Current File : /home/mmdealscpanel/yummmdeals.com/vim.zip
PK�j�Z�`��vim80/compiler/rubyunit.vimnu�[���" Vim compiler file
" Language:		Test::Unit - Ruby Unit Testing Framework
" Maintainer:		Doug Kearns <dougkearns@gmail.com>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

if exists("current_compiler")
  finish
endif
let current_compiler = "rubyunit"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=testrb
" CompilerSet makeprg=ruby\ -Itest
" CompilerSet makeprg=m

CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
			\%C%m\ [%f:%l]:,
			\%E\ %\\+%\\d%\\+)\ Error:,
			\%C%m:,
			\%C\ \ \ \ %f:%l:%.%#,
			\%C%m,
			\%Z\ %#,
			\%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�Z�YkIIvim80/compiler/icc.vimnu�[���" Vim compiler file
" Compiler:		icc - Intel C++
" Maintainer: Peter Puck <PtrPck@netscape.net>
" Last Change: 2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "icc"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

" I think that Intel is calling the compiler icl under Windows

CompilerSet errorformat=%-Z%p^,%f(%l):\ remark\ #%n:%m,%f(%l)\ :\ (col.\ %c)\ remark:\ %m,%E%f(%l):\ error:\ %m,%E%f(%l):\ error:\ #%n:\ %m,%W%f(%l):\ warning\ #%n:\ %m,%W%f(%l):\ warning:\ %m,%-C%.%#

PK�j�Z�����vim80/compiler/bdf.vimnu�[���" Vim compiler file
" Compiler:             BDF to PCF Conversion
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("current_compiler")
  finish
endif
let current_compiler = "bdf"

let s:cpo_save = &cpo
set cpo-=C

setlocal makeprg=bdftopcf\ $*

setlocal errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m,
      \%-Z%p^,
      \%Cbdftopcf:\ bdf\ input\\,\ %f\\,\ corrupt,
      \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�xr	r	vim80/compiler/gnat.vimnu�[���"------------------------------------------------------------------------------
"  Description: Vim Ada/GNAT compiler file
"     Language: Ada (GNAT)
"          $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
"    Copyright: Copyright (C) 2006 Martin Krischik
"   Maintainer:	Martin Krischi <krischik@users.sourceforge.net>k
"		Ned Okie <nokie@radford.edu>
"      $Author: krischik $
"        $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
"      History: 24.05.2006 MK Unified Headers
"		16.07.2006 MK Ada-Mode as vim-ball
"               15.10.2006 MK Bram's suggestion for runtime integration
"		19.09.2007 NO use project file only when there is a project
"    Help Page: compiler-gnat
"------------------------------------------------------------------------------

if (exists("current_compiler")&& current_compiler == "gnat") || version < 700
   finish
endif
let s:keepcpo= &cpo
set cpo&vim

let current_compiler = "gnat"

if !exists("g:gnat")
   let g:gnat = gnat#New ()

   call ada#Map_Menu (
      \ 'GNAT.Build',
      \ '<F7>',
      \ 'call gnat.Make ()')
   call ada#Map_Menu (
      \ 'GNAT.Pretty Print',
      \ ':GnatPretty',
      \ 'call gnat.Pretty ()')
   call ada#Map_Menu (
      \ 'GNAT.Tags',
      \ ':GnatTags',
      \ 'call gnat.Tags ()')
   call ada#Map_Menu (
      \ 'GNAT.Find',
      \ ':GnatFind',
      \ 'call gnat.Find ()')
   call ada#Map_Menu (
      \ 'GNAT.Set Projectfile\.\.\.',
      \ ':SetProject',
      \ 'call gnat.Set_Project_File ()')

   call g:gnat.Set_Session ()
endif

if exists(":CompilerSet") != 2
   "
   " plugin loaded by other means then the "compiler" command
   "
   command -nargs=* CompilerSet setlocal <args>
endif

execute "CompilerSet makeprg="     . escape (g:gnat.Get_Command('Make'), ' ')
execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ')

let &cpo = s:keepcpo
unlet s:keepcpo

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006  Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z��I�zzvim80/compiler/neato.vimnu�[���" Vim compiler file
" Compiler:     ATT neato
" Maintainer:	Marcos Macedo <bar4ka@bol.com.br>
" Last Change:	2004 May 16

if exists("current_compiler")
  finish
endif
let current_compiler = "neato"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=neato\ -T$*\ \"%:p\"\ -o\ \"%:p:r.$*\"
PK�j�Zތ�X��vim80/compiler/onsgmls.vimnu�[���" Vim compiler file
" Compiler:	onsgmls
" Maintainer:	Robert Rowsome <rowsome@wam.umd.edu>
" Last Change:	2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "onsgmls"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=onsgmls\ -s\ %

CompilerSet errorformat=onsgmls:%f:%l:%c:%t:%m,
		    \onsgmls:%f:%l:%c:%m

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�VCLLvim80/compiler/checkstyle.vimnu�[���" Vim compiler file
" Compiler:	Checkstyle
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2013 Jun 26

if exists("current_compiler")
  finish
endif
let current_compiler = "checkstyle"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain

" sample error: WebTable.java:282: '+=' is not preceeded with whitespace.
"		WebTable.java:201:1: '{' should be on the previous line.
CompilerSet errorformat=%f:%l:%v:\ %m,%f:%l:\ %m,%-G%.%#
PK�j�Z�S^��vim80/compiler/xmlwf.vimnu�[���" Vim Compiler File
" Compiler:	xmlwf
" Maintainer:	Robert Rowsome <rowsome@wam.umd.edu>
" Last Change:	2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "xmlwf"

let s:cpo_save = &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=xmlwf\ %

CompilerSet errorformat=%f:%l%c:%m

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���:''vim80/compiler/haml.vimnu�[���" Vim compiler file
" Compiler:	Haml
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

if exists("current_compiler")
  finish
endif
let current_compiler = "haml"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=haml

CompilerSet errorformat=
      \Haml\ %trror\ on\ line\ %l:\ %m,
      \Syntax\ %trror\ on\ line\ %l:\ %m,
      \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:set sw=2 sts=2:
PK�j�Z��:���vim80/compiler/php.vimnu�[���" Vim compiler file
" Compiler:	PHP CLI
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2013 Jun 25

if exists("current_compiler")
  finish
endif
let current_compiler = "php"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=php\ -lq
CompilerSet errorformat=%E<b>%.%#Parse\ error</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
		    \%W<b>%.%#Notice</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
		    \%E%.%#Parse\ error:\ %m\ in\ %f\ on\ line\ %l,
		    \%W%.%#Notice:\ %m\ in\ %f\ on\ line\ %l,
		    \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�I�vim80/compiler/erlang.vimnu�[���" Vim compiler file
" Compiler:     Erlang
" Maintainer:	Dmitry Vasiliev <dima at hlabs dot org>
" Last Change:	2012-02-13

if exists("current_compiler")
  finish
endif
let current_compiler = "erlang"

CompilerSet makeprg=erlc\ -Wall\ %

CompilerSet errorformat=%f:%l:\ %m
PK�j�Zc�t.[[vim80/compiler/eruby.vimnu�[���" Vim compiler file
" Language:		eRuby
" Maintainer:		Doug Kearns <dougkearns@gmail.com>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

if exists("current_compiler")
  finish
endif
let current_compiler = "eruby"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

if exists("eruby_compiler") && eruby_compiler == "eruby"
  CompilerSet makeprg=eruby
else
  CompilerSet makeprg=erb
endif

CompilerSet errorformat=
    \eruby:\ %f:%l:%m,
    \%+E%f:%l:\ parse\ error,
    \%W%f:%l:\ warning:\ %m,
    \%E%f:%l:in\ %*[^:]:\ %m,
    \%E%f:%l:\ %m,
    \%-C%\tfrom\ %f:%l:in\ %.%#,
    \%-Z%\tfrom\ %f:%l,
    \%-Z%p^,
    \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�ZA���""vim80/compiler/pylint.vimnu�[���" Vim compiler file
" Compiler:	Pylint for Python
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 20

if exists("current_compiler")
  finish
endif
let current_compiler = "pylint"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no
CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%#
PK�j�Z!BpƖ�vim80/compiler/irix5_c.vimnu�[���" Vim compiler file
" Compiler:	SGI IRIX 5.3 cc
" Maintainer:	David Harrison <david_jr@users.sourceforge.net>
" Last Change:	2012 Apr 30

if exists("current_compiler")
  finish
endif
let current_compiler = "irix5_c"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=\%Ecfe:\ Error:\ %f\\,\ line\ %l:\ %m,
		     \%Wcfe:\ Warning:\ %n:\ %f\\,\ line\ %l:\ %m,
		     \%Wcfe:\ Warning\ %n:\ %f\\,\ line\ %l:\ %m,
		     \%W(%l)\ \ Warning\ %n:\ %m,
		     \%-Z\ %p^,
		     \-G\\s%#,
		     \%-G%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�,.FNNvim80/compiler/sass.vimnu�[���" Vim compiler file
" Compiler:	Sass
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

if exists("current_compiler")
  finish
endif
let current_compiler = "sass"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=sass

CompilerSet errorformat=
      \%f:%l:%m\ (Sass::Syntax%trror),
      \%ESyntax\ %trror:%m,
      \%C%\\s%\\+on\ line\ %l\ of\ %f,
      \%Z%.%#,
      \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:set sw=2 sts=2:
PK�j�Z:�P}}vim80/compiler/context.vimnu�[���" Vim compiler file
" Compiler:     ConTeXt typesetting engine
" Maintainer:   Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change:  2016 Oct 21

if exists("current_compiler")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2    " older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

" If makefile exists and we are not asked to ignore it, we use standard make
" (do not redefine makeprg)
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
      \ (!filereadable('Makefile') && !filereadable('makefile'))
  let current_compiler = 'context'
  " The following assumes that the current working directory is set to the
  " directory of the file to be typeset
  let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
        \ . ' --script context --autogenerate --nonstopmode --synctex='
        \ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
        \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
        \ . ' ' . shellescape(expand('%:p:t'))
else
  let current_compiler = 'make'
endif

let b:context_errorformat = ''
      \ . '%-Popen source%.%#> %f,'
      \ . '%-Qclose source%.%#> %f,'
      \ . "%-Popen source%.%#name '%f',"
      \ . "%-Qclose source%.%#name '%f',"
      \ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
      \ . 'tex %trror%.%#error on line %l in file %f: %m,'
      \ . '%Elua %trror%.%#error on line %l in file %f:,'
      \ . '%+Emetapost %#> error: %#,'
      \ . '! error: %#%m,'
      \ . '%-C %#,'
      \ . '%C! %m,'
      \ . '%Z[ctxlua]%m,'
      \ . '%+C<*> %.%#,'
      \ . '%-C%.%#,'
      \ . '%Z...%m,'
      \ . '%-Zno-error,'
      \ . '%-G%.%#' " Skip remaining lines

execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�ZnNZƚ�vim80/compiler/decada.vimnu�[���"------------------------------------------------------------------------------
"  Description: Vim Ada/Dec Ada compiler file
"     Language: Ada (Dec Ada)
"          $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
"    Copyright: Copyright (C) 2006 Martin Krischik
"   Maintainer:	Martin Krischik <krischik@users.sourceforge.net>
"      $Author: krischik $
"        $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
"      History: 21.07.2006 MK New Dec Ada
"               15.10.2006 MK Bram's suggestion for runtime integration
"               08.09.2006 MK Correct double load protection.
"    Help Page: compiler-decada
"------------------------------------------------------------------------------

if (exists("current_compiler") && current_compiler == "decada") || version < 700
   finish
endif
let s:keepcpo= &cpo
set cpo&vim

let current_compiler = "decada"

if !exists("g:decada")
   let g:decada = decada#New ()

   call ada#Map_Menu (
     \'Dec Ada.Build',
     \'<F7>',
     \'call decada.Make ()')

   call g:decada.Set_Session ()
endif

if exists(":CompilerSet") != 2
   "
   " plugin loaded by other means then the "compiler" command
   "
   command -nargs=* CompilerSet setlocal <args>
endif

execute "CompilerSet makeprg="     . escape (g:decada.Make_Command, ' ')
execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ')

let &cpo = s:keepcpo
unlet s:keepcpo

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006  Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z4L�vim80/compiler/msbuild.vimnu�[���" Vim compiler file
" Compiler:	Microsoft Visual Studio C#
" Maintainer:	Chiel ten Brinke (ctje92@gmail.com)
" Last Change:	2013 May 13

if exists("current_compiler")
  finish
endif
let current_compiler = "msbuild"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
CompilerSet makeprg=msbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�ZL��500vim80/compiler/ocaml.vimnu�[���" Vim Compiler File
" Compiler:	ocaml
" Maintainer:	See ftplugin/ocaml.vim (?)
" Last Change:	June 2013 by Marc Weber
"
" Marc Weber's comments:
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
" ocamake and whatnot. So which one to use?
"
" This error format was moved from ftplugin/ocaml.vim to this file,
" because ftplugin is the wrong file to set an error format
" and the error format itself is annoying because it joins many lines in this
" error case:
"
"    Error: The implementation foo.ml does not match the interface foo.cmi:
"    Modules do not match case.
"
" So having it here makes people opt-in


if exists("current_compiler")
    finish
endif
let current_compiler = "ocaml"

let s:cpo_save = &cpo
set cpo&vim

CompilerSet errorformat =
      \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
      \%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
      \%+EReference\ to\ unbound\ regexp\ name\ %m,
      \%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
      \%Wocamlyacc:\ w\ -\ %m,
      \%-Zmake%.%#,
      \%C%m,
      \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
      \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
      \%D%*\\a:\ Entering\ directory\ `%f',
      \%X%*\\a:\ Leaving\ directory\ `%f',
      \%DMaking\ %*\\a\ in\ %f

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�܅��vim80/compiler/README.txtnu�[���This directory contains Vim scripts to be used with a specific compiler.
They are used with the ":compiler" command.

These scripts usually set options, for example 'errorformat'.
See ":help write-compiler-plugin".

If you want to write your own compiler plugin, have a look at the other files
for how to do it, the format is simple.

If you think a compiler plugin you have written is useful for others, please
send it to Bram@vim.org.
PK�j�Z)Bfz��vim80/compiler/pbx.vimnu�[���" Vim compiler file
" Compiler:	Apple Project Builder
" Maintainer:	Alexander von Below (public@vonBelow.Com)
" Last Change:	2004 Mar 27

if exists("current_compiler")
   finish
endif
let current_compiler = "pbx"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

" The compiler actually is gcc, so the errorformat is unchanged
CompilerSet errorformat&

" default make
CompilerSet makeprg=pbxbuild

PK�j�Z�]>``vim80/compiler/mcs.vimnu�[���" Vim compiler file
" Compiler:    Mono C# Compiler
" Maintainer:  Jarek Sobiecki <harijari@go2.pl>
" Last Updated By: Peter Collingbourne
" Latest Revision: 2012 Jul 19

if exists("current_compiler")
  finish
endif
let current_compiler = "mcs"

let s:cpo_save = &cpo
set cpo-=C

setlocal errorformat=
         \%D%.%#Project\ \"%f/%[%^/\"]%#\"%.%#,
         \%X%.%#Done\ building\ project\ \"%f/%[%^/\"]%#\"%.%#,
         \%-G%\\s%.%#,
         \%E%f(%l):\ error\ CS%n:%m,
         \%W%f(%l):\ warning\ CS%n:%m,
         \%E%f(%l\\,%c):\ error\ CS%n:%m,
         \%W%f(%l\\,%c):\ warning\ CS%n:%m,
         \%E%>syntax\ error\\,%m,%Z%f(%l\\,%c):\ error\ CS%n:%m,
         \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
         \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
         \%DMaking\ %*\\a\ in\ %f,
         \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�,h�88vim80/compiler/tidy.vimnu�[���" Vim compiler file
" Compiler:	HTML Tidy
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2016 Apr 21

if exists("current_compiler")
  finish
endif
let current_compiler = "tidy"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %:S

" foo.html:8:1: Warning: inserting missing 'foobar' element
" foo.html:9:2: Error: <foobar> is not recognized!
CompilerSet errorformat=%f:%l:%c:\ %trror:%m,%f:%l:%c:\ %tarning:%m,%-G%.%#
PK�j�Z�1����vim80/compiler/splint.vimnu�[���" Vim compiler file
" Compiler:     splint/lclint (C source code checker)
" Maintainer:   Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home:	http://www.splint.org/
" Last Change:  2005 Apr 21
" $Revision: 1.3 $

if exists("current_compiler")
  finish
endif
let current_compiler = "splint"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

" adapt this if you want to check more than one file at a time.
" put command line options in .splintrc or ~/.splintrc
CompilerSet makeprg=splint\ %

" Note: when using the new array bounds checking flags:  Each warning
" usually has several lines and several references to source code mostly
" within one or two lines (see sample warning below).  The easiest way
" not to mess up file name detection and not to jump to all positions is
" to add something like
"	-linelen 500 +boundscompacterrormessages
" to your .splintrc and 'set cmdheight=4' or more.
" TODO: reliable way to distinguish file names and constraints.
"
" sample warning (generic):
"
"foo.c:1006:12: Clauses exit with var referencing local storage in one
"		       case, fresh storage in other case
"   foo.c:1003:2: Fresh storage var allocated
"
" sample warning (bounds checking):
"
"bounds.c: (in function updateEnv)
"bounds.c:10:5: Possible out-of-bounds store:
"    strcpy(str, tmp)
"    Unable to resolve constraint:
"    requires maxSet(str @ bounds.c:10:13) >= maxRead(getenv("MYENV") @
"    bounds.c:6:9)
"     needed to satisfy precondition:
"    requires maxSet(str @ bounds.c:10:13) >= maxRead(tmp @ bounds.c:10:18)
"     derived from strcpy precondition: requires maxSet(<parameter 1>) >=
"    maxRead(<parameter 2>)
"  A memory write may write to an address beyond the allocated buffer. (Use
"  -boundswrite to inhibit warning)

CompilerSet errorformat=%OLCLint*m,
	\%OSplint*m,
	\%f(%l\\,%c):\ %m,
	\%*[\ ]%f:%l:%c:\ %m,
	\%*[\ ]%f:%l:\ %m,
	\%*[^\"]\"%f\"%*\\D%l:\ %m,
	\\"%f\"%*\\D%l:\ %m,
	\%A%f:%l:%c:\ %m,
	\%A%f:%l:%m,
	\\"%f\"\\,
	\\ line\ %l%*\\D%c%*[^\ ]\ %m,
	\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
	\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
	\%DMaking\ %*\\a\ in\ %f,
	\%C\ %#%m

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�2{}}vim80/compiler/fortran_g77.vimnu�[���" Vim compiler file
" Compiler:     g77 (GNU Fortran)
" Maintainer:   Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Last Change:  $Date: 2004/06/13 18:17:36 $
" $Revision: 1.1 $

if exists("current_compiler")
  finish
endif
let current_compiler = "fortran_g77"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

" Note: The errorformat assumes GNU make

" sample multiline errors (besides gcc backend one-liners):
" gev.f:14:
"	   parameter UPLO = 'Upper-triangle'
"	   ^
" Unsupported VXT statement at (^)
" gev.f:6:
"	   integer	   desca( * ), descb( * )
"			   1
" gev.f:19: (continued):
"	   end subroutine
"	   2
" Invalid declaration of or reference to symbol `desca' at (2) [initially seen at (1)]

CompilerSet errorformat=
	\%Omake:\ %r,
	\%f:%l:\ warning:\ %m,
	\%A%f:%l:\ (continued):,
	\%W%f:%l:\ warning:,
	\%A%f:%l:\ ,
	\%-C\ \ \ %p%*[0123456789^]%.%#,
	\%-C\ \ \ %.%#,
	\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
	\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
	\%DMaking\ %*\\a\ in\ %f,
	\%Z%m

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZCo	ttvim80/compiler/dot.vimnu�[���" Vim compiler file
" Compiler:     ATT dot
" Maintainer:	Marcos Macedo <bar4ka@bol.com.br>
" Last Change:	2004 May 16

if exists("current_compiler")
  finish
endif
let current_compiler = "dot"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=dot\ -T$*\ \"%:p\"\ -o\ \"%:p:r.$*\"
PK�j�Z���ǐ�vim80/compiler/rake.vimnu�[���" Vim compiler file
" Language:		Rake
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

if exists("current_compiler")
  finish
endif
let current_compiler = "rake"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=rake

CompilerSet errorformat=
      \%D(in\ %f),
      \%\\s%#from\ %f:%l:%m,
      \%\\s%#from\ %f:%l:,
      \%\\s%##\ %f:%l:%m,
      \%\\s%##\ %f:%l,
      \%\\s%#[%f:%l:\ %#%m,
      \%\\s%#%f:%l:\ %#%m,
      \%\\s%#%f:%l:,
      \%m\ [%f:%l]:,
      \%+Erake\ aborted!,
      \%+EDon't\ know\ how\ to\ build\ task\ %.%#,
      \%+Einvalid\ option:%.%#,
      \%+Irake\ %\\S%\\+%\\s%\\+#\ %.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�Z�a{��vim80/compiler/tcl.vimnu�[���" Vim compiler file
" Compiler:	tcl
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2004 Nov 27

if exists("current_compiler")
  finish
endif
let current_compiler = "tcl"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=tcl

CompilerSet errorformat=%EError:\ %m,%+Z\ %\\{4}(file\ \"%f\"\ line\ %l),%-G%.%#
PK�j�Zd)�vim80/compiler/ghc.vimnu�[���" Vim compiler file
" Compiler:         GHC Haskell Compiler
" Maintainer:       Daniel Campoverde <alx@sillybytes.net>
" Latest Revision:  2016-11-29

if exists("current_compiler")
  finish
endif
let current_compiler = "ghc"

let s:cpo_save = &cpo
set cpo&vim

CompilerSet errorformat=
    \%-G%.%#:\ build,
    \%-G%.%#preprocessing\ library\ %.%#,
    \%-G[%.%#]%.%#,
    \%E%f:%l:%c:\ %m,
    \%-G--%.%#

if exists('g:compiler_ghc_ignore_unmatched_lines')
  CompilerSet errorformat+=%-G%.%#
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�2Տ�vim80/compiler/javac.vimnu�[���" Vim compiler file
" Compiler:	javac
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2004 Nov 27

if exists("current_compiler")
  finish
endif
let current_compiler = "javac"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=javac

CompilerSet errorformat=%E%f:%l:\ %m,%-Z%p^,%-C%.%#,%-G%.%#
PK�j�Z3�H�11vim80/compiler/xmllint.vimnu�[���" Vim compiler file
" Compiler:	xmllint
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2013 Jul 8

if exists("current_compiler")
  finish
endif
let current_compiler = "xmllint"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=xmllint\ --valid\ --noout

CompilerSet errorformat=%+E%f:%l:\ %.%#\ error\ :\ %m,
		    \%+W%f:%l:\ %.%#\ warning\ :\ %m,
		    \%-Z%p^,
		    \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�t���vim80/compiler/rspec.vimnu�[���" Vim compiler file
" Language:		RSpec
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

if exists("current_compiler")
  finish
endif
let current_compiler = "rspec"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=rspec

CompilerSet errorformat=
    \%f:%l:\ %tarning:\ %m,
    \%E%.%#:in\ `load':\ %f:%l:%m,
    \%E%f:%l:in\ `%*[^']':\ %m,
    \%-Z\ \ \ \ \ %\\+\#\ %f:%l:%.%#,
    \%E\ \ %\\d%\\+)%.%#,
    \%C\ \ \ \ \ %m,
    \%C%\\s%#,
    \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�Z�hYr..vim80/compiler/rustc.vimnu�[���" Vim compiler file
" Compiler:         Rust Compiler
" Maintainer:       Chris Morgan <me@chrismorgan.info>
" Latest Revision:  2013 Jul 12
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim

if exists("current_compiler")
	finish
endif
let current_compiler = "rustc"

let s:cpo_save = &cpo
set cpo&vim

if exists(":CompilerSet") != 2
	command -nargs=* CompilerSet setlocal <args>
endif

if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent != 0
	CompilerSet makeprg=rustc
else
	CompilerSet makeprg=rustc\ \%
endif

" Old errorformat (before nightly 2016/08/10)
CompilerSet errorformat=
			\%f:%l:%c:\ %t%*[^:]:\ %m,
			\%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m,
			\%-G%f:%l\ %s,
			\%-G%*[\ ]^,
			\%-G%*[\ ]^%*[~],
			\%-G%*[\ ]...

" New errorformat (after nightly 2016/08/10)
CompilerSet errorformat+=
			\%-G,
			\%-Gerror:\ aborting\ %.%#,
			\%-Gerror:\ Could\ not\ compile\ %.%#,
			\%Eerror:\ %m,
			\%Eerror[E%n]:\ %m,
			\%Wwarning:\ %m,
			\%Inote:\ %m,
			\%C\ %#-->\ %f:%l:%c

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�u��vim80/compiler/hp_acc.vimnu�[���" Vim compiler file
" Compiler:	HP aCC
" Maintainer:	Matthias Ulrich <matthias-ulrich@web.de>
" URL:          http://www.subhome.de/vim/hp_acc.vim
" Last Change:	2012 Apr 30
"
"  aCC --version says: "HP ANSI C++ B3910B A.03.13"
"  This compiler has been tested on:
"       hp-ux 10.20, hp-ux 11.0 and hp-ux 11.11 (64bit)
"
"  Tim Brown's aCC is: "HP ANSI C++ B3910B A.03.33"
"  and it also works fine...
"  
"  Now suggestions by aCC are supported (compile flag aCC +w).
"  Thanks to Tim Brown again!!
"  

if exists("current_compiler")
  finish
endif
let current_compiler = "hp_acc"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=%A%trror\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m,
         \%A%tarning\ (suggestion)\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m\ %#,
         \%A%tarning\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m\ %#,
         \%Z\ \ \ \ %p^%.%#,
         \%-C%.%#

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:ts=8:sw=4:cindent
PK�j�Z#p�W��vim80/compiler/fortran_cv.vimnu�[���" Vim compiler file
" Compiler:	Compaq Visual Fortran
" Maintainer:	Joh.-G. Simon (johann-guenter.simon@linde-le.com)
" Last Change:	11/05/2002

if exists("current_compiler")
  finish
endif
let current_compiler = "fortran_cv"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cposet = &cpoptions
set cpoptions-=C

" A workable errorformat for Compaq Visual Fortran
CompilerSet errorformat=
		\%E%f(%l)\ :\ Error:%m,
		\%W%f(%l)\ :\ Warning:%m,
		\%-Z%p%^%.%#,
		\%-G%.%#,
" Compiler call
CompilerSet makeprg=df\ /nologo\ /noobj\ /c\ %
" Visual fortran defaults to printing output on stderr
" Adjust option shellpipe accordingly

let &cpoptions = s:cposet
unlet s:cposet
PK�j�Z�}���vim80/compiler/fortran_F.vimnu�[���" Vim compiler file
" Compiler:	Fortran Company/NAGWare F compiler
" URL:		http://www.unb.ca/chem/ajit/compiler/fortran_F.vim
" Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
" Version:	0.2
" Last Change: 2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "fortran_F"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cposet=&cpoptions
set cpoptions-=C

CompilerSet errorformat=%trror:\ %f\\,\ line\ %l:%m,
      \%tarning:\ %f\\,\ line\ %l:%m,
      \%tatal\ Error:\ %f\\,\ line\ %l:%m,
      \%-G%.%#
CompilerSet makeprg=F

let &cpoptions=s:cposet
unlet s:cposet
PK�j�Z�q�"" vim80/compiler/fortran_elf90.vimnu�[���" Vim compiler file
" Compiler:	Essential Lahey Fortran 90
"		Probably also works for Lahey Fortran 90
" URL:		http://www.unb.ca/chem/ajit/compiler/fortran_elf90.vim
" Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
" Version:	0.2
" Last Change: 2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "fortran_elf90"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cposet=&cpoptions
set cpoptions-=C

CompilerSet errorformat=\%ALine\ %l\\,\ file\ %f,
      \%C%tARNING\ --%m,
      \%C%tATAL\ --%m,
      \%C%tBORT\ --%m,
      \%+C%\\l%.%#\.,
      \%C%p\|,
      \%C%.%#,
      \%Z%$,
      \%-G%.%#
CompilerSet makeprg=elf90

let &cpoptions=s:cposet
unlet s:cposet
PK�j�Z@�S���vim80/compiler/mipspro_c89.vimnu�[���" Vim compiler file
" Compiler:	SGI IRIX 6.5 MIPSPro C (c89)
" Maintainer:	David Harrison <david_jr@users.sourceforge.net>
" Last Change:	2012 Apr 30

if exists("current_compiler")
  finish
endif
let current_compiler = "mipspro_c89"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%Wcc\-%n\ %.%#:\ WARNING\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%Icc\-%n\ %.%#:\ REMARK\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%-Z%p%^,
		    \%+C\ %\\{10}%m%.,
		    \%+C\ \ %m,
		    \%-G\\s%#,
		    \%-G%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z2��5��vim80/compiler/ifort.vimnu�[���" Compiler: Intel Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.1
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3497
"           https://bitbucket.org/xuhdev/compiler-ifort.vim
" License: Same as Vim

if exists('current_compiler')
    finish
endif
let current_compiler = 'ifort'
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=
            \%A%f(%l):\ %trror\ \#%n:\ %m,
            \%A%f(%l):\ %tarning\ \#%n:\ %m,
            \%-Z%p^,
            \%-G%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�C�vim80/compiler/go.vimnu�[���" Vim compiler file
" Compiler:	Go
" Maintainer:	David Barnett (https://github.com/google/vim-ft-go)
" Last Change:	2014 Aug 16

if exists('current_compiler')
  finish
endif
let current_compiler = 'go'

if exists(':CompilerSet') != 2
  command -nargs=* CompilerSet setlocal <args>
endif

let s:save_cpo = &cpo
set cpo-=C

CompilerSet makeprg=go\ build
CompilerSet errorformat=
    \%-G#\ %.%#,
    \%A%f:%l:%c:\ %m,
    \%A%f:%l:\ %m,
    \%C%*\\s%m,
    \%-G%.%#

let &cpo = s:save_cpo
unlet s:save_cpo

" vim: sw=2 sts=2 et
PK�j�Z��o��vim80/compiler/xbuild.vimnu�[���" Vim compiler file
" Compiler:	Mono C#
" Maintainer:	Chiel ten Brinke (ctje92@gmail.com)
" Last Change:	2013 May 13

if exists("current_compiler")
  finish
endif

let current_compiler = "xbuild"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
CompilerSet makeprg=xbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�4�M��vim80/compiler/fpc.vimnu�[���" Vim compiler file
" Compiler:     FPC 2.1
" Maintainer:   Jaroslaw Blasiok <jaro3000@o2.pl>
" Last Change:  2005 October 07

if exists("current_compiler")
  finish
endif
let current_compiler = "fpc"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

" NOTE: compiler must be runned with -vb to write whole source path, not only file
" name.
CompilerSet errorformat=%f(%l\\,%c)\ %m
PK�j�Z�1s*%%vim80/compiler/msvc.vimnu�[���" Vim compiler file
" Compiler:	Microsoft Visual C
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2014 Sep 20

if exists("current_compiler")
  finish
endif
let current_compiler = "msvc"

" The errorformat for MSVC is the default.
CompilerSet errorformat&
CompilerSet makeprg=nmake
PK�j�Zh��|��vim80/compiler/irix5_cpp.vimnu�[���" Vim compiler file
" Compiler:	SGI IRIX 5.3 CC or NCC
" Maintainer:	David Harrison <david_jr@users.sourceforge.net>
" Last Change:	2012 Apr 30

if exists("current_compiler")
  finish
endif
let current_compiler = "irix5_cpp"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=%E\"%f\"\\,\ line\ %l:\ error(%n):\ ,
		    \%E\"%f\"\\,\ line\ %l:\ error(%n):\ %m,
		    \%W\"%f\"\\,\ line\ %l:\ warning(%n):\ %m,
		    \%+IC++\ prelinker:\ %m,
		      \%-Z\ \ %p%^,
		      \%+C\ %\\{10}%.%#,
		      \%-G%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Zg ���vim80/compiler/pyunit.vimnu�[���" Vim compiler file
" Compiler:	Unit testing tool for Python
" Maintainer:	Max Ischenko <mfi@ukr.net>
" Last Change: 2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "pyunit"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m

PK�j�Z�oK��vim80/compiler/tex.vimnu�[���" Vim compiler file
" Compiler:     TeX
" Maintainer:   Artem Chuprina <ran@ran.pp.ru>
" Last Change:  2012 Apr 30

if exists("current_compiler")
	finish
endif
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

" If makefile exists and we are not asked to ignore it, we use standard make
" (do not redefine makeprg)
if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') ||
			\(!filereadable('Makefile') && !filereadable('makefile'))
	" If buffer-local variable 'tex_flavor' exists, it defines TeX flavor,
	" otherwize the same for global variable with same name, else it will be
	" LaTeX
	if exists("b:tex_flavor")
		let current_compiler = b:tex_flavor
	elseif exists("g:tex_flavor")
		let current_compiler = g:tex_flavor
	else
		let current_compiler = "latex"
	endif
	let &l:makeprg=current_compiler.' -interaction=nonstopmode'
else
	let current_compiler = 'make'
endif

" Value errorformat are taken from vim help, see :help errorformat-LaTeX, with
" addition from Srinath Avadhanula <srinath@fastmail.fm>
CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
	\%E!\ %m,
	\%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#,
	\%+W%.%#\ at\ lines\ %l--%*\\d,
	\%WLaTeX\ %.%#Warning:\ %m,
	\%Cl.%l\ %m,
	\%+C\ \ %m.,
	\%+C%.%#-%.%#,
	\%+C%.%#[]%.%#,
	\%+C[]%.%#,
	\%+C%.%#%[{}\\]%.%#,
	\%+C<%.%#>%.%#,
	\%C\ \ %m,
	\%-GSee\ the\ LaTeX%m,
	\%-GType\ \ H\ <return>%m,
	\%-G\ ...%.%#,
	\%-G%.%#\ (C)\ %.%#,
	\%-G(see\ the\ transcript%.%#),
	\%-G\\s%#,
	\%+O(%*[^()])%r,
	\%+O%*[^()](%*[^()])%r,
	\%+P(%f%r,
	\%+P\ %\\=(%f%r,
	\%+P%*[^()](%f%r,
	\%+P[%\\d%[^()]%#(%f%r,
	\%+Q)%r,
	\%+Q%*[^()])%r,
	\%+Q[%\\d%*[^()])%r

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��rrvim80/compiler/cs.vimnu�[���" Vim compiler file
" Compiler:	Microsoft Visual Studio C#
" Maintainer:	Zhou YiChao (broken.zhou@gmail.com)
" Previous Maintainer:	Joseph H. Yao (hyao@sina.com)
" Last Change:	2012 Apr 30

if exists("current_compiler")
  finish
endif
let current_compiler = "cs"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat&
CompilerSet errorformat+=%f(%l\\,%v):\ %t%*[^:]:\ %m,
            \%trror%*[^:]:\ %m,
            \%tarning%*[^:]:\ %m

CompilerSet makeprg=csc\ %

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�0֡��vim80/compiler/perl.vimnu�[���" Vim Compiler File
" Compiler:     Perl syntax checks (perl -Wc)
" Maintainer:   Christian J. Robinson <heptite@gmail.com>
" Last Change:  2006 Aug 13

if exists("current_compiler")
  finish
endif
let current_compiler = "perl"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:savecpo = &cpo
set cpo&vim

if exists('g:perl_compiler_force_warnings') && g:perl_compiler_force_warnings == 0
	let s:warnopt = 'w'
else
	let s:warnopt = 'W'
endif

if getline(1) =~# '-[^ ]*T'
	let s:taintopt = 'T'
else
	let s:taintopt = ''
endif

exe 'CompilerSet makeprg=perl\ -' . s:warnopt . s:taintopt . 'c\ %'

CompilerSet errorformat=
	\%-G%.%#had\ compilation\ errors.,
	\%-G%.%#syntax\ OK,
	\%m\ at\ %f\ line\ %l.,
	\%+A%.%#\ at\ %f\ line\ %l\\,%.%#,
	\%+C%.%#

" Explanation:
" %-G%.%#had\ compilation\ errors.,  - Ignore the obvious.
" %-G%.%#syntax\ OK,                 - Don't include the 'a-okay' message.
" %m\ at\ %f\ line\ %l.,             - Most errors...
" %+A%.%#\ at\ %f\ line\ %l\\,%.%#,  - As above, including ', near ...'
" %+C%.%#                            -   ... Which can be multi-line.

let &cpo = s:savecpo
unlet s:savecpo
PK�j�ZB��{vim80/compiler/ruby.vimnu�[���" Vim compiler file
" Language:		Ruby
" Function:		Syntax check and/or error reporting
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>
" ----------------------------------------------------------------------------

if exists("current_compiler")
  finish
endif
let current_compiler = "ruby"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

" default settings runs script normally
" add '-c' switch to run syntax check only:
"
"   CompilerSet makeprg=ruby\ -wc\ $*
"
" or add '-c' at :make command line:
"
"   :make -c %<CR>
"
CompilerSet makeprg=ruby\ -w\ $*

CompilerSet errorformat=
    \%+E%f:%l:\ parse\ error,
    \%W%f:%l:\ warning:\ %m,
    \%E%f:%l:in\ %*[^:]:\ %m,
    \%E%f:%l:\ %m,
    \%-C%\tfrom\ %f:%l:in\ %.%#,
    \%-Z%\tfrom\ %f:%l,
    \%-Z%p^,
    \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�Z�`Y���vim80/compiler/bcc.vimnu�[���" Vim compiler file
" Compiler:		bcc - Borland C
" Maintainer:	Emile van Raaij (eraaij@xs4all.nl)
" Last Change:	2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "bcc"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

" A workable errorformat for Borland C
CompilerSet errorformat=%*[^0-9]%n\ %f\ %l:\ %m

" default make
CompilerSet makeprg=make
PK�j�Z��ҊSSvim80/compiler/intel.vimnu�[���" Vim compiler file
" Compiler:     Intel C++ 7.1
" Maintainer:   David Harrison <david_jr@users.sourceforge.net>
" Last Change:  2012 Apr 30

if exists("current_compiler")
  finish
endif
let current_compiler = "intel"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=%E%f(%l):\ error:\ %m,
		    \%W%f(%l):\ warning:\ %m,
		    \%I%f(%l):\ remark\ #%n:\ %m,
		    \%+C\ \ %m.,
		    \%-Z\ \ %p^,
		    \%-G\\s%#,
		    \%-G%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z7���uuvim80/compiler/cargo.vimnu�[���" Vim compiler file
" Compiler:         Cargo Compiler
" Maintainer:       Damien Radtke <damienradtke@gmail.com>
" Latest Revision:  2014 Sep 24
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim

if exists('current_compiler')
	finish
endif
runtime compiler/rustc.vim
let current_compiler = "cargo"

let s:save_cpo = &cpo
set cpo&vim

if exists(':CompilerSet') != 2
	command -nargs=* CompilerSet setlocal <args>
endif

if exists('g:cargo_makeprg_params')
	execute 'CompilerSet makeprg=cargo\ '.escape(g:cargo_makeprg_params, ' \|"').'\ $*'
else
	CompilerSet makeprg=cargo\ $*
endif

" Ignore general cargo progress messages
CompilerSet errorformat+=
			\%-G%\\s%#Downloading%.%#,
			\%-G%\\s%#Compiling%.%#,
			\%-G%\\s%#Finished%.%#,
			\%-G%\\s%#error:\ Could\ not\ compile\ %.%#,
			\%-G%\\s%#To\ learn\ more\\,%.%#

let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z^�vim80/compiler/csslint.vimnu�[���" Vim compiler file
" Compiler:	csslint for CSS
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 21

if exists("current_compiler")
  finish
endif
let current_compiler = "csslint"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=csslint\ --format=compact
CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m
PK�j�Z�vώ��vim80/compiler/ant.vimnu�[���" Vim Compiler File
" Compiler:	ant
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Mi, 13 Apr 2005 22:50:07 CEST

if exists("current_compiler")
    finish
endif
let current_compiler = "ant"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo&vim

CompilerSet makeprg=ant

" first  line:
"     ant with jikes +E, which assumes  the following
"     two property lines in your 'build.xml':
"
"         <property name = "build.compiler"       value = "jikes"/>
"         <property name = "build.compiler.emacs" value = "true"/>
"
" second line:
"     ant with javac
"
" note that this will work also for tasks like [wtkbuild]
"
CompilerSet errorformat=\ %#[%.%#]\ %#%f:%l:%v:%*\\d:%*\\d:\ %t%[%^:]%#:%m,
    \%A\ %#[%.%#]\ %f:%l:\ %m,%-Z\ %#[%.%#]\ %p^,%C\ %#[%.%#]\ %#%m

" ,%-C%.%#

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���11vim80/compiler/cucumber.vimnu�[���" Vim compiler file
" Compiler:	Cucumber
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

if exists("current_compiler")
  finish
endif
let current_compiler = "cucumber"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=cucumber

CompilerSet errorformat=
      \%W%m\ (Cucumber::Undefined),
      \%E%m\ (%\\S%#),
      \%Z%f:%l,
      \%Z%f:%l:%.%#

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:set sw=2 sts=2:
PK�j�Z�����vim80/compiler/mips_c.vimnu�[���" Vim compiler file
" Compiler:	SGI IRIX 6.5 MIPS C (cc)
" Maintainer:	David Harrison <david_jr@users.sourceforge.net>
" Last Change:	2012 Apr 30

if exists("current_compiler")
  finish
endif
let current_compiler = "mips_c"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%Wcc\-%n\ %.%#:\ WARNING\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%Icc\-%n\ %.%#:\ REMARK\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%+C\ \ %m.,
		    \%-Z\ \ %p^,
		    \%-G\\s%#,
		    \%-G%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�6Ⱥvim80/compiler/jikes.vimnu�[���" Vim Compiler File
" Compiler:	Jikes
" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
" Last Change:	20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/compiler

if exists("current_compiler")
  finish
endif
let current_compiler = "jikes"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

" Jikes defaults to printing output on stderr
CompilerSet makeprg=jikes\ -Xstdout\ +E\ \"%\"
CompilerSet errorformat=%f:%l:%v:%*\\d:%*\\d:%*\\s%m
PK�j�Z�h�NNvim80/compiler/rst.vimnu�[���" Vim compiler file
" Compiler:             sphinx >= 1.0.8, http://www.sphinx-doc.org
" Description:          reStructuredText Documentation Format
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2017-03-31

if exists("current_compiler")
  finish
endif
let current_compiler = "rst"

let s:cpo_save = &cpo
set cpo&vim

if exists(":CompilerSet") != 2
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=
      \%f\\:%l:\ %tEBUG:\ %m,
      \%f\\:%l:\ %tNFO:\ %m,
      \%f\\:%l:\ %tARNING:\ %m,
      \%f\\:%l:\ %tRROR:\ %m,
      \%f\\:%l:\ %tEVERE:\ %m,
      \%f\\:%s:\ %tARNING:\ %m,
      \%f\\:%s:\ %tRROR:\ %m,
      \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
      \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
      \%DMaking\ %*\\a\ in\ %f

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�s vim80/compiler/modelsim_vcom.vimnu�[���" Vim Compiler File
" Compiler:	Modelsim Vcom
" Maintainer:	Paul Baleme <pbaleme@mail.com>
" Last Change:	September 8, 2003
" Thanks to:    allanherriman@hotmail.com

if exists("current_compiler")
  finish
endif
let current_compiler = "modelsim_vcom"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

"setlocal errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m

"setlocal errorformat=%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %m
CompilerSet errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,\*\*\ %tARNING:\ %m,\*\*\ %tOTE:\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m

PK�j�Z|2�q��vim80/compiler/gfortran.vimnu�[���" Compiler: GNU Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3496
"           https://bitbucket.org/xuhdev/compiler-gfortran.vim
" License: Same as Vim

if exists('current_compiler')
    finish
endif
let current_compiler = 'gfortran'
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=
            \%A%f:%l.%c:,
            \%-Z%trror:\ %m,
            \%-Z%tarning:\ %m,
            \%-C%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z8�6���vim80/compiler/se.vimnu�[���" Vim compiler file
" Compiler:	se (Liberty Eiffel Compiler)
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2013 Jun 29

if exists("current_compiler")
  finish
endif
let current_compiler = "se"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cpo_save = &cpo
set cpo-=C

CompilerSet makeprg=se\ c

CompilerSet errorformat=%W******\ Warning:\ %m,
		    \%E******\ Fatal\ Error:\ %m,
		    \%E******\ Error:\ %m,
		    \%ZLine\ %l\ column\ %c\ in\ %.%#\ (%f)\ %\\=:,
		    \%ZLine\ %l\ columns\ %c\\,\ %\\d%\\+\ %.%#\ (%f)\ %\\=:,
		    \%+C%*[^\ ]%.%#,
		    \%-GThe\ source\ lines\ involved,
		    \%-G%.%#

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z?�Q��vim80/compiler/gcc.vimnu�[���" Vim compiler file
" Compiler:             GNU C Compiler
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2010-10-14
" 			added line suggested by Anton Lindqvist 2016 Mar 31

if exists("current_compiler")
  finish
endif
let current_compiler = "gcc"

let s:cpo_save = &cpo
set cpo&vim

CompilerSet errorformat=
      \%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
      \%*[^\"]\"%f\"%*\\D%l:\ %m,
      \\"%f\"%*\\D%l:%c:\ %m,
      \\"%f\"%*\\D%l:\ %m,
      \%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
      \%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
      \%f:%l:%c:\ %trror:\ %m,
      \%f:%l:%c:\ %tarning:\ %m,
      \%f:%l:%c:\ %m,
      \%f:%l:\ %trror:\ %m,
      \%f:%l:\ %tarning:\ %m,
      \%f:%l:\ %m,
      \%f:\\(%*[^\\)]\\):\ %m,
      \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
      \%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f',
      \%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f',
      \%D%*\\a:\ Entering\ directory\ [`']%f',
      \%X%*\\a:\ Leaving\ directory\ [`']%f',
      \%DMaking\ %*\\a\ in\ %f

if exists('g:compiler_gcc_ignore_unmatched_lines')
  CompilerSet errorformat+=%-G%.%#
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��e��vim80/compiler/mipspro_cpp.vimnu�[���" Vim compiler file
" Compiler:	SGI IRIX 6.5 MIPSPro C++ (CC)
" Maintainer:	David Harrison <david_jr@users.sourceforge.net>
" Last Change:	2012 Apr 30

if exists("current_compiler")
  finish
endif
let current_compiler = "mipspro_cpp"
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%Wcc\-%n\ %.%#:\ WARNING\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%Icc\-%n\ %.%#:\ REMARK\ File\ =\ %f\%\\,\ Line\ =\ %l,
		    \%+C\ \ %m.,
		    \%-Z\ \ %p^,
		    \%-G\\s%#,
		    \%-G%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z){���vim80/compiler/g95.vimnu�[���" Compiler: G95
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3492
"           https://bitbucket.org/xuhdev/compiler-g95.vim
" License: Same as Vim

if exists('current_compiler')
    finish
endif
let current_compiler = 'g95'
let s:keepcpo= &cpo
set cpo&vim

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet errorformat=
            \%AIn\ file\ %f:%l,
            \%-C%p1,
            \%-Z%trror:\ %m,
            \%-Z%tarning\ (%n):\ %m,
            \%-C%.%#

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�ZU�(���vim80/compiler/fortran_lf95.vimnu�[���" Vim compiler file
" Compiler:	Lahey/Fujitsu Fortran 95
" URL:		http://www.unb.ca/chem/ajit/compiler/fortran_lf95.vim
" Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
" Version:	0.2
" Last Change: 2004 Mar 27

if exists("current_compiler")
  finish
endif
let current_compiler = "fortran_lf95"

if exists(":CompilerSet") != 2		" older Vim always used :setlocal
  command -nargs=* CompilerSet setlocal <args>
endif

let s:cposet=&cpoptions
set cpoptions-=C

CompilerSet errorformat=\ %#%n-%t:\ \"%f\"\\,\ line\ %l:%m,
      \Error\ LINK\.%n:%m,
      \Warning\ LINK\.%n:%m,
      \%-G%.%#
CompilerSet makeprg=lf95

let &cpoptions=s:cposet
unlet s:cposet
PK�j�ZPs�%QQvim80/ftplugof.vimnu�[���" Vim support file to switch off loading plugins for file types
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2011 Oct 20

if exists("did_load_ftplugin")
  unlet did_load_ftplugin
endif

" Remove all autocommands in the filetypeplugin group, if any exist.
if exists("#filetypeplugin")
  silent! au! filetypeplugin *
endif
PK�j�ZF窻��vim80/evim.vimnu�[���" Vim script for Evim key bindings
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Sep 20

" Don't use Vi-compatible mode.
set nocompatible

" Use the mswin.vim script for most mappings
source <sfile>:p:h/mswin.vim

" Vim is in Insert mode by default
set insertmode

" Make a buffer hidden when editing another one
set hidden

" Make cursor keys ignore wrapping
inoremap <silent> <Down> <C-R>=pumvisible() ? "\<lt>Down>" : "\<lt>C-O>gj"<CR>
inoremap <silent> <Up> <C-R>=pumvisible() ? "\<lt>Up>" : "\<lt>C-O>gk"<CR>

" CTRL-F does Find dialog instead of page forward
noremap <silent> <C-F> :promptfind<CR>
vnoremap <silent> <C-F> y:promptfind <C-R>"<CR>
onoremap <silent> <C-F> <C-C>:promptfind<CR>
inoremap <silent> <C-F> <C-O>:promptfind<CR>
cnoremap <silent> <C-F> <C-C>:promptfind<CR>


set backspace=2		" allow backspacing over everything in insert mode
set autoindent		" always set autoindenting on
if has("vms")
  set nobackup		" do not keep a backup file, use versions instead
else
  set backup		" keep a backup file
endif
set history=50		" keep 50 lines of command line history
set ruler		" show the cursor position all the time
set incsearch		" do incremental searching
set mouse=a		" always use the mouse

" Don't use Ex mode, use Q for formatting
map Q gq

" Switch syntax highlighting on, when the terminal has colors
" Highlight the last used search pattern on the next search command.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
  nohlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " For all text files set 'textwidth' to 78 characters.
  au FileType text setlocal tw=78

endif " has("autocmd")

" Add optional packages.
"
" The matchit plugin makes the % command work better, but it is not backwards
" compatible.
" The ! means the package won't be loaded right away but when plugins are
" loaded during initialization.
if has('syntax') && has('eval')
  packadd! matchit
endif

" vim: set sw=2 :
PK�j�Z�7��	�	vim80/spell/en.latin1.sugnu�[���VIMsugV��{�n*@bfhklmnprstwxy @bfhklmnprstwxy@nbfhklmnprstwxyns*tkn*s*sGlsft*smb*kGklnr*sQn*st*y*ylstst*y*n*s*txGnGys*tkflfGmk*sGyl*y*fkGnrst*yksGy*lGtGtksfl*ssGmfl*n*n*s�k
hklmGnstwGxstrkGn*y*lflr*sf�k*sGykn*s�k�sGystQk*s@*lstlk�k�s*yklk�k�s*yn*st*str*k�s*sGyksfltxx*n*s*ttGr*kGnst*yGk�sklmnpstn�r*kQs*kQn*yQt*sxtlGtsftk*n*s*txxlprQsWt*k*s*yGkr*stGynsGmf*sflnGslGm�stGp�k*sk*mn�ssfl*sGy*s7tGxGklGm*sGttlQn*yk*nGpt*n�rlbGn*sn�sG@bfhklmnprstxwxy*l*s?bk�rs&txxr?nkfl�n*stxx*nfr*s*tr*sn*s*tGs�tkGlnr�sttxfln*s*tkfl�nstyxx*mt*k*s*sGy*n?b*yGsnb*slQn*y*kGszwm*n*stxxGbfr*krsGy*l*mflQn
bfk*mnstx*y?tGn�sfln*stxflQnGs*nr*s*tGyfl*yn�l*skGs�tQn*sGkGn*t�fflGnr*s*tGytxx�f*n*s*tmn*s*t�nsGmGtkn*s*rb&txx�lz@�fQhklm*nstGys&txx�sk*y�sGyl*st*yGm*n*sGtxxn*s*tGy�m*nGs�t�wrxf
G@f�hk�lGmnpstxy*s&txxl�mn*stxxtr*l�sl*s*s*y.b*n*s*t*s�ttfl�n?sf*tfl�n*skGm*n*s*t�m*n*s�n*s*tstwyG@bfkl�mnpst�x*ln*s*tfl+sGtbfln*st�xl*szt*yflGs�trnr�s&tflns+t�x*stsGmGt&fGm*n�stxxfl5n�s*tG@flstGx*s*tflm*n}s*tGynt�ttxxfztCf*n*s*t	kflmnrstGyGl�sn+s^txxk�np:stxCffl5ns�t�n�r*mGtr*sGy�kxx	fklmnrs*tflGn�sGn&txx*n*s*yn*lp*sGtlst*s*y�bfl�m*nGs�tx*nGr	&k*l�mGnrstxxGyfl�n*y�f*sGy*ffl5n*s*tfl�ns�mn*s�t�sns*tGs*t*l�mCn*s@bfhklmnprstwxGyklnWprt�wx*f?nmGklk*k�sGy�k*ns�w/t*pl*f&kl*nr*st�yn?st*y&sflGn*sGyGk*l^nGtGyn*s�n*s*t	fl*mn�s�twxpr*sft*n*sGt�wxx/y*l*t*n*t*n*tln�rs&tymGn*s*t^n*s*t�kt*n*s�tftp�b&klmnprstx&y?f&k*nr*st*m*nr*s*tl�s�s*np*stlnks&tztstxx�nfr*s*t�m*n*s*tfGnrs*txxtnGs�tl*s&smnxt!pQxVst{lG@�fk�nst�w�x*n*s�t�kQlGn*s*t*n^sCtGyCfl�nGr*stxxQns*yQnflGn*s*tn^s�l*s�tbfk*mn&prstxCylQnt*yGm*nr*s*t?k�ksns�txxGy*n*sGt*kGs�t&xsnGs*t�ntnr*sflQn*s*n*s*tGy*fkGnfrGs*txxs*pn�l�rsnrstCx*n+s�t*y*l*sQt*kGmt�kQl�r*s�fk?s*y*t�x
bhk�lGmGnp[rst�wGyWnGtGxn*sGtt^tl*n*s*tkflGns*tl}s*yGm*n*s't�r	 ffl*mnp*s#t?h*l�n*sGkGs*tr�x	fk�lGn�r*stGyl�n*yrt�ss*mGt*nOs*t�kl�m�nprstw*x�y*n*s�yl*s&txx�b?m�nstxxk*n*r*s*tr&b�p�fk*n&s*t*ytxx*f*n*s*t*n*s&t�kn*tr*s�n*t?@b�fklmnpst&wxyqnflnrstxxst*m*n*s*t�x*y*m�spstxxlsJt*nGr*s*t&st�b�m*n*s*tn*s*t&t�xf*n*s*t*sft�k*n*s*t�bfnp*s*tx{s�xl�m�n@fkl*nstxsWtmlrs�stQl�sft{yrQn*tl*nr*s*tk*ysn*s*tr*stsmnmsGmWtGmn^sttr*k�s�km*n*s*txx&txxknr*sGtxGyt�t�pGkcf*n*s*t	x@Vb�hxmGn�p*s�t
bfhklmnprst�x*ls�tkr&bfl�n�t�l*n�rs*n&p�s*t*y�k�np*sGtlf*n�s*t!k*s*t/yst*stGyf�nftflm*r*sn�tlnrx*n*s*t�y�tGn�tlrsb*n&txx�rfl5np*tQs
�f&km*n&pr*sct�yl&t�x?kn&p&st&x*k*n*t�@bfQhklmnprstwxyG@lGn*s*tft*ylGt&pGl*nr&sGt*s&tGfk�s*yfst�fG@�ksnsGn&st�xflQm*sn*s�t	f5k�mGn&s*t�wGy�k*sGt�kQl*n*sGt*kflm?n�sGy?n*p?lGtGfGk/p&kGln*st�nt*n�r*sfl*n�r*s*t&kln&r*stxxQn}s�t*y�kGsGt*n*s*t�wGbCk*lGmn�pr*sty.m*s*r*s�r*s*t@mQkG@bfhklmnprstwxylm*sGtGwQn*st*y*sGx	*bklm�nr*sGt�l&txxn
s�tn�sGk*tGxmnttGfkxtl�ss�tGklPmGnGp*s�txx�mtxx*n*r*s*t�@bfhk*lmnpstxyrGm&txx�k*s+t�y*kCm�k�stGy�ks�s*n�r*stxx*nrs*tGk*sCt&s�tGffl5n*sGtxxflnr�s*t�xGyxkGn*s�txxGlzn�txxlGns�kt�ks0slpGt�k5t
*bklmnpxrstlbl0ntxx^f*n*s*txn�kstGm�sGt*n*stxxCflnGscx�m�s*t/ykpr�p7m*stxx�f�n*s*t5@>bfklmQnrst�wxGy�kGlnrs!kkn7s�fGklprGsGt�xs*yGm'tnt�nf*k*sGyk*st*y�b�k�m*s�t*yOkfr*s�knst�wGy�sGy*n*sGtxxWlr*sGyGkxQn�b�mn*s*tGstbm�n�stxGyl*k*l*s�kfl�sGt&n	�b*ffln*s*txGyGnsGt*s�xGy�nlGnxr
Gkl�mnr&st�x/yGk�nQ@ksGttkrp.sxn�l*tnxx�x
bfklmnpxrstxyQklstk�n*y�k?s*y�n�k*sb*nr*stxxGk*sstfr.kfl�m�n*s*tw�mlstxx*strl�s�s*yfl�n*sys�t�ffl*n*s*tk*s�tkn*stl*k*yGl�sGtGy0slmGnGst�ysyst�k�sGys�m*n*str*l*s*y�lGnr*s�tt�kfn*stGxGyfl�nft*stWr�sGklfk*fflGm5nrstr0ss*m*t*n*s*txxGymGn�kl*s'tGk?mGt@bfhklmnprst	�wxy�m	bGkl�nr*sst�yGt�y�kGt*kun@l*m*n*r*st�l�n�t�xGn*s�xblrmst�tx*nr*s*txxtxx*f�n*s*ttxx�b�f�n*s�t*nr*s*txx*lGn
�fklmnrstx�tGbmOn�ps&tx*n*sRtxxf*kfl�nstnfr*sn*sGyk�stxx*f*nfr*s*t�s�t>bm*nstx�n�n�f*n7r*s^tGn�txx>b�fGnGsCt
�bGf�kflynrs�tGy�kQsn�l�skGm*nrst*y�kGy�m*s�txxGyWtGlnGr*s�txxfl�t*@�kflnp*st�b*nGs*txxl&txxf*nr*s*t!k*s*t/yflQnft*y�k/s�l�mGn�rGstl*nr*s&txx?sft*y�k+s	�bklnrstx*stxx�bnr*s^t�xfls�t�n&txx�bknrstxx�btxx�f*nfr*s*t�b*n*stxxfr*s*t�x�b*n*sRtxxCf�t�bGfQk*n*stxx*f&knstxGtx*l&txx�b�f*n*s*tb*n*stl*sztGrnfr�smnpsRtxGyntl*n*s*txx�s*ys�xb*n*s*t�rb�ffl*n*stGw�l�nnls^sGm't*nGr*stxx�lfr*s*t	b*flnrGstxl�nt*y?s*yflQn+s�t&txx*yfl*n*s*t�n�sGn&txxb�lsVlflQn�tbfklnprstxxyl&txxt*y'rlt*lGnn*s*tGx+s�ttWrr&txtxx�n*s�tn�bl*sQn0s*y*l&sGyb^fGm*n*sGt�b�mnxr*stxxflGs*tx
�lflOnfr�km�tCfklmn�prstx�lQnsGn*n*s*t*ynps�t&txxr�nrs�f�klGnstxrsQt*yb�f�m*s�l
�bl*n�p*stQn*s*yflQn�p�b�n*s*tfklmnprstxx*y�hks&txxun�kt�x�blkp3rtxx�k�b�f*n*s*t�x�k�n*s*y�f�l�nrst*l�t�kGmGt�r*sGysGt�kflGmQn�lGnyrPms*txx*fln�py�l�ss�tnr*stxxrflQn*s*ystt�rr+l�b*n*s*tGn}s*txxGy�f�k*n*s*tnGrfr�s�tGkn�k*n*s*thkmstytrkOsnxtGstxxGn*s*t�rlt?fGmyxls*k*n@bfhklmnprstxylm�f@l*sQkl5n�s
t*wxx?ns*yGnt�rflnsGt�lxr*sk*sllkQnrst*yGf&kOnsxGy*m0sn*sxk�lmfrs�t?n*sGt*sGt*k	�lrGsGtGps't	*l�m5n	�rs*t*wGyGm*sGtGkGm*st�kn�r*s�y�t*f�m*n*s�tGn0r*s*y�s�xGr*s*tGb*kGln*sGy�b�lGn�r*s*t	bGlGm*npr*s*tk*s*t*ytxxl*sk�k�sGyfWl@bfhklmnprstwxy*kGm*s
hk*lCmnr�stwGk!nGrGn}sGy�lGm*sYtx*yGnGt*n�r*s*k*n*tbfklGmnrstxt�krs?rtpr�t*strGffl*sGt*yG@f*kmGs&tsx?lr�kk's5tm*s*b�t*f*k*nfr*s*t�n�bGlmGnGs.b?r*sb�fhkl�mnprstxwxy�lr*s�k�sl�n*t�k}s�lsn*s*tG@+n&s+t*y	Gbk�m*nst�wGylGn�t?f*st?rflGr*sl*t
+sGy@�fkGns+tGy�m@l*nGtn*r*s't*st�r*s	bfflm*nr*s*tsht@fklmnprstWwx*y�mrp�st*y�kk'lr*s*tyxxGs�t*nxlk�k�s*ykln*stxx�lkQn*s*x*yr�f*mfQs2lk*nfr*s*tr+fGmkmy�snsn*s*t&st�k*sktxynt�k}s*f�k�rnk*l*skrfGm�k*yfksfl*stf7tflkrfGm*k*sGylstGk&t�x�t�ksJpk*st�k'pfr*s�tGy�msxy�kn�kln&pm�k&kmGn�ks�t�kn*sGyr�s*n*t*yGl*sGt*k*s&txxbhkn�prst�wsxGk�rGt?sGtxrsGt�bGkflGmsn?rstxxGy�l*m*sGt*fl�nr*s*t8s*yflQn*y�f?f�m�ty�nbQn�r*sGy�lG@bfk�lmGnGrstCx?mls&txWn�sGn*rOnGyGn*sGtGk*l*mGn*s*t@TfGk�mknQprstw*k�s*y�nps?r�x0lm*n*s�tk�s*l�fGk�mn[s�tGxGyfl*s*tbfhCkGlmn5prstwxxyC@QtflnGsGtGm*r�lGrGrGsGtGnGs�txx*y*sQt
kflmnprstxxfl*s?tWr*sGt�fGs�l�m�s�txx&st*f*n*s*ty	Vn*@h*l*rkGn�lbfhk6lmnprstw*xrGn*sGyl?ns�xGt*w*m�y*@?lGr*s*txx�n�pGr*stflGm�r*s�b*kGnGstxxffl*n*s*txlGs�@bf*hk�lmGnprstCx*y*lWslst�r*sOt?lmnrGs�psftGf0s�tkRnxr�trskp*k*k*st�b?p*fGmn*stGyktflr*s�fr*sfk*l*s*t�x�kr*skt�r�ffl�mGn*s*tGlmpt*@�b*s*k?s�r*s�yflGmQn*sGt?lxm*n>bGf5n*s�t*lmn?p
�r*s�k�sGyfrs*kGt?bmn*ps*txxpGkGn*sGt	�fGmGn*s@bfhklmnprstGwxyy]sbfkl�mnrstwx*n*s*t�xsl*k*n�r^stxx*r*sGy	fkmnstx*yQr*s�l*s*n*st�k?ssGt�m*s*t�wbGmcn*s*txx&nr*s*tGy�mGn*s*tck*lGsGtkcl*nst�xyGl*sxx�b*f�m�nGr*s�t*l
r*sklWn*sn*kQs*y�kkl*m	�n*stGy�s&t*k�m*n*s+tr*s�x*lGs
�bkl�mGn�rs*t/ystr�stm*n*s*tOnxm�r*sGnGr�s*t	@bGl�prstytGr*slGn^skQn*st*y�f*sflGm�n&s�kxms�mGl�r�s�t�b�l�mnrs�t	>bGk*lGnr+stxxQn*s*y^f*s�n*s&txxGysGty�l�s	k�m�n�rs�txxGym*s*s�txx
Uffl�nn�r*st8r*s@bfhklGmnprstx*lrfplnGst*y*n*sGyWs�rs�ttx�mGklmnsbprztm?s�t�k*ss^t*m*sGyrtssnGs�tGh�k	�bkflnpstxxslGstflGsr�txxs�xGf�n*t*s*t�y�bfk�l�m*nr�s*txxGysns*tWskx�nGkGn*p*s
@fklmnrstwx)y*k&stGy�kkr^stxxb*ffl�n*s[lcx�bntxxb�m*n�s�f*n*s*t
Ufkmnp�rstxxy�b�n
Htxxntb*n*s*txx*n*s�t�bbCf�m*n*s�t�l^kfl5n*sGt
�b*n*s*t�bn�sunGt&l�m*n*st'mnr*s*tGyGs�tb	rlbfklmnpstx�bmb�m*nsZt*n*sRt�x�ln*stxx�b&txxk*n*s*tb�llQnft*y�m*ns*t*yGm�t�p*sGt*stflQnrt
�b�f�l�mnGrsGtxx�m*nGs*tflGm�nGtfunr*sGyQk*lQsbn6lb8slQnt	�bflnp*s?txx�bfl�nt*n*ylGs&txxzt*yt�b*fb�fGkfl�mnQrs&txxy�b*l*@�n+stflQn*sGyfl�n*s+th*n*smn?t�m�r*sb�l�mn*s*t*nGs*t	klGmnstxxyn*ssGm*n*s*txxst8y*m*t?k*sGyG@CtflGm�n*st/l*s*kGs�l*s
�b+fkxl�mnr*st�l*sflGn*s>b*sGyfl
�rGs�tb�fCklCmnrstxGy�lGt&st*y�kGsGklGns�tx*yQnzt*yGm*sfl5n�b*n*s�txxGy�ffl5n*s*tGnGpn*s&txxl*sszt*yGm*n*sGtkl*sGttlpGsTk$ @bfhklmnprstwxy
�f�klmnrstxkQnp*s*y�k�sGy*n*s�tktGy+b^nk[s?tf�kclcnpstWtklmsGt�nk�k�sGyft�ksGm*n*srGkGy�n*n*sGt�n*t�fksfl*ysGm�t
fhkl{mnprst?w�x?r*st^nTlk&l"mnGs*t�tx�nn?s	f&kmns
tx*y�b�n*s�n?xk&s�nGm*t*n*st�l*n*s�t�t@>bmfkntxx�b*n*t�b�nGt?t?x?lGn*s*t?bf�k&m*st�bn*t�trkt*f*t
�b�f/k�nr*s�t�w*ys^f@bfklmnrst*wxy>f�kflm?r�b*tl�mGn*s+t*yr�bGt
bf�klnrstx�b�n�m*ns&t�x�ytxx�f�txx�b�n^s*tGy�bCf@l*n*s�t�n�s�bfk�lmnprst�wx*yl�m*n?r*s�t�b*n*tns�t�xfl?s�bGn*s*tb*n*sRtxxl*stfl�r&stxPr*s�l�nb�m*n*s*t�l�ssf
�t�bflGnr}s
txx�n�txx�n?s*yln+r�stxGyflVrt*y*s*tGyGk*n�t�fQkr*s*tGy�n*s*yGl�nk�l&mstx*y�l*t?x�b�f*s*tGy
�bfl*mGnrsGtGy@l�n*s?t*yGs*tyxm*n*smGt*lGn*t�bfk�l?mnrstxx"y�b*tln*s*txxGs*y+stfl*tm*n�stxntl*sl*n*s*tQn?s*y�lcs+t�b�n*str*sQykt�rmf*m�n*s*t�x�b�f&kl�mnr*st*y|st*y+s�t
bkfl�m&n*s
�txxGy�b�txx	bflnr�s&tx	rl�rflQn*tstfl�m*s�t*ns�t*y&n�ln?t�b*l*n*s*tl�nsxik�klskbf&klmnprst&xytxxb*fnfr*s*txx�sGtms
@*f�npst?wxx*y�fflQn?s*y>f^m*t*fGn*s*t	 mfkfln�p*s*t�ln*st�kflQnstfl�n*tGk*nst�b�m*n*s*t?l*n?rs*t*y�m*tflGn?s*t*y�kml�n*stmb�kfl5nr*s*t�kGs*np*stt>bVl�rMt�f�n*sGt�fktWnr�sGt@bfhklmnprst�wxyflQn?rGkl7rGs�txxGt*y�k�ln�r*stxx�b*s*t�t*nr*sn+s�t�mnr*stxxflGsGtfGm�k*s*y�b*f*n*s*t&@�bfGhklmnprst�wxy	GbGl�m*nr*s�tGxn*x*klzn�s&txxGyb*yNlfk*y?b�nrt�sGk�lmGnstx*nGtfl*n*s�b*s&tLs+t*xf�k*n&pGr�s*t�bfl�n*r*tf*k*n?r*s*tGy�b?t*lxmGnswp/kxmGfbf*lGmnp�r*stx�mnrs*tsGt5n*tt�b�tkfls�t�bt*f*tr*tb�tl*sft*yl�mnr&stdkmMn�t�x�n�nmstFbhmsn�sMtxxMs,b*n*t�bn�t+s�t�b�k*n^s/tlrs
bfklsm|nrstwx*y}lmn?st�btGyns*tx&s�t�n,b*tkl�nrms,txx*l?ts*y�f�bn�s+tGstfl?kQn?s*yGn^s�t*y
�fkl�mnpst�ynmr�txlQn7t*y>b�t*y�b�nGs�t�kflQntns�t�nrt>b�k?n^txx�xFb�fl�mnrsRtxGym?s*y�n�bns*t�x�bfl*n*t�t�x+b*t�n*st�b*tn�l*s*t�bn�bGn*t�bl*nrst*n+s*t�b�l�txx�lt*s&txxGy�lG@bfklmnpst�wxy6lmr�b�m�n*st�bflQn*t*st*yn*sttxxl*nfr*s*t�x�s*yk�lfl*n*stGkfl*tt
�x�b*t
�b�ffl�m�n�p^stGyfl*n*s*txx�bfkl�n*s�t@l*t�y�l*n�st*y�b�mGn*s�txx�p*s�bhklmnprstxst brst*s?t>b*tfl5n�ty�t*k�nlpGs?t�bdklGmnr?stk�n?rs?t>bts?t�fns*tsb*s*tb�f*tlQn*szt*y+bfldn*s*t�b&txx�bfl�np?stxn�b�lb*n*t�bf*kflmnr�s*tGy�bfl�n*tfr�ts�t�x�k�lGmn�b�l�n�s*t
+bfk�lmnstGyfl
txxfl*n�r*s*k�n/stflQn�s*t�l*sGtbGk�mGn^s*t b*n*s*tbfGhkflmn 	pst�wxy?lmrb�lcn*s*t*lWt
�b�kl�mnstGxGy�hQn?s*yGkfl5n*s*t�b*f*s*t,bn�t�t�b&kl*n*st0s*yfl?r*sn*st*ns*t�k�m*nmr*s*tcnr*sGt�yblfr*tlQnt*yQy�b*nst�bn*sGt�xt*m*s�k�s@bfklmnprstxGyfl?rt�kf�klr6xl�n?x?s*t�b*kl*nQs�t*s*t*y�b�lnst�b?ft^f�kGnst.wGyfl*mGn*stxx*k*t*kfr*s*t*yrt�b�nzr*sk�l*n�r*stx�b*t	�b>fln?r*s*txxs*y�b*tn*s*t�b*tlrstx?fmynUt�bGt?f�s*t|n*t�b?n*t�b�l*n+stxx*f*nQr*s*t
�b>fklGm�n�r*st"l*n*s*tk*sGy�b*n>bfkl|nprs�tGy�b&txx*s�tt*y*k*sWt�k�n?st�b�mn*s*t�k�ls@fhklmnstxyxs�t�bmklms�t?f�nt�f�btbt�b*n�tGh?klmprsWtxx�y?s*x�bmr*tympt4yn�m*n*tmn�s�tsxkmlm*np�r*stwxx�n*s�rlnr*s�b*n*s*txxmxmk�rGkl�mnprs�t?wxxGykFb�n�tflQn?tzxr�s?t�bpst�b^tt^n�tmptr�l�b�l&txxmstfl*n*s*t�x
bfklmnprst�w?xl�s�x?m*t?k�m*n*st�r	kmhn[rst?x�y,b*n*st�k�b�nsmn*t^t�b�k*tnxk�n*st?x,tl*nVr*stbfkllmnprstxlmstb?k�ln!�tzx�t�rtk?smpMstt�tnst�slp�bfl*s*tr�sQx�t�t?fk�mn�rstr?b�t#�n�fkn2rstFb�f*t�t6xMt�bt^f*t�b�fGn�p�st�bGk�r*s*t	�b�kfl�mnrs�t>bflQnGs�t?l�t�nbf|hklmnpstwxy�k[l*s*t?k&l?m?nr?s?t?w"�kn�sfkmlnst�rns�b*n*t�l?rs�lt"�rGk*st?r*t�b6fGk*l*tFb�f�mnst*y*sMt�b*m#Bt*s*tGy�k"�mntmr�t�n�t�fkflstl*t*t*y?mnrstt�n�bstnt
�t�s�b&r*t	fflnprst?x�f*y>b�nGs*t�n�ttn�nr*s�b#�k�n*t
+b?f�k�m�nLs*t?x*y�t>b�m*n*s*tGls�m@bfklmnprstwxytx�k
�sl*sk�sGy"�kl�mrst*ktktn?sx�l?t�ln*thtxxl�mrst?yk*np?st*yrfGm*k*y@*k*sQtGy�b*k*n*s*t*yb�ntmk	?@lmn�prst�b>f�m*n*stmn�sf*k
sGtsk&bmkflmnp*st�w?xb&l6ltxx*f�r*tSb�n*sGy�ls*t*y>fGt.flrs*tGm*n*s*y�tbf�k�lGmnr�s�txx*y	rl�r�bk�mn*s*t^xn6ss�t*kGs�t*s+tGyblnp*s*t*x�l�n?s*yGkfl*stxx�b*n*s*tl	klQn&prstx�bt�x�m*n*s&txx�b*nr*stzxfl+tfflQn?sflt	fflmnrs*tGy�ksn�tflGs*tGlGn	�fk�l�nrstx�b*ntxx�k*n�r*s*t�bns&t�x?y*kfl�n*tf^s*t*k*tmb�fflGns+tm�n�lGnbk*lm5n*sGtl!7txnfr�s�n�fnp�r*st>b�l�tkmnt$ht�bnr�s*t�bflGs�t�lGsGy
bfklmnprstCxylQn?st*y�l*t*ym*n�r*s�txx
t�b�m�ns�txx*y>b$�l�n?p&s	�tkflGm*n&st�xt�f*l*s?b*ln*s�tGyfl^s�b?l*n*s*tk�lmnp?stt�x^f*n?r*s*tn*ttl*n*s*txxst*y*k*n*s*t�k*n*s*tGyffl�n*tk*tMytWrfl�mGnstx/y*ffl*n*s*tnl*s�s*y�l	�@f�l�n�r*s�t?y�n�b*ln*tkmnsl�k*np�s*tt*k�slp*stzk@�s�t�k�rxr�ntm*n*s*t�nWt� @bfhklmnprstwxylmQn�rGsst�y*l*m*k*l*s*y�b�klWnrGstxx�mstGy�tGktGx*n*s*x>bGk*n*s�tGy*@fklmnrst&w�yskx�n�l�st�b*n?p*s*txxfln%s*t	gb�k*lGmGnstx�bflm5nQr*s*tntn*l�sGlmnGs*tkt�nr*s*kGyflGs�tmx�b?fGn�s�tb $kl�nshtxx*l�rst*yGm�n*s�txxxflnGrsy&mt*n^ttxm�rpt2n�@�bf?hklmnprstxxnmn�tl*s&t�x�nxx
@bkm�nrst�xGn*sl�s�tQw9kn�xk*t*yl8s*kxm*s*y*fflGnr*s*t
&lnp*sWtGy�k*n�st*lfr*s*t*y�s�t	fk�nrstxxGyl*txx�s*stxx[f*n*s�t�xflGmGn*st�k*sUtGyfl&n*sGyt#lG@,b[fGklntpstxGy*stxx*y$�l}sGt*f*n*sGtGykn	�bkln*stxxGy�ntxx*n*s�t�n�b*l?r*t�bfGk�l�m5nr*s'tGy�lQns�nbfk�mn&prstCxy�l�r*n�r*s*t�b�knr$[stGyGstflGx�@*flQnfr*sQn|szt*y'k*lGnGs�t�bun*tfl5n*sGt*nmr*s*t�m*n�r*s
b	�fklmnprst�xGy*l�m*n*s*t*l�nr&s*t�b�tkQn�r?st*y�k�l�sGy	�r�b	>b4f&l*ns
txGytr�bt�fn*t*l*tr�n�tGk*s*t/y�bGl*m*n*stGymk*s*y
>bGkl*mnr*stxx*k�txx*y*s�tQk*l*mGsGyfl�nfr*s*tG@�bfklmn�prstxSy�kl�m*s�bcl�m?n�r*s	�trs*ynGy8sGt	�r*s?t*l�nx*y�m*tffl5ns+t!kfl�n*s*t/y	fln&r*stWwxx�bfl�n*t�k*yGsGtnGp*s*tl*s*t�szt*y@fl�mnprst�wy*sWtGymft"cmnpstxx�ytfr*s*t�tWm�b*f*n*s*t?lGn*st�b�n�r*sl*s?t�xf�l�p*�rst�l�n*sWt*yb�f!k*n*s"qtxx�np*sGtxxy�r*�x*f�kGl*mGn*s*t*n*�r@bfhklmnprstxy>f�k*slGn�t*t*y?l�mn�rs&txx�s�bk�l�n?s
?hGlmnrstxypfn*k�lGmr�s*tzx�n7s&Ct�x*lp*sGyml?s�bfflsnr*s*tflQn*sftn�l�sn�sGykGnstx*ys*y*n�r*s^tn*s�xsflp�rstGx+Rk*n*s*tl�m?y+Rk*kr*s$p
�bfkflmGnstcxst�m*n*s*t�b*l�npn)m
fkl"�m�np*s
`tGw?m�rfl
n*stb*t?s�tPfQks*y�t�bGf�kl�m*nrstxxGydmbns�txr*s�x!	ln*st*t�x*nt�x*l�tb*ffl*mGn*s+tzk*s
�bCfkl*mnpstPr�skt�l�n�ntr*k0s
EksGtWf
�m^n�r*s�tw*y�@�bklm�npr&sGtzxGy*ltxx*ffr*t�s*k�l�stNm�f*n+�f*lGnGtxf*sGw
�@bfklmnprst�wxyk�l�mktfflft*n�r*s�t
*�b�fl&mnprs&txs�t�t*nQt�k�sGybm*n*stxxgbntxxfl�nflQnrl*s*tnl*s0sft bfl*n*s*tfr*t�nt?y�bfl*nst*l*sGyflWr*tlGmnstxx�n*ls/t�bf*�m*n*s*txxk*tfl�x>b�f�k*nfr*s�t�bGmmp*t�ffr*s*tb�f�k*lnr+st�x*yl*tftxx�k�lGst�x+bzl�n*smbGfk'Mln�s*tGyt�b*r*tk*@*k�l�m*n*s*t�y�b?k�lGn?tkml'nbt�nQsWt�r
 �bfklmnprstwyl�n*xp*yGnstxx*kGn+t+b*f*l*n*s*txf�m*n*s*t*yk*ln*s�r>bs^txGm*stGy*k*s�n*km�n*stnGtzxQk*l*tn(�rtbt&m�hk#r�s�t
wt*f*kps*tdltblxmntxr*lGn*s*t&n*np*s�k*s
*b�f&k�l&nGp�rst&t
b&klPmn�pr*s�t^ln�kk�ls�bGn*s*t*m*sGtGb*fsGt�xxmGnp?r*s�k*t@fklmn?prstxflQn?s*y*nMr�b?n*tkntmfl�n*s�lQn?s*y�bMk)Mt�bflns*t*y*s�tflQn?s%tGkfl�n?r*s�t�b�f*t&@bfklmnprstwCxGyxEn�bl*n*s*tGyr�s+bl*nrs*t�tn�st*yk*s?r*s*tGnr�tk
&nk�m*n*st�b�n[s*t�m�n�r*s�t?@fl�n�p�r�s*tknst*strs#Btk�m*ns*tb�nGm�t�m�t�x�b*k*n}s*tGmt*kflsGf*nfr*s*tCm
x@@bh�k#�l�myn�p*s8tGwx*r)f@bf*hklmnprstwxyklGmr�s�tGyGmr*lGm�srGtxn&t@ln�r&tly�kr
�s*k*lm*sGyn*l*n
fGkl�mnGprsts�tyxm*s�w9pGst*kzrfmGn*s�ty�k�sGy*s�tf@l*s*l*n*s�t�y*n*sQtbfkmnpstx/y*lGyt�bGk�n�stxxGy�f�k*sQb&kflGnGrGstfl*s*ys�tunGsGt�f�kGn*s*t�kGn*sQ@k*nstQs�t�k�bfhkflmnpst�w,�xyxr�sGmnZttt�n*ls?@dn*st*s^t?xk�ll*s*tQr*fk�m*n*pst*l�mGstm*s�t
�t�m*tlritklsWtW@xtbfhk&l*mnprstxGylr*txxGm�sGl�n*s*tns&txx�b�fsGtm�txxGstflQns*n*s*t�xr*s�b7sYtxx*n^s*t�f/kGl�n*sGtf�kflGn
�s*tFbGk�n*stxx^f*nfr*s*t�bfk�lmn/stw�xy*s*t/y&l*np*s*tlsGtGn*y�n%mp*s,et*st�r*s
Gfhklmnr+stGy�b*k7r*sGt�x*y*klk�kGy*st�n�fGk*m*n&s*tGn?pGxkl�k*n*s�t
x@GfklmnGprstxx*y�ls�lGyk*s*yt#r�klGm�n*pst�kft*yGm*n*s�txx�rfl*�ns+tGm*s�t�fGl?n*sGt�nQr*s*t�b*f*n*sGtxl?n*s�t&k�ln*sGt�l�m*n*s*t/lQn@bfhklmnprstwxymGnr*st�k&sxx*l*stQk*s�klnrstGyfk*st*k*sGt/k*yGk*m�sGtGk*s*y	*bklGnrst�x>b*y2k*sGtn*syGs�t�xn
k+b*m*sGt+b*sGnGr*sGty@�m�bflmnGprstxxCy $r@fl�m@r*s*t�r#n*s
#�fkl�mGnstxx*y8st*y�l*s�f*k�l*n*s*t�fGm
�n*p*s�t�bGnWt*l5n*s*txxbfk5ns�tGx*y�k4nsGyflQnGtt*ks
@fk
�lnGpstyrp�sWtGy+b�n*s*t*k*stGk�s>bk/l�s�lQn*s
�bfklm�nfrstwxxGy�rGx
�bl�mGnrst?w*xQnGt*yGb�t~n*s*syQsn�s!�k*lGmQn*sCtGy	�b�kl*nrs&txx�s*yGn*tGy�m�kGrGt
GhlGmn*pr*stxxGns>bGm�krs>b�st�xsb�f*n*s*t*k*l*sGtbf�klQmnpGrst�l*sQn*r�f*s�txxGn*st
rknGst*ts�b�f�k�st�b	�b
�fk�n*stQx�yrs�tQkCl*s�bklmn�prstxxy�bfl*s�txx�k*s*y7b�n*sGst�st	�f�k*lGmGn*s*xGy
�@Fbun}s*t*ffl�n*s�tGy�nCk*n�s�t*lxmn*s�t�w{f�l*sGt@*lzn�ps5tmrQk*l�tms�y�yp�l@bfhklmnprstwxym!�n*st�l*nTpGs�t�k�sxxkl�n�rs
tflGnRs*st�x*y*tGy�t	xhkl�nrsty*lGsxxQn*s&t*y�kn&txxt�lGxGl*sk*ns*l�n*s&txx	�f�ls�t
G@b�klmnprst&w-0x*k*s*xGn&p*stxx*n*s�txx*k�n*s�b�m*nmrGs?txx�bl�m*n�sGtk�s*y�bGlp*sBt�wGx�txx�l*n*s*n�r*s*t�bCfk*lmn*ps1tx*y*n*s1�t�bfGk�s�b*stGkGn*s�kflQnn8s�@b�f*klGmn4�prGstlGk*n*s�tyxm*s�w�b@l@r*s�t)=xfl*sGt*k�lSs�kr�k*yfhklGmnpstx'lrn�tGw*nr*s�fzkGsflGs+t�yGn*sCt,nr*s*t*kWplGnQns*y	klnrstx/y�n*st*l*n*s*tG@n�r*s�tGk*lGskm*�npGs
t�x*nGst,r�yGl*n�sGt�kGm�rsGk.t�lGn�l'n^stGy�b?fk*l�mn�p*st�y/t*fn*s�tGs+�t@bfhklmnprstwxyryt*k*sQtTm?kl�n*m�scx!klln*s*t�x/y�bGs*lzslm'n*s�s*ytGk�szk�n*stGyhGs?ymbn*stxxxf*sGt*f*nr*s*t�k*y�@�bGf*k?lmGn(stx�n?s*k�n*s*txGn^s�m�n*s*t�@�k*lsr*s*ybfklmn�pstxGyl�kGmtykrlfs�k�s'@xh*lm'n*sQp	Gbk�np*sGtCx*y�k�sGy@Qkxs*s-�tckmn*stxx�k*sGys�t�k*s&ks*tGm*n*s*t�f*l*sGym*s�kskfl�np}s*y�m�m	�f*kflmns*ty*l*s*yGst-�k*nst�r�lGt!7@Gnl*nGnxlnstQr�lxmGn*p�sbGl�m�nr*stwx�yn�l�sf�l*n*s*t�xfl7t�tn�lsklmnrs*tl�nGf�kWbm	�sOnptt"cm�t�rxrns*yflGmlGn*s't @bfhklmnprstwxy*ls�t*b*skl�nr.OstrGs6�f{n*sJt*yGk/t�k*n*s
&bQfkl�mn�pQrstx#�y
stxx*f*l*n*s*tn/�r*sGt*y&kGscst�fkrsx*n^s*t*ns*tfl*m�n*sGt*l^s�b*l"�m5n&�rst*kfl*sGy*n�r�s*t�lGn
Gh�lGn*pr
`s*txxy�n*s*tpinb�fklmnrstx
�y-lTs*st�f�m	�b&fk�m*nstxx�k*y*ffl5nfr*s*tp*s*yl�t�x	fk�mGnCs�txx*yktmtrt*ffl*s
G@f�k�lGm*np
s�t�wxx�y*k*n*sGt*y5k*ln*stGys�t�b*f�m*n&s*t�x^fkl*�n*s^t*n�txxysWt*sGt�n�@�b&fknrstwxxy�k�sGtGy*k*nGstGk*n*s�xGn�syxm*s
b�fGkflGm�nrstxx�k*n*s*tflGnr*s*tGyn�s&txxGy}sGt*n*s*tx�p*nGsWtb	�fkGl
�mnprstx&l�r�kfl�rs*n*s
�tfbf�k�lstx&r*str*s�b*ntxx�f*n0Rr*s*tflGnfrsGy�b�m�n*s*t�rt�n*s*t>b-l�n*s*txx	�bfk*mGn*s�txxr�k*s*t&l*s*fk5n(<r6�s�tG@bfhGklmnrstx*y�l*s?l
r*pypfsy�nst*y,bGk�n�sGtGyGsQtfl
nrsGyGl*sGy	fk*lGm*�n�s+tGy+b!kfl�n*s*t/y@lsGt�kn�l*sW@f*klnrstxx*ym3MsGt�y}s&tGn?s{t*n(�r*sGt�y	�bf-�kfl*�ns�txflQnftn�sbf
�hk*lGmnpGrstxGy�lt�x�b�f*n*s*t*knQr*s*t�y*st�rRf�n2rstCx*kflQn*y�b�f*k�n*s*t'kl*nGs�tGn*s*yGn*s�tbkflGn�p�s+tlGnsr�fkfl5nstxxr*sf*k*s*t*y�n*sGtbfklmsnpsty*l�n*sGt|l*n*s*t#Bp&rsGtt�xyb*f*n*s*t*y*l.m*s&tk]n]r"qtxx'nfl5n*s*t	�bk$Rnr*s*txx&yflm*s&ps&xGyk�pn*skrs�t�bfk&lcn&prst�xyfl*sftflms*kGn	�flGmn*s�t�w*y�s*y�ks�fplnt*s*t�xkt*y�f{n*skn*s�t't�x�l&sGp*s	*@&kln/r*s�tGyGfGt*s�t
�b�k�mn�p�r*s&t*yGk�l*n*s*t	@f&lmn!dpstr*sGtlfG@f?l�sG@lf?l�llfnG@lffk*s;�n�n;�slf;�w@�bfkl�mnxprst*w*x�n?s*y;�l*snGs*t8wGn*sGt^x�b�nrs*t�xkpMrGk�n*l�mt�r3*n*s*tw�n@bf�hklmnprst�w*yyf$�lQn�s7kk�ln*s�txtZr�pp�r*s�b�l�m�n�r�sGt	�bhGkflnrtGx�b*m}s�fGm%"k7m*sk�n�r*s?t*y�k*n�sxxGyClGn*s�tkflJmGst'l�m*s�l�rstkp*l7s*tr	XymGnsGtGy*s#tt�k*sGmGn*str*s�ln*s&txxfmk'nrsxy*l�n*st7m�n�r*s�yG@Gf*s�sGtGs*yp�k*l*sbf�hkl.m	�nprstw?x<By&l�rGl'txb�l*s�x�fns&tGx*s?tbzr�nGs*x*s.x�nGr*stkWlr*sGxGnGp*tG@GlQn�rptGxG@CbfklmnGprstwxyQlGnr*sGt�x*kOsGyh�k�l�mnrs�t�x*yt*s�tGnGs*t+s-�tGy�kGt41fkGm�n*st�kGn*sGy�mbfklmnpstxln+ps	�tb�f*s7rGl.k'l�m*s�p%$r�km
+s*yHn(8t�k*sGtlGn�s*t�y 	slGmGn*stGfWnk*n*s�tQl*sk4y�kfl�s*y�m@GhklmGn�pst*x*yrWp�b>flGnst^skWn*k*s*yPb�k*s*yf?l*t*@Gl?w
bf�hkQlGnrs5txGk�lGtl*sGx*yl*sGpGt�n^s*t*ytGmWrbfhklmnp*rstwxGyGk*n�r*sGt*y?l�n!Ir*st7lQns*y*lmn*ln�sGt?r?k�n*s}t*ybGn*s*tlsWtiy*s*ty9$t&k*s+tfln)Rr�stGyGs*t*y�k�s
�kmGn*s�txxy?r*s�m	Kb�f�klm�n,lrs*txx*y*k*n*s*t*y+nn*@*n*sGw�lGn*s*t
flGmn(�p5r*sty�k�sGynGyGkGn*stG@lf*s*klGns*t*y*sxt*yOt
G@�f=�kl�m>�nprGs*tGxy^sGt*yrft
.f4�k*s*t;�@;�f;�ns;�t;�f;�k&k*n&tGnr*s*t0s*tlmrsn�k*lGnGs�tk�st*lr*s#fp*kGn�l@bfhklmnprstwxyxf�h�klmn46prstwPxy�hGm�n*sGtGk*sGt�k*l*sGyGb�m*n7pGt�x*m�sCtGb*k*s*lGtmpst�r*slWk.f	�kb�hDklGmnGprst.wxyl*skr7f2�@fk�lm	�n�psGtGyll�lGmrf�k*sGyntGk�s�r�s*tGk*s*t�kGlzns+tGxGyflGmGn*s*tl*t&k*s&t&lGn�r*s.wGkGpQs	f�h.kl*nst^xG@?sCn�kCt*l�r
�b*fklmnrst?w�xyGkGl*n*shtxx	bf�h"�m5Pn*s*tGy�n*s*t*ns�ttkGl*sUkflrGsGt*x�hGk�n*s*tGy*k*s	�t�bcl�n*pxr*s*ts�k�sf�klmnprsty	�nr*s*t�ls*tGm~tGf*s�tG@n*s*k*n}s*st�h*sGl*n*s*ttn*st0y>YkGt5n*s*t@'m&@bfhklmnprstwxy*lnr*s�t*stGxGnr*s�kl&rGt*nGp*sGtWlGmnCrGsGt*s)MtalmQnr�stxxbGn*n*s*tf*l�n&s�k*y�f*sfhkmnpr7�st&x*y�r*s*t�n*s�tGkfl*sGtr&f&sGtGy*n(�r*s*tG@bvklnpr�s*tyGlGrflstf�ltb*n*s�l{n*s
bfhk*mGnrstxsQk�l�x=mGt*fQl?tGk*n*tlf*s�t*kGn*r*s*tGyk�lGnGp/st&l*n*s*t	6�f�kGl&mGn�stGy#�k*s?bfkl2�m�np�rst�w[xGy�l*sGx�n!r*s,t*k*nCp*s�t&x*yGn&sGtCb�hGkGl�mGn&pr*s&x*y&kGm*sGtGx*y�@Wbf�hGk~lGnrs:�tGlft2�@f&klGm*n&p*rsGtGy*b*k*r>�k*y*n*st*lGs�tGk&lGm�n*r?st&xkfl�nsm#�pB'kxm*s?f*klmnGpGr*sGtGxGf*y�ksRtCl*n*s�bxm*nr*st�nGb*s@bfhklmnprstwxy*l�n�rs*m*s*t=fGklamnr�s@�t*xy*k*st*k�t*kGn*s*tGyFblnr�stGx�nsGtGwGyflGsGxGk*sQtGyGnGrszkGkGlGnGpzr*st*s�tx@bfhklmn�prstwxGyGk�lGnrs&t*s*t�yCt7l*sGtGx*@Gs�tGx&k*lGp�r*shtG@Gf&k.Ost*y&l�nGr*sflGnrs*tGy*fGl,nGsGt�flm~np*st?n*y�@l�tGn*sGy*n&pr*s*t�k	Xn*kGl*tGnGpGtGk�m*n*s*y
bfkk�lnprstw&xGyGk*l�l0�nst|n*sGlGn*sGn*s*x�kGl<�b*tWr*s@�n*y@�blf�hkl�m*n*pGrst:}x�y�r*sfl
�mn�rstQnGs�x�k}s*y�k*n*s�t
�bf*l'nr�s*tcxy�l�n*s*tQnGr	�fGklnGprOs*tGtGysGtQl�n
xbGkflGmn�s�tCxy$vlGs?y
PbfhkflmnstGy�lm*n^s*tGy*kGn*s*t*yfl*nGs*t	Gfk�lm5nrs8tysk�n*s�t*y�y@bfhklmnprstw;qxys*t.�tG@l-�r&s*t�n*t{m*n*st�l�mGn�s�t*y�bGnGr?h*k*n+stA5rs�n5k@l*n7�sGt�y�fkxm*n�p*stGn�r*sGk�n�rflQnGxGmGn*r*sGtm*nnt
�t
G@&kGmnGp*rsGty�k*p*s�sffl'ns&t*yGk
�s*s�tG@bf&h�kxmGn 	s*t�w&x?n*sCtl&p*s@bf�hklnprstwx*ym	Xt	5klGn�pWrs�t�xGbGf�n*s8t&l*n�t*k�l*sn*s�tk=�n�s*y�l@�h*n*sGtlxk5n�rs*t�x*yn*s*t&k/k�m*n*s�t�kl�mGnr;%sGk�s�klxxGyfk*s*s-�tn*s�k?s@bfhklmnprst*wxy*kGm*s*tGkGlGn�r*sGxGy	kl*�mnGrs&t>xtxxGf�r*sns*yGs^t.tnr*sGtGf0lm�t*s�tb�hklmnrst*yGk*l*nGkGtfl�nGr*s4�t*yQbGn�sGtfl?n�r*s�t�f&l*nptt*n+s*t�k�r*s�tGk*n*s*t*b�kWn*st*yG@AbGk*lGn*s�kflGsxt#yGl:2t�l*n*s*tGy
�f/k*l�np	�rst*y�r	�l&mGn�pxrsxpbfhklmn�prstwy5k*l�l*xl*nGstxx�n*s*tGnfr*s*nGr�sGt*yGn�sGt�wGkflGn*s*t�n*s*tGy
�bflxm�ntGk�n*pflQnr*sxkxmtG@*sb�l*n*sVn	GkGlm�ns*tWw*y&k�n�bGn*sGtGkl*m*nrstGn@rs�y�mWtfsfsp*y]k*k*s*t�y-ls�txx�mn*st�xr*s@bfhklmnPprstwxy	b�hlGnrst*y�n�s�y�n*t�n*tMk	b�h�k�ln�r*stn*sAn	�k�l�m5nrs
tGx�n*sGytGhGlmn*s?t.@bfhGklmnprst?iwx�y'lWrGtGl�r�sGkOn*sGtCyGn�sG@dh*k!�l�r*s5t�n*sGtGk*nst�krsxbGp8stGnGw*l*m�nGs*t�n*st	=f�hk*ln*s*tGy+stb?�f�h
ukGl9npst=wlGns*t*ytGnGrkt	�rGkGnr
�l*k*n�r*s�x
0Rblfhkl5n5tpstwxGy�b*kGlmsn�x�h*s�tDrs*y�fGlGn*st�w*ymGn*s
�b�f�l�mn*p&rsGt�w&xy�b*s*n�r*sGy*n*s�wGf*kGtx�f#klGnpst*k*st�r*s�nk�p*pGk.wlGs*sQy�@bfhklxmnGrstGw*ylGnGl�nGt	�nfl5nsGt�kGnGsGt*y�h?kfl*nGs*t	�n*t	xb]flGnps*t�w�b*ns*t*y�lGn*m?�tG@bf�hklmn?prs*twxy�kGl�nr�s&t*xGy?l�rGt�halxmF[nrsmQb*s*sCt
�bffl�m5ns+tGwGyGl*s*t*m*n*s*txxnGr*s*t*sftGkflGnGstGy?bQk*m*s*y	�l�m�st�wGk*n�r*s*tGl�n�sGtfl�n*sGt?k*s*t�bn�r*s*t
�f*k*s�bBflGm5n�pGrstE�wy*k*s�t*yQrt�rGk*l*s2�@s�f41fl.mnsGtxkGm*s�k*l�s*y*sBt*yn*s*s�tn	�kbfklmnprstwxyGln*sGtGyk'l'r*s�t/y
�x	Gk*lnrstxxy*s/ztzt*y�l
�b�f�m*nr*s*t�w*yGb0fkGnfrst*y*n*s�tGkflQnQr*s*kGn*s
G@GkGl�n�rs*t&x*yZb�fh*kGnstskWlxmp*s~t�w�pxsnr�sGlr*k�sk�ln8�r*st*n*stlk%mk�l�r*slGnGr*sGyGf*yGm*t�b�fklI{nrstw*y/nons*tGyTf'nst�w*yfl*m�nk*n*srf�k*s*y�l*s*tflsGy*n*stxx�k�xGl*n*t{kGl*n*sGt�l�nr*sGt@bkUln�wl*k*n�s*t@*s"�sWtbfhklmnprstwxy	G@kl*n-0r*s*t�x�sGk*sGt*ykln+s=tGx/yflxx�m*n*sGt�y?r*sstGfGm*stGf*s�h*s
Tb�klCmnGprs/ztQ@Qb*l*n*r*s*tGk*m*n*st�b*n*s*txx*l*s*tbfkmn	�rst�xGy=rGs�l�r*tGnrGsGt�nGs*yn*s*t*s�t&kGm*nsGt.kCmQp*s*r*s	&@Gkln&pGrstGk^s*sCtWx*sw�l=bhk�l*nGrs&t�wGxGyGk&lGs*l*n*s*t^m*n*sGt?lGn'r�s@*fk�l�mn	�r&s�t�x@�yGl*n*sGt&lGszxsGtf�m�f	xklum'npGr*stwGy�m*n*s*t*y/rGkGnr*sGt*m&p*sGnt�bmGnxr*sGt�p*s
G@4k�l�mGn*rGs/t�xPmn*sGtl*s�kb?�kGlnprsGtwxB�l�t�m*s/s*kGt�fGtGk*t*kGl�b�fklnxp
r*sGt�w6�xlp*s*tnt�wGf*n*st�mr*s�n^t�f*s*t~bfhklmnprOs4�tw*y�l�rxfkGtGkPm�f�hlk�n*s*t*y�kGnQps*tF�tGlGnGsGtw*n�rs=�t�k �m*n�s*tGy*@�l*s*tbkl�mnprst�wWxGlGyGnGs!k&n�r*s*y*kGm+sht G@Gl�r&s�b*kn*sGtGks�mnGs�tQstGmGn�k*s@bfhklmnprstwxybf �h�klmGnrstwGk-0rtGn*tl�n*s*y�n�sGt*y�bQl*n*rs*t*kns�t*y*lGs�ntGn*x*s�t*@Gt�b�f=�klnr*st&xGy�m5n2�s*t�w�x*y�k*sbK�fklmnrsGt*y�lGtQl*s&txx*stxx�s�kGs�kfl�n*sftn*s@f5�klnrstx*ykfl*sn�r?l*nn?sGt*y*kGs+shtgb�n*st�xflQn}sGm�t	G@flGm>�nGr*s*ty;�@f;�n?s;�tG@f?l�sG@lf?lft�t*l*nGr*s,@bf�hkl�mnrstwxyl?nGt�bGlyn*s*s*x�f�nLst*y*s*tGy*nGst�b
txx�h*l�n*s!�txxGy�b.fhk�l%mmnstxxyGl]n	�l�@Gs	Gf*lGn�r*s*t�wGyt*k&s�bfGk ?l�mGnrGsSt6x*y�lQn*sGlGn�s*tGyGr*tn^sl*s�s*yGm*s0t*x@bfhklmnprstwxyfl*m�nsGt/ykl5n�rstGy*ns�t5not*y9Ot<Bkfm*sGt	f�kcl5nrBms*t*y*l�rn*s*t*s�tm*nt�n*sfl�n?s*yGklmn�prstwx*y
G@*f*kGm�nr*s&txx*k7�sGns�t�bflJr*sGmn*s*t*yfl+s�t	�bk.mn�rst*yQf*tGk*lGnGst*sGwGfflGmGnxrtGln&txx�s*t�f*s*nGp^s�k*n�s*t*y
@bfk-�lnA3pGrsStGx*y5tr*t-l*n*s*tyjn(kl*n?�r&sGkfl?nGs�txxfl�nst*y*n�r*s@�hklGmGnst�xGyrp�k�sGy*@GnGs*tGy*n*sGt*yfl5ns*tGy	Gf23l�nrZs*t.x*y
�bf~kfl�n�rstGy�l*l*m*s7<fklmnpstx�yxbl�n}k*s*ytr*s�k*yflGs�t@�l*sk*�n*srt>�pfl5n*s&txx�n�r*s*tf�hk�lCm5nQpLstGy,bk&s*t�y�lxx*lGp*s*t	GfznQp�r^s&txxGybfkl�mnprstwxGy*kl�rGtnGrtGxCt*s^txl*nr*sGtGf*k
ns&tGyfl�nGtzl5n�pGstxr*@xl*s	�b�fQl�n*s&txxGy�m*nGp*sCt?p*sGy/fGkGmGr*sGtGn�s	?�b*f~l5Pn�pr*sGt5n?s*t*ybGfklGm5nps�t*yGkIclGbGnGtsGt*y�n*sGt
bfh=k	�l�mGnpst�w�x*k/lWry?n*s�w�l*s�xl*f*sGp�sp*t�w&kr*fGpbfhkl"�mn�rstwTx�yl�n*s�tt*l*n�nGs2�@�l�nGp*stxx*n*s*tyn�m
�h*k�l*�nrstxxGyst�n*s*txxflGm5n*s'txx41h*n*s*tGy*kfln�srtflQn*st flGn�stGyf�t&kGt>bfGns*t�k*lGkGrd@bfhklmnprstWwxy�b�kr*sGt*k*l�lGr*sGtGl*t
�b0fl5nrs&tx*y'f*kGm?n�y*s�tnl*nr*s*t8s7t*yf6�k�n
�s+t*y@*n�knGr4sWtlGn*sks*y�ksGy*m�t*ls5t�x*mGn�r*s*t?lC�r*lGnfr	�s*tGy	<�b�ffl5npsty*n�s*kGn!r�f*n*s�w
bhklmnGprs*txy*lQt]l@l*s�tGnGr*s�t*yn*stl�s*y	�b�hGkGl*nxpGsGt*n�s*tGym|st�yk*l*s.@r�kfl�n*s�p*s�bGn*s*tlxm*n*s*t
Nlm*s5�@<�nr�sGt�x@bfhklmnprstwxynsGt*yCkGs	5klm*nr&stGxbGn*s*tGk�nGtn*s*t
G@�kl/zmGnr*sCtGx*n�stGy*l�n*sGf*k�l*mnGsGttflQn*s�t
,@.fxh�klmnrstx*yfl*n?s+t*yn&x*st*nr*s*txxflQnGy�kl*n+st�wGk*yflGn�rs
�tGknGsht*n�p*s@�t1+f*l�n&rGstfln�sl*nGs�txx�s*y�fk0#mns
t*y*n8strGk[s&sGt
�bkQl*mnps*t�wn*tt*k8sf�h*s�tr*s*lGn*sQns*x*yF�nGt
hk�l�m�nstxGy?nGt�bflns�t*xQbGlGnGtGnGs*ys�n*sxt*s/t�kGmGns�t�yCkbkl�m	�nWprs*tw�x=nfl5nsGtGyQn*t�n*lxm*n�p*t�w�mGtxm&s*t�w	Gkl*n�pr�sGtGwGkGs&f*sGy'n*s/tGy
bfkl
.mnst*yGk�l*s0r�l5nxrs*t*yk*ns*t*y*lGsfl*m�n*t
blGmnrs�txx9�y�lCt�n*s*t*yGs�t*s�txxGy
?bfklmnGpr�s*t�wGy;�lGk7�l*sn7r�s*tGs^tGnGp*s*tl�nH�s+t�s*yk(�nGp%�s*tGx�sxtGklxmnGr*st�k*n*s*t�n*s�fGkflxm�nGpGrst�w&n*s�w�bGk�l/mn*s�tkGlGst*sQt�@bfGhklmnp&rstwxyk	rl�n�s*nGsGtl*mGnr*st�n8�pGt*y*kZs*ns*s7<t�kl*nGr*sG@*stxx*y	�bfGkflGnst*yQrGtGn*s*txx*n*s�txxGyflQn*s*tGs�txx*k�l*sGt/fGm'tbfk*lnGp&rst*yGkGlGn*l�n*s+t?wQfQl*mGnGs*ttWrfl�n�s*k*n/r*s*lGn�sG@
�w C�@bf0hklmnprstwx?ykm�pGk&lm�rGt&b�b!kln*sGt/y�n*sWt*yGsxx*lmn6prs*tp�s�kl�s*yfGm�n�k*nGr*s*tGyGn*s�t	@Wbkfl�ns+tykrOHf*str�km~n[s(6kGm*n*srtxxQsWtklnst�xnr*stl�kkr+ft�p*s~tWx*fGkr*s�kGyG@lfkfl�nGstr*s�tf:xlGn*s*tG@l*nr*sGtGtyQm�nt�k*nGklGnstxx$�ks*yGm*n*s'txxGm*n�p�s~t�f*n*s*tGy.fklGmnp+rst�wyr&k*sGt*ys*stf?�t
�m	Gf*kGlm?nGp*s't!l�kn�s@{s�t	fkflGnrsLctyprrsWtt�b�xs�fn,epGy�sfl�n�xnp*sWms�tGk3n*s�lm�n&pr8s�ks<�t,em*@?nst*yl5ns*t�k*yb�hk:�lmnp+rst	�wGx*y*k^lGk*lGt*l~ngbfl*n.nsGt�l�n&l	Xn*slstxkGm*snZt*sWtGyk�s*txxl*n*s*t=�xQnszt*y*m�t�fkalpsxk�nrffln0�ksl3m0r@k�l*s=�xr$�p0�nrf@bfhklmnprstwxy
�k�l*mnrstGwGy}s�t�xGbGk*s*y*n*s�t�n*s�t
GbfhklmnrstGxyr*s�sxkbGk*nGp*s�m*ns*tGn�s&b&l*n*s&txxGk*m*nSsF[tGxGy�kGn*s�tmb�fL�l�n*s&tx�nr*s�h�s
�@
�hkl>�mnprst*xy*n
�r*s*tGkGn*s�t�yk�lGmsGt�w*s�t?n*s�s*n�s*tGk*stflxm5n*s�tfl5n�s*t*y�hs[t�w	�k?l*mnGr*sGt�whls�t�nGhxltC@b4�f�hklmnE�prstwxGyGk*l7r*s*kGnUTr*s/t	G@Zb�fkSnRst*y�k�s*y*syp�k�n*p*sk*nar�s�t�y*m*s*yQf�nGp*s*tGyfkGl�m*npst�wxE�l�n�rQkl*s�tt�yGnrs*n�s*t�mE�l
	�fklm5n'r*s*t�yfl�r*s.t*yQbBtGkGmGtGx*yfl�nGpWsGt@bf�hklmnprstw�xy�f�kflnWps*y*@GsGk+l�n'rCtbhklmnpGrstw�x�y�klr*stG@Gtfl*st�t*yxr�s*tGfnGp*t-�k*nr?sx@*stx�hn*sy*s-�w�fns�t=�t*fGt*kmGnpr*s�b*s	XlG@*k*fO�tl0#mnpr�sGt�n*s*y}s?t,tfGm?s*k*n*s*tGyGk*n*s*t*yh&kGmGnst7alumGkst�fGm*n*s~txx�m*s*t�fol�mGn*sGtG@*n�s+tGy.b1f�k/mn�p*st�wxy3"k*stxx*f*nOHr*s*t�k*lGm�n�r*sGtbf*kGl�mnGprsGty*k*l�r*stGkfl*s*nR�p*s*tGylk*m*saw*nGp*t�lGnGrs*t?y�b?fE�hGksGt�w.9t@bfhklmnprstwx*ym*k*l*y&klrs+tGy5ns�t*y*s?w'bl*nr*s*tGk�n*s*y*sR�t�nGt	?klmnr*s*t*yxbGnGy*ks+tflGn*s*txx�f*n�fk*�n�stCxy�k*sGyGkn*s*tGy*n*sWtfCkt�k}s*yb-�l�bk�lGm5nstGwxy7l�n*sWbflGm5n*s'txxGkxr*s^tGylm*s@bGkl*n�r�st.x*y�ksGy�kU�yGny? Qs	GbhGkGlGmGns&Ct'k�tGkfl�n'tfklamGnxp*stxyr�k*s*tkxl�nsl�st*y*f#r*s�lGnrGs't&xnGx*k*n*sklGl�sn:Yt
UfklmGn�p}rs+t4y�lQn?r*s>�k3*ysI#m�t�kt�b*s*n/p?tbfklmnprstP�wxyGklGmfr*sGy�n*sGw*lxr*s�b�fGk;qlAm4�nGpO
rs~tyGh*n*tp*snEkGlGn*s&n*s*k*s�t&kGpGt
gb�fGk*nr*sGtGxGyflGm*s*y
f4�k*lGm5n�p*stGy*@?w�lsGybfhklmnprstwAx8�y&kGlr�sGk*n*sGlQr*s
.@&flGn&pr*sGt	�x�p�s�fGp�b�n�s*tGyG@?sCt�bfl*st=n&kmnJXkGl5n*pGstG@lfGn*s�w�fmGnp*stfl5nsGkxr�n*s�hfl-�m�n*s�fGkGnZ;bxmn*s*t�b*sGnGt*@bfklnprstw|xyG@GnL�l�mnrs�fGft	�yGk*s�h�st�y*syGpGns�t*y*sptt�m�fGn�s�bfkGn*sGtx�r&xkt@fk$�lmGnp�rst�n�n*s�kGn*s*tn7<k�l�yGsQtGl?rV�k*s�@bfhklmnpGrstwxyL�lGm�rGt*y�k*s=t#�y�nGtlGn*r*sGt*sQty6�f>�kGn�p*st*k*nr*s*t&f*s.9b?f&kGstU�yGn�s*nQx	�b[�k�l"�mn*stGyWb*s�t�k�r	b1f�kfl~n*st?w�mr*sGyfl(�n*y*@*n*s5t�kGm*n*sGy�n*sbfhklmnprstw&xGy5k;qlnr*sGt*stflxm*nr*s*tCk*sat*@lQp*sGxGy�l}n&psGt�b	xfl5nCp[r�sGtGy*@n*s*y�b*f*k�n*sGt*yG@+�nsGtt�r*s�b*nGs�tlnGprGstGw�n*sCtGkGlGt�n*sZt�blrst*m�s=tGy
GfQhklmn�prs�txy�r*s*t>�kfl*nr*s+t*y'n*s*n+s�tk9�ns/tGy@l7�r�stfl*mGn*s*tmGn�kV.sl*n�sfGkGlxmQr�l*sbfhklmnprstwxy5kXvlnrt�kGn*sGt\�klGn?st�nGt*y*n*s*t.x0nt*nsr*s�t
GfhCklGmnGrGstGk&ptrEl�sflGt�r*s*t
�bGkmn�pr�sGt*yGnGp*s�k*n*sGt*n0sGtGl~n�ps*ttfl�r*s�xfbl�nst*x�hs*y)pGm*s'tQm�r�sGt�l�nr�sGt*f?s
fkGl�mnpstGy'bl$�kmn^stm*sMt@�yU�tt(�rkGn7<pstxys�l%s�tr*s7�kl*skWl*sk*s�y+slfklxm5n�pstw�xGfQn�r*spGr*y�xp
�rGkGl�nr*sGk-�npb*n*t	*fGkfl�nGpfr*sGx	Gf�kGl/mn&r*sGt&kGt*l�p
�r*sGt*s[tG@*fGkGlxmGnGr*s5t*x�y�bxfPLh~k:xlCmn=pr�sE�tGwGx*nCs*tbfk�lm�np	Xrst�wrt�sftn*n*s&txx0hnr*s�k�s�ms=�kn�bkl*n7r*s*tr�f4�k*s
@bfklmnprstx�lm{s!dtyrztl�k*s�t*knyt�l�sGbl
�minrs�tyks~m~mJkst�kGs*k*m*st8r#kPLn�k�nt�br*s�xV�@*kQst�k|sklrmCnGnGx@R�syr
&tkl'mnsstt�nffl*stQ;sftPf*s@[tWt*x.flmn�p5�tyl[rn
�l*kstf�ntk(�lk�mnr8�sWtJ�sxxf*k*s*t�yntr�k*sanGpt�yrks�l*s0�tsQmGl*nr*s@bfklmE�npstx�mrplGt2�bl�mGnr*kr*s*ykxbk�txblnI�rst*s	KtGty;Dlpxs�r?tGn�sk�s{y�kfl�stGyr�k@s(6ktxr*sGk*sGy	Xn.9l�nr�kfGn*�tlGr*kGs*y*n*s*tyn�ml�mGnK�r@bfhklmnprstwxyGbklm'nrstGwGyflxn*sGh�kGns�st*k�l�n*sGn*sGtxyWbxms*m*n*s*tGklr*sm/�nGlts b�fhkl�mnQprstwxy[p*sGt�y�lyE�t*l�m*ns*t*s<kyk*3nGrstxx*yr]sGm8�n*m�nt*k�n*s	�k*n*r*s*t.ay
7<fkfl*nprstxx�y�l*lAmGnr*s*t�w*l*sGy
Gkl/zmnGrGsGtGxGy*stxr*s*stGm*n*tGkflmGn*staw?k*s�nGp*s*yGln	�rs*t�w�ks*yzkGt*m*n*sGtb*ns*t*yGfGnGr*s�h*sGtxG@b�f�hkl>�mn�prstw6�xyGkGlGklGnGp~sGtQftGxsQkGx
&fkflnrs+txGyGt*yGkflVrGs�t*n*s*t8�yRn
�b�f4�k9lmnst�xnt!	l*sGs5�tfl|n*s*nr*s*tGx
�bGk�lonGp*sGt�xGy
sk�n�s/t�bflGm'n*r�s^t�w�xGy�m*n*s*ts�k�sbGfk�lCmnGprstwxyrt	�f�n*s*t�xGfGh*sGtks4�t�bGn*s�b*n�n*s*tx	�x�fGn*sGm*n�s*t	�r*s�fGn)tGbGmbfhklmnprstwxyJXkHlGnGr�s�t�y@l$�nr*sCtWrwWl*tGp*s*tGl,m*pGs�t�k*l\pnGr*sGtbGkfl"�mnrst&"xL�y�k*l*sftfl*sCt*stGy*nr*s*t	GbGl*mn/pGr*sGt*lt�ls@�hGkflCmGnGpst�x�y	Xb�b�l*�nE�p*sGy�bf^kfl*nstfls*mQrk*s<+t�s
�b6�f�kGln}s't�xy*l*sGt�wp*s�kklamnWpr*st�wy0#mr*s*s�w,f*y�fGnGsGt�s�n&p;`r*s&tGykGlGs
*fl*mnr�stx*yGs�tGsGy*f?l*n*s*tflGnlGr�t&k*sGfGmGnGp*s/zt*ylm*n*s^tWn*st�h@bfhklmnprstwxy�bGmGn�rs*t�xb.9l�m>�p�r
bJ�f�hkl�m5nr�stGx�yQlGs�kflL�nVr�s+t*y	G@GkGm�n*s3rt)=x*y]r�shkl*mnrst�xy�nGlGsxxGfn*sGtGw*y-�kGsGt*kmGnU�s&t*sCit�n?s*tGyxk*st5nflGnGp*s*t�n&l~nGrGsS�tB@*bfklmnCprstwx5CyGl*n�k�l*n*s�tb�k*rstxx*ylQnztGm*s�x*f�n*s^tGy�b�kn*p*sGxn.xGk<&stGy*k*r*sfGm^sGy*k�sGy	*fQk�mGn
.p*stGy*k*n�r*s
�bfYUkfl7m*n?r*s^tfl�stGk*s�xfl5nGpGn�sBt*y
G@bb�fkflnprstx	�y	�bGk�l*mGn&r*s/tGn&st*k�rBkfl*nstxxGy*n*sGtGy�fflGn*s*t*n&s�t*yGlGnY�s*tfl5ns*t*y	Gf�k�lGnrs*tGyGk*sxxGlGnbfhklmGnGprst�wxGylWr�l*sGxm*t�r�l�nr�s�t�y*n�s*t*y�f*k�ns*yGm*sGtGyTsCitzt�w*y�fkxm�n0p*sCt�wxxGy+p
Gkl{mGnd�rs*t*wxfl8s*y*f*n"t�ffl'n*p*s*tGy
bk*l�n/rst*wGy�l&tl*s,bk*n*sGt�pkmGnp]�rr7s't~nrR�s�bfkGlmnGpstxx�yk*s*t/yfl�txxxlGs�t�n(8t�b�hflGnGstGn�s*lGn*stxx�kr*s�nGr*s*tGy
�@bflhklmnprstw*xyGklGt
�wCw�bkGlQr�s�t/y�txxlnr*s*@�sft*ys*t�s*n?p*skGlS(s*y�k�sGy?@�kn*sGt*n*s*tx�f*n�sGt�xHk*n*p*sGtGm*n*s*t*xGyGm�s=t*kmnrs*tGy<�b*n*s*tf*lGmGn*t'b?kz@CkGr5t�k*s�@bfhklmnprstwx;`yGklr�sft&k*s*y�b�l4�n*s�tCxGlGp?t�kn�r*s*tGsWtQkOns*t*yflQn*txx*kGnGtfl*n�rstGy*lQn*s*t*f*s�tml*l*m�nGst*y.k*skmGnsCtw*y�pG@sf@�f�r*sGtGlGtxylQn*s*t�t*y	*@GkGmn�rsGt�y�ln�r�s&txx*y	�k�l�s
xb	xfk'lGmn�p�rstWw*xxk'lp�s0�rfl*sY�tGnr*sO�t|lJ�nGt
�bmsnExs�t�@bfhklmnprst*wx�y	=fGklGmnrst�n*s�tGy�b*n*st�xr*sGk�l*y=kGn*s*t�mtxx+b*f*s*t�f�nGr*s*t�kl*nGrst/yk*t�k*n�s*tGybQl�n*s*tl�n7t*yW�m	Gk�ln�pr�sGt*yQkfl*st�k�sF�k*sGyWbGhknP�p*rs�txx*y�k�sGyPmGs�bGlr3rtxxklGmGnp�rstwCxGy�b�n*s
Ht�x*n#s+t*yl�s"�mnr*s'tvs�b�t�b�f�k�mA-nr`�s�txxGyn*s*tGy*s�xF[lb
�fklOmnrstx*yls�t�p�n�r*stxxfl5ns*t	�bkmnstxx�ystxxfl5ns+t*n*s^tnt*nr*s*txxflQn*s7t*yfl]�nGs�tfdnr+tfl�n*sftfl*sGy�b*ffl5nfr�s*t0f!klnst�y�k*s*t>b*n*s�tGw�x�b*s�txx�bGm*n^s*t�bhm*nst�xns&txx�bCf�s,b�f�n*s�tf*sGf*nGr*st�xbflGn*s/t
�b{flm�nr*st�x�tntvl*n*s*tGlrsGt�f*sn*s*s�tGf*kxm�n�p[r*stw*xGylGr*s�xQn?s*y*kxmGlmnr*stF�n�w*l*s�txxGy�b*lGn*s
�bfk*lmGnr^st�wxxGy�k*s*ty*n�t�nGs�n�kGp*sxxGy,�f*n*s*tGy�fl?n*s	�tQn�sGt*yC@bfhklmnprstwxy	Gkl?�nrGs'txx�ys*yGm*n*s�txx�bGk*sGt*y
G@b3�fklmnrstxyl*n*s*t�lsnr&s�txb*n*s*t-�xn�l*nr�s*t	&fk
nshtGw-�x*y!r*stxx*f*l�n*s*t^f*k*�n*s*t�b�l*�n�st�xflQnfr*sGy�b�mnstx�k*n*s�tnl*s|st*ybGlnGr�st&st*n*s*t�x@nb�kfln�s^txGk*lfl�tn�l*sbnrGs*txxlQn*stflQnGs�t�x*ls&txxn*s*l*nOs*t�bn*s*ts>�bGmbf*hklmnprst�wx�y~nOs*tkflQnGr*stn	Xf�ln�stxx�r*t*fflGnr*s*tb�l*n*s*t�fm2%ni!s&txx*y�n�r*b�s5ptk�l*nrGs�tt-�xf*mGr*s*t�l*s�t*k*n*s
�l�s	�bGfknst�xGy�n*s&tx�n*n+s�t�xflxm�nI�p*s*t�wl5n*s*tGy�txx*yWb*fGhGn*stxx*f*n�r*s�t�b_�f�knGr*stGshtxxnQl�s6�k5npU�s+t-�wGy�y�bGkGlGnGr*stGkGlr�k*y	%mb�hkfl5n*r
�st*cl*n�r*s*t�nGr*sGtxx�y
�hklCnsU�t�wxGyflQn*sGxQn6�pst�x*y+bGm*n*sGtxxfl�n&st�n*s@bfklmnprst�wx�y�tGk*rstnxlxx+b	�ln*stxsf+r}s�lnr*s!�t�m*nGstxlQn�st*y�p�txx	?�bi|mnpGst�wjxfl*n*sGt*fflnfr*s�txxsGt	G@�b�np�r*s'@txxtxx�f	�b�fknGpst�xn*sGs�t*lsGt*st
.rflnr*s*tflzr�k�txxkrst�x�s�t*n+stx�r*s�nR�fGn*fml*s�n�sGy*ffl�n?st�nr*s*tbGklkmn�pr&stGxF�lGkxx*n+stxx�ln*s*t�p*s�bkn*s^txxt
xbf*n*s*tfl�n�s*n*s�tGffljn�txn'l*sn*p�l*r*s@bfhklmnprstwxy!sr*klr�y�n�sft*yxkGn*s*tGy�bk&lGs&tGx/y�txx'n*s�t	lmGnrstxxGyk&m*st*yQw�nxt*kfl�nt*cl*n*s*t	b&fQl5n�r*s*tGy+lWr
bfhGk�lmnN�ps
tw*yrGm*s*y�l�r*s]�nG@lfGsGtfl*m	�tGkxm�b&klnps�bGm�n�s�txxlrttxxf*n*s*t^Onrfl�n*sGy+b�sGr�sGy�bk�l"�mn*pdrstox
s&t	�bzkfl*mGn*sGtxxGffl�m*n*s�tGylnr&st*n�s&t*s&t&xlc/ptMf�k*s�x*ybfklnprstxxy\n�stxx�f*nr*s*tfl*s*y	kl*mn+s�tx/ytxx*f*l*sxF�n*nJ�s*txx�l�m�nstxxUXm�b*f�l*n*s*tFb*n*st�r*sffrstla�xkns�kl�tpk&nsxx	�t�xfln*stQwGy!Is�n*s�xGypt�n	�txx�f�n*s*t*ykfl6�m�ns/t�x*n*stxx*nWr*s*tt
�n?fxm*n�swxm*tb�fk*mnpstxxy�knGp*n.t�kGs�t5�x�b*k�nWr*s3Mt�yk�l
�fflm5nr+stxxGynst!rn	�r*tsf
�r^fGr*s*t�kn*s&t�l*t�fGkn�t&k9lGn�s*t�fl*nGps
�t?wG@�m*st�rGl7�n*r*s*t�bl�mnGpGsGt�k*s
�k8sk�m&n	�sGtGkml�tx@bf�hkln7&prstxylGt[�n?st*y�l*s*txbGkCs	Qk�mnb�r*stxx�y[r8�sCtGf�k*nfr*s*t	GbWh(�kfl*nGst&xr*sGn*s*tGy		XfCklnstxxyQn*s+t*yGh�k*s*t&nCsffl*n�s*tOlkl[�m5n:�st*yGlGmGn*s*nQr&st*y�f*k5nxr*s
�tGy?@PLbfGkln&r&s+t�xGy*sF?txx*mGn1�s&txx*y*n�s*t&n�s	jVbh�kl*nr�s�t�f�t@bfhklmnprstwxy*l*s?t]klGmn�prstQw*y*k*mGn*s+t*y*rGs*n*s
�txx*yEtG@2�klmn*rst&x�y$�k5ns*t*y�kGn*sCitfl*nF�sGtflsn*sCtGkl5ns�t�xGyQk*y+�mp*t�w�p
�sm�nsxtPlbf�h�klmn�prst�wx*yQkGn*sGtGmGns*t*y�b*nGkGlGsSt�m�n�sGyfl�m�n�p*s*t�bf*l5nrst*ns*tGt�xn*sGk�l*sQ =�bkmnrst*w�xCy�n�bflGnGs*sGtGyfl�m5�n�p*t;fGn*r*s�ty�f*sG@b-�fklnpCrstwxx~yl*n*rs*t*y'ns*t*yr�k/kntsGt*yl*sk?s*y7<fklGs�tWn*p�kst*y*n*stxxQkl5n�sGt*yfbGfxm&n*s*tk*nr*s*tlQn,3szt*yGm*sGyCl*r@bfL3hklmn5prstwxy*mGn*sGk�l�n
�r�tQxl=n�r*t�x*sGtGyh5ka�lam5nCprsGt[x*y!�s
W�kfl�mn@rs�txx*y*st*k�m*s*t*x�y&l?n*sQt*kflGsGm*sGy	AMbzklxp*s;%t�wGyQfbf�hklmnp?rs+tE�wx�yAr?s/t@*l*sfl�r*salrzsk^sw*y�kun�sGyOl�@�n�s*yGf�kfl*nGsGt�l�r*skfl+�mGnt�wGp�r�n*sGyl?sGtG�t�l*sGtGx5ns*t*yGk*n}s*t
fsklSxnst.w/x*yGn�r5Pn*s*t�w*y�k*sGt�b�fxkfl5ns*t*n�s*t'� bfklmnprstw�y	GkGlCmQnr*s*tGy*k*n�t
�bklGmGnGr*st/yCs�f�n?sGt*yT�l	&klT�mnrs&t�xkt!ktmfr*sn�t�x�kl�n&stxxm$xtn?kGmn�s*tGy'kGsGtfl5nGr?s&xfl*nGs&tGx7{y	b�lnrSstGx*y*l�rflQnGston*s*t*fmtt�x�knGs*t�xrWyf*sGtGyr*s{nflm�n*s*tlbfkl�m5nrL�s*tGy'^l*s�xGkQns*y�m/sGk?il�n*sGt
3�bfkl?mn46prstjxGy!k;�ln*s+t#�yGs&t9l�nrGs�tnt-�fampx'r`QlE�k5ns+t*yflGm�n't*f�kflSsGtxl*n8s*tGk@lGn*s*txxfks*tlttk{kfl�n*sGyflGm�n*s*t�bGn�sGt,wwGy*@�bln*s*t*s�wGkfl�blGmnpst,ww&x*yn*s*y�tfl�m�s�r*sGn*s*t*y2�@b�fkGlmnpGrs�t�w*xbl�k�tlm~nGtbAbn*st�r*sb�k*n*s*tkt8rrQsts,3fibkl.mnsxkfl'mWnr*lQs�fGm
�nys�tk�k�sGyl*s�yy8�s,tGk�lp�yr8t(�tZktlGtkGn"�sGt*l5{r5@bfhklmnprstwxyGkN;l6�mGnr*sGy!kfl�n�s*t�yGl.9t	pThxk!}l0#mnSrGs&t*nGsZtGyGf*k5nGp*s
t�ykl�npfrst�l$�nrf�k*s*y�k*sl*n*s*t*stn*sOs*s3t�k$�l*sxx	�fkflGm*nGstGyn*sGk-sWf�hflQnGprs�kqsGkGt
fl�mnr�s�t�x*y&s�x*s&yfl,sGf	Xw=fl5n�s*t*yGkflnWst.9wy�s�ksn&pr*s*tnn�x*@bfklmnvprstGwxGy*k�sFbkflGns*t/ytxx�ffr�nls&txx�txx*y
�f*k�m*�nGrs�txx*ylb�h	�n�r�s&tflGnAsGt	klGmnpstxxWl�n*s*t*s�x6�m*strs�lTtWtGbGtk
wtlp�kQm*nGsGtGm*s+t*l+�nfr*s*tGy�bn�lfr*sGk+r*s�yn*ps>b�nGr*s*tlAf	�bkn�p*sWlGnkn�x@bfhklmnprstwxyGb�r*s&klrGsGtGy*ks+t*m*n�kGy
,@!klnrs�tGx/yGk�s�yx@Gl*s*n^sPlk�lmQpGs�t�r
lmGnGprst�x=y*fGm*n*s*txxysm�k*l*sQbn�t�f�kGmrs&x�y*sE�t*k+r*s�bfki|mnp+rsty*l*sGxGf�k4�nGr�s*tGyWbGmGsGt+s�t=ffl�n*s*t�r*sGyGn�s�tG@*bkClGmnxr�st�xyzls	Ktfl*t*ygp�bf�hk�lmGnp+rst�wx*y*l*r*s7m�nG@*tGkflxm*n*sCtxx	GfGk*l*n�p�r*s*tflGnGp�klnr�sGt*xkdm*s&t�sWttn+sGt�nlp*s�bfGhklmnpstGwx&y*lGm�n�n*sGt>�n*s�t*yk*s_^sk*lGm*sGt�l*kl0stk*n*sGt*yGk*s&txx*l*s�tGl*np*sGtxx�rGs�kGr*sWk*szbCfCXklCmn�p+r�stw*x&y�k*s*y*nGpGsGtGf*k?lGnr*s*tf*l�ksl&x*pGtkflmSInU�r*s*t�m*sGn�pGkE�lGmGnGrGsGtlxmnGpr|stxmG�t*y�kl!IsGms*sWt�x�k*s0�lns�t�m�b�bE�fklmnrst�xy*s�tGwk*nr	�s*t)b�k*nGst0y�bl*sGnxy�n*p*s*t!Ikl*stGxPn�rColGnGsGyn*@*s*tbfhklmnprstwGyGk*lPm*s7l�r*sGtGf*p*sWtGn*sGt*y�k�nGrs*xZt
Gf*k*lGnfrGsGt.w*yn*sGt*sGt*yGf�n*s*tfl�n*s*t*nzr*s*tGkGnGt
b&fkGlmnprsHtwGx*n0r*s*tQxGlGn*s*tkn*psxhV�rsGxGm�prt�lks�t*xl*s*tk=�k�sGy*m�n*s*nGre[s*tfkU0mpstxxWl6�mys0�s�lk�p*n7r*s*tfl�nfr*s*ttn.p*s@bfhklmnprstwxyklGmnrst�kr*sGy'"fk*szt*y�kGyGkGnGszn*p*sGt*y�f�m*s*t*lr�tpfs't
�@fGklmnrst*wxyrGxm=l	*bfl*m~n[r�s+t*y=bGn*sGmGns0r*s
csfklGmnrstx�n�s�txx�n�st*yfl*s(|twn*sGy*kfl�n�stflGnr�s=�t*n*s*tGynOs�fGk,tflmnxr*s=�y&sGy�l^s�tfGn'�sGnr�sCn@bf�hklmnprstwx�ynrGsO�t;�tl*sw�t�n+t*yQm*s�f
�r*s&t	h�kfl�nGrxTs&tGytsr*s�txk*rflGnstaw*n>�t*@�r*sGl2rt�f&k*n*s,t*x8�yCfGk�pstGk�lWr�y<�fkfl|m5n-r�s&tw�xGyWl*n*sGfGnGtGk*r�sGta�l5ns*tnGrGs�t)kbfhklmn�prstwx�yGklr*t*yxk�nt*y�s&txx!k�lGn"�r*s*t/y?s�t	rlGm�r*s*t�hGk|nst*y�bGm*n*stxx�k*r*s*@GkJ�n*stxx�ffr
Zbahk*m(�nGp+rGst�l�r*s�@xlGmnGsi!tGxCk*sfklmnCprS|st�xy�l�xklGn�r*s7�rk*y�k*y*stxx*y�f*nGr*s*tC@�b*s�bGsxtun�s&txxGy
f�k*nGp6�r*s*txxGy*s't�bGf*k�lmGn0�rs
t�x�yGn(st�x*yfl*n&s*t>k*n*s*txxGkCm*n*r*sGtGmn*st�l7r*sw
G@b�fknp�sty�r*s*t�yxl*sGtkGsGt*nGw*nGp*sGtxx?hPLkl*n*s�t�f*@bVfklnp~rst\w*x*y	*@5kQlxmnrsCt+s�t*yGn	�s*t�yxk&t�wxlGnGs*yb0f*s�t*yrn�x	7<k5n+rst?wxx*yfl�n*s+t>b*k*n*s*txx7b=f.ka�lnGpGrst2�x*y*nfrGs*tGkWhtfl�n*st�kGmGnr*s�t	+b?f�lGn*r*stxx*fflQn*s@E�bfmhklmnGprst�wx�y�n?l?n*tGx@bfhN3klmonprstwxyfl�nsQw*y*lWr*sGtGl?s+tGxQnGtG@f?kns*y*sGt.x�t*nGr*skWl*s#n�s*x;�f*st?wTn*p�r*s^t*k$vl
&m5n$�rD�st�n*sGmdn�st�nGp8�r*s*tb#lxyGmns*t*y�nGw�re[s�t�ns+tb*n*s*t�x
lfGh�lm�n}stxxGyfl5n*s�k*l*n*sxx~bfhklmnprs*tw;`y�lGm*sO�l*l�sGb?kGn*s+t*y&kGnGsGn*s<�t�x*l�m*nGsGt5Cy�bxf�klxm*stGp�tGn�r*s*rGt0Rbxk�nf�p�r�s}t�bf4�klxmGnprstxw?x*yPLr*k�nGsRtl0�ryskE�x�fOmstxxk�r*sGywp7mGn*s
Qfk�lGmGn*st7axyl0#m*s�txx7�p&k*n�tn*k*xGkmGnprsn�n*stCr�k:�p*s	Qk&lGmnL�stGxyflsJXtxx�fGm*sfl5n*s*t�x�ln*sk*lGstQm*sQtC@bfhklmn)�prstx`w�xyGk*lzn*sGl�sGnGs*f*sGt*yQnGr�k*ns�txGy�b*n*sGt�sGtCol�s�tGwxx�f*l�nt�r*s�xf*kl�mnrstQw*y@lGx�s*ybflGnGs*txGlGn^s�t�xGk*t*s*xGy
�b*n*sbfhklmnprstE�wxy5k�l0#m	Xr*k>�n*r�sGlGnGt	�kGm�n�rH�s&txxGyns/t*yGkGs�t�@*lGnGs	�t�hflGmnqis�tGy+sGtGnr*s*fGsGb*klGmGnCor+stxxGy�m5n^&s�t*yflQnGr*s	Bbk*mGn�p*sCt�w{r*lGmGnfr8stn*s�lrGn*yflQnGp*sE�bxfl*s�xGf*k
TbklmnrsGt8xQlGs�f*sxyGn?s�x.b�h0k'�sGt*n*tGy	fGk�lxmn*pr�stawGflGnGs*t�sy@Im*sx�n*t
�bGfklmnGprstGwLcxQk�pGrGs*p�stGyfGn*sGmnstOk�yGkv�n5kfl*stx�hGlGn*s*xWbGnxp*s*t�b/�kGns*t�s*tGlGm~ns�mE�t0y�k0�lGn*sGt@bfhklmnprstwxybf�hklmn�prstwy&lGt�kL�lGn*nr5�s�n^sGt*yft�t�kxxkGlGnGssn*sT�f�n*sOtGl�n*s*tkl-�mGn`�r�s�lk�kOsGy*l�tGxlGrGn*s?t
b[�klGnQp�r�s{�tQyGnGt�yGn�s+tbP�fklm�nGp~rsGtGy`ln*s*kQsWt�k*n�s*tGwGyGk�n*st5^rGm*stf*sl*n*sbBfkm'n*pr*sSt)=yE�h+n*s*stzn*s	�fGkGnx*s.t@bfhklmnprstwxCy*r*szyG@Gk
�l]�r*sGt�yl'nGr�sL3t�nGp*sGtGlGm5�t	Cfl*nr*s�txw	�y*s�yG@Gk*s
'@xhGkxlmnpCrs�tCx*y`n*sGk*s�tlGsxtlfGk*n�rGtG@GbxhGkxl*sWt
]bfGklBmnstCxkZs*t/y*sxx�krsftGym*sGt:+stGmGn*sGthk�l�mGnQpxrstGxytrtyn�mfl	�sb.fGm*n*s*txx*s,yc/k�sGtG@bfhklmnprstwxGylr%�s�t�kZw
Bb'klGm[In?rs6�tGxymQp*rGta�x�n*s*t�kGl�s�bytrt,ylmnprs&t*lm�t�pt6Os�mJr}skt=�s*yfGm?n?ttyGk*sftGy'm�fkn*sGt*y*st*yrm�nGtBPx�ks	Xtff�ln/zp*stl*s8gkckt(�r/lz�r*s�xfk>nlstCxrn�mr�k*lt
�r7<p�r*sGk�m�pr7<t*w�yGbk5�n9�ps(kr�sf*sGt'lfkm.pst�y=�lGrGt�k�n/�pr�tk6lVn��k'm�lr*sk�b*fWk*mnr*sGtxys|t(�n*s*yn�slVn*s�fGtm4�n&p�rtV.sExkb�fCXklm&n
�p�stJ�w3y*l�s7r*sl�m+�nrsGnsft*y�kr*s0tGyExk�l+sGtG@�b�klR�mn46p+rs*t�wGxGy�n*yl*s *sGt`�r�mGt�ffl5nrGtGxpt@bf�hkIlmnprstwxyGn*p*sxx5kols�mGn+r*sGt	klmnQr�sGt�yGtxxun�st�m*s*txxk*s.9x*@l/mnSrst�w�x*yflGm+r*sxxfl%�nGst�n*sGyGp*s*tGy+n�s*tbGlGn
�p�r9msBtmfbG@lfGk(�l7�mGnrstx*y�nGs*t*xxGyGk�p*sxx!rGslGn*sGk*sGyf�lxma�nr�sGt
�m7akWnzp�k*lGnGstxxGy*f*n*s*tGy�f[�k�n�stawGn�r*s*txx@bfmhklmnprstwxGyWns�r�l*sGt	*@kl�mnrs)t*rkt*f*m?nxp*tk*sxn�l*t�s*t*st*tGylm�pGrsxx0y�mn?r*st*yVrrls*yGm*tp�nGtt*f�m*s*t�fntyzlr!�lMRr0�kln*s�t
�n?rsMtGkfl�m*n+stx�n*@l?nQprt�bk[r+stQx�y�n&stxx�f0f0n*skJXsftrL�m*f*t*yflm�nU�st�xGy*s�tfl�m5n*s*t	�klnp8st�xyl*t*y[r�stP�rk*tkt*kr*�b*yUls0t	b�lmGnrst*xknx+nk*tWxk.!p6n*sn*r*tt?w�nGkGl*mGnGrs�tkflxm5n 	sGtn�sfsGtbk�lmGn*sGk{�t%mt?@*kG@bfklnprstGykl*nrGs*t�x{mGn*sty�p�n*t!k*sGt/y*nr*s*tX�fGm*sGy3EkGn*sGtstGkGmflGmPr�s3l*s�bl*mnrs*t=�y&s*y*s}tPh*sGt�kQnGs@bfhklmnprstwxyl�r8s*s��tGy5kWlGmr'sGtGkGs?w
`�@kl'nrsGt*wyt�xrbGn*s*tGk�nQp?s�t*y�bGmGn*sGtunY�tl*nWt*yGlGmnWr*sCt*s9�tb=f�klmnrstC/x�yol*sGkfln}st*y*kGlGn*s*r*sc/w�n�p2�sGyGnGsGt
'fGklm*n*ps�ty�s*y*n*s�t*sGt*ytsGk*s4�t�n.p�r*sGty0�l�@GfknstGy�k*n�s*tSl*nGsGtGn+�r*s*t=@f}�klGmnWrs&txx*k8s�k8sft*y�k*st�l*s*n*sGtxxxy�fk�l�m?rst�h�k3*lGstmr*s*kGn*sQtlGr�sGtGwbGnstxxGy*n*s'txx�bf*nfr*s*tGf*hl*n�s+tGw�krs*y
Vbfk�lm �nprstwGxyGl	KnGp
ur*sGtGy*k*sGt*y�lrGn�tmb*sxx�b�kGnr�s*kl&m*�ns&txxGy+s*yflQnt�p*sklGt#lK�bQ@bfklmn4�prstWwxykGl�n*r*sxtl�lGtl<�m~JnGrs*tGfGmpTn	E�bSfGn�ps+tM�x*yfl*m5n'tGn&s.t
bkflm5n�rs[�tGyflCrMbfl�n*s*t�b�fGk*lGmGnGp�s*t�x*y	GkGlGmGn�r^s+txx?kflGn7r*s*t�p*sGkPLlGt
�fh�kflnrs(�tGy�bGk*nGs*tmGn*s8sWtGmGn't*n*p*s*t
*@�b*f*kl�mGnTrsGtGx*y�@Os*y�n*tC@bfGhklmnprst*wxyGln*r*sGt*stflztGlCn*sbl{mGn*s*tGx+l*s^sGt�kns+t�y*n*s�txxbWfGk�n*sGk*l*s�t	*bh�k*nGrs&txx-�p�f*sGk*lGrn*s*tzbGk*l5n*stxxx&mGn*s
G@k�l*mR�nrGs*tGyrs-�tGmT�sGn*s7�y�b+klAmGnsxb�n*s�f@bfklmnprstwxy*f}lr&tQkfpWsA5hE�k+lGnr*s�n*sx*l�n&rS�stGnGr*s*tf�klmnkWprst*xynGtGyfl�m*n*s*t�bfkfl�mn�rst*y*s*t/y�k�l�sGyGkflQn*stf*t!k*t�yGr*sGyxlnp�sGy8ykr�hfstxxk,3r&f!ptr!k*n*s*t�k*n*s*t*fGk5n*s�txx/yzk*np*stlrn*n8r*s	�bkGl5nr*s^txx�m*n{rn7�sGy�@9�bks�lGmnrxTst/yn*s&t�x�m*n*ssGy�n*s
Ab'f?k*lnr*sGt&xck�k6�s
@f,klWnmGnrGstr/�prmy|sQn*sGyprsGx.yrrt*k*n�s*t*ytO�n*t�kl;qnrs/jtkGncs*t&y*kxxhn p&s$txxn�s&txxn&t&s!xbf!p�xL�b&lmGnpGr&s�txx~ym�nb�rr&ts��n.fGk*np*stxGn�r*sr�m*s�m�bf?hkx*lmn5prst�wb�xy@lExn*s�b�ln*stxxfl&sm*n*s*t*lnC�s*t�n*s&tGkGnGst4f*n*s*t�kGln&psctGys�l*n*st�f*n*s*tpbkGn*str�b�pr�bGk-mGn*sGt*yp*sLIlfGmn
sm�s�kflGs�xGf*n*s*t@bfhklmnprstwxyr{sQkWs&klE�n/rGt�kQns+t*y�bGm*n*s*tdjb�fkl/nrst�xy�txxGpsGt*y�b�k?sOf*ffl/n*s*t*nrs�fGmGnGs*y
�kl"�mn4�prz�s�txx�kGn�s*y*k^sWtGstx@bfhkflmnrstwxx�y*r�@Qr*sL�t�kQlr�s*tGyUgfGnGr?sGx~kfl 	sGtrst*y.bQkF[m*ns�txx*fGn*s*tGyCk*rGt@f�npstm*s*tt�kxx*k6�s�rsysxGl?s't�r*s.b�f*�hGk6l�nstxyflGm*n*s'txxGy*ffl*n*s*tGyQp*szm*n*sCkl�n?r�s*xGbfklmnpstxGy�k*slGs&txx*s&txx*ykQn1�szt*y�kl�sGyn*s�l*sGy*kfl'm*st�slGstn(�sGkflGn&s�txx	*fGkfl5n*s*t�xGy*l�n*sGy *@=b-f�hklmn�p*r*st�w?xyf�p�f�l*sxxCn*sGt*s'vt*l*str,bfln�rsWtGy*l*ms�k&s*tk*mnWnlit*f*k�lGmGn*p
Nr4�s
Htxxb�f�kxm5rnB�sfln8�p*s�lGst/�r*nr*s*n*s}tlGn*s*tGy{mFbf�hi|klmnprs�tK�w*yCl	GbGk�mnc�s*tx*y�k*sGtCkGl*tGx	bkl*nrstx*l&n*s*k�s*s�tGybGm*n*s�txxb&lxm*nQ�s*tmGn�k*l'n*s*tGf&m*nGkGmGn	�t@GbklnrprsGt�xkl*s�lUTrk�k�sGylpst$�k-�nl7sm0t*s5tk*lGmQt'k*sTtGmGsGh+l0�mGn?pGstl*s?f*s�lCn
pGrtf�krs!k*s*t\�y�sGy�sGt@bfhklmnprstwxy
�bfhklmn�rsGtwGxmTp�l*sGt�n*sGyb*np?s�l*r[ut�@Gl�m�n*s*@*st7l*n*s�w�lsGt��tGb�hJ�klGmGnr}�s+tx*yCmn��s+t�w*ykGsn*s?l*k*nSs*ty�p*spt@�bfGhklmn�prstx�y(�l*s�l*sGxGymbGn�rs&t�xn	�tK�ks+t*yfl5n*s'txxGb*rlkGst�l�k�lGmE�n�stGyk	�l*sQts*kGn[s	�bzkfl�n�s*t*lGn*rsGt�yfl
.nGt�flGmGr*s�t{n8sW@bGfhklmnprstwxMyGk�n*sGtGw�ynk*tfr*s*xf �hkGlGmnpstxx'l*r*sFbun*st�f*n*s*tGkl*s�l0�rzs�t�w�k�mGnsGt�sGn�sGt*bGr*sQtfkfl&msGtx/x*sW�t�fzk*h*n*s*t
ibfGhCklmnp�s2%tW�w*y*blGk�skn*s+sWt*s?(t�ls=�fGk*mGnstflGmQn*sl*s*tn*st@�l	fL�k�lQmnrrs*tfl5n}s+t*k*l?mGs7<fGn*sGy�r�s�bGf�n*s&txx�@bfkn�p{rL�sty *lr�t�p(�lGx!k*s/t/y b*n|sk*sGt*@�k*nr*sGy�k*s�w
@bfklnprst	�xy	Xr*s	*kl'nprs4�ty�ns*w*y�k*s*t��pU�s�k�lsGt�s�t*kst*ybflGn*s*txxGyklstxxl
wtt�r*st*yrmkrskpkslkflknksnf*sl7$k�fGl*n*s*tGy�lr	�x�b&kl�s&txx�k*s4�km�p*s7t�b^f�k2nrsGtp*s�y@bfhklmnprstwxy�0klWny�r*s:Yt*sWtklnrst�ks�tGfk�k*nr�t�an�b�tk�s-�x�bl�n�b�f*kQn�tk*s#�rbklmnr*stxy�lGr*lt�xGf*l	bk�m
n(�prt�w�y@lTtkl*lft*l-�xkQm'tx�n�b�l/s*l/nxr*s*l5�n!dsmprsGty	XlGnt\f�t�tps_�y
�@bf,�klmnprst�xh�tiyl(�n8�nb#�k�nrt*l0r=�kmfb�lnp*s�txstt*f�n�k?slGpr�st�nxy��h*n�tGl?n*bfkWmxrstklm�tr-�x\x*n�stnkt�f�f�kmQrtm�rk|nrfl*s�tbRf*tt*nfr!r�tzxklmn�stxxty�l�k�n*lGstst�r�kGn*tk
umnpstx2l�t*l�m*slpt	�s�t$�n�tn�k<�fk�m�n*st�xNm*s�m�@xfkn�st7h�k*l��nt�rfl@r�s�rklPm(�nprst�knrfsWts�tt
r�bkt�n�nfrrfteDtdWk*l��t�k'lrGl$p*sfkGnr�st�kl*mrs-�xmk�mdxxn�b*f2ly$�s	fklnpr�st��xnprx0qn�s�kldx�nTkp�s*f�m*sGy�bf*kl�mnrst�ym�n5n&st�k*nGs�x	fkl�mn(�pstxtx�b
.m*s�n�nrtm�s�xn�fGl*sGsx��yktr�p�r*f�k�b�nGnyk�l�b�ks*yGnp�n�t�bfhklnp�rst�xyl#�n�b�myV@$&fk�r
�t!nQk�t0t�wrsn�Btpstnr*s�tkGl�tt�nGlnm�rGt�x�k�mn�st*f*n��@*skl�mnp*rst0w�xy�k*lnWprst�bGtmk*n*l�s?l�r��f�k*p?r*l*nst�x k*s�tWf�s�f�kmr,ls�tx�t*n�tl�s*m�n;�t*kn*pr*sGt*n?tkt*ntJ�rWk*l�km*sp�@4�@�bf2hklmnprst�wxy@lr*sxpRn�rsP@tzx�b*k?n�tZflk*y-�kn*s�tGls�t�xt�rG@lf>�m?r*st�x�k�n*srtTx*fNm	�b�f*l�mn�p+nt-�x/yGks$&fprnfs*tk.!ptl9�nr�Js�t.sm5rp�nr3�k�km*s�xns�t*m�t*yn�kK�l;�@;�f;�n�p?s;�t�kGrGtGfkl�m�nT�r�b*smEun�yGkTl�Xm*n*sfbGfkl�mnrt�st�xGy(�n*s&mnsxt?w*x�k�sGtGm*sWtG@flGs�kGn*sU�lSn8s*tbfhklmnpstwxJ�yhQk�l?n*r*s�xkfbvsUtyr�lx�l-�m
umn.Os*t	Xm�s/�kn*�p�s*y*�sb�knvs*tGk*nMRt�b*k*lGst�m*r@n�ps*k�l*s*y�fyx�l�te�@kn*s�tGnrGs�t
;fk�l*n*pr(�sGt�yfl��nskGn[slWfnxl=ks*n?s*tm�n*s*t�k�nBBs
bfklmsnprstwGyGk�l?n*s4�lrGtGt�y�@GfGl�m�n�rstQnWr*sGn�rs+t*yfl5n*s*txxG@GkGnGsGt*kp�r*sxm�r*s�wG@GlGmGn*sGt8�yflGm�nh�r^&st*s&txxGy
�b&fGklonrst�yrkGn*s*t*yGlGm*sU�t�s*tflGm�n;�@kxmGtl*sbf�hklmnprstwxyGkl*nn*st*y*s
�t�b!klQn*s+t/y�kQn*s*ylxmGnGp�rGsGtQ@&b*y
Gfkxmn�ps+tm_w*y
�rfl*m�n*s*t&kWlr*sGt*s�xGbhGlGnGs*t=ms�kGpGtbfkl�mnpstxGyk�nSgt!k'l*s*t/ylGn*sy)s�nU�st*y*s�tw@�k�n	l*mGn0p*sf�t�wxx�l*y�ffl*n*s*tGyWl
n�s bh;`k*lGmGnp*stn�k�lGtlk�y�lGtGk�n�r*s*f*n�r*s*tGy@kQlnsGt�x�ns*y��t*n%sGl�n*sGt_�k�m*s�bCk~lnsO(tGxkflQnsr�flnr�s*t*y�s�hl*sGt�w1�st*y*mGn*s*t*y	�bkxlm
.n.rGs*tGl�sfle�m*n*sGtq�p@bfhklmnprstwxyGbfkln�r�stGw.x*y�nyxlk�k?s*yn*s*k#mGs�kGn�sGt*y�kGmGnGs*t�kGn*s\bGkl*n>rs-tkGm�nsGtQ�x*yflGnsxx"�p�s+t�nGt�b\fklmn�ZrstWxy*stx�b^ffl5ns*tCf&n*s*tGx�b*�nr*st^fkGs*s'5t�ffl�n*s+t�lGn^s^tysl@t5n*�r*s*t*knQpGstxk*s5tkGn*sbfhklmnprstJ[wxy*l*sGt*l�rsGtQxOnGsGh*lGn�r*s*tV@�b{h*l*m�n@r8stxx*y&knGp*s�t*xQy*srtbfhk�nGp7rstxxr�s�n�r&l*mGsGmGn�stGyflGnr*s*t]kn*s*s�yY�lGm~nt�s��txxGy
^fk<�l�mN�n'st�w*y�nGf*kGlGn*sGy	�b4�fk$[lWnr*s�t	�nrlf*m�b6l*nTrs*tGy�kfln�sPLb*n*s@bf�hklmnprstwxyGnGrGs5kjmlGnGrst*y�tlnGklrGs�n*s/t*yGk*nrs*t?�bklzmnrst�wxx*yQlB)mlkm*s*y_tGm!Is6�fm�nGp|sGy&k*n*s*t46kBBm*nGs*t*f*nr*s*tGm*y�@!7k?n]s*yb,efklnp*rsS�tyGk~nfr*s*t�ln*s*t,etGf*k*sfr*stGyr*s(�n*yfl5n?�s*t*x*yGl�s@�tlGrTt@kHlGmGnprst��xGyr*s_pln*st@)s	Xf�k+s*t*k'ntnZx*sft*wGyGkCm�n
.p*s#BtGybf�klGnrsGtxxGy@lQn*skGt*y�k�sGy'm*n*s*t*yfl�mQn�@+b�f*l5nst�wxx*yGn*s&txxkl�m�psCt�y5{rU�st*y�k*n*s*txxGybGfhklmnr*st�wxxy�lzr*s&kGlGm*sGp�s*y�n*st*l*msmflQn*st*l5nrs>b�f*n*s*t
�bkflCns�rs+t�wxxQffl*sGn&sth�m*n�p*sbfklGmnrstCxydllGr*l&m*s�lGn3�r�s*trsGt*y*kflGm*n|sGtnfpsGyfrGs*nrs*txx*st�n*sh�p*slmnQ@Gk*nGt�l5nr�sGt*y*st�t@bfhklmnpX�rst�wxGn8sylxtQmnsy*k�s4�y�f*k�lQmt�y�r�blm�nrt
�yjVnt*k*l8s]�sGy'fy|lts�fktrlOyG@f*nr*surty*k�n}s*krs*yWlOsk�mv�rsZtCxZ�l*mt �rl�pr*s*t*tpy	b}k��l=�m�pstyt�y'y*s)y�k�kl�sWm�nQp
�x�GmrGt
+mbfklnp@rstxxGyolr�t*y=kX�l�r7�lGn�r	�n*s*t�k*lnGsGt+st)=klGmn&rs>�t*ks*tGy�kGl*sfl�nt�b�fGn*sGt*@[f*n*r*s*t-�x@bfhklmnprstwxyGn^&sf@GlArGtG@�k;�l"�rGt*yxf&l�on*sL�tGb�h&ks�lnrstCx<+yGf+stfl�r�f*st*kQtt
.rl�mGn&r&t�xQn�st*y$�kGnGpst*yfl5n*sGtxx5rm*sGy.bnGr*s�kGn*s�xGk*l*ns]btGl*n*s*tQy$[lnQpPLr*s*k&t*@'m*n�p�s*tGyfklGmn0p�rCstGxy�l�nGl.]szbGkGsk*nr*s�n�pl*s@f@bfQhklmn�prst&Pwxy/l�kl=r*s�n*s
�k�lQn�r�sGl&nrsGfGlGm*st(�l*s<�bGmGnSs*t*yGkJ1m�nQr*sGt*nGs�tx*lr�bGk�n�stxxw�y^f�n*s*tGtyUlfl-�nr*sftGxWn*t�hxl�w0@WnGta�bGkCl�mnGprsapt*y�bGkfl*n*sGt�mfGnp5�r*s�tXzw�@�n?ib	xfhklmn*prstE�w�xyAn*tlJ�nGrtGp*s�y�p*s
kflm�nrs&t�x*ys*n*s�t7<fH�st*yflGm�n*sGt�b/k��n*sGkflGstk*slfl�r*sGk*l~n6�s*t*y	lbfklGn*sGtGy�lQnGkGl*s^s*y	Gk*lGm*nWr*stxxfl*n*s*tGy�kGr�s?w*x@bfhklmnprstwxynr*sE�y*str*syxQk�sbln�rs�txlst*y#BtGf*km*sCXt*spt*s<�t{,nbkl�
mnrst&wxy�l*nr*s*t�k�nr&st-�x�m*n*s
�txxCf*r*sk�n*s�ty*n+s�t=� �k*l5nGstx�bffl5nstGyGf*sGyxlGn>b�k*lns�tGyGs�x�b*n*s�t	�k7l,n�r*s�t�x�y	�b�fk7lnrrs*t�l*nGs�t�xGlGn*t*yn*s*tl*n*s*ts*yGm*n*s*t�xl*n*skWtQs�tb�lxmns&t1t)=x�s/t�xtr�kGn*sGy	�fklmnprstxxy�l�mn*st)=x�txx�fGl*n*s*t	@fGkmns&t�x*y�b*n_�p*s*txx�k*lGs)bmp*st�k�s	Q@bf�nst�xGykhr&f&l!pQr�st�k*t0�k*s.9x*s*txx/y*@�b&fkmnst�x,�y�l*s.]b�n*s#Btffl5n*st*yfl�nsn*sf*nfr*s*tmfrsty�l�tfl�n�tQlGn?<rGs*tGy*ns�m	,�fk�lGmr&sGtx�b	rl"�m*n*l*n*t@lGnfl{�n*sfklmnpst�xykrflQnfs*s�txxGl�m*ns&txx*y*kflGm*stk*n
up�s*t*y�rn*sh�r*skx&s*t*k*n*s�txx&sWt*fflQn*sGy*nr*s*tGyvnGtm�s�t>�p@bfklmnprstxyGmGn/s_
lzr�lQsns*tt*f*k*l*r8s�l*n*s*t�k*sZt*yn*sstfrxun�Ipr�st�x*nr�s*tl*n*stxx1+fmnurt�ffl5nWrs�tGb�kfl*nGs�tGy^OkGm�nfr*s,tGy
bfk*l*m*nr*st�kfl�n�s*t/yGl*s�x�k�lQn�szt)Mtxx*l�nGps@Ghk*lmnpstx0y{s�t*lGn*r�s*t*l�n*ss!x�b�m*n*s�t*s�x;�l�npGstl*s*s+t*yGmGn+bGfGk*lAmGn�rsGt	Xw*skt{l*nym*lQtb9�fkl�mnrstxy
�l��s&kn�txxts*n*s't~k�nsvtxx}y*fsm@k�n+st*nr*s*tunht�x	fkGm.Onpstxx
�rT�t�Kx|rrp&s*tAt�x	�f�kfl�n&�r*s�xGyGl*m*n&stxy6rn�l*n*s*tx*k�l*l*m*s	�t=�y?fn^s�txx�l�m*n*s�tbxl*n*s0fkQl�mnpGstxxGy*ns��txxtr*s*n*txxckGs�tb
.l*k*nrs*t�xGy@bfklmnprstwxyQsrtGxyGptr*sx*lzn*s*tGy�b*n*st)=xGfGn*s*lnGpr*s�txxk*n�bptxxf*sfl%s�k*nGs?tyt*n6�s*t�b�npGs#Bttxx�f�s�kflGm*nGst	>bWffl�mGn�s*t�xkGnrrsttf*nGs*t*n^s+t�b�f�n^s�txx�k*m*nrs*t�bfl5ns+t
kl4�mnr�st�wyl^s0�n*y�k�n�sWt*yfl+s�t�xGk*l*n�s&txxk*s&txxt7mn#txxGl�m*sCo@�nKn�kmGn*sp*�@��tbfxhklmnprstWxyGl�rln*s*tGx/yxp*s*y*n*s
�txx
.]blm�nrstxy*n?r*styxk�n*sWt*f*m*s�kflQn*st�xQl*n*s*t�b{�f�k}n?�r�s�t7n*skn�s*tU9yxx*y�kflk*ln*sF�r*sunhtxx�k�lWhm*nstx�fGm*sQk�l*nr�s*t�l�p*s*y*lGn�slt?ns'mGt*f*txx	�kGlGn&psctxxGy^fGk*l	�bkGl�mGndp&st*l�nln*s*txxGyfl*n*sztxx�xm*nfr*s*typ�k*n*s*t�f*n*sGk3nGs*x
�bGkl�m�nrsWnt*y*n}sft*y�n�sWbgf�n*s*t@bfklmnprstwxy6mGnsyPp*t(6pGk	rl?nGy	�bkl5nrs$[t/yfl*sxxk�ns*y�k�s*y'nGs&t�xGm*n*s't�x	l5nCpstGwxx*y*st*yr*l?s*nr*s*t*l*y
Sg@6OfkmnGpsF�t*ytr*kVs�l�n�sflm*sGtp�yCk�lnGr.s�-k�sGy?@mb
Uf?hklGnGpst?w�m*sftrst*yGk*l�pr*skGl�nrt�xstflQn^st�f*sGy*n*stxx+b�f�l*sGnGsWt*yfbCf*nfr*stflnOr*s*tbfklmnprstw�xGy5k*lt'l*skflm�nGr�sftWl&s#nlnPprs5tn�s�xl%ss!tNn*n�t*s�tn*s�txxGst�xfl*n	R�f&klnpPjrstn�#l_^p*srxnQ;s]tfGmn�k*s*t/y�sftfGkRp�st�xykl�x�ml7r�sPk*ym�sft�nrs!ItPnt�f�k*t
�x
0fGklx&mn*rrstGy�n8s*yst�f�m�m*sGy
sknxstGs�;tr*skt�!r�Kk&t�mGtGk*s�tGln�b�l*n*s*t�f!h�k0l*sx@bfklmnprstrp�s�tGy�b'�lmy�ks��x�ksln 	s�tkt*y*kQsWtQx�kns~ttr*sGk�s�xGylsry�sst@Gk'�l*sGy��f*�@kk�m�s*t�x�kfr�skl��mr4yfl*sWx�k*kGm	Xn�p�sGy@bfhklmnprstwxy*wl*nGr*s*txx�yQn*s+tGyxZkl46mFsQn*ps*yGn7arGsGtGb?�klnrs�t�bflQnr&sGt*ys+t*m*n*s�txxGn*stk?(tGk*n�s*t*sA]t	=fk`�mn�s*tGx*yGs�tCk�ln*sGt*stQk*l*s*t
 b4�klGm�n�rstx8s*y^s+tGy
�b�kflGmGnrLsGtGy�l?�mGp&t*fGnS�r*sGt�bfklmnGrstxy4�k*s*t/y=�blnr*s	�yQs*y,fkCm*n*s}t�w�kl�sGyVta]nGk�ls�y�n*s*txxfGkGlsn*s��t�mk*lQnGr�sztflXt�k*l3mGn*sGtGybGl*n*s*t
'bQk!}lF[mnpGr*st-�wGxGy*kGs�x�b*l�n�txx&lGmr*snH�s�fGnr*sGk�sxxGy�tfl*m&n*sGt�l�n*p*s�b>fhl'np�r*sGt�w�xcFnGs5�f�s/tGk�nbf�kli|mn.3p�rs'twGxyGklxt8�n*y&k@l*sGtr*st*y*�nGtf�kQl*nGst5tlflQt�b*n*s�tGkWl*ss�tExn@�bGfkl'mnrsBt^\k'n*smWnsxl*s*tGy*s!Itn'r*sf*sr-�tkxx
�yE�@Wfhklm�n*pGstGk*s?tCs�yy�sWt~nt�lGn(<r*s*tGn*sxn�k�s*y�y@bfhklmnprstwxy
f�hk6l*mnrs*t@lSt�l*s�kGm*sL�trs&t�kxtx
&@Gbfkl�mnrstOx�yl*n�r*s*t*k&l�n*s*t�nr^stxx/sb*nr*s�f?hkst%'l*n*s*tGnxt*n�r*s*t�@GkGl�n&st�yek&b�m�np*stGr�xflmQn?s�p*b�klGmGns*tGn*s*t�x
bfhklmnrstwx�nr*sGtcx�n�txx4f�l*n�r*s*t*n&s�b*n&rOstxx*ny~r*s�bfkm5Pnrstx*y�bGn*r*s*tunstxbfl�n*s*tflQn*szt4�k*yfk5n*s*tflQnztr�fGm4�n�n*s*t(�sGy,t�nfr*s&txxnr�sb�l*np�stxx*f*nr*s*t	kfl�m�nrst&x>f*n*s*t@b��kflQn�t?wGn�r�b*n[r*s*t
�b�cfkGl�mns*txrtxx�n�txx�f?�m*nr*s*tQn*sGy*n&st+xflGm*s*n*srt�b�m�n*s*tFb*lqn*stWxGl&n*s*tb� fA3kdl�m�nGp?r*s*txx�b*l*n*s*tfl�mn*s*t�l*nfr�s*t	bQmc�nr@�s&t&xyl*n*s*t�ttr�t�x,@bfhklmnprstwxGyGkzl?n!ItGy�lnr*sGtGxb*n*s*tGymTp*s�fln�r*st)=xm�bsxx+bsn*s*t*f*n*s&txxbkflmnrs�txx*y*l�r�l&txx�b�n*s�txx*nrsGt*nrs+t
Uffl*mQn*st�r*s
bxfxlnp�r*st.9xn�n*s�txxcst�bGl*n*sRtxx�k"�l{nt�rts&t*l�m*n*s*t�bfhkl	Xm�nrst�xkxlrmtn�txx
�yi�r&t�x*mGs�r�s&txxsGt*yGm*txxGkzs�txxkl5n*st�<xGyn�r�m*n�b*n*stxxfr|tr*s�tk*n*txxtx�b�f*n*s*tn*lfr*s
�k&l_�m�n;�p&r*s^t.9xGl*n�r*stxx/yl&rrs&txxG@�kmn&pst�w�xy�n*s�t^fflGn*s*t�b>f�m*n�s*tsbt
bf�hGka�lmnp*st.9xGy*r*s*yflQn7t"�nfl�sGt.9l
�r*sQ�tGnr*s*t�b�n*s*txGyGn*p*sbfklGmnr�sqit*yGl
.r�b!kfl*stxx/y*n{r*s�n*s*yD�k*sGtGn*s*tGy*kGl*m*sGtflF�n*s&tbf�hkmnprstwxyGklGs*tGn*st*y*n*sGy�bGk�n*s�t	�k*lnrstxxGyfl�m*n�sfl5Pn*s�txx�bn*s*t�k*nGp*sk*nxpx&st&x*n*tcx�l*n*s*tl&s�t�y*stGy+b0kGm�n*stxx�kGn*s*t
bf�k*m*n�r*s�tGyflQn.stxm*s�yn*s*t�l*s�x7<k*n�p*s*t
bfklmnprstxy&klnrst�n�s*t*yk6x�n�b�m*n*s*tQx*l*s*t/y�b!kGl*n�sGt/ygbn�r&sGt� fGs*t*st*y*np*s*tl*s*t�ybE�n@�r*s	Gf�k�nrstCxGyl�txxtsGkn*stxxr*s�n�txx�f�kGn�rs*t*n|s*txx&klnrtsttm*ns*thyntttltWszs�t�kGkQm*nGs&t/yf�lQn+�r*st3lQlGn�r*s	�bklsnOs*txx�y&kfl*s*y�k*n*s&t�x*y�kGn*s*tGn*s?y�@bfhklmnprstwxy&kl*n*sGt
@klnrs&txx/y�m�r&txx*s�t�xGy�s&txx�s.x�m*n*stb�k�m*n*s*tl�t�tf+�klnpWrstx*y@l�ntGns&t�xGy�rGk�mGn*st�b&txxEk�nsGt{yct	,bCk{ln�r�s&txxcs*tx?ntxx*ffrl�r*ss=�t*m�n*p*f&k*l&msnpr*st�wxx�k�nGslGmGn*st�m*n*s*txx�m*n*s&txxGy@�bf�hklm�nprs�t�wxGy�k*r*s�wGn�rGf*s*yfl�nrs��r*s�nGp*stGy!k&s{f*tilGn�bGkGlGm*n*sGtlnsGt*yrs*y��l*s�mGn*s{ b&fGhklmnprstWwxylk&xzn*sxx&kZn*sGtxxknT�rstxy�b*s�txxfl*ntcxbfl*n*s*t�b^f�m*n*s*t*n?p*s*t*kn*sGtxfl*n=�sty�mn*s*t�l�r&sGtb�fhkC�mn�pMrstxl&txxns&txxFbrlf�mGst^fGln�s*tt�b*n*st�xfks�txxFb*n*s*t�b>f�m�n*s*t�fk*n�st.9x�k*n*pr&s*tGy
Fb�fGk:xlGnrstx�l*n^s&txxGy^ffl*n*s*tGy&n^s*kcn&s�b*n
�b4fkln&p.OstGyX�s&t&sft*yckfl*n*s_
t�bGn*stGybf�hklmnprstwxy
*@Gk-l�m*nzrsGtGxk	�b�l*n*ps�t]�x�y*n*r*sGt	li|mnr�stx*yQl*n?r*s&txx*y�l�m*n&stxxflQn�rQn�pxxb&l*s*tn*l*ns*t
bf�hk,n*stxx�y*l!r,bn*s*tG@�t�xfl4n*s*tb�n!p+r�s5tlsn*s*tGy �@bGk-�lnstxx*y7�tGk"lGm�wGy>f*l�m�nrs*tdlZbkln*prst)=x*y*st�b�f*n*s*tn*s*t/ytn*s�tfls�
t�b^f7r*s*y
�k�m*n+s�txx�y� f*t�rf�kGn*s*tk'n*s*tGy�txx	�bff6l"�m*n_�p*st@lQn*r*s�b�GfQlsn*s�txxbfklmnA3prst=wx9�yl�nGtGtcx!k�lGnr�s*t*y(�nfl*n*s&txx�mGn2�s*t*y*s&t�x+s�t�x�bk{lGmnp*stxx*y*stxx^f*nr*s�tk*n*s�t.9@=f�f*s+tGf�m*n*s*txx�yf@Gl*n*sGt�bn*p*s*tGxGlfr*sknl�bGn*s*tq@xrdn@bfhklmnprstwxy�mr*mp�s�tGyGklu)r?stk*n*st*y�k*n�s*t*y*s�tGy�b*s	!kl*mrns&t�x�yQncp*s*y�bGk*lmnGs�t
xblmn�prstx
Gf*kGmnrshtxx*yt@�l*n*s*txx*yflGmGn*s*txxnIBk�k?mtlrfGm�n&txx�kGr*s*tGy*sct�Gf*n*s*t5*n*s
bfk�jn�rstxx*y?l-0rr*s*n*tGy�k�s�tGyGm~n*s#Bt*f*nr*s*tGp*y�bnpstxxQ@s*�t�k�txx*n(<r*s*t	bk�l�mGna�stxxGlzr�l*s^ffl�n*s+t*klsttGy�k�m*s�yt�x4�bfkcl�mnGp�rs�t�wxx�ybl*n�r*s&tk*sL�s�lrGstxx*n�srtxx�b�f*l*n*s*tfl*ns*tcx�l�m*np^ls*t�xhk*tFbklGmnpGr&st*yf�k�n�pfry~r*s&f*yst*stfsQnft*n�x*kfl*sl*s�yGk*n'pr*s*t*y�b�kl�m�nJs�b�fklmaln7rs*txxs&txx*k[sxfk�m*n*st*yr*sf�k*sGyytn*sf@GkGlGmGn*sRtmp�nGpAr*s*t�k�ns!�t*h?m*n&p}sGt�fkl&mn&rsC�t&x*y�b&n*s*t*n�p*s*t�b*st�bGn*s@^ubf*h�klmnprstw*x*y�l�n�s*yGbnGr	�nt*s�x��l*n*s*t�m&n*s*ts.9t�n�t�lGn�rL�s*t*@*n*t2h@zklWnmGnstst*y*m�t�bGh*l*s@bfhklmnprstwxybf��lmn�p*rs*tw?n�rQy0�p*kfl�m` s�t@��tCy?s�w*kGl��s�tG@bfhklmnprstw
uxJ�yn*s�t�yrsGt	j�k�lEm6nrstxx�yGm�sf*kl*n*sRt�xxmCtklmnrN3sttxxf*n*s*tflQn�st�fvnGst�npGt�k�nk*n'rstl#t�sxx*yGm�nr*s�kGp�tk�n*lr
b�fmn�pst�x*y=�rfl�ns
txx�k�lfr+s�tn*s*t�s"�n�r*s*t*y	kUVlnQpxrstxL�nr�s*t_ s�txx�b^f*n*s*t�cf*l*ns*t�nn�k*s	fklm*nst-�xt�t�x*lnt�sk*yPnx�m*n�fk�rX�sWwGsWtWb�l&nU�prtxxfk�l*m�sxx�Kx�krGfGmm*s�l*m'hknst�x�y�n*stxx�n*sfl*sGx@Gn*sGtGy
f�hklmnp*rst�x�yunGsGmun�prxx&b�p*l*n*sb�n�p*s*t�l�k�ssxWf*s�t*knrrstxx�yGstx�f*t�l&txxExkflGn*smHtGy�nt�Pxb�f*n*s*t�bfklmn�prst�yGk��l&txxGl*n�s&t�xQn?s+t*y*kn*l?n*sn7r*s'@txx�hkn�ptxx�f*n7r*s*t�n�sGkp*t&l*n�r*s*tx*f�n*s@bfQhklmnrstGwCxyMRt*l&t,bkl*nsGt�x�y:xlSnxprstxx*l*n*s*txx*f]�n*s*t@�bGkfl5n]prstGw�xGy	XrflsGyGb'rGtx	�n
�@f�hk
ul*n�r*st?l�nGlGsGtG@>�n*s?y�bk�l*�nstGy�l_�n�sGt�l*sGydjb�kCmn*st�wzs�tk*n�prs�l)MtxxQfb�f
�klGm�npGrsGtw�xGyGk�l?n�fGnysof?st�l*l
.p*tGrGtGnGr*s't
Gb�f	�kGlGmnCrGstkWksGh�m�n*s�@bfhklmnprstwxy	GbGklnrs't*yOn*sGt�f*s^sGx
B�fGklEn�rs*tGxGy*n*sCt*yxlr}sGf�s
l�mGn�rs�tGwxx*yG@*ns*t*ybf�hk|lmnprst�wxyGkl*s*@6l*n*sGtGxMtl*nGp*sGtMtmGnsGttflr*s*nGs*tGrs�t�p*sGyGl*n*st*nr*s*t�l*n's*t2�@Gm�stGy*k*m*sGy*f*l*st�k�s
*f<�k�l*mGnfr�s*t�xr	lGnGps*t*yGt�w
bflnpst�x*yGk*n�r*s*tl��nr{k�txxnGs�x�k*n*sf*stk&t�x�l*n*s*txx�lGn�rsGt*y�fkp&stxxGlr&b!pk�txxn&s7x�k&s�@E�bf�hklGmn/�prstxGykl?n*sGt/yunxx8�nGt*y*nGr*s�txm*nrs�t*yflsy?w*k*lGn*s�t*y�b�f�hkl"�mnrs*t*yQl*r
�m�s*yCf*s*lGn*s*tGy�lGn	�fkln�r*stGy�r*s&t�m*n*s=fGh*s�k*n	�sbf?hklmnpstwxCylGn}�sGt*yGn*s�t	!k*lGnGp&s*t�x/y
�bZln�pGrs�t)=x*y�bWkGnLs+tWw*y	%mbM�h�knp*s*tcYxG�kfl�t*n*s*t�x*yb�fa�kGn�pO�rs�tx*y*nsGtGy�blGnst�y*n�[s*t*nr*s*t�lGm*sCtn*sCtGyMRk
^fGk�lGmnr*s*tGyrsGyGf*l*sGt+�yGmGns*t?�kflGn�ps*t*y@bfxhkl"�mnpst#w/x*y�ffl*s�k*lGmlknK�rO�ns*tGy*fQk�mt"ka�n,3st�x*y@k*lGm*sGyl*ntflQn?sGk�nQr�tfflGmn*s�jt@lQn*st=�n
G@,b^f�kxlQmnpr*szt?yG@lf*sGt�lb*n&txx
b/zfklmnxprstTmxGy-0rt*nGy�byk�n*s*t*yGr�s#r*s~�k*lnts*t�xGyfl}s*kflxm�n*s=�t�w&l*sGy*n�r*s*t?y�bflxmn�p/rs*t�w*yl*n*s*t6�s*yb�hkl*nGprsUxtw*lWrkGp*sGb&kGn*sGt�kCtkGlGp�r�l*sGtGx@bfhklmnprstwxy>f*nr*s*t
�l*nr+stGy�n^stxx*y*nfr*s�tGybfhklmnprstwx*y*lvns?b�m�p*k�stGxn*s�tl>Yt*pCt	�bfl�mnrst�.n�nr�s t9�ffkWlst?s�ctrtl�t�xsflQn��t?nr*lt��kTkt�k�s��mptLl�rf�k�y�rf�kQn^s/t*y�.l@*k�lGnptwk6Olr?sztxfmf	fGkl�mK�n+st�xl?fmkQn?s3*yl*n��rs*tzk��l�n��prst*y�fkpst|lTk?l�f�k*y?s�x�r*yfkzlGns=�tGy�l��rl*s/t�rt�x*npt5�k�rfk�lmn5�prst�x*ns��n*nr*s��f�@�bQn#Ws�t|n*tt�n*fmGn�rslyf�k*t
?bf2hurlnprstQn�t*l*s�y*n�r�fGnsGt*npt�l�xrk�t�xm*rJn*@?lTn�r*tfln*ssGl&t�klGmnGpstwQ�xGyG@*y*n�r*s*t*f)kGn*sGt�b�rfxmGn�r*s*tGmGr	�kfl&m?n[rGsGt*y9Obln&ps~t*y*nGt*y� f*k*lrs+t
E�b_^fk�hlkm*nst>xGnUTrsGy�l�nrs*tQwGy*nhs*tGfklGn*prstw?xyGf�nGsGn^s*yQn?s*t*y
�stGk(kr*xl*sk�h*kGmGn*s+tw�ybfhkl+�m~np�rst�wxyGkGlzr�k*s*t�ynt|os~lGn*st*y�pxsflGmQn�t*nsGtxxGy*l*nWl0Rb4f5hk*lmnprst�wYxGyh*n*s*t,mWb*nGxfl*stp*sGn*sBtflGns+tGyGlxp*stGnkWr*t~�r*sGyGn�s*t*xxyGns�t*yflGnsGt@bfhklmnprstwxy�bffl&nrstWw*xGy�lGn*s*t*yCn*tWla�nblGnrGst*wCw�n*t*yGfflQnGr*s�y
�kl�mn&r8s�t�w�x$�k*sGtkl*n*rGsGt�bGf�hl
+mn0rst*yGns*t*y�kfl*s�kGn0rst�f*s]k*s�b)ktGk*n*k?r�@�b|�hkflm��np@rst�w�x*y�k}r�sGt*y��n�kQr�kflGn*t*f*mnr*sGt^st�nfs*t*kn?s��tGx*yE@*sG@f	�h�klmGn/zpJr&st�xGy?l?nQr*sun*s*yb�l
�b�kGlGm*n�Dp�rEs*tlmGnrst?w
Uf�kmGns�t*ydn�t�b!nnf�nGs*t*t�}xGn\t*knfr^s�lft	?kflGm~n�rtstGyGnr�m*tzbk�l?in*st?w�l?m*n�r*sGt�b�fk*lm&nprs!pt=w�xyflmGnGsn=�ts�tm�k	XlGln�p*sGys�pGm�n*t'p*sEk*sl3mnGps*t*y�k�l*st~yk@flxr*sGtPs@bfhklm5nprstwxyGp�r*sGt@?klGmnr�st^x*yGk5n*s�tGwGk*nsGtGkGn*s*t	bln�rsGtGx*y5k*sGk5n*sGtGw*y*s�t�l*saptVTbf�hkl7mn?prst.9x*y*l�r�sGxr*kGnGs*t*yGkflQnfr*sfGm*n�s�ty*kGt*y�s�k-�m*s]t
Ufm
r*stn*s^sGy
hqk�lmYUnrLst*y#�nmnGp!stGkGnGr*sGy�@%mbGnst�kk�r
�bGkl�nCrst2�xGy�k*s�w*yWr*sGfGm5Pns+tGyflGn*sGt9�bfklGmn�pr�st�wx*y�bGpr*sGnt*mst*yflQnGt�xk*lGsGt*n?r*s*t	�b*f�l?mn�s+t*y�r*sGtP�f�lGmQnrrsGyGk�lnGpl*s|s*ybfhklmnprstw>�xCy1sk/�l�n*sGt�kqil*sGkGlGm�s�lrgesGm*sGtk�n�st�wxx*y�sGy�nGr*s*tn*st*stl*s�st*y'r*sl*nJr�s�tx*l�s&l,pUxrGsGt�bfGklmnp�sGtGyk�l*rGt*l*n*sGtxxGn�st*y'rs0h*sGs�tk�mGn*st�xGpGy*kGmGn*sQn�rGl&xGn?s*tGk*nPr�sGt�f�sGtG@bfhklmnprstwxy5k*lQn?s�bf_�klm
�n$vr�stxy?s*x*yQkGn��r^s�Ct7lQr*s*t�x�lGn*s*t0lflMmrtGw�Hy�kQss*w*nr*s*tkWt�bfGklmnrstx*yn�m*s	fk*m�n�s�txx*yrklst*ksksp�l7sWt]p=�st*bk*st+f*n*s[fGpGs�txmI�p*s6t�wGyknr*st�l4/mfk�lmst=�mr�'fGm*s(8tk�p*n�r*s*txGfGpbJ�fklmnstGwx&yGk*l]n�n*s&txx�k*ynt*l*n7r*s*txxkmfr*st�wxGn*st7m*n�kf*k*nr*s�]t6r*n*s*t*ynp�lGn�p*s*tf�lGn
�p&rs*tlf�k	E�b&kflGn��rs�t*y	�b�k*lGm�n%�st*yfkGls�tGr�yn*mQsGnGt�y�bfklmGnrstx*yGl*s�t	�b0f�klGn�s*t*y*kGnxrsGt*x*y^s*ylZr�sGtGk�r*st�x�h�r*s
��@�b�ka�lnr*s*ty^s+t?fl*sQn�s*yl9�l�l*n*slrsGws�t
bf�hklmnrstxyNl��n�t�kl�t�yk�sGl*n	�rs&t8glndps*s�tsGyE�bfkl5nst?wx*y�ll*m�n*s*t*kOn*s�t*y*r�tGlGmn*s*tt~Jn*s*tnl*s�sft*yQb�k�ntWx	�b*fzhkfl5Pns*tm�n
�b*fklm�n|s^t]x$vlQnst*yflGmQn'tkpkGnGtf�h�b$vlGns*t
bfklmnpstwxy*lGx+bk�l�r+s*t/yflQn*sxxr*s&b�f�p^s*t*yGn*s�t�kfl�sxlGsGt�fflGn*sGt
�kfl*mGnrsGt6}xGykGn*s&txxGyPLlxmGnGp^sm-�tbfklmnGprs	xtw�x*y
�lGtlQnGrGtGxQns*y�l�mnGsxrGt*k>�n^s&t*yGb*n*sGtGk�lfr*s*n*s�t*x*y	WbekmI�p�r}s*tw*kn*s�l*s�xum*s&bGkl*rsGt*s�tG@xm*n*sGt	�cf&kl�m�r*st�xQnst*yflGmGn*s'txxm*n*t��p�hk�m*n*s*t.w�l�r@bfhklmnprstE�wCxCys}Xt}lrGyf*lGms&txx*m�sWpGt	k@lGmGn*r*s#Mt�yflGyQs~t*bGf�Klr
sGt�f*p1fkGn1�sft*yGkns6l�sGtGy�sGtkflGmGnL�stGf*stf*sGnp�r*s*tGy
�trstf
�lU�t*s6xot*xfl*mGn*stxr*sGfGkn*s*tyWk*n'p*sbfGhklmnprE�st�wxyGkB�lGkGn5r*t	xhlFemnGpsxtx��t�m*s>Ytn*s�Kt*sxwkn�sGtGy�k*l�sGys[�tkl�m*st�lr�f*mk�k�sGy(<r>b*k9lGn*s*tl@�kln��r6}st*s�ts&txx�ffr*s�b*s-nGs*tGy	>f�hlnWrF�s�tGyQn?sft*y+b�m5n*s*tknxw(�fm*s	�b@bfhklmnprstwxy�9sft	GklnWr�s�tGxyGb��f�k�l/mGnrs+t*x*yGkflsGt?sGt�b�kln�prstCxy�n*s*t*ykGn�s*t*m*s*t*y*l�n*t*n&r*s.xl*n�kG@*s*tbU�fhklmnprsta�wxx�ylr*sCkGt�l�nCs
�r*sGx�bGn*s5t*yn*stk�m*s*t*krsWb�n*stxx*nD2r*s*t&lGn*sGtGm�nGp*s*t�b*n5r*stWr*s*y^fCk*ln�r*s*tOn*s@b�fhkflmn
.p7rLstwxyflQns*yG@�kGn�l*t?l�mn�s�tGyQh*sGk�n&t	b7<f*kflGn�rs*t=s4fflGnstflQnGyGkGltznxpGt*@bf�klnprs�t.wxGy�l?nGt=nCtO�n*s�txx*y*stfr*sxxGkGn�rs&t*yl�n*s*t*n�r*s*t�KkGlGn*sGtx
�s	�fGkQl*np*stGxm*s*b@�bfhkllm�nGrstw��x*y�m*p�lGtGx�n*pGs	�b!}l�n�prsGt*y�f*tGr�s�t�b*klGm*s�tfGn*s*ts�kzbf�h�k�lxmGnp�rgest�wGxy*s^x�nGp.bQnrskp*sGk&lGr*sGt?xbfklmnrstwx*larG@!k��m*s*t#�yGkGp*s�kGn*stx*yGn�sG@Gm*npWst7r^s�n*tGn�s*tfls+t*sGxr	l@bf5�hklmnprstwxyklm41l�tkWbGnGr�t*lGnrs*tk'pGknr*s*t�@�kB�s*y�n*s
bl.mnGpr�st*y?nAr�n?rs/zt*y*fflx&s(<fGmflQnrsQ�l*n*s*t!dkfl�nrs+t*ya�b�fl*n�p*st&nGt�lE�pfr
?bfk*l�nQpLsty	[@0RblmQn�rs*xh*n*s&txx*y<�n�bGm*n*s*tWblGnst*yGnGs*y*t�x�km&sy�kGm	�b>f�DkQl�n*sGt*y�bfklGm]fns*tw*xy!kGrst &w/yp*sn�fkGmr�sGy�l*s&tf�kGy�m*nsGt*yf�k*t�r�l*sp�k*n*s*t*yGmGn*t,bmGn�rs*t*y�k�sbxl*n*st
NxGk&tClf.klCmnpOst�wGybk*s*t#�y'5txx*p*sflr*s*t�xTlI�n�kGl&p^�r*s?ta�bf�hkl��mnGprst?wy?@*l#Ms�lGm
�r*sGt�nS(s*t*y�l*s+�t&kGm*n*p^s*tGy	W kflmGn*st�wflQn*p��n�k*sxxflQn�r*s�k
�l*n*s	f@�bGk~l�n*stGw*nGs*t�x	flmn�pzrst*y��t�l�m*n��rs*tWwflQn#Btk	Kt0@L3kl&m*n*�pr�9s*t?w*ns*t^x*n*srtxx�f*kGnGs@bfhklmnprst�wx�y.mGnsGt*y�k*n*s*t&l*n*s�tGl*r*n�r*s*t �hGnst&w*y�lr*s�np�s}t*w�lGns*t*yxb�hkl*m�n3"st^x*yflGns*t*y*k*s.t&lGnGr�b�n 	s��tGk*n*sWyl*s	�t�n 	s*t
b=f�klmnp�rs=�tx*y�n�r�k*n*s*t*y�pGt�bGn*s*tGlOn*k�l+�m*sGtGp*sGtbGf*kGns/t*yklGtCl*s*t�bGf&klmnprstwxx�yGk&"mGn&pst*yGmGn*s'txxGsGyGkl&s�ttss*y�bGkflQp4�stGlsGl*xGl�rGfGr*sCtGyfm*sGt�krrn*s�tn*s*t�fGbGnQpstk�n	�ps�wk*s@bfklmnprst*mGn*s*t
@bfkGlnprstwx?f�rl*s/y~bGf7�lr|5sGkm�n*st�xGk4s�x	�nGtxrs~t#p/zfk�lpt[r*s�tGs�y�l)�r�f?lGr*sn&pt	�r�`l�n
�p�r*sflmn�s't3�n
@h�k/m'np�stGwy�mk\s	Xl*n*s't*k*lxr*sxxGrWtGf*sGtbf�k*lGmn*sGb4fkGlfrGs*kWlkn�st!dr*sbfklnptl�nQstkGn�s�l*y�kGm=:nPLn>�t@l�st*x&s�tGy,�smQl*st�k'�lr�k&sGy
@�bfk?mn�psrstM�wx�s�t*yGl�y
�kl7m5npr.sWtGy�n*y*l*s&txxy*sym*k^sftGy_�@*nGr}s*ty0t�xk*l*n@�r*s*t�y�lmGstxx*s�Xt�k*n*s*t�yr�mn)t�ks*yflGm*n*s�txxrGnGsGt5k~l&n*p*s�tGp*st<yk'lm*n*sQtr
wtzf�kGn*st�k
�s
fGk�lmJ�npstxt?�mk��ll@�skGnPjl�k��m�r@bfhklmnprstwxy
bklmGn7prBmstwGx�yGl=r�sGt�l�n*p*kLs*y*lcn*s�t�l�r�rGxG@b&"fGhklmnprst*wxy*r?sGt�y=Pl�An*sGtxx#@bhklmn�p*rst.wx*y�lr?lmsfp�tlmn��r*s*tG@�kQn?s*y�n*yGmp*s|tGk��n	Gk#lGnGp*s&txxGy?kGn�n*r*s@�kfl�n&stGr*t�rfGkGnGs�tGy~n*s*t	Gkfl�m5n*p*s*tGy	�b�fGk6lon*s+tGy&k*nr*s^t�m*s.x@bfhklmnrstx\�y�nr*l*s�tGlp�m8wrS(s*t�y�lln&s�txx�t&fk�m�npr*st,wx*yr�lGn�rs*�txx�bm*n*s*tv>n*s�xGy�b*nr*s*tfl�n*t�bn�st�x�s�tfr*sGy
b��kfl�n�pstxGyGk�lGx	Fbf�l�mGn*s��tGy	ffl*m*�nfr*s*tGy�nGr�bkGlns&tJym*n*stxxn*sWtt*n*s�x�m*n*s*t&s^txb*l&txxrt�bffl�m,n*st!kfl�n*s+t/y�m*n*stxxGy*f�nGr*s*t
�bkl�m�nrs^t*yl*mQsQt*n&s*t*yGm*w"�mGnGtn*s*lfr*sGbGklmnGpr�stxxy.kGtdn*st
UfGn=�tQn*sGt�r*s*ttr)kk&txlGn�s@bfhklmnprstwxy/lQnQk�l�sGtGl�n�r*s�tGxGm�nGsGtMtlGmGnstGwCxGyt*n*r*s^t
*@Gb-fkmnrsH�t�wxyxk*n*s�txx*nH�s�t-�x�b�n*stxx�ffr*s
Uf*s*tflGmGn"�s
Qb*knp�rGst�w.9xpWst�l*nr*s*txxGn�sGy!k"�l�mnrs*t*�s&sxx,b*n*s*txx�k�r|s
Cibf0hkl�m*n&prst�xl*s*t/y&f\x.�sxxs*y+stxx*fflGn*s*t�bGmGn*st�x�krxxk�tx��nmGnr*s*tGyn?n&txxGk&l*sGy	�f&kl�n*pGr*sɚt
Gf�lmnpst�xy�bn*stdl5�tklft*yJl*s�t^fflon*s*tb^f&kGl*m�n*stxx�y*fflQnGn�p
bfklmnp+stGwxxy*lfrt*s�y�l*rGtGbln�r*s�kGp[sGtk�n*pGt*k*n*sGtfl�m*sl*s�ys3*m	bf!�l$�mGnrstGk+l�lGnCs+tWp#�krsb�hny�kG@ bfklkmnGprst�wxxylGn&txx*fQn*y�l*n*s&txxflY�st*y�k+s�t*lGmn*s&t�k�lGr*s*n*s�txx*k*n>r*s*t�xGy*bl*sGk*sxtGkl*sGtGxkF�n*pGr*s�b*nPp*sGtqW@bfhklmnprstwxy	G@5k*lGnr*sGtGyGk*stxx^ffl5n*s*t	klnrst�wxs�mGm�n*ykGm*n}r�s*tGy�lGn�b&k5n*s*t8�y�l*nQr*s*tk*s.w�r�n*s*lGsGtx@b�kmnrstxx*y*k*lGtn]p*st��kf*k�m*n'strns*kflQn0@f�k&mGs�k*n�s*tGy�kn*s�tGy�b^f�kl5n�r�s*txx*y�k*yY�k*s*yGf5�k?�nZ�r*stCxGk*n
�r�s*txx0hkflQnGstxx6�n*r*t*fQlGn*s*t@Cl*nGprGs_
t�k*n�s*tGy
um�ns�t�xQnxsFb0�k'm�n�s&txx	fk7lmGnS,p�st�lQn*t*y9p�rfl'n*s�kfl*s�b�fkk*lnGpr*stWxyfl�st}s*xGkQmQn^sGyGnp*s�r*s�k�l�nCr*sGtGxGf�nGp*s&h*n�r&st� l*sQ @bfhklmnprstwxyyl*sk*sly�kf�kl5nrs�t�wGx�4y�n	�f*k�n*prst�w=�y*n!}r*yGl{mGn*s*t�xtGnWr*k�l�nQrsGm&s&k�n
�bkQlnprN�stxx�k*nr*s*tGy�cfflst�m*k�sGn�r*sfsG;t�ksGy*m*nGs*tGnQpstx*yfl8�n*t*npdr^sl{knQt
�mCt
�bkl�nrstxGy�lGn*s�k*s�t*yl^n*t!s*n*st�xGy*nr b�txxjVbf�m�n
rrs^t�bn*s*t�l*n*s*tklnrst*yQnGsGnst*y*n�s*t�l�Pm5nr�stflQn*sGyflQnGr*s=�t�n�r*s*txx*y�bGk*cl*�nf6rLst*nQr*s*tGy@�bfklmsnp*stGy-�n�kGn*s*t/yGl*ns*t^lf*nfr*sGtlGx	�k*mGnkm*n+s*tfl*s&txx|p%mbfklmGnr�stGy&t�x�yl*sj�y�k&txx*y*sy�k�l*s*tGyGsQtGyG@Gk*nTs�tGxGn&r@*nsldkt4f�@bfhklmnprstwxy4�k�lGnlr*st.xd�n*sGklmGn*s&tkGn*s*t*yGl*mGs�tGybfGkl/mnrstxxGy	rl?s�t�l*t*m�n{rsGt*yGn+sGt,�x�yGnGr^s�txx*yGk*st*n`�r*s*t�w�knGpstGy&k*sGtflGn*tb*n�s*tGy�k{lnrs4t&t�x�b*kxm*nst�x�m*n*s*tGy*nzr*sGtGklGnGprGs*t*s�t�yptbZr*f5n*sLtGy
bfklmnp5�r�stwyl�r~l*s&l*p*sk*nGp*sCt*y0�tG@Gn%mpflGnGsGt�pGt
�bGkrl=�mGnr*sGtGy*k*mxmGn*swF�n*@CbbfhklWhmnrs!�tx;`y?l�r*sGt/yGkO�tl*stxx&f�kGmGns/zt*yfl'n*s*txx	U�b*kfl�n*r+sGt6x	fGlGm�nrs7�tx*y�k*sGt/y*n��rGktr*sT�l*sGy�nxl?nGr�t*x�b�fflm%nGp*sttb�nCs*t+dwxxGp�r@�bfklWmn��prst��w*x*y�l*slr*s/s*tlm�n7�r&s&txx�nt*y,1n�fkm&n*prstxx�y,b�k�ns�txxGy*n*s*t�n+s_t>b�nrs*tQn�t*fQk*nr�s*t�k�nGst*xy�bn*s*tfl+s�tpEm
fkGm*nzrstxGy�n*s�txx(kr]txx�b�f5Pn�r*s*tGf*s�txx�bGntxx�f�nfr*s*t	*le�mnxpstxydl\sGk*n6r*s*t��n�r*sV�t
flmK�nGp��rs+txx	xynt*cl*s�k*n*s*t@bfhklmnprstwxy>f/lQn*sGyklnrst�yl*s�m~ns+tx*ymGntGlGsGk�ntxm*t�wr*s*t
@bkl�mGnr�rstGwx\�y�nl�slGn*sGt�m*s*yGk�nGprs+t�y�bGl*n*s6t	ffl5Pnxrs*t�w*y+�m*t�w�f�n*k*l*st�rGsbfhklWmn?prstGwx*y^l*t*rGxfp*s�l$�mZtn?r�stxxy*kGs�t*nfr*s*t�y*nE�s�f*kflmGnw�sGtt�CrGfmlGm*n*s*tGy*l?p*sBtFb
�fQkfl5nrs*t;`xGy�k�lGsGtGyn�f9l*sbGfkmnGpy~rs��tQw*yrmlGsGtGy*sGtxxGy�n�sG@lf�lGsflGn*s*tWw@bf�hGklxmnp(�rstw*ySgplkn*s�t�ns*t*y�l�n�r*s*t*k�n^s*t*y�@flGs=�tl*nr*st!n*s*t�k*n*p*s*t?l*s~t*f�fk*l*mrsGt�k*sGy*m*n*sGtxx*k�l*s
�@bklmn�pfrstx*y*l?nGrGt	�b=fl�m'nstxxflGmrs
txx*y*n�3r*s*t*m*sGt*yGlGn*r�bfl*sbfklmnprst�w��x�ysGttn��x
'bkGlm?nrs�wxxrr&s�b*n*s
�t�x,bGl5n*s*t*l*n*st�s(�t=klmnrs&t�xt*n�r*s*t%mp*k*stD�kNn�r*s&b?np�sxxSt-�xl}sft�k*n�pbst-�x,b*f*n�r*s*tk)�m*nPlrstxxr4f�n&txx�b�f�bGl5n*s*txx*k+st�}xfln*s*tGstll�nrs�tGwn*s*t�t8�n*s*txx�bWf*n*s*txxWn�xWnt{r*s�bf(6l*nfrGs*t�hlGnr|5sCtGyt*l:0m�ncps*t:Ytb
.fkl&nrst.wx*y�k*lGk�lGn*skGn*sGt*y�s&txx�f�kGm*n*s�tGy	Gk*l*nfr.Os*txx=yGpCtV?lGm�n1�s*ybfklmn{prsty*l�nW@*l*s&txxGm�n�s*t*yCkflQn*s*y�bGst�n*t*n*stGyQp	�r
�b>f�kGl*m�nrs*tw�xGy�k*lGn�@k�kl*slGk*n�s
?�bfklmnprs�txGyl*s�nr*s*yGf*lnr*s*kfls�k*n*s*t*y&kGln*s*sGtWxflGmnGsGtnhr*s/f�l�s&t�xGykm*np*s*t�w�nysGtn*s*s*t�x�p�snl*s�k
�s*y�b&lyLnGr*s*t
xf�Dklmnr�st*y�krGt@��m*n�ysn*sQtGstr*k*l�m^sGymkl/m'npsCtw*x?ylG@�n?n*s*y	X@xs5�t&lxm@bfklmnprstxwxy	Gkl�mn�rs�t&y�f&k�m*n*s+t�fctGl�m*n*s*t
9OfklmnrGstwcrh�txx{k&txx�n*s*t�xflQn*s��t�bns*txcsttflQn*rGl*n*s*t�@Gbfklmnprstxx*y�hr*s�m*nUTr*s*t	�3b4f�m*nr?s&txxGn�txxbfGnp]s�t_\btQl�nGr*s*t?s	�bk7mGnst�xGytxx�f*n*r*s�t��l*n*s�txxb*ffln*s�t�n^stxx�m*n*s�tGy�rbkmnpGr��st�x/y�bL�l*n*s*t�m�n*s&txx%mbn�b�ntxx*f�nfr*s*ttcl�ntxx��f*sfl5ns%�t�b^f�n*st-�x�ffl�n*s�t*f�lnGpssGtflGs�t�b�fklnr*st�wxy�b�m*n*s&txxU�k*yflrs&txx	Gf�kfl'nr*s*tGy�lQn*s*ycn�l
blmnp�Pstxxy_
k@�lr*st��ws�m*n*t�m*s*t/yflQn@rrs�txx*y�b�nflGn*stxxcl*n*s*t�w*n�r*s*t
*@bfhkX�l"�mnfrstx*k�lkl!m�nrs�t�
txx�t�xn�xtb�m*n�xr@�tk�xlmpGr�h�m*n*s*t,bs�rfl�s�t	�n*sdtGy	kflmnr*s*tGy�r�nr�t��kGlrGt*kdl*ns*ttn*s6�t
�h�kl*mnrstx*k�mns*tjx�y*n~�r*s*t�m*nGr*s�t�fst�b*nr*s*txx�mNsn*s�t	!bf6�k'np&stxxbGl�n*s*txn�l*n*shtxxfl'n*s�tGy	.]b^fGl�m�n&s�t�x�b�f�k�n}s^t6}xO�n*s*t
b�fkMtlnps&t�yl*n*s*t�n*st*yt�f*n*s*tck*s_
t*stxx>b^f*n*s*tflQnpGtk��t�fhmGn*st�xy�nb
lb&m*n�r*s*t�l
bfklmnprst/xyl'n�s*trszt!k�lnB�s*t/ytk*n^s�tlm*nGt*st�x�ut	�bCk5nr^sP@txx*yn,p]sGl*s�tGy	fkfl*nstxGy*k@ltxx�ffl�n?sflGn*s*tGy�bGn*s*tGn�r*s*tbk!�ns?�txx�yt-�x�b+�f*n7r*s*t�xtxx�b�f�n*s^t�f�n*s��t	4fGh*kflQnp*st��n�fxr*s�bColGnr*s�txx/f�kQsy�f*s�b�kn�txx�l
.m*n*s*t�kln*r*sK�bGtflxr�rbfhklmnprst�wxyGk�l0#m&sGt*x�l�s&txxxk&t	hGkGm�n�rstxx�tt4fGn*s*t�b�f�k*nfrs�tU�s�bhkfln&Pp7r�stxxy�k*n*s*tGy�k*nGsGtGfGl�nxr*s�tGy�k�s
�wG@Gkns*t�xdjb�nstxxGm�t*y^fflQn*s*m*s't�bhk*l"�m�n*pfrGs�txx*lGm�hfl*sGl&nGr�@bfhk*lmnp�rs&txGy{l*st�xl?nr��@*ttyr�lGn*ttrknWb�nxs�txxnQr*sGt&tGk�lzm*pWds�tl*sGt	�k*t*n*stxxy*x�ykl?<lןbE�lGn*sGt
�b�h*l4�m�n*st=�xGy b*kGl*n*s*txxGkxlmQn*s*tyb�mGnGp*s^t�b�fl0m*nsnX�k�lGmO@Gbfhkl{mnprst*wx?lGnOs*t*xGlmnns*t*y0hfƖnsGt*yG@lfm*san��fkGn�sts�l*ns*t*yG@Gb&l*sy;�@;�f;�n?stlfwlf[nn*s*@Gs*yGl>�m*n*st*n*p�rs*t*y	lmGnrs*t*xGy*nsSt*y+nnGl*ns*t*yb��fklmnprstw�xyGlGr*sGtGkal�n	�r*skGnr*sGt*yy�f�nGtnGp�t*k^sGy�bfklmp%�rstxx'b'lWr�lmr*sX�p�fs�tk*y�ksGy*k�n*k�ilrn#n�fnWpt*stWr?sflr*sGyExk*s*kGm#r�nGp*s*tGkmn*sGy,et^k�sft*y)kflWln*stGnsk#Bpm�n*s�wyY�sGypxmGrGt�x�f�kGn*s
bfCklmnprstGx?y!Ik*l*sGn*s��t4�n*spn*kGm�s�km*ns4�t*@�k}s&t�tfk�lGnO�rs*t!kGs*t/y�l7�r]s
skCtCln�s*t�ksGtGy*n�r*s*t@�bfklmnprt*r�y*kn�rk9�x=n�arkrs�t�f*st
�r��l*npr�tGxQk�sPkGf�nI{p�r�f*k*s@bfhklmnprstwxyb/fhH�k�lxmRnprst�wGy?n�tB�lA5rxsnrs*tfl*s�txpt]n�?r*trGn*swGl*n*s �fklm�n�prstGxGmGn|5s�kGnrs+t*yGl]s)=f�hGk�n�t-�xflQnQp+t*m*n*s
D2bfkl�nprstGw*x*y�kGm*s*t/y�n*sGt*kn�rsBt*yak*sGt�rGm�n*s*tkGl^s+t&t
x�lGns*t
GbGf4�kGlbmGnGpGsGtbfhklmnprstwxyGkln�sGtQnr*szt*yE�tGxlGrGsGxQn*sGt*yl*mGsGk0s�m*s*tGfGkns�tGy*kGstfl�sGmGn*sGtxxnsGtWl*s?t�x0h�k��lxmGnpxrst�w*yYlOlGm*sGyfl*n�s*tGy�lGn�p�r�sCt	GfGkCm%�np^s*tGya�b�f*l�mn5ps�6t>�w6}x*y*s&tc�x
�b�fklmGnGprs
Ht-�xGy�p*t?hQlrsGlzn�s*tGy&k�m*sfln&p*sGt*y�l*nfr�s*tGm�n*s�w@bfhk*lmnprstwxyGmQns�t*y	�fhl~n?�rGsGtGy?f�n*s+t*y
=�bhkl�mnrss�t7aw^x/y��m�nP�s�nxxGn*s*tGw*yt�mGn�sGt*k*n*blGsO�tCm*s@�b�fϑklmn?prstGw.y*k�m*yfl�n*s*tk*ns*tfl?tGmGn*s�txxGm'n�stGn*sWw�l*s*b?k*lnst?xGk*n?r^s�t�b*lGn�t*n�r*s.bf�hk*lQnrstGxGy?mGn*s�n*r*s�b3El*s�tGyflnr*s?wGn*s�xflGns*tGyGm�t	k|lGn,pr*stGws�n*k�p�jsr^sGl<�nsGt#wGy?fflQn*s	f5k&l^mnp*stGlGt�hGn*s�kxr�tb�knr*sGtGyl?x��k*sik
bf�hklmnrstwGyxl*r�slQm?nGr 	s?p*sGwQl*m�stxx*nJr*s*tGfQnrstyQwQn*sGt*xnGs
�txxU�@Gm�ns*t*x?f*np*s*t�l?sn*s*tGyxr*lfrGtG@*l�nstGxxy=sxm9�n�p/s*t�w�b�n*s*tG@bfhk1;lnprs&t�w*xGyl*sGt�y*stGn*s�t*k*mGlftlm*n.rOs*tt*r*s*tp5�s7f�hkl�sGt*x�nxr*sGkQn?s*y	&lGm*nsars*t*x*y�n*f�kGl*n*sGtGy@bf0hklm5Pn�prst&wxK0y*k�rGkGl*sGt?l�r/�flm5nprsGt#w&x*yfl/m*nGs*txmGt�y�kGrOHf*sGtGw*y*k�n�r*st*y�kGn^sGt
,b*k*lxm*n*s&txxGyb��fkl�]mnp,sCtyGklGrGnt�xGn*s�t*y*sGtxxGn�r*sbf�hklmnprs�"twx~yGk�l�n~r�klQn*sGw*yGm�nxrGs
Htxx�ns�txx*yGm*n*s�t&l�nGr*st0Rrfl*n*s*t?xGnGp�r*s�kl&m�ns*t*y�k*yfl^mGn*s*tfapkBRl*s}twG@?pG@*nGt�l*pGtGl�n�sGtG@�bkln*prsP�t�owGyGr*sGtGn*s.tGx*yQl*n�r*sGt*yrs*x*y�n*s*t�wbfhklmn�p[�rstw��xy	rlQt*y,b!kSr*s*t/yGm?rsxm*n*s*t>Yl�n�r*s&txx�k�n�s+t*y*l�n�s*t�xGkfl�mstGh*s�bGn*s*t&y*f*lmGn^s+tl�t*y�b1k*lpr*sGyGm*n=�@�k	�l*s�n*s�w@bfklmnprstx�y��m�lK�nxt!k*lr*s*t/y^s&txx	'@l�mnrP�stGy?r*s��t�xst�ntrkP@t�x+s&k�n*s*t*ymfm*sGk�nY�s�txxCyGlGn*t�@0h=�k*l*n*s+t�krs*t�wc�x*y�ns*t*nt��n�k�l*s*tfl�nRp|0tbf �klmn>prsBt�wxxGyGl�n�r�s�clbfl�ns+tGyl�wtG@�ln*s�sGt�h�m�sGtGlGm*n*s*t8�yn7r�ss+�l@bfhklmnprstwxy*sQw	GklGm�nr*stGyGkD�n*k*l*sGtGyx*lGn�rGtGxxfGlGnGsGtCfGkl0#mnGpr�sCt�wr*st*ykr*yfGkpWsr��nfGm*n&sQk*sGt*y	�bO�fkl�ns+t*y/n*s*tfl*mGn*sGtxx?@&kCl�n*sGtbkfl5mGnstGkWn*s*lGr*s�blf*n*sGt*y�fGkGlrxs*tfs�txx�s
Gb
Uf�lGmnGrs*tGy�h�kJr*sfl*n^ls*t*fklmnpstw*y*nxr*s*t�b*s*yG@*kGn*s*m*s�t?rGtGm0nGtGfGkGnsQtGy0n�@Gl	�bGkGl�n&pGr	�s*t*@CkGlGm�nGr*st*w&xs�rGk0nGp
CsGt*k*s*t�b=kGlGn*s^t�xb�fPohklmn��prstwxxy^l�nxsGtal
�r�n�skGn�lGn*s	Gk*l*n*pr*st�wn`�lGn*sGkGm*sGy&ft�n�rGb�k*n*s*tGw	�yxmGt5swfx&k*l*n�r*s*t@bfhklmnprstwxylGmJ�n*sGt
xh}�klnr!}s&tGx*yG@*s*yGkGsGt*k&l*s
� flnr�st?wGx�y
�b�f?h5nrsGt�w*y*k�sGy.s*tGx�l�n*s*t*y�flGmns*t*y�s*y*s�t�x<�b*s*tGh&nbfhklmnprst�wF�x*y5kJlGnzrGt*lB�s�f~l�n*sGx�lGn*s�n�s:xt*y�p&t
�fmhlx&n0RprGsGt�x�f*y�n�rGslGm�n*s*tGy	
�hxk&m*n}Xp*s*t*yGmGnGr*sbfhklmnrstw|�xyxlGylWmGn!Ir*sGtGx*f*k*s*b�f	.@�bl5n5�p�s*t*yW@*n�rss@*s*yxks�y?f�.lkfls*k�n*s*t*s\tfc�kGlnpGs'tl&m�$yrY�k�lfl�n�r*sty*k+n�rst.kQtb*f�h.klmnA3pr[�s�t�xGyG@xr*t�kX�n0ns]n0h*nr}sP@tGkGn�r*s*t?s*tb*sx	�n1+l��@bfkl�mnprst��x�y�zl�m�p�r*s@l�r�s*l*n*sGy=�mGn^s*y*kfl��s�t�x?yxkxl�nr*s*t��f�k*ns*t*y.wpzkn�p*sF�ty�sns@ikrkGl�tbklmn�pstwxyGn7r�ySbGfxkl5nr�sGtCx*yGkGn�s*y�n*sGt*kGnrs*tGngKyCkfl�m*sGt*flm5nprst�w*yr[�s�x�k'l�rk+l~nrs*tRyGhGl*sk*ns*txGy�p
CrW�k�y!7@GmsGt*y&kGrGlSr	�nbf7hklmnrstwx[�yGkB�l*n�r*sGt*f�l�r�t.bGl�p*s�t0f*knrTmst*y�s�p*sGk?inGt0h*nGs=�t*f&kGlE�n*sGt/k?lGn*s5tGklGn*p�r*sGktsGk�l�n*sfl[�n*pCtG@bfhklmnpstw&xy	�k-lGm	�nr�sGt*y&l*n�p*s�tO�l*m*nr*st'"f&p*s�fQlr*s*ns*tb*n*s�Xtxx�7kGns*t*y	�fkflGmnpstWn*s�yQnfs�l*n*s*t�f�mkGnsGt,yflQnr*sfGm*kGy�sft2�@bk�lms4�l�bGkl�nr*slf&pt6dr*s*str�t=�nr*st.x� kxr�sGy<�b.k��mGn*stxGflmnGp*sk�k*ys*s�tGn�s}tnGxst�bflGn�rs*tGyGrGt^xObGlPLps9�ln�s�t7@bks�l3"m5n[�pst?wGyGkGlGtGkalGtk*t
��f�.klT'n�pxrsCtGyis*y-m*n*s*tbf=hklmnprsCtw*xGy�k*lrGt�nGtGl�rsGkflxmnr*s�t*@Gk*n*s*tGf?s?fEk�n.Os*t*y�p8s	b�kflGn#r�`s*tGy�kWr�r*t�kGm&CnGs*t*y5�klGm*nGp*st�f*s?fGp*s^tGfGk*l<�n�s*t
bGf�lxm5nprsGtG@*lr�ffCklxmnrs&tw�yn�kGmGn*s*y&k*sftGyy�n*sxmxty�flGmGn�sCk*y@bfGhklmnprst&wx&y>f*s\bGk�n*r8s*t/y*lt
�x
�h*kGlGmnstx*yh	�p*s�tl*s*tCfGnr	�sn�bw�r��b�f�hkn&p*rpWstwGy	�n*s*t0x*k*p*sGtGn�sGt*n?s*t*x
G@�bGh�k�ln&rs8yflzr*sGt.k*tk�nstxb�lGns}�t*x�r*mCt#h*sk*m*n*s�b� f*n*s*t
Gbxf�k�l*mn�rs#wk/zt*y�bl�f	*fGk	�l�mGnxr*stGnzrsGt*y	bGk&le�mGr�`s*t��x*s�yGf�m*ntGns*txm�w�
ÍU����.	
�C�Q����e���
����s�U��]E��D+���`;�����	�P�
��f#�c��/10�����!�����J���ϯ��������+�-�.�,������¨�¨���R�p
��������T��W��Y��U��V�@`¨�¨�
¨�
¨�
¨�
¨�	¨�	¨�¨�¨��@a¨�¨�¨�¨�¨�¨�¨�¨�¨�¨��В�Г��S�p�Y��O���ـª�Д�Е�Ж�З�Й�К��������:��;��9�ـ����O��[�R�S�V�P�T�U������������¨�����:��_��:��y��z��w��x��{��51��g��q��s��t��r��u��v��f�0��6���Ѐ�Ё�Ђ�Ѓ�Є�І�Ї��|��}��~��7�<�Ј�Љ�Њ�Ћ¨��Ќ�Ѝ�Ў�Џ�А�?�@�;��a���f��#�Б��m��n��o�0��u��h��i��j�����������������������O�������������і�ї��`¨���b��c��a¨�¨�¨�¨�¨�¨��ќ��C�E�D�������n����@��?�F�G���&����������D��E����������X�H�K������������W��	��W����Z���������������������K�������������������!)���"����K��P�����������2�3�Н����Z��[�5��U�7�8�6�����¨�¨�6¨�¨�¨�¨���_�L‡i�M¨�¨�¨�¨�¨�¨�ª�¨�¨�������©�©�������©��Z��e��������������������О�Р�С�Т�ПL4%���/��'�������V`�y�}�n  O�}P������������Ÿ� + / 3 . , 0 1¡k¡v¡x¡jU�2„�¡p��„�¡n¡q¡r��������������������QS�ۊ<��I��>�Ÿ.! R D E T U W G
 Y Z [ \ F ] ^ _ H I B� J�� A! C#�Ÿ8 M N P�Ÿ7�¦�	����������������%�"� ���RR�ڊ<��H�i��T�&���6����������sY�s[�s\�s]�s^��i���3 � � � � � � }$ � �
 � � � � �Ÿ�s
 u { | s s � � v x y w�6V������� � � �W����>�����I��K��L��g���g�  �����5��[ŸF�u�-�/�. l�) m � � � � � � � ���@ŸG�s�'�
��R�Y�Z�*"����#�+
%����#�^�_�a�b�U�S�:��t���X�6�y�Ÿ��e�f�g�j�i�h�k�l�<���X�6�y��E�������g�y�%�������Â5��3�sW��@´ � � � ��>�A�@�?�B�CÂ0Â1Â3Â4Â�G�L�H�I�J�K�v�F�[����g�y�� Â��:���Â
Â"ÂÂ���6�g���Y��{^_]\� ��Z�*��b���q؏���Â'Â(��C��D�'0�'1���	����g���������������������������g������������������s�n�o�p�t�����
���������������z�{�����'�yl���'�yk������������������������g�����������������%�������������|�}���������ށ��-��������������M%������'
����g�	�y�*
z�i��,����,�-� �!�$�%�&�'�*�"��ž_ � � � � ��� � ���žM��žM � � � � � � � � � � � � ��������� � � � � � � � � � � � � � � � � � � ���������������Ÿ!¡¡
¡¡
¡¡¡	��#Ÿ�	Ÿ¡�
Ÿ
��Ÿ	����¡��efs��$�	�z��j�� ����i,�y���ž) ���ž��ž������������ž������� � ������2�3�4�/�0i#�D���3�S�z� � �¡¡ ���Ÿ%��Ÿ ��Ÿ%d"���E”燀¡¡�w�<�=�>�A�5ž��:�E�F�H�I�8>ž��zž�¡$¡%�6ž�¡'¡(�B�C�Jž��]ž�¡=¡>¡@¡A�^�Tž��_�a�Kž��S�Lž��M�N�P�Už��Vž��Wž��Xž��Yž��Zž�¡E¡F¡*¡+¡,¡.�f�g�h�j�l���H”U���p�o�r¡¡¡ ¡¡�t�u�v # $��Ÿ! � ���Ÿ t6O)�
�&�������g�y�A��
���������z�����������������¦c����¦e§+�' ��������������v�!w� |Xy�$�$u�{5��¡H�¡M¡N¡L��'�&�y��?��Ÿ �: ¡P�����W�a�X�Y�b�c�d�v�w�f�g�i�j <¡Z¡[¡\¡^   �k	ƒ��L
�r �n„�  
�mƒ��J�l„��o„��p„� = >zRO6��%��<�������A�'��
¡b¡c¡e��„�¡gurz�#¤� 6 7k���pqo�����}�~�nlm������� )������������������������������ &���
1*.2��8�O5��i2�T��o��`6��@�8���Ǒ��¢�¬¦-¦.¦/¦0¦1¦2¦3¦5¦6¯¯¯¢�¯¯¯¯¯¯¯¬
¢�¢����*��+¬V¬X¬Y¬W�¬P¬>¬B¬?¬@�¬R¬S¬e¬T�£\��
�¬]¬\¢���¬c�
¬D¬E¬F«�o¬a�P�Q��0��(¢֊s
¬K¬j¬k¬l¬i¢��r
¬n����o�¯~¯}­@
���­H��­A	���­G	��­P­U­T¯8¯9­X­Y¯o����­Z����������j��d��e��g��h��i��c­B­D­E¯A¯@­J­L­K­�­|¯N¯P¯Q¯R¯S¯O­�­�­}­~­w­y­x¢��t­u­s¢��u£££­�­�­�­�­{��M�Є��­���N��7­�­�­����9������ކ
�ҩ¬�¬�¬�¬�­�®H¬�¬�¬�¬�¬q�:����¬����F��+)1��¬���������������G��S¬�¢���/¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬���������k&�p�¬�¬�¬�¬�����­\­_­^­]­d���4N¬�¬�¬������ѣ�Ѹ�ѹ¬s¬t¬u¬x¬w¬v­i­o­p¬}¬���J��$��K­j«�s
­h­g­f«�¬�¬�¬�¬�¬�¬�¬�­l�H�:����-�����S�P�� ��s��t�Q£.¬�¬�¬��w��x�
����|�_��:����'���l��)���n��B�m��D�(����J��L�*�+��K� �� �i���!¬������
����{�^���Z�����%�X�����Q���P��O���<���;�"������.��������#�������-�$�%¬�¬�¬����­����­����X����������m���J	�U�{G$�V���߂���
�ѳ�-�%����&�"�#�$�(����6����������Ut­�������«����s}­���������������<�������s~�s�W¤v�]�^�Y�_�X�Z�[�s��s��������{�}�v«����`�A����Y���8�a��*��c��+��#�d�e��*�,�0�-�.­�­�­�
­����������������&��������J��$�U������
���Ѳ�,¢�¢��Ҕ®���O��Q��R��PÁFÁJÁGÁEÁLÁMÁK�8[�\�6�����*�Є�t���Ѻ��Ă�����<�ȃ��Ь�q���ѿ�ґ¯��9�����
��)�Ѕ�����Ѿ�V�:�ȃ������­��=�ȃ�������������ҽ�Ҿ�>�Ȃ��
����ҿ������VB��>����&���۰$��
��W�����D¦H�M���ۈ­���Y�ۊ��U��V��W�h������Y�i���«���[����]��_��^��\��a�N¦?¢����� ��"�����$��%­�­�­���#����L�H�J�I­�­�­�­�«����E¤��F­��@Z��.Q������P��Fe�ke�P�K�c��U�T�?0«�«�¢�¢��@}�������@~��€���€�����^��i��q�������������������������������������������������������Y�V\��g��q�T�R����*��+����z��«�«��1�*!Q����L�S��#"X$�U��x�O�K�cbO�T
�K�����¢�������¢�¢�¢�¢���)¨��4��l��#��$����0�������������3�ȝR~�U�{x
�2����5�������«��3�����л���c��(��*��,��)�:�;�5�6�7�8����h����3��4��5��6�[���ж��\­��A������г���-�Ы���:��.�4��8�B�C«���-��.®
¢��?­�­�®¢�®®®®®®®®®®®®®®®®���®@£>��£A��£?��£@��®$�C®)®,®+®*®-®'®.®&
®%���
����®A®F®C®G®B®=®>����	��:®<®;®:��¯p����®
��†*®¢��J�i¯t¯u¯s®«��¢�¢�®®®!®"® ®#¢�®�0F	�7�S����yL��«�'«�&«�'¬®Z�����������d�������������…�����������¢���¬&����„�­3­2­4­7­8­9­6­5­'­*­)­(­"­!­$­&­%­#­+­-­;­=­>­<­?­1­,­.­/�z��„��7�¢m5��«�5¬�7�{¢��8¬�7�}¤��~¤�Ÿ����@¬)®iŸ����>®g����m���¬,­­­­¬6��­����l���¬5­
­�m��I�~�ct�܃v"­­���=­�«�D«�«�¬-¬0¬/¬.®l����~�ct�r­�­��-V���­�­�­�­�­�­�­��.��3������������/U�����®c��®[®d­�­�­��vC�1�J	+����oT�c%K�ބ_����¯7�����������=‡��@�A�n0�ȣ������­­­­­­�s�t����r�o�p��!�_�m����Ђ/�9��:���H��­­	�–��8��I�¬9�����4��ٻ��G����“Y�E��������>��?¬:¬=¬<¬;���ǔ��¬¬¬¬¬¬¬3� ®Q®O��
���n"�lO��r��s��g��h��t��m��n�x����p��q��
���lO�w�����j���
1"48��0�I"��ik�U�	��`'��B	
"�R�8��
������3�+®�®�®�®�®��x��6�W����W����U����W®�®�££��®y¢���®�®p®q®�®�®�®�®r��¯h®��r¨�££
��5��6®s.®�®�®�®�®�®�®u¬®t¨�£
£�����o����s*��y¬��¬��¬¬��z��{�������}¬¢������®�®�®�9®�:®�¯¯®�®�®�£Q£R®�®�®�®�®�®�®�®�®�¬�£�Ҡ��p�ң�Ң�ҡ�Ҥ�ҥ��9o���֞
�L'£1¢�£2£4¯®��EA���t�f��{��N7®�®�®�-¢Ɂ���®�¢ʁ���®�®�®�®�®�®�£G�X®�®�®�®�®�®�®�®�®�®���"��'��%��#®�®�®�®�¢ˌ�b®w®�®�®�®��FA�{��N7£V�v®�®�®�£W�z®�®�®�££�f5*�ގ�3%��@�D,$����2�m�cY~�S�.��	g��¬������h�N����g�i�d��£$��¬�¬�¬�¬�¬�¬��5�6���	¥�#����¯����¬�¬�¬�¬�¯¯¯
¯¯l¯m£Z�x����«�«�¬	¬
������������������¯����������£Y�����l�D�������F��¥>���j�B#�������݌�	�҅�������҃����҆�ܨ�҉£_�Ҋ�҇�҈�M¬���¬�
�.¢��?����¢��?¬�¬�£U����������X��8��Y¢����4
¬���…Y¬�¯!¬�¢�¢��m������5<������2��1������������¢�¬���¬�¯{�k�A��ၰ��|���|¬���¯��‡h��/��.���������������¯1¯2��‡Y¯Z¯]¯[¯\������¯G¯H¯T
¯U¯X¯W¯Y����‡X��¯L¯E¯D¯J¯K���L�ẅ́��^¬�¬�¬�¬�££ £££££Ÿ��n�uH��ċ���^��|��<�v�������Ͱ�(Ÿ�£"£#£K�D£N�G£M�E£L�D���L�~E�l�L���{A�C£(�r£'�D£&®�®�£)£*�(i�"�@��Z”L��
�[�\£�£�Ÿ���£��6�a�b£���£�£�£���=��?�^”9���oŸ�F�”L��
�`����D���T����	��B���
��A4�r$�?%|�/�F�с�Vw������3OqI
��
��
H����E��6�X�4F��?�B&,�b~�-�x:2
�Xv�<�ɴ���{�(��)���–�������[[�I��M�=���I��J��K������':�';£b£c��–�������£�£������f�f����ք���.������������������������������������������������������������������£�£�������������������e�fƒ������������(�)�(��(�����M������M��£�£������������T�d@�������¥�¨����.�¬�§�¦�©�ª��s��t��������������l�T�d@�­�´�°�¶�¯�±�²��������� �4H+�����W��xU�h�E����v �H£r£s�͙�͚�͛�͓�͖�͕�͔�͗�͘�s��s��s��Y�Z�[£g��)�s�£h��)£�£�£�£��=��w�߽����������?��v����������������������@�������s��s����h��7���<�T�\�X�U�V�Y�Z�8�9	�D�C�O
�L�J
�H	�Q�B�>�?����4�&��	�0�����s����{���������{����������������������������-�0H�Ս�
	u�Z��xT�h�D����r�i¡�¡��>��\�?���A��Y
���´����b¢+��T��U�\�Ձ�����q�x���w�m�d�
���h¡��`�̈́�б
�h�i�e�f¡��]�d�`�_�^�a�b�͐�͑���������������������������]�F����w�����m�d�	�,¡�¡�¡�¡��^ž5¡����º���º��Z��c��d��e��g¡�¡���]��_��`��^��[��a��!�d��¦(�s��������������������"�y@������������������������������w����4����5�������v��<��=��6��7��9��:��?��@���c��������
�a���������b����������b���a�x�y�{�������~�|�m�p�q�n�s�t�l�v�w��������t������������£�£��a�i�j�d�e�c�b�f�g��
����	r��y���r����q�������݄K�V?Q����bO1�6�������������(~�(�(���N��O��K��L��F��G��D��E§�§���ې�V���1�����͍�'��'��'��'��'�������s��s��'��'��'��'�����ńO����ͣ££��͠�͡��”��-�����'������������'�Ÿ��-�S�����������'��T������ݏL�����ߏK����I�(��(��(��(�����~���
������������
���
§������������o��p��q¡�¡����������(��(��(��(��(��(��(��(��(��(��(��(��(������1��y����������
�V�?���J�V?Q��*�w�"`��§�§���œ�§�§�§����<‰����#�B��
�@����d�g�~"�7
��o���������
œ�
����������œ�������I��J§�§�§�§�§��C�x�D�x�����������
���;��ԏ����$������������MÂ\���
���>�
�$�K������������K���������������������������
���9������
���+������§�§�£�£�£�§�§��({�(|�������²�pl�d��"�߉�ͦ�ͧ�������������������ͫ�ͬ�͵���������¡�¡�¡���œ"��œ"�Ͷ�ͷ�͸�͹������Ó
�pX�d�� �߈�Ͳ�ͯ�Ͱ�ʹ���ͳ�ͩ�ͪ¡�¡�¡�¡�¡�¡�������XK�����\��E����Ѓ'�������Ç>�4�5�6������������������l�������������;���x#�8���������{�|�z�Y�y���}�~��;™����������!�"��4��������������9�:������������	�������Ι�O������
���.�	�
��
�����0�������ȇ@���?���,������-���ԁ��9���F�H�|WK-�ѵ���<�=�>�?�@�A�B�D�E�s��s����F…�E���¡��I–z�8�j™��l�m�p�o�k�1�2�3���&���(�)�*�+�'�����������ˁ���/�waI�����a�A����b�Y��y��)��������������"�,��-�.�쇫�K��?��[�� ������F����������$����������ߜ1�����O�P���������G�H�0����������������Ȃ%������������£w�#�#�ʇ������%��]�� �!����&��]��������"�7������#���.�D!����T

g
���ՂB��ɂ���1
����
	���i���T->�\
�BN�Q�_�4��G'���6
�=������û0�����T��U��U��`��8��9��:��;��������������¯�¯���W��X��Y¯���=��>��@��A��V��^��9��:��<��=��������	��0��1�ԓ�Ԕ�ԕ�Ԛ�Ԙ�ԗ�Ԗ�ԙ¯����������
��¯�¯�¯�¯��Է����Ժ�Ը�Թ�Ի�Լ�����������Ԡ�ԣ�������������������������Ԣ�ԡ�ԝ�Ԟ�������������������Ԥ�Ԫ�԰�Ա�Բ�Ե�ԫ�Ԭ�ԥ�Ԧ�ԧ�ԭ�Ԯ�X��~����'��'��'��'��Y��������������.�����>��A��@��?��B��C����������������ӱ��<��=�Ӳ�ӷ�ӵ�ӳ�Ӽ�ӹ�Ӻ�K��
��
���������������������������������������������&�ӽ�j������Ӿ������������	�����������������������������!��"��#�����ڃ=��%��������������������0��1��4������������������������>��
��>������>������	��>����@��������>����=��������������	��&������!��"��%����������-�3��`��	/�� ��(��������������T
��b��>��?��Q��R��_��`��a�����W������������X��Y��W����E	�����������V�������������7��J��K���3�������a��|žq¯��j�k�l�m�(��(����������
��������	��������S����a
��{žo¯�����U��i������;��S��L��M�|�}���<��a���?�����?���>��o�7�8������#���i0�j���§�§��>@�\����������(�]����k�>C��!������)�:��o��k��l��p��n��s��t��-��d��e��h��j��*�8��+��u��w��{��v��x��y�8�7������"����§��p�q�r��F�s�
�����ԂS��p3���������¯�¯���(��/��+��*��)��,��-���[�l����kj�p3�����ڤ���*��[���������������P����R��S����Q������T����U����V����­��
������������c���¯�¯��Ք�\�Օ�դ�O�ե�Ֆ�՗�՘�ՙ�՚�՛�զ�է�թ�լ�ի�ժ�խ�ծ�հ�B�ա�P�բ�գ�՜�՞�՟�՝��������������=��>
��E��F��A��H��@��?��B��C���W��+��0��.��3����5��4���8��7��2��3��h��c��n��k��i��g��d��e�����r��t��u��x��s��I��J��K��M��΁�	��W��:(��;��6��T
��Q	��O��[��X��Y��ox��pw��������������|��}��~�ր���ց�ք�փ�ւ�օ�ֆ��nt��r��~i��i�Հh�Ղi��ss��or��pt��dm����gp�����e��f��lq����jo����hr����������t��v��u	��w��x��z��{��#��������������������������'������������������������������������������%��������������������������������־��������������$��"��������������� �������������������(��)��{�֞�֯�ְ�֘�ͻ���֨�֫�֪�֩�֬�֭�֧�֥�֠�֡�֢����u��s	���ӓ���������Ӕ�����¡�¡����ˀ���{��
����݃�a���Ҳ`�յ�ն��Ҷ�չ�ո�Ջ�Տ�Ռ�Ս�Ր�Ց���	�҂xr	����ҶO
y����վ�ռ����������ҿ�������������������Մ�Շ�Ն�Յ�Ո�Չ��7��8ÃpÃqÃrÃsÃoÃn����������Y�$����_���T�w�,F��u5�������������������������P��S��Q��L��M��N��Q�ܚ��\��T��U��X��Y��Z��[��R�܏��S��^��_�����/��3��4��2��0��1��5��6��a��c��n��b��d��f��g��j��h��i��e	�"�#�'�&�%�)�*�����R�����ӌ���Ӌ����{��|��}��B��C��z����y������x����F���6V	�K"�Ә�ә�ӕ�Ӗ�ӗ�Ӝ�Ӥ�ӥ��N^�\��O^�Ӯ�N��������������������H��I��MY�Z��KX�Y�ӣ����Ӡ�ӝ�Ӟ�Ӓ�ӓ�Ԇ�ԇ�x�΁�\���f�}�+��h�łx��	{��K�O=��R����������������U�Z�Қ����U����U�[�Қ��]���Ш
��a��b�א��c�ה�ד��a�ב���?����T��W��V��U��X��Y������������	����	��
��
��
����
��сˈ�����\���=��x��~��z����y��{��|��^��_
��h��e
��c��`��a��i��t�1�2�+���a������.��,��-��4��5��6��9��:��;�,�͢?���-���
��F�D��
��)����'�0žZ�3�1žV�2žZ��*�/�.	�����E�D��'���� ���׀�ׁ��/B��1��2��0�ׄ�ׂ�׈�׏�׋�׊�׉�׌�׍��Ia������������������������,��1��,��0��*��,������׮�׫�׾�ׯe�ױ�׷�׸�׳n�װd�ײm�������״n�׵m��/�����������0��R����������	��
��
�����������������������������̓�̈́�H��%��&����ͅ�͆��������������������������������'��(��)�����M��N��K��L��J
X?B��<����׬�׭�����v��w��������3��8������������������������������������o��t�׿����������������9��:��Ё�h����������<��{�+�ׅ	
¯�¯����
�گ
��Z��[�.Š�¯�
¯������ρ�������ק��,¯��������ך�י���ח��������׌�ם��������׋�ף�פ�מ�ן¯�¯��������ӈ�Ӊ��߁�ϼ���Ӂ�Ӈ�Ӏ�ӂ� ������ϻ���°°°°°¯�
¯�°°°	°
¯�¯�°
°°��°������¯�¯�°°�ā�	'#�	D9>��
��������	�h�����k%L�H�鋺���p�b�8���c��s��$��%��&��'¢£�£���sJ�ͽ�Ϳ¢�Gœ��O�G¢�H�J�I�¢�Jœ��L�Hœ��P�Q�S�T�=�@�?�>�W�X�N�A�B�¼�½¡�¡�¡���_���������¡�¡�¡�¢¢¡����\��u��%�������������ف����!��et¢����œ��i�h�g�d
�e
�j�k�l�t'������������������
����
�����������������PD/�<�l����f
�����ԇ�g���.�C�������2�3�4�5¢��
�FJ.B���a�l����h
����f�����U�������������†���0��†��!��"��#�������� ��¢"¢$¢ ¢!���v����~�w��������m�����-����'�������������������`��	��
�����y�z��	
!�!	D9&���g��	��b��p�LEp�Yj�T�e�>D�>E�����'�����s�������͎�͏�������'¢��(���SIU�*
���ԟ�������~�2�}�+—_�|�1����2�����1����¢¢����=����=��j��i��h����������������~��I������£�£����������7�q�����9¡�¡��;�u�|�¡������8�m������:�p�|����������	��t���������U����U�£�£�£���&��+��,��-��.��/��'��(��)��§�£�������������	RC/,������ł���PZ���U
��gN2.��%���R�������B��(��)�S��“������T���(������������f��c��b��f	��!����������������(��(��)�)�)��������
���f
������������������������������ ������Q�����������������������
����������0����/=��������޲[����������	����	����
��
�(�������¤G¤H¤I�x�������3�G���“ £����2�L�~�5�`�����	���3��S��T��P�8��������������EH2�����	����������_2��Y��:��?���;�(���<������|�(��}����������������#������0��"����с��ޫ[�t����"	��:��T	�����T����W�d���M����#����U������W�d���Z����W��H����V������������1(�����(������~�:��&����@X_l��r�=3�d���wp�y�����Z�d���t��p�d���q�d���r�d���u�d������������������J���K�L�=�?�A�@�>	�C�D�ī�Ĭ�Ī��;��@�d���%�d��)!�)"�)#���@������z�d��(���y�<$£�£��q�r�s�t��y�O$�y�x�w�~��m�(��(��(���[�9�:�N��G8&����I������I¤V¤W�����?�@�>�O��>/+��<��ޚ���(�����g���(����K���h����"���������K������¤X¤Y¤Z¤[�(���M����������,�-��������������M��	��S��������������������'y��@1
��5��B7(�V
�W��x
�x�V�����@¤U��������������
����g
��������
����$�����D\	���e������6�#����C��D��B���(��(��(��(��(��(��(��(�����e���O������
��
������f¤\��b��c�����������������������g��e��j�����k�����������������T�Ä��V��o��p��n��X��Z�Ã��W�Å�á��U
�Æ��w��x��{��|��t��u�É��}�È�Ç�Ê�Ë��I�ç�è�â�ã�å�æ��J�é�ì�ë�ê�ï�ò�ó�ô�ð���õ�÷�ø�ö�ù�ú������ÿ������ý�þ�������������������������������������������������Ú�Ü�Û�ß�à�×�Ø�����������������������������������q��r��s������!��0�������������"��^������_��`��KC�Ï��L<�Ñ��������	�Ò�Ó�Ô��������������������~���À�Á�Â��[��\�����������
�����¤¤¤L¤N¤O��u������>��=�����t����������¤M¤R¤S��?���^������?���^��������h������g�t
�t�t�t�t�t������c�W���c�	d�����������������¤o¤B¤C¤p�������҃ʁ�
���{~���))�������v�w�)<�)*�)+�),�(��L�R��	���{����x�y�)=���)>�)?����\6����N	�d`N
)���d���-��0��.��/�J�F���d��)3��1��2�H�������X6�����
F�d��I��1�d���|�d���}�d��M�N�����®�������
	������R��c�	����������Ճ���¤q¤r�����W�)	�)
���.�/�������������������(���������U
B6��t��#	�1FT�	N1���\z�{���#���`����x����x����(�� ���������(�����\������������������������Q��^��_��.�cf����ʃ��������������UU6'���o��#	�/FS�	N1�dR�{���#����_��)�)�������j��{��-�.�!mH�����]-�����"�������$���W����ސW����#�������\��"��8�%�&��9���8:���0�1�2�3�4�����������������������9�(��(�����8:��ق�J��������������߂���ނ����������:�����������������������:-����®����f����f��i�j������n�����g������h����s��s�Ÿ�Ÿ����z��2��)hD	-P
H+,a�A�������/&
#���W�[�{cE2)��B���ĉ�ĥ�Ħ�Ċ�5�r���d�s���d�t����d�v����]�^����������–���–����ĵ�Ķ�(��ķ�ĸ�
O�����ߟ��"��#��F�����ߟ��7�8��^���_�k����8�;�d�<�s��s��s��s��s��s��s��)N�ڂ2
D	����)�V[®���#����W;�����	�d��{���
�������������)���������������ۂvqA�ެ������c��)������$���%�d7�)\�)]�)_�(�k
�)V�)W�)R�)Q	�)P�)S�)T�ႁ�������T������������������������`����c���6��2�a�����0�����d����e����������
����P�Q����&
��Y	r7
eV0�����Q*86�c�{�^�Z��<�T�U�������� ¤/¤
¤��#�(�¤0�(�¤¤�V�W�!����ۂ��_¤��!��"�"���i���4�5�s���%��$����������µ��_��“��`��“��>�?�(��%�&��P�Q�c~�s��s��s��T�U�R�c}����1�������*{%�F�����¤¤�6��&��'����9���Ȃl������–��;���D�F�G�E�>�@�<
�=�A�B�V�W�)�*�88�c_�s��/�s��t	�s��t
�s��s��s��r�s��s��s��s��s��s��s�f��t�s��s��s��s��]�^�s��s��s��s��s��t���u�A�C�B�s��s��98�ci#�s��e�f�s��s��s��t�s��t�s��s��s��s��s��t�)�h�c��j�k�t�t�i�c��)�)��'����e�.���)�(���d��)������p��������q�y��D
	���
��"
����G(85�c
�|H	�s��s��Ę�-¤)¤*�ę¤+�(�������s���o�Ĝ�ߐ¤���������o������k¤¤���`�U�X�Y¤�f�g¤'¤!����`�K�L�N�����T�O�P��������R������S��܁��B��‚u£����%�&�'T�+�*�)�-�3�4�����������c��)C������������c��(��)D�)E�(������B��7=�,���僿�;�d�{f����f¤y¤�¤�¤~¤¤z¤{¤|����)�t�t��>�,�����������������������������®�������b�d��c�d5�h���:`]�y"#
��Ղ!
�����X������eI�����f���������'����a1���Kt�)��)��)��)��)��+�,�.�/�+��z�a]��Ũ������	�aX���Ŧ�ţ����Ū�ū�4��+����8�d�K�t�t�t �t'�t(�t*�ŕY�Ś�ŘV�Ŗ�������������7�>�����@�?�T�)��C�E�F�+���d�J�	�*�*�������d=����������������*"���S���d�*�2�J����������N�O�P�I~�`�H���`���`����������K����L��������������)��Ŝ�ş�Š�Ş�Ţ�ŝ�t-�		�c�
��F�U���F�t1�t4�)��)��t5��(�c���)�c��5®��8��9��7��;­���6�)��8��yj®����#�Ŷ�ŷ�Ŵm�ŵm��$��%�ųh�űl�Ų��+��'��-��1��.��,��3��4��2�9�;�<�:��<��?��>��@��A��B��C��D��E��F��H��I��J��=�� ���6�`����{�σ
���Q�W�R�S����c��)��������������c�����)��)��)������� �*���V�`������������������ź�Ż�!�����c��Kv�������
��ż�ž���ſ�Ž�������������������"���®-¤�¤����2�������������X�#=�$�����&4�'�(�*�Z��T�
�c?�|��~������q�*`�y�z�{�*a�*c�*]�*^�*_�*d�r�s�u�v�w�i��M�e�j�|�}�������A��.�	�c?�B�>�?�C�E��������
�����n�o�������)��{��l�m����¤������)��)���A
������	��g�b� �{	���Ϙ�������������)��)��)��)��)h�)i��j���c�$�)u�)v�)w�G�H�)x�)��)��)z�)y�)|��k���c
�&��a��d��e��f�c �)��)��)���g�)}�)~�Ƅ��V¤�¤���z�c���{�c��ƅ�b��{m��}�c��ƀ�c����c���~�c��Ɓ�c��Ƃ�c��)p�)q��@��D���^�b�	�|�ϗ�^�)s�)t�_��i���c�B�C�)��������b��d"�~�������
�����������������������,���b�������f�m�i�h�g�j�k�������������_���c/�~��dž�ǂ�ǃ�LJ�Dž�NJ�Nj�������+��������b��
�b5���{j�ϖ��|��}��x�b��K�������	�b4���{i�ϕ��v�b��K��y�b���z�b��Ə�Ɛ�)��I�K�L�J�)��)��)������=f
	�U��‘1�\�{-�ƻ�*��s�*|�p�q�r�t��¤�¤�¤�¤�¤�¤�¤��*�������/�Y�Ƹ�ƹ��*��*��*�*}�{N�*~�{N�*��*��*����/�Ō�(�c$�*��*��*��*��*��*��*��*��ō�(�������������D†@�!�C���c<C�t������c;A�)��)��Ɩ�c?@�Ɨ�c?@�*¤�¤�¤�¤�¤�¤�¤�¤�¤������*��/�=]
	�R����1�[�p�{�*���¤�¤��)�{��*n�)��{�¤�¤�¤�¤���*��*��*��*��*��*��Ł�ń�ŋ�Ń�ł�Ņ�ņ�*m�)��*l������������*h�*i
����	��N����*�����M�v����ŀ�*��*��*��*��#�*��ƺ�0�1�{�|�z���$��¤�������N����+�ދ��YW�����w��V��#����S��T����������������r�
��q�0��`�4����I����������������������������+]�+^�+`�+d�+e�+f�+h�+_�+a�+b�,��,��,��,��,��,��+��+��+��+�+�+�+�+�+�-6�-4�-3�-:�-;�-9�+��+ �+!�+#�*�
�*��*��*��*�
�*��*��*�������c�c���������������+��+��+��+��+��+��+��+��,�,�,	�,
�,�,�,�,�,��B�c��$	�+��+��+���C�c��#	�+��+��+���0�c�e��3�������1�d�	�+��+��+��+�	�+��+��+��*��*��,�,�,�,�,������c�d�ق-�+��+��+��+��+��,�(�-G�-H�-K�, ��-��.�-B�-?������d߂6�,�,
�,���7h���,(�,)�,*�,�,�,%�,'�,�����
}���,�(�,�'������d���8��9��6��7��A�d���<��:�+��+��+��+��+��+��+��+��+��+��*��*��+����?�k�H���c����c����c����c��+��+��+��+̂q�+:�����,��+<�E�+E�+F�+H�+I�+J�+A���+B���,.�+>�+?���+@�+D���+=�F���+;�E�-M�-N�b���*�c|���xE�ϴ�,��,��,��,��,��,��-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-
�-�-�-�e�����"��#�,��,��,��,��,��,��,��,��,��,��,��,��f���
�,��,��,��,��,��,��,��,��,��,��,��,��,��,��,��,��+j
�+{�+|�+x�+k
�+l�+m�+o�+q�+r�+p�+w�+t����G�,��,���H�,��,��*��J��-Q�,��,��,��,��,��,��,��,��,��-�-�c���3�cq���:�x�ϴ�,��,��,��,��,��,��,��,�¤��+��,��,��,�)�,��,��,��+��o�+��,��,��,���S�eM�,���$��%�,��,���'��(�,�"y�,��,��,��*����I��+L�+N�+O�+M�-'�-(�-*�-+�+U�+S�+T�-U�-V�-W�+��+��+��+��,��,��,��,��,��,��,��,��,��,��,��,��a?�&�⁆���H	�*��a�*�
�p�,e�*�p�*�p�*��p�*�
�r�*��+V�*��*��*��*��+�+���+��,Z�+��+��+��+����+��+��k�0�+��l�0�+��+��+��+Z�+W�+X�+Y�+[�+\�*��i�+�S�,m�,r�,s�+�d�,i�,\�,]�dI������cxH�

��G��+��+��+��+��+��,5�$��c��d�+��+���[�+-�+.��_�c�M���G��tR�,O�+��+��+��+��+���\�c��(����^�c��?���,y�,z�+�/2���+�/8���,F�,H	.�,Q�,R��g��������cE��q
��+��+��+��+���Z�+��+��+�������c�J�� ���������5�^����4�^���i�d\��k��l��m��j�d\��J��M��N��L��K��P�+
���+�+�*��*��*��*��*���+�+��`�c� �*���a�c����+��*��+�+��n��o�Ă4�Ɍ���v.��������������������
���‚q�\�����*H�*I��Z��\�4��(�c��5��6��7��8¤�¤�����������������łt�������d6�v-�:�����;�=�����9�:�����΍����.�d�������.�����������\���������\�����r(��*&Jc�o"		
���.!
����[��b��eI���O���?���5�ƥ�Ʀ�Ƨ�ǐ��Z�Ŏ�ő�Ő�ŏ�Œ�œ�Ǒ��Z���������5�����4�� ���8���!�c������������|�)��)��)��Ɵ�Ơ�ơ�����6����c������4����c��KD��������x�y�����c6�	.��w	����&��I���_��}��-�)����*��*��*��*��*��e�f��������s��������t�b��1���c����*S�*R�*Q�*T�*U�*V�*[�*�¤�¤��*��ư&����g�h�ƪ�ƫ�T�������)��)��)��)��)��X�)��ю��������V���*6�*7�)��)��)��������X���b�����d�;.
��xN	����l����,�L�K	�J	����m	���*=�*<�*>�*?�F�G�)��)��Ƭ%�b�
'�{��)��)��)��)��)��)��)��)��)��)��)��)���������������o�Ƣ5�c-�{�����������������������������������ƣ4�c�{���o��k��n��m��l��o��p�Ԍ���������������Ռ��¤�¤����,�1���Ƃ)����Is�!���*��%
�X�
�V���9�hP %"���9�������������a��Q�y�y�>¨o�A‘(�E�D�C‘(�G‘+�M‘(�N‘(�x��������?�x����v�7���u�6���������x��������������-��G��t��-��G��O�P���������Z�[�� ��$��%��#��&��"��+´���-��.��1��0´���,´��\�_�`�d�e�f�g�h�j�k�p�q�r�t�u�s�y�l�m�n�o�]�^�a�b�U�V�;�]��<�����������������­��S����T��4�����¥�V��^�'���|��|��|���5��6��8��:��;��9����«��uV�|��u�u�u�u�|��|��uQ�uT�uS�uR�u�u�u�u�u�.�.�t���|p������¥��u�u�u�u!�u"�u���bF�u5���u6�u4��O��P�u/�ǚ���u1�u2�t����t��t��t���|p����������u0�Ǖ���c��H*�u=�-u�H��u#�-v�-w�u8�u9�u.�|��t^�.�G�A�u�u�.�G�%�uW�uY�uX�u%�u&�uE�uF���b���.�uK�.
�.	�u�u	�u
�t\�uL�uJ�uO�uP�t_�t`�u�uI�uH�.���DZ�uN�.
���.�.���1��1��1��#���VV�tb�|��|��|��|��|��|��u@�uB�uC�uA���u(�|��|��-��w�
��1�u�u�u�u���uU�t[��1�|��u\�u]�u[�|��|��|��.�M��tY�tZ�-d�z��uG�tW�tX��n��"�fx@�����iL#��<�i�ĂK�yS�yU�yT�y��yd�ye�yf�yg�yt��W���e��I�����Y��Z��]���e���\��X�1��1��O��1����e��yh�yi�yl�yn�<����=T
�=Z��|��y��y��y��y��<��<��<��<��<��<�À��<�n�=�=�=�=�<��<��<����<l�<m�<n�<o�3��3��=!�=$�=%�=#�="�=&�='�3F�b���=0�y��3J�GMÀm�2�E�GM�2�2�3H�GM�2�2�2��́��=a�y��y��1��ߊ��1����1����1��<��1��1��1��2��G��2��2̊��8��t��2����>]�2����>\�t��2��2��2��2��+��u�F�f��:���2��߁��8��<��<��2����2����8��2����8��2���=o�?�y��y��y��=r�=s�=x�y��=v�?�=p�=q�y��y�À��3��3w�3t�3u�3v�3x�3y�3z�3��3s�3i�G"�3q�3k�3r�3j�3l�3n�3o�3m�y��y��3K�3U�3V�3R�3S�3T�3Q�3N�3L�3Z�3W�3X�.���BՅ\-t���t�\-�=|�=}�=y�=z�={�=�3��3��3��3����d��=e�=f�=h�=i���d��3��3��y��y�����y��y��y��y��������������3��3��3�������r�p��U���}2�}3�}4�2��2��2��2��-��2�d��
E���6�h���Y
&?��	�3[�3\�<�����c�i���>4�=7�yWL�yXL�3	�Gc�3$�3 �3�3�3!�3"��`�i�Q�
���=D�<{�<|��a�i�F���9�������<u�<t�<s�D��<�<��<v�<w�3��G$�y��<��=������	�3f�3e��=2�y��y��yP�3=s�G��3��F��y\�yZ�y[�3��y��3��3��3Ep�H�3�$�G��3��3��y{�3��3��y}�3>�3?�3@�3A�2�� �G�	�2��3��F����3��3��3��3��3��z��3��3��3B�H}�y��3C�H}�3D�H}�3��3��3��3��3��3��2��2��2��G2W�N�y"�t�Àp�2��2��G4�����������2����=Q,�=,�=-�=)�=*�=+�=/�5��H.�5��5��5��<��y|�2��2��2�{���
�=��y��34���33�F��y)�<��=n�<��<��35�2�À{�3*�3:�<��A,�3+�2���<��<��2���2��2��<��2���2�
o}��3.�3/�30�2��2��37�}�>���38�3;�3<�<��<��y�d���y����N���F~�2��<��<��<��<��<�À|À}���f?�3��3����y��3��3��3�r
�3��3��3��y��y��y��3��3��<��2��y����f�����g���������������
�g����g����f�����2��2������g؉��>?�y��y��y��<��>D�y��<��>D�y��2��2���w��y��z
�ɀ��}	��x�3�
�2��
�2��2����N�G��y��y��y��3��y��yO�3��3��3��<��<��2���A�������y��y��y��3��3��3��3������3��3�ÀsÀtÀu�����
����aD����*0��!.���>X�܂2��k�h��҂7�>�=6�4�=�=@�=:��i�i`�s�=7��j�s��2ʋw�=3�<��<���!��$��#��"�{��{�
�{��{��{�
�{�
�{��{��{��{��{��{���
�p��>����n��o��v�j��Z�����e��2
�2�2�2
�2�����r�j������?;��l�i�����/"�=C��	�<��<��<��<�	�<��<��=�<��<��<��<���m�=�=	�3��=]�yb�yc�ya�3���?��2����D��=�=�2��2��{��{��y���O���g�Z ��zb�=(?���2N���8�k�2P�2O�2K�2L�2M�2R�C��<��<���V�l=�5��5��y��2��3�y~�2��2��2���R�iÃZ �ށ�g�<�G�=S�=?�3��3��3�Gv�y��y��y��y��=�=�=�=�=d
�=�5���Q�i��Z ��x(7�=3�=�=�=��P�ir�� �ہ�e�=E�2��2��2��3��2ŋ}�=D�=E�=F�2��|�3ϊ�|��|���S��g߂l �C�y^�y_�5��M��'�p���T��g��k�	B��&�p��D�À���,®�������.®���/��-�}5�}6�}7�}8�4`=	�4b�4a�4��4k5�4c�4d�4e�4f�4��4l3�4j4�4h�4i�4��4��zL�z�z��z��zZ'�4v�F��zP�zO�zR�zS�zQ�zU¥�4|�z{�4m�4n�z_�za�z`�4y�F�À�À�À��zz�	�h3�F������4���g��z,��i�	�h�z}�����y���zB�zC�4��4��4��4��z~�4��F��������4��4��4}B�F��4~�4�4��zGA�4��4��4��z-�;�z�zA�zn¥'��Q¥(�zq���°Z)������������°Y���°Y���°_�z.@�z3�z2�zm�z4�z5�z6�z1�z/�z7�z:�z<�z9�z=�z;À��z?�4��zd�ze�zb�4��F��4��4��4��4�
�F��4��4��zc�z��4��4��4��4��4��4��4��4�	�4��[��x���u�z��4��4��4��4��4��\�e*�z��zr�zf�zg�zV#�zW�z\�z]�z^�zl�z@�zj��~»����zs�zv�zu�zM(�z��z��a�b�]�^�<���@����ρ�b�b������	�s�g$�]��#�vz�v{�v|�4	�/��ɕ�ɖ�-��G��5(�5)�-��G��5&�5'�/��/��/�	�/��/��/��/��/��/��/��v}�{�y�y�21���z���z�v�v~�v��y�0�0�J��z�0�0���50�.��.��.��.��.��.�����ӂ�4�c��J�ɏ4�ɐ3����4��9��m�ɔ¤����.��.�����������������Ԃ�4�c��J�ǿ��4�k;
3�B/�4��4��5�4��5�4��G��5�5��$
x��X�{�e4�G���6�q�u��u��u��u�����������'�(�#�$�������+����,�/��������³��}���B��AÀaÀb���a¥���.�.�.�.�.�����`������?���¥¥�/��F��/��/��/��F��/��/�¥¥���R�`z�u��"��x�ɚ�.��.��.��.��.��z�z�u��u���V����b�A�)���4'�4(�u��u��u��u�� �.��.��.��.���V���a�A��u�-�ɭ�e'�G�9�y���ɮ�u��.��H�.��u��u��/����/��F��/��/��/��u��4.�4/�40�u��u�%�O�P�Q���"��V�x�j��B����.��u��.��.��.��0�u��!��$°��u��u��u��u���%��&�����
����
��
��"­��2����+dx��	�c���@�N4���q��!�5��@��v��v����V�����u⁷�Ɓ�y��I���E|�T����c���A5�2*�2+�����ɱ�jz�4,�ɲ�ɬ�ɸ�ɹ�W����c
���X�����ɳ�ɴ�ɵ�ɼ�ɽ�y�5�0�1���d��-�Hz��d�����/��/��/��/��F��/���f��h��i��e��g�.��.��u��u��u��u������u���2��3�.��1�p�����/�/�v�v�v�.��w���/�/�.��/�/�/�v
��«���«��t�����v�v�v�v�v�v�/&�/'�/(�/*�v�/+�/,�tk����������v�v�tj�v�/�/�/�/�/0�/1�/-�/.�//�/3�v�v�/4�/5�v#�v$�v �/9�/7�/8�v"�v!���m��8��7��6���³��/#�/�/�/�/�/�/�/�/ �/!�/"�/$�/#�v�v�v�z����d��/�M��/�������/	�/�/�/�/�H�ti�u��u��u��u��u��u��u��=������cE%�i�"-��%�o��\��)�5�/��0�0�v0�v1�v/�/H�G��/I�G��/��/��/��/��/��/��vc�vd�vb�v.�v[�v\�v]�v^�v_�v4�/��G��/��/��v`�5��F��v7�v8�/B�/C�/D�/F�5��v5�v:�/J�/K�/L�/P�/Q�/R�/T�v;�/M�/N�/O�v6�{��5�v9�5�5�4]�F��tv�y�
�y��ui���x�;�x��x���
±�¥@��*�S�um�ɧ�ɨ�y��y��y��ɦ���ɪ�>�����`�jI���p���[���/>�G��/?�/;�/<�/=�/A�/Z�/U�/Y�/V�/W�/X�vC�/j�/k�/m�v%�vE�4
�vM�vN�v'�v<�v=�/n�/o�4�C�4�v)�v*�/p�/q�/r�/t�55�B
�v@�vA�/e�/f�/g�/h�/i�uh���/u�/v�/w�/x�/y�/[�/\�/^�vL�vK�/_�G��/`�/a�/c�/d�vF�vG�vH�vI�vJ�y�����E�`e�d$�L܂��tn��tl�tm�to��}��}��z���z�{��{��vP�.,�vO�.H�/�/��/��/��.G�Nk�/G�.F�vQ�vR�/��/��vY�vZ�vV�vU�vW�vX��A�_��@�_����D�_�d|0���G�.%�.�.�.!�."�.#�.$�.�N��/}�G��/z�/{�/|�/~�vT�.+ �G'���/�.*�.'�v+�v,�.(�v-�4�4�{��{��{��{��{��{��}��.M�.N�}��ul�5x�@��.0�.1�.3�.-�..�./�.4�vu�vx�vw�������vv�uq�/��/��/��/��vg�/��/��/��/��/��5y�@��������������������.;���fl���fl���fl���fl���fl�.:�.<�.=�up�����uo��������y�:�j����4Z�4[�0�0�0�0	�vp�����������������C�/��G��/��/��/��/��/��/���E��F��K��L��I®0��D�gW�/��G��/��/��vn�-��-�����vo�<�3����js�8�/�
�/��/��/��/��/��/��/��/��/��/��/��/��4����jq�7�5����z�z�6�f������l�=�e��+$�����@���z�ke�4:���@�����jp�CW�����49�z!¥>�/��/��/��/��/��/��vq�/���������y�����e9W�F�����A��/��t��z�z�5���������e��G����e��/��e�z����c��5���C9���z�z�;�����e��G�	�����[��\��Z��W�g���X�g��-~�-���k�9�ct��4�����@��(�`�/��G��/��/��/��/��/��v��z�z�z�z�z �v��v��z"�/��/��/��/��/��-��-��4L�4M�-��J�-��I�
���4I�A)��4J�4X��M�v���S��T��R�e��]�-��\��P��N�k��4D�4E�4C�4B�4F�4G�@��<�j�����]��_��c��^��`��a�5 �������������cE��Z�c�<��1���	
J�!�g#�Z��w�.��2`�2a�2_�2c�����y,�2[�2\�2^�y7�2S�2W�y+�2X�2Z�2T�2U�4�Gt�5��F�3�4�������±T����y.����_
�5��5��td�2��y:�y;�y<�2��2��2��y@�yA�yD�2��2��2��2��yB�����2r�2s�2t�2u�2w�y9�2x�2{�2z�2y�2|�2��2��2��2��2��2��2��2��2��2��yF�y?�yE�2��I�tf�te�tg�2��2j�2k�2n�2o�2p�2q�2��th�2f�2g�2d�2e�2i�.>�.A�.@�.?�.B�.C���6����d²Q�-{�-x�-y�-z�-|�6�7�9�y/�y0�y1�y2�y8�y4�y3�y6�y5��[����ڂf
�jւ���@����[�4�4$���{��{��5��5��5��{�����{��v��tr�ts���u�{��2��5<�5=�yH�2��9�2��2��5��5��C�D��[���������5"�|��4�1�2����D
�j݂��}��}��5��5��}��}�����A
�j��������}��Ǜ;U��W�iŁ��o��L��f�)���5����)�j�L���(µ��2-�-��-��-��-��-��-��-��-��-��-���6��7�{��ux��8�z
�uv�z�z�z���tc�Ǟ�ǟ�ǝ��µ���1µ����v��vh�ǡ6W��h����Bͅ�+�4��B��4��B��5	�5
�5�5
�}��}�� ���m��A�@�w�&�{�|�e��~�!V�<V�<W�2/���20���5?�5@�I������­�����c�d�������M�6���G��-����G��J��.R�.S�K���­���M�k�������
������N���?��M
����Q�c�}�ֶ���{��{����U؇<�|�e�{�T�{��|%�{�U��:±���=��>��<��@��;±����\�|�����M�����)��G�`$���g��J��{��2�2�2�2�2�O�h��P�{��{��{��{��{��{�0���� ��&��(����2�J�/�2�2
�2
�N�����m������I�J�[�U�\�^�T�S<�֍�
�@���±��2�G��2 �|�A�t��S�F�G�c1�ٚ�d1�K�{��{��{��|�V�W�zс��t��|�|�gth���p�":��G�J�-��G��-��-��-��-��|�|�|�|�z��z��z��{��h�ft�5D�G�+�{��{��5E�{��C�D�E��
J����cS���kS�}�֢"8�<�e�X�|�|�{��|�;�e�]��_���±�Y�2�2��6��7��5�z�����T��/±���\�d���@I�6$��3��'±�&'��*��+��)��-��(�-��G��-��G��-��t��z��z��z��z��z��z��|�t��P��`�g���G�)�N�e�#�{��{��t��{��O�e��P�{��{��L����p�¥O�5H�G��l�f�r�g�j�h�o�m	�v�k�x�a�z�|�}�{�y�~������18|-��-�x«��|��|��|r�|s�t��t��t��t��t��t���x��x��|��t��t��t��|����|����|����|����|��x�����e��t��4���� =�|4�z��z��|/�z��z��z��z���i-�|��|F�|G�r��1�t�ef�v�Ǩ����$�s	����#���~�}	���|	�{	���|��x	�y	�Ǥ�|]�|u�|^�|_��DZ�Dz�����|`�|a�|��|�������������ϸ�m�5Y�|6�|7�|8�|9�|;�|:�|=�|C�|?�|@���g��5��s���=�|��|v�|x�|w¨X¨]¨Y¨Z¨[¨\¨b��3�|0�|1�|�¨W
��3¨a��B��¨^¨_�|��|��|b�|c�|f�|��|��t��x��z��x��z��x��x��x��x��z��z��z��z��z��z��z��|E�z��z��z��z��z��z��z�����i��5��5��5��5��|��|��|��Ƕ��5��5��5��ǵ� 	�aЈ��@ �~�������|l����a������°����������;����v�,�|y�|g�|i�|h�|J�|��|��|��|��|L�|M�|K�|��|��|��|���_������`��b�|V�|W�������@D�����|{�||�|�������������i�8
�gBG�4��4��4��|��n�g�p�q�o�g!�k�l�����|\%�|��z��|p�|�&�������|�¥R¥U¥S¥V�|t�����|��|q�|���	����j��h�t������|[��I��J��A² �|O�|P��E��F�����²�|X�x��x����|Y��C²��B²��4��5��������o4��G��h�����y�y	�y
�z��{(�z��z��z��z��x��x��{%�y�{'�{&�z��z��z��z����y�-��-��y�x��tU�x��z��z��x����x��x��<X�<Y�y�y�y�y�-��t��|��t��t��-��-��-��t��t��t��-��t����sf����o5��F���h����
¥F¥G�{
¤��>�#�$¤���>�*�e
�z��z��{�{�'��
�"���Nw�z��{�{�{�{�{�{�{�{�{6�t��t��{,
�{-
�����$�D/�-¥W¥X�{+�{�{�{�{�{�{�{�{�|�z�&�DV�x��x��z�+�{�{�y�{�x��x��{#�{ �{!�{"�{�{�{�{�{�y�B���t��z��w�'���{$�<]�<\�<[�x��<^�<_�-��-�����z��]����`����_����^���¯�a����b�������	����	��	�����������}�}��}��}��}��}��}��}(�}�|�#�|��}>�|�#�|�#�|��}=¢��ا�}N�-��-��-��}P�}Q�}M�t��t��}R�}S�}��gªO�t���j��i��h²��{B���e]���}L�}G�}H�}I�}C	�}�}�}Y�}Z�}[�}X�}E�}F¥���g[�}��}��}��}A�|����g]�|�[�}V�}��}!<�}$�}]�}^�}#�}"�}_�5��}��}��}��}��}��}��}��}��}�tÉ��}��}��}��}��}��}��}c�}d�}e	�}�}��}��}��}o�}p�}�}��}��}���kªJ�}��}��-���l�}
x�-��P��-��-��P��-��t��}t�}��}��}w�}u�}z�}v�}y�{D�}��}x	�}g�}h�}���5��5��}k�}i�}j�}l�}��}��}m-�}{�}|�}}�}~�}��}��}��-��G��-��-��G��-��G��-��G��t�¥����-��G�[�}%�}&�}*�}+�}'�}/�}a���a%�0(R�}-�����}���}.�-ӅN���H6�}0�}1�}T�}U�}V�-ԅQ�|��5��}	�}
�}�5��5��-��P�-ׅQ�5��F{���5��}�}�}�}�5��t��U�t��5��H1�2"�2#�}b�}�5��n�i҄7����24�	�ʑ�~K�}��}�y�}��}�y	
�~�~�~�~�~�~H�~	�~I¥1¥2�~
������}��}��}��}��}��~���|��|��|��~
�}��}��}�������������~�~,��}�}��}��}��}��������}�3�ʒ³B$Z	�~�~�~�~�~�~�ʟ�ʠ�ʞ³dZ�~c�~�~�ʔ³]Z�}��}��}�+S�}��}��ʗ³jZ�}��~�}��}��~e�~�~�~�~ �~]�~^�~�~�~�~�&����q��=��~�{LÀ��{M�}��y�'�������}��25�J�~!�~S��À��~T�~%�~&�~"�~*�~)�~+À��~VÀ��~#�ʀ�ʃ�ʂ�ʁ�~$�5�q�i��}�A�~0�~1�~4�~5¥5�}��}��}��}��}�¥6¥8�}��~6�~7�~8�}��}�����~3�~2¨j����~<�~=�~>�~B�~C�~@�~A�~?�~;�~.���!e�n�$�8�K�}��}��}��}��22�23�}��}�À��}��~E�5��IY�~P�~Q�}��}��~D�}��~M�~L�ʄ�kr�pc�}��}��}��ʊ�ʋ�ʉ�kr�pc�ʇ�kq�pb�ʅ²G¨m��`�{N�{O�������~�+�5����#4��	�d#�e�������D.�Z�$
���U��U��]��
(c��
�h8%
!�k��k�~�}�1������_�������v�"�u��u��r�$�x�
�y�
�x�
���������������������=��C��=����5��6��6��6����������7��H��7����������7��7��7��7��7��7��7������n��oQ�՚�����m��A9����������������������������u��������f�����.��.��u����ʼ�����u��7��7��=������u����~~���e[�N(�~��~��7��7��7��7��7��~mk���;�~}����M�$R�h��Ӻ�~����f��~��� �����������¶o���u��~��u��6�6��6��6��6����ʪ�k��U�ʭ�ʬ�m+�ʫ�7��7��7��7��2C�2D�65�I`�6�6�6�6�~��66�~��~��~��~�¤�q�~��~��~��~��6�~��~��6�6�~��~��6�6�6 �6�6�6�6!�~��67�68�69�~��~��~��N�$Q�h��Ӻ�9���{T�{U�{V�{S���������~��~��~��~��6%�?��60�61�6/�~��6(�6)�~��6'�6*�6&�6,�6+�6-�y�����rقF���n��6���6��?��\�6��6��6��6��6��6��5��u}�����p�6��I|�~��~��~�����������6��6��6��6��6��6�������´t�~��~��~�����������³��~��~��~��z��7������7��G��%�6��
�I��6��6��6��6���~p�7��7��7������)��E���n���8�8�7��n���:��q�7��7����o��n��7��G��7��7��xՈ��6"�ʮ�ʯ�t��~��'�(�~��~��~��6��?�6��6��t��6��6:�7��7��6=�6<�6;�6>�6?��6#�&�-���������cLj_��
�8���`&8����~s�~t�-�/�0�.�5��I��6�)�+�,�*������������������c��.��.��.��.��.���������c��$�D\���f�6H�6E�6F�6G�6I�.\�6��6��u~�6��6��6��.Y�"�.Z��?�6J�6K�6L�6M�6N�6B�6C�~��~��~���!j�
�I<n�.]�8�~��~��.^�.a��!l�J��~��~��6��6���"6�I���"6�6R�.U�.V���Ir�.W�	�!d����	��!l�J��6��H��6�6�2E�G��2F�6��6�À����H�I�J
�6��N�6��6��6��6��6��6��6��O�QÀ��.��.��.��.��.��Q��.��6��6V�n�6X�6W�6S�o�6T�6U�n�6[�j�5j���I\�X�6��I\�6��������6��6��6��6��>��6��6��6��6��WÀ��L�M�-��-��-����.d	>���K[�7��H��7��.j�RC�.k�6��.f�Q��6��.m=�U�.e�Q�V�6��6��6��K�.g�.h����l��H��7��7��7��7��7��7��7��{Q�u�u����l��7��7�����l��H���l��7������		�d#����Y��]�
��
�h>?E�k��熰�.��.��.��.��.��G��~��~��~��~��u|�.�.r�Q9�.s�����������7��H��7��7��H��7��|��|���������:���C7�I(�6����6��6��6��6��6������������������1�.x�.y�.{�6��?7������c���_�j��	
y4��
�h=q���>.e�(�6^�I�I�Z�]�6��6��I��6��I��^H�t��6{�6|�u���1����2��z�����t�r�6��6��s�72	�I&�79�75�74�73�76�77�6�>�H$t<�6��7A�H��7�H��7D�H$x�~���6��7:�H x��6�D�H&t�~��6�D�6�C��y���2H�2I�2J�v�u�.��.��b���������o���#O�7
��w���`[��	�@�-�7J�7L�7M�7O�7K�u��”�•�“��x���`���?v�7��|�p���7�.����IH�7�.��.��.����w�x�7�7�7�.���?a�c�u��u��7�7�7�7�7�7 �7/�n��c�{�|�d�~�70�IO�}�-p��7r
�I�7z�7{�7|�7t���7�7s�7u�7w�7x�7v�p�7��7��7�
�7��7��7��7��7��7��7��7��7��7��7��7������������������������i���������¤�چ�~|��������`Q�����o>��K�~v�~w�~x�~y�~z�~{�6u�6v�6x�~��.������n�٘
_)-?¥��U�7)�7*�7-¥��U�7,�oB�i�.o��)�I(�7o���7X�.p���7R�7Y�7[�7^�7b�7c�7a�7`�7_�7e�7\�7]�7m�7Z�m�n���.��.����5c�F6�����~��~����h��������7��7��7�������������
�����6�I����6�6�6	�J)�6
�6�J&�4�.����C�.���g���6��6��6��~���k°n�z���l��m�z���o��r��p��w��x�z��z��z��z���5��8��9��������6��3��4���~����{[��y��|��}����{����z���,�u��6to*}�3����2�a�߂�e��.�����(�{���ځ�i�F���j�������!�����������������x+�����������������������-��G�1�����v�������	�-��-��-��-��J�v��8��v��v��8��??�8��8����v��v��v������!����;��1��F�1��1������<>�;������$�;��0�����;n�
�x��0�0���_9���<?�<@�C��S�r��=��9Z���������;D�;E�9t�9w�9v��� x���06�9p���=)���!^�?��x��9r���=)��9q�>M���xK�xL�9[������x��i�rF�09�G��0:�0<�0=��z�{�|�������"A���y��d�rG�07�08�0>���<��0?���wR�0@�0B�t�0C�v����;.�;0�;/	�;1�;2�;4�;5�ȝ�p������wP��9g�9j�9k�9l�9h�Ș	�p�	�9f�0̉��0����0��0��x�������p�������p��D��S�p��(��
�=�-����0�1d�1f�1`�-����-����05�3�x��9X�9Y�9T���9U�<-�-��G��;\�<����v��;8�00�01�03�15�16�1A�1B�1?�1@�1<�1:
�1F�1G�1E�17�18�1I�1J�1K�1W�wI�;�-��-�����-���wJ�t��3�'�Fb���v��1\�1[�1Z�1]�1^�;<�;B�;=�;;�x����xX�xZ�x[�xY���_����wi�wj�wk���������0�1�3�4�j�*0gy�	?���>ȅ��U�����1��G��w���9~�8��������������9��>��9��9��9��9��9��9��9��7���w�w�w�-��$�8��9x�����������8��8���� �8����������v��8��7���T%�>�����w
�w�w	�-��-܋��X�8��-��8��-��9,�9-�8��7����=�9}�8��8��Ȭ�pP�8��9�8��8��9�9�9���������8%�@1�8'�8(�8&�@.�x��9�0*���ȭ%�p+�x���������E
z��G��q5�����x��9�9��6�9�9�9�9�9	�9
�9
�9�0��0��9y�9{�9|�9z����Z����g��u����g��������0�������
����������6���!�"�0�.�GB�0��9�9�0�-
�G7�0��0��0��0�¥v¥w�����9�9��>��9��>��8
�8�8�����v��v��8�8�9�9�9�9�8����7�p��������������������3�����8�@F�8�@E�9%\�9'�9(�9&���������0,�9+�0-�9*�8�@>�8�8�8
�@<�8�?����w`�8#�8$�8�8�8�8������17y��	R���\�?8���0��PJ�;��;��;��;��;��;��;��;��;��0��0��tz�-���	���0��2�H�0��9�9!�9 ���t{��0�K�0�J�-��-��ׁ�	���d����C�<�>���7U�0��0������0����1��0��1��1��1��������q��-��0��0�������>��-���W�@!�-���1m�1p�1o�1n�1q�1r��
��	���|�>�
������Ft�������������������������/����mF�z�>��,�i�8�0D��G�0E�9��9��9��v��v��9��9������x�	�8Q�8R�8N�8O�8P�8T¥x¥y�1����1����k�1����1����1����8K�8L�>�?�A�{��l��0F¥{�0G�0H�0I�m�w�����8/�8B�80
�85�86�84
�83
�82�89�8:�8;�8<�0J���0K�9��8-���C:¥}�������ͅm����n��>��9��9�!�9��9��9��9��9��>��9������>�>��1x�1z�<�>˂?�1{����"��>��9���"��>��9��;{�;|�;y�;z�;~�;�;��;��;������o������/�m@�p�>��ȸ�9��ȹ�Ȼ�9��8U�G�G��8V���n�7�=끳�G�R�9�9�=遹�H�t~�9�5�>��H�9�8�=��6�"�$�d��%�d��#���J�#�G�o���b����w��9����"���Z�e�t�$����]��^��\��`��[��������X��|�����������L�M�v��v��D��a�qd�:�E�!��:�v��;`�E���a�:�:��b��c��d��f��gÀ�G�HÀ�N�O�PÀ�9��&�cg�9��9��:�0M�0N�0Q�0P�0R�0S�:�:�:�:�w��'�ci�0W�0X�v��v��ȑ|�p�j�ӿ�v��Ȓ{�gF���j�À�0U�0V¥
�՞�w��x��S�T�8W�8X�8Z�8[�8\�8_�9��9��9��9��9��9����X���-��-��-��-��Q�R�Ȩ�����&�a�����®ׄ��x����Ȧ�;^�;_�I�!���>'�E�1|�1}�1���c���8��@5�9��:�:�:�:�:�;d��"��;j�;e�:	�:
�9��������9�����9��9��J�#�9�}	�9��9킄�;r�9��;w�9����9肇�9�9����:�f�:�e�9������,���5�����i�g��y5�>�j���t *���w��w��tڂ��tۂ����\���]�Ȅ�8�8�7��8�8�8��������ox�Fj��������´����´����´��ȇ�Ȉ���Ȇ�ȅ�Ȋ�:P�:Q�#�"��$�"�	�:$�:!	�:�:
�:
�:/�W�Y�X�:`�:a�Z�[�0����5�����
�����0��:V�:W�:X�:Z�w��w��w��|��-���5������g����"���5�)�m���) �8z
�8v�8w�8��8��8��8{�8y�8~�8�8p�:K�8q�8s�2?�#�t�8u�:]�8����8��8��)�������:�ec�d��$���"�9�`��쁀�-��z��-��-��-��z������������0a�
�5����8��8a�8b�0f�0j�0g�0h�*�������9�eb�!���0^��=z�NJ(�8f�?A�8g�8e�:U�0[�0\�1��-��!�����8����U�:2�8����:<�::�:9�:8	�:?�:5�:6�8����8����8����@�-��~� �
���8��:f�:g�1��������w��-f�q�p�r�s�w��w��w��w��w����:�>3�x��x��w��:~�w��w��
��:��>7����:��:��:��:��:��:����"�:��:��>9�:��>9�w��w��w��&�w��w��w���®��v��w��0k�0l�0n�0p�0o�:u�:x�:w�:v�:y�:z��®����w��w����w��e�w���������¬�����	�o��f���:�
�:��:��:��:��w��w��:��:��:��:��:��:��:��j�"&�>�:������ 0���:|�u�v�:��>�l�"%�n�:��:��������_�:@�-��g�h����%�������_�tx�w��w����������ׂ���OX.�a��z����g�jn��3��ÀMÀOÀQÀP�;��;�ÀN��·OÀC��·O�8��}�;"�t��t�¥!À9�;��;��;��;������:m�fÀ;�;��;��<%�<N�<(�<&�<'�<"�<#�����v���j�p��j"�ѳ�;��:l�f�;��;��^�'��`�:��:��O�:��:��;��;��_�8��;��;��;��X�Y�+�Z�,�<��i�p��8��w?�w@�wC�wD�wE�wB�wA�;��;��;���k1�eO��� �$�;�F�;��;��;��;��;��;��8���;��8���;�8��=2�:��8��0��0� �= �0���0��8��:��:��:���l1�eW����=�0툺��=!���0� �8��C�z��z��0�����8��8��b�c�f�g�h��c��:��l�m�1��*�|���m�|��8���:��-�:��:��:��:��:��:��:��:��)��#�nB�D.���.��� l�>i�w1��x�;��;���z��{��y´��w4�w5�w3�;��;���/��� n�>h�;��;��p�dE���x��;��q��4�n�o�;��P����p�f�9�k����À-�wm�vρ��wo�wq�wn�x��;��Ȑ��¶���t��u�T�U��s��&�<��܃U�pF�j����À2À1�<�<�;��;��;��;��;��<�;�À4À3À5�{b���ˀ�{c�˅�ˆÀ7À6���^��~�;��;��;��;��;��˃�˄��p�p8�=��z�;��9��ˈ�p7�9��,À>�˥�˩�˪�˨�˧�˦�ˊÀ8�u�v�˺�˻�;��ˋ�ˌ�ˏ/�e��:o�:n�ˮ�˰�˱�˲�˯�˴�˵�v��vׁ��v��;��:p�;��:s�:r�:q�:t�v��v��v��t��-�s�1�ˎ�o ��;��:��:��:��;��;��:��<��;��˭�o 	�:��<��;��;��;��:��:��˾�˿�;��;��(�?��/�����OW�a��z����x�j]��FÀ(�<4�<5�<6�<9�<:�;��;��;��˸�;��;��9��9��]�x5���������V�W�<�<�<�<�<�<!�<�<�<�;��:j�:k�x����������m��<0�����p�������w7�w;�w8�w9�w<�w=���m��G��9O�9P�w���m����m����EF&�9MÀJÀK�;��E��N�A��偔�ف��f/��c�;������}�T,À<�8��<�<�w0�<�<
�x9
�x7�x6�x?�x<
�x:�x8�xC�8��;��;��˔�p��<������˕���;������;��O���JG�p2&�<����<���q�<�˒�p��<��w��À+À,��NJ��OJ�[�v��v��v��v��v��\�&S�<1�<2�˙�˚���¯��������������������@�H6R#h%3K�7i�$��?9(�ނ/�e[.��+����q�i��ҥ)��%��
�����;�;�;�1��L/�|����;�<��v����0!�G��v��v��u�v��.���xr�����x��x��:��������:��:��w��w������������������������w��0r�0s�0u�0v�1�1�1�H��1	�1�1
�1�w��w��0��G��0��0��v؁��vف��vځ��1�1�:��:��:��:��w܁��:��>�:��:��>�:��:��:��:��:��:��w��1"�1#�1!�1%����x��8����w��w��w����[�fT����Z�fS����������x��0�=��{�[�fU�GR�{�0���H�x��1�����¬��8��0�0�0�0�0 ����xp�0��0��0��H������;�;�1�1�1�1�1
�1�1�w��w��1���:��:��w��w������1�����[���1���1�1���!	�1�1�1���!�����������!�����!	���!�@��x����!�.���!�-�xv�xw�xt�xu�xy�����x��xz�m��g�Y�ew���H�?�"�y�0%�0&�0'�0)�8��8���^��lh���[�fT�7�@+�`�X�v��4�v����x��x�x�-�)�-��x�;
�8΃��=��1&�1'�1(�1*�;W�;X��$U��	�`��x�x�x���x�x
�x	�
�`��1+�Hv�1,�1.�x��x������0z�0{�0w�0x�0y�0}�x�x��1��1��1��1��1��1��1��1��1�
�1�
�1��x�x�1��1��1��1��x�1��1����!��A�=�,�;C�;S�;T�8ɃAL�:��т]
�����;�v��x�x�x�;K�<\�_�x���x�x �x�;�;�;�8��w��w��1 �x������0"����0#����x���������������������.��	�����v�g���9K���U��V�+
�<B�=�����&1�x����_)�w&�w$�<N�<O�<Q�w(��
�x#�x)�w)�������+����*�;�;�;�9>�x|�x{�x}�9E�9G�9A�9?�9@�>y���9B�9C��Q����S��T��W��V��R´��{l���������m����0~�0�0��0��0��0��0��0��0��0��0��H��0��0��0��9H�0��
�4����f ��;����'�����91�92�������5���­��������93�x��96�97�9:�9;�9<�9=�����94�95�����ȋ�Ȍ�����w,�w/�w.���^K���x���������M�e�"�<������;�9I�����À������,��9����>�#�;������������;�; �;�;��X´�À��������Y���L�"N�>
�;K�;G
�;J�;H�;L�>�;N�;O�;M�>�1��1��1��1��G��xf�����¬����� ���¬����¬��!�"�x^�x`�x_��*¯+ÀX���h�À[ÀY��¯G
��À%À&�xV
�8��BÀ À�w�w�w�w��������P���8�
�8��8��8��8��8��8��8��8�
�8��<G��O�'���<H�1l�<I�<J��w��w��vۂ�������0��tل�<�w��w��y�Ώ����J���+��,�s�bV���tÀ^À_À]À`�z�Ώ����J�¥À�À�À�À�À�À�À�À�À��t�À�À�À�À�À�À�À�À�À�À�À�À�À�0À�À�À�À�À�À�À�À�À�À�À�
' À�À�À�JÀ�À��t���>À�À�À��t���À�À�À��t�À�À�+À�
À�À�À�À�À�À��=��i��"�����=�À�À��=�À��=��h�À�À�À�À�À���f��]a���~����~��}3�~3�2�tt�u��~���tu�������a#�~��
�~����kG�~��~��~������^$�R��2�u��b�c�u��29���A��4��u��u��u��4��4�
�A��4��4����%�4�
�4��4��4����l��K���
��2:����a�������t��t����4�f��H���u��u��u��u����u�������­����9�f��H���l��A�������������
��
�l������~�
���~���~��~���u��	�	�
�~��6l�o������u��u��u������������ʳ�ʴ�ʷ�ʶ���������ʲ���u��u��u������´A�u��u����ʺ��������ʹ��M��O���]`���������a����u����u��.~�l�K�4��4��.��m�4��.��k
�.��m�A��T�.��
��.��_�.��m�4��`�����0��C�D�;�<�=�>�IÀ�À�¥���k¥�À�À�À��?�3��4�5�,��-�B�1�/�F�G�H¥�¥��^,|2G��������q~
�b��$���ڟY�;�<�8�9�:���������>�?Á�Á�Á�Á��r�@�E�D�C�h����p����q�i����s�t�yÁÁÀ�ÁÁÁÀ�À����̨�̦����̧������������������Á/Á�Á�Á�Á��¦��z_�
�����N��?ÁÁ�=��=������g�ÁsÁtÁpÁv�̬�̮�������N��������Á¥��ۏ¥��ە¥��̫ÁÁÁRÁS��y�̴�̸�̹�̺�̵�̼�̽�����̯�̰�̱�̲��{��|��zÁ1Á0Á6Á2Á4�����������d2E�	�����J��?d��RÁn�����³�d��2�؍��I\�̩�̪��3³���6��8��7��S��g�۴Á{��T��r�۳��w�8��j Z(Š��r����ÁXÁ[Á\ÁYÁZ�~m�����D�������������������������	������C����	������"���������������"������������5��R$Á^Á`ÁaÁ_�T$���������6��‹���‹���ŒP��y¦����f���������������������9�FbqS	 ��‰�¥�¥�¥�¥��Wt�������R"4��Yt´����������������´�������nt´�����´��K�e�f�ME��6�NC�L��¦J����Áf���¦KÁ|��������w�p��h�U��)¥�������¥�¥�¥�¦X¦Y¥�¥�¥�¥�¥�¥��ZŒ�¥��[Œ�¥�¥�¥�¥�¥�¥�¥�P
��ŒnP¦Z¦[¥�q¦D¦E¥�¥�¥���E�p��h�D¥�¥�¥�¥���	e��‡W��������¥���������������e��ؒ¥���\���bN��������g�f'¥�¥�¥����À���0��1¥��
���	����
����~�$�"E�i����¦¦¦�¦�¦�¦��o�p�q���f�������������N�R�S�T�V�H�L�K�I�O�P�������������������������b�E�e�c�@�d��'����)�z�1�{�i�CŠ[�j‹��k�WŠ��^�X�Y�[�\�s�t�u�v
���x�}�y�{�|�w�~���Á�Á�Á�Á�Á�������/DŠ`p
���¦�¦�¦�¦������+�,�5.‹���6.Á��0.‹�����z2‹�����\"‹�
��c��Œ�¦¦��Œ���Œ���Œ�¦Á�¦��t	Á��_‹���i�a����¦��x	�d�72�f�g�8�]�^�m�Š�l¦¦�n‹�i�e�9&�@�A�B�<�G�;�:�=�>��'���_ ��:9\��������qm$�h���F&O��Y(¦j¥�¥�¥�¥�¥���&´�Á�Á�Á�Á�Á����������������������������Á�Á�����;´��<´~�F���������Á�Á�Á�Á��G��������������8���1��A��o��s��r��t��p������������
��t���Á��������:��F��>�(�)���9´����Á�Á�Á��!����$�%�,�����#����*�+�'�(�!‹S���������������B´p�"��!��2Á�Á��-�.�3�2�1Á�Á�Á����9�؆����:�����g�Á���g����Á�¥�¥�Á�Á�Á��=��=��$‹T�&‹T�'‹T�%‹T�́´��̄�̅�̆Á�̂´��̇´��̉�̈�;�-�:�"
�h�mE���À�����¦SC�ڌ��
¦�¦�¦TC�ڄ��	��������¦�������
�ٕ��F�̌v�̎�̍�̙��
�̐�̑�̒�̓�̔�̕�̗�̘¦�¦�¦�¦��j�kÀ����̛r	�ى¦�¦����ٌ�̟w	�ه���ٌ

¦�¦�¦��̝q�ً�̞q�ً�̢¦�¦�¦�¦�¦�¦���‹�#h��$¦^���gA���������m�B��f+¦_¦`��¦b¦d¦e¦c���gA¦g¦h¦i��$��%��Á%Á&�����̥Á���������g�Á)�<�u
��u�Y����iV����
��
�x��	���u�B���ٖ\�چ��Á��Á"�v�A‹�ڈ���e@&��¦�¦�Á�¥�Á�Á�Á�¥�Á�Á�Á��ab��h´VÁ
ÁÁÁ��,���j�‹�¦�¦�¦�¦�¦����‹����U‹�	�‹��b���Á�Á���F��G�����K#���ab�A������o�P$?I ���l��bˆ�����R��O��}�������
���ÂHÂIÂKÂNÂLÂPÂQ�������8���j�����f����������K���L��M��������������	�
�����������§�§����'��x�>��>��?�����h��T�l��>����g�����ї[���>��>��>��>��>��+�9¨�¨�¨��*ˆ��>��>��>��-¨�.�/�)���>��>��>��*�ф����!����1�2��Å�D�E��� �!��T��<�9�����l��b����L:�?�>��>��>����N�O���m[�i=�b�>��>��>��>��>������M�i8�a¨��R��S¨�,�A��j$��X��U¨x��T¨!¨"¨#¨$¨%¨&¨'�����K��ˆ��L‹S�-���J�o��j#��E�>��>��>��>��>��>��>��1‰F�3ˆ�
¨0¨1�.Â��4¨,¨+	¨*�f‚�¨.¨{����¨|¨}¨~��
¨��
���y����y���Z��[��Y�C��V��W��X��<�C�����l�x�b-���>���B��C���5��������m����>����8��ف��pD�����7������pB�6��؁��pC�ξ�ο�9���p��:����p��/Â�Â��0�����7
T�k��W��C�@���b�>��>��>��>��>��>��|�e�>��>��>��>��>��}�e�~�e��e��6�"����_�l��>�����Ed�p��U��<�
?���a���������ĕ������5��3��4���v�<����z�K���Q�a�@�������������>��>��>��7�e�@c���9�fk��`��a�m����z�n����������G��H���M�a�@�>����>��>��>����������������������X�YH�ʑ0�-b�S��T��X�oQ �b��!����b��kn��1��2�q�rJK���&6�i��4��o���>Q�>S�>J�>K�>R�������Z��ž]¦�§§���$�i�	�7�J�K§
§��ˆ¦�¦�¦�¦�¦�§§Âi�>X�E�ΨÂlÂ
�>[�>^�>_�>\Â�>Y�>Z�=�\�=�[ÂÂoI���-�-`��O��T���%[�oN"0�i�����b��li�s�t�ά�����έ��_����d�>b�>e�>f�>c�Β�Γ�>�/�j&����o��j���]§����������‡��‡�¨¨�������m¨��_¨¨¨�Ι�Κ�?��W��d��\�>�?¨��d¨
¨	¨¨¨�>n�>r�>o�>h�>i�>k�>lÂtÂu�>t�>u��b�C�D�����>��>��>�Â>Â?��y��z��g��������h��n��m��l��i��j��|�>��>��>��>��>��>��>��>��>��>��>���c��Ƀ��m����pW���������pW��҃q�m����pW���pW����pV�gƒ;��j�h�G��H����N��aG
,��$:����M�PP
)5��8�lz

�i������N��M¨D�����o��>���p�>�>¨E�΄�΅��Â��ڔF���c(�>����E���c'�>��>��>��>��>��>�����-���!���ֺ����-Š*��O��P�>��>��>��>��>��>��>��>��>��>��>�������~���р��������#���X*�o��ku�>��>��>��>��>����Q�I��
��0�<��ٍτ�����������������������ˆ��
������������
������V��
��e��q)�oc�b��=��1"��w�p��?�?�?
�?�?�·����Ί�Ή���	���������������������v�Ώ�>(�>)�>*����u��� 0�Σ�o��>��>��>��>��т�Τ�o����?����-�ؗ���q����o�p�>
�?�jr�?�>��>��>��>�¨�¨�¨�¥��I��
����>��>�ÂF§§ÂE������W��X�J��
���у§§����sr(�o��i���*���>��>��>��>��> �>!�>#�>$�>%�΋�Ό�>�����P�o����h��>�������>���?��� ����>}���?�������o�������o������y������y�§��N�P�Q�O�G§���I�k���>��>���<����l����>2�>3��������(�΁�p�>��>��>��΂�p�����������"�#��=�����l�Â�Â�Â��>6�>7�l��L�������ъ�������������������������ц�ч�Oˆ���������ш�щ2���̓�C��0���N��>��$$���+#��57]@
���,_Q#��V+N;�>+�4

Je�`�(	��3���E��Q5���ԅT��-����������j�i�?��?��@����k�h2�@
�m�o�n�h�i���?L����������������������'�a�D(��#)�]1������'E�]+�'LÃvÃw�?:���C��?;����Â�Â���Â��?D�j�©�'J�'N�B�'O�(�a�D&�)�+��#0������#+������ �%���Y��?N�?O��O��N��N��N��P��M¢�©Q©R�'U�\mÂ��'V�ˆ���ˆ��Â��r��	�
Â�Â�Â�Â��������������&��€��@��@��8¥���9©V�����������©W�@��@��V�W�X�'WÂ��F�y
�+���@G�o������id���ғ%�?�@�ϲ�_�ϳ���Â��������N��?��?���������������N�����XN�������-�����&�o����-�r�v�q�p�s�t����-�����,��H�p�?J�&�'��I�؁�Z�����������Â��G��������I��/�������XF����������	��
�����XE�������������?��Y�d�c�g�f�e�����k�h�i�@��V����>��5��6��	��>��;��:��)��*�Y|�F���a'�o������id��ґ%�o�t�p�q�r�s�?9�ϵ�`^�S�������3�������a��������2����-����,��@��A��B�p����k�g��+�v�p�j�*��hY�F©�Ÿ�Ÿ�©��S���T���?���?c�?e�?f�?n�?p�?g�?h�?d�?i�?j�?k�?l�t�׈y�Y�Â�Y��k���']�'^�?��?��H�����q����q�a��*����j�*��h,.©©Â�Â��r��� �c0�-�a�b�c�`�B�jm©�\��c0�-�]�C�jm�?��jm�?�	�je�?��?��?��?��?����h��\y� �.���U/��ia���������p���m�n�w�s�q�+�x�z�{�y�~������?��?������?��?�Â�������©8©9©:©;©<©=�?�������������������©6©7�2�.�yv�\�3�4�-�yv�\�������8�5�6���?���L��M���?��?��?��!�.���T*��ia�P‡��.©A©B�?��?��?��?�����-���`?4����6�����g�W��x�b��ւ��l�}��wN��F��G��H¡�°$¡��™�š�`�!8�b8¡�¡�¡�¡�¡�¡��a�!7�b8�Z¡�¡��[� �?^�@��C>�@��C>�ˈ�������͂J�����e�i��������2�����g�W��x�b�
�Ɉ}������䑿�Wڙ|�n‚m�›�œ�o‚l�]��
	�=������r�C��A�F��3�3�4�6�7�8�:�9��?K�^���<�aD�<�I�ϧ�Ϯ�Ϩ
�ϩ�Ϫ�ϫ�ϭ�C�D��;����q"�pk�D��
"�J��[��"�J������������h�py�?��?��<�=��s��t��_��^����h�p���8^�����³���p��q��a����v
��o�3ˆ�������?��?��8���9��,��j�#��E�$��D�?��6��O�ٿ�φ�&��U�*��,	��X�(�����+�-�.�,��a��Y�:����pf�D��{��|�τ�L�,���{�|�~��y��z�N��³��l�m�n������X��Y�O����� �!��d��e���a����a��ϋ�ό�<	�z ����3ª(
����?��?��?��H�����h�I�9����:�E�x����j�ٽ
Â�Â��=�?�@�>��ÃÃ��2���		=�����* ��
��-_Q�W�(��-C0	�`���3���W+�����S��o�����?a�'B�'C�����©H�����QPX�R	�S�V�U�T�W�X�?���<���B��E
���h��(������������������
���?��?��?��P��\���q~Hs8�P���́��W�����e������ؼ©b©d©c���-�"�#©f©g©h�ϼ���������Ͽ�Ͻ��������������f�g�v���x�w��Â������i��w�h�����j�k�μ�������,:�쉃€{©i©j©k�S�q�r�s�t���.���R�~������ٶ©s©t��������~��s���ٶ�$�����s��������������������%�&���� ������
�������l�m�n�o�������������/��6��5���c��n�k`����J���@Â�Â��2�#���(�M�N����L������0D����'���c��©Y©Z�K�<������������d��©[©\©^©_©`�z����}�~�|�{�?�©u©x©v©{©|�?��?���©}�?��?��P5�� �������������������������������S��©�©�©�����������T�����ҝ¢����ҝ�T�������������������������������������������������������Q�R�����؃��a���������������������������������������ك�$��†�����������†������V�`���(�?��W�_�?��?��Q5V���]�o7�dK�\�_�]�^���3�ҟ��
©�©�©�©�©�	���b2��d�������d(€�c�'��o����©���������©���
���d�J}J
c:
�P��
������o�i�����©�©�©�������©�©��z��:�T�U�ю�)�c��;����X����Ԉ^�Ÿ�¢� �я��©m©n©o©��W�X����©p©l�*F�H����������������q�H�r�H©q©r©�©�����©X�ь�э���5�6�3�4�(^©�©�Ÿ�Ÿ������g©��?�hc�����������?G�?H��‡�������‡��?��?��?��?��?�����
����"��#��$��%��&��������m�n������	�
���h������X�����������
������������°%�������������������������k��0��������J�O�L�M�K�i��/�ϛ�ϝ�Ϝ�g��0��	3�����5:����SP�� ��
C��C���5
�������V8��
���l�G]�`n�K!����E!r�4�Ǵ�Ɂ�	@������������������@¢v��…F��	�
���
���…Fª'��b�v��L���������ª�����ª����K����ª/ª0�����������������������ª$ª%ª)ª*ª,ª.�Aª ª"ª#ª!ª����ªª�ܝ�����b�� �������ª?@�!„3�c„4�`¢6�b„3�a�b�_�VŠ5�i�{�g�d�U�e�h��1����D�C�
�Q�|„ª�ª�ª�ª������`�E��…���Z��!ª{���d�g�e�f�������������������������������������
�
����
����������������ª¢V� �x�������I�F�G�H�J�����"��Q�R��)0¢�#�%���?�����O�@�@�'
�v�������(�!,��‡[��M�*���+�,�->��C�����0�0„#
��=�>�.�„&��3�4�:�;�7�2�/�0ƒ����!������������§�§�����������'�©�©��	�
�'��\c�'��\b�|�j
�z�o�p�r�t�s�k
�n�'��~��������l�{�|�}�~��:�����ˁ�V���%p�1��>�S�
P�����p����������������p��������z0��™5�����������@n�@o������ ���������!�"����Š�ª<ª;ª:����
���������������������‡7�#�%�$�&��aƒ��i���G����鉁��(�+�*�)�'�,�/�0�.�-��������������¤ª���1����*���a�b�j��¤�k����l�Ǡ�„1��ª�ª��r���u���v�s���p�q�x�1�3�4�2�5�8�7�6�9�:�΂v���ςv���ʠ|„`©�C^ªDªE©�CªC�ɠ~(����	X��ªKX�<„XªIX�=�>�Ƞw�A�B�@ª�����ªLªNªM���ݝ���SE&�������0�Y������~�!�"�u��ª������������b����…���£fw������������£e���+ƒ0�������c�d��8-���%��`(X����e�6������ђ����	���������������f������7��Fx�g�i������
5���`(Z����7�������������7����������������6���	���������y�z��!$���EI���Yp	���`{ ����f��ȕ���V�������J£�ª��K£�ª��(��k����,�'��т��w��k����-���,�(�(
���0���0�'���X��k��Dª��C�!����hV�p�('��H��+Y���k�!�g�h�e�Y�|���ª�ª�ª�ª�������������Š�������Š���"#����-D���YR	�x? ��'	����]��ȕ��Ã%Ã$Ã_Ã`¢/¢0���'��'��'�w�[��C���D���F�H�G�m�Mu	���D	�@�@�@�@�@�'�

c��~��b�'��'�ª��'���ª��'�x
�[��'�w
�[��%�m���*�������������Ã/Ã0Ã1Ã2������� n����� r��������������� q��� q�?�n� b�����]��Ã6Ã7ª���]ª��(2�����'�_���c�3���ª��@*�hG�������4�v�����g{6�.�c%#�������������������������������
����ª��(�`��+�*�)�,�-Ÿ�Ÿ���L�{�|�������‚���ª�ª�ª�ª�ª�ª����
����r��‚���������
�����������	��������������g���������<�����R��f��������/�6�7�4�5�:�2�0�)���'��'��'��'��	�
�������
�������
���3���t� ��
����g��*	�c#������t�x�y�z�u�v��ª�ª�ª�ª���������������
��	�����k%��������_���������
����
� �����{�������~���}�(���'�q�"���#�������!����
�{�"�����������%�m„e�&�~‹s��|„\��{�‹tª���( =�,��ȇ\G
`/2"��5�Gz�x�[�V���c[�p��_��X��W��X��������������������U�V�W�X��f�L�������j���†\�������i����)��,��-��d�������������������R�9�ª�ª�ª�ª������u�8U`.‚��v�7Tƒ\�S�b�x���T�U�����I�,�?N��‚��J¡+§v§x§y§|§}§�@b�@d�@c�@f�@g�@h§z§{§�§���([�	(��������O[00��<�Gu�x�Y�lރ��b���Z��WÃÃ�R�����}z�Q�R��\��7��XN	[������s*	�\�&���'��'��'��'��'��'�(�*�'��'��'��'��'��'��'����'��'��P����e�U�����
���)��1����G�����\�������V¢h¢i���>��"����k�g��'��'���/��0� ƒY�"�#�$�!ƒX���y�<��'���n}�4e���(««	««
«���'¢���¢���««
����¢�««ÃH��b��ÃJÃK««««««�{«« ««����?��'���n}�c{�r��I«�������+„D��„D«��������y��£��Ȃ����������؂��ق������������]�Ղ�£��^�`««��x��£��\�ς�£������������ւ��ׂ����j�r�}���
���������փ+�Y�3����b�c�e�f�u�t�������{�v�w�|�~��}��������¢n�̄���;������©�©��й��q����«2�'��������q�«.«/��a†��b�k�l�m�o�
�g�c�d�q�f���h�i�����9�_����c����ޘ������ߘ��������p��ƒ�����A«6��«8«9«7�|�~��}	�q«I��Ÿل��
ÃT�����������������������б�в��H���'���
����������ь�"��v��<�!� ���г�д¢r�*�4�¢s���$���~����������"¥�������k(�����~
�c������@Y�@Z����������������£��@U�������	�k�������������«;�g���k����h���«<«=��ÃO������������	3 ^��[�Ԅ����W7��&��1��
,����>	�+
��"�;
�����V�"5J�?5�H[�`n	�<	�!��
�z��(s���&�ȁ�	
B���1�����������������A�������@.©�©�©�«Q«T«S«R�@/�������«r«s����G��m	&�@l«O����o%«N,�a„���������������«u«w«x«v�
&�@�|���\�|��e���U��������d„�©�«�«�«�«�«�«�«�«�«�«�«����������/�?�C��Q�g���e�������«���†���«o�‹n��C�^$�D���|��e��"-�6���������=«k«�«���«�«�«�«�����$����«�«�«�«��������Cx†�,�:�7‡\�8‡[��«���«����(�(�(�(�(�(��Ձۗ�����_W.�B���WH�o���cE*�9��������������,�e��(�z��������N�S�Q�O����������W����������Z����J����������©���ªgªhªi��������	������	�������������ªaª^	ªeªf��������������„������ª`��������������WG�m�e��b���Y��ªRªUªTªS��ª]�M������g(��}�I
�W�K�M
�J�L�P�Q�R�U�T�S�NªOªP������¢;���+���+¢<©�
���>«����„�«����„�«�BC«�«���������	�����k£P«�©����?����w��
«�������
���l�)��w��«�����{����{�^y	�F�����������������S���!���g&���������†k�������g%��������������x��‡�«`«a«d���
����ȃ
��h�†�‡��i�„�…��p��r��s��n��j��k��o��q�Š��l��m�(R�(T�(U�(S�(V�о�п���������������Z���y��t��v��w��u������Y�
����|��~����}��z��{�€�‚�ƒ�¢|��f��g�ˆ�‰�`��)����j����p�e�g�j�f�k���/�3�5�1�2�^��:��~�����E���������2����������:�=�>�@�<�A€���¨�¨��B
€���	¯�¯�¯�¯�¯�����c����
��7�����	�j��f�qb¯��G‡h�H�I¯��'�����	�j��e�qb�"�#�F‡a¯�¯���
�¯�¯����a��+����j����p¯��'�(�)�,�.�-��‡p���������������<���+�2G�s
'��b�e	�����o:���`u�:�@����	�'p�'q�'j�'k�'l�'n�'o�'r�'s�'u�'t�>���������w�����?���}�~���������N���M�"�h����D�0�P�Q�W�������������T���,�-�O�ׄg������������
���������������섓����������������������������������������§S§T��©*©+�X�G����Ǩ�����������������������������������1�������J��$��p��n������������Z��(�����Ф�1�#�?R�?T�����?U��7�\����?S�y�z�:��P=%�{&��ԑ��VӚE�B�����������^�'h�'i��G��G��G;��i<%%�����	���p�B��4�#�{�������s��t��u��v�|����A���7�8�B�	���
������ђ_�������a��~����F��7�b²��}�������������������~�^²����b�����=��+�020�D3���	���o8���`w�;�@��"�������H�~�I��r�L�u
0����§@§B§C��§A§E§H§G§F§I§J���@����*����o9��h
����������������§P§Q������������������������� �!��������h�������§=§>�������������������9�#…��:�"…��?P�?Q�b�X�������@�g�p���r��v��t��u��y��z��x�؁�؂�������؇�؈��a�����؄�؆��b��e����f��g0��h0�ؼ����������؎�ؑ�؏�ؐ�؊�؋�����؉��?�@��@���j1��m1��k0�؟�ؠ�؞��������������������
���@�O��4�p�������ث�ج�(`�ب��m°°�خ�د��k�ذ�ر�ز°�ة��l��|��oD��qE������}��~���ع�ػ�ض�ط��n9�����\G	2!��1
��5��[�\ւ�K�_�`R�^8�^9�\��`�]�(�]9�^2�^3�];�]<���]=�^/�^0�^&�\��4�\��^4�^5�\�#�
���^�^�^�^�^�]��]��`�^�\��^�^�^�^	�^ �^�\u�\v�]�]�] �]!�]"�`�`�^!���^�]��]��\���^�^�^���`�]��\�s���ƂF�\��\��]4�]5�]1�]2�]6�]7�]8�\�}��\�}��\}�\~�\�n���D�\��\��]
���#�F�^G�^?�^A�^B�^C�^D�^@�`�`�`�`�`�^H��
�`�`�`
�`�`�^I�]��]��]��]��]��^J�]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]���U�]��]��]��^�U�`V�`W�`�]��]��]��]��` �`!�`�^��^��`�]��]��\�}��6	���]�]�\��^��^��^��^��]��\��ނ-�^��]�^��]��]��.�]��]��]��]��]���\�I�\��\��]�]
�\��\��\��]��]��]��]��\�<B�5|�\��\��\��\���u�|�^^�\��\��\��\��\��\��\��\����^c�\���p�z�\��\��\��:�^]�^��^��^f�^O	�^P�^R�^S�^Y�^Z�^n�^��^��\�;G�6u�]�^'�^(�]�^q�^m�\������:�`-�`%�`)�`*�`&�`'�`;�`9�`:�`<�`=�`>�^��`/�`0�`2�`3�^��`B�^��^��`6�`@�`A�`7�`D�`E�`5�`N�\��y#�`J�`K�`M�`G�`H�^o�^[���\��V�\��V�]w����Z-.!
�_��_��_��_��^��^��_��]}�)�]~�]��]|��_W�_��_��]��{�]��^��_[;�]u��_��_��_��]v��_��_��_c�_X�^��]�_S�_�_T�^ڂ�^��^��_`m�_a�]y���d�_Y�_,/7�_��_(_�_+b�_)�_*�_�]?����_��_��_��_��_��_��_��_��]��b�]��]@����_��]�L�"��)�_��_��_��_��]Ղ"
���]��+�_o�_p�_q�_]�]��_e�_f�_^�_g�__�]o���]p�]q�]ւ��]h�]i�]j�]k�]ׂ��]m�]n�]s�]t�]z�]H#�UC0.)�^��_i�_j�_l�_�_m�]Q
���^��]N0���]L���_��]S���]I
�]J
�_8�]x	��R�_O�_<�_P�]��]B�]C�]D�_��_D�_��_��_��_��_U�_V�_C���_K�_L�_MR�_J�_��_;L	�_B[�_=^�]E�]F�_F]�_bo�]��_��_�
�_��_��_.Bu�_z�_{�_%E�_&�_/@s�_0E�]^���]_�\t	/!��3
z"1�@/�]`�]a�]b�]c�]d�]f�]g�^��]��]��]��]��]�u�]��]�]�_�_�_�_ �_!�_�_�]��]��]��]��]��]��]��]�w<���]�^��^��^��^��^�^����^����]�u	���^~�^|�^��_��\w;,�
x�����^��^��\��_�_�_�\��^t�\��\��_�_�_�]$�]%�^w�`b�`c�^��x�^��^��^��^��_�^u�\�
E�\�G�\��\��\��\��\��\��\��\�;�\�
@�^v�\x;*��������]/�\��J�]-�].�^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��`d�`j�`e�`f�\��\˄��`q�`m�`n�\��\��\��\��\��\��\��\΄��`t�`u�`{�`y�`z�`v�`~�`x�`��`��`�`��`��`��`��`��`��`��`��`��\��`���
�V���{1ic��M�� ���L����z���`������G���M���ق	�n���H
�s��������B��������������������������Љ��щ��F��C�D�F�������k���G�����������j�������F�G�����������F������8�r�9�F�����
�W���H
�Y���O�	�F��鑿����������P�Q�����؇s���A�������<�F����[�U�����F������������F��������	��;
�e����������������B��B����8���y�4���4�P���8���y�4�1���B���
�3&��[��������������������N��N�������������������������������������Ռ僦�B��B��������2$��Z$�����������N����Ê�����N��N�����C�l�
��|��������������������
P�����3�����Q�*����+���B��� ���!�"�����-�j���.�j�����;	�c���*���������B�1�B�1�B�1�B�0�B�1�B�+�B��B��B��B�����)�`�
�
���U���B��V���B���Y�	-�W�X���A�s���7�8�c�d�B����H�I������ �!��$�%�"�#�,�0�1�-�'�����B��B���:�;���D��D��(�)�*���N��
���NJ���
�����G��^�_�1�������[�\�3���4���2�/���b�d�c�a�e�f���"���g�݈+���������������O��O��������	��� �
�Q����������������n��8������������^���c�b�_�`�a���������?�d���7���_�G��O��O��O������g�"�5�����G�G�O������@�6�S�T���e�ޛ����B�;���=�>���<�������~�G�G����H��C�8���#��
���T���������%�Q�-�
�����?�A�B�E�D�@���:�P�0�����Oj�F�G�Ƃf�N�.�N���U��z�/�a�/�e�f�g�k�h�i�B
���灬(��6��������������������������������	��7�������D�����E�������F�}�������K�Q���H�L�P�C��C��G�z�����l���������������������������C
�*���j�k���d���c����^�.�����������鏋����������zF�)=K��=
s��N���?�����e.
�<&����	R
!�*��1\�
d:��	/e�����{��������Ă�����o������o���v�{y���E�E
�E�E
�E�w�{��q�s�C~�������o
�c�~�p�b���\���������e�������������w�y�̨�E���N��N����1�����.�����O��O��O��O������J���O%�O&��ь)���������������`���_�
�
���
������������������������C������������������<��TG�r��p�O�b�,f��}��9����������������G�O/�����D�腈���<��A���~�����A�����݉T�U��������������X���C������N��Q��Q��Q��Q��Q��Q��Q��Q��@���A�Q��Q��=���9F�o��p�����`���������������������		������a����ց���܅��������������
�:���������(���y��#�j�����EA�EB�O��O���E�E>�E5	�E6��E�E;�C����������������Y�����vB	�$���Y�����v�O�����������������"�j����~�M�n�L���q�T�r��q� �2��6J��2�Ic9�1)��1��
��+����G�G���������������N��N��,�-�����C���k����	�g��Q�/������u����N��N�������q��a���JO���
'������A��)��+�r�/9�.�/���h���� �Q����j�����Q������E���E�Q��Q��i��f��3�;������������������A��@��3�<��3�<�2�3�j��e��2�;�N���d���f�����e���	�
��n�D�V����������u�Z�x�X�v�f���g����d�6�i�t����e�5�i�r���W����6����Ņ������C������w�y�z�D���ǛK���ǛK�bFhd\	5K�
m��Q���<	![���m#�<����O

�Z
+���+\1	��
-;9��^�w�G��H�H�����G��G��G��G����O�O�O���G��������<���q�H	�EK�!�$�%�"�����p�+�1�.�&�*�'�(���S��S��S��Q�R�ӑ'
�ԑ1�N��N��7�8�2�6�3�4���H
�H���]�������H�g��#��d��Պ�x���:�=�>�;�S��S��?�@�b�ER�ES�C�D�S��S��L�O�M���N�EU�Y�_�Z�[�����Q��S�T�V�W�R�#�F��G�K�H�I�C��H
�H�O�G��G��Q���u�����>&=L��MR��B
�O���!��l��W�c�E����cE	�O �O#�O$�h���N��N����N��N��c�d�
�`�a���9 �2�~��)i�|��������������i�n�l�j�����������������������������������e8���h�g�f;�������������������������?���;���A�:���I!������bB�P���ٌ�}��i�����������������������������?��@��J�K�����������C�u�v�w�x�z�{	�\�|�������}�����~��k�����N�EL�EM�E"���	�FC�J�K�G?���E#�������������O�����O�����.���Z�\��k���O(�O)�C��C��Cw�/����������O+�O,����i>8
# ����!\��'19�.�U��"��쁲	��H�}<G1�s �s�Ł�k��1�j�W���D$�D%�@+�@,�@.�Z�[���Y���A������@1���@2��y��h�|�?�2�G�����@O�@P�AZV�A[g�Z�m7���.�A������.�O��A�����/�뎪���A����A��A��W����+�|��ч����+�{�҇� �Ӈ���x��e�{�>�*	�B���׉��G�@L�Q����5�g}���A��A���R������A��؆v�AN�c���25�����,�*�+�-���z�D�&�����c���j���D�ˆv�G���u�C�f�g��y���Ad�4��B���5���@���B�O�c�O�c�PM�PN��������d���23��������� ���~��Y���$�PF�PG��������}���#�a�b�
�Sl��Sk���q�Ak�Al�ǒ��P[�i��E&��������ƃ���
�Ai���P8�PS�PT�PW���g����Gz�	�,4l����	���/�V���)
^�����@�B�C�*�`�-�+�,�@��D�E�2�1�3�5�4�A�@d�@g�@h�@e�/��:�0	�8�[�\�V�W�X�Y�Z�h�@r�@s�e�
���f�	���#�N�����9���9�m�p�n�o�)�+�*�H�I�J�K�:��6�_�y�c�b�`�u�a�K�ۄ�#�����������t�w�u�v�L���y���}�z���{�r�s���H�҉��������������������I�щ���7���������VY����9�[
�$���O������O�J�O���=9�������:"�����8:�
�"����������������Q���������O�� �@��@�����E�W�~�v�y�z�{�}�|�A���A������d��Tj��4��u-����	��<�=�T<�'
Y�@��c�m�������C������n�d�C���l���(�-���f������p���q�r��l�c�0*C2��!��zs>�2�@_���������������%l���@Z�@�������l� �;�@��@}�@~������m���P�l�2�S�Ά�����As�At����T�A��Z6�y�Ԉ���:�����P�@�w�@�w���A�A�@��@��C��[�C��Z�@��@������������b�6�����3�4���j�����A�A�A �A!�
�������������O��O������[6
�r�Ԉ����:	�����A#�A$���׃@���D�D�������������������N�f1%B��M���q��9��_=���x����-�f�����[9�)���*���'�������8����������e�������d��
��@�@���3������Y��$������������������������Q��@�Q��b�������y�$�%��2c<�O���p�'��_����
0��-�Y�����[:��� �!����E���
���������d�^���E����'���n�B�B���������@��@����?���0�A��������������	�ꁾ���B�B"�B#�B$�B �B���|��$���i�@����������������*�H�������������.�!�"�������@�������������������,�+��j����@�@�r�s�C��C��u�v�=�oj��G�Pr�A��x�n�y�m�Az�A{�A��A��A��A���g����4��m��#g��������������������{�|�?���i���4���(��@��F���7�������1�k�K�������/��Vd���B;�����������P��Ⅿ�������hr# =&�?��|��
*�b
�L����a"(2I�+1!GD�c2�2����
a��4�d�����@�@�@"�@�/�6�2�8�9�0�;�<�å �Q��Q��ĥ �Q����������p�<���q���������A2����W���n�t����U���q��(	�����o\U�*�������7i�20>��)[Y	�
��a�čL���H�I�U�V�A��A��W�M���K�5��D�����BV���@&�4���@'�4�BW�����f�1�������@)�5�3��������a	���E�F�4��G����6n�#_�Py�[]=

%�1�U/8?�-�
����D5lqg
I<3M�a%"1������]0���A��A��A�A�A�A�A	�A��@��@��O��O��@��C��C��C��И���@��@��@��En�ă-�|�G�A��{�����{�P �@��8���:�;�@���@��>���@��@��@��@�'�9���@�%�@�$�Ӕ���@��@��@����P�������VE��}�?����;	8n��o�����	f���A��P:������}��	�.�S��o�֓{����R�S�������U�V���O�
�P1�P3�P4�P2�O��@��AP�����v�P�������G�)�^�`�_�@�(k���@��*�(�AS�+�m^
G#�T�#
�
����6/[nM
LmH��0����Z �����@��A�A�@8�@9�@��D+�D,�@7���@��@����f�����ϔf�����W�@��@����=���=�@��@��@��Ɂ����ԅA����?n��s�	�ۍ���������������A�A
�����@G�����
K���K�@ԁ��A��@��@��@��ޕ1�A�A�/�.�����g�.�P��h�-�P��C��C������@�P��P��Ar�Aq�AW.�AX-�D0�A]�0�@�����'$�AU#�O��O��O����؉�R����`?>7���S�D
�D�D
�D�D�D�D�Ph��{����BR�B�T�Pl���I�����؁�b�������A:������x����/�P��P{�P}�A<���J��i�S�o�B_�B`�P����P������������������������������9�:�8��������1���P����<i�S���������C��C������������������C�$�Ђ5	�'!�?�=���t�	�g���Eg�:�Eh�D3�o�P��P��P��P��P��P��P��P��P��P��DN�DO�DQ�����s�����������DH�D@�DC�DD�DA�D4�g�D:�D;�D9�D>�D7�r�D5�DS�DT��l��`�U�P���n�P��P����8�9�5�Ǐp�3�L��M�R�G�H�Bd�Be�����O����K��H�]���N�O�P�1�2�������K�,�_���˄���P�
�P��P��P��P��P��P��P��P�
�P��P��P��P��P��P��P��������Em�Ep�En�Eo��������������8���#! ��P��P���������K�����񏊌I����R�Ƀ��i�N�C�K�A�B�D�E�����H�I�L�;�G�<�J�K�O�P��������Bc�D�E�Bf�Bg�=�?�@�A�B�����|��Zk#?�c�1��������
�+#��[��-
4|
���(��v�!����������D��D��F�G�Q��Q��Dd�De��������������������C�(�&�'�+�-�)�#�$�>�ؓT�Z�M�N�P�Q�R�Bk�Z�@�A�#�$�Db�Dc�D����D����D��|�>�1�2�4�5�;�<�=�/�u�N���O�?����E�@���A�7�9�8�D��D��F@�|�%�m�}�%�l�~�"�f�#�f�$�f�%�E	����_���5���y�z�w���]�Q-�Q.�O�P�|�}�I���Q�1�m���Q�Q�G�H�W���O�0�v
���Q�R�X�Q6�P��n�o�Q7�k�l�Q1�Q2�N6�i�́�����(�e�a���������k���Q
�����c�d�������������Q+���������������Q*�Q��_���Q���^���2
		�����䁔���[�o���p�J6/����6�������������Ճ6���7�����:�ȁ��DZ�G�H�T��"��8������������ٌӁ��&�i���Gg�Gh�������\�]���������������'�&�ځɂu�<����Q�#�������������R�������1Q�t���i��Q�v�w�Q!�U�V�D^�D_�D`�Da�v�Z�[���U���M�
�W�y�Yk\

�.�-'�\���z�+#	�ց�

++|����:��v\����ߊ������G/�|����G3�}���
���Y�Z������������G��j�O���G.�h=��!�`��{�[�\��$�"� �.�/�������i<�������G4����*�=�8��;"���@��*
�x
��P���P������	�GO�GQ�GS�GP��Dr�Ds���!�[�E��E��P��E��E�������X���������"����� ��U��%�a��P��!�"��T��Ԋ��
�GC�GD�GF�����R.���O�Dy�Dz���������������J8=������	�L�|��/�0�i�#���j�����G:=���Q��������$�%�ţ-�����ƍ������c���d�������<��
4"���D��5����
�����P��P��GI�'�U�(�U�GJ�GL���P��P��+�,�.���S���`R�{���]�^���������1�2�D��D������4�5�����7��N��8�9�:�;�GU�����Ӂ�Y�>�ڍ�4�D��D�����������e�f�d����9�Y�ԁ�X�=���6�P��`����8��P��x�R�b�D��ϣ{���z�y���(�m�)�ڇ���W���n�o�uj�����������r�s�t�v�w�HC����J�x�z�y�{�q�އ���T�����}�|�~������ڊ�Z��������������������������������	����������������������)�Ă���X��o�K$
'
���R�.�Ao^�-C��Tn�ɘ����J��J��M��M��M��M��M��J����J��J��J��M��J��J��J��J��J����J��J탯�M��M��ʘ����M��J��J��J��J��J��U���K(�K'�HJ�HK���h�M����a�b�ڎ��������FL���P�K0�K1��)�FB�郆�M��L��L��L��L��FC�q����	�J���K��K��G��I��������������I����I����I�� �!�"�I��M�I��[�I��[�����G������������I���
�&���K���J��I��^��
�k�K�K�R=�R>�H��M��M��F�F���H����v���C
B�J<�v
dY����%F�3

m���JR�JS�J"�G�J�J#�K6�J+��J,��J�J���L��JA�JB�J9�J?�J:�J;�Ms�Mt�J%�J&�J��߂'�KT�KU�Mv�L��Mx�My�H���KH�4�KI�3�KF�K‚��I�I�KÂ��KK�KL�[�ЅN��Fg�
)���n���Ko�Kp�L��L��L��JF�����Hv�������H��O�J��J��I��R����)�����KmK�K��K��K��9�K��KnK�J8�JJ�JM�JK�JL�J 7�Kq�Kr�M�M�M�Qx�Qy�Qz�K<�Ʌw�Q}�Q~�Q|�Q��Q��Q��Q�Q��w���D@�P��
_T����	7��
gz���M��M��JP�JQ�E���N��H��n�c��L|�L}�M��M��X-�>����.g�:��*1-I�����Hy�JU���قƂG<����Hn���F=�J2�J0�J.�^1�<����
'���01,I���H������6�#�J(�KN4�KO3�J)�JY�'��JZ�&�Hp�Hq�Ht�J��J��J��KQ�KR�r���ǁ����+������u�v�w�x�M	���FN�����A�5�K��K��K��K��K��K��K��K��K��s
����E���7�����t�>�5����d�K��d���Ӂڈ��l��d�Fw�"����I�I�I �I�I�I�I!�K��M�M�M��H��H��M���K�� ���H���r�*�t�H���D�H��H��g�h�I"�I#�H��H����ҁ��T�F�����M�M�N�M��M��K��K��J��J��-�2���v�M�M
�0�1�.�����M�M�P�ziL
�̃]��I��?��Gw$�C��n�89��H��H��M��N%�N&�4���M8�M9�R@�i���j���L�L�5���������Ib�MH�Ic�@�|`�H��`�H��H��N�N�����������Ew��7
��Q�F/��{f��;��P�H��U�H��H��Q�G��
=
���\��%�?��:9?$�C��_��k+�M��M��H��H��I^���I_������L�:�����_��T�8t	�H��H��H��H��H��M��M��ML�N+�N,�MS�:��W

�v	�+�8|O�B�K��J��J��L�L�L�H�����	���O�A�I:�I;�I9	�����M��H��I?�H��I>������?	�v	�"�A��N�?�H��MD�MF�<���
�B�=�>�5��b���IS�J��J��II�IL�IK�IJ�IT�IV�IU�IW�I�I�I���W���W�H��I�I�H��H��I&��G�I1�I2�M.�I,���I0�M#�H��H��HڅK�I-���I.�M/�I'�����M0�M1�M2�M3�I(��?�M&�M'�M,�M-�M+�M(���M*�C�ā��^��D�K�K�����K&������
���gX���o�n		��5Il_K��C\�؂ 1�u=m
�Jk�Jl�M��M��L+�L,�I��I��I{�I|�����K�K�L-�%�L5� �L4�L6��L8�!�L9�L0�+�L.�L2�IoV�FH�FI�I��I��IpV�|�M��HO�HP�I��E�M��M��E��!N��}I����J��J��Is�He�n�I��HN�O�� � �I�P���I��HT�$�HU�#�H9��qX��x��
�N��N��I��E��-�ۅa�I��lY��`*.���Jc�Jd�Jg�Ji�Jj�L:�L<�L=�LB�L;�LA�L>�LC�Jm�Jn�Jq�Jr�Jo�Jp�����΁�w.�Jz�Ju�Jv�Jf�J{�J|�J��J��I��E����A�O��q���&�TH��_��6jlw( ��KcT�Ss	�J�J�I��I��L��L��L�P�L�P�L��H��H��I��I��I��I��I��I��J�J�J�H��%�H��J�J	�H����Kj�Kk�L��L��K��K��K��K��K��K��I��^�J�K^�H����L��L��L��L��L��3�L��5��	���I��L��KY�KZ�L��L��Lp�L��L��L��I�v�����J�e�Lt�H
��4��	��
�Nf�Ne
�Nd
�Lw��	�N`�Na�I������Nh�Ni�Nj�K��K��H��G�ၫ��H��F�H��H��L�(�L��L��Mf�Mg�F�J���ɈᏖ�A?��z��!'��s*��Fdn�LN�LO�Me�K΁��L����v���ǂ*!'��s,���Kց��Kʁ��I��Li�Lj�K����K�m�n�,A!�N���`��8�S4��c��1jhn(.����R
���I��I��Ka�Kb�LT�LU�I��?�����J�J�L��H��H��L��L��L��L����F��?�>�W��k�L��Kd�f�Ke�f�J�J�J�L��I��I��H̄���K��H����"�L\� �L]� �N�H����L��L��H�����H��H����K��E������D�FP�FU���|�����R:�FV���K	�K
�K�K�FS���B�FQ�������L������ʂ�����z_�΁��N:�N;�N5�N@�NA�N6���N�NE���J��J��J��x����H^�H_�I�؂��y����9�|����N9�HZ�H\�L��L��M���������u,2�����H]�Ij�NI�NJ�Iꁼ��S�e�N7�N8�NK�J��2�NO�NP�NL�NM�NR�Hb�H`�Ha���[�.�����N��N��]�<�N����N��N��N��_�`�^������V��.�v��	������	�N��N��N��N��N����������N��N��������N��Iȅ��N�������	�	X3�y��7
"E��2$
i"B��M�X;��
���I����/q�q��X� ��
@����zP8�f��	G�� C'���M��Ry���������Rz�����R�R��4�m�o�p�������������6�5���7�8��E-�d�i:���3��'�.�����R��!�R�� �/�k����ݖ|���ؖ|�R����������.<�c�i;��3���S�m�n�o�p�q�r�Z��M���͋��]�^�`�a�c�b�d�d�e�f�\�_���c�h�i�`�e�f�Fk�N��N��[��:�J����\�B�D�C�>�@�?�j�����K�k�����K�Z�^��9�<��?���F�G���I�]�������<���=�����?�����4�n	���������������
�e��f���������q���Fw�o�����������Fz�K<�&�ԉZ���5���H6�H7�H8�N�O�Fn�Fo�F}�Fp�Fq�;	:�����%�R��R��R��R��R��R������4���R�S���R��R��M6�����������������������������������������������F��G��G������U�V�������t���l�����������	�u���R\�R]�����q$%#�?����%���Z��q����� ��"P=#�*8���F��F��l�\���4���0��F}���������H���	>��� ��!7+���Ӆ����B��B��B��B����������ى7�����R��R��������������������R����������+����ҁ����F��F������������x�H���Gl��
��G��G��G��G��y�K���'�C��E��C��C������������������������������������H��
�����
����%��&��%�R`�R�����"����J�����>�������������������������������Rg���R������F��F���R�������������������������������l��������������������f���FZ�E⁰�i���R��R��R��� �!��"�#����R��������R��S�S��
��'b"	�Z���E
��F

/
)��I14Yg^�.
��K
	��Z�!:��"��'h�܁�
	J��d_!������)������0�z�������;���������������������E��E��S-�������2�������3�x���1�����!��<����;��:��m
�W�X�T�Z���S���S=��ύ��SG�F����S>�Ԙk�‚�<��������;~���_���`�a�҂����ӂ�����@��@�O8���=�����O;�O<���O>�C�C �O?�b�C�C�c��#���^�(�I��.���S�W�9�ɂ��������m�A�B������B{�؉w��'���s�2����>����������S2�S3�OL�OM�S1�����ԑ�����������������������(�J���7�݁Ё�������E��F��N����ׂ7-�ɂ��˂K�߂ف�?���h���F��F��@�A��J�K�M�N�F��k�����E��E��F��P�Q�B�C�<�=������>����E��E��n�����\���S�T�U�o���
�A���5�����b������F��F��F��F��F��F��q� �2�����<���F���%���$�m�S �n�)�G��G��G��G��G��S�؂c��II�������H������4���>�F��F��F��E�F�F��^�E��~�V�p�.�����=���F�G����V����[�\�ㇵ�7�Z���e�����������s�[�t�k���SL�SM�F��F��F�����C�W�˅����;����B�$�����*�����+�?���6�������l�m�h�����F��f�u�w�F��F��F��������_��I;��M5��2����W��
U�.B����/��E�7�(���@�Sc�Sd�So�Sp�Sh�Sn�Si�Sj�B~�B�ۈن��k�F��F��F���������n�����P�����&�H��Gs�Gt��"���b��S:(������1���	�����(~�������(����@�Qo�Qp�Qq�F���;�F��F����f���틨��*�“N�����a*���Ss�Su�Rj�Rk�F��F����}�~�E����������ǂd���@N�����8�6��������'���������������2���A�B�����s�t�����Ƌ1���삤�ċ1���ʂe�����8�I�0�����W���X�����������c�����Y��6/�S{�����ʖ�0�Ƃd���	���'�6���!����2�ޛG��
��3���F�����!	�W���:
��E	0

 V(B'	BH%^� 
��	=��
P�W��
��Y

�v
/
��5l������
���	'$��������SR�SS�o�ň����6�7�:�p�ɓ��5����	��	��i��k�����j��������������������ŇD+c����hi�v���O_�O`���������E��E��E��E����
���u�����B���B����������� ���!���0O���SWN��L��!��
�Y�A��5
�v-o�����������������f�����1�@���=�����R���N����������(�A�B��B��Od�f�Oe�d���e������t�Ob��F�.����ɑ���>�?�����������������G�����ʇ�=����-�O�����H����S�8�C2�C3
�C6
�CC�C4�C:�C=�C<�C8�CD�CE�S~�S��)������CH�����C9�S��S��S���-�O�������p�CN�CR�CP�CK�CL�B��B��CT�CU�CS�C7�CI�CJ�G�/�G��G����Y�������[�\�Z�l�b�A�����d�D�e�?�c�:�s�t�q�r�n�o�p�v����G��G��G������f�i�I�h�g�J�G��G��G�.�G����Rt�G��G��͇��|�}�z�{�·��x�R��
���1	����������
FN�j�"o��
�R��R���!�#�%�"�R������R��R��R��R��R����t�u�����T�s���R��R��V�W�������R��R��R���U�6	�R����q�������R��R������������������R��l�����A���:�������W����R��R��N��N��m���������@���������N��N����+���{�|�}����	�����z�x�y�S����S�S�N��N��S�S�S�S��
���1��������
EL�j�"]�)�*���������8�遺��/�����R��
���N��N���������������j8�n�S��S��S��S��S��S��S������S��S��S��S��S��S��S��S��S�
���������A�S��S��S��š��QN�QO�QP���Ƙ��QR�������H9�S��S��S��S��S�-�S�,�S��S��S��S��S��S��S��S��S��S��S��S��S��S��S��������j7�n2�S��T�T�T�T�S��S��S��T�����Dm�T�T����l�T�T	�T�T�H,�H-�����w�H1�����,�i�������
���	���遪�F���H��⁳���Š���-�������Ă	����m��n��e��f��g��a��c
��d
��b��0��3��5��1��2��R���S��j��;��<��v��Z��\��V��W��8�"�"����9��:��<��k���z��]����`��b��e��d��C��a��͙w��c��7�����������s����h��U�$����P��y����;��t����w����Q�"�ˈ��>��?��A�݁��.���������_��Ιx��|��}��l��/���J��K��L��B��~���������c�D�=������	�������������6�������6������p������������������U�"�~����������������������������� �������&������������<��=��!��"�ݎ��%��&�����(����������������������ݏ����*	��0��3��2��1�ݐ��4��5��A��8����:��9������ݑ�ݒ�ݓ�� ����,��-��F��G��I��B�ݍ��ЂT��@��	����:c�D�=
/����
����ш<���
�����������������������
���ٮn��
��g��8�6�*�������������������������:�����^��>��@��<���'����=�ٰ�.�ٳ��f��g��h��i����j��F��G��E�����
�����������������������
�����������

�������������������ٱl���nf
��4�9�(��ӈN�����ֈB��"����ٯ���p�_���������l�������^�����������m�u��A��B���M��;����������������������������������������������������������
������	��
��������������������]�ۂ�������&�������������ٴP?�
.����D��0����(
�$	�����H��J��I��K������Q������L��f��g������j	��s��t��k��m��o�����쀇o�����,�٥����Њ��$����������Z��\�ݗ�ݘ�ݙ��^����م�X�ك�ل�ن�ه��./��2��3�ٹ�����0�����*2��
���G�K���
��N��_�ݜ�ݝ�ݞ�ݡ�ݠ�ݟ�ݦ�ݧ�ݢ�ݣ����D��E��8��K��L�������	��C��<��=��>��9��:��T��U�ٵ??�-�T+�����|)��������$
���A�����%���Z��[��_��`��b��W��c��\��]����j��C��F��D��E���†e��3����ֆe�/��n��������i�����!����.��)��q��r��3��*�J��4�@��A��B��u��y��v��x��(��'��2��?��@��+��,��z��������������L]	|�ʃ����6���	(�)#��g��`��a��v�b��Z��\��^��w���������ٶ���ٷ��}��ف����~����W*��X��Y�ٽ�Ќ��پ��_��`��c��d��b		��g	��f	��m	��l	��k	��h	��i	��^��w��x��K@z�R���	����`�����Yd����y��z��Z��V���r��s������������J���L���d��M��N��g��f��e��b��c��P� ��K���R��S��T��$�>�p��������h��i��U���	:U
��hK
�>��X�>	5)u""��$��Z

:Z��c�w@����恔��������r��������������ׄ���o��������Z����g	����������\��^��_��`��]��w�̄D����x��z��t��
��u��v��{������d��f�������[����p����s��v��t��r��q��\�kH�>����������]�jH�>�ڮ������g��;����ف��Z�C�������������������O�n�>��������������+��(��*���������
����������~�Y�x��	�����d��'��%������-��	������
��E��A��C��D��F��B��G��]�
?�Yh��
��L
��9��^��_��x�N��N��O���������� ����`���
��a������������������y�N��}���䀃�������~���䁃�������������������%������S�?��,�Yw�������?�ܡ���ܤ�ܥ��X��Y��Z��T�I��
(�d������y������|�������������������z��{�������:�1,�8M��	�u��
��B��t��q��r��s��u��v��������}�K�����������������Ł������������;��s�O��H��<�Ä���=����>��?��kS����u������o��{��|�䨄�$��4�����y��z��l��m��n�����R���z2�`	i����P�s��%��%�������������������������w��'����������������„���n�>��������������������C������������o���(�b�ٵ�ڎ�S��������������������������������������������������������������	���������
����V��U��T��������Y�Z�.�V�����R�����������3��Z�X�.�S��X����U����7��W��V����X����8��9������������������������ٳ������������
�����������᫄4	�j���������N��O��Ą=��Ӂ�
�~;��p�4���H�Z4���J�Yh�x%5������������������������	�G���������
�K����
�E����������K��`��a������	������Յ';�_��f��g����������q7��o������We��6��e�����f�`��i�ڋ�ȊoY�Ԇ<�����…����U��������V��l����������������� ��́�����������������������������	��T��q��������ˁ���������Ђ����ȁ���������k��l��8�A����|�z�����&�����������������Ν��#��$����l�ڀ�����n��D�ځ�����A��߁���������������P��9�^����v
�q��g_	��,������2�_��Ձ�����������.������r��یV�!$^������~��������������v��������x��w������������:�/��J6���օ���;��i��&$����{��|��}��v��3����4����U�$��+����������������k�瀁������烁���h��[���2������������5�5	D��������������	����l��o��n��m��p��q���������������������5�������突낫���	6U
	�񂵁�	"!	���=
	
5(s"!T	��W;K��[�s=
���������с��-�ڡ�ڟ�ڠ�������ڢ�ڣ�ڧ��+�������ڥ�ڪ��>�ګ���ڐ�ڑ��e������R��S��f����g����ړ������F��=��>��A����3���ڔ�����ږ������Z��h5����2R���^��j��k�ژ�����ڙ����n���H�=�گ�ڰ��������������-�����ښ���w��.��/��%��(��'��&��)��*�ڭ���ڮ����m�ǂ,X��n�����<u0��
�h."�9��A��4vWT
(��&&zfZ����:.�{T������|�
������z��{��t��u�ܨ�ܫ�ܱ�ܩ����������k��l��m������}��#��$��"����~��8��9����������������-�����ܹ������ܺ�ܻ�ܾ�����呂���?�咂���>�ܴ�߁�����_���������������ڻ���Xd�=�߅��c\���ȁ�����>��?����@��C���ܵ�[d�=�߅	
��Wu�1j�݊��ܷ�ねX��������o�F����B��C��p�F�ڴ��؄��8�����V��W��\�ڷ���#�X���ڸ���ڹ���ڵ�����Y����ڳ��ł\������������������寄����u/	��u�;�2�� =	��2{QM#��#(	
d	���J����������6�����心t	�ܳ��!k`��u������!���ܬ�Ń9����``	+���Ɂ�	�����7�I��8��9����r��s������������������F��G�������������������������F0�oZ����6���������������ڽ��[��\�ھ�=�ڈ�i���
�����
���������������������������������������ڇ�i$�ڂ��F�����P��&���	���3������?��@����B��C��`��a��H��I��Q��R��E��F��]��\��^��]��^��V�
��������b����E���W���E������Y����]��>��b��c��^��`��a��Q��&�����2��P��G����`��������������d������f������F�Ε���������������������
��������2�������������
����������������������������	���$���$�����ចf���������������������������������4����	��
�����ڿ����$	F�l��
�zF�b�͵��G��N��O��P��H��I�����ޚ����۔�ە�ۗ�ۘ����$������� ��W��X�!�"�����Z��]��\��[����^��_������(_������������������+ ��{�۞�۟���
�(����'������
�'����*���������������������$	
,
������������������
����������������	��S��������
�����x�h#��������T��U�����偵�@�r�ʄ͇t�����e��}���ހ��~�ބ�ޅ�ކ�������
F�q���ލ�ގ�ތ
�ދ
�dž��ފ�ޑ�އ
�ވ
��������۝�H�!�������������ߌ�����ޝ����F��+����E�l
��
�u2�W���ޜ����������������Y�Nj7��
����ۢ�ۣ�%�&���τL�|�Ƅ��r�����������������������������܎��ޟ�ޠ�ޞ����ۥ�ۦ��`��a���������������������&�B�ۧ�ۨ����=��D����K��AJ�̊�s2��
������	���������O�P�����۪���������T���T����"��#���� ����k��l��������$���i�0��p��������'��y�L�����(���������<���>��j*�:��l�d��K��M��L�����I��J��-�Q�R��%�����-
	��I$����W��i�R������&�b���j?
��W�����i>��b�����Z��o��x��p��q��r��s��t��u��v��w��}��y��z��{���Y��|��m�f��Ń�.O!)�H�̀�Y�Z��j�U�V���W����Q��R��S�X����V��S����T��Ą���ń�����-F(�H��{����������
��
��*����+��������)������K����V�����)��W�������r�`�e�f�g�h�i�j�a�b�c�d�k�l����r����������K����*��$��1�܂���*�߈*��X��Y���޿�M!:�r��?%����������������e�������������������G��[��^��\��]��L��������O����P������9������K���C���C���J��,��@�䁛'����A	��u2�����������	������
����U�[����F�Z����.�ީ�ު���J�����}���;�C2�������#��V�CT�F��e����L�M�޻�޼����������������
:�Ղ
����cK�u
���z�Ή��"������������;��������9��	��8��Y��Z��6����������������7�����޳�޴��퉑�����������	���������������)���m
��	������!����������#��$��2����������8	O��	��
�����)��0��������a��b������������������������	�"����]Y����
������������������=������D
��A��?�����F���R����N��O��P��Q��R��T��S�����.���F����9�������<�������4��9��:���o�r�s�t�p�������W#�|������z������{������V!�~����u����2�τ��I��x�u�w�x�y�v��������:$��3����x��9��DŽ��Թ�����-��.��/������������
����q�J��"��#�������������������٧R�y3�`����܁���F��Y��C]�����&"�>������� ��A��D��E��B������
����������"��5����������������������������2��2�����/��2���%��8��7��������������ى]�������������8������;����=��>��<��:������9��������_����`��a��	��
�������������������������������&��d����e����#�����i��j��$��%��D�f������C�f������F��G�����l���m���m���!J����y��~�����������뀅X+���+��P��O�����۱�k����� ����k/s��l��n��m��o��M��N�۷�۸�독N���������������M�c��P��Q��R��O��N�^�	����������������������������������������������ށ�
�����u	�ќ��+���������۰���B���u	�뎅�������������������������������������w�K�����z��x��y�۲�W�����8���;2U
������c��B�_�F��I��J��H��C��D�۵�P��{)N��J����b	�������Q��?��A��B������I��J��L�����������۶�P�J(N�a���D��F��G��H�����\�b�����b������C�����������������������۹�E$-�d�FD���������롇"���������렇��,��.��-������9-�*�ƂA����B����˂B�������ۺ�Y$+�����@D��ƃ���7-�^Q��9����Q���L����������Ύ��V��t��ωa�{�(�������/����0�� ��������(����Sq�6�A	��U��������������������������������6�>	��U��l��k��m��s��w��t��v��x��z����`�x�'���� ��"��#��$��!������2����������
�~���
�:�]��~z�ԁ�������������'����������������������,��.��%��;��<�� ��N��=��`����>��6��7��@��'��(���'	
����+��C��$��D��E��:��K��L��M��N��O��Q��R�������믆�����0�����}�F�~��g��Z��u]K����������	��
�����ۉ�I�N�/����������������}��~��������
MpK��������H�2�[��I�1��K��{�Z�����������������������������������������������������������������������|������������������������� ��n��q��r����v������������u��v��F��G��R����������� ��!��������W�����%��'��(��&��\��]��^�뿄��������������������a���`��������������
�҄C��/��0�������٨^�o2�\�w����A���PY��'��%|?il6��!�&
����6��_��>��?��օ~��������`��X����ϙ���m��������v��p��-��.����		��l�����s��ЄȂ��ѣ��B��C��D��������������񛁙����A��)����^oL ����
������_����*�5\��������H��7�����~;����<,��x�5	��������񒁡���σd��

����i,F
� ������������	����������
���������q�S���p�R��4�ׄR�ڂ���5�)���������U����W�'��������~�������������+��	�
��F��
�������������������	���9��@��:��;��
�񜁜���k������?�i$
*?iW,4G.��������}�!��|�"���}�#��^��}�#��&�ԉ_���R���Q����_����������������w��x���P��m��n��p��!��Z����\������������]����[���1[��#a35�(��`��a��b��c�뺆��:��_]���Ӂ�16�+�����l��i����g��d
��e
�빆~��m��n��o��"��#��~����<��	��=�����
���
���	��������T��S���q���p������{��z��|��}��	��
��h��
�; 5��T
,49(��!��m�������l���r�������p�����Pdm�$�������#�����o����J��K��}�Ž����������ۀ����~��������3��4���g���,��-��+��)��G���J��L���v�����'��)��E����
����l
�X����������������a�?�Â�������������/��0��������3u�W�����������������������������������٬v�����ꂷ����<��=��S��T��$��%��@��A��B��C��?������(�)�*�/�,�+�٭v����2��������ꅧ��'���2��(�WT.�
��-�um���݁���������]�c�TO!?	��fArg���޺��#��l�������M��X���u��}��P��̊I[��Q����V�o��M���N�ӈG��O���T������������������������k��l��m��������j��h��e��v��p��q��r��t��u����
����T����`��a��j������t���{M�Q���0��te����
���������������������u�����%��5��u���yM�R�6��-�������u������*��+������������_��.��S�t��/����(�t�����������������������Q�t����r��=�3��1	�8��8��4��<��3��2��5��6��>����?��Ɣ�G��H����I��J��8����@���`�X�ԇ؊NG��n��A����F��ɔ�G����c����������b�����������$������������������������{��S-�t��w�T�������!A��j�������������߄��8G������������.V5���br�パyl�-�������'7��l����
������g
��h
�߇�߄��x�߅�^�߈�߉�ߌ������ߍ�T�ߎ�ߏ�������i��}�m�����~���������������6�X����m���|����
�������&�q�������������߂�V����߁��g����y-���!�@��i��������^�����{��o���FeL�F�u����c��dc��f������ ��"�����'�<��'��+��*��(��)�;�������͘���Θ��� ��!��"��%��T�:D��,��-�������و'�_I��	1L7	��
>�����y�N�=��&���������B���t�;�ߖ��,��D��,��E��<���D��=���C��\����b��]��^��~��+��V�ƒ��,��V����f��g��d��e��K��������G��H��B�����D����F����s��7��C���T��I��K�»�¼��L��J��u�¿��O��P��+��h�Ǝ,�'�…���m�T������������������n�’�“�‘�–�˜�—��������������������������������������0��1�™��i�Á��������������}��j����,�S%�����;�8����������������|�ߴ���ߵ���¥�¦�¨�©�ª�«�¬�§��G�U��t�M�NJ��8��;�x�NJ��������.� b����
������/����0����S��P����2��,��4������5����3��K
��L
���ҁ��=��7���f�;�����8��;���9��;���:<�]���q��������o�k�������������������������������������������p�®��������q�i���6��������������r�i���­�ٔ
�3���[��-�Y�؇x���G�ɇh��-�#��?��@��=���°�¶�·�³�±�������܃���܄���������ي
���^�D��
�s��
���f��-�$��x�q�������t
��w
��x��Y	��Z����n�������٘���������������������������������0TM���'�������ݫ�����������݆'�ݳ��O�ݴ�ݲ�ݱ�ݰ��F���ݷ�ݭ
�ݮ
���݊�1�����]��1TJ�у��J��&������b�������������ꥃ��N��������݅;��������������݉<����������������ى&�
V	2
��9%(*
	��
3�����r�K�<
��$8�!�_��!��fB��>P��
������
���‡���������ˆ�����ܖ��R��S������ܗ�ܚ��
������������w������{�N���^������َ���{�C�v��6���F�������������\�����ُ�������������š���� ������%��&��'��(�ٖ�1u>�(/�-�H�%����{��3��4��g��›�œ��*��-��)�ٚ���	�%��9�ߧ����5��/��0��.��1��2�������ٗ������f��g��i�¢��T��M�ž�Ÿ��U��L�ܓ���£��3��4��5��6�ܔ���ܛ�#������L��M�ܜ�"�ً� �����Š�‹�Œ��ٌ�ٍ��������
�Ž��߫�߭�߮�߰�߲�߱�ّ���3�������������������������������������������������ܑ���������������������������������ƕ������� ��������#������������	��������ߚ���+H�?��������������"��!������������(����)����*����-�����������
���"���̈́��������������ߡ�������
��!����v�����y���x��������3��3��3��2��Q�������ߝ���*P�?�s��S���ߛ���D�������������������U������������&���ҏ��]��V��^��]��_��`��X��Y��Z��a��b��W���e�����d0��f��n��g	��h��i��j��k��l��m��w��e��v��x��s��t������p��q�����Ú�Ù�Û�Ü�Ý�Þ���ß�Ö�×�Ø��{�Í�Î�Ï�Ñ�Ò��}��~���À�Á�Â�Ã�Ä�Å�Æ�Ç�È�Ê�Ë�Ì��|��������+g�قJ�t�b2T��y8�����(Z
€E�?�2��~�U���������!9��������
���������������q�r�T�U�����S/����!G�!D�!E�W�X��J���!;�!'�!'�!>�!A�@�A� �� ��
�D�ₛ�A�(��0���
�h�
�h�]�)�*�-�^�D�E�W���f�g�
�
�t�"o�"p
�X������5��$�
�
�V��>���1��"����Q�d�e�O�P�F�}U5���n�p�q�o�i�l�j�k���G�|���������������V���B�6�T������N�W���u�1�����"��M	� �!���#�$�T�U�
�D
�ق��>�"����
�����w�x��$�#�%�
$���M������M�
�
�
�
�
�
�
+�
-�
/�
0�
,�
)���
�
�
���M�����&�
!
���
4�
"
�
2�
�
#�
%�
$�
�
�
�
�����/�+�"�[�\�Z�"�a�b�
��́���������X����I�e�����"����E���"�"����E�����������������u���������熮���@���v���d���$�#�f�g���
���
������ĄZ�M�
�����������
��
��
����
���f��������
��������"����n�"�(�)���l�
�F�́�����5�[����D�a�������
���������������	������*�������
����ك�����X�J�O�
����P�R�
����ك�
�m�N�
����U�������������������8;�������,��"
�"�������������&<�'<�(;�*�!v�!w�6�o�+�����8�7��C	w"r�v�����r'��)
��?�a! �}��30

���
D�
E���	�����
C�
F�
G�
���
��
������n�j�������́����
��
��
��
��o�i������ˁ��3�
R����m�'�(�"��"��"��Z���
��
��
��
��
X���k���0�1��k�
S���k����j�!��
��
��
T�����m�}�%��"��H������Z��k��\�]�.�I���
Nm�-�gj�]�I�7��-
!��{�����-����"�p�q�
Oj�-�ij�]�G������-�
���"��k�!����"��"��
\�
[�Ά��������������&�9�������;�<�_�}�%������C	by�z�����q'�U+	{>�}!=
�s��30�v�w�x�z�{�y�}�~�$��$�������
���������
L�
`r�������������Ԃၱ��3�����"��"��"��"��"��s�u�t�
b�
a�q�r�
H��]�6���σ"$
����:��;���L�
d�
e�
f�������������������
������������-�_�
��
��v�}�������+��$��1�����
g�
h�}�~�����������
Q���򇞃U������������͉��������
�{}���\cs���?��.���
�Z
	�����;�	���	����-�
��������L��� �����*������������������������~�����و�>��C��F����������������A����������.��.��-�����������
����������/�������@�A����!�������v���������������������!���������������������������r�z����������#�������������k���������������W����*��)�E�!�A�(�����������������N�����҄_�O�����������P���������ƒ��{�����y�z���������u�v���f�@+������p�q�����
���A�������>���Y����AL�;�"�#� �#�!�"�n�o��G��\�I����@L�E�&�'�(�� �������B��)���z���C[F"���j����@��W���GJ�Ã��M[E���i*���E�������������˃j+��
�����������f���k�g���T�5�;�=�?�<�H�I�����D�E�G�K�L�@�A�6��l�����D�E�C�݄��������B�����������
�=>}	��	�\���;s.����P

'���T8�7�����������������4���s�P�@�B�C�A�Q�C�1�7�>�:�����?�9�8�;�<���Y�V~�����1�[6�6�7���
�������������bN�5&�6&�\�]�����
���w'���g���B`x$��B�!
k����	�;�	������������1���)�*�����o�'�c�i�l����x�'�؃*���)�d�g���������f���e��/��Q	���*�8�?.�
e�S�2����`�r�1��'�(�����&�F������/�'�0�^�_�G�
�W�.�(�R�
�����_h��1�����$5�b�c�d����������I���������w�x�f�g������(�O��j
�g�(��X0��Y+�X�Z��b�[�ņh���"���#D��� Ce���#C�#2<�#<�#4	�#6�#8�#;���h���1���#?�#@�#>��
��	���������#/�†o���������#��������
��p�x���
����
������
��������������#��#����������#��#������������������
����
��������]�^����e	�f�o�g�l	�j�h	�q�_�`�c�d�|�}�z�{��!�������#�#��|�τ���!�y����$�·b�����$����������������d�������} �i�ك�f���y��}�����������������;�<�����#k�����������#h�#p�#q�x�#l�#m�y��]�����S�
�������������������/��/��/��.��/�o�p�~@�X�Մ����(?J����}�#z�#{������!�##�#$���t������-�5�6���"��"�����B�(>6����	���(�#�#	�4���)�+�1����/��
�#
�#�,
���-
�������������#�#�#�#�����0�1�2�#�#�q�r���B����������C��Ȉύ��c��b����_����`��`�#��#��#������������ ������������#������#��#��
������#�����Q�����
����
����
����
����
����
����
��
����*�*�#N<�#O�����Z��������E�#��#��#��#��#��#��#��#����^���\�#��
�1��"�97���i
���J	�"��X	&Z�^��Y+�s�w�x�t�u�
������L���������������������������������������� ��<���c�4�5�����������������b�
��C_�����
��Da������������������j�k�����l���S�t��8���#X�#T�#U�#Y�#W�#\�#]����	�����
��
������
����
����
��
����
����
����
����#c�
��
��
��m�n�
����(� �'�����
��#I�#J�������#^�#_�
����
��֍�#a�#b�
��
��
��%�*�&�"�#�$���������h���
���G���*���ǁ��$�y�
<^}����� � ��!� � 
��!� � � � ����� � ���$��������	
$���9�`�q���ǔ���#������ˋ+4�̋_���������������������‰�����������&��&�ה�#���%�
����#����#���*��#��#���
#���9�\�q�������#����$!�������#��.������.����� $�������~����h�
�����������
����h�ނ� +�  ������������� %� &�����Ɉ:���.��&�'�����)������ʈ:�ˈT�����������
���G�S�������������M|��5�������҈(�ӈ(�����ފ��������������N�������U���#��#��I�?�;����T���N�,�����������������I��C�7�F��N
���6�^��������
�����������������
�w�'���(�����h��L�0��$�$������
����,�-�5�;�6�7�,��)��*�+��	���
���I�J�"+�ф��O�N�P�Y�Z�2�3�#+�ӄ��[�\�R�B���$������]��|��|�_��W�8�1���G�������}��T�;�����f���$�$	�$
�$�灂�遂�ꁂ�聂������������m�n�������������N�$���m���#��#��#��������<�#��#��J��CK��-�M	��$�9�]�~�$�$������$����������������������r�A4���������u���H��3���L���������!�e�큥�FJ�GI���w�|�}�x���@�������������q�9������#��#��#������u�9�!�����r�7������s�Y� ,����������-���4���K�:$
�����<�=��S��S�"T�����������T�U�������]�^�X�Y�V�_�`�������
�6�Q+�����������������
�a�b�O���0���;�A;��I��P���3���'��� ��F��Q�R���c�e�8�����7�L��&�%���1���l��$�|�,�-�����������������M�#�8���Z�[��f�g�h�i�P�Ň4�F)���������݁����������������������������������������Z�[�����������������6�F�5�)�D���*�m���=�񁫁��~��Cp%�����kKN'�4��!��
�"Z�"[�ڏg� B� D���i� F�}�~���C0�D0�I�]� K� L� N�E���F�Y�Z� O� P� Q�"Y� ;�� <�����������s��"�������
��	��}����~���/���� �y�ꁢ�끢�n� 0� 1� /� 3� 4� 6� 7�t�u�������o�0����
���
��M���	�㊋�������������������?^����)���������\�1�7��2�3�?�A���������
)�A���l��b��� ?� @��n�r�8�(x�9�(x�:����

�~�p�tCp �؁��5�KI'_������
�����>� 8� 9�<���A�B����-�H�n�����n�������=�O�Ԉ��>�����U�W�V� V� U�b�c�:������P#8�Ɂ��Ԅ��w�v�|�k�f���h�g� H���p�d�e�q�����y�o�z	8���m�J�K�O�L�N�M�R�Sb�T�U�u���o������� =� >���g�����������������g�����g�3��������$K�������C�{��(!
#���c�m��B��g�
��`��=��F��
c4!C
��*3�.�!�� c��� d��� h�����!��!��!�� e� f�!����$h�$i�$j�$g�$l�$m�$n�$c
�$d��� Z�M�!��!��!����S�T�!��!��!��"C�!��!�� �� m�R� k� l� n�R� o�R� p�!��!��$��!�� �� �� �� �� q�!�<�!�� s�L� t��������������� [�!��!��!��!��!����$~�$���턱�$��!��!��!��!��?���������
�$��$}�!����!��$��$����.�߈}����� y�������.�ڈ}���ׂC�0���'��J�!�S�!�R�����Y+�����Y+� }� ~�!��!��!��!��1���2���˂`�l��9������� ��(�k���o�I���*��
>���P���@�
?���� ��!�U�!�U� ��A�A�Z�@�����������!��!�� �� ��[�]�^�!�U�!�T�\���!�V�B�C����� ���\� �� �� �� �� �� �� �� �
� �
� �� �� �� �� ��!�� ^l� a� _� �� �� �� ���IF���2B�:���18��d��-�+�&��j�
�����l���i
�B��;!'�Ӂ���G�����!������������ \� �_
�����������������!� ���� �� �� �� �^��� ����!	�!�!����ݎ�������������������.���������� �g��������������	�D���E�!����������������������������>�G���������!������������������F� b3�����
��	���l������<G���
�!��!���������r�х�����
�������������`�c�a�d�e�!��!��!��!��!��"��	� ��[� ��Z�!����� �� �� ��3�r���$��
j��7;��=��`$
	/��
-��.!��B
���@R���P/"h��OG�)U��*2��S
	�X�����������������b�!
�B�T�W�U�D�E�C����F���
�F�\�:�>�?�;�����ڌ��a'�����������������0���)�2���(�5�"�=���>�1���)�����r�����!7�����!6�����E2�J4�~�H1�F4�����s�h���i5�j5�k4�m�
p�F����N�������������!%�����!&� �� �� �� �� �� �� ��a�b�����������e*���:���
q�삳J���d�c�E�����wG�d�
x�9�Ђs�8�k��9�d�e�����L�!/�!0�����M�tE������ȂS��8�����!M�!N���vD�����������Ɂ������������������
y�ʂN�ԁ˅U�q�2�e��8�e���������h���!O������;����
���%�ی��9�"c�"d����	�6�7����	�!���������������
k�
s�����m;��Q��F�Ȃ��%w��WG�Á��؃]�f�S�!t�!u���������(���O���������������?�؄��+v��� ���i�� �����%�ی��x���$�#�
z��/����(�����������!e�!f�"L�"f�!T�!U�����t�E�t�!W�!X���{�������z�!Y�!Z���;�>�<�*��+�,�-�1�2�3�.�/�0�������5���
{�6�7�
|�/;�0;�8�9�:�?�@�A�1�!��� �E�F�G�H�I�J�C�D�4�5�N�2�8�|���O��� ��L�M� ��$�P�F��V�%�&�'�(�G�k�)�&�&�
m��7:�5��U$
7��
-Wg.��5
����c@4
��,!c��KC�p��)0��
G	�"��l�������m�����"��"��;�<�����g���g�9�e���L�e���
��!b�!c��������
�����%K����������������ǂ����������������o���!�!�!�!�!�1�
n�� ���8������ �&
PM�x�M�>�����l��8�m�����n������� ��
o���������������U�����w�3B�U�Y�X�V�����}S���R�~T�����҄
�����	�����營�|H�Ą���
�J�K�����N�����!_�!`�ւ������j�z����ׄ��������%����bG�
���"2�"3�"4�ǐf�".������	J�b����O��O�����$���Ɂ�N�V3���ʂ<�Z3���"6�Ȏ��$��$���.?
�҂k�
�a�05��������
���������������(�)�������	�������j�67P���҉�5���k�:1P�����$��$������!(�!)�����>
�΂k�~
�_^��3�$�����H���5�����#�!���"�*�+������)�$��$��$��$��$��$��$��$��$��$��&N�&[�&O�&P	�&T�&Q�&R�&U�&V���%��%��%��%��%��%��%��%��%��%��%����$��%��%�	�%��%��%��%��%�	�%��%��%��%�	�%��%��%��%��%��%��%���ށ��$����&��&��%����&��&��&��&��&9z�&:|�&��&��&��&��&��&��&��&��&;���&<���&=���&>���%��%��%��%��%��%��%��%��&�%��&F�&I�&H�&G�&J�&K�&��%��%��%��%��&��&��%��&��&��%����%��%��%��%��%��%��%��%��&��&��&��&��%な�%䁪�&��%��&��&��&��&��&~�&��&��&|�&{�%��%��%��%��&�&�&�&�&	�&�&�&
�&]E�&b�&c�&d�&e�&f�&^�&_�&g�&i�&h�&k�&o�&p�&n�&m�&l�&s�&�&�&�&�&�&�&�&
�&�&�&�%��%��%��%��%��%��%��%��%��%�N�%��&�&�&�&�&�%��%��%��%��%��%��%��%��%��%�\..*�&.�&/�%��&(�&)�&*�&!�&"�&$�&%�&&�&'�&+�&,�&��&��&��%��&��&6�&7�&��&��&��&��&3v�&4�&��&0x�&1�&@�&B�&A�&C�&E�&D�&��&��&��&��&��&����$��$��&��&��&��&��&��&��&��&��&��&��&��&��&��%���������$��$��%��%��%}�%~�%�%�$��$��%c�%f�%d�%g�%%�%`�%"�%#�%$�%&;�%b�%(�%h�%i�%)�%�%�%*�%+�%�%�%�%,�%-
�%.�%2�%/�%0�%3�%4�%7�%:�%;�%<�%8�%=�%��%��%��%��%��%��%��%��%��%��%�%�%�$��%@�%A�%B�$��$�H�%D�%E�%�%�%�% �%!�%G�%H�$��%I�%L�%K�%J�%S�%W�%Z�%[�%\�%]�%^�%X�%T�$��$��$��$��%k�%o�%l�%m�%p�%q�%r�%_�$�	s�%�%	�%
�%�%
�%v�%w�$��$��%y�%z�$�@�$��$�
?�$��%�%�%�%�%�%�%�$��$��$��&��T��F�������"��Q�?�Xx�cW��dL*����B�b����@�H�� ��7�Ɇ������L�dKR���R�>2���.)��^
z�=�;������|-L������܅��_�_�������T�������B���‚���n�������\��2��\��\��\��2�������_5�_7�_6
�_-����_.����N�_8�_9�_;�_<�_=���D��B��C�I�I�����r��UN��_�иm�_�����P�
�_��E�P�
��`�ϸm�q��࡛?�e���7>�_@��
�_A��
�\܃<�������o]��	�L�����E끮�‚�����������\��3�G�z�����
�_ �������_ �_�_/�_4�_�_�_#�_&�_%�_$�_"�_!����H��H��_B����_C����T&�i���Q	���Z�\���7�c�����>��^�,���2���<���Ձӄ|�����>�Gɂ��Gʂ���w�N���x�N���y�N���z�N������D��D��Zy�Zz�T2�(�Y"���gK�Mc�W��������������T6�T3�&�v�gF��N�����,�Z��Z��Z��Z��T4�T!'�!�=�Ć^�l��;��	�Ee
�s�����w����Z|�Td�Te�q��q��q��T_�Ta�T`�T*?�]�͍&�eI������J��f����x����FH�FI�T'�T(�T"4
��=	���Z�l��:��	c�CJ��
�~�����u����T8���D��D��T9���T:���r��r��r��T;���T&>��6��ql��a�^�Ec����c�r������Zx����To�r�����j�Ec�FK�����FN�FO�FG�C݄��C��Zo�Zp�T,�,�*�߆T���/�c���M�]��
�������Z��Z��Z��Z��Z���|�T[���Z��T-��	��!�G�c��	�R�D@���7�Z�
�Z���W�	�Z�
�Z�
�Z�
�TF�:�D�ύ�#�Z��TN�TQ�TR�TO�Z����J��Z����TT�TU�TV�TG�0�B�ܯ�Z��TX�TY�Z��Z��Z��Z����P<�r����BX��BY��Tu����Tv����T|���������T}���r��Tw�Tz��x �M�DT�T{����K��Z��Z��q��q��Tx�Ty�r�����Z��T/������DQ�T0����^����_���D��D��T 	)�/���N�"����c�,�����>��]�%���$��
�.�����N��n�D��D���l�������������m�Tq‘u��Ԃ/�c�U8�����T��T����������j�D��D��T<8����X���‡��"�c��(�I�a�����t������S�Tl�n�Tm�r��*�e�N#�������@��@�����������TA�TB�Tt���#�������l��p�����w	����K�K�K
�J����J���d�N ���r��r��r��r��r��r��K�����Ti�Tj�D��D��K�T?�[�qg�W��������T@��u�IW�IX�Nv�O��O��U

�L����"�e�t!w�#����1�<������b��t�
��Ȃ7�t��B���2?����
u�'�����ǂ���}���������EB�C&���������l�s�I�J4�J5�t%�t&�b���3�
���t�t �I����G��G��G��G��G��Jr�Js�t"�t#�b���2�
��4�G��G��N��t�ӧ�t�_�9�ߖ��p�IQ���a�q��q��q��q��_��_��\i�_��`)�|�"�f��I���������������_�:�|������F�������_��_��_��_��_��_��_��_�3������p�IN�^�F�`%���	�f������
�f�N��t
����E��q��q��T������T��t(�t)�`�K����`��"�U���
'�x���F�<���cy����`	�m��������o��v�N�E�����D��E���G��`���G�����W�Y�Z�[�X�`�?��
�O�P����������������U�
��"��C
�5�f����`�g��	��񄸅o�`�G��G��P����`���r�R�z��q�����������q��U���`�`	�`�a�t*�t+�[_������r'��
	���������������������tF����p��r��˂r���/�p����������������[`���	����r'��
	���tE����&�\�r�������]�r��A����r�B��U
�/����
�e�t
p	��������;�
�����b��p��ك&�r��=��>������"p��|�����m��n���끃�BJ�BK�`���B��B��`���s��s�����i�������������p���[�]��9�n�����/
�H�����b���������A
��p�t-�t.����t?�t@�U�'���p��KC����U����'����U
���U���`5�_�7�l�������f@������������`;���p������������`6�`8�`9����`�
�����
����n@�X��`�`�O����n@�X���������p��A��C�����
�������t���݅m���J��J��t��t��t��t��t��t��t��t��t��t��BՉ�B։�U0������J��J��J��Jᄵ�U1������G��G���8�Q\�J��J���9�Q[�J��J����H%�U �J��J��J��t�"����K��ބ��AR�J��G��G��AS�t����K�������D��D��D����J��J����[f�[g�t��t���<�t���H�t��t��t��t��t��t��t��J��J��t���"��t��t��t��t��J��J��J��U2���R�p#�/�5�Cx�J��J����U3���Q�p!�0�Gt�9�D�D
���G��J��J��G��t��B��B��t��t��J��J��J��J��J��J��T�W,B�m��2��0$.
,�쁠�R	�����J�e`�<AF!	�qE��oQ/��y�h�I	p��N
	&������+SP��11.�I�J5�#PI�Q������z	W���H�Ah�����F����H�����I�Ä�V�K�F��sh��)�R��si�׽�s�s$������s%����N��N��A
a�S���A�A�s#����D+B����D*@�@��A�������K�s�s�s�F�����N{����N{�F�����T��T��T��T��T���l�@��K�s,�s
,�s+�s	(��F���
��x�t���?�.�t��@��@��@��@��s��T�y󏬽
��x��U�������Z*�`�t�����D��D��r��Z0�a�@�*�@�*�@�&�@�*�Z1�a�s(�s)�Z-�]���Z+�b����Z/��@�T�S=)��݁�����eZ���{��	�쉘��0��#������sB�\�]�r3��"�sC�sA�[a��,�J��D���z�UX�UY��{�T����瞸�eX�򆅅������3*���ۂ�������� *�r4�ڗ�@��@��r5�ږ�U]��M�D��D��D��U_��M�U`��M�T���.��������eS���y
���������/����������G1�T���������eW���{��������ۂ��r:������������r9���r8���sF�sG�r;�r<�T�����7��������@�ł.������@��@��_�T�P��������
$�
%�s�T��Fm�Fp�Fq�Fn�Fo��R��S�������T���J��K�U+*
�(�I`
$�쁝�N����ei�тoHu���߁����:t�_�g_�ˁ�g����S^�s�p�a3���y��܁��X���@��
��
��te��K�tf�BكY�B��t��t��B��sp��F�����@%�N��@��U$8�{["���t��oDu�����q�;�Ϸg�*�+����S��������t|���q����E�to�t~�tp�t��q��q��U*������Jg�w��ǁ��tT�tU�sj����ކ�,��3����s�tv�tw�tx�ty�tz�t{����������tW��T��H�sk�����O[�������D��D��D��tl�ts�tt�tm�sL�s
�����
�������s	�����
�sN�ͨ�L��L��sO�ͧ�G��@��@���������������������������s.�s/��M�r�I8����q��p�@��@��.�/��P�Į��������st����������sw�sv�����su�sQ�q��sx�sR��R�v��J�����C���S�a2�T�Z>/�U��3���P.(��6k�T�����I�e]�4@? ����nQ-���Eo�_�@,
%�������#EV��1'�I�J5�o
D�G	�����sY�	��
�sY�sU�sV��
����
���sZ�����������B�E*�E+�ZÅ��m�A�A�@��@����Q�����B������U�s\�G��G��Z����U��9�e�OX�����U&�b�WU��t�w�G�F��a�������P�q���r�z��^��`��^�K6�K7���������A�D��D��A�D��K�K�K�K�D��D��D�D�������r��r��T�/CK�.����K�݁��[����.���e<)�@Dx�Ԃ��΃x��B4�������V�H4�s������Dz��q��s]�s`�s^�s_�AA��K��F��a��w����D#�=�����D����AD�q��s �U�q��s!��u�q���v�q��T��h^������l���E�?R���с��T��#Z�A@�s�C	���h�ta�s�t]�t\�t[��|��}�t^�t_��0�L��Uj�Um�Uk�Ul�L���b��c���x��F������x���m���p_�W����s&�s'�G��G��_���,�_��Fv�Fw�sX���q�����T��s�sb���t�w�r�AD����A�C��L��B��O��B��S�D��ȾA�B�1�s.��t�s�s�Upz6
	)�5
����$�X	6a57^�3*����/$!fIHD��	
�2�X��	�c�/)
 ����F����"��
��	�7���
����K���`
���-��n}M��	
�2
����4-	��
���0
���{��@�����U��H����>�p��O��O��p��p��n]�n^�U��H����@�p��p��p��p��p��p��p��p��p��p��pԗ��p��p��U�6� ���,�s;�DY�H��q>�q=��y��z�q:
�q;�q<�qJ�qK�V!�5��Q�q9�V"�4��i�V*��E��!�+���AD�rC�x����v��v���y����z�qM�%6�vr5��w��x��X��Z��[��e��Y��]��^��W
��a�������u�J�K���i�qN�qO�U�D�>�؅(�����F����U�D�>�؅(����J������U��%������������u��;�AZ�qP�qQ�pE��p�������U���Ӊ"�U�	�L�����)�uT�uU�uV�U�Y�U��R
��(�U�Z�U��Y�U��X�uP�uQ����Uu^�T����e���H��JH�Uv���J����q?�������A�!�>��n��k��o�q@�����Dv� �>���l����Ur�Us�u�u�K��K��U�#����	oP6����x��m҂����ǁ��t��L����o��o��o��n��n��n��n��:�u9�E<����E=����v{L����=�r�q�q�K��U��v}K����v���oZ�o[���HU�s�rT��GE�rU�ي�_��_��o_�L����u@�V���X��E�������H��$�V�V	��5��8��6�V�V�V����������S��V���|�V���{��*�ob����V���v�V��V���%
��&
�������������o]��i��j�������o^�rD�V��V��U�2����pZ/�����.��m΂����ā��t��L����U��U��oe���vx4��9�vy3��u�v��V����{����oh���M���oKH���8�oYH���8�o��o��V���c�����o
�rW��G�rX��G�n��n������mE�mF�mH�mJ�mI�I|�I~�rE��;�I}�U�F�����U�F�H�H�rY���Ad���������N)�K��n����n��n��U�t���~��2�=+��	�ل�B.7;
�r�ZA�,�c���!�z�����j���܁�#��
���ox�oy���oz�o{�m��n�K���䆼�o�������������������U�L��C��(���U��U��U��U��U��K��U�K���$���v�v�U�����U��U��U��U��U�	��U��U��U��u��u��U��U��oP���v
�����X�3�pW�pZ�pX�m!�m"�U��v�����W�������VV�"��03��!��,:7!��'�f�����L��b���c�V,V�"���	hV���������������p;���������K��K���{�3������|�3�O��V>�VA�V?�VC�VD�VF�VG�p>�ۄ�p?�ۃ�U��U��U��U��U��U���z��1�)'��	��=��*5;�r�Z@�+�c����z���&���A�Ӊj���܂��
��q��q�����m����MQ�m����MQ��<����
�A�p��͆����n��o��o������������U�Z������{/��%���#.*)
���ӏ�f�����u�OY	�u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u�����������������u��u �u!�UĠ�]�u��UàxS*8������q݄�b���u��u��f�p^�p_�p]�pL�pP�pN�p�p�u�]����p �y\�p"�oR�oS�o:���&���R}�o<�o=�o;����o@�oA����s2�������q^��S���-�v�S���v�R���
��K��K��K��K��n��R�Vr��	
������o=�
�pI��x���7����R�����mR�m�a���o��mO�mP�m3�u�w�o��`���o��_���mU����mX�mV�mT�mS�a�\�����o��o����� �����������!����=��>�o����o��o��o��o��o��o��V{��6w�U}����'��Â�!�h�z��'����N�K��K��K��K��Vz�U����U~��$�����9�‚�������Ix�w
�V~�₹�����y�w�w�o�o�U�����5���'����oV�o&�V�����o$�V������
�V��q�)�V����V����V��V��mt����m|����mu�����������qe����my����mv�mw�qh�Uz���6��v�N��������mf
��偺���U{��
�5��u�'	�mh�����G�mi��D	��B��?
��@
�me
��聺�Vs
������������
�9lEy
x������R�qk�o+�o,�A�qn�H�qj�Vx��6z�qo�Vv��$�M�3��]���ʋh�A݂��Vt�Vu�o��o��o��o��o��o��o��o��o��u��=���K��p����p�K��p�p�U������3���A����U��U��o�u��U��U����m�m��u��u��mb��7�N��H1�H2�VH�U�߂+�����<���rW z';
�J���
��#�df%����z	�����	
���׉ַ�����,�!���������G_����a�&���n��n��������|u�o�����������oقO�oڂO���������m��G	�������„\�O!�o���o炓�m��T�����m��q{�m��Y�m��m��m��Y�p��m��C��������WH�ME�qy�m���B�����m��m��q~����n��Ɔ��n�����������n��x�n��v)
�v1�v2�v*�n��v�v5�v+�v,�nˆu����U�����o��o��o��n��&��������L߂��n��"����N��n��n�����u��u������"�VI�5��'�&��
����A�� z&?�+���
��$�df%!�����b
	�����@傲�!�����
���Ga�u��vV�vW�vY�vZ�m��ߌ�m��ߌ�n͈w���J��_��`�p��Vj�\%�Q�<���m�F�9�n���c���J�o��o��vF�m��v<
�v=
�m��m��U��ہ�u�����ՂW� �sW���j,�I`�1�M^�M_�o����{��i�o��o��������o�����-�����o�����V��U�����U��
�s��������U���o��V��sV���{=�o��M8�m��m��m��vT��v��������o��u��u��m������`�n��m����o1���o��m��C�C�m����m��o.���o/���������o゜���v]�V%
�[�L	�����e������$�V�����>��?��;��<��=��A�m��N�m��m��N�m��p	�������m��J	����l�G��L�m��R��g�v��V���m��V�6��D�V
=	�[�F	���ǜ�	�e������!�U���ug�ue�uf�v��v��uh�ub�uc��S���m��T����i�Љ��k�MI�MJ�MK�ML�MM�MN�MP�MQ�MO�m��m��MT�MV�MU�MW�o4�u&�u'�m��m��o5���H4����A��A��V���������<�V�3�LI�N��v��N��m���V��V��m��m����m�����m�����m���m���m���V������oE�oJ�oF�oG�oI�V����S���p��vt�mC�mD�H3�m��m��V����V����V����V��V����m��DL�I����ur�n��n���q�m���r�m� ���>�\I�m҂�m��xI�m��m��m��H�m��m��n��n��V�����
���灷8�����1�L<�n��n�����v�H����m�����H�n㈣H	�v��v��o6�o7�o8�v�R�v�H�v�H�mՂ����I��"���3�m؉��m?�&�m@�vn�vo�m�����H�m��m��m��vlI�vmI�n���������u�����Uqr6
 �,����$��C, B5����Z%'���e,4
Z��1	B�{�'	�W���c�+) 
����O����!��
��	Lu!K��"��
�����K���`
��6R�+��n}L��	�2����4	)�с�
+�a�0���{��B�����V;�V:�B�B�p���|��~����}�[��[�����n=���n5�U��n9�U����U����n!��p����U��U����p��U����p��n;�U����U����p��n"��U�n$����n%�n&�n'�n)�n*�n�n�p��	�����p����n#��F�[��҇��h��������������������[�������o�nL�n�V`��n���%�Bׄ��U����U�p�
�nN��7����nO��6�U��U��U��U��nM�U����T�nQ�nR�U����D��4��Q�������$��E�������U��U����T���.>����P'���B��������Vc����P�%�F[��x��y�U��������%�U��n����@�n�n�n�#����n
����?�n�n�p��nT�nU�p��p�����p��p��������V^��Z�#X�>��g��Zm	!c���A���5�nH�������v��n+�n,�n.�n/�n4�b��݂%�nJ����������U���	��>�8	�āʒ0��l�CY+v��N�E6�ʃ+�n[�v��v��v��p���M���������,��
���+�n��n��n��n��p{�n���v��py�����q��px�����U�����<��������p��n؂��VZ�V[�����nW��P�������nX��P����������n|��.�n}�p��nY��R��B��K��K����B��T��o�t�u�8
���?m(
J2+����@	 >
F,�����9�]�
���dh3>�����^	����4��
�����p�� @����4� �����	T����q�$���������~�u�u
�u���������p��p��p��p��u��,����P�u����u����K�������R��T�y���S��W��V��U����X��Y���
��
��ph�pi�u�K����p���H��"��I�m*�m+�m,�m-�Me�� �u���$��S���nj�q�������q���q	����(�������q�q���+�����������Uӆ��o��m:S�j���jOG��8�iD�n�$��I���d�R<��7�������R�C���������UԆ��o�J:�Y����{
�m�%���	�`	�R2�A����������u����v���q�����������wc���B����������/�d�0�d�q]��U������n�x�BT��p%�U���uz�u|���U��Ůɏτ-�g�o�n��ne����U����a��G�U��������m�x�BT�p,�na�/��n��p&�p'�p(�ng����UȆ��}�3���)
6
d#	x�z)G1��
���~�eGp�o�d��
��2	xI�Y'
�p��
7���(
����V�����������q
���H%�H&�q����J�m�������K��0��G�Mr�uH������M���F�N,�q��;�mɂ.�[�g��1����2����N����H�N-�nj���j���dTG��n�k�'��K��C�6������������nl����t��u�U��U����������V��ԅ����u�v��pf���V���>�q��
���6����V����v��4�G����Ve�3]��U�� 7�����J��K������������n�^s�������t�n��������n�]��U�� 7���MZ�Vf����n�]v��x�L�K��w�w�q��n�g�Ղ@��s _�����e�����
�����?�eU�n���ф&k+����|�H�H�u��u��r\�"j(������d��B�e�r]�r^�������U��t�f���?��s�z������u	����u�u�n�j���q�<Q�������������������7�[�����χ̇ۂ#�d�A�*�����]������2�� �B��B��S�T�B��B��D�E�G�I�V�����L�M�V����V��N�O�[��B��[��N��N��n�����:�������W�q4�B��P�Q�V��V��B��B��[��������]������B�C�>�?�@�4�5�6�7�8�1�2�V��n��Mv�Mw�n���j�q��q��q��q��q��q��q����n��V�'���u
J;n�֋����\�e�
��_|�Ƅ(�ق,��
�l����3�����^������w��[��[��Všq��e�����ׅ��T�w9�w:�wo�wp�V���������R�P���S��t��u�V������?������M
�P��F�K��K��A��c�A��b�V��V��wI��KV�w;�wS�wJ���wA�:�wE�wF�wC�wD�wH�wB�?�w<�w>�w?�w=��|���V��V��V��V��V����V�����}���Vǻ��V��Z��e͕#�(�Z��w��x��y��{�wZ
�w_�w`�w\�w]�w^�we�wg�w[�wb�wc�VСV���"�.�w-�w.�w/�w1�VҡZ	�V��w(�w)�t��t��VѡV���!�w+	�W_�7������b�W&�����W-�W'�����W(��	��
�W�x��w��w��W`�I�~��w��w���~��w��w��w��w��w��w��w��w��w��w��w��w�������H;�H<�q��t���h�rp���DW�A��^��_�W���w��w��w��w��w���R��9�W��T��S��7��������������c��f��d��$��&��'��(��%��4��5��6�w���a�y�DS���H?�wh�wi�V����V�������8�V�+������o�A/
�V��V��V�����G�������������������g��������w��w��V�����Q��V�$�����r=��
�w��V�l�����������l��V����l�����l��������w����V��V��W#�W$�w��w��w��w��w��w�
�w��w��w��U;�� �����j��
&�k�a�d�&����
���?��������x�����x��x��x��x��x��x��x��x�����x��x��x��x��x��x�
�x��x��x��x��x��x5Q(����x8�x7��I�x��x��x��x��x6�x��x�%�x�%�x�!�����s��t�x��~σ��x���c�x��x��x��x��x��U<�������i0��
$�6�a�d�&�������؁ԅ%����x����w��w��x�����w���x��x��w��w��w��x�x�w����~+�M��w適J�x��x��q��
	
���~�ƅ���w��w��������������w��w��w�+��V��O��O��w��w��w��w��w˂�x��w��x�w��x/�x�w�	"����Gg�;�������w�1+��/��x�w��x
�x	�w��w��x��x��x��x��x��x��w�x2��T�x3��T�w ��w��x�W.(��{�����I����WO�WP�WQ�WR�WS�F��O�W0*�W1)�y9�W9�W<�W:�W\�W]�y:�y�y�y�y�y�y
�y�y�y�y�y�<p�}9�Q��y�6_�z�z�z�z�z�z�z�z�z�z
�z�z�z�z$�z*�z)�y�?�z&�z'�z+�z,�y�
G�y�K�y��y��y��y��y��y�M�y�
D�y�K�y��y��y�?
�y��y��y��y��y��y�MB�z �y�D�z#�y��y�9n���z��z��z��z��z��z��y��y��y��y��y��y��z��z��z��z��z1�z2�z3�z4�y�;56�y��z
�y��z�y��y��y��z�z�z	�y��y�E���y�D���Wd����zD�zE�We�W62�c��s�I��W@�z��z��W>�WE�WD�WG�WH�WJ�WK�W?�WN�y'�y)�y*�y,�y.�y(�y-��zI�zH�y3�y4�y0�y1�W7*�)������y��w���s�y�	�y��y��y��y��y��y��y��yl���z�y��y��y#�a�y!n���y��y��y�b�y6�y8�y7�yKW�T�y>�y?�y;�y<�y=�yA�z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��yQ7!�yLW��J�z��z��z��z��z��yR�S�yS�G�z��z��z��z��yH: �yB�yD�yE�yC�yI�z��z��z��z��W/(��^��e��~���E 
���z��z��yl���zw�zx�Ws�����W31����
���I�	�zp�zo�zU�zd�zV�W4;��	�̖�z_�̋�F��ze�zg�zh�zf�WT�0&��0e�|���I��yz�^�y|�y{�yw�yx�^�yy�^�y�Z�z��z��yU���yW�yZ�y]�y\�y[�yX�yY�yf�yV���ye�WW�]��q9����y��9�y��y��y��y��y��z��z��z��z��z��z��z��z��y��d�y��y���+f�|y�y������y��y��y��y��y��y��&�z��z��y��%�HJ�ym���yn	���yo�yq�yu�yr�yt�yp�HK�Wt���I��V����M��I��I��H=�W�W�W���nK�W�W�WA�����W�V��V�	����M��z��z��z��z��V��V��z��{�{�W
�W�W�o�Wu�Wv�V�:|�)�o	M:;j[��V�e�*	����!���'�{�_�,���D�&����)����W�W��s��t��u�x.��w�D)�D*�xW�xD�xH�x:�xA�x=�x<�x;�x>�x?�xJ�xK�x,����x�b��A�w��w���z����G�����G���z��V�'���������|^*��b�b��4�?�J�-��@�x^���xt�xv�xu�xw�xx�������wu���w�OE����������wj����wk�x_�x`�xa�xf�xg�xZ�x[�V⡐�����V㡐�q��ł���������������l�m�x������������w���s���w#W,��	����|y)�R�d���F��@�xz�x{�xc���x��x��x��x��x}u
�x��x~�x�xk�xl�x��x��w}A�w~A�W%�W}�V�����Wx�Wy�[ǝR�x,�[ȝR�x!�x"�x �x�x�x
�x
�{�|�x+�xLT����xT�xN�xO�xMQ�xP�V������H9�H:������ط?�F�-�B��-�B��-�U>�;��-�X���>���&����%�sL��%��
�eN��T��bx������!�}r���ԁ�Iv#H�rL��'W�00lKx2"��
"��\

!��4 O"@��4;�����낄40o
y�
��S���D�l�D�l�
��S��X���x�G����N��N��XN���.�XO���XV�XW�XU�XT�XS�XY�XP�XQ�~��X?�X=�X>�W�����X!�X"�W���k��!�y'��"�y&�G!�X@��ѿ��XB����s���A��s��s�����A���m��n����|�h���>�w��4�D���P�[��[��|��|��|��|��|��|��|��|��|��|��|���'������������(���d�}n�}o���`����������}.�})�}(�}4�}1�}/�}*�},�}+���,5�������������|Ć�
2G�������|���|ӆ�v��{���|�������������|��|��|��|��|����|��|��|��[�d�q#����#��&��%��$��O���}U�}V��P���}_�~5�}e�}g�}b�~4�}c�}`�~5�}a�~4�}d�~3����}h�y�}i�}k�}l�}m�[�����(�}���3��4��5�[���y����r��s��u��v��x����q���X)�0�Ã2���}[�X*�1�ă0�}Y���|����|����}\����!�}]����u�}?2�"�}q�}r�}s�}t�}H:�}u�}v�|��|��}I7��}��}��}��}��}D:�}E�}F�}C�}��}��}��}@9�~j�}z�}{�}A8�[ע^��������}8�}9�}>�V�������������}6����w��
�����~��0���}7V��
�������}���}���}��}����������
���������
���
����������������������[�����%~�|�
�|��W��>�W��>�|��|��|��|��|��}��}��}��}��}��}��}��}��}��}��[����U���~�[��[��[��|��}��}��}��Y����������//�w��Gς�Y�Y�}��}J�}M�}T�}L�}K�}N�}O����Y	�ށ���}��|�������|��Y����	��������Y����|����}��������������������}	���������������������������}%����}&�}'�}�}�}

�} �}�}�}�}�}�}�}�|��|��|��|��|��|��|��|��|��|��}����{w�6��\�}����}��}��LX�}����}���}�}����}����}��}��}�����LY���������5���������������������5�T���T��U�X67+�7���=��EI\�x�$�	
�����!���m��
��!�����$�|�|�|�|��%�������{�{�{�{�G&�G'�{�{�{�{�G��_�~d����~e�~f����~g��`���~c�{����{݃��~j�{ك��~k�~S�~P�~O�~Q�~R�~Y�~T�~U�{����{փ��{ڃ��{����}�r�y��K�����{��G,�{��}��}��}��}��}��}��}��}��}��}�y��K
����~B�y��������}�(I�y��K�����{��{��{��{��}��{��	�}c�G��{˃%�{��{��{��{��~A�y��K���L�������{��{��{��W���
��A�y'�/�BT��"�;����~r�~z�~}�~��~{�~��~��~u�~��~��~s�~t�~v�~x�~w�}��i����}��}��}��}��i�~_�}�����}��W�����ġ�(�X�L��~[�}��}���w��������x�|
�|�|
�~�i��a�|���~,�~-��'�~�~	��(�~�~�~
�~�~�~�~�~�~�~�~�~
�X9��{d�x�����|�h�y?�|��|��|��|��y��|��|�~5�X:��5 Xg��`�~;�~!�~"�~�{�H�{��~%�~&�~'�~�~�~)�~*�X8���~h�}��~�~�~�~�~�~�{��{��{��{��{���9�{��~8�~9�|���~�~ �|���{�{	�X7�����*��ER_�x��Q������=k������0��
���x�N�$�|%�
7�
8�|!���Ŋ�~��{�-��4�|�ʂ�x��¹���7�}��}�����}��x��}����}��}��{��܁��x��3�BT���>�~��~��~��~��~��~��~��������~��~��~���ټ��{��{��{���{��{�{�{
�{�{�G�G�{�����z�{ꃿ�ȕ�~��~��{��������A��A��|"����c�~��|#����^�~��~������<�GL�GM�W����9�����u�����k���/T� �������E���J`�������������?�������������W�������6�%����XE�����i���O�������W����J������x��k��
�O������E��E��W�����A�W�����9
�W����뭂�
������E��E��W����W����W��쑂���m�W��?��\�R3�[��\�[��\�I��Xd�p���{�q��� �F�U�����~��[��{�����R�R��S�R��g�9�l���h�~�����d�D���~�����D���~���~����P����L4�L5�����������W���;	�K�'�C�����E�dЅ�V�ZX���΁ہ��"��	����V�!^L��(��u�ށ��Xt�Xw�Xu�Xv�������X��X��X��X��X��X��X��X��X�����i��X|����i�����O��X��X}B�W���6	�L�U�E	�d��ԍ������"��	f��Z^����S�X��Xg6���X����X��X�
�X�
�W����Xs��j��k�W����Xq�W��0��^�3�W�����Lg�����I��I��W�����^�2�X������~��~��X��X��X���k�uC����M���ޅ������������	���DO�DP��{��������
�{�	������������������������
�����������������������������;�s3�ގy�������W����%�u@HL��=�=����X��D������������������
�
�1�s3���L�Qc�����������{��T�����G0�G1��n��m��]��������������^�W��������b�<�����W��������<��U?�9OS C9���K���#����_%(����
���l��Q�0��W"G�S����
	��}"^����R:Il#0�qI	��%S	�&/lER'2"��
��\
��:"G)<^�d4 ����o
��
	u�L�L�L��n��o�������Lj��n��o��p��q�{>�7�{<�{;�{=��s�LT�L��L��{C�8�Z�[�\�{A�6�{?�2	���h�j�k�i�n�o�t�u�q���e�f�]�^�_�`�a�b�U@�e�����Lk��������������IH���J�L�W�X�Y�M�U�N�O�P�Q�R�S�T�$�'�%�&�(�)�,	�3�/�5�.�-�0�1�{�����Ll�6�7�8�W��U���
���H
�{/�Ji�W��]���W��W��������{%�{&�W��X�������{$�����������Lr����Ls����������W��U�����D
�{(�J���W��X��
���
�D�{��{��{�������������������{����{����Wä���������������������������WĤ��W������}��~������у�����������������������������������������������������������Ƀ��������������������������{p����}�@{�,��oQ����D��E��r�������s�{t��������������P��Q�{q������P�,��o���;��<�&�?��A��A��{r���{s�F�ʾ�G�������{P�{Q�{D
�{L�{H�{E�{F�{I�{J�A�B�������������������������������������������������{R�{S�{V�{]�{_�{b
�{e
�{d
�{c
�{`	�{a	�{f�{g�{o�{W�{X�{Z�{[�{Y�t��t��W���W��A��A��W��,���$>]�����l.�n�$/�3��E��Y���#��D��|���{��{��g�{��f�{��g�{����̱�������������������������W���3*=��UF��CX���q!�ϑ��n�}���������������{{�9��'�g�{|�9��'��K��q��r����
�����{��{��tއR
F�U�h����q����{��tև��{�D��ˆt����t��&�����tه����t��t��,����������	�����������������������}���~���@��P��O��G��^��_��a��b��c��d��C��I��A��D��W��X��E��Y��Z�X4�W��6��;������9��:��>�����X3�N�����������W���6)�J�P	>	��I�{r���n��$�{��{��{��tՇU
F�^��
���{+
F�{5D�{8�������� ��"��!��$��6��7��'��&��%��(��*��+
��,��-��.��0��1��2��3��)
��t��u�L��L����{�	)�{��{��{��{��{��{�	)�~����P?����������P�UF�;	 j =@��
��G=5��)�́�����d��?<
���-O��e0+��J��z�Q=�B0��Yb	c�
�*��9���]V;a�cK����2��*��r����������XѰU�|d��2��6��3��4�X���7��8��������:�X��X��X��X��X�R��;�X��X��D-�W���������'��Z��[��(��)��dz�����f{���q���h�r������i��\�\���b��]��^��E��F��0��1����Q��������������Q��L�L�L	�L���a�s�A�����X�e��I���I���I���F���I�X���J��K��I���R(������B�����A��O��P�L�L��ʁ��ySh�R �����T��ˁ�����������M��V��T��\��[��Z��W��X��c��S��N��O�|��!�|��.�|��|��|�����|��|��|��|��|�����|��1��L�|��υ�|��|��|��|�����|��3��e��f�|��|��J�J
�W������~�&�b�؉�F�����W��W��W��W��W��X���p��q�X��X��X�����W��W��|N�|O�W��W���t��v��x��u�X������Q�����������|g�~��Q�����|h�~��Q��X�X�X��X��X�X�W��������qƁ�-�d����H���������`��_"�Q��X
�X�W��ɤ��{�����Q����������������l��m�X
�X�����������'%�G��݈����|l�~D�R�������n�X��z��|��}��{��_��a��b�|'�Ȉ}�|)�|n�|o�|2�Lj��������|0��F�6��@�|.#��	�~�����툋�|-�|Q������눌�|*���|+����������������������������������
����	��
����������������������������!�|m�~@�R������~����Z��\��]��^�W��[��`(�z�����b��R�؅큠��{���|r�_���X��X��X��X��X�������������Y���Y���������Y�y�i����l�j�����m

�i�����x��y��o��q��r��s��p
�I��������������������W��Y�69�[���x�I��ȃ$����-���|4�HS�HT�|=�[�W��|D�|>�[�Y�@�}h�I�����|5�|6�|8�|9�X��w�~��Qf��������:��;��<��'�~�2V��#	��,��-��0�������|s��W��3V��5��6��7��9�������LE�LF����^l�������^n�����������������������������������������������������������������������q��<���߹��������������������������� 
��'��(��#��,��+��.��"	��!��$��%��:��v�������������������������������������������,����!��v��u��8��������=��v�s��R��S��T��;����r���W��X��Y��V��M��N��O��Q����r�����Iޅ���*��+��(��)�I���X��Y����Y�����&���
�����Ç_����]����a��ć_����^�Y��_�����E��C��D��F��K�Y��^���Y�������X������oE�	��	��
��A�q���k��l��m�����������������������d��c�����������������������������������������p��q�����r������������t� ��n����J�����A��Q��P��������������
������
���������X����&�oZ�	�Ry���6���6���3��χ(9��������������������������0�����d���e�L/�����������������4��5����n���������������E^����n������������������W� +
 �����e�n����������7���e�9���C^
:+�uJ���O��Q[	c�
�'�����ہ��a,��������ԁ�����|��|��������������Ð����Ð��T�|���X��˷����������������^$����|E�|G�|H�|I�|F�������|J�|K����������W�
���⇊�r-�4�E�����x�������|}����w=�I�	����E��C�E��K��D��E����|~����G�����������4��5��Q�W�������L��<���N��P�چ���L�~ꃼ�~��W��'��R��S����I5�����W���4����A�W���������������������W�����c����W�
�W��W��W䪺�c���A��B��C�W��W��W���>��?��@��F��G��������������l�����������������������A��B�|S	��������=��@��?��>�|U�|V�|W�|X�|^�|_�|T	�������������|Z�������X���������X�|��|��|��|��|��|��|��|��X��U��V�X����X�X�X����7��z��a��{��c�X������8��Ly�{���rR���R������L;�L<�L=�L>����}��~�[ؠ�|���N�.����HO�HP�[�����N�.�Hr�q����A�)��i���A�(�{����rQ���U����L��{��|��V��K���X��u�9�G�x�R)�/�=��sy����D��D��D��������Y#�����-�Y%�Y$�쿅-�m�\�9�{0�R�X�=����������E߅4�J�Y
%
T���w��:
	���_�3�;�f.��Q������
��������
D����a�-�\����\E�\F�Y.�Y,�Y-�Y/�Y2�Y)�Y*�Y+�Y3�������O������������O��I������YN��q�K*�W�=�������������YO�����`�=�Y��Y���.�YP��	%��#���a�V�r��F����"�Y��H��H��YS�����������!����ׄE��S��!�Ep�Eq������ �������������� �Yg�Yh�Yj�Yk�Yl�Ym�YR��$��#������E���"�Y����M����J������F��G����������B��I�Y�����J����@��C��D�����Y�j�M�N@.�����f4��I
�4�b���Y��������������������\m����A��Y��C�%���q������A��\N�宇��\M�\Q�\R�\T�\P�\U�\V�\O��0��}�J���1��|�J������������Y��l����������x��0����6�Y��Y���������������.��/������������YW�^`���â�UB�UC������q��Y���Z���ˈ`�r������YF�YI�YG�YH�Y��j�Y��Y��Y���-�YV����
\����s���q���q���q����q쒾����q��q�����������������r��������
����q��q���q�����h�Y��Y
%
O�u�$
���+�3�:�f&�ۊ�Q���n��������C����`����U�I��������Y��Y��Y[�Y\�I��Y����Y��Y��Y����Y��Y��Y��Y��Y����������������%�������Y4���Q���x��K�Y5�Y��Y6�Y8�Y��Y��YA���T�?���Y?�Y@����Y����Y9�����Y:�Yn�Yo�Y>��=�Y<�Y=�YD�YE����YM
@9(�#�~��=.�ց�JL�R�f0�ۓ��#�4�2
�������]����\\�\b�\]�\^�Z���Z�Z	�Z�Z�Z�Z�Z�Z�Z	�Z
��:��;�Yr$�Y��Y��Y��Ys�Y}�Y~�Y|�Yy�Yw

�Y��Y��Y��Yt�Yu�Y��Y��Y��Y��Y��Y��Y��Yb0^�w���,���Y��Yc���q��������Y��Y��Y��Y��Z�Z�Z�Z�Y_@f�6
�e_��I���z"�0�:�2
��C�C�C�\d����������Y��Y�!�@�Y� �C"�C#�Y��Y`��&���Y��Ya��%�Y��Y��Y��Z�Z��J�,�r��Q��R��P��Y��[��T��X��U��W��`��a��\��b��i��f	��d��j��K�����]��^��L��N��O��M�UH�����;��N�@��I�����0���F�i�>������,��H��?���gi����z&��9�$#	N��x�����́�������=�f�@4�\����iC�f���[i�������f��ui�j�������������������r��O���������������O����kU���fv����������V�w��CM�CN�[k�(�i�w��5�Z:�[l�#�i�w��1����%������������.
����5��6��1��:��0	��/��2��3���[j���z�Z��uf	�d��
�Fh����y�1�	��	��	��	�����r��ul�+���D����������F�������y�4�Z@�H�n�ׇc�|�u��,��V�C���	�ZY����������ZZ����Zi����0�������������l��[=�[?�Zj����
�[;�k��[<��4�o����������]�^���������Z[�*
�zb|�b�ف�����|r�Zc�*�Z\�'�z��������Ze�Zf�Zg����z傁���Z]�-�Z^�[8�ZA�����F�lͅ��b��`�b
��,��\�C��������{������y��`���b�c�}������P�9_�u_��n"�g
��J��F5��l�g�\���{���ف��o�v�������z�����������P�7_�u_����Iv�����������������������������с���uc��������������������腤�w�����������������B�������������������\�����"�w
F
��}������f)~�ڃ�uf����
b��
�������"��*�v����[@�\��������[A�������������������Z<�F�/���r?�D���k��l�������Z=�F�.���rB�D�����������#��z���6�O`�\{�����2�0��$8�i����������������\|�3@���|�������|���'��s��(��)�H����%���%���������C����H����H������O^�O_���y��C������������;�yv���y��Z>�F�{�"�q
-��
w����	���f)|�ڊ܃���
b����������"��(���3��)��+�O*�O+��������i�z�����gK�Z�5�.��"3#�iӑ���@�>����������������������������^�T�l�/������v����[r�[v�[s�[x�[y�[w�[t��J����V������(���_���2����\���"�\����^���������������[�������z��\e��J��f����?�ǂ�H���q��@���6���7�U��!��2������������r���������[~���l�_�ā��!�x���4�ۖ�	�4�\�\�[�������x���7�ۚ�������������������[CD��b��H)��b����<����R�i��?���z1���6�U�� ��1���[D��b����k��l��m��o�\	�[E��a���[G��b��������������\��������lЌȂ���*
�����������\��l�vB��L�C5���n�i ���G�*
����M��N����i �������i �������������tD�
�\!�\"����\#�������������Ⴇ�r�-��
���!�>'�R�^��R���������C�ZC�^�zA����zA�	�����zB����ZD�^�zA�������zE�������N��������������.�1�/����ZE��V�r��$���H��O$�O%���H��ZF�ZK�ZJ�ZI�ZG�"�#���|C�\&�ځ�,�y'�Ձ�� ���5�CU�� ��6��7��8��9��;��<��!��'��&��%��(��"��#��)��*��+��2�����},���v���	��� ����xy
���������:�x�z<�������������	����;�w����z*���	����4�w����8�	����=�z����	��8������������\$�������������r���

����>&�R�e��R�9�H��H�������D�z���G��E��F�;������xj
�\%�ׁ過���{���\��%����� �$��u�|Q��y��{��|��z��~����t�|P�d��s�|R����z����������z����,��v��w����uu��������,��[)Y��7�����邆����!���0�gډ�G&�<8��)��N�����ہ����V�����cz����z�����������������������
������������������ׂ�;���|	���{���� �!������������$�*�+�-�.��Ɉe�xl�������݂D������3�H��"��0�{���1��P��W��Q��V��R��8�!������<��9��;�6��>��?�7�%�(�)�&��/�z\�����FQ��5�~���3������=��A��B��D�~�����&�?�y(�Jb�������%��&��'��(������������[�y���\�y��9�=�A�:�?�>�����������$�u�H������������y4��������y;����y;����y4����y6����y5�H�ׁ���+�q
=�I�N�J�K�R��,�q
<�P�[+���-��"��uԃ)�!R�K������S��	�/�u��)�����	�	��Y�D�Z�[�\����������������������[,W���7��	����0�S�����	�!�g���V"�<	���T#ooK�����ہ����u�<�cz�����_�`�J2�J3�a�c�d�\~��qf��z���e��M�|�g�i�j��_��`�[*����
�{
(��̂�'	�jG�[<E�`����Qj��:������]�	,�	.�	/�	-�	1�	*�	+����_�c�b�a�`������	8�	9���	2�	3���������|�����e�f�h�i��������������������	?�	@�A��c�s����~�.�w�y�x��������z-���t�u��*�\��
��6��������;��
�{�|�����F��Y�\����s����������G�����H�����	'����������������9��jC��
#
��������8�	J�	K�	(�k�	L�	M�������l#�[�I�J���������m�n�o�	P�	Q�����^�x��=�O�Q�R�	U�	V�	S�	T�K�M�L�J�	G�	H���YT�
R���YT��	�.�	���n�r�o�p��
���wm�
����8����3�wk��������xx���u���������J��v����L��L���L��K��w��������N�?�����ʁ��uC�Ӂ���p�G���������ZU��b�x���j�x���k�
��-��.��c�x���d�x���i��f��[�<����x�����u���h����g�|�t��i�ZR���8�����������uE�с�}i�F�����ZS��Z����vׄ��	e��Q��Q����x���	��s��Y��V��W��X��^��_�OY�OZ��`��Z��a��c��T��U��R�	f�	g��[��\��_�z���`�z���\����[0����x-���<�[1�����x��<�[2�[3�[4�[5�[/��UI���
��A~�pN�F���H��(-XD2"rIttX*SA���
B�i�O�����{��)��I��>Np72?|�i��z&����$#V���2��������:��������������J��HS��������IS����[������KK��N\��LZ�����J��?��@�[T����M��S��V��W��T���m�����������[U��~M��Y��Z�	��G����������E��~��N�xb��o��\��]��l������P\��R]��SZ��Q]��T�y}��b��U��V��W�����X��Z��Y��[��`�����c��\��]��^��_������q@�����������������m������j��m��l��k��i��������������P�wv�����P�����O�wu��������������������\1��j��&l��x�Cl�Cm����y��z��|��}��{�p*�r���������\2��`
���������o*����tY���l�t���)b������{@�	����	��	��'�(�	��������������[R�찓+�Ɂ�h�������.t�A��[S�����uX���g�fZ�#�3�BF��wY���h�t��4����J�j��W��������I��!����Oi�Oj�	��	��O�O��q�x����s��t���������~�x�����{��}���j[�w����������r�ւ@�r���?�� �����������������������Ge�Gf�Gh�Gi�Gj��r
�T�w9�����x������u�x�������������������������������������������wL�����[P:���ըև�-����_ Tw��RI���r��y��+��Of�֊!����F��G�����	��sY��v�s񁨃2�[N�谒1�����C	�s��Ђ���
����s������������ƒ����������OF�Gm�G`�Gb�Gc�Ga���x��������{����{��z����x��~�����тT��!��>����уi��A�����������h���
��#�vJ���������������������0����.���O����������������������������������������������O���2�tE�����O����n�ZV��/�:�v����~�>��#{E���T+�g	V�f
���%D�����t����9$��/38]���������0�M�/D��T���C��6��>��7�x}��/��0�x~��1��3��7��
��tO�=�>�0�4�6�2����t?��
���� ��"��#��!�����tM�@�������E�F�G�[X�m���g�w����U����x��B!�<�������������|�	��	������������[Y�l���e�ln�=���������y,����������p�^��#���������������}���z�������p�^��#��K������L��N���������}��G��H��I��g�ui����\(m�������Co[�8$��-�fh	�"��k��<��g�����h��������K�\)�}����
D[�7/'�uT����T��������h��������$	�>�w}���\+������\,�������&��)��'��*��(�������~��`��c���������~��zM����zM����}��a��b�ZW����s��~�=0
y���N 	�f	#�ff
���X�h����4$m/fZ���:�����n�������	�	�		�	�	���������
�}�������������{������
�����\���
�wu�����\-��?!d7��D��-�fh	�
 �X�K_
����]��8��9��6��7��;��=�xv*���\.�m���/�u>(�x�D��T�U�W��<�xu*�v�P��B��C��r�v���s�v���*��)�H�����\����u|��������Zl�=�<�|��N��	��������������[\���C�za��\��]�	��Zm�����E��b������~�����gǑ���e�����F��d��f��e�����G�i��������A�,���ɂ8����t��Ȃo�G��m�|�O5�O6��B�����j����ǂl�G������Y�����������c������~�����x���e�	��g�i� J���y������������������ق ��n��p��tL��wL��vL��uL�	$�\�x���d�i�f7���_�I�ɂ��s���م��������+��
�������������C`�Cb�Ca�\����
�\���������u��x��v��w�Ce�����Cf�\��\��\��
�\���Gw����Gx�������������������\���T�h�t3�����l�������������e����!��"�������Q��������$��%��#�]$��,��8��9��5��:��;��6��?��@��A��B��F��I��J��G��L��M��C��D��=��>��<��N��O��P��Q��S��T��U��V�Oe��.��0��1��3��4�Of��W��X��-<��b��c��d��e��f��g��]��^��_��`��Z��\��[�
�
�\�x�����Ճi�f7��G�
j���م��������(��)��*�����i�����k�����������������l��m��j	
�����o��x��u
��s��p��q��y��z��&��'�\�����]!�]"�G{�G|���	�S���Z�ԃ���#MV����
�f��
0�X�C����7	����b	�3Y�с�a���a5
L*����D��	.
�H��gAW��������ig�,)V��[�A�d0	.	��
>��Q��`&����B)��?��^
8�/M�=}��
��_*
""<��"����N��
��EC�
��]'
����]H��o��]I��o��s�����8��]*�]+�C���������|�}�~�](����O��������]��h����f[�M����7�"���������t���E��t���������]����fW�M��'�:���E��E���݋�a���t����������������]@
�]B
�]C
�]A
�Z4����0�����}���,�IH�II�IK�IL����������Tp��������N��A��B�]��~�kI�r�r���Z5���N�jI�Z7����������������];�L��L��]<��H�]�	(��
���_����,4��s�`�]5S/��0�]:R�]6Q��[�]7T�^�����Y���ۋ����L��L��_�����ۉ���M�k�^�������=�^��<��=�],rV����I�������]D����}����]E������D����^���^���^����?�����W��!�D��D��U��w�-��-�E{�����������������������������������������k�����������������������l����x��h�h���]V���]W�������������������������������������U���w�,��K�������������T������������������������������T�����������UK�u��.�C�G_?�Y���3�����kq�f��7�{���lP����������o���]0�]1������_�=����Z���Z��Z��Z�	���Z��Z��Z��Z���`�<����r����Z��Z��rm���UL�t��-.�`\�����|3�����g���:�6�E��lP�����������|;�rl�]�r��o�K���!���ri�����r`�J�����-��������������
�].i�������]/i���������r`�J��O��IO�w��.��/������
�]~�s���C�f�ц(��@�P��H��K��J��I��L���|����|�����
��������]���n�������]��y������
�H��H��H��]��Q�f�̆(��>�O�Cp�Cq����f��	������������0�����U������������]��]��]��]�����T�����!�h@�T�����$����U������������������jd���#�T�J��	M����X�n:���"�`��
�d6��	<
X�QA����
[��}��_����
a���ā���k����������G�ğ�N��������]G�N��^�b�������n����Iυ5��!�^�^�^�t�t�t�t�z
�{�����^�^�^�^��t��H��K��I��J���]KO%��
�\c&�Z�t���>�̇\��p�b���E	����q$����}��
�`�������ȁ��e���a_��	�]��
���(��)�]�1��������w�G��G��G��G������G��G��G��_�����y�����z���]�1����j�u�����G��G��G��_èc�����C��������������������������_������_��^���ru�]����]֪F�]����]��]��]��]������u�6�Iw����]��]���.�]��]�����$�]ޕ����u�6��8�u�7�r��r��]��]��]��>
��q�����5�u�6�]��I�����]��]��]��rw�ŒGp�j7��|��=��
��������F��+��,��G��	��
������>��
	������
����
������?��w��
��
��
��]�d�<��qse���������Z�`�n���?��!��b�C��G��G��]��c���Fo�e������ς��:��� �t�t�G��]��]��������L�G��G��G��G��G��]�������R��������J��J���8���N��JT��:�
��
��]��Vg���n�����"��%��&��'��#��)��*����������� ������!��/��0��+��,�]������1��3��2��4��5��6�]����u�U��2��3��7�]���.�]�������]����]��]��T���"�a�����>�(�Y�g
���,��
q���9����������`����D��E�G��"�c�_��_��_��rx������g��t���`�b�����H����]ж+�i���������������i���������]��]��G������������1����]�����]��_��]Z��h�][����m��@�]��]��]��_��_��_���������_�†���=��>��@��E��G��F��I��J�_�†�	��A������������������������O��n����T�|�6�� �n�N��N�����N��N����5��6��4����n�6�T�����9��d
	&���&�� /�h����	��)��
�JO������ �X�aTf������,.P �}:��
!~��#��'1��������3l
B�
��b��Ytf����*�b��R�����dW?l���	��'��>~	%�F��>�?�[�F��^n�2�s����pŇ̓#�k������Db��'�s����pć��"�k������D^��*��ێ�ܨ�^!��q�^%�^"�^&�^#�^$‰K��o��p�s��s��s��T��T��^���+�s��Z܄�����Z�������"�#�T���������d���o:�n���D�����s��s��\��(�9�^4�^5�\��O��\��]�]��%�M	��'����������������T���^�T��T��T��������j9�n���D�[���_���_	�_
�_���_���s��s����]�]
�]�Z�$�Z����D���L���M�����T���܄��/ ������t]k�����K��!�z�tq����^�������	�K<��*��+�^��^����^��rq�rr����^*�^-�^.�^,�^+�T��r�^1�Fz�F|�F}�F{�T��	T�E��t�K?�v�Z��[��O��P�Iq�[���\��[���[���\��^��^��^��Z��Z��^�	������^��^�	�^��^�
�^�
��D��J��G��E�^��Z��^��T�������/�������q҃�m�F�F!�z�tq����s���u��������_�#�>�t�M���8�F��F�F��F��_�"����qЃ�qу�s��s��L��L��\Ƀ�����f�����OH������k�{��
�ľu��C�Jf��}��~�^W�Jj�^X�������T��a��[�o}�Bn�
+�
,�[
�^H
����
)�
*�\�B�
'�
(�T��(���`�Z�[�[
�^D	��H�[��P�[�_y�_z�������US��
��FC��������f̆-�@�ʅn��g��1��2�UT��	�򕈑�������ho��������m��c�x������������^T����^U����^:�^;�^<�^=�^>����������c��d�\��������>������k�z�����u��G��]��^�� ��"���\��`���q+�
�\旟�r�����k,����Jg�Jh�\������������_r!�[�����������fH�����LS����H��H��^Y�����^]
�^\
�^Z�^a�^c�^e�^d�`l��F��F�,�-�I�[�[�
w�
z�
{�
y�T���T���T����0�I �T��䭀�{�I ��\�KB�\��_O�������_P�^j�^k�����F������H���F�[�T��
��
�d���.��	�������H�^��
��b��
{���l/����(��)�����Ku�n��ӂ����?��.�U�����������~%'�-�.�@������A��~���\���j��j��k��S��T�Z��Z��Z��Z��Z��Z���p����s��������s��\��ăŌ"�e��NA�{�,�������7�NA��K�_Q���_T���KX�_R���_S���B
�B��������T��
���^��
-:��	�����ߊ=
��5�d�{����"�}a��f���?�?V�������������#��$��:�Ey�Ez�T��T����<���f6�������⁄�Tω-�h&�����\�����U��V�T҉"�����
���Ŋ%���e���J�����^����^��^�Z�����������q�����-���q����c��q����������M�M�^�	���^���[�
f�
g�������f����M-��f��g�^����^n�^m�[�^��^o‡�^r�^p�^q�s��s��qʂ��s��q˂��q̂��1�2�C���5�sϠ��f����M,��G�s���R����S���C��C��>�T��l�b���$�1�q�B��(��R��������������2���^w�^x�]‡����]‡��^t�^u�
j���f���������O��f�
k����b�����N�`e�.����r�`f�.�����[������"���J��22�����������������[����G�#���J��22������E����������������������������������������������F��������������T��ra���`���#�x�����8�'áá�_��[�����_���]�_���N�D�#�_��_��]�驃�o�'���9:���̻"��5�������������]��_�9���
�`h�`i�8����9�_m������_n����T�!��/��&���Y
����� '�����	"�������,O���{�b�1%�#��.n���

r��
��$)+?����
��3_
E�
��
��|��ArZ����*�^��<
������v���$U����n$��p��q�O��������O���Ƈ	�_^�__��J����J������LG�s��ρ�z���N��O�s����z���I�C�����N�
q�
r�C�������ċ �i��"�Bt����C��F�G�������n���r����L�5�By�6�;�<�I�F����F��F��T�	�-���5���͊_�i�I���EU,��� 3�����F��F��F���I�x��^�F�(���U���f?��v����M�����������C��^ ���Nf�ɅE��5�Zs�^z�^}�^~�^{�^�^��^��T��^�E��4�����C��s���i��j�s��s��s��s��M�M�M��U�d���h��r��W�^��V�d�i����T��)����)�ے`����A���‚Љ‚*:�b��,�����;{�&��)3
*�'~�m���v������������s(�����G������
V���s��s���\ς��Y�T�TP�^��^��\Ђ��������O�A1�^3�T��1������|9�ig�$
)�@��n��s���;�f�}�G���w��x�T��[%���:�_��_��_�_��7�_�������B���L��C��������<�f�|�G܆d�I�s����:�s��T���b�E��t�[�^���^��^��������T���^����^��\�Š���>��?��@��A�T��Š��\��T��[�K�[ �I�N~�N�^'�^)�FU�^������^��^��^��^��^��^���W�^��^��^���X�Tʋ��X����*�U���A�q���_��ԃ��
��U�������T�������Tˠ����~�`�An��ԃ��0����������n��o�I �I!������pω�A5�����I/�I0�M/�M0�r��r�
�O��O��I1�I2�����x�E�@�y�e�Bz�B�B��B}�B{�C�
�C��C��C������y�E�8�N��N��C��������`C��o����������t�D`�O��O���Г��A����O��{�O��w�x�y�z�|�N����L�������N��I6�������zg�@d�����I3�Jv�I4�O��O��C��������Jy�Jz�`B������Ée������������I��I�����������������C��C��C��}�~������T���
%���X�ݔ���=�eR������U�(��������`��o���:y�N|�]d�]e�T���r��r��N}�J-�^��^��^��^��J.��5�P���6�L��L��r+�T���]�T���L�T��^��Z�^��3����T���"�Y�^��w����^��w����^������q��x�������r%���r&�^��^��]x�]y��r��x����������Z��T��ۂ5�����F�Δǁ�8�f�ؓZ���!C�|��@9�L��L��_H�qł,�r��
�_޳��_��_��^������B�Ε��8�f�5�TC�x��}�_ڨ��?��)�M�M�M����]������^��]{�]|�^��]�����T��T����r)�r*�Z3�B���������������������r�����]s��w�T���%���@��X��	�����p�������U�+��������_��q���9w�_��_��_��r��^��/�f�����T�	�ו��������n��/����#�T��Ol�Om�T�����T��r.�r/�������^��q�^��p�^��̴S�y/�_���P�o�������N�P�����O������O����������`R����
��Fl�
��I<�I=�`S����I;�O��O��������O��������������������������������`I�
��		���1�Q�&��
��
������
��	��
��
�'�O��`J�������]�O������������Be�Bf���������������������������O��O������������������������������������`U�������#�K�P�F�F �F"�Bg�`V��Q�o���O	�����8�K�^��X����Bh�Bj�Bk�Bi�O��O��O�����r��U`C<�������(.�����q�J��!fN)�=�S��J��
��
�]���]��X��X��]��]��]��]��]��]��]��]��X��X��X��X��]��]��]��X��X��X��X��'�S���S���S΃I�ˁ���V�V�]��]��Sϊ�$�����]��SȎ��SʃL���d��d��d��S��SɎ��SǃK�V�S̃P�S��?�y
�V���[���]��]��]��]‚�^��^��^��Z��]��SČ�V�]��]��]��]��Z��Z��Z��Z��P�&�+a��L
����l�^��ZP�ZQ�b��b��UU���UV���P
�S �x�Y��_
�P�P
���V9�V:�P�]�_�P�t�u�Y��P	���Yi�Yj�Yk�P���P�c�c�ZN�ZO�P�P�R3�e��w�PJ�PK�V4�V5�P�-�3�V6�V3�3�P$�d/���t�Y��Y��Y��Y��T��T��T��c	�c
�T��c�c	�c�c�c�c
�c�c�Y��Y��Y��Y�
�Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��P'���P=�P<���P1�Y��Y��Y��Y��Y��Y��P%�c/
����PH�P)�P*�P,�Y��z�c�c�c�c�P#�|	.�P5�Y��P6�PE�P �PF�P!�P"�P4�z1�Y��Y��Y��PA�PB�Y��Y��Y��P��)x��L
����k�P.�V7�V8�_�_	�_�_�R�^���^��Y��^��^��^��^��_�_�Y��Y��Y��Y��Y��Y��P�Y��Y��Y��Y��R����Y��Y��Y��UX�^��^��Y��Y��U��w���Z���Z�PM�PO�PN�U��w���^��^��SA��X����
�G�j
�O-�}!8�9�K,	����Y�Y	���c��V��V��V��V��V��Z{�Z��T���T���b@�Z|�Z}���^+�^,�T!��
	�Z��U������Z��U������e�Z��Zr���U��U��T}��w�Z�Zs�bO�bP�T~��Z��Z��Z��Z��SD�=6�*		�J��<�^:�X��^;�X�	�X��X��X��Z����Z��bc�b]�X������C�Z����^A�T��=�����!�T��>�I�"�bU�T��T��P턔��Q	�����2�Z����Z����Z��bT�X�H�$�U��V	�4�U��U��U��T��>�O�'�bi�bj�bk�^P�T&m�灓���2-	?�‚���T(�J��V$�$�V%�U�T'k����
���3)��Y�T*�T+�^s�^t�T������k�Zq�T��T��T��J�V'�V(�^Q�^R�Zt�^S�^T�b9�Zu�Zv�RŇ7�X��X��X��Y�M�^M���Y�K���P��^O�^\�^^�^_�^]�SB��	P
����
�D�m	�\-��

G)�
�J,��Y�Z��Z��Z��Z��Y�n�1�Y�Z��Z��Zz�T����Zy�U��х	�^e�^f�U��U��br�Z��Z��P�2
_����s�j���~6G�
��#��V��		�V���V��V��V���Y�^l�V�Z��Z��V��T��%�|���^m�U�_��O����T��O����T��T��P�>�d
�p����	���V��V��V���V��SE��Y�Y�Y�c��c��V��V��V��V��V��Y�Y�V��p���V��p�Z��Z��^h�^Z�^[�^W�^X�T��bG�bN�T��T��T��T��T��T��T��U����V�Y&�Y%�V�P��P��W]�` �`!�Q�Q�Yb�Yc�Ye�Yf�PQ,
d5��
�,B��?BP����-����)�#$((��
����D���b�_��_��W�
�-�^��^��[ 	�[+�W	��W
�
�W�
�W
�c��c��c��c��cd�cg�cf�ce�ch�ci�Y`�V��T��Z���]�]�_��_��Q+�T��T��_E�Q,�Q-�_F�T��Y���]�]�]�Q.�_`~��_a~�S�P���������_��_��_��_��_��_��_��`
�`�`�`�U��������V��V��z�������[/�[0�`��`��[2�Q1�V�j���N��L�_�VʉV�V��U�V��E�V��C�P��?�V��	�V��V��P��VЉS�V��C�V��B�VщS�V҉S�VӉS�S�ʅY����U\���w���S�X��X��WG�WH�Z����Z����[$�WU�y���_��_��_��_��_��_��_��PS6%Q�����q�N	�'�
�L��WI���_��_��_��Q2�Q3�P��`��`��P��[�PU���PW�PV�Q�Q�W�W�W�W�PTZQ��i���M� ��$�g��S�S���N�9��V��R"�4�'�V��V��V��V��V��V�	��Q�T�'�_Q'���Ya�G�_R&���P�}�?�̉E�_��_��_��_��`�`�WO�WP�P����/���Q
�Q�Q
�Q�[�P�����
��P�����P����C�cX�cY�cZ�c\�cb�Z3���ca�PR,X��	������>BP��&��(����(�2��

)
��
��Y*:
��W)�e�c!�c"�^|�Y>�YA�YB�YC�Y?�YE�YF�S�-�YG�YH�YI�Y=���YJ�YK�YM�YN�e�c��c��W�W�W�W �W�W$�W%�W
�W�W�W�T��Y6���_o�_q�_r�_p�d��d��d��Y7�`��d��d��T��T��YO�YP�S3�V��V��S4�d��d��d��d��e�e�e�e�d��d��d��d��d��d��e�e�S�؂ƃ��j�قE
�a_�_��a`�ab�T��Q5�ꃒ�N�B�Tj��M���T��T��T��T��`�`�`�`�bȃ �_t�_u�WS�T������d��`�`�T��l�T��l�d��V��V��X��X��X��P�v<��.C7��	-�
��f��9:=��
����O���_4�_@�_A�P��P��P��E�X��V��V��W:���W>�W(�W;	�W9�W@�W)�W*�W+�W-�W/�W.�W4�W3�W2�W,�W0�X��VN����q�P��T���VS�x�V]�u�VT�v�VU�{�VZ�V[�P�P>�!�����ރV	�������P~�P��P�]1
�P����],
�])
�]*
�P��C��X��P����P����P����]3�]4�P����P��P��P��~�`�`�P����W[�WX�S�c��c��c��WY�S�P��P��[@�Q6�E�_{�Q/	���Q=�Q>�V��q[`�_=�_>�VQ�VR�V����pX_�Q0	�Q<�U��O��9�(�P��P��Q+��U�[s�C

��	���Á�8
�[R�[S�`I�`J�c��c��c��c��c��b��b��b��[F�[T�[U�[G�`8�`9�[L
�넀�[I�[f�[g�[M
�d�b��W��ˊY�W��ˊY�`K�`M�`F�`G�`N�[^���[_�[`�[a�Q��U�[s�C��
����8	�T��T��T��b��[P���{�	�[l�[m�[n�[j���}�[k�[c��r��[s�`R�`T�`U�`S�[r�b��[d��w�[t�O��L&"?���σ"��+��	���U��Qd�	�I�Qg�[�
�?�c��c��Qi�Qj�[��?�[��c��c��Qh�"�[��Q_�Q`�Qa�Qb�Qc�[��c��Qy��W�Qz�]�c��Qn�Qo�[�T�c��c��QS��̄y�Qq�Qr�QW�QZ�QY�QX�Qt�QT����Qu�k�Qv�k�QU
���`\�`]�[w�[x�QJc����[��[��T��T��QK�~��1�c��Q��Q~�%�Q��Q��Q��Q��Q���Q���[��[��Q��Q�
� M�\��;��E���W��[��c��c��c��c��c��c��Q��1O�A;�*�C���c��c�
�c��c��Q��X�c��c��c��Q���,�Q��Q��Q��[��Q��Q�
���Q��Q��Q��W��Q��Q��W��Q�	��(�Q��Q��d
�d�d�d�Q��Q��[��Q��$��Q��Q��Q��"�"�[�#�Q��[��[��Q��Q��Q��	��d�d�Q���1�Q��Q��Q���?�&�[��[��[��[��[��[��[��d�d�d�Q��Q��d�Q���@�[��[��W��@�O��L)#;���̃$��*�����[��QE�QF�[��[��QM�QN�QO�QQ�Q����[��{�[��z�Q|0���O�[��[��[��Vn�[��[��[��[��[��[��W��W��[��Q}�	�[��[��[��[��[��[��[��[��[��[��[��Q��[���O�������u����6!
3�,����'

0$��!�aA

r+���Z��p'�R��R��R��R��\5�\6�^��U��Vm�O��\9�\��\��\��R_�m)Y���+-�.�>�W�	U�W��W��W��W��W��W��W��W��W��W��`��\{�`��`��\��`��X�����X�����`��Rf�K�`��`��`��dT�dU�Rd�d_�d`�Rm���Rn��Rp�Ri�u�`$�`%�`��`��`��[����[��Rg�Rh�[��\�Rj�`�?�`��`��R��Rk�\��`��`��Rl�R���#�V�G�`��R����4
�R��`��`��\y�`��\z�`��`��R�R��`��R`�[�(X*��5�-�<�`��`��W����	�Q⁧��`�G�`��`��`��Q��`�I�`��`��`��Rq��'�h�C�`��`��Rr�`�4�`��\��Rs�Ru�`��`��`��`��`��`��`��d[�d\�`��`��`��`��`��d]�`��Rv�J�R{�R|�`��`��Q����`��`��Q��Ry�Rw�R��`��`�á%�X�?Z�ׂ��\��\��R��\��R����`p�X�OX���`m�\��UÇ`/��\:�\;�\$N�\%M�T��T��U�,��=�%(�Q�W��W��U�+���a&�P���W��W��W��W��W��W��W��W��W��W��\-�\-�W�4�5�\V�\W�\X�W��?&�\*�\)�\/�\.�\-�\+	�\O�\0�\1�\2�Q�
p�Ӂ�����6
3�,����''

0	��+�]=q+����84�)'�Q��R��R��d^�Q��Q��Q��`w�`x�\E�\F�2�`|�`}�Q����X��
�\��R��X�Q�
�܃$��	���\�T2�Q��΃/�z8%�J�\i�\j�\m�`��R��Q��u	0�\k�\l�\��\��d!�d"�Q��A�|
��B

��5Z��4�2	�\�\�@�\�@�\	�W��R�R�R�W��R	�W��R
�R�R�R�d'�W��d(�\�7�\�7�W����R!�R"�R�R�R�R�����R�R�R�R�U�B�R$�R'�R%�R&�R,���R-�R)�R+�Rm�A������R5�R6�Rl�H�������`f�`g�R3�R4�R8�R9�TA�R<�TO�TP�TG�R:�	�R;��T@	�TE�R=��TT�TU�R>��TX�TY�Q�,�
�t��?

��
~�G�P�RB�\�\�RC�RJ�RD�RE�RQ�RR�RL�RP�RN�RS�RT�\�R@�`�RW�RX�\�\�RA�Q����R[�RY�RZ�\���\��\��\�\���\���T3��
�d/�d0�^��^��T:��	
�T;��	�d4�d5�d<�[��[��T<�T=�d=�d>�T4��
�Q��Q��T5���d.�dA�R��M�8�R��M�8�R��R��R�#���[$���(#���΂��R��R��U��U��U��U��X6���dd�de�X7�R��\��R��R��R���R��X$�X(�X%�\��\��R�����2*�����R�����U)�\��\��\��\��b��X;�XA�R��R��R��R��R��X<�X=�X>�X?�X@�\�$�R��R��\�&�\�&�\�#�X8�X9�R�
���S��
�
"�����|	�\��Wv�\��]�]�Ww�]�]�\��\��]�]�\��\��R�F���U+���R����q� �R��21�]�]�]	�]
�R��aX�aY�aZ�a]�\��]�\��\��R����A&���-.�R��R��XD�XE�XC���XG���R��R��X0�X1�X2�X3�R��R��R��R��D���X#�XI�X!�R��R��b��\��1�R�oi���с��t�ۂ?�H���d|�O��m��Th�O��m��Tg�R�J�R��Q�
�A���~�l�V��Tkk�����T��T��T��T��Tmk���	�Tn�To��a��a��Tp�Tq�R�I�'i�r���T���?
����S7�b�V~�Tw�Q���;�����_
�d��S(�O�d��d��S�8�.�S'�Tb�Tc�T]�T^�S9����� �a��a��SF�SH�SG�SI�SO�SM�SK�SJ�S:�����O�Y����������4".	C<
m
����))
��.��F��/��lq��@r #[I%
*o��{�:��Xh�VK�VL�Xi�X]�U��f�U��e�a��XU���XV���XW�XX�X^�c9�b
�b�SX���SY�SZ�S\�U��U��d��SQ�SR�SV��.�SW�UM�����a+�UN����c���a��a��UG���]e�]g�]X�]Y�Pz��1��hl���g
����uz�����b��b��b��Xq���P{�yG6�hh���i�����uu����Z
�Z�UJ������R��R��Xp�����c&�c@�Z�Z�Z�Z�Z�Z�R��R��]Z�]`�b��PZ����]\�U;�?�W|�W~�W�U<�=�U9�U:�P^��Pe�Pa�P`�P_�W��W��Pb�Pc�PY���A����
�R
�񁖄K�/�ǂ�u	I�l��x�Q!�S���S���d��d��d��Py�̓#�#����l�a:�Wi�"�Wk�P[�"�^`���v�
�@�	����d��C�c�d��d��d��^��^��S��]b�]��)�]��]��]��S�������S��S����Ӆ
	��]q�]p�S��]w�.�S��S�����	���o�c6��]r�]v�]{�@�d��d��]|�D�]}�D�d��d��d��X��5�X��d��d��Pg��S�)�v�����hX�b�Sa�Sb�d��Sz��;�S{���S��c0�c1�V�d��Pl�Pm�Pi�Pj�b!�b"�Pf�P�����-�3p�B�UP�US�P��؅��P�	P����F
�U
���&���l��m���򁔂+S	I�����M�Vb���Vc�G�^�X��T���T
�^�Uk�X��X��P��T�c��T�Z��T�Ui�T���Z��Z��a��a��cs�ct�X��X��P҅��
�C���^"�^#�^$�S��S��_��_��]��]��cv�cw�cx�cz�PӃ胬��2���]��]��]��S��^&�^'�]��]��]��]��]��]��^)�^*�P�G�,��	�Z��P��^�^�^�^�^�_�^�P�������	�X��^�Y�P��^�S�U�4�χ|r�T�a��a��a��c}�X��X��]��]��W��W��P��2��=��K>����L�������$����+s���7�Un�Uo�T�T�Z����Z��Zh�Zi�Zj�Zk���Zl�P�
�3��-�K@
��Rn����������+���F�S����χ��d��d��S��S��S�-����S��S��S銥�Sꊥ�X��Z��Z��[�X��X��X��X��R
�%���S��S��cr�P�NJ遄�]��S��]��]��P�����u�]��]��]��]��]��]��S��]��S����W��W��P���8�ņ[�%�S�8���~�]��]��]��S����Q�$���]��]��]��P���P��]��]��]��]��]�P�]��]��a��a��P�E����_
�́�
��
��}|��&G
�������'
GE	�����M�[�[�[�[�[	�cm�T�T�a��a��a��S�)����$�S��E��n�����I�_��^����S�����S��S��P��<���[��a�����ƃ�.���_�T�d��d��X�	�X��T�X+���s�cq�S��S��S��S��S��S��S��U~���q�U���p�[
�[�P���I�����b0�P��o�Uw���o�Ux���n�S�J���P�L����P��P��P��P��P��P��P��P��P��P�L���P��P��V��&���T��b��b��b��b��b��b��^��^��U5�U6�b��b��b��b��b��V��V��b��Y1�Y2�T��T��b��b��b��b��b��V��������b��V���V��b��Y5�R�k/�ˁ�82���p�����Q�G(�Z)�U.�U/�S��S��Pr�d��Ps�Pt�R���0�ˁ�C*��Ĉ�>�)�J�_J�_K�Z&�Xb���b�R���/������*�)�r�d��Xa���Sg�V@�VB�VC�VE�VG�Pu�Pv�Pw�VH�R�j.����6(���p���݂G&�Pp�d��Sh2�ˁ�85���Z*)�Z+)�Wl�X��X��T�)�!�U	�U
�U�U�e*�e(�e$�e%�e&�e'�e��e��b��>�e�b܃W�b��b��b��b��b��b��b��T��f�e:�e=�e?�eJ�eK�eB�e@�eF�eG�eI�eC�eD�eA�U�0�U
�0�e>�P���b��b؃��en�e6�P�42�e\	�e^�e_�eg�eh�ea�eb�e]	�e`�eO�eQ�eW�eX�eZ�e[�eP�eR�U-�U,�ev�ez�e{�e~�e��e��e��e�T�)�U�ew�e��e��e��e��e��T�)�T�%��e��e��e�e�e��e��e��e��e��e��e��e��e��e��U�	�e��e��e��e��e-�e.�U
��et�eu�U�U�e�e"�e#�e �e��H��0�&�aEE�	������6�*�P�2��Q�X��W�������n.��	S�B�3�@	�7‡‡	‡‡‡‡‡‡‡�}ŋ��}��}�ˆJ�}��w��w�‡‡ˆR‡�w�‡#‡%‡‡ �}ˊW�}��}��v\�v]‡&�w��w��o��o��o��o��o��o��w�#�n�w��w��w��w��w��w��w��w�#�jˆPˆUˆVˆSˆT�o����y‡‡‡
‡€��y‡€��n/��Q�>�Q���5	��w��w��o�‡(�o�Œ�‡*�$�r��8�g�w��w��w��w��w��w��w��w��w��w��w�ˆC�w��J�w��w��r��7�w��w��w��w�‡)ˆDˆYˆZˆ]�w��w��w��w��w��v^���w��qT��7�a�qv�qw�r��r��r��r��lc�e������l`�la�e������l\���l[���lZ�� �lX()*�qy���qz�q|ˆ�ˆ��q S��(�K89�q{��+��…�…�…�<…�…�…�=�f��_�la�6�<�9�f�!	
>����ˆb
ˆdˆc	ˆa
ˆg	†]†^�g�_�V��†N†L†M�}����n^�U��†P†Q†R†S†T†U†W†X�na���n_���%�ng�n`���q+�q,�q.�q/�xb��†<†=ˆqˆr�xc��†Y†Z†[†\�nk�`���:���9��ˆ�nl�`�����9��Œ�Œ��f��d�p��p��xa�f��҇��lX�6�>�� �	
��†I†J�g���u��u��u��u��z��p�0�9��‚
�M†b�&†c�&�q4�����g��g�‚'�g��g�‚(‚*�g֛W�g��g��g�‚�q1�q2‚�Y	‚!�Y‚"�U‚#�Y‚$�X‚�Y�gޞ��gߞ��q0‚0‚1�g��g��g��g��g��g��g��g��xi���g��g��g��g���g��g��g��g��e�`��=

����%!yJ��0;Kv��Y���a*��f*��/g�����׃�66	����e��sl�e��q��q��q��q��mF�C����/�e��e��s��s��h�����h��e��e��e݌��eތ��e��f�C����/�s��s��s��s��h�������ɂ��h����q��q��s��s��h����s��s��s��s��s��s��s��q��q��h������T�fS���fT���q��q��mo�mp�z��z��me�mf‰��s��s��eȂ`{��7�q��q��q��q��g*���q͂��g+�q��q��g0�q��q��q��f���f���q��e��_	s��7�g/ˆ��q��q��f�f�eւ\�]�
�S�u���s��s��s��r�r�h����h����q�^�q�^�q��s��s��s��s��s��q��fK�dž���b���g�g�g����b���q��q��s��s��s��s��q��q��q��q��e׌��
�S�t���e��q��q��x��s��s��e��e��f��q�s��s��r�f��fL�f��f��fM�h����<��g=�P�V���s��s��f��f��r�r�q���q���fN���fO���g>�O�V���g@�fC�u��%���&Y
"��"��ć�����y��S‰�T�g��g��g��g��g��g��g��g��g��g��g��g��g��fA�u�A�fB�u�A�g����I�g��g��g��g��	��J�l�	�l�	�l�	�l��l��l��l��I�M�r�g��r�r
�g��fF���0���gE�gF�gG�gD�gA�gB�gC�q��z��z��f;

�u��%���%Y	�;N"����o��gQ�gR�g��g��f<���z���g��gO�gP�g�V�5�gs�gt�gU�gV�gW�g��g��u��u��u��gv�gw�r�r�gy�g}�g~�g

�|�gZ�gY�g{�g|�ga�gb�g`�g_�g^�g[�g\�gd4�ge3�gr�fG�fH�gK���gM�l��gL�g����8���s��s��g��
��7���s��s��s��fU�T�����tg!�2M�l��l��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��f]�f^�y�y�y�y�f��y��f���y!�y%�y�y �y"�y#�y'�y(�g"���g#���fq���fr���y)�y*�yt�y-�ft���y��y��y�y��fs���y,�y��y��y��y��y�y�y��y��yC�yD�yE�u��y1�y2�x��x��x��x��x��x��fu�fv�q��J�fm���fn���y/�y0�q��x����x����x��fe�x��x��ff�y9�y:�y;�y<�y?�y=�y>�y3�y4�y8�x��x�ˆ��fg���x��fh���x��x��fd���x��f=���yN�fz�y
�y�y�y�y�y�f{�yR�fw�fx�u�l�fy�f>���yO�yP�r8���fV���yp�yq�yr�ys�ym�f|�f~�yo�yU�yW�yX�y[�yZ�yV�yf�yg�x��x��fW���y`�yi�yj�yc�yd�y\�y_�y]�ya�f����e�������6��x��x��e��yF�yH�yG�yI�f��x��x��e�������?
�1�yJ�yK�z��y�y��y��z��y{�yx�yy�y|�y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��x��x��x��x��x��y��y��f\-�!���tg�Ӄ������fa�}�fb�}�fc�}�y��y��y��y��y��y��y��y��y��y��f��-�y��f��.�y��y��y��y��y��y��y��y��x���x��x����f��y��f��:�y��f��@�y��f��y��y��y��y�
�y��y��y��y��y��y��y��x��y�y�g�X���*���y��y��z��fj�fk�q�z��y�h��h��h��z��z��g�X����*���y���y�y��y��h��fl�h��y��y��y��y��y��y��y��x��x��z��x��x��z��x��x��x��x��u��u��x��x��l������c�l������c�e�_>:=
��	��%yF���p��;����^��!�;%)�?Me#��]	�������[
W	��
��€�ˆ��fJ�xG�xB�h����xD�xE�xH�p���p��p��p��p��p��p��p��p��p��p��p��p��p��q
�q�q�ms�mt�mu�mv�p�	�p��p�	�p��p�
�p�
�g�i���ߏ�o�g�g���P�g	€��s��s��g�����p0���6��m�np�nq�g��ns�nt�lf�h�4�]`���%v��h��J�h�€��sЎ�s��s��g5�g6�sю�g7�g8�g9�g:�g;�h��F�D��7�s��h���h��q�q�q�s��s��g�|&��j
���4W�8���l��u�s��s��mV�mS�mT�mU�q��q��g�g�g
�mM�e������e������e��e��e��e���e���mI�;�=�e��	�e��q�	�e���e���mJ�:�=�ma�mb�e��e���m��m��g�����b
���4�����g�mW�q��q�‚‚�g!�z�q�‰t‰u�hŒ�hÌ�p��h��h��p��g,�g-���p��s��s��s�‰q‰r�s��s��g����b��v��z��z��g����b�g�*��4#),
��
������2!�݃��#
PV��U6%%�I����j
���i�i�{��i��i��i��h������h�h��h�h�h�����i��i��i��i��h�h�h�h
�t�t�m��m��‰�‰��h������h�h
�h�t}���i;�i8�i9�i5���i6���t���iE�iF�iI�iJ�tA@���tB�tC�tF�{��{��{��{��iR�iO�iP�i݋m8�iS�iV�iT�iU�t��t@�t~�����i<�i=�i?�{���{‚��t��B�t�‚�‚��h�5��F�����{z�{��	‚��i�i‚�‚�‚�‚��{���i��i��{I�{J�{F�{G�io��L�6�iv�ir�ih�ii�ij�ik�il�im�ip��H�6�{D�i �i!�is�it�iu‰��{��{��z��e���X5��.���{Q�{R�e��{A�h��h��h������a‰�‰�‰�‰��h����{��{�‰��{T�{U�{N�{O�{W�h�m���h�{��{��{��{��tP�i�‰��{��{��h�۔��h ���{{�{|�{}�{��i�
�i��h����H�{��{��h���G�h�D
6����y:"���
����62�az#�M���{��{��{��t�͉���t
�{l�{m�{n�t�[�{��t�Z�t���t�i|�1�i���{h�{d�{e�{f�{g�i}��:�{��i{�i��i��i��{j;�{��h�(
1������:	������+��%�M���i��i��m��m��iB����t�t�h%�Ё����:�����i��i��iy���:���t/�t�s��t�t�s��t�t�t
�t�t	�iC�i��i��i��tl�tm�{��{��i��i��i��{��h��h��h��h��i��@�z��{��{sE�h�����i��i��h�‰�‰��h��n�["���{��t2���t9�t5�t4�����t3‚s‚t�t6�t7�i��i��g�*
��#	&
��
������2�����#

O	C�N5!
�I����j	���{��{�‚�‚�(��‚���{��{�‚��{��{��t<�I�t=�I�h�r���8�ic�id�if�r>�i�z��χ��z����f���f���‚�‚�‚�‚�‚�‚��h
�m
�����K�����wd�I?\����	‰�Š�Š�Š�‰�‰�‰�‚~�;‚�:�i&�USŠŠ#ŠŠ�Š�Š��i#Š$��Š%Š�i*�SŠ&Š'Š(Š)�i+�fŠŠŠ Š"Š��i'�SS�veŠ�ŠŠ�Š�‚}Š�Š�Š+�tVŠŠ‰�ŠŠŠŠŠŠŠŠ�tWŠŠ	Š
‰��{����{��tY���hآ�h��h��h�‰��h��i2�i3Š*Š6Š7Š9Š=Š:Š;Š,Š1Š-Š.Š/Š0�z�JŠ3Š4�rCŠ@ŠAŠEŠFŠG�z��h��rDŠ>‰�fŠ?�i-���YP�f���[����<�{��{��tyŠOŠP�t�i����o����7��<�z�"���{�{�i.���{�{�i/��ŠJ‰�gŠLŠMŠVŠZ!ŠnŠoŠpŠcŠjŠdŠeŠrŠvŠwŠxŠsŠtŠ�Š^ŠyŠzŠ{ŠaŠXŠYŠbŠ_Š['Š�Š\Š�‰偬Š�Š�Š�Š�ŠRŠ�Š�Š�ŠQ�hԢ�h��hբŠU�t)���{�t`�ta�tc�td�te‚��;Š��i��h�{�{�{�{�{	�{"�{!�{
�{%�h߁�����;�h��i��i��i��h��h��iڒ�i�Š��{+�{,�h����&�K����	qc�|
R��
��(��Š�‰�‰�‰�‰��t\�t]Š��t_‰�‰�‰�Š�Š��i��tX�i̒���;�%‰灲‰��i$�i%Š�Š�Š�Š��i��fN���ć�d��Š�Š�Š�ŠŠŠ�tq���tr‰��Š�Š�i��lŠ�Š�Š�Š�Š�Š�{.��Š�Š�Š�Š�Š�‰��z�Š�Š�Š��z�‰�‰��h����k�†8���h匃�k�i	���������{��{��{��{��rF�i�E�i�i��i��i
���tN�tL�w…%�{��h�I���W����‰�‰�‰�‰�‰�‰��{3�{4�i���i��‰��h�I���W�����t#�t$�h#�����h$���"�i�8���rI�rJ‚�‚�‚�‚�‚�‚�‚�‚��i�i�rH‚��i�i�i���e��|����
������������P�j�j�i�������Š�Š�Š�Š��t��FŠ�Š�Š��i��i��t��t��t��t��i����k��‚��i��t��t�Š�Š��t��Š�Š�Š�Š��|�|�|�j
�|	�j���|�j�j
�j�j�|�|�|�|�|�i��i��i��i��i��i��i����i����i��m��m��h'��&�����h(��&��‹z‹{††�t��d‚�ƒƒ‚�‚�‚�‚��h/�e�b	ƒƒƒ�j�jŠ��j�����t��t��t��t��t��t��t��m���t��t��t��t��t��t�‹�‹��t��t��t��j���	����t��t�	�t��t�
�t�
‹~�j�˗�t��tЗ�h,���}3����
������
�G�t��t��|�m��m��h)�DŽ��������t��x�|�h*�i�)�����j�j�����j�����h2��xTc)�#�ȁ�
�������;(��
���:��Pg�^����P���gL�D��„��u{�u|�k�u~�u�u}„�„�„�„�„y„z„|„~„}�|��|����|���ƒkƒ<…+…,ƒ��|��|��h6�h7ƒ��|�ƒ��|��h4�h5�j��ہ�„K�k��k��k��k��k��k��k��|��j��N��u �u!�j��]ˆ„��|�ˆ
�k�J�k�k�k�k�E�k�j��]�}„J�}�k{�j����kw�j����j����h>�h?�j����j����k|�j����j��j���NN‹'‹(‹*‹+�k
�k�k�k�k
�k�k
�k�|͇���‹�j"�|�„L„M�|��j�j爊�j����kj�kk�u��u��j��j��j��j��j��j��k��j �j��j�D�j��C�j��j,[		"	0bV��c�~]��g�]
�_�|��j2�j3�j/�j0�j1�|�ƒ�ƒ�ƒ��j��j��j'��)�.�\Sƒ�ƒ�ƒ��j+����ƒ�ƒ�ƒ��uA�uBƒ��j(���T�\
Gƒ�ƒ��j)��
��K+ƒ�ƒ��j��j��j��|��j5�j6�kH�|��|��|��8ƒ�ƒ�ƒ�ƒ�ƒ�ƒ��jE��I:�����R9����jf�jg�jIoI9�2�R�-��j��kI�����kJ���j�C����jܚ+„„�j��*„	�p��p��j=�Vƒ��j>�j?�j@„„„„„�k�w���h8�j:��C���j<���k�k	ƒ��k�xhƒ�ƒ�ƒ��j-
	[	,bV��B�~]m��g	�VƒEƒF�k�����jƚ��}J�}K„��j4���G�؈7�j��j��p��p��p��p�ƒ��j��j�ƒ�ƒ�ƒ�ƒ�ƒ��jB�jCƒ�ƒ��j�lƒ�ƒ��k%#���V�L��„„„„�k��k��kP�̐„„„/�u�„#„"„!„%„-�hG�L„„„„�hN�hH��kS�hA�&�hB�*�k&%���E�h���L���kO�|����Ղ(�}!�…<„„„�}:��…7�hO�i���Ï�„�jJ�-�]�cƒ�ƒ�ƒ�ƒ�„A„C„Bƒdƒuƒv�|ᇄ�|��|ֈg„@�|�^�|��|��|��|��|��|��|��|��|��uM�ρ�h€�@„4€�€��<�uN�ρ�h…�,……………�'„9�jK��	�B�|��|�	�hP���hQ�|�
�|�
€�€��j!�cj�<��k��k�i�<��k��k��k��jL�"����Ik8�҅-���r]�r_�rb�r^„D„E�u9�u:„F„G�u<�u=�u/�rc�rd�re�rg�u2�u3�u4�k+�jM�!��
����7����†„�†�t�H�$�u5††�t�P�#�u6�}1�k/�#�k1�k0„N„O�}#�/
„Z„W
„U	„]„\„_„`�k3�k2�k:�k<�k=�k;�k6�kA�k5�k4�k7�k8„i„j�jO�jP�uP�uO�uQ�j��j��k��k��hS���`���S��„�„��uV�k���Ђ3�|w�|x�|y�|z�||�|}�|j���|p�|o�|n�|k�|lƒ:�k��E�k��^���S�����ka�kb�kd�ke�k`���9��|,��}A�}B�k��k��h3��5NP	[
��ȁ��lD 9���,g0	*�|��:��P!/��.d#��
����0���k��k��k��k����}M�|�=v�}x„�„�„�…A…B�k��k��u?���}�}�}O�}P�hV�m�hW�k��k�ƒ�„rƒ��|3�|4„s�jb�@�>�]�숄��„��t߈]�jc�@��������„�„��jd���je��‹"‹#‹$‹%�hZ�h[�k��uj�uk�}�ul�um�jR�D�ԃpn6���B�{���`0�j#�h]�5�ƃ��V`w#)��h�
������„tƒ1ƒ3ƒ4ƒ2�},�#�}-�"…Q�ub��K�}V�}X�}Y�}Z�}�h`�hf�ha�hb�|����|��+„��}�}�}���„�„�„�„�„��uc���uf�ue�ud�ug���uh���}��}��h^�4�v'�P�����ƒ5ƒ6�uo�|��|��|��up�u[�u\ƒ�ƒ��}8„u„v„wƒ�ƒ��jSM��K��� ��T4��
��

	�~�*	_�%<%��
„��kC�|F�j��V�j�‡�‡�‹�kD‡�‡��|M�|O�|Q�|N„�„��k������ց�„�„�„�„�„�„�„��k���k���u
�u�u�u
�u�k��k��}^�^�|@„��ji�,
�:x���j��j��t��t��t��t��j������<�j������<�k��k��jj�,	�8�Y���|T�ur�j����j����S�|W�us�uu�ut�k��uw�ux�uy�k��k��uz��ro�}�}��jQ��j�jr�jq�jp„�„��e�����@�I�5�"��F��	�hj�hi„�„�„�„�„�„�‹�|A�|B�ho�Z�hq�Y�>�hr‡�‡�‡��e�������4�>��@��
„��_„��^„��}�‡�‡�„��hk‡�‡�„�„��ht��„�„��hu�j��/��D�Ljt‹�u��j��j��j��d�j��cƒL„�„��js'�����x���j�^�jt�����k��k��k���D ��-%ƒMƒN�|��|��|����|����|�
�|�
�p����<��[�„�g„�g�|/�%\�jTP�

�Ձ����@4��
��
	��(NB����|ɉ�|ʉ„�„�„�„��u�F�u„�„�„�„��k��3�A�t��t��|[������t��g���t��t�ƒTƒU�jv�@�D�O��[ �|b�|H�jz�|I�j{�j|�jw�>�jx�kG�u��j��Â���„�„��j��È���|��|�…S…W…T…U�jV�jW�jZ��.�z������'�|��|�Š���Š���ƒ ƒ!‹‹�kp�j������?�₠��/�u�ƒbƒc�u����kq*�����m�����kt�u����j\ƒ�ƒ��|�ƒ��j^�j_�j]�j[������	��!ƒ#ƒ$Š�Š��jX��ƒ(�jY���hY�u���݆�ƒ΁���„oƒ+ƒ,�j$�݇s�&�ss�}��j%�݇s����ƒl�l
�…��-†5�lˆ�…��+�l�����l�l#�l$�l�����xr…��l�l�l �h�l!�d�u��l�l�W���!�p��p�…��l�Q���l+�Q���l(�a�l)…��l!]<0��s�N���'�}H�Z	�,�I�56@M����%�ƃ�lE�lI�lJ�lF�g$�j���l��l��m��m�…�†…�…�…\�g%��g�l5�l6…�+�v&�i�v'…��v7�v8…�…��hx�hy�k�l8���҅����i��l:�m��m��m��m��l;�}��}��}��}��l��l�…��l�|�l��/�l9���ͅ����i���}��m��m��l�S�VO�]!�m�m�m�m�n[…��l�S�}��2�[…�…�…�
��…�…�…���…�…�‹�…���…�…��u�M�s�l���l��v:�p�l�‹�‹��v
�l�‹��v6�vC�vE�vF�vG�v;�p�l�		��4��	�^����/%-(����…�‹�†-†.�m��m�m�l�	

	����	�^7�.$4'����†d†e�vK�m
������m	�m	�����m	�m�m…�…��m7‹�‹�†�}�‹�†�}��l \:0��o�N������
�)�I�^37�)$�ƒ…�…�‹I‹J�l�A�l�A†1†b†+7†4�m'����m,��G�{�P�v�v�v†k†l�m-�l@�lA�lC
����
�36�g�����B�u��u��v�v�v�v�v�m1�m2�m3�lT�ۄ��W ���v�p��p��m0���W��…�…��v �v!�v"�v$�u��u��u��u��lD��E�����])���B�m6�lP��…�…��mՉy�x�lؑÈ�~�p��p��l��ˆ��m��m쁊���o����n|�vP�vQ�n��n��n��n}�n~�n�n��n��vR�vU�vV�vS�m큋�G�ny�G�nw�ܖ:�n��e�A
����
��(9�i��E
�~4	=:
~���s��	"��
V�_��:����D��Qc��I
��c
T ���"$p	��ŒM�v��v��v��v��v��v��oU�oX�oV�oW�vh�~�~�~�~†�†��~�~\�~Y�~Z�~[†�†��e��~$�~&�~'�~%�e��vi�o���uڊ�~��u��~��n��L�n��o���o�o�~��~��~��~��o����~��~��~��~����~��~��~���e���0�i�U�kj�)�U���" ���
������‹�‹�‹�‹��B���I�J�n��t��n��z�E���B�vk�ʼn���	
0‹���������‹��~)�~,�~+�~*�~-�~.‹�‹�ŒŒŒ‹�‹��n����Ď�ŒŒ�n��n��n����n��n��n�‹�‹�‹�‹��vl������;�~]�~^�~_�~`‹��~1��‹�‹�‹�‹�‹�‹�>Œ&Œ'�~e�~g�~f�~h�~i�z�{�|�~��n�;���ԉ(�~w�~x�~v�nʈ��a�~j�~m�~l�~k�~n�~o�~|�~y�~z�~�~~�~}�~��~q�~t�~r�~s�~��~��~��~B�~C�~��n�`��‹��~4�~5�n�b��‹��~��~��n�]�>���n�L�?S���~��n됡�n������n搤�~��~��~9�~:�n�
�h�T���'�T���"
��ˆ4�ˆ5�Œ-�~��~��~��~��~��~�Œ,�~;���~<�v��v��~=�n�&;����3��6e�!��oŒ�N�O�M�~>�~A�~@�~?‹�‹��~d������ŒŒŒ�n�%������5e�%��k�~b����������Œ8Œ1�������������li��w���R�����mO���������v��v�Œ>�S�U�X�TŒ?ˆ��}��}��}�ˆ�ˆ��}��}��}��}��}�Œ�Œ�Œ��pė�^�p���^�lk�k
f�a�����ll�ya�������~G�~H�}����~J�~K�������lj��&�L��g�����ف���N���������u��u��u��m��rz�}ւ��s�a�b�c�_�qe��^����[�l
�M�0��_��ˆ�ˆ�ˆ�ˆ��v��v��v����n��xv†��f�h�i�l�k�g�v��v��v�	�v��v��v��v�	�v��l�L�0���]���v��v��m�q�n�o�f3��4�P�8&���b����>	��u��?�}��}��}��}��}��}��}��}��}��7�;�<�:�8�9�n׈��v��v��n؈�Œ�}��}��s�v�u€�€��t�nيv�xP�q��u��n܃���n݇��nއ��n����8%���H�K��[�����vݒM�h|�[/���=�E�C�A�>�?�vw�vy�U�vx�}��}��~��vz�x�h}�^/��€x€|€}€z€��f4���f5���f7���q�€€
€�n�邓|�v��}��}�€€�n����	}�����������~��~�~���~���n��n�€€€�~�~	�~�~�~
�~
�~���������������������~�~�~�~�~�~���������n��n�������€���������������v��v��v��v��n���	���r|�V�r}�V�~��~��r~�Y�Չ����r��T�����������r��r��qX�3��qY�����������������������~��~��n���	�1�&���/�u��u��u��e����Վ:�r��e��������e�����e����e��e��~��n��n��~��e�
	�{
���r��]�������
��
��d
�]
.�O��JWS�s�'�U�,p��$v�v��v��v��F�v��F€�����€�xT���o�W�o�`��|���j�:��~��~��~��~��o�V�v��v��e���y�0
���ω�P���a	��	�(o'	��o�oq�Q�ot�oy�os�X�or�X�ou�ov�od���o4�o6�o5�}��}��oe�o8�oZ��€1�o&
�o(
€4€5�~��~��~��~��o[	���o./�o �o!�o"�o_�o/0�o]�o`�oa�~����qZ�@�o=��o<�\�~���€M�o>�����r�v����v��~����~��~��~��o?�oB�o@�oA�vs���vu€D�e��&�P�^����J/ŒVŒW�e�_�e��e��&�����
�
€I���xV����1�2�4�3�5�6�x[�xY�xW€'�oD���oE�f��e�~��~��~��~��~��~�€P€Q�o:�'�o;€S€V€U€T€W€Xˆˆ"ˆ ˆ!�f��A�������}څ��}ك����}؃���€l€m€n€h€i�o3�(�€]€^€\€`€[�oS�oT�l����#)��R�6�߂m2����%��}	�u��u��~��~��~��~��s�F€;�v�€A���~��o)#�o*"�o#J�1�g��o2€ €!�oN���oO�oh�/���6€�onŒ\�o,%�o-%ˆ6��oI�oJˆ7�ˆ8�€q��€s€v€w€u€t€rˆ�Œk�~O�~R�~Q�~P�~U�~V�~X�sv�sw‹�‹��~L���~M‹�‹��n��n��n��n��n��n�"�f����ۅ���J�ÂO���‚K‚L†��f����_�>†��f�������\
0/Y1����h;	u�m��C��
>a��	&OPXJ�Q�wdD	�5�HO��	�����w��w��w��w��w��w�‡^‡b‡_‡`�r����v��v�Œp�r��]�v��v��v��v��v�
�v��v��v��uŒmŒnŒr�r&���r'�y��y�Œ��y�†���†����w^�����.�ց�#��������ȅ�����r�F��‰‰�r��V�r�E�r�E�r�D�r�=���z2���r�E‡S�y��w��w`�wa�wb�wc�w]�k����"���we�r�ˉ߂4�Ձ�‡J†�‡D�y��r��
‡B‡E‡G‡H‡Fх�҅��wf�wh�wi�wg�wj�wk�z=‡w‡x�pJ�pK�f��f��f��f���ā��� ���낐@�)��†�†�†�†�†��s�s7���s���w��w��w��s��s�s �€���€���€����w
�hŒw�w�f��^�v��w�f��]�o���!�o����6‡[�sC�sD�sE�f�������9�� �4?���f��f��f��f��f��s��k�ǂ��s,�o����s(�{��€��s��l�����s&�{���s)�{�s*�z�n"���]������>k� �]��3&K�m���zI�zJ�p�z�z�z�r��ZP�z
�w�r����w�w��‰‰�p�����w5�w6�w7�z�w.�w/�w0�w1�r*�����w9�w:�z�w<�w=��z�z�z�z�z�z�z�f��ɃN�5��(�2�u�f��w�w�f��p����f���5��D�w�w�h����zB�
�
�
�
�
�
����s`�n#��X8\�������>
v
��]~3&O�l���z�z!�z"�r�I���w?�w@Œ��w'�w&�z�r��K�.�kŒ�Œ��r����w"�w#�n$�ރ��4����X~���q��	Œ��z#�͋��z$�p�1�)�������f)]�����^������wB�wG�wH�wC�z&�z'�z(�����fЊ4�����!�����f����>�f��f��f����&�#‡��wM�wP�wN�wO‡�‡��wQ�wU�wR�wS�wX�wW�wV�f����y��f����n(�n'�w��f����#�"�fő��f����sV�zK�sW�zL�o��wK�wL�o��f�&�����
��K��"A>�ₛ����PZ)��(��ąB�n:�n;�g��g��g��g����s��g��g��nG�B���nH�B�nB���g��nC�g���#���f��f��f�(�����
��K�?G"?>�ބ�������g�r(��ā���Œ����nK�O�f׈i�[�
���j���=���n,�e
�n-�s���…�…��f����[�/��+�z�…�…��n=���n�S�6��…��o��o��x)Œ��x*Œ��w��w�Œ�Œ��f���‰(�r��r�‰)�wo�wn�zP�zQ�zR��f�/����_������������`�zU�zV�zX�pG�pH�x�G�w�b�f��f��p"�p%�p$�p#�p&�p'�w�d�p0���p1�x�x�x�x�x	�x
�o�$����w��w�k�w��p)�p*�w��w�i�w�h�w�i�w��o��o�	����o��o��o��o��o�
�o��o��o��o��o��o��o��o؁�‰*�p+�p,�p-�p.�p/‰+�p2,�A�� �Ё�$���]�o����p4�x�x�x�p3=�	$�€�€��x�x �x"�x#�x%�x$�f�
���
��J��������'����Z�p6�p7‹[‡�‹\�f��<D���s���x�x�x�pX�	�p�p �b‡{
‡|
�f�g�3����
�U����܂`�pm�w��w��pg���^�x(�Y��f㊃�+���T�pe����py�pz�p�p�ph���z�pj�pk�pi��p�p�p�h��4�h��4�f�7���%/�.
0,+(
%����]I*6	�?��9`��	"	FMM)%	.��
P	�L_9
	�)2$�%�,		��‚‚�p�€�€��s]�g��g�Œ�Œ��e��w	�S�w
�e��z\�z]�x1�f‰1‰5‰6‰3�x2‰.‰/�zm�zn�p9�wp�p:�8�ws�wr�f��y�хd��s/�s1�s0�f��y���c�w�w�y��w�zf�p;�pk��6���k�I���f��σ��9<��^���^���wx�wv�ww��g���,�	�s�s�g��;�s�zi�zj�zh�L�wy�w�w~�w}��w����r.�r/�p<‡n‡r‡o‡s‡t‡p�p=�w��f��y�\7���܁����rW����	�uŒ�€�†w�s���zp�zq�s�e�
�s�h†��sQ�sR�o}���u�x�}
�w��w��w��s
=�Ŗs�sM�sN�sO�sI�sH�sG�sJ�sK�o��و�"�z��z��z��z��z��z��z��zy�z{�zz�z��f��f��z��z��z��o��و�!�z}�z�z��z~Պ���s����Œ�Œ��s�������€�€�€��z_�z`�za�zd‹`�f����U�W4e��t��‰�nQ�nW�nR�nV�nS�nT�f�����e�1�t��ˆ��\†�‹��pՅƃ��Rˆ�ˆ��pԅƃ��Mˆ�ˆ��f)�G�x�����>��V�����e��������q���o��o��o��o��f�f
�f�f�n��n��x��x��x��x��m�,�����	���Z�x��x��o����o��x��x��n���x��x��n	���n�n�m�(�o�A�����Z�o��x��x��m��n�n2�Q�o��o��o��o��n�n�f-�.�/�f�d
�������P�%���a���f�f�r��)�r��r��r��f�f�f�f�r�‡6�f!‡;‡<‡=‡?�f&��f"���f�f#���f$���f
�X��%������%�;�����r��r��r��r��r��l�;��f'��
�r��r��f(���r��r��f���j�u��u�� �#�"�!�u��u��f�f��	�u��u��u��u��u��f���r��f�f�n��f���o����������n��e����‹�‹�‹�‹�‹�‹��)�f)�D
�x�����<��T�����c���������DE�f*�f+‹M‹N�n���o��o��f�o�@��剫��ā��)�-�f	�#�v��o��o��n���q
��I�PWYZ[\]_`abcgfeiopX�xK�xLŒ�Œ�Œ�Œ�Œ�Œ�Œ�Œ�stuwvrŒ�Œ�	
Œ�Œ�Œ�
Œ�Œ�Œ��q��Œ�Œ��q���q<&'�q@�qA�qB�qC!"�qD���qF
+�q		��E�f4.Œ�.Œ�Œ�Œ�312/04MIJNLPRSQ>@A?
689;<=5EFBC�qJ�qK�qH�qI�n�L�!!{�@N1�Q1�����-�ځ�W��P����,��������Nf�C;�)��|%�nœj’ڊ�œ�’�•�œk•�œlœm�N+�BN	’܊�’����N,�BN�œ|œ}œeœ�œ�œ�œ�œfœgœhœi’�{�	��œ]}~œ�+-|����œ�œ��Ni�C:��%
����œ^0��œWœrœYœZœXœ[œ\�M��M�’�’�œ_9œ�œa<œb<œ`9œc>œd>œ�œ�ž�ž��M��@���M��,�ق������&	��‘�‘���ȃ���_����
–�–�–�–�”ƃ”�”�”�”�‘��.‘��0��
����–�–�–��“�ك“�–�–�–�–��M��D�
�8��–H–I��6��وA��ŽɆ�����$g“�‘�”�g����‘�“�“�“�“��M��@����N
�"���y��*�΃&���M��Iو��,�>–��–�–����M��C��p�M�F�@�"�&6�-�		�Á��u��3��Ž�Ž�Ž�“�Ž�’D’E“�;�M��M�<=�M�CA�l��*+'()�����e	��-
0/	.1342�M�CI	�$���ĉ�œ
œ"�M�CQ�z�4�ĉ�’��’�’���	����������#<�K��“��M�Eτ��D“��8�^�P���C’�“�"“�“��M���’�’n’o’p’qŸEŸF’r’s“��M��C��.�g‘K‘L‘N’g’j’t’v’w’u9:’h’k�M��M��M�B �@��&�A,

������w��(��“�“�’�’�’��‘�‘��<���M�@�;�X�D�%��Ž�Ž�•E“�“�“��;�T�h���B•D‘O‘P��Y��“���M��M�“���>�t��?’F’G�M����Gs��”�M��B���”�*��•�•�•�•�•�ڄ�ۄ����M��H���M}A<�@~8�$�rc������,,D

`��5T��^��‘�•�M��M���•�N	�N
�N�DV�N�DU”�”����M�‘��M�
�M��M�
�M��N�NU�@Q�2( r�.
Ž
�CžžžžŽ�C�NZ�N[�N\‘y
���s‘�‘�‘�‘�‘|‘}‘‘�‘z‘m‘r‘t‘v‘s‘w‘n‘ožž”�”��-�N_�C��!e��žž’‘�"‘�"’’
•f�����žžžŽ�Ž�Ž�Ž�ž�NV	�@I��s��(
 p�0‘�’’ž žž!����)’’’’ڎCž�NW�C��"a��#•�•ߎ("�NX�NYžž#ž	ž
“��ŽŽ“�•*�N
�@��
��K
��ʂ,*�&‘�‘�•”�”��••••�N�C��9
���U’’’•�•�žBžC�N�M�e�@�D”��M��M��@�D�M����������������”�”�”�”�”�”����–������–��M��H�E•N”���‘‘‘��Z�����‘��‘�M��E �h‘	‘�‘�‘�”�”��M��M~E76�@t��!�rj����*,1m��JS���^��•�NS�NT��“�–�–��NR�A����+�����”�Ž��P“�“�“�”�”��N�@�@��&I\��\Wz�3�b��	‘Y‘\‘a‘]‘_‘Z‘b‘c‘[‘e‘f‘gŽ�’Ž��5’•UŽ	�O• �N	�DK�ڂ�•2———•.�N	�@��&��Ž‘‘‘‘‘�.‘�N�A���%	B��v����Ž�Ž��/Ž�Ž�Ž�‘S���M��M��N�N�y�M
�H�‘�‘�‘�‘���‘V‘W‘�‘�•-‘���‘�‘���‘�‘�‘����*��ŽŽ”�”���H�^�MKlD�@����Q�� �I
)��’’žVžWžT‘�‘�‘����ž]žXžYž^ž\ž[žažb�ND�F��NG�NH�NF�NJ‘э��NE�D�
’#’$Ž�
’!
’ ’'�c�MNlD�@���ӂ{–��M�”
�M—X”�R•�–��_�MKi)�@}���S�� �D	)�‘��b��‘��a���b�`�MMiD�@����NC‘�Ž‘̍�ždže�e��(�����:��‘G��”
”�z���	R�)�
d;���V��Ž�o��'Ž�oŽ%����ŽŽ#��•�•�žs•�ž�•鉒Ž;����žzŽ<�@ž~žtžužnžpžqžožmŽ:����	ž�ž�•�•쉌žh‘�‘�žiŽ��Ž’,�~��4����Ž‘�‘�‘���””œ�|Ž)��	œœŽ*œ"Ž+œœœœœœœ#œ$œ%Ž,�������ς�g�������ʣ—b—d—c—e���� —i—k��&—j������ς�g���k�}����ž�—l��—s—u—tœ7œ8—o��—n����—mœ9œ:—p—qŽ-Ž.‘�‘�‘�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�•�ž�•���ž�ž�ž��{���	`�)�m;��3�$Ž4ž�ž�Ž5ž�ž�ž�ž�Ž7Ž8‘�Ž$�Љi��•�œ=œ>œ?‘ن�������œCŽ	Ž!Ž(ŽŽŽ%�Ї��n•�‘�‘�‘�‘��‘�‘�’-’.�M����@B-�����:�����K2��?����E–C™™™š�—��o™���™�™���–D™���™�ŽcŽd—ƃb—��a—�—�—�—�—ʃa—˃a™�™�—ԃ\š.—Ӄ\—�—�—�—�—�—��x—~—�——��x™�™�™�™�—Ńb—�—�—�—�Že—�Žf–8™���™�ŽiŽj™��˜Z�=˜[˜��8˜��8˜��`�؁�˜��`˜��5—�—��i—��i˜��.˜��3™��™���˜��N��™��™�˜�˜�˜�˜�˜�˜�•�™��™�˜��.˜��-˜�˜�˜�˜�˜��)˜�˜�™҂�˜r�™�˜s�8™�™��˜��8˜��)–9˜��U������˜��8˜��o�ɂ
˜��8™�™�™��ׁ���™
�™�™�™�™�™�™2��™3��”š�˜��$˜�˜�˜�˜��&˜�˜��&™��™���˜�˜�ŽE-�Ʉ҂Ѓ�—�—�˜#˜$˜%˜k˜l�5˜m�5š�˜��%˜�˜��
š1š�—�^—�^—փ\—�]—�]šu—�^—�^—�šE—�—�_—��^˜&�Q—�\—�—��Z—��Y—��Y—�•�•�—��XŽgŽh—�—��Z—��Z—��F—�—�\—�\—�]—�]—�ŽT��›�˜˜˜˜˜š[š\š]š^š`šašb˜�V˜˜	˜˜Uš�šŽU��˜˜�Y™™™™—׃\˜
�X˜�˜�˜�V˜�X—��X˜�W˜�V˜˜�V˜�V˜�V˜�˜�T˜�S—�™�™	—�—�—�—�Žk˜�R˜ �Rž�˜��%›
›—�—�—�˜�R˜!�S˜�S˜˜�R—��{—��{˜"�SŽF-��������˜v�9˜w˜x�8š�—�—�—�—�—�—�˜}�8˜~�8—��y—��y˜y�9˜z�8˜|�8˜˜'�Q˜u�9—��j�šš˜�	š�˜��	—��z—�’8’9–=˜V˜W˜у˜��	l˜Ӄ˜ۃš�—��y—�—��x˜�˜��—��x—��x˜]�<˜^�<˜_—��6�C��˜�˜�˜�˜�˜�˜\�<˜ڃ˜�˜`˜߃˜�˜�˜�˜�š�˜�˜�˜�˜�
˜�˜��’:’<’;˜�˜�˜a�:˜��
˜�—�˜�˜�˜�˜�˜�˜�˜��
ŽnŽlŽm˜�Žo˜��!˜��!˜��!˜��!™Ȃ�š�˜d�8˜̃˜�˜�˜�ŽG��˜��!™ɂ�™�—�—�—�›��˜�–�˜Ń˜�˜��˜�˜ăš�˜ʃ˜��˜��˜�˜�˜�˜��!˜�—�—�˜��!˜�˜b˜cš�š�š�˜ÃŽ\™I��™,��™)��™*��˜i˜j™(›-›1›.›/™5��™6��™%��™&��•�•�•�™J��™A��™C��™B™D��™>��™@��™?™8™F™E›6™9��›™G��™H��™��™��›™—��q—��q™™™™™7��™:��™;™<™
�™=��™-��™.™�™™/��™0��	˜e˜g˜f™1ŽsŽt™!��™"��™��™��™ ��™#™$��ŽuŽv™X��›T™Y��™o��™T��™R��™S��™U��™p��™N��™[��™Z™M��™\��™]™^��™_™qž�™k™i™j™O��™P��™Q��™e��™f��™g��™h™d��›^™`��™a��™b��™l��™L��™V��™m��™n��™W›F˜σ™K��š��˜n˜ož��NO�@B-�������o4����
:��-;a/��(��~��	™���Žw���—��oŽyŽzŽx™{��™w��™~��™���™}��™���™s��™y��™�™™�™�™|™���™r��™���™���™���Ž�™�™�Ž���›s›v›t›u›q›x™t��™u™v˜p�6˜q™�™���™�™�™�š™���™���™���™���™���™���™���™���™���™���ŽI�G�o���f�|�:��‘�™x��™���—��w���U™���™���™���™���™���Ž|™���Ž~Ž}™���›�—�™���™���™�š���™���š�ŽL˜(™���™���ŽMŽN�ي�–wx–Ž��4™�Ž��4˜��
˜=˜?˜>š�˜,˜��
—��u˜*™���™�™���—��u—��uŽ��—��uŽ�˜X�>˜Y’1��˜-�O˜.�Oš}’>’6’7	’2›�˜/�P™�™�—��u™�™�›�—��jŽQ����–
––˜0�P˜1™���––A˜��!—��o—��n–B™���˜3�O—�˜2�O˜T˜R™Â�˜�˜N�A˜O�w��˜P�@™���™�™‚�™Ă�™���™�—�—�—�˜)�P˜S�@ŽP6���؆�˜B�H˜C�H˜I˜H�F˜F�F˜G�Fš�š�š�˜J˜L˜K˜D˜E˜A�H˜4�R˜5›�˜+�Ošz˜:˜;˜<˜7˜8˜9›�˜6�QŽ�Ž™���™�Ž�Ž�Ž�Ž�Ž�Ž�–––3–4––1–2––– ––––––7–––%–&–!–#–$–"™�––)–+–,–*–'–(–-–/–0–.–––5–6™���Ž�Ž�™�™�—�—�ž�—ۃbž�—�—�—�š7š8š:š;š<—�ŽJŽK—�Ž]�ↈŽ_Ž`™���˜�™˜�ŽaŽ^�����L��B
���Ά����S��	Ž��N%�N&��Ž���Ž���’A���m��Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�œEœF����’J’K’]’M|}–Z’IŽ�Ž���’a’b–V–R
–T�Ž�’N’O����L��B
���ʆ�w�M��M�Ž���Ž�Ž��g�0��’Q’’�’�’�”’x’y’{’}’|�ž�ž�Ž���Ž�Ž�P�遌� �ꅞ�����“%“&“(“)“*“+“,Ž��“'�“5“6“7�“�“4“_“`“a“b“c“9“8“:œ��“0“1“3Ž�Ž�œ
Ž�“““.“A“B“2“D“E“G“H“>“?“<“=’S’T’U$��Ž�����ž�ž�Ž�“;“J“L“K�����–a–b’�“O%�)��'“!“"“#“$Ž�“S“T“V“W“X“Y“Z“U“\œ	“]“^“e“f“g“i“dŽ�P�ׂ��ꅞ��N“““““q“r“t“u“v“j“k“l“m“n��gœIœJŽ��y��_
“]“y“2“\“|“~““�“}
ž�“�›�›�“�“�Ž��~����œ“zŽ�““�!#" —3�=“-uv“.“/�srp-��ž�ž�” �u�M���@9f�>)��B
���&F$m(
T�4K
P	
��dd��F
�������”+œ�œ�œ�œ�œ�”,�›�”;”<œ�œ�UV”9”:F��y� ��”#’�’�”=”>œ�œ�
œ�
”(”)”@”AG��y��”.”3T”/������jž�`ž�’�’��������i—<8—=—?763
4
”I��9�:;C���n��—M��—7
—8	”L��”M����ŸxŸyž�ž�”�*���Ⅰ��H�l)�������j��I���k���mK�M��R�”\”P”T”U”S”R”Q”Y”Z”]”^œƃ�IJ”c”d”f”gFGž�”`”až�ž�ž�ž��x�M��A�d��G����]�3����be����	PQ
����Ž�Ž�Ž�Ž�Ž�Ž�Ž�”G���e������������M��B������%�o���ԃ��’�œ���œ�œ�œ�����ɑ*����ɑ*’��lœ�œ�œ�œ�œ�’�’�’��l’�^��_a”%E”&Dœ�œ�œ�œ�’�œ��M��B������%��b����]�&�bc��e��“�”�”t”v”y”u”z”l”n”o”p”m”q”rœQœRC�9�Ն�D�U�M+3:�@|&��B4v0v	�bJ!�����������'OeE��A’ԋC’��B’ҋ!œ�•m’Ӌ!œ�œ�œ�œ��M����:;<‘�l’�’�‘ ‘!�j��p������>���CD‘"��‘#��•��U�3
•z•|•�•}•~������•���•�•w•xž�ž�•��U�2��ž�’�’����K�t	�ȃx��������•n.•o.‘,‘-��‘B�����•p0�M��M�‘/‘0������	�����u
������‘7’�‘8‘:n‘.�΃��s���N•��~op‘>‘?‘;‘<�M�B�7�����k�!•sE���ŸŸŸ–u•�•�•�•�•tDŸŸ�M�HB�@��灍�΂���������”�”�WXYZ•���•����”��M�>�@��
6�����co��� ����7���������M�–v��–{–|–y��–w– ᄪ������(–�–�–�–�“�“�“�–�–�–�–�’V�7–�–�–�–�’W�UƄɊj�����	��΄�����������	��
����������“�“�“�܄�ŸŸ���$�;“�Ÿ�M�Ÿ�����’X’Y“�“������ �PT��&–�–�Q�œ�R–�œ��Ÿ
Ÿ�ŸŸœ�œ��(�����RŸ'Ÿ(�–�–�
��–�NO–�–���ŸŸ–���ŸŸŸ"Ÿ#Ÿ$Ÿ&�l�M,A9�@%��B1p��(�CF��������<]��
%����9	#3456“
“•<��’�’�•=•rž8ž9�N`
�E|�R�Na�E�’�’�’�’�•�•�—��N1�B�7�����d�&������•�•�•�•�œœž<�M�HA�C�ׄ�������>��•�•��:����ž?ž@�M��H�$'[(“�Z“““�U“r‘�‘�‘��M��H��–���–�•vDq�Ÿ*Ÿ+��	
’��}��r•���•����N6�B�8�I�I���&–�’’•��W�p�M�F������������N:“�œ�œ�“�“�œ�œ��M��Gc�r�M��I����N@�NA�s�M��N?�q�M�Om������“��o����N9,�”��œ��f�M��@���$�t��6��?RS”��”�”�”��j���h��?4�����������

������������'��”C”D���”���X”���>�œ��g�M��@���$�t��;u�h����ň�BŸJŸNŸOŸPŸlŸmŸnŸoŸUŸVŸYŸ[ŸaŸbŸcŸeŸfŸdŸ\ŸZŸ]Ÿ^ŸkŸSŸT��{ŸM&ß°��F����Q!cL��24���������V%���c:�\���B����¶����o�p�b��b��c¸#¸$¸:¸;¸<¸=¸>��s¸+¸/¸1¸,¸-��t�ϋ��¸2¸3¸4¸5¸6¸8¸9��q��r¸	�g��¸'��h��i��¸��¶�¸(¸)¶�¶�¸ ��������f��e¶���#�J�p�\¸A�����`¸!¸"�@�A���b¸C¸D¿�¿���¹��1���º1º2º3º4¹[�C��¹\;°4�%�����ߠ�߷�ߣ�ߤ�ߡ�ߢ�ߦ�ߧ°6°7µZ��º/��c°5�'�����ߩ�߬�߫�ߪ�߮º-�߰�߱�߲µY�ы1��[�߹�ߺ�����߽�߻º0�ߒ¹�������¹�¹���%�ߙ�ߚ�ߜ°8°9¹Q�A�ߓ�ߔ¹���¹���¹�����ዶ�^�I�
����¶�¶��£���½s½½|½}½~½�½�½�½�½�½�½�½t½{½x½�½�½�½�½�½�¹���¹'¹,¹-¹(¹�u¹"¹ ¹!¹�����đµ�µ�½�½�½�
½�½�¹��¹½�½�½�½�½�	½�½�½�¶��*`��������½�½�½�¶��)_��������
¹��½�¹��½�½�½���	��
¹��{�'��݋��]�H
�
¿�¿�¿�¿�¿�¿�¿���½��k��¿�¿�¿�µ��d����h�������B��C¿��k��Fµ����+�f���½�½�¿��o¿�¿�½��\½��\��»)»*½���
»+����
»-�����������?��@��A��B��C����±��±¹�|�˞�˟¹�½�±�Њ��΂±�Q�ˠ�ˡ��"��#±°=5oQ��x��RW��O"���|��""n:	��ބ�1+V��� &
�P°����M°s°���»:»;��°���(��)�����������ĭ±d��5°���°�°t�j������9��:��+°{°|°�°�°u�h�Q°v±
�Z���Ň/�˩�����������ºg¹R���µ�µ�ºdºeºf±�^�����.�� ��!��#��%��$ºY���́�'º\��º[����&ºZ���Ļº]��º^��¾O±a�=��Q��T��R��Sµ��&��µ�������������������������±b»B»C¹����°�]"�ׅF��U	����N'F�}�����#�X�Ě�ě�Ĝ�ĝ��,��-�ğ�ģ�Ġ�ġ±f°�°�����$���� ��%°�L°�L�ˤ�˥�˦�˧�˨ºGºH�Īºi�C°�Y��H�����L'����°�°�µ�µ�»Y����8��(��)��+��,��-��.��l��m°��͂	����o±��p°�°�°�°�
��±��±±¹��+�4��������؋-����,���¹��F3�¹������j���������˛�˜¹���������±n±oºM��¹����	���ݜ���������l��m¾A��»P»R»Q»N»Oº<�
�i�I��º=�
�i°>5`Q��f
��HQ��I
���R"
	d)	�}����@V����
>	�T�F½N½O½P��������.¹M����K��P��R��S½G����ºK���¹L������]�����»9µ�
�[�
������������0�����ė°�°�±i±jµ�����������������U°~%A��]�pHW��T���^�d��($.|@������
����F�\��A��B����G��H��ºQ��>��?��6��8��7��:��5º8��º9�����������°������<�¹�g����½S��D����CºV��O��@ºW����?��N��F¶9�
�E��I��J��K��M��G¶:�T¶;�T°$Q�)������(..�


��F°����Ł�.�����������µ�����µ�°�°���mºI�n��ķ�½H�?½I�l����ĺ�½J½Kµ��O��Ɓ��G�
�ľ���Ŀ�����»A�}�S°3��;VO0#�"�l��@����{�ㇷ"�!�g��%��&$G
-�}��
�]�ȵ��E��F��������_�X��`�������M��<���L��@�������������������ɋ�Ɍ²²��	���ɐ�ɏ�ɑ±{±|±}�Ɉ±��������8»�»�±��������±������3��4��±��#����±Ô\±��"�S�'	��
��q�)	����	��±”Y±��
��#�i"��7±�����"��#±��6�k����:F�� 
	�N��p����X��Y»f�����V»���I±�±�±�±±�±����H��M��
��±؊��ǃ��Y(�N»h»i±ي���$»d��P»w±�V±�±�±�±�Q±�R±�R��!��#��'��$��%��)��"	��(������ ��!»x�;
�Ǻ�ǻ�ǹ�Ƕ
�Ǵ
�ǿ�Ǿ������±��j��	�a����~9R		��v��������������8��Q���Z�������L����4�>5!�́�#��u����u�ɔ�ɕ�ɖ�ǀ��r5����s�����|�l��}�k��S±�R±�»���,��'��)��(±�±�]���p��m��n��t±�±���u��s��l��o�ɽ�ɾ��+�=����?��@��-±�±���,�=����i»v²Z²[��{��}²S��#H����p²h���+µ�µ�¶¶¶µ�±�±��ʑ�ʙ�ʗ�ʚ�ʜ�ʒ	²²�ʖ�ʓ�ʘ�ʞ���ʀ�ʁ±�]�	������A��B²R�1²L²M²V²W²X²U²H���x���O
������²]²^²O�4���Z�ʊ²`�0��m��l²a²b²9�����;��"%�1Q����
�`��±x±y±z���� �����7����%���������±����聟��;��:±�����!��"��#��$��	 �������)�偞	��.��/��1��0��V��
�����g�ɺ�6�ɻ�5���B����8�ɨ�ɩ�ɪ�ɥ������ɦ�ɧ±�5������:��#�%�y�c����	�ɿ�����������������±Յ�����������������������	 
�����eAx���@��?����ɴ�ɶ����������A��B��T±�±�±�±�N±�N±�O±�O��R��S�����C
�r��D���ʤ²�²²��ʧ��G�_�ʣ�����	�\���_���ɱ�����ɲ��/�c�������H��I�ɸ�ɹ�ɫ���������ɬ����²j����^±�±�±�±�²l²k²m�ʹ�ʺ²n��4��e»����C»���²�������[��w²o���_	²r²s²q�
²p
²|²{²z²}²~����²u²v�������&��(��'��)��*��́��ʽ��������������
�������ʾ�ʿ��������������7�5��8�4�����������J���D��������΃J��������������=
�����N��O��L��������K��M��L°�:RN#0!��l��@��	��'P�����) 3�LZ%%
	���&*C
�s��

�-	�DŽ�ǃ�f�����������������Z��[�Dž�����Lj�lj±�K�[�Nj�Ǒ�nj�Ǎ��=��>��;��<±�[��V��W�Ǔ�ǔ»��b�Ǖ����T�Ǘ�ǘ��c��g��l��m��h��i��j±~Y�ՂŁ��a�8��q��r±׊G���ȁ��ǚ���ǝ�Ǟ��d��u��e��g��h��i��j�Ǜ��c��z��v��w��y��}����{��|±sT���� 1�~�r�q�*±�y���y����ˁ�+��~�����q��r��}�Ȕ����~�Ǩ±�#�{±�±�±����u±��v±���v���s��²���m��������Ȁ�$�ȁ�$�Ȃ	�Ȉ�ȅ	�ȃ�ȉ�Ȋ�ȋ²
�|�ǥ�Ǧ�ǧ��{��|��?��@��X��Y����²�����c��d��`��b��a²�»l»m²���±�)!�������が�͇�
2�y)����)g�҂LC3����
�W±�±�±�±���{��|²7���ȣ�Ȥ²9�Ȱ�ȳ�ȱ�Ȳ²8���ɜ���̉�̊�ɟ���̝������������������ȡ��[���D�����̛±���±�±�±�±�±�±��Ȧ�ȧ±����D²�.²�.±uG\�K�Ӄ���
��+m�ق�x��ǃ6��]���Ⱦ�@�ȿ�@��Ѓ,±vF���L�ڃ��������݂�²������Ƚ²?�~���Ȼ���±���±��²��5����²��p²��ɢ�ѽ²�²��9���±�A 	�����
�vV�r'��
m#N�т�#"�収

²(��²'�Y�*���̓�̒�̑�̎�̏²&�\�;²#²$²1�L�҃y)��4u,n�������������������̋�̌�����ڄ�����������������������T����S����O²�K����±�±��3²4�-�d²5����d�����2��3��C��F��D��\�g��������_����
�T�����a��²E�ɏ���������!�ͫ�ͬ��"�ͤ�ͥ�ͧ�ͩ�ͨ��#��$������
����<��|��~���̀�́�̈́�Ͷ�ͷ�ͅ��<�H�͆�͇��{�͈��E��@��A��B��C��F��G����������.��2��1��/��3��&��+��'��(��,��-��4��6��7��5��9��<��=��:��;�������������
���
�����?��u����N���F���F��a��d��e��b��c����R��K��X��Q��R��S��T����O��������f��gµ��*�����r��s��t��n��o��p��m��&������Ͱ�Ͳ�ͱ����
����偃��j��k��i��v�͉�͊�͋��x��y�͏�͐��w�͎�͌�͍�ͳ�ʹ��
���߁���H�͔�͕�͙�͖�͗�͘��J��I�����͚�͛���͝�͞�͟��µ�����ͭ�ͮ�ͯ�͡�͢����	����������°-�c�͍�v�9�`�v��J²���¾x¾t¾u¾v»�»�»�»�»�²�²�²�²�²�¾`¾a��
¾^¶��»�������²��Ґf�������¾c¾d²��Ґf�������¾�����¾s���¾g¾h¾k¾l¾m¾o¾p¾n¾z�T¾{¹s���X¶�f���W²��Ӊo��������������s��y��t��x��u��z��{��������r�o	��������o��p�����²�²�²�²�²����`
��	��������������������n�o��������������������²���?�І�q�8$��¾�¾�¾�¾�¾�¾�¾�¾�¾�¶��¶��¹p�<¹q¾|�n��¾_¾�¾����¾~�q��¾}
�¾�¾�¾�¾�¾�
������°�Q��6J��V
6�n����}���w��+
$
B�1��R����F�³T³Q³R³U�;³J³K¼�³M³O³N»��ō�Ŏ¹7¹:¹;¹8�Ő�ő�Ŵ�ŵ��&±&±*±,±(±)�Ņ»�»��ņ�ó�ô��'»��Ů�ů�łCd��+�ŃBc��*³
³³³¼�ſ�������³���"�1������ ³³ ²�²�²�²�±.��±1�֓�³±/��������³���@¼¼»����F��� ��������³³��φۃm]��+��.��/��,��1��2²���m²���*²�²�²�H����1�3��³���P³³���G�����	�����������������������������»������������������������������������������Ţ�ţ<��³	���B²�²����²�3��`J�i��¼O¼P¼Q¼S¼T²�²�»�»�±2��
�������±3²�
��±4±6²�
��²���²�
²�
��²�
��²��1|¼�¼�¼�»�k»�»�»��	²���'¼�¼�¼!³"³#²�²�¼"¼#¼$³$³%²���'±-������<��
/
�.»���»�»����»���,
�
¼¼»�»���k»�¾�¼+��¼8»�¼9¼,�����Ū³-�³,³.³/�Ź��������³4��
��
�����ŀ�����¼V³0³3³1��:²�¼WL¼�¼�¼���9¼�¼�°�P�t4#
K�_V
4����I
&W����		.
(�-��N������j¼e¹x¼f¼g¼i¼Y¼Z³7³9³8»Ɓ�»�6»�6»�»��è�é������&��'²�²�¼���¼�³;�ŗ�Ŗ²���H����J����U�{�C¾�¾�¾�¶�í�H��ҐA&³<�t±8±:±9¼
�������î�a�!�˯�˰³=��¼=¼?¼@¼>³>±%��
G
�݁�����`<�B��	<!���@���V¼�¼�¼�¼��ŋ��±C±D±=±A�˴±?±F±G�Ō��1����4��6��5��7��;��8��9��<��=��E������+��,��2�˶³Z��#���¼m¼n¼p¼r¼t¼s¼q³a³b³A³B¼v¼w¼�����¼�¼�¼�¼�¼�¼�²������?»�»�»�»�³C±L��²������<�����������������������³\±M³n�&²�²�³d³h³i³e³j³k³f²�²�¼y³o�&¼z¼{±O�}���{��G/���a��C±P�|�B���u��¼»�=�2¼»�<	¼¼¼¼¼¼¼k�˷²��*»�»�»�»�»�»�²ڜ/»�»�²�����������²֊
�»�»�»�»�»�»�»�»�»�³q³s³r±<�y	e	���������r��
�1���R³v�M³w¼}±I�����I�Ӑ)9�˻¼��˼���������˵¼~¼±S��³G³H¼l���³y³z³{³|³}³~¼�³&�ű�Ų²��F�8h��`��
9���������D�����-��.��������������¸��`�@��%
=¼^��/��0��¼c¸��b�J�$	»Á�»�¹E¹F²�²��E����_��
>¸��b�~¸���c��C��)��*��¸���°�_s�G3���¼D��.���/¼E¼F°�_s����I��J¼J¼K¼G¼H³�	B�
J�����j���³��I³�³�³�³�³��Ϋ�ά��K��L³�³�³�³���`³���³�³�³�����H��G¼Œ�³�³�¼���
³�³��:¹V�Ω�Ϊ¹W³�L���6��/�q����K¾ܣp¾�¾�¾�¾�¾�¾�¾����³�¼����Z�,��N�X��O���
���������
������������������³�³�
���6��*�Q�����������������������¼��4��������³����������³�³��Ζ³�³�¼�¼�¼�³�³��uA�u��C���Ξ�Ο��^³����u���W¼�¾�¾�¾�¾�¾�¾�¾�¾��Ώ³Š³�³���³І2��³�³�³���³�'�?��¹¹¹³��i¹³��@��³݉���³�-�
<����
�c�
~����������������������
��������h��i���������������������¼�f��¼�³�[���`��³���{��³���³�³�³��^����
�<����¼�¼�¾�¾�¾��ΰ�α��Z�쁕��T¾�¾�¾�¾�¾�¾���U��V³����X��~³��K�鈆�쁒���¾�³��K��¾�¾�¾�¾�¾�³ړ�³�³�³�»���΢��G³��D
³�L�"�Β�&������³�³�³�K����&�������������\°��~+w��
�!�…ك
��
(��O@\��6������S
m���µHµI��g��h��i��k�Ӌ��j���µKµL��;��B��C��<��=��>��?��@��A��E´�ׂ�������´��a��b��c��d��e��f´��´´´�ӏ�Ӑ´
��\��]�ӑ�Ӓ��u��v��W��w��h��k´�6��U��J��G��H��_��`��K��M��N��O��P��L�Լ��,�P�1��
��@���Խ������������������������������������Ծ��Կ���������������������������������$��������ъ9
����������������������8������J��
��´󣚃�´���´����j��k��l���b��o��n�׏�Ä��א�ג���ד�ו�ז�ח´�����´I�˂惕���������ע���u�����������s��´F�s�[���
$������´��´���������
����´G��c�`�������ף�j`�`�פ�ץ�װ�ײ�׳�ױ��v�׬��w��y�׫�f_�[��u�ש�צ�ק��|��}��~������������������׭�c�׮�b������������ט�כ�ך�י�ל�ם¾¾¾���ӆ]������������´��´�´�´��´�´�����]��
������¾¾������I�
9�B;��&��¾9��I�~������φT�ځ��DA��E��F��G��I��H��9��:�����@������˅>�����!�� ��<��=���+�����+��‡$�P�jQ��
����X����Y��V��W��\������������U��h�����g������������������������d��e���x��b��`�����Ç$
�O������
��
����
���	��	��]���׺�׽�׻�׹������ׂ1�3b�v��&����'	����,��-��+	��*	��)	��/��4����ć?����.�2Q�u��Ç=������������$��!��"µ����������������������������������������½�½�½���������3��4��������������������������´Z���ǂч�����<k�1��������&���ٟ�٠��'��(��(��
������)���'���������������������������������������0���ٜ�ٝ�ٞ��
���ّ�ْ�ٗ�������ٕ�ٓ�ٙ�ٚ½ϛ%�����½Л!���½��_�����´")����´O��´#+��´K��½ݘ'����������ӓ�Ӕ������g��i��j��h��n��o��q��r´P�����ړ������ ����"��!������	��
��´Q���������������ӕ�
�Ә�Ӗ�
�ӗ�����Ӛ��#�r��$���ڗ�ژ
�ڙ	�ڠ�ڜ�ڛ�ښ�ڝ�ڞ���ډ��7��8�ڊ�����������ڌ�ڍ�ն�յ�ղ�ճ�շ�ո��������´S´X´T´Uµ���fµ��ڥ	�ڨ�ک�ڧ�ڴ�ڵ�������ڦ	�گ�ګ�ڬ´$�>�w½b½Z½]½\½[½^½_�ӛ�:�������������������������Ӝ�ڼ�ӝ�ӟ��Ɂ��ں�ټ�ٽ�٥�٨�٧�٦�٩�٪�پ����҈�(�ٸ�ٹ�ٲ�ٻ�҉�)�ٰ�ٳ��ٵ�ٶ�ٴ���o�����´[�����������+k�K��"����2��3��4��5��6��8��9��:��-����//�������������������������������
��¾��ꋐ���¾�����ڒ½��ڎ�ڏ¾���`¾�¾�������;��=��<¶1¶3¶2´_������ *�߃؂���8��9��:��=��>��:��;��<��?��@��F��A��B��C��D��E��O��,��-��P��+½˗@��½�½����������´`���#�
�ۅ���N
����J
����K	����½���3��5��4��M��Y�����ӣ���ӧ�ӥ�Ӥ�s���Ӧ��´\´]µ����[�]��-����5��������������������������)´c´d����-´f��´g��%´�´�´j��"��#��$���x����l����k��j���{��n´�´l´�´�´r´o´p´m	´x´y´w	´v	´u	´s	´n����@½d��C��B��D��E½e��A¶/���������0´b��8��7��4��5��1��2�ҋ����´h�������������µ����Y�\��)��S½�½���:��;��<¶*���X
���0��K����������������G����H����>����J������:�ط�o�[´�´�´�´�´�
´�´�´�´�´�´�´�´�´ۛq�B����`O��(�A��J��K��F��G��H��E��r��v��s¼��y¼�¼�¼�¼�¼���������#��9��´�����N´���L��R��S��M´���´��Չ��b�Ռ�Ջ�Պ��W�՚��>�ۋ�ێ�ۍ�ی�ۏ�ې�՛��´�´�´���G�Ն��/��.�Շ��|��������������������������½�½���}��	��p´קf��D��d�բ����f´��d´���?�՝�՞�ՠ��x����⁘��じ��y��~����������\��]��	��������������ۅ�������ۀ�ۈ½f½g½h��	����
��~�������ۂ�ۃ����������s´�´���0��&��w��t��:��_��u��U��V��'��(´��p�B��� �/_�	$���T��U��V��Q��R��S´�/´�/�Ղ����`��a�����:��X)�Ʉ��Z��Y��[��!��"´��؉i�t��	%���i��h�Ք���;�Ւ��>��?�8��A�Օ����C��D��E��F�Փ�՘�ՙ´�´���´�´���fµ���´�������W��Y��p��]´�´�´�´���^��_´�	´�	´�	´�	´�	´�	´�	´�	��`��a´�
�̉i�s���C��k��g��k��j��h��i��l��m´�/����,��q��s��t���x��y��z�դ�ե±W�������ԃف��g;��������	���(Mµ�µ�µ�µ�µ�µ�µ�µ�µ��ƀ�Ɓ´➸�½����ҝ�	�ۦ½i´�����Ң�ң�Ҝ�	½j_��½k�½l�w���W½�´�´�´��ը��۫�թ½���ʂ����۟�ۯ�۲�۳�۸�ۡ�۰�۱�ۼ�۽�ծ�կ�ձ±X�����ꑡ����2������8���!%��h��j��l��i��m�Ҙ�ҙ��{���t
��u����v��w��x��y��|��Ғ������q�ғ��e��f��r��s´恦�;���� ���؆�؅�؇��"��#µ�µ�µ��b���)��µ���؏�ؒ�ؓ�ؐµ���µ���µ�´������
��խ��µ���
��ؕ�ؘ����!�� ���ۚµ�µ�µ��Ґ��7��.��+��,��%��&��.����)µ��ƒ����������������������	���	���	�����������LJ	������������������µ��µµµµ���ˇ�������� �ˇ	��������ƒ��µ
��|��}������������������t��'��(��)��8��9�������������E4���x�����������������������������C6���z�Ɗ�H�+��!��'µµ��-��´�´������$����&������%����"��#�������x��v��w��y��u��(����*����,����)������҇�¾���պ�����"�����������j��k��c��r��Ї���e��f��m��n��s��t��������"
��.O*��L��M������X��
)�$��	�������=��
�������M���X���X���X���L���Xµµµµµµµµ´����I�Qµ
µ´����¾¾��	����
��{��;��=��A��>��?��@��I��J��H��<��B��C��D��4��5��6��,��/��3��.��-��0��1���������܀�܁�����µ��m�d�)��8�܊�܍�܌��9��;��:��=��>��<��/��X��C��D��1���2���0��܇�܈��3��4�Ӏ�ӂ�Ӄ�ӆ�Ӆ�Ӂ��_��`��b��c��6µ��m�d�$�؟�܂��d�܅�آ�Ԃ��ث
�ب�ئ
�أ
�ؤ
�܃��3�ص�ض¾���¾��ع�غ°����x	�������x���Ђ���/��R@`�̃���	��	!��2�`%�X
�N,H�E��h����	��������
´C´E��N��O��Q��S��V��W��X��Y��\��T��_��`��R��^�ֶ�֬�ֽ��8���ָ�]	�ֳ�ִ��$��%���֭�֮�֯�ְ��G�F��.��5�-��b�ܐ��M�q�������Ӊ¾¾��o�&��n��u�'��r�&��p�(��v��{�%��|��}��~��w	��x�%��y�$��H����I$�8�ܢ�ܦ��m�9�ܤ�ܧ�ܨµ"�o�������փ�ֈ�օ�֊�ք�ֆ�ևµ µA�n�(���´��$��;���ܮ�ܲ�ܯ	�ܺ�ܻ�ܹ�ܶ	�ܴ�ܰ��(���
����&��'���<��.�����2��3��4��5��6��8��/��0��+������@��)������¿��ς�d����_�������҇�g�ܑ�ܒ�����<�N��%b����>�+$�Nµ!�I%�$�֑�֒�֔��6��k;�֞	�֠�֟µ%�~�֩µ#�l�֣�֤�֐�֕�֗�֘�֖������
������������������
��������������������������������������τV����<����j��:��=��>�ӵ����ӷ�Ӹ�������Ӷ&��������������������������������������������	����	����
��
��µ��j�Y�C��>
����	��@X�%���ف�����1��������������ӿ%��
������Ӿ+�������K�����������µ&��q�΄���n�		
9��+��^Y����*µ)���µ*������µ+µ,��������¶A��µ<µ=µ>µ?������¾+��¾.����_�v´´��`�v��?v�
E��с�������Ӭ�t�\�ӭ��������ӯ��Ӱ��ӱ��������s½n½o��p��r��q½���t��#��"��
��
��������µ'	���t�

C���e�;���µ2µ3µ1	µ0	��µ/	µ-	µ:�n��%�s�|���������������µ;�����������������$��%��6��¾/¾0�ҥ�Ҧ��7���ҁ�҄�҅��������1���ه�و�ى�ٌ���1���ً��y�c�6��/µCµD��A��������z±V���Z1���̓�#���҂��?�5��|Ga�D!|�݄?�����v¶L¶M�ݱ�ݲ�ݴ�ұ�I��b�Ҳ����F��I��H���\¼�¼���J��K����~¶O¶P�׀�ׁ�ݽ�ݾ½��Cx��d��e��c½����X����E��D½��������������½����\��F��G´,��f��g´-´.����¾¾��´7�����Ww´:´;´=´<������´8��ԅ����p�ԇ���ԉ����삚���Ԉ��i�v�+��x��u��v��w��y��q���,��r���,���*���+��3��	��
��µEµF��m�������Ԕ����7��8��j�t�*�������z��x��k����#��n�}�-��o�|�,��'��(��*��+�����y��z���µ���¶R�Ԋ�ԋ¾����{��|��µ�����b��c��၄�һ�ׂ�>��H��J½�������M��2��N½��ԕ�Ԗ�Ԙ�ԙ�Ԛ�Ԝ�Ԟ�ԝ�ԛ�ԟ�Ԡ��L´0�"�9�������������>'=�6����¾2�ҵ¾3�վ¾4�ս��C�}��4��':���q��������G
4����ռ����¾¾¾�F��N��c��d��r�݀�݁¾6�¾8¾
¾��J��G��H��I��D���E���V��W��X��Z�݃�݄�݆�݅�݈�݉��]��a��`��^��_��r�ݜ�ݞ�ݣ�ݝ�ݟ�ݠ��H�1��y��c��d´?�´A´B�´@��s���ݮ�ݯ�ݰ��O��P�ݪ��\�I��G�/��v�ݩ��]�H��F�/�4�ݫ�ݬ��M��N´&	��Q+	�����҂��=��Fa�d|���*H/���N����ݙ´1��M��P��O��N´2�X�
�׊��������ݗ�ԍ�Ԑ�ԏ�Ԏ�ԑ�Ԓ´4����,��?��>��=¶"�D�s�b
3��p��T�����a��W��V���U����T��U��V��Q��R¶#�ۚj��
��f����Y��Z½�¾´'��/�����;�J�D����[��a��^��\��X��Y���J��:½ؖ�J���J�݌�ݐ�ݑ�ݒ�ݓ�ݍ�ݎ��P��Q��4��5���Tµ�T�b�6µTµU¶'�bµ�T�b�6��K�~¾:¾;¾=¾>��$��&��Lµǁ�����`�¾!¾"�Ɠ�Ɣ¶´¶¶¶¶¶��Y��Zµ��\�.�¾*�.µ������;�����������µ�������b�߆7��T´�
����´´��´´ ´��\¶T���הꌛ���¾�����¾����¶V������q��s¶U���ה�����҅�°+		
�����V��
<�z1!:
F��2&������ ��
��
^����V%5�v'�K$��-�J?��9Y��;]�Л�М�Н��?��@�К��>\�П···%���i¹���$�� ·3����"·���i··*·,°a����½½°Z°\°[°]°^¶a�^�y¿�ގ�ޏ¿�ސ�ޑ�ޓ¹�¹�¶b��¹�·F�|½
��·G��·I¿	¿¿
¿¿·Z��·[¿¿¿¿¿°b��
��°e°f·R·Q°h��°j°i·N°`��·K·C·L·M°l°m¶Y��B���m··�ƣ�Ƣ�Ƥ¿�·¿�¿�¹�¹�¹�¹�¶Z��@��¿�·���n¾��Ɲ¾�¾��n¾�··¾�¾�¿�±[��
���D�b������Č�č�Ď�ށ���������ނ�ރ�ބµa����������b��c��_��`��aµd����á�á�¹�¹�±\�����C�b�޿µ`�'�@�ފ�ތ�ލ�މ��>°B���°C��v¹�¹�°D��¿�p¿�°F��¹�¹�¹�¶c��¶e¶f¶g�Ƨ�ƨ��(¿�¿�¿�¿�¿�¿�°n��	�Ƃ݁���>�!�*����
º¿+¿,¿P¿L¿M¿Q¿O¿S¿T¿K¶r���·&¶s���
¿%¿2$¿3¿:¿9¿8¿4¿5
¿;
¿<
¿=
·8��<���L����K¶m¶n°p��	���؆!�(��`�?���*��������A��º���ԕR��½
½½½��1¿(ºººº�����¿]¿i¿j¿^¿_¿`¿b¿c¿d¿Y¿[¿Z¿e¿f¿g���¾�½3½4½6½7¿o¿r¿q¿p��|¿l¿m·\��½½½½½½ ½"½$½%·]��½½½½�Ƭ��
·-·.¿��
������¿�°@	���3����(�+������� ���'V��%�e?	��0#<]��·0¿~��¿��¿���¿�����������Y��°K����'�]��°N��¿��¿¿ ¿!�ƥ°L��¿°A���G
�k��|h�����6�!��B\��;�(
��i��,?��-@¿s·n�����·p���·o�����Б�Д�Г�В����;��<������=���V������S��������d��3D��w��x��/�Е��{��y��z�ޝ·s�Ж�З��e�����0��o�)��1��2��p�(��t�(·t(�q�������������������б�	�
·u'�p����������I�����}���гH���ШX�}��·��8�ޞ�ޟ�ޡ�ޠ�и�л�й�к��F��G��H��I�е����ж��B��C��D�з���·��7�н�������о��������������������M����N����J~��K~�����L������·x-�ֈP�uP�Ы�Ь�Э·z·{��Q��·x&�)���O���·���P���ޖ�����9��:��Ef��^�ޣ�ޤ�ާ�ޥ·m��������������������������U����V����Z�����������X������Y�����ެ·�����~���·�·�·��\·�·�·�·�·���·�·���b·��9��	������ޭ�ޮ�Љ·�	)	����z·�·�	·�·�
·�
·��?�
��·����Ў�Џ·�·�·g
�+�~f�����L%\O��
�:�������ޗ�ޘ�ޙ�޴�޵����·��g��[��\��]�·r��u���Ѐ�Ё��8L��4I��7I��6I��5I��c�����޶�޷·��$��·��"·�·ǂ��·Ȃ��e��f��d·_·`·a··¿{�q!������������¿|�p���°����b�φ��X��s��w��v��t��n��o��l��m��r½U�1���X�����_��`��a��]��^��c��d����	��
����@��A��B��C��D��E��G��F��I��J��K��M��N������������������������������������ ��!��"��$��%����������1��'��)��,��-��(��/��0��&�����
��
��
������������2��5��8��9��;��<��6��>��?��n��p��o���`#��������\��[��Q��R��W��X��Y��P�����������U��V�����e��g��f�����������������i�����
����j��k��l���������������������°�vJ�"��H��!����EwIC7����\,���^>=��+g�k��+3�e~	G=�?
X%�q��^,��°�¿�·ј�V�i��+��^U�e
��"��Z����[����\����`��"��"¿��/�0¿�¿�¿�¿���¹�������������°���� �w�����°����"��������¸¸
¹���X��Y¸�¸���p��q�4�P�τ�2�3°���n�����/��gº�º�ºq��ºkºlºmºnºp��ºtºu¶���Ӆ?¶�¶�¶��ˑ¶�¶�¶�¶�¶�¶�¶�¶�¶�¶�¶�¶�¶���a��q��p��o¶�¶��ː°����J�
��·�·�·͐
��º�	��m��nº�º�º�º�º�	°������-=�`g�����^��a��`��e��_°��؏�����°��1��C�O�3�7��>��6°�°�°����°�°���1��°�º��߄�߅�߆�߇�߈°����Ë9�Z�����?����º$��������lº%�}°��1��
A�N�0�ň?�;��5�������ϥ°��L�����2����y��z¶㉸����V�?°Ć�������?�;��@�;�р°��6���{�߃����{����ºɊ���C�ϯº�º�����Cº�°ņ���º�º�°���	�U�Zk

����:L�t�5�0�I�냱,µuµvµtµx°����º�º���}¸¸�¸¸
¸¸¸¸����µ}�S��¿�¿�¿�¿�¿�¶�¶�°���	�R�P	k	
��:H�s	�~�6��¸G�G����¿�¿�¸¸�{¿�¿�·��K��Cµy��H��������͏�·�º�º�¸M�������°��[�v°�º�º�º�·�8�6������z��{¸L·��y����F¸¸��H��I��J��K��L��M��S��V��W��T¶�¶���O��R��Q��P±���ג����#��$��h��V��W�� e�ф������°Ȇ��D��|`�͌
!��`��½Y�����^�5�_�7�c#��b�8�d�8�e�8°Ƈ(�~
�b��¶�¶��n�o�l�m�q�r°LJ(�{
�b��¸����y�߂�z�{�|¸�����w¸�¸��x¸�¸���
¸��u�v¸�¸�¸y¸z¸{¸|¸�&�j�R�^��¸�¸�¸�¸�¸�
	��¸�¸�
¸�¸�
¸�¸�¸�¸�¸�¸�����°�����^�H�ʆ|�?�	*����6¸_°�°�������%������¸n�¸t�¸�¸�¸u�º�º�¸}L�i�R3��`��¸¸���}��~�i�j����|�*�Ϻ�ϻ¸~�2¸�¸��϶�Ϸ����¸`M��¸f¸b�f�g¶�~¶��}¸a	��¸c¸d¸i¸j�˖�/��_�Ͽ�Ͼ��������˗�/�����°�-���E&��!A`��Ds�zwN,�˃F4��

V�h
	+�Lt	?	7�?z�~�'����4�:��5��º�º�º������3��������4¶тH���h¶y¶��8���h����¶�¶�¶�¶�¶�¶�¶�¶�¶�	¶�¶�¶�¶�¶�¶�¶�¸W¸X¸���}�i�6°ΊU�g�	���º�º�º�º��ъ�ыº�º�º�º�º�º�º�º��ˉ��6����¸�¸�°���H
���s$B��#�:���eT��
¶߬���¶�·˫��H°ӊ�°���º����<��s��t°Ԋ�°�����8�?��9�?�#$
���]¶��ї�ј�+v�����=¶��{��¶݊t¶��y��R¶ڊs��1��$i��%i°��B���L���Ƅ僰�u��ߌ¶��C����=����°��B���ʄ僰�u�».���R!����	��
��
����������¹��v����¹��t������¹���¹1���Ό�����������������¹�����±Z�����Q¹0���»2����(��'��µf����z���J���	�M�!����T�Ύ�r	��.
��/
·Ԑ4�/��	����������1��2��T��������������F��H��G��U������°P���R��S°Q���;��<¶��Q�a½1½2½/½0¶���¶�¶�¶�¶��G�p������µlµmµk�ρ����P���مH�"�F��?��·>·?���������·A�ϛ·;���K���؅H�g����·߫q·<�_·=�����4��3��W��X��5��Yº>�½+½,º?��Z��[µh����}���L���	�M������#�	������f��nµi��·ۃ�����������µg�o�C����O��c�����º��&¿�·�·�·�¿���>��?·��°U°V°R°S¹d��C��D��A��G��I��H��E¹Y¹Z¹S'¹T&��������������������������L��M��P��Q��O¹|�p���������������������¹}�p��������¹l����������	C������@����=��>����?����:��;��������!�� ��$��%��'��(��&��+����������.��/��0��&��������
��1��
��2����������3��4��5��7��8��9¹g¹P¹e�A����¹�@���^W�:��� �%�`[=���*��%�T��=����f�輂ٌՉ��.�3��-r,ÞÞÞ������������������������Þ���{�G��cs�=�?�_�>������|�G���������������������������B�D�E�C�轂ٕˉ.�3��-o�������������A���s�晅��J��
��
�:*����	�����{�|��3������:��8��7��4��5���!6�;�Մ�������������9����J�
�
���#4�;������7�槈J���8����������������������E����7�������1�W��>��=��A��������@�����	��	��涅����'�g��
���������枣N�������	��	��	��淅��уg���D�����
�
�曅��� ���	��"�������e����!�	���(��+��)�
!�
"��K��L��$��&��'��%��O�<�X�	��	��	���N��,��1��-��P�=�i��Q������Lq�F
��
*���d
��I��K��L��J��������*��*�

������M��T���A���	��	��	��������8C�I�� ��sG�	���������>����<�����
�
���GG�����O���CA�H��s�������������F+G�	��	��	����P���	��渞�F�K�����湞�F�K�	��	��摂c�(�,�9a�6����^�t�w�x�px�
�{��������������	����������������������Q��U��V��T��S��R�I���N�O�R�Q�S�T�@�A�B�C�E�F�U7���L���JA��������������q������s�X��������P��S��R��Q����p��������h�k�j�i�l�������������`�� ��,����-��.��!��*�0��+�0��
��7&�
���?	q�S		�b�����Z�+�{�z�����p�~�|��G��H��I��J��������������������������������������������������������������������������^��`��s�����a��_���#�/���?w?��a���
����'�������%���������;�s���;���;��
��7�
���=	o�Q	�`	����M�O�N�P����7����Y&3t�A
sT�
�i8�]�� ��2���g������/��4��������3�����p�o�n�q�r��!�������k����m���������q�p�o�s��z��2�����������������������������̈�|����}�~��͈��������������ˈ�����������������������3���������,�bbH�G����,�U�vx����<���������<���;���B�
j��h��i��/�D�k��b��e��d��c��m��o��p��-�&�C���x�{��;��4��5��6��7��8��9��1��2�O�P��<��.��4�䔑��M��O������L��N��:�:����v����u����t����1/�P�%��0�`���ۃ���������&��'��)��,��2��+��*��-��.����������������������	��
����������E��F��������4/���Ӆ����6������:����7����8����;�ό�����<��=��@����A����B��C����2/���;�����%����������·��*�����������χ������31���������� ��!������������(�b^4��+�y	
g]�x�j�]�ih��k��+��������\����]�������J��1��b���E��0���G��5�2����������&�	��(��)��'�/���-���������.���v���i �[�y���h����g�������������������2	�8�5�3�0
�1
��������ׁ��|�����
���W�k�l��
���o�����������x��|����i��j�
���
��	��Q������S��T��Q�э�1����R��$���$���(��-	�%�&�(�)��#����N��L���d�N�R�Y�U�T�S�V�W�Q�O�P�w�	��[)�]�^�\�	��y�f�g�{�z�i�j�k�r�p�n��`��u��a��t�_�c�`�a��������������@�
�����Ãʂ���BA�����j8
(BL�CUjI
��Z��R�K��p*�������������������������������
z��J�� ���7�8��8������������������������������C��7�ׂ������
���������������^��������������������~�������������������}�|����������^����
�w�q�l	�G�'�J�I�H�K�L�r�s�t�u��2�����.�����-7��C�r���7��p��i��l��k��j��m��b��e��d��c��f��g�������������7��[��\��a��{��|��_��]��R��U��T��S��c��d��+�H��0�����s��,�D9������������n������)�,�+�*�'
�(
���-�.�/��3������&)�����
7�ڂr���
7��y��f��g��j��i��k��l��P����Q��u�����_��`��a����q�-�� ��	������@�<�D�;������w�%����x������������������������ÂY����������� �!��s��ƅ��������������������������������օ������	��Ӆ������υ�����������������������������������������������������������������������������������������������������������������������������R������������H���׉WF����
�X�x�?���*��������������"��!�� ������������������y��z��#��(��)��'��$��%��{��~��}��|�����������������������2�
��=��<��>��?��@��-��/��2��.��0��1�����������������������������*���������L�� � ����X����0��1������
��������	��������U�������6H�����]����
����T��S��C��F��E��D��G��H��������
��f����W��V����
��Q���*,��+����J�
��_
��`��i��j��c��l��a��d��f��g��e��O��N��K��L��P��X��[��Z��Y��\��]�K
�V�L
�W�������St���ہ�u��9�����n��p��q��o����������r��u��t��s��v��c���3����w����7��5��9��4���Tr����s������b�������������u������v���������r��D�𯒁
�1	��
����D����%��!�� ����"��#���p��C�H��p����D�I����������~�����������������������6�7�𖉥�𗉥��҄���
�1�5�"�#���������̋������������΋������������h�ń� ����(��)����l����k����V������ӄ��o�)#�3���%s���������؅*����ׅ*��օ*��f�^D���5��� �����
���������!����	��v�������������������������Dž<����������9��r��p�������������������������=����I�}�~�*������"�n��8
(GF��j6��W��P3E��B�S��*
�	��	��	��	���2��3��4��5��6ÞWÞX�
3�
4�&�'��	��$����"��'����&����%����#����
�������
�.�N�
��:��;��<����)����+����,����*����(����-"����.��0����O��1����/"������ӋL�ȁ�b�!+�������������������������������������������7��������*�Y
�A��Q���H��j���G�	��	����
�������L�҂b�������΃�V5'T=�2	i�
�]�`M��w)��������������������������x����{��z��y����|��}��	����
��8������������9��h�������������$�ՒӇ���;����<�����j�
�$��އT�ʃ��������%�G�6���G����m��n����������������������O����j�n���T5��d��!���Q������q��"��ڊ�����
��������
������,�*�+��@����>��?��͚5�q��Ν���r���2����t��u��v��������D����	��
���)��)��M}��6d�k����M��������
&����d������
����x��������������������Q��R��P������O4�2
1�d�����63��������ޏN3�11�07�5�1��Z��[��O��9 �o�ۃ�����;@�J������������<���=�>�V�W�X��V��
;8�m��3���E�����F����������*�������
�A�B������T�m�L���P(J	�J�����ÂL���Qq�|�}�����U�q�I���L'K���K���Pq��ĂL���Qq�����Pp�����
���d���������o���ۅ7V"�}��)&�‚�L�N�M�O�S�T�R�Q�P��W�������o��4��(.!�_��������+�B�����
� �
��}���	����������������������������`��f��l��m��g��h��a��b��N
g��6d�k���23�h������
����b���������������������������������#�&�%�$��������
��e�����a�_�����h�`��������W���^�ꆚ��W-	�w��+�.�������������������������������������������p����6��q��r����e6��#.������6����%��%��s��v��w��t��u�Z���������������[�\��ك�������_�����܏������ڍ������#�L�����L�n
�(<�lES
�/	�����Ƈ�����ȇ���ɇ���LJ�������������������#	���	�	�	�	�	���	�	������
�����������������?���������������
��k�����m��ˇ�������ʇ���̇���͇��w�s�����t��u��~���j�����������������և����l�����1��������·����#�����������·��ւ��+�����������ʇ����������������������ч���
a��������������(�����J�����
�A��d7��d7��������d7��d7�������������������
�	�
���r��s���N��ˁ��k��'Z�f���������������g�����^����v����������������������������������tc�b�
��

#W�h����������
������������
�����F�G�I�J�L�S�T�O�N�M�P�Q���
��
��{���K���X�
���t��u�
������N
�X��������|���KT.�V�>�=���������<�8�9��K���W��
��
���&�'��"�|������$��(��%��&��܇�!�����������������
������
��
��
��
��
������߇���އ���1�o����)��*��+��,��2��#���菙�������B������-���돜����.���������m����������
�	�����ώ�����4�~�.	��7��5��6�������'��O�
zX+�p]�n�f��E=�1��W�Y�
��
��X�Z�[�\��������������;���w�?��Y�K����<��=���������6���Q���]���h�"���$���^�a�`�_�'�%���(��`�.�/�0�2�(�+�'�/�.�-�0�ǁ����(����!^�	����,��;]��*�+�i��@�#��������������B��Ӎ,�����������`�G���������K�6��~��B�*,��6
@��-93����A��B��o!��7��������
����������4��T�W�V�U�X�Y���������Ԋk���j����������������������	��=�?�C�>�@�A�P�R��������������`��3���������������������e�F�E�I�L�K�J�M�N�P�Q�O�S�G��.������D�E��������������U1�*�X�0�
����zÞ�Þ�Þ�����Þ�Þ��������������������Er���JuÞ����CpÞv�耂7�F��u�����|��������AÞy��	�(�C�����
�^���������������������������������WE��X��V2��c�/�
����|�������2�~�荁��=����F�<��U������������������Þ����Z����J�;��U�靃G�������Þ�Þ������������������������B�S�"�I�J�#�$�;�<�螢�������������������������)�$ �*�������(�" �)����+��.��-��,���o�
�)�+�*�,���M������������������������������	������
���n�%�&��5�g��8��7��6��9��:�蝎R�'�/���1�Ir2���m���/����2����	�
����-�1�2�.�/�
�
�L�M�N�������0����9���-	$,��6
��-9)����@��B��	l!
���0.�'�������������
���������������U����
���2�	���
�"�#�F���H���;�蜁����*���
������������<��R����%������O����=���<�� �!��P��Q�����蓁�	i�/�����	<0�&�*���9����z5�������2��5�4�3�	�	�	
�	�[���\�%�(�'�&�)�*��]	���.�����k��l��^	���-����	��m���J��|��}����p
��t��s��q	��n��o��ӏ�e�&���������gn�]�������+�0�1�/�,�-�	�������������������������:�;�6�9�8�7���������\	k�,����		)0�$��1���K����5����������f���6��ϐT�(�����	�	�	�	�������邡����0���3�4�����4�5���/�誑<����D�Ɩ���/����������������L�B���������������Þ:��M���z��E����/���臁���������謞����8�9�H�I�W�譂-	�.�-.���!	�D���������������������������
�	�������������	��	��p�?�q�t�s�r�v�����w�u���^������
��C%�?����!	�(�$�#�"��I����J����
���������9�������=��
������6���@�f,"��R���"�#�$������� ������#�g���A�hO�'�.����:���<���#�7� �����9�8��N��1%��O��*�3�2�
�挣%���������������0����o�Q��D�{�C���p���2���o
�����0��1��P��8U!�o��S��T��R�*[����������V�'[��Q�*Z�J���;�>�=�<�?���������0�/�.�������������������������T��S����R��T�n�l�m�o�h�j�k�i�p�q����������������������������G�?����C���D����g��������c���s�Y�Z��a�#��D��������^�I��_�H��d�$�t�u�v�������|�~��}�w�y�z�x��c�$����������b�$��F�<��������������������������������������������3�������������	
�#	�
'�����e#�5�����S�����U��ݑt
�,����`����_�^��������	�U�����f����Z�[�\������ʇ���������e��������V�X�Y
�W���
��<#	����?�H��������������y���y���y����E��F�����������*��������)����)���|��&�(��'�Z��*���z��-��.���������������������
�n"	�������������(�R����������������x�
������J�0&����H�/%�����������Ăz��W��Z��[��Y��]��X�&�,�)�'��������4�!��d����5��6��9��:��=��<��>��?�r�t�s�u���`�p�q���`�[��7��:��9��8�\��@���F�+������y��{��|����~��z�q�}��A�;���b�k�l�c�f�e�d�g�h����������D�!����E�<��������8��/�
�O���k�Y��=�.
�Q����G���0
�M��<�<��6��H��I������/�������� ��q�h�$��������[!F��K�����{;fU+1
��3����������R������X�A�������������������������������������U���	��g���Ջ����������;�掣2��b�����\���	����������>P���E���F�D������������������������ƕ��"���A�Ȃ���P�6����������Q�4�����6�R��9��8��7��:��;��R�Q�������������v�݇��H�J�I������ځ���[i�o��������������;�O�P���K�L������7�8������%���K���������������������������������������������%(���'l��3������D�='����������������������N��O��L��M��������������)�����X��Y�[�\�]��-�^��-��'&���&k��3������������������������� �[�T�������R��d
��d
��˗愢�i�E�휏;��:���������:�흏;��������3��3�������������������^��_���������������	����9q�������	�O!#�����%�&�!�"���������� �����c�횚��혏ʅ�c�홐
�������������	��
�{���N!#�'�(�������
�2��H��G�#�E�������K�L��������튏G	�����������������������������틏G���d����퉏K���팂8������f��`������b��c��d�������	����������������������		������������������������j����k��#�˂"��������������$��%���
����&�������)��(��)��*��,��/��.��-��0��1��������*��3��4��5�����������!� ��a������������i��e�I;�������������������������m�D��n��8�����ێ��������������o��2������������������������/��<����������
��F��r�h��rA���������E*�����)�����������������V������������������G��/������������G��?	�L���
���G�vA�y�q�r�t�u�v�w�x�s�i�j�l���p�m�i	��������������ł�����_�����'0>*@;l�9�f�����b-"��	�R
���<�������������������������������q��rÞ|Þ}�	-�	.�%,�
�������A�E�C�D�'�R��s��t��u���;�6�����������:����X�7���Z�[�5
�Y�9������������<��5�Ԅ�������������������=��1��O����U�V��>��?�������;�A�B������������C�`����h@4I<���8�"���p����+�U�
�,��/�0�1�%�2�"���3�4���������d��3�\�������z�������}�������������{�|�~��=�@�?�>���������j�������v�x�y�w�q�o�58�m�6>�^�_�g��2�8.����`�b�a�9�]�^�=��x�ɂh����j<5
?;ip������� �׃M*���1����������A�d����lg��p�քj�"����^�����E��F�0�1�,	�*c�}�+f�M�N������Þ�Þ��H��B�
��C�	�J�I����������������6�c�d�������
���d�2������O�����������N���������������M��@��=��>��G��H��A��B�������������������� ��8���4
W����		��9��h��҃��5��
:��
o��lr���#G����.[z�X"��� 	/����������������������������ꁇ�X�ꂇ��W�ꌃ���������	�8��d��e�;�9��f��g�:��h��.��-��,����K��L��������l��i��j�1��d�“��1��2��e����ꞝ��-����������������������������������	��秊�2�������1���������������N��%�y�=:�r����&��;�q���������������h�i�������2�3�����O���K�>��P����Q����R����r��v�����!�J����i��j��?�������"�S��#�S���\�]�G�[��������������O��@
�������I��E��F��D
�J��C
��B
��H��I�P���R�T�S�Q�U�V��N��q��3��s��t��u��W�ꊇ�����p��y�a��~��������|�\��z������v��w��z��{��������������䊏�Ō��4�H���w����������������뻆��!���#��`���a��b��c�뾆��B�뽆��!���#�뼆��A��P�-�뿆��>��[�7��`��a��b��d��c��Q��'������2R������������������ۇД������������܇Ҕ����ݠ����������������������#���0S�����������"�$����&�猋�������������(�����0S����	x�g�������c�b	��������	��c�a	������$�Їb���p�������������������)�ڂ�
�t����������Ӆ��������	�������������5�
Q���5���G��������������������኿�����眆���������������������+[bd�[@
�������g�r^����5Q�����f����y!����,�-�3�4���磛����碋|�c�순'�������Ʉ����#�	@��,����?���!����n�t[����9n�����k�����q����	J�	I��.��3�������	L��1������
�ς%	����4�5�6��2����6����h��i��j��k��l��)�/������5�������1�2Þ���XO����m��t��p��o��n��q��r���������멇Þ��������������룁�.�륁�-�릁�-�뤁�-��������=�$o�Â+��������������������������������+�������9����;����<����:���݃;�%
������������"���������	��9�%
�M�����	D����������퍯J�����G��썮K��J����I�"^������K��L�}��J�p�q��?�
�//���&��T�w�������%�������������������������������������������
��얆��+ <.�a6�+�왆��Q������������옆��Q���없��S���b��&K5�i�e�U/�d�T�c�V��>�f���g���!�Q�"�r��7W7]�1
N��������+6
���������:��%F��b_
��	�
F
��
���w���
��[��Y��Z��\��������������������P�筋��Q������ ��������������������������������ō��������G�������������绗����I����������������R��g������������낺�݁�:���t������������;��������	����������	��
�����������������9�{���:�繚��Ӄ���3
7�ԃHZ�ρ���e����
;&����]�� �����붜���;�D������������������������.��]o��^n��Yl�����Zl��[n��\n�������|�ꀔ��-�z�����5���������������������7P�3�܌�e���������e�f��������6�}��Ƃ��
b���4��4���܌�h�����U�[�X�Y�Q�h�R�h������v�)��w�*�V��u�K��y�J��{��|��݆����b�ЂS����l��������m��n��o��p��8����j\�·��N��O�{�|��9�J�؇�쟖������-�,�+�����jb�΃����������<��#�́����������Ɔ����9�<�;�:�����	n�	o��~���
\��^�D����$��#�����`����ܓ������ߓ�������\���	t�	w��Y��Z�	u�	v����������\��	��	���]����'�����;�����9��c�J������������_�톔����
�����퇔��
������������TR����,��������r���D�9��������
'��]��\�
(�$�(�%�&�����c�버P����	����
�������������ח����������������s���������������������n�o�걂���)���	���]���B���������������
������������������������ؒA����\V(�����ח��
����������
����������UP3�����)�������r���E�8���
����������������Z�}��������ꃂ*����������G���;�����ÞS��ÞT��
��	��������������ÞR���p�#�����q��������������������������	��	����	��	��	��	��	���$��������������o
�u��y�u��������k���n�������������`o��������2������:����i�RO�G�
s�F�
�o�(!��B�%R��
����z�_�ђ�!:
5�d�626�
^������"$�ol�4��4��4��4�4��4��4��4ٚ��4ښ��4��4��4��4��4��A�H�F�@��3��4��4��4��4��4��4��4��4��4����@������$
�oc�4��4��4��4��4��4��4��4��4��3��3��3��3��?�E�4��4��4��4�9�4�;�4�;�4�;�4�9�4��4��4��4��4��`i«���Ӂ��S�"���[�\�g���I�I�I
�I
�I
�I
�I
�I
�I�I�Iâz�G�â{â|â}�G�G�G��G�G�G�G�G�G�I'�I(�G�G�G!�G�I-�I/�I0�I.�G"�G��7�G�G�I7�I6�I4�G�G�I*�I+�H�G1�G2�F~���G-�F���G,� �k������1���GB�GI�GJ�GK�GM�GN�GO�GP�GQ�GR�GE�GC�GD�GF�GG�F�â�F��FsF�FtG�F��F��F��F��F��F��F��F��F��F��F��GT�G_�Ga�G`�GV�G#�G$�G&�G'1�F�8�F��F��F��G��G��F��F����Gc�Gd�F��F��F��F��F��F��F��F��F|���F}���F��!�k�������Y�ß �F��F��F��F��F��F��F��F��F��(�-�	�Gv�Gw�*�G��G��G��G��G��G��G��G
�G��G��G��G��G��G��G��%V�Ge�Gf�G��G��G��%K
�%L�%M�%N�%O�%Q�%P�F��)���Gq�Gx�G{�Gy�Gn�Go�F����F����F����F����F��Gi-�Gj
�Gh�F[�Gl�1���G��G��G��G��G��G��G�&�G��G��G��G��G��G��G��G4�G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��F��G��`�«����냼�F���I�G;�G=�G
3�G��G5ã�ã��1�G��G��G��`�«��b�������F��ã�ã��G6�G�'��G>�G?�G7�G8�F��G��G��:�G9�G:�G��G��G��G��H�F����F���H	�H�H
�H�H�H�H�H�H�H�G��G��H�H�H�H�H�H�G��G��H�G��G��G��H�G��G��7�
�̖��\��������;��S�H �H"�H#�H!�<�1�	�H�1��H%�H&�@�	���1�A�	�Fp?�Fq>�bª%�
�\f�\t�1�=���?�<�H'�H(�1�H�H�1�1�F��G
�`�«��ҁیU����L���[Yg�HF�HG�HH�HI�H��H��F��H-�H.�F����F����HD�HE�H,�H/�H5�H2�H0�H6�H9�H7�H8�H:�H;�H>�H?�F��wL�F��Hx�Hw�H��H��F��F��H��Fm=�Fn<�H��H��H��Hz�H{�HA�H|�H��H}�H�H��F������Hn�Hs�Hp�Hq�Hr�Ht�Ho�F����H��HX�HO7�HP7�H��H��H��F����H��H��H��H��H��H��H��H��H��H��HS�H��H��HR�H��H��H��H��HT�HU�HV�HK	�Ha�H^	�H\�HY
�HZ
�HN�H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��Hl�H��Hm�Hu�����H��H��,���؃���-P��[��F��H��H��F��F��F��F��F��F��F��.���2�/�H��H��0���F��F��F��F�����H��H��F��F��W�H��H��H��F��F��H��F��F��F����H��H��H��H��H��G��G��H��G����G��G��G���G����G���G��G��H��H��I�I�H��H��I�H��F��F��H��H��H��H��H��H��H��H��H��I�I�I�-�����7���[ER�H��H��F��F��H��Fu���H��H��H��H��Fw���Fz���Fy���Fv���G�I
�I�I9�I>�I<�I=�I:�F��F��%Y�%[�%Z�bD�� �
�����a

�΄��kk)�����:���������\=��xy�QLX�1��1�ã{�3�M��M��M��M��~���Nb�N`�Na�Nc�Nd�Ne�Nf�Nl�m¤i�����΅������Np�Nq�������	�l�¤>���bv�3��3��3��7�@�R�7��7��8�����;�<�=�by�¤<
���I��I��bz��\�?���I��I��҅d���I��վ
�I��M��M�����Ծ�I��I��l�¤R�������3�u�b�N��N��a�����a�������l��l���W�NU�a��b�b�m¤>F���:���m�m�m�l�
�l�
�N��N��m°��N��m	°��m
°������a��a��mŸŅ������R�S�3��3��3����������A�|[R�ƒin���	�T��7�9�8�,�4t�4u�-�N��N��.�{�7��7��7��7��7��(��^�_���g�zZN�+k���p��	�T��F�e���<�=�0�4�5�2�1�bt®��d���?�C�a�b�D�_�`�K�M�N�I�E�F�J�L�e�G�H�S�T�O�Q�R�P�@�W�Y�Z�X�U�V�[�]�^�\�A�B�c�d�Ʉ�~
�ш1�!�1�g�7��V�7��7��I��4��I��4��4��4��I��I��I��I��I��h�9�k��i�9�k��k�l�j	�l ���
�ψ5������}���)�����n�U�K�L����}
���q����0�e
��l ���
��+�*�7��7��x�%�y�z�j
�?�k
�b>�� �
�����a			�^�kg$�����ֈ������3+	��tr�QLq���������M��3��f�����3��e�ƭ'���I��I�����I���bw»A�+���ޑޖ�ʄg+���3��3��3��3��3��3��3��3��3��3����(�)�3��3��3��bx��'�M������b��¤X���Q��!�I�w�*���1ž*�1��1��1��1��1��1����1��N��N��N��1��1��E�F�B�����1��C���
�1��1��1��1��1��1����b��Ÿ�k�Q�/� �N���)���1��1��1��Չj�����1��1��1��1��1��1����������������I��I����N\�NZ�N[â�â��N]�z��V$ã�{���1�q��
�
â�â�â�â��
�
�1��1�â��&�â��&�â�â��
�
�
�
�������nq������	�J.ßaâ��J/�`��/d��Ÿ���S
������������V,�`.B����LC���u<Vo������W*���]����R*�{��������JT�����Џʖ������)��)�ã�ã��)Ғ2�;���;�)��N�)��مϛы'�%i�%j�������ށ�����������������
���������>���˗-�l�����@�a���������3?�Q��{�u��*c�*b�*d�*f�*e���]���z�3�/���^���z�2��Ƅ
��������������†����������3�����������&)�&*��%���-	7�Q��{������6���;U�;V������
f�~�
h�
i���
j�
k�-�.�
g�~�&��&���2�q�L�%X	(���
�B�Y�Z�;��;��;��;��;jH�@�)��)��)��)��#�;���;k���)��)��)���1�p���;i>��3�;���M��J�J�J�E�F�M��M��;o�`���¥�
��
r�
������o����K��y��M\���Zh�������������������%��ӗ
�)�
���)�
�����)��)��)��)������D�y����X��V���*w�*{�*|�*u��������lG§k�����������������������������l%¥�
�"���]����
V=���;��;��lH¥��!�������,�����In�Io�Ip�l9½8��Is�)q��l&¥�����l'¥���������������������������z�����l<ª~���x�y�l?¬2�l>¨3���l=¬2
�|�r�s�t�{�v�l@¨6�lA¬>�lB¬>�����l¥���
;#�
����������K��
p��L��!���Y���%��y�
�d�����������l*	¥����	�������M��Y��5U��lR�*p�*q�)��)������lN¥����ބ��������	���lT�l#*¥����	Es�|����;�lL¥������������������;��������lO«����lP«������;��;��;��;����+�g�\�<�������`�¯���
�������v�������Ze�����Iw�����Ix�Iv�lf�lj�lg�lh�l��l��l��l��l��l��l��l��l��l��l��l��la�lb�ld�le��ln�lk�ll�lo��-��؃ʔ��h��lp
�ls�lr�lq�lt�lv�lw�lu��)� �1�J�K�P�I	�)�O�L�M�.���lz�*�*	�*�3�2�/���*�����*�`�¯��

����
�ю�u�
���=���h�l��lU�lV�l{�l~�l}�l|�l�l��l��l��l��l��lWº��l]�lZ�lX����l��l��l��l��l��l��l��l��l^�l_�*����������5�7�6�9�<�;�:��#�:�;y�*C�;z��#�*>����`��������<�z��J���v��]��U(�Á�n
�.�T���3��
�VI���������&��&��&��&��&��&��&��&��&��ٖC���*�*�*�*���&��&��&��&��&��&��*�*�G�d�҅�*��*�*�H�d�҅�*��E�F��m�&��&��&���m���&��&��&��&��&��&��&��&�ã<ã=�W�����K�g���%y�&��c�;��&��&��&��&��&��u�p�Y�&��&��w�R�&��&��&��r�a��	������;���m�v���/%(	�����I���VQ�������O����@�,�(
�v�&�H��H�-�5�v
�Պ'����*�*�*����;�E�F�<�I�@�J�?�>�c���Q�'�(�R�f�����L�N�O�M�d�&��������&�������������������-�5
���@���`�}���_�[�]�����k�������Y�Z�**�*+�lL��2�
������Zb�����*l�s�t�*m�n�q�o�p�w�J���J�)��x����/�W�����������2�H���2�H�m
C��
/��B��Zb�������)��)��)��)��*;�)��)��*8�*9�d���
�L��&��	���3������tV����=�����D�����>���?������Z�����sU��������R���5Y���T�����������+�,�Z�&�'4�m�n�p�9�����v�q�r�����t�u�������;��E��
�V�L�M�N�K�G�����������F��
$�J�Á���a�Z�����X�[�\�]�^�O�k� ��.�����3�2�4�w�x�{�́́������k�©�����¥��������������������9����󣦁�����PYf��F�R�Y�S�T�c�e��f�g��e�Z��i�[�]J�����������f�&�h�g�%�i�i�i�i�q�r�s����DU
Z�ޏF�\G�����������
����Rx�q�i�<�i�������������A�I�D�H�B�J����#���������������x��
���������_�`�u�}�v�|�Ɓ����~����a���c�d�������������������q	�r�b
���x�h����������!�$�%�"���z�|�}�
�~�%J��$������6�抪�����Z�����+�i���򣤏��|�}������,�-�k� �����-�S��t���:

G�R�$2.f�����Y��A�B�C�1��1��>�m���?���@�����n���
����
��
��
���������0�4�1�2�5�6�7�8�k�¥O��s�O�H���֏1�Za�;���������������������$�����;���������'�������;�������&��*��+��$��Ņ9�p������������k���Ÿ�*`	Q	���{'��	9/Y���	�hr��Tk\)��A�F����$��XCi'�u9V����� $��v��	�R���{��)-�)/�)0�)1�).�;��;��;��"�#ß����)������������������â�â�����ß��Xß�ß�������â��&��&������������������k����k���(���������������);��&r�&s����w�}���0ã�ã�âw�IW�IZ�I[�IY�����������(�����)�)�) �)!�)#���������l� O�:�����ځÂ��9���l��d���V�K���IP�II�IK�IJ�IR�����������������������	�������4�����8��$ �u�k�������)4�)5�J$�J"�J#�J)�J*�J+�������`�����P����)*�)+�)(����O����������������������������������������f���
���V���������񆜋R�Y�);�)Y�)Z�)<�)W�)X�)C�)E�)F�)A�)=�)>�)B�)D�)]�)?�)@�)K�)L�)G�)I�)J�)H�򆜗��)O�)Q�)R�)P�)M�)N�)S�)U�)V�)T�)9�):�)[�)\ã��IM���IN���)
�)
����k��� 4����́�?�}C��a#"�� ������o������

7h��������:	0%?���Մ��R>�������)w�)}�)~�)x�)y�%^�������l* އ��M���������,�������&���H�'���
	�ܩd�����/�0�l¦��ā�����To�2��CSA�)����H�Y���)��)��k�§�k��k��k��l�܆q"�䑿�����o���O�P�k��� ����y�k��k�¡i�k��k��׆����k��l4¬!��l5¬!�k���	£����	B�@�z\D��O �����L��
Gj�+��4S9�dA���l/���l0�l2���n�����l+¦��ׁ�����Xo�9��?W?�)��)��)��)��J�J�J��H��*V�*W��U���l7¦��*�l8¨��)����)��)��)��)��)��)���6���"�����)��)��)�������6��O�\�������[�X�Y�^�_�]�\�[�����h�0�	�N�G�������[
�g�0�)��)��I�J�G�H��4�������)�������9�����������)������
�3�Ԏz��j�r
�*��*��*��*��JP�*��*��*��*��*��*��*��JQ�*��*��*��*��*��*��*��*��*��*��*��*��*��*��*�8�*�8�*�5�*�8�*�I�*�I�*�H�*�H��z���rr�*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��`�2��¡_#.'M��N����Ձ���	�Jd %��C8��w���ҏr���Ry���]�+F�Á�P�,��,��,��,�+H�N�+G�N�,��+I����M�,�`���)���
w$�	��2��
���
���*݂��,��`��`��I�J�K�`�
����`��`��`��`��`��`�­��`�­��`��`��,��`������`��`��`��`�¬G�����`��
(�
)�`�¬E�������
ׁ��_����$��tMk�l��	��
8�_�_�+d�+c�����������!�$�%�&�'\�']�3�+o�+r�+s�+p�1Q�2�k�M����m�0�/���.���'|�'{�'}�'~���r��������������C�-��������
�	��
��l�L����'�(�)�A�B�n���4:�F�-�,�E�4<���a���������D�4;�J\.�4�5�'d�'e�"�9�8�6�7�G�H�`�
­����n��Ę��@�=�+��+��-
�-�-�-���Jc2�Jd2�-
�-�+�`�	¹��Dž��
�t�2��2��2��2��;�<�J��>�?�2����:�J��J��M�I���K���S�T�U�R�V�J�P�Q�N�O�L�+(�'_�d�Y����8�[�]�\���Z�X�^�_�'b��*��8�Y��'a�|��'[���8�W�`�a�'`�b�'Z��+��8�e�f�g�
ٚ���+{�
؁��]��(����b���'��
3�q�p�s�t�l�n�h�i�m�o���'g�'i�'h�����s�����u�v���w���y�x�'w���#�J[�'k�'l�'n�'o�'x�j�k�r���
������|�ט�+�Y�� �����'X�'Y��
ݍM�G�O����'q��z��z�+e�+f�+h�b�c�{���+j�+l�
�����*�Y��J�����������
ۍ�����|��}�~�����'s�'u�
3�T�������
ށ��
߁�����v�w�x�
4���2��2��'�'�'�'	�
�n�L�V��	��=*$w
g�7�Y0��ãlãm���
0�
1�'*��k�P�,��,��'
��		��>.��8@�=�*��,��T������j�����*��*��*��
�n�M�G�ƍI����8)w
e
�0�Y*���'$�'%
�'B�'C�'�')����k�
�H�Y�ãp���J����=-��::�:���������������������������F�$���'1�'2�*��*��-'�-;�����������-�'4�D�Y��Jx�Y��a�2��2��2��2��2��a	�+�+�+�+ã��a�a	�a�a�a�
E�چ���k�¡�b��!�P�;���vL�-G�-J�-L�-K�-I�-H�,K�-R�-S�,L�
u��
��G���t���2:�29�2;�2<�2��
��
��2M�
��J
��	[���2B�2A�28	�2=
�2>
�
��
����2D�2E�-[�-^�-\�-]�k�¡�b��!�P�9
���vD�,H
��`�¬����F�	���-O�-P�`���M�,W��`�7��ª�h+3�]�i�ۍJ�Ѓ:�]H���������Y��,Z�,[�
8�
9�
A���J���+�L�,f�����������P�+�K�+�M�,j�������J~�����
;�
<�,^�`�1��ª�]#	���%A����Fz�������U��&��
��7��&����
��`�­���r�-��܇W�q%�2R�
Ś>��`���s�+"�`���V�k�¿R���+�k�¿Q���+�+��+��+��+�
����q�-�		�/�q�'�+ �+$�
ўT�
��
>�
?�,`�,a�+&����J�����+��+��,w���,q�,r�,t�,u�,n���,o�
G�
H�+��+��+��+Â�+/����J���+���f�+)�,~�,��,�,}�,��+'����@�����2��2��2��2��2��+‚�+1�+2�,��,��,��,��+,��sR���+*�+ف��+��+��+��+��+��+ځ��,��+ہ�Q�+��+��`���>���`��
��w�
��v�`���f��s�'Q�y8�`�"¬����`�¬����`��`��`��`�¬����
��`�¬����`�

��¡_#("B"��N������	�Ł��}A�I
U��B+	&��")?���8
�U����]���
���
�+��+��
��
��'�'�'���'�
�2��2��
��
��
��
��d�eßx�
��
��
��+����o6�
��
��
��
��,�*�������+����o6�
��
��
��
��
��
��a¬cu���d��z�(���
y�2-�2.�
z�+����21�`�¬���3(�����JJ�Z�2[�`�¬���3�KD	�2`�2a�2��2Z�2e�2W�2X�
|�
}�
��
��`��`��`��49�+��
��`�+��¡nMe(-��C����LO<1YFOO�x"	65��X�D�!�"�2p�2q�2t�2s�2u�2v�`��`��ʰ�+Z�a�B��+��+��+��+��+��a��8�7�k�¢s���U���.�+]���
���$��W>M
dN-���+O���
���������c�)�J���J��`�¹��a­����`�¹��`�­?�s�?�@�>�+V��z��2���+\���2���+W��s�J��+U��	�2j�2k�2l�P��t��X��2*t�p��a��¡����W����L
E
/1
RE	����B:�p�A���������+���V�H���'M�'N�48�2i�k�¢b4��X?VcQ���T�U�W�2w)�2x�2y�(�F�6���F�B�C�3��� 3��<�2(�,/�H�������v�ãG�
�2�����
���JU�JV�
�2�,��
�3�����
՚0�0�����v��+=�����A�-x�C�
֚0�0�����v��,����+8�����+6�+7�,����
�i��Q������}�-��
������
����
�i��Q�-�������������ȅ����Q��+��''�X.�>�.)f	�.��.?�.@�.3�.4�.��.6`�d�.��.��a�.��.��.-�./�.��.2�.*c�.8�.:�.;�.9�.��.��.��.<�.��.>�.A�.��.B�.C�k�¢ڥ8�pS�*â�ããã�����&�2�������2��pS�2��'�(�2��2��2��2��k�¢�����*â-���2��2��2��2��J����ãx���l�����3�����2��B��H��D��H��G�s�[���������ãy�;�x���Z��2��3
�3�J��J��3�3�-���*

J���.R�u�v�.Z�.[�.��-���.���C�d���.^�D�.��.mX�-��-��-�o)(�.r�w�x�.s�.G%U����G���1�0�2���.V�-���&
	I���Uu�.��.��.c�.d�.OX	�.f�.g�.W�-���*g�!�.U�.P(��I�È��fJ��M��A�mj��F�-��-��-��-��-��a�b�'��'��'��.�.�ځ����'��������'����݁��'��-��-��FU�Z"���.�&�u�
L���.}�.~�-��-����'��'��'���I���ّN��B��=�-��x���݉��%�yS%�'�	��m/�'��-��'熴b�'��'��'��'��'��'��.{8�.����w8�'��
|/�'�U��'��-��-��-��'��'��(��"�'����Gã�K�G�Mã�-��D�I�J�����-�����	����n�*��L�
���U��������.#�����Z���.$â5â6�z�'���60���3�3�3�3�\�j����60�3�3�3�3�'����'��J��'��R�S�U�W�X�����un�%���Z�J����Ri�~�(�^�}�(�^�|�(�^�a¶[�I;��N�������'��'��a'�a(�a$������Y�a¶W�H�J�����a ����k�l�'��'��'��_�Uq����	�'��'��'��'��'��'��'��'��'��'��'��'����ϙ����ҍ�5�'��'��'��'��'��'����'��'��'��
a�������	h1�o�c�b��'��'��Ѝ:k�a�'��'��[�њ�Қ�����'��������K�K�K�K�K��
=���d��Xz�'�J��������k�»͇J��,�����k�����}��
=�����Xd�J�	�J��-��	�J�	�"�w�F�������k�-��J�����
�������x��;��Q���&��2	��Rt���2��2��)�*�k��j�v�2��2��2��Ӛ��P�����Ԛ���������Q�i���Rs�����p�ՅD��3������(����R�����bL²����b���.pi3�$��!�X������7���-��-��ށ��T�2������.��5�����J��J��-��3���3���8��8�$�s�(.F���
�-��r�)E���-��.����J��s���-؝��-��������a*���a+����a,����bM²�'�,		ghN�2���X������2��-��,�-��0��J�-��-��߁��-Ă"�-��-��3	���{���3
�8��Il�����^�_�9��Iq�R�J��-��J��-��-�
�-�
�-�Gj�.��-�Ll�.������.��|�.��.��������bO��¢������ԁ��Y�t���S�('����L.�T		
P�f����n�t*-���/��k�T�
��W	a*)*â�ßßß/ß0ß1â��
R�
S�l��������Xt�K�K%�K&�K�K �K�()��K5�K6�0H�0Z�K3�K4�0F�0G���0Y�0N	���0[�0\�K(�K)��ɛ��0J�0K�K@��O�0��0g���K9�/�t�/�t���/��l��������Xt�/ߜd�KD�a-��ԉQT�w�a0�?ß7�0d���0e���a.��ӉQ
���0`�/��/��/��/��<�e�VE\�ßGßL�0��0�ßH�k�¼ �с�+��P�o�0z�0{�.�.���("���($�k������*��O�o~���p��.��O�����Kl�Km�(!���(�b�&�o��(�x%ãã�����=��FZ��/�����]����"�Ki�Kj�/��(:�(i�(j�(;�0D�2�����Kv��-�D�����v. %@	���c
�	�W�ea�37�38�(u�/�.�/�-�l�������3;�3<�/�/�(r�(s�3:���L����/
�0$���0%���K������ð��0 �����i�q�zß;ß<����qW#c�㛧�T����(|�(}������������&�p�o��0C&��+�X�3^���`ß=ß>��`�3[�3\�/�$M��*�X�(�(�/{$M�S�3M�/�=ß8ß9ß:��'�
���n
5	!<���Y
��T��ea�/�3Cß5�//&�k�t�6�3G�3I�3E�5�.�X%ff�s<]������������������������k��k��k�£/�k����0j�
�������/1)�l¯ƍv ��I6�t��(C�(Dß?�(��w��(E�(g�l�(F�K{�K|�(V��M�6�('�(+�/N�(I�(`�(a�(b�(c�(d�(@
�F3���(��(��(G��l¼D��I�8�(A�(B�(O�(P�(R�(S�ʍ��,�������և��u�k���u���k��k��0��0��0��0��l
��z�l��y�k���t���k��k��N�k��k��k��k��k��k��k���u��	L��T���K�3$�(>�����K�T����%���/��
@���/����0��/-�e�0��0��/.�e�0��0��/#�/&��	E�/'�/$���(,�(.�(/�(-�/	��;���/"��F�/��E�/�/�/��/(�/)�/*�/1�/2�//��F�0���X=�������K��K��l�l�/>8���/v�/w�3e�3f�����W<���I�*�3k�l
�3l�K������ߔW=�������ј��Ҙ��������a6��¢���}�����N#���g�M-�L_�#
 .�Vo��2Z��)
�%��k���M�2	��h	^#'*âF������	âG�3p�a4��j�0��0��K��K����������a5��j�
)��������4�5�3�7�8�9�;�W��ã"ã#�ōG�t���((2�(\�(7�(Z�([�3o�ƌ������k�¯��k��K��K��aJºތ��aI���a<�-���.�a=�/�(�@�A�a>º��a?�a@�aC�(�a;�(	�(
�(�1�a7²��=�r)
�[�����}�=�aV�>�aU�aT�����`�p/�⁘���ҙ�W���
��������(��(l1�0��0��(m�K��K��(n�(o��t����X�����
��(��(��aH�������������������������aE�aF�/\�aW�v¡k��+{�?
��|�,$j��Q��!2.#��.����/
�T��#riO�'�"���"���6�3�4��*�0�+�,�$�%�(�!�am�ơ�=�an�Ơ�=�a1.ºT	�M�N�^�C�aq�ar�D�E�a2-ºS	�(�F�G�4Y�4Z�3.�3/�(�I�J�3q���4R�a}²��a~²��/��a{�a|�3r���9�:�
U���L���
W���4G�T�U�W�X����
X�|�KW�KX���[�����4_�
V�a�­�>�
�f�g�a��a��a�­��
�d���h�i�
Z�6}.�(�a��>��Z�[�O�Q�T�[�\�Z�W�U
�_�R�S�a�b�c�n�P �a��a��a��a��a��a��Qy�=���z:C�~�1�O�ag»
�s�ah»�r�ai�K��aa�ab�ad�ae�af�O{�y	�F|-2���0��M�G�D���R���S�M�c�N�H�I�J�a��a��a��a��`�c�b�a�4c�4e�4f�4g�4d�au�av�a�­��a�­��a�"­�c�J��2�a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��0m�0n�a��a��a��N¯��a��a��a��2�a��a��a��a��a�	�a��a��a��a��a��a��a��a�¬����a��a��a��a�¬����a��atd��£����q���m�a�­��0p�C�a�«��#��M�a�«��a��a��a\Y*­{c�J�^���2�3�a��a��Kd�a��a��apJ*�¥9�r��:�a��a�­��ӯ��a�º��aX
u��¡e��+
#9�=��������%2(	���J-����
4�T���4i�4j�u�v�O�ay�az�An	�_�B�����,�N\	���Ew.� �R�r�s�o�p�Q��	�
Q��ɞ*��
M�4k�4l�w�x�y�}�z�{�4P�4Q�����k�£�:�Y-�����k�£�:�0}�0��0�0~�0s�k�£ �_r���������k��Âr�ٜ�X��k����X��K������k�£�_p�����k��k��Âu����K��3Y��W����K��K��3Z�o��K��K��0��0���	�����Q"�	�A��)��	����y��e�"�%���^�Sj��	���5��5��K��K��0���0��K��K��K��K��K��7�M�Ɓ��9}�8��8��8��8��L�L#�L��L��L�L�L �L!�L�M�M	�L�L�L�L�L�L
�6�Ђ������L��6���6����L*�L��L��L(�9��7�ā������L-���M�L��7ߕM���7݂����L'�L%�L�L�64�L�L�L�L�L�L�68�����M�65�66�7��L��LD�LE�LF�LH�LG�LR�LS�LI�LJ�LM�6;��6>�LN�6<�6=��LO�LP�
�#�E6e!F�!:�ED�H�6"�6(�L<�6)�K��K��5Uj��C���K�K��K��L0�L1�L/�6��5ŁΖ[6�5��5Vj���,�I�K��K��5���B
�6�6��6��6��6�	��6��6��6��5��K��K��K��4p�Np
V�a�RH�����������TJ���K��K��L�L4�6.�K��K��K��K��K��K��K��L5�L?�L@�LA�L=�L>�L�-�y^F	�-�GA�D�ih�9J�9K�9N�9O�9P�6#�5��0���5��5��9R�9S�6$�6%�5jQ���;�\D���6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��5k�@�:�6��6��6��6��6��6��9G�9H�6+�6,�5ʃ&���|����	��gY���7��7��7/�70�74�72�7����7����8��8��8��7�j�j��7��.�M9�M:�7��!�j��9%��M?�M>�M=�M@�MA�7'�7(�7)�7+�7,�M%�M&�M(�M0�M)�M*�M'	�M.�M+�M,�ވ��B�z����'A\�j'�7J���7M�7N�7K�8��8�ã��8��8��Lt�����A�y����&�6�V��8���8��8��8��8��9��9�8��9�9�8���8�'� �8��8��8��8��8��8��ݍ�������AV�����V�8��+�8��9<�9=�8��&�8�E���7A	�� ��G
S���Ln�Lp�Lq�Lo�9�5q�͂�H�5r�����8��8��؝S�8�h�9,�8�f�8�B���9�8��7��8�̜�`�8��8��8��8��77�7<�7:�78�8��8�^5�8�����������	��������
c�8�h�8�c�8��8��8�e�0�U�8ѕy�MI�8��5s��S�5u�5v�Lx�Ly�Lu�L��L��5|�G���:Ē��6A�6B�5t���<�7�C�7~�7��5w�H�7u�7v�7w�7x�7l�7s�7t�7r�L}�L~�7y�7|�7}�7z�7{�7p�7q�7m�7n�7o�:���B��I�ȁ���!w���g�0�:�SN����9��9��8���9��9��8	���9��9��9��5����2	�c�9\�9g�9]�9^�(������9[�(����(��7c�7d�(������5��(����(��5��5��5����5����5����	�e�8A�9f�e�5����9k�b�5��~�w�5��}�8�8�8��L��L��L��L��L��5�y��u�3�8'���9��9��8-�8.�����`����!t�5���4-�3�e��&1�&2�7S�	�7T�9n�ڨv�҂6�8&�8<�8=�8>�8;�9q�9r�܎���z�?����8�6�7^�7_�7V�5��5��8�8�8�8�8�8���–�������9x�9y�L��9t�9u�9v�8���8�L��L��5���L��L��L��L��L��8�����������M�9X�5��x�8�M�5��x�8B�L��L��L��L��L��L��L��L��L��L��l£ܦ�"�v$�>pl�������������K��K��K��M��3��3��3��l�M�������������5��5��:DV�m�8C�8D�:GV�8~�8�:E	N�j�L��:FO�:��:��:��8I�Ւ����8L�Ӕa�8J���8K���5�����M��M��M��M��M��LT�LW�LV�LU�LX�LY�M��M��M��M��M��M��M��3���q�D�*Z*�iV�:V�:W�:S�:T�:s�:\�:]�9�j���9�����:P.�:~�:Q�:w�:x�9��:i�:e�:f�:g�:h�:R�5����:M�:a�:c�3����Y7�:m�:_�:k�:l�:j�?�:n�:o�:p�:q�:r�?�L[�Ld�L]�L^�L_�L`�La�Lb�Le�L\�:��=�:��A�:t�K��M��M��M��M��M��K��:u�5��L�L	�L
�M��Lh�Li�Lj�M��l£ܦ��s!�>n	e%����{
���Mp�MuâLâM�M��M��:�.�:��Ł��N&�:�-�R�Mk�Ml�:��G~	���:��5���c�Ɂ����$e�$�TfL>����V��:0���9��:/�9��8f���8s���8a�8b�8h�8i�8c�8k���8m�8l�8o�8p�8q������M����҂�b�������L��L�����
��T���������:��:����̓0�8`�����ԃG���8[�8\�:7�:9�:8�:���������8x�8y�7��������:%�7��:��:*�:+���7����:��:&���y�„m�	�>��/����[2:&��e!'��]������pBEu�U6	���MZ�7��7��6n�6p�6o�6q�6r�6t�6{�6s
�6u�6v�5'�5(�5$�5&�5%�6�6x�6y�6z�6}�6��6����L��L��L��L��5 �5!�L��L��L��L��L��L����:�с��:��	���K��K��L��5ׂ��5��5*�Y�5+�Y�5��5��5��5N�m�����L��L��L��N�5L�����L��5.�5/�L��L��50���51������*�W�������5�5R�7�L��5S�6�L��5:���ۖ�5;���ˁ������
�����UC���5��5��5��M]�5�0����;�0��L��L��L��L��L��L��L����L��L��L��L��L��L��Mh�Mi�0����	
�5��L��L��L��L��L��L��L��5ܗ
�5ݗ
�5=�5C�5>�5?�5E�5F�M`�Ma�57�58�Mc�Md�Me�7��L��L��Ⴆ�������x��G�ˁ��䁈��
	�����'*��(�05P�U�	���6������6����MM�MN�6��6��9Ȕ��5^�,�8��5_�8��8��>���9����8��8��5\�5]�5Z�5[�����������������������
����y�
�Vb�5i���������7�������������6���T�9��9��9��9��9��9��7���d�ʟ$�.�����7��˟$�7�7�C�%|+����	�(?��(�s�:��:������������5��%���$>�6����6�����6
���*�������7"�7!�7��7����i����q?
��
����		�!��%�`�U��8��8��9��9��9������9��9��9��9��9��9����9��9��9��9��9��5J�?���7��"�7�����9��9��9��9��9���	���������*<��(�p���6�6�7�7��7��7��7��5b�5c�7�7�9��9��9��6�7�L��7��7����7#���7��3��3��M
�M�7��7��������5����6��6��6��6��6��6��K��K��K��K��5I��M�6a�6I���6��6P�6Q�6O�6��6N�6M�6U�6T�6J�6K�6W
�5�\
�5�h�5�b�6��6��6��6��6��6��6f�5��5��6h�6g�6i���Á��v�hj���:��:��:��:��:��:��6���:��6�:��:��l�£S.���GK�]�;���9�������d��|�Qل4e��	â�â^â`âaâ_�b�b�b�b�b'�b+�b�b�b�b,�b-�b*�b(�b)�b �b#�b"�b!�b$�b%�M��M��T�����;��;��3��3��3������M��O���m�M��M��M�ßTßU�l��3��l��l��3��(��;������h�oßQ�pßRßS������w�ß[���VßY�N>�N?�M�N�M�N�b»@���:���������bp�bq�b»?���\���N*�[�Z�Y���N.�N/�^���V
�W
�N1�f�y���bJ®�X�b	�b
�bs�b3�b6�b4�b5�b8�b:�b;�b=�b0�b1�b>�b?�bK®�X�b�b�b�b�bF­�,�쇆��9-��E���n����>���b@�bA�?���<�����=�������M��M����(�	��
w��#��<�3��3��;�*�śA�0��NF�1�3�4�5�N5�N4�+���,��?�@���������!�"�N7�N8�N9�3�â��3��3��;��bB�e£Q.���GE
!
�T�9��
�9�������j���Q؄4e��	�tâ������u�bH���
�9��
���3�V�ã�ã�ã�ã������b/µu���ي��G����V!����
�����%��������r�M��������M��0������4�3��3��4��p$����ã��4�o�A�B�Ns�`p���������Ÿa���|	��������i�=Nh�k�oc�F�
�k���|!J���Oc����r�R%8�Q.	5��L1Gt�4��4������1T�1Uß#�4��4��4��4��`t�`u¯��j�(��N�Q��N�Q��l�£��Ƈ������N��N��1\�1]ã�ã��(��1V	�1W	�1X���l��l������l�¤u��y8�Q>�����N��a�b�c�d�_�`�`�½[�灙�1f�1g�1`�1h�1i�1j�1l�1m�%a��%b�1a�1b�1e�`w��B���`x�`y�`|�)i���u�R��`��¤ʁ��i�`�����b�»b������������������������������������������b�»b����1n�1o�1p�`~�­�������!���$��6%�������b������M������k�W�l�W�b�­��������Z�����1q�1s�1r�1u�N��N��N��N��b��b��1Y������	�N��N��N��N��N�	�N��N��N��N��N��N��N��U��F�Gã��N��N��N��N��N��N��b��N��N~�N�N��b��k�¥���%�b}�.¨Żh�b~�-��/�N��N��N��k�¥���$�3��q�3��3��`r����¤T���y�tQg�-����j� ���&7�T��`�`��M��M��p���٥��`s¯�����J���������#���P*3�T���â�â�â��(��(��1N���(��(��J3�(�m���l�«O�����N��N��N��N��N��N��N��N��l�±7�����N��(��l�ª�K�6��
�m���O\�T��(�â����N�1Q�r��1R��T��T�b�µ����b�µ�����R��R��l�£ā������>��(��(��(��R��R��(ا�`���C��		Ÿ�
n�,0?6'������>��������

����tX�y
�������)�ɂ��O�U�j��T^bNl���6�<��@y�@z�B��B��B��%ƗK�Q�������l�±O���)�$���<2�<3�<=�<>�Em�En�<5�<6�<8�<9�<?�<@�<;�<B�<J�<E���<�$�<"�<�< �)�<
�<
�ǥu�1�ȥ[�<$��<%��<K�<L�'���%̗K�l'���l��l��Ev�%��J�k���Eu�%��%��B��%��J8��=و��=���
��%�J�����=���	���
�>��>��E{�%�â�â��bd���T������9
����bY�bZ�b[�b_�b\�b]�b`�ba�@��>?���@��>@���@��@��@م��<n�Ձ���e��D	���@��@��@��@��<o�Ղ;e��C���?�?��@��C
�C�<t���=��y�As�be��	�K��������9���g�����F!�F"�@ׅ��bc�g��j�8�΁�����â��@��@��@��@��<q�<r�<s�=��>:�>;�=��bh��P�=��=��bi���%��%����<��G�ޏ�)��;��킲��3lN���#�Y��â��<Y-�<��A��A��A��A��A��A�â��<��<��A��A��<ޅ��<����<z�<{�>��A��A��<]���%��<��<��%��<��<��@��5�b_�@��@��?0���?1�@��@��?��<�@��>
���5�(���<}�<�<��<~�(����@��@��@�	�@�	�@�	�@��@��@��<^GB�ςI�����A��<��<��<��<��<��<��h���+�+�<���<��A��A��A��<���<��<��<��@��A��A��A��A��@��@��@��A��A��<��A��A��<��<��l��l������<��I����(��	�������(	
iM���&���
�U@���B��>�K�?��?��?������5�@�	�<��]���(�h�UM�<��A��a���\
2S���X���������A��A��A��A��A��A�<�A��A������<O������A������A��A������<����@��A��A��`�«�
��4������J�P:��6b�Z	��h�Y�?�?	�?
�?�?�?�A�A�������A�A�<��<��=�=�?;�<��?7�<��<��=
�=�=�<��b��b��=	�<��<��b��(��<��?A�?B�=�=���<��<��<��<����e���A5������?���k��
�?��?��B�%��@X�%��@Y�=�=�
�����������<���j���=�=�=�%ݝ7�a��Bm�����`�«�
�2�	,a����D�
PD���3\�\
��f�W���&`�&b���C�����󎃈�B��'���"g�\
���E��E��E��E��E��E��B���~�A�����D�8��	�B���
�]�A�A�B
�B�?D�?E�A�A�=$�=&�='�=%�B�B	�������B�B�?L�?M���R�������	���u����U�Zr�&�E��E��E��E��E��B��?���?���B��B��=,���?�?�=-���B��B��A*��A�B��B��A�?������A	�A&�A"�A)�A!�A �A#�A$�?���%��F��l�3���%��F�������r���������=;�����E��E��=H���=I�B��=<�����B8���==���=D�=?�=@�B;���=5�?!�?(�?&�?%�?$�?"�=8�=9�=6�=4���R��$������|�
��<�Zr�B��B��B��B��1��p�A�1��1��)�L���<������������Κ֎n��������������B1�?��?��B�B(�B)�B*�B+�B-�B,�?+�B�?,�B�B$�B �B�B�1������1��`����{ŸƄ�Y<($���� >����d>�����x�����?	)������}�������?��=��&"�n�&#�n�@]�=��=��=��=��BE�BF�BG�BH�=��BI�BJ�%Y�*	������]��AC�AD�~�<�?��B>�&Z�AK��=M�AL�AM�AN�?��?��?��?��?��Bd�?����b=�AJ�BA�BB�AP������?���������bT��B�΁Ԃ*�@�?����=��=��?����BL�BM�?��?����R�߅v�*���U���A8�)�A<�A=�bUªA'�eY	<K���� ;���>�����(��b�v"?	%���������������=��=��?��6�=��=��=��?��?��?��0�?���������	��k�
���bS®/�3���Ԃ*���=��=����-��'�K����
�=}�=~�=_-�=a,�=`.�=��=��?��?��<��=\�E��E��=]*/�����=^*.�=b�=��=��=��=��?����bV��'�#����	�=��=��=d.�…��=f�=g�E��=e	�=q�=n	�=l�=i
�=j
�E��=��=��bW�?��?��?��?��bX�?��уt�BZ�B[�=����BU�BV�BT�BW�BX�?��E�����������BY�=Q�s���>��=V�t�=X�t�=T�u���=U�u�=R�u�y�B@�����'��1�1y2�kj��B��?��?��B��?��?��E��E��?��?��B��t�?��E��E��E��Bv�Bw�Bx�Bz�B{�B��=����	�$�?d�?e�=΄��3�Ad�=������$�=Ƃ����n	��=̄��=��?��v��Ah�Ak�Al�?]�?b�?^�?h�?��?��?��?��?T��
�j�?V�?W���@
�@�?U��AZ�A[�AY���E��E��B��?�-�?�,�B���1�Úmg2�d`��@�@�%��@�@�?Y��E���n�u�F��y�w�F�����?��#�F�F�@�B��B��?��?��?��ń�_#�"(�W���b�(
�,m�J�"�DY�C��C��C��C��C��C��C��C��C��C�bd�?n�-�C�C�C��C��C��C �bd�D��D��D��C��C.�UYD�E$���I��C2���E �@'�@(�D��C��C��@)�B��B��I��C/�S\B�C0���C=�B��B��`��8£կ��-�W��YF�D��D��D��D��D��������g�C;��Di�Dj�C��C6�
�C:�C4��l������@�@�C�o1Y�D��D��D��@�@�B��B��@!�@"�@#�@�@ �`��:�ғ�,�V��W�l��C��C�x&^�Dn�Do�Dq���E3�E=�E4�E5�E6�E7�E9�E?�Dr���E<�D��Dm�C��K���V4���@$�@%�@?�D��@<�@=�@B"���@H�@E���@C�@@
�@A
�D��@I�@J�@K�L�'����_M�E�E�C���E�D�D�D	�D
�D�D
�D�D�D�����EQ�ER�C���^O�C���cN�D��E�E�E�@&�l���Šb�W��;����I
��D��D��D��C���H�D#�D%�D*�D(�D&�D$	�E�E�C��C��C��C��C��C�
�}�C��C��|�C��C��C��C����E�E�E
�C��E�E�C����C����E�l��l��A{�Ce�Q�D��D��D��D��D��D��D��l��Ǿ�҃����x

�D.�D/�D��Ca�+�D��D��E�E�C�C}�C~�D��D��б������R	�D��D��C��C��E(�C��(	\�C������������O�D�a�D��D��C��"Z�D4�D5�D8�D9�D��D��D��D��ԵS�@*�B��B��l�Ÿ݄�_�"&�Z���N�'�$J	�L�!�C��C��D>�D@�D?�@,�@/�@0�@-�@1�@2�DB���,Z�C��D!�D"�l�£������7�.����:�l��l�¤�z��+�W���
�+��?NSoD)�s�C"�C��C��C+�C,�C��CD�C��C��C��CT�CU�CV�CX�C��C��C@	���C��C��C��C��Ci�Cl�Cj�Ck�C��C��C��C��C��C��CAfc�C��C��C��C��@o����D�D�C*�C$��Cn�C%���D�CZ �C��C��ږ{��#�����CP"�@�:	�Dw�Dx�Dy�CL%��D{�l�¤�z���,/;
K���C��C��C��C��D�D�CS�l�£��k� ���CE�D�D�D�CF���CY�@3�@7�@8�@9�@:�@4�@5�@;�DY�C��C��C�u���E1�C�t�DE�DI�DG�DH�@�@�DU�@�۳F�4���v�DN�DM�DF�DR�DJ�DV�`��݈�‚
�B��B��B��B��B��B��B��B��C��B�
�C��B��B��B��B��E]�E^�`���%	��Ÿ���0 l&�������}J-
/�����ҁ�	l�xNu
��Q�����%�����E�M�h���U8Ik�����������������������������>��%��>����$�?x�?y���#�b��:¬���l��l��l��l��b��9¹��1��l��l��%�?�=����)�!�z�����A��A��I����؈C8�閣�����%�;�%��%��%��%��%��%�A�0�%�A�%�?�%�A�%��%������=��%�A�%�A�%�?�%�A�<`�Q�<a�`��*ŸDžOM����Q�	��(�������B5�TV�o 8	5
F�F��ف��b#p�0��E��E��%����%����>Q�>V���>��>��>��>Z�>[�>W�>X�>�>��>��>��>��>S�>T�>��F�F �l���v0�C���>4�>5�>b�l���v+���>^�>a�C�>2���4����傪�����i�<c���>e�>h�>f�>g�<d�����d�';���~���I��I����3���������������>N�@�E��E��E��>)�>*�>��e�&�&�&�&�%����%����F�%��>������@t�@u�F�>��>������?��Q�	� 4(
A�E��k
�\"s�>��>��>��>��>��E��>��>s�>u�>v�>t�>w�>x�@}�@~�"�>�����5��(V���>��>��>��>��=�>��>��>{�>|�bl¶4�i�%*Y0���`���E��E��>��>��bm��F
�#�>~���R��j�>��E��E��>������R���<ӇE�&o�C�C�C�&	�΂��&�&�&
���@��w�&�&�&���D�`���u���w�@��&
���@��@��@��@��C�C�%�3��f�>�=��A��A��A��l�«� �E��>(=	���)
�)�>��>��>��>��>��>��>��l�«��D����	���)�>��>��>��>#�%��>$�A��A��Ɏ&��h�<�����=��A��A��=�j�>�=��=��=��=��l�£��,�����F�K���>��F&�F'�FY�FZ�F(�F0�F)�F:
�F5�F4
�F=�F>�F?�F<�F1�F2�F*�F6�F7�F8�FJ�FM�FK�FL�>��FO�FP���FT�FU���FR�FS�����l�£����@�J�l��l��>��l��㇩�w�
��P$�Ol�Op�Oq�O�������>�O��Om�O�p�O��븇�N��O��U�O��U�O��N��N��N��P#�P��P��P��P��P'�P$�P%�P.�P/�P)�P+�P2�O�Oâc������O�(�O�O�O
�����#�O
�,�ڇ�����,@�P�P�P�P)BH�P��������$=�Pn�P$@�O#�O$�O�P�P�P�P�O�O!�O �O�P��O&>�����Oi���PF�PE�O,�O3�O4�O2�O1�O-
�O0�O.�O7�O(=���PH�PI�Of�O*�O+�PK�����v��C#��x`!�O:��O;��P[�P\�O>���OE�OH�OF�O?�OB�O@�OJã��OKã��Pj�Pk�Pa�OO�b�Pc���v��C"����[�OS���OU�OV�OT���OR�ON�{�PO�PV�PP�PQ�PW�PX�OL�OM�Po�Pp�Pq�Pn�OW|��X�OY�O^~��W�O��O��OXy��V�O��O��OZ��VX�P"�O��@�����O��O�ã�ã������s�	���.�O�P��P��O��O��P��P��P��P��O���.�4$�O�O����O���y�[���O��O��O��O��O��O��P��P��O��O�O��O�O�O�O�I�O��P�P�O�'$���O��O��O��O��O�&�O��P��P��O��O��O�������[


	��)
âb�P��P��P��P��P��P��Ot�<�O�3�O��Ob/$�7�P��P��O�/�O�E�O�D�O��O��O��O��O��O��Ou��	-�P��Ow�Oz�O{�Ox�P��P��P��P��P��P��P��P��P��P��O~�",�P��Ov	��+�P��O|� 1�P��P��O��O���B���|���V�������1(�����1&�1*���O�]�M��P�]�M����Ņ\��{��|�m�n�w�x�S�T�p�s�q�r����,�0�B�;�16�17�u���v�12�10
�1;�1:�1-�1.�����y�)���z�1@�1A�1L�O�:������������P�9���������������b�µ�L�w�������������b�±���K�v���������V�W�������Izß~ß�M�N����mi��	�bj�bk����li��
��
ââ�C����6���b�f�h�j�i�g�X�Y�Z�[�a�^���_�R�?������S�I���0�2�3�A�B�?�1�:�;�8�9�4
�6�7�5
�����Z�Y���N�ã�� �!������������������������������������������������������������������������������P¼����P¼����������������������������������������������¼����½?����P���������������������������������������������������������������������������������������������������m��l�R?�RA�RB�RD�RF�RE��q��r��p��o��n�P��P��P��P��P��P��P�����?��@��%��&��������������+��
 ����1����<��6��:��2��5��3����"������ ������)��A��B��
��#��$�����P��P�ã�ã�ã���J��G��H�Q�RG�RH����ã�������Q�Q�Q�Q�Q�Q�Q�Q�Q�Q	�Q
�Q
�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q$
�Q'�Q&�Q*�O��Q+�O�ß�ß��Q%	�Q.�Q/�Q �Q!�Q#ß�ß�ß�ß���L��O��P��M������Q¼��Q?�Q@�QA�QU��W��X��R¼��QH�QI�QG�QF��S¼���T¼��QB
�QC
�Q6�Q7�Q8�Q;�Q<��Y��Z�Q�Q��Q��Q��Q�ã�ã�ã��QY�Q[�Q\�QZ�Q4�Q5�QW�QX�Qm�Qu�Qr�Qp�Qk�Ql�Q}�Q~�Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q]�Q^�Q_�Q`�Qd�Qc�Qb�Qi�Qj����~,�@���j½���k½��R&�R/�R,�R*�R7�R9�R8�R<�������Q��Q������������ ���_�Q�V�Q��Q���_�Q��Q��Q���`�Q��Q��������Q��Q��Q��Q��Q��Q��Q��Q��Q��Q���������^ ���4�Q��Q��Q��Q��Q��Q��Q��Q��Q������e��f�R�R
�R	�R�R�R�R�R�Q��Q�v�Q�x�Q�����~�Q��Q��Q���g��h���¾[��a��b�Q��Q��Q��Q����¾b���¾-+�Q�*�Q��Q��Q��R�R�R�R�R�R �Q�;�R#�Q��R�R�R�Q��Q��Q��Q��Q��Q��Q��R����Q��Q��Q����¾`����R=�R>��[��\�Q��Q��Q��Q��Q��Q��Q��Q��Q�
�Q��Q�
�Q��Q��Q��Q��Q��Q���w��x��t��v��y��z�RK�RM�RI�RJ��������������~½��Rv�RV��½��RT�RW�RX�RZ���½�ã�ã�����}!�Q�R]�R^�5�������������������R�R��R��R_�Rz�R|�R{�R[�R\�R`�Ra�Rb�Rc�Rd���½��Rm
�Rj�Rh�Ro�Re�Rf������
����R��R���D������������ã�ã��������������������������Q�Q�Q�Q�����������E���������������������������������0Z#���;.���+#2�o�*P��.�����1��O"��t6��D•�	��E�w>���M���Gh�I���:,����Q����O����
�i� ¡������4��	��
�e>�e?��������������eA��������;��
��������4�����������y¡�����z¡��eJ�eK�eG�eH��\¤D�����f��©���h��i��l��k��g��]��[©����������	#�G¦�����2�eM����eD�Xr���>��������������������������e;�e<��8¯��Y��9¥���������3�A�Ä��	—�-�l�N
�!�bs����R��R��`��p{�W��W��W��W��o�o��p��p�������̂Yx�xœK���x��!��±��or�os��"��±��ou�ot��*x���c��c��c��c��c��c�����]u½����w��)u����p���&��'����+�����U��›�
���я�'�������������������������������R��R�����������������������������R�����R��R��R��R��R���锴��W—�����Vµ�p����¹��p���������������›���w� �������������R��R��R��R��WN��������䅘��
œ
���������������œ7����R��R���f�)œ��_¹���b��a��`��c��d��g��h�R��R�����R��R���������G���_¼$��`¼#��,��-�c������G���⃙�a��������•�6���������R��R������������o��p��s��^!������¦���	���������pn��Z��[�pu�p��p���t
����'�c���������������������B�������G����0�q¸
�`���u
�ڌ�Ÿ}�����R�����/V�����������n��o�����HI�!>�����ńv�
—�	-�f�M
����r��	������n—���—���
��4��5��;�.��i�����WP��8�����R��2��������݃�RB�1*.���f�8��”�7�Ã����,�	��<�������������������������������D)I�©������E��]�������/����.����t(+	�	�
�8��¢������P��?-I��pq�pr�ps��
������F*�p|�p��p�p}��U'��Q��R��S��G'��H2��I��J����ËW®������c�����ËW®�����������!������	����R�ă�(m���b�
�t—ˎރ���������f��g��`��b��a��e��d�������������������������������²L���������f�'u�6��������������������,��������������]
�*p�%��`��_��^��a7���ȌK�s������������������������L�����	��������<���������;��y����š��ԌU����9��<��;��:������U��V��W������;����T��b��	����G��M��e����d����c����f����g��������������!��;	±v���W�����m���n��������������������������������X��������:�n��´Q�������%2�Q<	��<�����3�������������3�����|��4��Y��[��Z��\��R������B3�Ps��D��C1�OB/��
��S���¿�C��o�	�����u�����������������f���r���������p���n�����������k���������l������v������?'�V��V�����™��6�������.��/��"��#��0��1�����������������������´��������������������#�c��v��+*��-'�'�U�V™��݂	�������������������������������������e��������f��%�y�	%���ʗ����	����������������������������0:%����´
��5��6��7��:��+�������ʏ���-� ��/����������8����(�������������0����2��3��1����D��E�a,�a-���������,������������i��������������j��k��������������������������������������¶c���¶b����e�+��捃��m�������k�������������o��q��p��鍊��t��ꍋ��w��z��y��x��{��|��ԉ!�����+����z4���6���3��~6��{��|���������������������������������w�:��P^����,
>����
$:���
�s—���������������#�A�������b�����������N����������@����?��������������������������������Y����Z��������f�`�v�Y����ڋ��|��������������
������
����]�f�; �s�O��"�x�������]�n�>³�����������������
��������������������	�����������������*�t
����������@�	�#&;�舐��	–"
���憴���������������������&������'������*��)��(����-������������y�kU�j¼���.�����*��0�����*����;��������0��2��/�����	�aS�=29�–	��^��������������������,�h�)�������x�nP�h¼��������I�o���)�����U�\��D��Q�\�@��R��S�[�@������T�W��B��*��)������A—ϞQ����ǁ���������—������ž��������������������������c��c���P�Y���
	����
	����
��	
��Q�k�������� ����#��$�Sv�Sw��F�����G�S�S����
¼G�X����¼G�Sl��qw�����ž�����Wz��y��z����|
ª7�؍Ӄ+����)��*����{
ª7��)�g-+�So�Sp��0��3��2��1��4��5��%��(��'��&��/��)��*���FC�3�E��J��Uq5j������4^��_���M;U

L�����E	\�&�4•'g��k'�1u)��[8!����B����L�c��������������c��������&��'��%��������8¼w���L��´�����º�������������������������c��c����º�����������S����—&������������¹ �����������v i��B�����������������������S߄�U��S��S���+��,���p�������t������������p������d7�d8��
����������Ճ���0�~��˜����2���"��Wp�������5����������
����ٛ'<Ÿ��>��ڛbŸ��=��]����S��S����������Z��$�����#��"���X�������.�1—펷�"����….$�����+��*��)��&��'������������������������������������������H�����������������������ԃ�
��%�|�y��•3��1��� �����ӂ�����ւ��Ԃ��ׂ��؂�c���օ����•0���%���������Sd���������`��`���������<��=µ�������������Br�rrB�W���������ž�o��p��p���������������������������������������������������:��;��A��>��G��D��B��?��@�����������<��=��U��Y��X��V��Z��[���g��J��H��I��Q��N��L��R��S����d4���rž��X6�Sf����D��E��F��������H±���L��M��K��J��I��P�c���3��8��6��4���
�w�������C��Z	�������#—�4���Ӂ��^?)�Ӂ�������X�����p���y��|��{��z��w��x���Ɯ����
����3��������]��^�R��R��������������������������������̂�������V��[��Y��W�����������������������������������������;�����������%���Y��@���#—�6���с������
����d*�d+����»O�����ڂt��&¼���I¯�
�����������`��i��b��j��a��c��d��e��f��g�������d#����p���%�ƍ.��k��l��o��n��m��p��q���¼�U����`��`���s��u��v��t����������'�������������ž4�n��C�Ws�Wt����9��������������������������S���5˜���7�WW���������¡���C����������������������������B#�T���0µe��������!��"�����������������܅če��������������������������������������������d������	��
���?��������������������������C#�n��*o���©M���������$��%�������G��������������������E�·6����D���6�J
5��Ɂ�D»������������������҂�������������������������v����������h������p�����������������D��H��E��F�a3�������������������������������������FA�3�7��J����70���ņ2		Z��V	��	�4
2/%'�u�ͅL	V�"o��•!$f��&	6+!���c	P%��[5
��B����K	Rg�-�W�W�W�\I��_��`��b��a�g��g��W��+��,�\L�G�W�W �g��g��g��g��g��X��X���f�g��g��g������\M�R������������� ��i��V���h�g��g��W5�g��W+�W,������8�F��¤	
l���l���W/�W8�W9�W:�W;�W<�W=�W?�W@�����}��¤� �k��������g��g�����WA�WD�WB�������������™�
	������f�g��g��g���:�������LR�����0Q-'��ՅP—�z���J���\V�\W������������������������	���w§�
�\^�\g�\h�\i�\j�W"���»5�W$�W&�W'���²��T��k¼J���½����´�������´����´����´����	´��������������\o�������������/���/¨�	�A���\e���²��W�W2�W3���­M���­L��Y�������E��F��]��5��U���x%?N	��J—�9��������:0�⊍$����g��m�`������S)�`��S+�S*��������Q��T��S��R��U��V��>��©���(�S/�S0�`��S.�~%�����$��������A�����������ދ&�@—�	�@�S7����T—�E�S;���
�S<������
���
���
��D��E—���F—����*Ÿ#�n��	�����
���`��`�������e��š����P�X1�X2�X3����6�d£Z����c����������������`����a\���������������
�X��X����������������������oj��r�������q����4;���	���K)
����(	C—�7������	�����
������
�S4���
���
����	��A�H��š����4�������������������9®Z����������p��p���J��K���©;���ª<��}�a©��`���������������������~�S���������9��:�S���I�-����J�-����s��t��ӄ�v¼�������������c��d��e�������=�Ƃ��~�ہ݅U—�����������i��4��ߌTF��¨�����j�o°����°���K;
�B����?�����=���N
�̂�X�u	:—�#f
"���M<�����
�䁨=�Ë0{���� ¥���m�YD�YE���� ¥��T<�#���de�df�S��S����e!�am�S�w�S����T����˺�d[�T���������������������������������������µH�������©6w�����©5w����������L+*·���x��y¹E�X�����X��X������������z,�¤R�X�W�YM�YN�YP�YQ�X��X���|��}�Y�����������{�@¤N�Y�Y�Y�Y�Y��S��M��N��������������W��O��P��T��R��Y��[��\��Z��X ,·���3�Y_�Y`�YY����YX�YW��с�¹~M�Y �Y!���ºLJ�������YS�YU�YT����YZ�Y\�Y]�Y[�������S���ږ�Ÿ��(���Ÿ��(�X��X�������1—�
�i-�ʈ����T �T!�T&����T'�T(��-��.�T���X��X��X��X��X��X��T���X��X��X��X��X����´��$�X��X��X��X��X��X��������������f©͑$�dW��g®s��i�X���j��k����X��X��X��X��X��X��X��X��X��X��������X��X��X��X���������9X
���.—�
�e!��*���������=º-��;���F¹~����:´��i���X��X������������%#����«z���5
��������������������T"�T#�T$���������������� ��"��������´���������9��:�����#(�«l������������´��������������������a—���µ>�cZ�X��c[�X��X���µ=�����d��©:��f��g����%�G����)�D�e,�����k�X��X��X��X����¤2����j��k���¤1�������º��Y��o��Y���e������ž􁿅����Ÿ��X���%�X��X��X��X���#��Ÿ����X��Tg�Th��!������������������6����L����'%�F�I���@—� �����[
���/�_��v���!��/��0��1��2��4��3����T;�Yv�����SE�I����'%�F�P��@—������
��.�^��UH����{�Q¨���`�����.�T����G�AºL����G��)´]���o����(´نs��+��,���� »�X��X��X��Y�X��Y�Y�Y�Y�X��Y�Y�Y#�S��S��Y$����S����˜��Y3�Y4�Y.�Y/�Y-�Y1�Y2�X��X��X��X�����Ÿ��S�����%¤��Y+�Y*��9®���<��;��:��=®���>��>�dG�dE�dF�dH�Y6�Y7��Eº7�C�o���Fº6�E��l´<�S����dJ�TE��dM�TF��?/�H��@�{��A��D���Ÿ���dQ�dP�dO��>���dS��L9	�@����	 j��	�4�ĂA
�˂�X�j
8—�	Y
2��<5����
����/���ȉ������I�������������Y9�Y=�Y>�Y?�Y:�Y;�Y@�Y8�W���聵¨w�d���¾��T���¾����������u´��r�T�����S��S��S���p´�����������
��s�yx-˜�������������������d
-`�����]����A��Kw���
��%��<—����=��
��	1'�������MG�������T7�=�T8�=�YA�YB���£����£�
�������5��Ow��G¶�������������@��]��^��a��b��`�e.�e/�S��S������P�����I��������S¹��d
�����Fl���8�$��—�������3����Nx��D¶������8���7�����������A��B���������X��X��YG�YJ�YK�YH����dn�Ya�Yd�Yc����d�S��S��������������do�S��S��������TP�(�T?�T@��Ɂ̋�G�������������F�������ax��VP�3���ڋ,�K����˜��&�N�T^�Ta�TZ�T`������Ÿ���������W�K���I�,Ÿ��&�N��6��5��4��������}��|��~���dx����…���pKD�����Y
$���~��˜�	
�ف�����10	�O��&�b�b	����������b
��b�\˜����	�������������������a��a����/��˜�����D	�o��o��a����a��P�a��O�a��a��T���g�M����C	��j��i��h��e��f�o��o����´���´�o��o��T��o��o���������d�a¥ԃ��������a��a��K�a��J�o��T���T��a��a������r�\¥�"��	����d��d������c�Z¨��������������������o��d�����d��d��d��d���������������������(��0��-��+�d|�d�d}�d~�a�����I�����Pž��X��������������������������������������������4����J%��´������������������������+���á�a��Z���;���
»I����������������������a��a��a�����a������������������������������������s����t����u��v��x��y��w����~��}��z��{����H��©��X������T��a�����"*$µڏ��U�������L��s��(�����������X��°�/���T��,��c�T��,�߃c�a���Y¿ .��G���a��a����� �a��o������"��(��%��#��/��2��1��0��-��.�o��p�p�����������������ŋ�ž��������������� �������>��Ob�������5{'ž�	�܁�����������/��������M��������������O�[���ºI�[���ºJ���������ºG���ºG�[����[��ߋ�'������,�������=�������<��?��@������������
�Nl
�p�����9w)ž���������������>������p�����������������������������������������������������������(�%
��	���Ÿ)
����I��J������B¦���°V�������a���ԂG�#��¦�������������������b�-�����Ÿ*	����������݋����������'�#�3��¦������������������ؕ��B¦�����������������������	�A¦������������T��T������˜����d��T��T����®�	��ے������®�������®��Y��Y��Y��Y�����������˜����P���¾����	��˜��E������b�b���¾��T���U�Y��Y��Y��Y��Y��Y��T…��Y��Y��Y��Y��Y��Y��Y��T���	,�Y�	�Y�	�Y��Y�	�T����Y��Y��Y��Y����	�#��
˜������������
������Y��Y����˜Յ�J�Y��Y��Y��Y��Y��Y��Y��Y����������F
³D4�Έ�'��2�T~�E�T�D��
�'����	7������	������
���
��,��<³F�Q����-³X�N����/��6³M��7³M�Y��Y����T�n©�4��y���F�b�b��1���2����
����¹�����	�Y��Y����5�����+����&���5�^
 �g����w��)˜�	��	����!�e1/
�O��7��	����E�a�-����a�-�a�-�����,���������������a�-�a�-�����������L��N��M��������¯������������������������¯����¬��a��[��I��J���A�������
����o��o��T��
�a��a���G���ž���%�$
�x���
ž������������
�������������������a��a���W��&�-���ž��������������S������������O��H2u��5���y����1��–���������%���΁��a��a��a��a���������������
������������������������������������������a������Ÿ(�}��������_���a���‰���B��C��D������������������/�������������@H����5��������¡�����$������[���a���^���î���½����5�������a��a��������T��T��W��#�W��a�4�a����������M�����������P�������a�-�a��a�-�a�-����:˜ՎH���I��G��J��I��H��E��F������˜ՎH���I��>��?��B��A��C��D��/3|��d���T�$�8�Ɇ���
���<��
��������/—x�3�˂�@��g������	�v��			��+R��
3v�Z��Z��Z���}����˜ٓ��T��p��p��T���{
¸}�
����|��c�Y����¸|�Y����¸}������ZV�dČK�ZW����~����«�����:¹���������9¹���p��q��7�Θ"��l��m�����ª����+��,��K�p��Jª���M£�p������n��o��8�Θ!����������������(­��Y��Z���������. �(�U>�(��T��U��V��X��������A#����,��–K�@
	�)��惊����T��N�U�T��K�T��T��T��U�U$�bN���bO�U*�U+��F��G��9��,˜���8��O��
��˜����V�T���U¾��M��V����������R��
��˜��M���U��P��˜ڎO��3��h��������N��N����	˜�����
����i��™	����k�T��T���%˜��T��d��T��T��T��T���C��¦3��H¾��\�T��d��d���I��¦2��J��K��E�J����s�����������������������������p��D
�(���,���–K�@
	
�!��I����		�3���p0�p1��6£*��g���#����p,�p-��;���p+��B�����˜��'���
�/�#����<�b"�U0�b&�b#�b$��;��5���#���d�U�d��d��U�U��©�����>���^2���m��l�:¦>���惯������bA�
��j��l��m��k�bB�	��b°��c°��:��;��?�������m��l¬S$���񃣉�)�d͌Q��`��a��n�Q�b@��*�;
ªʏ
��q��p��h��+�<­K��,��-��r�d��d����s���¥��c��\���³@����������w������������������
�œg��������	¸��������������������<��.�����0��x�e�T���t���Ȃ�ߊY�:���—x���1��+���B���U4�U5�b��a�a�Zv��u�����'ª?�/�������������������&¯����Z
�Z���™m��U�Z�Z�Z���ž��.¢���/��/��6��2��1��0��3��4��J�6¸����cd���p���{��~�bM�bM�bj��}��|�Z{���Z|��y��z��H��I���j�6¸�������bk�Z��i����� ¯�����p�%�p����¼m��l���e£6�����������̉�³�����¼n����	'0|����D�&��85j����
���4��%
��8C�j}��
(—r�3��	���G	��`r����	(�S	��(O��	
r���T��f��O���������g�gt�gu�g���������������������gq��P�Z��䃖���e�e�e�bp�������bn���bo�bu�bv�e���¸�3���bw���bx���gy�gz���������������I
�7³ʅ�#�����³��Uq����?³���2����������gs�g}�g~�������e�e�e�e
�e��[�p�}�2�s�ȁ��m™@��h�Z������¢h��^�&��떱 ��2���L
���L���9��˜��͂L�/������P��������P�ҩ��X��V�ҥ��T��R��S�����������������Q´��q���������a���O¢a�����������¸���]���¸���]�g��g��������UI��UJ�XY��Z��Ou��4���$"'2��
"��*��c��
*—�s���C
:@��)��g,�Ջ3����0�b*�b+�����>�q��8¯��Z�������/���.���Z,��0��1�Z��Z�����
�Z$�Z%�Z&
�b���¸����¸����¸���������3����K¬���[��^��]��\��U��V��W��X�U`�Ua��!����"��$��5�Y�m���J 
	����US�UT�������UP
�UN�UK�UL��4�b|��]�Ռ�¸P��"��0�Ud��#��/��{��G8!�������X—���qa�яN�b��b�������¿O��$��%�b��^������Vž8��`�Ļ�Z�Z����X��ž9�Z�Z�Z ��a�f����²ʁ��Ė���7�����8�i�������>�������ZR_�ZS�Uh�Ui��)�E¸���������lj��� ²��������Z;
�Z8�Z*
�Z3
�Z4
��(�D��¢�]��u��v�����s��«E��i��w��x�����[��O��?'��?��?�q�)—���G)?�x=	�����
��?��@��\�сÌ ��F������������E/,�����œ߄�E�������¸��Z��Z��p���N���������K��b��¾����b��b���c��¾��������������%·f��&·e��������������R�����b�Ÿ����)�V��������������c��Ҕc ԅ����Z���Y¹0��_
��\��Z
��W
��X
�Z��Z���Ӕc.¥(���Z�����Π����Ο��c¾�����)�V�Zq�Zr��r�?���ًU�e��™"���Q���k&���B�X[�X\��h��i��:�����;��s�?���e��™"���
�B�Zo�Zp��J�g�X^��H��I���t�/��?��*� 4�
�t—[��k�����]��	��/X���e��u�ýS��w��x��v�úR�U��e��eq��,��-��.�b����½����ez�er�es�e{�e|�e}�e~����������b��b��e��e��e��e��e��e��e��e��e����½���
���b��b��b����������������������������8���r��¦/����e_�U�����������e��e���������y©����i���{© �e�������
�������������������e��e���n��������o��p��q��r��s��y��z��{��v��}��~����²߁����������²������������������������������	������	������
���
�������<���q�n™(���*���e���c��e��d+����������������]��¦0������j������������������\�����������������������������,��������h������¯��e��e��e���4�X�d��—T��j�	����e�pd�pe��6��7������������O�`��—T�������������?��ºs��5�&�i����z��{��w��x��y��~�����}�������Έ�����������������
����Q������e`.�pa�e��e��ea���������������������¿
��$@��-@��.��+@��%F��&��'��/��0��1��#D��g��m��q��o��n��2²T��5²R��6��:��4��3��7��8�U��U���b­1�b��b���M����S��Z��\��[��T��U��V��N��O��b��e��d��c��a��R�������z��­0"��}��~���²3��1�2��L��K��G��H��;��W&��X��<��D��E��?��@��F��>��=��A��B�ev�ew���x�/	���;��*�N��t��•ׂ�_�����\��	��6	O���d���e��e��b����������������R��������������������ZºV����e��e�����¹��b���:���t�A!Ÿˍ������������u��²~�U���²}�U���
²}��
��Ÿ�����3���������������[0�[2�[1�b���e��e���[��%V��'�_��t™��-����N�Zƌ5��_����a��d��g��f��e��b��c��o��`����^�����·�������©�J�U�b�+�b���r����s��K�eh�ei��q��g²����8��+�������������\����¿4�;���]¸g�5��ZČ5�ZŌ5���������������������U��U��pb�pc��;������	
H����g�a5������*:>�>–�U��)'���D<�L	�]��4�����`G�������1#4
�a��·��o�o�o�l�l
�l
�l�o�� ��³U����"��#����ǂ�±�����g��g������e�3žĐ���+�~�n(�n+�n)��l±���k`�ka���ž���f�4®���
�l�%�n7�n8�l��g±����o�(�������l�l �n$
�n2�n3�n%�n.���m�3ž‘���f±�>�|�l"�l#���e±������µ����µ��m��m��Z��Z�����‚�±��l�l����l�l��b k�_���l(�l)�l*�Z��^���l-�Z��Z���얿��›����=���ă��m�m�m��ޖ��m��m��m��[h���hC�hB�hK�O�[i�hH�hI�hA�hD�H�l���Ҏ�œi��z�%���h>���h?�����±/	���j��m��Z��Z����±,r�$���m��m��m��m�
�m�
���±2���k���m��m�������k��k��[>�l�[A�[@�l������›������²���������������tI��›��z��
�҂�[j�j��j��k�k�k�k�k�k
�k�k�k
����$�^��:›��{��B����������������������±���~����²K��������������2
�W³����#��$��%��&����(��)���g��������+����������������������[l���[m�[n�m���q��w��u��r�S��l��Z��Z�����	N���`$��#1��	�����G§�	m�xcC��������O¯����¼��.�g���w�l��l��Z��l��Z��hX�hY�hZ�h^�h[�h\�h]�h��h��h���£a���8�2��8´-�$�lj��9¶T�n��n��n��lp��¯߄<�8
�0�g�����ȩ�$����������������m��m��������k+�1�g��l��l��l����	�:›��Ӂ���ymJ�����C��D��E��A��B����6�l��l��l��l���?��
��>	������e����e��f��:��;�g��l��l���x�l��l��l��lU�l��lW�lX���	N���`�
#�������0§�	n�ua8�������a²��ls�����4��H­r�h
����������N�5­q�s����

���u��c�> ��p~c!-���g��g��g��g�����¼P�������������������¼����¼����������������������������������������¢p��O�������¼Y�������������hU�hV�g��g���+³5����¼V�������������������¼O��7���L±����Y���<��R��˜*�7�r�	���݁͂�hb�he�hf�hc�l���m��l��l��l��l��n��n��U����l��������������l��l��l��������l�����������C��p¨醊��P�����
�l��l��l��l���������T©������m��m��hk����hj������������7��S��_�e�	��Mx�����b��k��b��k���±��k}����B��p®q������O���l��l��m�ho��Ԏ�S´���S���	�߁��.™(����2�ł=���l�����k��M���k��k��k��O���k��k��k��m��m��m��m����������������m
�m��m��m��m��m��m��m��m��m��m��m��m��������h��h��h��������®���®��µ�����¯����?��²���²��h���³���l��m���Ձ� 8�׃ւf���l�����
¡̑��f����������°��k��k��h��(���h��h��h��h��h��h��h��h��h��'���n��n��n��h�����h��'���n��n��n��n��n��l��l��l���T�"p	�Ё��)™'�����%����<���U��b���³��������l�����®�0�
�����p²h��q��r²g��s�������l����l��l������������x²T��j���~²S��{²S��y²V�����v
²X��w
�k��k��h��������h���!���J�ތB��L�Q
;Q�	W
����™41���у�.�U� �r
M�JG����4�т��k��k��hx����hs�ht��T��U�����A�Y��›�#�����p��������n��n��h��!�k��l�l�h�
��h�
�h�
�h�
�h��h��k��l�h��k��h��h��l�l���®E�����������´<������������������AU��
›�#�m��������²[���n�������²Z���n��n��n��l���!�l��h��h��������m	�m
�h��h��h���[��_®2����\��]��������®1��_��`�l����F�ތB���(�Q
	2�Yb�P›˃jR�T�A�h
A
$��}����\f���j��j��j��i	�i
�i
D�j>�jA�j?�in�iq�ip�io�ik�il�isB�iv�iu�it�j��j��ix�iz�i��iy�i��i��i{�i}�i~�i|�ir�iX�iT�iR�iS�iU
�iV�ih�i[�i\�iY�id�iC��j��j��j��i��i���i��j��j��j��j��j��ij�i��i��i�i�i!�i$�iA�i#�i"�i+�i.�i-�i,�i��i��i��i��i/�i0�i��i��i��i1�i7�i4�i2�iB�i8�i>�i?�i9�i:�i<�i;�i�	�i��i��i��i��i��i��iM�.�iN�-�j|�j}�j�h�	# �h�.�i#!�h�+"�h��h��i�h��i��i��i��i��i��i��i��i��i�i��i��i��i��i��i��i�
�i��i��i��i��i��i��i��i��i��i��i��i�	�i��i��i��i��j4�j�j�j!�j �j"�j#�i��i��j�j�j�j�j�j�i��i��j$�i��j5�j�j�j
�j�j�j�j�j�j�j�j�j�j�j&�j'�j	�j
�nD�j7�i��i��i��i��i���i��i�i�i�i�i�i�i�i�i�i�i ���i�j/�j0�j1�jB�jH�jP�jS�jR�jX�jQ	�jW�jT�jU�jE�jC�j[�j\�jL�jO�j9�j:�j;�j<�j=�jN�jM�jI�jJ�jm�jl�j8�jp�jo�jn�jq�jr�hu���
�ja�j`�hw���hv���
�je�jb�jc�jt�ju�j��jy���žNV�����r,�j3�i��i��i��i��i��i�
�i���i��i��i��i��i��i��i�i��i��iC�iD�i��j��i��i��i��i��i��i��no�j��j��j��j��np��W���
b�Y©G�n�8���m��m��U��A���n��U���n��k��UőU�����UƑU���m�m���©G���?�s�k��k��k��k��I�y�l��l��l��k��E�k��E��>¯���	�f�k��k��i��i���C²m�)�n��k��k��k��k��k��h}�$���i����i����i����h~�)���i�����A¯���	�i���?²h�h�����\
"��¬S��])��	?������(°���
�m������m��m��m��m��m��m!�m(�m)�m*�m,�m0�m-�m.�m1�m2�m�m �m"��"³��#³�m6������b¡�s����c��³E���],¡�r�M���k��������������
W
"��¬~R��
�U%��V�n�n�n��3�j��R�j��Q�h���7®[������_2®]�!
�����j���5°��8��9����_°~����b�m�m�m9�������°�������������³
�k��k��mL�mM�mO�mP�m��m����j��j������b´����œ��!�j���%�[L��[M���&��(��±����V�[��[��[��[���$¢a
	�[��[��[��[��[���)����ʁ��.	
F�ڄe�*��
��ԁ�%P���X–�U��)'���<�0	��6=�����@,lJX���+
)
F��������g������:��;�����������H²�>�k��Z���I²��L�mU�mW�m\�mV�mX�mY�����©r���������������©r���g���������Ӂ��b܅%����X��[��\��Y�b��b��g�c�N�mf��U� ܍��Z���k;��R�­��Y��T�����l1�l2����k�e�k��k�d�k��k>�kI�g˄t�kC�
�l7�k@�kA������}�g΄}��˔�b�,�����\š3�D���u��Z�%x��Q�
��ݐ��k��Y,��›{S�����ˁÅà G�n��n��n��n����®g����k��k��md��De³����o��Ee³����[��[X�[Y�[Z��������ސ�­c�3���i�o�k肁���o�o
�o	�o�n��n��g��o��^�­��lt�lw�lx�ly�lu�lz�l{�mj�mk�ml�h����/O��I��F��gjI›[,���x���+��}��!������aFW;<	�t�kN�������h����T�������������������T����h��p���>±a�k��k������4�@ j���Z���t�Z��Z���o��p��q��q���=�U��1�D�Z�����Z��Z��Z��Z��k3�U��t�k1���ª'�+�X�ms�h���h�h�h�k4�k5�nW�nX�kU�kV�l�mt��ѕ�+*¬:���$�%Cg����h�h��?��@���$ª�F���G������³����³��kj�������kk�[u�[v�[w�[x�[y�[{��h��mx�m{�mz�my�m|�[|�[}���M����?��jH›�����^�����"��:9�|�h�n�n�n�n�n�n�n������¯h���¯h�h8����������h=�h"�h#����h:����ª'�h�<���¯i���¯k��̕�M¯!�@�˃��f�f�h*�h,�[+�[,�[-�[.�h-�h.�h0�h2�h1�h4�h+���²��C�kZ�C���œ��ل�������k�G�nd�nb�nc���¬\�7�������U��U����œ����n`���«�����R�sP�sQ�m��Z��Z��j��j��m��g��lC�lD�lE�lF�l@�lA�lB��������¯҅n�lI��´@�g���ԙ�®(�i�����®#�k�l=�m��m��lM�k"�k$�k%�k'�k(���¦�������R�l9�j��j��gօt�gׅu�g��j���h���=�R�Ă���›`���ۋ����Z��[��[���������%��l��%�����p��q��m��n��j����›^���o��k�`´Q�������o#�o$��i�����Ă���
 ̋�������´Q������´U���´Q�o'��؄��´Y���›d���›d�����´X��������������t��u���������
���K(#��
�/.��������!4��,g����,-�����1#Y7O������f�”���Er']P>'y#�:
�ԁ���h~��[;��e"�q!Q���������&¿d��������]�������������������������������������^����������������������������������������������������	���	¿`����������������������
����������������������������������������~�!�ۅ���z�����}	�����|��{������������������������������������.��1��0��/�� ��#��"��!��$��%��'��*��������+��)��(��"����#����������5��6����������������������������������,��/��0��.��-��������������@�������������������������������-��K�d����™�����
���������›����������������������������������¨�����£����������� ��!��#��$����¢�����F�щ��k��l��������������������
����������K����-��8��,��5��4��)��*��I�҈������������������8�������;���:���9���<���=���:��=��<��;��>��?��@��L��B	��K��D��E��C��A	����(�oD��T��W��X��Y��V��U�Vd�Vg�Vi�Ve��N��Q��P��O��S��H���6�D���™���������`���{��|��}��h����g���a��b��c��e��i���j���"��#����c����b��I���y����´V��m��n��o��p����������[����]��^��_��\��������L����
����������������O����*�������z)�����{)����������������q��v��w��u��r��s��t��������}��~��M
��
����N��������o��p��r�������������q0�q1��������6��k��j��7��8��:��;��<��q��n��l������������������������|�������������������������q��c��i��f��d�����������?��
��������������@��	�����������>��������������������������������������w��x��y��|��}��~����������t��u�q2�q3��s�σ]	������������������	�����r�������������
�������������H�������������������[�������Z����������O��KyG��������	™����
������������̉�T������	��ˉ�K	����ʉ�U���������������������������������������	���XHf���LE��™��������&�����Ӊ���@F���������������������Q������	*���KH��������������������с��Y���?A�����ԁ����	����;����´q����p�҃��-����›MJ�U����ls����x����������������?�����������������������	���������������������������G��H��p���C­.���/��	��
�/��;��:��9��6��7��/��2��1��0��3��4��������$��'��&��%��(��)���n��������›MI�P��Čor�����t�Ɓ�� �1¤��;�h�/��ނ��߂�����%�V��>��¶���.��&�T��)�U��y��3��ɑk�����z�����w�ǁ��S��¨D��=��¶���r��s��E��D��/�߃rª8��������0���lª7����)����£������������������q���9��Ÿ?��.��$��)��*��G����J��I��H��K����L����#��)�� ��!��&��$��+��.��/��-��,��/��3��4��2��1��6��7��8��=��>��:��@��9��|�$����P�����M��N��O��}�������������~����U��X��W��R��S��Y��Z������������������������n��o��u©���v�Vo�Vp�Vl��!���g��������������������Ƃg��"���e��łf��.��/��A��D��E��C��B��G��r��5	¥��������������������������ފ���������������K��L������������Ԫ����ԩ������������AF���P���ȃ���9�_��
����ž_������������?�����������#��(��$��%��,��'��)��*��i��0��2��1��4��5��]��^��T��V��W��Z��Y��U��-3��a��`��c��d��/��.��f��h��g��9��>��:��;��?��=��[�o@�oA��]��^��a��`��\��������������P��R��Q��S�� ��"��!��������6��������7��8½��oE�������oF����>�����7�S����8�����������1f����0���΅��;�'��
ža�P������2����������������������3��4��:���l���3�
�*����@	��G��C��B��A��D��E��;��W��X��T��U��V��\�ق��b��d��e��j��h��c�Z��Z��Z��Z��Z���T��U�����>��A��@��?��<��=��[��K��R��L��M��N��O��Q��Z��Z������(��W
�ւ��H��I��1��2��H��L��M��J��K��O��I��4��cµ�
����������K��L��U���=�����[��\��Z���#�����������������X���30��[��\��b��q��r��_��Z��n��V���2��_��`��������g��e��j��h��f����W��W��W���4§���+��:��,��-��.��7��/��0��1��b����[��\��Y��Z��c��d��g��h��i��j��^��W��X��7�E��_��`��e�4��������b��c��k�F��l��h�2��f�I������������������9���:��P��Q���������������
�����������������������8�E������������61��DE��D����t��C��W��E����G��A4��CB��T��U������H��I��5���:µ�	��J0��z��x��O��P��Q��;B��<A��C��D��S��;��>��?��P��:�����������N��@��B���
�����������T�
K����������L�"��M��N��P��m��n��vP����������l�I����o��p��uL����b��c�����������������<����I����'���J���4���������>����=�����w¯;����������������������������������o-������������������ª���������
±L�ׅ��x��z��{��~��}��y�o0�������������������������������������
���������������	�����
����������s�����������������������o2�o3����¥y����������������������D�ƅ0�y������.�݄
������™`'�n��
�/g��@��	������������������������������������������(��.��7���-���,������Ԃ��.�܅�£���n��r��s��q��p��o��u��x��v��w����������
�
�������������������������E��O��9��Ă?��7�Cp	���ȃ>��������–�v��������X
�q(��@����3©���a�f���	������	������
���
��`�e�[���;����<��4����5��9��������7���ªJ��Q�e��R��¼i��¼h����¼i��
��������������U�FªI��[��\��T����V����W����v�2¯���w½d�[����¯[�������������������������&¥������K�<��N��O��L����������������������I�*™��C�V��V����������������������2���Y–���]�������y�[��[�����yž��[��[��[��[��[��������������c��c��c��c���φ��K��z���Q–���c���c�����������������������������������������S
����~��Є.���x	�+Y�Z–	���_�����������GX�Z��������{�5[¥�������������8n����S�S	�������������&,����%������������������Ј3���������������©���������������������������#��$����������41����@�������������������������E�������=&����E����������F����E�����������X"����
������
"��.��0��/��1��,��-��@����'��߃(��������C�����B��A����D��E�����������������O�	����	�^������–�n����!�X�Y(��k���������������o>�o?�sK��n��o��y��z��{��|����ƶ����M™��V���������������[��[������<�(�0 ���\�™��O���������>��A��B�#�����e�[��[��[��[��[���=���'©�������M�����������<����=������	��
™��h����]��^���oH�oI��n��������������������������������������������o��v��w��r��q��p��s��t��{�����«`��}��~��O��P��Q�fn�fo��.��/�����������������|��̽���6
��6	��6���d��
 �쁭�u��i����d1�6*—Ɂ��XQ	l��]%������F
*T�`��J"y�{����
����]��^��M�������_��`��a��b��H��L��I��J��x���Ȋ����Q�ȉ��sN��m¾���R����Z��������n¾��a7����	�a8���c�b�,�c�c�b��Z��Z���[��r��p��q��у�¯Ռ�������������c
�c��c��P�
���¼����¼����*» ���*��S��T��¬���¬����T��¯�����������������������O�����������O5�p
��
±���
����������	���������������
���������������±��������������������������Î{�#������›_�-�7%y����;��U��y��z�c(�c)�������V��V�������¾p�c����V��V��cM��cS�Îz�'�j¡>�9�6������L�q�q �q!��g���d���{�4��~��e���z�`��c&�a:�qY�qZ���KQ�<� �b��›_�0�9
}����;��F�fz��u��w�B�J�c.�I����Ǝ{�#�j¡;�Y"���$�c��q�V��V��c�c�f|�f}�f~�f��w�ʚ�r�c�cG�c$�f��f��c�c�������ڋ���ž�h����	@�I�aF���i�`��`���]}�ꁵ�Q¢�8�c�U�������¸j���`���<����)��*��'��(��F��-��.��C��G��H��J��K��,��%����8��9��:��1��2
��&���5��6��]|��������¢�7�b���e�f��c2�f��f��f������V��X��o���0��uB��z���
��'��™�k$�Y��3���\��du�J��n@�\@�f��f����³mF���qS�qT�[����[�F����ZŸ������|��\¦���������]¦���g����°:�V��i��h�f���[���q�ˆ����������P™tUi9�3��4���@����(��Z
��_	9�q��˜�S����v����_����p��`��_����SB�SC�������������oY�oZ����h1�¯���3��+�
Iq�D�\=�������������������������\>�\�\�\#�\$�\%�\'�\(�\&�\*�V:�\�\ �\!�\��$��%���	������������������������º����º��W������������������������\+����������U�\-��T*?�	¢vr�ËՄ
`���c�c����f������������Mp°D��N��a��=���R��>���s°)���\/�\0�\1�\2�\3�\4��t°(
���\5�\6����$�� ������!��"��@1��	��t��¬���'��	E����H��E	��C´��\9�\:��@
��A
�\�\�\�\;�\<��L1/�r��¢�ÄӇ�
�a���c8����rº�c6��a²��\�\�c9�c:��b�\�\��O�w¢y����P¬�����
,��5���`��>'��+�����m�W�������6!��–)���_M�X*�p��

%%��FQ�q��2"r�x����
���SF�SG�V��V���›'����R��U��V���R��q���܃������პ¡�����j¦!���.���5���P����V�Ń̋�d2ž�hn(�2��X��Y��W��\��
�co�cp��d��	�N�°c��`��]��^����f5�f6��b²��eY��у=Rg�S�:���x�
:����+š�d���k�ɂ_~�K��U��V�Xv�Xx�Xz�X{��`�V��V���a��s��º��sO��Y�`��`������oS�����nR���	���������������p��[�qc�qd��������������
�a��~�r� a6�˜�o|�p�҃@([K���!��"����'���µ�g���a��›�҃g[��U�cu�cv��h�[�Q�3™��R�9 ���r���K��L��>µX�r���A��F��?	µO��C��D�r���@��B�r��r��r�����º�a�q�`�r
����º�`���rb�q�cm�r���	�0©��+�q��q��q��q��q��q��q���"�/©���0��U��S©����	�,©�
��(�rW��!�5©���+�gE���rZ�eZ�� �J��–����6&u�r6�r7�q����rB�rF�rG�rC�rD�rI�q��q���
�q��q��q���$����%��!�J��–���&t��&��'���¬X��)��&��*��&��,��
�q��q��r-�r.��[��^��]��\�q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��r�q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q���_´����r��r��r��r���`´���)°)�gS��(°*������_�PŸԑR�5)D{�r~�r�r��r
�r��q��q���|��?���rc�r��r��r��r\�rb�r]-�rf��v
��˜����	�]��
�q�e�q����q�e�r�q�$b�q��q��q��r�r��r��r��q����q��rv�rx�rw�ru�rz�����˜���e
��
�q��q����r|�q��q��r��ri�r�r�ro�rj�rn�rk�rp����:�� �p�򁌇:™O�������ǁ�Z
�Z�fZ��ŏSšP�T����1�e��e��f[��/��0��������������������7�f��f��������V\�V]�R��R���8�o<�o=�f��f���X��[��Z��Y��\�������f��e��e��Wj�������������E�����������������R��R��R���:���g�Ÿʁ������e��M��������W�����X	�X�X!�X�X�X�X�X
�Sx���W�
�W��W��W��W��W��W��X�X�X�X�X�X�X�X�X�Sy���f�X
�X�X�X�X�X�X�X��;��偪�X�X�X�X�X"�X#�X$�X%�X&���������������������	§������������X*�X'�W��X(�X)�������X,�X-�X+����������f��W��W��W�A�W��W��Wϐ��������f��f��f��f��W��f��b��������������������������������[��C�[��[�����:���{�����H��™O�}E����	a���v�f��f��f1�f���U�����¦
���f��f�����R��R��R���2���}��›Ĕ7�����������������������������������·����������·�����R������f�����������·�������
����������
��ׇ����f��R��R��S�S��"��aµ4�r���g��i��h��m�r��r��r��r���yµv��z�r���}µ6�r��r���~µ5�r�����r��r�����r��r��r��r��r��r��r��r���ơ��
 –?�׌�r��r���Ǧ��r�����������������������������������r������ –?���r�������µ:����������r��r�����r�4�r��r��r�&�r��r��r��r��r��r��r��r��s�s
�s�s�s�s�s�r��r��r��s�s�s�s�s�s�s�r��s�r��r��r��r��r�	,�r��r��r�"�r��r��r�!�r��s1�s9�s;�s<�s:�s>�s�s�s�s�s �s(�s*�s�s�s.�s/�s,�s-�s2	�sA�sB�s3��b±ׄ[������������������������������������������������������������������������������µ����µ������������������������������������������������v��w�����������������������������cªA�r��r���e��dªQ�r��r����Ã{���҃w��;�"�6)J���؃E/<��K
	*��jm��(4��������t����X��
����Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ý�Ú�Ú�Ú�Ú�ÐxÒ�Ò�Ò�ÐyÚ�Ú܃�Ý�Ý�Ý�Ò�Ò�Ú���Ú��Ý�Ý�Ò�Ò�Ò�Ò�Ò�Ò�Ñ�Ò��Ú�Ò�� Ú�Ò�Ò�Ò�Ò�Ò�Ò�Ò��"Ò�%��X����Ú�Ú�Ý�Ú�Ú�Ú�Ò�Ò�Ò�Ò�Ò�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ò�Ý�Ý�łL�m�iÒ�Ò�Ò�Ç+Ò�Ò�ÛAÛBÇ,Ò�Ò�Ò�Ç�Z�\�[�W��ÓÓ	ÓÅ̊��tÅ͖pÇ	���Y�W��ÇÇ	Ç�Ç
Ç
ÏƌrÈfÈgÈhÇ%�F��ÓÓÓ
ÓÓÓÅ������FÈ�È�Å������EÏ�Ï�ÓÓÈ�È�È�È�È~ÈÇ5�gÓ�È�È�È�È�È�È�	È�È�È�È�È�È�È�Ç 	�F�7�0Ç/Ç0ÓÓÇ1��Ç2Ç3Íg��Ç'Ç4��ÍhÍeÍfÇ�j�3��4U���n��
L���x���<Xn�:��jÑ�Ñ�Ò�Ë�Ñ�Ñ�Ë�Ë�Ë�Ë�Ý�ËsËtÝ�Ñ�Ñ�Í��e���z�LÍ�Í�Ñ�Ñ�Ø�NÑ�Ñ�Í�Í��c���wØ�MËl�2�ZÕ�Õ�Ëm��Ø�LËv	�
���ք�"�[�hËw	����É`�ÉaË�Ë�Ë�Ën�y��
(ËoËpÏ��(ÒÒ)Ì��
'���p�'T���_
���u���;�ń�WË�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ë�ÍWÍXËeËfËgÒËiËjËkËx�+��g��q�!�YÕUË{Í�Ë|Í���ËzÍ�È\È]Í�ÒÍ�Í�Í�È`ÈaÍ�Æ$Æ%Í�Í��Í��ÆÆÆ Æ!Æ"Æ#Þ�Þ�Í�Í�Èb���	Ï�Î��mÎ��mÃ�-$�%�6�@5>r���1[�i
Bx	�+��
��%���I�ނ�e*��� Ë�Å���Å���Ë��1Ü�Ë�Ë�Ë�Ë�Ü�Ü�Ü�Ã�Ã�Ã�Ã�Ã�Ã�Ü�Ü�Ü�Ü�Ü�Ü�Î��kÎ�ÝÎ�Î�Î�ÝÝÝÝ	Ò^Ò_ÎÜ�Ü�Ü�×�Î
��ÝÎÎÎÎØ:Ã������J;�́�[�?×�×�Ë�Ø2Íƅ���ÓRÉt��ÉuÉwÉ�ÉyÉ{É|É~ÉÃ������I �����[[�A��Ë�Ë�Ë�ÝË�Ë�	�JË�Ë�Ë�ÍċP
�Ø!��Ã�Ã�􇐁���Ó`Ã���Ã��f
Ý%Ý$
ÒTÝ&Ý'Ã���Ý)Ã��B�7��Å��7��Ã���K(�8�����X&�����D���n 8�;��Û_ÝÃԇ�ÊcÍ�Í�ÃՇ�ÝÝÊh�F��ÊiÃ�Í�Í�Ã���K������Y ����
���n>8��Í�Å�Ã�Ã�W��Ã�Ã�Ã����I�DŽ��	Ã�É��֊�É���a�~É�É�É���ÊlÊmÝÝÍ�Î����Ý5Ý6×�×�Õ*Ý1Õ+Ý8Ý3$Ý2Ý4Ø6Ø8Ø9Ø7Å�����CM��ÉcÉdÈ�È�É���Í�Í�É���Í�Ã�Ã�Ã�ÃݚÃ�Ã��ÎÃ�)�#����5��(F��È���È���Í�ÃΆ��I�Ãϊ�Ã�+	2�;��+�3��P	->r�����h(��	
��M�$u�I����O
��� <È�È�ÒÒÕÕÕÕÃ�ÉqÎ�Î�Ã����<�}Ã����}Ã�Ã�Ã�Ã�Ë�Ë�Ã�Ã�ÝIÝJÝLÅ�����ÒÃ�q���M��ÈXÝHÝMÝNÒÒÒÒÈQÈRÈTÈUÈVÒÃ��GH�:����H����*K���x
-:��1Æ�PÆ�OË�Ë�Ë�×�×�×�×�Æ�	��ÉÉ
��É×�È�È�È�È�	È�È�	È�È�
�
Ã���Õ-�rÎ���Î���È�Åф9��ÉÅ�3��Æ��Æ��Æ��Å��"ÉÅ�Å�Å�Å�Å�Å�ÉÉ	Ã�&�!�
���
�E�T
$�'3×�Ã�����ÆÆÆÆÆ
ÆÆÆÆÃ�Ã�Î�P×����4Ø)×����1Ø(Ø+Ý]Ø,Î
�SË��… ����Ë���Ã��JË�Ë�Ã�Ø<Ã��D#��Ã�Ã�Ã�ÝAÝDÝBÝCÑ�Ý>Ý?Ü�eÈ߅�Î�Î�É�É�È�É�É�Ã�W	�F^��+
#L��k����2�#�MHB
��?`]��D�� ���\��ÏU�ÏSÏTÒsÏV�ÒrÔ5Ô6ÒuØAØ=Ø>ÔÄp���4 ÔÔÄq��ÔÌlÌmÌnÄs��Ô�/�Ø�Ø�Õ4�Õ�Î�Î�Õ�ÔÎ�����Õ�Î��%�Ï
�%�Î���Î���Ä��$�끼�҈>��ÛhÛiÛ�Û�ÛrÛsÛgÛpÛqÉ�É�Ä���,Ä�Ä���+Ä���Î�ÏÏØ�,Ä�ÔÄ���ÌÔÓ�Û{Û|Û}Û�Û�Ó�Ó�Ó�Ø{Ø|Ä����끼����Þ�Û�Ä����K�o� �;��Æ`�1ÆaÆ\�݂;Æ_ÆdÛyÛzÛvÛwÛxÉ�É�Ø�Ä5��Ø�Ø�Ø�Ø�Ä6Õ�Õ�Ô2�
Ô1×B×C×DÄR�R��������
�)����Î�Ü}Ü�Î�Î�Î�Î�Î�ÖfÌBÌCÖg�9ÄZÜ�Õ�Õ�Õ�ÍDÓ�Ó�Î���Ó�Î���Ó�Ó�Ê@������JOÌ1Ì2Ô	Í�ÊA����	�Æ��Ì4Ì5Í	�qØ�Í	Í	�Ì3ÍÍÍÔÆ;��Ã�Ã�Í+���uÛ�Í,��Æ<��Í4Í5Í3Í2Í*Í.
Í/
Í7Í8Í9ÄS�R������
�����JØ�Ø�ØG\ÌKÌLÍE�j�Ն�Î�Î�ÍF�i=Î�Î�ÄTÄUÏ	Ä�É���ÄO���{���QK��1��Û�Ô#×FÔX�lË�Ë�Ô%Ô"ÌvÌwÌxÔ&Ø�Ø�ÄP���{���R��/Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ï9�肢��GØ�ÌtÌuÏ:�dÔ$Ä����H�C
f�⁹P��)��nP_�$2:��
ÔPÔQÉ�ÔÉ�É�É�Ø�Ø�É��Û��Û��Ï
É�É�É�Ø�Ø�ÍKÍHÍIÍJÍLÃ�+�=�.S�܂���n���C��Ä�Ä �ÊBÊCÉ�Ã�&��Ê9ÏÏÊ:Ø�Ø�ÄÄÄ$��Y�����1��Ä:��Ä�6ÔTÔUÄ�6ÔÌ{Ì�Ì|ÌzÌ}Ì~Ì�Ì�Ì�Ì�Ì�Ä�o������ÔÄÄÉ�É�Ï$��ÏBÏCÏ@�+ÏA�+Ô,ÍM�ڇ�� Ï(Ï0Ï3Ï2Ï1ÐÄoÔ-ÄmÔ.ÄnÏ%��Ì������Ì�Ì�Ì�Ì�Ì�Ì�Ø�Ø�Ã�&�功+É�É�Ä#Ä$Ô1Ã�&A��Ô0ÄhÄiÏFÔ/�Õ�ÏÄ(Ä)Ã�(#	�D^���5
H+�hj%
����.
�҃,9�JHB��=\[
��9��" 
����	�TÔbÔcÔ]Ô^Ë�Æ7-�EÆ8-ÏG��×QÏH��×L×R×S×TØ�ÏKÏLØ�Ø�Ø�Ô2Ô_Ô`ÆNÆOÔ4ÄM����9��É������҃|�Ô×W×XÏ��Û�Û�Ï��Ô3ÆQ��ÌZÌ[ÆRÆSÄ+	��Vx��	�n��	.���
I:���B�}U3��ki]�g^+6�u�'��sÝ�Ó�Ó�Ó�ØVØWÎ���eØeÔ
ØfØbØcÝaÔ
Ø_Ø`Ìg�Y��Ë�Ë�Î�Î�Ì`�Ý`ÝeÌaÓ�ØLØSÄÄÄ
ÄÄØMÔ�>ÄÄÌ �GØiØjÝhÌ!
Ì'
Ì&
Ì%
�:Ì"
Ì#
Ì(Ì)Ì*ÄI�#��ÝkË��ØlË��Ì;.��Ì<.Ó�Ä.J�?�m���������mz��ÏYÄJ�l������g
��Ø]Ý�Ý�Î�Î�Ìd��ÆTÆUÍQ�q��Î�Ô9Ìe��ÔÔ)BÍRÃ�-1��U�����n��
*}��U9	���_�}���j[0P�p�&��j�ÔÏa��ÔÔÄ�[�yÏ\��yÄ-3
�1���߃v�YKA�r�Ä?Ä0Ä1Ä2Ä3Ä>��Ä=ÄGÄHÎ�ÝdÔ~��ÔÄ@ÄAØ�Ø�Ø�Ïd�6Ïe�6Î�Ï.���ÖnÖoØ�Ø�Ï-��Ô�Ô�Ô<Ô=Ô�Ô�Î�XE�����6ÔmÔnÄx���"T��Äz��ÌGÌHÄy���!ÔqÎ�\E�����4ÔÔgÔrÔsÉ׃}��!!���6��肃��ÖrÖsÌW��Ø�É؃}��������ÌS��!Çt�f�׃p�������ςM������Ç�����Ç�����Ô��/Ô��/ÐØ�Ø�ÐÐÐÛ�Û�Û�Û�×[Ç�Ç�ÝuÝzÐÐÐ
Ò4Ç}Ç~Ç�Ç�ÇÇ{Ç|Ò9ÎÎÒ7ÝsÒ5Ã}Ç�Ç�Ð,Ç�����P'��Û�Û�Û�Û�Ð/Û�Û�Ð1Ð2Ð0Û�Û�Û�Û�Û�Û�Ç����fÛ�Û�Ð)�p	Ð*Å]�0Å^�/Û�Ä�������ÙÙÙÙÏfÏgÄ��eÄ�ÖÄ�Ä�ÖÄ��z����Ø�Ä��cÙÙÜ�ÎÎÌ�Ä���f���o���������܂�j×\ÖÖÖÖÖÖÇvÇwÄ�Ä�����Ä��䉩�\ÇzÖÖÌ�����$�6Ì��w�`Ì���Ì�Ý�Ý�Ð+ÕD�AÕEÃ���$�遀O,J��	����
�����7!���<��S������W�����	�����Û�Ú.Ú/Ï�Ó��;Ó��;Ù�ÆgÏ�Ù�Ù�Õ�Ù�Ù�Ù�Ù�+Ù�+Ù�Ã~�L�8�i���M��Ä���Æ�Æ�Æ�Ä�Ç��S��
�UÇ�É�Ù Ï��`Ç����JÙ�Ï��aÕKÕLÕIÕJÄ�Ï�������Æ���Æ�Û�ÕNÕOÍ�kÆ�Æ�Æ�ÕQÉ�(��É�Ù�Ù�ÊÄʆ8�g���M
��Û�Äˈ؃�QÄ���Û�Ä�Ä�Ä�Ä�Ï��FÄ΂�3Y��Ù�ÒzÒ{ÊÃ�Ã�Ã�Ã�Ã�Ä��$��Æi3Æj3ÆkÃ�y2��Æ�Ïk�>Ù�Ïl�>Ù�Ù�Æ�Æ�Æ�Î4Î5ÄۂU�q��p���=����Ð?���Ç�����Ù�Ù�ÚÚÏ��fÆ�Æ�Æ�Ä�Æ�Æ�Æ�Æ~Ù�Æ}��Æ�Æ���Æ�Æ�Æ�Ù�Ù�Ã��ʁ�L 
@��	����	��P&����=��O������S�����
$��Ï���Ï�É�É�Ò=Ò>Õ�Ò@ÚÙ�Ù�Î'�wÎ*Î+Î(Î)Æ�Æ���Æ�Æ�Æ�Ô�Ô�Æ�ÚÚÚÚÆ��k�Æ��=*É�É�É�É�Ù���Ù�Ù�Ù�Ù�Ù�Ä���Y�S��	�'Õ�ÓpÃ������Ńށ�Ó��YÓ��YÄ�ÓqÙÄ�-��wB=���+��,���>��(����1%T��$��RÙ(Ù)Æu��Ù+Ä�Ä�Ù2Ù3Ù4Û�Ù,Ù-Û�Æ�Æ�ÙG��Û�ÙHÙJÙKÛ�ÙMÙNÄ�+��ÙXÙYÞ�Þ�ÚÚÄ��*�3ÙEÉ�É�É�É�É�É�É�É�É�Ä���8���GÆ�Æ�Û�Û�Ä�
�/����
���
���
���
����Ä�Ä�ÏzÆ�	Æ�Æ�Æ�Æ�Æ�Æ�ÙQÄ�ÙaÙdÙbÙcÛ�Û�Ù>ÙBÄ�É�É�Å���Q�M�k5��on����Ï�Ï�Ê����mm��Ä��ÙVÙ#w&ÙmÙnÙuÙvÙxÙ$v%Æ�	����@����Æ�Æ�Æ�Æ�Æ�	Æ�Æ�Æ�Æ�Æ�Æ�Æ�Æꉌ����Û�Ïw��Æ��������Æ��Æ�Æ�Æ�Ú%Æ���Ú$Ú#
Æ�����Ú5Ä�)����;$���*��
2����&	
������Ù�Ù�Ù�Ù�Ù�Ù�Ù}Ù~Ù�ÙrÙ�Ù�ÙsÙ�ÙPÙ�Ù�ÏÏ�Ù�Ä����E���߅�����Û�Ú,Ú-Ù=��ÆsÞ�Ô�Ô�ÙkÙj3Ù�Ù:Ù;Ù�Ù�ÙiÙ7Ù8Äؐ���YÄ�Ä�Äِ�ÚÚÚÚÄс��)��ÙÙÄԁ�� m�S��Ä�Äւ�l�RÄӁ��(��ÙÙÄҁ�����Ö Ór����ÊÊÖ8Ö7ÊÊ	Ä��م`�с�9�}���0H�z����uÐGÐHÚ:Ñ�ÎAÎBÑ�Ö<Ö=ÖSÐLÐMÖTÖUÖVÖ?Ö@Ó|Ä���H�������т
��Ò�Ò�Ò�Ò�Ò�Ò�Í�ށ�
����Éj�܂�@Ék��ÖBÎ=Í�9Ä�	�AÅÄ�	Ä�Ä�
�
ÅÅÄ����_����&���
���sÖFÖGÖ]Ó{Ö_Ö^Ä��~�P���W�����Ä�Ä�Én�P��Ä�Ä�Ä�ÖXÖYÅÓ�Ó�Æ�[������j��?���������B��
�|��Ô�Å'�gÅ)Å(�eÅ$Å%�hÅ&Å+Õ�Õ�Ç_��ÇZÇXÇYÇ[Ç\Õ�ÚIÚJÕ�Ç`Ç^ÇcÇdÚKÏ�Ï�ÚDÏ舏��Ï�Ï�Ï�Ï���Ï�Ç�����]��!ÐQÅ?ÐPÇÇÅA�Y����Å)ÅGÅ*ÅEÅHÅIÅR�"��ÊyÊzÊ|Ê}ÚRÊ�Ê�Ê��pÊ�Í	ÅT��ÚQÚPÏ�ÊvÊU#ÊxÇe�񆭃�ÍÜ�Í
�GÚTÝ�Ý�×{×|ÍÓ�Ó�Å,�Ă��_>!�3�E�����Ç��,Ç�Ò�ÐmÅ�{�[^�3��Ì�Ì�Å�{Å1���M�IÐUÐYÐiÅ2���KÐVÐ]Ð_Ð^ÐRÕ�Õ�ÎEÎFÅ ,���J�A�o�1��
y�%��,
	��	���2Õ�Å<Å=ÅVÒ���ÇhÇiÒ���ÇfÇgÅ!�����Æ���Ì�ÅW�������ÅX����Ç��Ç��Å4���Ձ��2�A����фAÇkÇlÇUÚAÅLÅMÅC�FÚEÚFÚaÚ[Ú\ÇÇ
ÇÅ5���ÅP�ÅQ�ÎIÕ�Õ�Õ�Ð`Ô�Ô�ÎJ×zÅ7Å9Å:Å8Åk������K���&Ål�5��Åm�5��Ý�ÕꈨÝ�Ý�Ã|�� ]��	��G���/()��e��N���؁��V>#	@��K
	$��Bm��	I���?��-	�/��K��	Ô�Ô�Ð�Ê�Ê�Ê�Ê�Ê�×*×+Ì×�×�ÇɅ<��Ç�Ç�ÌË�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ç�h�j�hÇ�Ç�Ç�Ê�������hÊ�Ê�Ê�Ån�U6Ç�Ç�7Ç�Ç�ÅoÅq��Ç�ÅpÈÊ�Ê�Ö�ÚoÚpÚqÚrÅ�Å�Å�Å�Ê�Ê�Ê�Ê�Ê�ÚzÚ}Ú�Ú~ÚÉpÈ�È�Ú{Ö~Ö�Å�8��������hÊ�Ê�Å�8���Ê�Ê�Ê�Ö{��ÌÅtÅuÅv×)Ö�Ö�Å}�~��#�߂̃
�M��Å��&Å�Åw�c��ÅxÅyÅ~�&@��#	��������M��Ì
ËÌÊ�	Ê�Ê�
�
Ã�	�0��Ã�Ã�Ã�Ã�Ã�Ã�Å�������у&Ô�Ô�Å�Ì
��Ì��Ð�����Ð݃���Å���Çρ���3�9��j���v�t���u×�×�Ú�Ý�È�Ý�È�Ý�Ô�j������È���[�uÈ�
È�È�È�ˆ��ÈÈÖ�Ö�Ö�Ö�Ö�Å�È�È�È�Ö�È����	�Ú�Ú�Ð�Ð�Ð�ÈÈ��Ú�È���È�Ê�Ê�È�Ê�Ås	�,����"'��d��w��uh�f�t�L��IÈ�È�È�ËÕ��؃	�3Ü�È�È�Ü�Ü�Å��*L����	��������P�C�1
 �ԁ⁙�X'v����,ÈÈÎO�jÎPÔ�Ô�Ô�Ô�Ð�Ð�Ð���Ð���Ô�Ô�Ô�Ð��È��ÈÈÈ����ÎRÎSÇ�Y�挡Ö�Ö�Ö�Ç�ÎV�LÎWÐ��Ð���È��ʂ�Ö�Ö�Ç�Ç�Ç�Å��{����aÔ�ÚuÔ�Ô�Ô�Ô�Ô�Ô�Ô�Ô�È$È%ÚvÈ �ʇ��$���BÔ�Ô�Ô�Å�����	Ô�Ô�Ô�	Å��5	Ô�	Ô�	Ô�	Ê�Ê�Ð�Ð�Ô�Ô�È0�|È/��Ð�Ô�Ô�È3È'�e�vÈ1È(��È*È+È)��Åh�'L ���Ă����N�r)��������&Å�È�Մm����È"È#Ý�Ð���Ô�Ê�Ê�ÅiÅjÐ�È�È�È�È�ÈÈÐ�Ô�Ô�Ã������8Ê�Þ�Ã���+�[��\��$�9��,����*>j

Xs�d����������Z!�-Op��
8#��F��N
&��6LK��×�×�×�Ë-Ðv������Ðw�ʃG�y��ÌÛ�Û�Ü�Ö�Ö�Ñ-���Û�×�Ç�Û�Ç�Ç�Ç���Ç�ÑB��
ÑCË.Ñ)	�xÑ<Ñ=Ñ*	�uÑ;Ö�Ö�Ì։�Å���O��Å���Å�Å�����Ö�<Ö�<Ì׊�É9��É:��Ñc�_Ñd�^Ñ[`�dÑ\`Ö�Ö�Ö�Ö�ÑjK��^ÑkJ��^ÑhÑiÑm�^�y��Ñn�^�yÖ��Ö��Å�	��n�W��n��Û�Û�Û�Û�ÑD��ÑE��Ç��
�~��dÑKÇ��E��Ñ.Ë6Ë7Ë8Ë9Ç�Ç��Õ�+Ö�Å���É(É*É)ÉOÉPÅ��N��Û
ÛÖ�Ö�Î\É4É6É5ÑQ��ÑR��É7É2É3ÓD��ÇB����-ÇFÇEÇDÇ��������{��n��Ç�����É#É$Ç?�/����ÜÜÇ@�.����Ó0Ó1É�b����o�P�R�J"�B1�Ñ�Ñ�Ó�Ó�Ó�Ó�Ë;�B����Ñ~Ë,Ñ����Ñ}ÑvÑwÑxÍ���G�����ÑzF�a��Õ����Õ�%É�d��-�+��
O�N+`��$�@1	�Ղ<��Ó��I��ËÊ���Ó��H��Ê����É �c����Ü�Ê��Ê���Í��T�����Ë�ËËÊ�����%�>�́�P��Ë<�9�
�W×�Ñ�Ñ�Ñ�Ñ�Ñ���Ñ�Ñ�Ñ�Ë)�[��s�0ÉQÉRË*�Z��s�0Ë=�9�
ÎkÎlÅ������݁�.?i��b��Y%`�kA%	m��&���O�!��Ð�ÛÛÜÐ�Î`��×�ÎbÎcÎaÛ�ÉS��ÉTÉVÖہ�Ö�ÇH��i���b���Y��!�0A-�Q
���#�

���Ó8Ó7Ú�Ô��Ó4�ǂ Ó5Ç8Å�W�4�jb���TÇ:××Å㐊��Ü�Ü9Ü:Ü<��Ü=��Ñ�Ñ�Ñ�Ñ�Ñ�Ü�Ü�ËWË^Ë_ËZËYËXË[Ë\ÎxÎyÜ�ÇI������������Ï�Ï�ÜAËBËCËH��ËGËIËJËNËPËQËOÏ�Ï�È=��)��Ñt×�È@ÈAÈCÈDÈEÈ>��%ÎfÎgÇJ��񂌂��_����ËAÎ~Î}�`Ñ0ÑpÇK�
��Ì̅�Ì�Ã���(�X��G���L��."����%��Us�S����q)	����U�,
P
l��
8
��
=��K	��6 r��ÕvÊ��j��Ñ�×�×�Ñ�Ñ�Ì�Ñ1Ì�Ê�Ì�Ü�Ü�ÜPÜLÜMÌ�ÑÆIÕpÊ��1�I�>××××�Ñ�Ñ�ÃÅ)���2�̏JÛ
ÕsÌÐ�Ì�Ð|�"��]"�Fc�q��@����Î�Î�ÜQÜRÍ���gÍ���gÊ������iÕcË�Ê��:Ê��:Í��FÜ�Í��FÜSÜTÜUÅ�(����ご*����i�N!c�lQ����&�#��&��Ñ2ÑUÉB�Ö�Ö�Ñ���ÜXÑ���É=ÉAÉ>É?ÎvÎwÖ�1�É+É,Ñ�Ñ��+×%ÜaÜfÜgÑ���Ö�;Ö�:ÜiÜj×�Ü^Ü_ÕÕÑ��*Ñ��?�腂Ö�jÛÛÎpÖ�Ö�Ö�Ö�Õ��}ÜÜÕaÜÜÕbÑ���Ñ���Í�����h�c�UrÌ�Üm×�É[ÉYÐ�Ð�Ð�Ð�Ì�Ì�Éf����ÉgÉ\ÉZ���]��ÒHÒIÉ^É_È8����P��r�' ��0Ð�
kÐ�	ÑÐ���Ð���ÑÑÐ�Ð�Ð�Ð�Õ�Ñ��ÑÑ��Ú�Ú�Ð�Ð�Ð�Ð�Ú�Ú�È;È<Ð�Ú�Ú�ÑÕfÕgÑÑÑÑÑÇЃ����c�X�0)��Ö�Ö�Ç�ÇԄÐ�Ê�Ê�Ê�Ç�����ÇӄÐ�Ð�Ð�Ð�Ð�Ú�Ðq�j��	Ý�Ý�Ý�Ý�Ðr�.Ý�	Ð�Ð�Ð�Ð�Ú�Ú�Ú�È9����T�Z�%
��Ì�Ì�Ì�Ì�Ð�Ð�Ð�ÑÑ Ë/����O�_-��*��Ð�Ð�ÑÑ
ÑÑ	��Ú�Ë2Ë1�^��Ë0�vÑ!Ñ"Ú�Ð�Ð�Ð�Ð�Ñ$Ñ%Ë3Ë4ÈÉ
��È�È�È�Ú�Ì���Ì�Ì�Ì�Ì�×�Í]Ì�Ì�ÍÌ���×��b�<�z�Po���m���q³yS�#L���%(�P����� ���"��#��eu�ev� ��� ���#��#��#�5� ����� ����"��e����
�w´.���(��(��g<� �� ��g=»��"�� Ã$�!��!��b�¾�$�� �� �� ��j�´.���j��$�$�d��!��d��d��d��d��d��g[�
�vµ܄^�$�j�´.�$�k�µ��$!�k�µ����$ �g\�g]�j�´.�b��Ձ��A�N��´P�)4���@�i�i�i	�i
�f*��,¼����#����$��$�$�$�$���f.�f0�h��h��h��h��h��h��h��g+¼����f,�!�����!�$�f-��»X�b����L¸�E�S�g�¸��e��e��e��e��e��e��g��b��b��b�¿��g1�g2�bσӂ�»��"��g4�g5¹i�b�¿��b˃�½�"��b�
�����=�I���=´P�)2�������e��	¹��g��b������ׂ�´R�)@&��B�3�fq�!��!��!��!��!��g��g��g�·��$`�g�º�!��!��g��g��g/¸�/e��<
�J�K�!n�!��I�#[�!��b��k|�k}�g7���i�g8�!��g��g�� ˃ �"�� ̃ �"��d�	�!+����"G�|*	,�=´B���قrS6�˾��d��1���d��1���e��d��3¹��o�iF�d��d�f�f�iu�iv�e���e����e��iG�e��WS�WT�!�fu�fw�fv�j��iM�iN�j��d��d��!�����g`º~�ge�gf�gb�gc�gaº~�bׂĄ�ʂ�´(����_�d��R´,�j��b؂�������´&����_�e��e��d�����´(���g����iT�f��·��$D�e��e��e��e��b���.����
��6�k´F���MW-���g��g��g��g��i�¹W�gr:�g��g��g��g��gn�go�gp�e�A�R·�'���f���gl »z�#�g��g��e�/��·��e��e��"��e�.�}·��f�c�d��d��e��e��bل���b��b��b��_�$;�c���e���g��g��d������".�~
 	)q��	´
6	�����mP/����ú��!��!�� 6� 7�f�f�f�f�$'�p�r�s�q�g���º������f¹@'���iC�d��4�������%�k´B	��g��W��!�!
�e�f�d��d��e������¶�g��g��j��iw�ix�iy�j��f¹;+�d���vy�[´*��}	#{��E�-�{�g��g��!�!�!$2�n�d�¼9�!&�!+�!*�!'�!Z�![�!=�!(�!>�!%4�m�b�¾:+�b�¾9�!?�!@�!B�"��c!��¹)\�c�c �c#�c$�c�c-�i��c,¾
�c)¾
�c+�c�c"
¾W�c(���d�c&¾�c/���!��i��!������d��d��c<¼Z�f��f��i
�i�i�c
�݄�{¶_H������c0¾��i��c7�c8�c1¾��c2�h�c�݄�xµ������h�i��i��i��i*�i+�i-�i0�i.�i/�i2�i3�i5�i6�i��i��i;�i<�i�i�i&�i'�i�i!�i �i�i"�i#�i7�i9�i8�i��i=�i�i)�i�c���KD�y��v��´$
����	!{��E&��{�fA�fB�fE�f�f��c�J¼n�c��·t�h�d��c���c�c�i��i��i��i��i��c�߂F=�Z:·�끷p(���g��g��g��g��g��#��#��g��g��g��g��g��g��#��g��g��g��g��g��g��c���C=����¸5k�f��!!�d��d��d��c���$��¸5�d��d��!I���#��!J�g��g��g��g��!N�!"�!#�g�¹Y���g��g��!O�!M���c���F<�Z·���j�+�d��d��fz»C�d��d��g��g��g��g��b���b���������h�Z�k]�f|�f}���k`�h�h·z�`P�f��f��!H�!��!��!��!��!��d���������´��Ł�6e�F�f��f��f��f��f��f��f��c?�������cF¼g�cG�����cI�cJ�cL�cM�cB�cE�cC���h(�cA�c@�cV�������cY�cX�cW�����"��f��f��f��"��f�¼B�f��f�� ��f��f��f��cS�cT�e
º��������k	�ca�cb�b���/�3��´�#��r�E���e�b���3��´��ꃶ���k�eº������f��f��b��P�b��O�h;�cd�ق[�u´��cf�cg�cw�cx�ci�/�v´��cr�cj�̃��h@�cp�ct�cu�f��ce���W�s´��ck�/�x´��h$�h1·��h&
���!��h%�f��f��f��!��!��c\��	��
����´�
����6e�;�i��i��c`�f��f��f��c_�4¾��c^�7�؂��f��f��f��f����f��c>�ń)��´��:�f��f��f��f��f��f��k�h5�h6�h7�k�k¶��"�c[¼g�B�b�/��8�	��	
��´m��C��W��j�Ӂ����"�"	�hO�hP�f��f��c��쁗���´��c��c��c��c��c��c��c��c��c��i��i��c��c��c��c��c��c��k%�cՅ���´��A��cֈP�o�k(�c�¼F�c��c�¼E�c��c��c������
´��cӈQ�c��că�����´��f��c��c��c��c��k+�c�)��»^�b��c�¾,�c��c�)	����¹��c��c�	�c��c�
�c�
�c�¾.�hQ�hR�f��f��b��t��´�A���f��!`�!a�f��"(�`��ki´�>�!^�!_�"�"
�b�1��!��	��	
��´i��B&����c��c��c��c��c��c��c��c��c��c��b��b��b��c�b�c�b�c��"0�c��c��c��b�������c��c�½S�R�hG.�hH-�b��b��c��b��N���9´m�;
		���"�c��c��d
�d�"�c��c��d
�d�c�f�H¼������c�f�H�c��n�c��c��i��k�c�e�
�c��c��i��i��k�i��d�d�c��B�"��´��:���"4�"5�d�s�h{�"7�"8�h|�c������������hJ4�hL�h~�hK�hX�hY�h\�h]�hZ�h[� ԂY�".�!c�!d�d
'�h]�a#��	�p´�>������)��&�#2�d'�d(�"b�"K�"N�"O�"L�"I�">
�"?�#3�h�¹��h�¹��"D�#5� �� ��#C�#D�#@�#B�#A�#>�#?�k0�k1�#6�#7�#G�#J�#H�d-�dM�dN�d.»̃W�#K�#P�#Q�#N�#L� ��d?
�d@»��dJ�dA�dB�dC�d0�d1�d2�d/»ƒ]��=�����$<���dE�F¹��dd�de�dF�E¹��e����	¶9T�h��h��dK¾���h��h��dL¾�"\�"]�"W�"X�dR�gj�w)��¶;>
�	���h��e�º��e���%��¶>@����i�¶>�e�º��h��h��i�¶<Þ��"k�"n�"l�"E)�d �d!�d4���d6�d7�d=�d5�d;�i�¶<�i�¸��"q�d
&������	��	¶&<������)��&��=� �� ��e��e��#9�b��b��$<�e��� �	¶��i��i��!v�!w�h��d#+�ƒl/��x´�M�(���	� �� ��#_�#`�dV�dY�dX�dW�dU�!s�!u� ��db�da�d$;½�h�·p�#a�#b� �� ��#='�#:�#;�h��e�º���� �� �� �� ��"j� U��� X� Y� V�dS�I(�	�h��h��"s�"t�d�[�����!��´�}L����
���(� � �f�½��f��f�� �$��$��f��f��f��dh�di�$��$��$��f�½�
�f��$��#f�#g�$�� .�]�'�$��$��$��$��$��$m�$n� /�]�.�$�,�$��$��$�� � �  � �#j�f悻»�	H�$�P�km�i��i��i��i��h��G�i��h��M�h��M� � � � �kn�f���»�G�dm�S�dp�d��dq�dv�ds�dr�d|�dy�dw�d}�d�d~�dt�du�do�dn!�h��/º��#k�#l�i��i��#m�$�#n�#�e��º��$��$��d��w��º��jlµ�M�j��j��j��jn!�j��jq�jp�jo�j��j��j��j��j��h��$��j��j��$��$��$��jmµe�M�j��j��j��j��j��j��jr�jt�jv�jz�j��j��j��j��j��j��ju�j��j��js �jw�jx�jy�j~�j�j��b�"�"�������u´�!SK�����'�j��j��j��j��d��¹�B+�$��$��$��j��j��j��j��j��$�*�$��j��j��j��j��$��$��$��$��d��¹��j��j��j��j��j��j��j��j��j��j��j��j��j��d�T�#��¶@!����'�d��w�j��j��h��h��$a�$b�h��h��h��h��h��h��h��h��h��h��h��h��h��$��$��d��������µ����������$|�$}�gW�gX�d��[�d��U�d��d��d��d��dk���dl�j¸L�d��w��¶��|�jg�jh�jX�jb�jc�jd�jY�j[�j_�j`�j\�j]�j3"�j8�j9�j;�j<�j=�j7�j4�j5�je�jf�i�0�j@�jA�jG�jQ�jF�jE�jH�jI�jJ�j1�j2�b2P��Ăہ����h´�
��L����L�d��d��d��d��$t�dȆZ·Y
��X�j#·Y
���d��d��d�1��º^U�$s�d�¿�[�d��d�� %� &�#r�#u�$w�$x�$y�f��f��f��f��e8���º��e9�gº��gº��f��f��f��f��f�º��j��j��j��j��j��j��j��j��j��j��b��N��$`o"��0
&�V+d;f�k³��"F	���%��I�;�fP�fQ�ee�E�ef�fN���fO���fS�fT�fV�fW�fJ�fK�h��h��h��h��h��i[�eG�g�fZ�f[�g�eH�eC�$�x��b�eD� �{~U�fe�O�g�g�fL�f]�c��"S�����LN�fM�fb���Q�e=
���¹;�g�g�g �g�g�#��#��g�eN�eO�eT�eQ�eS�eP���g%�$Y�$\�$Z�"��"��eX��¹7�eB	�eZ�e[�ea�e^�eW���g�g�g�eb�ec�ed�eE���eF�f`�fg�E�ir�b���wL4B^�����7��D�V³�	��R735�� ��0b4"��$�%�e�¹����.�e�¹��0�e½��en�eo�#��#��ej�ek�#�&
� ���#��"��"��"��c
�"��ez�e{�d��º��<���H�#��#��d�#��#��#��b��h��h��#��#��#��6�7�#��eq7��¶T���G�#��#��#��e�M.��·����#��!�%%�%(�%&�%'�er���w¹��es�{���<�i�=�i�e��zµ�S�s�#�=�#�?�#��#�=�j
¸��|�e�¹������#����#��#��#��b�Q����u4�}d�?����³���6��h��<1���#�#�# �e|�#$�#%�e}�#"�##�g��#��#��#'�b�P����q��?��³��Ղ�K;��c�e��#(�#)�#��c�c� a�#��e k½v�!� ��!�e1���e2���e#kºօ�<�#�� d�e!^½u�e/�ekºم�<�$��b���s7
8?]�����6��
;�U³���Rc31&��
ELB
	��4�#�#��e��"��"��"��e��e'�e(�h��ky�kz�!��e)l¹���-���#��#��#��e*�#�B�#�B�#�B�ecK��2��³��݂� dzA��e�¿t�e�¿t�i�¹7���4�#��#��b�¿��b��e4�;�:�#��5�9�h�"��3�#��e�¹��b/��6	�"��>�g?¼��$.�$/�g;�$<�$<�g�$>�c�3�c�5�gG��¶_� ���gD¹;� ���gF�$2�$4�$3�$1�$0�$6�g@¼�	�gC¼��g>��·��~�!��b�����
µR�m�k8�k;�k>�k?�k<�kD�h��h��kF�kH�kE�kK�kL�kM�eΆy·��ۂ/�#{�#~�#}�#|�e�½+���kA�e��e��g� �� ��g	�gx��¹��gy���h��T¹��h��h��h��kS�kT�kP�kQ�kV�kW�kX�%-�e��e��%2�%4�%5�%3�%6�k~�k�gK½��gL½��%.�%0
�%:Þ��c ,hÞ���á�á�á�Þ���ß��M-��á6á7á8á9à�à�ààà'ß��zá3ß�ß�ß�á�à�à�à�ß�ß�ß�
GV*��QádáeáPá[á\ß�ß�ß��#eá�á�á`áaá�ß�ß�
EV*@25	O	á�á�á�á�ß�á�ß��j!ká~
Gá�Gà�à�ß�jß�ß�á�á�á�á�ß�5pI��%3á�à�à�à�à�ß�à�à�áiájÞ�ß끝$�Þ򂙁�ß�à�1áfágà<��à�à�à�à��Iß�p&#��0à�à�ß�	��e��ááß�!à�à�á��á�à�à�à�à�à�à�à�ß�	��à=à>ß�ß�ß�ß�ß�ß�à?à@ß	��à�à�à�ß
��ß��ßß�àß�ß�ß�	��ààá�á�á�àB")AJV]ß���^(
á�á�àà

àà	�Z*àá�á�á�á�ààààà
á�àE%(D�)àj)à��jàC*<E��%á�à�à'"+D��áá�àààà Mp>��ââââà#��Aà!Lo<��à"L��àI�&"rá�á�à�à�àKàLàMà;àNà�à�à�àJàQ�%��àGàHàOàWR��á�á#á$á�á�àU��á�á�à�à�á�á�à�à�W��à�à�à�à�à���à�à�[à�à�Þ�5��4Zvá�á�á�á�à*��à+��á=áCá>á?à-à1��à2à.à3à4àXàYÞ��S$F[/��ß�à8à9à0á	á
ááá
ß�à_ß�à^à�5à�àSàTáß�ß�ß�ß�ß�ß�ß�ß�ß�á-á0á/á.PK�j�Z?כ�	�	vim80/spell/en.utf-8.sugnu�[���VIMsugV����n*@bfhklmnprstwxy @bfhklmnprstwxy@nbfhklmnprstwxyns*tkn*s*sGlsft*smb*kGklnr*sQn*st*y*ylstst*y*n*s*txGnGys*tkflfGmk*sGyl*y*fkGnrst*yksGy*lGtGtksfl*ssGmfl*n*n*s�k
hklmGnstwGxstrkGn*y*lflr*sf�k*sGykn*s�k�sGystQk*s@*lstlk�k�s*yklk�k�s*yn*st*str*k�s*sGyksfltxx*n*s*ttGr*kGnst*yGk�sklmnpstn�r*kQs*kQn*yQt*sxtlGtsftk*n*s*txxlprQsWt*k*s*yGkr*stGynsGmf*sflnGslGm�stGp�k*sk*mn�ssfl*sGy*s7tGxGklGm*sGttlQn*yk*nGpt*n�rlbGn*sn�sG@bfhklmnprstxwxy*l*s?bk�rs&txxr?nkfl�n*stxx*nfr*s*tr*sn*s*tGs�tkGlnr�sttxfln*s*tkfl�nstyxx*mt*k*s*sGy*n?b*yGsnb*slQn*y*kGszwm*n*stxxGbfr*krsGy*l*mflQn
bfk*mnstx*y?tGn�sfln*stxflQnGs*nr*s*tGyfl*yn�l*skGs�tQn*sGkGn*t�fflGnr*s*tGytxx�f*n*s*tmn*s*t�nsGmGtkn*s*rb&txx�lz@�fQhklm*nstGys&txx�sk*y�sGyl*st*yGm*n*sGtxxn*s*tGy�m*nGs�t�wrxf
G@f�hk�lGmnpstxy*s&txxl�mn*stxxtr*l�sl*s*s*y.b*n*s*t*s�ttfl�n?sf*tfl�n*skGm*n*s*t�m*n*s�n*s*tstwyG@bfkl�mnpst�x*ln*s*tfl+sGtbfln*st�xl*szt*yflGs�trnr�s&tflns+t�x*stsGmGt&fGm*n�stxxfl5n�s*tG@flstGx*s*tflm*n}s*tGynt�ttxxfztCf*n*s*t	kflmnrstGyGl�sn+s^txxk�np:stxCffl5ns�t�n�r*mGtr*sGy�kxx	fklmnrs*tflGn�sGn&txx*n*s*yn*lp*sGtlst*s*y�bfl�m*nGs�tx*nGr	&k*l�mGnrstxxGyfl�n*y�f*sGy*ffl5n*s*tfl�ns�mn*s�t�sns*tGs*t*l�mCn*s@bfhklmnprstwxGyklnWprt�wx*f?nmGklk*k�sGy�k*ns�w/t*pl*f&kl*nr*st�yn?st*y&sflGn*sGyGk*l^nGtGyn*s�n*s*t	fl*mn�s�twxpr*sft*n*sGt�wxx/y*l*t*n*t*n*tln�rs&tymGn*s*t^n*s*t�kt*n*s�tftp�b&klmnprstx&y?f&k*nr*st*m*nr*s*tl�s�s*np*stlnks&tztstxx�nfr*s*t�m*n*s*tfGnrs*txxtnGs�tl*s&smnxt!pQxVst{lG@�fk�nst�w�x*n*s�t�kQlGn*s*t*n^sCtGyCfl�nGr*stxxQns*yQnflGn*s*tn^s�l*s�tbfk*mn&prstxCylQnt*yGm*nr*s*t?k�ksns�txxGy*n*sGt*kGs�t&xsnGs*t�ntnr*sflQn*s*n*s*tGy*fkGnfrGs*txxs*pn�l�rsnrstCx*n+s�t*y*l*sQt*kGmt�kQl�r*s�fk?s*y*t�x
bhk�lGmGnp[rst�wGyWnGtGxn*sGtt^tl*n*s*tkflGns*tl}s*yGm*n*s't�r	 ffl*mnp*s#t?h*l�n*sGkGs*tr�x	fk�lGn�r*stGyl�n*yrt�ss*mGt*nOs*t�kl�m�nprstw*x�y*n*s�yl*s&txx�b?m�nstxxk*n*r*s*tr&b�p�fk*n&s*t*ytxx*f*n*s*t*n*s&t�kn*tr*s�n*t?@b�fklmnpst&wxyqnflnrstxxst*m*n*s*t�x*y*m�spstxxlsJt*nGr*s*t&st�b�m*n*s*tn*s*t&t�xf*n*s*t*sft�k*n*s*t�bfnp*s*tx{s�xl�m�n@fkl*nstxsWtmlrs�stQl�sft{yrQn*tl*nr*s*tk*ysn*s*tr*stsmnmsGmWtGmn^sttr*k�s�km*n*s*txx&txxknr*sGtxGyt�t�pGkcf*n*s*t	x@Vb�hxmGn�p*s�t
bfhklmnprst�x*ls�tkr&bfl�n�t�l*n�rs*n&p�s*t*y�k�np*sGtlf*n�s*t!k*s*t/yst*stGyf�nftflm*r*sn�tlnrx*n*s*t�y�tGn�tlrsb*n&txx�rfl5np*tQs
�f&km*n&pr*sct�yl&t�x?kn&p&st&x*k*n*t�@bfQhklmnprstwxyG@lGn*s*tft*ylGt&pGl*nr&sGt*s&tGfk�s*yfst�fG@�ksnsGn&st�xflQm*sn*s�t	f5k�mGn&s*t�wGy�k*sGt�kQl*n*sGt*kflm?n�sGy?n*p?lGtGfGk/p&kGln*st�nt*n�r*sfl*n�r*s*t&kln&r*stxxQn}s�t*y�kGsGt*n*s*t�wGbCk*lGmn�pr*sty.m*s*r*s�r*s*t@mQkG@bfhklmnprstwxylm*sGtGwQn*st*y*sGx	*bklm�nr*sGt�l&txxn
s�tn�sGk*tGxmnttGfkxtl�ss�tGklPmGnGp*s�txx�mtxx*n*r*s*t�@bfhk*lmnpstxyrGm&txx�k*s+t�y*kCm�k�stGy�ks�s*n�r*stxx*nrs*tGk*sCt&s�tGffl5n*sGtxxflnr�s*t�xGyxkGn*s�txxGlzn�txxlGns�kt�ks0slpGt�k5t
*bklmnpxrstlbl0ntxx^f*n*s*txn�kstGm�sGt*n*stxxCflnGscx�m�s*t/ykpr�p7m*stxx�f�n*s*t5@>bfklmQnrst�wxGy�kGlnrs!kkn7s�fGklprGsGt�xs*yGm'tnt�nf*k*sGyk*st*y�b�k�m*s�t*yOkfr*s�knst�wGy�sGy*n*sGtxxWlr*sGyGkxQn�b�mn*s*tGstbm�n�stxGyl*k*l*s�kfl�sGt&n	�b*ffln*s*txGyGnsGt*s�xGy�nlGnxr
Gkl�mnr&st�x/yGk�nQ@ksGttkrp.sxn�l*tnxx�x
bfklmnpxrstxyQklstk�n*y�k?s*y�n�k*sb*nr*stxxGk*sstfr.kfl�m�n*s*tw�mlstxx*strl�s�s*yfl�n*sys�t�ffl*n*s*tk*s�tkn*stl*k*yGl�sGtGy0slmGnGst�ysyst�k�sGys�m*n*str*l*s*y�lGnr*s�tt�kfn*stGxGyfl�nft*stWr�sGklfk*fflGm5nrstr0ss*m*t*n*s*txxGymGn�kl*s'tGk?mGt@bfhklmnprst	�wxy�m	bGkl�nr*sst�yGt�y�kGt*kun@l*m*n*r*st�l�n�t�xGn*s�xblrmst�tx*nr*s*txxtxx*f�n*s*ttxx�b�f�n*s�t*nr*s*txx*lGn
�fklmnrstx�tGbmOn�ps&tx*n*sRtxxf*kfl�nstnfr*sn*sGyk�stxx*f*nfr*s*t�s�t>bm*nstx�n�n�f*n7r*s^tGn�txx>b�fGnGsCt
�bGf�kflynrs�tGy�kQsn�l�skGm*nrst*y�kGy�m*s�txxGyWtGlnGr*s�txxfl�t*@�kflnp*st�b*nGs*txxl&txxf*nr*s*t!k*s*t/yflQnft*y�k/s�l�mGn�rGstl*nr*s&txx?sft*y�k+s	�bklnrstx*stxx�bnr*s^t�xfls�t�n&txx�bknrstxx�btxx�f*nfr*s*t�b*n*stxxfr*s*t�x�b*n*sRtxxCf�t�bGfQk*n*stxx*f&knstxGtx*l&txx�b�f*n*s*tb*n*stl*sztGrnfr�smnpsRtxGyntl*n*s*txx�s*ys�xb*n*s*t�rb�ffl*n*stGw�l�nnls^sGm't*nGr*stxx�lfr*s*t	b*flnrGstxl�nt*y?s*yflQn+s�t&txx*yfl*n*s*t�n�sGn&txxb�lsVlflQn�tbfklnprstxxyl&txxt*y'rlt*lGnn*s*tGx+s�ttWrr&txtxx�n*s�tn�bl*sQn0s*y*l&sGyb^fGm*n*sGt�b�mnxr*stxxflGs*tx
�lflOnfr�km�tCfklmn�prstx�lQnsGn*n*s*t*ynps�t&txxr�nrs�f�klGnstxrsQt*yb�f�m*s�l
�bl*n�p*stQn*s*yflQn�p�b�n*s*tfklmnprstxx*y�hks&txxun�kt�x�blkp3rtxx�k�b�f*n*s*t�x�k�n*s*y�f�l�nrst*l�t�kGmGt�r*sGysGt�kflGmQn�lGnyrPms*txx*fln�py�l�ss�tnr*stxxrflQn*s*ystt�rr+l�b*n*s*tGn}s*txxGy�f�k*n*s*tnGrfr�s�tGkn�k*n*s*thkmstytrkOsnxtGstxxGn*s*t�rlt?fGmyxls*k*n@bfhklmnprstxylm�f@l*sQkl5n�s
t*wxx?ns*yGnt�rflnsGt�lxr*sk*sllkQnrst*yGf&kOnsxGy*m0sn*sxk�lmfrs�t?n*sGt*sGt*k	�lrGsGtGps't	*l�m5n	�rs*t*wGyGm*sGtGkGm*st�kn�r*s�y�t*f�m*n*s�tGn0r*s*y�s�xGr*s*tGb*kGln*sGy�b�lGn�r*s*t	bGlGm*npr*s*tk*s*t*ytxxl*sk�k�sGyfWl@bfhklmnprstwxy*kGm*s
hk*lCmnr�stwGk!nGrGn}sGy�lGm*sYtx*yGnGt*n�r*s*k*n*tbfklGmnrstxt�krs?rtpr�t*strGffl*sGt*yG@f*kmGs&tsx?lr�kk's5tm*s*b�t*f*k*nfr*s*t�n�bGlmGnGs.b?r*sb�fhkl�mnprstxwxy�lr*s�k�sl�n*t�k}s�lsn*s*tG@+n&s+t*y	Gbk�m*nst�wGylGn�t?f*st?rflGr*sl*t
+sGy@�fkGns+tGy�m@l*nGtn*r*s't*st�r*s	bfflm*nr*s*tsht@fklmnprstWwx*y�mrp�st*y�kk'lr*s*tyxxGs�t*nxlk�k�s*ykln*stxx�lkQn*s*x*yr�f*mfQs2lk*nfr*s*tr+fGmkmy�snsn*s*t&st�k*sktxynt�k}s*f�k�rnk*l*skrfGm�k*yfksfl*stf7tflkrfGm*k*sGylstGk&t�x�t�ksJpk*st�k'pfr*s�tGy�msxy�kn�kln&pm�k&kmGn�ks�t�kn*sGyr�s*n*t*yGl*sGt*k*s&txxbhkn�prst�wsxGk�rGt?sGtxrsGt�bGkflGmsn?rstxxGy�l*m*sGt*fl�nr*s*t8s*yflQn*y�f?f�m�ty�nbQn�r*sGy�lG@bfk�lmGnGrstCx?mls&txWn�sGn*rOnGyGn*sGtGk*l*mGn*s*t@TfGk�mknQprstw*k�s*y�nps?r�x0lm*n*s�tk�s*l�fGk�mn[s�tGxGyfl*s*tbfhCkGlmn5prstwxxyC@QtflnGsGtGm*r�lGrGrGsGtGnGs�txx*y*sQt
kflmnprstxxfl*s?tWr*sGt�fGs�l�m�s�txx&st*f*n*s*ty	Vn*@h*l*rkGn�lbfhk6lmnprstw*xrGn*sGyl?ns�xGt*w*m�y*@?lGr*s*txx�n�pGr*stflGm�r*s�b*kGnGstxxffl*n*s*txlGs�@bf*hk�lmGnprstCx*y*lWslst�r*sOt?lmnrGs�psftGf0s�tkRnxr�trskp*k*k*st�b?p*fGmn*stGyktflr*s�fr*sfk*l*s*t�x�kr*skt�r�ffl�mGn*s*tGlmpt*@�b*s*k?s�r*s�yflGmQn*sGt?lxm*n>bGf5n*s�t*lmn?p
�r*s�k�sGyfrs*kGt?bmn*ps*txxpGkGn*sGt	�fGmGn*s@bfhklmnprstGwxyy]sbfkl�mnrstwx*n*s*t�xsl*k*n�r^stxx*r*sGy	fkmnstx*yQr*s�l*s*n*st�k?ssGt�m*s*t�wbGmcn*s*txx&nr*s*tGy�mGn*s*tck*lGsGtkcl*nst�xyGl*sxx�b*f�m�nGr*s�t*l
r*sklWn*sn*kQs*y�kkl*m	�n*stGy�s&t*k�m*n*s+tr*s�x*lGs
�bkl�mGn�rs*t/ystr�stm*n*s*tOnxm�r*sGnGr�s*t	@bGl�prstytGr*slGn^skQn*st*y�f*sflGm�n&s�kxms�mGl�r�s�t�b�l�mnrs�t	>bGk*lGnr+stxxQn*s*y^f*s�n*s&txxGysGty�l�s	k�m�n�rs�txxGym*s*s�txx
Uffl�nn�r*st8r*s@bfhklGmnprstx*lrfplnGst*y*n*sGyWs�rs�ttx�mGklmnsbprztm?s�t�k*ss^t*m*sGyrtssnGs�tGh�k	�bkflnpstxxslGstflGsr�txxs�xGf�n*t*s*t�y�bfk�l�m*nr�s*txxGysns*tWskx�nGkGn*p*s
@fklmnrstwx)y*k&stGy�kkr^stxxb*ffl�n*s[lcx�bntxxb�m*n�s�f*n*s*t
Ufkmnp�rstxxy�b�n
Htxxntb*n*s*txx*n*s�t�bbCf�m*n*s�t�l^kfl5n*sGt
�b*n*s*t�bn�sunGt&l�m*n*st'mnr*s*tGyGs�tb	rlbfklmnpstx�bmb�m*nsZt*n*sRt�x�ln*stxx�b&txxk*n*s*tb�llQnft*y�m*ns*t*yGm�t�p*sGt*stflQnrt
�b�f�l�mnGrsGtxx�m*nGs*tflGm�nGtfunr*sGyQk*lQsbn6lb8slQnt	�bflnp*s?txx�bfl�nt*n*ylGs&txxzt*yt�b*fb�fGkfl�mnQrs&txxy�b*l*@�n+stflQn*sGyfl�n*s+th*n*smn?t�m�r*sb�l�mn*s*t*nGs*t	klGmnstxxyn*ssGm*n*s*txxst8y*m*t?k*sGyG@CtflGm�n*st/l*s*kGs�l*s
�b+fkxl�mnr*st�l*sflGn*s>b*sGyfl
�rGs�tb�fCklCmnrstxGy�lGt&st*y�kGsGklGns�tx*yQnzt*yGm*sfl5n�b*n*s�txxGy�ffl5n*s*tGnGpn*s&txxl*sszt*yGm*n*sGtkl*sGttlpGsTk$ @bfhklmnprstwxy
�f�klmnrstxkQnp*s*y�k�sGy*n*s�tktGy+b^nk[s?tf�kclcnpstWtklmsGt�nk�k�sGyft�ksGm*n*srGkGy�n*n*sGt�n*t�fksfl*ysGm�t
fhkl{mnprst?w�x?r*st^nTlk&l"mnGs*t�tx�nn?s	f&kmns
tx*y�b�n*s�n?xk&s�nGm*t*n*st�l*n*s�t�t@>bmfkntxx�b*n*t�b�nGt?t?x?lGn*s*t?bf�k&m*st�bn*t�trkt*f*t
�b�f/k�nr*s�t�w*ys^f@bfklmnrst*wxy>f�kflm?r�b*tl�mGn*s+t*yr�bGt
bf�klnrstx�b�n�m*ns&t�x�ytxx�f�txx�b�n^s*tGy�bCf@l*n*s�t�n�s�bfk�lmnprst�wx*yl�m*n?r*s�t�b*n*tns�t�xfl?s�bGn*s*tb*n*sRtxxl*stfl�r&stxPr*s�l�nb�m*n*s*t�l�ssf
�t�bflGnr}s
txx�n�txx�n?s*yln+r�stxGyflVrt*y*s*tGyGk*n�t�fQkr*s*tGy�n*s*yGl�nk�l&mstx*y�l*t?x�b�f*s*tGy
�bfl*mGnrsGtGy@l�n*s?t*yGs*tyxm*n*smGt*lGn*t�bfk�l?mnrstxx"y�b*tln*s*txxGs*y+stfl*tm*n�stxntl*sl*n*s*tQn?s*y�lcs+t�b�n*str*sQykt�rmf*m�n*s*t�x�b�f&kl�mnr*st*y|st*y+s�t
bkfl�m&n*s
�txxGy�b�txx	bflnr�s&tx	rl�rflQn*tstfl�m*s�t*ns�t*y&n�ln?t�b*l*n*s*tl�nsxik�klskbf&klmnprst&xytxxb*fnfr*s*txx�sGtms
@*f�npst?wxx*y�fflQn?s*y>f^m*t*fGn*s*t	 mfkfln�p*s*t�ln*st�kflQnstfl�n*tGk*nst�b�m*n*s*t?l*n?rs*t*y�m*tflGn?s*t*y�kml�n*stmb�kfl5nr*s*t�kGs*np*stt>bVl�rMt�f�n*sGt�fktWnr�sGt@bfhklmnprst�wxyflQn?rGkl7rGs�txxGt*y�k�ln�r*stxx�b*s*t�t*nr*sn+s�t�mnr*stxxflGsGtfGm�k*s*y�b*f*n*s*t&@�bfGhklmnprst�wxy	GbGl�m*nr*s�tGxn*x*klzn�s&txxGyb*yNlfk*y?b�nrt�sGk�lmGnstx*nGtfl*n*s�b*s&tLs+t*xf�k*n&pGr�s*t�bfl�n*r*tf*k*n?r*s*tGy�b?t*lxmGnswp/kxmGfbf*lGmnp�r*stx�mnrs*tsGt5n*tt�b�tkfls�t�bt*f*tr*tb�tl*sft*yl�mnr&stdkmMn�t�x�n�nmstFbhmsn�sMtxxMs,b*n*t�bn�t+s�t�b�k*n^s/tlrs
bfklsm|nrstwx*y}lmn?st�btGyns*tx&s�t�n,b*tkl�nrms,txx*l?ts*y�f�bn�s+tGstfl?kQn?s*yGn^s�t*y
�fkl�mnpst�ynmr�txlQn7t*y>b�t*y�b�nGs�t�kflQntns�t�nrt>b�k?n^txx�xFb�fl�mnrsRtxGym?s*y�n�bns*t�x�bfl*n*t�t�x+b*t�n*st�b*tn�l*s*t�bn�bGn*t�bl*nrst*n+s*t�b�l�txx�lt*s&txxGy�lG@bfklmnpst�wxy6lmr�b�m�n*st�bflQn*t*st*yn*sttxxl*nfr*s*t�x�s*yk�lfl*n*stGkfl*tt
�x�b*t
�b�ffl�m�n�p^stGyfl*n*s*txx�bfkl�n*s�t@l*t�y�l*n�st*y�b�mGn*s�txx�p*s�bhklmnprstxst brst*s?t>b*tfl5n�ty�t*k�nlpGs?t�bdklGmnr?stk�n?rs?t>bts?t�fns*tsb*s*tb�f*tlQn*szt*y+bfldn*s*t�b&txx�bfl�np?stxn�b�lb*n*t�bf*kflmnr�s*tGy�bfl�n*tfr�ts�t�x�k�lGmn�b�l�n�s*t
+bfk�lmnstGyfl
txxfl*n�r*s*k�n/stflQn�s*t�l*sGtbGk�mGn^s*t b*n*s*tbfGhkflmn 	pst�wxy?lmrb�lcn*s*t*lWt
�b�kl�mnstGxGy�hQn?s*yGkfl5n*s*t�b*f*s*t,bn�t�t�b&kl*n*st0s*yfl?r*sn*st*ns*t�k�m*nmr*s*tcnr*sGt�yblfr*tlQnt*yQy�b*nst�bn*sGt�xt*m*s�k�s@bfklmnprstxGyfl?rt�kf�klr6xl�n?x?s*t�b*kl*nQs�t*s*t*y�b�lnst�b?ft^f�kGnst.wGyfl*mGn*stxx*k*t*kfr*s*t*yrt�b�nzr*sk�l*n�r*stx�b*t	�b>fln?r*s*txxs*y�b*tn*s*t�b*tlrstx?fmynUt�bGt?f�s*t|n*t�b?n*t�b�l*n+stxx*f*nQr*s*t
�b>fklGm�n�r*st"l*n*s*tk*sGy�b*n>bfkl|nprs�tGy�b&txx*s�tt*y*k*sWt�k�n?st�b�mn*s*t�k�ls@fhklmnstxyxs�t�bmklms�t?f�nt�f�btbt�b*n�tGh?klmprsWtxx�y?s*x�bmr*tympt4yn�m*n*tmn�s�tsxkmlm*np�r*stwxx�n*s�rlnr*s�b*n*s*txxmxmk�rGkl�mnprs�t?wxxGykFb�n�tflQn?tzxr�s?t�bpst�b^tt^n�tmptr�l�b�l&txxmstfl*n*s*t�x
bfklmnprst�w?xl�s�x?m*t?k�m*n*st�r	kmhn[rst?x�y,b*n*st�k�b�nsmn*t^t�b�k*tnxk�n*st?x,tl*nVr*stbfkllmnprstxlmstb?k�ln!�tzx�t�rtk?smpMstt�tnst�slp�bfl*s*tr�sQx�t�t?fk�mn�rstr?b�t#�n�fkn2rstFb�f*t�t6xMt�bt^f*t�b�fGn�p�st�bGk�r*s*t	�b�kfl�mnrs�t>bflQnGs�t?l�t�nbf|hklmnpstwxy�k[l*s*t?k&l?m?nr?s?t?w"�kn�sfkmlnst�rns�b*n*t�l?rs�lt"�rGk*st?r*t�b6fGk*l*tFb�f�mnst*y*sMt�b*m#Bt*s*tGy�k"�mntmr�t�n�t�fkflstl*t*t*y?mnrstt�n�bstnt
�t�s�b&r*t	fflnprst?x�f*y>b�nGs*t�n�ttn�nr*s�b#�k�n*t
+b?f�k�m�nLs*t?x*y�t>b�m*n*s*tGls�m@bfklmnprstwxytx�k
�sl*sk�sGy"�kl�mrst*ktktn?sx�l?t�ln*thtxxl�mrst?yk*np?st*yrfGm*k*y@*k*sQtGy�b*k*n*s*t*yb�ntmk	?@lmn�prst�b>f�m*n*stmn�sf*k
sGtsk&bmkflmnp*st�w?xb&l6ltxx*f�r*tSb�n*sGy�ls*t*y>fGt.flrs*tGm*n*s*y�tbf�k�lGmnr�s�txx*y	rl�r�bk�mn*s*t^xn6ss�t*kGs�t*s+tGyblnp*s*t*x�l�n?s*yGkfl*stxx�b*n*s*tl	klQn&prstx�bt�x�m*n*s&txx�b*nr*stzxfl+tfflQn?sflt	fflmnrs*tGy�ksn�tflGs*tGlGn	�fk�l�nrstx�b*ntxx�k*n�r*s*t�bns&t�x?y*kfl�n*tf^s*t*k*tmb�fflGns+tm�n�lGnbk*lm5n*sGtl!7txnfr�s�n�fnp�r*st>b�l�tkmnt$ht�bnr�s*t�bflGs�t�lGsGy
bfklmnprstCxylQn?st*y�l*t*ym*n�r*s�txx
t�b�m�ns�txx*y>b$�l�n?p&s	�tkflGm*n&st�xt�f*l*s?b*ln*s�tGyfl^s�b?l*n*s*tk�lmnp?stt�x^f*n?r*s*tn*ttl*n*s*txxst*y*k*n*s*t�k*n*s*tGyffl�n*tk*tMytWrfl�mGnstx/y*ffl*n*s*tnl*s�s*y�l	�@f�l�n�r*s�t?y�n�b*ln*tkmnsl�k*np�s*tt*k�slp*stzk@�s�t�k�rxr�ntm*n*s*t�nWt� @bfhklmnprstwxylmQn�rGsst�y*l*m*k*l*s*y�b�klWnrGstxx�mstGy�tGktGx*n*s*x>bGk*n*s�tGy*@fklmnrst&w�yskx�n�l�st�b*n?p*s*txxfln%s*t	gb�k*lGmGnstx�bflm5nQr*s*tntn*l�sGlmnGs*tkt�nr*s*kGyflGs�tmx�b?fGn�s�tb $kl�nshtxx*l�rst*yGm�n*s�txxxflnGrsy&mt*n^ttxm�rpt2n�@�bf?hklmnprstxxnmn�tl*s&t�x�nxx
@bkm�nrst�xGn*sl�s�tQw9kn�xk*t*yl8s*kxm*s*y*fflGnr*s*t
&lnp*sWtGy�k*n�st*lfr*s*t*y�s�t	fk�nrstxxGyl*txx�s*stxx[f*n*s�t�xflGmGn*st�k*sUtGyfl&n*sGyt#lG@,b[fGklntpstxGy*stxx*y$�l}sGt*f*n*sGtGykn	�bkln*stxxGy�ntxx*n*s�t�n�b*l?r*t�bfGk�l�m5nr*s'tGy�lQns�nbfk�mn&prstCxy�l�r*n�r*s*t�b�knr$[stGyGstflGx�@*flQnfr*sQn|szt*y'k*lGnGs�t�bun*tfl5n*sGt*nmr*s*t�m*n�r*s
b	�fklmnprst�xGy*l�m*n*s*t*l�nr&s*t�b�tkQn�r?st*y�k�l�sGy	�r�b	>b4f&l*ns
txGytr�bt�fn*t*l*tr�n�tGk*s*t/y�bGl*m*n*stGymk*s*y
>bGkl*mnr*stxx*k�txx*y*s�tQk*l*mGsGyfl�nfr*s*tG@�bfklmn�prstxSy�kl�m*s�bcl�m?n�r*s	�trs*ynGy8sGt	�r*s?t*l�nx*y�m*tffl5ns+t!kfl�n*s*t/y	fln&r*stWwxx�bfl�n*t�k*yGsGtnGp*s*tl*s*t�szt*y@fl�mnprst�wy*sWtGymft"cmnpstxx�ytfr*s*t�tWm�b*f*n*s*t?lGn*st�b�n�r*sl*s?t�xf�l�p*�rst�l�n*sWt*yb�f!k*n*s"qtxx�np*sGtxxy�r*�x*f�kGl*mGn*s*t*n*�r@bfhklmnprstxy>f�k*slGn�t*t*y?l�mn�rs&txx�s�bk�l�n?s
?hGlmnrstxypfn*k�lGmr�s*tzx�n7s&Ct�x*lp*sGyml?s�bfflsnr*s*tflQn*sftn�l�sn�sGykGnstx*ys*y*n�r*s^tn*s�xsflp�rstGx+Rk*n*s*tl�m?y+Rk*kr*s$p
�bfkflmGnstcxst�m*n*s*t�b*l�npn)m
fkl"�m�np*s
`tGw?m�rfl
n*stb*t?s�tPfQks*y�t�bGf�kl�m*nrstxxGydmbns�txr*s�x!	ln*st*t�x*nt�x*l�tb*ffl*mGn*s+tzk*s
�bCfkl*mnpstPr�skt�l�n�ntr*k0s
EksGtWf
�m^n�r*s�tw*y�@�bklm�npr&sGtzxGy*ltxx*ffr*t�s*k�l�stNm�f*n+�f*lGnGtxf*sGw
�@bfklmnprst�wxyk�l�mktfflft*n�r*s�t
*�b�fl&mnprs&txs�t�t*nQt�k�sGybm*n*stxxgbntxxfl�nflQnrl*s*tnl*s0sft bfl*n*s*tfr*t�nt?y�bfl*nst*l*sGyflWr*tlGmnstxx�n*ls/t�bf*�m*n*s*txxk*tfl�x>b�f�k*nfr*s�t�bGmmp*t�ffr*s*tb�f�k*lnr+st�x*yl*tftxx�k�lGst�x+bzl�n*smbGfk'Mln�s*tGyt�b*r*tk*@*k�l�m*n*s*t�y�b?k�lGn?tkml'nbt�nQsWt�r
 �bfklmnprstwyl�n*xp*yGnstxx*kGn+t+b*f*l*n*s*txf�m*n*s*t*yk*ln*s�r>bs^txGm*stGy*k*s�n*km�n*stnGtzxQk*l*tn(�rtbt&m�hk#r�s�t
wt*f*kps*tdltblxmntxr*lGn*s*t&n*np*s�k*s
*b�f&k�l&nGp�rst&t
b&klPmn�pr*s�t^ln�kk�ls�bGn*s*t*m*sGtGb*fsGt�xxmGnp?r*s�k*t@fklmn?prstxflQn?s*y*nMr�b?n*tkntmfl�n*s�lQn?s*y�bMk)Mt�bflns*t*y*s�tflQn?s%tGkfl�n?r*s�t�b�f*t&@bfklmnprstwCxGyxEn�bl*n*s*tGyr�s+bl*nrs*t�tn�st*yk*s?r*s*tGnr�tk
&nk�m*n*st�b�n[s*t�m�n�r*s�t?@fl�n�p�r�s*tknst*strs#Btk�m*ns*tb�nGm�t�m�t�x�b*k*n}s*tGmt*kflsGf*nfr*s*tCm
x@@bh�k#�l�myn�p*s8tGwx*r)f@bf*hklmnprstwxyklGmr�s�tGyGmr*lGm�srGtxn&t@ln�r&tly�kr
�s*k*lm*sGyn*l*n
fGkl�mnGprsts�tyxm*s�w9pGst*kzrfmGn*s�ty�k�sGy*s�tf@l*s*l*n*s�t�y*n*sQtbfkmnpstx/y*lGyt�bGk�n�stxxGy�f�k*sQb&kflGnGrGstfl*s*ys�tunGsGt�f�kGn*s*t�kGn*sQ@k*nstQs�t�k�bfhkflmnpst�w,�xyxr�sGmnZttt�n*ls?@dn*st*s^t?xk�ll*s*tQr*fk�m*n*pst*l�mGstm*s�t
�t�m*tlritklsWtW@xtbfhk&l*mnprstxGylr*txxGm�sGl�n*s*tns&txx�b�fsGtm�txxGstflQns*n*s*t�xr*s�b7sYtxx*n^s*t�f/kGl�n*sGtf�kflGn
�s*tFbGk�n*stxx^f*nfr*s*t�bfk�lmn/stw�xy*s*t/y&l*np*s*tlsGtGn*y�n%mp*s,et*st�r*s
Gfhklmnr+stGy�b*k7r*sGt�x*y*klk�kGy*st�n�fGk*m*n&s*tGn?pGxkl�k*n*s�t
x@GfklmnGprstxx*y�ls�lGyk*s*yt#r�klGm�n*pst�kft*yGm*n*s�txx�rfl*�ns+tGm*s�t�fGl?n*sGt�nQr*s*t�b*f*n*sGtxl?n*s�t&k�ln*sGt�l�m*n*s*t/lQn@bfhklmnprstwxymGnr*st�k&sxx*l*stQk*s�klnrstGyfk*st*k*sGt/k*yGk*m�sGtGk*s*y	*bklGnrst�x>b*y2k*sGtn*syGs�t�xn
k+b*m*sGt+b*sGnGr*sGty@�m�bflmnGprstxxCy $r@fl�m@r*s*t�r#n*s
#�fkl�mGnstxx*y8st*y�l*s�f*k�l*n*s*t�fGm
�n*p*s�t�bGnWt*l5n*s*txxbfk5ns�tGx*y�k4nsGyflQnGtt*ks
@fk
�lnGpstyrp�sWtGy+b�n*s*t*k*stGk�s>bk/l�s�lQn*s
�bfklm�nfrstwxxGy�rGx
�bl�mGnrst?w*xQnGt*yGb�t~n*s*syQsn�s!�k*lGmQn*sCtGy	�b�kl*nrs&txx�s*yGn*tGy�m�kGrGt
GhlGmn*pr*stxxGns>bGm�krs>b�st�xsb�f*n*s*t*k*l*sGtbf�klQmnpGrst�l*sQn*r�f*s�txxGn*st
rknGst*ts�b�f�k�st�b	�b
�fk�n*stQx�yrs�tQkCl*s�bklmn�prstxxy�bfl*s�txx�k*s*y7b�n*sGst�st	�f�k*lGmGn*s*xGy
�@Fbun}s*t*ffl�n*s�tGy�nCk*n�s�t*lxmn*s�t�w{f�l*sGt@*lzn�ps5tmrQk*l�tms�y�yp�l@bfhklmnprstwxym!�n*st�l*nTpGs�t�k�sxxkl�n�rs
tflGnRs*st�x*y*tGy�t	xhkl�nrsty*lGsxxQn*s&t*y�kn&txxt�lGxGl*sk*ns*l�n*s&txx	�f�ls�t
G@b�klmnprst&w-0x*k*s*xGn&p*stxx*n*s�txx*k�n*s�b�m*nmrGs?txx�bl�m*n�sGtk�s*y�bGlp*sBt�wGx�txx�l*n*s*n�r*s*t�bCfk*lmn*ps1tx*y*n*s1�t�bfGk�s�b*stGkGn*s�kflQnn8s�@b�f*klGmn4�prGstlGk*n*s�tyxm*s�w�b@l@r*s�t)=xfl*sGt*k�lSs�kr�k*yfhklGmnpstx'lrn�tGw*nr*s�fzkGsflGs+t�yGn*sCt,nr*s*t*kWplGnQns*y	klnrstx/y�n*st*l*n*s*tG@n�r*s�tGk*lGskm*�npGs
t�x*nGst,r�yGl*n�sGt�kGm�rsGk.t�lGn�l'n^stGy�b?fk*l�mn�p*st�y/t*fn*s�tGs+�t@bfhklmnprstwxyryt*k*sQtTm?kl�n*m�scx!klln*s*t�x/y�bGs*lzslm'n*s�s*ytGk�szk�n*stGyhGs?ymbn*stxxxf*sGt*f*nr*s*t�k*y�@�bGf*k?lmGn(stx�n?s*k�n*s*txGn^s�m�n*s*t�@�k*lsr*s*ybfklmn�pstxGyl�kGmtykrlfs�k�s'@xh*lm'n*sQp	Gbk�np*sGtCx*y�k�sGy@Qkxs*s-�tckmn*stxx�k*sGys�t�k*s&ks*tGm*n*s*t�f*l*sGym*s�kskfl�np}s*y�m�m	�f*kflmns*ty*l*s*yGst-�k*nst�r�lGt!7@Gnl*nGnxlnstQr�lxmGn*p�sbGl�m�nr*stwx�yn�l�sf�l*n*s*t�xfl7t�tn�lsklmnrs*tl�nGf�kWbm	�sOnptt"cm�t�rxrns*yflGmlGn*s't @bfhklmnprstwxy*ls�t*b*skl�nr.OstrGs6�f{n*sJt*yGk/t�k*n*s
&bQfkl�mn�pQrstx#�y
stxx*f*l*n*s*tn/�r*sGt*y&kGscst�fkrsx*n^s*t*ns*tfl*m�n*sGt*l^s�b*l"�m5n&�rst*kfl*sGy*n�r�s*t�lGn
Gh�lGn*pr
`s*txxy�n*s*tpinb�fklmnrstx
�y-lTs*st�f�m	�b&fk�m*nstxx�k*y*ffl5nfr*s*tp*s*yl�t�x	fk�mGnCs�txx*yktmtrt*ffl*s
G@f�k�lGm*np
s�t�wxx�y*k*n*sGt*y5k*ln*stGys�t�b*f�m*n&s*t�x^fkl*�n*s^t*n�txxysWt*sGt�n�@�b&fknrstwxxy�k�sGtGy*k*nGstGk*n*s�xGn�syxm*s
b�fGkflGm�nrstxx�k*n*s*tflGnr*s*tGyn�s&txxGy}sGt*n*s*tx�p*nGsWtb	�fkGl
�mnprstx&l�r�kfl�rs*n*s
�tfbf�k�lstx&r*str*s�b*ntxx�f*n0Rr*s*tflGnfrsGy�b�m�n*s*t�rt�n*s*t>b-l�n*s*txx	�bfk*mGn*s�txxr�k*s*t&l*s*fk5n(<r6�s�tG@bfhGklmnrstx*y�l*s?l
r*pypfsy�nst*y,bGk�n�sGtGyGsQtfl
nrsGyGl*sGy	fk*lGm*�n�s+tGy+b!kfl�n*s*t/y@lsGt�kn�l*sW@f*klnrstxx*ym3MsGt�y}s&tGn?s{t*n(�r*sGt�y	�bf-�kfl*�ns�txflQnftn�sbf
�hk*lGmnpGrstxGy�lt�x�b�f*n*s*t*knQr*s*t�y*st�rRf�n2rstCx*kflQn*y�b�f*k�n*s*t'kl*nGs�tGn*s*yGn*s�tbkflGn�p�s+tlGnsr�fkfl5nstxxr*sf*k*s*t*y�n*sGtbfklmsnpsty*l�n*sGt|l*n*s*t#Bp&rsGtt�xyb*f*n*s*t*y*l.m*s&tk]n]r"qtxx'nfl5n*s*t	�bk$Rnr*s*txx&yflm*s&ps&xGyk�pn*skrs�t�bfk&lcn&prst�xyfl*sftflms*kGn	�flGmn*s�t�w*y�s*y�ks�fplnt*s*t�xkt*y�f{n*skn*s�t't�x�l&sGp*s	*@&kln/r*s�tGyGfGt*s�t
�b�k�mn�p�r*s&t*yGk�l*n*s*t	@f&lmn!dpstr*sGtlfG@f?l�sG@lf?l�llfnG@lffk*s;�n�n;�slf;�w@�bfkl�mnxprst*w*x�n?s*y;�l*snGs*t8wGn*sGt^x�b�nrs*t�xkpMrGk�n*l�mt�r3*n*s*tw�n@bf�hklmnprst�w*yyf$�lQn�s7kk�ln*s�txtZr�pp�r*s�b�l�m�n�r�sGt	�bhGkflnrtGx�b*m}s�fGm%"k7m*sk�n�r*s?t*y�k*n�sxxGyClGn*s�tkflJmGst'l�m*s�l�rstkp*l7s*tr	XymGnsGtGy*s#tt�k*sGmGn*str*s�ln*s&txxfmk'nrsxy*l�n*st7m�n�r*s�yG@Gf*s�sGtGs*yp�k*l*sbf�hkl.m	�nprstw?x<By&l�rGl'txb�l*s�x�fns&tGx*s?tbzr�nGs*x*s.x�nGr*stkWlr*sGxGnGp*tG@GlQn�rptGxG@CbfklmnGprstwxyQlGnr*sGt�x*kOsGyh�k�l�mnrs�t�x*yt*s�tGnGs*t+s-�tGy�kGt41fkGm�n*st�kGn*sGy�mbfklmnpstxln+ps	�tb�f*s7rGl.k'l�m*s�p%$r�km
+s*yHn(8t�k*sGtlGn�s*t�y 	slGmGn*stGfWnk*n*s�tQl*sk4y�kfl�s*y�m@GhklmGn�pst*x*yrWp�b>flGnst^skWn*k*s*yPb�k*s*yf?l*t*@Gl?w
bf�hkQlGnrs5txGk�lGtl*sGx*yl*sGpGt�n^s*t*ytGmWrbfhklmnp*rstwxGyGk*n�r*sGt*y?l�n!Ir*st7lQns*y*lmn*ln�sGt?r?k�n*s}t*ybGn*s*tlsWtiy*s*ty9$t&k*s+tfln)Rr�stGyGs*t*y�k�s
�kmGn*s�txxy?r*s�m	Kb�f�klm�n,lrs*txx*y*k*n*s*t*y+nn*@*n*sGw�lGn*s*t
flGmn(�p5r*sty�k�sGynGyGkGn*stG@lf*s*klGns*t*y*sxt*yOt
G@�f=�kl�m>�nprGs*tGxy^sGt*yrft
.f4�k*s*t;�@;�f;�ns;�t;�f;�k&k*n&tGnr*s*t0s*tlmrsn�k*lGnGs�tk�st*lr*s#fp*kGn�l@bfhklmnprstwxyxf�h�klmn46prstwPxy�hGm�n*sGtGk*sGt�k*l*sGyGb�m*n7pGt�x*m�sCtGb*k*s*lGtmpst�r*slWk.f	�kb�hDklGmnGprst.wxyl*skr7f2�@fk�lm	�n�psGtGyll�lGmrf�k*sGyntGk�s�r�s*tGk*s*t�kGlzns+tGxGyflGmGn*s*tl*t&k*s&t&lGn�r*s.wGkGpQs	f�h.kl*nst^xG@?sCn�kCt*l�r
�b*fklmnrst?w�xyGkGl*n*shtxx	bf�h"�m5Pn*s*tGy�n*s*t*ns�ttkGl*sUkflrGsGt*x�hGk�n*s*tGy*k*s	�t�bcl�n*pxr*s*ts�k�sf�klmnprsty	�nr*s*t�ls*tGm~tGf*s�tG@n*s*k*n}s*st�h*sGl*n*s*ttn*st0y>YkGt5n*s*t@'m&@bfhklmnprstwxy*lnr*s�t*stGxGnr*s�kl&rGt*nGp*sGtWlGmnCrGsGt*s)MtalmQnr�stxxbGn*n*s*tf*l�n&s�k*y�f*sfhkmnpr7�st&x*y�r*s*t�n*s�tGkfl*sGtr&f&sGtGy*n(�r*s*tG@bvklnpr�s*tyGlGrflstf�ltb*n*s�l{n*s
bfhk*mGnrstxsQk�l�x=mGt*fQl?tGk*n*tlf*s�t*kGn*r*s*tGyk�lGnGp/st&l*n*s*t	6�f�kGl&mGn�stGy#�k*s?bfkl2�m�np�rst�w[xGy�l*sGx�n!r*s,t*k*nCp*s�t&x*yGn&sGtCb�hGkGl�mGn&pr*s&x*y&kGm*sGtGx*y�@Wbf�hGk~lGnrs:�tGlft2�@f&klGm*n&p*rsGtGy*b*k*r>�k*y*n*st*lGs�tGk&lGm�n*r?st&xkfl�nsm#�pB'kxm*s?f*klmnGpGr*sGtGxGf*y�ksRtCl*n*s�bxm*nr*st�nGb*s@bfhklmnprstwxy*l�n�rs*m*s*t=fGklamnr�s@�t*xy*k*st*k�t*kGn*s*tGyFblnr�stGx�nsGtGwGyflGsGxGk*sQtGyGnGrszkGkGlGnGpzr*st*s�tx@bfhklmn�prstwxGyGk�lGnrs&t*s*t�yCt7l*sGtGx*@Gs�tGx&k*lGp�r*shtG@Gf&k.Ost*y&l�nGr*sflGnrs*tGy*fGl,nGsGt�flm~np*st?n*y�@l�tGn*sGy*n&pr*s*t�k	Xn*kGl*tGnGpGtGk�m*n*s*y
bfkk�lnprstw&xGyGk*l�l0�nst|n*sGlGn*sGn*s*x�kGl<�b*tWr*s@�n*y@�blf�hkl�m*n*pGrst:}x�y�r*sfl
�mn�rstQnGs�x�k}s*y�k*n*s�t
�bf*l'nr�s*tcxy�l�n*s*tQnGr	�fGklnGprOs*tGtGysGtQl�n
xbGkflGmn�s�tCxy$vlGs?y
PbfhkflmnstGy�lm*n^s*tGy*kGn*s*t*yfl*nGs*t	Gfk�lm5nrs8tysk�n*s�t*y�y@bfhklmnprstw;qxys*t.�tG@l-�r&s*t�n*t{m*n*st�l�mGn�s�t*y�bGnGr?h*k*n+stA5rs�n5k@l*n7�sGt�y�fkxm*n�p*stGn�r*sGk�n�rflQnGxGmGn*r*sGtm*nnt
�t
G@&kGmnGp*rsGty�k*p*s�sffl'ns&t*yGk
�s*s�tG@bf&h�kxmGn 	s*t�w&x?n*sCtl&p*s@bf�hklnprstwx*ym	Xt	5klGn�pWrs�t�xGbGf�n*s8t&l*n�t*k�l*sn*s�tk=�n�s*y�l@�h*n*sGtlxk5n�rs*t�x*yn*s*t&k/k�m*n*s�t�kl�mGnr;%sGk�s�klxxGyfk*s*s-�tn*s�k?s@bfhklmnprst*wxy*kGm*s*tGkGlGn�r*sGxGy	kl*�mnGrs&t>xtxxGf�r*sns*yGs^t.tnr*sGtGf0lm�t*s�tb�hklmnrst*yGk*l*nGkGtfl�nGr*s4�t*yQbGn�sGtfl?n�r*s�t�f&l*nptt*n+s*t�k�r*s�tGk*n*s*t*b�kWn*st*yG@AbGk*lGn*s�kflGsxt#yGl:2t�l*n*s*tGy
�f/k*l�np	�rst*y�r	�l&mGn�pxrsxpbfhklmn�prstwy5k*l�l*xl*nGstxx�n*s*tGnfr*s*nGr�sGt*yGn�sGt�wGkflGn*s*t�n*s*tGy
�bflxm�ntGk�n*pflQnr*sxkxmtG@*sb�l*n*sVn	GkGlm�ns*tWw*y&k�n�bGn*sGtGkl*m*nrstGn@rs�y�mWtfsfsp*y]k*k*s*t�y-ls�txx�mn*st�xr*s@bfhklmnPprstwxy	b�hlGnrst*y�n�s�y�n*t�n*tMk	b�h�k�ln�r*stn*sAn	�k�l�m5nrs
tGx�n*sGytGhGlmn*s?t.@bfhGklmnprst?iwx�y'lWrGtGl�r�sGkOn*sGtCyGn�sG@dh*k!�l�r*s5t�n*sGtGk*nst�krsxbGp8stGnGw*l*m�nGs*t�n*st	=f�hk*ln*s*tGy+stb?�f�h
ukGl9npst=wlGns*t*ytGnGrkt	�rGkGnr
�l*k*n�r*s�x
0Rblfhkl5n5tpstwxGy�b*kGlmsn�x�h*s�tDrs*y�fGlGn*st�w*ymGn*s
�b�f�l�mn*p&rsGt�w&xy�b*s*n�r*sGy*n*s�wGf*kGtx�f#klGnpst*k*st�r*s�nk�p*pGk.wlGs*sQy�@bfhklxmnGrstGw*ylGnGl�nGt	�nfl5nsGt�kGnGsGt*y�h?kfl*nGs*t	�n*t	xb]flGnps*t�w�b*ns*t*y�lGn*m?�tG@bf�hklmn?prs*twxy�kGl�nr�s&t*xGy?l�rGt�halxmF[nrsmQb*s*sCt
�bffl�m5ns+tGwGyGl*s*t*m*n*s*txxnGr*s*t*sftGkflGnGstGy?bQk*m*s*y	�l�m�st�wGk*n�r*s*tGl�n�sGtfl�n*sGt?k*s*t�bn�r*s*t
�f*k*s�bBflGm5n�pGrstE�wy*k*s�t*yQrt�rGk*l*s2�@s�f41fl.mnsGtxkGm*s�k*l�s*y*sBt*yn*s*s�tn	�kbfklmnprstwxyGln*sGtGyk'l'r*s�t/y
�x	Gk*lnrstxxy*s/ztzt*y�l
�b�f�m*nr*s*t�w*yGb0fkGnfrst*y*n*s�tGkflQnQr*s*kGn*s
G@GkGl�n�rs*t&x*yZb�fh*kGnstskWlxmp*s~t�w�pxsnr�sGlr*k�sk�ln8�r*st*n*stlk%mk�l�r*slGnGr*sGyGf*yGm*t�b�fklI{nrstw*y/nons*tGyTf'nst�w*yfl*m�nk*n*srf�k*s*y�l*s*tflsGy*n*stxx�k�xGl*n*t{kGl*n*sGt�l�nr*sGt@bkUln�wl*k*n�s*t@*s"�sWtbfhklmnprstwxy	G@kl*n-0r*s*t�x�sGk*sGt*ykln+s=tGx/yflxx�m*n*sGt�y?r*sstGfGm*stGf*s�h*s
Tb�klCmnGprs/ztQ@Qb*l*n*r*s*tGk*m*n*st�b*n*s*txx*l*s*tbfkmn	�rst�xGy=rGs�l�r*tGnrGsGt�nGs*yn*s*t*s�t&kGm*nsGt.kCmQp*s*r*s	&@Gkln&pGrstGk^s*sCtWx*sw�l=bhk�l*nGrs&t�wGxGyGk&lGs*l*n*s*t^m*n*sGt?lGn'r�s@*fk�l�mn	�r&s�t�x@�yGl*n*sGt&lGszxsGtf�m�f	xklum'npGr*stwGy�m*n*s*t*y/rGkGnr*sGt*m&p*sGnt�bmGnxr*sGt�p*s
G@4k�l�mGn*rGs/t�xPmn*sGtl*s�kb?�kGlnprsGtwxB�l�t�m*s/s*kGt�fGtGk*t*kGl�b�fklnxp
r*sGt�w6�xlp*s*tnt�wGf*n*st�mr*s�n^t�f*s*t~bfhklmnprOs4�tw*y�l�rxfkGtGkPm�f�hlk�n*s*t*y�kGnQps*tF�tGlGnGsGtw*n�rs=�t�k �m*n�s*tGy*@�l*s*tbkl�mnprst�wWxGlGyGnGs!k&n�r*s*y*kGm+sht G@Gl�r&s�b*kn*sGtGks�mnGs�tQstGmGn�k*s@bfhklmnprstwxybf �h�klmGnrstwGk-0rtGn*tl�n*s*y�n�sGt*y�bQl*n*rs*t*kns�t*y*lGs�ntGn*x*s�t*@Gt�b�f=�klnr*st&xGy�m5n2�s*t�w�x*y�k*sbK�fklmnrsGt*y�lGtQl*s&txx*stxx�s�kGs�kfl�n*sftn*s@f5�klnrstx*ykfl*sn�r?l*nn?sGt*y*kGs+shtgb�n*st�xflQn}sGm�t	G@flGm>�nGr*s*ty;�@f;�n?s;�tG@f?l�sG@lf?lft�t*l*nGr*s,@bf�hkl�mnrstwxyl?nGt�bGlyn*s*s*x�f�nLst*y*s*tGy*nGst�b
txx�h*l�n*s!�txxGy�b.fhk�l%mmnstxxyGl]n	�l�@Gs	Gf*lGn�r*s*t�wGyt*k&s�bfGk ?l�mGnrGsSt6x*y�lQn*sGlGn�s*tGyGr*tn^sl*s�s*yGm*s0t*x@bfhklmnprstwxyfl*m�nsGt/ykl5n�rstGy*ns�t5not*y9Ot<Bkfm*sGt	f�kcl5nrBms*t*y*l�rn*s*t*s�tm*nt�n*sfl�n?s*yGklmn�prstwx*y
G@*f*kGm�nr*s&txx*k7�sGns�t�bflJr*sGmn*s*t*yfl+s�t	�bk.mn�rst*yQf*tGk*lGnGst*sGwGfflGmGnxrtGln&txx�s*t�f*s*nGp^s�k*n�s*t*y
@bfk-�lnA3pGrsStGx*y5tr*t-l*n*s*tyjn(kl*n?�r&sGkfl?nGs�txxfl�nst*y*n�r*s@�hklGmGnst�xGyrp�k�sGy*@GnGs*tGy*n*sGt*yfl5ns*tGy	Gf23l�nrZs*t.x*y
�bf~kfl�n�rstGy�l*l*m*s7<fklmnpstx�yxbl�n}k*s*ytr*s�k*yflGs�t@�l*sk*�n*srt>�pfl5n*s&txx�n�r*s*tf�hk�lCm5nQpLstGy,bk&s*t�y�lxx*lGp*s*t	GfznQp�r^s&txxGybfkl�mnprstwxGy*kl�rGtnGrtGxCt*s^txl*nr*sGtGf*k
ns&tGyfl�nGtzl5n�pGstxr*@xl*s	�b�fQl�n*s&txxGy�m*nGp*sCt?p*sGy/fGkGmGr*sGtGn�s	?�b*f~l5Pn�pr*sGt5n?s*t*ybGfklGm5nps�t*yGkIclGbGnGtsGt*y�n*sGt
bfh=k	�l�mGnpst�w�x*k/lWry?n*s�w�l*s�xl*f*sGp�sp*t�w&kr*fGpbfhkl"�mn�rstwTx�yl�n*s�tt*l*n�nGs2�@�l�nGp*stxx*n*s*tyn�m
�h*k�l*�nrstxxGyst�n*s*txxflGm5n*s'txx41h*n*s*tGy*kfln�srtflQn*st flGn�stGyf�t&kGt>bfGns*t�k*lGkGrd@bfhklmnprstWwxy�b�kr*sGt*k*l�lGr*sGtGl*t
�b0fl5nrs&tx*y'f*kGm?n�y*s�tnl*nr*s*t8s7t*yf6�k�n
�s+t*y@*n�knGr4sWtlGn*sks*y�ksGy*m�t*ls5t�x*mGn�r*s*t?lC�r*lGnfr	�s*tGy	<�b�ffl5npsty*n�s*kGn!r�f*n*s�w
bhklmnGprs*txy*lQt]l@l*s�tGnGr*s�t*yn*stl�s*y	�b�hGkGl*nxpGsGt*n�s*tGym|st�yk*l*s.@r�kfl�n*s�p*s�bGn*s*tlxm*n*s*t
Nlm*s5�@<�nr�sGt�x@bfhklmnprstwxynsGt*yCkGs	5klm*nr&stGxbGn*s*tGk�nGtn*s*t
G@�kl/zmGnr*sCtGx*n�stGy*l�n*sGf*k�l*mnGsGttflQn*s�t
,@.fxh�klmnrstx*yfl*n?s+t*yn&x*st*nr*s*txxflQnGy�kl*n+st�wGk*yflGn�rs
�tGknGsht*n�p*s@�t1+f*l�n&rGstfln�sl*nGs�txx�s*y�fk0#mns
t*y*n8strGk[s&sGt
�bkQl*mnps*t�wn*tt*k8sf�h*s�tr*s*lGn*sQns*x*yF�nGt
hk�l�m�nstxGy?nGt�bflns�t*xQbGlGnGtGnGs*ys�n*sxt*s/t�kGmGns�t�yCkbkl�m	�nWprs*tw�x=nfl5nsGtGyQn*t�n*lxm*n�p*t�w�mGtxm&s*t�w	Gkl*n�pr�sGtGwGkGs&f*sGy'n*s/tGy
bfkl
.mnst*yGk�l*s0r�l5nxrs*t*yk*ns*t*y*lGsfl*m�n*t
blGmnrs�txx9�y�lCt�n*s*t*yGs�t*s�txxGy
?bfklmnGpr�s*t�wGy;�lGk7�l*sn7r�s*tGs^tGnGp*s*tl�nH�s+t�s*yk(�nGp%�s*tGx�sxtGklxmnGr*st�k*n*s*t�n*s�fGkflxm�nGpGrst�w&n*s�w�bGk�l/mn*s�tkGlGst*sQt�@bfGhklmnp&rstwxyk	rl�n�s*nGsGtl*mGnr*st�n8�pGt*y*kZs*ns*s7<t�kl*nGr*sG@*stxx*y	�bfGkflGnst*yQrGtGn*s*txx*n*s�txxGyflQn*s*tGs�txx*k�l*sGt/fGm'tbfk*lnGp&rst*yGkGlGn*l�n*s+t?wQfQl*mGnGs*ttWrfl�n�s*k*n/r*s*lGn�sG@
�w C�@bf0hklmnprstwx?ykm�pGk&lm�rGt&b�b!kln*sGt/y�n*sWt*yGsxx*lmn6prs*tp�s�kl�s*yfGm�n�k*nGr*s*tGyGn*s�t	@Wbkfl�ns+tykrOHf*str�km~n[s(6kGm*n*srtxxQsWtklnst�xnr*stl�kkr+ft�p*s~tWx*fGkr*s�kGyG@lfkfl�nGstr*s�tf:xlGn*s*tG@l*nr*sGtGtyQm�nt�k*nGklGnstxx$�ks*yGm*n*s'txxGm*n�p�s~t�f*n*s*tGy.fklGmnp+rst�wyr&k*sGt*ys*stf?�t
�m	Gf*kGlm?nGp*s't!l�kn�s@{s�t	fkflGnrsLctyprrsWtt�b�xs�fn,epGy�sfl�n�xnp*sWms�tGk3n*s�lm�n&pr8s�ks<�t,em*@?nst*yl5ns*t�k*yb�hk:�lmnp+rst	�wGx*y*k^lGk*lGt*l~ngbfl*n.nsGt�l�n&l	Xn*slstxkGm*snZt*sWtGyk�s*txxl*n*s*t=�xQnszt*y*m�t�fkalpsxk�nrffln0�ksl3m0r@k�l*s=�xr$�p0�nrf@bfhklmnprstwxy
�k�l*mnrstGwGy}s�t�xGbGk*s*y*n*s�t�n*s�t
GbfhklmnrstGxyr*s�sxkbGk*nGp*s�m*ns*tGn�s&b&l*n*s&txxGk*m*nSsF[tGxGy�kGn*s�tmb�fL�l�n*s&tx�nr*s�h�s
�@
�hkl>�mnprst*xy*n
�r*s*tGkGn*s�t�yk�lGmsGt�w*s�t?n*s�s*n�s*tGk*stflxm5n*s�tfl5n�s*t*y�hs[t�w	�k?l*mnGr*sGt�whls�t�nGhxltC@b4�f�hklmnE�prstwxGyGk*l7r*s*kGnUTr*s/t	G@Zb�fkSnRst*y�k�s*y*syp�k�n*p*sk*nar�s�t�y*m*s*yQf�nGp*s*tGyfkGl�m*npst�wxE�l�n�rQkl*s�tt�yGnrs*n�s*t�mE�l
	�fklm5n'r*s*t�yfl�r*s.t*yQbBtGkGmGtGx*yfl�nGpWsGt@bf�hklmnprstw�xy�f�kflnWps*y*@GsGk+l�n'rCtbhklmnpGrstw�x�y�klr*stG@Gtfl*st�t*yxr�s*tGfnGp*t-�k*nr?sx@*stx�hn*sy*s-�w�fns�t=�t*fGt*kmGnpr*s�b*s	XlG@*k*fO�tl0#mnpr�sGt�n*s*y}s?t,tfGm?s*k*n*s*tGyGk*n*s*t*yh&kGmGnst7alumGkst�fGm*n*s~txx�m*s*t�fol�mGn*sGtG@*n�s+tGy.b1f�k/mn�p*st�wxy3"k*stxx*f*nOHr*s*t�k*lGm�n�r*sGtbf*kGl�mnGprsGty*k*l�r*stGkfl*s*nR�p*s*tGylk*m*saw*nGp*t�lGnGrs*t?y�b?fE�hGksGt�w.9t@bfhklmnprstwx*ym*k*l*y&klrs+tGy5ns�t*y*s?w'bl*nr*s*tGk�n*s*y*sR�t�nGt	?klmnr*s*t*yxbGnGy*ks+tflGn*s*txx�f*n�fk*�n�stCxy�k*sGyGkn*s*tGy*n*sWtfCkt�k}s*yb-�l�bk�lGm5nstGwxy7l�n*sWbflGm5n*s'txxGkxr*s^tGylm*s@bGkl*n�r�st.x*y�ksGy�kU�yGny? Qs	GbhGkGlGmGns&Ct'k�tGkfl�n'tfklamGnxp*stxyr�k*s*tkxl�nsl�st*y*f#r*s�lGnrGs't&xnGx*k*n*sklGl�sn:Yt
UfklmGn�p}rs+t4y�lQn?r*s>�k3*ysI#m�t�kt�b*s*n/p?tbfklmnprstP�wxyGklGmfr*sGy�n*sGw*lxr*s�b�fGk;qlAm4�nGpO
rs~tyGh*n*tp*snEkGlGn*s&n*s*k*s�t&kGpGt
gb�fGk*nr*sGtGxGyflGm*s*y
f4�k*lGm5n�p*stGy*@?w�lsGybfhklmnprstwAx8�y&kGlr�sGk*n*sGlQr*s
.@&flGn&pr*sGt	�x�p�s�fGp�b�n�s*tGyG@?sCt�bfl*st=n&kmnJXkGl5n*pGstG@lfGn*s�w�fmGnp*stfl5nsGkxr�n*s�hfl-�m�n*s�fGkGnZ;bxmn*s*t�b*sGnGt*@bfklnprstw|xyG@GnL�l�mnrs�fGft	�yGk*s�h�st�y*syGpGns�t*y*sptt�m�fGn�s�bfkGn*sGtx�r&xkt@fk$�lmGnp�rst�n�n*s�kGn*s*tn7<k�l�yGsQtGl?rV�k*s�@bfhklmnpGrstwxyL�lGm�rGt*y�k*s=t#�y�nGtlGn*r*sGt*sQty6�f>�kGn�p*st*k*nr*s*t&f*s.9b?f&kGstU�yGn�s*nQx	�b[�k�l"�mn*stGyWb*s�t�k�r	b1f�kfl~n*st?w�mr*sGyfl(�n*y*@*n*s5t�kGm*n*sGy�n*sbfhklmnprstw&xGy5k;qlnr*sGt*stflxm*nr*s*tCk*sat*@lQp*sGxGy�l}n&psGt�b	xfl5nCp[r�sGtGy*@n*s*y�b*f*k�n*sGt*yG@+�nsGtt�r*s�b*nGs�tlnGprGstGw�n*sCtGkGlGt�n*sZt�blrst*m�s=tGy
GfQhklmn�prs�txy�r*s*t>�kfl*nr*s+t*y'n*s*n+s�tk9�ns/tGy@l7�r�stfl*mGn*s*tmGn�kV.sl*n�sfGkGlxmQr�l*sbfhklmnprstwxy5kXvlnrt�kGn*sGt\�klGn?st�nGt*y*n*s*t.x0nt*nsr*s�t
GfhCklGmnGrGstGk&ptrEl�sflGt�r*s*t
�bGkmn�pr�sGt*yGnGp*s�k*n*sGt*n0sGtGl~n�ps*ttfl�r*s�xfbl�nst*x�hs*y)pGm*s'tQm�r�sGt�l�nr�sGt*f?s
fkGl�mnpstGy'bl$�kmn^stm*sMt@�yU�tt(�rkGn7<pstxys�l%s�tr*s7�kl*skWl*sk*s�y+slfklxm5n�pstw�xGfQn�r*spGr*y�xp
�rGkGl�nr*sGk-�npb*n*t	*fGkfl�nGpfr*sGx	Gf�kGl/mn&r*sGt&kGt*l�p
�r*sGt*s[tG@*fGkGlxmGnGr*s5t*x�y�bxfPLh~k:xlCmn=pr�sE�tGwGx*nCs*tbfk�lm�np	Xrst�wrt�sftn*n*s&txx0hnr*s�k�s�ms=�kn�bkl*n7r*s*tr�f4�k*s
@bfklmnprstx�lm{s!dtyrztl�k*s�t*knyt�l�sGbl
�minrs�tyks~m~mJkst�kGs*k*m*st8r#kPLn�k�nt�br*s�xV�@*kQst�k|sklrmCnGnGx@R�syr
&tkl'mnsstt�nffl*stQ;sftPf*s@[tWt*x.flmn�p5�tyl[rn
�l*kstf�ntk(�lk�mnr8�sWtJ�sxxf*k*s*t�yntr�k*sanGpt�yrks�l*s0�tsQmGl*nr*s@bfklmE�npstx�mrplGt2�bl�mGnr*kr*s*ykxbk�txblnI�rst*s	KtGty;Dlpxs�r?tGn�sk�s{y�kfl�stGyr�k@s(6ktxr*sGk*sGy	Xn.9l�nr�kfGn*�tlGr*kGs*y*n*s*tyn�ml�mGnK�r@bfhklmnprstwxyGbklm'nrstGwGyflxn*sGh�kGns�st*k�l�n*sGn*sGtxyWbxms*m*n*s*tGklr*sm/�nGlts b�fhkl�mnQprstwxy[p*sGt�y�lyE�t*l�m*ns*t*s<kyk*3nGrstxx*yr]sGm8�n*m�nt*k�n*s	�k*n*r*s*t.ay
7<fkfl*nprstxx�y�l*lAmGnr*s*t�w*l*sGy
Gkl/zmnGrGsGtGxGy*stxr*s*stGm*n*tGkflmGn*staw?k*s�nGp*s*yGln	�rs*t�w�ks*yzkGt*m*n*sGtb*ns*t*yGfGnGr*s�h*sGtxG@b�f�hkl>�mn�prstw6�xyGkGlGklGnGp~sGtQftGxsQkGx
&fkflnrs+txGyGt*yGkflVrGs�t*n*s*t8�yRn
�b�f4�k9lmnst�xnt!	l*sGs5�tfl|n*s*nr*s*tGx
�bGk�lonGp*sGt�xGy
sk�n�s/t�bflGm'n*r�s^t�w�xGy�m*n*s*ts�k�sbGfk�lCmnGprstwxyrt	�f�n*s*t�xGfGh*sGtks4�t�bGn*s�b*n�n*s*tx	�x�fGn*sGm*n�s*t	�r*s�fGn)tGbGmbfhklmnprstwxyJXkHlGnGr�s�t�y@l$�nr*sCtWrwWl*tGp*s*tGl,m*pGs�t�k*l\pnGr*sGtbGkfl"�mnrst&"xL�y�k*l*sftfl*sCt*stGy*nr*s*t	GbGl*mn/pGr*sGt*lt�ls@�hGkflCmGnGpst�x�y	Xb�b�l*�nE�p*sGy�bf^kfl*nstfls*mQrk*s<+t�s
�b6�f�kGln}s't�xy*l*sGt�wp*s�kklamnWpr*st�wy0#mr*s*s�w,f*y�fGnGsGt�s�n&p;`r*s&tGykGlGs
*fl*mnr�stx*yGs�tGsGy*f?l*n*s*tflGnlGr�t&k*sGfGmGnGp*s/zt*ylm*n*s^tWn*st�h@bfhklmnprstwxy�bGmGn�rs*t�xb.9l�m>�p�r
bJ�f�hkl�m5nr�stGx�yQlGs�kflL�nVr�s+t*y	G@GkGm�n*s3rt)=x*y]r�shkl*mnrst�xy�nGlGsxxGfn*sGtGw*y-�kGsGt*kmGnU�s&t*sCit�n?s*tGyxk*st5nflGnGp*s*t�n&l~nGrGsS�tB@*bfklmnCprstwx5CyGl*n�k�l*n*s�tb�k*rstxx*ylQnztGm*s�x*f�n*s^tGy�b�kn*p*sGxn.xGk<&stGy*k*r*sfGm^sGy*k�sGy	*fQk�mGn
.p*stGy*k*n�r*s
�bfYUkfl7m*n?r*s^tfl�stGk*s�xfl5nGpGn�sBt*y
G@bb�fkflnprstx	�y	�bGk�l*mGn&r*s/tGn&st*k�rBkfl*nstxxGy*n*sGtGy�fflGn*s*t*n&s�t*yGlGnY�s*tfl5ns*t*y	Gf�k�lGnrs*tGyGk*sxxGlGnbfhklmGnGprst�wxGylWr�l*sGxm*t�r�l�nr�s�t�y*n�s*t*y�f*k�ns*yGm*sGtGyTsCitzt�w*y�fkxm�n0p*sCt�wxxGy+p
Gkl{mGnd�rs*t*wxfl8s*y*f*n"t�ffl'n*p*s*tGy
bk*l�n/rst*wGy�l&tl*s,bk*n*sGt�pkmGnp]�rr7s't~nrR�s�bfkGlmnGpstxx�yk*s*t/yfl�txxxlGs�t�n(8t�b�hflGnGstGn�s*lGn*stxx�kr*s�nGr*s*tGy
�@bflhklmnprstw*xyGklGt
�wCw�bkGlQr�s�t/y�txxlnr*s*@�sft*ys*t�s*n?p*skGlS(s*y�k�sGy?@�kn*sGt*n*s*tx�f*n�sGt�xHk*n*p*sGtGm*n*s*t*xGyGm�s=t*kmnrs*tGy<�b*n*s*tf*lGmGn*t'b?kz@CkGr5t�k*s�@bfhklmnprstwx;`yGklr�sft&k*s*y�b�l4�n*s�tCxGlGp?t�kn�r*s*tGsWtQkOns*t*yflQn*txx*kGnGtfl*n�rstGy*lQn*s*t*f*s�tml*l*m�nGst*y.k*skmGnsCtw*y�pG@sf@�f�r*sGtGlGtxylQn*s*t�t*y	*@GkGmn�rsGt�y�ln�r�s&txx*y	�k�l�s
xb	xfk'lGmn�p�rstWw*xxk'lp�s0�rfl*sY�tGnr*sO�t|lJ�nGt
�bmsnExs�t�@bfhklmnprst*wx�y	=fGklGmnrst�n*s�tGy�b*n*st�xr*sGk�l*y=kGn*s*t�mtxx+b*f*s*t�f�nGr*s*t�kl*nGrst/yk*t�k*n�s*tGybQl�n*s*tl�n7t*yW�m	Gk�ln�pr�sGt*yQkfl*st�k�sF�k*sGyWbGhknP�p*rs�txx*y�k�sGyPmGs�bGlr3rtxxklGmGnp�rstwCxGy�b�n*s
Ht�x*n#s+t*yl�s"�mnr*s'tvs�b�t�b�f�k�mA-nr`�s�txxGyn*s*tGy*s�xF[lb
�fklOmnrstx*yls�t�p�n�r*stxxfl5ns*t	�bkmnstxx�ystxxfl5ns+t*n*s^tnt*nr*s*txxflQn*s7t*yfl]�nGs�tfdnr+tfl�n*sftfl*sGy�b*ffl5nfr�s*t0f!klnst�y�k*s*t>b*n*s�tGw�x�b*s�txx�bGm*n^s*t�bhm*nst�xns&txx�bCf�s,b�f�n*s�tf*sGf*nGr*st�xbflGn*s/t
�b{flm�nr*st�x�tntvl*n*s*tGlrsGt�f*sn*s*s�tGf*kxm�n�p[r*stw*xGylGr*s�xQn?s*y*kxmGlmnr*stF�n�w*l*s�txxGy�b*lGn*s
�bfk*lmGnr^st�wxxGy�k*s*ty*n�t�nGs�n�kGp*sxxGy,�f*n*s*tGy�fl?n*s	�tQn�sGt*yC@bfhklmnprstwxy	Gkl?�nrGs'txx�ys*yGm*n*s�txx�bGk*sGt*y
G@b3�fklmnrstxyl*n*s*t�lsnr&s�txb*n*s*t-�xn�l*nr�s*t	&fk
nshtGw-�x*y!r*stxx*f*l�n*s*t^f*k*�n*s*t�b�l*�n�st�xflQnfr*sGy�b�mnstx�k*n*s�tnl*s|st*ybGlnGr�st&st*n*s*t�x@nb�kfln�s^txGk*lfl�tn�l*sbnrGs*txxlQn*stflQnGs�t�x*ls&txxn*s*l*nOs*t�bn*s*ts>�bGmbf*hklmnprst�wx�y~nOs*tkflQnGr*stn	Xf�ln�stxx�r*t*fflGnr*s*tb�l*n*s*t�fm2%ni!s&txx*y�n�r*b�s5ptk�l*nrGs�tt-�xf*mGr*s*t�l*s�t*k*n*s
�l�s	�bGfknst�xGy�n*s&tx�n*n+s�t�xflxm�nI�p*s*t�wl5n*s*tGy�txx*yWb*fGhGn*stxx*f*n�r*s�t�b_�f�knGr*stGshtxxnQl�s6�k5npU�s+t-�wGy�y�bGkGlGnGr*stGkGlr�k*y	%mb�hkfl5n*r
�st*cl*n�r*s*t�nGr*sGtxx�y
�hklCnsU�t�wxGyflQn*sGxQn6�pst�x*y+bGm*n*sGtxxfl�n&st�n*s@bfklmnprst�wx�y�tGk*rstnxlxx+b	�ln*stxsf+r}s�lnr*s!�t�m*nGstxlQn�st*y�p�txx	?�bi|mnpGst�wjxfl*n*sGt*fflnfr*s�txxsGt	G@�b�np�r*s'@txxtxx�f	�b�fknGpst�xn*sGs�t*lsGt*st
.rflnr*s*tflzr�k�txxkrst�x�s�t*n+stx�r*s�nR�fGn*fml*s�n�sGy*ffl�n?st�nr*s*tbGklkmn�pr&stGxF�lGkxx*n+stxx�ln*s*t�p*s�bkn*s^txxt
xbf*n*s*tfl�n�s*n*s�tGffljn�txn'l*sn*p�l*r*s@bfhklmnprstwxy!sr*klr�y�n�sft*yxkGn*s*tGy�bk&lGs&tGx/y�txx'n*s�t	lmGnrstxxGyk&m*st*yQw�nxt*kfl�nt*cl*n*s*t	b&fQl5n�r*s*tGy+lWr
bfhGk�lmnN�ps
tw*yrGm*s*y�l�r*s]�nG@lfGsGtfl*m	�tGkxm�b&klnps�bGm�n�s�txxlrttxxf*n*s*t^Onrfl�n*sGy+b�sGr�sGy�bk�l"�mn*pdrstox
s&t	�bzkfl*mGn*sGtxxGffl�m*n*s�tGylnr&st*n�s&t*s&t&xlc/ptMf�k*s�x*ybfklnprstxxy\n�stxx�f*nr*s*tfl*s*y	kl*mn+s�tx/ytxx*f*l*sxF�n*nJ�s*txx�l�m�nstxxUXm�b*f�l*n*s*tFb*n*st�r*sffrstla�xkns�kl�tpk&nsxx	�t�xfln*stQwGy!Is�n*s�xGypt�n	�txx�f�n*s*t*ykfl6�m�ns/t�x*n*stxx*nWr*s*tt
�n?fxm*n�swxm*tb�fk*mnpstxxy�knGp*n.t�kGs�t5�x�b*k�nWr*s3Mt�yk�l
�fflm5nr+stxxGynst!rn	�r*tsf
�r^fGr*s*t�kn*s&t�l*t�fGkn�t&k9lGn�s*t�fl*nGps
�t?wG@�m*st�rGl7�n*r*s*t�bl�mnGpGsGt�k*s
�k8sk�m&n	�sGtGkml�tx@bf�hkln7&prstxylGt[�n?st*y�l*s*txbGkCs	Qk�mnb�r*stxx�y[r8�sCtGf�k*nfr*s*t	GbWh(�kfl*nGst&xr*sGn*s*tGy		XfCklnstxxyQn*s+t*yGh�k*s*t&nCsffl*n�s*tOlkl[�m5n:�st*yGlGmGn*s*nQr&st*y�f*k5nxr*s
�tGy?@PLbfGkln&r&s+t�xGy*sF?txx*mGn1�s&txx*y*n�s*t&n�s	jVbh�kl*nr�s�t�f�t@bfhklmnprstwxy*l*s?t]klGmn�prstQw*y*k*mGn*s+t*y*rGs*n*s
�txx*yEtG@2�klmn*rst&x�y$�k5ns*t*y�kGn*sCitfl*nF�sGtflsn*sCtGkl5ns�t�xGyQk*y+�mp*t�w�p
�sm�nsxtPlbf�h�klmn�prst�wx*yQkGn*sGtGmGns*t*y�b*nGkGlGsSt�m�n�sGyfl�m�n�p*s*t�bf*l5nrst*ns*tGt�xn*sGk�l*sQ =�bkmnrst*w�xCy�n�bflGnGs*sGtGyfl�m5�n�p*t;fGn*r*s�ty�f*sG@b-�fklnpCrstwxx~yl*n*rs*t*y'ns*t*yr�k/kntsGt*yl*sk?s*y7<fklGs�tWn*p�kst*y*n*stxxQkl5n�sGt*yfbGfxm&n*s*tk*nr*s*tlQn,3szt*yGm*sGyCl*r@bfL3hklmn5prstwxy*mGn*sGk�l�n
�r�tQxl=n�r*t�x*sGtGyh5ka�lam5nCprsGt[x*y!�s
W�kfl�mn@rs�txx*y*st*k�m*s*t*x�y&l?n*sQt*kflGsGm*sGy	AMbzklxp*s;%t�wGyQfbf�hklmnp?rs+tE�wx�yAr?s/t@*l*sfl�r*salrzsk^sw*y�kun�sGyOl�@�n�s*yGf�kfl*nGsGt�l�r*skfl+�mGnt�wGp�r�n*sGyl?sGtG�t�l*sGtGx5ns*t*yGk*n}s*t
fsklSxnst.w/x*yGn�r5Pn*s*t�w*y�k*sGt�b�fxkfl5ns*t*n�s*t'� bfklmnprstw�y	GkGlCmQnr*s*tGy*k*n�t
�bklGmGnGr*st/yCs�f�n?sGt*yT�l	&klT�mnrs&t�xkt!ktmfr*sn�t�x�kl�n&stxxm$xtn?kGmn�s*tGy'kGsGtfl5nGr?s&xfl*nGs&tGx7{y	b�lnrSstGx*y*l�rflQnGston*s*t*fmtt�x�knGs*t�xrWyf*sGtGyr*s{nflm�n*s*tlbfkl�m5nrL�s*tGy'^l*s�xGkQns*y�m/sGk?il�n*sGt
3�bfkl?mn46prstjxGy!k;�ln*s+t#�yGs&t9l�nrGs�tnt-�fampx'r`QlE�k5ns+t*yflGm�n't*f�kflSsGtxl*n8s*tGk@lGn*s*txxfks*tlttk{kfl�n*sGyflGm�n*s*t�bGn�sGt,wwGy*@�bln*s*t*s�wGkfl�blGmnpst,ww&x*yn*s*y�tfl�m�s�r*sGn*s*t*y2�@b�fkGlmnpGrs�t�w*xbl�k�tlm~nGtbAbn*st�r*sb�k*n*s*tkt8rrQsts,3fibkl.mnsxkfl'mWnr*lQs�fGm
�nys�tk�k�sGyl*s�yy8�s,tGk�lp�yr8t(�tZktlGtkGn"�sGt*l5{r5@bfhklmnprstwxyGkN;l6�mGnr*sGy!kfl�n�s*t�yGl.9t	pThxk!}l0#mnSrGs&t*nGsZtGyGf*k5nGp*s
t�ykl�npfrst�l$�nrf�k*s*y�k*sl*n*s*t*stn*sOs*s3t�k$�l*sxx	�fkflGm*nGstGyn*sGk-sWf�hflQnGprs�kqsGkGt
fl�mnr�s�t�x*y&s�x*s&yfl,sGf	Xw=fl5n�s*t*yGkflnWst.9wy�s�ksn&pr*s*tnn�x*@bfklmnvprstGwxGy*k�sFbkflGns*t/ytxx�ffr�nls&txx�txx*y
�f*k�m*�nGrs�txx*ylb�h	�n�r�s&tflGnAsGt	klGmnpstxxWl�n*s*t*s�x6�m*strs�lTtWtGbGtk
wtlp�kQm*nGsGtGm*s+t*l+�nfr*s*tGy�bn�lfr*sGk+r*s�yn*ps>b�nGr*s*tlAf	�bkn�p*sWlGnkn�x@bfhklmnprstwxyGb�r*s&klrGsGtGy*ks+t*m*n�kGy
,@!klnrs�tGx/yGk�s�yx@Gl*s*n^sPlk�lmQpGs�t�r
lmGnGprst�x=y*fGm*n*s*txxysm�k*l*sQbn�t�f�kGmrs&x�y*sE�t*k+r*s�bfki|mnp+rsty*l*sGxGf�k4�nGr�s*tGyWbGmGsGt+s�t=ffl�n*s*t�r*sGyGn�s�tG@*bkClGmnxr�st�xyzls	Ktfl*t*ygp�bf�hk�lmGnp+rst�wx*y*l*r*s7m�nG@*tGkflxm*n*sCtxx	GfGk*l*n�p�r*s*tflGnGp�klnr�sGt*xkdm*s&t�sWttn+sGt�nlp*s�bfGhklmnpstGwx&y*lGm�n�n*sGt>�n*s�t*yk*s_^sk*lGm*sGt�l*kl0stk*n*sGt*yGk*s&txx*l*s�tGl*np*sGtxx�rGs�kGr*sWk*szbCfCXklCmn�p+r�stw*x&y�k*s*y*nGpGsGtGf*k?lGnr*s*tf*l�ksl&x*pGtkflmSInU�r*s*t�m*sGn�pGkE�lGmGnGrGsGtlxmnGpr|stxmG�t*y�kl!IsGms*sWt�x�k*s0�lns�t�m�b�bE�fklmnrst�xy*s�tGwk*nr	�s*t)b�k*nGst0y�bl*sGnxy�n*p*s*t!Ikl*stGxPn�rColGnGsGyn*@*s*tbfhklmnprstwGyGk*lPm*s7l�r*sGtGf*p*sWtGn*sGt*y�k�nGrs*xZt
Gf*k*lGnfrGsGt.w*yn*sGt*sGt*yGf�n*s*tfl�n*s*t*nzr*s*tGkGnGt
b&fkGlmnprsHtwGx*n0r*s*tQxGlGn*s*tkn*psxhV�rsGxGm�prt�lks�t*xl*s*tk=�k�sGy*m�n*s*nGre[s*tfkU0mpstxxWl6�mys0�s�lk�p*n7r*s*tfl�nfr*s*ttn.p*s@bfhklmnprstwxyklGmnrst�kr*sGy'"fk*szt*y�kGyGkGnGszn*p*sGt*y�f�m*s*t*lr�tpfs't
�@fGklmnrst*wxyrGxm=l	*bfl*m~n[r�s+t*y=bGn*sGmGns0r*s
csfklGmnrstx�n�s�txx�n�st*yfl*s(|twn*sGy*kfl�n�stflGnr�s=�t*n*s*tGynOs�fGk,tflmnxr*s=�y&sGy�l^s�tfGn'�sGnr�sCn@bf�hklmnprstwx�ynrGsO�t;�tl*sw�t�n+t*yQm*s�f
�r*s&t	h�kfl�nGrxTs&tGytsr*s�txk*rflGnstaw*n>�t*@�r*sGl2rt�f&k*n*s,t*x8�yCfGk�pstGk�lWr�y<�fkfl|m5n-r�s&tw�xGyWl*n*sGfGnGtGk*r�sGta�l5ns*tnGrGs�t)kbfhklmn�prstwx�yGklr*t*yxk�nt*y�s&txx!k�lGn"�r*s*t/y?s�t	rlGm�r*s*t�hGk|nst*y�bGm*n*stxx�k*r*s*@GkJ�n*stxx�ffr
Zbahk*m(�nGp+rGst�l�r*s�@xlGmnGsi!tGxCk*sfklmnCprS|st�xy�l�xklGn�r*s7�rk*y�k*y*stxx*y�f*nGr*s*tC@�b*s�bGsxtun�s&txxGy
f�k*nGp6�r*s*txxGy*s't�bGf*k�lmGn0�rs
t�x�yGn(st�x*yfl*n&s*t>k*n*s*txxGkCm*n*r*sGtGmn*st�l7r*sw
G@b�fknp�sty�r*s*t�yxl*sGtkGsGt*nGw*nGp*sGtxx?hPLkl*n*s�t�f*@bVfklnp~rst\w*x*y	*@5kQlxmnrsCt+s�t*yGn	�s*t�yxk&t�wxlGnGs*yb0f*s�t*yrn�x	7<k5n+rst?wxx*yfl�n*s+t>b*k*n*s*txx7b=f.ka�lnGpGrst2�x*y*nfrGs*tGkWhtfl�n*st�kGmGnr*s�t	+b?f�lGn*r*stxx*fflQn*s@E�bfmhklmnGprst�wx�y�n?l?n*tGx@bfhN3klmonprstwxyfl�nsQw*y*lWr*sGtGl?s+tGxQnGtG@f?kns*y*sGt.x�t*nGr*skWl*s#n�s*x;�f*st?wTn*p�r*s^t*k$vl
&m5n$�rD�st�n*sGmdn�st�nGp8�r*s*tb#lxyGmns*t*y�nGw�re[s�t�ns+tb*n*s*t�x
lfGh�lm�n}stxxGyfl5n*s�k*l*n*sxx~bfhklmnprs*tw;`y�lGm*sO�l*l�sGb?kGn*s+t*y&kGnGsGn*s<�t�x*l�m*nGsGt5Cy�bxf�klxm*stGp�tGn�r*s*rGt0Rbxk�nf�p�r�s}t�bf4�klxmGnprstxw?x*yPLr*k�nGsRtl0�ryskE�x�fOmstxxk�r*sGywp7mGn*s
Qfk�lGmGn*st7axyl0#m*s�txx7�p&k*n�tn*k*xGkmGnprsn�n*stCr�k:�p*s	Qk&lGmnL�stGxyflsJXtxx�fGm*sfl5n*s*t�x�ln*sk*lGstQm*sQtC@bfhklmn)�prstx`w�xyGk*lzn*sGl�sGnGs*f*sGt*yQnGr�k*ns�txGy�b*n*sGt�sGtCol�s�tGwxx�f*l�nt�r*s�xf*kl�mnrstQw*y@lGx�s*ybflGnGs*txGlGn^s�t�xGk*t*s*xGy
�b*n*sbfhklmnprstE�wxy5k�l0#m	Xr*k>�n*r�sGlGnGt	�kGm�n�rH�s&txxGyns/t*yGkGs�t�@*lGnGs	�t�hflGmnqis�tGy+sGtGnr*s*fGsGb*klGmGnCor+stxxGy�m5n^&s�t*yflQnGr*s	Bbk*mGn�p*sCt�w{r*lGmGnfr8stn*s�lrGn*yflQnGp*sE�bxfl*s�xGf*k
TbklmnrsGt8xQlGs�f*sxyGn?s�x.b�h0k'�sGt*n*tGy	fGk�lxmn*pr�stawGflGnGs*t�sy@Im*sx�n*t
�bGfklmnGprstGwLcxQk�pGrGs*p�stGyfGn*sGmnstOk�yGkv�n5kfl*stx�hGlGn*s*xWbGnxp*s*t�b/�kGns*t�s*tGlGm~ns�mE�t0y�k0�lGn*sGt@bfhklmnprstwxybf�hklmn�prstwy&lGt�kL�lGn*nr5�s�n^sGt*yft�t�kxxkGlGnGssn*sT�f�n*sOtGl�n*s*tkl-�mGn`�r�s�lk�kOsGy*l�tGxlGrGn*s?t
b[�klGnQp�r�s{�tQyGnGt�yGn�s+tbP�fklm�nGp~rsGtGy`ln*s*kQsWt�k*n�s*tGwGyGk�n*st5^rGm*stf*sl*n*sbBfkm'n*pr*sSt)=yE�h+n*s*stzn*s	�fGkGnx*s.t@bfhklmnprstwxCy*r*szyG@Gk
�l]�r*sGt�yl'nGr�sL3t�nGp*sGtGlGm5�t	Cfl*nr*s�txw	�y*s�yG@Gk*s
'@xhGkxlmnpCrs�tCx*y`n*sGk*s�tlGsxtlfGk*n�rGtG@GbxhGkxl*sWt
]bfGklBmnstCxkZs*t/y*sxx�krsftGym*sGt:+stGmGn*sGthk�l�mGnQpxrstGxytrtyn�mfl	�sb.fGm*n*s*txx*s,yc/k�sGtG@bfhklmnprstwxGylr%�s�t�kZw
Bb'klGm[In?rs6�tGxymQp*rGta�x�n*s*t�kGl�s�bytrt,ylmnprs&t*lm�t�pt6Os�mJr}skt=�s*yfGm?n?ttyGk*sftGy'm�fkn*sGt*y*st*yrm�nGtBPx�ks	Xtff�ln/zp*stl*s8gkckt(�r/lz�r*s�xfk>nlstCxrn�mr�k*lt
�r7<p�r*sGk�m�pr7<t*w�yGbk5�n9�ps(kr�sf*sGt'lfkm.pst�y=�lGrGt�k�n/�pr�tk6lVn��k'm�lr*sk�b*fWk*mnr*sGtxys|t(�n*s*yn�slVn*s�fGtm4�n&p�rtV.sExkb�fCXklm&n
�p�stJ�w3y*l�s7r*sl�m+�nrsGnsft*y�kr*s0tGyExk�l+sGtG@�b�klR�mn46p+rs*t�wGxGy�n*yl*s *sGt`�r�mGt�ffl5nrGtGxpt@bf�hkIlmnprstwxyGn*p*sxx5kols�mGn+r*sGt	klmnQr�sGt�yGtxxun�st�m*s*txxk*s.9x*@l/mnSrst�w�x*yflGm+r*sxxfl%�nGst�n*sGyGp*s*tGy+n�s*tbGlGn
�p�r9msBtmfbG@lfGk(�l7�mGnrstx*y�nGs*t*xxGyGk�p*sxx!rGslGn*sGk*sGyf�lxma�nr�sGt
�m7akWnzp�k*lGnGstxxGy*f*n*s*tGy�f[�k�n�stawGn�r*s*txx@bfmhklmnprstwxGyWns�r�l*sGt	*@kl�mnrs)t*rkt*f*m?nxp*tk*sxn�l*t�s*t*st*tGylm�pGrsxx0y�mn?r*st*yVrrls*yGm*tp�nGtt*f�m*s*t�fntyzlr!�lMRr0�kln*s�t
�n?rsMtGkfl�m*n+stx�n*@l?nQprt�bk[r+stQx�y�n&stxx�f0f0n*skJXsftrL�m*f*t*yflm�nU�st�xGy*s�tfl�m5n*s*t	�klnp8st�xyl*t*y[r�stP�rk*tkt*kr*�b*yUls0t	b�lmGnrst*xknx+nk*tWxk.!p6n*sn*r*tt?w�nGkGl*mGnGrs�tkflxm5n 	sGtn�sfsGtbk�lmGn*sGk{�t%mt?@*kG@bfklnprstGykl*nrGs*t�x{mGn*sty�p�n*t!k*sGt/y*nr*s*tX�fGm*sGy3EkGn*sGtstGkGmflGmPr�s3l*s�bl*mnrs*t=�y&s*y*s}tPh*sGt�kQnGs@bfhklmnprstwxyl�r8s*s��tGy5kWlGmr'sGtGkGs?w
`�@kl'nrsGt*wyt�xrbGn*s*tGk�nQp?s�t*y�bGmGn*sGtunY�tl*nWt*yGlGmnWr*sCt*s9�tb=f�klmnrstC/x�yol*sGkfln}st*y*kGlGn*s*r*sc/w�n�p2�sGyGnGsGt
'fGklm*n*ps�ty�s*y*n*s�t*sGt*ytsGk*s4�t�n.p�r*sGty0�l�@GfknstGy�k*n�s*tSl*nGsGtGn+�r*s*t=@f}�klGmnWrs&txx*k8s�k8sft*y�k*st�l*s*n*sGtxxxy�fk�l�m?rst�h�k3*lGstmr*s*kGn*sQtlGr�sGtGwbGnstxxGy*n*s'txx�bf*nfr*s*tGf*hl*n�s+tGw�krs*y
Vbfk�lm �nprstwGxyGl	KnGp
ur*sGtGy*k*sGt*y�lrGn�tmb*sxx�b�kGnr�s*kl&m*�ns&txxGy+s*yflQnt�p*sklGt#lK�bQ@bfklmn4�prstWwxykGl�n*r*sxtl�lGtl<�m~JnGrs*tGfGmpTn	E�bSfGn�ps+tM�x*yfl*m5n'tGn&s.t
bkflm5n�rs[�tGyflCrMbfl�n*s*t�b�fGk*lGmGnGp�s*t�x*y	GkGlGmGn�r^s+txx?kflGn7r*s*t�p*sGkPLlGt
�fh�kflnrs(�tGy�bGk*nGs*tmGn*s8sWtGmGn't*n*p*s*t
*@�b*f*kl�mGnTrsGtGx*y�@Os*y�n*tC@bfGhklmnprst*wxyGln*r*sGt*stflztGlCn*sbl{mGn*s*tGx+l*s^sGt�kns+t�y*n*s�txxbWfGk�n*sGk*l*s�t	*bh�k*nGrs&txx-�p�f*sGk*lGrn*s*tzbGk*l5n*stxxx&mGn*s
G@k�l*mR�nrGs*tGyrs-�tGmT�sGn*s7�y�b+klAmGnsxb�n*s�f@bfklmnprstwxy*f}lr&tQkfpWsA5hE�k+lGnr*s�n*sx*l�n&rS�stGnGr*s*tf�klmnkWprst*xynGtGyfl�m*n*s*t�bfkfl�mn�rst*y*s*t/y�k�l�sGyGkflQn*stf*t!k*t�yGr*sGyxlnp�sGy8ykr�hfstxxk,3r&f!ptr!k*n*s*t�k*n*s*t*fGk5n*s�txx/yzk*np*stlrn*n8r*s	�bkGl5nr*s^txx�m*n{rn7�sGy�@9�bks�lGmnrxTst/yn*s&t�x�m*n*ssGy�n*s
Ab'f?k*lnr*sGt&xck�k6�s
@f,klWnmGnrGstr/�prmy|sQn*sGyprsGx.yrrt*k*n�s*t*ytO�n*t�kl;qnrs/jtkGncs*t&y*kxxhn p&s$txxn�s&txxn&t&s!xbf!p�xL�b&lmGnpGr&s�txx~ym�nb�rr&ts��n.fGk*np*stxGn�r*sr�m*s�m�bf?hkx*lmn5prst�wb�xy@lExn*s�b�ln*stxxfl&sm*n*s*t*lnC�s*t�n*s&tGkGnGst4f*n*s*t�kGln&psctGys�l*n*st�f*n*s*tpbkGn*str�b�pr�bGk-mGn*sGt*yp*sLIlfGmn
sm�s�kflGs�xGf*n*s*t@bfhklmnprstwxyr{sQkWs&klE�n/rGt�kQns+t*y�bGm*n*s*tdjb�fkl/nrst�xy�txxGpsGt*y�b�k?sOf*ffl/n*s*t*nrs�fGmGnGs*y
�kl"�mn4�prz�s�txx�kGn�s*y*k^sWtGstx@bfhkflmnrstwxx�y*r�@Qr*sL�t�kQlr�s*tGyUgfGnGr?sGx~kfl 	sGtrst*y.bQkF[m*ns�txx*fGn*s*tGyCk*rGt@f�npstm*s*tt�kxx*k6�s�rsysxGl?s't�r*s.b�f*�hGk6l�nstxyflGm*n*s'txxGy*ffl*n*s*tGyQp*szm*n*sCkl�n?r�s*xGbfklmnpstxGy�k*slGs&txx*s&txx*ykQn1�szt*y�kl�sGyn*s�l*sGy*kfl'm*st�slGstn(�sGkflGn&s�txx	*fGkfl5n*s*t�xGy*l�n*sGy *@=b-f�hklmn�p*r*st�w?xyf�p�f�l*sxxCn*sGt*s'vt*l*str,bfln�rsWtGy*l*ms�k&s*tk*mnWnlit*f*k�lGmGn*p
Nr4�s
Htxxb�f�kxm5rnB�sfln8�p*s�lGst/�r*nr*s*n*s}tlGn*s*tGy{mFbf�hi|klmnprs�tK�w*yCl	GbGk�mnc�s*tx*y�k*sGtCkGl*tGx	bkl*nrstx*l&n*s*k�s*s�tGybGm*n*s�txxb&lxm*nQ�s*tmGn�k*l'n*s*tGf&m*nGkGmGn	�t@GbklnrprsGt�xkl*s�lUTrk�k�sGylpst$�k-�nl7sm0t*s5tk*lGmQt'k*sTtGmGsGh+l0�mGn?pGstl*s?f*s�lCn
pGrtf�krs!k*s*t\�y�sGy�sGt@bfhklmnprstwxy
�bfhklmn�rsGtwGxmTp�l*sGt�n*sGyb*np?s�l*r[ut�@Gl�m�n*s*@*st7l*n*s�w�lsGt��tGb�hJ�klGmGnr}�s+tx*yCmn��s+t�w*ykGsn*s?l*k*nSs*ty�p*spt@�bfGhklmn�prstx�y(�l*s�l*sGxGymbGn�rs&t�xn	�tK�ks+t*yfl5n*s'txxGb*rlkGst�l�k�lGmE�n�stGyk	�l*sQts*kGn[s	�bzkfl�n�s*t*lGn*rsGt�yfl
.nGt�flGmGr*s�t{n8sW@bGfhklmnprstwxMyGk�n*sGtGw�ynk*tfr*s*xf �hkGlGmnpstxx'l*r*sFbun*st�f*n*s*tGkl*s�l0�rzs�t�w�k�mGnsGt�sGn�sGt*bGr*sQtfkfl&msGtx/x*sW�t�fzk*h*n*s*t
ibfGhCklmnp�s2%tW�w*y*blGk�skn*s+sWt*s?(t�ls=�fGk*mGnstflGmQn*sl*s*tn*st@�l	fL�k�lQmnrrs*tfl5n}s+t*k*l?mGs7<fGn*sGy�r�s�bGf�n*s&txx�@bfkn�p{rL�sty *lr�t�p(�lGx!k*s/t/y b*n|sk*sGt*@�k*nr*sGy�k*s�w
@bfklnprst	�xy	Xr*s	*kl'nprs4�ty�ns*w*y�k*s*t��pU�s�k�lsGt�s�t*kst*ybflGn*s*txxGyklstxxl
wtt�r*st*yrmkrskpkslkflknksnf*sl7$k�fGl*n*s*tGy�lr	�x�b&kl�s&txx�k*s4�km�p*s7t�b^f�k2nrsGtp*s�y@bfhklmnprstwxy�0klWny�r*s:Yt*sWtklnrst�ks�tGfk�k*nr�t�an�b�tk�s-�x�bl�n�b�f*kQn�tk*s#�rbklmnr*stxy�lGr*lt�xGf*l	bk�m
n(�prt�w�y@lTtkl*lft*l-�xkQm'tx�n�b�l/s*l/nxr*s*l5�n!dsmprsGty	XlGnt\f�t�tps_�y
�@bf,�klmnprst�xh�tiyl(�n8�nb#�k�nrt*l0r=�kmfb�lnp*s�txstt*f�n�k?slGpr�st�nxy��h*n�tGl?n*bfkWmxrstklm�tr-�x\x*n�stnkt�f�f�kmQrtm�rk|nrfl*s�tbRf*tt*nfr!r�tzxklmn�stxxty�l�k�n*lGstst�r�kGn*tk
umnpstx2l�t*l�m*slpt	�s�t$�n�tn�k<�fk�m�n*st�xNm*s�m�@xfkn�st7h�k*l��nt�rfl@r�s�rklPm(�nprst�knrfsWts�tt
r�bkt�n�nfrrfteDtdWk*l��t�k'lrGl$p*sfkGnr�st�kl*mrs-�xmk�mdxxn�b*f2ly$�s	fklnpr�st��xnprx0qn�s�kldx�nTkp�s*f�m*sGy�bf*kl�mnrst�ym�n5n&st�k*nGs�x	fkl�mn(�pstxtx�b
.m*s�n�nrtm�s�xn�fGl*sGsx��yktr�p�r*f�k�b�nGnyk�l�b�ks*yGnp�n�t�bfhklnp�rst�xyl#�n�b�myV@$&fk�r
�t!nQk�t0t�wrsn�Btpstnr*s�tkGl�tt�nGlnm�rGt�x�k�mn�st*f*n��@*skl�mnp*rst0w�xy�k*lnWprst�bGtmk*n*l�s?l�r��f�k*p?r*l*nst�x k*s�tWf�s�f�kmr,ls�tx�t*n�tl�s*m�n;�t*kn*pr*sGt*n?tkt*ntJ�rWk*l�km*sp�@4�@�bf2hklmnprst�wxy@lr*sxpRn�rsP@tzx�b*k?n�tZflk*y-�kn*s�tGls�t�xt�rG@lf>�m?r*st�x�k�n*srtTx*fNm	�b�f*l�mn�p+nt-�x/yGks$&fprnfs*tk.!ptl9�nr�Js�t.sm5rp�nr3�k�km*s�xns�t*m�t*yn�kK�l;�@;�f;�n�p?s;�t�kGrGtGfkl�m�nT�r�b*smEun�yGkTl�Xm*n*sfbGfkl�mnrt�st�xGy(�n*s&mnsxt?w*x�k�sGtGm*sWtG@flGs�kGn*sU�lSn8s*tbfhklmnpstwxJ�yhQk�l?n*r*s�xkfbvsUtyr�lx�l-�m
umn.Os*t	Xm�s/�kn*�p�s*y*�sb�knvs*tGk*nMRt�b*k*lGst�m*r@n�ps*k�l*s*y�fyx�l�te�@kn*s�tGnrGs�t
;fk�l*n*pr(�sGt�yfl��nskGn[slWfnxl=ks*n?s*tm�n*s*t�k�nBBs
bfklmsnprstwGyGk�l?n*s4�lrGtGt�y�@GfGl�m�n�rstQnWr*sGn�rs+t*yfl5n*s*txxG@GkGnGsGt*kp�r*sxm�r*s�wG@GlGmGn*sGt8�yflGm�nh�r^&st*s&txxGy
�b&fGklonrst�yrkGn*s*t*yGlGm*sU�t�s*tflGm�n;�@kxmGtl*sbf�hklmnprstwxyGkl*nn*st*y*s
�t�b!klQn*s+t/y�kQn*s*ylxmGnGp�rGsGtQ@&b*y
Gfkxmn�ps+tm_w*y
�rfl*m�n*s*t&kWlr*sGt*s�xGbhGlGnGs*t=ms�kGpGtbfkl�mnpstxGyk�nSgt!k'l*s*t/ylGn*sy)s�nU�st*y*s�tw@�k�n	l*mGn0p*sf�t�wxx�l*y�ffl*n*s*tGyWl
n�s bh;`k*lGmGnp*stn�k�lGtlk�y�lGtGk�n�r*s*f*n�r*s*tGy@kQlnsGt�x�ns*y��t*n%sGl�n*sGt_�k�m*s�bCk~lnsO(tGxkflQnsr�flnr�s*t*y�s�hl*sGt�w1�st*y*mGn*s*t*y	�bkxlm
.n.rGs*tGl�sfle�m*n*sGtq�p@bfhklmnprstwxyGbfkln�r�stGw.x*y�nyxlk�k?s*yn*s*k#mGs�kGn�sGt*y�kGmGnGs*t�kGn*s\bGkl*n>rs-tkGm�nsGtQ�x*yflGnsxx"�p�s+t�nGt�b\fklmn�ZrstWxy*stx�b^ffl5ns*tCf&n*s*tGx�b*�nr*st^fkGs*s'5t�ffl�n*s+t�lGn^s^tysl@t5n*�r*s*t*knQpGstxk*s5tkGn*sbfhklmnprstJ[wxy*l*sGt*l�rsGtQxOnGsGh*lGn�r*s*tV@�b{h*l*m�n@r8stxx*y&knGp*s�t*xQy*srtbfhk�nGp7rstxxr�s�n�r&l*mGsGmGn�stGyflGnr*s*t]kn*s*s�yY�lGm~nt�s��txxGy
^fk<�l�mN�n'st�w*y�nGf*kGlGn*sGy	�b4�fk$[lWnr*s�t	�nrlf*m�b6l*nTrs*tGy�kfln�sPLb*n*s@bf�hklmnprstwxyGnGrGs5kjmlGnGrst*y�tlnGklrGs�n*s/t*yGk*nrs*t?�bklzmnrst�wxx*yQlB)mlkm*s*y_tGm!Is6�fm�nGp|sGy&k*n*s*t46kBBm*nGs*t*f*nr*s*tGm*y�@!7k?n]s*yb,efklnp*rsS�tyGk~nfr*s*t�ln*s*t,etGf*k*sfr*stGyr*s(�n*yfl5n?�s*t*x*yGl�s@�tlGrTt@kHlGmGnprst��xGyr*s_pln*st@)s	Xf�k+s*t*k'ntnZx*sft*wGyGkCm�n
.p*s#BtGybf�klGnrsGtxxGy@lQn*skGt*y�k�sGy'm*n*s*t*yfl�mQn�@+b�f*l5nst�wxx*yGn*s&txxkl�m�psCt�y5{rU�st*y�k*n*s*txxGybGfhklmnr*st�wxxy�lzr*s&kGlGm*sGp�s*y�n*st*l*msmflQn*st*l5nrs>b�f*n*s*t
�bkflCns�rs+t�wxxQffl*sGn&sth�m*n�p*sbfklGmnrstCxydllGr*l&m*s�lGn3�r�s*trsGt*y*kflGm*n|sGtnfpsGyfrGs*nrs*txx*st�n*sh�p*slmnQ@Gk*nGt�l5nr�sGt*y*st�t@bfhklmnpX�rst�wxGn8sylxtQmnsy*k�s4�y�f*k�lQmt�y�r�blm�nrt
�yjVnt*k*l8s]�sGy'fy|lts�fktrlOyG@f*nr*surty*k�n}s*krs*yWlOsk�mv�rsZtCxZ�l*mt �rl�pr*s*t*tpy	b}k��l=�m�pstyt�y'y*s)y�k�kl�sWm�nQp
�x�GmrGt
+mbfklnp@rstxxGyolr�t*y=kX�l�r7�lGn�r	�n*s*t�k*lnGsGt+st)=klGmn&rs>�t*ks*tGy�kGl*sfl�nt�b�fGn*sGt*@[f*n*r*s*t-�x@bfhklmnprstwxyGn^&sf@GlArGtG@�k;�l"�rGt*yxf&l�on*sL�tGb�h&ks�lnrstCx<+yGf+stfl�r�f*st*kQtt
.rl�mGn&r&t�xQn�st*y$�kGnGpst*yfl5n*sGtxx5rm*sGy.bnGr*s�kGn*s�xGk*l*ns]btGl*n*s*tQy$[lnQpPLr*s*k&t*@'m*n�p�s*tGyfklGmn0p�rCstGxy�l�nGl.]szbGkGsk*nr*s�n�pl*s@f@bfQhklmn�prst&Pwxy/l�kl=r*s�n*s
�k�lQn�r�sGl&nrsGfGlGm*st(�l*s<�bGmGnSs*t*yGkJ1m�nQr*sGt*nGs�tx*lr�bGk�n�stxxw�y^f�n*s*tGtyUlfl-�nr*sftGxWn*t�hxl�w0@WnGta�bGkCl�mnGprsapt*y�bGkfl*n*sGt�mfGnp5�r*s�tXzw�@�n?ib	xfhklmn*prstE�w�xyAn*tlJ�nGrtGp*s�y�p*s
kflm�nrs&t�x*ys*n*s�t7<fH�st*yflGm�n*sGt�b/k��n*sGkflGstk*slfl�r*sGk*l~n6�s*t*y	lbfklGn*sGtGy�lQnGkGl*s^s*y	Gk*lGm*nWr*stxxfl*n*s*tGy�kGr�s?w*x@bfhklmnprstwxynr*sE�y*str*syxQk�sbln�rs�txlst*y#BtGf*km*sCXt*spt*s<�t{,nbkl�
mnrst&wxy�l*nr*s*t�k�nr&st-�x�m*n*s
�txxCf*r*sk�n*s�ty*n+s�t=� �k*l5nGstx�bffl5nstGyGf*sGyxlGn>b�k*lns�tGyGs�x�b*n*s�t	�k7l,n�r*s�t�x�y	�b�fk7lnrrs*t�l*nGs�t�xGlGn*t*yn*s*tl*n*s*ts*yGm*n*s*t�xl*n*skWtQs�tb�lxmns&t1t)=x�s/t�xtr�kGn*sGy	�fklmnprstxxy�l�mn*st)=x�txx�fGl*n*s*t	@fGkmns&t�x*y�b*n_�p*s*txx�k*lGs)bmp*st�k�s	Q@bf�nst�xGykhr&f&l!pQr�st�k*t0�k*s.9x*s*txx/y*@�b&fkmnst�x,�y�l*s.]b�n*s#Btffl5n*st*yfl�nsn*sf*nfr*s*tmfrsty�l�tfl�n�tQlGn?<rGs*tGy*ns�m	,�fk�lGmr&sGtx�b	rl"�m*n*l*n*t@lGnfl{�n*sfklmnpst�xykrflQnfs*s�txxGl�m*ns&txx*y*kflGm*stk*n
up�s*t*y�rn*sh�r*skx&s*t*k*n*s�txx&sWt*fflQn*sGy*nr*s*tGyvnGtm�s�t>�p@bfklmnprstxyGmGn/s_
lzr�lQsns*tt*f*k*l*r8s�l*n*s*t�k*sZt*yn*sstfrxun�Ipr�st�x*nr�s*tl*n*stxx1+fmnurt�ffl5nWrs�tGb�kfl*nGs�tGy^OkGm�nfr*s,tGy
bfk*l*m*nr*st�kfl�n�s*t/yGl*s�x�k�lQn�szt)Mtxx*l�nGps@Ghk*lmnpstx0y{s�t*lGn*r�s*t*l�n*ss!x�b�m*n*s�t*s�x;�l�npGstl*s*s+t*yGmGn+bGfGk*lAmGn�rsGt	Xw*skt{l*nym*lQtb9�fkl�mnrstxy
�l��s&kn�txxts*n*s't~k�nsvtxx}y*fsm@k�n+st*nr*s*tunht�x	fkGm.Onpstxx
�rT�t�Kx|rrp&s*tAt�x	�f�kfl�n&�r*s�xGyGl*m*n&stxy6rn�l*n*s*tx*k�l*l*m*s	�t=�y?fn^s�txx�l�m*n*s�tbxl*n*s0fkQl�mnpGstxxGy*ns��txxtr*s*n*txxckGs�tb
.l*k*nrs*t�xGy@bfklmnprstwxyQsrtGxyGptr*sx*lzn*s*tGy�b*n*st)=xGfGn*s*lnGpr*s�txxk*n�bptxxf*sfl%s�k*nGs?tyt*n6�s*t�b�npGs#Bttxx�f�s�kflGm*nGst	>bWffl�mGn�s*t�xkGnrrsttf*nGs*t*n^s+t�b�f�n^s�txx�k*m*nrs*t�bfl5ns+t
kl4�mnr�st�wyl^s0�n*y�k�n�sWt*yfl+s�t�xGk*l*n�s&txxk*s&txxt7mn#txxGl�m*sCo@�nKn�kmGn*sp*�@��tbfxhklmnprstWxyGl�rln*s*tGx/yxp*s*y*n*s
�txx
.]blm�nrstxy*n?r*styxk�n*sWt*f*m*s�kflQn*st�xQl*n*s*t�b{�f�k}n?�r�s�t7n*skn�s*tU9yxx*y�kflk*ln*sF�r*sunhtxx�k�lWhm*nstx�fGm*sQk�l*nr�s*t�l�p*s*y*lGn�slt?ns'mGt*f*txx	�kGlGn&psctxxGy^fGk*l	�bkGl�mGndp&st*l�nln*s*txxGyfl*n*sztxx�xm*nfr*s*typ�k*n*s*t�f*n*sGk3nGs*x
�bGkl�m�nrsWnt*y*n}sft*y�n�sWbgf�n*s*t@bfklmnprstwxy6mGnsyPp*t(6pGk	rl?nGy	�bkl5nrs$[t/yfl*sxxk�ns*y�k�s*y'nGs&t�xGm*n*s't�x	l5nCpstGwxx*y*st*yr*l?s*nr*s*t*l*y
Sg@6OfkmnGpsF�t*ytr*kVs�l�n�sflm*sGtp�yCk�lnGr.s�-k�sGy?@mb
Uf?hklGnGpst?w�m*sftrst*yGk*l�pr*skGl�nrt�xstflQn^st�f*sGy*n*stxx+b�f�l*sGnGsWt*yfbCf*nfr*stflnOr*s*tbfklmnprstw�xGy5k*lt'l*skflm�nGr�sftWl&s#nlnPprs5tn�s�xl%ss!tNn*n�t*s�tn*s�txxGst�xfl*n	R�f&klnpPjrstn�#l_^p*srxnQ;s]tfGmn�k*s*t/y�sftfGkRp�st�xykl�x�ml7r�sPk*ym�sft�nrs!ItPnt�f�k*t
�x
0fGklx&mn*rrstGy�n8s*yst�f�m�m*sGy
sknxstGs�;tr*skt�!r�Kk&t�mGtGk*s�tGln�b�l*n*s*t�f!h�k0l*sx@bfklmnprstrp�s�tGy�b'�lmy�ks��x�ksln 	s�tkt*y*kQsWtQx�kns~ttr*sGk�s�xGylsry�sst@Gk'�l*sGy��f*�@kk�m�s*t�x�kfr�skl��mr4yfl*sWx�k*kGm	Xn�p�sGy@bfhklmnprstwxy*wl*nGr*s*txx�yQn*s+tGyxZkl46mFsQn*ps*yGn7arGsGtGb?�klnrs�t�bflQnr&sGt*ys+t*m*n*s�txxGn*stk?(tGk*n�s*t*sA]t	=fk`�mn�s*tGx*yGs�tCk�ln*sGt*stQk*l*s*t
 b4�klGm�n�rstx8s*y^s+tGy
�b�kflGmGnrLsGtGy�l?�mGp&t*fGnS�r*sGt�bfklmnGrstxy4�k*s*t/y=�blnr*s	�yQs*y,fkCm*n*s}t�w�kl�sGyVta]nGk�ls�y�n*s*txxfGkGlsn*s��t�mk*lQnGr�sztflXt�k*l3mGn*sGtGybGl*n*s*t
'bQk!}lF[mnpGr*st-�wGxGy*kGs�x�b*l�n�txx&lGmr*snH�s�fGnr*sGk�sxxGy�tfl*m&n*sGt�l�n*p*s�b>fhl'np�r*sGt�w�xcFnGs5�f�s/tGk�nbf�kli|mn.3p�rs'twGxyGklxt8�n*y&k@l*sGtr*st*y*�nGtf�kQl*nGst5tlflQt�b*n*s�tGkWl*ss�tExn@�bGfkl'mnrsBt^\k'n*smWnsxl*s*tGy*s!Itn'r*sf*sr-�tkxx
�yE�@Wfhklm�n*pGstGk*s?tCs�yy�sWt~nt�lGn(<r*s*tGn*sxn�k�s*y�y@bfhklmnprstwxy
f�hk6l*mnrs*t@lSt�l*s�kGm*sL�trs&t�kxtx
&@Gbfkl�mnrstOx�yl*n�r*s*t*k&l�n*s*t�nr^stxx/sb*nr*s�f?hkst%'l*n*s*tGnxt*n�r*s*t�@GkGl�n&st�yek&b�m�np*stGr�xflmQn?s�p*b�klGmGns*tGn*s*t�x
bfhklmnrstwx�nr*sGtcx�n�txx4f�l*n�r*s*t*n&s�b*n&rOstxx*ny~r*s�bfkm5Pnrstx*y�bGn*r*s*tunstxbfl�n*s*tflQn*szt4�k*yfk5n*s*tflQnztr�fGm4�n�n*s*t(�sGy,t�nfr*s&txxnr�sb�l*np�stxx*f*nr*s*t	kfl�m�nrst&x>f*n*s*t@b��kflQn�t?wGn�r�b*n[r*s*t
�b�cfkGl�mns*txrtxx�n�txx�f?�m*nr*s*tQn*sGy*n&st+xflGm*s*n*srt�b�m�n*s*tFb*lqn*stWxGl&n*s*tb� fA3kdl�m�nGp?r*s*txx�b*l*n*s*tfl�mn*s*t�l*nfr�s*t	bQmc�nr@�s&t&xyl*n*s*t�ttr�t�x,@bfhklmnprstwxGyGkzl?n!ItGy�lnr*sGtGxb*n*s*tGymTp*s�fln�r*st)=xm�bsxx+bsn*s*t*f*n*s&txxbkflmnrs�txx*y*l�r�l&txx�b�n*s�txx*nrsGt*nrs+t
Uffl*mQn*st�r*s
bxfxlnp�r*st.9xn�n*s�txxcst�bGl*n*sRtxx�k"�l{nt�rts&t*l�m*n*s*t�bfhkl	Xm�nrst�xkxlrmtn�txx
�yi�r&t�x*mGs�r�s&txxsGt*yGm*txxGkzs�txxkl5n*st�<xGyn�r�m*n�b*n*stxxfr|tr*s�tk*n*txxtx�b�f*n*s*tn*lfr*s
�k&l_�m�n;�p&r*s^t.9xGl*n�r*stxx/yl&rrs&txxG@�kmn&pst�w�xy�n*s�t^fflGn*s*t�b>f�m*n�s*tsbt
bf�hGka�lmnp*st.9xGy*r*s*yflQn7t"�nfl�sGt.9l
�r*sQ�tGnr*s*t�b�n*s*txGyGn*p*sbfklGmnr�sqit*yGl
.r�b!kfl*stxx/y*n{r*s�n*s*yD�k*sGtGn*s*tGy*kGl*m*sGtflF�n*s&tbf�hkmnprstwxyGklGs*tGn*st*y*n*sGy�bGk�n*s�t	�k*lnrstxxGyfl�m*n�sfl5Pn*s�txx�bn*s*t�k*nGp*sk*nxpx&st&x*n*tcx�l*n*s*tl&s�t�y*stGy+b0kGm�n*stxx�kGn*s*t
bf�k*m*n�r*s�tGyflQn.stxm*s�yn*s*t�l*s�x7<k*n�p*s*t
bfklmnprstxy&klnrst�n�s*t*yk6x�n�b�m*n*s*tQx*l*s*t/y�b!kGl*n�sGt/ygbn�r&sGt� fGs*t*st*y*np*s*tl*s*t�ybE�n@�r*s	Gf�k�nrstCxGyl�txxtsGkn*stxxr*s�n�txx�f�kGn�rs*t*n|s*txx&klnrtsttm*ns*thyntttltWszs�t�kGkQm*nGs&t/yf�lQn+�r*st3lQlGn�r*s	�bklsnOs*txx�y&kfl*s*y�k*n*s&t�x*y�kGn*s*tGn*s?y�@bfhklmnprstwxy&kl*n*sGt
@klnrs&txx/y�m�r&txx*s�t�xGy�s&txx�s.x�m*n*stb�k�m*n*s*tl�t�tf+�klnpWrstx*y@l�ntGns&t�xGy�rGk�mGn*st�b&txxEk�nsGt{yct	,bCk{ln�r�s&txxcs*tx?ntxx*ffrl�r*ss=�t*m�n*p*f&k*l&msnpr*st�wxx�k�nGslGmGn*st�m*n*s*txx�m*n*s&txxGy@�bf�hklm�nprs�t�wxGy�k*r*s�wGn�rGf*s*yfl�nrs��r*s�nGp*stGy!k&s{f*tilGn�bGkGlGm*n*sGtlnsGt*yrs*y��l*s�mGn*s{ b&fGhklmnprstWwxylk&xzn*sxx&kZn*sGtxxknT�rstxy�b*s�txxfl*ntcxbfl*n*s*t�b^f�m*n*s*t*n?p*s*t*kn*sGtxfl*n=�sty�mn*s*t�l�r&sGtb�fhkC�mn�pMrstxl&txxns&txxFbrlf�mGst^fGln�s*tt�b*n*st�xfks�txxFb*n*s*t�b>f�m�n*s*t�fk*n�st.9x�k*n*pr&s*tGy
Fb�fGk:xlGnrstx�l*n^s&txxGy^ffl*n*s*tGy&n^s*kcn&s�b*n
�b4fkln&p.OstGyX�s&t&sft*yckfl*n*s_
t�bGn*stGybf�hklmnprstwxy
*@Gk-l�m*nzrsGtGxk	�b�l*n*ps�t]�x�y*n*r*sGt	li|mnr�stx*yQl*n?r*s&txx*y�l�m*n&stxxflQn�rQn�pxxb&l*s*tn*l*ns*t
bf�hk,n*stxx�y*l!r,bn*s*tG@�t�xfl4n*s*tb�n!p+r�s5tlsn*s*tGy �@bGk-�lnstxx*y7�tGk"lGm�wGy>f*l�m�nrs*tdlZbkln*prst)=x*y*st�b�f*n*s*tn*s*t/ytn*s�tfls�
t�b^f7r*s*y
�k�m*n+s�txx�y� f*t�rf�kGn*s*tk'n*s*tGy�txx	�bff6l"�m*n_�p*st@lQn*r*s�b�GfQlsn*s�txxbfklmnA3prst=wx9�yl�nGtGtcx!k�lGnr�s*t*y(�nfl*n*s&txx�mGn2�s*t*y*s&t�x+s�t�x�bk{lGmnp*stxx*y*stxx^f*nr*s�tk*n*s�t.9@=f�f*s+tGf�m*n*s*txx�yf@Gl*n*sGt�bn*p*s*tGxGlfr*sknl�bGn*s*tq@xrdn@bfhklmnprstwxy�mr*mp�s�tGyGklu)r?stk*n*st*y�k*n�s*t*y*s�tGy�b*s	!kl*mrns&t�x�yQncp*s*y�bGk*lmnGs�t
xblmn�prstx
Gf*kGmnrshtxx*yt@�l*n*s*txx*yflGmGn*s*txxnIBk�k?mtlrfGm�n&txx�kGr*s*tGy*sct�Gf*n*s*t5*n*s
bfk�jn�rstxx*y?l-0rr*s*n*tGy�k�s�tGyGm~n*s#Bt*f*nr*s*tGp*y�bnpstxxQ@s*�t�k�txx*n(<r*s*t	bk�l�mGna�stxxGlzr�l*s^ffl�n*s+t*klsttGy�k�m*s�yt�x4�bfkcl�mnGp�rs�t�wxx�ybl*n�r*s&tk*sL�s�lrGstxx*n�srtxx�b�f*l*n*s*tfl*ns*tcx�l�m*np^ls*t�xhk*tFbklGmnpGr&st*yf�k�n�pfry~r*s&f*yst*stfsQnft*n�x*kfl*sl*s�yGk*n'pr*s*t*y�b�kl�m�nJs�b�fklmaln7rs*txxs&txx*k[sxfk�m*n*st*yr*sf�k*sGyytn*sf@GkGlGmGn*sRtmp�nGpAr*s*t�k�ns!�t*h?m*n&p}sGt�fkl&mn&rsC�t&x*y�b&n*s*t*n�p*s*t�b*st�bGn*s@^ubf*h�klmnprstw*x*y�l�n�s*yGbnGr	�nt*s�x��l*n*s*t�m&n*s*ts.9t�n�t�lGn�rL�s*t*@*n*t2h@zklWnmGnstst*y*m�t�bGh*l*s@bfhklmnprstwxybf��lmn�p*rs*tw?n�rQy0�p*kfl�m` s�t@��tCy?s�w*kGl��s�tG@bfhklmnprstw
uxJ�yn*s�t�yrsGt	j�k�lEm6nrstxx�yGm�sf*kl*n*sRt�xxmCtklmnrN3sttxxf*n*s*tflQn�st�fvnGst�npGt�k�nk*n'rstl#t�sxx*yGm�nr*s�kGp�tk�n*lr
b�fmn�pst�x*y=�rfl�ns
txx�k�lfr+s�tn*s*t�s"�n�r*s*t*y	kUVlnQpxrstxL�nr�s*t_ s�txx�b^f*n*s*t�cf*l*ns*t�nn�k*s	fklm*nst-�xt�t�x*lnt�sk*yPnx�m*n�fk�rX�sWwGsWtWb�l&nU�prtxxfk�l*m�sxx�Kx�krGfGmm*s�l*m'hknst�x�y�n*stxx�n*sfl*sGx@Gn*sGtGy
f�hklmnp*rst�x�yunGsGmun�prxx&b�p*l*n*sb�n�p*s*t�l�k�ssxWf*s�t*knrrstxx�yGstx�f*t�l&txxExkflGn*smHtGy�nt�Pxb�f*n*s*t�bfklmn�prst�yGk��l&txxGl*n�s&t�xQn?s+t*y*kn*l?n*sn7r*s'@txx�hkn�ptxx�f*n7r*s*t�n�sGkp*t&l*n�r*s*tx*f�n*s@bfQhklmnrstGwCxyMRt*l&t,bkl*nsGt�x�y:xlSnxprstxx*l*n*s*txx*f]�n*s*t@�bGkfl5n]prstGw�xGy	XrflsGyGb'rGtx	�n
�@f�hk
ul*n�r*st?l�nGlGsGtG@>�n*s?y�bk�l*�nstGy�l_�n�sGt�l*sGydjb�kCmn*st�wzs�tk*n�prs�l)MtxxQfb�f
�klGm�npGrsGtw�xGyGk�l?n�fGnysof?st�l*l
.p*tGrGtGnGr*s't
Gb�f	�kGlGmnCrGstkWksGh�m�n*s�@bfhklmnprstwxy	GbGklnrs't*yOn*sGt�f*s^sGx
B�fGklEn�rs*tGxGy*n*sCt*yxlr}sGf�s
l�mGn�rs�tGwxx*yG@*ns*t*ybf�hk|lmnprst�wxyGkl*s*@6l*n*sGtGxMtl*nGp*sGtMtmGnsGttflr*s*nGs*tGrs�t�p*sGyGl*n*st*nr*s*t�l*n's*t2�@Gm�stGy*k*m*sGy*f*l*st�k�s
*f<�k�l*mGnfr�s*t�xr	lGnGps*t*yGt�w
bflnpst�x*yGk*n�r*s*tl��nr{k�txxnGs�x�k*n*sf*stk&t�x�l*n*s*txx�lGn�rsGt*y�fkp&stxxGlr&b!pk�txxn&s7x�k&s�@E�bf�hklGmn/�prstxGykl?n*sGt/yunxx8�nGt*y*nGr*s�txm*nrs�t*yflsy?w*k*lGn*s�t*y�b�f�hkl"�mnrs*t*yQl*r
�m�s*yCf*s*lGn*s*tGy�lGn	�fkln�r*stGy�r*s&t�m*n*s=fGh*s�k*n	�sbf?hklmnpstwxCylGn}�sGt*yGn*s�t	!k*lGnGp&s*t�x/y
�bZln�pGrs�t)=x*y�bWkGnLs+tWw*y	%mbM�h�knp*s*tcYxG�kfl�t*n*s*t�x*yb�fa�kGn�pO�rs�tx*y*nsGtGy�blGnst�y*n�[s*t*nr*s*t�lGm*sCtn*sCtGyMRk
^fGk�lGmnr*s*tGyrsGyGf*l*sGt+�yGmGns*t?�kflGn�ps*t*y@bfxhkl"�mnpst#w/x*y�ffl*s�k*lGmlknK�rO�ns*tGy*fQk�mt"ka�n,3st�x*y@k*lGm*sGyl*ntflQn?sGk�nQr�tfflGmn*s�jt@lQn*st=�n
G@,b^f�kxlQmnpr*szt?yG@lf*sGt�lb*n&txx
b/zfklmnxprstTmxGy-0rt*nGy�byk�n*s*t*yGr�s#r*s~�k*lnts*t�xGyfl}s*kflxm�n*s=�t�w&l*sGy*n�r*s*t?y�bflxmn�p/rs*t�w*yl*n*s*t6�s*yb�hkl*nGprsUxtw*lWrkGp*sGb&kGn*sGt�kCtkGlGp�r�l*sGtGx@bfhklmnprstwxy>f*nr*s*t
�l*nr+stGy�n^stxx*y*nfr*s�tGybfhklmnprstwx*y*lvns?b�m�p*k�stGxn*s�tl>Yt*pCt	�bfl�mnrst�.n�nr�s t9�ffkWlst?s�ctrtl�t�xsflQn��t?nr*lt��kTkt�k�s��mptLl�rf�k�y�rf�kQn^s/t*y�.l@*k�lGnptwk6Olr?sztxfmf	fGkl�mK�n+st�xl?fmkQn?s3*yl*n��rs*tzk��l�n��prst*y�fkpst|lTk?l�f�k*y?s�x�r*yfkzlGns=�tGy�l��rl*s/t�rt�x*npt5�k�rfk�lmn5�prst�x*ns��n*nr*s��f�@�bQn#Ws�t|n*tt�n*fmGn�rslyf�k*t
?bf2hurlnprstQn�t*l*s�y*n�r�fGnsGt*npt�l�xrk�t�xm*rJn*@?lTn�r*tfln*ssGl&t�klGmnGpstwQ�xGyG@*y*n�r*s*t*f)kGn*sGt�b�rfxmGn�r*s*tGmGr	�kfl&m?n[rGsGt*y9Obln&ps~t*y*nGt*y� f*k*lrs+t
E�b_^fk�hlkm*nst>xGnUTrsGy�l�nrs*tQwGy*nhs*tGfklGn*prstw?xyGf�nGsGn^s*yQn?s*t*y
�stGk(kr*xl*sk�h*kGmGn*s+tw�ybfhkl+�m~np�rst�wxyGkGlzr�k*s*t�ynt|os~lGn*st*y�pxsflGmQn�t*nsGtxxGy*l*nWl0Rb4f5hk*lmnprst�wYxGyh*n*s*t,mWb*nGxfl*stp*sGn*sBtflGns+tGyGlxp*stGnkWr*t~�r*sGyGn�s*t*xxyGns�t*yflGnsGt@bfhklmnprstwxy�bffl&nrstWw*xGy�lGn*s*t*yCn*tWla�nblGnrGst*wCw�n*t*yGfflQnGr*s�y
�kl�mn&r8s�t�w�x$�k*sGtkl*n*rGsGt�bGf�hl
+mn0rst*yGns*t*y�kfl*s�kGn0rst�f*s]k*s�b)ktGk*n*k?r�@�b|�hkflm��np@rst�w�x*y�k}r�sGt*y��n�kQr�kflGn*t*f*mnr*sGt^st�nfs*t*kn?s��tGx*yE@*sG@f	�h�klmGn/zpJr&st�xGy?l?nQr*sun*s*yb�l
�b�kGlGm*n�Dp�rEs*tlmGnrst?w
Uf�kmGns�t*ydn�t�b!nnf�nGs*t*t�}xGn\t*knfr^s�lft	?kflGm~n�rtstGyGnr�m*tzbk�l?in*st?w�l?m*n�r*sGt�b�fk*lm&nprs!pt=w�xyflmGnGsn=�ts�tm�k	XlGln�p*sGys�pGm�n*t'p*sEk*sl3mnGps*t*y�k�l*st~yk@flxr*sGtPs@bfhklm5nprstwxyGp�r*sGt@?klGmnr�st^x*yGk5n*s�tGwGk*nsGtGkGn*s*t	bln�rsGtGx*y5k*sGk5n*sGtGw*y*s�t�l*saptVTbf�hkl7mn?prst.9x*y*l�r�sGxr*kGnGs*t*yGkflQnfr*sfGm*n�s�ty*kGt*y�s�k-�m*s]t
Ufm
r*stn*s^sGy
hqk�lmYUnrLst*y#�nmnGp!stGkGnGr*sGy�@%mbGnst�kk�r
�bGkl�nCrst2�xGy�k*s�w*yWr*sGfGm5Pns+tGyflGn*sGt9�bfklGmn�pr�st�wx*y�bGpr*sGnt*mst*yflQnGt�xk*lGsGt*n?r*s*t	�b*f�l?mn�s+t*y�r*sGtP�f�lGmQnrrsGyGk�lnGpl*s|s*ybfhklmnprstw>�xCy1sk/�l�n*sGt�kqil*sGkGlGm�s�lrgesGm*sGtk�n�st�wxx*y�sGy�nGr*s*tn*st*stl*s�st*y'r*sl*nJr�s�tx*l�s&l,pUxrGsGt�bfGklmnp�sGtGyk�l*rGt*l*n*sGtxxGn�st*y'rs0h*sGs�tk�mGn*st�xGpGy*kGmGn*sQn�rGl&xGn?s*tGk*nPr�sGt�f�sGtG@bfhklmnprstwxy5k*lQn?s�bf_�klm
�n$vr�stxy?s*x*yQkGn��r^s�Ct7lQr*s*t�x�lGn*s*t0lflMmrtGw�Hy�kQss*w*nr*s*tkWt�bfGklmnrstx*yn�m*s	fk*m�n�s�txx*yrklst*ksksp�l7sWt]p=�st*bk*st+f*n*s[fGpGs�txmI�p*s6t�wGyknr*st�l4/mfk�lmst=�mr�'fGm*s(8tk�p*n�r*s*txGfGpbJ�fklmnstGwx&yGk*l]n�n*s&txx�k*ynt*l*n7r*s*txxkmfr*st�wxGn*st7m*n�kf*k*nr*s�]t6r*n*s*t*ynp�lGn�p*s*tf�lGn
�p&rs*tlf�k	E�b&kflGn��rs�t*y	�b�k*lGm�n%�st*yfkGls�tGr�yn*mQsGnGt�y�bfklmGnrstx*yGl*s�t	�b0f�klGn�s*t*y*kGnxrsGt*x*y^s*ylZr�sGtGk�r*st�x�h�r*s
��@�b�ka�lnr*s*ty^s+t?fl*sQn�s*yl9�l�l*n*slrsGws�t
bf�hklmnrstxyNl��n�t�kl�t�yk�sGl*n	�rs&t8glndps*s�tsGyE�bfkl5nst?wx*y�ll*m�n*s*t*kOn*s�t*y*r�tGlGmn*s*tt~Jn*s*tnl*s�sft*yQb�k�ntWx	�b*fzhkfl5Pns*tm�n
�b*fklm�n|s^t]x$vlQnst*yflGmQn'tkpkGnGtf�h�b$vlGns*t
bfklmnpstwxy*lGx+bk�l�r+s*t/yflQn*sxxr*s&b�f�p^s*t*yGn*s�t�kfl�sxlGsGt�fflGn*sGt
�kfl*mGnrsGt6}xGykGn*s&txxGyPLlxmGnGp^sm-�tbfklmnGprs	xtw�x*y
�lGtlQnGrGtGxQns*y�l�mnGsxrGt*k>�n^s&t*yGb*n*sGtGk�lfr*s*n*s�t*x*y	WbekmI�p�r}s*tw*kn*s�l*s�xum*s&bGkl*rsGt*s�tG@xm*n*sGt	�cf&kl�m�r*st�xQnst*yflGmGn*s'txxm*n*t��p�hk�m*n*s*t.w�l�r@bfhklmnprstE�wCxCys}Xt}lrGyf*lGms&txx*m�sWpGt	k@lGmGn*r*s#Mt�yflGyQs~t*bGf�Klr
sGt�f*p1fkGn1�sft*yGkns6l�sGtGy�sGtkflGmGnL�stGf*stf*sGnp�r*s*tGy
�trstf
�lU�t*s6xot*xfl*mGn*stxr*sGfGkn*s*tyWk*n'p*sbfGhklmnprE�st�wxyGkB�lGkGn5r*t	xhlFemnGpsxtx��t�m*s>Ytn*s�Kt*sxwkn�sGtGy�k*l�sGys[�tkl�m*st�lr�f*mk�k�sGy(<r>b*k9lGn*s*tl@�kln��r6}st*s�ts&txx�ffr*s�b*s-nGs*tGy	>f�hlnWrF�s�tGyQn?sft*y+b�m5n*s*tknxw(�fm*s	�b@bfhklmnprstwxy�9sft	GklnWr�s�tGxyGb��f�k�l/mGnrs+t*x*yGkflsGt?sGt�b�kln�prstCxy�n*s*t*ykGn�s*t*m*s*t*y*l�n*t*n&r*s.xl*n�kG@*s*tbU�fhklmnprsta�wxx�ylr*sCkGt�l�nCs
�r*sGx�bGn*s5t*yn*stk�m*s*t*krsWb�n*stxx*nD2r*s*t&lGn*sGtGm�nGp*s*t�b*n5r*stWr*s*y^fCk*ln�r*s*tOn*s@b�fhkflmn
.p7rLstwxyflQns*yG@�kGn�l*t?l�mn�s�tGyQh*sGk�n&t	b7<f*kflGn�rs*t=s4fflGnstflQnGyGkGltznxpGt*@bf�klnprs�t.wxGy�l?nGt=nCtO�n*s�txx*y*stfr*sxxGkGn�rs&t*yl�n*s*t*n�r*s*t�KkGlGn*sGtx
�s	�fGkQl*np*stGxm*s*b@�bfhkllm�nGrstw��x*y�m*p�lGtGx�n*pGs	�b!}l�n�prsGt*y�f*tGr�s�t�b*klGm*s�tfGn*s*ts�kzbf�h�k�lxmGnp�rgest�wGxy*s^x�nGp.bQnrskp*sGk&lGr*sGt?xbfklmnrstwx*larG@!k��m*s*t#�yGkGp*s�kGn*stx*yGn�sG@Gm*npWst7r^s�n*tGn�s*tfls+t*sGxr	l@bf5�hklmnprstwxyklm41l�tkWbGnGr�t*lGnrs*tk'pGknr*s*t�@�kB�s*y�n*s
bl.mnGpr�st*y?nAr�n?rs/zt*y*fflx&s(<fGmflQnrsQ�l*n*s*t!dkfl�nrs+t*ya�b�fl*n�p*st&nGt�lE�pfr
?bfk*l�nQpLsty	[@0RblmQn�rs*xh*n*s&txx*y<�n�bGm*n*s*tWblGnst*yGnGs*y*t�x�km&sy�kGm	�b>f�DkQl�n*sGt*y�bfklGm]fns*tw*xy!kGrst &w/yp*sn�fkGmr�sGy�l*s&tf�kGy�m*nsGt*yf�k*t�r�l*sp�k*n*s*t*yGmGn*t,bmGn�rs*t*y�k�sbxl*n*st
NxGk&tClf.klCmnpOst�wGybk*s*t#�y'5txx*p*sflr*s*t�xTlI�n�kGl&p^�r*s?ta�bf�hkl��mnGprst?wy?@*l#Ms�lGm
�r*sGt�nS(s*t*y�l*s+�t&kGm*n*p^s*tGy	W kflmGn*st�wflQn*p��n�k*sxxflQn�r*s�k
�l*n*s	f@�bGk~l�n*stGw*nGs*t�x	flmn�pzrst*y��t�l�m*n��rs*tWwflQn#Btk	Kt0@L3kl&m*n*�pr�9s*t?w*ns*t^x*n*srtxx�f*kGnGs@bfhklmnprst�wx�y.mGnsGt*y�k*n*s*t&l*n*s�tGl*r*n�r*s*t �hGnst&w*y�lr*s�np�s}t*w�lGns*t*yxb�hkl*m�n3"st^x*yflGns*t*y*k*s.t&lGnGr�b�n 	s��tGk*n*sWyl*s	�t�n 	s*t
b=f�klmnp�rs=�tx*y�n�r�k*n*s*t*y�pGt�bGn*s*tGlOn*k�l+�m*sGtGp*sGtbGf*kGns/t*yklGtCl*s*t�bGf&klmnprstwxx�yGk&"mGn&pst*yGmGn*s'txxGsGyGkl&s�ttss*y�bGkflQp4�stGlsGl*xGl�rGfGr*sCtGyfm*sGt�krrn*s�tn*s*t�fGbGnQpstk�n	�ps�wk*s@bfklmnprst*mGn*s*t
@bfkGlnprstwx?f�rl*s/y~bGf7�lr|5sGkm�n*st�xGk4s�x	�nGtxrs~t#p/zfk�lpt[r*s�tGs�y�l)�r�f?lGr*sn&pt	�r�`l�n
�p�r*sflmn�s't3�n
@h�k/m'np�stGwy�mk\s	Xl*n*s't*k*lxr*sxxGrWtGf*sGtbf�k*lGmn*sGb4fkGlfrGs*kWlkn�st!dr*sbfklnptl�nQstkGn�s�l*y�kGm=:nPLn>�t@l�st*x&s�tGy,�smQl*st�k'�lr�k&sGy
@�bfk?mn�psrstM�wx�s�t*yGl�y
�kl7m5npr.sWtGy�n*y*l*s&txxy*sym*k^sftGy_�@*nGr}s*ty0t�xk*l*n@�r*s*t�y�lmGstxx*s�Xt�k*n*s*t�yr�mn)t�ks*yflGm*n*s�txxrGnGsGt5k~l&n*p*s�tGp*st<yk'lm*n*sQtr
wtzf�kGn*st�k
�s
fGk�lmJ�npstxt?�mk��ll@�skGnPjl�k��m�r@bfhklmnprstwxy
bklmGn7prBmstwGx�yGl=r�sGt�l�n*p*kLs*y*lcn*s�t�l�r�rGxG@b&"fGhklmnprst*wxy*r?sGt�y=Pl�An*sGtxx#@bhklmn�p*rst.wx*y�lr?lmsfp�tlmn��r*s*tG@�kQn?s*y�n*yGmp*s|tGk��n	Gk#lGnGp*s&txxGy?kGn�n*r*s@�kfl�n&stGr*t�rfGkGnGs�tGy~n*s*t	Gkfl�m5n*p*s*tGy	�b�fGk6lon*s+tGy&k*nr*s^t�m*s.x@bfhklmnrstx\�y�nr*l*s�tGlp�m8wrS(s*t�y�lln&s�txx�t&fk�m�npr*st,wx*yr�lGn�rs*�txx�bm*n*s*tv>n*s�xGy�b*nr*s*tfl�n*t�bn�st�x�s�tfr*sGy
b��kfl�n�pstxGyGk�lGx	Fbf�l�mGn*s��tGy	ffl*m*�nfr*s*tGy�nGr�bkGlns&tJym*n*stxxn*sWtt*n*s�x�m*n*s*t&s^txb*l&txxrt�bffl�m,n*st!kfl�n*s+t/y�m*n*stxxGy*f�nGr*s*t
�bkl�m�nrs^t*yl*mQsQt*n&s*t*yGm*w"�mGnGtn*s*lfr*sGbGklmnGpr�stxxy.kGtdn*st
UfGn=�tQn*sGt�r*s*ttr)kk&txlGn�s@bfhklmnprstwxy/lQnQk�l�sGtGl�n�r*s�tGxGm�nGsGtMtlGmGnstGwCxGyt*n*r*s^t
*@Gb-fkmnrsH�t�wxyxk*n*s�txx*nH�s�t-�x�b�n*stxx�ffr*s
Uf*s*tflGmGn"�s
Qb*knp�rGst�w.9xpWst�l*nr*s*txxGn�sGy!k"�l�mnrs*t*�s&sxx,b*n*s*txx�k�r|s
Cibf0hkl�m*n&prst�xl*s*t/y&f\x.�sxxs*y+stxx*fflGn*s*t�bGmGn*st�x�krxxk�tx��nmGnr*s*tGyn?n&txxGk&l*sGy	�f&kl�n*pGr*sɚt
Gf�lmnpst�xy�bn*stdl5�tklft*yJl*s�t^fflon*s*tb^f&kGl*m�n*stxx�y*fflQnGn�p
bfklmnp+stGwxxy*lfrt*s�y�l*rGtGbln�r*s�kGp[sGtk�n*pGt*k*n*sGtfl�m*sl*s�ys3*m	bf!�l$�mGnrstGk+l�lGnCs+tWp#�krsb�hny�kG@ bfklkmnGprst�wxxylGn&txx*fQn*y�l*n*s&txxflY�st*y�k+s�t*lGmn*s&t�k�lGr*s*n*s�txx*k*n>r*s*t�xGy*bl*sGk*sxtGkl*sGtGxkF�n*pGr*s�b*nPp*sGtqW@bfhklmnprstwxy	G@5k*lGnr*sGtGyGk*stxx^ffl5n*s*t	klnrst�wxs�mGm�n*ykGm*n}r�s*tGy�lGn�b&k5n*s*t8�y�l*nQr*s*tk*s.w�r�n*s*lGsGtx@b�kmnrstxx*y*k*lGtn]p*st��kf*k�m*n'strns*kflQn0@f�k&mGs�k*n�s*tGy�kn*s�tGy�b^f�kl5n�r�s*txx*y�k*yY�k*s*yGf5�k?�nZ�r*stCxGk*n
�r�s*txx0hkflQnGstxx6�n*r*t*fQlGn*s*t@Cl*nGprGs_
t�k*n�s*tGy
um�ns�t�xQnxsFb0�k'm�n�s&txx	fk7lmGnS,p�st�lQn*t*y9p�rfl'n*s�kfl*s�b�fkk*lnGpr*stWxyfl�st}s*xGkQmQn^sGyGnp*s�r*s�k�l�nCr*sGtGxGf�nGp*s&h*n�r&st� l*sQ @bfhklmnprstwxyyl*sk*sly�kf�kl5nrs�t�wGx�4y�n	�f*k�n*prst�w=�y*n!}r*yGl{mGn*s*t�xtGnWr*k�l�nQrsGm&s&k�n
�bkQlnprN�stxx�k*nr*s*tGy�cfflst�m*k�sGn�r*sfsG;t�ksGy*m*nGs*tGnQpstx*yfl8�n*t*npdr^sl{knQt
�mCt
�bkl�nrstxGy�lGn*s�k*s�t*yl^n*t!s*n*st�xGy*nr b�txxjVbf�m�n
rrs^t�bn*s*t�l*n*s*tklnrst*yQnGsGnst*y*n�s*t�l�Pm5nr�stflQn*sGyflQnGr*s=�t�n�r*s*txx*y�bGk*cl*�nf6rLst*nQr*s*tGy@�bfklmsnp*stGy-�n�kGn*s*t/yGl*ns*t^lf*nfr*sGtlGx	�k*mGnkm*n+s*tfl*s&txx|p%mbfklmGnr�stGy&t�x�yl*sj�y�k&txx*y*sy�k�l*s*tGyGsQtGyG@Gk*nTs�tGxGn&r@*nsldkt4f�@bfhklmnprstwxy4�k�lGnlr*st.xd�n*sGklmGn*s&tkGn*s*t*yGl*mGs�tGybfGkl/mnrstxxGy	rl?s�t�l*t*m�n{rsGt*yGn+sGt,�x�yGnGr^s�txx*yGk*st*n`�r*s*t�w�knGpstGy&k*sGtflGn*tb*n�s*tGy�k{lnrs4t&t�x�b*kxm*nst�x�m*n*s*tGy*nzr*sGtGklGnGprGs*t*s�t�yptbZr*f5n*sLtGy
bfklmnp5�r�stwyl�r~l*s&l*p*sk*nGp*sCt*y0�tG@Gn%mpflGnGsGt�pGt
�bGkrl=�mGnr*sGtGy*k*mxmGn*swF�n*@CbbfhklWhmnrs!�tx;`y?l�r*sGt/yGkO�tl*stxx&f�kGmGns/zt*yfl'n*s*txx	U�b*kfl�n*r+sGt6x	fGlGm�nrs7�tx*y�k*sGt/y*n��rGktr*sT�l*sGy�nxl?nGr�t*x�b�fflm%nGp*sttb�nCs*t+dwxxGp�r@�bfklWmn��prst��w*x*y�l*slr*s/s*tlm�n7�r&s&txx�nt*y,1n�fkm&n*prstxx�y,b�k�ns�txxGy*n*s*t�n+s_t>b�nrs*tQn�t*fQk*nr�s*t�k�nGst*xy�bn*s*tfl+s�tpEm
fkGm*nzrstxGy�n*s�txx(kr]txx�b�f5Pn�r*s*tGf*s�txx�bGntxx�f�nfr*s*t	*le�mnxpstxydl\sGk*n6r*s*t��n�r*sV�t
flmK�nGp��rs+txx	xynt*cl*s�k*n*s*t@bfhklmnprstwxy>f/lQn*sGyklnrst�yl*s�m~ns+tx*ymGntGlGsGk�ntxm*t�wr*s*t
@bkl�mGnr�rstGwx\�y�nl�slGn*sGt�m*s*yGk�nGprs+t�y�bGl*n*s6t	ffl5Pnxrs*t�w*y+�m*t�w�f�n*k*l*st�rGsbfhklWmn?prstGwx*y^l*t*rGxfp*s�l$�mZtn?r�stxxy*kGs�t*nfr*s*t�y*nE�s�f*kflmGnw�sGtt�CrGfmlGm*n*s*tGy*l?p*sBtFb
�fQkfl5nrs*t;`xGy�k�lGsGtGyn�f9l*sbGfkmnGpy~rs��tQw*yrmlGsGtGy*sGtxxGy�n�sG@lf�lGsflGn*s*tWw@bf�hGklxmnp(�rstw*ySgplkn*s�t�ns*t*y�l�n�r*s*t*k�n^s*t*y�@flGs=�tl*nr*st!n*s*t�k*n*p*s*t?l*s~t*f�fk*l*mrsGt�k*sGy*m*n*sGtxx*k�l*s
�@bklmn�pfrstx*y*l?nGrGt	�b=fl�m'nstxxflGmrs
txx*y*n�3r*s*t*m*sGt*yGlGn*r�bfl*sbfklmnprst�w��x�ysGttn��x
'bkGlm?nrs�wxxrr&s�b*n*s
�t�x,bGl5n*s*t*l*n*st�s(�t=klmnrs&t�xt*n�r*s*t%mp*k*stD�kNn�r*s&b?np�sxxSt-�xl}sft�k*n�pbst-�x,b*f*n�r*s*tk)�m*nPlrstxxr4f�n&txx�b�f�bGl5n*s*txx*k+st�}xfln*s*tGstll�nrs�tGwn*s*t�t8�n*s*txx�bWf*n*s*txxWn�xWnt{r*s�bf(6l*nfrGs*t�hlGnr|5sCtGyt*l:0m�ncps*t:Ytb
.fkl&nrst.wx*y�k*lGk�lGn*skGn*sGt*y�s&txx�f�kGm*n*s�tGy	Gk*l*nfr.Os*txx=yGpCtV?lGm�n1�s*ybfklmn{prsty*l�nW@*l*s&txxGm�n�s*t*yCkflQn*s*y�bGst�n*t*n*stGyQp	�r
�b>f�kGl*m�nrs*tw�xGy�k*lGn�@k�kl*slGk*n�s
?�bfklmnprs�txGyl*s�nr*s*yGf*lnr*s*kfls�k*n*s*t*y&kGln*s*sGtWxflGmnGsGtnhr*s/f�l�s&t�xGykm*np*s*t�w�nysGtn*s*s*t�x�p�snl*s�k
�s*y�b&lyLnGr*s*t
xf�Dklmnr�st*y�krGt@��m*n�ysn*sQtGstr*k*l�m^sGymkl/m'npsCtw*x?ylG@�n?n*s*y	X@xs5�t&lxm@bfklmnprstxwxy	Gkl�mn�rs�t&y�f&k�m*n*s+t�fctGl�m*n*s*t
9OfklmnrGstwcrh�txx{k&txx�n*s*t�xflQn*s��t�bns*txcsttflQn*rGl*n*s*t�@Gbfklmnprstxx*y�hr*s�m*nUTr*s*t	�3b4f�m*nr?s&txxGn�txxbfGnp]s�t_\btQl�nGr*s*t?s	�bk7mGnst�xGytxx�f*n*r*s�t��l*n*s�txxb*ffln*s�t�n^stxx�m*n*s�tGy�rbkmnpGr��st�x/y�bL�l*n*s*t�m�n*s&txx%mbn�b�ntxx*f�nfr*s*ttcl�ntxx��f*sfl5ns%�t�b^f�n*st-�x�ffl�n*s�t*f�lnGpssGtflGs�t�b�fklnr*st�wxy�b�m*n*s&txxU�k*yflrs&txx	Gf�kfl'nr*s*tGy�lQn*s*ycn�l
blmnp�Pstxxy_
k@�lr*st��ws�m*n*t�m*s*t/yflQn@rrs�txx*y�b�nflGn*stxxcl*n*s*t�w*n�r*s*t
*@bfhkX�l"�mnfrstx*k�lkl!m�nrs�t�
txx�t�xn�xtb�m*n�xr@�tk�xlmpGr�h�m*n*s*t,bs�rfl�s�t	�n*sdtGy	kflmnr*s*tGy�r�nr�t��kGlrGt*kdl*ns*ttn*s6�t
�h�kl*mnrstx*k�mns*tjx�y*n~�r*s*t�m*nGr*s�t�fst�b*nr*s*txx�mNsn*s�t	!bf6�k'np&stxxbGl�n*s*txn�l*n*shtxxfl'n*s�tGy	.]b^fGl�m�n&s�t�x�b�f�k�n}s^t6}xO�n*s*t
b�fkMtlnps&t�yl*n*s*t�n*st*yt�f*n*s*tck*s_
t*stxx>b^f*n*s*tflQnpGtk��t�fhmGn*st�xy�nb
lb&m*n�r*s*t�l
bfklmnprst/xyl'n�s*trszt!k�lnB�s*t/ytk*n^s�tlm*nGt*st�x�ut	�bCk5nr^sP@txx*yn,p]sGl*s�tGy	fkfl*nstxGy*k@ltxx�ffl�n?sflGn*s*tGy�bGn*s*tGn�r*s*tbk!�ns?�txx�yt-�x�b+�f*n7r*s*t�xtxx�b�f�n*s^t�f�n*s��t	4fGh*kflQnp*st��n�fxr*s�bColGnr*s�txx/f�kQsy�f*s�b�kn�txx�l
.m*n*s*t�kln*r*sK�bGtflxr�rbfhklmnprst�wxyGk�l0#m&sGt*x�l�s&txxxk&t	hGkGm�n�rstxx�tt4fGn*s*t�b�f�k*nfrs�tU�s�bhkfln&Pp7r�stxxy�k*n*s*tGy�k*nGsGtGfGl�nxr*s�tGy�k�s
�wG@Gkns*t�xdjb�nstxxGm�t*y^fflQn*s*m*s't�bhk*l"�m�n*pfrGs�txx*lGm�hfl*sGl&nGr�@bfhk*lmnp�rs&txGy{l*st�xl?nr��@*ttyr�lGn*ttrknWb�nxs�txxnQr*sGt&tGk�lzm*pWds�tl*sGt	�k*t*n*stxxy*x�ykl?<lןbE�lGn*sGt
�b�h*l4�m�n*st=�xGy b*kGl*n*s*txxGkxlmQn*s*tyb�mGnGp*s^t�b�fl0m*nsnX�k�lGmO@Gbfhkl{mnprst*wx?lGnOs*t*xGlmnns*t*y0hfƖnsGt*yG@lfm*san��fkGn�sts�l*ns*t*yG@Gb&l*sy;�@;�f;�n?stlfwlf[nn*s*@Gs*yGl>�m*n*st*n*p�rs*t*y	lmGnrs*t*xGy*nsSt*y+nnGl*ns*t*yb��fklmnprstw�xyGlGr*sGtGkal�n	�r*skGnr*sGt*yy�f�nGtnGp�t*k^sGy�bfklmp%�rstxx'b'lWr�lmr*sX�p�fs�tk*y�ksGy*k�n*k�ilrn#n�fnWpt*stWr?sflr*sGyExk*s*kGm#r�nGp*s*tGkmn*sGy,et^k�sft*y)kflWln*stGnsk#Bpm�n*s�wyY�sGypxmGrGt�x�f�kGn*s
bfCklmnprstGx?y!Ik*l*sGn*s��t4�n*spn*kGm�s�km*ns4�t*@�k}s&t�tfk�lGnO�rs*t!kGs*t/y�l7�r]s
skCtCln�s*t�ksGtGy*n�r*s*t@�bfklmnprt*r�y*kn�rk9�x=n�arkrs�t�f*st
�r��l*npr�tGxQk�sPkGf�nI{p�r�f*k*s@bfhklmnprstwxyb/fhH�k�lxmRnprst�wGy?n�tB�lA5rxsnrs*tfl*s�txpt]n�?r*trGn*swGl*n*s �fklm�n�prstGxGmGn|5s�kGnrs+t*yGl]s)=f�hGk�n�t-�xflQnQp+t*m*n*s
D2bfkl�nprstGw*x*y�kGm*s*t/y�n*sGt*kn�rsBt*yak*sGt�rGm�n*s*tkGl^s+t&t
x�lGns*t
GbGf4�kGlbmGnGpGsGtbfhklmnprstwxyGkln�sGtQnr*szt*yE�tGxlGrGsGxQn*sGt*yl*mGsGk0s�m*s*tGfGkns�tGy*kGstfl�sGmGn*sGtxxnsGtWl*s?t�x0h�k��lxmGnpxrst�w*yYlOlGm*sGyfl*n�s*tGy�lGn�p�r�sCt	GfGkCm%�np^s*tGya�b�f*l�mn5ps�6t>�w6}x*y*s&tc�x
�b�fklmGnGprs
Ht-�xGy�p*t?hQlrsGlzn�s*tGy&k�m*sfln&p*sGt*y�l*nfr�s*tGm�n*s�w@bfhk*lmnprstwxyGmQns�t*y	�fhl~n?�rGsGtGy?f�n*s+t*y
=�bhkl�mnrss�t7aw^x/y��m�nP�s�nxxGn*s*tGw*yt�mGn�sGt*k*n*blGsO�tCm*s@�b�fϑklmn?prstGw.y*k�m*yfl�n*s*tk*ns*tfl?tGmGn*s�txxGm'n�stGn*sWw�l*s*b?k*lnst?xGk*n?r^s�t�b*lGn�t*n�r*s.bf�hk*lQnrstGxGy?mGn*s�n*r*s�b3El*s�tGyflnr*s?wGn*s�xflGns*tGyGm�t	k|lGn,pr*stGws�n*k�p�jsr^sGl<�nsGt#wGy?fflQn*s	f5k&l^mnp*stGlGt�hGn*s�kxr�tb�knr*sGtGyl?x��k*sik
bf�hklmnrstwGyxl*r�slQm?nGr 	s?p*sGwQl*m�stxx*nJr*s*tGfQnrstyQwQn*sGt*xnGs
�txxU�@Gm�ns*t*x?f*np*s*t�l?sn*s*tGyxr*lfrGtG@*l�nstGxxy=sxm9�n�p/s*t�w�b�n*s*tG@bfhk1;lnprs&t�w*xGyl*sGt�y*stGn*s�t*k*mGlftlm*n.rOs*tt*r*s*tp5�s7f�hkl�sGt*x�nxr*sGkQn?s*y	&lGm*nsars*t*x*y�n*f�kGl*n*sGtGy@bf0hklm5Pn�prst&wxK0y*k�rGkGl*sGt?l�r/�flm5nprsGt#w&x*yfl/m*nGs*txmGt�y�kGrOHf*sGtGw*y*k�n�r*st*y�kGn^sGt
,b*k*lxm*n*s&txxGyb��fkl�]mnp,sCtyGklGrGnt�xGn*s�t*y*sGtxxGn�r*sbf�hklmnprs�"twx~yGk�l�n~r�klQn*sGw*yGm�nxrGs
Htxx�ns�txx*yGm*n*s�t&l�nGr*st0Rrfl*n*s*t?xGnGp�r*s�kl&m�ns*t*y�k*yfl^mGn*s*tfapkBRl*s}twG@?pG@*nGt�l*pGtGl�n�sGtG@�bkln*prsP�t�owGyGr*sGtGn*s.tGx*yQl*n�r*sGt*yrs*x*y�n*s*t�wbfhklmn�p[�rstw��xy	rlQt*y,b!kSr*s*t/yGm?rsxm*n*s*t>Yl�n�r*s&txx�k�n�s+t*y*l�n�s*t�xGkfl�mstGh*s�bGn*s*t&y*f*lmGn^s+tl�t*y�b1k*lpr*sGyGm*n=�@�k	�l*s�n*s�w@bfklmnprstx�y��m�lK�nxt!k*lr*s*t/y^s&txx	'@l�mnrP�stGy?r*s��t�xst�ntrkP@t�x+s&k�n*s*t*ymfm*sGk�nY�s�txxCyGlGn*t�@0h=�k*l*n*s+t�krs*t�wc�x*y�ns*t*nt��n�k�l*s*tfl�nRp|0tbf �klmn>prsBt�wxxGyGl�n�r�s�clbfl�ns+tGyl�wtG@�ln*s�sGt�h�m�sGtGlGm*n*s*t8�yn7r�ss+�l@bfhklmnprstwxy*sQw	GklGm�nr*stGyGkD�n*k*l*sGtGyx*lGn�rGtGxxfGlGnGsGtCfGkl0#mnGpr�sCt�wr*st*ykr*yfGkpWsr��nfGm*n&sQk*sGt*y	�bO�fkl�ns+t*y/n*s*tfl*mGn*sGtxx?@&kCl�n*sGtbkfl5mGnstGkWn*s*lGr*s�blf*n*sGt*y�fGkGlrxs*tfs�txx�s
Gb
Uf�lGmnGrs*tGy�h�kJr*sfl*n^ls*t*fklmnpstw*y*nxr*s*t�b*s*yG@*kGn*s*m*s�t?rGtGm0nGtGfGkGnsQtGy0n�@Gl	�bGkGl�n&pGr	�s*t*@CkGlGm�nGr*st*w&xs�rGk0nGp
CsGt*k*s*t�b=kGlGn*s^t�xb�fPohklmn��prstwxxy^l�nxsGtal
�r�n�skGn�lGn*s	Gk*l*n*pr*st�wn`�lGn*sGkGm*sGy&ft�n�rGb�k*n*s*tGw	�yxmGt5swfx&k*l*n�r*s*t@bfhklmnprstwxylGmJ�n*sGt
xh}�klnr!}s&tGx*yG@*s*yGkGsGt*k&l*s
� flnr�st?wGx�y
�b�f?h5nrsGt�w*y*k�sGy.s*tGx�l�n*s*t*y�flGmns*t*y�s*y*s�t�x<�b*s*tGh&nbfhklmnprst�wF�x*y5kJlGnzrGt*lB�s�f~l�n*sGx�lGn*s�n�s:xt*y�p&t
�fmhlx&n0RprGsGt�x�f*y�n�rGslGm�n*s*tGy	
�hxk&m*n}Xp*s*t*yGmGnGr*sbfhklmnrstw|�xyxlGylWmGn!Ir*sGtGx*f*k*s*b�f	.@�bl5n5�p�s*t*yW@*n�rss@*s*yxks�y?f�.lkfls*k�n*s*t*s\tfc�kGlnpGs'tl&m�$yrY�k�lfl�n�r*sty*k+n�rst.kQtb*f�h.klmnA3pr[�s�t�xGyG@xr*t�kX�n0ns]n0h*nr}sP@tGkGn�r*s*t?s*tb*sx	�n1+l��@bfkl�mnprst��x�y�zl�m�p�r*s@l�r�s*l*n*sGy=�mGn^s*y*kfl��s�t�x?yxkxl�nr*s*t��f�k*ns*t*y.wpzkn�p*sF�ty�sns@ikrkGl�tbklmn�pstwxyGn7r�ySbGfxkl5nr�sGtCx*yGkGn�s*y�n*sGt*kGnrs*tGngKyCkfl�m*sGt*flm5nprst�w*yr[�s�x�k'l�rk+l~nrs*tRyGhGl*sk*ns*txGy�p
CrW�k�y!7@GmsGt*y&kGrGlSr	�nbf7hklmnrstwx[�yGkB�l*n�r*sGt*f�l�r�t.bGl�p*s�t0f*knrTmst*y�s�p*sGk?inGt0h*nGs=�t*f&kGlE�n*sGt/k?lGn*s5tGklGn*p�r*sGktsGk�l�n*sfl[�n*pCtG@bfhklmnpstw&xy	�k-lGm	�nr�sGt*y&l*n�p*s�tO�l*m*nr*st'"f&p*s�fQlr*s*ns*tb*n*s�Xtxx�7kGns*t*y	�fkflGmnpstWn*s�yQnfs�l*n*s*t�f�mkGnsGt,yflQnr*sfGm*kGy�sft2�@bk�lms4�l�bGkl�nr*slf&pt6dr*s*str�t=�nr*st.x� kxr�sGy<�b.k��mGn*stxGflmnGp*sk�k*ys*s�tGn�s}tnGxst�bflGn�rs*tGyGrGt^xObGlPLps9�ln�s�t7@bks�l3"m5n[�pst?wGyGkGlGtGkalGtk*t
��f�.klT'n�pxrsCtGyis*y-m*n*s*tbf=hklmnprsCtw*xGy�k*lrGt�nGtGl�rsGkflxmnr*s�t*@Gk*n*s*tGf?s?fEk�n.Os*t*y�p8s	b�kflGn#r�`s*tGy�kWr�r*t�kGm&CnGs*t*y5�klGm*nGp*st�f*s?fGp*s^tGfGk*l<�n�s*t
bGf�lxm5nprsGtG@*lr�ffCklxmnrs&tw�yn�kGmGn*s*y&k*sftGyy�n*sxmxty�flGmGn�sCk*y@bfGhklmnprst&wx&y>f*s\bGk�n*r8s*t/y*lt
�x
�h*kGlGmnstx*yh	�p*s�tl*s*tCfGnr	�sn�bw�r��b�f�hkn&p*rpWstwGy	�n*s*t0x*k*p*sGtGn�sGt*n?s*t*x
G@�bGh�k�ln&rs8yflzr*sGt.k*tk�nstxb�lGns}�t*x�r*mCt#h*sk*m*n*s�b� f*n*s*t
Gbxf�k�l*mn�rs#wk/zt*y�bl�f	*fGk	�l�mGnxr*stGnzrsGt*y	bGk&le�mGr�`s*t��x*s�yGf�m*ntGns*txm�w�
ÍW����.	
�C�Q����e���
����s�U��]E��D+���`;�����	�P�
��f#�c��/10�����!�����J���ϱ��������+�-�.�,������¨�¨���R�p��������T��W��Y��U��V�@b¨�¨�
¨�
¨�
¨�
¨�	¨�	¨�¨�¨��@c¨�¨�¨�¨�¨�¨�¨�¨�¨�¨��В�Г��S�p�Y��O���قª�Д�Е�Ж�З�Й�К��������:��;��9�ق����O��[�R�S�V�P�T�U������������¨�����:��_��:��y��z��w��x��{��51��g��q��s��t��r��u��v��f�0��6���Ѐ�Ё�Ђ�Ѓ�Є�І�Ї��|��}��~��7�<�Ј�Љ�Њ�Ћ¨��Ќ�Ѝ�Ў�Џ�А�?�@�;��a���f��%�Б��m��n��o�0��u��h��i��j�����������������������O�������������і�ї��`¨���b��c��a¨�¨�¨�¨�¨�¨��ќ��C�E�D�������n����@��?�F�G���&����������D��E����������X�H�K������������W��	��W����Z���������������������K�������������������!)���"����K��R�����������2�3�Н����Z��[�5��U�7�8�6�����¨�¨�6¨�¨�¨�¨���_�L‡k�M¨�¨�¨�¨�¨�¨�ª�¨�¨�������©�©�������©��Z��e��������������������О�Р�С�Т�ПL4%���/��'�������Vb�y�}�n   !O�}P������������Ÿ� - 1 5 0 . 2 3¡m¡x¡z¡lU�2„�¡r��„�¡p¡s¡t��������������������QS�ۊ<��I��@�Ÿ0! T F G V W Y I
 [ \ ] ^ H _ ` a J K D� L�� C! E#�Ÿ: O P R�Ÿ9�¦�	����������������%�"� ���RR�ڊ<��H�i��T�&���6����������s[�s]�s^�s_�s`��i���3 � � � � � � $ � �
 � � � � � s
 w } ~ s u � � x z { y�6V������� � � �W����>�����I��K��L��g���g�  �����5��[ŸH�u�-�/�. n�) o � � � � � � � ���@ŸI�s�'�
��R�Y�Z�*"����%�+
%����%�^�_�a�b�U�S�:��t���X�6�y�Ÿ��e�f�g�j�i�h�k�l�<���X�6�y��E�������g�y�%�������Â7��3�sY��@´ � � � ��>�A�@�?�B�CÂ2Â3Â5Â6Â�G�L�H�I�J�K�v�F�[����g�y��Â!Â" ��:���Â
Â$ÂÂ���6�g���Y��{^_]\� ��Z�*��b���qڏ���Â)Â*��C��D�'2�'3���	����g���������������������������g������������������s�n�o�p�t�����
���������������z�{�����'�yl���'�yk������������������������g�����������������%�������������|�}���������ށ��-��������������M%������'
����g�	�y�*
z�i��,����,�-� �!�$�%�&�'�*�"��ža � � � � ��� � ���žO��žO � � � � � � � � � � � � ��������� � � � � � � � � � � � � � � � � � � ���������������Ÿ#¡¡¡
¡¡¡¡��#Ÿ�	Ÿ
¡�
Ÿ��Ÿ����¡��efs��$�	�z��j�� ����i.�y���ž+ ���ž ��ž������������ž������� � ������2�3�4�/�0i#�D���3�U�z� �¡¡¡¡��Ÿ'��Ÿ"��Ÿ'd"���E”釀¡¡�w�<�=�>�A�5ž��:�E�F�H�I�8>ž��zž�¡&¡'�6ž�¡)¡*�B�C�Jž��]ž�¡?¡@¡B¡C�^�Tž��_�a�Kž��S�Lž��M�N�P�Už��Vž��Wž��Xž��Yž��Zž�¡G¡H¡,¡-¡.¡0�f�g�h�j�l���H”W���p�o�r¡¡¡"¡¡ �t�u�v % &��Ÿ# � ���Ÿ"t6O)�
�&�������g�y�A��
���������z�����������������¦e����¦g§-�'"��������������v�!w� |Xy�$�$w�{5��¡J�¡O¡P¡N��'�&�y��?��Ÿ �: ¡R�����W�a�X�Y�b�c�d�v�w�f�g�i�j >¡\¡]¡^¡`   �k	ƒ��L
�r 	�n„� 
 �mƒ��J�l„��o„��p„� ? @zRO6��%��<�������A�'��
¡d¡e¡g��„�¡iurz�#¤� 8 9k���pqo�����}�~�nlm������� +������������������������������ (���
1*.2��8�O5��i2�T��o��`6��@�8���Ǒ��¢�¬¦/¦0¦1¦2¦3¦4¦5¦7¦8¯¯¯¢�¯¯¯¯¯¯¯¬¢�¢����*��+¬X¬Z¬[¬Y�¬R¬@¬D¬A¬B�¬T¬U¬g¬V�£^��
�¬_¬^¢���¬e�
¬F¬G¬H«�o¬c�P�Q��0��(¢؊s
¬M¬l¬m¬n¬k¢��r
¬p����o�¯�¯­B
���­J��­C	���­I	��­R­W­V¯:¯;­Z­[¯q����­\����������j��d��e��g��h��i��c­D­F­G¯C¯B­L­N­M­�­~¯P¯R¯S¯T¯U¯Q­�­�­­�­y­{­z£�t­w­u£�u£££­�­�­�­�­}��M�І��­���N��9­�­�­����9�����	�ކ
�ҩ¬�¬�¬�¬�­�®J¬�¬�¬�¬�¬s�:����¬����F��-)1��¬���������������G��U¬�¢���/¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬���������k(�p�¬�¬�¬�¬�����­^­a­`­_­f���4P¬�¬�¬������ѣ�Ѹ�ѹ¬u¬v¬w¬z¬y¬x­k­q­r¬¬���J��&��K­l«�s
­j­i­h«�¬�¬�¬�¬�¬�¬�¬�­n�H�:����-�����S�P�� ��s��t�Q£0¬�¬�¬���w��x�
����|�_��:����'���l��)���n��B�m��D�(����J��L�*�+��K� �� �i���!¬������
����{�^���\�����%�X�����Q���P��O���<���;�"������.��������#�������-�$�%¬�¬�¬����­����­����X����������m���J	�U�{G$�V���߂���
�ѳ�-�%����&�"�#�$�(����6����������Ut­�������«����s­���������������>�������s��s��W¤x�]�^�Y�_�X�Z�[�s��s��������{�}�v«����`�A����Y���:�a��*��c��+��%�d�e��*�,�0�-�.­�­�­�
­����������������&��������J��$�U������
���Ѳ�,¢�¢��Ҕ®���O��Q��R��PÁHÁLÁIÁGÁNÁOÁM�8[�\�6�����*�І�t���Ѻ��Ă�����<�ȃ��Ю�q���ѿ�ґ¯��9�����
��)�Ї�����Ѿ�V�:�ȃ�с����­��=�ȃ�������������ҽ�Ҿ�>�Ȃ��
����ҿ������VB��@����&���۲$��
��W�Ё���D¦J�M���ۊ­���Y�ی��U��V��W�h������Y�i���«���[����]��_��^��\��a�N¦A¢����� ��"�����$��%­�­�­���#����L�H�J�I­�­�­�­�«����E¤��F­��@Z��.Q������P��Fe�kg�P�K�c��U�T�?2«�«�¢�¢��@�������@���€���€�����^��i��s�������������������������������������������������������Y�V\��g��s�T�R����*��+����|��«�«��1�*!Q����L�S��#"X$�U��x�O�K�cbO�T
�K�����¢�������¢�¢�¢�¢���)¨��4��l��#��$����2�������������3�ȝR~�U�{x
�2����5�������«��3�����н���c��(��*��,��)�:�;�5�6�7�8����h����3��4��5��6�[���и��\­��A������е���-�Э���:��.�4��8�B�C«���-��.®¢��?®®®¢�®®®®®®®®®® ®®®®®®���®B£@��£C��£A��£B��®&�C®+®.®-®,®/®)®0®(
®'���
����®C®H®E®I®D®?®@����	��<®>®=®<��¯r����®

��†,®
¢ŒJ�i¯v¯w¯u®«��¢�¢�®®!®#®$®"®%¢�®�0F	�7�S����{L��«�'«�&«�'¬®\�����������d�������������…�����������¢���¬(����„�­5­4­6­9­:­;­8­7­)­,­+­*­$­#­&­(­'­%­-­/­=­?­@­>­A­3­.­0­1�z��„��7�¢o5��«�5¬!�7�{¢��8¬ �7�}¤��~¤�Ÿ����@¬+®kŸ����>®i����m���¬.­­­­¬8��­����l���¬7­­
�m��I�~�ct�܃v"­­���=­�«�D«�«�¬/¬2¬1¬0®n����~�ct�r­�­��-V���­�­�­�­�­�­�­��.��3������������/U�����®e��®]®f­�­�­��vC�1�J	+����oV�c%K�ބ_����¯9�����������=‡��@�A�n0�ȣ������­­­­­ ­!�s�t����r�o�p��!�_�m����Є/�9��:���H��­
­�–��8��I�¬;�����4��ٽ��G����“[�E��������>��?¬<¬?¬>¬=���ǔ��¬¬¬¬¬¬¬5� ®S®Q��
���n$�lO��r��s��g��h��t��m��n�x����p��q��
���lO�w�����j���
1"48��0�I"��ik�U�	��`'��B	
"�R�8��
������3�+®�®�®�®�®��x��6�W����W����U����W®�®�£	£
��®{¢���®�®r®s®�®�®�®�®t��¯j®��r¨�££��5��6®u.®�®�®�®�®�®�®w¬
®v¨�££
�����o����s*��y¬��¬��¬¬��z��{�������}¬	¢������®�®�®�9®�:¯¯¯®�®�®�£S£T®�®�®�®�®�®�®�®�®�¬�£�Ҡ��r�ң�Ң�ҡ�Ҥ�ҥ��9o���֠
�L'£3¢�£4£6¯®��EA���t�f��{��N7®�®�®�-¢ˁ���®�¢́���®�®�®�®�®�®�£I�X®�®�®�®�®�®�®�®�®�®���"��'��%��#®�®�®�®�¢͌�b®y®�®�®�®��FA�{��N7£X�v®�®�®�£Y�z®�®�®�££�f5*�ގ�3%��@�D,$����2�m�cY~�S�.��	g��¬������h�N����g�i�d��£&��¬�¬�¬�¬�¬�¬��5�6���	¥�#����¯����¬�¬�¬�¬�¯
¯¯¯¯n¯o£\�x����«�«�¬¬������������������¯����������£[�����l�D�������F��¥@���j�B#�������ߌ�	�҅�������҃����҆�ܪ�҉£a�Ҋ�҇�҈�M¬���¬�
�.¢��?����¢��?¬�¬�£W����������X��8��Y¢����4
¬���…[¬�¯#¬�¢�¢��m������5<������2��3������������¢�¬���¬�¯}�k�A��ၰ��~���|¬���¯��‡j��/��.���������������¯3¯4��‡[¯\¯_¯]¯^������¯I¯J¯V
¯W¯Z¯Y¯[����‡Z��¯N¯G¯F¯L¯M���L�wτ��^¬�¬�¬�¬�££"£££££Ÿ��n�uH��ċ���^��~��<�v�������Ͳ�(Ÿ�£$£%£M�D£P�G£O�E£N�D���L�~G�l�L���{C�C£*�r£)�D£(®�®�£+£,�(k�"�@��Z”N��
�[�\£�£�Ÿ���£��6�a�b£���£�£�£���=��?�^”;���oŸ�F�”N��
�`����D���V����	��B���
��A4�r$�?%|�/�F�с�Vw������3OqI
��
��
H����E��6�X�4F��?�B&,�b~�-�x:2
�Xv�<�ɴ���{�(��)���–�������[]�I��M�=���I��J��K������'<�'=£d£e��–�������£�£������f�f����؄���.������������������������������������������������������������������£�£�������������������e�fƒ������������(�)�(��(�����M������M��£�£������������T�dB�������¥�¨����.�¬�§�¦�©�ª��s��t��������������l�T�dB�­�´�°�¶�¯�±�²��������� �4H+�����W��xU�h�E����v �H£t£u�͙�͚�͛�͓�͖�͕�͔�͗�͘�s��s��s��Y�Z�[£i��)�s�£j��)£�£�£�£��=��w�߿����������?��v����������������������@�������s��s����h��7���<�T�\�X�U�V�Y�Z�8�9	�D�C�O
�L�J
�H	�Q�B�>�?����4�&���0�����s����{���������{����������������������������-�0H�Ս�
	u�Z��xT�h�D����r�i¡�¡��>��\�?���A��Y
���´����b¢-��T��U�\�Ձ�����q�x���w�m�d�
���h¡��`�̈́�г
�h�i�e�f¡��]�d�`�_�^�a�b�͐�͑���������������������������]�F����w�����m�d�	�,¡�¡�¡�¡��^ž7¡����º���º��Z��c��d��e��g¡�¡���]��_��`��^��[��a��!�d��¦*�s��������������������"�y@������������������������������w����4����5�������v��<��=��6��7��9��:��?��@���c��������
�a���������b����������b���a�x�y�{�������~�|�m�p�q�n�s�t�l�v�w��������t������������£�£��a�i�j�d�e�c�b�f�g��
����	r��y���r����q�������݄K�VAQ����bO1�6�������������(��(��(���N��O��K��L��F��G��D��E§�§���ې�V���1�����͍�'��'��'��'��'�������s��s��'��'��'��'�����ńO����ͣ£�£��͠�͡��”��-�����'������������'�Ÿ��-�S�����������'��T������ݏL�����ߏK����I�(��(��(��(�����~���
������������
���
§������������o��p��q¡�¡����������(��(��(��(��(��(��(��(��(��(��(��(��(������1��y����������
�V�?���J�VAQ��*�w�"`��§�§���œ�§�§�§����<‰����#�B��
�@����d�g�~"�7
��o���������
œ�
����������œ�������I��J§�§�§�§�§��C�x�D�x�����������
���;��ԏ����$������������MÂ^���
���>�
�$�K������������K���������������������������
���9������
���-������§�§�£�£�£�§�§��(}�(~�������²�pn�d��"�߉�ͦ�ͧ�������������������ͫ�ͬ�͵���������¡�¡�¡���œ$��œ$�Ͷ�ͷ�͸�͹������Ó
�pZ�d�� �߈�Ͳ�ͯ�Ͱ�ʹ���ͳ�ͩ�ͪ¡�¡�¡�¡�¡�¡�������XK�����\��E����҃'�������Ç>�4�5�6������������������l�������������;���x#�8���������{�|�z�Y�y���}�~��;™����������!�"��4��������������9�:������������	�������Ι�O������
���.�	�
��
�����0�������ȇ@���?���,������-���ԁ��9���F�H�|YK-�ѵ���<�=�>�?�@�A�B�D�E�s��s����F…�E���¡��I–|�8�j™��l�m�p�o�k�1�2�3���&���(�)�*�+�'�����������ˁ���/�waI�����a�A����b�Y��y��)��������������"�,��-�.�쇫�K��?��]�� ������F����������$����������ߞ1�����O�P���������G�H�0����������������Ȃ%������������£y�#�#�ʇ������%��]�� �!����&��]��������"�7������#���.�D!����T

g
���ՂB��ɂ���1
����
	���i���T/>�\
�BN�Q�_�4��G'���6
�=������û0�����T��U��U��b��8��9��:��;��������������¯�¯���W��X��Y¯���=��>��@��A��V��`��9��:��<��=��������	��0��1�ԓ�Ԕ�ԕ�Ԛ�Ԙ�ԗ�Ԗ�ԙ¯����������
��¯�¯�¯�¯��Է����Ժ�Ը�Թ�Ի�Լ�����������Ԡ�ԣ�������������������������Ԣ�ԡ�ԝ�Ԟ�������������������Ԥ�Ԫ�԰�Ա�Բ�Ե�ԫ�Ԭ�ԥ�Ԧ�ԧ�ԭ�Ԯ�X��~����'��'��'��'��Y��������������.�����>��A��@��?��B��C����������������ӱ��<��=�Ӳ�ӷ�ӵ�ӳ�Ӽ�ӹ�Ӻ�K��
��
���������������������������������������������&�ӽ�j������Ӿ������������	�����������������������������!��"��#�����ڃ=��%��������������������0��1��4������������������������>��
��>������>������	��>����@��������>����=��������������	��&������!��"��%����������-�3��`��	/�� ��(��������������T
��d��>��?��Q��R��_��`��a�����W������������X��Y��W����E	�����������V�������������7��J��K���3�������a��|žs¯��j�k�l�m�(��(����������
��������	��������S����a
��{žq¯�����U��k������;��S��L��M�|�}���<��c���?�����?���>��o�7�8������#���i2�j���§�§��>B�\����������(�]����k�>E��!������)�:��o��k��l��p��n��s��t��-��d��e��h��j��*�8��+��u��w��{��v��x��y�8�7������"����§��p�q�r��F�s�
�����ԂS��p3���������¯�¯���(��/��+��*��)��,��-���[�l����kl�p3�����ڤ���*��]���������������P����R��S����Q������T����U����V����­	��
������������c���¯�¯��Ք�\�Օ�դ�O�ե�Ֆ�՗�՘�ՙ�՚�՛�զ�է�թ�լ�ի�ժ�խ�ծ�հ�B�ա�P�բ�գ�՜�՞�՟�՝��������������=��>
��E��F��A��H��@��?��B��C���W��+��0��.��3����5��4���8��7��2��3��h��c��n��k��i��g��d��e�����r��t��u��x��s��I��J��K��M��΁�	��W��:(��;��6��T
��Q	��O��[��X��Y��ox��pw��������������|��}��~�ր���ց�ք�փ�ւ�օ�ֆ��nt��r��~i��i�Հh�Ղi��ss��or��pt��dm����gp�����e��f��lq����jo����hr����������t��v��u	��w��x��z��{��#��������������������������'������������������������������������������%��������������������������������־��������������$��"��������������� �������������������(��)��{�֞�֯�ְ�֘�ͻ���֨�֫�֪�֩�֬�֭�֧�֥�֠�֡�֢����u��s	���ӓ���������Ӕ�����¡�¡����˂���{��
����݃�a���Ҳ`�յ�ն��Ҷ�չ�ո�Ջ�Տ�Ռ�Ս�Ր�Ց���	�҂xr	����ҶO
y����վ�ռ����������ҿ�������������������Մ�Շ�Ն�Յ�Ո�Չ��7��8ÃrÃsÃtÃuÃqÃp����������Y�$����_���T�w�,F��u5�������������������������P��S��Q��L��M��N��Q�ܜ��\��T��U��X��Y��Z��[��R�ܑ��S��^��_�����/��3��4��2��0��1��5��6��a��c��n��b��d��f��g��j��h��i��e	�"�#�'�&�%�)�*�����R�����ӌ���Ӌ����{��|��}��B��C��z����y������x����F���6V	�K"�Ә�ә�ӕ�Ӗ�ӗ�Ӝ�Ӥ�ӥ��N^�\��O^�Ӯ�N��������������������H��I��MY�Z��KX�Y�ӣ����Ӡ�ӝ�Ӟ�Ӓ�ӓ�Ԇ�ԇ�x�΁�\���f�}�+��h�łx��	{��K�O?��R����������������U�Z�Ҝ����U����U�[�Ҝ��]���Ш
��a��b�א��e�ה�ד��c�ב���?����T��W��V��U��X��Y������������	����	��
��
��
����
��сˈ�����\���=��x��~��z����y��{��|��^��_
��h��e
��c��`��a��i��t�1�2�+���a������.��,��-��4��5��6��9��:��;�,�͢?���-���
��H�D��
��)����'�0ž\�3�1žX�2ž\��*�/�.	�����G�D��'���� ���׀�ׁ��/B��1��2��0�ׄ�ׂ�׈�׏�׋�׊�׉�׌�׍��Ia������������������������,��1��,��0��*��,������׮�׫�׾�ׯe�ױ�׷�׸�׳n�װd�ײm�������״n�׵m��/�����������0��R����������	��
��
�����������������������������̓�̈́�H��%��&����ͅ�͆��������������������������������'��(��)�����M��N��K��L��J
X?B��<����׬�׭�����v��w��������3��8������������������������������������o��t�׿����������������9��:��Ё�h����������<��{�+�ׇ	
¯�¯����
�ڱ
��Z��[�.Š�¯�
¯������ρ�������ק��.¯��������ך�י���ח��������׎�ם��������׍�ף�פ�מ�ן¯�¯��������ӈ�Ӊ��߁�ϼ���Ӂ�Ӈ�Ӏ�ӂ� ������ϻ���°°°°°°
°°°°°¯�¯�°°°��°������¯�¯�°°�ā�	'#�	D9>��
��������	�h�����k%L�H�鋺���p
�b�8���c��s��$��%��&��'¢£�¤��sJ�ͽ�Ϳ¢�Gœ��O�G¢�H�J�I�¢�Jœ��L�Hœ��P�Q�S�T�=�@�?�>�W�X�N�A�B�¼�½¡�¡�¡���_���������¡�¡�¡�¢¢¡����\��u��'�������������ف����!��et¢����œ��i�h�g�d
�e
�j�k�l�t'������������������
����
�����������������PD/�<�l����f
�����ԉ�g���.�C�������2�3�4�5¢!��
�FJ.B���a�l����h
����f�����U�������������†���0��†��!��"��#�������� ��¢$¢&¢"¢#���v����~�w��������m����-���'�������������������`��	��
�����y�z��	
!�!	D9&���g��	��b��p�LEp�Yl�T�e�>F�>G�����'�����s�������͎�͏�������'¢��(���SIU�*
���ԡ�������~�2�}�+—a�|�1����2�����1����¢¢����=����=��j��i��h����������������~��K������£�£����������7�q����
�9¡�¡��;�u�|�¡������8�m�����	�:�p�|����������	��t���������U����U�£�£�£���&��+��,��-��.��/��'��(��)��§�£�������������	RC/,������ł���PZ���U�
��gN2.��%���R�������B��(��)�S��“������T���(������������f��c��b��f	��!����������������)�)�)�)�)��������
���f������������������������������ ������Q�����������������������
����������0����/=��������޴[����������	����	����
��
�(�������¤I¤J¤K�x�������3�G���“"£����2�L�~�5�`�����	���3��S��T��P�8��������������EH2�����	����������_2��Y��:��?���;�(���<������|�(��}����������������#������0��"����с��ޭ[�t����"	��:��T	�����T����W�d���M����#����U������W�d���Z����W��H����V������������1(�����(������~�:��&����@X_l��r�=3�d���wp�y�����Z�d���t��p�d���q�d���r�d���u�d������������������J���K�L�=�?�A�@�>	�C�D�ī�Ĭ�Ī��;��@�d���%�d��)#�)$�)%���B������z�d��(���y�>$£�£��q�r�s�t��y�Q$�y�x�w�~��o�(��(��(���[�9�:�N��G8&����K������I¤X¤Y�����?�@�>�O��>/+��<��ޜ���(�����g���(����K���h����"���������K������¤Z¤[¤\¤]�(���M����������,�-��������������M��	��S��������������������'y��@1
��5��B7(�V
�W��x
�x�V�����B¤W��������������
����g
��������
����$�����D\	���e������6�#����C��D��B���(��(��(��(��(��(��(��(�����e���O������
��
������f¤^��b��c�����������������������g��e��j����k�����������������T�Ä��V��o��p��n��X��Z�Ã��W�Å�á��U
�Æ��w��x��{��|��t��u�É��}�È�Ç�Ê�Ë��I�ç�è�â�ã�å�æ��J�é�ì�ë�ê�ï�ò�ó�ô�ð���õ�÷�ø�ö�ù�ú������ÿ������ý�þ�������������������������������������������������Ú�Ü�Û�ß�à�×�Ø�����������������������������������q��r��s������!��0�������������"��^������_��`��KC�Ï��L<�Ñ��������	�Ò�Ó�Ô��������������������~���À�Á�Â��[��\�����������
�����¤¤¤N¤P¤Q��u������>��=�����t����������¤O¤T¤U��?���`������?���`��������h������g�t�t�t�t�t�t������c�W���c�	d�����������������¤q¤D¤E¤r�������҃ʁ�
���{~���)+�������v�w�)>�),�)-�).�(��L�R��	���{����x�y�)?���)@�)A����\6����N	�dbN
)���d���-��0��.��/�J�F���d��)5��1��2�H�������X6�����
F�d��I��1�d���|�d���}�d��M�N�����®�������
	������R��c�	����������Ճ���¤s¤t�����Y�)�)���.�/�������������������(���������U
B6��t��#	�1FT�	N1���\|�{���#���`����x����x����(�� ���������(�����\������������������������Q��^��_��.�cf����ʃ��������������UU6'���o��#	�/FS�	N1�d	R�{���#����_��)�)�������j��{��-�.�!mH�����_-�����"�������$���W����ސW����#�������^��"��8�%�&��9���8:���0�1�2�3�4�����������������������9�(��(�����8:��ق�J��������������߂���ނ����������:�����������������������:-����¯���f����f��i�j������n�����g������h����s��s�Ÿ�Ÿ����z��2��)hD	-P
H+,a�A�������/&
#���W�[�{cE2)��B���ĉ�ĥ�Ħ�Ċ�5�r���d�s���d�t����d
�v����]�^����������–���–����ĵ�Ķ�(��ķ�ĸ�
O�����ߡ��"��#��F�����ߡ��7�8��^���_�k����:�;�d��<�s��s��s��s��s��s��s��)P�ڂ2
D	����)�V[®���#����W;�����	�d��{���
�������������)���������������ۂvqA�ޮ������c��)
������$���%�d9�)^�)_�)a�(�k
�)X�)Y�)T�)S	�)R�)U�)V�ႁ�������V������������������������`����c���6��2�a�����0�����d����e����������
����P�Q����&
��Y	r7
eV0�����Q*86�c��{�^�Z��<�T�U�������� ¤1¤¤��#�(�¤2�(�¤¤�V�W�!����݂��_¤��!��"�"���i���4�5�s���%��$����������µ��_��“��`��“��>�?�(��%�&��P�Q�c��s��s��s��T�U�R�c����1�������*{%�F�����¤¤�6��&��'����9���Ȃl������–��;���D�F�G�E�>�@�<
�=�A�B�V�W�)�*�88�ca�s��/�s��t�s��t�s��s��s��r�s��s��s��s��s��s��s�f��t�s��s��s��s��]�^�s��s��s��s��s��t���u�A�C�B�s��s��98�ck#�s��e�f�s��s��t�t�t�t�s��s��s��s��s��t�)�h�c��j�k�t�t�i�c��)�)��'����e�.���)�(���d��)������p��������q�y��D
	���
��"
����G(85�c�
�|H	�s��s��Ę�-¤+¤,�ę¤-�(�������s�߁�o�Ĝ�ߒ¤���������o������k¤¤���`�W�X�Y¤�f�g¤)¤#����`�K�L�N�����T�O�P��������R������S��܁��B��‚u£����%�&�'T�+�*�)�-�3�4�����������c��)E������������c��(��)F�)G�(������B��7=�,���僿�;�d�{f����f¤{¤�¤�¤�¤�¤|¤}¤~����)�t�t��>�,�����������������������������®�������b�d��c�d5�h���:`]�y"#
��Ղ!
�����X������eI�����f���������'����a3���Kt�)��)��)��)��)��+�,�.�/�+��z�a_��Ũ������	�aZ���Ŧ�ţ����Ū�ū�4��+����8�d�K�t �t!�t"�t)�t*�t,�ŕY�Ś�ŘV�Ŗ�������������7�>�����@�?�V�)��C�E�F�+���d�J�	�*�*�������d?����������������*$���U���d�* �2�J����������N�O�P�I~�b�H���b���b����������K����L��������������)��Ŝ�ş�Š�Ş�Ţ�ŝ�t/�		�c!�
��F�U���F�t3�t6�)��)��t7��(�c���)�c���5®��8��9��7��;®��6�)��8��yj®����#�Ŷ�ŷ�Ŵm�ŵm��$��%�ųh�űl�Ų��+��'��-��1��.��,��3��4��2�9�;�<�:��<��?��>��@��A��B��C��D��E��F��H��I��J��=�� ���6�`����{�σ
���Q�W�R�S����c��)��������������c�����)��)��)������� �*���V�`������������������ź�Ż�!�����c��Kv�������
��ż�ž���ſ�Ž�������������������"���®/¤�¤����2�������������X�#=�$�����&4�'�(�*�Z��T�
�cA�|��~������q�*b�y�z�{�*c�*e�*_�*`�*a�*f�r�s�u�v�w�i��M�e�j�|�}�������A��.�	�cA�B�>�?�C�E��������
�����n�o�������)��{��l�m����¤������)��)���A
������	��g�b� �{	���Ϙ�������������)��)��)��)��)j�)k��j���c�$�)w�)x�)y�G�H�)z�)��)��)|�){�)~��k���c�&��a��d��e��f�c"�)��)��)���g�)�)��Ƅ��X¤�¤���z�c���{�c��ƅ�b��{m��}�c��ƀ�c����c���~�c��Ɓ�c��Ƃ�c��)r�)s��@��D���^�b�	�|�ϗ�^�)u�)v�_��i���c�B�C�)��������b��d$�~�������
�����������������������,���b�������f�m�i�h�g�j�k�������������_���c1�~��dž�ǂ�ǃ�LJ�Dž�NJ�Nj�������+��������b��
�b7���{j�ϖ��|��}��x�b��K�������	�b6���{i�ϕ��v�b��K��y�b���z�b��Ə�Ɛ�)��I�K�L�J�)��)��)������=f
	�U��‘1�\�{-�ƻ�*��s�*~�p�q�r�t��¤�¤�¤�¤�¤�¤�¤��*�������/�Y�Ƹ�ƹ��*��*��*��*�{N�*��{N�*��*��*����/�Ō�(�c&�*��*��*��*��*��*��*��*��ō�(�������������D†B�!�C���c>C�t������c=A�)��)��Ɩ�cA@�Ɨ�cA@�*¤�¤�¤�¤�¤�¤�¤�¤�¤������*��/�=]
	�R����1�[�p�{�*���¤�¤��)��{��*p�)��{�¤�¤�¤�¤���*��*��*��*��*��*��Ł�ń�ŋ�Ń�ł�Ņ�ņ�*o�)��*n������������*j�*k
����	��N����*�����O�v����ŀ�*��*��*��*��#�*��ƺ�0�1�{�|�z���$��¤�������N����+�ދ��YY�����w��V��#����S��T����������������r�
��q�0��`�6����I����������������������������+_�+`�+b�+f�+g�+h�+j�+a�+c�+d�,��,��,��,��,��,��+��+��+��+�+�+�+�+�+ �-8�-6�-5�-<�-=�-;�+!��+"�+#�+%�*�
�*��*��*��*�
�*��*��*�������c�c���������������+��+��+��+��+��+��+��,�,�,
�,�,�,�,�,�,�,��B�c��$	�+��+��+���C�c��#	�+��+��+���0�c�e��3�������1�d�	�+��+��+��+�	�+��+��+��*��*��,�,�,�,�,������c�d�ق-�+��+��+��+��+��,!�(�-I�-J�-M�,"��-��.�-D�-A������d�6�,�,�,���9h���,*�,+�,,�,�,�,'�,)�,�����
���,�(�,�'������d���8��9��6��7��A�d���<��:�+��+��+��+��+��+��+��+��+��+��*��*��+����A�k�H���c����c����c����c��+��+��+��+΂q�+<�����,��+>�E�+G�+H�+J�+K�+L�+C���+D���,0�+@�+A���+B�+F���+?�F���+=�E�-O�-P�b���*�c~���xE�ϴ�,��,��,��,��,��,��-�-�-�-	�-
�-�-
�-!�-�-�-�-�-�-�-�-�-�-�-�-�e�����"��#�,��,��,��,��,��,��,��,��,��,��,��,��f���
�,��,��,��,��,��,��,��,��,��,��,��,��,��,��,��,��+l
�+}�+~�+z�+m
�+n�+o�+q�+s�+t�+r�+y�+v����G�,��,���H�,��,��*��J��-S�,��,��,��,��,��,��,��,��-�-�-�c���3�cs���:�x�ϴ�,��,��,��,��,��,��,��,�¤��+��,��,��,�)�,��,��,��+��o�+��,��,��,���S�eO�,���$��%�,��,���'��(�,�"y�,��,��,��*��I��+N�+P�+Q�+O�-)�-*�-,�--�+W�+U�+V�-W�-X�-Y�+��+��+��+��,��,��,��,��,��,��,��,��,��,��,��,��a?�&�⁆���H	�*��a�*�
�p�,g�*�p�*�p�*��p�*�
�r�*��+X�*��*��+�+�+�+���+��,\�+��+��+��+����+��+��k�2�+��l�2�+��+��+��+\�+Y�+Z�+[�+]�+^�*��i�+�S�,o�,t�,u�+�d�,k�,^�,_�dI������czH�

��G��+��+��+��+��+��,7�$��c��d�+��+���[�+/�+0��_�c�M���G��tT�,Q�+��+��+��+��+���\�c��(����^�c��?���,{�,|�+
�/2���+�/8���,H�,J	.�,S�,T��g��������c�E��q
��+��+��+��+���Z�+��+��+�������c�J�� ���������7�^����6�^���i�d^��k��l��m��j�d^��J��M��N��L��K��P�+���+�+�*��*��*��*��*���+�+��`�c� �*���a�c����+��*��+�+��n��o�Ă4�Ɍ���v.��������������������
���‚q�\�����*J�*K��Z��\�4��(�c��5��6��7��8¤�¤�����������������łt�������d8�v-�:�����;�=�����9�:�����΍����.�d�������.�����������\���������\�����r(��*&Jc�o"		
���.!
����[��b��eI���O���A���7�ƥ�Ʀ�Ƨ�ǐ��\�Ŏ�ő�Ő�ŏ�Œ�œ�Ǒ��\���������5�����4�� ���8���!�c������������|�)��)��)��Ɵ�Ơ�ơ�����6����c������4����c��KD��������x�y�����c6�	.��w	����&��I���_��}��-�)����*��*��*��*��*��e�f��������s��������t�b��1���c����*U�*T�*S�*V�*W�*X�*]�*�¤�¤��*��ư&����g�h�ƪ�ƫ�T�������)��)��)��)��)��X�)��ю��������V���*8�*9�)��)��)��������Z���d�����d�;.
��xN	����l����,�L�K	�J	����m	���*?�*>�*@�*A�F�G�)��)��Ƭ%�b�
'�{��)��)��)��)��)��)��)��)��)��)��)��)���������������o�Ƣ5�c/�{�����������������������������������ƣ4�c�{���o��k��n��m��l��o��p�Ԍ���������������Ռ��¤�¤����,�1���Ƃ)����Is�!���*��%
�X�
�V���9�hP %"���9�������������a��Q�y�y �>¨q�A‘*�E�D�C‘*�G‘-�M‘*�N‘*�x��������?�x����v�7���u�6���������x��������������-��G��t��.�G��O�P���������Z�[�� ��$��%��#��&��"��+´���-��.��1��0´���,´��\�_�`�d�e�f�g�h�j�k�p�q�r�t�u�s�y�l�m�n�o�]�^�a�b�U�V�;�]��<�����������������­��S����T��4�����¥�V��^�'���|��|��|���5��6��8��:��;��9����«��uX�|��u�u�u�u�|��|��uS�uV�uU�uT�u�u�u�u�u�.�.�t���|p������¥��u�u�u�u#�u$�u���bH�u7���u8�u6��O��P�u1�ǚ���u3�u4�t����t��t��t���|p����������u2�Ǖ���c��H*�u?�-w�H��u%�-x�-y�u:�u;�u0�|��t`�.�G�A�u�u�.�G�%�uY�u[�uZ�u'�u(�uG�uH���b���.
�uM�.�.�u
�u�u�t^�uN�uL�uQ�uR�ta�tb�u�uK�uJ�.
���DZ�uP�.���.�.���1��1��1��#���VX�td�|��|��|��|��|��|��uB�uD�uE�uC���u*�|��|��.�w�
��1�u
�u�u�u���uW�t]��1�|��u^�u_�u]�|��|��|��.�M��t[�t\�-f�z��uI�tY�tZ��n��"�fz@�����iL#��<�i�ĂK�yU�yW�yV�y��yf�yg�yh�yi�yv��W���e��I�����Y��Z��]���e���\��X�1��1��O��1����e��yj�yk�yn�yp�<����=V
�=Z��|��y��y��y��y��<��<��<��<��<��<�À��<�n�=�=�=�=�<��<��<����<n�<o�<p�<q�3��3��=#�=&�='�=%�=$�=(�=)�3H�b���=0�y��3L�GMÀo�2�E�GM�2�2�3J�GM�2	�2
�2��́��=a�y��y��1��ߊ��1����1����1��<��1��2�2�2��G��2��2Ί��8��t��2����>]�2����>\�t��2��2��2��2��+��u�F�f��:���2��߁��8��<��<��2����2����8��2����8��2���=q�?�y��y��y��=t�=u�=z�y��=x�?�=r�=s�y��y�À��3��3y�3v�3w�3x�3z�3{�3|�3��3u�3k�G"�3s�3m�3t�3l�3n�3p�3q�3o�y��y��3M�3W�3X�3T�3U�3V�3S�3P�3N�3\�3Y�3Z�.���BՅ\-t���t�\-�=~�=�={�=|�=}�=��3��3��3��3����d��=g�=h�=j�=k���d��3��3��y��y�����y��y��y��y��������������3��3��3�������r�p��U���}4�}5�}6�2��2��2��2��-��2�d��
E���6�h���Y
&?��	�3]�3^�<�����c�i���>4�=9�yYL�yZL�3	�Gc�3&�3"�3!�3 �3#�3$��`�i�Q�
���=D�<}�<~��a�i�F���9�������<w�<v�<u�D��<��<��<x�<y�3��G$�y��<��=������	�3h�3g��=2�y��y��yR�3?s�G��3��F��y^�y\�y]�3��y��3��3��3Gp�H�3�$�G��3��3��y}�3��3��y�3@�3A�3B�3C�2�� �G�	�2��3��F����3��3��3��3��3��z��3��3��3D�H}�y��3E�H}�3F�H}�3��3��3��3��3��3��2��2��2��G2W�N�y$�t�Àr�2��2��G4�����������2����=Q,�=.�=/�=+�=,�=-�=1�5��H.�5��5��5��<��y~�2��2��2�{���
�=��y��36���35�F��y+�<��=n�<��<��37�2�À}�3,�3<�<��A,�3-�2���<��<��2���2��2��<��2���2�
o}��30�31�32�2��2��39�}�>���3:�3=�3>�<��<��y�d���y����P���F~�2⊭�<��<��<��<��<�À~À���fA�3��3����y��3��3��3�r
�3��3��3��y��y��y��3��3��<��2��y����f�����g���������������
�g����g����f�����2��2������gډ��>?�y��y��y��<��>D�y��<��>D�y��2��2���w��y��z
�ɀ��}	��x�3�
�2��
�2��2����P�G��y��y��y��3��y��yQ�3��3��3��<��<��2����A�������y��y��y��3��3��3��3������3��3�ÀuÀvÀw�����
����aF����*0��!.���>X�܂2��k�h��҂7�>�=6�4�=�=B�=<��i�ib�s�=7��j�s��2̋w�=3�<��<���!��$��#��"�{��{�
�{��{��{�
�{�
�{��{��{��{��{��{���
�p��>����n��o��v�j��Z�����e��2�2
�2�2�2�����r�j������?;��l�i�����/"�=C��	�<��<��<��<�	�=�<��=�<��<��<��<���m�=
�=�3��=]�yd�ye�yc�3���?��3���D��=�=�2��2��{��{��y���O���g�Z ��zb�=(?���2P���8�k�2R�2Q�2M�2N�2O�2T�C��<��<���V�l?�5��5��y��2��3	�y��2��2��2���R�iŃZ �ށ�g�<�G�=U�=?�3��3��3�Gv�y��y��y��y��=�=�=�=�=d
�=�5���Q�i��Z ��x(7�=3�=�=�=��P�it�� �ہ�e�=E�2��2��2��3��2Nj}�=F�=G�=H�2��|�3ъ�|��|���S��g�l �C�y`�ya�5��M��'�p���T��g��k�	B��&�p��D�À���,®�������.®���/��-�}7�}8�}9�}:�4b=	�4d�4c�4��4m5�4e�4f�4g�4h�4��4n3�4l4�4j�4k�4��4��zN�z��z��z��z\'�4x�F��zR�zQ�zT�zU�zS�zW¥�4~�z}�4o�4p�za�zc�zb�4{�F�À�À�À��z|�	�j3�F������4���i��z.��k�	�j�z�����y���zD�zE�4��4��4��4��z��4��F��������4��4��4B�F��4��4��4��zIA�4��4��4��z/�;�z�zC�zp¥)��Q¥*�zs���°\)������������°[���°[���°a�z0@�z5�z4�zo�z6�z7�z8�z3�z1�z9�z<�z>�z;�z?�z=À��zA�4��zf�zg�zd�4��F��4��4��4��4�
�F��4��4��ze�z��4��4��4��4��4��4��4��4�	�4��[��x���u�z��4��4��4��4��4��\�e,�z��zt�zh�zi�zX#�zY�z^�z_�z`�zn�zB�zl��~»����zu�zx�zw�zO(�z��z��a�b�]�^�<���@����ρ�b�b������	�s�g$�]��#�v|�v}�v~�4�/��ɕ�ɖ�-��G��5*�5+�-��G��5(�5)�/��/��/�	�/��/��/��/��/��/��/��v�{�y�y�23���z���z�v��v��v��y�0�0�J��z�0�0���52�.��.��.��.��.��.�����ӂ�4�c��J�ɏ4�ɐ3����4��;��m�ɔ¥���.��.�����������������Ԃ�4�c��J�ǿ��4�k=
3�B/�4��4��5�5�5�5�G��5�5��$
x��X�{�e6�G���6�q�u��u��u��u�����������'�(�#�$�������+����,�/��������³��}���B��AÀcÀd���a¥���.�.�.�.�.�����`������A���¥¥�/��F��/��/��/��F��/��/�¥	¥
���R�`|�u��"��x�ɚ�.��.��.��.��.��z�z	�u��u���V����b�A�)���4)�4*�u��u��u��u�� �.��.��.��.���V���a�A��u�-�ɭ�e)�G�9�y���ɮ�u��.��H�.��u��u��/����/��F��/��/��/��u��40�41�42�u��u�%�O�P�Q���"��V�x�j��B����.��u��.��.��.��0�u��!��$°��u��u��u��u���%��&�����
����
��
��"­��2����+dx��	�c
���@�N4���q��!�5��@��v��v����V�����u䁷�Ɓ�y��I���E|�T����c
���A5�2,�2-�����ɱ�j|�4.�ɲ�ɬ�ɸ�ɹ�W����c���X�����ɳ�ɴ�ɵ�ɼ�ɽ�y�5�0�1���e�-�Hz��d�����/��/��/��/��F��/���f��h��i��e��g�.��.��u��u��u��u������u���2��3�.��1�p�����/�/�v�v�v
�/�w���/�/�/�/�/�/�v��«���«��t�����v�v�v�v�v�v�/(�/)�/*�/,�v�/-�/.�tm����������v�v�tl�v�/�/�/�/�/2�/3�//�/0�/1�/5�v �v!�/6�/7�v%�v&�v"�/;�/9�/:�v$�v#���m��8��7��6���³��/#�/�/�/�/�/�/�/�/"�/#�/$�/&�/%�v�v�v�z����d��/�M��/�������/�/
�/
�/�/	�H�tk�u��u��v�u��u��u��u��=������cE%�i�"-��%�o��\��)�5�0�0�0�v2�v3�v1�/J�G��/K�G��/��/��/��/��/��/��ve�vf�vd�v0�v]�v^�v_�v`�va�v6�/��G��/��/��vb�5��F��v9�v:�/D�/E�/F�/H�5��v7�v<�/L�/M�/N�/R�/S�/T�/V�v=�/O�/P�/Q�v8�{��5�v;�5�5�4_�F��tx�y�
�y��uk���x�;�x��x���
±�¥B��*�S�uo�ɧ�ɨ�y��y��y��ɦ���ɪ�>�����`�jI���p���[���/@�G��/A�/=�/>�/?�/C�/\�/W�/[�/X�/Y�/Z�vE�/l�/m�/o�v'�vG�4�vO�vP�v)�v>�v?�/p�/q�4�C�4�v+�v,�/r�/s�/t�/v�57�B
�vB�vC�/g�/h�/i�/j�/k�uj���/w�/x�/y�/z�/{�/]�/^�/`�vN�vM�/a�G��/b�/c�/e�/f�vH�vI�vJ�vK�vL�y�����E�`e�d $�L܂��tp��tn�to�tq��}��}��z���z�{��{��vR�..�vQ�.J�/��/��/��/��.I�Nk�/I�.H�vS�vT�/��/��v[�v\�vX�vW�vY�vZ��A�_��@�_����D�_�d~0���G�.'�. �.!�.#�.$�.%�.&�.�N��/�G��/|�/}�/~�/��vV�.- �G'���/�.,�.)�v-�v.�.*�v/�4�4�{��{��{��{��{��{��}��.O�.P�}��un�5z�@��.2�.3�.5�./�.0�.1�.6�vw�vz�vy�������vx�us�/��/��/��/��vi�/��/��/��/��/��5{�@��������������������.=���fn���fn���fn���fn���fn�.<�.>�.?�ur�����uq��������y�:�j����4\�4]�0�0�0�0�vr�����������������C�/��G��/��/��/��/��/��/���E��F��K��L��I®2��D�gY�/��G��/��/��vp�-��-�����vq�<�3����ju�8�/�
�/��/��/��/��/��/��/��/��/��/��/��/��4����js�7�5����z�z�6�f������l�=�e��+$�����@���z�kg�4<���@�����jr�CW�����4;�z#¥@�/��/��/��/��/��/��vs�/���������y�����e;W�F�����A��/��t��z�z�5���������e��G����e��/��e�z����c��5���C9���z�z�;�����e��G�	�����[��\��Z��W�g���X�g��-��-����k�9�ct��4�����@��(�`�/��G��/��/��/��/��/��v��z�z�z�z!�z"�v��v��z$�/��/��/��/��/��-��-��4N�4O�-��J�-��I�
���4K�A)��4L�4Z��M�v���S��T��R�e��]�-��\��P��N�k��4F�4G�4E�4D�4H�4I�@��<�j�����]��_��c��^��`��a�5"�������������cE��Z�c�<��1���	
J�!�g#�Z��w�.��2b�2c�2a�2e�����y.�2]�2^�2`�y9�2U�2Y�y-�2Z�2\�2V�2W�4�Gt�5��F�3�4�������±V����y0����_
�5��5��tf�2��y<�y=�y>�2��2��2��yB�yC�yF�2��2��2��2��yD�����2t�2u�2v�2w�2y�y;�2z�2}�2|�2{�2~�2��2��2��2��2��2��2��2��2��2��yH�yA�yG�2��I�th�tg�ti�2��2l�2m�2p�2q�2r�2s�2��tj�2h�2i�2f�2g�2k�.@�.C�.B�.A�.D�.E���6����d²S�-}�-z�-{�-|�-~�6�7�9�y1�y2�y3�y4�y:�y6�y5�y8�y7��[����ڂf
�j؂���@����[�4!�4&���{��{��5��5��5��{�����{��v��tt�tu���w�{��2��5>�5?�yJ�2��9�2��2��5��5��C�D��[���������5$�|��4 �1�2����D
�j߂��}��}��5��5��}��}�����A
�j��������}��Ǜ;U��W�iǁ��o��L��f�)���5����)�j�L���(µ��2/�-��-��-��-��-��-��-��-��-��-���6��7�{��uz��8�z�ux�z�z
�z���te�Ǟ�ǟ�ǝ��µ���1µ����v��vj�ǡ6W��h����Bͅ�+�4��B��4��B��5�5�5
�5�}��}�� ���m��A�@�w�&�{�|�e��~�!X�<X�<Y�21���22���5A�5B�I������­�����c�d�������M�8���G��-����G��J��.T�.U�K���­���M�k�������
������N���?��M
����Q�c�}�ֶ���{��{����Uڇ<�|�e�{�T�{��|'�{�U��:±���=��>��<��@��;±����\�|�����M�����+��G�`$���g��J��{��2�2�2�2�2�O�h��P�{��{��{��{��{��{�0���� ��&��*����2�J�/�2�2
�2
�N�����o������I�J�[�U�\�^�T�S>�֍�
�@���±��2!�G��2"�|�A�t��S�F�G�c3�ٚ�d3�K�{��|�|�|�V�W�zӁ��t��|�|�gth���p�":��G�J�-��G��-��-��-��-��|�|	�|
�|�z��z��z��{��h�fv�5F�G�+�{��{��5G�{��C�D�E��
J����cU���kS�}�֢"8�<�e�X�| �|!�{��|�;�e�]��_���±�Y�2�2��6��7��5�z�����T��/±���\�d���@I�6$��3��'±�&'��*��+��)��-��(�-��G��-��G��-��t��z��z��z��z��z��z��|
�t��P��`�g���G�)�N�e�#�{��{��t��{��O�e��P�{��{��L����p�¥Q�5J�G��l�f�r�g�j�h�o�m	�v�k�x�a �z�|�}�{�y�~������18|-��-�x«��|��|��|t�|u�t��t��t��t��t��t���x��x��|��t��t��t��|����|����|����|����|��x�����e��t��4���� ?�|6�z��z��|1�z��z��z��z���i/�|��|H�|I�r��1�t�eh�v�Ǩ����$�s	����#���~�}	���|	�{	���|��x	�y	�Ǥ�|_�|w�|`�|a��DZ�Dz�����|b�|c�|��|�������������ϸ�m�5[�|8�|9�|:�|;�|=�|<�|?�|E�|A�|B���g��5��s���=�|��|x�|z�|y¨Z¨_¨[¨\¨]¨^¨d��3�|2�|3�|�¨Y
��3¨c��B��¨`¨a�|��|��|d�|e�|h�|��|��t��x��z��x��z��x��x��x��x��z��z��z��z��z��z��z��|G�z��z��z��z��z��z��z�����i��5��5��5��5��|��|��|��Ƕ��5��5��5��ǵ� 	�a҈��@ �~�������|n����a������°����������;����v�,�|{�|i�|k�|j�|L�|��|��|��|��|N�|O�|M�|��|��|��|���_������`��b�|X�|Y�������@D�����|}�|~�|��������������i�8
�gBG�4��4��4��|��n�g�p�q�o�g#�k�l�����|^%�|��z��|r�|�&�������|�¥T¥W¥U¥X�|v�����|��|s�|���	����j��h�t������|]��I��J��A² �|Q�|R��E��F�����²�|Z�x��x����|[��C²��B²��4��5��������o6��G��h�����y
�y�y�z��{*�z��z��z��z��y�y�{'�y
�{)�{(�z��z��z��z����y�-��-��y�x��tW�x��z��z��x����x��x��<Z�<[�y�y�y�y�-��t��|��t��t��-��-��-��t��t��t��-��t����sf����o7��F���h����
¥H¥I�{¤���>�#�$¤���>�*�e

�z��z��{�{�'��
�"���Nw�{�{�{
�{�{�{�{�{
�{�{8�t��t��{.
�{/
�����&�D/�-¥Y¥Z�{-�{�{�{�{�{�{�{�{�|�z�(�DV�x��x��z�+�{�{�y	�{!�x��x��{%�{"�{#�{$�{�{�{ �{�{�y�D���t��z��w�)���{&�<_�<^�<]�x��<`�<a�-��-�����z��]����`����_����^���¯�a����b�������	����	��	�����������}�}��}��}��}��}��}��}*�}�|�#�|��}@�|�#�|�#�|��}?¢��ا�}P�-��-��-��}R�}S�}O�t��t��}T�}U�}��gªQ�t���j��i��h²��{D���e_���}N�}I�}J�}K�}E	�}�}	�}[�}\�}]�}Z�}G�}H¥���g]�}��}��}��}C�|����g_�|�[�}V�}��}#<�}&�}_�}`�}%�}$�}a�5��}��}��}��}��}��}��}��}��}��tʼn��}��}��}��}��}��}��}e�}f�}g	�}
�}��}��}��}q�}r�}�}��}��}���kªL�}��}��-���l�}x�-��P��-��-��P��-��t��}v�}��}��}y�}w�}|�}x�}{�{F�}��}z	�}i�}j�}���5��5��}m�}k�}l�}n�}��}��}o-�}}�}~�}�}��}��}��}��-��G��-��-��G��-��G��-��G��t�¥����-��G�[�}'�}(�},�}-�})�}1�}c���a'�0(R�}/�����}���}0�-ՅN���H6�}2�}3�}V�}W�}X�-օQ�|��5��}�}�}
�5��5��-��P�-مQ�5��F{���5��}�}�}�}�5��t��U�t��5��H1�2$�2%�}d�}�5��n�i҄7����26�	�ʑ�~M�}��}�y�}��}�y	
�~	�~�~
�~�~�~J�~�~K¥3¥4�~������}��}��}��}��}��~���|��|��|��~�}��}��}�������������~
�~.��}�}��}��}��}��������}�3�ʒ³D$Z	�~�~�~�~�~�~�ʟ�ʠ�ʞ³fZ�~e�~�~�ʔ³_Z�}��}��}�+S�}��}��ʗ³lZ�}��~�}��}��~g�~�~�~�~"�~_�~`�~ �~!�~�~�&����q��=��~�{NÀ��{O�}��y�'�������}��27�J�~#�~U��À��~V�~'�~(�~$�~,�~+�~-À��~XÀ��~%�ʀ�ʃ�ʂ�ʁ�~&�5�q�i��}�A�~2�~3�~6�~7¥7�}��}��}��}��}�¥8¥:�}��~8�~9�~:�}��}�����~5�~4¨l����~>�~?�~@�~D�~E�~B�~C�~A�~=�~0���!g�n�$�8�K�}��}��}��}��24�25�}��}�À��}��~G�5��IY�~R�~S�~�}��~F�}��~O�~N�ʄ�kt�pc�}��}��}��ʊ�ʋ�ʉ�kt�pc�ʇ�ks�pb�ʅ²I¨o��`�{P�{Q�������~�+�5����#4��	�d#�e�������D.�Z�$
���U��U��]��
(c��
�h8%
!�k��k�~�}�1������_�������v�"�u��u��r�$�x�
�y�
�x�
���������������������=��C��=����5��6��6��6����������7��H��7����������7��7��7��7��7��7��7������n��oQ�՚�����m��A9����������������������������u��������f�����.��.��u����ʼ�����u��7��7��=������u����~����e]�N(�~��~��7��7��7��7��7��~ok���=�~����M�$T�h��Ӻ�~����f��~�� �"�!����������¶q���u��~��u��6��6��6��6��6����ʪ�k��U�ʭ�ʬ�m-�ʫ�7��7��7��7��2E�2F�67�I`�6�6�6�6�~��68�~��~��~��~�¤�q�~��~��~��~��6�~��~��6�6�~��~��6�6 �6"�6�6�6�6#�~��69�6:�6;�~��~��~��N�$S�h��Ӻ�9���{V�{W�{X�{U���������~��~��~��~��6'�?��62�63�61�~��6*�6+�~��6)�6,�6(�6.�6-�6/�y�����rۂF���n��6���6��?��\�6��6��6��6��6��6��5��u�����r�6��I|�~��~��~�����������6��6��6��6��6��6�������´v�~��~��~�����������´�~��~��~��z��7������7��G��'�6��
�I��6��6��6��6���~r�7��7��7������)��E���n���8�:�7��n���:��q�7��7����o��n��7��G��7��7��x׈��6$�ʮ�ʯ�t��~��)�*�~��~��~��6��?�6��6��t��6��6<�7��7��6?�6>�6=�6@�6A��6%�(�-���������cɈ_��
�8���`&8����~u�~v�/�1�2�0�6�I��6�+�-�.�,������������������c��.��.��.��.��.���������c��$�D\���f�6J�6G�6H�6I�6K�.^�6��6��u��6��6��6��.[�"�.\��?�6L�6M�6N�6O�6P�6D�6E�~��~��~���!l�
�I<n�._�8�~��~��.`�.c��!n�J��~��~��6��6���"8�I���"8�6T�.W�.X���Ir�.Y�	�!f����	��!n�J��6��H��6�6	�2G�G��2H�6��6�À����J�K�L
�6��P�6��6��6��6��6��6��6��Q�SÀ��.��.��.��.��.��Q��.��6��6X�n�6Z�6Y�6U�o�6V�6W�n�6]�j�5l���I\�Z�6��I\�6��������6��6��6��6��>��6��6��6��6��YÀ��N�O�-��-��-����.f	>���K[�7��H��7��.l�RC�.m�6��.h�Q��6��.o=�W�.g�Q�V�6��6��6��M�.i�.j����l��H��7��7��7��7��7��7��7��{S�u��u����m�7��7�����l��H���l��7������		�d#����Y��]�
��
�h>?E�k��熰�.��.��.��.��.��G��~��~��~��~��u~�.�.t�Q9�.u�����������7��H��7��7��H��7��|��|���������:���C7�I(�6����6��6��6��6��6������������������1�.z�.{�.}�6��?7������c���_�j��	
y4��
�h=q���>.e�(�6`�I�I�\�_�6��6��I��6��I��`H�t��6}�6~�u���1����2���z�����v�t�6��6��u�74	�I&�7;�77�76�75�78�79�6�>�H$t<�6��7A�H��7�H��7D�H$x�~���6��7:�H x��7D�H&t�~��6�D�6�C��y���2J�2K�2L�x�w�.��.��d���������q���#Q�7��w���`]��	�@�-�7L�7N�7O�7Q�7M�u��”�•�“��x���`!���?v�7��|�p���7�.����IH�7�.��.��.����y�z�7�7�7�.���?a�e�u��u��7�7 �7�7�7!�7"�71�n��c�}�~�f���72�IO��-r��7t
�I�7|�7}�7~�7v���7��7u�7w�7y�7z�7x�r�7��7��7�
�7��7��7��7��7��7��7��7��7��7��7��7������������������������i���������¤��چ�~~��������`S�����o>��K�~x�~y�~z�~{�~|�~}�6w�6x�6z�~��.������n�٘
_)-?¥��U�7+�7,�7/¥��U�7.�oB�k�.q��)�I(�7q���7Z�.r���7T�7[�7]�7`�7d�7e�7c�7b�7a�7g�7^�7_�7o�7\�o�p���.��.����5e�F6�����~��~����h��������7��7��7�������������
�����6
�I����6�6
�6�J)�6�6�J&�6�.����C�.���g���6��6��6��~���k°p�z���l��m�z���o��r��p��w��x�z��z��z��z���5��8��9��������6��3��4���~����{]��y��|��}����{����z���,�u��6to*}�3����2�a�߂�e��.�����(�{���ځ�i�F���j�������!�����������������x-�����������������������-��G�1�����v�������	�-��-��-��-��J�v��8��v��v��8��??�8��8����v��v��v������!����;��1��F�1��1������<@�;������$��;��0�����;n�
�x��0�0���_;���<A�<B�C��S�r��=��9\���������;F�;G�9v�9y�9x��� z���08�9r���=)���!`�?��x��9t���=)��9s�>M���xM�xN�9]������x��i�rH�0;�G��0<�0>�0?��z�{�|�������"C���y��d�rI�09�0:�0@���<��0A���wT�0B�0D�t��0E�v����;0�;2�;1	�;3�;4�;6�;7�ȝ�p������wR��9i�9l�9m�9n�9j�Ș	�p�	�9h�0Ή��0����0��0��x�������p�������p��D��S�p��(��
�=�-����0�1f�1h�1b�-����-����07�3�x��9Z�9[�9V���9W�<-�-��G��;^�<����v��;:�02�03�05�17�18�1C�1D�1A�1B�1>�1<
�1H�1I�1G�19�1:�1K�1L�1M�1Y�wK�;�-��-�����-���wL�t��3�)�Fb���v��1^�1]�1\�1_�1`�;>�;D�;?�;=�x����xZ�x\�x]�x[���_����wk�wl�wm���������0�1�3�4�j�*0gy�?���>ȅ��U�����1��G��w���9��8��������������9��>��9��9��9��9��9��9��9��7���w�w�w�-��$�8��9z�����������8��8���� �8����������v��8��7���T%�>�����w�w
�w�-��-ދ��X�8��-��8��-��9.�9/�8��7����=�9�8��8��Ȭ�pR�8��9�9�9�9�9�9���������8'�@1�8)�8*�8(�@.�x��9�0,���ȭ%�p-�x���������E
z��G��q5�����x��9�9��6�9
�9�9�9�9�9�9�9�0��0��9{�9}�9~�9|����Z����g��u����h�������0�������
����������6���!�"�0�.�GB�0��9�9�0�-
�G7�0��0��0��0�¥x¥y�����9��9��>��9��>��8�8
�8�����w�w�8�8�9�9�9�9 �8����7�p��������������������3�����8�@F�8�@E�9'\�9)�9*�9(���������0.�9-�0/�9,�8�@>�8 �8�8
�@<�8�?����wb�8%�8&�8�8�8�8������17y��	R���\�?8���0��PJ�;��;��;��;��;��;��;��;��;��0��0��t|�-���	���0��2�H�0��9!�9#�9"���t}��0�K�0�J�-��-��ׁ�	���d����C�<�>���7U�0��0������0����1��0��1��1��1��������q��-��0��0�������>��-���W�@!�-���1o�1r�1q�1p�1s�1t��
���	���|�>�
������Ft�������������������������/����mH�z�>��,�i�8�0F��G�0G�9��9��9��v��v��9��9������z�	�8S�8T�8P�8Q�8R�8V¥z¥{�1����1����k�1����1����1����8M�8N�>�?�A�}��l��0H¥}�0I�0J�0K�m�w�����81�8D�82
�87�88�86
�85
�84�8;�8<�8=�8>�0L���0M�9��8/���C<¥�������ͅm����n��>��9��9�!�9��9��9��9��9��>��9������>�>��1z�1|�<�>˂?�1}����"��>��9���"��>��9��;}�;~�;{�;|�;��;��;��;��;������o������/�mB�p�>��ȸ�9��ȹ�Ȼ�9��8W�G�G��8X���n�7�=끳�G�R�9�9�=遹�H�t��9�5�>��H�9�8�=��6�"�$�d��%�d��#���L�#�G�o���b����w��9����"���Z�e�t�$����]��^��\��`��[��������X��|�����������L�M�v��v��D��a�qf�:�E�!��:�v��;b�E���a�:�:��b��c��d��f��gÀ�G�HÀ�N�O�PÀ�9��&�ci�9��:�:�0O�0P�0S�0R�0T�0U�:�:�:�:�w��'�ck�0Y�0Z�v��v��ȑ|�p�j�ӿ�v��Ȓ{�gH���j�À�0W�0X¥�՞�w��x��S�T�8Y�8Z�8\�8]�8^�8a�9��9��9��9��9��9����Z���-��-��-��-��Q�R�Ȩ�����& �a�����®ل��x����Ȧ�;`�;a�I�!���>'�E�1~�1�1����c!���8��@5�9��:�:�:�:�:�;f��"��;l�;g�:�:�9��������9�����9��9��J�#�9�}	�9��9�;t�9��;y�9����9ꂇ�9��9����:�f�:	�e�9������,���5�����i�g��y5�>�j���t *���w��w��t܂��t݂����\���]�Ȅ�8�8�8�8�8�8��������oz�Fj��������´����´����´��ȇ�Ȉ���Ȇ�ȅ�Ȋ�:R�:S�#�"��$�"�	�:&�:#	�:!�:
�:
�:1�W�Y�X�:b�:c�Z�[�0����5�����
�����0��:X�:Y�:Z�:\�w��w��w��|��-���5������g����"���5�)�m���) �8|
�8x�8y�8��8��8��8}�8{�8��8��8r�:M�8s�8u�2A�#�t�8w�:_�8����8��8��)�������:�ee�d��$���"�9�`��쁀�-��z��-��-��-��z������������0c�
�5����8��8c�8d�0h�0l�0i�0j�*�������9�ed�!���0`��=z�NJ(�8h�?A�8i�8g�:W�0]�0^�1��-��!�����8����U�:4�8����:>�:<�:;�::	�:A�:7�:8�8����8����8����@�-��~� �
���8��:h�:i�1��������w��-h�q�p�r�s�w��w��w��w��w����:��>3�x��x��w��:��w��w��
��:��>7����:��:��:��:��:��:����"�:��:��>9�:��>9�w��w��w��&�w��w��w���®��v��w��0m�0n�0p�0r�0q�:w�:z�:y�:x�:{�:|��®����w��w����w��e�w���������¬�����	�o��f���:�
�:��:��:��:��w��w��:��:��:��:��:��:��:��j�"(�>�:������ 2���:~�u�v�:��>�l�"'�n�:��:��������_�:@�-��g�h����%�������_�tz�w��w����������ׂ���OX.�a��z����g�jn��3��ÀOÀQÀSÀR�;��;�ÀP��·QÀE��·Q�8��}�;$�t��t�¥#À;�;��;��;��;������:o�fÀ=�;��;��<'�<N�<*�<(�<)�<$�<%�����v���j�p��j"�ѳ�;��:n�f�;��;��^�'��`�:��:��O�:��:��;��;��_�8��;��;��;��X�Y�+�Z�,�<��i�p��8��wA�wB�wE�wF�wG�wD�wC�;��;��;���k1�eQ��� �$�;�F�;��;��;��;��;��;��8���;��8���;�8��=2�:��8��0��0� �= �0���0��8��:��:��:���l1�eY����=�0��=!���0񈺃 �8��C�z��z��0�����8��8��b�c�f�g�h��c��:��l�m�1��*�|���m�|��8���:��-�:��:��:��:��:��:��:��:��)��#�nD�D.���.��� n�>i�w3��x�;��;���z��{��y´��w6�w7�w5�;��;���/��� p�>h�;��;��p�dG���x��;��q��4�n�o�;��P����p�f�9�k����À/�wo�vс��wq�ws�wp�x��;��Ȑ��¶���t��u�T�U��s��&�<��܃U�pH�j����À4À3�<�<�;��;��;��;��;��<�;�À6À5À7�{d���ˀ�{e�˅�ˆÀ9À8���^��~�;��;��;��;��;��˃�˄��p�p:�=��z�;��9��ˈ�p9�9��,À@�˥�˩�˪�˨�˧�˦�ˊÀ:�u�v�˺�˻�;��ˋ�ˌ�ˏ/�e��:q�:p�ˮ�˰�˱�˲�˯�˴�˵�v��vف��v��;��:r�;��:u�:t�:s�:v�v��v��v��t��-�s�1�ˎ�o"��;��:��:��:��;��;��:��<��;��˭�o"	�:��<��;��;��;��:��:��˾�˿�;��;��(�?��/�����OW�a��z����x�j]��FÀ*�<6�<7�<8�<;�<<�;��;��;��˸�;��;��9��9��]�x7���������V�W�<�<�< �<!�<�<#�<�<�<�;��:l�:m�x����������m��<0�����p�������w9�w=�w:�w;�w>�w?���m��G��9Q�9R�w���m����m����EF&�9OÀLÀM�;��E��N�A��偔�ف��f1��c�;������}�T,À>�8��<�<�w2�<�<�x;
�x9�x8�xA�x>
�x<�x:�xE�8��;��;��˔�p��<������˕���;������;��O���JG�p2&�<����<
���q�<	�˒�p��<��w��À-À.��NJ��OJ�[�v��v��v��v��v��\�&U�<3�<4�˙�˚���¯��������������������@�H6R#h%3K�7i�$��?9(�ނ/�e].��+����q�i��ҥ)��%��
�����;�;�;�1��L/�|����;�<��v����0#�G��v��v��u�v��.���xt�����x��x��:��������:��:��w��w������������������������w��0t�0u�0w�0x�1�1�1
�H��1�1�1�1
�w��w��0��G��0��0��vځ��vہ��v܁��1�1�:��:��:��:��wށ��:��>�:��:��>�:��:��:��:��:��:��w��1$�1%�1#�1'����x��8����w��w��w����[�fV����Z�fU����������x��0�=��{�[�fW�GR�{�0���H�x��1�����¬��8��0�0�0�0 �0"����xr�0��0��0��H������;�;	�1�1�1�1�1�1�1�x�x�1���:��:��w��w������1�����]���1���1�1���!	�1�1�1!���!�����������!�����!	���!�@��x����!�.���!�-�xx�xy�xv�xw�x{�����x��x|�m��g�Y�ey���H�?�"�y�0'�0(�0)�0+�8��8���^��lh���[�fV�7�@+�`�X�v��4�v����x��x�x�-�)�-��x�;�8Ѓ��=��1(�1)�1*�1,�;Y�;Z��$W��	�`��x�x�x	���x
�x�x�
�a�1-�Hv�1.�10�x��x������0|�0}�0y�0z�0{�0�x�x��1��1��1��1��1��1��1��1��1�
�1�
�1��x�x�1��1��1��1��x�1��1����!��A�=�,�;C�;U�;V�8˃AL�:��т]
�����;
�v��x�x�x�;
K�<\�_�x���x �x"�x!�;�;�;�8��w��w��1"�x������0$����0%����x���������������������.��	�����v�g���9K���U��V�+
�<D�=�����&3�x����_+�w(�w&�<P�<Q�<S�w*��
�x%�x+�w+�������+����*�;�;�;�9@�x~�x}�x�9G�9I�9C�9A�9B�>y���9D�9E��Q����S��T��W��V��R´��{n���������m����0��0��0��0��0��0��0��0��0��0��0��H��0��0��0��9J�0��
�4����f"��;����'�����93�94�������5���­��������95�x��98�99�9<�9=�9>�9?�����96�97�����ȋ�Ȍ�����w.�w1�w0���^M���x���������M�e�"�<������;�9K�����À	������.��9����>�#�;������������;�;"�;!�; ��X´�À��������Y���L�"P�>
�;M�;I
�;L�;J�;N�>�;P�;Q�;O�>�1��1��1��1��G��xh�����¬����� ���¬����¬��!�"�x`�xb�xa��*¯-ÀZ���h�À]À[��¯I
��À'À(�xX
�8	��BÀ"À �w�w�w�w��������R���8�
�8��8��8��8��8��8��8��8�
�8��<I��Q�'���<J�1n�<K�<L��w��w��v݂�������0��tۄ�<�w��w��y�Ώ����J���+��,�s�bX���tÀ`ÀaÀ_Àb�z�Ώ����J�¥ À�À�À�À�À�À�À�À�À��t�À�À�À�À�À�À�À�À�À�À�À�À�À�0À�À�À�À�À�À�À�À�À�À�À�
' À�À�À�JÀ�À��t���>À�À�À��t���À�À�À��t�À�À�+À�
À�À�À�À�À�À��=��i��"�����=�À�À��=�À��=��h�À�À�À�À�À���f��]c�������}3�~3�2�tv�u��~���tw�������a%�~���~����kI�~��~��~������^&�R��2�u��b�c�u��2;���A��4��u��u��u��4��4�
�A��4��4����'�4�
�4��4��4����l��K���
��2<����a�������t��t����4�f��H���u��u��u��u����u�������­����9�f��H���l��A�������������
��
�l������~�
���~��
�~��~���u���	�
�~��6n�o������u��u��u������������ʳ�ʴ�ʷ�ʶ���������ʲ���u��u��u������´C�u��u����ʺ��������ʹ��M��O���]b���������a����u����u��.��l�K�4��4��.��m�4��.��k
�.��m�A��T�.��
��.��_�.��m�4��`�����0��C�D�;�<�=�>�IÀ�À�¥���k¥�À�À�À��?�3��4�5�,��-�B�1�/�F�G�H¥�¥��^,|2G��������q�
�b��$���ڟY�;�<�8�9�:���������>�?Á�Á�Á�Á��r�@�E�D�C�h����p����q�i����s�t�yÁÁÁÁÁÁÀ�À����̨�̦����̧������������������Á1Á�Á�Á�Á��¦��z_�
�����P��?ÁÁ�=��=������g�ÁuÁvÁrÁx�̬�̮�������P��������Á¥�ۏ¥��ە¥��̫ÁÁÁTÁU��y�̴�̸�̹�̺�̵�̼�̽�����̯�̰�̱�̲��{��|��zÁ3Á2Á8Á4Á6�����������d2E�	�����L��?d��RÁp�����³�d��2�؏��I\�̩�̪��3³���6��8��7��S��i�۴Á}��T��t�۳��w�8��j Z(Š��r����ÁZÁ]Á^Á[Á\�~m�����D�������������������������	������C����	������"���������������"������������5��R$Á`ÁbÁcÁa�T$���������6��‹���‹���ŒR��y¦����f���������������������9�FbqS	 ��‰�¥�¥�¥�¥��Wt�������R"4��Yt´����������������´�������nt´�����´��K�e�f�ME��6�NC�L��¦L����Áh���¦MÁ~��������w�p��h�U��)¥�������¥�¥�¥�¦Z¦[¥�¥�¥�¥�¥�¥��ZŒ�¥��[Œ�¥�¥�¥�¥�¥�¥�¥�P
��ŒpP¦\¦]¥�q¦F¦G¥�¥�¥���E�p��h�D¥�¥�¥�¥���	e��‡
W��������¥���������������e��ؒ¥���\���bP��������g�f)¥�¥�¦���À���0��1¥��
���	����
����~�$�"G�i����¦¦¦�¦�¦�¦��o�p�q���f�������������N�R�S�T�V�H�L�K�I�O�P�������������������������b�E�e�c�@�d��'����)�z�1�{�i�CŠ]�j‹��k�WŠ��^�X�Y�[�\�s�t�u�v
���x�}�y�{�|�w�~���Á�Á�Á�Á�Á�������/DŠbp
���¦�¦�¦�¦������+�,�5.‹ ���6.Á��0.‹ �����z2‹ �����\"‹�
��c��Œ�¦¦��Œ���Œ���Œ�¦Á�¦��t	Á��_‹���i�a����¦��x	�d�72�f�g�8�]�^�m�Š�l¦¦�n‹�i�e�9&�@�A�B�<�G�;�:�=�>��'���_ ��:9\��������qo$�h���F&O��Y(¦l¥�¥�¥�¥�¥���&´�Á�Á�Á�Á�Á����������������������������Á�Á�����;´���<´��F���������Á�Á�Á�Á��G��������������8���3��A��o��s��r��t��p��������������t���Á��������:��H��>�(�)���9´����Á�Á�Á��!����$�%�,�����#����*�+�'�(�!‹U���������������B´r�"��!��4Á�Á��-�.�3�2�1Á�Á�Á����9�؈����:�����g�Á���g����Á�¥�¥�Á�Á�Á��=��=��$‹V�&‹V�'‹V�%‹V�́´��̄�̅�̆Á�̂´��̇´��̉�̈�;�-�:�" 
�h�mE���À�����¦UC�ڌ��
¦�¦�¦VC�ڄ��	��������¦�������
�ٗ��F�̌v�̎�̍�̙���̐�̑�̒�̓�̔�̕�̗�̘¦�¦�¦�¦��j�kÀ����̛r	�ً¦�¦����َ�̟w	�ى���َ

¦�¦�¦��̝q�ٍ�̞q�ٍ�̢¦�¦�¦�¦�¦�¦���‹�#h��$¦`���gC���������m�B��f-¦a¦b��¦d¦f¦g¦e���gC¦i¦j¦k��$��%��Á'Á(�����̥Á���������g�Á+�<�u
��u�Y����iV����
��
�x��	���u�B���٘\�چ��Á��Á$�v�A‹�ڈ���eB&��¦�¦�Á�¥�Á�Á�Á�¥�Á�Á�Á��ab��h´XÁÁÁÁ��,���j�‹�¦�¦�¦�¦�¦����‹����U‹�	�‹��b���Á�Á���F��G�����K#���ab�A������o�P$?I ���l��bˆ�����R��O��}�������
���ÂJÂKÂMÂPÂNÂRÂS�������8���j�����f����������K���L��M��������������	�
�����������§�§����'��x�>��?�?�����h��T�l��>����g�����ї[���>��>��>��>��>��+�9¨�¨�¨��*ˆ��>��>��>��-¨�.�/�)���>��>��>��*�ф����!����1�2��Å�D�E��� �!��T��<�9�����l��b����L:�?�>��>��>����N�O���m]�i=�b�>��>��>��>��>������O�i8�a¨��R��S¨�,�A�
�j$��X��U¨z��T¨#¨$¨%¨&¨'¨(¨)�����K��ˆ��L‹U�-���J�p�j#��E�>��>��>��>��>��>��>��1‰H�3ˆ�
¨2¨3�.Â��4¨.¨-	¨,�f‚�¨0¨}����¨~¨¨���
¨���
���y����y���Z��[��Y�C��V��W��X��<�C�����l�x�b-���>���B��C���5��������m����>����8��ف��pF�����7������pD�6��؁��pE�ξ�ο�9���p��:����p��/Â�Â��0�����7
T�k��W��E�@���b�>��>��>��>��>��>��|�e�>��>��>��>��>��}�e�~�e��e��6�"����_�l��>�����Ed�p��U��>�
?���a���������ĕ������5��3��4���v�<����|�K���Q�a�@�������������>��>��>��7�e�@c���9�fm��`��a�m����z�n����������G��H���M�a�@�>����>��>��>����������������������X�YH�ʑ0�-b�S��T��X�oS �b��!����b��kn��1��2�q�rJK���(6�i��4��o���>S�>U�>L�>M�>T�������Z��ž_§§§���&�i�	�7�J�K§§
��ˆ
¦�¦�¦�¦�¦�§§Âk�>Z�E�ΨÂnÂ�>]�>`�>a�>^Â�>[�>\�=�\�=�[ÂÂqI���-�-`��O��T���%[�oP"0�i�����b��li�s�t�ά�����έ��_����d�>d�>g�>h�>e�Β�Γ�>�/�j&����o��j���]¨���������‡��‡�¨¨�������o¨��_¨¨¨�Ι�Κ�?��W��f��\�>�?¨	��d¨¨¨
¨
¨�>p�>t�>q�>j�>k�>m�>nÂvÂw�>v�>w��b�C�D�����>��>��>�Â@ÂA��y��z��g��������h��n��m��l��i��j��|�>��>��>��>��>��>��>��>��>��>��>���c��Ƀ��m����pY���������pY��҃q�m����pY���pY����pX�gƒ=��j�h�G��H����N��aG
,��$:����M�PP
)5��8�l|

�i������N��M¨F�����o��>���p�>�>
¨G�΄�΅��Â��ڔF���c*�>����E���c)�>��>��>��>��>��>�����-���!���ּ����-Š,��O��P�>��>��>��>��>��>��>��>��>��>��>�������~���р��������#���X*�o��ku�>��>��>��>��>����Q�I��
��0�<��ٍτ�����������������������ˆ��
������������
������V��
��e��q)�oe�b��=��1"��w�p��?�?�?�?�?�·����Ί�Ή���	���������������������v�Ώ�>*�>+�>,����u��� 2�Σ�o��>��>��>��>��т�Τ�o����?����-�ؙ���q����o�p�>�?�jr�?�>��>��>��>�¨�¨�¨�¥��I��
����>��>�ÂH§§ÂG������W��X�J��
����у§§����sr(�o��i���*���>��>��>��>��>"�>#�>%�>&�>'�΋�Ό�>�����P�o����h��>�������>����?��� ����>���?�������o�������o������y������y�§��N�P�Q�O�G§���I�k���>��>���<����l����>4�>5��������(�΁�p�>��>��>��΂�p	�����������"�#��=�����l�Â�Â�Â��>8�>9�l��L�������ъ�������������������������ц�ч�Oˆ���������ш�щ2���̓�C��0���N��>��$$���+#��57]@
���,_Q#��V-N;�>+�4

Je�`�(	��3���E��Q5���ԅT��-����������j�k�?��?��@	����k�j2�@�m�o�n�h�i���?N����������������������'�c�D(��#+�]1������'G�]+�'NÃxÃy�?<���C��?=����Â�Â���Â��?F�j�©�'L�'P�B�'Q�(�c�D&�)�+��#2������#-������ �%���Y��?P�?Q��O��P��N��P��P��O¢�©S©T�'W�\mÂ��'X�ˆ���ˆ��Â��r��	�
Â�Â�Â�Â��������������&��€��@��@��8¥���9©X�����������©Y�@��@��V�W�X�'YÂ��F�y
�+���@G�o������id���ғ%�?�@�ϲ�_�ϳ���Â��������N��?��?���������������N�����XP�������/�����(�o����/�r�v�q�p�s�t����/�����.��H�p�?L�&�'��I�؁�Z�����������Â��G��������I��/�������XH����������	��
�����XG�������������?��Y�d�c�g�f�e�����k�h�i�@��V����@��5��6��	��@��;��:��)��*�Y|�F���a'�o������id��ґ%�o�t�p�q�r�s�?;�ϵ�`^�S�������3�������a��������2����-����,��@��A��B�p����k�g��+�v�p�j�*��hY�F©�Ÿ�Ÿ�©��S���T���?���?e�?g�?h�?p�?r�?i�?j�?f�?k�?l�?m�?n�t�׈y�Y�Â�Y��k���'_�'`�?��?��H�����q����q�a��*����j�*��h,.©©Â�Â��r���! �c0�-�a�b�c�`�D�jm©�\��c0�-�]�E�jm�?��jm�?�	�je�?��?��?��?��?����h��\y� �.���W/��ia���������p���m�n�w�s�q�+�x�z�{�y�~������?��?������?��?�Â�������©:©;©<©=©>©?�?�������������������©8©9�2�0�yv�\�3�4�/�yv�\�������8�5�6���?���L��M���?��?��?��!�.���V*��ia�P‡��.©C©D�?��?��?��?�����-���`?4����6�����g�W��x�b��ւ��l�}��wN��F��G��H¡�°&¡��™�š�`�!:�b8¡�¡�¡�¡�¡�¡��a�!9�b8�Z¡�¡��[� �?`�@��C>�@��C>�ˈ�������͂J�����e�i��������2�����g�W��x�b�
�Ɉ}������䑿�Wܙ|�n‚o�›�œ�o‚n�]��
	�=������r�C��A�F��3�3�4�6�7�8�:�9��?M�^���<�aF�<�I�ϧ�Ϯ�Ϩ
�ϩ�Ϫ�ϫ�ϭ�C�D��;����q"�pm�D��
"�L��[��"�L������������h�p{�?��?��<�=��s��t��_��^����h�p���8^�����³���p��q��a����v
��o�3ˆ�������?��?��8���9��,��j�#��E�$��D�?��6��O���φ�&��U�*��,	��X�(�����+�-�.�,��a��Y�:����ph�D��{��|�τ�L�,���{�|�~��y��z�N��³��l�m�n������X��Y�O����� �!��d��e���b���b�ϋ�ό�<	�z ����3ª*
����?��?��?��H�����j�I�9����:�E�x����l�ٽ
Â�Â��=�?�@�>��Ã	Ã
��2���		=�����* ��
��-_Q�W�(��-C0	�`���3���W+�����S��o�����?c�'D�'E�����©J�����QPX�R	�S�V�U�T�W�X�?���<���D��E
���h��(������������������
���?��?��?��P��\���q~Hs8�P���́��W������e������ؼ©d©f©e���-�"�#©h©i©j�ϼ���������Ͽ�Ͻ��������������f�g�v���x�w��Â������i��w�h�����j�k�μ�������,:�쉃€}©k©l©m�S�q�r�s�t���.���R�~������ٸ©u©v��������~��s���ٸ�$�����s��������������������%�&���� ������
�������l�m�n�o�������������/��6��5���c��n�k`����J���@Â�Â��2�#���(�M�N����L������0D����'���c��©[©\�K�<������������d��©]©^©`©a©b�z����}�~�|�{�?�©w©z©x©}©~�?��?���©�?��?��P5�� �������������������������������S��©�©�©�����������T�����ҟ¢����ҟ�T�������������������������������������������������������Q�R�����؃��a���������������������������������������ك�$��†�����������†������V�`���*�?��W�_�?��?��Q5V���]�o9�dK�\�_�]�^���3�ҡ��
©�©�©�©�©�	���b2��d�������d(€�c�'��o����©���������©���
���d�J}J
c:
�P��
������o�i�����©�©�©�������©�©��z��:�T�U�ю�)�c��;����X����ֈ^�Ÿ�¢� �я��©o©p©q©��W�X����©r©n�*F�H����������������q�H�r�H©s©t©�©�����©Z�ь�э���5�6�3�4�(`©�©�Ÿ�Ÿ������g©��?�hc�����������?I�?J��‡�������‡��?��?��?��?��?�����
����"��#��$��%��&��������m�n������	�
���h������X
�����������
������������°'�������������������������k��0��������J�O�L�M�K�i��/�ϛ�ϝ�Ϝ�g��0��	3�����5:����SP�� ��
C��C���5
�������V:��
���l�G]�`n�K!����E!r�4�Ǵ�Ɂ�	@������������������@¢x��…H��	�
���
���…Hª)��b�v��L���������ª�����ª����K����ª1ª2�����������������������ª&ª'ª+ª,ª.ª0�Aª"ª$ª%ª#ª����ªª�ܝ�����b�� �������ª?@�!„5�c„6�`¢8�b„5�a�b�_�VŠ7�i�{�g�d�U�e�h��1����D�C�
�Q�|„ª�ª�ª�ª������`�E��…���Z��#ª}���d�g�e�f�������������������������������������
�
����
����������������ª¢X� �x�������I�F�G�H�J�����"��Q�R��)0¢!�#�%���?�����O�@�@�'
�v�������(�!,��‡]��M�*���+�,�->��C�����0�0„%
��=�>�.�„(��3�4�:�;�7�2�/�0ƒ����!������������§�§�����������'�©�©��	�
�'��\c�'��\b�|�j
�z�o�p�r�t�s�k
�n�'��~��������l�{�|�}�~��:�����ˁ�V���%p�1��@�S�
P�����p����������������p��������z2��™7�����������@p�@q������ ���������!�"����Š�ª>ª=ª<����
���������������������‡9�#�%�$�&��aƒ��i���G����鋁��(�+�*�)�'�,�/�0�.�-��������������¤	ª���1����*���a�b�j��¤	�k����l�Ǡ�„3��ª�ª��r���u���v�s���p�q�x�1�3�4�2�5�8�7�6�9�:�΂v���ςv���ʠ|„bªC^ªFªGªCªE�ɠ~(���	X��ªMX�<„XªKX�=�>�Ƞw�A�B�@ª�����ªNªPªO���ݝ���SE&�������2�Y������~�!�"�u��ª������������b����…���£hw������������£g���+ƒ2�������c�d��8-���%��`(X����g�6������ђ����	���������������f������7��Fx�g�i������
5���`(Z����7�������������7����������������6���	���������y�z��!$���EI���[p	���`{ ����f��ȕ���V�������J£�ª��K£�ª��(��k����,�'��т��y��k����/���.�(�(���2���2�'���X��k��Dª��C�!����hV�p�()��H��+Y���k�!�g�h�e�Y�|���ª�ª�ª�ª�������������Š�������Š���"#����-D���[R	�x? ��'	����]��ȕ��Ã'Ã&ÃaÃb¢1¢2���'��'��'�w�[��C���D���F�H�G�m�Ou	���D	�@!�@ �@�@�@�'�

c��~��b�'��'�ª��'���ª��'�x
�[��'�w
�[��%�m���*�������������Ã1Ã2Ã3Ã4������� p����� t��������������� s��� s�?�n� d�����]��Ã8Ã9ª���]ª��(4�����'�_���c�3���ª��@,�hG�������4�v�����g}6�.�c%#�������������������������������
����ª��(�`��+�*�)�,�-Ÿ�Ÿ���L�{�|�������‚���ª�ª�ª�ª�ª�ª����
����r��‚���������
�����������	��������������i���������<�����R��h��������/�6�7�4�5�:�2�0�)���'��'��'��'��	�
�������
�������
���3���t� ��
����g��*	�c#������t�x�y�z�u�v��ª�ª�ª�ª���������������
��	�����k%��������_���������
����
� �����{������������(���'�q�"���#�������!����
�{�"�����������%�m„g�&�~‹u��|„^��{�‹vª���( =�,��ȇ\G
`/2"��5�Gz�x�[�V���c[�p��_��X��W��X��������������������U�V�W�X��f�L�������j���†^�������k����)��,��-��f�������������������R�9�ª�ª�ª�ª������u�8U`.‚��v�7Tƒ^�S�b�z���T�U�����I�,�?N��‚��J¡-§x§z§{§~§§��@d�@f�@e�@h�@i�@j§|§}§�§���([�	(��������O[00��<�Gu�x�Y�l���b���Z��WÃÃ�R�����}|�Q�R��\��7��XN	[������u*	�\�&���'��'��'��'��'��'�(�*�'��'��'��'��'��'��'����'��'��P����e�U�����
���)��3����G�����\�������X¢j¢k���>��$����k�g��'��'���/��0� ƒ[�"�#�$�!ƒZ���y�<��'���n�4e���(«««	««
���'¢���¢���««����¢�««ÃJ��b��ÃLÃM««««««�{««"«!« ����?��'���n�c{�r��I«�������+„F��„F«��������y��£��Ȃ����������؂��ق������������]�Ղ�£��^�`««��x��£��\�ς�£������������ւ��ׂ����j�r�}���
���������օ+�Y�3����b�c�e�f�u�t�������{�v�w�|�~��}��������¢p�̄���;������©�©��й��s����«4�'��������s�«0«1��a†��b�k�l�m�o�
�g�c�d�q�f���h�i�����9�_����c����ޘ������ߘ��������p��ƒ�����A«8��«:«;«9�|�~��}	�q«K��Ÿۄ��
ÃV�����������������������б�в��H���'���
����������ю�"��v��<�!� ���г�д¢t�*�4�¢u���$���~����������"¥�������k(������
�c������@[�@\����������������£��@W��������	�k�������������«=�g���k����h���«>«?��ÃQ������������	3 ^��[�Ԅ����W7��&��1��
,����>	�+
��"�;
�����V�"5J�?5�H[�`n	�<	�!��
�z��(s���&�ȁ�	
B���1�����������������A�������@0©�©�©�«S«V«U«T�@1�������«t«u����G��o	&�@n«Q����q%«P,�a„���������������«w«y«z«x�
&�@�|���\�|��e���U��������d„�©�«�«�«�«�«�«�«�«�«�«�«����������/�?�C��Q�g	���e�������«���†���«q�‹p��C�^$�D���|��e��"-�6���������=«m«�«���«�«�«�«�����$����«�«�«�«��������Cx†�,�:�7‡^�8‡]��«���«���	�(�(�(�(�(�(
��Ձۗ�����_W.�B���WH�o���cE*�9��������������,�e��( �z��������N�S�Q�O����������W����������Z����J����������©���ªiªjªk��������	������	�������������ªcª`	ªgªh��������������„������ªb��������������WG�m�e��b���Y��ªTªWªVªU��ª_�M������g*��}�I
�W�K�M
�J�L�P�Q�R�U�T�S�NªQªR������¢=���-���-¢>©�
���>«����„�«����„�«�BC«�«���������	�����k£R«�©����?����w��
«�������
���l�)��w��«�����}����}�^y	�H�����������������S���!���g(���������†m�������g'��������������z��‡�«b«c«f���
����ȃ
��h�†�‡��i�„�…��p��r��s��n��j��k��o��q�Š��l��m�(T�(V�(W�(U�(X�о�п���������������Z���y��t��v��w��u������Y�
����|��~����}��z��{�€�‚�ƒ�¢~��f��g�ˆ�‰�`��)����k���p�e�g�j�f�k���/�3�5�1�2�^��:��~�����E���������2����������:�=�>�@�<�A€���¨�¨��B
€���	¯�¯�¯�¯�¯�����c����
��7�����	�j��f�qb¯��G‡j�H�I¯��'�����	�j��e�qb�"�#�F‡c¯�¯���
�¯�¯����a��+����j����p¯��'�(�)�,�.�-��‡r���������������<���+�2G�s
'��b�e	�����o<���`u�:�@����	�'r�'s�'l�'m�'n�'p�'q�'t�'u�'w�'v�>���������w�����?���}�~���������N���M�"�h����D�0�P�Q�W�������������T���,�-�O�ׄg������������
���������������섓����������������������������������������§U§V��©,©-�X�G����Ǩ�����������������������������������1�������J��$��p��n������������Z��(�����Ф�1�#�?T�?V�����?W��7�\����?U�y�z�:��P=%�{&��ԑ��V՚E�B�����������^�'j�'k��G��G��G;��i<%%�����	���p�B��4�#�{�������s��t��u��v�|����A���7�8�B�	���
������ђ_�������a��~����F��7�b²��}�������������������~�^²����d�����=��+�020�D3���	���o:���`w�;�@��"�������H�~�I��r�L�u
0����§B§D§E��§C§G§J§I§H§K§L���@����*����o;��h
����������������§R§S������������������������� �!��������h�������§?§@�������������������9�#…��:�"…��?R�?S�b�X�������@�g�p���r��v��t��u��y��z��x�؁�؂�������؇�؈��a�����؄�؆��b��e����f��g0��h0�ؼ����������؎�ؑ�؏�ؐ�؊�؋�����؉��A�@��@���j1��m1��k0�؟�ؠ�؞��������������������
���@�O��4�p�������ث�ج�(b�ب��o°°�خ�د��m�ذ�ر�ز°�ة��n��|��oD��qE������}��~���ع�ػ�ض�ط��n9�����\I	2!��1
��5��[�\؂�K�_
�`T�^:�^;�\��`�]�(�];�^4�^5�]=�]>���]?�^1�^2�^(�\��4�\��^6�^7�\�#�
���^�^�^�^�^�]��]��`�^�\��^�^
�^�^�^"�^	�\w�\x�] �]!�]"�]#�]$�`�`�^!���^�]��]��\���^�^�^���`�]��\�s���ƂF�\��\��]6�]7�]3�]4�]8�]9�]:�\�}��\�}��\�\��\�n���D�\��\��]���#�F�^I�^A�^C�^D�^E�^F�^B�`�`�`�`�`�^J��
�`�`�`�`�`�^K�]��]��]��]��]��^L�]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]��]���U�]��]��]��^�U�`X�`Y�`�]��]��]��]��`"�`#�`�^��^��` �]��]��\�}��6	���]�]�\��^��^��^��^��]��\Áނ-�^��]�^��]��]��.�]��]��]��]��]���\�I�\��\��]�]�\��\��\��]��]��]��]��\�<B�5|�\��\��\��\���u�|�^`�\��\��\��\��\��\��\��\����^e�\���p�z�\��\��\��:�^_�^��^��^h�^Q	�^R�^T�^U�^[�^\�^p�^��^��\�;G�6u�]�^)�^*�]�^s�^o�\������:�`/�`'�`+�`,�`(�`)�`=�`;�`<�`>�`?�`@�^��`1�`2�`4�`5�^��`D�^��^��`8�`B�`C�`9�`F�`G�`7�`P�\��y#�`L�`M�`O�`I�`J�^q�^]���\��V�\��V�]y����Z-.!
�_��_��_��_��^��^��_��]�)�]��]��]~��_Y�_��_��]��{�]��_�_];�]w��_��_��_��]x��_��_��_e�_Z�^��]�_U�_�_V�^܂�^��^��_bm�_c�]{���d�_[�_./7�_��_*_�_-b�_+�_,�_�]A����_��_��_��_��_��_��_��_��]��b�]��]B����_��]�L�"��)�_��_��_��_��]ׂ"
���]��+�_q�_r�_s�__�]��_g�_h�_`�_i�_a�]q���]r�]s�]؂��]j�]k�]l�]m�]ق��]o�]p�]u�]v�]|�]J#�UC0.)�^��_k�_l�_n�_��_o�]S
���^��]P0���]N���_��]U���]K
�]L
�_:�]z	��R�_Q�_>�_R�]��]D�]E�]F�_��_F�_��_��_��_��_W�_X�_E���_M�_N�_OR�_L�_��_=L	�_D[�_?^�]G�]H�_H]�_do�]��_��_�
�_��_��_0Bu�_|�_}�_'E�_(�_1@s�_2E�]`���]a�\v	/!��3
z"1�@/�]b�]c�]d�]e�]f�]h�]i�^��]��]��]��]��]�u�]��]�]�_	�_
�_�_"�_#�_ �_�]��]��]��]��]��]��]��]�w<���]�^��^��^��^��^��^����^����]�u	���^��^~�^��_��\y;,�
x�����^��^��\��_�_�_�\��^v�\��\��_�_�_�]&�]'�^y�`d�`e�^��x�^��^��^��^��_�^w�\�
E�\�G�\��\��\��\��\��\��\��\�;�\�
@�^x�\z;*��������]1�\��J�]/�]0�^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��`f�`l�`g�`h�\��\̈́��`s�`o�`p�\��\��\��\��\��\��\��\Є��`v�`w�`}�`{�`|�`x�`��`z�`��`��`��`��`��`��`��`��`��`��`��`��\��`���
�V���{1ic��M�� ���L����z���`������G���M���ق	�n���H
�s��������B��������������������������Љ��щ��F��C�D�F�������k���G�����������j�������F�G�����������F������8�r�9�F�����
�W���H
�Y���O�	�F��鑿����������P�Q�����؇s���A�������<�F����[�U�����F������������F��������	��;
�e����������������B��B����8���y�4���4�P���8���y�4�1���B���
�3&��[��������������������N��N�������������������������������������Ռ僦�B��B��������2$��Z$�����������N����Ê�����N��N�����C�l�
��|��������������������
P�����3�����Q�*����+���B��� ���!�"�����-�j���.�j�����;	�c���*���������B�1�B�1�B�1�B�0�B�1�B�+�B��B��B��B�����)�`�
�
���U���B��V���B���Y�	-�W�X���A�s���7�8�c�d�B����H�I������ �!��$�%�"�#�,�0�1�-�'�����B��B���:�;���D��D��(�)�*���N��
���NJ���
�����G��^�_�1�������[�\�3���4���2�/���b�d�c�a�e�f���"���g�݈+���������������O��O��������	��� �
�Q����������������n��8������������^���c�b�_�`�a���������?�d���7���_�G��O��O��O������g�"�5�����G�G�O������@�6�S�T���e�ޛ����B�;���=�>���<�������~�G�G����H��C�8���#��
���T���������%�Q�-�
�����?�A�B�E�D�@���:�P�0�����Oj�F�G�Ƃf�N�.�N���U��z�/�a�/�e�f�g�k�h�i�B
���灬(��6��������������������������������	��7�������D�����E�������F�}�������K�Q���H�L�P�C��C��G�z�����l���������������������������C
�*���j�k���d���c����^�.�����������鏋����������zF�)=K��=
s��N���?�����e.
�<&����	R
!�*��1\�
d:��	/e�����{��������Ă�����o������o���v�{y���E�E
�E�E
�E�w�{��q�s�C~�������o
�c�~�p�b���\���������e�������������w�y�̨�E���N��N����1�����.�����O��O��O��O������J���O%�O&��ь)���������������`���_�
�
���
������������������������C������������������<��TG�r��p�O�b�,f��}��9����������������G�O/�����D�腈���<��A���~�����A�����݉T�U��������������X���C������N��Q��Q��Q��Q��Q��Q��Q��Q��@���A�Q��Q��=���9F�o��p�����`���������������������		������a����ց���܅��������������
�:���������(���y��#�j�����EA�EB�O��O���E�E>�E5	�E6��E�E;�C����������������Y�����vB	�$���Y�����v�O�����������������"�j����~�M�n�L���q�T�r��q� �2��6J��2�Ic9�1)��1��
��+����G�G���������������N��N��,�-�����C���k����	�g��Q�/������u����N��N�������q��a���JO���
'������A��)��+�r�/9�.�/���h���� �Q����j�����Q������E���E�Q��Q��i��f��3�;������������������A��@��3�<��3�<�2�3�j��e��2�;�N���d���f�����e���	�
��n�D�V����������u�Z�x�X�v�f���g����d�6�i�t����e�5�i�r���W����6����Ņ������C������w�y�z�D���ǛK���ǛK�bFhd\	5K�
m��Q���<	![���m#�<����O

�Z
+���+\1	��
-;9��^�w�G��H�H�����G��G��G��G����O�O�O���G��������<���q�H	�EK�!�$�%�"�����p�+�1�.�&�*�'�(���S��S��S��Q�R�ӑ'
�ԑ1�N��N��7�8�2�6�3�4���H
�H���]�������H�g��#��d��Պ�x���:�=�>�;�S��S��?�@�b�ER�ES�C�D�S��S��L�O�M���N�EU�Y�_�Z�[�����Q��S�T�V�W�R�#�F��G�K�H�I�C��H
�H�O�G��G��Q���u�����>&=L��MR��B
�O���!��l��W�c�E����cE	�O �O#�O$�h���N��N����N��N��c�d�
�`�a���9 �2�~��)i�|��������������i�n�l�j�����������������������������������e8���h�g�f;�������������������������?���;���A�:���I!������bB�P���ٌ�}��i�����������������������������?��@��J�K�����������C�u�v�w�x�z�{	�\�|�������}�����~��k�����N�EL�EM�E"���	�FC�J�K�G?���E#�������������O�����O�����.���Z�\��k���O(�O)�C��C��Cw�/����������O+�O,����i>8
# ����!\��'19�.�U��"��쁲	��H�}<G1�s �s�Ł�k��1�j�W���D$�D%�@+�@,�@.�Z�[���Y���A������@1���@2��y��h�|�?�2�G�����@O�@P�AZV�A[g�Z�m7���.�A������.�O��A�����/�뎪���A����A��A��W����+�|��ч����+�{�҇� �Ӈ���x��e�{�>�*	�B���׉��G�@L�Q����5�g}���A��A���R������A��؆v�AN�c���25�����,�*�+�-���z�D�&�����c���j���D�ˆv�G���u�C�f�g��y���Ad�4��B���5���@���B�O�c�O�c�PM�PN��������d���23��������� ���~��Y���$�PF�PG��������}���#�a�b�
�Sl��Sk���q�Ak�Al�ǒ��P[�i��E&��������ƃ���
�Ai���P8�PS�PT�PW���g����Gz�	�,4l����	���/�V���)
^�����@�B�C�*�`�-�+�,�@��D�E�2�1�3�5�4�A�@d�@g�@h�@e�/��:�0	�8�[�\�V�W�X�Y�Z�h�@r�@s�e�
���f�	���#�N�����9���9�m�p�n�o�)�+�*�H�I�J�K�:��6�_�y�c�b�`�u�a�K�ۄ�#�����������t�w�u�v�L���y���}�z���{�r�s���H�҉��������������������I�щ���7���������VY����9�[
�$���O������O�J�O���=9�������:"�����8:�
�"����������������Q���������O�� �@��@�����E�W�~�v�y�z�{�}�|�A���A������d��Tj��4��u-����	��<�=�T<�'
Y�@��c�m�������C������n�d�C���l���(�-���f������p���q�r��l�c�0*C2��!��zs>�2�@_���������������%l���@Z�@�������l� �;�@��@}�@~������m���P�l�2�S�Ά�����As�At����T�A��Z6�y�Ԉ���:�����P�@�w�@�w���A�A�@��@��C��[�C��Z�@��@������������b�6�����3�4���j�����A�A�A �A!�
�������������O��O������[6
�r�Ԉ����:	�����A#�A$���׃@���D�D�������������������N�f1%B��M���q��9��_=���x����-�f�����[9�)���*���'�������8����������e�������d��
��@�@���3������Y��$������������������������Q��@�Q��b�������y�$�%��2c<�O���p�'��_����
0��-�Y�����[:��� �!����E���
���������d�^���E����'���n�B�B���������@��@����?���0�A��������������	�ꁾ���B�B"�B#�B$�B �B���|��$���i�@����������������*�H�������������.�!�"�������@�������������������,�+��j����@�@�r�s�C��C��u�v�=�oj��G�Pr�A��x�n�y�m�Az�A{�A��A��A��A���g����4��m��#g��������������������{�|�?���i���4���(��@��F���7�������1�k�K�������/��Vd���B;�����������P��Ⅿ�������hr# =&�?��|��
*�b
�L����a"(2I�+1!GD�c2�2����
a��4�d�����@�@�@"�@�/�6�2�8�9�0�;�<�å �Q��Q��ĥ �Q����������p�<���q���������A2����W���n�t����U���q��(	�����o\U�*�������7i�20>��)[Y	�
��a�čL���H�I�U�V�A��A��W�M���K�5��D�����BV���@&�4���@'�4�BW�����f�1�������@)�5�3��������a	���E�F�4��G����6n�#_�Py�[]=

%�1�U/8?�-�
����D5lqg
I<3M�a%"1������]0���A��A��A�A�A�A�A	�A��@��@��O��O��@��C��C��C��И���@��@��@��En�ă-�|�G�A��{�����{�P �@��8���:�;�@���@��>���@��@��@��@�'�9���@�%�@�$�Ӕ���@��@��@����P�������VE��}�?����;	8n��o�����	f���A��P:������}��	�.�S��o�֓{����R�S�������U�V���O�
�P1�P3�P4�P2�O��@��AP�����v�P�������G�)�^�`�_�@�(k���@��*�(�AS�+�m^
G#�T�#
�
����6/[nM
LmH��0����Z �����@��A�A�@8�@9�@��D+�D,�@7���@��@����f�����ϔf�����W�@��@����=���=�@��@��@��Ɂ����ԅA����?n��s�	�ۍ���������������A�A
�����@G�����
K���K�@ԁ��A��@��@��@��ޕ1�A�A�/�.�����g�.�P��h�-�P��C��C������@�P��P��Ar�Aq�AW.�AX-�D0�A]�0�@�����'$�AU#�O��O��O����؉�R����`?>7���S�D
�D�D
�D�D�D�D�Ph��{����BR�B�T�Pl���I�����؁�b�������A:������x����/�P��P{�P}�A<���J��i�S�o�B_�B`�P����P������������������������������9�:�8��������1���P����<i�S���������C��C������������������C�$�Ђ5	�'!�?�=���t�	�g���Eg�:�Eh�D3�o�P��P��P��P��P��P��P��P��P��P��DN�DO�DQ�����s�����������DH�D@�DC�DD�DA�D4�g�D:�D;�D9�D>�D7�r�D5�DS�DT��l��`�U�P���n�P��P����8�9�5�Ǐp�3�L��M�R�G�H�Bd�Be�����O����K��H�]���N�O�P�1�2�������K�,�_���˄���P�
�P��P��P��P��P��P��P��P�
�P��P��P��P��P��P��P��������Em�Ep�En�Eo��������������8���#! ��P��P���������K�����񏊌I����R�Ƀ��i�N�C�K�A�B�D�E�����H�I�L�;�G�<�J�K�O�P��������Bc�D�E�Bf�Bg�=�?�@�A�B�����|��Zk#?�c�1��������
�+#��[��-
4|
���(��v�!����������D��D��F�G�Q��Q��Dd�De��������������������C�(�&�'�+�-�)�#�$�>�ؓT�Z�M�N�P�Q�R�Bk�Z�@�A�#�$�Db�Dc�D����D����D��|�>�1�2�4�5�;�<�=�/�u�N���O�?����E�@���A�7�9�8�D��D��F@�|�%�m�}�%�l�~�"�f�#�f�$�f�%�E	����_���5���y�z�w���]�Q-�Q.�O�P�|�}�I���Q�1�m���Q�Q�G�H�W���O�0�v
���Q�R�X�Q6�P��n�o�Q7�k�l�Q1�Q2�N6�i�́�����(�e�a���������k���Q
�����c�d�������������Q+���������������Q*�Q��_���Q���^���2
		�����䁔���[�o���p�J6/����6�������������Ճ6���7�����:�ȁ��DZ�G�H�T��"��8������������ٌӁ��&�i���Gg�Gh�������\�]���������������'�&�ځɂu�<����Q�#�������������R�������1Q�t���i��Q�v�w�Q!�U�V�D^�D_�D`�Da�v�Z�[���U���M�
�W�y�Yk\

�.�-'�\���z�+#	�ց�

++|����:��v\����ߊ������G/�|����G3�}���
���Y�Z������������G��j�O���G.�h=��!�`��{�[�\��$�"� �.�/�������i<�������G4����*�=�8��;"���@��*
�x
��P���P������	�GO�GQ�GS�GP��Dr�Ds���!�[�E��E��P��E��E�������X���������"����� ��U��%�a��P��!�"��T��Ԋ��
�GC�GD�GF�����R.���O�Dy�Dz���������������J8=������	�L�|��/�0�i�#���j�����G:=���Q��������$�%�ţ-�����ƍ������c���d�������<��
4"���D��5����
�����P��P��GI�'�U�(�U�GJ�GL���P��P��+�,�.���S���`R�{���]�^���������1�2�D��D������4�5�����7��N��8�9�:�;�GU�����Ӂ�Y�>�ڍ�4�D��D�����������e�f�d����9�Y�ԁ�X�=���6�P��`����8��P��x�R�b�D��ϣ{���z�y���(�m�)�ڇ���W���n�o�uj�����������r�s�t�v�w�HC����J�x�z�y�{�q�އ���T�����}�|�~������ڊ�Z��������������������������������	����������������������)�Ă���X��o�K$
'
���R�.�Ao^�-C��Tn�ɘ����J��J��M��M��M��M��M��J����J��J��J��M��J��J��J��J��J����J��J탯�M��M��ʘ����M��J��J��J��J��J��U���K(�K'�HJ�HK���h�M����a�b�ڎ��������FL���P�K0�K1��)�FB�郆�M��L��L��L��L��FC�q����	�J���K��K��G��I��������������I����I����I�� �!�"�I��M�I��[�I��[�����G������������I���
�&���K���J��I��^��
�k�K�K�R=�R>�H��M��M��F�F���H����v���C
B�J<�v
dY����%F�3

m���JR�JS�J"�G�J�J#�K6�J+��J,��J�J���L��JA�JB�J9�J?�J:�J;�Ms�Mt�J%�J&�J��߂'�KT�KU�Mv�L��Mx�My�H���KH�4�KI�3�KF�K‚��I�I�KÂ��KK�KL�[�ЅN��Fg�
)���n���Ko�Kp�L��L��L��JF�����Hv�������H��O�J��J��I��R����)�����KmK�K��K��K��9�K��KnK�J8�JJ�JM�JK�JL�J 7�Kq�Kr�M�M�M�Qx�Qy�Qz�K<�Ʌw�Q}�Q~�Q|�Q��Q��Q��Q�Q��w���D@�P��
_T����	7��
gz���M��M��JP�JQ�E���N��H��n�c��L|�L}�M��M��X-�>����.g�:��*1-I�����Hy�JU���قƂG<����Hn���F=�J2�J0�J.�^1�<����
'���01,I���H������6�#�J(�KN4�KO3�J)�JY�'��JZ�&�Hp�Hq�Ht�J��J��J��KQ�KR�r���ǁ����+������u�v�w�x�M	���FN�����A�5�K��K��K��K��K��K��K��K��K��s
����E���7�����t�>�5����d�K��d���Ӂڈ��l��d�Fw�"����I�I�I �I�I�I�I!�K��M�M�M��H��H��M���K�� ���H���r�*�t�H���D�H��H��g�h�I"�I#�H��H����ҁ��T�F�����M�M�N�M��M��K��K��J��J��-�2���v�M�M
�0�1�.�����M�M�P�ziL
�̃]��I��?��Gw$�C��n�89��H��H��M��N%�N&�4���M8�M9�R@�i���j���L�L�5���������Ib�MH�Ic�@�|`�H��`�H��H��N�N�����������Ew��7
��Q�F/��{f��;��P�H��U�H��H��Q�G��
=
���\��%�?��:9?$�C��_��k+�M��M��H��H��I^���I_������L�:�����_��T�8t	�H��H��H��H��H��M��M��ML�N+�N,�MS�:��W

�v	�+�8|O�B�K��J��J��L�L�L�H�����	���O�A�I:�I;�I9	�����M��H��I?�H��I>������?	�v	�"�A��N�?�H��MD�MF�<���
�B�=�>�5��b���IS�J��J��II�IL�IK�IJ�IT�IV�IU�IW�I�I�I���W���W�H��I�I�H��H��I&��G�I1�I2�M.�I,���I0�M#�H��H��HڅK�I-���I.�M/�I'�����M0�M1�M2�M3�I(��?�M&�M'�M,�M-�M+�M(���M*�C�ā��^��D�K�K�����K&������
���gX���o�n		��5Il_K��C\�؂ 1�u=m
�Jk�Jl�M��M��L+�L,�I��I��I{�I|�����K�K�L-�%�L5� �L4�L6��L8�!�L9�L0�+�L.�L2�IoV�FH�FI�I��I��IpV�|�M��HO�HP�I��E�M��M��E��!N��}I����J��J��Is�He�n�I��HN�O�� � �I�P���I��HT�$�HU�#�H9��qX��x��
�N��N��I��E��-�ۅa�I��lY��`*.���Jc�Jd�Jg�Ji�Jj�L:�L<�L=�LB�L;�LA�L>�LC�Jm�Jn�Jq�Jr�Jo�Jp�����΁�w.�Jz�Ju�Jv�Jf�J{�J|�J��J��I��E����A�O��q���&�TH��_��6jlw( ��KcT�Ss	�J�J�I��I��L��L��L�P�L�P�L��H��H��I��I��I��I��I��I��J�J�J�H��%�H��J�J	�H����Kj�Kk�L��L��K��K��K��K��K��K��I��^�J�K^�H����L��L��L��L��L��3�L��5��	���I��L��KY�KZ�L��L��Lp�L��L��L��I�v�����J�e�Lt�H
��4��	��
�Nf�Ne
�Nd
�Lw��	�N`�Na�I������Nh�Ni�Nj�K��K��H��G�ၫ��H��F�H��H��L�(�L��L��Mf�Mg�F�J���ɈᏖ�A?��z��!'��s*��Fdn�LN�LO�Me�K΁��L����v���ǂ*!'��s,���Kց��Kʁ��I��Li�Lj�K����K�m�n�,A!�N���`��8�S4��c��1jhn(.����R
���I��I��Ka�Kb�LT�LU�I��?�����J�J�L��H��H��L��L��L��L����F��?�>�W��k�L��Kd�f�Ke�f�J�J�J�L��I��I��H̄���K��H����"�L\� �L]� �N�H����L��L��H�����H��H����K��E������D�FP�FU���|�����R:�FV���K	�K
�K�K�FS���B�FQ�������L������ʂ�����z_�΁��N:�N;�N5�N@�NA�N6���N�NE���J��J��J��x����H^�H_�I�؂��y����9�|����N9�HZ�H\�L��L��M���������u,2�����H]�Ij�NI�NJ�Iꁼ��S�e�N7�N8�NK�J��2�NO�NP�NL�NM�NR�Hb�H`�Ha���[�.�����N��N��]�<�N����N��N��N��_�`�^������V��.�v��	������	�N��N��N��N��N����������N��N��������N��Iȅ��N�������	�	X3�y��7
"E��2$
i"B��M�X;��
���I����/q�q��X� ��
@����zP8�f��	G�� C'���M��Ry���������Rz�����R�R��4�m�o�p�������������6�5���7�8��E-�d�i:���3��'�.�����R��!�R�� �/�k����ݖ|���ؖ|�R����������.<�c�i;��3���S�m�n�o�p�q�r�Z��M���͋��]�^�`�a�c�b�d�d�e�f�\�_���c�h�i�`�e�f�Fk�N��N��[��:�J����\�B�D�C�>�@�?�j�����K�k�����K�Z�^��9�<��?���F�G���I�]�������<���=�����?�����4�n	���������������
�e��f���������q���Fw�o�����������Fz�K<�&�ԉZ���5���H6�H7�H8�N�O�Fn�Fo�F}�Fp�Fq�;	:�����%�R��R��R��R��R��R������4���R�S���R��R��M6�����������������������������������������������F��G��G������U�V�������t���l�����������	�u���R\�R]�����q$%#�?����%���Z��q����� ��"P=#�*8���F��F��l�\���4���0��F}���������H���	>��� ��!7+���Ӆ����B��B��B��B����������ى7�����R��R��������������������R����������+����ҁ����F��F������������x�H���Gl��
��G��G��G��G��y�K���'�C��E��C��C������������������������������������H��
�����
����%��&��%�R`�R�����"����J�����>�������������������������������Rg���R������F��F���R�������������������������������l��������������������f���FZ�E⁰�i���R��R��R��� �!��"�#����R��������R��S�S��
��'b"	�Z���E
��F

/
)��I14Yg^�.
��K
	��Z�!:��"��'h�܁�
	J��d_!������)������0�z�������;���������������������E��E��S-�������2�������3�x���1�����!��<����;��:��m
�W�X�T�Z���S���S=��ύ��SG�F����S>�Ԙk�‚�<��������;~���_���`�a�҂����ӂ�����@��@�O8���=�����O;�O<���O>�C�C �O?�b�C�C�c��#���^�(�I��.���S�W�9�ɂ��������m�A�B������B{�؉w��'���s�2����>����������S2�S3�OL�OM�S1�����ԑ�����������������������(�J���7�݁Ё�������E��F��N����ׂ7-�ɂ��˂K�߂ف�?���h���F��F��@�A��J�K�M�N�F��k�����E��E��F��P�Q�B�C�<�=������>����E��E��n�����\���S�T�U�o���
�A���5�����b������F��F��F��F��F��F��q� �2�����<���F���%���$�m�S �n�)�G��G��G��G��G��S�؂c��II�������H������4���>�F��F��F��E�F�F��^�E��~�V�p�.�����=���F�G����V����[�\�ㇵ�7�Z���e�����������s�[�t�k���SL�SM�F��F��F�����C�W�˅����;����B�$�����*�����+�?���6�������l�m�h�����F��f�u�w�F��F��F��������_��I;��M5��2����W��
U�.B����/��E�7�(���@�Sc�Sd�So�Sp�Sh�Sn�Si�Sj�B~�B�ۈن��k�F��F��F���������n�����P�����&�H��Gs�Gt��"���b��S:(������1���	�����(~�������(����@�Qo�Qp�Qq�F���;�F��F����f���틨��*�“N�����a*���Ss�Su�Rj�Rk�F��F����}�~�E����������ǂd���@N�����8�6��������'���������������2���A�B�����s�t�����Ƌ1���삤�ċ1���ʂe�����8�I�0�����W���X�����������c�����Y��6/�S{�����ʖ�0�Ƃd���	���'�6���!����2�ޛG��
��3���F�����!	�W���:
��E	0

 V(B'	BH%^� 
��	=��
P�W��
��Y

�v
/
��5l������
���	'$��������SR�SS�o�ň����6�7�:�p�ɓ��5����	��	��i��k�����j��������������������ŇD+c����hi�v���O_�O`���������E��E��E��E����
���u�����B���B����������� ���!���0O���SWN��L��!��
�Y�A��5
�v-o�����������������f�����1�@���=�����R���N����������(�A�B��B��Od�f�Oe�d���e������t�Ob��F�.����ɑ���>�?�����������������G�����ʇ�=����-�O�����H����S�8�C2�C3
�C6
�CC�C4�C:�C=�C<�C8�CD�CE�S~�S��)������CH�����C9�S��S��S���-�O�������p�CN�CR�CP�CK�CL�B��B��CT�CU�CS�C7�CI�CJ�G�/�G��G����Y�������[�\�Z�l�b�A�����d�D�e�?�c�:�s�t�q�r�n�o�p�v����G��G��G������f�i�I�h�g�J�G��G��G�.�G����Rt�G��G��͇��|�}�z�{�·��x�R��
���1	����������
FN�j�"o��
�R��R���!�#�%�"�R������R��R��R��R��R����t�u�����T�s���R��R��V�W�������R��R��R���U�6	�R����q�������R��R������������������R��l�����A���:�������W����R��R��N��N��m���������@���������N��N����+���{�|�}����	�����z�x�y�S����S�S�N��N��S�S�S�S��
���1��������
EL�j�"]�)�*���������8�遺��/�����R��
���N��N���������������j8�n�S��S��S��S��S��S��S������S��S��S��S��S��S��S��S��S�
���������A�S��S��S��š��QN�QO�QP���Ƙ��QR�������H9�S��S��S��S��S�-�S�,�S��S��S��S��S��S��S��S��S��S��S��S��S��S��S��������j7�n2�S��T�T�T�T�S��S��S��T�����Dm�T�T����l�T�T	�T�T�H,�H-�����w�H1�����,�i�������
���	���遪�F���H��䁳���Š���-�������Ă	����m��n��e��f��g��a��c
��d
��b��0��3��5��1��2��R���S��j��;��<��v��Z��\��V��W��8�"�"����9��:��<��k���z��]����`��b��e��d��C��a��͙w��c��7�����������s����h��U�$����P��y����;��t����w����Q�"�ˈ��>��?��A�݁��.���������_��Ιx��|��}��l��/���J��K��L��B��~���������c�D�=������	�������������8�������8������p������������������U�"�~����������������������������� �������&������������<��=��!��"�ݎ��%��&�����(����������������������ݏ����*	��0��3��2��1�ݐ��4��5��A��8����:��9������ݑ�ݒ�ݓ�� ����,��-��F��G��I��B�ݍ��ЂT��@��	����:c�D�=
/����
����ш<���
�����������������������
���ٮn��
��g��8�6�*�������������������������:�����^��>��@��<���'����=�ٰ�.�ٳ��f��g��h��i����j��F��G��E�����
�����������������������
�����������

�������������������ٱl���nf
��4�9�(��ӈN�����ֈB��"����ٯ���p�_���������l�������^�����������m�u��A��B���M��;����������������������������������������������������������
������	��
��������������������]�ۂ�������&�������������ٴP?�
.����D��0����(
�$	�����H��J��I��K������Q������L��f��g������j	��s��t��k��m��o�����쀇o�����,�٥����Њ��$����������Z��\�ݗ�ݘ�ݙ��^����م�X�ك�ل�ن�ه��./��2��3�ٹ�����0�����*2��
���G�K���
��N��_�ݜ�ݝ�ݞ�ݡ�ݠ�ݟ�ݦ�ݧ�ݢ�ݣ����D��E��8��K��L�������	��C��<��=��>��9��:��T��U�ٵ??�-�T+�����|)��������$
���A�����%���Z��[��_��`��b��W��c��\��]����j��C��F��D��E���†e��3����ֆe�/��n��������i�����!����.��)��q��r��3��*�J��4�@��A��B��u��y��v��x��(��'��2��?��@��+��,��z��������������L]	|�ʃ����6���	(�)#��i��`��a��v�b��Z��\��^��w���������ٶ���ٷ��}��ف����~����W*��X��Y�ٽ�Ќ��پ��_��`��c��d��b		��g	��f	��m	��l	��k	��h	��i	��^��w��x��K@z�R���	����b�����Yd����y��z��Z��V���r��s������������J���L���d��M��N��g��f��e��b��c��P� ��K���R��S��T��$�>�p��������h��i��U���	:U
��hK
�>��X�>	5)u""��$��Z

:Z��c�w@����联��������r��������������ׄ���o��������Z����g	����������\��^��_��`��]��w�̄D����x��z��t��
��u��v��{������d��f�������[����p����s��v��t��r��q��\�kH�>����������]�jH�>�ڰ������g��=����ف��Z�C�������������������O�n�>��������������+��(��*���������
����������~�Y�x��	�����d��'��%������-��	������
��E��A��C��D��F��B��G��]�
?�Yh��
��L
��;��^��_��x�N��N��O���������� ����`���
��a������������������y�N��}���䀃�������~���䁃�������������������%������S�?��,�Yw�������A�ܡ���ܤ�ܥ��X��Y��Z��T�I��
(�d������y������|�������������������z��{�������:�1,�8M��	�u��
��D��t��q��r��s��u��v��������}�K�����������������Ł������������;��s�O��J��<�Ä���=����>��?��kS����u������o��{��|�䨄�$��6�����y��z��l��m��n�����R���z2�`	i����P�s��%��%�������������������������w��'����������������„���n�>��������������������C������������o���(�b�ٷ�ڎ�S��������������������������������������������������������������	���������
����V��U��T��������Y�Z�.�V�����T�����������3��Z�X�.�S��Z����U����7��W��V����X����8��9������������������������ٵ������������
�����������᫄4	�j���������N��O��Ą=��Ӂ�
�~;��p�4���H�Z4���J�Yh�x%5������������������������	�G���������
�K����
�E����������K��`��a������	������Յ';�_��f��g����������q7��o������We��6��e�����f�`��i�ڋ�ȊoY�Ԇ<�����…����U��������V��n����������������� ��́������������������������������	��T��s��������ˁ���������Ђ����ȁ���������k��l��8�A����|�z�����&�����������������Ο��#��$����l�ڀ�����n��F�ځ�����C��߁���������������P��9�^����v
�q��i_	��,������2�_��Ձ�����������.������r��یV�!$^������~��������������v��������x��w������������:�/��J6���օ���;��i��&$����{��|��}��v��3����4����U�$��+����������������k�瀁������烁���h��[���2������������5�5	D��������������	����l��o��n��m��p��q���������������������5�������突낫���	6U
	�񂵁�	"!	���=
	
5(s"!T	��W;K��[�s=
���������с��/�ڡ�ڟ�ڠ�������ڢ�ڣ�ڧ��-�������ڥ�ڪ��@�ګ���ڐ�ڑ��e������R��S��f����g����ړ������F��=��>��A����3���ڔ�����ږ������Z��h5����2R���`��j��k�ژ�����ڙ����n���H�=�گ�ڰ����������������-�����ښ���w��.��/��%��(��'��&��)��*�ڭ���ڮ����m�ǂ,X��n�����<u0��
�h."�9��A��4vWT
(��&&zfZ����:.�{T������|�
������z��{��t��u�ܨ�ܫ�ܱ�ܩ����������k��l��m������}��#��$��"����~��8��9����������������-�����ܹ������ܺ�ܻ�ܾ�����呂���?�咂���>�ܴ�߁�����a���������������ڻ���Xd�=�߅��c\���ȁ�����>��?����@��C���ܵ�[d�=�߅	
��Wu�1j�݊��ܷ�ねX��������o�F����B��C��p�F�ڴ��؄��:�����V��W��\�ڷ���#�X���ڸ���ڹ���ڵ�����Y����ڳ��ł\������������������寄����u/	��u�;�2�� =	��2{QM#��#(	
d	���J����������6�����心t	�ܳ��!k`��u������!���ܬ�Ń9����``	+���Ɂ�	�����7�I��8��9����r��s������������������F��G�������������������������F0�oZ����6���������������ڽ��[��\�ھ�=�ڈ�i���
�����
���������������������������������������ڇ�i$�ڂ��F�����P��&���	���3������?��@����B��C��`��a��H��I��Q��R��E��F��]��\��^��]��^��V�
��������b����E���W���E������Y����]��>��b��c��^��`��a��Q��&�����2��P��G����`��������������d������f������F�Η���������������������
��������2�������������
����������������������������	���$���$�����ចf���������������������������������4����	��
�����ڿ����$	F�l��
�zF�b�ͷ��G��N��O��P��H��I�����ޚ����۔�ە�ۗ�ۘ����&������!�"��W��X�#�$�����Z��]��\��[����^��_������(_������������������+ ��{�۞�۟���
�(����'������
�'����*���������������������$	
,
������������������
����������������	��S��������
�����x�h#��������T��U�����偵�@�r�ʄ͇t�����e��}���ހ��~�ބ�ޅ�ކ�������
F�q���ލ�ގ�ތ
�ދ
�dž��ފ�ޑ�އ
�ވ
��������۝�H�!�������������ߌ�����ޝ����F��+����E�l
��
�u2�W����ޜ����������������Y�Nj7�
�����ۢ�ۣ�'�(���τL�|�Ƅ��r�����������������������������܎��ޟ�ޠ�ޞ����ۥ�ۦ��`��a���������������������&�B�ۧ�ۨ����=��D����K��AJ�̊�s2��
������	���������Q�R�����۪���������T���T����"��#���� ����k��l��������$���i�0��r��������'��y�L�����(���������>���>��j*�:��l�d��M��O��N�����K��L��-�S�T��%�����-
	��K$����Y��i�R������&�b���j?
��Y�����i>��d�����Z��o��x��p��q��r��s��t��u��v��w��}��y��z��{���Y��|��m�f��Ń�.O!)�H�͂�[�\��j�W�X���Y����S��T��U�Z����X��S����T��Ą���ń�����-F(�H��}����������
��
��*����+��������)������M����V�����+��W�������t�b�g�h�i�j�k�l�c�d�e�f�m�n����t����������M����,��&��1�܂���*�ߊ*��X��Y���޿�M!:�r��A%����������������g�������������������G��[��^��\��]��L��������O����P������9������K���C���C���J��,��@�䁛'����A	��u2�����������	������
����U�[����F�Z����.�ީ�ު���J�����}���;�C2�������#��V�CT�F��g����N�O�޻�޼����������������
:�Ղ
����cK�u
���z�΋��"������������=��������;��	��:��[��\��6����������������7�����޳�޴��퉑�����������	��������������)���m
��	������!����������#��$��2����������8	O��	��
�����)��0��������a��b������������������������	�"����]Y����
������������������=������D
��A��?�����F���R����N��O��P��Q��R��T��S�����.���F����9�������>�������4��;��:���q�t�u�v�r�������W#�|������z������{������V!�~����u����2�τ��I��z�w�y�z�{�x��������<$��3����z��;��DŽ��Ի�����-��.��/������������
����s�J��"��#�������������������٧R�y3�`����܁���F��Y��C]�����&"�>������� ��A��D��E��B������
����������"��5����������������������������2��2�����/��2���%��8��7��������������ى]�������������8������;����=��>��<��:������9��������_����`��a��	��
�������������������������������&��d����e����#�����i��j��$��%��D�f������C�f������F��G�����l���m���m���!J����y��~�����������뀅X+���+��P��O�����۱�k����� ����k/s��l��n��m��o��M��N�۷�۸�독N���������������M�c��P��Q��R��O��N�^�	����������������������������������������������ށ�
�����u	�ў��+���������۰���B���u	�뎅�������������������������������������w�K�����z��x��y�۲�W�����8���;2U
������c��B�_�F��I��J��H��C��D�۵�P��{)N��J����b	�������Q��?��A��B������I��J��L�����������۶�P�J(N�a���D��F��G��H�����\�b�����b������C�����������������������۹�E$-�d�FD���������롇"���������렇��,��.��-������9-�*�ƂA����B����˂B�������ۺ�Y$+�����@D��ƃ���7-�^Q��9����Q���L����������Ύ��V��t��ωa�{�(�������/����0�� ��������(����Sq�6�A	��W��������������������������������6�>	��W��l��k��m��s��w��t��v��x��z����`�x�'���� ��"��#��$��!������2����������
�~���
�:�]��~z�ԁ�������������'����������������������,��.��%��;��<�� ��N��=��`����>��6��7��@��'��(���'	
����+��C��$��D��E��:��M��N��O��P��Q��S��T�������믆�����0�����}�F�~��g��Z��u]K����������	��
�����ۉ�I�N�/����������������}��~��������
MpK��������H�2�[��I�1��K��{�Z�����������������������������������������������������������������������|������������������������� ��n��q��r����v������������u��v��F��G��R����������� ��!��������W�����%��'��(��&��\��]��^�뿄��������������������a���`��������������
�҄C��/��0�������٨^�o2�\�w����A���PY��'��%|?il6��!�&
����6��_��@��A��օ~��������`��X����ϛ���m��������v��p��-��.����		��l�����s��ЄȂ��ѥ��D��E��F��������������񛁙����C��)����^oL ����������_����*�5\��������J��7�����~;����<,��z�5	��������񒁡���σd��

����i,F
� ������������	����������
���������q�S���p�R��4�ׄR�ڂ���5�)���������U����W�'��������~�������������+��	�
��F��
�������������������	���9��@��:��;��
�񜁜���k������?�i$
*?iW,4G.��������}�!��|�"���}�#��^��}�#��&�ԉ_���R���Q����_����������������w��x���P��m��n��p��!��Z����\������������]����[���1[��#a35�(��`��a��b��c�뺆��:��_]���Ӂ�16�+�����l��i����g��d
��e
�빆~��m��n��o��"��#��~����<��	��=�����
���
���	��������T��S���q���p������{��z��|��}��	��
��h��
�; 5��T
,49(��!��m�������l���r�������p�����Pdm�$�������#�����o����J��K��}�Ž����������ۀ����~��������3��4���g���,��-��+��)��G���J��L���v�����'��)��E����
����l
�X����������������a�?�Â�������������/��0��������3u�W�����������������������������������٬v�����ꂷ����<��=��U��V��$��%��@��A��B��C��?������*�+�,�1�.�-�٭v����2��������ꅧ��'���2��(�WT.�
��-�um���݁���������]�c�TO!?	��fArg���޺��#��l�������M��X���u��}��P��̊I[��Q����V�o��M���N�ӈG��O���T������������������������m��n��o��������j��j��g��x��r��s��t��v��w����
����V����b��c��l������t���{M�Q���2��te����
���������������������u�����%��5��u���yM�R�6��-�������u������*��+������������_��.��S�t��/����(�t�����������������������Q�t����r��=�3��1	�8��8��4��<��3��2��5��6��>����?��Ɣ�G��H����I��J��8����@���`�X�ԇ؊NG��p��A����F��ɔ�G����e����������d�����������$������������������������{��S-�t��w�T�������!A��l�������������߄��8G������������.V5���br�パyl�-�������'7��n����
������g
��h
�߇�߄��x�߅�^�߈�߉�ߌ������ߍ�T�ߎ�ߏ�������i��}�m�����~���������������6�X����m���|����
�������&�q�������������߂�V����߁��g����y-���!�@��i��������`�����{��o���FeL�F�u����c��dc��f������ ��"�����'�<��'��+��*��(��)�;�������͘���Θ��� ��!��"��%��T�:D��,��-�������و'�_I��	1L7	��
>�����y�N�=��&���������B���t�;�ߖ��,��D��.��E��<���D��=���C��\����b��]��^�€��+��X�…��,��X���f��g��d��e��K��������G��H��B�����D����F����s��9��C���T��I��K�½�¾��L��J��w����O��P��+��h�Ǝ,�'�‡�’��m�T��������������������n�”�•�“�˜�š�™��������������������������������������0��1�›��i�Á����������������j����,�S%�����;�8����������������|�ߴ���ߵ���§�¨�ª�«�¬�­�®�©��G�U��t�M�NJ��8��;�x�NJ��������.� b����
������/����0����S��P����2��,��4������5����3��K
��L
���ҁ��=��7���f�;�����8��;���9��;���:<�]���q��������o�k������������������������������������������p�°��������q�i���6��������������r�i���¯�ٔ
�3���[��-�Y�؇x���G�ɇh��/�#��?��@��=���²�¸�¹�µ�³�������܃���܄���������ي
���^�D��
�s��
���f��/�$��x�q�������t
��w
��x��Y	��Z����n�������٘���������������������������������0TM���)�������ݫ�����������݆'�ݳ��Q�ݴ�ݲ�ݱ�ݰ��H���ݷ�ݭ
�ݮ
���݊�1�����]��1TJ�у��J��(������b����������	��
�ꥃ��N��������݅;��������������݉<����������������ى&�
V	2
��9%(*
	��
3�����r�K�<
��$8�!�_��!��hB��>P��
������
���‰���������Š�����ܖ��R��S������ܗ�ܚ����
����������w������{�N���^������َ���{�C�v��6���F�������������\�����ُ�������������œ����"��!�� ��'��(��)��*�ٖ�1u>�(/�-�H�%����}��3��4��g�Ÿ��ž��,��/��+�ٚ���	�%��9�ߧ����5��1��2��0��3��4�������ٗ������f��g��i�¤��T��O� �¡��U��N�ܓ���¥��5��6��7��8�ܔ���ܛ�#������L��M�ܜ�"�ً� �����Œ��Ž��ٌ�ٍ����������‘�߫�߭�߮�߰�߲�߱�ّ���3�������������������������������������������������ܑ���������������������������������ƕ������� ��������#������������	��������ߚ���+H�?��������������"��!������������(����)����*����-�����������
���"���͆��������������ߡ�������
��!����v�����y���x��������3��3��3��2��Q�������ߝ���*P�?�s��U���ߛ���D�������������������U������������&���ҏ��]��X��`��_��a��b��Z��[��\��c��d��Y���e�����f0��h��p��i	��j��k��l��m��n��o��y��g��x��z��u��v������r��s�����Ü�Û�Ý�Þ�ß�à���á�Ø�Ù�Ú��}�Ï�Ð�Ñ�Ó�Ô���À�Á�Â�Ã�Ä�Å�Æ�Ç�È�É�Ê�Ì�Í�Î��~��������+i�قJ�t�b2T��y8�����(Z
€E�?�2��~�U���������!;��������
���������������s�t�V�W�����U/����!I�!F�!G�Y�Z��J���!=�!'�!'�!@�!C�@�A� �� ��
�D�䂛�A�(��0���
�j�
�j�]�+�,�/�^�D�E�W���h�i�
�
�v�"q�"r
�X������5��$�
�
�X��>�Ã1��"����S�f�g�O�P�F�U5���p�r�s�q�k�n�l�m���G�~���������������V���B�6�T������N�W���u�1�����"��M	� �!���#�$�V�W�
�D
�ۂ��>�"����
�����y�z��&�%�'�
$���M������M�
�
�
�
�
�
�
+�
-�
/�
0�
,�
)���
�
�
���M�����&�
!
���
4�
"
�
2�
�
#�
%�
$�
�
�
�
�����1�+�"�]�^�\�"�c�d�
��́��
�������X����I�e�����"����E���"�"����E�����������������w���������熰���@���x���d���&�%�h�i���
���
������ĄZ�M�
�����������
��
��
�������f������
�������	�"����n�"�*�+���l�
�F�́�����5�[����D�a�������
���������������	������*�������
����ك�����X�J�Q�
����R�T�
����ك�
�o�P�
����W���Ǎ������������������:;�������.��"�"�������������(<�)<�*;�,�!x�!y�8�o�-�����:�9��C	w"r�v��tB�r'��)
��?�a! �}��30

���
D�
E��������
C�
F�
G����
��
������n�j�������΁����
��
��
��
��o�i�����́��5�
R����m�'�(�"��"��"��\���
��
��
��
��
X���k���2�3��k�
S���k����j�!��
��
��
T�����o�}�%��"��J������\��k��^�_�0�K���
Nm�-�gj�_�I�7��-
!��{�����/����$�r�s�
Oj�-�ij�_�G������-�
���"��m�#����"��"��
\�
[�І��������������&�;�������;�<�a�}�'������C	by�z��iB�q'�U+	{>�}!=
�s��30�x�y�z�|�}�{����$��$�������
���������
L�
`r�������������Ԃၱ��3�����"��"��"��"��"��u�w�v�
b�
a�s�t�
H��]�6���σ$$
����:��;���L�
d�
e�
f�������������������
�����������-�a�
��
��v����	����+��$��1�����
g�
h��������������
Q���򇠃U������������͉��������
�{}���\cu���?��.���
�Z
	�����;�	��	�����/�����
����L���"�����*������������������������~�����و�>��C��F����������������A����������.��.��-�����������
����������1�������B�C����!�������v���������������������#���������������������������r�z����������#�������������m���������������Y����*��)�E�!�C�(����!������������N�����҄_�O�����������P���������ă��}�����{�|���������w�x���f�B+������r�s�����
���C�������@���[����AL�;�$�%� �#�!�"�p�q��G��\�I����@L�E�(�)�*��"����� �!�B��)���z���C[F"���j����@��W���GJ�Ã��O[E���i*���E�������������˃j+��
�����������h���m�i���V�7�=�?�A�>�J�K�����F�G�I�M�N�B�C�8��l�����F�G�E�߄��������D�����������
�=>}	��	�\���;s.����P

'���T8�7����������������6���u�R�@�B�C�A�S�C�3�7�>�:�����?�9�8�;�<���Y�X~�����3�[6�8�9���
���Ӄ�������������bN�5&�6&�\�]�����
���w'���g���B`x$��B�!
k����	�;�������������3��	�+�,�����	o�'�c�i�l����z�'�ڃ*���)�d�g���������f���e��1��Q	���,�8�?.�
e�U�4����`�r�1��)�*�����(�F������/�)�0�`�a�G��Y�.�*�T��
����_h��1�����$7�d�e�f����������I���������w�x�h�i������(�O��l
�g�(��X0��Y+�Z�\��b�]�džh���$���#F���"Ce���#E�#4<�#>�#6	�#8�#:�#=���h���3���#A�#B�#@��
��	���������#1�Ćo���������#��������
��p�z���
����
������
��������������#��#����������#��#������������������
����
��������_�`����g	�h�q�i�n	�l�j	�s�a�b�e�f�~��|�}��!�������#��#��|�ф���!�y����$�Їb������$����������������d�������} �i�ۃ�f���y���������Æ��������=�>�����#m�����������#j�#r�#s�z�#n�#o�{��]�����S�
�������������������/��/��/��.��/�q�r�~@�X�Մ����(?J����}�#|�#}������!�#%�#&���t��� ��-�5�6���"��"�����D�(>6����	���(�#
�#�4���)�+�1����/��
�#�#�,
���-
�������������#�#�#�#�����2�3�4�#�#�s�t���B�
���������C�
�Ȉэ��c��b����_����`��`�#��#��#������������ ������������#������#��#��
������#�����Q�����
����
����
����
����
����
����
��
����*�*�#P<�#Q�����\��������E�#��#��#��#��#��#��#��#����`���^�#��
�1��"�97���k
���J	�"��X	&Z�^��Y+�u�y�z�v�w�������L���������������������������������������� ��<���e�6�7�����������������d�
��E_�����
��Fa������������������l�m�����n���S�v��8���#Z�#V�#W�#[�#Y�#^�#_����	�����
��
������
����
����
��
����
����
����
����#e�
��
��
��o�p�
����(�"�'�����
��#K�#L�������#`�#a�
����
��؍�#c�#d�
��
��
��'�,�(�$�%�&���������j���
���G���*���ǁ��$�y�
<^}����� � ��#� � ��#� � � 	� 
����� � ���$��������	
$���9�`�q���ǔ!���#������ˋ-4�̋a���������������������ĉ�����������&��&�ה�#���%�
����#����#���*��#��#���
#���9�\�q�������#����&!�������%��0������0����� &�������������h�
�����������
����h�ނ� -� "������������� '� (�����ˈ:���0��(�)�����+����� �̈:�͈T�����������
���G�S�������������M|��5�������Ԉ(�Ո(�������������������N�������U���#��#��I�A�;����T���N�.�����������������I��C�7�H��N
���6�^��������
�����������������
�w�'���(�����h��L�0��$�$������
����,�-�5�;�6�7�,��)��*�+��	��
��I�J�"+�ӄ��O�N�P�Y�Z�4�5�#+�Մ��[�\�R�B���$�����	�]��|��|�_��W�8�3���G�������}��T�;�����f���$
�$�$�$
�灂�遂�ꁂ�聂������������m�n����
���������N�$���o���#��#��#��������>�#��#��J��CK��/�M	��$�9�]�~�$�$������$����������������������r�A4���������u���H��5���L���������!�e�큥�FJ�GI�� �w�|�}�x���B�����������q�;������#��#��#������u�;�!�����r�9������s�[� .����������-�‚4���K�:$
�����>�?��S��S�"V�����������V�W�������_�`�Z�[�X�a�b�������
�8�Q+�����������������
�c�d�O���0���;�A;��I��P���3���'�!�� ��F��Q�R���e�g�:�����9�L��&�%���1���l��$�|�,�-�����������������M�#�8���Z�[��f�g�h�i�P�LJ4�F)���������߁����������������������������������������\�]�����������������8�H�7�)�D���*�m���=�񁫁�����Cp%�����kKN'�4��!��
�"\�"]�ڏi� D� F���k� H������E0�F0�K�_� M� N� P�G���H�[�\� Q� R� S�"[� =�� >������������s��"������
��
��	�}����~���/���� �y�ꁢ�끢�n� 2� 3� 1� 5� 6� 8� 9�v�w�������o�0�����
����M����㊍�������������������?^����)���������^�1�7��2�3�?�A���������
)�A���n��d��� A� B��p�t�8�*x�9�*x�:����

���p�tCp �؁��5�KI'_������
�����@� :� ;�>���A�B����-�H�p�����p�������=�Q�Ԉ��>�����W�Y�X� X� W�d�e�:������R#8�Ɂ��Ԅ��y�x�|�m�h���j�i� J���p�f�g�q�����y�o�|	8���m�L�M�Q�N�P�O�T�Ub�V�W�w���q������� ?� @���g���������������g�����g�3��������$M�������C�{��(!
# ���c�m��B��g�
��`��=��F��
c4!C
��*3�.�!�� e��� f��� j�����!��!��!�� g� h�!����$j�$k�$l�$i�$n�$o�$p�$e
�$f��� \�M�!��!��!����S�T�!��!��!��"E�!��!�� �� o�R� m� n� p�R� q�R� r�!��!��$��!�� �� �� �� �� s�!�<�!�� u�L� v��������������� ]�!��!��!��!��!����$��$����$��!��!��!��!��A���
������
�$��$�!����!��$��$����.��}����� {�������.�܈}���ׂC�0���'�
�J�!�S�!�R�����Y+�����Y+� � ��!��!��!��!��1���2���˂`�n��9������� ��(�m���o�I���*��
>���R���B�
?���� ��!�U�!�U� ��A�A�Z�@�����������!��!�� �� ��[�]�^�!�U�!�T�\���!�V�D�E����� ���^� �� �� �� �� �� �� �� �
� �
� �� �� �� �� ��!�� `l� c� a� �� �� �� ���IF���2B�:���18��d��-�+�&��j�
�����l���i
�B��;!'�Ӂ���G�����!������������ ^� �_
�����������������!	� ���� �� �� �� �^��� ����!�!
�!����ݎ�������������������.���������� �g����������	�����F���G�!����������������������������>�I���������!������������������H� d3�����
��	���l������<G���
�!��!���������r�х������
������������`�c�a�d�e�!��!��!��!��"�"��	� ��[� ��Z�!����� �� �� ��3�t���$��
j��7;��=��`$
	/��
-��.!��B
���@R���P/"h��OG�)U��*2��S
	�Z�����������������b�!
�D�V�Y�W�F�G�E����H���
�H�^�<�@�A�=�����ڌ��a'�����������������0���)�2���(�5�$�=���>�1���)�����t�����!9�����!8�����G2�L4���J1�H4�����s�h���i5�j5�k4�m�
p�F����N�������������!'�����!(� �� �� �� �� �� �� ��c�d�����������e*���<���
q�J���f�c�E�����yG�d�
x�9�҂s�8�k��9�f�g�����N�!1�!2�����O�tE������ȂS��8�����!O�!P���vD�����������Ɂ������������������
y�ʂP�ԁ˅U�q�2�e��8�g���������j���!Q������;����
���'�ی��;�"e�"f����	�6�7����	�!���������������
k�
s�����o;��Q��F�Ȃ��%w��WG�Á��؃]�f�U�!v�!w���������(���Q���
������������?�؄��+v��� ���i�!�"�����'�ی��x���&�%�
z��/����(�����������!g�!h�"N�"h�!V�!W�����v�E�v�!Y�!Z���{�������z�![�!\���=�@�>�,��-�.�/�3�4�5�0�1�2�������7���
{�8�9�
|�1;�2;�:�;�<�A�B�C�1�!��� �G�H�I�J�K�L�E�F�4�5�P�2�:�~���Q��� ��N�O� ��&�R�F��V�'�(�)�*�G�m�+�&�&�
m��7:�5��U$
7��
-Wg.��5
����c@4
��,!c��KC�p��)0��
G	�"��n�������o�����"��"��=�>�����g���g�;�e���L�e���
��!d�!e��������
�����'K����������������ǂ����������������q���!�!�!�!�!�3�
n�� � ��8������ �&
PM�x�M�@�����n��8�o�����p������� ��
o���������������U�����y�5B�W�[�Z�X�����}S���R�~T�����҄
�����	�����營�|H�Ą
����J�K�����P�����!a�!b�ւ������j�z����ׄ��������%����dG�
���"4�"5�"6�ǐh�"0������	J�d����O��O�����$���Ɂ�N�X3���ʂ<�\3���"8�Ȏ��$��$���.?
�Ԃk�
�a�05�������
���������������(�)�������	�������j�67P���҉�5���k�:1P�����$��$������!*�!+�����>
�Ђk�~
�_^��3�$�����H���5�����#�!���"�*�+������+�$��$��$��$��$��$��$��$��$��$��&P�&]�&Q�&R	�&V�&S�&T�&W�&X���%��%��%��%��%��%��%��%��%��%��%����$��%��%�	�%��%��%��%��%�	�%��%��%��%�	�%��%��%��%��%��%��%������$����&��&��%����&��&��&��&��&;z�&<|�&��&��&��&��&��&��&��&��&=���&>���&?���&@���%��%��%��%��%��%��%��%��&�%��&H�&K�&J�&I�&L�&M�&��%��%��%��%����&��&��%����&��&��%����%��%��%��%��%��%��%��%��&��&��&��&��%偪�%恪�&��%��&��&��&��&��&��&��&��&~�&}�%��&�%��&�&�&�&
�&�&�&	�&�&�&_E�&d�&e�&f�&g�&h�&`�&a�&i�&k�&j�&m�&q�&r�&p�&o�&n�&u�&�&�&�&�&�&�&�&�&�&�&�%��%��%��%��%��%��%��%��%��%�N�%��&�&�&�& �&!�%��%��%��%��%��%��%��%��%��%�\..*�&0�&1�% �&*�&+�&,�&#�&$�&&�&'�&(�&)�&-�&.�&��&��&��%ǁ��&��&8�&9�&��&��&��&��&5v�&6�&��&2x�&3�&B�&D�&C�&E�&G�&F�&��&��&��&��&��&����$��$��&��&��&��&��&��&��&��&��&��&��&��&��&��%���������$��$��%��%��%�%��%��%�$��$��%e�%h�%f�%i�%'�%b�%$�%%�%&�%(;�%d�%*�%j�%k�%+�%�%�%,�%-�%�%�%�%.�%/
�%0�%4�%1�%2�%5�%6�%9�%<�%=�%>�%:�%?�%��%��%��%��%��%��%��%��%��%��%�%�%�$��%B�%C�%D�$��$�H�%F�%G�%�% �%!�%"�%#�%I�%J�$��%K�%N�%M�%L�%U�%Y�%\�%]�%^�%_�%`�%Z�%V�$��$��$��$��%m�%q�%n�%o�%r�%s�%t�%a�$�	s�%
�%�%�%�%�%x�%y�$��$��%{�%|�$�@�$��$�
?�$��%�%�%�%�%�%�%�$��$��$��&��T��F�������"��Q�?�Xx�cW��dL*����B�b����@�H�� ��7�Ɇ������N�dKR���R�>2���.)��^
z�=�;������|-L������܅��_�_�������T�������B���‚���n�������\��2��\��\��\��2�������_5�_7�_6
�_-����_.����N�_8�_9�_;�_<�_=���D��B��C�I�I�����r��UN��_�иo�_�����P�
�_��E�P�
��`�ϸo�q��࡛?�e���7>�_@��
�_A��
�\܃<�������o]��	�L�����E큮�‚�����������\��3�G�z�����
�_ �������_ �_�_/�_4�_�_�_#�_&�_%�_$�_"�_!����H��I�_B����_C����T&�i���Q	���Z�\���7�c�����>��^�,���2���<���Ձӄ|�����>�G˂��Ĝ���w�N���x�N���y�N���z�N������D��D��Zy�Zz�T2�(�Y"���gK�Me�W��������������T6�T3�&�v�gF��N�����,�Z��Z��Z��Z��T4�T!'�!�=�Ć^�l��;��	�Eg
�s�����w����Z|�Td�Te�q��q��q��T_�Ta�T`�T*?�]�͍&�eI������J��f����x����FJ�FK�T'�T(�T"4
��=	���Z�l��:��	c�CL��
�~�����u����T8���D��D��T9���T:���r��r��r��T;���T&>��6��ql��a�^�Ee����c�r������Zx����To�r�����j�Ee�FM�����FP�FQ�FI�C߄��C��Zo�Zp�T,�,�*�߆T���/�c���M�]��
�������Z��Z��Z��Z��Z���|�T[���Z��T-��	��!�G�c��	�R�DB���7�Z�
�Z���W�	�Z�
�Z�
�Z�
�TF�:�D�Ϗ�#�Z��TN�TQ�TR�TO�Z����J��Z����TT�TU�TV�TG�0�B�ܱ�Z��TX�TY�Z��Z��Z��Z����P>�r����BZ��B[��Tu����Tv����T|���������T}���r��Tw�Tz��x �M�DV�T{����K��Z��Z��q��q��Tx�Ty�r�����Z��T/������DS�T0����^����_���D��D��T 	)�/���N�"����c�,�����>��]�%���$��
�.�����N��n�D��D���l�������������m�Tq‘w��Ԃ/�c�U:�����T��T����������j�D��D��T<8����X���‡��"�c��(�I�a�����t������S�Tl�n�Tm�r��*�e�N%�������@��@�����������TA�TB�Tt���#�������l��p�����w	����K�K�K
�J����J���d�N"���r��r��r��r��r��r��K�����Ti�Tj�D��D��K�T?�[�qg�W��������T@��w�IY�IZ�Nx�O��O��U

�L����"�e�t!w�#����1�<������b��t�
��Ȃ7�t��B���2?����
u�'�����ǂ���}���������ED�C(���������l�s�I�J6�J7�t%�t&�b���5�
���t�t �I����G��G��G��G��G��Jt�Ju�t"�t#�b���4�
��4�G��G��N��t�ө�t�_�9�ߖ��p�IS���a�q��q��q��q��_��_��\i�_��`)�|�"�f��I���������������_�:�|������F�������_��_��_��_��_��_��_��_�3������p�IP�^�F�`%���	�f������
�f�N��t
����E��q��q��T������T��t(�t)�`�K����`��$�U���
'�x���F�<���cy����`	�m�����!���o��v�N�E�����D��E���G��`���G�����W�Y�Z�[�X�`�?��
�O�P����������������U�
��"��C
�5�f����`�g��	��󄸅o�`�G��G��P����`���r�R�z��q�����������q��U���`�`	�`�a�t*�t+�[_������r'��	���������������������tF����p��r��͂r���/�p����������������[`���	����r'��	���tE����&�\�r�������]�r��C����r�B��U
�/����
�e�t
p	��������;�
�����b��p��ك&�r��=��>������"p��|�����m��n���끃�BL�BM�`���B��B��`���s��s�����i�������������p���[�]��9�n�����/
�H�����b���������A��p�t-�t.����t?�t@�U�'���p��KE����U����)����U
���U���`5�_�7�l�������f@������������`;���p������������`6�`8�`9����`�
�����
����n@�X��`�`�O����n@�X���������p��A��C�����
�������t���߅m���J��J��t��t��t��t��t��t��t��t��t��t��B׉�B؉�U0������J��J��Jℵ�Jㄵ�U1������G��G���8�Q^�J��J���9�Q]�J��J����H'�U �J��J��J��t�"����K���ބ��AT�J��G��G��AU�t����K�������D��D��D����J��J����[f�[g�t��t���>�t���J�t��t��t��t��t��t��t��J��J��t���$��t��t��t��t��J��J��J��U2���R�p#�/�5�Cz�J��J����U3���Q�p!�0�Gv�9�D�D���G��J��J��G��t��B��B��t��t��J��J��J��J��J��J��T�W,B�m��2��0$.
,�쁠�R	�����J�e`�<AF!	�qE��oQ/��y�h�I	p��N
	&������+SP��11.�I�J5�#PI�Q������z	W���H�Ah�����F����H�����I�Æ�V�K�F��sh��)�R��si�׿�s�s$������s%����N��N��Aa�S���A�A�s#����D-B����D,@�@��A�������K�s�s�s�F�����N}����N}�F�����T��T��T��T��T���n�@��K�s,�s
,�s+�s	(��F�����x�t���?�.�t��@��@��@��@��s��T�y󏬽��x��U�������Z*�`�t�����D��D��r��Z0�a�@�*�@�*�@�&�@�*�Z1�a�s(�s)�Z-�]���Z+�b����Z/��B�T�S=)��݁�����eZ���{��	�쉘��0��#������sB�\�]�r3��"�sC�sA�[a��.�J��D���|�UX�UY��}�T����瞸�eX�򆅅������5*���ۂ��������"*�r4�ڙ�@��@��r5�ژ�U]��O�D��D��D��U_��O�U`��O�T���.��������eS���y
���������/����������G3�T���������eW���{��������ۂ��r:������������r9���r8���sF�sG�r;�r<�T�����7��������@�ł.������@��@��_�T�P��������
$�
%�s�T��Fo�Fr�Fs�Fp�Fq��T��U�������T���J��K�U+*
�(�I`
$�쁝�N����ei�тoHu���߁����:t�_�i_�ˁ�g����S^�s�p�a3���y��܁��X���@��
��
��te��M�tf�BۃY�B��t��t��B��sp��F�����@'�N��@��U$8�{["���t��oDu�����q�;�Ϸi�*�+����S��������t|���q����E��to�t~�tp�t��q��q��U*������Ji�w��ǁ��tT�tU�sj����ކ�,��5����s�tv�tw�tx�ty�tz�t{����������tW��V��H�sk�����O]�������D��D��D��tl�ts�tt�tm�sL�s
�����
�������s	�����
�sN�ͪ�L��L��sO�ͩ�G��@��@���������������������������s.�s/��M�r�I:����q��p�@��@��.�/��P�İ��������st����������sw�sv�����su�sQ�q��sx�sR��R�v��J�����C���S�a4�T�Z>/�U��3���P.(��6k�T�����I�e]�4@? ����nQ-���Eo�_�B,
%�������#EV��1'�I�J5�o
D�G	�����sY�	��
�sY�sU�sV��
����
���sZ�����������B�E,�E-�Z��o�A�A�A�A���S�����B������U�s\�G��G��Z����U��9�e�QX�����U&�b�WU��t�w�G�F��a�������P�q���r�z��`��`��`�K8�K9���������A�D��D��A�D��K�K�K�K�D��D��D
�D	�������r��r��T�/CK�.����K�݁��[����.���e<)�@Dx�Ԃ��΃x��B4�������V�H4�s������Dz��q��s]�s`�s^�s_�AC��K��H��a��w����D%�=�����D����AF�q��s �U�q��s!��u�q���v�q��T��h^������l���E�?R���с��T��テZ�AB�s�C	���j�ta�s�t]�t\�t[��|��}�t^�t_��0�L��Uj�Um�Uk�Ul�L���b��c���x��F������x���o���p_�W����s&�s'�G��G��_���,�_��Fx�Fy�sX���q�����T��s�sb���t�w�r�CD����A�C��L��B��O��B��S�D��ȾC�B�1�s.��v�s�s�Upz6
	)�5
����$�X	6a57^�3*����/$!fIHD��	
�2�X��	�c�/)
 ����F����"��
��	�7���
����K���b
���-��n}M��	
�2
����4-	��
���0
���{��@�����U��H����>�p��O��O��p��p��n]�n^�U��H����@�p��p��p��p��p��p��p��p��p��p��pԗ��p��p��U�6� ���,�s;�DY�H��q>�q=��y��z�q:
�q;�q<�qJ�qK�V!�5��S�q9�V"�4��i�V*��E��!�+���AF�rC�x����v��v���y����z�qM�%6�vr5��w��x��X��Z��[��e��Y��]��^��W
��a�������u�J�K���i�qN�qO�U�D�>�؅(�����F����U�D�>�؅(����J������U��%�����������u��=�A\�qP�qQ�pE��r�������U���Ӊ"�U�	�L�����+�uT�uU�uV�U�Y�U��R
��*�U�Z�U��Y�U��X�uP�uQ����Uu^�T����e���H��JH�Uv���J����q?�������A�!�>��n��k��o�q@�����Dx� �>���l����Ur�Us�u�u�K��K��U�#����	oP6����x��m҂����ǁ��v��L����o��o��o��n��n��n��n��:�u9�E>����E?����v{L����?�r�q�q�K��U��v}K����v���oZ�o[���HW�s�rT��IE�rU�ٌ�_��_��o_�L����u@�V���X��E�������H	��$�V�V	��5��8��6�V�V�V����������S��V���|�V���{��*�ob����V���v�V��V���%
��&
�������������o]��i��j�������o^�rD�V��V��U�2����pZ/�����.��m΂����ā��v��L����U��U��oe���vx4��9�vy3��u�v��V����{����oh���O���oKH���8�oYH���8�o��o��V���c�����o
�rW��I�rX��I�n��n������mE�mF�mH�mJ�mI�I~�I��rE��=�I�U�F�����U�F�H�H�rY��
�Af���������N+�K��n����n��n��U�t���~��2�=+��	�ل�B.7;
�r�ZA�,�c���!�z�����j���܁�#��
���ox�oy���oz�o{�m��n�K���䆼�o�������������������U�L��C��*���U��U��U��U��U��K��U�K���&���v�v�U�����U��U��U��U��U�	��U��U��U��u��u��U��U��oP���v
�����Z�3�pW�pZ�pX�m!�m"�U��v�����Y�������VV�"��03��!��,:7!��'�f�����L��b���c�V,V�"���	hV���������������p;���������K��K���{�3������|�3�O��V>�VA�V?�VC�VD�VF�VG�p>�ۆ�p?�ۅ�U��U��U��U��U��U���z��1�)'��	��=��*5;�r�Z@�+�c����z���&���A�Ӊj���܂��
��q��q�����m����MS�m����MS��<����
�A�p��͆����n��o��o������������U�Z������{/��%���#.*)
���ӏ�f�����u�O[	�u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u�����������������u��u �u!�UĠ�]�u��UàxS*8������q݄�b���u��u��f�p^�p_�p]�pL�pP�pN�p�p�u�]����p �y\�p"�oR�oS�o:���&���R�o<�o=�o;����o@�oA����s2�������q^��S���-�v�S���v�R���
��K��K��K��K��n��T�Vr��	
������o=�
�pI��x���9����R�����mR�m�a���o��mO�mP�m3�u�w�o��`���o��_���mU����mX�mV�mT�mS�a�\�����o��o����� �����������!����=��>�o����o��o��o��o��o��o��V{��6w�U}����'��Â�!�h�z��'����N�K��K��K��K��Vz�U����U~��$�����9�‚�������Ix�w
�V~�₹�����y�w�w�o�o�U�����5���'����oV�o&�V�����o$�V������
�V��q�)�V����V����V��V��mt����m|����mu�����������qe����my����mv�mw�qh�Uz���6��v�N��������mf
��偺���U{��
�5��u�'	�mh�����G�mi��D	��B��?
��@
�me
��聺�Vs
������������
�9lEy
x�� ����R�qk�o+�o,�A�qn�H�qj�Vx��6z�qo�Vv��$�M�3��]���ʋh�A߂��Vt�Vu�o��o��o��o��o��o��o��o��o��u��=���K��p����p�K��p�p�U������3���A����U��U��o�u��U��U����m�m��u��u��mb��7�N��H3�H4�VH�U�߂+�����<���rW z';
�J���
��#�df%����z	�����	
���׉ַ�����,�!���������G_����a�&���n��n��������|u�o�����������oقO�oڂO���������m��G	�������„\�O#�o���o炓�m��T�����m��q{�m��Y�m��m��m��Y�p��m��C��������WJ�MG�qy�m���B�����m��m��q~����n��Ɔ��n�����������n��x�n��v)
�v1�v2�v*�n��v�v5�v+�v,�nˆu����U�����o��o��o��n��&��������LႯ�n��"����N��n��n�����u��u������"�VI�5��'�&��
����A�� z&?�+���
��$�df%!�����b
	�����@炲�!�����
���Ga�u��vV�vW�vY�vZ�m��ߎ�m��ߎ�n͈w���J ��_��`�p��Vj�\%�Q�<���m�F�9�n���c���J �o��o��vF�m��v<
�v=
�m��m��U��ہ�u�����ՂW� �sW���j,�Ib�1�M`�Ma�o����{��i�o��o��������o�����-�����o�����V��U�����U��
�s��������U���o��V��sV���{=�o��M:�m��m��m��vT��v��������o��u��u��m������`�n��m����o1���o��m��C�C�m����m��o.���o/���������o゜���v]�V%
�[�L	�����e������&�V�����>��?��;��<��=��A�m��N�m��m��N�m��p	�������m��J	����l�G� �L�m��R��i�v��V���m��V�6��D�V
=	�[�F	���ǜ�	�e������#�U���ug�ue�uf�v��v��uh�ub�uc��S���m��T����i�Љ��m�MK�ML�MM�MN�MO�MP�MR�MS�MQ�m��m��MV�MX�MW�MY�o4�u&�u'�m��m��o5���H6����A��A��V���������<�V�3�LK�N��v��N��m���V��V��m��m����m�����m�����m���m���m���V������oE�oJ�oF�oG�oI�V����S���p��vt�mC�mD�H5�m��m��V����V����V����V��V����m��DL�I����ur�n��n���q�m���r�m� ���>�\I�m҂�m��xI�m��m��m��H�m��m��n��n��V�����
���灷8�����1�L>�n��n�����v�H����m�����H�n㈣H	�v��v��o6�o7�o8�v�R�v�H�v�H�mՂ����I��"���3�m؉��m?�&�m@�vn�vo�m�����H�m��m��m��vlI�vmI�n���������u�����Uqr6
 �,����$��C, B5����Z%'���e,4
Z��1	B�{�'	�W���c�+) 
����O����!��
��	Lu!K��"��
�����K���b
��6R�+��n}L��	�2����4	)�с�
+�a�0���{��B�����V;�V:�B�B�p���|��~����}�[��[�����n=���n5�U��n9�U����U����n!��p����U��U����p��U����p��n;�U����U����p��n"��U�n$����n%�n&�n'�n)�n*�n�n�p��	�����p����n#��F�[��҇��h��������������������[�������o�nL�n�V`��n���%�Bل��U����U�p�
�nN��7����nO��6�U��U��U��U��nM�U����T�nQ�nR�U����D��4��Q�������$��E�������U��U����T���.>����P'���B��������Vc����P�%�F]��x��y�U��������%�U��n����@�n�n�n�#����n
����?�n�n�p��nT�nU�p��p�����p��p��������V^��Z�#X�>��g��Zm	!c���A���5�nH�������v��n+�n,�n.�n/�n4�b��݂%�nJ����������U���	��>�8	�āʒ0��l�CY+v��N�E8�ʃ+�n[�v��v��v��p���M���������,��
���+�n��n��n��n��p{�n���v��py�����q��px�����U�����<��������p��n؂��VZ�V[�����nW��P�������nX��P����������n|��.�n}�p��nY��R��B��K��K����B��T��o�t�u�8
���?m(
J2+����@	 >
F,�����9�]�
���dh3>�����^	����4��
�����p�� @����4� �����	T����q�$���������~�u�u
�u���������p��p��p��p��u��,����P�u����u����K�������R��T�y���S��W��V��U����X��Y���
��
��ph�pi�u�K����p���H��$��I�m*�m+�m,�m-�Mg�� �u���$��S���nj�q�������q���q	����(�������q�q���+�����������Uӆ��o��m:S�j���jOG��8�iD�n�$��I���d�R<��7�������R�C���������UԆ��o�J:�Y����{
�m�%���	�`	�R2�A����������u����v���q�����������wc���B����������/�d�0�d�q]��U������n�x�BV��p%�U���uz�u|���U��Ůɏτ-�g�o�n��ne����U����a��G�U��������m�x�BV�p,�na�/��n��p&�p'�p(�ng����UȆ��}�3���)
6
d#	x�z)G1��
���~�eGp�o�d��
��2	xI�Y'
�p��
7���(
����V�����������q
���H'�H(�q����J�m�������K��0��G�Mt�uH������M���F�N.�q��;�mɂ.�[�g��1����2����N����H�N/�nj���j���dTG��n�k�'��K��C�6������������nl����t��u�U��U����������V��ԅ����u�v��pf���V���>�q��
���8����V����v��4�G����Ve�3]��U�� 7�����J��K������������n�^s�������t�n��������n�]��U�� 7���M\�Vf����n�]v��x�L�K��w�w�q��n�g�Ղ@��s _�����e�����
�����?�eU�n���ф&k+����|�H�H�u��u��r\�"j(������d��B�e�r]�r^�������U��t�f���?��s�z������u	����u�u�n�j���q�<Q�������������������7�[�����χ̇ۂ#�d�A�*�����]������2�� �B��B��S�T�B��B��D�E�G�I�V�����L�M�V����V��N�O�[��B��[��N��N��n�����:�������W�q4�B��P�Q�V��V��B��B��[��������]������B�C�>�?�@�4�5�6�7�8�1�2�V��n��Mx�My�n���j�q��q��q��q��q��q��q����n��V�'���u
J;n�֋����\�e�
��_|�Ƅ(�ق,��
�l����3�����^������w��[��[��Všq��e�����ׅ��T�w9�w:�wo�wp�V���������R�P���S��t��u�V������?������M
�P��F�K��K��A��c�A��b�V��V��wI��KX�w;�wS�wJ���wA�:�wE�wF�wC�wD�wH�wB�?�w<�w>�w?�w=��|���V��V��V��V��V����V�����}���Vǻ��V��Z��e͕#�*�Z��w��x��y��{�wZ
�w_�w`�w\�w]�w^�we�wg�w[�wb�wc�VСV���"�0�w-�w.�w/�w1�VҡZ	�V��w(�w)�t��t��VѡV���!�w+	�W_�7������b�W&�����W-�W'�����W(��	��
�W�x��w��w��W`�I�~��w��w���~��w��w��w��w��w��w��w��w��w��w��w��w�������H=�H>�q��t���h�rp���DY�A��^��_�W���w��w��w��w��w���R��;�W��T��S��9��������������c��f��d��$��&��'��(��%��4��5��6�w���a�y�DU���HA�wh�wi�V����V�������8�V�+������o�A1
�V��V��V�����G�������������������g��������w��w��V�����Q��V�$�����r=��
�w��V�l�����������l��V����l�����l��������w����V��V��W#�W$�w��w��w��w��w��w�
�w��w��w��U;�� �����j��
&�k�a�d�&����
���A��������x�����x��x��x��x��x��x��x��x�����x��x��x��x��x��x�
�x��x��x��x��x��x5Q(����x8�x7��I�x��x��x��x��x6�x��x�%�x�%�x�!�����s��t�x��~σ��x���c�x��x��x��x��x��U<�������i0��
$�6�a�d�&�������ځԅ%����x����w��w��x�����w���x��x��w��w��w��x�x�w����~+�M��w適J�x��x��q��
	
���~�ƅ���w��w��������������w��w��w�+��V��O��O��w��w��w��w��w˂�x��w��x�w��x/�x�w�	"����Gg�;�������w�1+��/��x�w��x
�x	�w��w��x��x��x��x��x��x��w�x2��T�x3��T�w ��w��x�W.(��{�����I����WO�WP�WQ�WR�WS�F��O�W0*�W1)�y9�W9�W<�W:�W\�W]�y:�y�y�y�y�y�y
�y�y�y�y�y�<p�}9�Q��y�6_�z�z�z�z�z�z�z�z�z�z
�z�z�z�z$�z*�z)�y�?�z&�z'�z+�z,�y�
G�y�K�y��y��y��y��y��y�M�y�
D�y�K�y��y��y�?
�y��y��y��y��y��y�MB�z �y�D�z#�y��y�9n���z��z��z��z��z��z��y��y��y��y��y��y��z��z��z��z��z1�z2�z3�z4�y�;56�y��z
�y��z�y��y��y��z�z�z	�y��y�E���y�D���Wd�����zD�zE�We�W62�c��s�I��W@�z��z��W>�WE�WD�WG�WH�WJ�WK�W?�WN�y'�y)�y*�y,�y.�y(�y-��zI�zH�y3�y4�y0�y1�W7*�)������y��w���u�y�	�y��y��y��y��y��y��y��yl���z�y��y��y#�a�y!n���y��y��y�b�y6�y8�y7�yKW�T�y>�y?�y;�y<�y=�yA�z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��z��yQ7!�yLW��J�z��z��z��z��z��yR�S�yS�G�z��z��z��z��yH: �yB�yD�yE�yC�yI�z��z��z��z��W/(��^��e��~���E"
���z��z��yl���zw�zx�Ws�����W31����
���I�	�zp�zo�zU�zd�zV�W4;��	�̘�z_�̍�F��ze�zg�zh�zf�WT�0&��0e�|���I��yz�^�y|�y{�yw�yx�^�yy�^�y�Z�z��z��yU���yW�yZ�y]�y\�y[�yX�yY�yf�yV���ye�WW�]��q9����y��9�y��y��y��y��y��z��z��z��z��z��z��z��z��y��d�y��y���+f�|y�y������y��y��y��y��y��y��&�z��z��y��%�HL�ym���yn	���yo�yq�yu�yr�yt�yp�HM�Wt���I��V����M��I��I��H?�W�W�W���nM�W�W�WC�����W�V��V�	����M��z��z��z��z��V��V��z��{�{�W
�W�W�o�Wu�Wv�V�:|�)�o	M:;j[��V�e�*	����!���'�{�_�,���D�&����)����W�W��s��t��u�x.��y�D+�D,�xW�xD�xH�x:�xA�x=�x<�x;�x>�x?�xJ�xK�x,����x�b��C�w��w���z����H����H��z��V�'���������|^*��b�b��4�A�J�-��@�x^���xt�xv�xu�xw�xx�������wu���w�OG����������wj����wk�x_�x`�xa�xf�xg�xZ�x[�V⡐�����V㡐�q��ł���������������l�m�x������������w���s���w#W,��	����|y)�R�d���F��@�xz�x{�xc���x��x��x��x��x}u
�x��x~�x�xk�xl�x��x��w}A�w~A�W%�W}�V�����Wx�Wy�[ǝR�x,�[ȝR�x!�x"�x �x�x�x
�x
�{�|�x+�xLT����xT�xN�xO�xMQ�xP�V������H;�H<������طA�F�-�B��-�B��-�U>�;��-�X���>���&����%�sL��%��
�eN��T��bx������!�}r���ԁ�Iv#H�tL��'W�00lKx2"��
"��\

!��4 O"@��4;�����낄40o
y�
��S���D�l�D�l�
��S��X���x�G����N��N��XN���.�XO���XV�XW�XU�XT�XS�XY�XP�XQ�~��X?�X=�X>�W�����X!�X"�W���m��!�y'��"�y&�G#�X@��ѿ��XB����s���A��s��s�����A���m��n����|�h���>�w��4�D���P�[��[��|��|��|��|��|��|��|��|��|��|��|���'������������(���d�}n�}o���`����������}.�})�}(�}4�}1�}/�}*�},�}+���,5�������������|Ć�
2G�������|���|ӆ�v��{���|�������������|��|��|��|��|����|��|��|��[�d�q#����#��&��%��$��O���}U�}V��P���}_�~5�}e�}g�}b�~4�}c�}`�~5�}a�~4�}d�~3����}h�y�}i�}k�}l�}m�[�����(�}���3��4��5�[���y����r��s��u��v��x����q���X)�0�Ã2���}[�X*�1�ă0�}Y���|����|����}\����!�}]����u�}?2�"�}q�}r�}s�}t�}H:�}u�}v�|��|��}I7��}��}��}��}��}D:�}E�}F�}C�}��}��}��}@9�~j�}z�}{�}A8�[ע^��������}8�}9�}>�V�������������}6����w��
�����~��0���}7V��
�������}���}���}��}����������
���������
���
����������������������[�����%~�|�
�|��W��>�W��>�|��|��|��|��|��}��}��}��}��}��}��}��}��}��}��[����U���~�[��[��[��|��}��}��}��Y����������//�w��Gт�Y�Y�}��}J�}M�}T�}L�}K�}N�}O����Y	�ށ���}��|�������|��Y����	��������Y����|����}��������������������}	���������������������������}%����}&�}'�}�}�}

�} �}�}�}�}�}�}�}�|��|��|��|��|��|��|��|��|��|��}����{w�6��\�}����}��}��LZ�}����}���}�}����}����}��}��}�����L[���������5���������������������5�T���T��U�X67+�7���=��EI\�x�$�	
�����!���m��
��!�����$�|�|�|�|��%�������{�{�{�{�G(�G)�{�{�{�{�G��_�~d����~e�~f����~g��`���~c�{����{݃��~j�{ك��~k�~S�~P�~O�~Q�~R�~Y�~T�~U�{����{փ��{ڃ��{����}�r�y��K�����{��G.�{��}��}��}��}��}��}��}��}��}��}�y��K����~B�y��������}�(I�y��K�����{��{��{��{��}��{��	�}c�G��{˃%�{��{��{��{��~A�y��K
���L�������{��{��{��W���
��A�y'�/�BV��"�;����~r�~z�~}�~��~{�~��~��~u�~��~��~s�~t�~v�~x�~w�}��i����}��}��}��}��i�~_�}�����}��W�����ģ�(�X�L��~[�}��}���w��������x�|
�|�|
�~�i��c�|���~,�~-��'�~�~	��(�~�~�~
�~�~�~�~�~�~�~�~�~
�X9��{d�x�����|�h�y?�|��|��|��|��y��|��|�~5�X:��5 Xg��b�~;�~!�~"�~�{�H�{��~%�~&�~'�~�~�~)�~*�X8���~h�}��~�~�~�~�~�~�{��{��{��{��{���9�{��~8�~9�|���~�~ �|���{�{	�X7�����*��ER_�x��Q������?k������0��
���x�N�$�|%�
7�
8�|!���Ō�~��{�-��6�|�ʂ�x��¹���7�}��}�����}��x��}����}��}��{��܁��x��3�BV���>�~��~��~��~��~��~��~��������~��~��~���ټ��{��{��{���{��{�{�{
�{�{�G�G�{�����|�{ꃿ�ȗ�~��~��{��������A��A��|"����e�~��|#����`�~��~������<�GN�GO�W����9�����u�����k���/T� �������E���Jb�������������?�������������W�������8�%����XE�����i���O�������W����J������x��k��
�O������E��E��W�����C�W�����;
�W����믂�
������E��E��W����W����W��쓂���m�W��?��\�R5�[��\�[��\�I��Xd�p���{�q��� �F�U�����~��[��{�����R�R��S�R��g�9�l���h�~�����d�F���~�����F���~�� �~�� ��P����L6�L7�����������W���;	�K�'�C�����E�dЅ�V�ZX���΁ہ��$��	����V�!^L��(��u�ށ��Xt�Xw�Xu�Xv�������X��X��X��X��X��X��X��X��X�����i��X|����i�����O��X��X}B�W���6	�L�U�E	�d��ԍ������$��	f��Z^����S�X��Xg6���X����X��X�
�X�
�W����Xs��j��k�W����Xq�W��0��`�3�W�����Li�����I��I��W�����`�2�X������~��~��X��X��X���k�uC����O���ޅ������������	���DQ�DR��{��������
�{�	������������������������
�����������������������������;�s3�ގy�������W����%�u@HL��=�?����X��D������������������
�
�1�s3���L�Qe�����������{��T�����G2�G3��n��m��]��������������^�W��������b�>�����W��������>��U?�9OS C9���K���#����_%(����
���l��Q�0��W"G�S����
	��}"^����R:Il#0�sI	��%S	�&/lER'2"��
��\
��:"G)<^�d4 ����o
��
	u�L�L�L��n��o�������Ll��n��o��p��q�{>�7�{<�{;�{=��s�LV�L��L��{C�8�Z�[�\�{A�6�{?�2	���h�j�k�i�n�o�t�u�q���e�f�]�^�_�`�a�b�U@�e�����Lm��������������IH���J�L�W�X�Y�M�U�N�O�P�Q�R�S�T�$�'�%�&�(�)�,	�3�/�5�.�-�0�1�{�����Ln�6�7�8�W��U���
���H
�{/�Jk�W��]���W��W��������{%�{&�W��X�������{$�����������Lt����Lu����������W��U�����D
�{(�J���W��X��
���
�D�{��{��{�������������������{����{����Wä���������������������������WĤ��W������}��~������Ӄ���������������������������������������������������������˃��������������������������{p����}�@}�,��oQ����E�E��r�������s�{t��������������P��Q�{q������R�,��o���;��<�&�?��A��A��{r���{s�F���G�������{P�{Q�{D
�{L�{H�{E�{F�{I�{J�A�B�������������������������������������������������{R�{S�{V�{]�{_�{b
�{e
�{d
�{c
�{`	�{a	�{f�{g�{o�{W�{X�{Z�{[�{Y�t��t��W���W��A��A��W��,���$>]�����l.�n�$/�3��G��Y���#��D��|���{��{��g�{��f�{��g�{����̳�������������������������W���3*=��UF��CX���q!�ϑ��p�}���������������{{�9��'�i�{|�9��'��K��q��r����
�����{��{��tއR
F�U�h����q����{��tև��{�D��Ĉt����t��&�����tه����t��t��,����������	�����������������������}���~���@��P��O��G��^��_��a��b��c��d��C��I��A��D��W��X��E��Y��Z�X4�W��6��;������9��:��>�����X3�N�����������W���6)�J�P	>	��I�{r���p��$�{��{��{��tՇU
F�^��
���{+
F�{5D�{8�������� ��"��!��$��6��7��'��&��%��(��*��+
��,��-��.��0��1��2��3��)
��t��u�L��L����{�	)�{��{��{��{��{��{�	)�~����PA����������R�UF�;	 j =@��
��G=5��)�́�����d��?<
���-O��e0+��J��z�Q=�B0��Yb	c�
�*��9���]V;a�cK����2��*��r����������XѰU�|d��2��6��3��4�X���7��8��������:�X��X��X��X��X�R��;�X��X��D/�W���������)��Z��[��*��+��dz�����f{���q���h�r������i��\�\���b��]��^��E��F��2��3����Q��������������Q��L	�L
�L�L
���a�s�A�����X�e��I���I���I���F���I�X���J��K��I���R*������D�����C��O��P�L�L��ʁ��ySh�R"�����T��ˁ�����������M��V��T��\��[��Z��W��X��c��S��N��O�|��!�|��.�|��|��|�����|��|��|��|��|�����|��1��N�|��χ�|��|��|��|�����|��3��e��f�|��|��J�J�W������~�&�b�ډ�F�����W��W��W��W��W��X���p��q�X��X��X�����W��W��|N�|O�W��W���t��v��x��u�X������Q�����������|g�~��Q�����|h�~��Q��X�X�X��X��X�X�W��������qƁ�-�d����H���������`��_"�Q��X
�X�W��ɤ��{�����Q����������������l��m�X
�X�����������'%�G��݈����|l�~D�R�������n�X��z��|��}��{��_��a��b�|'�Ȉ}�|)�|n�|o�|2�Lj��������|0��F�6��@�|.#��	�~�����툋�|-�|Q������눌�|*���|+����������������������������������
����	��
����������������������������!�|m�~@�R������~����Z��\��]��^�W��[��`(�z�����b��T�؅큠��{���|r�_���X��X��X��X��X�������������Y���Y���������Y�y�i����l�j�����m

�i�����x��y��o��q��r��s��p
�I��������������������W��Y�69�[���x�I��ȃ$����-���|4�HU�HV�|=�[�W��|D�|>�[�Y�@�}h�I�����|5�|6�|8�|9�X��w�~��Qf��������:��;��<��'�~�2V��#	��,��-��0�������|s��W��3V��5��6��7��9�������LG�LH����^n�������^p�����������������������������������������������������������������������q��<���߹��������������������������� 
��'��(��#��,��+��.��"	��!��$��%��:��v�������������������������������������������,����!��v��u��8��������=��v�s��R��S��T��;����r���W��X��Y��V��M��N��O��Q����r�����I����*��+��(��)�I���X��Y����Y�����&���
�����Ç_����]����a��ć_����^�Y��_�����E��C��D��F��K�Y��^���Y�������X������oE�	��	��
��A�q���k��l��m�����������������������d��c�����������������������������������������p��q�����r������������t� ��n����J�����A��Q��P��������������
������
���������X����&�oZ�	�R{���6���6���3��χ(9��������������������������0�����d���e�L1�����������������4��5����n���������������E`����n������������������W� +
 �����e�n����������7���e�9���C^
:+�uJ���O��Q[	c�
�'�����ہ��a,��������ԁ�����|��|��������������Ò����Ò��T�|���X��˷����������������^&����|E�|G�|H�|I�|F�������|J�|K����������W�
���⇊�r-�4�E�����x�������|}����w=�I�	����E��C�E��K��D��E����|~����G�����������6��7��Q�W�������L��<���N��R�چ���L�~ꃼ�~��W��)��R��S����I5�����W���4����C�W���������������������W�����c����W�
�W��W��W䪺�c���C��D��E�W��W��W���@��A��B��H��I��������������l�����������������������A��B�|S	��������=��@��?��>�|U�|V�|W�|X�|^�|_�|T	�������������|Z�������X���������X�|��|��|��|��|��|��|��|��X��U��V�X����X�X�X����7��z��a��{��c�X������8��L{�{���rR���R������L=�L>�L?�L@�� ��}��~�[ؠ�|���N�.����HQ�HR�[�����N
�.�Ht�q����A�)��i���A�(�{����rQ���U����L��{��|��V��M���X��u�9�G�x�R)�1�=��sy����D��D��D��������Y#�����-�Y%�Y$��-�m�\�9�{0�R�Z�=����������E�4�J�Y
%
T���w��:
	���_�3�;�f.��Q������
��������
D����a�-�\����\E�\F�Y.�Y,�Y-�Y/�Y2�Y)�Y*�Y+�Y3�������O������������O��I������YN��q�K,�W�=�������������YO�����b�=�Y��Y���.�YP��	%��#���a�V�r��F����"�Y��H��H��YS�����������!����ׄE��U��!�Er�Es������ �������������� �Yg�Yh�Yj�Yk�Yl�Ym�YR��$��#������G���"�Y����M����J������F��G����������B��I�Y�����J����@��C��D�����Y�j�M�N@.�����f4��I
�4�b���Y��������������������\m����A��Y��C�%���q������A��\N�將��\M�\Q�\R�\T�\P�\U�\V�\O��0���J���1��~�J������������Y��l����������x��0����6�Y��Y���������������.��/������������YW�^`���ä�UB�UC������q��Y���Z���ˈ`�r������YF�YI�YG�YH�Y��j�Y��Y��Y���-�YV����
\����u���q���q���q����q쒾����q��q�����������������r��������
����q��q���q�����h�Y��Y
%
O�u�$
���+�3�:�f&�ۊ�Q���n��������C����`����U�I��������Y��Y��Y[�Y\�I��Y����Y��Y��Y����Y��Y��Y��Y��Y����������������%�������Y4���Q���x��K�Y5�Y��Y6�Y8�Y��Y��YA���T�?���Y?�Y@����Y����Y9�����Y:�Yn�Yo�Y>��?�Y<�Y=�YD�YE����YM
@9(�#�~��=.�ց�JL�R�f0�ۓ��#�4�2
�������]����\\�\b�\]�\^�Z���Z�Z	�Z�Z�Z�Z�Z�Z�Z	�Z
��:��;�Yr$�Y��Y��Y��Ys�Y}�Y~�Y|�Yy�Yw

�Y��Y��Y��Yt�Yu�Y��Y��Y��Y��Y��Y��Y��Yb0^�w���,���Y��Yc���q��������Y��Y��Y��Y��Z�Z�Z�Z�Y_@f�6
�e_��I���z"�2�:�2
��C�C�C�\d����������Y��Y�!�@�Y� �C$�C%�Y��Y`��&���Y��Ya��%�Y��Y��Y��Z�Z��J�,�r��Q��R��P��Y��[��T��X��U��W��`��a��\��b��i��f	��d��j��K�����]��^��L��N��O��M�UH�����;��N�@��I�����0���F�i�>������,��H��?���gi����z&��9�$#	N��x�����́�������=�f�@6�\����iC�f���[i�������f��ui�j�������������������r��O���������������O����kU���fv����������V�w��CO�CP�[k�(�i�w��5�Z:�[l�#�i�w��1����%������������.
����5��6��1��:��0	��/��2��3���[j���z�Z��uf	�d��
�Fj����y�1�	��	��	��	�����r��ul�+���D����������F�������y�4�Z@�H�n�ׇc�|�u��,��V�C���	�ZY����������ZZ����Zi����0�������������l��[=�[?�Zj����
�[;�k��[<��4�o����������]�^���������Z[�*
�zb|�b�ف�����|r�Zc�*�Z\�'�z��������Ze�Zf�Zg����z傁���Z]�-�Z^�[8�ZA�����F�lͅ��b��`�b
��,��\�C��������{������y��`���b�c�}������P�9_�u_��n"�g
��J��F7��l�g�\���{���ف��o�v�������z�����������P�7_�u_����Ix�����������������������������с���uc��������������������腤�w�����������������B�������������������\�����"�w
F
��}������f)~�ڃ�uf����
b��
�������"��*�v����[@�\��������[A�������������������Z<�F�/���r?�D���k��l�������Z=�F�.���rB�D�����������#��z���6�Ob�\{�����2�0��$8�i����������������\|�3@���|�������|���'��u��(��)�H����%���%���������C����H����H������O`�Oa���y��C������������;�yv���y��Z>�F�{�"�q
-��
w����	���f)|�ڊ܃���
b����������"��(���3��)��+�O,�O-��������i�z�����gK�Z�5�.��"3#�iӑ���@�>����������������������������^�T�l�/������v����[r�[v�[s�[x�[y�[w�[t��J����V������(���_���2����\���"�\����^���������������[�������z��\e��J��f����?�ǂ�H���q��@���6���9�U��!��2������������r���������[~���l�_�ā��!�x���4�ۘ�	�4�\�\�[�������x���7�ۜ�������������������[CD��b��H)��b����<����R�i��?���z1���8�U�� ��1���[D��b����m��n��o��q�\	�[E��a���[G��b��������������\��������lЌȂ���*
�����������\��l�vB��L�C7���n�i ���G�*
����M��N����i �������i �������������tD�
�\!�\"����\#�������������Ⴇ�r�-��
���!�@'�R�^��R���������E�ZC�^�zA����zA�	�����zB����ZD�^�zA�������zE�������N��������������.�1�/����ZE��V�r��$���H��O&�O'���H��ZF�ZK�ZJ�ZI�ZG�"�#���|C�\&�ځ�,�y'�Ձ�� ���5�CW�� ��6��7��8��9��;��<��!��'��&��%��(��"��#��)��*��+��2�����},���v���	��� ����xy
���������:�x�z<�������������	����;�w����z*���	����4�w����8�	����=�z����	��8������������\$�������������r���

����@&�R�e��R�9�H��H�������D�z���G��E��F�;������xj
�\%�ׁ過���{���^��%����� �$��u�|Q��y��{��|��z��~����t�|P�f��s�|R����z����������z����,��v��w����uu��������,��[)Y��7�����邆����!���0�gډ�G&�<8��)��N�����݁����V�����cz����z�����������������������
������������������ׂ�;���|	���{���� �!������������$�*�+�-�.��Ɉe�xl�������߂D������3�H��"��0�{���1��P��W��Q��V��R��8�!������<��9��;�6��>��?�7�%�(�)�&��/�z\�����FS��5�~���3������=��A��B��D�~�����&�?�y(�Jd�������%��&��'��(������������[�y���\�y��9�=�A�:�?�>�����������$�u�H������������y4��������y;����y;����y4����y6����y5�H�ف���+�q
=�I�N�J�K�R��,�q
<�P�[+���-��"��uԃ)�!R�K������S��	�/�u��)�����	�	��Y�D�Z�[�\����������������������[,W���7��	����0�S�����	�!�g���V"�<	���T#ooK�����݁����u�<�cz�����_�`�J4�J5�a�c�d�\~��qf��z���e��M�|�g�i�j��_��`�[*����
�{
(��̂�'	�jG�[<E�`����Qj��:������]�	,�	.�	/�	-�	1�	*�	+����_�c�b�a�`������	8�	9���	2�	3���������|�����e�f�h�i��������������������	?�	@�A��c�s����~�.�w�y�x��������z-���t�u��*�\��
��6��������;���{�|�����F��[�\����s����������G�����H�����	'����������������9��jC��
#
��������8�	J�	K�	(�k�	L�	M�������l#�[�I�J���������m�n�o�	P�	Q�����^�x��=�O�Q�R�	U�	V�	S�	T�K�M�L�J�	G�	H���YT�
R���YT��	�.�	���n�r�o�p��
���wm�
����8����3�wk��������xx���u���������J��v����L��L���L��K��w��������N�?�����ʁ��uC�Ӂ���p�G���������ZU��b�x���j�x���k�
��-��.��c�x���d�x���i��f��[�<����x�����u���h����g�|�t��i�ZR���8�����������uE�с�}i�G����ZS��Z����vׄ��	e��Q��Q����x���	��s��Y��V��W��X��^��_�O[�O\��`��Z��a��c��T��U��R�	f�	g��[��\��_�z���`�z���\����[0����x-���>�[1�����x��>�[2�[3�[4�[5�[/��UI���
��A~�pN�F���H��(-XD2"rIttX*SA���
B�i�O�����{��)��I��>Np72?|�i��z&����$#V���2��������:��������������J��HS��������IS����[������KK��N\��LZ�����J��?��@�[T����M��S��V��W��T���m�����������[U��~M��Y��Z�	��G����������E��~��N�xb��o��\��]��l������P\��R]��SZ��Q]��T�y}��b��U��V��W�����X��Z��Y��[��`�����c��\��]��^��_������q@�����������������m������j��m��l��k��i��������������P�wv�����P�����O�wu��������������������\1��j��&l��x�Cn�Co����y��z��|��}��{�p*�r���������\2��`
���������o*����tY���l�t���)b������{@�	����	��	��'�(�	��������������[R�찓+�Ɂ�h�������.t�A��[S�����uX���g�fZ�#�3�BH��wY���h�t��4����J�j��W��������I��#����Ok�Ol�	��	��O�O��q�x����s��t���������~�x�����{��}���j[�w����������r�ւ@�r���?�� �����������������������Gg�Gh�Gj�Gk�Gl��r
�T�w9�����x������u�x�������������������������������������������wL�����[P:���ըև�-����_ Tw��RI���r��y��+��Of�؊!����F��G�����	��sY��v�s񁨃2�[N�谒1�����C	�s��Ђ���
����s������������…����������OH�Go�Gb�Gd�Ge�Gc���x��������{����{��z����x��~�����тT��!��@����уi��C�����������h���
��#�vJ���������������������0����.���O����������������������������������������������O���2�tE�����O����n�ZV��/�:�v����~�>��#{E���T+�g	V�f
���%D�����t����9$��/38]���������0�M�/D��T���C��6��>��7�x}��/��0�x~��1��3��7��
��tO�=�>�0�4�6�2����t?��
���� ��"��#��!�����tM�@�������E�F�G�[X�m���g�w����U����x��B#�<�������������|�	��	������������[Y�l���e�ln�=���������y,����������p�^��#���������������}���z�������p�^��#��K������L��N���������}��G��H��I��g�ui����\(m�������Co[�8$��-�fh	�"��k��<��g�����h��������K�\)�}����
D[�7/'�uT����T��������h��������$	�>�w}���\+������\,�������&��)��'��*��(�������~��`��c���������~��zM����zM����}��a��b�ZW����s��~�=0
y���N 	�f	#�ff
���X�h����4$m/fZ���:�����n�������	�	�		�	�	���������
�}�������������{������
�����\���
�wu�����\-��?!d7��D��-�fh	�
 �X�K_
����]��8��9��6��7��;��=�xv*���\.�m���/�u>(�x�D��T�U�W��<�xu*�v�P��B��C��r�v���s�v���*��)�H�����\����u|��������Zl�=�<�|��N��	��������������[\���C�za��\��]�	��Zm�����E��b������~�����gǑ���e�����F��d��f��e�����G�i��������A�,���ɂ8����t��Ȃo�G��m�|�O7�O8��B�����j����ǂl�G������Y�����������c������~�����x���e�	��g�i� J���y������������������ق ��n��p��tL��wL��vL��uL�	$�\�x���d�i�f7���_�I�ɂ��s���م��������+��
�������������Cb�Cd�Cc�\����
�\���������u��x��v��w�Cg�����Ch�\��\��\��
�\���Gy����Gz�������������������\���T�h�t3�����l�������������e����!��"�������Q��������$��%��#�]$��,��8��9��5��:��;��6��?��@��A��B��F��I��J��G��L��M��C��D��=��>��<��N��O��P��Q��S��T��U��V�Og��.��0��1��3��4�Oh��W��X��-<��b��c��d��e��f��g��]��^��_��`��Z��\��[�
�
�\�x�����Ճi�f7��G�
j���م��������(��)��*�����i����k�����������������l��m��j	
�����o��x��u
��s��p��q��y��z��&��'�\�����]!�]"�G}�G~���	�S���Z�ԃ���#MV����
�f��
0�X�C����7	����b	�3Y�с�a���a5
L*����D��	.
�H��gAW��������ig�,)V��[�C�d0	.	��
>��Q��`&����B)��?��^
8�/M�=}��
��_*
""<��"����N��
��EE�
��]'
����]H��o��]I��o��s�����:��]*�]+�C���������|�}�~�](����O��������]��h����f[�M����7�"���������t���E��t���������]����fW�M��'�:���E��E���݋�a���t����������������]@
�]B
�]C
�]A
�Z4����0�����}���,�IJ�IK�IM�IN����������Tr��������P��A��B�]��~�kI�r�r���Z5���N�jI�Z7����������������];�L��L��]<��H�]�	(��
���_����,4��s�`�]5S/��0�]:R�]6Q��[�]7T�^�����Y���ۋ����L��L��_�����ۉ���O�k�^�������?�^��<��=�],rV����I�������]D����}����]E������D����^���^���^����?�����Y��!�D��D��U��w�-��-�E}�����������������������������������������k�����������������������l����x��h�h���]V���]W�������������������������������������U���w�,��K�������������T������������������������������T�����������UK�u��.�C�G_?�Y���3�����kq�f��7�{���lP����������o���]0�]1������_�=����Z���Z��Z��Z�	���Z��Z��Z��Z���`�<����r����Z��Z��rm���UL�t��-.�`\�����|3�����g���:�6�E��lP�����������|;�rl�]�r��o�K���!���ri�����r`�L�����-��������������
�].i�������]/i���������r`�L��O��IQ�w��.��/������
�]~�s���C�f�ц(��B�P��H��K��J��I��L���|����|�����
��������]���n�������]��y������
�H��H��H��]��Q�f�̆(��@�O�Cr�Cs����f��	������������0�����U������������]��]��]��]�����T�����!�h@�T�����$����U������������������jd���#�T�J��	M����X�n:���"�`��
�d6��	<
X�QA����
[��}��a����
a���ā���k����������G�ġ�N��������]G�N��^�b�������n����Iх5��!�^�^�^�t�t�t�t�z
�{�����^�^�^�^��t��H��K��I��J���]KO%��
�\c&�Z�t���>�̇\��p�b���E	����q$����}��
�b�������ȁ��e���a_��	�]��
���(��)�]�1��������y�G��G��G��G������G��G��G��_�����y�����z���]�1����j�w�����G��G��G��_èc��
���C��������������������������_������_��^��
�ru�]����]֪F�]����]��]��]��]������u�6�Iy����]��]���.�]��]�����&�]ޕ����u�6��8�u�7�r��r��]��]��]��>
��s�����5�u�6�]��I�����]��]��]��rw�ŒGp�j7��~��=��
��������F��+��,��G��	��
������>��
	������
����
������?��w��
��
��
��]�d�<��qse���������Z�b�n���?��!��b�C��G��G��]��c���Fo�e������т��:��� �t�t�G��]��]��������L�G��G��G��G��G��]�������R��������J��J���8���N��JV��:�
��
��]��Vg���n�����"��%��&��'��#��)��*����������� ������!��/��0��+��,�]������1��3��2��4��5��6�]����u�U��2��3��7�]���.�]�������]����]��]��T���"�a�����>�(�Y�g
���,��
q���;����������`����F��G�G��"�e�_��_��_��rx������g��t���`�d�����H����]ж+�i���������������i���������]��]��G������������1����]�����]��_��]Z��h�][����m��@�]��]��]��_��_��_���������_�†���?��@��B��G��I��H��K��L�_�†�	��C������������������������O��n����T�~�6�� �n�N��N�����N��N����5��6��4����n�6�T�����9��d
	&���&�� /�h����	��)��
�JO������ �X�aTf������,.P �}:��
!~��#��'1��������3l
B�
��b��Ytf����*�b��R�����dW?l���	��'��>~	%�F��>�?�[�F��^n�2�s����pŇ̓#�m������Dd��'�s����pć��"�m������D`��*��ێ�ܪ�^!��s�^%�^"�^&�^#�^$‰M��q��r�s��s��s��T��T��^���+�s��Z܄�����Z�������"�#�T���������d���o:�n���F�����s��s��\��(�9�^4�^5�\��O��\��]�]��%�M��'����������������T���^�T��T��T��������j9�n���F�[���_���_	�_
�_���_���s��s����]�]
�]�Z�$�Z����D���L���M�����T���܄��/ ������t]k�����K��!�z�tq����^��������K>��,��-�^��^����^��rq�rr����^*�^-�^.�^,�^+�T��r�^1�F|�F~�F�F}�T��	T�E��t�KA�v�Z��[��O��P�Is�[���\��[���[���\��^��^��^��Z��Z��^�	������^��^�	�^��^�
�^�
��D��J��G��E�^��Z��^��T�������/�������q҃�m�F��F!�z�tq����s���u��������_�#�>�t�M���8�F��F��F��F��_�"����qЃ�qу�s��s��L��L��\Ƀ�����f�����OH������k�{��
�ľw��C�Jh��}��~�^W�Jl�^X�������T��a��[�o}�Bp�
+�
,�[
�^H
����
)�
*�\�B�
'�
(�T��(���`�Z�[�[
�^D	��J�[��R�[�_y�_z�������US��
��FC��������f̆-�@�̅n��g��1��2�UT��	�򕈑�������ho��������m��c�x������������^T����^U����^:�^;�^<�^=�^>����������c��d�\��������>������k�z�����w��G��]��^�� ��"���\��`���q+�
�\旟�r�����k,���Ji�Jj�\������������_r!�[�����������fH�����LU����H��H��^Y�� ���^]
�^\
�^Z�^a�^c�^e�^d�`l��F��F��,�-�I�[�[�
w�
z�
{�
y�T���T���T����0�I"�T��䭀�{�I"��\�KD�\��_O�������_P�^j�^k�����F�������H���F�[�T��
��
�d���.��	�������H�^��
��b��
{���l/����(��)�����Ku�n��ӂ����?��.�U�����������~%'�-�.�@������A��~���\���l��j��k��S��T�Z��Z��Z��Z��Z��Z���p����s��������s��\��ăŌ"�e��NC�{�,�������7�NC��K�_Q���_T���KZ�_R���_S���B�B
���������T��
���^��
-:��	�����ߊ=
��5�d�{����"�}a��f��?�?V�������������#��$��:�E{�E|�T��T����<���f6�������䁄�Tω-�h&�����\�����U��V�T҉"�����
���Ŋ%���e���J�����^����^��^�Z�����������q�����-���q����c��q����������M�M �^�	���^���]�
f�
g�������f����M/��f��g�^����^n�^m�[�^��^o‡�^r�^p�^q�s��s��qʂ��s��q˂��q̂��1�2�C���5�sϠ��f����M.��G�s���R����S���C��C��>�T��l�b���$�1�q�B��(��R��������������2���^w�^x�]‡����]‡��^t�^u�
j���h���������O��h�
k����d�����N�`e�.����r�`f�.�����[������$���J��22�����������������[����G�%���J��22������E�����������������������������������������������F��������������T��ra���`���#�x�����:�'áá�_��[�����_���]�_���N�F�#�_��_��]�驃�o�'���9:���̻$��5�������������]��_�9��
�`h�`i�8����9�_m������_n����T�!��/��&���Y
����� '�����	"�������,O���{�b�1%�#��.n���

r��
��$)+?����
��3_
E�
��
��|��ArZ����*�^��<
������v���$U����n$��p��q�O��������O���Ƈ	�_^�__��J����J������LI�s��ρ�z���P��Q�s����z���I�C�����N�
q�
r�C�������ċ �i��"�Bv����C��F�G�������n���t����L�5�B{�6�;�<�I�F����F��F��T�	�-���5���͊_�i�I���EW,��� 3�����F��F��F���I�x��^�F�(���U���f?��v����O�����������C��^ ���Nh�ɅE��5�Zu�^z�^}�^~�^{�^�^��^��T��^�E��6�����C��s���i��j�s��s��s��s��M�M�M��U�d���h��r��W�^��V�d�i����T��)����)�ے`����A���‚Љ‚*:�b��,�����;{�&��)3
*�'~�m���v������������s(�����G������
V���s��s���\ς��Y�T�TR�^��^��\Ђ��������O�A3�^3�T��1������|9�ig�$
)�@��n��s���;�f�}�G���w��x�T��[%���:�_��_��_�_��7�_�������B���L��C��������<�f�|�Gކd�I�s����<�s��T���b�E��t�[�^���^��^��������T����^�����^��\�Š���>��?��@��A�T��Š��\��T��[�K�[ �I�N��N��^'�^)�FW�^���
���^��^��^��^��^��^���W�^��^��^���X�Tʋ��X����*�U���A�q���a��ԃ��
��U�������T�������Tˠ����~�`�Ap��ԃ��0����������n��o�I"�I#������pω�A7�����I1�I2�M1�M2�r��r�
�O��O��I3�I4�����x�G�@�y�e�B|�B��B��B�B}�C�
�C��C��C������y�G�8�N��N��C��������`C��o����������t�Db�O��O���Г��A����O��{�O��w�x�y�z�|�N����N�������N��I8�������zg�@f�����I5�Jx�I6�O��O��C��������J{�J|�`B������ʼne������������I��I�����������������C��C��C��}�~������T���
%���X�ݔ���=�eR������U�(��������`��o���:y�N~�]d�]e�T���r��r��N�J/�^��^��^��^��J0��5�P���6�L��L��r+�T���]�T���L�T��^��Z�^��3����T���"�Y�^��w����^��w����^������q��z�������r%���r&�^��^��]x�]y��r��z����������Z��T��ۂ5�����F�Δǁ�8�f�ؓZ���!C�|��@9�L��L��_H�qł,�r��
�_޳��_��_��^������B�Ε��8�f�5�T
C�x��}�_ڨ��?��+�M�M�M����]������^��]{�]|�^��]�����T��T����r)�r*�Z3�B���������������������r�����]s��y�T���%���@��X��	�����p�������U�+��������_��q���9w�_��_��_��r��^��/�f�����T�	�ו��������n��/����#�T��On�Oo�T�����T��r.�r/�������^��q�^��p�^��̴S�y/�_���P�o�������N�P�����O������O����������`R����
��Fn�
��I>�I?�`S����I=�O��O��������O��������������������������������`I�
��		���1�Q�&��
��
������
��	��
��
�'�O��`J�������]�O������������Bg�Bh���������������������������O��O������������������������������������`U�������#�K�P�F!�F"�F$�Bi�`V��Q�o���O	�����8�K�^��X�ŗ����Bj�Bl�Bm�Bk�O��O��O�����r��U`C<�������(.�����q�J��!fN)�=�S��J��
��
�]���]��X��X��]��]��]��]��]��]��]��]��X��X��X��X��]��]��]��X��X��X��X��'�S‹�SË�SЃI�ˁ���V�V�]��]��Sъ�$�����]��Sʎ��S̃L���d��d��d��S��Sˎ��SɃK�V�S΃P�S��?�y
�V���[���]��]��]��]Ă�^��^��^��Z��]��Sƌ�V�]��]��]��]��Z��Z��Z��Z��P�&�+a��L
����l�^��ZR�ZS�b��b��UW���UX���P	
�S �x�Y��_�P�P���V;�V<�P�]�_�P
�t�u�Y��P���Yk�Yl�Ym�P���P�c�c �ZP�ZQ�P�P�R3�e��w�PL�PM�V6�V7�P�-�3�V8�V5�3�P&�d/���t�Y��Y��Y��Y��T��T��T��c�c�T��c�c	�c�c�c�c�c�c�Y��Y��Y��Y�
�Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��Y��P)���P?�P>���P3�Y��Y��Y��Y��Y��Y��P'�c/
����PJ�P+�P,�P.�Y��z�c�c�c�c�P%�|	.�P7�Y��P8�PG�P"�PH�P#�P$�P6�z1�Y��Y��Y��PC�PD�Y��Y��Y��P��)x��L
����k�P0�V9�V:�_�_�_
�_	�R�^���^��Y��^��^��^��^��_�_�Y��Y��Y��Y��Y��Y��P�Y��Y��Y��Y��R����Y��Y��Y��UZ�^��^��Y��Y��U��w���Z���Z�PO�PQ�PP�U��w���^��^��SC��X����
�G�j
�O-�}!8�9�K,	����Y
�Y���c��V��V��V��V��V��Z}�Z��T ���T!���bB�Z~�Z���^-�^.�T#��
	�Z��U������Z��U������e�Z��Zt���U��U��T��w�Z�Zu�bQ�bR�T���Z��Z��Z��Z��SF�=6�*		�J��<�^<�X��^=�X�	�X��X��X��Z����Z��be�b_�X������C�Z����^C�T��=�����!�T��>�I�"�bW�T��T��P��Q	�����2�Z����Z����Z��bV�X�H�$�U��V	�4�U��U��U��T��>�O�'�bk�bl�bm�^R�T(m�灓���2-	?�‚���T*�J��V&�$�V'�U�T)k����
���3)��Y�T,�T-�^u�^v�T������k�Zs�T��T��T��J�V)�V*�^S�^T�Zv�^U�^V�b;�Zw�Zx�RLJ7�Y�X��X��Y�M�^O���Y�K���P��^Q�^^�^`�^a�^_�SD��	P
����
�D�m	�\-��

G)�
�J,��Y�Z��Z��Z��Z��Y�n�1�Y�Z��Z��Z|�T����Z{�U��х	�^g�^h�U��U��bt�Z��Z��P�2
_����s�j���~6G�
��#��V��		�V���V��V��V!���Y�^n�V�Z��Z��V��T��%�|���^o�U�_��O����T��O����T��T��P�>�d
�p����	���V��V��V���V��SG��Y�Y�Y�c��c��V��V��V��V��V��Y�Y�V��p���V��p�Z��Z��^j�^\�^]�^Y�^Z�T��bI�bP�T��T��T��T��T��T��T��U����V�Y(�Y'�V�P��P��W_�`"�`#�Q�Q�Yd�Ye�Yg�Yh�PS,
d5��
�,B��?BP����-����)�#$((��
����D���b��_��_��W�
�-�^��^��["	�[-�W��W�
�W
�
�W�c��c��c��c��cf�ci�ch�cg�cj�ck�Yb�V��T��Z���]�]�_��_��Q-�T��T��_G�Q.�Q/�_H�T��Y���]�]�]�Q0�_b~��_c~�S�P���������_��_��_��_��_��_��_��`�`
�`�`�U��������V��V��z�������[1�[2�`��`��[4�Q3�V�j���N��L�_�V̉V�V��U�V��E�V��C�P��?�V��	�V��V��P��V҉S�V��C�V��B�VӉS�VԉS�VՉS�S�ʅY����U^���w���S�X��X��WI�WJ�Z…��Z����[&�WW�y���_��_��_��_��_��_��_��PU6%Q�����q�N	�'�
�L��WI���_��_��_��Q4�Q5�P��`��a�P��[�PW���PY�PX�Q�Q�W�W�W�W�PVZQ��i���M� ��$�g��S�S���N�9��V��R"�4�'�V��V��V��V��V��V�	��Q�T�'�_S'���Yc�G�_T&���P�}�?�̉E�_��_��_��_��`�`�WQ�WR�P����/���Q�Q�Q�Q
�[�P�����
��P�����P����C�cZ�c[�c\�c^�cd�Z5���cc�PT,X��	������>BP��&��(����(�2��

)
��
��Y*:
��W)�e�c#�c$�^~�Y@�YC�YD�YE�YA�YG�YH�S�-�YI�YJ�YK�Y?���YL�YM�YO�YP�e�c��c��W�W �W!�W"�W�W&�W'�W
�W�W�W�T��Y8���_q�_s�_t�_r�d��d��d��Y9�`��d��d��T��T��YQ�YR�S5�V��V��S6�d��d��d��d��e�e�e�e�d��d��d��d��d��e�e	�e
�S�؂ƃ��j�قE
�aa�_��ab�ad�T��Q7�ꃒ�N�B�Tj��M���T��T��T��T��`�`�`�`�bʃ �_v�_w�WU�T������d��`�`�T��l�T��l�d��V��V��X��X��X��P�v<��.C7��	-�
��f��9:=��
����O���_6�_B�_C�P��P��P��E�X��V��V��W<���W@�W*�W=	�W;�WB�W+�W,�W-�W/�W1�W0�W6�W5�W4�W.�W2�X��VP����q�P��T���VU�x�V_�u�VV�v�VW�{�V\�V]�P�P>�!�����ރV	�������P��P��P��]3
�P����].
�]+
�],
�P��C��X��P����P����P����]5�]6�P����P��P��P��~�`�`�P����W]�WZ�S�c��c��c��W[�S�P��P��[B�Q8�E�_}�Q1	���Q?�Q@�V��q[`�_?�_@�VS�VT�V����pX_�Q2	�Q>�U��O��9�(�P��P��Q+��U�[s�C

��	���Á�8
�[T�[U�`K�`L�c��c��c��c��c��b��b��b��[H�[V�[W�[I�`:�`;�[N
�넀�[K�[h�[i�[O
�d�b��W��ˊY�W��ˊY�`M�`O�`H�`I�`P�[`���[a�[b�[c�Q��U�[s�C��
����8	�T��T��T��b��[R���{�	�[n�[o�[p�[l���}�[m�[e��r��[u�`T�`V�`W�`U�[t�b��[f��w�[v�O��L&"?���σ"��+��	���U��Qf�	�I�Qi�[�
�?�c��c��Qk�Ql�[��?�[��c��c��Qj�"�[��Qa�Qb�Qc�Qd�Qe�[��c��Q{��W�Q|�]�c��Qp�Qq�[��T�c��c��QU��̄y�Qs�Qt�QY�Q\�Q[�QZ�Qv�QV����Qw�k�Qx�k�QW
���`^�`_�[y�[z�QLc����[��[��T��T��QM�~��1�d�Q��Q��%�Q��Q��Q��Q��Q���Q���[��[��Q��Q�
� M�\��;��E���W��[��c��c��c��c��c��c��Q��1O�A;�*�C���c��c�
�c��c��Q��X�c��c��c��Q���,�Q��Q��Q��[��Q��Q�
���Q��Q��Q��W��Q��Q��W��Q�	��(�Q��Q��d�d
�d�d�Q��Q��[��Q��$��Q��Q��Q��"�"�[�#�Q��[��[��Q��Q��Q��	��d�d�Q���1�Q��Q��Q���?�&�[��[��[��[��[��[��[��d�d�d�Q��Q��d�Q���@�[��[��W��@�O��L)#;���̃$��*�����[��QG�QH�[��[��QO�QP�QQ�QS�Q����[��{�[��z�Q~0���O�[��[��[��Vp�[��[��[��[��[��[��W��W��[��Q�	�[��[��[��[��[��[��[��[��[��[��[��Q��[���O�������u����6!
3�,����'

0$��!�aA

r+���Z��p'�R��R��R��R��\7�\8�^��U��Vo�O��\;�\��\��\��Ra�m)Y���+-�.�>�W�	U�W��W��W��W��W��W��W��W��W��W��`��\}�`��`��\���`��X�����X�����`��Rh�K�`��`��`��dV�dW�Rf�da�db�Ro���Rp��Rr�Rk�u�`&�`'�`��`��`��[����[��Ri�Rj�\�\�Rl�`�?�`��`��R��Rm�\��`��`��Rn�R���#�V�G�`��R����4
�R��`��`��\{�`��\|�`��`��R��R��`��Rb�[�(X*��5�-�<�`��`��W����	�Q䁧��`�G�`��`��`��Q��`�I�`��`��`��Rs��'�h�C�`��`��Rt�`�4�`��\��Ru�Rw�`��`��`��`��`��`��`��d]�d^�`��`��`��`��`��d_�`��Rx�J�R}�R~�`��`��Q����`��`��Q��R{�Ry�R��`��`�á'�X�?Z�ׂ��\��\��R��\��R����`r�X�OX���`o�\��UŇ`/��\<�\=�\&N�\'M�T��T��U�,��=�%(�Q�W��W��U�+���a&�P���W��W��W��W��W��W��W��W��W��W��\-�\ -�W�4�5�\X�\Y�\Z�W��?&�\,�\+�\1�\0�\/�\-	�\Q�\2�\3�\4�Q�
p�Ӂ�����6
3�,����''

0	��+�]=q+����84�)'�Q��R��R��d`�Q��Q��Q��`y�`z�\G�\H�2�`~�`�Q����X��
�\��R��X�Q�
�܃$��	���\�T4�Q��΃/�z8%�J�\k�\l�\o�`��R��Q��u	0�\m�\n�\��\��d#�d$�Q��A�|
��B

��5Z��4�2	�\
�\�@�\	�@�\�W��R�R�R	�W��R�W��R�R�R�R�d)�W��d*�\�7�\�7�W����R#�R$�R�R�R�R�����R �R�R�R�U�B�R&�R)�R'�R(�R.���R/�R+�R-�Rm�A������R7�R8�Rl�H�������`h�`i�R5�R6�R:�R;�TC�R>�TQ�TR�TI�R<�	�R=��TB	�TG�R?��TV�TW�R@��TZ�T[�Q�,�
�t��?

��
~�G�P�RD�\�\�RE�RL�RF�RG�RS�RT�RN�RR�RP�RU�RV�\�RB�`�RY�RZ�\�\�RC�Q����R]�R[�R\�\���\��\��\�\���\���T5��
�d1�d2�^��^��T<��	
�T=��	�d6�d7�d>�[��[��T>�T?�d?�d@�T6��
�Q��Q��T7���d0�dC�R��M�8�R��M�8�R��R��R�#���[$���(#���΂��R��R��U��U��U��U��X8���df�dg�X9�R��\��R��R��R���R��X&�X*�X'�\��\��R�����2*�����R�����U+�\��\��\��\��b��X=�XC�R��R��R��R��R��X>�X?�X@�XA�XB�\�$�R��R��\�&�\�&�\�#�X:�X;�R�
���S��
�
"�����|	�\��Wx�\��]�]�Wy�]�]�\��\��]�]	�\��\��R�F���U-���R����q� �R��21�]
�]
�]�]�R��aZ�a[�a\�a_�]�]�\��\��R����A&���-.�R��R��XF�XG�XE���XI���R��R��X2�X3�X4�X5�R��R��R��R��D���X%�XK�X#�R��R��b��\��1�R�oi���с��t�ۂ?�H���d~�O��m��Tj�O��m��Ti�R�J�R��Q �
�A���~�l�V��Tmk�����T��T��T��T��Tok���	�Tp�Tq��a��a��Tr�Ts�R�I�'i�r���T���?
����S9�b�V��Ty�Q���;�����_
�d��S*�O�d��d��S�8�.�S)�Td�Te�T_�T`�S;����� �a��a��SH�SJ�SI�SK�SQ�SO�SM�SL�S<�����O�Y����������4".	C<
m
����))
��.��F��/��lq��@r #[I%
*o��{�:��Xj�VM�VN�Xk�X_�U��f�U��e�a��XW���XX���XY�XZ�X`�c;�b�b
�SZ���S[�S\�S^�U��U��d��SS�ST�SX��.�SY�UO�����a-�UP����c���a��a��UI���]g�]i�]Z�][�P|��1��hl���g
����uz�����b��b��b��Xs���P}�yG6�hh���i�����uu����Z�Z�UL������R���R��Xr�����c(�cB�Z�Z�Z�Z!�Z�Z�R��R��]\�]b�b��P\����]^�U=�?�W~�W��W��U>�=�U;�U<�P`��Pg�Pc�Pb�Pa�W��W��Pd�Pe�P[���A����
�R
�񁖄K�/�ǂ�u	I�l��x�Q#�S���S���d��d��d��P{�̓#�#����l�a<�Wk�"�Wm�P]�"�^`���v�
�@�	����d��C�c�d��d��d��^��^��S��]d�]��)�]��]��]��S�������S��S����Ӆ
	��]s�]r�S��]y�.�S��S�����	���o�c8��]t�]x�]}�@�d��d��]~�D�]�D�d��d��d��X��5�X��d��d��Pi��S�)�v�����hX�b�Sc�Sd�d��S|��;�S}���S��c2�c3�V�d��Pn�Po�Pk�Pl�b#�b$�Ph�P�����-�3p�B�UR�UU�P��؅��P�	P����F
�U
���&���l��m���򁔂+S	I�����M�Vd���Ve�G�^�X��T���T�^�Um�X��X��P��T�c��T	�Z��T
�Uk�T���Z��Z��a��a��cu�cv�X��X��Pԅ��
�C���^$�^%�^&�S��S��_��_��]��]��cx�cy�cz�c|�PՃ胬��2���]��]��]��S��^(�^)�]��]��]��]��]��]��^+�^,�P�G�,��	�Z��P��^�^�^�^�^�_�^�P�������	�X��^�Y�P��^�S�U�4�χ|r�T�a��a��a��c�X��X��]��]��W��W��P��2��=��K>����L�������$����+s���7�Up�Uq�T�T�Z����Z��Zj�Zk�Zl�Zm���Zn�P�
�3��-�K@
��Rn����������+���F�S����χ��d��d��S��S��S�-����S��S��S능�S슥�X��Z��Z��[�X��X��X��X��R
�%���S��S��ct�P�NJ遄�]��S��]��]��P�����u�]��]��]��]��]��]��S��]��S����W��W��P���8�ņ[�%�S�8���~�]��]��]��S����Q�$���]��]��]��P���P��]��]��]��]��]�P�]��]��a��a��P�E����_
�́�
��
��}|��&G
�������'
GE	�����M�[�[	�[
�[�[�co�T�T�a��a��a��S�)����$�S��E��n�����I�_��^����S�����T�T�P��<���[��a�����ƃ�.���_�T�d��d��X�	�X��T�X-���s�cs�S��S��S��S��S��S��S��U����q�U����p�[�[�Pƒ�I�����b2�P��o�Uy���o�Uz���n�S�J���P�L����P��P��P��P��P��P��P��P��P��P�L���P��P��V��&���T��b��b��b��b��b��b��^��^��U7�U8�b��b��b��b��b��V��V��b��Y3�Y4�T��T��b��b��b��b��b��V��������b��V���V��b��Y7�R�k/�ˁ�82���p�����Q�G(�Z+�U0�U1�S��S��Pt�d��Pu�Pv�R���0�ˁ�C*��Ĉ�>�)�J�_L�_M�Z(�Xd���b�R���/������*�)�r�d��Xc���Si�VB�VD�VE�VG�VI�Pw�Px�Py�VJ�R�j.����6(���p���݂G&�Pr�d��Sj2�ˁ�85���Z,)�Z-)�Wn�X��X��T�)�!�U�U�U�U�e,�e*�e&�e'�e(�e)�e��e��b��>�e�bރW�b��b��b��b��b��b��b��T��f�e<�e?�eA�eL�eM�eD�eB�eH�eI�eK�eE�eF�eC�U�0�U�0�e@�P���b��bڃ��ep�e8�P�42�e^	�e`�ea�ei�ej�ec�ed�e_	�eb�eQ�eS�eY�eZ�e\�e]�eR�eT�U-�U	,�ex�e|�e}�e��e��e��e��e��T�)�U�ey�e��e��e��e��e��T�)�T�%��e��e��e�e�e��e��e��e��e��e��e��e��e��e��U�	�e��e��e��e��e/�e0�U
��ev�ew�U�U�e!�e$�e%�e"�e��H��0�&�aEE�	������6�*�P�2��Q�X��W�������n0��	S�B�3�@	�7‡‡‡	‡
‡‡‡‡‡�}Nj��}��}�ˆL�}��w��w�‡‡ˆT‡�w�‡%‡'‡!‡"�}͊W�}��}��v^�v_‡(�w��w��o��o��o��o��o��o��w�#�n�w��w��w��w��w��w��w��w�#�jˆRˆWˆXˆUˆV�p���y‡‡‡‡ €��y‡€��n1��Q�>�Q���5	��w��w��o�‡*�o�Œ�‡,�$�r��8�g�w��w��w��w��w��w��w��w��w��w��w�ˆE�w��J�w��w��r��7�w��w��w��w�‡+ˆFˆ[ˆ\ˆ_�w��w��w��w��w��v`���w��q!T��7�a�qx�qy�r��r��r��r��le�e������lb�lc�e����� �l^���l]���l\��!"�lZ*+,�q{���q|�q~ˆ�ˆ��q"S��(�K:;�q}��+��…�…�…�>…�…�…�?�f��_�la�6�<�9�f�!	
>����ˆd
ˆfˆe	ˆc
ˆi	†_†`�g�_�V��†P†N†O�}����n`�U��†R†S†T†U†V†W†Y†Z�nc���na���%�ni�nb���q-�q.�q0�q1�xd��†>†?ˆsˆt�xe��†[†\†]†^�nm�`���:���9��ˆ��nn�`�����9��Œ�Œ��f��d�p��p��xc�g�҇��lX�6�>�� �	
��†K†L�g���u��u��u��u��z��p�0�9��‚�M†d�&†e�&�q6�����g��g�‚)�g��g�‚*‚,�g؛W�g��g��g�‚�q3�q4‚�Y	‚#�Y‚$�U‚%�Y‚&�X‚�Y�g��gង�q2‚2‚3�g��g��g��g��g��g��g��g��xk���g➀�g��g��g���g��g��g��g��e�`��=

����%!yJ��0;Kv��Y���a*��f*��/g�����׃�66	����e��sn�e��q��q��q��q��mH�C����/�e��e��s��s��h�����h��e��e��eߌ��e��e��f�C����/�s��s��s��s��h�������ɂ��h����q��q��s��s��h����s��s��s��s��s��s��s��q��q��h������T�fU���fV���q��q��mq�mr�z��z��mg�mh‰��s��s��eʂ`{��7�q��q��q��q��g,���qς��g-�q��q��g2�q��q��q��f���f���q��e��_	s��7�g1ˆ��q��q��f�f�e؂\�]�
�S�u���s��s��s��r�r�h����h����q�^�q�^�q��s��s��s��s��s��q��fM�dž���b���g�g�g����b���q��q��s��s��s��s��q��q��q��q��eٌ��
�S�t���e��q��q��x��s��s��eƌ��enj��f��q�s��s��r�f��fN�f��f��fO�h����<��g?�P�V���s��s��f��f��r�r	�q���q���fP���fQ���g@�O�V���gB�fE�u��%���&Y
"��"��ć�����y��U‰�V�g��g��g��g��g��g��g��g��g��g��g��g��g��fC�u�A�fD�u�A�g����I�g��g��g��g��	��J�l�	�l�	�l�	�l��l��l��lÆI�M�r
�g��r�r�g��fH���0���gG�gH�gI�gF�gC�gD�gE�q��z��z��f=

�u��%���%Y	�;N"����o��gS�gT�g��g��f>���z���g��gQ�gR�g�V�5�gu�gv�gW�gX�gY�g��g��u��u��u��gx�gy�r�r�g{�g�g��g

�|�g\�g[�g}�g~�gc�gd�gb�ga�g`�g]�g^�gf4�gg3�gt�fI�fJ�gM���gO�l��gN�g����8���s��s��g��
��7���s��s��s��fW�T�����tg!�2M�l��l��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��f_�f`�y�y�y�y�f��y��f���y#�y'�y!�y"�y$�y%�y)�y*�g$���g%���fs���ft���y+�y,�yt�y/�fv���y��y��y�y��fu���y.�y��y��y��y��y�y �y��y��yE�yF�yG�u��y3�y4�x��x��x��x��x��x��fw�fx�q��J�fo���fp���y1�y2�q��x����x����x��fg�x��x��fh�y;�y<�y=�y>�yA�y?�y@�y5�y6�y:�x��yˆ��fi���x��fj���x��x��ff���x��f?���yP�f|�y�y�y�y�y
�y�f}�yT�fy�fz�u�l�f{�f@���yQ�yR�r:���fX���yr�ys�yt�yu�yo�f~�f��yq�yW�yY�yZ�y]�y\�yX�yh�yi�x��x��fY���yb�yk�yl�ye�yf�y^�ya�y_�yc�f����e�������6��x��x��e��yH�yJ�yI�yK�f��x��x��e�������?
�1�yL�yM�z��y�y��y��z��y}�yz�y{�y~�y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��x��x��x��x��x��y��y��f^-�!���tg�Ӄ������fc�}�fd�}�fe�}�y��y��y��y��y��y��y��y��y��y��f��-�y��f��.�y��y��y��y��y��y��y��y��x���x��x����f��y��f��:�y��f��@�y��f��y��y��y��y�
�y��y��y��y��y��y��y��y�y�y�g�X���*���y��y��z��fl�fm�q�z��y�h��h��h��z��z��g�X����*���y���y�y��y��h��fn�h��y��y��y��y��y��y��y��x��x��z��x��x��z��x��x��x��x��u��u��x��x��l������c�l������c�e�_>:=
��	��%yF���p��;����^��!�;%)�?Me#��]	�������[
W	��
��€�ˆ��fL�xI�xD�h����xF�xG�xJ�p���p��p��p��p��p��p��p��p��p��p��p��p��p��q�q�q
�mu�mv�mw�mx�p�	�p��p�	�p��p�
�p�
�g	�i���ߏ�o�g
�g
���P�g€��s��s��g�����p0���6��m�nr�ns�g��nu�nv�lh�h�4�]`���%v��h��J�h�€��sҎ�s��s��g7�g8�sӎ�g9�g:�g;�g<�g=�h��F�D��7�s��h���h��q�q�q�s��s��g�|&��j
���4W�8���l��u�s��s��mX�mU�mV�mW�q��q��g�g�g�mO�e������e������e��e��e��e���e���mK�;�=�e��	�e��q�	�e���e���mL�:�=�mc�md�e��e���m��m��g�����b
���4�����g!�mY�q��q�‚
‚�g#�z�q�‰v‰w�hČ�hŌ�p��h��h��p��g.�g/���p��s��s��s�‰s‰t�s��s��g����b��v��z��z��g����b�g�*��4#),
��
������2!�݃��#
PV��U6%%�I����j
���i�i	�{��i��i��i��h������h�h	��h
�h�h�����i��i��i��i��h�h�h�h�t�t �m��m��‰�‰��h������h�h�h
�t���i=�i:�i;�i7���i8���t����iG�iH�iK�iL�tC@���tD�tE�tH�{��{��{��{��iT�iQ�iR�iߋm8�iU�iX�iV�iW�t��tB�t������i>�i?�iA�{���{	‚��t��B�t�‚�‚��h�5��F�����{|�{��	‚��i �i!‚�‚�‚�‚��{���i��i��{K�{L�{H�{I�iq��L�6�ix�it�ij�ik�il�im�in�io�ir��H�6�{F�i"�i#�iu�iv�iw‰��{��{��z��e���X5��.���{S�{T�e��{C�h��h��h������a‰�‰�‰�‰��h����{��{�‰��{V�{W�{P�{Q�{Y�h�m���h�{��{��{��{��tR�i�‰��{��{��h!�۔��h"���{}�{~�{�{��i�
�i��h����H�{��{��h���G�h�D
6����y:"���
����62�az#�M���{��{��{��t�͉���t�{n�{o�{p�t�[�{��t�Z�t���t�i~�1�i����{j�{f�{g�{h�{i�i��:�{��i}�i��i��i��{l;�{��h�(
1������:	������+��%�M���i��i��m��m��iD����t�t�h'�Ё����:�����i��i��i{���:���t1�t
�t�t�t�t�t�t	�t�t
�t�iE�i��i��i��tn�to�{��{��i��i��i��{��h��h��h��h��i��@�z��{��{uE�h�����i��i��i‰�‰��h��n�["���{��t4���t;�t7�t6�����t5‚u‚v�t8�t9�i��i��g�*
��#	&
��
������2�����#

O	C�N5!
�I����j	���{��{�‚�‚�(��‚���{��{�‚��{��{��t>�I�t?�I�h�r���8�ie�if�ih�r@�i�{�χ��{���f���f���‚�‚�‚�‚�‚�‚��h
�m
�����K�����wd�I?\����	‰�Š�Š�Š�‰�‰�‰�‚��;‚��:�i(�USŠŠ%ŠŠ�Š�Š��i%Š&��Š'Š�i,�SŠ(Š)Š*Š+�i-�fŠ Š!Š"Š$Š��i)�SS�veŠ�ŠŠ�Š�‚Š�Š�Š-�tXŠŠ	ŠŠŠŠŠŠŠŠŠ�tYŠ
ŠŠ‰��{����{��t[���hڢ�h��h��h�‰��h��i4�i5Š,Š8Š9Š;Š?Š<Š=Š.Š3Š/Š0Š1Š2�z�JŠ5Š6�rEŠBŠCŠGŠHŠI�z��h��rFŠ@‰�fŠA�i/���YP�f���[����<�{��{��t{ŠQŠR�t�i����o����7��<�z�"���{�{�i0���{�{�i1��ŠL‰�gŠNŠOŠXŠ\!ŠpŠqŠrŠeŠlŠfŠgŠtŠxŠyŠzŠuŠvŠ�Š`Š{Š|Š}ŠcŠZŠ[ŠdŠaŠ]'Š�Š^Š�‰灬Š�Š�Š�Š�ŠTŠ�Š�Š�ŠS�h֢�h��hעŠW�t+���{�tb�tc�te�tf�tg‚��;Š��i��h�{�{ �{�{�{	�{$�{#�{
�{'�h�����;�h��i��i��i��h��h��iܒ�i�Š��{-�{.�h����&�K����	qc�|
R��
��(��Š�‰�‰�‰�‰��t^�t_Š��ta‰�‰�‰�Š�Š��i��tZ�iΒ���;�%‰遲‰��i&�i'Š�Š�Š�Š��iËfN���ć�d��Š�Š�Š�ŠŠŠ�ts���tt‰��Š�Š�i��lŠ�Š�Š�Š�Š�Š�{0��Š�Š�Š�Š�Š�‰��z�Š�Š�Š��z�‰�Š�h����k�†8���h猃�k�i���������|�|�{��{��rH�i
�E�i�i��i��i���tP�tN�w…'�{��h�I���W����‰�‰�‰�‰�‰�‰��{5�{6�i���i��‰��h�I���W�����t%�t&�h%�����h&���"�i�8���rK�rL‚�‚�‚�‚�‚�‚�‚�‚��i�i�rJ‚��i�i�i���e��|����
������������P�j�j�i�������Š�Š�Š�Š��t��FŠ�Š�Š��i��i��t��t��t��t��i����k��‚��i��t��t�Š�Š��t��Š�Š�Š�Š��|�|�|�j�|�j
���|
�j�j�j	�j
�|�|�|�|�|�i��i��i��i��i��j�i����i����i��m��m��h)��&�����h*��&��‹|‹}††�t��dƒƒƒ	‚�‚�‚�‚��h1�e�b	ƒƒƒ�j�jŠ��j�����t��t��t��t��t��t��t��m���t��t��t��t��t��t�‹�‹��t��t��t��j���	����t��t�	�t��t�
�t�
‹��j�˗�t��tҗ�h.���}3����
������
�G�t��t��|�m��m��h+�DŽ��������t��x�|�h,�i�)�����j�j�����j�����h4��xTc)�#�ȁ�
�������;(��
���:��Pg�^����P���gL�D��„��u}�u~�k�u��u��u„�„�„�„�„{„|„~„�„�|��|����|���ƒmƒ>…-….ƒ��|��|��h8�h9ƒ��|�ƒ��|��h6�h7�j��ہ�„M�k��k��k��k��k��k��k��|��j��N��u"�u#�j��]ˆ„��|�ˆ�k�J�k �k�k!�k�E�k�j��]�}„L�}�k}�j����ky�j����j����h@�hA�j����j����k~�j����j��j���NN‹)‹*‹,‹-�k
�k�k�k�k
�k�k�k�|χ���‹�j$�|�„N„O�|��j!�j鈊�j����kl�km�u��u��j��j��j��j��j��j��k��j"�j��j�D�j��C�j��j.[		"	0bV��c�~]��g�]
�_�|��j4�j5�j1�j2�j3�|�ƒ�ƒ�ƒ��j��j��j)��)�.�\Sƒ�ƒ�ƒ��j-����ƒ�ƒ�ƒ��uC�uDƒ��j*���T�\
Gƒ�ƒ��j+��
��K+ƒ�ƒ��j��j��j��|��j7�j8�kJ�|��|��|��8ƒ�ƒ�ƒ�ƒ�ƒ�„�jG��I:�����R9����jh�ji�jKoI9�2�R�-��j��kK�����kL���j�C����jޚ+„
„�j��*„�p��p��j?�Vƒ��j@�jA�jB„„„„„�k	�w���h:�j<��C���j>���k
�kƒ��k�xhƒ�ƒ�ƒ��j/
	[	,bV��B�~]m��g	�VƒGƒH�l����jȚ��}L�}M„��j6���G�؈7�j��j��p��p��p��p�ƒ��j��j�ƒ�ƒ�ƒ�ƒ�ƒ��jD�jEƒ�ƒ��j�lƒ�ƒ��k'#���V�L��„„„„�k��k��kR�̐„ „!„1�u�„%„$„#„'„/�hI�L„„„„�hP�hJ��kU�hC�&�hD�*�k(%���E�h���L���kQ�|����Ղ(�}#�…>„„„�}<��…9�hQ�i���Ï�„�jL�-�]�cƒ�ƒ�ƒ�ƒ�„C„E„Dƒfƒwƒx�|㇄�|��|؈g„B�|�^�|��|��|��|��|��|��|��|��|��uO�ρ�h€�@„6€�€��<�uP�ρ�h…�,……………�'„;�jM��	�B�|��|�	�hR���hS�|�
�|�
€�€��j#�cj�<��k��k�i�<��k��k��k��jN�"����Ik8�҅-���r_�ra�rd�r`„F„G�u;�u<„H„I�u>�u?�u1�re�rf�rg�ri�u4�u5�u6�k-�jO�!��
����7����†„�†�t�H�$�u7† †!�t�P�#�u8�}3�k1�#�k3�k2„P„Q�}%�/
„\„Y
„W	„_„^„a„b�k5�k4�k<�k>�k?�k=�k8�kC�k7�k6�k9�k:„k„l�jQ�jR�uR�uQ�uS�j��j��k��k��hU���`���S��„�„��uX�k���Ђ3�|y�|z�|{�||�|~�|�|l���|r�|q�|p�|m�|nƒ<�k��E�k��^���S�����kc�kd�kf�kg�kb���9��|.��}C�}D�k��k��h5��5NP	[
��ȁ��lD 9���,g0	*�|��:��P!/��.d#��
����0���k��k��k��k����}O�|�=v�}z„�„�„�…C…D�k��k��uA���}�}�}Q�}R�hX�m�hY�k��k�ƒ�„tƒ��|5�|6„u�jd�@�>�]�숄��„��t�]�je�@��������„�„��jf���jg��‹$‹%‹&‹'�h\�h]�k��ul�um�}�un�uo�jT�D�ԃpn6���B�{���`0�j%�h_�5�ƃ��V`w#)��h�
������„vƒ3ƒ5ƒ6ƒ4�}.�#�}/�"…S�ud��K�}X�}Z�}[�}\�}�hb�hh�hc�hd�|����|��+„��}�}�}���„�„�„�„�„��ue���uh�ug�uf�ui���uj���}��}��h`�4�v'�P�����ƒ7ƒ8�uq�|��|��|��ur�u]�u^ƒ�ƒ��}:„w„x„yƒ�ƒ��jUM��K��� ��T4��
��

	�~�*	_�%<%��
„��kE�|H�j��V�j�‡�‡�‹�kF‡�‡��|O�|Q�|S�|P„�„��k������ց�„�„�„�„�„�„�„��k���k���u�u
�u�u�u�k��k��}`�^�|B„��jk�,
�:x���j��j��t��t��u�t��j������<�j������<�k��k��jl�,	�8�Y���|V�ut�j����j����S�|Y�uu�uw�uv�k��uy�uz�u{�k��k��u|��rq�}��}��j Q��j�jt�js�jr„�„��e�����@�I�5�"��F��	�hl�hk„�„�„�„�„�„�‹	�|C�|D�hq�Z�hs�Y�>�ht‡�‡�‡��e�������4�>��@��
„��_„��^„��}�‡�‡�„��hm‡�‡�„�„��hv��„�„��hw�j��/��D�Ljt‹
�u��j��j��j��d�j��cƒN„�„��ju'�����x���j�^�jv�����k��k��k���D ��-%ƒOƒP�|��|��|����|����|�
�|�
�p����<��[�„�g„�g�|1�%\�jVP�

�Ձ����@4��
��
	��(NB����|ˉ�|̉„�„�„�„��u�F�u„�„�„�„��k��3�A�t��t��|]������t��g���t��t�ƒVƒW�jx�@�D�O��[ �|d�|J�j|�|K�j}�j~�jy�>�jz�kI�u��j��Â���„�„��j��È���|��|�…U…Y…V…W�jX�jY�j\��.�z������'�|��|�Š���Š���ƒ"ƒ#‹‹�kr�k�����?�₠��/�u�ƒdƒe�u����kq*�����m�����kv�u����j^ƒ�ƒ��|�ƒ��j`�ja�j_�j]������	��!ƒ%ƒ&Š�Š��jZ��ƒ*�j[���h[�u���݆�ƒЁ���„qƒ-ƒ.�j&�݇s�&�su�}��j'�݇s����ƒn�l
�…��-†7�lˆ�…��+�l�����l�l%�l&�l�����xt…��l�l�l"�h�l#�d�u��l�l�W���!�p��p�…��l�Q���l-�Q���l*�a�l+…��l!]<0��s�N���'�}H�Z	�,�I�56@M����%�ƃ�lG�lK�lL�lH�g&�j���l��l��m��m�…�†††…^�g'��g�l7�l8…�+�v(�i�v)…��v9�v:…�…��hz�h{�k�l:���҅����i��l<�m��m��m��m��l=�}��}��}��}��l��l�…��l����|�l��/�l;���ͅ����i���}��m��m��l�S�VO�]!�m�m�m�m �n]…��l�S�}��2�[…�…�…�
��…�…�…���…�…�‹�…���…�…��u�M�s�l���l��v<�p�l�‹�‹��v�l�‹��v8�vE�vG�vH�vI�v=�p�l�		��4��	�^����/%-(����…�‹�†/†0�m��m�m	�l�	

	����	�^7�.$4'����†f†g�vM�m
������m	�m	�����m	�m�m…�…��m9‹�‹�†�}�‹�†�}��l \:0��o�N������
�)�I�^37�)$�ƒ…�…�‹K‹L�l�A�l�A†3†	b†
+7†6�m)����m.��G�{�P�v�v�v†m†n�m/�lB�lC�lE
����
�36�g�����B�u��u��v�v�v�v �v!�m3�m4�m5�lV�ۄ��W ���v�p��p��m2���W��…�…��v"�v#�v$�v&�u��u��u��u��lF��E�����])���B�m8�lR��…�…��m׉y�x�lڑÈ�~�p��p��l��ˆ��m��m���o����n~�vR�vS�n��n��n��n�n��n��n��n��vT�vW�vX�vU�m�G�n{�G�ny�ܖ:�n��e�A
����
��(9�i��E
�~4	=:
~���s��	"��
V�_��:����D��Qc��I
��c
T ���"$p	��ŒO�v��v��v��v��v��v��oW�oZ�oX�oY�vj�~�~ �~�~†�†��~�~^�~[�~\�~]†�†��e��~&�~(�~)�~'�e��vk�o���u܊�~��u��~��n��L�n��o���o�o�~��~��~��~��o����~��~��~��~����~��~����e���0�i�U�kj�)�U���" ��������
�‹�‹�‹�‹��B���K�L�n��t��n��z�
E���	B�vm�ʼn���	
0‹���������‹��~+�~.�~-�~,�~/�~0ŒŒŒŒŒ‹�‹��n����Ď�ŒŒ�n��n��n����n��n��n�‹�‹�‹�‹��vn������;�~_�~`�~a�~b‹��~3��‹�‹�‹�‹�‹�‹�>Œ(Œ)�~g�~i�~h�~j�~k�|�}�~�����n�;���ԉ(�~y�~z�~x�n̈��a�~l�~o�~n�~m�~p�~q�~~�~{�~|�~��~��~�~��~s�~v�~t�~u�~��~��~��~D�~E�~��n�`��‹��~6�~7�n�b��‹��~��~��n�]�>���n�L�?S���~��n퐡�n������n萤�~��~��~;�~<�n�
�h�T���'�T���"
��ˆ6�ˆ7�Œ/�~��~��~��~��~��~�Œ.�~=���~>�v��v��~?�n�&;����3��6e�!��oŒ�P�Q�O�~@�~C�~B�~A‹�‹��~f������ŒŒŒ�n�%������5e�%��k�~d����������Œ:Œ3�������������lk��w���R�����mO���������v��v�Œ@�U�W�Z�VŒAˆ��}��}��}�ˆ�ˆ��}��}��}��}��}�Œ�Œ�Œ��pƗ�^�p���^�lm�k
f�a�����ln�ya�������~I�~J�}����~L�~M�������ll��&�L��g�����ف���N���������u��u��u��m��r|�}؂��s�c�d�e�a�qg��^����]�l�M�0��_��ˆ�ˆ�ˆ�ˆ��v��v��v����n��xx†��h�j�k�n�m�i�v��v��v�	�v��v��v��v�	�v��l
�L�0���]���v��v��o�s�p�q�f5��4�P�8&���b����>	��u��?�}��}��}��}��}��}��}��}��}��9�=�>�<�:�;�nو��v��v��nڈ�Œ
�}��}��u�x�w€�€��v�nۊv�xR�q��u��nރ���n߇��n���n����8%���H�K��[�����vߒM�h~�[/���?�G�E�C�@�A�vy�v{�U�vz�}��}��~��v|�x�h�^/��€z€~€€|€��f6���f7���f9���q�€€€�n�邓|�v��~�~€€�n����	}�����������~��~�~
���~	���n��n�€€€�~�~�~
�~�~�~�~���������������������~�~�~�~�~�~���������n��n�������€���������������v��v��v��v��n���	���r~�V�r�V�~��~��r��Y�׉����r��T�����������r��r��qZ�3��q[�����������������������~��~��n���	�1�&���/�u��u��u��e����Վ:�r��e��������e�����e����e��f�~��n��n��~��e�
	�{
���r��]�������
��
��d
�]
.�O��JWS�s�'�U�,p��$v�v��v��v��F�v��F€���€€�xV€�o�W�o�`��|���j�:��~��~��~��~��o�V�v��v��e���y�0
���ω�P���a	��	�(o'	��o�os�Q�ov�o{�ou�X�ot�X�ow�ox�of���o6�o8�o7�}��}��og�o:�o\��€3�o(
�o*
€6€7�~��~��~��~��o]	���o0/�o"�o#�o$�oa�o10�o_�ob�oc�~����q\�@�o?��o>�\�~���€O�o@�����r�v����v��~����~��~��~��oA�oD�oB�oC�vu���vw€F�e��&�P�^����J/ŒXŒY�e��_�e��e��&�����
�
€K���xX����3�4�6�5�7�8�x]�x[�xY€)�oF���oG�f��e�~��~��~��~��~��~�€R€S�o<�'�o=€U€X€W€V€Y€Zˆ!ˆ$ˆ"ˆ#�f��A�������}܅��}ۃ����}ڃ���€n€o€p€j€k�o5�(�€_€`€^€b€]�oU�oV�l����#)��R�6�߂m2����%��}	�u��u��~��~��~��~��s��F€=�v�€C���~��o+#�o,"�o%J�1�g��o4€"€#�oP���oQ�oj�/���6€!�opŒ^�o.%�o/%ˆ8��oK�oLˆ9�ˆ:�€s��€u€x€y€w€v€tˆ�Œm�~Q�~T�~S�~R�~W�~X�~Z�sx�sy‹�‹��~N���~O‹�‹��n��n��n��n��n��n�"�f����ۅ���J�ÂO���‚M‚N†��f����_�>†��f�������\
0/Y1����h;	u�m��C��
>a��	&OPXJ�Q�wdD	�5�HO��	�����w��w��w��w��w��w�‡`‡d‡a‡b�r����v��v�Œr�r��]�v��v��v��v��v�
�v��v��v��uŒoŒpŒt�r(���r)�y��y�Œ��z†���†����w`�����.�ց�#��������ʅ�����r�F��‰ ‰!�r��V�r�E�r�E�r�D�r�=���z4���r�E‡U�y��w��wb�wc�wd�we�w_�k����"���wg�r�ˉ߂4�Ձ�‡L†�‡F�y��r򎪇�
‡D‡G‡I‡J‡HӅ�ԅ��wh�wj�wk�wi�wl�wm�z?‡y‡z�pL�pM�f��f��f��f���ā��� ���낐@�)��†�†�†�†�†��s�s9���s���w��w��w��s��s!�s"�€���€���€����w�hŒy�w�f��^�w�w�f��]�o���!�o����6‡]�sE�sF�sG�f�������9�� �4?���f��f��f��f��f��s��k�ǂ��s.�o����s*�{��€��s��l�����s(�{���s+�{�s,�z�n$���]������>k� �]��3&K�m���zK�zL�p�z�z�z�r��ZP�z�w!�r����w�w��‰‰�p�����w7�w8�w9�z�w0�w1�w2�w3�r,�����w;�w<�z
�w>�w?��z�z�z�z�z�z�z�f��ɃN�5��(�2�u�f��w�w�f��p����f���5��D�w�w�h�����zD�
�
�
�
�
�
����sb�n%��X8\�������>
v
��]~3&O�l���z!�z#�z$�r�I���wA�wBŒ��w)�w(�z�r��K�.�kŒ�Œ��r����w$�w%�n&�ރ��4����X~���q��	Œ��z%�͋��z&�p�1�)�������f)�_�����`������wD�wI�wJ�wE�z(�z)�z*�����fҊ4�����!�����f����>�f��f��f����&�#‡��wO�wR�wP�wQ‡�‡��wS�wW�wT�wU�wZ�wY�wX�f����y��f����n*�n)�w��f����#�"�fǑ��f����sX�zM�sY�zN�o��wM�wN�o��f�&�����
��K��"A>�ₛ����PZ)��(��ąB�n<�n=�g��g��g��g����s��g��g��nI�B���nJ�B�nD���g��nE�g���#���f��f��f�(�����
��K�?G"?>�ބ�������g�r(��ā���Œ����nM�O�fوi�[�
���j���=���n.�e
�n/�s���…�…��f����[�/��+�z�…�…��n?���n�S�6��…��o��o��x+Œ��x,Œ��w��w�Œ�Œ��f���‰*�r��r�‰+�wq�wp�zR�zS�zT��f�/����_������������`�zW�zX�zZ�pI�pJ�x�G�w�b�f��f��p$�p'�p&�p%�p(�p)�w�d�p2���p3�x�x
�x	�x�x�x�o�$����w��w�k�w��p+�p,�w��w�i�w�h�w�i�w��o��o�	����o��o��o��o��o�
�o��o��o��o��o��o��o��oځ�‰,�p-�p.�p/�p0�p1‰-�p4,�A�� �Ё�$���]�o����p6�x�x!�x�p5=�	$�€�€��x�x"�x$�x%�x'�x&�f�
���
��J��������'����Z�p8�p9‹]‡�‹^�f��<D���s���x�x�x�p!X�	�p �p"�b‡}
‡~
�f�g�3����
�U����܂`�po�w��w���pi���^�x*�Y��f劃�+���T�pg����p{�p|�p�p�pj���z�pl�pm�pk��p�p�p�h��4�h��4�f�7���%/�.
0,+(
%����]I*6	�?��9`��	"	FMM)%	.��
P	�L_9
	�)2$�%�,		��‚‚�p�€�€��s_�g��g�Œ�Œ��e��w�S�w�e��z^�z_�x3�f‰3‰7‰8‰5�x4‰0‰1�zo�zp�p;�wr�p<�8�wu�wt�f��y�хd��s1�s3�s2�f��y���c�w�w
�z�w	�zh�p=�pk��6���k�I���f��σ��9<��^���^���wz�wx�wy��g���,�	�s�s
�h�;�s	�zk�zl�zj�L�w{�w��w��w��w����r0�r1�p>‡p‡t‡q‡u‡v‡r�p?�w��f��y�\7���܁����rW����	�uŒ�€�†y�s
���zr�zs�s�e�
�s�h†��sS�sT�o���u�x�}
�w��w��w��s=�Ŗs�sO�sP�sQ�sK�sJ�sI�sL�sM�o��و�"�z��z��z��z��z��z��z��z{�z}�z|�z��f��f��z��z��z��o��و�!�z�z��z��z�׊���s����Œ�Œ��s�������€�€�€��za�zb�zc�zf‹b�f����U�W4e��t��‰�nS�nY�nT�nX�nU�nV�f�����e�1�t��ˆ��\†�‹��pׅƃ��Rˆ�ˆ��pօƃ��Mˆ�ˆ��f)�G�x�����>��V�����e��������q���o��o��o��o��f
�f�f�f�n��n��x��x��x��x��m�,�����	���Z�x��x��o����o��x��x��n���x��x��n���n�n�n(�o�A�����Z�o��x��x��n�n
�n4�Q�o��o��o��o��n�n�f/�0�1�f�d
�������P�%���a���f�f�r��)�r��r��r��f�f�f�f�r�‡8�f#‡=‡>‡?‡A�f(��f$���f �f%���f&���f
�X��%������%�;�����r��r��r��r��r��l��;��f)��
�r��r��f*���r��r��f���j�u��u��"�%�$�#�u��u��f�f��	�u��u��u��u��u��f���r��f�f�n��f���o����������n��e����‹�‹�‹�‹�‹�‹��+�f	)�D
�x�����<��T�����c���������FG�f,�f-‹O‹P�n���o��o��f
�o�@��剫��ā��)�/�f�#�v��o��o��n���q
��I�PY[\]^_abcdeihgkqrZ�xM�xNŒ�Œ�Œ�Œ�Œ�
Œ�Œ�Œ�uvwyxtŒ�Œ�	
Œ�Œ�Œ�Œ�Œ�Œ��q��Œ�Œ��q���q>()�qB�qC�qD�qE !#$�qF���qH
-�q		��E�f40Œ�.Œ�Œ�Œ�534126OKLPNRTUS@BCA
8:;=>?7GHDE�qL�qM�qJ�qK�n�L�!!{�@N1�Q1�����-�ځ�W��P����,��������Nh�C;�)��|%�nœl’܊�œ�’�•�œm•�œnœo�N-�BN	’ފ�’����N.�BN�œ~œœgœ�œ�œ�œ�œhœiœjœk’�}�	��œ_�œ�-/~����œ�œ��Nk�C:��%
����œ`2��œYœtœ[œ\œZœ]œ^�M��M�’�’�œa9œ�œc<œd<œb9œe>œf>œ�œ�ž�ž��M��@���M��,�ق������&	��‘�‘���ȃ���a����
–�–�–�–�”ȃ”�”�”�”�‘��.‘†0��
����–�–�–��“�ك“�–�–�–�–��M��D�
�8��–J–K��6��وA��Žˆ�����$g“�‘�”�g����‘�“�“�“�“��M��@����N
�"���y��*�΃&���M��Iو��,�>–��–�–����N�C��p�M�F�@�"�&6�-�		�Á��u��3��Ž�Ž�Ž�“�Ž�’F’G“�=�M��M�>?�M�CA�l��,-)*+�����e	��/
21	03564�M�CI	�$���ĉ�œœ
$�M�CQ�z�4�ĉ�’��’�’���	����������#<�K��“��M�Eτ��D“��8�^�P���C’�“�"””�M���’�’p’q’r’sŸGŸH’t’u“��M��C��.�g‘M‘N‘P’i’l’v’x’y’w;<’j’m�M��M��M�B �@��&�A,

������w��(��“�“�’�’�’��‘�‘��<���M�@�;�X�D�%��Ž�Ž�•G“�“�“��;�T�h���B•F‘Q‘RŽ�Y��“�Ž�M��M�“���@�t��A’H’I�M����Gs��”�M��B���”�,��•�•�•�•�•�܄�݄����M��H���MA<�@~8�$�rc������,,D

`��5T��^��‘�• �M��M���•!�N�N�N�DV�N�DU”�”����M�‘��M�
�M��M�
�M��N�NW�@Q�2( r�.
Ž�CžžžžŽ�C�N\�N]�N^‘{
���s‘�‘�‘�‘�‘~‘‘�‘�‘|‘o‘t‘v‘x‘u‘y‘p‘qžž”�”��-�Na�C��!e��žž’
‘�"‘�"’’•h�����žžžŽ�Ž�Ž�Ž�ž�NX	�@I��s��(
 p�0’’’ž"ž!ž#����)’’’’	܎Cž �NY�C��"a��#•�•�("�NZ�N[žž%žž“��ŽŽ“�•,�N
�@��
��K
��ʂ,*�&‘�‘�•”�”��••••�N�C��9
���U’’’•�•�žDžE�N�M�e�@�D”��M��M��@�D�M����������������”�”�”�”�”�”����–������–��M��H�E•P”��‘‘‘‘��Z�����‘��‘�M��E �h‘‘�‘�‘�”�”��M��M�E76�@t��!�rj����*,1m��JS���^��•�NU�NV��“�–�–��NT�A����+�����”�Ž򆚁�P“�“�“�”�”��N	�@�@��&I\��\Wz�3�b��	‘[‘^‘c‘_‘a‘\‘d‘e‘]‘g‘h‘iŽ�’Ž��5’•WŽ�O•"�N	�DK�ڂ�•4———•0�N	�@��&��Ž‘‘‘‘‘�.‘�N�A���%	B��v����Ž�Ž��/Ž�Ž�Ž�‘U���M��M��N�N �y�M�H�‘�‘�‘�‘���‘X‘Y‘�‘�•/‘���‘�‘���‘�‘�‘����*��ŽŽ	”�”���H�^�MMlD�@����Q�� �I
)��’’ žXžYžV‘�‘�‘����ž_žZž[ž`ž^ž]žcžd�NF�F��NI�NJ�NH�NL‘Ӎ��NG�D�
’%’&Ž�
’#
’"’)�c�MPlD�@���ӂ{–��M�”�M—Z”	�R•�–��_�MMi)�@}���S�� �D	)�‘��b��‘��a���b�`�MOiD�@����NE‘�Ž‘΍�žfžg�e��*�����:��‘I��””�z���	R�)�
d;���V��Ž�o��)Ž�oŽ%����ŽŽ%��•�•�žu•�ž�•뉒Ž=����ž|Ž>�@ž�žvžwžpžržsžqžoŽ<����	ž�ž�•�•žj‘�‘�žkŽ��Ž’.�~��6����Ž‘�‘�‘��� ””œ�|Ž+��	œœŽ,œ$Ž-œœœœœœœ%œ&œ'Ž.�������ς�g�������ʥ—d—f—e—g��!��"—k—m��(—l������ς�g���k�}����ž�—n��—u—w—vœ9œ:—q��—p����—oœ;œ<—r—sŽ/Ž0‘�‘�‘�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�ž�•�ž�•���ž�ž�ž��{���	`�)�m;��3�$Ž6ž�ž�Ž7ž�ž�ž�ž�Ž9Ž:‘�Ž&�Љi��•�œ?œ@œA‘ۆ�������œEŽ	Ž#Ž*Ž!ŽŽ'�Ї��n•�‘�‘�‘�‘��‘�‘�’/’0�M����@B-�����:�����K2��?����E–E™™™š�—��o™���™�™���–F™���™�ŽeŽf—ȃb—��a—�—�—�—�—̃a—̓a™�™�—փ\š0—Ճ\—�—�—�—�—�—��x—�—�—�—��x™�™�™�™	�—ǃb—�—�—�—�Žg—�Žh–:™���™�ŽkŽl™��˜\�=˜]˜��8˜��8˜��`�؁�˜��`˜��5—�—��i—��i˜��.˜��3™��™���˜��N��™��™�˜�˜�˜�˜�˜�˜�•�™��™�˜��.˜��-˜�˜�˜�˜�˜��)˜�˜�™Ԃ�˜t�™�˜u�8™�™��˜��8˜��)–;˜��U������˜��8˜��o�ɂ
˜��8™�™�™��ׁ���™�™�™�™�™�™�™4��™5��”š�˜��$˜�˜�˜�˜��&˜�˜��&™��™���˜�˜�ŽG-�Ʉ҂Ѓ�—�—�˜%˜&˜'˜m˜n�5˜o�5š�˜��%˜�˜��
š3š�—�^—�^—؃\—�]—�]šw—�^—�^—�šG—�—�_—��^˜(�Q—��\—�—��Z—��Y—��Y—�•�•�—��XŽiŽj—�—��Z—��Z—��F—�—�\—�\—�]—�]—�ŽV��›�˜˜˜˜˜š]š^š_š`šbšcšd˜�V˜	˜˜
˜Wš�šŽW��˜˜
�Y™™™™—ك\˜�X˜�˜�˜�V˜�X˜�X˜�W˜�V˜˜�V˜�V˜�V˜�˜�T˜�S—�™
�™—�—�—�—�Žm˜!�R˜"�Rž�˜��%››—�—�—�˜�R˜#�S˜�S˜˜ �R—��{—��{˜$�SŽH-��������˜x�9˜y˜z�8š�—�—�—�—�—�—�˜�8˜��8—��y—��y˜{�9˜|�8˜~�8˜�˜)�Q˜w�9—��j�šš˜��	š�˜��	—��z—�’:’;–?˜X˜Y˜Ӄ˜��	n˜Ճ˜݃š�—��y—�—��x˜�˜��—��x—��x˜_�<˜`�<˜a—��6�C��˜�˜�˜�˜�˜�˜^�<˜܃˜�˜b˜�˜�˜�˜�˜�š�˜�˜�˜�˜�
˜�˜��’<’>’=˜�˜�˜c�:˜��
˜�—�˜�˜�˜�˜�˜�˜�˜��
ŽpŽnŽo˜�Žq˜��!˜��!˜��!˜��!™ʂ�š�˜f�8˜΃˜�˜�˜�ŽI��˜��!™˂�™�—�—�—�›��˜�–�˜ǃ˜�˜��˜�˜ƃš�˜̃˜��˜��˜�˜�˜�˜��!˜�—�—�˜��!˜�˜d˜eš�š�š�˜ŃŽ^™K��™.��™+��™,��˜k˜l™*›/›3›0›1™7��™8��™'��™(��–•�–™L��™C��™E��™D™F��™@��™B��™A™:™H™G›8™;��›™I��™J��™��™��›™—��q—��q™™™™™9��™<��™=™>™�™?��™/��™0™
�™™1��™2��	˜g˜i˜h™3ŽuŽv™#��™$��™��™ ��™"��™%™&��ŽwŽx™Z��›V™[��™q��™V��™T��™U��™W��™r��™P��™]��™\™O��™^��™_™`��™a™sž�™m™k™l™Q��™R��™S��™g��™h��™i��™j™f��›`™b��™c��™d��™n��™N��™X��™o��™p��™Y›H˜у™M��š ��˜p˜qž��NQ�@B-�������o4����
:��-;a/��(��~��	™���Žy���—��oŽ{Ž|Žz™}��™y��™���™���™��™���™u��™{��™�™�™�™�™~™���™t��™���™���™���Ž�™�™�Ž���›u›x›v›w›s›z™v��™w™x˜r�6˜s™�™���™�™�™�š!™���™���™���™���™���™���™���™���™���™���ŽK�G�o���f�|�:��’™z��™���—��w���U™���™���™���™���™���Ž~™���Ž�Ž™���›�—�™���™���™�š���™���š�ŽN˜*™���™���ŽOŽP�ي�–yz–Ž��4™�Ž��4˜��
˜?˜A˜@š�˜.˜��
—��u˜,™���™�™���—��u—��uŽ��—��uŽ�˜Z�>˜[’3��˜/�O˜0�Oš’@’8’9	’4›�˜1�P™�™�—��u™�™�›�—��jŽS����––
–
˜2�P˜3™���–	–C˜��!—��o—��n–D™���˜5�O—�˜4�O˜V˜T™ł�˜�˜P�A˜Q�w��˜R�@™‚�™�™Ă�™Ƃ�™���™�—�—�—�˜+�P˜U�@ŽR6���؆�˜D�H˜E�H˜K˜J�F˜H�F˜I�Fš�š�š�˜L˜N˜M˜F˜G˜C�H˜6�R˜7›�˜-�Oš|˜<˜=˜>˜9˜:˜;›�˜8�QŽ�Ž�™���™�Ž�Ž�Ž�Ž�Ž�Ž�–––5–6––3–4––!–"––––– –9–––'–(–#–%–&–$™�––+–-–.–,–)–*–/–1–2–0–––7–8™���Ž�Ž�™�™�—�—�ž�—݃bž�—�—�—�š9š:š<š=š>—�ŽLŽM—�Ž_�ↈŽaŽb™���™™™ŽcŽ`�����M�B
���Ά����S��	Ž��N'�N(��Ž���Ž���’C���m��Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�Ž�œGœH�����’L’M’_’O~–\’KŽ�Ž���’c’d–X–T
–V�Ž�’P’Q����M�B
���ʆ�w�M��M�Ž���Ž�Ž��g�0��’S’�’�’�’�” ’z’{’}’’~�ž�ž�Ž���Ž�Ž�P�遌� �ꅞ�����“'“(“*“+“,“-“.Ž��“)�“7“8“9�“�“6“a“b“c“d“e“;“:“<œ��“2“3“5Ž�Ž�œ!Ž�“““.“C“D“2“F“G“I“J“@“A“>“?’U’V’W&��Ž�����ž�ž�Ž�“=“L“N“M�����–c–d’�“Q'�)��)“#“$“%“&Ž�“U“V“X“Y“Z“[“\“W“^œ“_“`“g“h“i“k“fŽ�P�ׂ��ꅞ��N“““““s“t“v“w“x“l“m“n“o“p��gœKœLŽ��y��_
	“]“{“4“\“~“�“�“�“
ž�“�›�›�“�“��~����œ“|“ “�#%$"—5�=“/wx“0“1�str/��ž�ž�”"�u�M���@9f�>)��B
���&F$m(
T�4K
P	
��dd��F
�������”-œ�œ�œ�œ�œ�”.�›�”=”>œ�œ�WX”;”<H��y� ��”%’�’�”?”@œ�œ�
œ�
”*”+”B”CI��y��”0”5V”1������jž�`ž�’�’��������i—>:—?—A985
6
”K��;�<=E���n��—O��—9
—:	”N��”O����ŸzŸ{ž�ž�”�*���Ⅰ��J�l)�������j��K���k���mM�M��R�”^”R”V”W”U”T”S”[”\”_”`œȃ�KL”e”f”h”iHIž�”b”cž�ž�ž�ž��x�M��A�d��G����]�3����be����RS����Ž�Ž�Ž�Ž�Ž�Ž�Ž�”I���e������������M��B������%�o���ԃ��’�œ���œ�œ�œ�����ˑ*����ˑ*’��lœ�œ�œ�œ�œ�’�’�’��l’�`��	ac”'E”(Dœ�œ�œ�œ�’�œ��M��B������%��b����_�&�de��g��“�”�”v”x”{”w”|”n”p”q”r”o”s”tœSœTE�9�Ն�F�U�M-3:�@|&��B4v0v	�bJ!�����������'OeE��A’֋C’��B’ԋ!œ�•o’Ջ!œ�œ�œ�œ��M����<=>‘ �l’�’�‘"‘#�j��p������@���EF‘$��‘%��•��U�3•|•~•�••�������•���•�•y•zž�ž�•��U�2��ž�’�’����K�t	�ȃx��������•p.•q.‘.‘/��‘D�����•r0�M��M�‘1‘2������	�����u
������‘9’�‘:‘<p‘0�΃��s���N•��~qr‘@‘A‘=‘>�M�B�7�����k�!•uE���Ÿ
ŸŸ	–w•�•�•�•�•vDŸŸ�M�HB�@��灍�΂���������”�”�YZ[\•���•����”��M�>�@��
6�����co��� ����7���������M�–x��–}–~–{��–y–�!" ㄪ������(–�–�–�–�“�“�“�–�–�–�–�’X�7–�–�–�–�’Y�UȄɊj�����	��Є�����������	��
����������“�“�“�ބ�ŸŸ���$�;“�Ÿ�M�Ÿ�����’Z’[“�“������ �PT��&–�–�S�T–��ŸŸ�ŸŸœ�œ��(�����RŸ)Ÿ*�–�–�
��–�PQ–�–���ŸŸ–���Ÿ Ÿ!Ÿ$Ÿ%Ÿ&Ÿ(�l�M.A9�@%��B1p��(�CF��������<]��
%����9	%5678““
•>��’�’�•?•tž:ž;�Nb
�E|�R�Nc�E�’�’�’�’�•�•�—��N3�B�7�����d�&������•�•�•�•�œœž>�M�HA�C�ׄ�������>��•�•��:����žAžB�M��H�&)]*“�Z““	“�U“t‘�‘�‘��M��H��–���–�•xDs�Ÿ,Ÿ-	��’��}��t•���•����N8�B�8�I�I���&–�’’•��W�p�M�F������������N<“�œ�œ�“�“�œ�œ��M��Gc�r�M��I����NB�NC�s�M��NA�q�M�Om������“��o����N;.�”��œ��f�M��@���$�t��6��?TU”��”�”�”��j���h��?4�����������

������������'��”E”F���”���X”���>�œ��g�M��@���$�t��;w�h����ň�BŸLŸPŸQŸRŸnŸoŸpŸqŸWŸXŸ[Ÿ]ŸcŸdŸeŸgŸhŸfŸ^Ÿ\Ÿ_Ÿ`ŸmŸUŸV��{ŸO&ß	°��F����Q!cL��24���������V%���c:�\���B����¶����o�p�b��d��e¸%¸&¸<¸=¸>¸?¸@��u¸-¸1¸3¸.¸/��v�ύ��¸4¸5¸6¸7¸8¸:¸;��s��t¸ 	�g��¸)��j��k��¸!��¶�¸*¸+¶�¶�¸"��������h��g¶���#�J�p�\¸C�����`¸#¸$�B�C���b¸E¸F¿�¿���	¹��1���º3º4º5º6¹]�C��¹^;°6�%�����ߢ�߹�ߥ�ߦ�ߣ�ߤ�ߨ�ߩ°8°9µ\��º1��e°7�'�����߫�߮�߭�߬�߰º/�߲�߳�ߴµ[�ы1��]�߻�߼�������߿�߽º2�ߔ¹�������¹�¹���%�ߛ�ߜ�ߞ°:°;¹S�A�ߕ�ߖ¹���¹���¹�����ዶ�^�I�
����¶�·�ģ���½u½�½~½½�½�½�½�½�½�½�½�½v½}½z½�½�½�½�½�½�¹���¹)¹.¹/¹*¹!�u¹$¹"¹#¹�����ēµ�µ�½�½�½�
½�½�¹��¹½�½�½�½�½�	½�½�½�¶��*`��������½�½�½�¶��)_��������¹��½�¹��½�½�½�����¹��{�'��݋��]�H
�
¿�¿�¿�¿�¿�¿�¿���½Žk��¿�¿�¿�µ��d����h�������D��E¿��k��Hµ����+�f���½�½�¿��o¿�¿�½��\½��\��»+»,½Â�
»-����
»/�����������A��B��C��D��E����±��±¹�|�ˠ�ˡ¹�½�±�Њ��΄±�Q�ˢ�ˣ��$��%±°?5oQ��x��RW��O"���|��""n:	��ބ�1+V��� &
�P°����M°u°���»<»=��°���*��+�����������į±f��7°���°�°v�j������;��<��-°}°~°�°�°w�h�Q°x±�Z���Ň/�˫�����������ºi¹T���µ�µ�ºfºgºh±
�^�����.��"��#��%��'��&º[���́�'º^��º]����&º\���Ľº_��º`��¾Q±c�=��S��V��T��Uµ��&��µ�������������������������±d»D»E¹����°�]"�ׅF��U	����N'F�}�����#�X�Ĝ�ĝ�Ğ�ğ��.��/�ġ�ĥ�Ģ�ģ±h°�°��� ��&��!��"��'°�L°�L�˦�˧�˨�˩�˪ºIºJ�Ĭºk�C°�Y��H�����L'����°�°�µ�µ�»[����8��*��+��-��.��/��0��n��o°��͂	����q±��r°�°�°�°�
��±��±±	¹��+�4��������ڋ-����,���¹��F3�¹������j��������˝�˞¹���������±p±qºO��¹����	���ݜ���������n��o¾C��»R»T»S»P»Qº>�
�i�I��º?�
�i°@5`Q��f
��HQ��I
���R"
	d)	�}����@V����
>	�T�F½P½Q½R��������0¹O����M��R��T��U½I����ºM���¹N������]�����»;µ�
�[�
������������0�����ę°�°�±k±lµ�����������������W°�%A��]�pHW��T���^�d��($.|@������
����F�\��C��D����I��J��ºS��@��A��8��:��9��<��7º:��º;�����������°������<�¹�g����½U��F����EºX��O��BºY����A��P��H¶;�
�E��K��L��M��O��I¶<�T¶=�T°�$Q�)������(..�


��F°����Ł�.�����������µ�����µ�°�°���oºK�n��Ĺ�½J�?½K�l����ļ�½L½Mµ��O��Ɓ��G�
�������������»C�}�S°5��;VO0#�"�l��@����{�ㇷ"�!�g��%��&$G
-�}��
�]�ȷ��G��H��������a�X��b��
�����M��>���L��B�������������������ɍ�Ɏ²²�����ɒ�ɑ�ɓ±}±~±�Ɋ±��������8»�»�±��������± ������5��6��±��#����±Ŕ\±��"�S�'	��
��s�)	����	��±ĔY±��
��#�i"��7±�����$��%±��6�k����:F�� 
	�N��r����Z��[»h�����X»����I±�±�±�±�±�±����H��O����±ڊ��ǃ��Y(�N»j»k±ۊ���$»f��R»y±�V±�±�±�±�Q±�R±�R��#��%��)��&��'��+��$	��*���� ��"��#»z�;
�Ǽ�ǽ�ǻ�Ǹ
�Ƕ
����������±��j��	�a����~9R		��v��������������:��S���Z�������N����6�>5!�́�#��u�ǁ��w�ɖ�ɗ�ɘ�ǂ��t5����u�����~�l���k��U±�R±�»���.��)��+��*±�±�]���r��o��p��v±�±���w��u��n��q�ɿ����-�=����A��B��/±�±���.�=����k»x²\²]��}��²U��#H����r²j���+µ�¶¶¶¶¶²²�ʓ�ʛ�ʙ�ʜ�ʞ�ʔ	²²�ʘ�ʕ�ʚ�ʠ�ʁ�ʂ�ʃ±�]�	������C��D²T�1²N²O²X²Y²Z²W²J���x���O
������²_²`²Q�4���Z�ʌ²b�0��o��n²c²d²
9�����;��"%�1Q����
�`��±z±{±|����
 �����7����'���������±����聟��=��<±�����#��$��%��&�� �������+�偞	��0��1��3��2��X�������g�ɼ�6�ɽ�5���B����:�ɪ�ɫ�ɬ�ɧ��	����ɨ�ɩ±�5������:��#�%�y�c��
����������������������±ׅ�����������������������	 
�����eAx���B��A���ɶ�ɸ����������C��D��V±�±�±�±�N±�N±�O±�O��T��U�����E
�r��F���ʦ²�²	²��ʩ��I�_�ʥ����	�\���_���ɳ�����ɴ��/�c��� ����J��K�ɺ�ɻ�ɭ����������ɮ����²l����^±�±�±�±�²n²m²o�ʻ�ʼ²p��6��e»����C»���²�������[��y²q���_	²t²u²s�
²r
²~²}²|²²�����²w²x�������(��*��)��+��,��ρ��ʿ���������������
������������������������9�5��:�4��
���������L���D��������ЃJ��������������?
�����P��Q��N������ ��M��O��N°�:RN#0!��l��@��	��'P�����) 3�LZ%%
	���&*C
�s��

�-	�dž�Dž�f�����������������\��]�LJ�����NJ�Nj±�K�[�Ǎ�Ǔ�ǎ�Ǐ��?��@��=��>±�[��X��Y�Ǖ�ǖ»��d�Ǘ����V�Ǚ�ǚ��e��i��n��o��j��k��l±�Y�ՂŁ��a�8��s��t±يG���ȁ��ǜ���ǟ�Ǡ��f��w��g��i��j��k��l�ǝ��e��|��x��y��{���Ɂ��}��~±uT���� 1�~�r�q�*±�y���y����ˁ�+��~�����s��t���Ȗ�ȁ�Ȁ�Ǫ±�#�{±�±�±�����w±��v±�����x���s��²���m��������Ȃ�$�ȃ�$�Ȅ	�Ȋ�ȇ	�ȅ�ȋ�Ȍ�ȍ²�|�ǧ�Ǩ�ǩ��}��~��A��B��Z��[����²�����e��f��b��d��c²�»n»o²���±�)!�������が�͇�
2�y)����)g�҂LC3����
�W±�±�±�±���}��~²9���ȥ�Ȧ²;�Ȳ�ȵ�ȳ�ȴ²:���ɞ���̋�̌�ɡ���̟����������������ȣ��[���F�����̝±���±�±�±�±�±�±��Ȩ�ȩ±����D²�.²�.±wG\�K�Ӄ���
��+m�ق�x��Ƀ6��_�����@���@��҃,±xF���L�ڃ��������݂�²������ȿ²A�~���Ƚ���±���±��²��5����²��p²��ɤ�ѿ²�²��9���±�A 	�����
�vV�r'��
m#N�т�#"�収

²*��²)�Y�*���̕�̔�̓�̐�̑²(�\�;²%²&²3�L�҃y)��4u,n���������������������̍�̎�����܄�����������������������V����U����Q²�K����±�±��3²6�-�d²7����d�����4��5��E��H��F��^�g��������a�����T���
��c��²G�ɏ���������#�ͭ�ͮ��$�ͦ�ͧ�ͩ�ͫ�ͪ��%��&����������<��~�̀�́�͂�̓�͆�͸�͹�͇��<�H�͈�͉��}�͊��G��B��C��D��E��H��I����������0��4��3��1��5��(��-��)��*��.��/��6��8��9��7��;��>��?��<��=�������������
��
�����A��w����P���F��	�F��c��f��g��d��e����T��K��Z��S��R��U��V��	��Q��������h��iµ��*�����t��u��v��p��q��r��o��(������Ͳ�ʹ�ͳ��
����
��灃��l��m��k��x�͋�͌�͍��z��{�͑�͒��y�͐�͎�͏�͵�Ͷ�����߁���J�͖�͗�͛�͘�͙�͚��L��K�� ��!�͜�͝���͟�͠�͡��µ�����ͯ�Ͱ�ͱ�ͣ�ͤ��
������������°/�c�͍�v�9�`�v��J²���¾z¾v¾w¾x»�»�»�»�»�²�²�²�²�²�¾b¾c��¾`¶��»�������²��Ґf�������¾e¾f²��Ґf�������¾�����¾u���¾i¾j¾m¾n¾o¾q¾r¾p¾|�T¾}¹u���X¶�f���W²��Ӊo���������������u��{��v��z��w��|��}��������t�o	��������q��r�����²�²�²�²�²����`
��	�������������������p�o��������������������²���?�І�q�8$��¾�¾�¾�¾�¾�¾�¾�¾�¾�¶��¶��¹r�<¹s¾~�n��¾a¾�¾�����¾��q��¾
�¾�¾�¾�¾�¾�
������°�Q��6J��V
6�n����}���w��+
$
B�1��R����F�³V³S³T³W�;³L³M¼�³O³Q³P»��ŏ�Ő¹9¹<¹=¹:�Œ�œ�Ŷ�ŷ��(±(±,±.±*±+�Ň»�»��ň�õ�ö��)¼�Ű�ű�ńCd��-�ŅBc��,³³³
³¼�����������³���"�1����!��"³!³"²�²�²�²�±0��±3�֓�³
±1��������³���@¼¼»����F��� ������	��
³³ ��цۃm]��-��0��1��.��3��4²���m²���,²�²�²�H����1�3��³���P³³���G�����	�����������������������������»����������������������������������������Ť�ť<��³	���B²�²����²�3��`J�i��¼Q¼R¼S¼U¼V²�²�»�»�±4��
�������±5²�
��±6±8²�
��²���²�
²�
��²�
��²��1|¼�¼�¼�»�k»�»�»��	²���'¼�¼�¼#³$³%²�²�¼$¼%¼&³&³'²���'±/������<��
/
�.»���»�»����»���,
�
¼¼	»�»���k»�¾�¼-��¼:»�¼;¼.�Ł���Ŭ³/�³.³0³1�Ż����
����	³6������
���ł����¼X³2³5³3��<²�¼YL¼�¼�¼���;¼�¼�°�P�t4#
K�_V
4����I
&W����		.
(�-��N������j¼g¹z¼h¼i¼k¼[¼\³9³;³:»ȁ�»�6»�6»�»��ê�ë������(��)²�²�¼���¼�³=�ř�Ř²���H����J����U�{�C¾�¾�¾�¶�ï�H��ҐA&³>�t±:±<±;¼�������ð�a�!�˱�˲³?��¼?¼A¼B¼@³@±'��
G
�݁�����`<�B��	<!���@���V¼�¼�¼�¼��ō��±E±F±?±C�˶±A±H±I�Ŏ��3����6��8��7��9��=��:��;��>��?��G������-��.��4�˸³\��%���¼o¼p¼r¼t¼v¼u¼s³c³d³C³D¼x¼y¼�����¼�¼�¼�¼�¼�¼�²������?»�»�»�»�³E±N��²������<�����������������������³^±O³p�&²�²�³f³j³k³g³l³m³h²�²�¼{³q�&¼|¼}±Q�}���{��G/���a��E±R�|�B���u��¼»�=�2¼»�<	¼¼¼¼¼¼¼m�˹²��*»�»�»�»�»�»�²ܜ/»�»�²�������
����²؊
�»�»�»�»�»�»�»�»�»�³s³u³t±>�y	e	���������r��
�1���R³x�M³y¼±K�����I�Ӑ)9�˽¼��˾���������˷¼�¼�±U��³I³J¼n���³{³|³}³~³³�¼�³(�ų�Ŵ²��F�8h��`��
9���������D�����/��0��������������¸��`�@��%
=¼`��1��2��¼e¸��b�J�$	»Ł�»�¹G¹H²�²��E����_��
>¸��b�~¸���c��C��+��,��¸���°�_s�G3���¼F��0���1¼G¼H°�_s����K��L¼L¼M¼I¼J³�	B�
J�����j���³��I³�³�³�³�³��έ�ή��M��N³�³�³�³���b³���³�³�³�����J��I¼ǒ�³�³�¼���
³�³��:¹X�Ϋ�ά¹Y³�L���6��/�q����M¾ޣp¾�¾�¾�¾�¾�¾�¾����³�¼����Z�,��P�X��Q���
���������
������������������³�³�
���6��*�Q����������������������¼��4��������³����������³�³��Θ³�³�¼�¼�¼�³�³��uA�u��C���Π�Ρ��`³����u���W¼�¾�¾�¾�¾�¾�¾�¾�¾��Α³Ċ³�³���³҆2��³�³�³���³�'�?��¹	¹
¹³��i¹³Æ@��³߉���³�-�
<����
�c�
~����������������������
��������j��k���������������������¼�f��¼�³�[���`��³���{��³���³�³�³��^����
�<����¼�¼�¾�¾�¾��β�γ��\�쁕��V¾�¾�¾�¾�¾�¾���W��X³����X��~³��K�鈆�쁒���¾�³��K��¾�¾�¾�¾�¾�³ܓ�³�³�³�»���Τ��I³��D
³�L�"�Β�&��������³�´³�K����&�������������^°��~+w��
�!�…ك
��
(��O@\��6������S
m���µJµK��i��j��k��m�Ӎ��l���µMµN��=��D��E��>��?��@��A��B��C��G´�ׂ�������´
��c��d��e��f��g��h´��´´´�ӑ�Ӓ´��^��_�ӓ�Ӕ��w��x��Y��y��j��m´�6��W��L��I��J��a��b��M��O��P��Q��R��N�Ծ��,�P�1��
��@���Կ��������������������������������������������������������������������������$��������ӊ9
����������������������8������L����´�����´����´����l��m��n���b��q��p�ב�Ä��ג�ה���ו�ח�ט�י´�����´K�˂惕���������פ���u�����������s��´H�s�[���
$������´��´���������
����´I��c�`�������ץ�j`�`�צ�ק�ײ�״�׵�׳��x�׮��y��{�׭�f_�[��w�׫�ר�ש��~���ڀ���� ������������ׯ�c�װ�b������������ך�ם�ל�כ�מ�ן¾¾¾���ӆ]������������´��´�µ´��´�µ����]��
������¾¾������I�
9�B;��&��¾;��K�~��ƒ���цT�ڃ��FA��G��H��I��K��J��;��<�����@������ͅ>�����#��"��>��?���+�����+��ć$�P�jQ��
����Z����[��X��Y��^�������� ��!��W��j�����i������������������������f��g���x��d��b�����Ň$
�O������
��
����
��	��	��_���׼�׿�׽�׻������ׂ1�3b�v��(����)	����.��/��-	��,	��+	��1��6����Ƈ?����.�2Q�u��Ň=������������&��#��$µ����������������������������������������½�½�½���������5��6��������������������������´\���ǂч�����<k�1��������(���١�٢��)��*��*����	��
��+���)���������������������������������������2���ٞ�ٟ�٠�����ٓ�ٔ�ٙ�������ٗ�ٕ�ٛ�ٜ½ћ%����½қ!���½��_�����´$)����´Q��´%+��´M��½ߘ'���������ӕ�Ӗ������i��k��l��j��p��q��s��t´R�����ڕ������"��!��$��#��	��
������
´S���������������ӗ�
�Ӛ�Ә�
�ә�����Ӝ��%�r��&���ڙ�ښ
�ڛ	�ڢ�ڞ�ڝ�ڜ�ڟ�ڠ���ڋ��9��:�ڌ�����������ڎ�ڏ�ո�շ�մ�յ�չ�պ��������´U´Z´V´Wµ���hµ��ڧ	�ڪ�ګ�ک�ڶ�ڷ�������ڨ	�ڱ�ڭ�ڮ´&�>�w½d½\½_½^½]½`½a�ӝ�:���������������������������Ӟ�ھ�ӟ�ӡ��ˁ��ڼ�پ�ٿ�٧�٪�٩�٨�٫�٬������Ҋ�(�ٺ�ٻ�ٴ�ٽ�ҋ�)�ٲ�ٵ��ٷ�ٸ�ٶ���q�����´]�����������+k�K��"����4��5��6��7��8��:��;��<��/����//���������
������������������������¾��ꋐ���¾�����ڔ½��ڐ�ڑ¾���`¾�¾�������=��?��>¶3¶5¶4´a������ *�߃؂���:��;��<��?��@��<��=��>��A��B��H��C��D��E��F��G��Q��.��/��R��-½͗@��½�½����������´b���#�
�ۅ���P
����L
����M	����½���5��7��6��O��[�����ӥ���ө�ӧ�Ӧ�s���Ө��´^´_µ����[�]��-����7���� ��!��������������������+´e´f����/´h��´i��'´�´�´l��$��%��&���x����n����m��l���{��p´�´n´�´�´t´q´r´o	´z´{´y	´x	´w	´u	´p����B½f��E��D��F��G½g��C¶1���������2´d��:��9��6��7��3��4�ҍ����´j������������µ����Y�\��)��U½�½���<��=��>¶,���X
���0��M������
��	��������I����J����@����L������<�ع�o�[´�´�´�´�´�
´�´�´�´�´�´�´�´�´ݛq�B����`O��(�A��L��M��H��I��J��G��t��x��u¼��y¼�¼�¼�¼�¼�������%��;��´�����P´���N��T��U��O´���´��Ջ��d�Վ�Ս�Ռ��Y�՜��>�ۍ�ې�ۏ�ێ�ۑ�ے�՝��´�´�´���I�Ո��1��0�Չ��~��������������������������½�½�����	��r´٧f��F��f�դ����h´��d´���A�՟�ՠ�բ��z����䁘��偘��{�Ӏ�Ӂ��������^��_��	�����������	���ۇ�������ۂ�ۊ½h½i½j������
�ۀ�������ۄ�ۅ����������u´�´���2��(��y��v��:��a��w��W��X��)��*´��p�B��� �/_�	$���V��W��X��S��T��U´�/´�/�Մ����b��c�Ձ���:��Z)�Ʉ��\��[��]��#��$´��؉i�t��	%���k��j�Ֆ���;�Ք��@��A�8��C�՗����E��F��G��H�Օ�՚�՛´�´���´�´���hµ���´�������Y��[��r��_´�´�´�´���`��a´�	´�	´�	´�	´�	´�	´�	´�	��b��c´�
�̉i�s���C��m��i��m��l��j��k��n��o´�/����.��s��u��v���x��{��|�զ�է±Y�������ԃف��g;��������	���(Mµ�µ�µ�µ�µ�µ�µ�µ�µ��Ƃ�ƃ´䞸�½����ҟ�	�ۨ½k´�����Ҥ�ҥ�Ҟ�	½l_��½m�½n�w���W½�´�´�´��ժ��ۭ�ի½���̂����ۡ�۱�۴�۵�ۺ�ۣ�۲�۳�۾�ۿ�հ�ձ�ճ±Z�����ꑡ����2������8���!%��j��l��n��k��o�Қ�қ��}���v
��w�؁��x��y��z��{��~��Ҕ������s�ҕ��g��h��t��u´聦�;���� ���؈�؇�؉��$��%µ�µ�µ��b���)�Ɓµ���ؑ�ؔ�ؕ�ؒµ���µ���µ�´������
��կ��µ���
��ؗ�ؚ�� ��#��"��!�ۜµ�µ�µ��Ғ���7��.��-��.��'��(��0����+µ��ă����������������������	���	���	�����������ɇ	������������������µ��µµµµ��!�ˇ��������"�ˇ	�����܁�Ɣ��µ��~��������������������t��)��*��+��:��;�������������E4���x���������������������������C6���z�ƌ�H�+��#��)µµ��/��´�´������&����(������'����$��%�������z��x��y��{��w��*����,����.����+������ԇ�¾���ռ�����$�����������l��m��e��t��҇���g��h��o��p��u��v���������"
��.O*��N��O������X��
)�$����
��	���=���������M���X���X���X���L���Xµµµµµµµµ´����I�Qµµ
´����	¾¾����
����}��=��?��C��@��A��B��K��L��J��>��D��E��F��6��7��8��.��1��5��0��/��2��3���������܂�܃�����µ��m�d�)��:�܌�܏�܎��;��=��<��?��@��>��1��X��E��F��3���4���2��܉�܊��5��6�ӂ�ӄ�Ӆ�ӈ�Ӈ�Ӄ��a��b��d��e��8µ��m�d�$�ء�܄��f�܇�ؤ�Ԃ��ح
�ت�ب
�إ
�ئ
�܅��5�ط�ظ¾���¾��ػ�ؼ°����x	�������x���Ђ���/��R@`�̃���	��	!��2�`%�X
�N,H�E��h������������´E´G��P��Q��S��U��X��Y��Z��[��^��V��a��b��T��`�ָ�֮�ֿ��:���ֺ�]	�ֵ�ֶ��&��'���֯�ְ�ֱ�ֲ��I�F��.��7�-��d�ܒ��O�q�������Ӌ¾¾ ��q�&��p��w�'��t�&��r�(��x��}�%��~���ր��y	��z�%��{�$��J����K$�8�ܤ�ܨ��o�9�ܦ�ܩ�ܪµ!"�o�������օ�֊�և�֌�ֆ�ֈ�։µ"µC�n�(���´��&��=���ܰ�ܴ�ܱ	�ܼ�ܽ�ܻ�ܸ	�ܶ�ܲ��*���
����(��)���<��0�����4��5��6��7��8��:��1��2��-������B��+������¿��ς�d����_�������҉�g�ܓ�ܔ�����>�N��%b����@�+$�Nµ#�I%�$�֓�֔�֖��8��m;�֠	�֢�֡µ'�~�֫µ%�l�֥�֦�֒�֗�֙�֚�֘������
������������������
��������������������������������������фV����>����j��<��?��@�ӷ����ӹ�Ӻ�������Ӹ&������������������������������������������	����	����
��
��µ��j�Y�C��>
����	��@X�%���ك������1���������������%��
�������+�������K�����������µ(��q�΄���n�		
9��+��^Y����*µ+���µ,������µ-µ.��������¶C��µ>µ?µ@µA������¾-��¾0����a�v´´��b�v��Av�
E��с�������Ӯ�t�\�ӯ��������ӱ��Ӳ��ӳ��������u½p½q��r��t��s½���v��%��$��������
����µ)	���t�

C���e�;���µ4µ5µ3	µ2	��µ1	µ/	µ<�n��%�s�|��������������µ=���������������	��&��'��8��¾1¾2�ҧ�Ҩ��9���҃�҆�҇���������1���ى�ي�ً�َ���1���ٍ��{�c�6��1µEµF��C��������|±X���Z1���̓�#���҂��?�5��|Ga�D!|�݄?�����v¶N¶O�ݳ�ݴ�ݶ�ҳ�I��d�Ҵ����H��K��J���\¼�¼���L��M�ׁ�׀¶Q¶R�ׂ�׃�ݿ��½��Cx��f��g��e½����X����G��F½��������������½����\��H��I´.��h��i´/´0����¾¾��´9�����Ww´<´=´?´>������´:��ԇ����r�ԉ���ԋ�������Ԋ��k�v�+��z��w��x��y��{��s���,��t���,���*��
�+��5������
µGµH��o�������Ԗ����9��:��l�t�*�������z��z��m����%��p�}�-��q�|�,��)��*��,��-�����{��|���µ���¶T�Ԍ�ԍ¾�����}��~���µ�����d��e��い�ҽ�ׄ�>��J��L½�������O��4��P½��ԗ�Ԙ�Ԛ�ԛ�Ԝ�Ԟ�Ԡ�ԟ�ԝ�ԡ�Ԣ��N´2�"�9�������������>'=�6����¾4�ҷ¾5��¾6�տ��E�}��4��':���q�݁������I
4����վ����¾	¾¾�F��P��e��f��t�݂�݃¾8�¾:¾¾
��L��I��J��K��F���G���X��Y��Z��\�݅�݆�݈�݇�݊�݋��_��c��b��`��a��t�ݞ�ݠ�ݥ�ݟ�ݡ�ݢ��J�1��{��e��f´A�´C´D�´B��u���ݰ�ݱ�ݲ��Q��R�ݬ��^�I��I�/��x�ݫ��_�H��H�/�4�ݭ�ݮ��O��P´(	��Q+	�����҂��=��Fa�d|���*H/���N���ݛ´3��O��R��Q��P´4�X�
�׌��������ݙ�ԏ�Ԓ�ԑ�Ԑ�ԓ�Ԕ´6����,��A��@��?¶$�D�s�b
3��r��V�����c��Y��X���W����V��W��X��S��T¶%�ۚj��
��h����[��\¾¾´)��/�����;�J�D����]��c��`��^��Z��[���J��<½ږ�J���J�ݎ�ݒ�ݓ�ݔ�ݕ�ݏ�ݐ��R��S��6��7���Vµ�T�b�6µVµW¶)�bµ�T�b�6��M�~¾<¾=¾?¾@��&��(��NµɁ�����`�¾#¾$�ƕ�Ɩ¶´¶¶¶¶ ¶!��[��\µ��\�.�¾,�.µ������=�����������µ�������b�߆7��V´�
����´ ´��´!´"´��^¶V���הꌛ���¾�����¾����¶X������s��u¶W���ה�����ԅ�°-		
�����V��
<�z1!:
F��2&������ ��
��
^����V%5�v'�K$��-�J?��9Y��;]�Н�О�П��A��B�М��@\�С···%���i¹���&��"·5����$·���i··,·.°c����½½°\°^°]°_°`¶c�^�y¿�ސ�ޑ¿�ޒ�ޓ�ޕ¹�¹�¶d��¹�·H�|½��·I��·K¿¿¿¿¿·\��·]¿¿	¿¿¿
°d��
��°g°h·T·S°j��°l°k·P°b��·M·E·N·O°n°o¶[��B���m··�ƥ�Ƥ�Ʀ¿�·¿�¿�¹�¹�¹�¹�¶\��@��¿�·���n¾��Ɵ¾�¾��n¾�··¾�¾�¿�±]��
���D�b�������Ď�ď�Đ�ރ����������ބ�ޅ�ކµc����������d��e��a��b��cµf����á�á�¹�¹�±^�����C�b��µb�'�@�ތ�ގ�ޏ�ދ��@°D���°E��v¹�¹�°F��¿�p¿�°H��¹�¹�¹�¶e��¶g¶h¶i�Ʃ�ƪ��*¿�¿�¿�¿�¿�¿�°p��	�Ƃ݁���>�!�*����
º¿-¿.¿R¿N¿O¿S¿Q¿U¿V¿M¶t���·(¶u���
¿'¿4$¿5¿<¿;¿:¿6¿7
¿=
¿>
¿?
·:��<���L����K¶o¶p°r��	���؆!�(��`�?���*��������C��º���ԕR��½½½½��3¿*ºººº�����¿_¿k¿l¿`¿a¿b¿d¿e¿f¿[¿]¿\¿g¿h¿i���¾�½5½6½8½9¿q¿t¿s¿r��~¿n¿o·^��½½½½ ½!½"½$½&½'·_��½½½½�Ʈ��
·/·0¿��
������¿�°B	���3����(�+������� ���'V��%�e?	��0#<]��·2¿���¿���¿���¿���������!��[��°M����'�]��°P��¿��¿ ¿"¿#�Ƨ°N��¿°C���G
�k��|h�����6�!��B\��;�(
��k��.?��/@¿u·p�����·r���·q�����Г�Ж�Е�Д����=��>������?���V������U��������f��5D��y��z��1�З��}��{��|�ޟ·u�И�Й��g�����2��q�)��3��4��r�(��v�(·v(�q���������������
���
�г��·w'�p����������I�����}���еH���ЪX�}��·��8�ޠ�ޡ�ޣ�ޢ�к�н�л�м��H��I��J��K�з����и��D��E��F�й���·��7�п����������������������������O����P����L~��M~�����N������·x-�ֈP�uP�Э�Ю�Я·|·}��S��·x&�)���O���·���R���ޘ�����;��<��Gf��`�ޥ�ަ�ީ�ާ·o��������������������������W����X����\�����������Z������[�����ޮ·�����~���·�·�·��\·�·�·�·�·���·�·���d·��9��	������ޯ�ް�Ћ·�	)	����z·�·�	·�·�
·�
·��?�
��·����А�Б·�·�·i
�+�~f�����L%\O��
�:������ޙ�ޚ�ޛ�޶�޷����·��g��]��^��_�·t��u���Ђ�Ѓ��:L��6I��9I��8I��7I��e�����޸�޹·��$��·��"·�·ɂ��·ʂ��g��h��f·a·b·c·	·
¿}�q!�����������¿~�p���°����b�φ��X��u��y��x��v��p��q��n��o��t½W�1���X�����a��b��c��_��`��e��f��
������
��B��C��D��E��F��G��I��H��K��L��M��O��P������������������������������ ��!��"��#��$��&��'����������3��)��+��.��/��*��1��2��(�����
��
��
������������4��7��:��;��=��>��8��@��A��p��r��q���`#��������^��]��S��T��Y��Z��[��R�����������W��X�����g��i��h�����������������k���������l��m��n���������������������°�vJ�"��H��!����EwIC7����\,���^>=��+g�k��+3�e~	G=�?
X%�q��^,��°�¿�·Ә�V�i��-��`U�e
��"��\����]����^����b��"��"¿��1�2¿�¿�¿�¿���¹�������������°���� �w�����°����"��������¸
¸¹���Z��[¸�¸���r��s�6�P�φ�4�5°���n�����/��gº�º�ºs��ºmºnºoºpºr��ºvºw¶���Ӆ?¶�¶�¶��˓¶�¶�¶�¶�¶�¶�¶�¶�¶�¶�¶�¶�¶���a��s��r��q¶�¶��˒°����J�
��·�·�·ϐ
��º�	��o��pº�º�º�º�º�	°������-=�`g�����`��c��b��g��a°��؏�����°��1��C�O�3�7��>��6°�°�°����°�°���1��°�º��߆�߇�߈�߉�ߊ°����Ë9�Z�����?����º&��������nº'�}°��1��
A�N�0�ň?�;��5�������ϧ°��L�����2����{��|¶剸����V�?°Ɔ����с��A�;��B�;�т°��8���{�߃���!�{����ºˊ���C�ϱº�º�����Cº�°dž���º�º�°���	�U�Zk

����:L�t�5�0�I�냱,µwµxµvµz°����º�º���¸
¸�¸¸¸¸¸¸����µ�S��¿�¿�¿�¿�¿�¶�¶�°���	�R�P	k	
��:H�s	�~�6��¸I�G����¿�¿�¸¸�{¿�¿�·��K��Eµ{��H��������͏�·�º�º�¸M�������°��[�v°�º�º�º�·�8�6������|��}¸N·��y����H¸¸��J��K��L��M��N��O��U��X��Y��V¶�¶���Q��T��S��R±���ג����%��&�� h��X��Y��"e�ц������°ʆ��D��|`�͌
!��`��½[�����`�5�a�7�e#��d�8�f�8�g�8°ȇ(�~
�b��¶�¶��p�q�n�o�s�t°ɇ(�{
�b��¸����{�߄�|�}�~¸������y¸�¸��z¸�¸���
¸��w�x¸�¸�¸{¸|¸}¸~¸�&�j�R�^��¸�¸�¸�¸�¸�
	��¸�¸�
¸�¸�
¸�¸�¸�¸�¸�¸�����°�����^�H�ʆ|�?�	*����6¸a°�°�������'������¸p�¸v�¸�¸�¸w�º�º�¸L�i�R3��`��¸�¸����߀�k�l����~�*�ϼ�Ͻ¸��2¸�¸��ϸ�Ϲ����¸bM��¸h¸d�h�i¶��~¶��}¸c	��¸e¸f¸k¸l�˘�/��_��������������˙�/�����°�-���E&��!A`��Ds�zwN,�˃F4��

V�h
	+�Lt	?	7�?z�~�'����6�<��7��º�º�º������5��������6¶ӂH���h¶{¶��8���h����¶�¶�¶�¶�¶�¶�¶�¶�¶�	¶�¶�¶�¶�¶�¶�¶�¸Y¸Z¸���}�i�6°ЊU�g�	���º�º�º�º��ь�эº�º�º�º�º�º�º�º��ˋ��8����¸�¸�°���H
���s$B��#�:���eT��
¶ᬫ��¶�·ͫ��J°Պ�°���º����<��u��v°֊�°�����:�?��;�?�%$
���]¶��љ�њ�-v�����?¶��{��¶ߊt¶��y��R¶܊s��3��&i��'i°��B���L���Ƅ僰�u��ߎ¶��C����?�����°��B���ʄ僰�u�»0���R!��������������	����¹��v����¹��t������¹���¹3���Ύ��������������� ��!¹�����±\�����Q¹2���»4����*��)��
µh����z���J���	�M�!����T�Ύ�r	��0
��1
·֐4�/����������
��3��4��V��������������H��J��I��W������°R���T��U°S���=��>¶��Q�a½3½4½1½2¶���¶�¶�¶�¶��G�p������µnµoµm�ρ����P���مH�"�F��?��·@·A���������·C�ϝ·=���K���؅H�g����·�q·>�_·?�����6��5��Y��Z��7��[º@�½-½.ºA��\��]µj����}���L���	�M������#�	������h��pµk��·݃�����������µi�o�C����O��c�����º ��&¿�·�·�·�¿���@��A·��°W°X°T°U¹f��E��F��C��I��K��J��G¹[¹\¹U'¹V&��������������������������N��O��R��S��Q¹~�p���������������������¹�p��������¹n����������C������B����?��@����A����<��=����
��!��#��"��&��'��)��*��(��+����������0��1��2��&����
������3����4����������5��6��7��9��:��;¹i¹R¹g�A����¹��@���^W�:��� �%�`[=���*��%�T��=����f�辂ٌՉ��.�3��-r,ÞÞÞ������������������������Þ���}�G��cs�?�A�_�@������~�G���������������������������D�F�G�E�迂ٕˉ.�3��-o�������������C���s�曅��J��
��
�:*���������}�~��5������<��:��9��6��7���!6�;�Մ�������������9����L�
�
���#4�;������7�橈J���8���������������������E����7�������1�W��@��?��C��������B�����	��	��清����'�g��
���������栣N�������	��	��	��湅��уg���D�����
�
�杅��� ���	��"�������e����#�	���*��-��+�
#�
$��M��N��&��(��)��'��Q�<�X�	��	��	���P��.��3��/��R�=�i��S������Lq�F
��
*���d
��K��M��N��L��������*��*�
������O��V���A���	��	��	��������8C�I�� ��sG�	���������>�� ��<�����
�
���GG�����O���CA�H��s�������������F+G�	��	��	����P���	��溞�F�K�����滞�F�K�	��	��擂c�(�,�9a�6����^�t�w�x�px�
�{��������������	����������������������S��W��X��V��U��T�K���P�Q�T�S�U�V�B�C�D�E�G�H�W7���N���LA��������������q������s�Z��!������R��U��T��S����p��������j�m�l�k�n�������������b��"��.��!��/��0��#��,�0��-�0��
��7&�
���?	q�S		�b�����\�+�}�|�����r���~��I��J��K��L��������������������������������������������������������������������������`��b��u�����c��a���#�/���?w?��a���
����)�������%���������;�u���;���;��
��7�
���=	o�Q	�`	����O�Q�P�R����7����Y&3t�A
sT�
�i8�]��"��2���i������/��4������ ��3�����r�q�p�s�t��#�������m����o���������s�r�q�u��z��4�����������������������������Έ�~���������ψ��������������͈�����������������������5���������.�bbH�G����,�U�vx����<���������<���;���B�
l��j��k��1�D�k��d��g��f��e��o��q��r��/�&�C���x�{��=��6��7��8��9��:��;��3��4�Q�R��>��0��4�䔑��O��Q������N��P��<�:����x����w����v����3/�P�%��2�b���݃���������(��)��+��.��4��-��,��/��0������������������	��������
��������G��H��������6/���Ӆ����8������<����9����:����=�ό�����>��?��B����C����D��E����4/���;�����%����������Ї��*�����������ч������51����������"��#�� ��!�������(�b^4��+�y	
g]�x�j�]�ih��k��+��������^����_�������J��1��d���E��0���G��5�2����������(�	��*��+��)�1���/���������.���v���i �[�y���j����i�����������������4	�:�7�5�2
�3
�������ׁ��|���
�����W�m�n�����o����������	�x��|����k��l��	�
��
���Q������U��V��S�э�1����T��&���&���(��-	�'�(�*�+��%����P��N���f�P�T�[�W�V�U�X�Y�S�Q�R�y�	��])�_�`�^�	��{�h�i�}�|�k�l�m�t�r�p��b��w��c��v�a�e�b�c��������������@�
�����Ãʂ���BA�����j8
(BL�CUjI
��Z��R�K��p*�������������������������������
|��J�� ���9�:��:������������������������������C��9�ׂ��������
�������������^����������������������������������������~����������^����
�y�s�n	�I�'�L�K�J�M�N�t�u�v�w��4�����.�����-7��C�r���7��r��k��n��m��l��o��d��g��f��e��h��i�������������9��]��^��c��}��~��a��_��T��W��V��U��e��f��-�H��0�����u��.�D9������������p��� ���+�.�-�,�)
�*
���/�0�1��5������&)�����
7�ڂr���
7��{��h��i��l��k��m��n��R����S��w�����a��b��c����s�-�� ��	������B�>�F�=������y�%����z������������������������łY������������"�#��s��ȅ��������������������������������؅������	��Յ������х���������������������������������������������������������������������������������������������������������������������������R������������H���׉WF����
�X�x�?���*��������!������$��#��"������������������{��|��%��*��+��)��&��'��}������~�����������������������4�
��?��>��@��A��B��/��1��4��0��2��3�����������������������������,���������N�� � ����Z����2��3������
��������	��������U�������6H�����]����
����V��U��E��H��G��F��I��J��	��������
f����Y��X������S���,,��-����L�
��a
��b��k��l��e��n��c��f��h��i��g��Q��P��M��N��R��Z��]��\��[��^��_�M
�X�N
�Y�������St���ہ�u��9�����p��r��s��q����������t��w��v��u��x��e���3����y����9��7��;��6���Tr����s������d�������������w������x��������
�r��D�𱒁
�3	������D�� ��'��#��"��!��$��%���p��C�H��p����D�I���������������������������������8�9�𘉥�𙉥��Ԅ���
�1�5�$�%�������΋������������Ћ������������j�ń� ����*��+����l�����k�����V������Մ��o�)#�3���%s����	�
����څ*����م*��؅*��h�^D���5��� ��������������!����	��v�����������������������!��Ʌ<����������9��r��r�������������������������=����I�}�~�*������"�n��8
(GF��j6��W��P3E��B�S��*
�	��	��	��	���4��5��6��7��8ÞYÞZ�
5�
6�(�)����&����$��)����(����'����%������������.�N�
��<��=��>����+����-����.����,����*����/"����0��2����Q��3����1"������ӋL�ȁ�b�!+�������������������������������������������9�������*�Y
�C��S���J��l���I�	��	����
�������L�҂b�������΃�V5'T=�2	i�
�]�`M��w)���������쁅���������������z����}��|��{����~����������:������������;��h����
���������&�ՒӇ���=����>����
�j�
�$��އT�ʃ��������'�G�6���G����o��p����������������������O����j�n���T5��d��#���Q�������q��"��ڊ�������������������.�,�-��B����@��A��Ϛ5�q��Н���t���2����v��w��x��������D�������
��)��)��O}��6d�k����M��������
&����d������
����x��������������������S��T��R������O4�2
1�f�����83���������N3�11�27�5�3��\��]��Q��9 �o�ۃ��
���=@�J������������>���?�@�X�Y�Z��X��
;8�m��3���G�����H����������*��������C�D������V�m�L���P(J	�J��Ì���łL���Qq�~�������W�q�I���L'K���K���Pq��ƂL���Qq�����Pp�����
���f���������o���ۅ7V"�}��)&�‚�N�P�O�Q�U�V�T�S�R��W�������o��4��(.!�_���� ����+�B���
���"���}�������������������������������b��h��n��o��i��j��c��d��P
g��6d�k���23�h������
����b�������������������������������%�(�'�&��������
��e�����c�_�����h�b��������Y���^�ꆚ��W-	�w��+�.�������������������������������������������r����6��s��t����e6��#.������6����%��%��u��x��y��v��w�\���������������]�^��ۃ�������_�����ޏ������܍������#�L�����L�n
�(<�lES
�/	�����ȇ�����ʇ���ˇ���ɇ�������������������#	���	�	�	�	�	���	�	������
������������������?���������������
��m�����o��͇�������̇���·���χ��y�u��
���v��w������j�����������������؇����l�����3��������Ї����#�����������·��ւ��+�����������ʇ����������������������Ӈ���
a��������������(�����J�����
�A��d7��d7��������d7��d7�������������������
�	�
���t��u���N��ˁ��k��'Z�f���������������g�����^����v����������������������������������tc�b�
��

#W�h����������
������������
�����H�I�K�L�N�U�V�Q�P�O�R�S���
��
��}���K���X�
���v��w�
������N
�X��������~���KT.�V�@�?��������!�>�:�;��K���W��
��
���(�)��$�|������&��*��'��(��އ�!�����������������
������
��
��
��
��
��������������3�o����+��,��-��.��4��%���菙�������B������/���돜����0���������m����������
�	�����ώ�����6�~�.	��9��7��8�������'��O�
zX+�p]�n�f��E=�1��Y�[�
���Z�\�]�^��������������=���y�?��Y�K����>��?���������6���Q���]���h�"���&���`�c�b�a�)�'���*��`�0�1�2�4�*�-�)�1�0�/�2�Ɂ����(����!^�����,��;]��,�-�k��@�#��������������D��Ս,����������`�G���������K�8����B�*,��6
@��-93����A��B��o!��7��������
����������	4��V�Y�X�W�Z�[���������֊k���j���������������������	��
�?�A�E�@�B�C�R�T��������������`��3���������������������e�H�G�K�N�M�L�O�P�R�S�Q�U�I��.������F�G��������������W1�*�X�0�
����zÞ�Þ�Þ�����Þ�Þ������������������Er���JuÞ����CpÞx�肂7�F��u����|�������AÞ{��	�(�C�����
�^���������������������������������YE��Z��X2��c�/�
����|�������2���菁��=����F�<��U������������������Þ����Z����J�;��U�韃G�������Þ�Þ������������������������B�S�$�K�L�%�&�=�>�蠢�������������������������)�$ �*���ƒ��(�" �)����-��0��/��.���o�
�+�-�,�.���M������������������������������
��	�����n�'�(��7�g��:��9��8��;��<�蟎R�'�/���1�Ir2���m���/����2���
���
�	��/�3�4�0�1���N�O�P����
���2����9���-	$,��6
��-9)����@��B��	l!
���0.�)��������������
���������������U����
���4��
���$�%�H���J���=�螁����*���������������<��T���
�%������Q����=�!� �<��"�#��R��S�����蕁�	i�/�����	<0�&�*���9����z5�������4�!�7�6�5�	�	�	�	�]���^�'�*�)�(�+�,��_	���.�����m��n��`	���-����	��o���J��~������r
��v��u��s	��p��q��Տ�e�&���������in�]�������-�2�3�1�.�/�	��������������������������<�=�8�;�:�9���������^	k�,����		)0�$��1���K����5����������h���6��ѐT�(�����	�	�	�	�������鄡����0���5�6�����6�7���/�謑<����F�Ɩ���/����������������N�B���������������Þ<��O���z��G����/���艁���������讞����:�;�J�K�Y�诂-	�.�-.���!	�D�����������������������
�
���������������	��	��r�?�s�v�u�t�x�����y�w���`��������C%�?��!� �#	�*�&�%�$��K����L�������������9�������=��������8��
�@�f,"��R���$�%�&������ ������#�g���A�hO�'�.����:���<���#�9� �����;�:��P��1%��Q��*�5�4��掣%���������������0����o�Q��D�}�E���p���2���o
�����2��3��R��8U!�o��U��V��T�*[����������X�'[��S�*Z�L���=�@�?�>�A���������2�1�0��	��
����������������������T��S����R��T�p�n�o�q�j�l�m�k�r�s����������������������������I�?����E���F����g��������c���u�[�\��c�#��D��������`�I��a�H��f�$�v�w�x�������~������y�{�|�z��e�$����������d�$��H�<��������������������������������������������3�������������	
�#	�
'�����e#�5�����U�� ��!�W��ߑt
�,����b����a�`��������	�U�����h����\�]�^������ʇ���������g��������X�Z�[
�Y���
��<#	����?�H��������������y���y���y���G��H�����������*�Á�����)����+���|��(�(��)�\��,���z��/��0���������������������
�n"	�������������(�R����������������x�������J�0&����H�/%�����������Ƃz��Y��\��]��[��_��Z�(�.�+�)��������6�!��d����7��8��;��<��?��>��@��A�t�v�u�w���`�r�s���`�]��9��<��;��:�^��B���H�+������{��}��~������|�s���C�;���d�m�n�e�h�g�f�i�j����������F�!����G�<��������:��/�
�O���m�Y��?�.
�Q����I���0
�M��>�<��8��J��K������/�������� ��q�h�$��������[!F��K�����{;fU+1
��3����������R������Z�A�������������������������������������U��
���g���Ջ�����������;�搣2��b�����\���	����������>P���G���H�F������������������������ȕ��"���A�Ȃ���R�6����������S�4�����8�R��;��:��9��<��=��T�Q�������������v�݇��J�L�K������ځ���[i�o��������������;�Q�R���M�N�
�����9�:������%���K���������•�������������������������������������%(���'l��3������F�='�����������������������P��Q��N��O��������������)�����Z��[�]�^�_��-�`��-��'&���&k��3������������������������� �]�T�������R��d
��d
��͗愢�i�E�힏;��:���������:�ퟏ;��������3��3�������������������`��a���������������	����9q�������	�O!#�����'�(�#�$���������!�"�����e�휚��횏ʅ�c�훐
�������������	��
�{���N!#�)�*��������
�2��H��G�#�E�������M�N��������팏G	�����������������������������퍏G���d����틏K���펂8������h��b������d��e��f�������	����������������������		�����������������������l����m��%�˂"����������� ���&��'����	�
��(�������)��*��+��,��.��1��0��/��2��3��������*��5��6��7�����������#�"��c������������k��g�I;�������������������������o�D��p��8�����ݎ��������������q��2������������������������/��<����������
��F��r�h��rA���������E*�����)�����������������X����������������G��/������������G��?	�L���
���G�vA�y�s�t�v�w�x�y�z�u�k�l�n���p�o�i	��������������ǂ�����_�����'0>*@;l�9�f�����b-"��	�R
���<�������������������������������s��tÞ~Þ�	/�	0�',�
�������C�G�E�F�)�T��u��v��w���;�6�����������:����Z�7���\�]�5
�[�9������������>��5�Ԅ�����	�
�
������������?��1��O����W�X��@��A�������=�C�D������������E�`����h@4I<���8�"���p����-�U�
�.��1�2�3�%�4�"���5�6���������f��3�^�������|��������������������}�~�����?�B�A�@���������l�������x�z�{�y�s�q�78�o�8>�`�a�i��2�:.����b�d�c�;�_�`�?��z�ɂh����j<5
?;ip������� �׃M*���1����������C�d����lg��p�քj�"����^�����G��H�2�3�.	�,c�}�-f�O�P������Þ�Þ��J��D�
��E�	�L�K����������������8�e�f����������d�4������O�����������N���������������M��B��?��@��I��J��C��D�������������������� ��8���4
W����		��9��h��҃��5��
:��
o��lr���#G����.[z�X"��� 	/����������������������������ꃇ�X�ꄇ��W�ꎃ���������	�:��f��g�=�;��h��i�<��j��0��/��.����M��N��������n��k��l�3��f�“��3��4��g����ꠝ��-����������������������������������	��穊�2�������1���������������P��'�y�=:�r����(��;�q���������������j�k�������4�5�����Q���K�@��R����S����T����t��v�����!�J����k��l��A�������$�S��%�S���^�_�I�]��������������Q��B
�������K��G��H��F
�L��E
��D
��J��K�R���T�V�U�S�W�X��P��s�
�3��u��v��w��Y�ꌇ�����r��{�a����������~�\��|������x��y��|��}��������������抏�Ō��4�H���w����������������뽆��!���#��b���c��d��e����B�뿆��!���#�뾆��A��R�-����>��]�7��b��c��d��f��e��S��)������2R������������������݇Д������������އҔ����ߠ����������������������#���0S�����������"�$����(�王�������������*�����0S����	x�g�������e�b	��������	���c�a	������&�Їb���p�������������������+�ڂ�
�t����������Ӆ��������	�������������5�
S���5���I��������������������㊿�����瞆���������������������-[bd�[@
�������g�r^����5Q�����f����y!����.�/�5�6���祛����礋|�e�슜'�������˄����#�	B��.����?���!����n�t[����9n�����k�����q����	L�	K��0��3�������	N��3������
�ς%	����6�7�8��4����8����j��k��l��m��n��+�/������7�������3�4Þ���ZO����o��v��r��q��p��s��t���������뫇Þ���������������륁�.�링�-�먁�-�릁�-��������?�$o�Â+��������������������������������+�!������;����=����>����<���߃;�%
������
��	����"�������
���9�%
�O�����	D����������J�����G��K���J�����K�"^������M��N�}��L�r�s��A�
�//���&��T�y�������%���������������������������������������������옆��+ <.�a6�+�웆��Q������������욆��Q���왆��S���d��&K5�k�g�U/�f�T�e�V��@�h���i���#�Q�$�t��7W7]�1
N��������+6
���������:��%F��b_
��	�
F
��
���w���
��]��[��\��^�������������������R�篋��S��!����"��������������������������������Ǎ��������I�������������罗����K����������������T��g������������킺�݁�:���t������������=��������	����
��	�������������������������;�{���<�绚��Ճ���5
7�ԃHZ�ρ���e����
;&����]�� �����븜���=�D���������������������ꁔ��.��_o��`n��[l�����\l��]n��^n�������~�ꂔ��-�|�����7���������������������9P�3�܌�e���������g�h��������8�}��Ƃ��
b���6��6���܌�h�����W�]�Z�[�S�h�T�h������x�)��y�*�X��w�K��{�J��}��~��߆����b�ЂS����n��������o��p��q��r��:����j\�·��P��Q�}�~��;�J�؇�졖������/�.�-�����jb�΃���Ñ���	����<��#�́����������Ȇ����;�>�=�<�����	p�	q����
^��`�D����$��#�����`����ޓ��������������\���	v�	y��[��\�	w�	x����������^��	��	���_����'�����;�����9��e�J������������a�툔����
�����퉔��
������������VR����,��������r���D�9��������
)��_��^�
*�&�*�'�(�����e�봄P����		����
�������������ח����������������s���������������������p�q�곂���)���	���]���B�����������������
������������������������ڒA����^V(�����ٗ��
����������
����������WP3�����)�������r���E�8���
����������������\�}��������ꅂ*����������G���;�����ÞU��ÞV������������������ÞT���r�%�����s��������������������������	��	����	��	��	��	��	���$��������������q
�u��{�u��������k���p�������������`o��������2������:����i�RO�G�
s�F�
�o�(!��B�%R��
����z�_�ђ�!:
5�d�626�
`������"$�ol�4��4��4��4�4��4��4��4ۚ��4ܚ��4��4��4��4��4��C�H�F�@��3��4��4��4��4��4��4��4��4��4����B������$
�oc�4��4��4��4��4��4��4��4��4��3��3��3��3��A�E�4��4��4��4�9�4�;�4�;�4�;�4�9�4��4��4��4��4��`i«���Ӂ��S�"���[�\�g���I�I�I
�I
�I
�I
�I
�I
�I�I�Iâ|�G�â}â~â�G�G�G��G�G�G�G�G�G�I)�I*�G �G!�G#�G�I/�I1�I2�I0�G$�G��7�G�G�I9�I8�I6�G�G�I,�I-�H�G3�G4�F����G/�F����G.�"�k������1���GD�GK�GL�GM�GO�GP�GQ�GR�GS�GT�GG�GE�GF�GH�GI�F�â�F��FuF�FvG�F��F��F��F��F��F��F��F��F��F��F��GV�Ga�Gc�Gb�GX�G%�G&�G(�G)1�F�8�F��F��F��G��G��F��F����Ge�Gf�F��F��F��F��F��F��F��F��F~���F���F��#�k�������Y�ß"�F��F��F��F��F��F��F��F��F��*�-�	�Gx�Gy�,�G��G��G��G��G��G��G��G�
�G��G��G��G��G��G��G��%X�Gg�Gh�G��G��G��%M
�%N�%O�%P�%Q�%S�%R�F��+���Gs�Gz�G}�G{�Gp�Gq�F����F����F����F����F��Gk-�Gl
�Gj�F]�Gn�1���G��G��G��G��G��G��G�&�G��G��G��G��G��G��G��G6�G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��G��F��G��`�«����냼�F���I�G=�G?�G3�G��G7ã�ã��1�G��G��G��`�«��b�������F��ã�ã��G8�G�'��G@�GA�G9�G:�F��G��G��:�G;�G<�G��G��G��G��H�F����F���H�H�H�H
�H�H�H�H�H�H�G��H�H�H�H�H�H�H�G��G��H�G��G��G��H�G��G��9�
�̖��\��������=��S�H"�H$�H%�H#�>�1�	�H�1 ��H'�H(�B�	���1�C�	�Fr?�Fs>�bª'�
�\f�\t�1�?���A�>�H)�H*�1�H �H!�1�1�F��G�`�«��ҁیU����L���[Yg�HH�HI�HJ�HK�H��H��F��H/�H0�F����F����HF�HG�H.�H1�H7�H4�H2�H8�H;�H9�H:�H<�H=�H@�HA�F��wL�F��Hz�Hy�H��H��F��F��H��Fo=�Fp<�H��H��H��H|�H}�HC�H~�H��H�H��H��F������Hp�Hu�Hr�Hs�Ht�Hv�Hq�F����H��HZ�HQ7�HR7�H��H��H��F����H��H��H��H��H��H��H��H��H��H��HU�H��H��HT�H��H��H��H��HV�HW�HX�HM	�Hc�H`	�H^�H[
�H\
�HP�H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��Hn�H��Ho�Hw�����H��H��.���؃���-P��[��F��H��H��F��F��F��F��F��F��F��0���4�1�H��H��2���F��F��F��F�����H��H��F��F��W�H��H��H��F��F��H��F��F��G���H��H��H��H��H��G��G��H��G����G��G��G���G����G���G��G��H��H��I�I�H��I�I�H��F��F��H��H��H��H��H��H��H��H��H��I�I	�I
�/�����7���[ER�H��H��F��F��H��Fw���H��H��H��H��Fy���F|���F{���Fx���G
�I�I
�I;�I@�I>�I?�I<�F��F��%[�%]�%\�bD�� �
�����a

�΄��kk)�����:���������\=��xy�QLX�1��1�ã}�5�M��M��M��M������Nd�Nb�Nc�Ne�Nf�Ng�Nh�Nn�m¤k�����Ѕ������Nr�Ns��������l�¤@���bv�3��3��3��9�B�R�7��7��:�����=�>�?�by�¤>
���I��I��bz��^�A���I��I��ԅd���I��׾
�I��M��M�����־�I��I��l�¤T�������3�u�b�N��N��a�����a�������l��l���Y�NW�a��b�b�m¤@F���:���m�m�m�l�
�l�
�N��N��m°��N��m	°��m
°������a��a��mŸDž������T�U�3��3��3����������C�|[R�ƒin���	�T��9�;�:�.�4v�4w�/�N��N��0�{�7��7��7��7��7��(��`�a���g�zZN�+k���p��	�T��H�e���>�?�2�6�7�4�3�bt®��d���A�E�c�d�F�a�b�M�O�P�K�G�H�L�N�g�I�J�U�V�Q�S�T�R�B�Y�[�\�Z�W�X�]�_�`�^�C�D�e�f�˄�~
�ш1�!�1�i�7��V�7��7��I��4��I��4��4��4��I��I��I��I��I��j�9�k��k�9�k��m�n�l	�l ���
�ψ5������}���)�����p�U�M�N����}
���q����0�g
��l ���
��+�*�7��7��z�%�{�|�l
�?�m
�b>�� �
�����a			�^�kg$�����ֈ������3+	��tr�QLq���������M��3��f�����3��e�ȭ'���I��I�����I���bw»C�+����ޖ�ʄg+���3��3��3��3��3��3��3��3��3��3����*�+�3��3��3��bx��)�M������b��¤Z���Q��!�I�w�*���1Ğ*�1��1��1��1��1��1����1��N��N��N��1��1��G�H�D�����1��E���
�1��1��1��1��1��1����b��Ÿ�k�Q�/� �N���)���1��1��1��׉j�����1��1��1��1��1��1����������������I��I����N^�N\�N]â�â��N_�|��V$ã��}���1�q��
�
â�â�â�â��
�
�1��1�â��&�â��&�â�â��
�
�
�
�������nq������	�J0ßcâ��J1�`��/d��Ÿ���S
������������V,�`.B����LC���u<Vo������W*���]����R*�{��������JV�����Џʖ������)��)�ã�ã��)Ԓ2�;
���;�)��N�)��ۅϛы'�%k�%l������������������������
���������>���˗-�l�����@�a���������3?�Q��{�u��*e�*d�*f�*h�*g�� �_���z�3�/���`���z�2��Ƅ
��������������†����������3�����������&+�&,��%���-	7�Q��{������6���;W�;X�����	�
h�~�
j�
k���
l�
m�/�0�
i�~�&��&���2�q�L�%X	(���
�B�[�\�;��;��;��;��;lH�@�)��)��)��)��%�;���;m���)��)��)���1�p���;k>��3�;���M��J�J�J�G�H�M��M��;q�`���¥�
��
r�
������o����K��y��M\���Zh���������������’��%��՗
�)�
���)�
�����)��)��)��)������F�y����X��V���*y�*}�*~�*w�◓������lG§m�����������������������������l%¥�
�"���]����
V=���;��;��lH¥��!�������,�����Ip�Iq�Ir�l9½:��Iu�)s��l&¥�� �!��l'¥���������������������������|�����l<ª����z�{�l?¬4�l>¨5���l=¬4
�~�t�u�v�}�x�l@¨8�lA¬@�lB¬@�����l¥���
;#�
����������K��
p��L��!���Y���%��y��d�����������l*	¥����	�������M��Y��5U��lR�*r�*s�)��)������lN¥����ބ��������	���lT�l#*¥����	Es�|����;�lL¥������������������;��������lO«����lP«������;��;��;��;����+�g�\�<�������`�¯���
�������v�������Ze�����Iy�����Iz�Ix�lf�lj�lg�lh�l��l��l��l��l��l��l��l��l��l��l��l��la�lb�ld�le��ln�lk�ll�lo��/��؃ʔ��h��lp
�ls�lr�lq�lt�lv�lw�lu��+� �1�L�M�R�K	�)�Q�N�O�0���lz�*�*�*	�5�4�1���*� ���!�*
�`�¯��

����
�ю�u�
���=���h�l��lU�lV�l{�l~�l}�l|�l�l��l��l��l��l��lWº��l]�lZ�lX����l��l��l��l��l��l��l��l��l^�l_�,����������7�9�8�;�>�=�<��#�:�;{�*E�;|��#�*@����b��������<�z��J���v��]��U(�Á�n
�.�T���3��
�VI���������&��&��&��&��&��&��&��&��&��ۖC���*�*�*�*���&��&��&��&��&��&��*�* �I�d�҅�*��*�*�J�d�҅�*��G�H��m�&��&��&���m���&��&��&��&��&��&��&��&�ã>ã?�Y�����K�g���%{�&��c�;��&��&��&��&��&��w�r�Y�&��&��y�R�&��&��&��t�c��	������;���m�v���/%(	�����I���VQ�������O����@�.�(
�v�&�H��H�-�5�v
�Պ'����*�*�*����=�G�H�>�K�B�L�A�@�e���S�)�*�T�h�����N�P�Q�O�f�&��������&������������� ���!���/�5
���@���`�}���a�[�_�����m�������[�\�*,�*-�nL��2�
������Zb�����*n�u�v�*o�p�s�q�r�y�J���J�)��z����/�W�����������2�H���2�H�o
C��
/��B��Zb�������)��)��)��)��*=�)��)��*:�*;�f���
�L��&��	���3�����ρ����tV����?�����F�����@���A������Z�����sU��������T�‚5Y���V�����������-�.�\�(�)4�o�p�r�9�����x�s�t�����v�w�������;��G��
�X�N�O�P�M�I�����������H��
$�L�Ł���c�\�����Z�]�^�_�`�Q�k� ��.�����5�4�6�y�z�}�΁́������k�©�����¥��������������������;����󣦁�����PYf��F�T�[�U�V�e�g��f�g�e�\��i�]�_J�����������h�&�j�i�%�i�	i�
i�i�s�t�u����DU
Z�ޏF�^G���������������Rx�q�i�<�i�������������C�K�F�J�D�L����#���������������x��
���������a�b�w��x�~�ȁ����������c���e�f�������������������s	�t�d
���z�j���������!�#�&�'�$���|�~��
�~�%J��$������6�抪�����Z�����-�i���򣤏��~��������.�/�k� �����-�S��t���:

G�R�$2.f�����Y��C�D�E�1��1��@�o���A���B�����p���
����
��
��
���������2�6�3�4�7�8�9�:�k�¥Q��s�O�H���֏1�Za�=����������������������$�����;���������'�������;�������&��*��+��$��Dž9�p����������k���Ÿ�*`	Q	���{'��	9/Y���	�hr��Tk\)��A�F����$��XCi'�u9V����� $��v��	�R���{��)/�)1�)2�)3�)0�;��;��;��$�%ß����)������������������â�â�����ß��Xß�ß�������â��&��&�����������������k����k���(���������������);��&t�&u����w�}���0ã�ã�ây�IY�I\�I]�I[�����������(�����)�)�)"�)#�)%���������l� Q�:�����ځÂ��9���l��d���V�K���IR�IK�IM�IL�IT�����������������������	�����
�4�����8��$ �u�k�������)6�)7�J&�J$�J%�J+�J,�J-�������`�����P����),�)-�)*����O����������������������������������������f���
���V���������󆜋R�Y�)=�)[�)\�)>�)Y�)Z�)E�)G�)H�)C�)?�)@�)D�)F�)_�)A�)B�)M�)N�)I�)K�)L�)J�􆜗��)Q�)S�)T�)R�)O�)P�)U�)W�)X�)V�);�)<�)]�)^ã��IO���IP���)
�)
����k��� 6����́�?�}C��a#"�� ������o������

7h��������:	0%?���Մ��R>�������)y�)�)��)z�){�%`�������l* ���M���������.������(���H�)���
�ܩd�����1�2�l¦��ā�����To�2��CSA�)����H�Y���)��)��k�§�k��k��k��n�ކq"�䑿�����o���Q�R�k��� ����y�k��k�¡k�k��k��ن����k��l4¬#��l5¬#�k���	£����	B�@�z\D��O �����L��
Gj�+��4S9�dA���l/���l0�l2���n�����l+¦��ׁ�����Xo�9��?W?�)��)��)��)��J�J�J	��H��*X�*Y��U���l7¦��*�l8¨��)����)��)��)��)��)��)���6���"�����)��)��)�������6��O�\�������[�Z�[�`�a�_�^�]�����j�0��N�G�������[
�i�0�)��)��K�L�I�J��4�������)�������9�����������)������
�3�Ԏz��j�r
�*��*��*��*��JR�*��*��*��*��*��*��*��JS�*��*��*��*��*��*��*��*��*��*��*��*��*��*��*�8�*�8�*�5�*�8�*�I�*�I�*�H�*�H��z���rr�*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��`�2��¡a#.'M��N����Ձ���	�Jd %��C8��w���ҏr���Ry���]�+H�Á�P�,��,��,��,�+J�N�+I�N�,��+K����M�,
�`���+���
y$�	��2��
���
���*߂��,��`��`��K�L�M�`�
����`��`��`��`��`��`�­��`�­��`��`��,��`������`��`��`��`�¬I�����`��
*�
+�`�¬G�������
ف��_����$��tMk�l��	��
8�a�_�+f�+e�����������#�&�'�(�'^�'_�5�+q�+t�+u�+r�3Q�4�m�M����o�2�1���0���'~�'}�'�'����t������������E�-�����	�
�
������n�L����)�*�+�C�D�p���4<�H�/�.�G�4>���a���������F�4=�J^.�6�7�'f�'g�$�;�:�8�9�I�J�`�
­����n��Ę��B�?�+��+��-�-�-�-���Je2�Jf2�-�-
�-�`�	¹��Dž��
�t�2��2��2��2Ƙ��=�>�J��@�A�2����<�J��J��O�K���M���U�V�W�T�X�L�R�S�P�Q�N�+*�'a�f�[����8�]�_�^���\�Z�`�a�'d��*��8�Y��'c�|��']���8�Y�b�c�'b�d�'\��+��8�g�h�i�
ۚ���+}�
ځ��]��(����b���'��
3�s�r�u�v�n�p�j�k�o�q���'i�'k�'j�����u�����w�x���y���{�z�'y���%�J]�'m�'n�'p�'q�'z�l�m�t���
������|�ט�+�Y��"�����'Z�'[��
ߍM�G�O����'s��|��|�+g�+h�+j�d�e�}���+l�+n�
�����*�Y��J��!���������
ݍ��� ��~�����������'u�'w�
5�T�������
��
ၖ����x�y�z�
6���2��2��'	�'
�'
�'�
�n�L�V��	��=*$w
g�7�Y0��ãnão���
2�
3�',��k�P�,��,��'
��		��>.��8@�=�*��,��T������j�����*��*��*��
�n�M�G�ƍI����8)w
e
�0�Y*���'&�''
�'D�'E�'!�'+����k�
�H�Y�ãr���J����=-��::�:���������������������������F�$���'3�'4�*��*��-'�-=�����������-�'6�D�Y��Jz�Y��a�2��2��2��2��2��a	�+�+�+�+ã��a�a	�a�a�a�
G�چ���k�¡�b��!�P�;���vL�-I�-L�-N�-M�-K�-J�,M�-T�-U�,N�
w��
��G���t���2<�2;�2=�2>�2��
��
��2O�
��J
��	[���2D�2C�2:	�2?
�2@
�
��
����2F�2G�-]�-`�-^�-_�k�¡�b��!�P�9
���vD�,J
��`�¬����F�	���-Q�-R�`���O�,Y��`�7��ª�h+3�]�i�ۍJ�Ѓ:�]H���������Y��,\�,]�
:�
;�
C���J���+�L�,h�����������P�+�K�+�M�,l�������J������
=�
>�,`�`�1��ª�]#	���%A����Fz�������U��&��
Ú7��&����
��`�­���r�-��܇W�q%�2T�
ǚ>��`���u�+$�`���X�k�¿T���+�k�¿S���+�,�,�+��+�
����q�-�		�/�q�'�+"�+&�
ӞT�
��
@�
A�,b�,c�+(����J�����+��+��,y���,s�,t�,v�,w�,p���,q�
I�
J�+��+��+��+ł�+1����J���+���f�++�,��,��,��,�,��+)����@�����2��2��2��2��2��+Ă�+3�+4�,��,��,��,��+.��sR���+,�+ہ��+��+��+��+��+��+܁��,��+݁�Q�+��+��`���@���`��
��w�
��v�`���h��s�'S�y8�`�"¬����`�¬����`��`��`��`�¬à��
��`�¬à��`�

��¡a#("B"��N������	�Ł��}A�I
U��B+	&��")?���8
�U����]���
���
�+��+��
��
��'�'�'���'��2��2��
��
��
��
��f�gßz�
��
��
��+����o6�
��
��
��
��,�*�������+����o6�
��
��
��
��
��
��a¬eu���d��z�(���
{�2/�20�
|�+����23�`�­��3(�����JJ�Z�2]�`�¬���3�KD	�2b�2c�2��2\�2g�2Y�2Z�
~�
�
��
��`��`��`��4;�+��
��`�+��¡pMe(-��C����LO<1YFOO�x"	65��X�D�#�$�2r�2s�2v�2u�2w�2x�`��`��ʲ�+\�a�B��+��+��+��+��+��a��:�9�k�¢u���U���0�+_���
���$��W>M
dN-���+Q���
���������c�)�J���J��`�¹��a­����`�¹��`�­A�s�A�B�@�+X��z��2���+^���2���+Y��s�J��+W��	�2l�2m�2n�R��t��X��2,t�p��a��¡����W����L
E
/1
RE	����B:�p�A���������-���V�H���'O�'P�4:�2k�k�¢d4��X?VcQ���V�W�Y�2y)�2z�2{� (�H�8���F�D�E�!3���"3��<�2*�,1�J�������v�ãI�
�2�����
���JW�JX�
�2�,��
�3�����
ך0�0�����v��+?�����A�-z�C�
ؚ0�0�����v��,����+:�����+8�+9�,����
�i��Q������}�-��
������
������
�i��Q�-�������������ȅ����Q��+��''�X.�>�.+f	�.��.A�.B�.5�.6�.��.8`�d�.��.��a�.��.��./�.1�.��.4�.,c�.:�.<�.=�.;�.��.��.��.>�.��.@�.A�.��.D�.E�k�¢ܥ8�pS�*ãããã�����(�2�������2��pS�2��)�*�2��2��2��2��k�¢�����*â/���2��2��2��2��J����ãz���n�����3�����2��D��H��D��H��G�u�[���������ã{�=�x���	Z�
�2��3�3�J��J��3
�3�-���*

J���.T�w�x�.\�.]�.��/���0���E�d���.`�F�.��.oX�-��-��-�o)(�.t�y�z�.u�.G%U����G���3�2�4���.X�-���&
	I���Uu�.��.��.e�.f�.QX	�.h�.i�.Y�-���*g�#�.W�.R(��I���fJ��M��A�mj�F�-��-��-��-��-��c�d�'��'��'��.	�.
�܁����'��������'����߁��'��-��-��HU�Z"���.�(�u�
L���.�.��-��-����'��'��'���I���ّN��B��=�-��z���߉��'�yS%�'�	��m/�'��-��'醴b�'��'��'��'��'��'��.}8�.����w8�'��
|/�'�U��'��-��-��-��'��'��*��"�'����Iã�M�G�Oã�-��D�K�L�����-�����	����n�*��L�
���U��������.%����\���.&â7â8�|�'���60���3�3�3 �3!�^�l����60�3�3�3�3�'����'��J��'��T�U�W�Y�Z�����un�%���Z�J����Ri���(�^��(�^�~�(�^�a¶]�I;��N�������'��'��a'�a(�a$������[�a¶Y�H�J�����a ����m�n�'��'��'��_�Uq����	�'��'��'��'��'��'��'��'��'��'��'��'����љ����ҍ�5�'��'��'��'��'��'����'��'��'��a�
������h1�q�c�b��'��'��ҍ:k�a�'��'��[�Ӛ�Ԛ�����'��������K�K�K�K�K��
=���d��Xz�'�J��������k�»χJ��,�����k������
=�����Xd�J�	�J��-��	�J�	�$�w�F�������k�-��J�����
�������x��;��Q���&��2	��Rt���2��2��+�,�k��j�v�2��2��2��՚��P�����֚���������Q�i���Rs�����p�ՅD��3�������(����R�����bL²����b���.pi3�$��!�X������9���-��-����T�2������.��7�⁊���J��J��-��3	���3
���:��8�&�s�(.F���
�-��r�)E���-��.����J��s���-ڝ��-��������a*���a+����a,����bM²�'�,		ghN�2���X������2��-��,�-��0��J�-��-��၊�-Ƃ"�-��-��3���{���3�:��Il�����`�a�;��Iq�R�J��-��J��-��-�
�-�
�-�Gj�.��-�Ll�.������.�� |�.��.��������bO��¢������ԁ��Y�t���S�('����L.�T		
P�f����n�t*-���/��k�T�
��W	a*)*â�ßßß1ß2ß3â��
T�
U�l��������Xt�K�K'�K(�K �K"�K�(+��K7�K8�0J�0\�K5�K6�0H�0I���0[�0P	���0]�0^�K*�K+��ɛ��0L�0M�KB��O�0��0i���K;�/�t�/�t���/��l��������Xt�/�d�KF�a-��։QT�w�a0�?	ß9�0f���0g���a.��ՉQ
���0b�/��/��/��/��>�e�VE\�ßIßN�0��0�ßJ�k�¼"�с�+��P�o�0|�0}�.���.���($���(&�k������*��O�o~���p��.��O�����Kn�Ko�(#���( �b�&�o��(!�x%ãã�����?��FZ��/�����]����"�Kk�Kl�/��(<�(k�(l�(=�0F�2�����Kx��-�D�����v. %@	���c
�	�W�ea�39�3:�(w�/�.�/�-�l�������3=�3>�/
�/�(t�(u�3<�L����/�0&���0'���K������Ű��0"����i�q�zß=ß>����qW#c�㛧�T����(~�(������������&�p�o��0E&��+�X�3`��`ß?ß@��`�3]�3^�/�$M��*�X�(�(�/{$M�S�3O�/�=ß:ß;ß<��'�
���n
5	!<���Y
��T��ea�/�3Eß7�//&�k�t�6�3I�3K�3G�5�.�X%ff�s<]�����������������������k��k��k�£1�k����0l��
���
��	�/1)�l¯ȍv ��I6�t��(E�(FßA�(��w��(G�(i�l�(H�K}�K~�(X��M�6�()�(-�/P�(K�(b�(c�(d�(e�(f�(B
�F3���(��(��(I��l¼F��I�8�(C�(D�(Q�(R�(T�(U�̍��,�������և��u�k���w���k��k��0��0��0��0��l
��|�l��{�k���v���k��k��N�k��k��k��k��k��k��k���u��	L��T���K�3&�(@�����K�T����%���/��
@���/����0��//�e�0��0��/0�e�0��0��/%�/(��	E�/)�/&���(.�(0�(1�(/�/	��;���/$��F�/��E�/�/�/��/*�/+�/,�/3�/4�/1��F�0	���X=�������K��K��l�l�/@8���/x�/y�3g�3h�����W<���I�*�3m�l
�3n�K�������W=�������Ә��Ԙ��������a6��¢���}�����N#���g�M-�L_�#
 .�Vo��2Z��)
�%��k���M�2	��h	^#'*âH��	����âI�3r�a4��l�0��0��K��K����������a5��l�)�
�����6�7�5�9�:�;�=�W��ã$ã%�ǍG�t���(*2�(^�(9�(\�(]�3q�Ȍ������k�¯��k��K��K��aJº���aI���a<�/���0�a=�1�(�B�C�a>º��a?�a@�aC�(
�a;�(�(�(
�3�a7²��=�r)
�[�����}�?�aV�@�aU�aT��	���`�p/�⁘���ҙ�W���
������� �(��(n1�0��0��(o�K��K��(p�(q��t����X�������(��(��aH�������������������������aE�aF�/^�aW�v¡m��+{�?
��|�,$j��Q��!2.#��.����/
�T��#riO�)�"���$���8�5�6� �,�2�-�.�&�'�*�!�am�ƣ�=�an�Ƣ�=�a1.ºV	�O�P�`�E�aq�ar�F�G�a2-ºU	�(�H�I�4[�4\�30�31�(�K�L�3s���4T�a}²��a~²��/��a{�a|�3t���;�<�
W���L���
Y���4I�V�W�Y�Z����
Z�|�KY�KZ���[�����4a�
X�a�­�>�
�h�i�a��a��a�­��
�f���j�k�
\�6}.�(�a��>��\�]�Q�S�V�]�^�\�Y�W
�a�T�U�c�d�e�p�R �a��a��a��a��a��a��Sy�=���z:C�~�1�O�ag»�u�ah»
�t�ai�K��aa�ab�ad�ae�af�Q{�y	�F|-2���0��M�I�F���T���U�O�c�P�J�K�L�a��a��a��a��b�e�d�c�4e�4g�4h�4i�4f�au�av�a�­��a�­��a�"­�c�J��2�a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��0o�0p�a��a��a��N¯��a��a��a��2�a��a��a��a��a�	�a��a��a��a��a��a��a��a�­���a��a��a��a�­���a��atd��£����q���o�a�­��0r�C�a�«��#��M�a�«��a��a��a\Y*­}c�J�^���2�3�a��a��Kf�a��a��apJ*�¥;�r��:�a��a�­��ӯ��a�º��aX
u��¡g��+
#9�=��������%2(	���J-����
4�T���4k�4l�w�x�Q�ay�az�Cn	�_�D�����,�P\	���Ew.� �T�t�u�q�r�S��	�
S��ɞ*��
O�4m�4n�y�z�{��|�}�4R�4S�����k�£�:�Y-�����k�£�:�0�0��0��0��0u�k�£"�_r���������k��Är�ٜ�X��k����X��K������k�£!�_p�����k��k��Äu����K��3[��W����K��K��3\�o��K��K��0��0���	�����Q"�	�A��)��	����y��e�"�%���^�Sj��	���5��5��K��K��0���0��K��K��K��K��K��7�M�Ɓ��9�8��8��8��8��L�L%�L��L��L �L!�L"�L#�L�M
�M�L�L�L�L�L�L�6�Ђ������L��6���6����L,�L��L��L*�9��7�ā������L/���M	�L��7�M���7߂����L)�L'�L�L�66�L�L�L�L�L�L�6:�����M�67�68�7��L��LF�LG�LH�LJ�LI�LT�LU�LK�LL�LO�6=��6@�LP�6>�6?��LQ�LR��#�E6e!F�!:�ED�H�6$�6*�L>�6+�K��K��5Wj��C���K�K��K��L2�L3�L1�6��5ǁΖ[6�5��5Xj���,�I�K��K��5�B
�6�6��6��6��6�	��6��6��6��5��K��K��K��4r�Np
V�a�RH�����������TJ���L�L�L�L6�60�K��K��K��K��K��K��K��L7�LA�LB�LC�L?�L@�L�/�y^F	�-�GA�D�ih�9L�9M�9P�9Q�9R�6%�5��0���5��5��9T�9U�6&�6'�5lQ���;�\D���6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��5m�@�:�6��6��6��6��6��6��9I�9J�6-�6.�5̃&���~����	��gY���7��7��71�72�76�74�7����7����8��8��8��7�j�j��7��.�M;�M<�7��!�j��9'��MA�M@�M?�MB�MC�7)�7*�7+�7-�7.�M'�M(�M*�M2�M+�M,�M)	�M0�M-�M.���B�z����'A\�j'�7L���7O�7P�7M�8��8�ã��8��8��Lv�����A�y����&�6�V��8���8��8��8��8��9	��9�8��9�9�8���8�'� �8��8��8��8��8��8��ߍ�������AV�����V�8��+�8��9>�9?�8��&�8�E���7C	�� ��G
S���Lp�Lr�Ls�Lq�9
�5s�͂�H�5t�����8��8��ڝS�8�h�9.�8�f�8�B���9�8��8�8�Μ�`�8��8��8��8��79�7>�7<�7:�8��8�^5�8�����������	��������
c�8�h�8�c�8��8��8�e�0��U�8ӕy�MK�8��5u��S�5w�5x�Lz�L{�Lw�L��L��5~�G���:ƒ��6C�6D�5v���<�7��C�7��7��5y�H�7w�7x�7y�7z�7n�7u�7v�7t�L�L��7{�7~�7�7|�7}�7r�7s�7o�7p�7q�:���B��I�ȁ���!w���g�0�:�SN����9��9��8
���9��9��8���9��9��9��5����2	�c�9^�9i�9_�9`�(������9]�(����(��7e�7f�(������5��(����(��5��5��5����5����5����	�e�8C�9h�e�5����9m�b�5��~�w�5��}�8 �8!�8��L��L��L��L��L��5�y��u�3�8)���9��9��8/�80�����`����!t�5���4-�3�e��&3�&4�7U�	�7V�9p�ܨv�҂6�8(�8>�8?�8@�8=�9s�9t�ގ���z�?����8�6�7`�7a�7X�5��5��8�8�8�8�8�8���–�������9z�9{�L��9v�9w�9x�8���8�L��L��5���L��L��L��L��L��8	�����������M�9Z�5��x�8�M�5��x�8D�L��L��L��L��L��L��L��L��L��L��l£ަ�"�v$�>pl��������������K��K��K��M��3��3��3��l�M�������������5��5��:FV�m�8E�8F�:IV�8��8��:G	N�j�L��:HO�:��:��:��8K�Ւ����8N�Ӕa�8L���8M���5�����M��M��M��M��M��LV�LY�LX�LW�LZ�L[�M��M��M��M��M��M��M��3‚�q�D�*Z*�iV�:X�:Y�:U�:V�:u�:^�:_�9�j���9�����:R.�:��:S�:y�:z�9��:k�:g�:h�:i�:j�:T�5����:M�:c�:e�3����Y7�:o�:a�:m�:n�:j�?�:p�:q�:r�:s�:t�?�L]�Lf�L_�L`�La�Lb�Lc�Ld�Lg�L^�:��=�:��A�:v�K��M��M��M��M��M��K��:w�5��L
�L�L�M��Lj�Lk�Ll�M��l£ަ��s!�>n	e%����{
���Mr�MwâNâO�M��M��:�.�:��Ł��N(�:�-�R�Mm�Mn�:��G~	���:��5���c�Ɂ����$e�$�TfL>����V��:2���9��:1�9��8h���8u���8c�8d�8j�8k�8e�8m���8o�8n�8q�8r�8s������M����҂�b�������L��L�����
��T���������:��:����̓0�8b�����ԃG���8]�8^�:9�:;�::�:���������8z�8{�7��������:'�7��:��:,�:-���7����:��:(���y�„m�	�>��/����[2:&��e!'��]������pBEu�U6	���M\�7��7��6p�6r�6q�6s�6t�6v�6}�6u
�6w�6x�5)�5*�5&�5(�5'�6��6z�6{�6|�6�6��6����L��L��L��L��5"�5#�L��L��L��L��L��L����:	�с��:
��	���K��K��L��5ق��5��5,�Y�5-�Y�5��5��5��5P�m�����L��L��L��N�5N�����L��50�51�L��L��52���53������*�W�������5 �5T�7�L��5U�6�L��5<���ۖ�5=���ˁ������
�����UC���5��5��5��M_�5!�0����;�0��L��L��L��L��L��L��L����L��L��L��L��L��L��Mj�Mk�0����	
�5��L��L��L��L��L��L��L��5ޗ
�5ߗ
�5?�5E�5@�5A�5G�5H�Mb�Mc�59�5:�Me�Mf�Mg�7��L��L��ウ�������x��G�ˁ��䁈��
	�����'*��(�05P�U�	���6������6����MO�MP�6��7�9ʔ��5`�,�8��5a�8��8��>���9����8��8��5^�5_�5\�5]���������������������������y�
�Vb�5k���������7�������������6���T�9��9��9��9��9��9��7
���d�̟$�.�����7��͟$�7�7�E�%|+����	�(?��(�s�:��:������������5��%���$>�6����6�����6���*�������7$�7#�7��7����i����q?
��
����		�!��%�`�U��8��8��9��9��9������9��9��9��9��9��9����9��9��9��9��9��5J�?���7	��"�7�����9��9��9��9��9���	���������*<��(�p���6	�6
�7�7��7��7��7��5d�5e�7�7 �9��9��9��6�7�L��7��7����7%���7��3��3��M�M
�7��7��������5����6��6��6��6��6��6��K��K��K��K��5K��M�6c�6K���6��6R�6S�6Q�6��6P�6O�6W�6V�6L�6M�6Y
�5�\
�5�h�6b�6��6��6��6��6��6��6h�5��5��6j�6i�6k���Á��v�hj���:��:��:��:��:��:��6 ���:��6�:��:��l�£U.���GK�]�;���9�������d��|�Qل4e��	â�â`âbâcâa�b�b�b�b�b'�b+�b�b�b�b,�b-�b*�b(�b)�b �b#�b"�b!�b$�b%�M��M��T�����;��;��3��4�3������M��O���o�M��M��M�ßVßW�l��3��l��l��3��(��;���	���j�qßS�rßTßU������w�ß]���Vß[�N@�NA�M�N�M�N�b»B���:���������bp�bq�b»A���^���N,�]�\�[���N0�N1�`���X
�Y
�N3�h�y���bJ®	�X�b	�b
�bs�b3�b6�b4�b5�b8�b:�b;�b=�b0�b1�b>�b?�bK®	�X�b�b�b�b�bF­�,�쇆��9-��E���n����@���b@�bA�A���>�����?�������M��M����(���
w��#��<�3��3��=�,�śA�2��NH�3�5�6�7�N7�N6�-���.��A�B���������#�$�N9�N:�N;�3�â��3��3��;��bB�e£S.���GE
!
�T�9��
�9�������j���Q؄4e��	�vâ����u�bH����9��
���3�V�ã�ã�ã�ã��
����b/µw���ي��G����V!���������'��������r�M��������M��1�����4�3��3��4��p$����ã��4�o�C�D�Nu�`p���������Ÿc���|	��������i�=Nh�k�oc�F�
�k���|!J���Oc����r�R%8�Q.	5��L1Gt�4��4������1V�1Wß%�4��4��4��4��`t�`u¯��l�(��N�Q��N�Q��l�£��Ƈ������N��N��1^�1_ã�ã��(��1X	�1Y	�1Z���l��l������l�¤w��y8�Q>�����N��c�d�e�f�a�b�`�½]�灙�1h�1i�1b�1j�1k�1l�1n�1o�%c��%d�1c�1d�1g�`w��D���`x�`y�`|�)k���u�R��`��¤́��i�`�����b�»d������������������������������������������b�»d����1p�1q�1r�`~�­�������!���$��6%�������b������M������m�W�n�W�b�­��������Z�»��1s�1u�1t�1w�N��N��N��N��b��b��1[������	�N��N��N��N��N�	�N��N��N��N��N��N��N��U��H�Iã��N��N��N��N��N��N��b��N��N��N��N��b��k�¥����%�b}�.¨ǻh�b~�-��1�N��N��N��k�¥����$�3��s�3��3��`r����¤V���y�tQg�-����j� ���&7�T��`�`��M��M��r���٥��`s¯�����J���������#���P*3�T���â�â�â��(��(��1P���(��(��J5�(�m���l�«Q�����N��N��N��N��N��N��N��N��l�±9�����N��(��l�«K�6��
�m���O\�T��(�â���P�1S�r��1T��T��T�b�µ����b�µ����	�R��R��l�£Ɓ������>��(��(��(��R��R��(ڧ�`���C��		Ÿ�
n�,0?6'������>��������

����tX�y
�������)�ɂ��O�U�j��T^bNl���6�<��@{�@|�B��B��B��%ȗK�Q�������l�±Q���)�$���<4�<5�<?�<@�Eo�Ep�<7�<8�<:�<;�<A�<B�<=�<D�<L�<G���<�$�<$�<!�< �)�<
�<
�ɥu�1�ʥ[�<&��<'��<M�<N�'���%ΗK�l'���l��l��Ex�%��J�k���Ew�%��%��B��%��J8��=ۈ��=���
��%�J�����=���	���
�>��>��E}�%�â�â��bd���T������9
����bY�bZ�b[�b_�b\�b]�b`�ba�@��>A���@��>B���@��@��@ۅ��<p�Ձ���e��D	���@��@��@��@��<q�Ղ;e��C���?��?��@��C�C
�<v���=��y�Au�be��	�K��������9���g�����F#�F$�@م��bc�g��l�8�΁�����â��@��@��@��@��<s�<t�<u�=��><�>=�=��bh��R�=��=��bi���%��%����<��I�ޏ�)��;��킲��3lN���#�Y��â��<[-�<��A��A��A��A��A��A�â��<��<��A��A��<���<����<|�<}�>��A��A��<_���%��<��<��%��<��<��@��5�b_�@��@��?2���?3�@��@��?��<�@��>���5�(����<�<��<��<��(����@��@��@�	�@�	�@�	�@��@��@��<`GB�ςI�����A��<��<��<��<��<��<��h���+�+�<���<��A��A��A��<���<��<��<��@��A��A��A��A��@��@��@��A��A��<��A��A��<��<��l��l������<��K����(��	�������(	
iM���&���
�U@���B��>�K�?��?��?������5�@�	�<��]���(�h�UM�<��A��a���\
2S���X���������A��A��A��A��A��A�<�A��A������<Q������A������A��A������<����@��A��A��`�«�
��4������J�P:��6b�Z	��h�Y�?�?�?�?�?
�?�A�A�������A�A�<��<��=�=�?=�<��?9�<��<��=�=�=�<��b��b��=�<��<��b��)�<��?C�?D�=�= ���<��<��<��<����e���A5������?���k��
�?��?��B�%��@Z�%��@[�=�=������������<���j���=�=�=�%ߝ7�a��Bo�����`�«�
�2�	,a����D�
PD���3\�\
��f�W���&b�&d���C�����󎃈�B��'���"g�\
���E��E��E��E��E��E��B���~�A�����D�8��	�B���
�]�A�A�B�B�?F�?G�A�A�=&�=(�=)�='�B
�B�������B�B�?N�?O���R�������	���u����U�Zr�&�E��E��E��E��E��B��?���?���B��B��=.���?�?�=/���B��B��A,��A�B��B��A�?������A!	�A(�A$�A+�A#�A"�A%�A&�?���%��F��l�3���%��F�������r���������==�����E��E��=J���=K�B��=>�����B:���=?���=F�=A�=B�B=���=7�?#�?*�?(�?'�?&�?$�=:�=;�=8�=6���R��$������|�
��<�Zr�B��B��B��B��1��p�A�1��1��)�L���<������������К֎n��������������B3�?��?��B�B*�B+�B,�B-�B/�B.�?-�B!�?.�B�B&�B"�B�B�1������1��`����{ŸȄ�Y<($���� >����d>�����x�����?	)������}�������?��=��&$�n�&%�n�@_�=��=��=��=��BG�BH�BI�BJ�=��BK�BL�'Y�*	������]��AE�AF���<�?��B@�(Z�AM��=O�AN�AO�AP�?��?��?��?��?��Bf�?����b=�AL�BC�BD�AR������?���������bT��D�΁Ԃ*�@�?����=��=��?����BN�BO�?��?����R�߅v�*���U���A:�)�A>�A?�bUªC'�eY	<K���� ;���>�����(��b�v"?	%���������������=��=��?��6�=��=��=��?��?��?��0�?���������	��k�
���bS®1�3���Ԃ*���=��=����-��'�K����
�=�=��=a-�=c,�=b.�=��=��?��?��<��=^�E��E��=_*/�����=`*.�=d�=��=��=��=��?����bV��'�#����	�=��=��=f.�…��=h�=i�E��=g	�=s�=p	�=n�=k
�=l
�E��=��=��bW�?��?��?��?��bX�?��уt�B\�B]�=����BW�BX�BV�BY�BZ�?��E�����������B[�=S�s���>��=X�t�=Z�t�=V�u���=W�u�=T�u�y�BB�����'��1�1y2�kj��B��?��?��B��?��?��E��E��?��?��B��t�?��E��E��E��Bx�By�Bz�B|�B}�B��=����	�$�?f�?g�=Є��3�Af�=������$�=Ȃ����n	��=΄��=��?��v��Aj�Am�An�?_�?d�?`�?j�?��?��?��?��?V��
�j�?X�?Y���@�@
�?W��A\�A]�A[���E��E��B��?�-�?�,�B���1�Úmg2�d`��@�@�%��@�@�?[��E���n�u�F��y�w�F�����?��#�F�F�@�B��B��?��?��?��DŽ�_#�"(�W���b�(
�,m�J�"�D[�C��C��C��C��C��C��C��C��C��C!�bd�?p�-�C�C �C��C��C��C"�bd�D��D��D��C��C0�UYD�E&���I��C4���E"�@)�@*�D��C��C��@+�B��B��I��C1�S\B�C2���C?�B��B��`��8£ׯ��-�W��YF�D��D��D��D��D��������g�C=��Dk�Dl�C��C8�
�C<�C6��l������@�@�C�o1Y�D��D��D��@�@ �B��B��@#�@$�@%�@!�@"�`��:�ҕ�,�V��W�l��C��C�x&^�Dp�Dq�Ds���E5�E?�E6�E7�E8�E9�E;�EA�Dt���E>�D��Do�C��M���V4���@&�@'�@A�D��@>�@?�@D"���@J�@G���@E�@B
�@C
�D��@K�@L�@M�N�)����_M�E�E�D��E	�D�D�D�D�D�D�D	�D
�D�����ES�ET�C���^O�D��cN�E�E�E�E�@(�l���Ċb�W��;����I
��D��D��D��C���H�D%�D'�D,�D*�D(�D&	�E
�E�C��C��C��C��C��C�
�}�C��C��|�C��C��C��C����E�E�E�C��E�E�C����C����E�l��l��A}�Cg�Q�D��D��D��D��D��D��D��l����҃����x

�D0�D1�D��Cc�+�D��D��E�E�C��C�C��D��D��ұ������R	�D��D��C��C��E*�C��(	\�C������������O�D�a�D��D��C��"Z�D6�D7�D:�D;�D��D��D��D��ֵS�@,�B��B��l�Ÿ߄�_�"&�Z���N�'�$J	�L�!�C��C��D@�DB�DA�@.�@1�@2�@/�@3�@4�DD���,Z�C��D#�D$�l�£������7�.����:�l��l�¤�z��+�W���
�+��?NSoD)�s�C$�C��C��C-�C.�C��CF�C��C��C��CV�CW�CX�CZ�C��C��CB	���C��C��C��C��Ck�Cn�Cl�Cm�C��C��C��C��C��C��CCfc�C��C��C��C��@q����D�D�C,�C&��Cp�C'���D�C\ �C��C��ܖ{��#�����CR"�@�:	�Dy�Dz�D{�CN%��D}�l�¤�z���,/;
K���C��C��C��C��D�D�CU�l�¤�k� ���CG�D�D!�D�CH���C[�@5�@9�@:�@;�@<�@6�@7�@=�D[�C��C��C�u���E3�C�t�DG�DK�DI�DJ�@�@�DW�@�ݳF�4���v�DP�DO�DH�DT�DL�DX�`��݊�‚
�B��B��B��B��B��B��B��B��C��B�
�C��B��B��B��B��E_�E`�`���%	��Ÿ���0 l&�������}J-
/�����ҁ�	l�xNu
��Q�����%�����E�M�h���U8Ik�����������������������������>��%��>����$�?z�?{���#�b��:¬
���l��l��l��l��b��9¹��1��l��l��%�?�=����)�!�z�����A��A��I����؈C8�閣�����%�;�%��%��%��%��%��%�A�0�%�A�%�?�%�A�%��%������=��%�A�%�A�%�?�%�A�<b�Q�<c�`��*ŸɅOM����Q�	��(�������B5�TV�o 8	5
F�F��ف��b#p�0��E��E��%™��%����>S�>X���>��>��>��>\�>]�>Y�>Z�>��>��>��>��>��>U�>V�>��F!�F"�l���x0�C���>6�>7�>d�l���x+���>`�>c�C�>4���4����傪�����i�<e���>g�>j�>h�>i�<f�����d�';���~���I��I����3���������������>P�@�E��E��E��>+�>,�>��e�&�&�&�&�%����%����F�%��>������@v�@w�F�>��>������?��Q�	� 4(
A�E��k
�\"s�>��>��>��>��>��E��>��>u�>w�>x�>v�>y�>z�@�@��"�>�����5��(V���>��>��>��>��=��>��>��>}�>~�bl¶6�i�%*Y0���`���E��E��>��>��bm��H
�#�>����R��j�>��E��E��>������R���<ՇE�&q�C�C�C�&�΂��&�&	�&���@��w�&�&�&���D�`���w���w�@��&���@��@��@��@��C�C�%�3��f�>�=��A��A��A��l�«� �E��>(=	���)�)�>��>��>��>��>��>��>��l�«��D����	���)�>��>��>��>%�%��>&�A��A��ˎ&��h�<�����=��A��A��=�j�>�=��=��=��=��l�£��,�����F�K���>��F(�F)�F[�F\�F*�F2�F+�F<
�F7�F6
�F?�F@�FA�F>�F3�F4�F,�F8�F9�F:�FL�FO�FM�FN�>��FQ�FR���FV�FW���FT�FU�����l�£����@�J�l��l��>��l��凩�w�
��P$�On�Or�Os�O�������>�O��Oo�O�p�O����N��O��U�O��U�O��O�N��O�P%�P��P��P��P��P)�P&�P'�P0�P1�P+�P-�P4�O�Oâe������O�(�O�O�O�����#�O�,�܇�����,@�P�P�P�P)BH�P��������$=�Pn�P$@�O%�O&�O�P�P�P�P�O!�O#�O"�O �P��O(>�����Ok���PH�PG�O.�O5�O6�O4�O3�O/
�O2�O0�O9�O*=���PJ�PK�Oh�O,�O-�PM�����v��C#��x`!�O<��O=��P]�P^�O@���OG�OJ�OH�OA�OD�OB�OLã��OMã��Pl�Pm�Pc�OQ�b�Pe���v��C"����[�OU���OW�OX�OV���OT�OP�{�PQ�PX�PR�PS�PY�PZ�ON�OO�Pq�Pr�Ps�Pp�OY|��X�O[�O`~��W�O��O��OZy��V�O��O��O\��VX�P$�O��@�����O��O�ã�ã������s�	���.�O�P��P��O��O��P��P��P��P��O���.�4&�O��O����O���y�[���O��O��O��O��O��O��P��P��O��O�O��O	�O�O�O�I�O��P�P�O�'$���O��O��O��O��O�&�O��P��P��O��O��O�������[


	��)
âd�P��P��P��P��P��P��Ov�<�O�3�O��Od/$�7�P��P��O�/�O�E�O�D�O��O��O��O��O��O��Ow��	-�P��Oy�O|�O}�Oz�P��P��P��P��P��P��P��P��P��P��O��",�P��Ox	��+�P��O~� 1�P��P��O��O���B���|���V�������1*�����1(�1,���Q�]�M��R�]�M����Ņ\��}��~�o�p�y�z�U�V�r�u�s�t����,�0�B�;�18�19�w���x�14�12
�1=�1<�1/�10�����{�)���|�1B�1C�1N�Q�:�������������R�9���������������b�µ�L�w�������������b�±���K�v���������X�Y�������I|ß�ß��O�P����mi�
��bj�bk����li�	��
�â â!�C����6���d�h�j�l�k�i�Z�[�\�]�c�`���a�T�?������U�I���2�4�5�C�D�A�3�<�=�:�;�6
�8�9�7
�����\�[���N�ã��"�#������������������������������������������������������������������������������P¼����P¼����������������������������������������������¼����½A����P���������������������������������������������������������������������������������������������������m��l�RA�RC�RD�RF�RH�RG��q��r��p��o��n�P��P��P��P��P��Q�P�����?��@��%��&��������������+��
 ����1����<��6��:��2��5��3����"������ ������)��A��B��
��#��$�����P��P�ã�ã�ã���J��G��H�Q�RI�RJ����ã�������Q
�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q
�Q�Q�Q�Q�Q	�Q�Q!�Q&
�Q)�Q(�Q,�O��Q-�O�ß�ß��Q'	�Q0�Q1�Q"�Q#�Q%ß�ß�ß�ß���L��O��P��M������Q¼��QA�QB�QC�QW��W��X��R¼��QJ�QK�QI�QH��S¼���T¼��QD
�QE
�Q8�Q9�Q:�Q=�Q>��Y��Z�Q��Q��Q��Q��Q�ã�ã�ã��Q[�Q]�Q^�Q\�Q6�Q7�QY�QZ�Qo�Qw�Qt�Qr�Qm�Qn�Q�Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q_�Q`�Qa�Qb�Qf�Qe�Qd�Qk�Ql����~.�@���j½���k½��R(�R1�R.�R,�R9�R;�R:�R>�������Q��Q������������ ���_�Q�V�Q��Q���_�Q��Q��Q���`�Q��Q��������R�Q��Q��Q��Q��Q��Q��Q��Q��Q���������^ ���4�Q��Q��Q��Q��Q��Q��Q��Q��Q������e��f�R
�R�R�R�R�R�R�R�Q��Q�v�Q�x�Q�����~�Q��Q��Q���g��h���¾]��a��b�Q��Q��Q��Q����¾d���¾/+�Q�*�Q��Q��Q��R�R�R�R �R!�R"�Q�;�R%�Q��R�R�R�Q��Q��Q��Q��Q��Q��Q��R����Q��Q��Q����¾b����R?�R@��[��\�Q��Q��Q��Q��Q��Q��Q��Q��Q�
�Q��Q�
�Q��Q��Q��Q��Q��Q���w��x��t��v��y��z�RM�RO�RK�RL��������������~½��Rv�RX��½��RV�RY�RZ�R\���½�ã�ã�����}#�Q�R_�R`�5�������������������R��R��R��Ra�R|�R~�R}�R]�R^�Rb�Rc�Rd�Re�Rf���½��Ro
�Rl�Rj�Rq�Rg�Rh������
����R��R���D������������ã�ã��������������������������Q�Q�Q�Q�����������E���������������������������������0Z#���;.���+#2�o�*P��.�����1��O"��t6��D•�	��E�w>���M���Gh�I���:,����Q����O����
�i� ¡������4��	��
�e@�eA��������������eC��������=��
��������6�����������y¡�����z¡��eL�eM�eI�eJ��\¤F�����f��©���h��i��l��k��g��]��[©����������	#�G¦�����2�eO����eF�Xt���>��������������������������e=�e>��8¯��Y��9¥���������3�A�Ä��	—�-�l�N
�!�bs����R��R��`��p}�W��W��W��W��o��o��p��p�������̂Yx�xœM���x��!��±��ot�ou��"��±��ow�ov��*x���c��c��c��c��c��c�����]u½����w��)u����p���&��'����+�����U��œ
���я�'�������������������������������R��R�����������������������������R�����R��R��R��R��R���锴��W—�����Vµ��p����¹��p���������������›���w� �������������R��R��R��R��WP��������䅘��
œ
���������������œ9����R��R���f�)œ��_¹���b��a��`��c��d��g��h�R��R�����R��R���������G���_¼&��`¼%��,��-�c������G���⃙�a��������•�6���������R��R������������o��p��s��^!������¦���	���������pp��Z��[�pw�p��p���t
����'�c���������������������D�������I����0�q¸�`���u
�ڌ�Ÿ�����R�����/V�����������n��o�����HI�!>�����ńv�
—�	-�f�M
����r��	������n—���—���
��4��5��;�.��i�����WR��8�����R��4��������݃�RB�1*.���f�8��”�7�Ã����,�	��<�������������������������������D)I�©������E��_�������/����.����t(+	�	�
�8��¢������P��?-I��ps�pt�pu��
������F*�p~�p��p��p��U'��Q��R��S��G'��H2��I��J����ËW®������c�����ËW®�����������!������	����R�ă�(m���b�
�t—͎ރ���������f��g��`��b��a��e��d�������������������������������²N���������f�'u�6��������������������,��������������]
�*p�%��`��_��^��a7���ȌK�s������������������������L�����	��������<���������;��y����š��ԌU����9��<��;��:������U��V��W������;����T��b��	����G��M��e����d����c����f����g��������������!��;	±x���W�����m���n��������������������������������X��������:�n��´S�������%2�Q<	��<�����3�������������3�����|��4��Y��[��Z��\��R������B3�Ps��D��C1�OB/��
��S���¿�C��o�	�����u�����������������f���r���������p���n�����������k���������l������v������?'�V��V�����™��6�������.��/��"��#��0��1�����������������������´	��������������������#�c��v��+*��-'�'�U�V™��݂	�������������������������������������e��������f��%�y�	%���ʙ����	����������������������������0:%����´��5��6��7��:��+�������ʏ���-� ��/����������8����(�������������0����2��3��1����D��E�a.�a/���������,������������i��������������j��k��������������������������������������¶e���¶d����e�+��捃��m�������k�������������o��q��p��鍊��t��ꍋ��w��z��y��x��{��|��ԉ!�����+����z4���6���3��~6��{��|���������������������������������w�:��P^����,
>����
$:���
�s—���������������#�A�������b�����������N����������@����?��������������������������������Y����Z��������f�`�v�Y����ڋ��|��������������
������
����]�f�; �s�O��"�x�������]�n�>³�����������������
��������������������	�����������������*�t
����������@�	�#&;�舐��	–$
���憴���������������������&������'������*��)��(����-������������y�kU�j¼���.�����*��0�����*����;��������0��2��/�����	�aS�=29�–	��^��������������������,�h�)�������x�nP�h¼��������I�o���)�����U�\��D��Q�\�@��R��S�[�@������T�W��B��*��)������A—ўQ����ǁ���������—������ž��������������������������c��c���P�Y���
	����
	����
��	
��Q�k�������� ����#��$�Sx�Sy��F�����G�S��S����
¼I�X����¼I�Sn��qy�����ž�����W|��y��z����|
ª9�؍Ӄ+����)��*����{
ª9��)�g/+�Sq�Sr��0��3��2��1��4��5��%��(��'��&��/��)��*���FC�3�E��J��Uq5j������4^��_���M;U

L�����E	\�&�4•'g��k'�1u)��[8!����B����L�c��������������c��������&��'��%��������8¼y���L��´�����º!�������
�����
�������������c��c����º�����������S����—(������������¹"�����������v k��B�����������������������SᄄU��S��S���+��,���p�������t������������p������d9�d:��
����������Ճ���0�~��˜����2���"��Wr�������5����������
����ٛ'<Ÿ��>��ڛbŸ ��=��]����S��T���������Z��$�����#��"���X�������.�1—�"����….$�����+��*��)��&��'������������������������������������������J�����������������������ԃ�
��%�|�y��•5��1��� �����ӂ�����ւ��Ԃ��ׂ��؂�c���օ����•2���%���������Sf���������`��`���������<��=µ�������������Br�rtB�W�����������o��p��p���������������������������������������������������:��;��A��>��G��D��B��?��@�����������<��=��U��Y��X��V��Z��[���g��J��H��I��Q��N��L��R��S����d6���rž��X8�Sh����D��E��F��������H±���L��M��K��J��I��P�c���3��8��6��4���
�w�������C��Z	�������#—�4���Ӂ��^?)�Ӂ�������X�����p���y��|��{��z��w��x���ƞ����
����3��������]��^�R��R��������������������������������̂�������V��[��Y��W�����������������������������������������;�����������%���Y��@���#—�6���с������
����d,�d-����»Q�����ڂt��&¼���I¯�
�����������`��i��b��j��a��c��d��e��f��g�������d%����p���%�ƍ.��k��l��o��n��m��p��q���¼�U����`��`���s��u��v��t����������'�������������ž6�n��C�Wu�Wv����9��������������������������S���5˜���7�WY���������¡���C����������������������������B#�T���0µg��������!��"�����������������܅če��������������������������������������������d������	��
���?��������������������������C#�n��*o���©O���������$��%�������G��������������������E�·8����D���6�J
5��Ɂ�D»������������������҂�������������������������v����������h������p�����������������D��H��E��F�a5�������������������������������������FA�3�7��J����70���ņ2		Z��V	��	�4
2/%'�u�ͅL	V�"o��•#$f��&	6+!���c	P%��[5
��B����K	Rg�-�W�W�W�\K��_��`��b��a�g��g��W��+��,�\N�G�W!�W"�g��g��g��g��g��X��X���f�g��g��g������\O�R������������� ��i��V���h�g��g��W7�g��W-�W.������8�F��¤
l���l���W1�W:�W;�W<�W=�W>�W?�WA�WB�����}��¤� �k��������g��g�����WC�WF�WD�������������™�
	������f�g��g��g���:�������LR�����0Q-'��ՅP—�z���J���\X�\Y������������������������	���w§�
�\`�\i�\j�\k�\l�W$���»7�W&�W(�W)���²��T��k¼L���½����´�������´����´����´����	´��������������\q�������������/���/¨�	�A���\g���²��W�W4�W5���­O���­N��Y�������E��F��]��5��U���x%?N	��J—�9��������:0�⊍$����g��m�`������S+�`��S-�S,��������Q��T��S��R��U��V��>��©���(�S1�S2�`��S0�~%�����$��������C�����������ދ&�@—�	�@�S9����T—�E�S=���
�S>������
���
���
��D��E—���F—����*Ÿ%�n��	�����
���`��`�������e��š����P�X3�X4�X5����6�d£\����c����������������`����a^���������������
�X��X����������������������oj��r�������q����4;���	���K)
����(	C—�7������	�����
������
�S6���
���
����	��A�H��š����4�������������������9®\����������p��p���J��K���©=���ª>��}�a©��`���������������������~�S���������9��:�S���I�-����J�-����s��t��ӄ�v¼�������������c��d��e�����	��=�Ƃ��~�ہ݅U—�����������i��4��ߌTF��¨�����j�o°����°���K;
�B����?�����=���N
�̂�X�u	:—�#f
"���M<�����
�䁨=�Ë0{���� ¥���m�YF�YG���� ¥��T>�#���dg�dh�S��S����e#�ao�S�w�S����T
����˼�d]�T���������������������������������������µJ�������©8w�����©7w����������L+*·���x��y¹G�X�����X��X������������z,�¤T�X�W�YO�YP�YR�YS�X��X���|��}�Y�����������{�@¤P�Y�Y�Y�Y�Y��S��M��N��������������W��O��P��T��R��Y��[��\��Z��X ,·���3�Ya�Yb�Y[����YZ�YY��с�¹�M�Y"�Y#���ºNJ�������YU�YW�YV����Y\�Y^�Y_�Y]�������S���ږ�Ÿ��(���Ÿ��(�X��X�������1—�
�i-�ʈ����T"�T#�T(����T)�T*��-��.�T	���X��X��X��X��X��X��T
���X��X��X��X��X����´��$�X��X��X��X��X��X��������������f©ϑ$�dY��g®u��i�X���j��k����X��X��X��X��X��X��X��X��X��X��������X��X��X��X���������9X
���.—�
�e!��*���������=º/��;���F¹�����:´��i���X��X������������%#����«|���5
��������������������T$�T%�T&���������������� ��"��������´���������9��:�����#(�«n������������´��������������������a—���µ@�c\�X��c]�X��X���µ?�����d��©<��f��g����'�G����+�D�e.�����m�X��X��X��X����¤4����j��k���¤3�������º��Y��o��Y���e������ž��������Ÿ��X���%�X��X��X��X���#��Ÿ����X��Ti�Tj��!������������������8����L����'%�F�I���@—� �����[
���/�_��v���!��/��0��1��2��4��3����T=�Yx�����SE�I����'%�F�P��@—������
��.�^��UH����{�Q¨���`�����.�T����G�AºN����G��)´_���o����(´ۆs��+��,���� »!�X��X��Y�Y�Y�Y�Y�Y�Y	�X��Y�Y�Y%�S��S��Y&����S����˜��Y5�Y6�Y0�Y1�Y/�Y3�Y4�X��X��X��X�����Ÿ��S�����%¤��Y-�Y,��9®���<��;��:��=®���>��>�dI�dG�dH�dJ�Y8�Y9��Eº9�C�o���Fº8�E��l´>�S����dL�TG��dO�TH��?/�H��@�{��A��D���Ÿ���dS�dR�dQ��>���dU��L9	�@����	 j��	�4�ĂA
�˂�X�j
8—�	Y
2��<5����
����/���ȉ������I�������������Y;�Y?�Y@�YA�Y<�Y=�YB�Y:�W���聵¨y�d���¾��T���¾����������u´��r�T�����S��S��S���p´�����������
��s�yx-˜�������������������d
-b�����]����A��Kw���
��%��<—����=��
��	1'�������MG�������T9�=�T:�=�YC�YD���£����£�
�������5��Ow��G¶�������������@��]��^��a��b��`�e0�e1�S��S������P�����K��������S¹��d�����Fl���8�$��—�������3����Nx��D¶������8���7�����������A��B���������X��X��YI�YL�YM�YJ����dp�Yc�Yf�Ye����d�S��S��������������dq�S��S��������TR�(�TA�TB��Ɂ̋�G�������������F�������az��VP�3���ڋ,�K����˜��&�N�T`�Tc�T\�Tb������Ÿ���������W�K���I�,Ÿ��&�N��6��5��4��������}��|��~���dz����…���pKD�����Y
$���~��˜�	
�ف�����10	�O��&�b�b����������b��b�\˜����	�������������������a��a����/��˜�����D	�o��o��a����a��P�a��O�a��a��T���g�M����C	��j��i��h��e��f�o��o����´���´�o��o��T��o��o���������d�a¥փ��������a��a��K�a��J�o��T���T��a��a������r�\¥�"��	����d��d������c�Z¨��������������������o��d�����d��d��d��d���������������������(��0��-��+�d~�d��d�d��a�����I�����Pž��X��������������������������������������������4����J%��´������������������������+���ã�a��[��;���
»K����������������������a��a��a�����a������������������������������������s����t����u��v��x��y��w����~��}��z��{����H��©��X������T��a�����"*$µ܏��U�������L��u��(�����������X��°�/���T��,��c�T��,�߃c�a���Y¿".��G���a��a����� �a��p�����"��(��%��#��/��2��1��0��-��.�p�p�p�����������������ŋ�Ÿ�������������� �������>��Ob�������5{'ž�	�܁�����������1��������M��������������O�[���ºK�[���ºL���������ºI���ºI�[	����[
��ߋ�'������,�������=�������<��?��@������������
�Nl
�p�����9w)ž���������������>������p�����������������������������������������������������������(�%
��	���Ÿ+
����I��J������B¦���°X�������a���ԂG�#��¦�������
������������b�-�����Ÿ,	����������݋����������'�#�3��¦������������������ؕ��B¦�����������������������	�A¦������������T��T������˜����d��T��T����®�	��ے������®�������®��Y��Y��Y��Y�����������˜����P���¾����	��˜��E������b�b���¾��T���U�Y��Y��Y��Y��Y��Y��Tą��Y��Y��Y��Y��Y��Y��Y��T���	,�Y�	�Y�	�Y��Y�	�T����Y��Y��Y��Y����	�#��
˜������������
������Y��Y����˜ׅ�J�Y��Y��Y��Y��Y��Y��Y��Y����������F
³F4�Έ�'��2�T��E�T��D��
�'����	7������	������
���
��,��<³H�Q����-³Z�N����/��6³O��7³O�Y��Y����T�n©�4��y���F�b�b	��1���2����
����¹�����	�Y��Y����5�����+����&���5�^
 �g����w��)˜�	��	����!�e1/
�O��7��	����E�a�-����a�-�a�-�����,���������������a�-�a�-����������L��N��M��������¯������������������������¯����¬��a��[!��I��J���A�������
����o��o��T��
�a��a���G���ž���%�$
�x���
Ÿ�����������
�������������������a��a���W��&�-���Ÿ�������������S������������O��H2u��5���y����1��–���������%���΁��a��a��a��a���������������
������������������������������������������a��������Ÿ*�}��������_���a���‰���B��C��D������������������/�������������@H����5��������¡�����$������[���a���^���ð���½����5�������a��a����������T��T��W��#�W��a�4�a����������M�����������P�������a�-�a��a�-�a�-����:˜׎H���I��G��J��I��H��E��F������˜׎H���I��>��?��B��A��C��D��/3|��d���T�$�8�Ɇ���
���<��
��������/—z�3�˂�@��g������	�v��			��+R��
3v�Z��Z��Z���}����˜ۓ��T��p��p��T���{
¸�
����|��e�Y����¸~�Z���¸������ZX�dƌK�ZY����~����«�����:¹���������9¹���p��q��7�Κ"��l��m�����ª����+��,��K�p��Jª���M£�p������n��o��8�Κ!����������������(­��Y��Z���������. �(�U@�(��T��U��V��X��������A#����,��–M�@
	�)��惊����U�N�U�U�K�T��T��T��U�U&�bP���bQ�U,�U-��F��G��9��,˜���8��O��
��˜����V�T���U¾��M��V����������R��
��˜��M���U��P��˜܎O��3��h��������N��N����	˜�����
����i��™����k�T��T���%˜��T��d��T��T��T��T���C��¦5��H¾��\�T��d��d���I��¦4��J��K��E�J����s�����������������������������p��D
�(���,���–M�@
	
�!��I����		�3���p2�p3��6£,��g���#����p.�p/��;���p-��B�����˜��'���
�/�#����<�b$�U2�b(�b%�b&��;��5���#���d�U�d��d��U�U��ª����>���^2���m��l�:¦@���惯������bC�
��j��l��m��k�bD�	��b°
��c°
��:��;��?�������m��l¬U$���񃣉�)�dόQ��`��a��p�Q�bB��*�;
ª̏
��q��p��h��+�<­M��,��-��r�d��d����s���¥��c��\���³B����������w������������������
�œi��������	¸��������������������<��.�����2��x�e�T���t���Ȃ�ߊY�:���—z���1��+���B���U6�U7�b��a�a �Zx��u�����'ªA�/�������������������&¯
����Z�Z���™o��U�Z�Z�Z���ž��.¢���/��/��6��2��1��0��3��4��J�6¸����cf���p���{��~�bM�bM�bl��}��|�Z}���Z~��y��z��H��I���j�6¸�������bm�Z��i����� ¯�����p�%�p����¼o��l���e£8�����������̉�³�����¼p����	'0|����D�&��85j����
���4��%
��8C�j}��
(—t�3��	���G	��`r����	(�S	��(O��	
r���T��f��O���������g��gv�gw�g���������������������gs��P�Z��䃖���e�e�e	�br�������bp���bq�bw�bx�e
���¸�3���by���bz���g{�g|���������������I
�7³̅�#�����³��Us����?³���2����������gu�g�g��������e�e
�e�e�e��[�p�}�2�s�ȁ��m™B��h�Z������¢j��^�&��떱 ��2���L
���L���9��˜��͂L�/������P��������P�ҫ��X��V�ҧ��T��R��S�����������������Q´��q���������a���O¢c�����������¸���]���¸���]�g��g��������UK��UL�X[��Z��Ou��4���$"'2��
"��*��c��
*—��s���C
:@��)��g,�Ջ3����0�b,�b-�����@�q��8¯��Z�������/���.���Z.��0��1�Z��Z�����
�Z&�Z'�Z(
�b ���¸����¸����¸���������3����K¬���[��^��]��\��U��V��W��X�Ub�Uc��!����"��&��5�Y�m���J 
	����UU�UV�������UR
�UP�UM�UN��4�b~��]�Ռ�¸R��"��2�Uf��#��1��{��G8!�������X—���qa�яN�b��b�������¿Q��$��%�b���^������Vž:��`�Ľ�Z�Z����X��ž;�Z �Z!�Z"��a�f����²́��Ė���7�����8�i�������>�������ZT_�ZU�Uj�Uk��)�E¸���������lj��� ²��������Z=
�Z:�Z,
�Z5
�Z6
��(�D��¢�]��u��v�����s��«G��i��w��x�����[��O��?'��?��?�q�)—���G)?�x=	�����
��?��@��\�сÌ ��F������������E/,�����œ��E�������¸��Z��Z��p���N���������K��b��¾����b��b���c��¾��������������%·h��&·g��������������R�����b�Ÿ����)�V��������������c��Ҕc օ����Z���Y¹2��_
��\��Z
��W
��X
�Z��Z���Ӕc.¥*���Z�����΢����Ρ��c¾�����)�V	�Zs�Zt��r�?���ًU�e��™$���Q���k&���B�X]�X^��h��i��:�����;��s�?���e��™$���
�B�Zq�Zr��J�g�X`��H��I���t�/��?��*� 4�
�t—]��k�����]��	��/X���e��u�ÿS��w��x��v�üR�U��e��es��,��-��.�b����½����e|�et�eu�e}�e~�e�e�����������b��b��e��e��e��e��e��e��e��e��e����½���
���b��b��b�����������������������������8���r��¦1����ea�U�����������e��e���������y© ����i���{©"�e�������
�������������������e��e���n��������o��p��q��r��s��y��z��{��v��}��~����²၉���������²������������������������������	������	������
���
�������<���q�n™*���*���e���c��e��d+����������������]��¦2������j������������������\�����������������������������,��������h������¯��e��e��e���4�X�d��—V��j�	����e�pf�pg��6��7������������O�`��—V�������������?��ºu��5�&�i����z��{��w��x��y��~������������Ί�����������������
����Q������eb.�pc�e��e��ec���������������������¿��$@��-@��.��+@��%F��&��'��/��0��1��#D��g��m��q��o��n��2²V��5²T��6��:��4��3��7��8�U��U���b­3�b��b���M����S��Z��\��[��T��U��V��N��O��b��e��d��c��a��R�������z��­2"��}��~���²5��1�2��L��K��G��H��;��W&��X��<��D��E��?��@��F��>��=��A��B�ex�ey���x�/	���;��*�N��t��•ق�_�����\��	��6	O���d���e��e��b����������������R��������������������ZºX����e��e�����¹��b���:���t�A!Ÿ͍������������u��²��U���²�U���
²��
��Ÿ�����3���������������[2�[4�[3�b���e��e���[��%V��'�_��t™��-����N�ZȌ5��_����a��d��g��f��e��b��c��o��`����^�����·!�������©�J�U��b�+�b���r����s��K�ej�ek��q��g²!����8��+�������������\����¿6�;���]¸i�5��Zƌ5�Znj5���������������������U��U��pd�pe��;������	
H����g�a5������*:>�>–�U��)'���D<�L	�]��4�����`G�������1#4
�a��·��o�o�o�l�l�l�l
�o�� ��³W����"��#����ǂ�±�����g��g������e�3žƐ���+�~�n*�n-�n+��l±����kb�kc���ž���f�4®���
�l�%�n9�n:�l��g±����o�(�������l!�l"�n&
�n4�n5�n'�n0���m�3žđ���f±�>�|�l$�l%���e±������µ����µ��m��m��Z��Z�����‚�±��l�l����l�l��b m�_���l*�l+�l,�Z��^���l/�Z��Z���얿��›����=���ă��m�m�m��ޖ��m��m��m��[j���hE�hD�hM�O�[k�hJ�hK�hC�hF�H�l���Ҏ�œk��z�%���h@���hA�����±1	���j��m��Z��Z����±.r�$���m��m��m��m�
�m�
���±4���k���m��m�������k��k��[@�l�[C�[B�l������›������²���������������tI��›��z��
�҂�[j�k�k�k�k	�k�k�k
�k�k�k�k����$�^��:›��{��B����������������������±���~����²M��������������2
�W³����#��$��%��&����(��)���g��������+����������������������[n���[o�[p�m���q��w��u��r�S��l��Z��Z�����	N���`$��#1��	�����G§�	m�xcC��������O¯����¼��.�g���w�l��l��Z��l��Z��hZ�h[�h\�h`�h]�h^�h_�h��h��h���£c���8�2��8´/�$�ll��9¶V�n��n��n��lr��¯�<�8
�0�g�����ȫ�$����������������m��m��������k-�1�g��l��l��l����	�:›��Ӂ���ymJ�����C��D��E��A��B����6�l��l��l��l���?��
��>	������e����e��f��:��;�g��l��l���x�l��l��l��lW�l��lY�lZ���	N���`�
#�������0§�	n�ua8�������a²��lu�����4��H­t�h
����������N�5­s�s����

���u��c�> č��p~c!-���g��g��g��g�����¼R�������������������¼����¼����������������������������������������¢r��O�������¼[�������������hW�hX�g��g���+³7����¼X�������������������¼Q��7���L±����Y���<��R��˜,�7�r�	���݁͂�hd�hg�hh�he�l���m��l��l��l��l��n��n��U����l��������������l��l��l��������l�����������C��p¨놊��P�����
�l��l��l��l���������T©������m��m��hm����hl������������7��S��a�e�	��Mx�����b��k��b��k����±��k����B��p®s������O���l��l��m�hq��Ԏ�S´���S���	�߁��.™*����2�ł=���l�����k��M���k��k��k��O���k��k��k��m��m��m��m����������������m�
�m��m��m��m��m��m��m��m��m��m��m��m��������h��h��h��������®���®
��µ�����¯����?��²���²��h���³���l��m���Ձ� :�׃ւf���l�����
¡Α��f����������°��k��k��h��(���h��h��h��h��h��h��h��h��h��'���n��n��n��h�����h��'���n��n��n��n��n��l��l��l���T�"p	�Ё��)™)�����%����<���U��b���³��������l�����®
�0�
�����p²j��q��r²i��s�������l����l��l������������x²V��j���~²U��{²U��y²X�����v
²Z��w
�k��k��h��������h���!���J�ތB��L�Q
;Q�	W
����™41���у�.�U� �r
M�JG����4�т��k��k��hz����hu�hv��T��U�����A�Y��›�#�����p��������n��n��h��!�k��l�l	�h�
��h�
�h�
�h�
�h��h��l�l�h��l�h��h��l�l���®G�����������´>������������������AU��
›�#�m��������²]���n�������²\���n��n��n��l���!�l��h��h��������m�m�h��h��h���[��_®4����\��]��������®3��_��`�l����F�ތB���(�Q
	2�Yb�P›̓jR�T�A�h
A
$��}����\f���j��j��j��i�i�iD�j@�jC�jA�ip�is�ir�iq�im�in�iuB�ix�iw�iv�j��j��iz�i|�i��i{�i��i��i}�i�i��i~�it�iZ�iV�iT�iU�iW
�iX�ij�i]�i^�i[�if�iC��j��j��j��i��i���i��j��j��j��j��j��il�i��i��i
�i�i#�i&�iC�i%�i$�i-�i0�i/�i.�i��i��i��i��i1�i2�i��i��i��i3�i9�i6�i4�iD�i:�i@�iA�i;�i<�i>�i=�i�	�i��i��i��i��i��i��iO�.�iP�-�j~�j�j��h�	# �h�.�i#!�h�+"�h��i�i�i�i��i��i��i��i��i��i��i��i	�i��i��i��i��i��i��i�
�i��i��i��i��i��i��i��i��i��i��i��i�	�i��i��i��i��j6�j�j �j#�j"�j$�j%�j�j�j�j�j�j�j�j�i��i��j&�i��j7�j
�j�j�j�j�j�j�j�j�j�j�j�j�j(�j)�j�j�nF�j9�i��i��i��i��i���i��i!�i�i�i�i�i�i�i�i�i�i"���i�j1�j2�j3�jD�jJ�jR�jU�jT�jZ�jS	�jY�jV�jW�jG�jE�j]�j^�jN�jQ�j;�j<�j=�j>�j?�jP�jO�jK�jL�jo�jn�j:�jr�jq�jp�js�jt�hw���
�jc�jb�hy���hx���
�jg�jd�je�jv�jw�j��j{���žPV�����r,�j5�i��i��i��i��i��i�
�i…�i��i��i��i��i��i��i
�i��i��iE�iF�i��j��i��i��i��i��i��i��nq�j��j��j��j��nr��W���
b�Y©I�n�8���m��m��U��A���n��U���n��k��UǑU�����UȑU���m�m���©I���?�s�k��k��k��k��I�y�l��l��l��k��E�k��E��>¯���	�f�k��k��i��i���C²o�)�n��k��k��k��k��k��h�$���i����i����i����h��)���i�����A¯���	�i���?²j�h�����\
"��¬�S��])��	?������(°���
�m������m��m��m��m��m��m#�m*�m+�m,�m.�m2�m/�m0�m3�m4�m!�m"�m$��"³��#³�m8������b¡�s����c��³G���],¡�r�M���k��������������
W
"��¬�R��
�U%��V�n�n�n��3�j��R�j��Q�h���7®]������_2®_�!
�����j���5°���8��9����_°�����b�m�m �m;�������°�������������³�k��k��mN�mO�mQ�mR�m��m����j��j������b´����œ��!�j���%�[N��[O���&��(��±����V�[��[��[��[���$¢c
	�[��[��[��[��[���)����ʁ��.	
F�ڄe�*��
��ԁ�%P���X–�U��)'���<�0	��6=�����@,lJX���+
)
F��������g������:��;�����������H²�>�k��Z���I²��L�mW�mY�m^�mX�mZ�m[�����©t���������������©t���g���������Ӂ��bޅ%����X��[��\��Y�b��b��g�c�N�mh��U� ލ��Z���k=��R�­��Y��T�����l3�l4����k�e�k��k�d�k��k@�kK�g̈́t�kE�
�l9�kB�kC������}�gЄ}��˔�b�,�����\š5�D���u��Z�%x��Q�
��ݐ��k��Y,��›}S�����ˁÅà G�n��n��o�n����®i����k��k��mf��De³����o��Ee³����[��[Z�[[�[\��������ސ�­e�3���i�o�kꂁ���o
�o�o�o�n��n��g
��o��^�­��lv�ly�lz�l{�lw�l|�l}�ml�mm�mn�h
����/O��I��F��gjI›],���x���+��}��!������aFW;<	�t�kP�������h����T�������������������T����h��p���>±c�k��k������4�@ l���Z���t�Z��Z���o��p��q��q���=�U��1�D�Z�����Z��Z��Z��Z��k5�U��t�k3���ª)�+�X�mu�h���h�h�h�k6�k7�nY�nZ�kW�kX�l��mv��ѕ�+*¬<���$�%Cg����h�h��?��@���$ª�F���G������³����³��kl�������km�[w�[x�[y�[z�[{�[}��h��mz�m}�m|�m{�m~�[~�[���M����?��jH›�����^�����"��:9�|�h�n�n�n�n�n�n�n������¯j���¯j�h:����������h?�h$�h%����h<����ª)�h�<���¯k���¯m��̕�M¯#�@�˃��f�f�h,�h.�[-�[.�[/�[0�h/�h0�h2�h4�h3�h6�h-���²��C�k\�C���œ��ل�������k�G�nf�nd�ne���¬^�7�������U��U����œ����nb���«�����R�sR�sS�m��Z��Z��j��j��m��g��lE�lF�lG�lH�lB�lC�lD��������¯ԅn�lK��´B�g���ԙ�®*�i�����®%�k�l?�m��m��lO�k$�k&�k'�k)�k*���¦�������R�l;�j��j��g؅t�gمu�g��j���h���=�R�Ă���›b���ۋ����Z��[��[���������%��l��%�����p��q��m��n��j����›`���o ��k�`´S�������o%�o&��i�����Ă���
 ΋�������´S������´W���´S�o)��؄��´[���›f���›f�����´Z��������������t��u���������
���K(#��
�/.��������!4��,g����,-�����1#Y7O������f�”���Er']P>'y#�:
�ԁ���h~��[;��e"�q!Q���������&¿f��������]�������������������������������������^����������������������������������������������������	���	¿b����������������������
����������������������������������������~�!�ۅ���z�����}	�����|��{������������������������������������.��1��0��/�� ��#��"��!��$��%��'��*��������+��)��(��"����#����������5��6����������������������������������,��/��0��.��-��������������@�������������������������������-��K�d����™�����
���������›����������������������������������¨�����¥����������� ��!��#��$����¤�����F�щ��k��l��������������������
����������K����-��8��,��5��4��)��*��I�҈�����������������8�������;���:���9���<���=���:��=��<��;��>��?��@��L��B	��K��D��E��C��A	����*�oF��T��W��X��Y��V��U�Vf�Vi�Vk�Vg��N��Q��P��O��S��H���6�D���™���������`���{��|��}��h����g���a��b��c��e��i���j���"��#����e����d��I���y����´X��m��n��o��p����������[����]��^��_��\��������L����
����������������O����*�������z)�����{)����������������q��v��w��u��r��s��t��������}��~��M
��
����N��������o��p��r�������������q2�q3��������6��k��j��7��8��:��;��<��q��n��l������������������������|�������������������������q��c��i��f��d�����������?��
��������������@��	�����������>��������������������������������������w��x��y��|��}��~����������t��u�q4�q5��s�σ]	������������������	�����r�������������
�������������H�������������������[�������Z����������O��KyG��������	™����
������������̉�T������	��ˉ�K	����ʉ�U���������������������������������������	���XHf���LE��™��������&�����Ӊ���@F���������������������Q������	*���KH��������������������с��Y���?A�����ԁ����	����;����´s����p�҃��-����›OJ�U����ls����x����������������?�����������������������	���������������������������G��H��p���C­0���/��	��
�/��;��:��9��6��7��/��2��1��0��3��4��������$��'��&��%��(��)���n��������›OI�P��Čor�����t�Ɓ�� �1¤��;�h�/��ނ��߂�����%�V��>��¶���.��&�T��)�U��y��3��ɑk�����z�����w�ǁ��S��¨F��=��¶���r��s��E��D��/�߃rª:��������0���lª9����)����£������������������q���9��ŸA��.��$��)��*��G����J��I��H��K����L����#��)�� ��!��&��$��+��.��/��-��,��/��3��4��2��1��6��7��8��=��>��:��@��9��|�$����P�����M��N��O��}�������������~����U��X��W��R��S��Y��Z������������������������n��o��u©���v�Vq�Vr�Vn��!���g��������������������Ƃg��"���e��łf��.��/��A��D��E��C��B��G��r��5	¥��������������������������ފ���������������K��L������������Ԭ����ԫ������������AF���P���ȃ���9�_��
����ža������������?�����������#��(��$��%��,��'��)��*��i��0��2��1��4��5��]��^��T��V��W��Z��Y��U��-3��a��`��c��d��/��.��f��h��g��9��>��:��;��?��=��[�oB�oC��]��^��a��`��\��������������P��R��Q��S�� ��"��!��������6��������7��8½��oG�������oH����>�����7�S����8�����������1f����0���΅��;�'��
žc�P������2����������������������3��4��:���l���3�
�*����@	��G��C��B��A��D��E��;��W��X��T��U��V��\�ق��b��d��e��j��h��c�Z��Z��Z��Z��Z���T��U�����>��A��@��?��<��=��[��K��R��L��M��N��O��Q��Z��Z������(��W
�ւ��H��I��1��2��H��L��M��J��K��O��I��4��cµ�
����������K��L��U���=�����[��\��Z���#�����������������X���30��[��\��b��q��r��_��Z��n��V���2��_��`��������g��e��j��h��f����W��W��W���4§���+��:��,��-��.��7��/��0��1��b����[��\��Y��Z��c��d��g��h��i��j��^��W��X��7�E��_��`��e�4��������b��c��k�F��l��h�2��f�I������������������9���:��P��Q���������������
�����������������������8�E������������61��DE��D����t��C��W��E����G��A4��CB��T��U������H��I��5���:µ�	��J0��z��x��O��P��Q��;B��<A��C��D��S��;��>��?��P��:�����������N��@��B���
�����������T�
K����������L�"��M��N��P��m��n��vP����������l�I����o��p��uL����b��c�����������������<����I����'���J���4���������>����=�����w¯=����������������������������������o/������������������ª���������
±N�ׅ��x��z��{��~��}��y�o2�������������������������������������
���������������	�����
����������s�����������������������o4�o5����¥{����������������������D�ƅ0�y������.�݄
������™b'�n��
�/g��@��	������������������������������������������(��.��7���-���,������Ԃ��.�܅�£���n��r��s��q��p��o��u��x��v��w����������
�
�������������������������E��O��9��Ă?��7�Cp	���ȃ>��������–�v��������X
�q(��@����3©���a�h���	������	������
���
��`�g�[���;����<��4����5��9��������7���ªL��Q�e��R��¼k��¼j����¼k��
��������������U�FªK��[��\��T����V����W����v�2¯���w½f�[����¯]�������������������������&¥������K�<��N��O��L����������������������I�*™��C�V��V����������������������2���Y–���]�������y�[��[�����yž��[��[��[��[��[��������������c��c��c��c���φ��K��z���Q–���c���c�����������������������������������������S����~��Є.���x	�+Y�Z–���_�����������GX�Z��������{�5[¥�������������8n����S
�S�������������&,����%������������������Ј3���������������©���������������������������#��$����������41����@�������������������������E�������=&����E����������F����E�����������X"����
������
"��.��0��/��1��,��-��@����'��߃(��������C�����B��A����D��E�����������������O�	����	�^������–�n����!�X�Y(��k���������������o@�oA�sM��n��o��y��z��{��|����Ƹ����M™��V���������������[��[������<�(�0 ���\�™��O���������>��A��B�#�����e�[��[��[��[��[���=���'©�������M�����������<����=������	��
™��h����]��^���oJ�oK��n��������������������������������������������o��v��w��r��q��p��s��t��{�����«b��}��~��O��P��Q�fp�fq��.��/�����������������|��̿���6
��6	��6���d��
 �쁭�u��i����d1�6*—ˁ��XQ	l��]%������F
*T�`��J"y�{����
����]��^��M�������_��`��a��b��H��L��I��J��x���Ȍ����Q�ȋ��sP��m¾���R����Z��������n¾��a9�����a:���c�b�,�c �c!�b��Z��Z���[��r��p��q��у�¯׌�������������c�c��c��P�
���¼����¼����*»"���*��S��T��¬���¬����T��¯�����������������������O�����������O5�p
��
±���
����������	���������������
���������������±��������������������������Î{�#������›a�-�7%y����;��U��y��z�c*�c+�������V��V�������¾r�c����V��V��cO��cS�Îz�'�j¡@�9�6������L�q!�q"�q#��g���d���}�4��~��e���|�`��c(�a<�q[�q\���KQ�<� �b��›a�0�9
}����;��F�f|��u��y�B�J�c0�I����Ǝ{�#�j¡=�Y"���$�c��q�V��V��c�c�f~�f�f��f���w�ʜ�r�c�cI�c&�f��f��c�c�������ڋ���ž�h����	@�I�aH���i�`��`���]}�ꁵ�Q¢�8�c�U�������¸l���`���<����)��*��'��(��F��-��.��C��G��H��J��K��,��%����8��9��:��1��2
��&���5��6��]|��������¢�7�b���e�f��c4�f��f��f������V��X��o���0��uB��z���
��'��™�k$�Y��3���\��du�J��n@�\B�f��f����³oF���qU�qV�\���\F����ZŸ������|��\¦���������]¦���g����°<�V��i��h�f���[���q�ˆ����������P™vUi9�3��4���@����(��Z
��_	9�q��˜�S����v����_����p��`��_����SD�SE�������������o[�o\����h1�¯���3��+�
Iq�D�\?�������������������������\@�\�\�\%�\&�\'�\)�\*�\(�\,�V<�\ �\"�\#�\!��$��%���	������������������������º����º��W������������������������\-����������W�\/��T*?�	¢xr�ËՄ
`���c�c����f������������Mp°F��N��a��=���R��>���s°+���\1�\2�\3�\4�\5�\6��t°*
���\7�\8����$�� ������!��"��@1��	��t��¬���'��	E����H��E	��C´��\;�\<��@
��A
�\�\�\�\=�\>��L1/�r��¢�ÄӇ�
�a���c:����rº�c8��a²��\�\�c;�c<��b�\�\��O�w¢{����P¬�����
,��5���`��>'��+�����m�W�������6!��–+���_M�X*�p��

%%��FQ�q��2"r�x����
���SH�SI�V��V���›)����R��U��V���R��q���܃������პ¡�����j¦#���.���5���P����V�Ń̋�d2ž�hn(�2��X��Y��W��\��
�cq�cr��d��	�N�°e��`��]��^����f7�f8��b²��e[��у=Rg�S�:���x�
:����+š�d���k�ɂ_~�K��U��V�Xx�Xz�X|�X}��`�V��V���a��s��º��sQ��Y�a�a�����qS�����pR���	���������������p��[�qe�qf��������������
�a��~�r� a6�˜�o|�p�҃@([K���!��"����'���µ�g���a��›�҃g[��U�cw�cx��h�[�Q�3™��R�9 ���r���K��L��>µZ�r���A��F��?	µQ��C��D�r���@��B�r��r��r�����º�a�q�`�r����º�`���rb�q�cm�r ���	�0©��+�q��q��q��q��q��q��q���"�/©���0��U��S©����	�,©�
��(�rY��!�5©���+�gG���r\�e\�� �J��–����6&u�r8�r9�q����rD�rH�rI�rE�rF�rK�q��q���
�q��q��q���$����%��!�J��–���&t��&��'���¬Z��)��(��*��(��,��
�q��q��r/�r0��[��^��]��\�q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��r�q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��q��r�r�q���_´����r��r��r��r���`´���)°+�gU��(°,������_�PŸ֑R�5)D{�r��r��r��r�r��q��q���|��A���re�r��r��r��r^�rd�r_-�rh��v
��˜����	�]��
�q�e�q����q�e�r�q�$b�q��q��q��r�r��r��r��qÁ��q��rx�rz�ry�rw�r|�����˜���e
��
�q��q����r~�q��q��r��rk�r
�r�rq�rl�rp�rm�rr����:�� �p�򁌇:™Q�������ǁ�Z
�Z�f\��ŏSšR�T����1�e��e��f]��/��0��������������������7�f��f��������V^�V_�R��R���8�o>�o?�f��f���X��[��Z��Y��\�������f��e��e��Wl�������������E�����������������R��R��R���:���g�Ÿ́������e��M��������W�����X�X �X#�X!�X�X�X�X�Sz���W�
�W��W��W��W��W��X�X
�X�X�X�X�X�X�X	�X�S{���f!�X�X�X�X�X�X�X�X��;��灪�X�X�X�X�X$�X%�X&�X'�X(���������������������	§������������X,�X)�X�X*�X+�������X.�X/�X-����������f��W��W��W�A�W��W��Wѐ��������f��f��f��f��W��f��b��������������������������������[��C�[��[�����:���{�����H��™Q�}E����	a���v�f��f��f3�f���U�����¦���f��f�����R��R��R���2���}��›Ɣ7�����������������������������������·����������·�����R������f�����������·�������
����������
��ׇ����f��R��S�S�S��"��aµ6�r���g��i��h��m�r��r��r��r���yµx��z�r���}µ8�r��r���~µ7�r�����r��r�����r��r��r��r��r��r��r��r���ơ��
 –A�׌�r��r���Ǧ��r�����������������������������������r������ –A���r�������µ<����������r��r�����r�4�r��r��r�&�r��r��r��s�r��r��r��r��s	�s�s
�s�s
�s�s�r��r��r��s�s�s�s�s�s�s�s�s�r��r��r��r��r�	,�r��r��r�"�r��r��r�!�r��s3�s;�s=�s>�s<�s@�s�s�s�s�s"�s*�s,�s!�s �s0�s1�s.�s/�s4	�sC�sD�s5��b±ل[������������������������������������������������������������������������������µ����µ������������������������������������������������v��w�����������������������������cªC�r��r���e��dªS�r��r����Ã}���҃w��;�"�6)J���؃E/<��K
	*��jm��(4��������t����X��
����Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ý�Ú�Ú�Ú�Ú�ÐzÒ�Ò�Ò�Ð{Ú�Úރ�Ý�Ý�Ý�Ò�Ò�Ú���Ú��Ý�Ý�Ò�Ò�Ò�Ò�Ò�Ò�Ñ�Ò��Ú�Ò�� Ú�Ò�Ò�Ò�Ò�Ò�Ò�Ò��"Ò�%��X����Ú�Ú�Ý�Ú�Ú�Ú�Ò�Ò�Ò�Ò�Ò�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ò�Ý�Ý�ÅĂL�m�iÒ�Ò�Ò�Ç-Ò�Ò�ÛCÛDÇ.Ò�Ò�Ò�Ç�Z�\�[�W��ÓÓÓÅΊ��tÅϖpÇ	���Y�W��ÇÇ	Ç�Ç
Ç
ÏȌrÈhÈiÈjÇ'�F��Ó
ÓÓÓÓÓÅ������FÈ�È�Å������EÏ�Ï�ÓÓÈ�È�È�È�È�È�Ç7�gÓ�È�È�È�È�È�È�	È�È�È�È�È�È�È�Ç 	�F�7�0Ç1Ç2ÓÓÇ3��Ç4Ç5Íi��Ç)Ç6��ÍjÍgÍhÇ�j�3��4U���n��
L���x���<Xn�:��jÑ�Ñ�Ò�Ë�Ñ�Ñ�Ë�Ë�Ë�Ë�Ý�ËuËvÝ�Ñ�Ñ�Í��e���z�LÍ�Í�Ñ�Ñ�Ø�NÑ�Ñ�Í�Í��c���wØ�MËn�2�ZÕ�ÖËo��Ø�LËx	�
���ք�"�[�hËy	����Éb�ÉcË�Ë�Ë�Ëp�y��
(ËqËrÏ��(ÒÒ+Ì��
'���p�'T���_
���u���;�ń�WË�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ë�ÍYÍZËgËhËiÒ
ËkËlËmËz�+��g��q�!�YÕWË}Í�Ë~Í���Ë|Í�È^È_Í�ÒÍ�Í�Í�ÈbÈcÍ�Æ&Æ'Í�Í��Í��Æ Æ!Æ"Æ#Æ$Æ%Þ�Þ�Í�Í�Èd���	Ï�Î��mÎ��mÃ�-$�%�6�@5>r���1[�i
Bx	�+��
��%���I�ނ�e*��� Ë�Å���Å���Ë��1Ü�Ë�Ë�Ë�Ë�Ü�Ü�Ü�Ã�Ã�Ã�Ã�Ã�Ã�Ü�Ü�Ü�Ü�Ü�Ü�Î��kÎ�ÝÎ�Î�Î�ÝÝÝ
ÝÒ`ÒaÎÜ�Ü�Ü�×�Î��ÝÎ	ÎÎÎ
Ø<Ã������J;�́�[�?×�×�Ë�Ø4Íȅ���ÓTÉv��ÉwÉyÉ�É{É}É~É�É�Ã������I �����[[�A��Ë�Ë�Ë�Ý Ë�Ë�	�JË�Ë�Ë�ÍƋP
�Ø#��Ã�Ã�􇐁���ÓbÃ���Ã��f
Ý'Ý&
ÒVÝ(Ý)Ã���Ý+Ã��B�7��Æ�7��Ã���K(�8�����X&�����D���n 8�;��ÛaÝÃև�ÊeÍ�Í�Ãׇ�ÝÝÊj�F��ÊkÃ�Í�Í�Ã���K������Y ����
���n>8��Í�Å�Ã�Ã�W��Ã�Ã�Ã����I�DŽ��	Ã�É��֊�É���a�~É�É�É���ÊnÊoÝÝÍ�Î����Ý7Ý8×�×�Õ,Ý3Õ-Ý:Ý5$Ý4Ý6Ø8Ø:Ø;Ø9Å�����CM��ÉeÉfÈ�È�É���Í�Í�É���Í�Ã�Ã�Ã�ÃߚÃ�Ã��ÎÃ�)�#����5��(F��È���È���Í�ÃІ��I�Ãъ�Ã�+	2�;��+�3��P	->r�����h(��	
��M�$u�I����O
��� <È�È�ÒÒÕÕÕÕÃ�ÉsÎ�Î�Ã����<�}Ã����}Ã�Ã�Ã�Ã�Ë�Ë�Ã�Ã�ÝKÝLÝNÅ�����ÒÃ�q���M��ÈZÝJÝOÝPÒÒÒÒÈSÈTÈVÈWÈXÒ!Ã��GH�:����H����*K���x
-:��1Æ�PÆ�OË�Ë�Ë�×�×�×�×�Æ�	��ÉÉ��É×�È�È�È�È�	È�È�	È�È�
�
Ã���Õ/�rÎ���Î���È�Åӄ9��É
Å�3��Æ��Æ	��Æ
��Å��"ÉÅ�Å�Å�Å�Å�Å�É
ÉÃ�&�!�
���
�E�T
$�'3×�Ã�����ÆÆÆÆÆÆÆÆÆÃ�Ã�Î�P×����4Ø+×����1Ø*Ø-Ý_Ø.Î�SË��… ����Ë���Ã��JË�Ë�Ã�Ø>Ã��D#��Ã�Ã�Ã�ÝCÝFÝDÝEÑ�Ý@ÝAÜ�eÈᅖÎ�Î�É�É�È�É�É�Ã�W	�F^��+
#L��k����2�#�MHB
��?`]��D�� ���\��ÏW�ÏUÏVÒuÏX�ÒtÔ7Ô8ÒwØCØ?Ø@ÔÄr���4 ÔÔÄs��Ô	ÌnÌoÌpÄu��Ô�/�Ø�Ø�Õ6�Õ�Î�Î�Õ�ÔÎ�����Õ�Î��%�Ï�%�Ï��Ï��Ä��$�끼�҈>��ÛjÛkÛ�Û�ÛtÛuÛiÛrÛsÉ�É�Ä���,Ä�Ä���+Ä���Î�ÏÏØ�,Ä�ÔÄ���Ì ÔÓ�Û}Û~ÛÛ�Û�Ó�Ó�Ó�Ø}Ø~Ä����끼����Þ�Û�Ä����K�o� �;��Æb�1ÆcÆ^�݂;ÆaÆfÛ{Û|ÛxÛyÛzÉ�É�Ø�Ä7��Ø�Ø�Ø�Ø�Ä8Õ�Õ�Ô2�
Ô1×D×E×FÄT�R��������
�)����Î�ÜÜ�Î�Î�Î�Î�Î�ÖhÌDÌEÖi�9Ä\Ü�Õ�Õ�Õ�ÍFÓ�Ó�Î���Ó�Î���Ó�Ó�ÊB������JOÌ3Ì4ÔÍ�ÊC����	�Æ��Ì6Ì7Í 	�qØ�Í	Í	�Ì5ÍÍÍ!ÔÆ=��Ã�ÄÍ-���uÛ�Í.��Æ>��Í6Í7Í5Í4Í,Í0
Í1
Í9Í:Í;ÄU�R������
�����JØ�Ø�ØI\ÌMÌNÍG�j�Ն�Î�Î�ÍH�i=Î�Î�ÄVÄWÏÄ�É���ÄQ���{���QK��1��Û�Ô%×HÔZ�lË�Ë�Ô'Ô$ÌxÌyÌzÔ(Ø�Ø�ÄR���{���R��/Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ï;�肢��GØ�ÌvÌwÏ<�dÔ&Ä����H�C
f�⁹P��)��nP_�$2:��
ÔRÔSÉ�ÔÉ�É�É�Ø�Ø�É��Û��Û��ÏÉ�É�É�Ø�Ø�ÍMÍJÍKÍLÍNÃ�+�=�.S�܂���n���C��Ä!�Ä"�ÊDÊEÉ�Ã�&��Ê;ÏÏÊ<Ø�Ø�ÄÄÄ$��Y�����1��Ä<��Ä�6ÔVÔWÄ�6ÔÌ}Ì�Ì~Ì|ÌÌ�Ì�Ì�Ì�Ì�Ì�Ä�o������ÔÄÄÉ�É�Ï&��ÏDÏEÏB�+ÏC�+Ô.ÍO�ڇ�� Ï*Ï2Ï5Ï4Ï3ÐÄqÔ/ÄoÔ0ÄpÏ'��Ì������Ì�Ì�Ì�Ì�Ì�Ì�Ø�Ø�Ã�&�功+É�É�Ä%Ä&Ô3Ã�&A��Ô2ÄjÄkÏHÔ1�Õ�ÏÄ*Ä+Ã�(#	�D^���5
H+�hj%
����.
�҃,9�JHB��=\[
��9��" 
����	�TÔdÔeÔ_Ô`Ë�Æ9-�EÆ:-ÏI��×SÏJ��×N×T×U×VØ�ÏMÏNØ�Ø�Ø�Ô4ÔaÔbÆPÆQÔ6ÄO����9��É������҃|�Ô×Y×ZÏ��Û�Û�Ï��Ô5ÆS��Ì\Ì]ÆTÆUÄ-	��Vx��	�n��	.���
I:���B�}U3��ki]�g^+6�u�'��sÝ�Ó�Ó�Ó�ØXØYÎ���eØgÔØhØdØeÝcÔØaØbÌi�Y��Ë�Ë�Î�Î�Ìb�ÝbÝgÌcÔØNØUÄ	Ä
ÄÄ
ÄØOÔ�>ÄÄÌ"�GØkØlÝjÌ#
Ì)
Ì(
Ì'
�:Ì$
Ì%
Ì*Ì+Ì,ÄK�#��ÝmË��ØnË��Ì=.��Ì>.Ó�Ä0J�?�m���������mz��Ï[ÄL�l������g
��Ø_Ý�Ý�Î�Î�Ìf��ÆVÆWÍS�q��Î�Ô;Ìg��ÔÔ+BÍTÄ-1��U�����n��
*}��U9	���_�}���j[0P�p�&��j�Ô
Ïc��ÔÔÄ�[�yÏ^��yÄ/3
�1���߃v�YKA�r�ÄAÄ2Ä3Ä4Ä5Ä@��Ä?ÄIÄJÎ�ÝfÔ���Ô�ÄBÄCØ�Ø�Ø�Ïf�6Ïg�6Î�Ï0���ÖpÖqØ�Ø�Ï/��Ô�Ô�Ô>Ô?Ô�Ô�Î�XE�����6ÔoÔpÄz���"T��Ä|��ÌIÌJÄ{���!ÔsÎ�\E�����4Ô
ÔiÔtÔuÉك}��!!���6��肃��ÖtÖuÌY��Ø�Éڃ}��������ÌU��!Çv�f�׃p�������ςM������Ç�����Ç�����Ô��/Ô��/ÐØ�Ø�ÐÐÐÛ�Û�Û�Û�×]Ç�Ç�ÝwÝ|ÐÐÐ
Ò6ÇÇ�Ç�Ç�Ç�Ç}Ç~Ò;ÎÎÒ9ÝuÒ7ÃÇ�Ç�Ð.Ç�����P'��Û�Û�Û�Û�Ð1Û�Û�Ð3Ð4Ð2Û�Û�Û�Û�Û�Û�Ç����fÛ�Û�Ð+�p	Ð,Å_�0Å`�/Û�Ä�������ÙÙÙÙÏhÏiÄ��eÄ�ÖÄ�Ä�ÖÄ��z����ÙÄ��cÙÙ
Ü�ÎÎÌ�Ä���f���o���������܂�j×^ÖÖÖÖÖÖÇxÇyÄ�Ä�����Ä��䉩�\Ç|ÖÖ Ì�����$�6Ì��w�`Ì���Ì�Ý�Ý�Ð-ÕF�AÕGÃ���$�遀O,J��	����
�����7!���<��S������W�����	�����Û�Ú0Ú1Ï�Ó��;Ó��;Ù�ÆiÏ�Ù�Ù�Õ�Ù�Ù�Ù�Ù�+Ù�+Ù�Ã��L�8�i���M��Ä���Æ�Æ�Æ�Ä�Ç��S��
�UÇ�É�Ù"Ï��`Ç����JÙ�Ï��aÕMÕNÕKÕLÄ�Ï�������Æ���Æ�Û�ÕPÕQÍ�kÆ�Æ�Æ�ÕSÉ�(��É�Ù�Ù�ÊÄ̆8�g���M
��Û�Ä͈؃�QÄ���Û�Ä�Ä�Ä�Ä�Ï��FÄЂ�3Y��Ù�Ò|Ò}ÊÃ�Ã�Ã�Ã�Ã�Ä��$��Æk3Æl3ÆmÃ��y2��Æ�Ïm�>Ù�Ïn�>Ù�Ù�Æ�Æ�Æ�Î6Î7Ä݂U�q��p���=����ÐA���Ç�����Ù�Ù�ÚÚÏ��fÆ�Æ�Æ�Ä�Æ�Æ�Æ�Æ�Ù�Æ��Æ�Æ���Æ�Æ�Æ�Ù�Ù�Ã����ʁ�L 
@��	����	��P&����=��O������S�����
$��Ï���Ï�É�É�Ò?Ò@Õ�ÒBÚÙ�Ù�Î)�wÎ,Î-Î*Î+Æ�Æ���Æ�Æ�Æ�Ô�Ô�Æ�ÚÚÚÚÆ��k�Æ��=*É�É�É�É�Ù���Ù�Ù�Ù�Ù�Ù�Ä���Y�S��	�'Õ�ÓrÃ������Ńށ�Ó��YÓ��YÄ�ÓsÙÄ�-��wB=���+��,���>��(����1%T��$��RÙ*Ù+Æw��Ù-Ä�Ä�Ù4Ù5Ù6Û�Ù.Ù/Û�Æ�Æ�ÙI��Û�ÙJÙLÙMÛ�ÙOÙPÄ�+��ÙZÙ[Þ�Þ�Ú Ú!Ä��*�3ÙGÉ�É�É�É�É�É�É�É�É�Ä���8���GÆ�Æ�Û�Û�Ä�
�/����
���
���
���
����Ä�Ä�Ï|Æ�	Æ�Æ�Æ�Æ�Æ�Æ�ÙSÄ�ÙcÙfÙdÙeÛ�Û�Ù@ÙDÄ�É�É�Å���Q�M�k5��on����Ï�Ï�Ê����mm��Ä��ÙXÙ%w&ÙoÙpÙwÙxÙzÙ&v%Æ�	����@����Æ�Æ�Æ�Æ�Æ�	Æ�Æ�Æ�Æ�Æ�Æ�Æ�Æ쉌����Û�Ïy��Æ��������Æ��Æ�Æ�Æ�Ú'Æ���Ú&Ú%
Æ≒����Ú7Ä�)����;$���*��
2����&	
������Ù�Ù�Ù�Ù�Ù�Ù�ÙÙ�Ù�ÙtÙ�Ù�ÙuÙ�ÙRÙ�Ù�Ï�Ï�Ù�Ä����E���߅�����Û�Ú.Ú/Ù?��ÆuÞ�Ô�Ô�ÙmÙl3Ù�Ù<Ù=Ù�Ù�ÙkÙ9Ù:Äڐ���YÄ�Ä�Äې�ÚÚ
ÚÚÄӁ��)��ÙÙÄց�� m�S��Ä�Ä؂�l�RÄՁ��(��ÙÙÄԁ�����Ö"Ót����ÊÊÖ:Ö9Ê
ÊÄ��م`�с�9�}���0H�z����uÐIÐJÚ<Ñ�ÎCÎDÑ�Ö>Ö?ÖUÐNÐOÖVÖWÖXÖAÖBÓ~Ä���H�������т
��Ò�Ò�Ò�Ò�Ò�Ò�Í�ށ�
����Él�܂�@Ém��ÖDÎ?Í�9Ä�	�AÅÅ	Ä�Ä�
�
ÅÅÄ����_����&���
���sÖHÖIÖ_Ó}ÖaÖ`Ä��~�P���W�����Ä�Ä�Ép�P��Ä�Ä�Ä�ÖZÖ[ÅÓ�Ó�Æ�[������j��?���������B��
�|��Ô�Å)�gÅ+Å*�eÅ&Å'�hÅ(Å-Õ�Õ�Ça��Ç\ÇZÇ[Ç]Ç^Õ�ÚKÚLÕ�ÇbÇ`ÇeÇfÚMÏ�Ï�ÚFÏꈏ��Ï�Ï�Ï�Ï���Ï�Ç�����]��!ÐSÅAÐRÇÇÅC�Y����Å)ÅIÅ*ÅGÅJÅKÅT�"��Ê{Ê|Ê~ÊÚTÊ�Ê�Ê��pÊ�ÍÅV��ÚSÚRÐÊxÊW#ÊzÇg�񆭃�Í	Ü�Í�GÚVÝ�Ý�×}×~ÍÓ�Ó�Å.�Ă��_>!�3�E�����Ç��,Ç�Ò�ÐoÅ �{�[^�3��Ì�Ì�Å!�{Å3���M�IÐWÐ[ÐkÅ4���KÐXÐ_ÐaÐ`ÐTÕ�Õ�ÎGÎHÅ",���J�A�o�1��
y�%��,
	��	���2Õ�Å>Å?ÅXÒ���ÇjÇkÒ���ÇhÇiÅ#�����Ç��Ì�ÅY�������ÅZ����Ç��Ç��Å6���Ձ��2�A����фAÇmÇnÇWÚCÅNÅOÅE�FÚGÚHÚcÚ]Ú^ÇÇÇ
Å7���ÅR�ÅS�ÎKÕ�Õ�Õ�ÐbÔ�Ô�ÎL×|Å9Å;Å<Å:Åm������K���&Ån�5��Åo�5��Ý�Õ숨Ý�Ý�Ã~�� ]��	��G���/()��e��N���؁��V>#	@��K
	$��Bm��	I���?��-	�/��K��	Ô�Ô�Ð�Ê�Ê�Ê�Ê�Ê�×,×-Ì×�×�Ç˅<��Ç�Ç�Ì
Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ë�Ç�h�j�hÇ�Ç�Ç�Ê�������hÊ�Ê�Ê�Åp�U6Ç�Ç�7Ç�ÈÅqÅs��Ç�ÅrÈÊ�Ê�Ö�ÚqÚrÚsÚtÅ�Å�Å�Å�Ê�Ê�Ê�Ê�Ê�Ú|ÚÚ�Ú�Ú�ÉrÈ�È�Ú}Ö�Ö�Å�8��������hÊ�Ê�Å�8���Ê�Ê�Ê�Ö}��ÌÅvÅwÅx×+Ö�Ö�Å�~��#�߂̃
�M��Å��&Å�Åy�c��ÅzÅ{Å��&@��#	��������M��ÌËÌ
Ë	Ê�Ê�
�
Ã�	�0��Ã�Ã�Ã�Ã�Ã�Ã�Å�������у&Ô�Ô�Å�Ì��Ì��Ð�����Ð߃���Å���Çс���3�9��j���v�t���u×�×�Ú�Ý�È�Ý�È�Ý�Ô�j������È���[�uÈ�
È�È�È�ˆ��È	È
Ö�Ö�Ö�Ö�Ö�Å�È�È�È�Ö�È����	�Ú�Ú�Ð�Ð�Ð�ÈÈ��Ú�È���È�Ê�Ê�È�Ê�Åu	�,����"'��d��w��uh�f�t�L��IÈ�È�È�ËÕ��؃	�3Ü�È�È�Ü�Ü�Å��*L����	��������P�C�1
 �ԁ⁙�X'v����,ÈÈÎQ�jÎRÔ�Ô�Ô�Ô�Ð�Ð�Ð���Ð���Ô�Ô�Ô�Ð��È��È È!È����ÎTÎUÇ�Y�挡Ö�Ö�Ö�Ç�ÎX�LÎYÐ��Ð���È��ʂ�Ö�Ö�Ç�Ç�Ç�Å��{����aÔ�ÚwÔ�Ô�Ô�Ô�Ô�Ô�Ô�Ô�È&È'ÚxÈ"�ʇ��$���BÔ�Ô�Ô�Å�����	Ô�Ô�Ô�	Å��5	Ô�	Ô�	Ô�	Ê�Ê�Ð�Ð�Ô�Ô�È2�|È1��Ð�Ô�Ô�È5È)�e�vÈ3È*��È,È-È+��Åj�'L ���Ă����N�r)��������&Å�È�Մm����È$È%Ý�Ð���Ô�Ê�Ê�ÅkÅlÐ�È�È�È�È�ÈÈÐ�Ô�Ô�Ã������8Ê�Þ�Â�+�[��\��$�9��,����*>j

Xs�d����������Z!�-Op��
8#��F��N
&��6LK��×�×�×�Ë/Ðx������Ðy�ʃG�y��ÌÛ�Û�Ü�Ö�Ö�Ñ/���Û�×�Ç�Û�Ç�Ç�Ç���Ç�ÑD��
ÑEË0Ñ+	�xÑ>Ñ?Ñ,	�uÑ=Ö�Ö�Ì؉�Å���O��Å���Å�Å�����Ö�<Ö�<Ìي�É;��É<��Ñe�_Ñf�^Ñ]`�dÑ^`Ö�Ö�Ö�Ö�ÑlK��^ÑmJ��^ÑjÑkÑo�^�y��Ñp�^�yÖ��Ö��Å�	��n�W��n��Û�ÜÜÛ�ÑF��ÑG��Ç��
�~��dÑMÇ��E��Ñ0Ë8Ë9Ë:Ë;Ç�Ç��Õ��+Ö�Å���É*É,É+ÉQÉRÅ��N��ÛÛ
Ö�Ö�Î^É6É8É7ÑS��ÑT��É9É4É5ÓF��ÇD����-ÇHÇGÇFÇ��������{��n��Ç�����É%É&ÇA�/����ÜÜÇB�.����Ó2Ó3É�b����o�P�R�J"�B1�Ñ�Ñ�Ó�Ó�Ó�Ó�Ë=�B����Ñ�Ë.Ñ�����ÑÑxÑyÑzÍ���G�����Ñ|F�a��Õ����Õ�%É �d��-�+��
O�N+`��$�@1	�Ղ<��Ó��I��ËÊ���Ó��H��Ê����É"�c����Ü�Ê���Ê���Í��T�����Ë�ËË Ê�����%�>�́�P��Ë>�9�
�W×�Ñ�Ñ�Ñ�Ñ�Ñ���Ñ�Ñ�Ñ�Ë+�[��s�0ÉSÉTË,�Z��s�0Ë?�9�
ÎmÎnÅ������݁�.?i��b��Y%`�kA%	m��&���O�!��Ð�ÛÛÜÑÎb��×�ÎdÎeÎcÛ�ÉU��ÉVÉXÖ݁�Ö�ÇJ��i���b���Y��!�0A-�Q
���#�

���Ó:Ó9Ú�Ô��Ó6�ǂ Ó7Ç:Å�W�4�jb���TÇ<××Å吊��Ü�Ü;Ü<Ü>��Ü?��Ñ�Ñ�Ñ�Ñ�Ñ�Ü�Ü�ËYË`ËaË\Ë[ËZË]Ë^ÎzÎ{Ü�ÇK������������Ï�Ï�ÜCËDËEËJ��ËIËKËLËPËRËSËQÏ�Ï�È?��)��Ñv×�ÈBÈCÈEÈFÈGÈ@��%ÎhÎiÇL��񂌂��_����ËCÎ�Î�`Ñ2ÑrÇM�
��Ì΅�Ì�Ã���(�X��G���L��."����%��Us�S����q)	����U�,
P
l��
8
��
=��K	��6 r��ÕxÊ��j��Ñ�×�×�Ñ�Ñ�Ì�Ñ3Ì�Ê�Ì�Ü�Ü�ÜRÜNÜOÌ�ÑņIÕrÊ��1�I�>××××�Ñ�Ñ�ÃŅ)���2�ÌďJÛÕuÌŐ�Ì�Ð~�"��]"�Fc�q��@����Î�Î�ÜSÜTÍ���gÍ���gÊ������iÕeË�Ê��:Ê��:Í��FÜ�Í��FÜUÜVÜWÅ�(����ご*����i�N!c�lQ����&�#��&��Ñ4ÑWÉD�Ö�Ö�Ñ���ÜZÑ���É?ÉCÉ@ÉAÎxÎyÖ�1�É-É.Ñ�Ñ��+×'ÜcÜhÜiÑ���Ö�;Ö�:ÜkÜl×�Ü`ÜaÕÕÑ��*Ñ��?�腂Ö�jÛÛÎrÖ�Ö�Ö�Ö�Õ��}ÜÜÕcÜÜÕdÑ���Ñ���Í�����h�c�UrÌ�Üo×�É]É[Ð�Ð�Ð�Ð�Ì�Ì�Éh����ÉiÉ^É\���]��ÒJÒKÉ`ÉaÈ:����P��r�' ��0Ð�
kÐ�	ÑÐ���Ð���ÑÑÐ�Ð�Ð�Ð�Õ�Ñ��ÑÑ��Ú�Ú�Ð�Ð�Ð�Ð�Ú�Ú�È=È>Ð�Ú�Ú�ÑÕhÕiÑÑÑÑÑÇ҃����c�X�0)��Ö�Ö�Ç�ÇքÐ�Ê�Ê�Ê�Ç�����ÇՄÐ�Ð�Ð�Ð�Ð�Ú�Ðs�j��	Ý�Ý�Ý�Ý�Ðt�.Ý�	Ð�Ð�Ð�Ð�Ú�Ú�Ú�È;����T�Z�%
��Ì�Ì�Ì�Ì�Ð�Ð�Ð�Ñ!Ñ"Ë1����O�_-��*��Ð�Ð�Ñ	ÑÑ
Ñ��Ú�Ë4Ë3�^��Ë2�vÑ#Ñ$Ú�Ð�Ð�Ð�Ð�Ñ&Ñ'Ë5Ë6Èʼn
��È�È�È�Ú�Ì���Ì�Ì�Ì�Ì�×�Í_Ì�ÍÍÌ���×��b�<�z�Po���m���q³{S�#L���%(�P����� ���"��#��eu�ev� ��� ���#��#��#�5� ����� ����"��e����
�w´0���(��(��g<� �� ��g=»��"�� Ń$�!��!��b�¾�$�
� �� �� ��j�´0���j��$�$�d��!��d��d��d��d��d��g[�
�vµބ^�$�j�´0�$�k�µ��$#�k�µ����$"�g\�g]�j�´0�b��Ձ��A�N��´R�)4���@�i�i�i	�i
�f*��,¼����$���$��$�$�$�$���f.�f0�h��h��h��h��h��h��h��g+¼����f,�!�����!�$�f-��»Z�b����L¸�E�S�g�¸��e��e��e��e��e��e��g��b��b��b�¿��g1�g2�bσӂ�»��"��g4�g5¹k�b�¿��b˃�½�"��b�
�����=�I���=´R�)2�������e��	¹��g��b������ׂ�´T�)@&��B�3�fq�!��!��!��!��!��g��g��g�·��$`�g�º�!��!��g��g��g/¸�/e��<
�L�M�!p�!��K�#[�!��b��k|�k}�g7���i�g8�!��g��g�� ̓ �"�� ΃ �"��d�	�!+����"G�|*	,�=´B���قrS6�˾��d��1���d��1���e��d��3¹��o�iF�d��f�f�f�iu�iv�e���e����e��iG�e��WU�WV�!�fu�fw�fv�j��iM�iN�j��d��d��!�����g`º��ge�gf�gb�gc�gaº��bׂĄ�ʂ�´*����_�d��R´.�j��b؂�������´(����_�e��e��d�����´*���g����iT�f��·��$F�e��e��e��e��b���.����
��6�k´F���MW-���g��g��g��g��i�¹Y�gr:�g��g��g��g��gn�go�gp�e�A�R·�'���f���gl »|�#�g��g��e�/��·��e��e��"��e�.�}·��f�c�d��d��e��e��bل���b��b��b��a�$=�c���e���g��g��d������".�~
 	)q��	´
6	�����mP/����ú��!��!�� 8� 9�f�f�f�f�$)�r�t�u�s�g���º������f¹B'���iC�d��4�������%�k´B	��g��W��!�!�g�h�d��d��e������¶�g��g��j��iw�ix�iy�j��f¹=+�d���vy�[´,��}	#{��E�-�{�g��g��!�! �!&2�n�d�¼;�!(�!-�!,�!)�!\�!]�!?�!*�!@�!'4�m�b�¾<+�b�¾;�!A�!B�!D�"��c!��¹+\�c�c �c#�c$�c�c-�i��c,¾�c)¾�c+�c�c"
¾W�c(���d�c&¾�c/���!��i��!������d��d��c<¼\�f��f��i
�i�i�c
�݄�{¶aH������c0¾��i��c7�c8�c1¾��c2�h�c�݄�x¶�����h�i��i��i��i*�i+�i-�i0�i.�i/�i2�i3�i5�i6�i��i��i;�i<�i�i�i&�i'�i�i!�i �i�i"�i#�i7�i9�i8�i��i=�i�i)�i�c���KD�y��v��´&
����	!{��E&��{�fA�fB�fE�f�f��c�J¼p�c��·v�h�d��c���c�c�i��i��i��i��i��c�߂F=�Z:·��끷p(���g��g��g��g��g��#��#��g��g��g��g��g��g��#��g��g��g��g��g��g��c���C=����¸	5k�f��!#�d��d��d��c���$��¸	5�d��d��!K���#��!L�g��g��g��g��!P�!$�!%�g�¹[���g��g��!Q�!O���c���F<�Z·���j�+�d��d��fz»E�d��d��g��g��g��g��b���b���������h�Z�k]�f|�f}���k`�h�h·|�`P�f��f��!J�!��!��!��!��!��d���������´��Ł�6e�F�f��f��f��f��f��f��f��c?�������cF¼i�cG�����cI�cJ�cL�cM�cB�cE�cC���h(�cA�c@�cV�������cY�cX�cW�����"��f��f��f��"��f�¼D�f��f�� ��f��f��f��cS�cT�e
º��������k	�ca�cb�b���/�3��´�#��r�E���e�b���3��´��ꃶ���k�eº������f��f��b��R�b��Q�h;�cd�ق[�u´��cf�cg�cw�cx�ci�/�v´��cr�cj�̃��h@�cp�ct�cu�f��ce���W�s´��ck�/�x´��h$�h1·��h&
���!��h%�f��f��f��!��!��c\��	��
����´�
����6e�;�i��i��c`�f��f��f��c_�4¾��c^�7�؂��f��f��f��f����f��c>�ń)��´��:�f��f��f��f��f��f��k�h5�h6�h7�k�k¶��"�c[¼i�B�b�/��8�	��	
��´o��C��W��j�Ӂ����"
�"�hO�hP�f��f��c��쁗���´��c��c��c��c��c��c��c��c��c��i��i��c��c��c��c��c��c��k%�cՅ���´��A��cֈP�q�k(�c�¼H�c��c�¼G�c��c��c������
´��cӈQ�c��că�����´��f��c��c��c��c��k+�c�)��»`�b��c�¾.�c��c�)	����¹��c��c�	�c��c�
�c�
�c�¾0�hQ�hR�f��f��b��t��´��A���f��!b�!c�f��"*�`��ki´��>�!`�!a�"�"�b�1��!��	��	
��´k��B&����c��c��c��c��c��c��c��c��c��c��b��b��b��c�b�c�b�c��"2�c��c��c��b�������c��c�½U�R�hG.�hH-�b��b��c��b��N���9´o�;
		���"�c��c��d
�d�"�c��c��d
�d�c�f�H¼������c�f�H�c��n�c��c��i��k�c�e�
�c��c��i��i��k�i��d�d�c��B�"��´��:���"6�"7�d�s�h{�"9�":�h|�c������������hJ4�hL�h~�hK�hX�hY�h\�h]�hZ�h[� ւY�"0�!e�!f�d
'�h]�a#��	�p´�>������)��&�#4�d'�d(�"d�"M�"P�"Q�"N�"K�"@
�"A�#5�h�¹��h�¹��"F�#7� �� ��#E�#F�#B�#D�#C�#@�#A�k0�k1�#8�#9�#I�#L�#J�d-�dM�dN�d.»΃W�#M�#R�#S�#P�#N� ��d?
�d@»��dJ�dA�dB�dC�d0�d1�d2�d/»ă]��=�����$<���dE�F¹��dd�de�dF�E¹��e����	¶;T�h��h��dK¾
���h��h��dL¾
�"^�"_�"Y�"Z�dR�gj�w)��¶=>
�	���h��e�º��e���%��¶@@����i�¶@�e�º��h��h��i�¶>Þ��"m�"p�"n�"G)�d �d!�d4���d6�d7�d=�d5�d;�i�¶>�i�¸��"s�d
&������	��	¶(<������)��&��=� �� ��e��e��#;�b��b��$<�e��� �	¶��i��i��!x�!y�h��d#+�ƒl/��x´�M�(���	� �� ��#a�#b�dV�dY�dX�dW�dU�!u�!w� ��db�da�d$;½�h�·r�#c�#d� �� ��#?'�#<�#=�h��e�º���� �� �� �� ��"l� W��� Z� [� X�dS�I(�	�h��h��"u�"v�d�[�����!��´�}L����
���(� 
� �f�½��f��f�� �$��$��f��f��f��dh�di�$��$��$��f�½�
�f��$��#h�#i�$�� 0�]�'�$��$��$��$��$��$o�$p� 1�]�.�$�,�$��$��$�� � !� "� �#l�f悻»�	H�$�P�km�i��i��i��i��h��G�i��h��M�h��M� � � � �kn�f���»�G�dm�S�dp�d��dq�dv�ds�dr�d|�dy�dw�d}�d�d~�dt�du�do�dn!�h��/º��#m�#n�i��i��#o�$�#p�#�e��º��$��$��d��w��º��jlµ��M�j��j��j��jn!�j��jq�jp�jo�j��j��j��j��j��h��$��j��j��$��$��$��jmµg�M�j��j��j��j��j��j��jr�jt�jv�jz�j��j��j��j��j��j��ju�j��j��js �jw�jx�jy�j~�j�j��b�"�"�������u´�!SK�����'�j��j��j��j��d��¹�B+�$��$��$��j��j��j��j��j��$�*�$��j��j��j��j��$��$��$��$��d��¹��j��j��j��j��j��j��j��j��j��j��j��j��j��d�T�#��¶B!����'�d��w�j��j��h��h��$c�$d�h��h��h��h��h��h��h��h��h��h��h��h��h��$��$��d��������µ����������$~�$�gW�gX�d��[�d��U�d��d��d��d��dk���dl�j¸N�d��w��¶��|�jg�jh�jX�jb�jc�jd�jY�j[�j_�j`�j\�j]�j3"�j8�j9�j;�j<�j=�j7�j4�j5�je�jf�i�0�j@�jA�jG�jQ�jF�jE�jH�jI�jJ�j1�j2�b2P��Ăہ����h´�
��L����L�d��d��d��d��$v�dȆZ·[
��X�j#·[
���d��d��d�1��º`U�$u�d�¿�[�d��d�� '� (�#t�#w�$y�$z�${�f��f��f��f��e8���º��e9�gº��gº��f��f��f��f��f�º��j��j��j��j��j��j��j��j��j��j��b��N��$`o"��0
&�V+d;f�k³��"F	���%��I�;�fP�fQ�ee�E�ef�fN���fO���fS�fT�fV�fW�fJ�fK�h��h��h��h��h��i[�eG�g�fZ�f[�g�eH�eC�$�x��b�eD� �{~U�fe�O�g�g�fL�f]�c��"S�����LN�fM�fb���Q�e=
���¹=�g�g�g �g�g�#��#��g�eN�eO�eT�eQ�eS�eP���g%�$[�$^�$\�"��"��eX��¹9�eB	�eZ�e[�ea�e^�eW���g�g�g�eb�ec�ed�eE���eF�f`�fg�E�ir�b���wL4B^�����7��D�V³�	��R735�� ��0b4"��$�%�e�¹����0�e�¹��2�e½��en�eo�#��#��ej�ek�#�&
� ���#��"��"��"��c
�"��ez�e{�d��º��<���H�#��#��d�#��#��#��b��h��h��#��#��#��8�9�#��eq7��¶V���G�#��#��#��e�M.��·����#��!�%'�%*�%(�%)�er���w¹��es�{���>�i�?�i�e��zµ�S�s�#�=�#�?�#��#�=�j
¸��|�e�¹������#����#��#��#��b�Q����u4�}d�?����³���6��h��<1���#�# �#"�e|�#&�#'�e}�#$�#%�g��#��#��#)�b�P����q��?��³��Ղ�K;��c�e��#*�#+�#��c�c� c�#��e k½x�!� ��!�e1���e2���e#kº؅�<�#�� f�e!^½w�e/�ekºۅ�<�$��b���s7
8?]�����6��
;�U³���Rc31&��
ELB
	��4�#��#��e��"��"��"��e��e'�e(�h��ky�kz�!��e)l¹���-���#��#��#��e*�#�B�#�B�#�B�ecK��2��³��݂� dzA��e�¿v�e�¿v�i�¹9���6�#��#��b�¿��b��e4�=�<�#��7�;�h�"��5�#��e�¹��b/��6	�"��>�g?¼��$0�$1�g;�$<�$<�g�$@�c�3�c�5�gG��¶a� ���gD¹=� ���gF�$4�$6�$5�$3�$2�$8�g@¼�	�gC¼��g>��·��~�!��b�����
µT�m�k8�k;�k>�k?�k<�kD�h��h��kF�kH�kE�kK�kL�kM�eΆy·��ۂ/�#}�#��#�#~�e�½-���kA�e��e��g� �� ��g	�gx��¹��gy���h��T¹��h��h��h��kS�kT�kP�kQ�kV�kW�kX�%/�e��e��%4�%6�%7�%5�%8�k~�k�gK½��gL½��%0�%2
�%<Þ򁰁�c ,hÞ���á�á�á�Þ���ß��M-��á8á9á:á;à�à�ààà)ß��zá5ß�ß�ß�á�à�ááß�ß�ß�
GV*��QáfágáRá]á^ß�ß�ß��#eá�á�ábácá�ß�ß�
EV*@25	O	á�á�á�á�ß�á�ß��j!ká�
Gá�Gà�à�ß�jß�ß�á�á�á�á�ß�5pI��%3á�à�à�à�à�ß�à�à�ákálÞ�ß큝$�Þ􂙁�ß�à�1áháià>��à�à�à�à��Iß�p&#��0à�à�ß�	��e��ááß�!à�à�á��á�à�à�à�à�à�à�à�ß�	��à?à@ß�ß�ß�ß�ß�ß�àAàBß��à�à�à�ß��ß
��ßß�ààß�ß�	��ààá�á�á�àD")AJV]ß���^(
á�á�àà
à
à�Z*àá�á�á�á�àààààá�àG%(D�)àl)à��jàE*<E��%á�à�à'"+D��áá�à	ààà"Mp>��ââââà%��Aà#Lo<��à$L��àK�&"rá�á�à�à�àMàNàOà=àPà�à�à�àLàS�%��àIàJàQàYR��á�á%á&á�á�àW��á�á�à�à�á�á�à�à�W��à�à�à�à�à���à�à�[à�à�Þ��5��4Zvá�á�á�á�à,��à-��á?áEá@áAà/à3��à4à0à5à6àZà[Þ���S$F[/��ß�à:à;à2ááá
ááß�àaß�à`à�5à�àUàVá	ß�ß�ß�ß�ß�ß�ß�ß�ß�á/á2á1á0PK�j�Z~+/��vim80/spell/he.vimnu�[���" For Hebrew capitals should not be checked.  But only change the
" 'spellcapcheck' option when it is not at its default value.
let s:spc = &l:spc
setlocal spc&
if s:spc == &l:spc
  setlocal spc=
else
  let &l:spc = s:spc
endif
unlet s:spc
PK�j�Z��@uuvim80/spell/fixdup.vimnu�[���" Vim script to fix duplicate words in a .dic file  vim: set ft=vim:
"
" Usage: Edit the .dic file and source this script.

let deleted = 0

" Start below the word count.
let lnum = 2
while lnum <= line('$')
  let word = getline(lnum)
  if word !~ '/'
    if search('^' . word . '/', 'w') != 0
      let deleted += 1
      exe lnum . "d"
      continue		" don't increment lnum, it's already at the next word
    endif
  endif
  let lnum += 1
endwhile

if deleted == 0
  echomsg "No duplicate words found"
elseif deleted == 1
  echomsg "Deleted 1 duplicate word"
else
  echomsg printf("Deleted %d duplicate words", deleted)
endif
PK�j�Z(��Y�	�	vim80/spell/en.ascii.sugnu�[���VIMsugV����M*@bfhklmnprstwxy @bfhklmnprstwxy@nbfhklmnprstwxyns*tkn*s*sGlsft*smb*kGklnr*sQn*st*y*ylstst*y*n*s*txGnGys*tkflfGmk*sGyl*y*fkGnrst*yksGy*lGtGtksfl*ssGmfl*n*n*s�k
hklmGnstwGxstrkGn*y*lflr*sf�k*sGykn*s�k�sGystQk*s@*lstlk�k�s*yklk�k�s*yn*st*str*k�s*sGyksfltxx*n*s*ttGr*kGnst*yGk�sklmnpstn�r*kQs*kQn*yQt*sxtlGtsftk*n*s*txxlprQsWt*k*s*yGkr*stGynsGmf*sflnGslGm�stGp�k*sk*mn�ssfl*sGy*s7tGxGklGm*sGttlQn*yk*nGpt*n�rlbGn*sn�sG@bfhklmnprstxwxy*l*s?bk�rs&txxr?nkfl�n*stxx*nfr*s*tr*sn*s*tGs�tkGlnr�sttxfln*s*tkfl�nstyxx*mt*k*s*sGy*n?b*yGsnb*slQn*y*kGszwm*n*stxxGbfr*krsGy*l*mflQn
bfk*mnstx*y?tGn�sfln*stxflQnGs*nr*s*tGyfl*yn�l*skGs�tQn*sGkGn*t�fflGnr*s*tGytxx�f*n*s*tmn*s*t�nsGmGtkn*s*rb&txx�lz@�fQhklm*nstGys&txx�sk*y�sGyl*st*yGm*n*sGtxxn*s*tGy�m*nGs�t�wrxf
G@f�hk�lGmnpstxy*s&txxl�mn*stxxtr*l�sl*s*s*y.b*n*s*t*s�ttfl�n?sf*tfl�n*skGm*n*s*t�m*n*s�n*s*tstwyG@bfkl�mnpst�x*ln*s*tfl+sGtbfln*st�xl*szt*yflGs�trnr�s&tflns+t�x*stsGmGt&fGm*n�stxxfl5n�s*tG@flstGx*s*tflm*n}s*tGynt�ttxxfztCf*n*s*t	kflmnrstGyGl�sn+s^txxk�np:stxCffl5ns�t�n�r*mGtr*sGy�kxx	fklmnrs*tflGn�sGn&txx*n*s*yn*lp*sGtlst*s*y�bfl�m*nGs�tx*nGr	&k*l�mGnrstxxGyfl�n*y�f*sGy*ffl5n*s*tfl�ns�mn*s�t�sns*tGs*t*l�mCn*s@bfhklmnprstwxGyklnWprt�wx*f?nmGklk*k�sGy�k*ns�w/t*pl*f&kl*nr*st�yn?st*y&sflGn*sGyGk*l^nGtGyn*s�n*s*t	fl*mn�s�twxpr*sft*n*sGt�wxx/y*l*t*n*t*n*tln�rs&tymGn*s*t^n*s*t�kt*n*s�tftp�b&klmnprstx&y?f&k*nr*st*m*nr*s*tl�s�s*np*stlnks&tztstxx�nfr*s*t�m*n*s*tfGnrs*txxtnGs�tl*s&smnxt!pQxVst{lG@�fk�nst�w�x*n*s�t�kQlGn*s*t*n^sCtGyCfl�nGr*stxxQns*yQnflGn*s*tn^s�l*s�tbfk*mn&prstxCylQnt*yGm*nr*s*t?k�ksns�txxGy*n*sGt*kGs�t&xsnGs*t�ntnr*sflQn*s*n*s*tGy*fkGnfrGs*txxs*pn�l�rsnrstCx*n+s�t*y*l*sQt*kGmt�kQl�r*s�fk?s*y*t�x
bhk�lGmGnp[rst�wGyWnGtGxn*sGtt^tl*n*s*tkflGns*tl}s*yGm*n*s't�r	 ffl*mnp*s#t?h*l�n*sGkGs*tr�x	fk�lGn�r*stGyl�n*yrt�ss*mGt*nOs*t�kl�m�nprstw*x�y*n*s�yl*s&txx�b?m�nstxxk*n*r*s*tr&b�p�fk*n&s*t*ytxx*f*n*s*t*n*s&t�kn*tr*s�n*t?@b�fklmnpst&wxyqnflnrstxxst*m*n*s*t�x*y*m�spstxxlsJt*nGr*s*t&st�b�m*n*s*tn*s*t&t�xf*n*s*t*sft�k*n*s*t�bfnp*s*tx{s�xl�m�n@fkl*nstxsWtmlrs�stQl�sft{yrQn*tl*nr*s*tk*ysn*s*tr*stsmnmsGmWtGmn^sttr*k�s�km*n*s*txx&txxknr*sGtxGyt�t�pGkcf*n*s*t	x@Vb�hxmGn�p*s�t
bfhklmnprst�x*ls�tkr&bfl�n�t�l*n�rs*n&p�s*t*y�k�np*sGtlf*n�s*t!k*s*t/yst*stGyf�nftflm*r*sn�tlnrx*n*s*t�y�tGn�tlrsb*n&txx�rfl5np*tQs
�f&km*n&pr*sct�yl&t�x?kn&p&st&x*k*n*t�@bfQhklmnprstwxyG@lGn*s*tft*ylGt&pGl*nr&sGt*s&tGfk�s*yfst�fG@�ksnsGn&st�xflQm*sn*s�t	f5k�mGn&s*t�wGy�k*sGt�kQl*n*sGt*kflm?n�sGy?n*p?lGtGfGk/p&kGln*st�nt*n�r*sfl*n�r*s*t&kln&r*stxxQn}s�t*y�kGsGt*n*s*t�wGbCk*lGmn�pr*sty.m*s*r*s�r*s*t@mQkG@bfhklmnprstwxylm*sGtGwQn*st*y*sGx	*bklm�nr*sGt�l&txxn
s�tn�sGk*tGxmnttGfkxtl�ss�tGklPmGnGp*s�txx�mtxx*n*r*s*t�@bfhk*lmnpstxyrGm&txx�k*s+t�y*kCm�k�stGy�ks�s*n�r*stxx*nrs*tGk*sCt&s�tGffl5n*sGtxxflnr�s*t�xGyxkGn*s�txxGlzn�txxlGns�kt�ks0slpGt�k5t
*bklmnpxrstlbl0ntxx^f*n*s*txn�kstGm�sGt*n*stxxCflnGscx�m�s*t/ykpr�p7m*stxx�f�n*s*t5@>bfklmQnrst�wxGy�kGlnrs!kkn7s�fGklprGsGt�xs*yGm'tnt�nf*k*sGyk*st*y�b�k�m*s�t*yOkfr*s�knst�wGy�sGy*n*sGtxxWlr*sGyGkxQn�b�mn*s*tGstbm�n�stxGyl*k*l*s�kfl�sGt&n	�b*ffln*s*txGyGnsGt*s�xGy�nlGnxr
Gkl�mnr&st�x/yGk�nQ@ksGttkrp.sxn�l*tnxx�x
bfklmnpxrstxyQklstk�n*y�k?s*y�n�k*sb*nr*stxxGk*sstfr.kfl�m�n*s*tw�mlstxx*strl�s�s*yfl�n*sys�t�ffl*n*s*tk*s�tkn*stl*k*yGl�sGtGy0slmGnGst�ysyst�k�sGys�m*n*str*l*s*y�lGnr*s�tt�kfn*stGxGyfl�nft*stWr�sGklfk*fflGm5nrstr0ss*m*t*n*s*txxGymGn�kl*s'tGk?mGt@bfhklmnprst	�wxy�m	bGkl�nr*sst�yGt�y�kGt*kun@l*m*n*r*st�l�n�t�xGn*s�xblrmst�tx*nr*s*txxtxx*f�n*s*ttxx�b�f�n*s�t*nr*s*txx*lGn
�fklmnrstx�tGbmOn�ps&tx*n*sRtxxf*kfl�nstnfr*sn*sGyk�stxx*f*nfr*s*t�s�t>bm*nstx�n�n�f*n7r*s^tGn�txx>b�fGnGsCt
�bGf�kflynrs�tGy�kQsn�l�skGm*nrst*y�kGy�m*s�txxGyWtGlnGr*s�txxfl�t*@�kflnp*st�b*nGs*txxl&txxf*nr*s*t!k*s*t/yflQnft*y�k/s�l�mGn�rGstl*nr*s&txx?sft*y�k+s	�bklnrstx*stxx�bnr*s^t�xfls�t�n&txx�bknrstxx�btxx�f*nfr*s*t�b*n*stxxfr*s*t�x�b*n*sRtxxCf�t�bGfQk*n*stxx*f&knstxGtx*l&txx�b�f*n*s*tb*n*stl*sztGrnfr�smnpsRtxGyntl*n*s*txx�s*ys�xb*n*s*t�rb�ffl*n*stGw�l�nnls^sGm't*nGr*stxx�lfr*s*t	b*flnrGstxl�nt*y?s*yflQn+s�t&txx*yfl*n*s*t�n�sGn&txxb�lsVlflQn�tbfklnprstxxyl&txxt*y'rlt*lGnn*s*tGx+s�ttWrr&txtxx�n*s�tn�bl*sQn0s*y*l&sGyb^fGm*n*sGt�b�mnxr*stxxflGs*tx
�lflOnfr�km�tCfklmn�prstx�lQnsGn*n*s*t*ynps�t&txxr�nrs�f�klGnstxrsQt*yb�f�m*s�l
�bl*n�p*stQn*s*yflQn�p�b�n*s*tfklmnprstxx*y�hks&txxun�kt�x�blkp3rtxx�k�b�f*n*s*t�x�k�n*s*y�f�l�nrst*l�t�kGmGt�r*sGysGt�kflGmQn�lGnyrPms*txx*fln�py�l�ss�tnr*stxxrflQn*s*ystt�rr+l�b*n*s*tGn}s*txxGy�f�k*n*s*tnGrfr�s�tGkn�k*n*s*thkmstytrkOsnxtGstxxGn*s*t�rlt?fGmyxls*k*n@bfhklmnprstxylm�f@l*sQkl5n�s
t*wxx?ns*yGnt�rflnsGt�lxr*sk*sllkQnrst*yGf&kOnsxGy*m0sn*sxk�lmfrs�t?n*sGt*sGt*k	�lrGsGtGps't	*l�m5n	�rs*t*wGyGm*sGtGkGm*st�kn�r*s�y�t*f�m*n*s�tGn0r*s*y�s�xGr*s*tGb*kGln*sGy�b�lGn�r*s*t	bGlGm*npr*s*tk*s*t*ytxxl*sk�k�sGyfWl@bfhklmnprstwxy*kGm*s
hk*lCmnr�stwGk!nGrGn}sGy�lGm*sYtx*yGnGt*n�r*s*k*n*tbfklGmnrstxt�krs?rtpr�t*strGffl*sGt*yG@f*kmGs&tsx?lr�kk's5tm*s*b�t*f*k*nfr*s*t�n�bGlmGnGs.b?r*sb�fhkl�mnprstxwxy�lr*s�k�sl�n*t�k}s�lsn*s*tG@+n&s+t*y	Gbk�m*nst�wGylGn�t?f*st?rflGr*sl*t
+sGy@�fkGns+tGy�m@l*nGtn*r*s't*st�r*s	bfflm*nr*s*tsht@fklmnprstWwx*y�mrp�st*y�kk'lr*s*tyxxGs�t*nxlk�k�s*ykln*stxx�lkQn*s*x*yr�f*mfQs2lk*nfr*s*tr+fGmkmy�snsn*s*t&st�k*sktxynt�k}s*f�k�rnk*l*skrfGm�k*yfksfl*stf7tflkrfGm*k*sGylstGk&t�x�t�ksJpk*st�k'pfr*s�tGy�msxy�kn�kln&pm�k&kmGn�ks�t�kn*sGyr�s*n*t*yGl*sGt*k*s&txxbhkn�prst�wsxGk�rGt?sGtxrsGt�bGkflGmsn?rstxxGy�l*m*sGt*fl�nr*s*t8s*yflQn*y�f?f�m�ty�nbQn�r*sGy�lG@bfk�lmGnGrstCx?mls&txWn�sGn*rOnGyGn*sGtGk*l*mGn*s*t@TfGk�mknQprstw*k�s*y�nps?r�x0lm*n*s�tk�s*l�fGk�mn[s�tGxGyfl*s*tbfhCkGlmn5prstwxxyC@QtflnGsGtGm*r�lGrGrGsGtGnGs�txx*y*sQt
kflmnprstxxfl*s?tWr*sGt�fGs�l�m�s�txx&st*f*n*s*ty	Vn*@h*l*rkGn�lbfhk6lmnprstw*xrGn*sGyl?ns�xGt*w*m�y*@?lGr*s*txx�n�pGr*stflGm�r*s�b*kGnGstxxffl*n*s*txlGs�@bf*hk�lmGnprstCx*y*lWslst�r*sOt?lmnrGs�psftGf0s�tkRnxr�trskp*k*k*st�b?p*fGmn*stGyktflr*s�fr*sfk*l*s*t�x�kr*skt�r�ffl�mGn*s*tGlmpt*@�b*s*k?s�r*s�yflGmQn*sGt?lxm*n>bGf5n*s�t*lmn?p
�r*s�k�sGyfrs*kGt?bmn*ps*txxpGkGn*sGt	�fGmGn*s@bfhklmnprstGwxyy]sbfkl�mnrstwx*n*s*t�xsl*k*n�r^stxx*r*sGy	fkmnstx*yQr*s�l*s*n*st�k?ssGt�m*s*t�wbGmcn*s*txx&nr*s*tGy�mGn*s*tck*lGsGtkcl*nst�xyGl*sxx�b*f�m�nGr*s�t*l
r*sklWn*sn*kQs*y�kkl*m	�n*stGy�s&t*k�m*n*s+tr*s�x*lGs
�bkl�mGn�rs*t/ystr�stm*n*s*tOnxm�r*sGnGr�s*t	@bGl�prstytGr*slGn^skQn*st*y�f*sflGm�n&s�kxms�mGl�r�s�t�b�l�mnrs�t	>bGk*lGnr+stxxQn*s*y^f*s�n*s&txxGysGty�l�s	k�m�n�rs�txxGym*s*s�txx
Uffl�nn�r*st8r*s@bfhklGmnprstx*lrfplnGst*y*n*sGyWs�rs�ttx�mGklmnsbprztm?s�t�k*ss^t*m*sGyrtssnGs�tGh�k	�bkflnpstxxslGstflGsr�txxs�xGf�n*t*s*t�y�bfk�l�m*nr�s*txxGysns*tWskx�nGkGn*p*s
@fklmnrstwx)y*k&stGy�kkr^stxxb*ffl�n*s[lcx�bntxxb�m*n�s�f*n*s*t
Ufkmnp�rstxxy�b�n
Htxxntb*n*s*txx*n*s�t�bbCf�m*n*s�t�l^kfl5n*sGt
�b*n*s*t�bn�sunGt&l�m*n*st'mnr*s*tGyGs�tb	rlbfklmnpstx�bmb�m*nsZt*n*sRt�x�ln*stxx�b&txxk*n*s*tb�llQnft*y�m*ns*t*yGm�t�p*sGt*stflQnrt
�b�f�l�mnGrsGtxx�m*nGs*tflGm�nGtfunr*sGyQk*lQsbn6lb8slQnt	�bflnp*s?txx�bfl�nt*n*ylGs&txxzt*yt�b*fb�fGkfl�mnQrs&txxy�b*l*@�n+stflQn*sGyfl�n*s+th*n*smn?t�m�r*sb�l�mn*s*t*nGs*t	klGmnstxxyn*ssGm*n*s*txxst8y*m*t?k*sGyG@CtflGm�n*st/l*s*kGs�l*s
�b+fkxl�mnr*st�l*sflGn*s>b*sGyfl
�rGs�tb�fCklCmnrstxGy�lGt&st*y�kGsGklGns�tx*yQnzt*yGm*sfl5n�b*n*s�txxGy�ffl5n*s*tGnGpn*s&txxl*sszt*yGm*n*sGtkl*sGttlpGsTk$ @bfhklmnprstwxy
�f�klmnrstxkQnp*s*y�k�sGy*n*s�tktGy+b^nk[s?tf�kclcnpstWtklmsGt�nk�k�sGyft�ksGm*n*srGkGy�n*n*sGt�n*t�fksfl*ysGm�t
fhkl{mnprst?w�x?r*st^nTlk&l"mnGs*t�tx�nn?s	f&kmns
tx*y�b�n*s�n?xk&s�nGm*t*n*st�l*n*s�t�t@>bmfkntxx�b*n*t�b�nGt?t?x?lGn*s*t?bf�k&m*st�bn*t�trkt*f*t
�b�f/k�nr*s�t�w*ys^f@bfklmnrst*wxy>f�kflm?r�b*tl�mGn*s+t*yr�bGt
bf�klnrstx�b�n�m*ns&t�x�ytxx�f�txx�b�n^s*tGy�bCf@l*n*s�t�n�s�bfk�lmnprst�wx*yl�m*n?r*s�t�b*n*tns�t�xfl?s�bGn*s*tb*n*sRtxxl*stfl�r&stxPr*s�l�nb�m*n*s*t�l�ssf
�t�bflGnr}s
txx�n�txx�n?s*yln+r�stxGyflVrt*y*s*tGyGk*n�t�fQkr*s*tGy�n*s*yGl�nk�l&mstx*y�l*t?x�b�f*s*tGy
�bfl*mGnrsGtGy@l�n*s?t*yGs*tyxm*n*smGt*lGn*t�bfk�l?mnrstxx"y�b*tln*s*txxGs*y+stfl*tm*n�stxntl*sl*n*s*tQn?s*y�lcs+t�b�n*str*sQykt�rmf*m�n*s*t�x�b�f&kl�mnr*st*y|st*y+s�t
bkfl�m&n*s
�txxGy�b�txx	bflnr�s&tx	rl�rflQn*tstfl�m*s�t*ns�t*y&n�ln?t�b*l*n*s*tl�nsxik�klskbf&klmnprst&xytxxb*fnfr*s*txx�sGtms
@*f�npst?wxx*y�fflQn?s*y>f^m*t*fGn*s*t	 mfkfln�p*s*t�ln*st�kflQnstfl�n*tGk*nst�b�m*n*s*t?l*n?rs*t*y�m*tflGn?s*t*y�kml�n*stmb�kfl5nr*s*t�kGs*np*stt>bVl�rMt�f�n*sGt�fktWnr�sGt@bfhklmnprst�wxyflQn?rGkl7rGs�txxGt*y�k�ln�r*stxx�b*s*t�t*nr*sn+s�t�mnr*stxxflGsGtfGm�k*s*y�b*f*n*s*t&@�bfGhklmnprst�wxy	GbGl�m*nr*s�tGxn*x*klzn�s&txxGyb*yNlfk*y?b�nrt�sGk�lmGnstx*nGtfl*n*s�b*s&tLs+t*xf�k*n&pGr�s*t�bfl�n*r*tf*k*n?r*s*tGy�b?t*lxmGnswp/kxmGfbf*lGmnp�r*stx�mnrs*tsGt5n*tt�b�tkfls�t�bt*f*tr*tb�tl*sft*yl�mnr&stdkmMn�t�x�n�nmstFbhmsn�sMtxxMs,b*n*t�bn�t+s�t�b�k*n^s/tlrs
bfklsm|nrstwx*y}lmn?st�btGyns*tx&s�t�n,b*tkl�nrms,txx*l?ts*y�f�bn�s+tGstfl?kQn?s*yGn^s�t*y
�fkl�mnpst�ynmr�txlQn7t*y>b�t*y�b�nGs�t�kflQntns�t�nrt>b�k?n^txx�xFb�fl�mnrsRtxGym?s*y�n�bns*t�x�bfl*n*t�t�x+b*t�n*st�b*tn�l*s*t�bn�bGn*t�bl*nrst*n+s*t�b�l�txx�lt*s&txxGy�lG@bfklmnpst�wxy6lmr�b�m�n*st�bflQn*t*st*yn*sttxxl*nfr*s*t�x�s*yk�lfl*n*stGkfl*tt
�x�b*t
�b�ffl�m�n�p^stGyfl*n*s*txx�bfkl�n*s�t@l*t�y�l*n�st*y�b�mGn*s�txx�p*s�bhklmnprstxst brst*s?t>b*tfl5n�ty�t*k�nlpGs?t�bdklGmnr?stk�n?rs?t>bts?t�fns*tsb*s*tb�f*tlQn*szt*y+bfldn*s*t�b&txx�bfl�np?stxn�b�lb*n*t�bf*kflmnr�s*tGy�bfl�n*tfr�ts�t�x�k�lGmn�b�l�n�s*t
+bfk�lmnstGyfl
txxfl*n�r*s*k�n/stflQn�s*t�l*sGtbGk�mGn^s*t b*n*s*tbfGhkflmn 	pst�wxy?lmrb�lcn*s*t*lWt
�b�kl�mnstGxGy�hQn?s*yGkfl5n*s*t�b*f*s*t,bn�t�t�b&kl*n*st0s*yfl?r*sn*st*ns*t�k�m*nmr*s*tcnr*sGt�yblfr*tlQnt*yQy�b*nst�bn*sGt�xt*m*s�k�s@bfklmnprstxGyfl?rt�kf�klr6xl�n?x?s*t�b*kl*nQs�t*s*t*y�b�lnst�b?ft^f�kGnst.wGyfl*mGn*stxx*k*t*kfr*s*t*yrt�b�nzr*sk�l*n�r*stx�b*t	�b>fln?r*s*txxs*y�b*tn*s*t�b*tlrstx?fmynUt�bGt?f�s*t|n*t�b?n*t�b�l*n+stxx*f*nQr*s*t
�b>fklGm�n�r*st"l*n*s*tk*sGy�b*n>bfkl|nprs�tGy�b&txx*s�tt*y*k*sWt�k�n?st�b�mn*s*t�k�ls@fhklmnstxyxs�t�bmklms�t?f�nt�f�btbt�b*n�tGh?klmprsWtxx�y?s*x�bmr*tympt4yn�m*n*tmn�s�tsxkmlm*np�r*stwxx�n*s�rlnr*s�b*n*s*txxmxmk�rGkl�mnprs�t?wxxGykFb�n�tflQn?tzxr�s?t�bpst�b^tt^n�tmptr�l�b�l&txxmstfl*n*s*t�x
bfklmnprst�w?xl�s�x?m*t?k�m*n*st�r	kmhn[rst?x�y,b*n*st�k�b�nsmn*t^t�b�k*tnxk�n*st?x,tl*nVr*stbfkllmnprstxlmstb?k�ln!�tzx�t�rtk?smpMstt�tnst�slp�bfl*s*tr�sQx�t�t?fk�mn�rstr?b�t#�n�fkn2rstFb�f*t�t6xMt�bt^f*t�b�fGn�p�st�bGk�r*s*t	�b�kfl�mnrs�t>bflQnGs�t?l�t�nbf|hklmnpstwxy�k[l*s*t?k&l?m?nr?s?t?w"�kn�sfkmlnst�rns�b*n*t�l?rs�lt"�rGk*st?r*t�b6fGk*l*tFb�f�mnst*y*sMt�b*m#Bt*s*tGy�k"�mntmr�t�n�t�fkflstl*t*t*y?mnrstt�n�bstnt
�t�s�b&r*t	fflnprst?x�f*y>b�nGs*t�n�ttn�nr*s�b#�k�n*t
+b?f�k�m�nLs*t?x*y�t>b�m*n*s*tGls�m@bfklmnprstwxytx�k
�sl*sk�sGy"�kl�mrst*ktktn?sx�l?t�ln*thtxxl�mrst?yk*np?st*yrfGm*k*y@*k*sQtGy�b*k*n*s*t*yb�ntmk	?@lmn�prst�b>f�m*n*stmn�sf*k
sGtsk&bmkflmnp*st�w?xb&l6ltxx*f�r*tSb�n*sGy�ls*t*y>fGt.flrs*tGm*n*s*y�tbf�k�lGmnr�s�txx*y	rl�r�bk�mn*s*t^xn6ss�t*kGs�t*s+tGyblnp*s*t*x�l�n?s*yGkfl*stxx�b*n*s*tl	klQn&prstx�bt�x�m*n*s&txx�b*nr*stzxfl+tfflQn?sflt	fflmnrs*tGy�ksn�tflGs*tGlGn	�fk�l�nrstx�b*ntxx�k*n�r*s*t�bns&t�x?y*kfl�n*tf^s*t*k*tmb�fflGns+tm�n�lGnbk*lm5n*sGtl!7txnfr�s�n�fnp�r*st>b�l�tkmnt$ht�bnr�s*t�bflGs�t�lGsGy
bfklmnprstCxylQn?st*y�l*t*ym*n�r*s�txx
t�b�m�ns�txx*y>b$�l�n?p&s	�tkflGm*n&st�xt�f*l*s?b*ln*s�tGyfl^s�b?l*n*s*tk�lmnp?stt�x^f*n?r*s*tn*ttl*n*s*txxst*y*k*n*s*t�k*n*s*tGyffl�n*tk*tMytWrfl�mGnstx/y*ffl*n*s*tnl*s�s*y�l	�@f�l�n�r*s�t?y�n�b*ln*tkmnsl�k*np�s*tt*k�slp*stzk@�s�t�k�rxr�ntm*n*s*t�nWt� @bfhklmnprstwxylmQn�rGsst�y*l*m*k*l*s*y�b�klWnrGstxx�mstGy�tGktGx*n*s*x>bGk*n*s�tGy*@fklmnrst&w�yskx�n�l�st�b*n?p*s*txxfln%s*t	gb�k*lGmGnstx�bflm5nQr*s*tntn*l�sGlmnGs*tkt�nr*s*kGyflGs�tmx�b?fGn�s�tb $kl�nshtxx*l�rst*yGm�n*s�txxxflnGrsy&mt*n^ttxm�rpt2n�@�bf?hklmnprstxxnmn�tl*s&t�x�nxx
@bkm�nrst�xGn*sl�s�tQw9kn�xk*t*yl8s*kxm*s*y*fflGnr*s*t
&lnp*sWtGy�k*n�st*lfr*s*t*y�s�t	fk�nrstxxGyl*txx�s*stxx[f*n*s�t�xflGmGn*st�k*sUtGyfl&n*sGyt#lG@,b[fGklntpstxGy*stxx*y$�l}sGt*f*n*sGtGykn	�bkln*stxxGy�ntxx*n*s�t�n�b*l?r*t�bfGk�l�m5nr*s'tGy�lQns�nbfk�mn&prstCxy�l�r*n�r*s*t�b�knr$[stGyGstflGx�@*flQnfr*sQn|szt*y'k*lGnGs�t�bun*tfl5n*sGt*nmr*s*t�m*n�r*s
b	�fklmnprst�xGy*l�m*n*s*t*l�nr&s*t�b�tkQn�r?st*y�k�l�sGy	�r�b	>b4f&l*ns
txGytr�bt�fn*t*l*tr�n�tGk*s*t/y�bGl*m*n*stGymk*s*y
>bGkl*mnr*stxx*k�txx*y*s�tQk*l*mGsGyfl�nfr*s*tG@�bfklmn�prstxSy�kl�m*s�bcl�m?n�r*s	�trs*ynGy8sGt	�r*s?t*l�nx*y�m*tffl5ns+t!kfl�n*s*t/y	fln&r*stWwxx�bfl�n*t�k*yGsGtnGp*s*tl*s*t�szt*y@fl�mnprst�wy*sWtGymft"cmnpstxx�ytfr*s*t�tWm�b*f*n*s*t?lGn*st�b�n�r*sl*s?t�xf�l�p*�rst�l�n*sWt*yb�f!k*n*s"qtxx�np*sGtxxy�r*�x*f�kGl*mGn*s*t*n*�r@bfhklmnprstxy>f�k*slGn�t*t*y?l�mn�rs&txx�s�bk�l�n?s
?hGlmnrstxypfn*k�lGmr�s*tzx�n7s&Ct�x*lp*sGyml?s�bfflsnr*s*tflQn*sftn�l�sn�sGykGnstx*ys*y*n�r*s^tn*s�xsflp�rstGx+Rk*n*s*tl�m?y+Rk*kr*s$p
�bfkflmGnstcxst�m*n*s*t�b*l�npn)m
fkl"�m�np*s
`tGw?m�rfl
n*stb*t?s�tPfQks*y�t�bGf�kl�m*nrstxxGydmbns�txr*s�x!	ln*st*t�x*nt�x*l�tb*ffl*mGn*s+tzk*s
�bCfkl*mnpstPr�skt�l�n�ntr*k0s
EksGtWf
�m^n�r*s�tw*y�@�bklm�npr&sGtzxGy*ltxx*ffr*t�s*k�l�stNm�f*n+�f*lGnGtxf*sGw
�@bfklmnprst�wxyk�l�mktfflft*n�r*s�t
*�b�fl&mnprs&txs�t�t*nQt�k�sGybm*n*stxxgbntxxfl�nflQnrl*s*tnl*s0sft bfl*n*s*tfr*t�nt?y�bfl*nst*l*sGyflWr*tlGmnstxx�n*ls/t�bf*�m*n*s*txxk*tfl�x>b�f�k*nfr*s�t�bGmmp*t�ffr*s*tb�f�k*lnr+st�x*yl*tftxx�k�lGst�x+bzl�n*smbGfk'Mln�s*tGyt�b*r*tk*@*k�l�m*n*s*t�y�b?k�lGn?tkml'nbt�nQsWt�r
 �bfklmnprstwyl�n*xp*yGnstxx*kGn+t+b*f*l*n*s*txf�m*n*s*t*yk*ln*s�r>bs^txGm*stGy*k*s�n*km�n*stnGtzxQk*l*tn(�rtbt&m�hk#r�s�t
wt*f*kps*tdltblxmntxr*lGn*s*t&n*np*s�k*s
*b�f&k�l&nGp�rst&t
b&klPmn�pr*s�t^ln�kk�ls�bGn*s*t*m*sGtGb*fsGt�xxmGnp?r*s�k*t@fklmn?prstxflQn?s*y*nMr�b?n*tkntmfl�n*s�lQn?s*y�bMk)Mt�bflns*t*y*s�tflQn?s%tGkfl�n?r*s�t�b�f*t&@bfklmnprstwCxGyxEn�bl*n*s*tGyr�s+bl*nrs*t�tn�st*yk*s?r*s*tGnr�tk
&nk�m*n*st�b�n[s*t�m�n�r*s�t?@fl�n�p�r�s*tknst*strs#Btk�m*ns*tb�nGm�t�m�t�x�b*k*n}s*tGmt*kflsGf*nfr*s*tCm
x@@bh�k#�l�myn�p*s8tGwx*r)f@bf*hklmnprstwxyklGmr�s�tGyGmr*lGm�srGtxn&t@ln�r&tly�kr
�s*k*lm*sGyn*l*n
fGkl�mnGprsts�tyxm*s�w9pGst*kzrfmGn*s�ty�k�sGy*s�tf@l*s*l*n*s�t�y*n*sQtbfkmnpstx/y*lGyt�bGk�n�stxxGy�f�k*sQb&kflGnGrGstfl*s*ys�tunGsGt�f�kGn*s*t�kGn*sQ@k*nstQs�t�k�bfhkflmnpst�w,�xyxr�sGmnZttt�n*ls?@dn*st*s^t?xk�ll*s*tQr*fk�m*n*pst*l�mGstm*s�t
�t�m*tlritklsWtW@xtbfhk&l*mnprstxGylr*txxGm�sGl�n*s*tns&txx�b�fsGtm�txxGstflQns*n*s*t�xr*s�b7sYtxx*n^s*t�fGl�n*sGtf�kflGn
�s*tFbGk�n*stxx^f*nfr*s*t�bfk�lmn/stw�xy*s*t/y&l*np*s*tlsGtGn*y�n%mp*s,et*st�r*s
Gfhklmnr+stGy�b*k7r*sGt�x*y*klk�kGy*st�n�fGk*m*n&s*tGn?pGxkl�k*n*s�t
x@GfklmnGprstxx*y�ls�lGyk*s*yt#r�klGm�n*pst�kft*yGm*n*s�txx�rfl*�ns+tGm*s�t�fGl?n*sGt�nQr*s*t�b*f*n*sGtxl?n*s�t&k�ln*sGt�l�m*n*s*t/lQn@bfhklmnprstwxymGnr*st�k&sxx*l*stQk*s�klnrstGyfk*st*k*sGt/k*yGk*m�sGtGk*s*y	*bklGnrst�x>b*y2k*sGtn*syGs�t�xn
k+b*m*sGt+b*sGnGr*sGty@�m�bflmnGprstxxCy $r@fl�m@r*s*t�r#n*s
#�fkl�mGnstxx*y8st*y�l*s�f*k�l*n*s*t�fGm
�n*p*s�t�bGnWt*l5n*s*txxbfk5ns�tGx*y�k4nsGyflQnGtt*ks
@fk
�lnGpstyrp�sWtGy+b�n*s*t*k*stGk�s>bk/l�s�lQn*s
�bfklm�nfrstwxxGy�rGx
�bl�mGnrst?w*xQnGt*yGb�t~n*s*syQsn�s!�k*lGmQn*sCtGy	�b�kl*nrs&txx�s*yGn*tGy�m�kGrGt
GhlGmn*pr*stxxGns>bGm�krs>b�st�xsb�f*n*s*t*k*l*sGtbf�klQmnpGrst�l*sQn*r�f*s�txxGn*st
rknGst*ts�b�f�k�st�b	�b
�fk�n*stQx�yrs�tQkCl*s�bklmn�prstxxy�bfl*s�txx�k*s*y7b�n*sGst�st	�f�k*lGmGn*s*xGy
�@Fbun}s*t*ffl�n*s�tGy�nCk*n�s�t*lxmn*s�t�w{f�l*sGt@*lzn�ps5tmrQk*l�tms�y�yp�l@bfhklmnprstwxym!�n*st�l*nTpGs�t�k�sxxkl�n�rs
tflGnRs*st�x*y*tGy�t	xhkl�nrsty*lGsxxQn*s&t*y�kn&txxt�lGxGl*sk*ns*l�n*s&txx	�f�ls�t
G@b�klmnprst&w-0x*k*s*xGn&p*stxx*n*s�txx*k�n*s�b�m*nmrGs?txx�bl�m*n�sGtk�s*y�bGlp*sBt�wGx�txx�l*n*s*n�r*s*t�bCfk*lmn*ps1tx*y*n*s1�t�bfGk�s�b*stGkGn*s�kflQnn8s�@b�f*klGmn4�prGstlGk*n*s�tyxm*s�w�b@l@r*s�t)=xfl*sGt*k�lSs�kr�k*yfhklGmnpstx'lrn�tGw*nr*s�fzkGsflGs+t�yGn*sCt,nr*s*t*kWplGnQns*y	klnrstx/y�n*st*l*n*s*tG@n�r*s�tGk*lGskm*�npGs
t�x*nGst,r�yGl*n�sGt�kGm�rsGk.t�lGn�l'n^stGy�b?fk*l�mn�p*st�y/t*fn*s�tGs+�t@bfhklmnprstwxyryt*k*sQtTm?kl�n*m�scx!klln*s*t�x/y�bGs*lzslm'n*s�s*ytGk�szk�n*stGyhGs?ymbn*stxxxf*sGt*f*nr*s*t�k*y�@�bGf*k?lmGn(stx�n?s*k�n*s*txGn^s�m�n*s*t�@�k*lsr*s*ybfklmn�pstxGyl�kGmtykrlfs�k�s'@xh*lm'n*sQp	Gbk�np*sGtCx*y�k�sGy@Qkxs*s-�tckmn*stxx�k*sGys�t�k*s&ks*tGm*n*s*t�f*l*sGym*s�kskfl�np}s*y�m�m	�f*kflmns*ty*l*s*yGst-�k*nst�r�lGt!7@Gnl*nGnxlnstQr�lxmGn*p�sbGl�m�nr*stwx�yn�l�sf�l*n*s*t�xfl7t�tn�lsklmnrs*tl�nGf�kWbm	�sOnptt"cm�t�rxrns*yflGmlGn*s't @bfhklmnprstwxy*ls�t*b*skl�nr.OstrGs6�f{n*sJt*yGk/t�k*n*s
&bQfkl�mn�pQrstx#�y
stxx*f*l*n*s*tn/�r*sGt*y&kGscst�fkrsx*n^s*t*ns*tfl*m�n*sGt*l^s�b*l"�m5n&�rst*kfl*sGy*n�r�s*t�lGn
Gh�lGn*pr
`s*txxy�n*s*tpinb�fklmnrstx
�y-lTs*st�f�m	�b&fk�m*nstxx�k*y*ffl5nfr*s*tp*s*yl�t�x	fk�mGnCs�txx*yktmtrt*ffl*s
G@f�k�lGm*np
s�t�wxx�y*k*n*sGt*y5k*ln*stGys�t�b*f�m*n&s*t�x^fkl*�n*s^t*n�txxysWt*sGt�n�@�b&fknrstwxxy�k�sGtGy*k*nGstGk*n*s�xGn�syxm*s
b�fGkflGm�nrstxx�k*n*s*tflGnr*s*tGyn�s&txxGy}sGt*n*s*tx�p*nGsWtb	�fkGl
�mnprstx&l�r�kfl�rs*n*s
�tfbf�k�lstx&r*str*s�b*ntxx�f*n0Rr*s*tflGnfrsGy�b�m�n*s*t�rt�n*s*t>b-l�n*s*txx	�bfk*mGn*s�txxr�k*s*t&l*s*fk5n(<r6�s�tG@bfhGklmnrstx*y�l*s?l
r*pypfsy�nst*y,bGk�n�sGtGyGsQtfl
nrsGyGl*sGy	fk*lGm*�n�s+tGy+b!kfl�n*s*t/y@lsGt�kn�l*sW@f*klnrstxx*ym3LsGt�y}s&tGn?s{t*n(�r*sGt�y	�bf-�kfl*�ns�txflQnftn�sbf
�hk*lGmnpGrstxGy�lt�x�b�f*n*s*t*knQr*s*t�y*st�rRf�n2rstCx*kflQn*y�b�f*k�n*s*t'kl*nGs�tGn*s*yGn*s�tbkflGn�p�s+tlGnsr�fkfl5nstxxr*sf*k*s*t*y�n*sGtbfklmsnpsty*l�n*sGt|l*n*s*t#Bp&rsGtt�xyb*f*n*s*t*y*l.m*s&tk]n]r"qtxx'nfl5n*s*t	�bk$Rnr*s*txx&yflm*s&ps&xGyk�pn*skrs�t�bfk&lcn&prst�xyfl*sftflms*kGn	�flGmn*s�t�w*y�s*y�ks�fplnt*s*t�xkt*y�f{n*skn*s�t't�x�l&sGp*s	*@&kln/r*s�tGyGfGt*s�t
�b�k�mn�p�r*s&t*yGk�l*n*s*t	@f&lmn!dpstr*sGtlfG@f?l�sG@lf?l�llfnG@lffk*s;�n�n;�slf;�w@�bfkl�mnxprst*w*x�n?s*y;�l*snGs*t8wGn*sGt^x�b�nrs*t�xkpMrGk�n*l�mt�r3)n*s*tw�n@bf�hklmnprst�w*yyf$�lQn�s7kk�ln*s�txtZr�pp�r*s�b�l�m�n�r�sGt	�bhGkflnrtGx�b*m}s�fGm%"k7m*sk�n�r*s?t*y�k*n�sxxGyClGn*s�tkflJmGst'l�m*s�l�rstkp*l7s*tr	XymGnsGtGy*s#tt�k*sGmGn*str*s�ln*s&txxfmk'nrsxy*l�n*st7m�n�r*s�yG@Gf*s�sGtGs*yp�k*l*sbf�hkl.m	�nprstw?x<Ay&l�rGl'txb�l*s�x�fns&tGx*s?tbzr�nGs*x*s.x�nGr*stkWlr*sGxGnGp*tG@GlQn�rptGxG@CbfklmnGprstwxyQlGnr*sGt�x*kOsGyh�k�l�mnrs�t�x*yt*s�tGnGs*t+s-�tGy�kGt40fkGm�n*st�kGn*sGy�mbfklmnpstxln+ps	�tb�f*s7rGl.k'l�m*s�p%$r�km
+s*yHn(8t�k*sGtlGn�s*t�y 	slGmGn*stGfWnk*n*s�tQl*sk4y�kfl�s*y�m@GhklmGn�pst*x*yrWp�b>flGnst^skWn*k*s*yPb�k*s*yf?l*t*@Gl?w
bf�hkQlGnrs5sxGk�lGtl*sGx*yl*sGpGt�n^s*t*ytGmWrbfhklmnp*rstwxGyGk*n�r*sGt*y?l�n!Ir*st7lQns*y*lmn*ln�sGt?r?k�n*s}t*ybGn*s*tlsWtiy*s*ty9#t&k*s+tfln)Rr�stGyGs*t*y�k�s
�kmGn*s�txxy?r*s�m	Kb�f�klm�n,lrs*txx*y*k*n*s*t*y+nn*@*n*sGw�lGn*s*t
flGmn(�p5r*sty�k�sGynGyGkGn*stG@lf*s*klGns*t*y*sxt*yOt
G@�f=�kl�m>�nprGs*tGxy^sGt*yrft
.f4�k*s*t;�@;�f;�ns;�t;�f;�k&k*n&tGnr*s*t0s*tlmrsn�k*lGnGs�tk�st*lr*s#fp*kGn�l@bfhklmnprstwxyxf�h�klmn45prstwPxy�hGm�n*sGtGk*sGt�k*l*sGyGb�m*n7pGt�x*m�sCtGb*k*s*lGtmpst�r*slWk.f	�kb�hDklGmnGprst.wxyl*skr7f2�@fk�lm	�n�psGtGyll�lGmrf�k*sGyntGk�s�r�s*tGk*s*t�kGlzns+tGxGyflGmGn*s*tl*t&k*s&t&lGn�r*s.wGkGpQs	f�h.kl*nst^xG@?sCn�kCt*l�r
�b*fklmnrst?w�xyGkGl*n*shtxx	bf�h"�m5On*s*tGy�n*s*t*ns�ttkGl*sUkflrGsGt*x�hGk�n*s*tGy*k*s	�t�bcl�n*pxr*s*ts�k�sf�klmnprsty	�nr*s*t�ls*tGm~tGf*s�tG@n*s*k*n}s*st�h*sGl*n*s*ttn*st0y>XkGt5n*s*t@'m&@bfhklmnprstwxy*lnr*s�t*stGxGnr*s�kl&rGt*nGp*sGtWlGmnCrGsGt*s)MtalmQnr�stxxbGn*n*s*tf*l�n&s�k*y�f*sfhkmnpr7�st&x*y�r*s*t�n*s�tGkfl*sGtr&f&sGtGy*n(�r*s*tG@bvk�lnpr�s*tyGlGrflstf�ltb*n*s�l{n*s
bfhk*mGnrstxsQk�l�x=mGt*fQl?tGk*n*tlf*s�t*kGn*r*s*tGyk�lGnGp/st&l*n*s*t	6�f�kGl&mGn�stGy#�k*s?bfkl2�m�np�rst�w[xGy�l*sGx�n!r*s,t*k*nCp*s�t&x*yGn&sGtCb�hGkGl�mGn&pr*s&x*y&kGm*sGtGx*y�@Wbf�hGk~lGnrs:�tGlft2�@f&klGm*n&p*rsGtGy*b*k*r>�k*y*n*st*lGs�tGk&lGm�n*r?st&xkfl�nsm#�pB&kxm*s?f*klmnGpGr*sGtGxGf*y�ksRtCl*n*s�bxm*nr*st�nGb*s@bfhklmnprstwxy*l�n�rs*m*s*t=fGklamnr�s@�t*xy*k*st*k�t*kGn*s*tGyFblnr�stGx�nsGtGwGyflGsGxGk*sQtGyGnGrszkGkGlGnGpzr*st*s�tx@bfhklmn�prstwxGyGk�lGnrs&t*s*t�yCt7l*sGtGx*@Gs�tGx&k*lGp�r*shtG@Gf&k.Ost*y&l�nGr*sflGnrs*tGy*fGl,nGsGt�flm~np*st?n*y�@l�tGn*sGy*n&pr*s*t�k	Xn*kGl*tGnGpGtGk�m*n*s*y
bfkk�lnprstw&xGyGk*l�l0�nst|n*sGlGn*sGn*s*x�kGl<�b*tWr*s@�n*y@�blf�hkl�m*n*pGrst:|x�y�r*sfl
�mn�rstQnGs�x�k}s*y�k*n*s�t
�bf*l'nr�s*tcxy�l�n*s*tQnGr	�fGklnGprOs*tGtGysGtQl�n
xbGkflGmn�s�tCxy$vlGs?y
PbfhkflmnstGy�lm*n^s*tGy*kGn*s*t*yfl*nGs*t	Gfk�lm5nrs8tysk�n*s�t*y�y@bfhklmnprstw;pxys*t.�tG@l-�r&s*t�n*t{m*n*st�l�mGn�s�t*y�bGnGr?h*k*n+stA4rs�n5k@l*n7�sGt�y�fkxm*n�p*stGn�r*sGk�n�rflQnGxGmGn*r*sGtm*nnt
�t
G@&kGmnGp*rsGty�k*p*s�sffl'ns&t*yGk
�s*s�tG@bf&h�kxmGn 	s*t�w&x?n*sCtl&p*s@bf�hklnprstwx*ym	Xt	5klGn�pWrs�t�xGbGf�n*s8t&l*n�t*k�l*sn*s�tk=�n�s*y�l@�h*n*sGtlxk5n�rs*t�x*yn*s*t&k/k�m*n*s�t�kl�mGnr;$sGk�s�klxxGyfk*s*s-�tn*s�k?s@bfhklmnprst*wxy*kGm*s*tGkGlGn�r*sGxGy	kl*�mnGrs&t>xtxxGf�r*sns*yGs^t.tnr*sGtGf0lm�t*s�tb�hklmnrst*yGk*l*nGkGtfl�nGr*s4�t*yQbGn�sGtfl?n�r*s�t�f&l*nptt*n+s*t�k�r*s�tGk*n*s*t*b�kWn*st*yG@AbGk*lGn*s�kflGsxt#yGl:1t�l*n*s*tGy
�f/k*l�np	�rst*y�r	�l&mGn�pxrsxpbfhklmn�prstwy5k*l�l*xl*nGstxx�n*s*tGnfr*s*nGr�sGt*yGn�sGt�wGkflGn*s*t�n*s*tGy
�bflxm�ntGk�n*pflQnr*sxkxmtG@*sb�l*n*sVn	GkGlm�ns*tWw*y&k�n�bGn*sGtGkl*m*nrstGn@rs�y�mWtfsfsp*y]k*k*s*t�y-ls�txx�mn*st�xr*s@bfhklmnPprstwxy	b�hlGnrst*y�n�s�y�n*t�n*tMk	b�h�k�ln�r*stn*sAn	�k�l�m5nrs
tGx�n*sGytGhGlmn*s?t.@bfhGklmnprst?hwx�y'lWrGtGl�r�sGkOn*sGtCyGn�sG@dh*k!�l�r*s5t�n*sGtGk*nst�krsxbGp8stGnGw*l*m�nGs*t�n*st	=f�hk*ln*s*tGy+stb?�f�h
ukGl9npst=wlGns*t*ytGnGrkt	�rGkGnr
�l*k*n�r*s�x
0Rblfhkl5n5spstwxGy�b*kGlmsn�x�h*s�tDqs*y�fGlGn*st�w*ymGn*s
�b�f�l�mn*p&rsGt�w&xy�b*s*n�r*sGy*n*s�wGf*kGtx�f#klGnpst*k*st�r*s�nk�p*pGk.wlGs*sQy�@bfhklxmnGrstGw*ylGnGl�nGt	�nfl5nsGt�kGnGsGt*y�h?kfl*nGs*t	�n*t	xb]flGnps*t�w�b*ns*t*y�lGn*m?�tG@bf�hklmn?prs*twxy�kGl�nr�s&t*xGy?l�rGt�halxmFZnrsmQb*s*sCt
�bffl�m5ns+tGwGyGl*s*t*m*n*s*txxnGr*s*t*sftGkflGnGstGy?bQk*m*s*y	�l�m�st�wGk*n�r*s*tGl�n�sGtfl�n*sGt?k*s*t�bn�r*s*t
�f*k*s�bBflGm5n�pGrstE�wy*k*s�t*yQrt�rGk*l*s2�@s�f40fl.mnsGtxkGm*s�k*l�s*y*sBt*yn*s*s�tn	�kbfklmnprstwxyGln*sGtGyk'l'r*s�t/y
�x	Gk*lnrstxxy*s/ztzt*y�l
�b�f�m*nr*s*t�w*yGb0fkGnfrst*y*n*s�tGkflQnQr*s*kGn*s
G@GkGl�n�rs*t&x*yZb�fh*kGnstskWlxmp*s~t�w�pxsnr�sGlr*k�sk�ln8�r*st*n*stlk%mk�l�r*slGnGr*sGyGf*yGm*t�b�fklIznrstw*y/nons*tGyTf'nst�w*yfl*m�nk*n*srf�k*s*y�l*s*tflsGy*n*stxx�k�xGl*n*t{kGl*n*sGt�l�nr*sGt@bkUln�wl*k*n�s*t@*s"�sWtbfhklmnprstwxy	G@kl*n-0r*s*t�x�sGk*sGt*ykln+s=tGx/yflxx�m*n*sGt�y?r*sstGfGm*stGf*s�h*s
Tb�klCmnGprs/ztQ@Qb*l*n*r*s*tGk*m*n*st�b*n*s*txx*l*s*tbfkmn	�rst�xGy=rGs�l�r*tGnrGsGt�nGs*yn*s*t*s�t&kGm*nsGt.kCmQp*s*r*s	&@Gkln&pGrstGk^s*sCtWx*sw�l=bhk�l*nGrs&t�wGxGyGk&lGs*l*n*s*t^m*n*sGt?lGn'r�s@*fk�l�mn	�r&s�t�x@�yGl*n*sGt&lGszxsGtf�m�f	xklum'npGr*stwGy�m*n*s*t*y/rGkGnr*sGt*m&p*sGnt�bmGnxr*sGt�p*s
G@4k�l�mGn*rGs/t�xPmn*sGtl*s�kb?�kGlnprsGtwxB�l�t�m*s/s*kGt�fGtGk*t*kGl�b�fklnxp
r*sGt�w6xlp*s*tnt�wGf*n*st�mr*s�n^t�f*s*t~bfhklmnprOs4�tw*y�l�rxfkGtGkPm�f�hlk�n*s*t*y�kGnQps*tF�tGlGnGsGtw*n�rs=�t�k �m*n�s*tGy*@�l*s*tbkl�mnprst�wWxGlGyGnGs!k&n�r*s*y*kGm+sht G@Gl�r&s�b*kn*sGtGks�mnGs�tQstGmGn�k*s@bf�hklmnprstwxybf �h�klmGnrstwGk-0rtGn*tl�n*s*y�n�sGt*y�bQl*n*rs*t*kns�t*y*lGs�ntGn*x*s�t*@Gt�b�f=�klnr*st&xGy�m5n2�s*t�w�x*y�k*sbK�fklmnrsGt*y�lGtQl*s&txx*stxx�s�kGs�kfl�n*sftn*s@f5�klnrstx*ykfl*sn�r?l*nn?sGt*y*kGs+shtgb�n*st�xflQn}sGm�t	G@flGm>�nGr*s*ty;�@f;�n?s;�tG@f?l�sG@lf?lft�t,@bf�hkl�mnrstwxyl?nGt�bGlyn*s*s*x�f�nLst*y*s*tGy*nGst�b
txx�h*l�n*s!�txxGy�b.fhk�l%mmnstxxyGl]n	�l�@Gs	Gf*lGn�r*s*t�wGyt*k&s�bfGk ?l�mGnrGsSt6x*y�lQn*sGlGn�s*tGyGr*tn^sl*s�s*yGm*s0t*x@bfhklmnprstwxyfl*m�nsGt/ykl5n�rstGy*ns�t5not*y9Nt<Akfm*sGt	f�kcl5nrBls*t*y*l�rn*s*t*s�tm*nt�n*sfl�n?s*yGklmn�prstwx*y
G@*f*kGm�nr*s&txx*k7�sGns�t�bflJr*sGmn*s*t*yfl+s�t	�bk.mn�rst*yQf*tGk*lGnGst*sGwGfflGmGnxrtGln&txx�s*t�f*s*nGp^s�k*n�s*t*y
@bfk-�lnA2pGrsStGx*y5sr*t-l*n*s*tyjn(kl*n?�r&sGkfl?nGs�txxfl�nst*y*n�r*s@�hklGmGnst�xGyrp�k�sGy*@GnGs*tGy*n*sGt*yfl5ns*tGy	Gf22l�nrZs*t.x*y
�bf~kfl�n�rstGy�l*l*m*s7;fklmnpstx�yxbl�n}k*s*ytr*s�k*yflGs�t@�l*sk*�n*srt>�pfl5n*s&txx�n�r*s*tf�hk�lCm5nQpLstGy,bk&s*t�y�lxx*lGp*s*t	GfznQp�r^s&txxGybfkl�mnprstwxGy*kl�rGtnGrtGxCt*s^txl*nr*sGtGf*k
ns&tGyfl�nGtzl5n�pGstxr*@xl*s	�b�fQl�n*s&txxGy�m*nGp*sCt?p*sGy/fGkGmGr*sGtGn�s	?�b*f~l5On�pr*sGt5n?s*t*ybGfklGm5nps�t*yGkIblGbGnGtsGt*y�n*sGt
bfh=k	�l�mGnpst�w�x*k/lWry?n*s�w�l*s�xl*f*sGp�sp*t�w&kr*fGpbfhkl"�mn�rstwTx�yl�n*s�tt*l*n�nGs2�@�l�nGp*stxx*n*s*tyn�m
�h*k�l*�nrstxxGyst�n*s*txxflGm5n*s'txx40h*n*s*tGy*kfln�srtflQn*st flGn�stGyf�t&kGt>bfGns*t�k*lGkGrd@bfhklmnprstWwxy�b�kr*sGt*k*l�lGr*sGtGl*t
�b0fl5nrs&tx*y'f*kGm?n�y*s�tnl*nr*s*t8s7t*yf6�k�n
�s+t*y@*n�knGr4sWtlGn*sks*y�ksGy*m�t*ls5t�x*mGn�r*s*t?lC�r*lGnfr	�s*tGy	<�b�ffl5npsty*n�s*kGn!r�f*n*s�w
bhklmnGprs*txy*lQt]l@l*s�tGnGr*s�t*yn*stl�s*y	�b�hGkGl*nxpGsGt*n�s*tGym|st�yk*l*s.@r�kfl�n*s�p*s�bGn*s*tlxm*n*s*t
Nlm*s5�@<�nr�sGt�x@bfhklmnprstwxynsGt*yCkGs	5klm*nr&stGxbGn*s*tGk�nGtn*s*t
G@�kl/zmGnr*sCtGx*n�stGy*l�n*sGf*k�l*mnGsGttflQn*s�t
,@.fxh�klmnrstx*yfl*n?s+t*yn&x*st*nr*s*txxflQnGy�kl*n+st�wGk*yflGn�rs
�tGknGsht*n�p*s@�t1*f*l�n&rGstfln�sl*nGs�txx�s*y�fk0#mns
t*y*n8strGk[s&sGt
�bkQl*mnps*t�wn*tt*k8sf�h*s�tr*s*lGn*sQns*x*yF�nGt
hk�l�m�nstxGy?nGt�bflns�t*xQbGlGnGtGnGs*ys�n*sxt*s/t�kGmGns�t�yCkbkl�m	�nWprs*tw�x=nfl5nsGtGyQn*t�n*lxm*n�p*t�w�mGtxm&s*t�w	Gkl*n�pr�sGtGwGkGs&f*sGy'n*s/tGy
bfkl
.mnst*yGk�l*s0r�l5nxrs*t*yk*ns*t*y*lGsfl*m�n*t
blGmnrs�txx9�y�lCt�n*s*t*yGs�t*s�txxGy
?bfklmnGpr�s*t�wGy;�lGk7�l*sn7r�s*tGs^tGnGp*s*tl�nH�s+t�s*yk(�nGp%�s*tGx�sxtGklxmnGr*st�k*n*s*t�n*s�fGkflxm�nGpGrst�w&n*s�w�bGk�l/mn*s�tkGlGst*sQt�@bfGhklmnp&rstwxyk	rl�n�s*nGsGtl*mGnr*st�n8�pGt*y*kZs*ns*s7;t�kl*nGr*sG@*stxx*y	�bfGkflGnst*yQrGtGn*s*txx*n*s�txxGyflQn*s*tGs�txx*k�l*sGt/fGm'tbfk*lnGp&rst*yGkGlGn*l�n*s+t?wQfQl*mGnGs*ttWrfl�n�s*k*n/r*s*lGn�sG@
�w C�@bf0hklmnprstwx?ykm�pGk&lm�rGt&b�b!kln*sGt/y�n*sWt*yGsxx*lmn6prs*tp�s�kl�s*yfGm�n�k*nGr*s*tGyGn*s�t	@Wbkfl�ns+tykrOAf*str�km~n[s(6kGm*n*srtxxQsWtklnst�xnr*stl�kkr+ft�p*s~tWx*fGkr*s�kGyG@lfkfl�nGstr*s�tf:wlGn*s*tG@l*nr*sGtGtyQm�nt�k*nGklGnstxx$�ks*yGm*n*s'txxGm*n�p�s~t�f*n*s*tGy.fklGmnp+rst�wyr&k*sGt*ys*stf?�t
�m	Gf*kGlm?nGp*s't!l�kn�s@{s�t	fkflGnrsLbtyprrsWtt�b�xs�fn,epGy�sfl�n�xnp*sWms�tGk3n*s�lm�n&pr8s�ks<�t,em*@?nst*yl5ns*t�k*yb�hk:�lmnp+rst	�wGx*y*k^lGk*lGt*l~ngbfl*n.nsGt�l�n&l	Xn*slstxkGm*snZt*sWtGyk�s*txxl*n*s*t=�xQnszt*y*m�t�fkalpsxk�nrffln0�ksl3m0r@k�l*s=�xr$�p0�nrf@bfhklmnprstwxy
�k�l*mnrstGwGy}s�t�xGbGk*s*y*n*s�t�n*s�t
GbfhklmnrstGxyr*s�sxkbGk*nGp*s�m*ns*tGn�s&b&l*n*s&txxGk*m*nSsFZtGxGy�kGn*s�tmb�fL�l�n*s&tx�nr*s�h�s
�@
�hkl>�mnprst*xy*n
�r*s*tGkGn*s�t�yk�lGmsGt�w*s�t?n*s�s*n�s*tGk*stflxm5n*s�tfl5n�s*t*y�hs[t�w	�k?l*mnGr*sGt�whls�t�nGhxltC@b4�f�hklmnE�prstwxGyGk*l7r*s*kGnUMr*s/t	G@Zb�fkSnRst*y�k�s*y*syp�k�n*p*sk*n�s�t�y*m*s*yQf�nGp*s*tGyfkGl�m*npst�wxE�l�n�rQkl*s�tt�yGnrs*n�s*t�mE�l
	�fklm5n'r*s*t�yfl�r*s.t*yQbBtGkGmGtGx*yfl�nGpWsGt@bf�hklmnprstw�xy�f�kflnWps*y*@GsGk+l�n'rCtbhklmnpGrstw�x�y�klr*stG@Gtfl*st�t*yxr�s*tGfnGp*t-�k*nr?sx@*stx�hn*sy*s-�w�fns�t=�t*fGt*kmGnpr*s�b*s	XlG@*k*fO�tl0#mnpr�sGt�n*s*y}s?t,tfGm?s*k*n*s*tGyGk*n*s*t*yh&kGmGnst7`lumGkst�fGm*n*s~txx�m*s*t�fol�mGn*sGtG@*n�s+tGy.b1f�k/mn�p*st�wxy3!k*stxx*f*nOAr*s*t�k*lGm�n�r*sGtbf*kGl�mnGprsGty*k*l�r*stGkfl*s*nR�p*s*tGylk*m*saw*nGp*t�lGnGrs*t?y�b?fE�hGksGt�w.9t@bfhklmnprstwx*ym*k*l*y&klrs+tGy5ns�t*y*s?w'bl*nr*s*tGk�n*s*y*sR�t�nGt	?klmnr*s*t*yxbGnGy*ks+tflGn*s*txx�f*n�fk*�n�stCxy�k*sGyGkn*s*tGy*n*sWtfCkt�k}s*yb-�l�bk�lGm5nstGwxy7l�n*sWbflGm5n*s'txxGkxr*s^tGylm*s@bGkl*n�r�st.x*y�ksGy�kU�yGny? Qs	GbhGkGlGmGns&Ct'k�tGkfl�n'tfklamGnxp*stxyr�k*s*tkxl�nsl�st*y*f#r*s�lGnrGs't&xnGx*k*n*sklGl�sn:Xt
UfklmGn�p}rs+t4y�lQn?r*s>�k3)ysI"m�t�kt�b*s*n/p?tbfklmnprstP�wxyGklGmfr*sGy�n*sGw*lxr*s�b�fGk;plAm4�nGpOrs~tyGh*n*tp*snEkGlGn*s&n*s*k*s�t&kGpGt
gb�fGk*nr*sGtGxGyflGm*s*y
f4�k*lGm5n�p*stGy*@?w�lsGybfhklmnprstwAx8�y&kGlr�sGk*n*sGlQr*s
.@&flGn&pr*sGt	�x�p�s�fGp�b�n�s*tGyG@?sCt�bfl*st=n&kmnJWkGl5n*pGstG@lfGn*s�w�fmGnp*stfl5nsGkxr�n*s�hfl-�m�n*s�fGkGnZ3bxmn*s*t�b*sGnGt*@bfklnprstw|xyG@GnL�l�mnrs�fGft	�yGk*s�h�st�y*syGpGns�t*y*sptt�m�fGn�s�bfkGn*sGtx�r&xkt@fk$�lmGnp�rst�n�n*s�kGn*s*tn7;k�l�yGsQtGl?rV�k*s�@bfhklmnpGrstwxyL�lGm�rGt*y�k*s=t#�y�nGtlGn*r*sGt*sQty6�f>�kGn�p*st*k*nr*s*t&f*s.9b?f&kGstU�yGn�s*nQx	�b[�k�l"�mn*stGyWb*s�t�k�r	b1f�kfl~n*st?w�mr*sGyfl(�n*y*@*n*s5t�kGm*n*sGy�n*sbfhklmnprstw&xGy5k;plnr*sGt*stflxm*nr*s*tCk*sat*@lQp*sGxGy�l}n&psGt�b	xfl5nCp[r�sGtGy*@n*s*y�b*f*k�n*sGt*yG@+�nsGtt�r*s�b*nGs�tlnGprGstGw�n*sCtGkGlGt�n*sZt�blrst*m�s=tGy
GfQhklmn�prs�txy�r*s*t>�kfl*nr*s+t*y'n*s*n+s�tk9�ns/tGy@l7�r�stfl*mGn*s*tmGn�kV'sl*n�sfGkGlxmQr�l*sbfhklmnprstwxy5kXnlnrt�kGn*sGt\�klGn?st�nGt*y*n*s*t.x0nt*nsr*s�t
GfhCklGmnGrGstGk&ptrEl�sflGt�r*s*t
�bGkmn�pr�sGt*yGnGp*s�k*n*sGt*n0sGtGl~n�ps*ttfl�r*s�xfbl�nst*x�hs*y)pGm*s'tQm�r�sGt�l�nr�sGt*f?s
fkGl�mnpstGy'bl$�kmn^stm*sMt@�yU�tt(�rkGn7;pstxys�l%s�tr*s7�kl*skWl*sk*s�y+slfklxm5n�pstw�xGfQn�r*spGr*y�xp
�rGkGl�nr*sGk-�npb*n*t	*fGkfl�nGpfr*sGx	Gf�kGl/mn&r*sGt&kGt*l�p
�r*sGt*s[tG@*fGkGlxmGnGr*s5t*x�y�bxfPEh~k:wlCmn=pr�sE�tGwGx*nCs*tbfk�lm�np	Xrst�wrt�sftn*n*s&txx0hnr*s�k�s�ms=�kn�bkl*n7r*s*tr�f4�k*s
@bfklmnprstx�lm{s!dtyrztl�k*s�t*knyt�l�sGbl
�minrs�tyks~m~mJkst�kGs*k*m*st8r#kPEn�k�nt�br*s�xV�@*kQst�k|sklrmCnGnGx@R�syr
&tkl'mnsstt�nffl*stQ4sftPf*s@[tWt*x.flmn�p5�tyl[rn
�l*kstf�ntk(�lk�mnr8�sWtJ�sxxf*k*s*t�yntr�k*sanGpt�yrks�l*s0�tsQmGl*nr*s@bfklmE�npstx�mrplGt2�bl�mGnr*kr*s*ykxbk�txblnI�rst*s	KtGty;Clpxs�r?tGn�sk�s{y�kfl�stGyr�k@s(6ktxr*sGk*sGy	Xn.9l�nr�kfGn*�tlGr*kGs*y*n*s*tyn�ml�mGnK�r@bfhklmnprstwxyGbklm'nrstGwGyflxn*sGh�kGns�st*k�l�n*sGn*sGtxyWbxms*m*n*s*tGklr*sm/�nGlts b�fhkl�mnQprstwxy[p*sGt�y�lyE�t*l�m*ns*t*s<jyk*3nGrstxx*yr]sGm8�n*m�nt*k�n*s	�k*n*r*s*t.ay
7;fkfl*nprstxx�y�l*lAmGnr*s*t�w*l*sGy
Gkl/zmnGrGsGtGxGy*stxr*s*stGm*n*tGkflmGn*staw?k*s�nGp*s*yGln	�rs*t�w�ks*yzkGt*m*n*sGtb*ns*t*yGfGnGr*s�h*sGtxG@b�f�hkl>�mn�prstw6�xyGkGlGklGnGp~sGtQftGxsQkGx
&fkflnrs+txGyGt*yGkflVrGs�t*n*s*t8�yRn
�b�f4�k9lmnst�xnt!	l*sGs5�tfl|n*s*nr*s*tGx
�bGk�lonGp*sGt�xGy
sk�n�s/t�bflGm'n*r�s^t�w�xGy�m*n*s*ts�k�sbGfk�lCmnGprstwxyrt	�f�n*s*t�xGfGh*sGtks4�t�bGn*s�b*n�n*s*tx	�x�fGn*sGm*n�s*t	�r*s�fGn)tGbGmbfhklmnprstwxyJWkHlGnGr�s�t�y@l$�nr*sCtWrwWl*tGp*s*tGl,m*pGs�t�k*l\hnGr*sGtbGkfl"�mnrst&"xL�y�k*l*sftfl*sCt*stGy*nr*s*t	GbGl*mn/pGr*sGt*lt�ls@�hGkflCmGnGpst�x�y	Xb�b�l*�nE�p*sGy�bf^kfl*nstfls*mQrk*s<*t�s
�b6�f�kGln}s't�xy*l*sGt�wp*s�kklamnWpr*st�wy0#mr*s*s�w,f*y�fGnGsGt�s�n&p;_r*s&tGykGlGs
*fl*mnr�stx*yGs�tGsGy*f?l*n*s*tflGnlGr�t&k*sGfGmGnGp*s/zt*ylm*n*s^tWn*st�h@bfhklmnprstwxy�bGmGn�rs*t�xb.9l�m>�p�r
bJ�f�hkl�m5nr�stGx�yQlGs�kflL�nVr�s+t*y	G@GkGm�n*s3qt)=x*y]r�shkl*mnrst�xy�nGlGsxxGfn*sGtGw*y-�kGsGt*kmGnU�s&t*sCht�n?s*tGyxk*st5nflGnGp*s*t�n&l~nGrGsS�tB@*bfklmnCprstwx5ByGl*n�k�l*n*s�tb�k*rstxx*ylQnztGm*s�x*f�n*s^tGy�b�kn*p*sGxn.xGk<%stGy*k*r*sfGm^sGy*k�sGy	*fQk�mGn
.p*stGy*k*n�r*s
�bfYMkfl7m*n?r*s^tfl�stGk*s�xfl5nGpGn�sBt*y
G@bb�fkflnprstx	�y	�bGk�l*mGn&r*s/tGn&st*k�rBkfl*nstxxGy*n*sGtGy�fflGn*s*t*n&s�t*yGlGnY�s*tfl5ns*t*y	Gf�k�lGnrs*tGyGk*sxxGlGnbfhklmGnGprst�wxGylWr�l*sGxm*t�r�l�nr�s�t�y*n�s*t*y�f*k�ns*yGm*sGtGyTsChtzt�w*y�fkxm�n0p*sCt�wxxGy+p
Gkl{mGnd�rs*t*wxfl8s*y*f*n"t�ffl'n*p*s*tGy
bk*l�n/rst*wGy�l&tl*s,bk*n*sGt�pkmGnp]�rr7s't~nrR�s�bfkGlmnGpstxx�yk*s*t/yfl�txxxlGs�t�n(8t�b�hflGnGstGn�s*lGn*stxx�kr*s�nGr*s*tGy
�@bflhklmnprstw*xyGklGt
�wCw�bkGlQr�s�t/y�txxlnr*s*@�sft*ys*t�s*n?p*skGlS!s*y�k�sGy?@�kn*sGt*n*s*tx�f*n�sGt�xHk*n*p*sGtGm*n*s*t*xGyGm�s=t*kmnrs*tGy<�b*n*s*tf*lGmGn*t'b?kz@CkGr5t�k*s�@bfhklmnprstwx;_yGklr�sft&k*s*y�b�l4�n*s�tCxGlGp?t�kn�r*s*tGsWtQkOns*t*yflQn*txx*kGnGtfl*n�rstGy*lQn*s*t*f*s�tml*l*m�nGst*y.k*skmGnsCtw*y�pG@sf@�f�r*sGtGlGtxylQn*s*t�t*y	*@GkGmn�rsGt�y�ln�r�s&txx*y	�k�l�s
xb	xfk'lGmn�p�rstWw*xxk'lp�s0�rfl*sY�tGnr*sO�t|lJ�nGt
�bmsnEws�t�@bfhklmnprst*wx�y	=fGklGmnrst�n*s�tGy�b*n*st�xr*sGk�l*y=kGn*s*t�mtxx+b*f*s*t�f�nGr*s*t�kl*nGrst/yk*t�k*n�s*tGybQl�n*s*tl�n7t*yW�m	Gk�ln�pr�sGt*yQkfl*st�k�sF�k*sGyWbGhknP�p*rs�txx*y�k�sGyPmGs�bGlr3qtxxklGmGnp�rstwCxGy�b�n*s
Ht�x*n#s+t*yl�s"�mnr*s'tvs�b�t�b�f�k�mA,nr`�s�txxGyn*s*tGy*s�xFZlb
�fklOmnrstx*yls�t�p�n�r*stxxfl5ns*t	�bkmnstxx�ystxxfl5ns+t*n*s^tnt*nr*s*txxflQn*s7t*yfl]�nGs�tfdnr+tfl�n*sftfl*sGy�b*ffl5nfr�s*t0f!klnst�y�k*s*t>b*n*s�tGw�x�b*s�txx�bGm*n^s*t�bhm*nst�xns&txx�bCf�s,b�f�n*s�tf*sGf*nGr*st�xbflGn*s/t
�b{flm�nr*st�x�tntvl*n*s*tGlrsGt�f*sn*s*s�tGf*kxm�n�p[r*stw*xGylGr*s�xQn?s*y*kxmGlmnr*stF�n�w*l*s�txxGy�b*lGn*s
�bfk*lmGnr^st�wxxGy�k*s*ty*n�t�nGs�n�kGp*sxxGy,�f*n*s*tGy�fl?n*s	�tQn�sGt*yC@bfhklmnprstwxy	Gkl?�nrGs'txx�ys*yGm*n*s�txx�bGk*sGt*y
G@b3�fklmnrstxyl*n*s*t�lsnr&s�txb*n*s*t-�xn�l*nr�s*t	&fk
nshtGw-�x*y!r*stxx*f*l�n*s*t^f*k*�n*s*t�b�l*�n�st�xflQnfr*sGy�b�mnstx�k*n*s�tnl*s|st*ybGlnGr�st&st*n*s*t�x@nb�kfln�s^txGk*lfl�tn�l*sbnrGs*txxlQn*stflQnGs�t�x*ls&txxn*s*l*nOs*t�bn*s*ts>�bGmbf*hklmnprst�wx�y~nOs*tkflQnGr*stn	Xf�ln�stxx�r*t*fflGnr*s*tb�l*n*s*t�fm2$nis&txx*y�n�r*b�s5otk�l*nrGs�tt-�xf*mGr*s*t�l*s�t*k*n*s
�l�s	�bGfknst�xGy�n*s&tx�n*n+s�t�xflxm�nI�p*s*t�wl5n*s*tGy�txx*yWb*fGhGn*stxx*f*n�r*s�t�b_�f�knGr*stGshtxxnQl�s6�k5npU�s+t-�wGy�y�bGkGlGnGr*stGkGlr�k*y	%mb�hkfl5n*r
�st*cl*n�r*s*t�nGr*sGtxx�y
�hklCnsU�t�wxGyflQn*sGxQn6�pst�x*y+bGm*n*sGtxxfl�n&st�n*s@bfklmnprst�wx�y�tGk*rstnxlxx+b	�ln*stxsf+r}s�lnr*s!�t�m*nGstxlQn�st*y�p�txx	?�bitmnpGst�wjxfl*n*sGt*fflnfr*s�txxsGt	G@�b�np�r*s'@txxtxx�f	�b�fknGpst�xn*sGs�t*lsGt*st
.rflnr*s*tflzr�k�txxkrst�x�s�t*n+stx�r*s�nR�fGn*fml*s�n�sGy*ffl�n?st�nr*s*tbGklkmn�pr&stGxF�lGkxx*n+stxx�ln*s*t�p*s�bkn*s^txxt
xbf*n*s*tfl�n�s*n*s�tGffljn�txn'l*sn*p�l*r*s@bfhklmnprstwxy!sr*klr�y�n�sft*yxkGn*s*tGy�bk&lGs&tGx/y�txx'n*s�t	lmGn�rstxxGyk&m*st*yQw*kfl�nt*cl*n*s*t	b&fQl5n�r*s*tGy+lWr
bfhGk�lmnN�ps
tw*yrGm*s*y�l�r*s]�nG@lfGsGtfl*m	�tGkxm&klnps�bGm�n�s�txxlrttxxf*n*s*t^Gnrfl�n*sGy+b�sGr�sGy�bk�l"�mn*pdrstox
s&t	�bzkfl*mGn*sGtxxGffl�m*n*s�tGylnr&st*n�s&t*s&t&xlc'ptMf�k*s�x*ybfklnprstxxy\n�stxx�f*nr*s*tfl*s*y	kl*mn+s�tx/ytxx*f*l*sxF�n*nJ�s*txx�l�m�nstxxUQm�b*f�l*n*s*tFb*n*st�r*sffrstla�xkns�kl�tpk&nsxx	�t�xfln*stQwGy!Is�n*s�xGypt�n	�txx�f�n*s*t*ykfl6�m�ns/t�x*n*stxx*nWr*s*tt
�n?fxm*n�swxm*tb�fk*mnpstxxy�knGp*n.t�kGs�t5�x�b*k�nWr*s3Lt�yk�l
�fflm5nr+stxxGynst!rn	�r*tsf
�r^fGr*s*t�kn*s&t�l*t�fGkn�t&k9lGn�s*t�fl*nGps
�t?wG@�m*st�rGl7�n*r*s*t�bl�mnGpGsGt�k*s
�k8sk�m&n	�sGtGkml�tx@bf�hkln7%prstxylGt[�n?st*y�l*s*txbGkCs	Qk�mnb�r*stxx�y[r8�sCtGf�k*nfr*s*t	GbV�h(�kfl*nGst&xr*sGn*s*tGy		XfCklnstxxyQn*s+t*yGh�k*s*t&nCsffl*n�s*tOlkl[�m5n:�st*yGlGmGn*s*nQr&st*y�f*k5nxr*s
�tGy?@PEbfGkln&r&s+t�xGy*sF>txx*mGn1�s&txx*y*n�s*t&n�s	jNbh�kl*nr�s�t�f�t@bfhklmnprstwxy*l*s?t]klGmn�prstQw*y*k*mQn*s+t*y*rGs*n*s
�txx*yEtG@2�klmn*rst&x�y$�k5ns*t*y�kGn*sChtfl*nF�sGtflsn*sCtGkl5ns�t�xGyQk*y+�mp*t�w�p
�sm�nsxtPebf�h�klmn�prst�wx*yQkGn*sGtGmGns*t*y�b*nGkGlGsSt�m�n�sGyfl�m�n�p*s*t�bf*l5nrst*ns*tGt�xn*sGk�l*sQ =�bkmnrst*w�xCy�n�bflGnGs*sGtGyfl�m5�n�p*t;fGn*r*s�ty�f*sG@b-�fklnpCrstwxx~yl*n*rs*t*y'ns*t*yr�k/kntsGt*yl*sk?s*y7;fklGs�tWn*p�kst*y*n*stxxQkl5n�sGt*yfbGfxm&n*s*tk*nr*s*tlQn,3szt*yGm*sGyCl*r@bfL2hklmn5prstwxy*mGn*sGk�l�n
�r�tQxl=n�r*t�x*sGtGyh5ka�lam5nCprsGt[x*y!�s
W�kfl�mn@rs�txx*y*st*k�m*s*t*x�y&l?n*sQt*kflGsGm*sGy	ALbzklxp*s;$t�wGyQfbf�hklmnp?rs+tE�wx�yAr?s/t@*l*sfl�r*salrzsk^sw*y�kun�sGyOl�@�n�s*yGf�kfl*nGsGt�l�r*skfl+�mGnt�wGp�r�n*sGyl?sGtG�t�l*sGtGx5ns*t*yGk*n}s*t
fsklSqnst.w/x*yGn�r5On*s*t�w*y�k*sGt�b�fxkfl5ns*t*n�s*t'� bfklmnprstw�y	GkGlCmQnr*s*tGy*k*n�t
�bklGmGnGr*st/yCs�f�n?sGt*yT�l	&klT�mnrs&t�xkt!ktmfr*sn�t�x�kl�n&stxxm$xtn?kGmn�s*tGy'kGsGtfl5nGr?s&xfl*nGs&tGx7zy	b�lnrR�stGx*y*l�rflQnGston*s*t*fmtt�x�knGs*t�xrV�yf*sGtGyr*s{nflm�n*s*tlbfkl�m5nrL�s*tGy'^l*s�xGkQns*y/sGk?hl�n*sGt
3�bfkl?mn45prstjxGy!k;�ln*s+t#�yGs&t9l�nrGs�tnt-�fampx'r`IlE�k5ns+t*yflGm�n't*f�kflSsGtxl*n8s*tGk@lGn*s*txxfks*tlttk{kfl�n*sGyflGm�n*s*t�bGn�sGt,wwGy*@�bln*s*t*s�wGkfl�blGmnpst,ww&x*yn*s*y�tfl�m�s�r*sGn*s*t*y2�@b�fkGlmnpGrs�t�w*xbl�k�tlm~nGtbAbn*st�r*sb�k*n*s*tkt8rrQsts,3fibkl.mnsxkfl'mWnr*lQs�fGm
�nys�tk�k�sGyl*s�yy8�s,tGk�lp�yr8t(�tZktlGtkGn"�sGt*l5zr5@bfhklmnprstwxyGkN4l6�mGnr*sGy!kfl�n�s*t�yGl.9t	pHhxk!}l0#mnSrGs&t*nGsZtGyGf*k5nGp*s
t�ykl�npfrst�l$�nrf�k*s*y�k*sl*n*s*t*stn*sOs*s3t�k$�l*sxx	�fkflGm*nGstGyn*sGk-sWf�hflQnGprs�kqsGkGt
fl�mnr�s�t�x*y&s�x*s&yfl,sGf	Xw=fl5n�s*t*yGkflnWst.9wy�s�ksn&pr*s*tnn�x*@bfklmnvprstGwxGy*k�sFbkflGns*t/ytxx�ffr�nls&txx�txx*y
�f*k�m*�nGrs�txx*ylb�h	�n�r�s&tflGnAsGt	klGmnpstxxWl�n*s*t*s�x6�m*strs�lTtWtGbGtk
wtlp�kQm*nGsGtGm*s+t*l+�nfr*s*tGy�bn�lfr*sGk+r*s�yn*ps>b�nGr*s*tlAf	�bkn�p*sWlGnkn�x@bfhklmnprstwxyGb�r*s&klrGsGtGy*ks+t*m*n�kGy
,@!klnrs�tGx/yGk�s�yx@Gl*s*n^sPek�lmQpGs�t�r
lmGnGprst�x=y*fGm*n*s*txxysm�k*l*sQbn�t�f�kGmrs&x�y*sE�t*k+r*s�bfkitmnp+rsty*l*sGxGf�k4�nGr�s*tGyWbGmGsGt+s�t=ffl�n*s*t�r*sGyGn�s�tG@*bkClGmnxr�st�xyzls	Ktfl*t*ygp�bf�hk�lmGnp+rst�wx*y*l*r*s7m�nG@*tGkflxm*n*sCtxx	GfGk*l*n�p�r*s*tflGnGp�klnr�sGt*xkdm*s&t�sWttn+sGt�nlp*s�bfGhklmnpstGwx&y*lGm�n�n*sGt>�n*s�t*yk*s_Vsk*lGm*sGt�l*kl0stk*n*sGt*yGk*s&txx*l*s�tGl*np*sGtxx�rGs�kGr*sWk*szbCfCWklCmn�p+r�stw*x&y�k*s*y*nGpGsGtGf*k?lGnr*s*tf*l�ksl&x*pGtkflmSBnU�r*s*t�m*sGn�pGkE�lGmGnGrGsGtlxmnGpr|stxmG�t*y�kl!IsGms*sWt�x�k*s0�lns�t�m�b�bE�fklmnrst�xy*s�tGwk*nr	�s*t)b�k*nGst0y�bl*sGnxy�n*p*s*t!Ikl*stGxPn�rCnlGnGsGyn*@*s*tbfhklmnprstwGyGk*lPm*s7l�r*sGtGf*p*sWtGn*sGt*y�k�nGrs*xZt
Gf*k*lGnfrGsGt.w*yn*sGt*sGt*yGf�n*s*tfl�n*s*t*nzr*s*tGkGnGt
b&fkGlmnprsHtwGx*n0r*s*tQxGlGn*s*tkn*psxhV�rsGxGm�prt�lks�t*xl*s*tk=�k�sGy*m�n*s*nGreSs*tfkU)mpstxxV�l6�mys0�s�lk�p*n7r*s*tfl�nfr*s*ttn.p*s@bfhklmnprstwxyklGmnrst�kr*sGy'"fk*szt*y�kGyGkGnGszn*p*sGt*y�f�m*s*t*lr�tpfs't
�@fGklmnrst*wxyrGxm=l	*bfl*m~n[r�s+t*y=bGn*sGmGns0r*s
ckfklGmnrstx�n�s�txx�n�st*yfl*s(|twn*sGy*kfl�n�stflGnr�s=�t*n*s*tGynOs�fGk,tflmnxr*s=�y&sGy�l^s�tfGn'�sGnr�sCn@bf�hklmnprstwx�ynrGsO�t;�tl*swwt�n+t*yQm*s�f
�r*s&t	h�kfl�nGrxGs&tGytsr*s�txk*rflGnstaw*n>�t*@�r*sGl2rt�f&k*n*s,t*x8�yCfGk�pstGk�lWr�y<�fkfl|m5n-r�s&tw�xGyWl*n*sGfGnGtGk*r�sGta�l5ns*tnGrGs�t)kbfhklmn�prstwx�yGklr*t*yxk�nt*y�s&txx!k�lGn"�r*s*t/y?s�t	rlGm�r*s*t�hGk|nst*y�bGm*n*stxx�k*r*s*@GkJ�n*stxx�ffr
Zbahk*m(�nGp+rGst�l�r*s�@xlGmnGsitGxCk*sfklmnCprSust�xy�l�xklGn�r*s7�rk*y�k*y*stxx*y�f*nGr*s*tC@�b*s�bGsxtun�s&txxGy
f�k*nGp6�r*s*txxGy*s't�bGf*k�lmGn0�rs
t�x�yGn(st�x*yfl*n&s*t>k*n*s*txxGkCm*n*r*sGtGmn*st�l7r*sw
G@b�fknp�sty�r*s*t�yxl*sGtkGsGt*nGw*nGp*sGtxx?hPEkl*n*s�t�f*@bVfklnp~rst[�w*x*y	*@5kQlxmnrsCt+s�t*yGn	�s*t�yxk&t�wxlGnGs*yb0f*s�t*yrn�x	7;k5n+rst?wxx*yfl�n*s+t>b*k*n*s*txx7b=f.ka�lnGpGrst2�x*y*nfrGs*tGkWatfl�n*st�kGmGnr*s�t	+b?f�lGn*r*stxx*fflQn*s@E�bfmhklmnGprst�wx�y�n?l?n*tGx@bfhN,klmonprstwxyfl�nsQw*y*lWr*sGtGl?s+tGxQnGtG@f?kns*y*sGt.x�t*nGr*skOl*s#n�s*x;�f*st?wTn*p�r*s^t*k$vl
&m5n$�rD�st�n*sGmdn�st�nGp8�r*s*tb#lxyGmns*t*y�nGw�reSs�t�ns+tb*n*s*t�x
lfGh�lm�n}stxxGyfl5n*s�k*l*n*sxx~bfhklmnprs*tw;_y�lGm*sO�l*l�sGb?kGn*s+t*y&kGnGsGn*s<�t�x*l�m*nGsGt5By�bxf�klxm*stGp�tGn�r*s*rGt0Rbxk�nf�p�r�s}t�bf4�klxmGnprstxw?x*yPEr*k�nGsRtl0�ryskE�x�fOmstxxk�r*sGywp7mGn*s
Qfk�lGmGn*st7`xyl0#m*s�txx7�p&k*n�tn*k*xGkmGnprsn�n*stCr�k:�p*s	Qk&lGmnL�stGxyflsJWtxx�fGm*sfl5n*s*t�x�ln*sk*lGstQm*sQtC@bfhklmn)�prstxSw�xyGk*lzn*sGl�sGnGs*f*sGt*yQnGr�k*ns�txGy�b*n*sGt�sGtCnl�s�tGwxx�f*l�nt�r*s�xf*kl�mnrstQw*y@lGx�s*ybflGnGs*txGlGn^s�t�xGk*t*s*xGy
�b*n*sbfhklmnprstE�wxy5k�l0#m	Xr*k>�n*r�sGlGnGt	�kGm�n�rH�s&txxGyns/t*yGkGs�t�@*lGnGs	�t�hflGmnq]s�tGy+sGtGnr*s*fGsGb*klGmGnCnr+stxxGy�m5n^s�t*yflQnGr*s	Bbk*mGn�p*sCt�w{r*lGmGnfr8stn*s�lrGn*yflQnGp*sE�bxfl*s�xGf*k
TbklmnrsGt8xQlGs�f*sxyGn?s�x.b�h0k'�sGt*n*tGy	fGk�lxmn*pr�stawGflGnGs*t�sy@Hm*sx�n*t
�bGfklmnGprstGwLbxQk�pGrGs*p�stGyfGn*sGmnstOk�yGkv�n5kfl*stx�hGlGn*s*xWbGnxp*s*t�b/�kGns*t�s*tGlGm~ns�mE�t0y�k0�lGn*sGt@bfhklmnprstwxybf�hklmn�prstwy&lGt�kL�lGn*nr5�s�n^sGt*yft�t�kxxkGlGnGssn*sT�f�n*sOtGl�n*s*tkl-�mGn`�r�s�lk�kOsGy*l�tGxlGrGn*s?t
b[�klGnQp�r�s{�tQyGnGt�yGn�s+tbPzfklm�nGp~rsGtGy`ln*s*kQsWt�k*n�s*tGwGyGk�n*st5]rGm*stf*sl*n*sbBfkm'n*pr*sSt)=yE�h+n*s*stzn*s	�fGkGnx*s.t@bfhklmnprstwxCy*r*szyG@Gk
�l]�r*sGt�yl'nGr�sL2t�nGp*sGtGlGm5�t	Cfl*nr*s�txw	�y*s�yG@Gk*s
'@xhGkxlmnpCrs�tCx*y`n*sGk*s�tlGsxtlfGk*n�rGtG@GbxhGkxl*sWt
]bfGklBmnstCxkZs*t/y*sxx�krsftGym*sGt:*stGmGn*sGthk�l�mGnQpxrstGxytrtyn�mfl	�sb.fGm*n*s*txx*s,yc'k�sGtG@bfhklmnprstwxGylr%�s�t�kZw
Bb'klGm[An?rs6�tGxymQp*rGta�x�n*s*t�kGl�s�bytrt,ylmnprs&t*lm�t�pt6Ns�mJr}skt=�s*yfGm?n?ttyGk*sftGy'm�fkn*sGt*y*st*yrm�nGtBOx�ks	Xtff�ln/zp*stl*s8fkckt(�r/lz�r*s�xfk>mlstCxrn�mr�k*lt
�r7;p�r*sGk�m�pr7;t*w�yGbk5�n9�ps(kr�sf*sGt'lfkm.pst�y=�lGrGt�k�n/�pr�tk6lVn��k'm�lr*sk�b*fWk*mnr*sGtxys|t(�n*s*yn�elVn*s�fGtm4�n&p�rtV'sEwkb�fCWklm&n
�p�stJ�w3y*l�s7r*sl�m+�nrsGnsft*y�kr*s0tGyEwk�l+sGtG@�b�klR�mn45p+rs*t�wGxGy�n*yl*s *sGt`r�mGt�ffl5nrGtGxpt@bf�hkIlmnprstwxyGn*p*sxx5kols�mGn+r*sGt	klmnQr�sGt�yGtxxun�st�m*s*txxk*s.9x*@l/mnSrst�w�x*yflGm+r*sxxfl%�nGst�n*sGyGp*s*tGy+n�s*tbGlGn
�p�r9lsBtmfbG@lfGk(�l7�mGnrstx*y�nGs*t*xxGyGk�p*sxx!rGslGn*sGk*sGyf�lxma�nr�sGt
�m7`kWnzp�k*lGnGstxxGy*f*n*s*tGy�f[�k�n�stawGn�r*s*txx@bfmhklmnprstwxGyWns�r�l*sGt	*@kl�mnrs)t*rkt*f*m?nxp*tk*sxn�l*t�s*t*st*tGylm�pGrsxx0y�mn?r*st*yVrrls*yGm*tp�nGtt*f�m*s*t�fntyzlr!�lMQr0�kln*s�t
�n?rsMtGkfl�m*n+stx�n*@l?nQprt�bk[r+stQx�y�n&stxx�f0f0n*skJWsftrL�m*f*t*yflm�nU�st�xGy*s�tfl�m5n*s*t	�klnp8st�xyl*t*y[r�stP�rk*tkt*kr*�b*yUls0t	b�lmGnrst*xknx+nk*tWxk.!p6n*sn*r*tt?w�nGkGl*mGnGrs�tkflxm5n 	sGtn�sfsGtbk�lmGn*sGk{�t%mt?@*kG@bfklnprstGykl*nrGs*t�x{mGn*sty�p�n*t!k*sGt/y*nr*s*tX�fGm*sGy3DkGn*sGtstGkGmflGmPr�s3l*s�bl*mnrs*t=�y&s*y*s}tPh*sGt�kQnGs@bfhklmnprstwxyl�r8s*s�stGy5kWlGmr'sGtGkGs?w
`@kl'nrsGt*wyt�xrbGn*s*tGk�nQp?s�t*y�bGmGn*sGtunY�tl*nWt*yGlGmnWr*sCt*s9�tb=f�klmnrstC.x�yol*sGkfln}st*y*kGlGn*s*r*sc'w�n�p2�sGyGnGsGt
'fGklm*n*ps�ty�s*y*n*s�t*sGt*ytsGk*s4�t�n.p�r*sGty0�l�@GfknstGy�k*n�s*tSl*nGsGtGn+�r*s*t=@f}�klGmnWrs&txx*k8s�k8sft*y�k*st�l*s*n*sGtxxxy�fk�l�m?rst�h�k3)lGstmr*s*kGn*sQtlGr�sGtGwbGnstxxGy*n*s'txx�bf*nfr*s*tGf*hl*n�s+tGw�krs*y
V[fk�lm �nprstwGxyGl	KnGp
ur*sGtGy*k*sGt*y�lrGn�tmb*sxx�b�kGnr�s*kl&m*�ns&txxGy+s*yflQnt�p*sklGt#lK�bQ@bfklmn4�prstWwxykGl�n*r*sxtl�lGtl<�m~=nGrs*tGfGmpTn	E�bSfGn�ps+tM�x*yfl*m5n'tGn&s.t
bkflm5n�rs[�tGyflCrMbfl�n*s*t�b�fGk*lGmGnGp�s*t�x*y	GkGlGmGn�r^s+txx?kflGn7r*s*t�p*sGkPElGt
�fh�kflnrs(�tGy�bGk*nGs*tmGn*s8sWtGmGn't*n*p*s*t
*@�b*f*kl�mGnTrsGtGx*y�@Os*y�n*tC@bfGhklmnprst*wxyGln*r*sGt*stflztGlCn*sbl{mGn*s*tGx+l*s^sGt�kns+t�y*n*s�txxbWfGk�n*sGk*l*s�t	*bh�k*nGrs&txx-�p�f*sGk*lGrn*s*tzbGk*l5n*stxxxmGn*s
G@k�l*mR�nrGs*tGyrs-�tGmT�sGn*s7�y�b+klAmGnsxb�n*s�f@bfklmnprstwxy*f}lr&tQkfpWsA4hE�k+lGnr*s�n*sxl�n&rS�stGnGr*s*tf�klmnkOprst*xynGtGyfl�m*n*s*t�bfkfl�mn�rst*y*s*t/y�k�l�sGyGkflQn*stf*t!k*t�yGr*sGyxlnp�sGy8xkr�hfstxxk,3r&f!ptr!k*n*s*t�k*n*s*t*fGk5n*s�txx/yzk*np*stlrn*n8r*s	�bkGl5nr*s^txx�m*n{rn7�sGy�@9�bks�lGmnrxGst/yn*s&t�x�m*n*ssGy�n*s
Ab'f?k*lnr*sGt&xck�k6�s
@f,klWgmGnrGstr/�prmy|sQn*sGyprsGx.yrrt*k*n�s*t*ytO�n*t�kl;pnrs/jtkGncs*t&y*kxxhn p&s$txxn�s&txxn&t&s!xbf!p�xL�b&lmGnpGr&s�txx~ym�nb�rr&ts��n.fGk*np*stxGn�r*sr�m*s�m�bf?hkxlmn5prst�wb�xy@lEwn*s�b�ln*stxxfl&sm*n*s*t*lnC�s*t�n*s&tGkGnGst4f*n*s*t�kGln&psctGys�l*n*st�f*n*s*tpbkGn*str�b�pr�bGk-mGn*sGt*yp*sLHlfGmn
sm�s�kflGs�xGf*n*s*t@bfhklmnprstwxyr{sQkWs&klE�n/rGt�kQns+t*y�bGm*n*s*tdbb�fkl/nrst�xy�txxGpsGt*y�b�k?sOf*ffl/n*s*t*nds�fGmGnGs*y
�kl"�mn4�prz�s�txx�kGn�s*y*k^sWtGstx@bfhkflmnrstwxx�y*r�@Qr*sL�t�kQlr�s*tGyU`fGnGr?sGx~kfl 	sGtrst*y.bQkFZm*ns�txx*fGn*s*tGyCk*rGt@f�npstm*s*tt�kxx*k6�s�rsysxGl?s't�r*s.b�f*�hGk6l�nstxyflGm*n*s'txxGy*ffl*n*s*tGyQp*szm*n*sCkl�n?r�s*xGbfklmnpstxGy�k*slGs&txx*s&txx*ykQn1�szt*y�kl�sGyn*s�l*sGy*kfl'm*st�slGstn(�sGkflGn&s�txx	*fGkfl5n*s*t�xGy*l�n*sGy *@=b-f�hklmn�p*r*st�w?xyf�p�f��l*sxxCn*sGt*s'vt*l*str,bfln�rsWtGy*l*ms�k&s*tk*mnWglit*f*k�lGmGn*p
Nr4�s
Htxxb�f�kxm5qnB�sfln8�p*s�lGst/�r*nr*s*n*s}tlGn*s*tGy{mFbf�hitklmnprs�tK�w*yCl	GbGk�mnc�s*tx*y�k*sGtCkGl*tGx	bkl*nrstx*l&n*s*k�s*s�tGybGm*n*s�txxb&lxm*nQ�s*tmGn�k*l'n*s*tGf&m*nGkGmGn	�t@GbklnrprsGt�xkl*s�lUMrk�k�sGylpst$�k-�nl7sm0t*s5tk*lGmQt'k*sTtGmGsGh+l0�mGn?pGstl*s?f*s�lCn
pGrtf�krs!k*s*t\�y�sGy�sGt@bfhklmnprstwxy
�bfhklmn�rsGtwGxmTp�l*sGt�n*sGyb*np?s�l*r[mt�@Gl�m�n*s*@*st7l*n*s�w�lsGt��tGb�hJ�klGmGnr}�s+tx*yCmn��s+t�w*ykGsn*s?l*k*nSs*ty�p*spt@�bfGhklmn�prstx�y(�l*s�l*sGxGymbGn�rs&t�xn	�tK�ks+t*yfl5n*s'txxGb*rlkGst�l�k�lGmE�n�stGyk	�l*sQts*kGn[s	�bzkfl�n�s*t*lGn*rsGt�yfl
.nGt�flGmGr*s�t{n8sW@bGfhklmnprstwxMyGk�n*sGtGw�ynk*tfr*s*xf �hkGlGmnpstxx'l*r*sFbun*st�f*n*s*tGkl*s�l0�rzs�t�w�k�mGnsGt�sGn�sGt*bGr*sQtfkfl&msGtx/x*sW�t�fzk*h*n*s*t
ibfGhCklmnp�s2$tW�w*y*blGk�skn*s+sWt*s?'t�ls=�fGk*mGnstflGmQn*sl*s*tn*st@�l	fL�k�lQmnrrs*tfl5n}s+t*k*l?mGs7;fGn*sGy�r�s�bGf�n*s&txx�@bfkn�p{rL�sty *lr�t�p(�lGx!k*s/t/y b*n|sk*sGt*@�k*nr*sGy�k*s�w
@bfklnprst	�xy	Xr*s	*kl'nprs4�ty�ns*w*y�k*s*t��pU�s�k�lsGt�s�t*kst*ybflGn*s*txxGyklstxxl
wtt�r*st*yrmkrskpkslkflknksnf*sl7#k�fGl*n*s*tGy�lr	�x�b&kl�s&txx�k*s4�km�p*s7t�b^f�k2nrsGtp*s�y@bfhklmnprstwxy�"klV�ny�r*s:Xt*sWtklnrst�ks�tGfk�k*nr�t�Sn�b�tk�s-�x�bl�n�b�f*kQn�tk*s#�rbklmnr*stxy�lGr*lt�xGf*l	bk�m
n(�prt�w�y@lTtkl*lft*l-�xkQm'tx�n�b�l/s*l/nxr*s*l5�n!dsmprsGty	XlGnt\f�t�tps_�y
�@bf,�klmnprst�xh�ti	yl(�n8�nb#�k�nrt*l0r=�kmfb�lnp*s�txstt*f�n�k?slGpr�st�nxy��h*n�tGl?n*bfkWmxrstklm�tr-�x\x*n�stnkt�f�f�kmQrtm�rk|nrfl*s�tbRf*tt*nfr!r�tzxklmn�stxxty�l�k�n*lGstst�r�kGn*tk
umnpstx2l�t*l�m*slpt	�s�t$�n�tn�k<�fk�m�n*st�xNm*s�m�@xfkn�st7h�k*l�~nt�rfl@r�s�rklPm(�nprst�knrfsWts�tt
r�bkt�n�nfrrfte<tdOk*l��t�k'lrGl$p*sfkGnr�st�kl*mrs-�xmk�mdxxn�b*f2ly$�s	fklnpr�st��xnprx0qn�s�kl\x�nTkp�s*f�m*sGy�bf*kl�mnrst�ym�n5n&st�k*nGs�x	fkl�mn(�pstxtx�b
.m*s�n�nrtm�s�xn�fGl*sGsx��yktr�p�r*f�k�b�nGnyk�l�b�ks*yGnp�n�t�bfhklnp�rst�xyl#�n�b�myV@$&fk�r
�t!nQk�t0t�wrsn�4tpstnr*s�tkGl�tt�nGlnm�rGt�x�k�mn�st*f*n��@*skl�mnp*rst0w�xy�k*lnWprst�bGtmk*n*l�s?l�r��f�k*p?r*l*nst�x k*s�tWf�s�f�kmr,ls�tx�t*n�tl�s*m�n;�t*kn*pr*sGt*n?tkt*ntJ�rWk*l�km*sp�@4�@�bf2hklmnprst�wxy@lr*sxpRn�rsP9tzx�b*k?n�tZflk*y-�kn*s�tGls�t�xt�rG@lf>�m?r*st�x�k�n*srtTx*fNm	�b�f*l�mn�p+nt-�x/yGks$&fprnfs*tk.!ptl9�nr�<s�t.sm5qp�nr3�k�km*s�xns�t*m�t*yn�kK�l;�@;�f;�n�p?s;�t�kGrGtGfkl�m�nT�r�b*smEtn�yGkTl�Jm*n*sfbGfkl�mnrt�st�xGy(�n*s&mnsxt?w*x�k�sGtGm*sWtG@flGs�kGn*sU�lSn8s*tbfhklmnpstwxJ�yhQk�l?n*r*s�xkfbvsUtyr�lx�l-�m
umn.Os*t	Xm�s/�kn*�p�s*y*�sb�knvs*tGk*nMQt�b*k*lGst�m*r@n�ps*k�l*s*y�fyx�l�te�@kn*s�tGnrGs�t
;fk�l*n*pr(�sGt�yfl��nskGn[slWfnxl=js*n?s*tm�n*s*t�k�nBAs
bfklmsnprstwGyGk�l?n*s4�lrGtGt�y�@GfGl�m�n�rstQnWr*sGn�rs+t*yfl5n*s*txxG@GkGnGsGt*kp�r*sxm�r*s�wG@GlGmGn*sGt8�yflGm�nh�r^st*s&txxGy
�b&fGklonrst�yrkGn*s*t*yGlGm*sU�t�s*tflGm�n;�@kxmGtl*sbf�hklmnprstwxyGkl*nn*st*y*s
�t�b!klQn*s+t/y�kQn*s*ylxmGnGp�rGsGtQ@&b*y
Gfkxmn�ps+tmTw*y
�rfl*m�n*s*t&kWlr*sGt*s�xGbhGlGnGs*t=ms�kGpGtbfkl�mnpstxGyk�nS`t!k'l*s*t/ylGn*sy)s�nU�st*y*s�tw@�k�n	l*mGn0p*sf�t�wxx�l*y�ffl*n*s*tGyWl
n�s
bh;_k*lGmGnp*st�lGtlk�y�lGtGk�n�r*s*f*n�r*s*tGy@kQlnsGt�x�ns*y��t*n%sGl�n*sGt_�k�m*s�bCk~lnsO!tGxkflQnsr�flnr�s*t*y�s�hl*sGt�w1�st*y*mGn*s*t*y	�bkxlm
.n.rGs*tGl�sfle�m*n*sGtq�p@bfhklmnprstwxyGbfkln�r�stGw.x*y�nyxlk�k?s*yn*s*k#mGs�kGn�sGt*y��kGmGnGs*t�kGn*s\bGkl*n>rs-tkGm�nsGtQ�x*yflGnsxx"�p�s+t�nGt�b[�fklmn�LrstWxy*stx�b^ffl5ns*tCf&n*s*tGx�b*�nr*st^fkGs*s'5t�ffl�n*s+t�lGn^s^tysl8t5n*�r*s*t*knQpGstxk*s5skGn*sbfhklmnprstJZwxy*l*sGt*l�rsGtQxOnGsGh*lGn�r*s*tV@�b{h*l*m�n@r8stxx*y&knGp*s�t*xQy*srtbfhk�nGp7rstxxr�s�n�r&l*mGsGmGn�stGyflGnr*s*t]kn*s*s�yY�lGm~nt�s��txxGy
^fk<�l�mN�n'st�w*y�nGf*kGlGn*sGy	�b4�fk$[lV�nr*s�t	�nrlf*m�b6l*nTrs*tGy�kfln�sPEb*n*s@bf�hklmnprstwxyGnGrGs5kjelGnGrst*y�tlnGklrGs�n*s/t*yGk*nrs*t?�bklzmnrst�wxx*yQlB(mlkm*s*y_tGm!Is6�fm�nGp|sGy&k*n*s*t45kBAm*nGs*t*f*nr*s*tGm*y�@!7k?n]s*yb,efklnp*rsS�tyGk~nfr*s*t�ln*s*t,etGf*k*sfr*stGyr*s(�n*yfl5n?�s*t*x*yGl�s@�tlGrTt@kHlGmGnprst��xGyr*s_pln*st@)s	Xf�k+s*t*k'ntnZx*sft*wGyGkCm�n
.p*s#BtGybf�klGnrsGtxxGy@lQn*skGt*y�k�sGy'm*n*s*t*yfl�mQn�@+b�f*l5nst�wxx*yGn*s&txxkl�
m�psCt�y5zrU�st*y�k*n*s*txxGybGfhklmnr*st�wxxy�lzr*s&kGlGm*sGp�s*y�n*st*l*msmflQn*st*l5nrs>b�f*n*s*t
�bkflCns�rs+t�wxxQffl*sGn&sth�m*n�p*sbfklGmnrstCxyddlGr*l&m*s�lGn3�r�s*trsGt*y*kflGm*n|sGtnfpsGyfrGs*nrs*txx*st�n*sh�p*slmnQ@Gk*nGt�l5nr�sGt*y*st�t@bfhklmnpX�rst�wxGn8sylxtQmnsy*k�s4�y�f*k�lQmt�y�r�blm�nrt
�yjNnt*k*l8s]�sGy'fy|lts�fktrlOyG@f*nr*suety*k�n}s*krs*yWlOsk�mv�rsZtCxZ�l*mt �rl�pr*s*t*tpy	b}k�l=�m�pstyt�y'y*s)y�k�]l�sWm�nQp
�xmrGt�k
+mbfklnp@rstxxGyolr�t*y=kX�l�r7�lGn�r	�n*s*t�k*lnGsGt+st)=klGmn&rs>�t*ks*tGy�kGl*sfl�nt�b�fGn*sGt*@[f*n*r*s*t-�x@bfhklmnprstwxyGn^sf@GlArGtG@�k;�l"�rGt*yxf&l�an*sL�tGb�h&ks�lnrstCx<*yGf+stfl�r�f*st*kQtt
.rl�mGn&r&t�xQn�st*y$�kGnGpst*yfl5n*sGtxx5qm*sGy.bnGr*s�kGn*s�xGk*l*ns]ZtGl*n*s*tQy$[lnQpPEr*s*k&t*@'m*n�p�s*tGyfklGmn0p�rCstGxy�l�nGl.]szbGkGsk*nr*s�n�pl*s@f@bfQhklmn�prst&Pwxy/l�kl=r*s�n*s
�k�lQn�r�sGl&nrsGfGlGm*st(�l*s<�bGmGnSs*t*yGkJ0m�nQr*sGt*nGs�tx*lr�bGk�n�stxxwwy^f�n*s*tGtyUlfl-�nr*sftGxV�n*t�hxl�w0@WnGta�bGkCl�mnGprsaht*y�bGkfl*n*sGt�mfGnp5�r*s�tXrw�@�n?hb	xfhklmn*prstE�w�xyAn*tlJ�nGrtGp*s�y�p*s
kflm�nrs&t�x*ys*n*s�t7;fH�st*yflGm�n*sGt�b/k��n*sGkflGstk*slfl�r*sGk*l~n6�s*t*y	lbfklGn*sGtGy�lQnGkGl*s^s*y	Gk*lGm*nWr*stxxfl*n*s*tGy�kGr�s?w*x@bfhklmnprstwxynr*sE�y*str*syxQk�sbln�rs�txlst*y#BtGf*km*sCWt*spt*s<�t{nbkl��mnrst&wxy�l*nr*s*t�k�nr&st-�x�m*n*s
�txxCf*r*sk�n*s�ty*n+s�t=� �k*l5nGstx�bffl5nstGyGf*sGyxlGn>b�k*lns�tGyGs�x�b*n*s�t	�k7l,n�r*s�t�x�y	�b�fk7lnrrs*t�l*nGs�t�xGlGn*t*yn*s*tl*n*s*ts*yGm*n*s*t�xl*n*skWtQs�tb�lxmns&t1t)=x�s/t�xtr�kGn*sGy	�fklmnprstxxy�l�mn*st)=x�txx�fGl*n*s*t	@fGkmns&t�x*y�b*n_�p*s*txx�k*lGs)bmp*st�k�s	Q@bf�nst�xGykhr&f&l!pQr�st�k*t0�k*s.9x*s*txx/y*@�b&fkmnst�x,�y�l*s.]b�n*s#Btffl5n*st*yfl�nsn*sf*nfr*s*tmfrsty�l�tfl�n�tQlGn?;rGs*tGy*ns�m	,�fk�lGmr&sGtx�b	rl"�m*n*l*n*t@lGnfl{�n*sfklmnpst�xykrflQnfs*s�txxGl�m*ns&txx*y*kflGm*stk*n
up��s*t*y�rn*sh�r*skxs*t*k*n*s�txx&sWt*fflQn*sGy*nr*s*tGyvnGtm�s�t>�p@bfklmnprstxyGmGn/s_lzr�lQsns*tt*f*k*l*r8s�l*n*s*t�k*sZt*yn*sstfrxun�;prwst�x*nr�s*tl*n*stxx1*fmnuet�ffl5nWrs�tGb�kfl*nGs�tGy^GkGm�nfr*s,tGy
bfk*l*m*nr*st�kfl�n�s*t/yGl*s�x�k�lQn�szt)Mtxx*l�nGps@Ghk*lmnpstx0y{s�t*lGn*r�s*t*l�n*ss!x�b�m*n*s�t*s�x;�l�npGstl*s*s+t*yGmGn+bGfGk*lAmGn�rsGt	Xw*skt{l*nym*lQtb9�fkl�mnrstxy
�l��s&kn�txxts*n*s't~k�nsvtxx}y*fsm@k�n+st*nr*s*tunht�x	fkGm.Onpstxx
�rT�t�=x|rrp&s*tAt�x	�f�kfl�n&�r*s�xGyGl*m*n&stxy6rn�l*n*s*tx*k�l*l*m*s	�t=�y?fn^s�txx�l�m*n*s�tbxl*n*s0fkQl�mnpGstxxGy*ns��txxtr*s*n*txxckGs�tb
.l*k*nrs*t�xGy@bfklmnprstwxyQsrtGxyGptr*sx*lzn*s*tGy�b*n*st)=xGfGn*s*lnGpr*s�txxk*n�bptxxf*sfl%s�k*nGs?tyt*n6�s*t�b�npGs#Bttxx�f�s�kflGm*nGst	>bWffl�mGn�s*t�xkGnrrsttf*nGs*t*n^s+t�b�f�n^s�txx�k*m*nrs*t�bfl5ns+t
kl4�mnr��st�wyl^s0�n*y�k�n�sWt*yfl+s�t�xGk*l*n�s&txxk*s&txxt7mntxxGl�m*sCn@�nKn�kmGn*sp*�@��tbfxhklmnprstWxyGl�rln*s*tGx/yxp*s*y*n*s
�txx
.]blm�nrstxy*n?r*styxk�n*sWt*f*m*s�kflQn*st�xQl*n*s*t�b{�f�k}n?�r�s�t7n*skn�s*tU2yxx*y�kflk*ln*sF�r*sunhtxx�k�lWam*nstx�fGm*sQk�l*nr�s*t�l�p*s*y*lGn�slt?ns'mGt*f*txx	�kGlGn&psctxxGy^fGk*l	�bkGl�mGndp&st*l�nln*s*txxGyfl*n*sztxx�jm*nfr*s*typ�k*n*s*t�f*n*sGk3nGs*x
�bGkl�m�nrsWgt*y*n}sft*y�n�sWbgf�n*s*t@bfklmnprstwxy6mGnsyPp*t(6pGk	rl?nGy	�bkl5nrs$[t/yfl*sxxk�ns*y�k�s*y'nGs&t�xGm*n*s't�x	l5nCpstGwxx*y*st*yr*l?s*nr*s*t*l*y
S`@6NfkmnGpsF�t*ytr*kVs�l�n�sflm*sGtp�yCk�lnGr.s�k�sGy?@mb
Uf?hklGnGpst?w�m*sftrst*yGk*l�pr*skGl�nrt�xstflQn^st�f*sGy*n*stxx+b�f�l*sGnGsWt*yfbCf*nfr*stflnOr*s*tbfklmnprstw�xGy5k*lt'l*skflm�nGr�sftWl&s#nlnPprs5tn�s�xl%ss!tNn*n�t*s�tn*s�txxGst�xfl*n	R�f&klnpPcrstn�l_Vp*srxnQ4s]tfGmn�k*s*t/y�sftfGkRp�st�xykl�x�ml7r�sPk*ym�sft�nrs!ItPnt�f�k*t
�x
0fGklxmn*rrstGy�n8s*yst�f�m�m*sGy
sknxstGs�-tr*skt�r�:k&t�mGtGk*s�tGln�b�l*n*s*t�f!h�k0l*sx@bfklmnprstrp�s�tGy�b'�lmy�ks�rx�ksln 	s�tkt*y*kQsWtQx�kns~ttr*sGk�s�xGylsry�sst@Gk'�l*sGy��f*�@kk�m�s*t�x�kfr�skl��mr4yfl*sWx�k*kGm	Xn�p�sGy@bfhklmnprstwxy*wl*nGr*s*txx�yQn*s+tGyxMkl45mFsQn*ps*yGn7`rGsGtGb?�klnrs�t�bflQnr&sGt*ys+t*m*n*s�txxGn*stk?'tGk*n�s*t*sA\t	=fk`{mn�s*tGx*yGs�tCk�ln*sGt*stQk*l*s*t
 b4�klGm�n�rstx8s*y^s+tGy
�b�kflGmGnrLsGtGy�l?�mGp&t*fGnS�r*sGt�bfklmnGrstxy4�k*s*t/y=�blnr*s	�yQs*y,fkCm*n*s}t�w�kl�sGyVtaUnGk�ls�y�n*s*txxfGkGlsn*s��t�mk*lQnGr�sztflXt�k*l3mGn*sGtGybGl*n*s*t
'bQk!}lFZmnpGr*st-�wGxGy*kGs�x�b*l�n�txx&lGmr*snH�s�fGnr*sGk�sxxGy�tfl*m&n*sGt�l�n*p*s�b>fhl'np�r*sGt�w�xc>nGs5�f�s/tGk�nbf�klitmn.3p�rs'twGxyGklxt8�n*y&k@l*sGtr*st*y*�nGtf�kQl*nGst5slflQt�b*n*s�tGkWl*ss�tEwn@�bGfkl'mnrsBt^Tk'n*smWnsxl*s*tGy*s!Itn'r*sf*sr-�tkxx
�yE�@Wfhklm�n*pGstGk*s?tCs�yy�sWt~nt�lGn(<r*s*tGn*sxn�k�s*y�y@bfhklmnprstwxy
f�hk6l*mnrs*t@lSt�l*s�kGm*sL�trs&t�kxtx
&@Gbfkl�mnrstN�x�yl*n�r*s*t*k&l�n*s*t�nsr^stxxb*nr*s�f?hkst%'l*n*s*tGnxt*n�r*s*t�@GkGl�n&st�yek&b�m�np*stGr�xflmQn?s�p*b�klGmGns*tGn*s*t�x
bfhklmnrstwx�nr*sGtcx�n�txx4f�l*n�r*s*t*n&s�b*n&rOstxx*nyqr*s�bfkm5Onrstx*y�bGn*r*s*tunstxbfl�n*s*tflQn*szt4�k*yfk5n*s*tflQnztr�fGm4�n�n*s*t(�sGy,t�nfr*s&txxnr�sb�l*np�stxx*f*nr*s*t	kfl�m�nrst&x>f*n*s*t@b��kflQn�t?wGn�r�b*n[r*s*t
�b�RfkGl�mns*txrtxx�n�txx�f?�m*nr*s*tQn*sGy*n&st+xflGm*s*n*srt�b�m�n*s*tFb*lqn*stWxGl&n*s*tb�fA2kdl�m�nGp?r*s*txx�b*l*n*s*tfl�mn*s*t�l*nfr�s*t	bQmc�nr@�s&t&xyl*n*s*t�ttr�t�x,@bfhklmnprstwxGyGkzl?n!ItGy�lnr*sGtGxb*n*s*tGymTp*s�fln�r*st)=xm�bsxx+bsn*s*t*f*n*s&txxbkflmnrs�txx*y*l�r�l&txx�b�n*s�txx*nrsGt*nrs+t
Uffl*mQn*st�r*s
bxfxlnp�r*st.9xn�n*s�txxcst�bGl*n*sRtxx�k"�l{nt�rts&t*l�m*n*s*t�bfhkl	Xm�nrst�xkxlrmtn�txx
�yi�r&t�x*mGs�r�s&txxsGt*yGm*txxGkzs�txxkl5n*st�.xGyn�r�m*n�b*n*stxxfr|tr*s�tk*n*txxtx�b�f*n*s*tn*lfr*s
�k&l_�m�n;�p&r*s^t.9xGl*n�r*stxx/yl&rrs&txxG@�kmn&pst�w�xy�n*s�t^fflGn*s*t�b>f�m*n�s*tsbt
bf�hGka�lmnp*st.9xGy*r*s*yflQn7t"�nfl�sGt.9l
�r*sQ�tGnr*s*t�b�n*s*txGyGn*p*sbfklGmnr�sq]t*yGl
.r�b!kfl*stxx/y*n{r*s�n*s*yD�k*sGtGn*s*tGy*kGl*m*sGtflF�n*s&tbf�hkmnprstwxyGklGs*tGn*st*y*n*sGy�bGk�n*s�t	�k*lnrstxxGyfl�m*n�sfl5On*s�txx�bn*s*t�k*nGp*sk*nxpxst&x*n*tcx�l*n*s*tl&s�t�y*stGy+b0kGm�n*stxx�kGn*s*t
bf�k*m*n�r*s�tGyflQn.stxm*s�yn*s*t�l*s�x7;k*n�p*s*t
bfklmnprstxy&klnrst�n�s*t*yk6x�n�b�m*n*s*tQx*l*s*t/y�b!kGl*n�sGt/ygbn�r&sGt�fGs*t*st*y*np*s*tl*s*t�ybE�n@�r*s	Gf�k�nrstCxGyl�txxtsGkn*stxxr*s�n�txx�f�kGn�rs*t*n|s*txx&klnrtsttm*ns*thyntttltV�szs�t�kGkQm*nGs&t/yf�lQn+�r*st3lQlGn�r*s	�bklsnOs*txx�y&kfl*s*y�k*n*s&t�x*y�kGn*s*tGn*s?y�@bfhklmnprstwxy&kl*n*sGt
@klnrs&txx/y�m�r&txx*s�t�xGy�s&txx�s.x�m*n*stb�k�m*n*s*tl�t�tf+�klnpV�rstx*y@l�ntGns&t�xGy�rGk�mGn*st�b&txxEk�nsGt{yct	,bCk{ln�r�s&txxcs*tx?ntxx*ffrl�r*ss=�t*m�n*p*f&k*l&msnpr*st�wxx�k�nGslGmGn*st�m*n*s*txx�m*n*s&txxGy@�bf�hklm�nprs�t�wxGy�k*r*s�wGn�rGf*s*yfl�nrs��r*s�nGp*stGy!k&s{f*ti	lGn�bGkGlGm*n*sGtlnsGt*yrs*y��l*s�mGn*s{ b&fGhklmnprstWwxylk&xzn*sxx&kZn*sGtxxknT�rstxy�b*s�txxfl*ntcxbfl*n*s*t�b^f�m*n*s*t*n?p*s*t*kn*sGtxfl*n=�sty�mn*s*t�l�r&sGtb�fhkC�mn�pMrstxl&txxns&txxFbrlf�mGst^fGln�s*tt�b*n*st�xfks�txxFb*n*s*t�b>f�m�n*s*t�fk*n�st.9x�k*n*pr&s*tGy
Fb�fGk:wlGnrstx�l*n^s&txxGy^ffl*n*s*tGy&n^s*kcn&s�b*n
�b4fkln&p.OstGyX�s&t&sft*yckfl*n*s_t�bGn*stGybf�hklmnprstwxy
*@Gk-l�m*nzrsGtGxk	�b�l*n*ps�t]�x�y*n*r*sGt	litmnr�stx*yQl*n?r*s&txx*y�l�m*n&stxxflQn�rQn�pxxb&l*s*tn*l*ns*t
bf�hk,n*stxx�y*l!r,bn*s*tG@�t�xfl4n*s*tb�n!p+r�s5tlsn*s*tGy
�@bGk-�lnstxx*yGk"lGm�wGy>f*l�m�nrs*tdlZbkln*prst)=x*y*st�b�f*n*s*tn*s*t/ytn*s�tfls��t�b^f7r*s*y
�k�m*n+s�txx�y�f*t�_f�kGn*s*tk'n*s*tGy�txx	�bff.l"�m*n_�p*st@lQn*r*s�b�9fQlsn*s�txxbfklmnA2prst=wx9�yl�nGtGtcx!k�lGnr�s*t*y(�nfl*n*s&txx�mGn2�s*t*y*s&t�x+s�t�x�bk{lGmnp*stxx*y*stxx^f*nr*s�tk*n*s�t.9@=f�f*s+tGf�m*n*s*txx�yf@Gl*n*sGt�bn*p*s*tGxGlfr*sknl�bGn*s*tq@xrdn@bfhklmnprstwxy�mr*mp�s�tGyGklur?stk*n*st*y�k*n�s*t*y*s�tGy�b*s	!kl*mrns&t�x�yQncp*s*y�bGk*lmnGs�t
xblmn�prstx
Gf*kGmnrshtxx*yt@�l*n*s*txx*yflGmGn*s*txxnIAk�k?mtlrfGm�n&txx�kGr*s*tGy*sct�9f*n*s*t5)n*s
bfk�\n�rstxx*y?l-0rr*s*n*tGy�k�s�tGyGm~n*s#Bt*f*nr*s*tGp*y�bnpstxxQ@s*�t�k�txx*n(<r*s*t	bk�l�mGna�stxxGlzr�l*s^ffl�n*s+t*klsttGy�k�m*s�yt�x4�bfkcl�mnGp�rs�t�wxx�ybl*n�r*s&tk*sL�s�lrGstxx*n�srtxx�b�f*l*n*s*tfl*ns*tcx�l�m*np^ds*t�xg�k*tFbklGmnpGr&st*yf�k�n�pfryqr*s&f*yst*stfsQnft*n�x*kfl*sl*s�yGk*n'pr*s*t*y�b�kl�m�nJs�b�fklmadn7rs*txxs&txx*k[sxfk�m*n*st*yr*sf�k*sGyytn*sf@GkGlGmGn*sRtmp�nGpAr*s*t�k�ns!�t*h?m*n&p}sGt�fkl&mn&rsC�t&x*y�b&n*s*t*n�p*s*t�b*st�bGn*s@^mbf*h�klmnprstw*x*y�l�n�s*yGbnGr	�nt*s�x�nl*n*s*t�m&n*s*ts.9t�n�t�lGn�rL�s*t*@*n*t2g@zklWgmGnstst*y*m�t�bGh*l*s@bfhklmnprstwxybf��lmn�p*rs*tw?n�rQy0�p*kfl�m`s�t@��tCy?s�w*kGl��s�tG@bfhklmnprstw
uxJ�yn*s�t�yrsGt	j�k�lEm6nrstxx�yGm�sf*kl*n*sRt�xxmCtklmnrN,sttxxf*n*s*tflQn�st�fvnGst�npGt�k�nk*n'rstlt�sxx*yGm�nr*s�kGp�tk�n*lr
b�fmn�pst�x*y=�rfl�ns
txx�k�lfr+s�tn*s*t�s"�n�r*s*t*y	kUOlnQpxrstxL�nr�s*t_s�txx�b^f*n*s*t�Rf*l*ns*t�nn�k*s	fklm*nst-�xt�t�x*lnt�sk*yPnx�m*n�fk�rX�sWwGsWtWb�l&nU�prtxxfk�l*m�sxx�=x�krGfGmm*s�l*m'hknst�x�y�n*stxx�n*sfl*sGx@Gn*sGtGy
f�hklmnp*rst�x�yunGsGmun�prxx&b�p*l*n*sb�n�p*s*t�l�k�ssxWf*s�t*knrrstxx�yGstx�f*t�l&txxEwkflGn*sm=tGy�nt�=xb�f*n*s*t�bfklmn�prst�yGk�|l&txxGl*n�s&t�xQn?s+t*y*kn*l?n*sn7r*s'@txx�hkn�ptxx�f*n7r*s*t�n�sGkp*t&l*n�r*s*tx*f�n*s@bfQhklmnrstGwCxyMQt*l&t,bkl*nsGt�x�y:wlSnxprstxx*l*n*s*txx*f]�n*s*t@�bGkfl5n]prstGw�xGy	XrflsGyGb'rGtx	�n
�@f�hk
ul*n�r*st?l�nGlGsGtG@>�n*s?y�bk�l*�nstGy�l_�n�sGt�l*sGydbb�kCmn*st�wzs�tk*n�prs�l)MtxxQfb�f
�klGm�npGrsGtw�xGyGk�l?n�fGnysof?st�l*l
.p*tGrGtGnGr*s't
Gb�f	�kGlGmnCrGstkWksGh�m�n*s�@bfhklmnprstwxy	GbGklnrs't*yOn*sGt�f*s^sGx
B�fGklEn�rs*tGxGy*n*sCt*yxlr}sGf�s
l�mGn�rs�tGwxx*yG@*ns*t*ybf�hk|lmnprst�wxyGkl*s*@6l*n*sGtGxMml*nGp*sGtMmmGnsGttflr*s*nGs*tGrs�t�p*sGyGl*n*st*nr*s*t�l*n's*t2�@Gm�stGy*k*m*sGy*f*l*st�k�s
*f<�k�l*mGnfr�s*t�xq�lGnGps*t*yGt�w
bflnpst�x*yGk*n�r*s*tl��nr{k�txxnGs�x�k*n*sf*stk&t�x�l*n*s*txx�lGn�rsGt*y�fkp&stxxGlr&b!pk�txxn&s7x�k&s�@E�bf�hklGmn/�prstxGykl?n*sGt/yunxx8�nGt*y*nGr*s�txm*nrs�t*yflsy?w*k*lGn*s�t*y�b�f�hkl"�mnrs*t*yQl*r
�m�s*yCf*s*lGn*s*tGy�lGn	�fkln�r*stGy�r*s&t�m*n*s=fGh*s�k*n	�sbf?hklmnpstwxCylGn}�sGt*yGn*s�t	!k*lGnGp&s*t�x/y
�bZln�pGrs�t)=x*y�bV�kGnLs+tWw*y	%mbM�h�knp*s*tcQxG�kfl�t*n*s*t�x*yb�fa�kGn�pO�rs�tx*y*nsGtGy�blGnst�y*n�Ms*t*nr*s*t�lGm*sCtn*sCtGyMQk
^fGk�lGmnr*s*tGyrsGyGf*l*sGt+�yGmGns*t?�kflGn�ps*t*y@bfxhkl"�mnpst#w/x*y�ffl*s�k*lGmlknK�rO�ns*tGy*fQk�mtka}n,3st�x*y@k*lGm*sGyl*ntflQn?sGk�nQr�tfflGmn*s�\t@lQn*st=�n
G@,b^f�kxlQmnpr*szt?yG@lf*sGt�lb*n&txx
b/zfklmnxprstTfxGy-0rt*nGy�bx�k�n*s*t*yGr�s#r*s~�k*lnts*t�xGyfl}s*kflxm�n*s=�t�w&l*sGy*n�r*s*t?y�bflxmn�p/rs*t�w*yl*n*s*t6�s*yb�hkl*nGprsUqtw*lWrkGp*sGb&kGn*sGt�kCtkGlGp�r�l*sGtGx@bfhklmnprstwxy>f*nr*s*t
�l*nr+stGy�n^stxx*y*nfr*s�tGybfhklmnprstwx*y*lvns?b�m�p*k�stGxn*s�tl>Xt*pCt	�bfl�mnrst�n�nr�s t9�ffkWlst?s�Mtrtl�t�xsflQn��t?nr*lt�{kTkt�k�s��mptLl�rf�k�y�rf�kQn^s/t*y�l@*k�lGnptwk6Nlr?sztxfmf	fGkl�mK�n+st�xl?fmkQn?s3)yl*n��rs*tzk��l�n��prst*y�fkpst|lTk?l�f�k*y?s�x�r*yfkzlGns=�tGy�l�~rl*s/t�dt�x*npt5�k�rfk�lmn5�prst�x*ns��n*nr*ssf�@�bQn#Ws�t|n*tt�n*fmGn�rslyf�k*t
?bf2huelnprstQn�t*l*s�y*n�r�fGnsGt*npt�l�xrk�t�xm*rJn*@?lTn�r*tfln*ssGl&t�klGmnGpstwQ�xGyG@*y*n�r*s*t*f)kGn*sGt�b�_fxmGn�r*s*tGmGr	�kfl&m?n[rGsGt*y9Nbln&ps~t*y*nGt*y�f*k*lrs+t
E�b_Vfk�Ulkm*nst>xGnUMrsGy�l�nrs*tQwGy*nhs*tGfklGn*prstw?xyGf�nGsGn^s*yQn?s*t*y
�stGk(kr*xl*sk�h*kGmGn*s+twwybfhkl+�m~np�rst�wxyGkGlzr�k*s*t�ynt|bs~lGn*st*y�pxsflGmQn�t*nsGtxxGy*l*nWl0Rb4f5hk*lmnprst�wYxGyh*n*s*t,mWb*nGxfl*stp*sGn*sBtflGns+tGyGlxp*stGnkOr*t~}r*sGyGn�s*t*xxyGns�t*yflGnsGt@bfhklmnprstwxy�bffl&nrstWw*xGy�lGn*s*t*yCn*tWla}nblGnrGst*wCw�n*t*yGfflQnGr*s�y
�kl�mn&r8s�t�w�x$�k*sGtkl*n*rGsGt�bGf�hl
+mn0rst*yGns*t*y�kfl*s�kGn0rst�f*s]k*s�b)ktGk*n*k?r�@�b|�hkflm��np@rst�w�x*y�k}r�sGt*y��n�kQr�kflGn*t*f*mnr*sGt^st�nfs*t*kn?s��tGx*yE@*sG@f	�h�klmGn/zpJr&st�xGy?l?nQr*sun*s*yb�l
�b�kGlGm*n�6p�rEs*tlmGnrst?w
Uf�kmGns�t*ydn�t�b!nnf�nGs*t*t�oxGn[�t*knfr^s�lft	?kflGm~n�rtstGyGnr�m*tzbk�l?hn*st?w�l?m*n�r*sGt�b�fk*lm&nprs!pt=w�xyflmGnGsn=�ts�tm�k	XlGln�p*sGys�pGm�n*t'p*sEk*sl3mnGps*t*y�k�l*st~lk@flxr*sGtPs@bfhklm5nprstwxyGp�r*sGt@?klGmnr�st^x*yGk5n*s�tGwGk*nsGtGkGn*s*t	bln�rsGtGx*y5k*sGk5n*sGtGw*y*s�t�l*sahtVMbf�hkl7mn?prst.9x*y*l�r�sGxr*kGnGs*t*yGkflQnfr*sfGm*n�s�ty*kGt*y�s�k-�m*s]t
Ufm
r*stn*s^sGy
hp�k�lmYMnrLst*y#�nmnGp!stGkGnGr*sGy�@%mbGnst�kk�r
�bGkl�nCrst2�xGy�k*s�w*yV�r*sGfGm5Ons+tGyflGn*sGt9�bfklGmn�pr�st�wx*y�bGpr*sGnt*mst*yflQnGt�xk*lGsGt*n?r*s*t	�b*f�l?mn�s+t*y�r*sGtP�f�lGmQnrrsGyGk�lnGpl*s|s*ybfhklmnprstw>�xCy1rk/�l�n*sGt�kq]l*sGkGlGm�s�lrg]sGm*sGtk�n�st�wxx*y�sGy�nGr*s*tn*st*stl*s�st*y'r*sl*nJr�s�tx*l�s&l,pUqrGsGt�bfGklmnp�sGtGyk�l*rGt*l*n*sGtxxGn�st*y'rs0h*sGs�tk�mGn*st�xGpGy*kGmGn*sQn�rGl&xGn?s*tGk*nPr�sGt�f�sGtG@bfhklmnprstwxy5k*lQn?s�bf_�klm
�n$vr�stxy?s*x*yQkGn��r^s�5t7lQr*s*t�x�lGn*s*t0lflMmrtGw�:y�kQss*w*nr*s*tkOt�bfGklmnrstx*yn�m*s	fk*m�n�s�txx*yrklst*ksksp�l7sWt]p=�st*bk*st+f*n*s[fGpGs�txmI�p*s6t�wGyknr*st�l4.mfk�lmst=�mr�fGm*s(8tk�p*n�r*s*txGfGpbJ�fklmnstGwx&yGk*l]n�n*s&txx�k*ynt*l*n7r*s*txxkmfr*st�wxGn*st7m*n�kf*k*nr*s�Gt6r*n*s*t*ynp�lGn�p*s*tf�lGn
�p&rs*tlf�k	E�b&kflGn��rs�t*y	�b�k*lGm�n%�st*yfkGls�tGr�yn*mQsGnGt�y�bfklmGnrstx*yGl*s�t	�b0f�klGn�s*t*y*kGnxrsGt*x*y^s*ylZr�sGtGk�r*st�x�h�r*s
��@�b�ka�lnr*s*ty^s+t?fl*sQn�s*yl9�l�l*n*slrsGws�t
bf�hklmnrst/xyNl��n�t�kl�t�yk�sGl*n	�rs&t8flndps*s�tsGyE�bfkl5nst?wx*y�ll*m�n*s*t*kOn*s�t*y*r�tGlGmn*s*tt~=n*s*tnl*s�sft*yQb�k�ntWx	�b*fzhkfl5Ons*tm�n
�b*fklm�n|s^t]x$vlQnst*yflGmQn'tkp�b$vlGns*t
bfklmnpstwxy*lGx+bk�l�r+s*t/yflQn*sxxr*s&b�f�p^s*t*yGn*s�t�kfl�sxlGsGt�fflGn*sGt
�kfl*mGnrsGt6|xGykGn*s&txxGyPElxmGnGp^sm-�tbfklmnGprs	xtw�x*y
�lGtlQnGrGtGxQns*y�l�mnGsxrGt*k>�n^s&t*yGb*n*sGtGk�lfr*s*n*s�t*x*y	V�bekmI�p�r}s*tw*kn*s�l*s�xum*s&bGkl*rsGt*s�tG@xm*n*sGt	�Rf&kl�m�r*st�xQnst*yflGmGn*s'txxm*n*t��p�hk�m*n*s*t.w�l�r@bfhklmnprstE�wCxCys}Kt}lrGyf*lGms&txx*m�sWpGt	k@lGmGn*r*s#Mt�yflGyQs~t*bGf�:lr
sGt�f*p1ekGn1�sft*yGkns6l�sGtGy�sGtkflGmGnL�stGf*stf*sGnp�r*s*tGy
�trstf
�lU�t*s6xot*xfl*mGn*stxr*sGfGkn*s*tyWk*n'p*sbfGhklmnprE�st�wxyGkB�lGkGn5r*t	xhlFdmnGpsxtx��t�m*s>Xtn*s�=t*sxwkn�sGtGy�k*l�sGys[�tkl�m*st�lr�f*mk�k�sGy(<r>b*k9lGn*s*tl@�kln��r6|st*s�ts&txx�ffr*s�b*s-nGs*tGy	>f�hlnWrF�s�tGyQn?sft*y+b�m5n*s*tknxw(�fm*s	�b@bfhklmnprstwxy�#sft	GklnWr�s�tGxyGb��f�k�l/mGnrs+t*x*yGkflsGt?sGt�b�kln�prstCxy�n*s*t*ykGn�s*t*m*s*t*y*l�n*t*n&r*s.xl*n�kG@*s*tbU�fhklmnprsta�wxx�ylr*sCkGt�l�nCs
�r*sGx�bGn*s5t*yn*stk�m*s*t*krsWb�n*stxx*nD1r*s*t&lGn*sGtGm�nGp*s*t�b*n5r*stWr*s*y^fCk*ln�r*s*tOn*s@b�fhkflmn
.p7rLstwxyflQns*yG@�kGn�l*t?l�mn�s�tGyQh*sGk�n&t	b7;f*kflGn�rs*t=s4fflGnstflQnGyGkGltznxpGt*@bf�klnprs�t.wxGy�l?nGt=nCtO�n*s�txx*y*stfr*sxxGkGn�rs&t*yl�n*s*t*n�r*s*t�=kGlGn*sGtx
�s	�fGkQl*np*stGxm*s*b@�bfhkllm�nGrstw��x*y�m*p�lGtGx�n*pGs	�b!}l�n�prsGt*y�f*tGr�s�t�b*klGm*s�tfGn*s*ts�kzbf�h�k�lxmGnp�rg]st�wGxy*s^x�nGp.bQnrskp*sGk&lGr*sGt?xbfklmnrstwx*larG@!k��m*s*t#�yGkGp*s�kGn*stx*yGn�sG@Gm*npKst7r^s�n*tGn�s*tfls+t*sGxq�l@bf5�hklmnprstwxyklm40l�tkObGnGr�t*lGnrs*tk'pGknr*s*t�@�kB�s*y�n*s
bl.mnGpr�st*y?nAr�n?rs/zt*y*fflxs(<fGmflQnrsQ�l*n*s*t!dkfl�nrs+t*ya�b�fl*n�p*st&nGt�lE�pfr
?bfk*l�nQpLsty	Z�@0RblmQn�rs*xh*n*s&txx*y<�n�bGm*n*s*tWblGnst*yGnGs*y*t�x�km&sy�kGm	�b>f�.kQl�n*sGt*y�bfklGm]^ns*tw*xy!kGrst &w/yp*sn�fkGmr�sGy�l*s&tf�kGy�m*nsGt*yf�k*t�r�l*sp�k*n*s*t*yGmGn*t,bmGn�rs*t*y�k�sbxl*n*st
NxGk&tClf.klCmnpOst�wGybk*s*t#�y'5txx*p*sflr*s*t�xTlI�n�kGl&p^�r*s?ta�bf�hkl��mnGprst?wy?@*l#Ms�lGm
�r*sGt�nS!s*t*y�l*s+�t&kGm*n*p^s*tGy	W kflmGn*st�wflQn*p�}n�k*sxxflQn�r*s�k
�l*n*s	f@�bGk~l�n*stGw*nGs*t�x	flmn�pzrst*y�t�l�m*n��rs*tV�wflQn#Btk	Kt0@L2kl&m*n*�pr�#s*t?w*ns*t^x*n*srtxx�f*kGnGs@bfhklmnprst�wx�y.mGnsGt*y�k*n*s*t&l*n*s��tGl*r*n�r*s*t �hGnst&w*y�lr*s�np�s}t*w�lGns*t*yxb�hkl*m�n3!st^x*yflGns*t*y*k*s.t&lGnGr�b�n 	s��tGk*n*sV�yl*s	�t�n 	s*t
b=f�klmnp�rs=�tx*y�n�r�k*n*s*t*y�pGt�bGn*s*tGlOn*k�l+�m*sGtGp*sGtbGf*kGns/t*yklGtCl*s*t�bGf&klmnprstwxx�yGk&"mGn&pst*yGmGn*s'txxGsGyGkl&s�ttss*y�bGkflQp4�stGlsGl*xGl�rGfGr*sCtGyfm*sGt�krrn*s�tn*s*t�fGbGnQpstk�n	�ps�Yk*s@bfklmnprst*mGn*s*t
@bfkGlnprstwx?f�rl*s/y~bGf7�lr|(sGkm�n*st�xGk4s�x	�nGtxrs~t#p/zfk�lpt[r*s�tGs�y�l)�r�f?lGr*sn&pt	�r�Bl�n
�p�r*sflmn�s't3�n
@h�k/m'np�stGwy�mk\s	Xl*n*s't*k*lxr*sxxGrWtGf*sGtbf�k*lGmn*sGb4fkGlfrGs*kWlkn�st!dr*sbfklnptl�nQstkGn�s�l*y�kGm=9nPEn>�t@l�st*x&s�tGy,�smQl*st�k'�lr�k&sGy
@�bfk?mn��psrstM�wx�s�t*yGl�y
�kl7m5npr.sWtGy�n*y*l*s&txxy*sym*k^sftGy_�@*nGr}s*ty0t�xk*l*n@�r*s*t�y�lmGstxx*s�Gt�k*n*s*t�yr�mn)t�ks*yflGm*n*s�txxrGnGsGt5k~l&n*p*s�tGp*st<yk'lm*n*sQtr
wtzf�kGn*st�k
�s
fGk�lmJ�npstxt?�mk��ll@�skGnPcl�k��m�r@bfhklmnprstwxy
bklmGn7prBlstwGx�yGl=r�sGt�l�n*p*kLs*y*lcn*s�t�l�r�rGxG@b&"fGhklmnprst*wxy*r?sGt�y=Ol�#n*sGtxx#@bhklmn�p*rst.wx*y�lr?lmsfp�tlmnsr*s*tG@�kQn?s*y�n*yGmp*s|tGk�yn	Gk#lGnGp*s&txxGy?kGn�n*r*s@�kfl�n&stGr*t�rfGkGnGsãtGy~n*s*t	Gkfl�m5n*p*s*tGy	�b�fGk6lon*s+tGy&k*nr*s^t�m*s.x@bfhklmnrstx\�y�nr*l*s�tGlp�m8vrS!s*t�y�lln&s�txx�t&fk�m�npr*st,wx*yr�lGn�rs*�txx�bm*n*s*tv1n*s�xGy�b*nr*s*tfl�n*t�bn�st�x�s�tfr*sGy
b��kfl�n�pstxGyGk�lGx	Fbf�l�mGn*s��tGy	ffl*m*�nfr*s*tGy�nGr�bkGlns&tJym*n*stxxn*sWtt*n*s�x�m*n*s*t&s^txb*l&txxrt�bffl�m,n*st!kfl�n*s+t/y�m*n*stxxGy*f�nGr*s*t
�bkl�m�nrs^t*yl*mQsQt*n&s*t*yGm*w"�mGnGtn*s*lfr*sGbGklmnGpr�stxxy.kGtdn*st
UfGn=�tQn*sGt�r*s*ttr)kk&txlGn�s@bfhklmnprstwxy/lQnQk�l�sGtGl�n�r*s�tGxGm�nGsGtMmlGmGnstGwCxGxt*n*r*s^t
*@Gb-fkmnrsH�t�wxyxk*n*s�txx*nH�s�t-�x�b�n*stxx�ffr*s
Uf*s*tflGmGn"�s
Qb*knp�rGst�w.9xpKst�l*nr*s*txxGn�sGy!k"�l�mnrs*t*�s&sxx,b*n*s*txx�k�r|s
Chbf0hkl�m*n&prst�xl*s*t/y&f\x.�sxxs*y+stxx*fflGn*s*t�bGmGn*st�x�krxxk�tx��nmGnr*s*tGyn?n&txxGk&l*sGy	�f&kl�n*pGr*s�|t
Gf��lmnpst�xy�bn*stdl5�tklft*yJl*s�t^fflon*s*tb^f&kGl*m�n*stxx�y*fflQnGn�p
bfklmnp+stGwxxy*lfrt*s�y�l*rGtGbln�r*s�kGp[sGtk�n*pGt*k*n*sGtfl�m*sl*s�ys3)m	bf!�l$�mGnrstGk+l�lGnCs+tWp#�krsb�Uny�kG@ bfklkmnGprst�wxxylGn&txx*fQn*y�l*n*s&txxflY�st*y�k+s�t*lGmn*s&t�k�lGr*s*n*s�txx*k*n>r*s*t�xGy*bl*sGk*sxtGkl*sGtGxkF�n*pGr*s�b*nPp*sGtqK@bfhklmnprstwxy	G@5k*lGnr*sGtGyGk*stxx^ffl5n*s*t	klnrst�wxs�mGm�n*ykGm*n}r�s*tGy�lGn�b&k5n*s*t8�y�l*nQr*s*tk*s.w��r�n*s*lGsGtx@b�kmnrstxx*y*k*lGtn]p*st��kf*k�m*n'strns*kflQn0@f�k&mGs�k*n�s*tGy�kn*s�tGy�b^f�kl5n�r�s*txx*y�k*yY�k*s*yGf5�k?�nZ�r*stCxGk*n
�r�s*txx0hkflQnGstxx6�n*r*t*fQlGn*s*t@Cl*nGprGs_t�k*n�s*tGy
um�ns�t�xQnxsFb0�k'm�n�s&txx	fk7lmGnS%p�st�lQn*t*y9p�rfl'n*s�kfl*s�b�fkk*lnGpr*stWxyfl�st}s*xGkQmQn^sGyGnp*s�r*s�k�l�nCr*sGtGxGf�nGp*s&h*n�r&st�l*sQ @bfhklmnprstwxyyl*sk*sly�kf�kl5nrs�t�wGx�y�n	�f*k�n*prst�w=�y*n!}r*yGl{mGn*s*t�xtGnWr*k�l�nQrsGm&s&k�n
�bkQlnprN�stxx�k*nr*s*tGy�Rfflst�m*k�sGn�r*sfsG:t�ksGy*m*nGs*tGnQpstx*yfl8�n*t*npdr^sl{knQt
�mCt
�bkl�nrstxGy�lGn*s�k*s�t*yl^n*t!s*n*st�xGy*nr b�txxjNbf�m�n
rrs^t�bn*s*t�l*n*s*tklnrst*yQnGsGnst*y*n�s*t�l�2m5nr�stflQn*sGyflQnGr*s=�t�n�r*s*txx*y�bGk*cl*�nf.rLst*nQr*s*tGy@�bfklmsnp*stGy-�n�kGn*s*t/yGl*ns*t^lf*nfr*sGtlGx	�k*mGnkm*n+s*tfl*s&txx|p%mbfklmGnr�stGy&t�x�yl*sj�y�k&txx*y*sy�k�l*s*tGyGsQtGyG@Gk*nTs�tGxGn&r@*nsldkt4f�@bfhklmnprstwxy4�k�lGnlr*st.xd~n*sGklmGn*s&tkGn*s*t*yGl*mGs�tGybfGkl/mnrstxxGy	rl?s�t�l*t*m�n{rsGt*yGn+sGt,�x�yGnGr^s�txx*yGk*st*n`�r*s*t�w�knGpstGy&k*sGtflGn*tb*n�s*tGy�k{lnrs4t&t�x�b*kxm*nst�x�m*n*s*tGy*nzr*sGtGklGnGprGs*t*s�t�yptbRr*f5n*sLtGy
bfklmnp5�r�stwyl�r~l*s&l*p*sk*nGp*sCt*y0�tG@Gn%mpflGnGsGt�pGt
�bGkrl=�mGnr*sGtGy*k*mxmGn*swF�n*@CabfhklWamnrs!�tx;_y?l�r*sGt/yGkO�tl*stxx&f�kGmGns/zt*yfl'n*s*txx	U�b*kfl�n*r+sGt6x	fGlGm�nrs7�tx*y�k*sGt/y*n��rGktr*sT�l*sGy�nxl?nGr�t*x�b�fflmnGp*sttb�nCs*t+dwxxGp�r@�bfklWmn��prst��w*x*y�l*slr*s/s*tlm�n7�r&s&txx�nt*y,1n�fkm&n*prstxx�y,b�k�ns�txxGy*n*s*t�n+s_t>b�nrs*tQn�t*fQk*nr�s*t�k�nGst*xy�bn*s*tfl+s�tp9m
fkGm*nzrstxGy�n*s�txx(kr]txx�b�f5On�r*s*tGf*s�txx�bGntxx�f�nfr*s*t	*le�mnxpstxydl\sGk*n6r*s*t��n�r*sV�t
flmK�nGp��rs+txx	xynt*cl*s�k*n*s*t@bfhklmnprstwxy>f/lQn*sGyklnrst�yl*s�m~ns+tx*ymGntGlGsGk�ntxm*t�wr*s*t
@bkl�mGnr�rstGwx\�y�nl�slGn*sGt�m*s*yGk�nGprs+t�y�bGl*n*s6t	ffl5Onxrs*t�w*y+�m*t�w�f�n*k*l*st�rGsbfhklWmn?prstGwx*y^l*t*rGxfp*s�l$�mZtn?r�stxxy*kGs�t*nfr*s*t�y*nE�s��f*kflmGnw�sGtt�%rGfmlGm*n*s*tGy*l?p*sBtFb
�fQkfl5nrs*t;_xGy�k�lGsGtGyn�f9l*sbGfkmnGpyqrs��tQw*yralGsGtGy*sGtxxGy�n�sG@lf�lGsflGn*s*tWw@bf�hGklxmnp(�rstw*yS`plkn*s�t�ns*t*y�l�n�r*s*t*k�n^s*t*y�@flGs=�tl*nr*st!n*s*t�k*n*p*s*t?l*s~t*f�Pk*l*mrsGt�k*sGy*m*n*sGtxx*k�l*s
�@bklmn�pfrstx*y*l?nGrGt	�b=fl�m'nstxxflGmrs
txx*y*n�r*s*t*m*sGt*yGlGn*r�bfl*sbfklmnprst�w��x��ysGttn��x
'bkGlm?nrs�wxxrr&s�b*n*s
�t�x,bGl5n*s*t*l*n*st�s(�t=klmnrs&t�xt*n�r*s*t%mp*k*stD�kNn�r*s&b?np�sxxSt-�xl}sft�k*n�pbst-�x,b*f*n�r*s*tk)�m*nPerstxxr4f�n&txx�b�f�bGl5n*s*txx*k+st�oxfln*s*tGstll�nrs�tGwn*s*t�t8�n*s*txx�bWf*n*s*txxWn�xWnt{r*s�Of(6l*nfrGs*t�hlGnr|(sCtGyt*l:/m�ncps*t:Xtb
.fkl&nrst.wx*y�k*lGk�lGn*skGn*sGt*y�s&txx�f�kGm*n*s�tGy	Gk*l*nfr.Os*txx=yGpCtV8lGm�n1�s*ybfklmn{prsty*l�nW@*l*s&txxGm�n�s*t*yCkflQn*s*y�bGst�n*t*n*stGyQp	�r
�b>f�kGl*m�nrs*tw�xGy�k*lGn�@k�]l*slGk*n�s
?�bfklmnprs�txGyl*s�nr*s*yGf*lnr*s*kfls�k*n*s*t*y&kGln*s*sGtWxflGmnGsGtnhr*s/f�l�s&t�xGykm*np*s*t�w�nysGtn*s*s*t�x�p�snl*s�k
�s*y�b&ly?nGr*s*t	�3klmnr�st*y�krGt@��m*n�ysn*sQtGstr*k*l�m^sGymkl/m'npsCtw*x?ylG@�n?n*s*y	X@xs5�t&lxm@bfklmnprstxwxy	Gkl�mn�rs�t&y�f&k�m*n*s+t�fctGl�m*n*s*t
9NfklmnrGstwcrhxtxx{k&txx�n*s*t�xflQn*s��t�bns*txcsttflQn*rGl*n*s*t�@Gbfklmnprstxx*y�Ur*s�m*nUMr*s*t	�"b4f�m*nr?s&txxGn�txxbfGnp]
s�t_TbtQl�nGr*s*t?s	�bk7mGnst�xGytxx�f*n*r*s�t��l*n*s�txxb*ffln*s�t�n^stxx�m*n*s�tGy�rbkmnpGr��st�x/y�bL�l*n*s*t�m�n*s&txx%mbn�b�ntxx*f�nfr*s*ttcl�ntxx��f*sfl5ns%�t�b^f�n*st-�x�ffl�n*s�t*f�lnGpsrsGtflGs�t�b�fklnr*st�wxy�b�m*n*s&txxU�k*yflrs&txx	Gf�kfl'nr*s*tGy�lQn*s*ycn�l
blmnp�?stxxy_k@�lr*stبws�m*n*t�m*s*t/yflQn@rrs�txx*y�b�nflGn*stxxcl*n*s*t�w*n�r*s*t
*@bfhkX�l"�mnfrstx*k�lkl!m�nrs�t��txx�t�xn�xtb�m*n�xr@�tk�jlmpGr�h�m*n*s*t,bs�rfl�s�t	�n*sdtGy	kflmnr*s*tGy�r�nr�tبkGlrGt*kdl*ns*ttn*s6t
�h�kl*mnrstx*k�mns*tjx�y*n~}r*s*t�m*nGr*s�t�fst�b*nr*s*txx�mNln*s�t	!bf6k'np&stxxbGl�n*s*txn�l*n*shtxxfl'n*s�tGy	.]b^fGl�m�n&s�t�x�b�f�k�n}s^t6|xO�n*s*t
b�fkMmlnps&t�yl*n*s*t�n*st*yt�f*n*s*tck*s_t*stxx>b^f*n*s*tflQnpGtk��t�fhmGn*st�xy�nb
lb&m*n�r*s*t�l
bfklmnprst/xyl'n�s*trszt!k�lnB�s*t/ytk*n^s�tlm*nGt*st�x�Wt	�bCk5nr^sP9txx*yn,p]
sGl*s�tGy	fkfl*nstxGy*k@ltxx�ffl�n?sflGn*s*tGy�bGn*s*tGn�r*s*tbk!�ns?�txx�yt-�x�b+�f*n7r*s*t�xtxx�b�f�n*s^t�f�n*s��t	4fGh*kflQnp*st�yn�fxr*s�bCnlGnr*s�txx/f�kQsy�f*s�b�kn�txx�l
.m*n*s*t�kln*r*sK�bGtflxr�rbfhklmnprst�wxyGk�l0#m&sGt�l�s&txxxk&t	hGkGm�n�rstxx�at4fGn*s*t�b�f�k*nfrs�tU�s�bhkfln&Pp7r�stxxy�k*n*s*tGy�k*nGsGtGfGl�nxr*s�tGy�k�s
�wG@Gkns*t�xdbb�nstxxGm�t*y^fflQn*s*m*s't�bhk*l"�m�n*pfrGs�txx*lGm�hfl*sGl&nGr�@bfhk*lmnp�rs&txGy{l*st�xl?nr��@*ttyr�lGn*ttrknWb�nxs�txxnQr*sGt&tGk�lzm*pW]s�tl*sGt	�k*t*n*stxxy*x�ykl?;l׀bE�lGn*sGt
�b�h*l4�m�n*st=�xGy b*kGl*n*s*txxGkxlmQn*syb�mGnGp*s^t�b�fl0m*nsnX�k�lGmO@Gbfhkl{mnprst*wx?lGnOs*t*xGlmnns*t*y0hf�xnsGt*yG@lfm*san��fkGn�sts�l*ns*t*yG@Gb&l*sy;�@;�f;�n?stlfwlf[nn*s*@Gs*yGl>�m*n*st*n*p�rs*t*y	lmGnrs*t*xGy*nsSt*y+nnGl*ns*t*ybبfklmnprstw�xyGlGr*sGtGkal�n	�r*skGnr*sGt*yy�f�nGtnGp�t*k^sGy�	bfklmp%�rstxx'b'lWr�lmr*sX�p�fs�tk*y�ksGy*k�n*k�Slrnn�fnWpt*stWr?sflr*sGyEwk*s*kGm#r�nGp*s*tGkmn*sGy,et^k�sft*y)kflWen*stGnsk#Bpm�n*s�wyY�sGypxmGrGt�x�f�kGn*s
bfCklmnprstGx?y!Ik*l*sGn*s��t4�n*spn*kGm�s�km*ns4�t*@�k}s&t�tfk�lGnO�rs*t!kGs*t/y�l7�r]s
skCtCln�s*t�ksGtGy*n�r*s*t@�bfklmnprt*r��y*kn�rk9�x=n�@rkrs�t�f*st
�r��l*npr�tGxQk�sPkGf�nIzp��r�f*k*s@bfhklmnprstwxyb/fhH�k��lxmRnprst�wGy?n�tB�lA4rxsnrs*tfl*s�txpt]n�1r*trGn*swGl*n*s �fklm�n�prstGxGmGn|(s�kGnrs+t*yGl]
s)=f�hGk�n�t-�xflQnQp+t*m*n*s
D1bfkl�nprstGw*x*y�kGm*s*t/y�n*sGt*kn�rsBt*yak*sGt�rGm�n*s*tkGl^s+t&t
x�lGns*t
GbGf4�kGlbmGnGpGsGtbfhklmnprstwxyGkln�sGtQnr*szt*yE�tGxlGrGsGxQn*sGt*yl*mGsGk0s�m*s*tGfGkns�tGy*kGstfl�sGmGn*sGtxxnsGtWl*s?t�x0h�k�ulxmGnpxrst�w*yYlOlGm*sGyfl*n�s*tGy�lGn�p�r�sCt	GfGkCm%�np^s*tGya�b�f*l�mn5ps�%t>�w6|x*y*s&tc�x
�b�fklmGnGprs
Ht-�xGy�p*t?hQlrsGlzn�s*tGy&k�m*sfln&p*sGt*y�l*nfr�s*tGm�n*s�w@bfhk*lmnprstwxyGmQns�t*y	�fhl~n?�rGsGtGy?f�n*s+t*y
=�bhkl�mnrss�t7`w^x/y��m�nP�s�nxxGn*s*tGw*yt�mGn�sGt*k*n*blGsO�tCm*s@�b�f�sklmn?prstGw.y*k��m*yfl�n*s*tk*ns*tfl?tGmGn*s�txxGm'n�stGn*sV�w�l*s*b?k*lnst?xGk*n?r^s�t�b*lGn�t*n�r*s.bf�hk*lQnrstGxGy?mGn*s�n*r*s�b3Dl*s�tGyflnr*s?wGn*s�xflGns*tGyGm�t	k|lGn,pr*stGws�n*k�p�\sr^sGl<�nsGt#wGy?fflQn*s	f5k&l^mnp*stGlGt�hGn*s�kxr�tb�knr*sGtGyl?x��k*si	k
bf�hklmnrstwGxxl*r�slQm?nGr 	s?p*sGwQl*m�stxx*nJr*s*tGfQnrstyQwQn*sGt*xnGs
�txxU�@Gm�ns*t*x?f*np*s*t�l?sn*s*tGyxr*lfrGtG@*l�nstGxxy=sxm9�n�p/s*t�w�b�n*s*tG@bfhk1:lnprs&t�w*xGyl*sGt�y*stGn*s�t*k*mGlftlm*n.rOs*tt*r*s*tp5�s7f�hkl�sGt*x�nxr*sGkQn?s*y	&lGm*nsTrs*t*x*y�n*f�kGl*n*sGtGy@bf0hklm5On�prst&wxK/y*k�rGkGl*sGt?l�r/�flm5nprsGt#w&x*yfl/m*nGs*txmGt�y�kGrOAf*sGtGw*y*k�n��r*st*y�kGn^sGt
,b*k*lxm*n*s&txxGyb��fkl�Gmnp,sCtyGklGrGnt�xGn*s�t*y*sGtxxGn�r*sbf�hklmnprs�twx~yGk�l�n~r�klQn*sGw*yGm�nxrGs
Htxx�ns�txx*yGm*n*s�t&l�nGr*st0Rrfl*n*s*t?xGnGp�r*s�kl&m�ns*t*y�k*yfl^mGn*s*tfahkBQl*s}twG@?pG@*nGt�l*pGtGl�n�sGtG@�bkln*prsP�t�QwGyGr*sGtGn*s.tGx*yQl*n�r*sGt*yrs*x*y�n*s*t�wbfhklmn�p[�rstwҨxy	rlQt*y,b!kSr*s*t/yGm?rsxm*n*s*t>Xl�n�r*s&txx�k�n�s+t*y*l�n�s*t�xGkfl�mstGh*s�bGn*s*t&y*f*lmGn^s+tl�t*y�b1k*lpr*sGyGm*n=�@�k	�l*s�n*s�w@bfklmnprstx�y��m�lK�nxt!k*lr*s*t/y^s&txx	'@l�mnrP�stGy?r*s��t�xst�ntrkP9t�x+s&k�n*s*t*ymfm*sGk�nY�s�txxCyGlGn*t�@0h=�k*l*n*s+t�krs*t�wc�x*y�ns*t*nt��n�k�l*s*tfl�nRp|#tbf �klmn>prsBt�wxxGyGl�n�r�s�Blbfl�ns+tGyl�wtG@�ln*s�sGt�h�m�sGtGlGm*n*s*t8�yn7r�ss+�l@bfhklmnprstwxy*sQw	GklGm�nr*stGyGkD�n*k*l*sGtGyxlGn�rGtGxxfGlGnGsGtCfGkl0#mnGpr�sCt�wr*st*ykr*yfGkpKsr��nfGm*n&sQk*sGt*y	�bO�fkl�ns+t*y/n*s*tfl*mGn*sGtxx?@&kCl�gn*sGtbkfl5mGnstGkWn*s*lGr*s�blf*n*sGt*y�fGkGlrxs*tfs�txx�s
Gb
Uf�lGmnGrs*tGy�h�kJr*sfl*n^ds*t*fklmnpstw*y*nxr*s*t�b*s*yG@*kGn*s*m*s�t?rGtGm0nGtGfGkGnsQtGy0n�@Gl	�bGkGl�n&pGr	�s*t*@CkGlGm�nGr*st*w&xs�rGk0nGp
CsGt*k*s*t�b=kGlGn*s^t�xb�fPhhklmn��prstwxxy^l�nxsGtal
�r�n�skGn�lGn*s	Gk*l*n*pr*st�wn`�lGn*sGkGm*sGy&ft�n�rGb�k*n*s*tGw	�yxmGt5swfx&k*l*n�r*s*t@bfhklmnprstwxylGmJ�n*sGt
xh}�klnr!}s&tGx*yG@*s*yGkGsGt*k&l*s
�flnr�st?wGx�y
�b�f?h5nrsGt�w*y*k�sGy.s*tGx�l�n*s*t*y�flGmns*t*y�s*y*s�t�x<�b*s*tGh&nbfhklmnprst�wF�x*y5kJlGnzrGt*lB�s�f~l�n*sGx�lGn*s�n�s:wt*y�p&t
�fmhlxn0RprGsGt�x�f*y�n�rGslGm�n*s*tGy	
�hxk&m*n}Kp*s*t*yGmGnGr*sbfhklmnrstw|�xyxlGylWmGn!Ir*sGtGx*f*k*s*b�f	.@�bl5n5�p�s*t*yW@*n�dss@*s*yxks�y?f�lkfls*k�n*s*t*s[�tfc�kGlnpGs'tl&m�yrY�k��lfl�n�r*sty*k+n�rst.kQtb*f�h.klmnA2pr[�s�t�xGyG@xr*t�kX�n0ns]n0h*nr}sP9tGkGn�r*s*t?s*tb*sx	�n1*l��@bfkl�mnprst�x�y�gl�m�p�r*s@l�r�s*l*n*sGy=�mGn^s*y*kfl��s�t�x?yxkxl��nr*s*t��f�k*ns*t*y.wpzkn�p*sF�ty�sns@ikrkGl�tbklmn�pstwxyGn7r�ySbGfxkl5nr�sGtCx*yGkGn�s*y�n*sGt*kGnrs*tGngCyCkfl�m*sGt*flm5nprst�w*yr[�s�x�k'l�rk+l~nrs*tRyGhGl*sk*ns*txGy�p
CrW�k�y!7@GmsGt*y&kGrGlSr	�nbf7hklmnrstwx[�yGkB�l*n�r*sGt*f�l�r�t.bGl�p*s�t0f*knrTfst*y�s�p*sGk?hnGt0h*nGs=�t*f&kGlE�n*sGt/k?lGn*s5tGklGn*p�r*sGktsGk�l�n*sfl[�n*pCtG@bfhklmnpstw&xy	�k-lGm	�nr�sGt*y&l*n�p*s�tO�l*m*nr*st'"f&p*s�fQlr*s*ns*tb*n*s�Gtxx�kGns*t*y	�fkflGmnpstWn*s�yQnfs�l*n*s*t�f�mkGnsGt,yflQnr*sfGm*kGy�sft2�@bk�lms4�l�bGkl�nr*slf&pt6cr*s*str�t=�nr*st.x�kxr�sGy<�b.kɫmGn*stxGflmnGp*sk�k*ys*s�tGn�s}tnGxst�bflGn�rs*tGyGrGt^xObGlPEps9�ln�s�t7@bks�l3!m5n[�pst?wGyGkGlGtGkalGtk*t
��f�klT n�pxrsCtGyi	s*y-m*n*s*tbf=hklmnprsCtw*xGy�k*lrGt�nGtGl�rsGkflxmnr*s�t*@Gk*n*s*tGf?s?fEk�n.Os*t*y�p8s	b�kflGn#r�Bs*tGy�kWr�r*t�kGm&CnGs*t*y5�klGm*nGp*st�f*s?fGp*s^tGfGk*l<�n�s*t
bGf�lxm5nprsGtG@*lr�ffCklxmnrs&tw�yn�kGmGn*s*y&k*sftGyy�n*sxmxty�flGmGn�sCk*y@bfGhklmnprst&wx&y>f*s\bGk�n*r8s*t/y*lt
�x
�h*kGlGmnstx*yh	�p*s�tl*s*tCfGnr	�sn�bwwr��b�f�hkn&p*rpKstwGy	�n*s*t0x*k*p*sGtGn�sGt*n?s*t*x
G@�bGh�k�ln&rs8yflzr*sGt.k*tk�nstxb�lGns}�t*x�r*mCt#h*sk*m*n*s�b�f*n*s*t
Gbxf�k�l*mn�rs#wk/zt*y�bl�f	*fGk	�l�mGnxr*stGnzrsGt*y	bGk&le�mGr�Bs*t��x*s�yGf�m*ntGns*txm�w�
�����.	
�B�G������������s�Us�\E��D+���_�;�����	�P�
��#�c/10�������K��J������������������	§�§��ϯ�o������ϱ�ϴ�϶�ϲ�ϳ�?x§�§�
§�
§�
§�
§�	§�	§�§�§��?y§§�§�§�§�§�§�§�§�§��������ϰ�o��F��ʒ����¨����������������������ϗ�Ϙ�ϖ������<����?�@�C�=�A�B��������§����'�����:����������������ϒ1�������������������������0�ϓ����������������������������������ϔ�)������������§�����������������,�-�(������f�׉����������������������������������������������Ϭ�����������������Ͻ§|�Ͽ���Ͼ§}§�§�§�§�§~���Ϡ�2�1������������ϝ�Ϝ�3�4�����@����]�ϡ�Ϣ������������5�8���������������	�����������������������������C�������������������)��#"����K�η������$��%�� ���ـ�Ϸ�ϸ�"����$�%�#����t§�§v6§y§w§z§{�ϼ�9†@�:§p§q§s§t§n§o©w§�§���)��*¨�¨���,��-¨��G�����(��"��#��������/����������L47���/��'������V�yu}�mž�ž�O�{P�����������ž�ž�ž�ž�ž�ž�ž�ž� 0 ; = /U�$ƒ� 5�yƒ� 3 6 7��������������������QQ�ۊ:�������!ŸŸ	Ÿ
ŸŸŸŸ
ŸŸŸ Ÿ!ŸŸ"Ÿ#Ÿ$Ÿ
ŸŸ�Ÿ��Ÿ!Ÿ#��ŸŸŸ���¤������������������#� ����RP�ڊ:����h���T�%������&��'��(�q��q��q��q��q���i��u�1Ÿ`ŸaŸcŸdŸeŸgŸB$ŸNŸG
ŸHŸIŸOŸQŸEž�s
Ÿ:Ÿ@ŸAž�sŸ8ŸUŸVŸ;Ÿ=Ÿ>Ÿ<�4V����b��vŸhŸjŸiW�������0�����������g��y�g�ž�ž������3��[ž
�t�+�-�,Ÿ1�'Ÿ2ŸWŸ^Ÿ_ŸZŸYŸXŸ[Ÿ\��@ž�r�%���P�W�X�("��\���)
%��U���\�]�_�`�S�Q�8��t��/�X�6�y|ž��c�d�e�h�g�f�i�j�:��.�X�6�y|�C�~����g��y��$�څ����À�����q����³	ŸpŸqŸrŸt�<�?�>�=�@�AÀ�À�À�À�Ào�E�J�F�G�H�I�t�D�G���g��y���ÀxÀyÀw�����Àq
À{ÀrÀs���4�f��Y��{^_]\��Z�(��b���p4����À�À��������&K�&L����(�g��������������������������g�������r�q�s�t�����q�l�m�n�r�����
���������������l�m�����&4�y���&5�y����������������������(�g�����������������%�������������n�o���������܁��+��������������M6�����z'
���g�	�yu*
z�h������*�+���"�#�$�%�(� ��&Ÿ�Ÿ�Ÿ�Ÿ�Ÿ���Ÿ�Ÿ�����Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ���������Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ����������������Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ���#���Ÿ����
�����
�Ÿ���efs��#�	�z4�i���Ÿ}����h�y����œ�Ÿ��œ���œ��������������������Ÿ�Ÿ������0�1�2�-�.i#�B���1�r�zzŸ�Ÿ�Ÿ�Ÿ�Ÿ����������d"���C“��Ÿ�Ÿ��u�:�;�<�?�3��8�C�D�F�G�6>T�xpŸ�Ÿ��4�Ÿ�Ÿ��@�A�H��[�    �\�R��]�_�I��Q�J��K�L�N�S��T��U��V��W��X� 
 Ÿ�Ÿ�Ÿ�Ÿ��d�e�f�h�j���D“���n�m�pŸ�Ÿ�Ÿ�Ÿ�Ÿ��r�s�tž�ž����Ÿ�Ÿ����t4O)�
�$����d���g��y�A��
���������x�����������������¥)����¥+¥��&;��������������v�w�|Vy�$�#��z��� 
�   ��'�%-�y��?���žԂ:ž� �����I�S�J�K�T�U�V�h�i�X�Y�[�\Ÿ    ! #ž�ž�ž��]	‚f�L
�dž��`ƒ�ž�ž��_‚i�J�^ƒ��aƒ��bƒ�ŸŸzPO6��#��<��'����A�'��
 ' ( *��ƒ� ,upz�#£Yž�ž�k��=pqo���/�{�|�}nlm�������Xž���������������W����������������ž������1*.2����O5��i2�Tv�n��_�@�7����(��¡�ª�¤�¤�¤�¤�¤�¤�¤�¤�¤�­�­�­�¡�­�­�­�­�­�­�­�ª�¡�¡���NJ��z+««««�«««««�
«««(«�¢"�	�
�« «¡x��«&�«««	ª�o«$�:�;�Ѝ��~(¡��q
««-«.«/«,¡��p
«1����oh®A®@¬
��є¬��¬	��ѓ¬
	��¬¬¬­�­�¬¬®2����¬����#��8���������������������¬¬¬®®¬
¬¬¬I¬?®®®®®®¬C¬D¬@¬A¬:¬<¬;¡Ër¬8¬6¡ċs¡�¡�¡�¬K¬M¬L¬N¬>�Ѫ��닱¬Q�ѫ�ڜ¬P¬W¬X��n9��a���n�݆��«�«�«�«�¬j­«T«Y«W«U«4�:����«S��ѣ�ِ)1��«]�������������Ѥ�ٸ«\¡r��/«h«y«z«{«~«}«|«p«s«t«x«r«q«u«v«d«j«k«l«o«i«n���u���j�pw««�«�«�����¬¬"¬!¬ ¬'���3i«�«�«�����������«6«7«8«;«:«9¬,¬2¬3«@«��ѧ�ډ�Ѩ¬-ª��s
¬+¬*¬)ª�«�«�«�«�«�«�«�¬/�H�'��x�"���J��P�M����������N¡�«C«D«B�������
������T��:��O�$����a��&����c����b����%����������'�(��������^���«a�����
������S����������M��������������������������Y��.��?����� ����V��-�!�"«G«H«I���¬g���¬f���W���s�����m���?	�U��z�$�U���ނ���
��J�-���
���
������+��^�������Ѳt¬���%��$ª����q�¬�������������������q��q��T£<�Z�[�V�\�U�W�X�q��q������|�zg}�tª����]�=����ג�؝�^�����`�����}�a�b�������¬s¬v¬t
¬u����������������������?��|$�T������
����I�,¡~¡���­��Ѭ�Ѯ�ѯ�ѭ���������������5[�[�$����*���r����Q��"������9������o����V���®J�6����*
��)��싉����U�S�7����拌��¬��:�����1������ �������;�����
��(�������ѳB�ϥ����&��i��$��j�Ѵ�����A¥�J��l���¬��Ѷ�������������R��o�������S��pª��˺���˼�˾�˽�˻���K¥¡���|��}����(�Ё�Ђ¬�¬�¬��Ѐ��(�I�E�G�F¬�¬�¬�¬�ª����B£j�C¬��=Z��.Q��,���G��Fe�k �P�K�cg�T�S�>Hª�ª�¡�¡��?���m��n��o�?�������������^���������.��/��0��1��2��4����6��7��:��>��?��=��<��;��C��B���C�@\������>�<��z�Ї�Ј��u�����vª�ª��.�!Q��,�C�Q��#"X$�U��v�O�K�cO�S
�J����J¡���O��P¡�¡�¡�¡��І§V�1����р�с��)�ٕ��*��,��L��M�0��R~�U��{#
�/���������N��ª���������#���b�х�ч�щ�ц�$�%�� �!�"���bh���ѐ�ё�ђ�ѓ�E��I����F¬��>����������
�ъ����ї�ы��ѕ�?�@ª��Њ�Ћ¬�¡��=¬�¬�¬�¡�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬�¬���Q­¢��¢��¢��¢��¬��C¬�¬�¬�¬�¬�¬�¬�¬�
¬���R
��Y��Z­­	­­
­¬�­��U��T	�۟¬�¬�¬���S®3��V��W¬�
��…¬�¡��H�i®7®8®6¬�ª��¡�¡�¬�¬�¬�¬�¬�¬�¡�¬��-F	�6�A��b���L��ª�'ª�&ª�'ª�­������G��U���N��E��/��������„s����������¡|��ª�����ƒ�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�«�¬«�¬«�«�«�«��w��ƒ��7�|¡35�}ª�5ª�7�x¡l�8ª�7�z£��{£�žY���@ª�­,žZ���>­*������/ª�«�«�«�«�ª���«�������1ª�«�«��W����~}�c!�ڃv"«�¬b�њ¬Yª�Dª�ª�ª�ª�ª�ª�­/���~}�c!�p¬c¬d�*V��H¬Z¬a¬\¬]¬_¬`¬[�+�����������	�,U��E��­&��­­'¬�¬�¬��sC�0�8	+���o�b�K�܄_����­������������'†��*�+�k0����[����«�«�«�«�«�«��p�q��.�o�l�m�~!�^�[��J���/�8��:���H��«�«���•��6��I�ª������ĕ���!��G�����’#�E�������ћ�ќª�ª�ª�ª�������~ª�ª�ª�ª�ª�ª�ª�� ­­�k
��M�m�k�����������������������u��X�������l
�)�k��t��S�������1"48����I"��ik�U�	�
�_���B	
"�Q�7��
�Ē������ ­�­�­�­�­��b����L���L���J���L­q­r¡�¡���­<¡���­L­3­4­m­n­o­p­5��®+­t�\§\¡�¡�������­6.­d­e­h­g­i­j­8ª�­7§]¡�¡�����o��/�]*���ªă�ª���ª�ª�����������Y���ª�¡y����Y­�­�­�9­�:­�­�­�­�­�­�¢¢­�­�­�­w­z­y­x­u­v«K¡�������������������o����
�J'¡�¡�¡�¡�­�­l�/A��.t�fo�{��L7­�­�­�-¡�����­�¡�����­�­�­�­�­�­�¢�V­�­�­�­�­�­�­�­�­�­�������������­�­�­�­�¡���b­:­�­�­�­��0A�z��L7¢�t­�­�­�¢�x­�­�­�¡�¡��c5*�ڎ�3%����D,$����2�m��c~�R�-��	g����«������e��N��X�d�f�Q��¡���«�«�«�«�«�«��2�3���¤�#����­�����«�«�«�«�­�­�­�­�®/®0¢�v����ª�ª�ª�ª�������������A��­�����������¢�����i�D��V����`���F��¤���g�/#������E��	������� �����B�������¢$����������7«���«�
�.¡z�=����¡{�=«�«�¢���������˷���8�˸¡����4
«���„2«�­�«�¡�¡��j������5<��A���2�ؖ����Ӄ������¡�«���«�®>�h��A��U��������f«���­���†A��/��.���������������­�­���†2®® ®®������®
®®
®®®®����†1��®®®®
®���=�v����\«L«P«M«N¡�¡�¡�¡�¡�¡�¡�žv�n�_H��C����^����љ�`����������&žy¡�¡�¢�B¢�E¢�C¢�B���=�}�k�6���z�A¡�p¡��B¡�­O­N¡�¡��'�� �?��W“��
�X�Y¢H¢Jž_��¢I� �^�_¢Q��¢O¢P¢U�˜�˞�[“���lž\F�“��
�]�������Թ���V��������О4�p$�>%|�.�<�с�Vw����]�3OqI
��
��
H����E��6�Xb4F��?�@&,�b+�-�x:2
�Wv�<��J���&��'���•������[�G�̬�=�̨�̩�̪�����&U�&V¢'¢(��•���.��3¢�¢������e�\��?��<���͍��3��5��7��4��8��;��:��9��<��=��'��,��(��)��-��.��/��1��0��-��.��/¢�¢���0��1��=���������d�\‚y�������������'��'������¿������¿�¢�¢���@��A���	�T�c���*��+��������.������������������5��6��7��8��ԄT�c��������������������������4H+�}���WH�w��h�E���� ¢7¢8����������������������q��q��q��W�X�Y¢,�Ͻ�q�¢-���¢�¢�¢�¢��/�������6��7��8�1�����:��;��
���������2����>�r�r���gM�5���:�Q�Y�U�R�S�V�W�6�7	�B�A�M
�J�H
�F	�O�@�<�=������n�-�����q����y���Q��R���y�������������������������0H�Ս�
	u�ZD�w��h�D���� ] ^�;�̻�<�€�>�̸
������+�� ��̳�̴�Z�ԁ�������x���u�l�dR
�� l�^����
�e�f�b�c m�Z�a�]�\�[�^�_��������&��'��(��)���������������[�E����w�����l�dS	 f g i j�\œ� a����������������������� Z [����������������������d��¥"�q���*��,��.����������"�x邸������������������������~������k����������l��������������������������������[��T��2���
�Y��Q��2����Z�����������Z���Y�v�w�y������|�z�k�n�o�l�q�r�j�t�u���������������� ��¢�¢��_�g�h�b�c�a�`�d�e��
����	r��y���h����q��N����ԄI�U�Q����a�1�6�����ٮ�������'��'��'�������������������������¦�¦���D��V[�����������&��&��&��&��&���J��5�q��q��&��&��&��&���E���M��.��¢D¢E������“��,�����&������������&�žO�,�P�����������&��Q������F�C��G��H�B��I�@�'��'��'��'���L�u��U
��R��P��W��M
��N
¦���A��C��B��������� � ���b��c���'��'��'��'��'��'��'��'��'��'��'��'��'������1��y�����������
�V�?���H�U�Q��*�w��!`�ٮ¦�¦���›�¦�¦�¦����1ˆz����?��
�5��u�d�g��}˃7
����K��L���
›�
����������›�����������¦�¦�¦�¦�¦��@�vs�A�vs�������}���
���j�����#������������JÀ����
���3�
$�K)���������
9�K)����������������������y���	�����i���
���H������¦w¦x¢�¢�¢�¦�¦��'��'����������p%�dT�"������������������������J��������������� p q r��š���š����������������
�p�dT� ������������h����	��
 v x y w � �������XK�����R�������8�'���������=�1�2�3�������������������k�������������8���u#�7���������x�y�w�X�v���z�{��:˜�������������4��j��!�����������6�7�}���������~	������̘��O���������������u��v���/�������Ƈ?���>���+����������ҁ��8���<�@�{2K-��J���9�:�;�<�=�>�?�A�B�q��r���<„qE��{ ��F•B�8�g˜R�i�j�m�l�h�.�/�0�	�
�#���%�&�'�(�$��
���������Ɂ���/�
waI�����W�9��p��Y�Yt�y:�)����������������)��*�+�ꇪ�@��������������C��
��������$����������1�����L�M���������D�E�-������o���������Ƃ%������������¢<�#�#�ȇ���������������������W��Y��X��"�7������#���-�:!����T

g
���ՂB��H����1
����
	���`���S�>�[
�@N�Q�_�4��G'���6
�<�������R0����Ա�Բ�ׯ����ҕ�Җ�җ�Ҙ����q��r��s��t��u��v®z®{�ױ�ײ�׳®��ח�ט�ך�כ�װ����Ԗ�ԗ�ԙ�Ԛ��?��@��q�ԍ�Ԏ���������������������®���v��d��t��r��®�®�®�®�����%����������������!��"������*��2��-��.��,��+��/��0����������?��D��B��@��<��=��������������	��
�����������B�����:�&��&��&��&��C�����7��4��5�Ӌ��.�қ�Ҟ�ҝ�Ҝ�ҟ�Ҡ��2��5��4��3��6���ҙ�Қ���������������H��g��j��n��i��h��k��l��%��'��(��*��&��,��-��.��/��0��1�ԃ���i��� ������!��#��"��7	��>��:��A��9��8��;��<��4��5��~���Ԁ��7��8�=�Ԃ��F��I��J��K��L��M�Ӎ�ӎ�ӑ��I��K��J��z��M��N��P��^��>��g��>��h��c��>��]��_��b	��>��_��@��`��a��d��>��e��=��`��c��d��b��a��e��f�Ӄ����i��~���ӂ��u��v��w��z�ӊ�0�׺��{	/��}�Ӆ����R��S��U��V��I�T
����ӛ�Ӝ�Ӯ�ӯ�Ӽ�ӽ�Ӿ��Y��N�W��O��P��Z��\�ӵ�Ӷ�Ӵ��L�E	����5��M��J�V��V��W��O��P��S�7�ӧ�Ө��T�3��q��r���M���m®x�T�U�V�W�'��'���V��������
��������	���������S�����M
���k®y��l��R����i�j��u�8�׭�צ�ק�f�g��s�9�����p�<��q��m�<��n�;��g�4�%��9������h�jX��o¦�¦��=X�F��6��3��y�҅�G��8�j��=[��~��z��{�҆�:����������������������Ҋ������������҇�8�҈�������������������5�$��9������B¦��Z�[�\����]����t�̂S�<�o��n�	�p�o�q®�®��ԅ�Ԍ�Ԉ�ԇ�Ԇ�ԉ�Ԋ���G�l���k%�o������ڤ��������������������������������������������������������«���
���������������s®�®����Y������L������������������������
��	���������?���M��������������N��O��*��+�՚�՛
�բ�գ�՞�ե�՝�՜�՟�ՠ��1W�Ո�Ս�Ջ�Ԑ���Ւ�ԑ��Օ�Ք�Տ�Ր������������������������.����������������զ�է�ը�ժ��,��	�մ�՗(�՘�ԓ�ձ
�ծ	�լ�ո�յ�ն���u���t��D��I��G��E������������������������������������t������i���i���h���i���s���r���t��m�����p��5���������q�����o�����r����;��<���������	�������������Հ��U��W��X��Y��Z��[��]��e��V��a��^��_�Մ��I��L��K��R��J��M��S��T��7��:��9��8��;��<�Ղ����������.��/��0��2��3�� ������:��;��4��5�Ձ����|����*��+��,��}����#��$��&��(��'�Յ�Ն�������
������������	������
����������������ԁ�s	��������������������� R T��n����	��b{�
�����=��a����`��������������������������������{����xr	��l���O
y���������� ����"�������$��%��&��(��x��y�������������������Ԕ�ԕÁ�Á�Á�Á�Á�Á�����������X�����҂��S�w��*F��5�������B��E��D��C��F��G�ԭ�԰�Ԯ�ԩ�Ԫ�ԫ�Ү���ҹ�ұ�Ҳ�ҵ�Ҷ�ҷ�Ҹ�ү����Ұ�һ�Ҽ���w�Ҍ�Ґ�ґ�ҏ�ҍ�Ҏ�Ғ�ғ�Ҿ������ҿ��������������������	� �!�%�$�#�'�(����Ȳ����������������������ԟ�Ԡ������������������ԣ��ϕV	�K"��������������������ҫ^�\�Ҭ^���N��Z��\��]��^��_��a��c��b��e�ҥ�Ҧ�ҪY�Z�ҨX�Y����<�������������������b�́�\���~f�j�+���łx��	{��K�N����������������������O�������������P���Ժ����
�Ծ�Կ��������������������+�
��֮�ֱ�ְ�֯�ֲ�ֳ��_��Y��Z��[��^��`	��i��f	��d��a
��b
���p���ρˈ�����ρ��:����������������������ָ�ֹ
����ֿ
�ֽ�ֺ�ֻ���������)���`����w�ֈ�ֆ�և�֎�֏�֐�֓�֔�֕�*�͢+��w�+��.
�ɰ�B��v
�փ��u�ց�.!�1�/�0!�ք�-�,	��K�ɯ�B��w'��y��z��x�������։B�֋�֌�֊����������������������������֣a���[���O��P��R��S���Z��W��X��Y��],�׋��^,�׊��\*�׆��w��#��	������
e��������n��d��
m��$��%��n��m�͎��&��'��(�͏�֬��_��u��v��`��c��d��g��+��)��b��,��l��m��j��p��*��r��s��t�������C���׀��.��������/��1��2��:��A��=��<��;��>��?�ׁ�ׂ�׃��B�֧�֨�֥�֦�֤
X?B�ז��E������D��������F��G�׍�ג��3��5��6��4��9��H��I��K��L��M��N��"o��t������������ �ד�ה���΁�h���������<��{�(���	
®�®���|���
�Է�Ը�‰�®�
®���}��~�́��N���������ה®������������������������M�����������M�������������®�®���=��>��������߁����������������������������®�®�®�®�®�®�
®�®�®�®�®�®�®�®�®�®���®���e��f®�®�®�®���	'#�	D9>��
���������	�`��t��k%L�H�鋱���o�b,�8���c�������������� �¢�¢����J���� ��E›��M�9 ��:�<�G�� ��H›��J�F›��N�O�Q�R�;�>�=�<�U�V�L�?�@��%��& � � ��ׂ_��P��*���� � � � � � ����\������w��x��y��$�႗���ׁ���� ��e! �����›O�g�f�e�b
�c
�h�i�j�r'��������������������
����
�����������������PD/�:�b�����
�������g���,�5��k��m���0�1�2�3 ���
�FJ.B���`�b�����
��N�f�����U�������������„����.��„����������������������� � � � ����t��i����u�����������Q�����P�&���h��i��j��������o��p�^��q��r�����w�x�Á�	
!�!	D9&���f���	��؂�p�CEp�Y&�Q�d��=\�=]��x��y�&��������}��~����������/��|�͆ ��͇���SIU�)
���K�����������|�1�{�*–'�z�0���}�1��s�~�0��r��* � ����Ǟ���Ǟ�������������%����&���������ޥ������¢�¢����M��N�5�]��D��m�7 F G�9�a�{� J�����6�Y��?��l�8�\�{��������������������T���T¢�¢�¢������������������������������¦�¢�������������	RCX����k�ł���PZ���U���
��f�N2.��ԏ��N����W�ˡ�Đ�đ�O��’����������'������������f��c��b��f	��!����������������(�(�(�(�(��}��~����v��,�e���8��.��4��/��2��3��-��5��6�
��������������������k�������������y�����z��|��{��0����/;����+����[����������	����	����
��
�'�������££
£�t�������3�C���‘�¢u���.�L�z�1�^��)��	��E3�û�ü�ø�4��������������EF2����)	����E�����]2����â�ç��ã�'��ä����9�y�'��z����9�����������!������0��"����@����[�rn����"	��:���	��y���P�����dE�õ����#�������x�����dE�������ð������������������(�������'���c���z�8�{�"����@X_l��ބ=3�c����w�y������d4������d4���d4���d4���d3�����������������F���G�H�9�;�=�<�:	�?�@��������;����d��Í�d��(;�(<�(=���^��������d��'���y�Z$¢m¢n�m�n�o�p��y�m$�u�t�s�z�{���(�(	�(
����5�6�J��G8&���ޥ������I££�����;�<�:�K��>/+���������'���������'����K���ԁ��Ê���������K������££££ �'���M�����������(�)��������������M��	�����������������������#y��@1
��5���7(�K
�Ws�w��x�R���ҧ£��������������
��P�\
���������j����������D\	��z�e|�����ž�����«�¬�ª���(�(�(�(�(�(�(�(�����eS�·��x��t��u��r��s��w���£!��������B��D��C��E��F��H��I����������P�����L��M��N��O��Q�¼����¾������������������¿�����
�½
����������������������������������������±�������������²�������������������Á���� ��!����"��#��)��,��(��*��+��&��'��/��0��1��2��-��.��3��@��A��8��;��:��5��6��7��4����������	������X��R��W��S��V��U��T��Y��[��Z��\�����������^��]��������m��_��b��`��l������h��i�������³C���´<����n��o��p��q��������y����z��{�À��c��f��d��e����������������������Ä���������y������¢�¢�£££��u������¦�¥��Z��t�������[��\£££�����������������������������������rf�ri�rh�rg�rj�rk������тW���c~	d������������L����£4£££5�������΃ȁ�
���{)�ϗ�(C�������p�q�(V�(D�(E�(F�'��H�P��	��{+�ϗ�r�s�(W�|�(X�(Y����\6����N	�dN
)���dj�����F�D��[�di�(M���D��Y����X6�����
F�d_�E����dg���dj����di�I�J����M­�������
	���������c}	��Q�������у���£6£7�Å���u�(#�($���*�+��������R��S�������'��������U
B6�ߏl��w#	�1FT�	N1���\5�{���#�����T�x]��U�x]���'��������I�'����ͻ��I����f��i��h��g��j��k�������M�ͽ�;��.�cf����ƃ���V��W�������UU6'���g���	�/FS�	N1�c�R�{D��#������((�()�������jo�{E�)�*�mH��i��-����� �����~� ���M����ڐM��������i�����à�!�"�á���6:��s�,�-�.�/�0��������o��p�����������5�'��'������6:��H��J��3��6��4��I��H����G����1��0������7��8��:��9����;��<���6-����z­����eV���eV�e�f������j�����c�����d�����r�ržcžd���z��2��)hD	-P
HTa�@��k����/&
#���Wl[�{E2)��֏������������1�n��8�c��o��8�c��p��7�c��r��8�Y�Z�����ą����•���•��������'��� ��!�	O����5���Ċ�ċ��F����5����3�4��Z���[�g����X�7�b��8�r�r�r�r
�r�r�r�(h�ւ2
D	������V[­����܁���W;���k�	�dM�{[�ϡ��K��M��L��N�(��]��_��^��a��b����J�vqA��	�����p�c��("��d��e�Č��č�c��(v�(w�(y�'�k
�(p�(q�(l�(k	�(j�(m�(n�݂���삉�ް�Ϡ��O��R��Q��P��S��T��U�\��t��cQ�Ğ�Ě�]��=�Ę��\��́��������C���������L�M����&
��Y	r7
cV0���D�Q*86�c1�{�^�Y����P�Q�†�‡��S�ˆ¢�¢�¢��‹�'�¢��'�¢�¢��R�S���~��8���Y¢��‰�Š���~�e���.�/�r��Œ��������� ´w�[��’��\��’��:�;�(�� ����K�a��r*�r+�r,�N�O�L�a�����1��������{%�F����/¢�¢��(�Ď�ď����9���7�l����V��•Q�5��y�>�@�A�?�8�:�6
�7�;�<�P�Q�#�$�28�a��r4�)�r5�rb�rE�rc�rC�rD�r3�n�r;�r<�r>�r?�r=�rA�o�d��re�rG�rH�rM�rN�Y�Z�rP�rQ�rJ�rK�rO�p���q�=�?�>�rR�rS�38�a�#�rU�_�`�rV�rW�rY�rZ�rX�r[�r8�r6�r9�r:�r7�r\�(,�b�a��d�e�r_�r^�c�a��(-�(.�
�%��d�en.���(1�(��c3�(2��"����l��*�����m�u��D
	���
��"
���G(85�c1
�{�	�r/�r0���'¢�¢���¢��'�������s����k�����¢��������	�o�������¢�¢���i�Z�u�R�S¢��b�c¢�¢�������G�H�J�����P�K�L������4�N������O��E���B��/�u¢h�}�!�"�#T�'�&�%�)�/�0����������c��(]�����������c��'��(^�(_�'������B���=�(���R���;�c��{�����£>£G£H£C£D£?£@£A����)�ro�rp��>�(����3��N����6����6���������4­��������c����c�5�d����:`]�q"#
��J�!
�����XL�����d���������������'���`僩�J��(��(��(��(��(��%�&�(�)�%����a������������	�a
����
��
��������0��+������c��JC�rw�rx�ry�r��r��r���Y����V����X��Y��Z��[�1�8�����:�9�t�(��=�?�@�+��A�c��J-	�)6�)5��l��m��O�c���R��S��Q��U��P�)<���s��k�c��)8�,�D��#��h��i��g�H�I�J�C~���B����������2��8��9�E����F��5��3����(��)�(�����������	���r��	�a~���>�T*��>�r��r��(��(��r��Ŏ�c4�ŏ�c3�ś¬��Ş�ş�ŝ�š¬��Ŝ�(��2���j­�ł�ʼn������m��m�Ŋ�ŋ��h��l���ő�ō�œ�ŗ�Ŕ�Œ�ř�Ś�Ř�3�5�6�4�Ţ�ť�Ť�Ŧ�ŧ�Ũ�ũ�Ū�ū�Ŭ�Ů�ů�Ű�ţ��� ��6�`����{���
���K�Q�L�M��>�cp�(���@��A��G��D�cn��?�(��(��(���q��x���$���V�`������������������!��"�����cl�J���+�	�
�����#��%��'��&��$��K��L��.��/��J��I���­ £e£f��,2��d��e��|��~��}���R�=���y��z� 4�!�"�$�T���T��b�|��x�{�|�y�k�)z�s�t�u�){�)}�)w�)x�)y�)~�l�m�o�p�q�[����d��\�v�w�~����;�����b��<�8�9�=�?��l��u��r��p��}��~�h�i���ƀ�Ƃ�(�{��^�_����£R�����(��(���A
��������g�bU �z�����.�������������(��(��(��(��(��(���҈��b��$�(��(��(��9�:�(��(��(��(��(��(���ӈ�b��&������������b��(��(��(�����(��(����£z£{���cA����c@����b����cA���cA���cA���cA���cA����c@�(��(��ށ�@������^�bV	�{���-�X�(��(��Y��ш�b��4�5�%�������`��c�~O�t����
���������������u��0��1�(��W�`��-��.�`�g�c�b�a�d�e������������]���b�~O����������������������������'������
�`��
�a聎�{��,���������b�JB������k	�a灏�{��+���b�JC����bl����bk�����(��;�=�>�<�)�)
�(������;f
	�M��9�(�[��z���"�)��m�)��j�k�l�n��£�£�£�£�£�£�£��)��|�}��/�Q���� ���)��)��)��)��z��)��z��)��)��)��y�)���(�b��)��)��)��)��)��)��)��)����(���������~���<…��;����b�C�f����F�b�A�(��(����b�@���b�@�)0£�£�£�£�£�£�£�£�£������)��+�;]
	�J��4�(�[Ip�z��)���£�£��)�{p�)��)�{o£�£�£�£���)��)��)��)��)��)�����������������������)��)�)����������)��)�
����	��N���������ձ�p��I����)��)��)��)���)���!�*�+�u�v�t������£�������N������ދ��Y�����q��V������Ź�ź�������	�������������,�
�Z�T����I<��X��\��]��a��`��_��Y��Z��[��f��g�*w�*x�*z�*~�*�*��*��*y�*{�*|�+��+��+��+��+��+��*��*��*��*6�*7�*3�*4�*5�*8�,P�,N�,M�,T�,U�,S�*9��*:�*;�*=�)�
�)��)��)��)�
�)��)��)�������cIc���������������*��*��*��*��*��*��+�+�+�+"�+#�+$�+�+�+�+�+ �ƨ�c@�$	�+�+
�+�Ʃ�c?�#	�+�+�+�Ɩ�cXe�ƙ�����Ɨ�dc	�*��*��+�*�	�+�*��*��)��)��+1�+4�+5�+3�+2������c9d�ق-�+	�+�+�+�+
�+9�(�,a�,b�,e�+:�Ɠ�Ɣ�,\�,Y�����d��6�+&�+'�+)���_h���+B�+C�+D�++�+0�+?�+A�+/���������+6�(�+7�'����
�d��ƞ�Ɵ�Ɯ�Ɲ�Ƨ�d��Ƣ�Ơ�*��*��*��*��*��*��*��*��*��*��)��)��*����_�k�GU��T�c���V�c���W�c���U�c��*��*��*��*�q�*T�����+��*V�E�*_�*`�*b�*c�*d�*[���*\���+H�*X�*Y���*Z�*^���*W�F���*U�E�,g�,h�\��*�c0���w��J�,�,�,�,
�,�,�,�,�,�,!�,"�,,�,%�,9�,6�,4�,2�,-�,/�,0�,.�, �,'�,(�,*�,+�_��(�ƈ�Ɖ�+��+��+��+��+��+��+��+��+��+��+��+��`��'
�+��+��+��+��+��+��+��+��+��+��+��+��+��+��+��+��*�
�*��*��*��*�
�*��*��*��*��*��*��*��*����ƭ�,�,�Ʈ�+��+��)��I��,k�+��,�,�+��+��,�,�,�,�,�,�]��3�c%���:�x���J�+��+��+��+��+��+��+��+�£y�*��+��+��+�)�,�,	�,�*��o�*��,�+��+��ƹ�e�+��Ɗ�Ƌ�+��+��ƍ�Ǝ�+�"y�+��+��+��)ځ��I;�*f�*h�*i�*g�,A�,B�,D�,E�*o�*m�*n�,o�,p�,q�*��*��*��*��+��+��+��+��+��+��+��+��+��+��+��+��[?�3&�⁆���G\	�*�a�*
�p�+�*
�p�*�p�*�p�*
�r�*�*p�*�*�*�*�*�*���*��+t�*��*��*��*����*��*��e�P�*��f�P�*��*��*��*t�*q�*r�*s�*u�*v�*�i�*�S�+��+��+��*�d�+��+v�+w�^I��'�c,H�

��G-�*��*��*��*��*��+O�$�������*��*����*G�*H���c;M���G2�r��+i�*��*��*��*��*�����c]�(�����c]�?���+��+��*%�/2���*&�/8���+`�+b	.�+k�+l���������)�c3E��q
��*��*��*��*����*��*��*������c>J�� ���������U�^����T�^����d������������d�ư�Ƴ�ƴ�Ʋ�Ʊ�ƶ�*'���*)�*(�)��)��)��)��)����*0�*1���cJ �*����cK���*��*�*,�**���������4�Ɍ��-�u���������������������
�����q�T�
����)b�)c������.����c��/�7�0�7�1�7�2£_£`���+���������������t������B�c�u��4�����5�7�����+�,�����΍���D.�c�������,.����������F\��������F\�����p(��*&Jc�g"		
��7��.!
����[V�b��d����O���_���U����
�����ܷ����������������ܷ���������5�����4�� ���8���!�cG�������������(��(��)�����������6����cd�����4����cd�J���������j�k�����`5�.��w	���&������_:�}I�,�(Ӂ��)��)��)��)��)��b�c��R��S�����9��:����\��1��]���7�)m�)l�)k�)n�)o�)p�)u�)�£h£i�)���&��M�d�e�����F�
������(��(��(��(��(��J�(��ˎ|�������H��)P�)Q�(��(��(��������x���������a�8.
��xN	�������$�+�F�E	�D	����m	��)W�)V�)X�)Y�@�A�)�)��%�b�
'�{��(��(��(��(��)�(��)	�)�(��(��(��(���������������g��	5�b�{f��?��@��D��E��C��B��A��H��I��J��O��
4�b��{e��g�������������������Ό����������������ό���£a£b���+�/���Ƃ(�}���s����*��%
�XE
�U���9�g� %"�Ι�9�������������_��J�wv�ww�7§3�:��>�=�<��@��F��G��w'�ʃ�ʄ�ʅ�8�w)���u�0���t�/���������w&�~D�~C�~E�~F�~G�~H�-�G*�sB�-�G+�H�I�~J�~R�~S�~U�S�T�ʆ�ʊ�ʋ�ʉ�ʌ�ʈ�ʑ³��ʓ�ʔ�ʗ�ʖ³��ʒ³��U�X�Y�]�^�_�`�a�c�d�i�j�k�m�n�l�r�e�f�g�h�V�W�Z�[�N�O�4�[��5�~M�~O�~Q�~P�~N������N¬��L��X�M�ʚ�����£܄V���'�~L�{L�{M�{N�ʛ�ʜ�ʞ�ʠ�ʡ�ʟ�����ª��s��{8�sl�sm�sn�sp�{)�{(�s��s��s��s��si�sj�sk�sq�sr�-�- �sS��|o��,���¤��ss�su�sv�sz�s{�st���`��s����s��s��ɵ�ɶ�s������s��s��sT���sW�sV�sU��|o��.�������s������cw�Gi�s��,��H	�s|�,��,��s��s��s��{�r��-�G<A�sZ�s[�-�G<%�s��s��s��s~�s�s��s����`|���-"�s��-$�-#�sa�sb�sc�r��s��s��s��s��r��r��s_�s��s��-%���C^Z�s��-'���-(�-*���1�1�1����T��r��{,�{0�{-�{.�{/�{+�s��s��s��s����s��{2�{1�-�w�
����sd�se�sg�sh���s��r���1�{3�s��s��s��{4�{5�{6�-�L��r��r��,~�x��s��r��r���^n��"�f3@�����h�#��тi�ĂK�w��w��w��x�w��w��w��w��w��Ƚ���e��H����ȿ�������c�e�����Ⱦ�1�1�N��1
��e�e��w��w��w��w��;����<l
�<���{�x�x�x�x�;��;��;��;��;��;��~��;�n�<4�<3�<2�<5�;��;��;����;��;��;��;��2��2��<9�<<�<=�<;�<:�<>�<?�2`�`���<q�w��2d�F��~��1�E�F��1�1�2b�F��1!�1"�1��ˁ��<��x�x�1�ߊ��1���1���1�;��1�1�1�1��G0�1��1���8)�r��1����=��1����=��r��1��1��1��1��$�u�D�fq�֯:���1��݁��7��;��;��1����1����7��1����7��1����<��>I�x=�x?�x>�<��<��<��w��<��>H�<��<��w��w��~��2��2��2��2��2��2��2��2��2��2��2��Fa�2��2��2��2��2��2��2��2��w��w��2e�2o�2p�2l�2m�2n�2k�2h�2f�2t�2q�2r�'��B�\-t���sJ�\-�<��<��<��<��<��<��2��2��2��2����c%�<}�<~�<��<����c%�2��2��x�x��Q�w��w��w��w���Z��[��Y��S��T�2��2��2������r�o���野�{��{��{��1��1��1��1��&����c���
E���6�hd���
&?��	�2u�2v�;�������i���=u�<O�w�L�w�L�27	�F��2>�2:�29�28�2;�2<����iZQ����<��;��;�����i�F���8P�������;��;��;��D=�;��;��;��;��2��Fc�x
�;��=
���͋�2��2��<s�w��w��w��2Ws�G4�2��E��w��w��w��2��x�2��2��2_p�GM�2�$�G4�2��2��w��2��2��w��2X�2Y�2Z�2[�1�� �G1	�1��2��F=���2��2��2��2��2��y�2��2��2\�G��x�2]�G��2^�G��2��2��2��2��2��2��1��1��2�FqW�N�w{�sK�~��2
�2�Fs����^��`��a��_�2
���<�,�<D�<E�<A�<B�<C�<G�4��Go�4��4��4��;��w��1��1��1�{���
�<��w��2N���2M�F4�w��;��<��;��;��2O�1��~��2D�2T�;��@m�2E�1͋
�;��;��1΋�1��1��;��1ϋ�1�
o}��2H�2I�2J�1��1��2Q�{�=Y���2R�2U�2V�;��;��w�d���xA���n���E��1����;��;��;��;��;��~��~����d��2��2����x7�2��2��2��q��2��3�3�x+�x8�x6�2��2��;��2�x%��p�f�����s�g���u��v��w��y��z��|��t
�g���r�g���~�f}����1��1�����q�g����=��x/�x1�x0�;��=��x.�;��=��x-�2�2���������
������	����2�
�2��
�2�2���n�G �x
�x�x�2��x)�w��2��2��2��;��;��2���@ֆ�����x;�x<�x'�3�3�2��3�����3�3�~��~��~�����;
���
�`�����*0��!.���=��܂2����h7�҂7�<�<w�3�;�<X�<R���i�q�<x���s��1�u�<t�;��;��ˀ�˃�˂�ˁ�y��y�
�y��y��y�
�y�
�y��y��y��y��y��y���l�p��=W�����������jA�X��m��o�e��1$�1%�1&�1'�1(��	�
����j=�����>|���iD����/"�<XC��	�<	�<�<�<	�<�<�<�<�<�<�<����< �<!�2���<��w��w��w��2���>��2���C��<�<�2�2�y��y��xH�ȵ���fƃX ��zb�<i?���1h���7�k�1j�1i�1e�1f�1g�1l�B��;��;��ȼ�k��4��4��x�2�2!�w��2�2�2�ȸ�iw�X �ށ�g�<:G�<k�<��2��2��20�F��x�x!�x �w��<'�<(�<)�<*�<�
�<+�4��ȷ�iv�X ��x(7�<t�<-�<.�<0�ȶ�i&�� �ہ�e�<��1��1��1��2��1ߋ{�<\�<]�<^�1��z�2��{<�{=�ȹ��g��j �C�w��w��4��M�ˆ�pq�Ⱥ��g��i�	B�˅�pq�C��~��ˋ­������ˍ­��ˎ�ˌ�{��{��{��{��3x=	�3z�3y�3��3�5�3{�3|�3}�3~�3��3�3�3�4�3��3��3��3��x��x��x��x��x�'�3��FA�x��x��x��x��x��x�£��3��x��3��3��x��x��x��3��F?����x���	��3�E�������3��������x��������x������q���x��x��3��3��3��3��x��3��E���Z��[�3��3��3�B�E��3��3��3��x�A�3��3��3��x��5�r�x��x�£�ԧQ£��x���O¯M)��P��R��S��Y¯L��V¯L��Q¯R�x�@�x��x��x��x��x��x��x��x��x��x��x��x��x��x���x��3��x��x��x��3��F�3��3��3��3�
�F:�3��3��x��x��3��3��3��3��3��3��3��3�	�3��U�.�xQ���x��3��3��3��3��3��V�c��x��x��x��x��x�#�x��x��x��x��x��x��x����º�����x��x��x��x�(�x��x��[�\�W�X�6���?���ρ�b�b������	�s�fЂ\�ո�t��t��t��3#�/�����,��G,�4@�4A�,��G,�4>�4?�/�/�.�	�.��.��/�.��.��.��.��tք{�wm�wn�1K���xh���xi�t��t��tلy�/+�/,�J1�x]�/-�/.���4H�.	�.
�.�.
�.�.����@��4�c]�I@��4��3��(��4�ږ����£����.�.����������������A��4�cY�IB��&��4�j�
3�Ap�4�4�4�4�4�4�F��4�4��$
w��ł{�d��G0��6�q�t7�t:�t9�t8������DŽ���!�"����K��L�%��#�&�)��Dž����I²��|
��B��A�~��~����_q£����-2�-3�-0�-1�-5�����_7��������	��k£�£��/�F(�/�/
�/	�F;�/�/
£�£����L�^��t,�������-��-��-��-��-��x_�x`�t
�tD��V���&�`�@�)���3A�3B�t�t�t�t��-��-��-��-���V���_�@��t-���d��G(�9�xP����t'�-��G@�-��t)�t(�/���/�F�/�/�/�t#�3H�3I�3J�t$�t"%�I�J�K���"~��Âx�jB�A����-��t�.�.�.�*�t��NJ¯��t�t�t�t�Nj�nj����}��������
�Lj¬��2����+dw��o�bŇ��?�N4���q��!�4��?��t��t����P�����t<������x�4�I���D��N���bŇ��@v�1D�1E�������j.�3F�������� �Q���bLJ��R������������#��$�wk�5�*�+��`�d��-�G������j��k�/�/�/�/�F3�/����������������.�.�tH�tK�tL�tM��b��c�tJ�ǘ�Ǚ�.�/�p��Е���.(�.)�th�tg�td�.�v��И�.�.�.�.�.�.�tc��zª���{ª��s@���)�tr�ts�tt�tu�to�tp�.@�.A�.B�.D�tq�.E�.F�r���,��-��+�ti�tj�r��tv�.-�.+�.,�..�.J�.K�.G�.H�.I�.M�tw�tx�.N�.O�t|�t}�ty�.S�.Q�.R�t{�tz��/m�Ǟ�ǝ�ǜ��*²��.2#�.3�./�.0�.1�.5�.6�.7�.:�.;�.<�.>�.=�tk�tl�tm�x���a�d��. �L��.*��e��f��g�.#�."�.%�.&�.!�G@�r��tR�tU�tX�tW�tV�tS�tT�7����S��cE%�iT"��%�oA�[�Ͼ�5�/�/�/�t��t��t��.b�G*�.c�G*�.��.��.��.��.��.��t��t��t��t��t��t��t��t��t��t��.��G�.��.��t��4��F/�t��t��.\�.]�.^�.`�4��t��t��.d�.e�.f�.j�.k�.l�.n�t��.g�.h�.i�t��z�4)�t��4&�4'�3w�E��r��xK
�xJ�s…��w5;�w6�w7��p°�¤�Ͽ�S�s������xT�xU�xV��
�����8����6`�i���p�������.X�G(�.Y�.U�.V�.W�.[�.t�.o�.s�.p�.q�.r�t��.��.��.��t~�t��3'�t��t��t��t��t��.��.��3(�BN�3*�t��t��.��.��.��.��4M�AK�t��t��.�.��.��.��.��s����.��.��.��.��.��.u�.v�.x�t��t��.y�G%�.z�.{�.}�.~�t��t��t��t��t��xN���`e�c�$�L���rǃ�r��r��rȃ�|�|�xZ���x[�z	�z
�t��-F�t��-b�.��.��.��.��-a�M��.a�-`�t��t��.��.��t��t��t��t��t��t��ǧ�_�Ǧ�_������_�d00���FR�-?�-8�-9�-;�-<�-=�->�-7�M��.��G�.��.��.��.��t��-E �Ff���/�-D�-A�t��t��-B�t��3/�30�z�z�z�z�z�z�|
�-g�-h�|�s��4��@8�-J�-K�-M�-G�-H�-I�-N�t��t��t��������t��s��.��.��.��.��t��.��.��.��.��.��4��@:��5��8��7��6��9��:�-U��0�f ��3�f ��2�f ��1�f ��4�f �-T�-V�-W�sɄ����s����������:�jQ���3t�3u�/�/ �/�/#�t���4��:��;��7��5�ǩ�.��G�.��.��.��.��.��.��ǫ�Ǭ�DZ�Dz�ǯ­#�Ǫ�g�.��G�.��.��t��-�-��.�t��6�-���j'�2�.�
�.��.��.��.��.��.��.��.��.��.��.��.��.����j%�1�/���xp�xq�0�eC�����؃=�eG�+$�����?����k�3T���@���/�j$�B������3S�xz¤�.��.��.��.��.��.��t��.���������������d�W�F�����@��.��r��xj�xk�44��E��F��C�e��G��D�e��.҆c�xs��A�cV�5���Bx���xm�xn�5������e��G	��?��������ǽ�g7�Ǿ�g6�,��,����׃9�b�t��4�����?Ă(�`�.��G�.��.��.��.��.��t��xt�xv�xu�xx�xy�t��t��x{�.��.��.��.��.��,��-�3f�3g�-�J�-�H�
���3c�@h��3d�3r�dz�t��ǹ�Ǻ�Ǹ�eZ�]�-�\�Ƕ�Ǵ�k��3^�3_�3]�3\�3`�3a�:����jV���������������������48��������������cE��Z�cY<��1���	
J�!�f��Y��
�.�1z�1{�1y�1}�����w��1u�1v�1x�w��1m�1q�w��1r�1t�1n�1o�36�F��4��EM�,�-������@°G��A�w�����R�_
�4��4��r��1��w��w��w��1��1��1��w��w��w��1��1��1��1��w������1��1��1��1��1��w��1��1��1��1��1��1��1��1��1��1��1��1��1��1��1��w��w��w��1��H^�r��r��r��1��1��1��1��1��1��1��1��r��1��1��1~�1�1��-X�-[�-Z�-Y�-\�-]���6���d±D�,��,��,��,��,��/�0�2�w��w��w��w��w��w��w��w��w���[����H�f
�j�����?����[�39�3>���y��y��4��5�5�z��L�z�t��r��r������z�1��4T�4U�w��1��3�1��1��5�5�=�>��[��������4:�{P�38�*�+��
�j����|�|�4��4��|�|�����
�j��������|��;U��W�iy���oK�K���)���5���Ǐ�i��K��ǎ´��1G�,��,��,��,��,��,��,��,��,��,��Ȝ�ȝ�y��s��Ȟ�xc�s��xe�xd�xg���r���������´��Ǘ´����t��t���6W��gɃ���B��+�3��B�3��B�4!�4"�4#�4%�|�w������m[�@R�@�w�&�u�v�d�x� t�;n�;o�1I���1J���4W�4X�C����F¬���E�]�^��H��I�G�V���F��,����F��D�&�-l�-m�E��¬w�ȳ�k���t��u��s��w��y�ȴ��x�9��M
�:���Q�b��|��L���z�zE���T@�<�ze�_�z*T�z,�z~�z+U�ɠ°��ɣ�ɤ�ɢ�ɦ�ɡ°����Z{�zg�����G��)�چ��܈`$�Ƀ�g��J�zK�14�10�11�12�16�I�g(�J�zM�zO�zP�zR�zN�zT0�Ʌ�Ɇ�Ɍ�څ��^�1+�J+/�1,�1.
�1/
�H��.��˃���`�C�D�U�O�V�X�N�MŽ��"�
�:��K°��19�G�1:�zr�;�r�S�@�A�]���/�^��D�zW�zY�zX�zZ�O�P�y+���r��z[�z\�ash�:��pK":��܈J�,��G#�,��,��,��,��z^�z`�za�z_�y(�y)�y*�z5�b�d��4\�F�+�z4�z)�4]�z#�=�>�?��
J��-�c���j��|��8"8�5�c�X�zw�zx�zF�zv�4�c�]��_��K°�Y�1)�1*�ɜ�ɝ�ɛ�y,������ɕ°���\�]���?��6$��3�ɍ°�&'�ɐ�ɑ�ɏ�ɓ�Ɏ�,��G(�,��G(�,��r��y�y �y!�y"�y#�y%�zd�r�P��`�`���F�)�G�c�#�z1�z �r��z%�H�c��I�z'�z$�F���0�p�¤�4`�F��f�`�l�a�d�b�i�g	�p�e�r�_}�t�v�w�u�s�x�y������1F|-����xª��z��z��z��z��r��r��r��r��r��r���wA�w@�{&�r��r��r��z����z����z����z����z��wD�����d�r��3�����[�z��y-�y.�z��y2�y/�y0�y1��g��z��z��z��l����n�c��p��������m	������{�x�w	�|�v	�u	�y�z��r	�s	���z��z��z��z��y�����~��z��z��z��z����������Q��N�m�4q�z��z��z��z��z��z��z��z��z��z����f�4��sy��~=�z��z��z��z�§§!§§§§ §&����z��z��z�§
���§%��׈�§"§#�z��z��z��z��z��z��z��r��wI�y;�wJ�y<�wE�wF�wG�wH�yD�yC�yB�y5�y@�yA�y?�z��y=�y>�y:�y7�y8�y6�y9���7�i��4��4��4��4��z��z��z�����4��4��4����	�a����?a�~��?��;�z���:�a�����9¯���<��=����:��D�v�,�z��z��z��z��z��{�{�{�{�z��z��z��{�{
�{	�{��������������z��z��������?������z��z��z������������܉i�7N�gBG�3��3��3��z��h�ex�j�k�i�e��e�f�����z�%�z��y3�z��z�&�������z�¤¤¤¤�z������z��z��z���	���j��h�r������z��ɯ�ɰ�ɧ± �z��z��ɫ�ɬ����±�z��wB�wC���z��ɩ±�ɨ±�Ț�ț������f�n���G��hO��|�wa�wb�wc�yH�y��yI�yL�yJ�yK�wX�wY�y~�wd�y��y�yM�yQ�yN�yP���y�,��,��w[�wK�r��wM�yE�yU�wL���wV�wU�;p�;q�w\�w_�w^�w]�,��s�{K�s�s�,��,��,��s�s�s�,��s���sf��f�n戻F���h6��{
¤
¤�yf£������£�����#�ch
�yW�yV�yg�yh� �՘
����M��yX�yZ�ya�y_�y]�y[�y\�yd�ye�y��s	�s
�y�
�y�
�����C�Cp�-¤¤�y��yn�yl�ym�yo�yj�yk�yi�t�u�s�E�C��wO�wP�yF+�yq�yr�w`�yx�wS�wT�y|�yy�yz�y{�yu�yv�yw�ys�yt�r�c���s�yG�p�F���y}�;u�;t�;s�wR�;v�;w�,��,���C�yR�V����Y����X����W���®�Z����[�������	����	��	�����������{\�{��{��|�|�|�|�{��{t�{Q#�{R�{��{V#�{U#�{S�{�¡]��<�{��,��,��,��{��{��{��s�s
�{��{��{g���©B�s���������±��y����c����{��{��{��{��{�	�{u�{`�{��{��{��{��{��{�£����e��|�|�|�{��{@���e��{?[�{[V�|�{z<�{}�{��{��{|�{{�{��4��{��{��{��{��{��{��{��{��{��s���{��{��{��{��{��{��{��{��{�	�{a�{��{��{��{��{��{^�{��{��{����©=�{��{��,�����{fx�,��O��,��,��O��,��s�{��{��{��{��{��{��{��{��y��{��{�	�{��{��{]���4��4��{��{��{��{��{��{��{�-�{��{��{��{��{��{��{��,��G4�,��,��G5�,��G5�,��G4�s£�׉�,��G4�[�{~�{�{��{��{��{��{����_��0(R�{������{l���{��,�N���Gw�{��{��{��{��{��,�Q�{B�4��{b�{c�{d�4��4��,��P�,�Q�4��E����4��{o�{r�{p�{q�4��s�U�s�4��Gr�1<�1=�{��{n�5
�n�i~�7����1N����|��|$�|&y�|)�|%y	
�|`�|_�|a�|^�|]�|��|b�|�£�£��|f����H�|U�|J�|K�|M�|L�|e����{H�{I�{J�|c�|P�|Q�|R����C�������|d�|�����|S�|/�|-�|.�������|T3��²5$Z	�|n�|l�|m�|o�|p�|q������²WZ�|��|j�|k��²PZ�|7�|9�|8+S�|:�|;��²]Z�|<�|h�|=�|>�|��|r�|s�|t�|y�|��|��|w�|x�|u�|v����qo�<��|g�y��C�y��| �wq� ����!�|!�1O�IV�|z�|����A�|��|~�|�|{�|��|��|��B�|��@�||�������������|}�5�q�i}�|HA�|��|��|��|�£��|@�|A�|C�|E�|F£�£��|D�|��|��|��|I�|G��N�|��|�§.��f�|��|��|��|��|��|��|��|��|��|���� ��n�$�7I�K�|2�|1�|3�|#�1L�1M�|V�|W�D�|4�|��5�H��|��|��|X�|"�|��|5�|��|�����k$�p�|*�|+�|,���������k$�p����k#�p���±:§1���y��y��������{�*�3����#4��	�d#�^��4����D.�S�$
���U��T��]��
(c��
�g�%
!�k���~�}�1������^K������v��u��u��r��x�
�y�
�x����
����������������}��<��B��<��}��4��5��5��5��}��}��}��}��6��H@�6��}��}��}��}��6��6��6��6��6��6��6��}���u�nO�n���0����N�mA�@z��U��V��W��S��T��X��Y��Z��[�t	��O��Q�f���P�-��-��t����#��z��w�u`�6��6��<���y��x�u`��v�|���{�e�Mg�}0�}/�6��6��6��6��6��|�k���}��|��}l�~�F�#q�hm��P�|���|�fJ�|��}w�}y�}x��~���ǂ�ǁ��}µb���t�}�t�5��5��5��5��5������k��U�����l����6��6��6��6��1]�1^�5M�H��5'�5-�5*�5(�}�5N�|��|��|��|�£�q�|��|��|��|��51�|��|��5.�5/�|��}
�55�56�58�52�53�54�59�|��5O�5P�5Q�|��|��|��G�#p�hm��P�9���y��y��y��y����}��}��}��}A�}C�}>�}E�5=�>��5H�5I�5G�|��5@�5A�}�5?�5B�5>�5D�5C�5E�wt����N�r��F���np��˂��5��>[��\�5��5��5��5��5��5��5�s���,����5��H��}�} �}!��.��/��5�5��5��5��5��5��5���2��-³g�}"�}#�}$��'��+��(��)²��}�}�}�x��6������6��G-�}~�5Ƃ
�H��5��5��5��5���|��6��6��6������(��E���nl����}��6��nW��ρ�q�6��6���M�oz�nT�6��F��6��6��w/���5:�����s,�}�}��}��}�}�}�5��>T�5��5��s2�5��5R�6��6��5U�5T�5S�5V�5W�}t�5;�}�,�������d�c{�]��
�7\���`&8�~�}u�|��|��}��}��}��}��5�H��5�}��}��}��}���6��8��9��<��;��7�cz�-��-��-��-��-������c�cM�"�C����f�5`�5]�5^�5_�5a�-v�5��5��s��5��5��5��-s� �-t��?�5b�5c�5d�5e�5f�5Z�5[�})�}'�}(�
� ��
�H}n�-w�6�|��|��-x�-{�� ��J�}+�},�5��5���!T�I5��!T�5j�-o�-p���H��-q�	� �����	�� ��J�5��H<�5�5�1_�G�1`�5��5��K�~�}��}��}�
�5��}��5��5��5��5��5��5��5��}��}��M�-��-��-��-��-��P��-��5��5n�n�5p�5o�5k�o�5l�5m�n�5s�j�4����H��}��6�H��5��~�~
�~�5��6�6�6�>$��5��5��5��5��}��N�}��}��-�-�-�~
�-~	>���J��6��H'�6��-��Q��-��5��-��Q.�5��-�=�}��-�Q1V�5��5��5��}��-��-���A�l��H�6��6��6��6��6��6��6��y��s��s���G�l��6��6���D�l��GB��B�l��6������		�d#����R��]O
���g�?E�k��}���-��-��-��-��-��G�|��|��}�}�sՊ.�-��Px�-��~�~�~�~�~�7�H
�7�7�H�7�{�{�������:���Bx�I(�5��~�5��5��5��5��5������������������/�-��-��-��5��>x����/�a���_�j��	
y4��
�g�q�Պ�>.e�(�5v�I=I�}��}��6�6�H��6
�H��}�H�s-�5��5��s��1�}��ˑ��&z�ٛ���}��}��6�6�}��6J	�Hg�6Q�6M�6L�6K�6N�6O�6>�Get<�6�6A�G��6�H�6D�Gex�};�}p�6�6:�Gax�}o�6D�Ggt�}5�6D�6C���¿��1b�1c�1d�}��}��-��-��}����������}����"m�6%��߅��`��	�?X�-�6b�6d�6e�6g�6c�s����������������_ى��>��6*���o����6(�-����H��61�-��-��-����}��}��6-�6.�6/�-��}�>��}��s��s��63�66�65�64�67�68�6G�n����}��}��}��}��6H�H��}��,����6�
�HI�6��6��6��6��}��6��6��6��6��6��6��}��6��6��6�
�6��6��6��6��6��6��6��6��6��6��6��6��}��}��}��}��}��}��}������}����h*�}������}�£����|�����.���`�����n�����|��|��|��|��|��|��5��5��5��}�-؈����n���.
_)-?£����6A�6B�6E£����6D�n��}��-���)�HT(�6��}��6p�-����6j�6q�6s�6v�6z�6{�6y�6x�6w�6}�6t�6u�6��6r�}��}����-��-����4{�Ew�}����}	�}
���gN�~���~�7�7	�7������������
�~�~�5#�Hځ��5$�5 �5!�Ij�5"�5&�Ig�}��-ʈ��C�-���g���5��5��5��|����¯a�x��������x�����������������x��x��x��x��˔�˗�˘�~�~�~�˕�˒�˓�~�|��~ �y�����������~"����������}�+�s��6to*}�,������a�߂�d���.�����&�{���ځ�i�F�����������~>��g��h��i��k��j��l��m�v��~@�~?�~A�����������������-	��F�1����H�uJ��'����v�-�-�-�-
�IB�uL�7��uT�uU�7��>��7��7���uV�uW�uR����� ۄ��:��0��E[�0��0������;V�:������#��:��/1�����:��
�w
�/2�/4���]����;W�;X�=����r7�<\��8r���������:\�:]�8��8��8��������/P�8����<j��� }�?�v��8����<j��8��=����v��v��8s������q���q��/S�F��/T�/V�/W��s�t�u�������!`���r����q��/Q�/R�/X���;��/Y���u��/Z�/\�r��/]�u���:F�:H�:G	�:I�:J�:L�:M���pq�����u��
�8�8��8��8��8���	�pw	�8~�/扐�/����/��/��v������pu�����s�ps�>����pO�(��
�<S�,����0�0~�0��0z�,����,����/O�3�v��8p�8q�8l���8m�;n�,��G�:t�<-���u�:P�/J�/K�/M�0O�0P�0[�0\�0Y�0Z�0V�0T
�0`�0a�0_�0Q�0R�0c�0d�0e�0q�u��;�,��,��
���,���u��r��,�H�E����u�0v�0u�0t�0w�0x�:T�:Z�:U�:S�w9�������v��v��v��v����^0���u��u��u����������)�*�,�-�c�*0gy�*?���>
���U�����1
�G3�uu���8��8�������������8��=��8��8��8��8��8��8��8��7��ui�uj�ug�,���8�8������������8�8���9�8���������u�7��7��T%�>/��>�uc�ud�ub�,��,����X�7��,��7��,��8D�8E�7��7���<M�8��7��7����p�8�8�8�8�8�8�8���������7=�?r�7?�7@�7>�?o�w�8�/D����%�o��w��:��;��E
z�'�F��q5�����v��8,�8-��/�8 �8(�8$�8)�8!�8"�8%�8&�/��/��8��8��8��8�����Z���g��uJ��=�g��������/������
T�ҥ�������6�����/�.�F��/��8*�8+�/�-
�Fv�/��0�/��/�¤:¤;�����8��8��>$�8��>$�7%�7#�7$�����uX�uY�7&�7'�83�84�85�86�7(������pn��0��1��2��4��5����������7*�?MF�7+�?LE�8=\�8?�8@�8>���������/F�8C�/G�8B�7-�?�76�70�7/
�?}�7.�>と�u��7;�7<�71�72�73�74������17y�
	R���\�>y���/��O��:��:��:��:��:��:��:��:��:��/��/��r��,���	���/��0�GW�/��87�89�88�~B�rԅ�/�K�/�J�,��,��Ё�	��{�d�����A�<�>&��7U�/��/ρ��~#�/с��0��/��0��0��0�������)�q��,��/��/����5���>'�,���U�?b�,���0��0��0��0��0��0���
��	���z�>&
���5���E�����*��+�������5�����5�����.��W�l��z�>�,�i�1�/^�}�F^�/_�8��8��8��u�u�8��8���������7i�7j�7f�7g�7h�7l¤<¤=�0؈��0Ї��k�0����0Ӈ��0ԇ��7c�7d�7�8�:����l]�/`¤?�/a�/b�/c�m�u���~)�7G�7Z�7H
�7M�7N�7L
�7K
�7J�7Q�7R�7S�7T�/d���/e�8��7E���<Œ¤A��O��P�Džl���n}�=��8��8�!�8��8��8��8��8��>
�8����ȉ<�>	�0��0��:�>
�?�0��~(��!��=��8���!��=��8��:��:��:��:��:��:��:��:��:������n����)�/�l�p�>���8��� ��"�8��7m�G�G�7n��J�nn7�=-���G�R�8�9�=+���H�r��8�5�=�H�8�8�=,��6���b���b�����k�!�G�om����?�u��8����!����e��t�$�~*����������������C��D��X����������@���E�F�u �u!�=����q�9'�>� ��9$�t��:x�D�����9/�90����������������~m�@�A�~l�G�H�I�~o�9� �a��9�9�9�/g�/h�/k�/j�/l�/m�9�9�9�9�u��!�a��/q�/r�u"�u#��|�p��j���T�u��{�f����j��~v�/o�/p£��4�u��v��L�M�7o�7p�7r�7s�7t�7w�8��8��8��8��8��8����x���,��,��,��,��J�K�������%<�a����L­ʄ��w
����
�:v�:w�B� ���=h�E�0��0��0����a���7��@5�9�9(�9*�9)�9+�9,�:|���"�:��:}�9!�9"�9��@��B�8���A�8��8��C�"7�8��}	�9�9���:��9�:��8����9���9���9���9�f�9�e�9�����&���5����i�g9�w5�>�j;��
 *���u��u��s4���s5�����U���V����7�7�7�7�7�7��������o*�E���U��V��\³���Y³���T³��������ȁ����������9h�9i��"��"	�9<�99	�97�94
�95
�9G�P�R�Q�9x�9y�S�T�/����5��������~:�/��9n�9o�9p�9r�u��u��u��{F�'���5�����g���� ���5�)�m��Ͼ �7�
�7��7��7��7��7��7��7��7��7��7��9c�7��7��1Y�!�s��7��9u�7����7��7��#�����*�:�e�b��$���"�94`��쁀�-�y�-�-�-�y�������Ń��/{��4����7��7y�7z�/��/��/��/��$�����*�9�e�!���/x��<��NJ(�7~�>��7�7}�9m�/u�/v�0��,���!�����7����U�9J�7����9T�9R�9Q�9P	�9W�9M�9N�7����7����7����@�,��~� ����7��9~�9�0��~2�	���
�u��,��j�i�k�l�v�v�v�v�v���9��=t�v��v��v�9��v�v���9��=x��F�9��9��9��9��9��9����!$�9��9��=z�9��=z�u��v�v	��v�v�v��y­��u&�u��/��/��/��/��/��9��9��9��9��9��9���z­{��w�v�v��x�v�^�v������n��t«���u��o�oQ�_���9�
�9��9��9��9��v�v�9��9��9��9��9��9��9��c�!E�=Q�9������O���9��n�o�9��=Q�e�!D�g�9��9������z�]z�:@�,��`�a�x�y��|�}�{�]y�r��v�u����������ւ�y��OU�a��z�����g�j��Ȋ��~��~��~��~��:��:��~��Ȃ¶B�~��ȃ¶B�7��}�::�s=�s>£��~��:��:��:��:���l��m�9��f�~��:��:��;=�;��;@�;>�;?�;:�;;�����u+��ej�pB�i��I�:��9��f�:��:��X�&��Z�9��9ɂO�9��9��:��:��Y�7��;�:��:��R�S�$�T�%�;)����pA�7��u��u��u��u��u��u��u��;�;	�;
���1�e��� �$�;-�F�:��:��:��:��:��:��7ǃ�:W��7ȃ�:V�7��<s�9��7��0
���0	��� �<a�0���0�7��9��9��9����1�e����<X�0����<b���0
��� �7��BC�y�y�0����7��7��\�]�`�a�b��b�9��f�g�0��(�{����{�7���9��&�9��9��9��9��9��9��9��9��"����m��Co���'�����=��u�����:��:����������³��u��u��u��:��:����.�����=��:��:��j�b����w�:��k����h�i�5�������p�eΊ7�kX�Շ���~��u��u)���u��u��u��w�:�����µ��������N�O����Ȍ�6��I�U�o��j[�Շ�~��~��;�;�:��:��:��:��:��;�:��~��~��~��y��������y��������~��~��ȅ�^����:��:��:��:��:�����������o��=8�z�:��8�����o��8��,�~���	��
��������
����~��o�p�����:���������*�ed�9��9����������������u/�u1���u0�:��9��:��9��9��9��9��uD�uE�uF�n���(�m�*����n���;,�9��9��9��;�:��9��<9�;���n�	�9��<>�;�;�;�9��9��� ��!�:��:��!�9��/��g��OT�ar�z�����x�j	����~��;L�;M�;N�;Q�;R�:��:��:����:��:��8��8��W�v����������P�Q�;/�;5�;6�;7�;1�;9�;0�;2�;3�:��9��9��w��������"�mA�;q�����p��%��&�u��u��u��u��u��u���$�mC�G=�8g�8h�q��(�m<��#�mB���D�&�8e�~��~��:��D��H�@��S���ف��e��c�:����}�T,�~��7��;'�;(�u��;$�;%�v�
�v��v��v��v�
�v��v��v��7��:��:����pN�;ځ��������:������:��I��JG�o�2&�;ځ��;#��k�p��;���pK�;݉w��g�~��~��ʴJ�ʵJ�U�u6�u8�u=�u:�u7�V�%q�;I�;J������)®���+��,��*��-��.�~��@�G6R#h%3K�7i����9(�ނ/�e.��+����q�i���;)��%��
�����:,�:-�:.�0��Kn�{#���:/�;��u���/;�F��u�u�u�u�.���v������v��v��9���^��_��`�:�:	�vI�vH��T��W��X��U��Z��[��\��]�v$�/��/��/��/��0�0�0"�G��0#�0 �0$�0%�v(�v%�0�G
�0�0�u2���u3���u4���0�0�:
�:�:�:�v6���9��=P�9��:�=H�9��:�:�:�:�:�v.�0<�0=�0;�0?����v��7����v/�v0�vP��L�[�f��M�Z�f����������v��*�<���[�f	�F��{�0�ʮ�v��+�����«��7��/5�/6�/7�/8�/:��,�v��0�0�0�G���a��b�:�:�0)�0+�0*�0&�0'�0(�0.�vX�vY�0/���:�:�vV�vW�����02�����|���00���03�04��� $	�06�07�09��� $����������� $����� #	��� %�@
�v���� $�.��� #�-�v��v��v��v��v������v��v��f���g�Y�e+���F�? "�y�/?�/@�/A�/C�7��7���]7�eh��{�[�f�5�?Q+�`�X�u	�4�u���v��v\�v[�,��'�,��vq�:%�7惋�<��0@�0A�0B�0D�:o�:p���#t����_\�v_�v^�v`���va�vc�vb��_`�0E�G��0F�0H�v��v������/��/��/��/��/��/��vt�v��0��0��0��0��0��0��0��0��0�
�0�
�0��vo�vs�0��0��0��0��vn�0��0����!�A�=,�:'C�:k�:l�7�AL�9̂т]
�����: �u�vh�vi�vl�:#K�;��_�vg���vw�vy�vx�:)�:+�:*�8�vS�vR�0:�v������/<����/=����v����������c��d��e��f�����(��	�����v�f˂��8����U��V�+
�;Z�<�����%P�w!���]��u�u}�;f�;g�;i�u���
�v|�v��u���������������:1�:2�:3�8V�v��v��v��8]�8_�8Y�8W�8X�=����8Z�8[�ʷ���ʹ�ʺ�ʽ�ʼ�ʸ³��yŅ�����Z��m��7�/��/��/��/��/��/��/��/��/��/��/��H:�/��/��/��8`�/���.��f�eӌ�;)����'���ʀ�8I�8J��|��~��}�/��L¬����x��8�8K�v��8N�8O�8R�8S�8T�8U�����8L�8M���������������u��u��u����\����vو����������e�� �<"�����:0�8a���������~`������M��8䂿�>�#�:4���������
���:5�:8�:7�:6�ʾ³��~e�������ʿ���L�!m�=N�:c�:_
�:b�:`�:d�=Y�:f�:g�:e�=Y�0��0��0��0��F��v����[��«���3���«���1«����v��v��v��Ȑ®�~����g
�~��~���q®:
���~~�~�v�
�7�~7B�~y�~w�u[�u_�u\�u]��������q���7�
�8�8�7��7��8�8	�8
�7�
�8�;_��p�%���;`�0��;a�;b�
�vA�vB�u5��������/��s3��<�v<�v9�s�͏����I��ȑ�Ȓ�l�`����m�~��~��~��~��t�͏����I�£��6�8�9�7�;�>�~��~��0�sN�~�����	�
�������~�0�1�3����-�4�"� �!�~�
' ���~�J�/�
�sO��>�~��~��~��sP���~��~��~��sR�~��~�+�~�
�&�'�(�*�%�~��<��h��ڷ��h��i�<��+�,�<��~��<��h��~��~��~��~��~���҇��]���}X�}[�}Z�}Y�v3�w3�x2�r��s��}W�
�r��������_��}K�}c�}L���i��}I�}H�}G���z�\��R�{2�s��[�\�s��1S���A�3��s��s��s��4�3�
�A�3��3����D�3�
�3��3��3���r�lu�J`�}]��s�}^�1T�����_����|�}�s'�s(������f?�GB���s��s��s��s����s���_��`��^¬�������f@�GD��]�l��@���k��l��i��j��n��p��g
�l���d��e�}S
�~�}Q�}a�}U�}T��s��}b���}P�5��o������s��s��s�����"�}k�}h�}g�}i�}j���������������������s��t�t����(³4�s��s�����!����)������ ��M������]���������`R���s����s��-��j�JV�4
�4�-��k�4�-��i
�-��k�@�T�-����-��X�-��k�4�Y�����)��<�=�4�5�6�7�B�G�J¤I��¤J�H�E�F�8�,��-�.�%��&�;�*�(�?�@�A¤G¤H�W,|2G��������q7
�b���$����5Y�4�5�1�2�3��c��d��e��f�7�8À7À:À8À9�k�9�>�=�<�a���i���j�b���l�m�r�]�^�Y�[�\�Z�V�W����������;����?��@��A��<��=��>��ÀKÀNÀMÀL�¥��s_�����ز����n�o�<��<������f�����������������ز���������k¤���%¤��+¤����l�m����������������������� ��!��������������������������������������]2E�����خ���d�˱������²�d�̑�����\��	��
�̒²��̕�̗�̖�˲�����J���˳�����I����4��j Z(‰��k���������������wm����;����������������?������	�����:����	������"��>������������"�������������1��R$���������M$���������2��Š���Š���‹��¥����e(������)��*��+��,��-�5�CbqS	 ��ˆ�¤v¤w¤y¤z�Pt�������K"4���t³���������������O³��������t³�����f³��D�^�_�FE����GC�E����¥��4�������z¥������������pY�h�U�ھ¤���6��7¤�¤�¤�¥¥¤�¤�¤�¤�¤�¤��S‹P¤��T‹P¤�¤�¤�¤�¤�¤�¤�P
�|‹9P¥¥¤�q¥¥	¤�¤�¤��̤�pY�h�D¤�¤�¤�¤���	`��…�W�ڄ�����¤���������������`Œ_��(¤���W���`���������b�d�¤�¤�¤���9�T�̏�̐¤�������:����	�w��!i�hǁ��ڎ¤�¤�¥Q¥R¥O¥P�c�d�e�|�ds�y�z������}�B�F�G�H�J�<�@�?�=�C�D�������������������������[�@�^�\�;�]�����z�$�s�,�t�b�>‰+�cŠl�d�K‰��R�L�M�O�P�g�h�i�j
�u�l�q�m�o�p�k�r�s������������������/D‰0p
�چ¥G¥H¥I¥K�� �).‰�ڛ�*.���$.‰��ڏ���u2‰�ڛ���U"ŠS
����‹[¤�¤���‹Z�‹V��‹V¤���¤��
	���XŠ{���Z����¤��	�X�+2�Z�[�,�V�W�f��‰wl¤�¤��gŠri�Y�-&�4�5�6�0�;�/�.�1�2��'���X ��:9W����M���q&$�h[��F&O�٫Y(¥.¤k¤l¤j¤o¤p�̅³�ÀÀÀÀÀ.��E��F��G��I��B��C��D��J��KÀ+À,���̚³y�̛³x�?��_��w�~���ÀÀÀ�@��_��w�
���������/��ؕ�̠�������������������������N��h��t��pÀ�}����::�ت�������P9³���QÀÀÀ���=���%��Z��[���:�#�$� �!�Š#��R��S��T��U��V�̡³j�����ؖÀÀ�&�'�,�+�*À'À(À&��N9���������
���fÀ��f���À!¤r¤sÀ0À1À/�=�=�Š$�Š$�Š$�Š$���³�����������s���³����³��������7�*�3�!D
�h�mE��k�S��\��]¥C��"��
¥]¥^¥C����	��_��`��a��b¥�������l��������v����������n����������������������¥g¥h¥�¥��c�d�Q����r	���¥s¥t��x�����w	�����s���

¥x¥y¥w��q�����q�����¥�¥�¥�¥�¥�¥���ŠY#h�ڹ¥"���e����������f�B��d�¥#¥$��¥&¥(¥)¥'���e�¥+¥,¥-�̃�̄���~�����~��ÀE����a���e����8�r
���Y����i����
��
�q��	���n�B��T��\�����t���{�o�AŠ������c�&��¥_¥`��¤�ÀRÀSÀT¤�ÀOÀPÀQ�Zb���³P�f�h�i�g�̋������	Š�¥�¥�¥�¥�¥���
�Š����PŠ|	�
Š��[��/ÀÀ
�̥�̦�����J#��ab�A�����W�o�G$?I ���lg�bo������R����v}��������������������À�À�À�À�À�À�À��w����������_�����[�
����������������������m��S�����	�����
�����¦Z¦[�������>�>�>�����]����lZ�=����\�����ΗP���>
�>�>�>�>��1§D§E§G�‡��>�>�>�¦�� �!����=��=��=��������̀���u�#�$���6�7������M��<�1��J��lz�bS����:�>�=��=��=����C�G��f�m�h��L�=��=��=��=��=������{�h��K¦��Я�а¦���9�9�i���X�в§<�б¦�¦�¦�¦�¦�¦�¦������=��‡��>Š%������o��i���E�=��=��=��=��=��=��=��#ˆ�%‡�
¦�¦�� À��&¦�¦�	¦��P�¦�§?�r�s§@§A§B�٢§C�٢���x#���x#�з�и�ж�5�г�д�е��<�;��J��lzx�a���=��͡�͢���'��F�����mp��o�=���t�*��G���o���u��w�)��Q���o��(��F���o������+��G�p��,��F�p��!À�À��"�����7
T�c���ק�@��`b�=��=��=��=��=��=��n�cx�=��=��=��=��=��o�cx�p�cx�q�cyÀ��(���|�м�ls�=0�����Ed�h����נ�
?��_a�����������������'���������u�*��a��ֈJ���Q�`[@�������������=��=��=��)�d1@c���+�d��н�о�j������k���������Ф�Х���M�`Z@�=���}�=��=��=�����������������~�����B�CH�Ƒ&�-b�S��ʐ�X�o
 �b0� ����b��n�������c�dJK���L6�iP�4�����=i�=k�=b�=c�=j�������O��$¥�¥�¥����J�i�	�7�4�5¥�¥���†�¥�¥�¥�¥�¥�¥�¥�À��=p�DT��À�Àf�=s�=v�=w�=tÀg�=q�=r�=\�=[ÀeÀ�I���#�-`��O������[�o"0�i=����b��i�e�f��������
�
�U��6�[�=z�=}�=~�={�������0�/�j&����oo�j]���¦����������†��†�¦�¦������¦���¦�¦�¦������1����������0�1¦���¦�¦�¦�¦�¦��=��=��=��=��=��=��=�À�À��=��=��п�5�6�����=��=��=�À�À��������������������������������������=��=��=��=��=��=��=��=��=��=��=�����)���m`��/�p��0��1��+�p��2�o�m���*�p��,�p��-�p�Q‚���T�R�9��:����M�
�aG
,��$:����ˌGP
)5��8�l5

�if�����N���§��V���oB�=��U�o��=�= §	��������À��ה;���a��=����:���a��=��=��=��=��=��=���^��-��������!�
���-ˆ��Ь�Э�=��=��>�>�>�>�>�>�>�>	�>
���������������`��a����#��jX*�oj�k!�=��=��=��=��=����P�F��
��0�4��X�Ƅ������������������������‡`�������������ޖ��À����U��
��ې�q)�o�bh�<���"���pQ�>(�>$�>%�>&�>*�����H��������I	��P��L��K��J��M��N��������=@�=A�=B��������V���o<�=��=��=��=�������o;���4����������q��g�o}p�=%�>+�j�>,�=��=��=��=�§I§J§K¤\�;��z��(�>�>À�¥�¥�À������Ͷ�ͷ�<��z��&���¥�¥������r(�o9�i��ڿ��e�=��=��=��=��=8�=9�=;�=<�==�������='����NP�oq���h��=�����%�=����>3���́��=����>0������&�os����'�or�����x/�����x,¦l�@�B�C�A�9¦m�Ц�]���=��=���������l����=J�=K����U����;����o��=��=��=����o�����T����:����������l�À�À�À��=N�=O�h��L���~���:�����;��=��<��A��>��?������	�
�������A‡���7��9��������2���̃�B��0���N��>��$$�
��+#���7]@
����,_Q#��U�N;�>+�4

Je�`U(	��3���E��Q5���ӅT��Ï�������>�Y���>��>��?��c�Z��2�?"�\�^�]�W�X��>d��?����������������������Ci��"F�\o������&`�\i�&gÁ�Á��>R���B��>S����ÁÁ��Á�>\�jj§��&e�&i�?�&j����Cg����"M��b���"H��a�������XQ�>f�>g�ή�ҳ�έ�ҳ�ί�Ҳ¡d¨¨�&p�[�Á�&q��‡t����‡s��Á�d������Á)Á+Á*Á-����������������`�?��?��6£������7¨���������������¨�?��?��H�I�J�&rÁ/�B�y
�+��5@G�oa�����i����*%�.�/���N����HÁ��x��y���Nt�>��>����s��Y����r��X���Nt��K�X
�����O�ّ��N�ي�Y���ّ�\�`�[�Z�]�^��P�ّ��Q�ِ�Χ�o��>b���Ψ�ǁ�Z����������Á.�C�}����Y�E�Ύ������b�X��^��u��v��w��h��i��n��c�X��o��p��r��s��_��`�;��]Y�S�R�V�U�T��{��|�Z�W�X�<��{V��p����Δ�Ε��q����Κ�Ι�Έ�Ή�H|�F��pa'�o=�����i���(%�^�c�_�`�a�b�>Q���O^�S��|��J�Β��I��J�P��,��I�Α���Ό���΋�Ο�Π�Ρ�l����k�b����m�o��j;*��Y�5¨�žožp¨��E���F���>���>{�>}�>~�>��>��>�>��>|�>��>��>��>��p�ʈt�XHÀ�Y��k�>��&x�&y�>��>��7�=����m����q�\�����R�j9*��,.§�§�Á Á!�n���H �b܈,�P�Q�R�O�k�j§��K�E�b��,�L�l�j�>��j�>�	�j�>��>��>��>��>���J�hM�[���.���~/��i
���������_���\�]�f�b�`��g�i�j�h�m�n��� �>��>���� �>��>�Á@������§�§�§�§�§�¨�>�������������������§�§��!�Z�y �[�"�#�Y�y �[��A��B�'�$�%���>��Ϋ�ά���>��>��>���.���}*��i
�?†��¨¨�>��>��>��>��}���-���`?4����������g�Wz�u�bo�Ղ��l�|��N�˥�˦�˧ �®� ������R� ^�a� � � � � � ��S� ]�a��L � ��M�'�>v�?��B�?��B������������J�����W�[��������������g�W��u�b{
�Ȉ|������M���W��y�`@�����a?�O��
	�=������r�C�0�F����"�#�%�&�'�)�(��>c�P���<�_��+�I������
��	��
����
�2�3��-�����"�p$�CI��
"�v�κ��"�v��������������p2�>��>��+�,�������ξ�ν����p>���^���²��������������
����"†��������>��>��'���(���������������>��%�����$����������,	��������������`��Y�5��U�p�CG����������H���}�e�f�h�������J��x²��[�\�]�����η�θ�K��w�
������������`j���`i�������+	�u ��-�.©'
���E�>��?�?�7������8�(����)�4�s��Y�����S
ÁTÁU�,�.�/�-��Á`Áa��&���		=���* ���
��-_Q�WE(��-C0	�`���3���W+�����S�������>y�&]�&^�����J¨�����@PX�A	�B�E�D�C�F�G�>���<���p��E
��e�hM�~�������������������
���>��>��>��P��R���n~Hs8�K����ā��W;�����e�������R¨&¨(¨'���+� �!¨*¨+¨,����"��#��!������T����U����S���d�e�t���v�u��Á(�����g����f�����h�i����8��9�*:�݉~�U¨-¨.¨/�B�`�a�b�c���,���A�y��g����¨7¨8������f�|��ݑ����"�y�z�q�����[��*��@��A��h���#�$��i����+��,
��L��H�j�k�l�m��E��F��I��J�-��6��5�����悞�m�k��R�9���?ÁHÁI�0����&�<�=��`�;����S�.D����'�����悞¨¨�:�<���o�w�x�y����v¨¨ ¨"¨#¨$�i�n�o�l�m�k�j�>�¨9¨<¨:¨?¨@�>��>���U¨A�>��>��?5�� �������������������������������O��c¨a¨c¨b����{�}�γ����b��¡h��c���P�������������������������������������������������������M�N�����ǃ�����Y��[��\��a��_��Z���������������������������ȃ�$��…�����������…������R�N���V�>��S�M�>��>��@5V�����n��c��K�N�L�M��71����
¨U¨V¨T¨P¨Q	�u�Q2����������S(�~��R�"����w�x¨^��������¨_��j��k�b�;}J
c:
�K���
������n�iV����V¨D¨E¨F������¨G¨H�x�ɛ�C�D����'�T��;����ђ���:�]������	�����¨1¨2¨3¨L�F�G����¨4¨0�(F�9����^����9����b�o�9�p�9¨5¨6¨e¨f��m��n¨���������3�4�1�2�'x¨i¨jž�ž������Y¨k�?�h�����������>_�>`�†�������†��>��>��>��>��?�����������΁�΂�΃�΄�΅�����������W�X�����������������W�����W�~�����������r��s����������®��������������������������Z��������������9�>�;�<�:�X����������V�����	3�����5:�����S�4 �݁�
C��C����5
�������U���
���j�G]�`�K!����E!r�3��K�Ɂ�	@��m��n�����������=¡=��„ ����������������„ ¨���V�n��ʂ���������¨�������¨����������¨�¨�����K����K����K��������¨�¨�¨�¨�¨�¨��>¨�¨�¨�¨�¨�����¨�¨��ٝ�������b��д�������¨�?@�ƒ
�Mƒ�] ��Lƒ
�^�_�\�V‰�f�m�d�a�	U�b�e������A�B���I�|‚�©O©Q©R©P�����J�B��„q����|©?���N�Q�O�P����������������������������������
�����
�����
����������������¨�¡��m��@��-�F�C�D�E�G�������N�O��&0 �� �"���?��_����@�@�$
�k��>��4�%�,��†2�	�J�'���(�)�*>������>��-�‚�
��:�;�+�‚���0�1�7�8�4�/�,�‚��� ������������¦S¦T����
���&�¨o¨p�����&��[��&��[��f�h
�x�m�n�p�r�q�i
�l�&��|�~����}�j�y�z�g�h��:��������V����p�&�ѥ�R�
P�����������T��P��Q��R������������y��—������������?��?�������
��������������‰W¨�¨�¨�����
����������������������†�
�����^‚��S���4����䁊������������������������¢�©_��1�p�����n�N�O�T��¢��U�i�j�V�Ġ�ƒ�א©k©l�\����_����`�]����Z�[�b������"�!� �#�$���v������v����Ǡiƒ:¨�C^©©	¨�C©�Ơk(���	X�׎©X�&‚�X©
X�'�(�Šd�+�,�*©h����©©©���ݝ���SE&����6�狂Y���������g��©q�����������`����„���¢-w������������¢,���‚
�����������a�b��8-�r�%���(X������6��0���������	���������������d����������7���x�e�g������
5�����(Z����7��%����W��X��7��(��]��^��_��a��6��(	��b��c���c�d��!$���5I����p	���`( ����f���+���H�������G¢Z©��H¢[©��'��ky���2,�'���������kj���^���]�''�'(���a���a�'��3�W֘�kt�B©��A� ����h�p�'B���ݝY��kS!�T�U�R��Y�{\��©�©�©�©�������������‰�������‰���"#����(D����R	�w� ��'	����]���+��Á~Á}Á�Á� � ����&��&��&�w�[�@���A���C�E�D�Z�{u	���CJ�?7�?6�?5�?2�?3�&�

c��'���&��&�©��&����©��&�x
�[�&�w
�[�%�l���'�����2��������Á�Á�Á�Á������������������������������������=�m����L�����Á�Á�©����©��'M�����&�_���b��2�ۂ©��?B�g��r�s���3�u���F�g.6�+�b�#�����������������������������o��t�p©��%�P��(�'�&�)�*ž�ž�����x�y���w�
�����©�©�©�©�©�©����������b�����������
������������	��������������������>��?�9������������C�m�n�,�3�4�1�2�7�/�-������&��&��&��&������
���������	�����
���3���s���
��&�gb�'	�b�#������a�e�f�g�b�c��©�©�©�©��������������|
��	�z���j��k���q�^�r�s�v��
�w��
������z�����}��������'.�~�$�^��s� �����������
�z�"�����������"�Zƒ?�#�pŠE��iƒ6��h�qŠF©���( =�+����WD
`/2"����Gz�x�P�V���c�p��_�����������������������������T�U�V����J����3�t�j���…3�������Ј��φ�ω�ϊ��ˈ�������������������P�8�©�©�©�©������r�(R`.��s�'Q‚6�Q�N�����R�S�����G�+�/K����HŸ�¦:¦<¦=¦@¦A¦C�?z�?|�?{�?~�?�?�¦>¦?¦D¦E��([�(��������L[00����Gu�x�N�l����b|��Z���ÁnÁo�O�����|U�C�D��\��7�ևSK	[����K���*	�\����&��&��&��'�'����'�'�'	�'
�&��&��&��o�'�'�N������G������������	�����������\����n�ּ¡-¡.������}�����g:�'�'�ό�ύ�
‚3��
��‚2���v�,������n8�3����'0©�©�©�©�©����¡N��¡O��©�©�����¡P©�©�Á����¿�Á�Á�©�©�©�©�©�©��x©�©�©�©�����/������n8�c(�q���©��������ƒ��ƒ©���������y��¢��Ƃ����������ւ��ׂ������������[�ӂ�¢��\�^©�©���x��¢��Z�͂�¢������������Ԃ��Ղ����g�q�z�����������W���+�Y�3��t�_�`�b�c�_�^�k�m�l�e�`�a�f�h�i�g����F�}��¡3�������+������¨�¨����������©��&-�����������©�©����K…��L�U�V�W�Y���Q�M�N�[�P���R�S���r�4�]��t�b2�s�ژ����K�ۘ������J�m�������gA©���©�©�©��y�{�|�z	�nª
��ž���ןÁ��������ߘ��������ޛ�����������G��� ����������������!��v�׋<���z����¡7�(�(Œ�¡8���"���}���������� £��������h(������
�b�����צ�?q�?r����������������¢y�?m��������	�k�������������©��d����k��q�e���©�ª�קÁ��~�������	3 ^��[�Ԅ�����W7��&��.��
,�����	�+
��"�;
�����V�"5J�<5�H[�`	�<	� ��
�z��(s��Ǽ�ȁ�	
B���/��������������������������?F¨�¨�¨�ªªªª�?G�������ª5ª6��������	&�?�ª��J���%ª,�Sƒ��������������ª8ª:ª;ª9�&�?�q��3\�|?�e]��I����2���Vƒ�¨�ªKªLªMªOªGªHªIªPªQªRªF���������-�>�0���f����eg������ªC��…���ª2��Š?��B�S$�<��C�|?�eP� -� ��������'ª.ªSªT��vª`ªbªcªa�������ª\ª_ª^ª]�������;x…{,�$�!†5�"†4��ªZ��ªY���0�'1�'2�'3�'4�'5�'&�킹�ԁۗ������W.�7���V�H�l���b�*�8���������������e��'9�w��������8�=�;�9�؃���������W���+��o��p���V���������������¨u��©+©,©-��@��"	��)��&	��$��+��4����©%©"	©)©*��������������ƒ����� ©$�����z����,���V�G�j�e[�a���C��©©©©��©!�7����?�f��&�3
�A�5�7
�4�6�:�;�<�?�>�=�8©©��7��8 ����\��\¡¨�
���=ªy����ƒ�ªv����ƒ�ªuBCª�ª���{��
��|��	�����h¢ªr¨����>�|�����
ªm��t��	��u���i������ª{������������Ky�y���������������
�t�N�
������f��,�������…D�����?�f��,��������������†Zª#ª$ª'�������G�
����������������������������������������������������'m�'o�'p�'n�'q���������� ��"��#��ƒ�����������������������
��v������������������������������¡A�������������\��)���j����o��a�c�f�b�g��������Z��:�����#��E�������������2����1��4�$�'�(�*�&�+�}��§�§��,
�}��	®_®`®b®c®d��8�_��9�����!����	�j��f�q
®h�1†A�2�3®l�	'����	�j��e�q
��
�0†:®n®o�����®R®S���]��+���j����o�®s��������†I����7��������1��:����+�(G�p
'��ۂe	�����n���`"�:�?���ؐ	�&��&��&��&��&��&��&��&��&��&��&��<�����������s�����=���l�m���������L���K��"�e�z��D�"�N�O�U������������R�����M�˄d�|����������N
�}�~�����������ބ���������������q�r����������������������¦¦��§�§��V�8�����	������_������5����^����������������[1������[�H�������������L�������X�����Y���#�",�>j�>l�����>m����Z��G�>k�h�i��:���D=%�x&��N���V��B�B>���������\�&��&���G��G��G;���]<%%����-	���o��BA�&�",�j��w���������������k��w�=���)�*�>��������������K�T��u�����_�����=�D����W±�����S��s��0��2��3��1���S°������S�����;��+�&20�A3��@	��n���`$�;�?��"�ؐ�����F�r�G��r�J�i
0����¦¦¦��¦¦	¦¦¦
¦
¦���>����*��^��n��g��ׄ��������������¦¦���	��
����������������������������s�h�������¦¦�������������������+�„��,�„��>h�>i�`�I���u��?@�g��p-����������������������������������������׻�}�~�������׼�׿�x����0���0���y��o�����������������������������ҧ�?��?����1���1���0�����������������������v
��<@�Oz�2�p-���������'z�����®�®���	��
���������
®������������D���E�z�{��������������������9�����Z�	2!��1
��5��[�[9��K�]m�^��\��\��[U�`�\`(�[��\��\��[��[����[��\��\��\��[\�4�[]�\��\��[5#�
���\w�\|�\f�\z�\y�\T�\U�^c�\~�[�\h�\m�\n�\k�\��\i�Z��Z��[��[��[��[��[��^d�^e�\e!���\g�\V�\W�[Y��\t�\u�\}���^g�\X�Z�s���ƂF�Z��Z��[��[��[��[��[��[��[��Z�}��Z�}��Z��Z��Z�n���D�Z��Z��[l���#�F�\��\��\��\��\��\��\��^p�^q�^r�^t�^u�\���
�^x�^y�^o�^{�^|�\��\"�\$�\#�\�\�\��[��\�\	�\�\�\�\�\�[��\�\�\�\�[��\�[��\�\�\�\ �\�[t���U�[��\!�[��\c�U�^��^��^~�\%�\&�\(�\)�^��^��^�]2�]3�^��\+�\,�Z�}��6	���[w�[x�Z��],�]-�]4�]5�\/�[$�ނ-�]/�[u�]0�\0�\�.�\1�\3�\4�\2�[r���[%I�[&�['�[n�[o�[(�[)�[+�\�\�\
�\�Z�<B�5|�[>�Z��Z��Z���u�|�\��Z��[�[�Z��[�[�[�[���\��[	��p�z�[
�[�Z��:�\��]R�]Q�\��\�	�\��\��\��\��\��\��]O�]S�Z�;G�6u�[|�\��\��[}�\��\��[
�����:�^��^��^��^��^��^��^��^��^��^��^��^��]H�^��^��^��^��]I�^��]J�]K�^��^��^��^��^��^��^��^��[�y#�^��^��^��^��^��\��\����[�V�[�V�[ف���Z-.!
�^�^<�^=�^�][�]\�^�[߃)�[��[��[���]��]��]��[�{�[��]a�]�;�[���]��]��]��[؃�]��]��]��]��]^�]�]��]c�]��]=��]>�]_�]�m�]��[ۂ��d�]��]�/7�]��]�_�]�b�]��]��]d�[�����^�^�^�^�^�^�^�^�[�b�[��[�����^I�[�L�"��)�^ �^#�^!�^"�\8�"
���[��+�]��]��]��]��[��]��]��]��]��]��[т��[��[��\9���[��[��[��[��\:���[��[��[��[��[��[�#�UC0.)�]<�]��]��]��]��]��[�
���]A�[�0���[����^T�[����[�
�[�
�]��[�	��R�]��]��]��[��[��[��[��^%�]��^,�^&�^'�]��]��]��]����]��]��]�R�]��^.�]�L	�]�[�]�^�[��[��]�]�]�o�[��^8�^4
�^9�^:�]�Bu�]��]��]�E�]��]�@s�]�E�[����[��Z�	/!��3
z"1�@/�[��[��[��[��[��[��[��]�\M�\N�\J�\K�\O�u�\P�[c�[d�]i�]j�]~�]��]��]��]�\E�\F�\H�\;�\<�\>�\@�[f�w<���[h�]�]�]�] �\��\���\����[g�u	���\��\��\��^Z�Z�;,�
x�����\��\��[�]t�]v�]u�[A�\��[B�[�]x�]y�]z�[��[��\��^��^��\�x�\��\��\��\��]s�\��[<
E�[GG�[L�[Q�[M�[N�[O�[P�[J�[H;�[=
@�\��Z�;*��������[��[�J�[��[��\��\��]�]�\��]�]�\��]�]�\��\��\��\��\��]�\��\��]�]�]�]�]�]�\��]�]
�]�]�]	�]
�]�]�]�]�\��\��]�]�^��^��^��^��[/�[.���^��^��^��[�["�[#�[�[�[�[�[1���^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��[2�^���
�V���y0ic��M�~ ���L����w���~w������G���Lc�݇ق�j���H
�o����������B����������������������������������F��'�(�F������ɇg���G�����������f�������*�+�����������F�������n��F��އ��
�S���H
�X���L�	�F��ё������߉���4�5�����o���A������� �F���W�9�����F������������F�����������	��;
�b��
��������������B��B���8���x�-������:��8���x�-����B���
�3&��W��������������������N��N�������������������������������������Όڃ��B��B��������2$��V$�����������N��琽��Ճ����N��N��������C�f���{�����������������������P��������3���������N��������,�}�
����������g����g������;	�`���
*���������B�1�B�1�B�1�B�0�B�1�B�+�B��B��B��B������)�Z�
�
�~�?���B��@���B���V��-�A�B��A�l���!�"�M�N�B����2�3������	�
������
���������	�B��B���$�%�	��D��D�������K��
���NJ���
�����G`�B�C��������?�@��������,���F�H�G�E�I�J������g�Ԉ(���������������OZ�O[�͓�����Γ�������5�������������
���b��5������������B���G�F�C�D�E�����愦�<�a��
�7���C�G^�O_�O`�Oa����d�!�5�����F��F��Ob�u���1��7�8�w�d�ޛ��x�A�"���$�%���#�v���ً�r�GZ�G[���E��C�5�����
���8���������"�Q�*�
�����&�(�)�,�+�'�܂:�A��ݜz�OB�*�+���f�?��?���9�ͅw�#�E�#�I�J�K�O�L�M�,
���΁�(�~6�z�{����������������������������	�{7�t�����.�u�v�/�������0�}�������5�H���2�6�G�C~�C�1�z���x�e�y���������|�}�������u�w�v�-
�(�z�N�O���a���`����Z�)����������揂���n�p�o��zF�)=K��=
s��N���?�����e.
�<&����	R
!�)��0X�
d:��	/e�����n�����Җ����Â��m��d���n��d���`�uy���D��D��D��D��D��a�u��[�]�Ca�p�����Y
�Q�h�Z�P���\���������e�������������[�]�����D������N��N��������������O��O��O��O������8�v�N��N����Ό&�w�x�z�|�}�{���`���_����������������������������������
�B�
�q�r�~����������&��TG�r��p�O�_�,f��;9���������������Х5�O�����2�҅����9��=���e�f���=�����ljQ�U���y��������m���?���Co�����N��Q|�Q~�Q�Q}�Q��Q��Q��Q��*���+�Q��Q��'���9F�o��p�����]������������ʑ����ˑ���		������a����΁���ƅ����������������
�7������������v�΂#�j�z�{�E!�E"�O��O��כ;�E�E	�E�؛;�E��������������V�����sB	����V�����s�N������������������	�j���ِx�A�R�@���U�;�V������q� �/��6J��2�Hc7�0)��1��
��+�����F��F������������������N��N����鈈���C����O����	�d��Q� ������Y�����N��N�������q��^���JO���
'������A��)����l�/9�����e���� �M�y���N�����Q������D����D��Q��Q��S��f��3�4��������������������7���6��3�5��3�5���T��e��2�4�N����N���P�����O���������X�D�P�����������������\�X�_�V�]�P���Q�����a�3�]�[�����b�2�]�Y���>����6���{�…��������-������^�`�a�.��ě<���ě<�LFhd\	5K�
m��Q���<	![���m#�<����O
�Y
+���*X1	��
-;9��^�w�G��G��G��}�~�G��G��G��GЈ��N��N��N�����G������������c<���i�G��E+�����d���h����������S[�S\�S]�;�<���
���'�N��N��!�"�� �������G��G��֐�Y�������G��Q��#��b��Ԋ�p���$�'�(�%�S^�S_�)�*�\�E2�E3�-�.�S`�Sa�6�9�7���8�E5�C�I�D�E�����;���=�>�@�A�<�#�D��1�5�2�3�Cr�G��G��N��G��G��;���n�����(&=L��MR��B
�O���!�	�l��W�b�D����cE	�N��N��N��R���N��N����N��N��M�N���J�K�����9 �/�u��)i�|��������������S�X�V�T�����������������������������������O8���R�Q�P;�������������������������)���;���A�7���H!������bB�7���ٌ�t��i�����o�q���������������������)��*��1�2�o�q�r�p���B��_�`�a�b�d�e	�V�f�v�w���g���k�h�i�U�����8�E,�E-�E�������0C�4�5�1?�s�E�������������9�v�{�N���������W�Y��`���N��O�Cw�Cx�CZ�������z�ߍ�O�O�{�كi>8
# ����!\��'19�+�U��"��쁲	��H�}<G1�q�s�ā�k��1�j�:���D�D�@�@�@�=�>���<���A������@���@��y��h�y�?�1�G�����@2�@3�A=V�A>g�D�g7���#�A������#�O��A�������.�뎟���A����A��Aw�>����(�{��������(�z���� ������x��e�x�>�)	�B���Ӊ��F��@/�8����4�g}���A��A����9�������A����u�A1�M���/5�����������w�A������J���b���(�ˆu�1���t�C�M�N�ԕr���AG���B������@���A��O�c�O�c�P%�P&�����������N���/3���������� ���z��Y����P�P���������y����D�E��Rl��Rk�����e�AN�AO�����P3�P�
�,&�������������
�AL���O�8�P+�P,�P/���e����Gz��,4l����	���,�V���&
^�����$�&�'��_����@k�(�)������%�@G�@J�@K�@H����	��?�@�:�;�<�=�>�L�@U�@V�I�	���J�����M�������#�݇
�8�Q�T�R�S�
���,�-�.�/�$��5�C�x�G�F�D�t�E�5�Մ�#�����������X�[�Y�Z�6�|�]���a�^���_�V�W�c��2�ω���d�j�e�f�l�m���n�o�3�Ή����7���������VY����9�X
�#���O������N�?�O���=9�������7"�����8:�
�!�������|���������������P�����v�w�O���@v�@w�����:�W�o�]�`�a�b�d�c�A���A�������b��Tj��4��u-����	��9�=�O<�$
Y�@u�F�T�~����C������U�G�C����j���(�,���c�������W���X�Y���j�_�0*C2��!��vo>�/�@B���������������	l���@=�@b�������P�
 ��@|�@`�@a�{�|��k���O�a��=�ˆ�����AV�AW�����>�A��D6�v����:�����O��@�w�@�w���@��@��@e�@f�C��R�C��Q�@��@����������k�_�5�}������T�����A�A�A�A�������������O��O������E6
�o�����:	�����A�A�|���?���C��C��������������������5�P1%B��L���n��9��_<���x����,�f�����X9�
�������������5�����������b�������a������������0�������V��$����������������������������Q����Q��L������r��	��2c<�L���m�'��_����
0��,�Y�����X:��������E������������N�H���E����'���n�A��A����������@��@����?���0�A����������������遾���B�B�B�B�B�B���y�}$���i�����������������*�H�₮����������������������:����������������������j��������\�]�C��C��_�`�!�nj��<�PJ�A��b�g�c�f�A]�A^�A��A��A��A���g������m��f������������ˁ��́��n�e�f�)���h���)�����*��B���,�q�����.�j�H���m�����Vc���B�����������Ph�ƅ����u���hr# =&�?��|��
*�_
�L����a8(2I�+1!GD�a2�2����
a��4�d�������@�@�@�������� ����Q��Q�����Q������|���Z�<�|�[���y���}�A�m��W���Q�W����U���T�j(	�����n\U�*����l��7i�0>�{([Y	�
��a���D���,�-�?�@�A��A��A�1���/��	�(�����B9���@	�4���@
�4�B:�����_�1�������@�5����z����a	���)�*���+�n��6n�_�PQ�E]=

%�/�T/8?�*�
����D5lqg
I<3M�_$"1�􁨈�]0���A��A��@��@��@��@��@��A��@��@��O��O��@��C��C��C��������@��@��@��/n���-�q�F��A��p�����p�O��@�����!�"�'���@��%���@��@��@��@�'� ���@�%�@�$������@��@��@����Pk������VE��}�<����;	8n��o�����	f���A��P������}��	�.�S��o���t����5�6�������8�9���O�
�P	�P�P�P
�O��@��A3�����s�7�������F���E�G�F�@�(k���@���!�A6��W^
G#�Q� 
�
����6/[nM
LmH��0����Z �����@��@��@��@�@�@��D�D�@���@��@��ވe�������_�����O�@��@����6���6�@��@��@��������ԅ>����?n��s�	�؍
�݋������������@��@������@*�����	K���K�@����Ae�@��@��@��ȕ*�@��@���-�u�v�Q��Po�R��Pn�C��C��r���?�P^�P_�AU�AT�A:.�A;-�D�A@��?�q���&$�A8#�O��O��O���؉�R����`?>7���K�C��C��C��C��C��C��C��P@��w����B5�A��I�PD���F�����؁�b�������A������t����$�PY�PS�PU�A�o�J��i�G�o�BB�BC�Pb���Pc���������������������p�s�q�r����u�v�䁯1���Pf�z�9i�G�����㌬�C��C��{���|�}���������C�#�͂5	�!�?�!���n��_�Ś��EG�2�EH�D�g�P{�P|�Ps�Pt�P��P��P��Pz�P~�P�D.�D/�D1�����m�����������D(�D �D#�D$�D!�D�_�D�D�D�D�D�j�D�D3�D4�ϒf��T�9�P��Гh�P��P����2�9����j�2�0��1�6�+�,�BG�BH�����L����K��D�X���2�3�4���������K�(�Z��������P�
�P��P��P��P��P��P��P��P�
�P��P��P��P��P��P��P��߇����EM�EP�EN�EO��������������8���! ��Pu�Pv�������ԆJ����쏅�A���քO�Ƀ��e�F�'�/�%�&�(�)�������,�-�0��+� �.�/�3�4��������BF�(�)�BI�BJ�$�#�$�%�&����r�؃��Zk#?�c�.��������
�+#��Y��-
4|
���'���v�!���g�e�f�h�D��D��-�.�Q��Q��DD�DE�����̣����������������-�
�������	�(�ؓM�W�2�3�5�6�7�BN�W�*�+���DB�DC�Du���Dv���.��w�#����� �!�"��p�5���6�$����*�%���&����D��D��F �`�!�e�a�!�d�b��b��b��b�	�/	�����\���-���c�d�a���X�Q�Q�9�:�f�g�3���L�0�a�s�P��P��1�2�A���J�/�j
���;�<�<�Q�P��S�T�Q�U�V�Q	�Q
�86�c�Ɂ�����(�J�F�������n�e�p�P��q���H�I�����s�v�t�u�Q�x�~�y�z�{�|�}�Q�P���_���P���[���*
		�����΁����@�Y���Z�46/�����.���������������6���6�����:�����D:�,�-�8�����8������������Ì́���d���GF�GG�u�v�t�@�A�v���w�x�������� �āɂu�9����Q����������������Q��������-Q�l���N��Q�[�\�P��<�=�D>�D?�D@�DA�Z�>�?���9���4��;�c�Yk\

�.�*'�\���y�+#	�Ձ�

++|����:���v\����Ɋ������G�a����G�b����~�@�A������������F��j�N���G
�R=��!�_���e�B�C�	���
�����y�z�S<�t�����G����*�=�5��;"���@��*
�w
��P���P��������G.�G0�G2�G/���DR�DS����V�E`�Eg�P��Ea�Eb������S�����������������P��%�U��P����	�O��ϊ��
�G"�G#�G%�����R���J�DY�DZ���������������E8=������	�L�{�����M�
���N�����B:=���Q������n������������������G���H�������<��
4"���D��5����
�����P��P��G(��K��K�G)�G+�����P��P��������S���\R�z���B�C���������������Da�Db�p�����q���!�܅M�ꊤ�"�#�$�%�G4���n����Y�9�Ս�4�Dr�Ds�������������O�P�N���݂9�=����X�8���6�P��J���݂8���P��]�M�Z�D����i���h�^����c��ć���R���R�S�Yj�����������V�W�X�Z�[�H���B�\�^�]�_�U�ȇ���O�����a�`�b�d�c��׊�U��������������������������������	��������������������)������X��l�J$
'
�
��R�,�An^�-C��Tn�������JZ�JY�Mq�Mr�Mj�Mu�Mw�Jq���Jr�Js�Ju�Mx�J[�Je�J^�J\�Jn���Jo�Jƃ��Mo�Mp�������Mz�Jm�Jg�Jw�Jx�Jy�?���K�J��H%�H&�s�V�M��t�H�I�����������F,���E�K	�K
����F"�⃅�M��L��L��L��L��F#�i����	�J���Kn�Ko�G��Iz�������������I{���I}���I�����I�M�I��[�I��[�����G���v����w�x�I��q
�!���K���J��Iv�^�r
�Z�J��J��R�R�H��M��M��E��E��|�H��}�`���C
B�@<�q
dY����%F�3

m���J+�J,�I��F�I��I��K�J��J��I��I���L��J�J�J�J�J�J�MK�ML�I��I��J΂ނ'�K,�K-�MN�L��MP�MQ�2���K �4�K!�3�K�K����H��H��K����K#�K$�E�ʅN��Fg�)����n���KG�KH�L��L��L��J�h���HQ�i�j�k�H��L�J��J��3��R����)�����KEK�K��K��K��9�K��KFK�I�8�J#�J&�J$�J%�I�7�KI�KJ�L��L��L��QP�QQ�QR�K�Ʌw�QU�QV�QT�Q]�Q\�Q[�QW�QX�a���D@�F��
_T����	7��
gz���M��M��J)�J*�EԆ��NZ�H��l�b��LT�LU�M��M��B-�;����.g�8��*1-I�����HT�J.�~�ʂĂF<����HI���E=�J�J	�J�H1�9����
'���/1,I���H}�|���3�#�J�K&4�K'3�J�J2�&��J3�%�HK�HL�HO�Jz�J{�J|�K)�K*�\�������*������_�`�a�b�L��~�F.����0�4�K��K��K��K��K��K��K��K��K��]
����E���6�����^�-�4�����d�K��d��Ӂڈ��i��d�Dw�!����H��H��H��H��H��H��H��K��L��L��M^�H��H��L��Kς ���H���r�)�t�H���C�H��H��Q�R�H��H��H��H����ҁ���T�D�����L��L��M��Ma�Mb�K��K��J��J���!���v�L��L�������m�L��L��:�ziL
�Ƀ]�
�I��?��Gu$�C��n�89��H��H��M��M��M���Ԃ�M�M�R�S���T���K��K�����������I=�M �I>�*�j`�H���`�H��H��M��M��k���������6w�}�6
��Q�F��{d��:��P�H��߃T�H��H��;�G��
=
���\��$�?��:9=$�C��_��k+�M��M��H��H��I9���I:������L�5���j�P��S�8t	�H��H��H��H��H��M��M��M$�N�N�M+�$��W

�t	�*�8|O�B�K��J��J��K��K��K��H�����	���N�A�I�I�I	�����M��H��I�H��I������?	�t	�!�A��N�?�H��M�M�&����B�'�(���b���I.�J��J��I$�I'�I&�I%�I/�I1�I0�I2�H��H��H��p�E�q�E�H��H��H��H��H��I��G�I�I
�M�I���I�L��H��H��H��H�I���I	�M�I�����M�M	�M
�M�I��?�L��L��M�M�M�L����M�-�����]��.�J��J��r�s�J��ᄦ��
���dX���l�m		��5Il_I��C\�؂ 1�u=m
�JD�JE�M��M��L�L�I��I��IV�IW�����J��J��L�%�L
� �L�L��L�!�L�L�+�L�L
�IJn�F(�F)�I��I��IKn�{�M��H*�H+�I^�C�M��M��EՃN��}G����J��J��IN�H@�l�I��G�N�M�� ��IaN���I��H/�$�H0�#�G�9��qV��w��
�Nu�Nv�I]�C��-�ۅ^�=��lW��`*.���J<�J=�J@�JB�JC�L�L�L�L�L�L�L�L�JF�JG�JJ�JK�JH�JI��������w.�JS�JN�JO�J?�JT�JU�J��J��Ic�C�u��A�L��p���&�OH��_��6ilw( ��KcT�Ss	�I��I��I��I��Ll�Lm�LjP�LkP�Le�H\�H]�I��I��I��I��I��I��I��I��I��Hc�"�Hd�I��I��H`���KB�KC�Lw�Lx�K^�K_�K\�K`�Ka�K]�I؂]�I��K6�Ha���Li�Ln�Ls�Lt�Lo��C��5��	���I��L��K1�K2�L��L��LH�L��L��L��Inv�����I��d�LL�HZ
��4��	��
�N>�N=
�N<
�LO��	�N8�N9�Im�����N@�NA�NB�Kf�Kg�Hh�D�ၫ��Hi�E��Hj�Hk�Lf(�Lg�Lh�M>�M?�E��J���Ɉ܏��<?��z��!'��s*��Fdn�L&�L'�M=�K����L����l���ł*!'��s,���K����K����I��LA�LB�Ki���5�W�X�A!�K���_��8�N4��c��1ihn(.����R
���If�Ig�K9�K:�L,�L-�Il�>�����I��I��L��Ho�Hp�L��L��L��L����A��?�<�V��k�L��K<�f�K=�f�I��I��I��L��Ip�Iq�H��
���K��Hm���"�L4� �L5� �NW�Hn���L��L��Hq�����Hs�Hr���K��Ev�����C�F0�F5���{�����R�F6���J��J��J��J��F3���A�F1�������6������ł���y_�΁��N�N�N
�N�N�N��H�N���J��J��J��_����H9�H:�Iȁ��ׂ��`����7�c����N�H5�H7�L��L��7���|���t,2�����H8�IE�N!�N"�IÁ���S�e�N�N�N#�J��1�N'�N(�N$�N%�N*�H=�H;�H<���X�+�����Nq�Nr�A� �Ni���Nj�Nk�Nl�C�D�B�����͈R��.�k��	������	�N]�Ne�Nf�N^�Np���������Ns�Nt�������N`�I����Nb������	�	X3�y��5
"E��2#
i"B��M�U;��
���I����/q�p��V���
@����vP8�c��	G�� C'���LN�RQ���������RR�����RW�RX��U�W�X���������������t�� �҈C-�c�f:���3��$�.�q�r�R]�!�R^� ��S����ݖp�i�Ֆp�R��~�z�{���<�b�f;��3���P�Q�R�S�T�U�V�B��M���ċ��E�F�H�I�K�J�H�L�M�N�D�[���G�P�Q�D�I�J�FK�N�N��E��:�I����F�*�,�+�&�(�'�T�����J�U�����J�D�H��9�;��?���.�/�����1�G�������$���%�����3���z�,�R	���j�k�f�g������a��^���������d�c�U���FW�S���f�i�h�g�FZ�3<�"�ԉV���-���H�H�H�6�7�FN�FO�F]�FP�FQ��;	:�������R��R��R��R��R��R����|��,�v�:�;�w�R��R��56�|�������������������k�w�x���|�}�~������t�w�v�u�F`�G��G����x�=�>�z�y�{�\���P�����������������]���R4�R5�偊�o$%#�>����%���Z��q����� ��P=#�*8���Fo�Fp�l�T���,�n���D}���������H���>�����!7+���������Bx�Bz�B}�By���������؉4�����R��R��t�v�������������s�R��w�x�����+����ʁ����Fu�Fv�����������`�D���GJ��
��G��G��G��G��a�G���$�C��E�C��C������������������������x�����������H��
������
����%��&��%�R8�R�����"���	�B�����.�������������������������������R?���R����������F{�F|���R��{��|��p����������������������P�������������q������J���F:�E��a���R��R��R������������|�R��������R��R��R���
��'b"	�Z���E
��F

/
)��I14Yg^�+
��K
	��Z�!:��"��'h�ف�
	J��c^������)�����s�~�����"���~���������|����{��E��E��S����}���������q�~������ ��<����;��:��m
�>�?�;�A���:���S�͓ȍ��S�F����S���_����<��������;~���F���G�H��������������@��@�O��1�����O�O���O�C�C�O�I�B��C�J��#���^�*�H��.���R�R�3�ɂ��������T�(�B��������B^�‰t��'���r�'����"�����녣�����S
�S�O$�O%�S	�����������������������������*�I���6�ځЁ��������E��F��5������5-�Ȃ��ȂK�ނց�?���`���F��F��(�)���2�3�5�6�F��R�����E��E��F��8�9�*�+�$�%������&����E��E��U�����Y���;�<�=�V�����A���2�����a������F��F��F��F��F��F��X��.�����8���F��ʛ����U�R��V��Gt�Gs�Gr�Go�Gp�R��‚a��II�������H������4���6�F��F��F��)�*�F��F�E��h�V�n�-�����:���.�/�l�i�V����C�D�͇��3�Y�l�L�y���������Z�T�[�h���S$�S%�F��F��F�����C�V�ȅ����8����B� �����������#���2�������S�T�O�����F��M�n�^�F��F��F��������_��I;��M5��2����W��
U�.B����/��E�/�(���@�S;�S<�SG�SH�S@�SF�SA�SB�Ba�Bb�ňֆ}�g�F�F��F��������|�j�����D������8��GQ�GR��"���b��S:(������1���
	�����(~�������(����@�QG�QH�QI�F��ڇ��7�F��F����d���鋠��*���G�����Y*���SK�SM�RB�RC�F��F��g�d�e�E��h���i�����b���@N�����4�.����������������p�k�n�m�l�����/���%�&�s�t�[�\�����Ë0���ӂ����0�x���c�����4�A������;���<�����������a�����V��./�SS�������t0���b������#�.�o�������ڛ;����������:������!	�W���:
��E	0

 U(B'	BH%^�
��	=��
P�W��
��Y

�s
/
��4k	������
���	'$�������S*�S+�V�ň������!�W�ɓ����������P���R�����Q����������������������B+c����hi�s���O7�O8�n�o�����E��E��E��E��������r�����B���B�����������������O���QWN��L��!��
�Y�A��5
�u-o������������������M������>���=�����O���N�����������%�Bl�Bm�O<�N�O=�L���M�����ђh�O:��:������������%�&�����������������Gn���{����=����-�L�����G����K�8�C�C
�C
�C&�C�C�C �C�C�C'�C(�SV�SW��(�������C+�����C�SZ�SX�SY��-�L�������h�C1�C5�C3�C.�C/�B��B��C7�C8�C6�C�C,�C-�Gl/�G��G����=�������?�@�>�P�F�8�����H�;�I�6�G�1�W�X�U�V�R�S�T�Z�ɗ��G��G��Gk�����J�M�@�L�K�A�G��G��G�.�G|���RL�G��G������`�a�^�_�����\�<��
���0	����������
FN�b�"o���Rb�Rc���	��
�
�Rq�������R��R��R��R��R������X�Y�����>�q���Rh�Ri�@�A�������Rj�Rm�R|���?�$	�Rg���e�������R}�R~�����������������R��V�����@���7�������T����R��R��N��N��W���������5���������N��N����+���_�`�a����	�d�e�^�\�]�R��������R��R��N��N��R��R��R��=��
���0��������
EL�b�"]������������7�恺�
�*�������Rs�����N��N�����������⇶���a8�k�S��S��S��S��S��S��S������S��S��S��S��S��S��S��S��S�
���������A�S��S��S������Q&�Q'�Q(���Ø��Q*�������H�S��S��S��S��S�-�S�,�S��S��S��S��S��S��S��S��S��S��S��S��S��S��S��ㇶ���a7�k2�S��S��S��S��S��S��S��S��S������Dm�S��S�����l�S��S��S��S��H�H�����k�H��$��,�i�������
���	���遪�F���H��\�����X���م�����
����	�������ܸ�ܹ�ܺ�ܴ�ܶ
�ܷ
�ܵ�و�ً�ٍ�ى�ي�۪��۫�ܽ�������۲�۴�ۮ�ۯ�ِ�"����ّ�ْ�ٔ�ܾ�����۵���۸�ۺ�۽�ۼ���۹��&�b�ۻ�ُ����e��)��d������ܻ�ۭ����ۨ��̗���~�������ʗ��۩���������������ن����������۷��'�c�������ܿ�ه��ۢ�ۣ�ۤ����������+����c�D�7�����֍	��a��b��c��d��0����e��1����5���j��z��+��;��,��.��6�J��y��Q��R��M����N��7��1��0��K��1��-� ������O���k��3���l���߉�ߊ��n��o�����r��s��<��u��=��>��A��@��?��B��C��⃙��w	��}�߀����~����߁�߂�ߎ�߅���߇�߆����=�����������m����y��z�ߓ�ߔ�ߖ�ߏ�����$�N�ߍ��Q��/�5c�D�7
/����
��x��,�/���
��F��H��I��L��M��3��9��6��4��R��S��n��
��g��8�6�%��6��8��9��7��g��f��5��X��Y�܍�	���ڶ�ܑ�ܓ�܏��Z���[�ܐ��	�#���޹�޺�޻�޼���޽��������N��8
��F��E��9��;����S��R��O��:
����K��L��=

��?��@��/��0��1��4��
l���if
��4�9�#��,�C��-��/�7��o��0�����j�Z���<��=�޿��������/�Y��3��4��1���o������;�H����?��C��b��c��D��`��a��L��N��O��J��E��F��K��M��G��f��H��I��T��U��P��R��S��Q��@��X��Z��[��Y��V��W��\��^��_��]��A��B��d��e�ڵ�����h��G��n��H��
P?�
.����>��0����(
�	��h������������������k��l��������������	������������������ȇj��3��t���ꃿ�ˊ��$�������������ߧ�ߩ����������߫��$��ݕH��������������v/�����������0�����%2��]���B�E�����I������������������������������i������������^��_��j�������������������??�-�T+�����v)��������$
���<���y��r���������������������\���؛�؞�؜�؝��l���_���3����*�_�*����i��������j���!����{��v��������w�E���;��������������u��t��������x��y���¿�¿�¿�¿�¿�¿���UL]	|�Ń~���6����	(�$#���������ÓX��������Č߇z������������Ք�������������د*�������Ō����ط�ظ�ػ�ؼ�غ		�ؿ	�ؾ	���	���	���	��	��	�ض��������VK@z�G����������-�رd���������ز�خ��߿�������.��/���آ��ؤ��߱�إ�ئ�ߴ�߳�߲�߯�߰�ب��أ��ت�ث�ج��q�9�k��0��1��������(	:U
��cK
�
>��X�:	5)u""��$��Z

:Z��c�r@����`����#��)�����*��,��$��(��%������.��/�����ٿ	���
��_��U�	������������τDŽ>��Q�����������P��������ӊ���W������8��9�����གྷ�������������੅gH�>�������������fH�>��"��R����ܪ�_��2���K�B����#���������٧�^�9��B��C��A��'���?��s��p��r��-��$��%
��T��.��"����J�x��	��)����o��m������u��L�b�c��M�ݘ�������������ٵ�?�Uh��
��L
�֭�ٶ�ٷ����I����������������i��f�ٸ���
�ٹ�����������	����
����I��ʃ���̓���̃���˃���΃��������J��q��������K��q��n�����٫�?��,�Uw������̸����������ٰ�ٱ�ٲ�٬�I��
(�`�����������:��;��Ɇ����������������������������Ȇ������ݍ�+,�4M��	�u��
�׶��������������
��F��G��D}�J��������
��������������������ݎ��s�N�ؼ�ݏ�����ݐ���ݑ�ݒ��S����u�����������������$�ר������������������٪���t2�\	i����P�n��%��%�����������Y��Z��]��\��[��^��_��!�����'����d��������������������ໄ>�������������������?��<��=��@��������$�a��*���C��%��&��*����G��H��D��E��F�����������������������������������	�����������
����������*��)�ݬ�T�*�V��������-��.��>��v�ݭ�R�*�S������࢒���z�������॒���{��|��"��$��5��#����������������(��������������
��������������0	�i������1�������9��,��
�y;��l�4���G�Z4���J�Yh�s%5���O�P�Q�R�S�U�V��+��,��R�F����\��V��M
�J��N��S�D����[¿���T�J������_��e��`	��a��c��.�";�T��������P��-���l7��k������We��6�ݸ���ݹ�U�ݼ���ÊdY�Ԇ7��������U��f�����V���������������h���������I��Q���8�M�J����5��O����	��T�������������������������������ݾ�ݿ�݋�;����|�y��;��o���� ��"��#��!��W����l��m�n����؇�����n�ٷ��ه����ٴ��)����*��+��,��-���݌�X����v
�p���_	��u�������2�[��Ձ�������Z��w��������4�G�!$]���������������������������������������������������������䃂/��J5���օ����岁�&$���������������|�����}��5�F�$��+������������������������Ɂ��������́����ਈ���1����������������~�5	C�������������������	������������������#��$�������������4����������ꂫ��)	6U
	�񂰁�	"!	����9
	
5(s"!S	��W;K��[�n=
����]����*����������������������������������������������䮁���X��������������냫��Q��A��������@��|�����������������5����2Q����������������񄱈�n���H�8����	��N���6��B��6�y�z��p����������{�l�݁�݂��x��{��z��y��|��}����������Ō��,W��ƍ���+<u0��
�c."�3��A��4vWT
(��&&zfZ����:.�vT���a��Ņ	����������������������
�����������������������������l��m��k������������E�F����e�������-��������؂��T�������Y�Z��ڂ�����ۂ�����
�Ё�������]��Y��n��f�������������Sd�7�߅��c\���ȁ����������������Z���Vd�7�߅
��Wu�0j�݊����ԁ�X���������‡�F���������Ç�F��
��Ԅ
�ج���ݩ�ݪ�ٴ�����#�X�����������������T��X������\����4��1��2��5��6������gu/	��p�;�,�� =	��2{QM#��#(	
d	���J��y��������~��o��p��	�s	����!k`��u������!�������3����``	+���Ɂ�	�����I�����������������
����
�������������9����:����<��=��>��A��F+�eZ���܉��6����0��8��9��\���������-���Z���
��K��,
��;��<��-��.��D��E��<��A��>��@��=��;��I��7����ߌZ$�ق��A��]��٨��&���	���2������������������������������������������䟂
���������௄��D������D�����䢅��ݰ�������ݱ�����٩��&�����1����F���ୄ�������3��2�䭁���k�鄗�b������A����������������
����8��u��9����T��*��U��#��$��.��/��3��1��4��O����,	��$��$��>��?���b�����F��D��G��E��F��)��I��J��K����L��M��4��O��Q��R��A��B������$	F�f��
�zF�]��/�����������������������/��������������0¿�¿�¿�¿�¿�¿�¿�¿�����¿�¿���2��������¿�¿����������_��C��D��H����8�����9���  ���������"
���(���)��%
���#��� ��!��*��+��,�����	
,
��;��������<��?������
������������N��������Q��S��O������R��S��<�m�c#��=��@������A��>���;�l�ń͇o��>�������������������������?����
F�k�����������
���
�������������
���
��l��������C���m�������M����3���4��������+����E�f
��
�u2�R��;�����F��B��G����A�ӏ¿�¿��⦆‹2¿�¿�¿�¿�¿�����¿�¿����τG�v�����m��4��5��8��������"��(��)��0�������������$����������A��D��������C��B��n�=������7�=��D����K��AJ�NJ�s2�͉
��f��<	��=��>��W��
����������J�����X��H�N��I�N�����z��{��w��x���������M��N��O��|�:�&�������������y�B��@�ڀ������;������4��*�0�ṒZ��
�	������z����}�Q�#
	���$������ᶒH������~�W���e?
�����[��Z�d>�����Y��\�U������������������������������]�T���Ẓ\�����(O!)�>���������������������᠒z�������������'F(�>�����K��J��I��M��F
��G
�ڂ���ڃ����P��Q��Y)����Z�׿�����B�����D��@�����"�#�$�%�&�'��� �!�(�)��A���������[�׿�������ډ�܂���*��*������f���G!:�h�͸%����g��h��e��d��\�������]��F��D��E��_��a��`����������������������ᜌ����������¿�¿�����K�=��L�=��%J��,��@����'����A	��u2�ͅ��f��������a��c��f��b��g�ڭ�V����hF�U��j��{������&J�������;�=2����`��9�#��V�=T�<����� �	�
������k��m��n��l��o��p��:�
:�Ղ����cK�p
���u����o��r�����������M����O��Q��P����N	�����ڎ����]����L��"��#�ڏ����Y������F������v��E������	���������������¿���E�$���g
��	������i��V��W��s��t��k��l������Y��Z��G�-	O��	��
���I���}������T������S���G��N�{����������F��O��P��;	������]Y����
����¿�¿�¿�¿�¿�¿��ڕ��S��T�ڜ
�ڙ�ڗ��Q�ڞ��C�R���ڦ�ڧ�ڨ�ک�ڪ�ڬ�ګ����?�)���;���ڑ�|����>�Ӱ��@��A���/�ӭ�ڒ����,�/�0�1�-�������jW#�r��y��Z��ǒ���w�������u��kV!�t��w��’��ڊ�ʄ��?����2�4�5�6�3��)��*��$�ڋ�������������.����u��v��w��������
������J��j��k��q����r����������R�y3�`����܁���F��Y��C]�����%"�>��I��[��d����������`��c��\
��_��f����g��f��}������!��0��"����%����#��(��2��2��-��/��2��%��8��7��2��3��5��6��'�X����/��,��-�ꀅ����ꃅ��������ꂅ����ꁅ��������ڷ��������V��W������S�y��������������������T��U����n�ꬅ�������g��������h��m��D�a��N��O��C�a��Q��R���������'l��)m��*m��(!J��I�����ƅ���������ȅT+��+��P��O��������
�f����� ����k/s������������������ׅJ������������������ꕅ_���������ꖄ^������������������������������������������������������'��
�����u	����~��������������	��7���u	��օ����������������������������������������@��A�����꿄K������������R�����8���;2U
��.����̓_���[�F��������������P��{)N��J����b	��2��3�Q��������������������郟���������������P�E(N�]�����������������؃X��ڃ^��:��;��ۃ^��������C������������������������������������E$-�Y�BD��"��c�~������d�~���	������ށ�ހ�������ތ-������>��W���>��R��X��Y���T$+�����<D�����ފ-�XQ���9��_��Q���H��[��������R��t���\�{�(�����ނ��r�ރ��s��#����l��e��Sq�6�=	�����*��+��,��-��.��/��0��(��)��f���6�:	������������������������[�x�'����d��f��g��h��e��������z����#��$��b�~����5�]��~z�ԁ����g��#��$��-'�Ӌ��g��d��e��f��]��[��\��^��_��t��v��m������h�����ڸ������~������o��p��.'	
��Z��s����l����������	��
�����������������������t����c�}�;�~��g��Z��u]K����������Q��R��F��G���>�N�.������3��L��M��4����������������QMpK���� �.�[���-���ᅡZ��X����[����\��^��U����V��Z��3��4��_����`��5��T����#��$����7��:��8��R�������)��*����0��1��<��-��S����?��=��>��c��d��������7�r��A��8��9��E��������������	��
����m��n��j����k������r��t��u��s��������������
��i����������a��`��_�����$����`�ÄB��s��t��)��*��^�o2�W�q����A���PY��'��%|?il6��!�&
��F�6���������z���� ������ہ���¿�����?������@�r����z��{�����		����݁������Ă�����������������������ނ���߁�������|����^oL ���Ѕ��������}�&\����������{��U���z;����<,����5	��V¿���W��Z��ց���W�ăd��

����i,F
��Ώ��F��G��H��L��M��J��D��I��T��U��G��E��R��q�J��p�I�⁉҄N�ڂ��₍ ������U��%U��W�'�����������������������X��Y��[�%��	�
��F��Q��8���9��:��=��K��L��\����}����~����]�����U�k������?�`$
*?iW,4G.��������}�!��|�"��}�#����}�#��y�ΉZ��H�R��I�Q�����H�Z��`��d���������������������b�L��������i�ꢅ��꤅����?���D��E�ꥅ�����m�&[��#a35�(�����������{��~��]���Ӂ�16�+������������
��
���z��������j��k����≍z	���y��

��
��	����ā�������q��p��Á�����������M��N����
�, 5��T
,49(��!���������đ��n����_��\�l��]��i�Adm�$������������Ǖ�������Ո����������؈��������׈���{��|���W����t��u��s��q�┍��������v�����k��m������e���ol
�X�����-��.����������ڹ�+�Â����������������|��}��/��0��wu�W�����'����2��4��5��3��*����)��(������v�����悷���ޏ�ސ������|��}�ޓ�ޔ�ޕ�ޖ�ޒ�����¿�¿�¿�¿�¿�¿���v����2��������3������%0��(�WT.�
��-�um���݁���������]�^�TO!?	��|fArg����N��k����^��d��_�8����`�`���ܣ���̊D[�ܤ���鞋j�ܠ�
�ܡ�ȈB�ܢ�
�ܧ����_��`��	��
����Q��^��`��b�(�)�*��[��\��_���%�"�3�-�.�/�1�2����Q
��V�����X���'������ǁ��{M�L�ӏ¿����e����e��f��2����3��6��7��8��͈���f��m��}��ȁ��yM�M�1�؅�������p�����ق�ك����k��l��܂����؆�㠇o�؇��i���o��������j������
���㞇o�����ؕ��؉	�#�ؐ�،�ؔ�؋�؊�؍�؎�ؖ���ؗ����G�ܛ���ܜ�ܝ����c�ؘ���`�S�·ӊIG����ؙ�{��F����G��:�����=��>��<�����;��?��@��l��m��n��d��������%��)��&��'��Y{��S-�o��w�N�������!A�����Z��[��B��C��E�Ԅ��.G��G��F��h����.V0���br�݃�yl�(�������'7�����d��e��g��h��
��
�����ׄ�x����X�����������\��-���N��������c��3����Ѕg��8��ф�}��w�������6�R������p�w��q��n
��������~�\��l�z��&��'����ՏK����Ԅ�b��t��y-�!�:��i�����������u���k����u�FeL�A�
u���ڻ�ڼc�ھ��v��w��x��z��l�o��o�7����s��r��p��q�6��]����&����'����x��y��z��}�㡑0D��t��u�������'�_I��1L7	��
8�����y�N�8��&����������˭t�;��*�ل�������۔���>�ە���=�����������;��x����@��y����<���������쓇����������ۚ���z�ۜ���۞�������ۛ���J�����x�y�������|������s�����!�"�B�M��ŗ?�}�~������������O�P�N�S�U�T�������������������������x��y�V��������������"�:�����ۄ�S%�����;�3�������������������	���b�c�e�f�g�h�i�d�ޚ�E��̄H�����3�ۓ�	x������������ۆ�b����
����ۇ���ۈ���ަ�ޣ���ۊ��&�ی�����ۍ����ۋ�ޞ
�ޟ
��@�ҁ��3�ۏ���f�5����ې��5��ۑ��5��ے<�X���q�����������������������������������H������I��e����k������ɒY��K6����������ʒY�Ԁ�j���
�3���V��-�S�؇s���G�ɇc�˦�#���������m�s�t�p�n������U��ۑ���܈z��%��&���
���Y�>��
�n��
���a�˦�$����f��׏����
��
����	�����������������������������������������������������������܃TM��ˠ���� ���������������'��������������������
��
����݃1�|����܄TJ�ƃ��E�˟�����������������������탻�I�������������;���|���������<���������������&�
V	2
��%(*
	��
-�����r�K�7
��$8�!�Z����B��>P�ޝ������Z��[�D����������E���������������������������\��]��^�����w����������I�y�^���w��`����p�>�q��~��E�;��D���������ڴ�������������������b�W��������������������1u>�#/�'�C�%�������{��|�ۿ�Z�X�Y��������򃧍��%��������5������������&��'������������_����[�\���������`�������������������	������������������G�H�I�J���������������K�L����������������#�����������������������������������������������������������������������������������������������������������������������w������N����x��9��v���������������	������������+H�:��9��@������������"���!���������������؀���؁��S�؂�w���-������������I
���
"������L����M��P����Q�����V����K
��!��������W�d��X�c��R�������3���3���3���2�����������������*P�:�n��������D����B������������ߢ�������������&��o�͏��X������������������������p�U��[��!0��#��+��$	��%��&��'��(��)��*��4��"��3��5��0��1��r����-��.��s��u��W��V��X��Y��Z��[��t��\��S��T��U��8��J��K��L��N��O��:��;��<��=��>��?��@��A��B��C��D��E��G��H��I��9�������+g�قJ�t�`2T��y8�����(Z
�x�^�2��|�U��������� V��������
�������������������s�t�����r/���� d� a� b�v�w��J�� X� 3'� 4'� [� ^�_�`�����.�?���A�&��0���6�_�7�_�~�H�I�L��e�f�v�������+�,���!��!�
�w���
>���3��$�8�9�s�
?�<���/��"�6�7�8�n�����p�q�g�yU5���������������������h�x�
A�����
B���������w���B�4�u�����<�o�x���s�1�����!��n	�
C�
D���
F�
G�q�r�-�?
�ׂ��>� ����
���������1�C�B�D�;$���M������M�A�B�>�?�@�=�Q�S�U�V�R�O���D�E�<���M�����&�G
���Z�H
�X�0�I�K�J�2�4�5�1�����N�)�"�x�y�w�"�~��
�ȁ���������X����I�e�����!:�Ɔ�E���!3�!4����E���������������ˇs��������������9@��t�݅b���A�@�����Ç
�ć
������„Z�M�
0�
1�#�������������چ��
���d�������
�������$�!6����n�!7�E�F�Ƀl��F�ȁ�����3�[����D�a���������(������)�������*�,�-����*�������݅��ك�����X�J�n���o�q�����ك�
���m�߉��t��������������������$�1;�������I�5�!*�!+�������������C<�D<�E;�G� �� ��U�m�H�����W�V�%@	w"r�t�����r'��)
��?�a! �}��30

���g�h���(�����f�i�j�)���������
��f������������
�
�
�
	�
��e���������P�u����m�
J�
K�!��!��!��w���
�
�
�

�{���
k���O�P�k�v���k����j� ������w�����i�
��2%�3�!��e������y�k�}�{�|�K�f���qm�+�ej�]�G�7��-
!��{����J�	�8�A�rj�+�gj�]�E������-�
���!����@����!��!���~�놞�������������
I�5�	�����
^�
_�~�{�B�����&@	by�x�����q'�S+	{>�}!=
�s��30�����������������#��#�������
���������o��r�������������Ԃၱ��3�����!��!��!��!��!����������������k��]�4���̓"$
����:��;���L����������������������� �!��
P�Y�����
��y��&��%�
N��$��1�����������������������t����U�����������/����������
!{}���Zcs���?��.���
�Z
	�����;�!	�$�&�(�%�#�+�J�,�.�/�"�*�1�˃L���=���ى*������������
����?�@�
�~���
��و�>�
�C�
�F�
��
��
��
��
��
��
��
�A�
��
��
��
��
�.�
�.�
�-�
��
����
��
��-���.�
��
��
��L�
��
��
��_�`�
��
�!�
��
��
�����
��
��
��
������
ۉ���
������
��
��
��
��
��
��
��
��
����v�
��
��
��
��
�#�
��
��
���
���k��������v���*��)�
h��A�&��
�������
������q�����Є_�r�����������s���������߃����ۇ������܇��݇����������@+���������������
�
��;�:�;�
��
��8�
��v���AL�9�A�B�C�F�D�E�����.�E�/�Z�l����@L�C�E�F�G�;�?�����=�>�
(B��)���x���C[F"���j����@��U�	�
jJ�Ã��K[E���i*���E���������Ƀj+�

����
������������q�T�Z�\�^�[�g�h�����c�d�f�j�k�_�`�U��l�����a�b�`�����������_�����������
"=>}	��	�Z���;s.����P

'���T8�7��������������Q�����o�c�e�f�d�p�
f�+�Z�a�]�����b�\�[�^�_�!�"�|�R~�
��+�[6�S�T���
-�
.�
*�˃��
+�y�8�9�������bN�X&�Y&����
��
��
#��w'���e���B`x$��B�!
k����	�;�&�"�����2�3� �!�P�#�$�F�G�
����o�'�������
���r�'���*���)�������������������&�-�'�+Q	���(�6�?.�
e�r�Q�3�6�7���r�1�0�D�E�����C�i������R�!�S�{�|�j��t�Q�"�o�)�*�+�-�7�]h��1�����#R��������������8�G���������������������&�O��j
�e�(��X0��Y+�u�w�b�x��h������"a���Ce���"`�"O<�"Y�"Q	�"S�"U�"X���h���+���"\�"]�"[��
��	�����Ɔ��"L�߆o���������"��������…n�v�����������2�5�������1��������"��"����������"��"����������ߎ������������������z�{�������	��������	����	���|�}��������������!�������"��"����˄���!�y����"�̇`������"����������������b���������i�Ճ�f���y�8�y�9�����;�����������X�Y�����"������������"��"��"����"��"������]���S�������������������/��/��/��.��/������>�X�ӄ����(?J����}�"��"��>�����B�"@�"A�?��t����-�V�W���"�"�����>�(>6����	���I�"%�"&�U���J�L�R����P��
�"*�")�M
���N
�����������",�"-�".�"/�����M�N�O�"4�"5�������c����������d���͍�	c�b��
_��`�`�"��"��"�������������������
���"������"��"��������"��Ŕ�Q�����ˊ��ϊ��Њ������͊��ъ��������*� *�"k<�"l�"�#�ˏV��������E�"��"��"��"��"��"��"��"��ďZ���y�"���1��"�97���i
���J	�"��X	&Z�^��Y+�����������*������L�)�+�-����������������������������������.�/�!��<���_�Q�R�������������9�:���^�Ց=_���~�֑>a�7���}�3�������������������������S�r��8���"u�"q�"r�"v�"t�"y�"z����	���������������������������������������"��������������~�(�=�'�������"f�"g�������"{�"|�������ҍ�"~�"�������B�G�C�?�@�A�������������
���G���*���ǁ��$�y�
<^}�����.�/���)�*���,�-�$�%�����0�1��#:�����	
$���9�`�q�������"�����'4��[�������������������ۆ�������������&��&����#��%��
�����#	���#��*��"��"���
#���9�\�q�������#��� !���������*�����*�ف��A��	�.�/�����ډf�
���
����
�ބf�ނ�H�=�������������B�C����8�2�3�K�5�C�D�����F�7�8�9�6�;��8��R�����������
���G�S�������������M|��5�������&��&���܊����������N������U���#�#�j�=�;����T���N�I����������������
l��C�5�F��N
���6�^�����
�����$�%����
�u�H���I���!���L�Q�'�#�#�8�;�9�:�-�.�/�0�1�M�N�V�\�W�X�3,�6�4)�5�K�L�(�*���+���j�k�C+�̈́��p�o�q�z�{�O�P�D+�τ��|�}�s�c���#/���$�~�|�|���W�6�/���G�������T�9�����f���#%�#&�#'�#(�	���������
����������������� ���(���)�����N�#2���i���"��"��"��������8�"��"��
m��CK��+�M	��$�9�]�~�#8�#9�������#4�������2�����������������b4���5�6���������>H��1���L���
�?��@�B������gJ�hI�:�;�����������>������������9������"��"��"��������7�!������7��������W�I�������&�-���4���I�:$
���!�Y�Z��Q��Q�!q�����������q�r�������z�{�u�v�s�|�}�����.�2�Q+�/���0���2���3���4�6�7�8�9
�~��
r���0���9�A;�<�I�=�
s���3���H��@�A�;�F��r�s�"�����U�����T�
o��&�%���1��l��$�|�M�N�����������������
p�D�8���X�|����������q�Ç2�F)���������������������������	�����������
�w�x�������������S�c�R�J�D���K�����
`�������Cn%�����kKN'�4��!��
�!w�!x���c�_�a���e�c�������b.�c.�h�|�h�i�k�d���e�x�y�l�m�n�!v�X��Y�
���������s��"� �"���#�%�'�(�&�$����������P��� �y����
�����M�N�L�P�Q�S�T����������Q����)�*�+�,�-�n���(��������������������?\����)���������{�R�X���S�T�
b�?���������
)�
d��������^���\�]�,�����Y�&v�Z�&v�[����
���p�tCn �؁��5�KI'_������
�����[�U�V�Y���b�c���
7�+�H�j�����j����^�M�Ԉ��
a�����r�t�s�s�r�����
]�����}�P#8�Ɂ��Ԅ������������������e�����������������m�x	8���m�i�j�n�k�m�l�q�r`�s�t�������������Z�[���g��������������g��� �!�
��1��������#h������C�w��(!
#���c�m��B��g�
��`��=��F��
c4!C
��*3�.� ���������������� �� �� ������ ����#��#��#��#��#��#��#��#�
�#����w�M� �� �� ����
v�
w� �� �� ��!`� �� ������R�������R���R��� �� ��#�� ������������ �<� ����L����
������������x� �� �� �� �� ���#��#���넱�#�� �� �� �� ��\��	������
�#��#�� փ�� ��#��#��	�.�݈}��;�����<�=�
�.�؈}��
8�ӂC�O���F�	�J� �S� �R�����Y+�����Y+����� �� �� �� ��P���Q����`�j��9���������G�i���o�I���I�
�a���N���]�b������ �U� �U���
9A�
<A�
}�
:@����������!�!�����
~�
��
�� �U� �T�
��� �V�_�`�������Z����������������
��
�����������!
�{l�~�|����������IF���2B�:���18��d��-�+�E��j�)�����l���i
�B��;!'�Ӂ���G����� �� �������!���y��_
����������������� $� ��� � � ��^��� ��� &� (� )�����������������������.�������� �g�����"�����#�$���&�a���b�!�����������������������˅��>�d��������� ������������������c�3�����*��	���l������<G�2��
� !�3�  �������p�х�,���-�*�(���������.�/�&�
��
��
��
��
��!�!�!�!�!�!�'�(���[���Z�!����������R�p���#�����7;��=��`$
	/��
-��.!��B
���@R���P/"h��OG�)U��*2��S
	�w��������.������}����� 2
�a�s�v�t�c�d�b���}�F���,�F�{�Y�]�^�Z�����ڌ���'�����������������O���'�Q���&�T� �\���]�P���'�������ˏ�� T�̏�� S���d2�i4���g1�e4������������5��5��4�����B����N�������-�.�0�2�3�1� B����� C�������������������;�<����������*���Y�����肳J�������E������G�����5�΂s�8�k��9���������i� L� M�����j��E������ȂS��8����� j� k����D�����������Ɂ����������������ƂN�ԁ˅S�q�2�e��8��������������� l������;����
���%�ی��X�!��!��҂�	�U�V�ӂ�	� :�����������������������m;��Q��F�Ȃ��%w��WG�Á��؃]���p� �� ����������(���n���������������?�؄��+v��� ���i�>�?�����%�ی������C�B����/����(���������� �� ��!i�!�� q� r�ႂ�t�d�t� t� u�����ӎ������ v� w�
4��X�[�Y�G�
=�H�I�J�N�O�P�K�L�M�������R�����S�T���N;�O;�U�V�W�\�]�^�
T���� �b�c�d�e�f�g�`�a�
W�
X�k�
U�4�����l�����i�j���A�m�e��V�B�C�D�E�f�i�F�
5&�
6&����7:�3��U$
7��
-Wg.��5
����c@4
��,!c��KC�p��)0��
G	�!���������������!��!��Z�[�
���g���g�V�e��L�e�
��� � ������������%K���
������������肃������������������ 5� 7� 6� 9� 8�P���� ���8������ �&
PM�x�M�]��������8�������������������}������������U�
����RB�r�v�u�s����S����R��T�����
�����	�ك��燝��H��	����i�j�����m����� |� }���������h�z��������������%���+�`G�,���!O�!P�!Q��d�!K������	J�`����O��O�����$�����N�T3����<�X3���!S����#��#���.?
�Ђk�
�a�05�2�3����
�������5�����6��G�H������	�����
��27P��҉�5���
��61P�����#��#������ E� F�;�<�=��>
�̂k�~
�_^��3�#�����H�ރ�5�����B�@���A�I�J������'�#��#��#��#��#��#��#��#��#��#��%k�%x�%l�%m	�%q�%n�%o�%r�%s��$��$��$��$��$��$��$��$��$��$��$���#��$��$�	�$��$��$��$��$�	�$��$��$��$�	�$��$��$��$��$��$��$��
�܁��#����&�&�$����%��%��%��%��%Vz�%W|�%��%��%��%��%��%��%��%��%X���%Y���%Z���%[���$��$��$��$��$��$��$��$��%0�%�%c�%f�%e�%d�%g�%h�%��%�%�%���%���%��%��%���%��%��%���%�%
�%�%�%�%�$��$��%��%��%��%��%���%���%��%�%��%��%��%��%��%��%��%��%��%�%�%�%�%�% �%%�%"�%&�%$�%#�%'�%zE�%�%��%��%��%��%{�%|�%��%��%��%��%��%��%��%��%��%��%1�%2�%3�%5�%6�%.�%/�%*�%,�%+�%-�%�%�%	�%�%
�$��$��$��$��$�N�$��%8�%9�%:�%;�%<�$��$��$��%�%�%�$��$��$��$�\..*�%K�%L�$����%E�%F�%G�%>�%?�%A�%B�%C�%D�%H�%I�%��%��%��$���%��%S�%T�%��%��%��%��%Pv�%Q�%��%Mx�%N�%]�%_�%^�%`�%b�%a�%��%��%��%��%��%���#��#��%��%��%��%��%��%��%��%��%��%��%��%��&�$���������$�$�$��$��$��$��$��$!�$�$�$��$��$��$��$B�$}�$?�$@�$A�$C;�$�$E�$��$��$F�$"�$#�$G�$H�$1�$4�$2�$I�$J
�$K�$O�$L�$M�$P�$Q�$T�$W�$X�$Y�$U�$Z�$��$��$��$��$��$��$��$��$��$��$/�$0�$3�$�$]�$^�$_�$�$H�$a�$b�$:�$;�$<�$=�$>�$d�$e�$�$f�$i�$h�$g�$p�$t�$w�$x�$y�$z�${�$u�$q�$�$�$
�$�$��$��$��$��$��$��$��$|�$	s�$%�$&�$'�$)�$*�$��$��$�$�$��$��$@�$�$
?�$�$5�$6�$7�$,�$-�$.�$+�$�$�#��&�S���B�������"��D�?�Lx�VW��c�L*����B�b����@�B�� ��7�Ɇ������9�bHR���R�<2���.)��^
z�:�;���u��|-L������܅��]�^���������S�������@���‚����������\�����<�\��\��\������B��C�_�_�_
�^����^�����_�_�_�_	�_
�8��|��z��{�H�H�9����rG�U����øU�^ꓐ��A�Po
�^���Pn
����¸U�qy��u?�e����>�_
��
�_��
�\��<�������n�	�K�����Eˁ��‚���������\��3��z?�A�@�?�>�^�������^� �^��^��_�^��^��^��^��^��^��^��^�����H�H�_��
�_��
�S�&�b���B	�{�Z�P���7�c����>��X�,�|�-���:���Ձӄy��~����Fڂ��Fۂ�����Ni����Ni����Ni����Ni��?��@�C��C��ZF�ZG�T�!�J"��f�M;�U�����b��e��c��Q�T
�T��A�f��N|�����d�Zu�Zv�Zx�Zw�T�S�'��.���R�k���8�z	�EE
�s�����t��x��ZI�T8�T9�q|�q}�q~�T3�T5�T4�S�?�G���
�d������I������C�x���EY�EZ�S��S��S�4
��.	���N�k���7�y	c�C,��
�~�����r��y�T����C��C��T
����T����r~�r�r��T����S�>��'��p���]�X�EC������rl�
��ZE���TC�rk��I�d�EC�E\���E_�E`�EX�B���B��Z<�Z=�S��%��҆H���/�c���I�W��
�������Z\�Z[�Z}�Z~�Z����T/��<�ZP�T������G�c��	�N�D!���7�Zf
�ZQ����	�Za
�Z^
�Z_
�T�3�5����ZZ�T"�T%�T&�T#�ZV��;�I��ZO��_�T(�T)�T*�T�)�3���ZT�T,�T-�ZW�ZX�Zq�Zr��S�P�r���;�Ak��Al��TI���TJ���TP��h�������TQ��g�r��TK�TN��� �I�D5�TO����K}�Zs�Zt�q��q�TL�TM�r���9�Z��T�����D2�T��������������C��C��S�	)�(���?�	����c�,����>�
�W�%�{���
�,�����K����C��C������i� ��j�������TE<��l�/�c��U�������TT�TU�!�"��m����C��C��T8����I�Ӆ��‡��"�c��(�E�[�����t��������T@�2�TA�r�����a�M������+�?��?�����������T�T�TH����������l%�j�����w	��V�J�J!�J
�I����I�����M�����r��r��r��r��r��r��J"�����T=�T>�C��C��J#�T�8�p�W���T��U�T����Hh�Hi�M��N��N��T�	�O����"�e�e!w�����1�/������bS�t���ǂ7�n��B���,?���҂u�'�����ǂ���}����������E�B9������]�k��m�z�IE�IF�s��s��bq��y����s��s��H����F��F��F��F��F��I��I��s��s��br��x���1�F��F��N�s���s��_�9�Ж��o��I,���a�q��q��q��q��_��_��\6�_��_��Z��f��Ic��������f��d��e�_�:�Z�����E&��&��'�_��_��_��_��_��_��_��_�3������o��I)�\�E"�_��a���f#����Y���f#�N��s��B�E
�q��q��T͟���C�T��s��s��_��<��+�_���f�T���
'�
x�Ղ�F�/���c�|���`	�g�������o�����E������������F��_����F��������������_ە0��}������6��8��<��7��9�T����"�	�*
�(�f����`�a��	��ل��o�_��F��F�������_ڒ��r�9�zB�q���C��D��E�q��T㝴�_��_������s��s��[,������q��ظ�	����J��K��L��N��O��P�t����o���`�r��f�r��(/�o���)��+��,��H��I�[-���	����q��ظ�	���t����&�[�r��.��/�\�J�������r�A��T��,����
�e�e
p	��������.�
�����bR�p��ك%�l��=��>������"p��|�����m������끃�A]�A^�_���A��A��_���s��s���S�i���T��U��W��b�p����\��9�n��҂��/
�;�����bT��������@���s��s���c�s��s��T�!�f�o���K��o�T��z�����g�T��x�T��x�`�_�7�l������e�����q��r��t�`�d�o�������������`�`�`��
�_��	����	�����m�X[�_��_��N�����m��XZ��`��y��i�p�A}�C��D��E��I��F��G�tW��1�j���I��I��tI�tS�tJ�tK�tT�tR�tM�tO�tP�tN�A��A��T�������I��I��I��I��U�������F��F���p�Q5�I��I���q�Q4�I��I���H�Ta�I��I��I��tU"�� �KZ��ބ��@j�I��G�G�@k�tV��A�K[������C��C��C�����I��I�����[3�[4�t\�ti�Տ�t^�՛�t_�tb�tc�td�te�tg�t]�I��I��tX��u��tm�tn�to�tq�I��I��I��U�u�9�o��/�.�CZ�I��I�����U�t�8�o��0�GO�9�C�C ����F��I��J�F��tz�A��A��tj�tk�I��I��J�J�I��I��TWW(B�j��2��!$.
,�쁠�E	�����7�e�9AF!	�qE��nQ/��y�b�I	p��N
	&������+SP��11.�I�J5�#PI�N�����nz	W���H�@$h�����F�������;������V�J'�E��s&����Rn�s'���r��r��E���r��E�M��M��@%a�L���@1�@2�r��DB����D@�?��@5�������J(�r��r��r��E����NU���NU�E�����Tz�T{�T|�T�T����?��J)�r�,�r�,�r�+�r�(��}�����tF����(�tG�?��?��?��?��r����yz�������������Y��`�X��y�~�C��C��r��Y��a�?�*�?�*�?�&�?�*�Y��a�r��r��Y��]��˅~�Y��b��&�Y����TpS9)��΁�����d����w�~	�쉒�̈́+��#������r������q��s�r��[.��p�I��C����U(�U)���Tw���՞��d��򆁅������ *���ۂ���
������*�q����?��?��q�����U-���C��C��C��U/���U0���Tq��.���������d����u
�}�������*����������G
�Tr������y�d����w���������ۂ��q�����~������q��~�q����s�s�q��q��Tx��7����_�����@āł.����T�@�@
���TyP�����Q����	Q�	R�r��T��E~�E��E��E�E������������T��������T�*
�%�:`
$�쁝�A����e
�тlHu���ށ����4t�Y�T_�Ɓ�g����S^�q�p�a3���v��i���X���?��	��	��t#�ў�t$�A�Y�A��t?�t@�A��s.�����'��@�M��?��T�8�i["���tY�lDu�����q�5�ɷT�%�+����S����3���t:���q����D��t-�t<�t.�tC�q��q��T������JB�r��T���t�t�s(����\��,����Y�r��t4�t5�t6�t7�t8�t9����������t�ϩ����s)����Z�O1�������C��C��C��t*�t1�t2�t+�s
�r�
��^��
�������r�	��^��
�s���K��K��s
���G�@�@����������������U��V�r��r���o�I����q�����?��?��
Y�
Z������
�����s2��b��������s5�s4��b���s3�s�p��s6�s���v��J����C���`�TYZ:/�R��3���A.(��6k�G�����6�e�1@? ����mQ-�z�Eo�Y�-,
%�������#EV��1'�I�J5�o
D�D	����SsY�	��
�s�s�s�������������s��!��$��#��"��A��D=�D>�Z�����@�@�@�@���8����A���������s�F��F��Z����F����X�<X�����T��_�HU���tZw�G�F��a��������܂q���r��m�Ȼ���Ȼ�JG�JH��&��)��'��(�@�C��C��@�C��J+�J-�J.�J,�C��C��C�C�������r��r��T�/?K�+�|��K�݁��N����"���d�)�=Dx�Ԃ��ȃx��B4�������V�F4�s�������z��q��s�s�s�s�@Y���������w+���D�6��W���Db���@\�q��rݒH�qC�r���&�qC��'�qC�T��R^������l���E�?R��ρ��T���X�@X�rՂC	�����t�r��t�t�t��-��.�t�t��k�K��U:�U=�U;�U<�K���������x<�Fa������x<������o�W��>�r��r��F��F��_Q����_R�E��E��s���qJ����T[�r��s ���tWw�k�(D����A�@��؃�A��N��A��~�C����(�=�/�r�.����r��r��U@z6
	)�2
����$�X	6a51^�1*����/$!fIHD��	
�,�\���	�c�/)
 ����F����"��
��	�3���
����K���M
�|�-��n{M��	
�2
����4-	��
���0
�����@�����UY�6�����~��p��N��N��p��p��n#�n$�UZ�6������p��p��p��p��p��p��p��p��p��p��p����p��p��U�6�����rŊ<W�H��p��p��������p�
�p��p��q�q	�U���DZ�p��U�����U������!�+���A*�r�x��$�vz�vy����������q�%6�v05������������������������������
��������e�
u�
v��1g�q�q
�U��:�>�Ѕ(��{���Fe���U��:�>�Ѕ(���J�����4�U˻�y���������t�˕�@r�q�q�p���������U���?��U�	�<�����|�u�u�u�UĠG�U��@
��{�U��H�UŠG�U��F�u�u��
�UE^�D����⊓�H��JH�UF��3J��0�p����V���Aʉ�>����������p����V�DW��>����le����UB�UC�t��t��J��J��U�#����	oP0����x���mn���������Z������oS�oY�oT�n��nS�nT�n��2�t��DO��V�DP��U�v9L����
�#�r�p��p��J��U��v;K�����v�����o �o!���H5�s�r�ؚE�r����_e�_f�o%�L����
�t��Uҁ��N�
�E��B����G���_�U��U���p��s��q�U��U��UӁ�������A�Sf�V����V������e�o(��=�V�����V��V���`
��a
��/��1��2��0�o#�����������o$�r�Vt�Vu�U�2����pZ)�����.��mj���������Z�������U��U��o+���v64��t�v73���vl�U⁕��{�����o������n�KB����oB����o]�o^�U����Y�����n��r�ؚ�r�ؚ�nP�nQ�����m�m�m�m�m�H��H��r�֎�H��U�F�������U�F�G'�G(�r��e�@|��Ո�������N�J��n��r�n��n��U[t��w��2�='��	�ل�B.7;
�e�NA��c���!�z�^�d�h�܁�#��
���o:�o;���o<�o=�m��m��J������oD������"�����#��$�U�L��C��{���U~�U�U|�U}�U\�J��U�K���w���u��u��U�����U��U��U��U��U�	���U��U��U��u��u��U��U��o���u�����
^�p�p�p�l��l��U{�u�������/��0�U�V��x�0/��!��,:7!��'�e����Mh�������U�V����hV��j������������o���1������J��J�����,����������,�N��V�V�V�V�V�V�V�o�����o�����U]�U^�U_�U��U��U��|�s��1�)#��	��=��*5;�e�N@��c����z�����?�Ӊd�n�܂��
��qU�qV��%�m��]�M.�m��]�M.��w����?�o��F�	��+�na�oF�oG��"��������U�Z��z��{+��%���#.*)
���Ə��e�����P�	�uL�uM�uY�u[�uZ�uc�ud�ub�ua�u`�ug�u]�u^�ui�uj�uk����������������u��t��t��U���]�uu�U��fS*8��$���q���b���uO�uP���p�p�p�p�p�p�o��o��uV]��j�o��w\�o��o�o�n���������RS�o�o�o��%�o�o��?�r������q��S�^��vMS��|�vNR��{�
�J��J��J��J��n��՟�VB��	
������n͈
�pI~x���������������m�g�_���o{�m�m�l��t��v��o��^���o��]���m��,�m�m�m�m�[�Z�����o}�oz��Y��[��'��(��)��\��Z��p��q�os���ow�ot�ou�oe�ob�oc�VK����w�UM����'���Â�!�[�z/�#����N�J��J��J��J��VJ�UQ���UN��$�����1�‚���|����Ix�v��VN�؂������y�v��v��n��n��UO�����5�����e�o�n��Vi�����n��Vh�������Vg�_��Vj�a�Vk�`�Vr�Vs�m:�����mB�����m;������$��O��I�q#��(�m?�����m<�m=�q&�UJ��6���Nj�������m,
��S����E�UK��
�5���#	�m.��Y��z�m/��w	��u��r
��s
�m+
��V���VC
�����������
�5lEw
x��������q)�n��n�9�q,�G*�q(�VH����z�q-�VF��$�G�1��ҁ��ȋb�AÂ��VD�VE�oi�oj�ok�ol�om�on�oo�oq�or�u������P�J��o���+�o��J��o��o��UR��u���1����A����UT�UU�n��u��UW�UX���mE�mF�u��u��m(����N��GB�GC�V�R�؂+�����<���rW z';
�=�������#�d
%����y	�����	
���׉з�􁇂,�!���������G_�����&���nz�ny����5�{��o�������-�o��M�o��M��G��$���mR�A	�������@�Y�N��o���3�o����mX�N�����mh�q9�m`�S�m[�m\�m_�S�pC�mS�=��������W�LS�q7�mT��<������mJ�mK�q<���n������nt�������n��p�n��u�
�u��u��u��n��n�u��u��u��n��m��7�U���(�o��o��o��n�� �������L����n����e�Ng�nv�nw��*�u��u���)����V�2��'�&��
����A�� z&?��������$�d
%!�����b
	�����@ǂ��!�����
���Ga�u��v�v�v�v�mq����mr����n��o����I��������pB�V:�R%�I�/���l��Fń7�n��a����I��o��o��v�mu�u�
�u�
�mL�mM�U��с�s�����ՂW��r႓��j,�I>�1�Ll�Lm�oK��Q{����oL�oN�����o������-�����o����V`�U����U����s���	��
�U���m���V��r�����{=�oJ�LF�mN�mO�mP�v�󂓈����oP�u��u��mj�����^�nu�mk��n����o��ml�=�A�mn��mp�n����n���&��'�o������v�U�%
�Q�F	���}�ej�����_����������������������my�H�m|�mz�H�m{�o������,�m��D	������7��E�m��L�п�v��Uޘ��m�Uݻ�����U�=	�Q�@	���ǜ�	�eb�����
�P���u%�u#�u$�v��v��u&�u �u!�������m��N�����Ɖ��Q�LW�LX�LY�LZ�L[�L\�L^�L_�L]�m��m��Lb�Ld�Lc�Le�n��t��t��m��m��n����GE����A��@��VT��������<�N�1�L)�M��vn�M��m���1�VW�VX�m��m���2�m���1�m���0�m���1�m���2�m���2�VR�����o�o�o�o
�o�VS���K���p\�v2�m	�m
�GD�m��m��VY���V\���V]���V^�VZ���m����<L�I���u0�n��n�����m�����m� ���6�\I�m���m��pI�m��m��m��wH�m��m��n��n��VU����
���灷8�~���/�L�n��n�����vKH����m���H�n���H	�v��v��n��n��n��vER�vFH�vGH�m������I�����1�m����m��m�v,�v-�m�����H�m��m��m��v*I�v+I�mɈ���������u�������UAr6
 �)����$��C, B5����Z%'���e,4
Z��1	B�n�!�Z����c�+) 
����O����!��
��	Lq!��"��
�����K���M
��6R�+��n{L��	�2����4	)�с�
+�^�0�����B�����U�;�U�:�A*�A+�p]�������������[�[�����n���m��Ud�m��Ue���Uf���m������Uc�Ui���pb�Uh���pc�n�Uj���Uk���pd�m���m�����m��m��m��m��m��m��m��pe�	�������p`����m�����[r�ˇ��h�����:��;��<��>��?�������[s��������n�m��V0�كf��y�#�B����Uy���U�pf
�n�������n����Ul�Up�Um�Un�n�Uz���T�n�n�Ur���A��4��R������$��Ej�~��.�Uu�Ut���Q���(>�����'���B��������V3�ل���ł#�F;�������Us����K��X�Uq�m�������m��m��mل����m�������m��m��p��n�n�p��p���^�p��pg�������V.��Z�X�>��g���i	!c���A���3�n����$�v[�m��m��m��m��m��Z��S�#�n��������Uv��	��>�8	�āʒ#���lK?Y+t��N�E�ȃ+�n!�v\�v]�v^�pa��ʊ��������]��H���\�nF�nG�nJ�nH�p9�nK��v`�p7���!�qB�p6���!�Uw�����<����(���pl�n����V*�V+��W��X�n����������n�������������nB����nC�p��n�����B��J��J�����B��S킪o�q�n�8
���?k(
J2+����@	 >
F,���z�3�W�
���d3>����]	����2��
�����p�� @���~�4� �����	T���Nq�$����J��������t��t��t����������p��p��p��p��uA�������t����t����J������������y�����������������������
�
�p(�p)�t��J����p����������l��l��l��l��Ls��W�u������S���n0�p�������p��p�p���o��[�������p��p���������H��I������F��G�U����h��m:S�d���jOG���h��m� ��G���d�L<�̂7����s����C��F�������U����h�J:�Q�����
�l�!���	�`	�L2�A���r���������������p…���������Z�v냩�<��[���������`�d��a�d�q���U������H�xf�B8�	�o�S���u8�u:���U��U��ƏȄ%�g�I�nq�n+��D�U����R����U��������G�xd�B8�o��n'�'���nq�o��o��o��n-��E�U����v�3���#
6
b#	x�z)G1��
���k�d�p�l�c��
��0	xI�Y'
�p��
7���(
����V�}�����������p��i�G6�G7�p���h���m����������c��x�L��u��n���M��w�N	�p����me�,�[�a��d����e���������y�N
�m�j���d���dTG���j�#��I��Cӂ6����`������R�n2�� �t��t��U��U����������Va�ą����t��v��p&���Vb��y�p������\�V_�n�u���g�F�\�V5�)]��U��7�����J��J����������n_^s�������%�nq�����n^]��U��7���M7�V6����n\]v���K��J��v��v��qR�m��g�ӂ>��r�_�����e�������.��v�eU�mЄx�ф&k+��$�r�G,�G-�u��u��r�"j(�����d��y�e�r�r�����Ua�j�f���=���s�r������t�����t��t��m̂j����6Q��3��2����1��4��5��h�[�����‡��΂#�c��=�$�|��]�������2����A��A��������B�B��u��v��x��z�V������}��~�V��^�V�������[��B�[��M��M��nh��������|���W�p��B�������V��V��B�B	�[���~�|��]��������s��t��o��p��q��e��f��g��h��i��b��c�V��ng�L��L��nd��j�q[�q\�q_�q`�qZ�q]�q^��ni�V�'���u
J;n�Ӌ����C�et
��_|�ń"�Ղ*��
�i����3�����^����o�wN�[��[��V��_���eu����Յ��SL�v��v��w-�w.�V�������q�����Pr�������
�V�������3�p�����
�Pq�F�K�K�@��^�@��]�V��V��w�k�K1�v��w�w�q�v���w�w�w�w�w�v���v��v��v��v�������V��V��V��V��V��f�V��p������V��s�V��H���eq���U���������w
�w�w�w�w�w�w#�w%�w�w �w!�V��D�����v��v��v��v��V��H	�V��v��v��t��t��V��D����v�	�W/�%��������V���<��=�V��V���>��?�V���A��B�V��xh�wi�wj�W0�7�~_�wT�wU��~_�w\�w]�w_�wZ�w[�w`�wg�we�wf�wV�wa�wk�\����GL�GM�qf�t���[�q����D6�<�������V㡋�ws�wo�wp�wq�wr�����V������������'��(��)��*�����������[��]��^��_��\��k��l��m�v����T�x��D2���GP�w&�w'�V�����V��r�����o�V�+������o\�A
�V��V��V���͉@�����������������������/��0�w?�wA�V����Q��V�$�����q־�
�w>�V��e�l=��,��-��(�l=�V��e�l<��&�l>��)��*�wB�b�V��V��V��V��w��w��w��w��w��w�
�w��w��w��U�� �����[��
&�R�T�d��&����
��*��������x����xy�xv�xw�xx�xz�x{�x|�x����x~�x��x��x��x��x�
�x�x��x��x��x��w�Q(��M�w��w���xk�xl�xm�xn�w��xG�xH%�xI%�xQ!��H�������x��~M���x�����xT�xV�xU�xD�xE�U�������Z0��
!� �T�d���&���������ԅ#����x����w��w��x����w����xF�x\�w��w��w��w��w��w����}�+�Md�w���G�x��x��qg�
	
���~g�ƅ���w��w���������,��-�w��w��wx+�Ӆ�N��N��w��wy�w��w��w���x��w��w��w��w�/�w��w�	"��~���@g�l������w�1+����w��w��w��w��w��w��x��x��x]�x_�x`�x^�v��w���w���v��������V�(��{���p�I����W�W �W!�W"�W#�F�O�V�*�W)�x��W	�W�W
�W,�W-�x��x��x��x��x��x��x��x��x��x��x��yD<p�|��Q��yE6_�y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y��y�?�y��y��y��y��y�
G�y�K�y��y��y��y��y��y�M�y�
D�y�K�y��y��yG?
�yI�y��y��y��y��yHMB�y��y�D�y��y��yJ9n��f�z��z��z��z��z��z��y��y��y��y��y��y��z��z��z��z��y��y��y��y��yF;56�y��y��y��y��y��y��y~�y��y��y��y��y{E���y|D���W4����y��y��W5�W2�N���I��W�z��z��W�W�W�W�W�W�W�W�W�x��x��x��x��x��x��x��z�z�x��x��x��x��W*�����6�yS�wQ����yT	�y[�yW�y^�yV�yU�yX�yY�x�l���z:�yP�yQ�x݂a�x�n���yM�yN�xقb�x��x��x��yW�x��x��x��x��x��x��zG�zH�zD�zE�zF�zJ�zN�zP�zQ�zS�zO�z@�zB�zC�zA�zK�zL�zn�zu�zv�zo�zp�y7!�yW���z^�z\�z]�ze�zf�y
�S�y�G�zV�z[�zY�zZ�y: �x��x��x��x��y�z`�zb�zc�za�V�(��^��e������D�
���z��z��y'���z2�z3�WC����W1���
��H�I�	�z+�z*�z�z�z�W;��	����z����F�z �z"�z#�z!�W$�&��0e�|
��I��y5�^�y7�y6�y2�y3�^�y4�^�y:�Z�z��z��y���y�y�y�y�y�y�y�y!�y���y �W'�H��q9��6�ye�9�yf�yi�yj�yk�yl�zz�z{�z��z��z��z��z��z��y;�d�y<�ym��+f�{��yd�����yr�ys�yt�yv�yx�yo�&�z��z��yp�%�G[�y(��{�y)	��s�y*�y,�y0�y-�y/�y+�G\�WD��4�I��V���:�M��H��H��GN�V��V��V����m+�V��V��V��������V��V��V�	����G�M��z��z��z��z��V��V��z��z��z��V��V��V��
��WE�WF�V�:|��o	M:;jX��=�eY*	����!���!�{�[�*���A�&����)���V��V�����������w����C<�C=�x�x�x�w��w��w��w��w��w��w��x�x	�w�,���w�~����,�wH�wI������G�����G�������V�'�t�������{�*��b�[��.�*�G�-��=�x���x2�x4�x3�x5�x6�������w3���t�O����������w(���w)�x�x�x�x$�x%�x�x�V��~�����V��~�qd�ł��p��3��4��5��8�
��
��x?����v��6��7�wM�����;�v�W,��	�����{�)�O�]���F݄=�x8�x9�x!���x��x��x��x��x;r
�x��x<�x=�x)�x*�x��x��w;A�w<A�V��WM�V����WH�WI�[��C�w��[��C�w��w��w��w��w��w�
�w�
�
��
��w��x
T��J�x�x�x
�xQ�x�V����
��GJ�GK�����˷*�C�-�B�-�B�-�U�;��-�X���>��� ����%�qL��%��
�d�����bx������!��}r���Ё�Iv#H�_J��'W�00lKv2"��
"��\

!��4 O"@��1;�����x��40o
y�	��S���C�l�Dl�	��S���XZ���Gۅ��M��M��X���,�X���X#�X$�X"�X!�X �X&�X�X�~��X�X
�X�W���C�W��W��W������x�����x��F2�X
��0���X��0�s����A��s��s����A�������v�|��e���>�w��3�Dz�	�N�[��[��|m�|q�|s�|v�|u�|t�|w�|x�|p�|n�|o��_�����������������`��dd�}$�}%��k`��f��g��i�|��|��|��|��|��|��|��|��|���j,5�������������|z��
2G��3����-���|���v��,���|{������0����1�|��|��|��|��||���|��|��|}�[��H�p��������������������X�}�}����W�}�}��}�}�}�}��}�}�}��}�}��}�}�����}�x��}�}!�}"�}#�[��c���(�}5����������[���*����#��$��&��'��)����"���W�����2����}�W�����0�}���|f���|g���}������}�����|�2��}'�}(�})�}*�|�:�}+�},�|��|��|�7���}8�}9�};�}<�|�:�|��|��|��}>�}?�}@�|�9�}��}0�}1�|�8�[��G������8�|��|��|�Q��?��@��B��C�|�����w����������~��.����|�V��
��H��I�}E��}F��}C�}D��L��N��O
��S��T��R
��Q
��P��V��X��Y��Z��_��M�[������~�|�
�|��W��&�W��&�|��|��|��|��|��}M�}W�}U�}S�}N�}P�}Q�}O�}J�}K�[����R��H~�[��[��[��|��}G�}H�}I�X�����������//�w��G��	�X��X��}b�|��}�}
�}�}�}�}��{�X�	�ǁ���}m�|�����m�|��X�����	���v��w�X��Ɂ���|����}f��n��p��q��r��t��o�|�	�������3�������������������|ځ���|��|��|��|��|�
�|��|��|��|��|��|��|��|��|��|��|��|��|��|��|��|��|��|��|�����z��*����|Ɂ���}q�}r�Kf�|�����|����|��|�����|�����}[�}\�}^����Kg���������5���������������������5�T��������X7+�7��5��EI\�xL$��
�∺���!���m��
��!������{��{��{��{�����������z��z��z��z��F7�F8�z��z��z��z��F"����~���~�~��w�~������~�{����{����~�{����~�~�~�~�~�~�~�~�~�{����{����{����{����}�r�y�J������{x�F=�{y�}��}��}��}��}��}��}��}��}��}��y��J����}��y�������}�(I�y
�J������{��{��{��{��}��{{��|�Gz�{��"�{~�{|�{��{��}�y�J⋤�K��	��
�{��{��{��W���
��A�x��%�B6��"�8����~%�~-�~0�~4�~.�~6�~8�~(�~:�~;�~&�~'�~)�~+�~*�}��g���z�}��}��}��}��g��~�}���
�}��W��������&�U�K��~�}��}�����(������)�{��{��{��~Ai�ȿ�{ă��}��}�����}��}�����}��}��}��}��}��}��}��}��}��}��}��}�
�X�ʃxd�xd���{ƃh�x��{���{ʃ�{˃�{̃�y*�{̓�{��}��X��5 Xg�Ⱦ�}��}��}��}��{��E�{��}��}��}��}��}��}��}��X���{h�}��}��}��}��}��}��}��{��{��{��{��{���9�{��}��}��{����}��}��{����z��z��X�����*��ER_�xF�N���∼�%k������0�
����M�$�{��	d�	e�{փ�����~��{�-�Ǒ�{ӂǂ�xa������4�}��}����}���x_�}���~��~��}��}��{��ف��x��)�B6���;�~[�~l�~n�~m�~p�~q�~r�����~b�~c�~d��R���{��{��zÁ��{��z��z��z��z��z��F)�F*�{�������{�������~]�~^�{������@��@��{׃����~j�{����Ǽ�~g�~h�
����9�F]�F^�W_���9�����u}�v��h���/T���'����}���J=��,����������8�������������Wq������|�%����X�����i-��N���=��D�W`���J����������h��
�O��@���D��D��Wh�����Wg����}
�Wf�����
����'�D��D��Wc���Wd���Wa��Ԃ���j�Wb�<���R	�[�����[�����H��X1�p���y�p�����FƆS���&�~��[������E����Q�����Q���� �la���~S������*���~T��w�*���~y��|�~z��|�����$�KB�KC�
��
��%�&�'�WS��;	�<�!�>�����,�dt��V�YX����ʁف��
��	����T�!^L��(���ށ��XA�XD�XB�XC��B��C�Xj�Xk�Xn�Xq�Xp�Xo�Xl�Xm�Xx��D�i��XI��E�i�����N��X��XJB�WT��6	�7�N�,	�dn�Ѝ������
��	f��X^������X�X46���X}���X��Xz
�X{
�WU���X@�����WV���X>�Ws�0�ꢂ3�WR��#�Ku�
��
��H��H��Wt�����2�X���[�
��~��~��X��X��X����t�����8���܅��0�2�1��:��<��A��;�Cb�Cc�~��{B��&���~��{B	����������������	
��������������)��*��%���r��ڎm�
��
��
��Wy���	�t�HL��=�(��}�X������H��J��=��@��?��>��C��D��E�~��/�r����K�Q:��5��6��/�~��{q�T���-�FA�FB���������0��2��3��1����W{���g��V�'���E�W|���g��c�'��U�9MR C9���K�������_%(����
���k����~��W"G�R����
	��}"^����P:Il#0�^G	%S	�&/lEP'2"��
��\
��:"G)<^�d1 �����
��
	u�K�K�K�����������Kx���� ��!��"�z��2�z��z��z���L/�K��K��z��3�
���z��1�z��-	��Q�����!�"�'�(�$��W���������U�K��w���Ky��!�B���I�J�H�~�H���~��~��
���~����������~��~��~��~��~��~��~�	�~��~��~��~��~��~��~��{[��v�w�Kz�~��~��~��W��?���
���?
�z��JF�W��G���W��W���k��l�z��z��W��B������zۅ����}��~�K����K�����r��s�W��?�����;
�z��Ja�<�W��B��
���
�;�{g�{a�{c����2��3��4��5��6�{k���{b���W��υ����;�q�p�o�r���s����v��w�W��҄��W�������.��/�z����9������G��H��W��R��X��Y��Q��f��h��g��c��d��O��P��R��S�{����1����K��b��L��^��]��[��_��`�{&����|��@`�)��oO���~��D�D����~��~��~��~��~�����{*�|�}��������������{'��������)��o���~��~��~��~�&�~��~��A�A�{(���{)�~����~���g��h�{�{	�z�
�{�z��z��z��{�{�~��~��~��~��~��~��������������������������������������Q�������{
�{�{�{�{�{
�{
�{
�{
�{	�{	�{�{�{%�{
�{�{�{�{�t��t��W���V�W��@��@��W��+���!>]����kĄk�$/�2��0��W���#��D��	���{O�{o�d�{m�c�{r�d�{t�R��
�\�T�U�X�Y�Z�[�]�^�_�`�S�W}��3*=���OD��CV���p��̑x�V�{���d�����������{1�9����O�{2�9��������"��#���������{>�{?�t��L
D�P�h��&�l���{7�t����v�D��%�o���t�������t����}�t��t������������	�������������������;���0���1�2��������������������������������	����
���X�=��6���>���������<���W��4���4�5�7�8�W~��6)�;�J	<	��G�z��w�V����{=�{<�{;�t��O
D�Y�����z�
D�z�B�z������������������������������
����������������
��%��&�K��K����{E	)�{J�{K�{G�{H�{L�{F	)�~���P����������U�;	i =@��
�ӈ?=5��)�ˁ�����da�?<
���*O��e0+�J��t�Q=�<0��Vb	c�
�(��9���]V;a�cH�����2��*��r����������X���U�|�������������X�����������������X��X��X��X��X��-����X��X��C@�WQ��&��Q��������������z�����{����qf���rh��P�����[���
�������������������Qw������������Qw�K�K�K�K���a�f�A���=�X�������I���I���I���F���I�X����J������I��R�Q������x�Ȣ��y�ȡ��������{���x�h�Q���o�����|����}�������������
��������	�����������|>��|G�)�|D�|E�|F��n�|L�|M�|N�|O�|P��t�|H�,�ʬ�|@����|A�|T�|V�|?����|C�.�����|I�|J�I�I�W������~V&�[����C������W��W��W��W��W��X���%�������X��X��X���"�W��W��|�|�W��W��������������W݁����~��Qz��Y�������|�~~�Q��Y�|�~~�Q��W��W��X��X��W��W��W������z�qW��-�]����E��������������"�Qz�W��W��WƁȤ��{
����Q������&��������������W��W���������ނ�'%�G��݈��W�|"�}�R{������n��"��$��%��#�������{��Èt�{��|$�|%�{�ˆ��������{���F�-����{�#��	�u���������{��|���y������{߅��{����������������������������������������������������������������������������������������������|#�}��Rz�����&��'����
�����W[�X��I(�w�����Y����؅끠�����|(�Z���X��X��X��X��Xʩg��2��L��!�XϨ��X�����M��!�XΤb�d�����a�����

�`�����)��*�� ��"��#��$��!
�H��������������������W\�V�9�V���w��Ir�ƃ!��V�-���{��Gd�Ge�{�V�W]�{��{�V�Xͤ)�|�Is��W�{��{��{��{��Xˤ`�{��Qf��<��=�������������~��0V���	�����������E��F�|)��W���V�������������������KS�KT��<�]_��?��=�]a��>��3��4��@��C��A��B��N��S��Q��O��K��L��M�������E��I��F��G��6��7��;��:�qk�<����Z�������_��`��a��b��d��g��f���
���������������������	��������������v���������������������������������������������T���,������!���v���u�����������������v�r���������������r)����	��
�����������������r*����H���������������H��������n�P��p�����s
��}��t�V��o�T��q�X��u�V��v�U�Xש�_�������������������Xة�^���Y�������X�����n؄��������y�qm������������������������������d���c�������������������������������������������������������������������t����n����Jp��������Q���P��k��l��h��i�������������������������X�������n��RO���6���6���3����9��������������������������������~d��e�K=��������[��\��]����������n����������������Dq����n����������������������WZ+
�����N�k����������7���e�9���@^
:+�tJ���O�N[	c�
�%�����ہ��a)����0���ԁ���y�|;�|<��k��g��h��_����`������|:�݇O��O�������m��o��n��f�]���{��{��{��{��{������{��|��q��r��s�W�
���݇��q��3�E�������T��U��V�|3����v�Ip	���gE����D&�����������v�|4�������t��u��x����������W�������I��<���E����چ�����~����~��W���l��������P�@5�����W���4������W���~�����Ɓ�����������W��������b����W�
�W��W��W����b�����������W��W��W����������������������������������������������c��d�������|		�������������������|�|�|
�|�|�|�|
	��������S��T�|��b��a�W���
������W��|]�|[�|\�|_�|`�|a�|b�|^�W��������W���O�W��W��W���������+�����,����X���F����K��{R���q܁��Rb������KI�KJ�KK�KL���������[����|^��M�.��
�G`�Ga�[�����M�.�G��q���9�A�)����
��A�(�{S���qہ��T��K��{T�|Y�F�ٺ�
��XY�u��G�xp�F)��=��sw����D�D
�D��,��-�X����&�-�X��X����-���[�z��F�@�=������
��
��D�4�I%�X�%
T���h��:
	���V�3�.�e��݊�Q����
��������
D����a�*�\����\�\�X��X��X��X��X��X��X��X��X���M��N�N���U��V�������N��H��������Y���qu�K�W�:��������P��Q�Y�����̇:�Y��Y�����Y��	%�{#���^�I�r3�F�����Y��G��G��Y ��t��������������<������D��D������� �������������� �Y4�Y5�Y7�Y8�Y9�Y:�Y��$�x#�����������Yq���M����J������������L��M��N��O�������Yr����J������������������Yvj�M�2@.��e���H�
�/�b��������������������������\:��	�A�Yw�'����q:�i���A�\����\�\�\�\!�\�\"�\#�\������I��������I��������������Y��P���������������P��Y��Y���Q��^��~��_�����߂���{��|��`�Y$�B`���	�U�U��m����q����Y���Z�����S�r8�w���Y�Y�Y�Y�Y��N�Y��Y��Y�����Y#�~��
\����Պ��q�����q����q����q�����c�q����q������n��o��m��l�q�����q��h
��i�q����q�����q������ih�Y��X�%
O�u�
���"�3�-�e��؊�Q���h�y������C����`������H��������Y��Y��Y(�Y)�H��Y����Y��Y��Y����Y��Y��Y��Y��Y��������������������������Y���5���x3�J��Y�Y��Y�Y�Y��Y��Y���8�~����Y�Y
����Y����Y�����Y�Y;�Y<�Y��Œ�Y	�Y
�Y�Y����Y
@9(�#�o��=.�́�JL�E�e��ؒ����4�2
����������9�\)�\/�\*�\+�Yۘ��Y��Y�	�Y��Y��Y��Y��Y��Y��Y��Y��������Y?$�Yp�Yd�Ye�Y@�YJ�YK�YI�YF�YD

�YO�YP�YN�YA�YB�Yi�Yl�Yk�Yj�Ym�Yn�Y\�Y/0^�w�����Y��Y0���q������\�Y��Y��Y��Y��Y��Y��Y��Y��Y,@f�6
�I_��I���y���8�2
��B0�B/�B.�\1��]��^��_�Y~�Y_!�1�Y` �B5�B6�Y��Y-��&���Y��Y.��%�Y��Y��Y��Y��Y�����~��l��������
������	����������
������	��������������������������U�������N�@��I�����0����F�i�>������,��H��?���gi����z&�߂9�$#	N��u�����Y��������x�\�@�\L����hْ\��[6�������f��t��j�������:��<��������r?�O��=�����y���O����j���u�f��v��w��3�I�wi�B`�Ba�[8���i�w�5�Z�[9���i�w�1��6�~���%��&���������
�����������������	�������������[7���R�Z��t�	�d��
�FE��2�y��1����������*�r��t��+���C���+��,����E���?��9�y}�4�Z
� �m��և]�|�u��,��V�C��9�:�Z&����!�"�#�Z'����Z6�������-���.�/�1�2����[
�[�Z7��d�
�[����[	����o�����������������Z(�
�y�|�b�ف���2�{��Z0��Z)���zi�������Z2�Z3�Z4��5�zr�����Z*��Z+�[�Z�e���F�la���\��`�b
��,��\�C��2����3�5��������y.�`����������t���P�9[�t���n"�g
��J��F�,l������z�{?��~���o�v�����{�y�����}��u���P�7[�t�����IS��������������������y��������v����t�����������������������v�����\��`��B��^�ӃB�������'�(�,�-�����\P����w
F
��}������e�~�׃�nf����
b��
�������"��څj����[
�\X�������[��������O��P��K��L�Z	�*�#���q�D�������Z��[�Z
�*�"���q��D���Y��V��]�#��z�����Nn�\H���w�2�0��$8�i����z����������^��_�\I�@���|f�������|g������������G���B%��C%��`��a���C����G����G������Nl�Nm����y2�C������������;�y����y=�Z�F�_��q
-��
w����	�߂�e�|�׊Ճ���
b����������"�����d3�������N8�N9����������i�z���5�gK�N�5�.��"3#�ij�����;����������������������������^�H�l�/������v����[?�[C�[@�[E�[F�[D�[A���J����V��?�������_���2����\S����\T���^��.��/���������[��������z��[�e��J��f����?�ǂ�D���q4�@���6����U��!��������9��:���q“��������[K���P�_������x*��4����4�[��[��[L�����s�x(��7����!��3��<��=��4��5�[D��b��H)��b����<����N�h���?���z1����U�� ������[�������������
�[��[�������[�������S��T��P���[���������lh�����w*
����������������\k�P�u�����BH����^�h����G�*
�����������$�h���&��%�h���V�?��������W��sԅ
�[��[���X�[ﯯ������������rE-��
���!� '�P�[���������>����Z�2�y���L�y��	��H�y���K�Z�2�y���G��C�y���N��@�M���<��?��=��P�_�b�`����Z���rW�U��Hl�N2�N3���Hk�Z�Z�Z�Z�Z�S�T����{��[򯲁�,�x��Ձ�� �B����Bh�����������������������������������������������������������},���v8��	��� ������x

��7��8����:�t�y���\��`��]��^�	(����;�w}����y����	+����4�w����i�	'����=�v��Z�	-�i�G�H����������[�������������rq��

���� &�P�b����j�G��G������zj����������l�������w�
�[񯯁過���z����>�L�V�N�O�M�P�Q�U���{����� ��!����#��$���{��F���{�����zW����������zW����,����������u��������]���Z�Y�������݂�����!���0�g{��G&�<8��)��N�����Á����V�����`z��?�z���������������8�9�A���B���;�<�����m�������������?�@�C�	��;����{�����{�����Q�R�M�N��I��J�������[�\�^�_��z�Y�w����������D��������G��S���{���������������������܃!��������������g�������h�V�Y�Z�W����y������F.����~[��׃����������������~O�������&�?�x��J?��p�������������������������yt���ys�j�n�r�k�p�o��������>��$�u�H��p�����)�x�������,�x���+�x���*�x���-�x���.�x��y��������p�=�z��{�|������p�<���Z��Ѓ-��"��ua�)�!R�K�����������/�u]�)�����:�����D��������A�0����B�0����C�0���Z�W�����	����0�S�����	��g{��V"�<	���T#ooK�����Á����u�<�`z�����������IC�ID�������\K���p���z�7������{��������������Z�����
�o
(��̂�	�i�T<E�`����Qj��4�i������]�_�`�^�b�[�\�������������������i�j���c�d����������|���������������������������ׂ��p�q�r����r���B�~4.����������C���y�-����������\d��e6��������5��|���������w����\e���r�������ۃ���x����~�y�����X��������������u�9���i���
#
��������2�{�|�Y���}�~��������#���z�{��������������������P�-^�x��7���������������|�~�}�{�x�y�ՅYN�	}�օYN�6�	.�	1�7��������������v��
��F�(��G�#�v���l������x	��i�uy��c��n����v����K��K��������w'�������5����?������u��Ӂ���p�F�����
�Z"���x.���x/���>���������x,��	�x1��������<����x2����u�4�5�������|t���Z���8���������u��с�}i�F���L�Z �������vd��������Q����x6��	��s��
������	�����Ng�Nh����������������������
���z���z
������Z��v��x@�"�Z�������x?�"�Z��Z��[�[�Z����U���
��A~�TN�F���H��(-XD2"rIttX*OA���
B�i��N�����{��)��I��>Np72?|�i��z&����$#V���2������������:�"�#��8��������S��F��G���S��B�[U��=���K���\���Z��;����������[!�ԉ�|������������������������������["��}��������4�����a��b������}{���w�������������Y�����\���]���Z���]����y
�������������D����������������E�����������%�&��@��V��+��.��-��,����Y��������������+��-��,��F��P�w��I��P��H��O�w��G��J����5��6��K���[���΄�&l���B�B���������!��"�� ��*���ǂ��Ȃ��[����
����������*����Y���_�t3��)b����9�z��	�/�	�		�X�Y�	��l��o��n��m�[��k+�Ɂ�h��
�����.t�A��[ �����X���Z�e���3�B&��Y���[�t3�4��M�J�j/�W]��P��N�I�����O�Nw�Nx�����N(�N)���x"�A������%��$����#�x#�F�G�� ��"��Ɖ^[�wt�������������qÓɂ@�q����?����#�������(��)��*������Fv�Fw�Fy�Fz�F{��
�T�v���|�����'���x)��s��t��x��y��)��.��/��2��1��0��3���������v������[:���ը���-����_ Tw��NI���r?�y��+��Of����������������6��Y��i�s����2�[��j1�����C	�sE�Ђ���
����s�����Y��6��g�����_��`��a�NT�F~�Fq�Fs�Ft�Fr����x����������e�{D������x������E�тT��!�����d�уe�����������
��B
���u���������������C�����'���������N���h��i��Z����������8���������������*��������vO���%�sށ���wO�����Z#��/�:�g����~�2��#{E���T(�^	V�e�
���%D�����t����9$��/38]��������0�M�,D����C�����7�x
������x��������������s��n�o�a�e�g�c�����s�������������������������s��q����������v�w�x�[%�E���Z�wE�y�U��>�x/�B�m��?��@��.��Y�{��������	�
��[&�D���X�l�7�������W�x�����k���o��W��#���
�����q�|���r�y����l��o��W��#���������������������m�|������������	�t�����[�m�w����7o[�8&��-�f	���k��<��g�����h��]���|�[��a����
D[�7/*�t�����T���������h��t��u���	�;�w
���[�������[�������������������������������~�����������������#��y���;�y������"�������Z$����s��~�10
y���N�]	#�f

���Q�h����4$m/fZ�}�:�����k��|��}�7�9�:�<�8������j��
�}��l��I��J��G�{��H��D
��B��\q��
�w�����[���3!d7��A��-�f	�
 �X�K_
����]������������������x*����[��E���,�t�(�x�D����������x*�v�����������vv���vv��*��)�G�����\s���u�������Z9�!�0�|5�M����������������[)�h�C�y����������Z:�������E��������~���g����c��������	����
������h���������� ���ɂ8����t��Ȃo�F����x�NC�ND��������j#���ǂl�F�����������������O����P��������~���x����c�P���i� G���x��������������u���v��~� ������L��L��L��L�U�\tx�j�W�`�e���_�B�ɂ�s���م��� ���������������������������Bs�Bu�Bt�\��	G�\���������
�������Bx�������By�\y�\z�\v���\w���F�����F��������������������\|��P�_�ŝ����l������W��X������������g��e�M��@��f����������\��������������������������������������������������������������������������������������������Ns����������������Nt���������<���������������������������������	D�	E�\ux�d���у`�e���G�
j���م��� ������������܂��
��l����(��+��)��,��-��
����	
��I������
�����������������\���X��\��\��F��F��ނ	�S���V�у���#MV����
�W��
0�X�6����2	�z��b	�&Y�с�a���`�
L*����D��	.
�H��g@W��������ig�(})V��[�.�b0	.	��
>��Q��`&����B)��?��^
8�,M�=}�����_*
""<��"��b�M��	�E&�	��\�
��2�]��o �]��o �s���
� ��\��\��B����������������\���2�O���[��\�]h�Y�z��e��M����7��������s��]�D��s��\��|��:��;�]i���e��M~�%�7���D��D�����a���s���������)��*�]

�]
�]
�]
�Z����0�����i��e�'�HY�HZ�H\�H]�������u�Ss��v�������������]Z�o�^D�q��q˕��Z���?�]D�Z��e��f��g�����]�L�L�]	����]S	(��
���X���e�'4���S�]S/����]R�]Q����]T�]ς���Ӆ��Ջ����K��K��_r��,��ԉ��ؼ�k�]���Z������]��������\�rV������������]���p��$�]���������#�]ׂ��]؂��]т���?���������C��C��Tղ��wo-��)�E\������������������������������������������������������������������'�k��h�����]#�z�]$�y��L��������������������������N��O��M�%�Tֲ��wJ,���K������u��v��.�T���i��w��y��x��~�������������/�T���h��z��{�U�r��.�C�8_?�Y���x3�����kq�e���7�t��	�gP�~������������\��\���8��9���0��R�Z���W�Z��Z��Z�	��O�Z��Z��Z��Z����/��R�re���Z��Z��r+���U�q��-.�Q\�����u3�����g���:�6�Et�gP����������~|;�r*�K�r��o�Ko������r'���q��1��]��e������5��6��D��E�\�i�������\�i����������q��1���N��H`�t��f��g��^��_
�]K�R���C�e��І"��(�P�������������������|m����|h����������������]_��ً����9�]`�X����������G��G��G��]]��e��ˆ"��&�O�B��B���y�e���	����}��|��I��h��J�.�T׋�����H��I�]l�]p�]m�]n��&�T���Q�!�g��TҊ	�M�$��)�T�����M��N��P��Q��%�j��,#�T�F��	M����X�a5���"�`��
�c�6��	<
X�Q@����
[��}��G����
a���ā���k�����Q������	�M������]�M��]ەS�������n7���I��3����]��]��]��s��s��s��s���
�������]��]��]��]����s���������������U�]O%��
�Mc&�Z�g���>�̇O��p�b����E	����k$��~}��
�H�������ȁ��b����a_��	�]��	���_��`�]�1���_��k�]�F��F��F��F��������F��F��F��_}�_��*��:��+���]�1������[�B�C����F��F��F��_��B��p����B��������������������������_���
��@�_��=��p�r3�]����]��%�]����]��]��]��]������uO6�IS��4�]��]���e�]��]�����y�]������uN6���uO7�r?�r@�]��]��]��
�����4���uO6�]���6�I�����]��]��]��r5���3p�i�7��b�����
��������������������������������������
	���������
������
��������ꌴ�w1�	��	��	��]��d�-�⁢�qb��������Z�H�l���?������B��F��F��]��c���2o�ea��s�����:����s��s��F��]��]��������K��F��F��F��F��F��]��7��J�R���Q��O��P�I��I���p���Nd�Ie��r�	��	��]��Gg���nP����Z��]��^��_��[��a��b�� ��U��V��W��X��S��R��Y��g��h��c��d�]���7��i��k��j��l��m��n�]�����u6T��j��k��o�]����]����
��N�]���K�]��]��T���"�a�����7��Y�f����,��
q���!�����������`���������F��M�I�_��_��_��r6�遢���f���s�y�`�J����������]����i`����������D����iY����������]��]��F������������i����]a����]b�_��]'������](��H�`����]��]��]��_��_��_���U������_y…]�������������������������_z…\	�����T��V�������W��Z��[��Y�����n7���G�d�4����n�M��M�����N�N�?��m��n��l�/���)�T�����9��d
	&����� /�[����	����
�=O������ �bOf������,.P �}:��
 ~��#��'1��������1l
B�
�ςb��Ytf����*�b��R�����dW?l��9	��'��>~	%�E��o�p�Z��E��]�n��sP���p_�Ǻu�����Cu����sQ���p^���t�����Cq���������]���]��]��]��]��]�ˆ��
���sR�sU�sT�T��T��^V����sO�Z�������Z�������S�T�T���������U��V:�nN���?�B�A�@�s}�s~�\�����9�^�^�\������\��\��\����L��b��r�G�H������s�E�*�T�����T��T��T��������D9�nM���Z��+�^ԕ��^��^��^ו��^����s��s����\��\��\��Z��$�Z��J�K�C����������G�H�I�T���܄��  �؂���s�k���كK��!�z�qq��=�^]�ٍ�����JM�������^`�^^���^_�r/�r0��7�]��]��]��]��]��T��k�]��E��E��E��E��T���	T�6��tU�K�v�Z��[�������H��Z����\��Z����Zӂ��\��^��^��^��Z��Z��^�	����/�^��^�	�^��^�
�^�
��|�������}�^��Z��^��T������� �������q_��m�F΅D!�z�qq��=�sq��uA��9��:�^ڔ�,�tZ�M���p�E��E��E��E��^����1�q���q���s��s��L�L�\��������f�����BH������j��u��
�H����Iw�����^$�I{�^%�����T����a��&�o�BP�	X�	Y�Z��^
��/�	V�	W�\�����	T�	U�T��!���`�%�Z��Z��^	���Z���Z��_F�_G��5��6�U#��
��7C��������fm�,�4���l�����l��m�U$��	��y���������h��������k���xT��@��z��A��z�^!��:�^"��9�^�^�^	�^
�^��_��`���������\����	�����%������j��t��
�����������P�Q��S���������pĂ
�\����L�����j��W�Ix�Iy�\�������Y��Z�_?!�L�����������e�����L0�����H�H�^&��_����^*
�^)
�^'�^.�^0�^2�^1�`9�����F_�]�^�H'�Z��Z��	��	��	��	��T����T����Tʆ��~�0�H��Tˆݭ_�{]�H����JS�\��_������_�^7�^8����F_��3��4�2�H����Z��S��
��
�d���.��	�������;�^��
��bQ�
{���l.����(��)�����Eu�n�؁т����=��.�U����������|~%'�X�Y�q����?�r��*��+�\���������������Z���Z��Z��Z��Z��ZŚ�J��J�s^��0��1�s_�\�������e6�N�y�)��3����r�N����_��A�_!��H�Ji�_��B�_ ��E�A �A!��8��Z��[�T��
���^��
-:��	�����؊0
��5�dX{����"�wa��f�ȁ��=�?V������������[��\����D��D��T��T�������eօ������R���T��&�G&�����\��k�������T��������
��������e0���J�����^������^��]��Z���7��8��q�q�������M�N�q����b��q�����:��;�L+�L,�^������^����ȸ�	��	���?���fC���M�����^���%�^;�^:�Z��^��^<…��^?�^=�^>�s`�sa�q����sc�q����q����b�c�B�����s����fB���M����s�����x����w�B��B��i�T��
�l�F����$�q`�B����(�����]��^��_��`��02��1�^D�^E�\�†u��&�\�†w�^A�^B�	�������O��S��T��Q�z����	��������I��J�y�`2�������q��`3�������Z��%������J���2��'��,��(��>��@��?��A��B�Z���������J���2��-��.��}��f��W��Z��[��X��m��q��n��o��r��s��u��g��h��k��v��~��b��d��c��U��V�T��	ra���D����x����ק�'ßTßU�_��Z���E��G�_�����_�����,�
N�_��_��\ۂ�b�n��'���9:���ƻ�������6��8��7��:��;�\��ʄ9��V
�`5�`6�i��
�j�_:��C��y�_;��x�T�!��/��&���Y
���
�� '�����	"�������O���{�bS1%�#��.n���

r��
��$)+?����
��1_
E�
��
��|��ArZ����*�^��<
������v��5$U����n$�������N���@��A�N������_+�_,����Ju����Jt�����L$�sz��zN�������s{���zN����B�������	��	��B�����=����iD��BV����B��q�r��>����nc���Z������f�B[�g�l�m�H,�E����E��E��T�	�&���5�����R�h��H��E5,���3�����E��E��E����x��]��F����H���e߄�v�����5�������7��8��D�B��]���N>�DžB��p�ZF�^G�^J�^K�^H�^L�^M�^N�T��]��E��z������B��s������sJ�sM�sL�sK�L"�L#�L%����W���h!�e����Q����W�h���K�T���)����)�ےQ����A�����ɉ��*:�bY�)�����:{�&��)3
*�!~�m���q�����������s(����!�F�����!�	����sk�sl�P�\����J�.�SS�^R�^S�\�����2������@I�]��T��*������c9�i�
)�������s����e��}�G��������T��Z�����_N�_O�^��^�����^������s���L��t��������e��|�G��b�H)�sm��ɗ�sn�T���b�b�E��t�X�^����^��^��/�1�0�T����^���D���^��\�‰p��v��w��x��y�T��‰n�\��T��Z��#�Z��!�M��M��]��]��Ef�^���O���^��^��^��^��^��^�����^��^��^�����T����I���'�U���;�q���G��҃�������@��A�T���)��	�T����{�Y�AP��҃��0�����������H1�H2������pi��A�����H@�HA�L=�L>�qӘ��q����N��N��HB�HC�������-�>�y�b�A��A��A��A��A��B�
�B��B��B��������-�6�N
�N�B���-��.�`���oR���ω�������DC�N��N���	���A����N����N������������N�������������M��HG�������y�@F�����HD�I��HE�N��N��B���$��%�I��I��`�v����?�c������������H��H������E�������"��#�B��B��B������������T]��
%���X�ݔ���)�d�������T�"���t����]��o��Z:y�M��]1�]2�T_�
�r��r��M��I>�^p�^q�^��^��I?��m�P���n�K��K��q��T\����Tn����T`�^d�K�^{����y�Tc��"�J�^y�h��1�^z�h��1�^t��?��"����������q����q��^|�^}�]E�]F��#�������������Z��Tb�Ԃ5�����7�Δ���$�e��ؓM�y�C�|���9�K��K��_�q��,�r��5�_����_��_��^u�����3�Ε��$�fC5�S�C�x����_����+����L�L�L��r�]}������^�]H�]I�^��]~�����Td�Te����q��q��Y��B�z��?����������������r�����]@���T^��%���@��X��	�����p������T�%���v����\��q��Y9w�_��_��_��r��^s���e����y�Ta	�Е��������n/�"�{����Tl�Nz�N{�Tj�܃��Tk�q��q��������^��b�^��a�^��̴�x��_X���o,�����N�M�����N������N������`��,�	��FO�	��HM�HN�` ��+�HL�N��N��������N��������������������������������`���	���1�Q�
Q��
��
������
��	��
��
�
R�N��`��o�������N������������Ax�Ay�����������������������N��N���
��	��
��������������������`"��~�����#�K�M�E0�E1�E3�Az�`#����o,���	������8�K�[�������"�A{�A}�A~�A|�O�O�O����r��U`C<�������(.�����o�H��!fN)�<Q�R��J��
���[���\��W��W��\��\��\��\��\��\��\��\��W��W��W��W��\��\��\��W��W��W��W��'�R͋�R΋�RۃI�ˁ���U%�U&�\��\��R܊�$�����\��RՎ��R׃L���c��c��c��R��R֎��RԃK�U!�RكP�R��?�y
�V���Y���\��\��\��\ς�]��]��]��Z�\��Rь
�U�\��\��\��\��Y��Y��Y��Y��O�%�+a��L
����l�^�Y]�Y^�b�b�Tb���Tc���O
�R �v�X��^�O �O���UF�UG�O�\�^�O�s�s�X��O���Xv�Xw�Xx�O&���O*�b&�b'�Y[�Y\�O+�O�Q3�c��w�OX�OY�UA�UB�O�,�3�UC�U@�3�O2�c/���t�Y�Y	�X��X��S��S��S��b�b�S��b%�b	�b�b�b�b�b�b�X��X��X��X�
�X��X��X��X��X��X��X��X��X��X��X��Y
�Y�O5���OK�OJ���O?�X��X��X��X��X��X��O3�b/
����OV�O7�O8�O:�X��v�b!�b"�b#�b$�O1�{	.�OC�X��OD�OS�O.�OT�O/�O0�OB�y1�Y�Y�X��OO�OP�X��X��X��O��)x��L
����k�O<�UD�UE�^�^�^�^�Q���^���]��X��^�^�^�^�^�^�X��X��X��X��X��X��O)�X��X��X��X��Q����X��X��X��Te�]��]��X��X��T��w���Y���Y�O[�O]�O\�T��w���]��]��RN��X����
�G�j
�O-�{!8�7�K,	����X�X�}�b��U��U��U��U��U��Y��Y��S+��
�S,��	�aI�Y��Y����]6�]7�S.��	�Y��T������Y��T������d�Y��Y���T��T��S���w�V�Y��aX�aY�S���Y��Y��Y��Y��RQ�=6�*		�H��<�]E�W��]F�W�	�W��W��W��Y����Y��al�af�W������C�Y����]L�S��=������Sƅ>�G� �a^�S��S��O�����Q	�����2�Y����Y����Y��a]�W��F�"�T��V	�0�T��T��T��SÅ>�M�%�ar�as�at�][�S3m�灓���0-	?������S5�H��U1�"�U2�Q�S4k����
���1)��X!�S7�S8�]~�]�S������i�Y~�S��S��S��J�U4�U5�]\�]]�Y��]^�]_�aB�Y��Y��Q҇7�X
�X
�X�X�K�]X���X�I���O��]Z�]g�]i�]j�]h�RO��	P
����
�D�m	�\-��

G)��J,��W�Y��Y��Y��Y��X�j�X�Y��Y��Y��S����Y��T��х�]p�]q�T��T��a{�Y��Y��O��1
_����s�j���|6G�
��#��U��		�U���U��U��U,���X*�]w�V�Y��Y��U��S��%�z���]x�U�^��O	���S��O
���S��S��O��=�d
�p����	���U��U��U���U��RR��X&�X%�X$�b��b��U��U��U��U��U��X'�X(�U��p���U��p�Y��Y��]s�]e�]f�]b�]c�S��aP�aW�S��S��S��S��S��S��S��T����T�X3�X2�T�O��O��Vj�_+�_,�P�P �Xo�Xp�Xr�Xs�O_,
d5��
�,B��?BP����-����)�#$((��
����D���a��^��^��V�
�+�]��]��Z-	�Z8�V��V�
�V�
�V�b��b��b��b��bm�bp�bo�bn�bq�br�Xm�U��SljZ���\�\�^��^��P9�S��S��^P�P:�P;�^Q�S��Y���\ �\%�\&�P<�^k~��^l~�R�O���������^��^��^��^��^��^��^��_�_�_�_�T��������U��U˄z�������Z<�Z=�_��_��Z?�P?�U�j���L��L�^!�U׉T�U��S�U��C�U��A�O��>�V��	�U��U��O��U݉Q�U��A�U��@�UމQ�U߉Q�U�Q�R�ʅY����Ti���w���R �W��W��VT�VU�Yͅ��Y����Z1�Vb�y���^��^��^��^��^��^��^��Oa6%Q�����q�N	�'�
�L��WI���^��^��^��P@�PA�O��`�`�O��Z%�Oc���Oe�Od�P�P�V �V�V�V�ObZQ��i���M� ��$�g��S�R$���N�9��U���R"�2�%�U��U��U��U��U��U�	��Q�R�%�^\'���Xn�E�^]&���O�}�>�̉A�^��^��^��^��_&�_'�V\�V]�O����/���P�P�P�P�Z(�O�����
��O�����O����?�ba�bb�bc�be�bk�Y@���bj�O`,X��	������>BP��&��(����(�0��

)
��
��Y*:
��W)�d�b*�b+�]��XK�XN�XO�XP�XL�XR�XS�R�-�XT�XU�XV�XJ���XW�XX�XZ�X[�d�b��b��V$�V+�V,�V-�V'�V1�V2�V&
�V%�V(�V)�T�XC���^z�^|�^}�^{�c��c��c��XD�`�c��c��T	�T�X\�X]�R@�U��U��RA�c��c��c��c��d�d
�d�d
�d�d�d�d�d�d�d�d�R*�؂ƃ��j�قC
�`h�_�`i�`k�T�PC�郒�N�B�Rj��M���S��S��S��S��_�_�_�_
�aу�^�^��V`�T�����c��_�_�T�h�T�h�c��U��U��W��W��W��O�v<��.C7��	-�
��f��9:=��
����O���^?�^K�^L�O��O��P�D�W��V�V�VG���VK�V5�VH	�VF�VM�V6�V7�V8�V:�V<�V;�VA�V@�V?�V9�V=�W��U[����o�P	�S���U`�x�Uj�u�Ua�v�Ub�{�Ug�Uh�O�P>� �����ރV	�������O��O��O��\>
�O����\9
�\6
�\7
�O��B��X��O����O����O����\@�\A�O����O��O��O��}�_!�_"�O����Vh�Ve�O�b��b��b��Vf�O�O��O��ZM�PD�B�^��P=	���PK�PL�U��o[`�^H�^I�U^�U_�U����nX_�P>	�PJ�TÂO��7�&�O��O��P#+�U�[s�C

��	���Á�8
�Z_�Z`�_T�_U�b��b��b��b��b��a��a��a��ZS�Za�Zb�ZT�_C�_D�ZY
��~�ZV�Zs�Zt�ZZ
�`�a��V��ˊU�V��ˊU�_V�_X�_Q�_R�_Y�Zk���Zl�Zm�Zn�P$��U�[s�C��
����8	�S��S��S��a��Z]���y�	�Zy�Zz�Z{�Zw���{�Zx�Zp�ރp��Z��_]�__�_`�_^�Z�a��Zq�ބu�Z��O�L&"���σ"��+��	���T��Pr�	�E�Pu�Z�
�;�b��b��Pw�Px�Z��;�Z��b��b��Pv�!�Z��Pm�Pn�Po�Pp�Pq�Z��b��P���S�P��X�b��P|�P}�Z��P�b��b��Pa�
�ʄw�P�P��Pe�Ph�Pg�Pf�P��Pb����P��f�P��f�Pc
���_g�_h�Z��Z��PXc����Z��Z��S��S��PY�}��+�c�P��P��$�P��P��P��P��P���P���Z��Z��P��P�
�M�\��;��A���V��Z��b��b��b��b��b��b��P��0O�A;�*�?���c�b�
�b��b��P��W�b��b��b��P���,�P��P��P��Z��P��P�
���P��P��P��V��P��P��V��P�	��"�P��P��c�c�c�c�P��P��Z��P��#��P��P��P��!��Z���P��Z��Z��P��P��P���
�c�c�P���+�P��P��P���?� �Z��Z��Z��Z��Z��Z��Z��c�c�c�P��P��c"�P���<�Z��Z��V��<�O�L)#;���̃$��*�����Z��PS�PT�Z��Z��P[�P\�P]�P_�P����Z��u�Z��t�P�0���K�Z��Z��Z��U{�Z��Z��Z��Z��Z��Z��V��V��Z��P��	�Z��Z��Z��Z��Z��Z��Z��Z��Z��Z��Z��P��Z����O������u����6!
3�,����'

0$��!�a?

r+���Z��n'�Q��Q��Q��Q��[B�[C�]��T��Uz�O�[F�[��[��[��Ql�m)Y���+-�.�<�V�	U�V��V��V��V��V��V��V��V��V��V��_��[��_��_��[���_��W�����W�����_��Qs�G�_��_��_��c[�c\�Qq�cf�cg�Qz���Q{��Q}�Qv�q�_/�_0�_��_��_��[
���[�Qt�Qu�[
�[�Qw�_�?�_��_��Q��Qx�[��_��_��Qy�Q����V�E�_��Q����0
�Q��_��_��[��_��[��_��_��Q��Q��_��Qm�[�(X*��5�-�:�_��_��V�����P��_�G�_��_��_��P��_�I�_��_��_��Q~��#�h�A�_��_��Q�_�4�_��[��Q��Q��_��_��_��_��_��_��_��cb�cc�_��_��_��_��_��cd�_��Q��F�Q��Q��_��_��P����_��_��P��Q��Q��Q��_��_�ßu�W�?Z�Ղ��[��[��Q��[��Q����_y�W �OX���_v�[��TЇ`/��[G�[H�[1N�[2M�S��S��T�,��=�%(�O�V��V��T�+���a&�N���V��V��V��V��V��V��V��V��V��V��[*-�[+-�V�4�5�[c�[d�[e�V��?&�[7�[6�[<�[;�[:�[8	�[\�[=�[>�[?�P�
p�Ӂ�����6
3�,����''

0	��+�];q+����84�''�P��Q��Q��ce�P��P��P��_��_��[R�[S�.�_��_��Q���X��
�[��Q��X�P�
�܃$��	��Z�S?�P��΃/�z8%�F�[v�[w�[z�_��Q��P��u	0�[x�[y�[��[��c(�c)�Q�A�|
��B

��5Z��2�0	�[�[�:�[�:�[�V��Q�Q�Q�W�Q�V��Q�Q�Q�Q�c.�W�c/�[�1�[�1�W���Q.�Q/�Q*�Q'�Q(�Q%�����Q+�Q"�Q#�Q$�T�<�Q1�Q4�Q2�Q3�Q9���Q:�Q6�Q8�Qm�A������QB�QC�Ql�H�������_o�_p�Q@�QA�QE�QF�SN�QI�S\�S]�ST�QG�	�QH��SM	�SR�QJ��Sa�Sb�QK��Se�Sf�Q,�
�t��?

��
~�C�N�QO�[�[�QP�QW�QQ�QR�Q^�Q_�QY�Q]�Q[�Q`�Qa�[!�QM�`�Qd�Qe�[$�[%�QN�Q���Qh�Qf�Qg�[&���[��[��['�[ƒ�[Ã�S@��
�c6�c7�]��]��SG��	
�SH��	�c;�c<�cC�[�[�SI�SJ�cD�cE�SA��
�Q�Q�SB���c5�cH�Q��M�4�Q��M�4�Q��Q��Q�#���[$���$#���΂�Q��Q��T��T��T��T��WC���ck�cl�WD�Q��[��Q��Q��Q���Q��W1�W5�W2�\�\�Q�����.*�����Q�����T6�[��[��[��[��a��WH�WN�Q��Q��Q��Q��Q��WI�WJ�WK�WL�WM�[�$�Q��Q��[�&�[�&�[�#�WE�WF�Q�
���S��
�
"�����z	�[��V��[��\�\�V��\�\�[��[��\�\�[��[��Q�F���T8���Q����m��Q��.1�\�\�\�\�Q��`a�`b�`c�`f�\
�\�[��[��Q����A&���).�Q��Q��WQ�WR�WP���WT���Q��Q��W=�W>�W?�W@�Q��Q��Q��Q��D���W0�WV�W.�Q��Q��a��\�-�Q��oi���с��t�ق=�H���c��O�l��Su�O�l��St�Q�J�Q��P,��A���~�j�U��Sxk�����S��S��S��S��Szk����S{�S|��`��`��S}�S~�Q�I�'i�r���R���=
����RD�^�U��S��P+���;�����]
�c��R5�O�c��c��R�8�*�R4�So�Sp�Sj�Sk�RF������`��`��RS�RU�RT�RV�R\�RZ�RX�RW�RG�����OY����������4".	C<
m
����))
��.��F��-��lq��@r #[I%
*o��{�:C�Wu�UX�UY�Wv�Wj�U�f�U�e�`��Wb���Wc���Wd�We�Wk�bB�a�a�Re���Rf�Rg�Ri�U�U�c��R^�R_�Rc��(�Rd�TZ�����`4�T[����_���`��`��TT���\r�\t�\e�\f�O���1��hl���g
����uz�����a��a��a��W~���O��xG6�hh���i�����uu����Y�Y!�TW������R��R�W}�����b/�bI�Y(�Y)�Y*�Y,�Y%�Y&�R�R�\g�\m�a��Oh����\i�TH�?�V��V��V��TI�=�TF�TG�Ol��Os�Oo�On�Om�V��V��Op�Oq�Og���@����
�R
�񁖄K�-�ǂ�u	I�l��x�P/�R��R��c��c��c��O��̃#�#����l�`C�Vv�"�Vx�Oi�"�^`���v�
�@�����d��C�a�c��c��c��]��]��R��\o�\��#�\��\��\��R�����~�R��R����Ӆ
	��\~�\}�R��\��(�R��R�����	���m�b?�}�\�\��\��:�c��c��\��>�\��>�c��c��c��W��/�W��c��c��Ou��S�)�v�����fX�`�Rn�Ro�c��R���5�R����R��b9�b:�U�c��Oz�O{�Ow�Ox�a*�a+�Ot�O�����+�1p�B�T]�T`�O��Յ��O�	P����F
�U
���&���l��m���򁔂+S	I�����K�Uo���Up�G�^�W��S���S�^�Tx�W��W��O��S�b��S�Y��S�Tv�S���Y��Y��`��`��b|�b}�W��W��O��
�A���]-�].�]/�R��R��^��^��\��\��b�b��b��b��O�烬��0���]�]�]�R��]1�]2�\��\��\��\��\��\��]4�]5�O�G�+��	�V��O��]�] �]!�Z�]#�[�]�O�������	�T��]&�U�O��]'�R�U�4�χxr�S�`��`��`��b��W��W��]�]�V��V��O��1��=��K>����L�������$����+s���5�T{�T|�S�S�Y����Y��Yu�Yv�Yw�Yx���Yy�O�
�2��-�K@
��Rn����������+���D�R����χ��c��c��R��R��R�-����R��R��R����R����W��Y��Y��Z�W��W��W��W��R
�#���R��R��b{�O��Ɗ遄�\��R��\��\��O�����u�\��\��\��\��\��\��R��\��R����V��V��Oǃ�8�ņ[�#�R�8���|�\��\��\��R����Q�"���\��\��\��Oƈ�P�#�\��\��\��\��\�P�\��\��`��`��O�E����_
�́�
��
��}|��&G
�������
'
GE	�����K�Z�Z�Z�Z�Z�bv�S�S�`��`��`��R�)����"�R��E��n�����G�^��]����R�����S�S
�O��;���[��a�����ă�.���]�S"�c��c��W�	�W��S�W8���o�bz�R��R��R��R��R��R��R��T����m�T����l�Z�Z�O΃�I�����a9�O��j�T����k�T����j�R�J���O�L����O��O��O��O��O��O��O��O��O��O�L���O��O��U��$���S��a��a��a��a��a��a��]��]��TB�TC�a��a��a��a��a��U��U��a��X>�X?�S��S��a��a��a��a��a��U��������a��U���U��a��XB�Rk/�ˁ�82���p�����Q�E(�Y6�T;�T<�R��R��O��c��O��O��Q���0�ˁ�C*��Ĉ�>�)�H�^U�^V�Y3�Wo���a�Q���/������*�)�p�c��Wn���Rt�UM�UO�UP�UR�UT�O��O��O��UU�R	j.����6(���p���ۂE&�O~�c��Ru2�ˁ�85���Y7)�Y8)�Vy�W��W��S�)��T�T�T�T�d/�d+�d,�d-�d.�d��d��a��<�d!�a�T�a��a��a��a��a��a��a��S���c�d@�dC�dE�dP�dQ�dH�dF�dL�dM�dO�dI�dJ�dG�T�)�T�)�dD�O���a��aგ�dt�d<�O�,2�db	�dd�de�dm�dn�dg�dh�dc	�df�dU�dW�d]�d^�d`�da�dV�dX�T-�T,�d|�d��d��d��d��d��d��d��S�)�T!�d}�d��d��d��d��d��S�)�S�%��d��d��d#�d$�d��d��d��d��d��d��d��d��d��d��T#��d��d��d��d��d3�d4�T$
��dz�d{�T�T�d&�d)�d*�d'�d��E��0��&�\EE�������6�*�P�2��Q�X��W������m%��	Q�<�3�=	�7…�…�…�…�…�…�†††�|����|��|�‡6�|��v��v�††‡>…��v�††††�|��T�|��|��uK�uL†�v��v��n��n��n��n��n��n��v�#�k�v��v��v��v��v��v��v��v�#�g‡<‡A‡B‡?‡@�n����v…�†	…�†
���v…����m&��O�8�Q���2	��v��v��n�†�n�‹†�$�q��8�d�v��v��v��v��v��v��v��v��v��v��v�‡/�v��G�v��v��q��7�v��v��v��v�†‡0‡E‡F‡I�v��v��v��v��v��uM���v��pQ��7�a�pe�pf�q��q��q��q��kZ€€�d������kW�kX�d�����€
€�kS���kR���kQ��€€�kO€€€�ph���pi�pk‡�‡��pP��(€'€(�pj��+��„�„�„�€+„�„�„�€,�e��V�ga�3�<�9�c�!	
>���L‡N
‡P‡O	‡M
‡S	…I…J�f�N�V��…:…8…9�|����mU�J��…<…=…>…?…@…A…C…D�mX�߄�mV����m^�mW���p�p�p �p!�wQ��…(…)‡]‡^�wR��…E…F…G…H�mb�[���:���9��‡k�mc�[�����9��‹�‹��e��S�o��o��wP�e��҇��gX�3�>�� �	
��…5…6�f���t��t��t��t��y��p�-�9��€��J…N�&…O�&�p&���\�f��f��f��f��f֛F�f��f��f��p#�p$
�V	�V�R�V�U�V�fޞp���fߞp�p" �f��f��f��f��f��f��f��f��wX���f�l�f��f��f��k�f��f��f��f��d�`��=

����%!yJ��0;Kv��Y���a*��f*��/g�����׃�66	���d��r[�d��p��p��p��p��l=�;����/�d��d��r{�r|�g������g��d��d��d��dጕ�d��Z�;����/�rx�ry�r~�r�g����
���ɂ��g����p��p��r��r��g����r��r��r��r��r��r��r��py�pz�g������Q�eV���eW���p��p��lf�lg�y��y��l\�l]ˆp�r��r��d˂]{��'�p��p��p��p��f*���p����f+�p��p��f0�p��p��p��e���e���p��d��\	s��'�f/‡��p��p��e�e�dقY�L�
�S�r���r��r��r��p��p��g����g����p�^�p�^�p�r��r��r��r��r��p��eN�Ć���b���f�f�f����b���p��p��r��r��r��r��p��p��p��p��dڌ��
�S�q���d��p��p��w��r��r��dnj��dȌ��e��`�r��r��p��e��eO�e��e��eP�g���<��f=�B�S���r��r��e��e��p��p��p���p���eQ���eR���f>�A�S���f@�eF�q��%���Y
"��"��ć�����y��€Bˆv€C�f��f��f��f��f��f��f��f��f��f��f��f��f��eD�r�0�eE�r�0�f����I�f��f��f��f��	��J�k�	�k�	�k�	�k��k��k��k��A�M�p��f��p��p��f��eI�u�(���fE�fF�fG�fD�fA�fB�fC�p��y��y��e>

�q��%���Y	�;N"����o��fQ�fR�f��f��e?���z���d��fO�fP�f�M�-�fs�ft�fU�fV�fW�f��f��t��t��t��fv�fw�p��p��fy�f}�f~�f

�k�fZ�fY�f{�f|�fa�fb�f`�f_�f^�f[�f\�fd4�fe3�fr�eJ�eK�fK���fM�k��fL�f��
�|8���r��r��f��	�{7���r��r��r��eX�T�����lg!�2M�k��k��w��w��w��w��w��w��w��w��w��w��w��w��w��w��w��w��w��e]�e^�x�x
�x�x�e��xw�e����x�x�x�x�x�x�x�x�f"���f#���eq���er���x�x�xt�x�et���x|�xz�x�x��es���x�x}�x~�x�x��x�x
�x��x��x2�x3�x4�tؔ�x �x!�w��w��w��w��w��w��eu�ev�p��G�em���en���x�x�p��w����w����w��ee�w��w��ef�x(�x)�x*�x+�x.�x,�x-�x"�x#�x'�w��w�‡��eg���w��eh���w��w��ed��w��e@���x=�ez�w��w��w��w��w��w��e{�xA�ew�ex�tքl�ey�eA���x>�x?�q'���eY���x_�x`�xa�xb�x\�e|�e~�x^�xD�xF�xG�xJ�xI�xE�xU�xV�w��w��eZ���xO�xX�xY�xR�xS�xK�xN�xL�xP�e����d��������6��w��w��d��x5�x7�x6�x8�e��w��w��d�������?
�1�x9�x:�y��x�xp�xq�y��xj�xg�xh�xk�x��x��xu�xv�x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��x��w��w��w��w��w��x��x��e\-� ���lg�Ӄ������ea�l�eb�l�ec�l�x��x��x��x��x��x��x��x��x��x��e���x��e���x��x��x��x��x��x��x��x��w؁��w��w����e��x��e��)�x��e��/�x��e��x��x��x��x�
�x��x��x��x��x��x��x��w��w��w��f�X����*���x��x��y��ej�ek�`�y��w��g��g��g��y��y��f�X����*���w��w��x��x��g��el�g��x��x��x��x��x��x��x��w��w��y��w��w��y��w��w��w��w��t��t��w��w��k������c�k������c�d�_;:=
��	��%yF���k��;����^��!�;%)�?Me#��]	�������[
W	��
���‡z�eM�w6�w1�g����w3�w4�w7�o���o��o��o��o��o��o��o��o��o��o��o��o��o��o��o��o��lj�lk�ll�lm�o�	�o��o�	�o��o�
�o�
�f�`���܏�o�f�f���ސP�f	���r��r��f�����k0��6��m�mg�mh�f��mj�mk�k]�h�
4�Z`���"v��g��:�g����r���r��r��f5�f6�r���f7�f8�f9�f:�f;�g��>�?��7�r��g���g��p�p�p�r��r��f�|&��j
���4W�8���l��u�r��r��lM�lJ�lK�lL�p��p��f�f�f
�lD�d������d������d��d��d��d��d��l@�3�=�dꌻ	�d��p�	�d���d���lA�2�=�lX�lY�d��d���l��l��f�����b
���4�����f�lN�p��p�€�€��f!�i�p�ˆ`ˆa�g���gŒ�o��g��g��o��f,�f-���o��r��r��r�ˆ]ˆ^�r��r��f���b��v��y��y��f���b�f�*��4#),
��
������2!�݃��#
PV��U3%%�I����j
�h�h�z��h��h��h��g������h�g��g�g�g�����h��h��h��h��g�g�g�g
�s�s
�lx�ly�ˆˆ��g������h�g
�g�sl���h:�h7�h8�h4�w�h5�v�sn���hD�hE�hH�hI�s0@���s1�s2�s5�z��z��z��z��hQ�hN�hO�hڋ_8�hR�hU�hS�hT�sq�s/�sm�����h;�h<�h>�y��y���sr�?�ss���g�5��F����zi�z}���h�h�����z~��h��h��z8�z9�z5�z6�hn��L�3�hu�hq�hg�hh�hi�hj�hk�hl�ho��H�3�z3�h�h �hr�hs�htˆ��zz�z{�y��d���X5��.��z@�zA�d��z0�g��g��g������^ˆ�ˆ�ˆ�ˆ��g����z��z�ˆ��zC�zD�z=�z>�zF�g�l���g�z��z��z��z��s?�h�ˆ��z��z��g�ʔ��g ���zj�zk�zl�z��h�
�h��g���H�z��z��g���G�g�C
4�����v:"���
����62�aw#�M���z��z��z��r��͉�r��z[�z\�z]�s�[�z��s�Z�r����s�h{�!�h~���zW�zS�zT�zU�zV�h|��:�z��hz�h��h��h��zY;�z��g�'
/������:	������+��%�M���h��h��l��l��hA���s�s�g󁄋��7�����h��h��hx���7���s�r��r��r��r��r��r��r��r��r��r��hB�h��h��h��s[�s\�z��z��h��h��h��z��g��g��g��g��h��2�y��z��zbE�g��އ��h��h��g�ˆ�ˆ��g��^�["���z��s!���s(�s$�s#�����s"_`�s%�s&�h��h��f�*
��#	&
��
������2�����#

O	C�N2!
�I����j	�z��z���(�����z��z���z��z��s+�I�s,�I�g�r���5�hb�hc�he�q-�f�y�χ��y����e���e����������g
�l
���	��K�����wd�I<\����	ˆ�‰�‰�‰�ˆ�ˆ�ˆ�j�;k�:�h%�BS‰‰‰‰�‰�‰��h"‰��‰‰	�h)�@‰‰‰‰�h*�S‰
‰‰‰‰��h&�@S�ve‰�‰‰�‰�i‰�‰�‰�sEˆ�ˆ�ˆ�ˆ�ˆ�ˆ�ˆ�ˆ�ˆ�ˆ�ˆ��sFˆ�ˆ�ˆ�ˆ��zu���zv�sH���gע
�g��g��g�ˆ��g��h1�h2‰‰"‰#‰%‰)‰&‰'‰‰‰‰‰‰�yאG‰‰ �q2‰,‰-‰1‰2‰3�y��g��q3‰*ˆ�f‰+�h,���KP�f���[����<�z��z��sh‰;‰<�s�h����o����7��<�y�"���y��y��h-���z�z�h.��‰6ˆ�g‰8‰9‰B‰F!‰Z‰[‰\‰O‰V‰P‰Q‰^‰b‰c‰d‰_‰`‰q‰J‰e‰f‰g‰M‰D‰E‰N‰K‰G'‰n‰H‰oˆс�‰x‰z‰{‰y‰>‰s‰t‰v‰=�gӢl�g��gԢl‰A�s���z�sO�sP�sR�sS�sTq�;‰�h��Z�z�z
�z�z
�z		�z�z�z
�z�gށ����;�g��h��h��h��g��g��hג�h�‰~�z�z�g����
&�=����	qc�y
R��
��(��‰�ˆ�ˆ�ˆ�ˆ��sK�sL‰��sNˆ�ˆ�ˆ�‰�‰��h��sG�hɒ���;�%ˆӁ�ˆ��h#�h$‰�‰�‰�‰��h��XN���ć�d��‰�‰�‰�‰‰‰�s`���saˆՁ�‰�‰�h��^‰�‰�‰�‰�‰�‰�z�‰�‰�‰�‰�‰�ˆ��y�‰�‰�‰��y�ˆ�ˆ��g��}�k���8���g�s�k�h���������z��z��z��z��q5�h
�5�h�h��h��h	���s=�s;�w„�z��g�I����W����ˆ�ˆ�ˆ�ˆ�ˆ�ˆ��z"�z#�h�m�h��ˆ��g�I����W�����s�s�g#�����g$����h�(���q8�q9���������h�h�q7��h�h�h���d��x����
������������P�i�i�h�������‰�‰�‰�‰��sw�C‰�‰�‰��h��h��s|�s}�s~�sv�h����h����h��sy�sz‰�‰��s��‰�‰�‰�‰��{�{	�z��i�z��i���z��i	�i
�i�i�{
�{�{�{�{�h��h��h��h��h��h��h����h����h��l��l��g&�ލ�����g'����ŠfŠg„�„��s��a��������g.�U�_	����h��h�‰��i�����s��s��s��s��s��s��s��l���s��s��s��s��s��s�ŠnŠo�s��s��s��i����	����s��s�	�s��s�
�s�
Šj�i����s��s���g+���o3����
������
�G�s��s��z��l��l��g(�������s��x�z��g)�h�)�����i�i����i����g1��xTc)���
�������;(��
���:��Pg�^����P���gL�+ƒ��tj�tk�h�tm�tn�tlƒ�ƒ�ƒlƒ�ƒeƒfƒhƒjƒi�{��{����{���‚W‚(„„‚��{��{��g5�g6‚��{�‚��{��g3�g4�i��́�ƒ7�j��j��j��j��j��j��j��{��i��L���t�t�i��L†�ƒ��{�†��j�<�j�j�j�j�7�j�i��L�|ƒ6�|�jx�i����jt�i����i����g=�g>�i����i����jy�i����i��i���NNŠŠŠŠ�j
�j�j�j�j	
�j
�j
�j�{�����‰��i�{�ƒ8ƒ9�{��i�i�|�i��{�jg�jh�t��t��i��i��i��i��i��i��j��i�i��i�6�i��5�i��i)[		"	0bU��c�~]��g�]
�{��i/�i0�i,�i-�i.�{�‚�‚�‚��i��i��i$��)� �YS‚r‚s‚��i(����‚�‚�‚��t0�t1‚p�i%���F�Y
G‚t‚u�i&��
��K+‚�‚x�i��i��i��{��i2�i3�jE�{��{��{��5‚�‚�‚�‚�‚�‚��iB��I:�7�O9����ic�id�iFoI9�'�O�*��i��jF����jG���i�C�ҏ��iٚ‚�‚��i��‚��o��o��i:�E‚�i;�i<�i=‚�‚�‚�‚�‚��j�f���g7�i7��C���i9���j�j‚��j�gh‚�‚�‚��i*
	[	,����B�~]m��g	�V‚1‚2�j������iÚ��|9�|:ƒ��i1����7�i��i��o��o��o��o�‚��i��i�‚�‚�‚�‚�‚��i?�i@‚�‚��i�l‚�‚��j"#�J�L��ƒƒƒƒ�j��j��jM���
ƒ
ƒƒ�t�ƒƒƒ
ƒƒ�gF�<‚�ƒƒƒ�gM�gG��jP�g@��gA��j#%���9�h���I���jL�{����҂(�|�„(‚�‚�‚��|)��„#�gN�g���Ï�‚��iG�-�O�`‚�‚�‚�‚�ƒ-ƒ/ƒ.‚P‚a‚b�{Ї��{��{ňdƒ,�{ψ[�{��{��{��{��{��{��{��{��{��t<�́�h��=ƒ �����9�t=�́�hƒ�,ƒ�ƒ�ƒ�ƒ�ƒ��'ƒ%�iH�{	�?�{��{�	�gO���gP�{�
�{�
�����i�ch�0��j��j�g�0��j��j��j��iI�"����Ik8�҅*���qL�qN�qQ�qMƒ0ƒ1�t(�t)ƒ2ƒ3�t+�t,�t�qR�qS�qT�qV�t!�t"�t#�j(�iJ�!��
����7����…ƒ�…	�s�H�$�t$…
…�s�P�#�t%�| �j,��j.�j-ƒ:ƒ;�|�,
ƒFƒC
ƒA	ƒIƒHƒKƒL�j0�j/�j7�j9�j:�j8�j3�j>�j2�j1�j4�j5ƒUƒV�iL�iM�t?�t>�t@�i��i��j��j��gR���T��S��ƒ�ƒ��tE�j��Ӈ͂3�{f�{g�{h�{i�{k�{l�{Y���{_�{^�{]�{Z�{[‚&�j�9�j��R���S�����j^�j_�ja�jb�j]���-��{��|0�|1�j��j��g2��5NP	[
����lD 9���,g0	*�|��:��P!/��.d#��
����0�*�j��j��j��j����|<�{�=v�|gƒ�ƒ�ƒ�„-„.�j��j��t.���{��{��|>�|?�gU�]�gV�j��j�‚�ƒ^‚��{"�{#ƒ_�i_�>�2�]�숁��ƒ��sΈ]�i`�>��������ƒ�ƒ��ia���ib��ŠŠŠŠ�gY�gZ�j��tY�tZ�{��t[�t\�iO�B�ȃpn6���B�x���`0�i �g\�1�����V`w#)��h�
������ƒ`‚‚‚ ‚�|� �|�„=�tQ��K�|E�|G�|H�|I�{��g_�ge�g`�ga�{t���{u�(ƒ��{��{��|���ƒ�ƒ�ƒ�ƒ�ƒ��tR���tU�tT�tS�tV���tW���|��|��g]�0�j'�M�����‚!‚"�t^�{w�{z�{x�t_�tJ�tK‚�‚��|'ƒaƒbƒc‚�‚��iPM��I�끞� ��T4��
��

	�~�*	_�%<%��
ƒ��j@�{5�i��E�i�†�†�‰��jA†�†��{<�{>�{@�{=ƒ�ƒ��j������ց�ƒ�ƒ�ƒ�ƒ�ƒ�ƒ�ƒ��j���j���s��s��s��s��s��j��j��|M�[�{/ƒ��if�*
�.x���i}�i~�s��s��s��s��i���~�0�i���~�0�j��j��ig�*	�,�Y���{C�ta�i�r�i��r�S�{F�tb�td�tc�j��tf�tg�th�j��j��ti��q^�|n�|o�iQ��j�io�in�imƒ�ƒ��d�����>�=�5�"��F��	�gi�ghƒpƒqƒ�ƒ�ƒ�ƒ�‰��{0�{1�gn�G�gp�F�>�gq†�†�†��d�����z�4�>��@��
ƒu�_ƒv�^ƒx�|s†�†�ƒr�gj†�†�ƒyƒz�gs��ƒ�ƒ��gt�i��-��D�Ljq‰��t��i��i��i��S�i��R‚8ƒ{ƒ|�ip'������x���j�^�iq�����j��j��j���D �݂-%‚9‚:�{��{��{����{����{�
�{�
�o����<��[�ƒ}gƒ~g�{�"\�iQP��

�́����@4��
��
	��(NB����{��
�{��
ƒ�ƒ�ƒ�ƒ��t�C�tƒ�ƒ�ƒ�ƒ��j��'�>�s��s��{J������s�g���s��s�‚@‚A�is�>�8�O��X �{Q�{7�iw�{8�ix�iy�it�<�iu�jD�t~�i�������ƒƒ��i�������{{�{|„?„C„@„A�iS�iT�iW��.�l������'�{r�{s‰�‰�‚‚
‰�‰��jm�i������?�߂���/�tr‚N‚O�tw���i�q(�����j�����jq�ts���iY‚�‚��{�‚��i[�i\�iZ�iX�{����	��!‚‚‰�‰��iU��‚�iV���gX�b���݆�‚�����ƒ[‚‚�i!�ۇg�&�rb�|~�i"�ۇg����‚X�k

�����-…!�k‡�„u�+�k�����f�k�k�k
�����wa„p�k�k�k�]�k�Y�t��k�d�W���!�o��o�„o�k�F���k"�F���k�V�k „|�k!]<0��s�I���$�}H�Z	�,�I�56@M����%�ƃ�k<�k@�kA�k=�f$�j���k��k��l��l�„�„�„�„�„H�f%��_�k,�k-„�+�u�f�u„��u&�u'„�„��gw�gx�X�k/���ͅ����i�|�k1�l��l��l��l��k2�|��|��|��|��k��k�„��k둬�y�k��$�k0���ȅ����i�~�|��l��l��k�K�SO�]!�l�l�l�l�mR„��k�K�}��2�[„�„�„�
��„�„�„���„�„�Š{„���„�„��t�M�p�k��k��u)�p�k�Š�Š��t��k�Š��u%�u2�u4�u5�u6�u*�p�k�		��4��	�[����/%-(����„�Š�……�l��k��k��k�	

	����	�[7�.$4'����…P…Q�u:�k�
�����k�	�k�	������k�	�l�l„�„��l.Š�Š�„��|�Š�„��|��k \:0��o�I������
�)�I�^37�)$�ƒ„�„�Š5Š6�k�A�k�A…„�b„�+7… �l�~�	�l#��G�{�M�u�u�u…W…X�l$�k7�k8�k:
����
�+6�g�����B�t��t��u
�u�u�u
�u�l(�l)�l*�kK�ۄ�T ���t��o��o��l'��T��„�„��u�u�u�u�t��t��t��t��k;��E�����Z)���B�l-�kG��„�„��l̉q�u�kϑ���~�o��o��k������l��lお���o����ms�u?�u@�m}�m{�m|�mt�mu�mv�mw�m~�uA�uD�uE�uB�l䁋�B�mp�B�mn�Ԗ7�m��d�A
����
�}(9�i��E
�y4	=:
{���s��	"��
V�_��:�����Qc��I
��c
T ���"$p	�Q��‹9�u��u��u��u��u��u��nL�nO�nM�nN�uW�}�}
�}�}	…�…��}�}K�}H�}I�}J…�…��d��}�}�}�}�d��uX�n���tɊ�}��t��}��m��D�m��n���n�n�}��}��}��}��n����}��}��}��}��}��}��}��}��}��}��d���0�d�R�kj�&�U���" ���}��}��}��~�}��}��}�Š�Š�Š�Š��}�B���~8�~9�m��l��m��o�}�E���}�B�uZ�ʼn���	
0Š��~��~��~��~�Š��}�}�}�}�}�}Š�Š�Š�Š�Š�Š�Š��m����Ď�Š�Š��m��m��m����m��m��m�Š�Š�Š�Š��u[������;�}L�}M�}N�}OŠ��} �}Š�Š�Š�Š�Š�Š�>‹‹�}T�}V�}U�}W�}X�~i�~j�~k�~m�~n�m�;���ԉ%�}f�}g�}e�m���^�}Y�}\�}[�}Z�}]�}^�}k�}h�}i�}n�}m�}l�}p�}`�}c�}a�}b�}s�}q�}r�}1�}2�}o�m�`��Š��}#�}$�m�b��Š��}u�}v�m�]�6���m�L�7S���}�m␙�m������mݐ��}|�}}�}(�})�m�
�c�Q���$�T���"
��‡ �‡!�‹�}��}��}��}��}��}�‹�}*���}+�u��u��},�m�&;����3��6e�!��o‹�~=�~>�~<�}-�}0�}/�}.Š�Š��}S�����~�~‹‹‹	�m�%������5e�"��k�}Q�����~�~	�~��~�‹$‹�~o�~p�~r�~q�~u�~v�k`��r���R�����jO���������u��u�‹*�~B�~D�~G�~C‹+‡��|��|��|�‡�‡��|��|��|��|��|�‹�‹�‹��o���^�o��
�^�kb�c
f�^�����kc�qa�������}6�}7�|����}9�}:�~��~��~��ka��&�G�
�g�����ف���N���������t��t��t��l��qi�|ł��p�~P�~Q�~R�~N�pW��^����~J�k�H�-��_��‡�‡�‡�‡��u��u��u����m��we…��~U�~W�~X�~[�~Z�~V�uv�uw�ux	�u�u��u~�u{	�uy�k�G�-���]���u��u��~\�~`�~]�~^�e6��4�K�5&���b�����>	��u��?�|��|��|��|��|��|��|��|��|��~&�~*�~+�~)�~'�~(�mΈ��u��u��mψ�Š��|��|��~b�~e�~d�����~c�mЊn�w?�p��t��mӃ���mԇ��mՇ��m����5%���H�H��[�����u̒J�g{�S/���~,�~4�~2�~0�~-�~.�uf�uh�U�ug�|��|��}��ui�x�g|�V/���g�k�l�i�o�e7���e8���e:���p��~��~��~��m�႓|�u��|��|����m����	}�~�~��~��~��~~�|��|��|����|��~��m��m����	�|��|��|��|��|��|��|��~��~��~��~��~��~��~��~��~��~��|��}�}�}�}�}�~��~��~��~��m��m��~��~��~w�~��~z�~y�~x���~{�~|�~��u��u��u��u��m���	���qk�V�ql�V�}��}��qm�Y�~ĉ��~��qr�T���~��~��~��~��qs�qt�pJ�0��pK���~��~��~��~��~��~��~��~��~��~��}��}��m���	�1�&���/�t��t��t��d����͎:�qq�d������~��d�����d����e�e�}��m��m��}��d�
	�w
���r��]����}�
��
��d
�]
.�O��JWS�p�'�U�,p��$v�u��u��u��F�u��F�v�~��~��~��wC�~��n�W�m��[��|���g�:��}��}��}��}��m��N�u��u��d���y�+
���ω�P���^	��	�(o'	��o�nh�I�nk�np�nj�P�ni�P�nl�nm�n[���n+�n-�n,�|��|��n\�n/�nQ��� �n
�n
�#�$�}��}��}��}��nR	���n%/�n�n�n�nV�n&0�nT�nW�nX�}����pL�=�n4��n3�T�}����<�n5������r�u����u��}����}��}��}��n6�n9�n7�n8�ub���ud�3�d���&�P�V����J/‹B‹C�d��H�d��d��������
�8���wE���~ �~!�~#�~"�~$�~%�wJ�wH�wF��n;���n<�e��Q�}��}��}��}��}��}��?�@�n1��n2�B�E�D�C�F�G‡‡‡‡
�e��8�������|Ʌ��|ȃ����|ǃ����[�\�]�W�X�n*� ��L�M�K�O�J�nJ�nK�k����#)��O�6�߂m2���%��}	�t��t��}��}��}��}��r�F�*�u��0���}��n #�n!"�nJ�)�g��n)���nE���nF�n_�'���3��ne‹H�n#%�n$%‡"��n@�nA‡#�‡$��`���b�e�f�d�c�a‡�‹W�}>�}A�}@�}?�}D�}E�}G�re�rfŠ�Š��};���}<Š�Š��m��m��m��m��m��m�"�e���օ���J���O���78…��e���W�>…��e�������\
0/W.����h;	u�m��C��
>a��	&OPXJ�Q�wdD	�5�HO��	���v��v��v{�v��v�v~†J†N†K†L�q}���u��u�‹\�q~�]�u��u��u��u��u�
�u��u��u��r‹Y‹Z‹^�q���q�x��x�‹��x�…m��…n���vM�����.�Ӂ�#��€�€�€�€�€�€�€���€����q�F��ˆ
ˆ�q��S�q�E�q�E�q�D�q݈=���y!���q�E†?�x��v��vO�vP�vQ�vR�vL�k����"���vT�qޅˉ߂4�ҁ�†6…�†0�x��qߎ���
†.†1†3†4†2€���€����vU�vW�vX�vV�vY�vZ�y,†c†d�o?�o@�e��e��e��e��ڄ��� ���肐@�)��…x…z…�…y…{�r
�r&€�€��r���v��v��v��r€��r�r€��������������u��e‹c�u��e��M�u��u��e��L�nx��!�ny���3†G�r2�r3�r4�e��ل����6�� �1?���e��e��e��e��e��r��k�Ă��r�n|���r�{�����r��l�����r�{���r�{�r�z�m���]������>k��]��3&K�m���y8�y9�o�x��x��y�q��ZP�x��v�q����v�v��ˆ‡��o	�����v$�v%�v&�x��v�v�v�v �q�����v(�v)�x��v+�v,€��y�y�y	�y
�y�y�y�e����K�5��(�/�u�e��v�v�e��o}���e���5��D�v�v�g~����y1€�
€�
€�
€�
€�
€�
€�€�€��rO�m��R8\�������>
v
��]~3&O�l���y�y�y�qՆI���v.�v/‹��v�v�x��q��K�+�k‹�‹��q����v�v�m�ރ��4����X~���q��	‹��y�͋��y�n��)�)�������f)€ދ�€L�����€M������v1�v6�v7�v2�y�y�y€ዣ€����eЊ+�򁆈!�����f����>�e��e��e����&�#†{�v<�v?�v=�v>†|†}�v@�vD�vA�vB�vG�vF�vE�e����x��e����m�m�v��e����#�"�eő��e����rE�y:�rF�y;�n}�v:�v;�n~�e�&�����
��O��"A>�ₛ����PZ)��(��ąB�m1�m2�f��f��f��f���ro�f��f��m>�B���m?�B�m9���f��m:�f��߄���e��e��e�(�����
��K�9G"?>�ބ�������d�r(��ā���‹�€�€��mB�G�e׈`�S�
���g���=���m#�]
�m$�k€�€�€�„�„��e����
[�,��+�y�„�„��m4���f�S�3��„��nؒ��nْ��w‹��w‹��v��v�‹�‹��e���ˆ�q��q�ˆ�v^�v]�y?�y@�yA€��e�/����_����������`�yD�yE�yG�o<�o=�w�G�v�b�e��e��o�o�o�o�o�o�v�d�o%���o&�v��v��v��v��v��v��n�$���v��v�k�v��o�o�v��v�i�v�h�v�i�v��n��n�	���n��n��n��n��n�
�n��n��n��n��n��n��n��nρ�ˆ�o �o!�o"�o#�o$ˆ�o',�;�� �́�$���]�n����o)�w�w�w�o(=��$������w
�w�w�w�w�w�e�
�����J��������'����Z�o+�o,ŠG†lŠH�e��1D���p���v��v��v��oX���o�o�Y†g
†h
�e�\�-����
�R����܂`�ob�v��v�€n�o\���^�w�Y€q�e�x�%���Q�oZ�€z€{�on�oo�o�o
�o]���z�o_�o`�o^��o�o�o�g��!�g��!�e�7���/�.
0,)(
%����]I*6	�?��9`��	"	FMM)%	.��
P	�L_9
	�)2$�%�,		€�€��ow�����rL�f��f�‹�‹��d��u��S�u��d��yK�yL�w �cˆˆ!ˆ"ˆ�w!ˆˆ�y\�y]�o.�v_�o/�2�vb�va�e��n�˅d��r�r �r�e��n���c�u��u��x��u��yU�o0�ok��6���k�I���e��ă��9<��[���^���vg�ve�vf€��f����,��q��q��f��'�q��yX�yY�yW�L�vh�vn�vm�vl€��vs€�€��q�q�o1†Z†^†[†_†`†\�o2�vt�e��p�\7���ց����rW����	�u‹q��…c�q��~�y_�y`�q��e�
�q��h…��r@�rA�nt���u�u�}
�vu�vv�vy�q�=�Ŗp�r<�r=�r>�r8�r7�r6�r9�r:�n��ш��ys�yz�yv�yw�yx�yt�yu�yh�yj�yi�yr�e��e��y{�y}�y|�n��ш��yl�yn�yo�ym€Ċ�€��q�����‹n‹o�q�������€��������yN�yO�yP�ySŠL�e����M�W4e��t��ˆ	�mH�mN�mI�mM�mJ�mK�e�����e�1�t��‡p�\…�Š��oDžÃ��O‡v‡q�oƅÃ��J‡�‡��e	)�;�x�����6��V�����e��������q���n��n��n��n��e�e�e�e�m��m��w��w��w��w��l�,�����	���W�w��w��n����n��wx�wz�l����ww�w��l����m�m	�l�(�o�9�����W�n��w|�w��l��m�m)�I�n��n��n��n��m�m�e0�~�~�e�X
�������P�%���a���e�e�q��)�q��q��q��e�e�e �e�q�†"�e$†'†(†)†+�e)���e%���e!�e&���e'���e
�L��%������%�8�����q��q��q��q��q��kv�3��e*�}
�q��q��e+���q��q��e���g�t��t��~�~�~�~�t��t��e�e��	�t��t��t��t��t��e���q��e�e�m��^���n��~��~��~��~��m��]���~��������~�e
)�8
�x�����4��T�����c���������€3€4�e-�e.Š9Š:�m���n��n��e�c�@��݉���ā��)�~�e��uo�n��n��m���p
�	�F�PŒCŒEŒFŒGŒHŒIŒKŒLŒMŒNŒOŒSŒRŒQŒUŒ[Œ\ŒD�w:�w;‹�‹�‹�‹�‹�‹�‹�‹�‹�‹�Œ_Œ`ŒaŒcŒbŒ^‹�‹�‹�‹�‹�‹�‹�‹�‹�‹�‹�‹�‹��p
��‹�‹��p���p.‹�‹�‹�‹�‹�ŒŒŒ�p2�p3�p4�p5Œ
ŒŒ
ŒŒ�p6���p8Œ
ŒŒŒŒ�p		��B�f4Œ‹�.‹�‹�‹�ŒŒŒŒŒŒ Œ9Œ5Œ6Œ:Œ8Œ<Œ>Œ?Œ=Œ*Œ,Œ-Œ+
Œ"Œ$Œ%Œ'Œ(Œ)Œ!Œ1Œ2Œ.Œ/�p<�p=�p:�p;����L�!!{�@ 1�N*�����)�ځ�W��P����,��τ��Mt�C�&��{%�j›8‘���›U‘�”^›9”_›:›;�M9�B	‘���‘����M:�B��›J›K›3›`›a›b›Z›4›5›6›7‘�ŽX��	��›+ŽZŽ[›Q›�›�ŽY����›[›\�Mw�C��%
����›,›���›%›@›'›(›&›)›*�L��L�‘�‘�›-9›i›/<›0<›.9›1>›2>›c›d���M�@h��M��(�ق������"	ŒyŒz��Œt����Œ|Œ}5����	•�•�•�•�“��“�“�“�“���)��+������•�•�•��’��ك’���•�•�•�•��M�D}
�3��••Œs�3��و@��������g’��“�g�����’�’�’�’��M	�@q���K
����y��*�΃"ŒwŒx�M�I��Œr��=•dž•�•����M
�CQ�d�L�F�@�"�#�=-�		�Á��t��3��|~’�}‘‘’��L��L�Ž�Ž��L�C�^��œœ�œuœvŽ��R	œ�œ�


	�L�C	����ĉ�š�š�Ž��L�C �p�0�ĉ�‘pœY‘q‘sœXœW	œ\œ[œ^œ_œSœTœkœlŒփ �sœmœn’��L�E����?’�Œ�8�����>‘z’�"’�’��L�Ž���‘l‘A‘B‘C‘Džž‘E‘F’��L��C\�'�d!"$‘:‘=‘G‘I‘J‘H‘;‘>�L��L��L�B �@��#�7,

������v��(œ�œ�’�’�‘~‘‘�œx��Œ�<���L�@�;���!��z{”’�’�’�Œ�;�����=”%&Œވ7’�Œ��L��L�’�œzœ{�j��‘‘�L����G4��’��L��BO�u“~Ž�u”�”�”�”�”�Œ���Œ���œ�œ��L��G�Œ�Œ��L�A<�@P8��$�kc������,,D

`��5T��Z���“��L��L���“��M�M�M$�D�M%�D“e“fŽ�Ž��L���L�
�L��L�
�L��M�Mc�@#�!( r�)
Œ�0œ�œ�œ�œ�Œ�0�Mh�Mi�MjO��YWXZRSUVPCHJLIMDEœ�œ�“j“k�,�Mm�CJ�e��œ�œ���"�"��”5��~��œ�œ�œ�����œ��Md	�@��s��(
 p�+���œ�œ�œ�����������7œ��Me�CP�a��#“Њ“���"�Mf�Mgœ�œ�œ�œ�’�Œ�Œ�Œ�’�“��M
�@�����K
��ʂ+*�"��“�“t“uŒ�“�“�“�“��M!�C��6
���T���”�”�
�M"�L�e�@XD“l�L��L��@�D�L�Œ��������������“q“r“�“�“�“����•������•��L��HHE”“m�����Œ��P����������L��D�d�tno“n“o�L��L�E76�@F��!�kj��*,1m��JS���Z��“��Ma�MbŒ�Œ�’�•�•��M`�AY���*�œ�œ�œ�œ�“^͆���O’�’�’�“Z“[�M�@�=��&IY��\Wz�2�a��	/27350891;<=����+�”$Œ�A“��M	�D�ӂ�”•�•�•�“��M	�@����Œ������"��M(�A���%	B��v�������%���)�Œ��L��L��M+�M,����L�Hh^[\]��,-_`“�a��dc��befŒ�����Œ�Œ�“w“xŒ��7����M(lD�@R���N�� �H
)���� !���Œ�Œ�Œ�'"#(&%+,�MR�F\�MU�MV�MT�MX��{�MS�D�
��Œ�

�
������M+lD�@X�
�ӂz•��L�’��L–&’��Q”�•�����M(i)�@O��P�� �C	)���^����]���������M*iD�@V�փ�MQ�Œ����./�����́����6����’�’������C	R��	d;���U��Œ����Œ�Œ�%����Œ�Œ���”�”�=”�M”�������D�-H>?8:;97���|	JK”�”���2��3Œ��Œ��������������Œ�������’�’�š������	š�š�š�š�š�š�š�š�š�š�š�š�	�������j����f���������+–0–2–1–3������–7–9���–8�����i����f���g�l������p–:��–A–C–B››–=��–<����–;››–>–?
���N_`bacRdefgijSklmOPQ”���X”���VYZ�����A	`��l;��3�#xyqruv��ЉZ��”�›››
�����������›Œ�	Œ�Œ�Œ��Ї�m”�����������‘�L����@-�����0�����K2��?����H•—�—�—�™w–��o˜���˜�˜���•˜���—Ѓ@A–��b–��a–�–�–�–�–��a–��a—у˜�–��\˜�–��\–{–z–|–}–P–Q�x–L–N–M–R�x˜�—҃—Ӄ—ԃ–��b–�–�–�–�B–�C•˜���˜�FG˜���—(�=—)—N�8—T�8—V�`�؁�—W�`—U�5–�–��i–��i—c�.—\�3˜���˜���—d�N��˜���˜�—Y—Z—^—]—_—`”�˜���˜�—b�.—e�-—g—h—j—i—m�)—n—o˜���—@�˜�—A�8˜�˜���—S�8—l�)•—P�U������—Q�8—O�o�ɂ
—R�8˜�˜�˜��ׁ���—׃˜�˜�˜�˜�˜�—���˜��’�™�—z�$—{—w—x—v�&—y—u�&˜���˜���—|—}"-���тЃ�–�–�–�–�–�—9—:�5—;�5™�—s�%—�—Ƀ
˜�™m–��^–��^–��\–��]–��]™C–��^–��^–�™–�–��_–��^–�Q–��\–�–ƃZ–��Y–ɃY–�”�”�–˃XDE–�–ăZ–ŃZ–��F–�–��\–��\–��]–��]–�1��š�–�–�–�–�–�™)™*™+™,™.™/™0–�V–�–�–�—#˜ۂ˜�2��–�–؃Y—�—�—�—�–��\–ڃX—q—r–��V–΃X–̓X–��W–ރV–�–߃V–�V–�V—p–�T–��S–�—Ճ—�–g–[–\–]H–�R–�R�—t�%™�™�–h–i–j–�R–�S–�S–�–�R–e�{–f�{–�S#-��������—D�9—E—F�8™~–�–�–�–�–�–�—K�8—L�8–U�y–V�y—G�9—H�8—J�8—M–�Q—C�9–^�j�˜�˜�—ƒ	™�—Ã	–S�z–T‘‘•—$—%—��—ȃ	œ7—��—��™�–k�y–l–p�x—�—��–n�x–o�x—+�<—,�<—-–m�6�C��—�—�—�—�—�—*�<—��—�—.—��—�—�—�—��™�—��—��—�—��
—��—��‘
‘‘——�—/�:—ʃ
—�–q—�—�—�—�—��—��—��
KIJ—�L—��!—��!—��!—��!˜���™�—2�8—��—�—�—�$�x—��!˜���˜�–t–v–u™с�—�•�—��—�—��—�—��™�—��—��—��—�—�—�—��!—�–s–r—��!—�—0—1™j™k™l—��9˜��—���—���—���—7—8—�™�™�™�™�˜��˜��—�—���”�”�”�˜��˜��˜��˜˜��˜��˜��˜
˜˜˜š˜��™�˜��˜��—�—�™�—�–x�q–y�q—�—�—�—�˜��˜��˜	˜
—ڃ˜��—���—�—؃—�—���—���	—3—5—4—�PQ—�—�—�—���—�—�—�RS˜&��š"˜'��˜=��˜"��˜ ��˜!��˜#��˜>��˜��˜)��˜(˜��˜*��˜+˜,��˜-˜?�˜9˜7˜8˜��˜��˜��˜3��˜4��˜5��˜6˜2��š,˜.��˜/��˜0��˜:��˜��˜$��˜;��˜<��˜%š—��˜��˜녢—<—=��M]�@-�������l4����
:��-;a/��(��}��	˜t��T���–�oVWU˜I��˜E��˜L��˜o��˜K��˜T��˜A��˜G��˜N˜M˜O˜P˜J˜U��˜@��˜V��˜Y��˜W��g˜S˜Rh��šAšDšBšCš?šF˜B��˜C˜D—>�6—?˜p˜[��˜a˜b˜c˜�˜d��˜e��˜`��˜q��˜r��˜s��˜_��˜\��˜]��˜ł�&�@�l���f�|�6���˜F��˜u��–Y�w���Q˜j��˜f��˜g��˜k��˜m��Y˜n��[Z˜l��š^–Z˜h��˜i��˜v™t��˜Z��™u)–�˜w��˜x��*+�ϊ�”�MN”�c�%˜�d�%—ă
——
—™U–�—Ń
–a�u–�˜z��˜{˜���–b�u–c�uk�–`�ul—&�>—'‘��–��O–��O™K‘‘	‘
	‘š�–��P˜˜�–d�u˜�˜�š�–��j.����”�”�”�–��P–�˜~��”�•—~�!–��o–��n•˜y��—�O–_–��O—"— ˜���—�—�A—�w��—�@˜���˜�˜���˜���˜���˜�–�–�–�–��P—!�@-6���Ԇ�—�H—�H——�F—�F—�F™P™Q™R——————�H—�R—š�–��O™H——	—
———š�—�Qm\˜|��˜}]^_`ab”�”�••”�”�•”�”�”�”�”�”�”�”�•”�”�”�”�”�”�”�”�˜�”�”�”�”�”�”�”�”�”�”�”�”�”�••˜Â�ef˜�˜�–W–X�–��b�–�–�–�™™™™	™
–�'(–�:�Ԇ�<=˜Ă�—�—�—�>;������L�A����΅�����B�Ϣ��M3�M4���������‘���Œͅ`��rust�������››Œ΁�����‘‘‘0‘ RS•)‘����‘4‘5•%•!
•#œ��‘!‘"œ�����L�A����ʅ��r�L��L�������Y�0��‘$‘R‘T‘U‘S’�‘K‘L‘N‘P‘OV�������P�遅��ꅙ����Œ�‘�‘�‘�‘�‘�‘�‘���Œ�‘�œ�’’’œ�’U’’.’/’0’1’2’’’	šق�‘�‘��’��š������‘�‘�‘�.’’‘�2’’’’’
’’’‘&‘'‘(Ž��Ԅ������’
���’’’a����•0•1‘W’Ž���Ž‘�‘�‘�‘��’"’#’%’&’'’(’)’$’+š�’,’-’4’5’6’8’3�P�ׂ��ꅙ��N‘�‘�‘�‘�’@’A’C’D’E’9’:’;’<’=`�_››��r��Z����‘�]’H’‘�\’K’M’N’O’L������’Sš�š�’P’Q��t����š�’I�‘�’T����–�9‘�œ?œ@‘�‘�ޏ`��œ<œ:Ž
����’�����L����@f�;)��B
���$F$m(
T�4J
P	
��dd��F
������’�›�›�›�›�›�’�œ�š�“
“›�›�Ž2Ž3““	Ž#��j���’�‘�‘�““
›�›
›�
’�’�““Ž$��j��’�“Ž1’�Œ�����j�`�‘�‘�Œ��������i–
Ž––
ŽŽŽ
Ž
“��Ž�ŽŽŽ ���m��–Œ�Œ�–
–	“��“����žBžC��“�*���ᅠ��Ž%�^)�������f��Ž&���j���iŽ(�L��R�“+““#“$“"“!“ “(“)“,“-›���&'“2“3“5“6#$�“/“0��������M��Atd��G����]�3����be����Ž�-.Ž�Ž������������“���d������������L�Bp����� 
�n���ԃ��‘�›���›�›�›������u������u�‘��p›�›�›�›�›�‘�‘�‘��o‘�Ž;Ž⃮Ž�Ž<Ž>’�E’�D›�›�›�›�‘�›��L�Bp����� 
��a������Ž:Ž�x�!YŽ?Ž@Z\ŽB�r’�“�“C“E“H“D“I“;“=“>“?“<“@“A››  �+�Ԇ�!����M3:�@N&��B4o0v	�_F!�����������'NbE��A‘��B‘��A‘�� ›�”<‘�� ›�›�›�›��L�Ž���œœœ	�e‘�‘����cŽ��iŽ�Ž��~��œŽ�Ž�Ž�œœ��^��^”g�T�/Ž�”I”K”Q”L”MŽ�Œe��Œf��”[��”\”F”G��”h�T�.���‘�‘�Œ���K�m	���x��������”=.”>.Œ�Œ������”?0�L��L�Œ������	�����t
������
‘�Ž�ŽK�ǃ��r���N”m�}ŽLŽM�L�B�7�����j�”BEŽ_�p���•C”p”q”s”t”CD���L�HB�@T�݁��ǂ���������“T“Uœ$œ%œ&œ'”d��”et��“P�M>�@T�
6�����`k������Ž�7�����s���L�•D��•I•J•G��•E•M›�›�›�›�Ž���������(•k•l•^•_’�’�’�•b•a•c•d‘)�2•i•j•q•r‘*�PŽ����iŽ���Ž�Ž�	��Ž���Ž���Ž���Ž���Ž�	��
Ž�Ž���Ž���Ž���’o’p’qŽ�����Ž���$�6’���L��Ž�Ž�Ž�Ž�Ž�‘+‘,’�’�Ž����� �PS��&•m•nœŽ�›�œ•V›�ŽĎ��Ž���›�›�Ž�(�����N��Ž�•R•O
��•Pœœ•p•S����•T��������›�›�����M	A9�@Q%��B1i��(�@B��������;]��
%����9	›�œœœ‘�‘�”��‘�‘�””A�Mn
�E=�P�Mo�EI‘�‘�‘�‘�”}”~•��M?�B_7�����a�"������”�”�”�”�š�š��L�HA�C��Є�������>›�›ӂ�”S”U›҂6��›т�	
�M�H�›�›�œ(›�‘ыX‘�‘�‘��S‘�H����M�H�Ž�•|��•}”EDŽN���›Ԃ�›�›�‘^�x��ŽO”v��”w���MD�B_8�B�F���"•{��”��V����M��F����������s�MH’�›w›x’�’�›s›t�L��G$����M��IP����MN�MO����M��MM����M��O-�����s’������s�MGŽ	œ�’ԉ�›{����M_�@���$�f��6��?Ž/Ž0“��	“�“�“������ņZ��?3Ž�Ž�Žb��ŽcŽmŽnŽlŽiŽg

ŽrŽsŽqŽdŽeŽuŽvŽwŽ���Ža'��““Ž�Ž�g“�j�Q“�i�6h›�����M]�@���$�f��;ŽR›������Z�ň�B›�žžžžž6ž7ž8ž9žž ž#ž%ž+ž,ž-ž/ž0ž.ž&ž$ž'ž(ž5žžœ��{ž&ÝY®���F����Q!cL��24���������V%���`:�J���B��?µP���n�p�[����¶�¶�¶�¶�¶�¶�¶���)¶�¶�¶�¶�¶���*��D��¶�¶�¶�¶�¶�¶�¶���'��(¶�	�b��¶������޶܏�µK¶�¶�µNµO¶ݏ����������µQ��#�I�p�U¶��ż�Ÿ�Y¶�¶�¾�¾��Ź�[··¾I¾J���¸P�1����¸�¸�¸�¸�¸�*��¸;®��#������D��[��G��H��E��F��J��K®�®�´��¸���®��%������M��P��O��N��R¸���T��U��V´�͋1����]��^��d��e��a��_¸���6¸q��‚¸r¸Q��%��=��>��@®�®�¸�(��7��8¸s��¸t��·������ዲ�[�7�
�ޥ�ަµ�µ�¿����r¼0¼<¼9¼:¼;¼G¼H¼I¼K¼=¼L¼N¼1¼8¼5¼>¼?¼@¼A¼C¼D¸����·�·�·�·�·یu·�·�·�¸������N´w´x¼_¼`¼l
¼a¼b·ԅ�·�¼s¼u¼v¼j¼h	¼e¼f¼gµ��&`����¿�¿�¼y¼z¼|µ��%_�q�޴������·Ѕ�¼Z·х�¼X¼[¼\�ެ�ޭ·���{�'��݋��Z�6
�
¾¾�¾�¾�¾�¾�¾�¿�¼}�g��¾�¾�¾�´t�`����h���������¾|�k��´u���+�f���¼R¼S¾z�o¾�¾�¼U�U¼V�U�Ы¹�¹�¼~��
¹�����
¹��޸���������������������¯ٔ�¯�¸��x��W��X¸�¼�¯ڔ̊���;¯ўI��Y��Z������¯�®�5mQ��x��RW��O"���|��""n:	��ڄ�1+V��� &
�P¯����M¯6}¯���¹�¹����¯���������Έ��ʯ������j°%���¯L��¯M¯7�d�������������¯>¯?¯�¯�¯8�b�8¯9¯ʊV���Ň/��b�ʺ�¬�—�˜¹$¸��̌´�´�¹!¹"¹#¯ˊZ�����.���������������¹���́�'¹��¹����&¹����x¹��¹��½°"�9��
��
����´���&��´���Ê�Ð�Ë�Ï�Ì�Í�Ÿ� °#¹�¹�¸[�Ò¯N["�ׅ
F��U	����N'F�}�����#�X��W��X��Y��Z��������\��`��]��^°'¯P¯Q���������������¯��H¯��H��]��^��_��`��a¹¹��g¹&�C¯OW��
H�����L'���m¯�¯�´�´�º���l8��������������������)��*¯��ɂ	����,¯���-¯�¯�¯�¯�
��¯Ô�¯�¯�¸\�+�4����������Õ�)�Ö�(��o¸]�F3�¸^�����Q�¯�°�²��T��U¸p��������°/°0¹
��¸_���	���ݜt�Œ���)��*¼��uº
ºººº¸��
�i�E��¸��
�i¯5^Q��f
��HQ��I
���R"
	d)	�}����@V����
>	�T�A¼¼¼
�Ù�Ú���¸
������
����¼����¹��i¸	������]���“¹�´�
�W�
������������0�ô�õ��T¯U¯V°*°+´������Ý�Þ�ß�à��¯A%?��]�lHW��T���^�d��($.|@�����
����F�\������,������-¹������������������¸�¸����ã�•�–¯J�����<�¸�g����¼������¹��6��¹��������´��	�,��������
��´��7´��7¯B$O�)������(..�

�pF¯I������.�}�Á�Â�Ä´�������´�¯X¯Y��&¹�n���t�¼�&¼�l�����w�¼¼´����O��Ɓ��C�
��{��~��|��}�”¹��}�O®���;VO0#�"�l��@����{�ㇷ"��g��%��&$G
-�}��
�]��n�����Ȁ�ȁ���T�������Ƿ�8�����7���Ǻ���ȗ�ǻ�ȓ�Ȕ�ȕ��D��E°�°�������I��H��J°<°=°>��A¯Ӂ�������#ºNºO¯ݘ���������¯��������������°��������°��X°���O�	��@
��*�	��;��9	��B°��U¯ԁ�
��#�i"��"°���������°��2�g����:F�� 
	�N��)������º#�ƃ��º<���I°C°D°E°@°A°B����H��������°����ǃ��Y(�Nº%º&°�����$º!��	º4°FV°I°J°K°GQ°MR°NR���������������������	���������������º5�7
��s��t��r��o
��m
��x��w�Ɓ�Ƃ°��f��	�]����~9R		��v�Ȋ�Ȍ�ȍ�Ȏ��������Z���Ȓ�������:5!�́�#��u��8��.��M��N��O��9��+5����,�ˤ��5�l��6�k��°OR°�ºA������������°�°�]����)��&��'��-°�°���.��,��%��(��v��w���=���������°P°Q���=����"º3±±��4��6±��#H����±)���´�´�´�´�´�´�°�°���J��R��P��S��U��K	°�°���O��L��Q��W��8��9��:°�]��	�Ȯ�ȯ����±�)±
±±±±±±	���t���O
�Ȭ���ȭ±±±�0���Z��C±!�(��&��%±"±#°�9�����;��"%�1Q����
�`�Ȱ°9°:°;�ȱ�� �����7������Ɠ�Ɨ�Ƙ°^���聟������°_���������������� ��������偞	���������������������ƞ�R��s�6��t�5�ƝB�}�����a��b��c��^�ƿ�˪��_��`°�5������:��#�%�d�c������x�ƣ�Ƥ��y�Ƨ�ƨ�Ɣ°������Ɯ��{��|�Ț�ț�ƚ	 
�����eAx�������ƭ��m��o�Ʊ���Ʋ�Ʈ������
°R°S°T°UN°VN°WO°XO�����ȝ��
�r������]°ė°�°��
��`���_��\����Ƭ	�\���_����j��������k���/�c������������q��r��d��z��{�ƕ��e�ȳ�ȴ±+�����I°Y°Z°[°\±-±,±.��r��s±/����PºB���.ºC��±A������F��±0���J	±3±4±2��±1
±=±<±;±>±?��$��%±6±7��'�ȃ����������������Ȇ����v�ɀ�Ɂ����|��z
�Ʌ�Ʉ��w��x�ɇ�Ɉ�ɉ�ɔ���5����4����������ɖ���~�D����������ȇ�J����������Ȉ�ȉ��
����������������������
��	¯�:RN#0!��l��@��	��'P�����% 3�LZ%%
	���&*C
�s��

�-	��=��<�f�Ǣ�Ǟ�ǟ�Ǡ�ǣ������>��������A��B°]K�>��D��J��E��F����������°��>������L��M¹�����N����
��P��Q���� ��%��&��!��"��#°?Y�͂Ł��a�#��*��+°��C���ȁ���S����V��W����.���� ��!��"��#��T����3��/��0��2��6��8��4��5°4T���� 1�~�r�q�°�y���y����ˁ�+��~�����*��+��6��M��8��7��a°�#�^°�°�°�������.°��
�r°��~��/�þ�o��2°����i���������9�$��:�$��;	��A��>	��<��B��C��D°ͯ_��^��_��`��4��5����������/��0±F������������±Hº)º*±G��°t)!�������が�͇�
2�u)����)g�҂LC3����
�W°c°d°a°b��4��5°�����\��]°���i��l��j��k°�����U����B��C��X����V�ɫ�ɬ�ɭ�ɮ�ɰ�ɱ�ɯ��Z��[����˯�˰��T°f��°g°k°j°i°l°m��_��`°r���<°ۘ&°ܘ&°6G\�G�Ӄ���
��+m�ق�c�ǀ�6������w�@��x�@�lj�,°7F���H�ڃ��������݂�°ؗ��ǂ��v°��v����t�Dްy��°z�±I�*�˲�˴±K�h±M��[��s±J±N�.��|°uA 	�����
�vV�n'��
m#N�т�#"��|

°���°��Q�'�z��L��K��J��G��H°��T�8°�°�°�H�҃u)��4u,n���ǜ��y��|��}��z�ɧ��D��E�ɨ�Ǔ���Ǖ�Ǘ�Ǚ�ǔ���˂�˃����������°їC����°w°x�+°�%�d°�����d�ɥ������������������g�����~������ƄP��������±�ŏ������������d��e�����]��^��`��b��a�������DZ�ǰ�������Ǯ<��5��7��8��9��:��=��o��p��>�ǯ<�H��?��@��4��A��������������������������������������������������������������������������������������˷����Ǩ�Ǫ�ǫ
�ǭ
�ǩ����.������ɾ�F�ɿ�F�����������˻���˼K����
�˽R����
�˿���˹�˺�˸���� ´��"�����+��,��-��'��(��)��&��ބ��˟��i��k��j���������˞����#��$��"��/��B��C��D��1��2��H��I��0��G��E��F��l��m������߁�����M��N��R��O��P��Q������������S��T�����V��W��X���´��	�����f��g��h��Z��[�������������������®�a�ɍ�v�9�]�d���±R��½5½1½2½3ºTºUºVºWºS±S±a±f±e±b½½���½´ӆ�ºY��{��|±T�ΐb���̆��½ ½!±U�ΐb���̅��½A����½0�̒½$½%½(½)½*½,½-½+½7�P½8¸0���T´��b���S±Z�ωk����c��d��f��g��0��6��1��5��2��7��8�̡�̢��/�k	����]��^��,��-�̚��±\±^±]±[±X���\
��	�̪�̫�̭�̦�̧�̨��+�k���̗�̖��~�̀�́��±Q��?�І�q�8$��½F½G½D½E½I½M½N½O½Q´Ы�´���N¸-�#¸.½9�j��½½W½<��̏½;�m��½:
�½Y½[½Z½=½>
�̍�̎¯�Q��6J��V
6�n����}���w��+
$
B��R����F²²²²�7²²»N²²²º}��J��K·�·�·�·���M��N��q��r���¯�¯�¯�¯�¯���Bº�º���C��p��q���º���k��l��?Cd�����@Bc���±�±�±�±�º���|��}��~��±����"�-��������±�±�±~±�±±�¯¯�֓�±�¯����ĭ�ĝ±؉��<º�º�º����-�ġ��ߨ�ߩ�ߪ�߫±�±��Č�׃m]������������������±��ރm±����±�±�±}H����1�/��±ד��7±�±Փ��C���߃	�ߐ�߄�߇�߈�ߊ�ߌ�ߍ�ߎ�ߏ�ߛº��đ�Ē�ߜ�ߠ�ߝ�ߞ�ߒ�ߕ�ߔ�ߓ�ߖ�ߘ�ߙ�ߗ�ě��_��`<�ű�	���)±�±��ĕ±��3��`J�i��»»
»»»±�±�º�º�¯�
�������¯�±�
��¯�¯�±�
��±���±�
±�
��±�
��±��-|»W»Y»Xºqkºrºsºp�	±s�� »[»\º�±�±�±u±vº�º�º�±�±�±t�� ¯�����<��
/
�ºy��ºzº{�Ċºt��,
��º�º�ºxºu��Rºv½bº犢º�º]º�º���<����g±�{±�±�±���v�����������±���������������=���ı»±�±�±���±l»L»a»b»d��»e»f¯�P�t4#
K�[V
4����I
&W����		.
(��N������j»"¸5»#»$»&»»±�±�±�º���º�6º�6º�º���e��f�̷��������±y±z»h��»i±���T��S±n��H����J����U�{�@½d½e½g´���j�H��ϐ/&±��p¯�¯�¯�º������������k�a���h��i±���º�º�º�º�±�¯���
G
�ف�����`<�B��	<!���@���D»@»A»=»>��H��°°¯�°��m¯�°°��I���������������������������������߿�������������o²��߉��»*»+»-»/»1»0».²"²#²²»3»4»D����»E»F»H»I»J»G±{���|�?º�º�º�º�²°
��±|���~�<���ʅ��|��}�ʆ�ʉ���ʀ²°²/�"±�±�²%²)²*²&²+²,²'±�±�»6²0�"»7»8°�}���w��G/���O��°�|�>���u��º�º�=�.º�º�<	º�º�º�º�º�º�»(��p±��"º�º�º�º�º�º�±��'º�º�±��������������±��
�
º�º�º�º�º�º�º�º�º�²2²4²3¯��y	e	���������r��
�1���@²7�E²8»:°
�����I�А9��t»C��u�ߣ�ߤ�ߥ�ߢ��n»;»<°���²²	»)�ʋ²:²;²<²=²>²?»g±���n��o±p�B�8h��\��
9��n��o��mD��r�������ļ���߀�Ľ�߻�߼·��`�@�
�
=»�������ߺ» ·��b�F�	º���º�¸¸±�±q�A����[��
>·��b�e·���c��C�������Ļ·���¯��[s�G3���»�������»»¯��[s������»»»»²K	B�J�����j��t²l�E²u²v²m²z²{��d��e����	²�²�²�²���²r�}²o²p²s�~����»���²�²�»���
²R²S�6¸��b��c¸²TL���6��/�\�����½��W½�½�½�½�½�½�½��͢²�»w���V����T���͍
�͔�͓�͐
�͎�͋�͌�͕�͖�͗²�²�
���6��*�<���Ͳ�ͫ�ͬ�ͳ�͵�͈�ͮ���ͯ»u�0���ͧ�ͦ²����v�ͨ�ͩ²U²V��O²�²�»�»�»�²W²X�qA�u��C����W��X��²Y���u���S»�½x½~½z½{½|½}½y½���H²��²�²��ޡ²��.��²Z²[²���²\'�;��·�·�·�²]�e·�²��<��²�����²L-�<����
�c�

~����������������
���͂��%��&�̀�́�̓��������»��b��»�²O[���\��²����{��²���²P²Q²h�Z����
�<�w��»�»�½�½�½���i��j���Ӂ���½�½�½�½�½�½�����²i���T�w~²`�G�鈆�Ӂ���z½�²a�G��½�½�½�½�½�²��}²�²�²�¹�����[���²�@
²eL��Β�&����y��z²�²�²fK����&����|��}��~��¯���~+w�{�
�!�…ك
��
(��O@\��6������L
m�׏´	´
����������A���א´´
�����������������������������²��̂��օ�ֆ²�������������²��z²�²�²���E��F²���
����G��H������������²Ѧ&��������������������������r��,�P�1��
��?����s���r��o��p��q��s��v��w��z��y��x��{��|��t�	��u�ܿ�������ӥ�ӧ�ө�Ө�Ӧ�Ӥ�ӡ�Ӣ�Ӫ��Ӯ�ӫ�Ӭ�Ӈ�.
�ܹ�ܺ�ܻ�ܽ�ܾ�ӊ�Ӌ��>�ӈ�-�ܶ�����ܷ��³�����³���׾³���������׼�b�� ����@�Ä���A��C����D��F��G��H³�����³
���惐���ӱ�Ӱ�׿��S�Ӳ�p�Ӵ�ӗ�Ә�ӵ�n�ӳ³�o�O����
#��z��{³�³������������
��Ȅ�³��_�T�����~��T�j`�[��U��V��a��c��d��b��'��]��(��*��\�f_�V��&��Z��W��X��-��.��/�������ܝ�ܞ�ܟ�ܠ�ܢ��^�c��_�b����ӎ�ӏ�ӑ��I��L��K��J��M��N¼�¼�¼���ˆІX�Ӓ�ӓ�ӕ�Ӗ³��³�³�³��³�³���Ӛ�X��
��v��t¼�¼������I�
9�B;��&��¼����y��q���Ӆ�O��2���A�����������������Ӏ��@�����Ӂ�9���
�������������ה�+����ו�+��x��P�jQ��
����	����
������
�׫�׬��������������ל�����ם���܏�ܑ�ܔ�ܒ�ܓ�����ך�x�����ӆ��y�
�O�����ת
�ש
��ס
�ץ	�צ	������k��n��l��j�ӝ�Ӡ�҂1�3b�p��ք����	�����������	���	���	���������u�9��s�.�2Q�o��t�7�ӟ�Ӟ�������������³���E����|�ه�و�ى�ـ�ً����}�ف�ق�ك�ل¼�¼�¼�������������������������������������������������������³���ǂч�����<k��1�٢�٣��ہ���P��Q����������ҿ�Ҽ�ҽ��ނ��܁����ٚ�ٛ�ِ�ّ�ٓ�َ�ُ�ٔ�ٕ�ٖ�ٗ�����M��N��O��������B��C��H�Ѧ�ѥ��F��D��J��K¼���Ҫ���¼���֣¼��S���֠²�)����³��²�+��³��¼�� �ү�Ұ�֥�Ӷ��I��J����ӷ������ ����$��%��'��(³������D�ӻ�Ӻ�������������Ӽ�ӽ�Ӿ�ӿ��³��}�����������������K���N��L���M��������P��؇m��������H��I
��J	��Q��M��L��K��N��O�����:��������;�����������������=��>��g��f��c��d��h��i������y³³³³´C��´D��V	��Y��Z��X��e��f�؁�؂��W	��`��\��]²�:�k¼¼¼¼¼¼¼��Q�5����q��s��t��w��r��y��z��{��R��m��S��U��z����k��m��n��V��Y��X��W��Z��[��o��{��>�#��i��j��c��l��?�$��a��d���f��g��e��� ���١³�����������(k�K��"������������������������������т�//���ҳ�Ҵ�Ҷ������ǂ���Â����������Ȃ���‚�½s�㋅�х½w�����C¼���?��@½q��`½r½u�Ҹ�ҹ���������´�´�´�³ ������ *�߃ӂ�������������������������������������������������������¼��9��¼�¼���v��w��u³!���#��
�ۅ���
����
����	���һ¼����������������������Y����]��[��Z�n�����\���³³´F���W�]��'��������������������������������������������³$³%�٬���³'��³(���³E³F³+����������ѧx����"����!�� �Ѩ{��$³H³-³A³B³3³0³1³.	³9³:³8	³7	³6	³4	³/�ޝ��¼!��������¼"��´��������³#��������������������A�p��³)���٥�٩�٦�٧�ٯ´G���U�\�	�#��	¼�¼����������´ꈶ�Q
���*���ٱ�ٲ�ٸ�ٷ�ٶ�ٳ�ٴ����������������ޟ�ޠ�����h�o�N³K³L³I³J³M
³T³U³Q³N³O³X³Z³Y³��i�?����[O��(�4��������������(��,��)»��r»�»�»�»�»��ѩ�Ѫ�������ѱ³a����³c��������³b��³d��?����B��A��@��
��K��>��<��?��>��=��@��A��L��³�³�³�����<��������=��2���ѫ�����Ѭ�����Ѯ�����ѯ����¼�¼���3��	��&³��V�������S����³��T³������N��O��Q��.���ј���љ����/��4��5�Ѳ�ѳ�����
���ѵ	������ѻ���Ѽ����6�ѷ������1��9¼#¼$¼%�Ѿ����
��/�Ѷ������3��4�Ѹ���ѹ����)³e³f��������-��*��:����+����������³��h�?����/_�	$�
������������³h/³i/��8��������5���:��)�Ą������������³p�؉e�m��	%�������E���;��C�������8�����F��������������D��I��J³j³l��³m³k��´��³|��������
��!��³³�³�³~����³t	³�	³�	³�	³v	³u	³r	³s	����³q
�̉e�l���C������!�� ������"��#³g/�}�����"��$��%�Ѱ�s��/��0��U��V°�������Ѓف��c;��������	����(M´V´^´]´Z´b´_´`´a´c��=��>³�����¼�����S���W¼&³�������X��Y��R�¼'_��¼(�
¼)�p���J¼�³�³�³���Y���\��Z¼��р�����P��`��c��d��i��R��a��b��m��n��_��`��b°�����摝����2����8����!%������������N��O��,��%
��&��0��'��(��)��*��-��H������"��I������#��$³����0���� ����7��6��8������´O´P´R�^�����<´S���@��C��D��A´e�؄´f��´U³�������
���^���´T��
���F��I��������������K´J´K´L��F��q7��.������������������³���s���σ���҃���у���Ѓ��څ�چ	�ڋ	�ڊ	�ډ�ڎ�ڍ��x�	�ڛ�ڗ�ږ�ڕ�ژ�ڙ³̧�³�³�³�³���ԃƇ�Ԝ�ԝ��ՃƇ	�ڤ�ک��0��O�ڦ³���-��.�ڴ�Ԟ�ԟ�Ԑ�ԑ��ņ�t����������������ڠ�ڭ�ڮ�گ�Ԕ�E4�Ԙ�x�Ԡ�ԡ�ԣ�Ԥ�ԥ�ԧ�ԩ�Ԩ�Ԧ�Ԫ�ԗ�C6�ԕ�z��G�<�+������³�³�����³�³��ԋ��ك���ۃ������ڃ������؃��ԉ��)��'��(��*��&�������߃�������ރ��ڳ�ԃ��¼ʘ���k��~����Ԅ�ԅ�ԇ��������#�ԁ������������$��%��z��{��r"
��.O*�����ք�Ԯ�X�ԭ
)�$�Թ�Ը�Է�Ԭ�=�Խ�Ծ�Կ�ԯ�M�Ա�X�Բ�X�Դ�X�԰�L�Գ�X³�³�³�³�³�³�³�³�³����I�Q³�³�³���ڷ¼�¼��ڹ�ڻ�ں��,����������������������������������������������������������������������Ԏ�ԍ��1��2�ԏ���´i�e�a�$�����;��>��=����������������������X�����������������8��9��������6��8��9��<��;��7��
����
�����´j�e�a���P��3����6��S�Ԃ���\
��Y��W
��T
��U
��4�����f��g½l��½m��j��k¯�����x	�������x���Ђ���/��R@`�̃���	��	!��2�`%�R
�G,H��Y�۩�ֹ�۬�ۮ�ۭ�ֺ³³��������������	��
��
������������g��]��n���{��i�]	��d��e�����������^��_��`��a���F��.���(����A���q�Տ�Ր��?¼�¼��� �&����&�'��#�&��!�(��'��,�%��-��.��/��(	��)�%��*�$������$�8��S��W���9��U��X��Y³�"�k��������4��9��6��;��5��7��8³�´�j����²���������_��c��`	��k��l��j��g	��e��a������
���������ՠ<����ա���������������������������������������y��z¾t�Ȃ�_����_��y��z��=�b��B��C�ׂ����K��%b�����#$�N³��9%�$��B��C��E�����;��O	��Q��P³�n��Z³��\��T��U��A��F��H��I��G�Փ��ۅ
�ۉ�ۊ�ۋ�ۍ�ۈ�ۆ
�۔�ۇ��w��x�ۗ�ۜ�۝�۞�ۖ�ۙ�ۚ�ۛ�҅�V������҆�e�����������k�҈��m��n�҉�Ҋ��l&�Ҙ�ҙ�Ҍ�ҏ�ғ�Ґ�ҍ�Ҏ�Ҕ�ҕ�ե�է�թ�դ�լ�զ	�յ�ղ	�հ�խ
�ծ
�ժ´o�f�Y�C�Œ��>
����	��@X�%��2�ҁ��v1����҂���҄��u%��
�ҥ��t+����K��|��}��~³��m�ʄ���n�		
9��+��^Y����*³�ކ���³��ۡ�ۢ³�³����������µ��³�³�³�³�������־¼���¼�������q²�²����q���v�E��с����׎��b�o�\��c���z��{��e���f���g��~����$¼+¼,��!��#��"¼���%�������ۺ�۽�ۼ�ۻ�۾�ۿ³�	���t�
C���e�;���³�³�³�	³�	��³�	³�	³���n��%�s�|�ۥ�ۦ�������������³�����۱�۵�ۨ�۳�۶�۷��������¼�¼���[��\����7��:��;�����������w1����8��9��:��=��x1����<��6�W�6���´´����؉�؊��7°���Z1���Ƀ�#���҂��;�5��|Ga�?!|�݄?�����vµ
µ��b��c��e��g�D����h�֫�������ѡ�\»�»�������0��/µµ��1��2��i��j¼��7������¼����L������¼������ؑ�ؒ�ؓ¼����P����²�����²�²�������¼�¼����²��������W²�²�²�²��ؘ�ؙ²����;����!��=����?���Ѣ������>���q�+��.��+��,��-��/��'��,��(��,�ص�*�ظ�+����ع�غ�ػ´´��#����������J���������� �o�*�ز�د�ح�z��)��!�������$�x�-��%�w�,�������������؛��*��+�؜´}��µ��@��A¼���v��,��-��w´~�������ї����q��3�9����¼������������¼���K��L��N��O��P��R��T��S��Q��U��V��²�"�5������|������>'=�)��X��Y¼���k¼���o¼���n���x��4��':���j��0��Z��[��
4������m����¼�¼�¼¡4��������#��1��2¼��
¼�¼�¼������������������������	����4��5��7��6��9��:������������#��M��O��T��N��P��Q���,��*����²��³³�³��$����_��`��a������[��
�I���*��'��Z���H���*�4��\��]����²�	��Q+	�����҂��9��Fa�_|���*H/���G�إ��J²���������²�H�
��;�Ѡ�ئ����H��C��F��E��D��G��H²������,���������´�4�s�b
.��!��
�������
�����������������´��ך^��
������
��¼�¼�²�/�����;�J�?���������������џ�J���¼��
�J�ѝ�J��=��A��B��C��D��>��?�������������´�T�R�)´´´�R´�T�R�)���y¼�¼�¼�¼���������´�������`�	¼�¼���P��Q´�²�´�´�´�´�´�����´��X�'�¼�'´��{��������t��u�њ´�������b�چ1��
²���~��²�²���²�²�²���µ���ה㌐�ы½����ю½��эµ�|�뇞����µ���ה����ш��®�		
�����V��
��1!:
F��2&������ ��
��
^����V%5�v'�H$��-�8?��9Y��;]��Q��R��S�������P���\��Uµ�µ�µ�%���b¸x������µ�����µу��bµ�µ�µ�¯$����»�»�¯¯¯¯ ¯!µ"�Z�y½���2��3½���4��5��7¸¸�µ#��¸}¶�x»Ƃ�¶��¶
½�½�½�½�½�¶��¶½�½�½�½�½�¯%��
��¯(¯)¶¶¯+��¯-¯,¶¯#��¶¶¶
¶¯/¯0µ��B���iµ�µ���`��_��a¾�µ�¾�¾�¸�¸�¸�¸�µ��@��¾�µ����n½���Z½�½��n½�µ�µ�½�½�¾�°��
���'�]��f��e��I��J��K��%��d��g��h��&��'��(´"�������o����������´%����àà¸F¸G°�����&�]��c´!�
�;��.��0��1��-��¯���¯��r¸�¸�¯��¾��p¾�¯	��¸�¸�¸�µ$��µ&µ'µ(��d��e���¾�¾�¾�¾�¾�¾�¯1��	�Ƃف���>�!�&����
¸�½�½�¾
¾	¾
¾¾¾¾¾µ3���µ�µ4���½�½�$½�½�½�½�½�½�
½�
½�
½�
µ��
�<�ʛ�I�ʜ�Hµ.µ/¯3��	���Ԇ!�(��`�;���%�ʟ�ʠ����¸҃��Е=��»�»�»�»����½�¸�¸�¸�¸����ʢ¾¾&¾'¾¾¾¾¾ ¾!¾¾¾¾"¾#¾$��r½�»�»�»�»�¾,¾/¾.¾-��5¾)¾*¶��»�»�»�»�»�»�»�»�»�¶��»�»�»�»���i��
µ�µ�¾�����
��n��q¾�¯	�������(�+������� ���#V��%�S?	��0<]��µ�¾;��¾<��¾=��¾?���������������¯����'�F���¯��½ّ�½�½�½���b¯��½�¯���D
�j��|h�����6���B\��;�(
�����?���@¾0¶,���ϕ¶.�ϖ¶-�Ϋ�����G��J��I��H�έ�������ή�ΰ���¾��άV�δ�ε��	�γ�η�θ�����D��-��.�����K��1��/��0��A¶1��L��M����k�����%���������&���*�¶2(�p������¾̇���¾���¾�¾đ�¾���g¾�¾�¶3'�o������¾ʇ���I�i�ϴ�f�ϸ��iH�ϲ��^X�f�϶¶\�7��B��C��E��D��n��q��o��p����������k��x��l��������m��y¶]�6��s��z��|��t�φ�τ�χ�υ�ϊ�ϋ����������~��~�����ρ�σµ�u-�ՈP�uP��a��b��c¶8¶9����µ�u&�(���O�Ϗ¶a������:�ϑ��������f����G��H��K��I¶+�Ϛ�ϙ�Ϝ�ϝ�ϡ�Ϡ�ϛ�ϥ�����������ϣ�Ϥ�Ϣ��������������P¶{����~�Ϧ¶x¶y¶f�T¶~¶¶g¶h¶i��¶q¶r��¶o�8���	�κ��Ϯ��Q��R��?¶@	)	����z¶F¶C	¶A¶>
¶?
¶k�>��ϯ¶l����D��E¶u¶v¶%
�*�~f�����E%\O��
�:�Ϩ�ϩ��;��<��=��X��Y�ϫ�Ϭ¶X�f������¾�¶0��n����6��7���L���I���I���I���I���������Z��[¶Q�#��¶R�!¶S¶����¶����"��#��!¶ ¶!¶"µ�µ�¾8�j!�Σ�Τ�Υ�Ω¾9�i�Φ¯]���b�ˆ��A����������
��������¼�-���A��w���������������ݫ�ݬ�ݭ�ݮ����������������������������������������݉�݋�ݯ�݌�ݶ�ݸ�ݺ�ݷ�݊�ݗ�ݘ�ݚ���������������������ݻ�ݼ�ݽ������������������������������ݐ�ݛ
�ݞ
�ݝ
�ݜ�ݢ�ݤ�ݥ�ݦ�����������������������������������x`#�ݔ�ݕ�������������������ݍ�ݎ�ݑ������{��	����
�ݖ��|��}����~��
�݂�ݰ�ݱ�������݃�݄�݅�݇�݈�ݳ�ݴ�ݵ¯^tJ�"��H��!����EwIC7����\,���^>�0+g�k��+0�e~	G=�-
X%�q�
,¯�¾]¶���S�i�����R�e
���"����������������"���"¾b¾�¾�¾c¾a¾^¾_¾�¾�¸g¿O¿V¿T¿U¿R¿P¯���� �s�����¾�¯����"����������¶�¶�¸h����·�·���)��*¾�L��=¾�¾�¯t��n���݄�/��g¹q¹r¹.��¹(¹)¹*¹+¹-��¹1¹2µo��υ<µqµrµ���Jµxµ|µ{µzµyµ}µ�µ�µuµ~µµ�µp��^��*��)��(µ�µ���I¯w���G�	��¶�¶�¶��	���¹z	��&��'¹~¹{¹¹�¹|	¯u���	��-:�`g�Ά����������¯v�ҏ�¿I¿J¯j�,��C�O�3�7��;��$¯m¯n¯����¯�¯���1��¯�¹���(��)��*��+��,¯s���Ë5�E¿d���-¿e��¸���¿h��%¸�v¯k�,��
A�N�0�ň;�8��#�����������[¯l�G�����2�w��/��0µ�������O�-µ;����5���)���)��6¯{¾����t�̓�����t����¹�����@��e¹�¹�����@¹�µ=��¹�¹�¯e��	�U�Zj

����:L�t�5�0�I�ك�,´6´7´5´9¯`���¹�¹���6¶�·�¶�¶�¶�¶�¶�¶���-��.´>�O��¾R¾S¾U¾V¾Wµ�µ�¯f��	�R�P	j	
��:H�s	�w�$��·�F����¾L¾M¶�¶��z¾P¾Q¶��C��´:�}H��������ʏ�¶�¹A¹B¶�M��ލ�ގ¯h�V�q¯i¹C¹D¹E¶�8�5������3��4·
¶��t����¶�¶���������������	����
��
µ�µ���������¯։��Б��а���������h�������e��:�ŋ�ŏ¯����@��|`�͌'��`��¼¿A��7¿�¿�¿ #��¿�¿!�¿"�¯��(�{
�a��µ�µ�¿+¿,¿)¿*¿.¿/¯��(�x
�a��·E��¿6��&¿7¿8¿9·L��¿<¿4·I·J¿5·H·F��
·G¿2¿3·N·O·7·8·9·:·Q&�j�N�^��·S·T·V·p·R
	��·b·c
·d·Y
·]·Z·[·r·t·s��'��(¯�����]�H�ʆ|�;�0���τ1·¯|¯}¿?¿@�����<��=��?·,��·2�·C·D·3�¹R¹S·;K�i�N0��`��·=·>��!��"¿&¿'��C�� �%��p��q·<�*·?·@��l��m��A��B·��·$· ¿#¿$µ��{µ��z·	��·!·"·'·(��O�,��_��u��t��v��w��}��P�,����y¯_+���E&��!A_��Ds�zwN,�˃F�'

V�h
	(�Lt	?	7�-z�~�
'���¾������I¹t¹v¹u�ů����΁�΂���µ��E���hµ:µ��5���h���Ųµ�µ�µYµiµjµkµZµ[µ]	µdµ`µhµ_µ^µaµb···z��}�e�¯��Q�g�	��¹T¹W¹U¹V��@��A¹Y¹Z¹a¹`¹_¹^¹[¹\��B�����G��H·{·|¯a��H
���s$B��#�6���eT��
µ�����*µ�¶���¿¯���¯���¹p���8��,��-¯���¯������;���;¾�$
���Fµ���M��N¾�v��¿_¾�µ��w��µ��pµ��u��Rµ��o������i���i¯y�@���L���Ƅ僰�n����0µ��?�f����_��#¯z�@���ʄ僰�n��¹ꆆ�K!���о�п����������м������¸I�o������¸J�m���������¸K�й·���E��w��x��v������������¸M�����°�����J·���¹�������н´'����z���J���	�I�!����Q�΍��m	���
���
¶��3�����Ř�ř�������������Ţ�ť�ţ�Ť�������������Š�š¯�	������¯�	������µR�N�`»�»�»�»�µS��µTµUµVµW�D�Q�ũ�Ū´-´.´,�ρ����P���مD�"�F��?��µ�µ���g��h��i¶��Tµ����J���؅D�g����¶��Rµ��Wµ��Ŗ���������������¸��»�»�¸�����´)����}���L���	�I������ ��������
��´*��¶�����t���Ŭ�ŭ´(�l�C����K��`�x�ŗ¸���¾�¶�¶�¶�¾�������¶����a¯¯¯¯¸!���������������������¸¸¸'¸&�������������������������������¸9�R����|��}��������¸:�R��z��{��¸)����������C�������������������������������������������������������+�������������������&������������������������������������������¸$¸
¸"�A����¸<�@��%�^V�:��� �$�][=���)��%�S��=����'��U�ٌԉ�,�0���r,ÜiÜkÜj�
U�
W�
X�
V�"�#�$�
Y�%�
\�
]�
^Ý���>��&s���ԅ^���
S�
T���>�+�/�,�-��k��n��m��l��i��j����������V�ٕlj,�0���o��0��1�(�)�&�'����s��4���J��
��
�6*��������������A�B�����������������!6�:�ф��>�O�Q�R�P��9�����������#4�:������7��B�H���5����{��~��}��|��D��E��C�C����4������1�S����������/�0�1�����I��J�y�z��Q�����#�g��
�����J�F��9�C��:�C��;���|�}��R���̓g���@�H�I������6���� �����"�3�4��7�c�����o����������������������������7�T�t�s�p���������������8�e����!��5�߃Lq�B
��
*���`
�������������E�D�F�.*�/*���=�>�������h�=�k�l�n�m�l�j��-�6C�E�� ��sG�b�U�V�W��>����<����L������2�EG����M�D��.�AA�C��s�8�9�\�[�Y��1�D+G�������?�L�@����S��F�G�p�q��T��F�G�c�d��,�c�&�,�8a�3����^�t�v�x�ou�
�{����M�~��N�O�P	�W�S�Y�R�Q�T�U�Z����������������������������������������������������7��������A�g�s�w�t�u����q������q���鷉�������������������p�������W�����������V��U��鱉�����������������������-��Ž-��
��7&����<	q�S		�a�������(���������������������8��<��;��>��@��A��?��D��E��G��H��I��F��S��=��9��Q����)��*��+��-��.��2��3��/��1��#�� ��!��5��"��$��&��'��%��������������构!�.���<w?��`�������������%����O���8�:��9�:�:�:��
��7����:	o�Q	�_	������������曂�7����Y&3t�>
sT�
�h8�Y�긇߁�2�����+���/�߁�4�����궇߁�3����������깇߁�������������������������z�w��ʁ����m��l��������������e��������f���~��������d���r��x��s��t��u��v��w��ˁ����b�����abH�D����,�U�uu��<�:�?�A�@�E�:�=�9�>�@��������ljC�f������������������%�@���w�x���������������������������������������3�䔌�����搿�f��������҉9��������
���������/�M�%������n�p���o�q�r����������������������������������������������������������������������/���Ѕ����́�����э��������ύ�����ό��i�������������؍������ڍ����/���:�����%���������g���)��d��e��c��h����a���1�����������������������&�a^4��+��y	
g]�x�i�]�he��k��+���������������}��J��1����E�~0��G��5�2���������������������{�������.���v���h �[�x|�����������������������	��������
��
�����榋��ׁ��|����構��S���������l���������桌u��|�������������������敄O�������������Ѝ�1�������������%��-	����������������䝟��������������������������������������X���)���������Y������������������
��������
������������������� ������!��U@�
�����Ãɂ���BA�����h8
(BL�BUjI
��Z��R�K��3*��&��(��'��)�}�����������f���g����	
��K�G�� ����������,�/�.�-�0�1��O��M��L��R��P��N��T��U��S�@��Δӂ�����������������'���������!�g�h��������)�������������!������+������"��#����*���������!��(���
��	�	��ނ'����������������
���
��ʃ����-�����*7��C�r��F7��	������������������������9��;��?��:��<��=��������������������������������������ŇF��0���������A9��E��D��C��@��A��������O������������
��
��N�����������˃�����&)�����
7�قr��F
7������������������������
���������������
�,�� ��	����F����������������2�����%�������������T����Z��]��U��V��\��[�Y����W��X����������V�k��^����`��a��d��c��_��e����f��[��\��n����m��	��k����j��g����h����4��}������~���������������������������������������������������c�d��U���u��z��v��w��|��y��{��p��s��q��r��VR������������H���։UF����
�X�w�<���*��������������������������!��#��%��"��$������������������������������������������ ��������������������������������������������l��o��q��r��p��m��n��h��i����k�����
� � ���������������7��8��9
��@��A��<��;	��:��=��>��WU�������6H�����[����
�������������������������������������f������������������,�����4�����
��
�������������������������������������������������������
����
����5��6�婆Qt���ځ�u��9���������	���3�6�5�4��
��
����������3���������������������Rr����s������������������������������2�ꣃr��D��G�~
��	�ꥃ���D���������������ꦃp��C�G��5p����D�H��������������#��&��%��$��'��(��-��1��.��/������.����/����k����
�/�/����������p��d����k��g��l��f����e��h��i���Ą���������V��Wl����Yk����X�V����������l���n�)#�1���$s���������m��p�*�n��o�*��n�*��]D���4�������������������^!���]	��n��w��s��t��u��v��r��\�����_�<��a��b��`�9��r���������������������=����I�}�~�*������"�l��8
(GF��j6��W��P3B��B�S���*
�#�"�$�%���������������Ü�Ü������������꼇����꿇��꾇��꽇��껇���������-�N������������J�����Ç���ć���‡�����K���"�������ȇ������ɇ����"����@����ӋI�Á�b��2� +���������4����5������~��������}���������������3�*�W
����������������(�)���
�������L�тb�������̓�U5'T=�1	i�
�\�]M��:)�寊�����2����������������������������������������+��7��:��9��8����f��������#�����澉ҒЇ���ԉ���Չ��墆h��$��܇S�ʃ~���������E�5���G�����������杖����ﬔ��ﭔ�����N���
�j�n���S5��d���~�N����<�嚆o��"��؊��]�����^�_�夂�����������������������f�1�p��g�������.����
������h�����@���������������(���(���|��6d�k����M��������
&����1���2
���:x���<���?�;��O���������������������o���N4�.
1���q�r��3��������������w�M3�-1��7�1�������������9 �l�ڃ����4��@�F�Y��|��}��{����������������
;8�j��3�����������t�u�����z�'���{�|�������w�x���l�L���P(J	�F��Z����\�L���Qq�������p�I���L'K��@�K���Pq��]�L���Qq�����Pp�������	/���e�f����n���څ7V"�z��)&�����������������������W�^�_��n��4��(.!�[������a��+�>���������������y�����n�r�o�p�$�����&�%�A�G�B�C�������������������
f��6d�k���23�e������
������������F�J�R�G�H����������������������x
��e�������[�T���g���������^�ꆙ��W-	�t��+�.���I���H�[�]�^�\�a�b�c�e�f�d�h�i�j�m�n��v��
����6��������e6��".�묊���6�L��%��%��
�����������S���U�V�T�X�Y������r��������[��t��u����t��s������x#�L�����L�n
�'<�lES
�/	�疡���_������a����b����`�������瑡����������"	����	��	��	��	��	����	��	�猡����	@�������V�W�痍����:��;��>��?��B��A����=�	K���������d��������c����e����f�����������
���秐i��m����q����p����o���禐k�����Ą�������g������;�<�>�?�睃·��ւ��#��� �!���ʇ���a��:�u�x�w�v������j����
a���������箃������ ���烞E���焛�@�hd7�jd7����kd7�id7���l�n�p�r�s�o�m�q�	p	�	q�������N��ȁ��j��'Z�e�������������)�c���3�Z���4v������������������$�%� ���!�"���sc�_���

#W�g����������
������������
��������������������������������
��
�����K���P�	\��
���	]�������1N
�P���&�%�����KT.�N�������������������������0K���O���	Y�	Z�������纏{��������������u����y�����F��l����E��D�	���z���	��	~�	�	��	���v��x����w����ɏn���������������������菕����S��R�:��Q��T������돘��N�������J��I�笐l���F�G���	o	�����ώ�����̏}�&	����������K�L��y'��O�zX+�m]�n�e��E=�1�������	��	��������������X�Z�\�[�Y�������>�|�X�G�P�������O�N�Q��|6���Q���]���g�"�]���������������������^`�����������������������_����~�'��� ^������}�,��;]�������`@� �a�b�e�g�f�R�����l�+���S�T�(���_�C�����)�C������B�*,��6
��-93����A��B��o!���7�	���$���������	��������%�	��	��	�4�	���������������������i��k��o��j��l�h��m�g��.��/��q��p��t��s��r��u�� ��!������������������������������1��2���������]��3�ꅊ������ꋊ������ꄊ�e������������������������������������������+���������������������������������1�)�U�/�
����=ÝÝÝ��&��'Ü�Ü��ꌇ����ꐇ��ꏇ��ꍇ���N���r��R��uÜV��P���pÜ����6�E���u�����z������S��xAÜ���2	�'�;��b��0
�U��c��Y��\��[��Z��]��^��5��`��c��b��a��d��e��3���E������2��`�.�
����?��M��/��������'���=����C�;����8��9��~��������}����Ü���(�Y����G�:����6�G����Ü�Ü���7��L�o�p�s�r�q�t�u��<�/�?�N����������������8�������ꕇ���~�ꔇ��ꖇ��ꒇ���W���&�$ �)����X���%�" �(���������������2�l������������K�� ��=�����������5�����������������������4�k������͌f�����������������7�P�'�,���0�Er2������,����2�����������������������	�����������>�	����	��	��	�����9���,	$,��6
��-9)����@��B��	l!
���0.����X��\��[��Y�����	$��^��d��_��`���R�,�-
�9�	������������������܃�����6�����'������������������@��A��9�������"���������������9����8��������������C������-��	i�/�����	<0�#�*���8����z5����������������������������������������������	���*���������	���)����������G��������	
��
����
	������l��e�#������m��n�Y���������������������������M�ꙇ���Q����*��+�꜇���ꘇ���������������������ꝇ������	k�,����		)0�!��1���J����5�T�Y�X�W����3��h�S�%���������������[�\�������	�0�y�����z�{�����~�	�/��D�:��E����Ɩ�������������������9��o�@�C�B�A�>�?Ü������q������������!�������"����F�����	��	��	��	�����G�,	�.�+.���	�C������u�U�P�������������������������=���@�?���>�\�]��8���
�	�
���������������n�o�袐�C%�=��������	������������������襐�������^9�����`���_=�������������������@�d,"��P��������������� ������#�e�褄A�fO�%�.�����8�����:�����!���� �������������/%��獺*��������'��R���D�E�S���0�����m�P����ف��n���0���m
��]����������8U!�m���������([�e�f�h�i���%[���(Z�	��"�����������$�#�%������������������S�W�T�U�X�Y�*T�.S���+R�,T�������������y�{�z�|�p�q�w�u�s�/�2�0�1��ߍ=����ۗ����4��#�:�;�5���6�
������!��D�"�#�$��G���F��"���
�������������"�[�^�]�\��"��ލ:�m�n�o�j�k�_�g�e�f�h�i�b�`�F�H�M�O�N�����'��3�R�(���G�I��s	
�#	�	
'�����c#�4�ꂚ��w����������v�r
�*��w����x�����������	�T�������������������ʇ�����������
��z���{�������
����~
��:#	����=�G�����Q�����O�y�P�y�R�y���ۆ�܆����������*�X������)������u�辑&���	�������s�������5���9�6�7�:�;�u�v��
�l"	�����
���S����(�P�~����T���������v�������.J�0&�0�1H�/%�/�z�{�|�Z�[��������������������������_�B�C����!���d����������������������������
�	��꧐]���ꨐ]�	��������������	���ء��ބ+����������������������8�������������������T�V�W�U����!�����݄<��������Ѓ�/��
�N����X����+
�P�`��߂��-
�L��Ԑ9����������j�k��&/�������� ��q�h�"��������[!F��K�����{;|U31
��3����N���E�P��������A�� ��!�+�,�6�9�7�8�3�4�G�����H�:�=�<�;�F�S��������Nf���Ջ���K��L�+�,��W�8��)�'��Qa�����Z�V�I�U��������O�;P������������"������S��T��#�i�h��c��d��a���"���A�Ă����3���� ������1�����͍P������������������M�����?�@�!���v�܇���������M��N��L�ׁ��$[i�o������������"�;�����3�������0�1������]���%���J�~��^�6��[������O�N�%�(�'�&��\�P�Q�S�U�R�V�T�=�%(���%l��3������ܐ:'��X��Y�/�.�,�-�7�2�0�1�������������\�]�_�a�^�`�>)��������������-���t-�'&���$k��3�����=�����&�E�'�@�B�A� � ���R�)�*�冡K�wd
�xd
��f�ᄡ�d��5�8��9�7�h�i�k��7�7��6�8��:��;�K�y3�z3�L�M����������g���������I��,��-��������	����9q�������	�N!#������������)��*��(��,����������3���1�Dž~�b��2��9�;�<������	��
�z���M!#������Z��[��!
�2��H��G�"�D�u�w�v������a�z�{��#�	G	���U��b��p��f��i��h��g��d��e��$�	G���b��`��"�	K����%�8����]���������������������l	�q�n�o�p�r�|�w�y�x�{�m		�s����������������������Q�R��������ɂ"������������������������������������������T��)��������������������������������*����������������������������i�h�j�k����I;���z����{��|��~����q��r���D����G8���H��t����u����v��w����T�-�_�`�b�f�a�c�d��W��X��Q��R��V�*��U�7������Z����
��F��r�h��rA���������D*��|���)��N����Z�\�햎��������^�_����G��H����F�G��/�v�x�y�w�z��E�G��?	�K��
���G�sA�w���
���
��	��������k��i	�r�n�m�l�o�p��`�ꂿ����_�����%0>*@;l�8�f�����b-"��	�O
��c<���
�
�ꩇ��ꭇ������꬇��꫇��ꪇ���
����������,���������������������
���톏8�4���������텏7����1�
 ����/
��3�
$�
#�
"�
%�
&��Ӎ�5�҄���a����������d�
9��d�����1��I��_����������������d��������������������`����f@4I<���6�"���m��Z���S�
��������ƌ#��� �������
<�
>�
?�
=����/����m��n������"�%�&�$�#����������������� ���������(����
����8���>��������.��.��������������������ɂh����h<5
?;ip������� �փJ*��M1�
-�
(�
)�
*��قd����jg��p�Մi�"����[��t������������	��c�|��f�����,�.�-Ü�Ü�����ُ���������
D�/�2�1�0�
E��p������������q�����b���@�B��?�O����������@�N�����A�C�h�i�峡F������������������������������}����~�{�| ��8���3
W����		��9��h��҃��5��
:��
o��kr���#G����+[z�X"��J 	/��s��t��m��n��o��k��l��q��r���ߚP�����O��%����������	�����������������������������"��������#��$��&�����������“��������������7��*�����3��4��5�
�C��c��i��j��h��f��d��6�B�T��B��2��?��C���1��=��@��A��8������忄w�<:�m�����;�l����o����p��;��<��������y������z����捝D��������������過��
��u����� �I��������٘�����弋P�彋P�*����������#����&��%��$��!��"�����
�����������������
�����
���
�����������������������������2�����������#����$�����^�����/�0���Y����������������'��*��)��(��+��,�����Ō��2�G���w����E��H��I��G��K��F��T���!���#����������W���B��V���!���#��U���A���+��X���>����7��������������������2Q�������&��������t�ϔ����E��D��G��H��u�є����v����+��,��-�
d��.��/��A��1��2��w#���0R����������x"�#������'�����
b��(��)��*��������0R����	x�g���Y�Z���a	�����A�W	�阕_�`	�[�\�径·a���o��������������������������Ä؂�
�s���������{�х�����5��3����������7��-����-�0����e��L��g��h��f��I��J��|�����N��7�����S��:��;��<��8���R��M��N���[bc�Z@
�������g�p^����5Q�����f����v!��������������>����?��=�y����!�!����c��b�����"���������?���!����n�r[����9n�����j�����q������������1��@������ˇ�����
�͂$	�����������̡�����V�������������-��������R�S�T����Ü����O��M������������	��
��P��Q��S��O��B�
Ü���T��W��U��V��@��X��<��.��>��-��?��-��=��-��(��'��(����"n���(�b�_�`�j�f�e�g���������h�q������+�����k��Ѝ���ҍ���Ӎ���э��r�;�$
�����t�������������s"���������������u�9�$
������	D�.�|�}�0��J����G��K��J����� ]����������z�������ֈ	�..���%���
�<�:���$�>�A�@�?�B�C�G�J�H�I�D�E�;�U�Y�Z�X�W�V����������/���)<.�_6�(��2���N��������������������E��1���N��F��0���P����%J5���R/��Q��S������������O�����7W7\�0
N��������+6
���������:��%F��a_
��	�
F
��
���w��J
����������������������������^�����H��������I����J��K��]���������:���G�H��Z������]�����������L��M��O��Q��S��P��V����U����W���������,�-����d��V�U�T����鄂��܁�:���s��������H�I����"��%��#��	����������������������[��Z��Y��\���z������T���g�����
7�ӃGZ�ρ���e����
;%����\�� ������O����ա<���u��v��.��1��0��/��2��3�����,��o��n���l��a���l��n��n��j��e������+���i����F��_��b��a��`��^�G���P�1�ی�d����9�������������w�����{��ł��
a������΅��ی�g����������������g��g�L�M���&���'����
�H���G������x�����a�ЂS������]��^����	��
����҅���g[�·������������D�؇��8����9����������y��ga�΃���Z���韂���<��#�Ł����Y��^��_�����������������������������@���/$�1#�0�K�_�L��u����w��x����v�P�[�7�����������'�)�*�(���������<�"�>�?�6�
u�=�4��F�D�C�B�9����������$
�%�H�� ��#
�+�.�-�,�
y���R����+��������r���@�9����|�}��������������������o�	���K�P����	����
��s���r�s��t�՗���~�������僄q���v�w��%��y��z�u�v�w�	��	���J����(���	���\���B��L��M��Z��[��Y��V��T
��_��^��Q��R��a��b��c��n��q�>�����V(�����p����
�����������������
�����������P3�����(�������r���A�8���
��B��I��E��D��C��F��G���y����&�~���*�����~�����F���;����x���������������z����b�c����	����~���
�
{����"�$�%�&�#�
��
�������~�.�/�
��0�4�6�7�2�����������
�l���l����e���f���|�
��
������
��
��`<��������������:����i�RO�G�
���
�n�(!��B�.	O��
����z�D��!:
5�b�6e��؅������$�oS�3!�3"�3#�2��3A�3B�3�3C���3D���34�35�36�3�3 ���:�@�?�1��3=�38�3<�3/�31�30�3E�3F�3H�h���������$
�oJ�3�3�3�3(�3�3�3�3�3�1��1��1��1����7�3N�3O�3P�39�3;�3;�3;�39�3Z�3[�3J�3L�3K�`6ªD��с��Q����P�\�g�
��
��Gx�Gz�G{
�G�
�G�
�G
�G|
�G}
�G��G��Gyà��FIà�à�à��Ev�Ex�Fd�E��E��Ey�Ez�E{�E|�G��G��E��E��E��Ew�G��G��G��G��E��Fe�7�E}�E~�G��G��G��E�E��G��G��Fm�E��E��D恭�E��D灯�E��
��e�����l1���E��E��E��E��E��E��E��E��E��E��E��E��E��E��E��E&àk�E'�D�F�D�G�EI�EH�EJ�E(�E)�E-�E.�E0�E1�E*�E+�E��E��E��E��E��E��E��E��E�1�D�8�E5�E6�E8�FZ�F[�D��D����E��E��E9�E;�E:�E=�E@�E>�E?�D��D䁬�D偬�EG�
��e�������YkÝr�EF�D��E�EE�E�E�E�EL�EM�
�����E��E��
��E��E��E��E��E��E��E��E�
�E��E��E��E��E��E��E��#��E��E��E��E��E��#�
�#��#��#��#��#��#��D��
��	�
�E��E��E��E��E��E��D���E���D��D����E�E�-�E�
�E��D��E��/��r�F�F�F�F
�F�F�F
&�F4�F	�F5�F6�E��F7�F8�E��F�F�F�F�F�F�F�F �F�F�F�F#�F,�F*�F-�F+�F0�F1�F%�F)�F$�F�F&�F�D��F�`PªX�
��ჸ�@���I�E��E��Er3�FA�E�á�á��/��F?�F@�Fb�`QªX�\�������@��á�á��E��F;'��E��E��E��E��E�F:�F<�:�E��E��F>�F_�F9�F`�F��D�D���Fq�Ft�Fr�Fs�Fv�Fw�F|�F}�F��F��Ff�Fg�F�F��Fi�Fy�Fz�F{�FB�FC�Fj�FD�FE�FF�Fk�FG�FH�
����˖��\��m�o�n����&�F��F��F��F����/���F��/���F��F��
ř����/��
ƙ��D�?�D�>�a�¨����Pf�\\�/��
¥��
��
��F��F��/��F��F��/��/��E�Eu�`OªD�Ё׌S����A���[Ag�F��F��F��F��G$�G%�D��F��F��D��D����F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��E�wL�E�F��F��G�G�E�E�G"�D�=�D�<�G#�G!�G �F��F��F��F��F��F��F��F��D����j�F��F��F��F��F��F��F��D����F��F��F�7�F�7�F��F��F��D����F��F��F��F��F��F��F��F��G�G�F��G�G�F��G�G�G�G�F��F��F��F�	�F��F�	�F��F�
�F�
�F��G�G�G�G�G�G�G�G
�G�G�G�G
�G�G�F��F��F��G�F��F��k�l�G&�G'�
����΃���-P��[�E^�G9�G:�EN�ES�EV�EU�ET�EW�EX�
��
��
��
��
��GC�GD�
����Ea�Ec�E`�Eb�
����GL�GP�D��D��W�GR�GS�GT�E�EZ�G<�E]�E[�Eh���G/�G0�G1�G2�G3�FM�FN�G-�FO���FX�FR�FT���FP���FQ���FU�FV�GU�GV�Gk�Gl�G_�Gh�Gi�Gd�EO�EP�Gb�G`�Ge�Gf�G=�G>�G?�G@�GA�Gn�Go�Gp�
������0���[-R�G)�G*�EQ�ER�GB�D����GF�GJ�GG�GH�D߁��D⁌�D����Dށ��Ep�Gr�Gs�G��G��G��G��G��E�E �#��#��#��b��Ÿ�
�����]

�̄��kk)�����:���������\=��xy�Q6X�0,�0-á����L=�L@�L>�L?�����L��L��L��L��L��L��L��L��l�£#�����T�����U�L��L�����
��l�¢����bC�2�2 �2!�����<�5��5����]�^�������bF�x¢�
���H?�HE�bG�������H@�HA�X�^���HO�[���HK�L:�L;�Y���Z���HL�HM�l�£�������)�q�a��MR�MS�a����a����I�l��l����L��a��a��a��l�¢�F���:���l��l��l��l�
�l�
�MU�MV�l�¯}�MX�l�¯}�l�¯}�j�k�a��a��l�ž�����������2#�2&�2$�[�\�X�Y���z[R���hn�֙�	�T����������2��2����M[�M\���g�6�6
�6�6�6�'�����`�a�xZN�!k���o��	�T��ōc�����������������bA­��b���������������������������������������������������������������������������������O��z
�ψ1�
�0���6�U�6�6�HS�3a�HT�3c�3d�3e�HW�H\�H]�HY�HZ��%�k���%�k�������	�k�Ÿ{�{
�͈5�k���n�w���)�o�����@�����P��y
���q�����/��
��k�Ÿ{��
���)�6�6���������
�=��
�a�>��Ÿ
�����]			�\�kg$�����Ո������,+	��tr�Q6q�8�9�6�7�L1�2
�_�;�<�2�^�D��'���H8�H9�u���H;�w�bD¹���+���d�֖ӓÄg+���2�2�2�2�2�2�2�2�2�2�@�����2�2�2�bE����L3�A�B�aы�£���Q��!�@�v� ���06��07�08�09�0+�0;�0O��0<�M]�M^�M_�0J�0K������������0B������
�0N�0>�00�01�03�02�
��
��aҋ�ž��c�Q�/� �E������04�05�0E�S�a���T�0R�0S�0T�0U�0P�0Q�f��z�g��z�h�i��Hc�Hd��L��L��L�áá�L�����Vá�������0a�q�����á3á4á6á7�����0_�0`à��%Uá/�%Vá1á2��������������nP�������H�Ý�á0�H��`R�(d��ža��S
������������V,�`.B����KC���u<Vo������W*���]����R�{��H�J�K�H��I�O�Ώ��������(G�(Há�á��(F�'�9s�]�9m�(,�C�(-�Y�͛Nj�#��#��W����^���_�`�~��P������
�����V�Q�<���—!�l�2�R�>�X���Z����3?�Q��{�u��(��(��(��(��(������
Ⅻ�t�3�%�7�
����t�2�e�Ƅ������y�g�h�f�†	����y�����3���i�o�l�j�$��$��%���-	7�Q��{�p��ރ6���9��9��q������l�����-����������l�%Y�%Z�k�0�q�L�X	(�!���B�
��
��:�:�:�:�9�H�@�(;�(@�(>�(<���&���9����([�(]�(\�m�/�p���9�>�l�1�&���Le�Hx�Hy�Hl�
��
��Lc�Ld�9��`S��¤o
��
p�
������o����K�y�zM\���ZP�K�E�F�q�y�p�L�@���#��S�
�(b
�T�(a
�C�A�(A�(B�(^�(_�Z�[�
Ɉs���VV�WT�X�(��(��(��(��`���a�0���l
¦%���b�c�d�����f�j�i�o�q�h�g�l�m�k�¤�
�"���[�����~
V=���:�:�l¤|�!������� ���?�G��G��G��k�»��G��'��k�¤��������k�¤������K�U�S�T�Z�O�Y�Q�W�M�J���r�s�l©6�������lª��l¦����lª�
�������������l¦��lª��lª��@�A�k�¤`��
;!�
����������K�
p�vL��!���Y����#���y���Y���6�7�9�8�k�*	¤`���	�������M��Y��*U��l�(��(��(�(	�y�D�l¤i���܄����0�����w�l�k�*¤g���	Cs�|�����9��l¤i�����v�y�w�u��v��9��N�P�O�lªw�v�lªv�3�4�9��9��9��:���%�\�[�1�|�}�����`_®?�
�
�������u�������ZM�]�^�G����G��G��l,�l0�l-�l.�lW�lY�lX�lZ�l[�l\�l]�l_�lc�l^�l`�la�l'�l(�l*�l+�x�l4�l1�l2�l5�y����փʔ��h��l6
�l9�l8�l7�l:�l<�l=�l;������(��������	� �����������l@�(y�(|�(z���������(x�������(~�``®?�	
����
�ю�t�
���6���g��lM�l�l�lA�lD�lC�lB�lE�lF�lH�lL�lI�lJ�l¹B�l#�l �l�b���lN�lR�lO�lP�lS�lV�lT�lU�l$�l%�����������������������������/�9��(��9�����(��d���
偔������<�z��J���m��]��U(�Á�n
�+�P���3��
�V1�f�g�)�*�%�%�%1�%'�%(�%*�%+�%,�%-�W�9�Y�(��(��(��(��X�%&�%2�%/�%0�%4�%5�(��(��Ƈb�Ʌ�(��(��(��LJb�Ʌ�(��������d�%�%�$����d���$��$��$��$��$��$��$��%
á�á��փ����J�g���#��%7�c�:�%H�%K�%I�%J�%;�����O�%C�%D��H�%N�%P�%O���
���	������;���m�m���/%(	�����B���V9�i�j��O���d�6���$
�t�&�H��H�$�5�u
�ъ �����(��(��(��������������������������������������冽�������������%�}��������%"�s�������{�|�������y���y���1
���@���W�q�����D�܆��������m�n�o�����(��(���L��2�
�{����ZJ�� �(������(������������H�1�H��(D���>��/�M�`�a�����_�<�0�>�;�0�>��
C��
/��8��ZJ�9���x�(�(�(�(�(��(�(�(��(��
遭�y
�L��&��	���)�������rV��������������o����������dZ�e���qU�����	���>�5Y�?���'�����$�%����������4�����
��3�����
��
��
����&�
��
��)���*�:0����
�������������E�H�F������
$���A��������B���������������kŸl�&�����������
��
���J�́��~�K�k�§ȁ����¥��x�y�����~�t�u�v���+��󣑁����PYf��=�������������{f��g�|e�ׁ�i����J������%�
���
��
����i��i��i��i���������DU
Z�ޏ=��G�������������.�Rx�q�i�2�^�������9�8�<�������������=�#�@�A�F�I�J�G�,�v��
������:�������������D���E���������������������������	����
�������������������������������������������x�#J��$������,�抟�����Z�
����T�#�𣏏�����������k|Ÿv����-�S��t���:

G�H�2.f�����Y��������/��/����
�����r���
���
���
��
�
�
�� �T�U�����������������k}¤
��s�O�>���ˏ1�ZI�����X�`�a�^�\�Y�[�W��$�u���:+������'���	���:5�
���&�*�+�$���E�7�p�����}�~�|���k{��ž`*`	Q	���w'��	9/Y���	�hr��Tk\)��A�F����$��XCi'�u9V�����$��v��	�Rq��{��'��'��'��'��'��9��9��9�����Ý��*�'��5�6�8�9�-�.�k�+�,áFáI��Ý��VÝ�Ý����áH�%a�%b�]����8�9�:�;�=�>�kk��kl�7(�_�d�a�b�c�`��';���$��$����0�u�}���$á�á�à��G��G��G��G��"�#�$�1���&�3�4�'��'��'��'��'��j�@�A�?�lfŸ�8�~���؁Â��9���b��Y���V�K��G��G��G��G��G��u���1�2�v���g���������	��5���2�����8��$ �l�j�������'��'��H��H��H��H��H��H������O�P�`^�;��F����'��'��'��<�	�E�F�G�W�\�X�Z�u�t�r�q�y�x�w�z�{���������\���
�L�A���M�R�S�w���P�O�'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��x�����'��'��'��'��'��'��'��'��'��'��'��'��'��'��G����G����'�
�'�
�����kW��ž󁦄�ȁ�?�}C��a#"�� �������o������

7h��������:	0%?���Մ��R(�S�T�U�'��'��'��'��'��#��j�[�����k�Ÿ����C�����L�M�N�����{�|�����>�������֩M�*�+�����k�¥u������To�2��CSA�'��e�F�O���(M�(N�k�¥��k^�kd�ke���\�o"�ڑ��^�]�m�������kZ��Ÿ����w�kc�k[ )�ka�k_�W�����k]�k�ªؒ��k�ª��kX��	¢�����	B�@�z\D��O �����K��
Gj�+��4S9�d+��k��~��k��k����c�W���������k�¥`�Ձ�����Xo�9��?W?�'��'��'��'��Hm�Hn�Ho���>��(��(����@�a�k�¥l�(�k�§��(/���(4�(2�(1�(0�(.�(+�36�}�!�����(�(�("�p�q�:6��O�R�������Z����������������;�������N�=�������Z����(&�('�
��
��
��
��44�������(!�����59�������u�v�((�������1�Ύp��j�q��(��)�(��)�H��)�)�)�)�)�)�)	�H��)!�)"�)#�)(�)$�)'�).�)/�)*�)+�),�)�)1�)2�(�8�(�8�(�5�(�8�)I�)I�)H�)H���p���rO�):�);�)<�)=�)8�)9�)�)�)�)�)�)G�)?�)@�)H�)A�)B�)C�)E�`s2�� #.'M��H����Ձ���	�Jd %��C8��w���Ώr���Rc�ށ�[�)��Á�P�+W�+Y�+X�*�)��N�)��N�+�)�����M�*~�`��ς���$���1%�����)Q���+!�`��`��������`�
�ʔ�`��`��`��`��`��`�¬A�`�¬A�`��`��+#�`��ȼ���`��`��`��`�ª������`������`�ª��,���-�]���W����$��tMk�h��	��
8��I�)��)��f�d�c�e�
	���������%��%����)��)��)��)���Q�����E����������v���w�%��%��%��%��x���|�y�z�{�|�~�}���+t��������������������������D����������������s�2����������2���W�	�
�!�����2��H�.�����%��%����������������`�
¬<����n����������)��)��+��+��+��+��i�H�2�H�2�+}�+~���`�	¸<�����
�i�11�12�13�14�������I�����15�����I�I�����j���k�����������������������)��%������
��8����������������%Յ�*��8�Y��%�|��%΅��8�������%����%ͅ�+��8�������_����)��^���U��(����b���#��
3����������������������%��%��%��l����t�u�����o���p�����%��n���H��%��%��%��%��%��������m�C������|�Ә�+�Y��������h�%��%����c�E�=�K�����%����������)��)��)������
�g�)��)��D����*�Y��H��������������������a�����������������q�u�r�%��%����L������d���e���������������0��0��%z�%~�%{�%|�fn�F�J��	��=*$w
g�,�Y�á�á�������%���k�E�+&�+'�%�
��		��>.��8@�2�)X�+0�S��ѡ����j�����)W�)l�)m�gn�G�E�ƍ?����8)w
e
�%�Y���%��%�
�%��%��%��%�����k�
�=�Y�á��/�@����=-��::�/�0�8�9�:�;�<�=�>�2�@�E�F�C�<�$�1�%��%��)d�)e�+�'�+��3�5�6�4�y�+��%��9�Y��H�Y��`��0��0��0��0��0��`��)t�)w�)u�)vá��`��`�	�`��`��`��ʠȆ���k� jb��!�F�;���v)�+��+��+��+��+��+��*��+��+��*�����
���G���t���0��0��0��0��1�}�~�0��|�8
��	[���0��0��0�	�0�
�0�
�����0��0��+��+��+��+��k� jb��!�F�9
���v!�*�
��`�«:���F�	���+��+��`�����*ʂ�`w7��©Rh+3�U�i�ۍ@�Ѓ:�]H���������Yi�*��*�����������J���)��L�*��T�U�W�X����P�)��K�)��M�*��Y�Z�\�H��R�S�����*��`x1��©Q]#	���A����Fz�������U��%q�G�%��%l�z�H�`y«Њ��r�#��܇S�p�%�0��K�,��`{���)��`|���k�½����)��k�½����)��*s�*r�*o�)��J���q�#�		�+�p��%u�)��)��W�B�X�����*��*��)�����J�����*@�*A�*ꁫ�*��*��*��*��*����*������*<�*=�*>�*7��)�����J���*8��f�)��*��*��*��*��*��)�����@�����0��0��0��1�1�*6��)��)��*��*��*��*��)���sR���)��*M���*D�*I�*J�*G�*E�*N���*��*O��Q�*P�*Q�`������`��%�a�&�`�`���
��r��%��y�`�"«]�΅��`�«^���`��`��`��`�«z����`�«z���`�

�� #("B"��H������	�Ł��sA�I
U��B+	&��")?���4
�Uރ���[�
���
���*�*
�Y�Z�%��%��%������%����1<�1=�,�)�*�-����Ý��/�0�1�*���o�2�3�4�5�*��*���B�C�*���o�8�9�:�;�=�>�`�«u���Z��z�(�����0��0����*���0��`�«���)(�����JJ�S�0��`�«���)�GD	�0��0��1 �0��0��0��0����@�A�`��`��`��2��*�E�`�+�� .Me(-���C����LO<1YFOO�w	65��X�D�����0��0��0��0��0��0��`t�`u��W�)��`��A�*�*"�*!�* �*%�`��������k�¡3���U�.���)��������$�ۄ�W>M
dN-���)����������_�"�I���I�`�¸b�`�«Ѝ����`�¸`�`�«��k�������)ɇ�z��1	��)χ��1
��)���s�I�)ȇ�	�0��0��0��դ�t��X��0�t�p��`��� x���O����L
E
/1
RE	����B:�p�A�����������7�����V�H���%��%��2��0��k�¡"4�܄�X?VcQ���������0�)�0��0���(�������F������3����3��<�0��*��͙�������v�á��o� �
�v�
�
�H��H��p� �*���q�!�@�A�[��0�����vb�)������=�+��?�\��0�����vd�+P���)������)��)��+R���v�a�څQ�����}�+��x�����y�����w�a�څQ�+��
���
�
�����ȅ����Q��+��''�X�>�,�f	�-�,��,��,��,��-�,�`�`�-�-�]�-
�-!�,��,��- �,��,�c�,��,��,��,��-�-�-�,��-�,��,tA�-�,��,��k�¡��"�p4�*áPáRáSáQ�U�V���1L�
-��T�1M�p4�1O�����1P�1Q�1S�1T�k�¡���O�*à}�
,�1W�1X�1Y�1Z�I%�
E�	á���阈�x�1r�y���1c���rH�sD�tH�uG��[�O�L�M�
F�����x���Z���1\�1|�1}�IQ�IR�1z�1{�,��*

J���,������,��,��-@�����������d�j�,����-A�,�X�,Z�,[�,o)(�,������,��,vG%U�l�kG�
&�������
'�,��,��&
	I���U_�-�-�,��,��,�X	�,��,��,��,��*g���,��,�(�
I�����\J��M��A�mM�}F�,^�,�,�,�,�����&R�&S�&T�,z�,{�X�����&f�Y�����&e�~��[���&�,�,��U�P"���,����u��L���,��,��,�,�_�%��%��%��
I���בN��B��=�,
���
b�
c�����oS%�&X	��m/�&_�,�&[��b�&k�&l�&m�&h�&i�&j�,�8�-'�����m8�&Z�
|/�&U��&�,�,�,�&\�&]����"�& ����áU����G��áV�, ��D�����
6�
7�,!�
>��	����n�*��H��
���Uu���
�
�,��|�{�ט��,�à�à����&�g60���1��1��1��1����点��60�1��1��1��1��%��u�%��I\�&�����������
0���un�%���Y�F�	���RS����S����S����S�`�µ�4;��Lt�D�E�I�&�&	�`��`��`����z���`�µ�3�J�F�G�`��������&�&�&"�T�U[�
M��	�&?�&;�&<�&@�&>�&C�&D�&6�&7�&)�&*�&+�
T�
U���
N�ʍ�1�&2�&E�&F�&8�&9�&:�
O�&3�&4�&G��a�����
J�
K��h1����c��b���&%�&&�
V�2k��a�&$�&#�P�
W���
X����!�&!����Ix�Iy�Iz�I{�I}�

=���Z��Xb��'�I0�
$�
%���k�º{�J��,�P�Q�k��ݖ���

=����XL�I:	�I7�,U��	�I3	���m�F���
!�
"����k�,X���ID�
��
�������x��;��Q���&��2	��R^���1j�1k������k����j�h�1h�1f�1g�
Y����E�
]�
^�
Z���
[�
\�
B���G�e���R]�
C���p�˅@��1p�����
D� �
�
4�<�
5���b°�����b���.pi3�$��!�X����p�����,0�,1�\���F�1I�n�o�-;���^���#�IN�IO�,-�1v���1w�����i8����s�.F����,'��r�E���,&�-0�q�I ��s��,L���,M�����`���+�`���k�`���k�b°��'�"		ghN�.���X����1J�,*�,�,$�0�mJ�,5�,6�]���,8�"�,:�,9�1x���{��1y����Il�R�S��������Iq�G�IH�,H�IG�,?�,@
�,A
�,>Gj�,��,BLl�-�
:���-\��|�-Z�-[�
;�
H�
I�b��¡������ԁ��Y�r���S�('����L.�S		
P�f����n�p*-���.��k�T�
��W	a*)(à�ÝmÝnÝ�Ý�Ý�à������k�����{�X\�I��I��I��I��I��I��&���I��I��.��.��I��I��.��.����.��.�	���.��.��I��I��
r���{�.��.��I��
s�4�/'�.ڛ��I��.Ot�.Pt���.Q�k��€���y�X\�.S�Y�I��`���{�QT�l�`��=�Ý��.כ��.؛��`���z�Q
���.��.T�.U�.V�.X���a�JE\�Ý�Ý��//�/0Ý��k�º͇с�+��P�o^�.��.��-h��.���&����&��k�����*��O�o]��f��.��O����I��I��&����&��b�&�oj�&��xá_á`��
����FZ��.�
��]����I��I��.�&��&��&��&��.��'�� �I��-�@�����v. %@	���_
�	�W�ea�1��1��&��-x�*�-y�)�k�����1��1��-~�-�&��&��1��>�B����-��.����.��?�A������A���.����~�]�q�vÝ�Ý���ׇqW#c�㛜�Tㄘ�&��&���������&�p�ox�.�&�+�H�1���PÝ�Ý����P�1��1��-�$M�*�H�&��&��-�{$M�O�1��-��9Ý�Ý�Ý��'��
���n
5	!<���U
��T��ea�-��1���-�/&�k�p�/�1��1��1��.�-aX%ff�s]�
|�
x�
y�
}�
{�
�
��
��
��
��
��
��
��
��k��k��k�¡��k��
��
��.��
��
��
��
��
��
��
��-�1)�k�®~�l ��I6�t��&��&�Ý��&��w��&��&��k��&��I��I��&ɇ�M�6�&��&��-��&��&��&��&��&��&��&�
�F3���&��&��&���k�º���I�-�&��&��&��&��&��&��H�z�!�I�J��Ƈ��t��k������k��k��.��/�.��.��k���(�k���'�k������k��k��Lz�k��k��k��k��k��k��k����o��	L���T���K�1��&�����@�T����%�
n�-���
@���-������/�-��e�/�/�-��e�/
�/�-��-���	E�-��-����&��&��&��&��-�	��;���-���F�-���E�-��-��..�-��-��-��-��-��-���F�.z�q��N=�������I��I��k��k��-�8���-��-��1��1��r���M<���E�#�1��k��1��I��t�u�]�M=���M�x�O���P���z���{�a��¡���}�����L#���g�M-��L^�#
 .�Vo��2Z��)
���k�T�2	��h	^#'(à�������������à��1��a���/�/�J�J�D�F�E�H�a����)���{�|�}���������������M��árás�I�A�j���&�2�&��&��&��&��1��J�����C�k�®��k��J�J�a¹����a�C�a	�������a
���&y�����a¹��a�a
�a�&{�a�&|�&}�&~���a±��=�r)
�Q�������a#���a"�a!�̭�	�Z�f/�⁘���Ι�W���
���������������'�&�1�/�/�&��J�J�&��&����j����Xm�����������'�'�a�c�e�f�j�k�i�h�g�o�n�u�d�a�a�-��a$�o +��+{�?
��z�,$j��Q��!2.#��.����/
�Tw�!riO�
���
����
��
���
��
��
��
��
��
��
��
��
��
��
��
�a:��H�6�a;��G�6�`�.¹	�����
��
��a>�a?�
��
��`�-¹	�&��
��
��2��2��1��1��&��
��
��1���2��aJ±��aK±��.Z�aH�aI�1���
��
��ڂ��F���ܧ��2����������
������z�I��I��
���Y���2����aM¬N>������aP�aQ�aN¬�����
��
������ߣ$}.�!�aS�=O�
��
�����������������
���������������� �aT�aV�aY�a\�aZ�aW�
�y�9���p:C�z�.��O�a4¹����a5¹����a6�J�a.�a/�a1�a2�a3�
�{�s	�<|-2���-��M�������
Ս��
��ʰN���������a��a��a��a��
��
��
��
��2��2��2��2��2��aB�aC�a]¬��a^¬��a`"¬]c�J�ӌ.�a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��.��.��a��a��aa�G®��a��a��ab�+�am�an�al�ai�ag	�ap�ad�ae�ar�as�at�a�a�«����a��a��a��a�«����a��aAd��¢u���a���
��a�¬a�.�8�a�ªF���M�a�ªE�a��a��a)Y*¬2c�J�X���.�,�a��a��I��a��a��a=J*��£��b��:�a��a�¬e�ͯ��a�¹2�a%
u�� %��+
#9�=��������%2(	���F-����
4�Tv�}�2��2��
��
����aF�aG�
�n	�_�
ł��/��
�\	���;w.����
��
��
��
����+	�ւ�Ş����2��2��
��
��
���
��
��2��2��(�)�k�¢T:�I-�O�P�k�¢T:�.��.��.��.��.��k�¡ݡOr�����S�T�k���0r�ٛ��X��k���q�X��J�T�U�k�¡��Op���
u�k��k���0u�����J�1���W����I��I��1��o��I��I��/O�/P�[	�~���Q"��	�A��)��	����y��e�"�$���^�ST��	���4_�4`�J1�J9�/a���/b�J7�J8�J4�J5�J3�5�M�Ɓ��7��7�7�7�7�Jw�J��Ka�Kb�J��J��J��J��J��Kp�Kq�J��J��J��J��Jt�Ju�4z�Ђ������K^�4{���4|����J��K_�K`�J��7��6K�ā������J����Ko�Kf�6I�L���6G�����J��J��Jv�Jx�4��Jy�J~�Jz�J{�J|�J}�4������Kj�4��4��6L�K�J��J��J��J��J��J��J��J��J��J��4���4��J��4��4���J��J��
���16e!F�!:�ED�G�4��4��J��4��J=�J>�3�j��C���K�J;�J<�J��J��J��5H�4/�ΖZ6�40�3�j���,�I�JR�JS�4*��B
�6�5C�5D�5?�5>	��5=�5@�5A�41�JZ�J]�J[�2܂Kp
V�a�RH����������TJ���Jg�Jh�Ji�J��4��J^�J`�Ja�Jb�Jc�J_�Je�J��J��J��J��J��J��Jm���e^F	�-�GA�C�iP�7��7��7��7��7��4��4&�0���4�4�7��7��4��4��3�Q���;�\D���5�5�5�5�5�5�5,�5/�50�51�5-�5!�5#�5"�5$�5%�5�5�5�5�59�5:�5&�5)�5*�5+�5'�5�52�55�56�53�57�58�3Ԃ@�:�5
�5
�5�5�5�5�7��7��4��4��44�&��������	��gY���6@�6A�5��5��5��5��6e���6f���77�79�7:�6\��j�j��6c�.�K��K��6]�!�j��7���K��K��K��K��K��5��5��5��5��5��K��K��K��K��K��K��K�	�K��K��K��b���.�z����'A\�j�5����5��5��5��7R�7S�7V�7W�J��c���-�y����&�5�Vr�7K��7H�7I�7J�7T�7p��7m�7M�7l�7o�7L��7B'��7E�7F�7D�7@�7A�7�a��������AV�����U��7_�*�7`�7��7��7Y�%�7Z�D���5�	�� ��G
S���J��J��J��J��7t�3ڂ͂�H�3ۂ����70�71�V�?�7/h�7��7.f�7)B� �7u�7+�6i�6j�J��`�7�7�7�7�5��5��5��5��7#�7&^5�7$���Q�O�P�M	�R�L�K��
c�7"h�7c�7�7�7'e�/g�J�7;�x�K��76�3���R�3��3��J��J��J��J��J��3�F���9-���4��4��3����;�5�B�5��5��3�G�5��5��5��5��5��5��5��5��J��J��5��5��5��5��5��5��5��5��5��5��9.�r�<�u�I�ā���!w���g�/�:�S8����8�8�6q���8�8�6r���8�8�8�3����2	�b�7��7��7��7��'$�����7��'%���'&�5��5��')�����3��''���'(�3��3��4���4���3����	�d�6��7ςd�3����7Ԃa�3��~�v�3��}�6��6��6x��J��J��J��J��J��4y��u�2�6����8�8�6��6��]���V�n!t�5���4-�2�ez�$��$��5��	�5��7��^�\�҂6�6��6��6��6��6��7��7��`����z�?����7�6�5��5��5��3��3��6z�6��6{�6�6|�6�����������7��7��J��7��7��7��6o���6��J��J��3��J��J��J��J��J��6p����������Kv�7��3��x�6��Ky�3��x�6��K�K�K�K�K
�K	�K�K
�K�K�k�¢���"�v$�>ol�������������J%�J&�J(�K��2'�2)�2(�k��K��v���y���w���4<�4=�8�V�m�6��6��8�V�6��6��8�	N�j�K�8�O�8��8��8��6��Ԓ����6��Ҕa�6����6����4����L�K��L�L�K��J��J��J��J��J��J��L�K��K��K��K��K��K��20��q�D�*Y*�i>�8��8��8��8��8��8��8��8i���8����8�.�8��8��8��8��8�8��8��8��8��8��8��4!���8�M�8��8��21���X7�8��8��8��8��8j�?�8��8��8��8��8��?�J��J��J��J��J��J��J��J��J��J��8��=�8�A�8��J.�K��K��K��K��K��J/�8��4�Js�Jq�Jr�K��J��J��J��K��k�¢����s!�>m	e%����{
���K��K�à�à��K��K��9.�9�Ł��L��9-�R�K��K��9
�G~	���9�4��c�Ɂ���$e�$�TeL>����V��8���8�8��8�6ς��6܂��6��6��6��6��6��6Ԃ��6��6��6��6��6���ׂ��K��	����b������K�K���
��T���
����8��8�����/�6������F���6��6��8��8��8��
������6��6��5������8��5��9�8��8����5�9�8��\�s�„m��	�>��/����[2:&��e!'��]������pBEu�U	���K��6�6�4��4��4��4��4��4��4��4�
�4��4��3��3��3��3��3��4��4��4��4��4��4��4��{�K�K�K�K�3��3��K�K"�K �K!�K#�K$�|�8p�Ё��8q��	���JJ�JK�K�4A���4P�3��Y�3��Y�4Q�4R�4S�3��m�����K7�K8�K9�L��3������K/�3��3��K:�K;�3����3��!�݁���*�W�������3��3��7�K6�3��6�K5�3����ۖ�3��o���ǁ������
�����U+���4U�4W�4V�K��3��/l���:�/m�KH�KN�KM�KO�KK�KL�KI���K�K�K�K�K�K�K��K��/n�ށ�	
�4X�K(�KA�KB�KC�KE�KF�KG�4F�	�4G�	�3��3��3��3��3��3��K��K��3��3��K��K��K��6)�KQ�KR�e���������x���G�ǁ��၈��
	�����'*��(�05P�U�	���5e�����5f���K��K��5g�5h�82���3DŽ,�6��3��6��6��>���84���6��6��3��3��3��3�������k�������5�6�B�C�E�F������y��VJ�3��(�������6.�=���@�A�>�?�4x���T�8[�8\�8^�8a�8_�8`�5q���d�H��.�+�,�60�I��5x�5y�Ʀ|+����	�(?��(�s�9M��9N��/�0����.�4M�%���$>�5b���5c�����4s���)�����݂���5��5��6-�6:�!�i����]?
��
����		�!��%�`�U��6��6��87�8<�88�8�:�8>�8@�8A�8?�8B�8C�9�8F�8G�8H�8Q�8R�3�J�?�����5p��"�5~���;�8K�8M�8N�8O�8L�)	���������*<��(�p�2�4p�4q�5��63�66�64�65�3��3��5��5��8W�8Y�8X�4u�5��KW�68�69�*�5����5��24�25�Kr�Ks�5��5��~�v��4b���5T�5R�5U�5S�5X�5Y�JB�JH�JE�JC�3���M�4��4����5[�4��4��4��5\�4��4��4��4��4��4��4�
�4f\
�4gh�4hb�5L�5N�5M�5O�5P�5K�4��4c�4d�4��4��4��u�������r�hR���9^�9[�9]�9Z�9`�9a�4����9Y�4��9b�9c�lp¢.���EK�����9�������c��|�QÄ4e��áà�à�à�à��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��L�L��T��������:b�:c�2l�2n�2m���������L��O������L �L!�L"Ý�Ý��lj�2J�lm�ln�2K�'9�:]������������Ý���Ý�Ý�������woÝ�����%Ý��L��L��L[N�L\N�a�¹�|�3�����b=�b>�a�¹��{�ٱ��L����������L��L��۱���
��
�L���k���b¬��R�a��a��b@�a��b�b�b�b�b�b�b
�a��a��b�b�b¬��R�a��a��a��a��b¬y,�쇀��9-��E���n��������b
�b�����������#�����L]�L^�
��
�� ����w����<�2Q�2R�������:����L����������L��L������������������	�
�����L��L��L��2[á�2\�2]�:a�b�^¢.���EE
!
����
�9�������j���Q„4e����á�����o�b�����3��
���2�V�á�á�á�á�����N�a�´&�����G����V	����������
���l���G�L+����L,�/s�������2q�2k�2i�2��p	� �!â�2s�h�����L��`=����������ž!���z	��������i�=Nh�k�o���
�j���|!J��	Lc����r�R%8�Q	5��L1Gt�2��2�����/��/�Ýu�2��2��3�3�`A�`B®����'J�MJ�Q��MK�Q��lu¢m�Ƈ������M�M�/��/�á�á��'F�/�	�/�	�/��1�lw�lx�'�(�lv£3��d8�Q(�b�c�M�������������`T¼�݁��/��/��/��/��/��/��/��/��#���#��/��/��/��`D������`E�`F�`I�'܌��t�P��`\�£����Z�`]���bMº�������
�����	�����������bNº����/��/��/��`K�¬�������!�����6%�8�9�:�bX�;���L�<�=��Q��Q�bW¬��������Z�>���/��/��/��/��L��L��L��L��b\�b]�/��x�y��	�M�M�M�M	�L�	�L��L��L��L��M�M�M�U�����á��M�M
�M�M
�M�M�bY�L��L��L��L��bZ�kn¤=�{��bJ�'§}�S�bK�&����ME�MF�MG�ko¤=�{��2@���2B�2C�`?����£���s�tQg�#����d����&7�Ti�`L�`M�L�L�󁍘ɥ��`@®�����J������������P*3�T���ááá�'P�'Q�/����'T�'S�H��'V�m���lzª�����M�M�M�M$�M%�M#�M(�M)�l{¯����M�'O�l}©�K�-��
�m���O\�T��'Xá!�}�
��/�r_�/��fT�eT�bO´3�n�bP´2�j�����P��P��ly¢�����4��'[�'\�']�P��P��'L��`N��C��		ž�
n�*0?6'������>��������

����tU�x
�������)�ɂ��O�U�j��TFbNl�$��;C�>��>��Ad�Ae�Af�$;�?�Q�t�u���l�°��"�$���:��:��:��:��C��C��:��:��:��:��:��:��:��:��:��:����:��$�:��:��:� �)�:�
�:�
�E�`�1�F�F�:���:���:��:��'���$A�?�l'���l��l��C��$B�>�k���C��$�$�Aa�$<�>8��<B���<C�m
��%�>�����<>�n	�����=*�=+�C��$á(á)�b1�ؠ�T������9
����b&�b'�b(�b,�b)�b*�b-�b.�?F�<����?L�<����?I�?G�?B���:ւՁ���e��D	���>��?5�?<�?=�:ׂՂ;e��C���>X���>Y���?8�Ar�As�:��z�<b�y�?��b2�؞	�K��������9���g���u�D��D��?@���b0�`���4�΁�����á;�>��>��>��>��:��:��:��<_�<��<��<`�b5����<)�<*�b6�3�$�$�4�;6���ޏy)�|;��킲��3lN���#�Ý�à��:�-�:��@�@
�@�@�@�@à��:��:��@�@�;G���;H���:��:��=b�@�@�:Ń��$J�:��:��$K�:��:��?�5�bG�?�? �=����=��?$�?"�=�<�?1�<u���5�'h���:��:��:��:��'i���?Q�?R�?U	�?X	�?W	�?V�?S�?T�:�GB�ςI�����@�;�;�;�;�;�;�h���+�+�;��;�@b�@c�?��;	��;�;�;�?+�@)�@/�@*�@+�?'�?(�?,�@0�@2�;�@4�@5�;�;�l��l��{���;�ƅ���(�{	�������(	
iM���&���
�U(���A �<l�K�=��=��=��z���5�@�	�;�]���(�h�U5�:��@'�a��p�G
2S���X���V�W�X�@8�@<�@=�@:�@�@<�@@�@?�Z�\�:�������@�:�;�@B�@C�S�T�;���?/�@E�@F�`lª�
���2������J��P:��6b�Z	��h�Y�=m�=q�=r�=n�=p�=t�?j�?k� �"�!�?m�?n�;7�;8�;�;��=��;R�=��;T�;U�;u�;w�;v�;S�bd�be�;q�;O�;P�bg�'r�;Y�=��=��;��;������;Z�;^�;[�;\�-�]���A5������?���k��
�>�>�@}�$U�>��$T�>��;i�;j�������������<���j���;k�;l�;m�$R�+�a��@��)�+�`mª�
�*�	,a����D��PD���3\�\
��f�W�^�v�$��$֗��C���&��}��B��'���"g�\
���D!�D"�D%�D$�D&�D'�@w��c�?����5�,��	�@t���]�?{�?|�@u�@v�=��=��?v�?w�;��;��;��;��@p�@q�@�����@�@��=��=���J�ٌ�����	���u����U�Z\�$��D)�D0�D1�D*�D+�A9�=w���=x���A-�A.�;����=��=��;����A'�A(�?���?��A0�A1�?��>�����?�	�?��?��?��?��?��?��?��=����$V�:��l�3���$W�:�����=�]�?�>�@�A�;������D7�D8�;����;��AE�;������@����;����;��;��;��@����;��=��=��=��=��=��=��;��;��;��;���J��$������|�
��<�Z\�A6�A7�A3�A4�0�e�?��0�0��L���;:�D�E�G�I�H�L�̎c���������M����@��>�>�@��@��@��@��@��@��@��=��@��=��@��@��@��@��@��0�x���0 �`o���tž���Y<($���� >����d>�����t�����?	)������}�������>0�<�$��b�$��b�>��<�<�<	�<
�@��@��@��@��<�@��@���Y�	������]��?��?���!�>#�@���Z�?���;��?��?��?��>(�>+�>)�>,�>-�@��>%���b%�?��@��@��?��g�����=��h�������b!���ÁԂ*�@�=����<�<�=����@��@��>�>��P�ąv�*��j�:���?��)�?��?��b"¨�'�cY	<K���� ;����>�������b�v"?	%���������������<�<%�>�6�<�<
�<�>�>�>�0�>���C��	��k�
���b ¬�����Ԃ*�
�<�<����'�K����
�;��;��;�-�;�,�;�.�;��;��> �>!�;)�;��DT�DU�;�*/�����;�*.�;��;��<�;��;��>7�-�b#�١'�#����	�<�<�;�.�…��;��;��DR�;�	�;��;�	�;��;�
�;�
�DY�;��;��b$�>1�>2�>4�>5�b%�>�уt�@��@��<���@��@��@��@��@��>�E�,���-���@��;��s���=4�;��t�;��t�;��u���;��u�;��u�y�@��/�z�'�n1�y2�kj��@��>>�>?�@��>L�>M�D[�D\�>J�>K�@��t�>O��D`�Da�Db�@��@��@��@��@��@��<-���	�$�=��=��<7���3�?��<.�����$�</�����n	��<5���<6�>[�v��?��?��?��=��=��=��=��>`�>a�>]�>^�=���
�j�=��=����>r�>s�=���?��?��?����Dd�De�@��>;-�><,�@��o1���ag2�d`��>y�>z�$[�>v�>w�=����0���n�u�Dn���d�w�Dj�t���>E�#�Dl�Dm�>|�@��A�>A�>C�>B�K��_#�(�W���b�(
�,m�J�"�B��B$�B%�B&�B!�B"�B#�B(�B)�B'�A��bd�=ք-�A��A��BI�BJ�BK�A��bd�CO�CR�CP�BL�A��UYD�C����H�A����C��>��>��CK�BA�BB�>��A
�A�H�A��S\B�A����A��A
�A�`p�1¢����-�W��YF�B��B��B��B��B��4�h���g�A���B��B��BF�A��
�A��A���l��5�p�>��>��Bbo1Y�CT�C�C�>��>��A�A�>��>��>��>��>��`q�3��6�,�V��W�l��Ba�B\x&^�B��B��Bف��C��C��C��C��C��C��C��C��B����C��B��B��Bd�Ζ��J4���>��>��>��C`�>��>��>�"���>��>����>��>�
�>�
�C\�>��>��>���������_M�Cl�Cm�Bg��Co�Bl�Bm�Bq�Bu�Bt�Br�Bo�Bp�Bn�����C��C��Bf��^O�Bh��cN�Ch�Ci�Cj�Ck�>��l���f�a�W��;����I
��C�C�C�A���H�B��B��B��B��B��B�	�Cs�Ct�A��A��A��A��A��A�
�}�A��A��|�A��A��B�Aꂒ�C}�C~�Cr�A��C��C��A����A��C{�l��l��?��A͂Q�C�C�C�C�C�C�C�l���b�у����x

�B��B��C�A��+�C
�C�C��C��A��A��A��C!�C"�T�������R	�C1�C2�B�B�C��B	�(	\�B
���U�������O�C/a�C&�C%�B�"Z�B��B��B��B��C:�CA�C;�C<�X��S�>��A�A�l�ž���_�&�Z���N�'�$J	�L�!�B�B
�B��B��B��>��>��>��>��>��>��B��9�Z�BQ�B��B��l�¢��g�7�'�#��;�*�l��l�¢��k�+�W���
�+��?NSoD)�s�A��B+�B,�A��A��B/�A��B�B �B�A��A��A��A��B0�B1�A�	���B�B�B�B�A��A��A��A��B�B�B2�B3�B4�B5�A�fc�B�B�B�B�>׃���B|�B}�A��A���A��A����B�A� �B;�B<�^�l��#�����A�"�>}�:	�B��B��B��A�%��B��l�¢��k���,/;
K���B6�B9�B:�B7�B��B��A��l�¢��P� ���A��B��B��B��A����A��>��>��>��>��>��>��>��>��B��BG�BH�BNu���C��BMt�B��B��B��B��>��>��B��>��_�+�4�`�[�B��B��B��B��B��B��`e��$�‚
�AQ�AR�AL�AO�AM�AN�AT�AU�BX�AK�
�BU�AV�AY�AZ�AW�C��C��`b��%	�
�ž���0 l&�������tJ-
/�����΁�	f�wNu
��Q�����%�����E�M�h���U Ik�J�H�G�D�E�F�A�B�K�I�N�O�P����=F�$&�=G�8�"�=��=��9�!�ba�3ª����l��l��l��l��bb�2¸G�0d�l��l��$'?�<:�/�!�!�q�����@\�@]�H��҈A8�閕�=�>�$%;�$`�$f�$i�$g�$h�$+A�$�$/A�$,?�$-A�$(�$)�<���<;�$0A�$4A�$1?�$2A�:ȎQ�:��`g�#ž��OM����Q�	��(�������>5�MV�o 8	5
F�F��ف��b#p�0��C��C��$5���$6�(�<��<��)�=N�=O�=P�<��<��<��<��<��<��<��=R�=S�<��<��<��D��D��l���0�C���<��<��<��l���+���<��<ɈC�<���+���z�ނ������i�:˂��<��<��<��<��:����$�Z�;���~���H�H��*���z������������<��@�C��C��C��<��<��=�e�$u�$x�$v�$w�$!���$"���D��$7�=�����>��>��D��=�=����?��Q���4(
A�E��k
�\"s�="�=�=�=�=�D�=�<��<��<��<��<��<��>��>��"�=$�#���5��(V���=�=�=�=�<W���=�=�<��<��b9´�_�*Y0���`���C��C��=(�=)�b:���
�#�<��&�7��j�=^�D�D�=_���'�7���;<�E�$��Az�A{�A|�$}�‚��$z�${�$~���?
�w�$��$��$����D�`d����w�?�$���?�?�?�?�A}�A~�$b�.��f�>�<J�@Y�@Z�@[�l�ª� �;��>(=	���'��'��<��<��<��<��<��<��<��l�ª��:����	���'��<��<��<��<��$�<��?��?��G���h�<�H�I�<I�?��?��<Fj�>�<N�<P�<O�<Q�l�¢��&�}���?�K���=?�D��D��D��D��D��D��D��D�
�D��D�
�D��D��D��D��D��D��D��D��D��D��D��D��D��D��=D�D��D��m�D��D��q�D��D��n�o�l�¢����5�J�l��l��=@�l��a���c�	��P�M��M��M��M���g�o�>�M��M��M�p�Nd�i�r�Me�N�U�N�U�N�Mh�Mf�Mg�N��O�O�O�O�N��N��N��N��N��N��N��N��M{�M|à���n��My�(�Mv�Mw�Mu��n�#�Mr�,�X���{��,@�Ny�Nz�N{�N})BH�N~�Y���|��$=�Nxn�Nv$@�M��M��M��N��N��N��N��M��M��M��M��N��M�>�����Mс��N��N��M��M��M��M��M��M�
�M��M��M��M�=���N��N��M��M��M��N�����b��C#��x`!�M���M���N��N��M����M��M��M��M��M��M��M�â�M�â�N��N��N��M��b�N���b��C"����[�M����M��M��M����M��M��{�N��N��N��N��N��N��M��M��N��N��N��N��M�|��X�M��M�~��W�NF�NE�M�y��V�NJ�NK�M�VX�N��N�@��
�N�Nâ	â
�b���_����.�N��O%�O-�N�N�O&�O'�O(�O*�N
��.�2��M��M���M���e�Z���N�N�NU�NV�NR�NS�O@�OA�NX�Ml�NP�Mo�Mn�Mm�N"I�NQ�Nk�Nl�M�'$���N8�N9�N^�N_�N#&�NZ�OC�OD�N&�M��M��\���k�Z


	��)
à��O�O�OF�OG�OH�OI�M܂<�N!3�N1�M�/$�7�OL�OM�N;/�N-E�N.D�N<�N*�N+�N2�N�N�M���	-�O�M��M��M��M��O�O�N��N��N��O�O	�N��N��O�M�",�O�M�	��+�N��M� 1�O�N��N�N�
��@���z�ˆ�U�������/�����/��/������λF�L�ϻF�L����Z�u�����������������������������,�.�B�1�/��/������/��/�
�/��/��/��/�������'�����/��/��/��
Ԉ4���������
��3��������bS³ȇL�b��� �!���bT¯����K�a�&�'����������G�Ý�Ý������-��@i�����b7�b8�.��?i��������ànào�
�C�����4�������������������������������
ׅ	?���!���
��G�������������������������
������
�"�#�����%�8��â����������I�����������L��M��N��k��n��o��l�����O��P��]��[��\��W��Y��Z��X�����Q��R��S��GP»���HP»���_��c��f��b��e��d��`��q��r��s��i��j��������^���»���J¼��K�OW��������u��v�����������{��}��|��~�������������������������������������������T��U��V��w��y��z��x�����P��P��P��P��P��P���	��
�������Oa�Ob�Oc�Od�Of�Og�Oe��������������������������������������� �������������������������������������������������������������������������O^�O_âââ����������Om�P��P�����qâ����p���Op�O��O��Ox�Oy�O|�O{�O}�O~�Oq�Or�Ou�Ot�Os�Ov�Ow�O�O��Oo�O��O��O�
�O��O��O��Oj�O��OjÞÞ�O�	�O��O��O��O��O�Ý�Ý�Ý�Ý�����������������n���»��O��O��O��O����������»��O��O��O��O����»����»��O�
�O�
�O��O��O��O��O��������O��O��O��O��O�âââ�O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O���1�}�@���¼���¼��P��P��P��P��P��P��P��P���>��?�Pa�Pb��B��C��6��Ÿ���_�PV�O��P����P,�P+�P-����Pd�Pe��@��A�Ph�P:�P/�P;�P0�P3�P2�P1�P4�P5��<��=���Ÿ���4�PX�PY�P[�P\�P]�P^�PU�P_�P`��3�������Pp�Pr�Pq�Pv�Pw�Pt�Py�Pz�P�Pv�Px�O���2�|��O��O��P*��������D½,�������P
�P?�P=�P>��4½3��E¼�+�PD*�PE�PF�PG�P��P��P��P��P��P��PC;�P��PH�P��P��P��PL�PI�PJ�P@�PA�PM�PN�Pk��;�PQ�PT�PR��5½1��9�P��P��������P�P�P
�P�P�P&�P�P�P
�P�P
�P�P�P�P'�P(�P)�������������P��P��P��P�����������¼��R\�P���¼��P��P��P��P���¼�ââ���|	�;�P��P��3~����$��&��'��!��"�P��P��P��P��P��P��P��P��P��P��P��P��P��P���(¼��P�
�P��P��P��P��P���#�� 
��%�P��P������7��9��:��8ââ
��.��/��0��1��2��4��5��6�Ok�Oi�Oj�Ol��;��=��<�����B��C��?��@��D��*��+��,��-��E���0Z#���;.���)#2�n�*P�}.�����1��O"��t6��D”�	��E�w>���M���Gh�G���9+����Q����O�����
�c� ������2�������c��c�����������������c���������������������������������� ԋ��� ��c��c��c��c����£��������¨����������������������¨������������	#�A¤������0�c����c��Vԋ��<����������������������������c��c����­�������¤���q�����3�>�����	–t-�j�N
��`s����Q�Q�_�n��VF�VG�VH�VI�m��m��n��n���������a�Yx�m›$���x������m��m�������m��m����x����b�b�a��a��a��a���b�]u¼����w���u�ճ�n���������y�*�����U��š�
���я�'��?��������(��0��1��)��U��V�Q"�Q#��������X��'��W��*�� ��!�Q!��%�Q&�Q'�QM�QK�Q)������W–���3�V´T�n���&¸��n���+��G��|�����š���w� ��[��\��9��:�Q+�Q-�Q.�Q,�U���]��,��z����š�
��#��$��>��"��@›��A�Q�Q4����š����¸\����������������������Q7�Q8���QR�QS��H������G����º����º��������a�������G���x���a��������”�6�������8�Q�Q��=��;��9���������!������¥����	�������n��������n��n��n���	
������c��#��������$��!����d������e������Đn¶��_
��

�،�žW�����QH�����V������������r��HI�!>��
�����u�
–d	-�d�M
����r��	����)�f–u���–u�����������ϛ$�������U��������w�Q����?��@��s��RB�1*.���e�8–�7�������,�	��О{��P��R��T��Q��R��S��W��X��Y���)I�
¨���V�����+��C��E��F��^�t(+	���
�8¤p�����P���-I��n��n��n�������������*�n��n��n��n����'������������'���2��������*�ËW­͑����b��+�ËW­͑���E��F���������	����R�ƒ�(m��
�^�
�t–��܃������������������������������z��{������������������������������±"��������#����!��������������&���� ��"��#���
�$}������������7���ƌG�n��:��<��=��@��;��/��.�~�H����-	����0���6��1�������;�{�t����™c�ԌU������������������������������������������������	���������������������������䖶����������������������;	°F���V��������
��m��n��t��v��w��u��s��q��o�����������������:�e��³&��A����%2�O<	�������3�����������B����3�ǣ����4��������������抱������3�Ns������1�MB/��������/½�@���	����
���F��H��G�������e@��������������%��&��'���������������v������?'�U��V�����˜��6�������������������������]��^��U��V��g��)�����²���+��*����/����0������b��v��+*��-'�&�U�Q˜��ۂ
	����r��p��q��s��u��w��x��v��O��P��Q�����S��V�������x�	%����c��N���a��d��c��b��e��f��������(�0:%����²����������������+����&��_����������X��Y��2�2��]�&����[��r��s��Ė�������������������_��_���j������+�������*�~�����-��2��0��.��������,��3�|��+�����+��,��'��.��&��(��)���µ3���µ2����c�*��{�������|������B��������������~����������	������
��
����k������*����4��6��3��6��������������9��7��5��<��=��@��?��D���w�:��P^����,
>����
$:��
�s–�������������� �>��t���\��v����A��N��,��-��B�=��C�<�����1��/��E��F��G��3��4���������헟�������=���f�^�u�V��>�ڋ��{������������������������������f�9 �r�L����w�������[�m�>²Š���Q��R��M�������_
����g��b��c��N��O��a	��`��d��e��:��;����s
����������@�� &7�舏��	”�
���憱������T��>��C��B��@�����������������������������‰�����D��E���iU�f»���������)��ʼn����)��!�8��"��Y�����������4��	�_S�925�”�	��Z��%��G��H��&��6��7����g�)����)��
�lP�d»��� ������n
��������U�[��D���[�=������Z�=��7���T�V��B������������6–��K����\����]��C��–���6����߈���7��8��9����:����<��=�b8�b9���V�
���	������	������
���
���_����������������������Q��Q������;����Q��Q���A
»�V���K»�QП�o���F�������U�����
��B�{
©
�֍у+����������C�z
©
��)�e�+�Q��Q�������������������������������������������FC�2�E��J��Uq5j������1^��_���F;U

L�����E	\�&•'g��k'�1u)��[8!����B����L�bP�������������bQ�����������������������»K����B��³\�����¸��~��E�����F�����]��`��_��^�b�b��[¸�����������������RA��I–��J��P��Q��S·���T��g��h��ŸC��B�������������j��k��c��d�RD��U���R?�R@����������p��������t�������������p�����b��b�������������j����0�|��–�����2���"���U����������s��t�����������n�<������o�X����=�����[�Rb�Rc��`��^��\Z�����e��������bX��c��V�.�&–Ȏ��"�����W�.$������������������������x����������������v��h��|��i��j��y��r����o��p��q��u��s��l��m��i��
��%�z�p›��1��� ��j��h������k���i���l���m��b]��k����¶ˎ��%�������Q�����������_9�_:��v��w������´m��l��|�������Br�rœLB�Q��>�����l�ċ�m��o�o��1��3��4��D��6��7��8��9��:��;��<��2��@��=��>��s�����������������������������v��w��u��������������������������y�g��������������������������t�b���[r���V��Qʓ������������q��r���°��������������������b��������������Z
�w�������@��Z	�������#–�4���с��^?)�с�����C�V���D�o������������
�����i��������������F��G�������P��P���������������������������u��v��a��������������������z��j��k��l��m��y��p��u��q��n��o��v��w��������������#���Y��9���#–�6���ρ����~���x�b��b���|��º ��m��o�t��&º���z�A®�
���������������������������������������������b���]�p���%�č&�����������������º��TY���_C�_D����
����	�����������}�$��{��������]��?�l��C�U��U���8�6��<��9��:��=��C��D��@��>�RE���—�����U���5��6��A ���C������������������������������#�S���0´5����������������)��,��+��*��-��q�čc�
��������n��q��p��o��l��m��W��Y��[��X��Z��r���b���������������?����ő�����������]��^��_���#�m��*o���¨ ����������������$��P�G���Q��%��(��a��b��M�E�¶��N�D���ˇI
5��Ɓ�=ºV��~��}��������e���g��i��h��f��d��e��f���v��������h�����p���������������������������_�����������y��z��{��|��~�����}�����FA�2�7��J����70���ņ/		Z��V	��	�-
2/%'�t�ͅL	V�"o”�$f��&	6+!���c	P%��[5
��B����K	Rg�-�Ut�Uu�Uv�Z��������������f�f�Ur�������Z��C�U��U��e��e��e��e��e��V��V�����e��e��e��������Z��N��`��a��b����������������e��e��U��e��U��U���c���8�F��¢�
l���l���U��U��U��U��U��U��U��U��U���d���}��¢� �k������F�f�f��G�U��U��U���a����������˜�
	������f�e��e��e���ς������KR�����)Q-'��ՅP–��z���F���Z��Z���V��S��T��U��W��^��_��X	��~w¦�
�Z��Z��Z��Z��Z��U����º�U��U��U���Y±j�P���»�� ¼���*³���+��,³���³���³���%	³���&��'��)��.�Z���"��#��$��!�.���(§�	�=���Z���P±l�Uq�U��U���Z¬��[¬�����c���D��F��]��2��U���q%?N	��J–`9��������:0��$�����g����_%�������Q��_'�Q��Q���~����������������������ҋ�¨̎(�Q��Q��_�Q��|%��/���$��2��1����0��3��4��p��?–�	�>�Q���q�L–ͅC�Q���{
�Q���x��v
��s
��t
������–����–�����#��h�������������_*�_+�����[��™~���P�V��V��V����5�Z¢2��P�Y��S��T��U��W��V�_!���_���#����.��/��"
�V��V���)��*��&��'��,��$��oj�������������3;���	���D)
����(	C–w7������	�����
������
�Q����
���
�����	��A�A��™����4�������������������9­+�����������o	�o
����������¨���©���V¨��_.��������������v��w���RN�����������RO��ޠ"����ߠ"����������h��l»e��������������������������K�����҅ł��t�ځ݅U–����r��s�����i�����q�MF��§������j�e¯���¯����;
�A����?�����<���N
�̂�X�u	:–�#f
"���M<�����
�䁨=���.{��&�¤�����W��W���'�¤��R��!���b��b��Q��Q����c��_��Q�w�Q��Ro��5�ʈ�b��Rp��v�����������x��~��y��|��}��w��������´����<��¨	w��=��¨w���������+*¶���
��¸�W���W!�W"��������,�£*�W#W�W��W��W��W��W$�W%�����Wz��K��L��M���6£&�W{�W|�Wt�W~�W�����������a��d��c��b������������������������������ ,¶���3�W��W��W����W��W���f��¸LM�W��W���g¹J��i��j�W��W��W���<�W��W��W��W���=��n�R��o��žx�&��'žw�&�V��V���$���(–�
�g-�ʈ����R��R��R���G�R��R��������Rk���W�W�W�W�W�W�Rl���W	�W�W�W�W
��(³o�"�W�W�W�W�W�W'��A��B��@�����¨��"�b����­D����W?���������W-�W4�W5�W6�W.�W7�W8�W/�W;�W<��#��$�W(�W+�W)�W*��%��&���X
���%–�
�c!��*������e���¸�������F¸L�����³Džg���W�V���������H��%#����ªL���3
����G����@��B��>��C�R��R��R����������������������������������K�³���������������J��#(�ª>������������I�³���D��E��*��L���M����–����´�a��WT�a��WU�WV���´
�������¨
��������R¾�E��T¾��B�c���S��7�WE�WH�WI�WF��7£
����������8£	�������'¹��W��n%�W�����������΁�����?ž��WK����WP�WQ�WR�WS�����ž����WL�R��R������������=��?��@��>����-�K����'%�D�H���@–́� �	����[
���
/�_����Y!��������������������)�R��W���{���E�H����'%�D�O��@–������
��.�^���H��B�z�N§���`�������Ru��9�F�A¹��:�F���³-���m�����³��q���������¹��W^�W`�Wa�Wc�Wb�Wg�Wf�We�Wi�W_�Wp�Wq�W��R�R�W���1�R��q—��W��W��W��W��W��W��W��WW�WY�WX�WZ���ݝ�R���£Y�W��W����­�������������­��������b��b��b��b��W��W����¹�?�n���¹�A��³�R
���b��R���b��R����/�>��Ԗq���������b��b��b��������b����9	�?����	 j��	�3���A
�˂�X�j
8–�	Y
2��<5����
����/���lj���/�����0��1��r��&�W��W��W��W��W��W��W��W��V��r��§P�bw��"½[�R���#½T����s����
³s�p�R}�����R�R�R���p³͓���������������nx-—t���������v��w��$���
-œ9�����Y��4�@��Kw���
��%��<–����;��
��	1'����S���G����������R��;�R��;�W��W���¢���¢�
����C�4��Ow��Gµǃ���#��D���������������������c��c��Q��Q��������W����X��Y���¸��bo��t��Fl���1�#��–�������3��u��Nx��Dµʃ�����5����4����Q��R���������U��y�W�W�W��W��W��W���z�b��W��W��W���E�bd�R�R ��,��.��/��-�b��R�R��;��<�R��&�R��R���^�̋�G��,��-��_����F��9��:�_����P�2���׊�,�J����—��$�J�R��R��R��R���<����ž���8��7���J���H��,ž��$�J�����������4�Ħ���������b���G������pKD�����Y
$����}��—�	
�ׁ�����10	�O��%&�`d�`k��=��?��>�`l����Q—����	��Y��Z��I��L��M��J�`�`��*/��—������@	�n;�n<�_��_��L�_��K�_��_��R�����Bœ����?	����������������n7�n8��O²���P²��n3�n6�R��n?�n@��R��Q����V¤�����S��U�_��_��G�_��F�n0�R���R��_��_�������Q¤�"��	��H�b��b���]����O§���A��B��^��_��[��\�nH�b���c�c�c�c�c��������d��f��d��e�������������b��b��b��b��`��I�H�����P��V������K��Z��X��Y��a��]��^��_��[��\��b��c��x�3��R�I%��³���R��P��S��Q��V��W��S�������o�`�Yb�����@
º��=��<��E��C��A��>��?�`�` �`!��9�`��+��.�����0��1��/��,��5��6�����7������X��	�X��
����
����������������J�G��¨��V������S�`O��L�!*$´����T_��o��nL��A�����m��p��q��폚¯U/����R��*��`�R��*�߃`�`	���½�.��C���`#�`$�������`'�n]���������������������������������n^�na�nb��:��?��A��=��;��W��ه���������������������������=��Ob��������5{'�	�ځ��������l����m������C��T��U��������V�E�Yh��d¹�Y{��e¹��f��g��i¹��j¹�Yi��c�Yj��u����v��x,��y��F�6��}��G�5�����������������������
�Nl
�m������9w)�����������������7�������o ��m��n��l��q��r��y��{��|����z��u��t��s��v��w��Y��������q���(�#��	���ž
�������������L�;¤���N¯'��O��M�`��i�G�!��¤����j��������������e��b�*�����ž	����K��J��s����F��G��f'�#�0��¤���������������A��n���;¤���/��5��0��1��2��4��o��	�:¤���3�������B�S�S��|��—����c�S�S��g­�	��m���|��h­���l��i­��X(�X-�X%�X&���������—����P���½����	��—��C������`q�`r���½��S"��U�X0�X1�X�X�X	�X�S'���X�X�X3�X4�X2�X6�X7�S%��	,�X>	�X?	�X;�X9	�S#���X�X�X�X��}	�"��
—��������¿������
œ����œ��X�X��~��—���J�XR�XS�XT�XV�XP�XN�XK�XL��������z�F
²4�̈�'����R�?�R��>����'�����	7������	������
���
������²�O�|���²(�L�|������²���²�W��W���{�T�k¨�4��y���B�`h�`i�������2¿����������¸Y������W��W���H5�����+����&���2�^
 �`����v��)—q	��	����!�e1/
�O��:����������`-��s�`-�`-��u��,��t��v��w��V����`-�`
-��Y��T�������������X�����®t�����������������w��v�����®r��t«��`C�Y�����������
A��¿�����	�Τ�nJ�nK�R��`E�`������	q����$
�u���
�����b��d��c
��e��h��g��f��i��j�`G�`F�������-�u��ك���l��m��n��焴��$��%��b�N��H2u��2���r����1�—���������%���ʁ��`H�`L�`I�`J����������������������������������������������� ��#��"��!��$��%�`W�������ž�}������������`X��T�y�����������y��|��{��z��x����%����m��������c�?H����2���y���� �����$����������`S�����|���¼ʃ��1�������`U���`V����U��V�S3�S4�U��#�U��`4�`��p��q��'M��,��.��_���������`-�`�`-�`-��0�9—��F���E��������������������j��i—��F���E���������������������03|��d���T�$�8�Ɇ���
���<��
��������/–S�3�ɂ�@��g������	�v��			��*Q��
3v�Y�Y�Y�����}—����S?�o)�o*�S@��
·K�	������-�X`��·J�Xb��·K�����X��c%�I�X���������}ª�����2¸y����������1¸x���������b"��������©�������������ny���©����¡��nx�����������������b!��G���J��I���H���«���������������'ž�$�S��$���������������������#����%��•&�@
	�'��惈����Sc�L�Se�Sd�I�S`�Sa�Sb�Sh�S��`�����`��S��S�������������—���������
��—���V�SP���½��K��������������������
��—��K���Ss����—��M���������������������퇿	—������
��������—㐦����SV�SW���—��SY�cB�SZ�S[�SQ�SR��͇�¥���½��Z�S^�c;�c<��ݦ�¥��������ٌJ��œj�q��*��&����+��%��œh��$����'��(�nn���
�(���%���•&�@
	
���I���~		�1���n��n����¢��������œ��n��n���ł��n���֟�����—��%���
�.�"������`��S��`��`��`����œ��3���"���cC�S�cD�cE�S{�S|���¨����������^2�~�j��l�9¥���䃭����,�`���������������`�����®����®���������������}�j��l«+$�����)�c.�O��������:�O�`�����:
©���������������;¬"����������c"�c#����p���¤��a�����-²����?��@����S��V��U��T��>��G
·R����J��I	·Q����H��K��M��N��L��������.�����ca�S=��	���Ȃ�ߊV�3����–S���1��+���@���S��S��a"�_�_��X���
�����$©�/��������n��o��u��r�#­���m�Xo�Xp���˜F��U�Xt�Xu�Xv���œ����¡���������������������������ԅ5·}���aƎ��oX�����`~M�`M�`������X݈��X�������������v�`�5·|����w�`��Y�i�����®n���o6%�o7��`»=��l����]¢��������a��²�����b»>�����'0|����D�&��85j����
���4��%
��8C�j}��
(–M�3
��	���G	��`r����	(�Q	��'N��	
r����T��������1��2����e��e��e��e�����������������e�����X�䃔����ce�cf�cg�`���*��+�`����`��`��`��ch��z·l3���`َ��`����e��e�������������I
�7²���#�����<²��S������?²U��2��~��;�Ė�e��e��e���,��-�cl�ck�cp�cm�cn���[�p�}�2�p�����m˜��h�Xh��(��)¡A���^������Ÿ��2����L
���E���9��—ӂ˂L�/���������/��0�����s��������o���������������������������³��o`��6��5����W���N¡:����3��4���¶䁌�[���¶䁌�[�e��e���7��8�S���S��V�����Ou��4���$"'2��
"��*��c��
*–Z�s���C
:@��)��e,�Ջ1������`��`���[���oc���®f�Y
��������������X��������Y�Y�������X��X��X�
�`����·m���·m���·m�����������nj��݊D«��������������������������S��S���������������ɂY�m���Cž�
	��#�S��S���$��&�S�
�S��S��S�����`����Ԍ�·�����œ�S������œ
����G8!��������X–���qa�яJ�`��`������!¾�������`����������V����È�X~�X��E�X����X��X��X�����e����±����Ė������4����i��5�������7��8�X�_�X��S��S�����E·���?��@��\���� ±��������X�
�X��X�
�X�
�X�
����D��¡��]��
����B����ª�������
�������O��?'��?��?�p�)–���G)?�x=	��������������ЁÌ ������������������E/,�	����›���E������a·��Y�Y�no��\N��^��_��]K�����½|���`��`������½|����Q��R��S���¶7���¶6��K��L��M��O�����P�����ž����%�Th���� ��!�������g�YŸ������X����·����
������
���
���
�X��X���h�Y.£����X���k��j��l��i���½�����%�Ti�X��X����?���֋N�d��—����Q���k&���@�V��V�����������ã������?���d��—�����@�X��X�����ep�V���������t�/��<��*�4��t–6��k�����]��	��/X���d��
�‡S����
���„R�S��d�c�����������`���|¼����c��c��c��c��c��c��c���;��=��<�`��`��c��c��c��c��c��c��c��c��c���}¼���
���a�a�a��2����6��5����3��7��8��"�8���j��¥����c��S���
�����c��c���{��|��§���	����
��§��c���
��
�������������c��c������]��^����������������
��������&�±��������D��C±�����B����R��M��N��Q��W��X��U	��i��f	��d��a
��b
��S��#�<���i�n˜���*���c����������+������$�������V��¥	���L�����H��>��?��@��G���U����t��w��v��u��F��I��J�����!��Z��\�����[��h®~�c��c��c���ȐU�]��–/��j�	����c�n��n���������|��}�� ���L�Y��–/�������������Ӛ�¹G��ɇ&�_����������
������"��G��#����R���������� ��
��$�G�����c�.�n��c��d�c��������������������½����@���@������@���F������������������D��������������±"���± �������������������T�T���¬�`��`�����������������������������������������������������������¬"������±��ň2������������������&����������������������������������c��c���x�/	���8��*�G��t–4��_�����\��	��6	O���c���d�d�a��"��$��%��#����O��'��*��)��(��%��&���¹'��1�d�d�����¸��a��·��q�:!ž�������)��*�����
���±L�S����±K�S����±K�����žÍ�����LJ��������������������Y��Y��Y��a��d�d��%V��'�X��t—���-����N�Y)�3���������������������������������򁟁��µ�������.¨��J�S��`�+�a ��������K�c��c�����g°�����6�����!�� ��������¾�9����·5�3��Y'�3�Y(�3������������&��'��/��0�S��S��n��n��������(	
H����g�^5������*:>�>•�U��)'���D<�L	�[��4�����`G�������1#4
�a���¶ł�mo�mq�mp�jj�jk�jh�ji�ms�����²*������������ǂ�°���L�f�f��M����3�����+�~�l��l��l����°ȃ��i��i���%�����4­���
�jp�%�l��l��jq���°ă�����(��"��#�j}�j~�l�
�l��l��l��l�����m�3������°W>�|�j��j�����e°������Q´l��R´k�l�l
�YR�YS����‚�°��jv�jw����jz�j{���ŸD�[���j��j��j��Y0�Z���j��Y2�Y3�������š���9���ă��kx�ky�kz��s���lQ�lR�lS�Yʍ��f��f��f��O�Y��f��f��f��f��H�j���d��›B��z�%���f����f�����>°	���iO�k��Y5�Y6��9°r�$���k��k��k��k�
�k�
��:°���ip���k��k���e���j;�j<�Y��h�Y��Y��h�������š~����7°���G��M��J��H����iI��š}�z��
�҂�[j�i]�i^�i_�ie�ib�ic�ii�ih�ij�il�ik��t��^��:š��{�߅B����z��|��}��{����������°`�������± ��	��
��N��O��u�'
�W±���������������������������g����
�����P��Q��K��L��v��x��w�YΓ��Y��Y��lU����	�����R2�k�Y7�Y8�����	N���X$��#1��	�����G¥�	m�xcC�������r�G®���sº�����fG���k�k�Y9�j��Y:�f��f��f��f��f��f��f��f��f��f����¢:���8�2���³�$�j����µ)�l��l��l��j����®��<�8
�0�fN��N��s�$��Q��U��P�ɘ��O�l�l��R��S�i��1�fC�k�k�j�����	�:št�ρ���ymJ�������������������������k
�k�k�k
���?������	œ��~���e���������������fO�k�k���k�k�k�j��k�j��j���W	N���X�
#�������0¥�	n�ua8��������±��j���?�����H¬G�h
��������׃5¬F�s�����
���m��c�>Ÿ����p~c!-���fZ�fX�fY�f[�����»��E��G��H��c��I�����»s��J»c��L��]��^��R�����S��[��O��P�������Z�������¡I��O��9�����»&��a��V��W��b�f��f��fT�fU���²
�����»#��=��>��A��?��@�����»������L°���9Y���1��Rš��7�r�{	���݁͂�f��f��f��f��k��l)�k-�k.�k�k�m�m�T ���k0��X��Y��Z��[�k1�k2�k)��7��8�k*������2�8��p§†���P�����
�k&�k'�k$�k��j��3��T§݊���k�l,�l-�f���e�f���f��g������,��S 3�e�{	��Mx�����a9�i��a:�i���h°u�i���0�7��p­F������O���k�k�ko�f���f��S³������	�߁��.˜����2�ł=���k@���i��M���i��i��i��O���i��i��i��l2�l3�l5�l6���������������k�
�k��k��k��k��k��k��k��k��k��k��k��k���"��#�g�g�g�������$¬���%¬����´�������®j���?���±\���±[�g	���²�����������Ձ�Ÿ�Ӄւf���kP������ ����f�������,��-¯��i��i��g�(���g�g�g#�g �g$�g!�g�g�g�'���m!�m"�m#�g����g�'���m&�m+�m �m%�m'�k5�k6�k:����
"p	�Ё��)—������%����<���T!�a'���²���/��0�k<�����¬߃0�
��!���±=������±<��������kO����kA�kB��o��p��q��±)��i=��±(��±(��±+��
���
±-��
�i��i��g'����������g(�����:J�ތB��K�Q
;Q�	W
����—�41���у�.�U��q
M�JG����4�т��j!�j"�f���{�f��f���������;��A�Y��™�#�����p����� �mE�mF�g7�!�j\�jd�je�g<
��gB
�g?
�g9
�gC�gD�j]�j`�gL��j^�g:�g;�ja�jb��>­��=��>��A��³����8��%���;��@���AU��
™�#��m���=��<��±0���m2����5±/���m0�m3�m4�j�����j��f��f���N�Ԕ�kg�kh�f��f��g3��䂘_­����������}��O��­�������kV��;F�ތB��� �Q
	2�Yb�Pš��jR�T�?�f
A
$��}����\f���h��h��h��gg�gh�gkD�h��h��h��g��g��g��g��g��g��g�B�g��g��g��h��h��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g�
�g��g��g��g��g��g��glC��h��h��h��g��g��g��h��h��h��h��h��g��g��g��gi�gj�g�g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g�	�g��g��g��g��g��g��g��.�g��-�h��h��h��gY	# �g[.�gb#!�gZ+"�g\�g^�g_�g]�h4�hK�hN�hM�hL�hO�hP�hX�ge�hQ�hR�hT�hU�hV�hW�h8
�h7�h5�h6�h@�h;�hD�hG�hF�hE�hH�hI�h:	�h9�h<�h>�h=�h��h{�h|�h�h~�h��h��h]�h^�h_�hb�ha�h`�hc�hd�h[�hY�h��hZ�h��hf�hj�hk�hl�hm�ho�hp�hq�hz�hs�ht�hn�hv�h��h��hg�hh�l��h��h	�h
�h
�h�gn���h�g}�gp�gq�gs�gt�gu�gv�gx�gy�g{�g~���go�h��h��h��h��h��h��h��h��h��h�	�h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��h��f����
�h��h��f����f����
�h��h��h��h��h��h��h���/'V�����r,�h��h�h�h�h�h�h
�h��h*�h,�h-�h+�h0�h1�gf�h"�h2�g��g��h!�h��h#�h%�h&�h(�h$�h'�l��h��h��i�h��l�����
b�Y¨�l�8���l?�l@�T%�=���m@�T&��m;�j�T(�S�����T)�S���k_�k`��1¨���?�s�j�j�j�j�I�y�k[�k\�kZ�j�E�j�E���®f��	�dn�j�j	�h�h���±B�)�m7�i��j�j�j�j�fۂ$���g����h���h���f܂)���h�����®e��	�h���±=�g6���\
"��«TS��])��	?���������¯d����lV�������lX�lY�lZ�l[�lW�k�k��k��k��k��k��k��k��k��k��k}�k~�k����±����±��k�����(�bŸ��o����c���²��.],Ÿ��n�M����j%��#��%��&���
W
"��«SR��
�U%��V�la�ld�lb����i
�R�i�Q�f����­0�����,_2­2�!
�����i���¯T�������� �_¯S����b�k{�k|�k������)���¯V�����������������±��j&�j'�k��k��k��k��lJ�lK����i!�i"�����0b²������›���i#����Y���Y�����������°z���R�Y��Y��Y��Y����¡:
	�Y��Y��Y��Y��Y��������a���-	
F�ڄe�'��
��ԁ�%P���X•�U��)'���<�0	��6=�����@,lJX���+
)
F���h�¼�f#��l��������m��n��q���±X>�j*�Y>���±��L�k��k��k��k��k��k���U��¨I��������[��\��V��¨I���f'��Z��W��]���a?�"���������������a@�aA�ea�b�N�k���ނŸ����Z���i�����¬Y�Y��݂��-�j��j���.�j+e�j2�j/d�j-�i��i��f*�t�i��
�j��i��i���r�º�}�f-�}��b��a�)�����\™�D���s��Z�%x��ڂ
��r���k��Y,��šTS�����ȁ…à G�mR�m[�m]�m\��)­=��*�j6�j7�k����e²����md���e²����Y��Y��Y��Y���o��p��s��¬4�0���i�ma�jG�����mf�mh�mg�mj�mW�mX�eg��ml���¬|�j��j��j��j��j��j��j��k��k��k��ff��2�/O��H��F��gjIš4,���x���+��
}��!������aFW;<	�t�i���0��1�fl��3�I��}����5��6��7��4�I��|�fm������>°6�j9�j:������@ŸC���Y@����YB�YA���������������=�T�/�B�YC����YD�YE�YF�YG�i��T�p�i���4¨��+�V�k��fo���fr�fp�fq�i��i��l��l��i��i��j��k���f��+*«���$�%Cg��g�ft�fu��������5$¨��D���G��7���²W���²V�i���8��9�i��Y��Y��Y��Y��Y��Yݎ�f��k��k��k��k��k��Y��Y���cM����?��jHšY����^�����"��:9�|�f{�lq�lr�ls�lt�lu�lv�lw����;®=��<®=�f���=��>���f��f��f���B�f����3¨��d�<��C®>��D®@��a��M­��@�˃��du�dv�f��f��Y��Y��Y��Y��f��f��f��f��f��f��f���F±r�C�i��C��Z›ӂل�����K�iy�G�l��l��l���`«3�5��b��a�T2�T3��[›҂��l���O©������R�l�YX�YY�i&�i'�l�f4�j��j��j��j��j��j��j���p��q���®��n�j����³�f9��i��¬��i��j��¬��k�j��l�l�j��i��i��i��i��i���P¤�������R�j��i,�i)�f5�t�f6�u�f7�i1������;�Q������š9���ۋ����Y\�Z�Z��I��H���%�����%��V������������v��š7���m|���T³&��Y��Z�m��m��������������
Ÿ��������^³&��\��]³*��_³&�m���c���³.��Nš=��Oš=��d��³-��`��c��a��b��
����U��J��H
���J(#��
�/.��������!4��,g����%-�����1#X7O������f�	“���Er']P>'y#�:
�ԁ���h~��[;��e"�q!Q����|��>�#¾4���������E��N��O��F��I��f��i��h��g����������������������������?��@��P��Q��7��:��;��9��=��8��C��B������¾0��X��Y��]��^�����������������S��U��[��\��^��_��V��T��b��d��c��a���~��څ���	����	������
��������������������������������������������������������������������������7��8���������������������Z��[��������3��1��6������ ��!��$��#����4�����������������2���������߅�����������P��Q����/��0��5��3��2���+��K�a����˜a����
��)��*��fš]��g��S��W��U��T��[��X��V��]��^��\§i��%�s��'��(��,��������������*�r��&����щ��������U��V��Y��X��Z��[�����������������݁��������������������������҈�����������������������̅������υ��΅��ͅ��Ѕ�������������������������������	���������������	������m��������������������T��T��T��T������������������܉��5�A�{��˜a�����t������
�����������������������������
���������������1����0������u����³+������������|��{����샎��������������w��x��ށ��
����/��.��~�������ၗ��'������&��4��
&��2��������������	�������������������
��
�������������������y��{��|��z�o��o���&��'���������������������������������:��<��=��A��B��@��(���y��+����*����)����,����-����������������{��|��}��Ђ�
�����������������	��������������9��;��<��?��>��:��m��n��o��p��q����
���������������������o��o����΃Z	��0��2��4��1��8��.	��/��������i�� ��j
��l����h���D��a��b��d��`��c��!�W��y��"�V���������O��KyG��������	˜\���
��������������_��T����������^��K	����]��U�����M��N��C��O��P��J��K��L��g��i��h��c	���WHf���LE��˜e����j�����b��f����=F��a������!��"���������������	'���KH��L��M��O��P��Q��R��d���X���<A��e��g�����	��h�7���g³F����p�σ��&����š&J�U����hs�����������������������$��%������/��	��1����4����0����2����3���������������@«����/�������-�����������������������������������j��k����������������������n��������š&I�P��Čkr������t�ā���.£��;�d�/��h��i��(����R��Ё�µY�������P����Q�������\�b��]����`���Ł��O��§��ρ�µ`����������������ۃr©���������������l©����������¢���)��+��,��-��*�����6��ž��������������؂������������܂����������������������������������������������������������������������������������������0�������������������������������������������������?��B��C��A��@��E�������¨����T��T��T�������g��2��4��5��8��7��3��U�g������e��T�f�����������������������������2	¤���P��Q��G��H��O��L��J��!�ۊ���$��+��.��,��������#����"��%��t��&��s��<��=��;��TAF���P���ȃ
���9�_��
����8������s���?��s��t��v���������������������������������������������������������������������3�������������������������������������������������m��m���������������������������������������������������������c��d�����Y��Z������¼j�m���y��z�m���w��>��x��ŃS��������������f��U�0���ͅ��;�#��
:�P��������ƙ���7��:��9��8��5��6��������΋��i���3�
�&�����	����������������������������������������Ղ�������������������YO�YP�YL�YM�YN��������9������������������������������������������������������$���
�҂�����������������������������������ƈ�`´
����a��b������������=�����������숦� ������������������������00�������������������������舠�/�����������������������������'�V7�V9�V:���¦t������������������������������������������������������������������������ɄD����������1��;��:����������C�������/����F������������������������ˈ�����������,��.��/��8��-
��0��2��4��3��1��5��6��ʄD���%��"��#���1�߄�DE��֋�����C��������������4��CB������������������������:´�	���0��	��������������B���A����������;�����������:����������@�����
����������K����A��B�������������������P����C��D����I��������L����������F��G��I��J��K��΋���݋���'�������4������������Ћ���ϋ�����v®�������������������������������������m���q��t��u��r��s��k©���l��w���°�Ӆ��
����
�������m�������������������������������x��y��
��{��|��~���������������
�������������r�������������������������m��m������¤M��p��o��n�����������D�ƅ0�w������.�ل
������˜9'�n��
�/g��@��	���C����D��E��G��a��b���������� ��!����%��.�������*���,�������Ԃ��.�؅�¢������������������������������,��-�����������"��%��$��#��&��'���E��O��9��Ă?��4�Cp	���ȃ=��������”�t��������X
�q(��>�����¨`����4��	����	����
��
����3�Z(��ɋ������‹���������q��r�����(©���c������»7���»6������»7������������������������@©����������\����_����_���0®���¼2�Z>��®,������&��'��;��s��t���&¤���R��ߍ9�����������a��r��t��]��_��`���F�%˜^�C�T��T���S��Y��T��V��W������.���T”鄇�]��j���p�ZL�ZM���p��Z*�Z,�Z+�ZP�ZQ��?��B��A��@�a��a��a��a���f���I��v���L”愇�c���a������������d��j��k��l��n��o��p��r��f��g��h�Qn��0�z��g�,���t	�+Y�U”����_��I��H��1���X�U��/������w�5[¤���3��F��4����2n��E�Ql�Qm��s��t��u��)�",��*�!��w��v��1��2��X���[�2��������Y��Z��<�|¨j�����������������������������������������������������D�01��J�<��G��H��I��O��P��Q��T��K�A�����E�9&��F�A��������L�B��M�A��q��������C�T"���������������"��������������������ҁ����'��n�(��p��q�����o�����Ӂ���������?��=��B��@��>���O�	�����[������”��l����!�X�Y(��k���������������������m��m��q���������
�������Ń��7�H˜p�V����9��;��=��:�ZX�ZY��8��Є(�. ���\��˜h�O������z��������ք#������Z$�Z%�Z4�Z5�Z3������#¨�����3�I��4��7��8��ʁ���������������˜b�h������������m��m������}�������~�����;�����>��?��=��A��<�
����@��������������������������ª9��������������d��d���������c��i��f��d��e����ˋ��c5
��6	��6����d��
 �쁭�r��i����d1�6*–����XQ	l��]%������F
*T�^��J"w�{����
��������ᕝ�����������������������������x����X�����Q��W���½���榽����������½��_��������_����a~�aR,�a��a��aS�Y �Y!�����������\��®����R��S��T��U�ao�ap�������

��b»���V»�����(¹�����(���������«����«����L��®����������������G��d�������5�p
��
°b����������������������������������������������������°`���������������������������Îy�"������š8�-�7%y����;��U�����a��a����נ�UT�UU����½>�_���UX�UY�a����S�Îx�&�c �9�6������L�o}�o~�o����������I�2��������H�_W�a��_��o��o�����JQ�:��[��š8�0�9
}����;��F�d���
��E�B�H�a��G��E�Ǝy�"�c �Y"���$�ay��o{�U�U�at�au�d��d��d��d�����h�p�ar�a��a��d��d��av�aw������ڋ����h����	@�G�_�����b�_P�_Q���]}�聴�J¡�8�c�S��������!·;���_\����������������������������������������������������������������
��������������]|��������¡�7�b���c�d��a��d��d��d���m������X��o���0��uB��z���
��'��˜�k$�Y��3���Z��ds�J��@�Z��e�e��#²>F���o��o��Zb���ZaF�����ž|��.�����¥w���������¥w�������¯
�V�������e������q�ˆ����������P˜MUi9�3��4���>���� ���
��_	9�p¬��S����	��������_�����`���_��n�Q��Q����� �����m��m���i�k1�®o��3��+�I���Z���$��-��0��/��.��%����������Z��Z�Z~�Z��Z��Z��Z��Z��Z��Z��T��Z��Z��Z��Z��������� 	��&��'��"��)��!��#��$��¹���¹��Ud��j����p��5��7��9��8��6�Z���k����l��#�Z����*?�¡Nr�ËՄ`���az�a{���e��P��Q��K���p¯��������х���������®����Z��Z��Z��Z��Z��Z���®�
���Z��Z�������������������������1��	��t��«���'��E��������	���³��Z��Z����
���
�Zz�Z{�Z|�Z��Z����1/�q��¡��ÄӇ�
�a���a���;�q¸��a����±��Zu�Zv�a��a�����Zw�Zx���p¡Q�����«������
,��5���`��>'��+�����j�S�������6!��•���]M�X*�p��

%%��FQ�o��2"p�x����
����Q��Q��U�U���™������F����������F�����҃�����l�� ������d¤􉜅,���3����O����T�ă̋�d2�hn(�2����������������a��a��������M�	¯3�����������T�d��d����±��c���h�;Rg�S�7���u�	:����+™�d���k�ǂ_|�K�������V��V��V��V�����U	�U
��������¹�����_a�_b��"��=S��#��<R��q	��s��r��~����}�o����o��o���z��t��u��v����`��{�o�a6�—�o|�p�҃@([K����������������³�g����`��鋱™�҃g[����a��a�����S�P�1˜��N�9 ���p����������´/�p����������	´&�������p��������p��p��p�����¹`a�p`�pk����¹_`���ptb�o�cm�p|�����.¨ɋ�+�p-�p*�p+�p/�p0�p1�p.����-¨���0������¨������*¨�
��(�p�����3¨���+�e����p��c�����H��•i���6&u�p��p��o����p��p��p��p��p��p��o��o���
�o��o��o��������������H��•i��&t��������«*������������������
�p5�p6�p��p��������������p4�p8�p<�pZ�p[�p=�pX�pY�pD�pF�pG�pB�p>�p?�pC�pE�p_�p@�pA�pL�pM�pH�pJ�pK�pI�p9�pP�pR�pS�pQ�pN�pO�pT�pV�pW�pU�p:�p;�p]�p^�p\���³~���p��p��p��p����³~���®��e����®���F���W�Ož��N�5)D{�p��p��p��ph�p��p)�p%�������p��p��p��p��p��p��p�-�p���	
��—ґ��	�]��
�o�e�o�o�e�ps�o�$b�p�p�p�pu�p��p��p��p ���p�p��p��p��p��p�����—ґ�e
��
�p�p���p��p�p�p��p��pi�pj�p��p��p��p��p�����9�� �p�큌�:˜(�������Ł�Z
�r�d���T�N™)�R��U�d)�d*�d���������h��m��n��j��p��i����e�e��^��_�T��T��Q\�Q]����m��m��e-�e.�����������������>��?�e,�d2�d3�U̅��������W��X�@��Z��[��\��]�������Q^�Qa�Q_��Θ��g�zž��������e��M������[�V`��\�Vk�V��V��V��V|�V�V}�Vl�Q܅��VQ
�VV�VR�VS�VT�VU�Vb�Vm�Vn�Vc�Vd�Ve�Vf�Vh�Vi�Vg�Q݅��d�Vo�Vp�Vq�Vr�Vs�Vt�Vv�Vw����ͱ���Vz�Vx�Vy�V{�V��V��V��V��V������{��|��~�����}��z	¦{�����������V��V��Va�V��V���t��v�V��V��V���u��w��x�e�VN�VO�VPA�VW�VX�V2���������e3�e4�e1�e2�V3�e0�aK��������R��S��_��`��a��b��^��c�Z
�C�Z�Z����9���{�����H��˜(�}E����	a���t�e5�e6�d��e��ޅ���r�¤⋿�e8�e9����QY�QZ�Q[��Ƙ��}�|š��3����@��N��F��O��E��D��A��B��P��Q��a¶���c��d��e¶���b�P��������e���������������¶�����������������������›�ׇ����e=�Qb�Qc�Qe�Qf������´�q�������������q�qO�qP�qR��´M���qN��´
�q
�q��´�q���q�q��	�q�q�q�q!�q"�q�q�q��[�
��
 •�ь�q+�q,��\���q-��
����
�����������������q$��e�� •���q.����´�� ��!��$�q%�q&��%�q04�qX�qY�q6&�q7�qZ�q\�q]�qT�qU�qV�qW�qe�qh�qi�qj�qf�ql�qm�q2�q3�q4�qn�qo�qp�qq�qr�qt�qu�q^�q_�qD�qI�qJ�qF�q1	,�q:�q;�q="�qB�qC�q>!�q5�q��q��q��q��q��q��qw�qx�qy�qz�q~�q��q��q}�q|�q��q��q��q��q�	�q��q��q����°��[��&��T��U��'��J��,��.��/��0��-��K��L��4��5��2��3��9��<��>��=��:��6��7��@��A��B´`��C´`��(��)��*��+��N��M��O��G��H��D��E��P��Q��R��S��������V��W��X��]��Z��[��Y��^��_���©�q
�q������©(�q�q	��Á����҃u��;�!�4)J���؃E/<��K
	*��jm��(4��������t����X��
����Ð�ÑÑÑÑ(Ñ)ÑÑ	ÜÙ5Ù:Ù;Ù8Î�ÑÑÑ
Î�ÙÙ/��ÜÜÜÑÑÙ>��Ù?��ÜÜÑÑ Ñ!ÑÑÑÐÑ�Ù*Ñ� Ù,Ñ
ÑÑÑÑÑÑ�"Ð�%��X����Ù2Ù3ÜÙBÙCÙDÑ#Ñ%Ñ&Ñ'Ñ$ÙEÙ&ÙÙ Ù!Ù"ÙÙÙÙÙÐ�ÜÜÄ�J�m�dÑMÑOÑ7Å�Ñ?Ñ@Ù�Ù�Å�ÑBÑGÑCÅg�Z�W�[�W��ÑVÑ[ÑWÄ&���tÄ'�iÅh	���Y�W��ÅqÅn	Ål�Åi
Åj
Î�rÆ�Æ�Æ�Å|�F��Ñ]Ñ^Ñ_ÑbÑdÑ`Ã������FÆ�Æ�Ã������EÎÎ ÑeÑfÆ�Æ�Æ�Æ�Æ�Æ�Å��bÑ�Æ�Æ�Æ�Æ�Æ�Æ�	Æ�Æ�Æ�Æ�Æ�Æ�Æ�Åf 	�F�2�0Å�Å�ÑlÑSÅ���Å�Å�Ë���Å~Å���Ë�Ë�Ë�ÆIj�3��4U���n��
L���x���<Xn�:��jÐ;Ð<Ñ0É�Ð?Ð@É�É�É�É�Ü3É�É�Ü4ÐBÐCË��e���z�LÌA�Ë�ÐFÐGÖV�NÐDÐEË�Ë��c���wÖU�MÉ��0�ZÔPÔQÉ���ÖW�LÉ�	����ք�"�[�hÉ�	����Ç��Ç�É�É�É�ɂw��
(É�É�ÎI�(ÐTÐ{Ë:��
'ÐOÆJ�m�%T���_
���u���;�ń�WÉ�É�É�É�É�É�É�É�É�É�Ë�Ë�É�É�É�ÐZÉ�É�É�É��)��g��q�!�YÓ�É�Ë�É�Ë���É�Ë�Æ�Æ�Ì@Ð^ÌCÌ6Ì7Æ�Æ�ÌDÄ}Ä~ÌEÌH�ÌI�ÄwÄxÄyÄzÄ{Ä|Ý"Ý#ÌJÌKÆ����	ÎPÌ݂mÌނmÁ�-$�%�4�@5�����0[�g
Bx	�+��
��%���I�ނ�e*��� Ê	ÄU��ÄV��Ê
�/Û9Ê
ÊÊÊÛ6Û7Û: Â!Â$ÂÂ#ÛEÛFÛCÛDÛHÛIÌ�kÌ�ÛXÌ�Ì�Ì�ÛTÛUÛZÛ[Ð�Ð�Ì^Û<Û=Û?ÖÌ_��Û^ÌYÌWÌXÌZÖ�Â
�����I;�ˁ�[�?ÖÖ	ÊÖ�Ì����Ñ�Çɉ�Ç�Ç�Ç�Ç�Ç�Ç�Ç�Ç�Â�����H �����[[�A��ÊÊÊÛpÊÊ	�HÊÊÊÌ�P
�Ös��ÂÂ<�����Ñ�Â��Â�_
ÛwÛv
Ð�ÛxÛyÂ��Û{Â�B�0��ÄX�0��Â+��K(�6�����U&�����D���n 8�;��Ù�ÛeÂ.��È�Ì'Ì.Â/��ÛfÛgÈ��C��È�Â2Ì#Ì$Â,��K�����Y ����
���n>8��Ì0ÄQÂ1Á�W��Á�Á�Á߆��F�DŽ��	Á�Çۊӊ�Ç���^�~Ç�Ç�Çي�È�È�ÛlÛmÌ5Ì����Û�Û�Õ�Õ�Ó|Û�Ó}Û�Û�$Û�Û�Ö�Ö�Ö�Ö�Ãp�����>M��Ç�Ç�Æ�Æ�ÇÌOÌPÇ�ÌÂ4Â5Â6Â7�
Â9Â8�Ì`Â&)�#����5��%F��Æ���Æ���ÌÂ(�	�މI�Â)��Á�+	2�;��+�1��P	-�������f(��	
��M�$u�I����O
��� <Ç5Ç6ÐaÐbÓhÓiÓjÓkÂÇ�Ì�Ì�Á����9�{Á����{Á�Á�Á�Á�É�É�Á�Á�Û�Û�Û�Ä����ÐgÂ@�o���M��Æ�Û�Û�Û�ÐnÐoÐkÐlÆ�Æ�Æ�Æ�Æ�ÐqÁ�GH�8����H����*K���x
-:��1ÄZ�IÄ[�HÊ2Ê4Ê3Õ�Õ�Õ�Õ�Ä]���ÇfÇd��ÇeÕ�Ç9Ç;ÇOÇ:	ÇDÇA	Ç?Ç<
Ç=
Á䒚Ó�rÌ��Ì��ÇSÄ+�7��ÇbÄ,3��Ä_��Ä`��Äa��Ä/� Ç]Ä2Ä1Ä0Ä-Ä.Ä*Ç_Ç`Á�&�!�
����E�T
$�'3Õ�Á⃂��ÄlÄmÄnÄgÄfÄeÄhÄjÄiÂ
ÂÌU�PÕ����4Ö{Õ����1ÖzÖ}Û�Ö~Ì\�SÊQ��� ����ÊR��Á��EÊ/Ê0Á�Ö�Á��?#��Á�Á�Á�Û�Û�Û�Û�Ð1Û�Û�Û4eÇ7��Ì�Ì�Ç�Ç�Ç8Ç�Ç�ÂBW	�F^��)
#L��k����2�#�MHB
��?`]��D�� ���\��Í��Í�Í�Ð�Í��Ð�Ò�Ò�Ð�Ö�Ö�Ö�ÒTÂɆ��2 ÒVÒSÂ���ÒYÊ�Ê�Ê�Â̈�ÒU�/�×× Ó��Ó�Ì�Ì�Ó�ÒXÍP����Ó�ÍO�%�Í_�%�ÍQ��ÍR��Â��遼�҈>��Ù�Ù�Ù�Ù�Ù�Ù�Ù�Ù�Ù�Ç�Ç�Â��,Â�Â��+Â���ÍÍmÍnÖ�,Â�ÒiÂ��ÊqÒjÒIÙ�Ù�Ù�Ù�Ù�ÒJÒLÒMÖ�Ö�Â����遼����Ý$Ù�Â���G�l� �;��Ä��*Ä�Ä��ւ;Ä�Ä�Ù�Ù�Ù�Ù�Ù�Ç�Ç�×"Â���Ö�Ö�Ö�Ö�Â�Ó�Ó�Òk2�
Òl1Õ�Õ�Õ�Â��N��������
�)����Í'Ú�Ú�Í(Í)Í@Í2ÍAÔ�Ê�Ê�Ô��9Â�Ú�Ó�Ó�Ó�Ë�Ò/Ò2Í9��Ò:Í:��Ò0Ò1È���߂���JOÊ�Ê�Ò[Ëj�È�����	�Æ��Ê�Ê�Ëp	�qÖ�Ëo	Ën	�Ê�ËkËlËqÒfÄ���ÂWÂXË}���uÙ�Ë~��Ä���Ë�Ë�Ë�Ë�Ë|Ë�
�
�����N������
�����JÖ�Ö�Ö�\Ê�Ê�Ë��j�Ն�Í4Í5Ë��i=Í+Í,Â�Â�Í[Â�Ç��Â����w���PK��1��Ù�ÒuÕ�Ò��lÉ�É�ÒwÒtÊ�Ê�Ê�Òx×6×7Â����w���Q��/×××9×××	Ö�Ö�Í��肢��G×
Ê�Ê�Í��dÒvÂ₢�F�A
f�߁�P��)��nP_�$2:��
Ò�Ò�ÈÒnÈÈÈ××È�ÙւÙׂÍ\ÈÈÈ××Ë�Ë�Ë�Ë�Ë�ÂR+�;�,S�ق���n���C��Âx�Ây�È�È�ÈÂS&��È�ÍaÍbÈ�Ö�Ö�ÂmÂnÂo$��W�����1��Â���Âq�/Ò�Ò�Âr�/ÒoÊ�Ê�Ê�Ê�Ê�Ê�Ê�Ê�Ê�Ê�Ê�Âp�i������ÒeÂiÂjÈÈÍv��Í�Í�Í��+Í��+Ò~Ë��ڇ�� ÍzÍ�Í�Í�Í�ÎbÂ�ÒÂ�Ò�Â�Íw��Íx���Ê�Ê�Ê�Ê�Ê�Ê�×)×*ÂU&�ފ�+ÈÈÂ|Â}Ò�ÂV&A��Ò�Â�Â�Í�Ò��ÔÍeÂ�Â�ÂC(#	�D^���5
H+�gj$
����.
�҃,9�JHB��=\[
��9��" 
����	�TÒ�Ò�Ò�Ò�É�Ä��lÄ�Í���Õ�Í���Õ�Õ�Õ�Õ�×;Í�Í�×=×>×<Ò�Ò�Ò�Ä�Ä�Ò�Â����|9��Ç������҃|�ÒgÕ�Õ�ÍU��Ù�Ù�ÍV��Ò�Ä���Ê�Ê�Ä�Ä�Â�	��Vx��	�m��	-���
I:���B�}U3��ki]�g^+6�u�'��sÜ%Ò>Ò=Ò?Ö�Ö�Í��eÖ�Ò_Ö�Ö�Ö�Û�Ò\Ö�Ö�Ê��X��É�É�ÍÍ
Ê��Û�Û�Ê�ÒRÖ�Ö�Â`ÂaÂcÂdÂeÖ�Òd�>Â]Â^Ês�FÖ�Ö�Û�Êt
Êz
Êy
Êx
�9Êu
Êv
Ê{Ê|Ê}Â����Û�É��Ö�É��Ê�.��Ê�.ÒEÂ�J�?�i���������mz��Í�Â��l�������g
��Ö�Ü&Ü'Í
ÍÊ���Ä�Ä�Ë��q��ÍÒ�Ê���ÒbÒ{BË�ÂY-1��U�����m��
)}��U9	���_�}���j[0P�p�&��j�Ò]Í���Ò`ÒaÂZ�T�yÍ���yÂ�3
�1���ۃs�YKA�r�Â�Â�Â�Â�Â�Â���Â�Â�Â�ÍMÛ�ÒЄ�Ò�Â�Â�×G×H×Í��6Í��6ÍNÍ����Ô�Ô�××$Í��Ò�Ò�Ò�Ò�Ò�Ò�Ì�XE�����6Ò�Ò�Âц�� S��Âӈ�Ê�Ê�Â����Ò�Ì�\E�����4ÒZÒ�Ò�Ò�È-�{��!!���6��肃��Ô�Ô�Ê���×0È.�{��������Ê���!Å˃d�փn�������ςM������Å艟��Å�����Òو/Òڈ/Îm×K×LÎoÎdÎeÚÚÚÚÕ�Å�Å�Û�Û�ÎhÎiÎj
Ð�Å�Å�Å�Å�Å�Å�Å�Ð�ÌlÌmÐ�Û�Ð�Á�Å�Å�Î~Å���P'��Ú
ÚÙ�Ù�Î�Ù�Ù�Î�Î�Î�Ù�Ù�Ù�Ù�Ù�ÚÅ����fÙ�Ù�Î{�p	Î|Ã��.Ã��-Ù�Â�z����×T×X×U×VÍ�Í�Â�^Â�ÔeÂ�Â�ÔdÂ��s����×QÂ�\×S×ZÚ�ÌnÌoÊ�Â�߃d���m���������܂�jÕ�ÔhÔmÔiÔjÔkÔlÅ�Å�Â�Â���Â�≤�\Å�ÔoÔpÊ킃��$�6Ê�w�`Ê���Ê�Û�Û�Î}Ó��AÓ�ÂD��$�遀M,J��	����
�����7!���<��S������W�����	�����Ú=Ø�Ø�Í�Ò
�;Ò�;ØFÄ�Í�ØØÔ!Ø	ØØ
Ø
+Ø+ØÁׂL�4�f���M��Ã��Ä�Ä�Ä�ÃÅ�Q��
�UÅ�ÈA×rÍ�`Å����J×�ÍߋaÓ�Ó�Ó�Ó�ÃÍ�������Ä��Ä�Ú/Ó�Ó�Ì8�kÄ�ÅÅÓ�È1(��È2×�×�ÈZÃ$�4�d���M
��Ú5Ã%�у�QÃ&��Ú0Ã6Ã<Ã9Ã7Í�FÃ(��3Y��ØÐ�Ð�È[ÂGÂIÂJÂKÂLÃ)�"��Ä�3Ä�3Ä�ÂM�w2���ÅÍ��>×�Í��>Ø Ø!ÅÅÅÌ�Ì�Ã5�U�o�z�p���=����Î����Å��z���Ø$Ø%ØSØTÍ��fÄ�Ä�Ä�Ã=Ä�Ä�Ä�Ä�×�Ä���Ä�Ä܈�Ä�Ä�Ä�×�ØÂN���ʁ�J 
@��	����	��P&����=��O������S�����
$��Í���Í�È?È>Ð�Ð�Ô#Ð�Ø^ØØÌy�wÌ|Ì}ÌzÌ{Ä�Ä�|Ä�Ä�Ä�Ò�Ò�Å
ØcØdØeØhÄ��i�Ä��;*È7È8È9È:Ø��Ø(Ø)Ø+Ø,ØÃ��Y�Q��	�$Ô Ñ�ÂF�������Ńށ�Ò�YÒ�YÃEÑ�×cÃ-��w@=���&��,���>��(����1%T��$��R×z×{Ä̓�×}ÃÃ×�×�×�Ú×~×ÚÅÅ×���Ú×�×�×�Ú×�×�Ã?�'��×�×�Ý%Ý'ØpØqÃ@�&�0×�ÈFÈPÈQÈRÈIÈHÈGÈJÈKÃ
��6���GÅÅ Ú"Ú#Ã
�+����
ÃÃÃ
��Ã
��Ã
����ÃÃÍ�Å	ÅÅÅÅÅÅ×�Â�×�×�×�×�Ú%Ú&×�×�Â�ÈDÈEÄ��Q�K�h5��on����Î	ÎÈi����mm��Â��
×�×uw&×�×�×�×�×�×vv%Å4	����@����Å#Å$Å!Å/Å'	Å)Å*Å,Å-Å"Å1Å2ÅB������Ú!Í���Å5�������ÅD��Å=Å>Å?ØwÅE��ØvØu
Å8������Ø�Ã)����;$���%��
2����&	
������×�×�×�×�×�×�×�×�×�×�×�×�×�×�×�×�×�Í�Í�×�Â����E���߅�����Ú;Ø~Ø×���Ä�Ý(Ò�Ò�×�×�3×�×�×�×�×�×�×�×�Ã2����YÃÃÃ3��ØWØZØXØVÃ+���"��×g×hÃ.��� m�Q��Ã/Ã0��l�PÃ-���!��×m×nÃ,������ÔrÑă���ÈkÈlÔ�Ô�È]È^ÃF�م\�ρ�9�}���0H�z����uÎ�Î�Ø�Ð2Ì�Ì�Ð3Ô�Ô�Ô�Î�Î�Ô�Ô�Ô�Ô�Ô�Ñ�ÃP��H�������т
��Ð�Ð�Ð�Ð�Ð�Ð�ËW�ށ�
����Ç��ق�@Ç���Ô�Ì�ËX�9ÃU	�=Ã[ÃX	ÃVÃS
ÃT
ÃlÃiÃH���[����&���
���sÔ�Ô�Ô�Ñ�Ô�Ô�ÃG�z�M���W�����ÃMÃNÇÇM��ÃJÃKÃLÔ�Ô�ÃhÑ�Ñ�ÅS[������j��?���������B��
�|��Ò�Ã��`Ã�Ã��^Ã}Ã~�aÃÃ�Ô(Ô,Å��{Å�Å�Å�Å�Å�Ô-Ø�Ø�Ô.Å�Å�Å�Å�Ø�Î9Î:Ø�Î;����Î>Î?ÎCÎ<��Î=Æ����]��!Î�Ã�Î�ÅZÅ[Ã��W����Ãu)Ã�Ãv*Ã�Ã�Ã�Ã���"��È�È�È�È�Ø�È�È�È�mÈ�Ë[Ã���Ø�Ø�ÎRÈ�È�#È�Å����ËYÚ�Ë_�GØ�Û�Û�Õ�Õ�Ë^Ñ�Ñ�Ã��Ă��Z>!�3�E�����Æ�'ÆÐ�Î�Ãw�y�V^�3��ËË	Ãx�yÃ����H�IÎ�Î�Î�Ã����FÎ�Î�Î�Î�Î�Ô6Ô&Ì�Ì�Ãy,���H�A�l�1��
y�%��,
	��	���2Ô4Ã�Ã�Ã�Ð��Å�Å�Ð��Å�Å�Ãz�����ÅV��ËÃ���������Ã�����ÅX��ÅY��Ã����΁��2�A����фAÅ�Å�Å�Ø�Ã�Ã�Ã��?Ø�Ø�Ø�Ø�Ø�ÅcÅdÅbÃ����Ã��Ã��Ì�Ô8Ô9Ô:Î�Ò�Ò�Ì�Õ�Ã�Ã�Ã�Ã�Ãă�����K���&ÃŎ.��ÃƎ.��Û�Ô=��Û�Û�Á��� ]��	��G���/()��e��N���؁��V>#	@��K
	$��Bm��	I���?��-	�/��K��	Ó/Ó0Î�É$É!É"É#É%Õ|Õ}ÊXÖKÖLÆ!�9��ÆÆÊ\Ê=Ê>Ê?Ê6Ê9Ê8Ê7Ê:Ê;Æ"h��Æ Æ%Æ&È��	�����hÉ&É(É'ÃǃS6ÆÆ7ÆTÆWÃ�Ãʃ�ÆUÃ�ÆXÉÉÔ�Ø�Ø�Ø�Ø�Ã�Ã�Ã�Ã�ÉÉ
ÉÉÉØ�Ø�Ø�Ø�Ø�Ç�ÇÇØ�Ô�Ô�Ã�8��������hÉÉÃ�8����É	É
ÉỐ�ÊWÃ�Ã�Ã�Õ{Ô�Ô�Ã��|��#�݂̃
�M��Ã�$Ã�ÃЌ\��Ã�Ã�Ã��$@��#	��������M��Ê^ÉVÊ_ÉS	ÉQÉN
ÉO
Á�	�)��Á�Á�Á�Á�Á�ÂÃن�����у&ÓÓÃ�Êa��Êb��Ï.����Ï0����Ã�Æ'����3�9��j���v�t���uÖOÖPØ�Ü=ÇÜ>ÇÛ�Ój������Ç�
�[�uÇ
Ç"Ç#Æ[�Ɔ��Æ^Æ_Ô�Ô�Ô�Ô�Ô�Ã�ÇÇÇ
Ô�Æ\����	�Ø�Ø�Ï#Ï$Ï%ÆYÆZ��Ø�Ç��ÇÈ�È�ÇÉEÃ�	�*����"'��d��w��uh�f�t�L��IÇ%Ç&Ç(ÉdÔ�؃	�3ÛÇ)Ç*Û	Û
��(L����	��������P�C�1
 �ԁ⁙�X'v����,ÆnÆpÌ��jÌ�ÓÓ
ÓÓÏ7Ï;Ï>���Ï@��ÓAÓ-Ó.Ï?��Ær��ÆuÆvÆs����Ì�Ì�ÆY�㌟Ô�Ô�Ô�ÆÌ��LÌ�ÏB��ÏC��Æh��Ȃ�Ô�Ô�ÆÆÆÃ�y����aÓØ�Ó7Ó8Ó;Ó<ÓÓÓ9Ó:Æ{Æ|Ø�Æw�LJ��$���BÓ3Ó4Ó+Ã�����	Ó#Ó$Ó"	Ã�.	Ó 	Ó	Ó	É7É8Ï8Ï9ÓBÓCÆ��wÆ���ÏNÓDÓEÆ�Æ~�`�vÆ�Æ��Æ�Æ�Æ���Ã��%L ���‚����N�r)��������&Ã�Æk�҄k����ÆyÆzÜÏK��ÓHÉ:É;Ã�Ã�Î�ÇÇÇÇ	ÆlÆmÎ�ÓÓÂ��8È�Ý:Â��+�Y��\��$�9��,����*>j

Xs�d����������Z!�-Op��
8#��F��N
&��6LK��Ö5Ö6Ö8É�Îȁ�����ÎɁʃG�y��ÊgÚHÚIÛ
ÕÕÏ���ÚFÖÆ3ÚKÆ6Æ4Æ7��Æ9Ï���
Ï�É�Ï{	�xÏ�Ï�Ï|	�uÏ�Ô�Ô�Ë)��Ã���O��Ä��ÄÃ�����Õ<Õ<Ë*��Ç���Ç���Ï��_Ï��^Ï�`�dÏ�`ÕÕÕÕÏ�K��^Ï�J��^Ï�Ï�Ï��^�y��Ï��^�yÕ�Õ�Ä?���l�W��n��ÚNÚQÚRÚOÏ���Ï���Æ>��
�~��dÏ�Æ?�@��Ï�É�É�É�É�Æ@ÆA��Óт+Ô�Ã���Ç}ÇÇ~Ç�Ç�Ã��L��Ù\Ù]Õ
ÕÌ�Ç�Ç�Ç�Ï���Ï���Ç�Ç�Ç�Ñ���Å�����-Å�Å�Å�Æ;��������{��n��Æ<����ÇxÇyÅ��/��ÚdÚeÅ��.��Ñ�Ñ�Çr�b����o�P�R�J"�B1�Ð$Ð%ÒÒÒÒÉ��@����Ï�É�Ïт���Ï�Ï�Ï�Ï�ËԄ�G�����Ï�F�a��ÓV����ÓW�%Çs�d��-�)��
O�N+`��$�@1	�Ղ<��Ñ��I��ÉoÈف�Ñ��H��È؁��Çu�c����Û#Èԁ�ÈՁ�Ë҅T�����Ép�ÉqÉrÈځ��~%�>�́�P��É��7�
�WÖÏ�Ï�Ï�Ï�Ï�Ï�Ï�Ï�É}�Y��s�0Ç�Ç�É~�X��s�0É��7�
Ì�Ì�Ã������܁�.?i��b��Y%`�kA%	m��&���O�!��ÏPÙUÙVÚiÏQÌ���ÖÌ�Ì�Ì�Ùg�Ç���Ç�Ç�Õ.��Õ/Å���i���b���Y��!�0A-�Q
���#�

���Ñ�Ñ�ÙOÓN�Ñ��ǂ Ñ�Å�Ä<�U�/�jb���TÅ�ÕjÕkÄ=����ÛÚ�Ú�Ú���Ú���Ï�Ï�Ï�Ï�Ï�Û(ÛÉ�É�É�É�É�É�É�É�Ì�Ì�Û$Å����
���������Î0Î1Ú�É�É�É���É�É�É�É�É�É�É�Î3Î4Æ���'��Ï�ÖÆ�Æ�Æ�Æ�Æ�Æ���#Ì�Ì�Å������_����É�Ì�Ìς`Ï�Ï�Å����Ë��Ë Â��(�V��G���L��."����%��Us�S����q)	����U�,
P
l��
8
��
=��K	��6 r��Ó�È߂i��Ï�ÖÖ!Ï�Ï�ËÏ�ËÈ�Ê�Û+Û,Ú�Ú�Ú�Ê�Ð�IÓ�È��.�I�>Õ`ÕaÕcÖ"Ï�Ï�Â�'���/�Ë�JÙ_Ó�Ë��ËÎ΂"��]"�Fc�q��@����Ì�Ì�Ú�Ú�Ëވ�gË߈�gÈ�����iÓ�ÊIÈ�7È�7Ë�FÛ/Ë�FÚ�Ú�Ú�Ã�(�~��⁒*����i�N!c�lQ����&�#��&��Ï�Ï�Ç��Õ8Õ9Ï���Ú�Ï���Ç�Ç�Ç�Ç�Ì�Ì�Õ1�Ç�Ç�Ï�Ð�+ÕwÚ�Ú�Ú�Ð
��Õ;;Õ<:Ú�Ú�Ö3Ú�Ú�ÓfÓgÐ�*Ð�?�腂ÕE�jÙkÙlÌ�Õ>ÕCÕ?Õ@ÓՂ}ÚVÚWÓ�ÚTÚUÓ�Ï싫Ï���ËՃ���h�c�UrË+Ú�ÖÇ�Ç�Î�Î�Î�Î�Ë>Ë?Ç�����Ç�Ç�Ç����]��Ð�Ð�Ç�Ç�Æ�����P��r�' ��0Î�
kÎ�	ÏTÎ�Î�ÏVÏWÎ�Î�Î�Î�ÔJÏc��ÏeÏd��Ù	Ù
ÏÏÎ�Î�ÙÙÆ�Æ�ÏØ�Ø�ÏhÓ�Ó�ÏkÏlÏiÏmÏnÆ(�����c�X�0)��ÕLÕMÆ*Æ,�ÏÉ/É0É1Æ)����Æ+�Ï	ÏÏÏÏ
Ø�ÎÂj��	Û�Û�Û�Û�Î��.Û�	ÏÏÏÏÙÙÙÆ�����T�Z�%
��Ë3Ë6Ë5Ë4ÏÏÏÏqÏrÉ�����O�_-��*��ÏÏÏYÏ\ÏZÏ[��ÙÉ�É��\��É��tÏsÏtÙÎ�Î�Î�Î�ÏvÏwÉ�É�Ç���ÇÇÇØ�ËN��ËCËMËDËEÕ�Ë�ËPËQËSËO��Õ��bz<�z�Po���m���j²(S�#L���%(�P�����#��! �"+�eB�eC�(��)��"(�")�!�5�$����&���!�e����
�w²Ղ��'�'�g	�:�;�g
ºT�!^�8�$� +� ,�b�¼��$��6�3�4�j�²����j��"��"��db���dd�df�dg�de�dc�g(�
�v´��^�"��j�²��"��kR´����"��kS´����"��g)�g*�j�²��b��Ձ��A�N��²��)4���@�h��h��h��h��e���,»z���"s���#_�"u�"v�"x�"y���e��e��h��h��h��h��h��h��h��f�+»y���e��y�����z�"��e���¹��b����L·WE�S�g�·Z�eu�ev�ex�ez�e{�ey�g��b��b��b�¾��f��f��b��ӂ�º5�!5�g�g¸�b�¾��b���»��!7�b�
�����=�I���=²��)2�������e~�	¸4�g��b������ׂ�²��)@&��B�3�f>� D� E� F� H� @�g~�g�g�¶<�$`�g�¸�� � �g��g��f�¶��/e��<
������� ?���#[� J�b��kI�kJ�g���h��g� &�g��g��@� �!b�A� �!a�du	�!+����"G�|*	,�=²�B���قrS6�˾��dz�1���d{�1���e��dw�3¸/�o�i�dx���e��e��iB�iC�e����e����e��i�e��U��U����fB�fD�fC�j��i�i�j��d~�d�������g-¹&�g2�g3�g/�g0�g.¹&�b��Ą�ʂ�²�����_�dk�R²��j��b���������²�����_�e��e��dj����²������gm���i!�e₍¶��"��e��e��e��e��b���.����
��6�k²�F���MW-���gY�gZ�g[�gW�iN·��g?:�g��gV�g]�g^�g;�g<�g=�e�A�R¶Y'���e傍�g9 º"�!z�ga�gb�e�/��¶t�e��e��!O�e�.�}¶��e��b��d��d��e��e��b�����b��b��b���"��b؅��e����gt�gu�dv�����".�~
 	)q��	²�
6	�����mP/����º�� P� Q�����e��e��e��e��"����������gR��¹������e�·�'���i�d|�4�������%�k²�B	��g��W����������dm�dn�e������´��gg�gh�j��iD�iE�iF�j��e�·�+�d���vy�[²���}	#{��E�-�z��g��g�������2�n�d�º���������������������4�m�b�¼�+�b�¼��������!>�b���·�\�b��b��b��b��b��b��iO�b�¼��b�¼��b��b��b�
¼�W�b���c��b�¼��b���� W�iS� X��
�d��d��c	»�fN�fO�h��h��h��bق݄�{µH������b�½^�ia�c�c�b�½\�b��g��bڂ݄�x´������g��ib�ic�iV�h��h��h��h��h��h��h��h��i�i�iY�iZ�i�i	�h��h��h��h��h��h��h��h��h��h��i�i�i�iW�i
�h��h��h��b����KD�y��v��²�
����	!{��E&��z��f�f�f�fL�fM�b��J»�b��¶�g��d��bۂ��b��b��i\�i]�iP�iQ�iR�b��߂F=�Z:¶'�끷p(���g��g��g��g��g��"\�"_�g��g��g��g��g��g��"`�g��g��g��g��g��g��b���C=����¶�5k�fR���d��d��d��b����$��¶�5�d��d������"e���g��g��g��g��������g�¸���g��g��������b����F<�Z¶U��j�+�d��d��fG¹��d��d��g��g��g��g��b����b�������gτZ�k*�fI�fJ���k-�g��g�¶"�`P�fS�fT��� a� b� `� e� g�d���������³<�Ł�6e�F�fy�fz�f{�fw�fx�f}�f~�c��"�#�c»�c���c�c�c�c�c�c�c���g��c�c
�c#�)�+�*�c&�c%�c$�'�(�!i�fW�fX�fY�!l�f�º��f��f���f[�f\�f]�c �c!�d�¹T���.�/�j��c.�c/�b���/�3��³7#��r�E��d��b���3��³:�ꃶ��j��d�¹=���fg�fh�b�¿��b�¿��h�c1�ق[�u³\�c3�c4�cD�cE�c6�/�v³_�c?�c7�̃��h
�c=�cA�cB�fo�c2���W�s³X�c8�/�x³\�g��g�¶B�g�
�@� p�g��fq�fr�fp� o� r�c)��	��
����³.
����6e�;�ik�il�c-�fs�fm�fn�c,�4½V�c+�7�؂��fc�fd�fe�fb���ft�c�ń)��³U�:�fv�fu�fk�fl�f�f��j��h�h�h�j��j�µ�� x�c(»�B�b{/��8�	��	
��³��C��W��j�Ӂ���� |� }�h�h�f��f��c��쁗���³_�c��c��c��c��c��c��c��c��c��iq�ir�c��c��c��c��c��c��j��c�����³\�A��c��P���j��chº��c��ciº��ck�cl�c������
³Y�c��Q�c��c�������³b�f��c��c��c��c��j��c~)��º�b��c�¼��c��c)	����¸[�c��c�	�c��c�
�c�
�c�¼��h�h�f��f��b���t��³'�A���f������f�� ��^��k6³'�>����� �� ��b|1��!��	��	
��³��B&����c��cN�cP�cQ�cR�cO�cY�cZ�cV�cW�b��b��b��cfb�ccb�ce� ��c]�c^�c_�b�������cb�cM»��R�h.�h-�b��b��cm�b���N���9³�;
		��� ��cq�cr�c��c�� ��cn�co�c��c��cvf�H»P�I�_�cwf�H�cx�n�cz�c{�in�j��cye�
�c|�c}�io�ip�j��im�c��c��c��B�"��³M�:��� �� ��c��s�hH� �� ��hI�c�¿��J�K�b�c�h4�h�hK�h�h%�h&�h)�h*�h'�h(�I�Y� ������c�
'�h]�a#��	�p³f>������)��&�!��c��c�� �� �� �� �� �� �� �
� ��!��hN¸m�hO¸m� ��!��P�Q�!��!��!��!��!��!��!��j��j��!��!��!��!��!��c��d�d�c�ºt�W�!��!��!��!��!��[�d
�d
º[�d�d�d�d�c��c��c��c�ºj�]��=�j�k�"�<�o�d�F¸p�d1�d2�d�E¸p�e����	´�T�hR�hS�d¼����hT�hU�d¼�� �� �� �� ��d�gj�w)��´�>
�	���h\�e�¹4�e���%��´�@����i�´��e�¹1�hZ�h[�i�´�ÝH� �� �� �� �)�c��c��d���d�d�d
�d�d�i�´��i�·X� ��c�
&������	��	´�<������)��&��=�`�a�e��e��!��b��b��"�<�e��� �	µ/�i��i������hk�c�+�ƒl/��x³gM�(���	�M�N�!��!��d#�d&�d%�d$�d"�����L�d/�d.�c�;»��h`¶�!��!��c�d�!�'�!��!��ha�e�¹:���W�\�]�X� ��Ɂ��������d �I(�	�hP�hQ� �� ��d�[�����!��³M}L����
�������f�¼v�f��f����#B�#C�f��f��f��d5�d6�#<�#=�#>�f�¼p
�f��#@�!��!��#A���]�'�#'�#)�#,�#(�#-�"��"����]�.�"�,�"��#8�#9���������!��f���ºo	H�"�P�k:�i��i��i��i��hs�G�i��ht�M�hu�M���������k;�f���ºoG�d:¾�S�d=�dZ�d>�dC�d@�d?�dI�dF�dD�dJ�dL�dK�dA�dB�d<�d;!�hp�/¹a�!��!��i��i��!�$�!��#�d���¹d�#�#�d��w��¹f�j9´'�M�jf�jh�jg�j;!�jd�j>�j=�j<�je�j`�ja�j]�j\�hv�#
�ji�jj�#�#�#�j:´
�M�jo�jq�jp�jl�jk�jm�j?�jA�jC�jG�jS�jT�jU�jV�jP�jQ�jB�jM�jN�j@ �jD�jE�jF�jK�jL�jc�b��"�"�������u³i!SK�����'�j��j~�j�j��d_�¸bB+�#�#�#�ju�j|�jv�jw�jt�#"*�##�j��j��j��j��#�#�#�#�d`�¸��j��j��j��j��j��j��j��j��j��j��j��j��j��d�T�#��´�!����'�d��w�j��j��h��h��"��"��h��h}�h~�h��h��h��h��h��hw�hx�hy�h{�h|�#0�#1�da�������´����������"��"��g$�g%�d��[�d��U�d��d��d��d��d8���d9�i�¶��d��w��µL�|�j4�j5�j%�j/�j0�j1�j&�j(�j,�j-�j)�j*�i�"�j�j�j�j	�j
�j�j�j�j2�j3�i�0�j
�j�j�j�j�j�j�j�j�i��i��b���2P��Ăہ����h³N
��L����L�d��d��d��d��"��d��Z¶
��X�i�¶
���d��d��d]1��¹U�"��d�¾K[�d��d������!��!��"��"��"��f��f��f��f��e���¹U�e�f�¹F�f�¹F�f��f��f��f��f�¹U�j��j��j��j��j��j��j��j��j��j��b��N��$`o"��0
&�V+d;f�d²z�"F	���%��I�)�f�f�e2�E�e3�f���f���f �f!�f#�f$�f�f�h��h��h��h��h��i(�e�f��f'�f(�f��e�e�$�x��b�e� �{~U�f2�O�f��f��f�f*�b���"S�����LN�f�f/���Q�e

���·�g�f��f��f��f��"L�"M�f��e�e�e!�e�e �e���f��"��"��"��!q�!r�e%��·��e	�e'�e(�e.�e+�e$���f��f��f��e/�e0�e1�e���e�f-�f4�E�i?�b���wL4B^�����7��D�V²T	��R735�� ��0b4"��$�#��eS¸Q�����eT¸Q���d�¼��e;�e<�"�"	�e7�e8�"X�&
���"$�!�!�!�c
�!�eG�eH�c肋¹��<���H�"�"�c��"�"�"S�b��h��h��"V�"T�"U�����"�e>7º؂��G�"�"�"�eL�M.��¶E���!��u�#��#��#��#��e?��¹��e@�{���i���i�eM�z³��S�s�!�=�!�?�"6�!�=�i�·M�|�eb¸9�����"���!��"�"�b�Q����u4�}d�?����²[��6��h��<1���!��!��!��eI�!��!��eJ�!��!��g{�"�"�!��b�P����q��?��²W�Ղ�K;��c�ee�!��!��"�b��b����"R�d�k¼�v��w�d����d����d�k¹~��<�!����d�^¼�d��d�k¹���<�#Z�b���s7
8?]�����6��
;�U²R��Rc31&��
ELB
	��4�!��!��eh�!�!�!�ei�d��d��h��kF�kG� *�d�l¸9��-���!��"A�"B�d��!�B�!�B�!�B�d�cK��2��²V�݂� dzA��e^¾�e_¾�i�·������"D�"E�b�¾��b��e�����"�����h�!���"2�eg¸P�b/��6	�!X��>�g»��"��"��g�"�<�"�<�f��"��b��3�b΃5�g��µ� ���g·� ���g�"��"��"��"��"��"��g
»�	�g»��g��¶)�~� �b����
³��m�k�k�k�k�k	�k�h��h��k�k�k�k�k�k�e��y¶[�ۂ/�!��!��!��!��e�»����k�e��e��f����f��gE��¸p�gF���h��T¸p�h��h��h��k �k!�k�k�k#�k$�k%�#��e�e��#��#��#��#��#��kK�kL�g¼��g¼��#��#�
�#�ÝC����c ,hÝN��àààÝO��Þ�K-��ß�ß�ß�ß�Þ�Þ�ÞlÞmÞwÞ�xß�Þ
ÞÞß�ß-ßOßPÞ&Þ'Þ
EV*��Qß�ß�ß�ß�ß�Þ/Þ0Þ$�}#eß�ß�ß�ß�à9Þ"Þ
CV*@25	O	à+à/à0à,Þà%Þ#�h!kß�
Gß�GÞ�Þ�Þ6�hÞ7Þ8ß�ß�ß�à&Þ5nI��%3à>Þ�ßßßÞ<�}ß	ß
ß�ß�ÝDÞ>��$�ÝE����Þ=Þ�1ß�ß�Þ���ßßßÞ�IÞ;n&#��0ßßÞ9	��e��ßdßeÞB�ßßßa��àAßßßÞ�ßÞ�Þ�ÞE	��Þ�Þ�ÞKÞLÞIÞJÞGÞHÞ�Þ�Ý[��ß(ß)ß*Ý\��Ý]��Ý^ÞPÞSÞQÞOÞF	��ÞUÞVàIàJàDÞ�")AJV]Ý`���\(
àKß�ÞbÞ\
Þ]Þ[�X*Þfß�ß�ß�ß�ÞcÞjÞkÞ^Þ_ß�Þ�%(D�)Þ�)Þ��jÞ�*<E��%àß"Þn'"+D��ßjà'ÞYÞoÞXÞpMp>��àTàSàUàVÞs��AÞqLo<��ÞrL��Þ��&"rß�ß�ß3ß4Þ�Þ�Þ�Þ�Þ�Þ�ß7Þ�Þ�Þ��%��Þ�Þ�Þ�Þ�R��ß�ßsßtß�ß�Þ���ß�ß�ß;ß<ß�ß�ß=Þ�W��Þ�Þ�ßGßHÞ���Þ�Þ�[ßEÞ�ÝF�3��4Zvààß�ß�Þz��Þ{��ß�ß�ß�ß�Þ}Þ���Þ�Þ~Þ�Þ�Þ�Þ�ÝG��Q$F[/��Þ*Þ�Þ�Þ�ßYßZß[ß\ß]Þ+Þ�Þ,Þ�ß>5ß?Þ�Þ�ßWÞÞÞÞÞÞÞÞÞß}ß�ßß~PK�j�Z��1|	1|	vim80/spell/en.utf-8.splnu�[���VIMspell2
usaucagbnz��€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'0Zaeiaeyaiieairareairereairearalota lotareairareearareeircckchtechtichtuchschkcisdijearareearairearereearierearaireauoeeieiaeirareeirereereairereearereeirewoewooewuiewuewueeyafphfghgejggjghfiighiuyieeieaiierearieuuieuooighijdijggjgekchkcckqukwquoeauoewoeuooewoouioouooieuphfqukquwschstiscishuntionshunsionshuncionsizecisessztechtichtistuchuewuoouoeuieuueewuffoughuiewuioouyiwquzssZkah(aeiouy)-^*har(aeiouy)-^*ra(hr)^*a^*ah(aeiouy)-har(aeiouy)-ra(hr)à^*å^*bb-bbcq-ciaxchxc(eiy)-sckkcough^kfcc<cckdg(eiy)kdd-dté<eeh(aeiouy)-^*her(aeiouy)-^*re(hr)^*enough^$*nfe^*eh(aeiouy)-her(aeiouy)-re(hr)ff-ffgn^ngn$ngns$nsgned$ngh(aeiouy)-kghgg9kgkhhih(aeiouy)-^*hir(aeiouy)-^*ri(hr)^*i^*ing6nih(aeiouy)-hir(aeiouy)-ri(hr)jkkn^nkk-kklaugh^lfll-llmb$mmmmmmnn-nnoh(aeiouy)-^*hor(aeiouy)-^*ro(hr)^*o^*oh(aeiouy)-hor(aeiouy)-ro(hr)phfpn^npp-ppqkrh^rrough^rfrr-rr	sch(eou)-sksc(iey)-sshxsi(ao)-xss-ssti(ao)-xth@tch--tough^tftt-ttuh(aeiouy)-^*hur(aeiouy)-^*ru(hr)^*u^*uh(aeiouy)-hur(aeiouy)-ru(hr)v^wvfwr^rwh^w	w(aeiou)-wx^sxks	y(aeiou)-yzz-zs@htht@
willboymotherfoundnamerundiffersuchofonorevenfourallfatherwouldIneedseeplaceearthahotworldhowhereyemuchstudywasgetwaywellstillfordoesschoolaboutactplantwherefewthinghandbackthinklargehighalsolikemovecallbeenjustandsomedaystartaddgoanyknowlongwaterthislittlereadportgreatrealsayfirstleftlastdon'tsoundcamelifepointfromwhenhewordwentcouldworkafterfivelookputsaidlateeightshowourouttheytwoherestatechangemightsoneveryouiffoodinisitfollowhousestorythanhimtreethatlinehundredwantgrowoldmanbuildgivemayselflightmeantoanswerthroughlearnsixhomewhichthousandfindsmallhardsideoveronlyendsunverynorthgoodowneverykeepsentencetimetooagaindidcoverareuptenuseachthoughtmakedrawanseapressasturnsettellnearhadbymusthasonebigwhileatpagecityweretheretakeplayaskcrossformheadbefarmotherairwriteyearlivebeforesamewiththreefarcomelandninepeopleclosesawbetweenmorewhopartweroundthesewhymestandpicturehelptheirmynowsevenrightnumbershouldnewthemthenspellcancausemanyundermenbutcountryoffnightthemosthistrydownlownoletwhatkinddoyourshemadeusehaveanimalJaàáâãäå/eèéêë/iìíîï/oòóôõö/uùúûü/nñ/cç/yÿý/sß/V����(�&'0123456789abcdefghijklmnopqrstuvwxyz�gmnstainston3geath
treCuwt7hwai7sxGtth02369ds284x767807i7p80x7207p6t6-b5i20x10807i7p�et�4�dnyzeda��b2dg�r�-0x2470�e�spp��'ctx47sth4�t�-0x4�82�t07p�-0�t0x6�0th 
 '-.abcdefghijklmnopqrstuvwxyzatnh4eslevels
km.Sa.'achlrs�hen'siyah:'dTghovwark'ssolfv'Usesus'sn'vsitc�h_'abcdehijlmnorsuy	bc�flnstx�akus�'�eon�edoneimswdr'sngent�'�sar7eeh	idmrsent�'se	i'mdsly!e	itoi�ria7laeor}y�'ss:'i}d's�yss�st�'st�'evissateidsno�n��s_'s�
iou�cm�einaollsyplasti7y[eclte�iFosde
h's
�'lah�'asdlrtym�'asrtdotncdnryornwy'�sombie'seevn�'shireinathtyantte�lUssion�'as�lstwythst�e	iFoanct-eorrse	idnrc9tedglnoaeijn�cdrsng<lUsan:'aitleintetiy�e�'gdongteneis[i7c�ieucti<lno-ness'�esrae	itio�o<rd�rsaeouytz�ein�oveh'ls�ye-r�sbodied�ot	i_'aseog}rat�ein�ormal�i<lUsa�dlmruv�risthe	imdrs'sent'�sion�'issm�tinab�tleyintginaelh')ls's's�sinsgeisd�rfnovacie5nn�'iss�te<lness�'ntd�e	iseh'bgoparou>naeioucdhmsadabra'�sse	idrsatm�'}si�ove�'<lnsessh'�eac�stio�ndge	imdmrsent's�sent's�s�agat�eiFonon�'�spte<ln�rs�tess�'�e
�'aceiotulo}meioss�'e	idsssa�i�'esnde	isd�rinlh'�e	is�ct-ei<lm+sminded�lness�eder�'issmanindedlnsyessh'nth'-eslruIvteih'<l�nrs�t�os-m�tbpaeisnc�edn�rcti�ye�'+sn9gti�oveityaeirinmBnious<lness'�e�snentct�laucth'ei<lnosdrs<l�n�tnovn�'issm�teess�'�e�rse<l�n�rsrd�ei<l�ns�t7mth'�s
'bjnstzbla
's
dan�c9taeibl�eh'd�rsnv�eimstlo7ne�ne	id�rzsmsa9l�'a�eilnia�'�n'acehiklmnoqrtuwys�cdnprsi�aeim-ei�yac�esh'aisl<lGsa�sn�'shi�p7m�ath�uulctou�s.eilortudlnps�e	ieraot�eiFon�ovg)lmet%et�'�e	iosu�rarlTti�l5st7y}etaei%osbntillit�i�yey�n�ctio�n8d�rnlvg�lne�ss�'�eiobnoi�lli�tn�'�e	isri�s�yLa�eze�isdssdencte�'-aspronlh'<lnsaiimmh'�e	isat�imvat�ein�oszaeitiond�rsngae	itionh'd�rs�ilmrsuadei�'�dsn�gmpodat�ei�n�ovenalniye�m�sdrs	ii�csh~e	i�md�'a�eisn�c�t�n�oth'�e	isntt�'a�eisbn�ileyness'�s�c�tng�'serreim�s�dn�gentsh'ei�dm�sent'�sn�gtaeudtit�a�e	is>ei�ovGea�e	i�llmrsturat�ein�ovulat�eiFon�ove�lnas�cteed�l�nae�itltio�oveh'sd�rs�'ome	isdn	�'sdlnrstvlula7rt�rbai"tc�tal<laioyblmn�tul7a�udehydinophenh'sil
�icbgnact
�ee�n-eisclceholinesterastned}oaeiorye�a�'^bd�nrsunoa}rno}nlia�nelm�nr�svae	ib-ld�m�rsle7a�se�naoomat
�id�n�'i<lnosucfm�ti	ryc�eationetri7ycal\less�'pshile�i7sei�slo�uenrmanY'owledge	i�ma8d�m�rsblu_'�ee�'�dsln�rsuy�tciagu}atstic�ais�a�'uaiinta�e	isnce�'shi
�perstsce	id�nsTae	id�e'mrs
�siti�o
Nvsta�e	i�ln�ceiouy�'as�gdmei<l�nsrsstn�toni�yeous<l�nbclmnpsat�'isc
�a*se
�nect['La7segal�i7yy�mehot�aobi-alis�'�esti�c}xlaimtid�e�e
hc�'a�ehiorsue=o_'novgi;oE'Uscdu�e�mn�'Ta>e	isaeit�eWiFoh'<l�nsw�x
�e�s�ttn�re�s:'alr
Wti<lss�tzae	itionsdsa�e	iti
�oi�ya�e�lf�impt}f�eoruin�tessur
�enctur-e�ieh'<l�nrstcliocal)lviAr'acdehijklmnoprstuvwzs�
:'gimnp}r<sHx�ei
ho�r�'aisnth'<lsnab�y:'k�oi:'}ataeiosbt�ile7yion�'iss7m7td�r�nnovkn
Dei)tg
�ren�i7s-aei"lorsuon['sVbm}sdnrd�'as
Fu�'lse}yc}enstth'�eisn�ove\lnesgton'�oiovn�'�asezi�'�lsrse7dess�'ae	ibi-lli�td�e�rscLeit�bn>eios	n�ovrlnpqateio:'i�d^nn�g�'aiouetrn	�ehimvypophys[e[idh'�asa7st7ao[uirLaus[eth'e<l�nsrstua�ct�ea
�derrse	idn�rstc�ti�ove�'�l�nsadeEopr�batical�lalsuh'sx�iocsera7et�iesondack:'�s��aeoucen�c9tctiv�a�eiunrn�e	i�msdnrstv"gicat�eion�o-vr�'syct�'i)lsvBa�e	ita	ei�mosbleynlvr'�a
�ain�saei�nr�'ian�sbbinJgaeio�n[snnrstx
i�scsl
�uterra�bt�eiForn�ov9eixa
e�ibl�tl
ey�'st�iy�'sib�opi�lstae	intc9d
eit�d�sn�gu�rnisth	nei�mn�gat�'�blnprefpscen�c�to'}othis�':etTaeisd�e�rn�ov�ea
e�i1nb�tyl_'re�seionaelh'i)l+sn'-e<ssr�gae�fnt�'}ae'itc�nite<l�n�rs
�lorbpae	is�tdnth'+sti�ove)le�lmatt�eWiOo�'eh�lnsrae�io�y�nTt�r�su�soo-dbrat�ein�ove�laeiostncte	ih'd�m�rsage	i�'dosu�snrt�'i�sustv�mt�'siaKo7l
�ereio�'d�rsos-m�'�ensmktusbst�'isal�'<lsaeiri�ya�el\l�d<l�n�rs�t	In�th'eios�dnsgXein-grialh'sstc}lsae	io�b9d�e'm�rsr�'�is	+yca5a�cteih'dsnolvUnao
rr�de	i�'dsglnoprst&e�iornotat�'�sfri}ce�aid:'l�niuanUsyor�n
Uaioael�'�i<ls�'UrsUt
-abdefglmnpsengi
Dncousti�cairtic	+sco
�ai	+s
�slo\gak7ein7gryo�mnam�ilastici\tloo}ti�ler�lammssi�taeogne�tdiJcdell
�e�iautic
�a*shlo�ao�n�anica7sl\lh
opteLl�aheatH'i[ccothuyl�ulapieutphiet
heic
�ai	+sasn['7s-mvalte	ihie�rologiyca%labcdefgilnortirck_'�cbrPiaeilorbFipiley�rscrth'Baeilsdr<lness�novn�'as�te�'�lessne[se�on�tadlnrxn"cav�iiate�ie�ima�e	isti�oveh'<l+sh'�e	iaiutus�'ect�eisn�o#ventc�trdea�e	isbniXlli<tc
saioy�'>e	iscgatei�'s�o�v�hn�than'is�s�'s&tce-rionad�ol�daou-mtoxi�n�atter�or�uemstention�ea�ihoug�h7aeio	scka�'n�'i�sszaei�m�ttiEo�d�sn�gbahelia�aner�'d�so�m:'c<stentriYcsm�t
:'ropica�ler-bcdegilmnstwcehistare'	�s	�sffec�tourma
DgchoLoas�tiurt�hrnFeare
'7s�sae�mc7kffec�tlo�wmag�eif�v�eaortk&e�s	o�'ah�u�lao
fv�cahste
'�soug�haordH'srd�l�'�s
:'aeghilnopru	aimnprstvn�semom�naglobulinae�emi7asperm{o7y<aaent{hh'	�s�'-osagarsi:'}z�ehe�'s	�'-
Ddilnrslo	o>l	nsAm�te�s�cdt�a
�e�'eis�d	Invat
Fuilreo'oumeratein�ovtina{iot�eMigeaeisonvdisze	idmse�ne	id'msat�ei�n�ogsateiMoh'd�lsn�o�vsiFo�ove�i<lnessE'�eeve	i�dsa�slnste�i<lr�sgh'ssteJrapt�eiFon�olvro-paeioi�awaeioth�ai�atstw:'stic�'is�sgnruai	+yJl�eszei7mt�drs�'�sn%gi7scPae�i8dCrsaphob�ei-a
hcti
�laeio:'mnrmati�sulocyt�oianh''isesad	i�m�rsbley�ne�tarch�'�sbcmpstusi
knhouemicalltura-e�il�i<lo�nprtainodu
�ccienctis�tou�r	-bcefnstuindustri7yLa[eiologi7yJc5shemica
�lcosyste�morest\romi�yce�s�ast�oerrorfi�na-eisrsdie0ncalient:elnra
'}ral^rt=iacemorutbsurahoso�am�saaed:'aibaane�j�yim=ariri_'dgklmnrsth'aef	is�'�n�'-d�rsdme-campe�moireJs�moilr-3dmemoi�rLu_'ret�eid7oe	i�msd�e	rh'e	ilsd}e�re�s�'hst�u�ulere�e�'-bcdefghilmpstwyctonoditione	idr<lo-a�iaeoru�g�n
fsd
ss
�ar-niuc�ks�h�rs'essraeft�'-mwcarrAiae�n�nom�a�ew'srio[empess
h'p�s�eidCrsyale�'<s
'�tailor
frel�do-w�iae
Dmighth'>e	isruaTpn�sead�'�ese<lnr�s�e�geiXostsfntehr�e�fne�'�rsaeoin�sl�'�e	iss�'sh�in'�bloa4n
�y�rchiptre�wio�pHwcd�kaeed'sreila4k�pigmhnt	+eaov�ye	+smr�a�ethiy�e�n�hl%e	Gich�'b�e0l2oar�xa4bhik�rsrsto�ah7a�iara�wmatovhmntvitboa
:'�sad
W'�ihaya�'-abcdefghiklmnoprstuvwyzahjmqszno�nail��iazezer�aier�aida�'�sau'eida�'�se�nhwari��fahil�iawahir�ibcdmnrsamsai�'n:'�sa_nte-rk�rd�ieod[a:'g[sord�o�'}ai�n:'�imh'�eis�ns7m�t�ekta�'n:'<sai�rh'aeirssu'cntsoi[s�ya�'n�'�sr
mod}e�iro'7sit�'ao�'<n�'�ngn�orensi'i�oeech�tmq<r�'�eisn�'�osuerq�uaehimo�uytra}zst�iemi�yceszale�i�t7d7sNe�ibniad�ed6oe�aho�tvol�'isc�s�'
�ast	Be?o=aegiorYubhtnrara�nyd�e�'am�nsw�ma�e�nom�a�eat�ensgs:'steYricd}n�hg�e�'acehijmnprsu6wxto�'[kou�scsh�ete�randr}a}obe
	i�rtej�ohpth'e	i<l�ns8dBr�sYrt:'Vi<s�'aeinder_r:aioa�'�n}i�a�sY'a.iorY'l�fnarszeds�'}ato�caeio�'elrcid�vbnrra�'isc�sal<li}b�'ia�'n�'Ysceni�db�ra
DtglnrenesHe:'quia_nn:'<sithm�'�isaembrta�'abcefgkmnopqsvyzsE'�e	iil�'�eisn�gJee �iy�'to�wcli�cn�'aei�osbgTti-ll�id�e�rn�so�rhnite Or	e	i�ms
eeont�'a�e	is�ne:'ment�'{thaticuo
�t}ah�opsthenoi�daOie�na�har�iaBeyail�nio�'hens�ze�i
�e	isi
hdl
�'-acehiosuy�cdeiknoprstl�e�ambrac	imnporta�n�-clus`inow�ii�g�ueourva"dwerfHurposound�e�timhmtny�'�aand�aockglmnrvyBaehior9dseni�y�eannri�yc�esal<l�n	it�'s}ae�i�ot�t�e!�iui
haan�d�'dta}eAlo�wgei�yn�'
�isc�e�sall�yiat�e
.i%o�'-swo�oa�yallo�waegstn�cz:'d�rs�'atFo�oerat�e�icgmprstvwx�ya�btha�e�iouCrrH'Jsern�e�ia
�fet�rahuthi7y7c
�son�e!�iri�naur�u�mrstope!�i�e	iesrae	is�bn�c�d�a�epti;cat�e"drrsve�ih'd�msiao�ulh'UsnH'�sh'	i
.s��aios:'{cgn�tGe
	a0dghti
oy	�n�hnr�s�dFeavaih'�hm�a�eiclto�aa}k�ef�hno�uitegznshio-r-df	�'aehi}ors�crttaeo�'bfnarset�'iscsz�a
�a	e	ia
e	itio
hnetoprot!�eumeric�a�scrca1tnste}ounei:'sstY'[sazol�a:'e?i<oas<dfordaot�ctiaon'�ssn�'�s-}pr
�aorn:'vil�loeme�r	aehimorss:'imrz�'tcTr�i�'psi#�eimRurace	insVbDtate	id�rateiFoh'd<lsn�ove�'<lns �eou	gmptetFe�rlanu�d�'gitnseth�duis-mt�'is
�c�dmn�'insnaiouumsilicaamai�u�'edu�mae�i�'rae}o�zolaiurt)l�sa�y^cs=ostaluheimelr�'abdefhimnoprstuwy
dlnrstuxze}outsgiam�'[as}ae �duens�e�iaei}uy�nttAollll�is	ne	im
�ee}iorruas}ur�'issh-micia�nro�s�te�ioh'�d'msn
�'
ai�sa�naeilrussadorr�'is�ahies�sr�'gjlsr�iaeyadegstvnce's'sexterrrou9sncte�'psUsu�iou
seox�u!3n'io�n�ualentc9tne	iosbeia�'�lslsantc�te�'mswaesnsno'�m�eionon�'�sr�i	+ychade	i�'drs�'~e	i
_'ah�llnrstitaorat�ein�o-v
:'adehios�bTa�e	i�m
qsd�rote}p	n�trrheoaH'e	aacild�se	id�mscnai�'n�s�'�ai�sszaeimtion'�s[d[sn[g:'�saeition$�'qs�d�sn�gFud:'i<s �alhyst�'�isrevil�lHaer$Ws
acd}egn|rstb�ileyn�rsab�i�l�esh�tipsa�o
W'�o�seoH's�'benz!�oths�'�i�yaeoutnro�ot�'nsi!�oatu�'cs�tLae's�mn�ieisitac�'�csh'siy�e�'	ioc�nttent&]eceknr�suxbaio�'es�ac>igt�sil�la�optl�ily�mhi�os#Wmi
�sza�e	ib$tlse�n�riycill-icil!�l
�'aehilosur�draestg�'sasneiotam�ibptioaKo�nlog�iy!�oheater�r�er%�a)�c	Ineiynr�sf%�ti	ryceBad�rsu
Dllt�ela7e�a�eit4sterQd.ratkclnrs�eds=e:'�iaeibl	�e�d�m�rsnlv�g�a�'gldal*ao�i'aotspsec!�t. acdeghiknostuvxyz
W'bcdeghklmnprst�uxae&�ioptist�'[s}llic�sh=ilorronis�mt%�iin�deon
W'!3trom{omrsi�acaUsll�yob�e%�ithestiao�'slogiy�e�sicsz�'�a�s
�ae	i�tdCrsae	�itionn's�dCr�slryph�'Jsam�'msa>e	itic�aeSii�eneg<lopycpJst�as:'!3tesia
hcgh'i�oss�u�y�c�es"z
�e	ihabstzaei�t�bn�td�'s�udrs�'s	n�s�eicH'�ai	st�iyae�i)�bsd�rssorph!�ifoi�aaehlest'iscUssth'iss�caoryra
�iodisi!5alac�xasmosichi�ycesal<lm"�tat Ozaios �ig!�mmos!�tei7ds�n	shoema�'sti+�s"zlm}eia�'n:'�si�yc�es"za�l
�e	i�tago,raehisterstFor�ae�i�yss�'�eor�v	�'aei�mps�wg)�edst!�int�eics�meorpl�e$�selnth'�e<l�nsl'�a	 aeiorJstyan4dlmnusia�'}n�aook
ft�a�dr�ss�t�e�oe	In	rrvra�'n
:'Ys%eeio�'*�ati}stw Ot�'�sanampoinimericegilmp�serntri7c�sa�c�tcioa�ueyn�'
�isn�e�io�yu�s)�dog3i7yaechTeda
:'�eaousLa7e}vcm�nrsuwd(�hot
�a�eioaacall�ym�npetFer	yhi�l)Pothestiao�'logiay&si�c�szae	�itio.=n�d�srysm�'Las	aeiklorsurs�tl�r�v
�'ta�efios�uis�h}acnqta}o�'9lsta}e^u�'�lTute�nognpstern�ea�mphMeOiyeurolas'�tperm�'{osen!�sOoeio�'dprswoils�'fsis�he�a�yo�rtac�nain�'i�ss_mszaeimtion'sdsn/Hg$�'saeition'/=s
ds

n/pg:'-mpsbfinsoer�renc/�hnrdia/�ni/�sor/�max/�oanlihiolei�'s�abneiY'�ae�i�y'sbsphe�rlrsa�'n
W'Ys�atursaiy�e<l	�nt�'r�som�'sil:sl�sRlart�i�lNei�non
7seyu-msdri
o�d�tablmos �tkc$&h*�aiaeio�u�dltverDst�'ci�nsul�a
hes�tza
�e	imtion�s0�a
�e	ieiFor9d)l�ns�cn�o'Go
h's-mth'
�is	3s��n�'is'4ceo�'eistko!�ntttropiycePa �a�hle	Gi�'�b�ds�t�'aeimou�'bl}mpel:'-�l�'e�i	+s�noul&Eir�'altxle	isdCrid�'[as�th'ae	ition�'�is'dstehvilat�eiFon�olversa�rar^ictuyat�eKiFoncXe	ia�eis#�nng<l0nailmnlE'i<ls+�sze	idst�a�i�ya
�eil�msurt�lUsei7do�e	iciatei#So�ds	no�n
dimnprtuvx�eiyc+�s"zn�ent�e	i'msailiKo�y�esce.ssymi'%o7ss�tz�ae�i7d�r7s�aNe�ihele*s�aegtc+�xtLai�cas2jmhos0ihe�ri{lula
�n�ti7a7c�'(aehiowlm�'}o'as/�snY'�ser�'Ta�e	ipshonke�'abehilorsw!�ceg�lnr�uonisz+;e	i�m%�te	idCrsanarivToc�etic�'tai!�r�'-(�abcd�ilnprGsvmort�eell�uehdentct�'lsyH'ampbLe
�ailuvia�no�pant�a)Hau�laer�tnu5lioorHe�l�sgl�oprad�eateJrosteri
�oer�teior�mr�'os!�zl
hll:npzogi�y�e,�s"zhi*�loa�naoc�xe0�insp�iocgilmenYettreni0�c
hdogi�y�ce�seotriy
�crphio
�csz7e	i-m7e	is�uHih'-abcdefghklmnopqrstuvwabcdefghilmnprstwbgimportioni�s"*ercra�ferican�is/�marth)Peritis�hahopita�lristi�anrstitutioJnru�pemocrams+�etablishm"eermi�na�u\aorvern�maveuro'ent	inftelctivammatxoellect�uoau!�ceirsonnHera\cacismt7selmiti/�csm�2�'avxeaenta{n
�aeste�rbilnortion.Iircra�fia"*sxi�eaiouclteri3�aliso�s
t�dNb�'aehi1�klosyntch �ollu2Ulorliner!3gist:'Yspat�e�ioeiorical�i�sm�nac�x*�tckwi-samngulan�t
htmpunism�t�'�seti""tvul�sclon�e
�ieiompvocprres~selo5pasubrrhoJeestablishmentariani7s%�sr	?tp$$tile+�paeorusc�ier�dmrenJto5Dmruman"*leetzndJgamentalistelorun�'isctiobalisz�a�anUea!Jva�n�'�neiyroh'hest)�aorica�lperten5$snoc-kalobo�rupreas<nW'g
a�i�s7yrit�haioclZtassFaaria�lclsro7�bitaris7m�tsi�ln�y
'oumviyan�i7secle#�acxh�'
ui~daehorsyrstatl*�s3*lic�l:'ti�ohre�i�yrsopnnesli~ron�'aslh'<lsdlvael�s'asnh'sh'luti'�oerYtur+�iych+�o4�ruaeirti�k�ya�en�'iss6lm�ein�o�'dsn�taerd�adstepositi1
oonant
co�rrovi�rhinukm	celoptuyioe�nrb+�umnpritisc%�s�stich'
�as�uavec�iasmod
i!�ahren
eop�hbmar�immetr�i�yaehoruynkrrorism7tey&_sti$rc.-rxi7c�nust�'9em7�so
�up�e il
�cein2e�ilorv3�auisectionis7m
hta+rer�'�esfinagasne�'12t�'}eiy}a2�nto�u:'m�'�osai�ulmisy�e=ae�rbnr�siTsnak�iail�'ls)e	Gii�eol�u+�ybhmoptw5�ooo)�r;nla)�chiing'ss
mahiyss$Ce
s�'auc'ss�
0slrt's�aGitk�a
�ieaonrnr_'abcehilnoprstuclrtehs�e'achico�lth�m	�nei�dh0�io6Ae�i�ysaurus
�'dl3mnrst�xil-k�eni"�nitJyotdic
�a�ii
hfurLa	Be3�aaesiorsiilia�o!�n*�rodis�ti
	a
acensW'�nri�y�e�s,�aes�'-c�h<l	�neo�nmboea	cglmpstjzarlyp,�sticPaypha�'�l�e�ailo2uti�ciona�i�'n<s�igei�yticH'
�a	s�a�esz	e	i�t	.e	i,=ihlrttyheg�m6lerc�xoteostii�cetma-�ta(�ilor�st�e,�ie�'2�bshi6lpla
�ioph�ei+�s+�zhe1fcg�mo�ms�ei�sze	ids

h'aeilor�sulnraloschia�'n�'�s�e�issosa�'�sa�gaeBitc�uhiksln�'	�e	�ilse	�i�d�talnrtlr1�s�'Na�e�is1�a1&e	isla�ntei�ove�'�lJsd�aeiscdCrto�mcn�x�ei
�u&�tta+iistz%eGi�e`iFe�ia�nh�naei	ryudts�'-bjstcpart�'i�yacakaeucaeaeh'�os1�ac*eqa�b�nt�iFoue�h'sd�iss�'d	isimrsntei�msd�e�rn-vatto�xtion�e	i'ms�ei�ntei<lne6so4vn�'�aaeiois
ae*id�e�rschnia�bt�eion�ove<l�nr�'syends�e	isi�b�o�vtice	i�'d&�ss�ei6na%Xbpvxchh'ae	ibi-ll�idCrsria�b�cteMiFod<l�ns
a	.e�iimateid<lsn�ove)lrtenan�ct	�s:'io�c�l�onp�')es�o�s-ski�i�eil<e�ei<l�n%�tle2�iuaei�'cflmnpr�stvultutrre{sun�ga)�ra�ulan8�e	ieio3Jlau�n�mSsbiiicnh'
�a	+sHt+idou�cu8scflntultur!�e}a�i�a}oa7�ti-�n:'abcdegijklmnoprstuvy�:'bcfghlmnprtuw�'eil�s}ysq�u�atclnsit�iy�'o�m-it�eeh Oln1+ioipdhobia$Waura se�aoun

'iayupr:'duit�eaco�ci�capneu!�i{o�iaho�':e<s$Waer�ecania�nak:'=a,�eiorutFera=og7l�mrte	i�'d�rsu
hriy<l�n�e
.iForuv�'ei�sva9Jt8lc5sulturLa7eiit�ar�')e�s#�ioa�tt�'a�eh	ilostdn%ei�a	naeu)l�nbm�'-abdefi<l�nop#wenem�iyeinabon
'7sacte-�ra3�lpstrono\mteryxcs
�a�n	e	i�m"�tgel�'�isioshop�'
rsa�reiuacon�'�rsoces�a�ec�kLah
me�i7y=adfgnrstiel�don
�iemiayhe�'is�y�etyp�a�eicHaio)�e7�obemnptva�l�'piscopa�clte"�d
qgelago�'[eserct�'osunicPa*s%ra�v�ae!Pio�'dCrs
�lsaMuri�eilklo�g�iaioun4�gc
�'ssphil�ei7y7a5s�raelorsubi<ln�'�c9jn9teth�a�ru�rosBHs�oh'anoq$�st�'lswild�'ao�'cs@�veousola�eoer�stgi7yJc
�suip/�haeouydargadnt�'i	�sntaei�'a�s$�nan:'Ys:'ns�t�'a^nJsu�t$�'iy�e�'a
e	ims�bent�'asti�o�v:'He-lrbargeiyJdHee�d�selh'ssophi�l	adeAgost�uz�'d�h�lnsnleY'�ai[sslmti<lntlSs�seitn�rsn�ga\iorc2�hcp7stra�c%�th;8ae�llian�'�shmeticsz�'aiUs9l�ae	Gi�d�se	Gi�d�son�aia�nu�'ahswnrsa6ntsoolangel$(srighlteitntY'te�tn}eg�tu�n�'-a)�bcefhiloJprs�ywrest�ldgmntai�'�lsl�lehnddXo?�aent�'asAirdTi:'}ou	?rh[oDadnCr �i
u8Dod�ens%a
qgia�uni�s�st#�ieos�ta�cd'�sgi*6nru�'ei�s.=y�d�r�a�e	�nr'-ei�sysplated�d�re	�n�d�s�'�etrontgaehouAcuY'}bem :'lan�d:'�llfphm}n-sua�'nsttic�i7shierapei	+yuestch'
�ai�ns.%t�nsae	i-ld(rsaenegg�iaehiobcinsyu<rk/gg�te	ihad�m�rs�'he�'�e	isarsra	+sg�nth'hae*i%osd�e�rey>�nthmi-acallJyav�g
aeid�rsnsm�tgnw�ya'ZnTt:'disse&�m	�'>egh	irs!+tr2aesao+oeiop'-�dhnswslic*kole'7dssaio�l�t-c�dpy2Uripn�e�gn�'�ishena0m
�'aefhilsuwyxer^xfmrsact's7�uis:'"pii�ya�eol�l	�slsv�a�eclero�se*�ni	au�lruaiol�gti
hcd�s�eHigpsr<!aloa�sd�'�ascop
he
�i7yr�'�icefl�noshluo�k8�e	ilajb<crte�iod<lnsess�'�er'sy�'r�s$aic�eial�i<lnleriye�s�'�mdacty�at�'�e%�i�rse�sisy�er�o �bg�mnu/�lde�lo�'a7ln�'i�ss�m ��:'abceghiklmopqstu&wym"pnph�'eostos�'ei�sae,�hiorr/�i�lnrtds�tae	isnc$tae�i�ydn�r�cio)�ntainTa�e	imsen6ltic�'
�aDisdi:Si_'asrt!�b
'ssibpTa�e	iti�olvpxtic
�aUsual?�i<l7sarTd�'abcefghiklm$Cortuymn
ettiurtonar�no�f:'�dnbrsvil�lor�dab.tat

'urs�t�ek!nagehnaz�i�aaeH�nr�')e	is}etyol�e�aa�o#rnr�gaorbani0Tpa
fdmn�'g�nt<o�eico'qsiol9atvin9e�iae	is;�ndrw�'s�n_'ae�neparlackia'4l	�'acehilsratg2i{ua
�macl)�nrt�'�e�isJu�lg�iDs6eaeoylE}tr�id
exia�'7l
�ns�t�cdris^kt�raLei�nteiFonon�'as>�ln�'gseni7a%�uuiMt�'aehinotuyldimsuyla�e	isVb�n�'e#�ssin�'�aslt�'eisd�rnve)l�n'	e	issmnrs�tvbl�a
eiy�en�'�m�wt�'e	isdr
't�eisnI�o
Nvs�a�e	i�mFoeProle'sJasbdgms	?zilat1�e�iu�i�onh'%Uae	i�mFosd�e�rila�bt�einovn�'issCttith'a�eisntct�'shi�pnvcnriabt!Hilei#SoE'dship7snovn�'a7�is�l�eit�i�yan�ttc
htte	i�msd�ramrge	idmsenaLeipbi-llzingE�lUsti�o-v1�ae>Bid�rsh'<l	�nssri �aolog[yaehioru�inr0Vtla�g^tr�'inoss�kid�'7�a/�esem2jna�'stich'asll�yg&�nrmati'4c�snru�'ish�e�i'm�' �ind�e�isaiodgklyVdal7i7s[uhan�')l	�s-dngen�c8qtbcl#gmnptilolB�oe�mhoemiJcst\r7smE�pao�bgFei�y�c�e�saout�'iscE�a?�smFei�y$rcehoytographMe�i7ysic�a�i*surf�_'�irtia�n�se<l�n�r�sn
�scdi=o�8�lmnluabiJcm�'-sseeke
�rmpetri�y$rc�eto�mt�e%�ichron6�i'%oy:'acehiklmo:�pr<stvw
�xychlrtvxamuaB�lanaticx2li7yu'$(ris-mt�'
�isi-a)clm�sipo7�raeilowbnascC�kasiuH�sinrs-m �ta}ei7�s�'e�ua�not�gmsa*�tcleros�tei?�s�o�ret�eic
�ai*s)s�la�ra�l�spwinsW'�oa.ensttaeiEa�stc�s�'�e'�ao�ss�spher	Beic
�a	+s
lmnp�'iscsz
�ais)�t�'a	e	i7mttionH'�s!�i7sN	a
e	ia�ei7yli<l7�s�tcnH'�i7y2�eioaou:'lventri
�cm�'7scpi�o�thi�oi)'yc�e	aeil�norusyci-rhk�'Tae	i�m�h'dCrs(ũ�'�a	e	isna\d1&e	i�msbpil
eymnspth'�e	isdtuae	isn�c�td�er�'�sio
Nvn�'aslzi)lat�eWi%ota�e	iMosPbDtc �lrt�'tase	iud�ein
�ai+�s�z^ern#e�maictI�a�ei%osn�o
NvbtutTaeih'drsnI�ogvion�'Lascn�ke	id�msio�o;�p:'bcdg�knrstvxerurgin8e:e�rktland�'er'sion�'e	isde�ra=eiruc�xi�o�t�'b1�eotpil)ey�'bglm}npsstvo�orogi�y&�c�e�setFer!�iyh8Diape�ih'7dsisua�l�'�eiosn�ovr�'isyLa�e�uTa:e�b:'eh?�imsu=a�rth'ssenta	e	isti�o�vbur}grs�'�eJ%is�yt
�'�a�ei<l�n�s�un7�e(hit�'�is	yaeiou�'9lnsgz �eloi}a}o�u	?lmycin:'cfg�lulaor7stthera\pe*�r�anaAcra�'�elsk�ucpsthuwi%�tltat�e�ixoic�ei�o:�ieXirnr:'it7e�ie�il<ln�r�sitTza�iola�eiosia�'n�s�aAcn�st	�eaipithecBi�un�eaehiourckhi7yc[eLai7y7c[ec�uolog i7yeontica�i
�lt�e�i%or�'eisdssh'�e�an$ustza�i�y�rti�vBa	.e	ih�is-mti>�ch'-bcdefghilmnprstwxsuggestibo>Yi	�naihn�'1
esographeL�i�yraehlorudt��'alys�t[i�tp;Wharnge�rLoa"vlmnrlimat-opletNe�ifigru2,rm�a�e�i7sreclt�e�i7satC�ei	In{oCxaio�mn�s/Heeitect�ei7s�n�oadsll7se�i7dr['7sact�'!�isc5�o�ciloLlt7st�e�iuorescenccrus�e�imaR�t�aeiryn&�e7yr�oa
�fph�'�eis7y7cnr�oay�rp&�ngmnnitio�nmuneit�i	+ytoxi7Zco&�ya*�gd�eaogkticPae�ra�ei�o9Ecn�oszC�e	Gi-me!i�d�sbrtile�i'sd) s) sphisCmi-vomi'%o�y�cei)"s>�laeiodiograph�e�i7s7ycgpsvover7yre" seat	Gi�spon
�derckshatua1�tahotuRva"*pm7�a�eereosco�pggesti-o�eoruyxi7c�nansfporme�rlant�a�e7sne�i7d�r7s�pionde�i7s�rr�uS\kid�aisRze�iGd7sm2Unn�'
�asergnJeiol-n-#itrop�h:'acdegiou	:'ilnrs7�tulh'a�e	isb�iN�la�onc"ht-agrtisHtarrdeismCtistH'i�uc-ei'<o�tUnh
�dsp:'bnrsurM�eg7st�u
e	i?ia&�mnrsttyge	i�'d<l�nsu�s�e	i^o
Dei�ovaeisb!!ld(rE�ljbn't�a[a
acdfglo:st�v�n�rteiFor7d�n�oiB�c�xeunlDPatura7e�il�i�i<l�naunoa
.nn}ric*saminoM�scginpuwa�dtion�'asl)la)�ddr�sa�e	is�bndupo28i�'dhsa@lea�di@dar!�cch�e	i
ae	is9drnculartYlaefh	ik�lnor'bcikmpr	sI yakM�as_'te	ins�eisn
hgut�uu@	nd�eh'-e	iswin"*ndke�r�'-d%�isinspirGiotwmriuck�e9�cull�n�eyVi7swar�d�'>eisn>�gk�leniy�e�'eilo�u�'dhl$msea�d�'�alnoslsa7e�rg0ilmogi	ycJ�a�'astiH:csz	Gi	Gi
�'ymm
�ee�'str4elno
t�'LaesmLa�eacelmruy�hltolla
hhkbour�n�'�rsesbur�ya�rY'shirC�erved�ai�cu$b	_'aeiortulnz�e}aia
:'�n*�eortrop�e�ib�itaijan�'-ii
�ydkAlm�zothymi0diw�euth�'�as"�rUva�e
_'elc�'�a<slrej�o�eite'
'-.abcdefhijklmnoprstuxy�d<s\afmil�movi�ecs.c7.c/�.�'abcdefghi/�jklmnoprstuvwxyzh'�e	i_lsth:'i�sbcei	osuyai']l�g$Wtoc�k�'ls�'�s�ieB�nd�r�ssh�k	�'-fghilsdfs[oa�citJsathMer�onsh\lness['on�'i<sa:'�n�ait�stFein	+gachikotu*�lr Odahsylraurea+aai�unal�'isa�'nh's<c'eslor�'hsoo6ldllai �o�u!Sf�'-abcd	efgh?ilmoprstuwydpstuo�oedall>e	ie�ao-back
�pcr�hro�weior
�anc�dhe�rsteit�rs'�ea�nsreak	i�ahlorain�tW=n8noth'ssmube�isssd
�raoLwsse�i7d7s
�aor#�oop�':^psilqelN�rl>e	isio�p7warm�mound�'e	isd�ra
fond�'e	is9d�raR�eiosh�'e	Gi�drs5fgn
�stht�e�i7e�kag�td�e7s�'1�gsa3orYkSKraelock�'	eY5isdal	�e	�ilsseipdnpga
DntCeRkr�eooHmcehilptartter'>e	isatchinag&ai5f�dg
�haipspFein�ghh'e	Gi�dsdZe	ia�iN�caiorb,giZrm�ybeir�'ssng7srstch'<�e	ipr�'1�psi�yeeoetD�t.�cke	i�'d�rsa�irlAkacNe�ik�e	is�p�saiorstd-<l�nscompatNi[�-h�'<�e	inRmdodsh'�mZan�'e�is	rerr�ai!�oacou�'�lid�a�elpstogi�yce�s�ahE�ao�br�ata�sKtheraE�p�m�rW�il7ao�u@�vh'-degilm�n�uwet	gempe<r�ei7y"�eshtnei�'�drs�'-�e	isbai"*tngarrnag�e	Giaynds�'aeioB�nn�'nt�outhdryTzek Ceia'se\�rf�ile*ih'd'm�rs�'a
eDhfghpsuwte8Dlaeiyge�'m�sS+aS+e
qd�re<lnE'rs:'t�e
qgwrinPkd�ai�pseiaoTslrair�st'm}iulylai:'n7�si7�aa-inea
h'ssklrt;zaTl�'Taei�mosd�er$�yfnw8fXi7r�u�mtdinCk�'sDqd�'�e	ilsayeHreilsuh'dhlrswous	e12i�'�is�yfiA�eho�png'Usav�ahees�h
W'�nabcdef(�ghiklmnorstuzckln
.tla�vlavaX�icie?`h	i�'I d�rs�toa'�ssalonoonutphni�yeds
efi<l�nrsswy�dr�s:'das}hacZ>eheni[vcXi�'ad�ef�rs�rull�n�eyoOuaU+r�'bnunJteg�su�p
E'a�ehi�ssyn�'i�s
�s
�z?aenGrsGtesgHs�'-abcefgi,�moprsybearin
�g
'dnr�s�'eo?�rs�'Fesnityne'atd�to�yoc
hkdrt�'i�s�n�'is�ciel�daio
fmrkluwenosJr7	s�aglA�totn�'�e!Pis�'K	eistn�egeU
r�aloay�io�oeiysdss�e�nhmo�oeo�n�n�'iosy�ene{sral
'7seoLlP�tne-yaonAaaga�'ms�'eisJa�dc	Inhia4ztcmso�rt8acnshistjatFerade�'7ds�aabgktioo�'sz"l�'abcdefgijknqstC�yz{clnu�i<la�'qsu
�i�srU+uid.ga(orssur9(aMeo$Wf�'abefilmopsuwy'�gnrann'psa''�so�xad�ru�'x]Wicentoot
7sdrA|sg'Js�'�rst7ieadekra(�s�tlneFeX9r�eass[e�mt)�a�oPDnai	gdt8h-	iblan_9deg<g�'f+sull�eyf'
�'ae	iklOosHiulo�r�wdr*6oa�edesh�'_isht	ne	i'ma�o�urma�s
�'abc	einrsVbssur9(ao�oa3�rn6lg-Looul�lpt�'�c�e	is:'to�weio	+sdIkkr�'>e	Gi`msnster'�ssck�'bsurJnuet�'	e	is�t;�haeai_um�'swekirh'�e�isaih'�sbta�b&�o
hp�stomet�is�cisz	e	imt�'
�as'ersgs:'�r!�yei
�d�r�s�'-abcdefghiklmnoqrstu�wyro<!obcd,b�ki�n
�'aei^�orsuwdrC�io7�staeio�y�la
�cs�t"zn�'is�s
�e	i�msus>scdlrtue	i�'d�rs�nwi[r�'�ls�'�e	i�rsho7s�t:Scent
'ss
aulYVrd�l7�ai=xrae:Shlolrb�dol�ello �nay�'cTsar[dd�oNe�'eiosd=e/�c	nlatMeMo\rto8w
-bdfhlnrA|sfoot>eackZ>eaoce�dot�eaen3dc�aeBHlyg3g�e�th'�e	i�lsaei�oyirn�'-e	iosbas4�edr�'s(r�'dHe�mpso�lCenG�aopps�e!ians�t
Fut?*rt�a�'e	ilsde)�rph'Fese�yy
�'eoy�'cso{rtwabei�y�hsi�n&�rd�nrBHme\lYnrs
['7s�t	�'aef	isSuybc�r*�u�a}yl8�ed�styY'tt
�'�s7�udYfltW�eaop.lrmar[vd �dmn�oqtuetFe*�r�'�aeis�y�st�'�cs�a�eue�'�l�nsrau�m9pcu"�eisim�e�'aeioybc?gmnt�ko*�uu"ptund`�iquilUtlMo�r'dlnr�st/�s�'	�e/fh	�i<�lse!�ah'�e\l�nsswZ@ot�'�ecen�oq(�sah?dell�o�'�rg�s�t�u�utn<xow�'-sin-furne2�s�'`mto�o�w�'ehlo�nrde�i7s7d�rh'	e	is:'MUeol Odion^Fimdee$Wt�y}ktn��k{cc�osuentr	e�ihnik-�olgM�i
-aehikoqrsturelie
�fl<l-�t�'bdlm�nprA|stao
l)nZa�r�'e�ioyss\l�n�a�aen'�tla]�tunYnW=th'efi}odrsulnls�gc}eflnp�s'
�a�iss�iyceatio(nJdJs�i	�'�aM�d�eiosc�sa�'7nssau{r�'>efgs3�usto�k�ee	isdt�'b"Ffm�rswa
lakMe�io7�rphili7s7acue�'�s�'eilow-stterrRe�'es�t`r*?n�sBi�'�ososo�'aeiord�'i�ls�y�e
�sz$}a�e	idrslno�l�gn�'>esg�ntolaan�'ace/fhilmorst}uw=av/�ih�'e	idlrso�rdm�r
os2�a
�'e�him�orstuwyh'd�rsttn#�g6\ao�bo>�mhebbur_5sampsetMe�rel�acpaphe�'sshe�knst}a-eo�wa�e\�n�nrach#�ima�e�naeilUsyDld�nr�'eis�ydrh'�s�en:�g�en^�e	�ge	i
�'-a#�bcdfgm�rsc�rxeh'�sruisTueorR�eoir�oro)�ueng	t&�hp�ai1ong	�s8DbdOehl}msx�'eorss;�lt�uilHIl&Cak�'eis�ydr�en�eg�ciStaria�'*�nd�l�'isye<l�nrstMt�'abe	ik.�lorswmH�r7�o�E�e1hrdW�rs
u
W'�i_ran�u�e8ne!�u
�iae�t7�aiollio<�nX�o_'�bcl�qsM�'_e_'a7cd
�go�m-rh�sxrixG�eo�sG�m�m
�l:'abcdefghijklmnoqrstuvwxyzY'cdgk�lmnrstuvho�'cefhil
�sw7yo3(mdJrsro�naE�ev�een7r5sYegandea�rn�'>e/f	isA]f�'�ei,�lswy�e�n$mork9ele	i�'d�rs�'	es�'-�e	iswid\�t
�'befioDjps?a�dr�'�sJyeaskt�e!nptro?6ua�l
h'-B�adFeilnsbai"t	�'e/f	ilmsd�nR�ei!!k�oOvl?ns�hi-kai^sk�i�lt�'ilsen�gi	+y�e�nE'abeilnrstble�yoxe�i�r7sn�rf?n%�ti	ryc�ea
�lDtem�sa�n�ii�c}x}zTy
�'cdfjmrstvxhamp'�sese_5r$Uoola�iaorch7a$Wnegaars�i�'eis�you;�sc�efC�ii�u	ryc*e�ao6ier�'�e	isM�to�pahkloq�tl-m6KumW�t�'eh	Gimo�stty�dn}rtha�m�'tta�ma8nne	isd(r8ooum<�e�iuerel:'ss�'-abcdefhijlmoprst�uwswit�tei�t\�ruzbzl?uhlambeD�rot4hNae�idr�'�so'c(lvkil	�e	�i<�l'mseo(lrdY'shi�reakdgmz5h1�ms+eack5e�aie�on1
eak[t#SeuXir�i�a.l�oaiog`?gdd�e�c
lgjohioptee�t�dt�ster�'ss�c�rrE�ein�gE�era�w�io@�r�'-bcfhklnprstveksaYteep%eingt�utereadh�'e?nwnrs:'oorbdt�h
�'abceiswyro OnurgF�aadSMt�en�egte�ao�oA�ieepS^e[1iizne	GiE'�dsebutbleilzg�'	e	is�'bimsyoCKh�ea�the/�btwinHga�ix�'>e	i�'hb�l=orsov�eooZ0te
qsaeiorull�e	is�lt'st�e�igru1�gseh�aliendkkd	aegiorsunst`wt
�stei�r5sa�eir�'-�eils�ymy-neighbo�u�eniynngH'n:'nsFe?inte�i�sk�tiu"mdge�id�rsi�mnl�ne�idG�m�rsaeiorl}nv�f�vm�einoru�'ai�sl.ls.=m�tr�'a)ei�sl7�i+ls+mt�',i�sa�lm�s�ondh'mHhslovdjMe	is�v
�eaid,gj?nrerbec^kD�i$Wuewel	�e	�i<�lse�sacefgilmostuvy�:'b(hrt}uyoru	�e	�i�sr�'<�e	�i�s�ue
dnhamguer�e	i�ms:'n(�a$�o�rirMma�cSua�den�v�aent�zd�frsva
eib>Yi�ln�gdtl!e	i�'-abefb�hi�moswyhro|pinL�g�'d:mton�nr
ii#orrd�'�soo�k�'d$(estvrist�'_QisH�i.uloTLwc�egnose�i�l�nerenc�t-e�i�ygi�e
W'�sw�'�e	iseothc0o�'abf	ic'�h�aouaTnrt	tl3�uopR�p7so$Wnpa7�ninrvw[tg�eisng�'�nsussia�n3�eha`z	�'-a�ei�os#w<fn�a}egnH�v�gs Ohede�r	i:5�1
a-Hbiou"r+ase	i9d'ms�'acdegijno�stuzcC�lerr
�ahu�'	ne	i�lmwar�korbb�ih'Taeis�ydm)�reg@ee(�gi[n}x�rd3sadfltvict�'ion�oe�'<saictiFor�o�veQ�sctei�'d'Znsa	n>l�r�'1&e	isutx:'
.tolen�c;�tahl�'ti<saHizgn thnte>dI(a�i<l�'jeaemeity$WtyVd}engM�tCnh'hlosswa�i[oTme*�yn�'0iol_okgm�'eiodnr�i-e*po�ncdi0aiazef�p7c7nwultfue\�a�s
�abegiklmnrstwyzer�'i<scca�fnst(vi^cH�f�'st�'ae&msm5onr�'fie$�l�'�a=otrko���abn'sbeon>eri�g
eosl:e2iwit�z
hirUeei:'�tnot�'e<s�rtzlz�'asug�nu�idaC�i�'�n<s	�'abehios
'dnMnr�ye�i12td�'iton�oe�a
's<eardPd�ctenTiulHiltee}aiyDqd�egman

'�'	il;0ierk-es�'}aehiorlsma=n�'ta�eisn'4g}el
.llucCcatm�nickY'-upon-twee5}dl�'l�s2ie>�leimopstetcmheid�rsng<l�ssZtde<�eU3gei�aV(rmt?u�')e	Giss1�taeok�ntt�eack	istac3lV�k:'e�itlmye�r
'-J7eiorsusksno	wellL�e	ianrl�r�i<l1�rsw
a�e	isei$Eow�e	insdk�d<�e	iellei�rbble�d
�'acehijorstw�'c2ikmst�ae	insa�xro�nh�al�'g�seI�u�'aeil=o?u:n:'+^ls �ds
nehSe"d�me`mk�koktaoy
a	e	isth
ae	is	+dW�e�yei`moy�'dr�'-�e	i'msoffen:'[sn�r`�g�'}eeien�ns�xlMaaeiv�ynt1�rlr�'	�e	�ilsei�d�rngF
s�aildgrJe:ey'seXBrsArisyahimJi"risker�ec�gltdere�i'msd�l�nK�cd`lh'e�ossq�r
eioquMaf
�iaoujrvsiat
'ainats�ynag,�ap�atatp�n^Q'-abcdefghjklmnoprstvwyzeglng�dender�ee5Wvlnstxyst$(ocn�u�'�e	isCe	Gihle�oi�a�'Y�bels�ul
�o�eico
�aist/�'bsglBlmpP�traphFei�yc�e�aUsaen\c�eiaYct!3rh3Joil�e�i7y:'aehko�suymreral'ib�'o�sYVnnpten'�a5�nh';Wh	+ser(�nomate'�deAzirh'	eisA�nlnouucnvS�aect)eexlstural�ip3�iclei�'d�rs7cn�s�'deisTajMei�l�y�e�nd}n�rs�tamnrgo7�nen4�sectional"�llnrefel�dn3Jai8oau�m�'^cssaZ9f�iouc�eJiO�c�lnr4�ccate�id)ls
-aefghm�norUswbu
eno<n"_ami�o�ye�slnyo�w
�eeoe�to�tei^l�dnr�s?�d"�e	In	s�aeo�ta�drte�d�ro�ut�'#�e	Gi�rs?iarmo�neoctio>�vCnu�'txeriNaei}o�'Nad�rsngg	i
abe"ghiklopDpbtyia�lera�le�rae�ioGylorr�i�y$�'[earzibag�anor�egualh''i<lsus\l�nubin�'
�'abefhiopsyb-l�ooarr�dd�r�t/iol�dookkaelnord'	+s�'s^`ug�'s:'ga=xtn�'afsW|tio)lw�'�eisy�enost�e'-cbOsgoabtaHn7ZcC�e�beiotalli)c�sl Onlena�rA�dlnrecula�rth'�lpJh�'adg(mnost5Hul'�rtuAo7e4�iuHr	h'�aei�l�oswr�'�is�y-Jine!!yg�'�lnsee	'\�aeh	i�l-o�'d�nsamY'to[na�e	i8Dcw<ac7�dmularh'�lsia�lle�y
h'abcdefghiklmnprstwcdrsvcotumulatNei�nous?*tiv7e�ihesi�vchaBes_9aailab!Hilai�nbliograp�hehilontri7c7�seZrimicsalE'<l�st�'�rsWddr`dcais�t4�memnnfopautyJif�ttv�rer�saeiy�t9&fgradaeibti-llit�iyE'1�i
�d�sev3*sersit�i	+yna!3mlntectrioQZc?*negrg+�e7yineer�elOi7sh#�aicLa�i	+seil8uedbackllav!�oaer�sGsnoe�i!3r�s�tcghemiJcst\rraph
�e�i7yapheL�i�y�e�raf�cz2�andficatMoorm+�aougi�yc�e�s,�asminescenc7taeogZ�r{stn�eehr�iemy#acd7sthanic5s�a7sic�a�iero�riycLa:Si	�slrecul�eph['�i7siy�oc"�a*shilorsaiyrma�ic7seutica7s�lsic
�a�i*sbc5[ras7ym�t�ilyYmio5[vspect�iMoiye�ds�'!iehagmct`�oiona7sl7�ied7Ziythmh'�is

'aceioptuy5�fienct
�ecnurit�yz�sgmnatuit�lHcli[dher�e�iartisticLa#�isatigraphMe�i7yr5�gnthes�ti7s<zaehiruTgycrh{�tnologi�y&�ce�sr7�oera�pc-ntansfor7Zmr7Zbaerfa1�paehlortistansQ�h�e�id�'asli%�s\t`ha�alar�iacdegikmtortyc&�ih�'ei�dnsn�p�'-bc	e�hilstwyblraineJdik�arain�'�esaOtgen�'d!isif-kmne	i�'ds�geq{h	o%ve^yab�laotchFe	GiAcoinGgftringen�ct�tia}�y`�n
'enhsea�dto$(cEaingQhindud�uh�'-#de	i�mprswrat#Wed�rl#�aakite�teZ@oik�g}zacehm�oqstyaouy�'�nt`�tit�'s7ycrxt�e�iFos7�iual�'�i<lskoeTkp�'Vd)e	Gi
rsgaXtaur*6clkt�hu-e}�iatuao�r�bltxQulla�b�'bce�imnorstuwl�lho�'�eiy�e<ll�n�ih'�rsap'R�pse�tna�ls�e-etrea�meioynrh'-ce	il`mnrssweetln	�ye�s0rdr�siy};n�'�es77uo77oh'weet
h'\lYnss�e�nrrent�
_'mein�n"Niaolrevnc�tialtuac�'1�kseexhkea
�r�'aC�e�z_5nrre<l	�nr�ieork^n$(r:'
adeioFtuvybcdeghi�kmnrstvxyzh'bse	idr'�e	iwmskh'-abcefghijlm�n?opstwhear<tdM�lmd�eoS^oa�aeiouj�arriyeds����'ing�rd�'e	is�dJrZad�y�i�c�r
�tZraurran8td>$nr�s�ae/i�lov�e$Wouard�'>e	i�lsea�dlzt	�n	saKvceiyagud'Y�gsItsa,oi�nl�lol�ohmntirto'sith�'	isa4k�ohoorn�'esph'pssZ>e�iae}YopTt�ld8�e	Gier�'nsw77uo77rnau�wgssu9�e�')e	Gi	+s�nr�'i�sXttae	i�mbl�e�'adG[lrswbl�eorthiy�ncdkt�'}ahm�ae	io'drsa�ta�n�ei<l�nsh�e	i�mE'e	i<l�nsdnr�stsh'�i�'%_eu�is�oyCAreinnUige�ysept�hem
eJ%iKo�y�'	eu�iosucdfm�y!Ue�fy�c*l�ahssW=t}zn�c"�terats�klpaAcnloi7Zt>�nv'e*io�n
ademnpst�vwckrthh'*e	i�e<l�ns>eisy�e<ln�eg-e<yh'�eryisdl�pFeisngE'-	�shea�r�iV*cdhE'	e	iseimtp'hae{rse?idscshgmnpstvzh�'t�'e	isdZ0rep�'is��sdg�ikBHmth'efi<l�nsd�r�sol	�dng�'<lUsi�d
-i7y7biXeE'e	i
qsdr�'�e!iszh'�e�'Y�psvZ@esth'eF�f7d�ser�'�e�isyhze<l�n	rrs�ot�'�e	ikri?e?6e\zabcefgkmnostuwte	iswd8ra�'b/fs�ei7yiXen�'thks�'ab	ehilsp<w7yd�gv'e	iA*ouste	�i)�r�e�oenTsr5s2eg�ihZrimfor8ne}�l
'gor�syJaei7y�dcriXensp`hole�!i�'isUyshYnbqer�guis�td�'ei�ns�'}lrA|s}e	sdmp�'-bct�ehhilmrstwybcY�hlmp<rwrotSMhurd"leuttin�gs	�ton�eoiso"nor(d	taW|turd�l`�e<lnTs�ege�i3u�stt
�ein0�gobi4loo�thptue�od�'*dsol�rX�taori:n7�c�nH�eckFeryihirstiy�e<lne�so!�orm7t-	immindedn^�einded�n�'be]�fiserg
H'd)�rngdM�ta^lbur�yh'e!i�s�d�rsom�'�e	isy�'csth�'�eiy�en	e	ios8�e��i7yh'-bFefghilnopst]�uyzbdoJ�uy-blowriy�e�e	i�u�ai�lsh'[e�uaow�r2�lenrstg�'-�uamkp�-u�t3>iipyers�to[�ri'yers�*t-bcdefi�mnrsra�yberh'J7e	isyher�'7sgeiUd�orUs�'UsnUg�'-bdfgijlnp
qrstybc��egplY�aoo<dol�lre	eencilaeiouc�k�a
l1hrb�lsrnEhot*?n8Dt\�sie7n.�sl�df�irlu_�ans!�g�haecke'�tansh'iy
�n�e�ooriE-n�i:;ity�'ock?ih'hosro
�anoguth
:'vxeH'fE'�3e	i<l�nsnsg
hdkter�'b	eisuss�'hen�ge�Mtei<l�nsdr�snTs�'r�brst#�eiy�enhe8gJ7e	ishth'*e*ierh'	e*i�osy�dt�h_'elw
�xb-ds�cM�'�sfzl'�'abcdefghijklmnoprstuvwxy�z�'drsticea�'�'ds�'	egi_�rswa�mng�'-h�shou}�sou}�sal�k:'th'	eF�fisn�g�'-c	e�hil�msyhoo
�klu�bng�'Usoa8dwjaa�Er
�'-bcostwsleigh�'ei	�s	�d�rn	�g�ei?ly:'w�enTs�t�'
qgs�'soxeg�r�ali�
n�'ledih'dsse�isd�rgh
'e�i�s7d�rai�lhi�ackaJeiccie�'�sh')e	iswurs�'adeghijklsycC�liohuin.{gd�gse�isd�rssidshaMrattv+�a�celA�n
qds�eyeiaYn�'-bgiswbcp��luild%e	ihoY�em�lie"rouardMe�i7silds|e��i\un	ghu�,e6\irfTue�i",eork�'TuesD�io�rttia:'}n>�hfiso:�n�'abegilos�uyn$Wrt�'Us�a:Sey�'�e	i�msa�e��ilybiq�rC�l�e*i�e�anstJg8�i}a�סma'�eanermia�'n�'i�ssmh'�s�'�i}�glnsh'eisdr�'mpsakl0�ang) s7gZ9k�'teteBUrang^lTeV�km���adegilost�uw�'�cs�ef<l�nace	i�'ds�'�rs=ye�rdv(ea-cir�'hess�'�Naioswynx-mgh'_�e�ic�nkisg�n]Yowoo�dgmnnae�'is�eet%e!�rbMehteiovi�kstmt�'i[s[ce'lie�r	�'	-�eh	i�osz��omajn\�ob�'aeipslrsty0zd�ei�mosFent�'9e%�isd�r-"0ongH'sroofhif�eFta	bFcdexfghiknos�uy�z lnpv �f(�b�zartteis�m�tent�u
�')�a�ehi��m]�s�woldn�g	�'dhhlm�rsyea:dA�e5eha`�ka�r�'�e	i�oskaoemffeTr�i�ef��nta�c}a�oei) s) d�rn) g�'eiytrtv�'>eh	ise�eigletp'r�sbrid�g:'b�oah	�ig�ah'bd�eghm�iklmnrstz�'�eJ%iosyo`�k�'-trY�a"leiHryma'�en�'eh'd�ims��ao	�o
�'abceiklmpsw-
bhC+oindx�ei�2n�adnrdh')e	Gis�'s�e?ns
DheepFe��i�a�e�ioua�e��ok7nrFe�9ik�'J7e!ik�lsla��teht�yllFe�ieom�laol8l4rork�mei
W'a(�rn:'sVegh'beiUis7yo7sxdr'a�sn�g�'lzadteis �iocg_kgle�ih'sd�rss��e�'ios�tsh<lness�'�eowrBHbt�'e	isdr�'is%�s�'Nabe)�hilmps�yl_9oXad�e}sen'saeior�cY'g�sh'gsei
qd�rn?�gckMe�iaYdZ�arilntra[�pv'e��iyh'�ps
adegi}klnors}uzg�nt�xfze'dse=oaltnr=�ul�o�'�eryilsa�t)�a�ih'adh�rsl}sYi�oor�l�'�eil<s�ucdntseH'7sg'<l�n	�saPDu:'-ehafga	ir�eEatoo�lbed�nsuud��uilifcgh�'�bsoC�lwha	e?iscth��ao�iMcteh<knopst�uw�'eia�'-nherzegovinRaY'[smn�'>eisy�e	n'�ishoor
u&Cr�'eiyd�rsh�e<ll�nFson�'i<sa*�n��e
acfhnostuni�yces�zaUsl<ls7e�i�thh'e	idc�rs�lk
aewyrh'8�a�e	is�oeM�le02tx
vxewc!ailo7yc[eel��le	i�'-bdn�rsf��gned>e�or/ueop:c�cm�'-�e	ilmsd=uwelf�less)l�nGolin�s'um	s
H'
cBdfgilnqrstvz-mhl�X�fan)tahinville'[va�'stlla�obaiss[vecdeiootter�'c)e	Gisom�bss\v}zg.ncdtneiy�e<ln=�e�gh'1hae	i�lsndn�rBUei�y[Veff*?ubgknr�s�a1�o Okeois�'ti�eeY'moI�u!!el�tropheT.d�'iosqu}�enni��e��
Dr�iouk�iai#�v�r"nh'-defi,�klmrswAylstweg<gsa�w
Diion��dJwh�ileri
�sf�zdlnr[s�'ls:'>einbg�'fel�'2�b>e	i
os�yegn:'7s�'efnfisdg�rh'^�gssn�e?�ga�en�'a�l%veq{hptr�'GsJrri�un�gow�')e	Gi�s
�'-b7�cefirSlrtwyosffR�ihilDfA*odsn�rs/ib�u�en�eg�'Us[	oo�p�'-cdeff�hi�lsuracei�crnGzg�eot�t�'a�tlmrrA�ij
sceounh�bp broo�k
_'
�dhi�mosaih�r�le
'aeiM-mno�ruyzs��'k	bcdeghik�lmn qst�uvwyzehikt�'d*?lrs�'�ossiyao%�upfasod�a7scP�tep�hngH'�l	�sein-nt�'�eu�iss!�he'�l�'esalt
�'abd}ef�il`msywZ0lu:r)e	Gi}�o�o:e}yhtdare�e:'car�d�'msarh'gs�'ae�'id�roETcd�rs}ema�s�'gnp<sup�'�ai<ss �muI0tdln"sh'�ea�isw}Yole�'<s�'-bc�eilpstwydaemaa>ao�xaehl�lild�'k�r�e\l��nej�so2Ywt�eorm�'�eisn�rgeras@Pe	Gi�eap>osr�vh	ne�-ie	i�'d��msY'cabDpl%eiy�e�xn
�'cd[knsttxh�'�eirSlH�van7e7lg�'Us�'eiosttyd�inr�r:'buD�r$�'em�nV*s:'dso'tn�'	iwinbe)e	Gi�o8oh�tol�mhis�e<l�nrst,ml�'-2�aefiynec�kdrs}�iou��ne<l��nrs�et�lpi�'istwsla �v�al�ily}e�iu�rae	i��oI�ud	+oh'd<l�nrs�i�y
qtl�ln�'j,isy�'�e	isei�ozdn�rs�e	i<l�n+sFeln�'Mkia��vacdeimnstuvwxyzcdk��msth�'>]e	i�'-abc�efd�h	i)�lstwand-bul�tlbb�aaos*?kw�aQ�xrum
hbxorJut�iin��n�'-abdFefo�in?opstuwbf
�iouul[af7f(�pb�g#w
fl�eaonce�i7d�r�warst�'�e	iso�nV�eoint')e	Gisp4ehirougmp(�at
�'�b�efO�hu�ipsGgweded	i�siYVlturoke�'�rsm
�mh	�'a
eii�lsty!Eblyszedr7s�se�isdrss�sak�ichkiaste�d8i}tenrid^gcdzh�'-^oelOiloa�d�'Fe�-is�ae~miy�'dswa�ygthtv�min,�gestn�rstrahl�vudnta�'tn�aOe�'H�f=owoH�oek%sttnh:5a:'hC�otk�r�'8ogX$hei�'st�'�e�is1�t1ha�t�'aeu�ipsrr^`idr�'�is�yu�bMtv�ik%dhne�vabcdeglmnoqstxnr�'}an'XByyJaeih'drs�'�is�y�en-tekoa�-br!�a�-br�a�'\}-��b�eilmsf�wyHenayFe��iaso�naD�rla�gaeglplh'+sve*�i�'gs�Hw_�rm!�aeo�imn�'TadE�hnj�pTr
ostw�dort�h�'ot�w:'}eaf�o-mtor�te	i�'dswa<�yj�o
�'fr<sh'��c�^e?i<l�ns�'ls�y�'a&Eghisdn%ei�oFe	nd)�t�'asg6leSaotu.s:'��-e	Gi<l�n�oswnr�sh'a��t��dKitl
i}oano\cth'i<lns=xn�'-fhl1�msfuHl�utodegiknyailb��es�ie�'ds�'d�rsFe	ish�en�eg�'Ovlmsanship �iY�cqubkt�ae	i<l�n+ssdr�s�tloe��iy�'2�bdsl�'bs
:'[.ak�ci�nMmo�st�innitac:'�acsi��sh:'elnro'qs�ye�s
W'ajel�nn'�itye	Gih'�d)l�n�rs�tv�ik%th'abcegiklmnostuwxs�zcdhh'e	idrs'Js
h'-abceflm�nswbmr��uinded�l�n��xa�,is�nalsth'Feisn
�got-hnr�s1&eisn>�goAcreoya7fved7som�'�esin^�dhiw*?ed8�e!iZoaepTt_y_rldingnag:'ieachkol-iseu�'viVlderbo$�nHxa�uehlae	i}wnr-h<lns<dhear��teartedYle28s�'�a�e	isglJaiyS�e�'afid`lsw�to}�r6�d;ngro�vhhicsttxzh'ho�sio�u'�aotl�a�eitii�c�sd
�gpsilat�iMoneumo�ncpop�e7y�a�'bsu(�soTneo:'saur�'s�ueu�i7y�'
qdrs['7s.�cdkmw�'	eims	+y�eYlnegss	�'h'<la	�'eh	ils�tw:'dH�sav8eaey��ntd�'s:n:'Bhi�e�'e	isdh�7i]�te^`e[.eh�'es�lr�'->ef�h	ilsin-l��aiy�n��-ghlh�at�oa�h�e�'abnsvxreate	isn�r�'efi)ln?os#tw�'d'�lr�siel/�d�aen	s�'�rs�tgbG'Us�e �oh�tv ii�nlo$�oyJane	ibtour�no�w	bceimnst�xeclkek�'llosi'&ngeX$hYl�nstnei��ne}]isGdm*�eie7	s�ceh��ntost�yilt�'C�a�'leso�ch's�til^dwi*6c�')e	Gi�shqs
�'-��b	nefiA�lostwyot=ue�furk_9e��i�enf�ftro2�kaLiol_o7�rue<l�nr�seb�l:'ae?�hi&Euli<ls�tz0�a
�e	i7m7ta�e	itio�n�'�d�rs	Inj
sa�c.dnoknY'dIkn��wLlnpz
:'�i7yhy:Soezin�Hs_'�a�cHd
�ekUoyb
�cou�wu�r:'�.bcdefgijklmnorstxyzh'b6eossle��i	+y�'dgs�u�'�e!�nacehkot}ziai(e7lnee�rz�npha��laewnr�a(�enwalldaal�'-abehilmnrstwypas"sr��o:Seo��adrt�y�'�eDhf	iswh8eo�ru!�nngham�'k�saeu�inrJd�'d�rstyinsterfuller�eer$�'am�'>e	is,a�chkoin�'�nsehoeo�roth�'�eheabtal�lu�b9Al
�'adeg7o��sw��pY'�ehily_ais_m�t[Ve�6n�e�'	Gir��ieidrsti7�g�'a�e	is�eneoiMs�olrn[a�ofj�o
�'-ae	ilos}y�tlo�'e�isdsdp�rt�'eisdrH'Jsn<�gehe?�ao7sn�'eIis�r	�'��-abglszbt�o��tBa7�e�aei�ydr�'�e	is�yenrA|se	i�'d�r[~si0l*6cldth'-yJaFe?is]�uJ�u-'�i	i=uumb �uhorar}a=iw]�sEi
abfgiklrrltp6whwdellzaayo's�c�')e	Gil�osueie�na8�eiy�nr:'i:'�a�e,nmabirexiah'�sa�c�'�ehl�isyea>�d'-*adefhiop�rswys-eyhea}	dogU3z�'�wgsdrJnrt�'-�eipsproof}e�iJsn�'�e7g	isroof�e!i) sirg[�nht�'Fe�9is?oeBhiv�oad�'esd"�l�nen�os
qd�rs�th"�l�nc�o)�k�eehy5jei5ot'st��sei��dr's��sn��ghiaicxkHpn�nk�'bu�io�y.�u	�'-bfhmpsbsailif�fFualokgeiH';�bdrs�ong)lUs
�a7y
l��uol�ceeu�i
qd�r�s
h'e�hl�ijkpstyd�rP�i�'Edbcdfgik�nstW�uyho�'��e��iy�'Z>e�imssb|eaej'�l�ybn\�reCr�osbta$(na:galAui[>g	�'aeDjhil_#os*lroto!�xd'�en(rdo�rHenne*in�o:'xy	�'e�h	i �m!�os
Fudr�'>e	is�eh'�e?isy�'a�e	is�'bMcdegiklmn�pqrstuw	ryael
�o��s*6n�jrO0e	ie7�opDkn�'�e	iso
Bmau�'csxra�ct�'is
�cszN	a
�e	ia�e	itioAn�'ehlosu+o)�rss�'e�'Fesa�e	ir�'�C-ips�y�eBxo�zroof)e	GiUsm�y�andi\�ya�en:'�s
a	neY'ka��e"phi}sna
'�'�aeisydl�i�rs7yque	i�'d)l�rs�en�ega�t�mtaI�eh'aVdekhid`los@�tb.glybe�'d�r$Wty�en��sgH'�lsouse'+s+s7s�t:'=ika	�'ae/fioswAad�nn}s�tgjuo!ch'ssul�wg�ha=*it�'ex�rh'-e	is�y�'e�onsha�wndi�'an:'<soVo�'bMc�eghiklmsty@wyMa[�i��o0�yi�r
�'befilm��nowy�udlrs�'	�ef	�ilsueiF7dngF7sird�e�no's'aae�n(�s5a�nXBohack	eu�is`�e<lneagss�'�erSl�mp�weo-r�p�'eisssd8rn�'>egsoaHd�a	eh'e.{l�'a	eilsyr�den:�r�se*i:tb	i=�nwozGr	J.acelstyn-eLohh'ers�'K	eJ%i�ls�y
'�ner�')e	Gis	�'-eiorssyen
�dh'drss�'bc1&ef�\im�nsw	+yf�auYrruea�mailen/	sH�lger�e�siye�ds�'iil�kcot~7coarheA�np:cn�'�nb�eh	iswo'�l�ovef�o�elr�a�iott�me�oh=uh'-bFem�ios��b_=a6\uz�'Za*e	ik�%w�yi�l�sh'-beglnoprstwzbelplZtole
�c��aine�iJdU
rrod�ul:Io�'-lrs��b��loruss/�ilmso
fnai�wne	Gi�'�d�r�sa�g��mbalr�sta
�yod$utd8e�nosao!cn�'i�csmya�hsti�u�na��ne�'5�cs#aZoantinue:'Ys�m�ctlh
�e"Ni
:'.abcdefghijklmnoprstuvwyz�ellegan�sit�.

:'abcdefghijklmnprstuvwxytiH�n�'abdeilorsl�n*?r�'als�'se	id�ra�eiy"gl�ais7m�the!n�'rivr'nss$Wen�'e	isdt�'m�rsf�wakFein��ge	i�'cdgsasth'!isH�rcotthoP'ndl4stlt��ua�ei}lm\�u Ono*?l)�t	�achkM-motuiat��oae	i�c�'Nacd�i0l>�p�rsr�t�xlne	i�yphoni�o�y�eJ�si{um4�i
'abcdeU3gir�m�rsusv3xter�'osus�lYnu=hra
�miye�cesS�'ds�h'	intct�z8�e	Gi�'sr$tl}zlac'�sscei�ucdnrsai%�ultHa�i
.morhabdit�iphill7�ya%�iI�uro'%	ei<s1
aefC�t�
h'�stei�re�Fr�essinaet�e��e~mi�no�'dCrsI y�uok�o�iacw�gmnprst
up,h�oag�nW'o<szoW�iirin"phg	n7�o
o	shi�lne�s�PfoMmule	id'm��rse	i�'dswap:l
:'acdefghiklmotuvyb�imt.�ao�oair
hi\�nt�iKo�yh"peahioulrka0leous)ln�afmntt
Fuei	ry�rc�e�a?i�a�e	imM-pltaiubt>YilI eeiFo"�ds�n�o-vs�'[et7gaDPaer��wrtp'�a=oo|ntbdnoncid��aer�'>e	i�s�'-sleni�gk�iar�yo�u:'bcfgps=a)�era�ete�iFod!�rs�oorni�a
Fu:�uehr
h'Z>e�i�s�'asthenicas�'	�e	�i�s
E'-abeios�ubg=ua�ocX�kir+�l�'Vbg&htmo
os&hacg�kd�e�r}eg?noApsraphFei�yce�s,�pth�oenic	�s�p	3suwse!i<l�nd�s�e�n	�sh'a�^e*i<l�nsy2tortuci'4c�e;�fmet%eO�rF;yn\�dech'm�eni�y
Ua�e�oaeiry:'d$Wr
qsn�'gis �mt�'i�s�ccp�xe��l!�s�s�'abcmdeA]fgivmop�rs:Iul�wcrhade��reiorr�'�e	i�ls�a�udiaW'(Cni �acdg�)eord@Pelmr�or	�'-&�bh�los�hair'ptardalUOitp'Ysberttp'<sao�'-e�mpswrea�der�so�mr�ktnono']xi<siLrkln�oDjsnic�kl:atme[oemou�nc�iwVeeflage	i�'drs�'-abefghi�os�uyfs�i�iingl�nb�eiou!Sf�llogc�ei?�yA�c�e�sla7stello'sa�tpor�tdr�'a�dsiarrouw�nor�e)lmnetc�e�a�ey�g_iha�f'-abcdefiknoA|stuvy�st5&'opeSMnadlprsvn�'it �etaian:'i�ss<m�'eiY�ls�t
�s
�z�e�
���di�ye
os�tera�lerr:a�ae=ulruUbD�e	�ilsaD�e	�iPbte	i�d�'
o�saeiloyctmela�obsr
ha
Fu^cd�eaei<l�n�ct�emu:'�r�ae	i�'bdhlnpr��s]�wexQro��ligtht�'9e�s
�uow��ed�'�sm.=rubl�7�+r�'-f	itstri<plosw�s#eu�'bd�rsl�riel�dns
hegter�rer�'�e	i�osaeiouybin�so!�i7ldlr�slon	+i'�is�yb�e<ll�nsal�'iss
�z
�a
�e	i-mttk�tcnt[k	�'eabe	i\rsalr�ldMelaiszafEe�itioX�n�Vae�iJdJs	k�belglnoprw�'d!Pis0�a�'ei�rs�scsf�zali<lsszaC�e	Git��iaC�e	Git��i
�a
�e	i�td�l)%iUOu)'yousE�l��i	�'aeiors}ubln�tirl>�eia�gO�noup�ekeP�rd�er�'b�e	isur�iy�'8Dclne��v�'n)�rs�'�ae	i�msd#�se*�l-�tas�'�|be�i��ssd�rson�'�is�'ae}hiEloprstubcril	3laey$�n�n�rsi�otaiFo�ynteilv�e�vison�'�e�is�'d}klrstl�!a}zi�'�e	is��t�k:'io=wlstaln�oari	+y�eti�y�eJstraynaou'l[nDt�'i<lssz
�a+;e	i-m%�t
�a2�e	il�'?i�sla�u7r�t�'ns#�t�'tmesaeu�iudocia�ndllac`�ccci�n}aiy:'c�eBUior��nla��titu9Jc�d"z�a�olaeiJer}	tHe�'�ds!nC�sSpz[.a�ciFouia�novE}n�ua�e�it�eiFon�n�ore	ih'd�rsu�ac�lthin
:'�sH'[o�'-abcdefg]�hijklmnoprstuvyjsackeisdBr(tn0�ghia"rcknes5
s
:'bc�fmp�tv#winier7e7ia�l7�sbeo"pll�'iss��z�a
�e	ia�c�xa
egn��g�'enste	idr�'7s1haera|iaiossu%�m�d�n-hlnrx�yloa>�dycd
�i�o�'-adisb�y1np74e� uaSMpct�e8�eWi"�acfszero�u
�a+;e	i
�a2�e	iundu\�myla�inrclu%elaeitS^ot%o��s��zahios�es�'�eognemi�snog�men�'eis��sch'�issg@a�'-abehiors�5wciarr"yndAemo�mHnoard,n�rolder
saeq:fgno�cpessan'ss:'a�gl�'i<ls@�t	
g?�ilmprtvra�mph�'Tues7yogi�yJc�e�seyg�!aopatK�hulmonaespi5.rhora�casc��uoz@ohar�Xp
h'defg�l�rstwtynr�'�eisns�m�trV�u-ei��vs�'	nei,n>�v�'�.aso�rc	ae�7i�olli(�gbc�elnos
:'boYs(he[vuatur8�einsz8�a�t8�a	la	+g'Jssl�uebsorack��eissn�ge�giUsUd	�'�aeiosty^nto�nns�'[egH'lW
e:'a�sltwd�'	Gis]Kb�o�o:'�Elaeirt�thltn}al}oc,�nha�eae��fioytgsPl��m}prG�t�vgl�tyi7�eC�il'�ise0tvUd+saol�'ess�qra�e�oA�st:'0ih'	Gi�blmtu	�'-eilsysin"g:'�d�rn*�ategio�ian:'[sD�e	�itmnh'Z>e�isein-e!�o�dJss
ae	ih'd�l�rs	�'ae�hios�uc"�ltci�ohiand�lnrttae�r_%rr�'�eu�is�'b�ea�isag�'gs�e!i',no�r	�l�'a
eioygntee	nzhoM�oaceln�oge�'swa8yk'ferg�u:'d)�rs�tlgk%tl�nttlft�'V�isyh'-�ac	ioac	o�l�o?6o�uS\vio�ock��n�')�aefhilorsw'd�lrs�'s�tian:'Di�s\uaog�ein(hi�rs%elnag�e~�iE�ogmnopraphFei�ycea5]n�')e	Ginsagn�'�e!Pishil�i7yi�dhreel�'e!is�dCrigh�tyse?idnrs�'Aris�y$�'ao�s!�tfpabcehikpstub�ln�alan�c�dov_aa�had�re	i�'d
os
�'-bdh�il�mswtyhlsardeZjno�aens5"ioo8kardeZ9noa�dork�'Fes
�'-beihlmpboo�kaoc0�k�
ods�w��en>�e
�onTo�g�o�'e	Gis�d�tag@e�iUraeiodn�t�vdr��a�lrto?l�ajqdTelno�ui!�op��ec1fwg	k
�'-aeilorsi��o	rn#wed�t�'lrstlat�e1�i�'s�t�hgl?n
Ua�ile	i�'d$�fmrsb�aeaghW'��f)�rai:ot�e�iob�eailrh'<l�n�s�ti"pnst�'i�rsc�a�'-abcefghijklmnostucvi�wa
cbsnd-d	oittTue�ibc*�dflmprstwoli7c�s�t�zhlores[e[i�tysm�'�a;�isbma?�laeio�puy6np�s9`t�ng��n�'D�e	�i�sue	�in'�d�r�s"pfst�ze+�i�td7rsich'�aaC�rluec\x�l??a��rtroph�ei
�c7�so;an�bZi��oa�ah
h'-aefil�mpuwy��auJpjb�l�rs�l�e\lnYe�8gi[>gnehnn�iyra
fsCp}�eZocgnrheiou�stiz�cs"z
�e	i�m�tla�mbmori�yc�e$usz�a$}a	.e	iatei�o�vc	eipswor#�nnZ0gill��aa��uig.�sht�i7s+uaelor�yr�y&_st2Gidrtr
a:'i�Ene��r*Eedl7�a�e
�iolumines9&cic
'ai)l��ss��l��svt=yU6lon�'!�isic-kinYt��a�i:'nkuilliN�t:'aeilyi�ldr[�i�y��e<l��nGCelUMlcdAglsta�husio�ua(Cni�dsh'�e�ia9l!!tdik	rflowh'	eC`isae	itlt�g�i<lUs�ei�ov�e�'dhlrsw�'�is�aich'
�a�iseir��ion�u�'a�eryisaeiolncir%�aerh'>e	i<l�ns�iGCy
�'�C-�ad�mnrs/wl�adis�h�'ns�')e	Gi'%os3�uha�m'1�sal�/ntrE'CeJsh'D�eilsng�sD�eingF7sa�i�y\r	tVlr6u�'�e	istoUn�'e�lmsunne
'�ss
anW'bs��gseh'ss�c�s
�t
�dtucv'-cm/�s�ts�ro�sG�wm�s2�'
�a
:'abcdilmnoprstyzsue	ih'dfG[lsmises&�cu:'%�aaeio%�usl�ll�'}e�i}ysto�maei�r^`ur�'sl�w7yd�rsln�llidV�nD�haeilstn0VdeAsbrs
r�sa�i�nte�iOondsiEo�y<9aevtt�a�eial<l	�stabna�cte�'E�ls
�'a�ei��mopsuH'r�'h_e	isn�s�g}i�'psthaape�gi�'UdUsho}�nlaiorh'i)l) stGyt�eil_itswi:'iYs �centt�'a	eisFunt1heostbtzite_Qiapoi�cFeour�'�eiQ�sw�an�orsTav'e	i�'{�e!i�'aeirsuu�vr�'sUOunrsanri	+y�a�eiail�'b	�ef	�ip�soar�do�liec�ei�mglmprad�me�s)�ie�'st)�er�e�i%�eaeiolulh'i<l+s[as�tz
�a	e	i�mt
�a
e	i�'b�df�lmpCr�s[xoar�dioldn'�s3oie)�ccfnpsuga8�e	i�lt�e�ig�o'se�t0�m�t�imR/seW�rprRli�y�e�o'�ss�haelio�ccpthordat�ae7soda7s�nhora7xi�u�d
abe}fimntuvmic�s�'�i	+sewr
abJdme�n�serlla�uaio�u�lTt!Sfsv �i�pascula�r�eoni�ya�e�olh'<l�ns�n�s
Fu+eai�sin�e<l�An�tfo%�ti	ryB�ac~eat8�ei�n�orarilV�me�aain"�tc�x�ahe^Fiaisr:'ean�'ss%�uBa�e	inp�a�&omio
oao�ucea
hnlogi7ylon:'er$sa?n:'cio_'/�st�s; i'a�begil�moruy�in:'�g-bcdefgiklmnoprstuvyc;�hj�lo�nW'C�ioss��w5jrtognath�aLef	i�'eis��wdre	id�rn.�cg�arin�'�e�isnr�st�'-�e	ilssmokD�e	iikawh'�e!is	�'�e	ilmps�wa��i�da�en�'s&�her	sa=i?�n"pr8acd�eiklmeod!wolF3pit�hea�nc%eothge�'b�eilsy\o�en�egilne{inge*ih'd)�rser��s
�abe[fbMmoperr�'1&e	il�mpsain
�F'sl�o
W'_�al	eiO�ms�'Ce	Gih'aeilos�gign/�'d�rnon�'e	i&�sdHsa�ill
.i	:'cdegnsteiry�'dlrs�'ls1heor'ssh�.vip�'s�i�y�enhe
qg�e!�oeil=orM4lga{r��ea:'��gsek4h}l}y:'cem�ish=u	h'-adl�io�rs�rmbei};osVFsn[vg
�eheil�'	�eils	�nsz��ae	Gi�dCr�sae!itio��n�dCr�sei�dCrng�'�sn�ge�or�v�'eirsd�r�uyE'ssclCbnle�l�i�y��l�s*�t�'aa�bel�mpsturt�rHitHialru�'sx�'��rson�'�vae	i�s�'d�sa�eiid�nnW'esq�ua�eisyquidd}�i�enaO�eli2,s2,zltepLeh'abcdgilmorst�wybc�dn7sa
	niter�'>efihlsu�l	nsza	e	itb
�tK(illixca	.e	i�;b$tX9gr�aomJiou��ate>r�'osnnay�'se	ir	h'a��bd7eh�rsblne�ailul�e<l�nostt�'e	isd��ema7s�'taich'�a�s�a�i�yaeio�etdtAri�yan�''i?�rsm^ns%vtmya�gtp't�)oeo'sstteo'stvill�eo�+w�'U6a	eilsn:'g�e<le�sj�l}n�e	io�n7s�'�aeirs�5wdl�r�ns}m�teo}s*wuo
�mb7dei�mstu�'d�rsdgn�tDii�Od�sei<ln�r�se	isd�s1�svt8Db	�'uUbehlstzaluh'bGssxrian+�d)�aams2�iae~miyhnooch#�eoo�gd�lrh'b	e	i�ls
.to�t�xil��lcfntvetmrfe��u�cauq�ui%�n1ee�nf:'acdefklmnoqrstvwypehte��i<l=�nsosnr�sYVkhke?�n,�nh'-�abe	ilmoprs]�uilJ�u5jni!�soo�x�kdrh'�bZ>e�i	+si�
sa?t��f6\u_�oo<xoum':^msdar�'sk�'prstIkv�'�b�e~mipsyi�e	�'	eV�filsy�e<ll�noE'Ksea�s��deiy
�'-bcdmpsl�wcpsulDta"*rkip
�pol�uar:�dF�alothonYgar��i�e��na�o�'-R�fsd'oeu��vhovW'�3iaimstytu�ei	n{oce%�rsflc.oeywoo�d �eenha[mabiC�nJ.inotu�clsuminescen�c�t�ey�titz
h'acprstttrac�tez�preve�nece��peyn52snth��e,=aherapeG@i�yuti�crairvgW':egin&�dl�l Oa�pueZ�i�'bpd	Gir�soo�k'b>e	isoard'F7sF7s	inor6ltuvw�y:'�esh	ne	ieonkbm�yyr�dk�oe(Cea�iyP�b�'-picRmkb�'is;�c�msJmEAiel�lahstpea#�k`i�'�be�m�'efl�i?nsy�dr�'-f�tle-stree/�tie-�lug�lrluair7�yl��iot�'[solnetmt�')es	h'�ab	eis�tyac�c�enegssh'�eenn6e�e�'abcdefghlmnpqrstuvnr�gtibG'<soscur-o�a�)c	h'a�ehkln1hogno�'�"aland
'�s}ae	i*�o�'drsH'�i�yHaeiste[rh'�e�s�'aeW�psx�w;�dsa(Cwn	�'-�efh	ipsalnd-\sei\{ves�eear3to�xhitsey�'�s�t��e�eingH'<lf�'d�e<lst�oain�'sh]�ifon�'
�aisg	nuahua�'bOsbdeilt�Jl�'bcef�hilmpre�ia7dr�9ia,rrssheis!�s!gkindeir
['sroof�e	i+se��a�n�'�Ha[sh'ahersc�h�'aei�nsyg�odc�r�s'enr��s�eg<l) se�orn[sabeinp}uera7�ioraz�'drs�'�aisc�acnhaun"pgr`�re>�y�'asn;�z�'-ace�g�khl1�nostwswtrJ�aagY�g
�F'�{bmbst��w�a�e�%oheirinc�Gh��l�'ste�'os �ktra
hpz�'el�iyaHg�'bemop�&soar�dwyZ�au�nlatHaei�ydn�rwdha#�la�m �a<�eng/�'suiaiopr�clcg�gmpraph�iB�yortdi�y�e�sact
	iFoe:Srh'�eisy�eK�lnegss
['�e�iu	�pehil�'D�e	�ilsD�eingH'�so��lnaTu�'-ciostcR�hhat�'s1�ts-aaegaorlin6ga�eivyl}sri�o�yce_�ei5y<�e�iaomydiah'/�e7l�s�eradio�=l�t��a�dnP�ta�et�eic�ono6lnfpqhs�tlouorocar$�br�mhlyEAl�tasAtu�iciklmnoprV�suw�ckoss�Ut�'-aJ7e	isa��f-blY�oblocskhlo9`late'y�'sF7ycrse�'�lnrA|s�'b>eg	ims#oir�la�e7n(�s"pye*iE'bcd�r
qser�rherrAri0�yeiclrsaylcify�esteicto�m<5tith�ji�'-a;�i�sterEAone'�rstera�sp�psh'e	isdHrdgriochthy�ecryan�in;q�cksNaZeiy�enhegh'�h�ipr��seiyd!r�e<l��nadeilot�ulh'�e<l+s�'a>e�vislta�e�'a�dosg-�lraph	eis�y
�cenn�o(�se�gKWeg3�iraphMe�iGy']l:'7x�'S\d�e!iseioyt*Eistp'6lmost�m��i
�'}aceilmo<shurctmhnd�e?i��s��o
:'a:enn�'�aisstz(;e(?i�i:ye(?i[d[sen
'tatmeik�eas�'�eti��d��mlpogi�ycalx�l6eh�'Oemnaeio�'kteRmyeioc�d-nH'
�ai�n	s%�s\tgra�mph!�i�y�'d+scn�tFu9(agd
�g\lps[uyna?*mhl��o�aop\%mhere�iioc
�al	�se	i�'d�r�sbglmsP�ti��oraph�'�is�yogi�y�c�e�setFeri7yc�atratigrap�hsas#lo0Ttlnid�sthe9Jms�tbcdfgkmnprt^�v�'bsiy�e�nk�'�ehils��oene>Bil�lf�'�e�'1�gso�c"�k�'?amps�eiyh�e<ll�n�')eisn�gd�gkter�'ei) s) d�crn+g�'�eisy�eE�ll�nerZ>e!issapcabr�aa5o7hclnrth�'-^oegil�mwyof-englan/�doFe�iaiXel	n!Jnl�'ia�n$iyaor��dm�a�eZa�'is�Gs�'	eo�is�eig�nu�e8o	Be	Ginz#ep��a�m�tealu'�sxai[n
:'acdglmnprstv��'b<�oatt�aace�dtric2,sx2,zeJi��l��'s''iol_�iKWlrotp'n�ei:'Fea7sur�'seD5isate�raintr
�oa
Fu'ted)lsam.�beria�&ncdegnqhit�'�ei_Jo_lennnat�iu"retyr�'e	isdl�Ll�'mpra�'stcope�_'h
�ioee)qgraphFei7s�y;�c�ehil�e�ia�mula�utab�mr^ai0zuef��o��hro:'floxV&ac?�qra�eludi�aei�'drs�tn�pilm�st	�'�a�ei�o�rs�yenanrt�'i<l�ns+�s�t"z�e�iorycflnpsvirs3Jce�id�rselren�cti
�aex�'^oe	ioucu
�navigat�eI�i
�o��ocptri"bBpehct�i<lWean?ctial�i<lUsaellat1�eyintha�eWish�i�uo�stibccug)stv�e[u�.aeiry�bI|dDt��b^oefgnz3iro'�uen�'�l�rQ�saioute'dcnxu{�l�en�u�'esl�ls�'�e\s7y�'swca
Dp$Ei�eivU�cli<l�a$us�t�`z4iM-d:'aeiouvwxycdimnp?�qrstuvw.{xykh'e	imsdrannan(sd�eo�s�igern&�ebmro?r�'I�a	e	istp'a�e*�ovudz�ioyan�cx�t�'�abmops�^aeehr�e~miyru�'	�e	�io�s��ur�'tVe	�i�s�'d�e	is�oh��e�'cdgknsa�yrtesti�nh'��e	iosru�'ous"�lr�'>e	iosHu�'�e*isish�l�nh�m'�wiGph'bepstoardh'Z>e�issy
.reY5idr�'bsoa�r�+or�atmaeik�t[yW'mnr�to�xn�Ec�d^cfnob�s�ti	ryc	neat	ixoet�'.Iist4Xi!n�'tek%s�Svhps�th'	ne	i�'-e	isknif�v
qdr�'-	neifilm_�rwycloncsious�ncious�AnGic�ef\l��n7�sE'ai
qslh'i<l�s�t�si	ryTaceat	ig�o
hd�rsesshnanr�t�sCkorB�k�hterh'�e*is�ydsei:'i^l�t�a^n�o�u:'�ae2�it�'[nsQwr7ao�uphobiac0aei�'rcFe�%h�l
�u�'�e	is	�'eimstwdy�e	nxls��oon�'s
adf_�gmnorv�wnr�tv	-K#a�3eil�ns]�u"0clsJ�ui"vha��vn�gj,iy
e	ih'-aehi<l�nsw"0chsY�ueaded�lnig�h#�n��sd�r�se�ang�'-hshou{�sou4sa�i�AtD�y�a
e	idau�'sr�t:'ae�o��s&xtnc�ste�i�ya�u
W'ei<l�sne
:'�sn�c:'pa �tegikmst1ho�iy�'�m�wc�'asl'i<ls�'�e	i�lQ�sont-ferran�de&�i�dlran7�d�e<l�nbcefsimnopqtvsxu=rhke�
h'�d�s��	�'-abe	ijsthroug�hb
l�ad�r7tac"*ktrent�'-es�ser
�vle�iE'ss�h�
lf�t�'-hosthang#UeangRe	i�r�oab�ect�xte
�iri-c�e%�iologi�yuHc�e�sh'-Tad	eisdowJno1
wnAgc�egikothh'*e>Bih'Fefisyil/	ssm�ei[ntBoc�'�aC�ish'�De	ismet%eL�r:'�o:'metrici��sag�n�'-�bpsc	ol=o	e?iuei�'dsy�e	n�Gsh'ossr�aid�seHi�c�se��itp'den'abcdZ�gi.kmnprstuvwK�yz)�ck�'-�e	i_�rsand-dagSMgbe	�r�hk�'-eC`imswwatche�ir
['7sdBrakTNe�ia6Ki�otch9e�'dhs)ei	Ins$8hoppsotnne�h'�s�H'��e&�rp�'�e	isacei	�klze$�puEfr�'dCrsy0dnh'1�pse
o�t�aeiu
h'-df<lm�"norA|s�t]�u	cs<dfhkmrsY�uro��pi�si�ta�un�iout<hatzi�e-circ��uis^�tout^�h&uV|n��sre	i�'ds�'�.hs1�t��u�'#bei}osds-bhlmppleru��s�Coi	?n1
a1
eHxiFe�2nds�t	�'-b�eilsycuckoo-��l�}e� u�e�ll�nest
Ds�ce&�aei�'nrs�'lsea�fArvs$�'n�'�e/fisn�Gsa0pbKvce	imnst
�'-bf�hl%�mrscfl�aoot'>eaeu�ib!Hi
l
qdr
H'�seo�eoth'Z>ea�noo�m7t�'dhls-=ups�'�e��isyiy�e<l�negk�y�'	eisy�e)ln�egter�'�eC`isn�cph�!tisivxyi�<vsisvsxdte:'bsa"vn�Ddemnes�t:'dgno
�s�.r
�ed�.M-sainsM-adaria�n'�s
_'�'-abcdefghiklmnopqrstuvwxyz
abcdefloprstwlul�i7yth[oerlligerenc�tanR�dhoaMi5Unnouspiz�rrdinati!!vnse7lependenE�cX�tdviut#UocatioQZnoluRvtionxaounde�i7d5jroc�acprwcturR�r�aetra�nt
�ei%o	n�ove�lns	ai	n	olvdinat
�e՗i%onersh=iirlotH'Jsodu<celsigioμnpon{ditgtne�iJsJd#WrarY�rsrimoxazPoorrAkit�e��t	cdglrstuxh�'	nem�il�mrwoad�so�o�ho!�or�kj#*uula�b�nt�eWi@Po	�'-efhimsbfhY�l\}io�ldrsce	idnstct#�aie/	s�El��onti�oine�irssste<lnr�se	isd{siculay�tt	�'-aeg	ilsto-coGaUild��e�r�Lu�a�i�'-ei�vrstha�nd
�r[s#�g?na��e3�itho�r*ei
�a�n�'ab?�d�li�nors�yuw=ilrt�'�i{o(�g�'e	ildr�') se	i�'d�rstonl'ass�a�'�mseb�'bs�eiy�e	Inachkorӂt�'-qiscol�ai�uy'd�sia7n�g�xail"po&rbagqmn^s:'eEAaea�'ers�'-abcef~milnJprs��tyaefosJ�u-ndhoodle-dzoѼod-��b��eyed)l�night'isn�gf-the-ƝrwaoY�l>o�hb`&dmptull(yam)�iX9o�oD�rou5a8rhrafeHr�eodrv�t^�y'
eight
h'��i�se	i�'bdsi-ud<d�Ohey�'issmo[�ac�hu��oc-rker'��sÎs�'�ab?n�osoX9l

'eatNeR�iMo�'�ade.�fgil
�o%Apsty�e!iIl�'-b�cdi0lnp�rstw�xswitcZKha�/or�seake�iJ�raD�mendencg�t7e�i��yermi{�norBdc*fA�nme
ilOiwallUo
dflnqrtvx�'i�sut>e	i#Soscation�'
�asfic�ieunterat�a�erA�oobit#WeL�iu8oac
ei�bn�ov
De�iaen*�er�nalh'�i<lsitste	isd�xnensigvafc��te�im�serty�'-�\c��hmpschm��ptaJ�u
Dkou�sL�aa*bTza&o�'-d>e	isF�d<xax�a�'eY�ginswnvc9t1vtaio)�ctx�eyistzanctiovn�'@jasr�e7�iaVbn�ct��mscent	+eihI|eae[no^`ub}nita�e	is�ntion�'I�asFitnrse	idnrsc9t-e�i	+yi�o
Nvd�'/�e�rs7hf	�lmnsrt�'fs�e	iur�Je!ibajt�'�acc�e	istide	idns�ct�a�lurareau
:'@ja{ue	i
�F'd�Hs�y:'abcdef#�gilopstuw�'�c��nstitu
Dde�yr7�thei�.s0c
h'-b�ef��i<l�nsb�hslo��ohould��elo�oield'
�'a�@b�c=e&mors12t�uHymbal<lptera{oaiithnX�dlwa
acf�ns&�t�'<k�so�rr9JeaeiouW=ybgprtorat�eiFonovn�'isstr�ee	Gi�'d�nssei>Vbn�'�b�de	ihlsdnaebq�rbq�reMiFodrsal�'i<ls)�zaceg7tg	?uth'ac{eiosb{�l��bn�ov8qeis��t
�z
�a
�e	i-m�tr�'0asn�'+s�eial�nty�i8e"demns�'�d�]rsat
�ei-o	n�o:'egsarit�ywooW
d:'%viI�oNcgiqtC�ud�'@jasui�ya�e�ulb�i<lUsTgy"dsi�o-vgmnprsune�'�dsbitoa�'(Cn	�'einos�ylss�'�csac�es�kzlh'��i<l�ns
�a	e	i�tadIdscop�e[�i0�y	h
�'abefil�swdntaon
:'<s�'7�at's�siI�u��olindnes.=s^�c�daus�&tl.l�)nmns.Qzet%er!�iy.=g�tes�;sa�yst�aei��uum:'7s= or�ur
�'-abefil#�mp�swbcfslindnoD�das��terg"ePbnwtt��'F7sliondnessn'cZ�k��d�rausݷtl+lness'�eF7snsz+g
�a
�e	itOis+Dae	�i�d�sess+lnessn'o�iay��soscop7e7y�'�ei8ors��sa#�nmbnai�u�ea,�n�u�'[n�'a�eisr�tsC�zC�e	Gi�t8yabcdefimopr#�t�'eknstc��h6Ko	�'a	e/fio
osut�'�a�eisR�tnv�enaneg	i�btioon�'J�asr�'i�sJyJ�a�csh'�'sb�yst>ei
�oUsb�o-vpi
flaste<r�x	h'�|bdϝl�rstui�o�y�ace�ns�'t�ji�'g�ahspp1�aio��ry�e�trt�'a	e�ilsbiyllJ�iescn�t�'asl�i<l�AngtE'sИeJ.aeio7su�'nsd�'�ae*i�m�osd�er�'-sin-chie/�fmnrorat�ei@Pon�o��vcdste	id�mrsaK	e	is�bturarbt�e�'ae	is�rt�e	iFodr�'7scei�'�d�sa	Inlh'i<l�nss
�z
�a
�e	i-m�ensta`?g3�ut1�ixoesrat�eKiaiur�'is�ya�e7l�ton�'a	e	isir:�eWdr�mstae	i�bl�')lsdekr�'�ms�wdnDtRv�eiofKo�ti>�ycZOeT*a
E'-ae<l�"npsw��lrso%�oe"Nnli�twst�r�slaceh'nssa�'ensseA�iealh'th�'sntaeili<l�\s�tcn1�oqst+�za�b�nt�eiFonޣo
Bvug�e���
�e	imt�'s�'
�i�sa�i�yr(iane	iVbt
�eiFo	n�ov�ezi:'r�5ao:sh'aeilorstu�cntqrstth'ei<l�nFosdr�sn�odiy��e�i7s^oeon�'a>e	iQ�s#w�b�'	iaO0eitbtpi�li%ov�en	sment�'a>e	isl��is�'�einon�'a	�ste�pi	�d<ln	�sirb�ileyh'ns>�i�dO�eln�rtls�a�eing�'<ldsiao�uuY
sa�bt�eMior'yeidnsc9t�e�i�ynttiFol!na
e	ijb�Ztaeiycienc9t	+e�i�yns�a	e*is�ta�n�cmtxent�'a1&e	isr�tiy�e\lnt�iyhaeid<l�n�r�sn�o
�svh'ei<ln�d�r��s	Ino�tn�'@ja�esac~emUdb'Znaite�i#So�ds�4tent�'a1&e	isC`inrs�tuent�'\rs=�teit>�u�d�rsnteiFoh'�d<lYnsnoXn�'yJae	isd�rnd�'Ta�e	iseiohsendsi�;b�oveh'<l�nsz�esh'eiFo8ds>Vbn�`o#v"smise*i�'d�rs�orolllnstsio�ovei<l�nsri	+y�e<lBcerve�M�'aeY5ibt>Yileyi�odrs�'-a.�e��ipsliter?�a
tho�bbѨade�'lQ�siy��e�n�'acdefgijkOvlmnoqrstuvw�yk�n��raehilorutve�ne�io<l[n�r	�s-conv�	eadinprstlTa	e>Bi'mse	i�d�rstv�'e	is�daLe	ibi�ltra%�iteMi%octi=o�W���'isuov�|nali<l
�s�tf�znth'
e	is�'egi�m�os"�d�7on�z�agsiovn�'a9esiU�l<r�')ei*poske	Inelos�ria�rtv�e1\iOousne�sL�e�iA�au<dsi�owvcmr�Cut�eMisitanitd�'ateli�sn�t�c�tez�ste�i�'d<l�nrsbprsina�e�gisce�1nharse	idnc�t�e�i�ys�'��eKiaeiouy�hb�mmnsna	e	is�btsaeUliUdbt�e	id)l�n�rscenK�dsi~�o�gl�mtlLaion�'a	e�islh'i<ls�'blmnrsopDle	id#�ns�'isn9Jia�e	i�b�t�'�csc�i�eitn!gv�'�a�eiFo&�rsbn�ovi-l?�l�e�ila�eorнtrm�'sdfsylow-e��t/�'ssaeilorub�'1�bllsu�lcdrsttison�'eisdx�r	nJ�serac7lt�i�ye�i�'d�saemrs�;b�enc	Be	ien�ta	e	ib-llGesKa6eiFonon�'aslh')lst�idgnrsaeint�'�esdn�rs�ctG.i<lng<l�nura2�e	i!Ebtio.ine	ih'd�mrsmae	is
Ddcat�e�iOoaiug�t*
rct�'�eis7�u,n�Ooven�cK�tW,cruma	eisb�lntleJyޡin6is�tnd#�e	isaeo�V�ter	3nreE'Gsnta�e	istiob;ncstia�un:'iYss �m�t�ae�i�dN�rs�aLe	i:'�aeloranrsl�e	iG�mseir['�i{o7sa�tsPl�'26ist�e'�iseox�tmerat8�e�i�'lI�eaeut	+sulat�e�iogs^va&nt�einon�'asliKWlsmt
'[s�'�ss�'ei�m-p�wd�s	nonal�le�ioncteiyzWe7�i<l�}ucef�nh'a
qsl<l�nUse:)r	�.eouctura'�e	iyLb�lin	e	is9tgnra)cl5nt�i<leMid)l�nscth')eisuJm�Rovax�e=*i�'7e7lsa
eu�it	i
�oh'��e�is�a�e:'0aeioucdlmrwxt+�aeiFosd�l	�n�bcnov��un�'i�lss#Wt�etiKWl�a:'}y�enpvtiHxoa
e	iil�rtsseur�'sմh�la�e	iti�ogv� bd
�oueirsTa�e	iFost�'#Se#Uosstador�'esatd�i	aceioptunguine�i
oireoncte�'-hlsstric��kBUinu�as<l
knipt�'�eWiscsdnqrssruat�e�iS�oti�vstu
�a�sh'�e*isuen�cti<l�n	�sali<ln7�st�i	yvae	int�cioo�svn�'iss	+m�teh'<lnsix�r2�rdg�npsera�eC`isbtl'4ey=�e$�in=�e	i�mFosration
�ate	i1hosdnc9tbe�i�ylmnr�'a�xeiVbtd�nat�e�iFomae���an�ct�'Ha<lst�'�eisanNPueicitfic�i7scr�ua�e	i�ctioon7�aJer�'�isaeirbny2t,�lu1flctP�e�i�yh'i<lsnteo�Fplr*
lnat
�ei	n�oPptuetn�c�t�einogvn�'aslh'i<lssvt�m�taiuin#�e!is�tct�eKiFosTac�e	ith'a�eiFosbillliE�tbnovK(iln�'@ja�is�eism�tb��elmstantia�lti�Go�'aQ�st�r�tae	isnK6t'�c�tder�'s�''sJ'aeimp��b�drs�'��isng)l�sat>�eMiti�ovx�e	>'adeiorucgimt	�'-Tae	i0lMosbrea
�kd�eio�n�unTae	i'msdr�'��isina�n@Xtmnrsxnplotat�ein�o�CvranreiKo�rti	+y�e\lness�'�e�'��is�udt�'��ei<l
msn'Oomi'#nt�'I�a�e	ist�'��e�i0lsuali<l0�sza�e	itio�ngnu�ij�oegun�ct�'a�lsl�'�lsen�c�taLe8�ij�o
Fu�b9lnt�c�tp�ir��ut�eisn�olvaeiobcdfilprsvansd�'�i	�ss'[e�oetpti~�o
fv�'ha�eiFos�uVb-ln�o�aicst�e�iosriy�l	�nti�nalct5&iJuo�
w�lndic[a3ta�toDtusiti�ov0�e��ni	+yae<l�n6Iwn
h'i�s��ss�tth'�eisy,n#venLe	iDt,rtem�pbtvut�eion�ove�lr�'isye)le�i1�a
e	ilv�'lsa	e	ib>Yitlersti�ya�el4Xi<l�eisVbnm�saeci�ye'%oli?�y�e�onrd9Jr*
baeioulesce	idns�c
htcnrsPxyt)eio�s	In�"o-vZ0rUba
ei�ot_en�'is8Dc	Inon�'a�7esli<ls�t"z
�e	im�tgste	idns�ctaeintz�tion�'�asi�oh'd<lrsnon�'La�e	Gish'	eisbnpil�ea�e	iFosVbnceo�i�'�d�rscnvth'�eMisc	.ei*^nialti<lc"kl�ya�Ntu+�vte�Pid�lsls�ein�o�v:ah'be`g	iklmnprster ped�ydeJd�i�'a�behi�ocNsa�tw�'dr�'is�y��eou2�s�e[Mnar�e
h'-aegi<lm�nsTtubh	ao5
xe��ab�h�mnwxlax�eg�ta}tan��yd�r�styark�d��bd�en\�s#�ggt-Usa�x��l؍'asblmwarabBHrp�y%b\�a�Nk�'e	isdr�'a�eis7ytgnt�eiRon�oveh'<lnseM�s[ent��oado�sk�bnxbinateiFoh'dYlsn�ovCn�w�y�'a�ism��u�'-aeiloprstuyo!�uc��yaebat
�ih'dln)�prsa�nhago�e'nic�ab�u*el�$n�oE-oa�ena�dr�ilyAmei�odr�'[a>efE�h	in�0ps�tyie�lo�bmit�hcn��e	iaoclpessL�o�ihaBvg%e	iFe?�ila�'st�eion�o
fv)r�'-haa�b��ch!PilrwedRkioldMeeft
�eeia��dght�'�a�e	isri��tuet�rt8�eins9habdef��giklmnoprstuvy:'cq�kl�l*po�'�{blrs�iuUoei[ylt�'ls>e_i[en�')�aeE�gihlosul�wd�l�ralA�nttlh'�i<lnsle�ora�'
os�b�nva-nroy�'>e	i	+s�'dln�rsty?� i"plgioni?6sponde&n�'tuanoBtcn\d}ae
qg^nt:'C�lh�'�cilaei2�n	�'a	e��isw7y)�gcre�w)�o�e�'}�a8dos
�'bcefimrsuwyf�area
�dborakZ0ead�0ilrt�'lsitlta�u�'�e	i3m}�swi�'/fst7i7o7silցeaoke	+suw
qr"c�e"�lnshe
ogh:':ee[ia
<l��ota�lr^�cco�paell�'�il[llmn}tuwla�'�rsandel'ae�'ydl'�rs%\t@�v�'Hi�s�rt�'e�istGd�Ve�}t.osurae'�ltr�ei�osv2,zִaNe�i
qm�taCMl�'�e��mlsen�ct�lness�e�'c�l��uaeiouxyl�'1�lsc�glstTaei<l�nosd�r�sn�otv
�ueh'�l�nsratei#Son�ovx�e�iponde�isdN�n#,dHeg^nx�aeinda%�u�b�nbdsorat�eciOo�ei�br{ni�oveh'<lns�gptei<l�nsd�r�sbn�o#vpi-la�e�(hiot�gFi�corphi@n_�aei�l�4gs�x:':ecs
�a�eostero�ioltn�ns2dca��nTtae�u�Flst,�t:'npebactDPeh#��h'�b�ehimpstuy_�e�i�eg�lnn�<ae!i�s�dre�'ss'�eeiocteu�tioc�'
�aC�islo�{g �cgl?np�sor;�naphMeQWi7yogi�y�"c�e�soli7sta�en�'issz1�e-m1�ealo
�ray
��e�i7sns�#oaeck:'bst�e	is�wt�'-aceilIknsucekauffeictive�nc4�irh'�wrssdlryl��mnv8gϿe�e�xiymv'eienr�1rpeperviإs	�'aeiosty-nrobl�e�g�'rs�imin?Aog�lġnnpe&�oa
�sa OxwoЀlaeiogg�re!i�'�d�rs�yd>�rsl.on�&gn
�'�e	imstwyout�hew�ea
ief�o!�ele	d	c��dglnprsth�'�aeu�idst2�tFahh'�e	ils8id��ehiot�S�'n'��tm)�behr�3'a�r[�cstil�'l�m)�ops�wBMoe-rel�'	�eil)�osn�1g<�eŻiBMoh'a&�bͫdeJ%ilrsybK(ile�ydnr�san'�c�'-abcdefimoprstvw	aceijoprtttack'�ye	isluaoi[!mck~�wlt�uspio�nnftlationg�ae6tulligen
Dcu��mffen�rsi
Dvrodu6vcevolution'as@�re��nrror�pic&�grtt�eKisgum�etac�kalolan?ca��os�tc5rhluya�en��rRgaoim
h'�ei�sckwi)�slrturLace&�rclA�iemonstֲrdfsxfo5rpiona=xgam�paeY�loctua02lieht
ir]�cnrgsturge�onellige=vnri2etaein�2r�'	�da�ns�nffen�rsi4vaeloru�nrt�'�is7yt�iR�oin?s!todlpucti
vife7Zrosb�anche�i7d�r7seofvo�lrolutionh'assAortat7eR�ichi�ptuaZrraR�d
�fgnnh'a�e	istkh'	isarPyE�tA�ijob9�nje5cehrnrs|oro{�rr�,e3uadnsfe9&ramJi�leigh�e�i7st�'>e	Gise?Csiy�ef3i�y�'f�msw�ii��d$Ei�o�'wi)�d�'el�os�E'JdrGs�1ie?i�'d�rs�tC�a�bg��istge�'�o�setOtteo�i�'w�bd�rswao9�r�'-e�h�(iϝlOvn_�r&�s\ymartA�id�oCrs�aiy[Ve�'	Gicito�u�ne�atureiae	ilren%ti�yantc0�t�e
�e8�i�'dnrst�y�'astnt�'La�e	iTuosr�i�y	�'-a�e?ilstY�u�b�gl>�le}i�ty�'h��eh'<l�n+s�e>Bi�os�'-abce/fgh	il�moprslpi�Lcar�tsl�erd�i�'�ilsiy�n2af�ei#o�.ratcS\h8dlr[s��l�e>Bisi
raZein]~d"d�'eisd�y�
c�$nTzr?6aOeou4k}x��n�ai(yc�eh&�l�EebG'�}c�e	isawck�iair�n
:'e	Gi<l�nopUs�dr�s�ueiuayn)�a�e	iseYl[nsrsstW�m�a�d�i^Slo�rsuM�'/�s:'acei
�motuy�bcdfgimnpstvwyz�'-bgrSlswap*peiyo'
Dd�r�e<ln�e�grassh'e:�ik
h'-haͫdeh��il8n>�psuuX�pdr�'jsa�
cew�aeiy�e?n3mg�pdlic�k'�eo�ietr�'J7e~misymp�wa�en�'��seorVps#�o�'ϝg��sgtp'aik%vebu�r�Cemps�e	i�'K	eY5i�ose�abdefikl��mn�3sh�eoorub�r�a�'-dA�lsf�lb�,i�ic.oano�ul�tfLl�taHc�'��ceip��syd�rs�e<ll�nTsei��g)%i��y�'�eps�Veiyen
h'rs
th'hooS\thЂsh'-~e>Biwland>e	iorthi7yYne	i�'drs�'�e	isae?it�'s:^tdnrsh')e	Gi<l�n+s�'dfls3�ai�o$�us|hh'e�\isw	+yd�r[ypa
fc)a�'fossish�'[Ve	Gil�na:'ss8�ei	+y�_e<ll�n�'acdeimnopstuvwkmsth'�e~misy�'-e~miswycracke�rdx�re	i�'drs�a�ei��ounovn�'iss�m�te�ih'<l�n�sre�'lsiy�n4h}yei�oun�ct�zial�'�eisn�s�bt�'a�e	iFoswb>Yi�lorthiyhnJwl
:'dkr�lpYs�'Has�'sBhih'Feisy��e<l��ngh��taeit_n�e�iori	+yahe�uh'+seulaltei�*d�*sno�*gn'�*s�*sateiF7dpsZ�nonn'F7slatei
Gdon
H'Gsl}nsex#'�s�Go%e	it�Oucst��wend�tr�oh'ei�5w�yRd	�'�efu�ihlsvalle
Dnie[wa�eioc6neous:'KWln�'Di�osntzfeldt-jako/�ba#�is"s�'e	i�msdl�'s�.w
bc*ekmnopst�'bes�a	eu�i˄l��hk�'e	isdt�'Z�e	isYeei�ps�'a�dsw:',�nna�gol�'i<lss�tz0�a
�e	i?*t0�a�e	i
�glog�[i�y�o�gkoleiy��en!�i)�lllo:'7seple�i�'d�rsw:zac�e�ipstw	h'b��el�i<l�nsyre�a-ccross<�e	iros��sc!iob6a�-eeitria�ocq�'aisli<lsz	ei�mn�g
e>Bi?uacefikmnopqstuwyz�kth'eisydIr�e\ln:'iYsaW'6n}ehko�ueth'e�{is�ydr�'e$�f	isdr��t�i�yO�d2�st'e!is8r6�s[xe
'�rwell�'i�1aeik:Iuy�'s�y�e�nKii�'is0�mkehn�'e	ins�5wd\r�s�e<l�"n��e�'lpsa�.n	e	iuemtbouch�'>e	is�t�bise'r�'-abcexfh?i<lm�noprtw
abcdefghlpqrsssembYleorS�re0�ded	ishouecZjk9�lmnrupi
�lnteִcaminat1�eR�ireS�ln5rg�tlNJrtt3xu's"tr��ex<yamin	a
�e	iertilisz	a	arav�iaitr	�sc��haeink�ta�e�i7s�lor�i�ls>�tomJpouestioZ�neferesn+�cection�as�b%�raH�eorr�':^rs4nw�'�msesdedh'�isshu��ert�rh'ss�td�rA|satc�h��apvteryHga%Cior[�t7iodul�coad�'	+saorEhl'�w�eaiZo�
lysn-schh�'e�ldst�'m�isye�rn�cpt�')eisy�fe	InonE's�'bd�ef	ilnsa�}ei�r�'-
}ef	ispleaYsund
�ei�sourc1�e�i��eoo[vt��e�'�eryis nes�tM�dieݪr�tw&o_'M�scdefilmn�mp�rstxzia8Dbf9ltP�eio	ryha~ex�'�ei1�ormE'�s�'deis)e�[iyh'<l�nrh�st_e�i�y��l�tel�n	�st�rs�te	iyd�rs�t�iy�'-fretZ>esssykss��h�De	iS\lbmp�'�e��ilsyeiyh�en�e�giyh�eØn�eN�lchh'el�iydrsa�eh#�otde	i�'d�rs:'h'�a*e�iproto�'a�eisyclea�n��e<ll�nc�(h�'he:'aX9dh'-b�4iopsbab �iU
yabB�iB�ybgnpsP�tiologi7yJcselU�nobulicPa�sreserv�a1�etu77arg�7et�'a%�iosnalysti�ti(�c
bcglmnrsz&�ioruccLa�oysta��lrren�ca
�er�ma�mphFei�y+uceogi	yc�s7�aer"piym{o7schiEdpyoriAidste�mo?�iLotal�'5H-lsions
Dtz�eJsa	e	iPb
�ta	.e	iPb
�tgraph%e
�i�y���cm
Dhbilflpe's�yaeoM-p
�sԕtM-u&�v�zyM-unk	_'ehsnosrnso�ipho/�rip
.hul&�hM-l:'.bcdefilmnprstv�dz�'abeiosW'l(CnlAi)e	Giy-hho}�lo}�l�'drs�'sscn�st
�a�l�s�'Las[uidLa�shkiBuul�aol�od�'�e	i�rs�'dgsleiy�en�egel�'	�e�ils<�e�i�'d	isf�'�e	ilsyRinrs��ain a�e-bc��ilmoptvde-��se\�urt�sa��iJ'e	ios[ydtnr7tdx�e�itt8�eaJr�'(�b�s�'isubg6isvaVb�rtTa�eWiFor�a8�e	ieriSdi[s�th'b~�imq�suerr�e	ilsa�nom
Tei�oaY'neirh!bng�s�sua|tlaio�ut
�ei	n{o�vnim�qbj�aden��terpDdifor
�maim��ulninyggh'�eQh<ln	�s
�'�bl�ceDhf�hioprsurtrid�'isnvtou
�sla�'�e	Gisa�eu�i�'�s
�io-unic3*kl!!a�e�'abdefilmrstvbc�rt�qiN�la�i�yo:'�Jeio!n�o�Kvr�'&�iship�'�e�-isi�st-d�'>e	i"lsh'd�rstt)�aNe�i,ea)�enot
Fu�'el�'su�is�e<l�ngqih'eisyd�r�wc�enڝu�e?�gc?Uuudgeo�naeiymnwu-JlY'�t~�on�cth'<l�nsce�lulaNPurd�rs�'c	iom�beio�'�dsnveh'<l�nsr�')eisy<ln�e�g	:'a�ei<l�nsil�n�e	i�ms��l�n�se)%i)'y[!yaeiycteous�lØn�'��b
qds�elA�ninear�^i)lchkpst �ui�my�eon�'�e	is7y�-�'?�a>eisdh'HaS^oss�'e	id�rs<lnemsZaOeodmi�yaeln�'Q�s�'-aFehisbmui�l �ariy�e<lno�&usza+;e	ib
�tila2�e	i�b
�t
�'-a�|beilostu/was<doptnd-pa?�sf�u�f�Zrhro�an#w��e<l�nrsHyl�ityc�en�l
�uisz�VaHe�Vaaess�'�e/f��r�t��f&ucBeFehilr[5on�ge�'b.�f�o�eIki
�as
�t�_'m
�otb`rabck�dglmnprstn�'aio�sm�tc0ic}3dabg�Mp�s�tcry%�lacteria7l�eeGviorCAlr

abcenpstwt��tull[�iy
�iahr��uf��s�eondria�ciO�om�ei�nspio�rnaet
�u�e	itici*s1
a5s
�eh��o�.uob�ei7a�ceo�hlpqtuc�xu!Jraf�c#�a`h"*yuattMe	Giaf�l��reh|lr[9e��raorfr7sz�ir�lrg�ga�iHr�alaeiodm�;see��i�/a�e�'d�rswa0�y,�cgn�s0zahim6�nptddִiexan7eHod�'Has(�eaelK�sediBacx�ad.sc�ieg'�ih	r2Myn�e�uindFeri�"cbaei�lU6ldŽieiotwulfc�'�a'isnshitmahre7lr�')e	Gip�syRu
mei&Eu�aB�o%�ai�ultp'l?�it�'eios�c2ict�ig��mraphU
yoclmpsthermis��to�mogi�yc�e�sal\legalovfeihlotogmasm�'
�i�sqikeletLa�oo!�xaer�'eisvit��cnsa`�mt�hcrhW'oYsslovakia�'��n�n�At
'-abcdefhijlmnoprstuvwyz�aei��o;s�rzetzzo�_'u�y�rsttaing�_'alrvoir�e���tdx�a_'bcdefghi�/jklmnprstuvwyzE'bse	iU3ldrs�'Gsc[vehrtaY'as�'sUuh!h �oyl�'2Gis�'ad[eos:'ismt
�'h'W�iss�iy�'-long-leg�'hesdmaleuon�'iscRzftioy�efn�/d�e<l�n	�'�$ego) suwO�eiUyenUrsUtesGzshesserre:'oty?poaoloY'�i�mlmnqrsi	+y�eGns#lti��r	+y�_e<l�nui��r�iy�'[Kilm�wa)na�esi�n�'�e�iy�'-cutL�tOaotaW'}nYsa<beg@.ilmn��tw[yYi�'s��tty]'me<t�ai	ry1�a*eng�tatia
W'n�'se�talli}�n
�'a)�eimnopsgse*i�'Tad�r	+sc�kb�u=ae=o�nt�t�einm�th'ae*is�b�td�re�r�sctn"�lh'ei<l�nsdn�r�sg@ene�ol�'fs/i�l�'abcdegiЂkn?ostuvz�'}e���uKWreih'-�adA�lrs�o�'csiszngE'E�lUsei"lr�yDln��rong�s�_ef�l)%i	ryuf-f:'l�s�lae�i��lsssdr�')ef	GiKosi��e*�aeslo'CAls:'�goh�'heeityvir@k
'}e�e7�e=obtmeii"�l�eia2a��hpeN�lr�e�lna�b:cdefgijklnprtu
.vw�yane�Ml�'d�l}n�rsevil�'S8rsYai6ueVla,�e�o�Svn�o�u:'gE'<lnUseeliq�n	h'�aeiln_�rsdnr�ske	n\�sHeV�iye�s7t}a��eing�'nst�Uoh'eu�i�lsd*�l�re�r�s��ae=i�lo*�yltmn:'tml	�'�b	e�fTh	imsoou7�r��t�gssa��l8eino'i�as��mt
�shth'�b*ei��k�nardh'��lss_'aeiJosFu
'bcfgmstval[u	?sA,aom[m7sjira�matioqn!�ey)�peila�l�'bdl�rsooHk)l�nR�e?in
fv�0uehbgmnphetr:ter�'��-�bbA*c<l��sIkit�e�ilsjhaeitmy�'np
Vtort�'sdes�t�'s�+o�s:'�od�ek��nsU3liMUn�+o�'-abcdlm��pstwbltoyo-!�dn�i3�eor5ao�%ke7�aareh'sreal�mei�os��fght�')e	Gi	+sgaa
�iciJ�k3�liotmn:'aorkTuee	izh'�?dslne�i	�2�'de/�islm�w���s_'M-bmvM-go	_'Z>e�i�o
�rst_'�'as-abcdefghijklmnopqrstuvwxbeiritemsphasisz'+;e	i+;e	icalat
�e�icn	e	idustri;a
cdflnrstArvotn�'e	Gis�d�siPv
h'-behlnpw'eY�h��eo6\lnr�s�yeisd�rng�')lead�'Z>e�isi�oy�e[>gne	Gi�'�ds�sanh'�wnss-e�l�nand-dumbnr�s�e�is
h'�h-e/filf�mstr�'&�sg?nn�e�iKmocathaC�ei#So	Inw&o	�'}a�de	GinQ�sY'�d�r:'ta}e
h'bei<l�nst?�yox�rrs:�t�en�g�hsign)e	Gi�sht	�'-blrstwdkortwe7an��ebrws-g52la��ot�to��rb�lairtr}ac5
hshese*leiys�?s�e-ka �tra]~patc7shribJpu�'abeior
ostucrstuleE'�s
k'm1�rse	id�m�rsTav'eY5ichh'e	i
Dd�ers'�i�y�itmy�n�al	�titRa�i�ynruai�ra:':hV*cinl�lRctmaei��tde�se7d�mf1&eVzis�'Fosgnstgs��e	i[�k:sS�'a�ei) sn��iteE'Gs:'acehiklnorasu	df	glmnptE}ye�'nscit-e�i	+yh'fsessin
�a�'cosifi>�y7Zce7d7r7sg#�ue=�ptP�rti!�o��thOul�Re�oa:'}nadilmnprse	i�'	+ds��<etv�'ffs
e�ie��rbq�exa�cntxaiax�l<lra��lti�o�vtifi5yc<�eatioBnlorinatC�ei	In	oI|bdglmnps
ae	iu;�d8rs�oramm�e)�iaelTt�'i�ls
�sza
�e	iti3:o�HtxaherTa�e	i{msio
Nvn�'-J�a)e	Gisma"k�'cehiFlshai<�rdrbG'sao3�n��ung'�saeidkimnrsywaa
e	iVbntio�o��vr'sysei7dJefi	ry�c�enDsnvaneitO<ixon�sit�i{o�yeM-t	cdlmnruyt�e�iuyJa
e	ilo�aeit2ae�smatC�ei	In1
oni0�s�zmpissio1!n��aeiornsat�e�ila+;e	ijby�tsa	.eib>Yiln�tess��eWigstvesta6\ntruct
�ei�snovn�'iss�mktarmina5nTtol1�l�soluC�vtionLah'a�or�stFut�eiFoY7n�ov
ee�licat
�e�Nipalڝg2�eing�'�s�'e	isdJreiyaempstse�i�'d	isent'Ha�e	isitu�dce�na�u~emicnC`ipt>eis	n�obsi{ttomivs��deiukgicat�eMiOocm�e�cit�eisbn�o�v>Yi
fl
bG'�djmnprsar�y�e	is
'Yth'-e�Ci<l�nsdflrsisco�ure<ioeze	i��z)Pao�oea<tnr�s�em�is�'�eE�ghso�u�ktalk�(e�vicalat�ei�n��oaceGcfilorЂtuycelmR�tue	id'm�rscatUecat�e�iMoa
e	it�ioll�tonacmnrst�aib!Hi�%l�'eis�d�rn�sRat�'�eiFosn�oveh'<l�nsini�s�zcdeseZ�in'pd�l3m�s�a	e	isstrat
�ei	no8nei�'�d�Rl�sn�b	�nveh'<l=�ne�mrsvn�c9Tta�e	i�b�lesce7d�n�abc>]elnrillat1�eT.i�(oie�tn�c1�t]e	ipa
eint�eiޣove<l	�n�saeo��gtham�einon�'ascs�xtUba�eKiFosuhc7ZrswcJluc�eglrus<�e	iu<s�zgsia�n
Wtemst�a�e	isa�e8�is�b�taioguyR�gm7sent�aTue�iEAa�e	is�ek�csn"sc'4t>Biaelrs��u:'hes�enineraevcte'�ih'd�l	�ns�Wsyceroli<zaednae*i!Ebti�ov
Dd�rsulat7e�ia	Be7�s�suymaini��s��zdifi	ryc*eatio�ndr
Uaocgholes�tena8�t
c�dMfgmnorst+�ei!�td�nhntW�o�osttall7sִa��e�i7serleaC�vni�szyJa	e	i`d-mt�'iscLa�i�y�aec2�steWis;�dals�bte�r:'abefgHihiN�lmoptuU3vcmnwyroo1u��e:etoare�'C�a<sh'e	isdr�r ecg=oJstvxtab�t��ileyn�sa�bt8�e�ihae�idrsiou�Hseragy�eit�'sw
�awa�'abcglmnqrseuv�'�nerUsate
>i%od<l�n+saint�cte<l�ns��sous:'<l�nhth'c{ef	isu;�la �hintaZVt�a��e	is��eqt�1uZ>e�iuesce	id�ns�ai�o�usa%vera	eJ%isy7�bnS�'�ma6eor:'�vn�dir�s��ub�a�e�ihoi:'�cne9Ji�ur�t)�a�qod?gns-xLe*i\�gi�o�vaeiopuygn�rstvnoeitisz�8ae	idN.rsae	i�;b
�td7rsfiyDce�dCr�s	Gigiu�ycalYle	Gi�'�d�rsdh'�e*issifi>�y7ZcZOeeri��ageanr�stn�e	ios.=ru�
rt"e�iT_giIeot�')e	Giosr*�is%e>�r	-gjlmnstgmh-loudn}o�eadmiDn�}aCenda!!nod�'
kdso�hit��aondaaei4ne}gralisz
�a
�ace	i	sthi�'dmsxiquaL�vua�l�'��e	isasY�t�s�'bcd�egilnrstu1�beisrai�ct�'i�sc
�s
�z
�a2�tseuN�lraphFei�yc�e7	sh',Za	+s!ni�sDt�'eios�s��tac2,szc�asK�a�ay�eilvaogi�yJcestrabtil��l	�ey�e�iFoagli$usz
�a	.e	ian
ct2ehenUOeW�i�ei�cn�ovatei�dss!n�ont�a>e	iss�elrct�eiplex�e	Gih'ers<l�nsr�sae	iPb�ln�td�rsttifi	ryc�e
�aholog^�i�'abdeghimnopstus#vy:'l\rt<iiuonali��sz�a2�e	i��righ
'shir�Weriot�eOichronologA�iyb:'�o:'�u��aa*egl�mstzb�liXlliK�trat�e1\ixoiqpDutp'etp'ri�@fe�na�n*6r>eitmy	Intmsmrtuinat�eiFon��omaliC�sC�zam�ei�btiI�o
vn��oen�m6cat�s��eit�io�ymet%er�iy�'a�eisu�-l�rcf�lns�t�luD�r�'D�egt�'vrscdmnlea,�r�a	.e	ie�rciat
�ei	n�ovdnxor�ai$us�kz:'Ltyribonucl!�e	aeilo}prtu�ir��sts�e	imsuent�'asl��i<lnrdaen�isb�npi?ldnct-e�i�y�'<ls	sonazli
�sz
�ae	iGdslivzcglt�e�isment�a�eat'�oa
)eo�nryaLe*ib?l�a�e	i�msl�nprs�taiKrti,�cuPltBae	i'msd�eCr	.einth'a�eix�os)�rnon�'J�a)e	Gisaeiov�aei�Hdrsn�n�tcdsait�eio�n�oa�bt�eixo,n�o#vat	ior7s7ys�a�eiFou�b�n�o�Kvriz8�a�e�ibvgrammss�e	i[.h�'lses�srtat1�eiMo�o�vBa�ei�y�en+�s"zueue	Gi�d�i�s	abeimorvwcinina�.tlk"eC`il�mseu�rg�iy
�F'k�sfgtklerence	i�dCrsulat�eig�on
�oict�'�is$(cdsv	.e*iioUdb�owva�e	iVbt�ei�Rove�'�l	�nsae�ioH'bltry�aioti�d�sgO�lmphslyp?*h�eyoe{shyy�ts*ptTtgat�e
.ior
�iyi[ycRden���kreE'Gsagll��u�{�r.�ieo�n�'acdeikmopstuyltitnait�e iza�e�it�iuratC�ei	In0�oaerlnrei
�d�r�st�'��e}]is�tndr�t�ae	isdnrai	rymb�lb�epTa
e	iti�(o�ovei<l�n�ssm�temoceglnrZKxratLeWide7d�rrePgect�eisn00osi��ttv�'	eisfn�oicati�oei;�d�rsng�l0n�scdgrVlsca6\nt�eiFon�overata}e
Fun�'ae�{is�bt�ei%onI�ov�d�rae	i�obilli�avtey�nsh'dtme�rs�'istlZ9l�oXolrateid<l�nrs6n�o�paeioriVtrh'K	e�isra�6dte�ic<s-tB�ailntl	e	i'ms�idenc9t
�e�i�y�'is
�c�seaS�deirt�'spoonfssuHlcats�e8�iaiorbi�lgntmatizat�iBaei�ydss�e�nut	�e�ic>�kouy�a	e	iscth'�eiTNos�7bn�owvelpt�utoriy<l	�nerhlBenchroni�sze	idCrsaehiortucihae	i�m!Eb�Hd�rs�lne	i'msd
he�rcnrsta�eiFosbK(itln�o�vt�e	i'e�gimrs�r
%oeinatnaeib�c�nt>Yi��lei�lns�o�v;�d�rsns-m�te	idn�c�$tta�e	isb�t��i?lronn�un��uxa�bt�eMiFoh'ei�d�sMf!n'a&�eioct�eiFosbmtal<lient�',�as�u��iing�0enha
�e	icte	Gi�'%dseosra2iono�pn'o7s�mXBnc[haei`fko7slnsbuag!_atat�eiFo�n�ovilrunopNa	e	imsen�t�b	:'a�cl}n�ostnRt�xc�$t	�'	�ei<�l'm�rs��t	�nj
s�xeC`ia,�lilntu+�cd�u"v�'ipk�s�aorW
tei�?d�esnon�']as[�rt�e<l�n�'ah�bcd��ehils��yr?ybG'�sl,ab�ru��r�e��n��taetd�sr�5ierr:'�i�oaol�i\l�sus\lness['HeeabiosuCbI2krum�alag!_i�'�sr�i��t�w
�s�[r:'abcdefghjklmnoprstuvwxh�yzbcdegklmnprstz]�aeot�e
ilicsam(thorron!Jei7ycsPa�n.nitic�'�ase�mres�eiB�shnoril-�eoms�/e�a�eitn�sic'
�aC�i?�snalh'i<lsszaC�e	Gi��baC�e	Gi��bam�'msa1&e	ijbticalzi<l �i	�'eilosycsdt�'
�ai�osc�'
�a	+s�n�ye	igzi
fusArze+�idsaeBiognn!�etGe^`i0��tFe9�rnd�'�|b>e	is:a:en:'}atmeaeh	su�s.�drJ'Z>e�i�sar�nagm�'ras;�ir�yheoaaea!�i'lsptora7e�i:'<s*waol-e
�ihorers�m[ei"�mtnL'iepaGm`hablo	+sle	i�'dJrse��yr2aaehiko.�rtpri�Wod
�nrsyloror"�itomio�y�e
�s
�zu�s<>o�eA�n�'ek�hisy�dnr�ys�'ia�nZ>e�is�o�en�g��s�o�'bi�rt7syledo:)nai
Fu'ptho��ne�ior�'i&�saon�'1has
adegnor�syctic
�ai	ss(mlue	iy�'d�rssqu�ahmroUteridooss�'�'heik
.s�vm
E'-dfgz�hlmprst��charSdefnbaIkkenbac{he:ohs�tect
r:'8eApesEeisE'el�'-Z>e�iselectri5jc	�''�aehirs[zd�rU�tHycnti{aiani��cf
eir�su�dre	isdn�r"cti<l�na�b7e�lN�tcdenult�i<l�y�e-hell4�mact�eWios%�mseid<l�n�rs�bn�`ov
DeM�ih'aeghin��orsmrsa�tth'�a�eis�7bfn�ov�se�l�nsFein�gto�ncmpt9a�0oa�'aislrti<l	�ss��z�'
�a+;e	i$usz�a	.e	ii
�ft1ha�i�yae�mpsseid�rsn�ov�Heedra5jlk�o��se!it�'�d�rs�aabdeilouptidat1�e�kiae
.io5]n�t@�ds/rer�t8omt�mtant�eish-m'gtentc>th%�i�'j�aio�ossyheng�ues�hh'-ddal�lall�i�ygparit%�hhf_o"ete�id)l	�nrs
-aC�bei<lm�nopswwit}	tggio�:�'�'nrstsion�'a>e	ihlsl�i�l'c{osay�phyl'glyoxilmntiush�a�eryi�eti�oveh'�l	�ns�iq�r�yNa�3e�birphiBxoc%�sl8�exiyit�'st�e�'aeg	iknos�at:'�h'�rd�rstE'-[5b�e�h�i�lossuyd�'�es7ss#�eiu	+y�_eUme	idr�'Z>e�istwISia�r:'fslage�laFuc�dgnprxels$�a�ee�t;8e:'�e^nys�i�uh��tanU6t:')�aail�d
hn	J'ehl8Dopst�dthe?ori*poa�t�'7lseoxxd3�im�po{ca�'�c>est�'�aJeisc�s
�as�aeiy�er{no]�tmssania�'�c�s��e�oyc	ae	?gi)�knrtUccf<lnr�st	�ei<l�nors�xnovn�'-alsfiSKnli�l�sehs�e�ir�'ad�is�y'&�hei �s�cx�'HehoRw
�ucg}h�)i
danbanq�d�'bi�s	rya"{l`�e<l�n^Q'abcdefghijklmnopqrstuybdfglmnprsv�Jil��ue	id'm�rsvantage	i�'I dos�ufeioct�feWislR\rPirest
�a�ei�sgrregat
�ei	n	oeead	i�msbley�n�slowbiguateids	nonH'�speorar1�a�e	isint#�e�i�msobva�
tEAa	.e�imrta�e�is'ma�n�yiculate�idsteombl2�e	iy,�cFe'#row
a�e	isaeounr�d'm1�rslnie-fHve`ff�udrR�d7sV�dsaߌe	i
�l�'aehilCmorsurN�d.nrn�ei'msb�ni�llJeziarge	ih'Nad�rspl
�uei�'�dQ�s7cna'�e�g	irC�iyaoimha	e	iss	.e	iu
�'�egilmnrstuvraphMe�i�yQZdnorua	�e	�i�stio �nr|aei�sd�'�n�sng�sbfmpobulatei
�dss�no0�niot�e	is>�urt�'�e*i0lsod�ein{o\tos�e	i*�ucnsterK�tecte�is�d�rolat9e�ieint�'
e	i
msnua�e8�i,wo#�nDtdp�''Xa�e!isorat�3eh?�e��q
Dunrth'%�ae	isdn�rBaastge�id�mrs��e	ieo�sus<l��nera	eJ%is�yJ�beid�eptith'B�a�e	isan�c�tei�ominajbntk�t�eiOo,n�ovrssiv=�e�'�esa	ne�i�b�nain�'�e�f	isacmnqsF�so�nbpaor
krasUsdwi	ry�e'mk�eower�e�iKm7scfgthuant�en�i'msmsbranchisa(gangle	id'm�rsuilibr(_itaeblish�e	iment�'se	�maei/�rvo�erur�'�Xe	�i�satu!!rgu(rorurge	idmrs#_eauce	i�'dffrsnkktisse	i�'�d�rsth'
ef�is�u�'ace��ioprtw�ybri��lmoni�yJce'on!ladsvrteK�nel	�e	�i<�l
msneost�i<l�yru�'a	�e	�i�sbl�e�yr�'atVe	�i�sbl�e�yHxa�Oaow�ea=xrst��hihelnlusionh'�e	i'mscfghtvelontiOtvin�a�e	irporate�i�delocst�a�eWist�a�iation�'�Kasrmatio#�nen'#uerita�e	isegrrat�e!�iMoem1�rssst�'e	isdedHnJnieionsuttyJaNi'm�tlt��uouin�e7ste	i)l�ns�dnctiUs:zu{o��v�'es-Ltioke	ih'�ads�cdyge	id{msal<l�taeiolny<lness['tle	idG�msh'�e*ismbe=�rss
a>]ein�vu	�ney�'lantmdbdr+weld>$y'Vii"gi&�udgier�'e	i��lsoMda��nentRa�e	isaeilorursta�ig�t,\e�isionh'aSt��clnr1�lssa
e	iVb�rt�e	i�osaei-l77n�dm�rseJ�n�bn�ove)l�nrit#�en�isae6cy'Ta�e	isase	i>�u8dsVlrsa
eisb�l��i
fln�tess�eWiaeoiN�sad�iJsopv�fortion�'a>e	is8ltei�d<l�s	InS+oK#a�e	i�rtane	i�b�ntio�nus<lYnuailifi	ry*
c�eest�'�e*i�lsutd�]iaeoueRtl7�ig`�lpsardh'�e��f	isau^it�-aepect�'�ef	is�ube	isdspt�eiTNosn�ov�?eaeioutisfa)%i	ry�c}�csdmnrsvbila
e	in�xcPnDseht*
tv��idm�npentc�tiulair�i�l�st�ou��latee
.iclnia�bt�ein�o�vu<vVbte�i<l�n�sa�naIdܘsaeioru�Pf9lns?c;�tte�'fsu�lmnpe�ards�stiyLb$�olnlsa�Be	iss�bt�ei�olvcgt�eti<l�nuishpa�e	irt�aaGe�isaei�ouciuthac{eisUdb,n�ontUba7tg��hssh'�e��f�ib�cuta�eio�b�rnovn�'�asezi<lnsr�'shiZ0psth'�ef	isu�?lrb1�a	e�islnsp'
hi�ot�e��i�y8�e�illab
�i�lchrYstzh�'	ne	ierh'e	isd
hransiti)�v�i�o�yh'�eren,Js9`t�aaeiou)"v�x�'gl�nrsRLaUe�iica!!tE'-
qdmrsbom"balDs�'gste	id�nseifo�ti	ry�c	nen�'as�eiscmnE�sulai�o�u7rtM�ientot�eimsnten	+tdnsTae	ih'dsn�rsaeAg8�it�ixo�'d<l�r�siFo�7b��owvr�tce	i��'d
he�:ms��elgִae	id�nsal�i:'i�oe:'clr�aand�'<sz,+iy*i2�'aei/�ska�rllabah'!�h�sbou3�tM-aG�lM-rc�di�z; atrUiaeis_'s�epropetroC�ve�psIktsec�'h'-abcdefghiX9jlmnoprstuvwxyzgioooL�dt-yoursetlr-=fdVbbersZ>ein^Q'sgsrman�'�nss7a.o�o
�'�<eikostu7xl9eti	�'�taeilsw\yd/�r�tngJsa�Enid�eor��km�oorr�'a�e	i�losl�tina�emi�ldmsra"�ment�'a�e	islrDti�ya�e
�soZradego�se
lrh'�e	isycahnedr�a�o�ee��isy
'd<�m�rss
jo�'I2ms�'�rsjk'�ntf'-cdefg�h4ilmn�ostw!�ys-taHibcelp"[stiAoscu�ilout\�cll%aa>n<r�Bteg<gad�d8@a\}ioi�oa&r��t�o�'as^�riog.�sh��t�IougheioydrtEAeenTsH'rA|sne�isr�s�'-8qpe}iZ�ga�'sticsRz
�aNsNe�i-m�tapp7s��e�ibh!�kltod[�iy'�i�igoeHd�e��ahooroth��oaf�ot/	c�'7�a�l?n	:bde	ilmop�Dtru6m�'dF�f?�rs	�'Fa�e��hiosyen:'ds!p�'	ia�emruit-e!�i�'�e'%or�'�shin�'asri7alu'jaei�'dsH�tdt�aich'a�is
�lTtcn�til8�eianaegi�onttc8qt�e
.iTNoriB�c	+xer�e�Jis7�o��uco q:'atkW'nW'�s�n
'acegikno�sus4stJ'x#'hl�std�'��seid��lsn�o�vaste�rh�gC�td�'\�a�e	i
flsze�)tey�'3ms:'aeiytp'Js:'dl}rl:'�yTen��stp'brooCk�rv�+ahtdhlmn�Ypral�dkhe	iyh'kmbd�rs-sq�,uick��eK�a:eitt�El	�'-a�eisw7yla��dd��ge\li[n�r5sa�Yd`�tS\yatchesb��u�'-�Ob)eh	Gijkmnps#w\yto-Y�dan�hdamHbenepFeo�bc�7ka�e�n�tai�lYVlo�steop�'c�psaeip�'9zmns�t�'d�rsy�en�e	+ges#llga�nge'�r�n�Ygacmeikmo�rst�y�'��d�ah:
e�a�c�etms�th'l�isy�'aFeiosn�c'4t-c�>tu;sthetmyta
uaeio�ulHe<lUs7�t}yflexZOeR�ilvate�ren;�t�hmXu	_'�a8�eshist.mn-eh�(iho"NudHrssouFsoeyvs�kevsk�'-a�Pc
eh�istbcoo�momhm7s�rtgsr8ao�!neiyd8r�e\l�nabcgrIsl}ylte	i	ouy	E'-dh�n�rst	bcdeghjpsalrrre�l'iea�shlrec<k��ios5se��aL�cadS�nlQaa��eppUyoi�na<fr��i�ae��a�'pe[�a�'�
ahosiY�n�'�a	eff�ilseMs?htp'hl	�'_7bel�instyrKWt��ul�iyaso'-tmshof�m�e<l�n}oei�'c�Ci��ltmrstot�essaa�isGh:'l�aden�rU3siye<l�nrst<�lr�'�eisng�'-bcdefgh��ilmprstvw
oyatnd�-o-eai�r��eausNe>�trt�v7s"*tra[9i&fug77hd�r�yai	doll�''�ese�lraN�deiPoart1�ellh'��e+s�maiognhTptk)e	Gisadh'K#ae	isd�ra3orkd3eil+	o{�payain�.t-ggvh
Dt:'achilpt�wm��pal,�e	iift
Z>ei�s
fdz�eY5iTgo�oar�gi=xt6re}oioruw��n��ek�or�noRtae�irTsd�lnsll~�ioylo�gcy��ce#�ln�'�nseiyh'dn�rsh's��tp[eK�lřn_'h�iast��iaeiouybcfgikmnp6Astuvw�yh'l�b<l�nsshouma�'7es
W'nia7c
on �lt�'eissyd�e�r�eYln]e
<gmwa-en
h'shiap��o�'gf�l*?nosyJa�ei�y�e6nn�o�'
�e
7fs�7tn�')�ab	ei�ps�ong-bo�ae�'nssbe_�r�'abs�'mst'riiuc��s�`z �a*sr�g1nuk}oe	ih'dx�rsst�e	ightbipsyoak�r�e�lnes��sroo>�fmpwa�en'shi�per	so�	mi;�dJ'habcdei�l�6nsa��r�c�r2�a2�oow�e�rng�'-sro�rot�r
acdginswxydmrh'�ef	ilgnsul<l�nUsoc6k�'-b	eilstwywor�ol��o�e<ln�e�gae;0in�}si�mor7kw�l�iyk]Wi7y��g�'g	+siJy_leIks�cds�eh'�a*eimy�e�na��ko'�efus:'�s	beflnpsvzb*?llne	i7yd�rA|sth'	e>Bi��nswl�y�'	eo�i�mskh'-aFe��isdϏr7�b�'-psg�d�eiy�eV|nt�aei	'-lI n�rst#winh'D�e	�i�(lsha�
fra�nzl8�eiy�e6n?�gk�ilmnopstuvwle�nUsyr�s�i�y^`aeo1fd7i7sb�eg*io[e7slph'1&e	ish'�eisy�e@
n	�'-bk*?l�opsdfh	ik��oste�eo�wo�r��ei�1c��hes[!to�x��iNa	einw�g�ei�y&�c�deJdUso�sphilatninghok
lmg�ie	ih'd�rsnsK	eisnbge~miy	bdgimn�pKWrtѾbsge*i�'drs'�i�y�'-gsfrreel3�aei�yd7tensh'�r��s�tt��od
'iscs�am'�ss�'bd�'hjlm��sea�Wtuf�f	e	ioH�nk�'Zae)lsnr�she_rh'-sa@AdFei<l�noswc��eleaY�nm�n��spithe��cDqdt`fu�oallh')e	Gis
�aclthugqb�'r�'�s�pabcdefghiklmnoprstvxl#�nr-i�lsp"Hus�t-mtOiDih'Hiabc^hilrsu�
ei�on�'�g�s$(e�e�oo�iovni�kqAuahktl�ta
me�i�ymTp�'-b�ei�lpsw?�yb<Tif�ioarhd�_eCbnigo6nax�eluk�'>eihlswlnetioEhr�'eg�iOvls�'sds�e�'lns��t�'D�eils�n�sJaD�ei�n�s�e�nf�'e	is�ydl�r�9-?ossbeuq�rn�wbe�'_�dsckl�uwyeiF�t�fmani^`nZae	i�"nsydrs:'tq\i�ab9Jdfmopa�Ob�ef	Gil�nopswr�toun�vdeyjd��y
:'�s�}hhtorV�ua�uirie�Ws^mi�/ynr�WttiF5eh'��ei�lsKWty��el�n0ite��rh'abcdefg�(hkl�/mn�\oswl�n>�lar�'t�Bo�a�ee/�erE�h�'dsi(�on�'itO�eermlin��e	�'-aeh	iCosbe�en;�rk%nd��of�ih'eisd�3lrn*6ra�p�'aeioGzy7	r:'d�r�s�en�'�cbtorol�uab�nl�eooKWd�'dlps�}tecnim7�a�oa
Ful\rog�i�u7yoli�yes�st�'L�i�sv'eilonS+oei�tx�'ei�drs	In\tcai�bte
.iFot�i�o�ynt�_'
a&be�ghik$�nor�sFub��cn�tpiley	�ns:';c�'t}r�stmxyamo'<sfCanhH�ec:'Ikhai��eehkst:'nbenran-�b�'>eisy�en�egeldo
�r�'�-�abc	ehihlmps
oy�iu6�sa�o[�re�a�e�lntp'�e�g�a�e�aro��oh��ec'#eiyh:'mw�a�eoma�e/�nTa�eful<lfn�'-#b$fa�e]l�'e$�fdior2�'+-/�sr
�wr�9ah�o
�wrba�e��
_'�saei��pryf�v�'�ei�nsn)�sn�e�felltFeisng�'s^�u��gn`?d:'abefY5i�k&lnsd'
�isbuk�'i�s�m�'hadni)�rs
�ted-pow2�yae �omsi�oc�s��tE'�a?�sti�yc�eabefgklm�oprtrt%"hul��interi�y7c�eunction�'asl�i)lrap2jhine{secx9`tiach'
�asoF�rehlnrps9`tiaF�ao2jras�i�to�eao�xr�segu7Zl	�hornpi�a7cia7c'�n7sop�heurzhi�nnnga�r��	bcjmnprstu�tasn[t�c[lloass���el�ruletaG��{�gpalg��o��doc�uays���eaille#Suhabill�!��en{�tsseldor�f
'-.abcdefghijklmnopqrstuvwxyze<s�n�rbcde�flm�iO�ousi0naior!�rTsgar�emmeR�r�i\�a��deaV�rai[!lcgmol�i..f�.
	cgklk%mrstvelr�'�e<l�ne	i�'��-dhs�tao!w�i�Hh�ci�'-ab�d�eDhfhlmnp�rstw�Wpsptlkai�uY�ca�.us>�h a
�'_�deChiosy:'^ny��ene:'�s
fbb��ia�-urkh'�eC`isehAUisd�rst�'?i<l�nssar�d:'�hikml��ehpo�tlit�th�'-befl�ilmnqswyshat�5to�udn*�w�,aiy�ek�gne�g	eov-e	i5ul�uh�l
�tZa2iaor<�dr�k�mai]Yo�xgt�'Y�gsn+�eeity�'d�l�mrs��e<l];n
'-beh�vil�m8o<swsnorth-��eou�nrnnrder'ln�sts�iyh'em�r�oiAdam�3paec0ni$ gaord��s�ogoin	�gae]�i�osbl��enx�re�'sdrop�zpsabceoruy�
_'er��'�sh'�eisngh��adicnr:'eepTzIkz�!t�lni�y�c�ea}oh�Jilli'Xe �tcd�ghklmorstuzelntric�'a�isl<lesiao�lst�eic�'�a�pislogiyA�c�sysi2oLa7seioulyonuao[uGcd!�ierm�'ast�a
or3�a!�o	�'cegilss@�vardiogra�mph�i7yd�rs7yra�mTpcn2eo�cc�n$�ae�raeioiatcrctich'
�a'isp?s�+t?�gascript�
ԓ'	:'-cflnsttw��aar	`r3�ilimGuaermi7�ne�a�eo��dgi�yce�s�a[.omei�ytrici	�s@�ac�e��sz�a*s
�a
e	i�(pyst�e	QeoWdnuwxri7ssm�t
'iBc�utast�iy
�'ic
�aso
�sdmpterQZmorнpa!�ilrasiW�t6�aherm�i7s7y
am�sdor�'ae(hin:'<sa�nenics�ais��m�t-m�tema�'sBvt�'.adegim�n�psctuwmp:'a<s)�mho#�s}aiyentp'dsg�t�'	i
'lc�mnwe�$i�'VdhW�i<sto�pat�a�eabe�iyr�'da�3s�'cd�lrswum@b�'sx�ta6Kiozo@r�Atyb�cfnstpileh'�nsiyc*e�a�e�'iburMgo�oh'Ta�eh�iosW'bul�rr�'-iQ�sat-larg/�ealh'i<lss2�z+;e	i�tound�t:'snd:'sbu�_r*�eactrdtoa�e	i�tbt�qi?�l)�eiFono-vn�'ai�isli<l�sain
maiyrd�'��i}oUsnW'7�a�c�gskloprjy�'-gs7y}
lra�cr�9oie<l�nr�sf
�ilr�t	aeilorssuce	i�ad'mrscsdmnrwtt�'�ei%osunve<l�n	�sa�l8�tina�ct�e��devntHe)l�sesce	id'Znscte�g�naici�yej�oen�c�touresce�1n4evxia
Fu'	irt�'�lson
tls�g�ein�owv�a=e
abeg�?ilmory'dl�nita�rter)t�'bc�efh	in}op�cs�<eourr�uead�'esάd�o~lain)�tn�\toH�n�'cimstent��rs-mt�'9�isania�'.icsur�fN�ie�Ggs�t��sptW'ioa9�nlogi�y�cs�trelnbPBeiMc
�bcdfgln�rs%�t�hma�1nesr!�t�'ͫdsvAao��fehnfsvrueqPun"�cta{#taٹeluN�et	�'ef
hhipsyen�'xfsW|toesW|tenlc�'-xfefnostightO�f
�hiof�.rvt
�heO�furO�fO�tinO�eO�tnexfeicv�moeO�nO�xhwir�orO�eO�o�d��eadsɎsh�rotein�'i<s�0a
FueIkntnhsos#wt�eeddfod�'a�isuaec�Qucta�eMiFose�g	itdstah@uachroD�mabcdefgiklmnorstuvwybi}mn��pstorateMi�od<l�ns��nh'�d��o�staioc7nh'ais
�l*�t+�svt"zdmpynami�cer�
t'�i7slX�aeWi
d	rs�aeo2�r:'��rw�'-�e	irswoY�roFo(�heorr�sh'h�b��cflsloSMwiy�entnra(�ditTcacegmnpvnt4z�oi�ct	h'a�eiorsxOubK(i-lnovn�'seseh'�lnsr�'asvil�t�aeio�u�sHtcfH'aisl<l�n7s�avti	ry�c*e�'-cdeglmnprstwocpulogra7m�FpticLa7sahlo�urudiogra�mph�'�is�y5�temiuHcLs]WaG$anvu7�ley�'rsJmiSCcnamic
�a�Xsncephalogra�mph�'is�yc�e.�eouygiE-sm�xinescenctst
�e+�i�eical�laeoygne"StcdthanicHa�s
�e�rS�togra�mph
�i7y�'eisvgative�ica*s
h'
�lA�ohloioyW�lreust7eiOisiologi7y�csa�q"t7xl�s
�aisZ�hecept�i
�ochtuo6�pock�')e	GisaU�trgxe iehychnQ�i�oeraJmpe4Xiyutzipe	i�'drsseY�amos��y'Xai�ya�ech'�-asent�'aslr�i<lsiy�lntach7i[uhant�'isF�a-naet�eion�Ro}�rn�'xfsW|t�e'i�n	sax�imlral�:'b�ac"dgjmbn�ostDxzit�a�e	iMosib�il�ey��ainat�eMi�(oa2|eI2h	i�i'bI�ee��i�'�nsa
W'beth�'�Ha�'hsa`oo�r�'�aeis�wtnrssl@ime#�r�enops��gt:'�tst�e�ioim5	det#Se)ricaE8ir�l:'�o�twor$ t	�'}as%ehi}os�2wuro�slr�f!�a�ocdhin߉pqTyution�'a�is"�ei�m��s�g'Vu�oTa�deit'wy:�h�ejnr.eah�o�namac"d}lsttBei��di
NvD�e�Niaei:'Jn�n�r
qs}ancrs:'gft�'�h�aOUoY's^ei�a��u+�nX��'abce�
fimop�stucinsPils�'l[ac��uipat�eWior�'s�y�caeilordklnrstE�y1kcgkrade$"r�oBa�e	isasse�i�m�ds�stle	idmsen(tdl�rzds�a�eing�'slish	ne	i�mz�ltte�rae=�zm�'astic5salK�ldlsuswi	rye'md�rsk�di[us�Fz�a�m�ros*e	ic>�haioycseih'Tadrs6nvtjt*
cid=�ler	eJ%is�yo�'gltnsen�e�i7yogi�yc�e�s�aee�'sd	isnr9`tda�e	is�bDtagi�s�yld�'-sILce	idns�c�t�etai�u�e�'glnrstra�e�n�t�'tei:yTatoeTmnc9t�e�'aste�'s
's1hai�ovi�ctsta	e	i�*nae�ytp'n%vuetml
'ntatgoe)g�a�htt
h'jl�r�st02il�u�i�ei�cno�vn�'ahlsli<ls�t"z
�e	i-m�t	aehilo
krtyntel<�lpshei�ytica�%lce+�s"zr �iFoays*�t�eis2�z�'+;e	iLbsr�eic'�a��i	�saocne7d�me	id�syh'a>�e	i�msb>Yi?�lr2)wia�u>eiosye<lEwn�o�vd
qrA|s+�rh'-	iha��e��n��r�'lsa
ost�eiFon�o�8viQ�f�oi�Wc�'acdefghijklmnopqrstuvz�bcm1teol�'D�e�ils*�wD�ein��gn�rur<�e	�i�s
aehiloruyeRgmprs5�u�Zn1psi�udatNeR�i�eh	iyJa�eKmlpa��dhaliotic�d�sg7npra�mph!�i7yat)�haiinn�e	iKmst�e�i�m
krsl*�aprherK	e	i�mskkcA�aos�e	iudmN�ruyJa
e�i9JipasV,snr�!tagߌe�iouyaU�csU�tpt�eisnonmb�e�rc�}slio��cpaeedi�acdi�a�chs�'-aegi�lI�mnopsu&wyuL�snr2)gter�eadm�rrv�e�i�mso�er͜uic�sh'
�aisamD�e�ac?n�voo�t �obcdglmprst1wlas{rta�errdiLati7c�sin
he��oLeoy#na��elmBxoyo`hsy�meotriLa�o�urphisBmlas!�mp1�shinh'sckpyop�ei�y;�ce
�seletLaoe%�rmbio
�n�s�th
oelri�a�umLa
�i7s7ya_�opeS`r�e	inrgeovna�ei�orbnn
Dgm�i_'amrbb�a�i�yg
'vei�ytic
�a	s�esz��a	e	i��a
e	ieiorekkbelc0lealrceUli>Ta�d'm�rsanchi,Ysze	Gi�d2�mCr�s
:'a?beilorug(e�iln'kmUssdne�'�de\rsr�'�e[KisaeiHcnd�'e�lrwozosh�'-eE�mwspeak�Ce(?i<r<som�a�e�raoimv�l<n�'mss�a
e?isse*i'm8drsl�fanrce	ihad�m8rsm3�otd}fgwma�'_risticJ�au-eaom�biynSMd�e	isa�e	i�msbK(i�li&�dai�.crge	iTad�m�rsgsvh[�tte	i�msd�er=�ee�ish�e	i'mgYioq�u_#on�b��cr}sum�i�og	+hl
�r�aueiu�e�ireiyd8rsen,\gaio"gptpuc.�qhUoU�e	i'm<bl�n}�el�m�se	i�m�sdCe�rcehilnuBo�jmr#�ik)o!Sf�gla}3ga,Yva2r�e	irf�e	iaehiorwbinl5el�e	i'msg6lnr�ei\aopst7cntiF�d�srise�i�'�rsain	ei�msn�[garul@�paoll{ms�e	i0:mss(ns�eians�m%�tcrt9er�ie<l	�s�t�i(l�ymu=�bologi�y&�ce�sr�a'ae�iouy�ac�timnp6lne	i{msd�rmelY�lsc�te�i�'d'msw�a'm1�psac�emnp�st�eis�y�e�nh}�o�!�aGu�et��cX�or�eneur�'isal�i\lhi�pl�pi�y0�ce�osX�t�'2�p#w{�i"ncmnrlJneeraVb#�tcia�bt�eWi#UoF�eei#oylnopv'e	i'msj�o�-a~e�orson>e	im	+sent�'asl��i<l2Zai+o�'�i�a.�oyma�eotic
�al?>ocehl�ns�5eippu+�si'�athibcinophil
<9i�sa�c4ehiopM�rsV�uy_'uHxlet�'�s)�terdmsrqierai�'�ls�dsi�uan:'�sa��icdfglmnpstz�'�aestuyn7et)�erLa�e�ere�u�'asn�'scl�eioc�aid�'LaGsae0ou��umrixcologi�yc�e�s
�am�ai*pocs,z�'�Va�era:�lU�aluo��ra&BelrsDPto�tamp�'msa;�th�'-eis?�yc�esal��l�Atأa��e�oe��teip^Hhg�cahlaeo��laeni�y7c�enomena	o7lcotopa�cltti)lan:'<s+
deV�lom
�iolog	�i�ylar�iyahopxW,i	yel��tia�ulm�p�ei7csz��a	e	i7t��a	.e	ioio7c�tc��dnx�|hym-�oiy�d{�eh'!i(?i�*iottmm}n��elli7a�ouaeiu�;blnth'	�eils	�ns�t�kz
�a	e��i<�e	�iyim�i{oa�e�io-
br�'7�is1hrstriaenh'8�is�n	adlnpstvng��uistan9taite5�rbr_aia�u
heoc�x7�ta'mo1�prs�grS#tits�e	Gie��noportionaN�lltpavca�i�yb�
tl$8eyaolenc8qt	Beiyhe	Inh'cal��tl�e:'ar�beghi�klmnorsuv��wy�'dsticaVb@XtK#a
e	iwmuo:'sthe�n2�bcl��m"wtJ7ei<l�n��os-ln�o�o�'osdnps-tic�^i�ohob;�iterol�acd�ektmn�\st�'�a�hks:'}a��sM�s�`a�'taadsreao'�nadenW
guB�nnmeMyai:'��nae�Ei��s:'��bsttp'�5iTodgmst�ei-
bn~�eDa:':eijb�`o��vioca'is�'
�llogic3aa�e*iosnt��c�dt�l�r�s�aiFuc
�a�istmlnrUe�'0lsa�ekttQ�ziXnwV�hcdptaZ>e�issti�oit9e�it�eisn�ovK�eiEnstipel�aherma7lto{s[uo
cmy)�cac�e(�hklmopqcrst�'�uahorubdlpr��eric�lalod��top�'Z>e�isOtpae�io�b�dh'd�e�mrslogi�iyg��o�p�
oaetologi�yc
�sWarw:'ic�hn�rdiH�diotxo�w�dtchegoim(Coera�ilpthagesi_u8`aerica
�l_'J.aeil�nor	rydglC�nrr]in�Go��iX9t9Tcran�cytzLa�eno��on)�aa��n�osuirtsEAa	.e	iei�As:'.uJ.ir�eaeiy�'	eisn�rsnq:x�'�c}etialh'i<l	�nss7m�tuib}e�n_'J.aes#hiorub�tlish	ne	imen�tb0elr�sv}alta�e�'ahsX@sa��z��Zze�zmabtl	�eeMiFonpia�'ntp'trsp7�a3eao*�udn߉gghu��eari�y�en
 acdehi
n=orstuyacl	�.eter	�ah'd	lssC�u.ehter�a7a*e?irna�il<l�n	�saeinoyn:'�eo�i�llr:'rЀe�''eins7c��n+�s+�z*�ec�vdo�'a4Xi	+sl�i<lnUspiao'ntp'�s��iocghlmsentric�sraphe�i�yistori7yaQZcionguistii7sgi�yce�salK�leuthodologB�i�ysicologi7yQZc
�sc9&iO�gl�sogi�y&�c�eE-sl�'b:|e�sen\zoql�aogiayche8`aue0�tu�rs�c�
�i}aric�k4dmo�l
'bcdghklmnprsts�@�ao/�eahlltypti�uastro��paorrist�'iqsc�alog�i7y8�e	iomatq1i�aidW'ea/�noa�u�reontmei�ac}e}o
�a�i*s\�we3xdaryot
�e�iaOeo:'asgi�y�esU3z	e	i"�ten\ii+�u#�cheormis�mt�'%�isnri�ye'%o<!u{bia
�ca�s"�taehioysiatp' �nk�aythmicbp�4oA�ih'-�abcd��lmpstvYzmwp��sas�paon�kn�d��aeloruntri[cv�se amnmun�zinvect oerti(�bO=ae�d�errenc9ji�yolla-irairv�kllio�naeh2io:'
s�'an�'i�ssza(;e(?ition�s(/a(;e(?i(�io�bo�pv�r
cf�teptic�ai�Jser�
r��aidsadtp!�s��ihmi�ctarHoc�t�e;�h�yehrcrt
�i*po^paena��iGsnri_c3�iop�h�aeio	tp'cdglnp�isua�e5n]t�a
e	iinat7e1�iuajbt�ei%onI�o-v:'Dqdegssce�1nJselicns"zalh''i<lsTa�e
�e	i-mt�'
�is :'-x�tvheD�apritcharRdi�FloraPbt�e4HiFo�'lnrst�+yh'-eh?i Ok<l�nsth��adr�san��d�o�'4|fisutd	Ina`Yl"t-eghlmrstycih�
ancre��aa©std�yt:'}elradeh'$�se$�earaiystingh'<lnssW=v8a$Coead�WyiPb�o:'�e�i�go7sbdm:|o:~ptT�wo8da	�y�gah��i.t=acdlDnstt�e�isen?ctuHi<lUsh'�d�el�ns�eyJQcc"kla�bti�ov;�eu"vt�eiovn�'ais�lr�iysm�t8a�eSi7wh'-abcefhimopqtu�xcpsΆwom�nmu�gnarrtxnesident�'tude]=nbcglms��yetrPb��ei<l_�nsn�ot;�g3�ugerat��e�iFot�ae	is�d�r�'i��psnVvae	idS`e�rsperat"�eAiib
�iyaehilorul��vib��udelprs�rd�e�is
'lse	idnc9t-eiy�ex#'i
�ot�eisnon�'asVbl��i<l	�np�Ots�'[Vei	InSvaenge	ih'Tad�rsquI�est%�a8�e�iae�iobt�i?l�ig�o9d�m�rs�nU
raui+m[�mIdsi5�oveN(ih'<l_�nsgmriXOtmunicat�eMiXo�ieumstent�'�asce��n	+aE�eion�ovriy�eHuciat
�ei�n�olrspat�eWiosi��u�ove<lness�'e�a�xe	icgmrss-mtI(u�'rsua�b
+tta	.eiForbleno�vn�'I�aes�ri�c�xe&_steic�aspli9tair�'isy\l	�n\tfi	ry*
c~eci9tiys%�ane	i�ncolia
�nty�eiMon-ovaioublusth'eis�drVb,n�okMvblith'�eiFosnovn�'%e��isarat�e/<irtBa�e	ismBaLe	ig?ls�teunctg�e�i�y�l�s�i�ote	isdn�ctiali<ls-m��to,�olxu
abcdgnprsttmospv�hiologi�yJc�e
�se�r
�n}tus�'�eY�aeY�l��nH'
%ehlothalm�i[o[uan�
ely#iabcbili
Qtit'Xais+�z�e	i�m�tk|peletLa�ohi
oer�mch'a'i	�ns
�laeiloruntds>Ta�e	is	BeiVb	Inovn�'a��ise<lnessE'ePirssiateWicdlnrtat�e>Bios�bn�nt�c�tra6\nTtietn��c8qt
eizono5�nus<l_�nls�ae	id�e�rds�)a�e6is%ei	nve<lnes��sitemnc� te	i�'yJad�rsent�'a	e	isl�ti<l�')ei<l_�ns	Intsar�bkAta�e��i�yj�taeioinnTa�e	isaTXtl�tcaiVbt�e�iS�om~t<dirst�'a	eisVbܘtnva
e	ijbti�oveh'<lkSns�'nrsuent�'isa�ltC�ei	InX�ot�'a	e	isb�teitu���h'dCrsnt>e	iOo�ueossh'	nei<l��wbnovK(ij?ln�'0�ilses"�sm~epr��iUlnT�rIguisite<l_�n	�sI(aeiormnrpora�eMineoukOsds�tPu��aeisd�r-�l	�npXclbn>Yi��lio>Vb��okMvm�rlDeimnoor�'i�lsszִa1�ei��nalh'i<ls��s�tz$}a2�e	i�scnrcgtZ>eiss�n�ovuishTa*e	i
'plr#�lst�eisnovn�'aRe�isE�r�taeiouh'-cdgjlmnopstvcurri`Jceotullula8rrpo6�rh'�a�e�iFosrricula�ri[otTa�e�iala!�cudicial
\leig@jangu�iaeuri&�ttr&�rse'<o�trdinairiy�e<l	�noy��lramiJdeIoyn�sst3Joerreis5�ttoria|�laegsan�c9t�zJpa
�chr��i�st'maeio�lh'<lkSnr�ss�t-m�tph3JicnaVbTt*�sprv:Si7yer�st�'�e	isIdK6sbdlrel�ra�e	ite�ita�e*is`Vn�tb�'a�isni$(celrs�'-NabdDhfgp5h	ilopCrstwclostatc"hu eiAnpe�Mnhado	�we9oi�earll�'�eis}�i,o�n�irl
ma.�aei�s�t�dne�rpenS^e�iQ<a%Cihiota5o�'d�}g��araTgi��ieoe��totah^�ai�tan_5d:4e�jie}�nerkie:ltma8i
:'-abcdefhi�%jlmnoprstuw
�xy�stY�o�'cabcdefghijklmnqrstuvw�xy"z�
R�beilr7surY'g�Ze���aRn'�e	iic�'��aslaij�ot7e�i
�oaeistu��d
�'-��abcdlprstwstav�e	io-fR�aook
W'eli�d�&rl��oeisi�sf5jtla�t�'�eisann�oo�pr8oa[el?n
eita�i�yt�e
.iUYoimil�e�'i)losuotn�}u�'asl'i)l�i3�ir9Jt�'�eis�y
a�enszg�8a
�e	ia�e	i�;b�tal�i<lnlta�i�yti3pv�'deu�i�osisy+�nsh�tnessHeh'-8d"0o�rsi��o�ucrHaei-�o;�y"�efj�n�e!i�s�'ag�iostogo�e	iot�'>eisng't�'	�i�s}drenh#�eelnrstnceh'Js	h'-�ei=xl��osusafn�g�et	h'-eh	i<lm�ns�{hdr�sea�rh'-bcefgil�Bm�n�tpsvwymwW�ie��aa�.un�khZ�idr�saiW
xel�dL�ohr�e?n\�se@iy!�a/�sie�wa
�t�y�')�lt�aal:'�a haccomplJi�')ef	Gilsulh'<l_�n+sem|sitah'	+snei�en�r
acdklmstu�w5Wf�)s0aon�'Fe�rser��ailnr�WkandW'�se�r	�'Y�-abeiosci�y�e'<oa��cn�rbn�ileym�n;Nfp+uwiU+ah'�e	inse^solxueitf�h<l_�nr�s"�t�ef�ti	rya*
c*ebi-ll�^iaf�ferh'�eisng<l�stin�g�ueij�ol�nV*si�ya�elrh'i<l�nss�tz
�a+;e��i
�a2�e>Bi�'-abcdfgbln��ostzo7	utic�'a'is>lo�yiyпa@uef<l�nukOlh'"-	if�wa�uobnido`�z�gao?�l�'�eisr�ei�yen:'sa
isit)'y�a{�es2�z+;e	i�tiu~c�`iM�'��s-a�Abcefygi�lmnorstdftorsist�aelt��c	uaen"*gp�aighted�l��ndw�'aistmyze�isd<a�e;�i�'d�(hrswe��letche$dnag�'�lcs	�'�aehi)�lsw\ya�ong�'ssx�tE�torwckb+�eoroI�u�'e��uaeiogkio�uBvn�'Ee�sh�lw^Q'�e	iseiZe:'ghted[n�'�eh	ise?ir�sI�mch�osti�ac�ns��lulatD�eyi-m"�tain�uon�'a	eisbE,lnc�s
'binIkdh'-bei
knsforwa>ra�cl]~ldnr�s	e?isdniom|u
�'a=jbehil_�nstuw}hl
�ei<l�n%�s�t�'Uidf
osum�leoard�'esI d	�'��-�eh	ils)�aR�eiytvn��-m�'Ta�e	ihls�dgm�nue>Bi�'d	+snaai�iyD�oei	+ydnr�s�eryis�_enkUeg�in�o�aEclnsv7xcktonbrid�gner:'i	�'-�efiG[lsyfi�Kninl�d�e"�ln_�eg�'a5�ist�'7lsleT�rt:'i�u�anis
�m�tkeio�cru�'0�a	�ei�s	�nt�eis.=mr�'aei�sble�y�'�n�sd�r�')l�n�sntg�'�l�s�eis+mklnee�_t�'	e*isx#'e�rs:'�r�stteY'
�v���aen��cԐicccai�r�c:'abcdeilmnrstuvwyz�lrst�'�ef	is�lsul^�l_�no)Wmi�tj�b�'hsuer
�'-b1&eihl�sa�wybeh",lserdd>elOiai��nE�deachdt8Zi�aerd[/dai^�n�egnre	i�'dhlst:'riu��cfl�tueziarity�e8`a_ekuless<ln�Tenda�ibTtK(i�'�-eI�o$�sr�Wxa�dilt�'i<lss
�z
�a
�e	i-m)�t�e�i�'bd	ils�tley-_�nr�ss�mh'bFeϙi��lsa7�c�gtY�ouffh'FegisyoZ>ong�'<l�nsgjl�ns[�noa�'�dUsdin�g<�tdeilot�Ce�ms˒p�cc�Kn#�px}ei�at�a�ij�o�yW'stow'�eh'aeiItnosUdbhsst	ie�i�od:�r�sng}iw�'-��m&�stravelAln�'is�y�eous�lness	�'Heh'-�es�ho�istY�iaimotFule�'_�nsnin�sze�ih'<l	�n�s
�a�e	ie sfas�t fat�ha&�roYcsec�o�'cdeil8�nsuwe�i�'dp�rsos	ta	e	is�lst�ramn
:'Di�s,oa?�ngreei�5c
�abdglmnort�Huver:'0ii�nuіsinghe-{taeinttacgnt�'�a�e	is:'o
Fu��n�'ab��ehl�istyndQe7�o2�ir}aiol�lv�u��rc7xin�o�taeiouyr*�i}oT�i*�l�tc�em�stagn<Be�eq1icem�uBeoncr0electric�i7sagnet�'ic�sg"lF�i�'@b	im�aeVa�nil�Hei$us�t�kzeio
d.=r��ue)cst�'�e�ih'
�a�#ei�7ossv
akOe�iaceiltu�'�l�sh*e�ih'sdssv<d�nsh�'�eis-m_LtXo��eluelOih'dscciin�e��ns
h'ed�'a�e	islti�ls-m�t��oer�'�eis	nskOhh'�em�n�en�'ze7d�s�aabcdefgjlnorstvxzns)�tce�h'�ess�'�esco�'hesh'�zbeorsur�'bfg�soar.=dil.=llas:'.=snacc:ieio�'bdfg0lsoar+dill'�s�slasD�s>cln�'Pls�'osV�gbim�sul4Xa�duNNss�lness�'Hela�'er�ahkt��u�e^tule_�nr�siotgvn�'asl��i<lj�ideg}ouleiy�'&�bd�rstick's�eCbnl�'i�o�te7�tcia%l�rflnr}ss�'dso
hmd	�'ac	e�fis�0wyr[9an
og:''�m�td�'iss;�hciye<l_�nr�s�e�l_�n�ae	i�ot�='d�rsO�ehO�iyh'-<lsgeneDr�'-xfO�efO�nO�oO�sP	tiO�of�.rO�vt
�h7y	�'a2�bgh�msuyr)ei7yiXe	Inth'be�Uisack7sr�'-sbomYberroaeilti�oiev�'dE�h�rsn�e�gi�'Mma	abV*ceilmotm�*rent�'g�a�e�os�e�'dn�rs��tLa
�abf�egnpustel�rV`r�7gicnE'haeims�yd�r�>t�e?np�'Z>e�isTTo�'-d�egi��my\osygms"*oake�i�rtJ�roYmYo7c�en_�e
qg�Jetri�p�yfpo-�dehrr�'-Ta	e	ist��i�'isye<l_�n�drh�s	Gia�nt�'acdegiklns�glnh'�ei<lss�t
�z
�a
�e	i�tc8�eiaO�e��nl<l7sl�hh'�aFeisn	g�'-d<l_�n�4rsFgstp�Ouu+�npstu�nC+e�iM�aer�'-�b�e?ilm�-nps&�tp�Ll�eing�'�sar[�k��r
acgnst�akiy�eØn�'�ehE'*ein,�ge<l	�nsh'e�iss'sda:en:d�'bei�syogadotj�td�g�e	n��sW�bRnrd'lsaVnh'eikmst�'-/abcdfg��hl�mp�rstwbcefghlps��twor�rumb�'e�pi	�s	�dei�Lac�kontrHol�aig?hua?�ro
Dsig�howe�rto<!ralSMtsFka}�loru�clsl�'
�e�ism�xb
'�ei�sn�gaeisn�ta�kcck�gra�.ca};o�mi�log/	sht
h's|e��i�sTx?du�ei�og7tht�'�9e5ilo�$r#�a�OuweK�rc�hitrex/e��do#�nr�mr]�a��ua�eioltl'�e�isear6�r;o�rn8g�i	�'�a�^e	i<l_�ns*�wth'-bh<ls	)Pab��c!�df��hv�n�LrsorSnY�lt��rorcnaZ>nchikst�
ah�e�'-yJabceghik��lm*?npt6wyb�Hh��mpto�wloatSe�nankov�wa��kdrsy
�F'�i�ms�yuar��d�Uo�e<ln�e�=g�iJeol�n%�l��oail'�e	ischell�a:'�ei�/uloe�in�'a)e	Gisb?�l�'>efisuki
uc	nuf6fl�ao6u
�'cF�f<lm�nstzhtp'bu(Aren�$t�3eingh'<l	�nsgpT�rswer��aatrictmkimon�sills�ie�'-O�fZ0rsaf!�y- �s��io�8othoh'aeitVbt�ei�fn�o
fvd�rs"(-<lnAWn�tӄezh'	ne��iN�ly
aeio�tu
�vybcgikmnprstuvwxy�'b�se�iyrgas��t�'cr�kisPd�'-egi,�l�m�oDjprswϑalla
Fu'?6n7rTt�eing�'�lstious\lYnanc9tae	+y&�hta�of'�f�l�r�'eisy�'drs�'Js�en=�eg�labeimy�eo�yano\c�t�>e	i�s�'-dln��op8rstptroo��fhroAw�eA�i�'�croof
Z>e�isshrows|eng�lo�s�'�esa��b�'ad"gl�kns�geAr�rel�'e	�i<�ls�d0�t�'�|jp
qsUba	e��i7ye*ih'�A-ds]�uhk�'-bcegilopyF�pXaubla�aL'ud�rsst$�u�e<ln�e-gig&hYvoi!�n�'5es�'-b7�cfhilm�nstuwf�'htwo��oZroeo5&aV�veor�u�d�
aea02d��e.�ioot�'Z>esead
�s�ura?6eyndh'�es��a:'eiod[�nrs	eis�ye�n
qtn	sl�s	�e*�a/obnte wrct"*hh'e�is7yd7ri�s\aioru�'	�efils8`un�ge�so��mr�'tVefilsu�ln�ge�so��m�'�e	iG[ls�'e@msnse?�e�e	is�8oacdeimsttGuwx�'bps��w?ait[�ei�iE}k�tegrma�ue	i�ldW=lsc	irst�&el�iy�'�^ei<l�nsngl�n?�yscIkhin��s,�gh�'	neil>�py�ene'4g�el�iycherbG'7s	s�'�eitu�bcn-otuf[f	ma
kii=xmrHae	bcegmnprtbertigib*?bkh'e	isdrh'�e*is�ysd'r�sht�'>eEtihlpsya��tfslam�'1�msiy��e<l�ncdgthh'	ne�'i��e�'-e	is	�'>eilosy�eneg�eXof��f*htonUOeh'-fpsflopR�pslop�wpssa�3e^�isyjbnth'aJ7e	isytio�n�uh'ste	idRmr:'acd�egoprstuwЀyth'	a	eisyng-Uspo"ickulaz�e
�nat�'�e�{i��msdEeѾgsdr�z	�'eYVg	ilpswdrigtht�'Z>e	isla$�ia�Rt
�'�bc�e�i3m#�pswl�~opO�aaTzlh'��hps�e�	i�yaeiEHs}y��'lAlsns�t��c$�t:'�c@ocdP�flns-Aa�Fi<l�ne9rg�'}est�'Jis��s�'�eiyen:'r��sb!a��is�anrehtc�!dei�y�eA�n�'�eisy�enshh'	ne*ih'ce*insharth'	isdr	�'b�eihl>�p
osyse�en�e:�g�t�'bcefikmnorstvxh'�wbsstua5n�t�'-NWnsc\}uf�'�el�isyd�'i<l	�ns�s�t�z%eiy�e	n%e	imoV,xgkh'eJ%is�yd�r|yrxeiosce	idn�rs�c�tdnttRa�e�aecmpqsahr	bR/retMerOi7yol�lyuinoYlcop	Be_�i7ye0t)"rh�!th'�a`�e	i	�neity�'d��ls�n&serh'�e	isyb�i�'�e.ginoQ�nh'-abcehg_ilmn�iopstwbdfpy-7s",n��w""rip�sa�pVbu�walr�yowni�tdatoxc�r5sal�fem�a�a�e�o2e�napms[teh�pwe�ea(�tr��a��abe�Dh�'as|
m'abcdefg�Ohiklmnoprstuvwxyc'sj'll�lm�'�el�isy�'1�bsa}hiuc9l�cs�'�a	ne	ise	id�sdO�e�'st��ai��u �c��dl
�'I.bdeghisy�oyn'ipsxls
'�e~miyv�o'e''di%�o��s8Db	�lVlss#k	0ad:egikls	h'-a&�b	eC`i�os��oyLbwa'4ye�ra�c�oBtcgr�t}6e	�'-eilst��wdstwanc�e	in�i_o�
a�ast�o�e��sioflkr-eic�rsity�en�el�gon'�e��aio�yc�e�l��uw-ha_eVzis��u
�oJ�u��o��taelha�u�ndt�'a�el�n�u:'�nLe	iyS�'aesinneY'blea[u[ael�')�l�sno�t�y
8bdlst��z�'@�gis!+tg�et�-u�'ehi�Cpsd�rar�dnsh�e<l_�n�3cb�a�')�abef�f
cghilm�Mnprsw�yaz�orll�'e!is�d�ra��i�kt�d8rf�iqo�e?neio�sgnh6tP'g�.c6Koa�e�nrS`kal_�r�dtaYit��a�e��ilotogg7s��eil-rdk�ie��oife�0o�'psei�d�r	Insh�l�nabcdefgjklmnrst�uw��gmy�ein7aifera{o7s7l�n�'e	isd	r$Eaeio7suya�sr�'a-e	isdds�eing<l	�n) sre-nryei	�'-�dfm�prsfede5difuelCd�,e�bn�'Ta�e�(h	ish'�babcdfghi�7jklmnopqrstvw7�eod�ein :galosth'eee	i�lsX�o�uA7ae]�oBuc5jkova��e�viIohraor
�uther<�eZ�ipseC`i-nrsound�'�e	isaE�eondh'�esgnFe)l�nneow	ilnse�d?e��i�soa�e�o�n�sa	osdImich'
�a*sr=.dae�Yl�
rw�ao-rjpuarterh'sunaehijkt
iwea	in�rsbiXlaeo,�d
�e�cr8ek�tght�'es��d	�'a�ae	ilvrsl�t7y[�la�naeho�Gsll%e	isoug+h�l�perh':xm�naI(e~�iornK	eisngH's�msreint�'�e	isuZjdaeiot-vherei's'dn'g�'dx�rst-ffstme-!�nj;a	i?nvaeiblGeyhan�rs�en�Hg�e	i-nm�t�}u�'�efnf	ils��tifr�torn�e<l	�n
�'aefiG[losuQ�b7el�n7sth'di<l	�n+seh3�y�ns�tPz
�a	e	i-m��t�'�eist�Rove�l	�ns�eY5id1ritZtcdn �a�asa:'�nla�'�e
�irs��tiRsi��cest:'�Ceaeop�twys�keax�bok	t)eeoasrrenth'�i�'-a�ehinrsuO�yde-franf�cl��ecrwomY5iightiO�e*fosi�tnrsim�oight�'�lsaen�B's�(sint�i�o�yae	i�t�'-dstteill%einBglin(gell�laI(erdh'-eu�i<l�nslo�od�r�sst�a}eil�'isf
�s
�zeBvrer�'�e	iso6}mcAglnrau��lE'-�a�^e	i<l�mn
qswmY�uoutchhessd�'e�idtaem�i�l�rsti�od�r�'asin�'-)eh	Gishp�e{eeaAd
�'-cfMinpstdeilpswivSm�yn-��heal�t<vo?squ��ah5Wehe0to�l�eeon
c)n�usc�oqor�e�cuO�ehh'<lsea'eltl�'-eu�isr	udr�'�s�'-ecfghityhui�nd�slA�oou�l)�unt�iss�e<ln�e
qga�o9rb�ios
�u:'a&�ceiouy�
cegikmnpstu�yz�akt
ei�s�d�r
aiuon�u�'a>e	is9lT�t?rntzM�eimo]rssle�i�lsr�sent�'a�e	isr�tS�i	+yj�nl�e<l�n	�s�tt uei�'Nad0l�rsGgwng'�(h	�s	�'cgk�nt�z��'ehi�kos�'stp'c7�a�Woiste	iTuo�'de�rs's%,t�ns
Fuo'cato
W'(Cn:'ips:'}ehiol�eX@bnei�'7s�a�eij�l�nb
�'efil�ns�tdtln�r�ss_�tour[d�trt:'��e�enscgen�s�hiynbG'
W'�tic
�a�ln�ois�epse	i0��h'dsse!'rh'erssrnaili<l~�s$us�tz
�ae	isd[vrsi\!c:'d7�eAgl�'sutelen
�c"�te7�i:e��izN�l
acdeimnoqstuyk�'-�eisyILo�e\l��n�Gs*�ktp'tmader�Eityric�'ak�t:'s�t8oic:'kfttp'�es-bdhryilm	�nprstwz
bfhkϏlmrs=uwo	raol5lr-m��aandei�d�nE�l�AnY�iar��kaE�nta"<nheZhe3a�io�rsao�r}rteee�i7s�m�oaonde%dl�Xdaoync�de	i�'d�rsad
�ei�sa�e�i�nson�'r�s�i
oyhT;oo)�ni�d�6ita�oyn�dle�i�'7d�rsh�%oinkFe�{iahm/ir�y0�eeel
ei�s�d7r`aeih'-�rsdf:rv�rngh'\lUsdg�haon%t�ncH4etzh�':eE�m[	w#�zi�/y6en:'�suen�ct5"a��e	i<l	�nschno�'^oe	is-e<l�m�nwf��an8r�s�taterd�'s�e�oh'bffs1�tf�woa)ra
hwd�'�,i$�'la
:'acdeglnpstvzdbr�'2�b�i)ls�ya[ktstsee�'�d	isi��o�vion�'
�alses�sa�g�ydln!�r
qsz��a�\c�m��rd�')e	Gilsei	+ys
s�_e�l�n'&�h	Be	iaghis}a�eC`it�'eff	isdn�7e�isda�i<l�nTTil�'�eisy��e	n?g��p��byc(e(hiks�e~misyoZ0ni�o��tK�zlxOlol�i�ozh'�e��ilyei�y�enbc2�dgilmnstuwzish�uek�'->e�visc]7o�'gms>e��ia�e�nrche�idsspa-w�dsH�sic�'�zk�2s}mdJst�'es:'Jd�'-abei�ol3mrh�sw�lpE�a�g�lenchekrssd�n�rensr�'s�m'�w%Apunn%e	GiI[a1oaht�'b�e��isyei�lt�eu�ik�th�'�eisy�en�egfro6lua�n�zr|de�Hncegimnstti�o
�fhau�f�"aivor�e{ot
�'al�cefi�lsyriaEndr�eul^�l�n�el�n�op�'isy�en	ses(s-�ztr�uate�i8d�rsic��u�'ee	i�ul��ea�fl�i-ccp&�c�e�isscdeghjklmnrstzhkos:'�i	��'yJaehi��s�w��dr��'��seadsng�sxant!�h��d?gashlnrer'�s�'-	�e	�ils�c�Xe	�i^t�agi	?u6esyti 8vreg�ri:'t�ewL�y~@suoy�kaUtmab�cfgkhlmns�t�+nrig�hi��oll{msJ7e	i0:mssh:5u
h'-bei�nswy	bdfg�l��pstwl8oo��o	w�rronA�ts<rs�cime
�r`aac��ksdr�s�')e	Gis��tn��s�xto�lr-fleadi�une�?sV�oabeissyr�
olner�i�e�g,n�'-acdefgiknlϑofur0tti%oon�'a�e	i�lsl�ri<lUsst�mt
�i�s�iy�'-a1&ehirs[u}yrai�Msmentalh'��i<lsoldZ/e	Giganaise�icr7sbrHra�e�l<rakziaio��u�l'b\!c!Sf��li�udHe�scu7�l�'�eǂisyeQiy<�lsr�sh'��m�'bcilnorstu�y�zeilo�awsh~e	iula7e7r�eous9e<lnh'�e	ios?nug~dh#�aeiC�ssth~eAUi*�urh'�ess�ei�uoy�fen�e6lghT�iwer�s�ae	imsdBrso-r�sangIklncu�l*�ce�
hist�'bd�elsy@wo�x�abۆflno�i-lil��an�'7�is�'b	ne~mi>�pyudEgiy�a�eE�l�nJ.i$�ou�zl;�e�i�nr�ei��os�t-mt�'��isbhz�'b�eiy,)aE�u�e<ln�e�g-wuz�zdisy; w
�i� ����ti/�m1
hhk�r
�'-2�7�8abcdehi<klmnoprstuwyz�sturin$�go�i�b
:'bcdefgilmnoprstuvwyz
h'abeflorsr)�dgo�e�ilye	ih'dJrsrdi��n.Iee	i�'d�rsp�nr?boiel:'}a#�lr
uadfgosb?o�
e	i�let�'Ye�rs7ylir�n@AdTal:'i<stc:'-spea_�kacv�hf�'v'e	ish'a��egsw��r�e	ile	ih'dsriwcta�elmnt
W'�n:'yh'efi\lsd�rs:'
�vwaungH'Usab�i��yorou��g�'ehs>�rers��b�'abeilosuvw	�'chnpstK�xtWaioca
'Rla �dJgf�tag�oeia:'�nra�i�'*ans�'�a Ob�cle �a�eto
�'abeio}�sDwugnMhth'>e	i<l�rs�}ela��dd�g�or�yi�y
ha^oec(em,np
Fuv:'�Oiau1hfol[iaVln:'nN�pw�'as
g��a�s�i�op-rspi:QnQ�hwort�hm\�pae�inio:'c��s
�zmetFe!�r��sarJy	abeA�gim�lo��uy}yiloܷag@e�t�DeY5ilC�oh'	�e	�i<�ls�'{�cdfkl�npU�rstZEoee��p�ay!�aXclmta	en|�sFe�e
�ioVJgphP�y�e�flnarx�a�'e6lgs�'s�aosy�andeg%j*?ntya��ehlTfi�'=anaf�g�)s�'-be	il5�mprsu/t�u#wg�aA*ousB*tdr�s@aiy�anon�'
�il�.aen8�e	i�otkae�erEl��r�tme#�d��l�'-e*ipsto��oh'd�rs>e�ih'�abcdI�efgilmnorst�vtyz��'a�e	iIl:osgne�'m'�a��z �io��naeiMn�in�'	eis�a[Mn-mniuA�es{�hnkellaN�lontua:'nylb�saldi�'7sain��dc�'k�s)e	Giyen�teirt
W'�e	is�'s[tshh'e	i�mdVdestte	Gi�'�d�seiou�yt�'s�tcsUko��nt�1e�ite	i'd�rslti�o�tO�eth,�n���'-i�bcehi*?kl(mopstwcpoo�lerm�eoi�nb�y�Dg��os�'e	iod�r��s`�lfiyzc�eH'	Giig7tht�')e�ishlmoAl:|iekxth't?a�e*ij�oseiyd��rs�enegx�orioucti�d�sceinpstnC+oemS�interiLoti�d�sntesti&�nom8ei�yceal<lF�o�uc�top�e�i7yo �mla7e�tor28k	eh	ilost=uw
�'acd�hkps#wu'�sxrasVhe�me�o
W'heH�aerh'	e?isin��b��grh'��ass�b_'�oX�i	c��dglnrstzhe�o<l�nr�stie	i��uS�'�adrs:'i�l<s�st�el�n��eyavs�'e�iMas#i}6eiy�e��ne�iok%rl�'Y�ls6�t�adkpTlZ9p
�'�eisyh�e<l��n�'elnsr�st|y}ec.o��d�eaeipu��z:'{nh'�bd8Dl�rstte	i�'dFesah�ln'�nach��omZ9p_'�pcs
ԓ'e2�'/�s:'�2a�p�'acdefhilmnorstwyr	�'`�b�ed�h�is�Bw[yhi&fA�kdd3i
'-d	ikxlsvzg
De
h'8�deis�y7d\rp[enTsYe7g
��p�ee.{sFe*EfernUtnPDis#gst]�honog�a	�'abcdilsjbtin�'տe�o�svi{ea��pUba�e?isdgni�xteid}rbnr�aa�'i��lmo}�sni:'EaYs>eioyn2eglog4Xiylogiaycc&s:'adegi5Bl1�no�rsstu:'rae�rr�'-�e�i�lqsfl*puuYe�'e�arstvaio'lt�'B�-i<lnss�tza+;e	is�tb
�tK(il�e�yi�ma2�e	i�/b$thi��p�eiFon�ogvch'
�a��i�ns	3s�uhei\�s:'i7sc
�ai*ssz7e7m�ttaie�vj�hG0ac�e�it�uu.laA�ioli<l	+s	+aur��i_acmtid�-a�e�e(Kio�y�x�'eilorsel��e�pi<l�n�al
he�ie	iydfm�nr=s�wolkh'asa�en�'m�li�y�eMffi	+slect�e�iMos
Nn:'bcdefgilmprstotaB�naeho4�rychei
�d�r�sntric�s
�a�piermiW,cstvronologB�iyrU�oC+cy�ae�uy�'s��ti�y
hcenamngineerifY'OvrraphFeL�i�y7d|�noncgi�y$rc�e�saeogSQn!3tneti]�c�st��eri�yc�e�a(isrphologiycs7�ap>ahoysic@ja�i*slitic
�a*sdgAiei�'�stoto�w�e�zaen�!acptyien�cti�f
�saHtart��iate�gnchlr~�oi��naS9ehrcg�xR�g7serm�a
�io-�p:'ab}ehimorstuvl�Hnrdtp'��itrHod:'}os%e
iar[dtao!cttrici*sua*�o�'apDeis8in�'SMdei�stty�c
Fuox�w\!cnal4Eth')lnitmoclra�cogi�yc�e�s�-aioyn�txg�'manderh'�eY5isht��w�^er��und�'is�v��astu�oaiumlpto�'�s�ein�"oculat�e>�ir�-a8�e	indheit'h'-ahst�u�orich-q�u#wse�3m�ae	iyr')es:'sCeb$�gu�rztramiIkn�rztrami�An��saeio�quM�zns�tzaW']vitϝlnvavf�ia$n�e��nrtjkto�'eis�ds	In+�s�zble	�ll[isut	�'-b�e	ilswwri?�ote�pit�r	�sQ�e5�uiy�ek�nrioteit
cr�s-e)�t�Dlrk��habdefglmnoprstuvzcnuoz�mB�nntl�i�'
me�iksil�Yl.�q�beilr�seo�sr�t�eisn^�s)�n!Js�}u�''dr'sj+bngE�le�Htaltar�'�i<sdeiye<lndr��s�eYg	i:'�olyngau
ftor�Wd�'�Fe	isw�'agos	bcfhnptvw�
i-LyGyy��lert?�zot)�tic�s
�ani8xon�n7solatt�'�s�e	il�sneiy�e6n�l:'}abcdeglmtert�'}ox�shr(�ih'}a	e�is�a�s�tam��n��e�'$�aeimsd�rs#�tp#�iaegnx/o}mTn�'Jd/�sg�(h,�oaonr�^t�r,�uh'��-sbclmpa6lrackh'es�rre~dt�eick�'�rsy�'�e�9isy	�'tagkmnose�hirr	�'b�e	im�lsyrean]�a�nv*a=*ie�igo�'�e7si7�l�eɈi}y�'r��mb�e}uPBeurTgcr�tvon��dgio^na�Yn+�sadilD�otfAcru�fd�fo	e	i'�lslambb�o�'��ff�his�y�e�sh'Z>e�h�i8ossb�0e}hm�=torn�o'Hehssu~�blsiar0ne�tp�pei	h'-a��bP'n�rs��taw��ajbwuangH')lss}am\zo
�'�saeiouyP�bcdimnrsuxzei�Z>e�issaFeoJs9l�tlogJ�iy��	h'd�eil�ns�yei�ydnr�sJe	naotor�'&�isl�ai�uiyeotm�eo]n,�s�vR�mo7sru�g�i'%or�'�e!i�scd?�se�i�'eso�u	�rse�Jis%egnstwdoo6s�'-b�eDhfh�+i�lf�mpwybc}
lmploowL�e�xi�~w8{lak%e�piape	�rlol�wouOts��a*�aor�kton�hbeg�FicoG	mu�xeiFea�naenmn��s�'�e��is	eAUis�'ffs�'�@bdefghlnorsvao:'�al�mmwieCl3i%yevxai�vW'}ah�irumeb�rcm=hh�MioBHw�yie�wb�xdm	�n�ostl�b<l�n�'mperh'�e?is.�ssta�ndiNRoߩe	�nrctzh�'�e�i7yerh'a�eisyt�inlAgh'Ce�[iy
abcmoprstuvwx�mbt�'ae�iosuli<lUssz	aX�e��mt	#a�e�i�'-dst}
ltrkaorottFe�i�isla�e�irE8i�l�n7Qa!�hkenspI|ieJsrul
�a7i[umS�p�'>eisy�e<lEwnh'Ypi)'y:a�efKoi	ry�c~es�'1ha�e�	io	+ylaGlta�ilizS%aceste�)re	i�'d�l��rs�'-�
eisw7y�'wiXe�no<xri{nce��ims�otaoT.gcsorti!�cFQa-eiW�d�'-d	Gi�rsysnif"f<ll�m�nUs�'aeistmt�ai7cnhYi)aainu�'��osnKo�e	ion�'�i'%os�ycnpe�iorio�dn�'ae�ste�'dJs�'Jsl�'Qi�s
�glp �s'�i�ls<*rd[ne�>bh_'aG�o�tit�laeo�ph�surn�s�twl�'�eissy�en�enis_�icmswc�{heio�'��lsc	sNntic:'isP�manger^�u'psg�
�'�'-J.abdefgilmnoprstuvw�yab��k��sA=het��w:'�dlt
�'-��b>eh�ikhlmpstA?k�lmo9u��aeepFe��iout:�ho6\score	Gi�
renS\d�'eh]Wis7ye�'7d�isZejkuZ�c�'btilse	ild�te	ih'd�rseygoEhogo[�o�e�imtac^�kop�7p�'-acd*�efh�ilm�opstuwzdfam�	uchneoa_�rrsakarwfWu�ha
mem�ru�"mnZ>eg�uhaod`rt�hrsak�keY�oa�bdeiyssK�lness�'�e�e!gk�novo�a)�e�opeed:'<sha �ae�n�ii>�lbrstbe�l�'isnUgh��ate0iS^etf:'gh*�ole	ih'-dCr	+sb��e��ojgantg�'s	-)�ereBxo�'�d�s=acdel�fgilon�n�'-�abefimswp�glCgericl�kn�rs	:'de�lnrsoo3Jdsr�s�y��eie[�n.�slds
Tel��nock+�s�a�`imtwit)�h��eort<h6�a=y/�t}iot�hI�aioy�ew��o}	ph'�i�Fw%�eo�cpurTrlTnade�gik%nouvzowl�aiana�l�romet�eriycHaGsclroccHaiu�erheoah'slea'l��bill��easole}o�s�z�'bd<efgl�iklmnpserh'Gs�'-�abweehil�mno(kr	+swyfh��ln\�o\utor-not_
heua*rmour�Gea�lt�year*�t��e	siy�eYn�e?i�oil�nl�'�s�'e��a�'b�el�isy�alNaeiy
8
'Na�d�s�enS�') s��aegowoq�w��oaNl�'disiw,i,y
h'i7yiXeYn��ae�i�'-bsd��fE�gsstep"ph�eumpsh't�e_'j�h�0abdeg�(hikmno�ptsyacheTvio�aIkmn�'sDqvto8u�'dns}yo'�g�ae	io�'d�o	rsn':Sis:�zs
�eln�ly�e
qgh�ya:Qlahlndi�sU3z"vi�k��fhlpsa�e�w�"ieto�laiymer�'s7yp�'5se	isy�pcehM-oth�a
�ebPBo
:'p�aisc:'ai<sl�_ls�Ez(;e(?i[m

�a�ea��dglI�nrtc2�hne[h	i.�a��btddm"to�'�efs�ua�end�'isse�m�'l�isy�.8aetrnae	imosVbnd�sent�'asl�i�lr�'Q�s[.%e�n_'a
�l�orsu
�s
M-s
�s	aeiouy�bcdefhilmnpsts�uvyzh'b^ls	e}!isyClcei8Dk�'dfls3i^�ugaeen�o:'l	h'av'ei.lssu�y��b�teCbnonc�tm
�eal�n�ti<l�nss-m��tcAmo-r(�oftY'i�ati�o�'	eu�i�osam�'}escQtln:'s�'�eisy�en�e	glQ>o�'imopsnivP�oaCe9jiylrJst�o�'C�isicali<lns�tz:'�spho|
ni�uan
'}sCcadgi�nosstu
�v�d�rh'acdefi<lmn8opsu�m�uhe�	i�~sadu�'�dsg(�h�er�s^uather�'�e	i<lslooq�Kus"�e�iao�'sAtthe�re%Cip�shha�'�rs�otan�Od8Bne�'m[rsoaut-e
�i�ydliF5oah'�'-c>�e�(h	izos%vmainHthe�smanshi��pla�eort�i�l�e1\icrmyt�e!�iehI|np�'fs)�vru�i�eIh�'eiosdm�eJicntE'�an�Xse�ilogv�i�ylO0eu�ipsh'Ta�eZFis�'e�ih��i)�l@m`dqrydrso:Yoeiuh'd�]f�rscfns"�tc�uiy*
ced�Ars�i
�gssit�i�o�yaei�l�ydm�l�e	�'-dlnrs\ysYtil�g�'	�e	�ilsy<�e	�i�y�e:'I�eit
fd�o��d�e��mnta�i{o�yst�ein�Fov	'bei�)nsa�ts�e�d�rs	�ns�h�goneu�i
a�bcegimn�pstwyste~miy�'dp8rsa�r)i	h'-c�e�xh<l_�nsaghnu��urandcs�fmphild��rotL�hai�r�deeiph��eR�en�coa>�t� i��o�cd�k�lnrv�t�'�i�sy�'��-abefghiklm�nop�Nrsvwwa��aeou6\l(Art3Jt�ls�;h�'d�4r�si�(l�
e�n�arocer�'syo�r�u�egnsI heeApae~�iynd�e�'eiCm�rYc�s*t[s7taeoilh'e	isd�rado�wu_5ncl�urJkea8cblpt�w}�oee^vY�io�0n%a
�i�e(mio�'�t�'atmgo�GrritmyaTontp's�EgjlaW�d�5fovdta�eiaFenn:'qse�'s
W'b7^liD�l��fQh�ac�eln�pz@Ah'behhilmns!+ts�e�d�rsF
t	�ns�h	ayout�hess�'�ecPa
bdeflmn
�opstvzbFl�'d}e�^ils)ele	i�'�\cdsockh'�e	Gisflgv�'��e�i�s1�a
e*i�ofio)�n��t[vnlsh''�e��is
aei<lm�nosy.�cldpDk�i�'sd$�s�en�esg:'�eiKWbh'{cd�gnsh'ei}�sl�rwalXBdng�ls�e*i�'ne	ipse*ih'd�r:'ae�ultwi�loful�Cv�'l�	m-eiy�en��o�'	+st�
e��iy7	ezl�ei	+y�_eA�nac	�fgyikmopstuvwyz�n�tx�e�'�gc�k�sm�}w�
y�Femtv�'eY5isdcr��m�e8�eiy�e\li[nnei�n�ul�bgsv�zra.Ei	�'`�e	i<l�m�n
�uen�Coe2�ix�otsq��uio�yp[eYn�'es7dscnp��s�Othh'�eiy�e<l��nd
�'-bc	ehVzi<�lE�mnswpstF�lquir5Wro-a
�iaruoieakMein]~g3rlotHh�OouhthkE�mwemeeep[�e3�eaote	+r��r�'	ei�&sw�e?narK�ee�'l$�rse�ilssd�re	idݪrhaFe*ilnsth'	eisn�e�g�~-]�un`�enH�ybdefmn}sy�'bs	e~miyta}3kg'�e�ilns�'ilsng.l�sing+lF
s_�wome<l�n�r�sf�e	Gi<l�nUsb�e�mplne��i�'isy�e<l�n�deg	i�t��wbel�iye�r�_e�D�rp��hO���new�aca�mh�t
�a�eabcdefgijlmnoprstuvyz	cdlmnrt�vyam��oaelacquja�ra�nuij�v#�plou��pla%$t�'anLJigi-otzbha�n��a�nasmadnnitx#'/�srmeiFoy�e�'�i�'e�hir]�s
d7e�r
'an�n�/a_�o!]iaema/�lmalao'6naq��uernato|�r3�cgeon�'}elnrsv{pt-mhinrllCaseyW'gs}aeiyrlla�'ssth'Ta*e	it�.wimaN�t�'b�e;�hi�vrsoomnaC�ta
rf�'�ua�sgenh^he
ԓ'adlnsty�zcnae	i�oPb�nh'a�bd)�l�p�rsdelt�'Fe�ff�hs�'flyut�less<lGnaeouAmm��r�o��t�'�il�sye�senav
�F'-�nsbissaRu`ee�s��ea�raaarrat:'�ianw�aac��d�fxglehp�gr�Yg�'��aeis��yd�tBy�7b^oenMv	�'b$�dem�pst,)a*�eoh'
ioss<�trach�eiy�eneghioe!�l=�e�1r�'@bcdfgkmnprstwyot�tae�yg(�rq�arx�sig�rh�Xtsesy�'V�i�s�y�ae�nta�=l'aeiy��rdl��rlza�'sseng/�'�'�|soiwn?�t��dun��nh��ilmti�obpings|e�i�i�o�CeMh8DaaJhfae�pRtd��gk�ln�uw��ahao':Qlv�a��e:'hsth'*eiy�enVFge�i�y��t�'a�ei�osyadf�tv�'�o�u�e<l��n�'ehilstnberӝg�|rerr%�eess�niy�e�nae�+iusy-pe�Brdr�'�eu�is�nraQqlgu yimidhi�rnss�9o	�'a1&e	irsv��ne�rm�zaeylni�a6ogvqjn:'d�Wtol?i=yang@i:'e�d$ tbmnprveZ�in'pd�s�'knk�psh_Jaaosi�ta�u.�sl�iaeoercologiyc�e�saBlydccologiayc&s8`a�ceAich'ps}�e	ii��t�u�y�eltafot�e�io�~ral	ch'cmpsomM�pagn�eilq{lBa
cop�e;�i{�e�io�i��dt'�eeb�Cont�h
'.abdefghimop�qrstuwy�z�sm<s26�4�5'�D-abcdefghijklmnprstuvwyz�p<s'eo��rn)n�gs:'taeikk$(uar:'das��h�blt�i�'-a>e	isufor"mb�ntpi!gl�'ison�'3asa�e���?�lTtik*�eh'a�{beilnstwjbt1�hdro�t�'sh-pn��sgE'se	i�'drse��yar�wivis7mkto[�r	adejd`l'�nrs�{m}rH�aXoEaP�s�'!�i�i{o?�p�tm�'ao�stio%"un
DtcF�glApm�rogiyc�e�sHadglprsiyadlnaHmlob{i!�yhtilia�c'�cs�yrhaog��eic	nid'Hasta��s!�t%�in�tHe2i
�'s%ae/fgils#�ul�n�rs�tai']l�i1�rs�'�ehogLlraph}aFe�i�y�Men�'d��ioBrd�fK�klprt�a,�e�'�eisnto�n�r��h�'-bcd�egj,il*?npsydrstrSMiL�ya��i �lplit�Mtr�iar
lk�ne.�ua�dWa��lut�'s"t�oreS\ys�s��r��ei-k�ni#�e�nbptrea��dlritl�ta?iy�syl�ei	n�si�'a �nj�'�e�ia�ekl�'te��ru�y�'a��bcdefilmostv\ylh'Y�ls�y?a	:'ad�An�rA|sty��k
�'-bhm�nptwabcdefhilm!�pstwynrd-h7+a�saSeelr�Lc<ko{�ux�oeo�etAhaer�uG�sntu�ro{wY�eup�la��t��aini��saeo��rau�rur�ls8\n�	eif�g�va	or�satyhe�Siotas-oSMvverei	g=eei�or�6rm\{b
�eY�aO�uaivyttedE�l�Anea�r��arveearQt�\oen-cn�iy�'w=Moixo4m<ai��ot�'steJdb
Ddfntu�tp�aeos�e�i�'-eimosu#wst�maltyuWzjb}eur
.tar��k>e	iosw�'�isse	isd �eta�tcinaot�eMiogen�'̕isXBa�'eg	insdsen�'�asa�':':etwe$�az�e�'er�ix�osdr�'-e	ins�Snd7se4cae	i(hd�r
qs�'abehilmps�l}nluN�erg�'Fe�srJssley rang�eaul$ sJt4c}lton�'� ie�i)�tae��iouyrskj��o�q��dr��t�'	eE�h�|ilst�eXomPAt@�i�o�c�nra Obd�#es��tW�e��htec0at=uFeri	ung�'	is

W'cd:egkmnostu��o�'-8abceDhfghiklmop�-rswyhmptwee-do
�wa��ii3�no-��hmoi�uov�Oeaf�ia�org
lrs�':^gsrow1
iaOtkalrurh'ss�taps"*p7saft
h'�e�issffE'�e	i
qsdtl�r)lness�'�e�r�ueqo�.lc�e<lnf�wa��rp�'�zps�$egerchi�Peei�'ha7�bd�r�s[ygn
�sa-did�'�es�uve:�ricZ9k,a�ehop)�take�|i�'�rsme<l�nr�s��i�ror7�rv*eit
�e�ik�t:'�m
h'-adei�m�-nosu�zg��ulide	i�rjbr�r�odr�'	-�s�'?n�uv}lph') s�'eisyr�'�e?ise''s�'-pan�k��eai�'7�ht�b7�iver:'�i:'aeo�$r�l7�n�m�n
�ak<akh'hlpsazar?�d�eosyiܓtdh's7ye�iyn�e?istan4c-go-lu��c��babcdegiklmnoprstvwCz-�ln�rsk�2ig�us*e	i'mhioajW�an�'gru�'	�e	�im�sas�7tr	�'E�atVe	�i�lm�s�)vastzeoT;u-bcehil�nF�pstw
oybcdehln	opswiot��t�io�.drone-�bav�rekaiadu�rdu�eItrin��eo<s�are��she3lio+�r�raio�claltk�tad�u;ri7yZOeo-rS\vcnm�r�sani-u	eo�is&aeaQd��r��eq	h<ln��s:'�e�giyS\nchtra+�b�
ei��a=laoa8�io;rorLd�k�'bdl�msf�era1iip�'*�psrae�;vaw�vcni�ogKWefte	isdns�aeo�mqyuG�i�'-�sdavidsoRny�t�w�'�eF�f	i�losn�'i�yc�e�o$us�u�kzh'a�Xs�'
�lses5ds�l�'eios�ydnr�td�er�n�s�Goichor�d�eio��uy�C�de`gnsd�rst:'}t%vg
'�tW'CebonW'��b�dg�Owate['�'	iܩhe<l�nnr�s)e	i	�'}efl�mCos�oe?ip[yoo��l�aes7�yt�'	e	i$ms�ei�4o�c
}�bhik'�n�pst��w�'	neitA�n^s�badi}m�s�eiYnib�lXo�Odeiy�'d>$ns�e<ln�eg7�s
�'bce�fh	i�lp�Prstaok�n{�xhh'�|be�i>>l#wcdrsr�tkh') s'�i�y�'dF�fm�rson�Rga�wwx/ihte��pan[�deidr�'�asӝenbglnprst�e�eh�th')�a	eis�(en��cth'�
er�istmanUn:�a}adeor
�f�Ere��uae	ion-{ra�tW'<sh'-lnrs��n:'oc��k'sst��isXacU6l�'Y�ks
�'ae	ik��l�Qstii�'O/a�adpr�'ei}
ls'd�rnsgtsa�'hØn�hhorn�'�es�'{�cdef	ilm"�nrsw�etndTk�r�sie�l��oa,o�k�ni�c4d:'�Pe�|taio1
i�rre�'	�s�ortThaeilmyrd�'�e	iKos�'dl'�rs�'�@b?ns�e<ln�egS�') s_5ei'�t�;a�"ve�o�`dmqst; i�rlBwr�v'abcdefg�hilmnprstu6�vwxyzd�l�sdl�prtv�'-abcdefghilmnpqrstwyh	ount�ye	isY�cgaoun7y�dgeir
['�sZarouTgtytaho�m2�se��eu�n
krd�r�l2nir�s˒ez�uunt
e��isssdcr�e<lnheg�'<lsaeio�msnsnsmgne	i�'dcrs�cna�ei�nster�'\lships��to��t�hi#�e�nuarter
�ei	+s��a�eQoc�eh�mtar�f[�viri�.naor
lsnEhc�n	oeacheN�ra)�iZo�ui\lt-ye��re	istd�r<sh�'cff�ip�sy$Cab/adFe?ik�kst_�a�e�t�'-H�abefhQilrstw	+yrstwenV�deap�ro��-��a��erue��oak�'Me*isrn�'�visu�d��ne�l�'r}�sg�u)�a�eendinglGyitck�Zn��rhrboaor�m;o�r
�'-haZ�eh�{i�Cpswresi"s	�'ceklv�rsotnr�'dis8�os�h-m�'syviandstro�ka�veiyE'dn�r
qs�'-l	+sw4�siy�enI[ae<ll�nsrA|s-tha�n��ih'-�xh��sa�wdhuW�aer:'�rst �uaeA�ii�c��s<�waktutTeombh'lkmneY5iaH8ior�ta�e��glmolri �t)�eRbg�uloe>Bi�'dhrso�gp1�ps�',osnivisdhl}p�'k"ef	i�lsu
la	�w�'�efu�ihls�lIkn�$tei��lmon�di�yr^�adfgmnrseftiglIkgbCgee�le�r1th-th�o�'-+eshJo�lePAl�oOKr�z:'*Ek�'
me_�lsem�tɐndegilmopstvn�':atmes
�Sv-cegop
Fu�xsk��i
�ameonp�'te!rro��lcgpstent;�rraph�iy��o:'p�^hrop�e-�ik�a�o
�'-b[5ceɆhimosu,�y4�b
cfhro�i*oaiSMsiLebn�rs>�o�ei�cszgYa(;e(?i �mtY'?�i[sae(?i��t:'[d[sp��oHxo�Gs�'}e	iss�v�'eh	ig�so�udt�'�e	GisoP�li��mts�Zeh'�ta�i\rsh'	eff?ilms�ei��nae}ein3�ker-skel�le�'sti':a�u
�'aaeil�zmops�ltw�iologiaye~c&scdmnshyordat�a�e3Jclino�demisemiqu��aetabol�i{og9�wpher	Bei\8c�iXogprsloq[bhiliah'�crhaog{�eisc�nw�i[5t�'�ehs�-itit�c�'Edbcd�gOvlnprs<tehfor	tw:'�merr��sic�xk
W's:'x�o�aessW�e}yek�ciy�'eTkt�t��'c�l=oh_reabhpt�rtio�cti�ds�'Hecmpe�Ry
�lae7s�tgRaancre[au<rae�s�elew�Phag�nt5oh$�lh'abcdegimnoprst>�vz
W'c�Mkll�eit:Iud�'�eK&i�rs�'aeisy�lctglriss�m�t
�i}trtW'�o\!ciXevor�e?Aoulaene��ua�sbOn�'�ae	i]�s
�'a<bdfior�stu�*wbf�to��u��tita�i�y&�mriy�Va\lYnord�'shnaffsnaiounpg5	c$Afn!�pSMd�tenr��t,�hbote�rtH'-wa�ta\
ob�gaeionp:'nY'sb�yuhrodit�eieuc�rsn�s$�teu��t�nt�',�a}e��iss[ai��laeindq�ea�'ls �t�'d�ei�n�'owtM�cn�s�'�e�sest�'@�v�ioU�f��l:'�eiB�cng�'bsx�to}3nceh��h�Il}ye�l7�yfzords�'�Eosp��re}logov�i�ghi�'pstvaotantc9t�e�i�yE�e�ic�o:'}eian:'[sOe=oetro
'cdfgP�mnpsz�^yo�y�4xle[�xY�aene�iKooyrmay%tm�i{oh�dtob�e2li
eo�"ptxfiual�'ti<lsc~�iructWu�1yCAion-le-ho6�llr-msan2Udistic�'
�a	+sei�^klnosdc�r�Mtn$WtX�er�th'aU�e	i�tcdfg	�mnpshlori
decimal)lsl'u��oH�rloiS�dt3Jy#deA]f�&swrda*�hI�obeolla�hkTi�'G�c:'�tM-v"�ws-abcdegjklmnprstv%yfi�ri�s��h�fltwTe��aabeic��h$�arn
Uaia:'�nscckouughZ>e�iss�ph'e&mo
osyh's}k�rk�de?i
h'-�zaI.bsdo�rsyand-seY�eus�tsd	irsaor!�tcL�hgnlyphh'iscE'�a
qsy2�maghftshiosa�kil&Enedy-piggl��eh'-:5abcefgh�Ciln�Uprstw��b��cefghijul��mopqrsner�gallut�u��lL�is>osFy�raentu�d�enc"_o;uct�a2au�ior\{weoss��uf�iuaaei�nsol	usekeopt	1c�u<eirite�zderprp��e	u�ao*ru'�r�y'rhaS^ir�s-ssle3*vailut�ield�s
�aMaaiynd�'e3m�s�r��gess�'e��o
a!�ia�yackh'eVzisdr�'s'neY5iuran@	gabdfltri�yo�t:'�uerg�t}aebVrɎi�'�abc*�egimXosb�twyilAolrT�ero�vc.a�e��no�rb�qd%�i�torou��galk9e	Git?e�'>e	i�osh'a�6mslaya:'Yn�se�Ilacd�egkst�yhkinbrook�e��lh'be�iI�m�<q�rsu>>wr!�a�\m��nr�'�e	isqSi�'issm:'$�stan�'�ib�e	issley�qd�'e	i<osdr�')�ls�'bh�AlØnps��a�oug�gCha�^eio�yeA�n�'rst�'cdglpsarmS�pat�e?�i�rr�iLy�yotamtaeC`ios&�g�mh'-d�l�rspurch"Nab�hsu OmhiY'�m$ cut|epstani�c�o�'	neir�naXiorm�Qic��glrhemi�bcst�`rogi�yEc�e�si�y�ac�eowaaisvtmtgraphFei�yceal\lio�n	�'-achlstand-m��r�ic�+hhh'-c*eh	i`mhi�koc7�ki�.kerto-un��sers�'iYsEa�sXtt�aFein:�t_'-8�e	inpegati6�vosӘimos_'PDno^Q'-abcdefghiklmnoprstuvwyh�rugrtx4i�'df�xisy�'c�e?isro+se<lnr�seJd�sz�'*e	i	�'$Uabegnosei']l�sy�d�s�e	n8t�'-h�iho�ro��rs�ro��baoi��lb1�bsh'kss�oku�'e�i�n]�ssdys-poBxc�'gseekbG'pP�s��o�'l�cd	i�rsoHxwfs�'}a:Wmta6�d	�'a�|bgILnstwnrx#'�stUh�}a�e�iE�hi�y�ea�4eҲr^�se�honlszo^hta�Ruolle�r$$kc��styky-toeikousdssy-cok)e�'�a�e�ntipkawiwhV�iam��sbcdeilmos�tyzerc=i�ko�5ool�m
h'�~-abe?i��os]�ujb��l�&a�n)�r�0w�'hadsydensay�'�e	imsa�rkr��s-than-tho7uegss�'e�mt%�i7saeioynd�'~�ae<s(Crr}y
h'ei�rssJd�nԗtuAes:'�Atw
h'��-:a�e	i<l�nswo�a�'f{�hwordOUoY'�ab�e2icgܓta�5eu��sra�mph�')eis�yc�e	Int:'e �i�rhose�fa
�aAktone�i'7ds�.mabeiouge�'r�s4ru?r�'-bcdglmoprstwybc��glmos��aruew'>esilsFdo��oo"*vadlLkwne	ir'ձschho��oкoou�d�yiYylf�dto�mro)�aeiyssh'�n�e-k�na)�dl�kbmpstw�	oorphi�sath
h'i�sycHe5s
Pa
E'tas�tis�'hera�m�Rnag:�e�'Z>ei�Posft�c�ncipthoo[/lc�Bueral�d�eow�naorrd-s#brk�'Ǟeiec�Rkh'Gn+sc�elni.d��e�i�ye
qgsioyss�'k�iE'�'eglmnprstzor֯bpstathis	yc�etas!�t�eis��'herm7�a!�i�yroaer�mn �aei�i,wo	
sPza
�fpogi�o�uyA�ceorph�'iBxo�y
�cY�sym�'�i{os7yho3JiobnS`ei
�ac�eyl
�aym#Xeg
�ae�woxual�'i�ls
�svtopL�i�yygo��uncuBxl
h'[.acde/�gikospTk��hta[oura�n7�s�'cdg�rsy�Qkte�i<l�y�r�s�';�b�chdeg�ilmÐpstwlDad �uocus��t�ouckMe�lE�rv e�oancr�'	e^�isaylruu�l�'aei�sbrle�y�)niye"�l�u�d�e�rf	�niP'cr�'ae	�i�sble�i�y'nsessn'�d`�e�r~@h
-cd_�efkl�cnprstv�h�\h
�'ei9Jl_�osw7ynd�enin>$k�'e	imsdD�rar�k
�'-ae	is�:u/way��nu#Wptp'd)�riga"n�'e	i�lsd�ra�yei�;ge �r�'ce	is!�hdnranAon�'
oser
qs�'�e	i�s�'eikps
�'df�lrst�wulh'<l�nsP�o:'n<sinsW'vidgl�ae	i�lc8ootch�'_�e�i
a,de�gimnorst:Iuwh'csst7�eiiEatmo�u��haz��ton�'s�yteou�!l.nUz�'beil�ps��tluye�,ilO�o�ya�meo3�nwerW':'ndbr�t�enegR�e;0i'lswogHei�y\8c�e�s3<chP�ienpueion'#db�dfley�nUsi��y
�c�ecrk�'-sstr�iY�ue�(h' i[tJy�'-bdfhl��mprstw�yb��cdrtreaSMkorcY�ts>a��a":ra:Seoc	+kx
e%�ole�i�y~7s3�ai=xdaR�eA�i�yu!�gloa	+y��wa.�dh�eirmoÎt�/ar��ah�o��i�a�hi�+orcultura-e�ili�ies�eĉiaeikptnnah')e7h	Gis�'�adpsi�pen��rinXBghiolip��a�cta�bl�'is
�s�tf�z�'�aeil�sdls�'��e�il�rse	i�d�r��slnieit4i�yRe�y-bcefhkl�np�rst�abhs\utl��oeadedE�lwappyJa�e�ise�9l`�oah
fkpot9	cl�'i$mso	�o��a�~eo�ueHyiyn5s5jek
�i�sYVlo��iD�th'h!�p6\oei7ydn[~r�sto_toendghnrsyintmih'ton-le-sprinRg?�ods�'K	eu�isl��o�'q)g�i_�lse?im�t�'-bcdfhklmprsb�twhmptwui�ns��b� oalr{r��ao>uor;�-a�Liarmlioru�a�u�yesoakFe�isil	Edl��oean�e��isa�l
ut
�h�Ious�XbeepFeY5iigh_ta�eiosi�n‰sFtstresshethe]~ralri�:rlDn�<aoZ>uo��oaior��em�Mif�v��erk�'#Se�shnh�neh
'�lrc�e	israI	fane�s'abdeilrsct7drsv2Ire�iasy:'l�svltp'}se�ctz�'	e	iAosa<hoev�'d�El�ten�')eis	In	s_'; v.�hosth4g.x$btm<stl
ԓ'p7sabcdefg�hipklmnorstxyzq�nrac4h�'-bce&�rs��c�a�i�lu�y[vba�Hpr�'�tk:'ls��eter�'�eisn%�s_'d��se'�lrsfielqd�'�d0lrs�yf�'�eǗi&msyh'egh�osu<l�nr�s|eing�s:'eAiv�n7�senB�o:'tzilopotc?�hr�akl�'>e	is
�F'a	eu�iosba�Fl�')e	Gi�s
h'abdeimops�uO
vn	h'eik<l�nvos<l�n�r�sst�kz
�a	e	i-m"�tN�a4i�yi;nelo8�urI�st}oe�4iyd�nP'rA|sl��d�viru�m:'r��ai�udli<lFofsvti	ryc*ea�ttz[ai�a�thaeiojud�l)�rngbZick�')e	Gisynru�g�'Laeil�o�s�dsqu02e	�ns��tessYl�)nr�'e	�il�sd�r�less�lness��'�e	�'b�eh	istJyac:kZ>e�ir�sey�'H�sy do�o:'cdgksth�'ߑb�e	ired�'�efsW|ta�w:'aeo�rri7�y��ar�'�e��f	isve�r�'�eisy��epeIel�'eil
krsdr�'-s�SvgatheL�rng�'d�s
.tok�n:e�y�mh`v<ndl�or��stulv'eg_ih'e�-isyd�rty-b��uaiyh
�yh'�eiss|�ce�d�rsh'�'ih'-e4|f>Bi"lsn@	u:'bnhkstand�'K	e	i�l��m�rs�'	eis	+y�_e<l];ns�saei�yW�i�r�i*�r�e^ti']l�on�g�'cst�uh�'^oeinx�sgs�o'e	i=odriXtt�lg�eza�hy�labd_Jeg!ikmoprsuX$wc^de0lo�t&hi��nrid�'is��s\t
�zer�'�nrab�aa�io	�'lns�ntu�vz˖aW�g�tlM�i�'bcdefg!�ilmpst�ux�i��aeho��uphali�uGy7celmisoric�d�}dlr!�ltiYsynamic7�a*slectric
�atiloruor!�iocar1�b
ir"*mact��uer�ln�'a�oteWi'dsaphe�i7yr
H'Jsoygi�yc�e�sJ�a&2s�z�aecthani	�cFeri�yLc�eeh?l�*oro
�xiol!�i{o7yb�ni-ac�ipth*�e�_aheraW,m�p%�iyalp�vzpa2Ut'as!!s	tr��oireneic�s
�a�so	�msco!�peChx�aenn�'7�es	�'�F-a�hb�eios�lJ�r�cndgl �iyraph9e�yog4XiyscFOyeh	ino�'drsabce�fgiklmoprstvceit!Jdive�i\l�smsiactheaBs!�tol�a-eiocal�lid'7�aseorullularrrect�i;�iT�bxtenRmd�salmo�yu>�sycaeemiacm&�in�of!�le�Sir�ain��kaenur��kdt��i$re�staPb�tahilrastit�e-�ihyroivdF�agme�na[nsApieaclt7biis\t7m{rteopnsitiv|e�im!�nn�io9&lah�ce
rehrn+xsi�o��vey2Mrroidh''iophi)'y7c�eent�ien�'a�e	iste�iMoL�io&_sthierapi�yei�s9Ecs"z
�e	i-m�t
�'-acd)eg	Gipstxallergeni	�c6vcllerge<7naehryGullulaK*rondO
ri�su�tcloiQZder9`m^�alycaeemi�a0�cmiaa�chy��stPy,=aehns�ui�ovae�
ylami�u
�crs;�tmLai-a7c�eis<z�'	e	iae��iem\CiF�mAa�sterei=csmi-ac�'�a'�i	+sndHia�loiXs"'-.1737577abcdefgijklmnopqrstuvwxyz�dl�m;s�av�lbcmeXlahEu
�oHYe�8	cgx�imn^�ptc$�ob�'is�u
hc�'h�zrog0�e	aei7lh�m�!or��sudn�shrr�xd�sz�ea:'�nJhapro
�f
ab��cehi<�kM-mot�uy=hn�r6�nFm�'-b$�cdI8fփhl�m%,npsO�cska<t�)eor�a�u�x�,eand�'q�e?�iY�aAAinteu�mhyo��lpmrsha�gaur7s[u8Dc�e<l�nns�'
�ioscgll�Jaraph�	i�yvaQloa7�ho�uriani�s
'aeilosy��di�]sn�g�'ho:'C�a:e<s
amno	+s�'lst�'i<lossQ�z
�a	e	i-m%�t7�gei7ds�n�opoten�%c�ttiw_cfk�ti	ry#Aa*
ced8rs?6iglra�mp��hog�!i
fu�yo�clmpste��c�'astiAcatthyncra�s*�t�'%�isTgye	iyh'd�n�rA|scl�'-aMisworshiTptFerp�e�i�o�y�
ll�'is
�c�s�&�e
�cdes&�y�et�0yh'fsdi>�ly�FlnOoua�eio��c��ttTae�id��rs�bmrini�y�e'%oaLe	i�bmn�ct<l��n�san&�s�ao1�dir
�csselmIkeVebeh�'�Nan�a
aefiklm-Juy:'c�mnhin:Osg-il�aai^n
Fui��tti �dra�ca
Fuc �dh'�lssh'-ei
knosu�yabcdefghijmopstdsv��is�oe<rh�Oaoncse�Oii\{deiJfs��pq~�uakaio<tv��oW�uo�@tu�ymnfor<m��uanu�t\{nmv�ereop�@aportio�nh�mtua�pa\}r�i\wereat>e4�mgailh'�i<l�s�btima�cte	id<lsbcmnqteral�i<l�(iitab!glois:'C�a)Puera�c�Ctgic'�a�smsD�eina�egiVbnt�c�t�ei
:'�n�ovn7�sioto
Bvn�'g�a�ism�rraBUit�e�iFoe?�nus�habe��fhimnop�u�cg�m
�pei|<o�'-d�nrs��m�i7s�y��enaLeg�ib�lrtli�eyiyeni�oSvaeir"ulandIccil�eic�tb
ein�tK,io"ugETln�lo'�ttaVbt�eiFon�o�vaeioucntulat�=ee@Vunc9tAe�i?�yeuriali<l=�n8tr�e�iadmnrsur�-aiaۃc
Nto9Trse�i<ln�rssm�ei-
bn�o
vg)�nsrac�ibdPlrvileisvtz�8a	e	i�ae	id8rser0�sat�e�iatli<lhs�talh'��i<lsa�ebpileynsn"r(�t>�eios�tf�za
�e	itio+�n
abcdghlrstssa�ylo\�tomperz�tom�ieficieny�c�telnQ�eobuluiistochemtiogi�yc�e�s@jae5 aour�bppress
�a�e�iP�h��osho
dg�l�i?e�'ae�hilorsucilnrstt�'�eifi#Sosn{olvr�e	i�ms[va/�e	i"4pel	�e	�i:^l'st�a�eis�"ans�ta�eibi�lli�tbov�qiley�Ann�e	is�etiien��c�s9tacdlnrtcha*e	i�mb��i-lcuabill�i>�ey�	naLeimnent�'	+as�zlsdeitra�;bten�cr�t	acfimstvt�AiorrJii�c7xeipvhati�b
vecth'aUYi<l�n+sbiak�l�oslh'%�i<lshabzlaeinen�cvitab�i�lssTional��t�i<liunen�c�trb�aUiiugoo�s�suszi<l�n�en�o�sg�e	iaeio	ry�,cnuth'a�e	is!Eb�tsibi�llitB�i�yment�'aaGe	isQabDtcU�eaiJ�nt�ein�ove�l�n�t"drs�e�ii�o��vlnrstuvitei<ln
Dcderab!Hil�e7yth'a	e	isuVb�nDtna	.eite<ln�sn�t�a
eist�nDtib�Jiley�n�s�'e	Gi��osu�dݪrenc�te�i	+ynd�e	ii�mserisaahaeioucticabG2l�i�lcgs�ais�e�inabTtpilneyas�tETrh'	nei{mbno
Nv�i-ln�'a�Jis��bmnsa+	tt�'	eu�is/obmpvab�Ji�lpt
huer�ri�eaߌeible�An'Vdnsza
e	itig�o�o�?e	Gi(�d(�dgl�nrtn%�a	e	i{mss�Jei!n�owvQe�i%Ua�e	i�'-abcdefghijklmnopqrstuvw
b�cdf;�hjlҡpstetwV�eei�p",lo{�ka�i
�we��tr�Zvra
�y
:'bcdlmnprstu�Jicteuss�ira�c�ti�ova9etit�ein~�oaemv5"pqua�cte<lnUsess�'eissi�7beir'Vtsaebi-lli��t
�ditenab�qi�lerab�ile�noratc�aegi<l�nr��sa�Jhm�ta/Itp�taelrren
�ta�sic>Taeocia�btive)l�napch+�aria
Ntgtupaic�sulajb<cte<l[nmu	cteB�ndgst�Riura
hl�tpici,wohenticziorua�r�u{�xrP'deadet�hda�is�i[.aehilorssu:'lnpr�sucul��adtesce�i7d�6n7s��a>e	iabcpileyn	�sit�a�i�ycne�ra]yd�t�tsdnprsT�d?stiv�ei�.s�.zt>ei-os	n�o#vt"�i`Rst�'�suo�;u�'�e	io/waUntei�d�s	In�Oodnprst��ven�ct�'8oa\lsMesgie�tnc9te �iyPc�eO!iFoaXe	itio	�neiumenvc�tnBaO0eu�i;o"drseghmnr�grni#terenc9teybe�impust@�i�'8rseounsurab�t!Hil5je7yd�ein�on�ticaVb�daelrurtn�aib�Jil
heytenc�te�i	+yeteio;�nehsensi(�b~�os�itNacdfgstveli�,vuQ�se�normE8irue�i�on]�c�teioptquenti�lal�i<l0ndserabtN�l=�e	'iten�c9t�=lnV�aicP�uae�irs��tovertB�ienrien?c9t�tprora�"e�bteWi�dseiuctha<l[ng�iptibopil�eyn�'�seiuadms�aO0er�i�.iul�i'%oent�'a�e	isl8�ti<ls�m�tmik=ns*
tblmnra7i�Iut�e
.iS�oPcpa)�b"tben�c
htabulau	+ma�i1�rsS�vb�l	i
[.eioruw�ybc�eflmnpstxted_�neion�ct9e<lp�|sherTamrp�oob�uaeitigab�lacn�Gstib��i�Gsn�aite<l�nsi�bca�c>tnoi3wf�tnst��rth'Ba�eWis�uendenc8qte�'sctribabley�n�sruct�.ierminai�Xb�ct�eS)is	mtH'�i�'-a*e	ili<fnjb$t
acefgrst
Fuv�'n�'a]vi�s�'�np�Foame'�itnt�t�eiFon�ov8qeTa�e	i�ms
s
:'fe'Vren-ons�c�o8qttiVb�op�a�iUaect)ei<l�nUs	In�ocpsteirr�npline�'�dei<�et7e	iminat�eiIn��oeounsabpileyh'�nss1�ei	nDt�=tocl�Ziub=i�lin�5cguis�=he	i�dsidsualTt�'i<lss�tz
�a	e��i-m%�t
�a	.e>Biib�i�l-c(�lmno^reurop4�ehtin�ajeriN�n�ies��iai:'	wlXi�,bcl5�rsXe itaei%osd�en�ov�eis7m�tge	idanrs:'tri�ya�e�oli<ls�s
�zelsltbdflpqrsvx}zmBrTiu�=cfaei�;b�cctT�iu�[acaici�yeouϿsen�c�taeiou]�sl�ggib�i�lq�uc"4tti<l�ni�tu�JaitvB�a�i�yal7eartdicabl�eJya�fb�ni<l�nUsa�'8ls:'csta"4penwUtimablI eyitab�ileyh'�nachoptcti<lm�ntu[du�=saustib!Hi�lrabi�llit\�ye�=ilrdnrienc�t6le�i�ys�eQ�iitence�'yJad�r�'<lnic�-ait�l�nUsessibv>Yizle�l��neirn�isnguis�=hi"4caeilorulmn rtl'�i�i'%o�y8ct�'i��rsc-l%�i�uaclrssibile�yt�ei�osn�yovicit�i
o�y�aein1�rstnc� te	Gi�'�rsor�'�i�ls�a�oi!�ltBa�e	isd�Ieglnrxel�'�ish�tlt�'Z>e	issra@Xtiteiu�yh'<lnsi�ym�e\%vtdmma�i�lr
�e�i�y'e�i7dsaeioumt�e	imabt�i�laE�e�ic�obl'�ecxt�eisn��ov�ei�b{octK	ei_�osn�o)�vr�Wwesce�xne�xn.�c9Tt�z
h'glmnr�st
�wrap!3h�dae�ndrxOi�c��ama	e	issPl�nti�Koco�vn�'@ja�saQ>ei-naei-cors��rlDtass
[e��re0�dottnructu\%rquenG�c9tnge	id�m�rsrsiat�ek4i
eibn�o	]l
_'ae�(hlor��u�t\{h:'nrsP�iu�e�i�os�ot�eis�bn�ove�ioa�n�swood'r��i	i�taeHMioi�mtnh'e	is8d�eia"�tt�ei�n�Go�Sds:'s�'�e�iw	in�t�n{�uaeioublrita�e	is!Ebn�tc�t�eJya
e	i6\nt	ior
�'ssmoniou��sreid`Vnsnta�e	iFors�
b#�n�ei �c��xbiteMiOosd|rlmsdin�gogeneiBxo��tpita`�b>[lman"�e�i<l�Anmqti�c�=tui�rtial!�nth'	�eil�ns	�nsz
�a+;e	i�meiy�d�rn��geiOon�o�veucta�eMiFosb��ldnrD�si�Gcc�etUYi
ei�y�en�o�'be�~h��ik�j�l��s�Owy�}e>�ldr'BHmsa�ei5y�is�n�yTNe)�na�o	�'aei��kosumr�tin-Jck6drs-msPvcos��opZrnsst�Hgfe�acmveP�un�ct�'�e<ls%�iat�eiOon�Rovt�ebruc�kemndo�'��e	GiserabS8c?�ti�l��lcf&�nprpufe��nepraVbtivi�eort��udgina�ta*�nau�Stt�'ste	i) du�eioerstu��d
e]0i�yitioo
Nvn�'@jasr�'�"isra-t�'iE�oush�'�e	i
.ace$Ahioptuwlntubr�rei<l�Ansr�sta�i�y�,iriuU3bpti�o!!vtab�iyl<xacmnprttu�'aisri7y[elu\!clvor�e�oI
r4istai
Bt�btiv9e�i�iarabpi�lth'Na�e�ish'sZtdgnpseP�iS�'�9-�rshnt�',	fs!�ei-afil�ccue��rat�eiFo,n�o-vid�i<l+�nteisd'Znnvigb��flmuri�eeuv�'nstc�-tb�izlTaen�c�$tn��uia�'
hcsci�aeict�e�iosr�'a�1sr��aei�'drs,nt['�e	isaeir��bglmn02r1�t$$rl�mUsa	e	i�ms�bnDtaJt?ct	�'aH�bei<l�nsn��eat�ein{o�a�p��glntl4�ms�a�e	issct�'is&�u�vutei]�oD�'dr
qsnovn�'asli<ls
�z
�a
�e	im�tucmt�eiFosn��o�vent�'a�e!isl�th'i<ls�s�tbflprsosrdinate�ei�d�lstan9Ttfei"4rcia~�ibtr
Wt�i�l	�seprabi�llit �i(yo�raeg	imrb#�n�i-lP'd�rsen��c�tou��nection�'xa�isceptibi-ll�Oiin��gaeiorucg�kn�r	�tli*ar�ogib�il�eyglmnrsFerua�ib�l�ntt�il�ei��ono-vn�'�isment�'as7l\r�'lseict�'sualh'i<lnss�t"z
�e	i-m�tge(�incte�'|rs<l�s��apera�nte<lness	�'�edst}ae	isd�rh')l�n+sei<l�n�r�sQ�fo�t��v�nh'i<l�nson�'a>esli<l�s�t-abcdefgijlmnopqrstuvwacmpugl�ie�klE�loA�dersoA�nrF�bcrt~xt�a�eisnovn�'Lafis"�e�iNLto�m<�aerd�dedesdaehi��lorulsa\rt
�e)i�eltd
�lnpse	id�"rs7�sth'�ekiFoss	iOoangeryih'adrsb��i�ls�st�y	hlmnorsuorlouegia-tHnmn
�a7Zi�'msuniPc�o\tntvecteis$8dn�ovine3Cner�sl��erelat1&e1�ital\l7s*wrops
R�p7ss[e�il=^ttural
�ieinpotminatioo�naGlaertmen�"tndenc9t-e�iycgvSmst�'�e1\is^�icip��lst�'#�e�Jisaeicimb�eo�i��ire*iodn�rs��mn"lZKxaelorlarcneration�'J�aa��cvernmeo�nZteo�uw7nнt
�mnosdeu�xs�Kt�rlan��dect�e�isaeiou"cnryg�ruer	Gi7sau2�vk
�ibnrg�aeg?iko�adsua'�l�ta�e	is`JbcU3p�kutOo,daeiorri	ry�a�edm�n��stzUddia�u�rtei�'d<lns	no��n&�baP�rC+l8JznUstx�-a`?gt`Te��e	idxXlula�etC�e�i	h'aei'm �os5Hult�i<lsionalh'}ei<ls�s�tz�a�e	i9zcd�egtu��aY'<swo��rrLaonLa�e7snsg�t~�hcfp�ueIuf;�iera�b,�tehlornretrateisds�nom�nso�"nan�aye��tls�'a7rtha�eMiLe�ieota	eiweosb�till��ingvcess9ouart|�ae	ioudgli9JnoW,naitei��dsnoLn)ggat�e�(ior�'�is	+ypth'	eis��bn�ovceptuhola�scgsxt�eisnon�'asli�s\tme�nsi'�o[e~�uaeic5ccrieR�fTsnLa{oaeiHdlg
ft��l�cti�abrjectiv�e�i��vae�i]yw��sxtu$�arb�a
aeionrLe	i-otion�'Laissm
htte3xbew�'>�e	isca;�laeo�ra�bve	i(rsrV�v�kta�i�c�tfma\Cdai�clte�iE'd<ln�rsdat�eio�Qn�or�ylnrxera��b'Zna
e	ite�pis��iica�nt2�eWiaeioucdfgi�lmnoprstuveilortllula
|r�a��hmpa\nao�nabpiley0ne[op�+rartm��eam
�ienerationI�andiuvidJueoutropoli��tlecula�ro�rscula�raesuA�st
h'�sigten�c8qtiveh'<lnsess�'�ec
clcfpu8�lfO�ier5"a3Oaruo�clmoBneg�icep��troa�tc�xM8teci�fhie�csslut9xeae�snoush'�e<lpiG2dcgna�c�t�aune�isic
�a�sh'dg�irsp�vucLe	it��iorey�spect
Z>eiss�n�o�vU3dsi�ove<l�nUs]bitha�eis�no
Nvn�'ais�ls7m�tikn"r �tti��tc�dtiopinaeiouU3dglrsiS�niud�'Ra�ei<lsnFs�tableynUs
W'ia��bnctNe'�lsi�o�vcinrstt�eive�'�lnsg>$hle	id4�m�rsteO!io�rsdHrr�')%is)'yac�7elnstx�wcit�i|yalrgz�iy.dl�eolzcessY'He8qeion�'La�e�ish'ae is!!scbd�rtyJaei�mFosd�ePbgntaPbGteravcgt�Gdgnostiolat"�ei�(on'�orat�eAi��cla�b
Btc�i)iae�ition�'aslh')l) sh'd
hersc��iklajbDtha	.e	iuvnttariy<l�n5je�ie	i8d�mrslne(�rarrd<lnso".u:'cdln�[pRsw?t�uwx8`t?�ai�d;n+�s"zantXh�'aeiosJl�ds �ac$usz:'sa
e	iyLb
�tmse�
tpher�e_Qia:'�n<sag5�l
aeho1�p
�rsd�
_'�sca�ciogenRin�e�d�owic/�h_'ab�suluv�iaUli�t:'aceik
morVistvew�'nqst�'iMma�'�i��ce<lØnr�s
f�o�'�d��fVln�stme��id	Ins�te2ios�''VcHilo��g�'�eh:'eE�mw<roE�m�e	isuo�mt��snq�'cei�Alm�nsw�y��ld
�rc�e[Mnwaa5�aonger's
qyi��tde/�'s*�aoord
�'sk�'-e�isuoi �a�saeiudtwia�n
+tionalh'�*i<lsad�d
cdfglmpstvlouai�=mnvcil�a�;e��seuenmab!Hi�lti�
scn�iluex�gitab!Hi�laurd� llarh'�i<lseiva��ngionu
3is\l0neiod�=is[�svab!HiXl�;alraceablI e7yeo�hsadch�saucibiliopst��ilu�v��teocٲtnsibvpizl-erie"4veoresn�ctJi<l��i�=cgtaVbt�eWiMoa(�b6\nt2�ei�n�ov��p?iin�'e�g:'bao!nabcefhilm'�noprstuabdt<ic�'x�sel�'.�lfo�nahri��oae2Memisascnttro�phion0a�ivae�i��mtr/w��a{a)�dnsgl�a'��fs
�aeim�Kny�'aio<s]Kb�csTm�tphob�eiYaYc�'�ds�tp�n�'as*�e*�iԓ'bc�delmpsta"�rh�vlyron�aou%sanai
tdU
electr
�oaCAdtei%onon�'l`iseort�'ais��sc8�sr�i7yrph�'(ei]�cselrrimetri��c�e2eopLy�c!�p!�te�lhorerXm!�np�e;�i7yop]�iy
e�slla�'ael�'i<s�'�st*�e
anucq:'4hucaav'e	i�bqnahnb�um�i�u&�z'acehitostuvd�lsiln$�s&�pityacn�'a�s�ath'��i	+s��a�uih�'�eiy�e)ll�nmr�'Misat�eciǞoa��cneran�rx�t��eoqqortoormiH�ine~�sd/�s
'a�ef)%ioas�ys�:'n�'h#�ori�yLLa�eGzik%i6aet�nahj�maov$(ana Og Om6�ees�t
:'acdef\�ginop}ruvbcd��efghiklmnprstuvwxyz�'8abose	id�hrt�'is;�na8eik��loqur*�anst�'-ab$�deN�fhikl>�prstmyikon-the-bAonif �ve�iH'JdJs'-lantN�e�ln�sa�poo:tdBrp�tammer�')e	GisstmeCbnnifB�ve!i�'�d�s�yabbictotn�'i�svi:�l\ar�eabsptp'�eis[yo'�0aӝn7^t:'�ge�ouaer�dl�s��i=yzzP�ie�i�'�d0�isf�cah'gis��ueiydnr�e<l�ne	nrster�lanj�gl�mnp�'b	e;�h	isZireak�'Tues
:'ai�s��su�raeor�ttp'[s��baope��n��
�o�pus�i�'abeims*�ai}l}rca�'6n�'ae	Giosla�y�d(�rJs;�r:'}lso'x�oto��w:'el�'�s=�e�+isy
tp'ade��gijn�osuv:'c��ea�cl�'ilst�r�'l
�v�'^t�Ec}e^ns�t:'sar�i�yaw=ze}a^ien:'X�ix�a}s,�ia8�e	i�s�un
�'ePn�sse�i'<s
�'daef\�glrsj�vin[e��iu�7lOGsxlaer�iao
od�tm�opi,�ne�raondt��i�'e�+isy+da��eIki�'�Fnscri~�p�'b�e	ilso�r5Mn2einessa�!r	�'a�0bcn:swpsw�uuri��yardene:'?�peee:'salk	e�Uiseze��r�'�e��i��mys�tadefhjklmnoprstwzlnous�i<ln�yx#'�arein	+s�e^ne�i:'Kit:'ofiprQtw�vz
�'s
�'�eisngh'<l�s7ef�'err�es}yon�'ie}yyI�'�sao!�dsvhaph'�aa:huna
De
Fuv yl�eiosy�e!n�'ss�'b.�fu�irSlr�e3�om�iy'�iaiknosIkfib�n}aei�y�r�te��fn:'s�gBHl
'�ex�opardi�ye+�s"zahr_5ityh��aeikmoqrsuvmitya�d �h:'clhdek�rh'�eisw	+yh�e<ln�'�e'4gsa#�tU6abal#�moam:'ss��uaioymun�eg:':Sc}dal�'-b��c�i�sbuilsFdtui�ley
�F'�ssale7�mYi��opstuer�tsbG'teiou
ctme$�p�p�'	e�isi�st:'�{i�s	�'-hlpst*`w�bblps8laro<Rpett�ve	i}	lr��oi��no&rFa�ei�y�eA�nso	�n�'ei�r�sls�'D�e	�ilrs$�'e	�i�dr�'�sD�yAri.=ys�'�esh:'neosebe(Cl�kabn�dfghlmntuvng:Qx�'-1�be�isb�4oh'sdsfh'�is�y�'gseu�i�5ldr�'�e	isy-pokg�ea~dwad�'.Iis=i�=l�t�'bemsog@u��niye:'dss�'	ionweead=adgknr�xa\�ebb�yloexiyh'd�rs'�Ji
�ei�s'{a�bi�s}yikisha�'ss:�nst�uerbi	+syug�'gse	id��r�e�An-jjitPUsits!�u)�a8�e	iHYr'abcdeghijklnprstuvwyb�su�erdnqjtp'n:'tmate��u�'b��hlseu�id�res�s:'ehwehk��ao��r:aekou��l�'es��yt$�rs�e�il��nasPrhi}yp>u:'�e�':ly�'ssE'gjs	eil��nIe	iakarannns:'taes:'��b�'a^insth=a=oiyw�ex#'-�\ccome-latelby:'otnW'�Svonx�w�'[enh'sh'e	istd��r�'-e	i<lsusƝt��dr�ro/�bei�y�'d�rs�ym
�t�~i�e�l�n?el
.seht�aiy`�ef<l�n�ti*
ch'	i
�'adeg}i�_nq
.sEAhtmsth�+a=oarBHysW'Ye�'�g�/ulin:'sm�a�edganW']xi%se:'nsx�ex�oehis��t^uq��tp'fp:'}aiho'��is�uonn
�'e�i �usd�rss��aTeh'sѾt,�lnrsce	isynaeHol�'eils7d�sns�zGg+;e	i-m"�t�Ve�giy�'c�eC`i�msZ�tatmeinov$iasPl}nell�l�':;isy
�'c�eV�f	ilIkn�oe�prsetp'=aiRod�gdei�'rsn
<gtickS�'se�g<n; g-abdgijklmnprstvxju�'t�psn��r:'}ai
t*�aRbila�e`VntC�e�eiad�Fegio�stye�hiso-c4�hc/&sB8atp':e�'�ee	im�'dmrsent'-�asY�sQ�henth'ass��lc�&tait��o>�ua�o9lr�iy'�'"pks�'fgxisuule	ildrna��ue	ih'drs�'�is?�yl@PaJicv'e~miyiutsuH'�b�te`�b
[�eil*�yae�o�u�'n�'�a^n�'n�s�t�nj�ibpN�l�oh'-	eisytosta5r�e<ln�em�gu6\i

:'ac��degiko�r�tga�r�ot	iu�'�a�{b�e<s�'f�ilraUue�'�7fsopr�'�^i�s�'eisydrtx#'bOs�'e	isdS^een�'�r�s��a:'��eh�iaiFouys
2sdesicvgad�nsdp"�ti��crudentctuHi�'	Gi�m�wsti�'vei<l�nUs\�r�scfn)�e�ii	ryn�a��c~etp'�ei�ah'-eVls1�ten�az�eil�ei7a\ttapos�einDt
:'-abcdex$fghiklmnoprstuvwyfac�Etgqabcdefghijklmnoprstuwyzboualai��hs�mtW�i�sbF`o'q�klW'�izor��oad^`iictha m�Oa�jishh'�e�ofkteeklatc
sa:'esqanJsoshˀiail�nuwiakateGzanHaguV�na��fkpstpoo@hr?�u@	a?�aoerr�a�i�l
�oabq�ba�'}�dnGxpu
abegilmopuhmsa�+raa�uzyohnik�uo:'a��r�'is��vdosco+
poorli�!e:''�ui}si$(yr(�ao��wmbu}�r}abcei�opaB�lhatRkhram�)e-Juklsna�zaerq�orq�o>�a�fuc� h:'7acdteg^3i`�jnopsthenjuH�naGSio�yhs%aa�Fra�d:'a^`w6ua[i�n�sW'ian
:'Dihl�ns��iin�'i �o�cC�s
tC�zei�lopullmeister�'@	t�kr0s[vaB�n
qt
aeilmno�prstu=y	:'cgkmnotHih�!a�aour�a�u�lapee�zgaha��pkeS�'ss�'ess�'-"pkc#h�entp'i:'Ent�Patp'}ao��f-a
�i"va$�'}la�o@	rao��k��t�tt�'�i�slzaZVmnk�j�+ab�ehpaXBhm�Xiarr�*oowic�zaehimorsty[z&�kmn8rat�iPn�'��lqaeilmrtmy
�ra}e4we�+eandlu?iy��nteknGxpa@	t6�aoqfwZVmc!i��uegv�a:'!�d�+afnr&m�adUaGzinaebksaM�aa�krV�atp'a}eRl�ok�'Z>e[1isa�oknh:'st��a:'tza7k��'py�'a	le�'ab*6cdef��gilmnoprstvwy�'nrt��n(?i�otsba.lger�e�glnpw�'�beh	is�'d�ramJuh'�a��eu�i<l�n+sh'-Fe�is��fF�a�a-glo �vgl�)s�&t��hblg@ob�klpsvu�reiotyr�y:'berpDr:'c}eXBkgtmg�'e	Gis�d�r:e�oiԐneprov:'�i>�s�t�'deimnostyae7orltl�en}a}�ipuV�rlT�w�o@u=aeitmyd<�lt�ytmytmhm�n{t�'Cbslhin�3g�'�ouckC�i�ya�o�'(Cnt<t{g��k�iMl�#ptabcefimnors�lCnti-n�t's$Eihie>�fns�a�kuf�f:'ke@	ra��idec:'e	id�ls�uqe�'}i7�yh��ast-mleI|r#�vcoth�'�e�un�gs�e�ielQre�'Yb�d"Ffs=e��i4lor�k'a�Eei�|psuk�*unAeq\s�'bc=�eh	ilnpW=rs�%wiond&$iard�'	eisn6\sli�co�e�l2eogf�geo��s��tau�d�l2�net��r�orokb:�'as#moruwyzbc��klnry4zaroovhatur�?iSi�'cds�Woall��ae�ktoSu$$yim�rk�?sh Oo�heushche�v&�flariҫzs#b�'-abcdefgklmnoprstwmk%omn(p\�dg:Qs�bi^olue	i�'dstz�'he�ij+btze�isdg�rsskE'-ab	e�ifi��o��sybosto"*xftarZjtN�upoao�cll�'�s�x�en	�'-d�l`mn�osgl`o:'ei"�o!�ydr�'msi�=n�7e�n��sa#epps	eVziq[k�tflr{ttv�f�'bas�asi8akegj�a-glo�vr6aHeuy:uabcdiklm~dnortu�eirrTNn{i<oau'.r��vo!rmanjar:oeinnBHv	h'a��d	efijs�brn�e��i/fnx�go
hya��ornot1c
�'bcghj�?lms	tvwa!�i��u-Ly�su�da8Bylw1oaruam�'{#mse�mrt�z*o�eo�la�Pott�'-sm�h�o�'esdy�rtp'b�oae.lzco'�lrl�ety
�'acdefgkn�orsesthetic�a�sumpTb
h'-ae��hl
knrsh�Qer�sga�rtenn�'Mese��r�rtk�nLeiy�en_�e�ge
<d�'S*mst[eicLo7s�iops��l>colkh'as�'-ab_�d)ef	GilmjpsZ�wsiD�zr�iioxs��a77eȾiy:�a
Tbc$�fQ�hltl�oBi�aKWeo7�n�w�'�eǗiosy:':eX�o�+oefh�m�wl�y�loڱla�ics�s�Lw^Q'nOlps�
e	i�bcgikoshu,�ehMn�bob��bhi@�sz:'ibn6�aH�ybG'i�lpswmk�batriB�c�-aozolv��c^3o*Etah%�l�smsnga6�ni%�nh'Ta*eiong6e�s��fgr[a�'J.abce-h�istkyus~@hlQahen�'es*�wrtbG'�'-sdCrsf�lch�'�eyei��s�ydn�'>eis	n��s�enwa�kaij�n�'afs�nr&u��kaeiouyn�u.w�x:'dsaCs�me�ip:'ne��xtocmprac�t�i�yani)aara�s�mnte�/gndi��kdԤgt[xge	i'dCrs�yz�'heisy�e[nstyr aaegioucpvwk�'e�Cisr'�e�isytp�|sy�ei�se(laelsw	�'-��cd�h	il�sdhj�l��eig5jhQee	is7d�r�lts��ewarre^ycefg.�stmvk-ekknack'g�e�Cisrb	+socker:'	+snackE'ssW�ve	i�'-d/f�psx�eht	�'-�ef�h	i��lserranh'Ybstidw	ea�ibc��l
�pstwx�'bsl�i<l�yk
h'-ad	eiosw�}dko=un<en�ubou�t�songH'-ssѼh��fu]~tur
ss&Eo�'Djhst�eiy�ene
qg-Ta\
eil�ns��hit��-ng�e<l�n�sed�sgNae�'�sa�s:'h`vcdrtkle	i�'dhsus�rtead
h'�e�ss�ex�olh'�e�is_hs�0ex�o
'abcde%,fhijq�klmnoprstuvw�d�i�s�lHna�eJoyas��hh:' �aaictklhroCAmUyB�alnrsme�yigsb�e��t�6tilunbo�3'�Cerab�ikoV�hҩz$(a_o�aoMyn^`o�imuniMzgr:'}oCks��a-klnrwee�c-�'aissybuI�r�e\lfna��b��t�@dZTi1tyad��iwa��teW�p�ckaܵe/�mOGnou}yzn�'i<sYc_5ikro�r�'m��by�[bchosyiusykz(�keώrrva!�u�gukGzu�yfr��oaYca�hltlns��kmy�/o�_oh	:'aeiouyz
aefkmsu�Am�taot<o�we:rno4dyaC�rAst؍'Îs�bm��slin�'ologiqys�teaLlnsg%espie�l�ngtp'htna:'mu-{rTa=eioTy:'}en�'�a�e�p}cIkgnp�aeou�'cr&krsot��kegp�s�Age�.mrtp'grUp\�ps0TtaC�nhatr?�i�.abcde�hiklmnoprstwzl�Walru�+ai��cn��thHxe28oz�unni�Enb@	tys%�hu-yalan-j�Iag�it\�eah�ru�maqrGza��u7gn;mu��nmintSaffK4ea�adBHgort,u�'ai[sit�cs�h&tsa�wa�ixj�'�e�i�eoz{c,�tcuait�'(Cinets:'}k�etc��h�a�7eM�hiknziu*�t:'dgzebe�l&�ja�a7sulu�-nat��an^`a:'ablmnorubnCrc��uos �h$�eiX�eograpE�h.{e%gtgyzs&tzd Fs
'1abc�deghijlnop<rstuvxy�aeo<smou�Wrnfanatruea�Wlvertu�Ur�0'bcdefg`hi�jklmnoprstuvwxyz�s�;y�'=aeiorsuyl�'	�e	�ils7atVe.#i�ua-lo
Fu'x�l^dru�'�<aD�eis	�n�oav	�ir�'-eisi��snte" nd�r�'�l�nw�navZ�iaudo�Nor:']ve0i<ss/�cr9Jnrinth�'�is�'aehx�ikoqr�stu
oyn
'iDya�'-drsw}yFu'[atBHiu?io=nreBHl`mr7sym7�a6Ko�'ae	ilsdwaisic50aanlnd�yuste��r�rf�c*�nuer�'�e	iswap>oo�sa&�e
�i�ot��einon�'J�asna�'es
�'bdei?losyrokYeei�d�r"�e��nsh
nŜeGdnss�'�en'{ggn�'bflsZi?uin��g;0iA�ohi�ptvrileE'�sourotatg�o"Llaiye#�tKit	h'Fegnorsua�e�ird�'"�lnsiapg�p�otsang7�e`ieln��rdplnrs�t�u>�l�'�d>e	issez-f��ae��ios	�'fT�h��ilnswA_iro?6nI�aheaa$Eio�Lo�tha6mmdwef�eo�rh'abeimops0���'�Oirs^z�'$(c1he�'a�de	ijkors�td
�sg�adnr$ t�trghiHin�ujkwo�-oh'b
qdlnr=s�Jrlyaio7e7rtb!Sfranchi7sa�t�eth'a�e	is�btion�'�s(�o�snTsasg�'ermHte	idrge
�i
�y��n�'-be	ilo�p�crsp�.ol7�ad�r�tigh�6ton�'e	isdr'y��h��t_'acd)�egk�nost\y�z�'ir�'ss�Dkaeh	is�VhMt	�'dA]fl�rs�t
�e�i$Wo,�e�';�-�	aefhilmoprswdr�'�sf�aiollh')esrmoldFeVzi?n[s5�a=�eioun�Hecsr3k3(bair�sr�kn��eTnwneir�'shi
qpng�') s�la}y�cLi�aD�bc
�il�mta��pid<�p�e�i��eI[aet?h�'e�flmu'rh�aga�ej�uaioge�'sto��odsh	ne*ir�''%o�sa�e�xi<l�nyW'�nl~�idSiob�wv�ehan"�i
Fu:'c�i7�s��t
.o
�'a�bd
ehilpsb�t�wros�tcop7ei7yQc[eV|oro
�a1fd'�nN.sa7^cnd�'e��r:'�e	i<s'�e	i�_t
a�bcdegikorsvy:'�|me�hni�o�y�e6\s�'	e��iIknsydtmoeIi
ho�s
h'-�xh<l��m�nrs��h��sst�'Ne�FaAn�'e	isd��r+	puI�sity��m:'�e�oa�'el}	tng�xe��ioasl)ls��t	
aceh	istzgn�ae�fai�	vsdrs�'dsi!5s�'�-	ne?i�'�!aei�Oo}ns)�e"�th'-�ta�ei<lsQ:dmin0un5grl
:'��acehiorsstvh�'�eu�i�ckc<lnrsxom�c�e1�ta'l:nh'Z>e�i<ls�t�'es��'p�aeu�irs�'drs�'�e	isyo[pmcnst�'a\e6o<sAth}aud�eina�lri�y$�a?�ny�io�beih'rs�'�-<lct=me�vi�'dswor�kia�' �nd}egnrss2'ae	i
qs�?u�b(_n�tdr�'�qdhh'�-a�eis��tng�'<ls{�tcdeh�3sh'*e�ipag�derre	isd�rte�io�Cy�sG�tmat�'/�saeiu�'�salnteh'Q�s�'Y�ls:'#�ct�'i)
a:'e�'�tst5�ia�Dnaeioss�'tglst:'i��e��eori�y�-a�ednrs�y��d�'n�s�tnshe	i<l�ndr�si?n]s�'-�!abffglmnrstyab"<ir@NeivFe�vie�r�s�ya'�e��kan�'mso��we.ince2itp'��v�+oJue�goXByer�')e	Gi�lsa��e�i<l�ntive�')l�nsh'-ae	il�mopsM�t�:u�w��buo�4ub
.mwo�uaayrt�'�e��is��f�uve��o-r#chaeiuyri}o�uO=se<ll�n[o�dr
�s��lb!io26nVijswԐdm:'abcdefghilmnoprstuvwxyz�'cdfg�hknprstvh:'�e	ih'"-beiswe�ldnrh�lnUs�Ea�'hl&�sfno�r
�'�va2�b�ehilsyo�jp�enege�s�ti�t.�u�'�ae��isyd�"r�y�'-Mde?i�lnstb��ud
qr�s:'}aetp'�sh'ef	istd[vrr8�o:'�jtzmn�ye��ist;�d�re�hu�it�'�|bdh�rs�Ioh'�s6Iwher�'de	insyD�adt
�tXeeAUiE'-dn�r
qs�t�'�e[Kiswo�raelnI�eo�onssr��ag7^ua?�nhith'e�isdrss�'�i�os�yt*|hv�eiuxMore	i�'d�r&�sM�'tmae�g�sOGr
�'-c�d�kBHmr�s�tuwemnfie�letfo�rh�'�e	ih'�eisy�enGe�gwenho*6earyd�'�sth'-�eiI�m�ios�w�ycCfhwliande��d�ring%e�es7h��m�t�'-aeghihl�mtorsuw�"b��cspip�n�clth'ei<l�sses�t
�z
�a
�e	i�mti7scei�o�'d�es	n�onrd�'arsriye<l'le�y:'dem�a�eiyenrstGe�goG�r�bostn�''�ansxalat�eiFoun�oN%vimai�cteid<l+sn	oW�s�zsz	ae	id�rs�a"�e	i^eov�otr�za�Mmaf�or�7mI�i&m�'abcd�fg�lpstn%�iaehsterW'shiAraqsr�1eh$�'x�tzD�iure�'d��l�swe��amroti�f�v:5iai:'�naAkmoui�t8a�e?in�'%�agsl�wyr�"a*�er�'is
�'a��dginost�'arth�'e�iswy>$n�a6Kientnc�tAe�i�yW'gi�rs�m�ti�vo�ytnrJx:'6irXBx}ate�'ei�d�rsngUs:'�ei�o<s`Jc!Sf�l:'l�mnp<s\t:'ace#ygio:'rdo':o�sav�pa
'}ld-n�'�ar:'�aaord�'&�es��kldW'}o
�vFei^krt�udo�uptera{o�neoch��ams�ua*�ta�i�y	�ra�iom�nseningJ�epi�rIkn�oJp	:'}abilostioay@g?n�s��o�we�i�th'e^io�en�pr�n�rs%er��a�'-}ac"dhistu�3d"0oh��wate:'lr�i<lUsgi�y
�cecti�ZaI2ie�i#�ur	�'b	eE�h�impso:�mS�xa�e�n_�r5eckrocd�mtL"yed�ro[�ma��eoe�m
c)5aeiy�el#�qr�ws	h'-D�eh	�ilGnshead��d,eeav8de	�iy�d�rs�'a�e	isgei�'d�so'a*en�stthG�aY'�efsRai}t�ywce�'	i:'dYei�e<l_�n�nns��'�(hei:Iu
DmHrJscO�gT\n/ps
�aogl�nraphFei�yc�e
�aog2i7yH'��bdlsx�tBadoEw<z_'
�abiptaosLFajt:'abcdefgsiklmnopqrstvxzbimn�r�Ji�ls�e	i�oa�e7s�'-Babei�4or�s��yl��ae	Gity�d!�rlr�'D�e	�ilosD�e	�iou�ps�uai�ot#�clth'i<l�nss�tQ�z
�a	e	i-m�eiFonon�'is]=saW'-inaiyrian�'6�is�e�n�'0ld�ti�on�a�oaei:'7er<si�ya�en�'shI,iot��vffic~�eti�o�sT�uehiko'nJt)�cst�ae	iTNo�'d�ersia�oeft�en�')eoslu�KoiZ�ee��nvith'e?isdr�'��ilriceh'ss�'dihl�ose	Gid'�l
�'-bcdfg�n!�rsus<d
�ief7rraumilԗchtenstein�'�Ye�'e�e^�e�'t�xena	�nef�ot�'-bfgl�rstGgwafϏgprstnd-dei�aor*Screse�ra�fiiupp��ohreat��eeq	loRu�lat�'k�msor�mw�uei	o!gk�naptvFe.Tia8n��ya�iW=k��o�'-	e	i��osuoahnu�m�nt�e�Di�ut�'-efh�i<ln�Cpswfh�#pin\{geaгdu�rd��n�r�saceh'sde�oa^�d��r�eing�'�e�sac&�hbMe�rri6�beoig6\h�ei�ru�t�rae�ibillit.=y�&e
h'y"-adln
qr�s6Iwbillit�iD�ye�}niy�ef�h=�n�1e	isailoty�'�cngeq�na^oe�(tu:'Enokall�aeilmy:'e�a�eput:'ian:'�snssg�w�'�eis�n�'-Dqd�plw?�habeinopyW'vad	�'ae!�ihlosuu{gdr�e	i[ns�')e	Gisnrys#g�'%�adkl�prswHyi�light�'	Gi�sic�8kct�aqoa��s�ent�'ae��ilsb\rtilJe�yi�ovd�r�lnUses�sh'^gnsuP�isin:'�eh'ei<l�nosd�r�s�tdnti<l�npUo�'acdegiknostuw:'�xghojpl��n	�'tabeiqs}yergY'thBHm�nsfa�ruis:a:etrko�'�A-a�fbdfm	n�r]�s]�u�g9l�mri<lsvtzaC�e	Gi�;b8�tati�Oo3e.Ea-eh'e�oGsurc�eiseng<lssai'3`lns	+e|it�'isc
�a:Si*s�m?n
�'�A-a��beC`i(ms]�u�b�gdr�iY'a�e&Ce�'lte0a�n�u��yl�ax�e�'ei�o�sysd�l|rh�enUsxo':eoo��dn�'e/f�xhis�l�s�sz�ae�idrss�'-�Kailoprs�trsead�e_is��eynch�dzz��a�e��ipso<*rlysaccha �rcLouul{�p
�c�eirnmy:'�e	nead��e[1issc �lth�&oiut�zt�zic~dkueiofFu3�ai	ry~ed�'��ai�lnsZqs�tZuzr�'Z>eis
Dc�n\�s�am�e:ab�lml�pst��z��o�.uothrao�#dj�omen�n�'e?i�l=osdnrh'��ae	isdr�'��s�'i[s/�a^na�mcehimo)�rtu�nrUs�'a�svcl��rth'y"-i<l�nss\tz7emNte(r�iei>�uh'S+oeg�g2iou<l�nr��sglstraph�'	eis�y
�c�enogA�iypher�e�irip\stMe�iMoaniaW' �ng�aiou
Ts�utM�eelo�r�'akmbg�e	isteurh'Gse�'-nrh�sx�tu
eeEhc�s�n5�r�rateweurgi�yc�e�s�a!�saeio}ybi)�lli-�tadlnrs�cwbillit�iy	_e�y�C-i@�oy�ef�h�ne	isd�s	�'>eimpswGCy�e	In	s0�oou�odlia�[n�ours�bt�'tzEo}a�dngh'E�lston:'�e��nivDi�'az:'r/d#�iUyublj�aaVibVideo�mne�ol��lwell�y�yg-abcdefghi|sklmnopqrstuvwxyz`�f�rdf�mntmv�'Ta	e�istzao�jn�'e	isd�r�'�a	eu�iswharkin'�ga�oh
ei�nsn�go
Nm�'abeosucrthevs"�k��e	eiy�en�'!Pi�'dstVehtomi�y�es�z
�e	i�t��tla�erzi)lah�ikoultA�vh'�ei<lss�tz�a	e	iS`m�ta	.e	iPb�t�aLeiFonI�ove	�s'isn4v
�'�~-Taehryi�wj��n?os]�u��w:'=ad�r�th�ae�emtith�'ɳiseph'�s�'�e	imswotio~�ov�$er�y�Pe�'msDt�'�teg}z�'stFa�oe
i�'d{m�p�rsbw}e}i}st�'K	e~misy
�'aa�b�ep�fgiH�jorssyn �r:'h�beidr�'E�hs�a�nac�e<�n��os�'aisl�i<lnUs�a��c�stic�'�a:Sis'ss	�'fO�gknstukf3>y��toll��ieng��rn#�rtmst�'0�cser	eY5istma��cilta
's�sj�a�eiosy�enb�pbZ9prign�i'gag�wgssb}e�Y'ard:'}ity�:'deg1nnson�'dq�eeW�rϝl�n�rsom!-e�'-bdefhil*m�nrstuwy	ad�.flprstw$"gw�airstR�aawn�9-aaeiGoi�sf<vl�a�au��nitug��ha"<n7yffV�e��ae"_irm�iai<\inded\l�nora�w�r�tidD�g�od	Gir�s�v-tۈeeoll$o�3raoFil_n�r;�uPn	stud�ei�nin
�se�ahitwZriore��mg�h��a�oreC�e�PoL�ieuB8ir&a"Niearb�tyDqd	'fkmnpsta	h'-aei?osuali%�khle)ai�1kdr�'	-�snhsgH'-glas�sp�'�eisA�n[s�'is	+yeh'rA|s�'�eh��isy�Hoeu�i-d<lnrsletae	isd
�r�strif�'	eisny�ge	ipsh'drs�z�e� iid��euaci�ovtadeginr:'?i�'�eu�ils2eiy�en�e(ghip
�'s
�'lns��t Oe�'}a}etzz:'�.i�'toqn�'}esd�'he}a�e$�a}eiyuAe�'lWo�aZeistn)g�'-�eV�i�lyle7a�'hist�uarFiri-io�o:'1he^io
�'cdb�egin
Dprstvhe
Yn-eh<lm�nsmouth�'>e	�s��nr�sai�Rlouth
'Z>e�speakFe	Gihbssorou�gteso'tatei��van,VaC�ige	iE'drs"�d�e	ise~miy�'ds��w�'rJhissx�herr�'	�e�se'�d�ssaeiqb�'-abcdjlm�rs��tHybcir�dhibleJyircdhri1lH|aKWoa@ei[lo	+y#�cc0n�_e\l�ncrk'7s
na�kV�itr��ung<lnUs
h'-bdeil�ns
��bc�}de`�f�[g�gi��klnp�rsaE�l5ur7bmis	su e"y~�ou�irЅopi�r��o*ro��w�'d�lnr�sbӄr-c�eiI�msUyc��l"Na��la=xsnn��saiynd�'Fe�s�e�fg�nh�th'�ta}d:�olPDn�e6gi<l�teng
_'�gFn�s3�a�d[.�d
�r:'abcdb�efgiklmnprst�vxzng�u �d}nab�Je!iruvi�te�or�'<lsJaic�ai��oo�rtuvismbas6�haeikrutysW'fi:5l:'�nrAn	ad�e�fln�n}ot�uW'nW'}o�i<l�n}e#�l�e�'�e��ihlnsyo�!waeQ�t�'�stiUaeuJSbdehiv�lmowi�st6eDi/�ria<ncBUrilll�'vi�ci7�g҉fthwan �saf�f	h'eg�hosu��w�'lmrss�a	e	i Os�/a�b Ogns:'}ae�'war�m}aluh'a�e	is}yC�b�'�sbs�eimpsae�g>�rr	�'	e��i�|j��msk%t�yen�^ra�eogi�n�r�sj�u�Xrox�'he�'e/fisuycdnr2�t�el�n��s��u�WriSdacdegik�'�c�rt�ei
hc�oh	�'-be	iprl(t"]to��xdo�rsn�'ses��aoog�mY'b7�qe�r'0t�'ef	isw�'d�rs.�i8}uor�m7ts
�o��heiu
W'rc��an�ess�'�ece �gikhh'e	id�rsh'drsx}a�dne	isdN�ra�chit�' �kh'e<l�nrsttania:'�n�'e�Yf~mirsydr�'�lae�viKo7lJrt�'d��lsaeh�vi�o[zRPn�'d�i6�nsr�terW'an�'i�ss�mH'aeu�'mnsbourg�'�Ye'8ibo?!uri�ya�e�o�nt�e�Di:'�o�>in-�o�Fi�<v
acdeilmnorst�Wxllp\ueho�ru�d�Je�u
Deg�Qapod%�ir2�gia:'6n�'*�ln��gte}y�a�eph�'ao�sdn9`tenopat\he{g
c�i�mcden�xh
W'��b*e?ip}ahourstlzc�n�t�'Vdeo'Kit-}n�ot�aei�'�0bsc�sh'waa��iseionwmk�nstHr�lszomWa�e�8yOitzce��l��szl��ves#�q
'-.abcdefghiklmnoprstuvwy�n<saghte�ndi6�sXs
'abcdefghijklmnopqrstuvwxyz��asl
o�e^lx#'abcdeghiklmopqrsu}ybdl�o?�qru�wgram�'is�a+�s�z,�iotn�oi�'c[e+shur�'s�*`ler�$ti�Udalbe:e�ues4�fiorarmh^inanl� dell� rangea5}w�'-drsbe�aon:'iao' �n�'Raryegor�'s�veRr�'eim
�oansvelli:'�aae!Pib�t!Hi-l�'-Ubad��l�rsgrunY�nsea�d�m�e�an�gtoyshbG'/�erF>ebG'<aei<snI|rzie�'s�[ena�\nt}c��w.�oe�ais�Whillan�'s��n�sheÿru�aaomae�N�
�'bcdefglmnpsiS,oeophal�i{o7y �d�p�si�8oya4�gna�mcvonoU�mol�Iuous��sn{gamet7eoc0yaiong��unguy!itygo�ulecul�a�e�'s�uhag}eciopo�pmu�(lcmio-econG)oia-econoL�mo'lmat1�eioN.nba:'h'a�cde^ghi<l�m�norsu�wgmasca�ntr�'esd�'e	ioydn�r�s:'�e�is"vc�x�-ilm�Lrqe�i=yoi]s�olyMsn��nais�'Hahes��a7�d��g�era}i�'lstst_�rtri�oerlqzi\�fia7co
�'�bssio�'
h'adeghimnoprsuy�Gzalen�a�eCil�	n7slan:'Liioe�i'��tePzrrafe��lh'c�l�ns�'�aC�ic�k) st�Hera�c�ta�'s!�taeioun�tim�ioK*s�ustia]�t
Fu�'7n�s�'io�rsZics�tza
�e	i-m��b
�ta�e	iQab
�t�'P�dh	�mpsydrodynamic7�a	s��aphe7�rflti	ryc*eBa�e�ooq�uo%�ug$o�l�mM�slg}o(i
ay*`s0�is
h'�Xa-adfiMlojong'gbr)�t%:vyhD�aai>�jns?Ue�i�ehs��han�ai��si:'ao1uC�cg�n�u9�a
:'d�Ceglmnorstz�'�aesn�'fhlso�r3�aeoa�8diy�netr~v�Do�r�'-�ab�aeVzil��ms�Z�o?ao
�aZ7m�xo}l�thot�s�n�d=ae	ifUosd�r��nE'bceflmyostz�or�a#r:'�rr�aaiynd�'%es�un�a�'�/ah?�ptk�e#aream�'e�is�d�;raeoina��e	isb�i-l��nlic!�aeRh^i?yo�ulreJsyP'eeousuti�y
�c�elriG	c
�'- �cdeiYlsdomX�oomg�osdt�nta�i�yri��a2�rscu��lae
ijbr�i	h'-f��o)�rs]�uwbJ�ueli`e{!ihi�feig?6habcdefilmnoprtvw
bcdg*wimB�nprtwy6alochi:'�ta�ijmr�ypt>e`iust�e�gi'minist!�ro�5i�auet�a"ptuUd�trop:'b�ioika{o�'lsey�'�.s�%hT/i:'as:'l�nT�aܵiW�eoSlntenLteio6�vsvtrib�ueC�i:'7�sna
�'dfnsv�iaict�iFoc�e�e�yolenc9tAe�ieouamsrmBa�enctli�'C�a~@bcgneBUin��a�e�i�lsdgoer�[w�'aeosclpro}o��u�dm}eq���a`�e�tm�r�w�eaessbux�rEdbouurish�e{mtr-	icd#�njqr`�tclu�s��oel��orrfora�maq�uaD�c�fa
�'7�aeh' iorsy�d#�sus:'(hin�se�}a�ea��r�abe^imoss�a�ox�rl}tnMua�io�y�'l�p�r�'M�-i��os)�agn�ptra
hmphiy�y7c�e
'^rut��z�'-acdefghijklno��pqstu
�v�x	+y�ah�moOsyt-ar[moL�uf-�weL�a
��cgkI2mnps;�tw��ae	i�uad�mrsbi�llS6i�'eisss�'�ealfi�lhi	pah'�so�us��eV�ahiueuh�s:'r<sia�'n$�'[s Onc�p:�naeioruTylmîrta�'s�y�Tu8�e	iorAziylY'7�abk%s�r�bngjlrF�aeil�'}ls
l�n��r�'sdgs�tueh'ver�'a	�e�i�sb6=i��lru�e1�lae�ilo��ry
h'knti�n;xeain�o�'sdr�si�t�'�ese	ih'dZ0rs�'�el�snsd-wurz\eao�uF@ntVt�ll_o:'acfjkln
	oplzst�'�cpso�th'
�ah�suer8�e!Pieost	h'Ba�e	i<l�n�osld�'e�i�lnssdral�'�5sa�e�sgrB�i!!lulabtha�eion$�ove�'Yl�nr�'syo�buw�l��oi�em��isy:e֟iy�'ae�hio��udqrju�'�eim�lss�mtk}^nj
si!�ne	�m�ruvraeX#ib6Wi��l�'�d�r�suse�	�Zae�f	il=op�'rsvaI	naugZhrea"*d�aeilorgl�s�'%ApshelfArvc�d��lsgo�'�e�seu�i�'dsne[na�'�ps	�aefhklmrsl�'}aacturane�Ui�berik�ia�'�ui.fiUsr�te	i�'d�rspwcri�p�C�g:'irs �m�t �i�'�lmpsu7�a�a�
e��ilethog�r�actXth7�oH3u:'abcdegijklm^no�npqrstuvxyz	:'bcGzestuou�'s�<ta�'is7�bc�h:'h}a�ion�'Fesd�e	isl�yuea�i�'di�rs�z	o'2Saehiou�y
al:'%�il}o}a�oYu�'eid�r�sm�n�o:'ate�'n�'�+n�ss:'<e8ei$(u�e�'ZVesaeiorurAt$Weitnta}o�'s:':r}en�'a>e	islti<l�s	+a0�s�t�zio�n�'�^ltet:'^her#�i:'aW�bcegjlmnostux#'cnhg�i�'a�n}otp'Ts�e�'-l��tanKnqouoa��y�b:'aeW
o
�'?drsD+t6la�'�r�s:'lnogO:i�ytp'se:'}a]�o �sO�taiz=i9lme�rp�sB8oorFa�Eity
�'�~-aͫdeQh?ikosub:'ll9d�rt�'�.ae��i}�psd@Pe�ra�'sav�'9
i:'ma�en�'sKh�'�!abeiosoro:'Mud�ntyn�'egsY'spF�i}nC�wa
�iolr3�ar*?s�t&�e�Pnocnh��yu�aei�'�est}z�as�='�e?�r#�tst�'e�'s0�taeio	ryk��welzcԗsd�eaenoge�'��asbds��tw�'Ybs	:'�adehk%tui<slla�ei��s	�'a�eȾi)�lmy:'l�'	�e	�il��so'tVe.#ik�ap��i	�'�ae
hi�osy�dlmn:'la�oztpeR�r�'sP�ianln:'<l:'�s	�'}abegisoroњu�t�z8Da
'qsueW'x�o:'r�'ðd�e	is�aBHl}ae��ilh'	�e	�ilos:'<�e	�ious+lum�s�'i':as �m�t�'aD�belsn�'nl*Elae&�ond�'et r��b%vi��paceh!�jkoqstdUir$(ya�ou gr!aline�ih'�ln+s
�fr�'-{asTu�'-*e�hC`i]�uZru�'	eC`iscn%�h�'>ei�r�sc	n#�t:'ue�'rs�'a�s�#d�'-aei�l�mproduY�cc�e'�gsh�Eruset�to�idn�suty�a'�e�r�s�fn
Nv�'ehiosu=cdr�'-c8�d�e��fl�hilm%Aps�tw�ycswl��atr��oo�1ralr~�d��aeCbn2eI�iyi�;n:'hti�pr�^oo�
rea�dc�Pf	nt�'�ashi	didh'^Fisrbat�eWiory�'acehilrstuz�
-#,dgGzikmnr?�u�wu�rtouiri�XtaptCga-Jnh�'�ab~e�ilmpswoo�xg�keXosake�i�r��l]�t�'d�orsHy'in�sael�'i<l�ns�s�tzy�l�a�ih'eiosm�rwaticaC�i*s9l:'s:'=o�a�e�s\�ulnrI�scd�y
fe-g*s�{#�az�o�bneioaclm�xrch�'�a�is�y�e\#i�uo~�coni�y
�ae�ns�kum`�rsycjohi/�t��a	�'ehiXo
krk%s�'d�lrs�'-�eh	isof-fa�co�1rvqaeiwtp'�s�a�e�2nkrit:�uae8�it�ein'yovd<ln
qrA|so�'�hsth�rieCl	dgtmiehlnprstv:'�eli�nhp�asdga�snrta@	kau@pN�rass��a}a@AeioyLac�nt�eyiainܵi��a&Eu:'�is%eoۊle�i�n]�r�')e	Giks�i
8
'_�eitwh'lmnsla�'e�r�'aisu'li<l�ss)tJe7m�t;�l$usz�$m�eg%oell�'�.i�'a
fbdefh	inoprst:'(Cn<sTatr�s!�al�io�y��w=ae-m[w�'�a�'nri-tna*wi�'a
meM�sl�toV�l:'tPDaa�dei�ouy�hzm�rtl�'d�rs�eE�l	nX�r��Wtan�a
�'aiYpԓ'b�sP�a On�tabcdefghiklmnpqrvdflam�_'/�s6�elEDeiste5}rri�dalorubfil��nru5}efreRy�Wnl�M�'uRmthn� yy�M�'is�Wme=yle5}yaeiui� nllW�antocRk�rskeynr� ynel� lmic� kac�Wyke5}nlleorRsug� haeE�ioniW�ermot5}tnuW�wE�aW�ngal5}lnroKceadrdW�elaE�n�eXiloruy��nvW�weW�raet5}w5}hgW\ofifie�raf�l_'ntoXRyW�saein� y� ens��nz�isW�onlnWxs�aXheXhe��oigh� taeuruen�'ghW�lW�aE�ohW|aaW�ihW�oaeilmuWzlar�Waghton���'W�is�hherX�sueW|ef�aeiF�g�'-s�taj'bcdeg�hi�jklmn�_oprstjuwxyzdgln/�rst�'�eosw�'blsae�na>n�r:'we77e=aerrYl[ne�l�n�'isl(t!Swy�[e�n-b�m��m�Ouh'd�ei<l�nstwyerh'�e)is"�eng�'F�f�lsi,mhi,l
�'lu6el�iyrae	ibl�Mey�'�dhl�mrs
�'af�bhj,ilpsyx
'�,eR�eoa	+f�vack�Uicha�'�saniocsz�'�a	+s�8a+;e	i�mt'%�i�ae	id�rsschemi��c
adefilsuwl}n�'ils�s>ei�os��tle	id�r�2s}aOl�s4�i$�oacecnotu�'e�l�nstval�'i)l�ss�m�ttinoao�uscP�oeWiFod�l�ns�'aios6�i8ql'mr]t6�e:'nTa�e�'-sleA�gvaliE�lsJm
htcre�iae�ptrra�nm�'-isOs!�s#eg�oa��flsl�xaa
�'�e7sa�Wy-dknrta�e<l�nt�/h
i�ksch9Jah'\
ei�ls�ung�'�hs�'ahossbcd��fhjlmlnps	tvw�iu-Lyc��kXBeh�i8Byiuropte3�r
reat'�h�eo}Juiot"�h�rmp#�saniOa7coli�s:StoutYhahi �ors�eon�Jei7c!nx��eptgoagorr
8�d�suctguo77lao�tWrS�hasOeg Ojo}rs*Eh�stttersi$�nSo:'abcdeiloprtv^JmntceJ�gi)�oholi�ya8ce�'7c�ss��i�ensatio
�no�Cn7�aournteh%ei6ozeB�dh'�e	irse�w�en��dn'�os
da
s:'��nioftP�e�!l�yu�npwYh�^e	i<l�nsd�nir�ya�c�eous<lØnama�'s�0to�jmo�sh'd�ei�oso$�wngH'�l}ai�gyltmn8lben;lo�|pserr�'�e0l&�san	Be�o
n�s�tt��o�'��irsaiybni�lli	+a?�tW�da�e$uszlmh'Oi�ls�'�lah:�i�'-acdefghik�lnostuzMFa�cgv�nreh'rssc�h2�ik�eE'aeiosci'<o�tdl�r�s}z�'eis-�er�vsoo�hca�n[panvc
htc�'o�z%�il}s�aa$(iolk�'asdgeh�z6�iad�e8oansdg	+xT�eeio�as�eotm�ai7c�d�scoccLa7i[u�qca��el}rin=eoni�tmpr-{ti��naus�a-ear;�h�acetuwrasvanmtrualTtrab�
t��lea?�rahioli<ls�t7mAtol�'ast�e�uonh'�a�e	isr�'�ei��s�n�'-hsdrϗijiie�!sehX	risto

'pheleCiEa�sH'$(acegilmorst�vyaehitku�ydnttilei%�ss%odnres:'-ben5}zari�y�en�'OisandtisUbav'e�{i�'
a�ms}ae�Yf�l[rsrio�yac:el<l�nschro#�mh'�\d<l�rA|st�+ra
e	insdmnstVvi�a�$obC�u?�g)�otema7s�'�e	iosc�Grra�ct_Qi�se�
i�o^`u:'�sa'�esianmvorp�hin�g�eiyaB�c�elmn$Wtw�lya)ec�k�qe-mgo-ro�mua�keysi�dh�oi�CyolKiaacdehimoqst�' Obsal�'isneJsaemes�'moisel_�lnterQ`i�Oo7y�'�e	ip<w�al��ler:'icszPa	e	i-me	i
dLr�s	L
dglm�npstz^�ait
2horph�'L�isg�eotamia�'n[sph��eheolP�ri7ao�u"pmra�c7xoiP�c��u�'�aeiYVmYrydinrsgne�u��g�ischmH�iae<ln�1e<�hni�cr�surs�'�a�egi�zae�fhiortAuz
bcd�fglmpstv�Qzoli
�cs�tzNae	i�md�rsNaei�d�r�saeirp3�ai�untr5je!�ircularziy�aen(e	�'a	�ed�hilswng\�unguisti�c<�eiouc��f��n0�s0�zTa�sgiraphOi	y�drgi�y3pce6\smitChork�'Fe��i�saoutz�ehematic7�a:Si7srphd�ios�e%�i��chGlaoyrs�'is$rc5spha?Utsic'�a:Si	+sotymati7cs�.z1�e7mabstt��il�eis�z�'
�e	intacahr`�se`.os�ei?�su<za��rh'dmo�rspsych&]or�'ios
�ct�eic�ssilogi�yc�e6\s�aaiossuiSvy7-dmnphetamin��eLa�eoRHg�i�lno�k�vndt?uVx�'ioscSJs4~alogi�y�c�e]=srex�Na�eseTllr�'�a�e�scen �suBUlrh'Gsnפy��eiocf'ai
qs9lt�ein�Bo�Oa�z��i�'�lnpscQtio�dm�e!�ioli�stanis�(zelr�ne�'�ds�oh'�e	il�sicato Ol(Cner:'b�ss#ezao)�nh'-stsopra$"nin�t�ag<�ru^m:'�m�rM�z'a�bcde8"fgklmnopqrstxzs�:'�$-Pmpslaci2�dma�'ls
aehkmr�s�'�hswIkb'�hl:'aeiel�'amsnge��la��s�0o*�al�'ate�i�l �o��s(�gng�egan�'die�rr$t�'e^iss}y�lԐya-ic|aoE'-abcdefghijlmnoprstvweonviroE�nrganis�memnrrophR�ipealys�teicy@rhit[�e�eir�acoi�^dVRlew'�eaG
ehilorL"yps3Jua
aeiZ(nph'R�psrcu�viimat�eOidmns��e	Gip(�utro��l"�meDy�de�onsitoml�eclnG6vonomic*sectro�dmA�nechanterp�railou��r&�ubclS^e{#r;hE�aE}mop�rpArilrssiS`lnS�gelrnenrU�ia��om2UnpvH'{#msh!5i7syaybi�tdroP�dnjsect�eR�itruucojueiov7�eghg�t�aaeio�un�atero�rri9�t��eniatur7e7Uidlr3�tePul�i"*l
�a�ephQho7s�'aesutio�cnsia�'�$ntr&�irganiscmahiorP�tPyE�yaoy�:gnt�e	GiograpL.hsiJ�c�gH3p
�wioon�bcgpess	GiForam�'m�s)e	ia7Zg��e�rn�'ac�deioptutellolDop�ei�y$rc�er;sci)�oZsm�tul��a$WfA�m�hor`�eWoruct�urge io�re"_ouchQfndDb|�a�oa[�ovTae!i�'Ta�ds-a��bcdefghilmnprstwyazwbe�flmo!�yf%itern	o5�vi*Sfo��rtfn��i�sentra�la�e�il�yye�Oi
h'-bdm�rstwa��coOsD�gf-the-r��o*r
Vua�eo�nr��c@r�sbeorroughougrJh[xo�nx�wabeaste7�rield'e��r$�ae�'s�te��af0'saiond�'e�sbr��fn�vth`ioUs��ia_�o�Oi�ai�b�Pfceh��i��ptujacti�Hoip�ms�'r�sea�=mm��m/eown��'	�saeiy�'ssesk�'�l�st:'ern:'e`r�cfn�ve�i�'sd�
rsster�')l�s7�en�'�as�_'hnr�s��ut'�i�kn�syGsvonet4ta�i�nt�e�i_�oaO�eh	i�)od�~oa�ih'acdefikl�Enopqr7Ystw�dgnw�rtp'e�g�as
qh	h'-e<l�nr	�s\�uma�nnr�sw�'�e	isy2Ie�'�a��o�p[vrs:'�th'ossiЀr��etainr"tvc�ti�y[e<lsz	a
�e	i-m"�t�ae�idss�a�'e��iims<fwyd}n�rho��a
�'aegimf7p}�rstw�ajb=xg�r}ydnp)�r�tanri7ya[eni7ssm�tia�ulh'�pi�se?Udar��tabcd7�egjklmno�Npsvwmsrp �e@PaeJZnegr{#e$ar}Ha{oit)�eegri4eo%�l�7eg�'�issn�'axfstire�'s��sef7colt'%�msal�te�'r:'t�o�rhoL�rabrlr��l��dtp'mrsete�rYdeJvarT�iuetoas�jt�ex�o�'eiossd�r\a�nn=wo'?�iauk�EeM-deio�'dors�tgrap�hitp'cnh'�zk�rss)�a
:'.acdegiklnostu�xyH'mrJs�t�o%,d�eeh�}ih'dm�rsYXe$i�'-abeff	i�l)�os}yenrx�pumV�beSKanaogglin"�gd8r)lhn6\eh'-dfrswdetڡeoi�'as�vl�'iO�os0�s0�zht�9wr9a��rorZ-k:'e��i"l�usyng�eh'abcdfm�2n�osvtur	Bei	In~�s
�z�9a�^iK�r�ua[ehiobm�r'Gs!�aromos�8o�rdnm+~i��r�il>�yod�p�'ais�u'l�xi<l�ss)t
�mt�'�is$usza	.e	itiX�ocektPu�
r�ierr�'�eis
�ana�i�y6\nDta\
e�7n�'�es.{aei,oa?�ls�piongec�r�t�ep �a>KclrUstx�'Z>eis�n(s�t�'a$uid�ikt�'lyaerXBr�~rel�'�4s�'a	eisytgk(�ren�rs�te�istsn�th'c�e��uei�'d<lm�nr�sa'�en�'%�an^�i]�c�suek%l:'a(�b�c8�e$&fi}ortcvy$$z:'bc	?gmnQe}h�lu��l��a�d�i��a�enl��o�keh�'F�f<�l�s-abcdefghij�klmnopqrstuwse	dol>�ldlnpdvrX�eYeilgn�e	i'ms�ioXOcadtlyse�dJs��rhrop�ei�y[_ce6\splriycU�e$}aH'	ieohend7Ispriat�ein$�oerghotk�tavLein{qoa��n	aehilor?ulprstnsclstego��rgle-nlane�i�ya,woain��cefP�v�'-�smak�e	iy�bassifi"y�c>e+�dmn�p2;umpunicatC�e!�irehenvdcdfseiBp"vu�cigur8�a1�etruc�e	ition
��'�sea�ntei7d7s�n�oveioasemslh'c�e	istean}ao�rur�'pscric5b�pasdrsglnos�ein	+sR�l7sect�eWiweostrib�uhei)�nun��gbZ�tnrsxteRmr�'ae�i��ls�y�Xb�VrtiS�mplaiֲnRmneioastac�ourlee"lN�rt�'s�wtrt�uaiouu+�gvin�$gvern�e	imsen�tid4ae	i>drsaeimF@n�pard	istssZt.�adnenti�fftorm	#a�e	iserpretBa1&e	isudg1�e	i�:maenWb�isyadde�is��raoeWn�*tX@vm�a+�ogay�{mni�o�y�es"�telorrceiִpv
�e�iac	�ysitZ:iioRc�n�snouBunc*
iuaolif�i>�ytBae	ieo��uampd�eA�isembe��ror	�resel"nun9th'
a�ehiopt,�u�yape	idns�l��nlnos�v�en�'1hakXessai��uppi:'�Haullri:'�aesos
aclnifiDc)elt�e?issdtaete	id�m�rs
�'aeilorsyksTae	i�'9n�rs�hsd�r�e<l"m�netto9�oae��iu�lnslate�ids�}a�ssth'�e3�f	is:'pe�idsn'�sderstaond#Se?is�or�iM�'cefhiorst Ozh�'el:'tl�'�ersj�or}aid�!agat�eWig�ocg&_stthondria'�ole	�i�'�d�subi�Es�'aes}yxg�nr�rE'�-Ta*e	itLeu6azen�'Jdms3�as�v�d�ale��p��rs
�x<s�re�i�s:'emonsic�'
�a�Xs?y:'abcdefghijlmnoprstuvwxyz�'mnp�tw�'a	e	ishango�'b��ci҅suXByJ7e	il:')�eisvtz�8a+;e	i�Faf�e	i�tchkajs-aiz]�u�A-haeisdr�'�i
qs�yng�0b<lh'adeisulh'�di�lss�ei�'l�mrs�'D�e�{ilsD�ein��ganteWioh'd<l�nsr�'�sh'�ei"�l�nss�tz
�a	e	i-m0�t�a
e	it�e�i<l�o�y 9Jcfgj
sovperaHWdiveq�ni	rya�Vc*e#nbl6�ilsa�eiour��ti�lUs
�s:�t
�z�s oq�vperannd�'�n}tfitag�o��udis��hiye�'sH'aeo�r�c��imBvw�emaaedY'an$�'�Oi$�s_k]vg:'roviJc�elnrsh'e	isd�re�Esa'�e�$�'�H'Jset}s%�y��e<l�nur-ei�sz+�e�ia��v
adeil4notuylrs�'ist�i	ys�e	�'a?beio�s�yvi�zat�d�eren]e�gvao'�n�'cDfhsula�erJe�i�l�kt��w�a	e	isaengM�u7^r�a[e	�'�ei<osuySeMfsc�k�'a�sn�'comodd�l{c$�kCnto�'e	�i�s�dn�rc,cbdenfi
Fu�'bemssasUasnt�'a�l�os�u.r
�aAri�by:'abdefgikmorstu��z
�'cdgf�mrsu2Uz7�a7�o'!�is`hch�'is�y\8c�evis[ht1heich'a'isl<l�"ruo!la��er#�l�yia�ngrtyasq��u:'airiy<ls
�m�t0�s�)z�'-belmscmhn�aa�
k��aCod!�re��nsakRe�-itoeoI|rJs~drl�o
:'io��sa�c�so'��nidh's�cmek.�q�st	ior�'�e��isy�'e/fis\ry�'�e	ishinr	sf�houth�'s�'abcdeglmnprstuv�xf�m`harouwhloruy2�oromra�e8�e0�ion��a�q'VtaDy�c{rtlaЃt�9rC+c�ti�yc�e6\sc*�i7yaq{lrmv�io�yn�uamp�'msa�e	ih�'�eis7c	InaiotZ-y
�er3i{o7yntgualh'�ji\ls �hgi	?uQZcsRzNe�i
htaeionia�'5	cs��r%3t�alro�eph-�i{oguah>�ecle
�a��oh|�lo��otyho�nle7yl
�ei�y�efOsz�a��e	i�/a�co�ty�mllab
�i�lhorye0�iP�rn�ei�o�yce
�aziLeicha�VtP�pnsatur�aa�lo�e��vaei�;otnytigneurh'�seguMrnor�'[i�sFer1�ao	3s'>u:'acefghimoprs�ygi�n	Be	Gi#�ugn�eal�la�Ci:'inrsvzt_0hegr�i7�oKWe�rqsui&�e)oeirHiddP/eˀuo��rolm]f�e�''�lsce�larB�t �yels#iae�oc>^ha7�lerr�ament�'as�l
h'cd�e�g	ilZVmnrs�vt��h�'�i.ls�Uyaewa%�tnaar'��s�'�be��il~�rstwdy:'(eR�eigtht�'	e[Kisc5eht3>ai�one�'g�rs�oC�ralkh'�e	Gis
�'aehil�sXBtbe�rW'de$�aHn?n��sand�e�'eijops�yh'�d�rsGy�e)ln	s�eg�e	iabcdegilmnoprst7u�5w	�iln�st[�vw�8y�'ei<ls�'lmss�tz	e	i%�t
�a��e	i�'��b�to�Hrid�i<lfne}�aaern�cth'>e	i<lsc��aSe
�'ceh�!ilnݍops��tamAb[nouD�s�'I�asorGzkh'b �a�0e�uab}nostr�tundE8i�l|n@	r=os_5e�aa:e/o�'<eisng�'sHqtV i�'o!acn�sc�HaHxo�'iso'
�cT�eheios}yadm�u�e��i
�anS�se�gglmpene�i��s�t2iogi�y^�cesetrJi7yhonemicH'	sions;s�'C�oto�w)�we�'�l	o'aegil�o1fudlrel�lh'�i<ls�'�b�e	is�m�nage	iFo�'had�escfMm?s�e0�ii	ry�ce8d��rs��aa�bceghlqs�[t*�uic�':^ksl�r�sy:e�liz�ee�iY'sdsse�mtyu�ei�6t	�'-b^oeiBHmy��g��aC7e
u��e	n
'aehilo�rstus�ta�p�'ls�t�'�is�'-be��is�>ea�ar�'-�b}Xc%_efhu�il��sw��iof-peaHruckei$rnÎg)�aR�e��iy�e�flov<�e�in�'HaK	e	ilsesE�sae	it�eion��olvrJ's�'dhlse:;i�ycr=wr&�o�'bc�eR/him>�os#wi��oڝkay	?d�rclC+e!PiA�n~�s
�z�a�eouth
h'�ess��a�'l�oE�e	i�enrc	Be	GilnrsthA,a�ceadtmpDe�'?bei�s�y�dr��'<�e	�i�sen�rs?ne�gn'tVe	�i�o�s�dt�'abeisVbin�'eosb�ter�'�e��isuoMs%�iatmt��bd�re?n:'a�s�ain
lef��is
'd�rul^�l�neisty�'d��o�rstyr;a�e��naC+e�io�6krgsklyachp�eio�'>e�s@eho�'-eDhf��iopswytwo-��mate�r:'d�rrF�gZ@a%Cia.�ster!in�'aeibil�eyh'ad�m�rsbileynse�nS�'g) sS\oh'	er6gu�insibaeu�se�lr.{s�r�s�ao
sa�eizm$Wrbi�Fc qllla�ia�0ir��e

:�'3�egh��l/�sM-v��'�si/�l�'�ins�ah�a
_'-a/�cd:eg
�nVitwd�[o�rt
�n_'<r_'gM-s�vseh'abcdefghijklmn{oprstuz$�wa$&rBHchiko�uh'-nne��el*�nage~�i�'�e��irsyake	i�'d�rscs�uutًaaHe'7e7l
�'bdfglprs5�a,+il	rye	ih'-dh�rshe�9aead�'v�elakp
ht�e\ua�Ir��a}Fol�}ti
fdngFe��ilnszMlste6�rl�ijzf��o��t�'�eI�iU3ls�'afgswCAb�u	ei��ly�en�e
hgss�hu]�mamma�ed�'ano'iqssLFmr�'�ea �iheidd�i'�idV�e�iilnb�uT�u
ah�bcdegilrtt�t�h	�t&e�o�'�ds��tkin��na��r	In�saeiosud�itntr�twgknoant'A�s/Tsa!wwg�s,�ap�nXcwmbi:mo�n=ai-abcdfghlmnprst\uuvwy
ace�mnB�pst�Ou!�wc�g�coupSMlt0�hat�"i?�itE�ao��rY�r&�gHxiul�l�s�yaeho��sust'lnl�eul��atrLa7e�ian$Enlmrlouineat�rru	�er�'<�e�s	mpo�/u��nlturali\ls
�m7timr�sensionali)lv�eaioucRim�	r�~et�ro
�i΃g�l�rnctionJ�a)e�ye�2aaeityerali<lJss7m(�tere�;dvel}evlngual�i7seip&o�dgTLtaS)tllionxaaotion�ami�aaңhlorur��t�i{ot0i�yaei	ryty!Sfi�ne0�r�'-s�txch�Zo�'*e	i#So�ac*ea�isnt7ei�ovlAe"ila7e�rocgess	iForamm)e��irp��oa|�c�tncepty�r��ny�se� c�eao
gYr~Ml3sahoruls��ek
��e�i�sreaZ�dQ>uaCcbderc�u�ei�naeiol��r"evuvrs�e�ita��mlu!!minrt�d�We�'bfm28ps6maloe�ih'd�rstyp[3e-jum$"bo��rei�yd��r�eMf	n	cdfgiq�orsh�ia�'a~ehi�Nkus)
ea*Cu_enarunPre<l�n) sab��ib%
bo��rJaei�oss�dr�s�'a�sk�nq�dnq�dm�gcf&�mL,tthipa	Jli(�co�'�e�oMt�rpacd�gikm8prtuwls}t�'is�s�Hah�i�ieor�'e	iKosd�rQ�scth�k�ae&rl^nl�'�l�'�ei�sy�e<l�naun�Xsr�'	eVzi�osaeiou�y�iy�'%v�ol�y'n(�gh-pat?�hlwmrbaitd&edg^e,uop?�aillum��b
��aceghiklqstwalourt
�i'
esse��i�y�'�*-bd(mso�uvilyte�'[slar>�ti<l7svt�'drst�urсa�'p%ae�kirysdrs'sso�do*�acn�'aio�slh'g�eti<lsan�'<ls�hO�lgE'<ls	�'-eimo��ry"Lrglt�'�osl��u�'-e�rs��be�Znh'rC�se�ulO
gxh''�ei�m-nQ�uh'eiosysdlss�'bsuњr�e�n(�lrgs:k	'-a�#e�i'�nsyssv��hc?nrhei�'�d�soE'Z>eGs��dell�@baehistu�;bg�nten�'�e�is�eiweon�o)�vh'�d<l�nrA|ses��ilnat�eiFon�o!!veg)%i'%o)'yuhiwmt�'#�aeosrh'	eis~Mnn�'csho��pali<lssy�t�mKtm�	uaz$�kilsyYl+�ne	i�'��-drs�p�acelnorstxln2jg�lm�aeonae�'�a��lptla]xsl�riti�d?�s�Xa&Eeg@oa�'Ch�sclp!�salrdi�a�t)uon�i[uo�gi-akcta0Tdim �no��rta
hdpod�ai$�dtno��dle�'��fs��e�optae�Uc��l:'eiri�y�e�ocfq�'�ae'ist�e�iiy�cU�eH'*ituh�'ios3pcglraph#Se�yogi�y�"c�e,�s�zoemdd�ea7st7ao<5s[u��ʴ���lSm��ntwcil�
D�b��inchhau�.s
'.abcdefghijklmoprstuvwyz�d<sjaemena�'s�me�rnzh�.�'abcdefghiklmnoprstuvyz�cHn&�oVip1�bc eios&�oa	s�c�be�k]e#h5}lre�aeil}r�lkmta�n�rn@af|
te�n�r�s	�'ago�ps�cwty�msaHik	e*i �yuatmt�lsaflprsvh'�s�'-b�e	isi�brusB�ha*�u:'oHibm!�ie<l�nr��st��e�i�y���a1�eumyu/�ra/�m'alo�fotYxr��e:'!�abeiq�oouycc-pa��m	�'-Tadlp�rscda��lrop&&ps�'rop[/p�eyYVlF�ap�aVHbng�'
�;'acdren;jno*EstY'tk�n�e��htyi
'�nei^�uyt�te:'�ds�'g	Gia�ibcfgm$(oprstew�ai�oomposigb$�raetz�e��tart�
iouUbci^etPa
eoruct��ue��uchnologi	+yJche
�s��eu�wc�rkHim�'a�ehMijkloprs�dlt?�aha�'�l�sew�sleon
�'i?\sc�|s:'alx�laei�yw:mdr�'<bsensr��soV�x��tabcekm�norwyY'coo�robnh'iossssiuviss�'[el&_stepst0�yi[~ci�c+�s �zmb?�e'isy�en�a(�oao��bgntansettt%
d�eion�Rov�e�il�rog�i�ypDgb�mw
h'-��bc�^e	i<l�nsminгdast��e�i��hiet��oacdhostM�'l�sh'i<ls0�svt�zaeԕrnct�ea�q�' �u��vgpa
�sharyn6�g7x~@aOeiuy�[e<l_�nr�Ht:'ac}ehi�lotuwlsi}ates.%t �hh%�ea�elni�a�e�'i}s�emovo!un�'aq	hswlh'i<ls�s�tQ�zid
oeQqei��tM�'�s�#e�iyr�sa#�eiolh'i<l�nss
�z
�a
�e	i-m"�ts�m��tpathOi7s7yes�tg~@rstahh��yt�'�(i�syeao�'s�;tusYl�ni�cl�laeirwsv�yrhj8lro:':e�sr}eto�'ls�'-sga"z�ega��bt�eiFon�Foati�l�'sayebracire�nMt�'s �m�ve�l�nt�i�y�0��:'�aViccsace�oVial��s��a:'G�ejameI2n'abctdefghilmoprstuvwxe�sr-do-we��llnprt�'�ederthal�'�sh'ossBftli��t-<b�^e	i<l�nsu�shiore�i
7d7sdg
qe��h�	eh<l�n
'ruas�kclhadnezzOaao�'erss�uekrtss�aita�i�o�yt�ein�o	�'bea�ilst
cwanZ0ddr�ca
�e�ic�Jein*gg�io5blmpstto�ganc!�tFe�i�yh&vo)�si�Tol7eia7chs'<�ce�i7dsar�'eiosy��oe�n�"v�udW�l�p
h'�efkhl�il'�nsyul<l�nUse	i�'cdpCrswra77f�coE�so�mrk�'�e�s�aert-{iaIelort�ei%on�oveih'd<l�nsn�s�teicth'�ef	isu�=lgen�i���e�ntia�7b77n��teios�\stude
'�'�ei}s6�de~@rmt<igl%�th�'b�e	isoru�'	�eh	�il�so�oi�y�)nr�'<�eh	�il�so��oi�y��n�'�ldls�'ityte?�g�eG�oabet!�io�Lcd[a�eut�tcs�^h�eis�'
-cd�jglmnprtcdfgilmnolnonialisU
mfucian�is�marwini�as�m�tas��ceoor4�gthi�cmpressiK�oait�iberaElarxis�mf�tazi�s��mloassic�'�aism�tlnronialis��m�tservati�s��vtei	x=cyr�miothicY'gisT�zT�e�i�m�toyrph'�i��c�'aio�sQftt@ja�eo-�lcot!�i�Rmahl�rt�Tgioyl/�i2jbas�i�mttole��mea7�lu�eropic�a7saehotl�'I�e �intth,eriot-eic�d�sLl�ntoxi�c�ntis-mth'
�isunte(_iAad$e}ftorn�uv'isy�e0ns-h(�iez�i�oguy�'-dls��rw��rcstaf}e�M�elr��o�'ha�e	iloseHi�M�:'drsr�'2�i
�'bfhistwzaol�l�`ol��ierfhlI�mwvtiamUpandq�etsor�lqbzuet�tcp��alR�ieilo�sd:�r}e�ne	i�'dsL�oork�'�e�{isahualcoy%�obmrtEeua�naiolsg<li-acthe+�ntibc�d�sabcdefhilmnpstvnatomB�iyeihavio[co�)c�SlzhhomplDuege�ncon��oeied&�bbril�l7sormoWdnmu�a6�eiongui+�sgi�yc�e�s�a�auo�s�'�a
�esaehsthQ`i�Qo7s7yp �tys�Oiychi�oat!�rc�e�iuien��c�,trge�or�i?�yiorych'
�a�isxic�n�i�oag�onsmi��tp|�aerrh'%_e	isa�iolh'i<l�nss�tu�z	ae	i-m
ht�'d�rs�npK�ehi�l:'aei�psu�'dܷa]vir-$Amtcd�efhu�a"*ya7ih��iehlH�lts�bs h'-abcefh��ilmnj�p�rstage��if�r#fls)PaoY�ot�y*6rio�ru�e$�rq�uryY'ph�oa+�ostle�'-under-lyM=mlr�s�'�lsaonsgund
land�'*�e<sa?�vaiyn�dO�n-�+wwe�de(datnrk�Mees�hs�s�h'-a��bcd_efghil�mprswygsat�5h�Sht�Ca��gast�'Feis��neale�<r�4elasS�hir3�rouou�n��ee�s(�ta)e�crper�')e	Gi�ms�we}Foa
ed�(e�Xteoek�'lAriMy�m>r�'osnwx#'�isn'ab�b�it�uh':�-�cVilM-saouhilprtuM�e�oiMeuhruindj��eawa�hruh@on�sgot^famy�7i�lM-sulunb<u�'abcefghGQjklmnoprstuvwx*|cg'�lOvm �a�'beis>e	i']llung
:'e�snlivxe��racehkoeragܵu��oo'<lnr�s�te:'�s%eio�kr	n*ErlY'ate�lіstms
�'e	ilnos�ydlr�'Y�losdeon�'ssh'Z>e�iss2�aHeacm!�kCEe	i,l�je4bdlm,mste&Cmate�'�s�ue;2dinae�i
�mb�cltvu6hs�e�ozs��c&Eeftsyiy�[e�leghtlr�'iܷa=eaelrssszd�'lsiy�"n��rne�}i�et�'-c��defͫghit�jlms�Xtw!�yblostwlinI�di	o�fHw8@o~iatchF�malk~oub�'bse	i�d�r	�raEAl��a"�enga,�l�ei�oy��fK%gar�eis�hh
�i>�pt%�a�ia_=ing�daifetc'�hi�HlV�ateiko �t Oeti�Dltn�'*�elps	Gi�yo4�tM�sbimriluy�ney�nr�ss�'l`eq�tita�#bo{dtacej�ntompb�o�'O�fpstvei8�nnh'*sO�eO�iO�yMe
haute
hhndb}e2ih'ps	eiloy�enhe�ge�'s��wI�nOEevan�a=ae&sk�i�'taeimprstJwr�'�:Q�7d�ni�flick	e��is7ya+eiotҘz8�e�ic
Ddf�ti>�y�cZOe
-bcgu7xglyceri
�naejecte�vrehllul�o��aeln�'�oycerin�'��ey-gri�t�e�oeh�ah'_�e�i�orut<mrcb�'-abcdeghiklmno-prstuvwxyzbc$"gns�Cwall>esla)�ion�[sh��oM-athrDl�'be�il5�oss@8ilei
�d�rssl�'i)�s
Fuey�'�m�nrs�w�stRmkturZ|n�'@jad�eosu�e	il�ye	i�'ds�Wzla�e:'l Oms�'�l�sjglorsNe]Wi7se~mioy�'-dl��mstma�!kmeYn �ia�l�'n�'�daei"�d�'nclat
�ourLa�eY'na�er�lt�eiFon�ov�e-abcdefghijlmnoprstuvwyzabcdefghijlmnoprstuvwyU{zbcdglmnprstuvxeorsrratio�nrigi%�n" aor4�bach�oir""tdem3�ieptan{�ci��eolecQ�tadhjm6vp�Xi" eau4�cs�tinistr6vagrres
�siocultuA�r,-ciloho�lgn>em��eer!�geri4�cderop-�aurys�mpea�rbori@ocsig�nht&Dlernd�9a��itom6voailab��ion['LaWbe7saeilru!�slileAvigeren�c
�tocdliWddegra��dogao�cea�k��rsI�iahloruyln�prt�2o��cbohy�Jdho�-la�uel4�rr�gamydia7l7seiVr��nlmnorle�@c'bmpsaut}a5&ist�ieiurcZistsv�iW,tni�c5selrt7ei	n""t��iy��ieh�edfjstvuct	i%oiguration['Launctiva['7l7setcr6vu�Nv�Vra"eirgBvignBvuBvuiobut	ig�over��seor�itl�:uperN	aro��d""seiy��dm��tiZnstal�lbmsoiQ�du�Nlto��dc!�laeir
ug�i	h�cdflmnpstu�8ce`�rive+�roc!�rominatiouHnXarecii�atructi#vaec�hrminai�c#tsm+qtpshther��icjqil�orpl
ios �uiminat
�ig�oun�cui��s,qai"y�nSMvcdflmnpqrs{vxotnY�ooL
du��cfecti{�vZ�aectricHaseprgeG�n�Cdfor�cicU�fycloi�duivalenc
�tytheU�msen��tceipth"la�^n�	cm�psten
Dctlo�Ss��eaeiloruc"dttA�uHa5�t��rcl2Untion'�asopod�daou"ym�m��r�5wc�et��u>orma7l��te�enction�a�ieorn�>deR�tver\na`JnaeouyzarBvdrepdiBtetoU�fs�tm�*apoc�ydmnoren��tperat�Io"cdfnt��veupen4�dst��relc�taemt'�mi�co��veo6tulnrlectZusi��oacfvi�c��h�ueention['LaGisxi��cnic"sri��tudg�i\eeioA�gtA�hnt"vegar:�i�luZ�i@eA�c��gaei�hoglA�i&Dnig"ndm�CstAbarl'!�lsopoliF�tcglrostfQr'�rita!�n�raeuyrtco�t�Ui�hug6vaot�i!�cmerica0�lmp�hbcfprjls�Xei'�gervan{�ctcu��pf�;ierati��ovgtanism['La�i7shogonalziE�laehoruryaetlm�pNul�0ench��yiyc%	sipa�n"t	i{mY�arfi
�storm�9a	ish�au5�rysiuHcilBvrsvo��ili�ueogjsu~nud�icri	pc�Vdfgledx�ueissiona�Ylt�-�asramm�a�eife�r�zbni��saehi�hu��cdnio�Xa?�d	�Xacdflnpstiouproca
�l"tgvn
�i��re"u�eiul�lF�n5"a�ie�wresentatio��niptdseA�unt'A�istan{�c
�ton�ds�5rurnab��lytY�h)Pg
acei)Pkմlm�optuwyl��ahi��oe��denti!�f!�s� acglxt��uaF�rre�gg5 eGiA�uln��vg	i��uo�Mkei�acria!�fli�s"zma�jtr��iaY�i=or��in�rv�da�iut��e�dccprsS�ceprvi'�sor��t��gta��iimSMmmpathi�saehi
�or�syr�Ix��nc��nrh�Snmina
�lt,�iei5|rat��rn��k��baio<�udn��isfparen\ct��v��p�nrsiۆf
�o#�be�raeiolr��i��inrtoBvmuHbsion['La�e�i7se(cr�anor�rtlenc%tu4�lcl�Mtal��tauЇtntL�eho �irS`d"kie"<l
�'bcdglp\rstuvrsa5�sor�:bacZ>itde�mept�Iaiv3�a�edhjmi5~c��eau�Qcs�tinistr5~aego�'n�saj�rres �sn
H'ciloho�lgnZ>e0:mer�gpea�(rps!�iig�nhtl�een��dtom5~oailab:viae��iru�slileS\vige�:rea�k�`raehloruln��lo�rce��ralran�c"�tg�eeiri�cnicclmnorle�ch'bmpssaut�<ast+�ieiu�>rtt�ani�celrti�n5�t��i�yeh��edfstvuct�iS^oormins�tsm�tetc5~ur�uair��gn��uiobut�iNoverscie��rper �aro�d5�seiyd�im��ti�nstall��ilmstiA�vu�lto�gdaeirNidlmnpst6�vuctib=xliv��eocr�aominatiocnarrtmencteciIac�Etri9p�ascilrplinNaosc	uiminat�iNoai�y��mTznH'dflmnqst�:vxu��cf�e�aectric8`a8�pf	3tor��cuilvi�Hba�:l�'suen�gtchh'he��hceiphla��n��um#apsten=xcstl�loaeiloruc�dttcu8`ate�n��rctionh'8`aaou�ym�mwe�rct��u1oee�zn��corJsvernmentWaanu8laeouzar��dredi�tmolo*�g�$md�enrsen��tcdft��v��leupen�Qdst�grelrc��taemtmatNoi�o�cin\Qgeolrlect�ucfv��he�Gre �nxi��cri��ts
uud��gi�gceicgtch8ntve�rinNgaeigil�gnlUbaigniLamtS\balh'�lssgl�mrita�nYrae�;iur�ntcot,!igot�i8cme��rbcfgp�Kjlsi�mgerv��acu��p��rf��ienar��ierati��o)�vaehlorurya�/etl0�lic0�sipa&n�t�i�:mrfi�usorm�Ia�i�sysi�cus�ese	idJsil��rso��n�BilIuaeocti�cjsu�<dcri8�p�Gdfleissi��oth'+�assi�of�@bn��iaehi�gcdni5"ao�ad�uo	�acdflnpstiouproca�l�tgvn �ie�r��re��eioul�l\Oun�d�Mie�wresen��titdseunth'ciss�a�1t��rurna��byt��hgZ>iace�sklm��optuylar^�ihi��oedu^�lenti�facgnx��st�uar�$ireu�gseic5�tal�i<ln�icuUioqBkei�hacia�fli&s�zr��iaeƥiUor��in�urdaZ>rrp$oa�hiut�Mectucrc�iprsc�he��sporth'�i��gta��impathi��zaehorr�xk�g��ncn��h8�ueira�t�hnea��t�xaiodn��is�fpa�Qr�gv��pnS\sif'�oo�ureionr�ocb+�aorlen=xc��tu�QlclqBtasl��tat)�ihohi�hr�aie��le�r�bd��jknst,l�')�issy�'�Yd8�g��ik�sta��nitdtmSma%e	i'ab_%cdefimprstwea�s�'d�h��'renalineeor2|tr�Vnis(Cc7�t�epineph0ro*6lH�etXBz�'a)e	Gi7�os�'lnth'vci<l�ss�tz�8a	e	i�ae	id
�rs�'d�s�t:'VatyivoMel)5ais:'x�te:'E�m�cw'�eh�o�'-aI.bcef�vi�lk�mra�suweI�n��swast�'ews�rl��ny�ard���sest���'��e��wmptot�nloif�f@tarst�'e<swr�'l) nsi) y�e'Ra�''�lnss'��eI�m�si��e�o'�umbe/�rr3�lI[aest�'��e<s�waeOMiX�ltygiad�nefhioty
�'-bcd#gpsyc�oa<flD�g�nxoiN�vi�eera&�t�'e	idrsh'�iss7yh�e<ln�e�gcoHmarl�ga
i�udaUMmacehioArstwbrt�Ji�li�y�a�e �z�einޣolvh�'�e��i7y�'a�bd��lps��wa<�d\p in��gQaiA�ongD�'�nscfn�oe	i�'B�abds�oi	ryTa*
c*ecrh2�oiy�e'<oing�%hiothstanZd4ragmn��r
qsvkchX�o�aht|�'�se����'7�as�/Ʃea�lux:'aegio
�'e�k5rslOmn�'seils�tsz
�e	i��ta�e�itiobn�a7ya�e�'peso1r�ctYVi
'cksain:'�e<suzneC�tib$ih'ah��irtd:�ya6y�e�i�Qz^c&Ee8Dz:'
�d�r�acof�f��ac�f�[fh��s�'��abcdgiklmnprsst"vuz�'b��eisiE�l�y�eg�na-l:'tnJhle"�iaio�ur�s�t-$fp�zo'c�qlnpst�'!5isdh�l<*r �iWbo�iegih'�ln�r�se	iE'd�rs�s�t�ae*?gn�s8�e	iu'aalof��aloflaisPbb�grbor plai�nf�ti	ry�cg�d~ebeisu`�ae*i<l�nsudr�s�'�e��ihlp
osl�akul'0lqlraioVbS8c�lt3�e��iFocTa�sl'>uogi�yA�ce6\snsous�ematiU�c�skul'lr��k
�'ac%deg Ok��nsvunth�iak�u�3atza5�teistm%�yb��eootpe�{il�'dl�mrsinhg�'�isGCyin{gu��r�'achmAOpr�cst��wtC�ei	In�o�a�fr�aou�se&a��gai��cswee�Wt�a�e�mtiogvn�u�'�a�i�s�-a�Vel�iyzle	ih'drsrh�a
_'t
a�
b; celmnqs�hI2sY'r�!eo	nph�'Laeos�a�tlmssep�sa�{nBHgui�Wl�Ms�e/�sdm�rp�rq��ch�f�rs�egmlig0��ae'abcdefghijklmnoprstuvwxyzbcdefhklnrstrX%ialose(yoc+�knnW�eo� rXeowW�nyerarrelRlair=a5}eggin=seeff=eeaW�reil�_'=leoill/�yur�Ukhue5}allivW�aoo�Ul	f~@hkmprstx�'issE�h�'elmsuw7dn�yXa:e�homprolvoha�'�e�i{�los�m�w_'�e�i�'l�ce�hlm	+sntsandeaLa$�a:'.abdefijlnostv�`dmna
W'carYeligat8�ouray�cte<lfn�sdilrs>$y(�isan��c8ti�sel�oct�e�iuscatm�e�ig�o'-Gst��sw��a�'s1fueuct�'-�eiFoslibxifnovi	ryc�e�an�'�-asٔei�\s�trgat�e'�iaiote	i�l�nsgqtvaLeit�eI�i �on>gueih'd<lfns	n�tera4Etio-n�unq�g�uo�Gx�e��iceioteune�i<lr�srae8�in	tt��id<lnrA|sqrsuiay�eou�sva
e*ibnt>Yil�ey�c�-t��i1hos�ein�oveh'<lfn�sd��ilestce}]isdnssc�tAee!i�d�lns8Baeirtric�aC�i*sna�c�teu�Cpc
�et��eiMosnov�0ne<l�n�sa�eruinTae	i0:msd�ruIdsi
�o
Nvz�rseHu<l�n�r�seir�Ks �a�o	aceh�7kortur_Jiailulmsion�'�a�eC`isdpentY'al�'�l�sitalJei)l}	su"dP9slprth'�ah_ei�lYns	ns-m�tai	ry	�n�0t*erse	idn�c7ta>�ln	�'-fgios�ug"or�<o�ota	+cglraphFeREi�yo-�gid/�ee �or.=r+enomowo�c�re�i�s:'aeio��gh�ln��rsvedrHa�o�et��tu�a�ei�o��a}on�t��nl�e�lQbg�npre�%n!�o�u�ol@Pa�i_'ade
�fioM�s7tyl?�if�b�ei<l�mm�nse�th'	-�'�l}rst �s}s.tJcP�ftn�otsFumnru�'(�etoc�he�'	�ei�lo�sf �z��eut�sr�'Z�e��l�ssse&Euy�'scdmnrsuh�dnueima'sBvtpa&Eul:'�_l2�'s�oplpogi?�y�e7	shi�1lelq�ls<4totphagA�eiu��srao?pud�iguz�ev�c��efst
'-abcehilpst
�abcdf��klmprst6�wScreOn�Srreq�oui�7cnes�rsaSeei#�lkau�t?�sQ>teoa�dad	Gi��cet?�aa�Sr�Aghe-cps��wtu	e7)hl�'�sye��alusdnrbegcdsOMa�eive�'<l�ns�'�eVzis�>tandeE�dc;�n	sei�'��hmrsa{�t�Wx�'>e	ishi�paol�nt�'ðd:�e8�i<l�ns�e�EiFo�uio
narint�'>e	isehiptt�'sZto�orei7d7s?�dr[Kia�grƥat}�e-etti�mln�e0n�NtiArm7abmd�gilruomo�Ysl�v�ve	ih'd�rstho��re��i�'IisQ�sin.bqu��i	h'a}eim�oskrupe�Pu�inT/oeJgM�m�'!�i	�msa��'Hkln^s�'-2�bc�efl�iE�msyss�huan!l��i�ekYt��ik�th'�e!i�sibw�a
M�'aehilrM�stU�m��pry�e�'a��eissm/�a��defychob�eenoO
k-dokS�eo��tna��gw�aahohtma�'$�nsoberfI�eadef �gilmosy0��:'}fjt}vu
.wX@h
h'-Mgbef�(hi`mfnosuE�afO�g�stwaA_is��hi��mornr�s��bi��e�e	sCwm��ptobgi��vh'aG�d��fno�sg��nt~�i�'$(eh'mJsarga0VractorAri	+ygnvaorch�'is�yc�e�-a�jcnptucleoti2�doli�y�e�sr�Do�'dei�'trsHgttaOen�iLe��s
Qg�e�ompi&Euac�'�d(Cn<s
h'abdeinscg��hRk�n@pry�'apm�y_'ud�sur�gl�n�opet�'�*s)�t�r�^cP�nUsr�ti/�'bcdpsvomp�eire}�corten�ct�lsesen�c8tceien�c�tx~�uor�e�o}k-a�bbcegilorst�uwyb�Af�ltosv�o��c?�ita�Sr*Sgn'!s6�ieoh'�}-rglm�`eogi�y7c�e6\sC`i
�'-*�adxfg�hi�nrs>btdhlF�mtopqstu!�wimensioa�n7+ao"Nr��i��iual�r��i��th"_ioY�rv�i�-pmansմhӚrta=i��d�'aJe�o@	h��e�i�ceoingYn�son�'��s�ioyokFe	i-be�}g�'mnatopoe�hi�tda��gush�'�e	iɎac�e$Ah$EiltrZeiaowLa��eaoriato`nglen��i�yogi�y�"c�e7	sa|�rc�xhophŌo
dh&klmo��prtz
�a4lna��d�e!i�sd!�ie��pa}ttip\�ph&�ae��iy
h'acehiopt<rstuclqpwif�ti>�ye7d�r7s�'esscen��c8tue�isd<l�n�r�sode�'7s�csd}lnrssh'-b�cde��gh?i<l�nops�.w	ade�.fhm��psѼt�ind-s"0hear�It��n<yaended��narted�An��i��oou�r�rsocume�nd�r�sasne2�nfficX�eg�po��slar�iae�'bHWdnstdt'is
)l7s�eiFokcn�oQov}st��eit�ruClcroie�dhalmio7a�clogi�yc�e�sanoFu"t�eGginon�'ast�fei5jdnrstV�o t9JsV$iV$oeornheiMm�nrstun9ev�i�aLeint�eޡieoss�eiFon�o�vbri'%o�u�-�eioscmnoh'�aC�i*sai�u��lsz
�a��e	i�m%�tBae	idrsn�'a�e	isl�^i<l�semlect0�retri�yce&s�h(�ln�s
�a�'abcde��fgiklmnoprstvwjz:'clnt,�l��uh'(e<ls�'agj-e]Wiuouut_a(ct	�'%�a+�n�rsl�wy0�tes]Kt�e�ior�'is�y�c�e�o�'>eigwos��c	n�st�'ag�e	isl�'�e�l�s
a!�eh]Wi�sd7s�iaeir1Bdstra�'�lst�e�i�od�e�'�esaei��no*�ui1�n
ar�'J7e�ils�ei	+y�e�nna
hlnrt�cdi	+ye<l�nr�Zseiweo�'Uds�in�ovi;�c	�'bg�n�ospwo�dao�nn�'�Fi"�tai3�u�yns	�'ad]eiosG	z
Diay9Ecsza	e	im�t��b��t�'La_Qisa
e	i�;btion�'Tascmphlof�reta�zlhosp%�hmR�t�'>eis;�c	na�e_	s	4beD�fgno	s �yzc�lnt�'ae	iosjbl�t�'i)lbOsstssde�rr
�ei7sng�'ai�Jmn�'aslth'i<ls�s�t�eiFon�o�#v�'	o�ltngqaOvnaeC�o}yndY'lo�aol-uaeim�tent�'a�e	isl�t7�i�lsrisy�enes�Wstho�i\�lgpt�uern�eQ`i7s7yaphi	y	charyn2/g�xundi�th�ia&Cein�'�a�ehciso?�o�c)us�'io�n�s(�r�oehq�i �go	degmnprtonxti	+a�c�s�e�i�l�ypi7y7c5seornesR�tis7tnali�l��s��tz"�aC�e	Giaphi�y,Wc�eolNNeor7�maehedics�
stn'��sdic�s.=sospha�jthoHmi�c
�s*�a��ielF�l�t'abcԓeghilmpst�vw:�g �k�meov�rrn�'teq�aei�u>�oll�lao�As�iOUoaCik_'woMsFeriEaTs=a2iol�s;�talrit��iGzyit��i�y�crXBaeKi
�ot�eit�a�ce�6lr��w�aino�Gstatio-nMuabcd]�lpstrthriti7c�d�sly�aly�aeoy�nrQ�mntok4�es�taF�oth�'is�yHac�eaprc]xoerŽmom�e�i7ya[�iocnis�ze	i-m�'d(rs-mdgoth
:'W�i�sA�aesMit
acb�chi�lot�wegh@	kpr��tu#&uRte&rlr'x�nsw6KiorldI�l6Kots�tchrsoh�acop7eOiaFeo��w�'cmeR�na{nabcgi#�nrst?�y�zgadoug~@olqiheht'�nj�aas�yelf�v��a�et�'-abcdefgh?ilmnprstvwghotrS�oa��lf-c�Ldpo��uңho�c�a!�r�g_nrg"uaioruc.�lk�'�essdZdsau7sx3�rVlsn�de�a7d�Iei�rl�daX�l�or8�s�ioypZIs�'ps�eVzi�'�iaiortv�eds.�t�e	i-norsh'syaei5&o5�unw	insnv��ke�i7n7sdrI�m�sidwailo"c��l�Iegtl�h�'s�zta,ok�n?uV,xoruh'�eing�nse=ioZIsw	instX�en
Pn�si�otss�ta�eia�oZyZ>inVlsw�/yd%e��i7s�'�e	i�rsL�e?n"vaic�ounV(teouven�reuvr�e	�ig�(rs��c/�uaelor��uc�Ste	id�srform9(a�e	isacye'm��i�s?�uoduSpcaeiu�X��cg�mne	i�'d'<osk�*adggh�tnZnsacehikmoptiRmlpol�tslion<�e	i-no7tut
�iJsr�tdzeh'Trseh'7dssi��raVlr�rlurce��idHr�seor�eo�nkene�ZaarnDty��deiV(t�=pa4k
�oaeiord<l�ns��ai\�gtshs1�trekln�'e	isdkrdaeiou'x�lrti�y�a�e�e	inr�'��-�0bps�cwroo�f�'-abcdefghijklmnopqrst3uvwzabcdlmnprstbcnundan�c	�ttiv	�ei~�txie
�o}�ruriosuelica�cta	oE�ra8\u�nice�n�taro�tid��d
�e	ieinstitiveinessH'�eim^�em5�pahlkativ�;ee-cѼtoul�n	bcglmnrt"wundan
co�thtieve	idKm
hrs�eisnv�e�iP'egresS�sl�'o	+s�(cbir�ta��xlysNei�n7scmZhZ>e�i�seteR�naeilorula[bnar�isd�th'Zdso�wpalo�Hr?uY
dk�tei7d!�e��dirsyo�lde��naehlorl-mprsu�laic�*italOie��fth'o�i+stio7n�ureM:ba�erN�g2aocuk
�ei7sd�e	isamnort�'��iseimpH'�rsn�titmGsY�tel�nelnsat�e�pixoeit�xca+�tfsi�dcuie��nmS%pk<lre	ceiod3�uti&�cwd�eY5is(�ae�iorucptvo�rende�nermZ<ielop�e	i-n?saeA�i�f��wswnsbeh'1�bsadmnsxgte
Dre	isnr5iuD�coptGihlas�eia�sz"�e�io5ythusiarstimDmceptitNaOMe	irct��i�eWislooit	a>es�e	i>�uend	s�a�Weil�om/umJls��heio	ry�emgwh'�e	inserner�$a�oaeo"z�uw	ins��taei	uyn�sud�gh'Z>e	islh'�eC`isa
hdrtd-e	is=^t�.pncdfsredul��oul�pglvaur9(a�eoy�e�issV�eilS$laeio	ryk�di�n[�pLrydnh'Tue	isavfp�e7s7tera�ge�rs�;acnor!Pkkh'=�e	isd�'>e	i��saeiounsp�tn7s�e	iter�e	i0lsdincg�hd�ech
heiu)�cghth'e	Gi�s7d�rt��rptimis6lmtta=�lorcir�TsyZ�kdRknt�ei�c	i{mspwulRaBxoeK�raeioi�scsi-scЃsriRb�p"c	�n0cdmtuc�e	i
�t0oect�eisn�o-vuali̳faei$Eoun"ta�wfpc�hi9tres<�ed,pk�de	ih'rs"lnh'ZnsH'a#�cehiloptuimtw��lpls�e!iurateGdae��ln3xs	in�rssitivv<eao,�d�&r�el�otgmzht�'�ispl�e3uie�dee�pspf�lt�nei�rco�niali
�s �zHMlaeioruf(ty3fm�e�=pmulat�ein�ok�c��raei	uBDists�e�ich�we�i�cff�e	ibpssVtcri"bpl)%iy'	ipi��c
aehi<l�nouykxe	in�rs�we	i)diornk
i�sugd3heouwh'	insosg�m"rhtZ<e�n9�or�en�pailua�e	itio�new�'�e�isaehiorteZ�r
�ae�inine gelm�e1�isn>�dter�rr�u	�k�aiot<�e	ik�t-t?uealo��udۆfp9t�'??uaor�i�o�]s3�itveshtivipar�i{olma�er 
tae	ilnDsi�kr�adUns�'�eiss>h-e	isb��rdr�'-Q�soccupSMi�'abc�efiaNnopt�uyl�a!�ioa�cl,o�roodh'	�sa
r�aord�'�is0�hdB|sa�ei�n�sti�o�vsz	a	e��i�ae	id[vrss;�nr�Dd��eaiD�lacghmstcetyle�xnod�nonYeen�'a��steWi�'dsydroxi�dorsa�oulp
�hofc�oster�'c�e�isatYc:'aoyzr<�kne�'-frien�dman+�dW�i
:'.abcdefghijklmnoprstuvwcxyz�HYaSmo.'abcdeghijklmnoprstuvwxy�zs�r:'�ll$Wsutouk�m�pl_'ehik�tsy�'dm�rs�yaknettFe	i	eyds/eandc�r�efni	ryc*evis�'a
�l�tg}o�'aehis�wjbg�rv'e�id�r�to�Krng�'�h�sad8Dd�'adeg��ilmrstn<g�eil�o�yen�'sg�'�sM�te	i�'d/f�rsmre7�lLJer6e�o=b�ae�Ei�'sws�dkto�whax�w�adk��lonrioatric(ci	�sphil
�eisaakarV$i�`naei�l*�on�'is��n�s	�'a��bddYf�rsPby�nn �agail:Qja�Jta Ov�d�g�hlnrsu�'Dhfs	�'eV�f	iklst�'dil��le�ystak\�i�'be?iswao��rll
Tue�i7sEyxdr�'ls�Miy��o�'�e�is��wley
'sBtam�3aeiu�h�xnsta%kn��r
�'ae��filmopst�u�cjdent�u��vzo
abcegl{mnpznthropologi�y7�csotaniyA�c�sA�elimaǬtcolo��graph%eiy^�c�eithic
tologiy��c�e!�satLho��iO qa�eibl>Yi!glh'i�ls+�s �z�ana
hez�i02o
h'*ad}�f<lm�norst}y��bcglnz7\e?eraphS^eayithi.ct.@oo+�imti$rnte�Fikmnsi��rop-�nD�sd[vgro6�mahde	i�'d
os
�'-abei��osybeaxrdialo
Fu'nDiearsdt�'^�isa�d�nt�ein�o�Kv	�'��aeios!�tydr"�t�'sto�eny�sl�zi �rY'm��a�iai7s[u	8b7lt�ein�oeg�t)%i)'yϝr�'b>�e�eip�sC�u�y�aehr�e	i
oslet�'�es�'-acdeghijkmnopstzeurop/�ecmst7x�e�ha
�'��n�so�nel�6lahr?klrYaea�stic<5tae �o�'ns[umr
io/�nh'e	isd�7r�'dgls(y�'	�eils�}n�s<�einsz��g��a
�e	i�t��a
�e	i�'��aos��lan�,dce�s�'�-ks�e�9iy!�rand%�rhyuX�run@r�ja�e�(iwon��ipr^jla:�mi4pe�ip/�t�y�xe�r
E'aehiorsyglrW�uoon�'	+scdhnic��oe0�iG�o�r�He"Lhlnei�ds�Yngmsslura�pim8�eicn�s�iy�'3mu&ihlwA=oi��na.Iilae}�rl�a�i�o�'aei�fopr+suy�'�c?�k8lnm�snrst�w�ya�>nzz	+i�ooe�rti-er�'-bc	eghikhlmswybcgo�yJ�lir�lao�cw�racy��rhl��iirclan��gwhnnif�vFabe�0ol�slao�'e<r�t��miou0�yes
'iG	k��ala�eo7e7rs[u�qrh'abcdefiklmnoqrstv�'bcdefg�klmnpqstv�loul�a
�ioid�'�asr(�dehl0rlt�asamol�'ssiu^`ltCEe!PiKie�&eioo�r&�gnsa�e7�ii�lcaGlx�'�eicwaasthesia7e7s�fA_il�oruid2'e	iap�Ohayo']zaaeiloy'ng2jxa�Hln�,g`�aelh'eiosdpi�pns2,z�aNe�i�m��ggi{o7ylsmstzpi�ac
Ysei�d�rsn�sglF7yiF�c�eing.laeiogrnet'ic�rsiwmbcdtiauMmic�'asblerr�'i�lssz�Va�be�Va�bei3a�cszaC�e	Gi�;b��taC�e	Gi�;b��tli-#teuci�a-un�rt:'Yc	�s}aoir�a�d9ma�ehlorsrauV�meiryrna�llia�c7sasNa'�e	i�tlegi-a��cdlp-�i
�ait��hofessio��nych�iologi�y�c�e6\sua��taci
oyiliendTueit�eio$�cs2,z�aNe�im!�ilog75i	ympatheti8cahry�=c�x�iyrvooopFe	+spho�ia��n�Po'ehasl�'	�e	�ils<�eing�'e	i�mdBwes�7non�oh'a	e	isbK(i�l
dglT�mn?�og�rst�)oslcthyma7l*�t�'aeh�Uistg�ldA�reos9�t�eis�Ez�'D�e�e�iJald�e-aemns�tmutueHl7�tutu̖eg�g�'h]xi�'�eio�'�aeilms#w�ydr�s�'Js�en�g�sand's:'V ia�-eion�yament�'asriyan�'�is�rurs�'Am�seinC�sidMUegias�naess�Cul��lcdl�oxhiali<ls)t-mi)'y�e�se	i�'d�esys5	mue�t:'a�eio�yke!�e\!c�en{st�'�(b�e/f	iA�lsei_�l&�no�cdrs0TfmCbno�nnn�'�a
os�'-aehi<lno�orsuu�w)'ys��tke	in�rsdr�r�seinogtnen��eacfe?nstzx�liloupai�lUdb�nt�e
.iorh'syalh'�le�'bsoa�r�yllar
fth'i<lss�tz
�e	im!�t �a�e	ia�n7eio
fv�OnO4aer�'�e	i&�sidge�'�{bs)
re\ao�	nac�hqstdeRnat�hl'lbOss��lu
h'ab�cei�ckmopw��bge	i�'ds#wgaa�od�lnrsger�'-sЇm�'��--�bBis��-YbyLbm�novn�'a�bfhl�s�aeih'<l�nsy�trz�ave_rrh�or�ao�	r��'�e
�'�aeiorsu	+y
�'�-bd��g�lrsuoard�'M�-sn�'$(asr:'*ice8Dl�ml�n�s`&hrA|sr�'a)e	Gisl�th'�pi�ls��a�i�yr)�ae	i�'dl�rsand
h'7s�'-a��bcehiUtnorstdA7ogonia
:'�nh�'�aeiowydrswoll�&o�e<lDžnu�{lork�'#Ses�'�alnrs:'la�'ersst'�ct�'�ae	i<l%osd�e�'fnsamili�aa�i�oli<ls-mt
�isso��n�'-�a6Aeflnos#wl�o��ir5e~ag3�lp}senn�'�ee
�isomhysiologi7y�c5se��n�osn�ct�'�e<lsser�i28i�neio�sfamilihaacmR�osrch�'7�ais�ySZc�e}a�eitka�do'�nond�i�yti0�cln(io�'1�l��m�os>�w�'ap�ei)lsy�g7lsz
�a	eing�lUs
�a
e�imich'"�as��ZcArik�y�aei�o�ydInrE'�e	ins�'�e	i�ls�o:'�ena�clnpN�s�'�sntah�qa�'laD�ei�o:'n}e}gch�'[Veiy�ene�ger�')eis	Ins�z
�e	i-ma��eilro�tlnJ�i'�gov:'ai=)') s�'�e	i�lnps�'be	ib�sr��od�erag�we�ih'-@�a��bcde	i�Plmnoprswa<bcuops-you-e��ala�riack�e�nha]~ysd�e�r�a�ee
W'<s��f&�l6\uahl�ԓ'or�nf�ol�ial)�r"�l:'�s�x
M�'�bim�p��rM�sst�ec6�i:'G�a�efM-pcqԁs; t�sabcdegijklmnopqrstuwy
�'-bcf��hkl?nrst��g�}e�oehXo	�'�-az�fkmssteepe�ir
h'saokFe�-in��gi�'^oe��iyo
w�'v�eisy��n�'e	is:'d�'�clҚst}y�'�eisyent:'r��s�wegr�eahnt�'h�rso)oo(�o�'l�i��l�sybj)il8�eiy�eA�n�achkosstuad�ril�6l�o�'��eisn��sgypnifAfr}siX9ni`_ocn�'He�slnait�e i@Poar�i<ls��i
adei8blor��u�yglnogi�u�yce�a	s�'	�e	�i�lHost�'%�i�rsle	id �rsrsasQ�ttar��lian�'issz��aC�e	GiJmaSse!itiom�nacgmtricHe0�iasaelubl
.lGseȗs
�lr�Jei!n�sreC+eent�'3a)es4�l	�mphilHei�a"ti�oh'sd	ikl�nprsvwh'a�e	isb�o�'e?isdLr	h'-�bc�eɆh	is�y�Ihsh��o�;h�'�a�1e	ils@eei�'d�rsn�s
fe?6i�'a�bgmsns�ous:':e�e�^iy
W'at:'gn;p�aBnorati��oveh'<lss,�a�eitonegArs
W'e<sse�'�s	ae�filmo�tvgriDyac
ugo	�n:'c}ey)�pC�c-a�eiu�mgG	r�c7c��elp1�to�go�snnjei�c�sbmer.{roke
W'sic~�a�'-abcdefO g�hikbl��mnorstuwzannd<�-a{�m:'ln�ti)l�ts1za
�e	itionJs	?cg
�nert�_h�e~h�i�ae	ilssusdP%nre�HceU)bl�o�uclt@�to�Epra�7b
�nt�ei#So�n�o
Bvri��ec-lnstil�lsula�'rs�'�eYten�cth'i<lsa�lAor6n	:'aei�osyz�nds}y�h�ehln�leg
.tylvania:'-in�'-rwfparp�tip�noA�ybeort�h��olCn�a��oT�i\uoahic�oguuovn�'Ta	e	isE�e�-ae�hiUscgmstTxh�lA,ooH�rn�'aslAle*�rt~Kyeh0�oe�ule�o�1tcost
:'a<sl:'iYssYmumtp'<sclmr=xhtima��tbr)Hai�yeous"�lGnor�xtan.cn��p�r�')�a�is�y	'e=ipst�y�sronnel�iydr
�'�3cK	eM�gimosyn^�egi}�n�mn�i
:'-n�si
hcOtd�uacdefghijklmnopqrstuvdmven
�tbu��l8Daehi41ou7�yinpvpa	.e	it�'�a8Disst�'i�s�u��bU�o
Nv�'ae	il;�nd
.rsor�ainat}e	ip]�vie��nsts<�ei	nFBo
Bvan�e�i�;uglmns}zrin�a
heptoriy<l�njn��o�yitroi?keioucth'�a�.ei<lGns�7bn��o�vtMdr�a-cma	e	is�b��ntiv�e�imnse	i�'dx�rsctoriy<ln>ei�o��oa�pacdghlmnopst�uvwnsaUlt8�ralrdia�t
Fu�le=aUsLe
�i
�oa�elstL�ra~ce��l�'	�e	�i<�lKos2ue��nto�ae�usa
Fud�p�'iosc�a�ig�lnra7mTpt@jaic6\sH'?�sahtF�eerr8oa�i�yas�e�itt3<cht�ja��e*ia8Dyl&_stton�qe=*ii�gn8Dkur
eJ%i�yh'�eisy�e<ln�eg}s
:'0i<s�'aeisu��cd��flneRayRilo�yegncte�i�yh'<l�n+sa�Lnadb�n �tpi��l�anstsib�o
Nv>Yi�l�'st�einvt�]a�e	ia�-iaon��c}n*
r}txid�Ka8�e	ielntdiJscularh'i<lsJs�rt��rua�i8qlTtex6e8�iui��sIkiyW'٫ven;hinopucaipUOuvut�e�iN�ohoF$o:Glera�e*i�nXStafms
W'�nl�a	mte	isd�n�rick8�en�'-al�hinsto-?�p�'�be�gl�sh'i<l+s�t�4s�tzN	a�e	ifi	ry*
c	neaLeeic/�xtiv�ec1rauci�Hoy�tti�oa!drs	=0a�ehi<l�nUsutp'(snaeciKo�tn
�c�trsU�b6so'�ksv
a	.e	i]xiaess"dsi�o�vrstei�o�tvh'e	is�drc}sehk�ostetCtaiy�e"�lfnai�-rmU�a%�i�'�ei?l�os�c��flen�cto�i�l
'acehi�Porstui�bf=ilsr{s#l�'	�els<�eoc]~k:'crh*i	}A'b�eh	i3msoroug�Wheo��au�s:'�Ub=e$�h�oidi]�n8Dot�e�i	�sa
eiotp'e�rf3�ai	ryDc�ecdgln�svhemY
io��lelrn�e7yyp�haph��i�'a2eo�s��tgi�yA�ce�s�a1&ei
oy��c��ef<lnsoggse	idr�'s0�y�qe	+g�h�l�ng�e�'�e�ister�'�es60oceJXinnigd�'s; p�2�'.adeilnopr�syd�.eglnrs�t�dt
.h�o˟eocyt�eio7cRsRzs1�e[ialng�x�ei{ucetrozJoa�osm!�y�'asglori�ab�caimyoh
�'s
saeic�*saql��eac7se;�io�yutich']a	+sdlpP�ty�yogi�y�"c�e�so�eng�xei��asti�d?�sceS
iMoogUda�'t�-do�rseKu�_'�s6�an�klnr�wl�p|�oaoyce*|tbclmtarbi�[t�Lr�'!�iopsgi7ycalE�lhthal��eh'essnao'li<l��sl�nog��i�yype�il'amlb;aetVho�m�'a+�dlpsJz"�l
:'a�b��ehilo)�tdntelp,mh=dthropi�y
�c�e�seli�yc�e�sarmo9`nps�'p�s
'}ei�a�cne
:'�stin^�e�ii}yptp'}aTsd�lsen�^dophFei�y$rc�e�sU3z:Ipheisd�reobgioti�d�sto�mm�'6Aa�sFeg�xis	t�JobenostiUOo�abc,�bnicl�xia
:'-ineioy	�'-?dcdmsty
�ia�eic
�a��i	�sic
�ai*s�asZ>e�i�ce�nsdrstg3�lntra�mp"�ha+�ch'�iepha��eiot�Ka�e�d]�ndlriester:�aipa!�i�'e
�i�os�usce�no�'-bcdefg�ijlmnprstvoxi7Zdom�baf�ehou�yLl�rermiW,c
gso-�mmppo��s��i)'yr�reiygtrad�a7eez�c �osso{�cn�Jasdlmny>sectrioc"�a�i5DmnisJ�cis
�t��sgrave?id�rssin�tisha�i�era�m9�p[�vournal�iiythograp��h,Js!�taeioug�snetoele
�ctFer
�iycrograph'yns��t�altiplTLi�'e!5is�ghor�
oly]�mod$�teac��slism{rtept�Toehptynsiti��vopp�svxelio�hait�'_Qi�stei�dn�g֮mnhsthes]�tea�iaP�horychxxi!Jcaonsis3�tp{rhi�c��spesetteu�ioltag!�i�'aeys�ae?i�'bd�mosoo:�k�vl�han�iologi�yW,c�e�s�glstalo
Fu'c��ti��sgen!�e�i�yico?�q�'ai1�ko	+slh'i<l�ns��st�y�a�s-ch�uecglssthe��m=nrapvhogi�y$rce�shera��pocg�lpsh�ej�renograD�plank�to�Cch'abcdefgph�iklmnopqrst:Iuvxz�}fg�kn)�s�oz weiosms��ti#m�'flsor�a�r+�o	
h'ackno�st�'#,d�?nrsye�osqu'4eso
W'��e��uaD7odlil�wli�Hlh'-aepffi?l��ops]�u��wymJ�ue�A-xh'e�i'sdsdlrthaub�'eisl�'s��wng
$�'�'e	is}tdr�'s�engH'	+sock8�eic�'ks	e	i7yfe;jrs�ta�rn\aaecond:'ougnrramph�'!�is7yia�lrNae	i�'-dswi�rq�udjgle	i�y�'bcd�g	irstza3�le	ir�'dR#mrsw"Niork�'Fe�su"0smon+�t�'crsei:'d�rsngh'<l�ste�o�i r�yoelectric�ifl}6e	i
�'-efgh*?lm��n$�pst��hstiڜcon�'-hJ�rsbfhtreacfsan&co�l<oo�li��sei� lyd��ren�Gs�r�s�'ba��ceade�d�ae(ynt�'�a�e	isjk�tw��iaig	le	i�'dlm�rse�ct	a	et�-aacefg?ilofst!�u�'Hf�steúre
:'�s\homay�'d�rsuer)�a	e	isrim�'a�ei�s	?g�nsz�'a`�bZ>e��iosgre	iE'dc�rs�'�-�es4c)"rw�'��c�e	i�s:�bt�'�e�hu�isei�mp"�n�e�'e	ilsdrI|n8�ei
qy�elk�'-abc4defghi�/jknopst]�uwyJ�uwhe�e�ft�ac�u��az�oe�vhu-rnezh')e�giss:'Dh�'adhswsylp8DpiQaok�oeova�'-e	isspd�^lre8Doad�'es�dd�en�o	�'ei�l�n�os�yd�br�s�y
hensi�ha�eisyce(�r-t�e��lheCbnc�nch��h we=xlor2;i�siet�utridIp�'�a6eosu��'ssq�b�chee�liHxonh'�'n�;u�'��e7s�'eips
�'cd/fl�rstwlȚaa�i	?tor�kn�tg�')l�ein�'gsql�uuae	invc>t�'ds7tai�ko�c2�egnt\Cud�h�pe8�ei�cn-�epĥigpsuaifLulas�mhkaie�Gttacixmst��aei�a�sculturLa7e3istr�ah')�ae	io7yd:�rs�9ia8eiocEThl�'��lsl�n�'eY�ls�'Jd�e�'-ac�ef�fhij(m�o:Sprstu]�ya-Y�p��'[5pssah��i	h'-b*efo�i��msadnd-ѳtQale�nord�k�t�'e�isyad��d�-a~efG[lul^�lnantjatj\�aes��sW'a�e	ims#�n�s:'bwur�$golxri1ftot�'
�a�eu�ish'
eimJy�el3�aA�l�(aaz)�rz�za��ei�'szNzcat�i	+o�a��ot
�af0'sgstw�y
.aceiouy
cgin?�qstuy�zaei*?koUdbrtd�'e	is�dJrm�eion
�olv�'ha�bdhk��lmn�rsol�Rdickh'}�e	is�aen�tta�'e8lsd�nti<l�nz/�o�ei'�uaoriaysU3z	e	i�mAtcl7�cg	dnt
h'-c�e	Gi<l�nstcslot�hp�ohlI(aothes��m�m�opoZk�'is�Pf�v�'�eu�is
�'a$(cegiknost�Vuri�'dl�rsto�#a�'ae�qosr9Jiysim��aenS8ct�.gn�'�e��ist�ion�'�is	e��icon��c�v�'a	e�wilsyLbg�irDte�nXBe
�ejihmt�'�eiy��en�'-a�oiode-�isma�teifCir�'�b	eu�isCwc��q�'�ais�Qun�svt<z+�eh'��aef}hiossty	�'adfnf*?l�n�rsu�'�e!isxor~dmnt6lgi
Fu+�sud�e��i�'n�ioi�cs�m�te�i:'sd�rh'hpsselminth�e�sJds2�tiby�i�l'-ab	efg�hC`ilm��o��p_�rstwa��oct>e��isbctZ>e[1issXaf�io�
o)�yefull�Uo��iorousn<�pist
h'�i�saf�k�tct�uhLeo_coatio�n
e�hirimg�tabcdinostux�'dst	eNisaLeiunt�e<l_�n�rng<ln�sftr�-ae	i�'d�yfs�'K	e	is"�beish',)issscitg�a�etra�uge	i�'d7ersaos��dtZ]rtocF$eaiturB�i	+yp�s%�totenT�t�ei�y��fZ0mmnorp-�has�mR�t�ii3�sh�Rorqai�si
�o�ugml�Caet
�e\ra�cegmno��bnvc�td6rshJ1tmsщeol[�lt}ycen�e_'dhn[�pstuvw�yds	eing�l�sCmgke]�ue��i) s) d�'rȥi�'st	eC`igh'�yei��lmsnҁgaeD�nsnha)�rh'Z>e�ims.[ae�nha�'r	cgmnprstvkh'�e~misy�'-bghHxis[�c	iz�o�a=�e	io�l�'abe��imopssy�pg�'ae;�i{os6gdr�'sJy�'M�-�dlrs�ei*Sk"pi�ye��iysr�s	�th'ei<l�nss�ysd�r�s�n��sd']gAkerE'5se	iserfe6\cailh'i�lss�tz0�a+;e	i-m0�t�a2�e	ip�Zoh'�eh�'��ei"�lGn�y�e�naoe�r
W'cnra�ct�';�isi7sa�c
Funt�ih'	imwou	t	�t'
�ceis��tadnag�_'e
�pumaotic
�a	�s]�ce�gn�tncephal�>o�eio-ac�tultramicroscopicsilicovolcanocon�i:'�,-acdeghiklmnoprstuvw�x]�zc�Xth*eY5iaz�hko�uhont:Ia�'e�imsdt	�'-a�b%_eDhfu�ikskni
�f �vnifB�vB�ear�]kno:'}s	�'c1�dghis��uast
h'yJaTue�i�s��ioyr$�ior$�ea�ut�{r:'�m�st�'�a
mei�rsc"�a�Xs+�o_�raung@ituka�wh'gknrs]t�3nilotheY�rcst�aian�~aet�t	�'-beiG[lsyb��dotl<�af-s�so�S-laƧn�d�r�e��lA�n�e�o8�e	io
.sn�'	e?i,wosl�weioyh'd
.mrsy�'-syfaD�cS�'ss��enpBl�'aeiklosstynrtd�Hsio�sms�t
�zet%e�r:'
�ac	e	io�pgiraphH'�i	y-id�'-a��cdmy�n��rswav�xaulrt�xicE'�a��i?�stS^a[�ac�nosteiy�'d�ms�wen7rs�'-��hmmakQe�piak`�e�i�'ms@�vyel��ih�'*eC`ibei�yur^�o<l_�nrs��stc�e�aik�l�o*s�a
�s
�z>ea�i:'�a	�'aei��o҅suycr��k�dd-n�rn��w
Ua	+gt}x�a
eWi:'anna
:'i�ss�h�m�'��-kn�swgaa2in�iaru/�w�aerrg6�eoon�'xesabceghimnopstuvcmn�Atryla
miodn�a�eri{o�yhe5sdr�i�o�yut�eahlryrbڠoaeremica�lom!�aei4�o
n�Zy�zcsl(�stectroly�they0�r�lal��orvymv�i
o�yoth'stLa-�iaph�'�eisJc!neyd	�mra�oljgmsobcputyl�eyana�t\r�aeoyr�'��aisc
�s
�zrphioc�6sn�u�uF�a koeousuiao'ntp'trsD�rmia�$lcle
�a�ole!�f�'ehlorspti{�da��eo�yP�snsi{o�ycesphG�aoiZd�d�iopyleaeitu�yccharidS`em�io7yulo&�xy�rehoc�}he�Ji7�nuHn�pnrsaturated�set|�hiny
ql�'aemop) s?d��ngrru�aania:'�nei��y<�le�') sdnozra:'�l�'aeosd�nour�'�esi}y7�a}i�m=cn�s�yucd�egistye�h�isya�'sdss�'e	Gis"w�dr�
e	i�os:�ae�issd-eZa�e'on=hb�tacei2Po%vhart�rfra��caf�En}c$&n�fica�lte�i�'�i�-t�'c8Dd�,efh��iln�pr) stxwh�'e�isdrs�'�s�7t�'-�e	ispo��o�'�e	i�Nrsi�d}ac�aU
e-b�e�h<l�nAs-�ol�e�i�'�-�3ce��gilopsuOxo�'m\rs^yob(�ins#j�hFa�icS\vatep%�eaeiyh'[	dssd)�rD�t�eng}s�'cs��wzEoeeJ�dk�i�ohtlai:o�cr�ti<lUss�tz
�a	e	i�mtscefAogiknoprst��e�h�iu)�pi��rfn�Jrer��a�'Fei"*l�p�s	+yer��sE'io�sfSCi7yh'5YcgsraphFe2�i�y�su'
Tshoyri�y7aettiڝsi)�dml�ncheo'�s�'-acefDjhilmorsuaou-pr�if-spa��ib(e?g�l6mry�il
hey��lullis�'�^e�idnrdt�'osus<lners�'<�a)eh	Giso��u��o}a�c��en�o�V�aj,iy�noig�shܗian
'te��a
:'bel�laiyt�'�is>�ua�e	isyLb�le�^mgl�aueH�sa&�cehist�yh'di�rsFu7y
.d�eent7rs7t�ei	rsnovn�'a=�e	isjb8leih'<lfn�r��ss)t�m<�tei�u�'sseiS�o@�dsn�o��vb�Jilbey�'-abcdefghilmnoprstuvwbcdefhimnopst�woxH'Heloas��sailst��aW,tonia	�laoT�tcto�Xrn��te&rminismt�adomnpressionism,�td��uiollennialism�tdrernis	�m	�ttc�e��au��pfprfi�cer��a��bar}ir��tod��utructural�xie�5ory�na,qutg>�l�~aox�'�eZaodlne'7dsonial
fids��ion��aaote��i) d+sc
h'�st�odr�'iso�trh'Ja�i�lsi��x�9lradYVuaouy�?ss�p�Fmpמn��c�'elnil>&o�a8�idf�g�Wue5(lctio7n[ua%�uOxnae�Pio�nr(�si�k7�tnr'opaub�si��ddreirn
is\t0�m]~tfi>�y7Zc�^ete�eaucs3Et�1pprer	�abi�taor�irt�uuns�a.�e	iiti@�o3pvan|�d�Eeceript��'sa�usraensfy�ua5tlrate�ixo�aeA�i�'d�rsocC+a��ao(m�'-abeDhfh	ilopstb�Vhpseoll�iyi�lous�rurrCirHi(r!�hb�gs�6t�il�e}hr�seoll�iay9imn�k�ctai<l�sao	Jlty�e	imet%e�reosar�'�b�e!i�sl�oS\deu�i�'dHrsau�tckh'ss�mro`�o4iour��r$$dhZe&o
'aei�0l}s	+ytgwato1nmdr�'eJ%is�yd��renr�s+�eg�cflnrapsehtH'fGs�
eetnc��e��i�racd#�me	ih'dsy�')�a�eisngE'ssha��ei��rsngE�lssert�iy�'�-	_'deh�swYyer�'-J7e	ipsypufJfu��flr��l�'-@b�e�Yf�h	ilp
oshsunxg��h�eif*t~�co~�i@�a�uo�mp�r�s�rt:'aViceiouy�c degik)�l�mnstn�vwxyticstaei<xubli�ly�lh'�i<lns�'�ds	a	�ne	�i�dr�s�iistidiuW
mor�'isa��nmuatic�sh'��a�Xse��'Tarse>Bi�'d
�rs��wT	rabcgkyd�a�'�,e��i) s�'҅seo��dce��f*issth�>eh'drs�'s:'��ln�'�e	iseist�Mee	isdr�'b�fso��o-abcdefghijklmnopqrstv8w�yz
acdefi�|oprstvwdmole�<splifie=crh7	uris/�t��aeicJfiA�mge*sclmxhl�oam��pect	ibioprynen
Dc%ttioHnhlt��aoy{m>ei-os	n�o#vist7ae	isdn
DcJtlig7	hgm��nn	iplemenDtalruc>ikn<aan�neio��fpa�.rnvt}e�iatiDscgess}e	io��rra�m�be(�oclo��recehohioo�len)tLlr
�tv�ir5�i5�ur�MtAaer
�eny�sea�iat}e7miosualizc4�aarTs	cdg�Lklmrsuh*ei'my�en2e�gaoptִa�e5&ilescen
fc7tricullocatC�egiweobp,l
�uli�Yfra�nsign�e	Gi�sthoriszbele'�tnd��aaeilouymn�	rsubr�ice�-l�rt
�i7stion�'a)e	Gisdpse	idns�c>�tt�'��iFossCe��i??nops�sus�e<lfni�ctaKojb6\nte�ih'd<lnsh'eisd<l�n�rs�t�n�o�uiu"d
�sO�cs�dg�ilmnk�oniܘtlo��e�5np�ucdfsemFiBp1�rit�7iigurhae	GidciousYnr�tes7caeiot-weiOo�d) s��n{ocfst6�vel��asso�-ra�ivrin1�ei	nwti1t�germin�af�e	icglsatb�mt!Hi�lei�on�ovVFe'�a�eciFosest�e�is�e#cmina�nt>�e8�im>$nxip�e��ntZ>eiss�n��ov��eiste�isssd=vnaeilob'�c�t�'c�brsiPccr��tt�'su�-ae
m1�rsn�c9Ttg�xuraOMe	itiov߷night�'�ij�r��a�9lnr
�uayLb/"nPoeiuVlansi-l�ostori�yuac�es�am00ansittialiC�servie�w�oudn�gic8�eian�lindergar$�tH�aioumth'issnari	+y�e�lera?�tad>e�i�d5$saeio7syrm�stxi��ko�tTcur�?eE8iil�ldnh'isctal�tat�eWistr&�ueɎns�uV,x�r�'e	i&�s��'ds8�e	i�s��rdiln��iiH�sts$l��aosqftumّiph'ss|�tcprcupBa)%i	ryerativUiedain�e	i4�ms
�'aeloprsuc�irykaZ>e�gae	itio�ove')ls�d�rsyJa	i�msnde�i�s7d�rann7s)e�i{wlnsderaantv�ein	oNeist�ntion�'�a)e	Gisess�e�ieUrZ>eiay�e�neiop��ant')e	Gisc��dgess)e	Giweoramvmb�celscencbt��ei�cu3�eaeod�(ic!Sfg�qorZ9dist��eratio��ngm�aabcehiOvlostuy'�gyotGper�'�Sai�s�ya�eln�'i<ssmtp'<sh(�iX�oroolh'@PesibpNa�e	it�'is�ov9e��ialnrt�sect>ei
�os	nov�cth'�-a	ei<l�m0n
�os�b�tmnhsen.itvane	iVbtio�vn�'��is
�sZtras�iu�n�ndeidnrs�ct��'i��sal)lnumJ'��rh'-*ei�mrugsY�uanchgt�ouHen8qg8�orei�'-dscoo��kn��sz
�af�e	iiorwdgigitate�ior'7�iei'oh'tnsesR�sie�cmprB�aLe>Bipt�iBUupos�ein$tm#impty�oaeortI|zsxHxenr��sx
Dcd#Lsti�woi�mnt�'e�s��'psatu�rt�'��e�i0ls2�reiat)e2�ma*li�y`�e
�f<l�naeiilrl�e*isen�c1�ticat�el�iFolnly pa��rta�eisj=btVin�oQove'%osw�'C�e	is2Piua
klzFiabcdegmnost�uv[xzTmpi�c�?sil
�oe��ik�'dhlCrsyh'�
eu�ils8�e�iye	i�'d3�fsd�rst�'�ef�h	Gils:e�xiy�'gsish�'�lfnaei<ll�m=�nop�fr�|u�celrt7�v�i�y�eJi h'dn�rs�"vministeE�rrsh�iY7ntiv��eh�igrenit�Za5&iFo>�udia�ur�lcH�gtei�'_�d�ulst�s�op�EaTedIl	E'a	e?im��oswb!Hij?lak%eo�ior[k[�nrh'
mei)l+s�y�eti�y�e��szce	imostb�iCo�'dCrs�'_	asn�'�ze	Gisiyh�e<l�nignh?�ea�ei�y�cteih'e<ln�r�s�Wr�o
�s#vf�zelsrsst�eye	i�'-dfswfwightH'#UeJsinne�iX�right�'Re��i�sinn�6e!i�'-abcdfghjklmnoprstuvwxza~�cdhlrmeri/�cemocrG�a5usRiepub�lcti�ove e�iaO0eilobti�
llis�tt�iC+ei�novn�'aFes8l_�rg�nvtem�'asuWtsche�iaelortu
.yqir�ydesur�a�edK	e?i	+ss�'ha�eiFonon�'�aZ>e�isaii*
mmha�e	is	3vangu�lsul�'asaeusti��nat�ei�on�`oveiste=a}s6eor�'�eisHanrae	iVb�c#,td'mLrsh'1�disugai�ylh'y�i<ls�eKocne�cit�'is�o�sv�e�i�'[.ae�!filosun$}ae8�id<l�nrsss6eionon�'aslh'i<ls��sz8�a�e	ir�'�i&�sc.�ltien�cit�'.�-ae	ihlsb�Ai?ldeDjrr�'�eY5isigay�c�,trumm�and�e<l�n	�sns	3d�e	ienrnsi�ye#,tteui7-raot�hs�e�itich'ast�eMi@Poaem�'msaeA�ib;�ti��l'd�rsss�'�ein�ov�e!2iibitK	eiosno>vn�'�is"�rect�'�eiFos�ln�o�vaoryP�of�(iaei\loy�u*�cpt@sg(psstome;�narian-th'��isfn�Rxeir
)a{oca�n\c
�lgniulslz%ei	nszgBae	is�dr�'eiopsunta.�dh˖ae2i�aUOu'Vnsc�xe�i�su�i'<oh'�<nst��a
ein��o�bvth'�3ei<l�nsV|n"�tl��gأa�ego�tu�'�e�3h	ismuina	+ln�'cse	iTa�d�mrs8conf�'-�eo�irsreade	is(�readkXe	is�'aehio1�prsuyg�nan@Xtd-ai�~s�zl0�nrls�ae	id�n�rh'�e<l�nt)%i4=yaey�cst��i�y�'p�e9�i�slaF�cx�eM�inotq�u��niaKot�e io�nrsmPution�'a�e	imslN%ti<l�s�ptez[n
a
eintion�'
�a�e	isieot'�a4ior�yr�'iQ�saVFless�'�eceptiMo	ov
|e}Zhlܘsl�eaot�e�Lig�a"u	*�acel�iopty�Feirutt�oiIb�2p�'cdlrsut�a�e�iFoyt8�einsU3z	e	i��m�'pin}a�!edmi�y0�c�e7a7eecrt�'�eiFos�unve<l�n�s�ei'<osn�t�egahi�o�rgtlande^Fi�'�cse&_sticH'Pa	st~�uaehioru�cg��to6�n,racgiorsUOu�'�n6Yst�eiosn��o�rvr�'asJl�teh'Hessn�'��asglmly:Scy�gs!�t�e!5io��zt�'a	e*iMosnDtt:'i�ss_rmon`0rotar�iy�sst3�a�o7s	-cglnpstzindo�-
otist�a7sy�nGZa�'os�&sxOtlak�ns
�m�tt�typ%eicn
�aoa
�i�o7l�nauct�eWiFos"dsi-l�o�/vberan
fct�g��'
�esd�s�e
.h<l�aeiodnrs1�ac��d7e�Gi�ale�_l��Gab�'�i�sdnshae	idn�rscte�'�s�i<lcg�ew�ii�oon�'�a�e	is:'cHkl�satei�9u�o��v��o�'�eehlsi��y�^ema�i�l�ptac
W'<sd�>i��nrs}te�Ii�'nrsct��ei<lal:'<l�sAzi�yi�e�tsiߛach'*i�n6o��cis'�e	inci@p_'aehiopsVity�'lmt�'�i
oser:'�i<s�ypuhologiyuHcmsdosssy	-cmnprs�wisntelle��ccien{�cti!�foc5dG&porph-�i{o7sym�'�i-�osodi7sa�uando�mcien��cti�f
�sabwh'lFo) stocmpty!�be&�lGThh�rtaF�cria�s�te�lm�tclhh'eioc�rs�'dseli�a9Ecacn5st�r�'�afis�'-abcdgklmnpstaeest4�hd�GucnoS�tustic	salyst�z&5e+�i
hticeaaibb��l]�oultM:ur�sy)�ae�ninestti(a
qsi�onguistx�ise��otc�eri	ycs#�i	�seua�rahth�'ios?�y(a�c�elo�pgayrmaLcsico�ai	sU�slog�iye�ioS.us'ExuFcmaticPa	sh9Ciorerape;�i�y��umimo?*n̓p�vl:'aeoy_'}hrmiC�griod��idsyact
yaZ/ulglu�tlmemJa�i}yai��n)�a:'bcdefgiklmnprstz�':^beilsrst�a�i�yh'cen
�ctc�sics�'��-ai<l	�s�nDt,�s�t"zhTa*e��icek��i�'aeispunVeyr wth'�e	is7ys\`hdegs?il'�ea�iynNpdj,i�yKWebrl}a)�oipt�slz4eqof�'f�b�eisy�en�'�egs�' weg}hins>ei_le	nl0�iaO�css�aV$ae	i?�k'dk�Jrstso�'@hiq1r	�[ac�eil��mpsvhritudeinomu�)nts#z	E'-beryiC�mosbs<d�i�oAAaackh'Gsd�r�t�y&uv�'�a�eiswy�e�n�tab�e	i�rP�teri	
sz�a8�e	i�ainWmp"c�'eu�iksdrh'nssic8�kin�'s�4e�'cdgijkn҅sl�tyht	�'habeilyaokgLlb�wd�o�rs�eCbni�Vn7aiulio�'s�ua7m?rG2lt�ein�`oit�'y�rs}c�e�nsthTa	nei�m��ni>vab:'�i�'�eis�ye�n�rUse	id:�t�'aipsu�'el�tl�'lsa(e]�geJ%iydt�'e�rs�'��iabcdegilprsuv�el�c�ieh]�lasTane	ia^u6lh-b=�e<l�nr�sbr�oea�+r�-sane	itio�o�v�;rf�mnsti	ryc*eat
�ixo}a�e-m"�ta�i�yn�'is�csm'a�ss�'�eios�	en1Riloei�'d�r�s	n	srsth'e	is9dCrei�'-dfls�bu�ley�9sn�vE'�e>Bisv'e	i&�lu�a
ein�t�l}seiya�e	iFoswe�=�e�'�a�ehisth'-habc*efi�k�iop)�r&�tyb��pY�uiu�kt
�taik��e�aha�(iu��l�e<l�niHn7tllanimti'%oh'�eiy�&e�'-��cf]7cwhip�poot=�e	isula�er��th'-a�in�orst��zs<d=uyou�-mfrٲte&�i�aW�eeif�sa)%i	ry�qcd�i�ln��c�'e;�isyd�er�'g�e	is�'u�i}ozl]e�}i�c^StZ9n
aegj0�kl}mnort%"uxemia�clL�monephriti7c7sm��ajci�yama'�e�
s}eo�nrݛi�u"cnr6tgyanlgrh&�eoApeaeiorumrid�'
�aZ>e�isF3g�'nstxeEaUOeh!�r
:':e�i�vdmti)�d	elmp�stxys!�tei7ds �aet%erL�i�yechni�ycs�a?�sҁt�ehi�Lo+�c!�vha,iogor�a�en
�F'!�is�'�eidseia�ruazsz��t���'7s�r
-.abceimoprtuwtipc|sH_t
'bdent�ia�lda Of�dt�IaarW'-ii
�ddnqgda��i}m�sM-rsya`fbeimoracdfg��hikln4orstvyl��ukh'e��isd�r�'prs�laeiougnptenag�rg�t�lular�'Hiho��n`�eiuc�'
�asr7srenni�a�uclpve7s�p`[al�eion�'xfsO�talrti�tegi-a�ciauJl?�mpwhpTneljoei�yh'ds�tcnatein�)o�fxm�lnr�taPdexiyh'drstp'iYss�h�mcimo:5mfti	ry*
ce�d�rsa�i�yt�i�'Iis1fdgt<�o�ai
FuHcf{#lstzi	ryTa�c*e0�a+;e	ia�i�yt1�eio�v0�a+;e	ia�krt�Nneiyl�'D�e	�ilsD�e.#ioޒmed	rs�'	i$m�'ei�oszr�t�'-bdK	e��fo�i'�l�msfm�h",lCpiuLn9aXeta
�fArv�c
Dl�'e�iFaV,hi-lmsynch�]rinIeoe�Jrrnayir�i+�yerh'�e>Bisy�'F&lsi�dabcelnrstu
.zlnslb
eiy�e<l_�nerc�'�(ekj�oe$�racX9hhua
:'�n�snr�'8�d�e	ils2eiy�ek:'c�hlt�landI�'oHswh'�^e	i<l_Hns>$lc��d�thTa*e	ihlinu)'y��eloy�uatdilc�l�'�eisnon�'�Va	ei0cns�nzalco%�ae	i�'-d	Gi�rsjum5p-bc�deflnprst�vxz�gble	iE'd�rs�hk
h'-ef�il�nst�ufwi�tnr�s�e	is:zi�iiy)�a5eitlve��rep�'R�psi6�mstce�d��nh'ei<l�nsudn�r�sns�m�t�d�s:�f�lk�pt�'	e�-is
xacein�oqste}y�'nste��nC�lss:'�euae`gnnial)lJs�i�y�'ei�osuH's�ts��ecl#WeilionxfsO�tpl�e	i�'p҅s�e	i�eik�tn*�aq�d�'Z>eisy�en�esglin)�gcetostla<xiaZ�e	iot}ei
�c�s�'z*e�i�yriklnr�st�nt�'�e	i9�s��k`�ld�s�_a�n�uaO0ehi�'bsDti-llit�i��y36d�en'aDanW�ierty
H'Us
:'.abcdefghijmnoprstuHvw<xy�ps.X}m.�av.�p:'abcdefgshijklmn��op�?qrstuvwyz
�f wabeiy��eil�'ns�t0�ai�<ce�'-srourslai�=sd6e}n<l�Zn	cehikoqy�o�'cdg�Eh�m�rst#w2�ao�Cu� o�|raem]�eltp'^lanino
�fva�e<lntsli<ls?�m�te
�g:'�s�'-e�(h	isand-pi�ndt�'e	isyder�'Z>e�Uisn��ot+	euet�'��b�s
h'ac��dH�fi�oss��ur�'sco4plif^fac�io.�sux8qlnt'tcs9tv�eMiFoacelh'i<ls��s �zhji�'-abc�egilmnprstcotontr<Top��aelegpraphsyYhctiv9e�*iiologi7y�c
�sahor�bemiA�cst�r7smmunicatio�neorR�nni��oa�mpheee0�i7s�ymnXosmunoasXcsoto|
paob�nre�lia�ngi�yc�sJ�a�ae�ntFer
�i�yP�iuc'
la�]h!Jc�qecuxse��pce�iotS.uV�aop�i�ynsitivz�;e�i�a5�e�in�derreiWFoliz�a�eon�vtehorlegmp��t7xraphh'SXissayve�]he�HoraJmpev�i�y�=u�x9�a�m�s:'��l�st�qi_'W�afti��l�as�h�'eY5isdg	r�'ab8�eg�iC�ln?ostuw�'msufjf�a�ae	id�eGci<l�"nyar
'$(o�fӶ-to-ri�cai˟g;m/�s�~eor7m�tl�dklmn�Vpstko#�n�'�tabc�e�!h?il3mrstw�e�uarkd7se��r[soad
h'e��i�s�d�r�or(aay�'&�aE�msenNRt�'-*b@c$�d�efi�lm�CpswycmslH�o��ahaխdf�aor4Xeen
or�sal�k/twe5pa0�tneion�'7~gsn d'M���h�'a'�h�a'�eins?�uh<l��ne[flMpig�!h)%iyh'c	ir2o

'abei*?jmoprs:'dk�lnr�ya:'�nrishujamalTounei7yngH'�lsnctiouUsajk�u-e3wfrQe}oe	idRln}s:'Ta�'a>e	irsN�gn�r��c9taka��sod�'�wds�
jqa�tdehTs}yacVk	cd}�efgksthio�'*eiY7nd�i��nru�''%oD�r	�'a�ei.loyl:'}l:'�ene��slmMpi<lnsss
�z
�ae	idrsess�'hetp'ur=hlei8oy�'df�rsini�d'�en?�oq1pt]egT�aik@	e�'sheil�Znsns:'}e�g�s7h7me	iyd[~sao�cm�'}�e	ish'	eisng)l�s
h'aehipstu'cio8tu�s�'d�rse;eael�'ite�'[sdFen�sh'-�e�*i<l2ns��f-egaeo�iorp�Vodl�rh'1�lsrt�'es�(uoch�ecag�l<l=�nour
�i�sr�eKonW�ze8�i�oJbsd3�f<l�ZnrC�sa�chmptlgheo�ta.�gh'e<l=�n�rA|su*Cs�'h�b�e�7is�uya��ebfarian
:'�iYs�'-abcehilstcat��c�'touiY~l�
ahe�]t�'-�adp�rsc��aa�yes
orke9lf?noi	ry�c*e�'cnsina�@t�'a�e	islh'�ei<lss��s�t�`zi
�f)�k�na	e��il$�ryHi�neiyh'bd�rstrainh'Z>essl�n�e�nc}lmnouFschiy�e<l=�naeige	iE'dc�r	+sh'dln8rs�'	�e�ils<�eing�s�'�e	i,wosbc�Phi{t��woru�Pr(uro��fnos	Be
hg��lh*e�i'm
h'-abehi)l��nv�blpiYEnx�o@nr�s3�i:Qr�'b>e	ilm�ostW|aИueMiound�'H�vnhM�e�e	iozr�'-b/fssha=rXa��ila�dh'_�eime�nataz	+z:'i�am�ppY'as�'-abcdefghijklmnopqrstuvw:xyzadeflrsdla}p�clelpec��tl��o
cdlmnqrsvxho['ei0ld�rs7y7c	niut�a>e,�is,�cectha>e,�isbeAipao��r�drge	idR�nshlasi!�sz
�e	ioy�a>e	i4�msafgltuct>e	imMoser;norce	id{m
�rsage	id4�msist�e	i4�mserZjr"a�iyme,�ruipY�psecfctaiblish<�e	imen�;t,�mal,�uapmina
�e	i�b	teloeOra�irt�a>e	iso'urm	aa}iaeod�gile�aute	id	is��iolor�uY'bcdfgll�mnprstuwsorb�pchqtelpst9(a�e7�sima#�th'K#a�e	iuai��i"rs�i��a�eiFosnovn�'1hasa�e�it"�eWi
h'-adeijmosa�vyo�nbp�JitlR^t�e�il>r7sr�'\l&�s`�e<ln�$e)�guXs�eiL�sr�tVlp�u-	i�mfiorU�mrest!�aa�eg.ln�'omi�cre.gh'-�eil�m=�npsst�l"]t/gs�tza	e	i-m%�tb
�tK(i�-la	.e	i#Cb$toyPctsY�tolitik
'/psoayr�'ailys�zei7d�s�n	+sPm	e	ips,�e3wlori=�r�}nai
s
�'-1&e�tg	imrs�wv��i-a�e	i�osae/�nsth'�e	i�scosend8�sn�'a�ae[Ki�lsb!Hiley=�neEjiumrsb5Il�tt��sr1�a�e�itae[�c��imVlpthori
�szzak�kaeioru�'l7r?t�acykl/�c�'ls�eino�nu=�s�Xd�Znrth��'��e�isio�rtT^ur�lZjkttT_l[�aeoathe7d�radcast�'#Se	isfikr�stfh'�.e	isldtyJaMe	ise�Oih'drsi	ry
a�est
a�e	i_�'aFcsdehiklortuylnpstcili�utran;ctbh'�a�e	ist$}a|e	ish'i1�pstta�uli
�s�zuN�rth'Y5isego�r"dilnprs�pvae	ibl�ed�rsebratioU
n.%c�st�e<l=�nra�elj�it8BaiFo�ov=�eity�ytifiy�c<�es�'�einoQovn�'as
hl<rae�Qirrgte	ih'TadseZ9r��crchse�X�isk�td^fprti�bv�eiren7Fc�to�ccu�la
e	i�lti�o�vloe!}sn�eis��naiui�msm�msKiU3ns�ei�o-v+�dgilmnk�opruvnis�tza	e	ibni�-l�ca��e	ibnK(i�l�ctlh'�e	i�lsloei7cnn�rX*ui��sz�Ha�e	ibmpina�e	ir;nkteincda�e	isVb��tstsio҉nKmstHa�e	iaeior
�uRkc3nlae	iPbktdss�e��ies;�s	cdfnqstvilTaLeiantg�ig�oit
De]�iig Hrura#�e	i��btion'Lasaeoi�jsct�e8�isit�Ee�Oruer+seiot3WucraD+td��ge
rlida�tirtRuuctNa�ei
�osjbnovn�'�Zase
0naicmZ9tinat�ei�n	onu9(a7eaeR�i}oz�lnra�y�e	i�tg�st�eisPbn)%i
�p	ryd�'-�a	eisbr�e?n�s	�npr�e	ills,ser
a�eJ%is	+yeiX�ouyant�cx�t�e�imin�Iadiesce	id"nst�'	e	i'msstalli��sz��a�e	iaiou9lng�l�u�fltin�eu;d�'x�rs�m7smprsbe��n'�ersY�ve	idani"ov1�e�ianct�eycl�)a�xeY5i�'-	rabcdefghil!�mnorsuwyb�"e�.fhllo��oW�ae�oa�Ld��e".ia�oe��ir?�uc�ckJdeV�ial��o�u�priffrJes�	ei�y	st�c�(o
cdeflmpstvlJSoarS%aC�e	Giicat�ein
�omTa�ae	isin�e�iiver�e	isy�qploo=�ysith'�e�isi+germin	a�e	ielop�.e/i�ora-�veiadh'Z>esb�litoE�radrsvlh'Z>e�iY�lsect�ei%osn3:ocpstover�eJ%is�ylay['>e	isomFlrib$|cut�e
.i`�oi"d8�si�y� ne�
c�s�e	ilnu7x"erdebn"lt�'B�asaeiVlf��wsw�vs��lhjkyRacnp
eit�Hbnio-vn�'issmt'�isd�#alicat�e!�i
�a~�iood�'s!+tesd�issaJbcdf	�klmnqsvx�eh�o	�'>eisuH�vy�enZ9t�\egtc�'	e	is�t�'e	iscd�rtZ>eiss�nHxobepao�>r)�drge�isd=vnsshlasP�ioyZ>e�imssenth'JsagltctZ>e�i�:mss�aistZ>e�i0:mss"�eAoru�itetablish_�e�i0:ma�e	iluat�e'niapmin�qa�e�iloa�(i$|r�'ae�wfilorssucs�e	itoyrhk�t]�icrt\�i1hoTaers�en?cW�dt�'isal�i�l
a	e	iglnRr��tuRr�e	ilRmmh'Ta�e	isBaeid�mx�rsnV*saeouteisdss�non�asscxta�eios�nnovn�'La0ls>e�ig�rrampm7sS�h�'�ei)loyLb4�ov�e�ilog�iyRka�e��xclr\Ouus�e	i<�s�e"gmth'a	eis�u��bti1hos1�to-v<�nnsm8t�-iaeiocnic5mt�eiosn�ogvmret%er�iyis	+yhe�nes��zh�a*e�imen	t<�egera�nt�eiS�on�oV�zeglnrstl	�e	�i�ls�)eigen;c�td�'Ta�e	isbnish�e	i�miV*s
ae	i�'dnrsi�ka
e	i!EbDt	aegi�n6oru+il�nrt��uei<ld6ms�an7�sdh'�e	ihl	+ssh�tJnlnx�ce�tra-�ct�e)
i%oh'Hpta�i�cmnose�'ns�'st�'a�e	is�l�ta�'}e�ln�'asli<lszִa1�e�mY't��era�i�y�b�
n9|rDtaeio"dstwsh'�ein�o�pvh'��fstB�a�e	i�Znuw�np	in�s#tlra�urGtE'
~i<lsgiPtaeino	uybnn�sh'bissZ>e}]ili'�tgZ>e	isamrtd#is
aLe	i"rquX�i��udrathaC�e�i
ctdgklmnsth�'msa�nta�g
�an�'�eisnt�ein1
o7i�o:labpgi�.nursTa(e	iloement	a)e	Gi�sr#�st�ae	isdCr�'�acd�efpghiostvao�rrporat�ein	)o0�e#oeloatNaNeR�ir��caA�or$Wdntiali��sz��a#�e	icul�aeptu!3reVlcailtl�ma�e	isti�ot_urank�cergrrat�e)EipvrX�eieZjwoduc�e	i�teii7nstyJa�ei'msPb]gngo��rosl*aN�ue�hrat�ein$�o-veioucth'�eisn1@olvggsse�isdZ9ricneidrsn�gS\d�e	is�dven �ainF@ni7	oaeilou	rynWb�iptux�y�syJaei#Uod�rs�"nnovn�'
�a&�s�eis�t�mt'�is�*nae*i�nDt�Hd�rsaPgnvrsn�e	is7tTa��e	it�e	i#lsanc9t�e�i�y	acegnqstvb)cn�i�l�'est��ndLfsve	i8d�rshi*�tonsu�'4Xis�ish'<l�"n�e	iZ�kqu[�iu1haianht
�eiss+�a�e	iԟeacdha�e	isaZjktTa�eWil�cf0'abei~nof2su�y	-dgikn�=pr��stnififHyfEen��d�e	is
he	idz�ek.�qrr�'ae	isbley=�nsdJtch�'^oera+TnadVllmsure	id��msi)'ya�eVb9lt7ei.Eobe�r>$rgnstV,xra�tdeDgi5se	i�s�rsce	idanssUYiYl�"nst1�ae	id5n	bdlnrtuvilir�sr�znYeulat
�ei#So	n1
on�desti�4s�4ztrant��cP't�ein{o#vste�'5.fless<l�"n�geh'<l=�nr=sl	�nX,dane	iVb�l?�eln}stipl-?i�yerat�eci
adef�imnostue�w��'il"mstussance�'�srdcenV�ct�a�ei�oonali��s*�leisrzh'�eVzisvous�'��e	i�'tegwga
e	iolutp�i.?a�e	isre�Dw!aei�r�te�n�'Oi��mru��vwmali+�s<�znce	id6m�rs��nsel-ma�'"-
a	e	is/�mnciantUYig�oީck�pr
�vcupsTr�a)%i	ry�!dgi
aZ>e�i�sni$uszaLe	itionh'La3isent�fa�e	is�'aeh]{ilorstu�cipr�st"vyk2Za�e	isdVlnr�'# a	e	i�mseat)�bt��iteiti�oriatel�iTa	i�msaclnrt	�lth'aZ�eY5isb>Yilesyha!!glse	idnt'XaJ7e	isctuUsoi�riti!zo/Ivortogr��a��aaei�oycn�ye	iTad�msnt}e�iyJa�e	isntishfe	imen
�teisd�Znss�n�oc~ea�'�bst�e�i�9oh'-	iApl�prsa71iri7Zzpot�'aZ�e	i�[os�b,gei�dsZjt�'d��fsnt/�i1hoeiohpsendsib�oi�l�la}	resnta�e	isbt�*li�ove�'�l�ns�ein�ov�e"c�bemns^�zan�dt�'�e�is
a%e	iabcdgovchh'Ta	ne��f>Biat%e�Niessha�e	iuc
e&�iti�o��vramL_pms�ae	idCr��f,e�ii!�ol�eia
hnbdglrtlicV*s�'asnDt�'i�ss��miat�e�i@Pon)aasein�ov�ecpha<s��oae�i0�bDth'9ds�cG�hueist�'aGeisn�oe(rst�mit
heio�nEAa��e�i�aeouacgdha	isoriste�Mrute}]id	Gis�`nacehinoptuyltTa[veahir']ulF{ne	i['d0lsed`?unL�sip
acelmnqrtwlrtTa�e	isch�'�a*e	i)e	istyJa�eionh'La)eis	In5se��l�cbl"�a�e	idt	is�ef	i�msu.'luenC�cpvi��nBae!PiDoh'�dsh'stha	il�e	iGnsaiou"prk�p�n]p�e�jwf��fd}fglnsr�tze	iudns��c�Vta�e
Fux�l�rnae	islDt:^l�?d�eCrienc9t�e�i	+y�'>e	iA�l�os�yth'.�a	ei+�lFosrbnv%eE8iUbae	ihads"tilnruwd�e	iuvL�et=�e	i>Tae	ih'd�nrsaant�e�iFoRmbgtcp�tti�ovK�nrce!i�'d2xflseΪs�e!i�n�seilo=�rcmJlit�f�''�a}�ef26isu=�lgr�tCha�e	iot�iOon�mendenc9t�e7yndse	isd�n�r�eixQob/Iv�Ji�l�'aefi.!lorsu`?y8"f	�r(tura�nVtd�nril�iull=�n�eyntvc�uh�eC`i.'ek�cra
e	i�tbtiG�o�Kvaei_�ouine	is�t�dc�rngtk�hcnt#�eisn�o/Ivsgcntur�e#id)%iy['	iblmprsm�:sisr�twst�'a�e	isne	iBpp
�lfgrvDae	id��nsectNa�eisn9�o=�ec�9pi��tncthronisz
�a
�e	Gi
�a
�e	Gihe#�s
aV*cehiorsuyiklr?ul�lne	ih'nsiat�eKiodh'a	e	is�n�ta��ln	�sch�e	iti�o/Ivi=or�ne��ac�enrte
Dlun,c9tla�eo%�urtJe7ye0id)lsendotheHl�a��iLo�u7�ae*i���d�e�m�rs+�l�loruklf?sth'�e�Eischh'~e	iaeiou	rycin�e	itTa�ea!i%os��nsylmi4WstsY�ta]?n	�d	�t
abegK4udsvane	i!Eb�lm�gh'a�cdefgrsvct�ei7s�n�o�v�gdE�lilrte�i'sdsh's1�tex>e�iraed�a�e	iss�e)
io��cpect�'Z>eiss�n�o�,virQ�u!!doi+�nrnh'ae	isbJ�ld�eg�r	i"pmbnpstiMfG�o"thltolsso[�aak�eTae	i�teIkhili�sh'a�xdei�losu1�v:'clmciXOniou]d7Sr$}ae	i�d�s�pa0zilnrtl�a��eis8nh'aD�e�i�l�rstig�oon�'
osg/�nue	i�'d5.frse�'�rsbeist
e7srant
|t�ekiS�o:'dns?c)�d	�t�efni5yDc<�eh'
aeih'-d<lrsch��abn�oi�l,�l�e�cis�mY�telstvw�'a	e	isPb7le	id'mc�rs�aneinotnS�'g�a��isali��sz
�a"�e	iaLei�0lMfnc<kl%Uatuv�'�e�istion�'1hais,�s"zTa
eC`i�eL�laeiorrV*s��dmad�Hit��vc�d�s�tn"rdh'`a	isr�uV�vdk�e��isha�e��iso�ai��ot�ae�ik�th'�rs�eknjav*6ia��eo�'��lld�'ӝs]{o:'cd��u
as
�b:'aeiouydpamant��hsodi�y\8c�e+�s�z	)�alei�mnostu�mnӄghol�Mdi{s
FulsogiyA�cJ�s��tu��sotri7sc�'�aC�im�'aV�i��ytioc�sh'a�ks"�l�i�lanzU�ne6io�'lsand�'%e�t�'clpsver�oog�\ilasQ]tir{�uo�m�&s�'dmnss�ttae2io
's:'`i�8d�Mpb!�io�uTnid�eta$�dbmabrmW
ste	i�'d�r҅shOm
abcdefglmnopstv�Kwy0Tz�'ab��c@eosld�reo�igodn�rtr'�of=nslav�io�^m�1aceh�ikoY'$�n��rщa�'-sd�rs�ep�'ae�fCAilm�"ntwrd�'�oіslnrA|s�yi~@e)e	GiBayond�'sh��iOeh�Ro}	e
x#'H�aeio=jrsty�dnttyba(cl�i	+sytenIkv$�h�'c�	theth'�e	is:^thadegisa�e	il�&o#�nO�e	i�'arsUdbu�'hls>�hharfEe�iexiy�'-d�fɆps�Ipt*ic[Mnul'�e	i�of_rg}lmsensta]�ha�nlin�gM�efl�t	�'-�taZ>e�iN�lrsrauf	ff(fafafe[Ki�'-d�m�rs
�'a*�eghimos�'to�n	e�itsth'-hae3~fi<lI�m�"n�os�wya/�chs�m	otwn�gande�zd
�rhБiingL�ed�norr�s.%uns�h��m�tP�i-zhdi<l[n+�fy�tar6!o�blrBMue�ft�'o�s!}ue	i^k�ldsty	�'bC+e�ihl1�msuaHMu�'�Kta>�deg�ksledh�h�'-ab	eʍg��il�mTostwf��pen��c��raoc�2r5lnei��a�t)�kD�nide�'�rs�Ooo�r!�e	i�'r�st�d�'	e�{iosx�uh'-a�%ceOvlopst��oroV�a36r<lnr�se	isd�s��fn�Gs	e>Bileiy�'dst�e�)n,a#te�i; ceikoqsh'n�rsbV|n0�i-l�'-�ei0lsy�an�e<ln�\eglr"�tu(�tgime�n"�uoOtlac�e-mtuz�'��lh�ial�'i<lss1�z
�e	i?�m*�t�'l�iyaei��uY'l�s�'	�e	�i<�l�rsdnrst
�'tabiHfii^ls�tv�.a3�egcon�ae:'VdiV�div�e�'	e>BisenraXBeo'�sgftaMd�l4�5M-i'azs�:�'6�sa�rh�fabcde�fghijklmnopqrstuvwxyzcdmnrs�h�'-b�h
fik0lm�Lrswbh#�t��a_osel9oil�la	�p�;h�
it#aorLkt<hc�eY5ish'os�kh'	eiy�ksngh')lsth'	eVzis�'bei�xlos}tuyY'eityd�nx�rten:'g�s�'drs�st�'tatoіs=opier8rcntha$�u�'�_esg��h=@sDqvuapsct!�a�'isc�s�zPa	+s�os�itY'tnchkoa�qde:'mӂb�'glh�s�'-a�*befhilm^nsH�vw
oybcot?�tlimsFbbwil�lW�adfrte|~l�'isyEe�'�Ge	i�rsa/i�oŠlam.{penrC�s=�egH'�-�(hBa<eee�l �l��ep>o�c�'deg=iOvnors��wenbe��r�n�o��re<�rlfi$(cgqto�zu�zu�'b}gns�oXutg9�eaeutx�ilrtti�'Z>e�in$�somicy�eis.'h�mlsterc�e	is&Ea:e}uaeflo�pvy%�ind�'�Zo�'-s}xpla��yY'e�'�d
J'-abeimosb��co�xatfnr;uL�v�n�madr�s�'-bscsoas"Xtka�t[alad�$e�ika[/tcnk�eisnϰgY'g�s-ss�p�s��o�'S\vd=�eV�a-p�o_'ae�f_�i�OmOvnehpsuY'xin
�'��cs�eiosttya�c:esz'�nsae��i$�ttioN�nbdbs?a?e��i�'lv:'thic�'
�aiss"z
�e	i��m�t�'{or<s�<e&Cl�'adgnstY'�l[ntae�oo�t�itytH�age�dfikmOvnst�'-	e[Kils!�tga:�rR�eBibn�o�$e�'eissd�r�e�n	�'-eDhfimsy �mGd�rht�en�$esghael�tve$Wl
�'-e	i`fkls��wmean-�UsI d�res�ts�
n�Rit7yoc�ke�+isy	�'�admrsp<wya
�k�n �'sb�a}�iuefo�
rg@eXk5@qstych(maaceiwklst��wy�X��'Gclmnr&Eei�ytenO�dBo.�ni�y�etootemk%m�'-abcDqdlmnstvwc<r<�t�on-t7�un:'�e\aeurlztrJy�d.�s*FrBalta�eaor�i�ynXd�EtY'abdtzll
i�ua��eh'�aw�[etta	Bee��a��aoso��rcG!e<lnruc&i�'e	isdM�s�y:'eiln�HtddgaY'HinW�yga�0e oro�upo�v
h'-a�c�eghiostu��g'rstvi	+y��a�e�a�ei;on��o#vato$�r#au�'eksrkhc�thA�ifs�Tesergirtrav�'spu�ie	inwdnr�e<l=�n'Qd�sgweeiler
:'��snd�ai�l[nt�iy�yab�eglmnrstsx�����u)�l8�eh	ih'-)�acehi<lnsahnd��-s>ead3sdnr�sou�sn\�se9c�spBhet;ta\�ndh'-�paeh�Ei<l�"ns]�u/wۈast=uhou�clhe-ƛc	�dl8r�s#ase�oa$�dCAka�e	ist~>e�pa�e	ish'eiss�'d	i�rsnegi�'<lYnss�zC�e	Gi7m�te	i:'d)�rs	�'aLbdeilsn
Y'�siy�_e<l�"nh'8�i�'dl �n�r�'	�e	�ilsY'<�e	�ingh'-bXaW�eion��gw�c�ab�i}yD�o��u�y�'a�cXBsl�'i<lsۃt�s�0e

�gM-im
�o+s
�.�
a
�cf; i
�mp
�svsrca
cp�.�bef
�l; mo'abcdefgOhiklmnprst$�u�Nh�Kkpt#&eo�r
h'-abͫdei�'l"0o
rs�ya-d4uit6}y�i�oei;ldr�'-imnsystam��p�e+�s�z$aeck�'�
e	is�~nsh�'�e	iy
'l<�ns��l�ccr�d�&etknXo�u�'r8shktybe�i�d7s�'Z>e�i�msuXas
h'heio}ndei`moyY'eiX�oyr�'hls�e�"n<l�"nr�smen5�tltfMp�'�aJ'd3~fsf{o&Eu�'�eizlsann�'Yls�'bg[5rsy��'eidsr�e<l=�nerrntz�'a�eg	i'%osUdb�te@:ye?i�'�-bdm�rs��a�'abeH�fimopsniaY'�n�aluei_leV|n��s�l�nna�nt�ein$�o�vaei�y�gr�serstru�'	�e	�im�song)�er�'<�e	�im�songBMe�'e�5ls�ulstilt��s
�fh'-acd�e�g
�i*?ln��ost#w�yd
�iotY�uo�wf!�u-�fthe-m��ihrou\�g�rbmrV�w��io��uo�r�low]~nhaeiy�lr�'�-�s�eY7nm=e�'isy�emae>�iptn�ey�e$WrH�e�uali�l�ehkst
�'�-d*exi`m�wyF&id�'�is:'e�iltop]l�t=he�'?�b�eil)
op[rs
oyc�e�	nh'9�ay�isne��iroof�e!iss	�'aghilstb}na�g�te�'�Yae�i.!lr�nrfgord�'i�u?�ln �oBa�ree��iyd�ra<yndaܗe�'(Cn<sadelun�'a,�iOIbetr�'�qdss�_tk~@y�G{�gsui[mum���nk%i
:'-.abcdefghijklmnopqrstuvwyz�v�[hp.c.�aabcdefghiklmnprstuvwxytbr��tvo'i*Enefdab)�eilordx�iat�hi5�c}kno'tatee�'fs�+ith'�Ga+	essg�aec!iD�'��-d�stoRo'M�-acehkrssja��wh}oari�dnh'erdo�oets
hm�t�'cJ7efnf?isl~5oaeio
Fulment�'�atos=�dflsic8�ei�aneg�e'#it�a�i�ybisosscli
aanct[n
C�adehi<l�no}rSa�	elue	i�'bdrsa��c�g'�i�s�y�c:'ssHue%�s'�smasoc�Hh&�saefr$v~di
h'gk<l=�nrA|st*`wua0�ree� p�iyS�'�dlg�r	h'aegi-osu�'cTnsi,wo��t�'b<l�nsr��sr^�u�e��iy�yntta�lriQua�ra*�ebira�'tn�
bd�gln{p��t
�'bF�c�e.�fiopsoarr�tdh'eY5isrE'Gsde�rngh'-sbmsv�SaJ�hes5Wsl�Oat�'-�ehlsdtenW�iropeRziy�e-k=�nHiaehi}sE'rsa:'ele�ra�'�'ae��fitklmostuv��w��yza��bcdmrts�zm�'Z>e�issi:�o8t�'=i}os��a�i)%iʆy�'atmrsb>Yi��lnoo��mc��glmpr�wlerP'ka'�da�en�'shi	+peo��rp;loom�'sscensv�zync�t�eyaP'eIkg�iY'�s�hb}ha�'<r+7t�eioX�uye�'dsw�e�+i=�n�',�a	ion�'esl)�lmn�ote�o�'is�ai�f'-"pa�
bceil�n=opswyacm(cpswnd-pe�gp�a8^ear�s9	spyoa��tel�Aldr�s/�'s�emn\�sbo��ce[~gh's	+se�y�s�yet��er�
e��ha�oter
h'b�qktri��o.%taO0e	i<rt	ior0�iyaeioUdbdg �rtor�'�HaeO-ia/�ne	i�'Tadrsi`oon�'iss7mt�s�'sd�rs�fn�'essb�Cu'abeimopsus�_renr�It:'taigk�r�aMkt
Fu�a=�nsssyzd�aa�itymicsd�as7�v<4yHa�e�alr�sv'e�iYaoD�un�'iCAterl�'#.sa[vi'aD�bcdefghikst<a�s'nw�t�a<s/�dܡhtq�e}oiu5�fm�o�toni�yeous<l2n1ha�m�'abcefhil�moprsuw
oyl�'Y�lswo;oalo��ug�n
hr�'gs�e	ia�%s�&xas��tdr
's:'�ol�i�y�Oo$�uY'�eneg:isy�soth'ssS\tt�vai��pp8ttain�xgtotn�rsW�k�-eˌi<l=�nr�sortdi=zz
:'-Oefi�rssu9�fro��iovܗeinae<l�nBxoedertai�yr	%tiyHxaum
�'sse	
sz	a	.e	ia:'I2rek�or�Iirit�'i�cXsaG[eio�' �n�yagY'�l�s	'ilprsJ�wen;c�stR�e?i��eh��iGeoyi}oophy6�tuTzc
acdgikmnopst:5u
�'cgthjHxnst*4wMmeob�sev�Coo/�g}v*�aoi�mpd�o7sha�qgi�on�e �iae�ossto�uh' wnss�'ns@8isyatia�nFi�bo?nyefd:�'apar��io�r:'ri�aucehkqs�'a^oeo'yh'Z>e�issatc�ohe&wuatc�\h	h'a_�ei�o�yf�nr*�a�e\ln�esg
:'aceiorsuyn�y�'icsc5zall�yNeHxm{tI|hd�elsli,tp�a�enrs�'gsf�wy�ei$rc,�s"zfai��yct	i�0o%�a~erB�ia�~puma
�sradnt�eino��n��a�'a.ilia�'ar�'isacs�i�bcdegktlnrste�oiy�'sdC�py�rs9�irkr��aUhH�v~dadte �rrs:'W�oerh'J7e	is38iopo"�d�a��se�h'Z>e�irssx�nZj�aeiov-
bgne	i'd<l�"nr��ss�i�yn�tah'hss'sh'dl�rs�omnoCbgh'	+srBMu'�ssnruyaתr�'	�ei�s.=yen�rs�t�+e�gr�'<�ei�sD�yenprspt�	e�gx#'�asiyed�rs
�t
h'i�'-bd�e
7f�!h	ilDfmnpst��yh��p�@oo��ur�nuI	s}i};ot-iXBt�7e8{o�'�ehioM�tN�o\�fnp�'�styhon�e�ih'-e?i�rs$"sr'P�so'ca<T'a�zcehilorsuyb[vdfglmnprtv�'br�ilrsZa�e��iya|n��ofold�'�is^�gssade��ilpy�'�b8r0�w�'Nad� l-n�rs	ioy�Opwla�'e	isd�l�r�'ampsnpTd�^e	ih'�#e�issh'd�znstail�',�imt�os�von
FuaVHv�iei<l=�nssysdsr�sC�e<ln=�esgeu�'gJso}�r��ala�'e
hr�'abcefgilp1�rs�Ft�vy�bmoOMuoroMuKe�ih'cdmrs*ronger�'	is�'�e�iss�Ei�ef<l��ni	rycfeat\�iaetiHit]�nt�'�t�'e	isdZ9rh'ho�stD�e�ilog��i�yei�ydrh'b�egsTisr�a�uhd3oiXe\li[ner�nnpay�e%�iotri�oE-s�@gpe�Zg�'�e	ihlst)�eirc'�ais<!sen'd�s.aeilmnoruwde-mfenfre�zuf%e-mf�adhlmnr6aule	i�'d8rseraz=an;lav'e	i'stai9Ec�zekcta:dH[za*6clnszpare?�llOe?i�6dm�t�'as��toh'-3�ipsaf��fhreni�ach'�aseiomҪpsie�{liɎnrleq�tc�skJ'aio��ultzh'Gcisy$Wdth'heoze�isdHrssaeioW�bpu6p��ziMdtI|z�
ozh'hezleh'sse�fhlopt�Dna��rars�'l&�sH#iytic
�a��isln�'-b�dcd�efg�h�i�Zkm_�rstw�yE�a��dil"]tnsjupea�Mvao��g�o�yay�xeirl�'��isa�Pirs
ftmh'�!isster�'�e�i\lsea0�co�SrenhaIkut�Zkaio�v�teAfP�dedOein�g�di��nblmsi-ty$Ue`mq�ttzap��c�n6�es-mt�'b_�e�iooS\mlOek��iaei�'�brstzz�'kop�feknegMgop�ZfiptMz�xpnIkg}n
-aelmn�o>ps`�ftic�an�ctio*�f]�slogitys-itZ�li7�ttiO�glla�'sst�e�piso*�rerio2�d&_stP�h
�i
flmnoprtuwfh'	e	ilsa��wdih'��eA�isos6iEbc�eLept�'�efnf	is��e	ioFOlbce	inp�isru�~h	�'�b\cd�9kl�rsR�einJ$e�'	e5.f	isio�u�'/n�s	�'"-c �iVlsth�'��e	imssw=a=eoSmE�m[	w�'isy�e��sdgaY'nrtdrx�ec�e'�gm�is�'�e��i�msh'lss'�e	iss�aeioubgmDnptwble	i�'d�r�s�'-gs'e>e��i<�ly��b�oj1�ms	E'a�bnehipsyea'�p�e�!n	e��iyawNrchh'�c~ei�py�e<ln=�e�glnh'|e�9isyiy�e=�naewmh'	e�is�'c8dnssh�'	ne�iy	�'yJaJ7eif?ipsw#lÐhritFe[1i	�'b�edK	eis�Zwyall
h'Tue�s�en4egabmpv^$b8`ab�e	iMnlneC`i�'mps��ah�ua�'psst�s�'�e	iosuwri7au5jmr
�a�eritFelOieadfHglotuul�a�ol�'�a8bb�e	isp<wg{ep�a
Fung
e�+isybfgmnpth'bs	eiyD7enf�'Gisy&Eg'�-hmpsalsfArvaZ>e�ige	i�'dsZ>e�isstsy'#ichh'�ei0�yen7rs
7t?lulors.%uin� ei�yeZqs_�z�i
bdflmnprtz~da�'a1�dsmB�ofh'�e	iN�lslp�'e�isdx�rlyt�e	iFo
krsur
�ae	i�'ds�q�'ğbG�mssthor�ppe��rfrv�'��iyiy�el�i�oh'C`ii	+ye<lsrsstc�eth�uele	i�'bdsu+tzGcisy>�lth8�ei�&an�i
�k�7r�'abcde�fgi��jlmnopqrstuvwxy��'-bcfghlmnpqrst�)vwcg#�h��i��r�#e��iordoar}g-noX�oo.Iaa�lJ�ohrrFe�Ui�aaZoQr3�uo�&r�'�a՛e	isk	)i�'aeA�fT�ilosuyn�')lshi�pd�n�r�enuke�y�
n��tW
s�'�1c|�l�oua�kh'c�e�Oi@Rshh'/	a*eibln�gwchiof�eoc��d,\kn�'a�e�"is�8bl�i<l	�'b�eY5i?�mosgte!�l&�n�ua�Peo3�l3�rt�ye
�rrthiy=�nao�uu�lcs@�trrheoaaL�iea�i'.aelor�stusyf2ssy
�m�nte�kuds,e	isiFBoܕun*�ad
h'-a	e�h	i<l��ms#�b��cd��h�Lre$gri	+yEe<l�ne�cth'a�e4-i<losriya�el)�t�'s<Zhr7s�y�'aiosri�y�a�eon�'a�e	islh'i�ls��s+�zr�'Ha>e�pislrari�l�s�t
�zyJade8�ii�/sd<lKmYnr��sa�deginu�nte�Gid<l=�nsr��sRn�re��i�*wy�'�fmso�omtent�'as<r�tio-n��uc'#l�m
e	iti
kr�o3�vh'-bd��g��i��kd`lmn�prstsD�ta[!w}�e�'-�PbceiK�lpsy�bcepG�vv�oa�!tota$"t��aadc�rht�e�	nw�o�e�ilsC�iy�'suc\ka�w"h}afmoruau?6lent�'a�e	is%l�t,mve:'gajbt�einFBovei��nh'd��is�)dgknsz~Ieneiur�'Ji�sJyor�'�ta=is7ye]�f	i�'sd�rss	imLa[]ioglmramph�'Fe
�is�yogi�yc�s�a�eha	.e	iuaW�b@def�ijkl �mtv@�wzssCAicnut	�a�ei��m[nFoJrsnI�ov�?e�*iaeio�'��t�d�t
Fug�lraphFe?�yc�i�uh'-�el�hi#l�nrs7yacdefghijklmoprstwbdnpswc�as"Nuor<b	pd�7h��ral��yp<�oroA�vseumr�bti	ovrR�a>ea�xrI,aelorns\}to�`re��o��amnr��mfgst�eidenc%tratulat	ig�ociious�l2
nsten�ctJaraHodiY�cr��eiticHa�pieiocflnpste�i	pei�aR�nAuA�i"yr��etruct>eis	n	overmi��nsci�bpu�bfmsvx"fbpte�reY�iapmiDnlra'�nAeeiu"<ena"nlfil"l4�mloorifiDcvern	i4�maete<r=lmnE�ampoDlorr<s�toc�vdftvu<clg�el��ier�eo�OlustifZti"ynow!�lo"<a�cv �aoti�gvpinio�gnaeiorr��orp�elrsZCltra!�isess>e	ieoserDvcp��tla�ia<Te��g�5aeic��fglsvo"<rv�aulat,�ig�o�ipte5crain>etZ�eghteou��saetuctrifi<cisf��a<i�0eY�lrvic	n�yfprsficY�ipor+�et�aaop".u"prЃti=Mo�l"<n�e�ns=�hidge�'�sa�m*6u�ih'-aeios�botf�uUdbfɔi�r�jcn��ft&uape��i�') d) s��z�aeds�g��nabeioptnp��rstic
�a�i	+sh�oio8�l�lil�n(�soltogJ�iyic��ispP�a�'-abcdefglmnopqrstvwyacdfilmoprstvw��ynunuHut,qoloassns�cer�veo�:utu�acNuumenxOtilnalH'iss�>te*pu�ixndfv��e�oia*pleitJhqt!�uera\ctoJdnt�hfpfiuFc��eerrma�e�neo�cf��ee�Qitire7d�mkoi�l�m)Pl�ora}�iow�Zeee�knq7run�u4�utom�
a	dore2�vior�c	lnd�Qsuct!iFoaerk[n��amtisemiqu��aa�
c�reiop&unal�'RRi�sRrl��o\�e�4uaeo3�jtal�l7snt�whaio�lrt�'�is�yP�f:�lc�:fl�stJv�hogiycJ�sLaicF�i	+serrmeпaeior�c��vfss��euai� v�}nae3xu7m7wt8�ikowi��l�sl��e�ei�or�cksao9insparI(e��poJcwv�eeek�lea�rlO�ii�ZlrsternJ�azit&�reUx[.adeginost\rt�e�o-HiaFe	i��os��o��cgsaI�l&�cbh!�lor�'isti�yeJsa�>e�'cherl�irh'�ac�issaeiouteion�'asli<ls"z
�e	i-m��t�'d7i#lsb
�lnt�Ji!!li$usvPze�ih'<lnssJ�er�'isyU
a\lmn��oea:�orli<ls�t7�z7�a�troguei�rn?ctiHa'%o)aemnent�'asli<ls�tz��a+;e	i-m�t�Ha2�e	i�	e�u	
ah�iopstu�lrabt�Ai�leiFoh'd<l=�nsn�o�s-vardi:'[cy�'seltsA]fe6ia�'aeiu'7l�tOmn�txauFnclae�i7s�UeRlmiaasc�la�mg�0eint�'qslc{�ther�er
�aeZ�i�'pd�s.H_quaeioci
�o�tlns�'*asctPOe.Tiialzi<lt�erayLbt�e�i
�ont�'Z>e3nsu02r�iI2y'abefgilmopr�uv'f��gpW�i
heh�'is�cm�'ܵi�snsr�sadegi�''�dipit�i
o�y<l[nr�sHget�iy��'�'ðdsei�'�a}i	
'ac6efgn:�olh'i<lssf�z
�a
�e	i7m�tultua�r�'vfs��rsion�',�isglnpt�ur�oog�Ui�ye�Ngors�Piev��aoW�yn�e�iein}st�'is,ngviai:'nte	id��e�aeioh'drs�'[�is�ycse�sl?nte	i�'ad�ms�t�wb0�i�lFo3�uh'mse#*ochanb�i�aqs�tuicenten5�nil�o�'-a��bthi�ostu�)aY�uٍc7e7lP�fP�gcqr�ee�u�'Tae�wils�d�e�re��ih'd�m�rs6}r&Esae��i^rsto:�pnr�'O�f��hostaYkehO�iyenh'xfssW|th'\lsh'O�-xfae�itns�u�bl#�nh'<l�td<l[nr�saeY5ins;g�rdz�lr�')�ash'-ace˞fihloptuvy�lsta�Orge�%nsimenxKtdnrsnioalu['�c7s�e<l��n�slogi�yQZc�sa�o�Lraeioun}s�t�r�tln�ld)�neciX9mple	id�ta\Rpl�.ti<lJrs�tzi.rcf^�mhellb�e@�oeC�r�or�'a�ei'�sǹs��torzand�i0�omt�l[.
ace�hilo�prtuybcdfg�hklmnopr�CstuvwHybiy�e<l_	nk�'�e	ilse	i�'drs�th'eiossy�'d�ls�e<ln=�e�gw
�'-b�egilsybo"xo�xrLa�e�n�a�e%eMft�'e	isdsbu�Zrbu��r�'gs�e��iy}aeiuy
h'-adn�o�rs]�u"0o=u0�bo��wpeare�i�'�"a�e<ln=�e�ghac�qhe�Rilost7y�'7yo�twh'~�e<l=�ns'�m�'abe	imp{�rsTAun�'is�cs�.z1�emt
�i7sloe	ih'd	+sli��c�'df#lsa3�uHecJ7e	i!�yo�o�'}adtegknt[�ilo
qyhai'�e	iss�'�a>es}a�o�iuyn�g�'"t��lei�'dl�rs
cweS�iy>snrg��s	a�deik�jl�op
.rmct
�'�9-Tacdh�rs�wrop��pssoldFe�i'aUfn}a�sh'sh�'Z>e�is9'k�'ei<l=�ns�'sdnP'r�s5se	is��e�ns�hhooY2tterh'-�e*ips�proosfln�'taei�uh'dn�rs�aV|n�'ra>�l�mn�'}a:�eha�irGSa�'-abdefiI|kl�mn*�oprsstvw2a�,cdfgme�or��va�gr
io5a7d3Jao'�fJ
rtN�vh�'"�e?isaeo�'�Onue Oly�g�'Zds`hnprt�'}al�isy
�'-�xdfhi��lswմdol�de��rDshjkae�e�Lna�Llh'�^e	i�l=�ns�'>e[Kil}�rsi
kfield�'Aekl�'_�d'h�sa�'�hssa:bdf �iltv�go3rn�'Ci�'-�fA�lH�o�l�m?�r
�'aefhistych'ks�e#idsrtyi;rsh�'��earb�en�aae�o�rE�e[Kia��ynd�it<o�ahp��serd�'�1e	isaertd�t��rab�d^ei�Xlmprw�ynt=a�o�ero��o�'&d�Pf�a,�e��ai�y�'w�e�iOUolandar}tdnad�zZ>e�i�nss'abefijklmnprtvi7^tts	+ubol�edlrA|sd�'�e	i
osth'�ei�lsy�e<l�	nta�eFkiazh��uo~@klMoh'e?iossysdl�6an�g-shall�\iy
�e�i�'mse;�i)'yd7�r�'-bwdneginstybg�pon�;ev�uo��n?lua1r�e�%n�ei�y_�enpli��no�'iqssm�[t:'qs�'-blmopsw\ybfrre�o�a�eaiorua�re�r�poilY2d�ZeE�oae=cn�tn'�tw�a	e[Kiha-pr�ekiq�a�e>>kOvlrth'�e#is�'-�e��f[Kihlstʙwsyftr��oa\ilee`&vya
؍'-fhl��stp<wX�faceÎdeoadÎslu2eoa��dhei��ye��n��rs��th'taessrh'K	e*isyei,�facdeg��j-noprstuvwl��t�'�e�ahiskh'Uba	e�iOvl�Cpsdi	+y�e<l�"n	�'bh	ilms?t�,iox[eo�r#�a�ea��kvh?�tun�'0�as�ef	ikst~�lh'�Z-haFei�osngh'-sb�^c�Qj�rs��or��aSee�vt
�'-afhkl3mpstw��b�fgswi�r��oi��o�nholikcirtt`�eioi�noee��pift	e[Kise[Kih'd�rssalk��'orYksneY5int�'bd�(hlh�swa�i.Xa�iv�a�e�os2'-�a��bcef�fhil�"nswB�yc��hl�rsts�whian<nrcu5iis<v��t=�itao�femr�>pmHe�jiF�ah֌orua�n�ut��'st�pido�nr�saoMind�'Z>e�lG�r<�en	siyst
e�i�s�d�eib�t��g�pahto:�nakovict�^hclh�'-gos�t"0pun�'�wns��vll�td��'e�knr�'-�e	ish�lD�ie	ih'dls
�'�bb	�eDhf��h	�ilswtVe	�i'-bcͫdegijmn��op_�rs>bty��opil�;e�;a�aiozh'\zat��'e��i+sa?sdr�'-�e	ipsybO�aroof
�e�i��i��r�e<ln�$e�gum�pa�en�'V%sil�,e�,atopsypaeiou9�npn^ed}kvw�'�zdsej�p�'d�1is�e<l�"nbuZ�re+f�klmnv�kl�^e	i�"nsyp�'eissdkrek�'}rsh'-a-e*iswrap��p7sVbtge	i+dn[lnsp0�uvs�Vhe_ftbgn�'b��ls1hel�iyh'1�gsk�e_=icdflnV*stkh'Z>e�i��sderh'�e	isyfle	ih'-?bd�rs��b1�ns�t-de=ost�3d�"eof�ufo�w=xye	ilr�'b�e	i�lsu��ge	i�'<�cdsh'�e	il�"nsoyc�kte��r'abcdefghklmnoprstvxzs�m�'^�eY'eilylVHrn�ilauncx�teyW�e?il�'lssinecikss6vaZ>e�ilityan$�'�a�s
-beil
kno_�rssbl!�pene8Sf��eGia3�eZ0ydK�nr�s"�en	seiy�'-sD�b�cs�f�en�e�gh'ss&u	�'deiN�ltzmOvn�shar�)t�'-abc6d]�klmpR#rstw)�abcd	ost�Ca�e�'y%aha5WpY�or<!u8saմlH�ptwr�Weoke�pi�'	�d	�sil�p�aմrrQ!mFa\ourn	+ss|ai	omg5Mnaeinn�'jsia*hIptwd��derҪpokei
'�d�sil�p��railr�y�kl��'+sS`d��ns?n��odgmnr}ss?venbu��r�Aefr<4i�e�a]�n�Wpra�='�st	e�isghimnrj�urap��hh'k"e	ist	�'-eVzilrsw0lread%e	it�d	reiyss�l0n�enes	seZ>aeeY5i�roD�r�ls_1m[va)PoXu
�'a�beiopsw��glt�'-D�eil�msto-An	�n
�s
�zD�e	�iy1houd�rt�'-sܒrfV|ni	ry�ace���a'ZnDt[~d5jrsr�'a�"eiss�') soan�aseo�sry�iH�ian[�ohko�'i�ssmY'�sim:'je�nr
aehiklotuvtg�ntsn,ms��cth'�e<lsso�uca�eio�'�t�d�fn�s�'-ess�'-�ehOis/wyscr�#ecre��e�'is	+y�_e�"n�'s�x�'S%a�e��isy�t�Araei�'XBnr�.s�'Vdk"e.�fil�ms��twy�e�ni��gmtith�'�is��eA�or��e>�a�eta@ocM-dei/�lmopsu
.n�o$�ala�ei`Yr%:te�o�s$�n	�rn�ro�'-tei�yЃpA�ae�zaelst qirh'�e�iseiy-�m=�nr��s	t��xmindeY�d�cf6Asi	ryl�c~eon�'s:'�:'8olact'ca2r#�trsa�Vuas�-tan׬e�'abcdefghikl�znostuti �tad�i'e!�lre�i<l�nr�s#HbHih�'cssQwur�e75iofu�n
h'-ae}hDxilsuaslVblp&$oorT/eh'd	irs�'-ssongwrl�ie	iyh'-d�"n	+stdh�ls�mseL�can�pd�e/�'G�ors��eong�'�e�islarh'i<lsfBs�tfBza�ilsteuHrt�rh'-TaFeɆhis�Ihaane��sloYger�'>e�ios�Cs'>u�'�eioM,tid'@jasbu�hEatxh'�7h�zpsuncul3�a!�i
u	�'eilor�s�'d�nsn&Eujoc�c��a=xeh'EAahe!�kstyi�y�&e̳fe�5ir�'��-f�hl��siy��ene%�sph�e&Eu߮-�a_�c8�eh�iosm�tu�^lat�einon�'�a��is-AaJe�'-e�efpstO�f
�psho�orsen�c�nhoo��tehO�iO�yen�'xfssW|th'-�lsforL�maeY5iz�bh'�adsrsNXlaeglaeiouyh'tei�'bd�rsoarZ�dngh'-<�rd��e�ilprtwad��deSMtt
�a�otich'�a^missr�ich�'�b*ef�ipy��ah'��-b�
e	insa��l[V'-habd*efY5ijlmnprstv!�wjlp��rum�up5mi�sl:�oh'1�dx-psf�')�lsof�rfl/iul<l�n�'�efsuUl�'�zmps�ef�isy
�'-�cfE�hhlnstd",ti��v_�l��oWueXi	+yd*�r
�}ih'ps�t�
e	itym�tish�'��e	i�'e�gistUseiOtlr�e	is�y/se}]i{�vsdHrss�alp-�j<�al9ndklugge8r�'$�cs�'-b��cdeh	ijl-�prswbi�hrwt�locke�trit%eli�{riv
e[Ki�'yoo	�kack	eVzisa�eitb.kKvrmg�nocket
'�ei�s��acar{#p�maarlI]r:�ty,�k��iaeiocruy��bc�dg�i"klmnpstuvwykh'e	i<l�"n	+swdn�r�s�a�'1�ghs��e�oh'�zmsdgter�'5se	i
os�'��iyh'�e�is6IwUy�'-dhpsh=uap�pIaapYpe	id*rtic	�khh'�d*e	i�'e"�h	ist7y�'d}rse	id�rghter�'	e�h	i#�ms�'ei�vo�s�'-dhrsbdta��on�gri`oven
�rra��dolds|e~�i�'�e��is�ytcnDs��'	�se#issd�radein�pu	�wzehOiyh'bsaHg"{lh'dgss��e	ie	i�'dhsammt8ekpxtv�^e	i<l=�n+s	�'Fei.!l��oswԞy�e<ln�$em�geaifee�vi�'dhlsgh�'�e	is�tder�e,�i�l�"ntވh	cdegmnpt��vv'e	ikh'e	i<l�Znsdl�r�se	ih'�rկsrs�vtcthoth'�^ei<l=�ns6n��s-eS�ilm=�nsy�iyeY5id8r�sgk�'|fbe	is�r>�his
oy�e�>n�'-ckps#w@�o�a��o>�n�ae	isydr�'>eS�isypBhtre%�a�'hst7�ee	idr�sab�c�egopstuvw�'bse�isd7�rh'agsn�'eser	i7s=�e	ih'e	ip	+s�ef�iyh�e��i7y�'hs1�t�'2xf�scghh'e��iyd�rsh�='�e	isaek:'`i�sn�'(CeܵiXls	cͫd�^e��i<l�"npsoach
['�eo��k	degimnrstg�el�iy�'gsZa	ein>0s?cn�'bdlm	�pser�'�e	i�os�boor��de��iydsrgk�'prsh'e	isd}e�e��i�yh�'<�eiy�en�$eg�'sti�y�es�_he<l�"n��rs��t
:'aeiostuy�:clrstl�'-�ehIi=�nps�w��m��st"_is>oolde��iIho<�mt
h'A�e^�i<l=�np	+swy;3hat�Ich'-ppi�agJahJ'-*e*i]�uaY�und-gr4at?�eagltr�th'K	eisyenGr�sma!�tlehth'haK	eisy�en��eg��ahwidglrtge�n	opDgaei7y}x�'drsy�'�se�n7rs7tn�ckn�'k"e	isoq:feh	ik�trs�'e�fist٫vw�yere�isyCe�e�non:'&io�n�w�&icgklortuZ�k�'<�gsshaei�coy
�'-had��hl�rsy��d?�rs�te-�sc�|th�r
:'�e\ln=�egh'-j?�r�9ad�2e��l�t_�ecthh'e��i�yd�rs
'h-haei<l�"nst��aong<udnr0Ls�e�pien��sgas�%be�!hldern'<�ei�sn�pga�re�i�s'�spdgrtgeiyh'd�ls�e�l.lng<l��n�el
e��iHf�'
ost>eu�iyrt�nhe>xs	:'aeioruQy	KvcfZ�gikpr2�tz��f�u~dle��iy	�'bd/frSl~�rsir�t=cd��kh'd�ept�sraaha	ei^ly�e<lnDs�\e8g'�eZ9f	ikliss) yen) rs) th'�eisy�e�nziy�e<laeltdkh'eisyd
�r�e<ln�$e9g�drz�'�e6�ise	ih'd�rs�llcdfgptvk'e�isssdf�re<lnr�s�'fth'	e�+i�lssy/�gh'I�e	ip	+s�et�iy��'n�c+selh'D�e	�ixls	bdegort��uw�'bs�7eiy�e[�sgraTAs(k
q�g�s�dkptN�z�'��eJsh'c�e��is
oy�'hOisy�e	ikehtel�'ei�ls�d�rn	�g�'stiy�e<l�Zn�'-bcd�ef��i9zlmpsa�tyc6�wa��pae��iloa�l�
n�lxQra5�iode�i�r7s�4wa�urdh'	eY5isap�tvp8er��iof�aoil�l�a�eobilei�'�d�rs�alou�wg[!hch/tʍuTga	�eoe�'pd�i�rs[.bfgh'-bs��ne	id5jrfh'`�b	e	ilsO0e	i�yh'g<l�"nsse�iN�lsdr�s�'-abcdefghijlmnoprstuvwyzacnd-6s<Takpr^vyh'�eVzis�'`�b�eisy�e\l��nt�yu:|oh'}Oa�e>Bis'm8berss�r�^e>Bi<l�"nsi�e�;q[.0�cikoraeobl0�ilP'eyh'i<ls��stPz�eyt@ja�i�y-bcelmpbepiol�-oconomic�asol��iiolo�`gultuxrconomic�aei3�oJgnguistx�isetr�i	yaothh'�i�s7yl�Bi�'be	isd�t4yGerateis'qs�$c�'�ad2iose	i}yd�nm�'i�yeW�s�tze	id�sva �it�'ls
-bc��eslhil�n\Hpsw�yh�bhpseaгdбr�aY�e��e�pa�,oc
l02kov�Ye��ey-sof�t�}h�aaf�oDgk
ato-g�lrdi7sn{�e�X�J�e���ou�Gr
�'-adeiosuvz;�f?cnpraٍc,�uia�s
Fu�eier�'�e��i<l�s�y	�'cd<lmns[uis�mt!�inei<lnrs	+st)�f
�s�t
�zessS�'oid�'Hascdhlnptstit$}a�e	ios3�u�r!}u
h'-a�ei<l=�ns�us�Lt�rMfy�t�Juoqui�y�e+�s�zsis�mt
�isa3�uiri	+y�e\l=�n�'�e!Pim}nson�'W�iD�tb�t0�iJ�lae	iVb"td	�n�rshenit@�sabeimn��o'lti�'a�s�'gXn;�ios��eer�;re+l�n�r	bu�d:vho:~prtwod�iy'7�lsne|�'ss�fsH�vabe��ut
'ss�wt:�hir�mahyss�ae7n-re�'&la]�iombulis�m�t)_l�'��-adgi �jnosV�td�y[vrt�a_Ji+xh �r�'b}XcfhswZio_?oes��t Oaumt��iFe&�rritFeitac�a7s�e�i�yg/�mrra�mKpay�io�'
�nus<lp�n��-ofbitcArh�cknt�e�Ci�'hl�iy�'e�isdc�rsayFeY5i	'hoG�prswiotates-mt�'i�rscalt�leWih'�dscmle�1atsor��e
�iri�>f�aii�tbcdegort�e�oere�i�y�rQ�si�dh'��hlnrA|s�lyJ�es�e�o�phrit�iiyeyioy�l;�nw�'�ef	isuFl�'a	eis�b�en�_'ta_e�s�'h}oste-�bIi
'bfgHklnprstv�swes��triqY.ufl�e���hh'�e	ist-al�f�'-flmsd��sestr�ou�less<l+�n�Rad
�'abcep5h?il=�nps�tl��iMa�QioZa7xhQ�l�ed�r�s�xey''sroof�e��isca2�p	�'cZ>ehisy����+oanou��v�e�n
h'cd�^e�Ei<l�Znpse	i�'O�bdfsorge�e�'��o
muae	i�'p�heh@�r�'-abe�f�lp<sweswast�'��e��ws�outh-��e#�west���'erl7ni/�ye��s�lmDpI0orid@g��anr:ydY'-on-se/�a�''�lnh'�eiI�msss�m,aT;oaera�d[k_rl��seDneireign�'�ls�t��eh'em�insd�rth'babiq�ueMe��z
ace�fhilor�zsuy�'$�acdg=h�i)�klmnrstv��wyei�Fk�'-cdf�mp�rswy��s"]traK�fq�a��l�lort��'s&�hJua�olk
h'�ei�s�-a�en:�o]e-gei�'dfswiuUo
us�yh��ocPln�xeBxoshe�tdi�n�'uUbm�seidr'�s7en	�'dgik�znser0�x��el8�ei�yiXen݆sa
eMsr�dh'�e?is
�'ce�ikܒlrst'statXuih'd<l�ZnrA|s'is6b�'�e�il
os�yne*iy�e	iow�'hsaw�wKe�Eia�'&Cc6�nmt�'os*�dich'Pa�is�'�e�hist��uao-�ltempora۬l-tempz�oe	idrh'd�e	isw/ain�'�esca
acdeilnrswkr�aeisarAos�'pM�shoFnng-�stub	�'�efgh	i�cm
osish��'eisd�suea�'dh'ikastua	ef��m:�olth'i<l�nsAots+�tf�z
�a
�e	im��t�'�si	ryac��en�bh'j]ay�i�ns�'Z>e�i?lsa)�eirctlue�'d	+sla8qry�eior�'Ji��snomV&ya�eo
Fu'�lgO�mpsra�mph'i�yc�ahoto��mcop�e�i�yla�rur�itcd}rh�'-�ei.!lwf�mwrlDifiy7Zce�d�r�s
!ir‰i�'�~-bZ�eios]�uwy�,aoa�8t�e<ln�$e�g	�m�sk�t#a��em�rgh_0teltuologi?�y&�c6\s	E'habcd	e?isiI0on��dhec�ckow��nncdgste�'�rTaFe�{isthr��ile�=rF�emr�'aistio7cQ�d�Ocgpz.�eAgohgo�yoa!�i�ocid�a[veEiy�'2Ulsa�rh'	e	i�saeign�au[vmr�eio*uc�aib;dn(�cgl�xoli!�pcdef>�gklnrtv�'a�aef�iss8Duy�'bdsI.uer�'il3mswy	In��silk�ne��ob
h'R�b�sd�)gls�'�Fb�e	isfZ>eissy8�eXiylth'aJ7eios#w�g^n��knvReh'-adeinos}xyd��orL�i^�c8qllr8�e��iy4di�'-ls�tch�ies�s�e�n�.aeY5ir��y�'�ess[uzter�'J�hIisaeioy8DcelBah'	�e	�i`ls�'�adst�'eilsu�?dn��se�sa�olh'i<l�nsvis�t�'cghahe �er��a	h'��bexf	isttz�'sdfsul3�l�"nber*Egi�e	il	o�e�y
�svi7yiXeTsaeiouknstychnopl{�ehh'bͫd�eiy�az�o�e<l|n�'ste!i�drh'�e	i
psh'�ef	is��eoo��tenn�'sewdeioiodf�e<lnerous\l0nrBMu�'o�s��u�ctt7c�?um�eT+c<�fntT�et�'e	isd��r�'-stulsec'o%e#i}!d�st��c�rt��t	*6cik"Clnortulh')�a	e	istp�o�aeh'dnsh�m-�p�w�Nadgstylo��leiy	�'M�-hacdl�rsa=xk�ri�e!Sf��nor�'�e	iHs�@afk�ln~dr�'Nae	isdr['7s7y�'�eXisy�'-DfbeDhf	isfed��edafraC+e�iort*�dn-�gp2�h"a�'J7eisy�en>v�\e9gcmpYtwast�'kXe!isa�en�'lV%s;0i�yeor�ps00oifeormg�a�e��i�'-lstwe��l.#eig�t�h	ef�iys�ta�eQ!laeiouycnin�t��wyhgef���h�'Na	e[zisaeydh'-Tae	ise:�aa�r��gheeth'�is�'sd!is�d�egnt�'?RghstXlgkt
h'-be]�f~milstDqv��wyclle�La��ooZa�k�ri`ae;0i[s�tt��ume��a�i�olne?i�'	e	is)�eJszh'ge�icg	�u�k�'R�g�scene	i�'d<l�Znr��s�e<l=�ndmnrt�'Y�dsC+eioy�e�n�nk�'l�issy�'tgi�vn1�rs	�t:�oanMbt
Fui{k�'cq)gh	imL�wker(�ejoas`�t.lsqru�'aei	bdl�mnrstw�'��bs�'�d	rs2eixlV�od�e<lp�ndter�e	ise�Ei�'d<l�Zn�rA|shh'�e��iyh'�l��nst�3e	i�'/fl�k��rsaelkl�lm�'	e�oisy>.i7d��g�i7szTae	ih'Cbd�rschh'	ne�9i�ybdfglnrs�'bs�'>e	i�':^dgsV�i�yYf*�glionea7satncy��wh'e	isd�r�se	i�lmr�t�'aڸd1
e�Shl�srch7�iye	i�yh'�e��isyel�'eils�dn�g��eiynF7ghh'�eiy�enegssJ':'a�gico2�'nrvݲaac/�hi?�jaM-cBwd�eh
�lrcs�t�w'�s
�i
�.ade
�hioruybcW�d*�efg'�hiklmnprstu?v�5wyh'�bilsl{gie��iy	�'-d�fmn�r�s��bh�g�l�Lma�e�nFtesҁsc�eikty�3a:'te�'�a�eh	isoc�uf�'eY5io?�rsd�Hrr�)d
�'efg^hinsy	�'-��acdhrshmsa@�nanaged4�m�rtrY�u�vo�Fra@�ntrƥu�lerh'�e�is�en�eP'ganTtdnr9pt�e<l�Znh'e	i=�lsdr[s-��g�'��c��hlmsw#eiast&$e#af�ee	i�'dh?oso��laeiklwcg��t�'��md�l�Em�Znr=s�yn�'gi]Krs�m,�t�'	eisngh'-ssN5h	�'a�e�h�imosge'an
'n8narth'<l�ns�e�pfimpna�'lterE'	e�ish'e�isdc�r'�e	i�'cdfhiklzumnstwza�ehne�tle��isdsr�s
h'-aTbeiopsa
�io=u�lff��islron+ed�'-MisbeaAr�eg�r?nMsf�
ufh'issst�h3>i_�oDft�i�ooT�pslavsk�ilyee�ityX>a!�iBxoEdb�6ti}h�o�7e�oa�'�e�ishlh'ylococc�ai6ue	i�'d�r
osM�tS�'-bcdnefg	iklrstvspt:au��douard�'�iss�ci�rh�k�'�eiy�e<l�	ntect7su�oN>u.�ir��uatU3ze�'7s:'e<l�Zn:�r�styei�s�tg?ntI	h�'�e��iyhtinp�'7sru�ch'�~-	e	i�;ls]�u�ae��id��lsnhriE'�aeio�su�'-Ubacdifhlmtnrs
wof-the��-ra6foouse
'seC�iys,\senqt�'_�oim�w��da�en�'lV%s;0iycnosh',Zasn�'-a�e	imswaygI�ra�Ns7mt�i7s�rscF;o�7ae�rst�'�dstq��u �'�eqzu�e �orbfn-mfch`�e	i<l=�nh'-��e	isat-�kh��a�i�sacefghilmnprtuvwdklmīr�'fissyas.'tK�c`�e<l�"nh'��-	i�'�hsh'-eo�isth�'yiy	�'@b	e��fir&�sy�e�l�	nolle�isssd�rkli_�n�dl�npr�v
�'-�e��hXixmswyc��lork'Fe	+sZah'A�e	il=�nsey�'c7d�|jshase	i�'5jrsh'j�a�eY5i]�safn�'CAi�o�e�iosaursiQ�umaEngnlic�t	�'belms�wwe*6c�r}mtra��geq�tlae�'r��tnbLo�'hl1�ms��wcdgot�hil�'	�e	�ils<�e.#i0Thell�r��'gstraphFe
�i�yhihy]�ep�e�io7s˾r�'-b�dcdfh��lmd`nps~�wp�{a��ra�d��ua��omoxt�
iaen�'�in�'іsolu�moxt��av'eings�^t�i�oaeilnotdK�io
�'cgl�mprstah\�memi�cvsnros[i�ta�mpO�hog2ihon;�i7ye
�gcop�e�iyyp8�e	^iyl
�a�ei$us�t$yzing�')l�n�'-Hae<l=�n}os�uXcwvolme�r:'r�sTni�lo�r'hs1�t��o��ombe^i�'dnore�pi�'	�ds�'aіsAg�'a�e	isrdtt�'�1e	iQ�s0bcefglmnpr�st��vk	�'Feil�Npsu	+yC�e<l�	ne�pi�|b	�d�rgsl$�iflh'-e�i<l�"ns<bnsd=nr�sLe6�ima�'staics
�z
�a
�e	i7telt�'stto�'�esh'b�^e	i�"ns�Hw�io3:r�'�Xe�piXos
.sula�i�u�nt�e'�io)drtegk�Oth'Fei#rsy�e<ln�$e�gh'YRbFei~�psy�e,nepund�'isarAriylO0e�{ila�e7r�th'-nOlrsfr<iy	eiung<lsch�'ea�idrs'��y�acd��giklmnopruvwhka�s�'-gab�qd�ehip_�rst�Hw�yin-�[treo��eY2kaous��eldtm�e<ln�sbeg	gi�n�st'Jsb,tsMioo�r�taokR,e[Kin�'-on-tees��'dgH�a
qeGiyc�'�ahi�siometO�rs	�me	i
'-d�r@Rson-tren�qteioy�'nscdh?�n�e�Ei<l=�nn�'ais��f�papclth	�'-��a	e�fi�lsa�mp��t�c�cna^Fih'=�e��is7yef�iky
�'-cd/fh�lmLrswO�c�hu?te�~oX�n��aaomJl;rs3hr�kt8�e�id�gl	�p�'-spig	e
�'-{�c$�glopsw$"gig}5h��fvae	i�lVb�gard��r�aae;�ikmny�btg	�'d��f�h��krs��y_�o'ss-D�b
�'-#b1&e�oi�l�psybcdfls�i�xo��oi�nantde�ai�g��o�'bltoa�oTvri��nel[Hl�mf�prtbri��d	�'sf-eslh<l��ns	�nr�se�'-psp�iyia�e	isPb;g#waeiouybcdN�fgBHhinpst�xuvw�Oy�a}o�.hb��dif]rvari&Eugl
e��iygehnthth'-aef�Ci"�l�Znswe�.f�d".i��w2dnr�sorward<l�"nssYa�'-+ejl�nsj�.lackAIeack�e^�ay	�dgel�u<l�"n�r�se	idQXh�rs�'lpse8=s�eY5ib��oaefhiou'K�ggi�yc�e�s��a��sordY'-upon-a/�vacgml�+bl�aylo�r�ve@oMfgraph��iyspher�e�ii��n�'-bZ>e�isycwolouchr��oh�ev�o8oaeinpstwkm�'	e��isy�'Na	ef	ilsC�l
�eiV�nt�'�Aclswa�Pi��my�ca6Kihnls�ag:uth�'es>>nh'tocmocc�ai�uy9'cs�'�e�3f	i0lMochh'ae�imyb��i-ld!rsarhk�e	ins��t
acde;fkmnpv�'et1�e0ikt�eVl�e<l=�nuk�de	i�'nrsy�c9t,�be6�ih'-b��o�rsbreak#Ue	ioru�neakReo�ime	Gi�dCrOGdg	�'�bbeq�fXi�dpsyd��n�rbp>a
�'-e��i��l�zpstysearcY�h�'drs�yease�i�'sdrse�idn�,rsb-dg?klmnpc0u-v��w�eosScan��oJ
l�zY'abt7aolpEoC7e?�ogr�t:'y"-`�b�eQXh�Ci<l�mroo8m�'hps��a�e
�i�ei) yx*eYlnegs��scI|dgmntkturae	ili<ls�m��t�'d�lssMgh'm*?pse	id#Wrh's#�tch�Jn:'abcdf�lmnprtyB�r�'bs�e��ilosyeV�iy�'Jd�fsrj�nUck	�'a�b��deiU�lsy(bnt�'shi8peo�d�rs�'s.%u'	ilin�kfh'�eisy�e<ln�$e�gb]�eR�mp7s��l�'ae��isyg=ced��rgkn��st�e�i�'i�e	iE�ms/weiFofn3�a)%i6�y��ddh'�e�i<lssd�]g�m�thOiyt5keg$UavV1e	�'J.;�glmF�prtx��ei�unszz
�a
�e=�h	it�'isc
�asieh'd	is�eof}no��aabcdefghiklmnprstvwzb�zr�sv��ile�*i<ln�rd3ses�s�'-abcdefghijklmnoprstuvwzabceghilmpsU{zq;�uars�qe��al��adit>e	ior�'�Xi	�sr�AoeaduxiGdiX�teute�nachine-��glo�taetha/�rq�7ua��n	cdglnqrst�i0uA�uen�c�t0ptv�etaa�ruaBve!�tarcc�etuchn*posembl=cyotma�e	irse�:ma
naehlorute�>gll
�ualDpad�is��ug�vs'emn�,r^�smp�mait;�taoc��t{nstcioush'<l�nirnent�'�-asact�'�e	iFos�,ilttur7�a�ean'#eK�eioursvect��ocipf�li"dDsmai�inad3nNac�e	it�ei7s�n	odnrvit�e�io7sr
['Jis
�hfe�Eu�JoLyer?gae��i��orucm&�u7e3�t�wirutiy)ldatxa�ixoE�aeez��i!�se��rne�rura!�ieuad�'?ism��amn?�pcdftay�indes�c��eusxQteudat�ixoeruLve=0ouct�'�eisn�ov�eis�tm
�tPgnctiva�eingdloaei
uG\nteR�i7dJr7sj9a�tbcemntxOrense7d�e7suten(gaaeiteWiH'dsd<l�r�sn�rt�ag'Egt3xoaeiounrdi
�b��gi�nrtgse	idns�ei��bn�oa�ccstroscop_Qisi�ovFestHae	id�r��dcl	�nos�yati3Jpaeo�ut4�i3xut'sp<wrma�(lprv��etimo
za�uo�bdgnFeina�rt�e
.i�oaniֲsֲzO�a�e	isLa*poahlorura�tg8>lrap�hy�l
YoepJnulation�'	�sL�ioc^fgj��eram�'ser;c�beocdgta�mn`fdion�'J�as�gN�u
PaceioptuK�yahr
�pem=caiU3bpth'>e0isBc	unqr�tuen�c9tvien;c9tdsei�yd#�nsa�en$us�kzri�y�eE�l"�tte	isdn;ctHci;�n�Dl+�aecia�e�f��lairPygnDt�cdti��av�etu
�etO�aeino�vn�'asl�ra~�iuta�e
Fu�cmrNa�e	iT*pfa,caeilor�y�LsHxenr�s�x54adf�mr�uaneao�9n�u��tey	�nr�s�t
pt�aaocA�ht�e�ispic�a	+s8Snrb�'a]�isnh'iss0�s�t0�zeBnrs>$ti�o�Rv#aionC�do
�fe�rchkr��teioues>$ds�'�e�YfiFo�o�vnc��t�ertuaqhsr�'<�e	�i�l�sblkgm�iruenca�t�eay-rSland-s8\uh'�
e	ilse?id�rse;xotp'�tadeo�rsk�nto-�re.'ntenla��nkrG�uifP�e!5ih'l�iy�'wPd�rsttz�'E�oyfieior#ur9�a	e?iscx�eienn8c9t�'a�e�i7l
�tclat�ei,n
�o*SvC�kag$�ae�i�'st�'Ssagr�'-2�bc�e�+ihlpsycdp�goad@�d�Je��ao$|a9Jl�aestaGeis;�bn�o3�v�a:'cntid(;a�e�'a��c8�eY5iFosb�Ai!!laikrnya�JkothY'aefklptwBweaiouh'cmtet�aaet�he	�'�s�'dna �mr�'	�ei3�o�s�c	�nh'�eis	+y=e<l��ntaei	rynD7e<l��n�e&vhaioud��mt�)ie	i�'d�s)�d{�tna�KmXStr�'<�eio�s�c	�n�ua��rn�'as�'s�t�'abemMn6lopsMt-ctܵr�aria:' �naeio@�nrti�y�e<lYnsz�a	e	i�a	.e	i
i�Rovdr
�'d�e�h	i
ostyH�a�ia�ont�g�'Ye�lrsiyn	e	i�s�'st��wuxa:�o�'-bdfghklnrst>�ub��d<faaeilouthh'eY5isd�rssadl)�m
�st
's!�r
t�i��o��n�wrn�s�y�'�e�istaEcbe��ior�en}s�yeCAs4cr�e	i3�lswn�'essIre4ioysڵs[p.�i�dl:'lass�'6e?6a�eX�iaR�ei�m��gt�eiy�'�e;�n�s:�tVsS3v�io;Now"ceh>�ptZ�e�t%�ain�eyro;karn�'ns�e!i�ah'eiprstrh'-abcefghik�jlmnop6�rstuv�wdoo�p�Ypblnundan��ctl\onu�a�e<lno};u*�wa�,ehiloz�rlrifragilisticexpialido)c�6gar�rlAot�Xia5�u��ilmnol��ip��udsuctiFonv�e�i��cY�l�grogat\�ioaeiloN�ru��m3�tc7Ztu�Enc-nialy�i<l�nuio7x�d�t�Qr!}u!�orc~�tansaBe�il4�orlac�xue�i
:'7d�i7saS�o��s!Jveiualrtchtvyw}�ei=c7xo�'�essUwerod2yg�zhmVamnopo%�stende	isdnc�t	+e�yr�'�i�lsa
ut�Aia�eol�n��r��d�maoult"aura7elh�i<l�nssr�)vma��lme-#rr
�xd
�ein�Va��h�losw�einO�t	aceioptylt7e7turat�eino?�nri"bpth'>e�kis"dln�tl6ts�znic�as�aec�e�iaimor�rr�ttio�n�u~�iucturHa�em#gmawn7x��k3iǜseion�e	i	%tls@�le�iOod�es�@lnXQa�ee	ilorJSudr�'st:�iaei)'yn>$t�lm�"nr�sent�'ak"e	isl�r
�t�ac*eV�arsth'>Ta	eis6nve�l�An�a"�einti1hoo�n��uess�a�ei@PoVbn�ovae	lmnorstv�4u�oun&�da�utionali�ls\t	mr�b4�a4�eegme�nem��piSZtma>eD�oci�ye�s[.acdefgijlmnprtvUtybtt��aehia,sa�rn8Dg-f<l�"nr�s�tf��i��o:zio�o�'abe��isce	i�t�'-d�rs�Xato-�asurroar��dd�i�re�i�'d�o�rs%�cnaXBgmY'eo'�asectioviy�e�l�"n8a3ioun23ta��malrss�e*i#�ius�'�e�wsis8�e6�ieoanpHylis)t-mth'%�is�!dtiti:�ogua��c�tnd�e
isa;2eiILox�'�e�itl�3eeiiyl��lh'�eY5iFosva�e	io>Vbl�'��isr�'ship�'	ace�h�ipqstn�'tanate�'�heptib�Ji-l_'~+tei	�cndseio�'��f�o#vr�'7yc�rio�n'>uuehac!ne	idstxaeina��e	i{msb�ij?ln9�ahlt�uerVl)�eC�o�'taaO
naebh�i�{utynC�nr12tain�'s�tae��gnlHIbEadlnrtt�1e�'g?�adlovs<kla/�n
_'_'aeioubF@dgh�icklmnprstyz�'1�bL$is�'gse	idrh'��e	isil�i[elowh'-�e	is�-tta�i�imperVd�'�e�ilsy@a�'b^ek��lnso�uh'�^e;�isy�d�e	i �eon�'��gh'ps�a�e	ig	dmt�'=�e	ish�zimy�enk�oh^7th'b�e	iuckY2lh'.�chst�'e	ise	id~drh'b�e	isackh'�esio'Vlqsadeladnp�brrtFe	is�%w�')�b	ew�ipsya��nh'h��uio6\re��ix#'nbOs�'borOvnpth'Feisngh'<l	+stake'	+s
�'-bceh��i<l=Om=�nsta\we�lrE�eio*rnr�s	e��ise�ahJ�olth'eh?isdsr�sea*de2rtbV�afg��lmn?prstvzt	�'�e�i<l=�ns7y�'ugsh'mswFe\�iJu��ebdeg��ik%tuC?r']l�o�'��hssh'!Uaeilsy>Bi�r�e,netr6Helh'�exisyhsh'e��iydsr��s:'j�a:ec`[hzh�'-��abe!�gm�iboxlver�'(sXal\oe�a�d�rserY'Vl�ezele	i'-drssh�slortk�l	�n	�pshh'#�e!iden�'.�fpstl8ajgm��as�wtmnbcd�xklmnpqrsza��irK�iao�mphany�c �teOvnn��hlpvaobg�ai�lucMfvaZ0b�sgis�mtth�'-
�irSls��laM�ein�'/�itateabilmpnt�]eioo77n&_s*�tl�'i�os$rcs
�z
�a
�e	i-m�t��ni�2netri�y$rc�e+�s+�zahY�lotth6Aei�y6e�sU3zoni�yc�e]=sW�som�'a�lst%�i]�o	acdefgotegprseseitheaBs�tog�a�u�stt	h'�eh	ilosyromnt]Wei'%oycs�`zPaXi
�a	e	im�rinLa�epa�e7lt�eWiTuo-�tairctyS�lc'aslt��i8�e io|
mrgei�y7c�es-mt;�i7s[�u�ae:'.�nd�en�Ep�5v�'Lazisym�'ios�yce\tmPuahTgycg}x9�tma7s7st7aJi
e�s7ys9At�ei�sU3zhioli�s9`tn>e	iues�taiuc^�ua�n�'}c�nQpa�otd�meom�'aisticsPzs�as
�a	e	i�tch'
�ass6�ly+�gaeiyngdch�ru,�wj�lmbors����ʩ
'-abcdeghiklmnoqrstuvwxyz���a�sjsuncti�johir�lt:'bcdefghijklmnoprstuvwxy�'abeI�ilorsus�)tc_oY'�eJ%io�yule��hrY'nacc�l�aei!�o�'-`�a0�cd)�l.mstwѼtpoo�n�'os�aa
�en�o�rulxlei�\zla�m�r��thikotioysto��sgmrap<�hetFe~�rcoarGdt<l�Znur}sn�*i<l�'}�e��i��lsy�' �ms�'3~fi#luHucl�'�ais�a\t�e�Ei'Djp+szysh$(i&�g
.jftt
'�	ei�-rMy
e
�'aeJ�gl�m�os�ulo_g�tiate�lai�ouroq1tK�t'Ҳnc�e�ghlnprtwy��h
va�'-bcdeg��ilopswen:�dXao��aFngcora��gd�mate	ih'sd[vrssR�e��ir�' ?-�eY5isile�p2�c��api�un�'"*nslDah)�i3*e7�a}et@	uJ'�e	isaHief�i`�napuwhit�'�a��auikisrtaeilhpkPwpGzeE'-ano�rs�khuo=u�?w��f&uvM�namak	bceiklmgo�uh�ei$Wo�n�'�u�'�bnst�'�e�lsm$a&besesm��ah'ab	eisyt1�h/Giaz�oem�nh'sr��s
a��bcei=�nouydhne/�gas�s��ghi
�er�sy�'raHMnu0e�ns
'hw�'yl�a
'-h	ih(eo�'He�s�oud�'i<s�cs��t

'abeimoprss/w)�b@	k�lrzY'ai�'�cn�d7sep*�aeol�elb�r?
uO�adk<l=�nrs�'}a��ls{it�'k�lnai1uty:nJr:'te�nxiZfae	iyos�'lxdre	isd�r�'abcd�egikn�4sta�u �yzg/�kmi dese�rar-k=zr�eo�yor�i	�'aeil�osy��lnyi �k�ln)�r�c�6tbepileyh'[nsr�so's
'8�e� ihta�)s	�'abefiosgsr��ud�r0tuc�lng�idj�r\uaehidn�]rsbak
u+ta�@:u�u�sn�'-gsarlmiusz
�a	eGi
�a
e�i�mtsoI(ua�uh'bsVFa�'is_�mt�'BLi�s
�'-aei0lprsda[�n�sn�s	�'-Nadlvrs/wrecord	i2eikJntr^miy�'�pino�r�cNae	id�r�too�m�@tYt�'abcdegik��lmnoprstw&z	�'Vd�lmnrw=zzasala?�tV$ant��ei��u2�nuO�ata?�ea�e_clC�o��uiy�eg<l=�nr �a�'sd�ese'��tf}m�n�fei�nn�gach'a1�ksd�'ais�gshh'�a�e	i�'��os�t��'a�o+s��ua�eiy	gl%v��e`�en	ix�tai�uP'l
�'a�^ei<l�"nsB`u�y�nr�'e
�is�u}yEae\li[n7rd3s�4e'�ehkmst}akj�e�'
�b�ef	ims��o�a�Pian:'e�io'�eeiy�'d2xf.!l�rs�e<ln�$e
hgaee\�h��istum�rcieiloydrh'd�e��isemali��o�-aeY7nr�se	ih'd�rs��to�'	e!Pistmr	�'Agmnprsstar�quth'	e�ix�os�e�o�aQu�	e<l=�nologi�o�y�c�eern�'�as'�adnJs��r�el�i?�y	�'-aei'�mopd$fe��db�tl�eyd
hrs
�'bcd�de	i	�m�ns��wer��mnomi�yc�e�s�aa��y.�ls�'caisliHissp:'h
�opaiko��v/ipcd:'aj'bcdefghiklmnopqrstuvwx�'-bcgh�hklm>�prstzleaf�v�!aF�ah8{lu�C-Tae?irs�'\ls�pa�r�'est��t�'��is�'-�e	i��m҅s�ow�=m�'-adZ>e5.fg�+ijl_�os+ydgjtosruo�p!�casY�seڜrta�iw:�arocpash'he�ws7�ees�1s�ld�De�9h�i�p�'�VeisOtm7�ellhtu
E'2�ins7yeiot2irc?�qaC�iol�i<l7slo.r

bcfglmpstaпb�eormSpa�cth';�is
�e��rraph
�e7yogi�y�c�e�sa�inia7cp>ahoriolS`e2libke�ili7s#�teneurJi7scptienc��t)e`hr2e[�uonic�a	+sm��s�'diss�iy�':�o
Fu
�'-d	imnpst"h'al�isyge7d�r�Riy-ween�s-bbwo�pe��eop�Rp[e
's�#eho'"�eY5ital)�e'iDcllXoucigal �perra��nan
'glrn��b�ohtzat�piron��i
[.X9ce��flnosucdfgkmoprstvw�xaosth'Fe	ismnump7sunticate��ieY5isd�rsy�uferenc8�eY5i��r�DyazIiouc�xs�Zin&�in�.kJa�eramp�'Y�msh�'eis�yd�r)�s
�cn�sineM,sttaeClcjnrtke�it@PeY5ii�cdt�iFeri�yc�elp
�sog��i�yerat1�eR�i
�oah��lorth�ei7s�y
�ce�nsRzNe�i�tontei�y�'d�rscn�soh'gsrap��hrt�a!Sei7s�neio9&s(�ncmes� spter�f0'yPsecor>>dac[�lo�rp8�ei
�cne	hyP%xpeY'swC�raingelis
�m
htesf�w�eiunon�'xQas�!aork`�e!i
:'-��e]0istu�yt*aa��lr�ret�'st��e�impera�e�ihot�t~@gabe\�op�uҘz�lra�iriou�;s	�'eilostuY'drs�'a�e	is�'$Um#�nst=�eut�'s��unae�rt`(e�i�'sM�t�'rsai9lri	+y�e<l=�ns��z	eGiBa	e�i
krs�r�'-ahPcde�efno��pstu!�y�bcn&�x�ei:�oy�t�ct�'�e	i-�rsei�o�/rsdnr�c�'t
�'-h�ef��hil�"nshearϻt>�onsz�Va	e	i�Va
e	ijoyngiR�tb�m�t��xr�aBxo:'�Lae�i�yrc*rsseC�atecb�n�rhtiWtei�(oh'd<l_	nrA|s-lno-�tn�'J�ae	i�lsd�r�'ae8qh	iosdGc/Etdr�'A]fa�hra�i:zi:�o5Mrtihu��a�eidy�i<l=�nu��i
ar�bceiW�kmnoprstb��fhkmCnst&i��yertaziih�i��cog�Slen�i7selu�nb��nsratu!�ltah�k�'ya�{k�'C-a��eiYls~gn%�s�tagio�uVb�lt�ei�(on�oveE�llog�|i�y�''�astk�wechLnsichore�'x�a:'aeioy	�'cf�injp�Hrz8�e	iot��tor��m:'�cz[voY'�l��nstr�i	�'be�afVeg'�lYint!!l�'�rsori�ya�elh'�i�lssr�'�-issz
�a	e	i	�mt�'Ois
�a	.e	i
�F'cqdlKeianr�i
oylosttacl:'taei�l�Ur}e1�t	�'-aeiosyd��tri<v>VbC�mt:�eForiArc	+xd�e�rsc�ef<lmn�s�lulart��i	ryoni�y
a�e=�e:�gstj�e:'ach�ortnM�ai�uc'Pahiy�e<l+�n��e�ya �o�'cfgh��mp8\rstvhy'lor�dcli�ctnluorBhioethy\lon�'J�a�seydra0i�o�ldrocanna#�bl��oe�rogiac['ty8\iPyllab!�ilh8�l��aen.Mhtono'?�i<s�ei��okes
Tb�'a_ets�c(Cnts	�'a�b�ei0lM�rsu�ln��parl7�i<l
�a8�e	iif:'acceioruwy�zcdilmnrtu	�wykerjqa�'8Qd:'Vl�sa�eil�qm}adom�iio[u
FuphrAyes:'li�n�e��g}hk}t�e3~f	i#lsgivin�g:'gTpomi�7n'cdHlsvh�'e��idrs�'is��sD�tma2Usturg7ei7yQZcs%e�n. a"�bc:�e�filmnors�tu�wy:'dnto�rt
aherr�'g�sDRoei�'g�soBMe	ica	+sl�i<l	+sa7etIkl<�rvis �ma8�eisgt�nstocl:Ieel7f�vh'c˞eY'cdlprsra�i�cttolrs��itateiTci�a&Euogi�y�a�c�ehior��l�:ras��tei�y�mtic�aC�i�e��s�lzoph\4i�yaemopve;�i�yutic
�sJ�a	+ss�a'a<bf�imo��stu�*wdHlrsv��bfto��rre00ifn�on!�p�Yd�t�'8oaios7coٻstnicH'	scdefK
glmnps�ho�[uyna�{ml�ae�0corY�muminescen]�cJtetFer
�iyuc��ldhily�laF�sl^a
'etsi�ta%�tln)�pae�ipsuri�useuia}s�jnalo:ynia Okn:'$�seEr'd�l-r-v	acegmnrs%�tmin�ek
h'-eh��i<lnko��shsead�ekiv�nnr�s�]t	e�"iseade7sd
h'Yness�'e�r�s�fn
Vr}uvMQseid�rsY7n�Bsh�'-�]bsYbbpl}ue�'�{bDhfshH�uegk<lns�'a[�isu�yma�Gbwjma[�mq�b-TaFe�{is�te��id�rs�stulC�adrsth'-<ls��cp�Lrars ot�'�e�oisyp�eO�iO�y't7dHlle�'dso�wlmV�nr-s{tue(i�'ssY'��ai�p�sstmt��i�s	�'a~>e2ino�pk%stc�xU6z�='d�eilps�tyfwi�o�e_	n2e}iE�r�nughb�e�_fg<l�"nre^�dZoh'gsht�'-3~f.!lspro��vand�'�efsW|taeiouclste&il�'dZ>e�is%�ohyh'*e?imac��hade:tnswdt�'��b}�e�+irSlssy�'0�esbo�'-�efpscdO�f��hlpqwom�l�rimen��sae�iңh��i�l�Woroanua�r�ahe}�een;c�nc�ooJ�rhh'*e	iqocfl��ve-ma��rt�'Gihlsy$lab�emntuwt�'>eisy�e<l��nh'ubsbio�ucl��s�tytop�ey�s<7t%e�gtl�.e	igh-o��pwtra
�f�uay'pss
h'�C-�za�|b�dFe	insmswh'1�ms�hth'�,e	isay'tcstcs
cdglmnr�styfWd�'1�ds�'M�-gsrKei�ste2ibp�'�e	i�-nps��tri��nchr�'J7e?isd*ker
�'-bc}�efh*i0losybo	�xio};urd
'̘ss
�l7xlaosula�i7ys�hea�@du1�shtoS\w/oC�rIkbm]rs�agoMdM�tmjoa�c��rlmrsu�n-eiLo�u0dn?�eiostoBrkit�vxrophiicUnc��n��e�'abcdefgjklmn��oprstz:'n�ra�jn?�m�eiourT/t�'&Cia�'e�l7s#�oM�rE'-ko�s��t�'-eY5ilsttY�aouck�')e	Gi�sckH'}e�iJsdrt�'-stap�'-�e	imsyb!�doɯof-l��eE�a-bɥoneinshYl�Zna��ockt=xonder��o�aʍbdei�yl�9eiyeGr_swinIYk�'dlmsw��aBiaw�rat[vy`�e<lnJ�e�g�'-bd*�mn�prst�9b	iXareakFessan0�m�'�ed`ns�Vzf�'s�aZ>e�isehr2rt	-e�fl�"n3<r	+sw�af��k~�li�s\�tnr�s}�e	isy-��ku�a
me&Ei�Eu!�ei7staV�pb�dv'eY5ilT	sth'a	ei&msVbtg$�r{cnE'�7e	h	is�'abei:mop�su��eV�re�orur�'�e	ilsa�`i�kndh'sb�ek~@t�'-bdklop�rstwtx�~zachl�oswnd-m	oons��uo�yna"NpcehK�pa�Alrv%e_i�a=�aorkn.�ae[Fe#eiy�enes�s"0u2a%Ciceh��l��pt��arl�vare
7d�samp)esa��bo'�rd?n�e�i<l=�nc}nrt\�urTa?� ?'ܗe:�ohHxyanih's�7tro'ai�'-acd�efgiknpstwyg��op&�tl�Ea�a��l�'(�rD�tM�aer�'`�bo^i�'��eh�ilsseiy�e��n�e�Znelr�'b5se	is�t�e2�ie	iy�eiy�e�l;�ntM�ul�oate
h'7de�rml�'	�e	�ils�dt<�e	�iy�'ak"eiosy��ln\�agnab�`ur��e��pa��r�'-psty7oѼt-e	i']l�ecdr�txan�o�'�jas_�e�ihOityo��e[nP'p-ae	iona-nno�dmn�uis]~u�aYeh'C�de#ls,io/Imlo'ean�sXah?�s}a Or�'-a8Sbchilmtorstufor-Y�thn�'i�stact
Fuo'Pahhesye	i�'d��rsa�8cl�:rPvHxnlat�ei�n�o*Svei�'-d��hsd��p�en&s;�i;vo_a�e��eArilsye�gi�'-Udst�a�ltsa@�zVr�o:'a�ci
�slLonT	g:'Ƨp�t-abcdefghijklmnop?�qrstuwxyd5jods�')%isyt��o�'in
Fst�'	eimsyC�eng-Qf�aistp�raeiorycgco�'6�nsrmo>�rTAa�n}tggan�'	eisY7n�s"vu�'3mac�?koqjsunH�tatZ0apheB|rue�.vmVew:'8ad�'�i']l�y
�'$�cd��fQXh	i�-n�rsfAu�ess�':aeg�Bo	+sthe!$r�e	i?ler�ol)t�'-e	is��wd�rt�'�e	i�rstto��mae�iouy�sn}yh'sdnss�'iss+�z�a`�e	i-mmnrai
�rga �wo�'it��e	adekls��tuy�gh'��dran�banTtieno'��e	h'-b�e?�g	is��wb �gh�rri�do�Kun!ot:o:|ez�a�'=x-ab��c�efkelmopsJtq��hs�6taKvw:'elCl�'6�aZ>e�i��lo}�s��l2yool1hei�n�itygOprrap�hk�i}k�'a��begin��ost2�y`Yl�'-�\adV/l�rs>�dh'aZ>e�isu�'�nr#�ieu�i�'-d+�lsitn-c�h<iwi�s�'tac�e��gn�'ist��iy�'�ae�'7rsio�ul�'lsep0i=cr��i-dklrtwwh7	ix�y	�'b�e	ikms�ta`�od/ri�ta-UkapDdwee��nh'c�eh	i"ls�'H�abc�ex>ihlpsy��rSaaXis�oiy�eo"o�'-a@cdefgit�klmnopss<dhuln=uea�v8Zo�zressVziHe �krl?ialla77nacy�r�'�"asesMsa�ei�o7n�snC�no��tglnp��rogi�y�ce�symii7yh{Zi	e?i"l�/a%�i��o�py:'-tuýr�'abcefimnopqrstuv��wty�hKWah�'��-b�e	ileaS\rig6ha#,d�taH'�eenth'�e�iFosa{ie�6din�
dtei^odo�'�e	i	�sdS6i<luKWae!i�'�d��msaei��nn�s}s�tcd��nr4e:zi<l=�n�Di�o�'eiosu�'lslin?�i��l��oilnse�'�csiS�'Usg:�orne	i�os'�ea%�lchst�ya�'(�ni �bh'�~-��e	i]�uad�a�o�'ae	itostl�r�'	�ei`ls	�nstza%eto`�rN�a�i�ya%etor'�ss
'sdms�'isc�\seidA&nrh'}�e*is��ncgDkl;�pr`?st�ah
h'-Taͫdeilpswy�X�aj�stnd�L-uG�d�oyp4!id�rs�e<ln�$e8g2eiYina
�o7d�6pc�tre�e�o-fe�ehh'y"-ei<l�"nsd�)nr�s�en�o�'�eimnstns-mt�'
�isya0Vl�a�ei�;qi���h'e	i�osdU
r
h'-I[abeh	ilnprsb@`chlprTua%�ei6Hna�Cto6Hp�#a[5odl��r�'e�{ils�dht<�eingn'pse�Ma�eg0i�'e��h�ils*e}s�a�Ze	�ZcXe�f&�h�mpv�weH�oillat��h��ol�Zea�\eioe��mcg�n
�a�ioslogi�y&�c�se��nipd�'Ushlf%iasm7a�o	�'b�e	im�nos��oake�;r �d �tѼhm	aei�nouwybcdfgijmnprsuvwyecula�e
��e�rtehiktty�'
ad��lx�rstyeoa=o�'elMvm�'te?n
�'=�-b	e	ile�psy@w3�a)eesUisu�i�'aiFosb!!t�Ai�l�ov
eiu�'-d��mn�rs
�i��oame�'Usc�mp�wanaBteoY~p��ntion�'lZasAcafl�gic.oc�'-k0lsca��l	e�{iei[udi�y�a��ecJ�aom5�e
�iln3pt'bce	iswlaY2za�y	'-Tae�i�Al�msFbspotIItde�r�'shiS`pph�o�'osr�''%os=ae�<c�'clmps��wai�ne�isd�#lh'e	ilosdc�r0te	ih'd!�rslinC+ei�ns	:'ck�gmnqsz�eOth0�ei�yesuil�eil-�tr�ziy$us+�t$uz
abcdefghilmnop�9rsuv/wycltt�e�iFos�plarn�|oaeloruuca�s�iinde	isdntct]�a�luRd��dmnKpdtuctO�ai�nibp}�e	it�'iLoso{�n�l�sruc,�c�pxu��aeiour�'ae%orsw>Vb�l�en�a�e	ignxu1r��i�e�irmh'a	e	isVbtiovn�'
zas�sernd�e<9ier
�e�issess�eMi@Poiupsm�pJse�^nto�om4�ae~�fstnc8qte�i��yto`�r�'�eiosnovn�'�a�e	ise�*ih'<l�"nssaiout>Ta�eiFon��o*Svtel�rca0*tc
�n,�eaeiou7n0r�m7ngstra
�n �tsiVb�oR�vsta	e	iVb-lng#(rJrt%Uae	idU
rsationalh')lGsc�m!�ne��aa�[hilouc�!ritfT_l1ranth'a�e	isJ�b
�t9�l��nrs��wt'n[ae	isd(ec�r�a�eite�"rehxual�'isFs\tipmc�p�sen��tbrstantiat	�e�i0�at�aerssa8qel'�lti�st�e�jilvania�'�n�'depso@Poz�ei8�oa7i%CuTa	ei)ns�[thoo�*tal�gh�'0�c�ev|iyma�'stai
�cs��z�a
�e	i7m<�ae&Eiolrsh'D�e�{ilKSosD�eingn'F7ss�vtHae	i)"tlehl��o�'nsAi,�oabefklmnpstv�w��ycdsth�~ler�i:�o�yh'	i?lDfmsoun�'Ta�osrei�y�'-d�rstr�No�en�'Ta�ei�ms�y�en�sleing�k�'sd	ilsb�tR�ei-k
n�/o�'ks	eiofenlis�'-�e	ip<wwor�rabeoutby%�olO0eiy�e,nn�d�l�rl�ocdth�'ae	id�rs�'�e��is	+yettg>e	i�'T�h�o��ai�dcp�s8Dtotv�has��sik�doe��iOo�)labcdefgh��klmnoprstuv	bc��d}3g<�ln�stHxlC�ue.tg�lula�u9rTth�Jol�Re$�oaeuli�l
Fs�'�s*
lnt
a�e1hae�'Jdseh �ik�louyh'n�Iprtenni��aat�oilo\�r�an%�aF�ooroemth�a�=yetVhLlmt�eo�*nom�i{o7y�'eiN�l҅sydr['�i7s�y�e<l�	nTsl7to�rur�'>e�ss*ppcl�ei�c�n
�se�@i��ndn�rs�=n�tef}i��loc�cWi��ch'�
eglorse	idr�'-�e/f	iss,hyceriR�dnometr�Li�ya�mнpe�hda�bilot^�en
�e��g�'�eisno�unh'xfsW|t��b�gh'��aH�be<lm=�nos$Zu*�r(�stMehSSropr�i�3e
i7�dnt
�ha�ei*?ko�'\rdtad�'C�ijcir�yotol�yua�dz�m�'
Dd�ols'
x�'a�ehilopstwr�%tthon�dgta��aei!�oyh'ds�txh'�^ecnat�ei�n�o5	dHils�'eY'ei:'d�rgwe,n+�yiOtr�eehotyct�e i�TosY'a�'�w)�d�matnltllab�i��le2iou<l=�nsr�sn
�n'7sءrmnpvh�'a�e	isl`Vni\ls�m}�ti�Qra�ei^@la%�uh'l
~i<lbcdgiMkjlmnoptu�vwyrgiha�e��interLa�ik�dlo
d�k�all�'e	iosdy�'6
bsp�'tesNcbmpeXBle��i+s+ddssheCKip�'	e	i&�s�ehiop�io�y�bc�s�'a	+s9lnspher[ve�ii7yiXe\lYnh'
�hs�ztky�'isXtt�m�tbgnpstald+	oe	i�'-dhlmssho�ohooostteY5issdr>mc��e	ie��i�'+d�rsesrh'>e	+se`�a�'�mssbe�iss`mrsdl�'	�e	�iZ�ls�':essacdefHgij<lmnrstn�c�t�eku�'eY5ilsdte�re	iE�o�LleN�g�ity�'~@ah'-d��l�nrC�sbt�l��of��a�ln�s&piablp%n��uavxn�'e	is�d�rt�'-	e	is��ccdkRa�]hle	ih'd��rs�'e/f!isUd�yrJonst	�'Nae2xfisw�ydLe(r�_en�e9gorthiy�e�"nh�'3~fis� nE'�Z-�i�op�s��s	a��beiospu�EwrH'eisviTctc	�hnsa'JstsstJ�smots�hlko�nvsngkhB�aknemԟoa��mM-l&�shy:'-abcdefgiN>klmnpqrstvwxwhiɥomrta�no�?r�<aea@p�r
�'a<�be|�f[Kims�)u�'sls�'d=�lrs�'cos�lulaHe�io�i�s�uts�uk�su
'e	isdr�'e��isq�os:'Mdt�'}�e	isyh'@b1�gs�'�tails�nr�a�\e:'a-e�ymab�rtai,dbei�mosualr�yr"ueY5ih'-drswdriyedrs��o�'�fs�+e
e�qiscen,ctdti�lrBMu�'�o�s�'l�ttu�'sUuh'a��bҜcdegins�'jbs]Wi�r	�'�tad2xfl�rs]�ue3fs�m+9asut0a�es:'kcr�ns�'as7ec5t�'ܵie�i�yl}y�'D�e�i�lse}i2�lpu6lenr7�cYnwTTang�a4uabd��exfgikmnopqrt)vnga�in�aio'Tudn?�ia�ete	�d	h'bcC�f*?j$�pss�t��ohargei
d�rss�'suc$�k e��in�'tg�'eim�s@�s�Ny_c��sen%�ieonrisCt�ii[vlh'-ab@c�aeikoRprstbs<duoY�uuc*kbhrl?ouc�l��k?n�pe�yf�uv�f-not8Dio�n�ja�aseissn�Jttni�tu�o
'eBile�'-dnsˈdnec�Lk�poec*kc��hksa=olnroB\o:'tyo��r�'e	isd�gIr��aN�locQk
�'-aeost)�ut]=uknkham�eEulatg�rr�'�eis
anhiAp�i�ei�lh'nsaluo'7�aharenth'ed+so��'�e+sM�'�3�anM�s��zaeio�pcx��'dg�in) sHtdle�i�'sd�rss�gaelnrAkdn�rsehtzI�'d�il	+sV�ya�VledCAeCKu�e �ie	idr7s['	+s��fveh'xfmsson!�ttO�iyh'-xfO�eO�fO�nO�oO�stPhweO�onyk�p
cdglnrst�xz�le��h�"kdlO0e�9i�y�'G�gs}ail��gth'�e	is
�'-�.ef?g	ik1�nst�uloYwilsse}se#i�yi�elh'	e��is�yth'	e�+i
�osy�'csthh'�e��iye�bidr�'=�e	is�yz�ez�cl�'-fps�*d��e�.f��hstw��it=eTFrh��i�oi��r�ahey�eS^e�goen�cn'yoRr�o:'T�bcd��e	i�klmnpr�sh	ofi�Wle�o:�ntrpani�uh'�cE-sEadeal}etlY'cm_fsasdgtoT�uehio�'cd}�fswast	i+sO�cetsY2trioteY5ik�t�r+s��to�u;i�ocfY7n�sa�cli	ry�sc�e�'glsrapLGhogi�yuHc�esaeonn�tio�yK�c�e+�s"zs�uaur�'sQ�u�'	�dtes�'l�nsY'ean'�s�iairt�'�i�sziHWkg�a��te-b�����c�-t�?�rsha8v:'abcdefghijklmnprstuvxzrcwM-tai�sun Ogquit�i,wo	+yntu
�n'a�clo�rs��y'��ah�l��ad
�fm
�pgpuf&�r
�a
�i}aoԓ'lM�sogiB�yJc6\sahlnܵdiy�e�f\l=�n-lo��o�fg�hungpan��dM�'�a��irua�til8De8acl�/m|�nrstuvyer�'
)a�osakm�di�ck�a�eterx#'seirriomB|saot�[e�ua��ih'-|�bcg�dfhlmprsvi�h��teo�~rntrifugae7l�t'7d�lmnp�Zeservati�s
fvaist�mil��ti��geGi��aiocroscu�odn��etan�eo��r�
a?aotun)�uK�i�>oructu-�r��eiol6e�l}�reE�ras6�n"�sbilpaeiorJ^nlr�'lsife�r�'srtlic�ai�un7sa[e7lta��eW�i�'eg�se�'Bxos�
apsa��uh'Z>eisst�n?reen	tԓ'-abcdefghijklmnopqrstuvwyzeng4�lbcdefgilmnprstuvwab-lorsstHeh#�e�ire�vm�bidg�#eor<bachkqd�Jeeoru�~npta�eb�i�lmumpod��aal̳ni�%sntn�a�eed�~istom#�eiev�a>enowlec�duai�~nadjouv*pres��s�Ua<\uvp1rlter�~aeinrt��uti3ssedl�ysthe<7tf5reioct
e�ail�/iF�rgre7�s3d�railtr�me1g-kv�=n�io�gc]�w3yerY�a�ebeiop��uigtvu�i'%oi��oalen�t�2nNa��cr�Itli�kfainstl��y�moun3cwerTa�eici�/poplog�e^>aeratl�s�iiV�sz*ieociat�eiveE�l�Anap3v��cri��agmt	�y"4u�e�io}�rurZ�eic�1uh3kpsaHemiA�raeiui�=lmR�r�b1g�~saa��mtaer�%cinpa>en�~s3d�uaicti3�vbutha�e�dgt\mheontic�~a��iri<s3za�?eoila�i;�bi"4dakr�ee=�nssaeiloru3k.�lnpsTr:^n�sti^�zacfhklo�nrtuabJlpa�etif�uom�;iittin��golV�dnown�si<te�fvB�aFe*i�?ad�Znk�deioua��m��s�%c��nk�c8os��h�iVll�rsu3wom�e!isndi�eaeionc3d�ha�=k��to!cdg3l�=ekVecdfnrt`?kW=gf��ed��lk�d<i<n]�t	aehilortu�eclnpr3stuled-Y�fnoiy�e<lnn�uii1�pssta�l>e	iacelog3u��hgo�IrAg��salnr��seb�grso3retmoT�naiin<l�n�t:faeir+ilnpr��slenge	i�adge*ipade�ra3gi�m3tcteris>e*�t,qs"4tck�e�i7svalrou�sistv�e�i-~arvcuA�lm�=cilڤi<laeioudis3mpsifi�a�e�'aVnsnrO$el=�nisy�e=�ne\l0n�dsr�sةm��pk�am?g<stc�uh"�e	itt��e	�amJilmnorusvlo�aei�~c�m�n}�ru�irb
�efmp�ei��nortB�a>eeiounrt['>esciali7sszִaNe�iִaNe�i�~tC�nnicat�eS�iaelornio��nnt�/sitive\lYna�~eii��ncmate	gdeRnun��deohse�'n�/sm��i
cdfgjnqstvesairv*Oanh'
eition�a�eio��u3n܉rrma�ibXle|�nvsuga7l�t��e��uceiotuio"4nu3scr�~a��dli�/dirtutionaly�i<l�wa5 um�e�/maer�:imi�/nnst�ita�eb�lolvl��a�eerso�ieinrtion�"at�e*Oinm8c3klprerR�a�dkreouc�/ltha�eb�-o�pn`?prttj;a�eaBtg�?hae;�io��uc�Zka�dvstUba>e`iX�sw^�d3ng�i��ulrstti��uvaPb3t�el��tto��maeioruZymr3tuc�anHet
�abcdflmnprstvatNa�eeil��omFidp��aedh'\l�sherTa�e��a�eieiac�ntNae�d<l��n1�eiveܔr�)aocn�rstr.a"4ien�=d-abcdefghilmnprstuvw��airsnves4�te�ahpea��roriNresent	a>eehcret�qaerif	�fc
gp}Hrhtieve	id^@m�rsZ>eiss�nvpre1�ce�Vior�wl�d[s�e��iusihahlourr\�i�Eaaossh'el�mth6e[Kia<fo��uvt�'e#is�r�teorvelop�e'm�g-nZGedmsx�euphlasisJeo�yti/�mplX�o�oelorudeՄdoow�o�8anard�e	Giaor�r�e	i-naod'sYVu)�u��wandF�en}	vvest�e�i4�m7saeiZyi
hydna=^t<�en�[pe�g	ia)eio1nne	id�rsx-seoatbhurish�eme�{naeilori��n�r�syd\�n	i�msrform9(a>e�i7snns�e?iam�nyp\{wulat�e�i�eio"cvilc�ed3�u
�aeprese�n	cehik!koptu"=o:�ac��ln=\r=^t3xretar[�i0�yeioԤrr��i}5rl�o��rt�dgzn;e��i+sed�lw�e�i7n7secnifi�(c>e5dtam�eorufn(tf�e�idaNis#[b<fc�oe�un��g)"drh-fahok�le?iin_g�n9�o�wst�e	Giiliszae	iyLb	td�rsae	iyLb
�td�rsalu	#a�e	iaehiort�yiha�_i�nelm�e	i�s};nry�e�oruksli��otZe	ik�tceiٳerv
e	ira�eb0�i�leocrt��a�e�wm3r�ne��ilo3pad6efglm�nprsvy�gferen�fte�3n�~s�~ui3m��nlomatic��a��ecgmprstf�ehilorar^�gp�wl�?o��vimi��n�=ua3yut�	e�kuoclA�i3vi�orunguisܔhai3�c�gbr3bec�irپs	Nac�ey�g#im-nuum�eesti�/c��baei�ipm܉a�sn�=keltay�nl�t"Di
acdlmnqrstuvxrst3nth�e	iV�ls�eiy�e<l=�nTa�eono9�miuf�dt<iZycaUdb3tec�tbopaerra�?sl�Glti>9o��hloy@�as�emOhe	cdef�Ngjltv�lru�kym��bio�un�/g�wrgeivsvzorcehiTa�do��yighten�e	i�mehrpriZsus�iiTa>euail	�eils<z>e	Gi<�ey�Epv;�oG�g��rcso_'�ren|�t;�hlog�iaeln�gugeln<l=�ntfu3hlacepti�cgmg�Kev�ispeiuptiona�b9ltyJa�e	i^�srۻcW�ae��il�?oruc��ntF�eaoiܔn<d�~i3r�ier�/gen�d+�uaeiloru	�dilm}nstv^�z��lC�rth3~fte�riliar�Ei�lhk�tio"4nheo
�r��moru0�ar0�a>ei6Ht	adei�lm��nrststib!Hil�e7y\{h0�u��l1gi9zn\mtili�s��zln<rtxi3l��tW`a�d��i=�n+st�e*i�a�we	ia�eigps�tv��gpa�Nbh��i7yo}�r��un�Bcclruus�e<sdloZ�w3ceg�kmtseeݲaneil�o�a��tvB�a	einMg�a�eu�/lh�5iuc��ona�,tk�gc�n܉aeioueq8�d��z��uend
�eiS�l�sk�cV�zitfui�llnrsfillNa�e�i3d<nl��nsRiyaeiloruilvnlsܨiy�a
�l�@aneit٧ra�;llema"�nft~{ea3um<zor
�odvliyD7e=�ner��na�{ouc3dmste�i3�fmatic��a��p�eif<i"ydZga�ec�ilr��d-Laaeiouylmnprtlo3w��pd7g�e�+i�lsyomRxep�eGiydml>nv1e�ef�gio�uni��ovs�eec��ha�Pdelrslr3t�eth�yfiy�e<lnes0�sd�i�-d�eifin
|gp5.fa�,eR�oc�lita��tdnsV(t��d�e~�i��d"gto��rl;�mk�oriyd,enesK�ss(re�im�nr۹artHeigpi��ehZ�ea�&bcdflmnopqrstvxx�iae�io�uy
pm5s�fl��l�d�rcl	Bei	In�seiHantif��imnorensvOiectionalzi)l�aio	ry�a�c~erm�'�ei<ls�nta�i�yria�na9�eilterali<ls
qm(�tngual�i\lumsZ�i��taopgina>e�b�|tJd�laelor��i��sa3dc�lhement`a�erstanct�Ven�ie�oss�eS�i	cdfhijstvor�ip<�eustria�Il��elou��erma�eti�8vaibi��tbit
e	Gitial3tivs*�z��uptui1�rarlnl7s
a�ei�s)�by�tt�i��u�glܔre6tulnrleic�tg%Oen�i3d�qteprst#�einmRgr�~eupteNi1�deiZ�o3�s1�tn�'�qdi�ss �z
�a
�e	i-m�torl�t'��aoces9su�seon0Ty�eOieosTAyHrxh'\unh's�u�'aeis�yr}siy/ah�cVFd�ms�env�zaelre�vn[~t�Lirsa�e�ilh'i<lss�t"z
�e	imNt�B':ea��ouc�dmk�e:^mds�gti<l�nfiB�a�eeinm�pndkel=�nsr�sGciy)eow��ai
hnng<lYnssaeioub"cd�i�Om�p��sV(tu�w>�yel	�e�il�eyrSl�cna�st�vdrV*s�vn�	e	is['7ste�ir['�e7s	�?bcgkmn�~stve�?n�~h+�aeal=�nb�Kliy�eh[nooNRdsbi��t�eZjkera~�r+�ae*Oa	�dak�cgovksedۭ-e	idnsTae	id�lcDkaeiou	-dgi��kn��prk�stn�
intain�a)ealnssgepadiy�e�ne��idreI�l�dkred�=te3ichae�ible7yd7s	acdlmnrstns	it�uhania�cvsvzi��aA�co�tdi7cBxoorݲationa�eblM�eci�-it�eo�rq�hka�@ehrodi
xclnst3xi�tdfu	glst`a�eakB�aea7nb�-lig�ad�lnrtuveܐi�1urva�Init\}oal
i�lthioer�e\l�/v�rn�rtha�e	i�sTa�#e	ifnrstzf�.lch['�^e�imurin�gical�i�lYnA�i5Jzaeo�u��imtvNaeTadurali<l=�n}	s}	zig/	acc�eiress �aghbourl�Miy�;vtuiceݲad�Gr	��abcf�iprv�wxjlst)vectiكovہicet�@urva�e�i�bn8truct�e5&iarكi/Cucu̳pfe9Rin"*d5�s1ei�ptnioA�ni�mdgintJa\}ei�nani��zginal�i\lڍahodox�lyi�daehiloru	c��d<gilrst3vkaa=�e	isd�~nr�e�i7sa�=tad��el<stllseon��a>eiame�bni�s��z��steu�ir�ec��ertiko_	oe�rse�Zgorple�i
d7scfstei5~pvUba�eo�|u܉r�ouadS�sNa�eur��biylosopIxhsiJcoloIxgcڍgnkt�e	i�sur��e1�nsaeou3c1n��yasa�e�in=�tu��gm?gmbNa�ee��ilps�>wIxti�gl�%sti�
cular<t�*i�ewsaeioctic�isa	�el
�icdjmpstvedenteVFdicta>e0�bud��iedi�;taored�nsse��sces�uri�b��n�Or�e�juen"d�te�n<cno�vctispݲa>eriti�s�z
bcdfmn��pt�uvlemat�/i�ie
uu.ce��is�qsi�~p�sounceTader�~cs�t7�u/	ae�ji)�osdnbnlicsi<s<zh�a�e�ic��itual�iuaeiolnified~�ltif�insc��htionB�a�e�iet
�e\lYntyJa"�e�iaeiountnWv<kso}	m�e�iacd!�efghilm3�npqstvwcdlshtablMe7yivִa7e�daI�i�yis�t3z�a>em*�tosna>e*i�=burin�geoi6vpvvgnr�9vnisz�3a>e�pi+�aZ>ecsilha>et�r�dde��ue�me1i�or3�uren��cige�rei�{une��r��sea�?rnfo`�r�~aei�?a��n��ae��va�eiurkTa�ette�i�dn��eaeor
ian��tt%Oar�teosentR�a�ed�guu��e�~ieioptarrcvhv�XestiLa	ilܔvo/Cnh'�ior��raii��n�co��uu�ecei��oa�rl�e	i�e�sar1�dfgpv��lhteous�l=�ne^�nsr�s��amJlma�nflsf)eS�iyacehiku�lmnoptuwyF@df�ilntv�wye<lsr�sa�=e3t)�b�krcRiti�kf1oi�-usfa3iyctoriy<l0nn�i�eo.ru+ra�ehirl�%tNaeNadeodsusoenti*�faeium�9tbIlv�ewpt�e3xuptu��li�Inacdeglnprt�wxlrstwc�hona�e�b>�lorthH#iydtu�_rX�u*�d�im	+n��l��mr�eef�Zlct>e�i7scionsc[ji[�sstaitiّoti��si��m�Ka*�ivice/	a�dtle*ii�dKmsZOei7yiXesaeior�c<dkprk�vB�ae�3ane�d"�l>epv�eYnalܽt<l\{teo�p��lcd�ryHki5�unkyJa��i�fgm�n�zh3nt>eliy�e_	nplifviilfl�ef�u�ai�la�=p!�rcsilp�~ruiablitldi��v�e��ch��iAgnX�rC�daeorZ<n�rac��l�nkB�a	iit�7afic�e��aik�kr�tl�ett	isma��na	u�yaeioruy	b<fcf1i��mn�p*r*�tleyYn7r5s�fda�ra��mrdiye<l=�n	�d�rd3s�pi��i��cgm��n\}rma�tula��tppsspa�e	iaeiuv�i�=pa�?s}	kvmn��gcn�nt9�cdf�if�ey`�lbcilnprs�djmsrtuA�ge�Prcitri�b�Idantial3tces��st�3a�e̳lepr�=vo��rrtTa�e5&ie�.fpv�iaris>e�i�oecptey�pec��nte�io�d�>aaeo��yer�t�vlV�lmnsmpe��tath6Aeis�gichro�ntne	aehioruwycg�iV�klmn�Ep�lr��s?u�x�*t��g�e�k�#e`?g3n�alnstxݏla3dVbnte�the�Vrt��uiornk	6ain3hg��rught"FfeioaZ�dteR�nfti7y\lYnc5n�2cd�elm��p��rsti�ye<l=�n	�dr��s�e�Ge�lڍruwcrha�eb!Hi�l��iar�/daeiouc�>d�wimnpv�ie<k��msflpe�o��rat# a�eorvs�Zt�Zpel	rZ>e<lanܔt\d�e܉mdu��dsbeK�lstsr�st)e�iw7yortI�hh�'3~fsCcv�r��tiVls	ipvr)eical
K�lkstal��hTa�e'?uitl��ie��raeiouclnrc�]ii<uA�dq�Gu3i��ny�imJinrt�e�1i�[is�e�iyJaA�o�s�t��c��il�
caehior*�g��i�l�~nr�%st�v�7i�nryantpa�ec�@ehNa>eifadil5p�nra^�i7ybl[~e�dgh>e��tcMlomen�i\lYn�rio�plesom�[eelnrs��tl��dl�ein=�gsd�k]�ned8�de<l�nsr�smnruk�v ated�l�=kln̳rtdV�lh�7iynd>e�.ainl�tskioel�d"k�.i'-abcdmPefgh�ijklm�oprst>(vwteom$"p-�Ldthe-min?�unisha�d��eraiin�gahou�XysNe�tucke��i+s3aZmunt��rr�.va<�irtNae	ih'd�rsa&fug�hrI(oradha1�e	ieioa�l��v��ll��dster	e��is�yo=he�e)�ai��of=�nth'�e��isar��keidrh'-cI�msc�a>�lA=aluass��m'�wth's�tn	s<taeio��its�e	Gi"�ag�svhth'�Ve�gi<l=�nsaVlosr�'��is_'=�acehituwal�"e�i�tP%od	l�ze�'-ss<dar"g�kin��rtdini�g޸eeF�org�e�ie?iF�aehiorum�prust
h'�ei�s�
cAgmtn	)w�enra>:e�ir��d�'abgc~@degil�noqstucƏelnaLi:'l�s�ai&Eu}a2Un
Fua�0en:'�a�ei.@ost
�z
�a
�e	im�t�e�i�yH'a_�mt}y�'pla`,sehr�'La�isarai�'elsti'�c	se�ih'dnsY'ac*�en}sUhi-ra-el<rTt�'s&]y�sc�dglshordat�a�eernib�ta�mphN.yog��i�yZ]c��tuhb�a�a�iulta?iicar�vigm�nuaT/y Oq
ԓ'a��bcde��ghimcncopstu_'bcf�gpr�Aij?l'cgVia	J'ad3~f#lnrsbl7eJy�
e�'-nsdfghef�:iriendliyiXe2
ne�?n�loa2�mer�'e	isdtcan�ccs�r��iarlh'<l�nFeisp�ye��o_'a; cefi�dmort~h�n�'nr<s�/si7o�u-n-13�8�6�2/�cleistz��a��e	ia�i�yrianh''i�sa�e	i��b
�tpia�'n�s:'6�i;se�pic$Whelr1�a�em�i<l�dmsesfoi�rcp's�_'
�ae{eula�'
hrsoricloi-�d o	eub_iek�'�ji
:'-asbcdefghicjlmoprstuZymna�iz�e:'cdgiklmnpqrstuxz'acissu�y�%nt�einon�'��eis�n&sin�a�ellat�ei%o,n�oa�io�ul!}u�a�eOeq�uairubrond�')�a�e	is�yi�ynaio�'se9lss{mp�sF�lan�c�tKe7s�ln�eg<l�nlori�ye,woro�'ac�zdehiklopuv#�n1nrre�Vm�'dnrstict	iori�y��a�ectz�ei�y_a�ei:'n:')�etouaui}yate�'�rn�'�e	isudinarian�'�~is��aad�sun=xc9ta�i<l[nt�e�iTuo�m
'yri�[e0aeY'cj�Ct�y�Vu�o�iru�'o3fuarrais�oae	ibt�lei%o+d+s��n��o�'-dhl�rs�9afor-��mte�i	�oulaHeopos�/e��i�'�eisnr�e�i�'acdegi�wnqors\�tuz�zd$�u0ai2Un
Futeo�'muMvae<�y'l�'i�ss"z
�e	i-mR�trb?�i�'�cs:'\u��ls�th�ein��gu��iqSa�eiod�n�i<l[nru�'*i�o�s�cw�yr�'��i�swpyuer��o.aje>Cgilmns6�ycnt_�oBwaaceos7xbntpilo�eyY'�c
hteޡieol7sla'�:l-s�dPgst��a�i�yl''u5�a{ot�oe"�ti}5nish�')Oe	i�iceio=�qstulair{�tti�d7s�'=clsXByine�'7d<sl��t$�i�ycmponstrict��iMoo�,tre.�sabltrh'�e<l_�nss'is1�t&cbdg�l	�nevill-eC�ih�a}n�'��eq��ur_'�s_'�t�u^aS[bcdeghilnrstxtor�'�eisHan��s��zaW�i�'�Cn�s��j�p	�rh'aeg�'εn�sbQ$msstur�7ga8Db7lrt�?i�einO>ov	ge_�eie�n�'�"bse]\imen��c9t�l�nacde�i�pl �mo
Fuv�:'
hrs��zque�Zz��r�'�s��t��ttzcdFui�Np�tr��oe�Cet�'esy�d�e�squ9e
adegiktnotubsPl�t�kle�ciFosd}st��erstza&�e�>bTt� eMkiueܵlea5.fa�cr\�sl+�i�l��eo/�v�gmu�',wos	�'��a=�eiOorsuf��ln	a
�aio�cloqui	+y�esJe-m�tme�3dr�ae�Hioh'd�rs�Qousl�n+y�e�0ls:'�e� iabd��gi�lmnorsttvy�'cntiI�r'%o�tda�'Chsr2ilu�'a_Je\�iorslth'Mi<lss�isk�t�?e�iuwXgateiun�aE�c9t�'�cgris�'_�e�i}n�r��d�ef<ls��t�zi	ry>Ta�c~ei8gmil��iMeiocf�l�^ne �ioulq�lmpo��sla0�i{�t7r�.to�tu�rn��ut�'c�e�'aei�o�'x�c�l�'�nntajei��cq�uuca�'e�saei�o�uitl�xl
ni�'ds�tcQ�f�no�lol�!on�'La�e�Qis
ei7sb�xra�'el�dtcg�$a�e~�io�'�er�aipI|stucLa�lulartei	�ds	n�o�a@Peuc Oc	�'a�ei�m��rsuo'�lxQabgY7n[�tuF�l�e�ir3a
�e	ivi��u�'ce�osth�'�e>>lr�ain��a�e	io�dr��aU�e	iViw�af�s_'_'abcdegijklmnoprstvxz�b�c?=d �g��lsnM�eruahnNapta]�r�eion��o�'Qrsrnu'�m	�'aehiktur�'�a��is	 ��'-sdgnrsangl�ac��lphancellor��'s�hi��president��'i��sa��l�e�gn�te#o&�gy�'ssV�on�wossg�is>�iY'e�uistyr�s[y��bioתrum�'l�hMi�lsr�'is�ya�e!!n'%o�'n�'i�ssm
�salh'	�e	�ijlsc�n��J�aeY'tlloic�e
�'cd�eg	i<pstaoss�tett�enferenc�e	iis��c�kra�mphMeii7y-aWed��instwntta^�e�iD�cmniMnk�a
�'�aeѵf�rg?i�lpsdr�'shiK�po�i
�r?ceinosib�ml�'asntct�ei<ls-matett8�e��iru�',woiaya��n��wikrng'�s�sTaeKilmny<l�Znr�saei=o�u�'ginrse�'�rs�yn�'>	a�i
os�y?eou�ve��vr0Teinn�'a�s��geuXve�r&Ci Ou
	 �'acdeo�styige�reiuo'n'�n�t zY'��bl
�a�uaeilo0�omiao
tc��ati3�v�'g(ils\yar�'�esy�'�u�anLll�'aeios�'Vbs�t�nt�'st�a�en�s�'c�isellHobgncell��i�o_'��eM�saeg�jiotug(=lo�'��e7s�o�si�o8Du}eln�'iu�']aisܷa�tlog��i�yua�eoli<l�ss!}ui-o7c�tl�sen�~c9t
-ac{�ehiotu��-��v�'Z>e�g�is*Fye#�io6ura9l=msu-e�in�/st�'�c&�es~@n�bg�Vl�nototh:'W�i�sn�''�aZ>e	ish',a�e	iFosg	ra�u�'saolh'i<ls$us$yz_ms�/paei}ortu�'eljmi<l	+ss�t
�z
�a
�e	i7mlrloge!�n�dbRacl}multur�e��iizg��eiof4noai	ry �c�c�el�'0ig@el�so_ep}serat�e)
iaei	�oh'clrsei:�o�t��diau�mkq�naSn�ad��efps�e<l�"n�i	ryar�i-�oect�eisnon�'@ja�isen�'iss��h7.ia6�c%,e�fsdHdmJs:'i!�mvosaJtis�2�'cacdegilmnorTAstuwyaioblthl�Guh'i<lscs�`z
�a	e	im�ti�o�KvferRa:�ode�d�ra�kI�fts�etoo�t'�ej�tu)�eiYsc(Tdl�pe	i�'-diflmsa��b�o��cess<l�nai0�lsa-e���-7.acd�egiklstuvau-4�vtil�ei
�s�tzzaIkkni�oc%�s�a�iem otaog]Krtion�'aslzi�l eswag��eey�'f�b�e	ist�e�'ae	�ms�'�gic�rr-bmnpty�i�lei�'st+qr��nta�eri	+y�e<l�uns-m{rttu���1ha:�oO�e7�ie	�ironaJsdne��gdoo�'Z>eis�n%�sabo6�stc	i�ine{z`�eic�aeio
�ulsla'7ss�`t�mt�s1hav'e{iyf�acsvh*e	isa"fsoMir�Za�'e	isd�laege	i�'d)�rsFuur�'iss-mttG�nr�o�9ae�kioela}�noZ�m
o�leilvwl�t�tcgn9zpt)�van�'iEa
�sAt
�zarBt�ei<lHxas�tw�z
�a
�e	i�merabi�ll.�iur�ei�onTsuzeʜl�rs

:'a; cefhi��kmnoprstucvwyabcdfghiklmnpqrstuvxyzcM-f�s��a��bktoei�oJsy��r�s�e[n�'XBadeFgisZ>eY5iN�lJy}A'd	rs!+th'nssl*wFeftle	i�'-d�rs��ih'�7e	is	�'eg="i�nos�-t�'-drsef�a�'e	isd�r�aeiN�lodAorn[�snert/�'7sn�'-els�lcrtd�o-li[tL\gha6�bafhklmnfoprstuU3vwnr��t�uakar�u:�i�']Wi}
lsq1a
�e�iopl�pa�eio�i�`nret�we�im?�ok@	watimuRk�aV�hruopyWuaih'.�eY5isapekN>r@tar�ih'V�osuwcoth'��eis�Gtng�'�si'oT�mrighth'ssau'�p�r'kPuaM�epo�kr�uappt�')�b@c>e)�ls	h'aeioprsknr@e�igi'�Jr�a@e�'dT�m�rwaew��akY7n�m��te�?ress�'�e�i:=tV�khV�eae��i��os�'@	rt��y�Ei�'dfns=ui3�ue��labcde��fgh	iklH�mnprstvl*wch��iri�dhr6o:'eEJhoM�r}�amn&a�'�s�'heq:rss�'sds:'}ae��r_5t��a
h'-aeim��os#w	i	oth��r-�b��wdr�'s%veY7n-�stalk{�i@(aEe
�'-abe�bfiop
osyet��yo-��w bcHh�ln�krwal?�l�7a�i�y!'eh�i�/gg5odnr�tyP?s
W'a�w{�ehents�og�p	�wJ�aY'e�ugourgisna�ac�Jathink	g�'=�ehozka%en�'-on-tham2�e�'e	id�rs�i2padeg	ik<lnstpk(m�'��aeBHo6sr	e)ils�u�'a�il�sn��re	ih'd�rs�'ei) s7y) d}lr�'�s�e��nae
beh'Hesrs(�oasstbX�eh'�e	iosnh'Z>e�i<l=�nssi��t�a�'abdefhilmnoprstwy��t']lounEn�3r�'e	irsd�n�reoss'�e�b�o�'hs�zkaouse	i�'d$msar�e�iE�eo}l�r�a�e<ln=�e}g�e;0iop�csr��i-b�3ehi<l=�nos~7tbs<d�{hY�uloo�dloodZ>e7seav6rn	sg,�snger�'[KisesTisY'dr�'okn�'a�e	iG�ls��itaeincs gnwkna�bdt�y�'�a�ei-os�Ay�enab�gd(�g)�na�gnFogM�tam��bda&�h�'b*�hissyC7u�etmic�)kah'�npst�{be�t�'�-�)abcde��hi��l?orstyq[aoD�uZa�wl�Po�a
�y�6drs�'swo�m�eng�'�-ston�']xiologiv�sQva�Po)�tu�b'-�hisw=�a<�aerman}n)�ae	iI|rh'-bd3~f)�lp�rs�wb�hpa�saCsa��p
aceH�fh�k$�lstuna�bhh'��a�Xbd*e3~f	ims�dt�%wog�'R�gsa�ek�nFe��it��rr�'-bcd�efghilmpstvwybc��g�`rs�t�oePior*Sno�oo�le��iou�dnra��rrdZ>e&$iss�c:ror�cl�Cuo�rur�'i�sst['7sa�$ef0�t};of�aohr�rwl�'Me�issat��eeo
flu�s�en=�eg-h�o�eioAol
fng_o�g7sae3�inKvr	lnroo�f�'�Ph%�ik�rp�i?ix�oa(�il�e#a�eho��e?�r��e_'�o�')�ae_.il
os&�anei�'2�bsdsnJg��scMgkpsL�heB�s!ma�ua�ue��iy
h'7�bdf�qglrsormBae;0in�t�gh'}�e�id`ls�'�(beiwydns�e|n?i�o
�'bflmn�`pzswill
'�s�csarFe#ia�iH�nyS^e	isar�ke�'sbA]fC�o�yuaF�r�o�U'abde�fhi�klmn�prstxy*Ezklnprstvy"-�%ef]Wilp�nish��'��eiyn2e�g�'�dssth�'iy�7e	ilsin�gon�'e�i� l�rs7de>�r	E'-aFeis6�yt	�eb!Hi�Ol`�e<lns=�eg�lsso�mel�'Z>e�ils>e	isyher
�'-b{�c�eH�f��gi�mpsDv#b��woa�PrY7ns �ze�pi	�d	�s��ero8"otrippssZ>e[1ieY5ih'drs�'�Tbs
�'-bcefilm0psCf�'e[Kid�ra�mst
h'Tuei�s��reo�e#aol�nsq�oog
h'�Og�saii��sYlstre*�sih-p\�ta�'dglnse?id*�lr��b8�ei��w�Heno��cessMd[�feMgbh'�(bd�iknpsr�st�/v	�'�egik� lsy�r �c�enil`�l�'o�-#de'�l�Nn
osnd�'e�issdD�rZ>eisye�nh'�rs�tGci�yh'K>eis	+ye\ln
rC�sYe:�gbixr	�m
:'b�deg*�lmnprsrlz�urstr�Pahh'�C-b�e	istrid)�g�'�eilsy�e<ln=�e8g#eift@Pe[Ki%a�Fb%es��t�'ds�e4i<l=�ncos�'mW�a=�ucdfq[klstw�homen�ih'd\lYn�rs	h'��aD�b	e	i�Km�osar-efih'-ae��hi�m=�nssyabcdef�!hiklmi�noprst��uwdj<\uae��o<r�ula��n�Th	i�lhoo��sn�nei��rJfsvb7eiv�gel��osc��pipJl��a�dn�pqsdo<wta�mb>eo�rW�un�ften��t��es<n�Ooaed�n<fru�tan	ittfr\{dg�
a)Pa�.lreps\}ab7ee�{o>a�]c�pturuc��tp�Mph�iorought-of�u-$"dJa<ii��o��s'n�Zddtrs:'d`lHeng@bton�'i�s��a:'f?�pH�v��oh:'ge�iE�m��pwomE�ax�e�'e	is�cdr�'�e	isa�wi�ytscg0ht�bh'.�cd-mgs6teistyd�l:'nleyd�tae-mnrt'�nw��oi��b�s�h$(alste��yAMe�oI�'bce�fhi�lmop�ur<swI0oU�ru�rh�erl`mniI�y��e�'I�eiI�m�ss �z
�a
�e	i�mamp�p�eng��h(oei�oM�nn�'ihh�o��aI�a�oh'-Gzab%3hl=�nstwnu��rac��kayuit'se	idP'r�sa�rH�f,�l*Edmo@�uM-faeio�uycklmnrtkh'}�e��isap�ta�peY5i�'b+d�n�rso�atn�'ms�e^�iyE'#�agamnp�rT�ao��marnaUef�t�v�'e�0isda��l':�acݍed`lE�nsdrs-hieir-v�n�s�thamacalʍlehi݋or�Dneirn:�a�s�sktaelnrtw�y��lt	�'egi(ilm�osManeE�r��r�eTsb�et�+o
dlzϕl
�'-bce�hiswcClaOpr�sD`hdr�'s�e}^nbreiy�eYl|n�a�km�ph'cݍeseso��eo{SeeAor'a<bf�i��oPs�tuvwdrsbsto��umo!�pith^ah}�s1�tcfglmnprstzh5&'ݍef�'�e	ilseWQt�'g�sMie�ie	i�o�s�'�!psi	+yc�eaU�lcv'eg��iny�he!i�di�'r�s)%i�y�'cn~lps�oae?iloKWndr�th'-ssn��anapS\pe�'WQtor�	w�uah'lrsh'�eipswywgnoo)�l)�i�0b�e	ikpth'eisydr'y�'�esy�enn'sserh'	e�Ois�'le	ih'-d)�rsb�slowL�e�ih'abce]�fhil&mOvnstwMk�3r�yom�b�'-b��c�dfhlmn�orstw�y��ch�o�oae�o"ii�l�rA�esh
'eaeo�lv�ead
�'�s^�r��uv�a�eygoe#isd�r�stailJ'ssa�ls��th�'fe	i�a��nr	sO�e:eoX�c�wun�'dI�ta�_yail�o-mk�lOep�n
e�i�Je��oh'kz1ib�e	i�Ma
'ade�[ilmoprsd�l-rs-vuniQ!tver['ei<l	h'�fghR#m=�nswr��aea�nra�Qole	i�'d�r+sh'�e�=sݍes݋op�sh'e	isd<�eLrpsss�e	ie�Ei:l�'d�h�!i5�mseoݍe_�'��as-cdefg}iklmnprstvzf�ichka
:'�n��i�'eChilsj�dprtrHi�'s�ow�'-ks�Lgkee�Mpeef�p�rn�uiv�of�feg'�not-��b<l�mnrsa��eh�rss�n;�rcr�#ee	isd�r6scptreuere�ae�o8tw�'	eh	iso�oh�'s��wl4mnseadS^e��i�sbea�d}ln��teai�'lR�eiy�e�n
�'�a�eghElIknswe�[ild<rne��iy�{takg�mit
'lmpq�seaMUke#4dediao'�n�auionLwabcdefh��iklm��pst^`uyeurf}to��r-Arap�o_#nh'}aceflOil��m�"n	+sl�wat�'s��t�'br�sD�e
W'
kni��lo^wiy;f�'d
ostyj�orue2|dl+ln|�eelm�'c!iei'�r�s�enіs
�'acefiopsDuy�'m�rreoc�x�kdmn(�rst��as�|t�9ua�Gen�sR�wmvxr�'sa�t:'xb�oa�tgh<l�"nG�auwghW�b	�'Yb�ehirsy@�e�e�rno\w:'-n�itmaei_5o�Fs}r
�tng�ton�'i�sh'�e	i�+osk�hbp�sle�d�'Z>ei?lsy�e�n��sh'cdefgiknorstyzeh	ikh'dsye
�t�'e	idlrs}l�*stՕeelmax�n�'�~-abcefhijlmop*rsuwy%b\�r?a��lrueak�'esr��'+srn�'Z>es�theia�t�li�dMmr}xpTy�'ms,ef�a�dlo�Xe�e<ln�$eg�'-ss�Sha+�m�RaR�eiw�l��rw�'")-�e	ihl|�ps:'f�i3>i�Erchlo�Ztuwr��eieu�l�a�c�urr=f�e
'�par\�d�'dgmrsq+l�dra��k�iy��'ak�ps�i4�ire}d}y
�'-��b�d��eCh	il$m�nsÿt}
ltiSpR�ei)�kp�u�aE�r�efn<4rh'	e	ilse	i�'d�rsTaeioK�b�rtlk}e�npq�ew�'oss��k��a�Hlot�m��oehorr�'�egi
ostr
�en�s�z�irDwoW
n�iy�
ie	ih'Nad�rsaeirydj��u�'-:�df��hl$mrstht�daap*p~8re2iss�'�e\lap��'ps�eY5i�en=�e-g�a��ucdeh��iptonsin�'�ai�0e�o�'ac+dg<lmnrA|scrac�`k��uan�she#�i	h'-�b*e3�fiʛlyl��ing-�w-wa�s�'�el�isy��e3~f	�'chl��n	+stwh�'-cde	i�uhra+foc�)td�rs��t�adehi��osraew
a-e	ii�nsh'sdrss�eilsntg<lssftpe
h'p�eo�geold%e��isnh'sgt*CapBo#e�;i�'egisydnZ9rboer�g��oenr8safc�e<lxVnaterp�s<e�iaerd�'<l�rsn�e:'
�adM-oM-p�wabdeh�fgklmnoprtuvwyz?�dbeW�ule��iyh'd|rs
.ge2�gDohou7^s�'b3�fseg�o�'3Jg�s�'V�eisng�(hYpcdfl�svh's
�'-�{b�ef%-ghhiorswhis�ht�'�in��s�Xwam�'0isEoosgmno�rs�aq�bgo'ntonec@�rersh�i)tampt�oaben�'hi��klsr�z	eh	iiy�e,k�"n�'�a
eFlsn�'folk�'as'dgktsstq�aeC�o�rr
�'�b�e2xf�i)�l'ms�'a -�npig7�ewon��gh'l�i+syh'eh	id�l~�nagq�gd	el�f	ilmnrst��z�'�abce��fghil8mprst�Svwyei_;lwTru
Vrr�n[yahXorurv@Pe?iZriXuafitt�'s�tdnxb��dD7e<l=�n�|ro�u\uuC�en=�e+gae;�ionx�w�8d�tu7�s�he8Di$ouk\f	�'�Ph!
im�Xtw+y�a�e}oa�Mlurf�naiord$�'�srkD�m�'Fe[Ki	�s
'�'-e}fgilosw��g�naothe[/ro�l+�n^tei	+y��n�_e=�n��n�torth:'se��rsocko�ea�#mZKhs#t=ek%t'��s
cdeklm�6nrstester:'s�Vh�'-aa�b�ejZilpsy��bperrfe�co"c,g�e�i�ra�YlreW�smwitkhorth�'ia/�n�'-ab#d	efhilm?op_�rst~�uw�sto-r�ubu�dhr>Yili�eyoli
hc�so7�uaeos��k[�n
�a�o
�aloo�wr
�co�r�ung�'-��m	+sx�t>�w��ceE�o�sa�en
�sr�t�'rSl|�se�yi}�l�ro��rPph'hiop*
teosy6\e�p�a�jao<�peio
�a�
e#�md�'-clsv�w��cfvw�waieSwBe4woC�iy�-a�i	�'-�eDjh��i
oswyc�>e�[w4!aiye0:ms9d�rsogmh'6�iw�Naehth'niph'D�e�3f	�i�(psh'-e�issңch'hE'i.!lbw	+y�_e<ln�$egY'M�t=a��clndS�'��-�knC�sd�'u�eC`isV�eoE'�e	is>lnW�z$&imaeino	uAUycM-f�inp�stk�'e��i+sg�eE=l�'aѾpsrouh�'5.fac�^knstxkt�de	ish�'�e	iskh')�a	e	is�'csh�'�e*ith'�e	ilsne[Kich�'edsd,e<l�"nha�Wmgnstghllnexiyt'ssu�e�Vgkl8�ei	+y�ent�')�bs�cw�'+�aeN�h?isk�t-�a�rs?�d��oY�uscntu
�lgh'-d�Ee3~fh	i<l=�nscbfhe��am�oeOaeh��aghtI-�wo�'C�dhlnrsfs�ideorkind

�e�sk�wlrA�stNuzE�eiJXt�u2Uzsh'heiay�ei�w�'i�'
ac!�ek�(li'mnosl$WtkAoatch��eh}lw�oeprroBo�le�HhdtnyT�h��amCning:'�aiiwygtp'-�_68abcehilmo
�prstuvxyar��xa��t�ly76nv�vat&�d�xhig�pox
e�Fi{o�<v:'mnEor<saAcaio7krt[1htmax's�bcg-�l�npt8�iry�y�a#crhai<io;2nb}n�ei�ac�8io"�x¾gpxh �y�'eid�sngot�sim
'a�imnossvkxjassno$�'<sn;pGe&�gng&�n
_'�	sc�a; l
�pcrhipP�iw�ee%�rl�zrunFCni['�>ii; lvx�>isvsxi�>i!oi!tvleo-mn	�lpsho�@n
'-2abdegilmop:�rtuvwm/a<s �a�k
bchklmnoҪpqrstw7yb�eifHy�be}chkt�'�7ei�snGZga)e	Gi�snd�XaotM�w)�oO
z�'ˀik�suJa��e}]it:'��s}a�e(�gl�lo�t}u�i��o�'ab5imosHg �h�ao!uussoukwmrc�Xdgkh^�e�'=ot#�z�'ae	i�sM�t�lde:'i�s�*s��bundte=b�u�bd7�elm�nor�'a�em��s�g�ra'�eanste��ro^�o5ouF�lsla*�vawo �gC�l�mnwri�vgob�\iDohm�sma��ki�n)�a�eh'�e	i�lnp	+sh'	e*is:'ae�Ogklmnoprstv�wh's#gP'hrs�t�'-a�blns'eo#rn��-i	o	+yhe?n�esTist�'�eisy�en�e	�gl�iateriP>nl	�papth'�e	iosw�'-�Ee!�fh�Eik=�nsybel:lam�mnBbi�`teno'i:'<sr$t�'iY�ns?fsmva�en�'�l��r�ih'�{psse^kr`va�nh'��-eh�wst�nssic�ver#dy˒e�iBHmtush�egdra��s	�b�cde�knpszdssish:'i�[sldh'=�e��ish'djiba,rh'sepsse�isdehu�vk�(oang-�ycIUh6im�av-bdgkln�corstuwyoZOe�i7sbj)is�ji<�oTae@�l�ahiou��u�'�csur`�tr��te	ino�'d�lsapataw�)p:'�~h�!a�kn}�gd}gk�te�s	+ek��u�'eis"�t7dra�t'[s}e�nhire�'�.m<ses�tmi�Eta�rta�Ob'-nrstd�l-rss-vknow-wh�aog�i�Ak�'b�eIis]etFe"�oself�v�eu�f�hu4tb	�lw�rsila�)nter�rrr�balbcegklmnprtn
�'zhlaa�ck�tl�iyndu}�m[ao:'slav:'iYsaW'�n
h'k�ossZ>e�isy\�ae�'b<stidN�e-�a<�m��ygn#�a
h'pssi�e)�f�i�tU�ae��o�s#�tcIUh�a
;'8a
�behil}no}rsuw
�xyz�0bcdgimnprwzagl�ihka��eryi�yie�'rl�ebrat�s7�e]vibeli�oe-cil�o�+znh
�d}ei}�u	+yzC�e=�ni�bh'aops
�ur��toz!xh}a	e��i�ya
W'thustrTa�ia�dh%*iszabcdefi^klnoprstul��x�'aond�'er'[st.%u�'�lrsej)i�r�uO
dharyi�'eaos&]kbBHh(ilCmru>	gfP�i7n�stgeYbisth'ss7yPDilmick's�f:'Ikg�i^�no�s
W'#4bL lhpayni�(ar�'s�uelin'YusYusmo�a�'-�e	isd�t�gr��st�'fiss�yul<l�np[e
ha(il$�tgts@�xApmadeiungjiak�oano<vn�gvM�ae�kbdeglmnoprt�}oovXugfMlel��dgzu}y
rakg[�c$lbmabwe�']za4�eckefg�n�'�e�wkssandel
8
'�s�'}�e�+isssyn�'i<sSJs�'lps7x2eLoe��iyd�rcon�'2issh'hssot[�iLy
dlelmnorsu�i�a}alovePArv�fb}a�ia8�eY5i3k��ly�t�'k3�lmpsxeepK>eh'�e	i�]oshl�Toyt�e
�ian�k[�panthel��l��c}norasts%erian:'�Oi�sm
�tCn��
igmo�nbcgkl OnOKrenelsgen�'ucha��mckhin��ier?bBHmz�we6o�ru�'l�sanYdioen)Ib?�gr��ydgmrtuejco4�m6�tury�gCi��t�hg��a<z7���g8rt?aclmla%it�aigE�rP+123ABCDEFGHIJKLMNOPQRSTUVWXYZacdeikmnopstuvD.DYZA6BDGE.SPP'.sABCDFIMNOPSTWZcdglmnrsu'se'CMe's
e'gse'LTcUcHe'cPtecCe'DgscSe'cDSZI'gss'A�U6sC�'L'se'AIICS'sBCcL�'IOIrIM�P'.ssAO�CcLe'cTtive.XWorIdResearch�'-AHJMQSZno.nail�iazezer�aie�raida�'au'e?ida'�se0nhwari�fahil�iawahir�iiga@Oglo-BFINSoe�rrenc�hnrdia�ni�sor�max�oanfura Se�ahem Lan�dtroTurfe'toCADI'.ABCDEILMNPRSTaeiloSc�.e'SpIrCpS6ce'cBCS�'eee'o6m-RIEO.sIMC$TIC�OrTe'L�WedF�ZLF'e'hai&r.l�'e'rD6ckyCBou6rrsrow-in-Furne�sse-Terr�erwick-upon-Tweed�'tTorrent
e'ackBerriye.d.sin.gsynia-Herzegovin�aup Broo�k.ABDEFINOPRScTVfhilorLit�.cDcCcS�'-SC�sR0OIW.sO'.ssCIOe'�sAG'NcS'pse'BOrLcAcIcRU�'�s�CTe'�scTcS.sICT6BaeuntSer.vZillster-le-Stree�trch-of-Englan�dnemaScop�eermont-Ferran.dcmorta-Col.ampander-in-Chie�fuServe�'bler Ped�yMa.xe�la-RoblIeeoutzfeldt-Jako�bws Nes�tABcCDEHJL2MN�OPSVWefiouye'LRcTne.tPGA�Me'cST@o�'gsCSTegsgdI'GRB�'6s�'�sILcASaSE�Cs.ee'hgsQiL�'RI'.sDmR�'-�sR0OGPGKMenere�sals�bte�rorgaCnE�SCMfpr�vapri�oaggio�'fie-HellmaE�dectS.Xho�wCuoM�oglas-Ho�mPon�tfed-Pow�yCDE�GKLMNPSITUadilruvcGMAScript
Z'cPcCcGcGcF�IcEcA�AcEPcTe'cNI'LeAstEndeFritor-At-Larg�e.B�CGamQavI�nro-MMP.sillioInaens -He�aPritchar�drRead�yABD�HILrMNO�SUeiorQ�'IsXI�IcR�C�A�MRTRAcNeDdE�xreWi�rrt-de-Fran�ceeB,S2AcBC�DcEHMN�OP�TUinru.BqTXCS�EcQ�ze'IOcTcPcUe'IUIZ'.s.BtHu�buPG
I'aeeco-RVoiunea-Bissa�ugu Yimidhi*rBDEFIMcPcQST2UaeioucOIDSL�R�Ve'ICVe'-npegati�voseicO�BMXLmrersley Rang�eley-Davidso�nartlthPA6Ciot-Wa�tton-le-Ho�l-FIis�h�fru�tghton-le-Sprin�gmpty Do�oBCDKMNyOIPQRSUrVnAMINABSCN�NrM'ps.d�ips�EXFcG�Re'.srACcSo&pI�OIP�S�Ddto-EuropXeerCit.yFaucKvaScri�pdaeo-ChristXi	cBD�FGKO�iuw�E�BXKA'ku-Yalan`jaNZdebe�lulu-Nat'�ABCEcGLP2SUaeiyAEOmou�rnfangtruea�lvertu�rcJXDD�'�scBcDe'rN.sS�ATVneCX|eguageToQoe-EMnfie�letfo�rbgn-rL~aeOffic�ehtScri�bkedI�X'-.cABCcDE�FGHIKMOPRSTU�VaceiuyNaghte4nDI�Se'�AcIGeOcM�ze'	�DFGT,3�P�RS�e�i.sST�'3h�s�'.si�lcIe'cGcT�ce'cVF	8S:OcrstABDGIKLM@OPdrthurG'ri�diorarmUinanl5del�la�wryegoCrve�rntyenziCeeis�hil lhe�ronnell Rang�eie-Ann�eterCar�da-U tABCDEFGHIKLMNPQRVdflame'�s�el	�eiste�rri3dalorubfil�nru�efre�yl�'u�mthn5yy�'is�meye'le�yaeiui5nll5antoc�k3rskeCynr5ynel5lmic5kac�yke�nlleor�sug5hae
2ioniZermot�tnuVw
?aVngal�lnro�eadrd5ela
An3e�iloruy�nv;we5raet�w�hg
�ofifae3ra�lnto�y~saein5y5ensnz3ismonlnsGa�e�e�oigh5taeuruenF'gh3l5a
Aohaa7ih5oaeilmular�aghto
%nZis�hher7suee�aei
tgrcedes-Ben�z.B�GdCentra6lrrinh-Pat�hSpae�cQl'ABCDcE�FG�HOPSVcWZaeiouyDjaemenaI'menAFST�C�T	,ACD
AAcQ	,OcAcC�AC	8EL�SIEIORASDcRXAR0A�D	6M	8P	8Q�C.NtWes�tWwSee cAgei&rs.mastle-under-Lymc�kDo�zltlarbor Plai�nraSwe�eQu	i'�A
BCnDEHKLMOPS	6UbfnpBCDFHKLNRSTr�iaoseye'nnXeo5r�eowTny
Vearrel�lair%a�eggin%seeff%eea,reile'%leoill�yur�khue�allivmaoo�l	�RM�'.sQS�'ei�sIdnIgEIDcBCo�E�'nG�HZei-W�aficeM�aeDgren�BDGOPSocume�n.Lffic
%eG.P�SolarIiA�BCDEHcJqLMOP�RS�T�Vah�ilorue'cCRSCF'gsCA�L�'�IcP�R�sIAIF�PcT�P�'cS�T�eigsnggPLW.3	8Te'�AcTyPalZ'.DD..e'.sayStation
e'.srswt-aou-Pr�if-Spa�itScri�perP�Co�ieovelly Parto-InbdreBasi.c&oui-c�GkTi�mA�C<EFJNO	8SrVaocFmMeCGU4.5e'�AZ�a	6RLM�Ty0Bper B*aACEGIMOPQRSTU�VcWaeotuyqLcMcPR�Se'O	�SW�Le'cC�M�'�DGMGRAPGHU.s�LSA�e�i.sF'�scBcPSgse'ee.sARCF'stati�LSAA�DcEcWIDII�S�Vint-DTenxirope�zacMon	BkurDi�surtceFor�ghend-on-Se�aaeoruirMast	ern-Volme.rckkton-on-TeesI'e-on-Tren�tatford-upon-A�vdyLin�kb-L
tQues4tcBEHqK�LqNSVQWaeiLNiNETTgs�e�iEGXrtAz.z�B�'�3N�s�Znami Dese�rXlF'eeePrompT�ter�s.Bmpo�rp-ME�BCF�HKNPRSTUcVL	8SF'SAOZ'�sZ'EISqCCcX�EcIcSZLZ'cA�BGC�DSG
Se'F-13.8.6.2C�PACcDF�HILM2PUocTXGeLRcWe'nP�CcFSS.s	6W�I	AqH�N�SWaeioA�S�TFCIcW�'�Illta Wal�lon-on-Tham�ealr-T1eTe-FnF.igiRZA.Ri.prdlP�arexsdCo�mEcLUNmI�XacLRun
Zn2M}Wa�io.KC�Arra Ri(vuTu	�be�illick's�Fln-HJ,M7QLSbZti-AB�CSWmericaniksritis.hemiti�cs�mester.Eleg3a'BAEIrzezz
�ou*y�rstain%gvoi
�r�'�Wd�i�mBM.Vay
e'erI'.susi�cMOPT�a�Sahodonedune�s�BH�VWzF'�hIRS�WiR.CN�AAT.AcroR,S�Neoo-CDGLMNonfucian
<iarwinias.m.teoor�gt�hatiarxis.m&tazis.mnr-AC.UbmorigineriXca�htho�lth-EWast�'ewrl6n�yard�sest�'OeVw'Cloc�kHar�'.sn-Europ�eeo-C	Rhris�t-ARmeri�cepub�lRou�Guth-EWast'OeVwJsest�'erli�yFeb-Saha�rRN�An-Eng�lPir.oce-CPhancellorF'shi\presidentF'i�sa�lPK�j�Z_�#r	#r	vim80/spell/en.ascii.splnu�[���VIMspell2
usaucagbnz'0Zaeiaeyaiieairareairereairearalota lotareairareearareeircckchtechtichtuchschkcisdijearareearairearereearierearaireauoeeieiaeirareeirereereairereearereeirewoewooewuiewuewueeyafphfghgejggjghfiighiuyieeieaiierearieuuieuooighijdijggjgekchkcckqukwquoeauoewoeuooewoouioouooieuphfqukquwschstiscishuntionshunsionshuncionsizecisessztechtichtistuchuewuoouoeuieuueewuffoughuiewuioouyiwquzssZkah(aeiouy)-^*har(aeiouy)-^*ra(hr)^*a^*ah(aeiouy)-har(aeiouy)-ra(hr)à^*å^*bb-bbcq-ciaxchxc(eiy)-sckkcough^kfcc<cckdg(eiy)kdd-dté<eeh(aeiouy)-^*her(aeiouy)-^*re(hr)^*enough^$*nfe^*eh(aeiouy)-her(aeiouy)-re(hr)ff-ffgn^ngn$ngns$nsgned$ngh(aeiouy)-kghgg9kgkhhih(aeiouy)-^*hir(aeiouy)-^*ri(hr)^*i^*ing6nih(aeiouy)-hir(aeiouy)-ri(hr)jkkn^nkk-kklaugh^lfll-llmb$mmmmmmnn-nnoh(aeiouy)-^*hor(aeiouy)-^*ro(hr)^*o^*oh(aeiouy)-hor(aeiouy)-ro(hr)phfpn^npp-ppqkrh^rrough^rfrr-rr	sch(eou)-sksc(iey)-sshxsi(ao)-xss-ssti(ao)-xth@tch--tough^tftt-ttuh(aeiouy)-^*hur(aeiouy)-^*ru(hr)^*u^*uh(aeiouy)-hur(aeiouy)-ru(hr)v^wvfwr^rwh^w	w(aeiou)-wx^sxks	y(aeiou)-yzz-zs@htht@
willboymotherfoundnamerundiffersuchofonorevenfourallfatherwouldIneedseeplaceearthahotworldhowhereyemuchstudywasgetwaywellstillfordoesschoolaboutactplantwherefewthinghandbackthinklargehighalsolikemovecallbeenjustandsomedaystartaddgoanyknowlongwaterthislittlereadportgreatrealsayfirstleftlastdon'tsoundcamelifepointfromwhenhewordwentcouldworkafterfivelookputsaidlateeightshowourouttheytwoherestatechangemightsoneveryouiffoodinisitfollowhousestorythanhimtreethatlinehundredwantgrowoldmanbuildgivemayselflightmeantoanswerthroughlearnsixhomewhichthousandfindsmallhardsideoveronlyendsunverynorthgoodowneverykeepsentencetimetooagaindidcoverareuptenuseachthoughtmakedrawanseapressasturnsettellnearhadbymusthasonebigwhileatpagecityweretheretakeplayaskcrossformheadbefarmotherairwriteyearlivebeforesamewiththreefarcomelandninepeopleclosesawbetweenmorewhopartweroundthesewhymestandpicturehelptheirmynowsevenrightnumbershouldnewthemthenspellcancausemanyundermenbutcountryoffnightthemosthistrydownlownoletwhatkinddoyourshemadeusehaveanimalJaàáâãäå/eèéêë/iìíîï/oòóôõö/uùúûü/nñ/cç/yÿý/sß/V����$8%'0123456789abcdefghijklmnopqrstuvwxyzgmnstainston2geath
treBuwt6hwai6sxFtth02369ds284x766806i6p80x7206p6s6-b4i20x10806i6p�dt�4�dnyzdda��b2dg�r�-0x2460�e�spp��'btx46sth4�t�-0x4�82�t06p�-0�t0x6�0th 
 '-.abcdefghijklmnopqrstuvwxyzatnh3eslevels
km.Ra.'achlrs�hen'siyah9'dSghovwark'
s
solfv'Tsesus'sn'vsitc�h^'abcdehijlmnorsuy	bc�flnstx�a
kus�'�eon�edoneim
sw
dr'sn
gent�'�sar6eehi
dmr
sent�'sei&md
sl
y eitoi�ria6laeor|y'ss9'i|d's�yrs�st�'
st�'evirsatei
d
s
no�n^'s�
iou~cm�einaollsyplasti6yZeclte�iEo
s
de
f's
�'lah�'ardlrty
m�'asrrdorncdnryornwy'�sombie'seevn�'shireinathryantte�lTssion�'a
s�lstwyth
st�eiEoanct,eorr
sei
dnrc8tedglnoaeijn�cdr
sng;lTsan9'airleinretiy�e�'gdongteneisZi6c�ieucti;lno,ness'�esraeitio�o;r
d�r
saeou
ytz�ei
n�ovef'ls�y
e-
r�sbodied�oti^'`seog|rat�ei
n�ormal�i;lTsa�dlmruv�ristheim
dr
s'sent'�sion�'issm�tinab�tl
e
yintginaelf'"ls's's�sinrgei
s
d�rf
novacie4nn�'i
ss�te;lness�'n
td�ei
sef'bgoiarou7naeioucdhmsadabra'�ssei
dr
sarm�'|si�ove�';ln
sessf'�eac�stio{ndgeim
dmr
sent's�sent's�s�agat�eiEo
non�'�spte;ln�rs�tess�'�e
�'aceiotulo|meioss�'ei
d
sssa�i�'e
sndei
s
d�rinlf'�ei
s�ct-ei;lm$sminded�lness�e
der�'i
ssma
nindedlnryessf'nth',eslruBvteif';l�nrs�t�os,m�tbpaei
snc�e
dn{rcti�ye�'$sn8gti�ov
eityaeiri�nm;nious;lness'�e�snenmct�lauctf'ei;lno
sdrs;l�n�t
novn�'i
ssm{teess�'�e{rse;l�n�rsrd�ei;l�ns�t6mtf'�s'bjnstzbla
's
dan�c8taeibl�ef'
d�r
s
nv�eim
stlo6ne�nei
d{r
zsmsa8l�'a�ei
lnia�'�n'acehiklmnoqrtuwys�cdnprsi�aeim,ei�yac�esf'ai
sl;lFsa�sn�'shi�p6m�ath�uulcrou�s.eilor
tudlnps�eieraot�eiEon�ovg"lmetet�'�eio
su�rarlMti�l4st6y|etaeio
sbntillit�i�ye
y�n�ctio�n1d{rnevg�lne�ss�'�eiob
noi�lli�tn�'�ei
sri�s�yKa�eze�irdrsdencte�'-a
spronlf';l�n
saiimmf'�ei
sat�imvat�ei
n�oszaeitiond{rsngaeitionf'
d{r
s�ilmrsuadei�'�d
sn�gmpodat�ei�n�ove�nalniye~m�s
dr
sii�cshwei~md�'a�ei
sn�c�t�n�otf'�ei
sntt�'a�ei
sbn�ileyness'�s�c�tng�'serreim�s�dn�gentsf'ei�dm�sent'�sn�graeudtit�a�ei
s7ei�ovFea�ei�llmrsturat�ei
n�ovulat�eiEo
n�ove�l�nas�ct�eed�l�nae�itltio�ovef'
sd�r
s�'omei
sd�n	�'rdlnr
stvlula6rt�rbaitc�tal;laioyblmn�tul6a�udehydinophenf'sil
�i
cbgnact
�ee�n,eirclceholinesterasmned|oaeior
ye�a�'Wb
d�nrsunoa|rno|nlia�nelm�n
r�svaeib&l
d~m�r
sle6a�se�nZoomat
�id�n�'i;lno
su
cfm�ti	kyc�eationetri6ycalUless�'pshile�i6sei�slo�uenrmanW'owledgei�ma1d�m{r
sblu^'�ee�'�dsln�rsuy�tciagu|atstic�ais�a�'uaiinta�ei
snce�'shi
�perstscei
d~n
sMaei
d�e&mr
s
�siti�o
Gv
sta�ei�ln�ceiouy�'a
s�gdmei;l�nrrsrtn�toni�yeous;l�nbclmnpsat�'i
sc
�a#se
�nectZ'Ka6segal�i6yy�mehot�aobi,alis�'�e
sti�c|xlaimtid�e�e
ac�'a�ehiorsue6o^'novgi4o>'Tscdu{e�mn�'Ma7e	i
saeit�ePiEof';l�n
sw�x
�e�s�trn�re�s9'alr
Pti;lss�tzae	itionsdsa�eiti
�oi�ya�e�lf�impt|f�eoruin�tessur
�enctur,e�ief';l�n
rs
tcliocal"lvi:r'acdehijklmnoprstuvwzs�
9'gimnp|r;sGx�ei
ao�r�'aisntf';lsnab�y9'k�oi9'|ataeio
sbt�il
e6yion�'i
ss6m6td�r�n
novdn
=ei"tg
�ren�i6s-aeilor
suonZ'sObm|s
dnrd�'
a
s
?u�'l
se|yc|ensttf'�ei
s
n�oveUlnesgton'�oiovn�'�a
sesi�'�l
srse6dess�'aeibi&lli�t
d�e{r
scEeit�b
n7eios	n�ovrlnpqareio9'i�dWnn�g�'aiouerrn	�ehimvypophysZeZidf'�a
sa6st6aoZuirKausZetf'e;l�n
srstua�ct�ea
�derrsei
dn{r
smc�ti�ove�'�l�n
sade>oprbatical�laksuf'
sx�iocsera6etziesondack9'�saeoucen�c8tctiv�a�eiu
nrn�ei~m
sdnrstvgicat�eio
n�o&vr�'
s
yct�'i"l
sv;a�eitaei~mo
sbl
ey
nevr'�a
�ain�saei�nr�'ian�sbbinCgaeio�nZs
nnrstx
i�scsl
�uter
ra�bt�eiEor
n�ov8eixae�ibl�tl
xe
y�'
st�iy�'sib�oii�l
staeinmc8d
eit�d�sn�gu�rnis�th	gei~mn�gat�'�blnprefpscen�c�tn'|orhis�'9etMaei
s
d�e�r
n�ov�eae�i'nb�trl^'re�seionaelf'i"l$sn',e;ssr�gae�fnt�'|ae'irc�nite;l�n�rs
�lorbpaei
s�t
dntf'$sti�ove"le�lmatt�ePiEo�'eh�l�n
srae�io�y�nMt�r�su�soo,dbrat�ei
n�ove�laeiortncteif'
d~m{r
sagei�'
do
su�snrt�'i�sustv�mt�'siaAo6l
�ereio�'
d�rsos&m�'�e
ns
mdtu�sbst�'i
sal�';l
saeiri�ya�elUl�d;l�n�rs�t	Bn�tf'eio
s�dnsgQein,grialf'rsmc|lsaeio�b8d{e&m�r
sr�'�is	$yca4a�cteif'
d
s
noevTnao
rr�de	i�'d
sglnoprste�iornotat�'�sfri|ce|aid9'l{niuanKsyor�n
Naioael�'�i;l
s�'TrsTt
-abdefglmnpsengi
=ncousti�cairtic	$sco
�ai	$s
�sloUgak6ein6gryo�mnam�ilasticiUtloo|ti{ler�lammrsi�taeogne�tdiIcdell
�e�iautic
�a#shlo�ao�n�anica6slUlh
opteKl�aheatA'iZccothuyl|ulapi[urphiet
aeic
�ai	$sasnZ'6s,mvalte	ihie�rologiycalabcdefgilnorti
rbk^'�cbrIiaeilorbEiiile
y�rscrtf';aeil
sdr;lness�novn�'a
s�te�'�lessneZse�on�tadlnrxncav�iiate�ie�ima�ei
sti�ovef';l$sf'�eiaiutus�'ect�ei
s
n�ovenmc�trdea�ei
sbniQlli;tc	�saioy�'7e	i
scgatei�'s�o�v�hn�than'is�s�'stce&rionad�ol�daou&mtoxi�n�atte
r�or�uemstention�ea�ihoug�h-aeioscka�'n�'i�sszaei�m�tti>o�d�sn�gXa^ebiazaner�'d�so�m9'c;stentriRcsm�t
9'ropica�ler-bcdegilmnstwcehistare'	�s	�sffec{tourma
=gchoKoas�tiurt�hrnEeare
'6s�sae�mc6kffec�tlo�wmag�eif�v�eaor�tke�so�'ah|u�lao
_v�cahste
	'�soug�haordA'
srd�l�'�s
9'aeghilnopru	aimnprstvn�semom�naglobulinae�emi6aspermto6y;aaentthf'	�s�'-osagarsi9'|z�ehe�'s	�'-
=dilnr
slo	o7l	ns:m�te�s�cdt�a
�e�'ei
s�d	Bnvat
?uilren'oumeratei
n�ovtinatiot�eCigeaeironvdisze	idmse�nei
d&m
sat�ei�n�ogsateiFof'
d�l
s
n�o�vsiEo�ove�i;lness>'�eevei�d
sa�slnste�i;lr�sgf'rsteCrapt�eiEo
n�oevro,paeioi�a
waeioth�ai�arsrw9'stic�'i
s�s
gnruai	$yCl�eszei6mt�drs�'�sngi6scFae�i1d9r
saphob�ei,a
acti
�laeio9'mnrmati�sulocyt�oianf'i
sesa
di~m�r
sble
y�ne�tarch�'�sbcmpstusi
dnhouemic�alltura,e�il�i;lo�nprrainodu
�ccienctis�touzr	-bcefnstuindustri6yKaZeiologi6yIc4shemica
�lcosyste�morestUromi�yce�s�ast�oerror_i�na,eisrsdie&ncalient9elnra'|ralWrt6iacemorurbsurahoro�am�sa_ed9'aib_ane�j�yim6ariri^'dgklmnrstf'aefis�'�n�'-
d{rsdme-campemoireCs-)dmemoi�rKu^'ret�eid6oei~m
s
d�erf'eil
s
d|e{re�s�'hst�u�ul�ere�e�'-bcdefghilmpstw
yctonoditione	idr5lo-a�iaeoru�g�n
_sd
rs
�ar&niuc�ks�h�rs'essraeft�'-mwcarr:iae�n�nom|a|ew'
srioYempers
f'p�s�e
id9rsyale�';s'�tailor
_rel�do,w�iae
=mightf'7e	isruaSpn�sead�'�e
se;ln
r�s�e�geiNosts_ntefr�e�fne�'�r
saeoin�sl�'�eirs�'sh�in'�bloa*n
�y�rchiptre�wio�p3wcd�k�aeed'sreiba*k�pigmhgt	$eaov�ye	$smr�a�ethi
y�e�n�hle	@ich�'b�e&l+oa
r�xa-bhik�rsrsto�ah6a�iara�wmatovhm
ntvitb
oa
9'�sad
P'�ihaya�'-abcdefghiklmnoprstuvwyzahjmqszno�nail��iazezer�aier�aida�'�sau'e�ida�'�se�nhwari��fahil�iawahir�ibcdmnrsamsai�'n9'�saJnte,r
k�rd�ieodYa9'gYsord�o�'|ai�n9'�imf'�ei
s�ns6m�t�ekta�'n9';sai�rf'aeirrsu'cntsoiYs�ya�'n�'�sr
fod|e�iro'6sit�'ao�';n�'�ngn�orens�ii�oeech�tmq5r�'�ei
sn�'�osuerq�uaehimo�uytra|zst�iemi�yceszale�i�t6d6s9e�ibniad�ed/o�e�aho�tvol�'i
sc�s�'
�a
st	;e8o6aegiorWubhrnrara�nyd�e�'am�n
sw�ma�e�nom�a�eat�ensgs9'steDricd|n�hg�e�'acehijmnpr
su,wxto�'Ykou�scsh�ete�randr|a|obe
i�rtej�ohptf'ei;l�n
s1d8r�sDrt9'Ai;s�'aeinderJr0aioa�'�n|i�a�sW'a'iorW'l�fn_rszeds�'|aro�caeio�'e
lrcid�vbnrra�'i
sc�sal;li|b�'ia�'n�'Rsceni�db|ra
=tglnrenesAe9'quiaJnn9';sithm�'�i
sa�embrra�'abcefgkmnopqsvyzs>'�eiil�'�ei
sn�gCee �iy�'to�wcli�cn�'aei�o
sbgMti&ll�i
d�e�r
n�so�rhni
te :rei~m
s
xeeont�'a�ei
s�ne9'ment�'zthaticuo
�t|ah�opsthenoi�daHie�na�har|ia8ey_il�nio�'fens�z
e�i
�e	i^i
adl�'-acehiosuycdeiknoprstl�e�ambrac	imnporta�n�-clusVinow�ii�g�ueourva!�dwerf3urposound�e�timhmrn
y�'�aand�aockglmnrvy;aehior8d
seni�y|ea
nxnri�yc�esal;l�n	it�'
s|ae�i�ot�t�e!|iui
aaan�d�'dta|e,lo�wgei�yn�'
�i
sc�e�sall�yiat�e
'io�'-
swo�oa�yallo�waegstn�cz9'
d�rs�'atEo�oerat�e�icgmprstvwx�ya�btaa�e�iou9rrA'Csern�e�ia
�fet�rahuthi6y6c
�son{e!|iri�naur}u~mr
stope!|i�eierraei
s�bn�c�d|a�epti1cat�edrksve�if'
d~m
siao�ulf'TsnA'�sf'i
'saios9'zcgn�t=e
a)dghti
hy	�n�hnr�s�dEeav_if'�hm�a�eiclto�aa|k�ef�hno�ui
tegznshio&r&d�f	�'aehi|ors�crrtaeo�'bfn_r
set�'i
scsz�a
a	e	iaeitio
anetoprot!�eumeric�a�scrcatnsre|ounei9'
sstW'Ysazol�a9'e5i5oas;dfordaot�ctiaon'�ssn�'�s-|pr
�aorn9'vil�loeme�r	aehi�morrs9'imrz�'rcMr�i�'p
si#�eimQuracein
sOb=tatei
dr�sateiEof'
d;l
s
n�ove�';l�n
s �eougmptetEe�rlanu�d�'girn
seth�duis,mt�'i
s
�c�dmn�'in
snaiouumsilicaZma
i�u�'
edu�mae�i�'rae|o�zolaiurt"l�sa�yWcs6osrabuheimekr�'abdefhimnoprstuwy
dlnrstuxze|oursgiam�'Qa
s|ae �duens�e�iaei|uy�ntt:ollll�is	geim
�ee|iorruas|ur�'i
ss�h,micia�nro�s�te�iof'�d&m
sn
�'ai�sa�naeilrussadorr�'is�ah�ies|sr�'gjlsr�iaeyadegstvnce's'sexterkrou8sncte�'isTsu�iouseox�u!n'io�n�ualenmc8tgeiosXeia�'�lslsantc�te�'m
swaernrno'lm�eio
non�'�sr�i	$ychadei�'
dr
s�'wei
^'ah�llnrstiraorat�ei
n�o&v
9'adehios�bMa�ei~m
jsd�rote|p	n�trrheoaA'eaaciWd�sei
d~m
scnai�'n�s�'�ai�sszaeimtion'�sYdYsnYg9'�saeition$�'ps�d�sn�g?ud9'i;s �a�lhyst�'�i
srevil�l>aer$?s
acd|egnrrstb�ile
y�n�rsab�i�l�esh�tip
sa�o
P'�o�seoA's�'benz!zorh
s�'�i�yaeournro�o�t�'nsi!�oatu�'cs�tKae's�mn�ieisitac�'�csf'siy�e�'ioc�nmtent&Hece
knr�suxbaio�'
e
s�a
c7igt�sil�la�optl�ily�mhi�os#Ami
{sza�eib$gtlre�n�riycillicil!�l
�'aehilo
sur�draesmg�'
sa^neiotam�ibptioaAo�nlog�iy!�oheater�r�er%�a)zc	Bnei
y�n
r�sf%ti	kyce;a
d�r
su
=llt�ela6e�a�eit-sterJd.rarkclnrs�eds6e9'�iaeibl	�e�d~m{r
snev�g�a�'gldal*ao�i'aomspsec!�t- acdeghiknostuvxyz
P'bcdeghklmnprst�uxae&�ioptist�'Ys|llic�sh6ilorronis�mt%�iin�deon
P'!tromtomrsi�acaTsll�yob�e%�ithestiao�'slogiy�e�sicsz�'�a�s
ae	i�td9rsae	�itiong's�d9r�slryph�'Csam�'m
sa7e	itic�aeLii�eneg;lopycpCst�as9'!tesia
acgf'i�ors�u�y�c�esz
�e	ihabstzaei�t�bn�td�'
s�udr
s�'s	n�s�eicA'�aist�iyae�i)nbrd�rrsorph!|i_oi�aaehlest'iscTsstf'irs�caoryra
�iodisi! alac�xasmosichi�ycesal;lm"�tat :zaios �ig!vmmos!ztei6ds�nshoema�'
sti+�szlm|eia�'n9'�si�yc�esza�l
�e	i�tago+�raehisterstEor�ae�i�yss�'�eor�v	�'aei�mp
s�wg)�e
dst!|i
nt�eics�meorpl�e$iselntf'�e;l�n
sl'�a	 aeiorCsryan3dlmnusia�'|n�aook
_t�a�dr�ss�t�e�oe	Bnrrvra�'n
9'Rseeio�'*�ari|stw :t�'�sanampoinimer�icegilmp�serntri6c�sa�c�tciea�ueyn�'
�isn�e�io�yu�s)�dog2i6yaechMeda
9'�eaousKa6e|vcm�nrsu
wd(�hot
�a�eioZacall�ym�npetEeryhi�l);othestiao�'logiZysi�c�szae	�itio.(n�d�srysm�'Ka
s	aeiklorsurs�tl�r�v
�'ra|efio
s�uis�h|acnqta|o�'8lsra|eWu�'�lMure�nognpstern�ea�mphFeEiyeurolas'�tperm�'to
sen!�sHoeio�'
dprswoies�'f
sishe�a�yo�rrac�nain�'i�ssJmszaeimtion'sdsn/3g$�'saeition'/(s
ds

n/[g9'-mpsbfinsoer�renc/uhnrdia/uni/sor/�max/�oanWihiolei�'�s�abneiW'�ae�i�y'sXsphe�rlrsa�'n
P'Rs�aturrai
y�e;l	�nt�'r�som�'
sil0sl�sKlart�i�l9ei�non
6seyu-Xsdrio�d�tablmos �tkc$h*�aiaeio�udltver=s
t�'ci�n
sul�a
aes�tza
�e	imtion�s0na
�e	ieiEor8d"l�n
s�c
n�o'2o
f's,mtf'
�i
s	,sn�'i
s'ceo�'eistko!znmttropiyceFa �a�hle	@i�'�b�d
s�t�'aeimou�'bl|mpel9'-�l�'e�i	$s�noul&0i�r�'altxlei
s
d9rid�'Ya
s�tf'aeition�'�i
s'
d
srehvilat�eiEo
n�oeversa�rarWictuyat�eAiEoncQeia�ei
s#�nng;l&nailmnl>'i;l
s+�sze	i
dst�a�i�ya
�eil~m
surt�lTsei6do�eiciatei#=o�ds	no�n
dimnprtuvx�eiyc+�szn�ent�ei&m
sailiAo�y�esce.rsymi'o6ss�tz�ae�i6d�r6s�a9e�ihele#s�aegtc+�xtKai�cas2Rmhos&ihe�rizlula
�n�ti6a6c�''�ae�hiowlm�'|o'`s/usnW'�ser�'Ma�eip
shonde�'abehilorsw!�ceg�lnr�uonisz+&e	i�m%�tei
d9r
sanarivMoc�etic�'rai!�r�'-(�abcd�ilnpr@svmort�eell�uehdenmct�'l
syA'amp�bKe
�ailuvia�no�pant�a)3au�laer�tnu4lioorAe�l�sgl�oprad�eateIrosteri
�oer�teior�mr�'o
s!�zl
all3npzogi�y�e,�szhi*�loa�naoc�xe0�insp�iocgilmenRetmreni0�c
adogi�y�ce�seotriy
�crphio
�csz6e	i,m6e	is�uAif'-abcdefghklmnopqrstuvwabcdefghilmnprstwbgimportioni�s"ercra�ferican�is/umarth);eritis�hahopita�lristi�anrstitutioInru�pemocrams+�etablishm"eermi�na�uUaorvern�ma
veuro'ent	inftelctivammatnoellect�uo
au!�ceirsonn3eraUcacismt6selmiti/ucsm�2l'avneaentatn
�aeste�rbilnortion.4ircra�fia"sxi�eaiouclteri3�aliso�s
t�dGb�'aehi1�klo
syntch �ollu2=lorliner!gist9'Rspat�e�ioeiorical|i�sm�nac�x*�tckwi&samngulan�t
atmpunism�t�'�seti"tvulvsclon�e
�ieiompvocirrestselo4�pasubrrhoIeestablishmentariani6s%�sr	8tp$tile+�paeorusc�iervdmrenCto5,mruman"leemzndIgamentalistelorun�'i
scmiobalisz�a�anKea!5va�n�'�neiyrof'fest)�aorica�lperten5snoc,kalobo�ruireas;nP'g
a�i�s6yrit�haioclEtassEaaria�lclsro7�bitaris6m�tsi�ln�y'oumviyan|i6s�ecle#�acxh�'uitdaehorsyrstatl*�s3lic�l9't
i�ohke�i�yrsopnnerlitron�'a
slf';l
sdlvael�s'asnf'
sf'luti'qoerRtur+�iych+�o4�ruaeirti�k�ya�en�'i
ss6Tm�ei
n�o�'
d
s
n�taerd�adstepositi0�oonant
co�rrovi�rhinudm	celoptuyioe�nrb+�umnpritirc%�s�sticf'
�a
s�uavec�iasmod
i!xahreneop�hbmar�immetr�i�yaehoruyn
krrorism6tey&Jsti$Zc.rxi6c�nust�'8�em7|so
�up�eil
�cein+e�iborv3�a	uisectionis6m
ata$rer�'�e
sfinagasne�'1t�'|eiy|a2�nro�u9'm�'�o
sai�ulmiry�e6aezrbnr�siMsnak�iail�'l
se	@ii�eol�u+�ybhmoptw5�o�oo)pr1nla)pchiing	'rs
mahiyrs$+e
s�'auc'ss�
)slrt's�a=itk�a
�ieaoYrYr^'abcehilnoprstuclrt
ehs�e�'achico�lth~m	�nei�dh0�io6)e�i�ysaurus
�'
dlmnr
st�xil&k�eni"|nitCyotdic
�a�ii
afurKa	;e3�aae^iors_ili
a�o!zn*�rodis�ti
a
ace
nsP'�nri�y�e�s,�aes�'&c�h;l	�neo�nmboea	cglmpst`zarlyp,�sticFaypha�'�l�e�ailo+uti�ciona�i�'n;s�igei�yticA'
�as�a�esz	e	i�t	'ei,(ihlrttyheg{m5�lekc�xoteost	ii�cetma-�ta(milor�st�e,ie�'2�bshi6Tpla
�ioph�ei+�s+�zhe1Ncg�mo�ms�ei�sze	ids

f'aeilor�sulnraloschia�'n�'�s�e�irsosa�'�sa�gae;itc�uhik
sln�'	�e	�il
se	�i�d�talnrtlr1js�'Ga�e�i
s1sa1ei
sla�nt
ei�ove�'�lCsd�aei
sc
d9rto�mc
n�x�ei
�u&�tta!iistze=i�eViEe�ia�nh�naei	kyu�dms�'-bjstcpart�'i�yacZkaeucZe_ef'�o
s1sac)�eqa�b�nt�iEouef'rd�irsimrsntei~m
s
d�e{r
n&vatto�xtion�ei&m
s�ei�ntei;lne!so*vn�'�aaeiois
ae i
d�e�r
schnia�bt�eio
n�ove;l�nr�'
s
yends�ei
si�b�o�vticei�'
d&�ss�ei/na%@bpvxchf'aeibi&ll�i
d9r
sria�b�cteCiEo
d;l�n
s
a	'e�iimatei
d;l
s
n�ove"lrtenan�ct	�s9'ioc�l�onp�'e
s�o�eil5e�ei;l�n%tle2�iuaei�'cflmnpr�stvultumrrezsun�ga)�ra�ulan8�eieio32lau�n�mIsb_iicnf'
�a	$s3t*idou�cu1sc�flntultur!pe|a�i|a|oa7lti-�n9'abcdegijklmnoprstuvy9'bcfghlmnprtuw�'eil�s|ysq�u�arclnsit�iy�'o�m-Tt�eeh :ln1ioipdhobi
a$?aura se�aoun
'iayu[r9'duit�eaco�ci�ca[neu!�ito�iaho�'9e;s$?aer�ecania�nak9'6a,�eiorutEera6og6l~mrtei�'
d�r
su
ari
y;l�n�e
'iEoruv�'ei�sva92t1lc4sulturKa6eiit�ar�'e�s#wioa�t�t�'a�ehilostdnei�a	naeu"l�nXm�'-abdefi;l�nop"�wenem�iyeinabon
'6sacte-�ra3�lpstronoUmteryxcs
�a�n	e	i�m"�tgel�'�i
sioshop�'
r
sa�reiuacon�'�r
soces�a�ec�kKah
fe�i6y6a
dfgnrstiel�don
�iemiZyfe�'i
s�y�e
typ�a�eic3aio)�e7nobemnptva�l�'piscopa�c
lte"|d
jgelago�'Ze
serct�'o
sunicFa#sra�v�ae!;io�'
d9r
s
�lsaFuri�eieklo�g�iaioun4�gc
�'rsphil�ei6y6a4sxraelorsubi;ln�'�c9Rn8teth�a�ru�rosBs�of'anoq$�st�'
l
swied�'ao�'c
s@Xveous�ola�eoer�stgi6yIc
�suip/�haeouydargadnt�'i	�snraei�'a�s$�nan9'Rs9'ns�t�'aWnCsu�t$�'iy�e�'aeims�bent�'a
sti�o�v9'Ae-lrbargeiyCdAee�d�self'rsophi�l	ade7gost�uz�'d�h�ln
snkeW'�aiYsskmmi;l�nrlIs}seit
n�r
sn�gaGiorc2�hcp6stra�c%�th; ae�llian�'�shmeticsz�'aiTs8l�ae	@i�d�se	@i�d�son�aia�n�u�'ah
swnrsa6nrsoolangel$srighkteitntW're�tn|eg�tu�n�'-a)�bcefhilo@prs�ywrest�ldgmntai�'�l
sl�lehnddCo?�aent�'a
sA7rdMi9'|ou	8rhYoCa
dn9r �i
u8,od�ens%a
jgia�uni�szst#�ieos�ta�cd'�sRi*!nru�'ei�s.(y�d�r�a�e	�nr'-ei�sysplated�d�re	�n�d�s�'�etronrgaehouA1uW'|bem 9'lan�d9'�llf[hm|n&sua�'n
sttic|i6shierapei	$yuesutcf'
�ai�n
s.t�nsaei,l
d'�r
saen�egg�iaehiobcinsyu5rk%gg�teiaa
d~m�r
s�'fe�'�ei
sarsra	$sg�ntf'aae io
s
d{e{rey>�nthmi,acallCyav�g
aei
d�r
s
nsm�tgnw�ya'EnMt9'disse&lm	�'7egh	ir
s!tr(ae^ao*oeiop'-�dhnswslic kole'6dssaio�l�t,c�dpy2=ripn{e�gn�'�ishena)m
�'aefhilsuw
yxerIxfmrsact's7luis9'"Zii�ya�eol�l	�slsv�a�eclero�se*�ni	
au�lruaiol�gti
acd�s�eAigpsr<	aloa�sd�'�a
scop
ae
�i6yr�'�icefl�noshluo�k8�e	ilacb;c
rte�io
d;ln
sess�'�er'sy�'
r�saic�eial�i;l�nleriye�s�'�mdact�y�at�'�e%�i�r
se�siry�er�o �bg�mnu/�lde�lo�'a6ln�'i�ss�m9'abceghiklmopqstuwym"Znph�'eostos�'ei�sae,�hiorr/�i�lnrtds�taei
snctZe�i�y
dn{r�cio)�ntainMa�eim
sen6Ttic�'
�a=i
sdi:;i^'`srt!zb�'rsibpMa�eiti�oevpxtic
�aTsual?qi;l6sarMd�'abcefghiklm$+ortu
ymnetriurtonar�no�f9'�d
nXr
svil�lor�dab'tat
'urs�t�ek!
nagehnaz�i�aaeH\nr�'e	i
s|eryole�aa�o"�rnr�gZorbani0?pa
_dmn�'g�nt;o�eicn'psiol8�arvin8e�iaei
s;|n
drw�'s�n^'ae�ne
parkackia'l	�'acehil
sratg+iqua
�macl)�nrt�'�e�i
sIu�lg�i=s/eaeoylEKtr�id
exia�'6l
�ns�t�cdrisWkt�raEei�nteiEo
non�'a
s>oln�'
g
seni6a%�uuiCt�'aehi
no
tuykdimsuyla�ei
sOb�n�'e#�ssin�'�a
slt�'ei
s
d�r
nve"l�n'ei
ssmnrs�tvbl�aeiy�e
n�'�m�wt�'ei
s
dr't�ei
s
nIro
Gvs�a�ei~mEoeIrole'sJ-sbdgms	8zilat1�eziu�i�onf'%=aei~mEo
s
d{e�rila�bt�ei
novn�'iss9tritf'a�ei
snmct�'shi{p
nvcnriabt!3ilei#=o>'
dship6s
novn�'a7�i
s�l�eit�i�yan�tmc
attei~m
s
d�ramrgei
dm
senaEeipbi&llsingE�lTsti�o&v1sae>!id{r
sf';l	�nrsri �aologYyaehioru�inr0Atka�gWtr�'i
no
ss�kid�'7na/�e
sem2Rna�'sticf'a
sll�yg&�n
rmati'c�snru�'ish�e�i&m�' �ind�e�i
saiodgkl
yOdal6i6sZuhan�'"l	�s&dngen�c8Ytbcl#QmnptilolBXoe�mhoemiIcstUr6smE�pao�bgEei�y�c�e�saout�'i
scEa?vsmEei�y$ZcehoytographFe�i6ysic�a�i#surf�^'�irtia�n�se;l�n�r�sn
�scd
'ilmnluabiCcm�'-
sseeke
�rmpetri�y$Zc�eto�mt{e%�ichron6�i'oy9'acehiklmo:�pr;stvw
�xychlrtvxamuaBdlanaricx2Ti6yu'$ris,mt�'
�i
si,a)clm�s�ipo7lraeilowbnascC�kasiuHgsinrs,m �ta|ei7�s�'ezua�not�gmsa*�tcleros�tei?vs�o�ret�eic
�ai#s(�s�la�ra�l�s[winsP'�oa'enstraei>a�src�s�'�e'�ao�ss�spher	;eic
�a	$s
lmnp�'i
scsz
�ais)�t�'a	e	i6mttionA'�s!|i6sM�aeiaxei6yli;l7�s�tc
nA'�i6y2�eioaou9'
lventri
�cm�'6scpi�o�thi�oi)yc�e	aeil�noruryci,rhk�'Maei~mf'
d9r
s�'�aei
snaGd1ei~m
sbiil
xeymnsptf'�ei
sdtuaei
sn�c�t
d�er�'�sio
Gvn�'a
slsi"lat�ePiota�eiFo
sIb=tc �lrt�'ra
seiud�ein
�ai+�s�zWern"�e�maictI�a�eio
s
n�o
GvbtutMaeif'
dr
s
nIro]vion�'Kascn�kei
d�m
sio�o;�p9'bcdg�knrstvxerurgin#e3e�rktland�'er'sion�'ei
s
de�ra6eirucxi�o�t�'b1seotiil)e
y�'bglm|nprstvo�o	rogi�y&�c�e�setEer!|iyh8,iape�if'6d
sisua�l�'�eio
s
n�ovr�'i
s
yKa�e�uMa3e�b9'eh?�imsu6a�rtf'rsentaei
sti�o�vbur|grs�'�eI�i
s�yt
�'�a�ei;l�n�s|un7�e(Sit�'�i
syaeiou�'8ln
sgz �eloi|a|o|u	8lmycin9'cfg�lulao
r6sttheraUpe*�r�ana:cra�'�el
sk�ucpsthuwi%�tltat�e�inoic�ei�o:�ieCirnr9'it6e�ie�il;l�n�r�sitMza�iola�eiosia�'n�s�aA1n�st	�e_ipithec8i|un�eaehiourckhi6ycZeKai6y6cZec�uologi6yeontica�i
�lt�e�ior�'eis
dssf'�e�a
n$]stza�i�y�rti�v;a	'eih�is,mti>�cf'-bcdefghilmnprstwxsuggestibo>8i	�naihn�'0�e
sographeL�i�yuraehlorudt��'alys�tZi�tp;?harnge�rK�oavlmnrlimat&oplet9ezifigru2rm�a�e�i6sreclt�e�i6satC�ei	BntoCFaio�mn�s/3eeitect�ei6s�n|oadsll6se�i6drZ'6sact�'!|i
sc5jo�ciloKlt6st�e�iuorescenccrus�e�imaR�t�aeiryn&�e6yr{oa
�fph�'�ei
s6y6c
nr{oay�rp&�ngmnnitio�nmun
eit�i	$ytoxi7Bco&�ya*�gd�eaogkticFae�ra�ei�o9-c
n�oszC�e	@i,me!i�d�sbrtile�i'rd)s)sphis9mi&vomi'o�y�cei)
s>�laeiodiograph�e�i6s6ycgpsvover6yre"
seat	@i�spon
�dercksh�atua1�tahotu=va"pm7na�eereosco�pggestio�eoruyxi6c�nansfporme�rlant�a�e6sne�i6d�r6s�pionde�i6s�rr�uS kid�ais=ze�iFd6sm2=nn�'
�a
sergnIeiol,n-itrop|h9'acdegiou	9'ilnrs7�tulf'a�ei
sb�iNcla�oncht-agrtisAtarrdeism9tistA'i�uc,ei''o�tT�nh
�drp9'bnrsu�rMheg6st�uei8ia&lmnrstrygei�'
d;l�n
su�s�eiIo
=ei�ovaei
sb!ld'�rE�lcb
n't�aZa
acdfglo0st�v�n�rteiEor6d�n�oiB�c�xeu�nlDatura6e�il�i�i;l�naunea
'nn|ric#saminoMOscginpuwa�dtion�'a
sl"la)�ddr�sa�ei
s�b�ndupo2 i�'dhsa?�lea�di?�dar!�cch�ei
aei
s8drnculartRlaefhik�lnor'bcikmprsH�yakMhas^'
tein
s�ei
sn
agut�uu?�nd�ef'-ei
swin"n
dde{r�'-
d%lisinspir=iotpmriuck|e9{cull�n�e
yOi6swar�d�'7ei
sn>�gk�le
ni
y�e�'eilo�u�'
dhl$m
sea%Jd�'�alnoslsa6e�r
g&ilmogiycJ�a�'a
stiHcsz	@i	@i
�'ymm
�ee�'
str*elno
t�'Kae
smKa�eacelmruy�hltolla
ahkbour�n�'|r
sesbur�ya�rW'shirCXerved�ai�cu#�b	^'aeiortulnz�e|aia
9'�n*�eortrop�e�ib�itaijan�'-Ti
�ydk:lm�zothymi)diw�euth�'�a
s"|rKva�e
^'e�lc�'�a;slrej�o�eite'
'-.abcdefhijklmnoprstuxyd;sUafmil�movi�ecs.c6.c/u.�'abcdefghi/�jklmnoprstuvwxyzf'�eiJl
sth9'i�sbceiosuyai'Hl�g$?toc�k�'ls�'�s�ieBxn
d�r}ssh�k	�'-fghilsdfsQoa�citCsathFer�o
nshUlnessZ'on�'i;sa9'�n�ait�stEein	$gachikotu*�lr :dahrylraurea*aai|unal�'i
sa�'nf's;c'eslor�'h
soo6Tdllai �o�u!>f�'-abcdefgh>�ilmoprstuwydpstuo�oedall7e	ie�ao-back
�pcr�hro�weior
�anc�dhe{r
ste
it�r
s'qea�n^reaki�ahlorain�tWn7�noth'rsmube�irsrd
�raoKwsse�i6d6s
�aor#�oop�':Fp
sil\elN�rl7e	isio�p6warm�mound�'e	i
sd�ra
_ond�'ei
s8d�raRGeiosh�'e	@i�dr
s4fgn
�stht�e�i6e�kag�td�e6s�'1�g
sa2orX�kSraelock�'eX�i
sdal	�e	�ilrseiidniga
=nt9eR/r�eoo3mcehilptartter'7e	isatchinZgai4f�dg
�haipspEein�ghf'e	@i�d
sdY�eia�iN�caiorbgiZ5m�ybeir�'rsng6sr
stch'<me	ipr�'1�p
si�y	eeoetD^t.{ckei�'
d�r
sa�irl:kac9e�ik�ei
s�p�saiors�td-;l�nscompatGi[�-h�'<me	inR1dodsf'�mY�an�'e�isrerr�ai!�oacou�'�lid�a�elpstogi�yce�s�ahEZao�br�ata�sAtheraE�p�m�rW�il6ao�u@Xvf'-degilm�n�uwet	gempe5r�ei6y"�eshrnei�'�dr
s�'-�ei
sbai"tngarrnag�e	@ia
ynds�'aeioB�nn�'nt�out
hdryMzek .eia'se\�rf�ile if'
d&m�r
s�'a
eD6fghp
suwte8,laeiyge�'m�sR�aR�e
jd{re;ln>'
rs9'
t�e
jgwrinIkd�ai�p^eiaoSsbrair�st'm|iulxlai9'n7�si7�aa-TnPa
f'rsklrt1zaMl�'Maei�mos
d{er$�yf
nw#fNi6r�u�mrdin<k�'sD?d�'�eil
sayeAreilsuf'
dhlrswouse1i�'�is�yfiAjeho�png'Tsav�ahees�h
P'�nabcdef(�ghiklmnorstuzckln
'tla�vlavaX�icie?/hi�'H�d{r
s�toa'�ssalonoonut[hni�yed
s
efi;l�nrrsw
y�dr�s9'dasshacZefe
ni[9cCi�'a
d�ef�r
s�rull�n�e
yoHuaT�r�'bnunIteg�su�p
>'a�ehi�sryn�'i�s
{s
{z>�aen@rs@tergAs�'-abcefgi,�moprsybearin
�g'dnr�s�'eo?sr
s�'Eesnityne'ard�to�yoc
ak
drt�'i�s�n�'i
s�ciel�daio
_mrdlnwenosCr6�s�a
glA�totn�'�e!;i
s�'J�ei
stn�e
geT�r�aloa�y�io�oei
yrdrs�e�nhmo�oeo�n�n�'io
s
y�eneqsral'6seoK�lPltne,yaonA/aga�'m
s�'ei
sCa�d
c	Bnhia-zrcmso�rt.acnshistiatEerade�'6d
s�aabgkrioo�'
szl�'abcdefgijknqstCtyzzclnu�i;la�'q
su
�i�srT�uid'ga'�orssur9aFeo$?f�'abefilmopsuwy'�gnrang'isa&�'�so�xa
d�ru�'
x]icentoot
6s
d
rAJsg'Cs�'�r
st6ieadedra(�s�tlneEeW�rzeassZe�mt)�a�oPnaigdt#h-iblan^�deg5g�'f$sull�eyf'
�'aeiklHo
sH5ulo�r�w
dr*!oa�edesh�'Jish�t	gei&ma�o�urma�s
�'abceinrsObssur9ao�oa3�rn6Tg-7ooul�lpt�'�c�ei
s9'to�weio	$s
dI7kr�'7e	@i_�m
s
nster'�ssck�'b
surInuet�'ei
s�t;�hae`�iJum�'
sweairf'�e�i
saif'�sbta�b&zo
hp�stomet�is�cisz	e	imt�'
�a
s'ers]s9'�r!pye
i
�d�r�s�'-abcdefghiklmnoqrstu�wyro<	obcd+�b�ki�n
�'aei^vor
suwdrC�io7�sraeio�y�la
�cs�tzn�'i
s�s
�e	i�msus=�scdlrtuei�'
d�r
s�nwiZ�r�'�l
s�'�ei�rsh�o6s�t:;ce
nt
'ss
aulYrd�l7�ai=`rae:;hlolrbDdol�ello �nay�'cMsarYdd�o9e�'eiosd6e/�c	nlatFeFoUrto.w
-b
dfhln
rAJsfoot7eackZeaoce�dot�eaen)dcLaeBl
yg)g�e|tf'�ei�l
saei�oyirn�'-eio
sbas4�e
dr�'
s'�r�'
dAe�mp
so�lB�e
nGWaopp
s�e!ia
ns�t
?ut>�rt�a�'eil
s
de)�rpf'Ee
se�yy
�'eoy�'csotrrwabei�y�h^i�n&�rd�nrBmeUlX�nrs
Z'6s�t	�'aef	isLuybc�r*�u|a|yl8�ed�styW'rt
�'�s7nudfltW]eaop'lr�mar[9d �dmn�oqtuetEe*�r�'�aei
s�y�st�'�c
s�a�eue�'�l�nsrau�m9Xcu"�eisim}e�'aeioybc>�gmnt�ko*�uu"Ztund`�iquilU8lFo�r'
dlnr�st/�s�'	�e.�fh	�i<�l
se!�af'�eUl�nrswZot�'�ecen�oq(�sah>�dell�o�'�rg�s�t�u�urn<`ow�'-
sin-furne2ls�'_�mto�o�w�'ehlonrde�i6s6d�rf'ei
s9'Meol :dion^	imc�ee$?t�y|krnzcc�osuentre�ihnik-�olgMhi
-aehikoqrsturelie
�fl;l-�t�'b
dlm�nprAJstao
lnY�a|r�'e�io
yssUl�n�a�aen'�tla]�tunX�nWtf'efi|o
dr
su�lnbs�gc|eflnp�s'
�a�iss�iyceatio'�nCdCs�i	�'�aMTd�eiosc�sa�'6n
ssautr�'7efg
s3�usto�k�eei
s
dt�'b"0fm�r
swa
lakFe�io7�rphili6s6acue�'�s�'eilow-
stterrQ�e�'e
s�t_�r**n�s8i�'�o
so^o�'aeiord�'i�l
s�y�e
{sz$ea�ei
dur
slno�l�gn�'7e
sg�ntola_n�'ace.�fhilmorst|uw6av/�ih�'ei
dlr
so�r
dm�r
hs2na
�'e�him�orstuwyf'
d�r
smtn#�g6Dao�bo>�mheba�ur^�s
ampsetFe�rel�acpaphe�'rshe�k
nst|a,eo�wa�e\�n�nrach#�ima�e�naeilTs
y=l
d�nr�'ei
s�y
drf'�s�en:�g�en^�e	�gei
�'-a#ybcdfgm�rsc�rxef'�sruisT9eorRGeZir�oro)�uenf�t&�hp�aiong	�s8,bdHehl|msx�'eorrs;�lt�uilHl&.ak�'eis�ydr�en�eg�ciLtaria�'*�nd�l�'i
s
ye;l�n
rs
tFt�'abeik.�lorswmH\r7�oe1Pr
dW�rs
u
P'�i_5an�u�e.ne!ru
�iaeKt7�aiollio<�nX�o^'�bc
l�qsM�'^e^'a6c
d
�go�m-rh�sxrh�xG�eo�sG�m�m
�l9'abcdefghijklmnoqrstuvwxyzW'cdgk�lmnrstuvho�'cefhil
�sw6yo3m
dCr
sro�naE�ev�een6r4sX�e
gandea�rn�'7e.�f	isA+f�'�ei,�lsw
y�e�n$mork8�ele	i�'d�r
s�'e
s�'-�ei
swid\It
�'befioD8ps>�a�dr�'�sCyeasdt�e!
nptro?ua�l
f'-B�adEeilnsbai!�t	�'e.�filmsd�nRGei!k�oO:l>�ns�hi,�kaiWsk�i�lt�'il
sen�gi	$y�e�n>'abeilnr
stbl
e�yoxe�i�r6s
n�rf>�n%ti	kyc�ea
�l=tem�sa�n�ii�c|x|zMy
�'cdfjmrstvxhamp'�sese^�r$=oola|iaorch"a$?nega_rs�i�'ei
s�you;�sc�efCtii�u	kyc)�e�ao/ier�'�ei
sMTto�pahkloq�tl&m63u
mW�t�'eh	@imo�stry�dn|rtha�m�'rta�ma.nnei
s
d'�r.ooum<�e�iuerel9'rs�'-abcdefhijlmoprst�uwswit�tei�t\oruz
bzul>�uhlambeD^rothGae�i
dr�'�sn'c'�lv
kil	�e	�i<�l&m
seolrdW'shi�readdgmz4h1�m
s!eack4e�aie�on0�eakZ�t#=euCir�i�a$l�oaiog`gdd�e�c
lg(ohioptee�t�dt�ster�'rs�c�rrE�ein{gE�era�w�io@^r�'-bcfhklnprstveksaX�teepeingt�urereadh�'e>�nwnr
s9'oorXdt�h
�'abceisw
yro :nur�gF�aa
dSt�en�e
gte�ao�oA�ieepS"eZ�iizne	@i>'�d
seburbleil5g�'ei
s�'bims
yoCh�ea%Jthe/�btwinAga�ix�'7e	i�'hb�l6or
sov�eooY�te
jsaeiorull�ei
s�lt'
st�e�igru1�g
seh�a
liendk&d	aegior
su
nrt_�wt
�ste
i�r4sa�eir�'-�eil
s�ymy-neighbo�u�e
ni
y�nngA'n9'n
sEe>�inte�i�sk�tiumdge�i
d�r
si�m
nl�ne�i
dG�m�r
saeiorl|nv�f�vm�ei
noru�'ai�sl.ls.(m�tr�'aei�sl7�i*�ls+mt�'+�i�sa�lm�s�ondf'mh
slovdjei
s�v
�e`�idgj>�nrerbecWkD�i$?uewel	�e	�i<�l
se�sacefgilmostuvy9'b'�hrt|u
yoru	�e	�i�sr�'<�e	�i�s�ueddhamguer�ei�m
s9'n(va$�o�rirM4a�cLua�dd�n�v�aent�z
d�fr
svaeib>8i�ln�gdtl ei�'-abefb�hi�mo
swyhrorpinL}g�'d3mton�nr
ii"�orrd�'�soo�k�'
d$e
stvrist�'_i
sHTi'uloTwc�egnose�i�l�nerenc�t,e�i�ygi�e
P'�sw�'�ei
seot�hb�o�'abfic'�h�aouaT2rttl3�uopR�p6so$?npa7�ninrv
wYtg�ei
sng�'�n
sussia�n3�eha_�z	�'-a�ei�os"�w5fn�a|ef�nHRv�gs :hede�ri0�a-3biour!asei8d&m
s�'acdegijno�stuzcC�lerr
�ahu�'	gei�lmwar�korbb�if'Maei
s�ydm)�ref�ee(�gin|x�rc�sadfltvict�'ion�oe�';saictiEor�o�veQVsctei�'d'En
sa	n=�l�r�'1ei
surx9'
'tolen�c;�tahl�'ri;saH5zgn�thnte=�dH�a�i;l�'i�eaPmeiry$?tyU�d|engMTt<nf'hlorswa�iZoMme*�yn�'&iolok"m�'eiodnr�i,e*[o�ncdi)aiazef�p6c6nwulrfue\�a�s
�abegiklmnrstwyzer�'i;s\ca�fnst'�viWcHXf�'
st�'aemsm4onr�'fie$�l�'�a6otrj�oabn'sbeon7eri�g
eosl3e(iwit�z
hirNeei9'�tnot�'e;s�rrzkz�'a
sug�nu�idaC�i�'�n;s	�'abehios'dnnr�ye�i1td�'iron�oeKa's;eardd�crenMiulH5ltPe|aiyD?d�egman
'�'il;ierk&es�'|aehiorlsma6n�'ra�ei
sn'g|el
'lluc<carm�nickW'-upon-twee5edl�'l�s(ie>�leimopstetc
mheid�r
sng;l�s
sY�tde<�eT�gei�aU�rmt5u�'e	@i
s
s1�taeok�ntt�eacki
stac)lV�k9'e�irlmye�r
'-Jeiorsusksno	
wellLe	ia
nrl�r�i;l1�r
sw
a�ei
sei$-ow�ei
n
sdk�d<�eielle
i�rbble�d
�'acehijorstw�'c+ikm
stzaei
n
sa�xro�nh�al�'g�seI�u�'aeil3o8u3n9'+Ils �dr�nehLed�me_�mk~ko
ktaoy
aei
sth
aei
s	$dW]e�yei_�moy�'dr�'-�ei&m
soffe
n9'Ysn�r`�g�'|eeien�ns�xlCaaeiv�ynt1�rlr�'	�e	�il
sei�d{rngE�s�aildgq�e3ey'seXr
sA@iryahimirisker�ecVgltdere�i&m
sd�l�nK�cd#lf'e�orsqRr
eioquFaf
�iaoujrvriat'ainatsUynag,�ap�atatp�n^'-abcdefghjklmnoprstvwyzeglngxdender�ee5?vlnstxyst$ocn�u�'�eisB�e	@ihle�oi�a�'Y�bel
s�ul
�o�eico
�aist/�'Xsgk�lmpPltraphEei�yc�e�aTsaenUc�eiaX�ct!rh32oil�e�i6y9'aehko�suymreralib�'o�sYnnpten'�a5�nf';?h	$ser(�nomate'�deAHirf'ei
sA�nlnot�ucnvSYaectee
xlstural|ip3�iclei�'
d�r
s6c
n�s�'dei
sMajei�l�y�e�nd|n�r
s�tam
nrgo7lnen4�sectional"�llnrefel�dn32ai8Wau�m�'WcrsaY�f�iouc�eIiO�c�lnr4�ccate�i
d"l
s
-aefghm�no	rTswbt�eno5n"Iami�o�ye�slnyo�w
�eeoe�to�teiIl�dn
r�s?�d"�e	Bns�aeo�ta�drte�d�ro�ut�'#�e	@i�r
s>�iarmo�neoctio>mv9nu�'t
xeriGaei|o�'Ga
d�r
sn
gf�i
abeghi�kloo�pbtyia�lera�le%Jrae�ioFykorr�i�y$�'ZearziXag�anor�egualf'i;l
susUl�nubin�'
�'abefhiop
syb&l�ooarr�d
d{r�t.�iol�doodkaelnord'	$s�'
s^#ug�'s9'ga=`tn�'af
sW@tiolw�'�ei
s
y�e
nost�e'-cbsgoaXta3n7BcC�e�beiotalli)c�sl :nlena�rAWdlnrecula�rth'�lpCh�'adgmno
st50ul'�rtu:o6e4�it�r	f'�aei�l�o
swr�'�i
s�y-Cine!yg�'�l�n
see	'\oaeh	i�l,o�'
d�n
samW'toYna�ei8,cw5ac7ldmularf'�l
sia�lle�y
f'abcdefghiklmnprstwcdrsvcotumulat9ei�nous>�tiv6e�ihesi�vcha8es^�aailab!3ilai�nbliograp�hehilontri6c7�seZ5imicsal>';l�st�'�r
sW(dr`'cais|t4�memnn_opautx�ifRttv�rer�saeiy�t9fgradae
ibti&llit�iy>'1�i
�d�sev3sersit�i	$yna!mlntectrioQc>�negrg+�e6yineer�el
i6sh#qaicKa�i	$seil7�uedbackblav!�oaer�sFsnoe�i!r�s�tcghemiIcstUrraph
�e�i6yapheL�i�y�e�rafPcz2�andficatFoorm+�aougi�yc�e�s,�asminescenc6taeogZ�rqstnxeehr�iemx�acd6sthanic4s�a6sic�akiero�riycKa:;i	�slrecul%JephZ'�i6siy�oc"�a#shilorsaiyrma�ic6seutic�a6s�lsic
�a�i#sa�c5Cras6ym�t�ilyX�mio5Cvspect�iFoiye�d
s�'!iehagmct`�oiona6sl7�ied7Biythmf'�i
s

�'aceioptuy5�fienct
�ecnurit�yzYsgmnatuitolGcliZdher�e�iartisticKa#�isatigraphFe�i6yr5lgnthes�ti6s5zaehiruT+ycrh{�tnologi�y&�ce�sr7�oera�pc,ntansfor7Bmr7Bbaerfa1�paehlortistansQth�e�id�'a
sli%�sUt`+a�alar�iacdegikmrortyc&�ih�'ei�dn
sn�p�'-bce�hilstwyblraineCdik�arain�'�e
saO8ge
n�'
d!i
sif&kmne	i�'ds�geq3ho$�veWyab�laotchEe	@iA1oin@gftringen�ct�t�ia}�y`�n'enhsea�dto$c>aingJhindud�uh�'-"�dei�mprswrat#Ae
d�rl#�aaaitue�teZoikxg}/acehm�oqstyaouy�'�nt`�tit�'
s6ycrxt�e�iEo
s7liual�'�i;l
skoeMkp�'U�de	@i
rsgaW�taur*!ckkt�hu,e}Diaruao�r�betxulla�b�'bce�imnorstuwl�lho�'�ei
y�e;llXnif'�r
sap'R�p
se�tna�ls`e&etrea�meio
y
nrf'-ce	il_�mnrssweetln	�ye�s&rd
r�si
y|�n�'�e
s7uo7of'weet
f'UlX�nrs�e�nrrent�
^'mein�n"8iaolrejvnc�tiaetuac�'1�k
seexkea
�r�'aC�e�z^�nrre;l	�nr�ieorkIn$r9'
a
deio?tuvybcdeghi�kmnrstvxyzf'b
sei
dr'�eiv�m
skf'-abcefghijlm�n>�opstwhear5tdMhlmd�eoS"oa\aeioujlarriyeds����'ing�rd�'e	i
s�dCrY�ad�y�i�c�r
�tZ5aurran#t
d>n
r�s�ae.�i�lov�e$?ouard�'7e	i�l
sea�dl5t	�nsaKBcei
yagt�d'Y�g
sI@sa%oi�nl�lo�l�ohmntirtn'sith�'	i
sa*k�ohoorn�'e
spf'prsZe�iae}opt�ld8�e	@ier�'n
sw7uo7rnau�,grsu9�e�'e	@i	$s�nr�'izsX7taei�mbl�e�'a
dG)lr
swbl�eorthi
y�ncdkt�'|ahm�aein'
dr
sapta�n�ei;l�nsh�ei~m>'ei;l�n
s
dn
r�stsh'�i�'%Geu�i
s�oyCreinnU-ge�yrepthemeI�iAo�y�'eu�io
sucdfm�y!@e�fy�c*lahrsWt|zn�c"�te
rats�klpaA1nloi7Bt>�nu�e io�n
a
demnpstxv
wckrthf')�ei�e;l�ns7eisy�e;ln�eg-e5yf'�er.i
sdl�pEei
sng>'-	�shea�r�iU�cdh>'ei
seimt%'hae=rse>�i�d
scrhgmnpstvzh�'t�'ei
s
dY�r�ep�'i
s��sdg�ikBmtf'efi;l�ns
d�r�sol	�dng�';lTsi�d
-i6y7bie>'ei
js
dr�'�e!i
szf'�e�'Y�p
svZestf'eFxf6d�ser�'�e�i
s
yhze;l�n	krszo
t�'�eikri>�e?e[�zabcefgkmnostuwtei
sw
d#ra�'b.�f
s�ei6yie
n�'rhk
s�'abehilso�w6yd�gu�ei@�ouste	�i)�r�e�oenSsr4s(e
g�ihZ5imfoq�ne}>l
	'gor�sx�aei6y�dYrienspVho�le��i�'i
sTyshX�nbqer�guis�td�'ei�n
s�'|l
rAJs|esdmp�'-bctUeg�hilmrstwybcY�hlmp5rwrotShurd!�leuttin�gs	�ton�eoiso!�nor'�dtaW@turd�l`�e;lnSs�e
ge�i2u�stt
�ein0�gobi*loo�thptue�od�' dsol�rX�taori9�n7�c�nH�eckEer.ihirsti
y�e;lne�so!�orm6t-immindedn^�einded�n�'be]�fiserg
G'
d)�rngdMTtaWlbur�yf'e!i�s�d�rsom�'�ei
s
y�'c
sth�'�ei
y�e
nei
os8�e�}i6yf'-bEefghilnopst]�u
yzbdoJ�uy-blowriy�e�e	i�u�ai�lsh'Ze�uaow�r2�len
rs
tg�'-�uamdp��-u�t3&iiiyers��to[iri'yers��t-bcdefi�mnrsra�yberf'Jei
s
yher�'6sgeiTd�orTs�'TsnTg�'-b
dfgijlnp
jrstybc�jegplY�aoo5dol�lre	
eencilaeiouc�k�a
l1Prb�l^rnE6ot**n8,t\Isie6n.{sl�dfLirbu_�ans!pg�haecke'�tansf'iy
�n�e�ooriD�n�i:#it
y�'ock>�if'hosro
�anoguth
9'v-eA'f>'��ei;l�n
snsg
xhdkter�'bei
suss�'fen�ge��tei;l�n
s
d
r�s
nSs�'r�br
st#�ei
y�enae1gJei
shtf')�e ierf'e i�o
s
y�dt�h^'elw
�xa�ds�cM�'�sfzl�'�'abcdefghijklmnoprstuvwxy�z�'drsticea�'�'d
s�'egi_^r
swa�mng�'-h�shou}osou}}sal�k9'tf'eFxfi
sn�g�'-ce�hil�msyhoo
�klu�bng�'Tsoa#dwi�aa��r
�'-bcostwsleigh�'ei	�s	�d�rn	�g�ei>�ly9'w�enSs�t�'
jg
s�'soxegUr�ali��n�'ledif'drse�ird�rgh
	'e�i�s6d�rai�lhi�ackaCeiccie�'�sf'e	iswurs�'adeghii�kl
sycC�liofuin.fg
d�g
se�ird�rrsidshaL�rattv+}a�celA�n
jd
s�e
yeiaRn�'-bgiswbcp�|luilde	ihoY�emMlie!�rouardFe�i6silds1e��i[�unghu��e6DirfT9e�i"eork�'T9esD�io�rttia9'|n>�hfiro:�n�'abegilo
s�uyn$?rt�'Ts�a:;ey�'�ei�m
sa�e�Oil
ybiq�rC�l�e i�e�anstCg8�ima'qeZnermia�'n�'i�ssmf'�s�'�i}Yglnsf'ei
s
dr�'mp
sa�kl0�ang)s6gY�k�'reteB#rangIlSeV�kadegilost�uw�'�c
s�ef;l�nace	i�'
ds�'�r
s6ye�rdv'�ea-Nir�'fers�'�aio
swynx-Xgf'_ge�ic�nki
sg�n]owoo�dgmnnae�'is�eete!zrbehteiovi�ksrmt�'iYsYce'kie�r	�'	-�ehi�o
sz��omain\mob�'aeipslrsry)zd�ei~mo
sEe
nt�'8�e%�isd�r-"ongA'
sroo
fhifLe1tab1cdew�fghiknos�u
y�z lnpv lf(�b�zartreis�m�tent�u
�')�a�ehi��m]hs�wol�dn��g	�'
dhg�lm�rsyea9�dAWe4eha`�ka�r�'�ei�o
sj�aoemffeMr�i�ef�ynta�c|a�oei)s)d�rn)g�'eiyrrtv�'7eh	i
se�eif�let%'
r�sbrid�g9'b�oah	�ighaf'bd�eghmYiklmnrstz�'�eI�io
syo`�k�'-trY�alei3ryma'qen�'ef'
d�im
s��ao	�o
�'abceiklmpsw,�bhB�oindxEei��n�a
dnrdf'e	@i
s�'s�e>�ns
=heepEe�.i�a�e�ioua|e��ok6nrEe��ik�'Je!ik�l
sla��teht�yllEe�ie�om�laol#l*rork�mei
P'a(�rn9'sV)gf'beii
s6yo7[x
dr'a�sn�g�'l5adrei
s �iocgXkgle�if'rd�rrs��e�'io
s�tsh;lness�'�eowrBbt�'ei
s
dr�'i
s%�s�'Gabe)�hilmps�yl^�oNa
d�e|se
n'
saeior�cW'g�sf'g
sei
jd�rn?vgckFe�iaX�dZ�arik�ntra[Wpu�e�Oi
yf'�p
s
adegi|klnors|uzg�nt�x\ze'dse6oalrnr=�ul�o�'�er.il
sapt)�a�if'adh�r
sl|sWi�oor�l�'�eil;s�ucdnrseA'6sg';l�n	�saPu9'-ehafga	
ir�e>aroozlbPd�nsuud�vuilie�cgh�'��b
soC�lwaae>�i
scth��ao�iCcreh5knopst�uw�'eia�'-nherzegovinQ�aW'Ysmn�'7ei
s
y�e	n'�ishooru&.r�'ei
y
d�r
shFe;llXn?son�'i;sa*�n�5e
acfhnostuni�yces�zaTsl;ls6e�i�thf'ei
dc�r
s�lj�aewyrf'8}a�eiszoeMhle0tx
v-ewb�ailo6ycZeel��lei�'-b
dn�rsf�Cgned7e�or.�ueoo�c�cm�'-�eilm
sd3uwelfRless"l�n=olin�s'ums
A'
cAdfgilnqrstvz-Xhfan)tahinville'[9a�'
s
tlla�obaiss[9ecdeiootter�'ce	@i
som�brs[�v|zg'ncdtgei
y�e;ln=�e�gf'1Paei|l
sgd
n�rB#ei�y[ee�f**ubgknr�sa1�o :keois�'mi�eeW'moI�u!etropheS�d�'io
squ}�enni��eZiouk�iai#�v�rnf'-defi,�klmrsw:ylstweg5gsa{w
=iion�|dCwh~ileri
{sf�z
dlnrYs�'l
s9'7einXg�'fel�'2�b7e	i
hs�yef�n9'6s�'ef,fi
s
dg�rf'^Sgrsn�e?vga�en�'a�l$�veq3hptr�'Fs@rri�un�gow�'e	@i�s
�'-b7�cefirlrtw
yosffR�ihik�f@�o
drn�r
s.�ib�u�en�eg�'TsZ�oo�p�'-cdeff�hi�lsuracei�rnGHg�eot�t�'aptl(rrA\ii�sceounh`bp broo�k
^'
�dhi�mo
saih�r�le
'aeiL�mno�ruyzs��'j�bcdeghik�lmnqst�uvwyzehikt�'
d**lr
s�'�orsiyao%�upfsod�a6scPltep�hngA'�l	�sein,nt�'�eu�i
ss!�he'�l�'e
salt
�'abd|�ef�il_�msywY�lu3re	@i}Do�o3e|yhtc�are�e9'car�d�'m
sarf'g
s�'ae��id�roE"c
d�rs|ema�s�'gnp;sup�'�ai;ss �muH�tdlnsf'�eaSi
sw}ole�';s�'-bc�eilpstw
ydaem`�a7aoxaehl%Jlild�'k�r�eUl�ynej~so2Awt�eorm�'�ei
sn�geras@e	@i�eao�osr�vh	ge��iei�'
d��m
sW'\abC�plei
y�e�*n
�'cdZknsrtxh�'�eirlHRvan6e6lg�'Ts�'eio
srty
d�inr�r9'buD�r$�'em[nU�s9'
d
sn'rn�'iwinXee	@i�o.oh�tol�mhise;l�n
rs
t,Xl�'-2�aefi
ynec�kdr
s}}iou�Vne;l�bnrs�e
t�'i
stwsla �v�al�il
y|�e�iu�raei�8oIbud	$of'
d;l�nrs�i�y
jtl�ln�'i�is
y�'�ei
sei�oz
dn�r
s�ei;l�n$sEel
n�'M2ia��vac
deimnstuvwxyzcdk�8msth�'><ei�'-abc�efd�hi)�ls�twand-bulStlbbFaaos**kwwaQXxrum
abw�or@ut�iin�~n�'-abdEefo�in>�opstuwbf
�iouulQaf6f(�pb�g"�w
_l��eaonce�i6d�r�warst�'�ei
so�nV�eoint'e	@i
sp-ehirou�gmup(�at
�'�b�efO�hu�ipsG5we
dedi�siYlturoke�'�r
sm
�mh	�'aei:i|l
st
y!0blyszedr6s�se�irdrrs�sak�ichkiaste�d.i|tenridWgcdzh�'-^2el
iloa�d�'Ee��i
s�ae~"i
y�'
d
swa�ygthtv�min,�gesrn�rstrahl�(udnta�'rn�aHe�'HXf6owoH\oej�srtnh:a9'hCVotk�r�'.ogW�hei�'
st�'�e�i
s1�t1Pa�t�'aeu�ipsrr^#i
dr�'�i
s�yu�bFtv�ij�dhne�vabcdeglmnoqstxnr�'|an'Xyx�aeif'
dr
s�'�i
s�y�e
n-rekoa-br!|a�'\@-�Db�eilm
sfUwy3e
nayEe�.iaso%JnaD\rla�gaeglplf'$sve*�i�'gs��w_^rm!�aeo�i�mn�'Ma
dE�hnjOpMr
hstw�dort�h�'ot�w9'|eafWo-Xtor�tei�'
d
swa<�yjMo
�'fr;sf'�0c�e>�i;l�n
s�'l
s�y�'a&0ghi
sdnei�oEe	nd)�t�'a
sg6TeLaotu's9'�h-e	@i;l�n�osw�n
r�sf'a�(t��dK5tl
i|oanoctf'i;l�n
s=`n�'-fg�l1�msfu3l�utodegikn
yailb��es�ie�'
ds�'d�rsEei
shFen�eg�'O:lm
sanship �iY�c\ubkt�aei;l�n$srd
r�s�tloe�Oi
y�'2�b
d
sl�'Xs
9'Y.ak;ci�nM4o�st�innirac9'�acsi�ash9'elnrn'ps�ye�s
P'aiel�nn'�irye	@if'�d"l�n�rs�tv�ij�tf'abcegiklmnostuwxs�zcdhf'ei
dr
s'Cs
f'-abceflm�nswbmr�luinded�l�n�/xa��is�nalstf'Eei
sn
�got,hn
r�s1ei
sn>�goA1reo
ya6fved6som�'�esin^Sdhiw**ed8�e!iY�oaeptJy_5ldingnag9'�id�achkol,i^eu�'viU�lderbo$�nHDa�ue*lae	i|wnr-h;lnr�dhear�PteartedRle2 s�'�a�ei
sglCaiySKe�'afid#lsw�to}>r6pd1ngro�vh&icstrxzf'ho�sio�u'�aotl�a{eitii�c�sd
�gpsilatziFoneumo�ncpop�e6y|a�'b
su(�soMneo9'saur�'
s�ueu�i6y�'
jdr
sZ'6s.{cdkmw�'eim
s	$y�eRlnegss	�'f';la	�'ehils�tw9'
dHgsav.eaey�vntd�'
s0n9'B6i�e�'e	isdh��i]cte^#eY.eh�'e
s�lr�'-7ef�h	ilsin-l�~ai
y�n�B-ghlh�at�oa�h�e�'abnsv-reatei
s
n�r�'efi"ln>�os"�tw�'
d'�l
r�siel/�d�aens�'�rs�tgb
'Ts�e �oh�tv�ii� lo$�ox�ageibtour�no�w	bceimnstzxeckkek�'llosi'&ngeW�hRl�nstgei�Cne}i
s@dm*�eie6�s�ceh�(nrost�yilt�'C�a�'leso�cf'
s�tilWdwi*!c�'e	@i�shqs
�'-��b	gefiA�lostwyot3ue�furk^�ei
=r�e
nf�ftro2�kaKiolo7�rue;l�n
r�sebYl9'ae?�hi&0uli;ls�tz0na
�e	i6m6ta�eitio��n�'�d�r
s	Bni�sa�c'dnoj�nW'dI7n�*wK�lnpz
9'�i6yhy:;oezin��s^'�a�cG�d
�ekT�oy�b
�cou�wu�r9'�.bcdefgijklmnorstxyzf'b/eorsle�Oi	$y�'
dg
s��u�'�e!znacehkot}/iai'�e6lnee�rzUnpha�ylaewnr�a(venwalkda_l�'-abehilmnrstwypas!�sr��o:;eo��a
drt�y�'�eD6fi
swh7�eo�ru!�nngham�'khsaeu�inq�d�'
d�r
sryinsterfuller�eer$�'am�'7e	is"a�chkoin�'�n
sehoeo|roth�'�eheabtal�lu�b9)l
�'adeg6o�Wsw�`pW'�ehilyJaisJm�t[e��n�e�'	@ir�_iei
dr
sti7�g�'a�ei
s�e
neoiFs�obrnYa�ofjlo
�'-aeilo
s|y�tlo�'e�ird
s
dpVrt�'ei
s
drA'Csn<�gehe?�ao6sn�'e?i
s�r	�'�h-abgl
szbt�o��t8a7�e�aei�y
dr�'�ei
s�ye
n
rAJsei�'
d�r[Asi0
l*!cldtf'-x�aEe>�i
s]�uJ�u-'qi	
i3uumb �uhorar|a6iw]os>i
abfgiklrr!to�whwdell5aayo's�c�'e	@il�o
s�ueieKna8�ei
y�nr9'i9'�a�e"nmabirexiaf'�sa�c�'�ehlUi
s
yea>�d'-*adefhiop��rswys-eyhea|�dogT�z�'�,g
s
dq�nrt�'-�eip
sproof|�e�iCsn�'�e6gi
sroof�e!i)sirg[inht�'Ee��i
s>�oeB6iv�oad�'e
sd"�l�ne
n�os
jd�rs�th"�l�nc�o)�k�eehy5Rei4ot'st�Isei�Idr's�Ysn�Ighiaicw�k3pn� k�'bu�io{y.yu	�'-bfhmp
sbsailif�fE�ualodgeiA';�bdur
s�ong"lTs
�a6y
l�uol�eeu�i
jd�r�s
f'e�hlUii�kp
st
y
d�rP�i�'E2bcdfgik�nstW�u�yho�'�<e�Oi
y�'Ze�imrsbreaej'�l�ybn\ore<r�osbta$na0gal:ui[g	�'aeD8hil^�o
s lroto!�x
d'�en'�rdo�rAe
nge in�o9'x4y	�'e�hi �m!po
s
?u
dr�'7e	i
s�ef'�e>�i
sy�'a�ei
s�'bCcdegiklmn�pqrstuw	kyael
�o��s*!n�rN�eie7�oo�kn�'�eiso
;mau�'c
sxra�ct�'i
s
�cszM�a
�e	ia�eitio:n�'ehlo
su!o)�rss�'e�'Ee
sa�eir�'��-ip
s�y�eBFo�zroofe	@iTsm�y��andi\�ya�en9'�s
a	geW'da�<e"Zhi|sna'�'�aei
s
y
dl�i�rs6yquei�'
d"l{r
s�en�ega�t�mraI�ef'aU�dej�hid#los@{tb'glya�e�'
d�r$?ty�en�KsgA'�lsouse'$s$s6s�t9'6ida	�'ae.�fio
sw:a
d�nn|s��t
gjun�cf'rsul�wg|ha=it�'
exGrf'&ei
s�y�'e�onsha�wndi�'an9';soU�o�'bCc��eghiklmstx�wyFa[_i�zo0�yi�r
�'befilm��now
y�u
dlr
s�'	�ef	�il
s�ueiFdngFsird�e�no's aae�n(�s4a�nXohackeu�i
s`�e;lneZgss�'�erl�mp�weo,�r�p�'eirsrd#rn�'7e
g
soa3d�a	
ef'e.fl�'aeil
s
yr{de
n:�r�se i:\bi=�nwoy�r	C.acel
styn,eKohf'er
s�'J�eI�i�l
s�y'�ner�'e	@i
s	�'-eior
sryen
�df'
drrs�'bc1ef��im��nsw	$yfLauX�rr�uea�mailen.�sH\lger�e��siye�d
s�'
iil�kcot}�coZrfeA�no�cn�'�b�ehi
swo'�l�ou�ef�o�elr�a�iottWme�oh6uf'-bEemYio
s��b_a6Duz�'Y�a)�eik��w�yi�l�sf'-beglnoprstwzbelplZ7ole
c�Yaine�iCdT�rrod�ul:1o�'-lr
s�8b�Wloruss/�il(so
_nai�wne	@i�'�d�r�sa�g�:mbalr�s�ta
�yodurd#e�no^an�cn�'i�csmya�hsti}u�na�>ne�'5�c
s"�aY�oantinue9'Rs�m
9'.abcdefghij
klmnoprstuvwyzelleganssit�.

9'abcdefghijklmnprstuvwxytiH�n�'abdeilorsl�n**r�'al
s�'se	id�ra�eiygl�ais6m|tfe!
n�'ri�vr'nrs$?en�'e	i
sdt�'m�r
sfUwakEein��gei�'c
dg
sastf'!i
sH�rcorthoO�ndl*smlt�?ua�ei|lm\mu :no**l)�t	�achkL�motuiat�:oaei�c�'Gac
d�i&l>�p�r
sr�t�xlgei�yphoni�o�y�eJns
iqum4�i
	'abcdeT�girjm�r
susv3`ter�'o
sus�lX�nu=Pra
�miyces�kSK'
d
s�h'intct�z8�e	@i�'
sq�tl|zlac'�ssce
i�ucdnrsai%�ultAa�i
'morhabdit�iphill7�ya%�iIburn'$�ei;s0�aefCtt
f'�stei�re1rersinaet�ee~"i�no�'
d9r
sH�y��uok�o�iacw�gmnprstup+�h�oagUnP'o;szoWziirin"Zhf�n7�ooshi�lne�s�foM4ulei
d&m�2r
sei�'
d
swao�l
9'acdefghiklmotuvyb|imt.yao�oair
ai\xnt�iAo�yh"Zeahioulrka)leous"l�n�afmnmt
?uei	ky�rc�e�a>�i�a�eimL�plta
iubt>8ilH�eeiEo"�d
s�n�o&vs�'Zet7OaDaer��wrt%'�a6oornrbdnonb�id�Jaer�'7e	i�s�'-slenifgk�iar�yo�u9'bcfgps6a)�era�ete�iEo
d!pr
s�oorni�a
?u:�uehr
f'Ze�i�s�'a
sthenicZs�'	�e	�i�s
>'-abeio
s�ubg3ua�ocX�kir+�l�'Obght"o
hshacg�k
d�e�r|eg>�no:psraphEei�y
ce�s,�pth�oenic	�s�p	,suwse!i;l�n
d�s�e�n	�sf'a�e i;l�n
sx�tortu�ci'c�e;�fmeteO�rF	yn\odech'm�eni�y
Na�e�oaeiry9'
d$?r
jsn�'
gis �mt�'i�s�ccp�xe�/l!ps�s�'abcl�deA+fgiu�mop�rs:1ulbwcrhade�xreiorr�'�ei�l
s�a�udiaP'(.ni �acdg��eord@elmr�or	�'-&�bh�lo
s�hair'ptardalUit%'Rsbertt%';sao�'-e�mp
swrea�derzso�mr�krnonn'];i;siKrkln�oD8snic�kl0at"eYoemou�nc�iwV)eflagei�'
dur
s�'-abefghi|os�u
yfs�i�iingl�nbaeiou!>f�llogc�ei?vyAWc�e�sla6stelln'saptpor��t
dr�'apd
siWrrouw�nor�e"lmnetc�e�a�ey�gUiha�f'-abcdefiknoAJstuvy�st5'opeSnadl*prsvn�'it �eraian9'i�ss;m�'eiY�l
s}t
{s
�z�di�ye
hs�tera�lerr0a�ae6ulru
bDne	�il
saD�e	�iIbtei�d�'o�saeiloyct"ela�obsr
aa
?uWcd�eaei;l�n�ct�eXu9'�r�aei�'b
dhlnpr�#s]cwexro�Vlig
tht�'8�e�s
�uow�ed�'�s.(ru+r�'-fitstri5plosw]s#Ou�'b
d�r
slNriel�dns
aegter�rer�'�ei�o
saeiou
ybin�so!�i6l
dlr�slon	$i'�is�yb�e;llXnsal�'i
ss
�z
a
�e	i,mmtk�tcn
tYk	�'d�abeiUr
salr�l
dFelaiszafe�itioX�n��ae�iCdCs	k�beWglnoprw�'
d!;i
s0�a�'ei�r
s}scsf�zali;lsszaC�e	@it�eiaC�e	@it�ei
a
�e	i{td�l)iUu)yousE�l�yi	�'aeior
s|ubln�tirl>�eia�gOOnoup�ekeP�r
d�er�'b�ei
sur�iy�'8,cl
ne�Hv�'n)�r
s�'�ae	i~m
sd#�se*�l-�tas�'�$be�i�Msrd�r
son�'�i
s�'ae|hi;loprstubcril	,lae
y$�n�n�rsi�otaiEo�y�nteiev�e�vison�'�e�i
s�'
d|klrstl��a}/i�'�ei
s�dt��k9'�io6wlstaln�oari	$y�eti�y�eCstradnaou'lYn=t�'i;l
ssz
a+&e	i,m%�t
�a2�eil�'8i�sla�u6r�t�'n
s#�t�'t"e
saeu�iudocia�n
dllac`�ccci�n|aiy9'c�eB#ior�Dnla�/titu92c�dz�a�olaeiCer|�tAe�'�d
s!
nC}sS4zY.a��ciEouiadnovEKn�ua�e�it�eiEon�n�oreif'
d{r
su�ac�lthin
9'�sA'Yo�'-abcdefg]�hijklmnoprstuvyjsackeisd8r'�tn0vghia!�rcknes4�s
9'bc�fmp�tv"�winier6e6ia�l7�sbeo"Zll�'i
ss�*z�a
�e	ia�c�xa
egn��g�'enste	idr�'6s1Paerariaiorsu%�m�d�n-hlnrx�yload�iyb�d
�i�o�'-adi
sb�y1np64e��uaSpct�e8�ePi"�acfszero��u
a+&e	i
a2�eiundu\�myla�inrcluelaeitS"oto�s�zahios{es�'�eof�nemi�snog�men�'ei
s�mscf'�irsf�a�'-abehiors��wciarr!�ynd@�emo�m3noar
d+�n�rolder

saep�fgno�ciersan'
ss9'a�gl�'i;l
s@�t	
g?�ilmprtvra�mph�'T9e
s6yogi�yIc�e�seyg��aopatKghulmonaespi5rhora�casc�uoz?�ohar��p
f'
defg|l�rstwry
nr�'�ei
s
ns�m�trV�u&ei�vs�'	gei"n>mv�'��a
so�rb�ae��i�olli(�gbc�elnos
9'boRs(Se[9uatur8�ei
nsz8�a�t8�ala	$g'Cssl�uebsn�rack�]eirsn�ge�iTsTd	�'�aeiostyWnto��nns�'YegA'lV�e9'a�sWtwd�'	@i
s]b�o�o9'��laeirt��hlrn|al|oc,�nha��eae�Mfioymgsl�Am|prG�t�vgl�tyi7�eCtil'�ise)tvTd$saol�'e
ss��qra�e�oA�st9'&if'	@i�blmtu	�'-eil
sysin!�g9'�d�rn*�aregio]ian9'YsD�e	�it"nf'Ze�i
sein,e!�o�dCss
aeif'
d�l�r
s	�'ae�hio
s�uc"�ltci�ohian
d�lnurttae�r^�rr�'�eu�i
s�'b�eaSi
sag�'g
s�1e!i'"no�r	�l�'a
eioygnteenzhoMhoaceln�oge�'
swa#yk'ferg�u9'
d)�r
s�tlgj�tl�ntrl\t�'V�i
s
yf'-��acioac	
o�l�o?o�uS vio_ock�n�')�aefhilor
sw'
d�lrs�'
s�tian9'DMi�sRuaog�ein(Si�rr�el
nag�e~�iE�ogmnopraphEei�y
cea5En�'e	@in
sagn�'�e!;i
shil�i6yi�dhreel�'e!i
s�d9righ�tdse>�i
dnr
s�'A@i
s�y$�'ao�s!�t_pabcehikpstub�ln�alan�c�dovJaa�had�rei�'
d
hs
�'-b
dh�il~m
swryhlsardeZ-no��aens5
ioo#kardeY�noa�dork�'Ees
�'-beig�lmpboo{kaoc0�k��o
d
s�w�Je
n>�e
�onMo�g�o�'e	@i
s�d�taf�e�iKraeio�dn�t�vdr�Da�lrto>�l�aj,dMelno|ui!pop�nec1Nwf�k
�'-aeilor
si�`o	rn"�wed�t�'lr
stlat�e1�i�'
s�t�hgl>�n
Na�ilei�'
d$�fmr
sbDaeaghP'�sf)�rai0ot�e�iobYeailrf';l�n�s�ti"Znst�'i�r
sc�a�'-abcefghii�klmnostubvi�wa
\bsnd-d	oittT9e�ibc*�dflmprstwoli6c�s�t�zhloresZeZi�tysm�'�a;�i
sa�ma?elaeio�puy6np�s9Ht�ng�nn�'Dne	�i�sue	�ig'�d�r�s"Zfst�ze+�i�td6r
sicf'�aaCtrluecUx�l?a�trtroph�ei
�c7�so;In�bY�i�Doa\ah
f'-aefil~mpuw
y�oauCpcb�l�r
s�l�eUlnX�e��gi[gnehnn�i
yra
_s9p}�eY�ocgnrheiou�stiz�csz
�e	i�m�tla�mXmori�yc�e$]sz�a$ea	'eiatei�o�vceip
swor#�nnY�gill��aa�uig.{sht�i6s*uaelor�yr�y&Jst2/idrtr
a9'i��ne�kr*0edl7na�e
�iolumines9cic
'ai"l�?ss�&l�asot6yT�lon�'!|i
sic&kinX�t�ga�i9'nkuilliN�t9'aeil
yi�l
dr[_i�y��e;l�ynGelUlcd7glsta��husio|ua(.ni�dsf'��e�ia8l!tdikrflo�wf'eC.i
saeitlt�g�i;lTs�ei�ov�e�'
dg�lr
sw�'�i
s�aicf'
�a�i
seir�wion�u�'a�er.i
saeiolncir%�aerf'7e	i;l�n
s�iGy
�'��-�a
d�mnrswl�adis�h�'ns�'e	@i'o
s3�uha�m'1�sal��ntr>'9eCsf'Dneil
sng�sD�eingFsa�i�yUr		tV0r/u�'�ei
stoKn�'e�lm
sunne
'�ss
anP'Xs�Rgsef'rs�c�s
�t
�dtubv'-cm/us�ts�ro�sG�wm�s2l'
�a
9'abcdilmnoprstyzsueif'
dfG)l
sXises&zcu9'%}aaeio%�url�ll�'|e�i|ysto��maei�r^#ur�'
slbw6y
d�r
sl
n�llidV�nD^haeilstn0Ade,sbrs
r�sa�i�nte�iEogd
si>o�y<!aeott�a�eial;l	�srabna�cte�'E�l
s
�'a�ei�pmop
suA'r�'he	i
sn�s�g|i�'p
sthaape�i�'TdTsho}}nlaiorf'i"l)stFyt�e	ilimsmi9'iRs �centt�'aei
s?u
nt1Peostbtzitue_ia�poi�cEeour�'�eiQqsw�a
n�orsMau�ei�'{Ge!i�'aeir
suu�vr�'
sUunrsanri	$y�a�eia_l�'b	�ef	�ip�soar�do��liec�ei�mglmprad�me�s)�ie�'
st)�er�e�i%�eaeiobulf'i;l$sYas�tz
a	e	i�mt
�aei�'b�df�lmp9r�sYxoar�dioldg'�s2oie)�ccfnpsuga8�ei��lt�e�ig�o'se�t0�m�t��imQ�seW�rpr=li�y�e�o'�ss�haelio�ccpthordat�ae6soda6s�nhora6xi�u�d
abe|fim
ntuvmic�s�'�i	$semr
abCdmecn�serlla�uaio�u�lMt!>fsv �i��pascula�r�eoni�ya�e�olf';l�n
s�n�s
?u*eai�sin�e;l��n�tfo%ti	kyB�acweat8�ei�n�orarilV�me�aain"|tc�x�afe^	iaisr9'ean�'rs%�u;a�einp�a��ol�io
oao�ucea
anlogi6ylon9'eq�sa8n9'cio^'/us�t�s;i'a�begil�moruyin9'�g-bcdefgiklmnoprstuvyc;�hjWlo�nP'C�iors�@w5Rrtognath�aEefi�'ei
s�w
dre	id{rn.{c
g��arin�'�e�i
snr�st�'-�eilssmokD�e	iikawf'�e!i
s	�'�eilmp
s�wa�'i�da�en�'s&�hersa6i?�n"Zr.acd�eiklmeod!bolFpit��hea�nceothRe�'b�eil
s
y[�o�en�e
gieneqinge if'
d)�r
ser��s
�abeZ�fbmoperr�'1e	il��mpsain
��'
sl�o
P'_�aleiO�ms�'B�e	@if'aeilo
s�gign/�'
d�r
non�'ei&�s
dAsa�ilL]l	9'cdegnsteir
y�'
dlr
s�'l
s1Peor'ssh��vip�'s�i�y�enae
jg�e!�oeil6orL�lgazr��ea9'�Tgsek-h|l|y9'cemYish6u	f'-a
dl��o�rs�~rfbei|�osV
sn[9g
�eheil�'	�eil
s	�nsz�ae	@i�d9r�sae!itio��n�d9r�sei�d9rng�'�sn�ge�or�v�'eir
s
d�r�uy>'rsclC0nl�e��l�i�y�\l�s*�t�'aaKbel�mp
sturt�r3it3ialru�'
sx�'��r
son�'�aei�s�'
d�sa�eiidPnnP'esq�ua�eiryquidd}Di�e
naObeli2s2zltepBef'abcdgilmor
st�wybc�dn6sa
niter�'7efig�l
su�l	nsza	e	itb
�tJ�ielicca	'ei��b$gtW�gr�aomiou�qate~�r�'osnnay�'�seir	f'a��b
d6eh�r
sblge��ailt�l�e;l�nostt�'e	i
sd�Sema6s�'taicf'�a�s�a�i��yaeio��tdtA@i�yan�'i?sr
smWns$�vt"ya�gt%'t��oen'rstten'stvill��eo��w�'T�aeil
sn9'g�e;le�sjbl|n�eio�n6s�'�aeir
s��w
dl�r��ns|m{teo|s*buo
�mb"dei�mstu�'
d�r
sdf�n�tDMii��d�sei;ln�r�sei
s
d�s1jsot8,b	�'u
behl
stzaluf'b@srxrian+}d)�aams2�iae~"i
yhnooch#�eoo�g
d�lrf'bei�l
s
'to�t�xil�Zlcfntvet"rfe�Ju�cauq�ui%�nee� f9'acdefklmnoqrstvwype*te�li;l=�nros
n
r�sYkhke?�n,�nf'-�abeilmoprs]�uilJ�u5Rni!�soox�k
drf'��bZe�i	$si��sa>�t�sf6Du_\oo<`oum':Fmsdar�'sk��prstI7v�'�b�e~"ip
s
yi�e	�'eV�fil
s
y�e;llXno>'sea�s�~dei
y
�'-bc
dmp
slbwcpsuk�ta"rkip
�polJuar:�dF�alothonX�gar�li�e�yn�a�o�'-R�f
sd'oeu�:vhovP'��iaimstytu�ei	ntoce%�rsflb�oeywoo�d �eenhaYmabiC�nC.inotu�clsuminescen�c�t�eyAtitz
f'acprstttracvtezWpreve�nece�peyn5snth�Se,(aherapeGi�yuti�cra�irogP'3egin&zdl�l :a�pueZ�i�'bid	@ir�soo�k'b7e	isoard'FsFs	inor6Ttuvw�y9'�esh	geieonkbm�yyr�dk�oe(.ea�iyP�b�'-picR1kb�'i
s;�c�msCmEiel�lahstpea#�k_�i�'��be�m�'efl�i>�n
s
y�dr�'-f�tle-stree/utie-�lug�lrbuair7�yl�_iot�'Ysolnet"t�'e
s	f'�abei
s�t
yac�c�ene
gssf'�eenn6e�e�'abcdefghlmnpqrstuvnr�gtib
';soscur,o�a��c	f'a�ehkln1Pogno�'��aland'�s|ae	i*�o�'dr
sA'�i�yAaeisteYrf'�e�s�'aeW�p
sx]w;�dsa(.wn	�'-�efhipsalnd-\6ei\>ves�eear)to�xhitsey�'�s�t�7e�eingA';lf�'d�e;l
st�oain�'sh]�ifon�'
�a�is�gnuahua�'bsbdeilt��l�'bcef�hilmpre�ia6dr��iarrss�heis!�s!Rkinde
ir
Z'
sroof�ei$se�6a�n�'��aYsf'afersc�h�'aei�n
s
yg�o
dc�r�s'en
r��s�eg;l)se�ornYsabeinp|uera7jioraz�'
dr
s�'�ai
sc�ac
nhaun"Zgr`�re>�y�'a
sn;�z�'-ace�g�kg�l1�nostwswtrJ�aagY�g
��'��bmXst�iw�a�e��oheirinc��h�^l�'sre�'o
s �ktra
apz�'el�i
ya3g�'bemop��soar�dw�yZ�au�nlat3aei�y
dn�rwdha#�la�m �a<�eng/�'
suiaiopr�clcg��mpraph�iB�yortdi�y�e�sact
iEoe:;rf'�ei
s
y�eKglne
gss
Z'�e�iu	�pehil�'Dne	�il
sD�eingA'�so�ZlnaMu�'-c�io
stcR�hhat�'
s1�tsaaeg`�orlin!ga�eivyl|sri�o�yce_gei4�y<me�iaomydiaf'/�e6l�s�eradio��l�t�;a�dnP�ta�et�eic�o
no6Tnfpqas�tlouorocar$ibr�mhlyEl�tas@�tukiciklmnoprV�suw�ckors��t�'-aJei
sa�Gf-blY�oblocrkhlo9Hlate'y�'
sFycrse�'�l�n
rAJs�'b7eg	im
s"�oir�la|e6n(�s"Zye i>'bc
d�r
jser�rherrA@i0�yeiclrsaylcifyjesteicto�m<tith��i�',a;�i�sterEone'�rstera�sp�"sf'ei
s
d3rdgriochthy�ecryan�im�q�ksGaY�ei
y�enae
gf'�h�ipr�#sei
y
d!r�e;l�ynadeilot�ulf'�e;l$s�'a7e�(i
s
lta�e�'a�do
sg-�lraphei
s�y
�ce
nn�o(�se�gK#eg3�iraphFe�iFy'Hl9'6x�'S d�e!i
seioyt*0ist%'6Tmost��m�ei
�'|aceilmo;shurct"hnd�e>�i�bs�ao
9'a0enn�'�aisstz(&e(*i�i0ye(*iYdYsen'rat"eik�eas�'�eti�[d�[mlpogi�ycalx�l/eh�'Hemnaeio�'kteR1yeioc�d,nA'
�ai�ns%�sUtgra{mph!|i�y�'
d$scn�t?u9a
gd
�gUlpsZuyna>�mhl�1o�aop[�mhere�iioc
�al	�sei�'
d�r�sbglmsPlti�Zoraph�'�i
s�yogi�y�c�e�setEeri6yc�atratigrap�hsar�lo0?tlnid�sthe92ms�tbcdfgkmnprt^�v�'b
si
y�e�nk�'�ehil
s��oe
ne>!il�lf�'�e�'1�g
so�c"�k�'>�amp
s�ei
yhFe;llXn�'ei
sn�gd�gkter�'ei)s)d�rn$g�'�ei
s
y�eE�llXnerZe!irsapcabr�aa4o6hclnrth�'-^2egil�mwyof-englan/udoEe�iaiel	n!5nl�'ia�n#�iyaor�2dm�a�eY�a�'i
s��s�'eo�i
s�eig�nu�e1o	;e	@inz"�ep�8a�m
9'acdglmnprstv�B'b<�oatt�aace�dtric2sx2zeIi�/l�a'
s&�'iol_xiK#lrot%'n�e
i9'Eea6sur�'^eDi
sate�raintr
�oa
?u'ted"lsam.�beria–ncdegnqhit�'�ei_
o_/e
nnnat�iureryr�'ei
s
dlļl�'mpra�'stcope�^'h
�ioed�qgraphEei6s�y;�c�ehil�e�ia�mula�utab�mrIai)zuef�o�Hhro9'floxU�ac?gqra�eludi�aei�'
dr
s�t
n�pilm�st	�'�a�ei�o�r
s�ye
nanrt�'i;l�n
s+�s�tz�e�ior
ycflnpsvirs32ce�i
d�r
selren�cti
�aex�'^2e	iouc�u
�navigat�eIoi
�o�ocptrib;pehct�i;leeran>�ctial�i;lTsaellat1�ex�intaa�ePi
sh�i�uo�stia�cct�g"stv�eZu�.aeiry�bIHd=t�b^2efg
nz)iro'�uen�'�l�rQqsaioute'dcnxu{�l�en�u�'e
sl�ls�'�eUs6y�'swca
=p$-i�eivU�cli;l�a$]s�t��ziL�d9'aeiouvwxycdimnp?gqrstuvw.fxykf'eim
s
drannan!sd�eo�s�ige	rn&�ebmro8r�'I�aei
st%'a�e*�ovudz�ioyan�cx�t�'�abmops�aee*r�e~"i
yru�'	�e	�io�s�:ur�'te	�i�s�'d�ei
s��oh�oe�'cdgknsa�yr�testi�nf'�neio
sru�'ous"�lr�'7e	iosAu�'�e i
sish�l�nh�m'swiFpf'bep
stoardf'Ze�irsy
'reX�i
dr�'b
soa�r��or�at"aeik��tYyP'mnr�to��n��c�dWcfnobys�ti	kyc	geatinoet�'.4i
st4@i!n�'rej�s��vhps|tf'	gei�'-ei
sknif�v
jdr�'-	geTfilm_^rw
ycloncsious�ncious��n=ic�efUl�yn7�s>'ai
jslf'i;l�s�t�si	kyMaceatig�o
ad�r
sessg�nanr�t�s9korB�k�{hterf'�e i
s�ydsei9'il��t�aWn�o|u9'�ae2�it�'Yn
sP�wr6ao�uphobia
c&aei�'rcEe��h�l
�u�'�ei
s	�'eimstwd
y�e	nx!s�loon�'s
adf_�gmnorv�wnr�tv	-J�a��eil�ns]�u"clsJ�ui!�vha�Gvn�gi�i
yeif'-aehi;l�n
sw"chsY�ueaded�l�nigRh#�n��s
d�r�se��ang�'-h
shou{�sou*sa�i±tD^y�aeidau�'
sr�t9'ae��o��s&ctnc�ste�i�ya�u
P'ei;l�sne
9'�snRc9'pa �tegikmst1Po�iy�'�m�wc�'a
sli;ls�'�ei�lQqsont-ferran�de&�i�dlran7�d�e;l�nbcefrimnopqtvrxu6rhke
f'�d�s	�'-abeijsthroug�hb
l�a
d�r6tac"ktr	ent�'-esser
�vle|i>'rs�hf�t�'-ho
sthang#?eangQ�ei��r��oab�ect�xte
�iri,c�e%�iologi�yt�c�e�sf'-Madei
sdowCno0�wn:gc�egikothf')�e>!if'Eefis
yil.�srm�eint8oc�'�aCti
sf'��ei
smeteLjr9'�o9'metrici��sag�n�'-��bp
sc	
ol3oe>�iuei�'d
s
y�e	n��sf'orsr�aid�seAiƌc�se�\it%'den'abcdZ�gi'kmnprstuvwK�yz)�ck�'-�ei_^r
sand-dagSgbe	�r�hk�'-eC.im
swwatche�ir
Z'6s
d8rakTe�ia63i�otch8�e�'dh
sei	Bns$ hop�psotnnef'�s�Je&�rp�'�ei
sacei	�k
lze$�puE4r�'
d9r
sy)d
nf'1�p
se
o�t�aeiu
f'-df;lm��norAJs�t]�u	cr�dfhkmrsY�uro�,piRsi�ta�un�iout5hatei�e-circ�0uis^Stout^ShuV@n�Dsre	i�'d
s�'�.h
s1�t��u�'bei|o
s
ds-bhlmppk�eru�Ds��oi	8n0�a0�eHDiEe��nds�t	�'-b�eils
ycuckoo-�Kl��e��u�e�llXnest
=s�Sce&zaei�'
nr
s�'l
sea�fA@vs$�'n�'�e.�fi
s
n��sa)pbKBceimnst
�'-bf�hl%�mr
scfl�aoot'7eaeu�ib!3i
l
jdr
A'�seo�eotf'Zea�noo{m6t�'dg�l
s-3ups�'�e�Oi
s
yi
y�e;l�ne
gk�y�'ei
s
y�e"ln�e
gter�'�eC.i
snRc[h�utiriv-yiӊvrirvrxdte9'bsa"`nĴdemnes�t9'd
gno
�s�.r
�ed�.L�sainsL�adaria�n'�s
^'�'-abcdefghiklmnopqrstuvwxyz
abcdefloprstwlul�i6ythZ�oerlligerenc�tanR�dhoaFi5=nnouspizUrrdinati!vnse7lependenE�cX�tdviut#?ocatioQnolu=vtionnaounde�i6d5RrocRacprwcturR�r�_aetra�nt
�eio	n�ove�l�ns	ai	n	
oevdinat
�e��ionersh3iirlotA'Csodu5celsigio�nponqditgtne�iCsCd#ArarY�rsrimoxazIoorr:kit�e�Gt	cdglrstuxh�'	gemYil�mrwoad�so��o�ho!�or�kj#uula�b�nt�ePi@o	�'-efhim
sbfhY�l\@io�l
drscei
dn
smc
t#�aie.�s��l�Xo
nti�oine�irrsste;ln
r�sei
s
dqsiculay�tt	�'-aegil
sto-co=aU-l
d�e�r��u��a�i�'-ei�r
stha�qn
d
�rYs#�g>�na��e3�itho�qr)�ei
�a�n�'ab?�d�li�nor
s�uw6ilrt�'�ito(�g�'e	ildr�')sei�'
d�rstojnl'`ss�a�'�m
seb�'b
s�ei
y�e	Bnachkor��t�'-p�iscol�ai�uy'd�sia6n�g�xail"Zorbag/mnWs9'eEaea�'
e
r
s�'-abcef~"iln@prs�mt
yaefosJ�u-ndhoodle-deo�od-�Gb�&eyed"l�night'isn�gf-the-�
rwaoY�l7o�hb_�dmptull'�yam)piW�o�oDQrou4a.rhrafe3r��o
drv�t^Sy'
eight
f'��i�se	i�'bdsi&ud5d��hey�'i
ssmo[iac�hu��oc&rker'�Ys�s�'�ab>�n�osoW�l
'eat9eR[iFo�'�ade.wf�gil
�o%)psry�e!iBl�'-b�c
di&lnp�r
stw�xswitcZha��or�seake�iJ�raD�mendencg�t6e�i��yermi{�nor8dc)�fA�nl�e
il
iwallT�o
dflnqrtvx�'i�sut7e	i#=oscation�'
�asfic~ieunterat�a�erA�oobit#AeLliu8Wacei�b
n�ov
=e�iaen*�er�nalf'�i;l
sitstei
s
d��nensi]vafc�$te�im�serry�'-�c�Bhmp
schm�qptaJ�u
=kou�sL{aa)�bT>ao�'-d7e	i
sF�d<`ax{a�'eY�gin
swnoc8t1^taio)�ctx�eristzanctiovn�'@8asr�e7�iaObn�c
t�2mscent	$e
ihIHeaeYno^#ub|nita�ei
s�ntion�'IyasEirnrsei
dnr
sc8t,e�i	$yi�o
Gvd�'/�e�rs6hf	�lmnrrt�'f
s�eiur��e!ibai�t�'�acc}eistidei
dn
s�ct�a�lur�areau
9'@8aquei
��'
d��s�y9'abcdef#�gilop
stuw�'�c�>n
stitu
=de�yr7�thei��s)c
f'-b�ef�li;l�n
sbLhslo�Nohould�6elo��oield'
�'a��bƌc6emors1t�u3ymbal5lpteratoaiitnX�dlba
acf�ns&�t�';k�so�r92eaeiouWybgprtorat�eiEo
novn�'i
sstr�ee	@i�'d�n
ssei>5b
n�'�b�deig�l
s
dnaebq�rbq�reCiEo
dr
sal�'i;ls)pzaceg6tg	8utf'ac>eio
sb{�l��b
n�ov8Yeis��t
�z
a
�e	i,m�tr�'&a
sn�'$s�eial�nty�i1edemns�'�d��r
sat
�ei&o	n�o9'egsarit�ywooV�d9'$�viIroDcgiqtC}ud�'@8a
sui�ya�e�ulbpi;lTsT+ydsi�o&vgmnprsune�'�d
sbiroa�'(.n	�'eino
s�ylrs�'�c
sac�es��zlf'�1i;l�n
s
a	e	i�taddscop�e[_i0�yh
�'abefil�swdntaon
9';s�'7�at's�esiIbu��olindnes.(s^�c�daus�ttl.l�wnmns.<zeter!|iy.(g��tes܉sa��yst�ae
i�Muum9'6s=or�ur
�'-abefil#�mp�swbcfslindnoD�das�<terg!�eIbnptt�a'Fsliondnessg'cZ}k��d{raus�tl*�lness'�eFsnsz+g
a
�e	itEis+/ae	�i�d�sess*�lnessg'o�iay�Asoscop6e6y�'�ei.or
s�Gsa#�nmbnai|u�ea,�n�u�'Yn�'a�ei
s
r�tsC}zC�e	@i�t.yabcdefimopr#�t�'e�kn
stc�Eh63o	�'ae.�fio
hsut�'�a�ei
sR�t
nv�Tenagegi�btioon�'J�a
sr�'i�sCyJ�a%Jcsf'�'
sbFyst7ei
�oTsb�o&vii
_laste;r�x	f'�$bd�l�rstui��o�y�a
ce�n
s�'t��i�'g�ah
spp1saio�hr
y�e�trt�'ae�il
sbirllJ�ie	scn�t�'a
sl�i;l��ngt>'
s��eC.aeio6su�'n
sd�'�ae i~m�o
s
d�er�'-
sin-chie/ufmnrorat�ei@o
n�o��vcdstei
d~mr
saJ�ei
s�b�turahbt�e�'aei
s�rt�eiEo
dr�'6scei�'�d�sa	Bnlf'i;l�n
ss
�z
a
�e	i,m�ensta`g3tut1�inoesrat�eAiaiur�'i
s�ya�e6l�ton�'aei
sir:�eW(r~m
staei�bl�'"l
s
dedr�'�m
s�wdn=t=v�eiofAo�ti��ycZeS�a
>'-ae;l��npsw�Jlrso%�oe"8nli�tw(t�r�slacef'�nrsa�'ensreAUiealf'th�'
sntaeili;l��s�tc
n1�oqst+�za�b�nt�eiEo
n��o
;vug�e
�e	imt�'s�'
�i�sa�i�yr!iageiObt
�eiEo	n�ov�esi9'r��ao0sf'aeilor
stucnrqrsttf'ei;l�nEo
s
dr�s
n�odiy�je�i6s^2eon�'a7e	iQqs"�w�b�'	iaN�eitbtii�liov�e
nsment�'a7e	i
sl�wis�'�ei
non�'a	�ste�"i	�d;l�n	�sirb�ile
yf'�n
s>�i�dObeln�rtl
s�a�eing�';ldsiao�uuX�sa�bt�eCior'
yei
dn
sc8t�e�i�y
ntmiEol!
naeicbͶtaeiycienc8t	$e�i�yns�ae i
s�ta~n�Scmtxent�'a1ei
sr�ti
y�eUl�nt�iyaaei
d;l�n�r}s
n�o
�svf'ei;l�n�d�r�$s	Bno�tn�'@8a�e
sacwemU(b'Enaite�i#=o�d
s��tent�'a1ei
sC.inrs�tuent�'Ur
s=�teit>�u�d�r
s
nteiEof'�d;lX�n
s
noW�n�'x�aei
s
d�rnd�'Ma�ei
seiohsen
dsi�b�ovef';l�n
sz�esf'eiEo1d
s>5b
nٮovsmise i�'
d{r
s�orol�llnstsio�ovei;l�nsri	$y�e;l;cerve�M�'aeX�ibt>8ileyi�o
dr
s�'-a.�e�wip
sliter?�a
tho�bade�'lQqsi
y�e�n�'acdefgijkO:lmnoqrstuvw�yk�n�)raehilorutve~ne�io;lTn�r	�s-conv�|eadinprstlMae>!i&m
sei�d{r
stv�'e	i
s�daEeibi�ltra%�iteCioL]ct�'i
suov��nali;l
{s�tf�zntf'ei
s�'egi�m�o
s"�dׅon�z�a
gsiovn�'a8�e
siU�l;r�'ei*[o
sde	Bnelos�ria�rtvZe1DiEousne�sLQe�iA�au;�dsi�opvcmr��ut�eCi
sitan_td�'areWi�sn�t�c�tez~ste�i�'
d;l�nr
sbprsina�e�gisce�naar
sei
dnc�t�e�i�ys�'��eAiaeiouy�hbDmmnsnaei
s�b�tsaeU0iU(bt�ei
d"l�n�r
scenK�dsi~�o�gl~mtlBaion�'ae�i
slf'i;l
s�'blmnr
soo�lei
d#�n
s�'i
sn92ia�iei�b�t�'�c
sc�i�eit
n!Rv�'�a�eiEo&�r
sb
n�ovi&l?ol�e�ila�eor�tkm�'rdfsylow&e�t/�'rsaeilorub�'1�bel
su~lcdrsttison�'ei
sdxGr	nJnserac6lt�i��ye�i�'
d�saemr
s��b�enc	;eien�taeib,ll@esJ�a5eiEo
non�'a
slf'"l
st�idgnrsaeint�'�e
s
dn�r
s�ctF�i;lng;l�nura2�ei!0btio.Tneif'
d~mr
sm�aei
s
=dcat�e�iEoaiug�t)�rct�'�ei
s7lu"nУoven�cK�tV�crumaei
sb�l�ntl
eCy��i
n6Qs�tnd#�ei
saeoter	,nre>'@snta�ei
stioa�ncstia|un9'iRss �m�t�ae�i�dN�r
s�aEei9'�aeloranrsl�eiG�m
seirZ'�ito6sa�tsl�'2i
st�e'�i
seoxytmerat8�e�i�'lI�eaeut	$sulat�e�iogsWvant�ei
non�'a
sliK#lsmt�'Ys�'�ss�'ei�m,�p�wd�s	nonal�le�ioncteiyze7li;l��ucef�nf'a
jsl;l�nTse:r	�.eouctura'�eiyb�linei
s8tgnra"cl4nt�i;leCi
d"l�n
sctf'ei
suCm�ovax�e=i�'6e6l
saeu�iti
�of'�ne�i
s�a�e9'&aeiouc
dlmrpxt+�aeiEo
sd�l	�n�bc
nov�un�'i�l
ss#At�emiK#l�a9'|y�e
npvtiHDo�aeiil|rtsseur�'s�h�la�eiti�o]v�zbd
�oueirsMa�eiEo
st�'#=e#?o
sstador�'e
sard�i	aceioptunguine�ioireoncte�'-g�l
sstric�GkB#inu�as;l
dnipt�'�ePi
scrdnqrrsruat�e�iS�oti�vstu
�a�sf'�e i
suen�cti;l�n	�sali;l�n7�st�iyvaeint�cioo�svn�'iss	$m�tef';l�n
sixGr2�rdg�npsera�eC.i
sbtl'e
y=�e$iin=�ei~mEo
sration
�atei1Po
s
dnc8ta�e�i�ylmnr�'a��eiOb�td�nat�e�iEo=`man�ct�'3a;l
st�'�ei
s
a
nNueici�tfic�i6scr�ua�ei�ctioon7naCer�'�i
saeirbnx�t,�lu1NlctPTe�i�yf'i;l
snreoĶplr)�lnat
�ei	n�oIptuetn�c�t�ei
no]vn�'a
slf'i;l
ssot�m{taiuin#�e!i
s�tct�eAiEo
sMac�eitf'a�eiEo
sbielliE�tb
novJ�iln�'@8a�i
s�eism{tb�Pelmstantia�ltiŷo�'aQqst�r�taei
snKt'�c�t
der�'s�''sC'aeimp��b�dr
s�'�1i
sng"l�sat>deCiti�ovx�e	7'a
deiorucgimt	�'-Maei&lFo
sbrea
�k
d�eio�n�unMaei&m
s
dr�'�wi
sina�n@&tmnrsx
nplotat�ei
n�o�vranreiAo��ti	$y�eUlness�'�e�'�is�u�dt�'�ei;lm
s
n':omi'nt�'I�a�ei
st�'�je�i&l
suali;l0ysza�eitio�ngnu�ij|oegun�ct�'a�l
sl�'�l
sen�c�taEe8�ij|o
?u�b8lnt�c�tp=ir�Jut�ei
s
n�oevaeiobcdfilprsvansd�'�i	�ss'Zezoetpti~�o
_v�'aa�eiEo
s�uOb&l
n�o�aicst�e�io
sri
y�l	�nti�bnalct5iIuo��w�lndicQa3\a�to=tusiti|ov0ve�&ni	$yae;l�n61wn
f'i�s�s
s�ttf'�ei
sy"nvenEei=t+�rtem�pbtvut�eio
n�ove�lr�'i
s
ye"l�e�Oi1saeilv�'l
saeib>8ijlersti�ya�el4@i;l�ei
sOb
nm�saeci�ye'oli?vy�e�onrd92r)�baeioulescei
dn
s�c
atcnrsxyteio�s	Bn�po&vY�rU&aei�otXe
n�'i
s8,c	Bnon�'aׅe
sli;ls�tz
�e	im{tgstei
dn
s�c
taeintz�tion�'�a
sikof'
d;lr
s
non�'Ka�e	@i
sf'ei
sb
niil��ea�eiEo
sObnceo�i�'�d{r
scnvtf'�eCi
sc	'ei*Inialmi;lckl�ya�tu+�vte�i
d�lsls�ei
n�o�v3af'be_�giklmnpr
ster ped�y
deCd�i�'aKbehi�]ocsaptw�'
dr�'i
s�y��eou2�s�e[nar�e
f'-aegi;lm�n
sStubh	ao4�xe�;ab�h�mnwx!ax�eg�tahtan�Ay
d�r�sryark�d�%bd�en\Is#�ggs�-Tsa�x�?l��'asblmwarabBrp�y%b\maҜk�'ei
s
dr�'a�eis6ymgnt�eiQ�o
n�ovef';ln
seMRsZe
nt�oado�sk�bnx4binateiEof'
dRl
s
n�ov<n�w�y�'a�i
sm�yu�'-aeiloprstuyo!�uc��yaeb�at
�if'
dln)�pr
sa��nhago_e'nic�abYu)�el��n�oD�oa��ena�dr�ily:mei�o
dr�'Za7efE�h	in��pslt
yie��lo�bmit{hc
n��e	iaoclpessLo�ihaBDge	iEe?�ila�'
st�eio
n�o
_v"r�'-aaaKb�Lch!;ilrwedR/ioldFeeft
�eeia�6dght�'�a�ei
sri�~tuet�rt8�ei
ns8habdef�+giklmnoprstuvy9'cq�kl�l*[o�'��blr
s�iu
oeiYyl�t�'l
s7e^�iYen�')�aeE�gig�lo
sulbw
d�l�ralA�nmtlf'�i;l�n
sle�ora�'
hs�b�nva,nroy�'7e	i	$s�'
dln�rsry?� i"Zlgioni?sponden�'ruanoBBcnGd|ae
jgWnt9'C�lh�'��ila[i2�n	�'ae�}isw6y)pgcre�w)�ole�'}Da8Lo
s
�'bcefimrsuw
yfLarea
�da�orakY�ea
d��ilrt�'
l
sirlra|u�'�eim}swi�'.�f
st6i6o6sil��eaoke	$su�w
jrc�e"�lnsae
hgh9'9eeQia
5l�ota�lr^Mcco�paell�'|ilYllmn|tuwla�'�r
sandel'ae�'ddl'�r
s%Dt@Xv�'Ai�s�rt�'e�i
stFd��etiZ�n.osurae'�ltr�ei�osv2z�a9e�i
jm{taCl�'�e��mlsen�ct�lness�e�'c�l�uaeioux4yl�'1�l
sc��glstMaei;l�no
s
d�r�s
n�=otv
�uef'�l�n
sratei#=o
n�ovx�e�iponde�i
s
dN�n#d3egWnx{aeinda%�u�b�nbdsorat�eYiEo�ei�br0ni�ovef';ln
s~gptei;l�n
s
d�r�sb
n�ovii&la�e��hiot�gEi�corphi?�n_xaei�l*gs�x9'9ecs
�a�eostero��iolmnns(dca�#nMtae�u��lst,�t9'nebactDef'�b�ehimpstuy_ge�i�eg�lnnϘae!i�s�dure�'ss'�eeiocteu�tioc�'
�aCti
slo��g �cgl>�np�sor;nnaphFeQi6yogi�y�|c�e�soli6sta�en�'i
ssz1�e,m1�ealo
�ray
�je�i6sns�woaeck9'Xst�ei
s�,t�'-aceilI7n
sucekuffeictive�nc4�irf'�,rrs
dlrdl�:mnv8gg�e�e��i
ymu�eie
nr��riepervi��s	�'aeiosty-nrobl�e~g�'r
s�imin?og�l�nnpe&zoa
�sa :xwo��laeioggUre!i�'�d�r
s�yd>�rsl'on��gn
�'�eimstw
yout�hew�ea
ief�o!�eledcglnprsth�'�aeu�i
d
st2�tEahf'�eil
s.id�efiotSY'n'�@tm)�behr��'a��rcstil�'l�m)�op
s�wBoe,�rel�'	�eil)�o
sn��g<�e�+iBof'a&�b�deI�ilr
sybJ�il
e�y
dnr�san'�c�'-abcdefimoprstvw	aceijoprtttack'��e	isluaoiZ�mck~�wlt�uspio�nnftlationg�ae6\ulligen
=cu�&mffen�rsi
=vrodu6^cevolution'as@�re�$nrror׾ic&lgrtt�eAi
sgum�etac�qkalolan>�ca�dos�tb�rhluya�en�qr=gaoim
f'�e
i�sckwi)pslrturKaYe&lrclAUiemonst�r
dfsxfo4rpiona=`gam��paeY�loctua0lie*t
ir]�cnr
gsturge�nellige=^nri2Mtaein��r�'	�da�ns�nffen�rsi*vaeloru�nrt�'�i
s6yt�iR�oin>�s!todlpucti
vife7Brosb�anche�i6d�r6seofvo�rolutionf'arsA=rtat6eR[ichi�ptuaZ5raR�d
�fgnnf'a�ei
stkf'i
sarIyE�tA�ii�ob9{nje4cehrnrs1oro{grr�ze2uadnsfe9rami��leigh�e�i6st�'7e	@i
se?siy�ef)i�y�'f�msw�ii�d$-i�o�'wi)pd�'el�o
s>'Cdr@s��ie>�i�'
d{r
s�ta�bg�Histge�'�o�setO8teo�i�'w�b
d�r
swao9{r�'-e�h��i�lO:n_^r&�s[�ymartAWi
d�o9rs�aiy[e�'	@icito�u�ne�sature�iae	ilrenti�yantc0vt�e
�e8�i�'dnr
st�y�'a
stnt�'Ka�eiT9o
sr�i�y	�'-a�e>�ilstY�u�b�gl>�le|�i�ty�'h�@ef';l�n$s�e>!i�o
s�'-abce.�fghil�moprslpi��car{tsl�erd�i�'�il
si
y�n+afLei"�o��ratcS h1dlrYs�dl�e>!i
si
raY�ein]Add�'ei
sd�y��c��nT>r?aHeou*ksx��n�ai'�yc�eh&�l��eb
'��c�eisawck�iair�n
9'e	@i;l�nopTs�d
r�s�ueiuZyn)�a�ei
seRlTnrrsrtW�m�a�d�i^lo�r
suM�'/us9'acei
�motuybcdfgimnpstvwyz�'-bgrl
swap)�pei
yn'
=d�r�e;ln�e�grassf'e:�ik
f'-aa�deh�Wil7�n>�psuuX�p
dr�'j
sa��cew�aei
y�e>�nmg�pdlic�k'�eo�ietr�'Je~"is
ymp�wa�en�'��seorOps#�o�'�g��sgt%'aij�vebu�r³emp
s��ei�'J�eX�i�o
seKabdefikl�tmn�ushbeon�rubFr�Oa�'-
dA�lsf�lb��i��ib�oa
no�u
l�tfK�lƎtaGc�'�0ceip�"s
y
d�rs�e;llXnSsei�.g)i�y�'�eps��ei
ye
n
f'
rs

tf'hooS th��sf'-we>!iwland7e	iorthi6yX�nei�'
dr
s�'�ei
sae>�it�'
s:Ft
dnr
sf'e	@i;l�n$s�'dfl
s3�ai�lo$�usrhf'e��isw	$y
d�rYypa
_c"a�'forsish�'[e	@il�na9'rs8�ei	$y��e;llXn�'acdeimnopstuvwkmstf'�e~"i
s
y�'-e~"i
sw
ycracke�r
dxGrei�'
dr
s�a�ei��ou
novn�'i
ss�m�te�if';l�n�sre�'l
siy�n*h|yei�oun�ct�zial�'�ei
sn�s�bt�'a�eiEo
swb>8i�lorthi
yg�nJCl
9'dkr�lpRs�'3a
s�'sB6if'Eei
s
y�ke;l�yngh��taeitXn�e�iori	$y
afe�uf'$seulaltei��d��sno��gn'��s��sateiFdisZ�nong'Fslatei
Fdon
A'Fsl|nsew�'�s��oe	i
t��ucst��wend�tr�of'ei��w�yKd	�'�efu�ig�l
svalle
=nieYwa�eioc6neous9'K#ln�'=i�o
sntzfeldt-jako/uba#�iss�'ei�m
s
dl�'s��w
bc)�ekmnopst�'be
s��aeu�i��l�hk�'ei
s
dt�'ZNei
sReei�ps�'a�d
sw9',�nna�gol�'i;l
ss�tz0na
�e	i>�t0na�ei
�glog��i�y�o��gkolei
y�ke
n!�i)�lllo9'6s	eple�i�'
d�r
sw:bac�e�ipstw	f'b�(elUi;l�n
s
yre�a-ccross<me	iros�Jsb�iob5�a��eei�tri
a�ocq�'ai
sli;lsz	ei�mn�ge>!i>�uacefikmnopqstuwyzktf'ei
s
y
dH�r�eUl
n9'iRsaP'6n|ehko�uetf'e�i
s�y
dur�'e$�f	i
s
dr�t�i�yO�d2�st'e!i
s#r6�sYxe'�rwell�'i��aeik:1uy�'
szy�e�nK5i�'is0�mke*n�'ein
s��wdUr�s�e;l��n��e�'lp
sa��neiuemtbouch�'7e	is�t��bise&�r�'-abcew�fh>�i;lm�noprtw
abcdefghlpqrsssembX�l	eorS�re0vded	ishouecZ-k9�lmnrupi
�lnte�caminat1�eR[ireS�ln4rg�tlNrtt3`u's!�tr��ex5yamin	a
�e	iertilisz	a	aravsiaitr	�sc��h`�eink��a�e�i6s�lor�i�ls��tomJ<ouestioZ}neferesn+�cection�as�b%�raH�eorr�':Fr
snw�'�m
serdedf'�irshu��ert~rf'rs�t
d�rAJsatc��h�!ap�vteryG�ga%+ior[it6�iodul�coad�'	$saorE6l'qw�eaiY�o��ly^n&schh�'e�ld
st�'mWi
s
ye�rnRcpt�'eis
yߴe	Bnon>'
s�'bd�efilnsa��ei��r�'-
vefispleaX�sund
�e
i�sourc1�e�i�6eoo[9t�)e�'�er.i
s nes�tMTdie�r^'M�scdefilmn�p�rstxzia8,bf8ltPxeio	kyaawex�'�ei1�orm>'�s�'deise֩i
yf';l�n
rhIstXe�i�yl�tel�n	�st�rs�te	i
yd�rs�t�iy�'-fretZersrykss�h��eiS lbmp�'�e�Oil
s
yei
yhFen�e�gi
yhFe�n�eN�lchf'elUi
y
dr
sa�eh#�otdei�'
d�rs9'f'�a)�e�ipros�o�'a�ei
s
yc
lea�n�ke;llXnc˂h�'fe9'aW�df'-b��iopsbab �iT�yabB�iB�ybgnpsPltiologi6yIcselU�nobulicFa�sreserv�a1�etu7arg��et�'a%�io
snalysti�ti(�c
bcglmnrsz&�ioruccKa�oysta�lrren�ca
�er|ma�mphEei�y+`ceogiyc�s7naer"Ziymto6schiD�dpyoriA7dste�mo?�iK�otal�'50-l
sions
=tz�eCsa	e	iIb
�ta	'eiIb
�tgraphe
�i�y
aeoL�p
�s��tL�u&�v��yL�unk	^'ehrnorrnso�ipho/�rip
'hul&zhL�l9'.bcdefilmnprstv��z�'abeio
sP'l(.nl:ie	@iy-hho}olo}}l�'
dr
s�'rsc
n�st
�a�l�s�'Ka
sZuidKa�shkh�uul�aol�od�'�ei�r
s�'dg
slei
y�en�e
gel�'	�e�il
s<�e��i�'
d	i
sf�'�eil
syi
nrs��ain�a�e-bc�ilmoptvde-�Ise\murt�sa�$iI�'eio
sYy
drnr6tdx{e��itt8qea@r�'(�b�s�'i
suXg6QsvaOb�rtMa�ePiEor�a8�eieridiYs�tf'b~�imq�suerr�eilsa�nom
Mei�oaW'neirg�bng�s�suartla
io�ut
�ei	nto�vnim��bjladen�Rtero�difor
�maim��ulninoggf'�eJh;l�n	�s
�'��blNceD6f��hiopr
surtq�id�'i
snotou
�sla�'�e	@i
sa�eu�i�'�s
�io-unic3kl!a�e�'abdefilmrstvbc�rt�iNcla�i�yo9'��eio!
n|o�vr�'&�iship�'�e��isi��t,�d�'7e	il
sf'
d�r
stt)�a9e�i"ea)�e
not
?u�'
el�'su�is�e;l�ng/if'ei
sy
d�r�wc�en��u�e?vgc?$uudgeo�naeiymnwu-5lW'�t~on�ctf';l�n
sce�lulaNu
r
d�r
s�'ciom�beio�'�d
s
nvef';l�nsr�'ei
s
y;ln�e�g	9'a�ei;l�nsil�n�ei~m
s�ol�n�se)i)yZ�yaei
ycteous�l�n�'�}b
jd
s�elA�ninear۬i"lchkpst �ui�Dm
y�eon�'�ei
s6y��-�'?�a7ei
sdf'3aS"ors�'eid�r
s;lnel�sY�aHeodmi�yae
ln�'Qqs�'-aEehi
sbmui�l nari
y�e;l�no��usza+&e	ib
�tila2�ei�b
�t
�'-a�$beilost�u.�war�doptnd-pa?�sf�u{f��rhro�an"�w�e;l�n
rs3yl�i
t
yc�en�l
�uisz��aAe��aaess�'�e.�f�2r�t�sfuc8eEehilrZ�on�ge�'b.wf�o��eI7i
�as
�t�^'m
�o
tb_�rabck�dglmnprstn�'aio�sm�tb�ic|�dabg��p�s�tcry%�lacteria6l�eeGDiorClr

abcenpstwt��tull[_iy
�iahr�5uf�s�eondria�ciO�om�ei�nspio��naet
�u�e	itici#s0�a4s
�eh�
oĞuob�ei6a�ceoPhlpqtuc�xu!5rafPc#�aVh"yuattFe	@iafPl��reh|!rZ�e��raorfr6szYir�lrg�ga�iG�r��alaeiodm��s[e��i��a�e�'
d�r
swa0vy,�cf�n�s)zahim6pnptdd�iexan6e3od�'3as(�eaelK�sedi8acx{ad=sc�ieg'�ihr25yn�e|uindEeri�|cbaei�lT�ld��ieiotwulfc�'�ai
snshit"ahre6lr�'e	@ip�syu
fei&0u�aB�o%}ai|ult%'l?�it�'eio
sƌc+i
ct�ig�mraphT�yoclmpsthermis�ato�mogi�yc�e�salUlegalovf#ihlotog=masm�'
�i�sp�ikeletKa|oo!zxaer�'eisvit�Vcnsua`�mut�hcrhP'oRsslovakia�'�Dn�n
'-abcdefhijlmnoprstuvwyzaei�Xo;srzetzzo�^'u�y�rsttaing�^'aervoir�edx�a^'bcdefghi�njklmnprstuvwyz>'b
seiT�l
drs�'@sc[9ehrtaW'as�'
sKug�h �oyl�'2/i
s�'adYeo
s9'ismt
�'f'Wzirs�iy�'-long-leg�'fesdmal[uon�'i
s
c=zftio
y�e_n�jd�e;l�n	�'��ego)suwObeiTyenTrsTtesGHsferserre9'oty>�po_oloW'�i�mlmnqrsi	$y�eF�nr�lti�dr	$y��e;l�nui�+r�iy�'[ilm�wana�e^i�n�'�e�iy�'-cutL}tHaotaP'|nRsa5beg?�ilmn��twYyRi�'s�Vtry\�me5t|ai	ky1sa)�eng�tatia
P'n�'se�talli}Yn
�'a)�eimnopsgse i�'Ma
d{r	$sc�kbYu6ae6o�nt�t�ei
nmqtf'ae i
s�b�td�re�r�scrn"|lf'ei;l�n
s
d�n�r�sf�e
ne�ol�'f
s.�i�l�'s�abcdegi��kn8ostuvzuK#reif'-�a
dA�lr
s��o�'c
siszng>'E�lTseilr�y=ln�Drong�s��ef�l)i	kyuf,f9'l�s��ae�i��lrsrdr�'ef	@iAo
si�ne*�aesln'Cls9'��oh�'feeiryvir?�k'|e�e7�e6obt"e�ii"�l��i`�a�)hpeN�lr�e�l�na��b3cdefgijklnprtu
'vw�yane��l�'d�l|n�rsevil�'R�r
sRai/ueU�la,�e�o��vn�o|u9'g>';l�nTseeliqgn	f'�aeiln_^rsd�n
r�sde	n\IsAeV�i
ye�s6t|a�)eing�'�n
st��of'eu�i�l
sd*�l�re�r�s�^ae6i��o*�ylt"n9't"l	�'��be��fMhim
soou7�r�Rt�gssa�dl.einn'i�as�Dmt
�shtf'��b)�ei�+k�nardf'��lrs^'aeiCos?u
'bcfgmstvalZu	8s@�aomZm6scira�matiopn!�ey)ppeilaIl�'bdl�r
soo3k"l�nRGe>�i
n
_vɠue*bgmnphetr3ter�'�B-��b@�c;l�QsI7it�e�il
si�haeit"y�'npTtort�'�sdes�t�'s��o�s9'�od|ek��nsT�liMn��o�'-abcdlm��pstwbltoyo-!�dn�i3�eor4ao��ke7�aaref'sreal�mei�os��fght�'e	@i	$sRaa
�iciJ�k3nliommn9'aorkT9eeizf'�d
slge�i	�2l'd
e/uirlm�w���s^'L�bmvL�g
o	^'Ze�i�o
�rst^'�'`s-abcdefghijklmnopqrstuvwxbeiris�emsphasisz'+&e	i+&e	icalat
�e�ticn	e	idustri�ma
cdflnrstA@votn�'e	@i
s�d�siIv
f'-behlnpw eY�h�Deo6Dln
r�s�yei
s
d�rng�'"lead�'Ze�i
si�o
y�e[gne	@i�'�ds�sanf'�,nrs-e�l�nand-dumbn
r�s�e��i
s
f'�-e.�filfNm
s
tr�'&�sg>�nn�e�iJ�mocataaC�ei#=o	Bnv�o	�'|a�de	@inQqsW'�d�r9'ra|e
f'bei;l�n
st?vyox{r
rs:�t�en�g�hsigne	@i�sht	�'-blr
stwdkortwe7an�Iebrms-g5la�Iot�to�;rb�lairtrsac4�hshe^e lei
ys�s�e&ka �tra]Apatc7[hribJ<u�'abeior
hstucrstule>'�s
k&m1�r
sei
d~m{r
sMau�eX�ichf'ei
=d�er
s'�i�y�it"y�9n�al	�titKa�i�ynruai�ra9'0hU�cinl�l=ct"aei�#tde�se6d�mf1eV>i
s�'Eo
sgnstg
s�nei[�k3sSK'a�e
i)sn�&ite>'@s9'acehiklnor`su	dfglmnptEKye�'n
sc_t,e�i	$yf'f
sersin
�a�'co
sifi��y7Bce6d6r6sg#�ue=�ptP�r�ti!�o�(thHul�e�oa9'|nadilmnprsei�'	$d
s��{etv�'e�f
se�ie�Jrbq�ena�cntnaiax�l;lra�lti�o�vtifi4�yc<meatio8nlorinatC�ei	Bn	
oIHbdglmnpsaeiu;�d#r
s�oramm{e)�iaelMt�'i�l
s
{sza
�e	iti3"o��tnaherMa�eiqm
sio
Gvn�'-J�ae	@i
sma!�k�'cehi1l
shai<�r
drb
'sao3�n�+ung'�saeid.imnrs�w�aaeiObntio�o��vr's
ysei6dCefi	ky�c�en=snvageitOino
n�sit�ito�yeL�t	cdlmnruyt�e�iux�aeilo�aeit(ae�smatC�ei	Bn0�oni0ys��zmpissio1	n�)aeiornsat�ezila+&e	icby�tsa	'eib>8il
n�tess��ePigstvesta6Dntruct
�ei�snovn�'i
ss�mdtarmina4nMtol1�l�soluC}vtionKaf'a�or�st?ut�eiEoX�n�ovee�licat
�eۜipal��g2�eing�'�s�'ei
s
dCreiyaempstse�i�'
di
sent'3a�e	i
situ�dce�n�azuwemianC.ipt7eis	n�obsitttomiu�s��deiukf�icat�eCiEocm�e�it�ei
sb
n�o�v>8i
_l
b
'�djmnprsar�y�eis'X�tf'-eґi;l�n
sdflrsisco�ure5ioeze	i�Gz);aoRoea5tn
r�s�emYi
s�'�eE�ghso��u��ktalk�Ze�(icalat�ei�n��oaceG1filor��tuycelmR�tuei
d&m�r
scatTecat�e�iFoaeit�ioll�tonacmnrst�aib!3i�sl�'ei
s�d�r
n�sKat�'�eiEo
s
n�ovef';l�n
sini�s�zcdeseZ�ig'id�Klm�s�aei
sstrat
�ei	no#nei�'�dܠl�sn�b	�nvef';l=�ne~mr
svn�c9<ta�ei�b�lesce6d�n�Gabc><elnrillat1�eS�i�Zoie�tn�c1�t\�eifaei
nt�ei��ove;l	�n�saeo��gtaam�ei
non�'ascs�xtU&a�eAiEo
st�hc7Brr�wcJ8uc�eglrus<me	it�s��g
sia�n
Ptemst�a�ei
sa�e8�i
s�b��taiog�uyR�gm6sent�aT9e�iEa�ei
s�ekNcsnsc't>!iaelrs��u9'fes�elineraeocte'�if'
d�l	�n
sʱsyceroli5zaednae i!0bti�ov
=d{r
sulat6ezia	;e7|s�suymaini��s�Fzdifi	kyc)�eatio�ndr
NaocgholesƁtena8�t
c�dKfgmnorst+�ei!ztd�nh
ntWLo�osttall6s�a�je�i6serleaC}vni�szx�a	e	i_�d,mt�'i
scKa�i�y�aec2�stePi
s;�dals�bte�r9'abefgH5hiN�lmoptuT�vcmnwyrn�ou�?e3eroare�'C�a;sf'ei
s
dr�r�ecg6oCstvxtab�t�ile
y�n�sa�bt8�e�iaae�i
dr
siou�seragy�e
it�'sw
�aba�'abcglmnqrs[uv�'�nerKsate
7io
d;l�n$saidt�cte;l�ns�2sous9';l�nhtf'c>efi
su;�la �hintaZt�a�nei
s�eqt�puZe�iuescei
d�n
s�ai�o�usa$�veraeI�i
sy7�b�nSK'�ma/eor9'�vn��ir�s�+ubDa�e�ihoi9'�cne92i�ur�t)�a�od>�gns&xEe i\ogi�=o�vaeiopuygn�rstvnoeitisz��ae	idM�rsaei��b
�t
d6r
sfiy�vce�d9r�s	@igiu�ycalRle	@i�'�d�r
sdf'�e i
ssifi��y7BcZeeri�`af�eanr�stn�eio
s.(ru�[rt e�iT#giI1ot�'e	@io
sr*�ir�e>�r	-gjlmnstgmg�loudn|�o��eadmiBn�a9enda!nod�'
dd
so�hit�aondaZei*ne|gralisz
a
acei		stai�'
dm
sxiquaL}vua�Yl�'�nei
sasY�t�s�'bcd�egilnrstu1�bci
srai�ct�'i�sc
{s
�z
�a2�treuN�lraphEei�yc�e6�sf',Ea	$s!
ni�rs=t�'eios�s�tac2szc�asKca�ay�e
illaogi�yIc	estrabtil��l	�e
y�e�iEoagli$]sz
�a	'eia�n
ct+ehenUeWzi�ei�c
n�ovatei�drs!
n|ont�a7e	iss��elrct�eiplex�e	@if'er
s;l�nrr�saeiIb�ln�t
d�rsttifi	kyc�e
�aholog^�i�'abdeghimnopstur�vy9'lUrt;iiuonali��sz�a2�ei�*righ'shir��eriot�eEichronologAUiyb9'�o9'�u�_aa)�egl�mstzb�liQlliKgtrat�e1Dinoiqo�ut%'et%'riߎfe�na�n*!r7eit"y	Bnt"smrtuinat�eiEo
n�omaliC}sC}zam�ei�btiIro
v
n�goen~m4cat�s��eit�io�ymeter�iy�'a�ei
su��l�rcf�lns�t�l�>uDQr�'D�e
gt�'or
scdmnlea,}r�a	'eie�Prciat
�ei	n�ovdnxor�ai$]s��z9'K�tyribonucl!ze	aeilo|prtu�ir�:sts�eim
suent�'a
sl�wi;lnrdaen�i
sb�nii=l
dnct,e�i�y�';ls	sonazli
{sz
aei@d
sliu�zcglt�e�i
sment�a�eat'�oa
"eo�nryaEe ib=l�a�ei~m
sl�nprs�taiIrti,}cuIlt;aei&m
s
d�e9r	'ei
ntf'a�eixEo
s)�r
non�'J�ae	@i
saeiov�aei�dr
sn�n�tcdsait�eio�n�oa�bt�eino"n�ovatior6s6ys�a�eiEou�b�n�o�vriz8}a�e�iXvgrammrs��eiY.h�'l
ses�srtat1�eiFo|o�v;a�ei�y�e
n+�szueue	@i�d�i�s	abeimorvwcinina�itlj�eC.il~m
seu�rug�iy
��'khsfgrklerence	i�d9rsulat�eig�o
n
�oict�'�i
s$cdsv	'e iioU(b�opva�eiObt�ei�ove�'�l	�n
sae�ioA'b
ltrypaioti�d�sgO�lmpaslyp>�h�eyoe=shyyZts*[tMtgat�e
'ior
�i
yiYycKden�[kre>'@sa�gll�_u.yieogn�'acdeikmopstuylti
tnait�eiza�e�it�jiuratC�ei	Bn0toaerlnre
i
�d�r�st�'�
e}i
s�ttndr�t�aei
s
dBnrai	kymb�lb�epMaeiti�Zo�ovei;l�n�ssm�tem�oceglnrZxratEePide6d�rreIgect�ei
s
n0osi�ttv�'ei
sf
n�oicati�oei;�d{r
sng�l&n�scdgrV0sca6Dnt�eiEo
n�overat
a|�e
?un�'ae�i
s�bt�eio
nIrov�d�raei�obilli�aote
y�nsf'
dt"e{r
s�'i
stlY�l�xogolratei
d;l�nr
s/n�o�paeiori��trf'J�e�i
sra��dt�e�ic;�s&tB�ailntlei&m
s�idenc8t
�e�i�y�'i
s
�c�seaS�deirt�'spoonfrsu3lcats;e8�iaiorbi�lgntmatizativ�o;aei�y
drs�e�nut	�e�ic��kouy�aei
sctf'�eiTo
s�zb
n�opvelpt�utori
y;l	�nerhk�enchroni�sze	id9rsaehiortucihaei~m!0b�d{r
s�lnei&m
s
d
ae�rcnrsta�eiEo
sbJ�ijl
n�o�vt�ei'e~gimr
s�r
oeinZtnaeib�c�nt>8i��lei�l�ns�o��v;�d�r
s
ns,m�tei
dn�c�rtta�ei
sb�t�i=lrounn�un�Juxa�bt�eCiEof'ei�d�sKf!
n�'a&�eioct�eiEo
sbmtal<Tient�',�a
s�u�iingɠenaa
�e	icte	@i�'d
seosra(iono�pn'o6s��mXncYhaei`)ko6slnsXuag!Jatat�eiEo�n�ovilrt�nopGaeim
sen�t�b	9'a�cl|n�ostnHt��c�rt	�'	�ei<�l&m�r
s�t	�ni�s��eC.ia,}lilntu+�c
d�uv�'ipkhs��aorV�tei�d�e
s
non�'[a
s[�rt�e;l�n�'ah`bcd��ehils�eyr8yb
'�sl"ab�ru�!r�e�{n�t�aetd�sr݃ierr9'�i�oaol�iUl�susUlnessZ'Ae�eabiosu<bH�krum�alag!Ji�'�sr�i�+t�w
�s��r9'abcdefghjklmnoprstuvwxh�yzbcdegklmnprstz]�aeot�e
ilics�am'�thorron!5ei6ycsFa�n$nitic�'�a
se�mres�eiB�shnoril-�eoms��e�a�eit
n�sic'
�aCti?vsnalf'i;l
sszaC�e	@i�baC�e	@i�bam�'m
sa1eicbticalsi;l �i	�'eilo
sycrdt�'
�ai�o
sc�'
�a	$sĄn��e	igy�i
_usA@ze+�id
sae8iognn!xet@e^#itEe9�rnd�'�$b7e	i
s0a0en9'|at"eaehsu�s.�drI�'Ze�i�sar�nagm�'ka
s;qir�yheoZaea!|i'lsptora6e�i9';s*baol,e
�ihorers�mZei"�mmnK�iepaFm`+ablo	$slei�'
dCr
se�Byr+aaehiko.�rtpriʱo
d
�nr
s
yloror"�itomio�y�e
{s
{zu�s<&o�eA�n�'eknhisy�dnr�ys�'ia�nZe�is�o�en�g��s�o�'bi��rt6syledo:nai
?u'ptho�[ne�ior�'i&�s�aon�'1Pas
adegnor�syctic
�aiss'�mlueiy�'
d�r
ssqu�afmroKteridoors�'�'feik
's��m
>'-
dfgzJhlmprst�char��defnbaI7kenbac�he0oas�tect
r9'.e,pes>eis>'el�'-Ze�i
selectri5Rc	�''�aehir
sYz
d�rU�t3yc
ntitaiauni�Rcf
eir�su�drei
s
dn%Jrcti;l�na�b6e�lN�tcdenult�i;l�y�Ge-hell4�mact�ePio
s$�msei
d;l�n{r
s�b
nٮov
=eM�if'aeghin�4or
smrsa�ttf'�a�ei
s�zbf
n�ov�se�l�n
sEein�gto�ncmpt8�aɠoa�'ai
slpti;l	�ss��z�'
a+&e	i$]sz�a	'eii�ft1Pa�i�yae�m�pssei
d�r
s
n�ov�eedra5Rlk�o�ese!it�'�d�r
s�aabdeilouptidat1�e�iae
'io5En�t@{d
sarer�t#omt�mtant�eis
h,m'gtenmc=�th%�i�'jlaio_orsyfeng��esUhf'-ddal�~lall�|iŃygparit%�hhfo"ete�i
d"l	�nr
s
-aC�bei;lm�nop
swwit|�tggio�:�'�'nr
stsion�'a7e	ig�l
sl�i�l'ctosayjphyl'glyoxiemntiush�a�er.i�eti�ovef'�l	�n
s�iq�r�yGa��e�irphiBFoc%�sl8�ew�i
yit�'
st�e�'aegikno
s��t9'�h'�r
d�r
st>'-Z�b�e�h�i�lorsu
yd�'�es7[s#�eiu	$y��eTmei
dr�'Ze�i
stwIia�r9'fslage�laEuc�dgnprxels$ka�ee�t; e9'�eWnys�i|uh�ltanT�t9'(�aai~�l�d
an	I�'ehl8,opst�dthe>�ori*[oa�t�'6lseow�xd3�im�potca�'�c7e
st�'�aCei
sc�s
�as�ei
y�er0no]ctmrsania�'�c�s� e�oy�c	ae	8gi)�knrtKccf;l�n
r�st	�ei;l�nors�x
novn�'-al
sfiSnli�l�sefs�e�ir�'adUis�y'&�hei �s�cx�'AehoQ�w
�ucg{h�hi
danbanq�d�'bi�s	kya!tl`�e;l�n^'abcdefghijklmnopqrstuybdfglmnprsv��il�+uei
d&m{r
svantagei�'H�do
s�ufeioct�ePi
slR rIirest
�a�e
i�sgrregat
�ei	n	
oeea
di~m
sble
y�n�slo
wbiguateids	nonA'�speorar1sa�ei
sint#�e�i~m
sobva�MtEa	'e�imrta�e�i
s&ma�n�yiculatezidsteombl2�eiy+�cEe'row
a��ei
saeounr�Pd&m1�r
slnie,fFve`)f�udrR�d6sV�dsa��ei
�l�'aehil<mor
surNnd$nrn�ei&m
sb�ni�llCesiargeif'Ga
d{r
spl
�uei�'�dQqs6cna'�e�girCti
yaoimaaei
ss	'eiu
�'�egilmnr
stuvraphFe�i�yQd
norua	�e	�i�stio�nrzaei�sd�'�n�sng�sbfmpobulatei
�drs�no0�niot�ei
s>�urt�'�e i&l
sod�ei
ntoUtos�ei)�ucnsterK�tecte�i
s�d�rolat8e�ieint�'eim
snua�e8�i+qo#�n=tdp�''Ca�e!i
sorat��eh?eenrtf'$�aei
s
dn�r8aastge�i
d~mr
s�6eieo�sus;l�neraeI�i
s�yJ�beid�eptitf'B�a�ei
san�c�t�ei�ominacbntkDt�eiEo"n�ovrssiv=�e�'�esa	ge�i�b�nain�'�e�fi
sacmnqsF�soƎnbpaor
krasSsdwi	ky�e&mkReower�e�iJ�m6scfgthuant�en�i&m
smr�branchiusa'�ganglei
d&m�r
suilibr(Jitaeblish�eiment�'se	�maei.�rvo��rur�'��e	�i�satu!rgu'�rorurgei
dmr
s"Zeaucei�'
de�fr
snk&tissei�'�d{r
stf'ef�i
s�u�'ace�}ioprtw�ybri�8lmoni�yCce&om�la
d
svrteK�nel	�e	�i<�lm
sneost�i;l�yru�'a	�e	�i�sbl�e�yr�'ate	�i�sbl�e�yHDa��aow�ea=`rst�~hi#elnlusionf'�ei&m
scfghtvelontiO8vin�a�eirporate�i�delocst�a�ePi
st�a�iation�'�asrmatio#�nen'uerit�a�ei
segrrat�e �iFoem1�rrsst�'e	i
s�dedG�nJ:ieionst�ttx�aGi&m�tlt�?uouin�e6stei"l�n
s�dnctiTs:buto��v�'e
s-7tiokeif'�a
d
s~cdygei
dqm
sal;l�taeiolny;lnessZ'tlei
dG�m
sf'�e i
smbe=�rss
a><ei
n�vu	�ney�'lant"dbdr!weld>y'Aiigi%�udgier�'ei��l
soda�nentKa�ei
saeilorursta�ig�t+Ve�isionf'aQt�Kclnr1�l
ssaeiOb�rt�ei�osaei,l7n�dm{r
seJnn�b
n�ove"l�nrit#�en�i
sae4cy	'Ma�ei
sasei>�u1d
sV0rsaeisb�l�i
_l
n��tess�ePiaeoiN�sad�iCsopv�fortion�'a7e	i
s1ltei�d;l�s	BnR�oJ�a�ei�rtagei�b�ntio�nus;lX�nuailifi	ky)�c�eest�'�e i�l
sumd�iaeoue=tl7�ig`ylpsardf'�e�Kfi
sauIit�yaepect�'�efi
s�ubeird
spt�eiTo
s
n�ov�eaeioutisfa)i	ky�c}�crdmnrr�vbilaein�cIn=se*t)�tv�idm�npenmc�tiulair�i�l�st��u�Jlatce
'iclnia�bt�ei
n�o�vu;�vObte�i;l�n�sa��naBd��saeioru�f8lns>�c;�tte�'f
su�lmnpe��r
ds�tiyb$kolnlsa�ueirs�bt�ei�oevcgt�emi;l�nuishfa�eirt�aa
e�i
saei�ouciutaac>ei
sU(b"n�on
tU&a6tg�1hssf'�e�Kf�ib�cuta�eio�b�r
novn�'�a
sesi;l�nsr�'shiY�pstf'�efi
su�lrb1sae�i
slnsp&hi�ot�e�:i�y8�e�illab
�i�lchrRstzh�'	geierf'ei
s
d
aransiti)pv�i�o�yf'�eren,5s9Ht��aaeiou)
vsx�'gl�nr
sRaT�e�iica!t>'-
jdmrsbom!�bak�s�'gstei
d��n
s�eifo�ti	ky�c	gen�'a
s�ei
scm
nE�sulai�o�u6rtMRientot�eim
s
nten	$tdnsMaeif'
d^n�r
sae:g8�it�ino�'
d;l�r}siEo�zb�opvr�tcei�'
d
ae�ym
slg�aei
d�n
sal�i9'i�oe9'clr�aand�';sz+%iy i2l'aei/uskarllabaf'!ph�sbou2�tL�aG�lL�rc�di�z;atrKiaeis^'s�epropetroC�veZpsI7tsec�'f'-abcdefghiW�jlmnoprstuvwxyzgioooL}dt-yourses�lr-=NdObbersZein^'rg
srman�'�nrs6a=o�o
�'�{eiko
stu6xl8emi	�'��aeilsw[�y
d/�r�tngCsa��nid�eor�km�oorr�'a�ei��o
s
l�tina�eXi�ldmsra"�ment�'a�ei
slr=ti�ya�e
�soZ5adego�se
lrf'�ei
s
ycahnedr�a�o�vee�Ois
y
'
d<�m�r
ss
io�'H�m
s�'�rsi�k&�nt
f'-cdefg�h*ilmn�ostw!pys-ta3ibcelp"Esti@�oscu�ilout\Icllaa7n5r��teg5gad�d7-a\@ioifoar��t�o�'a
s^Sriog.{sh��t��ougheioy�dr�tEee
nSsA'
rAJsne�irr�Ss�'-7^pe|�iZ�ga�'
stics=z
�aM�s9e�i,m�tapp6s�je�ibh!�kltod[_iy'�i�iRoe3d�e�aaooroth�Noaf�ot.�c�'7�a�l>�n	3bdeilmopɴtru!m�'
dFxf?�r
s	�'Ea�e�Bhio
sye
n9'd
s!p�'	ia�emruit,e!|i�'|e'or�'�shin�'a
sri6abu'i�aei�'
dsHptdt��aicf'a�i
s
�lMtcn�til8�eia
naegi�ontmc8Yt�e
'iToriB�c	$xer�e�i
s7�o�Tucoq9'arkP'nP'�s��n
'acegikno�sur�stC'w�'
hl�std�'��sei
d�Pl
s
n�o�vaste��rhmgC�td�'\oa�ei
_l
szeʃtey�'m
s9'aeiyt%'Cs9'
dl|rl9'��yMe
n�Gst%'brooB�k�rv��aftdhlmnѭpral�ddheiyf'k(b
d�r
s-sq�zuick�zeKca3eitt��l	�'-a�eisw6yla�Gdd�dgeUlin�r4sa��d`�tS yatchesb�8u�'-��beh	@ijkmnps"�w[�yto-Y�danնdam3benepEeo�bcׅka�e�n�tai�lYlo�ste�op�'c�p
saeip�'9bmns�t�'
d�r
s
y�en�e	$ger�llgange&�racl�eikmo�srst�y�'�d�ah8�e�a�c�et"s�tf'l�i
s
y�'aEeio
sn�c't&cϚtu1sthet"yrauaeio�ulAe;lTs7�t|yflexZeR[ilvate�ren:�t�hmgu	^'�a8�erhist.	m
n-eh��iho"8u
d3rrsou1soeyvs��kevs�k�'-a��ceh�istbcoo�Jmomg�m6s�rmg^r.ao��nei
y
d7�r�eUl�nabcgrBsl|ylteiou
y	>'-dh�n{rst	bcdeghjpsalrrre�l ieaRshlrec5k�ios4�se�>aL{c`�dS�nlOaa�eppTyoiRna;Lr�;i��ae�>a�'pe[|a�'�Xaho
siY�n�'�aee�f�il
seCs>�ht%'hl	�'^�bel�inst
yrK#t��ul�i
yasn'-t"shof�m�e;l�n|oei�'cґi�lt"r
stot�ersaa^is@h9'lLaden�rT�si
ye;l�n
rs
t<�lr�'�ei
sn
g�'-bcdefgh�Oilmprstvw
hyatnd��-o-eaifr�Deaus9e>�trt�v6s"traZ�ifug7h
d�r��yaisoll�''qe
se�lraN�deiIoart0�ellf'�7e$s��aiognhT4tke	@isadf'J�aei
s
d�ra2orkc�eil*o{�pa
yain�it&ggvh
=t9'achilpt��wm�6pal+�e	iift
Ze
i�s
_dz�eX�iT+o�]oar�gi=`t!r�e|�oioruw�n��ek�or�no=tae�irSsd�l�n
sll~ioylo�gcy�ce#�ln�'�n
sei
yf'
dn�r
sf'
s��tpeKgl�	n^'h�i`st�piaeiouybcfgikmnp6)stuvw�yf'l�b;l�nrshouma�'6e
s
P'nia6c
hn �lt�'eisry
d�e�r�eRlnVe
5gmwaen
f'shiZp��o�'gf�l**nosx�a�ei�y�e/nn�o�'
�e<f
sׅtn�')�abei��p
s��ong-bo��ae�'n
ssbe_�r�'ab
s�'m
st&liiuc�*s��z �a#sr�g1Vu
k|oeif'
dxGr
sst�e	ightbipsyoakrr�e�lnes�sroo��fmpwa�en'shi�per	so��mi;�dI�'aabcdei�l��nsa��r�c�r2�a2�oow{e�rng�'-
sro�ot��r
acdginswxydmrf'�efil]n
sul;l�nTsoc!k�'-beil
stw
ywor��l�Do�e;ln�e�gae;in��si�mor6kw�l�ci
yk]i6y��g�'g	$siCy_/eI7s�rcds�ef'��a)�eim
y�e�na�^kn'�Qefus9'�s	beflnpsvzb**llgei6y
d�rAJstf'e>!i�Sn
swl�y�'eo�i�m
skf'-aEe�Wi
sd��r7�b�'-p
sg�d�ei
y�eV@n�t�aei		'-lH�n�rst"�winf'Dne	�i��l
sha��fra��nzl8�ei
y�e/n?ggkrilmnopstuvwle�nTs
yr�s�i�y^#aeo1Nd6i6sb�eg ioZe6slpf'1ei
sf'�ei
s
y�e>�n	�'-bk**l��opsdfh	
ik��oste�eo|wo��r��ei��c�qhesZ�to�x��iGaeinw�g�ei�y&�c�deCdTso�sphilatninghoj�lcg�ie	if'd�r
snsJ�ei
sna�ge~"i
y	bdgimn�pK#rt�b
sge i�'
dr
s'�i�y�'-gsfrreel3taei�y
d6te
nsf'�r�$s�tt��od�'i
scs�Qam'�ss�'bd��hi�lm�#sea�tuf�feioH\nk�'Y�ae"l
s�n
r�sheXrf'-^a?'dEei;l�noswc�jeleaY�nm[n�Dspithe�ycD?dt`)u��oallf'e	@is
�aclthug/b�'r�'�s�pabcdefg
hiklmnoprstvxl#�nr-i�lsp"2us�t,mtEiC�if'H5abcWhilr
su�<ei�on�'�g�s$e�e�oo_iovni�kq,uahkt
l�ta
fe�i�ymMp�'-b�ei��lp
sw?vyb;:ifLioarfd��eC0nilo!nax_elt�k�'7eig�l
swl
n
emioE6r�'eg�iO:l
s�'rd
s�e�'ln
s��t�'Dneil
s��n�sCaD�ei��n�s�e�nf�'ei
s�y
dl�r��->�ossbeuqgrn�be�'_`d
sckl
�uw
yeiFYt�f�mani^#nY�aei��n
s
y
d
rs9'
tqi|ab92dfmopa��b�9ef	@il�nopswr
~toun�(de
yi�d�y
9'�s��hht�orV�ua��irie��s^0i�{ynr��ttiFef'�nei��lsK#t
y�kelXn&ite�7rf'abcdefg��hkl�nmnڪoswl�n>�lar�'t̞o�a�ee/�erE�h�'d
si(�on�'itOOeermlin�-e	�'-aehi<o
sbe�en;�rj�n
d�,ofLif'ei
s
d��lr
n*!ra�p�'aeioGHy6�r9'
d�r�s�e
n�'�cbtorol�uab�nl�eooK#d�'dlp
s��tecnim7�a�oa
?u
lUrog�i�u6yoli�yes�st�'Lli�su�eilo
nR�oei�tx�'ei�dr
s	BnUtcai�bte
'iEot�i�o�ynt�^'
abe�ghik$�nor�s?ub��cn�tiile
y	�ns9'1c��t|r�st"xyamn';sfa
nhH�ec9'I7hai�eeehkst9'nbedran-�b�'7eis
y�en�egeldo
�r�'�T-�abcehig�lmps
hy�iu5�sa��o[gre�a�e�lnt%'�e�g�a�e�aro��oh�Sec'eiyh9'mw�a�eoma�e/�nMa�eful;l_n�'-bMfa�e[l�'e$�fd�ior2l'+-/usr
�wr��ah�o
�wrbBa
^'�saei�^pryf�v�'�ei�n
s
n(�sn�e��ell
tEei
sng�'
s^�u�gn`d9'abefX�i�klnsd'
�isbuk�'i�s�m�'aa
dli)�rs�ted-pow2lyae �omsi�oc�s��t>'�a?vsti�y
c�eabefgklm��oprtrt%
hul�+interi�y6c�eunction�'a
sl�i"lrap2Rhine�secx9Htiacf'
�a
soE�rehlnrps9HtiaF�ao2Rras�i�to�eao�xrjsegu7Bl�hornpi�a6cia6c'�n6sop�heurzhi� nnga�r
'-.abcdefghijklmnopqrstuvwxyze;s�n�rbcde�flm�giO�ousi&naior!�rSsgar��emmeR�r�i\da��deaV\raiZ�lcgmol�i..f�.
cgklj�mrstvelr�'
�e;l�ne	i�'�h-dh
s�tan�w��iĸh��i�'-ab�d�eD6fhlmnp��rstw�	psptlki��uY�ca��us��h�a
�'_`deAhio
sy9'Wny�kene9'�s
_bb�mia��urkf'�eC.i
seh@;i
s
d�rst�'8i;l�nrsar�d9'�hik(l�6ehpo�tlit�th�'-beflUilmnqsw
yshatڃto�u
dn)�w��ai
y�ekxgn�e�g	
eov&e	i4ulNuh��l
�tY�a+iaor<�dr�k�mai]o�xgt�'Y�g
sn*�eeity�'
d�l~mr
s��e;l\�n
'-beh�(il�m.o;swsnorth-�eou�nrnnrde�r'ln�sts�iyf'em��r�oi,dam�upaeb�ni#gaord�0s��ogoin	�gae]�i�o
sbl�*e
nxGre�'sdrop��p
sabceoruy�
^'er��'�sf'�ei
sngh�Gadi
cnr9'eepzI7z��t�lni��y�c�ea|ohĺilli'Ce�tcd�ghklmorstuzelntric�'a�i
sl;lesiao�lst|eic�'�a׾i
slogiyAWc�sysi+oKa6seioulwonuaoZuE�cd!�ierm�'a
st�aor3�a!�o	�'cegilrs@Xvardiogra�mph�i6y
d�r
s6yra�mSp
c
n(eo�cc�n$�ae�raeioiZtYrcticf'
�ai
sp>�s�t?ggascript�
��'	9'-cflnsttw��aaror2}ilimaZ�termi7�ne�a�eo�qdgi�yce�s�aY.omei�ytrici	�s?�ac�e�*sz�a#s
aei��pyst�e`eoW(nuwxri6ssm�t
	'i8c�utast�iy
�'ic
�aso
�sdmpterQmor�pa!|ilrasiW�t6�aherm�i6s6y
am�sdor�'ae(Sin9';sa
�nenics�ais��m{t,m{tema�'sBDt�'.adegim�n�psbtuwmp9'a;s)pmho#ss|aiyent%'
d
sg��t�'i'lc�mnwe��i�'U�dhWzi;sto�pat�a�eabe�i
yr�'da�us�'c
d�lr
swum?�b�'
sxyta63io4o?�r±tyb�cfnstiilef'�n
siyc)�e�a�e��iburCgo_of'Ma�eh�io
sP'bul�rr�'-iQqsat-larg/uealf'i;l
ss2�z+&e	i{tound�t9'snd9'sbu��r*�eactrdroa�ei�tbt�i?~l(�eiEo
no&vn�'ai�i
sli;l�sainmaiyrd�'��i|oKsnP'7�a�c�grklopri�y�'-g
s6y|�lra�cr��oie;l�n
r�sf
�ilr�t	aeilorrsucei�a
d&mr
scrdmnrptt�'�eio
su
nve;l�n	�sa�l8�tina�ct��e�+devntAe"l�sescei
d'En
scre�g�naici�yej|oen�c�touresce�n3evxi
a
?u'	irt�'|l
son6tls�g�ei
n�opv�a6e
abeg��ilmory�'
dl�nita�rrer(t�'bc�efhin|opױs��eo�urr�uead�'e
s�d�otlain)�tn��toHpn�'cimstent�rs,mt�'9�i
sania�'.Tcsur�gfMQie��gs�t�)sptP'ioa8�nlogi�y�cs�trelnbPeiCc
�bcdfgln�rs%�t�hma��nesr!zt�'�d
svA/o�fehnfsvrueqyun!�ctaz�ta�eluN�et	�'ef
ahip
syen�'w�f
sW@toe
sW@tenec�'-w�fefnostightNf
�hiof��rvt
�heNfurNfN3tinN7eN3tnew�feicv��oeN>nN>xhwir��rN5eN7o�d�eads�sh��otein�'i;sɠa
?ueI7ntnhsor�wt�eeddfod�'a�i
suaec�ucta�eCiEo
se�git
d
stah?�uachroC�mabcdefgiklmnorstuvwybi|mn�+pstorateCi�o
d;l�n
s�4nf'�d�vo�staioc6nf'ai
s
�l)�t+�sotzdmpynami�cer�at'�i6slXqaePidr
s�aeo2�r9'�rw�'-�eir
swoY�ro?o(�heorr�sf'h`b�icfl
sloSwi
y�enrnra(�ditScacegmnpvnt-z
�oi�ct	f'a�eior
sxubJ�i,�l
novn�'r�e
sef'�l�n
sr�'a
svl�t�aeio�u�sAtcfA'ai
sl;l�n6s�aoti	ky�c)�e�'-cdeglmnprstwocpulogra6mȶpticKa6sahlo�urudiogra�mph�'�i
s�y5ltemit�cK�s]aFanvu7|ley�'rsImiScnamic
�a��sncephalogra�mph�'i
s�y
c�e.�eouygiD�sm�xinescenctst
�e+�i�eical�laeoygne!Ltcdthanic3a�s
�e�rSWtogra�mph
�i6y�'ei
svgative�ica#s
f'
�lA�ohloioyW�lreust6eiEisiologi6y�csa��qt6xl��s
�aisZ}heceptzi
�ochtuo6ppock�'e	@isaU�trgneiehychnP i�oeraImpe4@iyuty�ipe	i�'dr
sseY�amos�y'Cai�ya�ecf'��a
sent�'a
slr|i;lsi
y�l�nrach6iZuhant�'i
sFna&naet�eio
n�o}�rn�'w�fsW@t�e	'i�nsax{imkral�9'bYacdgjmMn�YostCxzit�a�eiFo
sib�il�ey�Rainat�eCi�Zoa2deH�hi��'bI�ee�1i�'�n
sa
P'beth�'��a�'h
sa^oogr�'�aeis��wrnrssl?�ime#�r�enops�gt9'�tst�e�ioim3�det#=e"ricaEir�l9'�o�twor#t	�'|ar�ehi|os��wurogsWr��f!ra�ocdhin��pqMyution�'a�is"�ei�m�4s~g'Au��oMa�deit'wy:�h�ei�nr'eah�o�namacd|lstt8ei�di
GvD�eۜiaei9'Cn�n�r
js|anb�rs9'g\t�'�h�aOoW'sWeia�au+}n�'abce��fimop�stucinsIiks��lQac�uipat�ePior�'
s�y�caeilord.lnrstE�y'kcgkrade$
r�o;a�ei
sasse�i~m�d
s�stle	i
dmsen'�tdl�rzd
s�a�eing�'slish	gei~mz�ltte�Prae=�zm�'a
stic4salKgldlsur�wi	kye&m
d�r
sk~diZusߔz�a�m�os)�eic>�haioycseif'Ma
dr
s/nvtct)�cid=�lereI�i
s�yo�'glmn
sen�e�i6yogi�yc�e�s�aee�'rdi
snr9Htda�ei
s�b=tagi�s��yld�'-
sG�cei
dn
s�c�t�etai�u�e�'glnrstra�e�n�t�'rei0yMaroeMmnc8t��e�'a
ste�'s's1Pai�ovi�t
staei�anae�yt%'n$�vuet"l'ntatgod�g�a�hrt
f'jl��r�st0il�u�i�ei}c
no�vn�'ag�l
sli;ls�tz
�e	i,m�t	aehilo
drtyntel<�lishei�ytica�dlce+�szr �iEoays*�t�eis2�z�'+&e	iJ�sr�eic'�a�1i	�saocne6d~me	id�syf'a=�ei~m
sb>8i?~lr1wia�u7eiosye;lD]n�o�v
d
jrAJs*�rf'-iha�e�;n�r�'lsaost�eiEo
n�oۆviO�f�oiʱc�'acdefghijklmnopqrstuvz�bcm'teol�'Dne�il
s)�wD�ein�gn>rur<�e	�i�s
aehiloruye=gmprs5�u��n'psi��udat9eR[ixehix�a�eJ�mlpa�ydhalioti
c�d�sg6npra�mph!|i6yat)�haiinn�eiJ�m
st�e�i~m
dr
sl*�aprherJ�ei�m
sk&cA�aos�eiudmN�rux�ae��i92ipasU�snr�utag��e�iouyaTcsS�tpt�ei
s
nonmb�e�Orc��slio�#cpaeedi{acdi�a�cas�'-aegi|lH'mnop
su%�wyuL}snr1gterƊea
dm{rrv�e�i~m
so��r�uic�sf'
�ai
samD^e|ac>�n�voogt �obcdglmprst'wlas{'ta�errdiKati6c�sin
ae�'oJaeox�na�$elmBFoyo`+sy~meotriKa�o�urphis8mlas!zmp1jshinf'sckpyop�ei�y;�ce
�seletKaoe%�rmbio
�n�s�thoelri�a�umKa
�i6s6ya_\opeQ�r�einrgeou�na�ei�ohb�nn
=gm��i^'amrbb�a�i�yg
 vei�ytic
�as�esz�a	e	i�aeieiorek&belb�ld�alrceU0i>3a�d&m�r
sanchi+Ssze	@i�d1�m9r�s
9'a>beilorug'�e�iln'j�mKsr�dne�'�deUr
sr�'�e[i
saeiGcnd�'e��rwo4osh�'-eD�mwspeak³e(*i;r;som�a�e�raoimv�l5n�'mrs�ae>�isse i&m1dr
sl�Pfanrceiaa
d~m#r
sm3�ord|fgwma�'_5i
sticH�at�eaom�biynSd�ei
sa�ei~m
sbJ�i�li&zdai�icrgeiMa
d~m�r
sgsvhY�ttei~m
s
d�er=�ee�ish�ei&mgWioqeu^�on�b�Rcr|sum�i�og	$hl
�r�aueiu�e�ireiyd#rsen,Ggaiogpto�uc.�qhKoTPei&m5bl�n}oel�m�sei�m�s
d9e{rcehilnu8o��mr"�ij�o!>f�gla|�ga+Sva1
r�eirf�eiaehiorwbinl4�el�ei&m
sg4lnr�ei\$op
st6c
ntiF�d�srise�i�'{r
sainei~m
sn��garul@�paollqms�ei/-mrs'�ns�eia
ns�m%�tcrt7er�ie;l	�s�t�i'�l�ymu=�bologi�y&�ce�sr�a'ae�iouyac�timnp!lne	iqmsd�rmelY�lsc�te�i�'
d&m
sw�a&m1�p
sac�emnp�st�ei
s�y�e�nh}mo!�aet��cX�oreneur�'isal|iUlhi�ppi�y0�ce|osV�t�'2�p"�wincmnrlJ:eeraOb"�tcia�bt�ePi#?oFneei"�oylnopu�ei&m
sj�o�yawe�orson7e	im	$sent�'a
sl�1i;l1Mai!o�'�i�a.�oyma�eotic
�al>$ocehl�ns݃eippu*�si'qathiXcinophil
<!i�sa�c*ehiopL)rsVJuy^'uGxlet�'�s)�terdmsrp�ierai�'��ls�dsi|uan9'�sa�Zicdfglmnpstz�'�ae
stuyn6et)�erKa�e�ere|u�'a
sn�'
scl{eioc�aid�'KaFsae&ou�wumriccologi�yc�e�s
�am�ai*[o
cs;z�'��a�era:�lU{aluo�Cra%=elrsDto�dtamp�'m
sa;�th�'&ei
s?vyc�esal��lѕt��a�e�Hoe�Uteip\�hgxcahlaeo�alaeni��y6c�enomena	
o6lcotopa�clmti"lan9';s*�deUlom
�iolog�i�ylar�i
yaho�pxV�iyel�ftia�u
lm�p�ei6csz�a	e	i6t�a	'eioio6c�tc�/dnx��hym-�oiy�d{Gef'!i(*i��iott"m|n�elli6a|ouaeiu�blntf'	�eil
s	�ns�t��z
a	e�-i<�e	�i
yim�itoa�e�io,�br�'7�i
s1Prstriaenf'8�i
s�n	adlnpstvng�Auistan8taite5�rbr]aia�u
aeoc�x7�ta&mo1�pr
s�grR�tits�e	@ie�noportionaN�letpau�ca�i�yb�Mtl$ e
yaolenc8Yt	;eiyfe	Bnf'ca�l�,tlxe9'arjbeghi�klmnorsuv�wy�'dsticaOb@&tJ�aeimmuo9'sthe�tn2�bcl�um1wtJei;l�n��o
s&l
n�o�o�'o
sdnps,tic۬i�ohob;�iterol�lacd�ekt"n�st�'�a�hks9'|a��sMTs�a�'ra_�srean'�nadenV�guBxnnmeFyai9'�nae��i�s9'�`bstt%'݃iModgmst�ei,�b
n~�eC�a9'9eicbٮo��viocai
s�'
�llogic)aa�e io
snt��c�dt�l�r�s�ai?uc
�a|ist"lnrT�e�'&l
sa�ekttQXziW�nwV�hcdptaZe�irsti�oit8e�it�ei
s
n�ovK�eiC�nstipel�aherma6ltotsZuocmy)�cac�e(�hklmopqbrst�'�uahorubdlpr��eric�lalod�,top�'Ze�i
sO8pae�io�b�df'
d�e~mr
slogi�i
yg��o�p��oaetologi�yc
�sPar
w9'ic�hn�rdiH�diotw�o�w�dtchef�oim(.oera��lpthageriXu8Haerica
�l^'C.aeil�nor	kydglC�nrr\�in��o�HiW�t9<cran�cdtzKa�eno�on)�aa�/n�osuiq�tsEa	'eiei��s9'.uC.ir�eaeiy�'ei
s
n��snq0x�'�c|etialf'i;l	�n
ss6m{tuib|e��n^'C.aer�hiorub�tlish	geimen��t�b.�elr�sv|alra�e�'ah
sXsa�ze�zmabtl	�eeCiEonpia�'nt%'t'sp7na)eao)�udn��ggfu��eari�y�en
 acdehi	n6orstuyacl	�.eter	�af'd	lrsBpu.ehter{a6�a)�e>�irna�il;l�n	�saeinoyn9'�eo�i�llr9'r��e�'&yeins6c�Rn+�s+�z*�ec��do�'a4@i	$sl�i;lnTspian'nt%'�s�iocghlmsentri
c�sraphe�i�yistori6yaQcionguist_i6sgi�yce�salKgleuthodologB]i�ysicologi6yQc
�sc9iO�gl�sogi�y&�c�eD�sl�'b:de�senZzoql�SaogiZycfe8Haue0�tu�rs�c�
�i|aric�k*dmoȊl
'bcdghklmnprsts�@�ao/�eahlltypt
i�uastro��paorrist�'ipsc�alogzi6y8�eiomatp�i�aidP'ea/�no_�u�reont"ei�ac|e|o
�a�i#s\owe3`daryot
�e�iaHeo9'`sgi�y�esT�z	e	i"�tenGii*�u#�cheormis�mt�'%�isnri�ye'o<	u�bia
�ca�s"|taehioysiat%' �nk�aythmicbp�ooA�if'-�abcd��lmpstvDzmwp��sas�paon�kn�d�maeloruntriYcv�se�amnmun�"invect�oerti(obM�ae�d�errenc9Ri�yolla-Trairv�kllio�naeh(io9's�'an�'i�ssza(&e(*ition�s(a(&e(*i(oio�bo�pv�r
ce1teptic�aiĺser��r�@aiZsadtp!�s��ihmi�ctaq�oc�t�e;�h�yehrcrt
�i*[oWpaena�@iE�snriXc3�iop�h�aeio	t%'cdglnp�sua�e4nSt�aeiinat6e1�iuacbt�eio
nIro&v9'D?degssce�nCselicnszalf'i;l
sMa�e
�e	i,mt�'
�i
s 9'-xytvheD�apritcharQ�diĶloraIbt�e3;iEo�'lnr
st��yf'-eh>�i :k;l�nsth�La
d
r�san�d�o�'3ofi
sumd	Bna`lt-eghlmrstycih��ancre��aa�std��yt9'|elradef'$�se$kea�raiystingf';l�nrsWv.a$+oeadʱyiIb|o9'�e�i��o6sbdm:do:fptS.wo7�da	�y��ah�Hi't6acdl:nstt�e�i
sen>�ctt�i;lTsf'Ɍd�el�n
s�e
yJcckla�bti�ov;�euvt{eiovn�'ais�lr�i
ysm�t.a�e
Qi6wf'-abcefhimopqtu�xcps��wom�nmu��narrtw�nesident�'tude[�nbcglms�ryetrIb�(ei;l_�n
sn�ot;�g2}ugerat�Ee�iEot�aei
s�d{r�'i�p
snT�aei
dQ�e�r
sperat"qe?iib
�iyaehilorul�(vib�>udelprs�rd�e�i
s'lsei
dnc8t,eiy�ew�'i
�ot�ei
s
non�'a
sObl�/i;l	�npΫts�'[ei	BnQvaengeif'Ma
d{r
squH%est$�a8�e�iae�iobt�i=l�ig�o8d~m�r
s�nT�raui)m[�mBdsi4�oveM�if';l_�n
sgmriV�tmunicat�eCiVo~ieumstent�'�asce�&n	$aE�eio
n�ovri
y�eAuciat
�ei�n�olrspat�ePiosi�Cu�ove;lness�'e�a��eicgmrrs-XtH�u�'r
sua�b
$tta	'eiEorble
no�vn�'Iyae
s�ri�c�xe&Jsteic�asplg}tair�'i
s
yUl	�nUtfi	ky)�cwecg}tiys$�agei� colia
�nty�eiFonovaiouXlustf'ei
s�drOb"n�oi�vblitf'�eiEo
s
novn�'e�1i
sarat�e./irt;a�ei
sm;aEeig>�ls�teunctg�e�i�y�l�s�i�otei
s
dn�ctiali;ls,m�fto,�ol3u
abcdgnprsttmospv�hiologi�yIc�e
�se�r
�n|tus�'�eW�aeXl�*nA'
ehlothalm�iZoZuan��elx�iabcbili	`tit'Cais+�z�ei�m�tk{�peletKa�ohioer�mcf'ai	�n
s
�laeiloruntds>3a�ei
s	;eiOb	Bnovn�'a�1i
se;lness>'eIirrsiatePicdlnrtatUe>!io
s�bnۼt�c��tra6DnMtietn�c8Yteipo
no4�nus;l_�nl
s�aei
d�e�rds�ha�e5	i
sei	nve;lnes�9sitemnc�ztei�'x�a
d�r
sent�'aei
sl�t
i;l�'ei;l_�n
s	Bnmsar�bi�ta�e�:i�yitaeioinnMa�ei
s�aTtlftcaiObt�e�iS�ok�t;�dirst�'aei
sOb��t
nvaeicb�ti�ovef';li�n
s�'nrs�uent�'i
sa��ltC�ei	BnWMot�'aei
sb�teituf'
d9r
s
nt7eiEo��ueossf'	gei;l�xwb
novJ�ii�ln�'0�il
ses"�sk�epr�(iSlnSrBguisite;l_�n	�sH�aeiormnrpora�eKineoui�sds�tIu�'aei
sd�r-�l	�npX&lb
n>8i�lio>5b�oi�vm{rk�eimnoor�'i�l
ss*z�a1�ei�(nalf'i;l
s��s�tz$ea2�ei��cnrcgtZeirs�n�ovuishMa)�ei
 plr#�l
st�ei
s
novn�'aQ�e�isE�r�taeiouf'-cdgjlmnopstvcurri^�ceotullula1rrpo6�rf'�a�e�iEo
srricula�riZotMa�e�iala!xcudicial
Uleig@8angu�iaeuri&�ttr&�rse''o�trdinairi
y�e;l	�noy�lramiIdeH�oyn�sst32oerreis5�ttoria|�laegsan�c8t�zJ<a
�chr�i�st'maeio�lf';li�n
r}ss�t,m�tph32icnaObMt*�sprv:;i6yer�st�'�e	i
sBdKsbdlrekra�eite�ita�e i
s^�n�tb�'a�i
sni$celrs�'-GabdD6fgnxhilop9rstwclostatc!�ht�ei:npe��nhado	�we7�oifearll�'�e
i
s}�i"o�nѽrl
fa.yaei�s�t�dne�rpenS"e�iO�a%+ihiota4o��d�%g�{araT+i��ieoe��totZh^Kai�tan^�d9!e��ie}Dnerkie0lt"a.i
9'-abcde
fhi��jlmnoprstuw
�xystY�o�'babcdefghijklmnqrstuvw�xyz
R�beilr6surW'g��ea=n'�e	iic�'�*a
slaij|ot6ezi
�oaeistu��d
�'-��abc
dlpr
stwstav�e	io-fR�aook
P'ebi�d–rl�joeisi�sf5Rtla�t�'�ei
sa
nmoo�r8WaZel>�neita�i�yt�e
'iS�oimil�e�'i"lo
suotn��u�'a
sli"l�i3�ir92t�'�ei
s�y
a�enszg��a
�e	ia�ei��b�tal�i;lnlta�i�yti3Xv�'deu�i�o
siry*�nsh�tnessAef'-1d"o{r
si�
o�ucr3aei-�o;yy"�efj�n�e!i�s�'ag�io
stogo�eiot�'7ei
sng't�'	�i�s|drenh"�eelnrstncef'Cs	f'-�ei=`l�?o
susafn�g�et	f'-ehi;lk�n
s�h
dr�sea�Srf'-bcefgil͞m�n��p
svwymwV%ie�4aa�|un|khX�id
r�saiV�xel��dL}og�r�e>�n\Ise?�i
y!�a/�sie��wa
�t�y�')�lt�aal9'�a haccomplCi�'ef	@il
sulf';l_�n$sek�sitaf'	$sgei�e
n�r
acdklmstu��w5?f��s&aon�'Ee�r
ser��ailnr��kandP'�se�r	�'Y�-abeio
sci�y�e''oa�gc
n{rb
n�ile
yk�n;6fp*uwiSaf'�ein
se\Msol3ueitf�h;l_�n
r�s"�t�ef�ti	kya)�c)�ebi&ll۬iaf�ferf'�ei
sng;l�stin�g�eij|ol�nU�si�ya�e
lrf'i;l�n
ss�tz
a+&e��i
�a2�e>!i�'-abcdfga�ln�No
stzo6�utic�'ai
s=�lo�yiy�a?[ef;l�nui�lf'K-ifUwa��obnido`�z�gao?�l�'�ei
s�r�ei��ye
n9'
sa
isit)y�a{Ges2�z+&e	i�tiu3c��iM�'�Ds-a±bcefdgi�lmnorstdfs�orsist�aelt�8c	uaen"go:aighted�l�ndw�'ai
st"yze�ird;a�e;�i�'
d��hr
swe�qletche#�dna
g�'��cs	�'�ehi)�lsw[�ya�ong�'rsxytE�torwkb*�eoroH:u�'e��uae�iogkio�uBDn�'>e�s�h��lw^'�ei
seiY�e9'ghtedTn�'�ehi
se>�ir�sH'mch�osti�ac}ns�lulatD�eri,m"�tain�uon�'aei
sbDl
nc�s'binI7df'-bei
dn
sforwa7ra�cl]Al
dn
r�se>�i
sd
niok�u
�'a=Rbehil_�nstuw|hl
�ei;l�n%�s�t�'U-df
hsuk�leoard�'e
sH�d	�'�B-�ehils)�aRGei
yr�n�B-m�'Ma�eig�l
s�dgm�nue>!i�'
d	$sla_i�iyD^oei	$ydn
r�s�er.i
s��eni�eg�imo�a;clnsv6xcktonbrid�gner9'�i	�'-�efiG)l
s
yfi��ninlnd�e"�ln_�e
g�'a5�i
st�'6l
sleS!rt9'i�u�anis
�m�tdeiozcru�'/�a	�ei�s	�nt�eis.(mr�'aei�sble�y�'�n�sd{r�'"l�n�sntg�'�l�s�eis+mkln[e��t�'e i
sw�'e��r
s9'�r�stteW'�v��ibcbai�r�c9'abcdeilmnrstuvwyz�lrst�'�efir4lsul^ql_�no(Qmi��th�b�'h
suer
�'-b1eig�l�sa�w
ybeh"lserdd7el
iai�nEZdeac+dt7Gi�aerdZ�dai^Sn�ef�nrei�'
dg�l
st9'riu�cfl��u
esiariry�e8HaXekuless;ln��enda�ibMtJ�i�'�T-eIbo$�srʱxa��ilt�'i;lss
�z
a
�e	i,m)�t�e�i�'bd	il
s�tle
y-_�n
r�sq�mf'bEe�i�6lsa7�c�gtY�oufff'Eegi
syoZong�';l�n
sgjl�ns[�noa�'�dTsdin�g;�tdeilot³e�Dms��p�cc�n#�px|ei�at�a�ij|o��yP'stow'�ef'aeiG�no
sU(bhrst	
ie�wi�o
d:�r�sn
g|iw�'-��m&�stravel:ln�'i
s�y�eous�lness	�'Aef'-�esUho�i
stY�iaimotEule�'_�n
snin�fsze�if';l	�n�s
a�eie sfart fatնa&�roOcsec��o�'cdeil7�n
suwe�i�'
dp�r
sostaei
s�lst�ramn
9'DMi�s%oa?�ngreei��c
�abdglmnort��uver9'&ii�nu��singhe-ftaeinrta\gnt�'�a�ei
s9'o
?u�mn�'ab�aehl�i
st
yndP�e7�o2�ir|�aiol�lv�u�drc6ximo�taeiouyr*�i|oR�i*�l��t
c�em�stagn<*e�ep�icem�u8eoncr&electric�i6sagnet�'i
c�sglFri�'>�bim�aeU�a�nil�ei$]s�t��zei�odd�cst�'��e�if'
�a�wei�jorsv
ai�e�iaceiltu�'�l�sh)�e�if'rdrstzd�nsh�'�eis,m_tNo�Jeluel
if'dscciin�e�Zns
f'	ed�'a�ei
slti�ls,m��t�aoer�'�ei
s	nsi�hf'�ek�n�e�n�'ze6d�s�aabcdefgjlnorstvxzns)�tcef'�ersco�'fesf'��beor
sur�'bfg�soar.(dil.(llas9'.(snacc0ieio�'bdfg&lsoar+dill'�s��slasD�s<�cln�'Il
s�'osV�gbim�sul4@a�duNss�lness�'Aela�'
e
r�ahkt��u�eWtuule_�n
r�siot]vn�'a
sl�oi;ljzideg|oulei
y�'&�b
d�rstick'
s�eC0nl�'i�o�te6�tcial�rflnr}(s�'d
so
amd	�'ace�fis��wyrZ�an
hg9''lm�@td�'i
ss;�hci
ye;l_�n
r�s�e�l_�n�ae	i�ot��'d�r
sM�ehNiyf'-;l
sgene�vr�'-w�fNefNBnNIoNPsN^tiN:of��rN5vt
�h6y	�'a2�bgh~m
sudrei6yie	Bntf'beЩi
sack6sr�'-
sbomX�berroaeilti�og�v�'
dE�h{r
sn�e�gi�'M4a	abU�ceilmotmƚrent�'g�a�e�o
s�e�'
dn�r
s�&tK�a
�abeegnpustel�rT�rޅgiaMn>'aaeim
s�y
d�r��t�e>�np�'Ze�i
sR�o�'-d�egi�4myos
ygms"oake�i�rtJ�roX�mX�o6c�en_�e
jg��etri�p��fpo-�dehrr�'-Maei
st�#i�'isye;l_�n�d
rhIs	@ia��t�'acdegiklns�glnf'�ei;l
ss�t
�z
a
�e	i�tc8�eiaObe�nnl;l6sj�hf'�aEei
sn;g�'-
d;l_�n��rs�xgstpУuu+�nps
tu�nBe�iMhaer�'-��b�e>�ilm�hnp
s&�tp�l�eing�'�sar[Fk��r
acf�nst�aki
y�e�n�'�eh>')�ein+�ge;l	�nsf'e�irs'rda3en0d�'bei�s
yogadotj�t
d�g�e	n�RsWYbKnrd'lsaU�nf'eikms�t�'-.�abcdfg�Bhl�mp�rstwbcefghlps�9twor�$umb�'e�"i	�s	�dei��ac�kontr3olSaig8hua?�ro
=sig�howe�rto<	ralStr�ka}�loru�clsl�'
�e�i
sm�xb
	'�ei�sn�gaei^n�ta�kcYk�gra��ca|�o��mi�log.�sht
f's1e��i�sMx>Ju�ei�og6tht�'ׇe4iloÔr#�a��uweJ8rc��hitrew�e��do#�nr�mr]�a��ua�eioltl	'�e�i
seZr5�r:�o�rn#g�i	�'�a�ei;l_�n
s)�wtf'-bh;l
s	);ab�c!�df�Khvun�rsor��nY�lt�rorYnaZnchikst�}ah
�e�'-x�abceghik�lm**npt,w
yb��h�Umpto�wloat��e��nankot�wa��k
dr
sy
��'�i�m
s�yuar�-d��o�e;ln�e��g�OiIeolLn%�l�
oail'�ei
schell�a9'�eiʉulo
e�in�'ae	@isb?~l�'7efi
suai
uc	nuf!fl�ao!u
�'cFxf;lm�n
stzht%'bu(,ren��t��eingf';l	�n
sgpS!rswer�.aatrict"kimon�sillsUie�'-NfY�rsaf!�y- ls�4io��otaof'aeitObt�ei�f
n�o
_vd�r
s"-;l�n@=n�t��ezf'	ge�OiN�l
y
aeio�tu
�vybcgikmnprstuvwxy�'b�se�ci
yrgas��t�'cr�kisd�'-egi,�l�m�oD8prsw��alla
?u'?n6rMt�eing�'�lstiousUlX�nanc8tZe	$y&�hta�of'�f�l�r�'eis
y�'
dr
s�'Cs�en=�e
g�abeimy�qeoyanoc�t�'-
dln�
op#r
stptroo��fhro:w�eA�i�'�croof
Ze�irshrows1eng�lo�s�'�e
sa�b�'adgl�kn
s�ge:r|rel�'e	�i<�l
s�d0�t�'�$jp
jsU&ae�}i6ye if'�u-
d
s]�uhk�'-bcegilop
yFvpNaua�laQaK�u
d�rsrt$ku�e;ln�e,gighX�voi!�n�'4e
s�'-b7�cfhilm�n
stuwf��htwo�oZ5oeo5aV�veor�u�d��aea0d�6e.yioot�'Ze
sead
�s�ra?e
yndf'�es��a9'ei�o
d[�nrsei
s�ye�n
jt
nsl�s	�e)�a.�obnteurct"hf'e�i
s6y
d6ri�s\$ioru�'	�efils8Hun�ge�so�qmr�'tefilsu�ln�ge�so��m�'�eiG)l
s�'e?�ms
nse?�e�eis��oacdeimsts�uwx�'bp
s�Gw>�ait[Fei�iEKk�tegrma�ue	i��l
dWlscir
st��elUi
y�'�ei;l�n
sngl�n?vyscI7hin�Rs,�gh�'	geil>�p
y�en�e'g�el�i
ycherb
'6ss�'�eitu�bc
notufZf|a	zi�0ir3ae	bcegmnprtbertigib**bkf'ei
s
drf'�e i
s�yrd&�r}sht�'7eDZig�lp
s
ya�Dtfslam�'1�m
si
y��e;l�ncdgthf'	ge��i��e�'&ei
s	�'7eilos
y�eneg�eNof�-f#htonUef'-fp
sflopR�pslop�,prsa��e^Uirycbntf'aJei
s
ytio�n�uf'
stei
dR1r9'acd�egoprstuw��ytf'	aei
syng-Tspo"ickulaz�e
�n_t�'�e�i�!m
sd>e�g
sdr�z	�'eYgilp
sw
d
rig
tht�'Zei
sla$kia�rt
�'��bc�e�im#�pswl�opNaaT>lf'�Bhp
s�e�<i�yaeiD.s|y�'j�l
sns�t�4c#�t9'�c@=cdPvflns-,a��i;l�ne8_g�'|e
st�'@i
ss�'�ei
ye
n9'
r�ns`ja�ais�anre*tc�udei�y�eA�n�'�ei
s
y�e
nshf'	ge if'ce i
nshartf'	i
s
dr	�'b�eig�l>�p
hs
y^e�en�e:�g�t�'bcefikmnorstvxf'�,brstua4n�t�'-L�n
sc\@uf�'�elUi
s
yd�'i;l	�n
s�s�t�zei
y�e	ne	imoU�x
gkf'eI�i
s�y
d�rryrxeioscei
dn�r
s�c�tdnmtKa�eRaecmpqsahrbQ�retFerEi6yol�yuinoDlcop	;e_�i6ye)t)
rh�utf'�a`�ei	�neity�'
d�l
s�nserf'�ei
s
yai�'�e$gi
noP"nf'-abcehgilmn��opstwbdfpy-6s"n�8w"rio<sa��pObs�walr�yow
ni��dato2c�r4sal�fem�a|a|e�o(e�napl�s[7eh��pwe�ea(�tr�ja�zaa�eْh�'`sz=m'abcdefgУhiklmnoprstuvwx�yc'sc'el�lm�'�elUi
s
y�'1�b
sa|hiuc8l�cs�'�a	geise	id�sdObe�'
st��ai�Cu lc�Tdl
�'G�bdeghi
sy�oyg'iisx!s'�e~"i
yv�o&�e&�'di%�o��s8,b	�lV0sr�k	&ad3egikls	f'-a&�beC.i�]o
s��oybwa'ye�ra�c�oBBcgr�t|�e	�'-eilst�xwdstwanc{e	in�i^�o�Xa�ast��o�e�Dsiofekr,ei
c��sit
y�en�elngon'�e��aio�yc�e�l�Auw-aaUeV>i
s�ju
�oJ�u�Zo��taelha�u�ndt�'a�el�n�u9'�nEei
ySK'ae
sinneW'bleaYuYael�')�l�sno�t�y
8bdlst�6z�'?�g�	is!tt��u�'ehi��ps
d�rar�`d
nsh�e;l_�n͏cb��a�')�abefJf
\ghilm��nprsw�yazJorll�'e!i
s�d�ra��i�ktWd#rfLi\o�e>�neio�sgnh!tO�g��c63oa�e�nrQ�kal_\r{d�taW�t�a�e�ilotogg6s�je
il&rdk�i�e�Joi!e��o�'p
sei�d�r	Bnsh�l�nabcdefgjklmnrst�uw��gmy|ein6aiferato6s6l�n�'ei
s
dr$-aeio6suya�sr�'�a&ei
sdd
s�eing;l	�n)sr
e&nryei	�'-�dfm�pr
sfede4�die�uel9d�ze�b
n�'Ma�e��hi
sf'��abcdfghi�Pjklmnopqrstvw7�eod�ein8galostf'e'ei�l
sWo�u@ae[�o8uc5Rko0a�6e�iGZog�raor
�uther<�eZ�iiseC.i&nr
sound�'�ei
saE�eondf'�e
sgnEe"l�nn�eowil
n
se��d>�e��i�oa�e�o��n�saosdmicf'
�a#sr=dae��l��rw�ao,�rcpuarterf'
su�naehii�kt
i
weai
n�r
sbiQlaeo+�d
�e�cr#ek~tght�'es��d	�'a�eilor
sl�t6y[�la��naeho��sllei
soug*h�l�perf':`m�naH�e~iornJ�ei
sngA's�m^reint�'�ei
suZ-daeiot&vherei's'dn'g�'
dxGr
st-e�f
stme-!�ni�ai>�nvaeibl@eyaan�r
s�en�g�zei&nmtt��u�'�ef,fil
s�!tifr�torn�e;l	�n
�'aefiG)lo
suQ�b6el�n6stf'di;l	�n$seh2}y�ns�tNz
a	e	i,m�ft�'{ei
st�ove�l	�ns�eX�i
d*ritY�tcd
n �a�asa9'�nla�'�e
�ir
s�,ti=si�Jcest9'³eaeopCtwysWkeawbo
kt(eeoar�rr
e
nth'�i�'-a�ehinr
suNyde-franf�cl�ecrwomX�iigh�tiN	e)�fosh1tdrsim�oight�'��l
saen֐'s˂sint�i�o�yae	i�t�'-d
stteillein8glin'�gellnlaH�erdf'-eu�i;l�n
slo�o
d�r�sst�a|eil�'i
sf
{s
�zeBDrer�'�ei
so5jmc7glnrau�l>'-��a�ei;l�Umn
jswmY�uoutc+hessd�'e}�idtaemYi��l�r
sti��o
d�r�'a
sin�'-eh	@i
shp��eteea:d
�'-cfFinpstdeilpswivm�yn-�KhealSt5vo8squ�:ah5?ehe&to�l�weeon
c"n��sc�oqor��e��uM�ehf';l
sea'eltl�'-eu�i
sr	
u
dr�'�s�'-eb�fghit
yhui�n
d�slA�oou�l)�unt�irs�e;ln�e
jga�o7�rb�io
s
�u
9'a&�ceiouy
cegikmnpstu�yz�akt
e
i�s�d�r
aiuon�u�'a7e	i
s8lSTt>�rntzMheimoVrrsle�i�lrr�sent�'a�ei
sr�tQ�i	$yjjnl�e;l�n	�s�tt�uei�'Ga
d&l�r
sG5wng'��h	�s�'cgk�nt�z�'ehi�ko
s�'st%'c7�a��oisteiT9o�'
de�r
s	'
s$'t�ns
?un'caro
P'(.n9'ips9'|ehiol
�eXbnei�'6s�a�eijbl�b
�'efil�ns�t
drln�r�ss^/tourYd�trt9'��e�ensc
gen�s�hi
ynb
'
P'�tic
�a�l�npse	if'drse!rf'errsrnaili;l|�s$]s�tz
�aeird[9r
si[�c9'd7�e7gl�'sutelen
�c"�te7�i8�e�<izN�l
acdeimnoqstuyk�'-�ei
s
yG�o�eUl��n��s)�kt%'t"ader��iryric�'ak�t9's�t.oic9'k\tt%'��s-bdhr.ilm	�nprstwz
bfhk��lmrs3uwo	
raol4�lr-m�Iaandei�d�nE�l��nY�iar�@kaEZnta"&nheZ+e2a�io��sao�r|�rte'e�i6s�m�oaondedl��dao
ync�dei�'
d�r
sad
��e
i�sa�e�i��nson�'r�s�i
hyhR�oo)pni�dĦita�oyn�dle�i�'6d�r
sh��oinkEe�iahl�ir�y0�eeel
e
i�s�d6r^gaeif'-�r
sdf3rvurngf'UlTsdg�haon%t�ncHetzh�'9eD�mY[w"�zi�{y5en9'�suen�ct5
a��ei;l	�n
schno�'^2e	is-e;l�m�nwf�a�n#r�s�taterd�'s��e�of'be�fs1�tfUwoara
awd�'��i$�'ka
9'acdeglnpstvzbHbr�'2�b�i"l
s�yaYktstsee�'�di
si�o�vion�'
�al
ses�sa�g�ydln!pr
jsz�Qa�c�m�Mrd�'e	@ilsei	$ys
xs��e�l�n'&�h	;e	iaghi
s|a�eC.it�'ee�fi
s
dn̓e�i
sda�i;l�nR�il�'�ei
s
y�ke	n>�g�p�bdc'�e(Siks�e~"i
s
yoY�ni�o��tK�zlxlol�i�ozf'�e�Oil
yei�y�e
nbc2�dgilmnstuwzish��ek�'-7e�(i
sc[�o�'gms7e�Wia�e�nrche�i
drspaw�dsGsic�'��k��s|mdCst�'e
s9'Cd�'-abei��lmrhysw�lpEZa�g��lenchedrrs
d�Xn�re
nsr�'s�m'sw%)punne	@iG�aoZht�'b�e��i
s
yei�lt�eu�ik�th�'�ei
s
y�en�e
gfro6Tua�n�`zrude�ncegimnstti�o�fhau�f�daivor�etot
�'alNcefi|l
s
yriaD�n
dr��eul^ql�n�elXn�op�'i
s
y�enses'�s-�ztr�uate�i1d�r
sic�5u�'d�ei
a�fl�i-bcp&�c�e�irscdeghjklmnrstzhkos9'�i	�G'x�aehi�Is�w�Idr�G'�Iseadsng�sxant!�h��d>�g`shlnrer	'�s�'-	�e	�il
s�c��e	�iIt�agi	8u/eryti6vreg�ri9't�wL�y}�suoy�kaU8mab�cfgj�hlmns�tʅnrig�hi�mollqmsJei/-mrsh:u
f'-bei�nswy	bdfg��l��pstwl1oo�;o	
w�rronAWtr�rrcime
�rVaac��krdr�s�'e	@i
s��t
n�Ds�to��r-fle`�di��ne��sV{oabeirs
yr�Xolger�i�e�g"n�'-acdefgiknl��ofuq�ttioon�'a�ei�l
sl�ri;lTsst�mt
�i�s�i
y�'-a1ehir
sZu|yrai��smentalf'�1i;l
soldX�e	@ignaise�iYr6sbrGra�e�l;rak5iaio�Mu�l'b[�c!>f��li�udAe�scu7�l�'�e��i
s
yeViy<�lrr�sf'��m�'bcilnor
stu�y�zeilo��wshweiula6e6r��eous8�e;l�nf'�eio
s>�nug|�h#�aeiB�ssthwe@;i)�urf'{ers�ei�o
yߴen�e6TghSRiwer�s�aeim
s
d8rso&r�sangI7lncu�l*�ce�zhist�'b
d�el
sx�wo��x�ab��fl
no�i&l�il��an�'7�i
s�'b	ge~"i>�p
yud;gi
y�a�eE�l�nC.i$kou��zl;�e�i�nr�ei�'os�t,mt�'�Pi
sa�hz�'b�eiy+#aD|u�e;ln�e�g-wuz�zdiry;w
�i
�'-2�7�8abcdehi;klmnoprstuwyzsturin$�gogi�b
9'bcdefgilmnoprstuvwyz
f'abeflor
sr)�df�o�e��il
yeif'
dCr
srdi��n.4ee	i�'
d�r
sp�nr?1oiel9'|a#�lr
uadfgosb>�o�<ei�let�'X�e�r
s6ylirjn?'dMal9'i;stc9'-spea^&kacv�hf�'u�ei
sf'a�>eg
sw�r�eile	if'd
sriwta�el�mnt
P'�n9'
yf'efiUls
d�rs9'�vwungA'Tsab�i�syorou�Rg�'eh
s>�rers�b�'abeilosuvw	�'chnp
stJHxtUSaioca'Hla �dIgf�tag|oeia9'|nra
�i�'*an
s�'�a :b�qcle �a�ero
�'abeio}sC]ugnFhtf'7e	i;l�r
s��ela�>d
d�g�or�yi�y
aa^2ec'�em"np
?uv9'��iau1PfolYiaV0n9'nNnpw�'a
s
g�)a�s|i�op&rspi:9nQXhwort�hm\�pae�inio9'
c�"s
�zmetEe!zr�saq�y	abe@�gim��o�4u
y|yilo�af�e�t��eX�ilC�of'	�e	�i<�l
s�'y�c
dfkl�npTrstZoee�~p|a
y!�aX&lmta	
en|dsEe�e
�ioT�gphP�y�e�flnarx�a�'e6Tg
s�'s�aory��ndeg$j**ntya�SehlMfi�'6anae1g��s�'-beil4�mprst�t�u"�wg�a@�ousAt
dr�s>�aiy�a
non�'
�ilĞaen8�ei�otdae�
r;l�r�tme#�d�)l�'-e ip
sto�6of'
d�r
s7e�if'�abcdI�efgilmnorst�vryz�'a�eiBl0o
sgne�'m'qa��z �io�	naeiFn�in�'ei
s�a[n-XniuAjeszhnkeklaN�lontua9'
nyjlb�wsaldi�'6sain��dc�'k�se	@i
yen�teirt
P'�ei
s�'
sYtshf'ei~m
dT�e
stte	@i�'�d�seiou�yt�'
s�tcsKko��nt��e�ite	i'd{rslmi�o�tOberh,�n�'-isbcehi**klmopstwcpoo�lerm�Peoi�nbFy��g�o
s�'eio
d�r�$s`�lfiyxc�eA'	@iig6tht�'e�i
shlmo:l:diek3tf'r}a�e ijMo
sei
y
d�>r
s�en�egx{oriou
cti�d�sceinpstnB�oemQ�interiK�oti�d�sntesti&�nom#ei�yceal;lF�o�JucƎtop�e�i6yo �mla6e�tor2 k	ehilost6uw
�'ac
d�hkps"�wu'�s
xrasTbhe�e�o
P'heH\aerf'e>�i
sin�b�grf'�<ars��b^'�oX�i	c��dglnrstzhe�o;l�nr�smiei�uSK'�a
dr
s9'i�l;s�st�el�n�}eyavs�'e�iL�ar�i|�ei
y�e�bne�ioj�rl�'Y�l
s6�t�adkplY�p
�'�ei
s
yhFe;l�yn�'eln
s
r�stry|eb�o�Ad�eaeipu�z9'�nf'�b
d8,l�r
sttei�'
dEe
sah�l
n'�nach��omY�p^'�pcs
��'e2l'/us9'��a�p�'acdefhilmnorstwyr	�'`kb�ed�h�isِwYyhifA�kdc�i
'-
dikx4lsvzg
=e
f'7odeis�y6dUrpenSsX�e6g
��p�ee.fsEe*0fernU8nPir�gst]�honog�a	�'abcdil
scbtin�'�
e�o�svizea��pU&a�e>�i
s
dgni�tei
d|rb
nr��a�'i�lmo}sni9'>aRs7eioyn(eglog4@iylogiZyadcs9'adegi5*l1�no�rrstu9'rae�rr�'-�e�i�lq
sfl*[uuX�e�'c�arstvaio'lt�'A�-i;l�nss�tza+&e	is�tb
�tJ�il�e�yi�ma2�ei�b$gthi��p�eiEo
n�=o]vcf'
�a��i�n
s	,s�ufei\�s9'i6sc
�ai#ssz6e6m�traie�vjWhF�ac�e�it�uu$laA�ioli;l	$s	$aur�iJacmtid��a�e�e'Eio�Uy�x�'eilor
sel��e׾i;l�n�al
ae�iei
y
dfm�n
r;�s�wolkf'Zsa�en�'mTli��y�eKffi	$slect�e�iFo
s
Gn9'bcdefgilmprstotaBZnaeho4�ryche
i
�d�r�sntric�s
�a׾iermiV�cstoronologB]iyrU}oB�cywae�uy�'s�ti�y
acenamngineer
ifW'O:rraphEeL�i�y6d|7nolcgi�y$Zc�e�saeogQ�n!tneti\5c�st�eri�yc�e�a!isrphologiycs7nao�ahoysic@8a�i#slitic
�a#sdg,iei�'�stoto_w��e��aen��acptyien�cti�f
�saGtart��iate�gnchlr~�oi��naQ�ehrcg�xR�g6serm�a
�io-�p9'ab|ehimorstuvl�nrdt%'�)itq�od9'|or�e
iarYdtan�cttrici#sna*�o�'ao�ei
s.in�'Sd
ei�stry�c
?uox{w[�cnal38tf'"lnitmoclra�cogi�yc�e�s��aioyn�tx4g�'manderf'�eX�i
sht�w�er��und�'i
s�v�astuoaiul�lpto�'�s�ei
n�poculat�e>iir��a8�eindheit'f'-ah
st�u��orich-q�u"�wse݁m�aeiyr'es9'sBKb#�gurztramiI7n�Qsaeio�quM�zns�=tzaP']9it�lnvaveia#�n�e�nrti�kto�'ei
s�ds	Bn+�s�zble�llZ�isut	�'-b�eil
swwri?�ote�"it�r	�sQ�e4�ui
y�ek�nriote
it
Yr�se)ptɴlrk�uhabdefglmnoprstuvzcnuox�mBxnntlFi�'
fe|ik
silѭl.�q�beilr�seo�sr�t�ei
s
n^Ms)�n!5s��u�''dr'shobngE�le�ataltar�'�i;sdeiye;lnd
r��s�eWg	i9'�olxng_u
ftor��d�'�ei
sw�'ago
s	bcfhnptvw��i-7yycZ�l�lert?vzot(�tic�s
�a�ni7�xon�n6solatt�'�s�eil�sgei
y�e/n�l9'|abcdeglmtert�'|oxyshr(vif'|ae�i
s�a�s�tam�{n�Pe�'$�aeim
sd�rs#�tp#�iae�gnw�o|mMn�'Cd/�sg��h,�oaonr�t�r,�uf'��-
sbclmpa!lrackf'e
s��re|�t�eick�'�r
s
y�'�e�Di
s
y	�'ragkmnose�'hirr	�'b�eimTls
yrean]�a�nv*a=ieKigo�'�e6si7nl�e�i|y�'r��mb�e|uPeurMgcr}tvon�dgioWna�\n+�sadilD^otfA1ru�fd�Woei'�l
slambbFo�'�Bff�hi
s�y�e�wsf'Ze�h�i.orsb��e|hm��tor
n�o'3ehrsu~�blsiaq�ne��tp�pei	f'-a��bO�n�r
s�Dtaw�wacbwsFangA'"lrs|am[�zo
�'�saeiouyPxbcdimnrsuxzeiZe�irsaEeoCs8l�tlogIiy	f'd�eil�ns|yei�yd
n
r�sCe	naotor�'&�i
sl�a
i�ui
yeotm�eoHn,�s�vR�mo6sru�g�i'or�'�e!i�scd?vse��i�'e
sm�u	�r
se�ir�egnstwc�oo5s�'-b�eD6fh��i�lfNmpw
ybc|�lmploowLe��i��w7hlake�"iape	�rlolnwouO8s�&a)�aor�kton�beg��icoE�mu��eiEeaUnaenmn��s�'�e�Wi
se@;i
s�'e�fs�'��bdefghlnor
svao9'��l�mwie<l
1i%yev-ai�vP'|ah�irumearcm=Ph�;ioBw�yie�wb�dm	�n�ostl�b;l�n�'mperf'�e>�i
s-�sstand
iNoe	�n
rctzh�'��e�i6yerf'a�ei
s
yt�inj�gf'B�e֩i
y
abcmoprstuvwx��ma�t�'ae�io
suli;lTssz	aX�e��mut	a�e�i�'-
d
st|�ltrkorottEe�i�isla�e�irEi�l�n79a!�hkenspIHieCsrul
�a6iZumS�p�'7eis
y�e;lD]nf'Rpi)y0a�efAoi	ky�cwes�'1Pa�e�<io	$ylaE�lta�ilizR�aceste��rei�'
d�l�>r
s�'-�#ei
sw6y~Owie�no<`ri�nce�OimsfotaoS�gcsorti!�cFa,eiW�d�'-
d	@i{r
s
ysnif!�f;ll�m�nTs�'aei
stmt�ai6cnhDi([ainu�'��osnAo�eion�'�i'o
s�ycnpekiorio�dn�'ae�ste�'dCs�'Csl�'Oi�s
�glp �s'�i�ls<rdYne��bh^'aG�o�tit�laeo�ph�surnRs�twl�'�ei
sry�e
n�eli
s_�icmswc�Theio�'�l
s
csM�ntic9'isPTmanger^�u	'p
sg�
�'�'-C.abdefgilmnoprstuvw�yab��k�zs@#het�Ew9'�dlt
�'-�}b7eh�ikg�lmpst@%k�Tlmo7�u�<aeepEe�Hiout:�ho6Dscore	@i��renS d�'eh]is6ye�'6d�i
sY�ei�kuZ�c�'brilseil
d�teif'd�r
seygoE6ogo[|o�e�imtac^Skopׅp�'-acd*�efhsilm�opstuwzdfam~1uc+neoa^&rrsak_rwfPu��ha
fem�ru�mnZeg��haod#rt�"hrsak�keYToa��dei
yssKglness�'�e�e!Rk�no0oa)�e�opeed9';sha �aeen�ii=�lbr
stbe�l�'i
snKgh��are&iS"erf9'gh*�oleif'-
d9r	$sb�je�oj"antg�'s	-)�ereBFo�'�d�s6acdel�fgilon�n�'-�abefimswpԵlBMericl�kn�rs	9'de�l�nrsoo32drr�s�y��eie[in.{slds
Mel��nock+}s�a��imtwit)�h��eort5h5�a6y/�t|iot�hI�aioy�ew~�o|�pf'�i��w%�eo�~purRWrlR�ade�gik$nouvzowl�a�iana�l�romet�eriyc3a@sclrocc3aiu�erheoaf'rlea'l�&bill�Bearole|o�s�z�'bd;efgl�iklmnpserf'@s�'-��abwehil�mno'er	$swyfh��ln\Io\8tor-not^�heua)rmour�Rea�Et�year)�t�-esi
y�eX�n�e5i�oil�nl�'�s�'e�>a�'b�elUi
s
y��alGaei
y
6�'Ga�d�s�enSK')s�\a�egowoq�w��oa]l�'di
siw+i+y
f'i6yieX�n��ae�i�'-brd�fE�gsstep!�phbeumpsf't�#e^'h�hɠabdeg��hikmno�pms
yacheMvio�aI7mn�'sD?vto.u�'
dn
s|yn'�g�aeio�'
d�or
sn':;i
s:�zs
�eln�l
y�e
jgh�ya:9lag�lndi�sT�z"`i�k��fhlpsa�e�w��iero�laiymer�'s6yp�'4fei
s
y�pcehL�oth�a
�ebPo
9'p�aisc9'ai;sl��lsǵz(&e(*iYm

�a�ea�RdglHGnrtc2�hgeYhi.ya�"brddm"^o�'�ef
s��ua�end�'i
sse�m�'l�is
y�..aetrnaeimo
sOb�n
d�sent�'a
sl|i�lr�'QqsY.e�n^'a
�l�orsu
�s
L�s
�saeiouybcdefhilmnpsts�uvyzf'bWl
se{IiryC:cei8,k�'
dfl
s
1i^kuf�aee
n�o9'l	f'au�ei'lrsu�y�)b�teC0nonc�tm
�eal��n�ti;l�nss,m�mtc,mo-r'�oftW'i�at
i�o�'eu�i�o
sam�'|esctln9's�'�5ei
s
y�en�eglO�o�'imopsnivPxoa9e9RiylrCst��o�'Cti
sicali;l�n*s�t*z9'�spho{�ni�uan'|s<cadgi�norstu�v�d�rf'acdefi;lmn.opsu�m�uhe��i�3sadu�'�d
sg(�h�e
r�sIuather�'�ei;l
slooq�kus"�e�iao�'s:tthe�re%+ip�swha�'~r
s�otanΫd8*ne�'mYr
soZut,e
�i�ydliFoaf'�'-c=�e��hipos$�vmain�zthe�smanshi��pla�eort�i�l�e1Dickmyt�e!|iehIHnp�'fs)�vru�i�eGZh�'eio
s
dm�e@ic
nt>'�a�n��se�ilogv}i�ylN�eu�ipsf'Ma�eX�i
s�'eѽh�Oi)�l?�m`'qr
y
dr
so9Foeiuf'
d�hf�r
scfn
s!�tc�uiy)�ce
dѕr
s�i
�grsit�i�o�yaei�zl�ydm�zl�e	�'-dlnrs[�yshtilLg�'	�e	�il
s
y<�e	�i�y�e9'H6eit
_d�o�<d�e��m
nta�ito�y
st�ei
nؔov	'bei�wnsapts��e�d�r8s	�ns�h��ogeu�i
a�bcegimn�%pst
wyste~"i
y�'
dp#r
sa�r(i	f'-c�e�Qh;l_�n
saghnu��urandcq�fmphild�GrotL}hahr�=eeiph�~eR�en�coa>�t��i��o�cd�k�lnrt�t�'�ci�s
y�'�h-abefghiklm�nop��rsvww�a��aeou6Dl(,rt32t�ls��h�'
d��r�si��l��e�n�arocer�'
syo�r�u�ef�nsH�hee:pae~i
ynd�e�'ei<m�rRc�s*tZs6taeoilf'e	isd�rado�8wu^�ncl�uq�kea.cbl�pt��w{�oeeIvY�io��n%a�i�e'gio�'�t�'at"go��rrit"yaMont%'sړgi�laW�d��fovdra�eiaEenn9'pse�'s
P'b7FliC�l��fJh�ac�eWn�"z?'h'beg�hilmns!ts~7e�d�rsE�t	�ns�h	ayout�hess�'�ecIa
bdeflmn
�opstvzb1l�'d|�e��il
sele	i�'�cd
sockf'�e	@i
sfkgv�'�je�i�s1sae i�ofio)�n�Rt[9nlsf''�e�Wi
s
aei;lm�nos
y-�cldo�k�i�'rd$�s�en�erg9'�eiK#bf'zcd�gn
sf'ei}sl�rwalXdng�l
s�e i�'geip
se if'
d�r9'ae��ltwi�loful��v�'l��m,ei
y�e�n�'o�'	$st�<e�Fi
y6�ezl�ei	$y��eA�nac	fgwikmopstuvwyz��n�txEe�'�`gc�k�sm�/w�}y�_emtv�'eX�is
dYr��m�e8�ei
y�eUlingei�Xn�ul^bgsv�zra-?i	�'`�ei;l�Dm�n
�uen³oe2�ix{otsq�uio�ypeX�n�'es6d
scnp��sΫthf'�ei
y�e;l�!nd
�'-bcehV>i;�lE�mnswpstFvlquir5?ro-a
�iaru��ieakFein]Ag2rlot3h��oug�thkD�mwel�eeep[De3�eaote	$r�Br�'ei��sw�e>�narJ8ee�'l#�r
se�il
srd�rei
d�raaEe iln
s�tf'ei
sn�e�g�-]�un`aenHgybdefmn|sy�'bse~"i
yta|�kg'�e�ilns�'ilsng.l�sing*�lE�s_�wome;l�n�r�sf�9e	@i;l�nTsb�e�mplge�ji�'i
s
y�e;l�n��degi�t�lwa�el�i
yer��ep�chba�mh�t
�a�eabcdefgijlmnoprstuvyz	cdlmnrt�vyam�8oaelacquja�ra��nuij�v#�plou�4pla$t�'anJ�igi,otza�han��aadnnitw�'/�sp�eiEoy��e�'�i�'e�hir]hsd6e�r'a
n�n�ja_`o!Hiaema/�lmalan'6naq��uernato|�r2�cgeon�'|�elnrsvzp�atinrll9aseyP']s|aeidrlla�'
sstf'Ma)�eit��wimaN�t�'b�e:�hi�r
soom
naC}ta	rf�'�a�sgenh\�e
��'adlnsty�zb�naei�oIb�nf'aKb
d)�l��p�r
sdelt�'Ee��ffJh
s�'flyutWless;lF�naeou,mm��r�o�(t�'�cil�s
ye�senav
��'-�n
sbissaQ�u_�ee|s��ea�r`�aarrat9'�ianw�aa
c�2d�fx4gle*p�gr�8g�'�Raei
s�y
d�t8y�zb^2e
nFv	�'b#�dem�pst+#a*�eof'
iors<�trach�ei
y�en�e
ghi=yoe!�l�r�'>�bcdfgkmnprstwyotztae�yg(�rq�arxysig�rh��trery�'V�i�s�y�ae�nta��l'aeiy�-rdl�2rl5a�'rseng/�'�'�$soiwn?vt�dun�^nh�ilmti�oa�pings1e�i�i�o³eFh8,aaChf`�e�pKtd��gk�ln�uw�Lahan':9lt�a�ze9'hstf')�ei
y�enV
ge�|iŃy��t�'a�ei�o
s
y_�f�tv�'�o�u�e;l��n�'ehilstnber��g�[rerr%�eess�ni
y�e�nae�iury-pe��r
dr�'�eu�is��nraO�lgu yimidhi�rnrsׇo	�'a1eir
sv�Xne��r�m�zaeylni�a/ogt�jn9'd��tol8i6yanf�i9'e��d#tbmnprveZ�ig'id�s�'knk�psh_
aaosi�ta�u.�sl��iaeoercologiyc�e�sa8lyccologiZycs8Ha�ceA7cf'ps}qeii�t�u��y�eetafot�e�io��ralcf'cmpsomL"pagn�eilq3l8a
cop�e;�iy�e�ioRi
'.abdefghimop�qrstuwy�zrm;s26�4�5'��-abcdefghijklmnprstuvwyzp;s'eo��rn"n�gs9'taeikk$uar9'das��h�blt�i�'-a7e	i
sufor!�mb�ntii!Rl�'i
son�')a
sa�e>�lMtik*�ef'a��beilnstwcbt1�h
drogt�'sg�pn��sg>'se	i�'dr
se��yar�wivis6mdto[|r	adejd#l&�nrs�m|rH\aNo>aPTs�'!pi�ito?�p�tm�'ao�stio%
un
=tcFpgl@Vm�rogiyc�e�s3adglprsiya]lna>mlobti!xyhtilia�c'{cs�yrhaog��eic	nid'3asta�ms!zt%�in�tAe(i
�'r�ae.�fgil
s#�ul�n�rs�tai'Hl�i0�rs�'�e
hogK�lraph|aEe�i�y�fen�'d�-io@�rd�fJ?klprt�a,�e�'�eis
nto�n�r�^h�'-bcd�egi�il**nps
ydrstrSiL}ya��i llplit��tr�oiar
lkrne.yua�d˺a�plut�'
s!�t�oreS ysɎs�Wr��ei&k�ni#�e�nbptrea�jdlritlnta>�iy�syl�ei	n�si�'a �nj�'�e�ia�ekl�'te��ru�y�'a��bcdefilmostv[�ylf'Y�ls�y8a	9'a
d��n�rAJsry�Sk
�'-bhm�nptwabcdefhilm!�pstwynrd-h6a�saQ�elr��c5ko{�uv�oeo��et:haer�us{�tntu�frotwY�eup�zla�Gt�:aini�8saeo�Zras�rur�ls7In��eif�g�va	or�satrhe�liotas-oSvverei	
g3eei�Vor��rm\>b
�eY�aN1uaivyttedE�l��nea�r��aru�eearJt��oen&cn�iy�'w<3oivo*m;ai��ot�'
steI�db
=df
ntu�tp^aeos�e�i�'-eimosu"�wst��alryuW>jb|eur
'tar��k7e	iosw�'�irsei
s
d �eta�tcinaot�eCiogen�'��i
sXa�'egin
s
dsen�'Ra
sa�'9'3etwe$�aye�'er�ix{o
s
dr�'-ein
s�n
d6se2caei'�h
d�r
js�'abehilmps�l|nluMerg�'Ee�srCssley rang�e`�ul#s@t-c|lton�'��ie�i)�tae�Oiou
yrskj�no
dr�t�'eE�h��ilst�eNomN�t@^i�o�c��nra :bd�wes��tWLe�hteb�at6uEeriung�'i
s

P'cd3egkmnostu�Bo�'-.abceD6fghiklmop�hrswyhmptwee-do
�wa�ii3tno-�KhmoifuovУeafLiaMorg
lrs�':Fg
srouw0�iaO8kalrurf'rs�tap�s"p6saft
f'�e�irsff>'�ei
jsdrl{r"lness�'�e��r�ue\o��lc�e;lnfUwa�%rp�'��p
s��e
gerchi�eei�'aa7�b
d�r�sYyf�n
�sa&did�'�e
s�uve:�ricY�k"a�ehop)�take��i�'�r
sme;l�n
r�s�&i��ror7�rv}Reit
�e�ik�t9'�m
f'-adei�m�hno
su��zg��ulide	i{rcbr�r��o
dr�'	-��s�'>�n�u�v|lpf')s�'ei
syr�'�e>�i
se&�'
s�'-pan�k�/eai�'7�ht�b7�iver9'�i9'aeo”r�l7�n�m�n	�ak;akf'hlpsazar>�d~eoryi��tdf'
s6ye��iyn�e>�istan*c-go-lu�qc�2babcdegiklmnoprstvw<z-��ln�rsk�Kig��us)�ei&mhioajWLan�'�gru�'	�e	�im�sasׅtr	�'EZate	�i�lm�s�vastpeoR�u-bcehil�nFvpstw
hybcdehln	
opswiot�:t�io�idrone-�bavsrekiads�rds�eG�rin�3eo5s
are��she)lio+�r�raio�clZltk�tad�u:�ri6yZeo&rS vcnm]r�sangqueo�i
saeaJd�gr��ep�h;ln�Ds9'�e�gi
yS nchtra+�b��e�i�
a=Ta�oa7vio1ror}td�k�'b
dl�m
sfLera'iip�')�p
srae��vav/vcni�ogK#e\tei
s
dns�aeo�mqyuG�i�'-�sdavidsoQ�nyAt�w�'�eFxfi|lo
sn�'i�yc�e�o$]s�u��zf'a��s�'
�l
ses4Ws}�l�'eios��y
dn
r��d�ep�n�s��oichor�d��eio��uyCtde_�gns
d�r
st9'|t$�vg'�tP'BKbonP'�b�dgΫwateZ'�'ihe;l�nn
r�se	i	�'|efl�m<o
s�loe8ipYyoo�-l�laes7�yt�'ei$m
s�Oei��o�c
{�bhik&�n�pst��w�'	geitA�n]�s~�adi|mzs�OeiWnib�lNo��dei
y�'
d>n
s�e;ln�eg7�s
�'bce�Bfhi�lp�krstaokrnzxhf'�$be�i=$l"�wc
dr
sr�tkf')s'�i�y�'
dFxfm�r
son�rga�ww�ihte��pan[Fdei
dr�'�a
s��e
nbglnprst�e�eh�`tf')�aei
s�Ze
n�'ctf'�<er�i
stmanKn:�a|adeor
�fړre��uaeion-fra�tP';sf'-lnr
s�qn9'oc�-k'
s
s
t��isNacT�l�'Y�ks
�'aeik�Ol�Bstii�'M�a�a
d[r�'ei|�ls'
d�rnsgrsa�'h�n��hhorn�'�e
s�'y�cdefilm"|nrsw�ern
dMk�r�sie��l�'oa"o�k�ni�c*d9'�ke�$taio0�i��rre�'	�s��ortMhaeilm
yrd�'�eiAo
s�'
dl'�r
s�'��b>�n
s�e;ln�egSK')s^�ei&�t��a�o�9dmqst;i�rlA]r�v'abcdefg�hilmnprstu5�vwxyz
d�l�sdl�prtv�'-abcdefghilmnpqrstw
yh	
ount��e	isY�cgaoun6y�dge
ir
Z'�sY�arouSgt�taho�m2�se�
eu�n
drd�r�l+nir�s��ezJuunt
e��irsrdYr�e;lnaeg�'5l
saeio�xm^nsgscgnei�'
dYr
s�c
na�ei�nster�'UlshipsČto�:t�hi#�e�nuarter
�e
i	$s�#a�eOioc�eh�mtar�f[_v�iri��naor
l^nE6c�noeacheN�ra)�iY�o��iRlt,ye�rei
st
d�r:sh�'ce�f�cip�s
y$+aa�a
dEe>�ik~kst_�a�e�t�'-F�abefhVilrstw	$yrstwenVudeao:ro��-�[a�Derue�^oak�'Fe i
srn�'�(iss�d��ne�l�'r}sg�u)�a~eendingl@yitck�n�drhra�oaor�m:�o�r
�'-aaZ^eh�i��pswresi!�s	�'ceklv�r
so
tnr�'di
s8�os�h,m�'sytiandstro�ka�bveiy>'
dn�r
js�'-l	$sw4�si
y�e�nG�ae;llXnsrAJs-tha�n�<if'-��h�6sa�wdhuV%aer9'�rst nuaeA�ii�c�as<�waktutMeombf'lj�mgeX�iaHior��a�e�(glmo&rit{�r)�eKbg�'loe>!i�'
dhr
so�gp1�p
s�'"o
snit�sdhl|p�'j�efi|l
sula	�w�'�efu�ig�l
s��lI7n�Wtei��lmon��i�yr\�adfgmnrsefriglI7gbBMee��le�rth-th�o�'-!e
shCo��leN�l�oM�r�z9'*0k�'
fe_^l
se�m�qt�.n
degilmopstvn�'0at"es
��v-cegop
?u�xsk�6i
�al�eonp�'te!rro��lcgpstent;�rraph�iy�4o9'p˸hrop�e-�ikra�o
�'-bZ�ce�hi�mosu,�y4�bcfhro�i)�oaiSsiebn�rs>�o�ei�csze�a(&e(*i �mtW'?�iYsae(*iL]t9'YdYsp��oHDo��s�'|�e	i
ssjv�'eh	igzsogudt�'�e	@i
soP�li�+mtpsf'��a|iUr
sf'ee�f>�ilm
s~ei�mnae�ein2�ker-skelSle�'
sti&4a�u
�'aZeil��mops�ltw�iologiZyc�cscdmnshyordat�a�e32clinn>demisemiqu��aetabol�itog8twpher	;ei[�c�iNogprsloo�bhiliaf'�crhaogy�eirc�nw�iZ�t�'�ehs��itit�c�'E2bcd�gO:lnprs5tehfortw9'�merr��sic�xk
P's9'x{o�aessW]e|yekNciy�'eMkt�t�U'c�l6oh_5eabhpt��rtio�cti�ds�'Aecmpe�y
�lae6s�tgHaancreZau:�rae�s�elew��hag�nt3�oh$ilf'abcdeimnoprst>�vz
P'c��kll�eit:1ud�'�eIyi�r
s�'aei
sy��cmglri
ss�m�t
�i|trtP'�o[�cievor�e?oulaene�Zua�sbn�'�ei]hs
�'a;bdfior�stu�Cwbf�to��u�tita�i�y&lmri
y�aaUlX�nord�'shna
f
frnaioun[g3�c$)fn �pSd�tbote}rtA'-wa�ta[�ob�gaeionp9'nW'sb�uhrodit�ei[u
c�sn�s$�teu�;t�nt�',�a|e�7i
ssYai�Plaeindq�ea�'
l
s�t�'d�ei�n�'omtM�cn�s�'�e�sest�'@Xv�ioUyf�)l9'�eiA�cng�'b
sxyto|�nceh�h��l|ye�l7�yfzords�'��osp��re|logov��i�ghi��pst�v_otantc8t��e�i�yE�e�ic�o9'|eian9'YsHe6oetro
	'cdfgPvmnpsz�Lyo�y��xle[�xW�aene�iAooyrmax�tm�itohڲtob�e2Ti
eo��ptx_iual�'mi;l
sc~<iruct˺u�pyCion-le-ho5�llr-Xsan2=distic�'
�a	$sei�klno
s
dc�r��t
n$?tX�er�tf'aTPei�tcdfg�mnpshlori
decimal"l
sl&u�oH�rloiS�dt32y"�deA+f��swrda*�hHGobeolla�hkRWi�'G�c9'�tL�v"�ws-abcdegjklmnprstv$yfi�ri�s��h�fl�twRWe�kaabeic�2h$�arn
Naia9'�ns�cckouughZe�irs�pf'emo
hsyf'�s|k�rk�de>�i
f'-�haG�brdo�r
syand-seY�eu�s�trdir
saor!ztcL�hgnlyphf'i
sc>'�a
jsy2�magh\tshiosa�kil&0nedy-piggl�Zef'-:abcefghґiln�spr
stw��b�cefghijt�l�Jmopqrsner�gallur�u�<lL}ir�or�y�raents�d�enc"Io1uct�a(as�ior\>weoss�:uf�iuaaei�nsol	usekeopt@c�*u5eirite�derppSp�@e	u��ao ru'qr�y&�rhaS"ir�s-rsle3vailut�ield�sa,tFaai
ynd�'em�s�r��gess�'e��o
a �ia��yackf'eV>i
s
dr�'s'geX�iuran?�gabdfltri�yo�t9'�uerg�t|aeber�,i�'��abc*�egimNosb�twyilA=lrR�ero�vb�a�e�bno�rb��d%�i�torou��galk8�e	@ir}e�'7e	i�o
sf'a�9mslaya9'Rn�se��lacd|egkst��yhkinbrook�e�Olf'be�iH'm�Uq�Orsu=$wr!�a�Mm��nr�'�ei
so�i�'issm9'$�stan�'�ib�eirsley��d�'ei:�o
s
dr�')�l
s�'bh��l�nps��a�oug�gC6a�eio�yeA�n�'rst�'cdglp
sarmQ�pat�e?�i�rr��iJiyyota�m�taeC.ios&�g�mf'-
d��l{r
spurch"8ab{hsu :mhiW'�m#cutuepstani�c�o�'	geip�naW�iorm�)ic�(glrhemi�cstۮrogi�y0c�e�si�y�ac�eowaisotmtgraphEei�ycealUlio�n	�'-achl
stand-m��r�icʅhhf'-c)�ehi_�mhi�koc7�ki��kerto-un�Esers�'iRs>azsX7t�aEei
n:�t^'-8�einpegati5�vos�'i
mos^'Pn
o^'-abcdefghiklmnoprstuvwyh�ugrtx*i�'df��is
y�'c}e>�i
sro*se;ln
r�seCd�sz�')�ei	�'$=abegnosei'Hl�sy�d�s�e	n#t�'-h�iho~=ro�Frs�ro�ibaoi��lb1�b
sf'krs�oku�'e�i�n]�srdys-poBFc�'g
sePkb
'pPTs��o�'lNcdi�r
soHDwfs�'|a9Dmta5�d	�'a�$bgG�nstwnrw�'�stKh�a�e��iE�hi�y�ea�oe�r^Mse�honlszoWhta�@uolle�r$kc�:st�ky-t
oeikourdrsy-cok"e�'ʕa�e�nti[kabiwhVDiZm�7sbcdeilmos�tyzerc6i�ko��ool�m
f'�-abe>�i�Gos]�ucb��l��a�n)�r��w�'aa
d
s
ydensay�'�eim
sa�}kr��s-than-tho6ue
gss�'e�mt%�i6saeioynd�'~�ae;s(.rr|y
f'ei�rrsI�d�n�&tses9'±tw
f'�h-3a�ei;l�n
swo�a�'fy�hwordOoW'�abYe(icg��ta݃eu��sra�mph�'ei
s�y
c�e	Bnt9'e �i�rhose�a�a,ktone�i'6dsɞmabeiouge�'r�s*ru>�r�'-bc
dglmoprstwybc��glmos��aruew'7esilr�do��oo"vadlkwne	ir'�schho�>o�Goou�d�yiX�ylfRdto��mrEo)�aei
yssf'�n�e&k�na)pdlnkbmpstw�|oorphi�sath
f'i�sycAe4s
Fa
>'tas��tis�c'her`!m�rnag:ue�'Zei��o
s\t�c�ncipthooZ�l�c��ueral�d)eow�naorrd-
sbrk�'�:e
iec�rkf'F�n$sc�elni-�d�e�i�ye
jg^ioyss�'kri>'�'eglmnprstzor�>bpstathisyc�etas!zt�eis�a'herm7na!|i�ykoaer�mn �aei�i+qo	sNza
�f�pogi�o�uyAWceorph�'iBFo�y
�cX"sym�'�ito
s6yho32iobnQ�ei
�a
c�eyl
�aym"Seg
�ae�oxual�'i�l
s
�sotopLli�yygo��uncuBFl
f'Y.acde/�gikospk��hraYoura�n7�s�'c
dg�rsy�\kte�i;l�y�r�s�';�b�cwdeg�ilm�3pstwk�a
d �uocus��t��ouckFe�lD�rt^e�7oa
nb�r�'e^Ui
sZylruu�sl�'aei�sbrle�y�wni
ye"�l�u�d�e�rf	�niO�cr�'ae	�i�sble�i�y'nsessg'�d`ae�r}�h
-cd_�efkl�nprstv�h��h
�'ei92l_so
sw6ygd�e
nin>k�'eim
s
dD^rar%Jk
�'-�aei
s��u.�wZy��nu#Apt%'
d)�rigan�'ei�l
s
d�&ra�yei׉ge �r�'cei
s!ph
dnranA=n�'
hser
js�'�ei�s�'eikps
�'
df|lr
st��wulf';l�n
sP�o9'
n;sinsP'vid*l�eiŁlc.ootch�'_ge�i
a}Tde�Dgimnorst:1uwf'crst7�eii>at"o�u�haz�
ton�'
s��teou��l-�nKz�'beil��p
s�!tbu
ye��ilO�o�ya�meo2}nwerP'9'gdXr�t�en�egRGe;i'lswogAei�y[�c�e�s3$chP�ien[ueion'db�dfle
y�nTsi��y
�c�ecrk�'-
sstr�GiY�ue��h&iYtCy�'-bdfhl��mprstw�yb�ecdrtreaSkorcY�tr�a��a"$ra:;eoc	$kx
	e%�ole�i�y}�s2�ai=`daRGeA�i�yu!�gloa	$y��wa.wdh�eip�o�t�jar��ah�o�gi�a�hi��orcultura,e�ili�ies�e�)iaeikptnnaf'e6h	@i
s�'�a
dp
si�bpe
n�2rinXghiolip�
a�cta�bl�'i
s
{s�tf�z�'�aeil�s
dls�'�]e�il�r
se	i�d{r�Rsl
n_eiti�yQ�e�y-bcefhkl�np�Zrst�abhs\8tl�9oeadedE�lwappx�a�e�i^eڇl`moah
_kpot7�cl�'�i$m
so	�o�_a�eo
�ue3yi
yn4s5Rek
�i�sYlo��iD^tf'h!�p6Doei6y
dn[Ar�stoJtn�e
ndghnrsyint"ih'ton-le-sprinQ�g?�ods�'J�eu�i
sl��o�'olg�i]�l
se>�i�m�t�'-bc
dfhklmpr
sb�twhmptwui�ns�Kb��oalrqr��ao7uor:�-a�%iarmk�ioru�a�u�yer�oakEe�i
silTdl�Doean�e�.i
sa�l
ut
�h�Tous��beepEeX�iighXta�eio^i�n�,s1tstressfethe]Aralri�yrk�n�{aoZuo�oaior��em��if�v��erk�'#=e�shnh�neh'�lrc�ei
sraG\fane�s'abdeilrs\t6dr
sv1<re�i�ary9'l�svlt%'|sc�ct�z�'ei:o
sa;hoev�'d��l�ten�'ei
s	Bns^';v.�hosth-g.vWbtm;stl
��'p6sabcdefg�hi[klmnorstxyzqgnrac*h�'-bce&�r
s�;c�a�i�lu�y[9ba�apr�'�tk9'ls�Reter�'�ei
s
n%�s^'d��se'�lrsfielpd�'�d&lr
s�yf�'�e�im
s
yf'egh�o
su;l�n
r�szein
g�s9'e,iv�n7�senB�o9'tzilopotc?�hr�akl�'7ei
s
��'aeu�io
sba��l�'e	@i�s
f'abdeimop
s�uN�vn	f'eik;l�nu�o
s;l�n�r�sst��z
a	e	i,m"�tMai�yi:�nelo7�urH)st|oe��i
y
d�nO�rAJsl�d�iru�m9'r��a
i�udli;lEofsoti	kyc)�ea�7ttx�aia�taaeiocu
d�l)�rngbY�ick�'e	@i
s
ynru�g�'Kaeil�o�s�dsqu0e	�ns�ftessRl�wnr�'e	�il�sd%Jr�less�lness�a'�e	�'b�ehi
stCyac9�kZe�ir�sey�'Hgsy do�o9'cdgksth�'� b�eired�'�~f
sW@ta�w9'aeo�`rri7�y�ar�'�e��fi
sve�r�'�ei
s
y��epeI1l�'eil
drs
dr�'-
s��vgatheL}rng�'d�s
'tokdn3e�y�mf�v:ndl�or�stulu�egif'e��i
sy
d�rry-b�Zuaiyh
�yf'�e
irs|zce�d�r
sf'��if'&e3of>!il
sn?�u9'bdhkstand�'J�ei�l��m�r
s�'ei
s	$y��e;l\�ns�saei�yWLi�r�i*�r�eWti'Hl�on�g�'c
st�uh�'^2einxysgs�o'e	i6odriX7t�lgzeza�qhy�labd_
eg!ikmoprsuW�wcIde)logt&Si�fnrid�'i
s�"sUt
�zer�'�nrab��aa�Rio	�'ln
s��tu��z��aW�g�tlM�i�'bcdefg!�ilmpst�ux�i��aeho�5uphali�uFy6celmi�Csoric�d��dlr!�ltiDsynamic7na#slectric
�amiloruor!|iocar1�b
ir"mact�uer�ln�'a�otePi'
d
saphe�i6yr
A'Csoygi�yc�e�sJ�a%-s�z��aecthani	�cEeri�yAc�eeh>�lйoro
�xiol!|ito6yb�ni,ac�ipth)�e��aheraV�m�p%�iyalp��zpa2=t'as!str�oireneic�s
�a�so�msco!zpeAhx{aenn�'7�e
s	�'��-a�b�eio
s�lJ�r�c
ndgl �iyraph8�e�yog4@iyscFyehino�'
dr
sabce�fgiklmoprstvceit!5dive�iUl�smsiacthe_�s!ztol�a,eiocal�lid'7naseorullula
rrrectzi;�iSJbxtenR1d�salmo�yu>osycaeemiacm%�in�of zle̯ir�ain��kaenur��kdt��i#
re�staIb�tahilrastit�e-�ihyroiu�dF�agme�1naZ�ns@Vieaclt7JiisUt6m{'teopnsitivue�im!znn�io9lah��ce
rehrn*xsi�o�mvey25rroidf'iophi)y6c�eent�ien�'a�ei
ste�iFoLlio&Jsthierapi�yei�s9-csz
�e	i,m�t
�'-acdeg	@ipstxallergeni	�c6^cllerge<naehry=ullulaJ�rondM_ri�ss�tcloiQder9Hm]>alycaeemi{a0vcmiZa�chy�UstIy,(aehns�ui|ovae�ylami�u
�crs;�tmKai,a6c�eis;�z�'	e	iae�ziem\iE�m@�a�sterei=csl�i,ac�'�a&�i	$sndH5a"'-.1636567abcdefgijklmnopqrstuvwxyz�dl�m;s��v�lbcmeX/ah>u
�oF�e|8	cgx{imn\�ptc$�ob�'i
s�u
ac�'h�zrog0�e	aei"lh�m��or�su�dn�sh0r�xd�sz�ea9'�nH�apro
�f
ab��cehi;�kL�mot�u
y6hnxr5�n?m�'-b#�c
dG�f��hl�m$'np
sNcska:tӸeor�a�u�x��eand�'q�e?�iY�a@'inteu�mhyo�)lpcrsha�gaur6sZu8,c�e;l�nns�'
�io
scgll��araph�yi�ylaQ0oa6�ho�uriani�s

'aeilosy�di��sn�g�'ho9'C�a9e;s
amno	$s�'l
st�'i;lo
ssQmz
a	e	i,m%�t7hgei6ds�n�opoten�sc�ttiwcfk�ti	ky"<a)�ce
d#r
s?iglra�mp�fhogȑi
_u�yo�clmpste��c�'a
sti@�catmhyncra�s*�t�'%�i
sT+yei
yf'
d�n�rAJscl�'-aKi
sworshiS�ptEerpBe�i�o�y�
ll�'i
s
�c�s
�cdes&vy�etɠyf'f
s}�i>�l
y��lnHoua�eio��c�ttMae�i
d�r
s�bmrini�y�e'oaEei�b�mn�ct;l��n�san&xs�ao1�d
ir
�csselmI7eV)beh�'�gan��a
aefiklm-5uy9'c�mnhin:7sg-il�a
aiWn
?ui��tti �dra��ca
?uc �df'�lrsf'-ei
dno
su�yabcdefghijmopstdsv��isPoe5rh�haoncse�hii\>dei�|fs��pq|�uakio5tv��oV%uo��tu�mnfor5m��uans�t\>nmvsereop�saportio�nh�emtua�pa\@rRi\:ereat7e4�mgailf'�i;l�s�btima�cte	id;lsbcmnqteral�i;l�Aiitab!Rlois9'C�a);uera�c�tgic'�}a�smsD�eina�egiObnt�c�t�ei
9'�n�ov
n7�sioto
;vn�'g�a�i
smTrraB#it�e�iEoe?�nus�habe��fhimnop�u�cg�m
�peizdo�'-
d�nrs�Xm�i6s�y�enaEe
g��ib�lrtli�e
yi
ye�ni�oQvaeirulandccil�ei
c�tbei
n�tIio!�ugE"ln�lo'�ttaObt�eiEo
n�o�vaeioucntulat��ee?<unc8t:e�i?vyeuriali;l=�n7�tr�e�iadmnrsur�yaia�c
Gto9<rse�i;l�n�rssm�ei,�b
n�o
vg(�nsr�ac�ibdIlrvil
eisotz��a	e	i�aei
d#r
ser/�sat�e�iatli;las�talf'�Ji;l
sa�Pebiile
y�nsnr(�t>�eios�tf�za
�e	itio+�n
abcdghlrstssa�ylo\dtomperz�tom�ieficieny�c�telnPeobulniistochemjiogi�yc�e�s@8ae5aour�bppress
�a�e�iPnh��osho
dg�l��i8e�'ae�hilor
sucilnrstt�'�eTfi#=o
s
ntoevr�ei~m
s[9a.�ei!-pel	�e	�i:Fl'st�a�ei
s�da
ns�wta�eibi�lli�jtbov�ile
y��nn�e	is�emiien�c�s8tacdlnrtcha)�ei~mb�i&lcuabill�i>�e
y�Kn�aEeim
nent�'	$a
s��l
s
deitra�bten�cr�t	acfimstvt�iorrIii�c6xeipvaati�b
vectf'aUi;l�n$sbiakTl�oslf'%�i;l
shabxlaeinen�cvtab�i�lssMional�,t�i;liunen�c�trb�aT�iiugoo�s�sussi;l�n�en�o�wsgxeiaeio	ky�cnutf'a�ei
s!0b�tsibi�llitB�i�yment�'aa
ei
sO�b=tcS�eaiJnnt�ei
n�ove�l�n�tdrs�e�ii�o�>vlnrstuvitei;ln
=cderab!3il��e6ytf'aei
suOb~n=tna	'eite;l�n�s
n�t�aeist�n=tib��ile
y�n�s�'e	@i��o
su�d�renc��te�i	$ynd�eihm
serisa$haeioucticabGl�i�lcgs�ais�e�OinabMtiilge
yas{tE"rf'	geiqmb
no
Gv�i&ln�'a��i
s�cbmnsa*tt�'eu�i
s%obmpvab��i�ulpt
auer�ri�ea��eible��n'Ad
nszaeitig�o�=o��e	@i'�d'�dgl�nrtn$�aeiqm
ss��ei!
n�opvP�e�i%=a�ei�'-abcdefghijklmnopqrstuvw
b�cdf:�hjl�0pstetwV�eeifp"lo{�ka�i
�we�_tr��vra
�y
9'bcdlmnprstu��icteuss�ira�c�ti�ova8emit�ei
n~�oaemv5
pqua�cte;lnTsess�'eissi�zbeir'Atsaebi&lli�et
�ditenab�i�lerab�<ile�noratc�aegi;l�n
r��sa��hm�ta.<tp�taelrren
�ta�Psic>3aeocia�btive"l�napch+�aria
Gtgtufaic�sulacb;cte;lTnmucteB�ndgst��iura
al�tpici+qohenticsiorua�r�uzxrO�dea
det�hdaSi
sŵiY.aehilorrsu9'lnpr�sucul��adtesce�i6d�n6s�<a7e	iabciile
y�n	�sit�a�i�ycne~ra[�d�t�trdnprsTmd>�stiv�ei�is�izt7ei&os	n�ovt!�i^�st�'�suo��u�'�eio.�waKntei�d�s	BnУodnprst�_ven�ct�'8WaUl
sKergie�tnc8te �iyIc�eN�iEoaQeitio	�neiumenoc�tn;aN�eu�i4odkseghmnr��rniterenc8teybe��impust?�i�'#r
seounsurab�t!3il5Re6yd�ei
n�on�PticaOb�daelrurtn�aib��il
ae
ytenc�te�i	$yet�eio;ynehsensi(�b~�os�itGacdfgstveli�vuQise�normEirue�i�on]�c�teioptquenti�lal�i;l&ndserabtNcl=�e	 iten�c8t�lnU:aicP�uae�irs�BtovertB�ienrien>�c8t�@tprora�|e�btePi�d
seiuctaa;lTng�/iptiboiil�e
yn�'�seiuadms�aN�er�i�iul�i'oent�'a�e	i
sl8�ti;ls�m�tmii�ns)�tblmnra6i��ut�e
'iRoIcpa)nbtben�c
atabul
au	$ma�i1�rsS�vb��li
Y.eioruw�ybc�eflmnpstxted_�neion�ct8�e;lp��sherMamrp�oob{uaeitigab�ulacn��stib�i��sn�aite;l�nsi�bca�c=�tnoi2jf�tnst�Lrtf';a�ePi
s�3uendenc8Yte�'sctribable
y�n�sruct�ierminai��b�ct�eR�ismtA'�i�'-a)�eili;Lncb$gt
acefgrst
?uv�'n�'a]9i�s�'�np��oal�e'�itnt{t�eiEo
n�ov8YeMa�ei~m
s
s
9'fe'Aren,ons�c�o8YttiOb�ooa�iKaectei;l�nTs	Bn�ocpsteirr�#npline�'�dei<�et6eiminat�ei?n�oeounsabiile
yf'�n
ss1�ei	n=t�tocl��iub;i�lin�cguis�hei�d
sidsualMt�'i;l
ss�tz
a	e��i,m%�t
�a	'e>!iib�i�4l-c'�lmnoWreurop4�ehtin�ai�eriN�n�;ies�%iai9'	
wlVi�bcl4�rsQeit�aeio
s
d�e
n�ov�eis6m�tgei
dZnr
s9'tri�ya�e�oli;ls�fs
�zelr�l
tbdflpqrsvx|zk�rMiu�cfaei�b��cctSRiu�acaici�yeou�sen�c�taeiou\/skggib�i�lq�4uc!-tti;l�nh1tu��aitvB�a�i�yal6�eartdicabl�eCya��b�ni;l�nTsa�'1ls9'csta!-penw
timablH�e
yitab�ile
yf'�nachoptcti;lk�ntuZ�du�saustib!3i�lrabi�ullit\�ye�ilrdnrienc�t6Te�i�ys�eQkiitence�'x�a
d�r�';lnic�yait�l�nTsessibv>8ixle�l�neirn��snguis�hi!-caeilorulmnrtl'�i�i'o�y7�ct�'i�=r
sc&l%�i~uaclrssibile�yt�ei�o
s
n�ovicit�io�y�aein1�r
stnc�zte	@i�'�r
sor�'�i�l
s�a�oi!�lt;a�ei
sd�Teglnrxel�'�i
shɎtlt�'Zeirsra@&titeiu�yf';lnsi��m�e[�vmdmma�i�lr
�e�i�y'e�i6dsaeioumt�eimab�t�i�laE�e�ic�obl'�ecxt�ei
s
n�ov�ei�btoctJ�ei_Ro
s
n�o)pvr�wesce��ne�xn-�c9<t�z
f'glmnr�st
�wrap!h�dae�ndrxi�c�
amaei
ssl�nti�oco�vn�'@8a�saO�ei,naei-cors��rl=tass
Ze�Vre0�dotmnructu[�rquenG�c8tngei
d~m�r
srsiat�eixieib
n�o	Vl	^'ae��hlor��ut\>h9'nrsP�iu�e�i�os�Oot�ei
s�b
n�ove�ioaKn�swood'r��i	i�taeHioi�mtnf'ei
s1d�eia!�tt�ei�nŷoءds9's�'�e�iwi
n�Staeioublrita�ei
s!0bn�tc�t�eCyaei6Dntior
�'rsmoniou�Xsrei
d^�n
s
nta�eiEor
s�b#�n�ei �c�xbiteCiEo
s
drrlmsdin%JgogeneiBFo��tpita^�b>:lman"�e�i;l��nmqti�c�tui��tial!�ntf'	�eil�n
s	�nsz
a+&e	i�mei
y�d�rn�AgeiEo
n�o�veucta�eCiEo
sb�:ldnrDOsi��cc�etUiei�y�e
n�o�'be�h�Fik�j��l�Ls��w
y��e>�l
dr'Bmsa�ei4�y�is�n�=yTe)pna�o	�'aei��kosumr�tin-5ck!drs-msIv
cos��opY�rnsrt�agfekacmveP�un�ct�'�e;l
s$�iat�eiEo
n�ovtWebruc�kemndo�'��e	@i
serabR�c?~ti�l�clcf&znprn_ufe�WnepraObtivi�eort�&udgina�ta*�nauءtt�'
stei)du�eioerstu��de[�i�yitioo
Gvn�'@8a
sr�'�|i
sra,�t�'iE�oush�'�e	i
.ace$)hioptuwlntubp�rei;l��nrr�sta�i�y�iriuT�bpti�o!vtab�irl<`acmnprttu�'ai
sri6yZebu[�clvor�e�oH�r2�istai
;t�btiv8e�i�iarabii��ltf'Ga�e�i
sf'
sY�tdgnpseP�iSK'��-�r
shnt�'+f
s!pei,afikccue�arat�eiEo"n�o,�vid�i;l*�ntei
s
d'Ennvgb�flmuri�eeuv�'n
smc��tb�ixlMaen�c�rtn�guia�'
acsci�aeict�e�io
sr�'a�sr�aei�'
dr
s"ntZ'�ei
saeir�_bglmn0r0�t$rl�mTsaei�m
s�bn=ta@t>�ct	�'aG%bei;l�n
sn��eat�ei
nto�a�p�glntl4�ms�a�eirsct�'i
s&�u�vutei]�oC�'
dur
js
novn�'a
sli;ls
�z
a
�e	im�tucmt�eiEo
s
n�o�vent�'a�e!i
sl�tf'i;l
s{s�tbflprsosrdinate��i�d�lstan9<tfei!-rcia~�ia�tr
Pt�i�l	�seprabi�llit �i'�yo�raegimrb#�n�<i&lO�d�r
sen�c�tou�^nection�'na�i
sceptibi&ll��iin�6gaeiorucg�kn�r	�tli)ar�ogib�il�e
yglmnrsEerua�ib�l��ntr�il�ei�o
no&vn�'�isment�'a
s6lUr�'lseict�'
sualf'i;l�n
ss�tz
�e	i,m|tge(�incte�'rrs;l�s�apera�nte;lness	�'�edstsaei
sd{rf'"l�n$sei;l�n�r�sO�fo�t�v�nf'i;l�n
son�'a7e
sli;l�s�t-abcdefgijlmnopqrstuvwacmpugl��e��lE�loAWdersoAWnrFvbcrt}�xt�a�ei
s
novn�'Ka_i
s"�e�iNto�m;�aerd�de
der�daehi�lorulsaUrt
�e"i�eetd
�lnpsei
d��r
s7lstf'�eiaiEo
ssiEoanger.if'a
dr
sb�i�lrstvy	hlmnorsuorlouegia&tGnmn
�a7Bi�'m
suniIc|oUtntvectei
s$ d
n�o
vine3+ner�sl�jerelat0e1�italUl6s*brops
R�p6ssZe�il<Dttural
|ieinpotmination(naFlaertmen�|tndenc8t,e�iycgvmst�'�e1Di
s^�icip��lst�'#�e�i
saeicimb�eo�i�&ire io
d�n{r
s�pmnlZxaelorlakcneration�'J�aa�cvernmen:nZ7eo�uw6n�t
�mnosdeu�xs�t�rlan�(dect�e��i
saeioucnryg��uer	@i6sau2�vk
�ibnrg�aeg>�ikm�a
d
sua'�l��a�ei
s^�bcT�p�kutEo}Tdaeiorri	ky�a�edm�n�8stzU(dia�u�rtei�'d;l�n
s	no�1n%�baO4rB�l82znSstx�ya`gt^�e��eidx
lula�etC�e!�i	f'aei&m �os50ult�i;l
sionalf'|ei;l
s�fs�tz�a�ei9bc
d�egtu�`aYB';swo�[rrKaonKa�e6s
nsgUt|�hcfp��eH�uf;|iera�b+�te
hlornretrateird
s�nom]nso�|nan��ye�tls�'a6rtaa�eCiEe�ieotaeiwo
sb��till��i
n]vcess8�ouart|�aeiou
dgli92noV�naitei�d
s
noJn'ggat�e�ior�'�i
s	$yptf'ei
s�b
n�ovceptuhola��scgsxt�ei
s
non�'a
sli�sUtme�nsi'~oZe~<uaeib�ccrieQ9fMsnKatoaeiGdeg
_t�l�cti�abrjectiv�e�iҀvae��i[�w�[sxtu#�arb�Na
aeionrEei&otion�'Kai
ssm
atte3`bew�'=�ei
sca;�laeo�ra�bvei'�r
srV�v�kta׆i�c�tfma\dai�clte�i>'
d;l�n�r
sdat�eio��n�or�ylnrxera��b'Enaeite۾is�ciica�nt1�ePiaeioucdfgi��lmnoprstuveilortllula	�r�a�.hmpaUnannabiile
y&neZop��rartm��eam
�ienerationIyandi�{uvidIueoutropoli�7tlecula�rn(rscula�raesuAWst
f'�sigten�c8Ytivef';ln
sess�'�ec
\lcfpu8�lfNier5
a37aruo�clmo��negicep�<tro`!tcxL�teci�fhie�csseut9`eaesnousf'�e;lpiGdcgna�c�t�auge�isic
�a�sf'dg�irsn�vucEeit�ioreypspect
Zeirs�n�o�vT�dsi�ove;l�nTs[bitaa�ei
s�no
Gvn�'ai
szls6m�tiknr �tti��tc~dtion�naeiouT�dglrsiS�niud�'Ka�ei;l
s
n?s�table
y�nTs
P'ia�UbnctM�e'�lsi�o�}vcinrstt�eive�'�l�nsg>hlei
d4�m�r
steN�ioXr
s
dArr�')i
s)yac��elnstx�wcit�iryalrgyiy'dl�eol5cessW'Ae8Yeion�'Ka�e�i
sf'aei
s!sb�b
d{rtx�aei~mEo
s
d�eIbg
ntaIb=teraoc]t��dgnostiolat!�ei�Zo
n'qorat�e?i�Ncla�b
;tc�iiae�ition�'a
slf'"l)sf'
d
aer
sc��iklacb=taa	'eiuvnttari
y;l�n5Re�iei1d~mr
slne(�rarrd;ln
so"u9'cdln�4pQ�su}t�uwx8Ht?�ai�d1n+�szantW�h�'aeio
sCl��s �ac$]sz9'saeiyb
�tmse�atpher�e_ia9'�n;sag4�l
aeho1�p
�rsd�
^'�sca�ciogenKin=e=d�owic/�h^'ab�suluv�iaKli�t9'aceik	morV-stvPw�'nqst�'iM4a�'�i��ce;l�nr�s
eo�'�d�Kfeln�st"e�id	Bns�te(ios�''AcAilo��g�'�eh9'eD�mw;roD�m�eisuo�mt��snq�'cei��lm�nsw�y��l
d
�rc�e[nwa4�aonger'
s
jyi�Ptde/�'s)�aoord
�'
sk�'&e�isuoi �a�saeiudtwia�n
$tionalf'�i;l
sad�d
cdfglmpstvlouai�mnvcil�a�e�Dseuenmab!3i�
ltiЙscn�iluex��itab!3i�laurd�nllarf'�i;l
seiva�ngionu
2isUl&neiod�is[�svab!3iQl�alraceablH�e6yeo��sadch��aucibiliopst��ilu�Pv�hteoc�tnsibviixl#erie!-veoresn�ctIi;l�i�cgtaObt�ePiFoa(�b6Dnt1�ei�n�ov��p>�iin�'e�g9'ban�nabcefhilm&�noprstuabds�ic�'xysel�'.�ldYo�nahri�oae25emirarcnttro�phion&a�it\ae�i�mtr4w�vaza)�dnsgl�a'��fs
�aeim�Vny�'aio;s]b�csMm�tphob�eiRaRc�'�d
s�tp�n�'a
s*�e*�i��'bc��delmpsta"�rh��lyron�aousanai
tdT�electr
�oaCdteio
non�'j�iseort�'ai
s�/s
c8�sr�i6yrph�''�ei\5cselrrimetri��c�Qe+eopKy�c!�p!vte�lhorerW�m!znp�e;�i6yop\3iy
e�slla�'ael�'i;s�'�st*�e
a
nucq9'-hu\aau�ei�bjnahnb�um�i�u&zz'acehirostu
v
d�l
siln$�s&zpiryacn�'a�s��tf'�wi	$s��a�xih�'�ei
y�e"llXnmr�'Ki
sat�eYi�:oa��cneran�rx�t�TeoqqortoormiHpine~�sd/us
'a|ef)io`s��ys�9'n�'h#�ori��yJ�a�eGHij�i/aet�nahj�m_ov$ana :g :m5�ees�t
9'acdef\�ginop|ruvbcd�Hefghiklmnprstuvwxyz�'.abo
sei
d��rt�'i
s:�na.eik�_loqur*�anqIt�'-ab#�deMfhikl>�prst"yikon-the-b@�onif �ve�iA'CdCs'-lantMe�ln�sa�poo9�t
d8rn�tammer�'e	@irst"eC0nnifB�ve!i�'�d�s�yabbiYtotn�'�i�svi9ylUar��abqIpt%'�eisYyn'ɠa��n7Ft9'��e�ouaer�+dl�s�)i6yzzPTie�i�'�d0�i
sf�af'gi
s��ueiydlr�e;l�ne	nrster5lanj�gl�mnp�'be:�hi
sY�ireak�'T9e
s
9'ai�s�Zsu�raeor��tt%'Ys�Bbaope��n�pus�i�'abeim
s*�ai|l|rca�'6n�'ae	@io
sla�y�d(�rCs;�r9'|lsn'x{oto�w9'el�'�s<�e�iry
t%'ade�tgijn�osuv9'c��ea�l�'ilst��r��l�v�'Wt��c|eWns��t9'sar�iǔyaw=be|aWien9'Xqiv�a|s,�ia8�ei�s�un
�'e;n�sse��';s
�'d_ef\�glr
sjWvinYe�(iuޅlM�sx!aer�i_o
hd�tm�opi,�ne�+rauondt��i�'e��i
s
y$da�ieI7i�'�nscri~�p�'b�eil
so�r4@n(einersa�$r	�'aܿbcn3swpsw�uuri�yardene9'?�peee9'salkeЩi
seze�r�'�e��i�Gm
ys�tadefhjklmnoprstwzlnous�i;l�n�yw�'�aq�ein	$s�eWne
i9'K5t9'o iprOktv/vz
�'s
�'�ei
sngf';l�s6ef�'err�es|yon�'�ie|yyH'�sao!pdsvhaph&�aa0hun
a
=e
?ut^yl�eio
sy�e!
n�'rs�'b.wfu�irlr��e3�om�|iy'�iaiknosI7fibYn|aei��y�r�te�<fn9'
s|gBl'�ex{opardi�ye+�szahr^�itxh�naeikmoqrsuvmirya�d �h9'clhdek�rf'�5ei
sw	$yhFe;ln�'�e'g
sa#�tT�ab_l#�moam9'rs�uaioymun�>g9':;c|d_l�'-b��c�i�sbuilr�dtui�ley
��'�ssale7�mWi�
opstuer��sb
'reiou	ct"e$�p�p�'e�i
si�st9'��i�s	�'-hlpst*Kwհblps7Yaro;8pett�e	i|�lr�Boi�@nor?a�ei�y�eA�nso	�n�'ei��r�sls�'Dne	�ilr
s$�'e	�i�dr�'�sD�yA@i.(ys�'�esh9'nensebe(.l�kabn�dfghlmntuvng:9x�'-1�be�i
sb��of'rd
sff'�i
s�y�'gseu�i�@l
dr�'�ei
sy-pokg�ea|�wad�'.4i
s6i��l�t�'bemsof�u��niye9'
drs�'ionweeZd6adgknr�xa\oebbFyloew�i
yf'
d�r
s'��i
�e
i�s'za��i�s|yikisha�'rs9onst�uerbi	$s
yug�'g
sei
d��r�e��n-jjitN�sits!pu)�a8�eiF�r'abcdeghijklnprstuvwyb�su��rdnqjt%'n9't"are�u�'b�:hlseu�i
d��res�s9'ehweg�k�Iao��r9�aekou�_l�'es��yt#�rs�e�il��nasrhi|yp<�u9'�e�'0ly�'rs>'gj
seil��n�eiakarannns9'raes9'�2b�'aWinsth6a6oiyw�ew�'-�ccome-latelXy9'otnP'��vonx{w�'Yeng�sf'ei
st
d�2r�'-ei;l
sus�
t�<dr�ro/�bei�y�'
d�rs�ym
�t�i�e�l�n8el
'se*t�aiy`�ef;l�n�ti)�cf'i
�'adeg|i��nq
'sD'ht"sth��a6oarBysP'We�'�g�julin9'sm�a�edganP'];i�se9'nsx{ex{oehis��tWut%'fp9'|a�ihn'�)is|uoln
�'e�i �urd�rrs�RaMef'
s�t,�lnrsceirynae3ol�'eil
s6d�sns�zFg+&e	i,m"�t��e�iy�'c}eC.i�m
sZ�tat"einov#iasl|nell�l�':#i
s
y
�'c�eV�filI7n�oe�prset%'6aiaod�
dei�'ur
sn
5gtickSK'
se�g;n;g-abdgijklmnprstvxju�'t�sn�Tr9'|ai	t*�aHbila�e^�ntC�e��iad��egio�srye�hiso-c4�hc/sBat%'9e�'�eeim�'
dmrsent'-�asY�sQthentf'ars�lcǖtait�o>�ua�o8lr�iy	'�'"Zks�'fgx4i
suuuleil
drna��ueif'
dr
s�'�i
s?vyl@aCicu�e~"i
yiutsuA'�bte`kb
[�eil*�yae�o|u�'n�'�aWn�'n�s�t�njjibpN�l�of'-eis
ys�osta4�r�e;ln�em]gu6Di

9'ac�Adegiko�r�tga�r�otiu�'�sa��b�e;s�'f�ilraKue�'�(f
so�pr�'۬i�s�'ei
sy
drtw�'bs�'ei
s
dS"ee
n�'�r}s��a9'�CehLiaiEouys	Asdesicvad�n
sdp"�ti�crudenmctt�i�'	@i�m�wsti�'vei;l�nTs\�r�scfn)�e�Pii	kyn�a�:cwet%'�ei��af',eel
s1�ten��az|eil�ei6aUttapos�ei
n=t
9'-abcdevWfghiklmnoprstuvwyfac�tg/abcdefghijklmnoprstuwyzboualai�^hs�mtWzi�sbECo'qeklP'�izor�'oad^#iictha mУa�jishf'�e�ofkteeklat
csa9'es
qanCsosh��iail�nuw	�akateGHan3aguVFna�=fkpstpoo?�hr?�u?�a?�aoe�ra�i�l�o[iabq�ba�'}YdnGFpu
abegilmopuhmsaʅra_�uzdohnik�o9'a�+r�'is�Svdosco*�poorli��e9'&�uihsi$yr'�ao�\wmbu}Yr|abcei�opaBxlhatKkhram��e-5uklqIna�zaerq�orq�o=�a�fuc��h9'6acdreg]�i`�jnopsthenjuHxnaF6io�yhr�aa��ra�d9'a^#w/uaYi�n�sP'ian
9'DMihl�ns��iin�'i �o�cC}s

tC}zei�lopullmeister�'?�t�kq�s[9aBxn
jt
aeilmno�prstu6y	9'cgkmnotH5h��a�aourza�u�la[eeezgaha��pkeSK'rs�'ers�'-"Zkc"�h�ent%'�i9'>nt�at%'|ao�yf,a
�i"`a$�'|l_�o?�rao�+k��t��t�'�i�sl5aX�mnk�jʅab�ehpaXhm��iarr�oowic�zaehimorstyYz&�kmn.rat�i_n�'�_lp�aeilmrt"y
ra|e-we��eandku8iy��nreknGFpa?�t5�aoqwX�mb�i�Luegv�a9'!�dʅafnrm�adKaGHinaebksaMraa٪krVFat%'a|eKl�ok�'ZeZ�i
sa�oknh9'st�a9'tza"k��'py�'ale�'ab*!cdef�Fgilmnoprstvwy�'nrt�On(*i��orsa�a'lger�e�Dglnpw�'��behi
s�'
d�ramuf'�a�(eu�i;l�n$sf'-Ee�is�0fF�a�a-glo �vgl��sǖt�uhMlf�ob�klpsvu�reioryr�y9'bero�r9'c|eXkgt"g�'e	@is�d�r3e�oi�neprov9'�i>�s�t�'deimnostyae6orlrl�>n|a}DipuVFrlR�w�o?�u6aeit"yd<�lt�yt"yt"hm[nzt�'<bsWhin�ug�'�ouckC�i�ya�o�'(.nt�tzg�9k�iFl�;p
tabcefimnors�l<nti,n�t's$-ihie>�fns�a�kuf��f9'ke?�ra�idec9'e	id�ls�Xup�e�'|i7�yh��ast-XleIHr"�vcoth�'�e�un��s�e�iel
Ore�'Ob�d"0f
s6e�i-lor�k'a��ei�[psuk��un,eqs�'bc<�ehilnpWrs��wiond%iard�'ei
s
n6Dsli�Vco�e�l(eogfRgeo��s��tau�d�l1�net��r�orojkb:�'ar�moruwyzbc�+klnry-zaro�vhatur�qiIi�'cd
s��oall��aeektoLu$yim��rk�qsh :o�Ceushche�v&zf�lari�:zr�b��'-abcdefgklmnoprstwmj�omn'�p\odg:9s�bi]�oluei�'
d
stz�'fe�ihobtze�irdgUrrsk>'-abe�fi�qo�Ls
ybosto"xftarZ-tMupoao�cll�'�s�x�e
n	�'-d�l_�mn�osglVo9'ei"�o!py
dr�'m
si­nޅe�n��sa"�epp
seV>io�k�tflrztrvZf�'bas�ari.akegjja-glo�vq�a3euy0uabcdiklm|�nortu�eirrR�n�i5oau''r�+vn�rmanjar0oein�nBv	f'a��defij
s�brn��e�6i.�fnx�go
aya�?ornoroc
�'bcghj��lm
stvwa!�i�Yu-7y�su�da8*ylv�oaruam�'z�m
se�mrt�z)�o�eo�la�[ott�'-
smMh�o�'e
s
dy�rt%'b��oae'lx�o'�lrl��ery
�'acdefgkn�orsesthetic�a�sumpb
f'-
ae�ahl
dnr
sh��er�sgartenn�'Fe
se�	rEei
y�en_�e�ge
5d�'QmstZeicK�o6s�iops�Nl<�colkf'Zs�'-ab_`def	@ilmi�psY>wsiD�z�r~9iio2s�]a7e�Zi
y9�aRbc$�fQthltl�o@�i}�aK#eo7�n�w�'�e�io
s
y9'3eX�o��oefh�m�wl�y�lo�@la�ib�s�sļw^'n
lp
s�#ei��bcgikoshu,�ehFn�ob�+bhi?�sz9'ibn5�aHvyb
'i�lpswmk�batriA�c��ao4okv��c]�o*0tah$�l��msnga5�ni$�nf'Ma)�eiong/e�s�sfgrZ�a�'C.abce,h�istkyus}�hlahen�'e
s)�wrtb
'�'-rd9r
sf�tlch�'�e
yei�-s��y
dn�'7ei
s	n�Gs�e
nwa�kaijWn�'af
sPnr�u��kaeiouyn|u'w�#x9'dsa<s�me�ip9'ne�'xtocmprac|t�i�yani)aara�*s�mnre��gndi�[kd�3gtYxgei'
d9r
s�yz�'feiry�eTnstrr�aaegioucpvwk�'eґi
sr'�e�i
syrp�$syAei��se'�l�aels
w	�'-�ec
d�Vhil�Qsdhj��l�3eig5RhOeeei
s6d{r�l
ts�ewarreWycefg.{stl�vk-ekknack'g�eґisrb	$socker9'	$snack>'rsW�vei�'-
d.�f�^p
sv�eht	�'-�ef�hi�Ll
serra�Cnf'Db
stiweaSibc�ql
�pstwx�'b
sl�i;l�yk
f'-adeio
sw� dko3un5en�ubou�t�ongA'-ss�h�sfu]Atur��ss&0o�'D8h
st�ei
y�en�e
jg-Ma[�eil�n
s�|hit�	-ng�e;l�n�sed�sgGae�'��a�s9'f�vcdrtklei�'dh
sus�}tead
f'�e�ss�ex{olf'�e�i
sJhsɠex{o
'abcde$'fhijq�klmnoprstuvw�d�i�s�l3na�eCoyas��hh9' �aaicrklhroCmKyA�alnrsme�yigsb;e�t�9tilunMo��'³erab�ikoVFh�8z$a�o�aoL�yn^#o�imuniL�zgr9'|oBQs�ja-klnrwee�<-�'airs
ybuIbr�eUl_na�Eb�At��dX�ityad�riwa��teW�p�cka�e/�mM�nou|yzn�'i;sRc^�ikror�'m�Eby��bchosyiusdkz(�ke�rq�va!ru�gukGHu��fr�OoaWcaFhltlns�dk�y��o�o
h	9'aeiouyz
aefkmsu±m�&taot�o�we0rno-dyaC�r,st��'�s|bm�Qslin�'ologipys�te_�lnsgespie�l� gt%'htna9'mu-frMa6eioMy9'|en�'�a�e�4p|cI7gnp�aeou�'c
r&k
rsot��kegp�s±geɞmrt%'f�rKp\�ps0?taB�nhatr?�i�.abcde�hiklmnoprstwzl��alruʅai��cn�OthHDe2 oz�unni��nb?�tys$�hu-yalanjqag�it\oeah�ru�maqrGHa�Du6gm�mu�Enmint
QaffI�e_�adBgort+u�'aiYsit�cs�htsa�wa�ix4j�'�e�i��ozzc,�t�uait�'(.inets9'|k�etc�Jh�a��eM�hiknziu*�t9'dgzebe�l&zja�a6sulu�-nat�pan^#a9'ablmnorubnArc�-uos �h#�eiX�eograpE�h.fe%gtgyzsted�s
'1abc�deghijlnop;rstuvxyaeo;smouʱrnfan`trueaʱlvertuʯr|0'bcdefg_�hi�jklmnoprstuvwxyz�s�y�'6aeior
suyl�'	�e	�il
s6ate-i�ua&lo
?u'x�l�dru�'ϘaDneis	�n�oav	�ir�'-eisi��snte"
nd�r�'�l�nvnavZ�iaudo�'or9']9e&i;ss/�cr92nrinth�'�i
s�'aehv�ikoqr�stu
hyn'iDGa�'-
dr
sw|yUu'QatBiu>�io=VreBl_�mr"sym7�a63o�'aeil
sdwaisic4#aanWn
d�yuste��r�rec*�nuer�'�ei
swao�oo�sa&�e
�i�ot�[ei
non�'J�asna�'
es
�'bdei>�lo
syrokWeei�d�r"�e�*nsh
n�e@dnrs�'�en'
�gg�n�'bflsY�i>�uin�@g;iA�ohi��ptvrile>'�sourotatg�o"6laiye#�tK5t	f'Eegnor
sua�e�ird�'"�l�n
siapgSp�orsang7�e_�ieWnrC�rd[l
nrs�t�u>�l�'�d7e	i
ssez-f�8ae��ios	�'fR�h��ilnswA-iro?nH6aheZa$-io��o�tha5Zmdweeeo�r
f'abeimop
s�'��irsWz�'$c1Pe�'a�deii�kors�td
�sg�a
dnr#t�trghiH5n�ui�kwo��of'b
jdlnr;�s��rl
yaio6e6rtb!>franchi6sa�t�etf'a�ei
s�btion�'�s(�o�snSsarg�'
e
rk�tei
drge
�i
�y�n�'-be	ilo��p��rsp��ol7�ad�r�tigh��ton�'ei
s
dr'y�/h��t^'acd)�egk�nost[�y��z�'ir�'rs̠kaehis��hFt	�'
dA+fl�r
s�t
�e�i$?o,�e�':�-�=aefhilmoprsw
dr�'�sfLaiollf'e
srmoldEeV>i>�nYs5�a=�eioun�aec^r)k3bair�sr�kn�4eMnwneir�'shi
jpng�')s��la|y�cKi�aCzbc
�il�mta��pid<�p�e�i��eG�aer}h�'e��flmu'rh��af�a��ej�uaioge�'
sto�po�dsh	ge ir�''o�sa�e��i;l�n
yP'�nl~�id
QiobFwv�ehan"�i
?u9'c�i7�s��t
'o
�'a��bd
ehilpsb�t��wrosƎtcop6ei6yGcZeV@oro�a1Nd'�nM�sa7Fcnd�'e�\r9'��ei;s'�ei�>t
a��bcdegikorsvy9'�[me�hni�o�y�e6Ds�'e�OiI7n
s
ydt"oe?i
ao�s
f'-�Qh;l�2m�n
rs�ph��ss
t�'M�e�_a,n�'eis
d�1r*puI�siry�Am9'�e�oa�'
e
l|�tng�xe�ioa
sl"ls��t	
acehistzgn�ae�Wai�Kvrdr
s�'d
si! s�'�T-	ge>�i�'��aeiΫo|n
s)�e!�tf'-��a�ei;l
sO�dmin&un4gq�l
9'��acehiorrstvh�'�eu�i��kc;lnrsxo�m�c�e1�ta'l0nf'Ze�i;l
s��t�'es��'p�aeu�ir
s�'
dr
s�'�ei
s
yoYpl�cnst�'a�e6o;s,th|aud�eina�lri�y$ka?�ny�io�beif'r
s�'�-;lcr{me�(i�'
d
swor�kia�' �nd|egnrsr�'aei
js��u�b(Jn�t
dr�'��dhf'�ya�ei
s�tng�';lsy�tcdeh�usf')�e��ipag�derrei
s
d�rte�ioϟy�s��tmat�'/�saeiu�'�salntef'Qqs�'Y�l
s9'#�ct�'i(a9'e�'�tst5wia��naeiors�'mglst9'�(i�?eori�y��a�e
dnr
s�y�Qd��n�s�t
nshei;l�n
d
r}si8n[s�'-��abe�fglmnrstyab"&ir?4eivEe�(ie�r�s�ya'qe�bkZn�'m
so�we'ince(it%'�_v��o@ue��oXyer�'e	@i�l
sa�ke�i;l�ntive�'"l�n
sf'-aeil�mopsMTt��u�w�Ob�o��ub
'mwo�uaZyrt�'�e�Hi
s�sf�u�ve�
o,�r#Mhaeiuyri|o|uM�se;llXnYo�d
r
�s�lb!io2nV-j
s
w��dm9'abcdefghilmnoprstuvwxyz�'cdfg�hknprstvh9'�eif'K-bei
swe��l
dnrh�l�nTs��a�'g�l&�se�no�r
�'�a2�b�ehils
yo��p�ene
ge�s�ti�t-�u�'�ae�Fi
s
y
d��r�y�'-Fde>�i�ln
stb��u
d
jr�s9'|aet%'�sf'efi
st
d[9rr7�o9'�jr�mn�ye�.i
st;�d�re�hu�it�'�$b
dh�r
s�Tof'�s61wher�'de	in
s
yC�adt
�tNee@;i>'-
dn�r
js�t�'�e[i
swo
�raelnI�eo_onssr�\ag7Fua?�nhitf'e�irdrrs�'�i�o
s�yt'�hv�eiuxorei�'
d�r&�sM�'t"ae�g�sM�r
�'-c|d�kBmr�s�tuwemnfieɊletfoɊrh�'��eif'�ei
s
y�enF�e�gwenho*!earyd�'�stf'-�eiH'm��o
s�]w�ycAfhwliande�Td{ringe�es6h��m�t�'-aeghig�l�mrorsuw��b�6cspioAn�cltf'ei;l�sses�t
�z
a
�e	i�mti6scei�o�'d�e
s	n�onrd�'ar
sriye;l'ke�y9'dem��a�ei
yen
rs
tF�e�goG�r�bostn�''�an
sw�alat�eiEou
n�oLzvimai�ctei
d;l$s
n	
oU�s�zsz	ae	id�rs�a!�eiWeov7otr�a��mafWorׅmH:im�'abcd�fg�lpstn%�iaehsterP'shi,rao�r��eh$�'xytzD�iure�'
d�Ll�swe��amroti�f�v:iai9'�na,kmoui�t#a�e>�in�'%�ag
slbw
yr�pa*�er�'i
s
�'a�sdginost�'_rth�'e�ci
sw
y>n�a63ientnc�t:e�i�yP'giިrs�m�ti�vo�yrnq�x9'/irXx|are�'ei�d%Jr
sngTs9'�ei�o;s^�c!>f�l9'l*mnp;s[�t9'ace �gio9'rdn'0o�sav�a'|ld&n�'�ar9'�aaord�'&�es�QkldP'|o�vEeiWkrt�udo�upterato�neoch��ams�ua*�ta�i�y�r
a|iom�nseningIepi�rI7n��oCp	9'|abilostioax�g8n�s�,o�)e�i	tf'eWio�e
n�p
r�n�rr�er�<a�'-|ac�dhi
st�u��d"oh�Mware9'lr�i;lTsgi�y
�cecti��aH�ie��i#�ur	�'beE�h�impso9�mRxa�eǔn_�r4eckrocd�mtJwyedhro[\ma�beoe�Lmc&�aeiy�el"�qr�Rs	f'-Dneh	�ilF�n
shead��d%eeatvde	�i
y�d�rs�'a�ei
sge
i�'
d�sn'a)�en�stthG�aW'�e\sKai|t�ymce�'i9'dWei�e;l_�n� ns�U'��hei:1u
=m3rCscO�gR�n/[s
�aogl�nraphEei�yc�e
�aog�i6yA'�"bdlsxyt@�ado>w5z^'
�abh�ptaosJ�ai�t9'abcdefgriklmnopqrstvxzbimn�r��i�}ls�ei�oa�e6s�'-;abei�oor�s�%yl��ae	@iry�d"rlr�'Dne	�ilo
sD�e	�iou�s�uai�ot#�cltf'i;l�n
ss�tQmz
a	e	i,m�eiEo
non�'is[�saP'-Tnaiyrian�'6�i
s�e�n�'&ld�ti�on�a�oaei9'6er;si�ya�en�'shH�iot��vffic~�eti�o�sSuehiko'nCt)�cst�aeiTo�'
d�er
sia�oeft�en�'eo
slu��oiX�ee��nvtf'e>�i
s
dr�'�lilricef'rs�'dig�l�o
se	@i
d'�l
�'-bcdfg�n!pr
sur�d
�ief�rraumil�&chtenstein�'��e�'e�e\�e�'t�xena	�nef�ot�'-bfgl�rstG5waf��gprstnd-deifaor*>crese�%ra�f�iupp��ohreat�_eep�lo�u�lat�'k�m
sor�mwuueio!Rk�naptvEe+�ia8gn��ya�iWk�mo�'-ei�qo
s�oahnu~m��nt�eŴi�3ut�'-efh�i;ln��pswfh�<pin\>gea�@ds�r
d�`n�r�sacef'rde�oa^Sd�gr�eing�'�e�sac&�hbFe�rri5�beoig6Dh�ei�u�t�qrae�ibillit.(y�te
f'wU-a
dln
jr}s61wbillit�iD�ye�ni
y�ef�h=�n�
ei
sailoty�'�cngeq�na^2e��tu9'>nokallFaeil(y9'e�a�eput9'ian9'�snrsg�w�'�ei
s�n�'-D?d��lw?�habei
nop
yP'va�d	�'ae!|ig�lo
suuzgdr�eiTn
s�'e	@i
snryr�g�'%�a
dkl�prsw3yi�light�'	@i�sic��kct�ap�oa�%s�e
nt�'ae�Wil
sbUrtilCe�yi�ovd�r�l�nTses�Tsf'Ign
suP�isin9'�ef'ei;l�no
s
d�r�s�td
nmi;l�npKo�'acdegiknostuw9'�ghoi�pl�~n	�'rabeiqs|yergW'rhBm�nsfa��rui�s3a3eqJt�'�u-a~�b
dfm;n�r]hs]�u�g8l~mri;lsotzaC�e	@i��b8�tatiУo)e-?aef'e�o@surc}ei
seng;lrsai'3Hlns	$erit�'i
sc
�a:;i#s~m>�n
�'�u-a�beC.im
s]�u�b�gdr�iW'a�e&.e�'lte&a�n�u�yyl�ax_e�'ei�o�s
yrd�lrrhFenKsxn'9eoo��dn�'e.�f��hi
s�l�s�sz�ae�i
drrs�'-ƻailoprs�trsead�e^�is�Geynch�dzz��a�e�ipso<rlysaccha �rcK�ouul{�p
�c�eir#m
y9'�e	nead~�eZ�irsc �lthҵoiut�zt�zic|�kueiofEu2�ai	kywed�'�*ai�l�n
sX�s�tX�zr�'Zei
s
=c�n\Is�am]e0ab�lml�pst�z�o�|uotrao�;djxome�n�n�'e>�i|l6o
s
dnrf'�'aei
s
dr�'�Js�'iYs/�aWna�cehimo)�rtu�nrTs�'a�socl�Lrtf'wU-i;l�n
ssUtz6emM�te'�r��ei>�uf'R�oegfg(iou;l�n
r�Dsglstraph�'ei
s�y
�c�e
nogAUiypher�e�iripUstFe�iFoaniaP' �ng�aiou
Ms�utMReelor�'ak(bg�ei
steurf'@se�'-n
rhIsxytt�eeE6c�s�n5�rrgi�yc�e�s�a!psaeio|ybi)plli++tadlnrs��wbillit�iy	Xe�y��-i?�o
y�ef�h�nei
s
d�s	�'7eimp
swGy�e	Bns.Doou�odlia��n�ours��t�'ty�o|a�dngf'E�lston9'�e�nniv�vi�'az9'r.�d#�iKyublj��aaV-bV-deo�mne�ol�dlwell�y�yg-abcdefghiz�klmnopqrstuvwxyz`�f�rdf��mntl�v�'Mae�istpao��n�'ei
s
d�r�'�aeu�iswharkin%NgaQohei�nsn�go
Gm�'abeosuc
rthevs \k�&eeiy�e
n�'!;i�'
d
stV)htomi�y�es�z
�e	i�t�Qtla{ersi"lah�ikoult@�vf'�ei;l
ss�tz�a	e	iQ�m�ta	'eiIb�t�aEeiEo
nIrove	�s'isn-v
�'�-Maehr.i��j�En>�os]�u�Xw9'6a
d�r�tg*ae�emtith�'�#i
sepf'�s�'�e	im
swotio~�ov�rer�y�ke�ums=t�'�teg|z�'stEa�oe}2i�'
dqm�Vp�r
sbw|e|i|st�'J�e~"i
s
y
�'aaKb�en�fgiH�jor
sryn �r9'h`bei
dr�'E�h
s�a�nac�e<�n�os�'aisl�i;l�nTs�a�c�stic�'�a:;is'rs	�'fO�gdn
studf3&y�4toll�.ieng��rn#�rt"st�'/|c
sereX�i
st"a�cilta
'ssjla�eio
sy�e
nb�pbY�prign�i'gag�,grsb|eW'ard9'|iry9'deg1Vnson�'dq�eeW[r�l�n�rsom &e�'-bdefhil#m�nrstuwy	ad�9flprstw$
gw�@airstR�aawn��-a`�ei=oi�sf5vl�ta�$au�_nitug�ha"&n6yffVse�hae"Iirm|iai;BindedUl�nora�w�r�tidC�g�o
d	@ir�s�v-t��eeoll!po��raoEiln�r:�u_nstud�ei�nin
�se�ahitwZ5iore��mg�Sh��a�oreC�e�[oJ�ieuBiur%�a"8iearb��yD?d	'fkmnpst�a	f'-aei>�o
suali#Jkhleai�	k
dr�'	-��snasgA'-glas�sp�'�ei
sA�nYs�'i
s	$yef'
rAJs�'�eh�Oi
s
y��oeu�i-
d;ln
rsles�aei
s
d
�r�strif�'ei
sny�geipsf'
dr
s�z�e�ziid�euaci�ootadeginr9'8i�'�eu�ils(ei
y�en�e'�ghip
�'s
�'lns�vt :e�'|a|etzz9'ɞi�'ro\n�'|esd�'fe|a�e#�a|eiyse�'lV�o�aY�eis
tn)g�'-�eV�i�lyle6a�'hi
st�uaq�iri-To�o9'1PeWio
�'cdbaegin
=prstvhe
X�n-eh;lm�nsmouth�'7e	�s��n
r�sai�rlouth
	'Ze�speakEe	@ihbrsorou�gresn'rarei��van)�aC�igei>'
dur
s"|d�ei
se~"i
y�'
d
s�Gw�'q�hi
sswherr�c'	�e�se'�d�ssaeigb�'-abc
djlm�rs�#t3ybcir�dhibleCyirYdhri�lHHaK#oa>�eiYlo	$y#�cb�n��eUl�ncrk'6s
xna�lkV�itr�Yung;l�nTs
f'-bdeil�n
s
��bc� de`�f��g��i�Uklnp�rsaE�l4ur6bmis		st�e!�y~�os�ir�opi�@r�So ro��w�'
d��lnr�sb��r-c�eiH'm
sKyc�gl"8a�la=`s
n
n��sai
ynd�'Ee�s�e�fg�nh�tf'�ta|d:�olPn�e6Oi;l�tenjg
^'�g?n�s0�a�dY.�d
�r9'abcdbaefgiklmnprst�vxzngUu �d|nab��e!iruvi�2tejor�';l
sCaic��ai�"oo��tuvsmbas5�haeikrurysP'fi:l9'�8nr,n	ad�eCfln�n|ot�uP'nP'|o�i;l�n|e#�l�e�'�e��ig�ln
s
yo��waeQit�'�stiKa[uJbdehiv�lmowizst6eDMi-$ria�ncB#rilWl�'vi�ci7�g��fthwan �saf�f	f'eg��hosu�Yw�'l(rrs��aei :s�ja�Wb :gns9'|ae�'war�m|aluf'a�ei
s|yB�b�'�sbsfeimpsae�wg>�rr	�'e�Hi�$j��m
sj�t��yen�ra�eoRi{n�r�sj~uox�'fe�'e.�fisu
yc
d
nr06t�elXn�Gs��u��ridacdegik�'�c�rt�ei
ac�oh	�'-beiprk�t"Gtoڂx
do�r
sn�'^e
s�YaoogUmW'b50qe�r'&t�'efi
sw�'
d�r
s.yi8euor�m6ts
�o��heiu
P'rc�6an�ess�'�ece<gikhf'ei
d�r
sf'
dr
sx|a�d
nei
s
dN�ra�chit�' �kf'e;l�n
rs
ttania9'�n�'e�f~"ir
s
y
dr�'��lae�(iAo6lJ>t�'d��lsaeh�(i�oYzP�n�'d|i6�n
srjterP'an�'i�ss�mA'�5aeu�'mnsbourg�'��e&2ibo>uri�ya�e�>o~nt�eŴi9'�oӌin-�oӔiӊv
acdeilmnorstʱxllp�ueho�ruCe�u
=eg��apod%�ir2�gia9'6n�'*�ln��gre|y�a�eph�'ao�sdn9HtenopatUhe=gc�i�mcden�xh
P'�b)�e>�ip|ahourstl5c�n��t�'U�den'K5t-hn�t�aei�'ܿb
sc�sf'wa�1i
seionw"k�nst�r�lszomPa�e��yEitx�e�`l
'-.abcdefghiklmnoprstuvwyn;saghte�ndi5�sXBs
'abcdefghijklmnopqrstuvwxyz�asl
o�eWlw�'abcdeghiklmopqrsu|ybdl�o?gqru�w]ram�'is�a+�s�z,�iotn�oi�'cZe$shur�'s�*Kleṟtiʯdalbe9e�ues2fiorarmf�inanl�ldell� rang�ea5ew�'-dr
sbeݨaon9'ian' �n�'Karyegor�'s�veQ�r�'eim
�oansvelli9'�aae!;ib�t!3i,�l�'-U&a
d�l�r
sgrunY�nsea�Pd�wm�e�an�gtoyshb
'/�erCweb
'5aei:snIHrzie�'s�Yena��nt|c�7w.yoe�aisʱhillan�'s��n�she�brua�0ao
�'bcdefglmnpsiQ�oeophal�ito6y �d�p�si��oya4�gna�mcvonoU�molԗuous�sntgamet6eoc&yaiong�oungux�it.go�1ulecul�a{e�'
sbuhag{Eeciopo�pmu��lcmio-econD[oia-econoLjmo'lmat1�eioM�nba9'f'a�vcdeWghi;l�m�norsu�wgmasca�nrr�'e
sd�'eioydn�r�s9'�e�i
s"`c�x�T-ilmļrp�e�i6yoi\�s�oWyKhsn�Rnais�'3afes��a7�d�#g�era|i�'lstst_`rtri�oerlo�i\ofia6co
�'�;ss�io�'
f'adeghimno�prsuyҕzalen�a�e<il��n6slan9'Biioe��'�]teP>rrafe�#lf'c�Ql�ns�'�aCtic�k)st��era�c�ta�'s!ztaeioun�tim�ioJ�s�ustia]�t
?u�'6n�s�'io�r
sX�cs�tza
�e	i,m�b
�ta�eiO�b
�t�'O,dh�mpsydrodynamic7nas�Xaphe6wrflti	kyc)�e;a�Geooq�uo%�ug!o�l�mMTskg|o%li
ay*Ks.Dis
f'��a-adfiFlojong'gbr(�t%"vyhB@aai;�jns?$e�iӳhs�+han�ai�si9'aouC�cg�n�u6�a
9'd³eglmnorstz�'�aesn�'fhl
so�r2�aeoa��di
y�netrtv��o�r
�'-�ab�eV>il��msZ�o>�ao
�aY�m�xo|l�thot�s6aeid�o
sd{r��n>'bceflm�ostzJor{a"�r9'�rr�aai
ynd�'e
s��n�a�'�jah>�ptk�e"�aream�'e�i
s�d��rae�oina�nei
sb�i&l�nlic!pae�hWi<�o�'lreCsyO�eeousuti�y
�c�elriE�c
�'- �cdeiRl
sdomX�oomg�ordt�nta�i�yri�(a2�rscu�/lae}2icbr�i	f'-f�So)�rs]�uwbJ�ueliVez�ihi�feig?habcdefilmnoprtvw
bcdg*bimBxnprtwy/akochi9'�ta�ijmr�ypt7eViust�e��i&minist zro�i�auet�a"ZtuKd�trop9'bpioikato�'
lsey�'�.s��hR�i9'as9'l�nSa�iWzeoLlnten}tteio6�vsvtrib�ueC�i9'7�sna
�'dfn
sv�biaict�iEoc�e�e�yolenc8t:e�ieouafsrm;a�enct�i�'C�a}�bcgneB#in�@a�e�i�l
sdgoe�r��w�'aeo
sclproho�1u�dWm�a`�e�tm��r�w��aessbux�rE2bouurish�eqmtr,icd#�nj,r`�tclu�s� oel��orrforaImaq�uaDOc�Wa
�'7�aeh&ior
s
y�d#�sus9'(Sin�se��a�ea��r�abeWimors�a�ox�rl|tnua��io�y�'l�p��r�'L-i�^o
s)�agn�p�tra
amphiy�y6c�e�'Wrut�Oz�'-acdefghijklno�pqstu�v�x	$yah�moMsyt-arZmoLuf-�weLa
�cgkH�mnps;�tw�Oaei�ua
d~mr
sbi�}llR�i�'eisss�'�eal_i�lhipaf'�so\us�ReVDahiueuhLs9'r;sia�'n$�'Ys :nc�p8naeioruMylm�Qrta�'
s�y�mu8�eiorAHi
ylW'7�abj�s�r��bngi�lrF�aeil�'|l
s
l�n�Ar�'rdg
s�tuef'ver�'a	�e�i�sb3�i�qlru��e1ylae
�ilo��r
y
f'kntin:^eainҋo�'rdr�si�t�'�e
seif'
dY�r
s�'�el�nsd-wurzReao�uE#ntAt�llo9'acfi�kln
opl5st�'�cp
sotf'
�ah�su�er8�e!;ieost	f';a�ei;l�n�o
sld�'e�i�l�n
srdral�'��sa�e�sgrBxi!lulabtaa�eio
n$kove�'Rl�nr�'
syo�buw�l��oi�>m�biry3e�.i
y�'ae��hio�_u
dqri�u�'�eimTl
ss�mtk{�ni�si!pne�m��ruvraeVuib3�i��l�'�d�r�s)puY�ae�Bfil6op�'r
svaG\naugEhrea"d�aeilor�gl�s�'%)pshel
fA@vc�d�^lsRo�'�e�seu�i�'
d
sgeYna�'{p
s	�aefhklmrsl�'|aacturageЩi�berik�ia�'�ui'fiSsr�tei�'
d{r
s[wcri�p9'irs �m�t �i�'�lmp
su6}a�a�<e~�ilethoe�r�actX7h7�oF�u9'abcdegijklmWno� pqrstuvxyz	9'bcGHestuou�'
s��ta�'i
s4�bc��h9'h|a�ion�'Ee
sd�1ei
sl�ueaSi�'
di�r
s�z	n'2;aehiou�y�al9'%}il|o|a�oWu�'ei
d�r�sm[n�o9'are�'n�'ʅn�ss9';e.ei$u�e�'X�e
saeiorur,t$?eimnta|o�'
s9'3r|en�'a7e	i
slti;l�s	$a0ys�t��zio��n�'�ltet9'Wher#�i9'aW�bcegjlmnostuw�'cnhgUi�'a�n|ot%'Ms�e�'-l�vtan
Tn\oun�a�y�b9'aeV�o
�'>�dr
sA|t6Ta�'�r�s9'lnogM�i�yt%'^e9'|a]Mo �sOOtaiz6i8lme�rp�sBoor?a��iry
�'�-a�deJh>�ikosub9'el8d�rt�'�ae�.i}tp
s
d@e�ra�'rav�'6pi9'ma�en�'sDh�'��abeiosoro9'Kfud�nryn�'eg
sW'spF�i|nC�wa΁iolr2}ar**s�t&�e��noc
nh�;yu�aei�'�est|z�as��'�e?sr#�tst�'e�'
s0�taeio	kyk�Awel5c�&s
d�eae
noge�'��a
sa�d
s�tw�'hb
s	9'�adehj�tui;slla|ei�[s	�'a�e�Zi)�lm
y9'l�'	�e	�il�Jsn'te-ik^ap�#i	�'�ae	hi�o
sy�dlmn9'la�oetpeR�r�'sP�ianln9';l9'�s	�'|abegisoro�)u�t�z8,a�'q�sueP'x{o9'r�'� d�ei
s�aBl|ae�ilf'	�e	�ilo
s9'<�e	�ious*�lum�s�'i&4as �m�t�'aCzbelsn��nl*0lae&zond�'es�r��b$�vi�paceh!�jkoqstdKir$ya�ou�gr!aline�if'�l�n$s�fr�'-fa
sMu�'-)�e�hC.i]�uZ5u�'eC.i
scn%�h�'7ei�r�sc	n#�t9'ue�'r
s�'a�s��d�'-aei�l�mproduY�cc�e'�gsh�xruset|to�i
dn�sury�a&�e�r�s�f
n
Gv�'ehio
su=c
dr�'-c7od�e��flbhilm%)ps�tw�ycswl�Aatr�&oo��ralr~�d�~aeC0n(eG'i
yi��n9'hti�pr�oo��rea�dc�f	nt�'�}asfididf'^	i
srbat�ePior
y
�'acehilrstuz
-#dgGHikmnr?�umwu�/tou	�ri�ta[t<ga-5nh�'�abwe��ilmpswoo�xgUkeNosake�i�r�l]ct�'
d�or
s3y'in�sael�'i;l�n
s�9s�tzy�l�a�if'eio
sm�rwaticaCti#s8l9's9'6o|a�*e�s\oulnrI�sb�d�y
_e,g#sax�o�bgeioaclm�xrch�'�a�i
s�y�e[�i�uo~<coni�y
�ae�ns�kum`�rsya�ohi/�ta/�m	�'ehiNo
drj�s�'
d�lr
s�'-�ehi
sof-fa�8co��rt�aeiwt%'�s|a�e��nkrit:�uae8�it�ei
n$�ov
d;l�n
jrAJso�'�h
st
h	dgt"ie*lnprsmv9'�eli�nhp�ar�dga�nrta?�kau?�pK�rass��a|a?'eio�yBac�nt�ediain�i�{a&0u9'�ir�eo��le|i�n]cr�'e	@ik
s�ui
6�'_geitwf'lmn
sla�'
e��r�'ai
su'li;l�ss"tCe6m�t;�l$]sz�rm�e
goell�'ɞi�'a
_bdefh	inoprst9'(.n;s�arr�s!�al�io�y�_w3ae,mYw�'�a�'nrgqtna*bi�'a
feJ�sl�toUl9'
tPaa�dei�ouy�Czm�rt�l�'d�r
s�eE�l	nX�r
�'aiWp��'b�sO
a :n�tabcdefghiklmnpqrvdflam�^'/us5�elB~eiste5erri�jdalorubfil�fnru5eefreQ�yʱnl�M�'uQ�mthn�lyy�M�'isʱme
Fyle5eyaeiui�lnllT�antocQ�k�jrske�ynr�lynel�llmic�lkacʱyke5enlleorQ�sug�lhaeCioniT�ermot5etnuT�wC*aT�ngal5elnroI�eadrdT�elaC,n�jeUiloruy�fnvT�weT�raet5ew5ehgTcofifgKe�jraf�l^'ntoUYyT�saein�ly�lens�Znz�jisT�onlnTs��aUoeUoe�foigh�ltaeuruen��'ghT�lT�aC,ohT�aaT�ihT�oaeilmuT�larʱaghton��B'T�is�hherU�sueT�ef�aeiDg�'&s�tahkbcdeg�hi�jklmn�oprsti�uwxyzdgln/�rst�'�eosw�'blsac�na7n�r9'we7e6aerrRlTne�l�n�'i
sk�t!>wy��e�n-b�Um�2m��uf'd�ei;l�n
stwyerf'�e'�i
s"�eng�'Fxf|l
simhil
�'lu!el�i
yraeibl��e
y�'�dg�l~mr
s
�'afJbhi�ilp
s
yx'��eRGeoa	$f�vackЩicha�'�saniocsz�'��a	$s��a+&e	i�mt'%�i�aei
d�rrschemi�c
adefilsuwl|n�'il
s�s7ei�os��tlei
d�r��s|aL+l�s2i$�oaceb�notu�'e��l�nstval�'i"l�ss�m{ttineao�uscPtoePiEo
d�l�n
s�'aio
s5pi8Yl&mrSt5re9'nR�a�e�'-
sleAWgvaliE�lsCm
atcr
e�iae�trra��nm�'-i
sMs!xs"�eghoa��flsl��aa
�'�e6sa��y,dknrta�e;l�nt�nh�i��ksch92af'[�ei�l
s�ung�'�h
s�'a�horsbcd��fhjlmknpstvw�iu-7yc�kXeh�i8*yiuropte3�rreat'�heo|�uiot"�h�rmp#ssaniMca6coli�s:;toutX�hahi �ors�eon��ei6c!
nx�&eptRoaRorr
7od�suctRuo7lao�tV�rSUh`sHeg :jo|rs*0h�smttersi!�n
Qo9'abcdeiloprtv\�mntceG�gi(�oholi�ya8gce�'6c�ss��i�ensatio�no��n7�aournrehei/ozeA�df'�eir
se�w�en�Tdn'�os	da	s9'�<nioftPxe�`l��u�npwDh�ei;l�n
sd�nir��y`<c�eous;l�nama�'
s޿to��mo�sf'd�ei�o
so$kwngA'�l|ai��ylt"n.lbem�lo�jpserr�'�e&l&�san	;e�o
n�s�tt�	o�'�ir
saiybni�lli	$a?stVda�e$]szlmf'N�i�l
s�'�lah9�i�'-acdefghik��lnostuzJma�cgt�nref'�rrsc�Eh2�ik��e>'aeio
sci''o�t
dl�r�s|z�'e�is-�erjvsoo_hcaUnYpanoc
atc�fo�z%}il|s�a$iolk�'Zsd*eh�z3�iad�e8Wansdg	$xTdeeio�a
s�eotmɪai6c�d�scoccKa6iZu��ca��el|ri�n6eoni��tmpr-fti�naus�a,e�ar;�h�a
cetuwrZsvanl�trua
lMtrab�Mt�?lea?vrahioli;ls�t6m@�tol�'ast�e�uonf'�a�ei
sr�'�ei�Js�n�'-h
sdr��iiiie��sehW�risto
'phele<i>a�sA'$acegilmorst�vyaehirku�ydnttil
ei%�sr�odnres9'-ben5ezari�y�e�n�'N�i
sandtisU&au�e�i�'a�m
s|ae�f|lYr
srio��ya
c9el;l�nschro#�mf'�Md;l�rAJst��raein�sdmnstU�vi�a��obC�u?gg)�otema6s�'�eio
sc��rra�ct_i�se�$i�o^#u9'�sa'qe^iZnmvorp�hin�g�eiyyaA�c�elmn$?tw�l
ya(ec�k��e-mgo-ro��uaɎkeysi�dh�oi³yolK5aacdehimoqst�' :b
sal�'i
sneCsaemes�'moisel\�lnterQ$iУo6y�'�eio�w�al�uler9'icszFa	e	i,mei

d}tr�s	J_dglm�npstz]>ait	Ahorph�'Lli
sgFeotamia�'nYsph�eheolPrri6ao�u"Zmra�c6xoiPTc�uu�'�aeiYmWr
y
dinr
sgne�u�Qg�ischmGLiae;ln��e<�hni�c
r�surs�'�a�e
gi�zae��fhiort:u�z
bcd�fglmpstv��zoli
�cs�tzGae	i�md�rsGae
i�d�r�saeirp3�a
i�untr5Re!|ircularsiywaen'
e	�'a	�ed�hilswng[2unguisti3c<�eiouc��f�/n0ys0yzMa�sgiraphEiy�drgi�y0�ce6Dsmit9hork�'Ee�.i�saoutz�ehematic7na:;i6srphc$ios�e$�i��chE�laoyrs�'i
s$Zc4spha?$tsic'�a:;i	$sotymati6cs�iz1�e6mabsmt�_il�eis�z�'
�e	intacahr]�se]5os�ei?vst�za�Brf'
dmo�r
spsych&Hor�'io
s
�ct�eic�s^ilogi�yc�e6Ds�aaiorsuivy4�dmnphetamin��eKa�eoP�g�i�lno�k��ndt5u�x�'io
scPhs3qalogi�y�c�e[�srex�a�eseRWllr�'Rake�sce
n �suB#lrf'@sn�3y��eiocf'ai
js8lt�ei
n��oУa�z�i�'�lnp
sctio�Rdm�e!|ioli�stanis��zelr��ne�'�dszof'�ei
l�sicaro :l(.ner9'b�sr�ezao)�nf'-
stsopra$
nin�gt�a
g<�ruWm9'�m�rM�z'a�bcde7fgklmnopqrstxzs�9'�-M,mpslaci2�dma�'l
s
aehkmr�s�'�hswI7b'նl9'aeiel�'amsnge�la�'sɠo*�al�'are�i�l �o��s(�gng��egan�'die�rq�t�'eWirs|y��l�ya-Tcrao>'-abcdefghijlmnoprstvweonviroE�nrganis�memnrrophQ,ipealys�teicx�rhitX�e�eir�acoi�|dT�lew'�eaD?ehilorJwyps32ua	peiY�npf'R�p
srcu��iimat�eEidmns�Oe	@ip(�utro�"l"�memy�de�onsitomlSeclnDhvonomic#sectro�dmA�nechanterp�railou��r&�ubclS"ez�r1hE�aEKmop�rpA@ibrssiQ�lnQ�gelrnelrUia��om2=np
vA'z�msh! i6syaybi��tdroO,dnjsect�eR[itruncocueiov7neghg�taaeio�1un�atero�rri7Zt��eniatur6e7=idlr3nteIul�i"l
�a�ephQ,o6s�'ae
sutio�nsia�'��ntr&lirganisYmahiorPvtIyE�yaoy��gnt�e	@iograpJ�hsiIc�gF�p
�wio��n�bcgpess	@iEoram�'m�se	ia7Bg�Te�n�'ac�deioptutellok�op�ei�y$Zc�epysci)�o�sm�tul�a$?fAWm�whor`�e˺oruct�durgeio�re"IouchQ*naKbz�aoaX�ovMae!i�'Ma�d
s-aσbcdefghilmnprstwyax�be�9flmo!�yfitern	o2�vi*>fo�_rs�fn~�i�sentra�la�e�il�yye�i
f'-bdm�rstwa�coMsD�gf-the-r��o rTua�eo�nr��c?�r�sbeorroughougq�hYxo�nx{waa�easte7�rield'e�4r$�ae�'
s�te�ae�'
saiond�'e�sXr��fn�vth_�ioT�s��ia_\oУi�$ai�b�fceh�@i�7ptucacti� oip�m
s�'r�sea��mm�m.�eown��'	�saeiy�'rsesk�'�l�st9'ern9'e]r� cfn�ve�i�'rd�rrster�'"l�s7�en�'�a
s�^'hnr�s�ut'�ci�n�s
y@svonet*ta�i�nt�e�i]�oaL�ehięod�	oa��if'acdefikl��nopqr6Fstw�dgnw�rt%'e�g��s
jh	f'-e;l�nr	�s\ouma�nn
r�sw�'�ei
sy1<e�'�a��o��p[9rs9'�tf'ors�i��r�etainrtoc�ti
yZe;lsz	a
�e	i,m"�tܣae�i
drs��a�'e�Finms9�w
y
d|n�rh�o�Ra
�'aegimc>p}vrstw�acb=`g��r|y
dnp)�r�+tanri6yaZeni6ssm�tia�ulf'׾i�se?$dar�.tabcd7�egj�klmno��psvwm^rp��e@aeH�negrz�e#ar{paz�oit)�ebnrf;eo#Jl��eg�'^irsn�'aw�f
s�tire�'sڂsec>colt'$�msal�te�fr9't�o��rhoKraa�rlr�Bl�Bdt%'mrsete�rX�de@varQ�iuetoas��t�ex�o�'eio
srd{rGa�nn6wn'?�iauk��eL�deio�'
dors�tgrap�hit%'c
nf'��k�r
ss)�a
9'.acdegiklnostu�xyA'mrCs�t}o$'d�eeh�Vif'
dm�r
sYe#i�'-abee�fi|l)�os|yenrx�(pumVubeSanaogglin"�gd#r"lg�n6Def'-
dfrswdet�0eZi�'a
s�vl�'iO�o
s0ys0yzht�*wpwa�ProrXk9'e�il�urynghef'abcdfm��n�osvtur	;ei	Bn}s
�zׇa�iI�r�uaQehiobum�r'@s!�aromos��o�|raum(�i��r�il��yoa�p�'ai
s�u'l�xi;l�ss"t
�mt�'�i
s$]sza	'eitiWMocektIu�ir�ierr�'�ei
s
�a
na�i�y6Dn=ta[�eޅn�'�e
s.faei"oa?�ls�piongec�r�t�ep �a=1clrKstx�'Zei
s�n'�s�t�'a!tuid��ikt�'kyaerXr�	rel�'��s�'aei
s
ymgk(�re
n�rs�te�ist^n�tf'c�e�cuei�'
d;lm�n
r}sa'qen�'%�a
n^�i\Cc�suej�l9'a(�b�c8�e$fi|ortbv
y$z9'bc	8gmn�e|h�lu��l�*a�d�i�Za�e
nl�Jo��eh�'Fxf;�l�s-abcdefghij{klmnopqrstuwsesol��ldlnpdvrW%eWeilgn�e	i&ms�OioV�cadtlyse�dCs��rhrop�ei�yY�ce6DsplriycTPe$eaA'ieohen
d4�spriat�ei
n$koerghotk�tavEei
n�oa��n	aehilor>�ul��rstl�c
lr�tego��rgle,nlane�i�ya+qoain�cefP�v�'-�smak�e	iy�bassifi!�y�c7e+�dmn�tp1.umpunicatC�e �irehenu�dcdfsei;pvu�cigur8�a1�etruc�eition
��'�sea�ntei6d6s�n�oveioa^emslf'c�ei
s
teansao�rur�'iscrib�b�pardrsglnos�ei
n	$sR�l6sect�ePiwo
strib�ufei)pnun��gbZ�tnrsxteR1r�'ae�i��l
s�y��b��rtiS�mplai�nR1neioast�ac�ourk�eelN�rt�'
s�,trt�uaiouu+�gvin�rgvern�eim
sen
tid2�aei=�dr
saeimE#n�par
di
strsY�t.yadnenti�fftorm	a�ei
serpret;a1ei
sudg0�ei�ymaenb�ir�ya
dde�i
s�raob^nφtXvmza)7ogay��mni�o�y�es"�telorrcei�pv
�e�iauc	�ysitX�iio=c�n�snou8unc)�iuaolif��i��yt;aeieo��uampd�e@|i
sembe��ror	�resejfnum�tf'
a�ehiopt,�u�yapei
dn
s�l�#nl
nos�v�en�'1Pah_e
ssai�uppi9'��auWlri9'�Saer�or�aclnifi�vcelt�e>�i
sr�d
ta�etei
d~m�r
s
�'aeilor
syksMaei�'8n�r
s�Cs
d��r�e;lm��netmo9{oae�#iu�lnslate�ti
ds��a�sstf'�e2�fi
s9'pe��id
sn'�sderstaond#=e>�i
s�or�iM�'cefhiorst :zh�'el9'rl�'��r
sjlor|aid�$agat�ePig�ocxg&Jsmthondria'qo
le	�i�'�d�subi��s�'ae
s|yx4g�nr�r>'�T-Ma)�eitBeu/azen�'G�m
s3�as�vsd��le�ap�ars
�x;s��e�i�s9'emonsic�'
�a��s8y9'abcdefghijlmnoprstuvwxyz�'mnn�tw�'aei
shango�'b�;ci�suXyJeil9')�eisotz��a+&e	i��af�ei�stchkai�s,aiz]ou�u-aaei
s
dr�'�i
js�yngܿb;lf'adei
sulf'߲i�lrs�e
i�'l�mrs�'Dne��il
sD�ein��gantePiof'
d;l�n
sr�'��sf'�ei"�l�n
ss�tz
a	e	i,m0�t�aeit�e�i;l�o�y 92cfgi�sovperaF�diven�ni	kyaͲc)�e"ibl3�ilsa�ei
our�,ti�lTs
{s7�t
{z�s on�vperandd�'�n|tfi�tag�o�pudis�;hiye�'sA'aeo�r�c�im?Xvw�em_aedW'an$�'��i$�sJk]9g9'rovi@c�elnrsf'ei
s
d�reړsa'�e$�'et|s$�y�e;l�nur,ei�sz+�e�ia�[v
adeil-notuylrs�'i
st�iys�e	�'a=�beio�s�yvi�at�d��r5enVe�gvan'
�n�'cCLhsula�erCe�i�l��kt�Mw�aei
saengMhu7Fr�aYe	�'�ei5o
suy
�eKfsc�k�'a�s
n�'cn�modd��lzc"<k<ntyo�'e	�i�s�d
n�rc+�cbdene�i
?u�'bemrsasKasnt�'a�l�o
s�u�r
�aA@i��y9'abdefgikmorstu�z
�'cdgf�mrsu2=z7�a7�o'!|is_�hch�'i
s�y[�c�et�sYht1Peicf'ai
sl;l�|run�la�er#�l�yia׬ngrtyasq�[u9'airi
y;ls
�m�t0ys�\z�'-belm
scmhn�aa�ak�a@ko
d!pre�>nsakQ�e��iroeoIHrCs|�rl�o
9'io��sa�c�sn'�8nidf'
s�cl�e�k.�q�stior�'�e�:i
s
y�'e.�fisUry�'�eishi"nrsf�houth�'s�'abcdeglmnprstuv�xf�m`+arot�whloruy2�oromka�e8�e0�ion��a��q&Ptamy�c{'tla�t�xrB�c�ti�y
c�e6Dsc*�i6yaq3lrmv}io�yl�uamp�'m
sa�eih�'�ei
s6c	BnaiotXy
�er2ito6yntgualf'�iUl
s �hgi	8uQcs=z9e�i
ataeionia�'3�cs�fr"�t�alrm�eph-�itoguah=�ecle
�a��oh|zlo�otyho
�nle6yl
�ei�y�ed�sz�a�Vei�ja�co�Pty�mllab
�i�lhorye0�iPrrn�ei�o�yce
�asiK�eicha��tP�pnsatur�Saa�lo�e�ovaei��otndtigneurf'�seguJArnor�'Yi�sEer1sao	,s')u9'acefghimoprs�ygi�n	;e	@i#�ugn׬eal�la³i9'inrsvzt^�hegr�i7�oK#e�rqsui&ze�oeirH5ddMMe��uo�#rolm[f��e�''�l
sce��lartW�r �yelr�iae�voc;�ha7�lerr�Yament�'a
s�.l
f'cd�e�gilX�mnrs�(t�Mh�'�ci'l
s��yaewa#*tnaar'�	s�'��be�8il~�rstw
dy9''�eRGeig
tht�'e[i
sc4eht3&ai�one�'gUr
s�oB�ralkf'�e	@i
s
�'aehil�sXtberP'
de$�a3n>�n�Rsanud�e�'eii�op
s�yf'�d�r
s@y�e"lns�e
g��eiabcdegilmnoprst4ju��w	�iln�stX�vw��y�'ei;l
s�'l(ss�tz	e	i%�t
�a�Vei�'�Ab�to�rid�i;l_ne}Yaaern�ctf'7e	i;l
sc��aIe
�'ceh��iln�ops�stam,bYnouC�s�'H6a
sorGHkf'�b �aɠe�uab|nostr��tundEi�lrn?�r6os^�e��a3e/o�'5ei
sng�'sH=tU�i�'n�acn�sc��aE�o�'i
sn'
�cR�eheio
s|ya
dm�u�e�Pi
�anSUse��gglmpene�i�ms�t+iogi�y]cesetr@i6yhonemicA'sions
9s�'CVoto�w)�we�'�l	n'aegil�o1Nudlrel�lf'�i;l
s�'��b�ei
s{m�nageiEo�'aa
d�e
scfFm>�s�e/�ii	ky�ce1d�r
s�]aa�>ceghlqs��t*�uic�':Fk
sl�r�s
y3e�liyee�iW'rdrse�mryu�ei��t	�'-b^2eiBm
y��g��a@�eu��e	n
'aehilo�r
stus�ta�Vp�'l
s�t�'�i
s�'-be�i
s��ea\ar�'-��b{�c%Gefhu�il�Qsw�Diof-pea3ruckei!�rn�g)�aRGe��i
y�Oe�flov<�e�in�'3aJ�eil
sesD�sae	it�eio
n�oevrI�'
s�'dg�l
se:#i�ycr6wr&�o�'bc�eQ�him=�os"�wi�Do��kay	8d�rclBe!;iA�n}s
�z�a�eouth
f'�ers� a�'l�oE�eiҋeYrc	;e	@ilnrsth@�a�|eadtmo�e�'=�bei�s�y�dr�a'<�e	�i�sen�rBs>Te�gg'te	�i��o�s�dt�'abei
sObin�'eosb�ter�'�e�.i
suos%�iatl�t��b
d�re>�n9'a�s�ain�lef�.i
s'
d�rul^ql�neist
y�'
d��o�r
styr9�a�e��naBe�ioĦkrgskkyachm�eio�'7e�s?�eho�'-eD6f�Fiop
sw
ytwo-�2mate�r9'
d�rrFvgZa%+ia.{ster!in�'aeibil��eyf'a
d~m�r
sbiley�nse�nSK'g)sS of'eq�gu�in
sibZeu�se�lr.fs�r�s�aosa�eizm$?rbi��cqllka�eia��ir�@e

:�'3re
gh��l/usL�v��'�si/ul�'�ins�ah�a
^'-a/ucd9eg
�nV-twd�4o�t
�n^';r^'gL�s�vref'abcdefghijklmntoprstuz"wa$rBchiko�uf'-�nne�;el*�nage~�i�'�e�Oir
s
yakei�'
d�r
scs�uut��aaAe'6e6l
�'bdfglprs5qa+%il	kyeif'-
dh{r
she��aead�'u-eladp
at�e[�uaqr�@a{nol��ti
_dngEe�.ilnszFlste5rrl�ii�zf�to�+t�'�eI{iT�l
s�'afgswCb�uei��l
y�en�e
agrsيhu]�mamma��ed�'ann'ipssJ�mr�'�ea �iheidd|i'qidV�e|iilnb�uRu
ah`bcdegilrtt��t�h	�t&e�o�'�ds��tkin�na�+r	Bn�ws�aeio
su
d�irnrr�twg�knoant'@�s/?sa!bwg�s,�an�nX&wmbi3mo�n6ai-abcdfghlmnprstY|uvwy
ace��mnA�pst��u!�wc��g�coupSlt0�hat��i?�itEZao�UrY�r&lgGxiul�l�s�yaeho��sust'lnl�eul�#atrKa6e�ian!�nlmrlouinear�rru	�er�'<�e�s	
mpo��u�ynlturaliUls
�m6timr�sensionali"lvOeaioucQim�Kr��et�uo
�i�g�l�rnctionJ�ae�ye��aaeityerali;lCss6m'�tere��dvel|�eu�lngual��i6seinio�dgTtaR�tllionw�aaotion�Samiaa�2hlorur�Dt�itot&i�yaei	kyty!>fi�ne0�r�'-
s�txch��o�')�ei#=o�ac)�ea�i^nt6ei�ovj�e"ila6e�rocgessiEoramme�Birp�
oa|�c��ncepty�3r��nypse��c�eao
gRr~l2�sahoruls�)ek
�je\i�sreaZ}dO�uaA�cbderc�u�ei�naeiol�:r"eu�uvrs�e�ita��mlu!minrq�d��e�'bfm2 p
s5Zaloe��if'
d�r
stypZ�e-jum$
bo�jrei�yd�2r�eKf	n	cdfgiq�orsh�ia�'awehiҜkus(ea*.uXe
narun_re;l�n)sab��ib"vbo�GrCaei�ors�dr�s�'a�sk�nq�dnq�dmqgcf&lmIWtrhipa�li'�co�'�e�oFt��pacd�gikm1prtuwls|t�'i
s�s��ah�iieor�'eiAo
s
d�rQVscrh�k2ae&]lWnl�'�l�'�ei�s
y�e;l�naun��sr�'eV>i�o
saeiou�y�iy�'$�v��l�y'n(�gh-pat?�hkwmrbaitc�edg�e+uop?�aillum�Ab
�aaceghiklqstwalourt
�i'
e
sse�}i�y�'Թ-b
dm
so6uvikyte�'Yslar>�ti;l6sot�'
dr
st�ur�a�'o�ae�Cir
yrdr
s'rso��o*�acn�'aio�slf'gUemi;l
san�';ls��hO�lg>';l
s	�'-eimo�Dr
y"6rglt�'�o
sl��u�'-�e�r
s�	be�nf'
r@�se�lN�gxf''qei�m,nPQuf'eioryrdlrs�'b
su�)r�e�n&2lrgs3k	'-a�we�ci&�n
s
yrsv��hc>�nrhei�'�d�so>'Ze@s�}dell��baehistu�bg�nten�'�e�i
s�eiwo
n�=o)pvf'�d;l�n
rAJses�yilnat�eiEo
n�o!v�e
g)i'o)yuhiw"t�'!
aeo
srf'ei
s|unn�'csho��pali;lssy�t�mAtm�=uaz$�kilryRl*�nei�'�_-
dr
s�p�acelnorstxln2Rg�lm
�aeonae�'�a�)lp�tlaZsl|riti�d?vs��a&0ef�oa�'9h�sclp!�salrdi�a�t(�uon�iZuo��gi,a�cra0?dim �no�8rta
adpod�ai$idrno�Adle�'��f
s�Te�optaeʯc�pl9'eiri�y�e�ocfq�'�aei
st�e�iiy�cTPeA' imuh�'io
s0�cglraph#=e�yogi�y�|c�e,�s�zoemddhea6st6ao<sZu
'.abcdefghijklmoprstuvwyzd;sjaemena�'s�me�nzh�.�'abcdefghiklmnoprstuvyzc3n&�oV-p1�bc�eio
s&�oas�c�beek\�eh5elr�e�aeil|r�lj�mra�n�rn?�afz=te�n�r�s	�'ago[p
s��wry`msaH5ke i �yuarmt�l^aflprsvf'�s�'-b�ei
si�brus@(ha*�u9'oH5bm!rie;l�n
r��st��e�i�ya0�eumyu/�ra/�m'alo�fotDxr��e9'!rabeiq�o�ouycc-pa�wm	�'-Madlp{rscda�>lrop%!ps�'ropZ�p�e
yYlF�ap�aSZbng�'
�;'acdq�em�jno*0stW'rk�un�e�>hryi'�nei^�uyt�te9'�d
s�'g	@ia�ibcfgm$oprstPw��ai�oomposiRb$�raetz�e�ltart�diou
bcfeetIa�oruct��ue�*uchnologi	$yIcfe
�s�<eu&wc��kH5m�'a�ehFii�kloprs��lt?�aha�'rl�sew�sleon
�'i<�sc�$s9'alx�laei�yt<m
dr�'5b
se
nrr��soV�x�ttabcekmPnorw
yW'coo�ro`Wnf'iorsssiut�ss�'Zel&Jstepst0�yi[Aci�c+�s�zmb?�e'is
y�en�a'�oao�+bgntansetrt"vd�eio
n�ov�e�il�rogi�yo�gbDmw
f'-�Kbc�ei;l�n
smin�@dast�je�i�#hiet�`oacdhostM�'l�sf'i;l
s0ysot��zae��rnc
tea�q�' �u��vgpa
�sharyn6�g6x}�aHeiu
y��e;l_�nr�t9'ac|ehi�lotuwlsi|ares.t �hh%�ea�elni�a�e�'i|s�emovn�un�'ap�h
swlf'i;l
s�9s�tQmzid
heO�ei�tM�'�s�we�ci
yr�sa"�eiolf'i;l�n
ss
�z
a
�e	i,m"�ts�m�4tpathEi6s6yes�tg}�rstahh�<yt�K'�i�s
yeao�'s�tusRl�ni�cj�laeirw(v�yq�hj1lro9'9e�sr|ero�'l
s�'-
sga!�z�ega�cbt�eiEo
nؔoatiql�'sayea�racire	nCt�'s �m9'�aV-cbsace�oV-al�as�aa9'G�ejameH�n'abcrdefghilmoprstuvwxe�sr-do-we�Qllnprt�'�ederthal�'�sf'orsB4tli��t-;b�ei;l�nss�shiore�i
6d6sdg
je�gh�yeh;l�n'ruas�kclhadnezzHaao�'
e
rs
s�uekrtss�Zaita�i�o�yt�ei
n�o	�'beaSil
st
\wanY�d
dr��ca
�e�ic��ein�ggSio^blmpsmto�ganc!ztEe�i�yh&ao)�si�ol6eia6cas'<�ce�i6d
sar�'eiosy�Foe�n��v�udW]l�p
f'�efj�hlUil&�n
s
yul;l�nTsei�'c
dp9rswra7f�;oD�so�mrk�'�e�s�Waert-fiaH�elort�eio
n�oveif'
d;l�n
s
n�s�teictf'�efi
su��lgen�i�e~ntia�zb7n�,teios�stude�'�'�ei|s4de}�rms�igl%�th�'b�ei
soru�'	�eh	�il�so��oi�y�wnr�'<�eh	�il�so��oi�y��n�'�ldls�'iryre?�g�eG�oabet!|io�cdYa�eut�tcsh"`e�eis�'
-cd��glmnprtcdfgilmnolnonialisT�mfucian�is�marwini�as�m�tas��ceoor4�gthi�cmpressiI�oait�iberaD�larxis�me	tazi�s��mloassic�'�aism�tlnronialis��m�tservati�s��vteix3cyrjmiothicW'gisTJzTMe�i�m�toyrph&�ic�'aio�sQ*tt@8a�eo-�lcot!�i�]mahlrrt�_gioyl/�i2Rbas�i�mmtole�Gmea7�luGeropic�a6saehotl�'I�e �intmh"eriot,ei
c�d�sK�l�ntoxi�c�ntis,mtf'
�i
sunre(Ji:ad#�e|frorn�uv	'i
s
y�e&ns#h'�iew�i�oRu
y�'-
dl
s�"rw�"rcstaWfelr�<o�'aa�eilo
se}pi9'
dr
sr�'2�i
�'bfhistwzaol�l~�ol~�ierfhlH'mwv)iamSlpandq�ersor��lqXzuet�tcp�yalR�ieilo�s
d:�r|e�nei�'
dsJ�oork�'�e�i
sahualcoy"�obmrtDKua�naiolsg;li,a
cthe+�ntia�c�d�sabcdefhilmnpstvnatomB]iyeihavi�KoZco�c�Alzhompk�uegerncon�Goeied&�bbril�l6sormoW(nms�a6�eiongui+�sgi�yc�e�s�aɪaum�s�'�a
�e
saehsthQ$i�?o6s6yp �tys�=iychi�oat!zrc�e�iuien�:c��trge�or�i?vyiorycf'
�a|i
sxic�n�i�oafonsmi�dtpz�aerrf'%Gei
sa��iolf'i;l�n
ss�tr�z	ae	i,m
at�'d{rs�npKQehi|l9'aei�"su�'d�a]9ir-$)mtcd�*efhs�a"ya7ih�?ieg�lHVlrs��s f'-abcefh�lilmnjOp��rstage���ie	rfls);aoY�ot�y*!rio��rue$krq@uryW'pg*oa)7ostle�'-under-lyK�ml
r�s�'�l
saonr�gund
land�'(=e;sa?�vaiyn�dM�n-�fwwe�de'�darnrk��eesUhs�s�f'-a�Bbcd^efghil�mprsw
ygsatڃh��htka��gast�'Eei
s��neale��r�oelasRhir3�ro�uou��n�kee�s(�ta(e�;rper�'e	@i�m
s�we{noa
ed�Ze��teoek�'lA@iJAy�m)r�'o
snww�'�i
sn'ab�b�it�uf'9�-�cV-lL�saouhilprtuMre�oiL�euhruindj�+eawa{hruh?�on�sgot^)al�y��i�lL�sulunb5u�'abcefghF4jklmnoprstuvwx'�cg'�lO:m �a�'bei
s7e	i'Hllung
9'e�snliv-e�Oracehkoerag�u�Pon';ln
r�s�te9'�seio�r	n*0rlW'are�l��st"s
�'eilnos�y
dlr�'Y�lo
sdeon�'rsf'Ze�irs2�a3eacm!pk@�ei+�l��e-bdlm,Xste&.mare�'�s�ue;dinae�i
�mb�cltvu/hs�e�ozs�Ec&0eftryi
y��e�leghrlr�'i�a6eaelrrsrzd�'l
si
y��n��rge�Vi�et�'-cČdef�ghitojlms�xtw!pyblostwlinG'di	o�f3w7-oiiatchFvm�alk9oub�'b
sei�d�r	�raEl�ia"�enga,�l�ei�o
y��fHPgar�eis�hh
�i>�pt%�a�ia_ingUdai!etc'uhi��lVFareiko �t :eri��lrn�'*�elps	@i�yo4�tMTsbimriluy�ne
y�n
r�ss�'igeq�tita�;boydracej�ntompb�o�'Nfp
stvei8�nnf'#sM�eNiNyCe
aau�te
ahndb|e(if'p
seilo
y�enae�ge�'
s�5wI�nM�evan�+a6aesh�i�'raeimpr
st@w.(r6d�ni�>licke�li
s6ya+eiot��z8�e�ic
=df�ti��y�cZe
-bcgu6xglycerionac�ecte��rehllul�o�{aeln�'�oycerin�K'�sey-gri�t�e�oeh�af'_ge�i�orus�mrbb�'-abcdeghiklmno&prstuvwxyzbc$
gns��wall7esla'5ionߩsh�BoL�arhrC�l�'be�il5�ors?ile
i
�d�rrsl�'i(�s
?ue
y�'�m�n
rs�w�s
tR1kturW�n�'@8ad�eo
su�eil�ye	i�'d
sʱzla�e9'l :m
s�'�l�si�gl�orsM�e]i6se~"io
y�'-
dl�4m
stma~IkmeX�n �ia�l�'n�'�daei"�d�'nclat
�ourKa�eW'na�er�lt�eiEo
n�ov�Ue-abcdefghijlmnoprstuvwyzabcdefghijlmnoprstuvwyS�zbcdglmnprstuvxeorsrratio�nrigi#&n"
aor4�bach��ir"tdem3�ieptan{�ci��eolecP"tadhjm6^p��i"
eau4�cs�Ptinistr6^agrres
�siocultuAWr"-ciloho��lgn7em��eer!zgeri4�cderop-�aurys�mpea��rbori@=csig�Pnht%?lernd�pa��itom6^oailab�tionZ'KaW&e6saeilru!zslile:vigeren�c
�tocdliW(degra�Ddogao�cea�Pk�zrsG'iahloruyln�prt��o��cbohy�dho��la�cel4�rr��gamydia6l6seiLr�nlmnorle��c'bmpsautsa5ist�VieiurcPistsvqiV�tni�Pc4selrt6ei	n"t��iy�-ieh�*edfjstvuct	ioigurationZ'KaunctivaZ'6l6setcr6^u�v��ra"eirgBDignBDuBDuiobut	ig�over�seor��tlԈuperM�aro��d"seiy�0dm�tiPnstal�lbmsoiP"du�lto�dc!zlaeirug�i	gcdflmnpstu��ce^�rive+�roc!vrominatiot�n�arecii�atructivaec�Phrminai�ctsm+\tpshther��icjqil�Eorpl�ios��uiminat
�ig�oun�cui��s,\ai!�y�]nSvcdflmnpqrsqvxotnX*ooJ_du�jcfecti{�vW�aectric3aseprgeG�n�dfor��cicUyfycloi�duivalenc
�tytheUmsen�^tceipth"la�n��cm�psten
=ctlo�s�`eaeiloruc!�dttAWu3a2�t��rcl2=ntion'�asopobdaou!�ym�Pm�prڃwc�et�}u7orma6l��te��enction�a�ieorn�qdeQ9tver�na^�naeouyzarBDdrepdi��tetoUyfs�tm��apoc�?ydmnoren�tperat��o"cdfnt��veupen4�dst�relc��taemt%[m�iRco��veo6\ulnrlectPusi�Noacfvi�c�wh��eentionZ'Ka=isxi�}cnic!�sri�}tudg�Ui�eeioAWgtAWhnt!�vegar7�i�luW�i��eAWc�gaei�&oglAUi%?nig!�ndm�st:barl'!zlsopoliFvtcglrostcXr%[rita!�n�raeuyrtco��t�i�&ug6^aot�Pi!�cmerica0vlmp�hbcfprjls��ei%[gervan{�ctcu�jpf�nierati�rovgtanismZ'Ka�i6shogonalsiE�laehoruryaetlm��pK�l��ench�dyiyc$�sipa�n!�t	iqmY�arfi
�storm�pa	ish�Vau4�rysit�cilBDrstUo�Dili�ueogjss�nud�Uicri	pc��dfgledx9ueissiona��lt�-�asramm�a�eife�r�8bni��saehi�&u�cdnio��a>�d	��acdflnpstiouproca
�l!�tg	vn
i�6re!�u��eiul�PlC�n5
a��ie�Pwresentatio�|niptdseAWunt'AWistan{�c
�ton�=ds��rurnab�lytX*h);g
acei);k�lm�Uoptuwyl��ahi�6oe�,denti!zf!�s��acglxt�AuaFtrreԵg5e=iAWuln�pvg	i�Auo��kei�acria!zfli�s!�zma�(tr��iaY�i3or�_in�rt�da�iut�Ce�"ccprsS�ceprvi%_sor�
t�gta�_iimSmmpathi��saehi	�or�7yr�x�snc��nrh�nmina
�lt+�iei2�rat�rn��k��baio;�udn�lis	fparenUct�v�p�nrsi��f
�o#�be{raeiolr�hi�DinrtoBDmt�bsionZ'Ka�e�i6se']r�anor��tlen�ctu4�lcl��tal�ntau�tntL}eho �irQ�d!�kie"&l
�'bcdglpUrstuvrsa4ssor�ybacZitde��mept��aiv3ta�edhjmi4qc��eau��cs�=tinistr4qaego�'n�saj�rres�sn
A'ciloho��lgnZe/-mer��gpea��rps!�iig�=nhtl��een��dtom4qoailab7�iae��iru��slileS vige�yrea�=k�raehloruln�Dlo��rce��ralran�c"�tg�=eeiri�cniadclmnorle��cf'bmprsaut�{ast+�ieiu��rtt�ani�=celrti�n4st��i�yeh��edfstvuct�iS"oormi
ns�trm�tetc4qur��uair��gn��uiobut�i|Poversadie��rper�aro�d4sseiyd�im��ti�nstall��ilmsti@�vu��lto�%daeir|Pidlmnpst6�vuctib=`liv�eocr��aominatioadnarrtmenadteciGdac�tri/p�9ascilrplin|Paosb�uiminat�ji|Poai�y��mT>nA'dflmnqst�yvxu��cf��e^aectric8Ha8�pf	,tor��cuilvi�ba�yl�'suen�%tchf'fe��hceiphla��n��um"\psten=`crtl��oaeiloruc�dttadu8Hate�n�vrctionf'8Haaou�ym�=mwe�rct��u�oee�zn��corCsvernmentPaanu8laeouzar��dredi��tmolo*�g�md�enrsen��tcdft��v�Vleupen��dst�%relrc��taemtmat|Poi��o�ScinZ�geolrlect�ucfv�Rhe�~re�nxi��cri��ts
uud��gi�%ceiadgtadh8ntve��rinK;gaeigil�%nlU&aigniamtS balf'��lrsgl�+rita�nRrae��iur��tcot,igot�=i8cme��rbcfgp�	jlsi�+gerv�bacu��p�Urf�rienar�7ierati��o)pvaehlorurya�jetl/�lic/�sipan�t�i�ymrfi�sorm��a�i�;sysi��cus�esei
dCsil��rso��n�ilGduaeocti�cjsu��dcri8}p�dfleissi�Gotf'+�arsi�-f��bn�Fiaehi�%cdni5
ao��ad��o	��acdflnpstiouproca�l�tgvn�ie�=r��re��eioul�=lZ�un�=d�ie�=wresen��titdseuntf'adirs��a��t��rurna��byt��hgZiace�1klm�roptuylar^Sihi��oedu^Slenti��facgnx��st��uar�irer�gseic4stal�i;l�nęiaduT�ioo�kei�acia��flis�zr�Iiae�iT�or��in��rdaZrrngoa�iut�ectuadrc�iprsc�he��sportf'�i��gta��impathi~�zaehorr�=xk�g��ncn��h7vueira��t�nea�t��xaiodn��is��fpa��r�%v��pnS sif'qoo��reionr��oadb+�aorlen=`c�tu��lclo�tarl��tat)nihoei�r�aie��le�r�bd�djknst}Tl�')pi
sry�'��d8�g��ik�sta}�nimdmmP�ae	i'ab^�cdefimprstwea%s�'d�h�B'renalineeor2dtr��nis(.cqJt�epineph)ro*!lHxetXz�'ae	@i7vo
s�'lntf'oci;l�ss�tz��a	e	i�aei
d
�r
s�'d�s�t9'U�aryivoel&�ais9'u�te9'D�m��w'�eh�o�'-aG�bcef�(i}�lk�mra�suweG�n�2swast�'ews�rl�kny�ard��usest��i'�ne�xwmptoq�nloif�f?�tarst�'e;swr�'l)n
si)y�e&La�''�lnrs'��eH'm�si�'ezo'�umbe/�rr0�lG�aest�'��e;s��waeM�iX�lrygiacnefhiot
y
�'-bcd"�gp
syc�Voa9�lD^g�nvoiN�vi�eera&zt�'ei
dr
sf'�irs6yhFe;ln�e�gcoGmarl�ga
i�udaUmacehio,rstwbrt��i��li�y�a�e�z�ei
n��oevh�'�e�}i6y�'aKb
d�Slp
s��wa<�dGpiA�ongC�'�n
scf
n�oei�'B�ab
d
s�]oi	kyMa)�c)�ecrh2�oiy�e''oing��hiothstanY�d2rag�?mn�Cr
jsvkchX�o�ahtz�'�s�'7na
sea�lux9'aegio
�'
e�k r
slMmn�'^eil
s�tsz
�e	i�fta�e�itioa�n�a6ya�e�'ie
so6r�ctYi'cksain9'�e;suzneC�tib!if'ah�
ir
td:�ya!y�pe�i�zWc&0e8,z9'
�d�r�acof�f��ac�f�4f
h�Ks�'�Dabcdgiklmnprrst"`uz�'b�(ei
siE�l�y�egUna&l9'rnIhle"�iaio�ur�s�t-Mfp�o'
c��lnpst�'! i
sah��l<r �iW&o�Riegif'�l�n�r}sei>'
d�r
s�s�t�ae**g�n�Os8�eiu'aalof�Baloflai
sIbbDgrbor plai�nf�ti	ky�cgxdwebeisu`�ae i;l�nsu
dr�s�'�e��ig�lp
hsl�akul'l�lraioObR�c�lt2�e�	iEocR�a�sl')uogi�yAWce6Dsnsous�ematiU�c�skul&�lr�Ak
�'ac%deg :k�n
svulth�iak�u�uarz�a5�teistm$�yb�4eootpe�il�'
dl��mr
sinfg�'�i
sGyin
�gu��r�'achm@5prױst�swtC�ei	Bn�o�a~�r)aou�sea�Fgai�csweeʱt�a�e~mtio]vn�u�'�a�i�s��a��elUi
yzleif'
dur
srh�a
^'t
a��b;celmnqs�hH�sW'r��eo;nph�'Kaeo
s|a�tlmrsep�sa��nBguiʱl��s�e/�sdm�9p�9q�ach�f�9s'abcdefghijklmnoprstuvwxyzbcdefhklnrstrU,ialose
1yoc)TknnT�eo�lrUeowT�nye�rarrelQ�lair
Fa5eeggin
Fseeff
FeeaT�reil�^'
Fleoill/uyurʯkhue5eallivT�aooʯl	f}�hkm
prstx�'i
ssD�h�'elm
suw6d
n�yga3e�om[rol1o�a�'�e�iy�los�m�w^'�e�i�'lNce�hlm	$s
nrsande_�a$�a9'.abdefijlnostv�&dmna
P'carReligat8qouray�cte;l_n�sdilrs>y'�isan�c1ti�sPl�o\t�
e�iuscatm�e�ig�o'-@st�^sw�fa�'
s1Nueuct�'-�eiEo
slibcif
novi	kyc�e�an�'�ya
s�#ei��s�trgat�e'{iaiotei�l�nsgqtvaEeit�eIoi�on=�gueif'd;l_n
s	n�tera38tio,n�unq�.g�uo��x�e��iceioteune�i;l
r�srae8�in		tt�1i
d;l�n
rAJsqrsuiZy�eou�svae ibnt>8il�e
y�c��t�i1Pos�ei
n�ovef';l_n�sd�ilestce}irdnrsc�t:ee!i�d�ln
s8*aeirtric�aCti#sna�c�teu��pc
�et�eiFo
s
nov�one;l�n�sa��eruinMaei/-m
s
d3ruBdsi
�o
GvzUrseAu;l�n�r�seir�s�a�o	acehׅkortur_
iailukmsion�'�a�eC.i
sdpentW'al�'�l�sitalCei"l|�sudO�slprtf'�ahei�lX�ns	ns,m�tai	ky	�n�|t)�er
sei
dn�c6ta>�ln	�'-fgios�ug!�or�{o�ora	$cglraphEeP�i�yo++gid/�e��e �or+enomowo�c��e�i�s9'aeio�gh�ln�vrsvedr3a�o�et�rtr�a�ei�o�Qa|on�t�nl�eulObg�npre��n!�o�u�ol@a�i^'ade
�fioM�s6tyl?cifJb�ei;l~mk�nse�tf'	-�'�l|rst �s|s'tCcPvfrn�ors?umnru�'(�etoc�je�'	�ei��lo�sf �z� eutWsr�'Z�e��l�ssse&0uy�'
scdmnrsuh�dgueima'sBDtpa&0ul9'��l2l's�oplpogi?vy�e6�shi�	lelq�ls9�totphagAWeiu��srao>Vud�igux�evxc�qefst
'-abcehilpst
�abcdf�Uklmprst46wQ�ren�:t�rreq�-ui�ncnes��saQ�ei#�lku�t?�sO�teoa�dad	@i�Ccet>xaa��righe-cps�	ws�u	e6hl�'�sye��ak�urdnrbbnc�dsM�a�eive�';l�n
s�'�eV>i
sϚtandeD�dc8�nsei�'�:hmr
sa{�tʱx�'7e	ishi%Jpaol�nt�'� d:�e8�i;l�n
s�e�iEo�uio
narint�'7e	i
sehiptt�'
sY�to�ore
i6d6s?~dr[ia�gr�at}>e-etti�mln�e&n��tiA@m6abl�d�gilruomo��sl�v�veif'
d�r
stho�yre�li�'?isQXsin'bqu�#i	f'a|�eim�oskru[e�u�VinR�oeCgJ�m�'!|i�m
sa�B'3klnWs�'-2�bc�eflUiD�ms
ysrhnam�l�i��ekDt��ik�tf'�e!i�sibw�a
M�'aehilrM�stR�m�+pryҋe�'a�/e
irsm/�a�Ddefychob�eenoN�k-dokS�eo}�tna�Dgw�aahoh2ma�'$�n
soberfF�eadef �gilmosy9'|fjt|vu
'wXh
f'-K�bef��hi_�m_nosuEZafNg��stwaA-is�ehi��morn
r�s�2bi�he�es<wm��p�tobf�i�7vf'aG�dfno�sg�>nt~�i�'$ef'mCsarga0AractorA@i	$ygnvaorch�'i
s�yc�e��a��cnptucleoti2�doli�y�e�srȴo�'dei�'rr
sH3traHen�iBe��s	`g�e�ompi&0uac�'�d(.n;s
f'abdeins\g�Rh�kϨn?�pry�'a[m�y^'ud�su�r�gl�n�opet�K'��s)�t�Rr��cP�nSsr�ti/�'�bcdpsvomp�ueirez�corten�ct�lsesen�c1tceien�c�tx~<uor�e�o|k-a��bcegilorst�uwyb��f�ls�ost�o�Cc?�ita��r*>gn$�s6�ieof'�#-rglm��eogi�y6c�e6DsC.i
�'-*�adw�fgʓhi�nrs;�tdhlFvms�opqstu!�wimensio`!n6ao"8r�Ii�{iualSr�Ni�3th"IioY�rt�i�-pmans�h�)rra6i�}d�'aCe�o?�h�Te�i�<eoingX�n�son�'�s�ioyokEei-be�g�'mnatopoe�,i��tda�}gush�'�ei�,ac�e$)h$-iltrY�e_aow|Na�heaoriaro]nglen�ui�yogi�y�|c�e6�saz�rc�xhoph�o
dh%klm�o��prtz
�alna�+d�e!i�sd!xie��pa|ttip\oph&�ae�Oi
y
f'acehiops�r
stuclq[wif�ti��ye6d�r6s�'e
sscen�Qc1tue�ird;l�n�r}sode�'6s�crd|lnrrsf'-b�cde�pgh>�i;l�nops��w	ade�9fhm�_ps�t�ind-s"hear��t�;n5yaended�narted��n�Li�4oou�r��socume�n
d�r�saq�e0infficU�eg�po�pslar�iae�'bF�dn
stdt'i
s
"l6s�eiEo�c
n�oO�v}(t�qeit�ruC:croic�dhalmio6a�clogi�yc�e�sano?ut�e@gi
non�'a
st�ei5RdnrstVJo t92sS6iS6oeornheiFm~nrstun8eui�aEei
nt�_e��ieoss�eiEo
n�o�vbri'o�u��-�eio
scm
nof'�aCti#sai�u��lsz
a�^e	i�m%�t;aei
dr
sn�'a�ei
sl۬i;l�semlect0�retri�yces�h'�ln�s�a�'abcde��fgiklmnoprstvwcz9'clnt,�l�uf''�e;l
s�'agj-e]iuouut^�a']t	�'%�a*�n�r
slbwy/�tes]t�e�ior�'i
s�y�c�e�o�'7eig5o
s�c	n��st�'ag�ei
sl�'��e�l�s
a!�eh]i�sd6s�iaeir1*dstra�'�l
st�e�i�odƊe�'Ɗe
saei�no)�ui1�n
ar�'Je��il
s�ei	$y�e�nna
alnrt�cdi	$ye;l�nr��seiwo�'Td
s�n�ovi;�c	�'bg�n�os[wo�dao�wnn�'��i"|tai3�u�yns	�'ad\�eio
sE�z
=iZy9-csza	e	im�t�b��t�'Ka_i
saei��btion�'R�a
scmphlof�reta�8lhosp%�hmQ9t�'7ei
s;�c	na�e]Rs	3�beDQfgnos �yzc�lnt�'aeio
scbl�t�'i"lbsstrs
de�rr
�ei6sng�'ai��mn�'a
sltf'i;l
s�s�t�eiEo
n�o�bv�'o�lrng/aO:naeC�o|yndW'kozaol,uaeim�tent�'a�ei
sl�t7�i�lsriry�enes��stho�i[%lgpt�uern�eQ$i6s6yaphiycharyn/�gxundi�thia&.ein�'�a�ehai
so?�o�c)`s�'io�n|s(�r�oehq�i �go	degmnprtonxti	$a�c�s�e�i�l�ypi6y6c4seornesQ9tis6tnali�l�s�tz!�aC�e	@iaphi�y,Bc�eolNeor7lmaehedics�[stg'�Asdic�s.(sospha��thoG�mi�c
�s*�a��ielF�l��'abc��eghilmpst�vw:�g �k�meov�rrn�'req�aei��u=�oll�ao��s�iOoa<ik^'woCsEeri>aMs6a(iol�s;�talrit��iGHyit��i�y��rXaeIi`ot�eit�ua�ce��lr�lw��ino��statio,nCuabcd\:lpstrthriti6c�d�slyNalyNaeoy�)nrP"mntok4�es��taFjoth�'i
s�yAa
c�eaprcZoer��mom�e�i6ya[iiocnis�ze	i,m�'d'�rs-Xdgoth
9'Wzi�sAjaesK�t
abb�chi�lot��wd�gh?�k[r}�tu �u�te&]lr'wn
sw63iorldG$l63ors�tbhrsohʕacop6eEiaEeo�Rw�'cmeO�naynabcgi#�nrst?�y�zgadoug}�ol\iheht&�nj�aas�yelf�v�aa�e�t�'-abcdefgh>�ilmnprstvwghotrP�oa��lf-c�dpo��u�2ho� c�=a!�r�g^�nrguaioruc-�lk�'�ersdY�d
sau7[x3�rV0sn�de�a6d��ei�rl��daW#l�or7�s�ioypZs�'p
s�eV>i�'�iaiortu-e
ds-�t�ei&norsf'rya�ei5o5qunwi
n
snv�ke�i6n6s
drH'm�siwailoc��l�Tegti�h�'
s��ta"okNn5uU�xoruf'�eing�n
s�e3ioZswi
n
s�tW%en
;n�si�otrs�ta�eiaMoY�yZinV0sw��yde�Fi6s�'�ei�r
sLe>�nvaicLounU�teouven>reuvr�Ge	�ig��rs�6c.�uaelor�Nucءtei
d�srform9a�ei
sac
ye&m��i�s>�uoduS4caeiu�cg�mnei�'
d''o
s
kφa�dg�gh�tnY�n
sacehikmoptiR1lo�ol�tr�lion<�ei&no6tut
�iCsq6tdzef'Rsr
sef'6drsi��raV0r�lurce�li
dAr�seor�el�nke�ne��aarn=t
y�2deiU�t��pa*k
�oaeiord;l�n
s�ai\�gtrh
s1�tr
ekl
n�'ei
s
ddrdaeiou'xWlrti�y�a�e�einr�'�T-ܿbp
s��wroo�f�'-abcdefghijklmnopqrst2uvwzabcdlmnprstbcnundan�c	�ttiv	�ei~ptxie`o}�rurio
suelica�cta	oEZra7Iu�nice�n�tarm�tid�Gd
�e	ieinstitiveinessA'�eim^�em5�pahlkativ��ee-c�toulSn	bcglmnrtwundancn thtievei
dJ�m
ar
s�ei
s
nv�e�iO�egresSWsl�'o	$s��cbip�ta��xlys9ei�n6scmY�hZe�i�s
eteP�naeilorula[%nar��i
sd�tf'Y�d
so�wialo�ar5uX�d
k�tei6d!�e�qdirr�yl�lde��naehlorl&mprsu��laic�italN�ie�Kftf'o�i$stio6n�ureMba�erN�g(aocuk
�e
i6sd�ei
samnort�'��i
seimpA'�r
s
n�titmFsY�tel�nelnsat�e��inoeir�xca+�tfsi�dcuie�:nmR�p
k5lre	ceiod3�uti&�cwd�eX�i
s(oae�iorucptvo�rende�nermX�ielo
p�ei&n>�saeA�i�f�Iws
wdsb
ef'1�b
sadmnsxgte
=rei
s
nr4iuD�copt��ihlas�ei^�sz!�e�io4�ythusiakstik�mceptitGaOeirct�+i�ePi
slooit	a7es�ei>�uen
d		s�a��eil�ol�umls��h�eio	ky�ecgwf'�ei
n
serner��a�oa�eoz�uwi
n
s�ttaeiuyn�sud�=gf'Ze	i
slf'�eC.i
sa
adr
t
d&ei
s<Dt�ipncdfsredul�youlվglu�aur9a�eoy�e�irsV�eilQylaeio	kyk�di�n[Wp|Nry
d
nf'T9ei
sav
fp�e6s6tera�ge�r
s��acnor Ikkf'<�ei
sd�'7e	i�Jsaeiounso:tn6s�eiter�ei&l
sdilcg�hdęech
feiu)pcghtf'e	@i�s6d�rt��rptimis6Tmmta<�lorcir�msyZ�k
dR/nt�ei��ciqm
spwulKaBFoeK�raeioi�scsi,�sc�sri=b�pc	�n&cdmtuc�ei
�t&oect�ei
s
n�o&vuali�faei$-ou
nta�fpc�&hg}tres;oedpk�deif'r
slnf'Y�n
sA'a#�cehiloptuimt
w�lpls;e!iurateFdae�dln)x
si
n�r
ssitivtzeao+�d�r�ei�o
tgmzht�'�i
spl�e2hie�dee�pr�pf�lt�nei��rcl�niali
{s�zF�laeioruf'�t
y)fj�e��pmulat�ei
n|okNc�hraeiuA*ists��e�ich��e�i�cff�e	ibpssOtcribpl)iy'ipi��c
aehi;l�nouykxei
n%Jr
s��ei'diornk

i�sugc�h�eouwf'i
n
s��sg�mrhtX�e�n9{or�e
n�pailua�eitio�new�'�e�i
saehiorteZ}r
�aeminincdgelm�e1ui
sn��dteq6rr�u	�k�aiot<�eik�t&t5uealo��ud��fp6vt�'?uaor�i�o�s3�itvesativipar�itolma�e
rtaeilnB�si�krҋa
dNn
s�'�ei
ss=�h-ei
sb�Kr
dr�'-QqsoccupSi�'abc�efi_�nopt�uyl�a!|ioa��cl"o��roodf'	�sa��rzaord�'�is.BhdBJsa�ei�n�sti�o�vsz	a	e�-i�aei
d[9rrs;�nr̠d��eaiD^lacghmstcetyle�nod�nonX�een�'a�/stePi�'
d
sydroxi�dorra�oulp
�hodGc�oster�'c�e�i
satX�c9'aoyzr<�kne�'-frien�dman+�dWmi
9'.abcdefghijklmnoprstuvwbxyzF�aRmo
.'abcdeghijklmnoprstuvwxy�zs�r9'�ll$?surouh�mܾl^'ehik�try�'
dm�rs�ya�knettEe	ieyds.�eandc�r�efni	kyc)�et�s�'a
�l�t
g|o�'aehis��wcbg�ru�e�i
d�r�toƻrng�'�h�sad8,d�'adeg��ilrstn;g�eil�o�yen�'
sg�'�sMTtei�'
d.�f�r
smre5blIueo=e�oae��i�'
sws�<kto�whax�w�adk�^loYrioatric']i	�sphil
�eiq[aakarS6iۮnaei�l*�on�'i
s��n�s	�'a�Bb
ddf�r
sIby?nn�a
gail:9ja��ta :v�Qd�g{hlnrsu�'D6f
s	�'eV�fiklst�'
dil�*le�stakZ�i�'be>�i
swao�yrll
T9e�i6sEGx
dr�'l
s��i
y��o�'�e��i
s��wley�'�s?Xtam��aeiuPh�nsta"�n�=r
�'ae�Pfilmopst��u�ci�dent�u�Hvzo
abceglyBmnpznthropologi�y7lcsotaniyAWc�s?<elima�<tcolo�Rgrapheiy\�c�eithic
tologiy��c�e!�satK�ho��iLGqa�eibl>8i!Rlf'i�l
s+�s�z�ana
aez�i0o
f'*a
d}vf;lm�norst|y�>bcglnz7De8eraphS"eZyithi=ct.+oo*�imti�rnre��ikmnsi��rop++nD�sd[9gro6pma
hde	i�'d
hs
�'-abei�o
s
ybeaw�rdiako
?u'nDMiea�rrdt�'^�i
sa�d�nt�ei
n�o�v	�'�>aeio
s �ty
dr"�t�'st�o�e
ny?sl�hi �rW'm�va��iai6sZu�b6lt�ein�oe
g~t)i)y�r�'b=�e��ip�sC�u�y�aehr�ei
hslet�'�"e
s�'-acdeghijkmnopstzeurop/�ecmst6x�e�ha
�'��n�so�nelĦlahr>�kerWaea�sti
c<tae �o�'n
sZumr
io.�nf'ei
s
dޅr�'dgl
s'y�'	�eil
s��n�s<�einsz�]g�a
�e	i�t�a
�e	i�'�?ao
slan��dce�s�'�?-k
s�e�Di
y!prand%�rhyuXqrun?�r�ja�e��iwon��ipr^-la:�mipe�ip-$t��y�xe�r
>'aehiorsyglrW�uoon�'	$sc
dhnic�\oe0�iG�o�r�ae"6hl
nei�dsѭngmrsbura�Spim8�ei
c
n�s�iy�'muihlw>�oi~�na.4ikaez�rl�a�i�o�'aei��opr$suy�'�c?�k1lYm�nr
st{w�ya��nzz	$i�ooe�6tgqer�'-bceghikg�lm
sw
ybcgo�yJ�lir�lao�cw�raYy�r
hl�jiirYlan�^gtjnnif�vE�aa�e��ol�slao�'
e;r�t��miou0�y	es'iE�k�-ala�eo6e6rsZu��rf'abcdefiklmnoqrstv�'bcdefg��klmnpqstv�loul�a
�ioid�'asr(�dehl)rlt�samol�'rsiu^#lt@�e!;iK5e��eiooPr%zg
nsa��e7jii�lca@lx�'�eicwasthesia6e6s��fA-il�oruid2eiapΫhayn']=aaeiloy��ng2Rxa�aln��g`maelf'eio
s
dpi��p
ns2z�a9e�i�m�(ggito6ybsmstzpi�ac
Rsei�d{r
sn�sglFyiE�c�eing.laeiogrnet'ic�siw"bcdti�auJAmic�'a
sa�lerr�'i�l
ssz��a��e��a��ei)a�cszaC�e	@i��b�taC�e	@i��b�tli-teuci�a,�un�rt9'Rc	�s|aoir��a�d�ma�ehlorsrauVFmeiryrna�llia�c6sasGa'�ei�tlegi,a��cdlp-�i
�ait�8hofessio�#nych�iologi�y�c�e6Dsua��taci
oyil
iendT9e
it�eio$�cs2z�a9e�im!�ilog7iympatheti8gcahry��c�x�iyru�ooopEe	$spho��ia�/n��o�'eh`sl�'	�e	�il
s<�eing�'ei~m
d?�e
sׅnon�of'aei
sbJ�i�ul

dglQ�mn?�og�rst�}oqIlcthyma6l*�t�'aehЩi
smg�l
dAWreos9�t�eis��z�'D�e�e�i@aldje-�aemns�tmutueAl7�tutu�&ed�g�'h];i�'�ei�o�'�aeil�ms"�w�y
dr�s�'Cs�en�g��sand's9'U�ia��eio�n�qyament�'a
sri
yan�'|i
s�rur
s�'?m�seinC�sidMegiasjnaess�	ul��lcdl�oxhiali;ls"t,mi)y�e�sei�'
d�e
sys3�mue�t9'a�eioeyke!ne[�c�e
nzst�'�[b�e.�fiA�l
sei_�l&�no�c
dr
s0?fmC0no�nn�'�a
hs�'-aehi;lnl�or
sus�w)ys��tkei
n�r
s
dr�r�seinogrnen��eace�e>�nstzu�liloupai�lU(b�nt�e
'iorf'
s
yalf'�le�'b
soa��r�llar
_tf'i;l
ss�tz
�e	im!zt�a�eia�n6eio
_vΫnL[aer�'�ei&�sidge�'��b
s(�re\$o�=nac�hqstdeKnaq�hl'lbss��uf'ab�cei��kmopw�bge	i�'d
s"�wlaaMo
d�lnr
sger�'-
s�m�'�w-++b8is�w-Rbyb
m
Anovn�'a��fg�l�sRaeif';l�n
sy�tpz�uave]�rh�or�ao��r
�'�aeior
su	$y
�'�T-b
dσg�lr
suoard�'L-sn�'$a
sr9'(ice8,l�mlXn�s_�h
rAJsr�'ae	@i
sl�tf'׾i�l
s�ya�i�yr)�aei�'
dl�r
sand
f'6s�'-a�}bcehiU8norstd@ogonia
9'�nh�'�aeiow
y
dr
swoll��o�e;l�nu�Tlork�'#=e
s�'�alnr
s9'la�'
errst'�ct�'�aei;lo
s
d{e�'fnsamili�aa�i��oli;ls,mt
�irso�dn�'-�a6)eflno
s"�wl�o�<ipseiag3�lpssenn�'��e
�i
so{mhysiologi6y�c4se�8n�osn�ct�'�e;l
sser�bi2 i�neiosfamilifaacmP�osrch�'6�ai
s�ySc�e|a�eirka�dn'�nondUi�yti0vcln'co�'1�l��m�o
s=�w�'apBei"l
sy�g6lsz
a	eing�lTs
ae��imicf'"�a
sA@ih�y�aei�o��y
dH�nr>'�eins�'�ei�l
s��o9'�e
na�clnpN�s�'�ntah�a�'kaBei�o9'n|e|gch�'[ei
y�ene�ger�'ei
s	Bns�z
�e	i,ma�%eilro�tlnI'i'�gov9'a�i:�')s�'�ei�lnp
s�'beib�sr��o
d�eragUwe�if'-?�a��bcdei��lmnoprswa5bc�ops-you-e��ala�iack�e��ha]Ayrd�e�r��a�ee
P':s�sf%�l6Duahl���'or�nfLol�xial)pr l9'�s�x
M�'�bim�p�arM�srt�ec5�i9'G�a�efL�pbq��s;t�sabcdegijklmnopqrstuwy
�'-bcf�2hkl>�nrst�Cg��ecoehNo	�'�yaw�fkmrsteepe\ir
f'
saokEe��in�]gi�'^2e��i
yo
w�'u-ei
s
y��n�'ei
s9'
d�'�cl�st|y�'�ei
s
yent9'
r��s��e
gr�eahnt�'h�r
sooo(�o�'l�i��l�s
ybhmil8�ei
y�eA�n�achkorstuad�ril��l�o�'�neisn��s
gxpnif:fr|siW�ni^�o
cn�'Ae�slnait�ei@oar�i;ls�i
adei7Olor��u�yglnogi�u�yce�as�'	�e	�i�!l3o
st�'%�i�r
slei
d�r
srsasP@ttar�nlian�'i
ssz�aC�e	@iCmaS7e!itiomqnacgmtricAe/�iZsaeluubl
$lFse�3s
�lr��ei!
n�sreBeent�')ae
s2l�mphil3ei�a"^i�of'rdikl�npr
svwf'a�ei
sb�wo�'e>�i
s
d}tr	f'-�bc}e�his�y��hsh�Yo׉h�'�a�
eil
s>�eei�'
d�r
s
n�ws
_e?i�'a��bgm
sns��ous9'9e�e�iy
P'at9'gm�p�aAnorati��ovef';lrs,�a�eimonegA@s
P'e;sse�'�s	ae�filmo�tvgriDGa
cugo�n9'c|ey)�pCtc-a�eiu�mgE�r�c-c��elp1�to�jgo�snni�ei�c�sbmer.froke
P'sic~�a�'-abcdefLGg�hika�l��mnorstuwzannd;�-a{�m9'ln�ti"l�ts0za
�e	itionCs	8cg
�nert��h�eth�i�aeilrsurdO�nre��ceT�bl�o�uclt@�to��pra�zb
�nt�ei#=o�n�o
;vri�yec&lnstil��lsula�'
r
s�'�eDten�ctf'i;l
sa�lA=r,n	9'aei�osyz�n
ds|y��h�eg�ln��eg
'tylvania9'-Tn�'-rwfparo<tio:noAWya�eort�h��ol<n�a�+oR�iY|oahic�og3uovn�'Maei
sD�e�T-ae�hiTscgmstMxh�l@�ooH�rn�'a
sj�le*�r�t~yeh0�oeKule�o�	tcost
9'a;sl9'iRssRmumt%';sclmr=`htima�Ztbr)3ai�yeous"�lF�nor�tan'cn�p�r�')�a�i
s�y	'e6ipst�yvsrodnelUi
y
dr
�'�NcJ�eL gimo
s
yn^�e
gi}�n��n�i
9',n�si
acO8d�uacdefghijklmnopqrstuvdmven
�tbu�(l8,aehi3$ou7�yinpvfa	'eit�'�a8,irst�'i�s�u�!bU�o
Gv�'aeil;|n
d
'r
sor�ainat|�e	ip]Kvie��nsts<mei	nFo
;vanծe�i�ug�lmns|zrin�a
aeptori
y;l�njn�+o��itroi8keiouctf'�a�qei;lF�n
s�zb
n��o��vr�dr�a&cmaei
s�b�:ntiv�e�imnsei�'
dxGr
sctori
y;l�n7ei�o�^oa�pacdghlmnopst�9vwnsaTlt8�ralrdia�t
?u�le6aKsJae
�i
�oa�elstLjra}�ce��l�'	�e	�i<�lAo
s+ue�Rn�tn:aebura
?udrp�'io
sc�a�ig�lnra6mSpt@8aic6DsA'?vsahtE�eerr8Wa�i�yas�e�imt3$cht��a�ie ia8,yl&Jsmton��e=ii�gn8,kureI�i�yf'�ei
s
y�e;ln�e
g|s
9'&i;s�'aei
su��cd�sflneQayiloǔyegncte�i�yf';l�n$sa�na
db�n�tii��l�a
nstsib�o
Gv>8i�ul�'
st�ei
n
vt�a�eia��i_on�-c|n)�r|txidƻa8�eielntdiCscularf'i;l
sCs��t�Jrua�i8YlMtex5e8�iui�usI7iyP'�:vem�hinopuc_ipUuvut�e�iLohoEo:/lera�e i�nV�tafms
P'�nl��amtei
s
d~n�rick8�en�'-albhin
sto->tp�'��b
e�gl�sf'i;l$s�t��s�tzM�a�eifi	ky)�c	ge_�eeic/�xtiv�ec0rauci��oy�tmi�oa dks	=a�ehi;l�nTsut%'!snaeciAo�tn
�c�trsS�b4�sn'�ksv
a	'ei];iaersdsi�o�vrst�ei�o�tvf'ei
s�drc}(ehk�ostet<tvai
y�e"�l_nai�0rmU�a%�i�'�ei>�l��o
s�c� flen�ctn(i�l
	'acehi�or
stuhbf6il^rts"�l�'	�el
s<�eoc]Ak9'crh*i	zC'b�ehimsoroug��heo��au�s9'�b6e$�h��oidi]�n8,ot�.e��i	�sa
eiot%'eKrf2�ai	ky�vc�ecdgln�svhemW_io��lelrn�e6yyp�haph��i�'a(eo�s�<tgi�yAWce�s�a1ei
hy��c�kef;lnsogg
sei
dr�'
s0�y��e	$g�h�El�ng�e�'�e�i
ster�'�e
s3�oceH�innigd�'
s;p�2l'.adeilnopr�syd�.eglnrs�t�dt
'h�o�/eocyt�eio6c=s=zs1�eZialng�x�zeiqu
cetroz@oa�osm!py�'a
sg
lori�aacaimyoh
�'s
saeic��sapl��eac6se;qio�yuticf'[a	$sdlpPlty�yogi�y�|c�e�so�eng�xei��a
sti�d?vsceR�iFoogU(a�'s2-
do{r
sbRu�^'�s6�an�klnr�wl|pz�oaoyce'�tbclmtarbi�t�r�'!|iopsgi6ycalE�lhthalef'ersnao'li;l�_sl�nog��i�yype�il'aml_Baet�ho�m�'a+�dlpsCz"�l
9'a�b�ehilo)�tdntelp,Xh:kdthropi�y
�c�e�seli�y
c�e�sarmo9Hnps�'p�s'|ei��a�cne
9'׬stin\�e��ii|ypt%'|aMsdڈlsen��dophEei�y$Zc�e�sT�z:1phe
ird�reobgioti�d�sto�mm�'6)a�s?eg�xis	tĺobenostiUo�aa�c,�bnicj�xia
9'-Tneioy	�'->Jc
dm
sty
�ia�eic
�a�i	�sic
�ai#s�asZe�i�ce�nrd
rs
tg3�lntra�mp"�ha+�cf'�i�epha�Reiotƻa�e�d]�ndlriester:�aipa!�i�'e
�i�o
s�usce~no�'-bcdefg�ijlmnprstvoxi7Bdom�bafLehou�|yKl�rermiV�c	vso-�mmppo��s�.i)yr�reiygtrad�a6eezWc �osso{ncn��ardlmnx�sectrioc"�a�i5,mnisJ�cis
�t�}sgrave>�i
d�rrsin�tishaSi��era�m7>pX�vournal�iiythograp�
h,5s!ztaeioug�snetoele
�ctEer
�iycrograph'yns�ot�altiplTi�'e! i
svghor��oly]�mo�d${teac��slism{'tept��oehptynsiti�vopp�sv-ebio�hait�'_i�stei�dn�g�mn^sthes\1te^�iaPnhorycaxxi!5caonsis3ntp{'hi�c�spesetteu�ioltag!|i�'aeys�ae>�i�'b
d�mo
soo:�k�=l�an�iologi�yV�c�e�s�glstalo
?u'c�ti��sgen!xe�i�yico?gq�'ai1�ko	$slf'i;l�n
s�_st�y�a�s-ch�cecglrsthe�m=nrapohogi�y$Zce�shera�ZpocgLlpsh�eg�renograA�plank�to��cf'abcdefg[h�iklmnopqrst:1uvxz|fgkn)�s�zueiosms�ftim�'fl
sor3a�r*�o	
f'ackno�st�'#d�nrsye�osqu'eso
P'�Ce��uaDodlil�)li��lf'-aemmfi>�l�`op
s]�u�Xw
ymJ�ue�u-xf'e�i'rd
s
dlrthaub�'ei
sl�'
s�wng
$�'�'ei
s|t
dr�'
s�engA'	$sock7�eic�'k
sei6yfbBjrs�ta��rn\$aecond9'ougnrramph�'!|i
s6yia�lrGaei�'-
dswi�rq�udi�glei�y�'bcd�gir
stza3�leir�'
dOAmr
sw"8iork�'Ee�su�smon+}t�'cr
sei9'
d{r
sngf';l�sre�o�i r�yoelectric�ifl|�ei
�'-efgh**lm�
n"Hpst�hsti�+con�'-hJ�r
sbfhtreac)sanco�Xl5oo��li�Fseiͭly
d�.re
n��s�r}s�'ba��ceade�d|ae'�ynt�'�a�e	i
si�k�tw��iaif�lei�'
dlm�rse�t	
a	
et��aacefg>�ilofst!pu�'Af�ste�Nre
9'�s[�homay�'
d�r
s�uer)�aei
srim�'a�ei�s	8g�nsz�'a`kbZe�	iosgrei>'
dc�r
s�'
s-�e
s2c)
rw�'�0c�ei�s9�bt�'�e�hu�i
sei�mp"�n� e�'eil
s
drIHn8�ei
jy�eek�'-abc-defghi�njknopst]�uwyJ�uwhe�e�ft�aa�u��azJoe��hu-rnezf'e�i
ss9'=h�'a
dh
swrylp8,piaokroeo0a�'-eirsp
dڬlre8,oad�'e
s��d�e
n�o	�'ei�l�n�o
s�y
d��r�s�y
ae
nsi�ha�eiryce(�r&t{e��lfeC0nc�nch��hue=`lor1.i�iet��tridp�'�a/eo
su�C'rsq�b�chee�qliHDonf'�'n��u�'�He6s�'eips
�'c
d.�fl�r
stwl�
a_�i	8tor�kn�tg�'"l�ein�'
g
sql^uuaeinoc=�t�'
d
s6tai�ko�c2�egnt\ud�h�e8�ei�c
n-�ep�igpsuZicSulas�mhkZie��traciw�mst�@aei�a�sculturKa6e2istr�af')�aeio6y
d:�r
sׇia#eiocE"hl�'�<l
sl�n�'eY�l
s�'Cd�e�'-ac�<efJfhij!m�o:;pr
stu\!ya-Y�p��'Z�prsah�Wi	f'-b)�efo�i��msadnd-�<tOeale�nord�k�@t�'e��is
yad�4d�yawefG)lul^ql�nantjatj\oaes�+sP'a�ei�ms#�n�s9'bwuṟgol3ri1Ntot�'
�a�eu�i
sf'
eimCy�el3ta@�l��aaz)�rz��za�Eei�'
szK;zcat�i	$oe�'rgrtw�y
.a
ceiouy
cgin?gqstuy�zaei**koU(brtd�'ei
s�dCrm�eio
n
�oev�'aa�b
dhk��lmn�r
sol�rdickf'}qei
s|aen�tta�'e8gl
sd��nmi;l�nz/�o�ei'�uaoriZysT�z	e	i�m@�tc
l6wcf�dnt
f'-c�9e	@i;l�nstcslot�hp�IohlH�aothes��m�m�opoY�k�'i
s�f�v�'�eu�i
s
�'a$cegikno
st�
uri�'
dl�r
sto�a�'ae�o
sr92i
ysim�taenR�c
tڲg
n�'�e�.i
st�ion�'�ise�Wicon��c�zv�'aeyil
sybg�ir=te�nXe
�ei�ihmt�'�eiy�e
n�',a��iode-�isma�teifir�'��beu�i
sBwc�iq�'�ai
s�qun�sot;�z+}ef'�?aef|hiorsty	�'a
df,f**l�n�r
su�'�e!i
sxor|�mnt6Tgi
?u+�sud�e�i�'n��oi�cs�m�te�i9'rd�rf'h�prselminth�e�s@ds2�tiby�i�,l	'-abefg�hC.ilm�qo�2p_^rstwa�`oct7e�BisbctZeZ�irsNafLio��o)�yee�ull�`o��i�orou^n<�pist
f'�i�safRk�tct�uhK�eo_&oatio=n
e��hiricg�etabcdinostux�'dste]i
saEeiunt�e;l_�n�rng;l�n�s\tr�yaei�'
d��f
s�'J�ei
s"�bei
sf')�irsscitg�a�etr
a�ugei�'
d6er
saos�
dtWdrtocEeaiturB�i	$yp�s%totenTmt�ei�y��fY�mmnorp-�has�mQ9tطi3nsh��or�ai�si
�o�ugml�	aet
�eUra�cegmno�cbnoc�t
d!r
shI�tms�eol[Fl�t|ycen�Ue^'dhn[Wpstu�vw�yd
seing�l�s<mgke]�ue��i)s)d�ur�Ai�'
steC.igh'��ei��lmsngA'aeD�nq[nha)�rf'Ze�ims.Fae�nha��r	cgmnprstvkf'�e~"i
s
y�'-bghHDi
s[�c	
izJo�a<�eio�bl�'abe~�imop
sry��g�'ae8�ito
s4�g
dr�'
sCy�'L-�dlr
s�ei*>k"Zi�ye�\i
yrr�s	�tf'ei;l�nrs�yrd�r�s�n�Dsd'Hg?�ker>'4fei
serfe6Dcailf'i�l
ss�tz0na+&e	i,m0�tܣa2�eip��of'�eh�'�kei"�lF�n�y�e�naoeKr
P'cnra�ct�';�i
si6sa�c
?unq�if'imwou
}t	��'
�ceis�at`dn`g�^'e
�pumaotic
�a	�sZ�ce��gn�ttncephalȮoƊeio,ac�tultramicroscopicsilicovolcanocon�i9'�7-acdeghiklmnoprstuvw�xZ�zc��th)�eX�iazJhko�uhont:1a�'e�im
s
dt	�'-aKb%GeD6fu�ik
skniof �vnifB�vB�ear�kno9'|s	�'c1�dghi
s�uast
f'x�aT9e�i�s��ioyr$�ior$�ea�ut��r9'�m�st�'��a
fei�r
sc"�a��s+}o_`raung?�itukaPwf'gknrs[t�nilotheX*rcst�aian�	aet�t	�'-beiG)l
s
yb�~dotl;�af-rso�q-la�n�d�r�e�qlA�n�e�o8�eio
'sn�'e>�i+qo
slbweio
yf'
d
'mr
sy�'-
syfaD�cSK'rs��e
no�l�'aeiklorstynrrd��sio�sms�t
�zete�r9'
ac	e	io�pgiraphA'�iy-Td�'-a�Dc
dmywn�1rswavŁxaulpSt�xic>'�a��i?vstS"aX�ac�nosteiy�'
d�m
s�we
n6r
s�'-�:hmmak��e�"iak`�e�i�'m
s@Xvyel�ih�')�eC.ibei�yur\�o;l_�n
rs��s
tc�e�aik�l�o#s�a
{s
�z7eaSi9'�a	�'aei�Bo�suycr�k�3d
d,n�rn��w
Na	$gt|x�aePi9'anna
9'i�ss�h�m�'�8-kn�swf�aa(in�iaru/�wsaerrg6�eoon�'ne
sabceghimnopstuvcmn��tryla
miodn�a�erito�yfe4sdr�i�o�yut�eahlryrb�$oaeremica�lom!xaei4�o
n�y�8csl(�stectroly�they0vrrlal�ortUymv}io�yotf'
stKa-�iaph�'�ei
sCc!
neyd�mra�o
lj"msobcputyl��eyana�tZr�aeoyr�'�@ai
s
c
{s
�zrphio
c��sn�ubuF�aioeousuian'nt%'t'sA�rmia�rlcle
�a��ole!�f�'ehlor
spti{�dàeoɧyP�snsito�y
cesph��aoiXd�d�iopyleaeitr�yccharidQ�em�io6y	ulo%�xy�rehoc�he��i6wnt�n�pnrsaturate
d�set|zhiny
jl�'aemop)s>�d�>ngrruuaania9'�nei�2y<�le�')sdnoera9'�l�'aeosd�nour�'�e
si|y7�a|i�m=Kn�s�ucd�egistye�h�irya�'rdrs�'e	@i
s}w�dr�<ei�o
s:�ae�irs
d,eY�a��e'on=Pb��acei/�o$�vhart�rfra�#caf��n|c$n�fica��lte�i�'�i�ht�'c8,d��efh��iln�pr)stx4wh�'e�irdr
s�'�sׅt�'-�ei
spo�o�'äei��rsi�bd|acaT�e-b�e�h;l�n>is++ol�e�i�'�T-�3ce��gilopsuO<o�'mUr
sWyob(oins"�j�hEa�icS vatep"�eaeiyf'Z�drs
d)�rD^t�en
g|s�'cs�5wy�oeeJ�dji�og�tlai7}o�cr�ti;lTss�tz
a	e	i�mqscefA=giknoprst�Ve�h�iu)�pi��rf
n��rer�qa�'Eei"l��p�s	$ye
r�Ws>'io�sfSi6yf'5AcgsraphEe/�i�y�su'
Mshoyri�y6aemti��si)�dmlLnchen'�s�'-acefD8hilmorsuaou-pr�(if-spa�fib'�e>�g�l4�mry�il
aey��lullis�'�6e�i
dnr
dt�'o
sus;lneo s�'<�aeh	@i
so��u�bo|a��c�e
n�oai�i
y�noig�sh�ian'te�a
9'bellaiyt�'�i
s>�ua�ei
syb�le�mgl�aueE�sa%�cehist�yf'
di�r
sEu6y
'd�ee
nt6rs6t�eir
s
novn�'a<�ei
scb1leif';l_n�r�$ss"t�m<�tei�u�'sseiRo@{d
s
n�o�<vb��ila�e
y�'-abcdefghilmnoprstuvwbcdefhimnopst�woxA'Aeloas�sailst�ZaV�tonia	�laoTJtcto��rn�ZteOrminismt
ac�omnpressionism,�td�duiollennialism�tdrernis	�m	�tt`�e��au�pfprfi�cer��a�0bar|�ir�\tod�Mutructural��ie��orypna,\umg>�l��aox�'�eY�aodlne'6d
sonial
_ids�ion��aaote�9i)d$sc
f'�st��o
dr�'i
so�trf'Ca�i�l
si��x�llradYuaouy�ss�p��mp�-n��c�uelnil=o�a8�idf�g�ue5lctio6nZua%�uL�nae��io�nr(�si�k7ltnr'opauasi�lddreirn
isUt0�m]Atfi��y7Bc��etb�eauads3-t�pprer;abi�taor�irt��uns�a-�eiiti?�o3Xvan|�d��eceript��'
sa�sraensfypua4�tlrate�ino�ae@|i�'
d�r
socB�a�yaom�'-abeD6fhilopstb��hpseollŁiyi��lourrurr9irAi'�r!�hb�gs��t�il�.eshrjseoll�|iZybimn�k�ctai;l�sao�lty�eimete�reo^ar�'�b�e!i�sl�oS deu�i�'
d3r
sau�tckf'rs�Xmro`�o*iour�2r$dhY�eo'aei��l|s	$ymgwato1Vm
dr�'eI�i
s�y
d�Lren
r}s*�e
g�cflnra3se*tA'f@s��eetnc�Ue��i�racd!3meif'
d
sy�')�a�ei
sng>'rsaa�ei�r
sngE�lrsert�iy�'�?-	^'deh�swWyer�'-Jeip
s
ypufCfu��flr�<l�'->�b�e�f�hilp
hshsunng�4h~eif t~�co~�i?�a�o�m
p�r�s�9t9'aV-ceiouyc�degik)�l�mnstn�vwxyticstaei<`ubli�,ly�lf'�i;l�n
s�'�d
s	
a	�ne	�i�dr�s�istidiuV�mor�'i
sa��nmuatic�sf'��a��se�U'Ma�rse>!i�'
d
�r
s��wQ'ra�cgkydha�'��e��i)s�'�seo�|dce��f irsth��ef'
dr
s�'
s9'�Dln�'��ei
seist��eei
s
dr�'b�f
so�[o-abcdefghijklmnopqrstv8w�yz
acdefi��oprstvwdmole��splifie=Krh6�uris/�t�0aeic�|fiAWmge)sclmxhl�oam�pect	ibiopry
�onen
=cttioAnhlt�Saoyqm7ei&os	n�ovist6�ae	isdn
=cCtlig6�hgm�nn	iplemen�vtalruc7ikkCaan�neio��fpa�irnvt|�e�iati�vscgess|�e	io�Lrra�
m��be'�oclo��r
ecehohioo�len�tKlr
�tv�ir5qi5qur��t@�aer
�eny�se`!iat|�e6�miosualizc4�aarSs	cdg��klmrsuh)�ei&m
y�en(e�gaopt�a�e5ilescen
_c6tricu�IllocatC�eeiwobp}Tl
�uli��fra�nsign�e	@i�sthoriszbele'�tnd�aaaeilouymn�Krsubrice��l�rt
�i6stion�'ae	@i
sdpsei
dn
s�c>�tt�'��iEo
ssB�e�*i?nops�sus�e;l_ni�ctaAocb6Dnte�if'
d;l�n
sf'eird;l�n�rs�t�n�o�3iud
�sOncs9dg�ilmnkNoni��tlo��e�PnpRucdfsejMi;p0�rit�jiiguraae	@idciousX�nr�t��s7caeiotweiEo�d)s��ntocfst6�vel�+assoμra��iu�rin1�ei	npti0t�germin�af�eicgl~satb~mt!3i�lei�o
n�ovV
e'�a�eYiEo
sest�e��i
s�be�cmina~nt>de8�im>nxip�e�OntZeirs�n��ov�eiste�irsrd=^naeilob'�c�t�'c�br
siIccr�#tt�'
su�yaem1�r
sn�c9<tg�xuraOeitiov�night�'�ij�r�~a�llnr
�uayb.nOoeiuV0ansi&l|ostori�ynac�ep�am0ansittialiC}servie�w��oudk�gic8�eia
n�lindergar"HtF
aioumtf'irsnari	$y�e�lera?~tad7e�i��d5saeio6syrj�stxi�Zkn(tScur�eEiil�ldnf'i
scta
l�tat�ePistr&�ue�,ns�uU�xr�'ei&�s��'
d
s8�ei^sdf$ln�biiGs�ts#�l�&aosqtum��ipf'rs|�tcprcup;a)i	kyerativU-edain�ei4�m
s
�'aelopr
suc�irykaZe�gaeitio�ove'"ls�Td�r
sx�ai~m
snde�i�s6d%Jrann6se�i{,lnsderaZntvZei
n	
o9eist�ntion�'�ae	@i
sess�e�ieT�rZeiZy�Pe�neiop�Want'e	@isc�ndgesse	@iworamu�mb�celscenca�t��ei�cu3�eaeod��ic!>fgוqorY�dist�eratio��nglAaabcehiO:lostuy'�gyotE�per�'��ai�s�ya�eln�'i;ssmt%';sh'�iX�oroolf'@e
sibpGa�ieit�'i
s�ov8e�1ialnrt}sect7ei
�os	nov�ctf'�-aei;l~m&n
�o
s�b��tm
nasen.TtvageiObtio�vn�'��is
�sY�tras�iu�An�Andei
dnr
s�ct�.'i�0sal"l
numI�'�yrf'-)�ei�mrugsY�uanc+gt��u3en8Yg7oorei�'-
d
scoo��k
n��sz
�af�eiiorwdgigitate�ior'7liei&of'rn
sesR�si��cmprB�aEe>!ipt��iB#upos�ei
n$gtm�imptyRoaeortIHzrxHDenr�ysx
=c�d"Gsti�
oi�mnt�c'e�s�a'isatu�rt�'�je�i&l
s0reiate1�ma�liey`�e�f;l�naeiilrl�e i
sen�c1�ticat�ei�iEolnly pa�`rta�ei
si�btLi
n�oO�ve'osw�'@�ei
s/�iuailz1iabcdegmnost�uvYxzMmpi�c��sil
�oe�Oik�'
dg�l9r
s
yf'�<eu�il
s8�e��i
yei�'
d2�f
s
d�rst�'�ef�h	@il
s3e��i
y�'g
sish�'�l_naei;ll�m=�no
p��r�u�ce
lrt7lv�_i�y�eIi f'
d�n�r
s�|vministeE�rrsh�uiX�ntiv�ee�igrenit��a5iEo>�udia�ur�lcHVgtei�'_`d��lst�s�op}GaMedl	>'ae>�im��o
swb!3ii�lakeo�iorZk[Fnrf'
fei"l$s�y�eti�y�e��szce	imostbai<o�'d9rs�']Ra
sn�'��e	@i
si
yhFe;l�ni]nh?~ea�ei�y�cteif'e;l�n�r}s�r�o
{svf�zelrrsrt�e
yei�'-
df
swfwightA'#?eCsinne�iX�right�'Q�e�i�sinn�9e!i�'-abcdfghjklmnoprstuvwxza{�cdhlrmeri/�cemocrG�a4�uq�iepub8lcti|ovcde�iaN�eilobti�llis�tt�iBei�novn�'aEes1l]�rg�notem�'a
ss�tscfe�iaelortu
'yp�ir��ydesur�a�edJ�e>�i	$ss�'aa�eiEo
non�'�SaZe�i
saii)�mmaa�ei
s	,vanguvlsul�'a
saeusti�Jnat�eiVo
nٮov
eiste6a|s/eor�'�ei
s3a
nraeiOb�c#t
d&m}tr
sf'1�di
sugai�ylf'y�i;l
s�eAocge�it�'i
s�o�sv�e�i�'Y.ae�ufilo
sun$eae8�i
d;l�nr
sss5eio
non�'a
slf'i;l
s�dsz8}a�eir�'�i&�sc-�ltien�c_t�',d-aeig�l
sb�i=l
deD8rr�'�eX�i
sigay�c�trummqand�e;l�n	�sns	,d�eienrnsi�ye#tteni4�raot�hs�e�iticf'a
st�eCi@oaem�'m
sae@|ib;�ti�ml'
d�rsss�'�ei
n�ov�e +iibitJ�eio
s
no=�vn�'�i
s"�rect�'�eiEo
s�l
n�o�vaoryP�of�iaeiUloypu*kcpt�sg'
prstome;�narian,tf'�i
sfn�xeir
"atoca�nUc
�lgniuesezei	nszg;aei
s�dr�'eiop
sunta-�dh��ae(i�aUu'Ansc��e�i�su�i''of'Ϙn
st�&aei
n�o��vtf'��ei;l�n
sV@n!�tl�Jg��a�Tego�tu�'�e�Nh	i
smuina	$ln�'c
seiMa�d~mr
s8clnf�'-�eo�ir
sreade	is(�readh_ei
s�'aehio1�prsuyg�nan@&td,ai�%s�zl0�nrl
s�aei
d�n�rf'�e;l�nt)i1�yaey�cst�.iey�'pBe9�i�slaE�cx�eMRinotq�u�oniaAot�eio~nrsmution�'a�eim
slLzti;l�s��tex�n
aei
ntion�'
�a�ei
sieot'�aior�yr�'iQqsaV
less�'�eceptiFo	
ov	�e{�hl��slkeaot�e��ig�au	*�acel�iopt
y�eirutt�oiBb��p�'cdlrsut�a�e�iEoyt8�ei
nsT�z	e	i��m�'pin|a��edmi�y0vc�e6a6eecrt�'�eiEo
s�u
nve;l�n�s�ei''o
sn�t�e
gahi�o~rgtlande^	i�'ƌc
se&JsticA'Fast|�uaehiorucg�wto6�n+�racgiorsUu�'�ns{et��eio
s
n��o�vr�'a
sCl�tef'3ersn�'�+a
sglmly:;cy��s!zt�e! io�4zt�'ae iFo
sn=tt9'i�ss]�mon]7rotar�iy�sst3�a�o6s	-cglnpstzindo�-
otist�a6sy�nD�a�'o
s��sxtlak�ns	�m�ttotypeic
n
�aoa
�iWo6l�nauct�ePiEo
sdsi&l�o�vberan
_c
td�s�e
'h;l�aeio
dnr
s1sac�d6e�~iake��lb�'�i�sdnsaaei
dn�r
scte�'�s�i;lc
g�ewCii�oon�'��a�ei
s9'cFkl�sateiׇu�o��v�;o�'�ee*l
si�y�6ema�i�l�.tac
P';sd��i��nrs|teɹi�'nr
sct�nei;lal9';l�sAHi�yi�Ge�tsi�acf' i��n/o^'aehiopsV-ty�'lmt�'�i
hser9'�i;s�ypuhologi
yt�cl�sdorsry	-cmnprs��wisntelle��ccien{�cti!zfob�dF	porph-�ito6sym�'�i-�o
sodi6sa�uando�mcien��cti�f
�saa�wf'l<o)stocmpty!�be%�lD�hh�rtaFlcria�s�te�lmqtclhf'eioar
s�'d
seli�a9-cac
n4st�}r�'�a_i
s�'-abcdgklmnpstaeest4�hd��ucnoSWtusticsalyst�z%0e+�i
aticcbaaibb��l\8oultMur�y(�ae��ninesmti'�a
jsiȌonguistu�ise�dotc�eriycs#�i	�seu^�rahth�'io
s?vy'�a�c�elo��gayrmaK�csico�aisS�slogiye�ioQ�u
s'0xt�cmaticFash9+iorerape;qi�y�Fumimo>�n��p��l9'aeoy^'|hrmiCtgriod�Ridsyact
yaX�ulglu�tlmem@a�i|yai�n)�a9'bcdefgiklmnprstz�':Fbeil
srst�a�i�yf'cen
�c
t
c�sics�'�i-ai;l	�s�n=t,�s�tzhMa)�e�.icek�ri�'aei
spunV)yrutf'�ei
s6ysYghdegs>�il'�eaSiynL�di�i�yK#ebrl|a)�oipt�lxgepof�'fJbYei
s
y�en�'�e
g
s�'ueg|hin
s7ei_/e	nl0�iaOncss�6aS6aei?�k'
dk��r
stso�'?�hin8r	��ac�eil��mpsvhritudeinol�u��ntr�z	>'-ber.iC�mo
sbr�d|i��o@'aackf'@s
d�r�t�yu�v�'�a�ei
sw
y�e��n�tab�ei�rP�teri	sz�a5�ei�ainmpc�'eu�ik
s
drf'nrsic7�kin�'s�oe�'cdgijkn�sl�t
yht	�'aabeil
yaodgKlb�w
d�o�r
s�eC0ni��n6aiulio�'s�ua6m>�rGlt�ei
nٮoit�'y�r
s|c�e�nsthMa	gei~m�gni=�vab9'�i�'�ei
s�ye�n�rTsei
d:�t�'aip
su�'
e
lZtl�'l
sa'�e]�geI�iy
dt�'�e�r
s�'�li�abcdegilprsuvelҭc�ieh]MlasMageiaWu6Th-b={e;l�n
r�sbr��ea�fr��sageitio�o�v��rf�Umnsti	kyc)�eat
�ino|a�e,m"�ta�i�yn�'i
s�csm'a�ss�'�eio
s�=e
n.�iloei�'d�r}s	nsrstf'ei
s8d9rei�'-
dfl
s�bu�le
y�s
n��v>'�e>!i
su�ei%�lu�aei
n�t�l|seiy�a�eiEo
sbe�'�a�ehistf'-aabc)�efi�k��op)�r&zt
yb�GpY�uiu�kt
�taik�le�aha�Ziu��l�e;l�ni3n6tllanimmi'of'�eiy��e�'-�cf[�cwhip�poot<�ei
sula�e
r�tf'-a��in�]orstڂzr�d3uyou��-m�r�te&�i�aW]eeif�sa)i	ky��cd�i�l�n��c�'e9
i
sy
d�er�'g�ei
s�'u�i|ozl\�e�Vi�c^tY�n
aegj0�kl|mnort%
uxemia�clLjmonephriti6c6sm�ah�i��yama'�e�[s|eo�nr�i�u1cnr/tgyankgrh%�eo@Veaeiorumrid�'
�aZe�i
sFg�'n
stxe>aUeh!�r
9'9e�i��dmti)�d;elmp�stxys!ztei6dsAaeterLli�yechni�ycs�a?vs�wt�ehi��o+}c!zvha+�iogor|a�en
��'!|i
s�'�eidseia�uazrz
-.abceimop
rtuwtipa�sF�t
'bdent:ia�lda :f�dt��aarP'-Ti
�ddnqgda�li|m�sL�rrya`)beimoracdfg��hikln-orstvyl�<ukf'e��i
s
d�r�'pr
s��laeiougnptenagxrg�t�lular�'Aiho�n`�eiuc�'
�a
sr6spenni�a�uclpve6s�p^�al�eion�'w�f
sN3talrti�tegi,a�ciauCl?vmpv�hpR�elcoei�yf'
d
s�tc
natei
n��o�fw�m�lnr
�ta_dew�i
yf'
dr
st%'iRss�h�Umcimo:mfti	ky)�ce�d�r
sa�i�yt��i�'?i
s1Ndgt<�o�ai
?uAcfz�lstzi	kyMa�c)�e0na+&e	ia�i�yt1�eio�v0na+&e	ia�krt�neiyl�'Dne	�ilsD�e-io��me
dr
s�'i$m�'ei�o
szr�t�'-bdJ�e�Efo�i'�l�msfmMh"l}kpirLn6zaNeta�fA@v%Jc
=l�'e�iEaU�hi-lmsynch�rinH�eoe��rrnarir�i+}yerf'�e>!i
s
y�'E	lsi��dabcelnrstu
'zlns�lb�ei
y�e;l_�nerc�'�ekjWoe$�racW�hhua
9'�n�snr�'7od�eils(ei
y�ek9'c�hlt�landH'oH?wf'�ei;l\On
s>lc�ud�thMa)�eig�linu)y��elov�uatdilc�l�'�ei
s
non�'��aei-�n
s�Qnzalco"�aei�'-
d	@i{r
sjum4�p-bc�deflnprst*vxz�dgblei>'
d�r
s�hk
f'-ef�il�nst�MfwiRtn
r�s�ei
s:bi��i
y)�a4eitlve�Drep�'R�p
si5�mstce�d��nf'ei;l�n
su
d
n�r�s
ns�m|t�d�s:�f�lk�pt�'e��i
s
nacein�oqste|y�'n
ste�TnC�lrs9'0euae�gnnial"lCs�i�y�'ei�o
suA's�ts��ecl#Ae�ilionw�fsN3tplei�'p�s�ei�eik�tn*�aq�d�'Zei
s
y�en�erglin)�gc
ero
stla<`i�aZNeiot|ei
�c�s�'z)�e�i�y�riklnr�st�nt�'�ei8�s�+k`�l�d�s��a�n�uaN�e
hi�'b
s=ti&llit�i��y3d�e
n'a�anWzierty
A'Ts
9'.abcdefghijmnoprstuG�vw;xyps.X@m.��av.��p9'abcdefgrhijklmn��op��qrstuvwyz
�fuabeiy��eil�'n
s�t0�ai�ce�'-
sroupSslai��sd!e|n;l�n	cehikoq
y�o�'c
dgғh�m�r
st"�w2�ao��u��o�$raem]Melt%'Wlanino
�fva�e;lnqsli;ls?vm�te
�g9'�s�'-e��hi
sand-pi�n
dt�'ei
sy
der�'ZeЩi
sn�eot*euet�'��b�s
f'ac�QdHXfi�ors��ur�'sco*pli�kfac�io.{sux8Ylnt'mcs8tvZeCiEoacelf'i;l
s�ds�zhci�'-abc�egilmnprstcotontr;:op�Vaelegpraphsyhhctiv8e�iiologi6y�c
�sahor�bemiAWcst�r6smmunicatio�neorQ9nni��oa�mphe'e0�i6s�ym
nW�osmunoasX&soto{�paob�nre��lia�ngi�yc�sJ�a�ae�ntEer
�i�yO6iuc&la�h!5c��qecs�se�dpce�iotQ�uVZaop�i�ynsitivz��e�i�a4�e�inƶderreiW
oliz�a�eon��tehorlegmp�wt6xraphf'SirsZyle�he�oraImpev}i�y��u�x9�a�m�s9'�Hl�st�i^'W�afti�]l�as
h�'eX�i
s
df�r�'ab8�eg�iCtln>�ostuw�'m
sufi�f�a�aeid�eG1i;l��n
yar'$o-to-ri�qcai�/g1m/�s��eor6m�tl�dklmn�npstko"�n�'��abc�e�:h>�ilmr
stw�e}uardd6se�lrZsoad
f'e��i�s�d�r�or��aay�'&�aD�m
senNt�'- b>�c#�d�efi�lm��psw
ycmslF�o�Zaha�1dfLaor4@ee
n
hr�salnk.�twe4pa/�tgei	
on�'6kg
s�-h�'a'�h{a'�ei
ns?�uh;l�neYflCpig��h)iyf'cir(o

	'abei**jmoprs9'dkSlnr��ya9'�Unris�hu�jamalMougei6yngA'�l
snctiouNsai�k�u,e2jfrP�e|oei
dHln|s9'Ma�'a7e	ir
sN�gn�r�ec8taka�.sod�'�,d
s�
j,a��dehMs|yacOk	cd}}efgksthio�')�eiX�nd�i�nru�''oD�r	�'a��ei'loyl9'|l9'�ene��slmCpi;lnrss
�z
ae	idrsess�'fet%'ur=Plei6�o
y�'
df�r
sinf�d'�en?�on8ptVe
gQ�aik?�e�'q�eil�n
sns9'|e�g�s6h6mei
y
d[Asao֣cm�'}qei
sf'ei
sng"l�s
f'aehipstu'cio7�tu
s�'
d�rse:�eael�'ite�'YsdEen�sf'-�e�i;l_n
s�8f,e
gaeo�iorp�vo
dl�rf'1�l
srt�'e
s�Zuoch�ecag�l;l=�nour
�i�sr�eAonW�ze8�i�o@brd2�f;l�n
r@�sa�chmptlgheo�ta.�gf'e;l=�n�rAJsu*.s�'h`b�e�i
s�u
ya�e�bfarian
9'ԊiRs�'-abcehil
stcat�6c�'touiV�l��ahe�t�'-�a
dp�r
sc��aa��yes
hrkeblf>�noi	ky�c)�e�'cn
sina�t�'a�ei
slf'�ei;lrs�Vs�t��zi
�f)pk�nae�Oil#�r
y3i�nei
yf'b
d�rs�trainf'ZerslNn�e��nc|l�mnousschi
y�e;l=�naeigei>'
dc�r	$sf'
dln#r
s�'	�e�il
s<�eing��s�'�ei+qosbc�hf�t�sworu�r��uro�#fnos	;e
ag�+lh)�e�i&m
f'-abehi"l�nvqblpiYnv�o?�n
r�s2}i:9r�'b7e	ilm�o
stT�a��ueKfiound�'HRvnhMTe�eiozr�'-b.�f
ssha3rNa�tila�df'_geime�nataz	$z9'i�am�ppW'a
s�'-abcdefghijklmnopqrstuvw0xyzadeflrsdla�pԱlelpec��tl�jo
cdlmnqrsvxhoZ'ei&ld�rs6y6c	niut�a7e+�is+�cectaa7e+�isbe>[ipao�r�~drge	idR�nshlasi!�sz
�e	ioy�a7e	i4�msafgltuct7e	imFosepynorce	idqm
�rsage	id4�msist�e	i4�mserZ-r"a�iyme+�ruipY�psec)ctaiblish<me	imen��t+�mal+�uapmina
�e	i�b		teloc�ra�irt�a7e	iso urm	aa|�iaeodԵile�aute	id	is�0iol��r�uW'bcdfgll�mnprstuwsor
b�pchqtelpst9a�e5`sima"�tf'J�a�eiuai��irs�i��a�eiEo
s
novn�'1Pa
sa�e�it!�ePi
f'-adeijmo
saIvyo�nbp��ijlR"t�e�iiEr6sr�'Ul&�s`�e;ln��e)�guVcs�eiI�sr�tV0p�u-i�mfiorS�mrest |aa�eg'ln�'omi�cre$gf'-�eil�m=�nprstJl"Gt%gs�tza	e	i,m%�tb
�tJ�i�yla	'ei">b$gto
yIctsY�tolitik
'/[soZyr�'ailys�zei6d�s�n	$sImeip
s+�e2jlori=�r��nai
s
�'-1e�&gimr
s�]wv�yi,a�ei�o
sae.�nstf'�ei�scosen
d8�sn�'a�e[i�l
sb!3ile
y=�neE8iumrsb4<l�t��sr1sa�e�itaeZc�]imV0pthori
{sxLzak~kaeioru�'l6r>�t��acxkl/�c�'l
s�ei
no�nu=�s��d��nrth��'�je�i
sio�rtQ|uq6lZ-k
ttT#l[�aeoathe6d�radcast�'#=ei
sfikr�stff'�Lei
sld
tx�aFei
se��if'
dr
si	ky
a�e
st
a�ei_g'a1crdehiklortuylnpstcili��utran1c
tEbf'�a�ei
st$eazei
sf'i1�p
stta��uli
{s�`zuN�rtf'X�i
sego�rdilnprs�pvaeibl�e
d�r
sebratioT�n.c�st�e;l=�nra�elg�it8*aiEo�ov=�eity�ytifiy�c<mes�'�ei
noO�vn�'a
s
al;rae��irrgteif'Ma
d
seY�r��crc)phisk~tdWfprti��v�eiren4�c�toׇccu�laei�lti�o�vloe�sn�ei
s��naiui�msl8msIiT�ns�ei�o&v+�dgilmnkNopruvnis�tza	e	ibni�yl�ca��eibnJ�i�l�ctlf'�ei�l
sloeg{cnn>rV|ui�asz��a�eibmpina�eipynhteinucda�ei
sOb�>tstsio��nJ�m
st3a�eiaeior
�uR/c2nlaeiIbht
dss�e�Yies:�s	cdfnqstvilMaEeia
ntd�ig�oit
=e\iigurura�e	i�btion'Kasaeoi�sct�e8�i
sit��e��rue
r*seiot3?ucraA|td�]ge
rlidaŁtirtKuuctGa�ei
�o
scb
novn�'��a
se
&naicmY�tinat�ei�n	
onu9a6eaeRRi|�ozzlnraIy�ei�tg�st�ei
sIb
n)i
�p	kyd�'-�aei
sbr�e>�n�s	�npr�eiel
ssera�eI�i
s	$yeiW%ouyant�cx�t�e�imin��adiescei
dAn
st�'ei&m
sstalli�asz�a�eiaiou8lng�l+u��fltin-eu1d�'xGr
s�m6smprsbe�1n'�ersY�vei
dZni ov1ye�ianct�eycl�ha��eX�i�'-�abcdefghil �mnorsuwyb��e�9fhllo��oV%ae�oa��d�8e"ia�e��ir?�uc�kG�eV�ial�Do�u�priffq�es�yei�yst�c�o
cdeflmpstvlJoarR�aC�e	@iicat�ei
n
�omMa�ei
sin�e�iiver�ei
sy��ploo=�ysitf'�e��i
si!germin	a�eielo,p�|e.�i�ora-�veiadf'Ze
sb�litoE�ra
drsvlf'Ze�iY�l
sect�eio
s
n3"ocpstover�eI�i
s�ylayZ'7e	isojMlrib �cut�e
'i`�oid8�si�y�9ne��c�s�eilnu6x?eq�d
ebnlt�'B�a
saeiV0f�Iws
w��s�]lhi�kyacnpeit�b
nio&vn�'i
ssmt'�isd�alicat�e �i
�a~iood�'
s!terd�irsa
bcdf	�klmnqsvx�eh��o	�'7ei
suHRv
y�enY�t�egrc�'ei
s�t�'ei
sc
d{rtZeirs�nHDobepao��r(�drge�ird=^nrshlasM�ioyZe�imrsentf'CsagltctZe�i�ymrs�{aistZe�i/-mrs�eA=ru�#iretablish_ge�i/-ma�=eiluat�e#�iapmin�a�e�iloa��i �r�'ae�,filorrsucs�eito�rhk~t\icrt\�i1PoMaer
s�en>�cVdt�'i
sal�i�l
aeigln=r�Ptu=r�eilR1mf'Ma�ei
s8aei
d~mxGr
s
nU�saeouteirdrs�nongarscxta�eio
s{n
novn�'Ka&l
s=�e�ig�rrampm6sS�h�'�ei"loyb4�ov�e�ilog�i
yR/a�fe��xclrZ�uus�ei<js�egmtf'aei
s��u�bti1Pos1�to&v<�n
nsm#t�8iaeioc�ib�mt�eio
s
n�o]vmreter�iyis	$yfe�nes�kzh�a)�e�imen;t<megera�nt�eiRo
n�oV�zeglnrstl	�e	�i�!l
s�leigen1c�td�'Ma�ei
sbnish�ei�miU�s
aei�'
dnr
si�kaei!0b=t	aegi�zn/oru!il�nrt��uei;l
d5m
s�a
n7�sdf'�eig�l	$sr�h�tJ:lnx�ce�tra++ct�e%4iof'3pma�i�cmnose�'n
s�'
st�'a�ei
s�l�ta�'|e�ln�'a
sli;ls*z�a1�e�mW't�Jera�i�y�b��n6�r=taeiodst
wsf'�ei
n�o�.vf'��f
stB�a�ei��nuw�n
pi
n�sttlra�ur=t>'
wi;l
sgiItaeinouybnnRsf'birsZe}ili'�tgZei
samr
t
dDis
aEeirquXqi�+udrataaC�e�i
crdgklmnsth�'msa�ntag΁an�'�ei
s
nt�ei
n0�o6i�o3labpgi�inursMa'�eiloement	ae	@i�sr�st�ae	isd9r�'�acd�ef[ghiostvao��rrporat�ei
n	"o/�e�eloatGa9eR[ir�"caAjor$?d
ntiali�asz�a�e	iculXaeptu`reV0cailutl�ma�eisti�ot]urani�cergrrat�e%oipvrW?eieZ-woduc�ei�teig{nstx�a�ei&m
sIb[g
ngo�brosl)aN�ue�hrat�ei
n$ko&veiouctf'�ei
s
n1(oevggrse�irdY�ricnei
dr
sn�UgS d�ei
s�{dven�ainE#ni6�oaeilou	kynb�iptux�y��sx�aei#?od�r
s��n
novn�'
�a&�s�eis�t�mt'�i
sφnae i�n=t�d�r
saIgnvrsn�ei
s6tMa�6eit�ei9l
sanc8t�e�i�y	acegnqstvb%�n�i�,l�'e
st��n
d}tf
svei1d�r
shi&�tonsu�'4@i
s�isf';l��n�eiZ}kquZiu1Paiadht
�e
irs+�a�ei�#eacdaa�ei
saZ-ktMa�ePikce�'abeitnoe�su�y	&dgikn��pr�stnififyfen�Hd�ei
s
aei
dz�ek.�q��r�'aei
sble
y=�ns
dCtch�'^2era'~nadV0lmsurei
d�ym
si)ya�eOb8lt6ei-?obe�Or>rgnstU�xra�tdeC�gi4fei�s�rscei
dZn
ssUiRl��n
st1saei
d4n	bdlnrtuvilip�sp�zneulat
�ei#=o	n0�on>desti��s��ztrant��cO�t�ei
ntovste�'4!fless;l��n�gef';l=�n
r;�sl	�nV~dageiOb�l?�eln|stipl)ii�yerat�eYiadef�'imnostuc�w�'ilmstussance�'�sq�dcenUc
t�a�ei�oonali�as*�le�i
srzf'�eV>i
svous�'�Oei�'regw��aeioeutn�i*ia�ei
sre̠w�aei�r�te�n�'Hi�Pmru�(vwmali+�s<jzncei
d5m�r
s�nsel-Xa�'K-
aei
s.�mnciantUig�ock~pr	�vcups	r�a)i	ky�udgi
aZe�i�sni$]szaEeitionf'Ka2i
sent�a�ei
s
�'aeh[�ilor
stucipr�stvyk1Ma�ei
s
dV0nr�'"aei�m
s;eat)nbt��imeiti�oriatei�iMai~m
saclnrt	�ltf'aZ^eX�i
sb>8il
eryha!gl
sei
d	�nt'CaJei
sctuSsoi�riti�o.<vortogr��a�+aaei<oycn�yeiMa
d~m
snt|�e�ix�a�ei
sntishe�eimen
�teird�nrs�n�ocwea�'�b
st�e�iׇof'-i?pl��prsa4�iri7Bz[ot�'aZ^ei�o
s�bgei��sZ-t�'
d�Kf
s
nt+�i1Poeiohpsen
dsib�oi�l��la|�resnta�ei
sbt�li�=ove�'�l�n
s�ei
n�ov�ec� emns^Szan�dt�'�e��i
s
aeiabcdgovchf'Ma	ge��f>!iateۜiessaa�eiuce#iti�o�6vramL+pm
s�aei
d9r��f(Ie�ii!�ol�eia
anbdglrtlicU�s�'a
sn=t�'i�ss�miat�e�i@on%�asei
n�ov
ecpha;�s��oae�i,�b=tf'8d
sueist�'a
ei
s
n�oe'�rst�mit
aeio�qnEa�Ve�i�aeouacgdaai
soriste��rute}i
d	@i
s��nacehinoptuyl
tMa[9eahir'HulC�ne	iZ'd&lsed`unI�sip
acelmnqrtwlrtMa�ei
sch�'�a)�eie	istx�a�eionf'Kaei
s	Bn4se��l�cbl"�a�eidt	is�efi~m
su*QluenC}cpvi��n;ae!;iCof'
d
sf'
staaiul�ei@n
saiouprk~p�n[lp�e�wf��fd�fglnsr�tzeiu
dn
s�c��ta�e
?ux�l�rnaei
sl=t:Fl�d��e9rienc8t�e�i	$y�'7e	iA�l�o
s�ytf'*�aei*�lEo
shb
nveEiU&ae	iaads"^ilnruwd�eiuvLet=�ei>3aeif'
d�nr
saZnt�e��iEoR1bd{cp�tti�ovK�nrce!i�'
d.�fl
se�s�e!i�n�seilo<�rcmlit�~f�''�a}qef1)i
su=�lgr�t<ha�eiot�iEomAmendenc8t�e6yndsei
s
d�n{r�eixob.<v��i�l�'aefi*Klor
su`y7f	�r'�tura�n�t
d�nril�iull=�n�e
y
ntvc�uh�eC.i*QekNcraei��btiG�o�vaei_`ouinei
s�t�dc�rngtk~hcnt#�ei
s
n�o.<vr�gc
ntur�eDid)iyZ'iblmprsm��sisr�tpst�'a�ei
s	�nei;pp�lfgrv:ae	id�&nsectGa�ei
s
n8�o<�ec��pi�tncthronisz
a
�e	@i
a
�e	@ihe"�s
aU�cehiorsuyiklr5ul�l�neif'
n
siat�eAiodf'aei
s�n�ta�dln	�sch�eiti�o.<vi3or�;ne��ac�enrte
=lunc8tla{eo%�urtCe6ye-�i
d"lsendotheGl��a�kiKo�u7nae i
d�e~m�r
s+�l�loru
k
le�stf'�e�i
schf'weiaeiou	kycin�eitMa�e_jio
s�&nsx�lmi0wstsY�ta[�n	�d	�t
abegKu
d
svagei!0b�lj�gf'a�cdefgrsvct�ei6s�n|o�v�
dE�lilrte�i'rd
sf'
s1�tex7e�iraed�a�eiss�e%4io�Ecpect�'Zeirs�n�o�virQVu!dn�i+�nrnf'aei
sbG�l
d�eg�ripl�bnpstiKfG�othltolr�so[�aak�eMaei��eI7hili��sf'a��dei�lo
su1�v9'clmciV�niou[d7;r$eaei�d�s��pa/milnrtl�a�ei
s5znf'aDne�i��l�r
stig�oon�'
hsg/�nuei�'
d4!fr
se�'�r
sbeist
e6srant	�t�eiaiS�o9'
dn
s>�c)�dKt�ef
ni4�y�vc<mef'
aeif'-
d;lr
sch��ab
n
oi�l)l�e�i
s~mY�telstvw�'aei
sIb6lei
d&mc�r
s�agei
no
tnSK'g�a�1i
sali��sz
�a!�eiaEei�olKf
nc;�kl%=atuv�'�e�i
stion�'1Pai
s,�szMaeC.i�eI�laeiorrU�s�Hd
mad��it�kvc�d�s��tnrdf'^gai
sr�uV�vdk�e�_i
saa�e�Wi
soRai�>ot�ae��ik�tf'{r
s|eknjav*!ia��eo�'�~lld�'��s[�o9'cd�^u
`s
�b9'aeiouydpamant�yhsodi�y[�c�e+�s�z	)�akei�mnostu�mn��ghol��dizs
?ulsogiyAWcJns�Dtu�Dsotri6sc�'�aCtim�'aV�i�eytioc�sf'a�k
s"�l�i�lanzU�ne4�io�'lsand�'e�t�'clp
sver�oog�ilasQ!tiry�uo�m��s�'dmnrs�trae(io's9']iۼd��pb!|io�uR�id�era"6dbmaa�rmV�stei�'
d�r�shMVm
abcdefglmnopstv��wy0?z�'ab��c?�eo
sld�reo�if�o
dn�rtr'�of;nslav�io�|m�1aceh�ikoW'$�n�~r�a�'-rd�r
s��p�'ae��fCilm��ntwrd�'�o��sln
rAJs�yi}�ee	@i@�a
yond�'sh%�iHeh�@o|�e
w�'HZaeio=Rrsry�dntryba&�cl�i	$s
yrenI7v#�h�'c��thetf'�ei
s:Ftaadegi
sa�eil��o#�nL�ei�'arsU(bu�'g�ls=�hharfe�iew�i
y�'-
d��f�p
s��pt)�ic[nul'�ei�of_5g|lmsensta]Mha�nlin�gL1efl�t	�'-��aZe�iN�lr
sraufff'�fafZfe[i�'.-
d�m�r
s
�'a*�eghimo
s�'to�\ne�irstf'-aae/�fi;lH'm��n�os�]wya-"chq�m	
otwn�gande�d
�rh�iingLe
d�nopr�s*Ou
ns�h��m�tM�i-ehdi;lTn+�fy�tar2@oʨblrBueht�'o�s�ueiWk�l
d
sry	�'bBe�ig�l1�m
suaHu�'��ta>�deg�ksld�dg(h�'-abe�g�Wil�mMostwf�Gpen�c��raoc��r4lnei�>a�t)pkD�nide�'{rs�=oo�rei�'r�st�d�'e�io
swuf'-a��ceO:lopst�`oroVsa3r;ln
r�sei
s
d�s�sfn��se>!ilei
y�'
d
st�e��n"a"�tc�i;ceikoLvqsf'
n�r
sbV@n,�i&l�'-�ei&l
s
y��n�e;ln�e
glr"�tu(�tgime}noO8lac�e-Xtuz�'�lh�ial�'i;l
ss1�z
�e	i?vm*�t�'l�i
yaei�JuW'l�s�'	�e	�i<�l�r
s
d
nr
st
�'rabifiils�tvĞa3�eg!on�ae9'U�diUdiv�e�'e>!i
senraXen'�sg\taCd�l4�5L�i'azs�:�'5�sa��rh�fabcde�0fghijklmnopqrstuvwxyzcdmnrs��h�'-b�h
_ik&lm�erswbh#�t��a^�o^el6zoil͍la	�p׉h��i�t"�aor}tkt;hc}eX�i
sf'o
s�kf'eiw�k
sngf'"lstf'eV>i
s�'bei�<los|tuyW'eiry
d�nxGrren9'
g�s�'
drs�st�'raro��s6opier.rcntha$�u�'�7erg�sh9]sD?vua3sct �a�'i
sc�ss�zFa	$s�os��tW'rnchkoa��de9'm��b�'f�lhLs�'-a~,befhilmWnsHRvw
hybcot>�tlimr�bbwil�.lW]a
dfrtey�l�'i
s
y>e�'��ei�r
sa.�i�o��lam.fpen
rB~s=�egA'Ѫ-��h@�a5eeb�l �l�5eo�ovc�'deg6iO:nor
s��wenbe�8r�n�o�@re<�rlfi$cgqro�u�u�'b|gn
s�FoNutg8�eaeutxyilrrti�'Ze�in$�somicyAeis*Qh�m
lsterc}ei
s&0a3e|uaeflo�pvy%�ind�'��o�'-
s|xpla��yW'e�'�d
I�'-abeimo
sb�	co��as�fnpyuL}v�n��a
dr�s�'-bscsoas"Btka�XtQalad��e�ikaZ�tcnk�ei
sn�@gW'g�s-rs�#p2s�jo�'S vd=�eT	a-p�o^'ae}f_xi�?mO:ne*psuW'vin
�'��cp�eiostrya�c9esz'�nsae��i$�ttioK�nXdXs;1a;9e��i�'kv9'rhic�'
�ai
ssz
�e	i�m�t�'yor;s�5e&.l�'adgnstW'�lYnra�e�oomt�irytGLage�dfikmO:nst�'-e[il
s �tga9�rRGe8ibn�oֳe�'ei
srd�r�e�n	�'-eD6fim
s
y �m@d�ret�en��ergeael�tve$?l
�'-ei`)kls�Ywmean-�nsH�d�res�ts�}n�it6yoc�ke�iry	�'�a
dmrso�wya
�k�Tn �'
sb�a}�iuefoٙrf�eW�k5(qsrych'ga
acei�klst��w
y�'E�clmnr&0ei�yrenL�d@�o.�ni�y�erooremj�m�'-abcD?dlmn
stvwc5r;mt�Qon&t7�un9'�eUaeurl5tq�y�d.{s'�r@�alra�eaor�i��ynW�dړtW'abdtzlli�xa�4eh'�aw�Ietra	;ee��a��ao^o�_rcF�e;lnruci�'ei
s
dMRs�y9'eiln��tdd*aW'H5nWLyf�a�eooro�upo��v
f'-a�c�eghio
stu�Eg'r
stvi	$y��a�e�a�ei9o
n�ovato$�r"\u�'eksrj�hc�thAjifs��ese�rg�irtrav�'
s[uieinw
dnr�e;l=�n'Jd�sg5eeiler
9'�^snd�ai�lTnt�iy�yab�eglmnrstrx��u)�l8�ehif'-)�acehi;lnsahnd�T-r�eac�s
d
n
r�sou��s
n\Ise6|c�smIhet1ta\�ndf'-�aaeh�ei;l��n
s]�u.�w��ast3uhou��lhe-�c	�dl#r�s"�a
se�oa$�dCk�a�eist}�e�aa�ei
sf'eirs�'
di�r
snegi�';lX�n
ss�zC�e	@i6m�tei9'
d)�r
s	�'a[bdeil
sn
W'�siy��e;l��nf'8�i�'
dl �n�r�'	�e	�il
sW'<�e	�ingf'-bgaW]eion��gw�c�ab�i|yC|o~�u�y�'a�cXsl�'i;l
s�t{s��e

�gL�i
m
�o$s
�.�@a
�cf;i
�mp
�svsrc
a
bp�.�;ef
�l;mn'abcdefgHhiklmnprst$�u�h��kpt �eo{r
f'-ab�dei��l"o
r
s��ya-d2uit5jy�i�oei1l
dr�'-imn
s
ystam��p�e+�s�z#�aeck�'�<ei
s��nsh�'�ei
y�'l<�ns��l�ccrjd��erknCo�u�'q�shktxbe�i�d6s�'Ze�imsuNas
f'feio{Endei_�moyW'eiX�o
yr�'g�l
s�e��n;l��n
r�smen4�tlrfCp�'�aI�'
d/�f
sfto&0u�'�ei�l
sa
nn�'Rl
s�'bgZ�r
sy�.'eidrr�e;l=�neq�rnrz�'a�e
gi'o
sU(b�te? ye>�i�'��b
dm�r
s�&a�'abeHXfimopsniaW'�n�aluei_/eV@n�:s�l{nna�nt�ei
n$ko�vaei�y��g
r�serstru�'	�e	�im�song)�er�'<�e	�im�songBe�'e�@l
s�ulstilt�?s�ff'-acd�e�g
�i**ln�qo
st"�w�yd
�iotY�uo�wf!�u-{fthe-m�Iihrou\Ig�cbmrS�w�io��uo�r�low]Anaaeiy�lr�'�T-�Qs�eX�nm6e�'i
s
y�emae;�iptn�>y�e$?rE�e�3uali�l�ehkst
�' -d)�ew�i_�m�w
yE	id�'�i
s9'e�ilromdl�t=Pe�';�b�eil(opZ�r
s
hyc�e��nf'8�ay�i
sge�Wiroof�e!irs	�'aghil
stb|na�g��e�'�ae�i*Klrjnrfgord�'iu?�ln �o@�a�ee�Oi
y
d�ra;ynda�e�'(.n;sadelun�'a,�iM�berr�'��dss�>tk}�y
9'-.abcdefghijklmnopqrstuvwyzv�4hp.c.��aabcdefghiklmnprstuvwxyrbr�1tvn'i*0nedYdab)�eilordu�iat�hi5�c|knn'raree�'f
s�Fitf'��a*ersg�aeb�iD�'��-d�stoQo'L-acehkrssja�?wh|oari�dnf'
erdn:oers
am�t�'cJef,f>�i
sl}�oaeio
?ulment�'�aro
s=�dflsic8�ei�a
neg�e'it�a�i�ybisosqIcli
aanctTn
C�adehi;l�no|rLa�yeluei�'b
dr
sa�gc�g'�i�s�y��c9'rs3ue%�s'�smasoc��h&�saefr#�v|�i
f'gk;l=�n
rAJst*Kwua-	ree�9p�iySK'��ld�r	f'aegi,o
su�'cMn
si+qo�et�'b;l�nrr��sr^Ku�e�Oi
y�ntta�lriGua�ra*�ea�ira�'rn��b
d�glnzp��t
�'bB�c�e.wfi�op
soarr�tdf'eX�i
sr>'@sde�rngf'-
sbmsv�laJ�hes5?sl�=at�'-�ehl
sdtenT�iropeQ�zi
y�e&k=�nH5aehi|s>'rsa9'Pleera�'�'ae��firklmostuv�/w��yza�obcdmrrs��zm�'Ze�irsi6�o7�t�'6i|o
s�<a�=i)i�y�'armrsb>8i��lnoo�lmc��glmpr�wlerO�ka'�da�en�'shi	$peo�Erp1loom�'rscensv�8ync҈t�eyaO�eI7g�iW'�s�b|ha�';r'at�eioXquye�'
d
sw�e�Fi=�n�'*baion�'e
sl)�lmn�ore�o�'i
s�ai�f	'-�a��bceil�n6opsw
yacm']pswnd-pe��p�a7Kear�qs7�sproa�rtel�l
dr�s/�'s�emn\Isbo�ece[Agf's	$se�y�s�yet��er�[e�4ha�7oter
f'b�Iktri�"o.taN�ei;rtior/�i
yaeioU(bdgrtor�'��aeM�ia/�nei�'Ma
dr
si_�oon�'iss6mt�s�'rd�r
s�f
n�'ersb��u'abeimopsus�_5enr�!t9'raif�k�r�aM2t
?u�a=�nrsryzd�aa�irymi\scas7�v9�y3a�e�alr�su�e��iWaoD�un�'iCterl�'#sa[9i'a@�bcdefghikst;a�s'nt�ta;s/�dhtq�e|oiu4�fm�o�toni�yeous;l_n1Pa�m�'abcefhil�moprsuw
hyl�'Y�l
swo:�oalo�4ug�n
ar�'g
s�eia�\s�xas��t
dr�'s9'�ol�i�y��o#�uW'�ene
g9�isy�sotf'rsS tt�vai�Hp�p#train�gtomn�rsW]k��e�(i;l=�n
r�sorrdi=bz
9'-Hefi�rrsu9�fro�iov�einae;l�nBFoedPrtai�yr	ti
yHDaum
'rse	sz	a	'eia9'H�rek�or��irit�'i�cW�saF>eio�' �n��yagW'��l�s		'ilprsF�wen1c�s
tRGe>�i�neh�iG3o
yi|oophy6ptuT>c
acdgikmnopst:u
�'cgrhjE�nst*wM4eobysev�oo/�g|v*�aoi�mpd�o6sha��gi��on�e �iae�ossro�uf'unrs�'n
s?iryatia�n1i�o>�n�ye\d:�'apar�aio�r9'ri�aubehkqs�'a^2en'yf'Ze�irsatc�ohewuatc�h	f'a_gei�o�yf�nr)�a�eUln�erg
9'aceiorsuyn�y�'icsb�zall
6y9eE�mytIHh
d�el
sli}Ttn�a�enrs�'
gsf�w
y�ei$Zc,�szfai��yctiմo$�awerB�ia��puma
�sradnt�ei
no��n��a�'a��ilia�'ar�'i
sa
cs�iZbcdegkrlnrste�Gi
y�'rdCtpv�r
s8�irkr�aSlhHRv|�adte �rrs9'WLoerf'Jei
s3 iopo"�d�a�-sef'Ze�irrsv�naeiov,�bgnei'
d;l��nr��ss�i�yn�taf'hrs'sf'
dl�r
s�omno<bgf'	$srBu'�ssnruya�.r�'	�ei�s.(yen�rs�t�ye�gr�'<�ei�sD�yenirsit�We�gw�'�a
siye
d�rs
�t
f'
i�'-bd�e<fѰhilCLmnp
st�_yh�0p��oo��uo�nuG\s|�i|�os�-iXt��e7ho�'�ehioMTtMo[0fnp�'�sryhon�e�if'-e>�i�r
s$
sr'PTsn'ba8q'a��cehilorsuyb[9dfglmnprtv�'bo�ilr
sY�a�e�i
ya{�n�"ofold�'�i
s^Sgrsa
de�ilp
y�'�b#r/�w�'Ga
d�nl&n{r
sioyΫpwk�a�'ei
s
d�l�r�'amp
snpd��eif'�we�irsf'd��nstail�',imq�o
s�on
?uaSZv�iei;l=�nrs
yrdrr�s@�e;ln=�ergeu�'gCso}vr��ala�'
e
ar�'abcefgilp1�r
s��t�v
y�bmoM�uoroKfuGe�if'c
dmr
s ronger�'i
s�'�e�irs��i�ef;l�!ni	kyce�eat\�iaetiH5t]�nt�'�t�'ei
s
dY�rf'ho�stD�e�ilog�[i�yei�y
drf'b�egq�isr��a|uhc�oieUliner�nnpayAe%�iotri�oD�sȰgpe��g�'�eig�l
st)�eirc'�ais<	seg'd�s.aeilmnoruwde-Xfenfre��ufe-Xf�adhlmnr/aulei�'
d#r
seraz6am�lau�ei'st
ai9-c�zekcta3dE�za*!clnszpare?�llHe>�i�9dm�t�'a
s�Rtof'-3�ip
saf�Ifhreni�acf'�a
seiom�psie�li�,nr!eq�tc�skI�'aio��ultzf'G1iry$?d�tf'feoze�ird3rrsaeioW�bpu!p�_ziFdtIHz��ozf'fezlef'rse��fhlopt��na�&rars�'l&�sFvi
ytic
�a�/isl�n�'-b�=cd�efg�h�i��km_^r
stw��yEZa�Mdil"Gtnsg|pea��vao��g�o�ya	y��eirl�'�li
sa��irs
_tmf'��irster�'�e�iUl
sea/�co��renhaI7ut��kaiov�te
�fL�dedHeinZgblmsgqty$=e_�mq�trzap�ac�n5�es-Xt�'b_ge�iooS mlHek�5iaei�'�br
stzz�'kop�feknegFgop��fiptFz�<pnI7g|n
-aelmn�o:6ps`�ftic�an�ctio*�fZ�slogirys-TtW�li7�ttiO�glla�'rst�e��iso&�rerio02d&JstPnh
�i
flmnoprtuwff'eil
sa��wdif'�e@|i
sos!i
�bc�e}tep�t�'�ef,fi
s�`eioFlbceinp��sku�0h	�'��b[�c
d�*kl�r
sRGeinGUe�'e4!fi
sio�u�'.�n�s	�'K-c �ielsth�'��eimrsw6a6eoOmD�mY[w�'isy�e�Rsdf�aW'nrtdrx�ec}e'�gmYi
s�'��e�Hi�m
sf'lrs'�ei
ss�aeioubgmC�nptwblei�'
d�r�s�'-g
s e7e��i;�l
y�`b��j1�m
s	>'aKbgehip
syea'�p�e��ne�Oi
yatPrchf'��cwei��p
y�e;ln=�e�glnf'ze�Di
s
yi
y�e=�naewmf'e�i
s�'c#dnrsh�'	gei
y	�'x�aJeTf>�ipsw"�l�3hritEeZ�i	�'b��dJ�ei
s�3w
yall
f'T9e�s�enae
gabmpv[+b8Hab��e	iFnlgeC.i�'m
ps�mah�a�'prst�s�'�eio
suwri6au5Rmr
�a�eritEel
i�eZdf3glotuul�a�ol�'�a7Ob�ei
so�wgyem�a
?unge�irybfgmnptf'b
sei
y@Re
nf�'ti
s
y&0g'��-hmp
salrfA@vaZe�ige	i�'d
sZe�irstry'ichf'�ei0�ye
n6rs
6t>�luloks*Ouin��ei�yeX�s^z�i
bdflmnprtz|�a�'a1�d
sms�off'�eiN�l
slp�'e�i
s
dxGrkyt�eiEo
dr
sur
�aei�'
ds��q�'�?bC�mrsthor�ppe��rfrv�'�\i
yiy�el�i�of'C.ii	$ye;lrrsrtc�eth�elei�'b
d
su*tzG1iry=�lth8�eiͯa
n�i
�k��r�'abcde�fgi�^jlmnopqrstuvwxy�'-bcfghlmnpqrst�vwcg#�h��i�Er�e��iord2ar|g&noX�oo.4aa\lF�og�rrEeЩi�9aY�oJr3�uo��r�'�a�eisk	"i�'ae@�fP�ilosu
yn�'"lshi�p
d�n�r�enuke�y��nČtV�s�'�	c|zl�oua�kf'c�e��i?8shf'-�a)�eia�ln��gtchiofLeoc��d(�kn�'a�e��i
s�bl�i;l	�'b�eX�i;�mo
sf�te!�l&�n�ua�keo3�l3�rt�ye
�rrthi
y=�nao��u��cs<�trrheoZaLliea�i'.aelor�sturye�sry
�m�nte�uds(IeisiFo��un*�ad
f'-ae4hi;l��m
s#�b�cd�Kh�reMgri	$y>e;l�ne�ctf'a�e0Mi;lo
sriya�e
l)�t�'s<Bhr6s�y�'aio
sri�y�a�eon�'a�ei
slf'i�l
s�ds+�zr�'3a7e�"i
slrari�l�fs�t
�zx�ade8�ii��s
d;lJ�mX�n
r��sa�deginu�nte�i
d;l=�nrr��s��n�re�\i�w
y�'��fmso�omtent�'a
s;r�tio,n�$uc'l�meiti
dr�o0vf'-bd�tg�Wi�skd#lm
n�Fprsts@�taZ�w}De�'-�kbceiG�lp
s
y��bcepC�vt�oa~Itota$
t�Faa
dc�rg�t�e��nw�o�e�il
s?�i
y�'sucGka�qwh|afmoruau?lent�'a�ei
sl�t,Xve9'gacbt�ei
nFove
i�~nf'
d�9i
sdgknsz'�e}�eneiur�'Ii�sCyor�'��a3i
s6ye]�fi�'rd�rrs	
imKaY�ioglmramph�'Ee
�i
s�yogi�yc�s�a�eaa	'eiuaW]b9def�ijkl �mtv<�wzssCicnut	�a�ei��mTnEo@r
s
nIrov�e�iaeio�'�:t�d�t
?ug�7lraphEe?vyc�i�uf'-�elbhi9l�nrs6yacdefghijklmoprstwbdnpswcyas"8uor5b	pd��h��ral�Syp;moroAWvseumr�bti	
ovrR�a7ea�rGaelorns\@to��re��o�_amnr�Kmfgst��eidenctratulat	ig�ociious�l0�nsten�ct�|ara3odiU�cr��eitic3a׾ieiocflnpste�i	pei�aR�n>]uAWi!�yr��etruct7eis	n	
overmi�nsci� pu�bfmsvx!�f�pte�eU�iapmi�vnlra%[n>[eeiu"&ena!�nlfil!�l4�mloorifi�vcvern	i4�maete5r3lmnEZampo�vlorr5s�dtoc{vdftvu5clg�fel�{ier�0eo�hlustifVki!�ynow3lo"&a�cv naotiԵvpinioԵnaeiorr�Zorp��elrsV:ltra!�isess7e	ieoser�vvcp�Ktla�
ia;:e�}g��aeic�Pfglsvo"&rt�aulat+�ig�o�dipte4�crain7etV�eghteou�Tsaetuctrifi:cisf�Ma5i~XeU�lrvic	n�yfprsficU�ip�or*�et��aaop"u!�pr�ti<3o�l"&n�e�ns=�hidge�'�sa�}m*!u��if'-aeio
s�bos�f�uU(bf�2i�=r�c
n�sftuape��i�')d)s�z�aed
s�Eg�Xnabeioptnp�>rstic
�a�i	$sh�3oio4�l�Olil�n(�soltogJliyic�7ispPxa�'-abcdefglmnopqrstvwyacdfilmoprstvw�Vynunt�ut,\oloassns��cervveo��uts�acGuumenxtilnalA'iss�qte*[u��xndfv�\e��ia*[leitIhqt!�ueraUctoIdnt�hfpfit�c�Leerrma�Pe�4neo��cf�Hee�itire6d�mkoi�l�
m);l�oraz�iow��eee�knq-run��u4�utom��asore2�vior��clnd��suct!iEoaerkTn��amtisemiqu�?aa�[c�Preioniunal�'P�i�sPdrl�~oX�eˎuaeo3njtal�l6snt�haio�lr�Kt�'�vi
s�yPvf:�lc��fl�stIv�hogiycJnsKaicFvi	$serrme�aeiop�c�<vfrs��euai��v��nae3`u"m6wt7vikowi�Ql�1l�6e�ei�or�cj�saobinsparH�e�YpoIcwt�eeek�klea�rlK�ii��lrsternJ�asit&�reKxY.adeginostUrt�e��o-H5aEei�qo
s�`o�RcgsaI�l"�cMh!�lor�'i
sti�yeCsa��e�'cherl�irf'�ac�irsaeiouteion�'a
sli;lsz
�e	i,m�ft�'
d6i9l
sb
�l
nt��iNli$]svNze�if';lnrsF�er�'i
s
yT�aUlmn�do�Kea6�orli;ls�t5\z5^a�trof�uei�rn>�cti3a'o%�emnent�'a
sli;ls�tz�a+&e	i,m�t��a2�eiэe�u	
ah�iopstu�lrabt�i�,leiEof'
d;l=�n
s
n�o�s&vardi9'Ycy�'seltsA+fe!ia�'aeiu'6l�tMmn�tnat�nclae�i6s��eHlmiZarc�la�mg��eint�'pslc{�ther��r
�aeZ�i�'id�s.F�quaeioci`o�tlns�'*a
sctLNe+�iialsi;lt�eraybt�e�i
�ont�'Ze)n
su0r�iH�y'abefgilmopr�uv'f�bgpWLi
aeh�'i
s�cm�'�i�snrr�sadegi�''�dipit�io�y;lTn
r�sH3et�iy�C'�'� d
sei�'�a|i	'ac!efgn6�olf'i;l
ssf�z
a
�e	i6m�tultu`!r�'u�f
s�0rqIion�',i
sglnpt�ur��oog�i�ye��gors��iev�~aoW�yn�e�iein|st�'i
sngtUiai9'ntei
d�[e�aeiof'
dr
s�'[_i
s�yc^e�l>�ntei�'a
d�m
s�t�wb,�i�}lEo2}uf'm
se#ochanbpi�aqs��tuicenten5�nil�o�'-a��brhi�ostu�QaY�u��c6e6lPvfPvgcqr��emu�'Maeyil
s�d�e�re�if'
d~m�r
s5jr&0sae��iIrsto8pnr�'Nf�!ho
staWkehNiyenf'w�frsW@tf'Ul
sf'N-w�fae�irn
s�u�bl#�nf';l�t
d;lTn
r�saeX�i
n
s1g�r
dylr�')�a
sf'-ace�fig�loptuv
y�ulsta�hrge��nsi��menxt
dnr
snieabuZ'�c6s�e;l�!n�slogi�yQc�sa�o��raeioun|s�t�r�tln�ld)�neciW�mple	id�taXIpl�iti;lJ>s�t*zi$rcf^tmhellbYe<�oeC�rorzand�i0vomt�lY.
ace�hilo�prtuybcdfg�hklmnopr�stuvwG�ybi
y�e;l[nk�'�eil
sei�'
dr
s�tf'eiors
y�'
d�l
s�e;ln=�e�gw
�'-b�egil
s
ybo!�xo��xrJia�e�n��a�eeFft�'eis
dsbu��rbu��r�'g
s�e�i
y|aeiu
y
f'-ad
n�]o��rs]�u"o3u,�bo�2wpeare�Di�'��a�e;ln=�e�ghac�Ihe�ilort6y�'6yo�twf'~xe;l=�n
s%m�'abeimpy�r
sP7un�'i
s�cs�iz1�e
mt
�i6sloeif'
d	$sli�\c�'
df9l
sa/�uH1cJei!pyo�o�'|adregknt[_ibo
jyhai'�ei
ss�'�a7e
s|a�o�iuyn��g�'�t�+lei�'
dl{r
s
\weO�i
yksnr
g��s	a�deik��l�op
'rm\t
�'��-Mac
dh�r
s�nwrop�ZprsoldEe��i'aKf
n|a�sf'rh�'Ze�is5Fk�'ei;l=�ns�'rdnO�r�s4fei
s�*e�ns�hhooX�tterf'-�e ip
s�proorfln�'raei�uf'
d
n�r
s�aV@n�'q�a>�l{mn�'|a:�eha�irF6a	F'-abdefiIHkl�mn*�oprrstvw(a�zcdfgme�or�vazgrio4a6d32an'�fI�rtN�vh�'!�e>�i
saeo�'��nne :ly�g�'Y�d
s_�hnprt�'|al�is
y
�'-�dfhi�lsw�dol�de��rqshi�kae�e��na��lf'�ei�l=�n
s�'7e[il}Br
si
kfield�'=6ekl�'_`d&�h�sa�'�hrsa3bdf �iltv�go/8rn�'<i�'-��fA�lHZoJl�1m>�r
�'aefhi
srycf'k
s�eDi
drrryi1rsh�'��ear�b�e
n��ae�o��rE�e[ia�>ynd�is�o�ahp��serd�'�
ei
saerrd�t�Trab�dWei��lmprw�ynt6a�o�ero�]o�'d�f�a,�e�\ai��y�'w�e�iOolandar|tdnad�zZe�i�nrs'abefijklmnprtvi7Ftts	$ubol�e
dl
rAJsd�'�ei
hstf'�eiîl
s
y�e;l��nta�e1kiazh�>uo}�klCof'e>�iorsyrdl��an�g-shall��iy
�e�i�'m
se9
i)y
d6�r�'-bv�dgeginst
ybg��pon��et�uo��n>�lua�r�e��n�eiŃy_ge
npli�jno�'ipssm��t9'ps�'-blmopsw[�ybfrre�]o�]a�%e`�iorua��rafr�oilX�d��eE�oae=Kn�tn'�t�w�ae[iha&pr�eaiq�a�e:[kO:lrtf'�eDi
s�'-�e�Pf[ig�lst�)wryftr��oaRilee_�vda
��'-fhl�Isto�wX�face�deoad�slu(eoa��dc�ei�Iye�^n�Irs�Itf'raersrf'J�e i
s
yei,�facdeg�dj&noprstuvwl��t�'�e�%h
i
skf'U&ae�iO:l��p
sdi	$y�e;l��n	�'bhilms�t��ioxZeo�r#�a�eaƒkth>�tun�'0�a
s�efi
k
st~plf'�u-aaEei�]o
sngf'-
sb�ic��j�"rs�or�aQ�e��t
�'-afhklmp
stw�ub(fgswi�r�hoi��o6nholidcirtt`�e
ioi�noeeƒpifte[i
se[if'
d�rrsalk��'orX�krneX�int�'b
d��hlhyswaQi+�a�it�a�e��or�'-�a��bcefJfhil��nswB�ycƀhl�"rstq�whiakCnrcu4�iis5v��t;'itao�femr�qpmAe�iF�ah�orua�{n�ut��'
st�"i
dl�n
r�saoFind�'Ze�lG�r:>e
nsi
yst
e�i�s�d�eib�t��g��ahto:�nakovict�hckh�'-go
s�t"pun�'�,n
s�svll�td��'e�nr�'-�ei
sh��l@�ieif'
dl
s
�'��b	�eD6f��h	�il
swte	�i	'-bc�degijm
n�qop_^rs;�t
y�`opil�re�ra��aiozf'Uzat��'ue�9i$sa>�s
dr�'-�eip
s
ybN1aroof
�e�i��i��r�e;ln��e�gum�pa�en�'Rsil��e��atops.paeiou9{npn�ed|kvw�'��d
sejOp�'d�is�e;l��nbuW�re*f�klmnv��kl�ei��n
s
yp�'e
i
srddrek�'|r
sf'-a&e i
swrap��p6sObmgei$dnl
n
sp-	uvs��he\mtbgn�'b��l
s1Pel�i
yf'1�g
sk�e_icdflnU�stkf'Ze�iڂsderf'�ei
syfleif'-=�b
d�r
s�}b1�n
s�t-deLo
st��d��eof�ufow=`yeilr�'b�ei�l
su�*gei�'8�c
d
sf'�eil��nso
yc
\kte��r'abcdefghklmnoprstvxzs�m�'^�eW'eilylSZrnKilauncx�teyW]e>�il�'lrsin�ecikrs6^aZe�iliryan$�'�a�s
-beil
dno_^rrsbl!�pene7@f��e=ia3�eY�y
dK�n
r�s"�e
nsei
y�'-
s@�b�cq�f�en�e�gf'rsu	�'deiN�lr�mO:n�shar��t�'-abc4d]cklmpOArstw'3abcd	
ostka�e�Oyaha5?pY�or<	u7`a�lF�ptwr��eoke�"i�'	�d	�sihbp�Va�rrM mEa[�ourn	$ss1aiocg4@naed�nn�'fUia hG^ptwd��der�poke
i
	'�d�sih�p�Yrailr�y�kl��'$sQ�d�>ns>�n�Godgmnr}(s>�venbu�{r�efr9�i͘e�a]�n��pra��'�ste��i
sghimnrjlurap�^hf'j�ei
st	�'-eV>ilrsw)lreade	itWdrei
yss�l&n�enesseZaeeX�i�roA�r�ls[(m[9a);ogu
�'a��beiop
sw��glt�'-Dneil�m
sto->bn	�n
{s
�zD�e	�i
y1Pou
d�rt�'-
s�!rfV@ni	ky�acea'En=t[Ad5Rr
sr�'a��eirs�')sean�areo�sryeiH\ianW�ohko�'i�ssmW'�sim9'i�e� r
aehiklotuvmg�nrsn,Xs��ctf'�e;lrso�uca�eio�'�t�d�fn�s�',ers�'-�ed1is.�w
yscr�<ecre�2e�'i
s	$y��e��n�'
s��x�'R�a�e�Ois
y�@t��raei�'Xnr��s�'U�dj�e.wfil�ms�stw
y�e�ni��gmtith�'�i
s��e?<or�de>�a�era@=cL�dei/�lmopsu
'n�o$kala�ei`r!dte͘o�s"
n	�rn�o�'-rei�y�pAUae�zaelst \irf'�ei
sei
y-��m=�n
r��st�|xmindeU�d�cf6)si	kyi�cweon�'s9'�9'.olact�'c`�r"�trra��uas��tan�;e�'abcdefghikl��no
sturi �tad��'e!�lre�i;l�n
r�s �bH5h�'crsGwur�e7ioe�u�Ln
f'-ae|hA�ilsuaslOblp%oorR�ef'
dir
s�'-
ssongwrlSiei
yf'-
d��n	$stdh�lq�mseL{can�Id~-e/�'G�or
s��eong�'�e�i
slarf'i;l
scIs�tcIza��lstet�rtWrf'-MaEe�hi
s��h`�a
ne�$sloRger�'7e�ios��s')u�'�eioI.tid'@8asbu�h>arxf'�jh��p
suncul3�a!�iu	�'eilor�s�'
d�n
s
n&0ui�oc�c��a=`ef'Eafe!�kstyi�y��e�fe݃ir�'�B-f�hl�Qsi
y�ene$�sph�e&0u�2-�<a_`c8�eh�io
smhtu��lat�ei
non�'�a��i
s-,aCe�'-e�~fpstNf
Epsho�or
sen�c�nhoo~�tehNiNyen�'w�frsW@tf'-�l
sforL}maeX�iz�=bf'�a
drr
sKlaef�laeiouyf'tei�'b
d�r
soarZ�dngf'-;�rd~�e�ilprtwad��deStt
�a�oticf'�a[tirsr�ich�'��b)�eb�ip
y�/af'�h-b�#ei�n
sa�/l['-aabd)�efX�ijlmnpr
stv!�wjlp��rum��p2�i�l9�of'1�dw�p
sf�')pl
sofRrfl.�iul;l�n�'��ef
suNl�'��mp
s�eb�i
s
y
�'-�ncfE�hg�ln
std"ti�0v_\l��oPueTi	$y
d*�r
�if'p
s�t�#eirym�tish�'�iei�'e�i
stTseiO8lr�ei
s�yjse}i{Bvrd3rrs�alp-�j<�al6|nd�klugge7�r�'#�c
s�'-b��cdehijl-�prswbe�hrwtmlocke~tritek�i��rive[i�'yoo	�kackeV>i
sa�eirb'kKBrcg�nocket
	'�e
i�s�#acarz�p�aarlG�r9�ty,�k�-iaeiobruy�bc�dg�iklmnpstuvwykf'ei;l��n	$sw
d
n�r�s�a�'1�gh
s��e�vof'��m
sdgter�'4feio
s�'��i
yf'�ei
s61wTy�'-dhpsh3uap�p?aapRpei
d�rtic	�khf'�d)�ei�'e�hi
st6y�'
d|r
se	i
d�rghter�'e�hi#�m
s�'ei�o�s�'-
dhr
sbdta��on�griVoven
�rra��dolds1e~i�'�e�:i
s�yrc
nqs��'	�seDi
srd�radein�pu	�wzed1i
yf'b
sa3g!tlf'dgrs�]eiei�'
dh
sammq8ekpw�tv�ei;l=�n$s	�'Eei*Kl�So
sw�-y�e;ln��em]g�ai!ee�(i�'
dg�l
sgh�'�ei
s�tder�e,i�l��nt�h	cdegmnpt�Hvu�eikf'ei;l�n
s
dh�r�seif'�r�3srs�vpDthotf'�ei;l=�n
s/n�Ds,eO�ilm=�n
s
y�iyeX�i
d#r�sgk�'yhbeis3r>�hi
s
hy�e��n�'-ckps"�w?�o�a�Po>�n�aeiry
dr�'7eO�i
s
ymIhtre$�a�'h
st6�eeidr�ab\c�eg�opstuvw�'b
se�ird6�rf'ag
sn�'e
seri6s<�eif'eip	$s�eb�i
yh�e�}i6y�'h
s1�t�'.�f�scghf'e�Oi
y
d�r
sh��'�ei
saek9']i�sn�'(.e�iTl
s	c�d�e��i;l��np
soach
Z'�eo��k	degimnrstg�el�i
y�'g
sY�aei
n:Ms>�c
n�'bdlm	�p
ser�'�ei�o
s~�oor��de�Oi
y
drr
g
k�'pr
sf'ei
s
d|e�e�:i�yh�'<mei
y�en��eg�'
sti�y�es�he;l��n�Ars�At
9'aeiostuy�clrstl�'-�eh?i=�np
s��w��m��st"Iir�oolde~�iG�o;�mt
f'=�e^Ui;l=�np	$swy7Rhat�9cf'-pphac,ahI�'-)�e i]�uaY�und-gr2at>�eagltr�tf'J�ei
s
ye
n@r�sma!ztle*tf'aaJ�ei
s
y�en�e
g�Hahw`idglrtge�n	
oo�gaei6ysx�'
dr
sy�'�se�n6rs6tnRckn�'j�ei
sop�fehik�tr
s�'e��fist�:vw�yere�isyA�e�e�non9'io�n�w��icgklortuY'k�';�grsaaei�o
y
�'-aa
d�Bhl�rsy��d>�rs�te-�sc�$tg$r
9'�eUln=�egf'-j>�r��ad��e�l�t[�ecthf'e�}i�y
d�r
s'h-aaei;l��n
st�{aong5u
dnr-�s~e�"iue
n�Dsgas��b
e�uhlderg'<�ei�sn�ga��e�i�s�'�s
pdgrtgei
yf'
d�l
s�e�l+�ng;l�n�ele�li3f�'
hst7eq�i
yrt��nhe;�s	9'aeioruMy	KBcfZ�gikpr1�tz�f�u|�le�Oi
y	�'b
d.�frl~�rsir�t=Kd�tkf'd�eppwsr`�aaaeiWl
y�e;lnqs�e1g'�eY�fiklirs)yen)rs)tf'�ei
s
y�e�nzi
y�e;laelrdkf'ei
s
y
d
Mr�e;ln��e8g�drz�'�e2�i
seif'
d3r
s��lcdfgptvk'e�irsrdb�re;l�nr�s�'f�tf'e�i��l
sry+�gf'E�eip	$s��epi
y��'nRc$self'Dne	�i�l
s	bdegort��uw�'b
s��ei
y�eW�sgraP7s'�k
n�g�s�dkptN�z�'�JeCsf'c}e�Oi
s
hy�'d1i
s
y#eike*tel�'ei�!l
s�d�rn	�g�'
sti
y�e;l�n�'-bcd�ef�i9blmpsapt
yc46wa�zpae��iloa^l��n�lxra5qiode�i�r6s�7wa�urdf'eX�i
sap�tu�p.er�'i�ofLaZilNl�a�eobile
i�'�d�r
s�alou�qwgZ�hch.�t�uT+a	�eoe�'id�i�r
sY.bfgf'-b
s��nei
d5Rrff'`kbeil
sN�ei�yf'g;l��nrse�iN�lrd
r�s�'-abcdefghijlmnoprstuvwyzacnd-4�s;:akprWvyf'�eV>i
s�'`kb�eis
y�eUl�!nt��u:dof'zQa�e>!i
s'l�ber
ss�r�e>!i;l��n
si�e��qY./�cikoraeobl,�ilO�e
yf'i;l
s�VstNz�eyt@8a�i�y-bcelmpbepiol��oconomic�asol�Diioloۮgultu�rconomic�aei3�oIgnguistu�isetr�iyaothf'�i�s6yl�i�'}bei
s
d�t*yG3rateis'ps��c�'�ad(io
sei|y
d�nm�'i�yeU�s�tzei
d�sva �it�'l
s
-bc�eq�hil�nYOpsw�yd�bhpsea�@d�>r
aY�e�Ie�upa~.oc
l0kov��e�-ey-sof�t�/h�af�oqgj�aro-g�lrdi6�snx�eG�eou��r
�'-adeiosuvz;�f>�cnpra��c,�ui
a�s
?u�eier�'�e�:i;l��s�y	�'c
d;lmn
sZuis�mt!|inei;ln
rs	$s
t(�f
{s�t
�zessSK'oid�'3a
scdhl
nprstit$ea�eio
s2}u�r�u
f'-a�ei;l=�n
s�us�t�rKfy�t��uoqui�y�e+�s�zsis�mt
�isa2}uiri	$y�eUl=�n�'�e!;im|n
son�'WziDQtb�:t,�iG�laeiOb!�t
d	�n�r
shenit<�sabeimn�o'lti�'a�s�'c:n;�ios��eer܉re*�l�Un�r	bs�d:^ho:fprtwod�iy'7nl
snex�'rs��fsHRva�be�Cut�'rs�,t:ohir�mahyrs�ae6n&re�'laY�iombulis�m�t%�l�'�B-adgi �jnosT	t`�y[9rt�a_
i+ch �r�'b{�cfhswY�io_oes��t :aumt��iEe&�rritEe
irac�a6s�e�i��yg/�mrra�mIgpay�io�'
�nus;lltn�B-ofbitcA@h�knt�eґi�'hl�i
y�'e�is
dc�r
sayEeX�i		'hoC�pr
swiorares,mt�'i�r
scalt�lePif'�d
scmle��arsor��e
�iri��f��aie�tbcdegort�e�oere�i�y�rQVsi
df'��hln
rAJs�l
yF�es�e�oܾhrit��id�yet�io
y�l7�nw�'�efi
susl�'aei
s�b�e
n�^'ra^e�s�'h|o
ste*�b?i
'bfg3klnprstv�swes�wtriqV5u��fhf'�ei
st-alSf�'-flm
sdŊsestr�tou
less;l*�n�ad
�'abcenxh>�il=�nps0tl��iFa��ioY�a6xhPQl�e
d�r�s�xe
y'sroof�e�Hi
sca2�p�'cZehi
s
y�oanou�^v�e�n
f'cd�e�ei;l�np
sei�'O�b
df
sorge�c�'�\o
fuaei�'p�heh?�r�'-abe��f}�lp;sweswast�'�ne�xws�outh-�e#�west��i'erl6ni/uye�us�QlmC�pG�orid?�g��anr0ydW'-on-se/ua�''�lnf'ΓeiH'mrss�m"aR�oaer]�dYk_5l��seCneireign�'�l
s�t��ef'emYi
n
s
d�rtf'Xabiq�ubTe�Qz
ace�fhilor��suy�'$�acdg6h�i)pklmnrstv�ww
yeiĶk�'-c
df�mp�rsw
y��s"GtraH�fm�a��l��lort��'
s&�h@ua�olk
f'�e
i�s��a�en6�oVe,gei�'
df
swiu
o
us��h��ocIl
n�xeBFo
she�Ztdi�n�'u
bm�sei
dr	'�s6e
n	�'dgik��n
ser0�x�Qel8�ei�yie
n�sa
eCsr�df'�e>�i
s
�'ce�ik�!lrst�'statU|if'
d;l�nrAJs'is!b�'�eil
hs�yge i
y�eiow�'h
saw�wGe��ia�'&.c4nmt�'o
s*�dicf'Fa�i
s�'�e�hi
st�^uao-�.ltempora�;l-tempv|oei
drf'd�ei
sw.�ain�'�esba
ac
deilnrswkr�aei
sarA=s�'pJ�sho1nng-�stub	�'�efghi�;m
hsish��'e
ird�suea��df'ikZstua;ef�2m6�ol�7tf'i;l�n
sA=ts+�tf�z
a
�e	im�ft�'�si	kyac�iel�bf'jay�i�n
s�'Ze�i>�l
sa)�eirctlue�'d	$sla8Yry�e
ior�'Ii�JsnomU�ya�eo
?u'�lgO�mpsra{mph'i�yc�ahoto�pmcop�e�i�yla�ur��tcd|rh�'-�ei*KlwfNmwrk�ifiy7Bce�d�r�s
!ir�,i�'�-bZNeios]�uw
y��aoaټt�e;ln��e��g�m�sgst"�a��ei�rgh^�teltuologi?vy&�c6Ds	>'aabcde>�i
siG�on�sdhec�nkow��nGncdgs
te�'
\rMaEe�i
sthr�'ile��rF�emr�'ai
stio6cP"d��cgpz.�eA5ohRo�yo
a!�i�ocid�a[9e>iy�'2=lsa�)rf'ei�saeign�au[9mr�eio)�uc�aia�dn(�cgj�xoli!�pcdef>�gklnrtv�'_�aeb�irs8,u
y�'b
d
sE3uer�'ilm
sw
y	Bn�Dsiek�ne�Iob
f'R�b�s
dThgl
s�'��b�ei
sfZez�irs
y8�eTi
yltf'aJeio
s"�w�gWn�Qk
nvQ�ef'-adeinos|x
yd�`orL}i^Mc8Yllr8�e�Oi
y4Li�'-l
s�tch��ies�s�e�n��aeX�ir�4y�'�e
ssZuzter�'F�h?i
saeio
y8,cel8af'	�e	�i^Wl
s�'�ad
st�'eil
su�d
n�_se�sa�olf'i;l�n
st�s�t�'cghaee �er�Za	f'��bew�fistrz�'rdf
sul0l��nber*0gf�eilo�e�y
�svi6yieSsaeiouknstychnopl{�ehf'b�d�ei
y�azJo�e;l�n�'
ste!i�drf'�ei	.p
sf'�efi
s�6eoo�tenn�'
sd�wdeioiodf�e;l�nerousUl&nrBu�'o�s��uƌcmt6c��umɮeP!c:KfntP�et�'ei
s
d�:r�'-
stt�lsec oeDi|�dst�Gc�rt��t	*!cik!<lnortulf')�aeistp�o�aef'd
nsh�m+:p�w��adgstylo�8lei
y	�'L-aac
dl�r
sa=`k��i�e!>f�!nor�'�eiAs��afk��ln|�r�'Gaei
s
drZ'6s6y�'�eTi
s
y�'-CLbeD6fi
sfed�e
d]]raBe�iort*�dn-�gp00h a�'Jeis
y�en=�v�e8gcmpX�twast�'h_e!i
sa�en�'lRs;i�yeor�ps0oi!eormg�a�e�di�'-l
stwe��l*Meig�t�heb�i
ys�ta�eM laeiouy�i
n�t�wy�'Gae[=i
saeydf'-Maeise6�aa�r�Qgheetf'�i
s�'rd!i
s�d�egnt�'>8gh
stTlgkt
f'-be]�f~"ilstD?v�sw
yclle�%a�ooY�a�kriae;iZs�tt�?ul�e�#a�i�olge>�i�'ei
s)�eCszf'�e�icg	�u��k�'R�g�sce
nei�'
d;l�n
r��s�e;l=�ndmnrt�'Y�d
sBeio
y�e�n�nk�'l�irs
y�'mgi�(n1�r
s	�t6�o
anIdt
?uiyk�'colghimJwker(mecoas`�t.lrqru�'aei	bdl�mnrstw�'�`b
s�'��dr
s+eiw�lR�od�e;lltndter��ei
se�ei�'
d;l�n�rAJshf'�e��i
yf'�l�n
st��ei�'.�fl�k�r
saelkl�lm�'e�Gi
s
y:Ki6d��g�i6szMaeif'@ib
d�r
schf'	ge�Di�ybdfglnrs�'b
s�'7e	i�':Fdg
sV�i�yRf)�glionPa6satncy�5wf'ei
s
d�r�sei�lmr�t�'a�Gd0�e��hl�srch7jiye	i�yf'�e�Oi
s
yel�'eil
s�edn�eg�/eiynFghf'�ei
y�ene
gssC'9'a��gibo2l'nrv�Aaac/�hi?�jaL�cA]d�eh
�lrbs�t�w�'�s
�i
�.ade
�hioruybcVd*�efg'�hiklmnprstu>�v��wyf';bil
sly�ie��i
y	�'-
d��fmn�r}s�ubd�g��l�ma�e�n1tes�wsc�eikry�a9're�'�a�ehi
sob7uf�'eX�io>�r
s
d�arr��d
�'efg\hin
s
y	�'-�&ac
dhrshmsa=�nanaged4�m{rtrY�u��o��ra=�ntr�u�lerf'�e�i
s�en�eO�ganMtdnr9Xt�e;l�nf'ei=�l
sdrYs-�g�'�0c��hlm
sw#Oiast#�e"�afLeei�'
dh>�o
so�
laeiklwcg�ut�'�um
d�l��m�n
r;�s�yn�'gi]rs�m,�t�'ei
sngf'-rsJ4h	�'a�e��h�imo
sge'an'n.nartf';l�n
s�e�
fimpna�'eter>'e�i
sf'e��i
sdc�r'�ei�'cdfhi
klx�mnstwza�ehne�Mle�	irdrr�Ss
f'-a�beiopsa
�io3u�lff�lislron$ed�'-Ki
sbea:r�eg�r>�nCsf��uff'irsstWh3&i_\oCLt��i�ooTdpslavsk�ikyea�iryXa!|iBFoE2b��tf�h�o��e��oa�'�e�i
shlf'ylococc�a
i!uei�'
d�r
hsMTtSK'-bcdgefgiklrstvspt6�au�;douard�'�isq�ci�rh�k�'�ei
y�e;l��ntect6su�oJ=u.yir�@uatT�ze�'6s9'e;l�n:�r�sryei�s�tg>�n
tG\h�'�e�Oi
yhtinp�'6sru�Acf'�-ei�l
s]�u�ae�Wi
d�kl
sdho i>'�aeio�su�'-U&ac
dTfhlmrnrs
wof-the��-ra5foouse�'
se?�i
ys(�seno_t�'_`oim�w�lda�en�'lRs;iyc
nosf',Ea
sn�'-a$eim
swargG$ra�<s6mt��i6s{rscF	o��ae�rst�'�dstq�6u �'�eqeu�e�oq�bfn-Xfch`�ei;l=�nf'-�neisat-�h�#a�i�sacefghilmnprtuvwdklm�Kr�'firsyas*QtH�c`�e;l��nf'�L-i�'�h
sf'&eo�i
sth�'t�i
y	�'>�be�)fir&�s
y�e�l��nolle�irsrd�rkli_�n�dl�npr�v
�'-äe��hTi�m
swyc��lork'Ee	$sY�af'=�eil=�n
se
y�'c6d�$j
shase	i�'5Rr
sf'f�a�eX�i]hsafn�'Ci�o�e�iosaurriQVuma>ngnlib?t	�'belm
s�we*!c�r|mrra�sgeq�tlae�'
r�?tnb�o�'g�l1�m
s�iwcdgot�hil�'	�e	�il
s<�e-i0?hekl�r��'gstraphEe
�i�yfihyY�ep�e�io6s�r�'-b�=cdfh��lmd#nps~�wp�
a��ra�d�lua�momo2t�}iaen�'�in�'��sobu�mo2t�Xau�eings��t��i�oaeilnotdJ
io
�'cgl:mprstahX�memi�clsnrosZi�ta�mpO�hog�ihon;�i6ye
�gcop�e�iyyp8�e�iyl
�a�ei$]s�t$azing�'"l�n�'-3ae;l=�n|o
s�uX&wvolme�r9'
r�sR�i�lo�r'hs1�t�o�Zol�beWi�'dnore�"i�'	�d
s�'a��s,g�'a�ei
srdrt�'�
eiQqs)bcefglmnpr�st�vk	�'EeilҜp
s�u	$y@�e;l��ne�"i�$b	�d�rg
sl$�iflf'-e�i;l��n
s;Hnrd:on
r�sEe2�ima�'
st
ai
cs
�z
a
�e	i6telt�'
stto�'~e
sf'b�ei��n
s��w�io3"r�'�1e�"iCo
s
'sula�i�u�nt�e'�io&�rregkΫtf'Eei"�r
s
y�e;ln��e�gf'VYbEei~�p
s
y�e"nepund�'i
sarA@i
ylN�e�ila�e6r�tf'-n
lr
sfr5iyei�ung;l
sch�'eaSi
dr
s'��y�acd�cgiklmnopruvwhka�s�'-��ab��d�ehip_^r
st��w��yin-��treo�>eX�kaous�el�drm�e;ln�sbef�gi��n�st'Cs_3tpMioogr�taokQ�e[in�'-on-tees��'dgHZa
jeti
yc�'�ahi�siometO�rsFmei'-
d�r?8son-tren�;teioy�'
n
scdh?�n�e��i;l=�nn�'~�ai
s��f�papclth	�'-�vae��fi�l
sa�p}ttc
=h�c
na^	if'<�e�}i
s6yeb�ik
y
�'-c
d.�fh�lm}tr
swNc��hu8te�	oX�n�Eaaoml1rs)hr�kt7ve�i
d�gl	�p�'-
spig	e
�'-y�c#�glop
sw$
gigyh��f�vaei��lOb�g_r
d��r)aae9
ikmny�bmg	�'
d�Pf�h��kr
s��y_`o'
ss-@�b
�'-b1e�Gi�l�p
s
ybcdfls��i��o�$oi�nantc�e�ai�g��o�'bltoa�oQ�ri�:nel[l�7f�prtbri��d	�'q�-eq�h;l�n
s	�n
r�se�'-p
sp�Ui�iaäei
sIb1g"�waeiouybcdN�fgBhinpst�5uvwΫy��a|oɞhb�`dib?rvari&0ugle�Oi
yge*nthtf'-aefґi"�l�n
swe�9f�d"i�xw(d�n
r�sorward;l��nrsRa�'-!ejl�n
sj�9lack@/eack�e^Qay	�dgel�u;l��n�r�sei
dNvh�r
s�'lp
se4\s�eX�ib�2oaefhioRu'J#ggi�yc�e�s��a��sordW'-upon-a/�vacgml�jbl�a�lo�r�e?�oKfgraph��iyspher�e�ii~�n�'-bZe�isycwolouc+r�:ohbet�o.oaeinpstwkm�'e�Oi
s
y�'Gaefil
sB�l
�eiR�nt�'�clswa�i�jmukca63idPls}�agguth�'e
s:[nf'tocmocc�a
i�uy5Fcs�'�e��fi&lFochf'ae�im
yb�_i&l
d!r
sarfk�ei
n
s��t
acde1fkmnpv�'
et1�e-�ikt�eel�e;l=�nuk�dei�'nr
sy�c8t,�be2�if'-b��o�r
sbreak#?e	ioru�neakQ�eo�ime	@i�d9rM�dg	�'��beq<fTi�"p
sy
d��n�rbo�a
�'-e�}i�kl��p
st
ysearcY�h�'
dr
s�yease�i�'rdur
se��id
n��r
sb&dg>�klmnpb�u&v��w�eosQocan�oI�l�zW'abt6aolp
�o@�e?�ogrjt9'wU-`kb�eNvhґi;l�mroo#m�'hp
s��a�e
�i�ei)yteRlne
gs�2scIHdgm
nt
kturaeili;ls�m}�t�'
d�l
spMgf'm**p
sei
d#Arf'
s#�tch�8n9'abcdf�lmnprtyB�r�'b
s�e�Oilos
yeV�i
y�'Cd��fsrf�nS�c
k	�'aKb�rdeiQ�l
sy&�bnt�'shi#peo�d{r
s�'
s*Ou	'ilin�kff'�ei
s
y�e;ln��e�gb]�eR�mp6s�Dl�'ae�Oi
s
yg=Ke
d�r
g
kn�Rst֬e�i�'i�eiD�m
sweiEofn2�a)i5|y��ddf'�e�i;lrsd��g�m�td1i
yt4^eg$=avSCe	�'C.;�glmE�prrx�6ei�u
nsxLz
a
�e=�h	it�'i
sc
�a
sief'
di
skeof|no�aaabcdefghiklmnprstvwzb�r�sv�ile�i;ln�rc�ses
s�'-abcdefghijklmnoprstuvwzabceghilmpsS�zq;�uars��e�nal�>adit7e	ior�'��i	�sr�uoeadrxiE�diXDteute�nachine-��glo�taetha/�rq�nua��n	cdglnqrst�i&uA�uen�c�t)ptv�eta^�ruaBDe!ztakcc�eruchn*[osembl=Kyomma�eirse�ymanaehloruteϚgll
�uak�paa�is�+ugxvs'emnɼr^�smp��ait;�taoc�*tqnstciousf';l�nirnent�'��a
sact�'�eiEo
sɼilttur7na�ean'eH�eioursvect�Zocipf�lid=smai�inac�nGac�eit�ei6s�n	
odnrvit�e�io6sr
Z'Iis
�hfe��u��oKyer|Agae��i��orucm&�u6e3nt�hirutix�ldatnazinoaeZ�mez�9i!|se��rne�rura!|ieuad�'>�i
sm�2amn?ypcdftaypindes�c��eusxteudatzinoerrLve=ouct�'�ei
s
n�ov�eis�tm
�tIgnctiv]�eingdboaei�uD�nteR[i6dIr6sfa�ztbcemntxrense6d�e6suten%�aaeitePiA'
d
s
d;l�r}sn��t�a
g'0gt3`oaeiounrdi
�b��gi�nrtgsei
d�n
s�ei��b
n�oa�ccstroscop_isi�ovse
st3aei
d�r�dcl�nos�ati32paeobut4�i3`ut'so�wrma߷lprv�,etimo	�a�un8bdgnEeina�rt�e
'i�oani�s�zK�a�ei
sKa*[oahlorura�tg8&lraph�'6sy�l
�oepFnulation�'	�sJ�iocY�fgj��eram�'
sepyc�beocdgta�7n`)dion�'J�as�gM7u
IaceioptuJyahr
�pem=KaiT�bptf'7e-�i
s;c�nqr�tuen�c8tvien1c8tdsei�y
d#�n
sa�e
n$]s��zri�y�eE�l"�ttei
s
dn1ctGci;�n�l'�aecia�e�f��lairIygn=t�cdti��av�etu
�etL�aei
no�vn�'a
sl�ra~iut
a�e
?u�9cmrGa�eiS�pfacaeilor�Uy��sHDenr�s�x2�a
df��mr�uaneao�xn�u�te
y	�n
r�s�t
pt�aaocA\ht�e�i
spic�a	$s7@nrb�'a]�i
snf'irs0ys�t0yze;nrs>ti�o�v"�aionB�do
�fe�rchkr�
teioues>ds�'�e�fiEo�o�vnc�jt��rtuao�sr�'<�e	�i�l�sblk"m�io uenc]�t�eZy-rland-s7Iuf'�#eil
se>�i
d�r
se:^ot%'�tadeo�rsg�nto*�re*Qntenla�ankrEuifPxe! if'l�i
y�'tRd{r
strz�'Eoo
yfieior�ur5�ae>�i
scx�eie
nn7�c8t�'a�e��i6l
�tclat�ei"n
�o*>vCXkag$kae�i�'st�'Lsagr�'-2�bc�e�ig�lp
s
ycdpԵoad@�de
�a�;ao �a92l�aesta
ei
s7�b
n�o0vʪa9'c
ntid$ea�e�'a�0c8�eX�iEo
sb�iNlaikrnya��kothW'a�efklptw?�eaiouf'cmtet�%aet�Nhe	�'�s��dna �mr�'	�ei1ao�s�c	�nf'�ei
s	$y;�e;l�!nraei	kyn@Re;l�n�evhaioud��mt޸ie	i�'d�s)�d{�tna��mV�tr�'<�eio�s�c	�n�ua��rn�'a
s�'
s�t�'abemFn6Top
sFt,ct�r�}aria9' �naeio=�nrti�y�e;lX�nsz�a	e	i�a	'ei
i�ov
dr
�'d�e�hi
hst
yHVa�iaront�Qg�'X�e�lr
sd�ynei�s�'
st�wuna6�o�'-bdfghklnrst=�ub��d;Laaeilouthf'eX�i
s
d�rrsadl)�m
�st
's!�r
�t��i�o�hn�wrn�s�y�'�e�i
staDIbe�#ior�en|s�yeCs2cr�ei0�l
swn�'ersH�reio
ys�DsZp.yi��l9'lass�'!e?a�eXqiaRGei�xm�Wg
t�eiy�'�e7�n�s:�tU�sO)v�io;6osceh>�ptZ�e�t%�ain�e
yro1karn�'n
s�e!i��af'eipr
strf'-abcefghik�jlmnop6�rstuv�wdoo�pѭpblnundan��c
tlUonu�}a�e;l�no|�u*�wa��ehilovhrlrifragilisticexpialido'c��gar�rlA=t�"i�a4�u�]ilmnol�VipudsuctiEo
nv�e�i��cY�l�grogat\�ioaeiloMru��m3ttc7Btu��nc&nialy�i;l�nuio6x�Yd�t�r�u!�orc~vt_n�7sa8evil4�orlac�xue�i
9'6d�i6saP�oڀs!5veiualrtc+tvyw}�ei3c6xo�'�essTwerod+yg�hhmS%amnopo")stendei
s
dnc�t	$e�yr�'�i�l
sa�ut�ia�eol��n�Er�2d�maou
lt"aura6ele�i;l�nrsrԭvma�%lme-rr
�xd
�ein��a��h�los�w�ei
nK�t	aceioptylt6e6turat�ei
no?vnribptf'7e�i
sdln{tl6\s�znic�as�aec�e�iaiXor�rr�ttio�n�u~iuctur3a�em#Qmawn6x�k2i�8seion�ei	tls?�le�iEo
d�e
s��lnV�a�eeilorJu
dr�'
st:yiaei)yn>t�lm��n
r�sent�'aj�ei
s
l��r
�t�ac)�eT�arstf'>3aei
s/nve�l��n�a"qei
nti1Poo�n��uess�a�ei@oOb
n�ovae	lmnorstvˎu��oun%�dabutionali�lsUtmr�b4�a4�eegme�nem��piStma=�eD^oci�ye{sY.acdefgijlmnprtvU8ybrt�[aehia}Tsa�rn8,g-f;l��n
r�s�tf�:i�
o:bio�So�'abe�Hi
scei�t�'-
d{r
s��ato-�asupZroar��d
d�i�re�i�'
d�o�r
s%�cnaXgmW'en'��sectiovi
y�e�l��n.a2ioun.Sta�malrss�e i#�ius�'�e�,sis8�e2�ieoanpG�ylis"t,mtf'%�i
s�udtiti6�ogua�ec�tnd�e}2i
sa;eiG�ox�'��e�itlՁeeiiyl�lf'�eX�iEo
sva�eio>5bl�'��i
sr�'ship�'	ace�\h�ipqstn�'ranare�'�heptib��i&l^'}�tei	�cn�dseio�'�Kf�ovr�'6yc�rio�n')uuehab�nei
d
srxaeina�Veiqm
sb�ii�ln5�ah�lt�3uerel)peCVo�'raaN�naea�h�i�VurynC�nr1tain�'
s�tae��gnlHbDGdlnrtt�Ie�'g?�adlovs;kla/�n
^'^'aeioubE#dgh�ibklmnprstyz�'1�bH&i
s�'g
sei
drf'��ei
sil�iYelowf'-�ei
s�htta��i�imperS)d�'�e�il
s
y>�a�'bWek�lnso��uf'�e7�i
s
y\d�ei �eon�'�4gf'p
s�a�eif�dmt�'<�ei
sh�zim
y�enkloh]�tf'b�eiuckX�lf'.{ch
st�'ei
sei
d|�rf'b�ei
sackf'�esin'elpsadel_�np� rrtEei
s��w�')�bes�ips
ya��nf'h��ui�o6Dre�Piw�'nbs�'bo
arO:nptf'Eeisngf';l	$stake'	$s
�'-bceh�.i;l<5m=�nsta\:e�lrE�e�io}Rrn
r�se�Hi
se�ahJ�oltf'eh>�i
s
drr�seaWde1rtbV�afg�lmn>�prstvzt	�'�e�i;l=�n
s6y�'p�g
sf'mswEeZ�i@u�ebdeg��ij�tuC
r'Hl�o�'��hrsf'!@aeil
sy>!i�r�e"netr2gelf'�ew�i
s
yhsf'e�niy
drr��s9'j�a9ec\Rhzh�'-�'abe!�gmYibol�Raver�''�sNal[�oc�a��d�r
serW'el�ezelei'-
drrsd�slortk�l	�n	�pshf'"�e!id
e
n�'.wfpstl7�afIm��a
s�,t
m
nbcd�<klmnpqrsza}�irG�iao�mphany�c �teO:nn�dhlpvaobg�ai�lucKftaY�b�sgis�mmth�'-
�irl
s�laJ�ein�'/�irareabilmpnt��eioo7n&Js*�tl�'i�o
s$Zcs
�z
a
�e	i,m{t�Rni��netri�y$Zc�e+�s+�zahW�lotth6)ei�y!e�sT�zoni�y
c�e[�sVsom�'a�l
st%�i\8o	acdefgotegprseseithe_�s�tog�a�u�smt	f'�ehilo
syromnt]ei'oycs��zFaVi
a	e	im�rinKa�epa�e6lt�ePiT9o-�tairctyS�lc'aslt��i8�eio{�mrgei�y6c�es,mt;�i6sX�u�ae9'.�nd��en��p�Pv�'Kay�i
sym�'io
s�yceUti2uahT+ycgsx9�tma6s6st6a@i
e�s6ys9)t�ei�sT�zhioli�s9Htn7e	iues�taiuc^�ua�n�'|c�nGpa��otd�meom�'ai
sticsNzp�as
a	e	i�tcf'
�ars6ply+�gaeiyneGdch�u*Pwjjlmbors
'-abcdeghiklmnoqrstuvwxyz��a�sjsuncti��ohir��t9'bcdefghijklmnoprstuvwxy�'abeE�ilor
sus��tcJoW'�eI�io�yule��hrW'naca�l�aei!�o�'-`sa/|c
d)�l$mstw�tpooÕn�'�o
s�a
�e
n�o�rulx!ei�zla�m�r�,thikotioysto�?sgmrap<�hetEe~prcoarE�dt;l�nur|sn�i;l�'}qe�i��l
s
y�' �m
s�'/�fi9lt�ucl�'�ai
s�aUt�e��i'D8p$szw;sh$i&zg
'jfrt'��ei�hrJAy�e
�'aeF�gl�/m�o
s�uloJg�tiate�lai�ouron8tH�t'�6nc\e�ghlnprtwy��ha?�p�'-bcdeg�_ilopswen6�dNao�-a1ng!ora�>g
d�mateif'rd[9rrsRGe��ir�'l-�eX�i
sile�p2�c��api|un�'"n
sk�ah)�i3e7�a|et?�uI�'�ei
saH5eb�i`�na[uwhit�'�a��a�uikis�taeilh[kN�pGHe>'-a
no�r
s�h�o3u��w�sfu�vI�nama�k	bceiklmf�o�ug*ei$?o�un�'�wu�'�Qbnst�'�e�l
sm#abesPsm�daf'abei
s
yt1�h.:iazJoem[nf'rr��s
a�Bbcei=�nouydhne/�gas��s�+ghi
�e
r�sy�'raHnqe�ns'
hw�'
yl�a�'-hih'�eo�'Ae�s�qoud�'i;s�cs�\t
�'abeimoprrs,mw)nb?�k�lrzW'ai�'�cn�d6sep)�aeol�>lbDr>�uL�a
dk;l=�nrs�'|a�|l
s�i
t�'k�l
naiury3nCr9're�nxiY�faeiwo
s�'kx
drei
s
d�r�'abcd�egikn��st_�u �yz�g/�kmi dese�rar,k=br�eo�yor��i	�'aeil�os
y��lnyi �k�ln)�r�c�utbeiile
yf'Tn
sr�sn's
'8�e�zi�hra��s	�'abefio
sg^r�#u
d�r&tuc�ln
g�idg�rY|aehi
dn��rsbaj�u$ta? un�',gsarlmiusz
a	e=i
�ae�i�mrsoH�ua�uf'XsSXa�'is[�mt�'?�i�s
�'-aei&lprsdaWwn�n�s	�'-Ga
dltrs.�wrecord	i(eikH_ntr^0iy�'�"i
no�r�cGaei
d�r�too�m|tX�t�'abcdegik�dlmnoprstwz	�'U�d�lmnrw=bzasala?�tS6ant�aei�^u2�nuOOara?�ea��e_&lC�o�-ui
y�eg;l=�nr �a�'rd�e
se'��tf|m�n�fei��nn��gacf'a1�k
s�d�'ai
s�gshf'�a�ei�'�_o
s�t��'a�o$s�iua�eiygl$�v�Ae`�e
niu�ta
i�uO�l
�'a�ei;l��n
s?�u�y�nr�'e
�i
s�u|y>aeUlin6rc�s�oe'�Hehkmst|akjde�'
�b�efim
s�zo��a��ian9'b�in'�eei
y�'
d.�f*Kl�r
s�e;ln��e
agad�e\oh��i
stum�rYieilo
y
drf'd�e�9isemali~�o��aeX�n
r�Sseif'
d�r
s��to�'e!;i
srmr	�'7gmnprrstar�utf'e�ix{o
s�e�oʕaGu�ye;l=�nologi�o�y�c�eern�'%Ja
s'�adnCs��r�el�i?vy	�'-aei'lmopdMfe�Ldb�tl�ey
d
ar
s
�'a�cd�
ei�m�Xn
s�7wer�Zmnomi�yc�e�s�aa�*y.�l�s�'baisliH5srp9'h
�opaiko~�v/ipbd9'ahkbcdefghiklmnopqrstuvwx�'-bcgd�hklm>�prstzleaf�v��aF�ah7hlu��-Mae>�ir
s�'Ul
sÕpa��r�'e
st��t�'��i
s�'-�ei�pm�s|Hwem�'-adZe4!fg�ijl_`o
s$ydgjs�osruo�p!�casY�se�+rta�1iw:aroYpasf'fe�,s6{ees�s�d��e�
h�i��p�'��ei
sO8m7neelhtu
>'2�in
s6yeiot(i{rc?gqaCtiol�i;l6slo=r

bcfglmpsyta�b�eorm�pa�ctf';�i
s
�e��rraph
�e6yogi�y�c�e{sa�inia6co�ahoriolQ�e2Tibde
ili6s#�teneurIi6scptienc��t(eVhr(eX�uonic�a	$sm�rs�'dirs�iy�'6�o
?u
�'-
di
mnpst}h	'al�isyge6d�r�iy-ween�s-bbwo��pe��eop�rpZ�e'�s�weho'!�eX�ital)�ei@~llCoucigal �perra��nan'glrn��b�ht�zatpiron�(i
Y.W�ce��flnosucdfgkmoprstvw�xaostf'Eei
smnump6sunticate��ieX�ird�r
syeuferenc8�eX�i�+r��yay�iouc�xs��in$Cin��kCa�eramp�'Y�m
sh�'ei
s�y
d�r)ps
�c
n�sineI.smtaeC:cinrtke�it@eX�ii�cdt�biEeri�yc�elp
�sog�[i�yerat1�eR[i
�oah��lorth�ei6s�y
�ce�ns=z9e�i�tontei�y�'
d�r
s
c
n�sof'g
srap�thrt�a Lei6sneio9s(�ncmes�9spter�e�'vRsecor=$dac[_lo�3rp8�ei
�c
nehyO�xpeW'�swB�raingelis
�m
atesfRw�eiu
non�'xa
sаaork`�e!i
9'-��e[�i
stu�yt)�aa��lrjret�'st��e�impera�e�i
hot�t}�gabe\oopҋu��z^lra�iriou��s	�'eilo
stuW'
drs�'a�ei
s�'#Pm#�n
st=�eut�'
s�}u
nae�rt_�e�i�'
sMTt�'r
sai8lri	$y�e;l=�ns��z	e=i;ae�i
dr
s�r�'-aeWcde�~fno�kpstu!�y�bcn&�x�ei6�oy�t�ct�'�ei++r
sei�o�jr
s
dnr�c��t
�'-f�ef�ahil��n
shear�t>�o
nsz��a	e	i��aeii�o
yn
giN�tb~m�t�^xr�aBFo9'�$ae�iyq�c�rsseC�arec`�n�rhtiTtei�Zof'
d;l[n
rAJs&l
no++tn�'J�ae	i�l
sd%Jr�'ae8Yhio
sd
c.8t
dr�'A+faKhr`!i7�i6�o4@rtihu�ga�eidy�i;l=�nu�^i
arjbceiW�kmnoprstb��fhkm<nsti�ryertZzi	�h��i��cog�Alen�i6seluznb��nsratu!�lrahqk�'ya�Tk�'@g-a�[eiRl
stgn%�s�ta
g
io�uOb�lt�ei�Zo
n�oveE�llog�Ii�y�''�a
stk�wechK�nsichore�'x{a9'aeioy	�'cf�ini�p�rz8�eiot��tor�Pm9'�cz[9oW'�l��nstr�i	�'be��fV)g'�lW�ntNl�'�rsori�ya�elf'�i�lrsr�'�?-i
ssz
a	e	i	�mt�'Ei
s
a	'ei
��'co�lGeianr�i
hylostrabl9'raei��l�#r|e0�t	�'-aeio
s
yd}ttri:v>5b?�mt:�eEoriA@c	$x
d�e�r
sc�ef;lmn�s�lula
rt�.i	kyoni�y
a�e=�e:�gstg�e9'ach��ortnMhai�uc'Fahi
y�e;l*�n�Je�ya no�'cfgh�amp7Irstvhy&lor�dcli�cmnluorB6ioethyZlon�'J�a�seydra&i�o�ldrocanna#obl�oe��ogiacZ'ty7IiIyllab!|ilh8�l�]aen+�htonn'?�i;s�ei��okesRb�'a^ets�c(.nrs	�'aKb�ei&lMTrsu�ln��parl7�i;l
�a8�eiif9'abceioruwy�zcdilmnrtu	�wykerj,a�'5�d9'el�sa�eil��m|adom�iioZu
?uphpyes9'liҭn�e�#g|hk|t�e/�fi9lsgivin�g9'gMpomi�9n'cd3l
svh�'e�Hi
dr
s~'i
s�_sC�tma2=sturg6ei6yQcse�n- a"|bc:�e�filmnors�tu�wy9'dnto�rt�herr�'g�s@moei�'g�soBe	ica	$sl�i;l	$sa6etI7l<�rt�s �ma8�eis�t�nstocl:1eel6f�vf'c�:eW'cdlprsra�i�cmtolrs��irareiMci�a&0uogi�y�a�c�ehior�Gl��ras�Gtei�y�mtic�aCti�e�*s�9zoph[�i��yaemopve;qi�yutic
�sH�a	$ss�a'a;bf�imo�vstu�Cwd3lr
sv�`b
f
to��rr
e0i
f
nʛon �pѭd�t�'8Waio
s6co�	stnicA'scdefI`glmnps�
ho��uyna�Hml�ae��corY�muminescen]�cCtetEer
�iyuc�Wlahily�laE�slWa�'et�si�ta%�tkn)�pae�ipsur
i�u
s[uia|s��nalo0ynia :kn9'$�sc�r'
d�l&r&v	acegmnrs%�tmin�ek
f'-eh�li;lndo�6shsead~ekivsnn
r�s�'te��i
seade6sd
f'X�ness�'e�r�s�fnTr|uvISsei
d�r
sX�n��sh�'-�b
shbbpl|ue�'��bD6f
shHgu
egk;lns�'a[_i
su�yma��bv�jma[\mm�b-MaEe�i
s�te��i
d�rs�s
tulC�adrstf'-;l
s�cp�rarp ot�'�e�Gi
s
yl�eNiNy't6d3lle�'d
so�wlmV�nr&sztue'�i�'rsW'�<aip�ssrmt�8i�s	�'a}�e(ino�pj�smc�xT�z��'d�eilp
s�t
yf5i�o�e[n(e|�iD�r�nughb�e��fg;l��nre\�dY�of'gsht�'-/�f*Kl
spro��vand�'�~f
sW@taeiouclsreil�'dZe�i
s%�ohyf')�e>�imac�Ghade:\ns
wdt�'�^b}qe�irl
sry�'/�e
sbo�'-�~fpscdNfƀhlpqwomMl�rimen�ns`�e�i�2h�{i�l�uoro`�nua�r�ahez�een1c�nc�ooG�rhf')�ei\ocfl��ve-ma��rt�'tig�l
s
y�lab�emntuwt�'7ei
s
y�e;l�nf'p�b
sb
io�ucl�`s��tytop��ey�s<te�gtl��eigh-o�pwtra/f�uay'iss
f'��-�ha�$bͣdEei
n
smswf'1�m
s�htf'�ei
say'pDspDs
cdglmnr�styd�d�'1�d
s�'L-g
sn,ei��sre(ibp�'�ei�hnps��tri��ncwr�'Je<ai
sd�ker
�'-bc}qefh i&los
ybo	�xio|�urd
'�3ss
�l6xl�ao^ula�i6ys��hea|du1yshtoS w.�oB�rI7bm�rs�af�oIdMTtmi�oa�c�:rlmrsu�n,eiKo�u)dn?veiosto8rdit��xrophiicTnc��n�Te�'abcdefgjklmn��oprstz9'n�ra�jn?�m�eiourR�t�'&.ia�'
e�l6s!
oMTr>'-ko�s�It�'-eX�il
sttY�aouck�'e	@i�sckA'|�e�iCs
drt�'-
stap�'-�eim
syb!�do�Mof-l��eD|a-b�Cogei
nshRl�na��ockt=`onder�Eo�a�bdeieylׇeiyeFr^swinE^k�'
dlm
sw�
a8iaw�ra�t[9y`�e;lnF�e�g�'-b
d&�mn¬pr
st��b	
iNareakEersan.Jm�'�ed#n
s��zf�'s�aZe�i
sehrprt	-e�Ofl��n3$r	$sw�af�.k|�liRs\dtn
r�s}qei
sy-�.kq�a
fe&0i��u!pei6staVFpb�du�eX�ilQ'stf'aeim
sObmg$�rzc
n>'̓ehi
s�'abei3mop�su�eVFre�orur�'�eil
sa��i�kndf'sb�ek}�t�'-b
dklop�rstwrx��zachl��oswnd-m	oons�]uo�na"8pcehJ
pailrve^�i��a;aorkn.�ae[	e;ei
y�enes�s�u(a%+iceh�ql�7pt��arlnvare
6d�sampesa�bo'qrd>�n�e�i;l=�nc|nrt\�ur}a?� ;('�e6�ohE�yanif'sޅtrn'_i�'-acd�efgiknpstw
yg�Eop&�tl��a|a�ol�'(�rAtMhaer�'`kbo�i�'��eh�ilrsei
y�e��n�e�nelr�'b4fei
s"t��e2�ieiy�ei
y�e�l7�ntMRul�oate
f'6de�-ml�'	�e	�il
s�t<�e	�iy�'aj�eio
sy�{ln\oa
gnab�ur�ue��pa��r�'-pstwjo�t-ei'Hl�Pec
dr�txan�o�'�a
s_ge�id1i�t
yo��eYnO�p-aeiona-ndo�dmn�uis]Au�aRef'?�de9ls+�io.<mln'ean�sVah?gs|a :r�'-a7@bchilmror
stufor-Y�thn�'i�sract
?un'Fahferyei�'
d��r
sa��cl��rIvE�nlat�ei�n�o*>vei�'-
d�:h
sd��p��e
ns;|i:\o]a{e�JeA@ilrye�i�'-Td
st�a-lrsa?�zU�r�o9'a�ci
�slBonQ'g9'�p�t-abcdefghijklmnop?gqrstuwxyd5Rods�')isyt�Jo�'i
n
?st�'eim
s
y@�eng-Ocf��aistp@raeiorycgco�'6�n
srmo>�rP7a�n|tggan�'ei
sX�n�s"`u�'mac�koqi�sunF�tatY�apheBJrue��vmV)w9'7�ad�'�i'Hl�y
�'#�c
d�XfNvhi�hnĂr
sf:u�ers�'9�aeg�o	$stheQr�ei>�lerPol"t�'-eis��w
d�rt�'�ei�r
smto�6mae�iouy�n|yf'rdnrs�'i
ss+�z�a]�e	i,mmYrai
rga �wo�'it�\e	a
dekls�otuy�gf'��dran�bZnMtienn'�Ce	f'-b�e;�gi
s�xwb �gh��rri�doƻum�ot3o:dex�a�'9�-ab�Dc�efkPlmops@ths��taKBw9'el<l�'4SaZe�i�lo}s�hlpyool1Pei�n	irygKorrap�hk͘i|k�'a��begin��ost2�y`l�'-�5a
dR$l�r
s<Ddf'aZe�i
su�'�nr!ieu�i�'-
d*�l
sitn-c�Nh5iwi�s�'rac�e�Wg
n�'i
st��iy�'�ae�'6r
sio�3ul�'l
seli=cr��i-d
klrtwwh6�ix�y	�'b�eikm
s��ta`moc�riÿta*�kao�dwee�Anf'c}ehils�'F�abc�etig�lps
y�yrR�aaNiszoiy�eo�o�'-a>�cdefgip�klmnopsr�dht�ln3uea�v7Go�zressV>i3e �krl5ialla7nacy�r�'�da
ses�sa|ei�o6n�snB�no��tglnp�~rogi�y�ce�sym_i6yh{ie>�il�ja%�i�Oo��py9'-tu��r�'abcefimnopqrstuv�swry�hK#ah�'�v-b�eileaS rig5ha#d��aA'�eentf'�e�iEo
saxke��din��dteiIodo�'�ei	�sdR�i;luK#ae!i�'�d�^m
saei��nn�s|s��tcd�Rnq�e7�i;l=�nؒi�o�'eio
su�'l
slin?vi�^l��oilnse�'ױsiSK'Tsg6�orgei�os'�ea%�lchst�ya�'&2ni �bf'�-�iei]�uad�a�o�'aeiro
stlPr�'	�ei^Wl
s	�nstzaeto`arMa�i�yaetor'�ss�'rdm
s�'i
s
c��sei
d=Bnrf'}qe i
s�kncgB�kl;�pr`st�ahf'-Ma�deilpswyaj��stnd�-ud{�g�oyp1�i
d�r
s�e;ln��e5|g(eiW�na
�o6d��pc�tree�Zo-fe�ehf'wU-ei;l��n
s
d��n
r�s�e
n��o�'�eimn
s
ns,mt�'
�i
s
ya0Al�a�ei��qf'ei�o
s
dT�r
f'-G�abehilnprsb<|chlprT9a!�ei2gnaóto2gp~KaZ�o
dl�Hr�'e��il
s�det<�eingg'ise�!a�eci�'e�Bh�ils�e|s��a��e	�'cgef&�h�mpv�weD�oil
lat��h��ol��ea��eioe�xmcg�n
�a�ioslogi�y&�c�se�Unipd�'Tshlc,iasm6a�o	�'b�eim��nos�poake��r �d �t�hm	aei{�nou
wybcdfgijmnprsuvwyecula�e
�Ae�rtehiktry�'a
d��lxGr
sryeoa=o�'
e
lM=m�'re>�n
�';-beile�psx�w3�aeesU-su�i�'aiEo
sb!t�i�l�ov
eiu�'-
d�dmn�rs
�i�`oame�'Tsc�mp�wan_�teoV�p��ntion�'j�a
s�cafl��gib�oc�'-k&l
sca��le�ieiZudi�y�a�<ecH�aom5�e
�iln2pt	'baei
swlaX�za�y		'-Mae�i�l�msCObspotG�t
de�r�'shiQ�ppd�o�'o
sr�''o
s6aeϘc�'clmp
s�7wai�ne�ird�lf'eilo
s
dc�r&teif'
d"r
slinBei�ns	9'ck�gmnqsz�eO8h.Dei�yesuil�eil++to�zi
y$]s+�t$]z
abcdefghilmnop�lrsuvwycltt�e��iEo
s�plakn��oaeloruuca�s��indei
s
dnmct\a�lu=d��dmn�pdtuctNai�anibpyueit�'iK�o
sow�n*l�ru�c(�c�pxu�Haeiour�'aeor
sw>5b�l{e�n�a�eignxu0r�>i�e��irmf'aei
sObtiovn�'	�a
s�sernd�e<!ier
�e�irsess�eCi@oiupsm��pCse�ntn>om4�ae~@fstnc8Yte�i��yto\�r�'�eio
s
novn�'�a�ei
se�if';l��nrsaiout>3a�eiEo
nĺo*>vtei�rca0tc
�n(�eaeiou6n)r�m6ngstra
�n�tsiOb�oQv
staeiOb,l�ngRrIrt%=aei
dT�r
sationalf'"l@sc�m!zne�aa��hilouc�rimfT#l0rantf'a�ei
sJ�b
�t9�l�>nrs�(wt	'l�aei
s
d'�ec�r�a�e�ite��rehxual�'i
s?sUtipmc�p�sen��tbrstantiat	�e�i0�at�aerssa8Yel'�lti�st�e�ilvania�'�n�'depso@oz�ei4�oa6i!muMaei(ns��thoo��tal�gh�'/�c�er]i
yma�'
stai
�cs�*z�a
�e	i6m;�ae&0iolrsf'Dne��ilI�o
sD�eingg'Fss��tFaei)
tle*l�%o�'n
s:i,�oabefklmnpstv�w�7ycdsth�Rler�i6�o�yf'i>�lCLm
soun�'Ma�osrei��y�'-
d�r
str��o�e
n�'Ma�ei~m
s�y�e
n�slein
g��k�'rdil
sb�tRGei&k
n�jo�'k
seio e
nlis�'-�eio�wwonnrabeout`Wy%�olN�eiy�e"nn�d�l�rl�ocdth�'aei
d��r
s�'�e��is	$yettdEei�'S=h�o�Vai�dcp�s8,totrhhas�Msik�Roe�siHoęlabcdefgh��klmnoprstuv	bc�fd|�g<�lnstGxlBpue$tg�lula�u8rMth��ol�e$koaeuli�l
?s�'��s)�lnt
a�e1Pae�'Cd
seh �ik~louyf'n��prtenni�saat�PoiloX{r�an%�aFnooroemth��a�
yetThK�lmt�eoƚnom�ito6y�'eiN�l�s
y
drZ'�i6s�y�e;l��nSsl6to�rur�'7e�ss*[pcl�ei�c�n
�se�Yi��n
dn�rs�n�tef|�i��loc�cV�i��cf'��eglorse	idr�'-�e.�fi
so
hyceriN�dnometr��i�ya�m�pe�&da�bilot]*en
�e��g�'�ei
s
no�unf'w�f
sW@t�ub�gf'�9aHVbe;lm=�no
s!�u*�r(�stFehQ�ropr�i��e}2i7ldnt
�ha�ei**ko�'Urdtad�'C�ih�ir��yotol�Fu`!dz�m�'
=d��l
s&x�'a�ehilop
stwr��tthon�"gta��aei!�o
yf'
d
s�txf'�6ec
natBei�n�o3�dH5ls�'eW'ei9'
d�rg5e"n*�yiO8r�eehotyct�ei��o
sW'a�'�w(�d�marnetllab�i�:le(iou;l=�nrr�sn
�;'6s��rmnpvh�'a�ei
sl^�niUls�m|ti��ra�eiZ7la%�uf'l
wi;lbcdgiM2jlmnoptu�vwyrf�iha�e�interKa�ik�dlod�k�ll�'eio
s
dy�'2,b
sp�'re
sJbbmpeXle�9i$s$ddrsheCip�'ei&�s�ehiop�io�y��bc�s�'a	$s8lnspher[9e�ii6yieUlX�nf'
�hs��tky�'isX7t�m�tb�gnpstald*oei�'-
ddNmsshoohooortteX�i
srdur=�mc�Veie�9i�'$d�r
sesrf'7e	$se`sa�'�mrsbe�irs`0rrdl�'	�e	�iZ�l
s�'9ersacdef3gij;lmnrstn�c�t�eku�'eX�il
s
dre�reiE�o�leN�g�iry�'}�af'-
d��l�n
r@�sbtml��of��a�l
n�s&[iablpn�5uav-n�'ei
s�Qd�rt�'-ei
s�	ccdkKa��hleif'
d��r
s�'e.�f!i
sTd�yq�odst	�'Gae.�fi
sw�y
dJe'�r��en�e8gorthi
y�e��nh�'/�fi
s�nn>'�u-�i�]op�ss	a�abeiorpu��wrA'eisviSctc	�hnsa'CstrstG�smots�hlko� vXsngkhBdaknem�#oa�+mL�l&�sfy9'-abcdefgiKeklmnpqrstvwxwhi�Comrta�,o�r��a
aea?�pPr
�'a;�bey�f[i�m
s��u�'rl
s�'
d=�lr
s�'co
s�lulaAe�io�i�s�ums�uk�s�u�'ei
s
dr�'ue�9i
sq�os9'Idt�'}qei
syf'>�b1�g
s�'�ta�ils�nr
a��e9'a,e�ymabDrrai+�dbei�mosualr�yr�ueX�if'-dr
swdriyedrs�|o�'��f
s�fe
e��iscenc
tdmi�lrBu�'�o�s�'l�ttu�'
sT�uf'a��b��cdegin
s�'cb
s]i�r	�'��a
d.�fl�rs]�ue2YsLm(�asut&a�es9'kcp�ns�'a
s6eb�t�'�ie�i�yl|y�'Dne�i��l
se|i2�lpu4�lenr6wcRnwR�ang}a*uabd�2ew�fgikmnopqrt"vnga�i�n��aio'?udn?qia�ete	�d	f'bcCtf**j#�prs�t�oharge
i

d�rrs�'
suc"Hk�e��in�'rg�'eim��s?�s��yJc�Rsen#cieonris<tEii[9lf'-ab>�c�eikoO.prstbr�d�oY�uuc)�kbg�rl>�ouc2l��k>�n�pe�yf�u�v�f,hot8,io�n��a�aseirsn�8trnh1tu�uo
�e@�ile�'-dn
s�Pdnec��k��oecWkc�Dhksa6olnro?�o9'ryo��r�'e	i
s
d��gH�r��aN�locGk
�'-aeost)�ut[�uknkham�e>ulamg��rr�'�eis
a
nhi:p�i�ei�lf'
n
salun'7�ahareYtf'ed$so��'�e$sM�'�3�anM�s�azaeio�pbx�B'dgmin)s3tdle�i�'rd�rrs�Ygaelnr?�kdn�rse*tzG�'d�il	$sU"ya��ledCeCu�e �ie	idr6sZ'	$s�jfvef'w�fmrson!�ttNiyf'-w�fNeN*fNBnNIoNPstNahweN7on�k�p
cdglnrst�xz�9e��h��kdlN�e�Di�y�'C�g
s|ail��g
tf'�e	is
�'-��ef>�gik1�nst�JuloX�wilrse|seDi�yi�elf'e�}i
s�ytf'e�i
�o
s
y�'c
sthf'�e�Oi
ye�i
dr�'<�ei
s�yyez�~l�'-fps��d��e�9fƀhstw�;it3eQdrh��i�oi�Tr�ahew�eS"e��oen�cn'
yoQr�o9'S5bcd��ei�klmnpr�shofi��le�o8nrrpani�uf'�cD�s>adeal|erlW'cm\msasd*toR�uehio�'c
d}vfswasti$sMcet
sX�trioteX�ik�t�r$s�lto�u:�i�ocfX�n�sa�5li	ky�1c�e�'gl
srapLhogi�yt�c�esaeonn�tio�yI�c�e+�szs�uaur�'
sQVu�'	�dres�'l�nsW'ean'�skiairt�'ދi�sziF�kg��a9'abcdefghijklmnprstuvxzrbwL�tai�sun :gquit�i+qo	$yntu
�;'a�}clo�9s��y�'�Hah�l�5a�d
�fm
�pe�uf&�r
�a
�i|ao��'lM�sogiB�yIc6Dsa
hln�diy�e�fUl=�n-lo�&o�fg[hungpan�>dM�'�a�Airua�il8,e.acl�nmz�nrstuvyer�'
"a�o
saj�m�di�ck�a�eterw�'
seirriomBJsa
ot��e�ua�(if'-|xbcgxdfhlmprsve�h�teo�Jrntrifugae6l�t'6d�lmnp��eservati�s
_vaist�il��ti��gbNi�`aiocroscr�odn�getan3eo�Br��a<Yaotun)�uJQiȮoructu-�r�<eiol5e~l}YreA�ras5�n"|sbilpaeiorFbnlr�'l
sife�r�'sq�tlic�a
i�un6saZe6lta�aeW�i�'eg�se�'BFos��ansa�}uf'Zeirst�n>�reent��'-abcdefghijklmnopqrstuvwyzeng4qlbcdefgilmnprstuvwab&lorsstH1h#�e�ire�vm�bidg�eor5bachkqd��eeoru��npta�eb�i�lmumpod��aal�ni��sntn�a�eed��istom#�eiev�a7enowlecVduai��nadjouv)pres�Xs�#a;Buu�p'rlter��aeinrt� uti)ssedl�ysthe<tf+reiocte��il��iC�rgre7|s)d�railtr�me'g&kv�n�ioԵcY�w)yerV�a�ebeiop��uigtvu�i'oi��oalen�t��nGa��cr��tli��fainstl��y�%moun)cwerMa�eici��poplog�eZ5aeratlԚsiiVusz ieociat�eiveE�l��nap)v�ncri�Vagmt	�y!-u�e�ioz�rurZ�eic�
uh)kpsaH1mi@�raeiui�lmP�r�b'g��s`�a�2mtaer��cinfa7en��s)d��uaicti2�vbutaa�e�@dgt|^mheontic��a�iri5s)za�eoila�i7�bi!-dakr�1ee=�nrsaeiloru)k-�lnps	r:Fn�sti^Szacfhkll�nrtuab�lfa�etif�uom�~iittin��golV�dnown�si5te�fvB�aEe i��ad��nk�deioua�ym��s��c�0nkNc1os�2h�iV0l�rsu)wom�e!i
sndi�eaeionc)d�ha�k��tn�cdg)l�ekS%ecdfnrt`kWgf�Wed�lk~d5i5n\t	aehilortu�clnpr)stuled-Y�fnoi
y�e;l�nn�ii1�prsta�l7eiacelog)u�Dhgo��r7g�Psalnr�2sebԵrso)retmoP�naiin;l�n�t3faeir!ilnpr��slenge	i�a
dge ifa
de�ra)gi�m)tcteris7e*�t,\s!-tck�e�i6svalrou�sistvse�i,xarvcu@�lm��cil�Ei;laeiou
dis)m
psifi�a�e�'a��n
snrK#el=�niry�e=�neUl&n�drr�s�Jm�,pkNal�g5stcLuh!�eittהe	Ramilmnorur�vloRaei��c��m�nz�ru��rb
�efmp�ei�XnortB�a7eeiounrtZ'7esciali6ssz�a9e�i�a9e�i��t?�nnicat�eSYiaelornio�Dnnt��sitiveUlX�na��eii�2ncmate�de��nun�Xdeohse��n��sm׈i
cdfgjnqstver�airv*:anf'eition�a�eio��u)n�*rrma�ibQle|�nu�suga6l�t�ze�yuceiotuio!-nu1scr�Wa�gdli��dirtutionaly�i;l�a5um�e��maer��imi��nnstծita�eb�lolvl�a�eersn(ieinrtion�dat�e*:inl�c)k
lprerP�a٭d
kreouc��ltaa�eb��oRpn`prtti�a�eaBBg�hae;�io�Fuc��ka�@du�stU&a7eViW'sw^Sd)nd�i�}ulrs
ttiהuvaIb)t�e
l�itto�maeioruY�ymr)tucVanH1t
�abcdflmnprstvatGa�eeil׎ojMidp�'aedf'Ul�sherMa�eהaԳieiacLntGae�d5l�}n0�eive�5r��aocn�rstrla!-ien�d-abcdefghilmnprstuvw��airsnves4�te�ahpea��rore0resent	a7eehcret��aerif	�fc
gp{prhtievei
dZ7m�r
sZeirs�nvpre0�ce��ior�hl�dZs�e��iusd�hahlourr[2i��aaossf'	eh�mth!e[ia;Lo��uvt�'ueDi
sr�zteorvelop�e&m�g&nZ
edmsxԳuphlasisCeoۣyti+�mplWo�@oeloru
de�Ldoow�o��anZrd�e	@iaor�r�ei&naod'
sYu)�u�rwandB�en|�vvest�e�i4�m6saeiY�yi
ayd
na<Dt<�en�(pe�giaeio'nnei
d�r
stseoata�hurish�eme�
naeilori��n�r�sy
d\dni~m
srform9a7e�i6snn
s�e>�iaj�n
yp\>wulat�ezi�!eio!�cvilcVed2�u
�aeprese�Sn	cehih(koptujo:�ac�dln<Br<Dt)xretar[_i0�yeio�lrr�iyri�o�jr
t�dgzn:�e�9i$se
d�lw�e�i6n6secnifi��c7e4�dtaj�eorufn'�tf�e�ida]i
s�b;Lc�oe�un��g)
drg�fahok�e>�iinXg�n9{o�wst�e	@iiliszae	iyb		td�rsae	iyb
�t
d�rsalu	a�eiaehiort�yi#a�+i�nelm�ei�s|�nry�e�ort�k^li�>otY�eik�tcei�Terveira�eb,�i�leocrt}�a�e�m)r��ne�rilo)pa
d!efglm�nprsvu�gferen�te��n��s��ui)m�ynlomatic�Za�{ecgmprstc�ehilorar^Sgp�l��o�gvimi�rn��ua)yutڪe�uocl@�i)viPorunguis�5hai3tc�br)becLir�_s	Gac�eyRgDim&nuumԯeesti��c�gbaei�1iim�*a��sn�k
elta
y�ni�t".i
acdlmnqrstuvxrst)nth�eiR�l
s�ei
y�e;l=�nMa�eono9�miuf�t5iY�ycaU(b)tecԚtbopaerra��sl��lti;�o��hloy?�as�emL�e	cdef��gjltv�;lru�ym�gbio�un��g�wrgeiu�su�zorceaiMa�do�Dyighten�e	i�mehrpriY�sus��iiMa7euail	�eils5z7e	@i<�e
y��pv;�oD�g�2rcso^'Rren|�t;�hlog�HiaelnԵugeln;l=�ntfu2[lacepti�cgmg��evsir�peiuptiona�b8ltx�a�ei^Ssr�\cV%aeהil��oruc�;ntB�eaoi�5n5d��i)r�
er��gen�d(
uaeiloru	�dilm|�nstv^Sz�2l?�rth/�fteդriliar��i�lhk~tio!-nheo
�rؕmoru/�ar/�a7ei2gt	a
dei�lm�nrr�tstib!3il�e6y\>h,�u�2l'gi9bn|^mtili�s�Xzln5rtxi)l�gtU�a�Pd�{i=�n$st�e i�a��eiaԧeigps�Etv�2gpa�bh��i6yoz�r؂un��cclruus�e5s
dloZ}w)ceg�kmtsee�Sa
neii�o�a�^tvB�a	
ein�g<a�eu��lh��iuc�]ona�tkxgcLn�*aeioueq7od�kzޏuend
�e
iO�l�skNcV�zitfui�llnrsfillGa�e�i)d;n
l�ynsHiyaeiloruilvnls�Ii
y�Ya	�l�saneit�Hra��llema"�nft{}ea)um5zor`odvli
y@Re=�ner�}na�ouc)dmste�i2�fmatic��a��p�Ceif5i!�ydY�ga�ecLilrԒd-7aaeiouylmnprtlo)w�gpd6g�e�i�ls
yomP�ep|eti
ydmiEnv'e�ef�io�uni�you�s�ec�Xha��delrslr)t�eth��fi
y�e;lnes0�sd�i�-d�eTfin	�gp4!faɼeQ9ocLlita�2tdnsU�t�Gd�e~i�gdgto�Yrl9mkNori
yc�enesJ8ss$�e�im�nr�Zar
tH1igpi�ehV�ea��bcdflmnopqrstvxx�iae�io��uy	�m4s�fl�l�d�rcl	;ei	Bn�sei3antif�}imgorensviectionalsi"l�aio	ky�a�cwerm�'�ei;l
s�nta�i�yriazna5�eilterali;ls
jm(�tngual|iUlumsV�i׎taopgina7e�b�tId��laelorהi�csa)dc�
hement^ga�erstanc
t��en�ie�\oss�eSYi	cdfhijstvor�
p;oeustria��l�zelou�serma�etiۆvaibi�}tbite	@itial)tiu�s)�zהuptui1�rarlnl6s
a��e
i�s)nby�tt��i�zuԵl�5re6\ulnrleictg!yen�i)d�teprst#�eini4gr�WeupteGi1ydeiV�o3ts1�tn�'��di�ss�z
a
�e	i,m��torl�t'�#aoces8�su�;eon0?y�eEieosP7yGrxf'�unf's�u�'aei
s�yr|si
y/ah�cV
d�m
s�e
nv�zaelre�vn[At�irsa�e�ilf'i;l
ss�tz
�e	imM�t֐'9ea�'ouc�dmkRe:Fmds�gti;l�nfiB�a�eeinm�pndkel=�nrr�sG1i
yeow��ai
anng;lX�nrsaeioubcd�i��m�p�8sU�tu�Cw��yel	�e��l�eyrl��na�st��drU�s�,vnڪei
sZ'6ste�irZ'�e6s	��bcgkmn��stve��n��h+�aeal=�nb��li
y�ehTnooNdr�biԒt�eZ-kera~pr+�ae*:a	�dakNcgovksed�N-ei
d
n
sMaei
d�<lcqkaeiou	&dgi�kkn�,prkNstn׫intain�aealnrsgefadi
y�e��ne�9i
dreG$l�dkre
d�tue)ichae�ible6y
d6s	acdlmnrstnsi
tڶuhani`!cu�su�zi�Va@�co�tdi6cBFoor�Sationa�eblI�eci��it�eo��rq`h�a�sehrodi	�clnst)xi�tdfu�lst^ga�eakB�aea6nb�ylig�Oad�<lnrtuve�1i�
uru�a��nit\@oal
i�Dthioer�eUl��v�rn�1rtaa�e	i�sMa��e	ifnrstzf�ilchZ'��e�imurin�gical�i�lX�n@�i1izaeo�3u��imtvGaeMa
durali;l=�n|�s|�zig-�accLeiress�aghbourl��iy�vtuice�Sa
d��r	��abcf��iprvswxjlst'vecti�$ov�"icet�surva�e�i�bn1truct�e5iar�$i.6ucu�pfe9:in"d4ss'ei�;ptnio@�ni߷mdgint�|a\@ei�nani�Xzginal�iUl�.ahodox�lyi�daehiloru	c�;d5gilrst)vk`�a<�ei
s
d��nr�e�i6sa�tad�)el5stllr�eon֌a7eiame� nis�7z�Dsteu�
r�c�)erti�o]Roe�1rr�e�Hgorple�i
d6scfstei4qpvU&a�eo�u�*rouadSWsGa�eurԒbiylosopIDhsiIcoloIDgc�.gnkt�ei�sur�Te1�n
saeou)c'n߀yasa~e�in=�tu�8gl�gmbGa�ee�)ilps�qwIDti�l��sti��cular5t�i�emsaeioctic��sa	�el
�icdjmpstvedenteV
dicta7e,�bud�uiedi��taored�Znsse�vsces�Auri�b�Bn�hr�e�uen!�d�te�`n5cnoܬvctir�p�Sa7eriti�s�z
bcdfmn�8pt�uvlematȟi�
euulce�^is�si��pդsounceMader��cs�6t7|u-�ae�i'Qord
nbnlicsi5s5zh�a�Oe�ic�{itual�iuaeiolnified~pltifԚinsc߀htionB�a�e�iet
�eUlX�ntx�a!�e�iaeiountnv5kso|�m�e�aiacd �efghilm3tnpqstvwcdlshtabl�e6yiv�a6e�}aG'i�yis�t)z�a7em*�tosna7e i�
burin�geoi6^pu�vgnr�vnisz��a7e�"i+�aZecsilaa7et�0r�de�ueԚme'i�or3turenߒcige��rei�une�<r�esea��rnfo^�r��aei��a�n�|ae�ova�3eiurkMa�ette�i�dn׎eaeorian߀tt!yar�teosentP�a�ed��uu�oe��ieioptarrcu�hv�1estia	il�5vo.6nf'�8ior�{raiiԒn�co�{uu�cei��oa�rl�e	i�?e�sar1�dfgpv�Plhteous�l=�ne^Snrr�s�gamlma�nflr�feO�i
yacehiks�lmnoptuwyE#df�ilntv�ye;lrr�sa�e)t)nb��rc��iti��f'oi��usfa)iyctori
y;l&nn�i�eo.ru*�raԯehirl��tGaeGadeodr�ur�oenti*�faeium��tbBlvse
wpt�e3`uptu�}li��nacdeglnprt|wx
lrs
twcژhona�e�*b>olorthFviy�tu�rX�u)�d�im	$n�lޏmr�"eef��lct7e�i6scionscWaiW�sstaiti��oti�Psi�qm��a*�ivice-�a�dtle ii�dJ�m
sZei6yiesaeior� c5dkprk�vB�ae��a
ne�d"�l7epvseX�nal�^t5l\>teoTp�;lc
d�rx�ki5qunkx�a�li�Sfgmީn�zh)nt7eli
y�e[nplifu�iilffl�ef�u�7aiդla��p �rcr�ilp��ruiab
lijldi�}v�eԈchޓi7gnX�r?�daeorX�n՝rac��l�nkB�a	iit��afi
c�e�aik�krRtl�ettisma�ona	u�yaeioruy	b;Lcf'i�,mn�p)r)�tle
yX�n6r4s�fda�8ra�mrdiye;l=�n	�d�rc�s�"i�gi�Qcgm�n\@rma�tula��tpprsfa�eiaeiuvsi��pa��s|�ku�mn�gc
n�t9{cdf�Qif�ey`ylbcil
nprs�djmshtu@�ge��rcitri�b��dantia
l)tces�rst��a�e�lepr��vo��rrtMa�e5i
e�9fpv�
aris7e�i�ecpteyapec�;nte�in d��aaeo�Xyer�,tդvlV�lmnsmpe�tath6)eis�ichro�)ntge	aehioruwycgԯiV�klmn��p�
r�Vs5uԚx��t��gԯevk��e`g)n�alnstx�0la)dObntue�!the�rt�Wuiornk�ain2[g�srught"0feioaZ}dteR�nfti6yUlX�nb�n��cd�elm�zp�2rr�ti�Gye;l=�n	�d
r��s~e��e�l�.ruwcrha�eb!3i�l�oiar��daeiouc��d�imnpv�
e5k�emsflpe�o�Drat"a�eoru�s��t��pel�rZe5lan�5tUd�e�*mdu�Gdr�beKglstrr�ste�iw6yortG$hh�'/�f
sA�cvsrגtiV0sipu�reical
Kglkstal�7hMa�e$�uitl�jieؕraeiouclnrc�ii5u@�dq��u)i�yny�Ximinrt�e�
i�is�e�/ix�a@�o�@s�Zt�ec�uil�caehior)�g�oi��l��nr��st�Gv��i�nr
yantfa�ec�sehGa7eTfadil4p�nra^Si6ybl[Ae�dgh7e�Xtc�lomen�iUlX�n�rio�:plesom�eelnrs�tl�dl~ein=�gr�d�6kY�ned7ode;l�nrr�smnruk�v=ated�l�kl
n�rtdR�lh��i
ynd7e��aini�tr�kioelդdk��i'-abcdmefgh�ijklm�oprst=vwteom$
p-�dthe-min?�unisha|d�Deraiin��gahou��ys9e�tuckue�9i$s2aY�munt�err�iva8�irtGaeif'
d�r
safug�hrH�oradaa0�eieioa�l�#v�sll�sdstere�:i
s�yo6he�e)�ai��of<�ntf'�e�Wi
sar�6kei
drf'-cH'm
sc�a<l>�aluass��m'swtf'
s�t
ns;taeio�+its;e	@i�ag��svhtf'��e�i;l=�n
saV0osr�'��i
s^'<�acehituwal��e�i�ztO�odl�ze�'-
sr�darg�in��rtdini�g�e�eF�orgBe�iOe>�iF�aehiorum�prust
f'�e
i�s��c7gmrn	"w6e�ra= e�ir��d�'abec}�degil�noqstuc�Weln_�i9'l�s�ai&0u|a2=n
?uaݿen9'�a�4ei.+ost
�z
a
�e	im�t{e�i�yA'a[�mt|y�'pla]3sehr�'Ka�i
sarai�'
e
lsti'�cse��if'
dn
sW'a
c*�en|sKhgqra,el;rMt�'
s&Hy�scچdglshordat�a�eerniata�mphM�yog~�i�yWdc�rtuh^�a�a�iulra8iicar��igm�nuaR�y :q
��'a�Nbcde�nghimbnbopstu^'bbf�gnr�ii�l�'bgV-a	I�'a
d/�f9lnr
sbl6eCyٙe�'-n
sdfghef��iriendliyie0�ne��n�*oa2�mer�'ei
s
dtba
n�cbs�r��iarlf';l�nEeipp�ye�"o^'a;cefi�@mort|8h%Jn�'nr;s�jsi6o�u&n-13�8�6�2/�cleistz�ya�pe	ia�i�yrianf'i�sa�Cei�)b
�tpia�'n�s9'6�i;se�ic$?helr1sa��emYi;l�@m
sesfof�rcp's�^'
�ae=eula�'
ar
soricloi-�do�ubJiek�'�>i
9'-arbcdefghibjlmoprstuY�ymna�ix�e9'cdgiklmnpqrstuxz'acirsu�y�nt�ei
non�'�]ei
s�nsin�a�ellat�eio"n�oa�io�vul�uRa�eHeq�uairubrond�')�a�ei
s�i�ynaio�'re8l
sstmp�sF�lan�c�tGe6s�ln�eg;l�nlori�ye+qoro�'ac�dehiklopuv#�n1Vrre��m�'dnr
stictiori�y~�a�ectz�ei�yJa�ei9'n9')�eroraui|yare�'�bn�'�ei
sudinarian�'�Fi
s��aad�sun=`c8ta�i;lTnt�e�iT9o�Um'yri��e&aeW'cj�t�y�
u��o�irHu�'o2Yuarrais�oaeibt�leio$d$s�;n�mo�'-
dg�l�r
s�afor-�Qmo�e�i�oulaAeopos��e�9i�'�ei
s
nr�e|i�'acdegi�,nqn�r
s[2tux�zd"Du&ai2=n
?ureo~muFvae8�y'l�'i�ssz
�e	i,mQ9trb;�i�'��s9'[�u�^ls�th�ein�~gu��inZa�eiod�n�i;lTnru�'(i�o�s��w�yr�'�li�swiyuer��o.ai�e:`gilmns5|ycnt_Ro?�aaceos6xbntiilote
yW'�c
ate��ieol6sla'��l&s�dIg
st�sa�i�yl'u4�atot�oe"�tiynish�'(Iei�iceio:qstulai
r{�tti�d6s�'=cl
sXyine�'6d;sl�
t$�i�ycmponstrict�iFoo��tre.�sa^lrrf'�e;l_�nrs	'i
s1�tc�bdgl	�nevill,eCtih�a|n�'�Beq�Tur^'�s^'�t�u�aPybcdeghilnrstxtor�'�ei
s3a
n�s�zaWzi�'�n�s�xj�p	�rf'aeg�'�En�sbNBmrsturׅga8,b6lrt��i�ei
nOov�e_geie�n�'��b
seYSimen�hc8t�l�n
acde�iܾl �mo
?uv9'
ars�xzque��z��r�'�s�1t�utrzcdEui��p�tr�\oe�et�'es
y�d�e
adegikrnotubsl�t��le�iEo
s
d}(t�Jerstza&�e�bMt��eM2iue�le�a4!fa�cr\�sl+�i�l��eo/�v݁gmu�'+qos	�'�a<�eiL+or
suf�l
n�a
�aio��cloqui	$y�esCe,m�tme��dr�ae�iof'
d{rs�ousl�n$y�e��ls9'�e��iabd��gi'lmnorstmv
y�'cntiF�r'o�tda�'9h
sr+ibu�'a_
e[2ior
sltf'Ki;lrs�isk�t�e�iuu�gareiun�aE�c8t�'�cgris�'_ge�i|n�r�d�ef;ls�qt��zi	ky>3a�cwei.gmil�giFeiocf�l�ne �ioulqelmpo�^sla0�i{�t6r�ito��u�rn�rut�'`�e�'ae�i�o�'x�c�l�'�nnrai�ei��cq�uuca�'
e�saei�o�uitl�<l	�i�'
d
s�tcO�f�no�lol��on�'Ka�e�i
s
ei6sb�xra�'
e
lزtcg�ga�e~�io�'�ernaipIHstucKa�lula
rtei	�ds	n|o�a@euc :c	�'a�ei~m�=r
sun'�UlxabgX�nX�tuFal�e�ir)a
�e	ivi�<u�'ce�o
sth�'�e=$lr�ain�qa�eio�<r��aS�eiV-w�af�s^'^'abcdegijklmnoprstvxz�b�c?d �g͌l^nI�eruahnJ`pta]�r�eio
nĺo�'Gr
srnu'�m	�'aehiktur�'�a�}i
s	 �.'-rdgnr
sangl�ac�lphancellor�{`'s�hi�~president�{`'i�usa�ule�%n�te"�o&�gy�'ssS�on�
osrg�is>�iW'e�
isryr�sYy�2bio�.rum�'lbhKi�l
sr�'i
s�ya�e!n'o�'n�'i�ssm
�salf'	�e	�ie�l
sc�naeW'rlloic�e
�'cd�egi{p
staoss�tett�enferenc�eiis��c�kra�mphFe_i6y2a��e
d��in
stwntra^�e��iD�cmniCng�a
�'�ae�>f�g>�i�lps
dr�'shiJ8po�i
�r|Aceinosiaml�'a
snmct�ei;ls,mZtett8�e��irHu�'+qo
iaya�vn�^wij�rng'�s�sMaeIilmny;l�n
r�saei6o�u�'ginr
se�'�r
s�yn�';_a�io
s�y>�eou�ve�uvr0?einn�'a�s��geuW�ve�r&.i :u
	�'acdeo��styigc�reiun'n%n�t zW'�)bl
�a�uaeilo0vomian�tc�*ati0v�'g%�l
s[�yar�'~es
y�'�u�a�n}tll�'aeio
s�'Ob
s�8t~nt�'
st�a�en�s�'c�i
sell3oXgncell��i�o^'�eM�saeg��iotug$glo�'��e6s�o�si�o8,u|eln�'iu�'[ai
s�a�tlog��i�yua�eoli;lغss�ui,o6c�tl�sen��c8t	acy�ehiotu�'Ze�g�i
s'�ye#�io!ura8l6msu,e�in��st�'�c&�e
s}�n�bg��l�nototh9'Wzi�sn�''�aZei
sf'(�a�eiEo
sf�ra�u�'
saolf'i;l
s$]s$az[ms�paei|ortu�'
eli�mi;l	$ss�t
�z
a
�e	i6mlrloge!�n�<bKacl|multur�e��iieg�*eiof*noai	ky�cܡc�el�'-zif�el��oXep|serat�e%4iaei	�of'clr
s
ei6�o�t��di
au�mkn�na�n�ad�qefps�e;l��n�Ei	kyar�i-�oect�ei
s
non�'@8a�isen�'i
ss�h6.�ia5�c$'e�fsdE�m@s9'i!�mvosa
t
is�2l'bacdegilmnorP7stuwyaiobltg�l�uf'i;l
s
cs��z
a	e	im�ti�o�vferKa6�ode�d�ra�kG1ftsҭetoo�t'�ejDtu)�eiX�sc$~dl�pei�'-
dTflm
sa�Kb�o�Ycess;l�nai0�lra,e-6.acd�egiklstuvau-4�vtil�ei
{s�txLzaI7kni�oc%�s�a�iem�oraog]rtion�'aslsi�l�eswag��eey�'fJb��ei
st�e�'ae�m
s�'�gi
c�rpZ-bmnpty�i�lei�'
st+\r�}ntaۢeri	$y�e;l��ns,m{'ttu1Pa6�oO�e5bie	�ironaIsdne��gdoo�'Zei
s�n%�sabo5�stc��i�inezz`meic�aeio
�ulsla'6ssۮt�mt�s1Pau�e��iyeacsvh)�eisafsoFir��a�'ei
s
d�laegei�'
d)�r
sEuur�'i
ss,mmtG�nr�o��ae��ioela}>noZ}m
o�leilvwl�t��tcgn9bpt)�van�'i>a
{s,t
�zar?Xt�ei;lHDas�tt�z
a
�e	i�merabi�ll.�iur�ei�onSsuze�l�9s

9'a;cefhi�kmnoprstubvwyabcdfghiklmnpqrstuvxyzcL�f�s�+a�mbkroei�oI�s
y�^r�s�eTn�'Xade1gisZeX�iN�lCyzC'
d;rs!tf'
nrsk�wEeftlei�'-
d�r
s�%if'̓ei
s	�'eg<i~�no
s�ht�'-
dr
sec�a�'ei
s
d�r�aeiN�lo
dA=r
nW�snert/�'6sn�'-els�lYrtd�o-liZtI�gha5�bafhklmn�oprstuT�vwnr�ut�uakar�u:�i�']i|�l
sn8a�e�io[lmpaeio�i�;nrd�t�we�im?�ok?�warimu�k�VaVFhruopvYua�if',eX�i
sa[ekKer?�tar\if'VJosuwcotf'�ei
s�tng�'�si'oQ�mrightf'rsau'�p�r'k�uaMre[o�kr�ua[pt�')�b>�c7e)�l
s	f'aeioprsknr?�e�igi'��r�a?�e�'
dQ�m�rwaew��akX�nm}�te�ress�'�e�i6\tVFkhVDeae�Wi�%o�s�'?�rt��y�i�'
df
n
s3ui/�ue��labcde��fghiklGmnp�rstvk�wch�uiri�dho=o9'eD0hoMTr}Yamn&a�'�s�'fep�rrs�'rds9'|ae��r^�t��a
f'-aeim�Go
s"�w	
i	
oth�sr+%b�xw
dr�'
s$�veX�n-�stalk{�i?�a>e
�'-abe��fiop
hsyet��yo-�	w bc3h�ln�8rwal?�l�9a�i�y!eh�i�ngco
dnr�tyN�s
P'a��wy�efe
nrs�oc�p	�wF�aW'�e�uf�ourgisna�dc��arhinj�g�':	ehozj�aen�'-on-tham2le�'ei
d�r
s�i(padegik;lnst[k&�m�'��aeBo�sre'�il
s�u�'a�il�n�+reif'
d�r
s�'ei)s6y)d|lr�'�s�e��nae
bef'3e
srs(�oZsrtbX�ef'�eio
snf'Ze�i;l=�nrsi�+t�a�'abdefhilmnoprstw
y�%t'Hloun;n�ur�'eir
s
d�n�reoss'�e�b�o�'h
s�zj�aousei�'
d$m
sar�e|iE�eo|l�r�a�e;ln=�e|g�e;iop�c^r�+i-b��ehi;l=�no
s}�tbr�d�hY�uloo�dloodZe6seattrnsg,�snger�'[i
seq�i
sW'
dr�'okn�'a�eiC�l
s��i�taeincp gnwkna��bdt�y�'�a�ei&o
s�y��e
nabDg
d(�g)�n`!gnEogMTtam�#bc�a&�h�'b(&hi
sry@�u�emmic��kah&�npst�TbeKt�'��-�habcde�<hi��l>�orst
ynbao@�uY�a�wl�o�a�y��dr
s�'
swo�m�eng�'�T-ston�'];iologiv�sMua��o)�tu�b	'-�	i
sw;Da;�aerman|n)�aeiIHrf'-b
d/�f)�lp�r
s#wb��pa� sa9sa~�p
aceHXfhxk"Slstuna�bhf'�'a��bd)�e/�fims��t��wog�'R�g
sa�ek�nEe��it�hrr�'-bcd�efghilmpstvw
ybc�g�rs�Pt��eNdior*>no�oo�le��iou�ddra��rrdZe%irs�c3ror�cl��uo�rur�'i�sstZ'6sa��ef0�t|�ofLaog�r�rwl�'Fe�irsat�heeo
_lu�s�en=�eg-h�o�eioA=l
_ngJo�+g6sae3�inKBrlnroo��f�'�kh%�ik�cp�gi5iu�oa(mil�e"�a�eho�2e>�r�<e^'�o�')�ae^�il
hs&zanei�'2�brd
snI�g��scCgkpsKheBfs�a�ua�ue�i
y
f'6nb
df�glr
sorm@�ae;in�t�gf'}qe�id#l
s�'�[beiw
y
d
n
s�e�n>�i�o
�'bflmn��pw�swill
'�s�<sarEeDia�iH\nyS"ei
sar�gke�'sbA+f?�o�uaB�r�9o�"'abde�fhiPklmn�prstxy*0zklnprstvwU-��ef]ilp@nish��'��ei
yn(e�g�'�drsth�'�i
y̓eil
sin�gon�'e�i�nl�r
s6de��r	>'-aEei
s5|ytgeb!3i��l`�e;lns=�eg�lrso�mel�'Ze�il
s7e	iryher
�'-by�c�eHXf�sgi�mps:vb��woa��rX�ns�ze�"i	�d	�s��ero7otripprsZeZ�ieX�if'
dr
s�'��b
s
�'-bcefilm&psAf�'e[i
d�ra�mst
f'T9e
i�s�Qreo�e"\oh�nsp<oog
f'��g�saii��sX�lstre)�sig�p\�ta�'dgln
se>�i
d*�lr�"b8�ei�Xw�ae
no�BcessIdW�feK�bf'�[bd�iknprr�Sst�jv	�'�egik�nl
s
yͣr �c�e
nil`�l�'kk-"�de'�l�n
hsnd�'e�i
srdD^rZeis
ye�nf'�rs�tG1i�yf'I�ei
s	$yeUln

r@�sX�e:�gbixr=m
9'b�deg*�lmnprsr!z0urstr��ahf'��-b�ei
strid'_g�'�eil
s
y�e;ln=�e#g;eift@e[ia��bes�Yt�'d
s�e*i;l=�nYos�'mWLa9�ucdfo�klstw�homen�if'
dUlX�n�r
s	f'�'aCzbei�!m�o
sar,e_if'-ae��hi�Dm=�nsryabcdef�:hiklme�noprst��uwdj;Buae��o5r�ula�n��h	i1lhoo�Gsn� nei��r�|fsv^.eivsgel�,osc��pip�|l�{a۰dn��qsdo5wta�b7eo�
rV%un�	ften�et�~er�n�hoaed�n;Lrs�tan	its�fr\>dg�a);a�9lreps\@a^.ee�o7a��c�upturuc��tp��ph�
iorought-of�u-$
d�|a5ii��o�js'n��d
drrs9'd#l3eng=ubton�'i�s�Ea9'f>�pHRv��oh9'�e�iD�m�#pwomD�ax{e�'ei
s�c
dr�'�ei
sa�wi�ytscf�ht]bf'.{cd-Xgs�tei
sry
d�l9'
nleyd��ae-Xnrt&�nw��oi�db�sZh$alste�y@3e�oG�'bce��fhi}�lmop�xr;swG�oQ�ru��rh�`erl_�mniHy�.e�'H%eiH'm�ss�z
a
�e	i�mamp�p�eng��h%�ei��oJ�nn�'ihg*o�qaH?a��of'-GHab"�hl=�nstwnu�@rac��ka
yuit'seidO�r�sa�rHXf,�l*0dmo@^uL�faeio�#uycklmnrtkf'}qe�Wi
saptaPpeX�i�'b$d�n�r
so�amn�'m
s�e^Uiy>'!3agam�np�rQ�ao�$marYaTef�t�v�'e��isda��l':�ac�ed#lE�nsdrs-hieir-vun9s=thamacal�lehi�or��neirn:ya`sYsdtaelnrt
w�y��lt	�'egi%�lm�osFa
neE�r�r�eSsaet��o
dlz�]l
�'-bce�hi
swc?4laKor�sD.h
dr�'s�e{�na�rei
y�eRl�n�a�/k
m�pf'c�eseso�?eow4eeA=r'a;bf�i�fo�s�tuvwdr
sb
s
to��uXo �pith�ah}s1�tcfglmnprstzh5'�ef�'�eil
seWt�'g�sK�e
iei�o�s�'�upsi	$yc�eaUtlcu�eg�pin
y��he!i�d
i�ur�s)iey�'ck�lps��oae>�iloK#n
dr�tf'-ssn��anapS pe�'Wtor��w�af'lr
sf'�eip
swyv�g
noo)�l)�iܿb�eikptf'ei
sy
dr&�y�'�e
s
y�e
ng'rserf'e�i
s�'leif'-
d)�r
sb��slowLe�if'abce]�fhilmO:nstwFk��r�yom�b�'-b��c�dfhlmn�]o
rstw�y�=ch��o�oa	e�]o�ii�l��rAjesh
	'	eaeo�lv�ead
�'�s^�r�uv�a�eyeGoeDi
s
d�r�s
tailI�'rsa�ls~�th�'e�eiʕa��nrsL�e3eoX�c�wun�'dH)ta��yail�o-Xk2lHep�ne��i��e�Rof'kz�ib�ei��a
'
ade�4ilmoprs
d�l&rs&vuniM tverZ'ei;l	f'�fghOAm=�nswr�taea�ra�olei�'
d�r$sh&�e��s�es�op�sf'ei
s
d<�e}trprso�eie�ei9�l�'d�h��i4�m
s
eo�e_g'��a
s-cdefg|iklmnprstvzf�ichka
9'�n�vi�'eAhil
sf�dprtq�i�'
s|Hw�'-k
s�gkee��peefRp�$n�uiv�of�feg%not-�Kb;l�Umn
rsa�jef�rsoqn;�rcr��eei
s
d�r!scp
trenere�ae�o#tw�'ehi
so��oh�'
s��wl-mns�a�dS"e��i�sbeaAd|ln�zte`i�'lRGei
y�e�n
�'�a�jegh;lI7n
swe��il
d5rge�Oi
y�taf�g�mit
	'lmpq�seaMke �dedian'�n�zuionI�abcdefh��iklm�(pst^#u
yeurf|to��r-,rap^o^�nf'|acefl
il��m��n	$slbwat�'
s�Zt�'br�sD�e
P'
dni�blo�wi
y1f�'
d
hsryjlorue2ddl*�lnz�eelm�'b�iei&�r�s�en��s
�'acefiop
sC�uy�'m�rq�eoc�x�k
dmn(�rst�aas�"t܇ua��en�sN�wmv-r�'sapt9'�b�oaptgh;l��nGWauwghW]b	�'V%b~ehir
s
y>Se�e�$noGw9'-n�it"aei^�o��s|r΁tng�ton�'�i�sf'�ei��oskjhbp�sle�d�'Zei>�l
s
y�e�n��sf'cdefgiknorst
yzehikf'
d
sye΁t�'ei
dlrs|l��st�$eelmax{n�'�-abcefhijlmop rsuw
y%b\or>�a�zlrueak�'e
sr�c'$srn�'Zes�theia��t��li�dKmr|xpy�'m
s%efLa��lo��e�e;ln��eg�'-ss��ha)7m�kaRGeis�l�Arw�'�-�eig�l|zps9'fLi3&i��rchlo�3tuwr�2eieq�l�Ja�c�rr:of�-e'�par\�d�'
dgmrsonl��ra�~k�iy��'ak�psfi2ire|d|y
�'-��bګd�neAhil$m�]ns�/t|�lti��pRGei)pkp�u�aE�r�ef
n9�rf'eil
sei�'
d�r
sMaeioG�b�rtWk|e�Qnpqge�w�'o
ss��k�ya��lot�m�oehorr�'�egi
hstr
�e
n
s�z�irC]oV�n�i
y��ieif'Ga
d�r
saeir
ydj�+u�'-:�df�Zhl$mr
sthtղaap p|`re+iss�'�eUlap��'p
s�eX�i�en=�e,g�Qa��ucdeh�9iptonsin�'��iɠe�o�'ac$dg;lmn
rAJscrac�4k�puan�she!ei	f'-�b)�e2�fi�+lyl�Ming-�w-wa�\s�'~el�i
s
y�Ee/�f	�'chl�hn	$stwh�'-cdei�Mhra*foc�ht
d�r
s�t�adehi��osra�ew
a&eii�n
sf'rdrrs�eilsntg;lrs\t[e
f'p��o��eolde�li
snf'rgt&mamIo;e��i�'egis
y
dnY�rboer��g�_oenq�s]]c�e;lt7naterm�s��e�iaerd�';l�r
sn�e9'
�adL�oL�p�wabdeh�fgklmnoprtuvwyz?vdbeWJule�i
yf'
drr
s
'ge2�gC�ohou7Fs�'b/�f
seg�o�'32g�s�'V�ei
sng��hW�cdfl�svf'�s
�'-��bäef"�gg�hiorswhisնt�'�Di
n��s��wam�'&is>oosgmno��rraq�bgo�ntonec>rer
sh�i(tampt��oaben�'hi�`klso�z	e
h	ii
y�ek��n�'�a�e1l
sn�'folk�'Zs'dgktrs
tq�aeC�o�rr
�'�b�e.�f�i)�l&m
s�'a -�npig5bewon�+gf'l�i$s
yf'eh	id�l~rnagq�gdel�filmnrst��z�'�labce��fghil5fmprst��vwyei^�lu�ruTrr�nYyahNorurv@e>�iZ5iNuafd�tt�'
sɎt
dnx4b�	d@Re;l=�n�Tro��uY|u@�en=�e$ga�e;|ionx{wټd�tu6ws~�e8,i!poug>f	�'�khvim��tw$y�a�e|�oa�lurfRnaiord$�'�srkD^m�'Ee[i	�s�'�'-e|fgilosw�ig�naotheZ�ro�l*�nWtei	$y��n��e=�n�\n�torth9'se�+rsockogea�;mZhr�t6ej�t'�Is
cd
eklm��nrstester9's��h�'-aaKb�ef<ilps
y��bperrfe�co�Tcg��e�i��a��lreT�smwitdhorth�'ia/�n�'-ab"�defhilm>�op_^rst|�uw�\sto-r�ubs�dhr>8ili�eyoli
ac�so6puaeos�Sk[in
�a�o
�aloo�wr
�co�r�ung�'-��m	$sxyt=�w�ceE�o��sa�en
�sr�t�'rl|dse��i}vl�`ro�`rIpf'hiop)�te\ory6De�p��a��ao<�peio
�a��e#�md�'-cl
sv�Ww�cfvw�5aie��w��e4_o?�iy�=-]�i	�'-�eD8h�Oi
hsw
yc��e�tw1�aiye/-ms8d�r
so]mf'2�iw��aehtf'
nipf'Dne��f	�i��p
sf'-e�irs�2cf'h>'i*Kl`\w	$y��e;ln��egW'MTt6a�|clndSY'}v-�n@�sd�'q�eC.i
sV�eo>'�ei
s~�lnS�z$i
maeinou=qycL�f�inp�stk�'ue�9i$sg��eAXl�'a�p
srouh�'4!fac�knstxkt��ei
sh�'�ei
skf')�aei
s�'c
sh�'�e itf'�eil
sge[ich�'ed
sc�e;l��nha��mgnstghllgew�i
yt'
sss�e�#gkl8�ei	$y�Pe
nt�')�b
s�/w�'+�aeN�h>�i
sk�t-�a�r
s>�d�`oY�u
scntu�lgf'-d�e/�fhi;l=�n
sc%fhe�NamhoeHa
eh�_aght�-�wo�'Bnd�hlnrsfs��ideorkind

�e�sk�wlr@�stK�zE�eiH�t�u2=zsf'feiZy�Pei�w�'i�'
ac!rek��lgkmnosl$?tk:oatch�_eh�lt�oeprro@�o�leĸhdrnyS=h��am<ning9'��iiwygt%'-��68abcehilmo
�prstuvxyar�mxa��t��y66ns�vat&zd�xhie�poxeӔi�oӊv9'mn>or;sa?caio"krtX8ht"ax's�bcg-�l�npt8�iryNy�a#MrhafCio;nb|n�ei�a
c��io"|x��gpxh �y�'ei�d�sn�got�sh�m
'a�=imnors
v�xiarsno$�';sm�p~�e&zgng&zn
^'�|s`�a;l
�pcrhipL�is�ee%�rl��zrunC|niZ'ӌii;lvxӌirvrxiӌi�i�vleo,mn	�lpsho��n
'-2ab
degilmop:�rtuvwl�a;sa�k
bchklmno�p��qrstw6yb�eify��e|chkt�'̓ei��snC_gae	@i�snd�%aotJ�w)�oN�z�'��ik�suCa�
e}it9'��sha�e(�gl��o�t|uCi�"o�'ab4\mo
s�g �h�an�uussoukw"rc��dgkh^�e�'6ot#�z�'aei�sMTt}l
de9'i�s��s�>bu6nt<bd7�elm�nor�'a~em�#s�g�ra'qeZnste�*ro^�o
�ouF�lsla*�vabo �gC�l�mnwri�vgobڪiC�ohm�sma�_ki��n)�a|ef'�ei�ln�}p	$sf'e i
s9'ae��gklmnoprstv�wf'r�gO�hrs|t�'-aKbln
s eorn�V-io	$yfe>�n�eq�i
st�'~ei
s
y�en�e	�gliateriPnl	�pa3tf'�eio
sw�'-�e!�fh�eik=�ns
ybel3lam��mn?�i�tenn'i9';sq�t�'iY�n
s<�smva�en�'�l�er�Qif'�prseIkr_�vanf'��-eh�,st�nrsic�ver"�dy��e�iBmtush�{egdra��s	�b�cde�knpszdrsish9'i�#sldf'<�e�Wi
sf'djiba+rf'reprse�ird
ehu�vk�oang-�ycI!h/imav-bdgkln��orstuwyoZe�i6sbhmi
s�i<�oMae?�l�ahiou�Iu�'�c
sur`atr��teino�'
d�l
sapataw��p9'��h��a�/kn}Ygd|gk��e�s	$ek�\u�'eis"�t6drapt'Ys|e�nhire�'ɞm;ses�tmi��ta�rta��b'-nrst
d�l&rrs&vknow-wh�aog�i±k�'b�e?is�etEe"�osel
f�v�eu�f�Ihu1�b	�lv/rsilaʃnterjrrrjbaWbcegklmnprtn
�'zhbaa�ck�tl�i
yndu}YmYao9'slav9'iRsaP'�Un
f'k�orsZe�iry\oae�'b;stidK�e-�a;�m�\yg�n!
a
f'prsi�e(�f�i�tR�ae�qo�s#�tcI!h�a
;'8a
�behil|no|rsuw
�xyz�0bcdgimnprwzagl�ihka�8erxi�yie�'rl�ebrat�*s7�e]9ibeWi�oe-NilFoʅzn��h
�d|ei}Du	$yz@�e=�niLbf'aop
s
�ur�otoz�h|ae�}i�ya
P'thustrMa�ia�|dh$%iqIzabcdefiWklnoprstul��x�'aond�'er'Yst*Ou�'�Dr
sehmi�r�uN�dharxi�'e`�o
s!�kbBh%�l<mru;_gfL�i6n�stgeX�bistf'rs6yPilmick's�f9'I7g�i^Sno�s
P' �bJulhpayni��ar�'
s�uelin'Y8sY8smo�a�'-�ei
s`�tԵr�\st�'firs�yul;l�Znpe
aa%�l !tgrs<�x@Vmadeiungjiak�oano;vn��gvKaeekbdeglmnoprt�|oovW�ugfFlel�\dgzu|yraf�gZ!c$glbmabwe�']=a2becdefg�n�'�e�,krsandel
6�'�s�'}qe�irsryn�'i;sPhs�'lp
s6x(eBoe�Oi
y
d�qrcon�'(irsf'�hrsot[_i}ty	dkelmnorsuiʙa|aloveN�rv�fb|a�ia8�eX�i)k�cly�t�'k3�lmpsxeepI�ef'�ei��o
shl�oyt�e
�ian��kX�panthel��l��c|norastr�erian9'��i�sm
�tA�n
igmocnbcgkl :nM�renelsgen��ucha��mckhin��ier>bBmz�we/oӣru�'l�sanRdioen&�b?�gr�?ydgmrtuecco4�m6ptury�g<i�ot�hg��a;zP+123ABCDEFGHIJKLMNOPQRSTUVWXYZacdeikmnopstuvD.DYZA6BDGE.SPP'.sABCDFIMNOPSTWZcdglmnrsu'se'CMe's
e'gse'LTcUcHe'cPtecCe'DgscSe'cDSZI'gss'A�U6sC�'L'se'AIICS'sBCcL�'IOIrIM�P'.ssAO�CcLe'cTtive.XWorIdResearch�'-AHJMQSZno.nail�iazezer�aie�raida�'au'e?ida'�se0nhwari�fahil�iawahir�iiga@Oglo-BFINSoe�rrenc�hnrdia�ni�sor�max�oanfura Se�ahem Lan�dtroTurfe'toCADI'.ABCDEILMNPRSTaeiloSc�.e'SpIrCpS6ce'cBCS�'eee'o6m-RIEO.sIMC$TIC�OrTe'L�WedF�ZLF'e'hai&r.l�'e'rD6ckyCBou6rrsrow-in-Furne�sse-Terr�erwick-upon-Tweed�'tTorrent
e'ackBerriye.d.sin.gsynia-Herzegovin�aup Broo�k.ABDEFINOPRScTVfhilorLit�.cDcCcS�'-SC�sR0OIW.sO'.ssCIOe'�sAG'NcS'pse'BOrLcAcIcRU�'�s�CTe'�scTcS.sICT6BaeuntSer.vZillster-le-Stree�trch-of-Englan�dnemaScop�eermont-Ferran.dcmorta-Col.ampander-in-Chie�fuServe�'bler Ped�yMa.xe�la-RoblIeeoutzfeldt-Jako�bws Nes�tABcCDEHJL2MN�OPSVWefiouye'LRcTne.tPGA�Me'cST@o�'gsCSTegsgdI'GRB�'6s�'�sILcASaSE�Cs.ee'hgsQiL�'RI'.sDmR�'-�sR0OGPGKMenere�sals�bte�rorgaCnE�SCMfpr�vapri�oaggio�'fie-HellmaE�dectS.Xho�wCuoM�oglas-Ho�mPon�tfed-Pow�yCDE�GKLMNPSITUadilruvcGMAScript
Z'cPcCcGcGcF�IcEcA�AcEPcTe'cNI'LeAstEndeFritor-At-Larg�e.B�CGamQavI�nro-MMP.sillioInaens -He�aPritchar�drRead�yABD�HILrMNO�SUeiorQ�'IsXI�IcR�C�A�MRTRAcNeDdE�xreWi�rrt-de-Fran�ceeB,S2AcBC�DcEHMN�OP�TUinru.BqTXCS�EcQ�ze'IOcTcPcUe'IUIZ'.s.BtHu�buPG
I'aeeco-RVoiunea-Bissa�ugu Yimidhi*rBDEFIMcPcQST2UaeioucOIDSL�R�Ve'ICVe'-npegati�voseicO�BMXLmrersley Rang�eley-Davidso�nartlthPA6Ciot-Wa�tton-le-Ho�l-FIis�h�fru�tghton-le-Sprin�gmpty Do�oBCDKMNyOIPQRSUrVnAMINABSCN�NrM'ps.d�ips�EXFcG�Re'.srACcSo&pI�OIP�S�Ddto-EuropXeerCit.yFaucKvaScri�pdaeo-ChristXi	cBD�FGKO�iuw�E�BXKA'ku-Yalan`jaNZdebe�lulu-Nat'�ABCEcGLP2SUaeiyAEOmou�rnfangtruea�lvertu�rcJXDD�'�scBcDe'rN.sS�ATVneCX|eguageToQoe-EMnfie�letfo�rbgn-rL~aeOffic�ehtScri�bkedI�X'-.cABCcDE�FGHIKMOPRSTU�VaceiuyNaghte4nDI�Se'�AcIGeOcM�ze'	�DFGT,3�P�RS�e�i.sST�'3h�s�'.si�lcIe'cGcT�ce'cVF	8S:OcrstABDGIKLM@OPdrthurG'ri�diorarmUinanl5del�la�wryegoCrve�rntyenziCeeis�hil lhe�ronnell Rang�eie-Ann�eterCar�da-U tABCDEFGHIKLMNPQRVdflame'�s�el	�eiste�rri3dalorubfil�nru�efre�yl�'u�mthn5yy�'is�meye'le�yaeiui5nll5antoc�k3rskeCynr5ynel5lmic5kac�yke�nlleor�sug5hae
2ioniZermot�tnuVw
?aVngal�lnro�eadrd5ela
An3e�iloruy�nv;we5raet�w�hg
�ofifae3ra�lnto�y~saein5y5ensnz3ismonlnsGa�e�e�oigh5taeuruenF'gh3l5a
Aohaa7ih5oaeilmular�aghto
%nZis�hher7suee�aei
tgrcedes-Ben�z.B�GdCentra6lrrinh-Pat�hSpae�cQl'ABCDcE�FG�HOPSVcWZaeiouyDjaemenaI'menAFST�C�T	,ACD
AAcQ	,OcAcC�AC	8EL�SIEIORASDcRXAR0A�D	6M	8P	8Q�C.NtWes�tWwSee cAgei&rs.mastle-under-Lymc�kDo�zltlarbor Plai�nraSwe�eQu	i'�A
BCnDEHKLMOPS	6UbfnpBCDFHKLNRSTr�iaoseye'nnXeo5r�eowTny
Vearrel�lair%a�eggin%seeff%eea,reile'%leoill�yur�khue�allivmaoo�l	�RM�'.sQS�'ei�sIdnIgEIDcBCo�E�'nG�HZei-W�aficeM�aeDgren�BDGOPSocume�n.Lffic
%eG.P�SolarIiA�BCDEHcJqLMOP�RS�T�Vah�ilorue'cCRSCF'gsCA�L�'�IcP�R�sIAIF�PcT�P�'cS�T�eigsnggPLW.3	8Te'�AcTyPalZ'.DD..e'.sayStation
e'.srswt-aou-Pr�if-Spa�itScri�perP�Co�ieovelly Parto-InbdreBasi.c&oui-c�GkTi�mA�C<EFJNO	8SrVaocFmMeCGU4.5e'�AZ�a	6RLM�Ty0Bper B*aACEGIMOPQRSTU�VcWaeotuyqLcMcPR�Se'O	�SW�Le'cC�M�'�DGMGRAPGHU.s�LSA�e�i.sF'�scBcPSgse'ee.sARCF'stati�LSAA�DcEcWIDII�S�Vint-DTenxirope�zacMon	BkurDi�surtceFor�ghend-on-Se�aaeoruirMast	ern-Volme.rckkton-on-TeesI'e-on-Tren�tatford-upon-A�vdyLin�kb-L
tQues4tcBEHqK�LqNSVQWaeiLNiNETTgs�e�iEGXrtAz.z�B�'�3N�s�Znami Dese�rXlF'eeePrompT�ter�s.Bmpo�rp-ME�BCF�HKNPRSTUcVL	8SF'SAOZ'�sZ'EISqCCcX�EcIcSZLZ'cA�BGC�DSG
Se'F-13.8.6.2C�PACcDF�HILM2PUocTXGeLRcWe'nP�CcFSS.s	6W�I	AqH�N�SWaeioA�S�TFCIcW�'�Illta Wal�lon-on-Tham�ealr-T1eTe-FnF.igiRZA.Ri.prdlP�arexsdCo�mEcLUNmI�XacLRun
Zn2M}Wa�io.KC�Arra Ri(vuTu	�be�illick's�Fln-HJ,M7QLSbZti-AB�CSWmericaniksritis.hemiti�cs�mester.Eleg3a'BAEIrzezz
�ou*y�rstain%gvoi
�r�'�Wd�i�mBM.Vay
e'erI'.susi�cMOPT�a�Sahodonedune�s�BH�VWzF'�hIRS�WiR.CN�AAT.AcroR,S�Neoo-CDGLMNonfucian
<iarwinias.m.teoor�gt�hatiarxis.m&tazis.mnr-AC.UbmorigineriXca�htho�lth-EWast�'ewrl6n�yard�sest�'OeVw'Cloc�kHar�'.sn-Europ�eeo-C	Rhris�t-ARmeri�cepub�lRou�Guth-EWast'OeVwJsest�'erli�yFeb-Saha�rRN�An-Eng�lPir.oce-CPhancellorF'shi\presidentF'i�sa�lPK�j�Z�����vim80/spell/check_locales.vimnu�[���" Script to check if all the locales used in spell files are available.

grep /sys env LANG/ */main.aap
let not_supported = []
for item in getqflist()
  let lang = substitute(item.text, '.*LANG=\(\S\+\).*', '\1', '')
  try
    exe 'lang ' . lang
  catch /E197/
    call add(not_supported, lang)
  endtry
endfor

if len(not_supported) > 0
  echo "Unsupported languages:"
  for l in not_supported
    echo l
  endfor
else
  echo "Everything appears to be OK"
endif
PK�j�ZȮ��{z	{z	vim80/spell/en.latin1.splnu�[���VIMspell2
usaucagbnz����������������������������������������������������������������������������������������������������������������������������'0Zaeiaeyaiieairareairereairearalota lotareairareearareeircckchtechtichtuchschkcisdijearareearairearereearierearaireauoeeieiaeirareeirereereairereearereeirewoewooewuiewuewueeyafphfghgejggjghfiighiuyieeieaiierearieuuieuooighijdijggjgekchkcckqukwquoeauoewoeuooewoouioouooieuphfqukquwschstiscishuntionshunsionshuncionsizecisessztechtichtistuchuewuoouoeuieuueewuffoughuiewuioouyiwquzssWkah(aeiouy)-^*har(aeiouy)-^*ra(hr)^*a^*ah(aeiouy)-har(aeiouy)-ra(hr)�^*�^*bb-bbcq-ciaxchxc(eiy)-sckkcough^kfcc<cckdg(eiy)kdd-dt�<eeh(aeiouy)-^*her(aeiouy)-^*re(hr)^*enough^$*nfe^*eh(aeiouy)-her(aeiouy)-re(hr)ff-ffgn^ngn$ngns$nsgned$ngh(aeiouy)-kghgg9kgkhhih(aeiouy)-^*hir(aeiouy)-^*ri(hr)^*i^*ing6nih(aeiouy)-hir(aeiouy)-ri(hr)jkkn^nkk-kklaugh^lfll-llmb$mmmmmmnn-nnoh(aeiouy)-^*hor(aeiouy)-^*ro(hr)^*o^*oh(aeiouy)-hor(aeiouy)-ro(hr)phfpn^npp-ppqkrh^rrough^rfrr-rr	sch(eou)-sksc(iey)-sshxsi(ao)-xss-ssti(ao)-xth@tch--tough^tftt-ttuh(aeiouy)-^*hur(aeiouy)-^*ru(hr)^*u^*uh(aeiouy)-hur(aeiouy)-ru(hr)v^wvfwr^rwh^w	w(aeiou)-wx^sxks	y(aeiou)-yzz-zs@htht@
willboymotherfoundnamerundiffersuchofonorevenfourallfatherwouldIneedseeplaceearthahotworldhowhereyemuchstudywasgetwaywellstillfordoesschoolaboutactplantwherefewthinghandbackthinklargehighalsolikemovecallbeenjustandsomedaystartaddgoanyknowlongwaterthislittlereadportgreatrealsayfirstleftlastdon'tsoundcamelifepointfromwhenhewordwentcouldworkafterfivelookputsaidlateeightshowourouttheytwoherestatechangemightsoneveryouiffoodinisitfollowhousestorythanhimtreethatlinehundredwantgrowoldmanbuildgivemayselflightmeantoanswerthroughlearnsixhomewhichthousandfindsmallhardsideoveronlyendsunverynorthgoodowneverykeepsentencetimetooagaindidcoverareuptenuseachthoughtmakedrawanseapressasturnsettellnearhadbymusthasonebigwhileatpagecityweretheretakeplayaskcrossformheadbefarmotherairwriteyearlivebeforesamewiththreefarcomelandninepeopleclosesawbetweenmorewhopartweroundthesewhymestandpicturehelptheirmynowsevenrightnumbershouldnewthemthenspellcancausemanyundermenbutcountryoffnightthemosthistrydownlownoletwhatkinddoyourshemadeusehaveanimal.a������/e����/i����/o���/u����/n�/c�/y��/s�/V��{�'�('0123456789abcdefghijklmnopqrstuvwxyz���gmnstains'�ton5geath
treCuwt'�hwai'�sxGtth02369ds284x76'�80'�i'�p80x720'�p6t6-b7i20x1080'�i'�p�et�4�dnyzeda��b2dg�r�-0x24'�0�e�spp��'ctx4'�sth4�t�-0x4�82�t0'�p�-0�t0x6�0th 
 '-.abcdefghijklmnopqrstuvwxyzatnh4eslevels
km.Sa.'achlrs�hen'siyah:'dTghovwark'ssolfv'Usesus'sn'vsitc�h_'abcdehijlmnorsuy	bc�flnstx�akus�'�eon�edoneimswdr'sngent�'�sar'�eeh	idmrsent�'se	i'mdsly!e	itoi�ria'�laeor}y�'ss:'i}d's�yss�st�'st�'evissateidsno�n�s_'s�
iou�cm�einaollsyplasti'�y[eclte�iFosde
h's
�'lah�'asdlrtym�'asrtdotncdnryornwy'�sombie'seevn�'shireinathtyantte�lUssion�'as�lstwythst�e	iFoanct-eorrse	idnrc9tedglnoaeijn�cdrsng<lUsan:'aitleintetiy�e�'gdongteneis[i'�c�ieucti<lno-ness'�esrae	itio�o<rd�rsaeouytz�ein�oveh'ls�ye-r�sbodied�oti_'aseog}rat�ein�ormal�i<lUsa�dlmruv�risthe	imdrs'sent'�sion�'issm�tinab�tleyintginaelh''ls's's�sinsgeisd�rfnovacie7nn�'iss�te<lness�'ntd�e	iseh'bgonarou<naeioucdhmsadabra'�sse	idrsatm�'}si�ove�'<lnsessh'�eac�stio�ndge	imdmrsent's�sent's�s�agat�eiFonon�'�spte<ln�rs�tess�'�e
�'aceiotulo}meioss�'e	idsssa�i�'esnde	isd�rinlh'�e	is�ct-ei<lm)sminded�lness�eder�'issmanindedlnsyessh'nth'-eslruGvteih'<l�nrs�t�os-m�tbpaeisnc�edn�rcti�ye�')sn9gti�oveityaeirinm@nious<lness'�e�snenrct�laucth'ei<lnosdrs<l�n�tnovn�'issm�teess�'�e�rse<l�n�rsrd�ei<l�ns�t'�mth'�s'bjnstzbla
's
dan�c9taeibl�eh'd�rsnv�eimstlo'�ne�ne	id�rzsmsa9l�'a�eilnia�'�n'acehiklmnoqrtuwys�cdnprsi�aeim-ei�yac�esh'aisl<lGsa�sn�'shi�p'�m�ath�uulctou�s.eilortudlnps�e	ieraot�eiFon�ovg'lmet#et�'�e	iosu�rarlRti�l7st'�y}etaei#osbntillit�i�yey�n�ctio�n6d�rnjvg�lne�ss�'�eiobnoi�lli�tn�'�e	isri�s�yLa�eze�isdssdencte�'-aspronlh'<lnsaiimmh'�e	isat�imvat�ein�oszaeitiond�rsngae	itionh'd�rs�ilmrsuadei�'�dsn�gmpodat�ei�n�ovenalniye�m�sdrs	ii�csh|e	i�md�'a�eisn�c�t�n�oth'�e	isntt�'a�eisbn�ileyness'�s�c�tng�'serreim�s�dn�gentsh'ei�dm�sent'�sn�gtaeudtit�a�e	is<ei�ovGea�e	i�llmrsturat�ein�ovulat�eiFon�ove�lnas�cteed�l�nae�itlti	o�oveh'sd�rs�'ome	isdn	�'sdlnrstvlula'�rt�rbai tc�tal<laioyblmn�tul'�a�udehydinophenh'sil
�icbgnact
�ee�n-eisclceholinesterasrned}oaeiorye�a�'\bd�nrsunoa}rno}nlia�nelm�nr�svae	ib+ld�m�rsle'�a�se�n_oomat
�id�n�'i<lnosucfm�ti	pyc�eationetri'�ycalZless�'pshile�i'�sei�slo�uenrmanY'owledge	i�ma6d�m�rsblu_'�ee�'�dsln�rsuy�tc
iagu}atstic�ais�a�'uaiinta�e	isnce�'shi
�perstsce	id�nsRae	id�e'mrs
�siti�o
Lvsta�e	i�ln�ceiouy�'as�gdmei<l�nsrsstn�toni�yeous<l�nbclmnpsat�'isc
�a(se
�nect['La'�segal�i'�yy�mehot�aobi-alis�'�esti�c}xlaimtid�e�e
fc�'a�ehiorsue;o_'novgi9oC'Uscdu�e�mn�'Ra<e	isaeit�eUiFoh'<l�nsw�x
�e�s�ttn�re�s:'alr
Uti<lss�tzae	itionsdsa�e	iti
�oi�ya�e�lf�impt}f�eoruin�tessur
�enctur-e�ieh'<l�nrstcliocal'lvi?r'acdehijklmnoprstuvwzs�
:'gimnp}r<sHx�ei
fo�r�'aisnth'<lsnab�y:'k�oi:'}ataeiosbt�ile'�yion�'iss'�m'�td�r�nnovin
Bei'tg
�ren�i'�s-aei lorsuon['sTbm}sdnrd�'as
Du�'lse}yc}enstth'�eisn�oveZlnesgton'�oiovn�'�asexi�'�lsrse'�dess�'ae	ibi+lli�td�e�rscJeit�bn<eios	n�ovrlnpqateio:'i�d\nn�g�'aiouetrn	�ehimvypophys[e[idh'�asa'�st'�ao[uirLaus[eth'e<l�nsrstua�ct�ea
�derrse	idn�rsrc�ti�ove�'�l�nsadeCopr��batical�lalsuh'sx�iocsera'�etiesondack:'�saeoucen�c9tctiv�a�eiunrn�e	i�msdnrstv gicat�eion�o+vr�'syct�'i'lsv@a�e	itaei�mosbleynjvr'�a
�ain�saei�nr�'ian�sbbinHgaeio�n[snnrstx
i�scsl
�uterra�bt�eiForn�ov9eixae�ibl�tl
}ey�'st�iy�'sib�oni�lstae	inrc9d
eit�d�sn�gu�rnisth	lei�mn�gat�'�blnprefpscen�c�to'}othis�':etRaeisd�e�rn�ov�eae�i-nb�twl_'re�seionaelh'i'l)sn'-e<ssr�gae�fnt�'}ae
'itc�nite<l�n�rs
�lorbpae	is�tdnth')sti�ove'le�lmatt�eUiKo�'eh�lnsrae�io�y�nRt�r�su�soo-dbrat�ein�ove�laeiostncte	ih'd�m�rsage	i�'dosu�snrt�'i�sustv�mt�'siaGo'�l
�ereio�'d�rsos+m�'�ensmitusbst�'isal�'<lsaeiri�ya�elZl�d<l�n�rs�t	Gn�th'eios�dnsgVein-grialh'ssrc}lsae	io�b9d�e'm�rsr�'�is	)yca7a�cteih'dsnojvUnao
rr�de	i�'dsglnoprst$e�iornotat�'�sfri}ce�aid:'l�niuanQsyor�n
Saioael�'�i<ls�'UrsUt
-abdefglmnpsengi
Bncousti�cairtic	)sco
�ai	)s
�sloZgak'�ein'�gryo�mnam�ilasticiZtloo}ti�ler�lammssi�taeogne�tdiJcdell
�e�iautic
�a(shlo�ao�n�anica'�slZlh
opteLl�aheatF'i[ccothuyl�ulapiautphiet
feic
�ai	)sasn[''�s-mvalte	ihie�rologiyca!labcdefgilnortirck_'�cbrNiaeilorbFiniley�rscrth'@aeilsdr<lness�novn�'as�te�'�lessne[se�on�tadlnrxn cav�iiat
e�ie�ima�e	isti�oveh'<l)sh'�e	iaiutus�'ect�eisn�ovenrc�trdea�e	isbniVlli<tc
saioy�'<e	iscgatei�'s�o�v�hn�than'is�s�'s$tce+rionad�ol�daou+mtoxi�n�atter�or�uemstention�ea�ihoug�h3aeio	scka�'n�'i�sszaei�m�ttiCo�d�sn�g^adehia�aner�'d�so�m:'c<stentriWcsm�t
:'ropica�ler-bcdegilmnstwcehistare'	�s	�sffec�tourma
BgchoLoas�tiurt�hrnFeare
''�s�sae�mc'�kffec�tlo�wmag�eif�v�eaor�tk"e�so�'ah�u�lao
dv�cahste
'�soug�haordF'srd�l�'�s
:'aeghilnopru	aimnprstvn�semom�naglobulinae�emi'�aspermyo'�y<aaentyhh'	�s�'-osagarsi:'}z�ehe�'s	�'-
Bdilnrslo	o<l	ns?m�te�s�cdt�a
�e�'eis�d	Gnvat
Duilreo'oumerat
ein�ovtinayiot�eIig
eaeisonvdisze	idmse�ne	id'msat�ei�n�ogsateiKoh'd�lsn�o�vsiFo�ove�i<lnessC'�eeve	i�dsa�slnste�i<lr�sgh'ssteHrapt�eiFon�ojvro-paeioi�awaeioth�ai�atstw:'stic�'is�sgnruai	)yHl�eszei'�mt�drs�'�sn!gi'�scLae�i6d?rsaphob�ei-a
fcti
�laeio:'mnrmati�sulocyt�oianh'#isesad	i�m�rsbley�ne�tarch�'�sbcmpstusi
inhouemic�alltura-e�il�i<lo�nprtainodu
�ccienctis�tou�r	-bcefnstuindustri'�yLa[eiologi'�yJc7shemica
�lcosyste�morestZromi�yce�s�ast�oerrordi�na-eisrsdie,ncalient:elnra'}ral\rt;iacemorutbsurahoso�am�saaed:'aibaane�j�yim;ariri_'dgklmnrsth'aef	is�'�n�'-d�rsdme-campe�moireHsmoijr-/dmemoi�rLu_'re
t�eid'�oe	i�msd�erh'e	ilsd}e�re�s�'hst�u�ulere�e�'-bcdefghilmpstwyctonoditione	idr:lo-a�iaeoru�g�n
dsd
ss
�ar+niuc�ks�h�rs'essraeft�'-mwcarr?iae�n�nom�a�ew'srio[empess
h'p�s�eid?rs
yale�'<s'�tailor
drel�do-w�iae
Bmighth'<e	isruaTpn�sead�'�ese<lnr�s�e�geiTostsdntehr�e�fne�'�rsaeoin�sl�'�e	iss�'sh�in'�bloa0n
�y�rchiptre�wio�pBwcd�kaeed'sreiha0k�pigmhlt	)eaov�ye	)smr�a�ethiy�e�n�hl!e	Eich�'b�e,l0oar�xa2bhik�rsrsto�ah'�a�iara�wmatovhmntvitboa
:'�sad
U'�ihaya�'-abcdefghiklmnoprstuvwyzahjmqszno�nail��iazezer�aier�aida�'�sau'eida�'�se�nhwari��fahil�iawahir�ibcdmnrsamsai�'n:'�saYnte-rk�rd�ieod[a:'g[sord�o�'}ai�n:'�imh'�eis�ns'�m�t�ekta�'n:'<sai�rh'aeirssu'cntsoi[s�ya�'n�'�sr
kod}e�iro''�sit�'ao�'<n�'�ngn�orensi#i�oeech�tmq:r�'�eisn�'�osuerq�uaehimo�uytra}zst�iemi�yceszale�i�t'�d'�sHe�ibniad�ed4o�e�aho�tvol�'isc�s�'
�as
t	@e=o;aegiorYubhtnrara�nyd�e�'am�nsw�ma�e�nom�a�eat�ens
gs:'steSricd}n�hg�e�'acehijmnprsu2wxt	o�'[kou�scsh�ete�randr}a}obe
i�rtej�oh	pth'e	i<l�ns6d>r�sSrt:'Pi<s�'aeinderYr6aioa�'�n}i�a�sY'a,iorY'l�fnar	szeds�'}ato�caeio�'elrcid�vbnrra�'isc�sal<li}b�'ia�'n�'Wsceni�db�ra
BtglnrenesFe:'quiaYnn:'<sithm�'�isa�embrta�'abcefgkmnopqsvyzsC'�e	iil�'�eisn�gHee �iy�'to�wcli�cn�'aei�osbgRti+ll�id�e�rn�so�rhnite Ire	i�ms
}eeont�'	a�e	is�ne:'ment�'{thaticuo
�t}ah�opsthenoi�daMie�na�har�ia>eyail�nio�'hens�ze�i
�e	imi
fdl
�'-acehiosuy��cdeiknoprstl�e�ambrac	imnporta�n�-clus\inow�ii�g�ueourva"dwerfBurposound�e�timhmtny�'�aand�aockglmnrvy@aehior9dseni�y�ean}nri�yc�esal<l�n	it�'s}ae�i�ot�t�e!�iui
faan�d�'dta}e;lo�wgei�yn�'
�isc�e�sall�yiat�e
,i#o�'-swo�oa�yallo�waegstn�cz:'d�rs�'atFo�oerat�e�icgmp
rstvwx�ya�btfa�e�iou?rrF'Hsern�e�ia
�fet�rahuthi'�y'�c
�son�e!�iri�naur�u�mrstope!�i�e	iesrae	is�bn�c�d�a�epti7cat�e drpsve�ih'd�msiao�ulh'UsnF'�sh'	i
,saios:'{cgn�tCe
a.dghti
my	�n�hnr�s�dFeavaih'�hm�a�eiclto�aa}k�ef�hno�uitegz
nshio+r+df	�'aehi}ors�crttaeo�'bfnarset�'iscsz�a
�a	e	iae	itio
fnetoprot!�eumeric�a�scrca+tnste}ounei:'sstY'[sazol�a:'e;i:oas<dfordaot�ctiaon'�ssn�'�s-}pr
�aorn:'vil�loeme�r	aehimorss:'imrz�'tcRr�i�'psi#�eimRurace	insTbBtateid�rateiFoh'd<lsn�ove�'<lns �eou	gmptetFe�rlanu�d�'gitnseth�duis-mt�'is
�c�dmn�'insnaiouumsilic
a_mai�u�'edu�mae�i�'rae}o�zolaiurt'l�sa�y\cs;ostahuheimelr�'abdefhimnoprstuwy
dlnrstuxze}outsgiam�'Was}ae �duens�e�iaei}uy�ntt?ol	lll�is	le	im
�ee}i	orruas}ur�'issh-micia�nro�s�te�ioh'�d'msn
�'ai�sa�naeilrussadorr�'is�ah�ies�sr�'gjlsr�iaeyadegstvnce's'sexterprou9sncte�'nsUsu�iouseox�u!-n'io�n�ualenrc9tle	ios^eia�'�lslsantc�te�'mswaesnsno'ym�eionon�'�sr�i	)ychade	i�'drs�'|e	i
_'ah�llnrstitaorat�ein�o+v
:'adehios�bRa�e	i�m
osd�rote}p	n�trrheoaF'eaacifd�se	id�mscnai�'n�s�'�ai�sszaeimtion
'�s[d[sn[g:'�saeition$�'qs�d�sn�gDud:'i<s �alhyst�'�isrevil�lDaer$Os
acd}egnxrstb�ileyn�rsab�i�l�esh�tipsa�o
U'�o�seoF's�'benz!�oths�'�i�yaeoutnro�ot�'nsi!�oatu�'cs�tLae
's�mn�ieisitac�'�csh'siy�e�'	ioc�nrtent&Ue	ceknr�suxbaio�'es�ac<igt�sil�la�optl�ily�mhi�os#Qmi
�sza�e	ib$wtlse�n�riycill'icil!�l
�'aehilosur�draesrg�'samneiotam�ibptioaGo�nlog�iy!�oheater�r�er%�a)�c	Gneiynr�sf%�ti	pyce@ad�rsu
Bllt�ela'�e�a�eit2sterOd.ratkclnrs�eds;e:'�iaeibl	�e�d�m�rsnjv�g�a�'gldal*ao�i'aorspsec!�t. acdeghiknostuvxyz
U'bcdeghklmnprst�uxae&�ioptist�'[s}llic�sh;ilorronis�mt%�iin�deon
U'!-tromyomrsi�acaUsll�yob�e%�ithestiao�'slogiy�e�sicsz�'�a�s
�ae	i�td?rsae	�itionl's�d?r�slryph�'Hsam�'msa<e	itic�aeQii�eneg<lopycpHst�as:'!-tesia
fcgh'i�oss�u�y�c�es z
�e	ihabstzaei�t�bn�td�'s�udrs�'s	n�s�eicF'�aist�iyae�i){bsd�rssorph!�idoi�aaehlest'iscUssth'iss�caoryra
�iodisi!/alac�xasmosichi�ycesal<lm"�tat Izaios �ig!�mmos!�tei'�ds�nshoema�'sti+�s zlm}eia�'n:'�si�yc�es za�l
�e	i�tago+�raehisterstFor�ae�i�yss�'�eor�v	�'aei�mps�wg)�edst!�int�eics�meorpl�e$yselnth'�e<l�nsl'�a	 aeiorHstyan4dlmnusia�'}n�aoo
k
dt�a�dr�ss�t�e�oe	Gnrrvra�'n
:'Ws#eeio�'*�ati}stw It�'�sanampoinimer�icegilmp�serntri'�c�sa�c�tcika�ueyn�'
�isn�e�io�yu�s)�dog5i'�yaechReda
:'�eaousLa'�e}vcm�nrsuwd(�hot
�a�eio_acall�ym�npetFeryhi�l)Hothestiao�'logi_y"si�c�szae	�itio.5n�d�srysm�'Las	aeiklorsurs�tl�r�v
�'ta�efios�uis�h}acnqta}o�'9lsta}e\u�'�lRute�nognpstern�ea�mphKeKiyeurolas'�tperm�'yosen!�sMoeio�'dprswoijs�'fsis�he�a�yo�rtac�nain�'i�ssYmszaeimtion
'sdsn/@g$�'saeition
'/5s
ds

n/hg:'-mpsbfinsoer�renc/�hnrdia/�ni/�sor/�max/�oanfihiolei�'s�abneiY'�ae�i�y's^sphe�rlrsa�'n
U'Ws�atursaiy�e<l	�nt�'r�som�'sil6sl�sPlart�i�lHei�non
'�seyu-esdrio�d�tablmos �tkc$h*�aiaeio�u��dltverBst�'ci�nsul�a
fes�tza
�e	imtion�s0|a
�e	ieiFor9d'l�ns�cn�o'?o
h's-mth'
�is	1sn�'is',ceo�'eistko!�nrttropiyceLa �a�hle	Ei�'�b�ds�t�'aeimou�'bl}mpel:'-�l�'e�i	)s�noul&=i�r�'altxle	isd?rid�'[as�th'ae	ition�'�is'dstehvilat�eiFon�ojversa�rar\ictuyat�eGiFoncVe	ia�eis#�nng<l,nailmnlC'i<ls+�sze	idst�a�i�ya
�eil�msurt�lUsei'�d
o�e	iciatei#Mo�ds	no�n
dimnprtuvx�eiyc+�s zn�ent�e	i'msailiGo�y�esce.ssymi'o'�ss�tz�ae�i'�d�r'�s�aHe�ihele(s�aegtc+�xtLai�cas2`mhos,ihe�ri{lula
�n�ti'�a'�c�''�aehiowlm�'}o'as/�snY'�ser�'Ra�e	ipshonie�'abehilorsw!�ceg�lnr�uonisz+3e	i�m%�te	id?rsanarivRoc�etic�'tai!�r�'-(�abcd�ilnprEsvmort�eell�uehdenrct�'lsyF'ampbLe
�ailuvia�no�pant�a)@au�laer�tnu7lioorFe�l�sgl�oprad�eateJrosteri
�oer�teior�mr�'os!�zl
fll8npzogi�y�e,�s zhi*�loa�naoc�xe0�insp�iocgilmenWetrreni0�c
fdogi�y�ce�seotriy
�crphio
�csz'�e	i-m'�e	is�uFih'-abcdefghklmnopqrstuvwabcdefghilmnprstwbgimportioni�s"$ercra�ferican�is/�marth)Heritis�hahopita�lristi�anrstitutioJnru�pemocrams+�etablishm"eermi�na�uZaorvern�maveuro'ent	inftelctivammattoellect�uoau!�ceirsonnBeraZcacismt'�selmiti/�csm�2z'avteaentayn
�aeste�rbilnortion.Aircra�fia"$sxi�eaiouclteri3�aliso�s
t�dLb�'aehi1�klosyntch �ollu2Klorliner!-gist:'Wspat�e�i	oeiorical�i�sm�nac�x*�tckwi+samngulan�t
ftmpunism�t�'�seti"tvul|sclon�e
�ieiompvocnrreszselo4�pasubrrhoJeestablishmentariani'�s%�sr	=tp$tile+�paeorusc�ier|dmrenHto5:mruman"$leerzndJgamentalistelorun�'iscriobalisz�a�anQea!Dva�n�'�neiyroh'hest)�aorica�lperten5snoc-kalobo�runreas<nU'g
a�i�s'�yrit�haioclTtassFaaria�lclsro7�bitaris'�m�tsi�ln�y'oumviyan�i'�s�ecle#�acxh�'uizdaehorsyrstatl*�s3 lic�l:'ti�ohpe�i�yrsopnneslizron�'aslh'<lsdlvael�s'asnh'sh'luti'~oerWtur+�iych+�o4�ruaeirti�k�ya�en�'iss6bm�ein�o�'dsn�taerd�adstepositi1oonant
co�rrovi�rhinuim	celoptuyioe�nrb+�umnpritisc%�s�stich'
�as�uav	ec�iasmod
i!�ahreneop�hbmar�immetr�i�yaehoruynkrrorism'�tey&Wsti$jc.%rxi'�c�nust�'8�em7�so
�up�eil
�cein0e�ihorv3�auisectionis'�m
fta)rer�'�esfinagasne�'1(t�'}eiy}a2�nto�u:'m�'�osai�ulmisy�e;ae�rbnr�siRsnak�i
ail�'ls%e	Eii�eol�u+�ybhmoptw5�o�oo)}r7nla)}chiing'ss
mahiyss$;e
s�'auc'ss�
.slrt's�aCitk�a
�ieaohrhr_'abcehilnoprstuclrtehs�e�'achico�lth�m	�nei�dh0�io67e�i�ysaurus
�'dl-mnrst�xil+k�eni"�nitHyotdic
�a�ii
ffurLa	@e3�aaemiorseilia�o!�n*�rodis�ti
a
acensU'�nri�y�e�s,�aes�'+c�h<l	�neo�nmboea	cglmpstfzarlyp,�sticLaypha�'�l�e�ailo0uti�ciona�i�'n<s�igei�yticF'
�as�a�esz	e	i�t	,e	i,5ihlrttyheg�m5�lepc�xoteostii�cetma-�ta(zilor�st�e,�ie�'2�bshi6bpl
a
�ioph�ei+�s+�zhe1\cg�mo�ms�ei�sze	ids

h'aeilor�sulnraloschia�'n�'�s�e�issosa�'�sa�gae@itc�uhiksln�'	�e	�ilse	�i�d�talnrtlr1xs�'La�e�is1�a1e	isla�ntei�ove�'�lHsd�aeiscd?rto�mcn�x�ei
�u&�tta'iistz#eCi�e\iFe�ia�nh�naei	pyudrs�'-bjstcpart�'i�yac_kaeuc_eaeh'�os1�ac*eqa�b�nt�iFoue�h'sd�iss'd	isimrsntei�msd�e�rn+vatto�xtion�e	i'ms�ei�ntei<lne0so0vn�'�aaeiois
ae&id�e�rschnia�bt�eion�ove<l�nr�'syends�e	isi�b�o�vtice	i�'d&�ss�ei4na%Pbpvxchh'ae	ibi+ll�id?rsria�b�cteIiFod<l�ns
a	,e�iimateid<lsn�ove'lrtenan�ct	�s:'io�c�l�onp�'%es�os-ski�i�eil:e�ei<l�n%�tle2�iuaei�'cflmnpr�stvulturrre{sun�ga)�ra�ulan8�e	ieio3@lau�n�mOsbeiicnh'
�a	)sBt+idou�cu6scflntultur!e}a�i�a}oa7zti-�n:'abcdegijklmnoprstuvy ��:'bcfghlmnprtuw�'eil�s}ysq�u�atclnsit�iy�'o�m-at�eeh Iln1!ioipdhobia$Oaura se�aoun
'iayujr:'duit�eaco�ci�cajneu!�iyo�iaho�':e<s$Oaer�ecania�nak:';a,�eiorutFera;og'�l�mrte	i�'d�rsu
friy<l�n�e
,iForuv�'ei�sva9@t6lc7sulturLa'�eiit�ar�'%e�s#�ioa�tt�'a�eh	ilostdn!ei�a	naeu'l�n^m�'-abdefi<l�nop"�wenem�iyeinabon

''�sacte-�ra3�lpstronoZmteryxcs
�a�n	e	i�m"�tgel�'�isioshop�'
rsa�reiuacon�'�rsoces�a�ec�kLah
ke�i'�y;adfgnrstiel�don
�iemi_yhe�'is�y�etyp�a�eicBaio)�e7|obemnptva�l�'piscopa�clte"�d
ogelago�'[eserct�'osunicLa(s!ra�v�ae!Jio�'d?rs
�lsaKuri�eijklo�g�iaioun4�gc
�'ssphil�ei'�y'�a7s~raelorsubi<ln�'�c9`n9teth�a�ru�rosB:s�oh'anoq$�st�'lswijd�'ao�'cs@|veous�ola�eoer�stgi'�yJc
�suip/�haeouydarga
dnt�'i	�sntaei�'a�s$�nan:'Ws:'ns�t�'a\nHsu�t$�'iy�e�'ae	ims�bent�'asti�o�v:'Fe-lrbargeiyHdFee�d�selh'ssophi�l	ade=gost�uz�'d�h�lnsnleY'�ai[sslmri<lntlOs�seitn�rsn�gaViorc2�hcp'�stra�c%�th;.ae�llian�'�shmeticsz�'aiUs9l�ae	Ei�d�se	Ei�d�son�aia�n�u�'ahswnrsa6ntsoo
langel$ srighlteitntY'te�tn}eg�tu�n�'-a)�bcefhiloFprs�ywrest�ldgmntai�'�lsl�lehnddRo?�aent�'asA[rdRi:'}ou	=rh[oDadn?r �i
u8:od�ens%a
ogia�uni�s�st#�ieos�ta�cd'�sai*.nru�'ei�s.5y�d�r�a�e	�nr'-ei�sysplated�d�re	�n�d�s�'�etrontgaehouAUuY'}bem :'lan�d:'�llfjhm}n+sua�'nsttic�i'�shierapei	)yues{tch'
�ai�ns.t�nsae	i-ld'�rsaen�egg�iaehiobcinsyu:rk+gg�te	ifad�m�rs�'he�'�e	isarsra	)sg�nth'fae&i#osd�e�rey>�nthmi-acallHyav�g
aeid�rsnsm�tgnw�ya'RnRt:'disse&ym	�'<egh	irs!%tr.aemao+oeiop'-�dhnswslic&kole''�dssaio�l�t-c�dpy2Kripn�e�gn�'�ishena.m
�'aefhilsuwyxerXxfmrsact's7zuis:'"jii�ya�eol�l	�slsv�a�eclero�se*�ni	au�lruaiol�gti
fcd�s�eFigpsr<aloa�sd�'�ascop
fe
�i'�yr�'�icefl�noshluo�k8�e	ilahb<crte�iod<lnsess�'�er'sy�'r�s aic�eial�i<lnleriye�s�'�mdact�y�at�'�e%�i�rse�sisy�e	r�o �bg�mnu/�lde�lo�'a'�ln�'i�ss�m:'abceghiklmopqstu$wym"jnph�'eostos�'ei�sae,�hiorr/�i�lnrtds�tae	isnc"t_e�i�ydn�r�cio)�ntainRa�e	imsen6btic�'
�aBisdi:Ii_'asrt!�b'ssibpRa�e	iti�ojvpxtic
�aUsual?�i<l'�sarRd�'abcefghiklm$;ortuymnettiurtonar�no�f:'�dn^rsvil�lor�dab,tat
'urs�t�ek!nagehnaz�i�aaeH�nr�'%e	is}etyol�e�aa�o"�rnr�g_orbani0Lpa
ddmn�'g�nt<o�eico'qsiol8�atvin9e�iae	is;�ndrw�'s�n_'ae�neparlackia',l	�'acehilsratg0iwua
�macl)�nrt�'�e�isJu�lg�iBs4eaeoylEotr�id
exia�''�l
�ns�t�cdris\kt�raJei�nt
eiFonon�'as>�ln�'gseni'�a%�uuiIt�'aehinotuyldimsuyla�e	isTb�n�'e#�ssin�'�aslt�'eisd�rnve'l�n'e	issmnrs�tvbl�aeiy�en�'�m�wt�'e	isdr't�eisnI�o
Lvs�a�e	i�mFoeNrole'sJQsbdgms	=zilat1�eiu�i�onh'%Mae	i�mFosd�e�rila�bt�einovn�'iss?ttith'a�eisnrct�'shi�pnvcnriabt!Bilei#MoC'dship'�snovn�'a7�is�l�eit�i�yan�trc
ftte	i�msd�ramrge	idmsenaJeipbi+llxingE�lUsti�o+v1�ae>6id�rsh'<l	�nssri �aolog[yaehioru�inr0Ntla�g\tr�'inoss�kid�'7|a/�esem2`na�'stich'asll�yg&�nrmati',c�snru�'ish�e�i'm�' �ind�e�isaiodgklyTdal'�i'�s[uhan�''l	�s+dngen�c8gtbcl#amnptilolB|oe�mhoemiJcstZr'�smE�pao�bgFei�y�c�e�saout�'iscE�a?�smFei�y$jcehoytographKe�i'�ysic�a�i(surf�_'�irtia�n�se<l�n�r�sn
�scdi;o4�lmnluabiHcm�'-sseeke
�rmpetri�y$jc�eto�mt�e%�ichron6�i'oy:'acehiklmo:�pr<stvw
�xychlrtvxamuaB�lanaticx2bi'�yu'$ ris-mt�'
�isi-a)clm�sipo7zraeilowbnascC�kasiuH�sinrs-m �ta}ei7�s�'e�ua�not�gmsa*�tcleros�tei?�s�o�ret�eic
�ai(s(�s�la�ra�l�sjwinsU'�oa,ensttaeiCa�stc�s�'�e'�ao�ss�spher	@eic
�a	)s
lmnp�'iscsz
�ais)�t�'a	e	i'�mttionF'�s!�i'�sM�ae	ia~ei'�yli<l7�s�tcnF'�i'�y2�eioaou:'lventri
�cm�''�scpi�o�thi�oi)yc�e	aeil�norusyci-rhk�'Rae	i�m(��h'd?rs�'�ae	isnaVd1e	i�msbnil
}eymnspth'�e	isdtuae	isn�c�td�er�'�sio
Lvn�'aslxi'lat�eUi#ota�e	iKosNbBtc �lrt�'tas
e	iud�ein
�ai+�s�z\ern#e�maictI�a�ei#osn�o
LvbtutRaeih'drsnI�ocvion�'Lascn�ke	id�msio�o;�p:'bcdg�knrstvxerurgin2e8e�rktland�'er'sion�'e	isde�ra;eiruc�xi�o�t�'b1�eotnil)ey�'bglm}npsstvo�orogi�y&�c�e�setFer!�iyh8:iape�ih''�dsisua�l�'�eiosn�ovr�'isyLa�e�uRa8e�b:'eh?�imsu;a�rth'ssentae	isti�o�vbur}grs�'�eJis�yt
�'�a�ei<l�n�s�un7�e(`it�'�isyaeiou�'9lnsgz �eloi}a}o�u	=lmycin:'cfg�lulaor'�sttheraZpe*�r�ana?cra�'�elsk�ucpsthuwi%�tltat�e�itoic�ei�o:�ieRirnr:'it'�e�ie�il<ln�r�sitRza�iola�eiosia�'n�s�aAUn�st	�eaipithec>i�un�eaehiourckhi'�yc[eLai'�y'�c[ec�uologi'�yeontica�i
�lt�e�i#or�'eisdssh'�e�an$mstza�i�y�rti�v@a	,e	ih�is-mti>�ch'-bcdefghilmnprstwxsuggestibo>Mi	�naihn�'1esographeL�i�y{raehlorudt��'alys�t[i�tp;Mharnge�rK�oavlmnrlimat+opletHeifigru2"rm�a�e�i'�sreclt�e�i'�satC�ei	GnyoCjaio�mn�s/@eeitect�ei'�s�n�oadsll'�se�i'�dr[''�sact�'!�isc5xo�ciloLlt'�st�e�iuorescenccrus�e�imaR�t�aeiryn&�e'�yr�oa
�fph�'�eis'�y'�cnr�oay�rp&�ngmnnitio�nmuneit�i	)ytoxi7Pco&�ya*�gd�eaogkticLae�ra�ei�o9;cn�oszC�e	Ei-me!i�d�sbrtile�i'sd)s)sphis?mi+vomi'o�y�cei)s>�laeiodiograph�e�i'�s'�ycgpsvover'�yre"seat	Ei�spon
�dercksh�at
ua1�tahotuLva"$pm7|a�eereosco�pggesti'o�eoruyxi'�c�nansfporme�rlant�a�e'�sne�i'�d�r'�s�pionde�i'�s�rr�uSHkid�aisLze�iGd'�sm2Knn�'
�asergnJeiol-n-itrop�h:'acdegiou	:'ilnrs7�tulh'a�e	isb�iN�la�oncht-agrtisFtarrdeism?tistF'i�uc-ei'4o�tUnh
�dsp:'bnrsurM�eg'�st�ue	i=ia&ymnrsttyge	i�'d<l�nsu�s�e	iXo
Bei�ovaeisb!ld'�rE�lhbn
't�a[a
acdfglo6st�v�n�rteiFor'�d�n�oiB�c�xeu�nlDBatura'�e�il�i�i<l�naunka
,nn}ric(saminoMvscginpuwa�dtion�'asl'la)�ddr�sa�e	is�bndupo2.i�'dhsa@lea�di@dar!�cch�e	i
ae	is9drnculartWlaefh	ik�lnor'bcikmpr	sIyakM�as_'te	ins�eisn
fgut�uu?�nd�eh'-e	iswin"$ndie�r�'-d%yisinspirCiotumriuck�e9�cull�n�eyTi'�swar�d�'<eisn>�gk�leniy�e�'eilo�u�'dhl$msea�d�'�alnoslsa'�e�rg,ilmogiycJ�a�'astiH*csz	Ei	Ei
�'ymm
�ee�'str0elno
t�'LaesmLa�eacelmruy�hltolla
fhkbour�n�'�rsesbur�ya�rY'shirC|erved�ai�cu$
b	_'aeiortulnz�e}aia
:'�n*�eortrop�e�ib�itaijan�'-ai
�ydk?lm�zothymi.diw�euth�'�as"�rQva�e
_'elc�'�a<slrej�o�eite
'
'-.abcdefhijklmnoprstuxy�d<sZafmil�movi�ecs.c'�.c/�.�'abcdefghi/�jklmnoprstuvwxyzh'�e	iYlsth:'i�sbceiosuyai'Ul�g$Otoc�k�'ls�'�s�ieB�nd�r�ssh�k	�'-fg
hilsdfsWoa�citHsathKer�onshZlness['on�'i<sa:'�n�ait�stFein	)gachikotu*�lr Idahsylraure
a+aai�unal�'isa�'nh's<c'eslor�'hsoo6bdll	ai �o�u!Mf�'-abcdefgh>�ilmoprstuwydpstuo�oedall<e	ie�ao-back
�pcr�hro�weior
�anc�dhe�rsteit�rs'~ea�nmreak	i�ahlorain�tW)n8noth'ssmube�isssd
�raoLwsse�i'�d'�s
�aor#�oop�':TpsilkelN�rl<e	isio�p'�warm�mound�'e	isd�ra
dond�'e	is9d�raRoeiosh�'e	Ei�drs7fgn
�stht�e�i'�e�kag�td�e'�s�'1�gsa5orX�kS7raelock�'eY!isdal	�e	�ilsseindnnga
Bnt?eRWr�eooBmcehilptartter'<e	isatchin_g"ai7f�dg
�haipspFein�ghh'e	Ei�dsdY�e	ia�iN�caiorb&giZ^m�ybeir�'ssng'�srstch'<{e	ipr�'1�psi�yeeoetD�t.�cke	i�'d�rsa�irl?kacHe�ik�e	is�p�saiorstd-<l�nscompatLi[�-h�'<{e	inRYdodsh'�mY�an�'e�isrerr�ai!�oacou�'�lid�a�elpstogi�yce�s�ahE~ao�br�ata�sGtheraE�p�m�rW�il'�ao�u@|vh'-degilm�n�uwet	gempe:r�ei'�y"�eshtnei�'�drs�'-�e	isbai"$tngar
rnag�e	Eiaynds�'aeioB�nn�'nt�outhdryRzek =eia'se\�rf�ile&ih'd'm�rs�'a
eDZfghpsuwte8:laeiyge�'m�sSaSe
od�re<lnC'rs:'t�e
ogwrinNkd�ai�pmeiaoTshrair�st'm}iulylai:'n7�si7�aa-an_a
h'ssklrt7zaRl�'Raei�mosd�er$�yfnw2fTi'�r�u�mtdinAk�'sDcd�'�e	ilsayeFreilsuh'dhlrswouse1(i�'�is�yfiA�eho�png'Usav�ahees�h
U'�nabcdef(�ghiklmnorstuzckln
,tla�vla
vaX�icie?Rh	i�'Id�rs�toa'�ssalonoo
nutjhni�yeds
efi<l�nrsswy�dr�s:'dasyhacZ*eheni[bcRi�'ad�ef�rs�rull�n�eyoMuaUr�'bnunJteg�su�p
C'a�ehi�ssyn�'i�s
�s
�z>�aenErsEtesgFs�'-abcefgi,�moprsybearin
�g'dnr�s�'eo?�rs�'Fesn
ityne'atd�to�yoc
fkdrt�'i�s�n�'is�ciel�daio
dmrilswenosHr6�s�aglA�totn�'�e!Jis�'J�eistn�egeT�r�aloay�io�oeiysdss�e�nhmo�oeo�n�n�'iosy�enewsral''�seoK�lP�tne-yaonASaga�'ms�'eisHa�dc	Gnhia2ztcmso�rt4acnshistjatFerade�''�ds�aab
g	ktioo�'sz l�'abcdefgijknqstC�yz{clnu�i<la�'qsu
�i�srUuid,ga'�orssur9aKeo$Of�'abefilmopsuwy'�gnranl'nsa''�so�xad�ru�'x]Cicentoot
'�sdrAnsg'Hs�'�rst'�ieadeira(�s�tlneFeX%reass[e�mt)�a�oP0naigdt2h-	iblan_%deg:g�'f)sull�eyf
'
�'ae	iklMosHYulo�r�wdr*.oa�edesh�'Yisht	le	i'ma�o�urma�s
�'abceinrsTbssur9ao�oa3�rn6bg-Dooul�lpt�'�c�e	is:'to�weio	)sdI[kr�'<e	Ei_�msnster'�ssck�'bsurJnuet�'e	is�t;�hae`�iYum�'swegirh'�e�isaih'�sbta�b&�o
hp�stomet�is�cisz	e	imt�'
�as'erscs:'�r!yei
�d�r�s�'-abcdefghiklmnoqrstu�wyro<obcd+�b�ki�n
�'aei^�orsuwdrC�io7�staeio�y�la
�cs�t zn�'is�s
�e	i�msus>scdlrtue	i�'d�rs�nwiZ�r�'�ls�'�e	i�rsh�o'�s�t:Icent
'ss
aulYBrd�l7�ai=nrae:Ihlolrbmdol�ello �nay�'cRsar[dd�oHe�'eiosd;e/�c	nlatKeKoZrto4w
-bdfhlnrAnsfoot<eackZ*eaoce�dot�eaen/dcuaeB:lyg/g�e�th'�e	i�lsaei�oyi
rn�'-e	iosbas4�edr�'s'�r�'dFe�mpso�lC
enG{aopps�e!ians�t
Dut?rt�a�'e	ilsde)�rph'Fese�yy
�'eoy�'csoyrtwabei�y�hmi�n&�rd�n
rB:meZlX�nrs
[''�s�t	�'aef	isQuybc�r*�u�a}yl8�ed�styY'tt
�'�s7|udEfltW�eaop,lrmar[bd �dmn�oqtuetFe*�r�'�aeis�y�st�'�cs�a�eue�'�l�nsrau�m9fcu"�eisim�e�'aeioy
bc?gmnt�ko*�uu"jtund`�iquilU`lKo�r'dlnr�st/�s�'	�e.�fh	�i<�lse!�ah'�eZl�nsswZ,ot�'�ecen�oq(�sah?dell�o�'�rg�s�t�u�utn<now�'-sin-furne2zs�'_�mto�o�w�'ehlo�nrde�i'�s'�d�rh'e	is:'MCeol Idion^2imdee$Ot�y}ktn�k{cc�osuentre�ihnik-�olgM�i
-aehikoqrsturelie
�fl<l-�t�'bdlm�nprAnstao
l%nY�a�r�'e�ioyssZl�n�a�aen'�tla]�tunX�nW)th'efi}odrsulnhs�gc}eflnp�s'
�a�iss�iyceatio'�nHdHs�i	�'�aM{d�eiosc�sa�''�nssauyr�'<efgs3�usto�k�ee	isdt�'b"@fm�rswa
lakKe�io7�rphili'�s'�acue�'�s�'eilow-stterrQ�e�'es�t_�r*7n�s>i�'�osomo�'aeiord�'i�ls�y�e
�sz$ua�e	id{rslno�l�gn�'<esg�ntolaan�'ace.�fhilmorst}uw;av/�ih�'e	idlrso�rdm�r
ms2|a
�'e�him�orstuwyh'd�rsrtn#�g6Rao�bo>�mhebbur_!sampsetKe�rel�acpaphe�'sshe�knst}a-eo�wa�e\�n�nrach#�ima�e�naeilUsyBld�nr�'eis�ydrh'�s�en:�g�en^�e	�ge	i
�'-a#�bcdfgm�rsc�rxeh'�sruisTaeorRoeiir�oro)�uenf�t&�hp�ai+ong	�s8:bdMehl}msx�'eorss;�lt�uilH9l&;ak�'eis�ydr�en�eg�ciQtaria�'*�nd�l�'isye<l�nrstKt�'abe	ik.�lorswmH�r7�oC�e1^rdW�rs
	u
U'�i_^an�u�e4ne!�u
�iaewt7�aiollio<�nX�o_'�bcl�qsM�'_e_'a'�cd
�go�m-rh�sxrh�xG�eo�sG�m�m
�l:'abcdefghijklmnoqrstuvwxyzY'cdgk�lmnrstuvho�'cefhil
�sw'�yo3mdHrsro�naE�ev�een'�r7sX�egandea�rn�'<e.�f	isAOf�'�ei,�lswy�e�n$mork8�ele	i�'d�rs�'es�'-�e	iswid\rt
�'befioD\ps>�a�dr�'�sHyeasit�e!nptro?(ua�l
h'-B�adFeilnsbai"t	�'e.�f	ilmsd�nRoei!k�oObl>�ns�hi-kai\sk�i�lt�'ilsen�gi	)y�e�nC'abeilnrstble�yoxe�i�r'�sn�rf>�n%�ti	pyc�ea
�lBtem�sa�n�ii�c}x}zRy
�'cdfjmrstvxhamp
'�sese_!r$Moola�iaorch1a$Onegaars�i�'eis�you;�sc�efC�ii�u	pyc*e�ao4ier�'�e	isM{to�pahkloq�tl+m6AumW�t�'eh	Eimo�stty�dn}rtha�m�'tta�ma4nne	isd'�r4oo
um<�e�iuerel:'ss�'-abcdefhijlmoprst�uwswit�tei�t\�ruzbz{l>�uhlambeD�rot.hLae�idr�'�so'c'�lvkil	�e	�i<�l'mseo$lrdY'shi�reaidgmz7h1�ms'eack7e�aie�on1eakZ�t#MeuRir�i�a*l�oaiog`+gdd�e�c
lgTohioptee�t�dt�ster�'ss�c�rrE�ein�gE�era�w�io@�r�'-bcfhklnprstveksaX�teep#eingt�utereadh�'e?nwnrs:'oor^dt�h
�'abceiswyro InurgF�aadS9t�en�egte�ao�oA�ieepSJe[iizne	EiC'�dsebutbleilbg�'e	is�'bimsyoC=h�ea�the/�btwinFga�ix�'<e	i�'hb�l;orsov�eooZte
osaeiorull�e	is�lt'st�e�igru1�gseh�alie
ndkSd	aegiorsunst_�wt
�stei�r7sa�eir�'-�eils�ymy-neighbo�u�eniynngF'n:'nsFe>�inte�i�sk�tiu mdge�id�rsi�mnl�ne�idG�m�rsaeiorl}nv�f�vm�einoru�'ai�sl.ls.5m�tr�'a%ei�sl7�i*�ls+mt�',i�s
a�lm�s�ondh'm0hslovdj5e	is�v
�e`�id&gj>�nrerbec\kD�i$Ouewel	�e	�i<�lse�sacefgilmostuvy:+�:'b'�hrt}uyoru	�e	�i�sr�'<�e	�i�s�uedjhamguer�e	i�ms:'n(�a$�o�rirM[a�cQua�den�v�aent�zd�frsvaeib>Mi�ln�gdtl!e	i�'-abefb�hi�moswyhroxpinL�g�'d8mton�nr
	ii#orrd�'�soo�k�'d$ estvrist�'_=isHxi,uloT8wc�egnose�i�l�nerenc�t-e�i�ygi�e
U'�sw�'�e	iseothco�'abf	ic'�h�aouaTZrttl3�uopR�p'�so$Onpa7�ninrvw[tg�eisng�'�nsussia�n3�eha_�z	�'-a�ei�os"�w:fn�a}ef�nHvv�gs Ihede�r	i1a-@biou r'ase	i9d'ms�'acdegijno�stuzcC�lerr
�ahu�'	le	i�lmwar�korbb�ih'Raeis�ydm)�reg*ee(�giCn}x�rdsadfltvict�'i	on�oe�'<saictiFor�o�veQ~sctei�'d'Rnsa	n>l�r�'1e	isutx:'
,tolen�c;�tahl�'ti<saHYzgn thnte>dIa�i<l�'i�ea_meity$OtyVd}engM{tAnh'hlosswa�i[oRme*�yn�',iolGokOm�'eiodnr�i-e*ho�ncdi.aiazef�p'�c'�nwultfue\�a�s
�abegiklmnrstwyzer�'i<saca�fnst(vi\cH|f�'st�'ae$msm7onr�'fie$�l�'�a;otrj�o��abn'sbeon<eri�g
eosl8e.iwit�z
hirSeei:'�tnot�'e<s�rtzlz�'asug�nu�idaC�i�'�n<s	�'abehios'dn5nr�ye�i1(td�'iton�oewa's<eard<d�ctenRiulHYlt_e}aiyDcd�eg
man
'�'	il;&ierk+es�'}aehiorlsma;n�'ta�eisn',g}el
,llucAcatm�nickY'-upon-twee5sdl�'l�s.ie>�leimopstetcmheid�rsng<l�ssZtde<�eUgei�aVrmt;u�'%e	Eiss1�taeok�ntt�eack	istac/lV�k:'e�itlmye�r
'-J'eiorsusksno	wellL�e	ianrl�r�i<l1�rsw
a�e	isei$=ow�e	insdk�d<�e	iellei�rbble�d
�'acehijorstw�'c0ikmst�ae	insa�xro�nh�al�'g�seI�u�'aeil9o=u8n:'+Vls �dr�nehQe d�me_�mk�kok
taoy
ae	isth
ae	is	)dW�e�yei_�moy�'dr�'-�e	i'msoffen:'[sn�r`�g�'}eeien�ns�xlIaaeiv�ynt1�rlr�'	�e	�ilsei�d�rngE�s�aildgr.e8ey'seX.rsAdisyahim2i risker�ecgltdere�i'msd�l�nK�cdLlh'e�ossq�r
eioquKaf
�iaoujrvsiat'ainats�ynag,�ap�atatp�n^='-abcdefghjklmnoprstvwyzeglng�dender�ee5Mvlnstxyst$ ocn�u�'�e	isC
e	Eihl
e�oi�a�'Y�bels�ul
�o�eico
�aist/�'^sgl*lmpP�traphFei�yc�e�aUsaenZc�eiaYct!-rh3@oil�e�i'�y:'aehko�suymreral#ib�'o�sYBnnpten'�a5�nh';Mh	)ser(�nomate'�deAlirh'eisA�nlnot�ucnvS�aect%eexlstural�ip3�iclei�'d�rs'�cn�s�'deisRaj5ei�l�y�e�nd}n�rs�tamnrgo7znen4�sectional"�llnrefel�dn3@ai8eau�m�'\cssaZ%f�iouc�eJiO�c�lnr4�ccate�id'ls
-aefghm�norUswbt�eno:n"Yami�o�ye�slnyo�w
�eeoe�to�teiXl�dnr�s?�d"�e	Gn	s�aeo�ta�drte�d�ro�ut�'#�e	Ei�rs>�iarmo�neoctio>�v?nu�'txeriLaei}o�'Lad�rsngf�i
abeghiklop*pbtyia�lera�le�rae�ioGylorr�i�y$�'[earzi^ag�anor�egualh'#i<lsusZl�nubin�'
�'abefhiopsyb+l�ooarr�dd�r�t.�iol�dooikaelnord'	)s�'s^Lug�'s:'ga=ntn�'afsWhtio%lw�'�eisy�enost�e'-cb;sgoa^taBn7PcC�e�beiotalli)c�sl Inlena�rA{dlnrecula�rth'�lpHh�'adg"mnost5>ul'�rtu?o'�e4�iu,r	h'�aei�l�oswr�'�is�y-Hine!yg�'�lnsee	
'\�aeh	i�l-o�'d�nsamY'to[na�e	i8:cw:ac7zdmularh'�lsia�lle�y
h'abcdefghiklmnprstwcdrsvcotumulatHei�n
ous?tiv'�e�ihesi�vcha>es_%aailab!Bilai�nbliograp�hehilontri'�c7�seZ^imicsalC'<l�st�'�rsWPdr`Pcais�t4�memnndopauty.if~ttv�rer�saeiy�t9fgradaeibti+llit�iyC'1�i
�d�sev3 sersit�i	)yna!-mlntectrioQFc?negrg+�e'�yineer�el7i'�sh#�aicLa�i	)seil8uedbackhlav!�oaer�sGsnoe�i!-r�s�tcghemiJcstZrraph
�e�i'�yapheL�i�y�e�raf|cz2�andficatKoorm+�aougi�yc�e�s,�asminescenc'�taeogZ�rwstn~eehr�iemyacd'�sthanic7s�a'�sic�aziero�riycLa:Ii	�slrecul�eph['�i'�siy�oc"�a(shilorsaiyrma�ic'�seutic�a'�s�lsic
�a�i(sa�c5Qras'�ym�t�ilyX�mio5Qvspect�iKoiye�ds�'!iehagmct`�oiona'�sl7�ied7Piythmh'�is

�'aceioptuy5�fienct
�ecnurit�yz�sgmnatuit�lHcli[dher�e�iartisticLa#�isatigraphKe�i'�yr5zgnthes�ti'�s:zaehiruTSycrh{�tnologi�y&�ce�sr7�oera�pc-ntansfor7Pmr7Pbaerfa1�paehlortistansQ�h�e�id�'asli%�sZt`Ta�alar�iacdegikmtortyc&�ih�'ei�dnsn�p�'-bce�hilstwyblraineHdik�arain�'�esaO`gen�'d!isif+kmne	i�'ds�geqah	o%ve\yab�laotchFe	EiAUoinEgftringen�ct�t�ia}�y`�n'enhsea�dto$ cCaingOhindud�uh�'-"�de	i�mprswrat#Qed�rl#�aagit{e�teZ,oik�g}^acehm�oqstyaouy�'�nt`�tit�'s'�ycrxt�e�iFos7ziual�'�i<lskoeRkp�'Vd%e	Ei
rsgaW�taur*.clkt�hu-e}siatuao�r�bjtx5ulla�b�'bce�imnorstuwl�lho�'�eiy�e<ll�n�ih'�rsap'R�pse�tna�ls�e+etrea�meioynrh'-ce	il_�mnrssweetln	�ye�s,rdr�siy}n�'�es7-uo7-oh'weet
h'ZlX�nss�e�nrrent�
_'mein�n"Hiaolreyvnc�tiajtuac�'1�kseexLkea
�r�'aC�e�z_!nrre<l	�nr�ieorkXn$ r:'
adeioDtuvybcdeghi�kmnrstvxyzh'bse	idr'�e	iv�mskh'-abcefghijlm�n?opstwhear:tdM�lmd�eoSJoa�aeiouj�arriyeds����'ing�rd�'e	is�dHrY�ad�y�i�c�r
�tZ^aurran2td>nr�s�ae.�i�lov�e$Oouard�'<e	i�lsea�dlbt	�n	saKfceiyagt�d'Y�gsIdsa*oi�nl�lo�l�ohmntirto'sith�'	isa0k�ohoorn�'esph'pssZ*e�iae}=op:t�ld8�e	Eier�'nsw7-uo7-rnau�[gssu9�e�'%e	Ei	)s�nr�'i�sX`tae	i�mbl�e�'adGMlrswbl�eorthiy�ncdkt�'}ahm�ae	io'drsa�ta�n�ei<l�nsh�e	i�mC'e	i<l�nsdnr�stsh'�i�'%Weu�is�oyC3r
einnUUge�ysept�hemeJiGo�y�'eu�iosucdfm�y!Oe�fy�c*lahssW)t}zn�c"�terats�klpaAUnloi7Pt>�nve&io�n
ademnpst~vwckrthh'*e	i�e<l�ns<eisy�e<ln�eg-e:yh'�er]isdl�pFeisngC'-	�shea�r�iVcdhC'e	iseimtT'haegrse>�idscshgmnpstvzh�'t�'e	isdZr�ep�'is��sdg�ikB:mth'efi<l�nsd�r�sol	�dng�'<lUsi�d
-i'�y7bi@eC'e	i
osdr�'�e!iszh'�e�'Y�psvZ,esth'eF�f'�d�ser�'�e�isyhze<l�n	prs�ot�'�e	ikri>�e?(e[�zabcefgkmnostuwte	iswd2ra�'b.�fs�ei'�yi@en�'thks�'abehilsp"w'�yd�gve	iAouste	�i)�r�e�oenTsr7s.eg�ihZ^imforne}ml
'gor�sy.aei'�y�d_ri@ensp\ho�le�i�'isUyshX�nbqer�guis�td�'ei�ns�'}lrAns}e	sdmp�'-bct�eh	hilmrstwybcY�hlmp:rwrotS9hurd"leuttin�gs	�ton�eoiso"nor'�dtaWhturd�l`�e<lnTs�ege�i5u�stt
�ein0�gobi0loo�thptue�od�'&dsol�rX�taori9�n7�c�nH�eckFer]ihirstiy�e<lne�so!�orm'�t-	immindedn^�einded�n�'be]�fiserg
H'd)�rngdM{ta\lbur�yh'e!i�s�d�rsom�'�e	isy�'csth�'�eiy�ene	ios8�e��i'�yh'-bFefghilnopst]�uyzbdoJ�uy-blowriy�e�e	i�u�ai�lsh'[e�uaow�r2�lenrstg�'-�uamip��-u�t34iinyers��to[�ri'yers�t-bcdefi�mnrsra�yberh'J'e	isyher�''�sgeiUd�orUs�'UsnUg�'-bdfgijlnp
orstybc��egplY�aoo:dol�lre	eencilaeiouc�k�a
l1^rb�lmrnEZot*7n8:t\rsie'�n.�sl�dfxirhu_�ans!g�haecke'�tansh'iy
�n�e�ooriEn�i:1ity�'ock>�ih'hosro
�anoguth
:'v\eF'fC'�e	i<l�nsnsg
}hdkter�'beisuss�'hen�ge�/tei<l�nsdr�snTs�'r�brst#�eiy�enfe6gJ'e	ishth'*e&ierh'e&i�osy�dt�h_'elw
�xbds�cM�'�sfzl
'�'abcdefghijklmnoprstuvwxy�z�'drsticea�'�'ds�'egi_�rswa�mng�'-h�shou}�sou}�sal�k:'th'eF�fisn�g�'-ce�hil�msyhoo
�klu�bng�'Usoa2dwjaa�'r
�'-bcostwsleigh�'ei	�s	�d�rn	�g�ei?ly:'w�enTs�t�'
ogs�'soxeg�r�ali��n�'ledih'dsse�isd�rgh
'e�i�s'�d�rai�lh
i�ackaHeiccie�'�sh'%e	iswurs�'adeghijklsycC�liohuin.sgd�gse�isd�rssidshaL�rattv+�a�celA�n
ods�eyeiaWn�'-bgiswbcp��luild#e	ihoY�emzlie!�rouardKe�i'�silds`e��i[�unghu�e6RirfTae�i"&eork�'TaesD�io�rttia:'}n>�hfiso:�n�'abegilos�uyn$Ort�'Us�a:Iey�'�e	i�msa�e�ilybiq�rC�l�e&i�e�anstHg8�i}a��ma'~e_nermia�'n�'i�ssmh'�s�'�i}�glnsh'eisdr�'mpsakl0�ang)s'�gZ%k�'teteBGrangXlTeV�km��adegilost�uw�'�cs�ef<l�nace	i�'ds�'�rs;ye�rdv'�ea-[ir�'hess�'�0aioswynx-egh'_�e�ic�nkisg�n]Eowoo�dgmnnae�'is�eet#e!�rb9ehteiovi�kstmt�'i[s[ce
'lie�r	�'	-�eh	i�osz��omajn\�ob�'aeips
lrsty.zd�ei�m
osFent�'8�e%�isd�r-"*ongF'sroofhifxe@tab@cdew�fghiknos�uy�z lnpv {f(�b�zartteis�m�tent�u
�')�a�ehi��m]�s�woldn��g	�'dhhlm�rsyea9�dA{e7eha`�ka�r�'�e	i�osj�aoemffeRr�i�ef��nta�c}a�oei)s)d�rn)g�'eiytrtv�'<eh	ise�eif�letT'r�sbrid�g:'b�oah	�ig�ah'bd�eghm�iklmnrstz�'�eJiosyo`�k�'-trY�aleiBryma'~en�'eh'd�ims��ao	�o
�'abceiklmpsw-bhCoindxtei�n�adnrdh'%e	Eis�'s�e>�ns
BheepFe�di�a�e�ioua�e��ok'�nrFe�ik�'J'e!ik�lsla��teht�yllFe�ie�om�laol2l0rork�mei
U'a(�rn:'sVQgh'bei=is'�yo7ixdr'a�sn�g�'lbadteis �iocg]kgle�ih'sd�rss��e�'ios�tsh<lness�'�eo
wrB:bt�'e	isdr�'is%�s�'Labe)�hilmps�yl_%oTad�e}sen'saeior�cY'g�sh'gsei
od�rn?�gckKe�iaX�dZ�arik�ntra[�pve�iyh'�ps
adegi}klnors}uzg�nt�xbze'dse;oaltnr=�ul�o�'�er]ilsa�t)�a�ih'adh�rsl}sYi�oor�l�'�eil<s�ucdntseF''�sg'<l�n	�saP0u:'-ehafga	ir�eCatoo�lb_d�nsuud��uilie�cgh�'��bsoC�lwfae>�iscth��ao�iIcteh:knopst�uw�'eia�'-nherzegovinQ�aY'[smn�'<eisy�e	n'�ishooru&;r�'eiyd�rshre<ll�nDson�'i<sa*�n�de
acfhnostuni�yces�zaUsl<ls'�e�i�thh'e	idc�rs�lj�aewyrh'8�a�e	is�oeM�le0*tx
v\ewc
ailo'�yc[eel��le	i�'-bdn�rsf�sgned<e�or.�ueop c�cm�'-�e	ilmsd9uwelf~less'l�nColin�s'ums
F'
cBdfgilnqrstvz-ehl�fan)tahinville'[ba�'stlla�obaiss[becde
iootter�'c%e	Eisom�bss[�v}zg,ncdtleiy�e<ln=�e�gh'1^ae	i�lsldn�rBGei�y[Beff*7ubgknr�sj�a1�o Ikeois�'ri�eeY'moI�u!etropheTd�'iosqu}�enni��e�
Br�iouk�iai#�v�r nh'-defi,�klmrsw?ylstweg:gsa�w
Biion��dHwh�ileri
�sf�zdlnr[s�'ls:'<ein^g�'fe
l�'2�b<e	i
ms�yef�n:''�s�'efXfisdg�rh'^|gssn�e?�ga�en�'a�l%veqahptr�'GsFrri�un�gow�'%e	Ei�s
�'-b7�cefir7lrt
wyosffR�ihil,fAodsn�rs.�ib�u�en�eg�'UsZ�oo�p�'-cdeff�hi�lsuracei�ErnGlg�eot�t�'a�tlUrrA�ii�sceounh�bp broo�k
_'
�dhi�mosaih�r�le
'aeiMmno�ruyzs��'j�bcdeghik�lmnqst�uvwyzehikt�'d*7lrs�'�ossiyao%�upfKsod�a'�scP�tep�hngF'�l	�sein-nt�'�eu�iss!�he'�l�'esalt
�'abd|�ef�il_�msywZlu8r%e	Ei}so�o8e}yhtdare�e:'car�d�'msarh'gs�'ae�id�roEFcd�rs}ema�s�'gnp<sup�'�ai<ss �muI tdln sh'�ea|isw}=ole�'<s�'-bc�eilpstwydaemaa<ao�xaehl�lild�'k�r�eZl��nej�so2Owt�eorm�'�eisn�Lgeras@Be	Ei�eap$osr�vh	le�ie	i�'d��msY'aabC�pl!eiy�e�Zn
�'cd[knsttxh�'�eir7lHvvan'�e'�lg�'Us�'eiosttyd�inr�r:'buD�r$�'em�nVs:'dso'tn�'	iwin^e%e	Ei�o4oh�tol�mhis�e<l�nrst,el�'-2�aefiynec�kdrs}�iou��ne<l��nrs�etlji�'istwsla �v�al�ily|�e�iu�rae	i�noI�ud	)oh'd<l�nrs�i�y
otl�ln�'jisy�'�e	isei�ozdn�rs�e	i<l�n)sFeln�'MYia��vacdeimnstuvwxyzcdk�nmsth�'>Qe	i�'-abc�efd�h	i)�ls�twand-bul�tlbboaaos*7kw�aQ�xrum
fbw�orFut�iin��n�'-abdFefo�in?opstuwbf
�iouulWaf'�f(�pb�g"�w
dl��eaonce�i'�d�r�warst�'�e	iso�nV�eoint'%e	Eisp2ehirou�gm{p(�at
�'�b�efO�hu�ipsGYweded	i�s
iYBlturoke�'�rsm
�mh	�'aeigi�lsty!?blyszedr'�s�se�isdrss�sak�ichkiaste�d4i}tenrid\gcdzh�'-^[el7iloa�d�'Fe�is�ae~Qiy�'dswa�ygthtv�min,�gestn�rstrahl�Xudnta�'tn�aMe�'H|f;owoH�oek
sttnh:+a:'hCzotk�r�'4ogXhei�'st�'�e�is1�t1^a�t�'aeu�ipsrr^Lidr�'�is�yu�bKtv�ik
dhne�vabcdeglmnoqstxnr�'}an'X.yy.aeih'drs�'�is�y�en-tekoa�-br!�a-br�a�'\i-�tb�eilmsf�wyBenayFe�diaso�naD�rla�gaeglplh')sve*�i�'gs�"w_�rm!�aeo�imn�'RadE�hnj|pRr
mstw�dort�h�'ot�w:'}eaf�o-etor�te	i�'dswa<�yjzo
�'fr<sh'�fc�@e>�i<l�ns�'ls�y�'a&=ghisdn!ei�oFe	nd)�t�'asg6beQaotu,s:'��-e	Ei<l�n�oswnr�sh'a�^t��dKYtl
i}oanoDcth'i<lns=nn�'-fhl1�msfuBl�utodegiknyailb��es�ie�'ds�'d�rsFe	ishren�eg�'Oblmsanship �iY�ckubkt�ae	i<l�n)ssdr�s�tloe�iy�'2�bdsl�'^s
:'[.akhci�nM[o�st�innitac:'�acsi��sh:'elnro'qs�ye�s
U'ajel�nn
'�itye	Eih'�d'l�n�rs�tv�ik
th'abcegiklmnostuwxs�zcdhh'e	idrs'Hs
h'-abceflm�nswbmr��uinded�l�n�exa�is�nalsth'Feisn
�got-hnr�s1eisn>�goAUreoya'�fved'�som�'�esin^|dhiw*7ed8�e!iY�oaep:tYy_^ldingnag:'ieachkol-imeu�'viVlderbo$�nHha�ueTlae	i}wnr-h<lns dhear��teartedWle2.s�'�a�e	isglHaiySse�'afidLlsw�to}mr6~d7ngro�vhRicsttxzh'ho�sio�u'�aotl�a�eitii�c�sd
�gpsilatiKoneumo�ncpop�e'�y�a�'bsu(�soRneo:'saur�'s�ueu�i'�y�'
odrs[''�s.�cdkmw�'eims	)y�eWlnegss	�'h'<la	�'eh	ils�tw:'dH�sav4eaey��ntd�'s6n:'BZi�e�'e	isdh�i]�te^Le[.eh�'es�lr�'-<ef�h	ilsin-l��aiy�n��-ghlh�at�oa�h�e�'abnsv\reate	isn�r�'efi'ln?os"�tw�'d'�lr�siel/�d�aen	s�'�rs�tgb3'Us�e �oh�tv 
ii�Plo$�oy.ale	ibtour�no�w	bceimnst�xeclkek�'llosi
'&ngeXhWl�nstlei�yne}AisEdm*�eie6�s�ceh�^ntost�yilt�'C�a�'leso�ch's�til\dwi*.c�'%e	Ei�shqs
�'-��b	lefiA�lostwyot9ue�furk_%e�ei�enf�ftro2�kaLiolGo7�rue<l�nr�seb�l:'ae?�hi&=uli<ls�tz0|a
�e	i'�m'�ta�e	itio��n�'�d�rs	Gni�sa�c,dnoj�nY'dI[n�`wK�lnpz
:'�i'�yh
y:Ioezin�&s_'�a�cHd
�ekU	oy
b
�cou�wu�r:'�.bcdefgijklmnorstxyzh'b4eossle�i	)y�'dgs��u�'�e!�nacehkot}^iai'�e'�lnee�rz�npha��laewnr�a(�enwalldaal�'-abehilmnrstwypas"sr��o:Ieo��adrt�y�'�eDZf	iswh8eo�ru!�nngham�'k�saeu�inr.d�'d�rstyinsterfuller�eer$�'am�'<e	is(a�chkoin�'�nsehoeo�roth�'�eheabtal�lu�b97l
�'adeg'�o��sw��pY'�ehilyYaisYm�t[Be�n�e�'	Eir��ieidrsti7�g�'	a�e	is�eneoiKs�ohrn[a�ofj�o
�'-ae	ilos}y�tlo�'e�isdsdp�rt�'eisdrF'Hsn<�gehe?�ao'�sn�'eEis�r	�'��-abglszbt�o��t>a7�e�aei�ydr�'�e	is�yenrAnse	i�'d�r[jsi0l*.cldth'-y.aFe>�is]�uJ�u-'~i	i9uumb �uhorar}a;iw]�sCi
abfgiklrrPtpwhwdellbaayo's�c�'%e	Eil�os�ueiewna8�eiy�nr:'i:'�a�e(nma
birexiah'�sa�c�'�ehl�isyea>�d'-*adefhiop��rswys-eyhea|�dogUz�'�[gsdr.nrt�'-�eipsproof|�e�iHsn�'�e'�g	isroof�e!i)sirg[�nht�'Fe�is>�oeBZiv�oad�'esd"�l�nen�os
od�rs�th"�l�nc�o)�k�eehy5`ei7ot'st��sei��dr's��sn��ghiaicw�kBpn�Pk�'bu�io�y.�u	�'-bfhmpsbsailif�fFualoigeiF';�bd{rs�ong'lUs
�a'�y
l��uol�Eeeu�i
od�r�s
h'e�hl�ijkpstyd�rP�i�'EVbcdfgik�nstW�uyho�'�ye�iy�'Z*e�imssbxeaej'�l�ybn\�reAr�osbta$ na6gal?ui[*g	�'aeD\hil_os&lroto!�xd'�en'�rdo�rFenle&in�o:'xcy	�'e�h	i �m!os
Dudr�'<e	is�eh'�e>�isy�'a�e	is�'bIcdegiklmn�pqrstuw	pyael
�o��s*.n�DrOe	ie7�op*kn�'�e	iso
@mau�'csxra�ct�'is
�cszM�a
�e	ia�e	itio?n�'ehlosu'o)�rss�'e�'Fesa�e	ir�'�-ips�y�eBjo�zroof%e	EiUsm�y��andi\�ya�en:'�s
a	leY'ia�ye"jhi}sna'�'�aeisydl�i�rs'�yque	i�'d'l�rs�en�ega�t�mtaI�eh'aVdej�hidLlos@�tb,glya�e�'d�r$Oty�en�{sgF'�lsouse')s)s'�s�t:';iia	�'ae.�fiosw?ad�nn}s��tgjuo	ch'ssul�wg�ha= it�'exvrh'+e	is�y�'e�onsha�wndi�'an:'<soVo�'bIc��eghiklmsty$wyKa[�i��o0�yi�r
�'befilm��nowy�udlrs�'	�ef	�ils�ueiF)dngF)sird�e�no's%aae�n(�s7a�nX.ohackeu�is`�e<lne_gss�'�er7l�mp�weo-	r�p�'eisssd2rn�'<egsoaBd�a	eh'e.sl�'aeilsyr�den:�r�s
e&i:jb	i=�nwoz+r	H.acelstyn-eLohh'ers�'J�eJi�ls�y'�ner�'%e	Eis	�'-eiorssyen
�dh'drss�'bc1ef�2im��nsw	)yfxauYrr�uea�mailen/sH�lger�e��siye�ds�'iil�kcot~co_rheA�np cn�'�Lb�eh	iswo'�l�ou�ef�o�elr�a�iott�me�oh;uh'-bFem�ios��b_)a6Ruz�'Y�a*e	ik��w�yi�l�sh'-beglnoprstwzbelplZ`ole
�c��aine�iHdT�rrod�ul:?o�'-lrs��b��loruss/�ilUso
dnai�wne	Ei�'�d�r�sa�g��mbalr�s�ta
�yod utd2e�nomao	cn�'i�csmya�hsti�u�na�tne�'5�cs#aY�oantinue:'Ws�mctjh
�e"Hi
:'.abcdefghijklmnoprstuvwyz�ellegan�sit�.

:'abcdefghijklmnprstuvwxytiH�n�'abdeilorsl�n*7r�'als�'se	id�ra�eiygl�ais'�m�the!n�'rivr'nss$Oen�'e	isdt�'m�rsf�wakFein��ge	i�'cdgsasth'!isH�rcotthoPndl0srlt��ua�ei}lm\�u Ino*7l)�t	�achkMmotuiat��oae	i�c�'Lacd�i,l>�p�rsr�t�xlle	i�yphoni�o�y�eJ�siwum4�i
'abcdeUgir�m�rsusv3nter�'osus�lX�nu=^ra
�miyeucesSs'ds�h'	intct�z8�e	Ei�'srtl}zlac'�sscei�ucdnrsai%�ultFa�i
,morhabdit�iphill7�ya%�iI�uro'%ei<s1aefC�t��
h'�stei�re�@ressinaet�ee~Qi�no�'d?rsIy��uok�o�iacw�gmnprstup+�h�oag�nU'o<szoW�iirin"jhf�n7�ooshi�lne�s�4foM[ule	id'm�trse	i�'dswap l
:'acdefghiklmotuvyb�imt.�ao�oair
fi\�nt�iGo�yh"jeahioulrka.leous'ln�afmnrt
Duei	py�rc�e�a?i�a�e	imMpltaiubt>MilIeeiFo"�ds�n�o+vs�'[et7]aDBaer��wrtT'�a;ooxntbdnonb�id��aer�'<e	i�s�'-sleni�gk�iar�yo�u:'bcfgps;a)�era�ete�iFod!rs�oorni�a
Du:�uehr
h'Z*e�i�s�'
asthenic_s�'	�e	�i�s
C'-abeios�ubg9ua�ocX�kir+�l�'Tbg$htQo
ms$hacg�kd�e�r}eg>�no?psraphFei�yce�s,�pth�oenic	�s�p	1suwse!i<l�nd�s�e�n	�sh'a�@e&i<l�nsytortuci',c�e;�fmet#eO�rF-yn\�dech'm�eni�y
Sa�e�oaeiry:'d$Or
osn�'gis �mt�'i�s�ccp�xe�el!s�s�'abcl�deAOfgiu�mop�rs:?ul�wcrhade��reiorr�'�e	i�ls�a�udiaU'(;ni �acdg��eord@Belmr�or	�'-&�bh�los�hair'ptardalU;itT'WsberttT'<sao�'-e�mpswrea�derso�mr�ktnono']di<siLrkln�oD\snic�kl6atQe[oemou�nc�iwVQeflage	i�'d{rs�'-abefghi�os�uyfs�i�iingl�nb�eiou!Mf�llogc�ei?�yA{c�e�sla'�stello'sa�tpor��tdr�'a�dsi]rrouw�nor�e'lmnetc�e�a�ey�g[iha�f'-abcdefiknoAnstuvy�st5'opeS9nadlprsvn�'it �etaian:'i�ss<m�'eiY�ls�t
�s
�z�e
���di�ye
ms�tera�lerr6a�ae;ulru9bD�e	�ilsaD�e	�iNbtei�d�'o�saeiloyctQela�obsr
fa
Du\cd�eaei<l�n�ct�egu:'�r�ae	i�'bdhlnpr�ns]�wex5ro��ligtht�'8�e�s
�uow�`ed�'�sm.5rubl'��+r�'-f	itstri:plosw�s#_u�'bd�rsl{riel�dns
fegter�rer�'�e	i�osaeiouybin�so!�i'�ldlr�slon	)i'�is�yb�e<ll�nsal�'iss
�z
�a
�e	i-mrtk�tcnt[k	�'eabe	iZrsalr�ldKelaiszaf/e�itioX�n�"ae�iHdHs	k�befglnoprw�'d!Jis0�a�'ei�rs�scsf�zali<lsszaC�e	Eit��iaC�e	Eit��i
�a
�e	i�td�l)iU;u)yousE�l��i	�'aeiors}ubln�tirl>�eia�gOwnoup�ekeP�rd�er�'b�e	isur�iy�'8:clne��v�'n)�rs�'�ae	i�msd#�se*�l-�tas�'�Zbe�i�}ssd�rson�'�is�'ae}hiAloprstubcril	1laey$�n�n�rsi�otaiFo�ynteijv�e�vison�'�e�is�'d}klrstl��a}^i�'�e	is��t��k:'io;wlstaln�oari	)y�eti�y�eHstrasnaou'l[nBt�'i<lssz
�a+3e	i-m%�t
�a2�e	il�'=i�sla�u'�r�t�'ns#�t�'tQesaeu�iudocia�ndllac`�ccci�n}aiy:'c�eBGior��nla�etitu9@c�d z�a�olaeiHer|�tFe�'�ds!nC�sS\z[.a��ciFouia�novEon�ua�e�it�eiFon�n�ore	ih'd�rsu�ac�Ylthin
:'�sF'[o�'-abcdefg]�hijklmnoprstuvyjsackeisd>r'�tn0�ghia"rcknes5s
:'bc�fmp�tv"�winier'�e'�ia�l7�sbeo"jll�'iss�|z�a
�e	ia�c�xa
egn��g�'ens
te	idr�''�s1^aeraxiaiossu%�m�d�n-hlnrx�yloa>�dyb�d
�i�o�'-adisb�y1np'�4e��uaS9pct�e8�eUi"�acfszero��u
�a+3e	i
�a2�e	iundu\�myla�inrclu!elaeitSJot#o�ks�kzahios�es�'�eof�nemi�snog�men�'eis��sch'�issg*a�'-abehiors�wciarr"ynd@�emo�mBnoard+�n�rolder
saeq fgno�cnessan'ss:'a�gl�'i<ls@�t	
g?�ilmprtvra�mph�'Taes'�yogi�yJc�e�seyg��aopatK�hulmon	aespi5$rhora�casc�qu
oz?�ohar�.p
h'defg�l�rstwtynr�'�eisns�m�trV�u+ei�^vs�'	lei(n>�v�'�aso�rb�ae�i�olli(�gbc�elnos
:'boWs(`e[buatur8�einsz8�a�t8�ala	)g'Hssl�u
ebsorack��eissn�ge�IiUsUd	�'�aeiosty\nto��nns�'[egF'lV�e:'a�sftwd�'	Eis]7b�o�o:'�laeirt�Jhltn}al}oc,�nha��eae��fioyrgs4l��m}prG�t�vgl�tyi7�eC�il'�ise.tvUd)saol�'ess��qra�e�oA�st:',ih'	Ei�blmtu	�'-eilsysin"g:'�d�rn*�ategio�ian:'[sD�e	�itQnh'Z*e�isein-e!�o�dHss
ae	ih'd�l�rs	�'ae�hios�uc"�ltci�ohiand�ln{rttae�r_rr�'�eu�is�'b�ea|isag�'gs�ae!i'(no�r	�l�'a
eioygnteenzhoM�oaceln�oge�'swa2yk'ferg�u:'d)�rs�tlgk
tl�nttlbt�'V�isyh'-��ac	ioac	o�l�o?(o�uSHvio�ock�hn�')�aefhilorsw'd�lrs�'s�tian:'Dqi�sXuaog�ein(`i�rs	elnag�e~�iE�ogmnopraphFei�ycea5Sn�'%e	Einsagn�'�e!Jishil�i'�yi�dhreel�'e!is�d?righ�tsse>�idnrs�'Adis�y$�'ao�s!�tdpabcehikpstub�ln�alan�c�dovYaa�had�re	i�'d
ms
�'-bdh�il�mswtyhlsardeZVno��aens5ioo2kardeZ%noa�dork�'Fes
�'-beihlmpboo�kaoc0�k��ods�w��en>�e
�onRo�g�o�'e	Eis�d�tag*e�iQraeiodn�t�vdr��a�lr
to?l�ajYdRelno�u
i!op��ec1\wf�k
�'-aeilorsi��o	rn"�wed�t�'lrstlat�e1�i�'s�t�hgl>�n
Sa�i	le	i�'d$�fmrsbmaeaghU'��f)�rai6ot�e�iob�eailrh'<l�n�s�ti"jnst�'i�rsc�a�'-abcefghijklmnostucvi�wa
absnd-d	oittTae�ibc*�dflmprstwoli'�c�s�t�zhlores[e[i�tysm�'�a;�isbma?�laeio�puy6np�s9Vt�ng��n�'D�e	�i�sue	�il'�d�r�s"jfst�ze+�i�td'�rsich'�aaC�rluecZx�l?1a��rtroph�ei
�c7�so;Wn�bY�i�toa�ah
h'-aefil�mpuwy��auHphb�l�rs�l�eZlnX�e�gi[*gnehnn�iyra
ds?p}�eY�ocgnrheiou�stiz�cs z
�e	i�m�tla�m^mori�yc�e$msz�a$ua	,e	iatei�o�vceipswor#�nnZgill��aa�duig.�sht�i'�s+uaelor�yr�y&Wst2=idrtr
a:'i�ne��r*=edl7|a�e
�iolumines9cic
'ai'l��ss��l��stt;yU"lon�'!�isic+kinYt��a�i:'nkuilliN�t:'aeilyi�ldr[�i�y��e<l��nG5elU9lcd=glsta��husio�ua(;ni�dsh'��e�ia9l!tdikrflowh'eCRisae	itlt�g�i<lUs�ei�ov�e�'dhlrsw�'�is�aich'
�a�iseir��ion�u�'	a�er]isaeiolncir%�aerh'<e	i<l�ns�iG5y
�'�!-�ad�mnrs)wl�adis�h�'ns�'%e	Ei'os3�uha�m
'1�sal�	ntrC'?eHsh'D�eilsng�sD�eingF)sa�i�yZr	tVXr4u�'�e	istoQn�'e�lmsunne
'�ss
anU'^s��gseh'ss�c�s
�t
�dtucv'-cm/�s�ts�ro�sG�wm�s2z'
�a
:'abcdilmnoprstyzsue	ih'dfGMlsgises&�cu:'%�aaeio%�usl�ll�'}e�i}ysto��maei�r^Lur�'sl�w'�yd�rsln�llidV�nD�haeilstn0Nde;sbrs
r�sa�i�nte�iKoldsiCo�y</aettt�a�eial<l	�stabna�cte�'E�ls
�'a�ei��mopsuF'r�'hIe	isn�s�g}i�'psthaape�Ii�'UdUsho}�nlaiorh'i'l)stGyt�eilGirssi:'iWs �centt�'aeisDunt1^eostbtzit{e_=ia�poi�cFeour�'�eiQ�sw�an�orsRave	i�'{ve!i�'aeirsuu�vr�'sU;unrsanri	)y�a�eiael�'b	�ef	�ip�soar�do��liec�ei�mglmprad�me�s)�ie�'st)�er�e�i%�eaeiohulh'i<l)s[as�tz
�a	e	i�mt
�ae	i�'b�df�lmp?r�s[xoar�dioldl'�s5oie)�ccfnpsuga8�e	i��lt�e�ig�o'se�t0�m�t��imRseW�rprLli�y�e�o'�ss�haelio�ccpthordat�ae'�soda'�s�nhora'�xi�u�d
abe}fimntuvmic�s�'�i	)sesr
abHdme�n�serlla�uaio�u�lRt!Mfsv �i��pascula�r�eoni�ya�e�olh'<l�ns�n�s
Du+eai�sin�e<l�#n�tfo%�ti	pyB�ac|eat8�ei�n�orarilV�me�aain"�tc�x�ahe^2iaisr:'ean�'ss%�u@a�einp�a��omio
oao�ucea
fnlogi'�ylon:'ersa=n:'cio_'/�s
t�s;i'a�begil�moruy�in:'�g-bcdefgiklmnoprstuvyc;�hj�lo�nU'C�ioss��w5`rtognath�aJef	i�'eis�`wdre	id�rn.�cg��arin�'�e�isnr�st�'-�e	ilssmokD�e	iikawh'�e!is	�'�e	ilmps�wa�yi�da�en�'s&�hersa;i?�n"jr4acd�eiklmeod!qolF%pit��hea�nc!eothae�'b�eilsy[�o�en�egijnewinge&ih'd)�rser��s
�abe[	fb9moperr�'1e	il��mpsain
�'sl�o
U'_�aleiO�ms�'C
e	Eih'aeilos�gign/�'d�rnon�'e	i&�sdFsa�ill
,i	:'cdegnsteiry�'dlrs�'ls1^eor'ssh�vip�'s�i�y�enfe
og�e!�oeil;orM"lga{r��ea:'��gsek2h}l}y:'cem�ish;u	h'-adl�=o�rs��rkbei}osV2sn[bg
�eheil�'	�eils	�nsz�kae	Ei�d?r�sae!itio��n�d?r�sei�d?rng�'�sn�ge�or�v�'eirsd�r�uyC'ssclCTnle��l�i�y��l�s*�t�'aatbel�mpsturt�rBitBialru�'sx�'�Trson�'�Lae	i�s�'d�sa�eiidynnU'esq�ua�eisyquidd}si�enaO�eli2"s2"zltepHeh'abcdgilmorst�wybc�dn'�sa
n
iter�'<efihlsu�l	nsza	e	itb
�tKijlirca	,e	i�b$wtX%gr�aom2iou��ate"r�'osnnay�'se	ir	h'a��bd'�eh�rsblle��ailt�l�e<l�nostt�'e	isd��ema'�s�'taich'�a�s�a�i��yaeio�1tdtAdi�yan�'#i?�rsm\ns%vtQya�gtT't��oeo'sstteo'stvill��eo��w�'U"aeilsn:'g�e<le�sj�l}n�e	io�n'�s�'�aeirs�wdl�r��ns}m�teo}s*ouo
�mb1dei�mstu�'d�rsdf�n�tDqii�d�sei<ln�r�se	isd�s1xstt8:b	�'u9behlstzaluh'bEssxrian+�d)�aams2�iae~Qiyhnooch#�eoo�gd�lrh'be	i�ls
,to�t�xil��lcfntvetQrfe��u�cauq�ui%�n+ee�Pf:'acdefklmnoqrstvwypeTte��i<l=�nsosnr�sYBkhke?�n,�nh'-�abe	ilmoprs]�uilJ�u5`ni!�soo�x�kdrh'��bZ*e�i	)si��sa?t��f6Ru_�oo<noum':Tmsdar�'sk��prstI[v�'�b�e~Qipsyi�e	�'eV�filsy�e<ll�noC'/sea�s��deiy
�'-bcdmpsl�wcpsul,ta"$rkip
�polwuar:�dF�alothonX�gar��i�e��n�a�o�'-R�fsd'oeu��vhovU'�iaimstytu�ei	nyoce%�rsflcoeywoo�d �eenha[mabiC�nH.inotu�clsuminescen�c�t�eyptitz
h'acprstttrac|tez�preve�nece��peyn5(snth��e,5aherapeG2i�yuti�cra�irtgU'8egin&�dl�l Ia�pueZ�i�'bnd	Eir�soo�k'b<e	isoard'F)sF)s	inor6btuvw�y:'�esh	le	ieonkbm�yyr�dk�oe(;ea�iyP�b�'-picRYkb�'is;�c�msHmE3iel�lahstpea#�k_�i�'��be�m�'efl�i?nsy�dr�'-f�tle-stree/�tie-�lug�lrhuair7�yl��iot�'[solnetQt�'%es	h'�abeis�tyac�c�enegssh'�eenn6e�e�'abcdefghlmnpqrstuvnr�gtib3'<soscur-o�a��c	h'a�ehkln1^ogno�'��aland'�s}ae	i*�o�'drsF'�i�yFaeiste[rh'�e�s�'aeW�psx�w;�dsa(;wn	�'-�efh	ipsalnd-\_ei\gves�eear/to�xhitsey�'�s�t“e�eingF'<lf�'d�e<lst�oain�'sh]�ifon�'
�aisgnuahua�'b;sbdeilt�,l�'bcef�hilmpre�ia'�dr�ia&r
rssheis!�s!akindeir
['sroof�e	i)se��a�n�'�a[sh'ahersc�h�'aei�nsyg�odc�r�s'enr��s�eg<l)se�orn[sabeinp}uera7xioraz�'drs�'�aisc�acnhaun"jgr`�re>�y�'asn;�z�'-ace�g�khl1�nostwswtrJ�aagY�g
�'�Ibm^st��w�a�e��oheirinc�%h��l�'ste�'os �ktra
fpz�'el�iyaBg�'bemop��soar�dwyZ�au�nlatBaei�ydn�rwdha#�la�m �a<�eng/�'suiaiopr�clcg�3mpraph�iB�yortdi�y�e�sact
iFoe:Irh'�eisy�eK�lnegss
['�e�iu	�pehil�'D�e	�ilsD�eingF'�so��lnaRu�'-ciostcR�hhat�'s1�ts'aaeg`�orlin0ga�eivyl}sri�o�yce_�ei5y<{e�iaomydiah'/�e'�l�s�eradio�l�t��a�dnP�ta�et�eic�ono6bnfpqfs�tlouorocar$ybr�mhlyE3l�tasAtuziciklmnoprV�suw�ckoss�!t�'-aJ'e	isa��f-blY�oblocskhlo9Vlate'y�'sF)ycrse�'�lnrAns�'b<eg	ims#oir�la�e'�n(�s"jye&iC'bcd�r
oser�rherrAdi0�yeiclrsaylcify�esteicto�m<+tith�8i�'-a;�i�sterE3one'�rstera�sp�Rsh'e	isdBrdgriochthy�ecr
yan�in#q�EksLaY�eiy�enfegh'�h�ipr�nseiyd!r�e<l��nadeilot�ulh'�e<l)s�'a<e�Xislta�e�'a�dosg-�lrapheis�y
�cenn�o(�se�gKGeg3�iraphKe�iGy'Ul:''�x�'SHd�e!iseioyt*=istT'6bmost��m��i
�'}aceilmo<shurctQhnd�e>�i��s��o
:'a6enn�'�aisstz(3e(7i�i6ye(7i[d[sen'tatQeik�eas�'�eti��d��mlpogi�ycalx�l4eh�'Memnaeio�'kteRYyeioc�d-nF'
�ai�ns%�sZtgra�mph!�i�y�'d)scn�tDu9agd
�gZlps[uyna?mhl��o�aop\mhere�iioc
�al	�se	i�'d�r�sbglmsP�ti��oraph�'�is�yogi�y�c�e�setFeri'�yc�atratigrap�hsaslo0Ltlnid�sthe9@ms�tbcdfgkmnprt^�v�'bsiy�e�nk�'�ehils��oen
e>6il�lf�'�e�'1�gso�c"�k�'>�amps�eiyhre<ll�n�'%eisn�gd�gkter�'ei)s)d�Ern)g�'�eisy�eE�ll�nerZ*e!issapcabr�aa7o'�hclnrth�'-^[egil�mwyof-englan/�doFe�iai@el	n!Dnl�'ia�n#�iyaor�{dm�a�eY�a�'is�s�'eo�is�eig�nu�e6o	@e	Einz#ep��a�mtealu'�sxaiZ�n
:'acdglmnprstv��'b<�oatt�aace�dtric2"sx2"zeJi�el��'s''iol_�iKGlrotT'n�ei:'Fea'�sur�'meD'isate�raintr
�oa
Du'ted'lsam.�beria��ncdegnqhit�'�ei_6o_Xennnat�iuretyr�'e	isdl�l�'mpra�'stcope�_'h
�ioeeqgraphFei'�s�y;�c�ehil�e�ia�mula�utab�mrXai.zuef��o��hro:'floxVac?�qra�eludi�aei�'drs�tn�pilm�st	�'�a�ei�o�rs�yenanrt�'i<l�ns+�s�t z�e�iorycflnpsvirs3@ce�id�rselren�cti
�aex�'^[e	ioucu
�navigat�eI�i
�o�qocptri b@pehct�i<lQean?ctial�i<lUsaellat1�eyintfa�eUish�i�uo�stia�cct�g'stv�e[u�.a
eiry�bIldBt�Xb^[efgnz/iro'�uen�'�l�rQ�saioute'dcnxu{�l�en�u�'esl�ls�'�eZs'�y�'swca
Bp$=i�eivU�cli<l�a$ms�t�,z.iMd:'aeiouvwxycdimnp?�qrstuvw.sxykh'e	imsdrannan&sd�eo�s�igern&�ebmro=r�'I�ae	istT'a�e*�ovudz�ioyan�cx�t�'�abmops�BaeeTr�e~Qiyru�'	�e	�io�s�pur�'t:e	�i�s�'d�e	is��oh��e�'cdgknsa�yrtesti�nh'��e	iosru�'ous"�lr�'<e	iosFu�'�e&isish�l�nh�m'�wiGph'bepstoardh'Z*e�issy
,reY!idr�'bsoa�r��or�atQaeik��t[yU'mnr�to�Hn�c�d\cfnob�s�ti	pyc	leatitoet�'.Aist4Ni!n�'tek
s�)vhps�th'	le	i�'-e	isknif�v
odr�'-	lecfilm_�rwycloncsious�ncious�#nCic�efZl��n7�sC'ai
oslh'i<l�s�t�si	pyRaceatig�o
fd�rsesshnanr�t�s?korB�k��hterh'�e&is�ydsei:'iFl��t�a\n�o�u:'�ae2�it�'[nsP�wr'�ao�uphobiac,aei�'rcFe��h�l
�u�'�e	is	�'eimstwdy�e	nxPs�eoon�'s
adf_�gmnorv�wnr�tv	-Ka�eil�ns]�u"*clsJ�ui"vha�wvn�gjiye	ih'-aehi<l�nsw"*chsY�ueaded�lnig�h#�n��sd�r�se��ang�'-hshou{�sou0sa�i�
tD�y�ae	idau�'sr�t:'ae��o�Us&ptnc�ste�i�ya�u
U'ei<l�sne
:'�sn�c:'pa �tegikmst1^o�iy�'�m�wc�'asl#i<ls�'�e	i�lQ�sont-ferran�de&�i�dlran7�d�e<l�nbcefsimnopqtvsxu;rhke���
h'�d�s	�'-abe	ijsthroug�hb
l�ad�r'�tac"$ktrent�'-es�ser
�vle�iC'ss�h
lf�t�'-hosthang#OeangQ�e	i��r��oab�ect�xte
�iri-c�e%�iologi�yu,c�e�sh'-RadeisdowHno1wn?gc�egikothh'*e>6ih'Fefisyil/ssm�eiCnt>oc�'�aC�ish'�e	ismet#eL�r:'�o:'metrici��sag�n�'-��bpsc	ol9oe>�iuei�'dsy�e	n�sh'ossr�aid�seFi��c�seɸitT'den'abcdZ�gi,kmnprstuvwK�yz)�ck�'-�e	i_�rsand-dagS9gbe	�r�hk�'-eCRimswwatche�ir
[''�sd>rakT:e�ia6Ai�otch8�e�'dhs%ei	Gns$0hoppsotnne�h'�sF'��e&�rp�'�e	isacei	�klze$�puEXr�'d?rsy.dnh'1�pse
	o�t�aeiu
h'-df<lm�norAns�t]�u	cs dfhkmrsY�uro��pi�si�ta�un�iout:hatti�e-circҦuis^|tout^|h"uVhn��sre	i�'ds�'�.hs1�t��u�'!bei}osds-bhlmppleru��s�oi	=n1a1eHhiFe�nds�t	�'-b�eilsycuckoo-��l�Ke��u�e�ll�nest
Bs�ce&�aei�'nrs�'lsea�fAdvs$�'n�'�e.�fisn�sa.pbKfce	imnst
�'-bf�hl%�mrscfl�aoot'<eaeu�ib!Bi
l
odr
F'�seo�eoth'Z*ea�noo�m'�t�'dhls-9ups�'�e�isyiy�e<l�n
egk�y�'eisy�e'ln�egter�'�eCRisn�cjh��tisiv\yi�vsisvsxdte:'bsa"pn�demnes�t:'dgno
�s�.r
�ed�.MsainsMadaria�n'�s
_'�'-abcdefghiklmnopqrstuvwxyz
abcdefloprstwlul�i'�yth[oerlligerenc�tanR�dhoaKi5Knnouspiz�rrdinati!vnse7lependenE�cX�tdviut#OocatioQFnoluLvtiontaounde�i'�d5`roc�acprwcturR�r��aetra�nt
�ei#o	n�ove�lns	ai	n	ojvdinat
�e�[i#onersh9iirlotF'Hsodu:celsigioΆnponwditgtne�iHsHd#QrarY�rsrimoxazNoorr?kit�e�wt	cdglrstuxh�'	lem�il�mrwoad�so��o�ho!�or�kj#$uula�b�nt�eUi@Bo	�'-efhimsbfhY�l\iio�ldrsce	idnsrct#�aie/s�'l��onti�oine�irssste<lnr�se	isdwsiculay�tt	�'-aeg	ilsto-coCaUUld�ze�r�.u��a�i�'-ei�Prstha��nd
�r[s#�g>�na��e3�itho��r*ei
�a�n�'ab?�d�li�nors�Ouw;ilrt�'�iyo(�g�'e	ildr�')se	i�'d�rstoynl'ass�a�'�mseb�'bs�eiy�e	Gnachkor�Ft�'-qiscol�ai�uy'd�sia'�n�g�xail"jo$rbag[mn\s:'eE3aea�'ers�'-abcef~QilnFprs��tyaefosJ�u-ndhoodle-dtoтod-��b��eyed'l�night'isn�gf-the-�irwaoY�l<o�hb`dmptull'�yam)}iX%o�oDurou7a4rhrafeBr�;odrv�t^|y'
eight
h'��i�se	i�'bdsi+ud:d�-hey�'issmo[�ac�hu�Ooc+rker'��s�Zs�'�ab?n�osoX%l
'eatHeR�iKo�'�ade.�fgil
�o%9psty�e!iGl�'-b�cdi,lnp�rstw�xswitcZ7ha�or�seake�iJ�raD�mendencg�t'�e�i��yermi{�nor>dc)�fA�nme
il7iwallUo
dflnqrtvx�'i�sut<e	i#Moscation�'
�asfic�ieunterat�a�erA�oobit#QeL�iu8eacei�bn�ov
Be�iaen*�er�nalh'�i<lsitste	isd�<nensicvafc�}te�im�serty�'-�@cϰhmpschm��ptaJ�u
Bkou�sL�aa*
bTfa"o�'-d<e	isF�d<nax�a�'eY�ginswntc9t1ltaio)�ctx�ewistzanctiovn�'@\asr�e7�iaTbn�ct�{mscent	)eihIleae[no^Lub}nita�e	is�ntion�'I�asFitnrse	idnrsc9t-e�i	)yi�o
Lvd�'/�e�rs'�hf	�lmnsrt�'fs�e	iur�e!ibai�t�'�acc�e	istide	idns�ct�a�lurareau
:'@\awue	i
�'d�s�y:'abcdef#�gilopstuw�'�c�tnstitu
Bde�yr7�thei�s.c
h'-b�ef��i<l�nsb{hslo��ohould��elo��oield
'
�'a�b��c;e$mors1(t�uBymbal:lpter
ayoaiitLnX�dlqa
	acf�ns&�t�'<k�so�6r9@eaeiouW)ybgprtorat�eiFonovn�'isstr�ee	Ei�'d�nss
ei>Jbn�'�b�de	ihlsdnaebq�rbq�reIiFodrsal�'i<ls)}zaceg'�tg	=uth'acgeiosb{�l��bn�ov8geis�Tt
�z
�a
�e	i-m�tr�',asn�')s�eial�nty�i6e demns�'�d�5rsat
�ei+o	n�o:'egsarit�ywooV�d:'%viI�oJcgiqtC�ud�'@\asui�ya�e�ulb�i<lUsTSy dsi�o+vgmnprsune�'�dsbitoa�'(;n	�'einos�ylss�'�csac�es�7zlh'Οi<l�ns
�a	e	i�tad5dscop�e[�i0�yh
�'abefil�swdntaon
:'<s�'7�at's��siI�u��olindnes.5s^�c�daus��tl.l��nmns.Izet#er!�iy.5g��tes�sa��yst�aei��uum:''�s=or�ur
�'-abefil#�mp�swbcfslind
noD�das��terg"eNbnutt��'F)sliondnessl'cZ�k�Vd�raus�{tl*�lness'�eF)snsz+g
�a
�e	itKis+<ae	�i�d�sess*�lnessl'o�iayݷsoscop'�e'�y�'�ei4ors�}sa#�nmbnai�u�ea,�n�u�'[n�'a�eisr�tsC�zC�e	Ei�t4yabcdefimopr#�t�'eknstc¡h6Ao	�'ae.�fio
msut�'�a�eisR�tnv��enaleg	i�btioon�'J�asr�'i�sHyJ�a�csh'�'sboyst<ei
�oUsb�o+vni
dlaste<r�x	h'�Zbd�gl�rstui��o�y�ace�ns�'t�6i�'g�ahspp1�aio��ry�e�trt�'ae�ilsbiwllJ�iescn�t�'asl�i<l�#ngtC's�beH.aeio'�su�'nsd�'�ae&i�m�osd�er�'-sin-chie/�fmnrorat�ei@Bon�o�Nvcdste	id�mrsaJ�e	is�bturanbt�e�'ae	is�rt�e	iFodr�''�scei�'�d�sa	Gnlh'i<l�nss
�z
�a
�e	i-m�ensta`+g3�ut1�itoesrat�eGiaiur�'is�ya�e'�l�ton�'ae	isir:�eWPr�mstae	i�bl�''lsdeir�'�ms�wdnBtLv�eiofGo�ti>�ycZ;eTa
C'-ae<l�npsw��lrso%�oe"Hnli�twWt�r�slaceh'nssa�'ensseAyiealh'th�'snta
eili<l�0s�tcn1�oqst+�za�b�nt�eiFon�go
@vug�e��
�e	imt�'s�'
�i�sa�i�yr&iale	iTbt
�eiFo	n�ov�exi:'r�ao6sh'aeilorstub��cntqrstth'ei<l�nFosdr�sn�odiy��e�i'�s^[eon�'a<e	iQ�s"�w�b�'	iaOeitbtni�li#ov�ensment�'a<e	isl��is�'�einon�'a	�ste�Ri	�d<ln	�sirb�ileyh'ns>�i�dO�eln�rtls�a�eing�'<ldsiao�uuX�sa�bt�eIior'yeidnsc9t�e�i�yntriFol!nae	ihb�$taeiycienc9t	)e�i�yns�ae&is�ta�n��cmtxent�'a1e	isr�tiy�eZlnt�iyfaeid<l�n�r�sn�o
�svh'ei<ln�d�r�ms	Gno�tn�'@\a�esac|emUPb'Rnaite�i#Mo�ds�tent�'	a1e	isCRinrs�tuent�'Zrs=�teit>�u�d�rsnteiFoh'�d<lX�nsnoXn�'y.ae	isd�rnd�'Ra�e	iseiohsendsi�b�oveh'<l�nsz�esh'eiFo6ds>Jbn�$ov smise&i�'d�rs�orolllnstsio�ovei<l�nsri	)y�e<l@cerve�M�'aeY!ibt>Mileyi�odrs�'-a.�e��ipsliter?�a
tho�bade�'lQ�siy�ae�n�'acdefgijkOblmnoqrstuvw�yk�n�yraehilorutve�ne�io<lYn�r	�s-conv��eadinprstlRae>6i'mse	i�d�rstv�'e	is�daJe	ib
i�ltra%�it
eIi#octi;oWt��'isuov�@nali<l
�s�tf�znth'e	is�'egi�Um�os"�d�on�z�agsiovn�'a8�esiU�l<r�'%ei*hosie	Gnelos�ria�rtv�e1RiKousne�sLue�iA�au<dsi�ouvcmr�ut�eIisitanetd�'atefi�sn�t�c�tez�ste�i�'d<l�nrsbprsina�e�gisce�nfarse	idnc�t�e�i�ys�'��eGiaeiouy�hbmmmnsnae	is�btsaeUXiUPbt�eid'l�n�rscenK�dsi~�o�gl�mtlHaion�'ae�islh'i<ls�'blmnrsop*le	id#�ns�'isn9@ia��e	i�b�t�'�Ycsc�i�eitn!av�'�a�eiFo&�rsbn�ovi+l?�l�e�ila�eorЅtpm�'sdfsylow+e�vt/�'ssaeilorub�'1�bjlsu�lcdrsttison�'eisdxvr	nJ�serac'�lt�i��ye�i�'d�saemrs�b�enc	@e	ien�tae	ib-llEesKa6eiFonon�'aslh''lst�idgnrsaeint�'�esdn�rs�ctG i<lng<l�nura2�e	i!?btio.ane	ih'd�mrsmae	is
Bdcat�e�iKoaiug�t*rct�'�eis7zu(n�oven�cK�tWcrumaeisb�lntleHy�ein6_s�tnd#�e	isaeob��ter	1nreC'Esnta�e	istiob'ncstia�un:'iWss �m�t�ae�i�dN�rs�aJe	i:'�aeloranrsl�e	iG�mseir['�iyo'�sa�ts4l�'2,ist�e'�iseox�tmerat8�e�i�'lI�eaeut	)sulat�e�i	ogs\va"nt�einon�'asliKGlsmt'[s�'�ss�'ei�m,�p�wd�s	nonal�le�ioncteiyz;e7zi<l�Aucef�nh'a
osl<l�nUse:r	�.eouctura'�e	iy0b�line	is9tgnra'cl7nt�i<leIid'l�nscth'%eisuHm�ovax�e= i�''�e'�lsaeu�iti
�oh'��e�is�a�e:',aeioucdlmruxt+�aeiFosd�l	�n�bcnov�oun�'i�lss#Qt�eriKGl�a:'}y�enpvtiHhoae	iil�rtsseur�'s�xh�la�e	iti�ocv��bd
�oueirsRa�e	iFost�'#Me#Oosstador�'esatd�i	aceioptunguine�ioireoncte�'-hlsstric�wkBGinu�as<l
inipt�'�eUiscsdnqrssruat�e�iS�oti�vstu
�a�sh'�e&isuen�cti<l�n	�sali<ln7�st�iyva
e	int�cioo�svn�'iss	)m�teh'<lnsixvr2�rdg�npsera�eCRisbtl',ey=�e$yin=�e	i�mFosration
�ate	i1^osdnc9ta�e�i�ylmnr�'a�DeiTbtd�nat�e�iFom_e
��an�ct�'Ba<lst�'�eisanN>ueicitfic�i'�scr�ua�e	i�ctioon7|aHer�'�isaeirbnyt,�lu1\lctP|e�i�yh'i<lsnteo�plr*lnat
�ei	n�oNptuetn�c�t�einocvn�'aslh'i<lsstt�m�taiuin#�e!is�tct�eGiFosRac�e	ith'a�eiFosbijlliE�tbnovKiln�'@\a�is�eism�tb��elmstantia�lti�o�'aQ�st�r�tae	isnK&t'�c�tder�'s�''sH'aeimp��b�drs�'Οisng'l�sat>yeIiti�ovx�e	<'adeiorucgimt	�'-Rae	i,lKosbrea
�kd�eio�n�unRae	i'msdr�'��isina�n@Jtmnrsxnplotat�ein�o�vranreiGo�>ti	)y�eZlness�'�e�'�is�udt�'�ei<l
msn'Gomi'nt�'I�a�e	ist�'��e�i,lsuali<l0�sza�e	itio�ngnu�ij�oegun�ct�'a�lsl�'�lsen�c�taJe8�ij�o
Du�b9lnt�c�tpkir��ut�eisn�ojvaeiobcdfilprsvansd�'�i	�ss'[eoetpti~�o
dv�'fa�eiFos�uTb+ln�o�aicst�e�iosriy�l	�nti��nalct5iJuo��w�lndicWa3ja�toBtusiti�ov0�e�ni	)yae<l�n6?wn
h'i�s�fss�tth'�eisy(nvenJe	iBt+�rtem�pbtvut�eion�ove�lr�'isye'le��i1�ae	ilv�'lsae	ib>Miplersti�ya�el4Ni<l�eisTbnm�saeci�ye'oli?�y�e�onrd9@r*baeioulesce	idns�c
ftcnrs4xyt%eio�s	Gn��o+vZrUNaei�ot]en�'is8:c	Gnon�'a�esli<ls�t z
�e	im�tgste	idns�ctaeintz�tion�'�asizoh'd<lrsnon�'La�e	Eish'eisbnnil�Gea�e	iFosTbnceo�i�'�d�rscnvth'�eIisc	,ei*Vnialri<lc kl�ya�tu+�vte�id�lsls�ein�o�v8ah'be_�g	ikl
mnprster ped�ydeHd�i�'atbehi��oc:sa�tw�'dr�'is�y��eou2�s�e[9nar�e
h'-aegi<lm�nsTtubh	ao5xe�kab�h�mnwxPax�eg�tawtan��yd�r�styark�d�bd�en\rs#�ggs�-Usa�x��l�Q'asblmwarabB:rp�y%b\�a�k�'e	isdr�'a�eis'�yrgnt�eiQ�on�oveh'<lnseMys[ent�doado�sk�bnxcbinateiFoh'dWlsn�ovAn�w�y�'a�ism��u�'-aeiloprstuyo!�uc��yaeb�at
�ih'dln)�prsa��nhago�e'nic�ab�u*el��n�oEoa��ena�dr�ily?mei�odr�'[a<efE�h	in�ps{tyie��lo�bmit�hcn��e	iaoclpessL�o�ihaBhg!e	iFe?�ila�'st�eion�o
dv'r�'-faatbŨch!JilrwedRWioldKeeft
�eeia�fdght�'�a�e	isri��tuet�rt8�eins9habdef�agiklmnoprstuvy:'cq�kl�l*ho�'�Iblrs�iu9oei[yl�t�'ls<e^�i[en�')�aeE�gihlosul�wd�l�ralA�nrtlh'�i<lnsle�ora�'
ms�b�nva-nroy�'<e	i	)s�'dln�rsty?� i"jlgioni?(sponde"n�'tuanoBfcnVd}ae
og\nt:'C�lh�'�/ilaai2�n	�'ae��isw'�y)}gcre�w)�o{e�'}sa8Zos
�'bcefimrsuwyfxarea
�dborakZead�ilrt�'lsitlta�u�'�e	i-m}�swi�'.�fst'�i'�o'�sil�Eeaoke	)suw
orc�e"�lnsfe
mgh:':eeWia
:l�yota�lr^vcco�paell�'�il[llmn}tu
wla�'�rsandel'ae�'sdl'�rs%Tt@|v�'Fi�s�rt�'e�istGd�"e�Gt.osurae'�ltr�ei�osv2"z�xaHe�i
om�taC?l�'�e��mlsen�ct�lness�e�'c�l�quaeiouxcyl�'1�lsc��glstRaei<l�nosd�r�sn�otv
�ueh'�l�nsrat
ei#Mon�ovx�e�iponde�isdN�n#&dBeg\nx�aeinda%�u�b�nbdsorat�e_iKo�ei�br_ni�oveh'<l
ns�gptei<l�nsd�r�sbn�ovni+la�e�hiot�gFi�corphi@n_�aei�~l��0gs�x:':ecs
�a�eostero��iolrnns.dcaޙnRtae�u�lst,�t:'npebactDBeh��h'�b�ehimpstuy_�e�i�eg�lnn�ae!i�s�d{re�'ss'�eeiocteu�tioc�'
�aC�islo�Gg �cgl>�np�sor;|naphKeQCi'�yogi�y��c�e�soli'�sta�en�'issz1�e-m1�ealo
�ray
��e�i'�sns��oaeck:'^st�e	is�[t�'-aceilI[nsucekIuffeictive�nc4�irh'�[rssdlrsl��mnv8ugωe�e�Diymveienr��rnepervi�is	�'aeiosty-nrobl�e�g�'rs�imin?3og�l�mnnpe&�oa
�sa Ixwo�Jlaeiogg�re!i�'�d�rs�yd>�rsl,on��gn
�'�e	imstwyout�hew�ea
ief�o!�eled	c�tdglnprsth�'�aeu�idst2�tFahh'�e	ils4id�ehiotZ��S�'n'��tm)�behr��'a��rcstil�'l�m)�ops�wB?oe-	rel�'	�eil)�osn��g<�eŇiB?oh'a&�b�udeJilrsybKile�ydnr�san'�c�'-abcdefimoprstvw	aceijoprtttack'�Ee	isluaoi[
mck~�wlt�uspio�nnftlationg�ae6julligen
Bcu��mffen�rsi
Bvrodu6lcevolution'as@�re�}nrror�4ic&ygrtt�eGisgum�etac��kalolan?ca��os�tc!rhluya�en��rLgaoim
h'�ei�sckwi)}slrturLa_e&yrclAyiemonst�vrdfsxfo7rpiona=ngam��paeY�loctua0*lieTt
ir]�cnrgsturge�/nellige=lnri2[taein��r�'	�da�ns�nffen�rsi0vaeloru�nrt�'�is'�yt�iR�oin?s!todlpucti
vife7Prosb�anche�i'�d�r'�seofvo�Drolutionh'assAartat'�eR�ichi�ptuaZ^raR�d
�fgnnh'a�e	istkh'	isarNyE�tA�ii�ob9�nje7cehrnrs`oro{�rr��e5uadnsfe9ram2i��leigh�e�i'�st�'<e	Eise?5siy�ef/i�y�'f�msw�ii�d$=i�o�'wi)}d�'el�os?�C'HdrEs��ie>�i�'d�rs�ta�Ybg��istge�'�o�setO`teo�i�'w�bd�rswao9�r�'-e�h�i�glObn_�r&�s[�ymartA{id�o?rs�aiy[Be�'	Eicito�u�ne��a
tureiae	ilren!ti�yantc0�t�e
�e8�i�'dnrst�y�'astnt�'La�e	iTaosr�i�y	�'-a�e>�ilstY�u�b�gl>�le|�i�ty�'hҶeh'<l�n)s�e>6i�os�'-abce.�fgh	il�moprslpi�car�tsl�erd�i�'�ilsiy�n0afxei#o��ratcSHh6dlr[s��l�e>6isi
raY�ein]jdd�'eisd�y��c��nTfr?(aMeou0kyx�[n�ai'�yc�eh&�l�'eb3'�Ac�e	isawck�iair�n
:'e	Ei<l�n
opUs�dr�s�ueiu_yn)�a�e	iseWlYnsrsstW�m�a�d�i^?lo�rsuM�'/�s:'acei
�motuy���bcdfgimnpstvwyz�'-bgr7lswap*
peiyo'
Bd�r�e<ln�e�grassh'e:�ik
h'-fa�udeh��il8n>�psuuX�pdr�'jsa��cew�a
eiy�e>�n-mg�pdlic�k'�eo�iet
r�'J'e~Qisymp�wa�en�'��seorTps#�o�'�gg�bsgtT'aik
vebu�r�emps��e	i�'J�eY!i�osewabdefikl��mn��sh�eoorubor��a�'-dA�lsf�lb�i��icoano�ul�tfK�l��taHc�'�fceip�tsyd�rs�e<ll�nTsei�wg)i��y�'�eps�"eiyen
h'rs
th'hooSHth�Lsh'-|e>6iwland<e	iorthi'�yX�ne	i�'drs�'�e	isae>�it�'s:Ttdnrsh'%e	Ei<l�n)s�'dfls3�ai��o$�usxhh'e�2isw	)yd�r[ypa
dc'a�'fossish�'[Be	Eil�na:'ss8�ei	)y�5e<ll�n�'acdeimnopstuvwkmsth'�e~Qisy�'-e~Qiswycracke�rdxvre	i�'drs�a�ei��ounovn�'iss�m�te�ih'<l�n�sre�'lsiy�n0h}yei�oun�ct�zial�'�eisn�s�bt�'a�e	iFoswb>Mi�lorthiyhnJgl
:'dkr�lpWs�'Bas�'sBZih'Feisy��e<l��ngh�Utaeit]n�e�iori	)yahe�uh')seulaltei�d�sno�gn'�s�sateiF)dnsZ�nonl'F)slatei
Gdon
F'Gsl}nsex'�s�o!e	it�ucst�jwend�tr�oh'ei�w�yPd	�'�efu�ihlsvalle
Bnie[wa�eioc6neous:'KGln�'Bi�osntzfeldt-jako/�ba#�iss�'e	i�msdl�'s�w
bc*ekmnopst�'bes�paeu�i�Nl��hk�'e	isdt�'Zwe	isWeei�ps�'a�dsw:',�nna�gol�'i<lss�tz0|a
�e	i?t0|a�e	i
�glog�+i�y�o��gkol
eiy��en!�i)�lllo:''�seple�i�'d�rsw:pac�e�ipstw	h'bϖel�i<l�nsyre�a-ccross<{e	iros��sc
iob5�a�eeitria�ocq�'aisli<lsz	ei�mn�ge>6i?uacefikmnopqstuwyz�kth'eisydIr�eZln:'iWsaU'6n}ehko�ueth'e�Qis�yd{r�'e$�f	isdr�ot�i�yO�d2�st'e!is2r6�s[xe'�rwell�'i��aeik:?uy�'s�y�e�nKYi�'is0�mkeTn�'e	ins�wdZr�s�e<l�n�Ue�'lpsa��ne	iuemtbouch�'<e	is�t��bise'r�'-abcew�fh>�i<lm�noprtw
abcdefghlpqrsssembX�leorS�re0�ded	ishouecZVk9�lmnrupi
�lnte�xcaminat1�eR�ireS�ln7rg�tlN8rtt3nu's"tr��ex:yamin	a
�e	iertilisz	a	arav�iaitr	�sc�Gha	eink�@a�e�i'�s�lor�i�ls>�tomJ`ouestioZ�neferesn+�cection�as�b%�raH�eorr�':Trs.nw�'�msesdedh'�isshu�Tert�rh'ss�td�rAnsatc�qhؗapvteryHga%;ior[�t7iodul�coad�'	)saorEZl'~w�eaiY�o��lymn+schh�'e�ldst�'m�isye�rn�cpt�'%eisy�*e	GnonC's�'bd�ef	ilnsa�Keikr�'-
{ef	ispleaX�sund
�ei�sourc1�e�iӬeoo[bt�ye�'�er]is nes�tM{die�nrtw
o_'M�scdefilmn�3p�rstxzia8:bf9ltP�eio	pyfa|ex�'�ei1�ormC'�s�'deis%e�iyh'<l�nrhust]e�i�y�l�tel�n	�st�rs�te	iyd�rs�t�iy�'-fretZ*esssykss�Xh�e	iSHlbmp�'�e�ilsy
eiyhren�e�giyhre�dn�eN�lchh'el�iydrsa�eh#�otde	i�'d�rs:'h'�a*e�ipros�o�'a�eisyclea�n��e<ll�nc��h�'he:'aX%dh'-b�iopsbab �iT�yabB�iB�ybgnpsP�tiologi'�yJcselU�nobulicLa�sreserv�a1�etu7-arg�
et�'a%�iosnalysti�ti(�c
bcglmnrsz&�ioruccLa�oysta�Xlrren�ca
�er�ma�mphFei�y+mceogiyc�s7|aer"jiymyo'�schiEdpyoriA[dste�mo?�iK�otal�'5>-lsions
Btz�eHsa	e	iNb
�ta	,e	iNb
�tgraph#e
�i�ycm
Bhbilblpe's�yaeoMp
�s�YtMu&�v�>yMunk	_'ehsnosrnso�ipho/�rip
,hul&�hMl:'.bcdefilmnprstv�0z�'abeiosU'l(;nl?i%e	Eiy-hho}�lo}�l�'drs�'sscn�st
�a�l�s�'Las[uidLa�shki*uul�aol�od�'�e	i�rs�'dgsl
eiy�en�egel�'	�e��ils<�e��i�'d	isf�'�e	ilsy6inrs�Lain 
a�e-bc�Zilmoptvde-��se\�urt�sa��iJ'e	ios[ydtnr'�tdx�e�Vitt8eaFr�'(�b�s�'isu^g6_svaTb�rtRa�eUiFor�a8�e	ieri;d
i[s�th'b~�imq�suerr�e	ilsa�nom
Rei�oaY'neirhbng�s�suaxtlaio�ut
�ei	nyo�vnim�Ebj�aden��terp*difor
�maim��ulninuggh'�eOh<ln	�s
�'��bl{ceDZf�Mhioprsurtq�id�'isnttou
�sla�'�e	Eisa�eu�i�'�s
�io-unic3 kl!a�e�'abdefilmrstvbc�rt�1iN�la�i�yo:'�eio!n�o�vr�'&�iship�'�e�isi�?t-d�'<e	i lsh'd�rstt)�aHe�i(ea)�enot
Du�'el�'su�is�e<l�ng[ih'eisyd�r�wc�en�au�e?�gc?Guudgeo�naeiymnwu-BlY'�t~�on�cth'<l�nsce�lulaN>urd�rs�'c	iom�beio�'�dsnveh'<l�nsr�'%eisy<ln�e�g	:'a�ei<l�nsil�n�e	i�ms��l�n�se)i)y[
yaeiycteous�l�dn�'��b
ods�elA�ninear�"i'lchkpst �uiٺmy�eon�'�e	is'�y��-�'?�a<eisdh'BaSJoss�'e	id�rs<lnemsY�aMeodmi�yaeln�'Q�s�'-aFehisbmui�l }ariy�e<lno��usza+3e	ib
�t
ila2�e	i�b
�t
�'-a�Zbeilost�u/
was doptnd-pa?�sf�u�f�4rhro�an"�w�e<l�nrsByl�ityc�en�l
�uisz�"aFe�"aaess�'�e.�f�tr�t��f"uc>eFehilr[!on�ge�'b.�f�o��eI[i
�as
�t�_'m
�otb_�rabck�dglmnprstn�'aio�sm�tcic}dabg�#p�s�tcry%�lacteria'�l�eeGhiorC3lr

abcenpstwt��tull[�iy
�iahṛuf�_s�eondria�ciO�om�ei�nspio�>naet
�u�e	itici(s1a7s
�eh�Vo�uob�ei'�a�ceo~hlpqtuc�xu!Draf|c#�a\h"$yuattKe	Eiaf|l��reh|Pr[%e��raorfr'�sz�ir�lrg�ga�iHr��alaeiodm�sae��i��a�e�'d�rswa0�y,�cf�n�s.zahim6~nptdd�xiexan'�eBod�'Bas(�eaelK�sedi>acx�ad�sc�ieg'�ihr2Cyn�e�uindFeri��cbaei�lU"ld�Zieiotwulfc�'�a#isnshitQahre'�lr�'%e	Eip�sy6u
kei&=u�aB�o%�ai�ultT'l?�it�'eios��c0ict�ig�gmraphT�yoclmpsthermisƽto�mogi�yc�e�salZlegalovfOihlotogimasm�'
�i�sqikeletLa�oo!�xaer�'eisvit��cns{a`�m{t�hcrhU'oWsslovakia�'��n�n;t
'-abcdefhijlmnoprstuvwyz�aei��o;s�rzetzzo�_'u�y�rsttaing�_'ajrvoir�e��tdx�a_'bcdefghi��jklmnprstuvwyzC'bse	iUldrs�'Esc[behrtaY'as�'sQuhh �oyl�'2=is�'ad[eos:'ismt
�'h'W�iss�iy�'-long-leg�'hesdmalauon�'iscLzftioy�edn��d�e<l�n	�'��ego)suwO�eiUyenUrsUtesGlshesserre:'oty?poaoloY'�i�mlmnqrsi	)y�eGnslti��r	)y�5e<l�nui�ar�iy�'[7ilm�wa%na�emi�n�'�e�iy�'-cutL�tMaotaU'}nWsa:beg@ ilmn�Utw[yWi�'s��tty]me:t�ai	py1�a*eng�tatia
U'n�'se�talli}�n
�'a)�eimnopsgse&i�'Rad�r	)sc�kb�u;ae;o�nt�t�einm�th'ae&is�b�td�re�r�sctn"�lh'ei<l�nsdn�r�sg*ene�ol�'fs.�i�l�'abcdegi�Lkn=ostuvz�'}e��uKGreih'-�adA�lrs��o�'csiszngC'E�lUsei lr�yBln��rong�s�5ef�l)i	pyuf-f:'l�s�Bae�i��lsssdr�'%ef	EiGosi��e*�aeslo'C3ls:'�3oh�'heeityvir@k'}e�e7�e;obtQeii"�l�1iaa��hpeN�lr�e�lna��b8cdefgijklnprtu
,vw�yane�-l�'d�l}n�rsevil�'S$rsWai4ueVla,�e�o�)vn�o�u:'gC'<lnUseeliq�n	h'�aeiln_�rsdnr�sie	n\rsFeV�iye�s'�t}a��eing�'nst�!oh'eu�i�lsd*�l�re�r�s��ae;i�Bo*�yltQn:'tQl	�'��be��fRh	imsoou7�r��t�gssa��l4eino'i�as��mt
�shth'��b*ei�ak�nardh'��lss_'aeiHosDu
'bcfgmstval[u	=sAaom[m'�shira�matioqn!�ey)}peilarl�'bdl�rsooBk'l�nRoe?in
dv�ueTbgmnphetr8ter�'��-�<bAc<l��sI[it�e�ilsjhaeitQy�'np
tort�'sdes�t�'s��o�s:'�od�ek�_nsUliMCn��o�'-abcdlm��pstwb
ltoyo-!�dn�i3�eor7ao�ke7�aareh'sreal�mei�os��fght�'%e	Ei	)saaa
�iciJ�k3|liormn:'aorkTaee	izh'�dslle�i	�2z'de/�islm�w���s_'MbmvMgo	_'Z*e�i�o
�rst_'�'as-abcdefghijklmnopqrstuvwxbeiris�emsphasisz'+3e	i+3e	icalat
�e��icn	e	idustri��a
cdflnrstAdvotn�'e	Eis�d�siNv
h'-behl
np
w%eY�h�teo6Rlnr�s�yeisd�rng�''lead�'Z*e�isi�oy�e[*gne	Ei�'�ds�sanh'�[nss-e�l�nand-dumbnr�s�e�]is
h'�(-e.�filfzmstr�'&�sg>�nn�e�iK
mocatfaC�ei#Mo	Gnw
o	�'}a�de	EinQ�sY'�d�r:'ta}e
h'bei<l�nst?�yox�rrs:�t�en�g�hsign%e	Ei�sht	�'-blrstwdkortwe7an��ebrss-g5(la��ot�toėrb�lairtryac5hsheme&leiys�s�e+ka �tra]jpatc7ihribJ`u�'abeior
mstucrstuleC'�s
k'm1�rse	id�m�rsRaveY!ichh'e	i
Bd�ers'�i�y�itQy��n�al	�titPa�i�ynruai�ra:'6hVcinl�YlLctQaeiޙtde�se'�d�mf1eVfis�'Fosgnstgs��e	i[�k8sSs'a�ei)sn�iteC'Es:'acehiklnorasu	dfglmnptEoye�'nscet-e�i	)yh'fsessin
�a�'cosifi>�y7Pce'�d'�r'�sg#�ue=�ptP�rti!�o�thMul�e�oa:'}nadilmnprse	i�'	)ds��etv�'ffse�ie��rbq�eta�cnttaiax�l<lra�nlti�o�vtifi5yc<{eatio>nlorinatC�ei	Gn	oIlbdglmnpsae	iu;�d2rs�uoramm�e)�iaelRt�'i�ls
�sza
�e	iti30o�ttaherRa�e	iwmsio
Lvn�'-J�a%e	Eisma"k�'cehi@lshai<�rdrb3'sao3�nءung'�saeidWimnrs5waae	iTbntio�o�Nvr'sysei'�dHefi	py�c�enBsnvaleitO(iton�sit�iyo�yeMt	cdlmnruyt�e�iuy.ae	ilo�aeit.ae�smatC�ei	Gn1oni0�s��zmpissio1n��aeiornsat�eila+3e	ihby�tsa	,eib>Miln�tess��eUigstvesta6Rntruct
�ei�snovn�'iss�mitarmina7nRtol1�l�soluC�vtionLah'a�or�stDut�eiFoY#n�oveeGlicat
�e�ipal�ag2�eing�'�s�'e	isdHreiyaempsts
e�i�'d	isent'Ba�e	isitu�dce�n�a�u|eminCRipt<eis	n�obsiyttomiu�s��deiukgicat�eIiKocm�e�#it�eisbn�o�v>Mi
dl
b3'�djmnprsar�y�e	is'X�th'-e�i<l�nsdflrsisco�ure:ioeze	i�wz)Hao�oea:tnr�s�em�is�'�eE�ghso��u��ktalk��e�Xicalat�ei�n��oaceGUfilor�LtuycelmR�tue	id'm�rscatUecat�e�iKoae	it�i	oll�tonacmnrst�aib!Bi��l�'eis�d�rn�sPat�'�eiFosn�oveh'<l�nsiniCsCzcdeseZ�il'nd�l-m�s�ae	isstrat
�ei	no2nei�'�d�l�sn�b	�nveh'<l=�ne�mrsvn�c9Jta�e	i�b�lesce'�d�n�abc>Qelnrillat1�eTi��oie�tn�c1�t\�e	ilaeint�ei�gove<l	�n�saeo�cgtfam�einon�'	ascs�xtUNa�eGiFost�hc7Prr�wcJ\uc�eglrus<{e	iu s�6gsia�n
Utemst�a�e	isa�e8�is�b�gtaioguyR�gm'�sent�aTae�iE3a�e	is�ek{c�sn sc',t>6iaelrs�Cu:'hes�eineraetcte'�ih'd�l	�ns�!syceroli:zaednae&i!?bti�ov
Bd�rsulat'�eia	@e7�sPsuymaini�Ls��zdifi	pyc*eatio�ndr
Saocgholes��tena8�t
c�d�fgmnorst+�ei!�td�nhntWto�osttall'�s�xa��e�i'�serleaC�vniPszy.a	e	i_�d-mt�'iscLa�i�y�aec2�steUis;�dals�bte�r:'abefgHYhiN�lmoptuUvcmnwyrn�o+u��e8etoare�'C�a<sh'e	isdr�r 
ecg;oHstvxtab�t�ileyn�sa�bt8�e�ifae�idrsiou�seragy�eit�'sw
�aqa�'abcglmnqrsauv�'�nerQsate
<i#od<l�n)saijt�cte<l�ns�{sous:'<l�nhth'cgef	isu;�la �hintaZBt�a��e	is�eqt��uZ*e�iuesce	id�ns�ai�o�usa%veraeJisy7�bnSs'�ma4eor:'�vn�0ir�s�ubma�e�ihoi:'�cne9@i�ur�t)�a�1od?gns+xJe&i\�gi�o�vaeiopuygn�rstvnoeitisz�ae	idNrsae	i�b
�td'�rsfiyce�d?r�s	Eigiu�ycalWle	Ei�'�d�rsdh'�e&issifi>�y7PcZ;eeri��ageanr�stn�e	ios.5ru��rt�e�iTKgiIUot�'%e	Eiosr*�is	e>�r	-gjlmnstgmhloudn|�o��eadmi�n�Ga?enda!nod�'
idso�hit�laonda_ei0ne}gralisz
�a
�ace	i	stfi�'dmsxiquaL�vua��l�'��e	isasY�t�s�'bcd�egilnrstu1�bisrai�ct�'i�sc
�s
�z
�a2�tseuN�lraphFei�yc�e6�sh',Ra	)s!ni��sBt�'eios�s�ntac2"szc�asK�a�ay�eilraogi�yJcestrabtil��l	�ey�e�iFoagli$msz
�a	,e	ia
n
ct0ehenU;eW�i�ei�cn�ovatei�dss!n�ont�a<e	iss��elrct�eiplexte	Eih'ers<l�nsr�sae	iNb�ln�td�rsttifi	pyc�e
�aholog^�i�'abdeghimnopstusv�y:'lZrt<iiuonali�Lsz{a2�e	i�|righ'shir�#eriot�eKichronologAyiyb:'�o:'�u��aa*egl�mstzb�liVlliK�trat�e1Ritoiqp*utT'etT'ri�fe�na�n*.r<eitQy	GntQsmrtuinat�eiFon�omaliC�sC�zam�ei�btiI�o
vn��oen�m�cat�s��eit�io�ymet#er�iy�'a�eisu��l�rcf�lns�t�l��uDur�'D�egt�'trscdmnlea,�r�a	,e	ie��rciat
�ei	n�ovdnxor�ai$ms�7z:'K�tyribonucl!�e	aeilo}prtu�ir��sts�e	imsuent�'asl��i<lnrdaen�isb�nni�ldnct-e�i�y�'<ls	sonazli
�sz
�ae	iEdsliu�zcglt�e�isment�a�eat'�oa
'eo�nryaJe&ib�l�a�e	i�msl@nprs�tai�rti,�cuNlt@ae	i'msd�e?r	,einth'a�eixtos)�rnon�'J�a%e	Eisaeiov�aei�drsn�n�tcdsait�ei	o�n�oa�bt�eito(n�ovatior'�s'�ys�a�eiFou�b�n�o�vriz8�a�e�i^vgrammss��e	i[.h�'lses�srtat1�eiKo�o�v@a�ei�y�en+�s zueue	Ei�d�i�s	abeimorvwcinina��tlk
eCRil�mseu�r{g�iy
�'k�sfgtklerence	i�d?rsulat�eig�on
�oict�'�is$ cdsv	,e&ii	oUPb�ouva�e	iTbt�ei�ove�'�l	�nsae�ioF'bltry�aioti�d�sgO�lmpfslyp?h�eyoegshyy�ts*htRtgat�e
,ior
�iyi[ycPden���kreC'Esagll��u{�r.�ieo�n�'acdeikmopstuyltitnait�e�iza�e�it��iuratC�ei	Gn0�oaerlnrei
�d�r�st�'�Xe}Ais��tndr�t�ae	isd�nrai	pymbPlb�epRae	iti��o�ovei<l�n�ssm�tem�oceglnrZ7xratJeUide'�d�rreNgect�eisn0(osi�nttv�'eisfn�oicati�oei;�d�rsng�l,n�scdgrVXsca6Rnt�eiFon�overata|�e
Dun�'ae�Qis�bt�ei#onI�ov�d�rae	iFobilli�attey�nsh'dtQe�rs�'istlZ%l��oolrateid<l�nrs4n�o�paeioritrh'J�e�isra�dte�ic<s+tB�ailntle	i'ms�idenc9t
�e�i�y�'is
�c�seaS�deirt�'spoonfssuBlcatsje8�iaiorbi4lgntmatizatki@aei�ydss�e�nut	�e�ic>�kouy�ae	iscth'�eiT:os�bn�ouvelptXutoriy<l	�nerhl*enchroni=sze	id?rsaehiortucihae	i�m!?b�d�rs�lne	i'msd
fe�rcnrsta�eiFosbKipln�o�vt�ei
'e�gimrs�r
#oein_tnaeib�c�nt>Mi�Mlei�lns�o�Tv;�d�rsns-m�te	idn�c��tta�e	isb�t�i�lro{nn�un��uxa�bt�eIiFoh'ei�d�s�f!n
'a&�eioct�eiFosbmtal<bient�',�as�u�oiing�enfa
�e	icte	Ei�'!dseosra.iono�pn'o'�s��mX.nc[haei`Rko'�slns^uag!Yatat�eiFo�n�ovilrt�nopLae	imsen�t�b	:'a�cl}n�ostnNt�<c��t	�'	�ei<�l'm�rs��t	�ni�s�DeCRia,�lilntu+�cd�u v�'ipk�s��aorV�tei�d�esnon�'as[�rt�e<l�n�'ah�bcd�ehils��yr=yb3'�sl(ab�ruޗr�e��n�ot�aetd�sr�ierr:'�i�oaol�iZl�susZlness['Fe
eabiosuAbI"krum�alag!Yi�'�sr�i�at�w
�s�'r:'abcdefghjklmnoprstuvwxh�yzbcdegklmnprstz]�aeot�e
ilics�am'�thorron!Dei'�ycsLa�n*nitic�'�ase�mres�eiB�shnoril-�eoms��e�a�eitn�sic'
�aC�i?�snalh'i<lsszaC�e	Ei�baC�e	Ei�bam�'msa1e	ihbticalxi<l �i	�'eilosycsdt�'
�ai�osc�'
�a	)s��n�Ee	igy�i
dusAdze+�idsae>iognn!�etEe^Li��tFe9�rnd�'�Zb<e	is6a6en:'}atQeaehsu�s.�drJ'Z*e�i�sarDnagm�'pas;ir�yheo_aea!�i'lsptora'�e�i:'<s*oaol-e
�ihorers�m[ei"�mrnLiepaGm`Tablo	)sle	i�'dHrseѴyr0aaehiko.�rtpri�!od
�nrsyloror"�itomio�y�e
�s
�zu�s<4o�eA�n�'ek�hisy�dnr�ys�'ia�nZ*e�is�o�en�g�Us�o�'bi��rt'�syledo:nai
Du'ptho��n
e�ior�'i&�s�aon�'1^as
adegnor�syctic
�aiss'�mlue	iy�'d�rssqu�ahmroQteridooss�'�'heik
,s�Bm
C'-dfgzyhlmprst֐chardefnbaI[kenbac3he6ofs�tect
r:'4e;pesCeisC'el�'-Z*e�iselectri5`c	�''�aehirs[zd�rU�tBycntiyaia{ni��cf
eir�su�dre	isdn�rcti<l�na�b'�e�lN�tcdenult�i<l�y�e-hell4�mact�eUios%gmseid<l�n�rs�bn�$ov
BeM�ih'aeghin�}ors
mrsa��tth'�a�eis�bfn�ov�se�l�nsFein�gto�ncmpt9
a�oa�'aisl!ti<l	�ss�Lz�'
�a+3e	i$msz{a	,e	ii
?ft1^a�i�yae�m�psseid�rsn�ov�eedra5`lk�o��se!it�'�d�rs�aabdeilouptidat1�e�+iae
,io5Sn�t@�ds�rer�t2omt�mtant�eish-m'gtenrc>th%�i�'j�aio�ossyheng�Aes�hh'-ddal��lall��i��ygparit%�hhfIo"ete�id'l	�nrs
-aC�bei<lm�nopswwit|�tggio�:�'�'nrstsion�'a<e	ihlsl�i�l'cyosay�phyl'glyoxijmntiush�a�er]i^eti�oveh'�l	�ns�iq�r�yLa�e�DirphiBjoc%�sl8�ew�iyit�'st�e�'aeg	iknos�7t:'�h'�rd�rs
tC'-[!b�e�hUi�lossuy
d�'�es7is#�eiu	)y�5eUme	idr�'Z*e�istwICia�r:'fslageOlaFuc�dgnprxels${a�ee�t;.e:'�e\nys�i�uh�etanU"t:')Qaai~�l�d
fn	J'ehl8:opst�dthe>�ori*hoa�t�''�lseow�xd3�im�poyca�'�c<est�'�aHeisc�s
�as�Ceiy�er_no]�tmssania�'�c�s�re�oy�c	ae	=gi)�knrtQccf<lnr�st	�xei<l�nors�xnovn�'-alsfiS7nli�l�sehs�e�ir�'
ad~is�y'&�hei �s�cx�'FehoQ�w
�ucg,h��i
danbanq�d�'bi�s	pya"(l`�e<l�n^='abcdefghijklmnopqrstuybdfglmnprsv�il�ue	id'm�rsvantage	i�'Idos�ufeioct�&eUislRHrNirest
�a�ei�sgrregat
�ei	n	oeead	i�msbley�n�slowbiguateids	nonF'�speorar1�a�e	isint#�e�i�msobva��tE3a	,e�imrta�e�is'ma�n�yiculateidsteombl2�e	iy,8cFe'row
a��e	isaeounr��d'm1�rslnie-f�ve`Rf�udrR�d'�sV�dsa�Pe	i
�l�'aehilAmorsurN�d*nrn�ei'msb�ni�llHexiarge	ih'Lad�rspl
�uei�'�dQ�s'�cna'�e�g	irC�iyaoimfae	iss	,e	iu
�'�egilmnrstuvraphKe�i�yQFdnorua	�e	�i�stio Fnr+aei�sd�'�n�sng�sbfmpobulatei
�dss�no0�niot�e	is>�urt�'�e&i,lsod�einyoZtos�e	i*�ucnsterK�tecte�is�d�rolat9e�ieint�'e	i
msnua�e8�i,$o#�nBtdp�''Pa�e!isorat�eh?�e�q
Bunrth'%�ae	isdn�r>aastge�id�mrs�e	ieo�sus<l�neraeJis�yJ�beid�eptith'B�a�e	isan�c�teiLominahbntkqt�eiKo(n�ovrssiv=�e�'�esa	le�i�b�nain�'�e�f	isacmnqsF�so��nbpaor
krassdwi	py�e'mkeower�e�iK
m'�scfgthuant�en�i'msmr�branchi{sa(gangle	id'm�rsuilibr(Witaeblish�e	iment�'se	�maei/arvo�5rur�'�$e	�i�satu!rgu(rorurge	idmrs#eauce	i�'dffrsnkStisse	i�'�d�rsth'ef�is�u�'ace��ioprtw�ybri��lmoni�yHce&�on	ladsvrteK�nel	�e	�i<�l
msneost�i<l�yru�'a	�e	�i�sbl�e�yr�'at:e	�i�sbl�e�yHha�aow�ea=nrst��hiPelnlusionh'�e	i'mscfghtvelontiO`vin�a�e	irporate�i�delocst�a�eUist�a�iation�'�asrmatio#�nen'uerita�e	isegrrat�e!XiKoem1�rssst�'e	isdedG�nJ^ieionst�tty.aLi'mCtltʯuouin�e'�ste	i'l�ns�dnctiUs:puyo�Nv�'es-Dtioke	ih'�ads�cdyge	idwmsal<l�taeiolny<lness['tle	idG�msh'�e&ismbe=�rss
a>Qein�vu	�ney�'lantQdbdr'weld>y'Nii gi&{udgier�'e	i�Klso5da�nnentPa�e	isaeilorursta�ig7t,	e�isionh'at�{clnr1�lssae	iTb�rt�ei�osaei-l7-n�dm�rseJ�n�bn�ove'l�nrit#�en�isae�cy'Ra�e	isase	i>�u6dsVXrsaeisb�l�i
dln�gtess�eUiaeoiN�sad�iHsopv�fortion�'a<e	is6ltei�d<l�s	GnSoKa�e	i�rtale	i�b�ntio�nus<lX�nuailifi	py*c�eest�'�e&i�lsurd�iaeoueLtl7�ig`�lpsardh'�e��f	isauXit��aepect�'�ef	is�ube	isdspt�eiT:osn�ov�eaeioutisfa)i	py�c}�csdmnrr�vbilae	in�NcNnBseTt*tv��idm�npenrc�tiulair�i�l�st�+u��late
,iclnia�bt�ein�o�vu<vTbte�i<l�n�sa�QnaGd�\saeioru�4f9lns?c;�tte�'fsu�lmnpe�7rds�3tiy0b${olnlsa��e	iss�bt�ei�ojvcgt�eri<l�nuishla�e	irt�aa3e�isaei�ouciutfacgeisUPb(n�ontUNa'�tg�hssh'�e��f�ib�cuta�eio�b�rnovn�'�asexi<lnsr�'shiZpsth'�ef	isu�lrb1�ae�islnsp&�hi�ot�e˪i�y8�e�illab
�i�lchrWstzh�'	le	ierh'e	isd
fransiti)}v�i�o�yh'�eren,Bs9Vt��aaeiou)v�x�'gl�nrsR8aUe�iica!tC'-
odmrsbom"bal,s�'gste	id�Qnseifo�ti	py�c	len�'	as�eiscmnE�sulai�o�u'�rtMyientot�eimsnten	)tdnsRae	ih'dmn�rsae?g8�it�ito�'d<l�r�siFo�b�ouvr�tce	i��'d
fe�ms�elg�xae	id�nsal�i:'i�oe:'clr�aand�'<sz+�iy&i2z'aei/�ska�rllabah'!h�sbou3CtMaG�lMrc�di�z;atrQiaeis_'s�epropetroC�ve�psI[tsec�'h'-abcdefghiX%jlmnoprstuvwxyzgioooL�dt-yourses�lr-=\dTbbersZ*ein^='sgsrman�'�nss'�a�o�o
�'�eikostu'�xl9eri	�'�@aeilsw[�yd/�r�tngHsa�'nid�eor�^km�oorr�'a�e	i�Bosl�tina�egi�ldmsra"�ment�'a�e	islrBti�y
a�e
�soZ^adego�se
lrh'�e	isycahnedr�Sa�o��ee�isy
'd<�m�rss
jo�'I"ms�'�rsjk'�ntf'-cdefg�h0ilmn�ostw!ys-taBibcelp"Usti@�oscu�ilout\rcll#aa<n:r�teg:gad�d7�a\iioi�oa"r�[t�o�'as^|riog.�sh�Mt�ougheioydr�tE3eenTsF'rAnsne�isr��s�'-8pe|�iZ�ga�'sticsLz
�aM�sHe�i-m�tapp'�s��e�ibh!�kltod[�iy'�i�iaoeBd�e��afoorothŪoaf�ot/c�'7�a�l>�n	8bde	ilmop�tru0m�'dF�f?�rs	�'Fa�eϰhiosyen:'ds!p�'	i
a�emruit-e!�i�'�e'or�'�shin�'asri'�ahu
'jaei�'dsH�tdt��aich'a�is
�lRtcn�til8�ei	anaegi�ontrc8gt�e
,iT:oriB�c	)xer�e�
is7�o��ucoq:'atkU'nU'�s�Rn
'acegikno�susstH'x'�hl�std�'�Useid��lsn�o�vaste��rh�gC�td�'\�a�e	i
dlsze��tey�'-ms:'aeiytT'Hs:'dl}rl:'��yRen�}stT'brooCk�rv��ahtdhlmn�pral�dihe	iyh'kUbd�rs-sq��uick��eK�a8eitt�l	�'-a�eisw'�yla�wdd��geZliCn�r7sa�%d`�tSHyatc�hesb�uu�'-�-b%eh	Eijkmnps"�w[�yto-Y�dan�,damBbenepFeo�bc�ka�e�n�tai�lYBlo?ste�op�'c�psaeip�'9pmns�t�'d�rsy�en�e	)gesllga�nge'}rn�gacl�eikmo��rst�y�'�od�ah9�e�a�c�etQs�th'l�isy�'aFeiosn�c',t+c�tu7sthetQytauaeio�ulFe<lUs7�t}yflexZ;eR�ilvate�ren;Qt�hmu	_'�a8�eshist.mn-eh�iho"HudBrssou@soeyvs��kevsk�'-a�ceh�istbcoo��momg�m'�s�rrgmr4ao��neiyd8r�eZl`nabcgrGsl}ylte	iouy	C'-dh�n�rst	bcdeghjpsalrrre�l%iea�shlrec:k݇ios5se�naL�cadS�nlaa�eppUyoi�na<
r�ki��ae�ta�'pe[�a�'��ah
osiY�n�'�aeff�ilseIs?htT'hl	�'_#bel�instyrKGt�jul�iyaso'-tQshof�m�e<l�n}oei�'c�i�rltQrstot�essaa�isEh:'lyaden�rUsiye<l�nrst<�lr�'�eisng�'-bcdefgh�ilmprstvw
myatnd�c-o-eai�r�teausHe>�trt�v'�s"$tra[%i"fug7-hd�r��yai	oll�''~ese�lraN�deiNoart1mellh'حe)s�CaiognhT\tk%e	Eisadh'Kae	isd�ra5orkdeil*�o{�payain��t+ggvh
Bt:'achilpt��wm��pal,�e	iift
Z*ei�s
ddz�eY!iTSo��oar�gi=nt0r�e|�o�ioruw�hn�sek�or�noLtae�irTsd�lnsll~�ioylo�gcy�Xce#�ln�'�nseiyh'dn�rsh's��tpAeK�l�en_'h�iast��iaeiouybcfgikmnp67stuvw�yh'l�b<l�nsshouma�''�es
U'nia'�c
mn �lt�'eissyd�e�r�eWln[e
:gmwa'en
h'shi_p��o�'gf�l*7nosy.a�ei�y�e4nn�o�'
�e�fs�tn�')�abei��ps��ong-bo��ae�'nssbe_�r�'abs�'mst'iiucܠs�,z �a(sr�g1duk}oe	ih'dxvrsst�e	ightbipsyoak�r�e�lnes�sroo>�fmpwa�en'shi�per	so��mi;�dJ'fabcdei�l�nsa�Sr�c�r2�a2�oo
w�e�rng�'-sro�6ot��r
acdginswxydmrh'�ef	ilcnsul<l�nUsoc0k�'-beilstwywor�El�to�e<ln�e�gae;&in�Asi�mor'�kw�l��iyk]Ci'�y��g�'g	)siHy_XeI[s��cds�eh'�pa*eimy�e�na��ko'��efus:'�s	beflnpsvzb*7llle	i'�yd�rAnsth'e>6i��ns
wl�y�'eo�i�Umskh'-aFe��isd�Yr7�b�'-psg�d�eiy�eVhnt�aei	'-lIn�rst"�winh'D�e	�i��lsha��fra�Rnzl8�eiy�e4n?�gk�ilmnopstuvwle�nUsyr�s�i�y^Laeo1\d'�i'�sb�eg&io[e'�slph'1e	ish'�eisy�e?�n	�'-bk*7l��opsdfh	ik��oste�eo�wo��r��ei�c��hes[
to�x�UiLaeinw�g�ei�y&�c�deHdUso�sphilatninghoj�lig�ie	ih'd�rsnsJ�eisna�g
e~Qiy	bdgimn�pKGrtфbsge&i�'drs'�i�y�'-gsfrreel3�aei�yd'�tensh'�r�ms�tt��od'iscs��am'�ss�'bd��hjlm�nsea�;tuf�fe	ioH�nk�'Y�ae'lsnr�she]rh'-ma?�dFei<l�noswc��eleaY�nm�n��spithe��cDcdt`Ru��oallh'%e	Eis
�aclthug[b�'r�'�s�pabcdefghiklmnoprstvxl#�nr-i�lsp"Bus�t-mtKiC�ih'HYabc\hilrsu��ei�on�'�g�s$ e�e�oo�iovni�kq;uahktl�ta
ke�i�ymRp�'-b�ei��lpsw?�yb;�ifxioarhd�5eCTnio0nax�elt�k�'<eihlswlnerioEZr�'eg�iObls�'sds�e�'lns�lt�'D�eils��n�sHaD�ei��n�s�e�nf�'e	is�ydl�r�-?ossbeuq�rn�Mbe�'_�dscklauwyeiF}t�fmani^LnY�ae	i�nsydrs:'tqBi�ab9@dfmopa�-b��ef	Eil�nopswr/toun�Xdeyi�d�dy
:'�s�Chht�orV�ua�1irie�#s^Yi��ynr�#ttiF'eh'��ei��lsKGty��el�n,ite��rh'abcdefg��hkl��mn� oswl�n>�lar�'t�o�a�ee/�erE�h�'dsi(�on�'itOweermlin�ve	�'-aeh	iAosbe�en;�rk
nd��ofxih'eisd�	lrn*.ra�p�'aeioGly6�r:'d�r�s�en�'�cbtorol�uab�nl�eooKGd�'dlps�Ctecnim7�a�oa
DulZrog�i�u'�yoli�yes�st�'L�i�sveilonSoei�tx�'ei�drs	GnZtcai�bt
e
,iFot�i�o�ynt�_'
a$be�ghik$�nor�sDub��cn�tniley	�ns:'7c��t}r�stQxyamo'<sf-anhH�ec:'I[h
ai��eehkst:'nbejran-�b�'<eisy�en�egeldo
�r�'��-�abcehihlmps
my�iu6�sa��o[�re�a�e�lntT'�e�g�a�e�aro��oh��ec'eiyh:'mw�a�eoma�e/�nRa�eful<ldn�'-!b�fa�el�'e$�fd�ior2z'+-/�sr
�wr�
ah�o
�wrbkaeu�
_'�saei��pryf�v�'�ei�nsn)`sn�e�>elltFeisng�'s^�u�mgn`+d:'abefY!i�k$lnsd'
�isbuk�'i�s�m�'fadi)�rs
Bted-pow2zyae �omsi�oc�s��tC'�a?�sti�yc�eabefgklm��oprtrt%hul�vinteri�y'�c�eunction�'asl�i'lrap2`hine3secx9Vtiach'
�asoF�rehlnrps9VtiaF�ao2`ras�i�to�eao�xr�segu7Pl	�hornpi�a'�cia'�c'�n'�sop�heurzhi�Pnnga�r	bcjmnprstu�tasnZ�tcZ�lloass��el�ruletaG(�{�gpajg�o��doc�uays��eaille#Muhabill!�en{�tsseldor��f
'-.abcdefghijklmnopqrstuvwxyze<s�n�rbcde�flm��iO�ousi,naior!�rTsgar��emmeR�r�i\�a�BdeaV�rai[
lcgmol�i..f�.
	cgklk
mrstvelr�'?e<l�ne	i�'��-dhs�tao	w��i�h�/i�'-ab�Ad�eDZfhlmnp��rstw�9psptlkIi��uY�ca��us>�h 
a
�'_�de�hiosy:'\ny��ene:'�s
dbb��ia��urkh'�eCRiseh@�isd�rst�'=i<l�nssar�d:'�hikUl�lehpo�tlit�th�'-befl�ilmnqswyshat�to�udn*�w�aiy�ek�gne�g	eov+e	i7ul{uh��l
�tZa0iaor<�dr�k�mai]Eo�xgt�'Y�gsn+�eeity�'d�l�mrs��e<l]'n
'-beh�Xil�m4o<swsnorth-֐eou�nr�nnrde
r'ln�sts�iyh'em�Rr�oi;dam��paecni#�gaord��s��ogoin	�gae]�i�osbl��enxvre�'sdrop�6psabceoruy�
_'er��'�sh'�eisngh��adicnr:'eep:zI[z��t�lni��y�c�ea}oh�illi'Pe �tcd�ghklmorstuzelntric�'a�isl<lesiao�lst�eic�'�a�4islogiyA{c�sysi0oLa'�seioul(onuao[uF�cd!�ierm�'ast�aor3�a!�o	�'cegilss@|vardiogra�mph�i'�yd�rs'�yra�mTpcn.eo�c
c�n$�ae�raeioi_t_rctich'
�a#isp?s��t?�gascript�
�W'	:'-cflnsttw��aar	r35ilimGaermi7�ne�a�eo��dgi�yce�s�a[.omei�ytrici	�s@eac�eܠsz�a(s
�ae	i�
pyst�e	eoWPnu
wxri'�ssm�t
'i>c�utast�iy
�'ic
�aso
�sdmpterQFmorЅpa!�ilrasiW�t6�aherm�i'�s'�y
am<sdor�'ae(`in:'<sa{nenics�ais��m�t-m�tema�'sBht�'.adegim�n�psctuwmp:'a<s)}mho#�s}aiyentT'dsg��t�'	i'lc�mnwe�i�'VdhW�i<sto�pat�a�eabe�iyr�'da��s�'cd�lrswum@b�'sx�ta6Aiobo@r�
tyb�cfnstnileh'�nsiyc*e�a�e�iburIgo�oh'Ra�eh�iosU'bul�rr�'-iQ�sat-larg/�ealh'i<lss2�z+3e	i�tound�t:'snd:'sbu�5r*�eactrdtoa�e	i�tbt�1i?�l)@eiFono+vn�'ai�isli<l�sain
maiyrd�'��i}oQsnU'7�a�c�gsklopri�y�'-gs'�y|�lra�cr�
oie<l�nr�sf
�ilr�t	aeilorssuce	i�ad'mrscsdmnrutt�'�ei#osunve<l�n	�sa�l8�tina�ct��e�adevntFe'l�sesce	id'Rnscte�g�naici�yej�oen�c�touresce�n3�evxia
Du'	irt�'�lson�tls�xg�ein�ouv�a;e
abeg�ilmory
'dl�nita�r#er(�t�'bc�efh	in}op�'s�eo�u
rr�uead�'es�vd�ozlain)�tn�(toH�n�'cimstent�_rs-mt�'9�isania�'.acsur��fN�ie�gs�t��sptU'ioa9}nlogi�y�cs�trelnbP.eiIc
�bcdfgln�rs%�t�hma��nesr!�t�'�udsvASo�tfehnfsvruequn"Ncta{ta�}eluN�et	�'ef
fhipsyen�'w�fsWhtoesWhtenjc�'-w�fefnostightOHf
�hiof��rvt
�heOHfurOHfOvtinOzeOvtnew�feicv�CoeO�nO�xhwir�ErOxeOzo�d�eads�Zsh�Hotein�'i<s�a
DueI[ntnhsoswt�eeddfod�'a�isuaec�ucta�eIiFose�g	itdstah?�uachroDJmabcdefgiklmnorstuvwybi}mn�pstorateIi�od<l�ns��nh'�d��o�staioc'�nh'ais
�l*Xt+�stt zdmpynami�cer��t'�i'�slX�aeUidrs�aeo2�r:'�orw�'-�e	irswoY�roDo(�heorr�sh'h�b��cflsloS9wiy�e
ntnra(�ditTcacegmnpvnt2z_oi�ct	h'a�eiorsx3ubKi-lnovn�'r�eseh'�lnsr�'asvMl�t�aeio�u�sFtcfF'aisl<l�n'�s�atti	py�c*e�'-cdeglmnprstwocpulogra'�m�pticLa'�sahlo�urudiogra�mph�'�is�y5ztemiu,cL
s]CaF�anvu7�ley�'rsJmiS/cnamic
�a�.sncephalogra�mph�'is�yc�e.�eouygiEsm�xinescenctst
�e+�i�eical�laeoygne"tcdthanicBa�s
�e�rStogra�mph
�i'�y�'eisvgative�ica(s
h'
�lA�ohloioyW�lreust'�eiKisiologi'�y�csa��q t'�xl��s
�aisZ�hecepti
�ochtuo6~pock�'%e	EisaU�trgteiehychnQci�oeraJmpe4Niyuty�ipe	i�'drsseY�amos�Zy'Pai�ya�ech'��asent�'aslr�i<lsiy�lntach'�i[uhant�'isF�a+naet�eion�o}�rn�'w�fsWht�e'i�n	sax�imlral�:'b�ac dgjm\n��ostDxzit�a�e	iKosib�il�ey��ainat�eIi��oa2reI"hi�='bI�eeΟi�'�nsa
U'beth�'�a�'hsaoo�r�'�aeis��wtnrssl@ime#�r�enops��gt:'�tst�e�ioim4�det#Me'ricaE*ir�l:'�o�twor#�t	�'}as	ehi}os�wuro�sfr��f!�a�ocdhin�MpqRyution�'	a�is"�ei�m��s�g'Nu��oRa�deit'wy:�h�ei�nr,eah�o�namac d}lstt>ei�di
LvD�e�iaei:'Hn�n�r
os}anb�rs:'gbt�'�h�aOAoY's\eiW��a��u+�n�'abce��fimop�stucinsNils��lWac�tuipat�eUior�'s�y�caeilordWlnrstE�y-kcgkrade$r�o@a�e	isasse�i�m�ds�stle	idmsen'�tdl�rzds�a�eing�'slish	le	i�mzAltte��rae=�zm�'astic7salK�ldlsur�wi	pye'md�rsk�di[us�
z�a�m�6os*e	ic>�haioycseih'Radrs4nvtht*cid=�lereJis�yo�'glrnsen�e�i'�yogi�yc�e�s�aee�'sd	isnr9Vtda�e	is�bBtagiNs��yld�'-sH�ce	idns3c�t�etai�u�e�'glnrstra�e�n�t�'tei6yRatoeRmnc9t�Re�'aste�'s's1^ai�ovi�#tstae	i��nae�ytT'n%vuetQl'ntatgoeg�a�htt
h'jl��r�st0*ilgu@i�ei�cno�vn�'ahlsli<ls�t z
�e	i-m�t	aehilo
irtyntel<�lnshei�ytica��lce+�s zr �iFoays*�t�eis2�z�'+3e	iK�sr�eic'�aΟi	�saocne'�d�me	id�syh'a>de	i�msb>Mi?�lr1�wia�u<eiosye<lEn1o�vd
orAns+�rh'-	iha�e�kn�pr�'lsaost�eiFon�o�viQ5f�oi�!c�'acdefghijklmnopqrstuvzHbcm-teol�'D�e��ils*�wD�ein�agnlrur<�e	�i�s
aehiloruyeLgmprs5�u�0n-psi�hudatHeR�i~eh	iy.a�eK
mlpa��dhaliotic�d�sg'�npra�mph!�i'�yat)�haiinn�e	iK
mst�e�i�m
irsl*�aprherJ�e	i�mskScA�aos�e	iudmN�ruy.ae��i9@ipasVsnr��tag�Pe�iouyaUZcsUtpt�eisnonmb�e��rc�Aslio�|cpaeedi�acdi�a�cfs�'-aegi�lIlmnopsu%�wyuL�snr1�gter��eadm�rrv�e�i�mso�5r�fuic�sh'
�aisamD�e�ac>�n�voo�t �obcdglmprst-wlas{Vta�errdiLati'�c�sin
fe�oK�eoyna�elmBjoyo`Tsy�meotriLa�o�urphis>mlas!�mp1xshinh'sckpyop�ei�y;�ce
�seletLa
oe%�rmbio
�n�s�thoelri�a�umLa
�i'�s'�ya_�opeR�r�e	inrgeou�na�ei�onbnn
Bgm��i_'amrb
b�a�i�yg
%vei�ytic
�as�esz�ka	e	i�kae	ieiorekSbelclea
lrceUXi>Ha�d'm�rsanchi,sze	Ei�d2vm?r�s
:'a>�beilorug(	e�iln
'j�mQsr�dne�'�deZrsr�'�e[7isaeiHcnd�'e�8rwobosh�'-eEmmwspeak�e(7i<r<som�a�e�raoimv�l:n�'mss�ae>�isse&i'm6drsl��fanrce	ifad�m2rsm3�otd}fgwma�'_^isticJ/aueaomgbiynS9d�e	isa�e	i�msbKi�li&�dai��crge	iRad�m�rsgsvh[Btte	i�msd�er=�ee�ish�e	i'mgYioq�u_on�b��cr}sum�i�og	)hl
�r}aueiufe�ireiyd2rsen,Tgaio gpto�uc.�qhQoU�e	i'm:bl�n}�el�m�se	i�m�sd?e�rcehilnu>o�6mr#Oiko!Mf�gla}ga,va1�r�e	irf�e	iaehiorwbinl4�el�e	i'msg�l
nr�ei\Mopst'�cntiF�d�srise�i�'�rsainei�msn�1garul@�paollwms�e	i/�mss(ns�eians�m%�tcrt�er�ie<l	�s�t�i(l�ymu=�bologi�y&�ce�sr�a'ae�iouy{��ac�timnp0lne	iwmsd�rmelY�lsc�te�i�'d'msw�a'm1�psac�emnp�st�eis�y�e�nh}�oG�!�aet��cX�orl��eneur�'isal�iZlhi�ppi�y0�ce�osX-t�'2�p"�wi ncmnrlJ^eeraTb#^tcia�bt�eUi#OoF�eei#oylnopve	i'msj�o��a|e�orson<e	im	)sent�'aslΟi<l2ai'o�'�i�a.�oyma�eotic
�al>�ocehl�ns�eippu+�si'~athi^cinophil
</i�sa�c0ehiopMlrsVruy_'uHxlet�'�s)�terdmsrqierai�'��ls�dsi�uan:'�sa��icdfglmnpstz�'�aestuyn'�et)�erLa�e�ere�u�'asn�'scl�eioc�aid�'LaGsae,ou��umrircologi�yc�e�s
�am�ai*hocs�z�'�"a�era:�lU�aluo��ra%�elrsDBto��tamp�'msa;�th�'+eis?�yc�esal�Sl�t�ga�_e۾oe��teip]�hg�cahlaeo��laeni��y'�c�enomena	o'�lcotopa�clrti'lan:'<s+deVWlom
�iolog	�i�ylar�iyaho�pxWiyel��tia�ulm�p�ei'�csz�ka	e	i'�t�ka	,e	ioio'�c�tc�ednx�@hym-�oiy�d{veh'!i(7i��iottQm}n�\elli'�a�ouaeiu�blnth'	�eils	�ns�t�7z
�a	e��i<�e	�iyim�iyoa�e�io-br�'7�is1^rstriaenh'8�is�n	adlnpstvng�quistan9taite5�rbraia�u
feoc�x7�ta'mo1�prs�grStits߄e	Eie��noportionaN�ljtpau�ca�i�yb��tl$0eyaolenc8gt	@eiyhe	Gnh'cal�tl~e:'ar�beghi�klmnorsuv�\wy�'dsticaTb@JtKae	ismuo:'sthe��n2�bcl��m�wtJ'ei<l�n��os+ln�o�o�'osdnps-tic�"i�ohob;�iterol��acd�ektQn�st�'�a�hks:'}a�UsM{s� a�'ta`�sreao'�nadenV�guB�nnmeKyai:'�onae�i�os:'��bsttT'�iRodgmst�ei-bn~�eC�a:':eihb�$o�Mvioca#is�'
�llogic/aa�e&iosnt�Tc�dt�l�r�s�aiDuc
�a�istQlnrUe�',lsa�ekttQ�ziW�nwV�hcdptaZ*e�issti�oit9e�it�eisn�ovK�eiD�nstipel�aherma'�ltoys[uocmy)�cac�e(�hklmopqcrst�'�uahorubdlpr�Feric�lalod�top�'Z*e�isO`pae�io�b�dh'd�e�mrslogi�iyg��ogp��oaetologi�yc
�sUarw:'ic�hn�rdiH�diotw�o�w�dtchef�oim(;oera�%lpthagesi]u8Vaerica
�l_'H.aeil�nor	pydglC�nrr]in�o��iX%t9Jcran�cstzLa�eno�xon)�aa��n�osuirtsE3a	,e	iei�s:'.uH.ir�eaeiy�'eisn�>snq6x�'�c}etialh'i<l	�nss'�m�tuib}e��n_'H.aeshiorub�tlish	le	imen�Rtb/�elr�sv}alta�e�'ahsX,sa��z�0ze�zmabtl	�e
eIiFonpia�'ntT'tVsp7|a/eao*�udn�Mgghu��eari�y�en
 acdehi	�n;orstuyacl	�.eter	�ah'd	lssC1u.ehter�a7a*e>�irna�il<l�n	�saeinoyn:'�eo�i�llr:'r�Je�'',eins'�c��n+�s+�z*�ec�Bdo�'a4Ni	)sl�i<l
nUspiao'ntT'�s�aiocghlmsentric�sraph�e�i�yistori'�y
aQFcionguistei'�sgi�yce�salK�leuthodologB�i�ysicologi'�yQFc
�sc9iO�gl�sogi�y&�c�eEsl�'b:re�senzoql��aogi_yche8Vaue0�tu�rs�c�
�i}aric�k0dmo��l
'bcdghklmnprsts�@�ao/�eahlltypti�uastro�Hpaorrist�'iqsc�alogi'�y8�e	iomatqi�aidU'ea/�noau�reontQei�ac}e}o
�a�i(s\�we3ndaryot
�e�iaMeo:'asgi�y�esUz	e	i"�tenVii+Su#�cheormis�mt�'%�isnri�ye'o<u3bia
�ca�s"�taehioysiatT' �nk�aythmicbp��oA�ih'-�abcd��lmpstvSzmwp��sas�paon�kn�d��aeloruntri[cv�se�amnmun�Xinvect�oerti(|bN�ae�d�errenc9`i�yolla-arairv�kllio�naeh.io:'s�'an�'i�ssza(3e(7ition�s('a(3e(7i(|io�bo�pv�r
cf{teptic�ai�ser��r��ai`sadtp!�s��ihmi�ctar,oc�t�e;�h�yehrcrt
�i*ho\paena۶iF�snri]c3�iop�h�aeio	tT'cdglnp�)sua�e7nYt�ae	iinat'�e1�iuahbt�ei#onI�o+v:'Dcdegssce�nHselicns zalh'#i<lsRa�e
�e	i-mt�'
�is :'-x�tvheD�apritcharQ�di�loraNbt�e3�iFo�'lnrst��yh'-eh>�i Ik<l�nsth��adr�san�ad�o�'4'fisurd	Gna`El t-eghlmrstycih��ancre��aa�ustd��yt:'}elradeh'$�se${ea�raiystingh'<lnssW)v4a$;oead�!yiNb�o:'�e�i�3o'�sbdm:ro:tptTqwo7�da	�y�3ah�~i,t;acdl@nstt�e�isen?ctu,i<lUsh'��d�el�ns�eyJAcc kla�bti�ov;�eu vt�eiovn�'ais�lr�iysm�t4a�ei'�wh'-abcefhimopqtuNxcps�Pwom�nmu�1narrtw�nesident�'tude\�nbcglms��yetrNbϖei<l_�nsn�ot;�g35ugerat��e�iFot�ae	is�d�r�'i�YpsnVae	idR�e�rsperat"�e�iib
�i
yaehilorul�vib��udelprs�rd�e�is'lse	idnc9t-eiy�ex'i
�ot�eisnon�'asTbl�i<l	�np�ts�'[Bei	Gnvaenge	ih'Rad�rsquIjest%�a8�e�iae�iobt�i�l�ig�o9d�m�rs�nT�raui�m[�mGdsi5�oveNih'<l_�nsgmriW�tmunicat�eIio�ieumstent�'�asce�n	)aE�eion�ovriy�eFuciat
�ei�n�olrspat�eUi	osi��u�ove<lness�'e�a�De	icgmrss-etIu�'rsua�b
)tta	,eiForbleno�vn�'I�aes�ri�c�xe&Wsteic�asplh�tair�'isyZl	�nZtfi	py*c|ech�tiys%�ale	i�Pcolia
�nty�eiKon'ovaiou^lusth'eis�drTb(n�oj�vblith'�eiFosnovn�'#eΟisarat�e.�irt@a�e	ism@aJe	ig?ls�teunctg�e�i�y�l�s�i�ote	isdn�ctiali<ls-m��to,�ol`u
abcdgnprsttmospv�hiologi�yJc�e
�se�r
�n}tus�'�eYBaeYGl�nF'
#ehlothalm�i[o[uan��elyiabcbili
tit'Pais+�z�e	i�m�tk{�peletLa�ohioer�mch'a#i	�ns
�laeiloruntds>Ha�e	is	@eiTb	Gnovn�'	aΟise<lnessC'eNirssiat
eUicdlnrtat�e>6ios�bn�2t�c��tra6RnRtietn�c8gteivono5�nus<l_�nls�ae	id�e�rds��a�e5�is!ei	nve<lnes�ositemnc��te	i�'y.ad�rsent�'ae	isl�ti<l�'%ei<l_�ns	Gnrsar�bj�ta�e˪i�yjLtaeioinnRa�e	isaTDtl�tcaiTbt�e�iS�omt<dirst�'aeisTb�\tnvae	ihbti�oveh'<lj�ns�'nrs�uent�'isa��ltC�ei	GnX�ot�'ae	is
b�teitu��h'd?rsnt<eiKo�hueossh'	lei<l��wbnovKij'ln�'0�ilses"�smepr�ilnT`rGguisite<l_�n	�sIaeiormnrpora�e�ineouj�sds�tNuӝaeisd�r-�l	�npXOlbn>Mi�lio>Jb�oj�vm�rl,eimnoor�'i�lss�z�xa1�ei�nalh'i<ls�Ls�tz$ua2�e	i�?cnrcgtZ*eiss�n�ovuishRa*e	i
%plr#�lst�eisnovn�'aQ�e�isE�r�taeiouh'-cdgjlmnopstvcurri_�ceotullula6rrpo6�rh'�a�e�iFosrricula�ri[otRa�e�iala!�cudicial
Zleig@\angu�iaeuri&�ttr&�rse'4o�trdinairiy�e<l	�noy�lramiJdeH�oyn�sst3@oerreis5�ttoria|�laegsan�c9t�zJ`a
�chr�vi�st'maeio�lh'<lj�nr�ss�t-m�tph3@icnaTbRt*�sprv:Ii'�yer�st�'�e	isGdK&sbdlrelfra�e	ite�ita�e&is_�n�tb�'a�isn
i$ celrs�'-LabdDZfgo�h	ilop?rstwclostatc"huei?npe�/nhado	�we8�oi�earll�'�eis}�i(o�n�/rl
ka.�aei�s�t�dne�rpenSJe�iP�a%;ihiota7o��d�[g��araTSi��ieoe��tot_h^tai�tan_!d9�e�@ie}snerkie6ltQa4i
:'-abcdefhi��jlmnoprstuw
�xy� ��stY�o�'cabcdefghijklmnqrstuvw�xy z��
R�beilr'�surY'g�0e��aLn'�e	iic�'�aslaij�ot'�ei
�oaeistu��d
�'-�Fabcdlprstwstav�e	io-fR�aook
U'ehi�d��rl��oeisi�sf5`tla�t�'�eisannaoo�0r8ea[el>�neita�i�yt�e
,iT�oimil>e�'i'losuotn�Au�'asl#i'l�i3�ir9@t�'�eis�y
a�enszg�a
�e	ia�e	i�b}tal�i<l
nlta�i�yti3fv�'deu�i�osisy+�nsh�tnessFeh'-6d"*o�rs
i�_o�ucrBaei-�o;�y"�efj�n�e!i�s�'ag�iostogo�e	iot�'<eisng't�'	�i�s}drenh#�eelnrstnceh'Hs	h'-�ei=nlЯosusafn�g�et	h'-eh	i<lm1ns�Qhdr�sea��rh'-bcefgil�m�n�DpsvwymwWiie�daa��un�khZidr�saiV�xel��dL�oh	r�e>�n\rse@iy!�a/�sie��wa
�t�y�')�lt�aal:'�a haccomplHi�'%ef	Eilsulh'<l_�n)sem
sitah'	)slei�en�r
acdklmstu��w5Mf��s,aon�'Fe�rser��ailnr�#kandU'�se�r	�'Y�-abeiosci�y�e'4oa��cn�rbn�ileym1n;Dfp+uwiT�ah'�e	inse]�sol`ueitf�h<l_�nr�s"�t�ef�ti	pya*c*ebi+ll�"iaf�ferh'�eisng<l�stin�g�Seij�ol�nVsi�ya�elrh'i<l�nss�tz
�a+3e�}i
�a2�e>6i�'-abcdfga�ln��ostzo6�utic�'a#is>lo�yiyЇa@ef<l�nuj�lh'�-	if�wa�;obnido`�z�gao?�l�'�eis�r�ei��yen:'sa
isit)y�a{ves2�z+3e	i�tiubc�6iM�'��s-a�
bcefsgi8lmnorstdfs�orsist�aeltҮc	uaen"$gp�aighted�l�ndw�'aistQyze�isd<a�e;�i�'d��hrswe��letche#�dnag�'�8cs	�'�Cehi)�lsw[�y�a�ong�'ssx�tE�torwGkb+�eoroIu�'e�Fuaeiogkio�uBhn�'Ce�sh��lw^='�e	iseiZe:'ghtedYn�'�eh	ise>�ir�sIlmch�osti�ac�ns�olulatD�ewi-m"�tain�uon�'aeisbD�lnc�s'binI[dh'-bei
insforwa<ra�cl]jldnr�se>�isdniom
u
�'a=`behil_�nstuw}hl
�ei<l�n%�s�t�'UUdf
msum-leoard�'esId	�'��-�e
h	ils)�aRoeiytn��-m�'Ra�e	ihls�dgm�nue>6i�'d	)saai�iyD�oei	)ydnr�s�er]is�5enj�eg�inao�aAclnsv'�xcktonbrid�gner:'i	�'-�efiGMlsyfi�-ninl�d�e"�ln_�eg�'a5�ist�''�lsleTdrt:'i�u�anis
�m�tieiocru�'0fa	�ei�s	�nt�eis.5mr�'aei�sble�y�'�n�sd�r�''l�n�sntg�'�l�s�eis+mklnae�5t�'e&isx'e�ers:'�r�stteY'
�v��aen�c�Ticccai�r�c:'abcdeilmnrstuvwyz�lrst�'�ef	is�lsul^�l_�no)mi��tjIb�'hsuer
�'-b1eihl�sa�wybeh"&lserdd<el7iaiӕnE~deacTdt8i�aerd[dai^|n�ef�nre	i�'dhls
t:'riu�cfl�@uexiarity�e8Va]ekuless<ln�*enda�ibRtKi�'��-eI�o$�sr�!xa�0ilt�'i<lss
�z
�a
�e	i-m)�t�e�i�'bd	ils�tley-_�nr�ssmh'bFe�ci٬lsa7�c�gtY�ouffh'FegisyoZ*ong�'<l�nsgjl�ns[�noa�'�dUsdin�g<vtdeilot�eٺms�\p�cc�n#�px}ei�at�a�ij�o��yU'stow
'�eh'aeiInosUPbhsst	ie��i�od:�r�sng}iw�'-��m&�stravel?ln�'is�y�eous�lness	�'Feh'-�es�ho�istY�iaimotFule�'_�nsnin��sze�ih'<l	�n�s
�a�e	ie sfasVt fat�,a&�roUcsec��o�'cdeil8Nnsuwe�i�'dp�rsostae	iselst�ramn
:'Dqi�s*oa?�ngreei�c
�abdglmnort�&uver:',ii�~nu�\singhe-staeinttaagnt�'�a�e	is:'o
Du��n�'abƽehl�istyndP�e7�o2�ir|�aiol�lv�u��rc'�xinao�taeiouyr*�i}oT7i*�l��tc�em�stagn<8e�eqicem�u>eoncr,electric�i'�sagnet�'ic�sglF�i�'?�b	im�aeVa�nil�ei$ms�t�7zeiod.5r�vuecst�'��e�ih'
�a��ei��ossv
aj�e�iaceiltu�'<l�sh*e�ih'sdssu�d�nsh�'�eis-m_8tTo��eluel7ih'dscciin�e��ns
h'ed�'a�e	islti�ls-m�stƽoer�'�eis	nsj�hh'�em1n�en�'ze'�d�s�aabcdefgjlnorstvxzns)�tce�h'�ess'�esco�'hesh'�6beorsur�'bfg�soar.5dil.5llas:'.5snacc6ieio�'bdfg,lsoar+dill'�s��slasD�s=�cln�'Nls�'osV�gbim�sul4Na�duN<ss�lness�'Fela�'er�ahkt��u�e\t{ule_�nr�siotcvn�'asl��i<lj�ideg}ouleiy�'&�bd�rstick's�eCTnl�'i�o�te7�tcia!l�rflnr}Ws�'dso
fmd	�'ace�fis��wyr[%an
mg:''ym�td�'iss;�hciye<l_�nr�s�e�l_�n�ae	i�ot�	'd�rsO>ehOJiyh'-<lsgener�'-w�fOaefO�nO�oO�sO�tiO}of��rOxvt
�h'�y	�'a2�bgh�msusr%ei'�yi@e	Gnth'be�isack'�sr�'-sbomX�berroaeilti�oh�v�'dE�h�rsn�e�gi�'M[a	abVceilmotm�rent�'g�a�e�os�e�'dn�rs�xtK�a
�abfZegnpustel�rU�r�gib�nC'faeims�yd�r�t�e>�np�'Z*e�isS�o�'-d�egi٪my@osygms"$oake�i�rtJ�roYmX�o'�c�en_�e
og�etri�p�=fpo-�dehrr�'-Rae	istҙi�'isye<l_�n�drhus	Eia�:t�'acdegiklnsHglnh'�ei<lss�t
�z
�a
�e	i�tc8�eiaO�e��nl<l'�sl*hh'�aFeisn�g�'-d<l_�n�rsgstp�uu+�npstu�nB�e�iM�aer�'-��b�e>�ilm��nps&�tp�l�eing�'�sar[ok��r
acf�nst�akiy�e�dn�'�ehC'*ein,�ge<l	�nsh'e�iss
'sda8en6d�'bei�syogadotj�td�g�e	n��sW�bPnrd'lsaVnh'eikms�t�'-/abcdfgϰhl�mp�rstwbcefghlpsĕtwor�Tumb�'e�Ri	�s	�dei�ac�kontrBol�aig=hua?�ro
Bsig1howe�rto<ralS9ts*ka}�loru�clsl�'
�e�ism�xb
'�ei�sn�gaeimn�ta�kc_k�gra�ca}o��mi�log/sht
h's`e��i�sRx?u�ei�og'�tht�'�e7ilo��r#�a�uweK{rc��hitrexe��do#�nr�mr]�a�Uua�eioltl'�e�ise_r6yr:�o�rn2g�i	�'ga�@e	i<l_�ns*�wth'-bh<ls	)HabӋc!�df��hv�n�rsornY�lt�rror_naZ*nchikst��ah_e�'-y.abceghik�rlm*7npt2wyb�h��mpto�wloate��nankov9wa��kdrsy
�'�i�ms�yuar�vd�!o�e<ln�e�g��iJeolyn%�l�\oail'�e	ischell�a:'�ei�uloe�in�'a%e	Eisb?�l�'<efisugi
uc	nuf0fl�ao0u
�'cF�f<lm�nstzhtT'bu(9ren��t�eingh'<l	�nsgpTdrswer�aatrictQkimon�sills�ie�'-OHfZrsaf!�y- {s֪io�otfoh'aeitTbt�ei�fn�o
dvd�rs""-<ln@�n�t�Hezh'	le�iN�ly
aeio�tu
�vybcgikmnprstuvwxy�'b�se��iyrgas�ft�'cr�kis4d�'-egi,�l�m�oD\prsw�[alla
Du'?(n'�rRt�eing�'�lstiousZlX�nanc9t_e	)y&�hta�of'�f�l�r�'eisy�'drs�'Hs�en=�eg�,abeimy��eo�yanoDc�t<e	i�s�'-dln�_op2rstptroo�Efhro?w�eA�i�'�croof
Z*e�isshrows`eng�lo�s�'�esaޒb�'adgl�kns�ge?r�rel�'e	�i<�ls�d0�t�'�Zjp
osUNae��i'�ye&ih'��-ds]�uhk�'-bcegilopyF�pTaublazaLud�rsst${u�e<ln�e-gig"hX�voi!�n�'7es�'-b7�cfhilm�nstuwf��htwo�WoZ^oeo5aV�veor�u�d��aea0*dӬe.�ioot�'Z*esead
�s�5ra?(eyndh'�es�fa:'ei�od[�nrseis�ye�n
otn	sl�s	�e*�a/obnte &rct"$hh'e�is'�yd'�ri�s\Mioru�'	�efils8Vun�ge�so��mr�'t:efilsu�ln�ge�so��m�'�e	iGMls�'e@
msnse?�e�e	is�oacdeimstt+uwx�'bps�vw>�ait[oei�iEok�tegrma�ue	i��ldW)lsc	irst��el�iy�'�@ei<l�nsngl�n?�yscI[hin��s,�gh�'	leil>�py�ene',g�el�iycherb3''�ss�'�eitu�bcn'otuf[f	!a
ii=nmrBae	bcegmnprtbertigib*7bkh'e	isdrh'�e&is�ysd'r�sht�'<eEihlpsya��tfslam�'1�msiy��e<l�ncdgthh'	le�i�ve�'+e	is	�'<eilosy�eneg�eTof�vf(htonU;eh'-fpsflopR�pslop�[pssa�e^~isyhbnth'aJ'e	isytio�n�uh'ste	idRYr:'acd�egoprstuw�Jyth'	aeisyng-Uspo"ickulaz�e
�nt�'�e�Qi�msdCeфgsdr�z	�'eYBg	ilpswdrigtht�'Z*e	isla${ia��t
�'��bc�e�i-m#�pswl�>opOSaaTflh'ϰhps�e��i�yaeiD�s}y���'k�lsns�t��c$�t:'�xc@acdP�flns-9a�i<l�ne9g�'}est�'Fiss�'�eiyen:'r��sa�aĽis�anreTtc��d
ei�y�eA�n�'�eisy�enshh'	le&ih'ce&insharth'	isdr	�'b�eihl>�p
msyme�en�e:�g�t�'bcefikmnorstvxh'�[bsstua7n�t�'-M�nsc\iuf�'�el�isyd�'i<l	�nsPs�tPz!eiy�e	n!e	imoVxgkh'eJis�yd�rxyrxeiosce	idn�rs�c�tdnrtPa�e�aecmpqsahrbRretKerKi'�yol�DyuinoSlcop	@e_�i'�ye.t)rh��th'�a`�e	i	�neity�'d�rls�n"serh'�e	isybei�'�e*ginoQenh'-abcehgIilmn�=opstwbdfpy-'�s"&n��w"rip�sa�OpTbuEwalr�yowni�@dato`c�r7sal�fem�a�a�e�o.e�napms[`eh�pwe�ea(�tr��a��aa�e�h�'as{�m'abcdefg�hiklmnoprstuvwxyc'sh'jl�lm�'�el�isy�'1�bsa}hiuc9l�cs�'�a	le	ise	id�sdO�e�'st�ai��u {c��dl
�'H�bdeghisy�oyl'insxPs'�e~Qiyv�o'e''di%�o��s8:b	�lVXssk	,ad8egikls	h'-a&�beCRi��os��oy0bwa',ye�ra�c�oBfcgrJt}e	�'-eilst��wdstwanc�e	in�i^�o��aeast��o�e��siofjkr-eic�>sity�en�el�gon
'�e��aio�yc�e�l�quw-fa[eVfis��u
�oJ�u��o�taelha�u�ndt�'a�el�n�u:'�nJe	iySs'aesinneY'blea[u[ael�')�l�sno�t�y
8bdlst��z�'@ugis!%tg�et��u�'ehi�!psd�rar��dnsh�e<l_�n�cb��a�')�abefvf
aghilm�	nprsw�yazyorll�'e!is�d�ra�Ui�kt�d2rfxiko�e>�neio�sgnh0tPg�c6Aoa�e�nrR�kal_�r�d�taX�t��a�e��ilotogg'�s��eil+rdk�i�e��oiNe�o�'psei�d�r	Gnsh�l�nabcdefgjklmnrst�uw��gmy�ein'�aiferayo'�s'�l�n�'e	isdr$=aeio'�suya�sr�'a+e	isdds�eing<l	�n)sre+nryei	�'-�dfm�prsfede5difuel?d��e�bn�'Ra�e��h	ish'�.abcdfghi��jklmnopqrstvw7�eod�ein�galosth'eQe	i�lsXUo�u@�ae]@o>uc5`ko^aӬe�iH�ohraor
�uther<�eZ�inseCRi+nrsound�'�e	isaE�eondh'�esgnFe'l�nn�eow	ilnse�pd>�e�Oi�Qoa�e�o��n�saosd5mich'
�a(sr=$dae�%l��rw�ao-	rhpuarterh'sunaehijkt
iwea	in�rsb
iVlaeo,sd
�e�cr2ek�tght�'es�jd	�'a�Ce	iltrsl�t'�y[�la�Vnaeho�sll#e	isoug+h�l�perh':nm�naIe~�iornJ�eisngF's�mmreint�'�e	isuZVdaeiot+vherei's'dn'g�'dxvrst-ffstme-!�nj#a	i>�nvaeiblEeyfan�rs�en�g��e	i+nm�t�u�'�efXf	ils�}tifr�torn�e<l	�n
�'aefiGMlosuQ�b'�el�n'�sth'di<l	�n)seh35y�ns�t�z
�a	e	i-m��t�'�eist�ove�l	�ns�eY!id/ritZtcdn �a�asa:'�nla�'�e
�irs�tiLsi��cest:'�eaeop��twys�keaxrbok	t(�eeoar�rrenth'�i�'-a�ehinrsuOUyde-franf�cl�xecrwomY!iightiOLe)�fosi{tjrsim�oight�'��lsaen�'s��sint�i�o�yae	i7t�'-dstteill#ein>glin'�gell�laIerdh'-eu�i<l�nslo�od�r�sst�a}eil�'isf
�s
�zeBhrer�'�e	iso6&mc=glnrau�olC'-��a�@e	i<l��mn
oswmY�uoutcThessd�'eDidtaem�i��l�rsti�_od�r�'asin�'-%eh	Eishp��eyeea?d
�'-cfKinpstdeilpswiv7m�yn-��heal�t:vo=squ��ah5Mehe,to�l��eeon
c'n�1sc�oqor��e�uO>ehh'<lsea'eltl�'-eu�isr	udr�'�s�'-eb�fghityhui�nd�slA�oou�l)�unt�iss�e<ln�e
oga�o8�rb�ios
�u:'a&�ceiouy�
cegikmnpstu�yz�akt
ei�s�d�r
aiuon�u�'a<e	is9lT�t?rntzM�eimo[rssle�i�lsr�sent�'a�e	isr�tS,i	)yj�nl�e<l�n	�s�tt�uei�'Lad,l�rsGYwng'�h	�s	�'cgk�nt�z��'ehi�kos�'stT'c7�a�#oiste	iTao�'de�rs's$�t�ns
Duo'cato
U'(;n:'ips:'}ehiol{eX,bnei�''�s�a�eij�l�.b
�'efil�ns�tdtln�r�ss_vtour[d�trt:'��e�enscgen�s�hiynb3'
U'�tic
�a�lnois�epse	i��h'dsse!!rh'erssrnaili<l~s$ms�tz
�ae	isd[brsi\
c:'d7�e=gl�'sut�elen
�c"�te7�i9�e��izN�l
acdeimnoqstuyk�'-�eisyH�o�eZl��n�s*IktT'tQader�ityric�'ak�t:'s�t4oic:'kbttT'�1s-bdhr]ilm	�nprstwz
bfhk�Ylmrs9uwo	raol5lr-m��aandei�d�nE�l�#nY�iarҶkaE~nta"6nheZTe2�a�io�<sao�r|�rteQe�i'�s�m�oaonde!dl�.daoync�de	i�'d�rsad
�ei�sa�e�i��nson�'r�s�i
myhS�oo)}ni�d�ita�oyn�dle�i�''�d�rsh��oinkFe�Qiahmir�y0�eeel
ei�s�d'�r_�aeih'-�rsdf8rv�rngh'ZlUsdgghaon%t�ncH$etzh�':eEmmZ�w#�zi��y6en:'�suen�ct5a�'e	i<l	�nschno�'^[e	is-e<l�m�nwfՍan2r�s�taterd�'s��e�oh'bffs1�tf�woa%ra
fwd�'��i$�'la
:'acdeglnpstvzc�br�'2�b�i'ls�ya[ktstsee�'�d	isi�vo�vion�'
�alses�sa�g�ydln!r
osz��a�@c�m��rd�'%e	Eilsei	)ys
}s�5e�l�n'&�h	@e	i
aghis}a�eCRit�'eff	isdn�e�isda�i<l�nS�il�'�eisy��e	n?g�xp�rbsc'�e(`iks�e~QisyoZni�o��tK�zlx3lol�i�ozh'�e�ily
ei�y�enbc2�dgilmnstuwzish�Aek�'-<e�Xisc\�o�'gms<e��ia�e�nrche�idsspa'w�dsHJsic�'�6k�s}mdHst�'es:'Hd�'-abei��l-mrh�sw�lpE~a�g��lencheirssd��n�rensr�'s�m'�w%9punn#e	EiH�a+o_ht�'b�e�Eisyei�lt�eu�ik�th�'�eisy�en�egfro6bua�n��zrzde�ncegimnstti��o
?fhau�f��aivor�eyot
�'al{cefi�lsyriaEndr�peul^�l�n�el�n�op�'isy�en	ses'�s-�ztr�uate�i6d�rsic̣u�'e
e	iul�tea�fl�i-ccp&�c�e�isscdeghjklmnrstzhkos:'�i	��'y.aehi��s�w��dr��'��seadsng�sxant!�h�
d?gashlnrer'�s�'-	�e	�ilsoc�$e	�iXt�agi	=u4esyti�vreg�ri:'t�%wL�y~$suoy�kaU`mab�Acfgj�hlmns�t�nrig�hi��ollwmsJ'e	i/�mssh:+u
h'-bei�nswy	bdfg��l�4pstwl6oo�ko	w�rronA{ts rsVcime
�r\aac�Mksdr�s�'%e	Eis�Utn��s�Rto��r-fleadi��ne�sV�oab
eissyr��oller�i�eg(n�'-acdefgiknl�[ofurtti#oon�'a�e	i�lsl�ri<lUsst�mt
�i�s�iy�'-a1ehirs[u}yrai�/smentalh'Οi<lsoldY�e	EigKnaise�i_r'�sbrHra�e�l<rakbiaio��u�l'b\
c!Mf��li�udFe�scu7�l�'�e�Nisyeiy<�lsr�sh'��m�'bcilnorstu�y�zeilo�7wsh|e	iula'�e'�r��eous8�e<lnh'�e	ios>�nug}�h#�aeiC�ssth|e@�i*�urh'�ess�ei�5oy�*en�e6bghT�iwer�s�ae	imsd>rso+r�sangI[lncu�l*�ce��hist�'bd�elsy$wo�Ox�ab�Jflno�i+lil�wan�'7�is�'b	le~Qi>�pyudAgiy�a�eE�l�nH.i${ou�qzl;�e�i�nr�ei�os�t-mt�'��isbhz�'b�eiy+�aE=u�e<ln�e�g-wuz�zdisy;w
�iti/�m1hhk�r
�'-2�7�8abcdehi<klmnoprstuwyz��sturin$�go�i�b
:'bcdefgilmnoprstuvwyz
h'abeflorsr)�df�o�e��ilye	ih'dHrsrdi��n.Aee	i�'d�rsp�nr?Toiel:'}a#�lr
	uadfgosb?o��e	i�let�'X�e�rs'�ylir�n?�dRal:'i<stc:'-spea_mkacv�hf�'ve	ish'a�tegsw�\r�e	ile	ih'dsriwGta�elmnt
U'�n:'yh'efiZlsd�rs:'
�vwEungF'Usab�i��yorou��g�'ehs>�rers�db�'abeilosuvw	�'chnpstK�xtV�aioca'Nla �dJgf�tag�oeia:'�nraai�'*ans�'�a Ib��cle �a�eto
�'abeio}�sDugnKhth'<e	i<l�rs�Kela�tdd�g�or�yi�y
fa^[ec'�em(np
Duv:'�%iau1^fol[iaVXn:'nN�pw�'as
g�ya�s�i�op+rspi:GnQ�hwort�hm\�pae�inio:'cߘs
�zmetFe!�r��sar.y	abeAogim�Bo�uy}yilo�{ag*e�t�eY!ilC�oh'	�e	�i<�ls�'{@cdfkl�npUPrstZ1oee��p�ay!�aXOlmta	en|�sFe�e
�ioU�gphP�y�e�flnarx�a�'e6bgs�'�s�aosy�7ndeg$�j*7ntya��ehlRfi�';anaf{g��s�'-be	il5omprsut�u"�wg�aAousA�tdr�s?�aiy�anon�'
�il�aen8�e	i�otiae�CrAl�r�tme#�d��l�'-e&ipstoҬoh'd�rs<e�ih'��abcdI�efgilmnorst8vtyzk��'a�e	iGl6osgne�'m'~a��z �io�naeiKn�in�'eis�a[9n-eniuA�es{]hnkellaN�lontua:'nyylb��saldi�''�sain�_dc�'k�s%e	Eiyen�teirt
U'�e	is�'s[tshh'e	i�mdU�estte	Ei�'�d�seiou�yt�'s�tcsQko�_nt�e�ite	i'd�rslri�o�tO�eth,�n�'-i�bcehi*7kl"mopstwcpoo�lerm��eoi�nboy�g�^os�'e	iod�r�ms`�lfiy)cteF'	Eiig'�tht�'%e�ishlmo?l:riek`th's�a�e&ijzoseiyd�trs�enegx�orioucti�d�sceinpstnCoemS4interiK�oti�d�sntesti&�nom2ei�yceal<lF�o��uc��top�e�i'�yo �mla'�e�tor2.k	eh	ilost;uw
�'acd�hkps"�wu'�sxrasU�he�3e�o
U'heH�aerh'e>�isin�db�cgrh'��ass��b_'�oX�i	c�;dglnrstzhe�o<l�nr�srie	i�\uSs'�adrs:'i�l<s��st�el�n�eyavs�'e�iL�asi}eiy�e��ne�iok
rl�'Y�ls6�t�adkp:lZ%p
�'�eisyhre<l��n�'elnsr�stxy}eco��d�eaeipu�z:'3nh'�bd8:l�rstte	i�'dFesah�ln'�nach��omZ%p_'�pcs
�W'e2z'/�s:'��a�p�'acdefhilmnorstwyr	�'`�b�ed�h�is�w[yhi"fA�kddi
'-d	ikxclsvzg
Be
h'8+deis�y'�dZrpAenTsX�e'�g
�gp�ee.ssFe*=fernU`nP0isgst]�honog�a	�'abcdilshbtin�'Ճe�uo�svi{ea��pUNa�e>�isdgni�Nteid}rbnr�7a�'i�rlmo}�sni:'CaWs<eioyn.eglog4Niylogi_yb�c"s:'adegi58l1�no�rsstu:'rae�rr�'-�e�i�lqsfl*huuX�e�'e.arstvaio'lt�'BD-i<lnss�tza+3e	is�tb
�tKil�e�yi�ma2�e	i��b$wthi��p�eiFon�ocvch'
�a�Bi�ns	1s�uhei\�s:'i'�sc
�ai(ssz'�e'�m�ttaie�vj�hG"ac�e�it�uu*laA�ioli<l	)s	)aur�ZiYacmtid��a�e�e'�io��y�x�'eilorsel��e�4i<l�n�al
fe�ie	iydfm�nr<�s�wolkh'_sa�en�'m�li��y�e�ffi	)slect�e�iKos
Ln:'bcdefgilmprstotaB~naeho4�rychei
�d�r�sntric�s
�a�4iermiWcsttronologB�iyrU�oCcy�ae�uy�'s�wti�y
fcenamngineerifY'ObrraphFeL�i�y'�d|fnocgi�y$jc�e�saeogR�n!-tneti]|c�st�eri�yc�e�a&isrphologiycs7|ap$ahoysic@\a�i(slitic
�a(sdg;iei�'�stoto�w��e�Jaen��acptyien�cti�f
�saHtart�Xiate�gnchlr~�oi��naR�ehrcg�xR�g'�serm�a
�io-�p:'ab}ehimorstuvl�nrdtT'��itr,od:'}os	e
iar[dtao	cttrici(ssa*�o�'ap*eis4in�'S9dei�stty�c
Duox�w\
cnal3�th''lnitmoclra�cogi�yc�e�s��ai
oyn�txcg�'manderh'�eY!isht�\w�er�^und�'is�v�Vastu�oaiumlpto�'�s�ein��oculat�e>~ir��a8�e	indheit
'h'-ahst�u�eorich-q��u"�wse�m�ae	iyr'%es:'sCb$ygu�rztramiI[nrztrami�
n��saeio�quM�zns�tzaU']bit�glnvavfeia$
n�e�onrtjkto�'eis�ds	Gn+�s�zble	�llZ�isut	�'-b�e	ilswwri?�ote�Rit�r	�sQ�e5quiy�ek�nrioteit
_r�s'e)}t�lrk��habdefglmnoprstuvzcnuoz:mB�nntlsi�'
ke�iksil�l.�q�beilr�seo�sr�t�eisn^vs)�n!Ds�Au�''dr'si�bngE�le��taltar�'�i<sdeiye<lndr��s�eYg	i:'�olyngau
ftor�#d�'�e	isw�'agos	bcfhnptvw��i-DyGy�xlert?�zot)�tic�s
�ani8xon�n'�solatt�'�s�e	il�sleiy�e4n�l:'}abcdeglmtert�'}ox�shr(�ih'}ae�is�a�s�tam��n��e�'$�aeimsd�rs#�tp#�iaegnxo}mRn�'Hd/�sg��h,�oaonr�t�r,�uh'�S-sbclmpa0lrackh'es�>re}�t�eick�'�rsy�'�e��isy	�'tagkmnose��hirr	�'b�e	im�lsyrean]�a�nv*a= iewigo�'�e'�si7|l�e�Ti}y�'r��mb�e}uP.eurRgcr�tvon�dgio\na��n+�sadilD�otfAUru�fd��oe	i'�lslambboo�'�ff�his�y�e��sh'Z*e�h�i4ossb�e}hm�torn�o'Behssu~�blsiarne��tp�pei	h'-a��bPn�rs��taw��ahbwt�angF''lss}am[�zo
�'�saeiouyP�bcdimnrsuxzeiP�Z*e�issaFeoHs9l�tlogJXiy	h'd�eil�ns�yei�ydnr�sHe	naotor�'&�isl�ai�uiy�eotm�eoWn,�s�vR�mo'�sru�g6i'or�'�e!i�scd?�s
e��i�'eso&u	�rs
e�
is	egnstwdoo5�s�'-b�eDZfh��i�lfzmpwybc|�lmploowL�e��i�w8$lak#e�Riape	�rlol�wouO`s��a*�aor�kton�Bbeg�icoF�mu�DeiFea~naenmn�Us�'�e��ise@�is�'ffs�'�bdefghlnorsvao:'�-l�KmwieAl
�i%yev\ai�YvU'}ah�irumebercm=^h��ioB:w�yie�wb�Ndm	�n�ostl�b<l�n�'mperh'�e>�is.�ssta��ndiN@oe	�nrctzh�'��e�i'�yerh'a�eisyt�ink�gh'C
e�iy
abcmoprstuvwx��ma�t�'ae�iosuli<lUssz	aX�e��m{t	!a�e�i�'-dst|�ltrkIorottFe�i�isla�e�irE*i�l�n7Ga!�hkenspIlieHsrul
�a'�i[umS�p�'<eisy�e<lEnh'Wpi)y6a�efGoi	py�c|es�'1^a�e��io	)ylaF�lta�ilizSaceste��re	i�'d�l�trs�'-��eisw'�y�wi@e�no<nri3nce�ims�otaoTgcsorti!�cFCa-eiW�d�'-d	Ei�rsysnif"f<ll�m�nUs�'aeistmt�ai'�cnhSi)ainu�'��osnGo�e	ion�'�i'os�ycnpeziorio�dn�'ae�ste�'dHs�'Hsl�'i�s
�glp �s'�i�ls< rd[ne�bh_'aG�o�tit�laeo�ph�surn�s�twl�'�eissy�en�eis_�icmswc��heio�'�rlsc	sNntic:'isP|manger^�u'psg�
�'�'-H.abdefgilmnoprstuvw�yab��k��s@�het�uw:'�dlt
�'-��b<eh�ikhlmpst@�k��lmo8�u��aeepFe�~iout:�ho6Rscore	Ei��renSHd�'eh]Cis'�ye�''�d�isY�ejkuZ�c�'btilse	ild�te	ih'd�rseygoEZogo[�o�e�imtac^|kop�p�'-acd*�efh�ilm�opstuwzdfam�ucTneoa_mrrsa�karwfUu��ha
kem�ru��mnZ*eg�1haodLrt��hrsak�keY}oa�.deiyssK�lness�'�e�e!ak�no^o�a)�e�opeed:'<sha �ae�n�ii>Ylbrstbe�l�'isnQgh�Jate,iSJetf:'gh*�ole	ih'-d?r	)sb��e�ojOantg�'s	-)�ereBjo�'�d�s;acdel�fgilon�n�'-�abefimswp�+lCericl�kn�rs	:'de�lnrsoo3@dsr�s�y�ieie[�n.�slds
Rel�Snock+�s�a�6imtwit)�h�;eort:h6�a;y/�t}iot�hI�aioy�ew�bo|�ph'�i�w%�eo��purS�r�lTade�gik$�nouvzowl�aiana�~l�romet�eriycBaEsclroccBaiu�erheoah'slea'l��billѴeasole}o�s�z�'bd<efgl�iklmnpserh'Es�'-��abwIehil�mno(r	)swyfh�#ln\ro\ator-not^�heua)�rmour��ea��t�year*Xt�ce	siy�eX�n�e;i�oil�nl�'�s�'e��a�'b�el�isy��alLaeiy
7�'La�d�s�enSs')sŸaego
woq�w�toal�'disiw+�i+�y
h'i'�yi@eX�n��ae�i�'-bsd�fE�gsstep"ph�eumpsh't��e_'j8h�abdeg��hikmno�prsyacheRvio�aI[mn�'sDcvto4u�'dns}yo'�g�ae	io�'d�orsn':Iis:�zs
�eln�ly�e
ogh�ya:GlahlndiPsUz"pi�k��fhlpsa�e�w��ie#o�laiymer�'s'�yp�'5e	isy�pcehMoth�a
�ebP.o
:'p�aisc:'ai<sl�5ls�z(3e(7i[m

�a�ea��dglI�nrtc2�hle[h	i.�a��btddm"no�'�efs��ua�end�'isse�m�'l�isy�.4aetrnae	imosTbnd�sent�'asl�i�lr�'Q�s[.#e�n_'a
�l�orsu
�s
Ms
�s
aeiouyOS�bcdefhilmnpsts�uvyzh'b\lse|�isyC^cei8:k�'dfls
�i^�ugaeen�o:'l	h'avei,lssu�yӟb�teCTnonc�tm
�eal��n5ti<l�nss-m��tc;mo-r(]oftY'i�ati�o�'eu�i�osam�'}esc=tln:'s�'��eisy�en�eglP�o�'imopsnivP�oa?e9`iylrHst��o�'C�isicali<ln�s�t�z:'�spho{�ni�uan'}sAcadgi�nosstu
�v�d�rh'acdefi<lmn4opsu�m�uhe��i�bsadu�'�dsg(�h�er�sXuather�'�e	i<lslooq��us"�e�iao�'s?tthe�re%;ip�sha�'�rs�otan�d88ne�'m[rso_ut-e
�i�ydliF'oah'�'-c>de��h	ivos%vmainthe�smanshi��pla�eort�i�l�e1Ricpmyt�e!�iehIlnp�'fs)�vruKi�eH�h�'eiosdm�eFicntC'�an�.se�ilogv�i�ylOeu�ipsh'Ra�eY�is�'e�/h�i)�l@
m`Pqrydrso:oeiuh'd��f�rscfns"�tc�uiy*ced�rs�i
�gssit�i�o�yaei��l�ydm��l�e	�'-dlnrs[�ys
tilyg�'	�e	�ilsy<�e	�i�y�e:'I{eit
dd�o�rd�e�zmnta�iyo�yst�ein�
ov	'bei��nsa�ts��e�d�r�s	�ns�h�3oleu�i
a�bcegimn��pstwyste~Qiy�'dp2rsa?r)i	h'-c�e��h<l_�nsaghnu�Xurandcsfmphild�wrotL�haiZr��eeiph��eR�en�coa>�t��i�Lo�cd�k8lnrv@t�'��i�sy�'��-abefghiklm�nop�rsvwwa�Uaeou6Rl(9rt3@t�ls�h�'d�r�si��l��e�n�arocer�'syo�r�u�ef�nsIhee?pae~�iynd�e�'eiAm�rWc�s*t[s'�taeoilh'e	isd�rado��wu_!ncl�ur.kea4cblpt��w}PoeeXvY�io�n%a
�i�e(io�'�t�'atQgo�rritQyaRontT's�	gjlaW�d�fovdta�eiaFenn:'qse�'s
U'b7TliDHl��fOh�ac�efn�Rz?�h'beh	hilmns!%ts�e�d�rsE�t	�ns�h	ayout�hess�'�ecNa
bdeflmn
�opstvzb@l�'d|�e�*ils%ele	i�'�@cdsockh'�e	Eisflgv�'��e�i�s1�ae&i�ofio)�n��t[bnlsh''�e��is
aei<lm�nosy.�cldp*k�i�'sd$�s�en�esg:'�eiKGbh'{cd�gnsh'ei}�sl�rwalX.dng�ls�e&i�'le	ipse&ih'd�r:'ae�Altwi�loful�!v�'l��m-eiy�en�po�'	)st��e��iy6�ezl�ei	)y�5eA�nac	�fg(ikmopstuvwyz��n�txte�'��gc�k�sm�_w��y��emtv�'eY!isd_r��m�e8�eiy�eZliCnlei��n�ul�bgsv�zra-�i	�'`�e	i<lٺm�n
�uen�oe2�ix�otsq�uio�ypAeX�n�'es'�dscnp��s�thh'�eiy�e<l��nd
�'-bcehVfi<[lE�mnswpstF�lquir5Mro-a
�iaru+ieakKein]jg5rlotBh�oug�thkEQmwemeeep[me3�eaote	)r��r�'ei��sw�e>�narK{ee�'l$rrse�ilssd�re	id�nrfaFe&ilns�th'eisn�e�g�T-]�un`�enH�ybdefmn}sy�'bse~Qiyta}kg'�e�ilns�'ilsng.l�sing*�lE�s_�wome<l�n�r�sf��e	Ei<l�nUsb�e�mplle�
i�'isy�e<l�n��degi�t��wa�el�iye�r�5eDJrp��hnew��acammh�t
�a�eabcdefgijlmnoprstuvyz	cdlmnrt�vyam��oaelacquja�ra��nuij�v#�plou��pla$�t�'anK�igi-otzbha�n�Sanar�madnnitx'/�sq�eiFoy��e�'�i�'e�hir]�sd'�e�r'anXn��a_�o!Wiaema/�lmalao'6naq��uernato|�r3Ccgeon�'|�elnrsv{pt-ehinrll?aseyU'cs}aeisrlla�'ssth'Ra*e	it�wimaN�t�'b�e;{hi�PrsoomnaC�ta	�rf�'�5a�sgenh]�e
�W'adlnsty�zb�nae	i�oNb�nh'atbd)�l�~p�rsdelt�'Fe��ffvhs�'flyut�less<lGnaeou;mm�Sr�o�zt�'��il�syeHsenav
�'-�nsbissaQ�u_�ee�s��ea�r`�aarrat:'�ianw�aa�c�{d�fxcgleTp�gr��g�'��aeis��yd�t>y�b^[enKv	�'b${dem�pst+�a*�eoh'
ioss<�trac
h�eiy�eneghioe!�l=�e��r�'?�bcdfgkmnprstwyottae�yg(�rq�arx�sig�rh�.tsesy�'V�i�s�y�ae�nta�l'aeiy�vrdl�trlba�'sseng/�'�'�Zsoiwn?�t�edun��nh�hilmti�oa�pings`e�i�i�o�eKh8:aaHhf`�e�pPtd�
gk�ln�uw��ahao':Glv2a��e:'hsth'*eiy�enV2ge��i��y�Tt�'a�ei�osy`�f�tv�'�o�u�e<l�Ln�'ehilstnber�ag��rerr%�eess�niy�e�nae��iusy-pe�rdr�'�eu�is��nraQ	lgu yimidhi�rnss�o	�'a1e	i
rsv��ne��rmHzaeylni�a4ogvjn:'d�#tol=i;yang*i:'e��d#�tbmnprveZ�il'nd�s�'knk�psh_6aaosi�ta�u.�sl��iaeoercologiyc�e�sa>lyHccologi_yc"s8Va�ceA[ch'ps}�e	ii�^t�u��y�ejtafot�e�io�:ralch'cmpsomMepagn�eilqal>a
cop�e;�i{+e�io�idt'�eeb�%ont�h
'.abdefghimop�qrstuwy�z�sm<s26�4�5'�-abcdefghijklmnprstuvwyzp<s'eo�+rn'n�gs:'taeikk$ uar:'das�rh�bltgi�'-a<e	isufor"mb�ntni!al�'ison�'/asa�e��?�lRtik*�eh'a�Ibeilnstwhbt1�hdro�t�'shpn��sgC'se	i�'drse�Tyar�wivis'�mito[�r	adejdLl'�nrs�9m}rH�aToCaP|s�'!i�iyo?�p�tm�'ao�stio%un
BtcF�glAm�rogiyc�e�sBadglprsiyablnaDmlobyi!�yhtilia�c'�cs�yrhaog��eic	nid'Basta��s!�t%�in�tFe.i
�'s	ae.�fgils#�ul�n�rs��tai'Ul�i1mrs�'�ehogK�lraph}aFe�i�y��en�'d�vioA�rd�fK�klprt�a,�e�'�eisnto�n�rźh�'-bcd�egjil*7npsydrstrS9iL�ya��i {lplit�/tr��iar
lk�ne.�ua�dQa��lut�'s"t�oreSHys��s�
r�Jei+k�ni#�e�nbptrea��dlritl�ta>�iy�syl�ei	n�si�'a �nj�'�e�ia�ekl�'te�vru�y�'a�dbcdefilmostv[�ylh'Y�lsy=a	:'ad�#n�rAnsty�k
�'-bhm�nptwabcdefhilm!�pstwynrd-h6�aCsaR�elr�c:ko{�uxoeo��et?haer�uGssntu��roywY�eup��la�wt��ainiҮsaeo��rau(rur�ls8n��eif�g�va	or�satwhe��iotas-oS9vverei	g9eei��or�rm\gb
�eY�aOtuaivyttedE�l�#nea�r�Uaru�eearOt�(oen+cn�iy�'w<�oi'o0m<ai�Jot�'steI�db
Bdfntu�tp�aeos�e�i�'-eimosu"�wst�CaltyuWfjb}eur
,tar�_k<e	iosw�'�isse	isd �eta�tcinaot�eIi	ogen�'�_isX.a�'eg	insdsen�'�asa�':'8etwe$�azve�'er�ix�osdr�'-e	ins�5nd'�se�cae	i'�hd�r
os�'abehilmps�l}nluNJerg�'Fe�srHssley rang�e`�ul#�sFt2c}lton�'��ie�i)�tae�iouyrskj��oqn�dr�ot�'eE�h�Hilst�eTomO�t@�i�o�c��nra Ibd��es�UtWte�~htecat;uFeri	ung�'	is

U'cd8egkmnostu��o�'-4abceDZfghiklmop��rswyhmptwee-do
�wa��ii3�no-��hmoi�uov�eafxiavorg
lrs�':Tgsro{w1iaO`kalrurh'ss�tap�s"$p'�saft
h'�e�issffC'�e	i
osdtl�r'lness�'�e��r�ueko��lc�e<lnf�wa�wrp�'�6ps�egerchi�4eei�'fa7�bd�r�s[yf�n
�sa+did�'�es�uve:�ricZ%k(a�ehop)�take�Hi�'�rsme<l�nr�sٜi��ror7�rv~�eit
�e�ik�t:'�m
h'-adei�m��nosu��zg�Iulide	i�rhbr�r��odr�'	-�s�'>�n�uv}lph')s�'eisyr�'�e>�ise''s�'-pan�k�leai�'7�ht�b7�iver:'�i:'aeo��r�l7�n�m�n
=ak<a�kh'hlpsazar?�d�eosyi�Wtdh's'�ye�yiyn�e>�istan0c-go-lu�9c�obabcdegiklmnoprstvwAz-��ln�rsk��ig��us*e	i'mhioajWtan�'gru�'	�e	�im�sas�tr	�'E~at:e	�i�lm�s��vastveoS�u-bcehil�nF�pstw
mybcdehln	opswiot�t�io��drone-�bav�rekIiadu(rdu,eIrin��eo:s�are�Zshe/lio+�r�raio�cl_ltk�tad�u:�ri'�yZ;eo+rSHvcnm�r�sanh�ueo�is"aeaOd�.r��ep�h<ln��s:'�e�giySHnchtra+�b��e�i�\a=ba�oa82io7ror~�d�k�'bdl�msfxera-iip�'*Xpsrae�vaw�vcni�ogKGebte	isdns�aeo�mqyuG�i�'-�sdavidsoQ�nypt�w�'�eF�f	i�losn�'i�yc�e�o$ms�u�7zh'a�.s�'
�lses5sl�'eios��ydn�r�Jd�er,n�s�oichor�d��eio�euy��C�de_�gnsd�rst:'}t%vg'�tU'CbonU'�db�dg�wate['�'	ihe<l�nnr�s%e	i	�'}efl�mAos��oe=ip[yoo�vl��aes7�yt�'e	i$ms��ei�
o�c
}Pbhik'�n�pst�Zw�'	leitA�n]�s�adi}m�s��eiYnib�lTo�deiy�'d>ns�e<ln�eg7�s
�'bce��fh	i�lp��rstaok�n{]xhh'�Zbe�i=�l"�wcdrsr�tkh')s'�i�y�'dF�fm�rson��ga�7wxihte�hpan[odeidr�'�as�aenbglnprst�e�eh��th')�aeis��en��cth'��er�istmanQn:�a}adeor
�f�	re�Quae	ion-sra�tU'<sh'-lnrs��n:'oc�vk'sst��isTacU"l�'Y�ks
�'ae	ikǫl��stii�'N�a�adjr�'ei|�ls'd�rnsgtsa�'h�dn�~hhorn�'�es�'{@cdef	ilm"�nrsw�etndRk�r�sie��l�yoa(o�k�ni�c0d:'��e�Ztaio1i��rre�'	�s��ortRhaeilmyrd�'�e	iGos�'dl'�rs�'�b?ns�e<ln�egSs')s_!ei'ot�a�o��dmqst;i�rlBr�v'abcdefg�hilmnprstu6�vwxyzd�l�sdl�prtv�'-abcdefghilmnpqrstwyh	ount�Ee	isY�cgaoun'�y�dgeir
['�sY�arouTgt5taho�m2�se��eu?n
ird�r�l0nir�s�\ezyuunt
e��isssd_r�e<lnfeg�':lsaeio��mmnslsigne	i�'d_rs�cna�ei�nster�'Zlships�Uto��t�hi#�e�nuarter
�ei	)s�a�eP�oc�eh�mtar�f[�v�iri�naor
lmnEZc�n	oeacheN�ra)�iY�o�1iXlt-ye�re	istd�r�sh�'cff��ip�sy$;abadFe>�ik�kst_�a�e�t�'-HAabefhilrstw	)yrstwenV�deap�ro��-�#a�terue��oak�'Ke&isrn�'�Xisu.d�fne�l�'r}�sg�u)�a�eendinglEyitck�n�rhrboaor�m:�o�r
�'-faZ�eh�Qi�!pswresi"s	�'ceklv�rsotnr�'dis8�os�h-m�'sy%iandstro�ka��veiyC'dn�r
os�'-l	)sw4�siy�enH�ae<ll�nsrAns-tha�n��ih'-�DhӬsa�wdhuWiaer:'�rst }uaeA�ii�c��s<�waktutReombh'lj�mleY!iaH(ior�@a�e�zglmoTri St)�ePbg�Wloe>6i�'dhrso�gp1�ps�'(osniu�sdhl}p�'k
ef	i�lsula	�w�'�efu�ihls��lI[n��tei�Mlmon�0i�yr^(adfgmnrseftiglI[gbCee��le�r+th-th�o�'-'eshHo�{leO�l�oN�r�z:'*=k�'
ke_�lsem��t�ndegilmopstvn�'6atQes
�)v-cegop
Du�xsk�fi
�ameonp�'te!rro�%lcgpstent;�rraph�iy��o:'p�(hrop�e-�ik�a�o
�'-b[!ce�Rhimosu,�y4�b�cfhro�i*
oaiS9si4ebn�rs>�o�ei�cszf�a(3e(7i �mtY'?�i[sae(7i�bt:'[d[sp�moHho�s�'|�e	iss�v�'eh	ig�so�udt�'�e	EisoP�li�vmts�0eh'�@a�iZrsh'eff>�ilms�ei��n
ae1ein3Cker-skel�le�'sti&�a�u
�'a_eil�6mops�ltw�iologi_yec"scdmnshyordat�a�e3@clino�demisemiqu�Raetabol�iyog90wpher	@ei\$c�iTogprslop�bhiliah'�crhaog{+eisc�nw�i[!t�'�ehs�itit�c�'EVbcd�gOblnprs:tehfor	tw:'�merr�Usic�xk
U's:'x�o�aessW�e}yek{ciy�'eRkt�t��'c�l;oh_^eabhpt��rtio�cti�ds�'Fecmpe�y
�lae'�s�tgNaancre[au;�rae�s�elew�hag�nt4�oh$ylh'abcdegimnoprst>�vz
U'c�-kll�eit:?ud�'�eJ�i�rs�'aeisy�8crglriss�m�t
�i}trtU'�o\
ci@evor�e?3oulaene��ua�sb;n�'�Ce	i]�s
�'a<bdfior�stu��wbf�to�;u�^tita�i�y&ymriy��aZlX�nord�'s�hnaffsnaiounjg4�c$9fn!4pS9d�tenr�t,�hbote�rtF'-wa}ta[�o
b�gaeionp:'nY'sb�Ouhrodit�eiauc�6sn�s$�teu��t�nt�',�a}e��iss[ai��laeindq�ea�'ls yt�'d�ei�n�'ostM�cn�s�'�e�sest�'@|v�ioU�f�l:'�eiBycng�'bsx�to}nceh�th�'l}ye�l7�yfzord�s�'�'osp�Jre}logov�i�ghi��pstvaotantc9t��e�i�yE�e�ic�o:'}eian:'[sMe;oetro
'cdfgP�mnpsz��yo�y�xle[�xYBaene�iGooyrmay	tm�iyoh�(tob�e2bi
eo��ptxdiual�'ri<lsc~kiructQu��yC3ion-le-ho6yllr-esan2Kdistic�'
�a	)sei�klnosdc�r�/tn$OtX�er�th'aU�e	i�tcdfg	emnpshlori
decimal'lsl&�u�oH�rloiS�dt3@y"�deAOf��swrda*�hI�obeolla�hkS�i�'G�c:'�tMv"�ws-abcdegjklmnprstv$�yfi�ri�s��h�fltwS�e�	aabeic�oh$�arn
Saia:'�nscckouughZ*e�iss�ph'e$mo
msyh's}k�rk�de>�i
h'-��aH�bsdo�rsyand-seY�eus�tsd	irsaor!�tcL�hgnlyphh'iscC'�a
osy2�maghbtshiosa�kil&=nedy-piggl��eh'-:+abcefgh�iln��prstw�sbӋcefghijul��mopqrsner�gallutFu��lL�is"os*ynraentu*d�enc"Yo7uct�a.auior\gweoss��uf�iu
aaei�nsol	usekeopt�c��u:eirite�8derpq�pҶe	u��ao&ru'~r�y&�rhaSJir�s-ssle3 vailut�ield�s
�aKaaiynd�'e-m�s�r�dgess�'e�Yo
a!�iasyackh'eVfisdr�'s'leY!iuran?�gabdfltri�yo�t:'�uerg�t}aeb
r��i�'��abc*�egimTosb�twyilAalrT5ero�vca�e��noerb�=d%�i�torou�fgalk8�e	Eis�e�'<e	i�osh'a��mslaya:'Wn�se�'lacd�egkst�oyhkinbrook�eǫlh'be�iIlm��q��rsu=�wr!�a��m�nr�'�e	isp�i�'issm:'$�stan�'�ib�e	issley�=d�'e	i;�osdr�')�ls�'bh�#l�dnps�,a�oug�gCZa�@eio�yeA�n�'rst�'cdglpsarmS4pat�e?�i�rr��iK�y�yotamtaeCRios&�g�mh'-d��l�rspurch"Hab�hsu ImhiY'�m#�cutzepstani�c�o�'	leir,naW�iorm��ic�zglrhemi��cst�$rogi�y?c�e�si�y�ac�eowEaisttmtgraphFei�ycealZlio�n	�'-achlstand-m�'r�ic�hhh'-c*eh	i_�mhiPkoc7�ki�kerto-un�users�'iWsCa�sX`t�aFein:�t_'-8�e	inpegati6yvos�imos_'P0no^='-abcdefghiklmnoprstuvwyh�6ugrtx0i�'df�Disy�'c�e>�isro+se<lnr�seHd�sz�'*e	i	�'$Mabegnosei'Ul�sy�d�s�e	n2t�'-h�iho�roϴrs�ro�	baoi�Tlb1�bsh'�kss�oku�'e�i�n]�ssdys-poBjc�'gse_kb3'pP|s�Uo�'l{cd	i�rsoHhwfs�'}a:mta6�d	�'a�ZbgH�nstwnrx'�stQh�;a�e�WiE�hi�y�ea��e�vr^vse�honlszo\hta��uolle�r$kc�wst5ky-toeikousdssy-cok'e�'�_a�e�ntijkaqiwhVli_m��sbcdeilmos�tyzerc;i�ko�ool�m
h'�T-abe>�i�os]�uhb��l��a�n)�r�w�'fadsydensay�'�e	imsa��kr��s-than-tho'�uegss�'e�mt%�i'�saeioynd�'~�ae<s(;rr}y
h'ei�rssJd�n�tt�es:'�
tw
h'��-8a�xe	i<l�nswo�a�'f{@hwordOAoY'�ab�e.icg�Wta�eu�_sra�mph�'%eis�yc�e	Gnt:'e �i�rhose��a
�a;ktone�i''�ds�mabeiouge�'r�s0ru>�r�'-bcdglmoprstwybc�!glmos�Zaruew'<esils*do��oo"$vadl4kwne	ir'�uschho�no�oou�d�yiX�ylf~dto��mr�o)�aeiyssh'�n�e+k�na)}dl�kbmpstw��oorphi��sath
h'i�sycFe7s
La
C'tas�stis��'herahm��nag:�e�'Z*ei�osbt�c�ncipthoo[lc�ueral�d�eow�naorrd-s!brk�'�eiec��kh'Gn)sc�elni.d�ue�i�ye
ogmioyss�'k�iC'�'eglmnprstzor�bpstathisyc�etas!�t�eis��'herm7|a!�i�ypoaer�mn �aei�i,$o	s�za
�f�pogi�o�uyA{ceorph�'iBjo�y
�cYfsym�'�iyos'�yho3@iobnR�ei
�ac�eyl
�aym#eg
�ae��oxual�'i�ls
�sttopL�i�yygo�(uncuBjl
h'[.acde/�gikosp:k��hta[oura�n7�s�'cdg�rsy��kte�i<l�y�r�s�';�b�cdeg�ilm�pstwl,ad �uocus��t�nouckKe�lEFru�e��oanb�r�'e^~is_ylruu��l�'aei�sbrle�y��niye"�l�u�d�e�rf	�niPcr�'ae	�i�sble�i�y'nsessl'�d`�e�r~$h
-cd_�efkl�Enprstv�hֿh
�'ei9@l_�osw'�yld�enin>k�'e	imsdD�rar�k
�'-�ae	is�u/
w_y�Xnu#QptT'd)�rigan�'e	i�lsd��ra�yei�ge �r�'ce	is!hdnranAan�'
mser
os�'�e	i�s�'eikps
�'df�lrst��wulh'<l�nsP�o:'n<sinsU'vidSl�Ce	i��lc4ootch�'_�e�i
a~�deٺgimnorst:?uwh'csst7�eiiCatQo�u�Xhaz�cton�'s�=teou��l.nQz�'beil��ps�}thuye�ilO�o�ya�meo35nwerU':'ld^r�t�enegRoe;&i'lswogFei�y\$c�e�s32chP�ienjueion'db�dfley�nUsi�=y
�c�ecr
k�'-sstr��iY�ue��h&�i[tHy�'-bdfhl��mprstw�yb�cdrtreaS9korcY�ts"a�a"4ra:Ieoc	)kx
e%�ole�i�y~s3Zai=ndaRoeA�i�yu!�gloa	)y�Owa.�dh�eiq�o�Zt��ar�ah�o��i�a�hi��orcultura-e�ili�ies�e��iaeikptnnah'%e'�h	Eis�'�adpsi��pen�trinX.ghiolip��a�cta�bl�'is
�s�tf�z�'�aeil�sdls�'��e�il�rse	i�d�r��slneeit.i�yQ�e�y-bcefhkl�np��rst�abhs\atl�ioeadedE�lwappy.a�e�ime�l`�oah
dkpot8�cl�'i$mso	�o��a�Teo�ueByiyn7s5`ek
�i�sYBlo�miD�th'h!�p6Roei'�ydn[jr�stoYtoendghnrsyintQih'ton-le-sprinQ�g?�ods�'J�eu�isl�?o�'p�g�i_!lse>�imNt�'-bcdfhklmprsb�twhmptwui�ns��b��oalrwr�Xao<uor;q-a��iarmlioru�a�u�yer�oakFe�isil�dl�toean�e�disa�l
ut
�h��ous��beepFeY!iigh]ta�eiomi�n��s@tstresshethe]jralri�rl,n�aoZ*uo�foaior��em�if�v�berk�'#Me�shnh�neh'�lrc�e	israH�fane�s'abdeilrsat'�drsv1�re�i�asy:'l�svltT'}se&ctz�'e	i?osa<hoev�'d�l�ten�'%eis	Gn	s_';v.�hosth2g.w�btm<stl
�W'p'�sabcdefg�hijklmnorstxyzq�nrac0h�'-bce&�rsėc�a�i�lu�y[bba��pr�'�tk:'ls��eter�'�eisn%�s_'d�Use'�lrsfielqd�'�d,lrs�yf�'�e�ci$msyh'egh�osu<l�nr�s+eing�s:'e;iv�n7�senB�o:'tzilopotc?�hr�akl�'<e	is
�'aeu�iosba�l�'%e	Ei�s
h'abdeimops�uN�vn	h'eik<l�nvos<l�n�r�sst�7z
�a	e	i-m"�tNDa.i�yi:�nelo8kurInst}oe�iyd�nPrAnsl�od�iru�m:'r�ai�udli<lFofstti	pyc*ea�tty�ai�a�tfaeiohud�l)�rngbY�ick�'%e	Eisynru�g�'Laeil�o�s�dsqu0*e	�ns��tessWl��nr�'e	�il�sd�r�less�lness��'�e	�'b�eh	istHyac9�kZ*e�ir�sey�'H�sy do�o:'cdgksth�'��b�e	ired�'��fsWhta�w:'aeo��rri7�y�]ar�'�e��f	isve�r�'�eisy��epeIUl�'eil
irsdr�'-s�)vgatheL�rng�'d�s
,tok�n8e�y�mg�v�ndl�or�ostulvegIih'e�isyd�rty-b�!uaiyh
�yh'�eiss|�ce�d�rsh'�ih'+e4'f>6i lsn?�u:'bjhkstand�'J�e	i�l��m�rs�'eis	)y�5e<l]'ns�saei�yWti�r�i*�r�e\ti'Ul�on�g�'cst�uh�'^[einx�sgs�o'e	i;odriX`t8lg�eza��hy�labd_6eg!ikmoprsuXwcXde.lo�t&`i�nrid�'isߘsZt
�zer�'�nrab��aa��io	�'lns�:tu�Bz�`aW�g�tlM�i�'bcdefg!�ilmpst�ux�i�iaehọuphali�uGy'�celmi��soric�d�Cdlr!�ltiSsynamic7|a(slectric
�ariloruor!�iocar1�b
ir"$mact�zuer�ln�'a�oteUi'dsaphe�i'�yr
F'Hsoygi�yc�e�sJ�a%�s�z�xaecthani	�cFeri�yHc�eeh?lҍoro
�xiol!�iyo'�yb�ni-ac�ipth*�e��aheraWm�p%�iyalp�Bzpa2Kt'as!s�tr�Xoireneic�s
�a�so	emsco!�pe�hx�aenn�'7�es	�'�-a��b�eios�lJ�r�cndgl �iyraph8�e�yog4NiyscFAyeh	ino�'drsabce�fgiklm
oprstvceit!Ddive�iZl�smsiacthe`�s!�tol�a-eiocal�lid'7|aseorullularrrecti;�iT�bxtenRYd�salmo�yu>�sycaeemiacm&=in�of!.le�ir�ain��kaenur�-kdt�i#�re�staNb�tahilrastit�e-�ihyroiu�dF�agme�anaZ�nsAieaclt7XiisZt'�m{Vteopnsitivze�im!�nn�io9lah�_ce
rehrn+xsi�o��vey2Crroidh'#iophi)y'�c�eent�ien�'a�e	ist
e�iKoL�io&Wsthierapi�yei�s9;cs z
�e	i-m�t
�'-acd%eg	Eipstxallergeni	�c6lcllerge<-naehryCullulaKrondN�ri�suGtcloiQFder9Vm^�alycaeemi�a0�cmi_a�chy��stNy,5aehns�ui�ovae�pylami�u
�crs;�tmLai-a'�c�eis<z�'	e	iae�Niem\/iFSm@�a�sterei=csmi-ac�'�a'Oi	)sndHYaloiW�s"'-.1'�3'�5'�7abcdefgijklmnopqrstuvwxyz�dl�m;s�-v�lbcmeXXahCu
�oG�e�8	cgx�imn^ptc$�ob�'is�u
fc�'h�zrog0�e	aei1lh�m��or�sudn�sh\r�xd�sz�ea:'�nJapro
�f
ab�Qcehi<vkMmot�uy;hn~r6�nDm�'-b$�cdH�f�Ghl�m$�npsOHcska�tՌeor�a�u�x�eand�'q�e?�iY�a@�inteu�mhyo�lpirsha�gaur'�s[u8:c�e<l�nns�'
�ioscgllȯaraph��i�yraQXoa7�ho�uriani�s
'aeilosy��di�sn�g�'ho:'C�a:e<s
amno	)s�'lst�'i<lossQ�z
�a	e	i-m%�t7vgei'�ds�n�opoten��c�ttiwCcfk�ti	py"�a*ced2rs?(iglra�mp��hog��i
du�yo�clmpste��c�'asti@�catrhyncra�s*�t�'%�isTSye	iyh'd�n�rAns
cl�'-a�isworshiS�ptFerppe�i�o�y�
ll�'is
�c�s&�e
�cdes&�y�et�yh'fs~�i>�ly�lnMoua�eio��c�]ttRae�id�}rs�bmrini�y�e'oaJe	i�bmn�ct<l�[n�san&�s�ao1�dir
�csselmI[eVQbeh�'��an��a
aefiklm-Buy:'c�mnhin:Esg-il�aai\n
Dui�tti �dra��ca
Duc �dh'�lssh'-ei
inosu�yabcdefghijmopstdsv�Zisoe:rh��aoncse��ii\gdeifs�Xpq~EuakIio:tv�	oWiuo��tu��mnfor:m�Uuanut\gnmv�ereop��aportio�nh��mtua�pa\ir�i\cereat<e4�mgailh'�i<l�s�btima�cte	id<lsbcmnqteral�zi<l��iitab!alois:'C�a)Huera�c�tgic'�\a�smsD�eina�egiTbnt�c�t�ei
:'�n�ovn7�sioto
@vn�'g�a�ism�rraBGit�e�iFoe?�nus�habe�efhimnop�u�cg�m
�pei{�o�'-d�nrs��m�i'�s�y�venaJeg��ib�lrtli�eyiyeni�ovaeir uland5ccil�eic�tbein�tJ�io"ugEFln�lo'�ttaTbt�eiFon�o�vaeioucntulat��ee?�unc9t?e�i?�yeuriali<l=�n7�tr�e�iadmnrsur��aia��c
Lto9Jrse�i<ln�rssm�ei-bn�o
vg)hnsrac�ibdNlrvileisttz�a	e	idae	id2rser0Usat�e�iatli<lfs�talh'˺i<lsa��ebnileynsn r(�t>�eios�tf�za
�e	itio+�n
abcdghlrstssa�ylo\�tomperz�tom�ieficieny�c�telnQ_eobulsiistochempiogi�yc�e�s@\ae5aour�bppress
�a�ePiP�h�+osho
dg�l��i=e�'ae�hilorsucilnrstt�'�ecfi#Mosnyojvr�e	i�ms[ba/|e	i!�pel	�e	�i:Tl'st�a�eis��ans��ta�eibi�lli��tbov�1iley�#nn�e	is�eriien�c�s9tacdlnrtcha*e	i�mb�i+lcuabill�zi>�ey��naJeimnent�'	)as�6lsdeitra�bten�cr�t	acfimstvt�iorrJii�c'�xeipvfati�b
vecth'aUEi<l�n)sb
iak�l�oslh'%�i<lshab)laeinen�cvMtab�ci�lssRional�t�i<liunen�c�trb�aUiiugoo�s�susxi<l�n�en�o��sg~e	iaeio	py�cnuth'a�e	is!?b�tsibi�llitB�i�yment�'aa3e	isP�bBtcU(eaiJ�nt�ein�ove�l�n�t drs�e�ii�o��vlnrstuvitei<ln
Bcderab!Bil�Ge'�yth'ae	isuTb�nBtna	,eite<ln�sn�t�aeist�nBtib�iley�n�s�'e	Ei�Wosu�d�nrenc��te�i	)ynd�e	iiZmserisaMhaeioucticabG$l�i�lcgs�ais�e��inabRtnilleyas�tEFrh'	leiwmbno
Lv�ci+ln�'aȯis�+bmnsa*�tt�'eu�is+obmpvab�i�Tlpt
fuer�ri�ea�Peible�#n'Ndnszae	itig�o�o�e	Ei(Qd(Qdgl�nrtn%�ae	iwmss�ei!n�ouvP�e�i%Ma�e	i�'-abcdefghijklmnopqrstuvw
b�cdf;shjl�pstetwV�eei�p"&lo{�ka�i
�we��tr�4vra
�y
:'bcdlmnprstu�icteuss�ira�c�ti�ova9erit�ein~�oaemv5pqua�cte<lnUsess�'eissi�beir'Ntsaebi+lli�9t
�ditenab�1i�lerab�ile�noratc�aegi<l�nr��sa٭hm�ta.�tp�taelrren
�ta��sic>Haeocia�btive'l�napch+�aria
Ltgtulaic�sulahb<cte<lYnmu	cteB�ndgst�iura
fl�tpici,$ohenticxiorua�r�u{]xrPdeadetChda|is�~i[.aehilorssu:'lnpr�sucul�badtesce�i'�d�n'�sΪa<e	iabcnileyn	�sitka�i�ycne�ra]	d�t�dtsdnprsT�d?stiv�ei��s��zt<ei+os	n�ovt"�i_�st�'�suo��u�'�e	io/
waQntei�d�s	Gn�odnprst�>ven�ct�'8eaZls�esgie�tnc9te �iyNc�eO
iFoaVe	itio	�neiumentc�tn@aOeu�i9o dpseghmnr��rni!terenc9teybe��impust@Bi�'2rseounsurab�t!Bil5`e'�yd�ein�uon��ticaTb�daelrurtn�aib�il
feytenc�te�i	)yeteio;�nehsensi(�b~�os�itLacdfgstveli�vuQ�se�normE*irue�i�on]�c�teioptquenti�lal�i<l,ndserabtN�l=�e	%iten�c9t�lnV~aicP�uae�irs�!tovertB�ienrien?c9t�tprora��e�bteUi�dseiuctfa<lYng�iptibonil�eyn�'�seiuadms�aOer�i�iul�i'oent�'a�e	isl8�ti<ls�m�tmij�ns*tblmnra'�i�+ut�e
,iSToNcpa){b tben�c
ftabulau	)ma�i1�rsS�vb�Dli
[.eioruw�ybc�eflmnpstxted_�neion�ct8�e<lp�@sherRamrp�oob�uaeitigab�Tlacn�stib�i�sn��aite<l�nsi�bca�c>tnoi3"f�tnst�+rth'@a�eUis��uendenc8gte�'sctribabley�n�sruct�ierminai�b�ct�eSismtF'�i�'-a*e	ili<
nhb$wt
acefgrst
Duv�'n�'a]bi�s�'�np�oame'�itnt�t�eiFon�ov8geRa�e	i�ms
s
:'fe'Nren-ons�c�uo8gttiTb�opSa�iQaect%ei<l�nUs	Gn�ocpsteirr�npline�'�dei<�et'�eiminat�eiEn�voeounsabnileyh'�nss1�ei	nBt�tocl�iub�i�lin�cguis�he	i�dsidsualRt�'i<lss�tz
�a	e�}i-m%�t
�a	,e>6iib�i�l-c(Qlmn�o\reurop4�ehtin�ai�eriN�n�ies��iai:'	wli�bcl5[rsVeitaei#osd�en�ov�eis'�m�tge	id_nrs:'tri�ya�e�oli<ls��s
�zelr�ltbdflpqrsvx}zl�rRiu�cfaei�b��cctT�iu�acaici�yeouωsen�c�taeiou]vslfggib�i��lq��uc!�tti<l�ni{tu�aitvB�a�i�yal7eartdicabl�eHya��b�ni<l�nUsa�'6ls:'csta!�penw9timablIeyitab�ileyh'�nachoptcti<lm1ntuZ�du�saustib!Bi�lrabi�Tllit\�ye�ilrdnrienc�t6be�i�ys�eQ�iitence�'y.ad�r�'<l
nic��ait�l�nUsessibv>Mi)le�l�neirn��snguis�hi!�caeilorulmn�rtl'�i�i'o�y7�ct�'i��rsc+l%�i�uaclrssib
ile�yt�ei�osn�9ovicit�io�y�aein1�rstnc��te	Ei�'�rsor�'�i�ls�a�oi!�lt@a�e	isd��eglnrxel�'�ish��tlt�'Z*e	issra@Jtiteiu�yh'<l
nsi�=m�e\vrdmma�i�lr
�e�i�y'e�i'�dsaeioumt�e	imabt�ci�laE�eIic�obl'�ecxt�eisn�ov�ei�byoctJ�ei_{osn�o)}vr�;wesce�<ne�xn.�c9Jt�z
h'glmnr�st
�wrap!-h�dae�ndrx3i�c�_amae	iss4l�nti�oco�kvn�'@\a�saP�ei,�naei-cors�>rlBtass
[e��re0�dotrnructu\rquenG�c9tnge	id�m�rsrsiat�ej�ieibn�o	[l
_'ae��hlor�u�t\gh:'nrsP�iu�e�i�os��ot�eis�bn�ove�ioatn�swood'r�2i	i�taeH=ioi�mtnh'e	is6d�eia"�tt�ei�n�o�ds:'s�'�e�iw	in��tn{�uaeioublrita�e	is!?bn�tc�t�eHyae	i6Rntior
�'ssmoniou�7sreid_�nsnta�e	iFors�lb#�n�}ei �c�xbiteIiKosdxrlmsdin�gogeneiBjo�Ttpita`>b>Olman"�e�i<l�#nmqti�c�tui�Btial!�nth'	�eil�ns	�ns�z
�a+3e	i�meiy�d�rnݷg
eiKon�o�veucta�eIiFosb��ldnrDssi�cc�etUEiei�y�en�uo�'be�Th��ik�j��l��s�-wy�Ke>�ldr'B:msa�ei5y�is�n��yT:e)}n
a�o	�'aei�zkosumr�tin-Bc
k0drs-msNvco�s��opZrnsst��gfe�acmveP�un�ct�'�e<ls%9iat�eiKon�ovt�ebruc�kemndo�'�le	EiserabS$c?�ti�l�Blcf&�npro�ufe�6nepraTbtivi�eort͔udgina�ta*�nau�tt�'ste	i)du�eioerstu��de\�i�yitioo
Lvn�'@\asr�'��isra-t�'iE�oush�'�e	i
.ace$9hioptuwlntubrrei<l�#nsr�st	a�i�y�iriuUbpti�o!vtab�iwl<nacmnprttu�'aisri'�y[ehu\
clvor�e�oH�r3�istai
@t�btiv9e�i�xiarabni�Dlth'La�e�ish'sZtdgnpseP�iSs'�-�rshnt�'+�fs!ei-afilfccue�Erat�eiFo(n�o-vid�i<l+�nteisd'RnnvMgb�sflmuri�eeuv�'nsrc��tb�i)lRaen�c��tn�Fuia�'
fcsci�aeict�e�iosr�'
aДsr�aei�'drs(nt['�e	isaeir�>bglmn0*r1�t$rl�mUsae	i�ms�bnBtaFt?ct	�'aHjbei<l�nsn�2eat�einyo�a�p��glntl4�ms�a�e	issct�'is&�u�vutei]�oD'd{r
osnovn�'asli<ls
�z
�a
�e	im�tucmt�eiFosn�o�vent�'a�e!isl�th'i<ls�s�tbflprsosrdinate��i�d�lstan9Jtfei!�rcia~�ia�tr
Ut�i�l	�seprabi�llit �i'�yo�fraeg	imrb#�n�i+lPd�rsen�c�tou�=nection�'ta�isceptibi+ll�iin�fgaeiorucg�kn��r	�tli)�ar�ogib�il�eyglmnrsFerua�ib�l��ntt*il�ei�ono+vn�'�isment�'as'�lZr�'lseict�'sualh'i<lnss�t z
�e	i-m�tge(�incte�'xrs<l�s�oapera�nte<lness	�'�edstyae	isd�rh''l�n)sei<l�{n�r�sQ5fo�t�v�nh'i<l�nson�'a<esli<l�s�t-abcdefgijlmnopqrstuvwacmpugl�5e�'lE�loA{dersoA{nrF�bcrt}�xt�a�eisnovn�'Ladis"�e�iN:to�m<Paerd�deder�daehiӍlorulsaZrt
�e'i�ejtd
�lnpse	id��rs7zsth'�ej�iFossiKoanger]ih'adrsb��i�lsqst�y	hlmnorsuorlouegia+tHnmn
�a7Pi�'msuniNc�oZtntvecteis$0dn�ovine39ner�sl��erelat0�e1�italZl'�s*orops
R�p'�ss[e�il=ttural
�ieinpotminatioosnaGlaertmen��tndenc9t-e�iycgv7mst�'�e1Ris^�icip�lst�'#�e�
isaeicimb�eo�i��ire&iodn�rs��mn lZ7xaelorlapcneration�'J�aa��cvernmeo�nZ`eo�uw'�nЅt
�mnosdeu�xs�t�rlan�^dect�e�\isaeiou cn
ryg�>uer	Ei'�sau2�vk
�ibnrg�aeg>�ikoJadsua'�l�@a�e	is_�bcUp�kutKo~�daeiorri	py�a�edm�nҮstzUPdia�u�rtei�'d<lns	no�|n&�baPwrCl8@znstx��a`+gt_�e��e	idx<lula�etC�eki	h'aei'm �os5>ult6i<lsionalh'}ei<ls��s�tz{a�e	i9pcd�egtu��aYk'<swo��rrLaonLa�e'�snsg�t~)hcfp�AeH�uf;�iera�b,Utehlornretrateisds�nom�nso��nan�7ye�\tls�'a'�rtfa�eIiJe�ieotaeiwIosb�Ytill�Qincvcess8�ouar�t|�ae	ioudgli9@noWnaitei�bdsno�n�ggat�e�ior�'�is	)ypth'eis�bn�ovceptuhola�qscgsxt�eisnon�'asli�sZtme�nsi'�o[e~kuaeic!ccrieR|fRsnLayoaeiHdjg
dt�ql�cti�abrjectiv�e�i�Tvae�wi]	w��sxtu$�arb��a
aeionrJe	i+otion�'Laissm
ftte3nbew�'>de	isca;�laeo�ra�bve	i'�rsrV�vPkta�Zi�c�tfma\/dai�clte�iC'd<ln�rsdat�eio��n�or�ylnrxera�db'Rnae	ite�4is��iica�nt2�eUiaeioucdfgi��lmnoprstuveilortllula
0r�a�hmpaZnaoenabniley,ne[op��rartm�eam
�ienerationI�andi_uvidJueoutropoli��tlecula�rosrscula�raesuA{st
h'�sigten�c8gtiveh'<lnsess�'�ec
alcfpu8�lfOSier5a3Earuo�clmo�neg�icep� troahtc�xM&teci�fhie�cssjut9neae�snoush'�e<lpiG$dcgna�c�t�aule�isic
�a�sh'dg�irsp)vucJe	it�i	orey�spect
Z*eiss�n�o�vUdsi�ove<l�nUsbitfa�eis�no
Lvn�'ais�ls'�m�tikn r �tti�htc�dtioo�naeiouUdglrsiS�niud�'Pa�ei<lsnDs�tableynUs
U'ia�4bnctM�e'�lsi�o�avcinrstt�eive�'�lnsg>hle	id4�m�rsteO
io<rsdFrr�')is)yac�elnstx�wcit�ixyalrgzviy,dl�eolbcessY'Fe8geion�'La�e�ish'aeis!sb�bd�rty.aei�mFosd�eNbgntaNbCteratcct�dgnostiolat"Wei��on'~orat�e�i�-cla�b
@tc�bi%iae�ition�'aslh''l)sh'd
fersc�biklahbBtfa	,e	iuvnttariy<l�n5`e�ie	i6d�mrslne(�rarrd<l
nso"(u:'cdln��pQ�sv�t�uwx8Vt?�ai�d7n+�s zantW�h�'aeiosHl�0s �ac$msz:'sae	iy0b
�tmse��tpher�e_=ia:'�n<sag5[l
aeho1�p
�rsd�
_'�sca�ciogenPin!e!d�owic/�h_'ab�suluv�iaQli�t:'aceik	�morVUstv_w�'nqst�'iM[a�'�i��dce<l�dnr�s
fQo�'�d��f
ln�stQe�yid	Gns�te.ios�''NcFilo�Pg�'�eh:'eEmmw<roEmm�e	isuo�mt�Jsnq�'cei�#lm�nsw�y��ld
�rc�e[9nwEa5qaonger's
oyi��tde/�'s*�aoord
�'sk�'+e�isuoi �a�saeiudtwia�n
)tionalh'�i<lsad�d
cdfglmpstvlouai�mnvcil�ba�e�#seuenmab!Bi��lti�mscn�iluex�3itab!Bi�laurd��llarh'�i<lseiva�ngionu
5isZl,neiod�is[�svab!BiVl�alraceablIe'�yeo��sadch��aucib
iliopst�bilu��v�Gteoc�vtnsibvni)l)erie!�veoresn�ctJi<l�i�cgtaTbt�eUiKoa(�b6Rnt2�ei�n�ov�Ap>�iin�'e�g:'bao	nabcefhilm'�noprstuabdt ic�'x�sel�'.�le�o�nahri�ooae2Cemisascnttro�phion,a�iu�ae�i�rmtr�w��a{a)�dnsgl�a'��fs
�aeim��ny�'aio<s]7b�csRm�tphob�eiWaWc�'�ds�tp�n�'as*�e*�i�W'bc��delmpsta"�rh�Blyron�aou!sanai
tdT�electr
�oaC3dt
ei#onon�'k�iseort�'ais�esc8�sr�i'�yrph�''�ei]|c�selrrimetri�^c��e0eopLy�c!�p!�te�lhorerXm!�np�e;�i'�yop]ziy
e�slla�'ael�'i<s�'�st*�e
anucq:'2huaaave	i�bonahnb�umˊi�u&�z'acehitostuvd�lsiln$�s&�pityacn�'a�s�-th'��i	)s�a��ih�'�eiy�e'll�nmr�'�isat�e_i�oa�.cneran�rx�t�(eoqqortoormiH�ine~�sd/�s
'a�ef)ioas��ys�:'n�'h#�ori��yK�a�eGlik
i4aet�nahj�maov$ ana Ig Im6�ees�t
:'acdef\�ginop}ruvbcd�~efghiklmnprstuvwxyz�'4abose	id�4rt�'is;�na4eik��loqur*�anr�t�'-ab$ydeN`fhikl>�prstQyikon-the-b@�onif �ve�iF'HdHs'-lantN^e�ln�sa�poo9�td>rp0tammer�'%e	EisstQeCTnnifB�ve!i�'�d�s�yabbi_totn�'i�svi:5lZar�;abr�ptT'�eis[yo'�a�an7Tt:'�3e�ouaer�
dl�s��i;yzzP|ie�i�'�d0�isf�Eah'gis�Rueiydr�e<l�ne	nrsterdlanj�gl�mnp�'be;{h	isY�ireak�'Taes
:'ai�s��su�raeor��ttT'[sѴbaope��n�
�o�pus�i�'abeims*�ai}l}rca�'6n�'ae	Eiosla�y�d(�rHs;�r:'}lso'x�oto�Yw:'el�'�s=be��isy
tT'ade��gijn�osuv:'c�Jea�El�'ilst��r��l
�v�'\t�c}e\ns��t:'sar�i�[yaw=pe}a\ien:'X�ixMa}s,�ia8�e	i�s�un
�'eJn�sse�='<s
�'daef\�glrsj�vin[e�biu�lN�sxPaer�iao
md�tm�opi,�ne�
r�a{ondt�bi�'e��isy)da�	eI[i�'�nscri~�p�'b�e	ilso�tr4�n.einessa��r	�'aޓbcn8swpsw�uuri�yardene:'?�peee:'salke�iseze�r�'�e�Ii�wmys�tadefhjklmnoprstwzlnous�i<ln�yx'�aq�ein	)s�e\nei:'KYt:'oNiprP�tw�vz
�'s
�'�eisngh'<l�s'�ef�'err�es}yon�'ie}yyIZ'�sao!dsvhaph'oaa6huna
Be
Duu�yl�eiosy�e!n�'ss�'b.�fu�ir7lr��e3�om��iy'�iaiknosI[fib�n}aei��y�r�te��fn:'s�gB:l'�ex�opardi�ye+�s zahr_!ityh��aeikmoqrsuvmitya�d �h:'cl	hdek�rh'��eisw	)yhre<ln�'�e',gsa#�tU"abal#�moam:'ss�kuaioymun��g:':Ic}dal�'-b�$c�i�sbuils*dtui�ley
�'�ssale7�mYi�copstuer�Jsb3'teiou	�ctQe$�p�p�'e�isi�st:'�Gi�s	�'-hlpst*Xw�&blps8aro;�pett��e	i|�lrѴoi�pno"rDa�ei�y�eA�nso	�n�'ei��r�sls�'D�e	�ilrs$�'e	�i�dr�'�sD�yAdi.5ys�'�esh:'neosebe(;l�kabn�dfghlmntuvng:Gx�'-1�be�isb�oh'sdsfh'�is�y�'gseu�i��ldr�'�e	isy-pokg�ea}�wad�'.Ais;i�l�t�'bemsog*u�Vniye:'dss�'	ionwee_d;adgknr�xa\�ebboyloew�iyh'd�rs'ȯi
�ei�s'{a�6i�s}yikisha�'ss:+nst�uerbi	)syug�'gse	id��r�e�#n-jjitO�sits!u)�a8�e	iG�r'abcdeghijklnprstuvwyb�su�1rdnq
jtT'n:'tQate�\u�'b�phlseu�id�zres�s:'ehweg�k��ao�,r:aekou��l�'es�_yt$�rs�e�il�nas4rhi}yp=�u:'�e�'6ly�'ssC'gjseil�gn�e	iakarannn�s:'taes:'�ob�'a\insth;a;oiyw�ex'-�@ccome-latel^y:'otnU'�)vonx�w�'[enhsh'e	istd�tr�'-e	i<lsus�it�rdr�ro/�bei�y�'d�rs�ym
�t�>i�e�l�n=el
,seTt�aiy`�ef<l�n�ti*ch'	i
�'adeg}i�5nq
,sD�htQsth��a;oarB:ysU'Ye�'�g��ulin:'sm�a�edganU']di�se:'nsx�ex�oehis�
t\u��tT'fp:'}a�iho'��is�uon
�'e�i �usd�rss��aReh'sфt,�lnrsc
e	isynaeBol�'eils'�d�sns=zGg+3e	i-m"�t�"e�Iiy�'c�eCRi�msZ�tatQeinov#�ias4l}nell�l�':1isy
�'c�eV�f	ilI[n�oe�prsetT';aiod��dei�'{rsn
:gtickSs'semg<n;g-abdgijklmnprstvxju�'t��sn��r:'}ai	�t*�aNbila�e_�ntC�e��iad�egio�stye�hiso-c4�hc/sB*atT':e�'�ee	im�'dmrsent'-�asY�sQ�henth'ass�elc��tait��o>�ua�o9lr�iy'�'"jks�'fgxcisuu{le	ildrna�_ue	ih'drs�'�is?�yl@BaHicve~QiyiutsuF'�b�te`�b
[�eil*�yae�o�u�'n�'�a\n�'n�s
�t�nj�ibpN�l�oh'-eisys�osta5	r�e<ln�em�gu6Ri

:'ac��degiko�r�tga�r�otiu�'��a�Ib�e<s�'f�ilraQue�'��fsopr�'�"i�s�'eisydrtx'b;s�'e	isdSJeen�'�r�s��a:'��ehxiaiFouys	�sdesicvKad�nsdp"�ti�crudenrctu,i�'	Ei�m�wsti�'vei<l�nUs\�r�scfn)�e��ii	pyn�aΨc|etT'�ei��ah'-e
ls1�ten��az�eil�ei'�aZttapos�einBt
:'-abcdew�fghiklmnoprstuvwyfac��tg[abcdefghijklmnoprstuwyzboualai��hs�mtW�i�sbFo'q�klU'�izor�poad^Liictha m�a�jishh'�e�ofkteeklat�c�sa:'es�qanHsosh�Jiail�nuw�akateGlanBaguVnna��fkpstpoo@hr?�u?�a?�aoe�r��a�i�l
�oabq�ba�'}�dnGjpu
abegilmopuhmsa�raauzsohnik�Mo:'aۡr�'is�vdosco+poorli��e:''Quiws
i$ yr(�ao��wmbu}�r}abcei�opaB�lhatPkhram��e-Buklr�na�zaerq�orq�o>Ya�fuc��h:''�acdteg^i`�jnopsthenjuH�naF�i
o�yhs	aa�ra�d:'a^Lw4ua[i�n�sU'ian
:'Dqihl�ns�Jiin�'i �o�cC�s
tC�zei�lopullmeister�'?�t�krs[baB�n
ot
aeilmno�prstu;y	:'cgkmnotHYh��a�aour�a�u�lajee�zgaha�vpkeSs'ss�'ess�'-"jkc"�h�entT'�i:'Cnt�atT'}ao�f-a
�i"pa$�'}lao?�rao�k�Ct�Jt�'�i�slbaY�mnk�j�ab�ehpaX.hmػiarr��oowic�zaehimorsty[z&�kmn4rat�in�'��lp�aeilmrtQy�ra}e2we��eandlu=iy��nteknGjpa?�t6naoqLwY�mc
i��uegv�a:'!�d�afnr$m�adQaGli
naebksaM�aa�~krVnatT'a}ePl�ok�'Z*e[isa�oknh:'st�Ya:'tza1k��'p
y�'ale�'ab*.cdef�gilmnoprstvwy�'�nrtǫn(7i��otsba,lger�eٺglnpw�'��beh	is�'d�ram2uh'�aϖeu�i<l�n)sh'-Fe�isҦfF�a�a-glo �vgl��s��t�Ih\lg*ob�klpsvu�reiotyr�y:'berp*r:'c}eX.kgtQg�'e	Eis�d�r8e�oi��neprov:'�i>�s�t�'deimnostyae'�orltl��n}a}sipuVnrlT!w�o@u;aeitQyd<�lt�ytQytQhm�n{t�'Absfhin��g�'�ouckC�i�ya�o�'(;nt�t{g�k�iKl��ptabcefimnors�lAnti-n�t's$=ihie>�fns�a�kuf��f:'ke?�ra�oidec:'e	id�ls��uqe�'}i7�yh�?ast-eleIlr#�vcoth�'�e�un�=s�e�ielre�'Ub�Ad"@fs;e�Yi2lor�k'a�ei��psuk��un;eqBs�'bc=beh	ilnpW)rs��wiond%�iard�'eisn6Rsli��co�e�l.eogf~geo�Ms��tau�d�l2Onet�Rr�oroykb:�'asmoruwyzbc�aklnry2zaro�vhatur��iOi�'cds�5oall�fae�ktoQu$yim�ork��sh Io��eushche�v&�f�lari�zsb�
'-abcdefgklmnoprstwmk
o
mn'�p\�dg:Gs�bi]�olue	i�'dstz�'he�ii�btze�isdg�rsskC'-abe��fi��o��sybosto"$x�ftarZVtN^upoao�cll�'�s�x�en	�'-d�l_�mn�osgl\o:'ei"�o!ydr�'msi�	n�e�n��sa#eppseVfip�k�tflr{ttv�f�'bas�asi4akegj�a-glo�vraBeuy6uabcdiklm}�nortu�eirrS�n�i:oau',r�tvo	rmanjar6oeinnB:v	h'a�Pdefijs�brn��e��i.�fnx�go
fya��ornos�c
�'bcghj�lmstvwa!�i��u-Dy�su�da88ylwoaruam�'{mse�mrt�z*o�eo�la��ott�'-smzh�o�'esdy�rtT'b��oae,ly�o'�lrl��ety
�'acdefgkn�orsesthetic�a�sump:b
h'-ae�(hl
inrsh��er�sga�rtenn�'Kese�rrtk�nJeiy�en_�e�ge
:d�'R�mst[eicK�o'�s�iopsȪl=�colkh'_s�'-ab_�d%ef	EilmjpsZ�wsiD�zrr�iio`s��a7-e�#iy:�a
bc$�fQ�hltl�oA�iDaKGeo7�n�w�'�e�ciosy:'8eX�o��oefh�m�wl�y�lo�la�ib�s�s�w^='n7lps��e	i��bcgikoshu,�ehKn��ob�tbhi@Ssz:'ibn6]aH�yb3'i�~lpswmk�batriByc�aobolv�Xc^o*=tah%`l�?msnga6nni%`nh'Ra*eiong4e�s��fgrZ�a�'H.abce-h�istkyus~$hl9ahen�'es*�wr
tb3'�'-sd?rsf��lch�'�eyei�vs��ydn�'<eis	n�}s�enwa�kaij�n�'afs8nr�u�ekaeiouyn�u,w��x:'dsaAs�me�ip:'ne�xtocmprac�t�i�yani)aara�s�mnte��gndi��kd�gt[xge	i'd?rs�yz�'heisy�eYnstwr 
aaegioucpvwk�'e�isr'�e�isytp�Zsypei�Zse'�laelsw	�'-��cd��h	il��sdhj��l��eig5`hP�ee	is'�d�r�lts�oewarre\ycefg.�stmvk-ekknack'g�e�isrb	)socker:'	)snackC'ssW�ve	i�'-d.�f��psxeht	�'-�ef�h	i��lserra��nh'SbstiLwea|ibc��l
�pstwx�'bsl�i<l�yk
h'-adeiosw��dko9un:en�ubou�t��ongF'-ssтh��fu]jturjss&=o�'D\hst�eiy�ene
og-Ra[�eil�ns��hit��-ng�e<l�n�sed�sgLae�'��a�s:'g�vcdrtkle	i�'dhsus��tead
h'�e�ss�ex�olh'�e�isYhs�ex�o
'abcde$�fhijq�klmnoprstuvw�d��i�s�lBna�eHoyas�6hh:' �aaictklhroC3mQyByalnrsme�yigsb"e�}t��tilun\o��'�erab�ikoVnh�z$ a�o�aoL�yn^Lo�imuniL�zgr:'}oCs��a-klnrwee��-�'aissybuI�r�eZldna��b��t�dY�i+t
ya
d�Fiwa�CteW�p�cka�ye/�mN�nou}yzn�'i<sWc_!ikro�r�'m��by�1bchosyiusskz(�ke��rrva!�u�gukGlu�=fr�~oaYca.hltlns��k�y��o��oh	:'aeiouyz
aefkmsu�
m��taot�o�we6rno2dyaC�r;st�Q'�Zs�bm��slin�'ologiqys�te`�lnsg#espie�l�PgtT'htna:'mu-srRa;eioRy:'}en�'�a�e��p}cI[gnp�aeou�'cr&krsot�Fkegp�s�
ge�mrtT'grQp\�ps0LtaCCnhatr?�i�.abcde�hiklmnoprstwzl�#alru�ai�Jcn�~thHhe2.oz�unni�'nb?�tys%`hu-yalan'j��ag�it\�eah�ru�maqrGla�tu'�gn#mu��nmintaffJ�eaadB:gort+�u�'ai[sit�cs�h$tsa�wa�ixcj�'�e�i�;oz{c,�t�uait�'(;inets:'}k�etc��h�a�eM�hiknziu*�t:'dgzebe�l&�ja�a'�sulu�-nat��an^La:'ablmnorubn�rc�uos �h$reiX�eograpE�h.se%g	tgyzs$ttd�s
'1abc�deghijlnop<rstuvxy��aeo<smou�!rnfanatruea�!lvertu�r�0'bcdefg_�hi�jklmnoprstuvwxyz�s��y�';aeiorsuyl�'	�e	�ils'�at:e-�i�ua+lo
Du'x�l�dru�'�aD�eis	�n�oav	�ir�'-eisi�/snte"nd�r�'�l�nwonavZ�iaudo��or:']be,i<ss/�cr9@nrinth�'�is�'aehx,ikoqr�stu
myn'iDka�'-drsw}y�u'WatB:i
u>�io=dreB:l_�mr1sym7�a6Ao�'ae	ilsdwaisic4�aanfnd�yuste��r�rfac*�nuer�'�e	iswap$oo��sa&�e
�i��ot�/einon�'J�asna�'es
�'bdei?losyrokYeei�d�r"�e�nsh
n�heEdnss�'�en
',gg�n�'bflsY�i>�uin�pg;&iA�ohi�BptvrileC'�sourotatg�o"Flaiye#�tKYt	h'Fegnorsua�e�ird�'"�lnsiapgp�otsang7�e`iefn�rdjlnrs�t�u>�l�'�d<e	issez-f��ae�ios	�'fT1h�ilnswAQiro?(nI{ahe_a$=io�o�tha6mdwefZeo�rh'abeimops���'�%irs\z�'$ c1^e�'a�de	ijkors�td
�sg�adnr#�t�trghiHYn�ujkwo��oh'b
odlnr<�s�,rlyaio'�e'�rtb!Mfranchi'�sa�t�eth'a�e	is�btion�'�s(�o�snTsasg�'erl�te	idrge
�i
�y�on�'-be	ilo�~p�/rsp��ol7�ad�r�tigh�ton�'e	isdr'y��h��t_'acd)�egk�nost[�y��z�'ir�'ss�kaeh	is�"hKt	�'dAOfl�rs�t
�e�i$Oo,�e�';u-��aefhilmoprswdr�'�sfxaiollh'%esrmoldFeVfi>�n[s5�a=�eioun��ecmr/k3bair�sr�kn��eRnwneir�'shi
opng�')s��la}y�cLi�aD;bc
�il�mta��pid<�p�e�i�!eH�aes�h�'e��flmu'rh��aga��ej�uaioge�'sto��odsh	le&ir�''o�sa�e�Di<l�nyU'�nl~�idiobowv�ehan"�i
Du:'c�i7�s�3t
,o
�'a��bd
ehilpsb�t��wros��tcop'�ei'�yMc[eVhoro
�a1\d'�nNsa7Tcnd�'e��r:'�we	i<s'�e	i��t
a��bcdegikorsvy:'��me�hni�o�y�e6Rs�'e�iI[nsydtQoeEi
fo�s
h'-��h<l��m�nrs�h�#sst�'M�e��a;n�'e	isd�|r*�puI�sity��m:'�e�oa�'el|�tng�xe�ioasl'ls�Dt	
aceh	istzgn�ae��ai��vsdrs�'dsi!/s�'��-	le>�i�'��aei�o}ns)�e"�th'-�@a�ei<lsP�dmin,un4�grl
:'�acehiorsstvh�'�eu�i�/kc<lnrsxom�c�e1�ta
'l6nh'Z*e�i<ls��t�'es��'p�aeu�irs�'drs�'�e	isyo[pmcnst�'a�e6o<s;th}aud�eina�lri�y${a?�ny�io�beih'rs�'k-<lcs�me�Xi�'dswor�kia�' �nd}egnrss'ae	i
os�u�b(Wn�tdr�'�=dhh'��a�eis�etng�'<ls{@tcdeh��sh'*e��ipag�derre	isd�r
te�io�
y�sGstmat�'/�saeiu�'�salnteh'Q�s�'Y�ls:'#�ct�'i(�a:'e�'�tst5�ia�naeioss�'rglst:'i��eʯeori�y��a�ednrs�y��d��n�s�tnshe	i<l�ndr�si=ns�'-��abffglmnrstyab"6ir?�eivFe�Xie�r�s�ya'~e��k_n�'mso�^we,ince.itT'��v��oFue�3oX.yer�'%e	Ei�lsa��e�i<l�ntive�''l�nsh'-ae	il�mopsM{t�u�w�.b�oؗub
,mwo�ua_yr
t�'�e�~is��f�uve��o-	r#]ha
eiuyri}o�uN�se<ll�n[o�dr
�s�klb!io2,nVUjsw�Tdm:'abcdefghilmnoprstuvwxyz�'cdfg�hknprstvh:'�e	ih'�-beiswe�Qldnrh�lnUs�a�'hl&�sf	no�r
�'�La2�b�ehilsyo��p�enege�s�ti�t.�u�'�ae��isyd��r�y�'-Kde>�i�lnstb�uud
or�s:'}aetT'�sh'ef	istd[brr8ko:'�Yjt
mn�ye�dist;�d�re�hu�it�'�Zbdh�rs��oh'�s6?wher�'de	insyDHadt
�tTee@�iC'-dn�r
os�t�'�e[7iswoaraelnI�eo�onssr�0ag7Tua?�nhith'e�isdrss�'�i�os�yt)�hv�eiux1ore	i�'d�r&�sM�'tQae�g�sN�r
�'-c�d�kB:mr�s�tuwemnfie��letfo��rh�'��e	ih'�eisy�enGe�gwenho*.earyd�'�sth'-�eiIlm�=os�&w�yc�fhwliande��d�ring#e�es'�h��m�t�'-aeghihl�mtorsuw��b�xcspip�n�clth'ei<l�sses�t
�z
�a
�e	i�mti'�s�cei�o�'d�es	n�onrd�'arsriye<l
'le�y:'dem��a�eiyenrstGe�goG�r�bostn�''�answ�alat�eiFoun�oM�vimai�cteid<l)sn	oW.s�zsz	ae	id�rs�a"We	i\eovfotr�Ta�maf�or�mIi$m�'abcd�fg�lpstn%�iaehsterU'shi;raqr��eh$�'x�tzD�iure�'d��l�swe�Qamroti�f�v:+iai:'�na;kmoui�t2a�e>�in�'%�agsl�wyr��a*�er�'is
�'a��dginost�'arth�'e��iswy>nea6Aientnc�t?e�i�yU'gi�|rs�m�ti�vo�ytnr.x:'4irX.x}ate�'ei�d�rsngUs:'�ei�o<s_�c!Mf�l:'lmnp<s[�t:'ace"�gio:'rdo'6o�sav��a'}ld+n�'�ar:'�aaord�'&�es�kldU'}o
�vFei\krt�udo�upterayo�neoch��ams�ua*�ta�i�y	�ra�iom�nseningJbepi�rI[n��oHp	:'}abilostioay$g=n�s��o�Ye�i�th'e\io�en�pr�n�rs	er��a�'-}ac!wdhist�u��d"*oh��wate:'lr�i<lUsgi�y
�cecti�0aI"ie��i#�ur	�'beE�h�impso:�mS^xa�e�[n_�r7eck
rocd�mtK�yed�ro[�ma�6eoe� mc(�aeiy�el#Sqr��s	h'-D�eh	�ilGnshead�Pd*eeau�de	�iy�d�rs�'a�e	isgei�'d�so'a*en�stthG�aY'�ebsPai}t�ysce�'	i:'dYei�e<l_�n�Pns��'��hei:?u
BmBrHscO�gS�n/hs
�aogl�nraphFei�yc�e
�aog�i'�yF'��b�dlsx�tA�adoCw:z_'
�abh�ptaosK�ai�t:'abcdefgsiklmnopqrstvxzbimn�r�i�als�e	i�oa�e'�s�'-@abei��or�s��yl�yae	Eity�d!rlr�'D�e	�ilosD�e	�iou��s�uai�ot#�clth'i<l�nss�tQ�z
�a	e	i-m�eiFonon�'is\�saU'-anaiyrian�'6�is�e�n�',ld�ti�on�a�uoaei:''�er<si�ya�en�'shIiot��vffic~�eti�o�sT\uehiko'nHt)�cst�ae	iT:o�'d�ersi
a�oeft�en�'%eosluϮoiZee�nnvMth'e>�isdr�'��i
lriceh'ss�'dihl�ose	Eid'�l
�'-bcdfg�n!rsus d
�ief�rraumil�chtenstein�'�/e�'e�e^(e�'t�xena	�nef�ot�'-bfgl�rstGYwaf�Ygprstnd-dei�aor*Kcrese��ra�f�iupp��ohreat��eep�lo�u�lat�'k�msor�mw�uei	o!ak�naptvFe-�ia8un��ya�iW)k��o�'-e	i��os�oahnu�m��nt�e�i��ut�'-efh�i<ln�!pswfh��pin\ggea�du(rd��n�r�saceh'sde�oa^|d�.r�eing�'�e�sac&�hbKe�rri6ybe�oig6Rh�ei�6u�t��rae�ibillit.5y��e
h'x�-adln
or�s6?wbillit�iD�ye��niy�ef�h=�n��e	isailoty�'�cngeq�na^[eőtu:'CnokallsaeilUy:'e�a�eput:'ian:'�snssg�w�'�eis�n�'-Dcd�<lw?�habeinopyU'vad	�'ae!�ihlosuu{gdr�e	iYns�'%e	Eisnr
ysg�'%�adkl�prswByi�light�'	Ei�sic�kctЉaqoa؛s�ent�'ae��ilsbZrt
ilHe�yi�ovd�r�lnUses��sh'XgnsuP�isin:'�eh'ei<l�nosd�r�s�tdnri<l�npQo�'acdegiknostuw:'�Nghojpl�Hn	�'tabeiqs}yergY'thB:m�nsfa��rui�s8a8etrj�o�'��-a�bdfm�n�r]�s]�u�g9l�mri<lsttzaC�e	Ei�b8�tati�o/e-�a'eh'e�oEsurc�eiseng<lssai'3Vlns	)exit�'isc
�a:Ii(s�m>�n
�'��-aЋbeCRi"ms]�u�b�gdr�iY'a�e&;e�'lte,a�n�u�yl�ax�e�'ei�o�sysd�lxrhrenQsxo':eoo��dn�'e.�f�Dhis�l�sPsz�ae�idrss�'-�ailoprs�trsead�e^�is�&eynch�dzz�#a�e�tipso< rlysaccha �rcK�ouul{�p
�c�eirRmy:'�e	nead�Ye[issc �lthԉoiut�zt�zic}�kueiofFu3�ai	py|ed�'�ai�lnsZs�tZzr�'Z*eis
Bc�n\rs�am�e6ab�lml�pst�oz�Yo��uotLrao��dj~omen�n�'e>�i�l;osdnrh'ӝae	isdr�'кs�'i[s/�a\na��cehimo)�rtu�nrUs�'a�stcl��rth'x�-i<l�nssZtz'�emNte'�r�5ei>�uh'Soeg�g.iou<l�nr�tsglstraph�'eis�y
�c�enogAyiypher�e�iripZstKe�iKoaniaU' �ng�aiou
Rs�utMyeelo�r�'akUbg�e	isteurh'Ese�'-nrhusx�tt�eeEZc�s�n5�rratewIurgi�yc�e�s�a!saeio}ybi)}lli-tadlnrs�wbillit�iy	]e�y�!-i@yoy�ef�h�ne	isd�s	�'<eimpswG5y�e	Gn	s04oou�odlia�1n�ours�6t�'tz)o}a�dngh'E�lston:'�e��nivi�'az:'r.�d#�iQyublj�aaVUbVUdeo�mne�ol��lwell�y�yg-abcdefghi{�klmnopqrstuvwxyz`�f�rdf��mntmv�'Rae�istvao�@n�'e	isd�r�'�aeu�iswharkin'=gazohei�nsn�go
Lm�'abeosucrthevs"Ik��eeiy�en�'!Ji�'dstVQhtomi�y�es�z
�e	i�t��tla�erxi'lah�ikoultA�vh'�ei<lss�tzya	e	iR�m�ta	,e	iNb�t�aJeiFonI�ove	�s'isn2v
�'�T-Raehr]i�;j�tn?os]�u�,w:';ad�r�thtae�emtith�'�iseph'�s�'�e	imswotio~�ov��er�y��e��msBt�'�teg}z�'stFa�oe~�i�'dwm��p�rsbw}e}i}st�'J�e~Qisy
�'aatb�epfgiH�jorssyn �r:'h�beidr�'E�hs�a�nac�e<�n�vos�'aisl�i<lnUs�a�c�stic�'�a:Iis'ss	�'fO�ginstuif34y��toll�dieng�Frn#�rtQst�'04csereY!istQa��cilta
's�sj�a�eiosy�enb�pbZ%prign�i'gag�[gssb}e�Y'ard:'}ity:'deg1dnson�'dq�eeW�r�gl�n�rsom �e�'-bdefhil(m�nrstuwy	ad��flprstw$gw�airstR�aawn�-aa	eiCoi�sf:vl��a��au��nitug�Wha"6n'�yffV�e�0ae"Yirm�iai<indedZl�nora�w�r�tidDJg�od	Eir�s�v-t�Leeoll#]o�	raoFilGn�r;un	stud�ei�nin
�se�ahitwZ^iore��mg��h�a�oreC�e��oLieuB*i{r&a"Hiearb�JyDcd	'fkmnpst�a	h'-aei?osuali%7khle%ai��kdr�'	-�snfsgF'-glas�sp�'�eisA�n[s�'is	)yeh'rAns�'�eh�isy�&oeu�i-d<lnrsles�ae	isd
�r�strif�'eisny�ge	ipsh'drs�z�e��iid�euaci�ottadeginr:'=i�'�eu�ils.eiy�en�e'�ghip
�'s
�'lns�?t Ie�'}a}etzz:'�i�'tokn�'}esd�'he}a�e$�a}eiyt�e�'lV�o�aY�eistn)g�'-�eV�i�lyle6�a�'hist�uar*iri-ao�o:'1^e\io
�'cdb�egin
Bprstvhe
X�n-eh<lm�nsmouth�'<e	�s�Enr�sai��louth
'Z*e�speakFe	Eihbssorou�gteso'tatei��van+�aC�ige	iC'd{rs"�d�e	ise~Qiy�'ds�vw�'r.hissxaherr��'	�e�se'�d�ssaeimb�'-abcdjlm�rsޙtBybcir�dhibleHyir_dhri�lHlaKGoa?�ei[lo	)y#�ccn�5eZl�ncrk''�s
}na��kV�itr��ung<lnUs
h'-bdeil�ns
�sbc��de`�fϾg��i��klnp�rsaE�l7ur'�bmis	sue"y~�ouir��opi�r�)o&ro��w�'d��lnr�sb�Hr-c�eiIlmsQyc�=l"HaӍla=nsnn��saiynd�'Fe�s�e�fg�nh�th'�ta}d:�olP0n�e6]i<l�tenyg
_'�gDn�s2�a�d[.�d
�r:'abcdb�efgiklmnprst�vxzng�u �d}nab�e!iruvi��teWor�'<lsHaic�Sai�~oo�>tuvMsmbas6nhaeikrutysU'fi:+l:'��nr;n	ad�e��fln�n}ot�uU'nU'}o�i<l�n}e#�l�e�'�e�ihlnsyo��waeQ�t�'�stiQaauJCbdehiv�lmowi�st6eDqi/ria�ncBGrilfl�'vi�ci7�g�Mfthwan �saf�f	h'eg��hosu��w�'lUrss�pae	i Is��a��b Ig
ns:'}ae�'war�m}aluh'a�e	is}yC�b�'�sbs�eimpsae��g>�rr	�'e�~i�Zj��msk
t��yen��ra�teoai�n�r�sj�uW�rox�'he�'e.�fisuycdnr2&t�el�n�}s�ju�#ri;dacdegik�'�c�rt�ei
fc�oh	�'-be	iprlt"Wto�Vxdo�rsn�'mes��aoog�mY'b7 qeDr',t�'ef	isw�'d�rs.�i8suor�m'�ts
�o�Wheiu
U'rc��an�ess�'�ece )gikhh'e	id�rsh'drsx}a�dne	isdN�ra�chit�' �kh'e<l�nrsttania:'�n�'eȾf~Qirsydr�'�lae�XiGo'�lJbt�'d�#lsaeh�Xi�o[zQ�n�'d�i6�nsr�terU'an�'i�ss�mF'��aeu�'mnsbourg�'�/e&�ibo>�uri�ya�e�o�nt�e�i:'�o�in-�o�
i�v
acdeilmnorst�!xllp�ueho�ruj�He�u
Beg�/apod%�ir2�gia:'6n�'*�ln�Jgte}y�a�eph�'ao�sdn9VtenopatZheggc�i�mcden�xh
U'�db*e>�ip}ahourstlbc�n��t�'Vdeo'KYt-un��t�aei�'ޓbsc�sh'wEaΟiseionwQk�nst�r�lszomUa�e�yKity�e�'lszl�ves#Sq 
'-.abcdefghiklmnoprstuvwy����n<saghte�ndi6�sXks
'abcdefghijklmnopqrstuvwxyz���asl
	o�e\lx'abcdeghiklmopqrsu}ybdl�o?�qru�wcram�'is�a+�s�z,�iotn�oi�'c[e)shur�'s�*Xler·ti�dalbe:e�ues4fiorarmg�inanl��dell� rang�ea5sw�'-drsbe�|aon:'iao' �n�'Paryegor�'s�veQ�r�'
eim
�oansvelli:'�aae!Jib�t!Bi-l�'-UNad�rl�rsgrunY�nsea��d��m�e�an�gtoyshb3'/�erE�eb3':aei�snIlrzie�'s�[ena�(nt}c��w.�oe�ais�!hillan�'s��n�she�*ru�aaom_eM��
�'bcdefglmnpsiR�oeophal�iyo'�y �d�p�si�oya4�gna�mcvonoU�mol�
uous��snygamet'�eoc,yaiong��unguyit]go�aulecul�a�e�'sFuhag|�eciopo�pmu��lcmio-econF{oia-econoL�mo
'lmat1�eioNnba:'h'a��cde\ghi<l�m�norsu�wgmasca�ntr�'esd�'e	ioydn�r�s:'�e�is"pc�x��-ilm�rqe�i;yoi]s�ofyL�sn��nais�'Bahes�.a7�d�|g�era}i�'lstst_�rtri�oerlqi\�fia'�co
�'��ssio�'
h'adeghimno
pprsuy�zalen�a�eAil��n'�slan:'Hiioe�='��tePfrrafeޙlh'c��l�ns�'�aC�ic�k)st�era�c�ta�'s!�taeioun�tim�ioKs�ustia]�t
Du�''�n�s�'io�rsY�cs�tza
�e	i-m�b
�ta�e	iP�b
�t�'Podh	empsydrodynamic7|as��aphe73rflti	pyc*e@a�e�ooq�xuo%�ug#lo�l�mM{slg}o'[i
ay*Xs04is
h'ػa-adfiKlojong'gbr)Qt%2vyhDDaai=�jns?Ge�i�)hs�ahan�ai�osi:'ao+uC�cg�n�u8�a
:'d�eglmnorstz�'�aesn�'fhlso�r3Zaeoa�diy�netrzv�o�Yr�'-�ab�CeVfil��ms�Z�o>�ao
�aZ#m�xo}l�thot�sn�d;ae	ie�osd�r�[nC'bceflm�ostzyor�a"�r:'�rr�aaiynd�'#es�An�a�'��ah?qptk�e#aream�'e�is�d�rae�oina��e	isb�i+lڋnlic!ae�h\i>�o�WlreHsyPeeousuti�y
�c�elriF�c
�'- �cdeiWlsdomX�oomg�osd
t�nta�i�yri�a2�rscu�elae~�ihbr�i	h'-f��o)�rs]�uwbJ�ueli\e{ihi�feig?(habcdefilmnoprtvw
bcdg*oimB�nprtwy4alochi:'�ta�ijmr�ypt<e\iust�e�3i'minist!.ro�iZauet�a"jtuQd�trop:'b�i
oikayo�'lsey�'�.s��hS�i:'as:'l�nT\a�yiW�eoQlnten~�teio6�vsvtribsueC�i:'7�sna
�'dfnsv��iaict�iFoc�ze�e�yolenc9t?e�ieouaksrm@a�enct�i�'C�a~$bcgneBGin�a�e��i�lsdgoer�1w�'aeosc
lprowo�u�dm}e���sa`�e�tm��r�w��aessbux�rEVbouurish�ewmtr,�icd#�njYr`�tclu�s�roel�Zorrforarmaq�YuaDsc��a
�'7�aeh&�iorsy�d#�sus:'(`in�se�Aa:ea�7r�abe\imoss�a�ox�rl}tn5ua�uio�y�'l�p��r�'Ma-i��os)�agn�p�tra
fmphiy�y'�c�e'\rut�~z�'-acdefghijklno�apqstu
�v�x	)y�ahnmo�syt-ar[moL�uf-�weL�a
�YcgkI"mnps;�tw�~ae	i�uad�mrsbi�allS"i�'eisss�'�ealdi�lhipah'�soBus��eVlahiueuhxs:'r<sia�'n$�'[s Inc�p:naeioruRylm�rta�'s�y��u8�e	iorAliylY'7�abk
s�r�Vbngjl
rF�aeil�'}ls
l�n��r�'sdgs�tueh'ver�'a	�e��i�sb5�i��lru��e1�lae�ilo�Hry
h'knti�n;eain�_o�'sdr�si�t�'�ese	ih'dZrs�'�el��nsd-wurzXeao�uE�ntPt�llGo:'acfjkln
oplbst�'�cpso�th'
�ah�suer8�e!Jieost	h'@a�e	i<l�n�osld�'e�i�lnssdral�'�sa�e�sgrB�i!lula
btfa�eion${ove�'Wl�nr�'syo�buw�l��oi��m�6isy8e�iy�'ae�rhio��udqrju�'�eim�lss�mtk|�ni�si!ne	em��ruvraeW�ib5�i��l�'�d�r�suse�Y�ae��fil;op�'rsvaH�naugThrea"$d�aeilor�gl�s�'%9pshelfAdvc�d��lsao�'�e�seu�i�'dsle[na�'�ps	�aefhklmrsl�'}aacturale�i�berik�ia�'�ui,fisr�te	i�'d�rsjwcri�pC�g:'irs �m�t �i�'�lmpsu79a�a��e�`ilethogIr�actX`h7�oG�u:'abcdegijklm\no�Ppqrstuvxyz	:'bcGlestuou�'s��ta�'is6�bc��h:'h}a�ion�'Fesd�ae	isl�Ouea|i�'di�rs�z	o'2Iaehiou�yhal:'%�il}o}a�oYu�'eid�r�sm�n�o:'ate�'n�'�n�ss:'<e4ei$ u�e�'Y�esaeiorur;t$Oeirnta}o�'s:'8r}en�'a<e	islti<l�s	)a0�s�t��zio��n�'�ltet:'\her#�i:'aW�bcegjlmnostux'cnhg�i�'a�n}otT'Rs�e�'-l�?tan
�nkoun�a�Yy�b:'aeV�o
�'?drsCt6ba�'�r�s:'lnogN�i�ytT'me:'}a]vo �sOwtaiz;i9lme�rp�sB*oorDa�ity
�'�T-a�udeOh>�ikos�ub:'jl9d�rt�'�ae�di}�psd@Be�ra�'sav�'8di:'ma�en�'sIh�'��abeiosoro:'L�ud�ntyn�'egsY'spF�i}nC�wa
�iolr35ar*7s�t&�e�nocnh��yu�aei�'�est}z�as�	'�e?�r#�tst�'e�'s0�taeio	pyk��welbc�sd�eaenoge�'�[asa�ds�otw�'
bs	:'�a�dehk
tui<slla�ei��s	�'a�e�#i)�lmy:'l�'	�e	�ilкso't:e-�ik�ap�|i	�'�ae	�hi�osy�dlmn:'la�ottpeR�r�'sP�ianln:'<l:'�s	�'}abegisoro�u�t�z8:a'qsueU'x�o:'r�'�|d�e	is�aB:l}ae�Yilh'	�e	�ilos:'<�e	�ious*�lum�s�'i&�as �m�t�'aD;belsn��nl*=lae&�ond�'etr�b%vi�rpaceh!�jkoqstdQir$ ya�oungr!aline�ih'�ln)s
`fr�'-sasRu�'-*e�hCRi]�uZ^u�'eCRiscn%�h�'<ei�r�sc	n#�t:'ue�'rs�'a�s��d�'-aei�l��mproduY�cc�e'�gsh�ruset�to�idn�suty�a'oe�r�s�fn
Lv�'ehiosu=cdr�'-c8+d�e�ofl�hilm%9ps�tw�ycswl��atrٜoo�ralr~�d�RaeCTn.eIGiyi�n:'hti�pr�Boo��rea�dc�4f	nt�'�\ashididh'^2isrbat�eUiory�'acehilrstuz�
-#&dgGlikmnr?�uUwu��tou�ri�tajtAga-Bnh�'�ab|e��ilmps
woo�xg�keTosake�i�r��l]�t�'d�orsBy'in�sael�'i<l�ns�s�t�zy�l�a�ih'eiosm�rwaticaC�i(s9l:'s:';o�a��e�s\�ulnrI�sb�d�y
de-g(s{�azo�bleioaclm�xrch�'�a�is�y�e\i�uo~kconi�y
�ae�ns�kum`�rsyb�ohi/�t�Ra	�'ehiTo
irk
s�'d�lrs�'-�eh	isof-fa��co��rvaeiwtT'�s�a�e�nkrit:�uae8�it�ein&�ovd<ln
orAnso�'�hsthrie?l	dgtQieTlnprsrv:'�eli�nhp�ar�dga��nrta?�kau@
pM�rass�ma}a?�eioyHac�nt�esiain�yi�a&=u:'�is	eo�Nle�i�n]�r�'%e	Eiks��i
7�'_�eitwh'lmnsla�'e��r�'aisu'li<l�ss'tHe'�m�t;�l$ms�z��m�eg#oell�'�i�'a
dbdefh	inoprst:'(;n<s�atr�s!�al�io�y��w9ae-m[w�'�a�'nrh�tna*oi�'a
keL�sl�toVWl:'tP0aa�dei�ouy��zm�rtl�'d�rs�eE�l	nX�rQtan�a
�'aiYp�W'b�sPMa In�tabcdefghiklmnpqrvdflam�_'/�s6yelD�eiste5srri��dalorubfil�.nru5sefreQ�y�!nl�M�'uQ�mthn��yy�M�'is�!me
�yle5syaeiui��nllV�antocQ�k��rske
ynr��ynel��lmic��kac�!yke5snlleorQ�sug��haeE8ioniWermot5stnuW
wEEaW
ngal5slnroJ�eadrdV�elaEGn��eWWiloruy�.nvV�weV�raet5sw5shgV�ofifh�e��raf�l_'ntoW�yW5saein��y��ens��nz��isW$onlnV�s�UaW�eW�e�.oigh��taeuruen�
'ghV�lV�aEGohV�aaV�ihV�oaeilmuV�lar�!aghton���'Wis�hherW�sueV�ef�aeiF g�'+s�tai�bcdeg�hi�jklmn��oprsti�uwxyzdgln/�rst�'�eosw�'blsae&na<n�r:'we7-e;aerrWlYne�l�n�'islt!Mwy�'e�n-b��mҨm�uh'd�ei<l�nstwyerh'�e(�is"�eng�'F�f�lsi&mhi&l
�'lu0el�iyrae	ibl�ey�'�dhl�mrs
�'afvbhjilpsyx'��eRoeoa	)f�vack�icha�'�saniocsz�'��a	)s�a+3e	i�mt'%�idae	id�rsschemi�c
adefilsuwl}n�'ils�s<ei�os�Vtle	id�r�s}aNTl�s4i$�oaceb�notu�'e��l�nstval�'i'l�ss�m�ttinkao�uscP�oeUiFod�l�ns�'aios6,i8gl'mrYt6.e:'nTa�e�'-sleA{gvaliE�lsHm
ftcre�iae�0trra��nm�'-is�s!�s#eg�oa�vflsl�<aa
�'�e'�sa�#y-dknrta�e<l�nt��hhi��ksch9@ah'[�ei�ls�ung�'yhs�'ahossbcd�wfhjlmlnpstvw�iu-Dyc�kX.eh�i88yiuropte3�r�reat'�h�eo}.uiot"�h�rmp#�saniN�a'�coli�s:ItoutYhahi �ors�eon�ei'�c!nx�oeptaoaaorr
8+d�suctauo7-lao�tV�rS}hasMeg Ijo}rs*=h�srttersi#�no:'abcdeiloprtv]�mntceI�gi)Qoholi�ya8uce�''�c�ss�.i�ensatio
8no�!n7�aournteh#ei4ozeBjdh'�e	irse�w�en��dn'�os	�da	�s:'��nioftP�e��l��u�npwSh�@e	i<l�nsd�nir��ya�c�eous<l�dnama�'s�to��mo�sh'd�ei�oso${wngF'�l}ai�3yltQn4lben#lo��pserr�'�e,l&�san	@e�o
n�s�tt�o�'�irsaiybni�lli	)a?�tWIda�e$ms�zlmh'N�i�ls�'�lah:�i�'-acdefghik��lnostuzL�a;cgvnreh'
prssc��h2�ik��eC'aeiosci'4o�tdl�r�s}z�'eis-�er�vsoo�hca~n[pantc
ftc��o�z%�il}s��a$ iolk�'_sdSeh�z5�iad�e8eansdg	)xT�eeio�as�eotm�sai'�c�d�scoccLa'�i[u�Eca�mel}rin;eoni��tmpr-sti�rnaus�a-e�ar;�h�a�cetuwr_svanmtrualRtrab��t��lea?�rahioli<ls�t'�mAtol�'ast�e�uonh'�a�e	isr�'�eiкs�n�'-hsdr�aijiie��sehW�risto
'pheleAiCa�sF'$ acegilmorst�vyaehitku�ydnttilei%�ss	odnres:'-ben5szari�y�en�'N�isandtisUNave�Qi�'a�ms}aeȾf�l[rsrio��yac:el<l�nschro#�mh'��d<l�rAnst��rae	insdmnstVvi�a��obC�u?�g)�otema'�s�'�e	iosc�rra�ct_=i�se��i�o^Lu:'�sa'~emi_nmvorp�hin�gUeiy`aByc�elmn$Ot
w�lya)ec�k�-e-mgo-ro�Cua��keysi�dh�oi�yolKYaacdehimoqst�' Ibsal�'isneHsaemes�'moisel^�lnterQLi�o'�y�'�e	ip"w�al��ler:'icszLa	e	i-me	i
d~�r�s	K�dglm�npstz^�ait	�horph�'L�isgreotamia�'n[sph�eheolP�ri'�ao�u"jmra�c'�xoiP|c��u�'��aeiYBmYrydinrsgne�u��g�ischmH�iae<ln��e<�hni�cr�surs�'�a�egi�zae��fhiort?ufz
bcd�fglmpstv�'zoli
�cs�tzLae	i�md�rsLaei�d�r�saeirp3�ai�untr5`e!�ircularxiy�aen'�e	�'a	�ed�hilswng\vunguistic<�eiouc�>f��n0�s0�zRa�sgiraphKiy�drgi�y2�ce6Rsmit?hork�'Fe�di�saoutz�ehematic7|a:Ii'�srphdnios�e%ni��chF�laoyrs�'is$jc7spha?Gtsic'�a:Ii	)sotymati'�cs��z1�e'�mabsrt�Cil�eis�z�'
�e	intacahr`se_sos�ei?�su za�!rh'dmo�rspsych&Uor�'ios
�ct�eic�smilogi�yc�e6Rs�aaiossui;vy6�dmnphetamin��eLa�eoQ�g�i�lno�k�Bndt;u
�x�'ioscR�s4)alogi�y�c�e\�srex�a�eseS�llr�'�aze�scen �suBGlrh'Esn�y�Veiocf'ai
os9lt�ein�o�a�z�ki�'�lnpsc=tio��dm�e!�ioli�stanis��zelr�{ne�'�ds�oh'�e	il�sicato Il(;ner:'b�ssezao)�nh'-stsopra$nin��t�ag<�ru\m:'�m�rM�z'a�bcde7�fgklmnopqrstxzs�:'�-OZmpslaci2�dma�'ls
aehkmr�s�'�hswI[b'�,l:'aeiel�'amsnge�ola�s�o*�al�'ate�i�l �o�Us(�gng�Kegan�'die�rrt�'e\iss}y�l��ya-acxaoC'-abcdefghijlmnoprstvweonviroE�nrganis�memnrrophRoipealys�teicy$rhitZ�e�eir�acoi��dU�lew'�eaF_ehilorK�yps3@ua
eiZnph'R�psrcu�:iimat�eKidmns�.e	Eip(�utro��l"�me�y�de�onsitoml�eclnF�vonomic(sectro�dmA�nechanterp�|railou��r&�ubclSJe{r7hE�aEomop�rpAdihrssiR�lnS4gelrnerU�ia�Hom2KnpvF'{msh!/i'�syaybi��tdroPodnjsect�eR�itruscohueiov7|eghg�t�aaeio�aun�atero�rri9Nt�Veniatur'�e7Kidlr3|teNul�i"$l
�a�ephQTo'�s�'aesutio�Ensia�'��ntr&yirganis_mahiorP�tNyE�yaoyʟgnt�e	EiograpK�hsiJbc�gG�p
�wio+n�bcgpess	EiForam�'m�s%e	ia7Pg��e�6n�'ac�deioptutellol,op�ei�y$jc�eq�sci)�osm�tul�ka$OfA{m��hor`�eQoruct��urgei
o�re"YouchQRnc�b|Ia�oaZ�ovRae!i�'Ra�ds-a�Wbcdefghilmnprstwyazbe�flmo!�yf#itern	o4�vi*Kfo��rs�fn�Yi�sentra�la�e�il�yye�1i
h'-bdm�rstwaӋco�sD�gf-the-r��o&r
ua�eo�nr�fc@r�sbeorroughougr.h[xo�nx�waa�easte7�rield'e��r$�ae�'s�te�af'saiond�'e�s^r�7fn�vth_�ioUs�3ia_�o�i��ai�b�4fceh۶i��ptuhacti��oip�ms�'r�sea�mm�em/eown��'	�saeiy�'ssesk�'�l�st:'ern:'e_Zr��cfn�ve�i�'sd�irsster�''l�s7�en�'�as�_'hnr�s�tut'��i�)n�syEsvonet0ta�i�nt�e�i_oaN�eh	i�od�Toa��ih'acdefikl�nopqr7stw�dgn
w�rtT'e�g�-s
oh	h'-e<l�nr	�s\�uma�nnr�sw�'�e	isy1�e�'�a�2o�~p[brs:'�th'oss�i�Jr�uetainr ttcxti�y[e<lsz	a
�e	i-m"�t�wae�idsssa�'e��ims;�wyd}n�rh�o�&a
�'aegime|p}�rstw�ahb=ng��r}ydnp)�r�
tanri'�ya[eni'�ssm�tia�ulh'�4i�se?Gdar�wtabcd7�egjklmno�psvwmmrp Se@BaeI�negr{e#�ar|�a{oit)�ed�rhyeo%7lښeg�'Kissn�'aw�fs�tire�'s�Vsee|colt'%gmsal�te��r:'t�o��rhoLQraa�rlrѴlѴdtT'mrsete�rYdeFvarTiuetoas�6t�ex�o�'eiossd�rVa�nn;wo'?�iauk�eMdeio�'dors�tgrap�hitT'cnh'�6k�rss)�a
:'.acdegiklnostu�xyF'mrHs�t�o$�d�eeh��ih'dm�rsYDe#�i�'-abeff	i�l)�os}yenrx��pumV�beS7an	aogglin"�gd2r'lhn6Reh'-dfrswdet�eii�'as�vl�'iO�os0�s0�zht��wq�a��rorY�k:'e�_i l�usyng�eh'abcdfm�n�osvtur	@ei	Gn~xs
�z�a�BiK%r�uaWehiob{m�r'Es!�aromos�o�[rc�m*�i�[r�il>�yod'p�'ais�u'l�xi<l�ss't
�mt�'�is$msza	,e	itiX�ocektNu��r�ierr�'�eis
�ana�i�y6RnBta[�e�n�'�es.saei(oa?�ls�upiongec�r�t�e
p �a=�clrQstx�'Z*eis�n'�s�t�'a#auid�wikt�'lyaerX.r�Trel�'�s�'aeisyrgk(�ren�rs�te�istmn�th'c�e�Buei�'d<lm�nr�sa'~en�'%�an^�i]�c�suek
l:'a(�b�c8�e$fi}ortcvy$z:'bc	=gmn�e}h�lu�2l�`a�d�i��a�enl��o�7eh�'F�f<[l�s-abcdefghij�klmnopqrstuwse	ol>�ldlnpdvrXieeilgn�e	i'ms��ioW�cadtlyse�dHs�Prhrop�ei�yZ�ce6RsplriycU�e$uaF'	ieohend6�spriat�ein${oerghotk�tavJeinz�oa�jn	aehilor?ul�rstnclr�tego�@rgle,�nlane�i�ya,$oain�cefP�v�'-�smak�e	iy�bassifi"y�c<e+�dmn��p1�umpunicatC�e!4irehenu�dcdfsei@p vu�cigur8�a1�etruc�e	ition
��'�sea�ntei'�d'�s�n�oveioamemslh'c�e	isteanyao�rur�'nscric!b�pasdrsglnos�ein	)sR�l'�sect�eUiwIostrib�uhei)}nun�"gbZ�tnrsxteRYr�'ae�i�Kls�yٻb�4rtiS�mplai�vnRYneioastac�ourk�ee lN�rt�'s�[trt�uaiouu+�gvin��gvern�e	imsen�tid3�ae	i>drsaeimE�n�pard	istssZt.�adnenti�fftorm	!a�e	iserpret@a1e	isudg1�e	i�maen?b�ir�yadde�is�}raod�n��tX,vm�a+%ogay�Gmni�o�y�es"�telorrcei�xpv
�e�ia{c	�ysitY�iioLc�n�snou>unc*iuaolif†i>�yt@a
e	ieo�
uampd�eA=isembe�Eror	�resek�nun!th'
a�ehiopt,�u�yape	idns�l�nlnos�v�en�'1^aj�essai�xuppi:'�auflri:'��aer�or�aclnific%elt�e>�isr�dta�ete	id�m�rs
�'aeilorsyksRae	i�'9n�rs��sd�Rr�e<l m��netro9�oae�|iu�lnslate��ids�Aa�ssth'�e3pf	is:'pe��idsn'�sderstaond#Me>�is�or��iM�'cefhiorst Izh�'el:'tl�'�5rsj�or}aid��agat�eUig�oc}g&Wsrthondria'~ole	�i�'�d�subiҨs�'aes}yxcg�nr�~rC'��-Ra*e	itHeu4azen�'I�ms3masmv�d�-le��p��rs
�x<s�<e��i�s:'emonsic�'
�a�.s=y:'abcdefghijlmnoprstuvwxyz�'
mnp0tw�'ae	ishango�'bėci��suX.yJ'e	il:')�eisttz�a+3e	i�af�e	i��tchkajs-aiz]�u��-faeisdr�'�i
os�yngޓb<lh'adeisulh'�(i�lss��ei�'l�mrs�'D�e�ilsD�ein�VganteUioh'd<l�nsr�'��sh'�ei"�l�nss�tz
�a	e	i-m0�t�ae	it�e�i<l�o�y 9@cfgi�sovperaG�diveq2ni	pya� c*e#bl5�ilsa�eiour�ti�lUs
�s9�t
�z�s oq4vperanjd�'�n}tfi�tag�o�udisŗhiye�'sF'aeo�r�c�`imAXvw�emaaedY'an$�'�%i$�sYk]bg:'roviFc�elnrsh'e	isd�re�	sa'�e�$�'F'Hset}s%`y�de<l�nur-eiPsz+�e�ia��v
adeil2notuylrs�'ist�iys�e	�'a>�beio�s�yvi��at�d�5r�en[e�gvao'{n�'cD
hsula�erHe�zi�l��kt��w�ae	isaengM�u7Tr�a[e	�'�ei:osuy�e�fsc�k�'a�sn�'comodd��l{c$)kAnt_o�'e	�i�s�dn�rc+�cbdene�i
Du�'bemssasQa
snt�'a�l�os�u�r
�aAdi�6y:'abdefgikmorstu�z
�'cdgf�mrsu2Kz7�a7�o'!�is_�hch�'is�y\$c�eu�s[ht1^eich'a#isl<l��ruo	la�oer#�l�yiaـngrtyasq��u:'airiy<ls
�m�t0�s��z�'-belmscmhn�aa��k��aBnod!re�tnsakQ�e�i#oeoIlrHs}�rl�o
:'io�Usa�c�so'��nidh's�cmek.�q�stior�'�e˪isy�'e.�fisZry�'�e	ishi�n
r	sf�houth�'�s�'abcdeglmnprstuv�vxf�m`Tarot�whloruy2�orompa�e8�e0�ion�a��q'ta�y�c{Vtla��t�rCc�ti�yc�e6Rsc*�i'�yaqalrmv�io�yn%uamp�'msa�e	ih�'�eis'�c	GnaiotY�y
�er5iyo'�yntgualh'�HiZls �hgi	=uQFcsLzHe�i
ftaeionia�'4�cs��r$�t�alroeph-�iyoguah>Yecle
�a�eoh|�lo��otyho�nle'�yl
�ei�y�ee�sz�a��e	i��a?co��ty�mllab
�i�lhorye0�iP�rn�ei�o�yce
�axiK�eicha�4tP�pnsatur��aa�lo�e��vaeiˠotnstigneurh'�seguLirnor�'[i�sFer1�ao	1s'6u:'acefghimoprs�ygi�n	@e	Ei#�ugnـeal�la�i:'inrsvzt_hegr�i7�oKGe8rqsui&�e�oeirHYddO{e�Juoޙrolmf��e�''�lsce�KlarB%t �yelsiae��oc=�ha7�lerr��ament�'as�
l
h'cd�e�g	ilY�mnrs�Xt�}h�'��i,ls�!yaewa%tnaar'��s�'��be�zil~�rs
twdy:''�eRoeigtht�'e[7isc7eht34ai�one�'g�rs�oCzralkh'�e	Eis
�'aehil�sX.tbe�rU'de$�aBn>�n��san{d�e�'eii�ops�yh'�d�rsEy�e'ln	s�eg�we	iabcdegilmnoprst6Zu�w	�iln�st[5v
w�y�'ei<ls�'lUss�tz	e	i%�t
�a��e	i�'��b�to�rid�i<ldne}�aaern�cth'<e	i<lsc�6aOe
�'ceh�iln��ops�tam;b[nouDJs�'I{asorGlkh'b �a�e�uab}nostr��tundE*i�lxn?�r;os_!e�7a8e/o�':eisng�'sHatVi�'o	acn�sc�aG�o�'iso'
�cT%eheios}y
adm�u�e��i
�anS}se��gglmpene�i��s�t0iogi�y^_cesetrFi'�yhonemicF'sions
�s�'Czoto�w)�we�'�l	o'aegil�o1\udlrel�lh'�i<ls�'��b�e	is�m�nage	iFo�'fad�escfKm?s�e0}ii	py�ce6d�}rs��aa��ceghlqs�1t*�uic�':Tksl�r�sy8e�lizxee�iY'sdsse�mtyu�ei�t	�'-b^[eiB:my�!g�UaB�eeu��e	n
'aehilo�rstus�ta��p�'ls�t�'�is�'-be�_is��ea�ar�'-��b|�c%Wef
hu�il��sw��iof-peaBruckei#qrn�Zg)�aRoe�Niy��e�flov<�e�in�'BaJ�e	ilsesE�sae	it�eion�ojvrJ's�'dhlse:1i�ycr;wr&�o�'bc�eRhim>Yos"�wi�to�akay	=d�rclB�e!JiA�n~xs
�z�a�eouth
h'�ess��a�'l�oE�e	i�_ehrc	@e	EilnrsthAa��eadtmp*e�'>�bei�s�y�dr��'<�e	�i�sen�r�s?e�gl't:e	�i��o�s�dt�'abeisTbin�'eosb�ter�'�e�disuo5s%�iatl�t�Dbd�re>�n:'a�s�ainhlef�dis'd�rul^�l�neisty�'d�Ro�rstyr:�a�e�\naB�e�io�krgsklyacho�eio�'<e�s@eho�'-eDZf��iopswytwo-��mate�r:'d�rrF�gZ,a%;ia.�ster!in�'aeib
il�Geyh'ad�m�rsb
ileynse�nSs'g)sSHoh'ergu�insib_eu�se�lr.ss�r�s�aosa�eizm$Orbi�cqllla��ia�ir̮e

:�'3Zegh�Tl/�sMv��'�si/�l�'�ins�ah�a
_'-a/�cd:eg
�nVUtwd��o�6t
�n_'<r_'gMs�vseh'abcdefghijklmnyoprstuz$wa$rB:chiko�uh'-nne�kel*�nage~�i�'�e�irsyake	i�'d�rscs�uut�OaaFe''�e'�l
�'bdfglprs5a+�il	pye	ih'-dh�rshe�aead�'velaip
ft�e[�ua��r�a|�ol�Cti
ddngFe�dilnszKlste6.rl�ijzf�Po�at�'�eI�iUls�'afgswC3b�uei��ly�en�e
fgss�^hu]�mamma��ed�'ano'iqssK�mr�'�ea �iheidd�i'~idV�e�iilnbUuT0u
ah�bcdegilrtt�t�h	�t&e�o�'�ds�Ptkin�^na�vr	Gn��s�aeiosud�itntr�t
wgknoant'A�s/Lsa!qwg�s,�ap0nXOwmbi8mo�n;ai-abcdfghlmnprst[�uvwy
ace�umnBFpstɴu!�wc�og�coupS9lt0�hat�i?�itE~ao��rY�r&ygHxiul�l�s�yaeho��sust
'lnl�eul�atrLa'�e�ian#�nlmrlouineat,rru	�er�'<�e�s	mpo��u�XnlturaliZls
�m'�timr��sensionali'lv~eaioucRim��r�Jet��o
�i��g�l�rnctionJ�a%e�ye��aaeityerali<lHss'�m(�tere�dvel|�eu�lngual��i'�seio�o��dgT8taStllionw�aaotion��ami�aa�hlorur��t�iyot,i�yaei	pyty!Mfi�ne0�r�'-s�txch�4o�'*e	i#Mo�ac*ea�imnt'�ei�ovk�e"ila'�e�rocgess	iForamm%e׸irp��oa|�c�@ncepty�r�Zny�se��c�eao
gWr~1l2�sahoruls��ek
��eDi�sreaZ�dP�uaB�cbdercOu�eiZnaeiol�r"eu�uvrs�e�ita�"mlu!minrs�d�#e�'bfm2.ps6aloe��ih'd�rstyp[e-jum$bo��rei�yd�tr�e�f	n	cdfgiq�orsh�ia�'a|ehi�kus(�ea*;u]enarunre<l�n)sab��ib$cbo��rHaei�oss�dr�s�'a�sk�nq�dnq�dm�gcf&ymK|tthipa�li(Qco�'�e�oKt�Fpacd�gikm6prtuwls}t�'is�s�&ah�i�ieor�'e	iGosd�rQ~scth�kae&jl\nl�'�l�'�ei�sy�e<l�naun�.sr�'eVfi�osaeiou�y�iy�'%v��l�y
'n(�gh-pat?�hlwmrbaitdedg�e+�u
op?�aillum��b
��aceghiklqstwalourt
�i'
esse��i�y�'֍-bd"mso��uvilyte�'[slar>�ti<l'�stt�'drs
t�ur��a�'pae��irysdrs'sso�0o*�acn�'aio�slh'g�eri<lsan�'<ls��hO�lgC'<ls	�'-eimo�try"Frglt�'�osl��u�'-e�rs��be�nh'rB�se�5lN�gxh''~ei�m-nQ�uh'eiosysdlss�'bsu�r�e�n( lrgs8k	'-a��e��i'�nsyssv�.hc>�nrhei�'�d�soC'Z*eEs�dell�baehistu�bg�nten�'�e�is�eiwIon�o)}vh'�d<l�nrAnses��ilnat�eiFon�o!veg)i'o)yuhiwQt�'"�aeosrh'eis}�nn�'csho��pali<lssy�t�mGtm��uaz$�kilsyWl+�ne	i�'��-drs�p�acelnorstxln2`g�lm_aeonae�'�a�lptla\�sl�riti�d?�sػa&=eg*oa�'?h�sclp!�salrdi�a�t(�uon�i[uo��gi-a�cta0Ldim �no��rta
fdpod�ai$ydtno��dle�'��fs�(e�optae�c��l:'eiri�y�e�ocfq�'�ae#ist�e�iiy�cU�eF'&iruh�'ios2�cglraph#Me�yogi�y��c�e,�s�zoemdd�ea'�st'�ao<+s[u��lMm�4ntwGil
B�b�qinchhau��s
'.abcdefghijklmoprstuvwyz�d<sjaemena�'s�me�6nzh�.�'abcdefghiklmnoprstuvyz�cBn&�oVUp1�bc�eios&�oas�c�be�k]e!h5slr
e�aeil}r�lj�mta�n�rn@af{�te�n�r�s	�'agoAps�wtyMmsaHYke&i �yuatmt�lmaflprsvh'�s�'-b�e	isi�brusB+ha*�u:'oHYbm!�ie<l�nr��st��e�i�y��a19eumyu/�ra/�m'alo�fotSxr�e:'!�abeiq�ooouyc
c-pa�?m	�'-Radlp�rscda�nlrop%�ps�'rop[p�eyYBlF�ap�aU�bng�'
�;'acdq�en#jno*=stY'tk��n�e��htyi'�nei^�uyt�te:'�ds�'g	Eia�ibcfgm$ oprst_w�Zai�oomposiab$�raetz�e�etart��iou9bch�etNa	�oruct�kue�suchnologi	)yJche
�s�euwc�FkHYm�'a�ehKijkloprs�0lt?�aha�'Xl�sew�sleon
�'i>�sc�Zs:'alx�laei�yv}mdr�':bsensr�@soV�x��tabcekm4norwyY'coo�roa�nh'iossssiuu�ss�'[el&Wstepst0�yi[jci�c+�s ~zmb?�e'isy�en�a(�oaoۡbgntansettt$cd�eion�ov�e�il�rog�i�yp*gbmmw
h'-��bc�@e	i<l�nsmin�dast��e�i�|hiet��oacdhostM�'l�sh'i<ls0�stt��zae�Yrnct�ea�q�' �u��vgpa
�sharyn6�g'�x~$aMeiuy�'e<l_�nr�t:'ac}ehi�lotuwlsi}ates.t �hh%�ea�elni�a�e�'i}s�emovo	un�'ap�hswlh'i<ls�s�tQ�zid
meQ	ei�tM�'�s��e��iyr�sa#�eiolh'i<l�nss
�z
�a
�e	i-m"�ts�m��tpathKi'�s'�yes�tg~$rstahh��yt��'�ai�syeao�'s�tusWl�ni�cl&laeirwWv�yrhj6lro:':e�sr}eto�'ls�'-sga"z�ega�+bt�eiFon�
oati�l�'sayea�racire
�nIt�'s �mve�l�nt�i�y0��:'�aVUccsace�oVUal��s��a:'G�ejameI"n'abctdefghilmoprstuvwxe�sr-do-we��llnprt�'�ederthal�'�sh'ossBXtli��t-<b�@e	i<l�nsu"shiore�i
'�d'�sdg
oe�.h��eh<l�n'ruas�kclhadnezzMaao�'erss�uekrtss��aita�i�o�yt�ein1o	�'bea|ilst
awanZddr�}ca
�e�ic�ein�ggio�blmpsrto�ganc!�tFe�i�yh&no)�si�ol'�eia'�cfs'<�ce�i'�dsar�'eiosyʹoe�n��v�udW�l�p
h'�efj�hl�il'�nsyul<l�nUse	i�'cdp?rswra7-f��oE�so�mrk�'�e�s��aert-siaH�elort�ei#on�oveih'd<l�nsn�s�teicth'�ef	isu��lgen�iZ���e�ntia�b7-n�teios�stude'�'�ei}s6de~$rmt igl%�th�'b�e	isoru�'	�eh	�il�so��oi�y��nr�'<�eh	�il�so�Moi�y�hn�'�ldls�'ityte?�g�eG�oabet!�io�0cd[a�eut�tcsh"pe�eis�'
-cd��glmnprtcdfgilmnolnonialisT�mfucian�is�marwini�as�m�tas��ceoor4�gthi�cmpressiK#oait�iberaElarxis�mfStazi�s��mloassic�'�aism�tlnronialis��m�tservati�s��vteix9cyr�miothicY'gisTrzTue�i�m�toyrph'Oi�dc�'aio�sQRtt@\a�eo-�lcot!�i��mahlXrt��gio
yl/�i2`bas�i�mrtole��mea7�luveropic�a'�saehotl�'I�e �intrh(eriot-eic�d�sK�l�ntoxi�c�ntis-mth'
�isunte(Wi?ad$
e}ftorn�uv'isy�e,ns)h(�iezi�oauy�'-dlsБrwБrcstaf}e��elr��o�'fa�e	ilose~�i��:'drsr�'2�i
�'bfhistwzaol�l�ol�ierfhlIlmwvXiamT�pandq�etsor�Vlq^zuet�tcp�alR�ieilo�sd:�r}e�ne	i�'dsLoork�'�e�Qisahualcoy$�obmrtEua�naiolsg<li-acthe+�ntia�c�d�sabcdefhilmnpstvnatomB�iyeihavi��o[co�c��lzLhompl,uegeVnconȣoeied&�bbril�l'�sormoWPnmua6�eiongui+�sgi�yc�e�s�a�sauos�'�a
�esaehsthQLi��o'�s'�yp �tys��iychi�oat!�rc�e�iuien��c��trge�or�i?�yiorych'
�a�isxic�n�i�oag`onsmi�.tp|Iaerrh'%We	isa��iolh'i<l�nss�tt�z	ae	i-m
ft�'d�rs�npKuehi�l:'aei�Rsu�'d�{a]bir-$9mtcd��efhua"$ya7ih��iehlHzlts�6s h'-abcefh��ilmnj|p��rstage��;ifSr!fls)HaoY�ot�y*.rio��ru�e${rqnuryY'phtoa+%ostle�'-under-lyL�mlr�s�'�lsaonr�gund
land�'*+e<sa?�vaiyn�dO0n-��wwe�de'�datnrk�/ees�hs�s�h'-aƞbcd_efghil�mprswygsat�h�
ht��a�Ngast�'Feis��neale��r��elasS^hir3�ro�uou��n��ee�s(�ta(�e��rper�'%e	Ei�ms�we|�oa
ed��e��teoek�'lAdiLiy�m8r�'osnwx'�isn'ab�b�it�uh':-�cVUlMsaouhilprtuM�e�oiL�euhruindjۡeawa��hruh@on�sgot^Ral�y�i�lMsulunb:u�'abcefghF�jklmnoprstuvwx)�cg'�lObm �a�'beis<e	i'Ullung
:'e�snliv\e�~racehkoerag�yu��oo'<lnr�s�te:'�s!eio��r	n*=rlY'ate�l�\stQs
�'e	ilnos�ydlr�'Y�losdeon�'ssh'Z*e�iss2�aBeacm!kB�e	i+�l�6e2bdlm,este&;mate�'�s�ue;(dinae�i
�mb�cltvu4hs�e�ozs�uc&=eftsyiy�'e�leghtlr�'i�{a;eaelrssszd�'lsiy�n�`rle��i�et�'-c�Udef�ughit�jlms��tw!yblostwlinIGdi	o�fBw7�oxiatchF�m�alkfoub�'bse	i�d�r	�raE3l�a"�enga,�l�ei�oy�7fJugar�eis�hh
�i>�pt%�a�ia_)ing�daiNetc'�hiȭlVnateiko �t Ieti�ltn�'*�elps	Ei�yo4�tM{sbimriluy�ney�nr�ss�'k�eq�tita��bo*dtacej�ntompb�o�'OHfpstvei8�nnh'(sO>eOJiOUyIe
fauwte
fhn	db}e.ih'pseiloy�enfe�ge�'s��wI�nN�evan�
a;ae$ski�'taeimprstFwr�':G�'�d�ni��licke��is'�ya+eiot�\z8�e�aic
Bdf�ti>�y�cZ;e
-bcgu'�xglyceri
Snad�ecte�Brehllul��o��aeln�'�oycerin��'�Gey-gri�t�e�oeh�ah'_�e�i�orut mrcb�'-abcdeghiklmno+prstuvwxyzbc$gns�!wall<esla)#ion�sh�!oMathrC�l�'be�il5�oss?�ilei
�d�rssl�'i)Js
Duey�'�m�nrs�w�stRYkturY�n�'@\ad�eosu�e	il�ye	i�'ds�!zla�e:'l Ims�'�l�sjgl�orsM�e]Ci'�se~Qioy�'-dl٪ms
tma�kmeX�n �ia�l�'n�'�daei"�d�'nclat
�ourLa�eY'na�er�lt�eiFon�ov��e-abcdefghijlmnoprstuvwyzabcdefghijlmnoprstuvwyUzbcdglmnprstuvxeorsrratio�nrigi%n"aor4�bach�Eir"tdem3�ieptan{�ci�ReolecQetadhjm6lp�i"eau4�cs��tinistr6lagrres
�siocultuA{r(-ciloho�Flgn<em�Xeer!�geri4�cderop-�aurys�mpea�Nrbori@acsig��nht%�lernd��a�itom6loailab�Xion['LaWNe'�saeilru!�slile?vigeren�c
�tocdliWPdegra�#dogao�cea��k��rsIGiahloruyln��prt�io�>cbohy�dho�dla��el4�rr��gamydia'�l'�seiRr��nlmnorle�uc'bmpsautya5ist��ieiurcVistsv�iWtni��c7selrt'�ei	n"t��iy��ieh��edfjstvuct	i#oiguration['Launctiva[''�l'�setcr6lu��v�ra"eirgBhignBhuBhuiobut	ig�over��seor��tl�uperM�aro��d"seiyҦdm��tiVnstal�lbmsoiQedu��lto��dc!�laeir�ug�i	hMcdflmnpstu�mce`rive+�roc!�rominatiou,n�arecii�atructivaec��hrminai�ctsm+itpshther�1icjqil�orpljios Suiminat
�ig�oun�cui�s,iai"y��nS9vcdflmnpqrswvxotnYnooK�du��cfecti{�vY�aectricBaseprgeG�n�xdfor��cicU�fycloi�duivalenc
�tytheU�msen��tceipth"la��n�>cm�psten
Bctlo��s�?eaeiloruc"dttA{uBa4�t�@rcl2Kntion'�asopodBdaou"ym��m��r�wc�et��u<orma'�l�!te�Menction�a�ieorn��deR|tver�na_�naeouyzarBhdrepdi�tetoU�fs�tm��apoc�ydmnoren��tperat�o"cdfnt�1veupen4�dst��relc�Ktaemt'Jmhi�co�veo6julnrlectVusi�2oacfvi�c��h�9eention['LaCisxi��cnic"sri��tudg9i�eeioA{gtA{hnt"vegar9�i�luY�i�eA{c��gaei��oglAyi%�nig"ndm�xst?barl'!�lsopoliF�tcglroste�r'Jrita!�n�raeuyrtco�Ft��i��ug6laot��i!�cmerica0�lmp�hbcfprjls�ei'Jgervan{�ctcu��pf��ierati��ovgtanism['La�i'�shogonalxiE�laehoruryaetlm�5pM�l�gench��yiyc%sipa�n"t	iwmY�arfi
�storm��a	ish��au5mrysiu,cilBhrsu�o��ili�ueogjsunud9icri	pc�dfgledxhueissiona��lt�-�asramm�a�eife9r��bni�	saehi��u��cdnio�a?ld	�acdflnpstiouproca
�l"tg�vn
�i��re!�u�@eiul��lE�n5a�Iie��wresentatio�PniptdseA{unt'A{istan{�c
�ton��ds�jrurnab�lytYnh)Hg
acei)Hk�xlm9optuwyl�Tahi��oeҢdenti!�f!�s�}acglxt�quaF�rre�+g5eCiA{uln��vg	i�quo�/kei�acria!�fli�s"zma��tr�iaY�i9or��in1rv0da�iut��e��ccprsS�ceprvi'Nsor��t��gta��iimS9mmpathi�Osaehi
gor��yr�~x��nc�	nrh��nmina
�lt,Xiei4�rat��rn��k�+baio<Pudn��is�fparenZct��v��p�nrsi�Jf
�o#�be�raeiolr�<i�#inrtoBhmu,bsion['La�e�i'�se(r�anor�>tlenwc!tu4�lcl�/tal��tau��tntL�eho �irR�d"kie"6l
�'bcdglpZrstuvrsa5+sor�bacZ*itde�smept�aiv3�a�edhjmi5)c�
eauɶcs�tinistr5)aego�'n�saj�rres �sn
F'ciloho�slgnZ*e/�mer�sgpea��rps!�iig�nhtl�qeen�&dtom5)oailab9�iae�iru�sslileSHvige�rea�k��raehloruln�#lo�srce��ralran�c"�tg�eeiri�cnib�clmnorle�Ach'bmpssaut�ast+�ieiu��rtt�ani�celrti�n5+t�&i�yeh�edfstvuct�iSJoormins�tsm�tetc5)ur�6uair��gn��uiobut�i~�oversb�ie�+rper �aro�d5+seiyd�im�
ti�nstall�ilmstiAuvu�Olto��daeir~�idlmnpst6�vuctib=nliv��eocr�qaominatiob�narrtmenb�teciH�ac�ztri5p�ascilrplin~�aosb�uiminat��i~�oai�y�mTfnF'dflmnqst�vxu�cf�6eBaectric8Va8�pf	1tor��cuilvi�}ba�l�'suen��tchh'he�	hceiphla��n�
um#psten=ncstl�(oaeiloruc�dttb�u8Vate�n��rctionh'8Vaaou�ym�mwe�rct�1u�oee�zn�corHsvernmentUaanu8laeouzar��dredi�Ntmolo*�g��md�enrsen�
tcdft�v��leupenɶdst��relrc��taemtmat~�oi�Lo��cin[�geolrlect�ucfv��he�re �nxi�1cri�1ts
uud�#gi��ceib�gtb�h8ntve�NrinMdgaeigil��nlUNaigni4amtSHbalh'�slssgl��rita�nWraeڞiur�*tcot,igot�i8cme�
rbcfgp��jlsi��gerv��acu�p��rf��ienar��ierati�o)}vaehlorurya��etl0�lic0}sipa"n�t�i�mrfi�5sorm�a�i�sysi�9cus�ese	idHsil��rso��n�wilH�uaeocti�cjsu�qdcri8�p�|dfleissi��oth'+�assi��f�ubn��iaehi��cdni5ao�6ad�;o	�6acdflnpstiouproca�l�tgvn �ie�r�re�eioul�l[�un�d��ie�wresen�titdseunth'b�iss�wa�ft�4rurna��byt�hgZ*iace��klm��optuylar^|ihi�oedu^|lenti�sfacgnx�st�Huar��ireugseic5+tal�i<ln�bib�uUiop�kei��acia�sfli"s�zr��iae�qiUor��in�1rdaZ*rro�oa��iut��ectub�rc�iprsc�he�
sporth'�i�
gta��impathi�Wzaehorr�xk�g�ncn�h82ueira�Pt��nea��t�sxaiodn�is�Tfpaɶr��v�
pnSHsif'~oo�;reionr��ob�b+�aorlen=nc�etuɶlclp�tasl�tat){ihogZi��r�aie�le�r�bd��jkns�t~�l�')}issy�'�%d8�g��ik�sta�<nirdrmR�a!e	i'ab_cdefimprstweas�'d�h��'renalineeor2rtr�4nis(;c7*t�epineph.ro*.lH�etX.z�'a%e	Ei7�os�'lnth'tci<l�ss�tz�a	e	idae	id
�rs�'d�s�t:'Vatyivo5el(�ais:'w�te:'Emm�9w'�eh�o�'-aH�bcef�XiBlk�mra�suweI5n��swast�'ews�rl��ny�ard���sest���'��e��wmptos�nloif�f@tarst�'e<swr�'l)nsi)y�e&�a�''�lnss
'��eIlm�si�pe�o'�umbe/�rr2�lH�aest�'�)e<s�6waeN�iX�ltygiadUnefhioty
�'-bcd"�gpsyc��oa;�lD�g�n'oiN�vi�eera&�t�'e	idrsh'�iss'�yhre<ln�e�gcoHmarl�Xga
i�udaU9macehio;rstwbrt�i�Dli�y�a�e ~z�ein�gojvh�'�e��i'�y�'atbd��lps��wa<�dVp in�gMaiA�ongD'�nscfn�oe	i�'B�abds�&oi	pyRa*c*ecrh2�oiy�e'4oing��hiothstanZd�ragmn�"r
osvkchX�o�aht|'�se���'7|as/��ea�lux:'aegio
�'e�k/rsl�mn�'meils�tsz
�e	i��ta�e�itioa�n�a'�ya�e�'neso�r�ctYBi'cksain:'�e<suzneC�tib#lih'ah��i
rtd:�ya0y��eZi��z\c&=e8:z:'
�d�r�acof�f�eac�f��fh�*s�'�#abcdgiklmnprsst"puz�'b�seisiE�l�y�eg�na+l:'tnJhle"�iaio�ur�s�^t-�fp��o'c�Elnpst�'!/iscJh��l< r �iWNo��iegih'�ln�r�se	iC'd�rs�s�t�ae*7g�n��s8�e	iu'aalofѴaloflaisNbbmgrbor plai�nf�ti	py�cg�d|ebeisu`�ae&i<l�nsudr�s�'�e�Qihlp
msl�akul'(l�lraioTbS$c�lt3we�biFocTa�sl'6uogi�yA{ce6Rsnsous�ematiU�c�skul'lr��k
�'ac%deg Ik�xnsvuth�iak�u��atzwa5�teistm%`yb�qeoot
pe�Qil�'dl��mrsinhg�'�isG5yin,gu��r�'achm@�pr�'st��wtC�ei	Gn�o�{a�r�aou�se"a�gai�cswee�!t�a�e�mtiocvn�u�'�a�i�s�a�"el�iyzle	ih'd{rsrh�a
_'t
a��b;celmnqs�hI"sY'r�eo�nph�'Laeos�a�tlmssep�sa��nB:gui�!l�/s�e/�sdm��p��q��ch�f��segmlig��_e'abcdefghijklmnoprstuvwxyzbcdefhklnrstrWjialose
�yoc+BknnWeo��rWWeowWnye
rarrelQ�lair
�a5seggin
�seeff
�eeaV�reil�_'
�leoill/�yur�khue5sallivW$aoo�l	f~$hkmprstx�'issE�h�'elmsuw'�dn�ya8e��omjrol^o�a�'�e�i{@los�m�w_'�e�i�'l{ce�hlm	)sntsan
de`�a$�a:'.abdefijlnostv��dmna
U'carWeligat8ouray�cte<ldn�sdilrs>y(Qisan�c6ti�s_l�oat�e�iuscatm�e�ig�o'-Est��sw�.a�'s1\ueuct�'-�eiFoslibrifnovi	pyc�e{an�'��as�ei�0s�trgat�e'�iaiotei�l�nsgqtvaJeit�eI�i 2on>gueih'd<ldns	n�tera3�tio-n�unq�
g�uo�x�e�@iceioteune�i<lr�srae8�in	ttΟid<lnrAnsqrsui_y�eou�svae&ibnt>Mil�ey�c��t�i1^os�ein�oveh'<ldn�sd�rilestce}Aisdnssc�t?ee!i�d�l
ns88aeirtric�aC�i(sna�c�teu�#pc
�et�eiKosnov��ne<l�n�sa�KeruinRae	i/�msdruGdsi
�o
Lvz�rseFu<l�n�r�seir�s wa�o	aceh�kortur_6iailulmsion�'�a�eCRisdpentY'al�'�l�sitalHei'l|�su dP%slprth'�ahIei�lX�ns	ns-m�tai	py	�n��t*erse	idn�c'�ta>�ln	�'-fgios�ug"or�o�ota	)cglraphFeQ�i�yo-gid/�ee �or.5r+enomowo�c�<e��i�s:'aeio�gh�ln�,rsvedrBa�o�et�Ftua�ei�o��a}on�t��nl�eYlbg�npre�Zn!�o�u�ol@Ba�i_'ade
�fioM�s'�tyl?�ifvb�ei<l�mm1nse�th'	-�'�l}rst �s}s,tHcP�ftn�otsDumnru�'(�etoc��e�'	�ei�lo�sf �z�reut�sr�'Z�e�#l�ssse&=uy�'scdmnrsuh�dlueima'sBhtpa&=ul:'�5l2z's�oplpogi?�y�e6�shi��lelq�ls;�totphagA{eiu��srao?ud�iguzYev~c��efst
'-abcehilpst
�abcdf��klmprst6&wR�ren��rreq��ui��cnes�>saR�ei#�lkIu�t?�sP�teoa�dad	Ei�scet?9aa�
r��ghe-cps��ws�u	e6�hl�'�sye��ak�usdnrbd�cdsN�a�eive�'<l�ns�'�eVfis�tandeE�dc:�n	sei�'�phmrsa{�t�!x�'<e	ishi�paol�nt�'�|d:�e8�i<l�ns�e�ziFo�uio
n
arint�'<e	isehiptt�'sZto�orei'�d'�s?�dr[7ia�gr�qat}me-etti�mln�e,n�{tiAdm'�abl�d�gilruomo�)sl�v�ve	ih'd�rstho�re��i�'EisQ�sin,bquޙi	h'a|�eim�oskruje�u��inS�oeHgL�m�'!�i	emsa��'Bkln\s�'-2�bc�efl�iEQmsyssVhsan	l�i��ekSt�ikgth'�e!i�sibw�a
M�'aehilrM�stT�m�apry�_e�'a�xeissm/�a��defychob�eenoN�k-dokS�eo�tna��gw�aahoh^ma�'$�nsoberfIeadef �gilmosy��:'}fjt}vu
,wX,h
h'-L�bef��hi_�mdnosuE~afOHg�9stwaAQis��hi�Vmornr�s�obi��e�e	sAwm�gptobf�i��vh'aG�d�dfno�sg�tnt~�i�'$ eh'mHsarga0NractorAdi	)ygnvaorch�'is�yc�e��a��cnptucleoti2�doli�y�e�sr�o�'
dei�'trsHWttaMen�iHe�s
g�e�ompi&=uac�'�d(;n<s
h'abdeinsag��h�k�|n@
pry�'ajm�y_'ud�sur�gl�n�opet��'�s)�t��r�*cP�nsr�ti/�'bcdpsvomp�Teire|�corten�ct�lsesen�c6tceien�c�tx~kuor�e�o}k-a�<bcegilorst�uwyb�nf�ls�osv0o�sc?�ita�
r*Kgn&{s6�ieoh'��-rglm�6eogi�y'�c�e6RsCRi
�'-*�adw�fg�]hi�nrs=�tdhlF�ms�opqstu!�wimensioahn6�ao"Hr��i�iual�r��i��th"YioY�rv2i�-pmans�xh�rta;i�d�'aHe�o?�h�(e�i��eoingX�n�son�'�\s�ioyokFe	i-be��g�'mnatopoe��i�stda�gush�'�e	i��ac�e$9h$=iltrY�eeaow~�a�eaoriato_Znglen�i�yogi�y��c�e6�sa|Erc�xhoph�Xo
dh%�klm
o�.prtz
�a.lna�d�e!i�sd!�i
e��pa}ttip\�ph&�a
e�iy
h'acehiopt rstuclqjwif�ti>�ye'�d�r'�s�'esscen��c6tue�isd<l�n�r�sode�''�s�csd}lnrssh'-b�cde��gh>�i<l�nops�w	ade��fhm��psтt�ind-s"*hear�+t�kn:yaended�narted�#n��iҪoou�r�<socume}nd�r�sar�e2YnfficXeg�po��slar�iae�'
bG�dnstdt'is
'l'�s�eiFo�cn�oQv}Wt��eit�ruC^croieIdhalmio'�a�clogi�yc�e�sanoDut�eEginon�'ast�&ei5`dnrstVro t9@sUliUloeornheiKm�nrstun9evei�aJeint��e�eieoss�eiFon�o�vbri'o�u�c-�eioscmnoh'�aC�i(sai�u�rlsz
�a��e	i�m%�t@ae	idrsn�'a�e	isl�"i<l�semlect0�retri�yce"s�h(Qln�s
�a�'abcde��fgiklmnoprstvwhz:'clnt,�l�quh''�e<ls�'agj-e]Ciuouut^�a(t	�'%�a+�n�rsl�wy0}tes]7t�e�ior�'is�y�c�e�o�'<eigaos�xc	n��st�'ag�e	isl�'��e�l�s
a!�eh]Ci�sd'�s�iaeir18dstra�'�lst�e�i�od��e�'��esaeiڋno*�ui1�n
ar�'J'e��ils�ei	)y�e�nna
flnrt�cdi	)ye<l�nrѽseiwIo�'Uds�Kn�ovi;�c	�'bg�n�osjwo�dao��nn�'�i"�tai3�u�yns	�'ad]eiosF�z
Bi_y9;csza	e	im�t�b�&t�'La_=isae	i�btion�'Tascmphlof�reta��lhosp%�hmR|t�'<eis;�c	na�e^�s	4beDufgnos �yzc�lnt�'ae	i
oshbl�t�'i'lb;sstssde�rr
�ei'�sng�'ai� mn�'aslth'i<ls�s�t�eiFon�o��v�'o�ltng[aObnaeC�o}yndY'lo�aol-uaeim�tent�'a�e	isl�t7�i�lsrisy�enes�5stho�i\ilgpt�uern�eQLi'�s'�yaphiycharyn1�g�xundi~th�ia&;ein�'�a�ehiso?�o�c)ms�'io�n�s(�r�oehq�i �go	degmnprtonxti	)a�c�s�e�i�l�ypi'�y'�c7seornesR|tis'�tnali�l�gs��tz"NaC�e	Eiaphi�y,Oc�eolN<eor7zmaehedics��stl'ݷsdic�s.5sospha�@thoH
mi�c
�s*�a��ielF�l�@'abc�Weghi	lmpst�vw:�g �k�meov�rrn�'teq�aei�hu>Yoll�,ao٤s�iOAoaAik_'woIsFeriCaRs;a.iol�s;�talrit�4iGlyit�4i�y�/rX.ae�i
Dot�eit��a�ce��lr��w�-ino�statio-nIuabcd]�lpstrthriti'�c�d�sly}aly}aeoy��nrQemntok4�es�?taF�oth�'is�yFac�eaprc\�oer�Zmom�e�i'�ya[�iocnis�ze	i-m�'d'�rs-edgoth
:'W�i�sA�aesMt
acb�chi�lot��wegh?�kjr�0tu"u�te&jlr'xensw6AiorldIDl6Aots�tchrsoh�_acop'�eKiaFeo��w�'cmeRna*nabcgi#�nrst?�y�zgadoug~$olkiheht'�nj�aas�yelf�v��a�et�'-abcdefgh>�ilmnprstvwghotrR�oa��lf-c�dpo��u�ho��c�a!�r�g^�nrg uaioruc.�lk�'�essdZdsau7ix3�rVXsn�de�a'�d�ei�rl��daXgl�or8<s�ioypZ5s�'ps�eVfi�'�iaiortveds.�t�e	i+norsh'sya�ei5o5unw	insnv�ake�i'�n'�sdrIlm�siLwailo c��l��egtlh�'s�6ta(ok{n;uVxoruh'�eing�ns�e9ioZ5sw	ins�tXien
Jn�si�otss�ta�eiavoZyZ*inVXsw��yd#e��i'�s�'�e	i�rsL�e?n vaicuounVteouvenlreuvrݽe	�ig��rs��c/[uaelorŪuc�te	id�srform9a�e	isacye'm�:i�s?quoduS\caeiu��cg�mne	i�'d'4osk��adggh�tnZnsacehikmoptiRYlo�ol�tr�lion<�e	i+no'�tut
�iHsr�tdzeh'S�rseh''�dssi� raVXr�2lurce��idFr�seor�eonkene��aarnBty�tdeiVtȢpa0k
�oaeiord<l�ns�nai\�gtshs1�trekln�'e	isdir�daeiou'x�lrti�y�a�e�einr�'��-ޓbps�wroo�f�'-abcdefghijklmnopqrst2�uvwzabcdlmnprstbcnundan�c	�ttiv	�ei~�txie
Do}�ruriosuelica�cta	oE~ra8u�nice�n�tarotid�wd
�e	ieinstitiveinessF'�eim^�em5�pahlkativ�ee-cтtoul�n	bcglmnrt wundan	cokthtieve	idK
m
frs�eisnv�e�iPegresSsl�'o	)s��cbirta��xlysHei�n'�scmZhZ*e�i�seteR4naeilorula[Nnar�@isd�th'Zdso�wnalo��r;uX�dk�tei'�d!�e��dirr�yolde�fnaehlorl+mprsu��laic�italN�ie��fth'o�i)stio'�n�pureM(ba�erN�g.aocuk
��ei'�sd�e	isamnort�'��iseimpF'�rsn�titmGsY�tel�nelnsat�e�<itoeit,xca+�tfsi�dcuie��nmSpk:lre	ceiod3�uti&�cwd�eY!is(|ae�iorucptvo�rende�nermY�ielop�e	i+n?saeA�i�f��wswjsbeh'1�bsadmnsxgte
Bre	isnr7iuD�copt�ihlas�ei`�sz"We�io4�ythusiapstil�mceptitLaO9e	irct�i�eUislooit	a<es�e	i>�uend	s�a��eil�omum2ls�Eh�eio	py�eigwh'�e	inserner�Qa�oa�eo z�uw	ins��taei	uyn�sud��gh'Z*e	islh'�eCRisa
fdrtd+e	is=t��pncdfsredul��oul�4glu�aur9a�eoy�e�issV�eilR�laeio	pyk�di�n[�p~�rydnh'Tae	isavfp�e'�s'�tera�ge�rs�acnor �kkh'=be	isd�'<e	iкsaeiounsp�tn'�s�e	iter�e	i,lsdicg�hd�bech
heiu)}cghth'e	Ei�s'�d�rt�Brptimis6bmrta=tlorcir��syZ�kdRWnt�ei�Fc	iwmspwulPaBjoeK�raeioi�scsi-sc��sriLb�p c	�n,cdmtuc�e	i
�t,oect�eisn�o+vuali�}faei$=oun ta��fpc
hh�tres<0ed&pk�de	ih'rs lnh'ZnsF'a#�cehiloptuimtw�alplsje!iurateGdae��ln/xs	in�rssitivu�eao,sd��r�elotgmzht�'�ispl�e3 ie�dee�pr�pf�lt�nei�Irconiali
�s ~zG�laeioruf(ty/fm7eȢpmulat�ein�ok{c��raei	uA�ists��e�ich��e�i�cff�e	ibpssTtcri bpl)iy'	ipi��c
aehi<l�nouykxe	in�rs��e	i�diornk
i�sugdh�eouwh'	ins+sg�m rhtY�e�n9�or�en�pailua�e	itio�new�'�e�isaehiorteZ�r
�ae|inind�gelm�e1�isn>�dter�rr�u	�k�aiot<�e	ik�t+t;uealo�Lud�Jfp8jt�'?1uaor�i�o�s3�itvesftivipar�iyolma�er�tae	ilnC�si�kr�_adSns�'�eiss>h-e	isb��rdr�'-Q�soccupS9i�'abc�efi`�nopt�uyl�a!�ioa�|cl(o��roodh'	�sajr�aord�'�is02hdBnsa�ei�n�sti�o�vsz	a	e��i�ae	id[brss;�nr�d�jeaiD�lacghmstcetyle�Nnod�nonYeen�'a�esteUi�'dsydroxi�dorsa�oulp
�hoe�c�oster�'c�e�isatX�c:'aoyzr<�kne�'-frien�dman+�dW�i
:'.abcdefghijklmnoprstuvwcxyz��G�aSmo.'abcdeghijklmnoprstuvwxy�zs�r:'�ll$Osutoukm�4l_'ehik�tsy�'dm�rs�yaknettFe	ieyds/eandc�r�efni	pyc*eu�s�'a
�l�tg}o�'aehis��whbg�rve�id�r�to�rng�'yh�sad8:d�'adeg�?ilmrstn<g�eil�o�yen�'sg�'�sM{te	i�'d.�f�rsmre7VlK�eq{e�o�ae�'i�'sws��kto�whax�w�adk��lohrioatric(i	�sphil
�eir�aakarUli�$naei�l*�on�'is��n�s	�'aƞbddEf�rsNbynnn wagail:Gja٭ta Iv��d�g��hlnrsu�'DZfs	�'eV�f	iklst�'dil��le��stak\$i�'be>�iswao��rll
Tae�i'�sEkxdr�'ls�/iy�vo�'�e��is�+wley'sAXtam�`aeiu8h��nsta$�n��r
�'ae��filmopst�wu�cjdent�u��vzo
abceglz�mnpznthropologi�y7zcsotaniyA{c�sA<elima��tcolo��graph#eiy^7c�eithic
tologiy�^c�e!�satK�ho��iNpqa�eibl>Mi!alh'i�ls+�s ~z�an
a
fez�i0*o
h'*ad}�f<lm�nors
t}y��bcglnz7Re=eraphSJe_yithi�ct.8oo+_i	mtirnte�ikmnsi��rop-nD�sd[bgro6~mahde	i�'d
ms
�'-abei�`osybeaw�rdialo
Du
'nDqiearsdt�'^�isa�d�nt�ein�o�v	�'�"aeios!�tydr"�t�'stmo�enynsl��i �rY'm��a��iai'�s[u�b'�lt�ein�oeg�t)i)y�gr�'b>Ye��ip�sC�u�y�aehr�e	i
mslet�'��es�'-acdeghijkmnopstzeurop/�ecmst'�x�e�ha
�'�3n�so�nel�lahr?kjrYaea�stic<+tae �o�'ns[umr
io/�nh'e	isd�r�'dgls'�y�'	�eils�n�s<�einsz��g�ka
�e	i�t�ka
�e	i�'��aos�dlan�
dce�s�'�-ks�e��iy!rand%�rhyuX�run@r�ja�e�iwon�1ipr^Vla:�mi.pe�ip/t��yTxe�r
C'aehiorsyglrW�uoon�'	)scdhnic��oe0�iG�o�r��e"Fhlnei�ds�ngmsshura��pim8�eicn�s�iy�'-mu"ihlw@�oi�Wna.Ailae|�rl�a�i�o�'aei�6opr)suy�'�c?�k6lhm��nrst�w�yaСnzz	)i�ooe��th�er�'-bceghikhlmswybcgo�yJ�lir�lao�cw�ra_y��rhl��iir_lan��gv�nnif�vFaa�e�ol�slao�'e<r�t�_miou0�yes'iF�k�vala�eo'�e'�rs[u�Erh'abcdefiklmnoqrstv�'bcdefg��klmnpqstv�loul�a
�ioid�'�asr(�dehl.rlt��samol�'ssiu^LltB�e!JiKYe��eioo~r&-gnsa�Re7xii�lcaElx�'�eicwEasthesia'�e'�s��fAQil�oruid2e	iap�hayo']faaeiloy�ng2`xa��ln�ag`�aelh'eiosdpi��pns2"z�aHe�i�m�zggiyo'�yhsmstzpi�ac
Wsei�d�rsn�sglF)yiF�c�eing.laeiogrnet'ic�6siwQbcdtiauLimic�'asa�lerr�'i�lssz�"a�.e�"a�.ei/a�ecszaC�e	Ei�b�mtaC�e	Ei�b�mtli-teuci�a,�un�rt:'Wc	�s}aoir��a�d�ma�ehlorsrauVnmeiryrna��llia�c'�sasLa'�e	i�tlegi-a�"cdlp-�i
�ait�hofessio�|nych�iologi�y�c�e6Rsua��taci
oyiliendTaeit�eio$�cs2"z�aHe�im!�ilog7+iympatheti8ucahry�rc�x�iyrvooopFe	)spho�Via�en�o
'ehasl�'	�e	�ils<�eing�'e	i�mdA�es�non�oh'ae	isbKi�Tl
dglTmn?�og�rst��or�lcthyma'�l*�t�'aeh�isrg�ldA{reos9�t�eis�rz�'D�e�e�iFald�e-�aemns�tmutueFl7�tutu��eg7g�'h]di�'�eio�'�aeilms"�w�ydr�s�'Hs�en�g��sand's:'Via�eion��yament�'asriyan�'�is�rurs�'�m�seinC�sidMCegias�naess�xul��lcdl�oxhiali<ls't-mi)y�e�se	i�'d�esys4�mueJt:'a�eioLyke!}e\
c�en{st�'��b�e.�f	iA�lsei_�l&�no�cdrs0LfmCTno�.nn�'�a
ms�'-aehi<lno;orsuuEw)y
s�%tke	in�rsdr�r�seinogtnen�eeace�e>�nstzxliloupai�lUPb�nt�e
,iorh'syalh'�le�'bsoa�Vr��llar
dth'i<lss�tz
�e	im!�t �a�e	iaXn'�eio
dv�nN�aer�'�e	i&�sidge�'�Ibs)re\Mo��nac�hqstdePnathl'lb;ss��Nu
h'ab��cei�/kmopw��bge	i�'ds"�waavod�lnrsger�'-s��m�'�?--b>is�?-Wby0bm(novn�'a�.fhl�s�aeih'<l�nsy�t!zYave_rh�or�{ao��r�'�e
�'�aeiorsu	)y
�'��-bd�Wg�lrsuoard�'Ma-sn�'$ asr:'�ice8:l�ml�n�s`hrAnsr�'a%e	Eisl�th'�4i�ls�a�i�yr)�ae	i�'dl�rsand
h''�s�'-a��bcehiU`norstd@�ogonia
:'�nh�'�aeiowydrswoll��o�e<l�Qnu��lork�'#Mes�'�alnrs:'la�'ersst'�ct�'�ae	i<l#osd�e�'fnsamili�aa�i��oli<ls-mt
�isso��n�'-�a67eflnos"�wl�o��iq�exag3�lpysenn�'�;e
�iso
_mhysiologi'�y�c7se��n�osn�ct�'�e<lsser��i2.i�neio�sfamilihaacmRosrch�'7Mais�ySFc�e}a�eitka�do'�nond~i�yti0�cln(o�'1�l��m�os>�w�'appei'lsy�g'�lsz
�a	eing�lUs
�ae�]imich'"�as�0cAdiky�aei�o��ydInrC'�e	ins�'�e	i�ls��o:'�ena�clnpN�s�'��ntah��a�'laDei�o:'n}e}gch�'[Beiy�ene�ger�'%eis	Gns�z
�e	i-ma�eilro��tlnJli'�gov:'ai<�')s�'�e	i�lnps�'be	ib�sr�+od�erag�we�ih'-@Ba��bcde	i�lmnoprswa:bc�ops-you-e�uala�6iack�e�*ha]jysd�e�r��a�ee
U'�s��f&=l6Ruahl��W'or�nfxol��ial)}r!�l:'�s�x
M�'�bim�p��rM�sst�ec6hi:'G�a�efMpcq�Es;t�sabcdegijklmnopqrstuwy
�'-bcf�{hkl?nrst�sg�KeGoehTo	�'��ay�fkmssteepeDir
h'saokFe�in�g�i�'^[e�%iyo
w�'veisy�Ln�'e	is:'d�'�cl��st}y�'�eisyent:'r��s��egr�eahnt�'h�rso%oo(�o�'l�i�Ol�sybi�il8�eiy�eA�n�achkosstuad�ril�l�o�'��eisn��sgypnif?fr}siX%ni_�ocn�'Fe�slnait�e�i@Boar�i<ls�\i
adei8lor�_u�yglnogi�u�yce�as�'	�e	�i��lBost�'%�i�rsle	id FrsrsasQ�ttar��lian�'issz�kaC�e	EiHmaS_e!itiom�nacgmtricFe0}i_saelu{bl
*lGse�s
�lr�ei!n�sreB�eent�'/a%es4
l	emphilBei�a"ni�oh'sd	ikl�nprsvwh'a�e	isb��o�'e>�isd~�r	h'-�bc�e�Rh	is�yɮhsh��o�h�'�a��e	ils?�eei�'d�rsn��s
de?(i�'a��bgmsns�Oous:':e�e�iy
U'at:'gn#p�aBnorati��oveh'<lss,�a�eironegAds
U'e<sse�'�s	ae�filmo�tvgriDkacugo	�n:'c}ey)�pC�c-a�eiuomgF�r�c3c�;elp1�to��go�snni�ei�c�sbmer.sroke
U'�sic~�a�'-abcdefNpg�hika�l��mnorstuwzannd<N-a{�m:'ln�ti'l�ts0�za
�e	itionHs	=cg
�nert�5h�ezhei�ae	ilssusdPnre�&ceUbl�o�uclt@�to�pra�b
�nt�ei#Mo�n�o
@vri�Bec+lnstil��lsula�'rs�'�eSten�cth'i<lsa�lAar2n	:'aei�osyz�nds}y��h�ehln�8eg
,tylvania:'-an�'-rwfparp�tip�noA{ya�eort�h��olAn�a�oT%i[�oahic�og_uovn�'Rae	isE�e��-ae�hiUscgmstRxh�lAooH�rn�'ask�le*�rt~/yeh0�oewule�o��tcost
:'a<sl:'iWssWmumtT'<sclmr=nhtima��tbr)@ai�yeous"�lGnor��tan,cn�Yp�r�')�a�is�y	'e;ipst�y�srojnel�iydr
�'��cJ�eMcgimosyn^�egi}�n�=n�i
:'-n�si
fcO`d�uacdefghijklmnopqrstuvdmven
�tbu�l8:aehi3�ou7�yinpvla	,e	it�'�a8:isst�'i�s�u�bU�o
Lv�'ae	il;�nd
,rsor�ainat|�e	ip]tvie�Rnsts<{ei	nF4o
@vanׂe�i�uglmns}zrin�a
feptoriy<l�njnۡo�=itroi=keioucth'�a��ei<lGns�bn� o�Tvs�dr�a+cmae	is�b��ntiv�e�imnse	i�'dxvrsctoriy<ln<ei�o��oa�pacdghlmnopst��vwnsaUlt8�ralrdia�t
Du�le;aQsK�e
�i
�oa�elstL�ra}�ce�bl�'	�e	�i<�lGos0ue��nto�aeFusa
DudVp�'iosc�a�ig�lnra'�mTpt@\aic6RsF'?�sahtF�eerr8ea�i�yas�e�irt32cht�6a�Fe&ia8:yl&Wsrton�Ae= ii�gn8:kureJi�yh'�eisy�e<ln�eg}s
:',i<s�'aeisu�cd�GflneRay6ilo�[yegncte�i�yh'<l�n)sa�nadb�n ytni�Ml�anstsib�o
Lv>Mi�Tl�'st�einvt�a�e	ia��iaon�c}n*r}txid�a8�e	ielntdiHscularh'i<lsHs�>t��rua�i8glRtex6e8�iui��sI[iyU'�ven#hinopucaipU;uvut�e�iNGohoE�o:=lera�e&i�nW�tafms
U'�nl�pamte	isd�n�rick8�en�'-al�hinsto-?5p�'�Kbe�gl�sh'i<l)s�t�
s�tzM�a�e	ifi	py*c	le`�eeic/�xtiv�ec0�rauci�oy�tri�uoa �dps	=&a�ehi<l�nUsutT'&snaeciGo�tn
�c�trsUb5�so'�ksv
a	,e	i]diaess dsi�o�vrstei�o�tvh'e	is�drc}Wehk�ostetAt\aiy�e"�ldnai��rmU�a%�i�'�ei?l��os�vc��flen�ctosi�l
'acehi�orstuiebf;ilmrys"�l�'	�els<�eoc]jk:'crh*i	|�'b�eh	i-msoroug�#heo�Xau�s:'��b;e$�h��oidi]�n8:ot�
e�ni	�sa
eiotT'ewrf3�ai	pyc�ecdgln�svhemX�io�lelrn�e'�yyp�haph�Wi�'a.eo�s��tgi�yA{ce�s�a1ei
my�!c��ef<lnsoggse	idr�'s0�y�-e	)g�h�l�ng�e�'�e�ister�'�es5�oceI�innigd�'s;p�2z'.adeilnopr�syd�.eglnrs�t�dt
,h�o��eocyt�eio'�cLsLzs1�e[ialng�x��eiwucetrozFoa�osm!y�'asglori�abecaimyoh
�'s
saeic��saql��eac'�se;io�yutich'a	)sdlpP�ty�yogi�y��c�e�so�eng�xei�asti�d?�sceR�iKoogUPa�'t�-do�rsd�u�_'�s6�an�klnr�wl�p|9oaoyce)�tbclmtarbi��t�0r�'!�iopsgi'�ycalE�lhthal�deh'essnao'li<l�3sl�nog�'i�yype�il'amla�aet
�ho�m�'a+�dlpsHz"�l
:'a�b�[ehilo)�tdntelp,eh<jdthropi�y
�c�e�seli�yc�e�sarmo9Vnps�'p�s'}ei��a�cne
:'ـstin^(e��ii}yptT'}aRsd�.lsen�*dophFei�y$jc�ePsUz:?pheisd�reobgioti�d�sto�mm�'67a�sDeg�xis	t�obenostiU;o�aa�c,�bnicl*xia
:'-aneioy	�'-?cdmsty
�ia�eic
�a�ai	�sic
�ai(s�asZ*e�i�ce��nsdrstg3�lntra�mp"�ha+�ch'�i�epha��eiot�a�e�d]�ndlriester:�aipa!�i�'e
�i�os�usce�no�'-bcdefg�ijlmnprstvoxi7Pdom��bafxehou�[yLl�rermiWc
so-�mmppo�Bs��i)yr�reiygtrad��a'�eez�c �osso{�cn��asdlmny"sectrioc"�a�i5:mnisJ�cis
�t�Qsgrave>�id�rssin�tisha|i�xera�m92pZ�vournal�iiythograp�vh,Bs!�taeioug�snetoele
�ctFer
�iycrograph'yns��t�altiplT8i�'e!/isZghor�Aoly]�mod$�teac��slism{Vtept� oehptynsiti�(vopp�sv\ehio�hait�'_=i�stei�dn�g�rmndsthes]xte`�iaP�horycfxxi!Dcaonsis3|tp{Vhi�c�fspesetteu�ioltag!�i�'aeys�ae>�i�'bd�mosoo:�k��l��an�iologi�yWc�e�s�glstalo
Du'c�xti��sgen!�e�i�yico?�q�'ai1�ko	)slh'i<l�ns�3st�y�a�s-ch��ecglssthe��m=nrapthogi�y$jce�shera��pocg3lpsh�ej"renograC�plank�to�ch'abcdefgjh�iklmnopqrst:?uvxz�}fg�kn)�s�Mz &eiosms��ti!m�'flso
ra�r+So	
h'ackno�st�'#&d��nrsye�osqu',eso
U'��e�uaD)odlil�Yli�lh'-aeo�fi?l��ops]�u��wymJ�ue��-xh'e�i'sdsdlrthaub�'eisl�'s�`wng
$�'�'e	is}tdr�'s�engF'	)sock8<eic�'kse	i'�yfd�jrs�ta��rn\Maecond:'ougnrramph�'!�is'�yiaxlrLae	i�'-dswi�rq�udjgl
e	i�y�'bcd�g	irstza3�le	ir�'dQomrsw"Hiork�'Fe�su!�smon+�t�'crsei:'d�rsngh'<l�ste�o�i r�yoelectric�ifl}e	i
�'-efgh*7lm�_n$5pst�hsti�con�'-hJ�rsbfhtreacRsan co��l:oo��li�
seiσlyd��ren�s�r�s�'ba�ceade�d�ae'�ynt�'�a�e	isjk�tw�iaif�le	i�'dlm�rse�Et	a	et��aacefg>�ilofst!u�'Ff�ste��re
:'�s[�homay�'d�rs�uer)�ae	isrim�'a�ei�s	=g�nsz�'a`�bZ*e�biosgre	iC'dc�rs�'W-�es�c)rw�'�fc�e	iҩs:gbt�'�e�hu�isei�mp"�n��e�'e	ilsdrIln8�ei
oy�ejk�'-abc2defghi��jknopst]�uwyJ�uwhe�e�ft�acCu�6azyoe�@hu-rnezh'%e�Iiss:'Bh�'adhswsylp8:pi9aok�oeo^a�'-e	iss
pd�"lre8:oad�'es��d�en�o	�'ei�l�n�os�yd֌r�s�y
fensi�ha�eisyce(�r+t�e�WlheCTnc�nch��h &e=nlor1�i�Qiet�1trid5p�'�a4eosu��'ssq�b�chee��liHhonh'�'n��u�'��e'�s�'eips
�'cd.�fl�rstwl�faa#i	=tor�kn�tg�''l�ein�'gsql�uuae	intc>t�'ds'�tai�ko�c2�egnt\/ud�h��e8�ei�cn-�ep�qigpsu_ie�ulas�mhk_ie�ttaciw�mst��aei�a�sculturLa'�e5istr�ah')�ae	io'�yd:�rs�ia2eiocEFhl�'� lsl�n�'eY�ls�'Hd�e�'-ac�efvfhij&m�o:Iprstu]hya-Y�p��'[!pssah�+i	h'-b*efo�i��msadnd-��tP�aleXnord�k�t�'e�yisyad��d��a|efGMlul^�lnantjatj\�aes�tsU'a�e	ims#�n�s:'bwur·gol`ri1\tot�'
�a�eu�ish'
eimHy�el3�aAul��aaz)�rz�Oza��ei�'szMdzcat�i	)oa��ot
�af'sgstw�y
.aceiouy
cgin?�qstuy�zaei*7koUPbrtd�'e	is�dHrm�ei	on
�ojv�'fa�bdhk�$lmn�rsol��dickh'}�e	is�aen�tta�'e8ulsd�Rnri<l�nz/�o�ei'�uaori_ysUz	e	i�mAtcl73cf�dnt
h'-c��e	Ei<l�nstcslot�hp��ohlIaothes��m�m�opoY�k�'is�4f�v�'�eu�is
�'a$ cegiknost�:uri�'dl�rsto�a�'ae�1osr9@iysim�*aenS$ct�Xgn�'�e�dist�ion�'�ise��icon�.c��v�'ae��ilsy0bg�irBte�YnX.e
�ei�ihmt�'�eiy�aen�'-a�Eiode-�isma�teif-ir�'��beu�isB�wc��q�'�ais��unPstt<z+�eh'��aef}hiossty	�'adfXf*7l�n�rsu�'�e!isxor}�mnt6bgi
Du+�sud�e�i�'n�3oi�cs�m�te�i:'sd�rh'hpsselminth�e�sFds2�tiby�i�l'-abefg�hCRilm��o�{p_�rstwa��oct<e׸is
bctZ*e[issTafxio��o)�yefull��o�mioroumn<�pist
h'�i�saf~k�tct�uhK�eo_Ooatio!n
	e��h�iriig��tabcdinostux�'dsteisaJeiunt�e<l_�n�rng<ln�sbtr��ae	i�'d�fs�'J�e	is"�beish'+�issscitg�a�etra�uge	i�'d'�ersaos�udtY�rtocE�eaiturB�i	)yp`s%�totenT�tZei�y�ofZmmnorp-�has�mR|t�-i3|sh�|or%ai�si
�o�ugml�xaet
�eZra�cegmno�+bntc�td0rshJ!tms��eol[ol�t}ycen��e_'dhn[�pstuvw�ydseing�l�sAmgke]�ue��i)s)d��r�
i�'steCRigh'�Eei��lmsn�EgaeD�nr�nha)�rh'Z*e�ims.Sae�nha��r	cgmnprstvkh'�e~Qisy�'-bghHhis[�c	izyo�a=be	io��l�'abe�'imopssy��g�'ae:�iyos5�gdr�'sHy�'Ma-�dlrs�ei*Kk"ji�ye��iysr�s	�th'ei<l�nss�ysd�r�s�n��sd'Ug@�kerC'5e	iserfe6Rcailh'i�lss�tz0|a+3e	i-m0�t�wa2�e	ip��oh'�eh�'��ei"�lGn�y�e�naoewr
U'cnra�ct�';�isi'�sa�c
Duntih'	im
woudt	�@'
�ceis��tadnag�_'e
�pumaotic
�a	�s\�ce�Ign��tncephal�
o��eio-ac�tultramicroscopicsilicovolcanocon�i:'��-acdeghiklmnoprstuvw�x\�zc�0th*eY!iazyhko�uhont:?a�'e�imsdt	�'-atb%WeDZfu�ikskni
Sf �vnifB�vB�ear�?kno:'}s	�'c1�dghis�Zuast
h'y.aTae�i�s�Cioyr$�ior$�ea�ut�Gr:'�m�st�'��a
kei�rsc"�a�.s+�o_�raung?�ituka8wh'gknrst�nilotheYnrcst�aian�Taet�t	�'-beiGMlsyb�Gdotl<Paf-sVso��-la�sn�d�r�e�lA�n�e�o8�e	io
,sn�'e>�i,$osl�weioyh'd
,mrsy�'-syfaD�cSs'ss��enp(l�'aeiklosstynrtd�&sio�sms�t
�zet#e�r:'
�ac	e	io�pgiraphF'�iy-ad�'-a�tcdmy�n�|rswav��xaulq�t�xicC'�a�@i?�stSJaZ�ac�nosteiy�'d�ms�wen'�rs�'-�phmmak
e�Riak`�e�i�'ms@|vyel�ih�'*eCRibei�yur^(o<l_�nrs��stc�e�aik�l�o(s�a
�s
�z<ea|i:'�a	�'aei��o��suycr�gk��dd-n�rn�0w
Sa	)gt}x�aeUi:'anna
:'i�ss�h�m�'��-kn�swf�aa.in�iaru/�w�aerrg6�eoon�'tesabceghimnopstuvcmn�vtryla
miodn�a�eriyo�yhe7sdr�i�o�yut�Ieahlryrb��oaer
emica�lom!�aei4�o
n��y��csl(�stectroly�they0�rXlal�oru�ymv�io�yoth'stLa-�iaph�'�eisHc!neyd	mra�oljOmsobcputyl��eyana�tr�aeoyr�'Ϯaisc
�s
�zrphioc�sn�uFuF�a oeousuiao'ntT'tVsC�rmia��lcle
�a�Tole!�f�'ehlorspti{�da�Veo�EyP�snsiyo�ycesphGsaoi	d�d�iopyleaeitt�yccharidR�em�io'�yulo&�xy�rehoc�heȯi73nu,n�pnrsaturated�set|�hiny
ol�'aemop)s?d�tngrru�aania:'�nei�}y<�le�')sdnotra:'�l�'aeosd�nour�'�esi}y7�a}i�m=Yn�s��ucd�egistye�h�isya�'sdss�'e	Eis!jw�dr��e	i�os:�ae�issd-eY�a��e'on=^b�@acei1�o%vhartArfraޙcaf�'n}c$n�fica��lt
eai�'�i��t�'c8:d��efh��iln�pr)stxcwh�'e�isd
rs�'�s�t�'-�e	ispo�ro�'�Be	i�rsi��d}ac�aT�e-b�e�h<l�n@is-ol�e�i�'��-�3ce��gilopsuOdo�'mZrs\yob(|ins"�j�hFa�icSHvatep$�eaeiyh'Z�dssd)�rD�t�eng}s�'cs��wz)oeeJ�dkZi�og�tlai9qo�cr�ti<lUss�t�z
�a	e	i�msHsc
efAagiknoprstòe�h�iu)�pi��rfn٭rer��a�'Fei"$l��p�s	)yer�sC'io�sfS/i'�yh'5OcgsraphFe1�i�y�su'
Rshoyri�y'�aerti�asi)�dmlyncheo'�s�'-acefD\hilmorsuaou-pr��if-spa�.ib'�e?g�l5�mry�il
fey��lullis�'��e�idnrdt�'osus<lneq^s�'<�a%eh	Eiso��u�Ao}a�c�en�ob��ajiy�noig�sh�ian'te�ua
:'bel�laiyt�'�is>�ua�e	isy0b�l
e�<mgl�aueHsa&=cehist�yh'di�rsFu'�y
,d�eent'�rs'�t�eirsnovn�'a=be	ishb6leih'<ldn�r�mss't�m<�tei�u�'sseiSTo@�dsn�o��vb�ila�ey�'-abcdefghilmnoprstuvwbcdefhimnopst�woxF'Feloas��sailst��aWtonia	�laoTrtcto�rn��te�rminismt�ac�omnpressionism,�td��uiollennialism�tdrernis	�m	�ttc;e�au��pfprfi�cer��aҦbar|�ir�0tod��utructural�ie��ory�na,iurg>�l�Jaox�'�eY�aodlne''�dsonial
dids�kion�'aaoteɕi)d)sc
h'�st��odr�'iso�trh'Ha�i�lsi�Gx��lradYBuaouy��ss��p�mp�n�Hc��elnil=�o�a8�idf�g��ue5lctio'�n[ua%�uN�naeƵio�nr(�si�k7ztnr'opaubesi��ddreirn
isZt0�m]jtfi>�y7Pc��eteeaub�s3;t��pprer	abi�taor�irt�;uns�a.�e	iiti@eo3fvan|�d�eceript��'sa�5sraensfy�ua4�tlrat
e�ito�aeA=i�'d�rsocCa�Mao"m�'-abeDZfhilopstb��hpseoll��iyi�Olousqrurr?irFi'�r!�hb�gs�t�cil�
eyhr�seoll��i_y�imn�k�ct
ai<l�sao�lty�e	imet#e�reomar�'�b�e!i�sl�oSHdeu�i�'dBrsau�tckh'ss��mro`�o0iour�or$dhY�e"o'aei�l}s	)yrgwato1dmdr�'eJis�yd��renr�s+�eg�cflnra\seTtF'fEs��eetnc��e�bi�racd# me	ih'dsy�')�a�eisngC'ssfa�ei��rsngE�lssert�iy�'�-	_'deh�swYyer�'-J'e	ipsypufHfu�flr�yl�'-?�b�eȾf�h	ilp
mshsuntg��h�eif&t~�co~�i@Sa�5o�mp�r�s��t
:'aVUceiouy��c degik)�l�mnstn�vwxyticstaei<nubli�ly�lh'�i<lns�'�ds	a	�ne	�i�dr�s͗istidiuV�mor�'isa�vnmuatic�sh'�1a�.se��'Ra
prse>6i�'d
�rs��wSUra�cgkyd�a�'��e��i)s�'��seo��dce�f&issth��eh'drs�'s:'��ln�'�he	iseist�-ee	isdr�'b�fso��o-abcdefghijklmnopqrstv8w�yz
acdefi��oprstvwdmole�qsplifie=Yrh6�uris/�t��aeicfiA{mge)�sclmxhl�oam�Wpect	ibiopr
iynen
Bc!ttioFnhlt��aoywm<ei+os	nMovist7ae	isdn
BcHtlig6�hgm��nn	iplementalruc<ikm�aan�neio�fpa��rnvt|�e�iatiscgess|�e	io��rra��m�/be(]oclo�jrecehohioo�len�tLlr
�tv�ir5i5ur�#t@�aer
�eny�seahiat|�e6�miosualizc4�aarTs	cdgܯklmrsuh*ei'my�en.e�gaopt�xa�e5ilescen
dc'�tricu��llocatC�eiwIobp~�l
�uli��fra�nsign�e	Ei�sthoriszbele'�tndƽaaeilouymn��rsubr�ice��l�rt
�i'�stion�'	a%e	Eisdpse	idns�c>�tt�'�iFossC
e��i?1nops�esus�e<ldni�ctaGohb6Rnte�ih'd<lnsh'eisd<l�n�rs�t�n�o��iu d
�sO�cshdg�ilmnk{oni�\tlo�Ge��np�ucdfsel�i@p1Irit��iigurfae	EidciousX�nr�t�s7caeiot'weiKo�d)s��nyocfst6�vel�assoАra��iu�rin1�ei	nuti0�t�germin�af�e	icglfsatb�mt!Bi�l
ei�on�ovV2e'�a�e_iFosest�e�8is��e�cmina�nt>ye8�im>nxip�e��ntZ*eiss�n��ov�eeiste�isssd=lnaeilob'�c�t�'c�brsiNccrؙtt�'su��ae
m1�rsn�c9Jtg�xuraO9e	itiov�{night�'�ij�r�Ea��lnr
�uay0b.�nPoeiuVXansi+l�ostori�ysac�esam0(ansittialiC�servie�w�;oudm�gic8�eian�lindergar$5tH*aioumth'issnari	)y�e�lera?�tad<e�i�md5saeio'�syrm3stxi��kostTcur�eE*iil�ldnh'isctal�tat�eUistr&�ue��ns�uVx�r�'e	i&�s��'ds8�e	iBs��rdhbln�iiHHsts$
l�aosqLtum�Uiph'ss|�tcprcup@a)i	pyerativUUedain�e	i4�ms
�'aeloprsuc�irykaZ*e�gae	iti	o�ove''ls��d�rsy.a	i�msnde�i�s'�d�rann'�s%e�i{[lnsdera_ntv�ein	oHeist�ntion�'�a%e	Eisess�e�ieUrZ*ei_y��e�neiop�ant'%e	Eisc�dgess%e	EiwIoramu�mb�celscenca�t��ei�cu3�eaeod��ic!Mfg�;qorZ%dist�eratio��ngm�aabcehiOblostuy'�gyotF�per�'�-ai�s�ya�eln�'i<ssmtT'<sh(QiX�oroolh'@BesibpLa��e	it�'is�ov9e��ialnrt�sect<ei
�os	n
ov�cth'k-aei<l�m,n
�os�b�gtmnfsen.atvale	iTbtio�vn�'�@is
�sZtras�iu��n��ndeidnrs�ct��'i��sal'lnumJ'�rh'-*ei�mrugsY�uancTgt�EuBen8gg8+orei�'-dscoo��kn�Lsz
�af�e	iiorwdgigitate�ior'7ziei&�oh'tnsesR�sieucmprB�aJe>6ipt�[iBGupos�ein$wtm
�impty�oaeortIlzsxHhenr�sx
Bcd"�sti��oi�mnt��'e�s��'nsatu�rt�'��e�i,ls1�reiat%e2vma�liLy`�e
?f<l�naeiilrl�e&isen�c1�ticat�ek�iFolnly pa��rta�eisj%btRin�oQve'osw�'B�e	is1�iua
lz@iabcdegmnost�uv[xzRmpi�c�sil
�oe�ik�'dhl?rsyh'��eu�ils8�e��iye	i�'d3pfsd�rst�'wef�h	Eils8e�Diy�'gsish�'�ldnaei<ll�m=�nop�6rȪu�celrt7zv��i�y�eJi h'dn�rs��vministeE�rrsh��iY#ntiv�eh-igrenit��a5iFo>�udia�ur�lcHzgtei�'_�d�Alst�s�op�aRed5l	C'ae>�im��oswb!Bij'lak#eo�ior[k[onrh'
kei'l)s�y�eti�y�e�Ls�zce	imostb�iAo�'d?rs�'^�asn�'�e	Eisiyhre<l�nicnh?�ea�ei�y�cteih'e<ln�r�s�;r�o
�svf�zelsrsst��eye	i�'-dfswfwightF'#OeHsinne�iX�right�'Q�e�ai�sinn��e!i�'-abcdfghjklmnoprstuvwxza~2cdhlrmeri/�cemocrG�a5ur�iepub�lcti�ovd�e�iaOeilobti�2llis�tt�iB�ei�novn�'aFes6l_!rg�nttem�'ast�tsche�iaelortu
,yqir�Iydesur�a�edJ�e>�i	)ss�'fa�eiFonon�'��aZ*e�isaii*mmfa�e	is	1vangu|lsul�'asaeusti��nat�ei:on�$oveiste;a}s4eor�'�eisBanrae	iTb�c#&td'm~�rsh'1�disugai�ylh'y�i<ls�eGocle�#it�'is�o=sv�e�i�'[.ae��filosun$uae8�id<l�nrsss6eionon�'aslh'i<ls�
sz8�a�e	ir�'�i&�sc.�ltien�cet�'.T-ae	ihlsb�i�ldeD\rr�'�eY!isigay�c�trumm�and�e<l�n	�sns	1d�eienrnsi�ye#&ttesi6�raot�hs�e�itich'ast�eIi@Boaem�'msaeA=ib;�t
i��l'd�rsss�'�ein�ov�e �iibitJ�eiosno>vn�'�is"�rect�'�eiFos�ln�o�vaoryP�of��iaeiZloy�u*xcpt�sg'�psstome;�narian-th'�\isfn�xeir
'ayoca�nZc
�lgniujsjz!ei	nszg@ae	is�dr�'eiopsunta.�dh�`ae.i�aU;u'Nnsc�De�i�su�i'4oh'�nst�aein�o�vth'�ei<l�nsVhn"�tl��g�ga��ego�tu�'�e��h	ismuina	)ln�'cse	iRa�d�mrs8cn]nf�'-�eo�irsreade	is(�readj�e	is�'aehio1�prsuyg�nan@Jtd-ai��s�zl0�nrls�ae	id�n�rh'�e<l�nt)i3�yaey�cst��iLy�'ppe9�i�slaF�cx�eMyinotq�u��niaGot�e�i	o�nrsm8ution�'a�e	imslM�ti<l�s�tey�n
aeintion�'
�a�e	isieot'�a.ior�yr�'iQ�saV2less�'�eceptiKo	ov
0e|�hl�\slzeaot�e�sig�a u	*�acel�iopty�eirutt�oiGb��p�'cdlrsut�a�e�iFoyt8�einsUz	e	i��m�'pin}a��edmi�y0�c�e'�a'�eecrt�'�eiFos�unve<l�n�s�ei'4osn�t�egahi�o�rgtlande^2i�'��cse&WsticF'Last~Zuaehioru�cg�to6�n+�racgiorsU;u�'�n6st�teiosn� o��vr�'asHl�teh'Bessn�'ءasglmly:Icy�=s!�t�e!/io��zt�'ae&iKosnBtt:'i�ss_mon_urotar�iy�sst3�a�o'�s	-cglnpstzindo�o-
otist�a'�sy�nF�a�'os�sx3tlak�ns
Rm�tt�typ!eicn
�aoa
�i;o'�l�nauct�eUiFos dsi+l�o�vberan
dctg�'
�esd�s�e
,h<l�aeiodnrs1�ac�ed'�e�i�ale�5l�ab�'�i�sdnsfae	idn�rscte�'�s�i<lcg�ewrii�oon�'��a�e	is:'c�kl�satei�u�o�"v��o�'�eeTlsi��y��ema�i�l��tac
U'<sd��i��nrs}te�i�'nrsct�ei<lal:'<l�sAli�yi�e�Qtsi��ach'&i��n4ocis'��e	inci@p_'aehiopsVUty�'lmt�'�i
mser:'�i<s�ypuhologiyu,cmsdosssy	-cmnprs�?wisntelle�ccien{�cti!�foc!dF�porph-�iyo'�sym�'�i-�osodi'�sa�uando�mcien��cti�f
�saa�wh'lBo)stocmpty!�be&�lF�hh�rtaF�cria�s�te�lm�tclhh'eiocDrs�'dseli�a9;cacn7st�#r�'�adis�'-abcdgklmnpstaeest4�hd�pucnoStusticsalyst�z%�e+�i
fticd�aaibb�7l]oultM(ur��y)Qae�sninesrti'�a
osi��onguistw�ise�
otc�eriycs#�i	�seua/rahth�'ios?�y'�a�c�elo�gayrmaK�csico�aisU=slog�iye�ioR�us'=xu*cmaticLash99iorerape;i�y��umimo?n�]p�Bl:'aeoy_'}hrmiC�griod��idsyact
yaY�ulglu߾tlmemFa�i}yai�n)�a:'bcdefgiklmnprstz�':Tbeilsrst�a�i�yh'cen
�ctc�sics�'�-ai<l	�s�nBt,�s�t zhRa*e�dicek�i�'aeispunVQyr &th'�e	is'�ys[�hdegs>�il'�ea|iynNdji�yKGebrl}a)�oipt�3ly�eqof�'fvb@eisy�en�'�egs�' &eg}hins<ei_Xe	nl0�iaO�css��aUlae	i?�k'dk٭rstso�'@hipvr	�1ac�eil�Xmpsvhritudeinomu�
ntsz	C'-ber]iC�mosbs d�i�eo@�aackh'Esd�r�t�y"uv�'�a�eis
wy�e��n�tab�e	i�rP�teri	sz�a7�e	i�ain?mpc�'eu�iksdrh'nssic8Nkin�'s��e�'cdgijkn��sl�tyht	�'fabeilyaoigLlb�wd�o�rs�eCTni�~n'�aiulio�'s�ua'�m?rG$lt�ein�$oit�'y�rs}c�e�nsthRa	lei�m�ni>vab:'�i�'�eis�ye�n�rUse	id:�t�'aipsu�'el	tl�'lsa'�e]�geJiydt�'e�rs�'��i�abcdegilprsuv�elԁc�ieh]vlasRale	ia\u6bh-b=�e<l�nr�sbr�Eea��r�dsale	itio�o�v�grf��mnsti	pyc*eat
�ito}a�e-m"�ta�i�yn�'is�csm'a�ss�'�eios��en0�iloei�'d�r�s	n	srsth'e	is9d?rei�'-dflshbu�ley�asn�TvC'�e>6isve	i&�lu�zaein�t�xl}seiya�e	iFosqe=�e�'�a�ehisth'-fabc*efi�k�=op)�r&�tyb��pY�uiu�kt
�taik�5e�aha��iu�Tl�e<l��niBn'�tllanimri'oh'�eiy�_e�'-��cf\�cwhip�poot=be	isula�er��th'-a��in��orst�Vzs d9uyou��-m�r�vt
e&�i�aW�eeif�vsa)i	py��cd�i�ln�Xc�'e;isyd�er�'g�e	is�'u�i}ozl\�e��i�c^?tZ%n
aegj0�kl}mnort%uxemia�clL�monephriti'�c'�sm�`ai�i��yama'�e��s}eo�nr��i�u�cnr4tgyanlgrh&=eoAeaeiorumrid�'
�aZ*e�isF%g�'nstxeCaU;eh!�r
:':e�i�Bdmti)�d�elmp�stxys!�tei'�ds .aet#erL�i�yechni�ycs�a?�s�Et�ehi�o+�c!�vha+�iogor�a�en
�'!�is�'�eidseia�6uazszt��''�s�r
-.abceimoprtuwtipcsG�t
'bdentia�lda If�dt�saarU'-ai
�ddnqgda��i}m�sMrsya`Rbeimoracdfg�0hikln2orstvyl��ukh'e�Bisd�r�'prs�llaeiougnptenag�rg�t�lular�'Fiho�wn`�eiuc�'
�asr'�s!enni�a�uclpve'�s�p_�al�eion�'w�fsOvtalrti�tegi-a�ciauHl?�mpv�hpTelhoei�yh'ds�tcnat
ein��o�fw�m�lnr�tadew�iyh'drstT'iWss�h��mcimo:+mfti	py*ce�d�rsa�i�yt�mi�'Eis1\dgt<�o�ai
DuFcf{lstzi	pyRaxc*e0|a+3e	ia�i�yt1�ei
o�v0|a+3e	ia�krt��neiyl�'D�e	�ilsD�e-�io�Vmedrs�'	i$m�'ei�oszr�t�'-bdJ�e��fo�i'�l�Umsfmzh"&l~�pit�n8naTeta
FfAdv�c
Bl�'e�iFaVhi-lmsynch��rinH�eoe�,rrnawir�i+�yerh'�e>6isy�'E�lsi�_dabcelnrstu
,zlnslbheiy�e<l_�nerc�'��ekj�oe$�racX%hhua
:'�n�snr�'8+d�e	ils.eiy�ek:'c�hlt�landIZ'oHcwh'�@e	i<l^�ns>lc��d�thRa*e	ihlinu)y��elox�uatdilc�l�'�eisnon�'�aei/�nsnzalco$�ae	i�'-d	Ei�rsjum5p-bc�deflnprstvxz�,gble	iC'd�rs�hk
h'-ef�il�nst��fwi�tnr�s�e	is:pi�5iy)�a7eitlve��rep�'R�psi6ymstce�d��nh'ei<l�nsudn�r�sns�m�t�d�s:�f�lk�pt�'e�is
tacein�oqste}y�'nste�nC�lss:'euaewgnnial'lHs�i�y�'ei�osuF's�ts��ecl#Qeilionw�fsOvtpl�e	i�'p��s�e	i�eik�tn*�aq�d�'Z*eisy�en�esglin)�gcetostla<niaZwe	iot}ei
�c�s�'z*e�)i�yriklnr�st�nt�'�e	i9�s�vk`�l�d�Ys��a�n�uaOehi�'bsBti+llit�i��y3,d�en'a[anW�ierty
F'Us
:'.abcdefghijmnoprstuHvw<xy�G�ps.Xim.�Oav.�Op:'abcdefgshijklmn��op�mqrstuvwyz
�f &abeiy�Keil�'ns�t0�ai�ce�'-srouq�slai�sd0e}n<l�n	cehikoqy�o�'cdg�	h�m�rst"�w2�ao�u��o�Zraem]veltT'\lanino
�fva�e<lnsHsli<ls?�m�te
�g:'�s�'-e�h	isand-pi�ndt�'e	isyder�'Z*e�isn��ot*�euet�'�b�s
h'ac��dH|fi�oss�Tur�'sco0plif\fac�io.�sux8glnt'rcs9tv�eIiFoacelh'i<ls�
s ~zhhi�'-abc�egilmnprstcotontr;�op��aelegpraphsy
hctiv9e�iiologi'�y�c
�sahor�bemiA{cst�r'�smmunicatio�neorR|nni�2oa�mpheQe0�i'�s�ymnW�osmunoasXOsoto{�paob�nre��lia�ngi�yc�sJ�a�ae�ntFer
�i�yPyiuc&�la��h!Dc��qecuse�
pce�iotR�uV�aop�i�ynsitivz�e�i�a5�e�in�derreiW2oliz�a�eon�Btehorlegmp��t'�xraphh'SDiss_yre��he�}oraJmpev�i�y�ru�x9�a�m�s:'��l�st��i_'W�afti��l�as�h�'eY!isdf�r�'ab8�eg�iC�ln?ostuw�'msufjf�a�ae	id�eGUi<l�nyar'$ ofa�-to-ri�cai��g7m/�s��eor'�m�tl�dklmn��pstko#�n�'�@abc�e��h>�il-mrstw�e�uarid'�se�r[soad
h'e��i�s�d�r�orOaay�'&�aEQmsenN@t�'-&b?�c${d�efi�lm�!pswycmslH?o��aha��dfxaor4Neen
mr�sal�k/
twe7pa0�tleion�'7'gsn d'��vh�'a
'�h��a'�eins?�uh<l�hne[flIpig��h)iyh'c	ir.o

'abei*7jmoprs:'dk9lnr�oya:'��nris�hujam
alRoulei'�yngF'�lsnctiouSsajk�u-e3"frP�e}oe	idNln}s:'Ra�'a<e	irsN�gn�r�9c9taka�wsod�'�[ds�
jYa�JdehRs}yacTk	cd}�efgksthio�'*eiY#nd�i�hnru�''oD�r	�'a��ei,loyl:'}l:'�ene��slmIpi<lnsss
�z
�ae	idrsess�'hetT'ur=^lei7�oy�'df�rsinh�d'�en?�opvpt[egTaik?�e�'r�eil�nsns:'}e�g�s'�h'�me	iyd[jsao�wcm�'}�e	ish'eisng'l�s
h'aehipstu'cio7�tu�s�'d�rse:�eael�'ite�'[sdFen�sh'-�e�i<lHns��f-egaeo�iorp��odl�rh'1�lsrt�'es��uochgecag�l<l=�nour
�i�sr�eGonW�ze8�i�oFbsd3�f<l�nrB�sa�chmptlgheo�ta.�gh'e<l=�n�rAnsu*;s�'h�b�e��is�uya�ebfarian
:'�0iWs�'-abcehilstcat�fc�'touiX�l��ahe�?t�'-�adp�rsc�oaa�:yes
mrke�lf>�noi	pyxc*e�'cnsina��t�'a�e	islh'�ei<lss�*s�t�,zi
�f)}k�nae�il$�ryBi�neiyh'bd�rsmtrainh'Z*essl{n�e�Rnc}ltmnou\schiy�e<l=�naeige	iC'dc�r	)sh'dln2rs�'	�e��ils<�eing��s�'�e	i,$osbc�hh�t��woru�rOuroޙfnos	@e
fg�alh*e�i'm
h'-abehi'l�hnv�blpiY1nx*o@nr�s35i:Gr�'b<e	ilm�ostV�a�bueL�iound�'HvvnhM{e�e	iozr�'-b.�fssha9rTa��ila�dh'_�eime�nataz	)z:'i�am�ppY'as�'-abcdefghijklmnopqrstuvw6xyzadeflrsdla�p�'lelpec�
tl��o
cdlmnqrsvxho['ei,ld�rs'�y'�c	niut�a<e,Xis,Qcectfa<e,Xisbe@[ipao��r��drge	idR�nshlasi!�sz
�e	ioy�a<e	i4�msafgltuct<e	imKoseq�norce	idwm
�rsage	id4�msist�e	i4�mserZVr"a�iyme,QruipY�psecRctaiblish<{e	imen�t,Qmal,Quapmina
�e	i�b	telod�ra��irt�a<e	iso%urm	aa|�iaeod�+ile�-aute	id	is��iol+r�uY'bcdfgll�mnprstuwsorb�pchqtelpst9a�e7Tsima#�th'Ka�e	iuai�:i rs�i�-a�eiFosnovn�'1^asa�e�it"WeUi
h'-adeijmosarvyo�nbp�iplRJt�e�ik�r'�sr�'Zl&�s`�e<ln�e)�guW�smeiK�sr�tVXp�u-	inmfiorUmrest!0aa�eg,ln�'omi�cre*gh'-�eil�m=�npsst�l"Wt+gs�tza	e	i-m%�tb
�tKi��la	,e	i"�b$wtoyNctsY�tolitik
'/hso_yr�'ailys�zei'�d�s�n	)sNme	ips,�e3"lori=�r�Anai
s
�'-1e�Vg	imrs�&wv�i,�a�e	i�osae/onsth'�e	i�scosend8�sn�'a�Ce[7i�lsb!Biley=�neE\iumrsb4�l��t��sr1�a�e�itae[Ic�imVXpthori
�sy�zak�kaeioru�'l'�r?tMacykl/�c�'ls�eino�nu=�s��d��nrth��'��e�isio�rtS�ur�lZVkttTKl[�aeoathe'�d�radcast�'#Me	isfikr�stfh'��e	isldty.aKe	ise��ih'drsi	py
a�est
a�e	i_�'a@csdehiklortuylnpstcili�hutran7ct.bh'�a�e	ist$ua+e	ish'i1�pstta�huli
�sDzuN�rth'Y!isegoPr dilnprs�pvae	ibl�edXrsebratioT�n.c�st�e<l=�nra�eli�it88aiFo�ov=�eity�ytifiy�c<{es�'�einoQvn�'as
fl<rae�irrgte	ih'RadseZ%r�crchse�isk�td\fprti��v�eiren6�c�to�-ccuilae	i�lti�o�vloe �sn�eis�!naiui�msm�ms�iUns�ei�o+v+�dgilmnk{opruvnis�tza	e	ibn
i��l�ca�"e	ibnKi�l�ctlh'�e	i�lsloeh�cnnlrW�ui�sz�a�e	ibmpina�e	iq�njXtein{cda�e	isTbάtstsio�MnK
mstBa�e	iaeior
�uRWc2�nlae	iNbjXtdss�e�8ies;Ds	cdfnqstvilRaJeiantf�ig�oit
Be]fiig^rura"�e	i�btion'Lasaeoi��sct�e8�isit�re�|ruer+seiot3MucraCtd�ge
rlida��tirtPuuctLa�ei
�oshbnovn�'��ase
,naicmZ%tinat�ei�n	onu9a'�eaeRzi|�oz�lnrary�e	i�tg�st�eisNbn)i
�p	pyd�'-�aeisbr�e>�n�s	�npr�e	ijls&sera�eJis	)yeiXiouyant�cx�t�eGimin��adiesce	id!*nst�'e	i'msstalli�sz�ka�e	iaiou9lng�lu�3fltineu7d�'xvrs�m'�smprsbe�n'�ersY�ve	id_ni�ov1�e�ianct�eycl��a�DeY!i�'-�abcdefghil!�mnorsuwyb��e��fhllo�oWiae�oaկd�ze"(ia��e��ir?�uc�EkI�eV�ial�to�u�priffr.es��ei�y	st�c��o
cdeflmpstvlJCoarSaC�e	Eiicat�ein
�omRa�Ce	isin�e�iiver�e	isy��ploo=�ysith'�e�8isi'germin	a�e	ielo�p��e.�i�ora-�veiadh'Z*esb�litoE�radrsvlh'Z*e�iY�lsect�ei#osn30ocpstover�eJis�ylay['<e	isol�lrib#�cut�e
,i`�oi d8�si�y��ne��c�s�e	ilnu'�x!(erdeb
n lt�'B�asaeiVXf��wsw�@s��lhjky6acnpeit�bnio+vn�'issmt'�isd�alicat�e!Xi
�a~�iood�'s!%tesd�issa6bcdf	�klmnqsvx�eh�qo	�'<eisuHvvy�enZ%t�eg#c�'e	is�t�'e	iscd�rtZ*eiss�nHhobepao��r)�drge�isd=lnsshlasO�ioyZ*e�imssenth'HsagltctZ*e�i�mss�*aistZ*e�i/�mss!�eAaru��itetablish_�e�i/�ma�e	iluat�e&�iapmin�1a�e�iloa��i#�r�'ae�[filorssucs�e	ito5rhk�t]ficrt\�i1^oRaers>en?cWIdt�'isal�i�l
ae	iglnLrŬtuLr�e	ilRYmh'Ra�e	is>aeid�mxvrsnVsaeouteisdss�nonasscxta�eios�nnovn�'La,ls>e�ig�rrampm'�sS�h�'�ei'loy0b4�ov�e�ilog�iyRWa��e�Gxc
lr[�uus�e	i<xs�e gmth'aeis�hu�bti1^os1�to+v<�nnsm2t��iaeioc�ic!mt�eiosn�ocvmret#er�iyis	)yhe�nes�zh�a*e�imen�t<{egera�nt�eiSTon�oV�zeglnrstl	�e	�i��ls��e	igen7c�td�'Ra�e	isbnish�e	i@miVs
ae	i�'dnrsi�kae	i!?bBt	aegi�(n4oru'il�nrt�xuei<ld5�ms�an7�sdh'�e	ihl	)sr�h�tJ^lnx�ce�tra-ct�e( i#oh'Bpra�i�vcmnose�'ns�'st�'a�e	is�l�ta�'}e�ln�'asli<ls�z�xa1�e�mY't��era�i�y�b��n8�rBtaeio dstwsh'�ein�o��vh'�ofstB�a�e	i��nuw�np	in�sAtlra�urCtC'
|i<lsgiNtaeino	uybnn�sh'bissZ*e}Aili'�tgZ*e	isa
mrtd"0is
aJe	i rquX�i�udratfaC�eNi
ctdgklmnsth�'msa�nta�g
�an�'�eisnt�ein1o'�i�o8labpgi��nursRa(	e	iloement	a%e	Ei�sr"�st�ae	isd?r�'�acd�efjghiostvao�Vrrporat�ein	'o0�e"�eloatLaHeR�ir�caA�or$Odntiali�sz�ka"�e	iculaeptu IreVXcail{tl�ma�e	isti�oturankcergrrat�e([ipvrX�eieZVwoduc�e	i�teih�nsty.a�ei'msNbgngo�Frosl)�aN�ue�hrat�ein${o+veioucth'�eisn16ojvggsse�isdZ%ricneidrsn��gSHd�e	is�*dven wainE�ni6�oaeilou	pyn?b�iptux�y��sy.aei#Ood�rs�nnovn�'
�a&�s�eis�t�mt'�is��nae&i�nBt�d�rsaNgnvrsn�e	is'�tRa�e	it�e	i"%lsanc9t�e�i�y	acegnqstvb(yn�i�l�'est�Bnd~�fsve	i6d�rshi)�tonsu�'4Nis�ish'<l�n�e	iZ�kqu[Giu1^aiajht
�eiss+�a�e	i��eacdfa�e	isaZVktRa�eUildcf'abeiznofsu�y	+dgiknȢpr��stnifif2yf/en��d�e	is
fe	idz�ek.�q�r�'ae	isbley=�nsdHtch�'^[era*jnadVXlmsure	id�Xmsi)ya�eTb9lt'�ei-�obe��r>rgnstVxra�tdeC�gi5e	i�s�rsce	id_nssUEiWl�nst1�ae	id7n	bdlnrtuvilir.sr.znAeulat
�ei#Mo	n1onldesti�
s�
ztrant��cPt�einyovste�'4�fless<l�nNgeh'<l=�nr<�sl	�nW�dale	iTb�l?�eln}stipl,Ui�yerat�e_i
adef�imnostue"w���'il mstussance�'�srdcenVWct�a�ei�oonali�s*�leoisrzh'�eVfisvous�'��e	i�'tegw�ae	iojutpi-Ua�e	isre�w|aei�r�te�n�'Mi�4mru�vwmali+�s<xznce	id5�m�rs�^nsel-ea�'�-
ae	is/]mnciantUEig�ock�pr
?vcups8r�a)i	py��dgi
aZ*e�i�sni$mszaJe	itionh'La5isent�&a�e	is�'aeh]ilorstu�cipr�st vyk2a�e	isdVXnr�'"�ae	i�ms$eat){bt�ireiti��oriat
ek�iRa	i�msaclnrt	�lth'aZ�eY!isb>Milesyha!glse	idynt'PaJ'e	isctusoi�riti �o.�vortogr�ga�aaeioycn�ye	iRad�msnt|�e�iy.a�e	isntishe�e	imen
�teisd�nss�n�oc|ea�'�bst�e�i�oh'-	i�pl�-prsa6�iri7Pzjot�'aZ�e	i��os�b&gei��sZVt�'d��fsnt.�i1^oeiohpsendsib�oi�l�Kla|�resnta�e	isbt��li�ove�'�l�ns�ein�ov@e c��emns^|zan�dt�'�e��is
a!e	iabcdgovchh'Ra	le�of>6iat!e�iessfa�e	iuce&	iti�o�vramLOpms�ae	id?r�f+5e�ii!�ol�eia
fnbdglrtlicVs�'asnBt�'i�ss�miat�e�i@Bon(was
ein�ov�ecpha<s�Boae�i/�bBth'9dscG<hueist�'a3eisn��oe(rst�mit
feio�nE3a��e�i�aeouacgdfa	iso
riste�#rute}Aid	Eis��nacehinoptuyltRa[beahir'UulE�ne	i['d,lsed`+u
nK�sip
ac
elmnqrtwlrtRa�e	isch�'�a*e	i%e	isty.a�eionh'La%eis	Gn7se�*l�cbl"�a�e	idt	is�ef	i�msu-=luenC�cpvi�7n@ae!JiDoh'�dsh'stfa	i{l�e	iEnsaiou prk�p�n\�p�e��wf�
fd�fglnsr�tze	iudns�c��ta�e
Dux�l�rnae	islBt:Tl�d��e?rienc9t�e�i	)y�'<e	iA�l�os�yth'-�aei+�lFosnbnv!eE*iUNae	ifads"nilnruwd�e	iuvL�et=�ei>Hae	ih'd�nrsa_nt�e�8iFoRYbf�cp�tti�ovK�nrce!i�'d1�flse�ts�e!i�n�seilo=trcm2lit��f�''�a}�ef1�isu=�lgr�tAha�e	iot�iKon�mendenc9t�e'�yndse	isd�n�r�eix5ob.�v�i�l�'aefi-7lorsu`+y7�f	�r(tura�nntd�nril�-iull=�n�eyntvc�uh�eCRi-=ek{crae	i��btiG�o�vaei_�ouine	is�t�dc�rngtk�hcnt#�eisn�o.�vr�gcntur�e"0id)iy['	iblmprsm�gsisr�tust�'a�e	isyn
e	i@pp
?lfgrv@ae	id�nsectLa�eisn9�o=vec�pi��tncthronisz
�a
�e	Ei
�a
�e	Eihe#�s
aVcehiorsuyiklr;ul�lne	ih'nsiat�eGi	odh'ae	is�n�ta��ln	�sch�e	iti�o.�vi9or��ne�jac�enrte
Blun&c9tla�eo%�urtHe'�ye/vid'lsendotheHl�ha��iLo�u7|ae&i'��d�e�m�rs+�l�loruklf)sth'�e�zischh'|e	iaeiou	pycin�e	itRa�e`�i#os�
nsx�lmi3istsY�ta\�n	�d	�t
abegK$udsvale	i!?b�lm5gh'a�cdefgrsvct�ei'�s�n�o�v��dE�lilrte�i'sdsh's1�tex<e�iraed�ea�e	iss�e( io��cpect�'Z*eiss�n�o�virQ~u!dn�i+�nrnh'ae	isbI�ld�eg�r	i pl�bnpsti�fG�o thltolr�so[�aak�eRa
e	i��eI[hili��sh'a�<dei�losu1�v:'clmciW�nioud7Ir$uae	i�d�s��pa0%ilnrtl�a��eis7nnh'aD�e��i��l�rstig�oon�'
msg/�nue	i�'d4�frse�'�rsbeist
e'�srant
0t�ej�iS�o:'dns?c)�d	t�efni5yc<{eh'
aeih'-d<lrsch� abn�oi�l+�l�e�#is�mY�telstvw�'ae	isNb'�le	id'mc�rs�aleinotnSs'g�aΟisali�Lsz
�a"We	iaJei��l�fnc<kl%Matuv�'�e�istion�'1^ais,�s zRaeCRi�eK�laeiorrVsͶdmad�uit�vc�d�s��tn rdh'_�a	isr�uV�vdk�e�3isfa�e��iso�ai�"ot�ae��ik�th'�rs�eknjav*.ia��eo�'��lld�'�as]o:'cd��u
as
�b:'aeiouydpamant��hsodi�y\$c�e+�s�z	)�alei�mnostu�mn�Hghol�/di{s
DulsogiyA{cJ�s�ttu��sotri'�sc�'�aC�im�'aV�i��ytioc�sh'a�ks"�l�i�lanzU�ne5�io�'lsand�'#e�t�'clpsver�oog�ilasQItir{[uo�m�s�'dmnss�ttae.io's:'_Ti�bd�#pb!�io�uTid�eta$#dbmabrmV�ste	i�'d�r��shN�m
abcdefglmnopstv�xwy0Lz�'ab�4c?�eosld�reo�if�odn�rtr'�of�nslav�io��m�1aceh�ikoY'$�n��r��a�'-sd�rs�1p�'ae�DfC3ilm�ntwrd�'�o�\slnrAns�yi~$e%e	EiA�ayond�'sh�iMeh��o|�e
x'H~aeio=`rsty�dnttyba'�cl�i	)sytenI[v$yh�'c��theth'�e	is:Ttfadegisa�e	il��o#�nN�e	i�'arsUPbu�'hls>~hharf/e�iew�iy�'-d�Df�Rpsɮpt*
ic[9nul'�e	i�of_^g}lmsensta]vha�nlin�gMtefl�t	�'-�@aZ*e�iN�lrsraufff'�faf_fe[7i�'-d�m�rs
�'a*�eghimos�'to��ne�itsth'-fae2�fi<lIlm�n�os�&wya/chsm	otwn�gande�8d
�rh��iingL�ed�no!r�s-;uns�h��m�tO�i-thdi<lYn+�fy�tar53o�~blrB?ue��t�'o�s �ue	i\k�ldsty	�'bB�e�ihl1�msuaH=u�'�xta>�deg�ksledhrh�'-abeɻg��il�UmRostwf��pen�oc�raoc��r7lnei�ta�t)}kD�nide�'�rs��oo�r �e	i�'r�st�d�'e�Qiosx_uh'-a��ceOblopst��oroV�a3,r<lnr�se	isd�s��fn�se>6ileiy�'dst�e�
n(a"�te(i;ceikoqsh'n�rsbVhn/�i+l�'-�ei,lsy�-n�e<ln�eglr"�tu(�tgime�n!�uoO`lac�e-etuz�'�\lh�ial�'i<lss1�z
�e	i?�m*�t�'l�iyaei��uY'l�s�'	�e	�i<�l�rsdnrst
�'tabi0fiiFls�tv�a3�egMon�ae:'VdiVWdiv�e�'e>6isenraX.eo'�sgbtaId�l4�5Mi'azs�:�'6ysa�Krh�fabcde��fghijklmnopqrstuvwxyzcdmnrs��h�'-b�h
dik,lm��rswbh#�t�Za^�omel8noil�0la	�p�h��it#aor~�kt<hc�eY!ish'os�kh'eiy"ksngh''lsth'eVfis�'bei��los}tuyY'eityd�nxvrten:'g�s�'drs�st�'tato�\s;opier4rcntha$�u�'��esg��h<RsDcvua\sct!�a�'isc��s�zLa	)s�os�%tY'tn	chkoa�=de:'m�Fb�'f�lhxs�'-a�mbefhilm\nsHvvw
mybcot?ltlims*bbwil��lW�adfrte{�l�'isyCe�'�e	i�rsa.�i�o�Vlam.spenrC?s=�egF'�~-��hA�a:eed�l �l�dep$o%c�'deg;iObnors�Zwenbe�ur�n�o��re<�rl	fi$ cgqto��u��u�'b}gns��oTutg9�eaeutx�ilrtt	i�'Z*e�in$�somicypeis-=h�mlsterc�e	is&=a8e}uaeflo�pvy%�ind�'�0o�'-s}xpla�EyY'e�'�d
J'-abeimosb��co�2as�fnq�uL�v�nۗadres�'-bscsoas"Rtka��tWalad��e�ika[tcnk�eisn��gY'g�s-ss��ps��o�'SHvd=�eV?a-p�o_'ae_f_�i��mObneTpsuY''in
�'��cs5eiosttya�c:esz'�nsae��i$�ttioN#n^d^s>&a>.e��i�'lv:'thic�'
�aiss z
�e	i�m�t�'*o	r<s�:e&;l�'adgnstY'�l[nta�e�ooUt�itytH�ag�e�dfikmObnst�'-e[7ils!�tga:ErRoe>ibn�o؇e�'eissd�r�e�n	�'-eDZfimsy �mEd�rgZt�en�esggZael�tve$Ol
�'-e	i`Rkls��wmean-��sId�res�ts��n�4it'�yoc�ke��isy	�'�admrsp"wya
�k��n �'sb�a}�iuefo�mrg*eW�k56qstych(aacei�klst��wy��'F�clmnr&=ei�ytenOdA�o.�ni�y�etootemk
m�'-abcDcdlmnstvwc:r<.t��on+t7�un:'�eZaeurlbtr.y�d.�s)�rA�alta�eaor�i��ynW�d�	tY'abdtzlli��a�qeh'�aw��etta	@ee�va�Maomo��rcGe<lnruc$i�'e	isdMys�y:'eiln�tddSaY'HYnWtyga�Ze\oro�upo�{v
h'-a�c�eghiostu�tg'rstvi	)y��a�e�a�ei�on�ovato$�r#u�'eksrj�hc��thA�ifs� ese
prgvirtrav�'sju�ie	inwdnr�e<l=�n'Od�sgaeeiler
:'��snd�ai�lYnt�iy�yab�eglmnrstsx���wu)�l8�eh	ih'-)�acehi<lnsahnd��-s"eadsdnr�sou��sn\rse8pc�so�het7ta\�ndh'-��aeh��i<l�ns]�u/
w�Last9uhou��lhe-�gc	�dl2r�s#ase�oa$�dC3ka�e	ist~"e��a�e	ish'eiss�'d	i�rsnegi�'<lX�nss�zC�e	Ei'�m�te	i:'d)�rs	�'abdeilsn
Y'�siy�5e<l�nh'8�i�'dl �n�r�'	�e	�ilsY'<�e	�ingh'-�baW�eion��gw�c�ab�i}yD=o�%u�y�'a�cX.sl�'i<ls��t�s�e

�gMim
�o)s
�.��a
�cf;i
�mp
�svsrca
cp�.��ef
�l;mo'abcdefgMhiklmnprst$�u�h�xkpt"eo��r
h'-ab�udei��l"*o
rs��ya-d�uit6&y�i�oei7ldr�'-imnsystam�Ep�e+�s�z$
aeck�'��e	is�Jnsh�'�e	iy'l<�ns�l�ccr�d�_etknRo�u�'rshktybe�i�d'�s�'Z*e�i�msuTas
h'heio|�ndei_�moyY'eiX�oyr�'hls�e�n<l�nr�smen5�tltfIp�'�aJ'd2�fsfyo&=u�'�ei�lsann�'Wls�'bg[!rsy��'eidsr�e<l=�nerrntz�'a�eg	i'osUPb�te?�ye>�i�'�bdm�rsЕa�'abeH|fimopsniaY'�n�alu
ei_XeVhn��s�l�nna�nt�ein${o�vaei�y��gr�serstru�'	�e	�im�song)�er�'<�e	�im�songB?e�'e��ls�ulstilt��s
bfh'-acd�e�g
�i*7ln��ost"�w�yd
�iotY�uo�wf!�u-�fthe-m��ihrou\rg��bmrVw�io�suo�r�low]jnfaeiy�lr�'��-��s�eY#nm;e�'isy�emae=�iptn��y�e$OrHe��uali�l�ehkst
�'-d*ew�i_�m�/wyE�id�'�is:'e�iltoo�l�t=^e�'>�b�eil(�opZ�rs
myc�e�tnh'9<ay�isle��iroof�e!iss	�'aghilstb}na�g��e�'��ae�i-7lr�nrfgord�'i�u?�ln �oA�a�6ee�iyd�ra<ynda�e�'(;n<sadelun�'a,�iN�betr�'�=dss��tk~$ygsuiZ�mum
��nk
i 
:'-.abcdefghijklmnopqrstuvwyz�o����v��hp.c.�Oaabcdefghiklmnprstuvwxytbr�|tvo'i*=nee�dab)�eilordxiat�hi5�c}kno'tatee�'fs��ith'�ta*�essg�aec
iD�'�l-d�stoRo'Ma-acehkrssja��wh}oari�dnh'erdo�oets
fm�t�'cJ'efXf>�isl~oaeio
Dulment�'�atos=�dflsic8�ei�aneg�e'it�a�i�ybisosr�cli
aanctYn
C�adehi<l�no}rQa��elue	i�'bdrsa�c�g'�i�s�y�@c:'ssBue%�s'�smasocȭh&�saefr$
v}�i
h'gk<l=�nrAnst*Xwua/�ree��p�iySs'�0lf�r	h'aegi-osu�'cRnsi,$o�9t�'b<l�nsr�@sr^tu�e�iy�Sntta�lriMua�ra*�ebira�'tn�{bd�gln{p��t
�'bE�c�e.�ficopsoarr�tdh'eY!isrC'Esde��rngh'-s�bmsv��aJ�hes5Msl��at�'-�e
hlsdtenW/iropeQ�ziy�e+k=�nHYaehi}sC'rsa:'_le�ra�'�'ae�Tfitklmostuv��w�hyza��bcdmrts�Tzm�'Z*e�issi9�o7�t�';i}os��a�i)iɴy�'atmrsb>Mi��l	noo�5mc�kglmpr�wlerPka'�da�en�'shi	)peo��rp7loom�'sscensv��ync�.t�eyaPeI[g�iY'�s�Bb}ha�'<r*Mt�eioX�uye�'dsw�e��i=�n�',Pa	ion�'esl)�lmn�ote�o�'�is�ai�f'-!�a��bceil�n;opswyacm(pswnd-pe�3p�a8ear�s8�spwoa�tel�ildr�s/�'s�emn\rsbo��ce[jgh's	)se�y�s�yet�er��e٪ha��oter
h'b��ktri��o.taOe	i<rtior0}iyaeioUPbdg 
rtor�'�aeN�ia/�ne	i�'Radrsi_�oon�'iss'�mt�s�'sd�rs�fn�'essb�%u'abeimopsus�_^enr��t:'taigk�r�aMYt
Du�a=�nsssyzd?aa�itymiasdQas7�v;�yBa�e�alr�sve��iYaoD�un�'iC3terl�'#(sa[bi'aC�bcdefghikst<a�s'nv�t��a<s/�dhtq�e}oiu5�fm�o�toni�yeous<lHn1^a�m�'abcefhil�moprsuw
myl�'Y�lswo:�oalo�qug�n
fr�'gsfe	ia��s�Nxas��tdr's:'�ol�i�y�o$uY'�eneg:isy�soth'ssSHtt�vai��pp2ttain��gtorn�rsW�k�e��i<l=�nr�sortdi=pz
:'-Mefi�rssu9�fro��iov�ein	ae<l�nBjoed_rtai�yr	#tiyHhaum�'sse	sz	a	,e	ia:'I"rek�or�'irit�'i�cW�saGeio�' �n�oya	gY'��l�s	'ilprsI�wen7c�stRoe>�i��eh��iGWoyi}oophy6~tuTfc
acdgikmnopst:+u
�'cgthjG�nst*,wM[eob�se	v�zoo/�g}v*�aoi�mpd�o'�sha�Egi�xon�e �iae�ossto�uh' &nss�'
ns?�isyatia�n@i��o>�nyebd:�'aparĽio�r:'ri�aucehkqs�'a^[eo'yh'Z*e�issatc�ohe$wuatc�h	h'a_�ei�o�yf�nr*�a�eZln�esg
:'aceiorsuyn�y�'icsc!zallyHeG�m*tIlhd�elsli~�tpa�enrs�'gsf�wy�ei$jc,�s zfai�=ycti�Zo%�a|erB�ia�:puma
�sradnt�eino�in�-a�'aUilia�'ar�'isacs�i�bcdegktlnrste��iy�'sdC�pyrs9}irkr�eaT�hHvv}�adte �rrs:'Wtoerh'J'e	is3.iopo"�d�a�cseZV�h'Z*e�irssxRnaeiov-bgne	i'd<l�nr�@ss�i�yn�tah'hss'sh'dl�rs�omnoAbgh'	)srB?u'�ssnruya��r�'	�ei�s.5yen�rs�t��e�gr�'<�ei�sD�yennrsnt��e�gx'�asiyed�rs
�t
h'i�'-bd�e�fӄh	ilD
mnpst��yhҦp�moo�UurnuH�s|�i}os�-iX.t�e8$o�'�ehioM{tN^o\tfnp�'�styhon�e�ih'-e>�i�rs$sr'P|so'ca;f'a�>cehilorsuyb[bdfglmnprtv�'brilrsY�a�e��iya{�n��ofold�'�is^|gssade��ilpy�'�b2r0w�'Lad��l+n�rsioy�pwla�'e	isd�l�r�'ampsnp:d��e	ih'��e�issh'd�6nstail�',�imt3os�on
DuaU�v�iei<l=�nssysdsr�sB�e<ln=�esgeu�'gHso}�r�9ala�'e
fr�'abcefgilp1�rs�st�vy�bmoN�uoroL�uJe�ih'cdmrs&ronger�'	is�'�e�iss�i�ef<l��ni	pyce�eat\�iaetiHYt]�nt�'�t�'e	isdZ%rh'ho�stD�e�ilog��i�yei�ydrh'b�egr�isr��a�uhdoi@eZliCner�nnpaype%�iotri�oEs�gpe�0g�'�e	ihlst)�eirc'�ais<sel'd�s.aeilmnoruwde-efenfre�6uf#e-ef�adhlmnr4aule	i�'d2rseraz;an#lave	i'stai9;c�zekcta8dG�za*.clnszpare?�llMe>�i��dm�t�'as�&toh'-3�ipsaf��fhreni�ach'�aseiom�npsie�li��nrPeq�tc�skJ'aio�Uultzh'GUisy$Od�th'heoze�isdBrssaeioW�bpu0p��ziKdtIlz��ozh'hezleh'sse�Dfhlopt�sna��rars�'l&�sG�iytic
�a�isln�'-b��cd�efg�h�iֽkm_�rstw��yE~a�,dil"Wtnsi�pea�/vao��g�o�yay�eirl�'��isaƵirs
dtmh'�isster�'�e�iZlsea0�co�renhaI[ut�0kaio�v�te�fO�dedMein�gdi�~nblmsh�ty$Me_�mq�ttzap�c�n6�es-et�'b_�e�iooSHmlMek�diaei�'�brstzz�'kop�feknegKgop�0fiptKz��pnI[g}n
-aelmn�o=+ps`�ftic�an�ctio*�f]7slogitys-atZli7�ttiO�glla�'sst�e�<iso)�rer
io2"d&WstP�h
�i
flmnoprtuwfh'e	ilsa��wdih'��eA=isos0iabc�e~�ept�'�efXf	is��e	ioFAlbce	inpՓspu�`h	�'��b[�cd��kl�rsRoeinIve�'e4�f	isio�u�'.�n�s	�'�-c �i
lsth�'�Ce	imssw;a;eoR'mEmmZ�w�'isy�e��sdf�aY'nrtdrx�ec�e'�gm�is�'��e�~i�Umsh'lss'�e	iss�aeioubgmC�nptwble	i�'d�r�s�'-gs%e<e�%i<vlyǼb��j1�ms	C'atblehipsyea'�p�e��ne�iyav�rchh'�6c|ei��py�e<ln=�e�glnh'+e��isyiy�e=�naewmh'e�is�'c2dnssh�'	le�iy	�'y.aJ'ecf>�ipsw"�l�hritFe[i	�'b�9dJ�eis��wyall
h'Tae�s�enJegabmpv]ib8Vab�pe	iKnlleCRi�'mps�ah�5a�'psst�s�'�e	iosuwri'�au5`mr
�a�eritFel7ie_dfBglotuul�a�ol�'�a8b�e	isp"wg*eo�a
Dunge��isybfgmnpth'bseiyCIenf�']isy&=g'�u-hmpsalsfAdvaZ*e�ige	i�'dsZ*e�isstsy'ichh'�ei0�yen'�rs
'�t?lulops-;uin��ei�yeZs_Jz�i
bdflmnprtz}�a�'a1�dsmB%ofh'�e	iN�lslp�'e�isdxvrlyt�e	iFo
irsur
�ae	i�'ds��q�'�bF�mssthor�ppe�Trfrv�'��iyiy�el�i�oh'CRii	)ye<lsrsstc�eth�5ele	i�'bdsu+tzGUisy>Ylth8�ei�Ran�i
�k�r�'abcdeefgiźjlmnopqrstuvwxy��'-bcfghlmnpqrst��vwcg#�h��i�ur�e�Uiord[ar}g+noX�oo.Aaa�lI�ohrrFe�i��aZoOr3�uo��r�'�a��e	isk	'i�'aeAmfS�ilosuyn�''lshi�pd�n�r�enuke�y��n�UtV�s�'��c|�l�oua�kh'c�e��i?�shh'.�a*eia�ln��gvRchiofxeoc��d+rkn�'a�e��is��bl�i<l	�'b�eY!i>�mosf�te!�l&�n�ua��eo3�l3�rt�ye
�rrthiy=�nao�;u�8cs?�trrheo_aL�iea�i'.aelor�stusyfssy
�m�nte��uds+5e	isiF4o�Yun*�ad
h'-ae��h	i<l�Nms#�bӋcd��h�re�gri	)yCe<l�ne�cth'a�e3?i<losriya�el)�t�'s<Phr'�s�y�'aiosri�y�a�eon�'a�e	islh'i�ls�
s+�zr�'Ba<e�Rislrari�l��s�t
�zy.ade8�ii�fsd<lK
mX�nr�@sa�deginu�nte�id<l=�nsr�@s�n�re��i��wy�'�Dfmso�omtent�'as<r�tio-n��uc'l�me	iti
ir�o3	vh'-bd��g��i��kdLlmn��prstsC�ta[
w}se�'-��bceiJ�lpsy��bcepF�vv2oa�tota$tϴaadc�rg�t�e�tnw�o�e�ilsB�iy�'sucVka��w h}afmoruau?(lent�'a�e	is!l�t,eve:'gahbt�einF4ovei��nh'dɕis��dg	knsz~-eneiur�'Ji�sHyor�'�@a9is'�ye]�f	i�'sd�rss	imLaZ�ioglmramph�'Fe
�is�yogi�yc�s�a1efa	,e	iuaW�b>def�ijkl �mtv?�wzssC3icnut	�a�ei��mYnFoFrsnI�ov�e�iaeio�'��t�d�t
Dug�lraphFe?�yc�i�uh'-�el�hi"%l�nrs'�yacdefghijklmoprstwbdnpswc�as"Huor:b	pd�lh�_ral��yp<.oroA{vseumr�bti	ovrR�a<ea�6rH�aelorns\ito��re��o��amnr��mfgst�aeidenc!tratulat	ig�ociious�l1�nsten�ctaraBodiX�cr�eiticBa�4ieiocflnpste�i	pei�aR�n@]uA{i"yr�1etruct<eis	n	overmi��nsci��pu�bfmsvx!�fxpte�6eX�iapminlra'Jn@[eeiu"6ena!�nlfil"l4�mloorificvern	i4�maete:r9lmnE~ampolorr:s��toc�vdftvu:clg��el��ier��eo��lustifY~i"ynow! lo"6a�cv }aoti�+vpinio�+naeiorr��orp�HelrsYMltra!�isess<e	ieoservcp��tla��ia;�e��g��aeic��fglsvo"6rv2aulat,Xig�o��ipte5	crain<etY�eghteou��saetuctrifi�cisf��a:i�eX�lrvic	n�yfprsficX�ipuor+�et�Caaop"(u"pr��ti<�o�l"6n�e�ns=�hidge�'�sa�am*.u�=ih'-aeios�bos�f�uUPbf�i�r��cn��ft"uape��i�')d)s�^z�aeds��g��nabeioptnp��rstic
�a�i	)sh��oio7�l��lil�n(�soltogJ�iyic��ispP�a�'-abcdefglmnopqrstvwyacdfilmoprstvw�ynunu,ut,ioloassns�KcerZveo��utuacLuumenx3tilnalF'iss��te*hu��xndfv��e��ia*hleitJhqt!�ueraZctoJdnt�hfpfiu*c��eerrma��e��neo�Kcf��ee��itire'�d�mkoi�l��m)Hl�ora|�iow�eee�knq3run�9u4�utom�?a	ore2�vior�Vclnd�~suct!iFoaerkYn��amtisemiquЯaa��c��reioo�unal�'Q�i�sQ�rl�Ro[�e�uaeo3|jtal�l'�snt��haio�lr��t�'��is�yP�f:�lc�ofl�stJv�hogiycJ�sLaicF�i	)serrmeЇaeiorc� vfss�euai��v�Cnae3nu1m'�wt82ikowi��l��lӬe�ei�or�cj�sao�insparIe��poJcwv9eeek��lea�rlN�ii�4lrsternJ�axit&�reQx[.adeginostZrt�e��o-HYaFe	i��os��o��cgsaI�l%�c\h!�lor�'isti�yeHsa��e�'cherl�irh'�ac�issaeiouteion�'asli<ls z
�e	i-m��t�'d'�i"%lsb
�lnt�i 7li$msv�ze�ih'<lnssI�er�'isyT�aZlmn�
o��ea9�orli<ls�t7Pz7Ra�troguei�rn?ctiBa'o(wemnent�'asli<ls�tz�ka+3e	i-m�t�a2�e	i�3e�u	
ah�iopstu�lrabt�i�leiFoh'd<l=�nsn�o�s+vardi:'[cy�'seltsAOfe0ia�'aeiu''�l�t�mn�ttau*nclae�i'�s�eNlmi_asc�la�mg�]eint�'qslc{�ther�5r
�aeZ�i�'nd�s.G�quaeioci
Do�tlns�'*asctO[e-�iialxi<lt�eray0bt�e�i
�ont�'Z*e/nsu0*r�iI"y
'abefgilmopr�uv'f�AgpWti
feh�'is�cm�'�yi�snsr�sadegi�''�dipit�io�y<lYnr�sHWet�iy��'�'�|dse	i�'�a}i	'ac0efgn9�olh'i<lssf�z
�a
�e	i'�m�tultuahr�'u�fs��rr�ion�',�isglnpt�ur��oog��i�yeͱgorsͳiev�RaoW�yn�e�iein}st�'is&ngu�iai:'	nteid��e�aeioh'drs�'[�is�ycme�3l>�nte	i�'ad�ms�t�wb/�i�alFo35uh'mse#$ochanb�i�aqs��tuicenten5�nil�o�'-a��bthi�ost�u��aY�u�Qc'�e'�lP�fP�gcqr�;eTu�'Rae��ils�d�e�re��ih'd�m�rs6&r&=sae��iXrsto:pnr�'OHf�lhostaYkehOJiyenh'w�fssWhth'Zlsh'OZ-w�fae��itns�u�bl#�nh'<l�td<lYnr�saeY!ins7g�rdzxlr�')�ash'-ace�hfihloptuvy�Tlsta��rge�Znsi�smenx/tdnrsnikahu['�|c'�s�e<l��n�slogi�yQFc�sa�o�raeioun}s�t�r�tln�ld)�neciX%mple	id�ta[\pl��ti<lJbs�t�zi*rcf^�mhellb�e?�oeC�ror�'a�ei'�sDžs�torzand�i0�omt�l[.
ace�hilo�prtuybcdfg�hklmnopr�zstuvwHybiy�e<l^nk�'�e	ilse	i�'drs�th'eiossy�'d�ls�e<ln=�e�gw
�'-b�egilsybo"xo�qxrK�a�e`n��a�e#eKft�'e	isdsbu�0rbu�&r�'gs�e��iy}aeiuy
h'-adn��o�Rrs]�u"*o9u/�bo��wpeareٺi�'��a�e<ln=�e�ghac��he�4ilost'�y�''�yo�twh'~�e<l=�ns'm�'abe	imp{@rsSKun�'is�cs��z1�emt
�i'�sloe	ih'd	)sli�0c�'df"%lsa2�uHUcJ'e	i!yo�o�'}adtegknt[�iho
oyhai'�e	iss�'�a<es}a�o�iuyn��g�'!wt�tlei�'dl�rs
aweR�iyTsn	rg�Ps	a�deik��l�op
,rmat
�'�-Racdh�rs��wrop��pssoldFe��i'aQfn}a�sh'sh�'Z*e�is89k�'ei<l=�ns�'sdnPr�s5e	is��e�ns�hhooYtterh'-�e&ips=proosfln�'taei�uh'dn�rs�aVhn�'q�a>�l�mn�'}a:�eha�irF�a*'-abdefiIlkl�mn*�oprsstvw.a��cdfgme�or��vagr�io7a'�d3@ao'�fI�rtN�vh�'"We>�isaeo�'�nse Ily�g�'Zds_�hnprt�'}al�isy
�'-�Ndfhi�rlsw�xdol�de�RrZshjkae�e�na�lh'�@e	i�l=�ns�'<e[7il}qrsi
kfield�'@,ekl�'_�d'h�sa�'�hssa8bdf �iltv�go2*rn�'Ai�'-�yfA�lH~o�l��m?jr
�'aefhistych'ks�e"0idsrtyi7rsh�'��earmb�en�7ae�o��rE�e[7ia��ynd�it o�ahp�serd�'��e	isaertd�t��rab��d\ei��lmprw�ynt;a�o�ero��o�'$d�4f�a,�e�ai��y�'w�e�iOAolandar}tdnad�zZ*e�i�nss'abefijklmnprtvi7Ttts	)ubol�edlrAnsd�'�e	i
msth'�ei�Llsy�e<l�tnta�e@kiazh��uo~$klIoh'e>�iossysdl�an�g-shall��iy
�e�i�'mse;i)yd7�r�'-bv�dleginstybg��pon�ev0uo��n?lua�r�e�n�ei��y_�enpli�>no�'iqssm�1t:'qs�'-blmopsw[�ybfrre��o��a��ea	iorua��rd�r�0oilYd�0eE�oae=Yn�tn'�tw�ae[7iha+pr�egiq�a�e=PkOblrth'�e"0is�'-�e��f[7ihlst��wsyftr�XoaXilee`vsa
�Q'-fhl��stp"wX�face�Zdeoad�Zslu.eoa�odg	ei��ye��n��rs��th'taessrh'J�e&isyei,�facdeg��j+noprstuvwl��t�'�e��hiskh'UNae�iObl�!psdi	)y�e<l�n	�'bh	ilms
�t�iox[eo�r#�a�ea�k%h?qtun�'0�as�ef	ikst~�lh'��-faFei��osngh'-sb��c�{j��rs�or�taR�e�0t
�'-afhkl-mpstw��b��fgswi�r�0oi�uonholiicirtt`�eioi�n�oee�pifte[7ise[7ih'd�rssalk��'orX�ksneY!int�'bd��hlh�swazi-�a�iv2a�e��os'-�a�jbcefvfhil�nswB�yc�Ihl��rstswhiam�nrcu5	iis:v�Et='itao�femr��pmFe�HiF�ah��orua�*n�ut��'st�Ridn�nr�saoKind�'Z*e�lG�r<=en	siyst
e�i�s�d�eib�t�,g�,ahto:�nakovict�@hclh�'-gos�t"*pun�'�[ns�;vll�td�['e�)nr�'-�e	ish��lC�ie	ih'dls
�'�<b	�eDZf��h	�ilswt:e	�i'-bc�udegijmn��op_�rs=�ty��opil��e��a��aiozh'Zzat��'\eɕi)sa?sdr�'-�e	ipsybOtaroof
�e�i�mi�r�e<ln�e�gum�pa�en�'U/sil��e��atops]paeiou9�npn�ed}kvw�'�6dsej|p�'d�is�e<l�nbuZre+f�klmnv��kl�@e	i�nsyp�'eissdirek�'}rsh'-a+e&iswrap�xp'�sTbrge	i)dnClnsp/�uvs�"he^�tbgn�'b�Ols1^el�iyh'1�gsk�e_)icdflnVstkh'Z*e�i�Vsderh'�e	isyfle	ih'->�bd�rs�b1�ns�t-de�ost��d��eof�ufo�w=nye	ilr�'b�e	i�lsu��ge	i�';�cdsh'�e	il�nsoycCkte��r'abcdefghklmnoprstvxzs�m�'^�eY'eilylU�rnyila
uncx�teyW�e>�il�'lssinecikss6laZ*e�ilityan$�'�a�s
-beil
ino_�rssbl!�pene7�f�.eCia3�eZydK�nr�s"�en	seiy�'-sC�bocsf�en�e�gh'ss"u	�'deiN�lt
mObn�shar��t�'-abc�d]�klmpQorstw)!abcd	ost��a�e��y#aha5MpY�or<u8a�xlH;ptwrҁeoke�Ri�'	�d	�sik�p��a�xrrP-mFa[�ourn	)ss`ai	oig4�naehnn�'i{ia&hH�ptwd��der�npokei
'�d�sik�p�railr�y�kl��')sR�d�tns>�n��odgmnr}Ws?venbu�Qr�xefr;�i�ne�a]�n�-pra�	'�ste��isghimnrj�urap��hh'k
e	ist	�'-eVfilrsw.lread#e	it�dreiyss�l,n�enesseZ*aeeY!i�roC�r�ls^;m[ba)Hou
�'a��beiopsw�7glt�'-D�eil�msto-@bn	�n
�s
�zD�e	�iy1^oud�rt�'-s�rfVhni	py�ace'��a'RnBt[jd5`rsr�'a�eiss�')skan�aseo�sry�iH�ianZ�ohko�'i�ssmY'�sim:'i�e�Pr
aehiklotuvrg�ntsn,es��cth'�e<lsso�Iuca�eio�'�t�d�fn�s�'-ess�'-�egWis/
wyscr��ecre��e�'is	)y�5e�n�'s��x�'Sa�e�isy�t�
raei�'X.nr�s�'Vdk
e.�fil�ms�twy�e`ni�)gmtith�'�is�;eA<or��e>�a�eta@acMdei/�lmopsu
,n�o${ala�ei`Er$Pte�no�s#�n	�rn�6o�'-tei�y��pAyae�zaelst kirh'�e
�iseiy-��m=�nr��st�xmindeX�d�cf67si	pyk�c|eon�'s:'�:'4olact
'car#^trsa�~uas��tan�e�'abcdefghikl�6nostuti �tad�='e!�lre�i<l�nr�s"�bHYh�'cssMwur�e7+iofu� n
h'-ae}hC�ilsua
s
lTblp%�oorS�eh'd	irs�'-ssongwrl�ie	iyh'-d�n	)stdh�lsmseL�can��d�e/�'G�ors��eong�'�e�islarh'i<lse�s�te�zaՓlsteu,rt�rh'-RaFe�Rhisɮh`�ane��sloWger�'<e�ios�s'6u�'�eioL:tid'@\asbu�hCatxh'��h�6psuncul3�a!�iu	�'eilor�s�'d�nsn&=ujoc�c��a=neh'E3ahe!�kstyi�y�_e�}fe�ir�'��-f�hl��siy�aene%Usph�e&=u��-��a_�c8�eh�iosm�tuՈlat�einon�'�a��is-9aHe�'-e��fpstOHf
psho1orsen�c�nhoo�WtehOJiOUyen�'w�fssWhth'-�lsforL�maeY!iz�bh'�adsrsM�laeglaeiouyh'tei�'bd�rsoarZ�dngh'-<Nrd�e�ilprtwad�
deS9tt
�a�otich'�a]�issr�ich�'��b*ee�ipy��ah'��-b��e	insa��l[B'-fabd*efY!ijlmnprstv!�wjlp�'rum�Ap4�i��l:�oh'1�dxpsf�')}lsof~rfl.�iul<l�n�'�wefsuSl�'�6mps�ee�isy
�'-��cfE�hhlnstd"&ti��v_�l�WoUueWi	)yd*�r
ªih'ps�t��e	itym�tish�'�Fe	i�'e�IistUseiO`lr�e	is�yGse}Ai{qvsdBrss�alp-�j<�al8pndklugge7�r�'$�cs�'-b�scdeh	ijl-�prswbh�hrwt�lockeutrit#eli�rive[7i�'yoo	�kackeVfisa�eitb,kKfrig�nocket
'�ei�s�acar{p�3aarlH�r:]ty,�k��iaeiocruy�nbc�dg�i klmnpstuvwykh'e	i<l�n	)swdn�r�s�a�'1�ghs�5e�$oh'�6msdgter�'5e	ios�'�%iyh'�e
�is6?wUy�'-dhpsh9uap�pEaapWpe	id�rtic	�khh'�d*e	i�'e!�h	ist'�y�'d}rse	id^rghter�'e�h	i#�ms�'eiȤo�s�'-dhrsbdta�uon�gri\oven
�rra�Vdolds`e~�i�'�e˪is�ytcnZs��'	�se"0issd�radein�pu	�wzegWiyh'bsaBg"(lh'dgss��e	ie	i�'dhsamms{ekpw�tv�@e	i<l=�n)s	�'Fei-7l��osw�y�e<ln�em�g�aiNee�Xi�'dhlsgh�'�e	is�tder�e,�i�l�nt��h	cdegmnpt��vve	ikh'e	i<l�nsdk�r�se	ih'�r��srs�vskthoth'�@ei<l=�ns4n��s-eR�ilm=�nsy�iyeY!id2r�sgk�'{�be	isr>�his
my�e�hn�'-ckps"�w@eo�a��o>�n�ae	isydr�'<eR�isyo�htre%Ja�'hst7�ee	idr��abBc�eg�opstuvw�'bse�isd7�rh'agsn�'eser	i'�s=be	ih'
e	ip	)s�ee�iyh�e��i'�y�'hs1�t�'1�f�scghh'e�iyd�rsh�	'�e	isaek:'_Ti�sn�'(;e�yiW&ls	c�ud�@e�Bi<l�npsoach
['�eo��k	d
egimnrstg�el�iy�'gsY�aein=Bs?cn�'bdlm	�pser�'�e	i�os�oor��de�iydsrgk�'prsh'e	isd}e�e˪i�yh�'<{eiy�en�eg�'sti�y�es��he<l�nݷrsݷt
:'aeiostuy��clrstl�'-�ehEi=�nps��w�m�#st"Yis"oold�e�`iIo<vmt
h'@�e^~i<l=�np	)swy:Ehat��ch'-ppi\afRahJ'-*e&i]�uaY�und-gr�at?qeagltr�th'J�eisyenEr�sma!�tleTth'faJ�eisy�en�jeg��ahw-idglrtge�n	op*gaei'�yyx�'drsy�'�se�n'�rs'�tn�ckn�'k
e	isoq feh	ik�trs�'e�Dfist�vw�yere�isyB�e�e�non:'$io�n�w��icgklortuZkk�'<vgssfaei�Eoy
�'-fadϰhl�rsy�Td?jrs�te-�sc�Zthnr
:'�eZln=�egh'-j?jr�fad��e��l�t^�ecthh'e��i�yd�rs'h-faei<l�nst��aong:udnr/�s{e�Ri{en��sgas��be��hlderl'<�ei�sn��ga�<e��i�s
'�spdgrtgeiyh'd�ls�e�l-�ng<l�hn�ele��iBf�'
mst<et�iyrt�1nhe=�s	:'aeioruPy	KfcfZ�gikpr2Otz�Yf�u}�le�iy	�'bd.�fr7l~�rsir�t=Yd�Jkh'd�eps�sr`�afaei\ly�e<lnZs�e6g'�eZ%f	ikliss)ye�n)rs)th'�eisy�e�nziy�e<laeltdkh'eisyd
r�e<ln�e9g�drz�'�e5�ise	ih'drs�6lcdfgptvk'e�isssde�re<lnr�s�'fth'e��i��lssy.�gh'H�e	ip	)s�wes�iy��'n�c)selh'D�e	�i�ls	bdegort�%uw�'bs�
eiy�eZ�sgraSKs'�k
p�g�s�dkptN�z�'��eHsh'c�e�is
my�'gWisy�e	ikeTtel�'ei��ls�d�rn	�g�'stiy�e<l�n�'-bcd�ef��i9plmpsa�tyc6&wa�pae��iloa�l��n�lx5ra5iode�i�r'�s��wa�urdh'eY!isap�tu�p4er�yi�ofxaiil{l�a�eobilei�'�d�rs�alou��wg[
hch/
tɻuTSa	�eoe�'nd�i�rs[.bfgh'-bs�Xne	id5`rfh'`�be	ilsOe	i�yh'g<l�nsse�iN�lsdr�s�'-abcdefghijlmnoprstuvwyzacnd-5�s;�akpr\vyh'�eVfis�'`�b�eisy�eZl��nt��u:roh'|�a�e>6is'm berss�r�@e>6i<l�nsi�e�q[.0�cikoraeobl/�ilPeyh'i<ls�*st�z�eyt@\a�i�y-bcelmpbepiol�Zoconomic�asol��iiolo�$gultu�rconomic�aei3�oJgnguistw�isetr�iyaothh'�i�s'�yl�wi�'cbe	isd�t0yGWrateis'qs��c�'�ad.iose	i}yd�nm�'i�yeW.s�tze	id�sva �it�'
ls
-bc�der�hil�n[�psw�yg�bhpsea�d�r�aY�e��e�#pa�ooc
l0*kov�%e�cey-sof�t�_h��af�oZgj�ato-g�lrdi7
sn{e�I�e
B�ou�r
�'-adeiosuvz;�f?cnpra�Qc,�uia�s
Du�eier�'�e˪i<l�Ns�y	�'cd<lmns[uis�mt!�inei<lnrs	)st)�f
�s�t
�zessSs'oid�'Bascdhlnptstit$ua�e	ios35u�r �u
h'-a�ei<l=�ns�us�t�r�fy�t�$uoqui�y�e+�s�zsis�mt
�isa35uiri	)y�eZl=�n�'�e!Jim}nson�'W�iDutb�t/�iI�lae	iTb"td	�n�rshenit?�sabe
imn�xo'lti�'a�s�'f`n;�ios�Xeer�re*�l��n�r	buEd:lho:tprtwod�iy'7|lsne{�'ss�zfsHvvabe��ut'ss�[t:}hir�mahyss?ae'�n+re�' la\�iombulis�m�t(ul�'��-adgi �jnosV?tc�y[brt�a_6i+ph �r�'b|�cfhswY�io_+oes��t Iaumt�+iFe&�rritFeitac�a'�s�e�i��yg/�mrra�mJ�pay�io�'
�nus<lo�n��-ofbitcAdh�Eknt�e�i�'hl�iy�'e�isdc�rsayFeY!i	'hoF�prswiotates-mt�'i�rscalt�leUih'�dscmle��atsor��e
�iri�
f��aih�tbcdegort�e�oere�i�y�rQ~si�dh'�WhlnrAns�lyI�es�e�o�4hrit�uihyexioy�l:�nw�'�ef	isu\l�'aeis�b>en�_'ta_e�s�'h}oste,�bEi
'bfgBklnprstv�swes�KtriqXsufl�e��hh'�e	ist-al�f�'-flmsd�Ssestr��ou�less<l+�n�ad
�'abceo�h>�il=�npstl�iKa�/ioY�a'�xhQ�l�ed�r�s�xey'sroof�e�~isca2�p	�'cZ*ehisyk���oanouźv�e�n
h'cd�@e��i<l�npse	i�'O�bdfsorge�eA'�0o
kua
e	i�'p�heh@ur�'-abe�DfBlp<sweswast�'��e��ws�outh-֐e#�west���'erl'�ni/�ye��s��lmC�pH�orid@g�anr6ydY'-on-se/�a�''�lnh'�geiIlmsss�m(aS�oaer`�d[k_^l� seDneireign�'�ls�t�_eh'em�insd�r	th'^ab�iq�ud�e��z
ace�fhilor�>suy�'$�acdg;h�i)}klmnrstv�wyei�k�'-cdf�mp�rswy�/s"WtraKfp�a�Ll��lort��'s&�hFua�olk
h'��ei�s��a�en9�o[e-gei�'dfswiu9o
us��h�SocNln�xeBjoshe��tdiDn�'u9bm�seidr'�s'�en	�'dgik�6nser0�x��el8�ei�yi@en��sa
eIsr�dh'�e>�is
�'ce�ik�lrst
'statW�ih'd<l�nrAns'is0b�'�e�il
ms�yle&iy�e	iow�'hsaw�wJe�ia�'&;c6nmt�'os*�dich'La�is�'�e�hist��uao-�
ltempora�l-tempy�oe	idrh'd�e	isw.�ain�'�esca
acdeilnrswkr�aeisarAas�'pL�sho@nng-�stub	�'�efgh	i��m
msish��'eisd�s
uea��dh'ik_stua�ef�{m9�ol��th'i<l�nsAats+�tf�z
�a
�e	im��t�'�si	pyac�Fenbh'jEay�i�ns�'Z*e�i?lsa)�eirctlue�'d	)sla8gry�eior�'JiкsnomVya�eo
Du'�lgO�mpsra�mph'i�yc�ahoto��mcop�e�i�yla�6ur��tcd}rh�'-�ei-7lwfzmwrl,ifiy7Pce�d�r�s
!ir��i�'�T-bZweios]�uwy�aoa�bt�e<ln�e��g	em�sj�t#a�6el�rgh_teltuologi?�y&�c6Rs	C'fabcde>�isiH�on��dhec��kow��n%ncdgste�'CrRaFe�Qisthr�yile�rF�emr�'aistio'�cQed�%cgpz.�eAYohao�yoa!�i�ocid�a[beCiy�'2Klsa��rh'e	i�saeign�au[bmr�eio*
uc�aib'dn(�cgl*xoli!�pcdef>�gklnrtv�'aaee�iss8:uy�'bdsH>uer�'il-mswy	Gn��sijk�ne�xob
h'R�b�sd��gls�'�ub�e	isfZ*e~issy8�eWiylth'aJ'eios"�w�g\n�knvQ�eh'-adeinos}xyd��orL�i^vc8gllr8�e�iy4Zi�'-ls�tch�Kies@s�e�n�aeY!ir��y�'�ess[uzter�'I�hEisaeioy8:cel>ah'	�e	�i_�ls�'�adst�'eilsu�dn�3se�psa�olh'i<l�nsu�s�t�'cghagZe �er�a	h'�bew�f	isttz�'sdfsul2�l�nber*=gie	ilo�e�y
�svi'�yi@eTsaeiouknstychnopl{�ehh'b�ud�eiy�azyo�e<l�n�'ste!i�drh'�e	i	�psh'�ef	isӬeoo�^tenn�'sd�wdeioiodf�e<lnerousZl,nrB?u�'o�s��u��crt'�c�um�weS5c<JfntS�et�'e	isd�jr�'-stulsec%o#e"0i}d�st�wc��rt��t	*.cik!�lnortulh')�ae	istp�o�aeh'dnsh�m-*p�w�
adgstylo�leiy	�'Ma-facdl�rsa=nk�i�e!Mf��nor�'�e	iFsͣafk��ln}�r�'Lae	isdr[''�s'�y�'�eWisy�'-D
beDZf	isfed��ed`praB�e�iort*�dn-�gp2 h�a�'J'eisy�en>v�e9gcmpX�twast�'j�e!isa�en�'lU/s;&i�yeorЉps0(oiNeormg�a�e�.i�'-lstwe�Cl-9eig�t�hee�iys�ta�eP-laeiouyc�in�t�dwyhgef��h�'Lae[fisaeydh'-Rae	ise9�aa�r��gheeth'�is�'sd!is�d�egnt�'>�ghstW&lgkt
h'-be]�f~QilstDcv��wyclle��a�ooY�a�kriHae;&i[s�tt��ul�e�a�i�olle>�i�'e	is)�eHszh'�e�icg	�u��k�'R�g�scene	i�'d<l�nr�@s�e<l=�ndmnrt�'Y�dsB�eioy�e�n�Gnk�'l�issy�'rgi�Xn1�rs	�t9�oanLpt
Dui*k�'cp�gh	imL+wker(zehoas`�t.lsqru�'aei	bdl�mnrstw�'Ǽbs�'��drs0eiw�lU�od�e<lo�ndter�9e	ise��i�'d<l�n�rAnshh'�e�Iiyh'�l�hnst�e	i�'.�fl�k�rsaelkl�lm�'e��isy=@i'�d�	g�i'�szRae	ih'Blbd�rschh'	le��i�ybdfglnrs�'bs�'<e	i�':TdgsV�i�yWf*Iglion_a'�satncy��wh'e	isd�r�se	i�lmr�t�'a�d1e�}hl�srch7xiye	i�yh'�e�isyel�'eils��dn��g�xeiynF)ghh'�eiy�enegssH':'a��gico2z'nrv�aac/�hi?�jaMcBd�eh
�lrcs�t�w
'�s
�i
�.ade
�hioruybcWGd*�efg'�hiklmnprstu?v�wyh'!bilslz�ie�Biy	�'-d�yfmn�r�s��bg�g��l�ma�e�n@tes�Esc�eikty�a:'te�'�a�eh	isoc~uf�'eY!io?jrsd��rr��d
�'efg
hinsy	�'-�acdhrshmsa?�nanaged4�m�rtrY�u�:oܩra?�ntr�qu�lerh'�e�is�en�ePganRtdnr9ft�e<l�nh'e	i=�lsdr[s-Ӌg�'�fc��hlmsw#_iast%~e#afxee	i�'dh?oso�\laeiklwcg��t�'��md�l�m�nr<�s�yn�'gi]7rs�m,�t�'eisngh'-ssMAh	�'a�e��h�imosge
'an'n4narth'<l�ns�e�Jfimpna�'jterC'e�ish'e��isdc�r'�e	i�'cdfhiklzmnstwza�ehne��le�bisdsr��s
h'-a�beiopsa
�io9u�lff��islron)ed�'-�isbea?r�eg�r>�nIsf��ufh'issst�h34i_�oD
t�Fi�ooT�pslavsk�ilyed�ityX*a!�iBjoEVb�cth�h�o�e��oa�'�e�ishlh'ylococc�ai0ue	i�'d�r
msM{tSs'-bcdlefg	iklrstvspt9�au�kdouard�'�iss"ci�rh�k�'�eiy�e<l�tntect'�su�oMJu.�ir��uatUze�''�s:'e<l�n:�r�styei�s�tg>�ntH�h�'�e�iyhtinp�''�sru��ch'�T-e	i�ls]�u�ae��id�	lsjhq^iC'�aeio�su�'-UNacdcfhlmtnrs
wof-the��-ra5�foouse'seB�iys+rsenp�t�'_�oim�w��da�en�'lU/s;&iycnosh',Rasn�'-ae	imswawgIDra��s'�mt�Ei'�s�rscF-o�
ae�rst�'�ds
tq�u �'�eqtu�e 2orbfn-efch`�e	i<l=�nh'-��e	isat-��h�a�i�sacefghilmnprtuvwdklm�r�'fissyas-=tK	c`�e<l�nh'��-	i�'�hsh'+eo�isth�'xiy	�'?�be��fir&�sy�e�l�tnolle�isssd�rkli_�n�dl�npr�v
�'-�Be��hWi�mswyc��lork'Fe	)sY�ah'@�e	il=�nsey�'c'�d�Zjshase	i�'5`rsh'i�a�eY!i]�safn�'C3i�o�e�iosaursiQ~umaCngnlic�t	�'belms�7we*.cDr}mtra�;geq�tlae�'r��tnb�o�'hl1�ms��wcdgot�hil�'	�e	�ils<�e-�i0Lhell�r��'gstraphFe
�i�yhihy\�ep�e�io'�sˈr�'-b��cdfh�lmdLnps~�wp��a�ra�d�ua��omo`t��iaen�'�in�'�\sohu�mo`t��aveings�4t��i�oaeilnotdKPio
�'cglmprstah\memi�crsnros[i�ta�mpO�hog�ihon;�i'�ye
�gcop�e�iyyp8�e�iyl
�a�ei$ms�t$qzing�''l�n�'-Bae<l=�n}os�uXOwvolme�r:'r�sTi�loZr'hs1�t��o��ol�be\i�'dnore�Ri�'	�ds�'a�\s;g�'a�e	isrdtt�'��e	iQ�s.bcefglmnpr�st�kvk	�'Feil�ps�u	)yB�e<l�tne�Ri�Zb	�d�rgsl$�iflh'-e�i<l�ns<	nsd<nnr�sJe5�ima�'staics
�z
�a
�e	i'�telt�'stto�'{esh'b�@e	i�ns�"w�io30r�'�`e�RiRos
,sula�i�u�nt�e'�io(�rtegk�th'Fei"�rsy�e<ln�e�gh'X�bFei~�psy�e(nepund�'isarAdiylOe�Qila�e'�r�th'-n7lrsfr:iyei�ung<lsch�'ea|idrs'��y�acd�7giklmnopruvwhka�s�'-�ab�=d�ehip_�rst�"w�yin-Ͼtreo�teYkaous�Yeldtm�e<ln�sbef�gi��n�st'Hsaqtr�ioo�r�taokRe[7in�'-on-tees��'dgH~a
oe]iyc�'�ahi�siometO�rs�me	i'-d�r?�son-tren�wteioy�'nscdh?�n�e�i<l=�nn�'~�ais�>f�papclth	�'-�Jae�yfi�lsa��p��t�c�cna^2ih'=be��is'�yee�iky
�'-cd.�fh�lm~�rswOHc��hu=te�ToX�n��aaom2l7rs/hr�kt82e�id�gl	�p�'-spig	e
�'-{@c$�glopsw$gig|=h�fvae	i��lTb�gard�Tr�aae;ikmny�brg	�'d��f�h�zkrs�Vy_�o'ss-C�b
�'-!b1e��i�l=psybcdfls��i�2o�}oi�nantc�e�ai�g�No�'bltoa�oS�ri��nel[4l�sf�prtbri��d	�'r�-er�h<l�hns	�nr�se�'-psp��i�ia�Be	isNb7g"�waeiouybcdN�fgB:hinpst��uvw�y��a}o�hbǼdieervari&=ugle�iygeTnthth'-aef�i"�l�nswe��f�d"(i��w.dnr�sorward<l�nssWa�'-'ejl�nsj��lack@�eack�e^zay	�dgel�u<l�n�r�se	idP�h�rs�'lpse7Os�eY!ib�ooaefhio/u'Kfggi�yc�e�s�1a��sordY'-upon-a/�vacgml��bl�a�lo�rՠe@o�fgraph�Wiyspher�e�ii�/n�'-bZ*e�isycwoloucTr�oh�ev0o4oaeinpstwkm�'e�isy�'Laef	ilsCvl
�eiU�nt�'�iclswa�Vi��mx�ca6AigvlsagPuth�'es=Pnh'tocmocc�ai�uy89cs�'�e��f	i,lKochh'ae]imyb�Ci+ld!rsarhk�e	ins��t
acde7fkmnpv�'et1�e/vikt�e
l�e<l=�nuk�de	i�'nrsy�c9t,�be5�ih'-b��o�rsbreak#Oe	ioru�neakQ�eo�ime	Ei�d?rN�dg	�'�<beqjfWi��psyd��n�rbp$a
�'-e��i�	l�6pstysearcY�h�'drs�yease�i�'sd{rse��idn�rsb+dg?klmnpcu+v��w�eosR�can��oI�l�zY'abt'�aolpaoB�e?�ogr�t:'x�-`�b�eP�h�i<l�mroo2m�'hps�~a�e
�i�ei)yw2eWlnegs�}scIldgmntkturae	ili<ls�m��t�'d�lsr�gh'm*7pse	id#Qrh's#�tch��n:'abcdfllmnprtyB�r�'bs�e�ilosyeV�iy�'Hd�Dfsri�nUck	�'atb��deiT�lsy'�bnt�'shi2peo�d�rs�'s-;u'	ilin�kfh'�eisy�e<ln�e�gb]�eR�mp'�s��l�'ae�isyg=Yed�}rgkn��st؀e�i�'i�e	iEQms)weiFofn3�a)i68y�2ddh'�e�i<lssd�)g�m�tgWiyt5eg$MavUye	�'H.;�glmF�prtx�ei�unsy�z
�a
�e=�h	it�'isc
�asieh'd	iszeof}no��aabcdefghiklmnprstvwzb��r�sv�ile�i<ln�rdses�s�'-abcdefghijklmnoprstuvwzabceghilmpsUzq;�uars��e��alϬadit<e	ior�'�i	�sr��oeadt�iF�diXmteute�nachine-�'glo�taetha/�rq��ua��n	cdglnqrst�i,uA�uen�c�t.ptv�etaaruaBhe!�tapcc�etuchn*hosembl=Yyorma�e	irse�ma�naehlorute�gll
�ual,padisءug�vs'emn�Zr^�smp�Cait;�taoc��twnstcioush'<l�nirnent�'��asact�'�e	iFos�Zilttur7|a�ean'eK!eioursvect��ocipf�li dBsmai�inadnLacge	it�ei'�s�n	odnrvit�e�io'�sr
['Jis
�hfe�ou�xoLyer~�gae�Ui�Oorucm&�u'�e3|t��irutiy
ldattaitoD�aeezɕi!�se�rne�rura!�ieuad�'>�ism��amn?�pcdftay�indes�c��eusx5teudatitoert�ve=&ouct�'�eisn�ov�eis�tm
�tNgnctiv`�eingdhoaeijuF�nteR�i'�dJr'�siAa�^tbcemntx3rense'�d�e'�suten'�aaeiteUiF'dsd<l�r�sn�>t�ag'=gt3noaeiounrdi
�b�gi�nrtgse	idns�ei��bn�oa�ccstroscop_=isi�ov\estBae	id�r��dcl	Qnos�Sati3@paeoFut4�i3nut'sp"wrma�lprv��etim
o
.a�uo�bdgnFeina�rt�e
,i�oani�vs�vzN�a�e	isLa*hoahlorura�tg84lrap�hy�l�oepInulation�'	�sLioc]fgj�Leram�'seq�c�beocdgta�sn`Rdion�'J�as�gNzu
NaceioptuKbyahr
�pem=YaiUbpth'<e/vis@c�nqr�tuen�c9tvien7c9tdsei�yd#�nsa�en$ms�7zri�y�eE�l"�tte	isdn7ctHci;�n�Jl*�aecia�e�f��lairNygnBt�cdti�cav�etu
�etO a
eino�vn�'asl�ra~�iuta�e
Du��cmrLa�e	iTpfa&caeilor��y�sHhenr�s�x4�adf��mr�uaneao�nCu�Ytey	�nr�s�t
pt�,aaocA�ht�e�ispic�a	)s7�nrb�'a]�isnh'iss0�s�t0�ze@nrs>ti�o�v#aionCvdo
�fe�rchkr��teioues>ds�'�eȾfiFo�o�vnc��t�5rtuap�sr�'<�e	�i�l�sblkOm�iq^uenc`�t�e_y-r7land-s8uh'��e	ilse>�id�rse;otT'�tadeo�rsj�nto,�re-=ntenla��nkrG&uifP�e!/ih'l�iy�'v�d�rsttz�'E�oyfieior�ur8�ae>�iscx�eienn7�c9t�'a�e�8i'�l
�tclat�ei(n
�o*KvC|kag${ae�i�'s
t�'Qsagr�'-2�bc�e��ihlpsycdp�+oad@�d�re��ao#�a9@l�aesta3eis:�bn�o3	v̀a:'cntid'Qa�e�'a�fc8�eY!iFosb�i 7laikr	nya� kothY'a�efklptwA�eaiouh'cmtet��aet��he	�'<s��dna �mr�'	�ei3Qo�s�c	�nh'�eis	)y<�e<l��ntaei	pynCIe<l�hn�e$vhaioud��mt�ie	i�'d�s)�d{�tna�zmW�tr�'<�eio�s�c	�n�ua��rn�'as�'s�t�'abemKn6bopsKt-ct�yr�(aria:' �naeio?�nrti�y�e<lX�nsz�a	e	i�a	,e	i
i�ovdr
�'d�e�h	i
mstyHza�ia�ont��g�'X�e�lrshyne	i�s�'st�`wuta9�o�'-bdfghklnrst>�ub�Td<
aaeilouthh'eY!isd�rssadl)�m
�st
's!�rtt��i�co��n�wrn�s�y�'�e�istaE
be�|ior�en}s�yeC3s�cr�e	i2�lswn�'essIre.ioys�s[p.�i�0l:'lass�'0e?(a�eX�iaRoei��m��gt�eiy�'�e:�n�s:�tV
sR=v�io;Dov*ceh>�ptZ�e�t%�ain�eyro7karn�'ns�e!i��ah'eiprstrh'-abcefghik�jlmnop6�rstuv�wdoo�p�pblnundan��ctlZonu�\a�e<lno}u*�wa�ehiloy�rlrifragilisticexpialido�c�gar�rlAat�^ia5qu��ilmnol��ip�udsuctiFonv�e�i�LcY�l�grogat\�i	oaeiloNbru�m3�tc7Ptu�onc+nialy�i<l�nuio'�x��d�t�Wr �u!�orc~�tan��sa>e|il4�orlac�xue�i
:''�d�i'�saR�o�Ts!DveiualrtcTtvyw}�ei9c'�xo�'�essUwerod0yg��hmU[amnopo%stende	isdnc�t	)e�yr�'�i�lsajut�ia�eol��n��r��d�maoult"aura'�elh-i<l�nssr�Svma�lme-rr
�xd
�einƻa��h�losw�einN�t	aceioptylt'�e'�turat�eino?�nri bpth'<e�+is dln�t�l6jsRznic�as�aec�e�iaigor�rr�ttio�n�u~�iucturBa�em#amawn'�x��k5i�seion�e	i	#tls@wle�iKod�es�jlnW�a�ee	ilorJCudr�'st:�iaei)yn>t�lm�nr�sent�'ak
e	isl��r
�t�ac*eVCarsth'>Haeis4nve�l�#n�a"�einti1^oo�n�Ruess�a�ei@BoTbn�ovae	lmnorstv�u�9oun&�daFutionali�lsZtmr��b4�a4�eegme�/nem��piSFtma>eD�oci�ye�s[.acdefgijlmnprtvU`ybtt��aehia~�sa��rn8:g-f<l�nr�s�tf��i�vo:pio��o�'abe�~isce	i�t�'-d�rs�ato-�asuq�roar�dd�i�re�)i�'d�o�rs%�cnaX.gmY'eo'�-secti
oviy�e�l�n4a2�ioun1Eta�omalrss�e&i#�ius�'�e�[sis8�e5�ieoanpHylis't-mth'%�is��dtiti9�ogua�9c�tnd�e~�isa;(eiH�ox�'��e�itl�eeiiylڋlh'�eY!iFosva�e	io>Jbl�'�@isr�'ship�'	ace��h�ipqstn�'tanate�'�heptib�i+l_'~tei	�cndseio�'��f�ovr�''�yc�rio�n'6uuehac
ne	idstxaeina��e	iwmsb�ij'ln8�ahlt��uer
l)}eCzo�'taaN�naebh�i��utynC�nr1(tain�'s�tae�TgnlH9bEdlnrtt��e�'g?�adlovs<kla/�n
_'_'aeioubE�dgh�icklmnprstyz�'1�bK2is�'gse	idrh'�e	isil�i[elowh'-�e	is��tta��i�imperU_d�'�e]ilsy?�a�'b\ek�rlnso�Muh'�@e:�isyBd�e	i �eon�'��gh'ps�a�e	if�dmt�'=be	ish�zimy�e
nk�oh^#th'b�e	iuckYlh'.�chst�'
e	ise	id}�rh'b�e	isackh'�esio'
lqsadel`�np��rrtFe	is��w�')�bev�ipsya�nh'h�bui�o6Rre��ix'nb;s�'bo0rObnpth'Feisngh'<l	)stake'	)s
�'-bceh��i<l<�m=�nsta\ce�lrE�eio~�rnr�se�~ise�ahJ�olth'eh>�isdsr�sea@de1�rtbV�afg�dlmn?prstvzt	�'�e�i<l=�ns'�y�'t
gsh'mswFe\$iFu�sebdeg��ik
tuC1r'Ul�o�'�dhssh'!Oaeilsy>6i�r�e(netr5Zelh'�ew�isyhsh'e��iydsr�@s:'j�a:ec_ehzh�'-ӝabe!�gm�ibow�lver�''�sTal[�oe(a�d�rserY'
l�,ezele	i'-drssg�slortk�l	�n	�pshh'#ge!iden�'.�fpstl7�aiom�cas�[tmnbcd��klmnpqrsza�irJ�iao�mphany�c �teObnn��hlpvaobg�ai�luc�f%aZb�sgis�mrth�'-
�ir7ls�rlaMein�'/�itateabilmpnt��eioo7-n&Ws*�tl�'i�os$jcs
�z
�a
�e	i-m�t��ni��netri�y$jc�e+�s+�zahYlotth67ei�y0ePsUzoni�yc�e\�sWGsom�'a�lst%�i]o	acdefgotegprseseithe`�s�tog�a�u�srt	h'�eh	ilosyromnt]Cei'oycs�,zLai
�a	e	im�rinLa�epa�e'�lt�eUiTao-�tairctyS�lc'aslt��i8�e�io{�mrgei�y'�c�es-mt;�i'�sZ�u�ae:'.�nd�"en�op��v�'Lay�isym�'ios�yceZtlXuahTSycgyx9�tma'�s'�st'�aFi
e�s'�ys97t�ei�xsUzhioli�s9Vtn<e	iues�taiuc^�ua��n�'}c�nMpa��otd�|meom�'aistics�zsas
�a	e	i�tch'
�ass6~ly+�gaeiynf�dch��u,>wj�lmbor�s
'-abcdeghiklmnoqrstuvwxyz���Qa�sjsuncti�6ohir�8t:'bcdefghijklmnoprstuvwxy�'abeIilorsus��tcYoY'�eJio�yule��hrY'naccl�aei!�o�'-`�a04cd)�l*mstwтtpoo�3n�'�os��a
�en�o�rulxPei�zla�m�r�thikotioysto��sgmrap<�hetFe~�rc
oarF�dt<l�nur}sn�i<l�'}�e��i��lsy�' �ms�'2�fi"%lu,ucl�'�ais�aZt�e�i'D\p)szx�sh$ i&�g
,jftt'��ei��rLiye
�'aeI�gl��m�os�uloYg�tiateЉlai�ouropvtJ�t'��ncBe�ghlnprtwy�Jh	�a�'-bcdeg�3ilopswen9�dTao��a@ngMora��gd�mate	ih'sd[brssRoe�Nir�'U-�eY!isile�p2�c��api�un�'"$nsl,ah)�i3 e7�a}et?�uJ'�e	isaHYee�i`�najuwhit�'�a�auikis�taeilhjkPpGleC'-ano�rs��h�o9u�w��f"uvL�namak	bceiklmf�o�uhtei$Oo��n�'�Vu�'��bnst�'�e�lsm#�a$bes_sm��ah'abeisyt1�h.�iazyoem�nh'sr�@s
aƞbcei=�nouydhne/�gas�@s�ghi
�er�sy�'raH=nt8e�ns'hw�'yl�a'-h	ih'�eo�'Fe�s��oud�'i<s�cs��t
'abeimoprss.]w){b?�k�lrzY'ai�'�cn�d'�sep*�aeol��lbmr>�uO adk<l=�nrs�'}a�Els�it�'k�lnai+uty8nHr:'te�nxiY�fae	i(os�'lxdre	isd�r�'abcd�egikn�stau �yzg/�kmi dese_rar-k=pr�eo�yor��i	�'aeil�osy�lnyi �k�ln)�r�c�tbenileyh'Ynsr�so's

'8�e��ihta��s	�'abefiosgmr�ud�r,tuc�lng�idj"r[�aehidn�5rsbaj�u)ta�?�uu�sn�'-gsarlmiusz
�a	eCi
�ae�i�mtsoIua�uh'^sU�a�'is^�mt�'A�i�s
�'-aei,lprsdaZ�n��n�s	�'-Ladl%rs/
wrecord	i.eikI�ntr^Yiy�'�Rino�r�cLae	id�r�too�mHtX�t�'abcdegik��lmnoprstw$z	�'Vd�lmnrw=pzasala?�tUla
ntĽei��u2�nuOwata?�ea��e_OlC�o�uiy�eg<l=�nr �a�'sd�ese
'�_tf}m�n�fei��nn��gach'a1�ks�d�'aisfgshh'�a�e	i�'��os�t��'a�o)s�	ua�eiygl%v��e`�en	iw�tai�uPl
�'a�@ei<l�nsA�u�y�nr�'e
�is�u}yCaeZliCn'�rds��e
'־ehkmst}akj�e�'
�b�ef	ims�o��aƵian:'d�io'�,eeiy�'d1�f-7l�rs�e<ln�e
fgae
e\�h��istum�r_ieiloydrh'd�eɕisemali��o�aeY#nr��se	ih'd�rs�Bto�'e!Jistm
r	�'=gmnprsstar��uth'e�ix�os�e�o�_aMu��e<l=�nologi�o�y�c�eern�'�as
'�adnHs��r�el�i?�y	�'-aei'ymopd�fe��db�tl�eyd
frs
�'bcd��e	i	em��ns��wer��mnomi�yc�e�s�aa��y.�lps�'caisliHYssp:'h
�opaiko�/v/ipcd:'ai�bcdefghiklmnopqrstuvwx�'-bcgg�hklm>�prstzleaf�v��aF�ah8$lu�!-Rae>�irs�'Zls�3pa�hr�'est��t�'�Nis�'-�e	i��m��sww��m�'-adZ*e4�fg��ijl_�os)ydgjs�osruo�p!�casY�se�rta�iw:�aro_pash'he�[s77ees�s�Nd�e�?h�i�	p�'�"eisO`m7|ejlhtu
C'2�ins'�yeiot.i
_rc?�qaC�iol�i<l'�slo�r

bcfglmps
]taЇb�eormjpa�cth';�is
�e�grraph
�e'�yogi�y�c�e�sa�inia'�cp$ahoriolR�e2bibie�ili'�s#�teneurJi'�scptienc��t(�e\hr.eZ�uonic�a	)sm��s�'diss�iy�'9�o
Du
�'-d	imnpst!jh'al�isyge'�d�r�4iy-ween�s-bbwo��pe�%eop��pZ�e'ps��eho'"WeY!ital)�e#iCullRoucigal �perra��nan'glrn��b��htzat�p
ironޞi
[.X%ce�Tflnosucdfgkmoprstvw�xaosth'Fe	ismnump'�sunticate�ieY!isd�rsy�uferenc8�eY!iءr�yaz-iouc�xsψin&2in��kHa��eramp�'Y�msh�'eis�yd�r)}s
�cn�sineL:srtaeC^cjnrtke�it@BeY!ii�cdt��iFeri�yc�elp
�sog��i�yerat1�eR�i
�oah�-lorth�ei'�s�y
�ce�nsLzHe�i�tontei�y�'d�rscn�soh'gsrap��hrt�a!ei'�s�neio9s(�ncmes��spter�f'x�secor=�dac[�lo�rp8�ei
�cnehyPxpeY'swC~raingelis
�m
ftesf~w�eiunon�'x5as҄aork`�e!i
:'-��e\�istu�yt*
aa��lr�ret�'st��7e�9impera�e�ih
ot�t~$gabe\�op�_u�\z�lra�iriou�s	�'eilostuY'drs�'a�e	is�'$m#�nst=�eut�'s��unae�rt`e�i�'sM{t�'rsai9lri	)y�e<l=�ns��z	eCi@ae�i
irs�r�'-ag�cde��fno�pstu!�y�bcn&�x�ei9�oy�t�ct�'�e	i-rsei�o��rsdnr�c�-t
�'-hef�(hil�nshearυt>�onsz�"a	e	i�"ae	ijoyngiQ�tb�m�t��xr�aBjo:'��ae�i�yrc�rsseC�atecb+n�rhtiVNtei��oh'd<l^nrAns+lno-tn�'J�ae	i�lsd�r�'ae8gh	iosd3c.�tdr�'AOfathrahi9�i9�o4�rtihu��a�eidy�i<l=�nu��i
ar�bceiW�kmnoprstb�wfhkmAnst"i��yert_zi�h�Oi�ucog��len�i'�selu�nb��nsratu!�ltah�k�'ya��k�'Bj-a��eiWlszgn%�s�tagio�uTb�lt�ei��on�oveE�llog�~i�y�''�astk�wechK�nsichore�'x�a:'aeioy	�'cf�injp�rz8�e	iot�tor��m:'�cz[boY'�l��nstr�i	�'be��fVQg'�lX�nt 7l�'�rsori�ya�elh'�i�lssr�'�-issz
�a	e	i	�mt�'Kis
�a	,e	i
�'cp�lJeianr�i
mylosttacl:'taei�hl�[r}e1Xt	�'-aeiosyd��tri�v>JbB�mt:�eForiAdc	)xd�e�rsc�ef<lmn�s�lulart��i	pyoni�y
a�e=�e:�gsti�e:'ach��ortnM�ai�uc
'Lahiy�e<l+�n��e�ya }o�'cfgh�mp8rstvhy&�lor�dcli�crnluorBZioethylon�'J�a�seydra,i�o�ldrocanna#bl��oe�ogiac['ty8iNyllab!�ilh8�l��aen-�htono'?�i<s�ei��okes
b�'a_ets�	c(;nts	�'atb��ei,lM{rsu�ln�gparl7�i<l
�a8�e	iif:'acceioruwy�zcdilmnrtu	�wykerjYa�'7�d:'
l�sa�eil�Em}adomXiio[u
Duphq�yes:'liԁn�e�|g}hk}t�e2�f	i"%lsgivin�g:'gRpomi�zn'cdBlsvh�'e�~idrs�\'is��sDJtma2Ksturg'�ei'�yQFcs#e�n. a"�bc:�e�filmnors�tu�wy:'dnto�rt	�herr�'g�sCdoei�'g�soB?e	ica	)sl�i<l	)sa'�etI[l<�ru�s �ma8�eis�t�nstocl:?eel'�f�vh'c�eY'cdlprsra�i�crtolrs�fitateiRci�a&=uogi�y�a�c�ehior��lʟras��tei�y�mtic�aC�i�eܠs�nzoph\ i��yaemopve;i�yutic
�sJ/a	)ss�a'a<bf�imo��stu��wdBlrsv�*bfto�0rre0(ifn�eon!4p�d�t�'8eaios'�co�stnicF'scdefJ�glmnps�ho�uyna�}ml�ae�gcorY�muminescen]�cHtetFer
�iyuc��lcJhily�laF�sl\a'etsi�ta%�tln)�pae�ipsuri�usauia}s�6nalo6ynia Ikn:'$�sd�r'd�l+r+v	acegmnrs%�tmin�ek
h'-eh��i<lnioӬshsead{ekiv�nnr�s�cte��iseade'�sd
h'X�ness�'e�r�s�fn
r}uvL_seid�rsY#n�lsh�'-��bs
bbpl}ue�'�IbDZfshH�uegk<lns�'a[�isu�ymaǬbv�jma[�mp�b-RaFe�Qis�te�Bid�rs�stulC�adrsth'-<lsӋcp�rarrcot�'�e��isyo�eOJiOUy't'�dBlle�'dso�wlmV�nr+s{tue'�i�'ssY'�ai�p�sstmt��i�s	�'a~"e.ino�pk
src�xU"z�	'd�eilps�tyfai�o�e^n.e|�iEWr�nughb�e�5fg<l�nre^(dZoh'gsht�'-2�f-7lspro�%vand�'��fsWhtaeiouclste$il�'dZ*e�is%�ohyh'*e>�imac��hade:jnswdt�'�'b}�e��ir7lssy�'0Aesbo�'-��fpscdOHf�Ihlpqwomzl�rimen��sa	e�i�h�i�l��oroanua1r�ahe|�een7c�nc�ooI�rhh'*e	ikocfl��ve-ma�Trt�']ihlsylab�emntuwt�'<eisy�e<l�hnh't
bsbio�ucl��s�stytop��ey�s<-t!e�gtl�0e	igh-o�epwtra	�f�uay'nss
h'�!-��a�Zb�FdFe	insmswh'1�ms�hth'�2e	isay'skssks
cdglmnr�stye�d�'1�ds�'Ma-gsqSei��ste.ibp�'�e	i��nps�Stri�4ncr�'J'e>aisd�ker
�'-bc}�efh&i,losybo	�xio}urd
'�ss
�l'�xl�aomula�i'�ys�OheaHdu1�shtoSHw/oCzrI[bm�rs�agoLdM{tmi�oa��c�wrlmrsu3n-eiLo�u.dn?�eiosto>riit�BxrophiicUnc�n�(e�'abcdefgjklmn��oprstz:'n�ra�jn?�m�eiourS�t�'&;ia�'e�l'�s"�oM{rC'-ko�s��t�'-eY!ilsttY�aouck�'%e	Ei�sckF'|�e�iHsdrt�'-stap�'-�e	imsyb!�do�of-l�.eE=a-b�
oleinshWl�na�Uockt=nonder��o�aɻbdeiLyl�eiyeGr_swinHik�'dlmsw�\a>iaw�rat[by`�e<lnI�e�g�'-bd)�mn�uprst�fb	iTareakFessan0:m�'�edLns�4zf�'s�aZ*e�isehrIrt	-e��fl�n32r	)sw�afҤk~Eli�s\�tnr�s}�e	isy-Ҥkt�a
ke&=i�#u!ei'�staVnp
b�dveY!ilSUsth'aei$msTbrg$�r{cnC'�eh	is�'abei8mop�su�qeVnre�orur�'�e	ilsa�6i�kndh'sb�ek~$t�'-bdklop�rstwtx�zachl�eoswnd-m	oons�%uo��na"HpcehKPpa��lrv#e^�i�la=aorkn.�ae[2e"'eiy�enes�s!�u.a%;iceh��l��pt��arl�vare
'�d�samp%esa�Ybo'~rd>�n�e�i<l=�nc}nrt\�ura?� >'�e9�ohG�yanih's�tro'ai�'-acd�efgiknpstwyg��op&�tl�na�a��l�'(�rD
tM�aer�'`�bo�i�'��e
h�ilss
eiy�e�!n�e�nelr�'b5e	ist��e2�i
e	iy�eiy�e�l:�ntMyul�oate
h''�de��ml�'	�e	�ils�$t<�e	�iy�'ak
eiosy��ln\�agnab� ur��e��pa��r�'-pstx�oтt-e	i'Ul��ecdr�txan�o�'�Das_�e�igWityo��e[nPp-ae	iona-njo�dmn�uis]ju�aWeh'B�de"%ls+�io.�mlo'ean�sah?�s}a Ir�'-a7�bchilmtorstufor-Y�thn�'i�stact
Duo'Lahhesye	i�'d��rsa�eclНrNvG�nlat�ei�n�o*Kvei�'-d�phsd�4p��en"s;�i;oa�e��eAdilsye�Ii�'-Udstaltsa@�zVr�o:'a�ci
�slHonSUg:'�sp�t-abcdefghijklmnop?�qrstuwxyd5`ods�')isyt��o�'in
Dst�'eimsyB�eng-P�f��aistpnraeioryc	gco�'6�nsrmo>�rSKa�n}tggan�'eisY#n�s"pu�'-mac�AkoqjsunHtatZapheBnrue�vmVQw:'7�ad�'�i'Ul�y
�'$�cd��fP�h	i��n��rsf?u�ess�'9�aeg�o	)sthe :r�e	i?ler8ol't�'-e	is�swd�rt�'�e	i�rsrto�mae�iouy��n}yh'sdnss�'iss+�z�a_�e	i-mmhrai�rga �wo�'it��e	adekls��tuy�gh'��dran�b_nRtieno'��e	h'-b�e>�g	is��wb �gh��rri�do�un	ot8o:rez<a�'<�-ab�tc�efk_lmopsFt��hs�taKfw:'elAl�'6CaZ*e�i�rlo}�s��lIyool1^ei�n
�itygN|rrap�hk�ni}k�'a��begin�2ost2�y`El�'-��adU9l�rs>Ddh'aZ*e�isu�'�nr"�ieu�i�'-d+�lsitn-c�$h:iwi1s�'tac�e��gn�'ist�4iy�'�ae�''�rsio��ul�'lseo8i=cr�ki-dklrtwwh6�ix�y	�'b�e	ikms��ta`�odriňta,�kap*dwee��nh'c�eh	i ls�'HAabc�ewFihlpsy��rSaaTi
s�oiy�eo}o�'-a?�cdefgis�klmnopss dhuln9uea�v8o�zressVfiBe �krl;ialla7-nacy�r�'��ases�sa�ei�o'�n�snCvno��tglnp�
rogi�y�ce�symei'�yh{>ie>�i l��a%�i��o��py:'-tu¿r�'abcefimnopqrstuv��wty�hKGah�'��-b�e	ileaSHrig5�ha#&d�JaF'�eenth'�e�iFosaz�e�din�d	teiXodo�'�e	i	�sdS"i<luKGae!i�'�d��msaei��nn�s}s��tcd��nre9�i<l=�n�i�o�'eiosu�'lslin?�i��l��oilnse�'�'siSs'Usg9�orle	i�os'�ea%�lchstOya�'( ni �bh'�T-�Fe	i]�uad�a�o�'ae	itostl8r�'	�ei_�ls	�nstza#eto`�rNDa�i�ya#etor'�ss'sdms�'isc�0seid@8nrh'}�e&is��ncgC�kl;�pr`+st�ah
h'-Ra�udeilpswy�aj��stnd�R-uG8d�oyp3{id�rs�e<ln�e7pg.eiX�na
�o'�d��pc�tre�e��o-fe�ehh'x�-ei<l�nsd�+nr�s�en�o�'�eimnstns-mt�'
�isya0Nlga�ei�qi�h'e	i�osdT�r
h'-H�abeh	ilnprsb?rchlprTaa$�ei5Zna�to5Zp�a[!odlͶr�'e�ils�dgZt<�eingl'nse�Sa�ef8i�'eϰh�ils�e}s��a�0e	�\cef&�h�mpv�weG�oillat��h��ol�0ea�eioe�Lmcg�n
�a�ioslogi�y&�c�se�nipd�'Ushlejiasm'�a�o	�'b�e	im�>nos�Doake�r �d �tтhm	aei~�nouwybcdfgijmnprsuvwyecula�e
ݷe�rtehiktty�'ad�$lxvrstyeoa=o�'elMdm�'te>�n
�'=-be	ile�psy$w3�a%eesUUsu�i�'aiFosb!t�i�l�ov
eiu�'-d�mn�rs
�i��oame�'Usc�mp�wan`�teoX�p�!ntion�'k�as�cafl�Tgicoc�'-k,lsca��le�Qiei[udi�y�a޲ecJ/aom5�e
�iln2�pt'be	iswlaYza�y	'-Rae�i�il�msEjbspotH�tde�r�'shiR�ppg�o�'osr�''os;ae�c�'clmps��w�ai�ne�isd��lh'e	ilosdc�r,te	ih'd!rslinB�ei�ns	:'ck�gmnqsz�eO`h04ei�yesuil�eil-tq�ziy$ms+�t$mz
abcdefghilmnop��rsuv)wycltt�e�\iFos�plapn��oaeloruuca�s�=inde	isdnrct]]a�luLd��dmn�pdtuctOQaiEnibp|�e	it�'iK�osoz�n
�lߝruc+�c�pxuƤaeiour�'ae#orsw>Jb�l�en�a�e	ignxu0�r�"i�e�8irmh'ae	isTbtiovn�'
.as�sernd�e</ier
�e�issess�eIi@Boiupsm��pHse�nto�om4�ae~ofstnc8gte�i��yto_�r�'�ei	osnovn�'�a�e	ise�ih'<l�nssaiout>Ha�eiFon��o*Kvtek�rca0"tc
�n+�eaeiou'�n.r�m'�ngstra
�n ytsiTb�oRXvstae	iTb-lng">rJrt%Mae	idT�rsationalh''lEsc�m!�ne��aa;hilouc�rirfTKl0�ranth'a�e	isJ�b
�t9�l�tnrs�^wt'm�ae	isd'�ec�r�a�eoite��rehxual�'isDsZtipmc�p�sen��tbrstantiat	�e�i0�at�aerssa8gel'�lti�st�e�Hilvania�'�n�'depso@Boz�ei7�oa'�i$YuRaei(�ns�1thoo�Wtal�gh�'0}c�eu�iyma�'stai
�cs�|z�a
�e	i'�m<�ae&=iolrsh'D�e�ilJ�osD�eingl'F)ss�Bt�a
e	i)tleTl�~o�'ns?i,�oabefklmnpstv�w��ycdsth��ler�i9�o�yh'	i?lD
msoun�'Ra�osrei��y�'-d�rstr�
o�en�'Ra�ei�ms�y�en�sl
eing��k�'sd	ilsb�tRoei+k
n��o�'kseioNenlis�'-�e	ip"wwoq�rabeouta�y%�olOeiy�e(nn�fd�l�rl�ocdth�'ae	idsrs�'�e��is	)yettf�e	i�'T�h�o��ai�dcp�s8:totu�has�}sik��oe��iMo�labcdefgh��klmnoprstuv	bc��d}g<�ln�stHxlC1ue*tg�lula�u9rRth��ol�e${oaeuli�l
Ds�'�Fs*lnt
a�e1^ae�'Hdseh �ik�Tlouyh'n�+prtenni��aat��oilo[�r�an%�aF�ooroemth��a�?yethK�lmt�eo�nom�iyo'�y�'eiN�l��sydr['�i'�s�y�e<l�tnTsl'�to�rur�'<e�ss*hpcl�ei�c�n
�se��i�_ndn�rs�gn�tef|�i��loc�cV�i�$ch'��eglorse	idr�'-�e.�f	isr4hyceriQ�dnometrʱi�ya�mЅpe��da�bilot^qen
�e�g�'�eisno�unh'w�fsWht��b�gh'��aHzbe<lm=�nos#�u*�r(�stKehR�ropr�i�e~�i7zdnt
�ha�ei*7ko�'Zrdtad�'C�ii�ir��yotol�{uahdz�m�'
Bd��ls&�x�'a�ehilopstwr�'tthon��gt�a��aei!�oyh'ds�txh'��ecnat)ei�n�o4�dHYls�'eY'ei:'d�rgae(n+SyiO`r�eehotyct�e�i� osY'a�'�w)qd�matnjtllab�i��le.iou<l=�nsr�sn
�p''�s�ermnpvh�'a�e	isl_�niZls�m}hti�!ra�ei]Jla%�uh'l
|i<lbcdgiMYjlmnoptu�vwyrgiha�e�yinterLa�ik�dlod�k��ll�'e	iosdy�'5bsp�'tesMobmpeX.leɕi)s)ddssheC=ip�'e	i&�s�ehiop�io�y�.bc�s�'a	)s9lnspher[be�ii'�yi@eZlX�nh'
�hs�6tky�'isX`t�m�tb�gnpstald*�oe	i�'-dgtmssho�ohooostteY!issd{r>mc��e	ieɕi�')d�rsesrh'<e	)se`�a�'�mssbe�iss`Yrsdl�'	�e	�iZ�ls�':essacdefBgij<lmnrstn�c�t�eku�'eY!ilsdte�r
e	iE�o�RleN�g�ity�'~$ah'-d�Hl�nrB�sbt�l�uof�ha�ln�s&hiablp!n�duav\n�'e	is��d�rt�'-e	is��ccdkPa�)hle	ih'd�2rs�'e.�f!isUd�yr.ojst	�'Lae1�fisw�yd�e'�r�5en�e9gorthiy�e�nh�'2�fis��nC'��-�i��op�s�ds	a��beiospu�#wrF'eisviTctc	�hnsa'HstsstI�smots�hlko�Pv1sngkhB�aknem��oa�amMl&�shy:'-abcdefgiM�klmnpqrstvwxwhi�
omrta��o�grПa0ea@
p8r
�'a<vbe{�f[7ims�^u�'sls�'d=�lrs�'cos�lulaFe�io�i�s�urs�uk�su'e	isdr�'\eɕisq�os:'Ldt�'}�e	isyh'?�b1�gs�'�ta�ils�nr�a�e:'a-e�ymabmrtai+�dbei�mosualr�yr}ueY!ih'-drswdriyedrs�o�'�yfs��e
e�iscen&ctdri�lrB?u�'�o�s�'l�ttu�'sUuh'a��b�`cdegins�'hbs]Ci�r	�'�@ad1�fl�rs]�ue3s3m*�asut,a�es:'kcr,ns�'as'�ec!t�'�yie�i�yl}y�'D�e��i��lse}i2�lpu5�lenr73cWnwS�ang�a0uabd�{ew�fgikmnopqrt'vnga�iqn��aio'Ludn?�ia�ete	�d	h'bcC�f*7j${pss�t�Zohargei
d�rss�'suc$5kre�in�'tg�'eim�s@Ss�yYc��sen%PieonrisAt)ii[blh'-ab?�c�CeikoQ\prstbs d�oY�uuc*
kbh	rl?oucl��k>�n�pe�yf�uv�f-ot8:io�n�6a�a
seissn��ttni{tu� o�eA�ile�'-dnsʊdnecկk�,oec@kc��hksa;olnroA�o:'tyo� r�'e	isd�@gIr�NaN�locMk
�'-aeost)�ut\�uknkham�eCularg��rr�'�eis
anhi?p�i�ei�lh'nsaluo'7�aharehth'ed)so��'�e)sM�'�3�anM�s��zaeio�pcx��'dg�in)sBtdle�i�'sd�rss��gaelnr@�kdn�rseTtzI.'d�il	)sVfya�4ledC3eC=u�e �ie	idr'�s['	)s��fveh'w�fmsson!�ttOJiyh'-w�fOaeOmfO�nO�oO�stO�hweOzon5k�p
cdglnrst�xz�ne�Zh��kdlOe��i�y�'F�gs}ail�5gth'�e	is
�'-�0ef?g	ik1�nst��uloX�wilsse}s
e"0i�yi�elh'e��is�yth'e��i
�osy�'csthh'�e�iye�Didr�'=be	is�yzxez��l�'-fps�,d�Ue��f�Ihstw�kit9eS�rh�)i�oi�r�aheyYeSJe��oen�cn'yoRr�o:'Txbcd�ve	i�klmnpr�shofi�#le�o:ntrpani�uh'�cEsCadeal}etlY'cm^�sasdStoT%uehio�'cd}�fswast	i)sOGcetsYtrioteY!ik�t�r)s��to�u:�i�ocfY#n�sa�gli	py��c�e�'glsrapL7hogi�yu,c�esaeonn�tio�yK7c�e+�s zs�uaur�'sQ~u�'	�dtes�'l�nsY'ean
'�sziairt�'�_i�sziG�kg��ate-b����c-t?��rsha4v:'abcdefghijklmnprstuvxzrcwMtai�sun Igquit�i,$o	)yntu
�p'a�$clo��s��y
'��ah�l�dad
�fm
�pf�uf&�r
�a
�i}ao�W'lM�sogiB�yJc6Rsahln�ydiy�e�fZl=�n-loЕo�fgAhungpan��dM�'�a��iruaǢil8:e4acl��m|]nrstuvyer�'
'a�osaj�mfdi�ck�a�eterx'seirriomBnsaot�1e�uaޞih'-|�bcg�dfhlmprsvh�h��teo��rntrifugae'�l�t''�d�lmnp��eservati�s
dvaistšil�cti��gd�i��aiocroscuodn��etaneo�!r�a>Yaotun)�uK�i�
oructu-�r��eiol5�e�l}�reD�ras6�n"�sbilpaeiorInnlr�'lsife9r�'srtlic�ai�un'�sa[e'�ltaĽeW�i�'eg�se�'Bjos��asa�uh'Z*eisst�n?reen	t�W'-abcdefghijklmnopqrstuvwyzeng4lbcdefgilmnprstuvwab+lorsstHUh#�e�ire�vm�bidg�eor:bachkqd��eeoru�Jnpta�eb�i�lmumpod�!aal�}ni�+sntn�a�eed�Jistom#�eiev�a<enowlecduai�Jnadjouv)�pres��s�[a<uu�p-rlter�Jaeinrt�ruti/ssedl�ysthe<-tf1reiocte�il�(iE�rgre7�s/d�railtr�me-g+kv�n�io�+c]w/yerX�a�ebeiop�Zuigtvu�i'oi��oalen�t��nLa�
cr�tli�'fainstl�Zy�moun/cwerRa�eici�(poplog�e]Haeratl��s
�iiV�sz&ieociat�eiveE�l�#nap/v�Mcri��agmt	�y!�u�e�io}/rurZ�eic��uh/kpsaHUmiAuraeiui�lmR4r�b-g�Jsaa�tmtaer�+cinla<en�Js/d�=uaicti3�vbutfa�e�dgt~�mheontic�Ja�iri:s/za�Aeoila�i:�bi!�dakr�ee=�nssaeiloru/k.�lnps8r:Tn�sti^|zacfhklonrtuab�lla�etif�uom�iittin�TgolV�dnown�si:te�fvB�aFe&i�8ad��nk�deioua��m�Zs�+c�rnk{c6os�th�iVXl�rsu/wom�e!isndi�eaeionc/d�ha�k�	to	cdg/l�ekU[ecdfnrt`+kW)gf�ed�olk�d:i:n]ft	aehilortu�^clnpr/stuled-Y�fnoiy�e<lnn��ii1�pssta�l<e	iacelog/u�#hgo�r=g��salnr�tseb�+rso/retmoS�naiin<l�n�t8faeir'ilnpr��slenge	i�adge&ilade�ra/gi�m/tcteris<e*�t,is!�tck�e�i'�svalrou�sistv�eˊi-+arvcuAulm�6cilٝi<laeioudis/mpsifi�a�e�'ansnrN0el=�nisy�e=�neZl,n�dsr�sעm��pk{am'g:stcuuh"We	itt��e	�am2ilmnorur�vlo�aei�Jc�=m�n}/ruۓrb
�efmp�ei��nortB�a<eeiounrt['<esciali'�ssz�xaHe�i�xaHe�i�JtB�nnicat�eS�iaelornio�#nnt�(sitiveZlX�na�Jeii�tncmate�de�nun��deohse�Tn�\sm��i
cdfgjnqstver�airv*Ganh'eition�a�eio�Zu/nۂrrma�ibVle|�nu�suga'�l�t��e��uceiotuio!�nu�scr��aۿdli�(dirtutionaly�i<l��a5um�e�(maer�3imi�(nnstׂita�ebPlolvl�a�eersosieinrtion��at�e*Ginm c/klprerR4a�dkreouc�(ltfa�eb�&o�pn`+prttj#a�eaBfg�hae;�io��uc�ka�du�stUNa<e\iXksw^|d/nf�i��ulrstti��uvaNb/t�el��tto�\maeioruZym
r/tucanHUt
�abcdflmnprstvatLa�eeil��ol�idpӝaedh'Zl�sherRa�e��a�)ieiacuntLae�d:l��n1Reiveۍr�\aocn�rstrEa!�ien�d-abcdefghilmnprstuvw�airsnves4�te�ahpea�ZrorhVresent	a<eehcret�-aerif	�fc
gp|�rhtieve	id]Jm�rsZ*eiss�nvpre1@ce��ior��l�d[s�e�(iushhahlourr\vi�raaossh'ek�mth0e[7ia<
o�Xuvt�'\e"0is�r�^teorvelop�e'm�g+nZ3edmsx�)uphlasisHeo�yti.�mplXUo�oelorudeԆdoow�o�an_rd�e	Eiaorgr�e	i+naod'sYBu)�u��wandE�en|�vvest�e�i4�m'�saeiZyi
fydna=t<�en�]p
e�g	ia%eio-nne	id�rsw5seoata�hurish�eme��naeilori�n�r�syd\�n	i�msrform9a<e�i'�snns�e>�iam,nyp\gwulat�ei�eio"cvilced3�u
�aeprese��n	cehijfkoptu!So:�ac��ln=r=t/xretar[�i0�yeioӦrr��i|=rlo�>rt�dgzn:�eɕi)sed�lw�e�i'�n'�secnifi��c<e5dtam5eorufn(tf�e�idais"qb<
c�oe��un�+g)drhfahokΚe>�iin]g�n9�o�wst�e	Eiiliszae	iy0b	td�rsae	iy0b
�td�rsalu	!a�e	iaehiort�yiPa�ai�nelm�e	i�s}nry�e�ort�kmli�"otY�e	ik�tceiجerve	ira�eb/�i��leocrt��a�e��m/r�=ne��ilo/pad0efglm�nprsvx�gferen�_te�`n�Js�Jui/m��nlomatic��a��ecgmprste�ehilorar^|gp��l�8oۿvimi��n�6ua/yut�e�duoclAui/viorunguisۍhai3�c�`br/becuirطs	Lac�ey�g"0im+nuum�eesti�(cݿbaei�inmۂa�9sn�keltay�nk�t">i
acdlmnqrstuvxrst/nth�e	iU�ls�eiy�e<l=�nRa�eono9�miuf�]t:iZycaUPb/tec��tbopaerra�8sl��lti=�o�hloy@Bas�emN�e	cdef�{gjltv�lru�dymۿbio��un�g�wrgeiu�su�zorcefiRa�do�#yighten�e	i�mehrpriZsus�iiRa<euail	�eils:z<e	Ei<�ey�>pv;�oF�g�trcso_'�ren|�t;�hlog�iaeln�+ugeln<l=�ntfu3lacepti�cgmg�Dev�ir�peiuptiona�b9lty.a�e	i^|srڴcWiae��il�8oruc�kntE�eaoiۍn:d�Ji/r�ber�(gen�d*�uaeiloru	�dilm|�nstv^|z�tlB�rth2�fte�riliar�i�lhk�tio!�nheo
�r��moru0far0va<ei5Zt	adei�lmՍnrr�tstib!Bil�e'�y\gh/�u�tl-gi9pn~�mtili�s��zln:rtxi/lۿtV�a��d��i=�n)st�e&i�a��e	ia�eigps�tv�tgpa�Pbh�Yi'�yo}/r��un�;cclruus�e:sdloZ�w/ceg�kmtseeܫaneik�o�a�=tvB�a	ein�ga�eu�(lh�biuc�%ona�tk�gcunۂaeioueq8+d�z��uend
�eiR�l�sk{cV�zitfui�llnrsfillLa�e�i/d<nl��nsNiyaeiloruilvnlsۡiy�a�l��aneitؠra�llema"�nft}�ea/um:zor
DodvliyCIe=�ner��na��ouc/dmste�fi3pfmatic�pa�
p�eif:i"ydZga�ecuilr��d-Daaeiouylmnprtlo/wۿpd'�g�e��i�lsyomRep�e]iydmk�nv-e�ef�Iio��uni��ou�s�^ec��ha�}delrslr/t�eth�fiy�e<lnes0�sd�iA-d�ecfin
0gp4�fa�ZeR|oculita�ttdnsVt�wd�e~�iۿd gto��rl;mk{oriydenesK{ss'�e�im�nrڲartHUigpi��ehY�ea�Sbcdflmnopqrstvxx�iae�io�
uy�m7s�fl�xl�d�rcl	@ei	Gn�seiBantif��imlorensv3iectionalxi'l�aio	py�a�c|erm�'�ei<ls�nta�i�yria�na8�eilterali<ls
om(�tngual�iZlumsY�i��taopgina<e�b�utJd�;laelor��i��sa/dc�ehement_�a�erstanct�"en�ie�oss�eS�i	cdfhijstvor�bp<0eustria�l��elou��erma�eti�vaibi��tbite	Eitial/tiu�s*Xz��uptui1�rarlnl'�s
a�ei�s){by�tt�=i��u�+lۍre6julnrleic�tg$een�i/d�jteprst#�einlZgr��eupteLi1�deiY�o3�s1�tn�'�=di�ss ~z
�a
�e	i-m�Rtorl�t'�aoces8�su�ueon0Ly�eKieosSKyHrxh'�unh's�u�'aeis�yr}siy/ah�cV2d�ms�env�zaelre�vn[jt�irsa�e�ilh'i<lss�t z
�e	imNt�':ea��ouc�dmk�e:Tmds�gti<l�nfiB�a�eeinm�pndkel=�nsr�sGUiy%eow��ai
fnng<lX�nssaeioub cd�i�|m�pҮsVtu�w>�yel	�eۓl�eyr7l��na�st�BdrVs�vn�e	is[''�ste�ir['�e'�s	�8bcgkmn�Jstve�8n�Jh+�aeal=�nb�xliy�ehYnooN@dr�bi��t�eZVkera~�r+�ae*Ga	�d
ak{cgovksedڦ-e	idnsRae	id�lcZkaeiou	+dgi�kn��prk{stn�intain�a%ealnssgeladiy�e�neɕidreIDl�dkred�t\e/ichae�ible'�yd'�s	acdlmnrstns	it�uhaniahcu�su�zi��aAuco�tdi'�cBjoorܫationa�eblL�eci�&it�eo�Krq�h�a��ehrodi
,clnst/xi�tdfu�lst_�a�eakB�aea'�nb��lig�ad�lnrtuveۉi��uru�a�nit\ioal
i��thioer�eZl�(v�rn�rtfa�e	i�sRa�e	ifnrstzf��lch['��e�imurin�gical�i�lX�nAsi4\zaeo�u�UimtvLaeRadurali<l=�n|�s|�zig.�accueiress 2aghbourl�/iy�vtuiceܫad��r	��abcf��iprv�wxjlst�vecti�|ov�zicet��urva�e�i�bn6truct�e5iar�|i.�ucu�}pfe9Hin"$d5+s-ei�ptnioAuni�mdginta\iei�nani��zginal�iZlنahodox�lyi�daehiloru	c�kd:gilrst/vkaa=be	isd�Jnr�e�i'�sa�tad��el:stllr�eon��a<eiame��ni�s��z�#steu�br�^c��erti�o^�oe�rr�e��gorple�i
d'�scfstei5)pvUNa�eo�uuۂr�ouadSsLa�eur��biylosopIhhsiJcoloIhgcنgnkt�e	i�sur��e1�nsaeou/c-n��yasa{e�in=�tuҮgm'gmbLa�ee��ilps��wIhti�`l�+sti�?cular:t�i�essaeiocticۓsa	�el
�icdjmpstvedenteV2dicta<e/�bud��iedi�4taored�nsse��sces�uri�b�!n��r�e�cuen"d�dte�n:cno�vctir�pܫa<eriti�s�z
bcdfmn��pt�uvlemat�i�be�uuEce�=is�jsi�Jp�sounceRader�Jcs�t7�u.�ae�ci)?osdnbnlicsi:s:zh�a�e�ic��itual�iuaeiolnified~�ltif��insc��htionB�a�e�iet
�eZlX�nty.a"We�iaeiountn?v:kso|�m�eعiacd!�efghilm3�npqstvwcdlshtabl�e'�yiv�xa'�e��aIGi�yis�t/z�a<em*�tosna<e&i�?burin�geoi6lpu�vgnr�vnisz�,a<e�Ri+�aZ*ecsilfa<et�r�]deՍue��me-i�or3�uren��cige�=rei�tune� r۽sea�8rnfo`5r�Jaei�8a��n��ae��va�eiurkRa�ette�i�dn��eaeor�ian��tt$ear�teosentR4a�ed��uu��e�Jieioptarrcu�hv�`esti4a	ilۍvo.�nh'�ior��raii��n�co�Cuu�^cei��oa�rl�e	i�e�sar1�dfgpv��lhteous�l=�ne^|nsr�s�am2lma�nflr�f%eR�iyacehikulmnoptuwyE�df�ilntv¤ye<lsr�sa�e/t){b�'rc�iti�'f-oi�&usfa/iyctoriy<l,nn�i�eo.ru*�ra�ehirl�+tLaeLadeodr�ur�oenti*�faeium�2tbGlv�ewpt�e3nuptu��li�nacdeglnprt�wxlrstwc��hona�e�	b>�lorthG�iy{tu�XrX�u*Xd�im	)n��l��mr�zeef�lct<e�i'�scionscZtiZ�sstaiti�Uoti��si�Um�Da*�ivice.�a�dtle&ii�dK
msZ;ei'�yi@esaeior�xc:dkprk�vB�ae�,ane�d"�l<epv�eX�nal۶t:l\gteo�p�klcd�ry,ki5unky.a��i��fgm�n�zh/nt<eliy�e^nplifu�iil5fl�ef�u��ai�laȢp!�rcr�ilp�Jruiabl
ipldi��v�e��ch��i=gnX�rB�daeorY�n�rac�l�nkB�a	iit�0afic�e�vaik�kr�tl�ett	isma��na	u�yaeioruy	b<
cf-i��mn�p)�r*XtleyX�n'�r7s�fda�ra��mrdiye<l=�n	�d�rds�Riڿi��cgm��n\irma�tula�xtppssla�e	iaeiuv�iȢpa�8s|�ku�mn�agcn�gt9�cdf�if�ey`�lbcilnprs�djmsntuAuge�}rcitriRb�dantial/tces��st�,a�e�}lepr�6vo�_rrtRa�e5ie��fpv�baris<e�i�hecptey�pec�knte�iokd�7aaeo��yer�t�vlV�lmnsmpe��tath67eis�Iichro�ntle	aehioruwycg�iV�klmn�>p�er��s;u��x�Wt�xg�eZk�e`+g/n�alnstx܈la/dTbnt\e�ythe�Ort�uiornk�ain3g�<rught"@feioaZ�dteR�nfti'�yZlX�nc!n��cd�elm�p�trr�ti�ye<l=�n	�dr��s{e�@e�lنruwcrha�eb!Bi�l��iar�daeiouc�sd�pimnpv�be:k�msflpe��o�#rat"�a�eoru�s�t�pelkrZ*e:lanۍtZd�eۂmdu�wdr�beK�lstsr�st%e�iw'�yortIDhh�'2�fsB�cv�r��tiVXs	ipu�r%eical
K�lkstal��hRa�e&�uitl��ie��raeiouclnrc�Vii:uAudq��u/i��ny�im2inrt�e��i�Tis�e�iy.aAso�s�tڽc��il�caehior*Xg��i��l�Jnr�+st�v�0i�nryantla�ec��ehLa<ecfadil7p�nra^|i'�ybl[je�dgh<e��tc�lomen�iZlX�n�rio�plesom�Teelnrs��tl��dl{ein=�gr�d�k]ned8+de<l�nsr�smnruk�v&ated�l�kln�}rtdU�lh�0iynd<e�[aink�tr�kioel�d k�[i'-abcdm8efgh�ijklm�oprst=�vwteom$p-�dthe-min?�unisha�d�terai
in��gahou��ysHe�tuck\eɕi)s5aZmunt�9rr��va;�irtLae	ih'd�rsa"fug�hrIoradfa1�e	ieioa�l�|v��ll��dstere˪is�yo;he�e)�ai�)of=Pnth'�e��isarӬkeidrh'-cIlmsc�-a>l@�aluass��m'�wth's�tn	s<taeio�itsje	Ei!�ag��svhth'�"e�Ii<l=�nsaVXosr�'�2is_'=�acehituwal�Oe�i�^tPodl�ze�'-ss dar g��in�9rtdini�g�|e�eF�org)e�i-e>�iF�aehiorum�prust
h'�ei�s��c=gmtn	'w��e�ra=�e�ir��d�'abc~$degil�noqstucőeln`�i:'
l�s�ai&=u}a2Kn
Duaߓen:'�a�ei.8ost
�z
�a
�e	im�t�e�i�yF'a^�mt}y�'pla_qsehr�'La�isarai�'elsti'�cse��ih'dnsY'ac*�en}sQhh�ra-el<rRt�'s&Uy�sc�,dglshordat�a�eernibeta�mphNyog��i�yY�c�Ftuha�a�a�iulta=iicar�Bigm�nuaS�y Iq
�W'a��bcde��ghimcncopstu_'bcf�gr�ij'l
'cgVUa	J'ad2�f"%lnrsbl'�eHy�me�'-nsdfghef�3iriendliyi@e1�ne�8n��oa2�mer�'e	isd
tcan�ccs�r�9iarlh'<l�nFeirWp�ye��o_'a;cefi��mort}�h�n�'nr<s��si'�o�u+n-13�8�6�2/�cleistz��a��e	ia�i�yrianh'#i�saߛe	iӟb
�tpia�'n�s:'6�i;se��ic$Ohelr1�a��em�i<l��msesfoh�rcp's�_'
�aegeula�'
frsoricloi-�do�ubYiek�'�ni
:'-asbcdefghicjlmoprstuZymna�ize:'cdgiklmnpqrstuxz
'acissu�y�nt�einon�'��eis�n"sin�a�ellat�ei#o(n�oa�io�$ul �u�a�eMeq�uairubrond�')�a�e	is�9i�ynaio�'se9lssymp�sF�lan�c�tJe'�s�ln�eg<l�nlori�ye,$or
o�'ac��dehiklopuv#�n1drre�4m�'dnrstictiori�y��a�ectz�ei�yYa�ei:'n:')�etot�ui}yate�'��n�'�e	isudinarian�'ˀis�?aad�sun=nc9ta�i<lYnt�e�iTao��m'yri�1e,aeY'cj�zt�y�:u�o�ir1u�'o3uarrai	s�oae	ibt�?lei#o)d)sɗn�5o�'-dhl�rs�?afor-��ms#e�i	�oulaFeopos�(eɕi�'�eisnr�e�i�'acdegi�[nqors\vtuz:zd$1u,ai2Kn
Duteo�/muKvae;�y'l�'i�ss z
�e	i-mR|trb>�i�'��s:'[�u��ls�th�ein�Tgu�vip�a�eiod�n�i<lYnru�'�i�o�s�w�yr�'��i�swnyuer��o.ai�e=Ugilmns68ycnt_{oA�aaceos'�xbntnilo�eyY'�c
fte�eieol'�sla
'�3l+s�dNgst��a�i�yl'u5�ayot�oe"�ti|=nish�'(�e	i�iceio=
qstulair{�tti�d'�s�'=clsX.yine�''�d<sl�ct$�i�ycmponstrict�SiKoo�%tre.�saa%ltrh'�e<l_�nss'is1�t$cbdgl	�nevill-eC�ih�a}n�'��eq��ur_'�s_'�t�u�aR�bcdeghilnrstxtor�'�eisBan�gs�gzaW�i�'�zn�s��j�p	�rh'aeg�'��n�sbPpmsstur�ga8:b'�lrtآi�einO*ov�e_�eie�n�'�bse\fimen��c9t�l�nacde�i�4l �mo
Duv�:'
frs��zque�0z��r�'�s�|t��ttzcdFui�p�tr��oe�zet�'esy�d�esqu8fe
adegiktnotubs4l�t�7le�#iFosd}Wt��erstza&�e�bRt�UeMYiue�ylea4�fa�cr\�sl+�i�l��eo/�v�'gmu�',$os	�'��a=beiNTorsuf��lna
�aio�Vcloqui	)y�esHe-m�tme�,dr�ae�Jioh'd�rs�Sousl�n)y�e�ls:'�e��iabd��gilmnorstrvy�'cntiIr'o�tda�'?hsr0ihu�'a_6e\viorslth'�i<lss�isk�t�e�iuv�gateiun�aE�c9t�'�cgris�'_�e�i}n�r��d�ef<ls�Pt��zi	py>Haxc|ei4gmil�FiKeiocf�l��ne �ioulq�lmpo�
sla0�i{�t'�r��to�@u�rn��ut�'b�e�'aei�o�'x�c�l�'�nntai�ei�cq�uuca�'e�saei�o�uitl��l�i�'ds�tcQ5f�no�lol�on�'La�e�Sis
ei'�sb�xra�'el�(tcg��a�e~�io�'�er�aipIlstucLa�lulartei	�ds	n�o�a@Beuc Ic	�'a�ei�m��rsuo'��lx5abgY#nZ�tuF�l�e�ir/a
�e	ivi�u�'ce�osth�'�e=�lr�ain��a�e	io��r��aU(e	iVUw�af�s_'_'abcdegijklmnoprstvxz�b�c?/d �g��lmnL�eruahnMmpta]�r�eion��o�'Mrsrnu'�m	�'aehiktur�'�a��is	 ��'-sdgnrsangl�ac�rlphancellor�~�'s�hi��president�~�'i��sa��l�e��n�te#o&�gy�'ssV*on��ossg�is>�iY'e��istyr�s[y�obio��rum�'l�h�i�lsr�'is�ya�e!n'o�'n�'i�ssm
�salh'	�e	�iilsc�n�r�aeY'tlloic�e
�'cd�eg	i~Dpstaoss�tett�enferenc�e	iis�"c�kra�mphKeei'�y�a~ed�
instwntta^�e��iD�cmniInj�a
�'�ae��fɠg>�i�lpsdr�'shiK{po�i
�r~�ceinosibeml�'asnrct�ei<ls-m_tett8�e��ir1u�',$oiaya��n��wij�rng'xsxsRae�ilmny<l�nr�saei;o�u�'ginrse�'�rs�yn�'=_a�ios�y?eou�ve��vr0Leinn�'a�s��geuW�ve�r&;i Iu
	�'acdeo��styigereiuo'n&�n�t zY'ӟbl
�a�uaeilo0�omian�tc�ati3	v�'g'�ls[�yar�'{esy�'�u�an~�ll�'aeios�'Tbs�t�nt�'st�a�en�s�'c�isellBo^gncell�@i�o_'�eM�saeg��iotug'Slo�'��e'�s�o�si�o8:u}eln�'iu�'ais�{a�tlog�@i�yua�eoli<l�ss �ui-o'�c�tl�sen�c9t
-ac{+ehiotu�-��v�'Z*e�g�is)�ye#�io0ura9l;msu-e�in�st�'�c&�es~$n�bg�4l�nototh:'W�i�sn�''�aZ*e	ish'+�a�e	iFosf�ra�u�'saolh'i<ls$ms$qz^"ms��paei}ortu�'eljmi<l	)ss�t
�z
�a
�e	i'�mlrloge!�n��bPacl}multur�e�@iitg�eiof0noai	py �c�uc�el�'/jig*el�?o]ep}serat�e( iaei	�oh'clrsei9�o�t��diau�mkq2na�n�ad��efps�e<l�n��i	pyar�i-�oect�eisnon�'@\a�isen�'iss�eh'�.ia6�c$�e�fsdG�mFs:'i!�mvosa6tis�2z'cacdegilmnorSKstuwyaiobltg�l�uh'i<lscs�,z
�a	e	im�ti�o�vferPa9�ode�d�ra�kIQftsԁetoo�t'�ejqtu)�eiX�sc'jdl�pe	i�'-dcflmsa��bRo��cess<l�nai0�lsa-e��-'�.acd�egiklstu	vau-4�vtil�ei
�s�ty�zaI[kni�oc%�s�a�iem 
otaog]7rtion�'aslxi�l�eswag��eey�'fvb�he	ist�e�'ae	ems�'�gic�rq�-bmnpty�i�lei�'st+ir��nta�veri	)y�e<l��ns-m{Vttu'��1^a9�oO�e7Vie	�ironaJsdne�hgdoo�'Z*eis�n%�sabo6�stc�i�ine{z`�eic�aeio
�ulsla
''�ss�$t�mt�s1^ave�iyfaacsvh*e	isa fsoKir�0a�'e	isd�laege	i�'d)�rsFuur�'iss-mrtG�nr�o�
ae�7ioela}mnoZ�m
o�leilvwl�t��tcgn9ppt)�van�'iCa
�s;t
�zarAXt�ei<lHhas�tv�z
�a
�e	i�merabi�ll.�iur�ei��onTsuze�fl��s

:'a;cefhi�ekmnoprstucvwyabcdfghiklmnpqrstuvxyzcMf�s��a�Jbktoei�oJsy��r�s�eYn�'X.ade@gisZ*eY!iN�lHy|�'d�rs!%th'nsslwFeftle	i�'-d�rs�~ih'�e	is	�'eg<�i�nos��t�'-drsee�a�'e	isd�r�aeiN�lodAarnZ�sner
t/�''�sn�'-els�l_r
td�o-li[tK�gha6nbafhklmn�oprstuUvwnr��t�uakar�u:�i�']Ci|�lspva
�e�iojlUpa�eio�i��nret�we�im?�ok?�watimu�k��aVnhruopx�uavih'.eY!isajekM�r@tarBih'Vrosuwcoth'�eis�Itng�'�si'oTmrighth'ssau'�p�r'k�uaM�ejo�kr�uajpt�')�b?�c<e)�ls	h'aeioprsknr@e�igi'٭r�a@e�'dTm�rwaew�vakY#n�m�0te�gress�'�e�i9OtVnkhVleae��i�~os�'?�rt�y�Gi�'dfns9ui2�ue�Xlabcde�%fgh	iklHJmnprstvlwch��iri�d
hq{o:'eD�hoM{r}�amn&a�'�s�'heq rss�'sds:'}ae��r_!t��a
h'-aeim�os"�w	i	oth�<r-b��wdr�'s%veY#n-�stalk{�i@aCe
�'-abe�.fiop
msyet��yo-��w bcBh�ln�mrwal?�l�za�i�y!!eh�i��gf=odnr�tyO�s
U'a��w{+ehents�of�p	�wI�aY'e�uf�ourgisna��c�$athinj�g�'<�ehozj�a#en�'-on-tham2ze�'e	id�rs�i.pad
eg	ik<lnstjk'�m�'��aeB:o'sre(�ils�u�'a�il��n�re	ih'd�rs�'ei)s'�y)d}lr�'�s�e��nae
beh'Besrs(�o_sstbX�eh'�e	iosnh'Z*e�i<l=�nssi�at�a�'abdefhilmnoprstwy�t'UlounAn��r�'e	irsd�n�reoss'�e�b�o�'hs�zj�aouse	i�'d$msar�e�iE�eo}l�r�a�e<ln=�e}g�e;&iop�cmrۡi-b�ehi<l=�nos~tbs d�QhY�uloo�dloodZ*e'�seau�rn	sg,�snger�'[7iser�isY'dr�'o
k
n�'a�e	iF�ls��i�taeincrcgnwkna��bdt�y�'�a�ei+os��y��enabmgd(�g)�nahgnFogM{tam�|bda&�h�'b*hissyB�u�ermic��kah'�npst��bewt�'�c-��abcdeϪhi��l?orstyp�aoC�uY�a�wl�Ro�a
�y�drs�'swo�m�eng�'��-ston�']diologiv�sP�a�o)�tu�b'-�aisw=Da<�aerman}n)�ae	iIlrh'-bd2�f)�lp�rs
wb��pa��sa?sa�Wp
aceH|fh~k$@lstuna�bhh'ӝa��bd*e2�f	ims�0t��wog�'R�gsa�ek�nFe��it��rr�'-bcd�efghilmpstvwybcӋg��rs��t�EeO�ior*Kno�oo�le�Uiou�djra�'rrdZ*e%�iss�c8ror�cl�uo�rur�'i�sst[''�sa�ef0�t}ofxaohr�rwl�'Ke�issat��e
eo
dlu�s�en=�eg-h�o�eioAal
dngYo�g'�sae3�inKfrlnroo��f�'��h%�ik��p��i;iw�oa(zil�e#a�eho��e?�r��e_'�o�')�ae_il
ms&�anei�'2�bsdsnJg��scIgkpsLOheB�s �a�ua�ue��iy
h'7*bdf��glrsormA�ae;&in�t�gh'}�e�idLls�'��beiwydns�e�n>�i�o
�'bflmn�,py�swill
'�s��sarFe"0ia�iH�nySJe	isar��ke�'sbAOfB�o�OuaE�r�o�W'abde�fhi8klmn�prstxy*=zklnprstvx�-�'ef]Cilpnnish��'��eiyn.e�g�'�dssth�'iy�e	ilsin�gon�'e�i��l�rs'�de>�r	C'-aFeis68yt�eb!Bi�Hl`�e<lns=�eg�lsso�mel�'Z*e�ils<e	isyher
�'-b{@c�eH|f��gi�mps@v!b�swoa�(rY#ns ~ze�Ri	�d	�s�Rero7�otrippssZ*e[ieY!ih'drs�'��bs
�'-bcefilm,ps�f�'e[7id�ra�mst
h'Taei�s��reo�e#ok�nsq�oog
h'�g�saii�&sYlstre*�s
ihp\�ta�'dglnse>�id*�lr��b8�ei�,w��eno��cessLdZ�feL�bh'��bd�iknpsr��st��v	�'fegik��lsy�Fr �c�enil`�l�'n�-"�de'�l�Tn
msnd�'e�issdD�rZ*eisye�nh'�rs�tGUi�yh'J�eis	)yeZln
rB�sX�e:�gbixr�m
:'b�deg*�lmn
prsrPzurstrܳahh'�!-b�e	istrid)Mg�'�eilsy�e<ln=�e2g"'eift@Be[7i#a�ub#es��t�'ds�e0i<l=�n_os�'mWta<�ucdfp�klstw�homen�ih'dZlX�n�rs	h'ӝaD;be	i�Qm�osar-edih'-ae�Whiٺm=�nssyabcdef��hiklmh�noprst�Zuwdj<uae�uo:rjulaՍn�h	i�lhoo�wsn�xnei�_rfsvaAeiv�gel��osc�Xpipl�Ca�dn��qsdo:wta�fb<eo��rWiun��ften��t��es n��oaed�n<
rutan	its�fr\gdg�a)Ha��lreps\iaaAee��o<a�c�#pturuc�	tp�ph��iorought-of�u-$da:ii�uo�
s'n�0ddtrs:'dLlBeng?ubton�'i�s��a:'f?qpHvv��oh:'�e�iEmm�|pwomEwax�e�'e	is�cdr�'�e	isa�wi�ytscght�bh'.�cd-egs'teistyd�l:'nleyd�@ae-enrt'�nw��oi��b�s�h$ alste�y@�e�oI.'bce�DfhiBlmop��r<swH�oT�ru��rh��erl_�mniIay��e�'IjeiIlm�ss ~z
�a
�e	i�mamp�p�eng��h'�ei�RoMnn�'
ihhto��aI�a��oh'-Glab$�hl=�nstwnuϮrac��k�ayuit
'se	idPr�sa�rH|f,�l*=dmo@�uMfaeio��uycklmnrtkh'}�e��isap�ta8peY!i�'b)d�n�rso�arn�'ms�e^~iyC'# agamqnp�rTao�}marhaUef�t�v�'e�isda�vl':�ac��edLlE�nsdrs-hieir-v�n�s�thamacalɻlehi��or�=neirn:�a�s�sitaelnrtw�y��lt	�'egi'�lm�osKaneE�r�fr�eTsbeet�1o
dlzΗl
�'-bce�hiswcB+laN|r�sDRhdr�'s�e|�na�r
eiy�eWl�n�a��km�ph'c��esesoЯeoz[eeAar'a<bf�i��oAs�tuvwdrsbsto�ugo!4pith�ah}�s1�tcfglmnprstzh5'��ef�'�e	ilseW=t�'g�sMe�i
e	i�o�s�'��psi	)yc�eaU�lcveg��iny��he!i�di��r�s)iLy�'cm�lps��oae>�iloKGndr�th'-ssn��anapSHpe�'W=tor��w�5ah'lrsh'�eipswyv�gnoo)�l)�iޓb�e	ikpth'eisydr'y�'�esy�enl'sserh'e�1is�'le	ih'-d)�rsb�slowL�e�ih'abce]�fhil$mObnstwKk��r�yom�b�'-b�sc�dfhlmn��orstw�y�mch�eo�oae�&o!uii�l�brA�esh
'eaeo�lv�ead
�'�s^�r�Vuv�a�eyf�oe"0isd�r�stailJ'ssa�ls�Wth�'e�e	i�_a�!nr	sO*e8eoX�c�wun�'dInta�5yail�o-eklMep�ne��i�$e�(oh'kz�ib�e	i�a
'ade��ilmoprsd�l+rs+vuniP-tver['ei<l	h'�2fghQom=�nswr�Jaea�gra�Sole	i�'d�r)sh'ge�rs��es��op�sh'e	isd<�e~�rpssr�e	ie��i9�l�'d�h�i5omseo��e_�'��as-cdefg}iklmnprstvzf�ichka
:'�n�?i�'e�hilsi�dprtr,i�'sww�'-ks�gkee�/peef~p�Tn�uiv�of�feg&�not-��b<l��mnrsa��ehGrsr�n;�rcr��ee	isd�r0scptresere�ae�o2tw�'eh	iso�Voh�'s�wl2mnsVadSJe��i�sbea�d}ln��teai�'lRoeiy�e�n
�'�a��eghAlI[nsweݾild:rle�iy�tajg�mit
'lmpq�seaMCke"�dediao'�n��uionK�abcdefh��iklm�spst^Luyeurf}to��r-9rap�o_nh'}acefl7il��m�n	)sl�wat�'s��t�'br�sD�e
U'
ini��lo�wiy7f�'d
mstyj�orue2rdl*�ln|%eelm�'c
iei'�r�s�en�\s
�'acefiopsC�uy�'m�rq�eoc�x�kdmn(�rst��as��t�ua�uen�sQ�wmv\r�'sa�t:'
ib�oa�tgh<l�nG{auwghW�b	�'Xcb{ehi
rsy@Se�e�TnoVw:'-n�itQaei_!o۩s}r
�tngNton�'i�sh'�e	i��osk�hbp�sle�d�'Z*ei?lsy�e�n��sh'cdefgiknorstyzeh	ikh'dsye
�t�'e	idlrs}l�Wst�eelmax�n�'�T-abcefhijlmop&rsuwy%b\�r>�a�lrueak�'esr��')srn�'Z*es�theia�:t�wli�d�mr}xp:y�'ms*efxa�0lo�.e�e<ln�eg�'-ss�
ha+%m��aRoeiv�l��rw�'!�-�e	ihl|�ps:'fxi34i�#rchlo��tuwr�{eiet�l��a�c��rr<nf�e'�par\�d�'dgmrsp�l�0ra��k�iy��'ak�ps�i4ire}d}y
�'-��b�d��e�h	il$m��nsËt|�ltipRoei)}kp�u�aE�r�efn;�rh'e	ilse	i�'d�rsRaeioJ�b�rtfk}enpq�ew�'oss�6k��a۫lot��m�Yoehorr�'�egi
mstr
�en
vs�z�irDoV�n�iy�7ie	ih'Lad�rsaeirydjۡu�'-:�df�0hl$mrstht�(aap&p}�re0iss�'�eZlap��'psfeY!i�en=�e-g��a��ucdehɕiptonsin�'Əi�e�o�'ac)dg<lmnrAnscrac�fk�Duan�she#Ri	h'-�b*e3pfi��lyl�}ing-ow-wa��s�'{el�isy��e2�f	�'chl��n	)stwh�'-cde	i��hra+foc��td�rs�t�adehi��osra�ew
a+e	ii�nsh'sdrss�eilsntg<lssbtje
h'p�1o��eold#e��isnh'sgt)Yao�o"'eڞi�'egisydnZ%rboer��g��oenrs`pc�e<lw^natero�s�e�iaerd�'<l�rsn�e:'
�adMoMp�wabdeh�fgklmnoprtuvwyz?�dbeWrule��iyh'dxrs
,ge2�gC�ohou7Ts�'b2�fseg�o�'3@g�s�'V�eisng��hYcdfl�svh's
�'-�Ib�Bef$�gh	hiorswhis�,t�'ٺin��s�$wam�',isCoosgmno��rsqaq�bgo�ntonec@rersh�i(�tampt�oaben�'
hi�4klsq�z	eh	iiy�e&k�n�'�ahe@lsn�'folk�'_s'dgktsstq�aeC�o�frr
�'�b�e1�f�i)�l'ms�'a -�npig7Vewon�vgh'l�i)syh'eh	id�l~�nagq�gdel�f	ilmnrst��z�'��abce��fghil7Zmprst�)vwyei_'lv�ru
rr�n[yahTorurv@Be>�iZ^iTuafhtt�'s��tdnxcb��dCIe<l=�n��ro��u[�uB�en=�e)gae;�ionx�w�bd�tu73s�e8:i#]oujdf	�'��h cim��tw)y�a�e|�oa�Slurf~na�iord$�'�srkD�m�'Fe[7i	�s'�'-e}fgilosw��g�naothe[ro�l+�n\tei	)y�Vn�5e=�nŸn�torth:'se�vrsocko�ea��mZ7hst;ek
t'��s
cdeklm�nrstester:'s�"h�'-aatb�eibilpsy�bperrfe�co��c&g�e�i�<a�%lreW/smwitihorth�'ia/�n�'-ab"�defhilm?op_�rst~+uw��sto-r�ubuEdhr>Mili�eyoli
fc�so7,uaeos��k[�n
�a�o
�aloo�wr
�co�r�ung�'-��m	)sx�t>�wӋceE�o� sa�en
�sr�t�'r7l|�se�Ei}�l��ro��rNph'h
iop*te5osy6Re�p�Ra�6ao<�peio
�a��e#�md�'-clsv��wӋcfvw��aiew�e4moB�iy��-`�i	�'-�eD\h�i
ms
wyc��e��w3{aiye/�ms9d�rsocmh'5�iw�Gaehth'niph'D�e��f	�i��psh'-e�iss�ch'hC'i-7la�w	)y�5e<ln�egY'M{t;a��clndS�'��-�)nB�sd�'t�eCRisV�e�oC'�e	is"lnV�z$imaeino	u@gycMf�inp�stk�'\eɕi)sg��eDOl�'aфpsro�uh�'4�fac�knstxkt��e	ish�'�e	iskh')�ae	is�'csh�'�e&ith'�e	ilsle[7ich�'edsde<l�nha�#mgnstghlllew�iyt'ssu;e�Xgkl8�ei	)y��ent�')�bs�iw�'+�aeN�h>�isk�t-�a�rs?Xd��oY�uscntu
Mlgh'-d�Ke2�fh	i<l=�nscNfhe��am�oeMaeh��aght:-�wo�'C/dhlnrsfs��ideorkind

�e�sk�wlrA�stM�zE�eiI�t�u2Kzsh'hei_y��ei�w�'i�'
ac!�ek�Ulh�mnosl$Otk?oatch��eh�lw oeprroA�o�le�hdtnyT�h��amAning:'ƏiiwygtT'-�+68abcehilmo
�prstuvxyar��xa�t�8y'�6nu�vat&�d�xhigIpoxe�
i�o�v:'mnCor<sa�caio1krtZvhtQax's�bcg-�l�npt8�iry}y�a#]rhah�io;(nb}n�ei�ac�io"�x��gpxh �y�'eid�sngot�sh�m
'a�imnossv\xjassno$�'<sn#p+e&�gng&�n
_'��sb�a;l
�pcrhipO�iv�ee%�rl��zrunE�ni['�ii;lvx�isvsxi�i `i evleo-mn	�lpsho�mn
'-2abdegilmop:�rtuvwma<s�a�k
bchklmno�npqrstw'�yb�eif2y�.e}chkt�'�ei�FsnFjga%e	Ei�snd�ZaotL�w)�oN�z�'�Jik�suHa�Xe}Ait:'�Jswa�e(�gl�Bo�t}u*i��o�'ab5mos�g �h�ao	uussoukwQrc�0dgkh^�e�';ot#�z�'ae	i�sM{tYlde:'i�s��s��bundte�u�bd7�elm�nor�'a{em�ns�g�ra'~e_nste��ro^�o&ouF�lsla*�vaqo �gC�l�mnwri�vgob� iC�ohm�sma��ki��n)�a�eh'�e	i�ln�ap	)sh'e&is:'ae�gklmnoprstv�wh'sgPhrs�t�'-atblns%eo!rn��-i	o	)yhe>�n�er�ist�'{eisy�en�e	�gl�iateriP*nl	�pa\th'�e	iosw�'-�Ke!�fh��ik=�nsybel8lam�:mnA�i�Dteno'i:'<srt�'iY�ns>�smva�en�'�l�9r��ih'�QpsseXkr`va�nh'�-eh�[st�nssic�ver"�dy�\e�iB:mtush��egdra��s	�b��cde�knpszdssish:'i�]sldh'=be��ish'djiba+�rh'sepsse�isdehu�vk��oang-�cycIEh4imav-bdgkln�/orstuwyoZ;e�i'�sbi�is�Hi<�oRae@gl�ahiou�xu�'�csur`�tr��te	ino�'d�lsapataw��p:'�Hh��a��kn}�gd}gk��e�s	)ek��u�'eis"�t'�dra�t'[s}e�nhire�'�m<ses�tmi�ta�rta�%b'-nrstd�l+rss+vknow-wh�aog�i�
k�'b�eEisNetFe"�oself�v�eu�f�hu3�b	�lw�rsila��nter�rrr�bafbcegklmnprtn
�'zhhaa�ck�tl�iyndu}�m[ao:'slav:'iWsaU'��n
h'k�ossZ*e�isy\�ae�'
b<stidNe-�a<vm�0ygn"�a
h'pssi�e)�f�i�tT�ae��o�s#�tcIEh�a
;'8a
�behil}no}rsuw
�xyz�0bcdgimnprwzagl�ihka�ueryi�yie�'rl�ebrat��s7�e]bibefi�oe-[ilso�zn>h
�d}ei}su	)yzB�e=�ni2bh'aops
�ur��toz �h}ae��i�ya
U'thustrRa�ia�[dh$�ir�zabcdefi\klnoprstul�|x�'aond�'er'[st-;u�'��rsei�i�r�uN�dharyi�'e`�os%NkbB:h'�lAmru=_gfO�i'�n�stgeX�bisth'ss'�yP0ilmick's�f:'I[g�i^|no�s
U'"�bK�lhpayniőar�'s�uelin'YasYasmo4a�'-�e	isc�t�+r�0st�'fiss�yul<l�npAe
fa'�l#�tgts?�xAmadeiungjiak�oano<vn��gvMEae�kbdeglmnoprt�}oovW�ugfKlel�dgzu}y�rajg[ec$wlbmabwe�']fa4Reciefg�n�'�e�[kssandel
7�'�s�'}�e��isssyn�'i<sR�s�'lps'�x.eHoe�iyd��rcon�'.issh'hssot[�i~�y
dlelmnorsu��i�ca}aloveO�rv�fb}a�ia8�eY!i/k�ly�t�'k3�lmpsxeepJ�eh'�e	i�oshl�oyt�e
�ian�rkZ�panthel��l��c}norasts	erian:'�%i�sm
�tB�n
igmoGnbcgkl InN�renelsgen��ucha��mckhin��ier>�bB:mz�ewe4o�wru�'l�sanWdioen(�b?�gr��ydgmrtuehco4�m6~tury�gAi��t�hg�9a<zg7rs�aclmla#it�aigD�rP+123ABCDEFGHIJKLMNOPQRSTUVWXYZacdeikmnopstuvD.DYZA6BDGE.SPP'.sABCDFIMNOPSTWZcdglmnrsu'se'CMe's
e'gse'LTcUcHe'cPtecCe'DgscSe'cDSZI'gss'A�U6sC�'L'se'AIICS'sBCcL�'IOIrIM�P'.ssAO�CcLe'cTtive.XWorIdResearch�'-AHJMQSZno.nail�iazezer�aie�raida�'au'e?ida'�se0nhwari�fahil�iawahir�iiga@Oglo-BFINSoe�rrenc�hnrdia�ni�sor�max�oanfura Se�ahem Lan�dtroTurfe'toCADI'.ABCDEILMNPRSTaeiloSc�.e'SpIrCpS6ce'cBCS�'eee'o6m-RIEO.sIMC$TIC�OrTe'L�WedF�ZLF'e'hai&r.l�'e'rD6ckyCBou6rrsrow-in-Furne�sse-Terr�erwick-upon-Tweed�'tTorrent
e'ackBerriye.d.sin.gsynia-Herzegovin�aup Broo�k.ABDEFINOPRScTVfhilorLit�.cDcCcS�'-SC�sR0OIW.sO'.ssCIOe'�sAG'NcS'pse'BOrLcAcIcRU�'�s�CTe'�scTcS.sICT6BaeuntSer.vZillster-le-Stree�trch-of-Englan�dnemaScop�eermont-Ferran.dcmorta-Col.ampander-in-Chie�fuServe�'bler Ped�yMa.xe�la-RoblIeeoutzfeldt-Jako�bws Nes�tABcCDEHJL2MN�OPSVWefiouye'LRcTne.tPGA�Me'cST@o�'gsCSTegsgdI'GRB�'6s�'�sILcASaSE�Cs.ee'hgsQiL�'RI'.sDmR�'-�sR0OGPGKMenere�sals�bte�rorgaCnE�SCMfpr�vapri�oaggio�'fie-HellmaE�dectS.Xho�wCuoM�oglas-Ho�mPon�tfed-Pow�yCDE�GKLMNPSITUadilruvcGMAScript
Z'cPcCcGcGcF�IcEcA�AcEPcTe'cNI'LeAstEndeFritor-At-Larg�e.B�CGamQavI�nro-MMP.sillioInaens -He�aPritchar�drRead�yABD�HILrMNO�SUeiorQ�'IsXI�IcR�C�A�MRTRAcNeDdE�xreWi�rrt-de-Fran�ceeB,S2AcBC�DcEHMN�OP�TUinru.BqTXCS�EcQ�ze'IOcTcPcUe'IUIZ'.s.BtHu�buPG
I'aeeco-RVoiunea-Bissa�ugu Yimidhi*rBDEFIMcPcQST2UaeioucOIDSL�R�Ve'ICVe'-npegati�voseicO�BMXLmrersley Rang�eley-Davidso�nartlthPA6Ciot-Wa�tton-le-Ho�l-FIis�h�fru�tghton-le-Sprin�gmpty Do�oBCDKMNyOIPQRSUrVnAMINABSCN�NrM'ps.d�ips�EXFcG�Re'.srACcSo&pI�OIP�S�Ddto-EuropXeerCit.yFaucKvaScri�pdaeo-ChristXi	cBD�FGKO�iuw�E�BXKA'ku-Yalan`jaNZdebe�lulu-Nat'�ABCEcGLP2SUaeiyAEOmou�rnfangtruea�lvertu�rcJXDD�'�scBcDe'rN.sS�ATVneCX|eguageToQoe-EMnfie�letfo�rbgn-rL~aeOffic�ehtScri�bkedI�X'-.cABCcDE�FGHIKMOPRSTU�VaceiuyNaghte4nDI�Se'�AcIGeOcM�ze'	�DFGT,3�P�RS�e�i.sST�'3h�s�'.si�lcIe'cGcT�ce'cVF	8S:OcrstABDGIKLM@OPdrthurG'ri�diorarmUinanl5del�la�wryegoCrve�rntyenziCeeis�hil lhe�ronnell Rang�eie-Ann�eterCar�da-U tABCDEFGHIKLMNPQRVdflame'�s�el	�eiste�rri3dalorubfil�nru�efre�yl�'u�mthn5yy�'is�meye'le�yaeiui5nll5antoc�k3rskeCynr5ynel5lmic5kac�yke�nlleor�sug5hae
2ioniZermot�tnuVw
?aVngal�lnro�eadrd5ela
An3e�iloruy�nv;we5raet�w�hg
�ofifae3ra�lnto�y~saein5y5ensnz3ismonlnsGa�e�e�oigh5taeuruenF'gh3l5a
Aohaa7ih5oaeilmular�aghto
%nZis�hher7suee�aei
tgrcedes-Ben�z.B�GdCentra6lrrinh-Pat�hSpae�cQl'ABCDcE�FG�HOPSVcWZaeiouyDjaemenaI'menAFST�C�T	,ACD
AAcQ	,OcAcC�AC	8EL�SIEIORASDcRXAR0A�D	6M	8P	8Q�C.NtWes�tWwSee cAgei&rs.mastle-under-Lymc�kDo�zltlarbor Plai�nraSwe�eQu	i'�A
BCnDEHKLMOPS	6UbfnpBCDFHKLNRSTr�iaoseye'nnXeo5r�eowTny
Vearrel�lair%a�eggin%seeff%eea,reile'%leoill�yur�khue�allivmaoo�l	�RM�'.sQS�'ei�sIdnIgEIDcBCo�E�'nG�HZei-W�aficeM�aeDgren�BDGOPSocume�n.Lffic
%eG.P�SolarIiA�BCDEHcJqLMOP�RS�T�Vah�ilorue'cCRSCF'gsCA�L�'�IcP�R�sIAIF�PcT�P�'cS�T�eigsnggPLW.3	8Te'�AcTyPalZ'.DD..e'.sayStation
e'.srswt-aou-Pr�if-Spa�itScri�perP�Co�ieovelly Parto-InbdreBasi.c&oui-c�GkTi�mA�C<EFJNO	8SrVaocFmMeCGU4.5e'�AZ�a	6RLM�Ty0Bper B*aACEGIMOPQRSTU�VcWaeotuyqLcMcPR�Se'O	�SW�Le'cC�M�'�DGMGRAPGHU.s�LSA�e�i.sF'�scBcPSgse'ee.sARCF'stati�LSAA�DcEcWIDII�S�Vint-DTenxirope�zacMon	BkurDi�surtceFor�ghend-on-Se�aaeoruirMast	ern-Volme.rckkton-on-TeesI'e-on-Tren�tatford-upon-A�vdyLin�kb-L
tQues4tcBEHqK�LqNSVQWaeiLNiNETTgs�e�iEGXrtAz.z�B�'�3N�s�Znami Dese�rXlF'eeePrompT�ter�s.Bmpo�rp-ME�BCF�HKNPRSTUcVL	8SF'SAOZ'�sZ'EISqCCcX�EcIcSZLZ'cA�BGC�DSG
Se'F-13.8.6.2C�PACcDF�HILM2PUocTXGeLRcWe'nP�CcFSS.s	6W�I	AqH�N�SWaeioA�S�TFCIcW�'�Illta Wal�lon-on-Tham�ealr-T1eTe-FnF.igiRZA.Ri.prdlP�arexsdCo�mEcLUNmI�XacLRun
Zn2M}Wa�io.KC�Arra Ri(vuTu	�be�illick's�Fln-HJ,M7QLSbZti-AB�CSWmericaniksritis.hemiti�cs�mester.Eleg3a'BAEIrzezz
�ou*y�rstain%gvoi
�r�'�Wd�i�mBM.Vay
e'erI'.susi�cMOPT�a�Sahodonedune�s�BH�VWzF'�hIRS�WiR.CN�AAT.AcroR,S�Neoo-CDGLMNonfucian
<iarwinias.m.teoor�gt�hatiarxis.m&tazis.mnr-AC.UbmorigineriXca�htho�lth-EWast�'ewrl6n�yard�sest�'OeVw'Cloc�kHar�'.sn-Europ�eeo-C	Rhris�t-ARmeri�cepub�lRou�Guth-EWast'OeVwJsest�'erli�yFeb-Saha�rRN�An-Eng�lPir.oce-CPhancellorF'shi\presidentF'i�sa�lPK�j�Zr;�vvvim80/spell/spell.vimnu�[���" Settings for when generating spellfiles.
"
" Assume we have 2 Gbyte RAM available.
set mkspellmem=1800000,6000,1600
PK�j�Zq�J���vim80/spell/yi.vimnu�[���" For Yiddish capitals should not be checked.  But only change the
" 'spellcapcheck' option when it is not at its default value.
let s:spc = &l:spc
setlocal spc&
if s:spc == &l:spc
  setlocal spc=
else
  let &l:spc = s:spc
endif
unlet s:spc
PK�j�ZyhfI��vim80/spell/cleanadd.vimnu�[���" Vim script to clean the ll.xxxxx.add files of commented out entries
" Author:	Antonio Colombo, Bram Moolenaar
" Last Update:	2008 Jun 3

" Time in seconds after last time an ll.xxxxx.add file was updated
" Default is one second.
" If you invoke this script often set it to something bigger, e.g. 60 * 60
" (one hour)
if !exists("g:spell_clean_limit")
  let g:spell_clean_limit = 1
endif

" Loop over all the runtime/spell/*.add files.
" Delete all comment lines, except the ones starting with ##.
for s:fname in split(globpath(&rtp, "spell/*.add"), "\n")
  if filewritable(s:fname) && localtime() - getftime(s:fname) > g:spell_clean_limit
    if exists('*fnameescape')
      let s:f = fnameescape(s:fname)
    else
      let s:f = escape(s:fname, ' \|<')
    endif
    silent exe "tab split " . s:f
    echo "Processing" s:f
    silent! g/^#[^#]/d
    silent update
    close
    unlet s:f
  endif
endfor
unlet s:fname

echo "Done"
PK�j�Z���vim80/ftoff.vimnu�[���" Vim support file to switch off detection of file types
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2001 Jun 11

if exists("did_load_filetypes")
  unlet did_load_filetypes
endif

" Remove all autocommands in the filetypedetect group
silent! au! filetypedetect *
PK�j�Z��F�tEtE
vim80/rgb.txtnu�[���255 250 250		snow
248 248 255		ghost white
248 248 255		GhostWhite
245 245 245		white smoke
245 245 245		WhiteSmoke
220 220 220		gainsboro
255 250 240		floral white
255 250 240		FloralWhite
253 245 230		old lace
253 245 230		OldLace
250 240 230		linen
250 235 215		antique white
250 235 215		AntiqueWhite
255 239 213		papaya whip
255 239 213		PapayaWhip
255 235 205		blanched almond
255 235 205		BlanchedAlmond
255 228 196		bisque
255 218 185		peach puff
255 218 185		PeachPuff
255 222 173		navajo white
255 222 173		NavajoWhite
255 228 181		moccasin
255 248 220		cornsilk
255 255 240		ivory
255 250 205		lemon chiffon
255 250 205		LemonChiffon
255 245 238		seashell
240 255 240		honeydew
245 255 250		mint cream
245 255 250		MintCream
240 255 255		azure
240 248 255		alice blue
240 248 255		AliceBlue
230 230 250		lavender
255 240 245		lavender blush
255 240 245		LavenderBlush
255 228 225		misty rose
255 228 225		MistyRose
255 255 255		white
  0   0   0		black
 47  79  79		dark slate gray
 47  79  79		DarkSlateGray
 47  79  79		dark slate grey
 47  79  79		DarkSlateGrey
105 105 105		dim gray
105 105 105		DimGray
105 105 105		dim grey
105 105 105		DimGrey
112 128 144		slate gray
112 128 144		SlateGray
112 128 144		slate grey
112 128 144		SlateGrey
119 136 153		light slate gray
119 136 153		LightSlateGray
119 136 153		light slate grey
119 136 153		LightSlateGrey
190 190 190		gray
190 190 190		grey
190 190 190		x11 gray
190 190 190		X11Gray
190 190 190		x11 grey
190 190 190		X11Grey
128 128 128		web gray
128 128 128		WebGray
128 128 128		web grey
128 128 128		WebGrey
211 211 211		light grey
211 211 211		LightGrey
211 211 211		light gray
211 211 211		LightGray
 25  25 112		midnight blue
 25  25 112		MidnightBlue
  0   0 128		navy
  0   0 128		navy blue
  0   0 128		NavyBlue
100 149 237		cornflower blue
100 149 237		CornflowerBlue
 72  61 139		dark slate blue
 72  61 139		DarkSlateBlue
106  90 205		slate blue
106  90 205		SlateBlue
123 104 238		medium slate blue
123 104 238		MediumSlateBlue
132 112 255		light slate blue
132 112 255		LightSlateBlue
  0   0 205		medium blue
  0   0 205		MediumBlue
 65 105 225		royal blue
 65 105 225		RoyalBlue
  0   0 255		blue
 30 144 255		dodger blue
 30 144 255		DodgerBlue
  0 191 255		deep sky blue
  0 191 255		DeepSkyBlue
135 206 235		sky blue
135 206 235		SkyBlue
135 206 250		light sky blue
135 206 250		LightSkyBlue
 70 130 180		steel blue
 70 130 180		SteelBlue
176 196 222		light steel blue
176 196 222		LightSteelBlue
173 216 230		light blue
173 216 230		LightBlue
176 224 230		powder blue
176 224 230		PowderBlue
175 238 238		pale turquoise
175 238 238		PaleTurquoise
  0 206 209		dark turquoise
  0 206 209		DarkTurquoise
 72 209 204		medium turquoise
 72 209 204		MediumTurquoise
 64 224 208		turquoise
  0 255 255		cyan
  0 255 255		aqua
224 255 255		light cyan
224 255 255		LightCyan
 95 158 160		cadet blue
 95 158 160		CadetBlue
102 205 170		medium aquamarine
102 205 170		MediumAquamarine
127 255 212		aquamarine
  0 100   0		dark green
  0 100   0		DarkGreen
 85 107  47		dark olive green
 85 107  47		DarkOliveGreen
143 188 143		dark sea green
143 188 143		DarkSeaGreen
 46 139  87		sea green
 46 139  87		SeaGreen
 60 179 113		medium sea green
 60 179 113		MediumSeaGreen
 32 178 170		light sea green
 32 178 170		LightSeaGreen
152 251 152		pale green
152 251 152		PaleGreen
  0 255 127		spring green
  0 255 127		SpringGreen
124 252   0		lawn green
124 252   0		LawnGreen
  0 255   0		green
  0 255   0		lime
  0 255   0		x11 green
  0 255   0		X11Green
  0 128   0		web green
  0 128   0		WebGreen
127 255   0		chartreuse
  0 250 154		medium spring green
  0 250 154		MediumSpringGreen
173 255  47		green yellow
173 255  47		GreenYellow
 50 205  50		lime green
 50 205  50		LimeGreen
154 205  50		yellow green
154 205  50		YellowGreen
 34 139  34		forest green
 34 139  34		ForestGreen
107 142  35		olive drab
107 142  35		OliveDrab
189 183 107		dark khaki
189 183 107		DarkKhaki
240 230 140		khaki
238 232 170		pale goldenrod
238 232 170		PaleGoldenrod
250 250 210		light goldenrod yellow
250 250 210		LightGoldenrodYellow
255 255 224		light yellow
255 255 224		LightYellow
255 255   0		yellow
255 215   0		gold
238 221 130		light goldenrod
238 221 130		LightGoldenrod
218 165  32		goldenrod
184 134  11		dark goldenrod
184 134  11		DarkGoldenrod
188 143 143		rosy brown
188 143 143		RosyBrown
205  92  92		indian red
205  92  92		IndianRed
139  69  19		saddle brown
139  69  19		SaddleBrown
160  82  45		sienna
205 133  63		peru
222 184 135		burlywood
245 245 220		beige
245 222 179		wheat
244 164  96		sandy brown
244 164  96		SandyBrown
210 180 140		tan
210 105  30		chocolate
178  34  34		firebrick
165  42  42		brown
233 150 122		dark salmon
233 150 122		DarkSalmon
250 128 114		salmon
255 160 122		light salmon
255 160 122		LightSalmon
255 165   0		orange
255 140   0		dark orange
255 140   0		DarkOrange
255 127  80		coral
240 128 128		light coral
240 128 128		LightCoral
255  99  71		tomato
255  69   0		orange red
255  69   0		OrangeRed
255   0   0		red
255 105 180		hot pink
255 105 180		HotPink
255  20 147		deep pink
255  20 147		DeepPink
255 192 203		pink
255 182 193		light pink
255 182 193		LightPink
219 112 147		pale violet red
219 112 147		PaleVioletRed
176  48  96		maroon
176  48  96		x11 maroon
176  48  96		X11Maroon
128   0   0		web maroon
128   0   0		WebMaroon
199  21 133		medium violet red
199  21 133		MediumVioletRed
208  32 144		violet red
208  32 144		VioletRed
255   0 255		magenta
255   0 255		fuchsia
238 130 238		violet
221 160 221		plum
218 112 214		orchid
186  85 211		medium orchid
186  85 211		MediumOrchid
153  50 204		dark orchid
153  50 204		DarkOrchid
148   0 211		dark violet
148   0 211		DarkViolet
138  43 226		blue violet
138  43 226		BlueViolet
160  32 240		purple
160  32 240		x11 purple
160  32 240		X11Purple
128   0 128		web purple
128   0 128		WebPurple
147 112 219		medium purple
147 112 219		MediumPurple
216 191 216		thistle
255 250 250		snow1
238 233 233		snow2
205 201 201		snow3
139 137 137		snow4
255 245 238		seashell1
238 229 222		seashell2
205 197 191		seashell3
139 134 130		seashell4
255 239 219		AntiqueWhite1
238 223 204		AntiqueWhite2
205 192 176		AntiqueWhite3
139 131 120		AntiqueWhite4
255 228 196		bisque1
238 213 183		bisque2
205 183 158		bisque3
139 125 107		bisque4
255 218 185		PeachPuff1
238 203 173		PeachPuff2
205 175 149		PeachPuff3
139 119 101		PeachPuff4
255 222 173		NavajoWhite1
238 207 161		NavajoWhite2
205 179 139		NavajoWhite3
139 121	 94		NavajoWhite4
255 250 205		LemonChiffon1
238 233 191		LemonChiffon2
205 201 165		LemonChiffon3
139 137 112		LemonChiffon4
255 248 220		cornsilk1
238 232 205		cornsilk2
205 200 177		cornsilk3
139 136 120		cornsilk4
255 255 240		ivory1
238 238 224		ivory2
205 205 193		ivory3
139 139 131		ivory4
240 255 240		honeydew1
224 238 224		honeydew2
193 205 193		honeydew3
131 139 131		honeydew4
255 240 245		LavenderBlush1
238 224 229		LavenderBlush2
205 193 197		LavenderBlush3
139 131 134		LavenderBlush4
255 228 225		MistyRose1
238 213 210		MistyRose2
205 183 181		MistyRose3
139 125 123		MistyRose4
240 255 255		azure1
224 238 238		azure2
193 205 205		azure3
131 139 139		azure4
131 111 255		SlateBlue1
122 103 238		SlateBlue2
105  89 205		SlateBlue3
 71  60 139		SlateBlue4
 72 118 255		RoyalBlue1
 67 110 238		RoyalBlue2
 58  95 205		RoyalBlue3
 39  64 139		RoyalBlue4
  0   0 255		blue1
  0   0 238		blue2
  0   0 205		blue3
  0   0 139		blue4
 30 144 255		DodgerBlue1
 28 134 238		DodgerBlue2
 24 116 205		DodgerBlue3
 16  78 139		DodgerBlue4
 99 184 255		SteelBlue1
 92 172 238		SteelBlue2
 79 148 205		SteelBlue3
 54 100 139		SteelBlue4
  0 191 255		DeepSkyBlue1
  0 178 238		DeepSkyBlue2
  0 154 205		DeepSkyBlue3
  0 104 139		DeepSkyBlue4
135 206 255		SkyBlue1
126 192 238		SkyBlue2
108 166 205		SkyBlue3
 74 112 139		SkyBlue4
176 226 255		LightSkyBlue1
164 211 238		LightSkyBlue2
141 182 205		LightSkyBlue3
 96 123 139		LightSkyBlue4
198 226 255		SlateGray1
185 211 238		SlateGray2
159 182 205		SlateGray3
108 123 139		SlateGray4
202 225 255		LightSteelBlue1
188 210 238		LightSteelBlue2
162 181 205		LightSteelBlue3
110 123 139		LightSteelBlue4
191 239 255		LightBlue1
178 223 238		LightBlue2
154 192 205		LightBlue3
104 131 139		LightBlue4
224 255 255		LightCyan1
209 238 238		LightCyan2
180 205 205		LightCyan3
122 139 139		LightCyan4
187 255 255		PaleTurquoise1
174 238 238		PaleTurquoise2
150 205 205		PaleTurquoise3
102 139 139		PaleTurquoise4
152 245 255		CadetBlue1
142 229 238		CadetBlue2
122 197 205		CadetBlue3
 83 134 139		CadetBlue4
  0 245 255		turquoise1
  0 229 238		turquoise2
  0 197 205		turquoise3
  0 134 139		turquoise4
  0 255 255		cyan1
  0 238 238		cyan2
  0 205 205		cyan3
  0 139 139		cyan4
151 255 255		DarkSlateGray1
141 238 238		DarkSlateGray2
121 205 205		DarkSlateGray3
 82 139 139		DarkSlateGray4
127 255 212		aquamarine1
118 238 198		aquamarine2
102 205 170		aquamarine3
 69 139 116		aquamarine4
193 255 193		DarkSeaGreen1
180 238 180		DarkSeaGreen2
155 205 155		DarkSeaGreen3
105 139 105		DarkSeaGreen4
 84 255 159		SeaGreen1
 78 238 148		SeaGreen2
 67 205 128		SeaGreen3
 46 139	 87		SeaGreen4
154 255 154		PaleGreen1
144 238 144		PaleGreen2
124 205 124		PaleGreen3
 84 139	 84		PaleGreen4
  0 255 127		SpringGreen1
  0 238 118		SpringGreen2
  0 205 102		SpringGreen3
  0 139	 69		SpringGreen4
  0 255	  0		green1
  0 238	  0		green2
  0 205	  0		green3
  0 139	  0		green4
127 255	  0		chartreuse1
118 238	  0		chartreuse2
102 205	  0		chartreuse3
 69 139	  0		chartreuse4
192 255	 62		OliveDrab1
179 238	 58		OliveDrab2
154 205	 50		OliveDrab3
105 139	 34		OliveDrab4
202 255 112		DarkOliveGreen1
188 238 104		DarkOliveGreen2
162 205	 90		DarkOliveGreen3
110 139	 61		DarkOliveGreen4
255 246 143		khaki1
238 230 133		khaki2
205 198 115		khaki3
139 134	 78		khaki4
255 236 139		LightGoldenrod1
238 220 130		LightGoldenrod2
205 190 112		LightGoldenrod3
139 129	 76		LightGoldenrod4
255 255 224		LightYellow1
238 238 209		LightYellow2
205 205 180		LightYellow3
139 139 122		LightYellow4
255 255	  0		yellow1
238 238	  0		yellow2
205 205	  0		yellow3
139 139	  0		yellow4
255 215	  0		gold1
238 201	  0		gold2
205 173	  0		gold3
139 117	  0		gold4
255 193	 37		goldenrod1
238 180	 34		goldenrod2
205 155	 29		goldenrod3
139 105	 20		goldenrod4
255 185	 15		DarkGoldenrod1
238 173	 14		DarkGoldenrod2
205 149	 12		DarkGoldenrod3
139 101	  8		DarkGoldenrod4
255 193 193		RosyBrown1
238 180 180		RosyBrown2
205 155 155		RosyBrown3
139 105 105		RosyBrown4
255 106 106		IndianRed1
238  99	 99		IndianRed2
205  85	 85		IndianRed3
139  58	 58		IndianRed4
255 130	 71		sienna1
238 121	 66		sienna2
205 104	 57		sienna3
139  71	 38		sienna4
255 211 155		burlywood1
238 197 145		burlywood2
205 170 125		burlywood3
139 115	 85		burlywood4
255 231 186		wheat1
238 216 174		wheat2
205 186 150		wheat3
139 126 102		wheat4
255 165	 79		tan1
238 154	 73		tan2
205 133	 63		tan3
139  90	 43		tan4
255 127	 36		chocolate1
238 118	 33		chocolate2
205 102	 29		chocolate3
139  69	 19		chocolate4
255  48	 48		firebrick1
238  44	 44		firebrick2
205  38	 38		firebrick3
139  26	 26		firebrick4
255  64	 64		brown1
238  59	 59		brown2
205  51	 51		brown3
139  35	 35		brown4
255 140 105		salmon1
238 130	 98		salmon2
205 112	 84		salmon3
139  76	 57		salmon4
255 160 122		LightSalmon1
238 149 114		LightSalmon2
205 129	 98		LightSalmon3
139  87	 66		LightSalmon4
255 165	  0		orange1
238 154	  0		orange2
205 133	  0		orange3
139  90	  0		orange4
255 127	  0		DarkOrange1
238 118	  0		DarkOrange2
205 102	  0		DarkOrange3
139  69	  0		DarkOrange4
255 114	 86		coral1
238 106	 80		coral2
205  91	 69		coral3
139  62	 47		coral4
255  99	 71		tomato1
238  92	 66		tomato2
205  79	 57		tomato3
139  54	 38		tomato4
255  69	  0		OrangeRed1
238  64	  0		OrangeRed2
205  55	  0		OrangeRed3
139  37	  0		OrangeRed4
255   0	  0		red1
238   0	  0		red2
205   0	  0		red3
139   0	  0		red4
255  20 147		DeepPink1
238  18 137		DeepPink2
205  16 118		DeepPink3
139  10	 80		DeepPink4
255 110 180		HotPink1
238 106 167		HotPink2
205  96 144		HotPink3
139  58  98		HotPink4
255 181 197		pink1
238 169 184		pink2
205 145 158		pink3
139  99 108		pink4
255 174 185		LightPink1
238 162 173		LightPink2
205 140 149		LightPink3
139  95 101		LightPink4
255 130 171		PaleVioletRed1
238 121 159		PaleVioletRed2
205 104 137		PaleVioletRed3
139  71	 93		PaleVioletRed4
255  52 179		maroon1
238  48 167		maroon2
205  41 144		maroon3
139  28	 98		maroon4
255  62 150		VioletRed1
238  58 140		VioletRed2
205  50 120		VioletRed3
139  34	 82		VioletRed4
255   0 255		magenta1
238   0 238		magenta2
205   0 205		magenta3
139   0 139		magenta4
255 131 250		orchid1
238 122 233		orchid2
205 105 201		orchid3
139  71 137		orchid4
255 187 255		plum1
238 174 238		plum2
205 150 205		plum3
139 102 139		plum4
224 102 255		MediumOrchid1
209  95 238		MediumOrchid2
180  82 205		MediumOrchid3
122  55 139		MediumOrchid4
191  62 255		DarkOrchid1
178  58 238		DarkOrchid2
154  50 205		DarkOrchid3
104  34 139		DarkOrchid4
155  48 255		purple1
145  44 238		purple2
125  38 205		purple3
 85  26 139		purple4
171 130 255		MediumPurple1
159 121 238		MediumPurple2
137 104 205		MediumPurple3
 93  71 139		MediumPurple4
255 225 255		thistle1
238 210 238		thistle2
205 181 205		thistle3
139 123 139		thistle4
  0   0   0		gray0
  0   0   0		grey0
  3   3   3		gray1
  3   3   3		grey1
  5   5   5		gray2
  5   5   5		grey2
  8   8   8		gray3
  8   8   8		grey3
 10  10  10		gray4
 10  10  10		grey4
 13  13  13		gray5
 13  13  13		grey5
 15  15  15		gray6
 15  15  15		grey6
 18  18  18		gray7
 18  18  18		grey7
 20  20  20		gray8
 20  20  20		grey8
 23  23  23		gray9
 23  23  23		grey9
 26  26  26		gray10
 26  26  26		grey10
 28  28  28		gray11
 28  28  28		grey11
 31  31  31		gray12
 31  31  31		grey12
 33  33  33		gray13
 33  33  33		grey13
 36  36  36		gray14
 36  36  36		grey14
 38  38  38		gray15
 38  38  38		grey15
 41  41  41		gray16
 41  41  41		grey16
 43  43  43		gray17
 43  43  43		grey17
 46  46  46		gray18
 46  46  46		grey18
 48  48  48		gray19
 48  48  48		grey19
 51  51  51		gray20
 51  51  51		grey20
 54  54  54		gray21
 54  54  54		grey21
 56  56  56		gray22
 56  56  56		grey22
 59  59  59		gray23
 59  59  59		grey23
 61  61  61		gray24
 61  61  61		grey24
 64  64  64		gray25
 64  64  64		grey25
 66  66  66		gray26
 66  66  66		grey26
 69  69  69		gray27
 69  69  69		grey27
 71  71  71		gray28
 71  71  71		grey28
 74  74  74		gray29
 74  74  74		grey29
 77  77  77		gray30
 77  77  77		grey30
 79  79  79		gray31
 79  79  79		grey31
 82  82  82		gray32
 82  82  82		grey32
 84  84  84		gray33
 84  84  84		grey33
 87  87  87		gray34
 87  87  87		grey34
 89  89  89		gray35
 89  89  89		grey35
 92  92  92		gray36
 92  92  92		grey36
 94  94  94		gray37
 94  94  94		grey37
 97  97  97		gray38
 97  97  97		grey38
 99  99  99		gray39
 99  99  99		grey39
102 102 102		gray40
102 102 102		grey40
105 105 105		gray41
105 105 105		grey41
107 107 107		gray42
107 107 107		grey42
110 110 110		gray43
110 110 110		grey43
112 112 112		gray44
112 112 112		grey44
115 115 115		gray45
115 115 115		grey45
117 117 117		gray46
117 117 117		grey46
120 120 120		gray47
120 120 120		grey47
122 122 122		gray48
122 122 122		grey48
125 125 125		gray49
125 125 125		grey49
127 127 127		gray50
127 127 127		grey50
130 130 130		gray51
130 130 130		grey51
133 133 133		gray52
133 133 133		grey52
135 135 135		gray53
135 135 135		grey53
138 138 138		gray54
138 138 138		grey54
140 140 140		gray55
140 140 140		grey55
143 143 143		gray56
143 143 143		grey56
145 145 145		gray57
145 145 145		grey57
148 148 148		gray58
148 148 148		grey58
150 150 150		gray59
150 150 150		grey59
153 153 153		gray60
153 153 153		grey60
156 156 156		gray61
156 156 156		grey61
158 158 158		gray62
158 158 158		grey62
161 161 161		gray63
161 161 161		grey63
163 163 163		gray64
163 163 163		grey64
166 166 166		gray65
166 166 166		grey65
168 168 168		gray66
168 168 168		grey66
171 171 171		gray67
171 171 171		grey67
173 173 173		gray68
173 173 173		grey68
176 176 176		gray69
176 176 176		grey69
179 179 179		gray70
179 179 179		grey70
181 181 181		gray71
181 181 181		grey71
184 184 184		gray72
184 184 184		grey72
186 186 186		gray73
186 186 186		grey73
189 189 189		gray74
189 189 189		grey74
191 191 191		gray75
191 191 191		grey75
194 194 194		gray76
194 194 194		grey76
196 196 196		gray77
196 196 196		grey77
199 199 199		gray78
199 199 199		grey78
201 201 201		gray79
201 201 201		grey79
204 204 204		gray80
204 204 204		grey80
207 207 207		gray81
207 207 207		grey81
209 209 209		gray82
209 209 209		grey82
212 212 212		gray83
212 212 212		grey83
214 214 214		gray84
214 214 214		grey84
217 217 217		gray85
217 217 217		grey85
219 219 219		gray86
219 219 219		grey86
222 222 222		gray87
222 222 222		grey87
224 224 224		gray88
224 224 224		grey88
227 227 227		gray89
227 227 227		grey89
229 229 229		gray90
229 229 229		grey90
232 232 232		gray91
232 232 232		grey91
235 235 235		gray92
235 235 235		grey92
237 237 237		gray93
237 237 237		grey93
240 240 240		gray94
240 240 240		grey94
242 242 242		gray95
242 242 242		grey95
245 245 245		gray96
245 245 245		grey96
247 247 247		gray97
247 247 247		grey97
250 250 250		gray98
250 250 250		grey98
252 252 252		gray99
252 252 252		grey99
255 255 255		gray100
255 255 255		grey100
169 169 169		dark grey
169 169 169		DarkGrey
169 169 169		dark gray
169 169 169		DarkGray
0     0 139		dark blue
0     0 139		DarkBlue
0   139 139		dark cyan
0   139 139		DarkCyan
139   0 139		dark magenta
139   0 139		DarkMagenta
139   0   0		dark red
139   0   0		DarkRed
144 238 144		light green
144 238 144		LightGreen
220  20  60		crimson
 75   0 130		indigo
128 128   0		olive
102  51 153		rebecca purple
102  51 153		RebeccaPurple
192 192 192		silver
  0 128 128		teal
PK�j�Z&\�K`@`@2vim80/pack/dist/opt/termdebug/plugin/termdebug.vimnu�[���" Debugger plugin using gdb.
"
" WORK IN PROGRESS - much doesn't work yet
"
" Open two visible terminal windows:
" 1. run a pty, as with ":term NONE"
" 2. run gdb, passing the pty
" The current window is used to view source code and follows gdb.
"
" A third terminal window is hidden, it is used for communication with gdb.
"
" The communication with gdb uses GDB/MI.  See:
" https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html
"
" Author: Bram Moolenaar
" Copyright: Vim license applies, see ":help license"

" In case this gets loaded twice.
if exists(':Termdebug')
  finish
endif

" Uncomment this line to write logging in "debuglog".
" call ch_logfile('debuglog', 'w')

" The command that starts debugging, e.g. ":Termdebug vim".
" To end type "quit" in the gdb window.
command -nargs=* -complete=file -bang Termdebug call s:StartDebug(<bang>0, <f-args>)
command -nargs=+ -complete=file -bang TermdebugCommand call s:StartDebugCommand(<bang>0, <f-args>)

" Name of the gdb command, defaults to "gdb".
if !exists('termdebugger')
  let termdebugger = 'gdb'
endif

let s:pc_id = 12
let s:break_id = 13
let s:stopped = 1

if &background == 'light'
  hi default debugPC term=reverse ctermbg=lightblue guibg=lightblue
else
  hi default debugPC term=reverse ctermbg=darkblue guibg=darkblue
endif
hi default debugBreakpoint term=reverse ctermbg=red guibg=red

func s:StartDebug(bang, ...)
  " First argument is the command to debug, second core file or process ID.
  call s:StartDebug_internal({'gdb_args': a:000, 'bang': a:bang})
endfunc

func s:StartDebugCommand(bang, ...)
  " First argument is the command to debug, rest are run arguments.
  call s:StartDebug_internal({'gdb_args': [a:1], 'proc_args': a:000[1:], 'bang': a:bang})
endfunc

func s:StartDebug_internal(dict)
  if exists('s:gdbwin')
    echoerr 'Terminal debugger already running'
    return
  endif

  let s:startwin = win_getid(winnr())
  let s:startsigncolumn = &signcolumn

  let s:save_columns = 0
  if exists('g:termdebug_wide')
    if &columns < g:termdebug_wide
      let s:save_columns = &columns
      let &columns = g:termdebug_wide
    endif
    let vertical = 1
  else
    let vertical = 0
  endif

  " Open a terminal window without a job, to run the debugged program
  let s:ptybuf = term_start('NONE', {
	\ 'term_name': 'gdb program',
	\ 'vertical': vertical,
	\ })
  if s:ptybuf == 0
    echoerr 'Failed to open the program terminal window'
    return
  endif
  let pty = job_info(term_getjob(s:ptybuf))['tty_out']
  let s:ptywin = win_getid(winnr())
  if vertical
    " Assuming the source code window will get a signcolumn, use two more
    " columns for that, thus one less for the terminal window.
    exe (&columns / 2 - 1) . "wincmd |"
  endif

  " Create a hidden terminal window to communicate with gdb
  let s:commbuf = term_start('NONE', {
	\ 'term_name': 'gdb communication',
	\ 'out_cb': function('s:CommOutput'),
	\ 'hidden': 1,
	\ })
  if s:commbuf == 0
    echoerr 'Failed to open the communication terminal window'
    exe 'bwipe! ' . s:ptybuf
    return
  endif
  let commpty = job_info(term_getjob(s:commbuf))['tty_out']

  " Open a terminal window to run the debugger.
  " Add -quiet to avoid the intro message causing a hit-enter prompt.
  let gdb_args = get(a:dict, 'gdb_args', [])
  let proc_args = get(a:dict, 'proc_args', [])

  let cmd = [g:termdebugger, '-quiet', '-tty', pty] + gdb_args
  echomsg 'executing "' . join(cmd) . '"'
  let s:gdbbuf = term_start(cmd, {
	\ 'exit_cb': function('s:EndDebug'),
	\ 'term_finish': 'close',
	\ })
  if s:gdbbuf == 0
    echoerr 'Failed to open the gdb terminal window'
    exe 'bwipe! ' . s:ptybuf
    exe 'bwipe! ' . s:commbuf
    return
  endif
  let s:gdbwin = win_getid(winnr())

  " Set arguments to be run
  if len(proc_args)
    call term_sendkeys(s:gdbbuf, 'set args ' . join(proc_args) . "\r")
  endif

  " Connect gdb to the communication pty, using the GDB/MI interface
  call term_sendkeys(s:gdbbuf, 'new-ui mi ' . commpty . "\r")

  " Wait for the response to show up, users may not notice the error and wonder
  " why the debugger doesn't work.
  let try_count = 0
  while 1
    let response = ''
    for lnum in range(1,200)
      if term_getline(s:gdbbuf, lnum) =~ 'new-ui mi '
	let response = term_getline(s:gdbbuf, lnum + 1)
	if response =~ 'Undefined command'
	  echoerr 'Sorry, your gdb is too old, gdb 7.12 is required'
	  exe 'bwipe! ' . s:ptybuf
	  exe 'bwipe! ' . s:commbuf
	  return
	endif
	if response =~ 'New UI allocated'
	  " Success!
	  break
	endif
      endif
    endfor
    if response =~ 'New UI allocated'
      break
    endif
    let try_count += 1
    if try_count > 100
      echoerr 'Cannot check if your gdb works, continuing anyway'
      break
    endif
    sleep 10m
  endwhile

  " Interpret commands while the target is running.  This should usualy only be
  " exec-interrupt, since many commands don't work properly while the target is
  " running.
  call s:SendCommand('-gdb-set mi-async on')

  " Disable pagination, it causes everything to stop at the gdb
  " "Type <return> to continue" prompt.
  call s:SendCommand('-gdb-set pagination off')

  " Sign used to highlight the line where the program has stopped.
  " There can be only one.
  sign define debugPC linehl=debugPC

  " Sign used to indicate a breakpoint.
  " Can be used multiple times.
  sign define debugBreakpoint text=>> texthl=debugBreakpoint

  " Install debugger commands in the text window.
  call win_gotoid(s:startwin)
  call s:InstallCommands()
  call win_gotoid(s:gdbwin)

  " Enable showing a balloon with eval info
  if has("balloon_eval") || has("balloon_eval_term")
    set balloonexpr=TermDebugBalloonExpr()
    if has("balloon_eval")
      set ballooneval
    endif
    if has("balloon_eval_term")
      set balloonevalterm
    endif
  endif

  let s:breakpoints = {}

  augroup TermDebug
    au BufRead * call s:BufRead()
    au BufUnload * call s:BufUnloaded()
  augroup END

  " Run the command if the bang attribute was given
  " and got to the window
  if get(a:dict, 'bang', 0)
    call s:SendCommand('-exec-run')
    call win_gotoid(s:ptywin)
  endif

endfunc

func s:EndDebug(job, status)
  exe 'bwipe! ' . s:ptybuf
  exe 'bwipe! ' . s:commbuf
  unlet s:gdbwin

  let curwinid = win_getid(winnr())

  call win_gotoid(s:startwin)
  let &signcolumn = s:startsigncolumn
  call s:DeleteCommands()

  call win_gotoid(curwinid)
  if s:save_columns > 0
    let &columns = s:save_columns
  endif

  if has("balloon_eval") || has("balloon_eval_term")
    set balloonexpr=
    if has("balloon_eval")
      set noballooneval
    endif
    if has("balloon_eval_term")
      set noballoonevalterm
    endif
  endif

  au! TermDebug
endfunc

" Handle a message received from gdb on the GDB/MI interface.
func s:CommOutput(chan, msg)
  let msgs = split(a:msg, "\r")

  for msg in msgs
    " remove prefixed NL
    if msg[0] == "\n"
      let msg = msg[1:]
    endif
    if msg != ''
      if msg =~ '^\(\*stopped\|\*running\|=thread-selected\)'
	call s:HandleCursor(msg)
      elseif msg =~ '^\^done,bkpt=' || msg =~ '^=breakpoint-created,'
	call s:HandleNewBreakpoint(msg)
      elseif msg =~ '^=breakpoint-deleted,'
	call s:HandleBreakpointDelete(msg)
      elseif msg =~ '^\^done,value='
	call s:HandleEvaluate(msg)
      elseif msg =~ '^\^error,msg='
	call s:HandleError(msg)
      endif
    endif
  endfor
endfunc

" Install commands in the current window to control the debugger.
func s:InstallCommands()
  command Break call s:SetBreakpoint()
  command Clear call s:ClearBreakpoint()
  command Step call s:SendCommand('-exec-step')
  command Over call s:SendCommand('-exec-next')
  command Finish call s:SendCommand('-exec-finish')
  command -nargs=* Run call s:Run(<q-args>)
  command -nargs=* Arguments call s:SendCommand('-exec-arguments ' . <q-args>)
  command Stop call s:SendCommand('-exec-interrupt')
  command Continue call s:SendCommand('-exec-continue')
  command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
  command Gdb call win_gotoid(s:gdbwin)
  command Program call win_gotoid(s:ptywin)
  command Source call s:GotoStartwinOrCreateIt()
  command Winbar call s:InstallWinbar()

  " TODO: can the K mapping be restored?
  nnoremap K :Evaluate<CR>

  if has('menu') && &mouse != ''
    call s:InstallWinbar()

    if !exists('g:termdebug_popup') || g:termdebug_popup != 0
      let s:saved_mousemodel = &mousemodel
      let &mousemodel = 'popup_setpos'
      an 1.200 PopUp.-SEP3-	<Nop>
      an 1.210 PopUp.Set\ breakpoint	:Break<CR>
      an 1.220 PopUp.Clear\ breakpoint	:Clear<CR>
      an 1.230 PopUp.Evaluate		:Evaluate<CR>
    endif
  endif
endfunc

let s:winbar_winids = []

" Install the window toolbar in the current window.
func s:InstallWinbar()
  if has('menu') && &mouse != ''
    nnoremenu WinBar.Step   :Step<CR>
    nnoremenu WinBar.Next   :Over<CR>
    nnoremenu WinBar.Finish :Finish<CR>
    nnoremenu WinBar.Cont   :Continue<CR>
    nnoremenu WinBar.Stop   :Stop<CR>
    nnoremenu WinBar.Eval   :Evaluate<CR>
    call add(s:winbar_winids, win_getid(winnr()))
  endif
endfunc

" Delete installed debugger commands in the current window.
func s:DeleteCommands()
  delcommand Break
  delcommand Clear
  delcommand Step
  delcommand Over
  delcommand Finish
  delcommand Run
  delcommand Arguments
  delcommand Stop
  delcommand Continue
  delcommand Evaluate
  delcommand Gdb
  delcommand Program
  delcommand Source
  delcommand Winbar

  nunmap K

  if has('menu')
    " Remove the WinBar entries from all windows where it was added.
    let curwinid = win_getid(winnr())
    for winid in s:winbar_winids
      if win_gotoid(winid)
	aunmenu WinBar.Step
	aunmenu WinBar.Next
	aunmenu WinBar.Finish
	aunmenu WinBar.Cont
	aunmenu WinBar.Stop
	aunmenu WinBar.Eval
      endif
    endfor
    call win_gotoid(curwinid)
    let s:winbar_winids = []

    if exists('s:saved_mousemodel')
      let &mousemodel = s:saved_mousemodel
      unlet s:saved_mousemodel
      aunmenu PopUp.-SEP3-
      aunmenu PopUp.Set\ breakpoint
      aunmenu PopUp.Clear\ breakpoint
      aunmenu PopUp.Evaluate
    endif
  endif

  exe 'sign unplace ' . s:pc_id
  for key in keys(s:breakpoints)
    exe 'sign unplace ' . (s:break_id + key)
  endfor
  sign undefine debugPC
  sign undefine debugBreakpoint
  unlet s:breakpoints
endfunc

" :Break - Set a breakpoint at the cursor position.
func s:SetBreakpoint()
  " Setting a breakpoint may not work while the program is running.
  " Interrupt to make it work.
  let do_continue = 0
  if !s:stopped
    let do_continue = 1
    call s:SendCommand('-exec-interrupt')
    sleep 10m
  endif
  call s:SendCommand('-break-insert --source '
	\ . fnameescape(expand('%:p')) . ' --line ' . line('.'))
  if do_continue
    call s:SendCommand('-exec-continue')
  endif
endfunc

" :Clear - Delete a breakpoint at the cursor position.
func s:ClearBreakpoint()
  let fname = fnameescape(expand('%:p'))
  let lnum = line('.')
  for [key, val] in items(s:breakpoints)
    if val['fname'] == fname && val['lnum'] == lnum
      call term_sendkeys(s:commbuf, '-break-delete ' . key . "\r")
      " Assume this always wors, the reply is simply "^done".
      exe 'sign unplace ' . (s:break_id + key)
      unlet s:breakpoints[key]
      break
    endif
  endfor
endfunc

" :Next, :Continue, etc - send a command to gdb
func s:SendCommand(cmd)
  call term_sendkeys(s:commbuf, a:cmd . "\r")
endfunc

func s:Run(args)
  if a:args != ''
    call s:SendCommand('-exec-arguments ' . a:args)
  endif
  call s:SendCommand('-exec-run')
endfunc

func s:SendEval(expr)
  call s:SendCommand('-data-evaluate-expression "' . a:expr . '"')
  let s:evalexpr = a:expr
endfunc

" :Evaluate - evaluate what is under the cursor
func s:Evaluate(range, arg)
  if a:arg != ''
    let expr = a:arg
  elseif a:range == 2
    let pos = getcurpos()
    let reg = getreg('v', 1, 1)
    let regt = getregtype('v')
    normal! gv"vy
    let expr = @v
    call setpos('.', pos)
    call setreg('v', reg, regt)
  else
    let expr = expand('<cexpr>')
  endif
  let s:ignoreEvalError = 0
  call s:SendEval(expr)
endfunc

let s:ignoreEvalError = 0
let s:evalFromBalloonExpr = 0

" Handle the result of data-evaluate-expression
func s:HandleEvaluate(msg)
  let value = substitute(a:msg, '.*value="\(.*\)"', '\1', '')
  let value = substitute(value, '\\"', '"', 'g')
  if s:evalFromBalloonExpr
    if s:evalFromBalloonExprResult == ''
      let s:evalFromBalloonExprResult = s:evalexpr . ': ' . value
    else
      let s:evalFromBalloonExprResult .= ' = ' . value
    endif
    call balloon_show(s:evalFromBalloonExprResult)
  else
    echomsg '"' . s:evalexpr . '": ' . value
  endif

  if s:evalexpr[0] != '*' && value =~ '^0x' && value != '0x0' && value !~ '"$'
    " Looks like a pointer, also display what it points to.
    let s:ignoreEvalError = 1
    call s:SendEval('*' . s:evalexpr)
  else
    let s:evalFromBalloonExpr = 0
  endif
endfunc

" Show a balloon with information of the variable under the mouse pointer,
" if there is any.
func TermDebugBalloonExpr()
  if v:beval_winid != s:startwin
    return
  endif
  let s:evalFromBalloonExpr = 1
  let s:evalFromBalloonExprResult = ''
  let s:ignoreEvalError = 1
  call s:SendEval(v:beval_text)
  return ''
endfunc

" Handle an error.
func s:HandleError(msg)
  if s:ignoreEvalError
    " Result of s:SendEval() failed, ignore.
    let s:ignoreEvalError = 0
    let s:evalFromBalloonExpr = 0
    return
  endif
  echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
endfunc

func s:GotoStartwinOrCreateIt()
  if !win_gotoid(s:startwin)
    new
    let s:startwin = win_getid(winnr())
    call s:InstallWinbar()
  endif
endfunc

" Handle stopping and running message from gdb.
" Will update the sign that shows the current position.
func s:HandleCursor(msg)
  let wid = win_getid(winnr())

  if a:msg =~ '^\*stopped'
    let s:stopped = 1
  elseif a:msg =~ '^\*running'
    let s:stopped = 0
  endif

  call s:GotoStartwinOrCreateIt()

  let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
  if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
    let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
    if lnum =~ '^[0-9]*$'
      if expand('%:p') != fnamemodify(fname, ':p')
	if &modified
	  " TODO: find existing window
	  exe 'split ' . fnameescape(fname)
	  let s:startwin = win_getid(winnr())
	  call s:InstallWinbar()
	else
	  exe 'edit ' . fnameescape(fname)
	endif
      endif
      exe lnum
      exe 'sign unplace ' . s:pc_id
      exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
      setlocal signcolumn=yes
    endif
  else
    exe 'sign unplace ' . s:pc_id
  endif

  call win_gotoid(wid)
endfunc

" Handle setting a breakpoint
" Will update the sign that shows the breakpoint
func s:HandleNewBreakpoint(msg)
  let nr = substitute(a:msg, '.*number="\([0-9]\)*\".*', '\1', '') + 0
  if nr == 0
    return
  endif

  if has_key(s:breakpoints, nr)
    let entry = s:breakpoints[nr]
  else
    let entry = {}
    let s:breakpoints[nr] = entry
  endif

  let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
  let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
  let entry['fname'] = fname
  let entry['lnum'] = lnum

  if bufloaded(fname)
    call s:PlaceSign(nr, entry)
  endif
endfunc

func s:PlaceSign(nr, entry)
  exe 'sign place ' . (s:break_id + a:nr) . ' line=' . a:entry['lnum'] . ' name=debugBreakpoint file=' . a:entry['fname']
  let a:entry['placed'] = 1
endfunc

" Handle deleting a breakpoint
" Will remove the sign that shows the breakpoint
func s:HandleBreakpointDelete(msg)
  let nr = substitute(a:msg, '.*id="\([0-9]*\)\".*', '\1', '') + 0
  if nr == 0
    return
  endif
  if has_key(s:breakpoints, nr)
    let entry = s:breakpoints[nr]
    if has_key(entry, 'placed')
      exe 'sign unplace ' . (s:break_id + nr)
      unlet entry['placed']
    endif
    unlet s:breakpoints[nr]
  endif
endfunc

" Handle a BufRead autocommand event: place any signs.
func s:BufRead()
  let fname = expand('<afile>:p')
  for [nr, entry] in items(s:breakpoints)
    if entry['fname'] == fname
      call s:PlaceSign(nr, entry)
    endif
  endfor
endfunc

" Handle a BufUnloaded autocommand event: unplace any signs.
func s:BufUnloaded()
  let fname = expand('<afile>:p')
  for [nr, entry] in items(s:breakpoints)
    if entry['fname'] == fname
      let entry['placed'] = 0
    endif
  endfor
endfunc

PK�j�Z�oR�*y*y.vim80/pack/dist/opt/matchit/plugin/matchit.vimnu�[���"  matchit.vim: (global plugin) Extended "%" matching
"  Last Change: 2017 Sep 15
"  Maintainer:  Benji Fisher PhD   <benji@member.AMS.org>
"  Version:     1.13.3, for Vim 6.3+
"		Fix from Fernando Torres included.
"		Improvement from Ken Takata included.
"  URL:		http://www.vim.org/script.php?script_id=39

" Documentation:
"  The documentation is in a separate file, matchit.txt .

" Credits:
"  Vim editor by Bram Moolenaar (Thanks, Bram!)
"  Original script and design by Raul Segura Acevedo
"  Support for comments by Douglas Potts
"  Support for back references and other improvements by Benji Fisher
"  Support for many languages by Johannes Zellner
"  Suggestions for improvement, bug reports, and support for additional
"  languages by Jordi-Albert Batalla, Neil Bird, Servatius Brandt, Mark
"  Collett, Stephen Wall, Dany St-Amant, Yuheng Xie, and Johannes Zellner.

" Debugging:
"  If you'd like to try the built-in debugging commands...
"   :MatchDebug      to activate debugging for the current buffer
"  This saves the values of several key script variables as buffer-local
"  variables.  See the MatchDebug() function, below, for details.

" TODO:  I should think about multi-line patterns for b:match_words.
"   This would require an option:  how many lines to scan (default 1).
"   This would be useful for Python, maybe also for *ML.
" TODO:  Maybe I should add a menu so that people will actually use some of
"   the features that I have implemented.
" TODO:  Eliminate the MultiMatch function.  Add yet another argument to
"   Match_wrapper() instead.
" TODO:  Allow :let b:match_words = '\(\(foo\)\(bar\)\):\3\2:end\1'
" TODO:  Make backrefs safer by using '\V' (very no-magic).
" TODO:  Add a level of indirection, so that custom % scripts can use my
"   work but extend it.

" allow user to prevent loading
" and prevent duplicate loading
if exists("loaded_matchit") || &cp
  finish
endif
let loaded_matchit = 1
let s:last_mps = ""
let s:last_words = ":"
let s:patBR = ""

let s:save_cpo = &cpo
set cpo&vim

nnoremap <silent> %  :<C-U>call <SID>Match_wrapper('',1,'n') <CR>
nnoremap <silent> g% :<C-U>call <SID>Match_wrapper('',0,'n') <CR>
vnoremap <silent> %  :<C-U>call <SID>Match_wrapper('',1,'v') <CR>m'gv``
vnoremap <silent> g% :<C-U>call <SID>Match_wrapper('',0,'v') <CR>m'gv``
onoremap <silent> %  v:<C-U>call <SID>Match_wrapper('',1,'o') <CR>
onoremap <silent> g% v:<C-U>call <SID>Match_wrapper('',0,'o') <CR>

" Analogues of [{ and ]} using matching patterns:
nnoremap <silent> [% :<C-U>call <SID>MultiMatch("bW", "n") <CR>
nnoremap <silent> ]% :<C-U>call <SID>MultiMatch("W",  "n") <CR>
vmap [% <Esc>[%m'gv``
vmap ]% <Esc>]%m'gv``
" vnoremap <silent> [% :<C-U>call <SID>MultiMatch("bW", "v") <CR>m'gv``
" vnoremap <silent> ]% :<C-U>call <SID>MultiMatch("W",  "v") <CR>m'gv``
onoremap <silent> [% v:<C-U>call <SID>MultiMatch("bW", "o") <CR>
onoremap <silent> ]% v:<C-U>call <SID>MultiMatch("W",  "o") <CR>

" text object:
vmap a% <Esc>[%v]%

" Auto-complete mappings:  (not yet "ready for prime time")
" TODO Read :help write-plugin for the "right" way to let the user
" specify a key binding.
"   let g:match_auto = '<C-]>'
"   let g:match_autoCR = '<C-CR>'
" if exists("g:match_auto")
"   execute "inoremap " . g:match_auto . ' x<Esc>"=<SID>Autocomplete()<CR>Pls'
" endif
" if exists("g:match_autoCR")
"   execute "inoremap " . g:match_autoCR . ' <CR><C-R>=<SID>Autocomplete()<CR>'
" endif
" if exists("g:match_gthhoh")
"   execute "inoremap " . g:match_gthhoh . ' <C-O>:call <SID>Gthhoh()<CR>'
" endif " gthhoh = "Get the heck out of here!"

let s:notslash = '\\\@<!\%(\\\\\)*'

function! s:Match_wrapper(word, forward, mode) range
  " In s:CleanUp(), :execute "set" restore_options .
  let restore_options = ""
  if exists("b:match_ignorecase") && b:match_ignorecase != &ic
    let restore_options .= (&ic ? " " : " no") . "ignorecase"
    let &ignorecase = b:match_ignorecase
  endif
  if &ve != ''
    let restore_options = " ve=" . &ve . restore_options
    set ve=
  endif
  " If this function was called from Visual mode, make sure that the cursor
  " is at the correct end of the Visual range:
  if a:mode == "v"
    execute "normal! gv\<Esc>"
  endif
  " In s:CleanUp(), we may need to check whether the cursor moved forward.
  let startline = line(".")
  let startcol = col(".")
  " Use default behavior if called with a count.
  if v:count
    exe "normal! " . v:count . "%"
    return s:CleanUp(restore_options, a:mode, startline, startcol)
  end

  " First step:  if not already done, set the script variables
  "   s:do_BR	flag for whether there are backrefs
  "   s:pat	parsed version of b:match_words
  "   s:all	regexp based on s:pat and the default groups
  "
  if !exists("b:match_words") || b:match_words == ""
    let match_words = ""
    " Allow b:match_words = "GetVimMatchWords()" .
  elseif b:match_words =~ ":"
    let match_words = b:match_words
  else
    execute "let match_words =" b:match_words
  endif
" Thanks to Preben "Peppe" Guldberg and Bram Moolenaar for this suggestion!
  if (match_words != s:last_words) || (&mps != s:last_mps)
      \ || exists("b:match_debug")
    let s:last_mps = &mps
    " The next several lines were here before
    " BF started messing with this script.
    " quote the special chars in 'matchpairs', replace [,:] with \| and then
    " append the builtin pairs (/*, */, #if, #ifdef, #else, #elif, #endif)
    " let default = substitute(escape(&mps, '[$^.*~\\/?]'), '[,:]\+',
    "  \ '\\|', 'g').'\|\/\*\|\*\/\|#if\>\|#ifdef\>\|#else\>\|#elif\>\|#endif\>'
    let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
      \ '\/\*:\*\/,#\s*if\%(def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
    " s:all = pattern with all the keywords
    let match_words = match_words . (strlen(match_words) ? "," : "") . default
    let s:last_words = match_words
    if match_words !~ s:notslash . '\\\d'
      let s:do_BR = 0
      let s:pat = match_words
    else
      let s:do_BR = 1
      let s:pat = s:ParseWords(match_words)
    endif
    let s:all = substitute(s:pat, s:notslash . '\zs[,:]\+', '\\|', 'g')
    let s:all = '\%(' . s:all . '\)'
    " let s:all = '\%(' . substitute(s:all, '\\\ze[,:]', '', 'g') . '\)'
    if exists("b:match_debug")
      let b:match_pat = s:pat
    endif
    " Reconstruct the version with unresolved backrefs.
    let s:patBR = substitute(match_words.',',
      \ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
    let s:patBR = substitute(s:patBR, s:notslash.'\zs:\{2,}', ':', 'g')
  endif

  " Second step:  set the following local variables:
  "     matchline = line on which the cursor started
  "     curcol    = number of characters before match
  "     prefix    = regexp for start of line to start of match
  "     suffix    = regexp for end of match to end of line
  " Require match to end on or after the cursor and prefer it to
  " start on or before the cursor.
  let matchline = getline(startline)
  if a:word != ''
    " word given
    if a:word !~ s:all
      echohl WarningMsg|echo 'Missing rule for word:"'.a:word.'"'|echohl NONE
      return s:CleanUp(restore_options, a:mode, startline, startcol)
    endif
    let matchline = a:word
    let curcol = 0
    let prefix = '^\%('
    let suffix = '\)$'
  " Now the case when "word" is not given
  else	" Find the match that ends on or after the cursor and set curcol.
    let regexp = s:Wholematch(matchline, s:all, startcol-1)
    let curcol = match(matchline, regexp)
    " If there is no match, give up.
    if curcol == -1
      return s:CleanUp(restore_options, a:mode, startline, startcol)
    endif
    let endcol = matchend(matchline, regexp)
    let suf = strlen(matchline) - endcol
    let prefix = (curcol ? '^.*\%'  . (curcol + 1) . 'c\%(' : '^\%(')
    let suffix = (suf ? '\)\%' . (endcol + 1) . 'c.*$'  : '\)$')
  endif
  if exists("b:match_debug")
    let b:match_match = matchstr(matchline, regexp)
    let b:match_col = curcol+1
  endif

  " Third step:  Find the group and single word that match, and the original
  " (backref) versions of these.  Then, resolve the backrefs.
  " Set the following local variable:
  " group = colon-separated list of patterns, one of which matches
  "       = ini:mid:fin or ini:fin
  "
  " Now, set group and groupBR to the matching group: 'if:endif' or
  " 'while:endwhile' or whatever.  A bit of a kluge:  s:Choose() returns
  " group . "," . groupBR, and we pick it apart.
  let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, s:patBR)
  let i = matchend(group, s:notslash . ",")
  let groupBR = strpart(group, i)
  let group = strpart(group, 0, i-1)
  " Now, matchline =~ prefix . substitute(group,':','\|','g') . suffix
  if s:do_BR " Do the hard part:  resolve those backrefs!
    let group = s:InsertRefs(groupBR, prefix, group, suffix, matchline)
  endif
  if exists("b:match_debug")
    let b:match_wholeBR = groupBR
    let i = matchend(groupBR, s:notslash . ":")
    let b:match_iniBR = strpart(groupBR, 0, i-1)
  endif

  " Fourth step:  Set the arguments for searchpair().
  let i = matchend(group, s:notslash . ":")
  let j = matchend(group, '.*' . s:notslash . ":")
  let ini = strpart(group, 0, i-1)
  let mid = substitute(strpart(group, i,j-i-1), s:notslash.'\zs:', '\\|', 'g')
  let fin = strpart(group, j)
  "Un-escape the remaining , and : characters.
  let ini = substitute(ini, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
  let mid = substitute(mid, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
  let fin = substitute(fin, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
  " searchpair() requires that these patterns avoid \(\) groups.
  let ini = substitute(ini, s:notslash . '\zs\\(', '\\%(', 'g')
  let mid = substitute(mid, s:notslash . '\zs\\(', '\\%(', 'g')
  let fin = substitute(fin, s:notslash . '\zs\\(', '\\%(', 'g')
  " Set mid.  This is optimized for readability, not micro-efficiency!
  if a:forward && matchline =~ prefix . fin . suffix
    \ || !a:forward && matchline =~ prefix . ini . suffix
    let mid = ""
  endif
  " Set flag.  This is optimized for readability, not micro-efficiency!
  if a:forward && matchline =~ prefix . fin . suffix
    \ || !a:forward && matchline !~ prefix . ini . suffix
    let flag = "bW"
  else
    let flag = "W"
  endif
  " Set skip.
  if exists("b:match_skip")
    let skip = b:match_skip
  elseif exists("b:match_comment") " backwards compatibility and testing!
    let skip = "r:" . b:match_comment
  else
    let skip = 's:comment\|string'
  endif
  let skip = s:ParseSkip(skip)
  if exists("b:match_debug")
    let b:match_ini = ini
    let b:match_tail = (strlen(mid) ? mid.'\|' : '') . fin
  endif

  " Fifth step:  actually start moving the cursor and call searchpair().
  " Later, :execute restore_cursor to get to the original screen.
  let restore_cursor = virtcol(".") . "|"
  normal! g0
  let restore_cursor = line(".") . "G" .  virtcol(".") . "|zs" . restore_cursor
  normal! H
  let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor
  execute restore_cursor
  call cursor(0, curcol + 1)
  " normal! 0
  " if curcol
  "   execute "normal!" . curcol . "l"
  " endif
  if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
    let skip = "0"
  else
    execute "if " . skip . "| let skip = '0' | endif"
  endif
  let sp_return = searchpair(ini, mid, fin, flag, skip)
  let final_position = "call cursor(" . line(".") . "," . col(".") . ")"
  " Restore cursor position and original screen.
  execute restore_cursor
  normal! m'
  if sp_return > 0
    execute final_position
  endif
  return s:CleanUp(restore_options, a:mode, startline, startcol, mid.'\|'.fin)
endfun

" Restore options and do some special handling for Operator-pending mode.
" The optional argument is the tail of the matching group.
fun! s:CleanUp(options, mode, startline, startcol, ...)
  if strlen(a:options)
    execute "set" a:options
  endif
  " Open folds, if appropriate.
  if a:mode != "o"
    if &foldopen =~ "percent"
      normal! zv
    endif
    " In Operator-pending mode, we want to include the whole match
    " (for example, d%).
    " This is only a problem if we end up moving in the forward direction.
  elseif (a:startline < line(".")) ||
	\ (a:startline == line(".") && a:startcol < col("."))
    if a:0
      " Check whether the match is a single character.  If not, move to the
      " end of the match.
      let matchline = getline(".")
      let currcol = col(".")
      let regexp = s:Wholematch(matchline, a:1, currcol-1)
      let endcol = matchend(matchline, regexp)
      if endcol > currcol  " This is NOT off by one!
	call cursor(0, endcol)
      endif
    endif " a:0
  endif " a:mode != "o" && etc.
  return 0
endfun

" Example (simplified HTML patterns):  if
"   a:groupBR	= '<\(\k\+\)>:</\1>'
"   a:prefix	= '^.\{3}\('
"   a:group	= '<\(\k\+\)>:</\(\k\+\)>'
"   a:suffix	= '\).\{2}$'
"   a:matchline	=  "123<tag>12" or "123</tag>12"
" then extract "tag" from a:matchline and return "<tag>:</tag>" .
fun! s:InsertRefs(groupBR, prefix, group, suffix, matchline)
  if a:matchline !~ a:prefix .
    \ substitute(a:group, s:notslash . '\zs:', '\\|', 'g') . a:suffix
    return a:group
  endif
  let i = matchend(a:groupBR, s:notslash . ':')
  let ini = strpart(a:groupBR, 0, i-1)
  let tailBR = strpart(a:groupBR, i)
  let word = s:Choose(a:group, a:matchline, ":", "", a:prefix, a:suffix,
    \ a:groupBR)
  let i = matchend(word, s:notslash . ":")
  let wordBR = strpart(word, i)
  let word = strpart(word, 0, i-1)
  " Now, a:matchline =~ a:prefix . word . a:suffix
  if wordBR != ini
    let table = s:Resolve(ini, wordBR, "table")
  else
    " let table = "----------"
    let table = ""
    let d = 0
    while d < 10
      if tailBR =~ s:notslash . '\\' . d
	" let table[d] = d
	let table = table . d
      else
	let table = table . "-"
      endif
      let d = d + 1
    endwhile
  endif
  let d = 9
  while d
    if table[d] != "-"
      let backref = substitute(a:matchline, a:prefix.word.a:suffix,
	\ '\'.table[d], "")
	" Are there any other characters that should be escaped?
      let backref = escape(backref, '*,:')
      execute s:Ref(ini, d, "start", "len")
      let ini = strpart(ini, 0, start) . backref . strpart(ini, start+len)
      let tailBR = substitute(tailBR, s:notslash . '\zs\\' . d,
	\ escape(backref, '\\&'), 'g')
    endif
    let d = d-1
  endwhile
  if exists("b:match_debug")
    if s:do_BR
      let b:match_table = table
      let b:match_word = word
    else
      let b:match_table = ""
      let b:match_word = ""
    endif
  endif
  return ini . ":" . tailBR
endfun

" Input a comma-separated list of groups with backrefs, such as
"   a:groups = '\(foo\):end\1,\(bar\):end\1'
" and return a comma-separated list of groups with backrefs replaced:
"   return '\(foo\):end\(foo\),\(bar\):end\(bar\)'
fun! s:ParseWords(groups)
  let groups = substitute(a:groups.",", s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
  let groups = substitute(groups, s:notslash . '\zs:\{2,}', ':', 'g')
  let parsed = ""
  while groups =~ '[^,:]'
    let i = matchend(groups, s:notslash . ':')
    let j = matchend(groups, s:notslash . ',')
    let ini = strpart(groups, 0, i-1)
    let tail = strpart(groups, i, j-i-1) . ":"
    let groups = strpart(groups, j)
    let parsed = parsed . ini
    let i = matchend(tail, s:notslash . ':')
    while i != -1
      " In 'if:else:endif', ini='if' and word='else' and then word='endif'.
      let word = strpart(tail, 0, i-1)
      let tail = strpart(tail, i)
      let i = matchend(tail, s:notslash . ':')
      let parsed = parsed . ":" . s:Resolve(ini, word, "word")
    endwhile " Now, tail has been used up.
    let parsed = parsed . ","
  endwhile " groups =~ '[^,:]'
  let parsed = substitute(parsed, ',$', '', '')
  return parsed
endfun

" TODO I think this can be simplified and/or made more efficient.
" TODO What should I do if a:start is out of range?
" Return a regexp that matches all of a:string, such that
" matchstr(a:string, regexp) represents the match for a:pat that starts
" as close to a:start as possible, before being preferred to after, and
" ends after a:start .
" Usage:
" let regexp = s:Wholematch(getline("."), 'foo\|bar', col(".")-1)
" let i      = match(getline("."), regexp)
" let j      = matchend(getline("."), regexp)
" let match  = matchstr(getline("."), regexp)
fun! s:Wholematch(string, pat, start)
  let group = '\%(' . a:pat . '\)'
  let prefix = (a:start ? '\(^.*\%<' . (a:start + 2) . 'c\)\zs' : '^')
  let len = strlen(a:string)
  let suffix = (a:start+1 < len ? '\(\%>'.(a:start+1).'c.*$\)\@=' : '$')
  if a:string !~ prefix . group . suffix
    let prefix = ''
  endif
  return prefix . group . suffix
endfun

" No extra arguments:  s:Ref(string, d) will
" find the d'th occurrence of '\(' and return it, along with everything up
" to and including the matching '\)'.
" One argument:  s:Ref(string, d, "start") returns the index of the start
" of the d'th '\(' and any other argument returns the length of the group.
" Two arguments:  s:Ref(string, d, "foo", "bar") returns a string to be
" executed, having the effect of
"   :let foo = s:Ref(string, d, "start")
"   :let bar = s:Ref(string, d, "len")
fun! s:Ref(string, d, ...)
  let len = strlen(a:string)
  if a:d == 0
    let start = 0
  else
    let cnt = a:d
    let match = a:string
    while cnt
      let cnt = cnt - 1
      let index = matchend(match, s:notslash . '\\(')
      if index == -1
	return ""
      endif
      let match = strpart(match, index)
    endwhile
    let start = len - strlen(match)
    if a:0 == 1 && a:1 == "start"
      return start - 2
    endif
    let cnt = 1
    while cnt
      let index = matchend(match, s:notslash . '\\(\|\\)') - 1
      if index == -2
	return ""
      endif
      " Increment if an open, decrement if a ')':
      let cnt = cnt + (match[index]=="(" ? 1 : -1)  " ')'
      " let cnt = stridx('0(', match[index]) + cnt
      let match = strpart(match, index+1)
    endwhile
    let start = start - 2
    let len = len - start - strlen(match)
  endif
  if a:0 == 1
    return len
  elseif a:0 == 2
    return "let " . a:1 . "=" . start . "| let " . a:2 . "=" . len
  else
    return strpart(a:string, start, len)
  endif
endfun

" Count the number of disjoint copies of pattern in string.
" If the pattern is a literal string and contains no '0' or '1' characters
" then s:Count(string, pattern, '0', '1') should be faster than
" s:Count(string, pattern).
fun! s:Count(string, pattern, ...)
  let pat = escape(a:pattern, '\\')
  if a:0 > 1
    let foo = substitute(a:string, '[^'.a:pattern.']', "a:1", "g")
    let foo = substitute(a:string, pat, a:2, "g")
    let foo = substitute(foo, '[^' . a:2 . ']', "", "g")
    return strlen(foo)
  endif
  let result = 0
  let foo = a:string
  let index = matchend(foo, pat)
  while index != -1
    let result = result + 1
    let foo = strpart(foo, index)
    let index = matchend(foo, pat)
  endwhile
  return result
endfun

" s:Resolve('\(a\)\(b\)', '\(c\)\2\1\1\2') should return table.word, where
" word = '\(c\)\(b\)\(a\)\3\2' and table = '-32-------'.  That is, the first
" '\1' in target is replaced by '\(a\)' in word, table[1] = 3, and this
" indicates that all other instances of '\1' in target are to be replaced
" by '\3'.  The hard part is dealing with nesting...
" Note that ":" is an illegal character for source and target,
" unless it is preceded by "\".
fun! s:Resolve(source, target, output)
  let word = a:target
  let i = matchend(word, s:notslash . '\\\d') - 1
  let table = "----------"
  while i != -2 " There are back references to be replaced.
    let d = word[i]
    let backref = s:Ref(a:source, d)
    " The idea is to replace '\d' with backref.  Before we do this,
    " replace any \(\) groups in backref with :1, :2, ... if they
    " correspond to the first, second, ... group already inserted
    " into backref.  Later, replace :1 with \1 and so on.  The group
    " number w+b within backref corresponds to the group number
    " s within a:source.
    " w = number of '\(' in word before the current one
    let w = s:Count(
    \ substitute(strpart(word, 0, i-1), '\\\\', '', 'g'), '\(', '1')
    let b = 1 " number of the current '\(' in backref
    let s = d " number of the current '\(' in a:source
    while b <= s:Count(substitute(backref, '\\\\', '', 'g'), '\(', '1')
    \ && s < 10
      if table[s] == "-"
	if w + b < 10
	  " let table[s] = w + b
	  let table = strpart(table, 0, s) . (w+b) . strpart(table, s+1)
	endif
	let b = b + 1
	let s = s + 1
      else
	execute s:Ref(backref, b, "start", "len")
	let ref = strpart(backref, start, len)
	let backref = strpart(backref, 0, start) . ":". table[s]
	\ . strpart(backref, start+len)
	let s = s + s:Count(substitute(ref, '\\\\', '', 'g'), '\(', '1')
      endif
    endwhile
    let word = strpart(word, 0, i-1) . backref . strpart(word, i+1)
    let i = matchend(word, s:notslash . '\\\d') - 1
  endwhile
  let word = substitute(word, s:notslash . '\zs:', '\\', 'g')
  if a:output == "table"
    return table
  elseif a:output == "word"
    return word
  else
    return table . word
  endif
endfun

" Assume a:comma = ",".  Then the format for a:patterns and a:1 is
"   a:patterns = "<pat1>,<pat2>,..."
"   a:1 = "<alt1>,<alt2>,..."
" If <patn> is the first pattern that matches a:string then return <patn>
" if no optional arguments are given; return <patn>,<altn> if a:1 is given.
fun! s:Choose(patterns, string, comma, branch, prefix, suffix, ...)
  let tail = (a:patterns =~ a:comma."$" ? a:patterns : a:patterns . a:comma)
  let i = matchend(tail, s:notslash . a:comma)
  if a:0
    let alttail = (a:1 =~ a:comma."$" ? a:1 : a:1 . a:comma)
    let j = matchend(alttail, s:notslash . a:comma)
  endif
  let current = strpart(tail, 0, i-1)
  if a:branch == ""
    let currpat = current
  else
    let currpat = substitute(current, s:notslash . a:branch, '\\|', 'g')
  endif
  while a:string !~ a:prefix . currpat . a:suffix
    let tail = strpart(tail, i)
    let i = matchend(tail, s:notslash . a:comma)
    if i == -1
      return -1
    endif
    let current = strpart(tail, 0, i-1)
    if a:branch == ""
      let currpat = current
    else
      let currpat = substitute(current, s:notslash . a:branch, '\\|', 'g')
    endif
    if a:0
      let alttail = strpart(alttail, j)
      let j = matchend(alttail, s:notslash . a:comma)
    endif
  endwhile
  if a:0
    let current = current . a:comma . strpart(alttail, 0, j-1)
  endif
  return current
endfun

" Call this function to turn on debugging information.  Every time the main
" script is run, buffer variables will be saved.  These can be used directly
" or viewed using the menu items below.
if !exists(":MatchDebug")
  command! -nargs=0 MatchDebug call s:Match_debug()
endif

fun! s:Match_debug()
  let b:match_debug = 1	" Save debugging information.
  " pat = all of b:match_words with backrefs parsed
  amenu &Matchit.&pat	:echo b:match_pat<CR>
  " match = bit of text that is recognized as a match
  amenu &Matchit.&match	:echo b:match_match<CR>
  " curcol = cursor column of the start of the matching text
  amenu &Matchit.&curcol	:echo b:match_col<CR>
  " wholeBR = matching group, original version
  amenu &Matchit.wh&oleBR	:echo b:match_wholeBR<CR>
  " iniBR = 'if' piece, original version
  amenu &Matchit.ini&BR	:echo b:match_iniBR<CR>
  " ini = 'if' piece, with all backrefs resolved from match
  amenu &Matchit.&ini	:echo b:match_ini<CR>
  " tail = 'else\|endif' piece, with all backrefs resolved from match
  amenu &Matchit.&tail	:echo b:match_tail<CR>
  " fin = 'endif' piece, with all backrefs resolved from match
  amenu &Matchit.&word	:echo b:match_word<CR>
  " '\'.d in ini refers to the same thing as '\'.table[d] in word.
  amenu &Matchit.t&able	:echo '0:' . b:match_table . ':9'<CR>
endfun

" Jump to the nearest unmatched "(" or "if" or "<tag>" if a:spflag == "bW"
" or the nearest unmatched "</tag>" or "endif" or ")" if a:spflag == "W".
" Return a "mark" for the original position, so that
"   let m = MultiMatch("bW", "n") ... execute m
" will return to the original position.  If there is a problem, do not
" move the cursor and return "", unless a count is given, in which case
" go up or down as many levels as possible and again return "".
" TODO This relies on the same patterns as % matching.  It might be a good
" idea to give it its own matching patterns.
fun! s:MultiMatch(spflag, mode)
  if !exists("b:match_words") || b:match_words == ""
    return ""
  end
  let restore_options = ""
  if exists("b:match_ignorecase") && b:match_ignorecase != &ic
    let restore_options .= (&ic ? " " : " no") . "ignorecase"
    let &ignorecase = b:match_ignorecase
  endif
  let startline = line(".")
  let startcol = col(".")

  " First step:  if not already done, set the script variables
  "   s:do_BR	flag for whether there are backrefs
  "   s:pat	parsed version of b:match_words
  "   s:all	regexp based on s:pat and the default groups
  " This part is copied and slightly modified from s:Match_wrapper().
  let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
    \ '\/\*:\*\/,#\s*if\%(def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
  " Allow b:match_words = "GetVimMatchWords()" .
  if b:match_words =~ ":"
    let match_words = b:match_words
  else
    execute "let match_words =" b:match_words
  endif
  if (match_words != s:last_words) || (&mps != s:last_mps) ||
    \ exists("b:match_debug")
    let s:last_words = match_words
    let s:last_mps = &mps
    let match_words = match_words . (strlen(match_words) ? "," : "") . default
    if match_words !~ s:notslash . '\\\d'
      let s:do_BR = 0
      let s:pat = match_words
    else
      let s:do_BR = 1
      let s:pat = s:ParseWords(match_words)
    endif
    let s:all = '\%(' . substitute(s:pat . (strlen(s:pat) ? "," : "") . default,
	\ '[,:]\+', '\\|', 'g') . '\)'
    if exists("b:match_debug")
      let b:match_pat = s:pat
    endif
  endif

  " Second step:  figure out the patterns for searchpair()
  " and save the screen, cursor position, and 'ignorecase'.
  " - TODO:  A lot of this is copied from s:Match_wrapper().
  " - maybe even more functionality should be split off
  " - into separate functions!
  let cdefault = (s:pat =~ '[^,]$' ? "," : "") . default
  let open =  substitute(s:pat . cdefault,
	\ s:notslash . '\zs:.\{-}' . s:notslash . ',', '\\),\\(', 'g')
  let open =  '\(' . substitute(open, s:notslash . '\zs:.*$', '\\)', '')
  let close = substitute(s:pat . cdefault,
	\ s:notslash . '\zs,.\{-}' . s:notslash . ':', '\\),\\(', 'g')
  let close = substitute(close, '^.\{-}' . s:notslash . ':', '\\(', '') . '\)'
  if exists("b:match_skip")
    let skip = b:match_skip
  elseif exists("b:match_comment") " backwards compatibility and testing!
    let skip = "r:" . b:match_comment
  else
    let skip = 's:comment\|string'
  endif
  let skip = s:ParseSkip(skip)
  " save v:count1 variable, might be reset from the restore_cursor command
  let level = v:count1
  let restore_cursor = virtcol(".") . "|"
  normal! g0
  let restore_cursor = line(".") . "G" .  virtcol(".") . "|zs" . restore_cursor
  normal! H
  let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor
  execute restore_cursor

  " Third step: call searchpair().
  " Replace '\('--but not '\\('--with '\%(' and ',' with '\|'.
  let openpat =  substitute(open, '\(\\\@<!\(\\\\\)*\)\@<=\\(', '\\%(', 'g')
  let openpat = substitute(openpat, ',', '\\|', 'g')
  let closepat = substitute(close, '\(\\\@<!\(\\\\\)*\)\@<=\\(', '\\%(', 'g')
  let closepat = substitute(closepat, ',', '\\|', 'g')
  if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
    let skip = '0'
  else
    execute "if " . skip . "| let skip = '0' | endif"
  endif
  mark '
  while level
    if searchpair(openpat, '', closepat, a:spflag, skip) < 1
      call s:CleanUp(restore_options, a:mode, startline, startcol)
      return ""
    endif
    let level = level - 1
  endwhile

  " Restore options and return a string to restore the original position.
  call s:CleanUp(restore_options, a:mode, startline, startcol)
  return restore_cursor
endfun

" Search backwards for "if" or "while" or "<tag>" or ...
" and return "endif" or "endwhile" or "</tag>" or ... .
" For now, this uses b:match_words and the same script variables
" as s:Match_wrapper() .  Later, it may get its own patterns,
" either from a buffer variable or passed as arguments.
" fun! s:Autocomplete()
"   echo "autocomplete not yet implemented :-("
"   if !exists("b:match_words") || b:match_words == ""
"     return ""
"   end
"   let startpos = s:MultiMatch("bW")
"
"   if startpos == ""
"     return ""
"   endif
"   " - TODO:  figure out whether 'if' or '<tag>' matched, and construct
"   " - the appropriate closing.
"   let matchline = getline(".")
"   let curcol = col(".") - 1
"   " - TODO:  Change the s:all argument if there is a new set of match pats.
"   let regexp = s:Wholematch(matchline, s:all, curcol)
"   let suf = strlen(matchline) - matchend(matchline, regexp)
"   let prefix = (curcol ? '^.\{'  . curcol . '}\%(' : '^\%(')
"   let suffix = (suf ? '\).\{' . suf . '}$'  : '\)$')
"   " Reconstruct the version with unresolved backrefs.
"   let patBR = substitute(b:match_words.',', '[,:]*,[,:]*', ',', 'g')
"   let patBR = substitute(patBR, ':\{2,}', ':', "g")
"   " Now, set group and groupBR to the matching group: 'if:endif' or
"   " 'while:endwhile' or whatever.
"   let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, patBR)
"   let i = matchend(group, s:notslash . ",")
"   let groupBR = strpart(group, i)
"   let group = strpart(group, 0, i-1)
"   " Now, matchline =~ prefix . substitute(group,':','\|','g') . suffix
"   if s:do_BR
"     let group = s:InsertRefs(groupBR, prefix, group, suffix, matchline)
"   endif
" " let g:group = group
"
"   " - TODO:  Construct the closing from group.
"   let fake = "end" . expand("<cword>")
"   execute startpos
"   return fake
" endfun

" Close all open structures.  "Get the heck out of here!"
" fun! s:Gthhoh()
"   let close = s:Autocomplete()
"   while strlen(close)
"     put=close
"     let close = s:Autocomplete()
"   endwhile
" endfun

" Parse special strings as typical skip arguments for searchpair():
"   s:foo becomes (current syntax item) =~ foo
"   S:foo becomes (current syntax item) !~ foo
"   r:foo becomes (line before cursor) =~ foo
"   R:foo becomes (line before cursor) !~ foo
fun! s:ParseSkip(str)
  let skip = a:str
  if skip[1] == ":"
    if skip[0] == "s"
      let skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" .
	\ strpart(skip,2) . "'"
    elseif skip[0] == "S"
      let skip = "synIDattr(synID(line('.'),col('.'),1),'name') !~? '" .
	\ strpart(skip,2) . "'"
    elseif skip[0] == "r"
      let skip = "strpart(getline('.'),0,col('.'))=~'" . strpart(skip,2). "'"
    elseif skip[0] == "R"
      let skip = "strpart(getline('.'),0,col('.'))!~'" . strpart(skip,2). "'"
    endif
  endif
  return skip
endfun

let &cpo = s:save_cpo
unlet s:save_cpo

" vim:sts=2:sw=2:
PK�j�Z+�	��$vim80/pack/dist/opt/matchit/doc/tagsnu�[���:MatchDebug	matchit.txt	/*:MatchDebug*
MatchError	matchit.txt	/*MatchError*
[%	matchit.txt	/*[%*
]%	matchit.txt	/*]%*
b:match_col	matchit.txt	/*b:match_col*
b:match_debug	matchit.txt	/*b:match_debug*
b:match_ignorecase	matchit.txt	/*b:match_ignorecase*
b:match_ini	matchit.txt	/*b:match_ini*
b:match_iniBR	matchit.txt	/*b:match_iniBR*
b:match_match	matchit.txt	/*b:match_match*
b:match_pat	matchit.txt	/*b:match_pat*
b:match_skip	matchit.txt	/*b:match_skip*
b:match_table	matchit.txt	/*b:match_table*
b:match_tail	matchit.txt	/*b:match_tail*
b:match_wholeBR	matchit.txt	/*b:match_wholeBR*
b:match_word	matchit.txt	/*b:match_word*
b:match_words	matchit.txt	/*b:match_words*
g%	matchit.txt	/*g%*
matchit	matchit.txt	/*matchit*
matchit-%	matchit.txt	/*matchit-%*
matchit-\1	matchit.txt	/*matchit-\\1*
matchit-activate	matchit.txt	/*matchit-activate*
matchit-backref	matchit.txt	/*matchit-backref*
matchit-bugs	matchit.txt	/*matchit-bugs*
matchit-choose	matchit.txt	/*matchit-choose*
matchit-configure	matchit.txt	/*matchit-configure*
matchit-debug	matchit.txt	/*matchit-debug*
matchit-details	matchit.txt	/*matchit-details*
matchit-highlight	matchit.txt	/*matchit-highlight*
matchit-hl	matchit.txt	/*matchit-hl*
matchit-intro	matchit.txt	/*matchit-intro*
matchit-languages	matchit.txt	/*matchit-languages*
matchit-modes	matchit.txt	/*matchit-modes*
matchit-newlang	matchit.txt	/*matchit-newlang*
matchit-o_%	matchit.txt	/*matchit-o_%*
matchit-parse	matchit.txt	/*matchit-parse*
matchit-s:notend	matchit.txt	/*matchit-s:notend*
matchit-s:sol	matchit.txt	/*matchit-s:sol*
matchit-spaces	matchit.txt	/*matchit-spaces*
matchit-troubleshoot	matchit.txt	/*matchit-troubleshoot*
matchit-v_%	matchit.txt	/*matchit-v_%*
matchit.txt	matchit.txt	/*matchit.txt*
matchit.vim	matchit.txt	/*matchit.vim*
o_[%	matchit.txt	/*o_[%*
o_]%	matchit.txt	/*o_]%*
o_g%	matchit.txt	/*o_g%*
v_[%	matchit.txt	/*v_[%*
v_]%	matchit.txt	/*v_]%*
v_a%	matchit.txt	/*v_a%*
v_g%	matchit.txt	/*v_g%*
PK�j�Znx��KK+vim80/pack/dist/opt/matchit/doc/matchit.txtnu�[���*matchit.txt*   Extended "%" matching

For instructions on installing this file, type
	:help matchit-install
inside Vim.

For Vim version 6.3.  Last change:  2017 May 14


		  VIM REFERENCE MANUAL    by Benji Fisher

*matchit* *matchit.vim*

1. Extended matching with "%"				|matchit-intro|
2. Activation						|matchit-activate|
3. Configuration					|matchit-configure|
4. Supporting a New Language				|matchit-newlang|
5. Known Bugs and Limitations				|matchit-bugs|

The functionality mentioned here is a plugin, see |add-plugin|.
This plugin is only available if 'compatible' is not set.
You can avoid loading this plugin by setting the "loaded_matchit" variable
in your |vimrc| file: >
	:let loaded_matchit = 1

{Vi does not have any of this}

==============================================================================
1. Extended matching with "%"				*matchit-intro*

							*matchit-%*
%	Cycle forward through matching groups, such as "if", "else", "endif",
	as specified by |b:match_words|.

							*g%* *v_g%* *o_g%*
g%	Cycle backwards through matching groups, as specified by
	|b:match_words|.  For example, go from "if" to "endif" to "else".

							*[%* *v_[%* *o_[%*
[%	Go to [count] previous unmatched group, as specified by
	|b:match_words|.  Similar to |[{|.

							*]%* *v_]%* *o_]%*
]%	Go to [count] next unmatched group, as specified by
	|b:match_words|.  Similar to |]}|.

							*v_a%*
a%	In Visual mode, select the matching group, as specified by
	|b:match_words|, containing the cursor.  Similar to |v_a[|.
	A [count] is ignored, and only the first character of the closing
	pattern is selected.

In Vim, as in plain vi, the percent key, |%|, jumps the cursor from a brace,
bracket, or paren to its match.  This can be configured with the 'matchpairs'
option.  The matchit plugin extends this in several ways:

	    You can match whole words, such as "if" and "endif", not just
	single characters.  You can also specify a |regular-expression|.
	    You can define groups with more than two words, such as "if",
	"else", "endif".  Banging on the "%" key will cycle from the "if" to
	the first "else", the next "else", ..., the closing "endif", and back
	to the opening "if".  Nested structures are skipped.  Using |g%| goes
	in the reverse direction.
	    By default, words inside comments and strings are ignored, unless
	the cursor is inside a comment or string when you type "%".  If the
	only thing you want to do is modify the behavior of "%" so that it
	behaves this way, you do not have to define |b:match_words|, since the
	script uses the 'matchpairs' option as well as this variable.

See |matchit-details| for details on what the script does, and |b:match_words|
for how to specify matching patterns.

MODES:			*matchit-modes* *matchit-v_%* *matchit-o_%*

Mostly, % and related motions (|g%| and |[%| and |]%|) work just like built-in
|motion| commands in |Operator-pending| and |Visual| modes.  However, you
cannot make these motions |linewise| or |characterwise|, since the |:omap|s
that define them start with "v" in order to make the default behavior
inclusive.  (See |o_v|.)  In other words, "dV%" will not work.  The
work-around is to go through Visual mode:  "V%d" will work.

LANGUAGES:					*matchit-languages*

Currently, the following languages are supported:  Ada, ASP with VBS, Csh,
DTD, Entity, Essbase, Fortran, HTML, JSP (same as HTML), LaTeX, Lua, Pascal,
SGML, Shell, Tcsh, Vim, XML.  Other languages may already have support via
the default |filetype-plugin|s in the standard vim distribution.

To support a new language, see |matchit-newlang| below.

DETAILS:				*matchit-details* *matchit-parse*

Here is an outline of what matchit.vim does each time you hit the "%" key.  If
there are |backref|s in |b:match_words| then the first step is to produce a
version in which these back references have been eliminated; if there are no
|backref|s then this step is skipped.  This step is called parsing.  For
example, "\(foo\|bar\):end\1" is parsed to yield
"\(foo\|bar\):end\(foo\|bar\)".  This can get tricky, especially if there are
nested groups.  If debugging is turned on, the parsed version is saved as
|b:match_pat|.

							*matchit-choose*
Next, the script looks for a word on the current line that matches the pattern
just constructed.  It includes the patterns from the 'matchpairs' option.
The goal is to do what you expect, which turns out to be a little complicated.
The script follows these rules:

	Insist on a match that ends on or after the cursor.
	Prefer a match that includes the cursor position (that is, one that
		starts on or before the cursor).
	Prefer a match that starts as close to the cursor as possible.
	If more than one pattern in |b:match_words| matches, choose the one
		that is listed first.

Examples:

	Suppose you >
		:let b:match_words = '<:>,<tag>:</tag>'
<	and hit "%" with the cursor on or before the "<" in "a <tag> is born".
	The pattern '<' comes first, so it is preferred over '<tag>', which
	also matches.  If the cursor is on the "t", however, then '<tag>' is
	preferred, because this matches a bit of text containing the cursor.
	If the two groups of patterns were reversed then '<' would never be
	preferred.

	Suppose you >
		:let b:match_words = 'if:end if'
<	(Note the space!) and hit "%" with the cursor at the end of "end if".
	Then "if" matches, which is probably not what you want, but if the
	cursor starts on the "end " then "end if" is chosen.  (You can avoid
	this problem by using a more complicated pattern.)

If there is no match, the cursor does not move.  (Before version 1.13 of the
script, it would fall back on the usual behavior of |%|).  If debugging is
turned on, the matched bit of text is saved as |b:match_match| and the cursor
column of the start of the match is saved as |b:match_col|.

Next, the script looks through |b:match_words| (original and parsed versions)
for the group and pattern that match.  If debugging is turned on, the group is
saved as |b:match_ini| (the first pattern) and |b:match_tail| (the rest).  If
there are |backref|s then, in addition, the matching pattern is saved as
|b:match_word| and a table of translations is saved as |b:match_table|.  If
there are |backref|s, these are determined from the matching pattern and
|b:match_match| and substituted into each pattern in the matching group.

The script decides whether to search forwards or backwards and chooses
arguments for the |searchpair()| function.  Then, the cursor is moved to the
start of the match, and |searchpair()| is called.  By default, matching
structures inside strings and comments are ignored.  This can be changed by
setting |b:match_skip|.

==============================================================================
2. Activation						*matchit-activate*

To use the matchit plugin add this line to your |vimrc|: >
	packadd! matchit

The script should start working the next time you start Vim.

(Earlier versions of the script did nothing unless a |buffer-variable| named
|b:match_words| was defined.  Even earlier versions contained autocommands
that set this variable for various file types.  Now, |b:match_words| is
defined in many of the default |filetype-plugin|s instead.)

For a new language, you can add autocommands to the script or to your vimrc
file, but the recommended method is to add a line such as >
	let b:match_words = '\<foo\>:\<bar\>'
to the |filetype-plugin| for your language.  See |b:match_words| below for how
this variable is interpreted.

TROUBLESHOOTING					*matchit-troubleshoot*

The script should work in most installations of Vim.  It may not work if Vim
was compiled with a minimal feature set, for example if the |+syntax| option
was not enabled.  If your Vim has support for syntax compiled in, but you do
not have |syntax| highlighting turned on, matchit.vim should work, but it may
fail to skip matching groups in comments and strings.  If the |filetype|
mechanism is turned off, the |b:match_words| variable will probably not be
defined automatically.

==============================================================================
3. Configuration					*matchit-configure*

There are several variables that govern the behavior of matchit.vim.  Note
that these are variables local to the buffer, not options, so use |:let| to
define them, not |:set|.  Some of these variables have values that matter; for
others, it only matters whether the variable has been defined.  All of these
can be defined in the |filetype-plugin| or autocommand that defines
|b:match_words| or "on the fly."

The main variable is |b:match_words|.  It is described in the section below on
supporting a new language.

				*MatchError* *matchit-hl* *matchit-highlight*
MatchError is the highlight group for error messages from the script.  By
default, it is linked to WarningMsg.  If you do not want to be bothered by
error messages, you can define this to be something invisible.  For example,
if you use the GUI version of Vim and your command line is normally white, you
can do >
	:hi MatchError guifg=white guibg=white
<
						*b:match_ignorecase*
If you >
	:let b:match_ignorecase = 1
then matchit.vim acts as if 'ignorecase' is set: for example, "end" and "END"
are equivalent.  If you >
	:let b:match_ignorecase = 0
then matchit.vim treats "end" and "END" differently.  (There will be no
b:match_infercase option unless someone requests it.)

						*b:match_debug*
Define b:match_debug if you want debugging information to be saved.  See
|matchit-debug|, below.

						*b:match_skip*
If b:match_skip is defined, it is passed as the skip argument to
|searchpair()|.  This controls when matching structures are skipped, or
ignored.  By default, they are ignored inside comments and strings, as
determined by the |syntax| mechanism.  (If syntax highlighting is turned off,
nothing is skipped.)  You can set b:match_skip to a string, which evaluates to
a non-zero, numerical value if the match is to be skipped or zero if the match
should not be skipped.  In addition, the following special values are
supported by matchit.vim:
	s:foo becomes (current syntax item) =~ foo
	S:foo becomes (current syntax item) !~ foo
	r:foo becomes (line before cursor) =~ foo
	R:foo becomes (line before cursor) !~ foo
(The "s" is meant to suggest "syntax", and the "r" is meant to suggest
"regular expression".)

Examples:

	You can get the default behavior with >
		:let b:match_skip = 's:comment\|string'
<
	If you want to skip matching structures unless they are at the start
	of the line (ignoring whitespace) then you can >
		:let b:match_skip = 'R:^\s*'
<	Do not do this if strings or comments can span several lines, since
	the normal syntax checking will not be done if you set b:match_skip.

	In LaTeX, since "%" is used as the comment character, you can >
		:let b:match_skip = 'r:%'
<	Unfortunately, this will skip anything after "\%", an escaped "%".  To
	allow for this, and also "\\%" (an escaped backslash followed by the
	comment character) you can >
		:let b:match_skip = 'r:\(^\|[^\\]\)\(\\\\\)*%'
<
	See the $VIMRUNTIME/ftplugin/vim.vim for an example that uses both
	syntax and a regular expression.

==============================================================================
4. Supporting a New Language				*matchit-newlang*
							*b:match_words*
In order for matchit.vim to support a new language, you must define a suitable
pattern for |b:match_words|.  You may also want to set some of the
|matchit-configure| variables, as described above.  If your language has a
complicated syntax, or many keywords, you will need to know something about
Vim's |regular-expression|s.

The format for |b:match_words| is similar to that of the 'matchpairs' option:
it is a comma (,)-separated list of groups; each group is a colon(:)-separated
list of patterns (regular expressions).  Commas and backslashes that are part
of a pattern should be escaped with backslashes ('\:' and '\,').  It is OK to
have only one group; the effect is undefined if a group has only one pattern.
A simple example is >
	:let b:match_words = '\<if\>:\<endif\>,'
		\ . '\<while\>:\<continue\>:\<break\>:\<endwhile\>'
(In Vim regular expressions, |\<| and |\>| denote word boundaries.  Thus "if"
matches the end of "endif" but "\<if\>" does not.)  Then banging on the "%"
key will bounce the cursor between "if" and the matching "endif"; and from
"while" to any matching "continue" or "break", then to the matching "endwhile"
and back to the "while".  It is almost always easier to use |literal-string|s
(single quotes) as above:  '\<if\>' rather than "\\<if\\>" and so on.

Exception:  If the ":" character does not appear in b:match_words, then it is
treated as an expression to be evaluated.  For example, >
	:let b:match_words = 'GetMatchWords()'
allows you to define a function.  This can return a different string depending
on the current syntax, for example.

Once you have defined the appropriate value of |b:match_words|, you will
probably want to have this set automatically each time you edit the
appropriate file type.  The recommended way to do this is by adding the
definition to a |filetype-plugin| file.

Tips: Be careful that your initial pattern does not match your final pattern.
See the example above for the use of word-boundary expressions.  It is usually
better to use ".\{-}" (as many as necessary) instead of ".*" (as many as
possible).  See |\{-|.  For example, in the string "<tag>label</tag>", "<.*>"
matches the whole string whereas "<.\{-}>" and "<[^>]*>" match "<tag>" and
"</tag>".

				*matchit-spaces* *matchit-s:notend*
If "if" is to be paired with "end if" (Note the space!) then word boundaries
are not enough.  Instead, define a regular expression s:notend that will match
anything but "end" and use it as follows: >
	:let s:notend = '\%(\<end\s\+\)\@<!'
	:let b:match_words = s:notend . '\<if\>:\<end\s\+if\>'
<							*matchit-s:sol*
This is a simplified version of what is done for Ada.  The s:notend is a
|script-variable|.  Similarly, you may want to define a start-of-line regular
expression >
	:let s:sol = '\%(^\|;\)\s*'
if keywords are only recognized after the start of a line or after a
semicolon (;), with optional white space.

					*matchit-backref* *matchit-\1*
In any group, the expressions |\1|, |\2|, ..., |\9| refer to parts of the
INITIAL pattern enclosed in |\(|escaped parentheses|\)|.  These are referred
to as back references, or backrefs.  For example, >
	:let b:match_words = '\<b\(o\+\)\>:\(h\)\1\>'
means that "bo" pairs with "ho" and "boo" pairs with "hoo" and so on.  Note
that "\1" does not refer to the "\(h\)" in this example.  If you have
"\(nested \(parentheses\)\) then "\d" refers to the d-th "\(" and everything
up to and including the matching "\)":  in "\(nested\(parentheses\)\)", "\1"
refers to everything and "\2" refers to "\(parentheses\)".  If you use a
variable such as |s:notend| or |s:sol| in the previous paragraph then remember
to count any "\(" patterns in this variable.  You do not have to count groups
defined by |\%(\)|.

It should be possible to resolve back references from any pattern in the
group.  For example, >
	:let b:match_words = '\(foo\)\(bar\):more\1:and\2:end\1\2'
would not work because "\2" cannot be determined from "morefoo" and "\1"
cannot be determined from "andbar".  On the other hand, >
	:let b:match_words = '\(\(foo\)\(bar\)\):\3\2:end\1'
should work (and have the same effect as "foobar:barfoo:endfoobar"), although
this has not been thoroughly tested.

You can use |zero-width| patterns such as |\@<=| and |\zs|.  (The latter has
not been thouroughly tested in matchit.vim.)  For example, if the keyword "if"
must occur at the start of the line, with optional white space, you might use
the pattern "\(^\s*\)\@<=if" so that the cursor will end on the "i" instead of
at the start of the line.  For another example, if HTML had only one tag then
one could >
	:let b:match_words = '<:>,<\@<=tag>:<\@<=/tag>'
so that "%" can bounce between matching "<" and ">" pairs or (starting on
"tag" or "/tag") between matching tags.  Without the |\@<=|, the script would
bounce from "tag" to the "<" in "</tag>", and another "%" would not take you
back to where you started.

DEBUGGING				*matchit-debug* *:MatchDebug*

If you are having trouble figuring out the appropriate definition of
|b:match_words| then you can take advantage of the same information I use when
debugging the script.  This is especially true if you are not sure whether
your patterns or my script are at fault!  To make this more convenient, I have
made the command :MatchDebug, which defines the variable |b:match_debug| and
creates a Matchit menu.  This menu makes it convenient to check the values of
the variables described below.  You will probably also want to read
|matchit-details| above.

Defining the variable |b:match_debug| causes the script to set the following
variables, each time you hit the "%" key.  Several of these are only defined
if |b:match_words| includes |backref|s.

							*b:match_pat*
The b:match_pat variable is set to |b:match_words| with |backref|s parsed.
							*b:match_match*
The b:match_match variable is set to the bit of text that is recognized as a
match.
							*b:match_col*
The b:match_col variable is set to the cursor column of the start of the
matching text.
							*b:match_wholeBR*
The b:match_wholeBR variable is set to the comma-separated group of patterns
that matches, with |backref|s unparsed.
							*b:match_iniBR*
The b:match_iniBR variable is set to the first pattern in |b:match_wholeBR|.
							*b:match_ini*
The b:match_ini variable is set to the first pattern in |b:match_wholeBR|,
with |backref|s resolved from |b:match_match|.
							*b:match_tail*
The b:match_tail variable is set to the remaining patterns in
|b:match_wholeBR|, with |backref|s resolved from |b:match_match|.
							*b:match_word*
The b:match_word variable is set to the pattern from |b:match_wholeBR| that
matches |b:match_match|.
							*b:match_table*
The back reference '\'.d refers to the same thing as '\'.b:match_table[d] in
|b:match_word|.

==============================================================================
5. Known Bugs and Limitations				*matchit-bugs*

Just because I know about a bug does not mean that it is on my todo list.  I
try to respond to reports of bugs that cause real problems.  If it does not
cause serious problems, or if there is a work-around, a bug may sit there for
a while.  Moral:  if a bug (known or not) bothers you, let me know.

The various |:vmap|s defined in the script (%, |g%|, |[%|, |]%|, |a%|) may
have undesired effects in Select mode |Select-mode-mapping|.  At least, if you
want to replace the selection with any character in "ag%[]" there will be a
pause of |'updatetime'| first. E.g., "yV%" would normally work linewise, but
the plugin mapping makes it characterwise.

It would be nice if "\0" were recognized as the entire pattern.  That is, it
would be nice if "foo:\end\0" had the same effect as "\(foo\):\end\1".  I may
try to implement this in a future version.  (This is not so easy to arrange as
you might think!)

==============================================================================
vim:tw=78:fo=tcq2:
PK�j�ZHU�RR,vim80/pack/dist/opt/dvorak/dvorak/enable.vimnu�[���" Dvorak keyboard, only in Insert mode.
"
" Change "inoremap" to "map!" to also use in Ex mode.
" Also change disable.vim then: "iunmap" to "unmap!".
"
" You may want to add a list of map's too.

inoremap a a
inoremap b x
inoremap c j
inoremap d e
inoremap e .
inoremap f u
inoremap g i
inoremap h d
inoremap i c
inoremap j h
inoremap k t
inoremap l n
inoremap m m
inoremap n b
inoremap o r
inoremap p l
inoremap q '
inoremap r p
inoremap s o
inoremap t y
inoremap u g
inoremap v k
inoremap w ,
inoremap x q
inoremap y f
inoremap z ;
inoremap ; s
inoremap ' -
inoremap " _
inoremap , w
inoremap . v
inoremap / z
inoremap A A
inoremap B X
inoremap C J
inoremap D E
inoremap E >
inoremap F U
inoremap G I
inoremap H D
inoremap I C
inoremap J H
inoremap K T
inoremap L N
inoremap M M
inoremap N B
inoremap O R
inoremap P L
inoremap Q "
inoremap R P
inoremap S O
inoremap T Y
inoremap U G
inoremap V K
inoremap W <
inoremap X Q
inoremap Y F
inoremap Z :
inoremap < W
inoremap > V
inoremap ? Z
inoremap : S
inoremap [ /
inoremap ] =
inoremap { ?
inoremap } +
inoremap - [
inoremap _ {
inoremap = ]
inoremap + }
PK�j�Z�nw=��-vim80/pack/dist/opt/dvorak/dvorak/disable.vimnu�[���" Back to Qwerty keyboard after using Dvorak.

iunmap a
iunmap b
iunmap c
iunmap d
iunmap e
iunmap f
iunmap g
iunmap h
iunmap i
iunmap j
iunmap k
iunmap l
iunmap m
iunmap n
iunmap o
iunmap p
iunmap q
iunmap r
iunmap s
iunmap t
iunmap u
iunmap v
iunmap w
iunmap x
iunmap y
iunmap z
iunmap ;
iunmap '
iunmap "
iunmap ,
iunmap .
iunmap /
iunmap A
iunmap B
iunmap C
iunmap D
iunmap E
iunmap F
iunmap G
iunmap H
iunmap I
iunmap J
iunmap K
iunmap L
iunmap M
iunmap N
iunmap O
iunmap P
iunmap Q
iunmap R
iunmap S
iunmap T
iunmap U
iunmap V
iunmap W
iunmap X
iunmap Y
iunmap Z
iunmap <
iunmap >
iunmap ?
iunmap :
iunmap [
iunmap ]
iunmap {
iunmap }
iunmap -
iunmap _
iunmap =
iunmap +
PK�j�Z�@6,vim80/pack/dist/opt/dvorak/plugin/dvorak.vimnu�[���" When using a dvorak keyboard this file may be of help to you.
" These mappings have been made by Lawrence Kesteloot <kesteloo@cs.unc.edu>.
" What they do is that the most often used keys, like hjkl, are put in a more
" easy to use position.
" It may take some time to learn using this.

if exists("g:loaded_dvorak_plugin")
  finish
endif
let g:loaded_dvorak_plugin = 1

" Key to go into dvorak mode:
map ,d :runtime dvorak/enable.vim<CR>

" Key to get out of dvorak mode:
map ,q :runtime dvorak/disable.vim<CR>
PK�j�ZdѠ�#�#.vim80/pack/dist/opt/justify/plugin/justify.vimnu�[���" Function to left and right align text.
"
" Written by:	Preben "Peppe" Guldberg <c928400@student.dtu.dk>
" Created:	980806 14:13 (or around that time anyway)
" Revised:	001103 00:36 (See "Revisions" below)


" function Justify( [ textwidth [, maxspaces [, indent] ] ] )
"
" Justify()  will  left  and  right  align  a  line  by  filling  in  an
" appropriate amount of spaces.  Extra  spaces  are  added  to  existing
" spaces starting from the right side of the line.  As an  example,  the
" following documentation has been justified.
"
" The function takes the following arguments:

" textwidth argument
" ------------------
" If not specified, the value of the 'textwidth'  option  is  used.   If
" 'textwidth' is zero a value of 80 is used.
"
" Additionally the arguments 'tw' and '' are  accepted.   The  value  of
" 'textwidth' will be used. These are handy, if you just want to specify
" the maxspaces argument.

" maxspaces argument
" ------------------
" If specified, alignment will only be done, if the  longest  space  run
" after alignment is no longer than maxspaces.
"
" An argument of '' is accepted, should the user  like  to  specify  all
" arguments.
"
" To aid user defined commands, negative  values  are  accepted  aswell.
" Using a negative value specifies the default behaviour: any length  of
" space runs will be used to justify the text.

" indent argument
" ---------------
" This argument specifies how a line should be indented. The default  is
" to keep the current indentation.
"
" Negative  values:  Keep  current   amount   of   leading   whitespace.
" Positive values: Indent all lines with leading whitespace  using  this
" amount of whitespace.
"
" Note that the value 0, needs to be quoted as  a  string.   This  value
" leads to a left flushed text.
"
" Additionally units of  'shiftwidth'/'sw'  and  'tabstop'/'ts'  may  be
" added. In this case, if the value of indent is positive, the amount of
" whitespace to be  added  will  be  multiplied  by  the  value  of  the
" 'shiftwidth' and 'tabstop' settings.  If these  units  are  used,  the
"  argument must  be  given  as  a  string,  eg.   Justify('','','2sw').
"
" If the values of 'sw' or 'tw' are negative, they  are  treated  as  if
" they were 0, which means that the text is flushed left.  There  is  no
" check if a negative number prefix is used to  change  the  sign  of  a
" negative 'sw' or 'ts' value.
"
" As with the other arguments,  ''  may  be  used  to  get  the  default
" behaviour.


" Notes:
"
" If the line, adjusted for space runs and leading/trailing  whitespace,
" is wider than the used textwidth, the line will be left untouched  (no
" whitespace removed).  This should be equivalent to  the  behaviour  of
" :left, :right and :center.
"
" If the resulting line is shorter than the used textwidth  it  is  left
" untouched.
"
" All space runs in the line  are  truncated  before  the  alignment  is
" carried out.
"
" If you have set 'noexpandtab', :retab!  is used to replace space  runs
"  with whitespace  using  the  value  of  'tabstop'.   This  should  be
" conformant with :left, :right and :center.
"
" If joinspaces is set, an extra space is added after '.', '?' and  '!'.
" If 'cpooptions' include 'j', extra space  is  only  added  after  '.'.
" (This may on occasion conflict with maxspaces.)


" Related mappings:
"
" Mappings that will align text using the current text width,  using  at
" most four spaces in a  space  run  and  keeping  current  indentation.
nmap _j :%call Justify('tw',4)<CR>
vmap _j :call Justify('tw',4)<CR>
"
" Mappings that will remove space runs and format lines (might be useful
" prior to aligning the text).
nmap ,gq :%s/\s\+/ /g<CR>gq1G
vmap ,gq :s/\s\+/ /g<CR>gvgq


" User defined command:
"
" The following is an ex command that works as a shortcut to the Justify
" function.  Arguments to Justify() can  be  added  after  the  command.
com! -range -nargs=* Justify <line1>,<line2>call Justify(<f-args>)
"
" The following commands are all equivalent:
"
" 1. Simplest use of Justify():
"       :call Justify()
"       :Justify
"
" 2. The _j mapping above via the ex command:
"       :%Justify tw 4
"
" 3.  Justify  visualised  text  at  72nd  column  while  indenting  all
" previously indented text two shiftwidths
"       :'<,'>call Justify(72,'','2sw')
"       :'<,'>Justify 72 -1 2sw
"
" This documentation has been justified  using  the  following  command:
":se et|kz|1;/^" function Justify(/+,'z-g/^" /s/^" //|call Justify(70,3)|s/^/" /

" Revisions:
" 001103: If 'joinspaces' was set, calculations could be wrong.
"	  Tabs at start of line could also lead to errors.
"	  Use setline() instead of "exec 's/foo/bar/' - safer.
"	  Cleaned up the code a bit.
"
" Todo:	  Convert maps to the new script specific form

" Error function
function! Justify_error(message)
    echohl Error
    echo "Justify([tw, [maxspaces [, indent]]]): " . a:message
    echohl None
endfunction


" Now for the real thing
function! Justify(...) range

    if a:0 > 3
    call Justify_error("Too many arguments (max 3)")
    return 1
    endif

    " Set textwidth (accept 'tw' and '' as arguments)
    if a:0 >= 1
	if a:1 =~ '^\(tw\)\=$'
	    let tw = &tw
	elseif a:1 =~ '^\d\+$'
	    let tw = a:1
	else
	    call Justify_error("tw must be a number (>0), '' or 'tw'")
	    return 2
	endif
    else
	let tw = &tw
    endif
    if tw == 0
	let tw = 80
    endif

    " Set maximum number of spaces between WORDs
    if a:0 >= 2
	if a:2 == ''
	    let maxspaces = tw
	elseif a:2 =~ '^-\d\+$'
	    let maxspaces = tw
	elseif a:2 =~ '^\d\+$'
	    let maxspaces = a:2
	else
	    call Justify_error("maxspaces must be a number or ''")
	    return 3
	endif
    else
	let maxspaces = tw
    endif
    if maxspaces <= 1
	call Justify_error("maxspaces should be larger than 1")
	return 4
    endif

    " Set the indentation style (accept sw and ts units)
    let indent_fix = ''
    if a:0 >= 3
	if (a:3 == '') || a:3 =~ '^-[1-9]\d*\(shiftwidth\|sw\|tabstop\|ts\)\=$'
	    let indent = -1
	elseif a:3 =~ '^-\=0\(shiftwidth\|sw\|tabstop\|ts\)\=$'
	    let indent = 0
	elseif a:3 =~ '^\d\+\(shiftwidth\|sw\|tabstop\|ts\)\=$'
	    let indent = substitute(a:3, '\D', '', 'g')
	elseif a:3 =~ '^\(shiftwidth\|sw\|tabstop\|ts\)$'
	    let indent = 1
	else
	    call Justify_error("indent: a number with 'sw'/'ts' unit")
	    return 5
	endif
	if indent >= 0
	    while indent > 0
		let indent_fix = indent_fix . ' '
		let indent = indent - 1
	    endwhile
	    let indent_sw = 0
	    if a:3 =~ '\(shiftwidth\|sw\)'
		let indent_sw = &sw
	    elseif a:3 =~ '\(tabstop\|ts\)'
		let indent_sw = &ts
	    endif
	    let indent_fix2 = ''
	    while indent_sw > 0
		let indent_fix2 = indent_fix2 . indent_fix
		let indent_sw = indent_sw - 1
	    endwhile
	    let indent_fix = indent_fix2
	endif
    else
	let indent = -1
    endif

    " Avoid substitution reports
    let save_report = &report
    set report=1000000

    " Check 'joinspaces' and 'cpo'
    if &js == 1
	if &cpo =~ 'j'
	    let join_str = '\(\. \)'
	else
	    let join_str = '\([.!?!] \)'
	endif
    endif

    let cur = a:firstline
    while cur <= a:lastline

	let str_orig = getline(cur)
	let save_et = &et
	set et
	exec cur . "retab"
	let &et = save_et
	let str = getline(cur)

	let indent_str = indent_fix
	let indent_n = strlen(indent_str)
	" Shall we remember the current indentation
	if indent < 0
	    let indent_orig = matchstr(str_orig, '^\s*')
	    if strlen(indent_orig) > 0
		let indent_str = indent_orig
		let indent_n = strlen(matchstr(str, '^\s*'))
	    endif
	endif

	" Trim trailing, leading and running whitespace
	let str = substitute(str, '\s\+$', '', '')
	let str = substitute(str, '^\s\+', '', '')
	let str = substitute(str, '\s\+', ' ', 'g')
	let str_n = strdisplaywidth(str)

	" Possible addition of space after punctuation
	if exists("join_str")
	    let str = substitute(str, join_str, '\1 ', 'g')
	endif
	let join_n = strdisplaywidth(str) - str_n

	" Can extraspaces be added?
	" Note that str_n may be less than strlen(str) [joinspaces above]
	if strdisplaywidth(str) <= tw - indent_n && str_n > 0
	    " How many spaces should be added
	    let s_add = tw - str_n - indent_n - join_n
	    let s_nr  = strlen(substitute(str, '\S', '', 'g') ) - join_n
	    let s_dup = s_add / s_nr
	    let s_mod = s_add % s_nr

	    " Test if the changed line fits with tw
	    if 0 <= (str_n + (maxspaces - 1)*s_nr + indent_n) - tw

		" Duplicate spaces
		while s_dup > 0
		    let str = substitute(str, '\( \+\)', ' \1', 'g')
		    let s_dup = s_dup - 1
		endwhile

		" Add extra spaces from the end
		while s_mod > 0
		    let str = substitute(str, '\(\(\s\+\S\+\)\{' . s_mod .  '}\)$', ' \1', '')
		    let s_mod = s_mod - 1
		endwhile

		" Indent the line
		if indent_n > 0
		    let str = substitute(str, '^', indent_str, '' )
		endif

		" Replace the line
		call setline(cur, str)

		" Convert to whitespace
		if &et == 0
		    exec cur . 'retab!'
		endif

	    endif   " Change of line
	endif	" Possible change

	let cur = cur + 1
    endwhile

    norm ^

    let &report = save_report

endfunction

" EOF	vim: tw=78 ts=8 sw=4 sts=4 noet ai
PK�j�Z/��lRR2vim80/pack/dist/opt/shellmenu/plugin/shellmenu.vimnu�[���" When you're writing shell scripts and you are in doubt which test to use,
" which shell environment variables are defined, what the syntax of the case
" statement is, and you need to invoke 'man sh'?
"
" Your problems are over now!
"
" Attached is a Vim script file for turning gvim into a shell script editor.
" It may also be used as an example how to use menus in Vim.
"
" Written by: Lennart Schultz <les@dmi.min.dk>

imenu Stmts.for	for  in 
do

doneki	kk0elli
imenu Stmts.case	case  in
) ;;
esacbki	k0elli
imenu Stmts.if	if   
then

fiki	kk0elli
imenu Stmts.if-else	if   
then

else

fiki	kki	kk0elli
imenu Stmts.elif	elif   
then

ki	kk0elli
imenu Stmts.while	while   
do

doneki	kk0elli
imenu Stmts.break	break 
imenu Stmts.continue	continue 
imenu Stmts.function	() {

}ki	k0i
imenu Stmts.return	return 
imenu Stmts.return-true	return 0
imenu Stmts.return-false	return 1
imenu Stmts.exit	exit 
imenu Stmts.shift	shift 
imenu Stmts.trap	trap 
imenu Test.existence	[ -e  ]hi
imenu Test.existence - file		[ -f  ]hi
imenu Test.existence - file (not empty)	[ -s  ]hi
imenu Test.existence - directory	[ -d  ]hi
imenu Test.existence - executable	[ -x  ]hi
imenu Test.existence - readable	[ -r  ]hi
imenu Test.existence - writable	[ -w  ]hi
imenu Test.String is empty [ x = "x$" ]hhi
imenu Test.String is not empty [ x != "x$" ]hhi
imenu Test.Strings is equal [ "" = "" ]hhhhhhhi
imenu Test.Strings is not equal [ "" != "" ]hhhhhhhhi
imenu Test.Values is greater than [  -gt  ]hhhhhhi
imenu Test.Values is greater equal [  -ge  ]hhhhhhi
imenu Test.Values is equal [  -eq  ]hhhhhhi
imenu Test.Values is not equal [  -ne  ]hhhhhhi
imenu Test.Values is less than [  -lt  ]hhhhhhi
imenu Test.Values is less equal [  -le  ]hhhhhhi
imenu ParmSub.Substitute word if parm not set ${:-}hhi
imenu ParmSub.Set parm to word if not set ${:=}hhi
imenu ParmSub.Substitute word if parm set else nothing ${:+}hhi
imenu ParmSub.If parm not set print word and exit ${:?}hhi
imenu SpShVars.Number of positional parameters ${#}
imenu SpShVars.All positional parameters (quoted spaces) ${*}
imenu SpShVars.All positional parameters (unquoted spaces) ${@}
imenu SpShVars.Flags set ${-}
imenu SpShVars.Return code of last command ${?}
imenu SpShVars.Process number of this shell ${$}
imenu SpShVars.Process number of last background command ${!}
imenu Environ.HOME ${HOME}
imenu Environ.PATH ${PATH}
imenu Environ.CDPATH ${CDPATH}
imenu Environ.MAIL ${MAIL}
imenu Environ.MAILCHECK ${MAILCHECK}
imenu Environ.PS1 ${PS1}
imenu Environ.PS2 ${PS2}
imenu Environ.IFS ${IFS}
imenu Environ.SHACCT ${SHACCT}
imenu Environ.SHELL ${SHELL}
imenu Environ.LC_CTYPE ${LC_CTYPE}
imenu Environ.LC_MESSAGES ${LC_MESSAGES}
imenu Builtins.cd cd
imenu Builtins.echo echo
imenu Builtins.eval eval
imenu Builtins.exec exec
imenu Builtins.export export
imenu Builtins.getopts getopts
imenu Builtins.hash hash
imenu Builtins.newgrp newgrp
imenu Builtins.pwd pwd
imenu Builtins.read read
imenu Builtins.readonly readonly
imenu Builtins.return return
imenu Builtins.times times
imenu Builtins.type type
imenu Builtins.umask umask
imenu Builtins.wait wait
imenu Set.set set
imenu Set.unset unset
imenu Set.mark modified or modified variables set -a
imenu Set.exit when command returns non-zero exit code set -e
imenu Set.Disable file name generation set -f
imenu Set.remember function commands set -h
imenu Set.All keyword arguments are placed in the environment set -k
imenu Set.Read commands but do not execute them set -n
imenu Set.Exit after reading and executing one command set -t
imenu Set.Treat unset variables as an error when substituting set -u
imenu Set.Print shell input lines as they are read set -v
imenu Set.Print commands and their arguments as they are executed set -x
PK�j�Z�3�XX2vim80/pack/dist/opt/swapmouse/plugin/swapmouse.vimnu�[���" These macros swap the left and right mouse buttons (for left handed)
" Don't forget to do ":set mouse=a" or the mouse won't work at all
noremap	 <LeftMouse>	<RightMouse>
noremap	 <2-LeftMouse>	<2-RightMouse>
noremap	 <3-LeftMouse>	<3-RightMouse>
noremap	 <4-LeftMouse>	<4-RightMouse>
noremap	 <LeftDrag>	<RightDrag>
noremap	 <LeftRelease>	<RightRelease>
noremap	 <RightMouse>	<LeftMouse>
noremap	 <2-RightMouse>	<2-LeftMouse>
noremap	 <3-RightMouse>	<3-LeftMouse>
noremap	 <4-RightMouse>	<4-LeftMouse>
noremap	 <RightDrag>	<LeftDrag>
noremap	 <RightRelease>	<LeftRelease>
noremap	 g<LeftMouse>	<C-RightMouse>
noremap	 g<RightMouse>	<C-LeftMouse>
noremap! <LeftMouse>	<RightMouse>
noremap! <LeftDrag>	<RightDrag>
noremap! <LeftRelease>	<RightRelease>
noremap! <RightMouse>	<LeftMouse>
noremap! <RightDrag>	<LeftDrag>
noremap! <RightRelease>	<LeftRelease>
PK�j�Z"<�
�
�
8vim80/pack/dist/opt/editexisting/plugin/editexisting.vimnu�[���" Vim Plugin:	Edit the file with an existing Vim if possible
" Maintainer:	Bram Moolenaar
" Last Change:	2016 Mar 28

" To use add ":packadd! editexisting" in your vimrc file.

" This plugin serves two purposes:
" 1. On startup, if we were invoked with one file name argument and the file
"    is not modified then try to find another Vim instance that is editing
"    this file.  If there is one then bring it to the foreground and exit.
" 2. When a file is edited and a swap file exists for it, try finding that
"    other Vim and bring it to the foreground.  Requires Vim 7, because it
"    uses the SwapExists autocommand event.

" Function that finds the Vim instance that is editing "filename" and brings
" it to the foreground.
func s:EditElsewhere(filename)
  let fname_esc = substitute(a:filename, "'", "''", "g")

  let servers = serverlist()
  while servers != ''
    " Get next server name in "servername"; remove it from "servers".
    let i = match(servers, "\n")
    if i == -1
      let servername = servers
      let servers = ''
    else
      let servername = strpart(servers, 0, i)
      let servers = strpart(servers, i + 1)
    endif

    " Skip ourselves.
    if servername ==? v:servername
      continue
    endif

    " Check if this server is editing our file.
    if remote_expr(servername, "bufloaded('" . fname_esc . "')")
      " Yes, bring it to the foreground.
      if has("win32")
	call remote_foreground(servername)
      endif
      call remote_expr(servername, "foreground()")

      if remote_expr(servername, "exists('*EditExisting')")
	" Make sure the file is visible in a window (not hidden).
	" If v:swapcommand exists and is set, send it to the server.
	if exists("v:swapcommand")
	  let c = substitute(v:swapcommand, "'", "''", "g")
	  call remote_expr(servername, "EditExisting('" . fname_esc . "', '" . c . "')")
	else
	  call remote_expr(servername, "EditExisting('" . fname_esc . "', '')")
	endif
      endif

      if !(has('vim_starting') && has('gui_running') && has('gui_win32'))
	" Tell the user what is happening.  Not when the GUI is starting
	" though, it would result in a message box.
	echomsg "File is being edited by " . servername
	sleep 2
      endif
      return 'q'
    endif
  endwhile
  return ''
endfunc

" When the plugin is loaded and there is one file name argument: Find another
" Vim server that is editing this file right now.
if argc() == 1 && !&modified
  if s:EditElsewhere(expand("%:p")) == 'q'
    quit
  endif
endif

" Setup for handling the situation that an existing swap file is found.
try
  au! SwapExists * let v:swapchoice = s:EditElsewhere(expand("<afile>:p"))
catch
  " Without SwapExists we don't do anything for ":edit" commands
endtry

" Function used on the server to make the file visible and possibly execute a
" command.
func! EditExisting(fname, command)
  " Get the window number of the file in the current tab page.
  let winnr = bufwinnr(a:fname)
  if winnr <= 0
    " Not found, look in other tab pages.
    let bufnr = bufnr(a:fname)
    for i in range(tabpagenr('$'))
      if index(tabpagebuflist(i + 1), bufnr) >= 0
	" Make this tab page the current one and find the window number.
	exe 'tabnext ' . (i + 1)
	let winnr = bufwinnr(a:fname)
	break
      endif
    endfor
  endif

  if winnr > 0
    exe winnr . "wincmd w"
  elseif exists('*fnameescape')
    exe "split " . fnameescape(a:fname)
  else
    exe "split " . escape(a:fname, " \t\n*?[{`$\\%#'\"|!<")
  endif

  if a:command != ''
    exe "normal! " . a:command
  endif

  redraw
endfunc
PK�j�Z���??vim80/gvimrc_example.vimnu�[���" An example for a gvimrc file.
" The commands in this are executed when the GUI is started, after the vimrc
" has been executed.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2016 Apr 05
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.gvimrc
"	      for Amiga:  s:.gvimrc
"  for MS-DOS and Win32:  $VIM\_gvimrc
"	    for OpenVMS:  sys$login:.gvimrc

" Make external commands work through a pipe instead of a pseudo-tty
"set noguipty

" set the X11 font to use
" set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1

set ch=2		" Make command line two lines high

set mousehide		" Hide the mouse when typing text

" Make shift-insert work like in Xterm
map <S-Insert> <MiddleMouse>
map! <S-Insert> <MiddleMouse>

" Only do this for Vim version 5.0 and later.
if version >= 500

  " Switch on syntax highlighting if it wasn't on yet.
  if !exists("syntax_on")
    syntax on
  endif

  " For Win32 version, have "K" lookup the keyword in a help file
  "if has("win32")
  "  let winhelpfile='windows.hlp'
  "  map K :execute "!start winhlp32 -k <cword> " . winhelpfile <CR>
  "endif

  " Set nice colors
  " background for normal text is light grey
  " Text below the last line is darker grey
  " Cursor is green, Cyan when ":lmap" mappings are active
  " Constants are not underlined but have a slightly lighter background
  highlight Normal guibg=grey90
  highlight Cursor guibg=Green guifg=NONE
  highlight lCursor guibg=Cyan guifg=NONE
  highlight NonText guibg=grey80
  highlight Constant gui=NONE guibg=grey95
  highlight Special gui=NONE guibg=grey95

endif
PK�j�ZN��XX vim80/lang/menu_sk_sk.cp1250.vimnu�[���" Menu Translations:    Slovak

source <sfile>:p:h/menu_slovak_slovak_republic.1250.vim
PK�j�Zl�D�KK$vim80/lang/menu_sr_yu.iso_8859-5.vimnu�[���" Menu Translations:	Serbian

source <sfile>:p:h/menu_sr_rs.iso_8859-5.vim
PK�j�Z��YYvim80/lang/menu_de_de.utf-8.vimnu�[���" Menu Translations:	German for UTF-8 encoding

source <sfile>:p:h/menu_de_de.latin1.vim
PK�j�Z��YYvim80/lang/menu_fr_fr.utf-8.vimnu�[���" Menu Translations:	French for UTF-8 encoding

source <sfile>:p:h/menu_fr_fr.latin1.vim
PK�j�Z��S鋽�� vim80/lang/de/LC_MESSAGES/vim.monu�[�������<
|y����

��!�'7�/_�������LѢ:�Y�f�+n���"��ؤ��	�5�O�l��������ʥ;��զ�
�'�6�G�Z�i������0ɧ.��/)�0Y�
������Ũ
ߨ�
�$
�$2�W� h���@��D٩�2�"Q�t�"����Ϊߪ@�/�J�[�l�|���/��8Ϋ,�=4�r�������ά0�1�1C�u�������-խ�#�8�P�b����3��3��4�L�d�~���
����ïۯ���
�$%�J�LV� ��İܰ;�0�?�#L�	p�z�������
��ȱ�����	/�9�A�I�![�}�����̲Բ��� �$�?�Y�y�����
����6�����!:�\�
d�r�	���������&��	�"�*�>�=V�
����	������˵�	�
�
��
� �2�D�M�5k���-��1�&�:�R�g�z�������$��
�$�4�L�b�u���������ָ����� �2�B�
\�g�t���
������7����!�$�<�D�M�U�[�_�k�z�=~�2��������'�-@�2n�����?׻�3�D�+S��	������˼-��$7�\�
|���������=ν?�L�2[�!��%��@־9�EQ�9��CѿK�Ia�H��;�60�8g�3��<�4�-F�6t���%�������.�H�&X�,�#��4�� �@&�-g�0��:��;�=�"]���>��)��>��<9�v���#��:��'�9)�c�$|�9��4��;� L�>m�1��/���-+�Y�.h�B��"��2��40�*e���+��%��'�((�<Q�E��.��-�$1�V�<o���*��&�� �49�n������������������!�1�:�"B�e�q���������)���$�3�B�J�c�1|�?��������)�:�P�k�~�X��%����5�S�l�����������$���!�:�X�^�n�r���"��$����#�9�@�O�_������ ����4�8�	J�CT�V����
��

�.�D�-]���-��$��.��6,�c�.}�H��(���-�
F�OQ�O��
��C��	C�M�Y�!n�������3��2��! �(B�k� ��"��E���%+�#Q�-u�������&��!�3�E�c�|���'����)��+�@E�-����5���$�:�U�/p�9����E��=�-X�7��#�� ��:�5>�&t�"��&��$��#
�!.�=P�5�� ��(��7�.F�,u��������� �#!�&E�l�����������
�)�0H�$y�!�� ��(��4
�,?�l��������� �����16�h�!��%��%��!��%�;�$T� y�����?��&�#8�\�
x�A��%��"��"�94�'n�(��2��*��!�!?�)a�%��!��4��:�&C�;j�;��)��0�=�\�x�����#��!��8�&;�#b��� ��/��"���-#�Q�b�{�/��*��(��#�;�W�r�����>��� �:�"Q�t�������#���9�1U�1��)��1��%�7;�s�A��?���&�=�!\�~�����0��4�$:�)_�N��,��&�L,�y�����8����$
�2�L�#l�7��N��3�P�$k�!��3��,�2�%F�l�"����#���(�E�Bb���0��!� �<3�+p�����+�2��$0�U�,s���H��,�1�G�"g��������9#�]�r���0��#�'��&�6�,V�&������+�2��-.�(\���"��'��'�,�>�.U���#��,�W��)M"w,�%�� 
+2D2w2��!�52J5}'�#�)�3)$]%�����$,&Q x'�*�#�'%8^3~!��+�*?-j$����* E f$�$�)��,)Vk%��=�
	&	C	\	'v	�	�	$�	#�	0!
.R
0�
�
�
�

"9M-d ��7�)0$H(m��%�$�
.
A
'^
�
'�
 �
�
  87Y0��#�"%(H!q�-�1�65H~.�*�1�9%_*&�+�,�+*4V<�+�*�5Mbw�����"�*A\{����3Ok:~=�<�64<k�"��+�)%4O5�4�3�#05 f�D�P�%0Vu�����!3Up�����'-@!`��"��1�!8U"j�����1F_r�����*;)f�� ���	6"#Y})�&�K�6  I j � � � � � !"!&A!#h!�!�!+�!%�!7"5P"�"�",�"�"# #)6# `#�#�#�#�#�#$#$?$0W$�$�$�$�$4�$./%$^%)�%1�%;�%&.+&*Z&�&$�&�&%�&,'8'%I'o'�'�'&�'-�'&(5( Q(r(�(�(+�( �()?$))d)�)6�)#�)2*96*>p*8�*1�*+)8+)b+ �+)�+�+)�+*,"G,j,#�,"�,"�,)�,-7-%U- {-$�-�-�-!�-0 .Q.j.�.�."�.!�.9/8<//u/�/�/�/+�/%01B0)t0�0�0'�0%�01&11!X1%z1'�1%�1'�1-22D2w2�2$�2�2�23"!3D3d3!�31�3&�3�3!4!>4`4(u4�4�4+�485=57\5E�5!�5�56((60Q6#�6�6$�6�6#�6*7I7d7w70�72�70�7&8+C8)o8$�8/�8�89'9)@9,j9�9�9 �9�9	:-':,U:�:/�:+�:'�:!; A;0b;�;!�;,�;�;<("<K<d<0z<.�<�<1�<&,=:S=�=9�=�=:><>T>t>�>*�>�>3�>0?%I?2o?0�?!�?;�?R1@�@*�@�@�@(A+A+GA+sA�A �A"�A%�A $B+EB"qB+�B�B.�B4CIDC)�C)�C6�C6D-PD(~D/�D&�D<�D);E*eE�E7�E�E�EF*7FbF�F0�F/�F!�F"G*BG/mG;�G�G�GQH.cH�H$�H#�H0�H#,IPI2oI6�I�I+�I%%JXKJ;�J/�J;KLK!lK%�K"�KN�K.&L$UL&zLT�L#�L"M$=M bM�M�M#�M]�M CNBdN'�N�N/�N2O,OO"|O�O&�O(�O%	P/PNPlPE�P!�P �P7QJQ%`Q�Q'�Q�Q'�QR3R<IR�R"�R'�R�RS+"SNS(hS!�S5�S�S7T!@T%bT/�T!�T�T�T'U@U)_U;�U&�U(�U8V&NVuV.�V�V)�V&W,WEW'bW�W	�W�W�W�W�W�W#X	0X:XJX^X.uX�X.�X6�X!Y'Y6;Y#rY
�Y&�Y	�Y�Y�Y�YZ+Z 8Z%YZ!Z
�Z�Z(�Z��Za�[�[+\a=\�\�\�\(�\
�\	�\%�\
]*]&H]&o]�](�]�]	�]�]	^^
^&^D^Y^w^	�^2�^*�^�^_&_E_[_
q_|_	�_�_�_�_�_#�_(`*`<`	N`X`p`
�`�`�`2�`�`�`a/a<aBa$Wa|a/�a�a�a'�a�ab
)b$4b
Ybdbvb�b �b�b�b�b�b!�b c?c@Hc(�c�c'�c�c�c�c
dd3d#Sdwd�d�d.�d
�d�d	e
e*e<eRe'me�e�e
�e�e�e�e�eff:fYfof�f�f�f9�f9gJgagigvg
�g�g(�g�g�g�gh
h	h#h9hQhlh{h9�h
�h�h�h�hi&0iWivi�i�iC�iWj	hjrj�j�j�j
�j�j)�j�jk3kFOk�k�k�k�k�k�k(�kl8lUl1gl�l�l�l�l�l�lmm0.m;_m>�m�m�m
n1&n"Xn{nn�nA�n)�n=%oco(�o�o�o$�o0�op(p+p+Ap2mp�p�p�p�p�p	q
q�&q�qF�qr
r	r
(r6r+Krwr%�r0�rB�r('sPs1ls+�s*�s&�s9tMVt>�t)�t5
uACu4�u$�u*�uA
vALv&�v6�v�v<�v<1w?nw7�w/�w x"7xZx2ox0�x�x�xy#y8yLyfy�y�y2�y)�y+z,>z-kz �z!�z#�z{{1{5{9{X{	e{o{x{�{�{�{�{�{�{
�{
�{|	||4|A|	U|_|
o|}|
�|	�|5�|�|�|	�|�|}

}}&"}I}\}i}o}
w}�}
�}�}�}�}�}�}�}�}�}�}9�}B~DX~"�~$�~"�~)2AHd}��1�
�$�"�1�<P���'��!Ȁ���
�'�F�_�Hl�C����
�*�B�U�p�w���������� ɂ#�-�-<�j�|�����ǃ؃(�&�=�=L�����%��
�8�F'�.n�D��M�@0�0q�&��'Ɇ&�$�=�O�$j���-��؇�
�!�?�K�Q�l�~�����
��ň׈� �%�
*�8�"E�h�%z�*��.ˉ8��"3�#V�%z�#��Ċڊ��/�E�
T� b� ����
��‹ڋ���.�	F�P�i�2}���Ȍ׌ތ$���(�
7�E�#N�1r�1��1֍1�:�C�	L�
V�(a���������Ɏڎ
��
��6�(J�'s� ����ҏ�	�	$�.�"@�c�v���$��$��ِ�����
%�3�I�h���������̑ޑ���3�B�J�.V�.��.��.�.�.A�.p�.��&Γ ��%�<� W�:x���Ô˔ڔ�"��)�)H�r�	{�������ȕٕ���
�	�&�7�L�`�u�3��<���
	�
�%�/;�3k�����˘��@f�
��	��,���(	�#2�V�l�G~� ƛ�"�
%�3��J�F�[�r���������)
�4�L�*e�"��)��*ݞ�$�"=�%`�������,��*��2!�T�]f�^Ġ#�<�#[��#��¡ڡ�h��%c���������Ϣ<�]+�+��O���$�A�\�l�J��9դ2�B�W�%l�$��9����%�=�#Q�u���E��H��D�b�������ӧ
���
�*�=�U�t�5����K˨@�X�x�;��ԩ�-��$�0�M�_�t�}���
��
��ª�	��	�"�"7�Z�m�������
ܫ	�!��/�H�	e�o�{�����N��*��5�&S�z���������ȭխڭ'߭	�1�>C���6��
ٮ������
=�	K�U�e�
v���������'ǯE�5�2N�9��;�����*�=�P�o���3��ڱ�
��$�9�O�c�w�������ٲ�����(�8�E�_�n�{�������˳R�
6�#D�h�
��	������������ȴ^̴O+�{���	����4��J�R/�!����G�� �'�9�8H���
������ط;�� 3�#T�x�
������ĸѸH�E5�{�8��/ù'�b�G~�YƺB �Pc�X��T
�Sb�P��?�1G�6y�;��R�3?�9s���#̾���6�V�)j�0��"ſ;� $�BE�.��7��2�H"�-k�'����G�;�NU�?������(�'9�+a�A����:��0#�IT�L����M�;Y�.����@��"�>2�Lq�3��5��3(�0\�&��8��)��4�(L�Gu�T��:�4M�'����J��$�,3�+`�$��7�������1�=�R�h�y�������������3��/�?�N�n�*����8��
�$�@�U�\�u�7��D����*�2�I�Z�q�����c��%-�S�%Y�)�!��!�����
�,�@�.I�x�&��.��������%���%>�&d�#��8��	�����,�K�c�'��0��$��R��Q�
e�Gs�^���'�
3�->�l�.��"��2��+�58�?n���;��R�/[�������h��h)���T����
��!&�H�&P�w�6�5��"��'�7�!N�-p�9��$��*��4(�5]���!����*���-�@�\�%x�%��-����)�*:�Fe�<����>	�H�h�����F��H�!M�Wo���C��8)�&b�&��E��:��,1�7^�/��-��6��#+�YO�7��'��/	�G9�>��(�� ��
�!�<�2S�.��+������� =�^�{�#��#��D��+%�1Q�2��=��8��0-�^�w���������'��& �9G���#��0��-��!"�%D�j���/������D�0X�'��!����U��%9� _�4��P��.�+5�2a�3��(��0��1"�*T�%�=��G��/+�K[�O��=��A5�-w�-��$���� �+7�4c�@��>��%�">�+a�E��'����7�I�_��0��/��(��&"�!I�&k�%������O��(E�n���,��$����)�F�#c���G��A��C/�6s�2��(�8�?�G]�D����'�7@�x���#��C�\�)y�1��Z�=0�2n�X�����0�cK���+���#�/6�_f�P��(7�$`�1��1��B�5,�>b�,���<�)*�CT�4��!�!�!�;3�o�@��+�5��Z22�-�#�7=J4�!�2�$f7;� �+�)' Qr��#�:�.!I*kA�&�9�
9+G9s)���/G02x.��+�)$0N(�1��$>-rl4�*	9?	/y	)�	#�	�	I
J]
N�
�
$7S/i=�-�(2.7a.�,��"
8
&L
s
�
!�
�
+�
-!D'f+�,�C�"+ N8o!�5�3$4*Y$� ���%�%"2H2{7��9Vk)��?�"0SmH�!�.�#',K4x.�8�)&?f����1�<=\9�"�%�;$Y~/�%�&�""-E,s*�!�.�#;"_E�A�3
(>%g*�8�� 7,4d=�<�,@A7�7�6�()4R2�>�1�1+O]Z�0*9d}����� , C .V � � "� 9� $!9!Y! y!�!#�!�!�!"/"=N"@�"J�"8#DQ#�#$�#�#0�#.$DJ$@�$@�$A%S%Ae%$�%�%N�%a7&'�&#�&#�&/	'9'Q'p'%�'�'�'!�'((!:(\(z(&�(/�(�(.)4/)'d)�)"�)�)6�)*7*W*'r*�*�*�*=�*++G+`+~+�+�+�+�+,,:,X,u,.�,>�,9-<-U- s-�-�-�-@�-0#.T.1t.)�.W�.(/';/!c/�/�/�/�/�/�/&0#:0"^0�0�0-�0+�0<1:L1*�1+�15�12$32X2+s2 �2�2�2�23'3"B3e3~33�3�3�3 4&"4EI4E�44�43
56>5Cu5�5J�536-Q6)6,�6,�687<7BV7%�7 �7�7,�74#8*X8�8%�8"�8 �8#	9F-9$t9�9M�91:4:KT:)�:=�:);E2;Ax;>�;2�;),<4V<$�<+�<�<-�<,)==V=�=+�=.�=+	>/5>e>�>6�>&�>3?.6?&e?&�?7�?�?@@ =@?^@*�@K�@AA/WA!�A&�A�A0�A-B?DB;�B�B�B1�B*!C LC3mC!�C-�C-�C'D+GD8sD4�D�D�D$E,8E0eE �E%�E$�E$F''F>OF-�F%�F(�F*G6G(LGuG �G6�GE�G/HLOHY�H'�HI2I+MI1yI#�I�I$�I
J-*J;XJ,�J�J �J4�JD)KMnK#�K(�K&	L%0LFVL�L�L=�L;M@AM�M�M*�M�M&N3-N;aN�N8�N/�N*O&JO'qO<�O�O%�ODP]PtP.�P�P�P;�P=,Q%jQ2�Q)�Q3�Q)!RcKR�R3�RS#SBSbS)�S�S2�S"�S6"T=YT7�T8�TSUb\U%�U)�U V"0V7SV"�VB�V9�V+W!FW%hW7�W&�W=�W-+X+YX$�X3�XB�XX!Y'zY'�Y8�Y8Z5<Z1rZ=�Z3�ZS[2j[C�[�[B�[@\$_\�\+�\'�\�\1]9G] �])�]-�]7�]O2^&�^'�^N�^, _!M_(o_'�_9�_'�_ "`CC`=�`�`-�`0a`Da=�a/�aDbXb5xb*�b5�bOc9_c)�c0�c_�c2Td,�d+�d,�d!
e /e%Peive �eJf'Lf/tf1�f9�f5g'Fgng(�g+�g,�g'h3hQhToh!�h"�h=	iGi0_i#�i.�i �i+j%0jVjOtj*�j'�j-kEkak2}k�k:�k+lI7l!�l5�l#�l-�l8+m'dm�m!�m8�mn/%nGUn(�n&�nB�n#0oTo$io*�o3�o7�o %p,Fp.sp�p�p"�p�p�pq(q-@qnq{q�q#�q]�q.+r1ZrE�r�r�rN�rAsas+ms	�s�s�s�s�s�s%t*7t$bt�t�t3�t��th�uvD8vp}v�v�vw3
wAwJw)Yw�w%�w(�w&�w&xC/xsx�x�x�x�x
�x �xy#!yEy
Yy2dy+�y%�y�y#z$z?z
^zlz
~z�z�z�z&�z*�z+{$?{d{y{�{)�{�{�{	�{0|	3| =|^|z|�|�|*�|,�|<}	=}G}1L}~}�}
�}7�}�}~#~9~,T~�~�~�~�~4�~/DOT6��*�"�%�9�F�!S�5u�&��Ҁ%��3�I� U�v�"|�����ρ>�,�E�R�^�s�
������%��܂��$�0�"D�g�;~�=������
.�
<�J�2d�
������Є����,� L�m�}�F��Ӆ���#�1@�&r�&��&���K�bN�����Ї����&�K-�y�����Uˈ!�(1�Z�n�t�|�8��(ɉ!��02�c�j��������ي��5�<=�@z���ۋ!��A�$Y�~���&��Sˌ@�W`�&��1ߍ	��'7�9_�	������.Ǝ8��.�
N�\�y���
��)���ԏp�[���
��
���6.�e�/��8��Y�&C�j�0��9��;�3)�Q]�X��Q�,Z�=��YŔC�+c�3��KÕL�.\�;��ǖDϖD�UY�E��B��$8�0]���3��1ژ�)�G�c�z�&��$��� ��5�,T�.��/��0�.�)@�(j�����śț˛
�
���� � (�I�g�x�����������.̜���
�)�
:�H�M�	Z�7d���
����̝ٝ
ߝ�3�(�?�L�R�Z�f�
o�}�
��
������
������ƞE˞K�I]�4��1ܟ4�%C�i�y�}�����ΠӠ9�,�38�3l�%��Lơ �+4�%`���!��¢#�#�(�M:�P��٣:��4�R�$m���
����
���� Ǥ�(�+,�5X�5��ĥ ե%���-�?�+V�/����I���*�3<�
p�G~�PƧ7�MO�T��G�9:�.t�/��.ө:�=�-O�5}�!��,ժ%�%(�#N�#r�������ɫ۫����#�8�T�3g�������-���*�5+�=a�:��#ڭ(��+'�'S�{����� ��5��+�*;�%f�������	ȯ"ү
��+�/�
D�.R�.��5��,��	%�/�,>�k�
��������!��JݱL(�:u�:����
���.�C�Y�^�!y�����ɳ'߳��4�,H� u�����˴!�� �,�#>�b�u�	��8��8˵���"'�J�	Z�d�/|�%��Ҷ&�)�<�W�p�^��A�;#�_�o�x�:��:¸:��:8�:s�:��:�:$�._�)��,��!�'�@/�p�	��������&Ļ$�%�6�
?�.J�y�������
¼м
������2�	F�:P���S*K�O�Ih��pwEA�������]��O�?��~s�X������%�q
C�H(�)
>+�%T��cT�#��Qb�L�nS���s`Mi�5��^�jP�W�������
e��8�x�����������d���K�ncmm����&*Rq�0���Z�In���7kB_&R�}����4[�����b������,A����wh���6���2�o�d���|Gp7�%lw��!�%um�N���(����)�6!���Q����/�'~�"Q�J���6�x^�
�k��&KQ3:9��>��)��<$f�z����8e��k��-���;8�
?���u03&Eo��#.���Z����X'��R[]��Vw��`���=��dO3�*:�����x$�zz��������),�������r+,�*�hJ�\�H �}��\�>u�A3\�#x���M���^�@T�lw����u<�W�-���m>�$���A�X;w�y@��fL�pS� "g�Za_�@��e�!i_���&N,��t�+:pv'k���?��)�!U)��S*q�+����F��1�S��4<���I8�+�����Wx���y���Lw�!0���}�g�k������D�9X��?kz�� D"��]�^�Q,�P�0	IR@���|�c>�����FaG��0t�r~8�l�@-6G��9���e��W�F]Use���h�O^��o��`�=��~�M[R�K_8P��lTV�Bfh2�:���G�.��1�������N��E>�Zb{�O�����z�J��.�������D`f�1a�n�6Ru�Y
?;�����mfr>x���?=a���fsZ��S;~g���:ET���Y�;���Y6a
�
�g�9��39��4@.�)H���-�2���N���d(C���	�A�I��N$a�����[��v$H�n	�j5�W�����4c4��^/�	��y{Br�j�S�@����u@=D���v����P��f�������}����;�{��������*���V����<��g�2�(�o\q���
�AC-���H`=c/L�'��L��Kv����XV/(t2#D��<��/�����[�e�vzG�>�����+3i�&�0�����J�����1���/�/��E9i�����\��,nU�ykBp#c��{�Yv�]�C���D��wl�cIi�=�4E�;���9�+��!+�b��}	P{OKB����o�	������nT��(�^�[����
A����iT�M��5�	���QP�|y�-�������M�`7���s��1qH.�H�b����5'{AIN�}�Z<��|�K�U��fl�
I�3����$5��C�z��tE�d�����R��XBB2���<~yJ�,$�C��h����1����:e,
�i����0� ��#�/2�Y m��k���FY����%�jG���yF���L��NM��_�� �.��4j������{��$�8��W���hs����<�t�-~Y=�E�ap���V(g�{ ���q01�#:���i�K�Z�d��o~���e�jv��)PJM};O.��7MSu�4_J�7��r��gaV�%�[_3��O5�&dJ���`��s]��Q�qD7����\"�7�X
������o�H�2�5j����=�W^�t�����.	��������#B���h
����
��n������]V� *Np���|7!�|����6}�U�\(�'Ucs:6���Gb�x]b�otg����-�5F����8�"��|R�����mvLl'P|u�Z����jx_��!�C&����U\�D�rb?T��d�����V���t���l��'�X�mW[�U��"����"G�9��`L�
�Q%��pr���%�z�C�?YFqr����1*��y��"F
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info into "%c kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%s%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----clean		'nocompatible', Vim defaults, no plugins, no viminfo--cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked%s1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE946: Cannot make a terminal with running job modifiableE947: Job still running in buffer "%s"E948: Job still runningE948: Job still running (add ! to end the job)E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTerminalTerminal-finishedTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveactiveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yanked%sblock of 1 line yanked%sbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinishedfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %drunningsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim(deutsch)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-10-15 22:00+0200
PO-Revision-Date: 2008-05-24 17:26+0200
Last-Translator: Christian Brabandt
Language-Team: German <de@li.org>
Language: de
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO_8859-1
Content-Transfer-Encoding: 8-bit

	Zuletzt gesetzt in 

Argumente:


Verwendung:
         ver�ndert: 
         [nicht verwendbar auf diesem Rechner]
         [nicht verwendbar mit dieser Vim-Version]
         Host-Name: 
     Benutzer-Name: 
        Process-ID: 
       a: Finde Zuweisungen dieses Symbols
       c: Finde Funktionen, die diese Funktion aufrufen
       d: Finde Funktionen, die von dieser Funktion aufgerufen werden
       e: Finde dieses egrep Muster
       f: Finde diese Datei
       g: Finde diese Definition
       i: Finde Dateien, die diese Datei #inkludieren
       s: Finde dieses C Symbol
       t: Finde diese Zeichenkette

    Name        Args       Adresse Vervollst�ndigung Definition
   #   Zeile
   oder:
  # NACH TAG       VON Zeile  in Datei/Text
 Sprung Zeile Sp Datei/Text
# %s Geschichte (neueste bis �lteste):

# |-Zeilen, wortw�rtlich kopiert:

# Liste der Puffer:

# Datei-Marken:

# Geschichte der Markierungen innerhalb von Dateien (neueste zuerst):

# Geschichte (neueste zuerst):

# Letztes %sSuchmuster:
~
# Letzte ersetzte Zeichenkette:
$
# Register:

# globale Variablen:

(1) Ein anderes Programm editiert m�glicherweise diese Datei. Wenn dies
    der Fall ist, sollten Sie vorsichtig sein, damit es nicht zu
    �berschneidungen kommt. Beende oder fahre vorsichtig fort.

(Wollen Sie vielleicht diese Datei unter einem neuen Namen speichern

--- Autokommandos ---
--- Globale Optionswerte ---
--- Lokale Optionswerte ---
--- Men�s ---
--- Optionen ---
--- Register ---
--- Zeichen ---
--- Syntax-Elemente ---
--- Syntax Synchronisations-Elemente ---
--- Terminal Codes ---
--- Terminal Tasten ---
Argumente f�r den gvim (Athena Version):

Argumente f�r gvim GTK+ Version:

Argumente f�r den gvim (Motif Version):

Argumente f�r den gvim (neXtaw Version):

Gro�e Version 
Pipes k�nnen nicht angelegt werden

Shell kann nicht ausf�hrt werden 
Shell sh kann nicht ausf�hrt werden

'fork' schlug fehl

Befehl beendet

�bersetzt 
Konnte Security Context nicht erhalten f�r 
Konnte Security Context nicht setzen f�r 
Extra Patches: 
Auslagerungsdatei mit folgendem Namen gefunden: "
Riesige Version 
Wenn Sie einen neuen Schl�ssel eingegeben haben, aber die Textdatei nicht geschrieben haben,
Wenn Sie die Textdatei geschrieben haben, nachdem der Schl�ssel ge�ndert wurde, dr�cke Enter.
Inklusive der Patches: 
MS-Windows 32 Bit GUI Version
MS-Windows 32 Bit Konsolen-Version
MS-Windows 64 Bit GUI Version
MS-Windows 64 Bit Konsolen-Version
MacOS X (unix) Version
MacOS X Version
MacOS Version
Vielleicht wurden keine �nderungen vorgenommen oder Vim hatte die Auslagerungsdatei nicht aktualisiert.
Weitere Informationen mit: "vim -h"

Normale Version 
OpenVMS Version
Kleine Version 
Winzige Version 
Vim: ein X11 Fehler trat auf

ACHTUNG: Original-Datei k�nnte verloren oder zerst�rt sein

Wo Gro�/Kleinschreibung ignoriert wird, f�ge / am Anfang hinzu um das Flag gro� zuschreiben.
Sie k�nnen die Swap Datei jetzt l�schen.


[Bytes] gesamt alloc-frei %lu-%lu, in Verwendung %lu, maximale Verwendung %lu

�nder. Zeile Sp  Text
geben Sie bitte den Schl�ssel ein: 
Mark Zeile Sp  Datei/Text
Shell beendet 
Synchronisation an Elementen
um den gleichen Schl�ssel f�r die Textdatei und die Swap Datei zu nutzen.                              f�r Vim Voreinstellungen                                 f�r zwei Modi                      vom:       Eigentum von:          [kann nicht ge�ffnet werden]         [kann nicht gelesen werden]         [sieht nicht wie eine Vim Auslagerungsdatei aus]         [von Vim Version 3.0]         Dateiname:       defaults Datei: "      -- Nichts --
      neuer als Auslagerungsdatei!
         Benutzer-exrc-Datei: "        Benutzer-vimrc-Datei: "    Wenn dies der Fall ist, so verwenden Sie ":recover" oder "vim -r     Wenn dies bereits geschehen ist, l�schen Sie die Auslagerungsdatei "    Zeile=%ld  id=%d  Name=%s           System-Men�-Datei: "       Benutzer-gvimrc-Datei: "   Im aktuellen Verzeichnis:
   Im Verzeichnis    Benutze gegebenen Namen:
     vom:    Host-Name:           System-vimrc-Datei: "   # pri verw. tag  (Bereits aufgelistet) zweite Benutzer-exrc-Datei: "  DEBUG-VERSION Ein- (+) oder ausschlie�lich (-) der Eigenschaften:
  NICHT GEFUNDEN  TOTAL      ANZAHL MATCH   LANGSAMST   DURCHSCHN NAME               MUSTER  Verwendung eines Tags mit abgewandelter Gro�-/Klein-Schreibung     Voreinstellung f�r $VIM: "         System-gvimrc-Datei: " # pid   Datenbank Name	                    f�hrender Pfad
 (Unterbrochen) (NICHT GEFUNDEN) (enth�lt bereits vorher aufgez�hlte Treffer) (einf�gen) (Einf�gen) Scrollen (^E/^Y) (Zeile gel�scht) (nicht unterst�tzt) (paste) (ersetzen) (Ersetzen) Scrollen (^E/^Y) (l�uft noch) (v-ersetzen) zweite Benutzer-vimrc-Datei: " dritte Benutzer-vimrc-Datei: " < "%.*s" F�ge hinzu ArabischKONVERTIERUNGSFEHLER Kommandozeilen-Erg�nzung (^V^N^P) Kopiere %d von %d Definitions-Erg�nzung (^D^N^P) Dictionary-Erg�nzung (^K^N^P)  FEHLGESCHLAGEN Dateinamen-Erg�nzung (^F^N^P) Hebr�isch EINF�GEN Lokale Stichwort-Erg�nzung(^N^P) Stichwort-Erg�nzung (^N^P) Omni-Erg�nzung (^O^N^P) Pfadmuster-Erg�nzung (^N^P) ERSETZEN INVERTIERT AUSWAHL AUSWAHL BLOCK AUSWAHL ZEILE LEERZEICHEN/d/j: Seite/halbe Seite/Zeile vorw�rts, b/u/k: r�ckw�rts, q: Ende  Vorschlag der Rechtschreibpr�fung (s^N^P) Tag-Erg�nzung  (^]^N^P) Thesaurus-Erg�nzung (^T^N^P) Benutzerdefinierte Erg�nzung (^U^N^P) VISUELL VISUELL BLOCK VISUELL ZEILE V-ERSETZEN Zeilen-Erg�nzung (^L^N^P) [Ver�ndert] [a] [w] ^X Modus (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) angef�gt kann auf diesem Rechner nicht verwendet werden.
 kann nicht zusammen mit dieser Vim Version verwendet werden.
         und f�r $VIMRUNTIME: " wurde besch�digt (Pagesize kleiner als das Minimum).
 in Zeile %ld Information in "%c verwandte Datei
 Zeilenumbr�che Zeilen vor der obersten Zeile Markierungen oldfiles auf %ld Zeilen auf einer Zeile oder mehr zur�ckgegeben
 vim [Argumente]  mit OLE-Unterst�tzung geschrieben"
    um diese Nachricht zu vermeiden.
"
    um die �nderungen wiederherzustellen (siehe ":help recovery").
" ist bereits vorhanden!# Diese viminfo-Datei wurde von Vim %s generiert.
# Wert von 'encoding', als diese Datei geschrieben wurde
# Sie k�nnen sie ver�ndern, wenn Sie vorsichtig vorgehen!

%-5s: %s%*s (Verwendung: %s)%3d  %s %s  Zeile %ld%d Puffer gel�scht%d Puffer entladen%d Puffer vollst�ndig gel�scht%d doppelte(s) Wort(e) in %s%d Dateien zum Editieren
%d weitere Dateien zum Editieren. Trotzdem beenden?%d von %d bearbeitet%ld %s; %s #%ld  %s%ld Spalten; %ld Zeilen weniger%ld Zeilen %s %d Mal%ld Zeilen %s ein Mal%ld Zeilen --%d%%--%ld Zeilen ge�ndert%ld Zeilen gefiltert%ld Zeilen einger�ckt... %ld Zeilen verschoben%ld Zeilen zum Einr�cken... %ld Zeilen kopiert%s%ld Zeilen, %ld Treffer%ld Zeilen mehrvor %ld Sekunden%ld Ersetzungen%lld Zeichen%s Autokommandos f�r "%s"%s abgebrochen%s verworfen%s Zeile %ld%s schwebend gemacht%s wieder aufgenommen%s lieferte #%ld zur�ck%s lieferte "%s" zur�ck%s Wert unterscheidet sich von dem, was in einer anderen .aff Datei verwendet wird%s, Zeile %ld%s Fehlerliste %d von %d; %d Fehler%sviminfo: %s in Zeile: &Abbrechen&Aufheben&Filter&Hilfe&Ok&OK
&Abbrechen&OK
&Lies Datei&OkNur zum &Lesen �ffnen
Trotzdem &editieren
&Wiederherstellen
&Datei L�schen
&Beenden
&AbbrechenNur zum &Lesen �ffnen
Trotzdem &editieren
&Wiederherstellen
&Beenden
&Abbrechen&Ersetze&R�ckg�ngig&Ja
&Nein&Ja
&Nein
&Abbrechen&Ja
&Nein
Alle &Speichern
Alle &Verwerfen
&Abbrechen' nicht bekannt. Die folgenden eingebauten Terminals stehen zur Verf�gung:'-nb' kann nicht benutzt werden: Wurde zum Zeitpunkt des �bersetzens deaktiviert.
Die Option 'dictionary' ist leer.Option 'history' ist Null'readonly'-Option ist f�r "%s" gesetzt.
M�chten Sie trotzdem schreiben?Die Option 'thesaurus' ist leer.(%d aus %d)%s%s: (+%ld f�r BOM)(2) Eine Editiersitzung f�r diese Datei ist abgest�rzt.
(Unterbrochen) (Ung�ltig)(NFA) KONNTE NICHT �FFNEN %s !+			Starte am Ende der Datei+<lnum>		Start in Zeile <lnum>+reverse		Benutze keine invertierten Farben (auch mit: +rv),
oder die Datei wurde zerst�rt.-               lese Text von stdin--			Hiernach nur Dateinamen-- Mehr ---- Suche...--- Eingef�gte Dateien --gel�scht----Keine Zeilen im Puffer----clean		'nocompatible', Vim Standardwerte, keine Plugins, keine Viminfo--cmd <Befehl>	F�hre <Befehl> vor dem Laden jeglicher vimrc-Datei aus--cmd Argument--echo-wid		Schreibe die Window ID auf Standard Ausgabe.--literal		Platzhalter werden nicht ausgewertet--noplugin		lade keine "plugin"-Skripte--not-a-term		Keine Warnung ausgeben, wenn Eingabe/Ausgabe nicht auf einem Terminal ausgegebn wird--remote <Dateien>	Editiere <Dateien> in einem Vim-Server falls m�glich--remote-expr <Ausdruck>	F�hre <Ausdruck> in einem Vim-Server aus und drucke das Ergebnis--remote-send <keys>	Schicke <keys> zu einem Vim Server und beende--remote-silent <Dateien>  Dasselbe ohne Warnung, wenn kein Server vorhanden ist--remote-tab[-wait][-silent] <Dateien>  Wie --remote, aber �ffne ein Tab f�r jede Datei.--remote-wait <Dateien>  Wie --remote, aber warte, bis die <Dateien> editiert wurden--remote-wait-silent <files>  Dasselbe ohne Warnung, wenn kein Server vorhanden ist--role <role>	Setze eine eindeutige Rolle, um das Hauptfenster zu identifizieren--serverlist		Auflisten verf�gbarer Vim-Server-Namen und beende--servername <Name>	Benutze den Vim-Server <Name>--socketid <xid>	�ffne Vim in einem anderen GTK widget--startuptime <Datei>	Schreibe Start Zeitmessung in <Datei>--ttyfail		Beende, wenn Ein- oder Ausgabe nicht auf einem Terminal ausgegeben wird--version		Versionsinformation anzeigen und beenden--windowid <HWND>	�ffne Vim in einem anderen Win32 widget-A			Start im Arabischen Modus-C			Kompatibel zu Vi: 'compatible'-D			Debug-Modus-E			Verbesserter Ex Modus-F			Start im Farsi Modus-H			Start im Hebr�ischen Modus-L			Genauso wie -r-M			Modifikationen im Text nicht erlaubt-N			Nicht ganz kompatibel zu Vi: 'nocompatible'-O[N]		Wie -o, aber teile vertikal-P <parent title>	�ffne Vim innerhalb der Vater-Applikation-R			Nur Lese-Modus (wie "view")-S <session>		Lese Datei <session> nach dem Laden der ersten Datei-T <terminal>	Setze Terminaltyp auf <terminal>-U <gvimrc>		Benutze <gvimrc> anstatt jeglicher .gvimrc-V[N][Datei]		Verbose [level N] [Logge nach Datei]-W <scriptout>	Schreibe getippte Befehle in die Skript-Datei <scriptout>-X			Stelle keine Verbindung zum X-server her-Z			Eingeschr�nkter Modus (wie "rvim")-b			Bin�rmodus-background <Farbe>	Benutze <Farbe> f�r den Hintergrund (auch mit: -bg)-boldfont <Schriftart>	Benutze <Schriftart> f�r Fettschrift-borderwidth <Breite>	Benutze einen Rahmen der Breite <Breite> (auch mit: -bw)-c <Befehl>		F�hre <Befehl> nach dem Laden der ersten Datei aus-c Argument-d			Diff Modus (wie "vimdiff")-dev <device>		Verwende <device> for I/O-display <display>	Starte vim <display>-display <display>	Starte vim auf <display>-display <display>	Starte vim auf <display> (auch mit: --display)-e			Ex Modus (wie "ex")-f			Verwende nicht newcli zum �ffnen eines neuen Fensters-f			Vordergrund: Kein "fork" beim Start der GUI-font <Schriftart>	Benutze <Schriftart> f�r normalen Text (auch mit: -fn)-foreground <Farbe>	Benutze <Farbe> f�r den Text Vordergrund (auch mit: -fg)-g			Start als GUI (wie "gvim")-geometry <geom>	benutze <geom> f�r die Anfangs Abmessungen (auch mit: -geom)-h  or  --help	Anzeigen der Hilfe (diesen Text) und beenden-i <viminfo>		Benutze <viminfo> statt .viminfo-iconic		Starte vim als Icon-italicfont <Schriftart>	Benutze <Schriftart> f�r geneigten Text-l			Lisp Modus-m			Modifikationen (Schreiben von Dateien) sind nicht erlaubt-menuheight <H�he>	Benutze einen Men�-Balken der H�he <H�he> (auch mit: -mh)-n			Keine Auslagerungsdatei, verwende nur Speicher-o[N]		�ffne N Fenster (Vorgabe: f�r jede Datei eins)-p[N]		�ffne N Tabs (Vorgabe: einen f�r jede Datei)-q [Fehler-Datei]  �ffne Datei mit erstem Fehler-r			Liste nur Auslagerungsdateien auf-r (mit Dateiname)	Stelle abgest�rzte Session wieder her-register		Registriere diesen gvim in OLE-reverse		Benutze invertierte Farben (auch mit: -rv)-s			Leiser (batch) Modus (nur f�r "ex")-s <scriptin>	Lese Normal-Modus Befehle aus der Skript-Datei <scriptin>-scrollbarwidth <Breite>  Benutze eine Scrollbar der Breite <Breite> (auch mit: -sw)-t tag          �ffne Datei in der der Tag definiert wurde-u <vimrc>		Benutze <vimrc> anstatt jeglicher .vimrc-unregister		Deregistriere gvim aus OLE-v			Vi Modus (wie "vi")-w <scriptout>	Alle getippten Befehle der Skript-Datei <scriptout> anf�gen-x			Editiere verschl�sselte Dateien-xrm <resource>	Setze die gegebene Ressource-y			Leichter Modus (wie "evim", ohne Modi)/ Zeile ignoriert in %s Zeile %d: %s/encoding= Zeile nach Wort ignoriert in %s Zeile %d: %sein Puffer gel�schtein Puffer entladenein Puffer vollst�ndig gel�schtein Zeicheneine Zeile %s %d Maleine Zeile ein Mal %s1 Zeile --%d%%--eine Zeile ge�nderteine Zeile einger�ckt... eine Zeile weniger1 Zeile verschobeneine Zeile kopiert%seine Zeile, ein TrefferEine weitere Datei zum Editieren. Trotzdem beenden?eine Zeile mehreine Ersetzungzweite Benutzer-gvimrc-Datei: "dritte Benutzer-gvimrc-Datei: ": Versenden des Ausdrucks fehlgeschlagen.
: Versendung fehlgeschlagen.
: Versendung fehlgeschlagen. Versuche lokale Ausf�hrung
; Treffer <%s>%s%s  %d,  Hex %02x,  Oktal %03o<kann nicht �ffnen> <leer>> %d, Hex %04x, Oktal %o> %d, Hex %08x, Oktal %o??? von hier bis ???ENDE k�nnten die Zeilen falsch sein??? von hier bis ???ENDE k�nnten Zeilen eingef�gt oder gel�scht sein???BLOCK FEHLT???LEERER BLOCK???ENDE???ZEILENANZAHL FALSCH???ZEILEN FEHLEN???VIELE ZEILEN FEHLENANCHOR_BUF_SIZE zu klein.Eine neue Datenbank hinzuf�gencsope Datenbank %s hinzugef�gtAffix wird auch f�r BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST verwendet in %s Zeile %d: %sAffix Name zu lang in %s Zeile %d: %sAllesalle cscope Datenbanken zur�ckgesetztAlle inkludierten Dateien wurden gefundenBereits bei der j�ngsten �nderungBereits bei der �ltesten �nderungEs existiert nur ein TabBereits nur ein FensterF�ge Datei anArgument fehlt nachIn ZeileVersuche, die Skript-Datei erneut zu �ffnen: "Zur�ck am UrsprungBereichsgrenzen r�ckw�rts; vertauschenWerden Sie ein registrierter Benutzer von Vim!Beep!Vor byte %ldEndeSowohl SAL als auch SOFO Zeilen in %sHaltepunkt in "%s%s" Zeile %ldBedingung verletzt in %s Zeile %d: %sCOMPOUNDSYLMAX ohne SYLLABLE verwendetRufe Shell auf, um "%s" auszuf�hrentempor�re Datei kann nicht zum Umwandeln ge�ffnet werdenAbbrechenKann nicht erstellen Kann nicht ausf�hren Kann Datei $VIMRUNTIME/rgb.txt nicht �ffnen.Kann NIL nicht �ffnen:
Kann Datei "%s" nicht �ffnenkann nicht zum Lesen ge�ffnet werden: "kann nicht zur Skript-Ausgabe ge�ffnet werden: "Kann kein Verzeichnis einlesen: "%s"Undo-Datei kann nicht in eines der Verzeichnisse aus 'undodir' geschrieben werden.�ndere "%.*s" nach:Tab schlie�enSp %s von %s; Zeile %ld von %ld; Wort %lld von %lld; Byte %lld von %lldSp %s von %s; Zeile %ld von %ld; Wort %lld von %lld; Zeichen %lld von %lld; Byte %lld von %lldBefehlszeile�bersetzt: Compiler: %d von %d Knoten komprimiert; %d (%d%%) �brigKomprimiere W�rter-Baum...Umwandlungsfehler beim Wort in %s Zeile %d: %sUmwandlung in %s nicht unterst�tztUmwandlung in %s nicht unterst�tzt: von %s nach %sFehler bei der Umwandlung mit 'charconvert'Konnte Funktions-Zeiger in der DLL nicht korrigieren!Konnte Security Context %s f�r %s nicht erhalten. Entferne ihn!Konnte vim32.dll nicht laden!Tempor�re Logdatei kann nicht zum Schreiben ge�ffnet werdenKonnte tempor�re Datei zum Schreiben �ffnen, zeige auf Standard Fehlerausgabe ... Konnte Security Context %s f�r %s nicht setzen.Cscope Tag: %sMomentane %sSprache: "%s"Debug-ZeileDie Definition von COMPOUNDFORBIDFLAG nach dem PFX Element kann falsches Ergebnis in Zeile %s ergeben %dDie Definition von COMPOUNDPERMITFLAG nach dem PFX Element kann falsches Ergebnis in Zeile %s ergeben %dDifferenz mit VimUnterschiedliches verkn�pfendes Flag im fortgesetzten Affix-Block in %s Zeile %d: %sRichtungVerzeichnisseVerzeichnis	*.nichts
M�chten Sie es wirklich schreibenFertig!Doppeltes ; in der Liste von VariablenAbw�rtsDoppelte /encoding= Zeile ignoriert in %s Zeile %d: %sDoppelte /regions= Zeile ignoriert in %s Zeile %d: %sDoppeltes Affix in %s Zeile %d: %sDoppeltes Zeichen in MAP in %s Zeile %dDoppelter Feldname: %sDoppeltes Wort in %s Zeile %d: %sE100: Kein weiterer Puffer ist im Diff-Modus.E101: Mehrdeutigkeit: Mehr als zwei Puffer im Diff-Modus.E102: Kann Puffer "%s" nicht finden.E103: Puffer "%s" ist nicht im Diff-Modus.E104: 'Escape' ist in einem Digraphen nicht erlaubt.E105: :loadkeymap au�erhalb einer eingelesenen Datei.E107: Fehlende Klammern: %sE108: Keine solche Variable: "%s"E109: Fehlender ':' nach '?'E10: \ sollte von /, ? or & gefolgt werdenE110: Fehlendes ')'E111: Fehlende ']'E112: Optionsname fehlt: %sE113: Unbekannte Option: %sE114: Fehlendes Anf�hrungszeichen: %sE115: Fehlendes Anf�hrungszeichen: %sE116: Ung�ltige Argumente f�r die Funktion %sE117: Unbekannte Funktion: %sE118: Zu viele Argumente f�r Funktion: %sE119: Zu wenige Argumente f�r Funktion: %sE11: Ung�ltig im Kommandozeilenfenster; <CR> f�hrt aus, CTRL-C beendetE120: <SID> wurde nicht in einer Skript-Umgebung benutzt: %sE121: Undefinierte Variable: %sE122: Funktion %s existiert bereits; zum Ersetzen ! hinzuf�genE123: Undefinierte Funktion: %sE124: Fehlendes '(': %sE125: Unzul�ssiges Argument: %sE126: Fehlendes :endfunctionE127: Funktion %s kann nicht umdefiniert werden, da noch in VerwendungE128: Funktionsname muss mit einem Gro�buchstaben oder "s:" beginnen: %sE129: Funktionsname wird ben�tigtE12: Befehl nicht zul�ssig vom exrc/vimrc in der momentanen Verzeichnis- oder Tag-SucheE130: Unbekannte Funktion: %sE131: Funktion %s kann nicht gel�scht werden: sie ist in VerwendungE132: Funktionsaufrufstiefe �berschreitet 'maxfuncdepth'E133: :return au�erhalb einer FunktionE134: Verschiebe Zeilen in sich selbstE135: *Filter*-Autokommandos d�rfen den aktuellen Puffer nicht �ndernE136: viminfo: Zu viele Fehler; �berspringe Rest der DateiE137: Viminfo-Datei ist nicht schreibbar: %sE138: Schreiben der viminfo-Datei %s ist nicht m�glich!E139: Datei ist in einem anderen Puffer geladenE13: Datei existiert bereits (erzwinge mit !)E140: Zum Schreiben von partiellen Puffern ! verwendenE141: Kein Dateiname f�r Puffer %ldE142: Datei wurde nicht geschrieben: Schreiben ist durch die Option 'write' ausgeschaltetE143: Autokommandos l�schten unerwartet neuen Puffer %sE144: Nicht-numerisches Argument f�r :zE145: Shell-Befehle sind in rvim nicht erlaubt.E146: Regul�re Ausdr�cke k�nnen nicht durch Buchstaben begrenzt werden.E147: Kann :global nicht rekursiv mit einem Bereich ausf�hren.E148: Regul�rer Ausdruck fehlt in globalE149: Schade, keine Hilfe f�r %sE14: Ung�ltige AdresseE150: Kein Verzeichnis: %sE151: Kein Treffer: %sE152: %s kann nicht zum Schreiben ge�ffnet werden.E153: %s kann nicht zum Lesen ge�ffnet werden.E154: Doppelter Tag "%s" in der Datei %s/%sE155: Unbekanntes Zeichen: %sE156: Name des Zeichens fehltE157: Ung�ltige Zeichen-ID: %ldE158: ung�ltige Puffernummer: %sE159: Fehlende ZeichennummerE15: ung�ltiger Ausdruck: %sE160: Unbekannter "sign"-Befehl: %sE161: Haltepunkt nicht gefunden: %sE162: Puffer "%s" wurde seit der letzten �nderung nicht geschrieben.E163: Es gibt nur eine Datei zum Editieren.E164: Kann nicht vor die erste Datei hinausgehen.E165: Kann nicht �ber die letzte Datei hinausgehenE166: Gelinkte Datei kann nicht zum Schreiben ge�ffnet werdenE167: :scriptencoding au�erhalb einer eingelesenen DateiE168: :finish au�erhalb einer eingelesenen DateiE169: Befehl zu rekursivE16: Ung�ltiger BereichE170: Fehlendes :endforE170: fehlendes :endwhileE171: Fehlendes :endifE172: Nur ein Dateiname erlaubtE173: %ld weitere Dateien zum EditierenE173: Eine weitere Datei zum EditierenE174: Befehl existiert bereits: ! zum Ersetzen hinzuf�genE175: Kein Attribut angegebenE176: Falsche Anzahl von ArgumentenE177: Z�hler kann nicht zweimal angegeben werdenE178: Ung�ltige Voreinstellung f�r den Z�hlerE179: Argument ben�tigt f�r -addrE179: Argument ben�tigt f�r -completeE17: "%s" ist ein VerzeichnisE180: Ung�ltiger Adresstyp: %sE180: Ung�ltiger Wert der Vervollst�ndigung: %sE181: Ung�ltiges Attribut: %sE182: Ung�ltiger Befehls-NameE183: Benutzerdefinierte Befehle m�ssen mit Gro�buchstaben beginnen.E184: Unbekannter benutzerdefinierter Befehl: %sE185: Kann Farbschema '%s' nicht findenE186: Kein vorheriges VerzeichnisE187: UnbekanntE188: Die Bestimmung der Fensterposition ist f�r diese Plattform nicht implementiert.E189: "%s" existiert (erzwinge mit !)E18: Unerwartete Zeichen in :letE190: "%s" kann nicht zum Schreiben ge�ffnet werden.E191: Argument muss ein Buchstabe oder vorw�rts/r�ckw�rts-Anf�hrungszeichen seinE192: Rekursive Verwendung von :normal zu tiefE193: :endfunction au�erhalb einer FunktionE194: Kein anderer Dateiname zur Ersetzung mit '#'E195: viminfo kann nicht zum Lesen ge�ffnet werden.E196: Keine Digraphen in dieser Version.E197: Sprache kann nicht auf "%s" gesetzt werdenE198: cmd_pchar �ber die L�nge des Befehls hinausE199: Aktives Fenster oder Puffer gel�schtE19: Marke hat ung�ltige ZeilennummerE200: *ReadPre Autokommandos haben die Datei unlesbar gemachtE201: *ReadPre Autokommandos d�rfen nicht den aktuellen Puffer wechselnE202: Datei wurde durch Konvertierung unlesbar!E203: Autokommandos haben den zu schreibenden Puffer gel�scht oder entladenE204: Autokommandos haben die Anzahl der Zeilen in unerwarteter Weise ver�ndertE205: patchmode: Original-Datei kann nicht gespeichert werdenE206: patchmode: leere Original-Datei kann nicht ver�ndert werdenE207: Backup-Datei kann nicht gel�scht werdenE208: Fehler w�hrend des Schreibens nach "%s"E209: Fehler beim Schlie�en von "%s"E20: Markierung nicht gesetztE210: Fehler beim Lesen von "%s"E211: Datei "%s" ist nicht l�nger vorhandenE212: Datei kann nicht zum Schreiben ge�ffnet werdenE213: Fehler bei der Umwandlung (schreibe ohne Umwandlung mit !)E214: Tempor�re Datei kann nicht zum Schreiben ge�ffnet werdenE215: Unzul�ssiges Zeichen nach *: %sE216: Kein derartiges Ereignis: %sE216: Keine solche Gruppe oder Ereignis: %sE217: Autokommandos k�nnen nicht f�r ALL Ereignisse ausgef�hrt werdenE218: Autokommando-Schachtelung zu tiefE219: Es fehlt ein {.E21: Kann keine �nderungen machen, 'modifiable' ist ausE220: Es fehlt ein }.E222: Zum Lesepuffer hinzuf�genE223: rekursives MappingE224: Globale Abk�rzung f�r %s existiert bereitsE225: Globales Mapping f�r %s existiert bereitsE226: Abk�rzung f�r %s existiert bereitsE227: Mapping f�r %s existiert bereitsE228: makemap: Unzul�ssiger ModusE229: GUI kann nicht gestartet werden.E22: Skript ist zu tief verschachteltE230: Kann nicht von "%s" lesenE231: 'guifontwide' ung�ltigE232: BalloonEval kann nicht mit sowohl "message" und "callback" erzeugt werdenE233: Display kann nicht ge�ffnet werdenE234: Unbekannter Fontset: %sE235: Unbekannte Schriftart: %sE236: Schriftart "%s" hat keine feste BreiteE237: Drucker-Auswahl fehlgeschlagenE238: Fehler beim Drucken: %sE239: Ung�ltiger Text f�r ein Zeichen: %sE23: Keine alternative DateiE240: Keine Verbindung zum X-ServerE241: Kann nicht zu %s sendenE243: Argument wird nicht unterst�tzt: "-%s"; verwende die OLE Version.E244: Unzul�ssiger Zeichensatz-Name "%s" im Schriftart-Namen "%s"E244: Unzul�ssiger Eigenschaften-Name "%s" im Schriftart-Namen "%s"E245: Unzul�ssiges Zeichen '%c' in der Schriftart "%s"E246: FileChangedShell-Autokommando l�schte PufferE247: Kein registrierter Servername "%s"E248: Schicken des Befehls zum Ziel-Programm schlug fehlE24: Keine Abk�rzung gefundenE250: Schriftarten f�r die folgenden Zeichens�tze fehlen im Fontset %s:E251: Registry-Eigenschaft der VIM Instanz ist fehlerhaft. Gel�scht!E252: Fontset Name: %sE253: Fontset Name: %sE254: Kann die Farbe %s nicht zuweisen.E255: Fehler -- Sign-Daten konnten nicht gelesen werdenE256: Hangul-Automat FehlerE257: cstag: Tag nicht gefundenE258: Kann nicht zum Client senden.E259: keine �bereinstimmungen gefunden f�r cscope Abfrage %s aus %sE25: GUI kann nicht benutzt werden: wurde zum Zeitpunkt des �bersetzens nicht eingeschaltet.E261: cscope Verbindung %s nicht gefundenE262: Fehler beim Lesen der cscope Verbindung %ldE263: Dieser Befehl ist nicht verf�gbar, die Python-Bibliothek konnte nicht geladen werdenE264: Python: Fehler bei der Initialisierung von I/O ObjektenE265: $_ muss eine Instanz einer Zeichenkette seinE266: Dieser Befehl ist nicht verf�gbar, die Ruby Bibliothek konnte nicht geladen werdenE267: Unerwartetes 'return'E268: Unerwartetes 'next'E269: Unerwartetes 'break'E26: Hebr�isch kann nicht benutzt werden: wurde zum Zeitpunkt des �bersetzens nicht eingeschaltet.
E270: Unerwartetes 'redo'E271: 'retry' au�erhalb der 'rescue clause'E272: Unbehandelte ExceptionE273: Unbekannter longjmp Status %dE277: Server-Antwort kann nicht gelesen werden.E27: Farsi kann nicht benutzt werden: wurde zum Zeitpunkt des �bersetzens nicht eingeschaltet.
E280: TCL FATALER FEHLER: reflist kaputt!? Bitte vim-dev@vim.orgbenachrichtigen.E282: Kann nicht von "%s" lesenE283: Keine Markierungen passen auf "%s"E284: Kann die IC Werte nicht setzenE285: Eingabe-Kontext konnte nicht erzeugt werdenE286: Eingabemethode konnte nicht ge�ffnet werdenE287: Achtung: Destroy Callabck konnte nicht auf IM gesetzt werdenE288: Eingabemethode unterst�tzt keinen einzigen StilE289: Eingabemethode unterst�tzt nicht meinen Voreditier-TypenE28: Hervorhebungsgruppe existiert nicht: %sE293: Block war nicht gesperrtE294: Positionierungsfehler beim Lesen der AuslagerungsdateiE295: Lesefehler in der AuslagerungsdateiE296: Positionierungsfehler beim Schreiben in die AuslagerungsdateiE297: Fehler beim Schreiben in die AuslagerungsdateiE298: Block Nr. 0 nicht erhalten?E298: Block Nr. 1 nicht erhalten?E298: Block Nr. 2 nicht erhalten?E299: Perl-Evaluierung in der Sandbox ohne dem 'Safe' ModulE29: Noch kein eingef�gter TextE300: Auslagerungsdatei ist bereits vorhanden (symlink Attacke?)E301: Ups, Verlust der Auslagerungsdatei!!!E302: Auslagerungsdatei konnte nicht umbenannt werdenE303: Auslagerungsdatei f�r "%s" konnte nicht ge�ffnet werden, Wiederherstellung unm�glichE304: ml_upd_block0(): Block Nr. 0 nicht erhalten?E305: Keine Auslagerungsdatei f�r %s gefundenE306: %s kann nicht ge�ffnet werdenE307: %s sieht nicht wie eine Vim Auslagerungsdatei ausE308: Achtung: Die Originaldatei k�nnte ver�ndert worden seinE309: Block 1 kann nicht nicht von %s gelesen werdenE30: Keine vorherige BefehlszeileE310: Block 1 ID falsch (ist %s keine .swp-Datei?)E311: Wiederherstellung unterbrochenE312: Fehler wurden festgestellt w�hrend der Wiederherstellung: suche nach Zeilen die mit ??? beginnenE313: Kann nicht absichern, es gibt keine AuslagerungsdateiE314: Absicherung fehlgeschlagenE315: ml_get: unzul�ssige Zeilennummer: %ldE316: ml_get: kann Zeile %ld nicht findenE317: Zeiger Block id ist falschE317: Zeiger Block id falsch 2E317: Zeiger Block id falsch 3E317: Zeiger Block id falsch 4E318: Zu viele Blocks aktualisiert?E319: Der Befehl ist in dieser Version nicht implementiertE31: Kein Mapping gefundenE320: Kann Zeile %ld nicht findenE321: "%s" konnte nicht neu geladen werdenE322: Zeilennummer nicht im zul�ssigen Bereich: %ld nach dem EndeE323: Zeilenanzahl falsch in Block %ldE324: PostScript Ausgabe-Datei kann nicht ge�ffnet werdenE325: ACHTUNGE326: Zu viele Auslagerungsdateien gefundenE327: Teil des Men�punkt-Pfades muss zum Untermen� f�hrenE328: Men� existiert nur in anderen ModusE329: Kein Men� "%s"E32: Kein DateinameE330: Men�-Pfad darf nicht zum Untermen� f�hrenE331: Men�punkte k�nnen nicht direkt zum Men�-Balken hinzugef�gt werdenE332: Trenner kann nicht Teil des Men�-Pfades seinE333: Men�-Pfad muss zu einem Men�punkt f�hrenE334: Men� nicht gefunden: %sE335: Men� ist f�r Modus %s nicht definiertE336: Men�-Pfad muss zum Untermen� f�hrenE337: Men� nicht gefunden - �berpr�fe Men�-NamenE338: Kein Datei-Dialog im Konsole-ModusE339: Muster zu langE33: Kein vorheriger regul�rer ErsetzungsausdruckE340: Zeile wird zu langE341: Interner Fehler: lalloc(%ld, )E342: Kein Speicherplatz mehr vorhanden (%lu Bytes reserviert)E343: Ung�ltiger Pfad: '**[Nummer]' muss am Ende des Pfads sein, oder von '%s' gefolgt werden. Siehe ":help path".E344: Kann Verzeichnis "%s" nicht im 'cdpath' findenE345: Kann Datei "%s" nicht im Pfad findenE346: Kein weiteres Verzeichnis "%s" im 'cdpath' gefundenE347: Keine weitere Datei "%s" im Pfad gefundenE348: Keine Zeichenkette unter dem CursorE349: Kein Merkmal unter dem CursorE34: Kein vorheriger BefehlE350: Faltung kann mit der aktuellen Faltungsmethode nicht erzeugt werdenE351: Faltung kann mit der aktuellen Faltungsmethode nicht gel�scht werdenE352: Faltung kann mit der eingestellten Faltungsmethode nicht gel�scht werdenE353: Register %s ist leerE354: Ung�ltiger Register Name: '%s'E355: Unbekannte Option: %sE356: get_varp FEHLERE357: 'langmap': Passendes Zeichen fehlt f�r %sE358: 'langmap': �bersch�ssige Zeichen nach dem Semikolon: %sE359: Bildschirm-Modus wird nicht unterst�tztE35: Keine vorheriger regul�rer AusdruckE360: Kann Shell nicht mit der -f Option ausf�hrenE363: Muster ben�tigt mehr Speicher als 'maxmempattern'E364: Bibliotheksaufruf f�r "%s()" schlug fehlE365: Druck der PostScript-Datei schlug fehlE367: Keine solche Gruppe: "%s"E369: Ung�ltiges Element in %s%%[]E36: Zu wenig PlatzE370: Konnte Bibliothek %s nicht ladenE371: Befehl nicht gefundenE372: Zu viele %%%c im FormatE373: Unerwartetes %%%c im FormatE374: Fehlende ] im FormatE375: %%%c wird im Format nicht unterst�tztE376: Unzul�ssiges %%%c im Prefix des FormatsE377: Unzul�ssiges %%%c im FormatE378: 'errorformat' enth�lt kein MusterE379: Fehlender oder leerer VerzeichnisnameE37: Nicht geschrieben seit letzter �nderungE37: Kein Schreibvorgang seit der letzten �nderung (erzwinge mit !)E380: Am Anfang der Quickfix ListeE381: An Ende der Quickfix ListeE382: Kann nicht schreiben, 'buftype'-Option ist gesetztE383: Unzul�ssiges Suchmuster: %sE384: Suche erreichte den ANFANG ohne Treffer f�r: %sE385: Suche erreichte das ENDE ohne Treffer f�r: %sE386: Erwarte '?' oder '/'  nach ';'E387: Treffer ist auf der momentanen ZeileE388: Konnte Definition nicht findenE389: Konnte Muster nicht findenE38: Null-ArgumentE390: Unerlaubtes Argument: %sE391: Kein solcher Syntax Cluster: %sE392: Kein solcher Syntax-Cluster: %sE393: "group[t]here" ist an dieser Stelle ung�ltigE394: Konnte kein "region"-Element f�r "%s" findenE395: "contains"-Argument ist an dieser Stelle ung�ltigE397: Dateiname wird ben�tigtE398: Fehlendes '=': %sE399: Nicht ausreichend viele Argumente: syntax region %sE39: Nummer erwartetE400: Kein Cluster angegebenE401: Muster-Begrenzer nicht gefunden: %sE402: Schrott nach Muster: %sE403: Syntax sync: Zeilen-Fortsetzungsmuster zweifach angegebenE404: Unzul�ssige Argumente; %sE405: Gleichheitszeichen fehlt: %sE406: Leeres Argument: %sE407: %s ist hier nicht erlaubtE408: %s muss als Erstes in der Liste der enthaltenen Elemente auftretenE409: Unbekannter Gruppenname: %sE40: Fehlerdatei %s kann nicht ge�ffnet werdenE410: Ung�ltiger :syntax Befehl: %sE411: Hervorhebungsgruppe nicht gefunden: %sE412: Nicht gen�gend Argumente: ":highlight link %s"E413: Zu viele Argumente: ":highlight link %s"E414: Gruppe hat Einstellungen, highlight link ignoriertE415: Unerwartetes Gleichheitszeichen: %sE416: fehlendes Gleichheitszeichen: %sE417: Fehlendes Argument: %sE418: Unzul�ssiger Wert: %sE419: FG Farbe unbekanntE41: Speicher ersch�pft!E420: BG Farbe unbekanntE421: Unbekannte Farbbezeichnung oder -Nummer: %sE422: Terminal-Code zu lang: %sE423: Unzul�ssiges Argument: %sE424: Zu viele verschieden Hervorhebungsattribute in GebrauchE425: Kann nicht vor den ersten passenden Tag hinausgehenE426: Konnte Tag "%s" nicht findenE427: Es gibt nur einen passenden TagE428: Kann nicht �ber den letzten passenden Tag hinausgehenE429: Die Datei "%s" existiert nichtE42: Kein FehlerE430: Tag-Dateipfad wurde abgeschnitten f�r %s
E431: Format Fehler in Tag-Datei "%s"E432: Tag-Datei ist nicht sortiert: %sE433: Keine Tag-DateiE434: Kann Tag-Muster nicht findenE435: Konnte Tag m�glicherweise nicht finden!E436: Kein "%s" Eintrag in der Termcap-DateiE437: Terminalf�higkeit "cm" wird ben�tigtE438: u_undo: Zeilennummer falschE439: Liste der Wiederherstellungen fehlerhaftE43: Besch�digter SuchausdruckE440: Wiederherstellungszeile fehltE441: Es gibt kein VorschaufensterE442: topleft und botright k�nnen nicht gleichzeitig verwendet werdenE443: Rotieren nicht m�glich wenn ein anderes Fenster geteilt istE444: Letztes Fenster kann nicht geschlossen werdenE445: Anderes Fenster enth�lt �nderungenE446: Kein Dateiname unter dem CursorE447: Kann Datei "%s" nicht im Pfad findenE448: Bibliotheksfunktion %s konnte nicht geladen werdenE449: Ung�ltiger AusdruckE44: schadhaftes regexp ProgrammE455: Fehler beim Schreiben der PostScript-AusgabedateiE456: PostScript Ressource-Datei "%s" nicht gefundenE456: PostScript Ressource-Datei "cidfont.ps" nicht gefunden.E456: PostScript Ressource-Datei "prolog.ps" nicht gefunden.E456: Datei "%s" kann nicht ge�ffnet werden.E457: PostScript Ressource-Datei "%s" kann nicht gelesen werden.E459: Kann nicht ins vorhergehende Verzeichnis wechselnE45: Die Option 'readonly' ist gesetzt (erzwinge mit !)E460: Der Ressourcefork geht verloren (erzwinge mit !)E461: Unzul�ssiger Name der Variable: %sE462: Konnte das Neuladen von "%s" nicht vorbereitenE463: Region ist gesch�tzt; keine �nderung m�glichE464: Mehrdeutige Verwendung eines benutzerdefinierten BefehlsE465: :winsize ben�tigt zwei numerische ArgumenteE466: :winpos ben�tigt zwei numerische Argumente.E467: Benutzerdefinierte Vervollst�ndigung ben�tigt eine Funktion als Argument.E468: Argument f�r Vervollst�ndigung nur f�r benutzerdefinierte Vervollst�ndigung erlaubt.E469: Unzul�ssiges cscopequickfix Flag %c f�r %cE46: Variable "%s" kann nur gelesen werdenE470: Befehl abgebrochenE471: Argument ben�tigtE472: Befehl fehlgeschlagenE473: Interner FehlerE474: Ung�ltiges ArgumentE475: Ung�ltiges Argument: %sE476: Ung�ltiger BefehlE477: Kein ! erlaubtE478: Nur keine Panik!E479: Kein TrefferE47: Fehler w�hrend des Lesens der FehlerdateiE480: Kein Treffer: %sE481: Kein Bereich erlaubtE482: Kann Datei %s nicht erzeugenE483: Kann den Namen der tempor�ren Datei nicht ermittelnE484: Kann die Datei %s nicht �ffnenE485: Kann Datei %s nicht lesenE486: Muster nicht gefunden: %sE487: Argument muss positiv seinE488: �bersch�ssige ZeichenE48: In einer Sandbox nicht erlaubtE490: Keine Faltung gefundenE492: Kein EditorbefehlE493: Bereichsgrenzen r�ckw�rtsE494: Verwenden Sie w oder w>>E495: Kein Autokommando-Dateiname zur Ersetzung mit "<afile>"E496: Keine Autokommando-Puffernummer zur Ersetzung mit "<abuf>"E497: Kein passender Name eines Autokommandos zur Ersetzung mit "<amatch>"E498: kein :source Dateiname zur Ersetzung mit "<sfile>"E499: Leerer Dateiname f�r '%' oder '#', funktioniert nur mit ":p:h"E49: Ung�ltige Scroll-Gr��eE500: Ergibt eine leere ZeichenketteE501: Am DateiendeE505: "%s" ist Schreibgesch�tzt (erzwinge mit !)E505: %s ist schreibgesch�tzt (erzwinge mit !)E506: Sicherungsdatei kann nicht geschrieben werden (erzwinge mit !)E507: Fehler beim Schlie�en der Sicherungsdatei (erzwinge mit !)E508: Sicherungsdatei kann nicht gelesen werden (erzwinge mit !)E509: Sicherungsdatei kann nicht angelegt werden (erzwinge mit !)E50: Zu viele \z(E510: Sicherungsdatei kann nicht erstellt werden (erzwinge mit !)E511: netbeans ist bereits verbundenE512: Fehler beim Schlie�enE513: Schreibfehler, Umwandlung schlug fehl (leere 'fenc' um sie zu erzwingen)E513: Schreibfehler, Konvertierung fehlgeschlagen in Zeile %ld (leere 'fenc' um sie zu erzwingen)E514: Schreibfehler (Dateisystem voll?)E515: Keine Puffer wurden entladen.E516: Keine Puffer wurden gel�scht.E517: Keine Puffer wurden vollst�ndig gel�scht.E518: Unbekannte OptionE519: Option nicht unterst�tztE51: Zu viele %s(E520: Nicht erlaubt in einer ModelineE521: Zahl ben�tigt nach =E521: Zahl ben�tigt: &%s = '%s'E522: Nicht gefunden in 'termcap'E523: Hier nicht erlaubtE524: Fehlender DoppelpunktE525: Zeichenkette der L�nge NullE526: Fehlende Zahl nach <%s>E527: Fehlendes KommaE528: Ein ' Wert muss angegeben werdenE529: 'term' darf keine leere Zeichenkette seinE52: \z( ohne Gegenst�ckE530: Kann Terminal in der GUI nicht ver�ndernE531: Verwende ":gui", um die GUI-Version zu startenE533: Kann Breitschrift nicht ausw�hlenE534: Ung�ltige BreitschriftE535: Ung�ltiges Zeichen nach <%c>E536: Komma ben�tigtE537: 'commentstring' muss leer sein oder %s enthaltenE538: Keine Maus-Unterst�tzungE539: Unzul�ssiges Zeichen <%s>E53: %s%%( ohne Gegenst�ckE540: Nicht-geschlossene AusdrucksfolgeE541: Zu viele ElementeE542: Unausgewogene GruppenE543: Keine zul�ssige CodepageE544: Datei f�r die Tastaturbelegung (keymap) nicht gefunden.E545: Fehlender DoppelpunktE546: Unzul�ssiger ModusE547: Unzul�ssiger MauszeigerE548: Ziffer erwartetE549: Unzul�ssige ProzentangabeE54: %s( ohne Gegenst�ckE550: Fehlender DoppelpunktE551: Unzul�ssige KomponenteE552: Ziffer erwartetE553: Keine weiteren Eintr�geE554: Syntaxfehler in %s{...}E555: Am Ende des Tag-StacksE556: Am Anfang des Tag-StacksE557: Termcap-Datei kann nicht ge�ffnet werdenE558: Kein Terminal-Eintrag in der Terminfo-Datenbank gefundenE559: Kein Terminal-Eintrag in der Termcap-Datei gefundenE55: %s) ohne Gegenst�ckE560: Verwendung: cs[cope] %sE561: Unbekannter cscope SuchtypE562: Verwendung: cstag <ident>E563: 'stat' FehlerE563: stat(%s) Fehler: %dE564: %s ist kein Verzeichnis oder eine g�ltige cscope DatenbankE566: cscope Pipes konnten nicht angelegt werdenE567: Keine cscope VerbindungenE568: doppelte cscope Datenbank nicht hinzugef�gtE570: Fataler Fehler in cs_manage_matchesE571: Dieser Befehl ist nicht verf�gbar: die Tcl Bibliothek konnte nicht geladen werdenE572: Ekit-Code %dE573: Ung�ltige Server ID verwendet: %sE574: Unbekannter Register Typ %dE579: :if Schachtelung zu tiefE580: :endif ohne :ifE581: :else ohne :ifE582: :elseif ohne :ifE583: Mehrere :elseE584: :elseif nach :elseE585: :while/:for Schachtelung zu tiefE586: :continue ohne :while or :forE587: :break ohne :while oder :forE588: :endfor ohne :forE588: :endwhile ohne :whileE589: 'backupext' und 'patchmode' sind gleichE590: Ein Vorschaufenster existiert bereitsE591: 'winheight' darf nicht kleiner sein als 'winminheight'E592: 'winwidth' darf nicht kleiner sein als 'winminwidth'E593: Mindestens %d Zeilen werden ben�tigtE594: Mindestens %d Spalten werden ben�tigtE595: Enth�lt nicht-druckbare oder Multi-Byte ZeichenE596: Ung�ltige Schriftart(en)E597: Kann "Fontset" nicht ausw�hlenE598: Ung�ltiges "Fontset"E599: Wert von 'imactivatekey' ist ung�ltigE59: Ung�ltiges Zeichen nach %s@E600: Fehlendes :endtryE601: :try Schachtelung zu tiefE602: :endtry ohne :tryE603: :catch ohne :tryE604: :catch nach :finallyE605: Exception nicht gefangen: %sE606: :finally ohne :tryE607: Mehrere :finallyE608: Kann nicht :throw Exceptions mit 'Vim' Pr�fixE609: Cscope Fehler: %sE60: Zu viele komplexe %s{...}sE612: Zu viele Zeichen definiertE613: Unbekannte Druckerschriftart: %sE614: vim_SelFile: kann nicht zum laufenden Verzeichnis zur�ckkehren.E615: vim_SelFile: aktuelles Verzeichnis kann nicht ermittelt werden.E616: vim_SelFile: kann Schriftart %s nicht erhaltenE617: Kann in der GTK+ 2 GUI nicht ver�ndert werdenE618: Datei "%s" ist keine PostScript Ressource-Datei.E619: Datei "%s" ist keine unterst�tzte PostScript Ressource-Datei.E61: Verschachteltes %s*E620: Umwandlung nach dem Zeichensatz f�r den Ausdruck "%s" fehlgeschlagenE621: "%s" Ressource-Datei hat die falsche Version.E622: Konnte Fork f�r cscope nicht erstellen.E623: Konnte cscope Prozess nicht startenE624: Datei "%s" kann nicht ge�ffnet werden.E625: Kann cscope Datenbank nicht �ffnen: %sE626: Kann cscope Datenbank-Informationen nicht bekommenE62: Verschachteltes %s%cE630: %s(): geschrieben ohne eine Verbindung hergestellt zu haben.E631: %s(): Schreiben fehlgeschlagen.E63: Ung�ltige Verwendung von \_E64: %s%c nach NichtsE655: Zu viele symbolische Links (zirkul�r?)E658: Verbindung zu NetBeans f�r Puffer %ld verlorenE659: Kann Python nicht rekursiv ausf�hrenE65: Ung�ltige R�ckreferenzE661: Schade, keine '%s' Hilfe f�r %sE662: Am Anfang der �nderungslisteE663: Am Ende der �nderungslisteE664: Liste der �nderungen ist leerE665: GUI kann nicht gestartet werden, keine g�ltige Schrift gefunden.E666: Compiler nicht unterst�tzt: %sE667: Fsync fehlgeschlagenE668: Falscher Zugriffsmodus auf die NetBeans Zugriff-Informationsdatei: "%s"E669: Nicht druckbare Zeichen im Namen der GruppeE66: \z( ist hier nicht erlaubtE670: Mischung von Kodierungen einer Hilfedatei innerhalb einer Sprache: %sE671: Kann Fenstertitel "%s" nicht findenE672: Kann Fenster nicht innerhalb einer MDI Anwendung �ffnenE673: Unzul�ssiger Multi-Byte ZeichensatzE674: printmbcharset darf nicht leer sein mit Multi-Byte Zeichensatz.E675: Keine Standardschriftart angegeben f�r Multi-Byte Ausdruck.E676: Keine �bereinstimmenden Autokommandos f�r acwrite PufferE677: Fehler beim Schreiben einer tempor�ren DateiE678: Ung�ltiges Zeichen nach %s%%[dxouU]E679: Rekursive Schleife beim Laden von syncolor.vimE67: \z1 usw. ist hier nicht erlaubtE680: <buffer=%d>: Ung�ltige Puffer Nummer E681: Buffer ist nicht geladenE682: Ung�ltiges Suchmuster oder TrennzeichenE683: Dateiname fehlt oder ung�ltiges MusterE684: Index der Liste au�erhalb des zul�ssigen Bereichs: %ld.E685: Interner Fehler: %sE686: Argument von %s muss eine Liste sein.E687: Weniger Ziele als Eintr�ge in der Liste.E688: Mehr Ziele als Eintr�ge in der Liste.E689: Kann nur Listen und Dictionary indizierenE68: Ung�ltiges Zeichen nach \zE690: Fehlendes "in" nach :forE691: Kann nur eine Liste mit einer Liste vergleichen.E692: Unzul�ssige Operation f�r ListenE694: Unzul�ssige Operation f�r FunktionsreferenzenE695: Kann keine Funktionsreferenz indizieren.E696: Fehlendes Komma in der Liste: %sE697: Fehlendes Ende der Liste ']': %sE698: Variable ist zu tief verschachtelt f�r eine KopieE699: Zu viele ArgumenteE69: Fehlende ] nach %s%%[E700: Unbekannte Funktion: %sE701: Unzul�ssiger Typ f�r len()E702: Die Vergleichsfunktion der Sortierung ist fehlgeschlagen.E703: Funktionsreferenz als Zahl verwendetE704: Funktionsreferenz-Variable muss mit einem Gro�buchstaben beginnen: %sE705: Konflikt eines Variablennamens mit bestehender Funktion: %sE707: Funktionsname kollidiert mit Variable: %sE708: [:] muss am Schluss kommen.E709: [:] ben�tigt eine Liste als WertE70: %s%%[] ist leerE710: Listenwert hat mehr Eintr�ge als das Ziel.E711: Listenwert hat nicht gen�gend Eintr�ge.E712: Argument von %s muss eine Liste oder ein W�rterbuch sein.E713: Der Schl�ssel f�r das Dictionary darf nicht leer seinE714: Liste ben�tigtE715: Dictionary ben�tigtE716: Schl�ssel %s nicht im Dictionary vorhanden.E717: Dictionary-Eintrag existiert bereitsE718: Funktionsreferenz ben�tigtE719: Kann [:] nicht mit einem Dictionary verwendenE71: Ung�ltiges Zeichen nach %s%%E720: Fehlender Doppelpunkt im Dictionary: %sE721: Doppelter Schl�ssel im Dictionary: "%s"E722: Fehlendes Komma im Dictionary: %sE723: Fehlendes Ende des Dictionary '}': %sE724: Variable ist zu tief verschachtelt f�r die AnzeigeE725: Aufruf der 'dict' Funktion ohne Dictionary: %sE726: Stride ist NullE727: Start hinter dem EndeE728: Dictionary als Zahl verwendet.E729: Funktionsreferenz als String verwendetE72: Fehler beim Schlie�en der AuslagerungsdateiE730: Liste als String verwendetE731: Dictionary als String verwendetE732: Nutzung von :endfor mit :whileE733: Nutzung von :endwhile mit :forE734: Falscher Typ der Variable f�r %s=E735: Kann nur ein Dictionary mit einem Dictionary vergleichenE736: Unzul�ssige Funktion f�r ein DictionaryE737: Schl�ssel existiert bereits: %sE738: Kann Variablen nicht auflisten: %sE739: Kann Verzeichnis nicht erstellen: %sE73: tag Stapel leer.E740: Zu viele Argumente f�r Funktion %sE741: Wert ist gesperrt: %sE742: Kann Wert nicht �ndern: %sE743: Variable ist zu tief verschachtelt f�r (un)lock.E744: NetBeans erlaubt keine �nderungen in schreibgesch�tzten DateienE745: Liste als Zahl verwendet.E746: Funktionsname stimmt mit dem Namen der Skript-Datei nicht �berein: %s.E747: Kann das Verzeichnis nicht wechseln, da der Puffer ver�ndert wurde (erzwinge mit !)E748: Kein bereits verwendetes RegisterE749: Leerer PufferE74: Befehl zu kompliziertE750: Benutze vorher :profile start <fname>E751: Ausgabedatei darf keinen Regionsnamen habenE752: Keine vorhergehende ErsetzungE753: Nicht gefunden: %sE754: Maximal 8 Regionen unterst�tztE755: Ung�ltige Region in %sE756: Rechtschreibpr�fung ist nicht aktiviertE757: Das sieht nicht nach einem Rechtschreibw�rterbuch ausE758: Abgeschnittenes Rechtschreibw�rterbuchE75: Name zu langE760: Keine W�rter gez�hlt in %sE761: Format-Fehler in Affix-Datei FOL, LOW oder UPPE762: Zeichen in FOL, LOW oder UPP au�erhalb des zul�ssigen BereichsE763: 'Word Characters' unterscheiden sich zwischen Rechtschreibw�rterb�chernE764: Option '%s' ist nicht gesetztE765: 'spellfile' hat nicht %ld Eintr�geE766: Zu wenige Argumente f�r printf()E767: Zu viele Argumente f�r printf()E768: Auslagerungsdatei existiert bereits: %s (mit :silent! erzwingen)E769: Fehlende ] nach %s[E76: Zu viele [E770: Nicht unterst�tzter Abschnitt im Rechtschreibw�rterbuchE771: Altes Rechtschreibw�rterbuch, ben�tigt AktualisierungE772: Rechtschreibw�rterbuch ist f�r eine neuere Version von VimE773: Symlink Schleife f�r "%s"E774: 'operatorfunc' is emptyE775: Evaluierungsfunktion nicht verf�gbarE776: Keine PositionslisteE777: Zeichenkette oder Liste erwartetE778: Das sieht nicht nach einer .sug Datei aus: %sE779: Veraltete .sug Datei; Aktualisierung erforderlich: %sE77: Zu viele DateinamenE780: .sug Datei ist f�r eine neuere Version von Vim: %sE781: .sug Datei passt nicht zur .spl Datei: %sE782: Fehler beim Lesen der .sug Datei: %sE783: Doppeltes Zeichen im MAP EintragE784: Kann letzten Tab nicht schlie�en.E785: complete() kann nur im Einf�ge-Modus verwendet werden.E786: Bereich nicht erlaubtE787: Puffer �nderte sich unerwartet.E788: Einen weiteren Puffer zu editieren ist im Moment nicht erlaubtE789: Fehlende ']': %sE78: Unbekannte MarkierungE790: 'undojoin' ist nicht erlaubt nach 'undo'E791: Leerer keymap EintragE792: Leerer Men�nameE793: Kein weitere Puffer im diff-Modues ist modifizierbar.E794: Variable kann nicht in der Sandbox gesetzt werden: "%s"E795: Kann Variable nicht l�schen: %sE797: SpellFileMissing-Autokommando l�schte PufferE798: ID ist f�r ":match" reserviert: %ldE799: Ung�ltige ID: %ld (muss gr��er gleich 1 sein)E79: Kann die Platzhalter nicht erweiternE800: Arabisch kann nicht benutzt werden: wurde zum Zeitpunkt des �bersetzens nicht eingeschaltet.
E801: ID bereits benutzt: %ldE802: Ung�ltige ID: %ld (muss gr��er gleich 1 sein)E803: ID nicht gefunden: %ldE804: Kann '%' mit Floats benutzen.E805: Benutze Float als Nummer.E806: Float als String benutzt.E807: Erwarte Float Argument f�r printf()E808: Zahl oder Float ben�tigt.E809: #< is ohne +eval Eigenschaft nicht verf�gbarE80: Fehler w�hrend des SchreibensE810: Kann tempor�re Datei nicht lesen oder schreiben.E811: Puffer Information darf momentan nicht ge�ndert werden.E812: Autokommandos ver�nderten Puffer oder Puffername.E813: Autokommando-Fenster kann nicht geschlossen werdenE814: Kann Fenster nicht schlie�en, da nur Autokommando-Fenster �brig bleiben w�rdeE815: Dieser Befehl ist nicht verf�gbar, da die MzScheme Bibliotheken nicht geladen werden konnte.E816: Kann Patch Ausgabe nicht lesen.E817: Blowfish Big-/Little-Endian falsch.E818: Test sha256 fehlgeschlagenE819: Blowfish Test fehlgeschlagenE81: <SID> wurde nicht in einer Skript-Umgebung benutztE820: sizeof(uint32_t) ungleich 4.E821: Datei ist mit unbekannter Verschl�sselungsart verschl�sselt.E822: Undo-Datei kann nicht zum Lesen ge�ffnet werden: %sE823: Keine Undo-Datei: %sE824: Inkompatible Undo-Datei: %sE825: Besch�digte Undo-Datei (%s): %sE826: Entschl�sselung der Undo-Datei fehlgeschlagen: %sE827: Undo-Datei ist verschl�sselt: %sE828: Undo-Datei kann nicht zum Schreiben ge�ffnet werden: %sE829: Fehler beim Schreiben in Undo-Datei: %sE82: Kann keinen Puffer zuweisen; beende...E830: Undo Nummer %ld nicht gefundenE831: bf_key_init() mit leerem passwort aufgerufen.E832: Unverschl�sselte Datei besitzt verschl�sselte Undo-Datei: %sE833: %s is verschl�sselt, aber diese Version von Vim unterst�tzt Verschl�sselung nicht.E834: Widerspricht Wert aus 'listchars'E835: Widerspricht Wert aus 'fillchars'E836: Dieser Vim kann :python nicht nach :py3 ausf�hren.E837: Dieser Vim kann :py3 nicht nach :python ausf�hren.E838: netbeans wird nicht unterst�tzt mit dieser GUI.E839: Vervollst�ndigungsfunktion �nderte Fenster.E83: Kann den Puffer nicht zuweisen; benutze einen anderen...E840: Vervollst�ndigungsfunktion hat Text gel�scht.E841: Reservierter Name kann nicht f�r benutzerdefinierten Befehl verwendet werden.E842: Keine Zeilennummer f�r  "<slnum>" vorhanden.E843: Fehler beim Aktualisieren der Verschl�sselung der swap Datei.E844: Ung�ltiger cchar WertE845: Nicht ausreichend Speicher, Wortlist wird unvollst�ndig seinE846: Tastencode nicht gesetztE847: Zu viele Syntax IncludedateienE848: Zu viele Syntax ClusterE849: Zu viele Highlight- und SyntaxgruppenE84: Keinen ver�nderter Puffer gefundenE850: Ung�ltiger Register NameE851: Erstellung des GUI-Prozesses fehlgeschlagenE852: Der Kindprozess zum Starten der GUI fehlgeschlagen.E853: Doppelter Argumentname: %sE854: Pfad f�r Vervollst�ndigung zu lang.E855: Autokommandos f�hrten zu einem Abbruch.E858: Eval hat kein g�ltiges Pythonobjekt zur�ckgegebenE859: Konvertierung von zur�ckgegebenen Pythonobjekt zu Vim Wert fehlgeschlagenE85: Es gibt keine angezeigten Puffer.E862: g: kann nicht hier benutzt werdenE864: Auf \%#= muss 0, 1, oder 2 folgen. Die automatische Engine wird genutzt E865: (NFA) Regexp Ende verfr�ht aufgetretenE866: (NFA regexp) Deplatziert %cE867: (NFA) Unbekannter Operator '\%%%c'E867: (NFA) Unbekannter Operator '\z%c'E868: Fehler beim Erstellen der NFA f�r �quivalenzklasse!E869: (NFA) Unbekannter Operator '\@%c'E86: Puffer %ld existiert nicht.E870: (NFA regexp) Fehler beim Lesen der Wiederholungsbeschr�nkung.E871: (NFA regexp) Ein Multi darf nicht auf ein Multi folgen!E872: (NFA regexp) Zu viele '('E873: (NFA regexp) geeigneter AbschlussfehlerE874: (NFA) Konnte nicht vom Stack herausnehmen!E875: (NFA regexp) (Beim Konvertieren von postfix zu NFA), zu viele Zust�nde auf Stack enthaltenE876: (NFA regexp) Nicht genug Speicher zum Speichern der NFAE877: (NFA regexp) Ung�ltige Zeichenklasse: %ldE878: (NFA) Konnte nicht Speicher allokieren um �ste zu durchlaufen!E879: (NFA regexp) Zu viele \z(E87: Kann nicht �ber den letzten Puffer hinaus gehen.E881: Zeilenanzahl �nderte sich unerwartetE882: Die Uniq Vergleichsfunktion ist fehlgeschlagen.E883: Suchmuster und Ausdrucksregister d�rfen nicht mehr als 1 Zeile enthalten.E884: Funktionsname darf keinen Doppelpunkt enthalten: %sE885: Nicht m�glich Zeichen %s zu �ndern.E886: Kann viminfo Datei nicht in %s umbenennen!E887: Dieser Befehl ist nicht verf�gbar, da das Python site Module nicht geladen werden konnte.E888: (NFA regexp) kann nicht wiederholt werden %sE88: Kann nicht vor den ersten Puffer gehen.E890: �bersch�ssige Zeichen nach ']': %s]%sE891: Funktionsreferenz als Float verwendet.E892: String als Float verwendet.E893: Liste als Float verwendet.E894: Dictionary als Float verwendet.E895 Dieser Befehl ist nicht verf�gbar, da die MzScheme racket/basis Module nicht geladen werden konnten.E898: socket() in channel_open()E89: Puffer %ld seit der letzten �nderung nicht gesichert (erzwinge mit !)E901: gethostbyname() in channel_open()E902: Kann keine Verbindung zu Port herstellen.E903: Befehl mit Nicht-String Argument empfangen.E904: Letztes Argument f�r expr/call muss eine Zahl sein.E904: Drittes Argument f�r call muss eine Liste sein.E905: Unbekannter Befehl empfangen: %s.E906: Kein offener ChannelE907: Benutze Spezialvariable als Float.E908: Ung�ltiger Wert als String verwendet.E909: Kann Spezialvariable nicht indexieren.E90: Kann letzten Puffer nicht ausladenE910: Job als Zahl verwendet.E911: Benutzte Job als Float.E912: Kann ch_evalexpr()/ch_sendexpr() nicht mit einem Raw oder NL Channel benutzen.E913: Channel als Zahl verwendet.E914: Channel als Float verwendet.E915: F�r in_io Puffer muss in_buf oder in_name gesetzt sein.E916: kein g�ltiger JobE917: Kann keinen Callback mit %s() durchf�hren.E918: Puffer muss geladen sein: %s.E919: Verzeichnis nicht gefunden in '%s': "%s"E91: Die Option 'shell' ist leerE920: F�r _io Datei muss _name gesetzt ist.E921: Ung�lg�ltiges Callback ArgumentE922: Erwarte ein Dictionary.E923: Zweites Argument von function() muss eine Liste oder ein Dictionary sein.E924: Aktuelles Fenster wurde geschlossen.E925: Aktuelle Quickfix wurde ge�ndert.E926: Aktuelle Positionsliste wurde ge�ndert.E927: Ung�ltige Aktion '%s'E928: String wird ben�tigt.E929: Zu viele tempor�re viminfo Dateien (wie %s)!E92: Puffer %ld nicht gefunden.E930: Kann :redir nicht innerhalb von execute() verwenden.E931: Puffer kann nicht registriert werden.E932: Closure Funktion kann nicht auf �ussersten Level definiert sein: %sE933: Funktion wurde gel�scht: %sE934: Kann nicht zu einem Puffer ohne Namen springen.E935: Ung�ltige Submatch Nummer: %dE936: Kann die aktuelle Gruppe nicht l�schen.E937: Versuch, Puffer zu l�schen, der noch benutzt wird.E938: Doppelter Schl�ssel im JSON: "%s"E939: Positiver Zahl ben�tigtE93: Mehr als ein Treffer f�r %s.E940: Kann Variable "%s" nicht sperren  bzw. entsperren.E941: Server bereits gestartet.E942: +clientserver Eigenschaft nicht verf�gbarE943: Befehlstabelle muss aktualisiert werden, f�hre 'make cmdidxs' ausE944: Bereich in Zeichenklasse r�ckw�rtsE945: Bereich in Zeichenklasse zu gro�E946: Kann ein Terminal mit einem laufenden Job nicht modifizierenE947: Job noch aktiv in Puffer "%s"E948: Job l�uft nochE948: Job l�uft noch (Beenden mit !)E94: Kein �bereinstimmender Puffer f�r %s.E95: Ein Puffer mit diesem Namen existiert bereits.E96: Kann Diff f�r mehr als %ld Puffer nicht erstellen.E97: Kann keinen Diff erstellen.E98: Diff-Ausgabe kann nicht gelesen werden.E99: Aktueller Puffer ist nicht im Diff-Modus.FEHLER: �ffne Datei�ffne Datei in einem neuen FensterEditiere mit &VimEditiere mit &mehreren VimsEditiere mit vorhandenem Vim - Editiere mit einem &VimEditiert die ausgew�hlte(n) Datei(en) mit VimZeichensatz:Ende der FunktionEnde der eingelesenen DateiGeben Sie bitte den Schl�ssel ein: Geben Sie die Nummer der Auslagerungsdatei ein die verwendet werden soll (0 um abzubrechen): Geben Sie den gleichen Schl�ssel nochmals ein:Debug-Modus. Geben Sie "cont" zum Fortsetzen ein.Ex-Modus. Geben Sie "visual" ein, um zum Normal-Modus zur�ckzukehren.FehlerFehler und UnterbrechungFehler beim Erzeugen des Prozesses: �berpr�fen Sie, ob gvim in Ihrem Pfad ist!Fehler beim Ausf�hren von "%s":FehlerdateiGesch�tzter Speicher zur Laufzeit: %d BytesExceptionException gefangen: %sException verworfen: %sException beendet: %sException geworfen: %sAusf�hrung von %sErwartetes MAP gez�hlt in %s Zeile %dErwartetes REP(SAL) gez�hlt in %s Zeile %dY oder N erwartet in %s Zeile %d: %sAusdruckExterne 'submatches':
FLAG nach dem Gebrauch von Flags in %s Zeile %d: %sFehler beim setzen des Path hooks: sys.path_hooks ist keine Liste
Sie sollten jetzt eine der folgenden Alternativen tun:
- vim.path_hook zu sys.path_hooks hinzuf�gen
- vim.VIM_SPECIAL_PATH zu sys.path hinzuf�gen
Fehler beim setzen des Pfades: sys.path ist keine Liste
F�gen Sie vim.VIM_SPECIAL_PATH zu sys.path hinzuDie Datei "%s" existiert nichtDateiinhalt hat sich ge�ndert, kann Undo Informationen nicht nutzen.Dateiberechtigung von "%s" ist nur-lesbar.
M�glicherweise kann die Datei dennoch geschrieben werden.
Fortsetzen?Datei gesichertDateienFilterSuche & Ersetze (benutze '\\' um ein '\' zu finden)&N�chsteSuche N�chstesSuche (benutze '\\' um ein '\' zu finden)Wonach suchen:Lesen der Undo-Datei %s abgeschlossenErstes doppeltes Wort in %s Zeile %d: %sFlag ist keine Zahl in %s Zeile %d: %sSchriftart '%s' hat keine feste BreiteBreite der Schriftart%ld ist nicht doppelt so breit wie Schriftart0Schriftart 0 Breite: %ldSchriftart 0: %sSchriftart 1 Breite: %ldSchriftart 1: %sSchriftart:F�r Option %sSchrott nach dem OptionsargumentHerzliche Gr��e, Vim Benutzer!Helfen Sie armen Kindern in Uganda!Absatzende erreichtI/O FEHLER%d Wort(e) mit nicht-ASCII Zeichen ignoriert in %s%d W�rter mit nicht-ASCII Zeichen ignoriertIgnoriere zu lange Zeile in TagsdateiUnzul�ssiger DateinameUnerlaubtes Flag in %s Zeile %d: %sUnzul�ssiger Register NameUnzul�ssiges Zeichen am AnfangEingabe-ZeileEingabe _MethodenUnterbrechungUnterbrechung: UnterbrochenUng�ltiges Argument f�rUng�ltige Spezifikation der SchriftartUng�ltige Regionsnummer in %s Zeile %d: %sUng�ltiger Wert von FLAG in %s Zeile %d: %sDie Schl�ssel stimmen nicht �berein!Verbindung abbrechenLinken: Liste oder Nummer erforderlichLua bibliothek kann nicht geladen werden.Gro�-/KleinschreibungNur ganzes Wort suchenNachricht�bersetzt von Christian Brabandt <cb@256bit.org>'>' fehltFehlende FOL/LOW/UPP Zeile in %sFehlende SOFO%s Zeile in %sVer�ndert von Name:Ben�tige %s Version %ld
Brauche Amigados Version 2.04 oder neuere
Geben Sie bitte den Schl�ssel f�r "%s" ein: NetBeans verweigert das Schreiben von unver�nderten Puffern.Neuer TabNeinKeine Syntax-Elemente f�r diesen Puffer definiertKeine Abk�rzung gefundenKeine Haltepunkte definiertKeine AnzeigeKeine Anzeige: Versenden des Ausdrucks fehlgeschlagen.
Keine Eintr�geKeine inkludierten DateienKein Mapping gefundenKeine Markierungen gesetztKein Treffer beim Cursur, finde den n�chstenKeine passenden AutokommandosKeine Alt-DateienKeine AuslagerungsdateiKein Text zum DruckenWiederherstellung nicht m�glich; setze trotzdem fortKeine vom Benutzer definierten Befehle gefundenNicht verwendetNicht gen�gend Speicher um Referenzen zu setzen, Garbagecollection abgebrochen!Lese nicht Undo-Datei, Besitzer unterscheidet sich: %sNichts zum WiederherstellenAnzahl der W�rter nach 'Soundfolding': %ldOKDatei �ffnen Dialog�ffne Tab...�ffne Tab...�ffnen des X-Displays schlug fehlZeit�berschreitung w�hrend des �ffnens des X-Displays�ffnen des X-Displays dauerte %ld msecOriginal-Datei "%s"�berschreibe existierende Datei "%s"?Seite %dPartielles Schreiben f�r NetBeans Puffer verweigertPatch-DateiDie L�nge des Pfads ist zu gro�!Pfad:Muster in jeder Zeile gefunden: %sMuster nicht gefundenMuster nicht gefunden: %sF�hre 'Soundfolding' durch...Bet�tigen Sie die EINGABETASTE oder geben Sie einen Befehl einDruckauftrag abgeschicktGedruckt: %sDrucke '%s'Ausdruck abgebrochenDrucke Seite %d (%d%%)Muster suchenFrageLese Affix-Datei %s ...Lese Rechtschreibw�rterbuch zur�ck...Lese W�rterbuch-Datei %s ...Lese von stdin...Lese Rechtschreibw�rterbuch "%s" einLese Undo-Datei: %sLesen der viminfo-Datei "%s"%s%s%sLese Wort-Datei %s ...Recovery durchgef�hrt. Pufferinhalt entspricht Dateiinhalt.Wiederherstellung beendet. Pr�fen Sie, ob alles alles OK ist.Verbindungen reinitialisierenErsetzenErsetze &allesAlle ersetzenErsetzen mit:Vi kompatible EinstellungMode-freier Betrieb, getippter Text wird eingef�gtSpeichern alsDatei Speichern DialogUmleitung SpeichernSitzung SpeichernEinstellungen SpeichernAnsichten Speichern�nderungen in "%s" speichern?Durchsuchen des W�rterbuchs: %sDurchsuche inkludierte Datei: %sDurchsuche TagsDurchsuche: %sScrollbar Widget: Geometrie des Bildchens kann nicht ermittelt werden.SuchausdruckSuche nach "%s"Suche nach "%s" in "%s"Suche inkludierte Datei %sTag-Datei %s wird durchsuchtLesen Sie ":help E312" f�r weitere Informationen.Siehe ":help W11" f�r mehr InformationSiehe ":help W12" f�r mehr InformationSiehe ":help W16" f�r mehr InformationVerzeichnis Auswahl Dialog%s%ld von %ld Zeilen; %lld von %lld W�rtern; %lld von %lld Bytes ausgew�hlt%s%ld von %ld Zeilen; %lld von %lld W�rtern; %lld von %lld Zeichen; %lld von %lld Bytes ausgew�hltAuswahlSchicke zum Drucker...Verbindungen anzeigenZeige Gr��e in Punktendiese Nachricht anzeigenZeichen f�r %s:Gr��e:�berspringe Schreiben der Undo-Datei, es gibt nichts zum r�ckg�ngig machen.Hilfe-Datei "%s" nicht gefundenLeider keine Vorschl�geLeider nur %ld Vorschl�geDieser Befehl ist nicht verf�gbar, da die Perl-Bibliothek nicht geladen werden konnteLese Vim-SkriptUnterst�tzen Sie die Entwicklung von VimStapel Gr��e w�chstStil:ErsetzeAuslagerungsdatei "Auslagerungsdatei "%s" existiert bereits. �berschreiben?Auslagerungsdatei ist bereits vorhanden!Swap Datei is verschl�sselt: "%s"Auslagerungsdateien gefunden:Wechsele zur Backtracking RE Engine f�r Muster: Tab %dRei�e dieses Men� abTerminalTerminal beendetTest des X-Displays schlug fehlDanke f�r die Benutzung von VimDie Datei wurde erstellt um Einziger TrefferVim wurde nicht mit der "diff"-Eigenschaft �bersetzt.Dieser cscope-Befehl unterst�tzt nicht Teilen des Fensters.
Zu viele "+command", "-c command" oder "--cmd command" ArgumenteZu viele zusammengesetzte FlagsZu viele Editor-ArgumenteZu viele zur�ck gestellte Pr�fixeZu viele zur�ck gestellte Pr�fixe und/oder zusammengesetzte FlagsZu viele Regionen in %s Zeile %d: %sAnfangGesamte Anzahl von W�rtern: %d�bersch�ssiger Text in %s Zeile %d: %sTippe:  :qa!  und dr�cke <Enter> um alle �nderungen zu verwerfen und Vim zu beendenGew�nschte Nummer und <Enter> eingeben (abbrechen mit <Enter>): Bitte Nummer und <Enter> eingeben oder mit der Maus ausw�hlen (abbrechen mit <Enter>): Block 0 kann nicht gelesen werden aus Befehls-Server Name kann nicht registriert werdenUnbekanntUnbekanntes OptionsargumentNicht erkanntes Flag in %s Zeile %d: %sNicht erkanntes oder doppeltes Element in %s Zeile %d: %sUnbenanntAufw�rtsBenutze Vim Version 3.0.
CUT_BUFFER0 anstatt der leeren Auswahl benutztBenutze den Schl�ssel der Swap Datei f�r die Textdatei.
Verwende Auslagerungsdatei "%s"VIM - ACHTUNGVIM - Suchen und Ersetzen...VIM - Suchen...VIM - verbesserter ViVIM FehlerVIM: Fenster kann nicht ge�ffnet werden!
VIMRUN.EXE wurde im Pfad $PATH nicht gefunden.
Externe Befehle werden nach Ausf�hrung nicht anhalten.
Siehe  :help win32-vimrun  f�r weitere Informationen.Vim - Auswahl der SchriftartVim E458: "Colormap"-Eintrag kann nicht zugewiesen werden, einige Farben k�nnen falsch seinVim AchtungVim-DialogVim FehlerVim Fehler: ~aVim beendet mit %d
Vim ist Open Source und kann frei weitergegeben werdenVim: Fing Ereignis %s ein
Vim: Fehler beim Lesen der Eingabe, Abbruch...
Vim: Fehler: Konnte gvim nicht von NetBeans aus starten
Vim: Fehler: Diese Version von Vim kann nicht in einem Cygwin Terminal ausgef�hrt werden
Vim: Hauptfenster unerwartet gel�scht
Vim: Lese von stdin...
Vim: "die"-Request von Session-Manager erhalten
Vim: Achtung: Die Eingabe kommt nicht von einem Terminal
Vim: Achtung: Die Ausgabe erfolgt nicht auf einem Terminal
W10: Achtung: �ndern einer schreibgesch�tzten DateiW11: Achtung: Datei "%s" wurde ver�ndert, seit mit dem Editieren angefangen wurdeW12: Achtung: Datei "%s" wurde ver�ndert und der Puffer wurde in Vim ebenfalls ver�ndertW13: Achtung: Datei "%s" wurde erstellt, nachdem mit dem Editieren begonnen wurdeW14: Achtung: �berlauf der Dateinamensliste.W15: Achtung: Falscher Zeilentrenner, vielleicht fehlt ein ^MW16: Achtung: Mode der Datei "%s" wurde ver�ndert seit mit dem Editieren angefangen wurdeW17: Arabisch ben�tigt UTF-8, bitte ':set encoding=utf-8' ausf�hrenW18: Ung�ltiges Zeichen im Namen der GruppeW19: L�sche Autogruppe, die noch in Benutztung ist.W20: Erfoderliche Python Version 2.x nicht unterst�tzt, ignoriere Datei: %sW21: Erforderliche Python Version 3.x nicht unterst�tzt, ignoriere Datei: %sW22: �bersch�ssiger Text nach :endfunction: %sACHTUNG: Die Datei wurde seit dem letzten Lesen ge�ndert!!!AchtungAchtung: Kann Wortliste "%s.%s.spl" oder "%s.ascii.spl" nicht findenAchtung: Kann Wortliste "%s_%s.spl" oder "%s_ascii.spl" nicht findenAchtung: Unerwartetet einen andren Puffer ge�ffnet (�berpr�fen Sie die Autokommandos)Achtung: Benutze eine schwache Verschl�sselungsart; siehe :help 'cm'.Achtung: Sowohl zusammengesetzte W�rter als auch NOBREAK angegebenAchtung: Region %s nicht unterst�tztAchtung: Terminal unterst�tzt keine HervorhebungBeim �ffnen der Datei "�berschreibe nicht mit Undo-Datei, nicht lesbar: %s�berschreibe nicht, dies ist keine Undo-Datei: %sFenster-Position: X %d, Y %dWort '%.*s' hinzugef�gt zu %sWort '%.*s' entfernt von %sWort aus anderer ZeilePartielle Datei schreiben?Schreibe Rechtschreibw�rterbuch %s ...Schreibe Datei %s f�r Vorschl�ge ...Schreiben der Undo-Datei %sSchreiben der viminfo-Datei "%s"Falscher CHECKCOMPOUNDPATTERN-Wert in %s Zeile %d: %sFalscher COMPOUNDMIN-Wert in %s Zeile %d: %sFalscher COMPOUNDRULES-Wert in %s Zeile %d: %sFalscher COMPOUNDSYLMAX-Wert in %s Zeile %d: %sFalscher COMPOUNDWORDMAX-Wert in %s Zeile %d: %sXSMP ICE Verbindungs�berwachung fehlgeschlagenXSMP SmcOpenConnection fehlgeschlagen: %sXSMP verarbeitet 'save-yourself request'XSMP verlor ICE VerbindungXSMP �ffnet VerbindungJAJaUMWANDLUNGSFEHLER in Zeile %ld][CR fehlt][Gel�scht][Ausgabeger�t][Datei zu gro�][Hilfe][UNZUL�SSIGES BYTE in Zeile %ld][Unvollst�ndige letzte Zeile][Positionsliste][NICHT konvertiert][Neues VERZEICHNIS][Neue Datei][Neue Datei][Neu][Unbenannt][Nicht geschrieben seit der letzten �nderung]
[Nicht editiert][Keine Erlaubnis][Vorschau][Quickfix-Liste][LESE-FEHLER][RO][Lesefehler][Scratch][Aufrufe] gesamt re/malloc()s %lu, gesamt free()s %lu

[Zeichen spezial][konvertiert][verschl�sselt][dos Format][dos][fifo/socket][fifo][Datei ..]      editiere die angegebenen Datei(-en)[lange Zeilen geteilt][mac Format][mac][noeol][Nur Lesen][socket][unix Format][unix]_Abbrechen_Schlie�en_OK_�ffnen_Speichernaktivadd() Argumentnachund "diff" mit der Original-Datei ausf�hren, um �nderungen zu pr�fen)Versuch der Zuweisung von Sequenzgr��e %d zu erweiterten Slice der Gr��e %dVersuch der Zuweisung von Sequenzgr��e gr��er als %d zu erweiterten SliceVersuch, Bezug auf einen gel�schten Puffer zu nehmenVersuch, Bezug auf einen gel�schten Tab zu nehmenVersuch, Bezug auf eine gel�schtes Fenster zu nehmenEntferne Autokommando: %s <buffer=%d>Autokommando %svorBlock von %ld Zeilen kopiert%sBlock von einer Zeile kopiert%sung�ltiger Puffervon von Bram Moolenaar und Andereninputrestore() wurde h�ufiger als inputsave() aufgerufen.rufe %s aufOutputObject-Attribute k�nnen nicht gel�scht werdenAusgabe von 'charconvert' kann nicht gelesen werdenkann Konsolenmodus nicht wechseln ?!
Puffer/Fenster-Befehl kann nicht ausgef�hrt werden: das Objekt wird gel�schtZeile kann nicht gel�scht werdenkann vim.Dictionary Attribute nicht l�schenkann vim.List Attribute nicht l�schenkann Zeile nicht erhaltenZeile kann nicht eingef�gt werdenkann Zeile nicht ein-/anf�genKann festes Dictionary nicht �ndernkann feste Liste nicht modifizierenkann nicht �ffnenkann keinen Callback-Befehl registrieren: Puffer/Fenster ist bereits gel�schtkann keinen Callback-Befehl registrieren: Puffer/Fenster-Referenz nicht gefundenZeile kann nicht ersetzt werdenkann Information f�r die Wiederherstellung nicht speichernKann nicht Attribut %s setzenkann Zeile(n) nicht setzenkann nicht kopieren; l�sche trotzdem�nderung�nderungenschlie�eBefehl: %sweiter in %s"%s" konnte nicht gelesen werdenkonnte Puffer nicht �ffnencs_create_connection exec fehlgeschlagencs_create_connection setpgid fehlgeschlagencs_create_connection: fdopen von fr_fp fehlgeschlagencs_create_connection: fdopen von to_fp fehlgeschlagencscope Befehle:
cscope Verbindung %s geschlossenCursor Position au�erhalb des PuffersVoreinstellung 'Block 1 gel�scht?Dictionary is gesperrtkonnte nicht zu spezifiziertem Tab wechselnkonnte nicht zu spezifizierten Fenster wechselndlerror = "%s"beenden Sie nicht den Editor bis die Datei erfolgreich geschrieben wurde!Leerer Schl�ssel nicht erlaubtUmgebungsvariableFehler beim Konvertieren der Scheme Werte nach Vim.Error-Handlererwartete 3 Tuple als Ergebnis von imp.find_module(), erhielt jedoch %serwartete 3 Tuple als Ergebnis von find_module(), but erhielt Tuple der Gr��e %dErwartete bytes() oder str() Instanz, erhielt jedoch %serwartete int() oder etwas was sich zu int() wandeln l�sst, erhielt jedoch %serwartete int(), long() or etwas was sich zu long() wandeln l�sst, erhielt jedoch %serwartete Sequenz Element der Gr��e 2, but erhielt Sequenz der Gr��e %derwartete str() oder unicode() Instanz, erhielt jedoch %serwartete vim.Puffer Objekt, erhielt jedoch %serwartete vim.TabPage Objekt, erhielt jedoch %serwartete vim.Window Objekt, erhielt jedoch %sAusdr�cke wurden zur Zeit des �bersetzens nicht zugelassenextend() ArgumentHinzuf�gen von Objekt zu Liste fehlgeschlagenKonnte Schl�ssel '%s' zu Dictionary nicht hinzuf�gen.Verzeichniswechsel fehlgeschlagenkonnte Fenster im aktuellen Tab nicht findenUmbenennen des Puffers fehlgeschlagenFehler beim Ausf�hren der Funktion %sAusf�hren des Codes fehlgeschlagen.Wechsel zu Puffer %d fehlgeschlagenZeilen wenigerDatei
Dateiname / Kontext / Zeile
filter() ArgumentbeendetLesen von %s beendetFrame auf letzter Ebene: %dFrame ist Nullgebe %ld Zeilen freiFunktion %s existiert nichtgvimext.dll FehlerHashtab ver�nderte sich w�hrend der InitialisierungHilfeversteckte Optionim Pfad ---
Index muss eine Int oder Slice sein, nicht %sinsert() Argumentinterner Fehler: NULL Referenz �bermitteltinterner Fehler: konnte Objekt nicht Liste hinzuf�geninterner Fehler: Zugriff auf Vim Listobjekt %d fehlgeschlageninterner Fehler: imp.find_module gab Tuple mit NULL zur�ckinterner Fehler: ung�ltiger Werttypinterner Fehler: Keine Vim Listobjekt %dinterner Fehler: nicht gen�gend Listobjekteinterner Fehler: unbekannter Optionstypunzul�ssiges Attribut: %sung�ltige Puffernummerung�ltiger Ausdruckung�ltiger Name einer Markierungist ein Ger�t (durch 'opendevice' Option deaktiviert)ist ein Verzeichnisist keine Dateiist keine Datei oder beschreibbares Deviceist schreibgesch�tzt (erzwinge mit !)Tastatur-UnterbrechungZeile %4ld:Zeile %6d, Wort %6d - %sZeile %ldZeile %ld von %ld --%d%%-- Spalte Zeile %ld: %sZeile %ld: "%s" konnte nicht gelesen werdenZeile %ld: lese "%s"Zeile wenigerZeilennummer au�erhalb des zul�ssigen BereichsZeilennummer au�erhalb des zul�ssigen BereichsListen Konstruktor akzeptiert keine Keyword ArgumenteListen Index au�erhalb des g�ltigen BereichsListe is gesperrtausloggenmap() ArgumentMarkierung muss ein einzelner Buchstabe seinMarkierung nicht gesetztTreffer %dTreffer %d von %dTreffer in Dateimaximal mch_get_winsize: keine Konsole??
Men�  Editieren->Globale Einstellung->Einf�ge-Modus ein- und ausschalten  Men�  Editieren->Globale Einstellung->Vi-Kompatibilit�t ein- und ausschaltenMen�   Hilfe->Waisen            f�r Informationen dar�ber Men�   Hilfe->Sponsor/Register  f�r mehr Informationen    minimal modelineZeile mehrZeilen mehrnetbeans wird in dieser GUI nicht unterst�tzt
neue Shell gestartet
neinkeine cscope-Verbindungen
keine spezifische �bereinstimmungkein solcher Tab vorhandenung�ltiges Fensterkeine Synchronisationinnerhalb der Vim-Sandbox nicht erlaubtnicht gefunden in '%s' nicht gefunden: "%s"nicht implementiertNummer �nderung Wann               GesichertNummer muss gr��er gleich 0 seinNummer muss gr��er als 0 seinpe_line_count ist Nullpre-vimrc Befehls-ZeileProblem beim Wechseln der Fensternur-Lesen Attribut: Pufferaufzeichnenremove() Argumentersetze durch %s (y/n/a/q/l/^E/^Y)?reverse() ArgumentZeile %d Spalte %dF�hre ausSuche erreichte das ENDE und wurde am ANFANG fortgesetztSuche erreichte den ANFANG und wurde am ENDE fortgesetztShell Shell gab %d zur�ckbeendenSlice Schritt kann nicht Null seinsort() Argumentlese "%s"stack_idx sollte 0 seinZeichenfolge kann keine Zeilenwechsel enthaltenSynchronisation an C-Stil KommentarenSynchronisation beginnt Syntax ignoriere Gro�-/KleinschreibungSyntax unterscheide Gro�-/KleinschreibungSyntax conceal deaktiviertSyntax conceal aktiviertsyntax iskeyword Pr�fe Rechtschreibung von Text ohne zugeh�rige Syntaxgruppen nur bei @Spell/@NoSpell Attribut.Pr�fe keine Rechtschreibung von Text ohne zugeh�rige SyntaxgruppePr�fe Rechtschreibung von Text ohne zugeh�rige SyntaxgruppeTag %d aus %d%sTag-Namenach %s auf %sTippe  :help cp-default<Enter>  f�r Informationen dar�ber Tippe  :help iccf<Enter>        f�r Informationen dar�ber Tippe  :help register<Enter>    f�r mehr Informationen    Tippe  :help sponsor<Enter>     f�r mehr Informationen    Tippe  :help version8<Enter>    f�r Versions-InformationenTippe  :help<Enter>  oder <F1>  f�r Online Hilfe          Tippe  :q<Enter>                zum Beenden               Tippe  :set nocp<Enter>         f�r Vim-Voreinstellungen  konnte nicht %s zu Vim Dictionary konvertierenkonnte %s nicht zu Vim Liste konvertierenkonnte %s nicht zu Vim Struktur konvertierenkonnte Optionswert nicht erhaltenKonnte globale Option %s nicht aufhebenkonnte option %s nicht aufheben, da sie keinen globalen Wert hatuniq() Argumentunbekanntunbekanntes Flag: unbekannte Optionunbekannte vimOptionUnbenannte Funktion %s existiert nichtWert zu gro� f�r einen C IntegerwertWert zu klein f�r einen C IntegerwertVersion vim FehlerFensterindex au�erhalb des zul�ssigen Bereichsung�ltiges Fenstermit (klassischem) GUI.mit Carbon GUI.mit Cocoa GUI.mit GTK2 GUI.mit GTK2-GNOME GUI.mit GTK3 GUI.mit GUI.mit Photon GUI.mit X11-Athena GUI.mit X11-Motif GUI.mit X11-neXtaw GUI.ohne GUI.Schreiben auf Ger�t durch 'opendevice' Option deaktiviert.PK�j�Z1�nGGvim80/lang/menu_es.latin1.vimnu�[���" Menu Translations:	Spanish

source <sfile>:p:h/menu_es_es.latin1.vim
PK�j�Z�G���,�, vim80/lang/sk/LC_MESSAGES/vim.monu�[�����]3��e�����
 �.�7�'M�/u�����ш0��%�+-�Y�"t�����5����(�7��M�,��;'�c�z�����ċՋ���
�(�@�W�n�0��.��/�1�0G�-x�
����ʍ�
��	�
� )�J�Y�m�!����"Ɏ���@$�e�����������%ԏ/��=*�h������1��1� �5�J�f�-����Α����*�3B�3v�$��ϒ���6�G�
a�l�{�������
ϓ$ݓ� �/�G�;_�����#��	۔�����'�
0�;�U�f�r���	��������!Ε����?�G�f�n� v�����̖�����
��6!�X�v���!��З
ؗ�	����)�.�'3�	[�"e�*����˘ۘ�����
�
&�1�
:�E�W�i�r�5��ƙ-ؙ1�&8�_�w�������Śښ��$�,�
<�G�S�b�r�������ś؛����%�1�=�L�^�
x�����
������7͜��*�2�;�C�I�M�Y�h�2l�=��ݝ����'�-.�5\�����?Ȟ�$�5�D�	S�]�v�����-���$	�.�
N�Y�i�}���?��5�(�!?�%a�9��E��9�CA�I��HϢ;�0T�6��8��3��-)�W�%q�����Ĥޤ&�,�#B�4f� ��@��-��0+�\�;q���"ͦ�>�@�)Z�>��<ç�# �:D�'�9���$��9�4Y�;�� ʩ>�1*�/\���-��ת.�B�"X�/{���2ʫ*��(�+F�%r�'��(��<�E&�.l�(��-ĭ$��<0�m�*��&��ٮ �4	�>�O�a�t�}���������Я��
����"�<�H�W�o�����)��ܰ$�!
�,�;�C�"O�"r�����1DZ?��O9���������IJղ���H2�%{�������޳����$!�F�!W�y���������ϴ"��$�B�#a�������Qŵ�&�6�H�^� y�����9̶!�?(�Ph���
Ʒ
Է)߷	�-"�P�-o�$��.¸���"3�
V�Cd�	������!ӹ�����3�2R�!��(�� к"�E�Z�%w�#��-���
�*�&F�m������ȼ�)��@"�c�5����̽�D�G�Ed���-ž7�#+� O�:p�5��&�"�&+�$R�#w�!��=��5�� 1�(R�7{�!��,���3� M�#n�&���������!�;�W�v�0��$��!�� 
�(.�4W�,����������� +�L�i�1����!��%��%�%@�f� �����?��&�!>�`�
|�A��%��"��"�98�'r�(��2��*��!!�!C�)e�%��!��4��:�&G�;n�;��)��0�A�`�|�����#��!��8�&?�#f��� ��/��"���-'�U�f��/��*��(��#�?�[�v�����>��
�$�>�"U�x�������!���9�1W�)��1��%��7�C�A]�?�������!-�O�k���0��4��$�)0�NZ�,��L��8#�\�,|� �� ��#���*�7D�N|�M���5�R�$m�!��3��,��2�%H�*n�9��(����"�:�#X�|�������B��5�0O�!�� ��<��+�,�L�+a�2��$����,�0�HK�,������"���7�V�u���9������09�#j�'������,��&�:�M�+_�2��-��(���".�'Q�'y�,����.���#4�,X�W��)��"�,*�%W�}� ����2��2�2:�m�!������2��5
�'C�#k�)��3��$��%�8�R�o�����$��&�� �')�*Q�#|�'��%��3��!"�D�+c���*��-��$�-�L�k����� �� ��$��$�)A�,k�����,�����%#�I�=i���������'�;�X�$u�#��0��.��0�O�o�����������-� /�P�7k�)����$��(
�3�R�%a�$��������'��#�'B� j������� ��7��0.�_�#~���"��(��!�0�-N�1|�6��5���.6�*e�1��9����*�&G�+n�,��+��4��<(�+e�*��-������-�B�Y�t�������"�������'�F�_�x����������6�:I�=��<�6��<6�s�"�����4�5�46�3k���0���D��%:�`�����������=�X�o��������'��(�!H�j���"���1�	� �=�"R�u�����������.�G�Z�n����������*#�)N�x��� �����6
�#A�e�)��2��&�KQ d�����
"9&\#���+�%
735k��,�
 ;)Q {����>Z0r����4.J$y)�1�;�6.F*u�$��%,&Sd{&�-�&� -Nk�+� ��?	)@	j	6�	#�	2�	9
>L
8�
1�
�
))> h)��)�*�"#F#_"�"�)��
%1
 W
+x
$�
�
�
!0(Yr��"�!�9
8D$}���+�%1?)q��'�%�&.!U%w'�%�'�-AV$k���"�.!N1p&��!�!*?Y+y8���7EM!���&�0#9]$q�#�*� <O0i2�0��+)G$q/���'�),Bo!����9�)(B+k/���!#"EBh���!)@'j��'��	�)B\#r	����.�
.!6P��6�#�&�	#-BZq� � �!�
� ( A Z i o (v 
� 	� %� � 
� &� &!?!\!)k!�!
�!�!
�!�!�!�!""9"	N"2X"*�"�"�"�"�"
##	-#7#C#O#d###(�#�#�#	�#
�#$2$N$Z$y$�$�$�$$�$/�$'%8%N%
e%$p%�%�%�% �%�%�%&!"&D&c&l&o&�&�&#�&�&�&'.'
I'T'	j't'�''�'�'�'
�'�'	(!(5(>(X(w(�(�(�(9�()/)7)D)
P)^)g)�)�)�)(�)�)** *1*
>*	I*S*i*�*�*�*9�*
�*++.+&E+l+�+�+�+?�+Q!,	s,},�,�,"�,�,�,�,-3-B-
T-b-'h-�-�-�-F�-).;.T.i.p.(|.�.�.�.�.//0/0?/;p/ �/>�/0$0<01X0"�0�0�0�03�0%1(B1k1s1$�10�1�1�1�1+2/2D2T2p2�2	�2�2��2;3FO3�3
�3
�3	�3
�3�3+�34*4E4c4%�40�4�4(�451,5+^5*�5�5&�59�5M06>~6)�65�6A74_7$�76�7"�78<8?X8/�8 �8"�89!9=9R9f9�9)�9)�9,�9 :!<:#^:�:�:
�:�:�:�:�:
�:�:
;	;$;-;:;U;
l;w;
�;
�;�;	�;�;�;�;	�;
�;<
	<5<M<	Y<c<p<
v<�<&�<�<�<�<�<�<
�<�<
�<	=:="K="n=)�=�=�=�=�=
>>1*>
\>$g>"�>�><�>??.?A?[?Hh?C�?�?	@&@9@T@Z@	b@l@}@�@ �@-�@-�@%A7ASArA�A�A=�A�A$�A$B*BEBZBlB~B
�B�B�B�B�B�B�B
�B C )CJC
]ChC�C�C�C�C�C�CDD D-D6DED#ND1rD1�D1�D1E:ECEVEYEpE�E�E
�E�E�E
�E �E�EF%F<FVF	iF"sF�F$�F$�F�F�F
GG
0G>GTGsG�G�G�G�G.�G.�G. H.OH.~H.�H.�H.I.:IiIxI�I�I	�I7�I�IJJ'J8J
HJVJjJyJ	�J
�J�J�J�J�J�J%KR(K{L�L
�L�L�L*�L,M<MWMoM.�M�M
�M1�MN0"NSNhN@}N2�N �N
O O�7OJ�O/%PUP%rP$�P�P�P�P�PQ'QAQYQtQ�Q.�Q,�Q-R/4R.dR+�R�R�R�R�RS3SES"QStS�S �S'�S$�S(T0TGT
WTJeT2�T�T�T
UU%U!4UEVUQ�U�U!
V,VHV1`V1�V�V�V�V
W+)WUWrW�W!�W"�W"�W;X<AX;~X�X!�X!�XY7YFY\YsY"�Y�Y�Y"�Y�Y,�Y
,Z&7Z ^ZZ=�Z�Z�Z�Z	[[7[@[S[	d[n[z[
�[�["�["�[	\	\\\(.\W\f\$�\�\$�\
�\�\*�\"]:]V]	v]�]�]�]
�]D�]$�]^$0^$U^	z^�^�^�^$�^
�^�^�^(�^
_#'_%K_q_�_�_�_�_�_�_�_�_`	``)`9`,B`2o`�`5�`<�`/$aTaoa�a�a�a�a�a�aEbZb
ub	�b
�b�b)�b'�bcc,cEc]cuc�c
�c�c�c
�c�c
ddd
'd2d
Bd=Pd�d�d�d�d�d	�d�d�d�d�dNeVOe	�e�e	�e�e0�e,f20f'cf%�fR�f&g+g;gJgWg#`g�g�g%�g-�gh4"h&Wh~h�h�h�h#�h:�h2i*Pi1{i2�i?�iA j;bjG�jJ�jL1kB~k/�k@�k12l6dl.�l�l$�l	mm4mRmfm/�m$�m8�m%nH6n1n:�n�n=oFo'do�o9�o�o5�o7,p5dp,�p.�p4�p*+q;Vq�q.�qY�q::r:ur8�r9�r/#s=Ss"�s/�s
�s'�s5t3Pt6�t!�t8�t?u.Vu-�u �u+�u'v8(vBav6�v�v7�v0wOw?nw!�w)�w3�w
.x&<xDcx�x�x�x�x�x$�x,yAySydywy�y�y
�y�yB�y
zz!"z!Dzfz�z0�z�z1�z#{){	<{	F{!P{ r{'�{'�{*�{1|N@|
�|�|	�|�|�|�|�|},}KG}&�}�}!�}"�}~!~0~	B~%L~r~#�~(�~�~�~�~�~%%2X#h�)����Z�t�������Ȁ%�#�/�9A�{�A��Q܁.�	?�I�+U���*��!˂-�'�&C�j�����0��ۃM�9�>�G�V�n�v���;��9ք%�#6�%Z�2��D����,�*E�Fp���҆�)�2�B�R�m�����,��M�8�;X�����LjN� /�UP���.��4�$�$?�>d�;��,ߊ&�&3�.Z�.��(��?�<!�^�.~�3��&�.�,7�d�w�%��$��(܍��:�V�t���#��"ǎ*�+�'A�)i�)��>��6��!3�U�h�|���)��(ϐ$��6�%T�z�%��)��4��"4�W�r�C��2В �#$�
H�8V�-����$ۓB�7C�{�I��1�/�$G�'l�,��"��=�>"�(a�O��Cږ-�@L�#����З�
�.)�)X�C��/Ƙ���)2�?\�5��ҙ7��#(�L�)g�+�� ��"ޚ�. �"O�r�I��Dכ�:�X�!p�����Ŝ�)�+�=F�8��)��8�0 �7Q���2��=ٞ�3�P�3p�>�����9�=W�"��*��M�21�Kd�I����*�#E� i�"����ˢE�Y.�a���"�#(�,L�*y�A��,�2�&F�3m�A��#��1!�*S�6~�/�����b<�&��1Ƨ*��(#�>L�.��*���,��0+�\�+|�6��ߩM��3D�x�&��&��&�(�(4�(]�)��>����'�2B�&u�2��Ϭ&۬4�%7�]�z�,��6��.��.&�U�(p�*��1ĮB��9�6S�"��#��.ѯk�)l�$��6��3�(&�.O�!~�@��>�3 �T�)q�����-Ȳ4��6+�*b�'��2��5�0�O�m���&��ɴ/�5�%F�Gl�7��.�*�,F�.s�����2�%�09�.j�#��"������,�'K�'s�-��"ɸ2�2�R�p�/����"ɹ"��F)�p�"����ɺ+��%1�+W�+��2��3�E�(\�"������!߼� �3:�(n���A��-��&�=�2Z�����+��,�+�@�Y�#x�%��A¿%� *�'K�s�#��b��/�$E�j�-��&��.��+�<I�8��=��<�� :�,[�#��N��=��$9�2^�.��>��4��34�:h�K��-��2�=P�������������/�G�\�&o�������+���5�R�k���-��#�����5�BO�B��S��C)�Bm�&��/����E"�Eh�@��>��.�>D���`��%��"#�"F�"i������� �����(0�Y�o�������%���8�%N� t�������I��.�E�a�%x����������!�7�N�f��������������7�#W�4{�3������!�!7�Y�j�;��$����/�/1�%a�J����&���#.�$R�#w�%���� ��+��5&�2\�&��*��:���v;�t��,'�,T�!���� ����4��%�B�$V�{���"������"�7$�\�s�'�� ��8��2�+F�0r�-��6���8�-R�'��$�� ��)��1�J�\�s�1��/��+���*9�d�����N��&�5�OH�&����;��(�/@�:p�H��A��?6�'v�%��3��#��'�D�1a�)��)����(�1)�0[�B������>�*C�Wn�8��2�� 2�)S�8}��������.%�2T�Q��>��$�!=�,_���9��6��C�:U���&��4��0�.=�2l���1��4��.$�0S�6������,��=�-[�0��7��$��$�<�L\�#����%��"�1�N�m�2��9����%�C=�N��'����
�8+�3d�5����#���'�+G�0s�<������Y�Lt�7��!��#�+?�2k�D������/�:@�/{� ��#�����2�GK���(��'��-��(*�S�s�)��'��9�&�A�_�$y�&��%�+�"�$:�/_����������
�%�D�M�\�{�I���4��C0�t�z�B���$�
��+�@�U�
m�!x�!��&����6�;�Q�a�h�3o�
����/��
�	��(�*,�W�t�*�����������%�!A�c�	s�/}�*���&��3�O�^�	x���	������/�6��.�B�S�`�v�/��	��!��	.';V9��'�,+Xn�-�%�>,5k���� �$3F	f4p���!��3:
Weq���"���
)!H8j#������#5$H3m�
����
!7NmC����*!(L(u(��@�R'	z	�	�	�	%�	�	
 
8
P
]

r
�
�
.�
�
�
ENb|��/���*Hav6�3��C
#R
$v
�
=�
(�
!%*1P2��-��':C~��-����&	8B�^�Q�
M
[f	s
}�0���"
-(J.s�%�%�>�-<-j�+�7�P9h4�8�KT\�1�&	*E4Mz1�'�-"Pf���*�*-<"j"�*���#4AER
b
mx
� ������
,;PYin6�������$
6AXek��
��?� �-3aw����7�&""I l:����
,J=M��-�(6_
g	r|��&�6�6 S d � � � � 8� 	!2&!Y!`!�!�!�!�!�!�!�!�!"","9",H",u"�"�"�"
�" �"#&#D#c#|#�#�#�#
�#
�#%�#:�#@9$1z$:�$
�$�$%%#%;%N%_%u%(x%
�%(�%�%�%
&(&B&\&e&�&2�&1�&�&' '$''L'_',~'(�'�'
�'	�'(?(;L(;�(>�(;)<?);|);�)A�)6*
H*V*p*	x*p�*�*
+ +<+Z+w+ �+�+!�+�+,#,!A, c,!�,�,%�,���w ������t��)��%(�0k�7�9h�\��j$\F���`�iM��7��L:�v"�ab_)b���+��bD����j����[,�,h����A<lm�r������pL���cH�����e�!\\n�?��~"�<!\�������E�u
��e|���B:�������5U�
�WX,�Vy���
#�"��GG+6�c��^tu��L�2>�	�;�6!�{��G�*o{�|�8V
��6��}!��T�M��dL�A�y>I7'A�'�mG3f#Qe����\����E��r��i��>�,2:lK.I/��(���?�u�J*-g
����H���]�D��������V��U|�5�������N��w0�-<�$5��?��8�����4[����ye�,X��s�AB}���wc�	����i��Z���f'r�����Z����di[�*<Y1�����/O����A%}E@zn��W�QZ�A���Y:�����2��Z������dP��F���31K6/g������� ���G�I���W*�����J��8=[�0q���FO�	��~������L9��[����
�;V?.�-U�"����%uK�;��&��5��]��
.�W��zG�]��5"���#�9�~����b5Y�'��@`z%�2��Q;%U�m�i�4��X����z��m"'�� ������s:p�=�)jpS�F)�Cq�
=�-�{�&/�+$�J�2�nt�<���y��yt���/k�S��_�_�^R�F_�]J9q�M>��N�iY&�����@�|���p_<SGr#V���oWS���v������BY��3�������K��$~�4���	3�xM���a�6@	F��Q"��7�����p�}T���C���{$�D7b(U�T	ew.���0g���#�f^���Ha����B����� (yB�c����
L���l���CJ���9&:E��W���T�� k�.+Pu/�vKs��S�����=����H[��1c�;d��}C�?�C+�������Cke����
���������nD�a�+;�].�Zg�,L��q�I
@8���Q��-��� @�w�ZT���t�X�����2�N5'�)!��m���)���UT�Md'�j��x1�����������E���oTxON�*�hJ�4U�r@����[4������}I<V�r���xJ���4%�1�]�R�v��!&P
����_��>�+�����z���#��:�3������v�`���*C8�\q��^��39�QuX��O�F��Hp�l��9H�&�fs.�E���O��DxI���z�K�H�MW�1���Z���^=����=f��-��-j�>����?��Y�o#~|c�h�P,�$O��/��{�M�
P�����a��&�v�X!R
���S���Yn(�ENN�{��6�|*P�����f7Bjk��)���O4��x�1��I>��2a]�$���(�hn��7��D�S��NR`3`Rl�gqPAw ��t���8=8�ds�D�h�0%��oVbK0��mXB��lg����Q�oR^�;�~0�k?��`6��(s	���R�			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Arguments recognised by kvim (KDE version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

Vim: Got X error but we continue...

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (^S^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort
&Delete it&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--display <display>	Run vim on <display>--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-black		Use reverse video-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-notip		Disable the tip dialog-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-tip			Display the tip dialog on startup-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???: Sorry, this command is disabled, the MzScheme library could not be loaded.???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Character used for SLASH must be ASCII; in %s line %d: %sChoice number (<Enter> cancels): Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d%% remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE118: Too many arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E46: Cannot set variable in the sandbox: "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Range not allowedE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE77: Too many file namesE783: duplicate char in MAP entryE789: Missing ']': %sE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPress ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing spell file %s ...Writing viminfo file "%s"Wrong COMPOUNDMAX value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR][CR missing][Deleted][Device][Error List][ILLEGAL BYTE in line %ld][Incomplete last line][NL found][NOT converted][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]and run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!error list %d of %d; %d errorsexpressions disabled at compile timefile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal new shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwhere case is ignored prepend / to make flag upper casewindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with KDE GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: vim
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2005-09-30 15:58+0200
PO-Revision-Date: 2005-09-30 15:58+0200
Last-Translator: Lubomir Host <rajo@platon.sk>
Language-Team: Slovak <sk-i18n@lists.linux.sk>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Generator: Vim 7.x
			  (nie je implementovan�)

	Posledn� nastavenie z 

Argumenty:


pou�itie:
             zmenen�: 
         [nepou�iteln� na tomto po��ta�i]
         [nepou�ite�n� s touto verziou Vim]
         n�zov po��ta�a: 
    u��vate�sk� meno: 
         ID procesu : 
    Meno       Args Rozsah �plnos�  Defin�cia
   #   riadok
   alebo:
  # CIE� tag        �TART riadok  v s�bore/texte
 skok riadok st�pec s�bor/text
# Hist�ria %s (za��naj�ci najnov�ou polo�kou):

# Zoznam bufferov:

# S�borov� zna�ky:

# Hist�ria zna�iek v s�boroch (za��naj�ci najnov�ou polo�kou):

# Zoznam skokov (za��naj�ci najnov�ou polo�kou):

# Posledn� zamie�an� re�azec:
$
# Registre:

# glob�lne premenn�:

(1) S�bor m�e by� upravovan� in�m programom.
    Ak je tomu tak, potom si dajte pozor, aby ste po ulo�en� zmien
    nemali dve r�zne verzie toho ist�ho s�boru.

(2) �prava tohoto s�boru bola preru�en� neo�ak�van�m ukon�en�m programu.

(Zv�te ulo�enie tohoto s�boru pod in�m menom

--- Automatick� pr�kazy ---
--- Nastavenie glob�lnych volieb ---
--- Nastavenie lok�lnych volieb ---
--- Ponuky ---
--- Mo�nosti ---
--- Registre ---
--- Znaky ---
--- Polo�ky syntaxe ---
--- Polo�ky synchroniz�cie syntaxe ---
--- K�dy termin�lu ---
--- Kl�vesy termin�lu ---
16 bitov� MS-DOS verzia
32 bitov� verzia pre MS-DOS
Argumenty dostupn� pre gvim (Athena verzia):

Argumenty dostupn� pre gvim (GTK+ verzia):

Argumenty dostupn� pre gvim (Motif verzia):

Argumenty dostupn� pre gvim (RISC OS verzia):

Argumenty dostupn� pre gvim (neXtaw verzia):

Argumenty dostupn� pre kvim (KDE verzia):

Ve�k� verzia 
Nedj� sa vytvori� r�ry

Ned� sa spusti� shell 
Ned� sa spusti� sh shell

Vyvolanie fork zlyhalo

Pr�kaz ukon�en�

Prelo�en� 
N�jden� odkladac� s�bor s menom "
Maxim�lna verzia
Pou�it� z�platy: 
16 bitov� verzia pre MS Windows
16/32 bitov� GUI verzia pre MS Windows
32 bitov� GUI verzia pre MS Windows
32 bitov� verzia pre MS Windows konzolu
MacOS X (unix) verzia
MacOS X verzia
MacOS verzia
Mo�no nedo�lo k �iadnym zmen�m, alebo Vim neaktualizoval odkladac� s�bor.
Podrobnej�ie inform�cie z�sk�te pomocou "vim -h"

Norm�lna verzia
RISC OS verzia
Mal� verzia 
Minim�lna verzia 
Vim: Chyba X

Vim: Chyba X ale pokra�ujem ...

VAROVANIE: Obsah p�vodn�ho s�boru m�e by� straten� alebo po�koden�

[bajtov] celkom uvolnen�-alokovan� %lu-%lu, vyu�it� %lu, maxim�lne vyu�itie %lu

zna�ka riadok  st�pec text
zna�ka riadok  st�pec s�bor/text
 n�vratov� hodnota shellu 
synchronizujem polo�ky                 pre predvolen� vlastnosti Vim                               pre dva re�imy           d�tum vytvorenia:             vlastn�k:          [ned� sa otvori�]         [ned� sa pre��ta�]         [nevyzer� ako odkladac� s�bor Vim]         [od Vim verzie 3.0]        n�zov s�boru:       -- �iadne --
      NOV�� ako odkladac� s�bor!
         u��vate�sk� exrc s�bor: "        u��vate�sk� vimrc s�bor: "    Ak je tomu tak, potom pou�ite ":recover" alebo "vim -r     Pokia� ste tak u� urobili, tak vyma�te odkladac� s�bor "    Ukon�ite program, alebo opatrne pokra�ujte v �prav�ch.
    riadok=%ld  id=%d  meno=%s     syst�mov� s�bor s ponukou: "      u��vate�sk� gvimrc s�bor: "   V aktu�lnom adres�ri:
   V adres�ri    So zadan�m menom:
    d�tum vytvorenia:    n�zov po��ta�a:           syst�mov� vimrc s�bor: "  # pri typ tag  (U� vyp�san�)   druh� u��vate�sk� exrc s�bor: "  PODPORA LADENIA  Vlastnosti zahrnut� (+) a nezahrnut� (-):
 NEN�JDEN�  Pou��vam tag s p�smom inej ve�kosti!       implicitn� hodnota $VIM:"  syst�mov� gvimrc s�bor: " # pid    n�zov datab�zy                      predpona cesty
 (Preru�en�) (NEN�JDEN�) (vr�tane u� vyp�san�ch zh�d) (vlo�i�) (insert) Rolovanie (^E/^Y) (jazyk) (riadok vymazan�) (nepodporovan�) (vlo�i�) (nahradi�) (replace) Rolovanie (^E/^Y) (st�le be��) (nahradi� vertik�lne)  druh� u��vate�sk� vimrc s�bor: "  tret� u��vate�sk� vimrc s�bor: " < "%.*s" Prid�vam Arabsk� CHYBA PREVODU Dopl�ovanie pr�kazov�ho riadka (^V^N^P) K�pia %d z %d Dopl�ovanie defin�ci� (^D^N^P) Dopl�ovanie pod�a slovn�ka (^K^N^P) ZLYHALO Dopl�ovanie n�zvov s�borov (^F^N^P) Hebrejsk� VLO�I� Miestne dopl�ovanie k���ov�ch slov (^N^P) Dopl�ovanie k���ov�ch slov (^N^P) Dopl�ovanie tagov (^O^N^P) Dopl�ovanie vzoru ciest (^N^P) NAHRADI� OBR�TI� ZHODY OZNA� BLOK OZNA� RIADOK MEDZERA/d/j: obrazovka/str�nka/riadok dole, b/u/k: hore, q: koniec  Dopl�ovanie cel�ch riadkov (^S^N^P) Dopl�ovanie tagov (^]^N^P) Dopl�ovanie pod�a lexikonu (^T^N^P) Dopl�ovanie cel�ch riadkov (^U^N^P) VIZU�LNE VIZU�LNY BLOK VIZU�LNY RIADOK NAHRADI� VERTIK�LNE Dopl�ovanie cel�ch riadkov (^L^N^P) [Zmenen�] [p] [u] ^X re�im (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y) pripojen� ned� sa pou�� na tomto po��ta�i.
 ned� sa pou�i� s touto verziou Vim.
 f-b pre $VIMRUNTIME: " vo Win32 re�ime inform�cie typ s�boru
 zalomen� riadkov riadkov pred za�iatkom zna�ky na %ld riadkov na 1 riadku alebo viac vr�ten�
vim [argumenty]  s OLE podporou ulo�en�"
    a t�to spr�va sa u� nebude objavova�.
"
    pre obnovenie zmien (vi� ":help recovery)".
" u� existuje!# Tento viminfo s�bor bol vytvoren� editorom Vim %s.
# Hodnota 'encoding' (k�dovania) po�as z�pisu tohoto s�boru
# Pokia� budete opatrn�, m�ete ho upravova�.

%-5s: %-30s (Pou�itie: %s)%3d  %s %s  riadok %ld%<%f%h%m%=Strana %N%d bufferov vymazan�ch%d bufferov uvo�nen�ch%d bufferov odstr�nen�ch%d duplicitn� slovo(�) v %s%d s�borov pre �pravu
E�te zost�va %d s�borov k �prave. Chcete napriek tomu ukon�i� editor?%d upraven�ch s�borov z %d%ld St�pcov; %ld zmien%ld znakov%ld vymazan�ch riadkov%ld riadkov upraven�ch pomocou %s %d kr�t%ld riadkov upraven�ch naraz pomocou %s%ld riadkov --%d%%--%ld zmenen�ch riadkov%ld riadkov filtrovan�ch%ld riadkov odsaden�ch %ld riadkov presunut�ch%ld riadkov pre odsadenie...%ld skop�rovan�ch riadkov%ld riadkov, %ld zh�d%ld nov�ch riadkov%ld nahraden�%s Automatick� pr�kazy pre "%s"%s zru�en�%s zahoden�%s prebieha%s vr�ten�%s vr�tilo #%ld%s vr�tilo %sHodnota %s sa odli�uje od hodnoty pou�itej v inom .aff s�bore%s, riadok %ld%sviminfo: %s na riadku: &Zru�i�&Zru�i�&Filter&Pomocn�k&OK&OK
&Zru�i�&OK
&Na��ta� s�bor&Ok&Otvori� iba pre ��tanie
&Pokra�ova� v �prav�ch
O&bnovi� s�bor
&Koniec
&Zru�i�&Otvori� iba pre ��tanie
&Pokra�ovat v �prav�ch
O&bnovi� s�bor
&Koniec
&Zru�i�
Z&maza�&Nahradi�&Sp�&Ano
&Nie&Ano
&Nie
&Zru�i�&Ano
&Nie
&Ulo�i� v�etko
Zahodi� &v�etko
&Zru�i�' nie je zn�my. Dostupn� vstavan� termin�ly:'st�pce' nie je 80, nem�em spusti� extern� pr�kazvo�ba 'dictionary' (slovn�k) je pr�zdna'vo�ba 'history' je nastaven� na nuluPre "%s" je nastaven� vo�ba 'readonly' (iba na ��tanie).
Prajete si aj tak ulo�i�?vo�ba 'thesaurus' (lexikon) je pr�zdna(%d z %d)%s%s: (+%ld pre BOM)(preru�en�) (Chybn�)+			Nastav� kurzor na koniec s�boru+-%s%3ld riadky: +--%3ld riadkov zahnut�ch +<riadok>		Nastav� kurzor na <riadok>+reverse		Nepou�ije reverzn� farby (tie� +rv),
alebo bol s�bor po�koden�.-                   ��ta� text z �tandardn�ho vstupu--			M�u nasledova� iba n�zvy s�borov-- Pokra�ovanie ---- H�ad�m...--- Vlo�en� s�bory--Vymazan�----Buffer neobsahuje �iadne riadky----cmd <pr�kaz>		Vykon� <pr�kaz> pred nahrat�m vimrc s�boru--columns <po�et>	Po�iato�n� ��rka okna v st�pcoch-display <displej>	Spust� vim na <displej>--literal		Nexpandova� �ol�kov� znaky (wildcards)--noplugin		Nenahr� z�suvn� moduly(plugin skripty)--remote <s�bory>	Upravi� <s�bory> na Vim servri ak je to mo�n�--remote-expr <v�raz>	Spusti <v�raz> na servri a vytla�� v�sledok--remote-send <vo�by>	Odo�le <vo�by> na Vim server a skon��--remote-silent <s�bory>	To ist�, ale nes�a�uj si, ak neexistuje server--remote-wait <s�bory>	Ako --remote ale �ak� na s�bory pre ukon�enie �prav--remote-wait-silent <s�bory>	To ist�, ale nes�a�uj si, ak neexistuje server-role <rola>	Nastav� unik�tnu rolu pre identifik�ciu hlavn�ho okna--rows <po�et>	Po�iato�n� v��ka okna v riadkoch--serverlist		Vyp�e zoznam mien dostupn�ch Vim servrov a skon��--servername <n�zov>	Odo�le na Vim server <n�zov>--socketid <xid>	Otvor� Vim vn�tri in�ho GTK programu.--version		Vyp�e inform�cie o verzii a skon��-A			spusti v Arabic m�de-C			Kompatabiln� s Vi: 'compatible'-D			Ladiaci m�d-F			spusti vo Farsi m�de-H			spusti v hebrejskom m�de-L			Rovnak� ako -r-M			Zmeny v texte zak�zan�-N			Kompatibilita s Vi vypnut�: 'nocompatible'-O[N]		Ako -o ale rozdel� vertik�lne-P <titulok rodi�a>	Otvor Vim vn�tri materskej aplik�cie-R			M�d iba pre ��tanie (ako "view")-S <sedenie>		Po nahrat� prv�ho s�boru vykon� pr�kazy v s�bore <sedenie>-T <termin�l>	Nastav� typ termin�lu na <termin�l>-U <gvimrc>		Pou�ije <gvimrc> namiesto ak�hoko�vek .gvimrc-V[N]		�rove� v�pisu hl�ok-W <skript>		Ulo�� v�etky nap�san� pr�kazy do s�boru <skript>-X			Nepripoj� sa k X serveru-Z			Obmedzen� m�d (rovnak� ako "rvim")-b			Bin�rny m�d-background <farba>	Nastav� sa <farba> pozadia (tie� -bg)-black		Pou�ije reverzn� farby-boldfont <p�smo>	Nastav� <p�smo> pre zv�raznen� text-borderwidth <��rka>	Nastav� <��rku> okrajov (tie� -bw)-c <pr�kaz>		Po nahrat� prv�ho s�boru vykon� <pr�kaz>-d			Porovn�vac� m�d (rovnak� ako "vimdiff")-dev <zariadenie>		Pou�i� <zariadenie> pre I/O-display <displej>	Pripoj� vim na pr�slu�n� X-server-display <displej>	Spust� vim na <displej>-display <displej>	Spust� vim na <displej> (tie� --display)-e			Ex m�d (rovnak� ako "ex")-f			Nebude pou��va� newcli pre otvorenie okna-f  alebo  --nofork	Popredie: Pri spusten� grafick�ho (GUI) m�du sa nepresunie do pozadia-font <p�smo>		Nastav� <p�smo> norm�lneho textu (tie� -fn)-foreground <farba>	Nastav� sa <farba> popredia (tie� -fg)-g			Spusti� v grafickom (GUI) m�de (rovnak� ako "gvim")-geometry <geometrie>	Nastav� sa <geometria> (tie� -geom)-h  alebo  --help	Vyp�e t�to n�povedu a skon��-i <viminfo>		Pou�ije <viminfo> namiesto ak�hoko�vek .viminfo-iconic		Spust� vim minimalizovan�-italicfont <p�smo>	Nastav� <p�smo> pre kurz�vu-l			Lisp m�d-m			Zmeny (ukladanie s�borov) zak�zan�-menuheight <v��ka>	Nastav� <v��ku> ponuky (tie� -mh)-n			Nevytv�ra� odkladac� s�bor, pou��va� iba pam�-name <n�zov>		Pou�ije resource ako by vim mal <n�zov>-notip		Nezobrazuj tip pri �tarte-o[N]		Otvor� N okien (implicitne jedno pre ka�d� s�bor)-q [chybov� s�bor]  upravi� s�bor na mieste v�skytu prvej chyby-r			Vyp� zoznam odkladac�ch s�borov a skon�i-r (s n�zvom s�boru)	Obnov� preru�en� sedenie-register		Prihl�si� gvim na OLE-reverse		Pou�ije reverzn� farby (tie� -rv)-s			Tich� (d�vkov�) m�d (iba pre "ex")-s <skript>		Na��ta pr�kazy norm�lneho m�du zo <skriptu>-scrollbarwidth <��rka>  Nastav� <��rku> posuvnej li�ty (tie� -sw)-t tag          upravi� s�bor na mieste defin�cie tagu-tip			Zobraz tip pri �tarte-u <vimrc>		Pou�ije <vimrc> namiesto ak�hoko�vek .vimrc-register		Odhl�si� gvim z OLE-v			Vi m�d (rovnak� ako "vi")-w <skript>		Pripoj� v�etky nap�san� pr�kazy do s�boru <skript>-x			�prava za�ifrovan�ch s�borov-xrm <resource>	Nastav� zadan� <resource>-y			Jednoduch� m�d (rovnak� ako "evim", bezm�dov�)...(skr�ten�)Riadok / v %s riadok %d ignorovan�: %s/encoding= riadok nasleduj�ci po slove v %s riadok %d ignorovan�: %s1 buffer vymazan�1 buffer uvo�nen�1 buffer odstr�nen�1 zmena1 znak1 riadok upraven� pomocou %s %d kr�tpo�et riadkov upraven�ch naraz pomocou %s: 11 riadok --%d%%--1 riadok zmenen�1 riadok odsaden� 1 vymazan� riadok1 riadok presunut�1 riadok skop�rovan�1 riadok, 1 zhodaE�te zost�va 1 s�bor k �prave. Chcete napriek tomu ukon�i� editor?1 nov� riadok1 nahradeniedruh� u��vate�sk� gvimrc s�bor: "tret� u��vate�sk� gvimrc s�bor: ": Odoslanie v�razu zlyhalo.
: Odoslanie zlyhalo.
: Odoslanie zlyhalo. Pok��am sa spusti� lok�lne
; zhoda <%s>%s%s  %d,  �estn�stkovo %02x,  osmi�kovo %03o<objekt bufferu (vymazan�) na %8lX><ned� sa otvori�> <pr�zdny><okno %d><objekt okna (vymazan�) na %.8lX><objekt okna (nezn�my) na %.8lX>> %d,  �estn�stkovo %04x,  osmi�kovo %o> %d,  �estn�stkovo %08x,  osmi�kovo %ood ??? po ???END m�u by� riadky pomie�an�od ??? po ???END m�u by� riadky vlo�en�/vymazan�???: Prep��te, tento pr�kaz je vypnut�, MzScheme kni�nica nem�e by� na��tan�.???CH�BA BLOK???PR�ZDNY BLOK???KONIEC???CHYBN� PO�ET RIADKOV???CH�BAJ�CE RIADKY???CH�BA MNOHO RIADKOVANCHOR_BUF_SIZE pr�li� mal�.Prida� nov� datab�zuPridan� cscope datab�za %sPr�pona pou�it� aj pre BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %sPr�pona pr�li� dlh� v %s riadok %d: %sV�etkoV�etky cscope datab�ze resetovan�V�etky vlo�en� s�bory boli n�jden�Existuje u� iba jedno oknoPripoji� s�borCh�ba argument poNa riadkuPokus o op�tovn� otvorenie skriptu: "V�chodzia podobaZadan� sp�tn� rozsah. OK pre z�menuSta�te sa registrovan�m u��vate�om Vimu!Piip!Pred bajtom %ldKoniecSAL a SOFO riadky z�rove� v %sBod preru�enia v "%s%s" na riadku %ldNaru�en� podmienka v %s riadok %d: %sPrezrie� trieduCOMPOUNDSYLMAX pou�it� bez SYLLABLEVol�m shell na spustenie: "%s"Ned� sa n�js� do�asn� s�bor pre konverziuZru�i�Ned� sa pripoji� na NetbeansNed� sa pripoji� na Netbeans #2Zlyhalo pripojenie na SNiFF+, Preverte prostredie (sniffemacs sa mus� nach�dza� v $PATH).
Ned� sa vytvori� Ned� sa spusti� Ned� sa otvori� NIL:
Ned� sa otvori� s�bor "%s"Ned� sa otvori� pre z�pis: "Ned� sa otvori� pre v�stup skriptu: "Nemo�no interpretova� adres�r: "%s"Zmeni� "%.*s" na:Znak pou�it� pre SLASH mus� by� ASCII; v %s riadok %d: %sZvo�te ��slo (<Enter> zru��): St�pec %s z %s; Riadok %ld z %ld; Slovo %ld z %ld; Bajt %ld z %ldSt�pec %s z %s; Riadok %ld z %ld; Slovo %ld z %ld; Znak %ld z %ld; Bajt %ld z %ldPr�kazov� riadokPreklad: Preklada�: Skomprimovan�ch %d z %d uzlov; %d%% zost�vaRob�m kompresiu stromu slov...Konverzia slova zlyhala v %s riadok %d: %sKonverzia v %s nie je podporovan�Konverzia v %s nie je podporovan�: z %s do %sKonverzia s 'charconvert' sa nepodarilaNem�em opravi� odkazy funkci� na DLL!Nem�em nahra� vim32.dll!Cscope tag: %sAktu�lny %sjazyk: "%s"Potom vyma�te odkladac� s�bor s pr�ponou .swp.

Porovna� &VimomRozdielna kombin�cia pr�znakov v nasleduj�com bloku pr�pon v %s riadok %d: %sSmerAdres�reAdres�r	*.ni�
Chcete ho naozaj ulo�i�Hotovo!Dvojit� ; v zozname premenn�chDoluDuplicitn� riadok /encoding= v %s riadok %d ignorovan�: %s Duplicitn� riadok /regions= v %s riadok %d ignorovan�: %sDuplicitn� pr�pona v %s riadok %d: %sOpakovan� znak v MAP v %s riadok %dOpakuj�ce sa slovo v %s riadok %d: %sE100: V porovn�vacom m�de sa nenach�dza in� bufferE101: Viac ako dva buffery v porovn�vacom m�de; neviem, ktor� pou�i�E102: Ned� sa n�js� buffer "%s"E103: Buffer "%s" nie je v porovn�vacom m�deE104: digraph nesmie obsahova� znak EscapeE105: Pou�it� pr�kaz :loadkeymap v s�bore, ktor� nie je interpretovan�E107: Ch�baj� z�tvorky: %sE108: Premenn� "%s" neexistujeE109: Po '?' ch�ba ':'E10: po \ by malo nasledova� /, ? alebo &E110: Ch�ba ')'E111: Ch�ba ']'E112: Ch�ba meno vo�by: %sE113: Nezn�ma vo�ba: %sE114: Ch�baj� �vodzovky: %sE115: Ch�baj� �vodzovky: %sE118: Pr�li� mnoho argumentov pre funkciu %sE11: Chybn� pr�kaz v okne pr�kazov�ho riadku; <Enter> sp���a, CTRL-C ukon�ujeE121: Nedefinovan� premenn�: %sE122: Funkcia %s u� existuje. Pou�ite ! pre jej nahradenie.E124: Ch�ba '(': %sE125: Nepr�pustn� argument: %sE126: Ch�ba :endfunctionE128: N�zov funkcie mus� za��na� ve�k�m p�smenom alebo obsahova� dvojbodku: %sE129: Je vy�adovan� meno funkcieE12: Pr�kaz nie je z exrc/vimrc v aktu�lnom adres�ri alebo pri h�adan� tagu povolen�.E130: Nezn�ma funkcia: %sE131: Ned� sa vymaza� funkcia %s: je pou��van�E132: Zanorenie funkci� je hlb�ie ne� 'maxfuncdepth'E133: :return mimo funkciuE134: Prekrytie riadkov sebou sam�miE135: Automatick� pr�kazy *Filter* nesm� meni� aktu�lny bufferE136: viminfo: pr�li� mnoho ch�b, preskakujem zbytok s�boruE137: Do viminfo s�boru %s sa ned� zapisova�E138: Ned� sa ulo�i� viminfo s�bor %s!E139: S�bor je na��tan� v inom buffereE13: S�bor existuje (pou�ite ! pre prep�sanie)E140: Pou�ite ! pre ulo�enie ne�pln�ho bufferuE141: �iadny n�zov s�boru pre buffer %ldE142: S�bor nebol ulo�en�: ukladanie je zak�zan� vo�bou 'write'E143: Automatick� pr�kazy neo�ak�vane zmazali nov� buffer %sE144: ne��seln� argument pre :zE145: rvim nepovo�uje pou�itie pr�kazov shelluE146: Regul�rne v�razy nesm� by� oddelen� p�smenamiE147: :global sa ned� vola� rekurz�vneE148: Pri pr�kaze global ch�ba regul�rny v�razE149: �utujem, pre %s nie je �iadny pomocn�kE14: Chybn� adresaE150: %s nie je adres�romE152: %s sa ned� sa otvori� pre z�pisE153: %s as ned� otvori� pre ��tanieE154: Duplicitn� tag "%s" v s�bore %s/%sE155: Nezn�ma zna�ka: %sE156: Ch�ba meno pre zna�kuE157: Chybn� ID zna�ky: %ldE158: Chybn� meno bufferu: %sE159: Ch�ba �islo zna�kyE15: Chybn� v�raz: %sE160: Nezn�mu pr�kaz pre zna�ky: %sE161: Bod preru�enia nen�jden�: %sE162: Buffer "%s" obsahuje neulo�en� zmenyE163: Pre �pravu bol zadan� iba jeden s�borE164: Ned� sa presko�i� pred prv� s�borE165: Ned� sa presko�i� za posledn� s�borE166: S�bor sa ned� otvori� pre ukladanieE167: pr�kaz :scriptencoding pou�it� mimo interpretovan� s�borE168: pr�kaz :finish pou�it� mimo interpretovan� s�borE169: Pr�kaz je pr�li� rekurz�vnyE16: Chybn� rozsahE170: Ch�ba :endforE170: Ch�ba :endwhileE171: Ch�ba :endifE172: Pr�pustn� je iba jeden n�zov s�boruE173: E�te zost�va %ld s�borov k �prave.E173: E�te zost�va 1 s�bor k �prave.E174: Pr�kaz u� existuje: pou�ite ! pre predefinovanieE175: Neboli zadan� �iadne vlastnostiE176: Chybn� po�et argumentovE177: Po�et nem�e by� zadan� dvakr�tE178: Chybn� implicitn� hodnota pre po�etE179: pre doplnenie (-complete) je potrebn� argumentE17: "%s" je adres�romE180: Chybn� hodnota doplnenia: %sE181: Chybn� vlastnos�: %sE182: Chybn� meno pr�kazuE183: Pou��vate�om definovan� pr�kazy musia za��na� ve�k�m p�smenomE184: Pou��vate�om definovan� pr�kaz %s neexistujeE185: Sch�ma farieb %s nen�jden�E186: �iadny predch�dzaj�ci adres�rE187: Nezn�myE188: Na tejto platforme sa ned� zisti� umiestnenie oknaE189: "%s" existuje (pou�ite ! pre vyn�tenie)E18: Neo�ek�van� znaky v :letE190: "%s" sa ned� otvori� pre z�pisE191: Argumentem m�e by� iba p�smeno alebo prav� �i �av� apostrofE192: Rekurz�vne pou�itie pr�kazu :normal pr�li� hlbok�E193: :endfunction mimo funkciuE194: �iadny alternat�vny n�zov s�boru, ktor�m by bolo mo�n� nahradi� '#'E195: S�bor viminfo sa ned� sa otvori� na ��tanieE196: V tejto verzi nie s� digraphy podporovan�E197: Ned� sa nastavi� jazyk na "%s"E198: cmd_pchar prevy�uje d�ku pr�kazuE199: Akt�vne okno alebo buffer bol vymazan�E19: Zna�ka m� chybn� ��slo riadkuE200: automatick� pr�kazy *ReadPre urobili s�bor ne�itate�n�mE201: automatick� pr�kazy *ReadPre nesm� meni� aktu�lny bufferE202: Po konverzii je s�bor ne�itate�n�!E203: Automatick� pr�kazy zmazali �i deaktivovali buffer, ktor� mal by� ulo�en�E204: Automatick� pr�kaz neo�ak�van�m sp�sobom zmenil po�et riadkovE205: patchmode: ned� sa ulo�i� p�vodn� s�borE206: patchmode: ned� sa zapisova� do pr�zdneho p�vodn�ho s�boruE207: Ned� sa vymaza� z�lo�n� s�borE208: Chyba pri z�pise do "%s"E209: Chyba pri uzatv�ran� "%s"E20: Zna�ka nie je nastaven�E210: Chyba pri ��tan� "%s"E211: Varovanie: s�bor "%s" u� nie je dostupn�E212: S�bor sa ned� otvori� pre ukladanieE213: Ned� sa spravi� konverzia (pou�ite ! pre z�pis bez konverzie)E214: Ned� sa n�js� do�asn� s�bor pre ukladanieE215: Nepr�pustn� znak po *: %sE216: Udalos� %s neexistujeE216: Udalos� alebo skupina %s neexistujeE217: Automatick� pr�kazy sa nedaj� spusti� pre V�ETKY udalostiE218: vnorenia automatick�ho pr�kazu s� pr�li� hlbok�E219: Ch�ba {.E21: Nemo�no robi� zmeny, vo�ba 'modifiable' je vypnut�E220: Ch�ba }.E222: Prida� do bufferu pre ��tanieE223: rekurz�vne mapovanieE224: pre %s u� glob�lna skratka existujeE225: pre %s u� glob�lne mapovanie existujeE226: pre %s u� skratka existujeE227: pre %s u� mapovanie existujeE228: makemap: nepr�pustn� m�dE229: Ned� sa spusti� GUI (grafick� rozhranie)E22: Skripty vnoren� pr�li� hlbokoE230: Ned� sa ��ta� z "%s"E231: vo�ba 'guifontwide' (nastavenie �irok�ho p�sma) je chybne nastaven�E232: BalloonEval ned� sa vytvori� spr�vou a z�rove� sp�tn�m volan�mE233: ned� sa otvori� displejE234: Nezn�ma sada p�siem: %sE235: Nezn�me p�smo: %sE236: P�smo "%s" nem� pevn� ��rkuE237: Zlyhal v�ber tla�iarneE238: Chyba tla�e: %sE239: Chybn� text zna�ky: %sE23: �iadny alternat�vny s�borE240: Neexistuje pripojenie k Vim serveruE241: Nem�em posla� na %sE243: Argument nie je podporovan�: "-%s"; Pou�ite OLE verziu.E244: Chybn� n�zov znakovej sady "%s" v n�zve p�sma "%s"E245: Chybn� znak '%c' v n�zve p�sma "%s"E246: automatick� pr�kaz FileChangedShell vymazal bufferE247: �iaden registrovan� server pomenovan� "%s"E248: Chyba po�as prenosu pr�kazu do cie�ov�ho programuE24: Tak� skratka neexistujeE250: Ch�ba p�smo pre nasleduj�ce znakov� sady %s:E251: VIM registrov� vlastnos� je zle form�tovan�.  Vymazan�!E252: N�zov sady p�siem: %sE253: N�zov sady p�siem: %s
E254: Ned� sa alokova� farba %sE255: Chyba -- ned�j� sa pre��ta� ozna�ovacie d�ta!E256: Hangul ERROR - chyba k�rejsk�ho sp�sobu vkladania znakovE257: cstag: tag nen�jden�E258: Nem�em posla� klientoviE259: cscope h�adanie %s vo vzore %s nena�lo �iadnu zhoduE25: Ned� sa pou�� GUI: nebolo zapnut� pri preklade programuE261: cscope spojenie %s nen�jden�E262: chyba pri ��tan� cscope spojenia %ldE262: Prep��te, tento pr�kaz je vypnut�, Python kni�nica nem�e by� na��tan�.E264: Python: Chyba pri inicializ�cii I/O objektovE266: Prep��te, tento pr�kaz je vypnut�, Ruby kni�nica nem�e by� na��tan�.E26: Ned� sa pou�� hebrejsk� re�im: nebol zapnut� pri preklade programu
E273: Nezn�my 'longjmp' stav %dE274: Sniff: Chyba po�as ��tania. Odpojen�E275: Nezn�ma SNiFF+ po�iadavka: %sE276: Chyba pripojenia na SNiFF+E277: Nem�em ��ta� odpove� servraE278: SNiFF+ nie je pripojen�E279: Nie je SNiFF+ bufferomE27: Ned� sa pou�� farsi re�im: nebol zapnut� pri preklade programu
E280: TCL FATAL ERROR: reflist po�koden�!? Ozn�mte, pros�m, t�to chybu na vim-dev@vim.orgE281: TCL CHYBA: n�vratov� k�d nie je cel� ��slo!? Ozn�mte, pros�m, t�to chybu na vim-dev@vim.orgE282: Ned� sa ��ta� z "%s"E283:"%s" nevyhovuj� �iadne zna�kyE284: Nedaj� sa nastavi� IC hodnotyE285: Nepodarilo sa vytvori� vstupn� kontextE286: Nepodarilo sa otvori� vstupn� met�duE287: Varovanie: likvida�n� sp�tn� volanie sa ned� nastavi� na IME288: vstupn� met�da nepodporuje �iadny �t�lE289: vstupn� met�da nepodporuje m�j 'preedit' typE28: Skupina zv�raznenia %s neexistujeE290: Nadbodov� �t�l vy�aduje sadu fontov (fontset)E291: M�te GTK+ verziu star�iu ne� 1.2.3. Stavov� plocha vypnut�.E292: Server vstupn�ch met�d nebe��E293: blok nebol zamknut�E294: Chyba posunu pri ��tan� odkladacieho s�boruE295: Chyba pri ��tan� odkladacieho s�boruE296: Chyba posunu pri ukladan� do odkladacieho s�boruE297: Chyba pri ukladan� do odkladacieho s�boruE298: Ned� sa z�ska� blok 0?E298: Ned� sa z�ska� blok 1?E298: Ned� sa z�ska� blok 2?E299: Vykonanie k�du v jazyku Perl nie je mo�n� v bezpe�nostnej schr�nke bez bezpe�nostn�ho moduluE29: Zatia� nie je vlo�en� �iaden textE300: Odkladac� s�bor u� existuje (symlink �tok?)E301: Ups, odkladac� s�bor bol straten�!!!E302: Ned� sa premenova� odkladac� s�borE303: Ned� sa otvori� odkladac� s�bor pre "%s", oprava nemo�n�E304: ml_upd_block0(): ned� sa z�ska� blok 0??E305: Odkladac� s�bor pre %s nebol n�jden�E306: Ned� sa otvori� %sE307: %s sa nezd� by� odkladac�m s�borom VimE308: Varovanie: P�vodn� s�bor mohol by� zmenen�E309: Ned� sa ��ta� blok 1 z %sE30: �iadny predch�dzaj�ci pr�kazov� riadokE310: ID bloku 1 je chybn� (je %s odkladac�m s�borom?)E311: Obnova preru�en�E312: V priebehu obnovy do�lo k chyb�m; skontrolujte riadky za��naj�ce na ???E313: Ned� sa zachova� - odkladac� s�bor neexistujeE314: Uchovanie sa nepodariloE315: ml_get: chybn� ��slo riadku: %ldE316: ml_get: ned� sa n�js� riadok %ldE317: chybn� ��slo ukazovate�a na blokE317: chybn� ��slo ukazovate�a na blok 2E317: chybn� ��slo ukazovate�a na blok 3E317: chybn� ��slo ukazovate�a na blok 4E318: Aktualizovan�ch pr�li� ve�a blokov?E319: �utujem, ale tento pr�kaz nie je dostupn� v tejto verziiE31: Mapovanie nen�jden�E320: Ned� sa n�js� riadok %ldE321: ned� sa obnovi� "%s"E322: ��slo riadku je mimo rozsah: %ld (za koncom)E323: chybn� po�et riadkov v bloku %ldE324: Ned� sa otvori� v�stupn� PostScriptov� s�borE325: POZORE326: Pr�li� mnoho odkladac�ch s�borovE327: �as� cesty k predmetu ponuky nie je podponukouE328: Ponuka existuje iba v inom m�deE329: Ponuka "%s" neexistujeE32: �iadny n�zov s�boruE330: Cesta ponuky nesmie vies� do podponukyE331: Polo�ky ponuky sa nejd� prid�va� priamo na li�tuE332: Odde�ova� nesmie by� �as�ou cesty ponukyE333: Cesta ponuky mus� vies� k polo�ke ponukyE334: Ponuka nen�jden�: %sE335: V %s m�de nie je ponuka definovan�E336: Cesta ponuky mus� vies� do podponukyE337: Ponuka nen�jden� - skontrolujte n�zvy pon�kE338: �utujem, ale konzolov� verzia nepodporuje prehliada� s�borovE339: Vzor je pr�li� dlh�E33: �iadny predch�dzaj�ci prisl�chaj�ci spr�vny v�razE340: Riadok sa st�va pr�li� dlh�mE341: Vn�torn� chyba: lalloc(%ld, )E342: Nedostatok pam�te! (alokujem %lu bajtov)E343: Chybn� cesta: '**[��slo] mus� by� bu� na konci cesty, alebo mus� by� nasledovan� '%s. Vi� :help path.E344: Adres�r "%s" sa ned� n�js� v cdpathE345: S�bor "%s" sa nepodarilo n�js�E346: �iadny �al�� adres�r "%s" nebol v cdpath n�jden�E347: �iadny �al�� s�bor "%s" nebol v ceste n�jden�E348: Pod kurzorom nie je �iadny re�azecE349: Pod kurzorom nie je �iadny identifik�torE34: �iadny predch�dzaj�ci pr�kazE350: Ned� sa vytvori� vnorenie s aktu�lnou met�dou 'foldmethod'E351: Ned� sa zru�i� vnorenie s aktu�lnou met�dou 'foldmethod'E352: Pomocou 'foldmethod' sa ned� vymaza� vnorenieE353: Register %s je pr�zdnyE354: '%s' nie je pr�stupn� meno registruE355: Nezn�ma vo�ba: %sE356: get_varp CHYBAE357: 'langmap': pre %s ch�ba vyhovuj�ci znakE358: 'langmap': nadbyto�n� znaky po bodko�iarke: %sE359: Nastavovanie re�imu obrazovky nie je podporovan�E35: �iadny predch�dzaj�ci regul�rny v�razE360: Ned� sa spusti� shell s -f vo�bouE363: vzor pou��va viac pam�te ako 'maxmempattern'E364: Vyvolanie kni�ni�nej funkcia zlyhalo pre "%s()"E365: PostScriptov� s�bor sa nepodarilo vytla�i�E367: Skupina "%s" neexistujeE369: chybn� polo�ka v %s%%[]E36: Nedostatok miestaE370: Nepodarilo sa nahra� kni�nicu %sE371: Pr�kaz nen�jden�E372: Pr�li� mnoho %%%c vo form�tovacom re�azciE373: Neo�ak�van� v�skyt %%%c vo form�tovacom re�azciE374: Vo form�tovacom re�azci ch�ba ]E375: Nepodporovan� form�tov� �pecifik�cia %%%c vo form�tovacom re�azciE376: Nepr�stupn� %%%c v prefixe form�tovacieho re�azcaE377: Nepr�stupn� %%%c vo form�tovacom re�azciE378: 'errorformat' neobsahuje �iadny vzorE379: Ch�baj�ci alebo pr�zdny n�zov adres�raE37: Neulo�en� zmeny (pou�ite ! pre vyn�tenie)E380: Koniec quickfix zoznamuE381: Za�iatok quickfix zoznamuE382: Ned� sa ulo�i�, je nastaven� vo�ba 'buftype'E383: Nepr�pustn� h�adan� re�azec: %sE384: h�adanie dosiahlo za�iatok bez n�jdenia %sE385: h�adanie dosiahlo koniec bez n�jdenia %sE386: Po ';' o�ak�vam '?' alebo '/'E387: Zhoda je na aktu�lnom riadkuE388: Ned� sa n�js� defin�ciaE389: Ned� sa n�js� vzorE38: Nulov� argumentE390: Nepr�pustn� argument: %sE391: Syntaktick� zostava %s neexistujeE392: Syntaktick� zostava %s neexistujeE393: group[t]here nesmie by� na tomto miesteE394: Pre %s ch�ba polo�ka regi�nuE395: obsahuje argumenty, ktor� tu nie s� povolen�E396: obsahuje argumenty, ktor� tu nie s� povolen�E397: Vy�adovan� n�zov s�boruE398: Ch�ba '=': %sE399: Pr�li� m�lo argumentov: oblas� syntaxe %sE39: O�ak�van� ��sloE400: Nebola zadan� �iadna zostavaE401: Odde�ova� vzoru %s nen�jden�E402: Chyba za vzorom: %sE403: synchroniz�cia syntaxe: vzor pokra�ovania riadkov zadan� dvakr�tE404: Chybn� argumenty: %sE405: Ch�ba znamienko rovn� sa: %sE406: Pr�zdny argument: %sE407: %s tu nie je povolen�E408: %s mus� by� prv� v 'contains' zoznameE409: Nezn�my n�zov skupiny: %sE40: Ned� sa otvori� chybov� s�bor %sE410: Chybn� podraden� pr�kaz :syntax : %s E411: skupina zv�raznenia %s nebola n�jden�E412: Pr�li� m�lo argumentov: ":highlight link %s"E413: Pr�li� mnoho argumentov: ":highlight link %s"E414: skupina je nastaven�, odkaz na zv�raz�ovaciu skupinu ignorovan�E415: neo�ak�van� znamienko rovn� sa: %sE416: ch�ba znamienko rovn� sa: %sE417: ch�ba argument: %sE418: Nepr�pustn� hodnota: %sE419: farba popredia nie je zn�maE41: Nedostatok pam�ti!E420: farba pozadia nie je zn�maE421: N�zov alebo ��slo farby nebolo rozpoznan�: %sE422: termin�lov� k�d je pr�li� dlh�: %sE423: Nepr�pustn� argument: %sE424: Pou��van�ch pr�li� ve�a odli�n�ch zv�raz�ovac�ch vlastnost�E425: Ned� sa sko�i� pred prv� vyhovuj�ci tagE426: tag %s nen�jden�E427: Vyhovuje iba jeden tagE428: Za posledn� vyhovuj�ci tag sa ned� presko�i�E429: S�bor "%s" neexistujeE42: �iadne chybyE430: Cesta k s�boru tagov %s bola orezan�
E431: Chyba form�tovania v s�bore tagov "%s"E432: Obsah s�boru tagov %s nie je zoraden�E433: �iadny s�bor tagovE434: Ned� sa n�js� vzor tagovE435: Tag sa ned� n�js�, iba h�dam!E436: Termcap neobsahuje polo�ku "%s"E437: Termin�l mus� ma� schopnos� "cm" (schopnos� pohybu kurzora)E438: u_undo: ��sla riadkov s� chybn�E439: z�znam o zmen�ch po�koden�E43: Po�koden� re�azac pre vyh�ad�vanieE440: ch�ba opravn� riadokE441: Nen�jden� �iadne okno n�h�aduE442: Okno sa ned� rozdeli� z�rove� v m�de 'vrchn�-�av�' a 'spodn�-prav�' ('topleft' a 'botright')E443: Ned� sa rotova�, ak je in� okno rozdelen�E444: Posledn� okno sa ned� zatvori�E445: In� okno obsahuje zmenyE446: Pod kurzorom sa nenach�dza n�zov s�boruE447: S�bor "%s" sa ned� n�js� v cesteE448: Nepodarilo sa nahra� funkciu kni�nice %sE449: Bol prijat� chybn� v�razE44: Po�koden� regexp programE455: Ned� sa zapisova� do v�stupn�ho PostScriptov�ho s�boruE456: Nemo�no n�js� PostScriptov� zdrojov� s�bor "%s.ps"E456: Nemo�no n�js� PostScriptov� zdrojov� s�bor "cidfont.ps"E456: Nemo�no n�js� PostScriptov� zdrojov� s�bor "prolog.ps"E456: Ned� sa otvori� s�bor "%s"E457: Ned� sa ��ta� PostScriptov� s�bor "%s"E459: �iadny predch�dzaj�ci adres�rE45: vo�ba 'readonly' (iba na ��tanie) je nastaven� (pou�ite ! pre prep�sanie)E460: 'Resource fork' bude straten� (pou�ite ! pre vyn�tenie)E461: Nepr�pustn� meno premennej: %sE462: Nemo�no pripravi� na op�tovn� na��tanie "%s"E463: Regi�n je uzamknut�, nemo�no modifikova�E464: Nejednozna�n� pou�itie pou��vate�om definovan�ho pr�kazuE465: :winsize (ve�kos� okna) vy�aduje dva argumentyE466: :winpos (poz�cia okna) vy�aduje dva argumentyE467: Vlastn� doplnenia vy�aduj� meno funkcie ako argumentE468: Argument doplnenia je povolen� iba pre vlastn� dop��ania (completion)E469: chybn� cscopequickfix pr�znak %c pre %cE46: Ned� sa nastavi� premenn� len na ��tanie "%s"E46: Ned� sa nastavi� premenn� v bezpe�nostnej schr�nke: "%s"E470: Pr�kaz preru�en�E471: Je vy�adovan� argumentE472: Pr�kaz zlyhalE473: Vn�torn� chybaE474: Chybn� argumentE475: Chybn� argument: %sE476: Chybn� pr�kazE477: ! nie je povolen�E478: �iadnu paniku!E479: �iadna zhodaE47: Chyba pri ��tan� chybov�ho s�boruE480: �iadna zhoda: %sE481: Rozsah nie je povolen�E482: Ned� sa vytvori� s�bor %sE483: Ned� sa z�ska� n�zov do�asn�ho s�boruE484: Ned� sa otvori� s�bor %sE485: Ned� sa ��ta� s�bor %sE486: Vzor nen�jden�: %sE487: Argument mus� by� kladn�E488: Nadbyto�n� znaky na konciE48: Nie je dovolen� v bezpe�nostnej schr�nkeE490: Nebol n�jden� �iadne vnorenieE492: Nie je pr�kazom editoruE493: Zadan� sp�tn� rozsahE494: Pou�ite w alebo w>>E495: �iadny n�zov s�boru, ktor�m by bolo mo�n� nahradi� "<afile>"E496: �iadne ��slo bufferu, ktor�m by bolo mo�n� nahradi� "<abuf>"E497: �iadna zhoda automatick�ch pr�kazov, ktorou by bolo mo�n� nahradi� "<amatch>"E498: �iadny :source s�bor, ktor�m by bolo mo�n� nahradi� "<sfile>"E499: Pr�zdn� n�zov s�boru pre '%' alebo '#', funguje iba s ":p:h"E49: Chybn� hodnota ve�kosti rolovaniaE500: V�sledkom vyhodnotenia je pr�zdny re�azecE501: Koniec s�boruE505: E506: Ned� sa zapisova� do z�lo�n�ho s�boru (pou�ite ! pre vyn�tenie)E507: Chyba pri uzatv�ran� z�lo�n�ho s�boru (pou�ite ! pre vyn�tenie)E508: Ned� sa na��ta� s�bor pre z�lohu (pou�ite ! pre vyn�tenie)E509: Ned� sa vytvori� z�lo�n� s�bor (pou�ite ! pre vyn�tenie)E50: Pr�li� mnoho \z(E510: Ned� sa vytvori� z�lo�n� s�bor (pou�ite ! pre vyn�tenie)E512: Zatvorenie zlyhaloE513: chyba pri z�pise, konverzia sa nepodarila (nastavte vo�bu 'fenc' na pr�zdnu pre vyn�tenie)E514: chyba pri ukladan� (pln� disk?)E515: �iadny buffer nebol uvo�nen�E516: �iadny buffer nebol vymazan�E517: �iadny buffer nebol vymazan�E518: Nezn�ma vo�baE519: Vo�ba nie je podporovan�E51: Pr�li� mnoho %s(E520: Nie je v modeline povolen�E521: Po = je vy�adovan� ��sloE522: Nen�jden� v termcapeE523: Nie je na povolen� na tomto miesteE524: Ch�ba dvojbodkaE525: Re�azec s nulovou d�kouE526: Po <%s> ch�ba ��sloE527: Ch�ba �iarkaE528: Je nutn� zada� hodnotu 'E529: Vo�ba 'term' nem�e by� pr�zdnaE52: Nesp�rovan� \z(E530: V grafickom m�de (GUI) sa ned� meni� typ termin�luE531: Pou�ite "gui" pre spustenie GUIE533: ned� sa vybra� �irok� fontE534: Chybn� �irok� p�smoE535: Nepr�pustn� znak po <%c>E536: je nutn� �iarkaE537: 'commentstring' (koment�r) mus� by� pr�zdny alebo mus� obsahova� %sE538: Bez podpory my�iE539: Nepr�pustn� znak <%s>E53: Nesp�rovan� %s%%(E540: Neuzatvoren� zoskupenie v�razovE541: pr�li� mnoho polo�iekE542: nevyv�en� skupinyE543: Chybn� k�dov� str�nkaE544: Mapa kl�ves nen�jden�E545: Ch�ba dvojbodkaE546: Nepr�pustn� m�dE547: Chybn� tvar my�iE548: o�ak�van� ��slicaE549: Nepr�pustn� percentoE54: Nesp�rovan� %s(E550: Ch�ba dvojbodkaE551: Nepr�pustn� komponentE552: o�ak�van� ��slicaE553: �iadne �al�ie polo�kyE554: Chyba syntaxe v %s{...}E555: na konci zoznamu tagovE556: na za�iatku zoznamu tagovE557: Ned� sa otvori� termcap s�borE558: Terminfo neobsahuje polo�ku pre tento termin�lE559: Termcap neobsahuje polo�ku pre tento termin�lE55: Nesp�rovan� %s)E560: Pou�itie: cs[cope] %sE561: nezn�my typ cscope h�adaniaE562: Pou�itie: cstag <odsadenie>E563: chyba statE563: stat(%s) chyba: %dE564: %s nie je ani adres�rom ani spr�vnou cscope datab�zouE566: Nedaj� sa vytvori� cscope r�ryE567: �iadne cscope spojeniaE568: duplicitn� cscope datab�za nebola pridan�E569: dosiahnut� maxim�lny po�et cscope spojen�E570: v�na chyba v cs_manage_matchesE571: Prep��te, tento pr�kaz je vypnut�, Tcl kni�nica nem�e by� na��tan�.E572: n�vratov� k�d %dE573: Pou��t� chybn� ��slo servera: %sE574: Nezn�my typ registra %dE579: vnorenie :if je pr�li� hlbok�E580: :endif bez zodpovedaj�ceho :ifE581: :else bez zodpovedaj�ceho :ifE582: :elseif bez zodpovedaj�ceho :ifE583: viacn�sobn� :elseE584: :elseif nasleduje po :elseE585: vnorenie :while/:for je pr�li� hlbok�E586: :continue bez zodpovedaj�ceho :while alebo :forE587: :break bez zodpovedaj�ceho :while alebo :forE588: :endfor bez zodpovedaj�ceho :forE588: :endwhile bez zodpovedaj�ceho :whileE589: vo�by 'backupext' a 'patchmode' maj� rovnak� hodnotuE590: Okno n�h�adu u� existujeE591: hodnota vo�by 'winheight' (v��ka okna) nesmie by� men�ia ne� hodnota vo�by 'winminheight' (minim�lna v��ka okna)E592: hodnota vo�by 'winwidth' (��rka okna) nesmie by� men�ia ne� hodnota vol�y 'winminwidth' (minim�lna ��rka okna)E593: Minim�lny potrebn� po�et riadkov je %dE594: Minim�lne potrebn� po�et st�pcov je %dE595: obsahuje netla�ite�n� znakyE596: Chybn� p�smaE597: ned� sa vybra� sada p�siemE598: Chybn� sada p�siemE599: Hodnota 'imactivatekey' je nespr�vne nastaven�E59: Nepr�pustn� znak po %s@E600: Ch�ba :endtryE601: vnorenie :try je pr�li� hlbok�E602: :endtry bez :tryE603: :catch bez :tryE604: :catch nasleduje po :finallyE605: V�nimka nezachyten�: %sE606: :finally bez :tryE607: viacn�sobn� pou�it� :finallyE608: Nemo�no spracova� v�nimku :throw s preponou 'Vim'E609: Chyba cscope: %sE60: Pr�li� komplexn� %s{...}E612: Pr�li� mnoho definovan�ch zna�iekE613: Nezn�my font tla�iarne: %sE614: vim_SelFile: ned� sa vr�ti� do aktu�lneho adres�raE615: vim_SelFile: ned� sa zisti� aktu�lny adres�rE616: vim_SelFile: p�smo %s nie je dostupn�E617: Ned� sa zmeni� v grafickom rozhran� GTK+ 2E618: s�bor "%s" nie je vo form�te PostScriptE619: s�bor "%s" nie je podporvan� PostScriptov� s�borE61: Vnoren� %s*E620: Nemo�no skonvertova� do k�dovania na tla�enie "%s"E621: "%s" zdrojov� s�bor m� zl� ��slo verzieE622: Nemo�no spusti� proces pre cscopeE623: Nedaj� sa vytvori� cscope r�ryE624: Ned� sa otvori� s�bor "%s"E625: nemo�no otvori� cscope datab�zu: %sE626: nemo�no z�ska� cscope datab�zov� inform�cieE62: Vnoren� %s%cE63: Chybne pou�it� \_E64: %s%c ni� nenasledujeE655: Pr�li� mnoho symbolick�ch odkazov (slu�ka?)E658: Straten� NetBeans spojenie pre buffer %ldE659: Python nem�e by� spusten� rekurz�vneE65: Chybn� sp�tn� referenciaE661: �utujem, �iadny '%s' pomocn�k pre %sE662: Na za�iatku zoznamu zmienE663: Na konci zoznamu zmienE664: zoznam zmien je pr�zdnyE665: Nemo�no na�tartova� grafick� rozhranie, nen�jden� �iaden pou�iteln� fontE666: preklada� nie je podporovan�: %sE667: Fsync zlyhalE668: Zl� pr�stupov� pr�va pre s�bor s inform�ciami pre NetBeans spojenie: "%s"E669: Netla�iteln� znak v mene skupinyE66: \z( tu nie je povolen�E670: R�zne k�dovania pre s�bory s pomocn�kom pre jazyk: %sE671: Nemo�no n�js� okno s titulkom "%s"E672: Nemo�no otvori� okno vn�tri MDI aplik�cieE673: nekompatibiln� viacbajtov� k�dovanie a znakov� sada.E674: vo�ba printmbcharset nem�e by� pr�zdna pri viacbajtovom k�dovan�.E675: Nie je �pecifikovan� �iadne p�smo pre viacbajtov� tla�enie.E676: �iadne vyhovuj�ce automatick� pr�kazy pre acwrite buffer E677: Chyba pri z�pise do�asn�ho s�boruE678: Nepr�pustn� znak po %s%%[dxouU]E679: rekurz�vna slu�ka pri na��tavan� syncolor.vimE67: \z1 a spol. tu nie je povolen�E680: <buffer=%d>: chybn� ��slo bufferuE681: Buffer nie je na��tan�E682: Nepr�pustn� h�adan� re�azec alebo odde�ova�E683: Ch�ba meno s�boru alebo chybn� vzorE684: index v zozname je mimo rozsah: %ldE685: Vn�torn� chyba: %sE686: Argument %s mus� by� Zoznam (List)E687: Menej cie�ov ako polo�iek Po�a (List items)E688: Viac cie�ov ako polo�iek Po�a (List items)E689: Indexova� mo�no iba Zoznam (List) alebo Slovn�k (Dictionary)E68: Nepr�pustn� znak po \zE690: Ch�ba "in" po :forE691: Porovn�va� mo�no iba Zoznam so Zoznamom (List with List)E692: Neplatn� oper�cia pre Zoznamy (List)E693: Porovn�va� mo�no iba odkaz na Funkciu s odkazom na Funkciu (Funcref with Funcref)E694: Neplatn� oper�cia pre odkazy na Funkcie (Funcrefs)E695: Nemo�no indexova� odkaz na Funkciu (Funcref)E696: Ch�ba �iarka v Zozname: %sE697: Ch�ba koniec Zoznamu (List) ']': %sE698: premenn� je vnoren� pr�li� hlboko pre skop�rovanieE699: Pr�li� mnoho argumentovE69: Ch�baj�ca ] po %s%%[E700: Nezn�ma funkcia: %sE701: Neplatn� typ pre len()E702: Funkcia na utriedenie/porovnanie zlyhalaE703: Pou�it� odkaz na Funkciu (Funcref) ako ��sloE704: Premenn� typu odkaz na Funkciu (Funcref) mus� za��na� s ve�k�m p�smenom: %sE705: Meno premennej je v konflikte s existuj�cou funkciou: %sE706: Typ premennej sa nezhoduje: %sE708: [:] mus� pr�s� ako posledn�E709: [:] vy�aduje hodnotu Po�a (List value)E70: Pr�zdny %s%%[]E710: Hodnota Po�a (List value) m� viac polo�iek ako cie�E711: Hodnota Po�a (List value) nem� dostatok polo�iekE712: Argument %s mus� by� Zoznam (List) alebo Slovn�k (Dictionary)E713: Nemo�no pou�i� pr�zdny k��� pre Slovn�k (Dictionary)E714: vy�aduje sa Zoznam (List)E715: Vy�aduje sa Slovn�k (Dictionary)E716: k��� sa v Slovn�ku (Dictionary) nenach�dza: %sE717: Z�znam v Slovn�ku (Dictionary) u� existujeE718: Je vy�adovan� odkaz na Funkciu (Funcref)E719: Nemo�no pou�it [:] so Slovn�kom (Dictionary)E71: Nepr�pustn� znak po %s%%E720: Ch�ba dvojbodka v Slovn�ku (Dictionary): %sE721: Duplikovan� k��� v Slovn�ku (Dictionary): "%s"E722: Ch�ba �iarka v Slovn�ku (Dictionary): %sE723: Ch�ba koniec Slovn�ka (Dictionary) '}': %sE724: premenn� je vnoren� pr�li� hlboko pre zobrazenieE726: Krok je nulov�E727: Za�iatok presahuje koniecE728: Slovn�k (Dictionary) pou�it� ako ��sloE729: Odkaz na Funkciu (Funcref) pou�it� ako Re�azec (String)E72: Chyba pri uzatv�ran� odkladacieho s�boruE730: Zoznam (List) pou�it� ako Re�azec (String)E731: Slovn�k (Dictionary) pou�it� ako Re�azec (String)E732: Pou�it� :endfor spolu s :whileE733: Pou�it� :endwhile spolu s :forE734: Zl� typ premennej pre %s=E735: Porovn�va� mo�no iba Slovn�k so Slovn�kom (Dictionary with Dictionary)E736: Neplatn� oper�cia pre Slovn�kE737: K��� u� existuje: %sE738: Nemo�no vyp�sa� premenn� pre %sE739: Nemo�no vytvori� adres�r: %sE73: zoznam tagov je pr�zdnyE741: Hodnota je uzamknut�: %sE742: Nemo�no zmeni� hodnotu %sE743: premenn� je pr�li� vnoren� na (od)blokovanieE744: NetBeans nepovo�uje zmeny v s�boroch len na ��tanieE745: Rozsah nie je povolen�E745: Zoznam (List) pou�it� ako ��sloE746: Meno funkcie sa nezhoduje s menom interpretovan�ho s�boru: %sE747: Nemo�no zmeni� adres�r, buffer je modifikovan� (pou�ite ! pre vyn�tenie)E748: �iadny predt�m pou��van� registerE749: pr�zdny bufferE74: Pr�kaz je pr�li� zlo�it�E750: Najprv pou�ite pr�kaz :profile start <meno_suboru>E751: V�stupn� meno s�boru nesmie ma� n�zov regi�nuE752: �iadny predch�dzaj�ce nahradenie pod�a slovn�kaE753: Nen�jden�: %sE754: Podporovan�ch max. 8 regi�novE755: Chybn� regi�n v %sE756: Kontrola pravopisu nie je zapnut�E757: Toto sa nezd� by� slovn�kov�m s�boromE758: Odseknut� spell s�bor (kontrola pravopisu)E759: Chyba form�tovania v spell s�bore (kontrola pravopisu)E75: N�zov je pr�li� dlh�E760: Ch�aj�ci po�et slov v %sE761: Chyba form�tovania v s�bore pr�pon FOL, LOW alebo UPP (NASLEDUJE, MAL� alebo VE�K�)E762: Znak v FOL, LOW alebo UPP (NASLEDUJE, MAL� alebo VE�K�) je mimo rozsahE763: Znaky slov sa odli�uj� medzi slovn�kov�mi s�bormiE764: Vo�ba "%s" nie je nastaven�E765: 'spellfile' nem� %ld polo�iekE766: Chybn� argumenty pre funkciu printf()E767: Pr�li� mnoho argumentov pre funkciu printf()E768: Odkladac� s�bor existuje: %s (pou�ite :silent! pre prep�sanie)E769: Ch�baj�ca ] po %s[E76: Pr�li� mnoho [E770: Nepodporovan� sekcia v slovn�kovom s�boreE771: Star� slovn�kov� s�bor, potrebuje by� zaktualizovan�E772: Slovn�kov� s�bor je pre nov�iu verziu VimE77: Pr�li� mnoho n�zvov s�borovE783: duplicitn� znak v MAP polo�keE789: Ch�ba ']': %sE78: Nezn�ma zna�kaE79: Nemo�no expandova� �ol�kov� znaky (wildcards)E800: Ned� sa pou�� arabic re�im: nebol zapnut� pri preklade programu
E80: Chyba pri ukladan�E81: Pou�itie <SID> mimo kontext skriptuE82: Ned� sa alokova� buffer, kon��m...E83: Ned� sa alokova� buffer, pou�ijem in�...E84: Nebol n�jden� �iadny zmenen� bufferE85: Nena�iel som �iadny bufferE86: Buffer %ld neexistujeE87: Za posledn� buffer sa ned� presko�i�E88: Pred prv� buffer sa ned� presko�i�E89: Zmeny v bufferi %ld neboli ulo�en� (! pre vyn�tenie)E90: Posledn� buffer sa ned� odstr�ni�E91: vo�ba 'shell' je pr�zdnaE92: buffer %ld nen�jden�E93: Vzoru %s vyhovuje viac bufferovE94: Vzoru %s nevyhovuje �iadny bufferE95: Buffer tak�hoto mena u� existujeE96: Nem�em porovna� viac ako %ld bufferovE97: Nedaj� sa vytvori� porovnaniaE98: Ned� sa ��ta� v�stup porovnaniaE99: Aktu�lny buffer nie je v porovn�vacom m�deCHYBA: Upravova� s�borUpravi� s�bor v novom okneUpravi� s &VimomUpravi� s viacer�&mi VimmiUpravi� s existuj�cim Vimom - Upravi� s jedn�m &VimomUpravi� vybran� s�bory s VimomK�dujem:Koniec funkcieKoniec interpretovan�ho s�boruZadajte �ifrovac� k���: Zadajte ��slo odkladacieho s�boru, ktor� sa m� pou�it (0 pre ukon�enie): Vlo�te ten ist� k��� znova: Sp���am re�im ladenia. Pre ukon�enie nap�te "cont".Sp���am Ex re�im. Nap�te "visual" pre n�vrat do Norm�lneho re�imu.ChybaChyba a preru�en�Chyba vytv�rania procesu: Skontrolujte, �i je gvim vo va�ej ceste!Chyba pri spracovan� %s:Ve�kos� pou��vanej pam�te: %d bajtovV�nimkaZachyten� v�nimka: %sV�nimka zahoden�: %sV�nimka ukon�en�: %sSpracovanie v�nimky: %sSp���am %sO�ak�vam po�et MAP v %s riadok %dO�ak�vam po�et REP v %s riadok %dO�ak�vane Y alebo N v %s riadok %d: %sV�razVn�torn� podraden� zhody:
Pr�znak (FLAG) po pou�it� pr�znakov v %s riadok %d: %sS�bor "%s" neexistujeS�bor zachovan�S�boryFilterN�js� a Nahradi� (pou�ite '\\' ak chcete n�js� '\')N�js� �a&l�ieN�js� �al�ieN�js� re�azec (pou�ite '\\' ak chete n�js� '\')N�js� znakVyh�ada�:Prv� duplicitn� slovo v %s riadok %d: %sPr�znak nie je ��slo v %s na riadku %d: %sP�smo '%s' nem� pevnou ��rkuV�ber P�smaP�smo%ld nie je dvakr�t �ir�ie ako p�smo0
��rka p�sma0: %ld
P�smo0: %s
��rka p�sma1: %ld

P�smo1: %s
P�smo:Chyby za parametrom vo�byVytvori� dokument�ciu prePozdravujem, u��vate� Vimu!Pom�te chudobn�m de�om v Ugande!Koniec odstavcaI/O CHYBAIgnorovan�ch %d slov s nep�smenn�mi znakmi v %sIgnorovan�ch %d slov s nep�smenn�mi znakmiNepr�pustn� n�zov s�boruNepr�pustn� pr�znak v %s riadok %d: %sNepr�pustn� n�zov registraNepr�pustn� za�iato�n� znakVstupn� riadokVstupn� met�dy (_Methods)Preru�en�Preru�enie: Preru�en�Chybn� argument preChybn� �pecifik�cia p�smaPou��t� chybn� ��slo regi�nu v %s riadok %d: %sNeplatn� hodnota pre pr�znak (FLAG) v %s riadok %d: %sK���e sa nezhoduj�!Ukon�i� spojenieZlinkovan�: Zhoda ve�kosti p�smenH�ada� len cel� slov�Spr�vca prekladu: Lubomir Host <rajo@platon.sk>Ch�ba '>'Ch�baj�ci riadok FOL/LOW/UPP v %sCh�ba SOFO%s riadok v %sZmenil Meno:Potrebn� %s verzia %ld
Je potrebn� Amigados verzia 2.04 alebo nov�ia
NetBeans rozhranie nedovolilo zap�sa� nemodifikovan� buffrePre tento buffer nie s� definovan� �iadne polo�ky syntaxe�iadna skratka nebola n�jden�Neboli definovn� �iadne body preru�eniaBez grafick�ho rozhrania�iaden graf. m�d: Odoslanie v�razu zlyhalo.
�iadne vlo�en� s�bory�iadne mapovanie nebolo n�jden�Nie s� nastaven� �iadne zna�ky�iadna zhoda na poz�cii kurzora, h�ad�m �alej�iadne vyhovuj�ce automatick� pr�kazy�iadny odkladac� s�bor�iadny text na tla�Odstr�nenie zmien nie je mo�n�; chcete napriek tomu pokra�ova�Neboli n�jden� �iadne pou�ivate�om definovan� pr�kazy[neupravovan�]OKDial�g pre otv�ranie s�borovOtvorenie X displeja zlyhaloUplynul �as otvorenia X displejaOtvorenie X displej zabralo %ld msecP�vodn� s�bor "%s"Prep�sa� existuj�ci s�bor "%s"?Strana %d�iasto�n� z�pisy nie s� povolen� pre NetBeans buffreZ�platov� s�borPr�li� dlh� cesta!N�zov cesty:Vzor n�jden� na ka�dom riadku: %sVzor nen�jden�Stla�te ENTER alebo zadajte pr�kaz pre pokra�ovanieTla�ov� �loha bola odoslan�.Vytla�en�: %sTla��m '%s'Tla� bola zru�en�Tla��m stranu %d (%d%%)H�adanie vzoruOt�zkaNa��tavam s�bor s pr�ponami %s ...Na��tavam slovn�k %s ...��tam zo �tandardn�ho vstupu...��tam slovn�kov� s�bor "%s"��tam viminfo s�bor "%s"%s%s%sNa��tavam s�bor so slovami %s ...Obnova dokon�en�. Skontrolujte, �i je v�etko v poriadku.Znovu inicializova� v�etky spojeniaNahradi�Nahradi� &V�etkoNahradi� V�etkoNahradi� s:Obnovi�Obnovi� zo v�etk�ch projektovObnovi� zo s�boruObnovi� z projektuPracujem v re�ime kompatibility s ViSp���am v bezm�dovom re�ime, p�san� text je vlo�en�SNiFF+ je aktu�lne Ulo�i� akoDial�g pre ukladanie s�borovUlo�i� presmerovanieUlo�i� sedenieUlo�i� nastavenieUlo�i� poh�adUlo�i� zmeny do "%s"?preh�ad�vam slovn�k %sPreh�ad�vam vlo�en� s�bory: %sPreh�ad�vam tagy.Preh�ad�vam: %sPr�pravok posuvnej li�ty: ned� sa zisti� geometria n�h�adu obr�zku.Vyh�ad�van� re�azecH�ad�m "%s"H�ad�m "%s" v "%s"Preh�ad�vam s�bor tagov %sPozrite ":help E312" pre �al�ie inform�ciePozrite ":help W11" pre viac inform�ci�.Pozrite ":help W12" pre viac inform�ci�.Pozrite ":help W16" pre viac inform�ci�.Dial�g pre vytvorenie adres�raVybran�ch %s%ld z %ld Riadkov; %ld zo %ld Slov; %ld z %ld BajtovVybran�ch %s%ld z %ld Riadkov; %ld zo %ld Slov; %ld z %ld Znakov; %ld z %ld BajtovV�berPosielam na tla�iare�...Uk�za� z�kladn� trieduUk�za� triedu v hierarchiiUk�za� triedu v obmedzenej hierarchiiZobrazi� spojeniaUk�za� dokument�ciuUk�za� pre�a�en� �lensk� funkciuUkazuj ve�kos� v bodochUk�za� zdrojZobrazi� t�to spr�vuZnaky pre %s:Ve�kos�:Sniff: Chyba z�pisu. Odpojen��utujem, s�bor "%s" s pomocn�kom nebol n�jden�Prep��te, �iadne n�vrhyPrep��te, iba %ld n�vrhovPrep��te, tento pr�kaz je vypnut�, Perl kni�nica nem�e by� na��tan�.Zdrojov� skript VimZasponzorujte v�voj Vimu!N�rast ve�kosti z�sobn�ku�t�lOdkladac� s�bor "Odkladac� s�bor "%s" existuje, aj tak prep�sa�?Odkladac� s�bor u� existuje!N�jden� odkladacie s�bory:Odtrhn�� tuto ponukuTestovanie X displeja zlyhalo�akujeme za pou�itie VimS�bor bol vytvoren� Jedin� zhodaTento Vim nebol kompilovan� s porovn�vac�mi funkciami.Tento cscope pr�kaz nepodporuje rozde�ovanie okna.
Prepn�� implement�ciu/defin�ciuPr�li� mnoho "+pr�kaz", "-c pr�kaz" alebo "--cmd pr�kaz" argumentovPr�li� mnoho upravovac�ch pr�znakovPr�li� mnoho upravovac�ch argumentovPr�li� mnoho odlo�en�ch pr�ponPr�li� mnoho odlo�en�ch pr�pon a/alebo upravovac�ch pr�znakovPr�li� mnoho regi�nov v %s riadok %d: %sZa�iatokPrebyto�n� text v %s na riadku %d: %sZadajte  :quit<Enter>  pre ukon�enie programu VimZadajte ��slo ale kliknite my�ou (<Enter> zru��): Ned� sa ��ta� blok 0 z Nem�em zaregistrova� meno pr�kazov�ho servraNezn�myNezn�my parameter vo�byNerozpoznan� pr�znak v %s riadok %d: %sNerozpoznan� alebo opakuj�ca sa polo�ka v %s riadok %d: %sBez menaHorePou�ite Vim verziu 3.0.
Pou�it� CUT_BUFFER0 namiesto pr�zdneho v�beruPou��vam odkladac� s�bor "%s"VIM - POZORVIM - N�js� a nahradi�...VIM - N�js�...VIM - Vi IMprovedVIM ChybaVIM: Ned� sa otvori� okno!
VIMRUN.EXE nen�jden� v $PATH.
Po dokon�en� extern�ch pr�kazov nebude v�stup pozastaven�.
Pozrite  :help win32-vimrun  pre viac inform�ci�.Vim - V�ber p�smaVim E458: Ned� sa alokova� polo�ka mapy farieb, niektor� farby m�u by� nespr�vneVim VarovanieVim dial�gVim dial�g..Chyba VimChyba Vim: ~aVim ukon�en� s %d
Vim je vo�ne ��rite�n� program s otvoren�m k�domVim: Zachyten� udalos� %s
Vim: Zachyten� smrtiaci sign�l
Vim: Zachyten� smrtiaci sign�l %s
Vim: dvojit� sign�l, kon��m
Vim: Chyba pri ��tan� vstupu, kon��m...
Vim: Chyba: Chyba sp���ania gvim pre NetBeans
Vim: ukon�en�
Vim: Hlavn� okno neo�ak�vane zru�en�
Vim: ��tam zo �tandardn�ho vstupu...
Vim: Prijat� po�iadavka na ukon�enie (die) od mana��ra seden�
Vim: Varovanie: Vstup nepoch�dza z termin�lu
Vim: Varovanie: V�stup nesmeruje na termin�l
Vim: zachov�vam s�bory...
W10: Varovanie: men�m s�bor iba pre ��tanieW11: Varovanie: s�bor "%s" bol po za�at� �pravy zmenen�W12: Varovanie: s�bor "%s" bol po za�at� �pravy zmenen� a buffer sa tie� zmenil W13: Varovanie: S�bor "%s" bol vytvoren� po za�at� �pravyW14: Varovanie: prete�enie zoznamu s n�zvami s�borovW15: Varovanie: chybn� odde�ova� riadkov. Mo�no ch�ba ^MW16: Varovanie: Pr�stupov� pr�va k s�boru "%s" boli po za�at� �prav zmenen�W17: M�d Arabic vy�aduje k�dovanie UTF-8, nastavte to pr�kazom ':set encoding=utf-8'W18: Chybn� znak v mene skupinyVAROVANIE: S�bor bol zmenen� od jeho na��tania!!!VAROVANIE: detekovan� Windows 95/98/MEVarovanieVarovanie: Nemo�no n�js� zoznam slov "%s.%s.spl" alebo "%s.ascii.spl"Varovanie: Ne�akan� vstup do in�ho bufferu (skontrolujte automatick� pr�kazy)Varovanie: �pecifikovan� sp�janie a nezalamovanieVarovanie: regi�n %s nie je podporovan�Varovanie: termin�l nepodporuje zv�raz�ovaniePri otv�ran� s�boru "Poz�cia okna: X %d, Y %dSlovo z in�ho riadkuUlo�i� ne�pln� s�bor?Ukl�d�m slovn�kov� s�bor %s ...Ukl�d�m viminfo s�boru "%s"Zl� hodnota COMPOUNDMAX v %s riadok %d: %sZl� hodnota COMPOUNDMIN v %s riadok %d: %sZl� hodnota COMPOUNDSYLMAX v %s riadok %d: %sXSMP kontrola spojenia ICE zlyhalaXSMP SmcOpenConnection zlyhalo: %sXSMP spracuv�va po�iadavku na samoulo�enieXSMP stratilo ICE spojenieXSMP otv�ra spojenieXref m�Xref odk�zan� zXref odkazuje naXref pou�it��NONulov� po�et[CHYBA PREVODU][ch�ba CR][vymazan�][zariadenie][Zoznam ch�b][NEPR�PUSTN� BAJT na riadku %ld][ne�pln� posledn� riadok][n�jden� NL][neskonvertovan�][nov� s�bor][Nov� s�bor][nov�][Bez mena][Neulo�en� zmeny]
[Neupravovan�][pr�stup odmietnut�][N�h�ad][CHYBY ��TANIA][RO][Chyby pri ��tan�][volanie] celkom re/malloc(): %lu, celkom free() %lu

[skonvertovan�][�ifrovan�][dos form�t][dos][pomenovan� r�ra/soket][pomenovan� r�ra][s�bor ..] ..       upravi� s�bor(y)[pomocn�k][dlh� riadky zalomen�][mac form�t][mac][bez znaku konca riadku][iba pre ��tanie][soket][unix form�t][unix]a pomocou programu diff zistite zmeny oproti p�vodn�mu s�boru)
pokus o odkaz na vymazan� bufferpokus o odkaz na vymazan� oknosamomazac� automatick� pr�kaz: %s <buffer=%d>automatick� pr�kaz %sskop�rovan� blok %ld riadkovskop�rovan� blok 1 riadkubuffer je neplatn� od Brama Moolenaara a �al��chfunkcia inputrestore() volan� �astej�ie ako inputsave()vol�m %sned� sa vymaza� vlastnos� OutputObjectned� sa ��ta� v�stup 'charconvert'nem�em zmeni� konzolov� m�d ?!
ned� sa vytvori� pr�kaz bufferu/okna: objekt bude vymazan�ned� sa vymaza� riadokned� sa pre��ta� riadokned� sa vlo�i� riadokned� sa vlo�i�/pripoji� riadokned� sa otvori� ned� sa zaregistrova� pr�kaz sp�tn�ho volania: buffer/okno u� bol vymazan�ned� sa zaregistrova� pr�kaz sp�tn�ho volania: odkaz na buffer/okno nen�jden�ned� sa nahradi� riadoknedaj� sa ulo�i� z�lo�ne (opravn�) inform�cienedaj� sa nastavi� riadkyned� sa kop�rova�; napriek tomu vymazan�zavrie�pr�kaz: %spripojen�pokra�ujem v %sned� sa interpretova� "%s"nemo�no otvori� bufferspustenie cs_create_connection zlyhalocs_create_connection: volanie fdopen pre fr_fp zlyhalocs_create_connection: volanie fdopen pre to_fp zlyhalopr�kazy cscope:
cscope spojenie %s ukon�en�umiestnenie kurzoru mimo buffernastavujem na 'vymazan� blok 1?dlerror = "%s"neukon�ujte editor sk�r, ne� bude s�bor �spe�ne ulo�en�!zoznam ch�b %d z %d; %d ch�bpodpora v�razov bola vypnut� pri preklade programus�bor
n�zov s�boru/ kontext / riadok
dokon�en� interpret�cia %suvol�ujem %ld riadkovchyba gvimext.dllpomocn�kskryt� vo�bav ceste ---
chybn� vlastnos�chybn� ��slo bufferuchybn� v�razchybn� meno zna�kyje adres�romnie je s�boromnie je s�borom ani zapisovateln�m zariaden�mje iba pre ��tanie (pou�ite ! pre vyn�tenie)preru�enie z kl�vesniceriadok %4ld:riadok %6d, slovo %6d - %sriadok %ldriadok %ld z %ld --%d%%-- st�pecriadok %ld: %sriadok %ld: nem�no interpretova� "%s"riadok %ld: interpretujem "%s"��slo riadka mimo rozsah��slo riadka mimo rozsahodhl�si�zna�ka nie je nastaven�zhoda %dzhoda %d z %dmaxim�lne mch_get_shellsize: nie je konzolou??
ponuka  �pravy->Glob�lne mo�nosti->Prepn�� re�im vlo�enia ponuka  �pravy->Glob�lne mo�nostt->Prepn�� Vi kompatibiln� re�imbli��ie inform�cie v ponuke  Pomocn�k->Samostatn�bli��ie inform�cie v ponuke  Pomocn�k->Sponzor/Registr�ciaminim�lne spusten� nov� shell
nie�iadne cscope spojenia
�iadna �pecifick� zhoda�iadny tak� buffer�iadne tak� okno�iadne synchroniz�cienenie je dovolen� v bezpe�nostnej schr�nkenen�jden� s�bor "%s" nebol n�jden� v 'runtimepath'nie je e�te podporovan�pe_line_count m� nulov� hodnotupre-vimrc pr�kazov� riadok��tanie z Netbeans soketuvlastnos� iba pre ��tanienahr�vamnahradi� %s (y/n/a/q/l/^E/^Y)?riadok %d st�pec %dh�adanie dosiahlo koniec, pokra�ovanie od za�iatkuh�adanie dosiahlo za�iatok, pokra�ovanie od koncashell n�vratov� hodnota shellu %dvypn��softspace mus� by� kladn� cel� ��slointerpretujem "%s"stack_idx by mal ma� hodnotu 3re�azec nesmie obsahova� znaky nov�ho riadkusynchronizujem pod�a koment�rov jazyka Csynchroniz�cia za��na tag %d z %d%smeno tagu%s na %spodrobnej�ie inform�cie z�skate pomocou :help cp-default<Enter>zadajte  :help iccf<Enter>          pre inform�cie         zadajte  :help register<Enter>      pre inform�cie         zadajte  :help sponsor<Enter>          pre inform�cie         zadajte  :help version8<Enter>      pre inform�cie o verziizadajte  :help windows95<Enter>  pre podrobnej�ie inform�ciezadajte  :help<Enter>  alebo  <F1>  pre pomocn�ka          zadajte  :q<Enter>                  pre ukon�enie programu zadajte  :set nocp<Enter>           pre implicitn� nastavenie Vimnezn�my pr�znak: nezn�ma vo�banezn�ma vo�ba (vimOption)verzia chyba Vimv pr�pade, �e je ignorovan� ve�kos� p�smen, pou�ite znak '/' na za�iatku, aby mal pr�znak v�znam ve�k�ho p�smena��slo okna mimo rozsahokno je neplatn�s klasick�m grafick�m rozhran�m.s grafick�m rozhran�m Carbon.s grafick�m rozhran�m Cocoa.s grafick�m rozhran�m GTK.s grafick�m rozhran�m GTK-GNOME.s grafick�m rozhran�m GTK2.s grafick�m rozhran�m GTK2-GNOME.s grafick�m rozhran�m.s grafick�m rozhran�m KDE.s grafick�m rozhran�m Photon.s grafick�m rozhran�m X11-Athena.s grafick�m rozhran�m X11-Motif.s grafick�m rozhran�m X11-neXtaw.bez grafick�ho rozhrania.writelines() vy�aduje zoznam re�azcovPK�j�Zz4��]] vim80/lang/ru/LC_MESSAGES/vim.monu�[�����[�:�	�u0�1�
B�P�Y�'o�/��ǝݝ�"	�0,�]�j�+r���"��ܟ�5��3�P�l��������;[�����̡���	��+�A�\�t�����0��.�/�0I�
z�������
ϣݣ
�$��$"�G� X�y�@��Dɤ�"�!=�_�"~���"������@�\�w���������/˦8��,4�=a�����Ч���0
�1>�1p�����̨�-�0�P�e�w�����3ĩ3��,�I�a�y�����
��ɪت���
,�$:�_�"k�L�� ۫���;,�h�w�#��	����ˬӬ��
���"�3�?�W�	o�y�����!����̭���3�;� C�d������®ˮ
Ӯ�6�%�B�[�!z���
����	��ɯ�����&��	&�"0�*S�~���=��ڰ
�����
��.�	5�
?�
M�X�
a�l�~�����5���-��1-�&_�������Ųز���$.�S�c�
w���������ϳ����+�C�T�`�l�{�������
ǴҴߴ�
����7(�`�m���������������õ=ǵ2�8�A�G�P�'a�-��2��5� �=�?V�����÷+ҷ��	
��1�J�[�q�-����$ݸ�
"�-�=�Q�]�?t���2ù!��%�9>�Ex�9��C��K<�I��Hһ;�6W�8��3Ǽ<��-8�6f���%��ݽ�� �:�&J�,q�#��4¾ ��@�-Y�0��:��;�/�"O�r�>��)�>�<+�h�t�#��:��'�9�U�$n�9��4��;� >�>_�1��/���-�K�.Z�B��"��2��4"�*W���+��%��'��(�<C�E��.��-��$#�H�<a���*��&��
� �4;�p�����������������
��
#�1�:�"B�e�q���������)���$�3�B�J�c�1|�?��������)�:�P�k�~�X��%����5�S�l�����������$���!�:�X�^�n�r���"����$���#"�F�M�h�Q��������	�� :�[�4{�����	��?��P�c�
p�
~�.����-����-�$L�.q�����.��H	�R�r���O��O��
:�CH�	������!��������3�26�!i�(���� ��"��E�W�%t�#��-����
�'�&C�j�|���������'���)8�+b�@��-����5�P�m�����/��9��#�E@���-��7��#� +�:L�5��&��"��&�$.�#S�!w�=��5�� 
�(.�7W�!��,������� )�#J�&n������������3�R�0q�$��!�� ��(
�43�,h����������� �(�E�1_���!��%��%��%�B� [�|���?��&��#�>�
Z�Ah�%��"��"��9�'P�(x�2��*��!��!!�)C�%m�!��4��:��&%�;L�;��)��0���>�Z�s���#��!��8��&�#D�h� ��/��"����-�3�D�]�/u�*��(��#���9�T�q���>������"3�V�u�����!����9��15�)g�1��%��7��!�A;�?}�������!
�,�H�c�0��4��$��)
�N7�,��&��L��'�?�U�8l���$������,� G� h�#������7��N�i�����$��!��3�,8�2e�%����"����#�>�]�z���B����0�!B� d�<��+�����+#�2O�$����,��H
�,V�����"������7�V�9u�����0��#,�'P�x���,��&����+!�2M�-��(���"�'�';�,c���.���#��,�WG�)��"�,�%�?� \�}�2��2�2��/�!L�n���2��5�'�#-�)Q�3{�$��%����1�F�f�$~�&�� �'�*#>'b%��3�!&+Eq*�-�$�.Mi| � �$�$�)#Me,{��%��=\x��'��
$*#O0s.�0�$A\t��-� �7 )X�$�(��%$<a��'��'� 	@	X	r	 �	7�	0�	
#3
W
"w
(�
!�
�
-116c5��.�*1E9w�*�&�+#
,O
+|
4�
<�
+*Fq������$7"Fi|�����;Uq���:�=<I6�<��"6+K)w4�5�43Au0� ��D�P1%����5Gg!�����&:'W�!���"	,1As��"���'CWj������7Tn*�)��� /J[6t#��)�&K<� ����'AV"p&�#���+%D7j5���,AWr)� ��� :Vu�0��� - 4L .� $� )� 1� ;1!m!.}!*�!�!$�!"%7",]"�"�"�"&�"-�"&!#H# d#�#�#�#+�# $$$?7$)w$�$6�$#�$2%9I%>�%8�%1�%-&)K&)u& �&)�&�&)'*/'"Z'}'#�'"�'"�')(*(J(%h( �(+�($�())!=)0_)�)�)�)�)"�)!*9A*8{*$�*/�*	+"+B++T+%�+1�+)�+,,'0,%X,~,&�,!�,%�,'-%,-'R--z-2�-�-�-$.*.J.h."�.�.�.!�.1
/&</c/!�/!�/�/(�/00+<08h0�07�0E�0!>1`1s1(�10�1#�1
2$2C2#^2*�2�2 �2�2�2032G30z3�3+�3)�3$4/C4s4�4'�4)�4,�4585 V5w5�5-�5,�56/ 6+P6'|6!�6 �60�67!07,R77�7(�7�7�70�7.08_889�8�8�89*49_93~9�9%�92�90$:!U:;w:R�:;*%;P;i;(�;�;+�;+�;!< <<"]<%�< �<+�<"�<+=B=.b=4�=I�=)>):>6d>6�>-�>(?/)?&Y?<�?)�?*�?@7,@d@{@�@*�@�@A0A/OA!A"�A*�A/�A;B[BzBQ�B.�BC$4C#YC0}C#�C�C2�C6$D[D+{D%�DX�D;&E/bE;�E�E!�E%F"6FNYF.�F$�F&�FT#G#xG"�GB�GH!H>HXHxH)�H'�H�HI'IGI	OIYIqI�I�I�I#�I	�I�IJJ.2JaJ.xJ6�J�J�J6�J#/K
SK&^K	�K�K�K�K�K�K �K%L!<L
^LiL(L��LaSM�M+�Ma�M\NkNqN(xN
�N	�N%�N�N
�N�N&O&8O_O(|O�O	�O�O	�O�O�O�OP&PDP	YP2cP*�P�P�P�PQ(Q
>QIQ	XQbQnQzQ�Q#�Q(�Q�Q	R	R%R=R
[RfR|R2�R�R�R�R�R	SS$$SIS/fS�S'�S�S�S
�S$�S#T5TFT STtT�T�T�T!�T�T�T(U0U'@UhUkU|U�U�U�U#�U�UV&V..V
]VhV	~V�V�V�V�V'�VW#W
/W=WNWfWzW�W�W�W�W�WXX;X9TX9�X�X�X�X�X
YYY2YEY[Y(yY�Y�Y�Y�Y�Y
�Y	�YZZ1ZLZ[Z9hZ
�Z�Z�Z�Z�Z&[7[V[u[�[?�[Q�[	>\H\^\q\"�\�\�\�\�\�\
]
]-])3]']]�]�]�]F�]^0^I^^^e^q^(}^�^�^�^�^�^_+_A_Z_0i_;�_ �_>�_6`N`f`1�`"�`�`�`�`a)5a=_a�a(�a�a�a$b0(bYbbbeb+{b2�b�b�b�bc+c	=cGc�`c�cF�cAd
Md	Xd
bdpd+�d�d%�d0�d(eGe1ce+�e*�e&�e9fMMf>�f)�f5gA:g4|g$�g6�g"
h0h<8h<uh?�h/�h "i"Cifi2{i0�i�i�ij/jDjXjrj�j�j2�j)�j+k,Jk-wk �k!�k#�kl%l
=lHlYlhlul
yl�l�l	�l�l�l�l�l�lmm+m
;m
FmQm	Wmamm�m	�m�m
�m�m
�m	�m5�mn/n	;nEnRn
Xnfn&mn�n�n�n�n
�n�n
�n�n�n�n9oB:oD}o"�o$�o"
p)-pWpfpmp�p�p�p�p1�p
�p$
q"/qRq<qq�q'�q!�qrr.rHrgr�rH�rC�rs.sKscsvs�s�s�s�s	�s�s�s�s �s#t-9t-gt�t�t�t�t�tu(u&Auhu=wu�u�u%�u
vv88vFqv.�vD�vM,w@zw0�w&�w'x&;x$bx�x�x$�x�x-�x"y:yTyky�y�y�y�y�y�y�y6
zAz Sztz
yz�z"�z�z%�z*�z.{8I{"�{#�{%�{#�{|)|?|R|/d|�|
�| �| �|�|
}})}2}P}]}}}	�}�}�}2�}�}~&~-~$<~a~n~w~�~#�~1�~1�~11I{�	�
�(�����
��
*�5�:�
Y� d���(��'€ ��!�8�X�r�	����"��́߁$�$�:�A�S�\�v�
������ɂ�����.�.G�.v�.��.ԃ.�.2�.a�.��&��%�� '�:H�����������"˅)�)�B�	K�U�r���������Ȇ	݆���
�!�6�3C�7w�>����#�f@�f���!-�O��l�NV�����Dƌ0�N<� ��(��`ՍI6�4��9���.�z4�y��)�9I�3����ɑݑ��6
�ID�*��(��%�%�7.�5f�6��7ӓ�0)�:Z�=��0Ӕ6�;�XX�\��0�7?�w��������)×]�ZK�>��Z�>@�#�����Wۙ=3�q�����ƚ�v���o�U��kL�'��I�.*�2Y�3��~��Q?�N�����&� =�:^�$����۟G�;7�;s�^��g�&v�<��;ڡ'�>�'X�����8��ߢ��A�#Z�Q~�Уa�rG�\��:�8R�T����N�Z�,l�����$Ħ���*� 6�&W�A~�A��	��"�*4�F_���=��:��6�<H�����Q��B�#6�<Z�
������˪ �`�Ol�1��9�G(� p���"��$Ӭ>��7�I�O�,U���K��I�:,�g�sp����	��1�4P���������ܯ!�
�(�E�fW�W���L5�Q��GԱ,�I�`�,u�B��,�,�5?�Lu�)³���,�>I�=��ƴ ۴:��87�$p�;��&ѵ��
�"'�J�\�k�%������Ҷ&�
�)�F�Fa�����
ݷ�
��
��#�"7�Z��^���
t�
������Y��R�gk�wӺ:K�9��E��9�@�S�en�Լ�0�F1�x�$��[��a�.q�H��K�+5�a�$r���'��iҿ<�dS�I��C�qF�j��b#�h��d��jT�m���-�l��r�X��g��eQ�[��2�>F���'��.��.��*�TG�Q��`��lO�5��y��Wl�[��� �n��G�8_� ��o��_)�d��n��]�1q�j��[�Yj�q�� 6�JW�l��p�q��X��sK�m��O-�>}�g��$�f9�]��S��hR�l��a(�Y��k��DP�\��H��x;�v��[+�X��U�� 6�pW�I��J�F]���B��g� k�6�� ����@��?4�t���7��"��*�,9�f�!w�C��(���A�A^�;��(��]�c�$���������V�lY�����
��H
�&S�/z�;��1��2��K�N�� �<)�5f�<��6��4�.E�t�,����S���X;�S��
����
�%�3@�>t���7��=	�SG���7��:����$��(�)1�1[�:��K��0�pE�������S�kU���)���<"�%_�T��D��S�Ts�U��P�2o�d���T����!�������&Z�����)�CH���5����l��WL�B��E��.-�7\�G��e�.B�Lq�j��V)�)��2��+�B	�L�i�/��+��+�+�M:�/��M��L�uS�@�;
�jF�5�� �3�4<�jq�n�.K�z�/��\*�e��2�B �dc�}�PF@�<�\JrA�Z�UZK�c�c`L�ZKl(�1�@@TD�-�,356i.�4�;;@H|Y�"(BYk`�X&	:	.�	3�	5
2S
Y�
G�
=(Yf&�H�P0e�I�-1
H_
1�
4�
pC�F�4@m[^�2(B[o�or~M�N?C�<�6@F\�w�d\b��$u�j"��E'Z(�-�$�6�F5�|G�>E5�I�cMh�f�95U-�I�E4I0~2�e�FH?�H��8�>�+4D`K�#�: 8P /� C� i� ]g!P�!a";x"\�"-#y?#��##G$#k$9�$M�$4%+L%3x%Z�%�&A�&_�&�='J�'K(�d(#�(!)"8)=[)!�),�)7�): *P[*4�*3�*(+(>+#g+?�+��+Dj,;�,\�,EH-L�-��-Di.��.V4/,�/G�/30G40:|00�00�001~J1:�1�23�2G�2y37~33�3%�384\I4@�4@�4Z(53�5��5nA6P�6A7>C7M�7O�7O 8Op8@�8_9:a90�9K�9M:]g:=�:;J;ce;A�;<!$<IF<y�<a
=Ol=&�=?�=D#>Mh>��>09?`j?E�?6@KH@��@ZHAN�AY�ATLB:�B8�B/CyECy�Cu9D0�D<�D+EIEQeEX�ELFL]FY�FXGS]GO�G1H73H(kHE�H(�HCIOGI9�IK�IXJBvJV�J[K/lKn�KALEML��L<M\QMZ�M?	N=IN0�N$�N$�N3OF6OF}OC�O?PPHP9�P �P\�P"QQ&tQC�Q.�Q�R5�R6�R'�R;%SDaS-�S@�S?TQUTD�TJ�TZ7U<�U6�U+V32V2fV&�V.�VC�VA3W3uW��Wo*X(�XF�Xw
Y-�Y�Y:�Y?Z;DZ1�Z/�ZF�Z))[GS[>�[2�[?
\0M\@~\s�\m3]=�]U�]C5^Hy^X�^B_g^_6�_D�_IB`H�`7�`W
aPeaj�az!b>�bV�bO2cc�cl�ckSdi�d�)eC�ee�e:_f8�f;�f'g/7g3gg-�g#�gB�g%0h=Vh)�hO�h5iRDi5�i9�i(jT0j3�j6�j.�j3k2Sk)�k]�k`llolH�lb%m=�mZ�m!nw@nu�n�.o��o�7p��p"Eq�hq)�q;r�Sr��rIssM�s7t7Ct'{t2�t"�tB�t?<u>|u*�u(�u+v1;v3mv'�vC�v]
wkwk�wg�wf_x[�x;"y'^y��y0z08z!izR�z2�z7{8I{M�{+�{)�{8&|0_|B�|�|+�|1}2Q},�}:�}&�}*~:>~Fy~E�~-&7T0���U�BK�8��Oǀ>��V��M�7N�:����ق�3	�=�I\�)��&Ѓ��H�GZ�9��s܄qP�,…0�h �+��G��<��J:�9��3��;�/�I� b�Q��Ո6�}'���LÉC�<T�W��I�23�ef�R̋g���]��H�BJ�B��7ЍJ�PS���;��.��S,�O��VЏ;'�Qc�5��3�2��R�@ۑC�z`�BےE�wd�EܓX"�n{�p�x[�Rԕ@'�Bh�L��O��DH�&��V��O�O[�+��>טD�D[�c��8�-=�Sk�E��y�W�Vכ;.�@j�i��4�*J�/u�2��k؝SD����i"�K��N؟2'�8Z���V��a�Ve�_��%�'B�-j�@��9٢M�:a�A��5ޣ=�BR�i��>��>�(Z�A��Uť6�AR�C��2ئ2�E>�W��Eܧ."�NQ�<��%ݨM�4Q�?��oƩj6�?��f��H�S٫-�1K�R}�oЬG@���J��1�B#�Ef�6��H�),�=V�T��V�[@�1��>ΰC
�DQ�d��)��1%�ZW�d��n�>��]ų #�2D�9w�5��I�41�Ef�G��:�E/�Cu�d��2�8Q�g�� �*�[>�G��"�\�\b�A��S�DU�j��b�bh�c˻X/�B��%˼c�fU�S��?�iP����>L���<�>H�P���I�U>�)��8��5��H-�2v�U��@��p@�5��?��l'�l��@�@B�l��l��j]�K��|�K�����Rg�W��5�tH�5��O��OC�U��B��6,�ic�i��>7�Pv�Q��O�yi�8��A��^�Z��CQ�>��=��c�=v�-��l��zO�G��b�Zu����w��c��c_�G��)�G5��}���U��;��M"��p�T��#Q��u�\��UU�%��:��<�FI�c��B��<7�Wt���'��:�1>�4p�;��-��P�`�t�*��9����*s�_��o��n�${�k��?�L�]b�-��D��P3�W��1���:&�?a�8����/��R�p����'-��U����"��
����P��!�@�M^�����8��C�FR�>��o��$H�	m�$w�	����G����>�IM���$��E��?�IZ�*��@��0�8A�z���������0��<�MU�I��8��&�F�1U�E��;��2	�<��O���1�,D�0q���)��Q��<0�hm���j��([�7����P��(#�$L�0q�T��0�� (�I�d�L��_��/�LM���M���� '� H�4i�\��7��3�@R���S����'�=�YU���"�7�W)�6�����!�� $�E�/R�J��-�K��5G�&}�*��'�~��cv�I�$�1�J�b���/�� ��$�6�U>�*�����+��!%�%G�m�.��#��6�8Ngc���/
&=LdK�K�KI�X�m
x%�,�/�H%W}:�3�(*+V
nT|J�@3]=���'S-{(��
��F.G,v)�� �E	8F		1�	��	ZW
S�
s9zK�AkBE��,
>0
9o
G�
j�
8\X��DBHh��
-S?|�/@%Y-��3���# �!�+9@nz.�9MRL�Q�s?\�fsw{��gy�^l���Sk�EZW�C�<uYu��EQ�O"dr%�\�QZ'�*�(�)( +R 7~ a� &!$?!Yd!P�!R"Sb"T�"F#>R#G�#,�#,$3$C$_$|$�$0�$?�$&%7%H%(_%�%7�%<�%'&%6&\&x&�&�&�&-�&#�&'7'4R'�'�'�'�'B�'-(L(k(�(�(�(�(J�(,)0)C)I)"Q)t)�)�)�)
�)9�)��)��*J,+Hw+@�+F,H,
b,2m,:�,#�,�,+-^--
�-A�-@�-@.�^.0�.C/=V/2�/2�/J�/OE0M�0$�0�1��12a2_�2;�2H03Oy3�3�3�3�3�34(14.Z4A�4D�4P5Pa5�50�5D�5@6Z6's6V�6P�6C7oR7/�7'�7N8!i85�8c�8�%9P�9c�9l_:��:Rp;@�;A<@F<A�<�<D�<E*=2p=I�=:�=9(>.b>B�>�>	�>4�>*?;F?�?+�?s�?A@BZ@�@�@�@^�@8AJTAf�AjBFqBS�BNCY[CK�C+D0-D+^D.�D[�D#E"9Eh\El�E-2F`F'sF�F&�F�F:�F+#GOGBfGB�Gq�GD^H%�H�H�HQ�H*IItI#�I�I,�In�IpbJe�Jr9K�K�K�K�KeL)vL�L6�L4�L M4M!QMsM5yM�M*�M$�MDNHYN6�N2�NGO9TO'�O;�O�O�O+PGPdPK�PI�PQC(QlQ=�Q�Q*�Q=RTBRS�R(�RS,S
>SaLSa�S\T\mT]�T\(U\�U[�UW>VH�VL�VA,WHnWb�WX4X!IX!kX �X@�X[�XWKY
�Y�Y@�Y!ZJ%Z8pZ7�Z6�Z<[1U[8�[<�[;�[<9\5v\V�\��F9���$�NC�q�d�T�D�KZ7��:�av��:���Y��,O�����z�Tg�G�l��G�i�_�������sV����E�$N
H���h`�N�����:�r�W^��hl��B���m���#,���KB��f�G������z����0�]!�3U4�>��c��-������5o��w�~R�M~��j���`�L}p��#�*Tf����(��'M�`g��2�#W��#1��[=kU?���aw�m��a�P�%�"G3!����/VnS����]h��_ZD��qk;)ZO~x�)T��o!���������5�lD���P++�X��O��h1FH5���A�jC���n�w��&�����6\��&����jYA��%D��{���m�����\SK�c��
�{�YfC��M�<��^m'b���4��2��r�&�g&�<�Q��q������<������A���	�G�����<S��q?�X���%/C�LJ�sT �	�S�L�g��6@��r�	]��([3x�C
����]`���<�
5N@.i�;�ii�B�H_�0.��s�R>e\�d����o��*�"�3���)R�Zm��m�iQ��^j�����@�p��}��EY����"�������,R���7V
��<Q��:��xZ����!5'�W"�z�s��ILjvv���	��/�(QL=���'&��I�9H|6����)�>Dk7�����f�d�K��W�U�xnQ�Ju[���J�x�W|�{tlUb��^����K
w;�����'$�%��7PBW���O�N��a���6�D������$Ksb���R���I��%]�-����R��0:[(����>��!7�0��L����-����&?SGF�������P�*�}����V
�M���^�T�3�`|
k��Z�$�O�������.�%����e=����Ey�Y���*�6��m�`���n���b��������u�Q��g)�KU\r���-����F~�8 d��B������/�
��s�!T-X�8�9�����_}�"(�AyS�[@z�P�����4��w��1�|J�,�9e#��C�(.�L ��;�'1Q��)�
I�8�J���\�������;]i�e�	3�?�a�"�e��y*���+�W;��k?-��*�Q	>c�o�[P�����uy���X�'���r��f!V���n�����i�Ts?�R��v�x��@@�*�1��@���$���
p��V����=^��E�y�b��9j�����4��O��N�����CM 8�������203H,�e$P~�V�ft�9�MJ��Xz�-�J�|4����/�F�D5h��vc<}l\G&�
c�a�X���qr��2�*��x��eF�8���V{#5F�>�{�����Oz�����F��u��=��u�M�jl\����:41+v&.��~�� d)0{��u1����Z���I]C�
U�����%E�������O{_����+��t'�YW4>���f6���a�Eop2N��|�SXH>�;}�K��#=����6���Rw��+v"���-�4�E��p��	���@�_2��)n�7h����(��H�
5`��.�0�}�� [�J�G���(A�,���qY��$�+�H�����1/!t�cg<;���btB~r#	�h��8��.2�2I n,���
��A�o7���_���U7����t",�k�l�NPBg�8�So����U�6�Mz�����3��:�|
��%q���p0B/I�ZX9/ ��:u���?Y+��k�8DywLp���A���cdd�^�b�����9=E�?y[�tA�=����.�I�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.
(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Quit, or continue with caution.
  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " for  has been damaged (page size is smaller than minimum value).
 in Win32s mode in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless). Removing it!
/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context Cscope tag: %sCurrent %slanguage: "%s"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]add() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlererror list %d of %d; %d errorsexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sfreeing %ld linesfunction %s does not existfunction constructor does not accept keyword argumentsgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsread from Netbeans socketreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim_ru
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2014-10-10 11:52+0400
PO-Revision-Date: 2014-10-10 12:00+0400
Last-Translator: Sergey Alyoshin <alyoshin.s@gmail.com>
Language-Team: 
Language: Russian
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

	В последний раз опция изменена в 

Параметры:


Использование:
           изменён: 
         [не пригоден для использования на этом компьютере]
         [не пригоден для использования с данной версией Vim]
         компьютер: 
      пользователь: 
           процесс: 
       c: Найти функции вызывающие эту функцию
       d: Найти функции вызываемые этой функцией
       e: Найти этот шаблон egrep
       f: Найти этот файл
       g: Найти это определение
       i: Найти файлы включающие (#include) этот файл
       s: Найти этот C-символ
       t: Найти эту текстовую строку

    Имя      Парам. Диап. Дополн.    Определение
   #   строка
   или:
  # К  метке       ОТ   стр.  в файле/тексте
прыжок стр  кол файл/текст
# %s, история (начиная от свежего к старому):

# Список буферов:

# Глобальные отметки:

# История местных отметок (от более свежих к старым):

# Список прыжков (сначала более свежие):

# Последний %sШаблон поиска:
~
# Последняя строка для замены:
$
# Регистры:

# глобальные переменные:

(1) Возможно, редактирование этого же файла выполняется в другой программе.
    Если это так, то будьте внимательны при внесении изменений, чтобы
    у вас не появилось два разных варианта одного и того же файла.
(Можете записать файл под другим именем и сравнить его с исходным

--- Автокоманды ---
--- Глобальные значения опций ---
--- Местные значения опций ---
--- Меню ---
--- Опции ---
--- Регистры ---
--- Значки ---
--- Синтаксические элементы ---
--- Элементы синхронизации синтаксиса ---
--- Терминальные коды ---
--- Кнопки терминала ---
Версия для MS-DOS 16 бит
Версия для MS-DOS 32 бит
Параметры для gvim (версия Athena):

Параметры для gvim (версия GTK+):

Параметры для gvim (версия Motif):

Параметры для gvim (версия neXtaw):

Большая версия 
Невозможно создать трубы

Невозможно запустить оболочку 
Невозможно запустить оболочку sh

Невозможно выполнить fork()

Выполнение команды прервано

Скомпилирован 
Невозможно получить контекст безопасности для 
Невозможно установить контекст безопасности для 
Дополнительные заплатки: 
Обнаружен своп-файл с именем "
Огромная версия 
Если вы ввели новый пароль для шифрования, но не записали текстовый файл,
Если вы записали текстовый файл после изменения пароля шифрования, то нажмите
Заплатки: 
Версия для MS-Windows 16 бит
Версия с графическим интерфейсом для MS-Windows 16/32 бит
Версия с графическим интерфейсом для MS-Windows 32 бит
Консольная версия для MS-Windows 32 бит
Версия с графическим интерфейсом для MS-Windows 64 бит
Консольная версия для MS-Windows 64 бит
Версия для MacOS X (unix)
Версия для MacOS X
Версия для MacOS
Нет изменений, или Vim не смог обновить своп-файл
Дополнительная информация: "vim -h"

Обычная версия 
Версия для OpenVMS
Малая версия 
Версия "Кроха" 
Vim: Ошибка X

ПРЕДУПРЕЖДЕНИЕ: Исходный файл может быть утрачен или повреждён

Если регистр игнорируется, добавьте перед флагом / для верхнего регистра
Вероятно, сейчас вы захотите удалить файл .swp.


[байт] всего выдел.-освоб. %lu-%lu, использ. %lu, макс. использ. %lu

измен.  стр  кол текст
то введите новый пароль для шифрования.
отмет стр  кол файл/текст
Оболочка завершила работу 
синхронизация по элементам
Enter для использования одного ключа для текстового файла и своп-файла                                 для перехода в режим Vim                                        для двух режимов                             дата:           владелец:          [не открывается]         [не читается]         [не является своп-файлом Vim]         [от Vim версии 3.0]         имя файла:       -- нет --
                    Более СВЕЖИЙ, чем своп-файл!
          пользовательский файл exrc: "         пользовательский файл vimrc: "    В этом случае, используйте команду ":recover" или "vim -r     Если вы уже выполняли эту операцию, удалите своп-файл "    строка=%ld  id=%d  имя=%s             общесистемный файл меню: "        пользовательский файл gvimrc: "   В текущем каталоге:
   В каталоге      С указанным именем:
    дата:   компьютер:             общесистемный файл vimrc: "  # при тип  метка (Уже показано)   второй пользовательский файл exrc: "  ОТЛАДОЧНАЯ СБОРКА  Включённые (+) и отключённые (-) особенности:
 НЕ НАЙДЕНО    Завершите работу или продолжайте с осторожностью.
  ВСЕГО       КОЛ.  СООТВ. ОТСТАЮЩИЙ    СРЕДНИЙ    ИМЯ                ШАБЛОН Используется метка с символами в другом регистре!          значение $VIM по умолчанию: "           общесистемный файл gvimrc: " # pid    база данных                         начальный путь
 (Прервано) (НЕ НАЙДЕНО) (включает раннее показанные соответствия) (вставка) (вставка) Прокрутка (^E/^Y) (язык) (строка удалена) (не поддерживается) (вклейка) (замена) (замена) Прокрутка (^E/^Y) (ещё выполняется) (виртуальная замена)  второй пользовательский файл vimrc: "  третий пользовательский файл vimrc: " < "%.*s" Добавление Арабский ОШИБКА ПРЕОБРАЗОВАНИЯ Автодополнение командной строки (^V^N^P) Копия %d из %d Автодополнение определения (^D^N^P) Автодополнение по словарю (^K^N^P) НЕУДАЧНО Автодополнение имени файла (^F^N^P) Иврит ВСТАВКА Местное автодополнение ключевого слова (^N^P) Автодополнение ключевого слова (^N^P) Omni-дополнение (^O^N^P) Автодополнение шаблона пути (^N^P) ЗАМЕНА ОБРАТНАЯ ВЫДЕЛЕНИЕ ВЫДЕЛЕНИЕ БЛОКА ВЫДЕЛЕНИЕ СТРОКИ SPACE/d/j: экран/страница/строка вниз, b/u/k: вверх, q: выход  Предложение исправления правописания (s^N^P) Автодополнение метки (^]^N^P) Автодополнение синонимов (^T^N^P) Пользовательское автодополнение (^U^N^P) ВИЗУАЛЬНЫЙ РЕЖИМ ВИЗУАЛЬНЫЙ БЛОК ВИЗУАЛЬНАЯ СТРОКА ВИРТУАЛЬНАЯ ЗАМЕНА Автодополнение целой строки (^L^N^P) [Изменён] [д] [з] Режим ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) добавлено нельзя использовать на этом компьютере.
 нельзя использовать в данной версии Vim.
   значение $VIMRUNTIME по умолчанию: " для  был повреждён (размер страницы меньше минимального значения).
 в режиме Win32 на строке %ld; инфо тип файла
 переносов строк строк перед верхней строкой отметок старых файлов в %ld стр. в одной строке и более завершила работу
 vim [параметры]  с поддержкой OLE записано"
    чтобы избежать появления этого сообщения в будущем.
"
    для восстановления изменений (см. ":help recovery").
" уже существует!# Этот файл viminfo автоматически создан Vim %s.
# Значение опции 'encoding' в момент записи файла
# Его можно (осторожно!) редактировать.

%-5s: %s%*s (использование: %s)%3d  %s %s стр. %ld%<%f%h%m%=Стр. %NВсего удалено буферов: %dВсего выгружено буферов из памяти: %dВсего очищено буферов: %d%d повторяющихся слов в %sФайлов для редактирования: %d
Есть неотредактированные файлы (%d). Выйти?отредактировано %d из %d%ld %s; %s #%ld  %sКолонок: %ld; символов: %ldУбрано строк: %ldИзменены отступы, %ld строк (%s %d раз)Изменены отступы, %ld строк (%s 1 раз)%ld стр. --%d%%--изменено строк: %ldПропущено через фильтр строк: %ldИзменены отступы в строках (%ld) Перемещено строк: %ldИзменяются отступы строках (%ld)...скопировано строк: %ldстрок: %ld, %ld соответствийДобавлено строк: %ld%ld с назад%ld заменсимволов: %lld%s Автокоманды для "%s"%s прервана%s пропущено%s строка %ld%s выполняет ожидание%s возобновлено%s возвращает #%ld%s возвращает %s%s имеет другое значение, чем в файле .aff%s, строка %ld%sviminfo: %s в строке: О&тменаО&тклонить&Фильтр&Справка&Да&OK
&C Отмена&OK
&L Загрузить файл&Ok&O Открыть для чтения
&E Редактировать
&R Восстановить
&D Удалить
&Q Выход
&A Прервать&O Открыть для чтения
&E Редактировать
&R Восстановить
&Q Выход
&A ПрерватьЗа&менаО&тмена&Y Да
&N Нет&Да
&Нет
О&тмена&Y Да
&N Нет
&A Сохранить все
&D Потерять все
&C Отмена' не известен. Доступны встроенные терминалы:Невозможно использовать '-nb': не включено при компиляции
Значение опции 'columns' не равно 80, внешние программы не выполняютсяНе задано значение опции 'dictionary'значение опции 'history' равно нулюДля "%s" включена опция 'readonly'.
Записать?Не задано значение опции 'thesaurus'(%d из %d)%s%s: (+%ld с учётом BOM)(2) Сеанс редактирования этого файла завершён аварийно.
(Прервано)(Неправильно)(НКА) невозможно открыть %s!+			Начать редактирование в конце файла+-%s%3ld строк: +--%3ld строк в складке+<lnum>		Начать редактирование в строке с номером <lnum>+reverse		Не использовать инверсный видеорежим (также: +rv),
либо файл был повреждён.-           чтение текста из потока ввода stdin--			Далее указываются только имена файлов-- Продолжение следует ---- Поиск...--- Включённые файлы --Удалено---- Нет строк в буфере ----cmd <команда>	Выполнить <команду> перед загрузкой файла vimrc--cmd параметр--echo-wid		Вывести Window ID для gvim на стандартный поток вывода--literal		Не выполнять подстановку по маске--noplugin		Не загружать сценарии модулей--remote <файлы>	По возможности редактировать <файлы> на сервере Vim--remote-expr <выраж>	Вычислить <выраж> на сервере Vim и напечатать--remote-send <кнопки>	Отправить <кнопки> на сервер Vim и выйти--remote-silent <файлы>  То же, но без жалоб на отсутствие сервера--remote-tab[-wait][-silent] <файлы>  То же, что и --remote, но с вкладками--remote-wait <файлы>  То же, что и --remote, но с ожиданием завершения--remote-wait-silent <файлы>  То же, но без жалоб на отсутствие сервера--role <роль>	Установить уникальную <роль> для идентификации главного окна--serverlist		Показать список имён серверов Vim и завершить работу--servername <имя>	Отправить на/стать сервером Vim с указанным <именем>--socketid <xid>	Открыть Vim внутри другого компонента GTK--startuptime <файл>	Записать временную метку о запуске в <файл>--version		Вывести информацию о версии Vim и завершить работу--windowid <HWND>	Открыть Vim внутри другого компонента win32-A			Запуск в Арабском режиме-C			Режим совместимости с Vi: 'compatible'-D			Режим отладки-E			Улучшенный режим Ex-F			Запуск в режиме "Фарси"-H			Запуск в режиме "Иврит"-L			То же, что и -r-M			Без возможности внесения изменений в текст-N			Режим неполной совместимости с Vi: 'nocompatible'-O[N]		То же, что и -o, но с вертикальным разделением окон-P <заголовок родителя>	Открыть Vim в родительском приложении-R			Только для чтения (как "view")-S <сеанс>		Прочитать сценарий <сеанса> после загрузки первого файла-T <терминал>	Назначить указанный тип <терминала>-U <gvimrc>		Использовать <gvimrc> вместо любых файлов .gvimrc-V[N][файл]		Выводить дополнительные сообщения [уровень N] [записывать в файл]-W <сценарий>	Записать все введённые команды в файл <сценария>-X			Не выполнять соединение с сервером X-Z			Ограниченный режим (как "rvim")-b			Двоичный режим-background <цвет>	Использовать указанный <цвет> для фона (также: -bg)-boldfont <шрифт>	Использовать <шрифт> для жирного текста-borderwidth <ширина>	Использовать <ширину> бордюра (также: -bw)-c <команда>		Выполнить <команду> после загрузки первого файла-c параметр-d			Режим отличий (как "vimdiff")-dev <устройство>		Использовать для I/O указанное <устройство>-display <экран>	Подсоединить VIM к указанному X-серверу-display <дисплей>	Запустить VIM на указанном <дисплее>-display <дисплей>	Запустить VIM на указанном <дисплее> (также: --display)-e			Режим Ex (как "ex")-f			Не использовать newcli для открытия окна-f  или --nofork	В активной задаче: Не выполнять fork при запуске GUI-font <шрифт>		Использовать <шрифт> для обычного текста (также: -fn)-foreground <цвет>	Использовать <цвет> для обычного текста (также: -fg)-g			Запустить с графическим интерфейсом (как "gvim")-geometry <геометрия>	Использовать начальную <геометрию> (также: -geom)-h или --help	Вывести справку (это сообщение) и завершить работу-i <viminfo>		Использовать вместо .viminfo файл <viminfo>-iconic		Запустить VIM в свёрнутом виде-italicfont <шрифт>	Использовать <шрифт> для наклонного текста-l			Режим Lisp-m			Без возможности сохранения изменений (записи файлов)-menuheight <высота>	Использовать <высоту> меню (также: -mh)-n			Без своп-файла, используется только память-o[N]		Открыть N окон (по умолчанию: по одному на каждый файл)-p[N]		Открыть N вкладок (по умолчанию: по одной на каждый файл)-q [файл-ошибок] редактирование файла с первой ошибкой-r			Вывести список своп-файлов и завершить работу-r (с именем файла)	Восстановить аварийно завершённый сеанс-register		Зарегистрировать этот gvim для OLE-reverse		Использовать инверсный видеорежим (также: -rv)-s			Тихий (пакетный) режим (только для "ex")-s <сценарий>	Прочитать команды Обычного режима из файла <сценария>-scrollbarwidth <ширина> Использовать ширину полосы прокрутки (также: -sw)-t метка    редактирование файла с указанной меткой-u <vimrc>		Использовать <vimrc> вместо любых файлов .vimrc-unregister		Отключить регистрацию данного gvim для OLE-v			Режим Vi (как "vi")-w <сценарий>	Добавлять все введённые команды в файл <сценария>-x			Редактирование зашифрованных файлов-xrm <ресурс>	Установить указанный <ресурс>-y			Простой режим (как "evim", безрежимный). Будет удалён!
/ строка пропускается в %s, строка %d: %sПроигнорирована строка /encoding= после слова в %s, строка %d: %sОдин буфер удалёнОдин буфер выгружен из памятиОдин буфер очищен1 символИзменены отступы в 1 строке (%s %d раз)Изменены отступы в 1 строке (%s 1 раз)Одна строка --%d%%--изменена 1 строкаИзменён отступ в одной строке Убрана одна строкаПеремещена одна строкаскопирована одна строка1 строка, Одно соответствие1 файл ожидает редактирования. Выйти?Добавлена одна строкаОдна замена второй пользовательский файл gvimrc: " третий пользовательский файл gvimrc: ": Отправка выражения не удалась.
: Отправка не удалась.
: Отправка не удалась. Попытка местного выполнения
; соответствие <%s>%s%s  %d,  Hex %02x,  Octal %03o<нельзя открыть> <пусто>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o???строки могут быть испорчены отсюда до ???КОНЦА???строки могли быть вставлены или удалены отсюда до ???КОНЦА???ПРОПУЩЕН БЛОК???ПУСТОЙ БЛОК???КОНЕЦ???НЕПРАВИЛЬНОЕ ЗНАЧЕНИЕ СЧЁТЧИКА СТРОК???ОТСУТСТВУЮТ СТРОКИ???ОТСУТСТВУЕТ МНОГО СТРОКслишком малая величина ANCHOR_BUF_SIZE.Добавить новую базу данныхДобавлена база данных cscope %sАффикс также используется для BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST в %s, строка %d: %sИмя аффикса слишком длинное в %s, строка %d: %sВесьПерезагрузка всех баз данных cscopeНайдены все включённые файлыУже на самом последнем измененииУже на самом первом измененииНа экране всего одна вкладкаНа экране всего одно окноДобавить файлПропущен параметр послеВ строкеПопытка повторного открытия файла сценария: "Исходное словоЗадан обратный диапазон, меняем границы местамиСтаньте зарегистрированным пользователем Vim!Би-би!Перед байтом %ldВнизуОбе строки SAL и SOFO в %sТочка остановки в "%s%s" стр. %ldНарушенное условие в %s, строка %d: %sПросмотр классаCOMPOUNDSYLMAX используется без SYLLABLEВызов оболочки для исполнения: "%s"Временный файл для перекодирования не найденОтменаНевозможно соединиться с NetBeansНевозможно соединиться с NetBeans #2Невозможно подсоединиться к SNiFF+. Проверьте настройки окружения.(sniffemacs должны быть указаны в переменной $PATH).
Невозможно создать Невозможно выполнить Невозможно открыть NIL:
Невозможно открыть файл "%s"Невозможно открыть для чтения: "Невозможно открыть для вывода сценария: "Нельзя считать каталог: "%s"Невозможно записать файл отмен в каком-либо каталоге из 'undodir'Заменить "%.*s" на:ЗакрытьЗакрыть вкладкуКол. %s из %s; стр. %ld из %ld; сл. %ld из %ld; байт %ld из %ldКол. %s из %s; стр. %ld из %ld; сл. %ld из %ld; симв. %ld из %ld; байт %ld из %ldКомандная строкаПараметры компиляции: Компилятор: Сжато %d из %d узлов; осталось %d (%d%%)Сжатие дерева слов...Не удалось преобразовать слово в %s, строка %d: %sПреобразование в %s не поддерживаетсяПреобразование в %s не поддерживается: из %s в %sПреобразование с помощью 'charconvert' не выполненоНевозможно исправить указатели функций для DLL!Невозможно получить контекст безопасности Невозможно загрузить vim32.dll!Невозможно открыть файл временного журнала для записиНевозможно открыть файл временного журнала для записи, вывод на stderr...Невозможно установить контекст безопасности Метка cscope: %sАктивный %sязык: "%s"Определение COMPOUNDFORBIDFLAG после элемента PFX может дать неправильные результаты в %s, строка %dОпределение COMPOUNDPERMITFLAG после элемента PFX может дать неправильные результаты в %s, строка %dСравнить с помощью VimДругой объединяющий флаг в продолжающем блоке аффикса в %s, строка %d: %sНаправлениеКаталогиКаталог	*.ничего
Серьёзно хотите записать в этот файлЗавершено!Двойная ; в списке переменныхВнизПроигнорирована повторяющаяся строка /encoding= в %s, строка %d: %sПропускается повтор строки /regions= в %s, строка %d: %sПовторяющийся аффикс в %s, строка %d: %sПовторяющийся символ в MAP в %s, строка %dПовторяющееся имя поля: %sПовтор слова в %s на строке %d: %s E100: Больше нет буферов в режиме отличийE101: В режиме отличий более двух буферов, не могу выбратьE102: Не могу найти буфер "%s"E103: Буфер "%s" не находится в режиме отличийE104: Экранирующий символ Escape нельзя использовать в диграфеE105: Команда :loadkeymap применена вне файла сценарияE107: Пропущены скобки: %sE108: Нет такой переменной: "%s"E109: Пропущено ':' после '?'E10: После \ должен идти символ /, ? или &E110: Пропущена ')'E111: Пропущена ']'E112: Не указано имя опции: %sE113: Неизвестная опция: %sE114: Пропущена кавычка: %sE115: Пропущена кавычка: %sE116: Параметры для функции %s заданы неверноE117: Неизвестная функция: %sE118: Слишком много параметров для функции %sE119: Недостаточно параметров для функции %sE11: Недопустимо в окне командной строки; <CR> выполнение, CTRL-C выходE120: <SID> используется вне сценария: %sE121: Неопределённая переменная: %sE122: Функция %s уже существует. Добавьте !, чтобы заменить её.E123: Неопределённая функция: %sE124: Пропущена '(': %sE125: Недопустимый параметр: %sE126: Пропущена команда :endfunctionE127: Невозможно переопределить функцию %s, она используетсяE128: Имя функции должно начинаться с заглавной буквы или "s:": %sE129: Требуется имя функцииE12: Команда не допускается в exrc/vimrc в текущем каталоге или поиске метокE130: Неизвестная функция: %sE131: Невозможно удалить функцию %s, она используетсяE132: Глубина вызова функции больше, чем значение 'maxfuncdepth'E133: команда :return вне функцииE134: Строки перемещаются сами на себяE135: Автокоманды *Filter* не должны изменять активный буферE136: viminfo: Слишком много ошибок, остальная часть файла будет пропущенаE137: Права на запись файла viminfo отсутствуют: %sE138: Невозможно записать файл viminfo %s!E139: Файл загружен в другом буфереE13: Файл существует (добавьте !, чтобы перезаписать)E140: Для записи части буфера используйте !E141: Буфер %ld не связан с именем файлаE142: Файл не сохранён: запись отключена опцией 'write'E143: Автокоманды неожиданно убили новый буфер %sE144: Параметр команды :z должен быть числомE145: Использование команд оболочки не допускается в rvim.E146: Регулярные выражения не могут разделяться буквамиE147: Команда :global не может быть рекурсивнойE148: В команде :global пропущено регулярное выражениеE149: К сожалению справка для %s отсутствуетE14: Недопустимый адресE150: %s не является каталогомE152: Невозможно открыть %s для записиE153: Невозможно открыть %s для чтенияE154: Повторяющаяся метка "%s" в файле %s/%sE155: Неизвестный значок: %sE156: Пропущено имя значкаE157: Неправильный ID значка: %ldE158: Неправильное имя буфера: %sE159: Пропущен номер значкаE15: Недопустимое выражение: %sE160: Неизвестная команда значка %sE161: Точка остановки не найдена: %sE162: Несохранённые изменения в буфере "%s"E163: Для редактирования доступен только один файлE164: Это первый файлE165: Это последний файлE166: Невозможно открыть связанный файл для записиE167: Команда :scriptencoding используется вне файла сценарияE168: Команда :finish используется вне файла сценарияE169: Слишком рекурсивная командаE16: Недопустимый диапазонE170: Отсутствует команда :endforE170: Отсутствует команда :endwhileE171: Отсутствует команда :endifE172: Разрешено использовать только одно имя файлаE173: Есть неотредактированные файлы (%ld).E173: 1 файл ожидает редактирования.E174: Команда уже существует. Добавьте ! для замены.E175: Параметр не заданE176: Неправильное количество параметровE177: Число-приставку нельзя указывать дваждыE178: Неправильное значение числа-приставки по умолчаниюE179: Для -complete требуется указать параметрE17: "%s" является каталогомE180: Неправильное значение дополнения: %sE181: Неправильный атрибут: %sE182: Неправильное имя командыE183: Команда пользователя должна начинаться с заглавной буквыE184: Нет такой команды пользователя: %sE185: Невозможно найти цветовую схему '%s'E186: Нет предыдущего каталогаE187: НеизвестноE188: В данной системе определение положения окна не работаетE189: "%s" существует (добавьте !, чтобы обойти проверку)E18: Неожиданные символы в :letE190: Невозможно открыть для записи "%s"E191: Параметр должен быть прямой/обратной кавычкой или буквойE192: Слишком глубокая рекурсия при использовании команды :normalE193: Команда :endfunction может использоваться только внутри функцииE194: Нет соседнего имени файла для замены '#'E195: Невозможно открыть файл viminfo для чтенияE196: В этой версии диграфы не работаютE197: Невозможно сменить язык на "%s"E198: cmd_pchar больше длины командыE199: Удалено активное окно или буферE19: Отметка указывает на неправильный номер строкиE200: В результате выполнения автокоманд *ReadPre файл стал нечитаемымE201: Автокоманды *ReadPre не должны изменять активный буферE202: В результате преобразования файл стал нечитаемым!E203: Буфер, который требовалось записать, удалён или выгружен автокомандойE204: Количество строк изменено автокомандой неожиданным образомE205: Режим заплатки: невозможно сохранение исходного файлаE206: Режим заплатки: невозможно сменить параметры пустого исходного файлаE207: Невозможно удалить резервный файлE208: Ошибка записи в "%s"E209: Ошибка закрытия "%s"E20: Отметка не определенаE210: Ошибка чтения "%s"E211: Файл "%s" больше не доступенE212: Невозможно открыть файл для записиE213: Перекодировка невозможна (добавьте ! для записи без перекодировки)E214: Временный файл для записи не найденE215: Недопустимые символы после *: %sE216: Несуществующее событие: %sE216: Несуществующая группа или событие: %sE217: Невозможно выполнить автокоманды для ВСЕХ событийE218: слишком глубоко вложенные автокомандыE219: Пропущена {.E21: Изменения невозможны, так как отключена опция 'modifiable'E220: Пропущена }.E222: Добавление в буфер чтенияE223: Рекурсивная привязкаE224: Уже есть глобальное сокращение для %sE225: Уже есть глобальная привязка для %sE226: Уже есть сокращение для %sE227: Уже есть привязка для %sE228: makemap: недопустимый режимE229: Невозможно перейти в режим графического интерфейсаE22: Слишком глубоко вложенные сценарииE230: Невозможно выполнить чтение "%s"E231: Неправильное значение опции 'guifontwide'E232: "Пузырь" для вычислений, включающий и сообщение, и обратный вызов, не может быть созданE233: Невозможно открыть дисплейE234: Неизвестный шрифтовой набор: %sE235: Неизвестный шрифт: %sE236: Шрифт "%s" не является моношириннымE237: Неудачное завершение выбора принтераE238: Ошибка печати: %sE239: Неправильный текст значка: %sE23: Соседний файл не существуетE240: Нет связи с сервером VimE241: Не могу отправить сообщение для %sE243: Параметр не поддерживается: "-%s"; используйте версию OLE.E244: Недопустимое имя кодировки "%s" в имени шрифта "%s"E245: Недопустимый символ '%c' в имени шрифта "%s"E246: Буфер удалён при выполнении автокоманды FileChangedShellE247: Сервер "%s" не зарегистрированE248: Не удалась отправка команды в другую программуE24: Нет такого сокращенияE250: В наборе шрифтов %s отсутствуют шрифты для следующих кодировок:E251: Неправильно сформировано значение данного процесса VIM в реестре. Удалено!E252: Набор шрифтов: %sE253: Набор шрифтов: %sE254: Невозможно назначить цвет %sE255: Невозможно прочитать данные о значках!E256: ОШИБКА автоматики ХангылE257: cstag: метка не найденаE258: Не могу ответить клиентуE259: Не найдено соответствий по запросу cscope %s для %sE25: Возможность использования графического интерфейса выключена при компиляцииE261: Соединение с cscope %s не обнаруженоE262: Ошибка получения информации от соединения cscope %ldE263: К сожалению эта команда не работает, поскольку не загружена библиотека PythonE264: Python: Ошибка инициализации объектов I/OE265: $_ должен быть экземпляром или строкойE266: К сожалению эта команда не работает, поскольку не загружена библиотека RubyE267: Неожиданный returnE268: Неожиданный nextE269: Неожиданный breakE26: Иврит выключен при компиляции
E270: Неожиданный redoE271: retry вне оператора rescueE272: Необработанное исключениеE273: Неизвестное состояние longjmp %dE274: Sniff: Ошибка во время чтения. ОтсоединениеE275: Неизвестный запрос SNiFF+: %sE276: Ошибка соединения со SNiFF+E277: Сервер не отвечаетE278: SNiFF+ не подсоединёнE279: Это не буфер SNiFF+E27: Фарси выключено при компиляции
E280: КРИТИЧЕСКАЯ ОШИБКА TCL: повреждён список ссылок?! Сообщите об этом по адресу vim-dev@vim.orgE282: Невозможно выполнить чтение из "%s"E283: Нет отметок, совпадающих с "%s"E284: Невозможно назначить значения контекста вводаE285: Невозможно создать контекст вводаE286: Неудачная попытка открыть метод вводаE287: Предупреждение: невозможно назначить обр. вызов уничтожения метода вводаE288: Метод ввода не поддерживает стилиE289: Метод ввода не поддерживает мой тип предварительного редактированияE28: Группа подсветки синтаксиса %s не существуетE293: Блок не заблокированE294: Ошибка поиска при чтении своп-файлаE295: Ошибка чтения своп-файлаE296: Ошибка поиска при записи своп-файлаE297: Ошибка при записи своп-файлаE298: Не получен блок номер 0?E298: Не получен блок номер 1?E298: Не получен блок номер 2?E299: Не допускается вычисление Perl в песочнице без модуля безопасностиE29: Пока нет вставленного текстаE300: Своп-файл уже существует (атака с использованием символьной ссылки?)E301: Ой, потерялся своп-файл!!!E302: Невозможно переименовать своп-файлE303: Не удалось открыть своп-файл для "%s", восстановление невозможноE304: ml_upd_block0(): Не получен блок 0??E305: Своп-файл для %s не найденE306: Не могу открыть %sE307: %s не является своп-файлом VimE308: Предупреждение: исходный файл мог быть изменёнE309: Невозможно прочитать блок 1 из %sE30: Предыдущей командной строки нетE310: Неправильный блок 1 ID (%s не является файлом .swp?)E311: Восстановление прерваноE312: Во время восстановления обнаружены ошибки; см. строки, начинающиеся с ???E313: Невозможно обновить своп-файл, поскольку он не обнаруженE314: Неудачная попытка обновления своп-файлаE315: ml_get: неправильное значение lnum: %ldE316: ml_get: невозможно найти строку %ldE317: Неправильное значение указателя блокаE317: Неправильное значение указателя блока 2E317: Неправильное значение указателя блока 3E317: Неправильное значение указателя блока 4E318: Обновлено слишком много блоков?E319: Извините, эта команда недоступна в данной версииE31: Такой привязки не существуетE320: Строка %ld не обнаруженаE321: Невозможно выполнить перезагрузку "%s"E322: Номер строки за пределами диапазона: %ldE323: Неправильное значение счётчика строк в блоке %ldE324: Невозможно открыть файл PostScriptE325: ВНИМАНИЕE326: Обнаружено слишком много своп-файловE327: Компонент пути к элементу меню не является подменюE328: Меню в этом режиме не существуетE329: Нет меню %sE32: Нет имени файлаE330: Путь к меню не должен вести к подменюE331: Элементы меню нельзя добавлять непосредственно в полоску менюE332: Разделители не могут быть компонентом пути к менюE333: Путь к меню должен вести к элементу менюE334: Меню не найдено: %sE335: Меню не определено для режима %sE336: Путь к меню должен вести к подменюE337: Меню не найдено — проверьте имена менюE338: Извините, но в консольном режиме нет проводника по файловой системеE339: Слишком длинный шаблонE33: Нет предыдущего регулярного выражения для заменыE340: Строка становится слишком длиннойE341: Внутренняя ошибка: lalloc(%ld, )E342: Не хватает памяти! (выделяется %lu байт)E343: Неправильно задан путь: '**[число]' должно быть либо в конце пути, либо за ним должно следовать '%s'E344: Каталог "%s" не найден в пути для смены каталогаE345: Файл "%s" в известных каталогах не найденE346: В пути смены каталога больше нет каталогов "%s"E347: В известных каталогах больше нет файлов "%s"E348: Нет строки в позиции курсораE349: Нет имени в позиции курсораE34: Нет предыдущей командыE350: Складка не может быть создана с текущим значением опции 'foldmethod'E351: Складка не может быть удалена с текущим значением опции 'foldmethod'E352: Невозможно стереть складки с текущим значением опции 'foldmethod'E353: В регистре %s ничего нетE354: Недопустимое имя регистра: '%s'E355: Неизвестная опция: %sE356: ОШИБКА get_varpE357: 'langmap': Нет соответствующего символа для %sE358: 'langmap': Лишние символы после точки с запятой: %sE359: Данный режим экрана не поддерживаетсяE35: Нет предыдущего регулярного выраженияE360: Невозможно выполнить оболочку с параметром -fE363: Шаблон использует больше памяти чем 'maxmempattern'E364: Неудачный вызов функции "%s()" из библиотекиE365: Не удалось выполнить печать файла PostScriptE367: Группа "%s" не существуетE369: Недопустимый элемент в %s%%[]E36: Недостаточно местаE370: Невозможно загрузить библиотеку %sE371: Команда не найденаE372: В строке формата слишком много %%%cE373: Неожиданный элемент %%%c в строке форматаE374: В строке формата пропущена ]E375: %%%c не поддерживается в строке форматаE376: Недопустимый %%%c в приставке в строке форматаE377: Недопустимый %%%c в строке форматаE378: В значении опции 'errorformat' отсутствует шаблонE379: Имя каталога не задано или равно пустой строкеE37: Изменения не сохраненыE37: Изменения не сохранены (добавьте !, чтобы обойти проверку)E380: Внизу стека быстрых исправленийE381: Наверху стека быстрых исправленийE382: Запись невозможна, значение опции 'buftype' не является пустой строкойE383: Неправильная строка поиска: %sE384: Поиск закончен в НАЧАЛЕ документа; %s не найденоE385: Поиск закончен в КОНЦЕ документа; %s не найденоE386: После ';' ожидается ввод '?' или '/'E387: Соответствие в текущей строкеE388: Определение не найденоE389: Шаблон не найденE38: Нулевой параметрE390: Недопустимый параметр: %sE391: Синтаксический кластер %s не найденE392: Синтаксический кластер %s не найденE393: Здесь нельзя использовать group[t]hereE394: Элемент области для %s не найденE395: Здесь нельзя использовать параметр containsE397: Требуется указать имя файлаE398: Пропущено '=': %sE399: Не хватает параметров: синтаксический регион %sE39: Требуется числоE400: Кластер не указанE401: Не найден разделитель шаблонов: %sE402: Мусор после шаблона: %sE403: Синхронизация синтаксиса: шаблон продолжений строки указан дваждыE404: Недопустимые параметры: %sE405: Пропущен знак равенства: %sE406: Пустой параметр: %sE407: %s не допускается в этом местеE408: %s должно быть первым в списке containsE409: Неизвестная группа: %sE40: Не удалось открыть файл ошибок %sE410: Неправильная подкоманда :syntax: %sE411: Группа подсветки синтаксиса %s не найденаE412: Не хватает параметров: ":highlight link %s"E413: Слишком много параметров: ":highlight link %s"E414: У группы есть настройки, пропускается highlight linkE415: Неожиданный знак равенства: %sE416: Пропущен знак равенства: %sE417: Пропущен параметр: %sE418: Недопустимое значение: %sE419: Неизвестный цвет текстаE41: Не хватает памяти!E420: Неизвестный цвет фонаE421: Имя или номер цвета не известно: %sE422: Слишком длинный код терминала: %sE423: Недопустимый параметр: %sE424: Используется слишком много разных атрибутов подсветки синтаксисаE425: Невозможно перейти в позицию до первой совпадающей меткиE426: Метка не найдена: %sE427: Есть только одна совпадающая меткаE428: Невозможно перейти в позицию за последней совпадающей меткойE429: Файл "%s" не существуетE42: Нет ошибокE430: Путь к файлу меток %s обрезан
E431: Ошибка формата в файле меток "%s"E432: Файл меток не отсортирован: %sE433: Файл меток не обнаруженE434: Не найден шаблон меткиE435: Метка не найдена, пытаемся угадать!E436: В termcap нет записи "%s"E437: Требуется способность терминала "cm"E438: u_undo: неправильные номера строкE439: Повреждён список отменыE43: Повреждена строка соответствияE440: Потеряна строка отменыE441: Окно предпросмотра отсутствуетE442: Окно не может быть одновременно слева вверху и справа внизуE443: Невозможно поменять местами, пока другое окно разделеноE444: Нельзя закрыть последнее окноE445: В другом окне есть несохранённые измененияE446: Нет имени файла в позиции курсораE447: Файл "%s" не найден по известным путямE448: Не удалось загрузить функцию %s из библиотекиE449: Получено недопустимое выражениеE44: Программа обработки регулярных выражений поврежденаE455: Ошибка записи в файл PostScriptE456: Файл ресурсов PostScript "%s.ps" не найденE456: Файл ресурсов PostScript "cidfont.ps" не найденE456: Файл ресурсов PostScript "prolog.ps" не найденE456: Невозможно открыть файл "%s"E457: Невозможно прочитать файл ресурсов PostScript "%s"E459: Возврат в предыдущий каталог невозможенE45: Включена опция 'readonly' (добавьте !, чтобы обойти проверку)E460: Ветвь ресурса будет потеряна (добавьте !, чтобы обойти проверку)E461: Недопустимое имя переменной: %sE462: Невозможно подготовиться к перезагрузке "%s"E463: Невозможно изменить охраняемую областьE464: Неоднозначное использование команды пользователяE465: Команда :winsize требует указания двух числовых параметровE466: Команда :winpos требует указания двух числовых параметровE467: Особое дополнение требует указания параметра функцииE468: Параметр автодополнения можно использовать только с особым дополнениемE469: Неправильный флаг cscopequickfix %c для %cE46: Невозможно изменить переменную только для чтения "%s"E470: Выполнение команды прерваноE471: Требуется указать параметрE472: Не удалось выполнить командуE473: Внутренняя ошибкаE474: Недопустимый параметрE475: Недопустимый параметр: %sE476: Недопустимая командаE477: ! не допускаетсяE478: Спокойствие, только спокойствие!E479: Нет соответствияE47: Ошибка при чтении файла ошибокE480: Нет соответствия: %sE481: Использование диапазона не допускаетсяE482: Невозможно создать файл %sE483: Невозможно получить имя временного файлаE484: Невозможно открыть файл %sE485: Невозможно прочитать файл %sE486: Шаблон не найден: %sE487: Параметр должен быть положительным числомE488: Лишние символы на хвостеE48: Не допускается в песочницеE490: Складок не обнаруженоE492: Это не команда редактораE493: Задан обратный диапазонE494: Используйте w или w>>E495: Нет автокомандного имени файла для замены "<afile>"E496: Нет автокомандного номера буфера для замены "<abuf>"E497: Нет автокомандного имени соответствия для замены "<amatch>"E498: Нет имени файла :source для замены "<sfile>"E499: Пустое имя файла для '%' или '#', возможно только c ":p:h"E49: Недопустимый размер прокруткиE500: Результатом выражения является пустая строкаE501: В конце файлаE505: "%s" открыт только для чтения (добавьте !, чтобы обойти проверку)E505: %s открыт только для чтения (добавьте !, чтобы обойти проверку)E506: Запись в резервный файл невозможна (добавьте !, чтобы обойти проверку)E507: Ошибка закрытия резервного файла (добавьте !, чтобы обойти проверку)E508: Невозможно прочитать резервный файл (добавьте !, чтобы обойти проверку)E509: Невозможно создать резервный файл (добавьте !, чтобы обойти проверку)E50: Слишком много \z(E510: Невозможно создать резервный файл (добавьте !, чтобы обойти проверку)E511: уже соединён с NetBeansE512: Операция закрытия не удаласьE513: Ошибка записи, преобразование не удалось (очистите 'fenc', чтобы обойти)E513: Ошибка записи, преобразование не удалось на строке %ld (очистите 'fenc', чтобы обойти)E514: Ошибка записи (нет свободного места?)E515: Ни один буфер не был выгружен из памятиE516: Ни один буфер не был удалёнE517: Ни один буфер не был очищенE518: Неизвестная опцияE519: Опция не поддерживаетсяE51: Слишком много %s(E520: Не допускается в режимной строкеE521: После = требуется указать числоE521: Требуется указать число: &%s = '%s'E522: Не обнаружено в termcapE523: Здесь не разрешеноE524: Пропущено двоеточиеE525: Строка с нулевой длинойE526: Пропущено число после <%s>E527: Пропущена запятаяE528: Необходимо указать значение для 'E529: Значение опции 'term' не может быть пустой строкойE52: Нет пары для \z(E530: В графическом интерфейсе изменять терминал невозможноE531: Для запуска графического интерфейса используйте ":gui"E533: Невозможно выбрать шрифт с символами двойной шириныE534: Неправильный шрифт с символами двойной шириныE535: Неправильный символ после <%c>E536: Требуется запятаяE537: Значение опция 'commentstring' должно быть пустой строкой или содержать %sE538: Мышь не поддерживаетсяE539: Недопустимый символ <%s>E53: Нет пары для %s%%(E540: Незакрытая последовательность выраженияE541: Слишком много элементовE542: Несбалансированные группыE543: Недопустимое имя кодировкиE544: Файл с раскладкой клавиатуры не найденE545: Пропущено двоеточиеE546: Недопустимый режимE547: Недопустимая форма курсораE548: Требуется ввести цифруE549: Недопустимое значение процентовE54: Нет пары для %s(E550: Пропущено двоеточиеE551: Недопустимый компонентE552: Требуется указать цифруE553: Больше нет элементовE554: Синтаксическая ошибка в %s{...}E555: Внизу стека метокE556: Наверху стека метокE557: Невозможно открыть файл termcapE558: В terminfo нет записи об этом терминалеE559: В termcap нет записи об этом терминалеE55: Нет пары для %s)E560: Использование: cs[cope] %sE561: Неизвестный тип поиска cscopeE562: Использование: cstag <имя>E563: Ошибка statE563: Ошибка stat(%s): %dE564: %s не является каталогом или именем базы cscopeE566: Невозможно создать трубу для cscopeE567: Соединений с cscope не созданоE568: Данная база данных cscope уже подсоединенаE570: Критическая ошибка в cs_manage_matchesE571: К сожалению эта команда не работает, поскольку не загружена библиотека TclE572: Код выхода %dE573: Используется неправильный id сервера: %sE574: Неизвестный тип регистра %dE579: Слишком глубоко вложенный :ifE580: :endif без :ifE581: :else без :ifE582: :elseif без :ifE583: Обнаружено несколько :elseE584: :elseif после :elseE585: Слишком глубокое вложение :while или :forE586: :continue без :while или :forE587: :break без :while или :forE588: :endfor без :forE588: Команда :endwhile без парной команды :whileE589: Значения опций 'backupext' и 'patchmode' равныE590: Окно предпросмотра уже естьE591: Значение опции 'winheight' не может быть меньше значения 'winminheight'E592: Значение опции 'winwidth' не может быть меньше значения 'winminwidth'E593: Нужно хотя бы %d строкE594: Нужно хотя бы %d колонокE595: Содержит непечатный символ или символ двойной шириныE596: Неправильные шрифтыE597: Невозможно выбрать шрифтовой наборE598: Неправильный шрифтовой наборE599: Неправильное значение опции 'imactivatekey'E59: Недопустимый символ после %s@E600: Отсутствует команда :endtryE601: Слишком глубоко вложенный :tryE602: :endtry без :tryE603: :catch без :tryE604: :catch после :finallyE605: Исключительная ситуация не обработана: %sE606: :finally без :tryE607: Обнаружено несколько :finallyE608: Невозможно выполнить команду :throw для исключений с приставкой 'Vim'E609: Ошибка cscope: %sE60: Слишком много сложных конструкций %s{...}E612: Определено слишком много значковE613: Неизвестный шрифт принтера: %sE614: vim_SelFile: возврат в текущий каталог невозможенE615: vim_SelFile: не могу найти текущий каталогE616: vim_SelFile: шрифт %s не найденE617: Не может быть изменено в графическом интерфейсе GTK+ 2E618: Файл "%s" не является файлом ресурсов PostScriptE619: Файл "%s" не является допустимым файлом ресурсов PostScriptE61: Вложенные %s*E620: Невозможно преобразовать в кодировку печать "%s"E621: Файл ресурсов "%s" неизвестной версииE622: Невозможно выполнить fork() для cscopeE623: Не удалось запустить процесс cscopeE624: Невозможно открыть файл "%s"E625: Невозможно открыть базу данных cscope: %sE626: Информация о базе данных cscope не доступнаE62: Вложенные %s%cE63: Недопустимое использование \_E64: %s%c ни за чем не следуетE655: Слишком много символических ссылок (цикл?)E658: Потеряно соединение с NetBeans для буфера %ldE659: Невозможно выполнить рекурсивный вызов PythonE65: Недопустимая обратная ссылкаE661: К сожалению, справка '%s' для %s отсутствуетE662: В начале списка измененийE663: В конце списка измененийE664: Список изменений пустойE665: Невозможно перейти в режим граф. интерфейса, неправильно заданы шрифтыE666: Компилятор не поддерживается: %sE667: Не удалось выполнить функцию fsync()E668: Неправильный режим доступа к информации о соединении с NetBeans: "%s"E669: Непечатный символ в имени группыE66: \z( не может быть использовано здесьE670: Файлы справки используют разные кодировки для одного языка: %sE671: Окно с заголовком "%s" не обнаруженоE672: Невозможно открыть окно внутри приложения MDIE673: Несовместимые многобайтовая кодировка и набор символов.E674: printmbcharset не может быть пустым при многобайтовой кодировке.E675: Нет определения шрифта по умолчанию для многобайтовой печати.E676: Нет подходящих автокоманд для буфера acwriteE677: Ошибка записи во временный файлE678: Недопустимый символ после %s%%[dxouU]E679: Рекурсивная петля при загрузке syncolor.vimE67: \z1 и т.п. не могут быть использованы здесьE680: <buffer=%d>: неправильный номер буфера E681: Буфер не выгруженE682: Неправильная строка поиска или разделительE683: Нет имени файла или неправильный шаблонE684: Индекс списка за пределами диапазона: %ldE685: Внутренняя ошибка: %sE686: Параметр %s должен быть спискомE687: Целей меньше чем элементов спискаE688: Целей больше чем элементов спискаE689: Индексирование возможно только списка или словаряE68: Недопустимый символ после \zE690: Пропущено "in" после :forE691: Список можно сравнивать только со спискомE692: Недопустимая операция для списковE693: Ссылку на функцию можно сравнивать только с ссылкой на функциюE694: Недопустимая операция для ссылки на функциюE695: Невозможно индексировать ссылку на функциюE696: Пропущена запятая в списке: %sE697: Пропущено окончание списка ']': %sE698: Слишком глубоко вложенные переменные для копированияE699: Слишком много параметровE69: Пропущена ] после %s%%[E700: Неизвестная функция: %sE701: Неправильные тип для len()E702: Неудачное завершение функции сравнения при сортировкеE703: Использование ссылки на функцию как числаE704: Имя переменной ссылки на функцию должно начинаться с заглавной буквы: %sE705: Имя переменной конфликтует с существующей функцией: %sE706: Несоответствие типа переменной для: %sE707: Имя функции конфликтует с переменной: %sE708: [:] должно быть последнимE709: [:] требует значением списокE70: Пустое %s%%[]E710: Элементов списка-значения больше чем в целиE711: Список-значение не содержит достаточно элементовE712: Параметр %s должен быть списком или словарёмE713: Невозможно использовать пустой ключ для словаряE714: Требуется списокE715: Требуется словарьE716: Нет ключа в словаре: %sE717: Запись уже существует в словареE718: Требуется ссылка на функциюE719: Невозможно использовать [:] со словарёмE71: Недопустимый символ после %s%%E720: Пропущено двоеточие в словаре: %sE721: Повтор ключа в словаре: "%s"E722: Пропущена запятая в словаре: %sE723: Пропущено окончание словаря '}': %sE724: Слишком глубоко вложенные переменные для отображенияE725: Вызов функции dict без словаря: %sE726: Нулевой шагE727: Начало после концаE728: Использование словаря как числаE729: Использование ссылки на функцию как строкиE72: Ошибка закрытия своп-файлаE730: Использование списка как строкиE731: Использование словаря как строкиE732: Использование :endfor с :whileE733: Использование :endwhile с :forE734: Неправильный тип переменной для %s=E735: Словарь можно сравнивать только со словарёмE736: Недопустимая операция для словаряE737: Ключ уже существует: %sE738: Невозможно отобразить переменные для %sE739: Невозможно создать каталог: %sE73: Стек меток пустойE740: Слишком много параметров для функции %sE741: Значение %s заблокированоE742: Невозможно изменить значение %sE743: Слишком глубоко вложенные переменные для (раз)блокировкиE744: NetBeans не допускает изменений в файлах только для чтенияE745: Использование списка как числаE746: Имя функции не соответствует имени файла сценария: %sE747: Смена каталога невозможна, буфер изменён (добавьте !, чтобы обойти проверку)E748: Нет предыдущего использованного регистраE749: Пустой буферE74: Слишком сложная командаE750: Первое использование ":profile start {имя-файла}"E751: Имя выходного файла не должно содержать названия регионаE752: Нет предыдущей замены правописанияE753: Не найдено: %sE754: Поддерживается не более 8-ми регионовE755: Недопустимый регион в %sE756: Проверка правописания выключенаE757: Это не похоже на файл правописанияE758: Файл правописания обрезанE759: Ошибка формата в файле правописанияE75: Слишком длинное имяE760: Количество слов не указано в %sE761: Ошибка формата в файле аффиксов FOL, LOW или UPPE762: Символы в FOL, LOW или UPP за пределами диапазонаE763: Символы слов отличаются в файлах правописанияE764: Опция '%s' не установленаE765: 'spellfile' не содержит %ld элементовE766: Недостаточно параметров для printf()E767: Слишком много параметров для printf()E768: Своп-файл существует: %s (:silent! чтобы обойти проверку)E769: Пропущена ] после %s[E76: Слишком много символов [E770: Неподдерживаемый раздел в файле правописанияE771: Старый файл правописания, требуется его обновлениеE772: Файл правописания предназначен для более новой версии VimE773: Петля символьных ссылок для "%s"E774: Значением опции 'operatorfunc' является пустая строкаE775: eval не доступнаE776: Нет списка расположенийE777: Требуется строка или списокE778: Это не похоже на файл .sug: %sE779: Старый файл .sug, требует обновления: %sE77: Слишком много имён файловE780: Файл .sug для более новой версии Vim: %sE781: Файл .sug не соответствует файлу .spl: %sE782: Ошибка при чтении файла .sug: %sE783: Повторяющийся символ в элементе MAPE784: Нельзя закрыть последнюю вкладкуE785: complete() может использоваться только в режиме ВставкиE786: Диапазон не допускаетсяE787: Буфер неожиданно изменилсяE788: Сейчас не допускается редактирование другого буфераE789: Пропущено ']': %sE78: Неизвестная отметкаE790: Объединение отмен не допускается после отменыE791: пустая запись раскладки клавиатурыE792: Пустое имя менюE793: Больше нет изменяемых буферов в режиме отличийE794: Невозможно изменить переменную в песочнице: "%s"E795: Невозможно удалить переменную %sE79: Невозможно выполнить подстановку по маскеE800: Арабский выключен при компиляции
E804: Невозможно использовать '%' с числом с плавающей точкойE805: Использование числа с плавающей точкой как целогоE806: Использование числа с плавающей точкой как строкиE807: Ожидался параметр типа с плавающей точкой для printf()E808: Требуется целое число или с плавающей точкойE809: #< не доступно без особенности +evalE80: Ошибка при записиE810: Невозможно прочитать или записать временные файлыE811: Сейчас не допускается изменение информации о буфереE812: Автокоманды изменили буфер или имя буфераE813: Нельзя закрыть окно автокомандE814: Нельзя закрыть окно, останется только окно автокомандE815: К сожалению эта команда не работает, поскольку не загружена библиотека MzSchemeE816: Невозможно прочитать вывод patchE817: Неправильное использование обратного/прямого порядка байт в BlowfishE818: Не удалось выполнить тест sha256E819: Не удалось выполнить тест BlowfishE81: Использование <SID> вне контекста сценарияE820: sizeof(uint32_t) != 4E821: Файл зашифрован неизвестным методомE822: Невозможно открыть файл отмен для чтения: %sE823: Это не файл отмен: %sE824: Несовместимый файл отмен: %sE825: Файл отмен повреждён (%s): %sE826: Не удалось дешифровать файл отмен: %sE827: Файл отмен зашифрован: %sE828: Невозможно открыть файл отмен для записи: %sE829: Ошибка при записи файла отмен: %sE82: Невозможно выделить память даже для одного буфера, выход...E830: Не найдена отмена номер %ldE831: bf_key_init() вызван с пустым паролемE832: Не зашифрованный файл имеет зашифрованный файл отмен: %sE833: %s зашифрован, а эта версия Vim не поддерживает шифрованиеE834: Конфликтует со значением 'listchars'E835: Конфликтует со значением 'fillchars'E836: Данный Vim не может выполнить :python после использования :py3E837: Данный Vim не может выполнить :py3 после использования :pythonE838: NetBeans не поддерживается с этим графическим интерфейсомE839: Функция автодополнения изменила окноE83: Невозможно выделить память для буфера, используем другой буфер...E840: Функция автодополнения удалила текстE841: Зарезервированное имя не может использоваться для команд пользователяE842: Нет номера строки для использования "<slnum>"E843: Ошибка при обновлении шифрования своп-файлаE844: Недопустимое значение ccharE845: Недостаточно оперативной памяти, список слов будет не полонE846: Код клавиши не установленE847: Слишком много синтаксических включенийE848: Слишком много синтаксических кластеровE849: Слишком много групп подсветки и синтаксисаE84: Изменённых буферов не обнаруженоE850: Недопустимое имя регистраE851: Невозможно создать новый процесс для граф. интерфейсаE852: Процессу-потомку не удалось запустить граф. интерфейсE853: Повторяющееся имя параметра: %sE854: слишком большой путь для автодополненияE855: Автокоманды вызвали прекращение командыE858: Eval не возвратил допустимого объекта PythonE859: Не удалось преобразовать возвращённый объект Python в значение VIME85: Буферы в списке отсутствуютE862: Здесь невозможно использовать g:E864: после \%#= может быть только 0, 1 или 2. Будет использоваться автоматическая машинаE865: (НКА) неожиданный конец регулярного выраженияE866: (рег. выражение НКА) неожиданный %cE867: (НКА) неизвестный оператор '\%%%c'E867: (НКА) неизвестный оператор '\z%c'E868: ошибка при создании НКА с классом эквивалентности!E869: (НКА) неизвестный оператор '\@%c'E86: Буфер %ld не существуетE870: (рег. выражение НКА) ошибка при чтении границ повторенияE871: (рег. выражение НКА) множество не может следовать за множеством!E872: (рег. выражение НКА) слишком много '('E873: (рег. выражение НКА) ошибка корректного завершенияE874: (рег. выражение НКА) невозможно взять из стека!E875: (рег. выражение НКА) в стеке осталось слишком много состояний (при преобразовании из postfix в НКА)E876: (рег. выражение НКА) недостаточно места для хранения всего НКАE877: (рег. выражение НКА) неправильный класс символов: %ldE878: (НКА) невозможно выделить память для прохода ветви!E879: (рег. выражение НКА) слишком много \z(E87: Это последний буферE881: Неожиданно изменился счётчик строкE882: Неудачное завершение функции сравнения при проверке единственностиE883: шаблон поиска и регистр выражения не могут содержать двух или более строкE884: Имя функции не может содержать двоеточие: %sE885: Невозможно изменить значок %sE886: Невозможно переименовать файл viminfo в %s!E887: К сожалению эта команда не работает, поскольку не загружен модуль Python site.E888: (рег. выражение НКА) невозможно повторить %sE88: Это первый буферE89: Изменения в буфере %ld не сохранены (добавьте !, чтобы обойти проверку)E90: Невозможно выгрузить из памяти последний буферE91: Значением опции 'shell' является пустая строкаE92: Буфер %ld не найденE93: Несколько соответствий для %sE94: Нет соответствующего %s буфераE95: Буфер с таким именем уже существуетE96: Следить за отличиями можно не более чем в %ld буферахE97: Невозможно создать файлы отличийE98: Невозможно прочитать вывод diffE99: Активный буфер не находится в режиме отличийОШИБКА: Редактирование файлаРедактировать файл в новом окнеРе&дактировать с помощью VimРедактировать в &разных Vim-ахРедактировать в запущенном Vim — Редактировать в &одном VimРедактировать выделенные файлы с помощью VimКодировка:Конец функцииКонец считанного файлаВведите пароль для шифрования: Введите номер своп-файла, который следует использовать (0 для выхода): Повторите ввод пароля: Включён режим отладки. Для продолжения наберите "cont"Переход в режим Ex. Для перехода в Обычный режим наберите "visual"ОшибкаОшибка и прерываниеОшибка создания процесса: проверьте доступность gvim в пути!Обнаружена ошибка при обработке %s:Файл ошибокОценка использования памяти при выполнении: %d байтИсключительная ситуацияОбработка исключительной ситуации: %sИсключительная ситуация проигнорирована: %sЗавершена обработка исключительной ситуации: %sИсключительная ситуация: %sВыполнение %sОжидался счётчик MAP в %s, строка %dОжидался счётчик REP(SAL) в %s, строка %dОжидалось Y или N в %s, строка %d: %sВыражениеВнешние подсоответствия:
FLAG после использования флагов в %s, строка %d: %sОшибка при установке перехватчика пути: sys.path_hooks не является списком
Следует сделать следующее:
— Добавить vim.path_hook  в sys.path_hooks
— Добавить vim.VIM_SPECIAL_PATH в sys.path
Ошибка при установке пути: sys.path не является списком
Следует добавить vim.VIM_SPECIAL_PATH в sys.pathФайл "%s" не существуетИзменилось содержимое файла, невозможно использовать информацию отменФайл "%s" имеет режим доступа только для чтения.
Но, возможно, файл удастся записать.
Хотите попробовать?Своп-файл обновлёнФайлыФильтрПоиск и замена (используйте '\\' для поиска '\')Найти &следующееНайти следующееПоиск строки (используйте '\\' для поиска '\')Найти символЧто ищем:Завершено чтение файла отмен %sПервый повтор слова в %s на строке %d: %sФлаг не является числом в %s, строка %d: %sШрифт '%s' не является моношириннымШирина шрифта font%ld должна быть вдвое больше ширины шрифта font0Ширина шрифта font0: %ldFont0: %sШирина шрифта font1: %ldFont1: %sШрифт:Мусор после необязательного параметраСоздать docuПриветствуем вас, пользователь Vim!Бедным детям в Уганде нужна ваша помощь!Конец абзацаОШИБКА ВВОДА/ВЫВОДАПропущено %d слов с не ASCII символами в %sПропущено %d слов с не ASCII символамиИгнорирование длинной строки в файле tagsНедопустимое имя файлаНедопустимый флаг в %s на строке %d: %sНедопустимое имя регистраНедопустимый начальный символСтрока вводаМетоды ВводаПрерываниеПрерывание: ПрерваноНедопустимый параметр дляНеправильное определение шрифтаНедопустимый номер региона в %s, строка %d: %sНеправильное значение FLAG в %s, строка %d: %sВведённые пароли не совпадают!Убить соединениеСборка: Требуется список или числоБиблиотека Lua не может быть загружена.Регистрозависимые соответствияТолько точные соответствияСообщениеПеревод сообщений на русский язык: Василий Рагозин <vrr@users.sourceforge.net>, Сергей Алёшин <alyoshin.s@gmail.com>Пропущена '>'Пропущена строка FOL/LOW/UPP в %sПропущена строка SOFO%s в %sС изменениями, внесёнными Название:Необходима %s версии %ld
Необходима Amigados версии 2.04 или более поздней
Требуется ключ шифрования для "%s"NetBeans не позволяет выполнять запись неизменённых буферовНовая вкладкаСинтаксические элементы для данного буфера не определеныСокращения не найденыТочки остановки не определеныНет дисплеяНет дисплея: отправка выражения не удалась.
Включённых файлов нетПривязки не найденыНет установленных отметокНет совпадения под курсором, поиск следующегоНет подходящих автокомандНет старых файловБез своп-файлаПечатать нечегоОтмена невозможна; продолжать выполнениеКоманды, определённые пользователем, не обнаружены.Не используетсяФайл отмен не прочитан, другой владелец: %sНечего отменятьКоличество слов после звуковой свёртки: %ldДаОткрытие файлаОткрыть вкладку...Открыть вкладку...Неудачное открытие дисплея XОткрытие дисплея X не выполнено в отведённое времяОткрытие дисплея X заняло %ld msecИсходный файл "%s"Перезаписать существующий файл "%s"?Страница %dЧастичная запись буферов NetBeans не допускаетсяФайл-заплаткаСлишком длинный путь!Путь к файлу:Соответствие шаблону найдено на каждой строке: %sШаблон не найденШаблон не найден: %sВыполнение звуковой свёртки...Нажмите ENTER или введите команду для продолженияЗадание на печать отправлено.Напечатано: %sПечать '%s'Печать прекращенаПечать стр. %d (%d%%)Запрос по шаблонуВопросЧтение файла аффиксов %s ...Чтение записанного файла правописания...Чтение файла словаря %s ...Чтение из стандартного потока ввода stdin...Чтение файла правописания "%s"Чтение файла отмен: %sЧтение файла viminfo "%s"%s%s%sЧтение файла слов %s ...Восстановление завершено. Содержимое буферов и файлов эквивалентно.Восстановление завершено. Проверьте, всё ли в порядке.Заново инициализировать все соединенияЗаменаЗаменить &всеЗаменить всеНа что заменяем:ПолучитьПолучить из всех проектовПолучить из файлаПолучить из проектаРабота в Vi-совместимом режимеБезрежимная работа, вставка введённого текстаВ настоящий момент SNiFF+ Сохранить какСохранение файлаПеренаправление записиСохранение сеансаСохранение настроекСохранение видаСохранить изменения в "%s"?Просмотр словаря: %sПросмотр включённых файлов: %sВыполняется поиск среди меток.Просмотр: %sПолоса прокрутки: не могу определить геометрию ползункаСтрока поискаПоиск "%s"Поиск "%s" в "%s"Поиск включённого файла %sПоиск в файле меток %sСм. ":help E312" для дополнительной информации.См. ":help W11" для дополнительной информации.См. ":help W12" для дополнительной информации.См. ":help W16" для дополнительной информации.Выбор каталогаВыделено %s%ld из %ld строк; %ld из %ld слов; %ld из %ld байтВыделено %s%ld из %ld стр.; %ld из %ld слов; %ld из %ld симв.; %ld из %ld байтВыделениеОтправка на печать...Показать основной классПоказать класс в иерархииПоказать класс в ограниченной иерархииПоказать соединенияПоказать docuПоказать перегруженные функцииПоказывать размер в пунктахПоказать исходный кодПоказать это сообщениеЗначки для %s:Размер:Пропущена запись файла отмен, нечего отменятьSniff: Ошибка во время записи. ОтсоединениеИзвините, файл справки "%s" не найденИзвините, нет предположенийИзвините, только %ld предположенийИзвините, данная команда отключена: невозможно загрузить библиотеку PerlВыполнить сценарий VimПомогите в разработке Vim!Размер стека увеличенСтиль:Замена Своп-файл "Своп-файл "%s" существует, перезаписать?Своп-файл уже существует!Своп-файл зашифрован: "%s"Обнаружены своп-файлы:Вкладка %dОторвать это менюПроверка дисплея X завершена неудачноБлагодарим за использование VimФайл был создан Единственное соответствиеДанный Vim был скомпилирован с выключенной особенностью просмотра отличийЭта команда cscope не поддерживает разделение окна.
Переключение между реализацией/определениемСлишком много параметров "+команда", "-c команда" или "--cmd команда"Слишком много составных флаговСлишком много параметров редактированияСлишком много отложенных префиксовСлишком много отложенных префиксов и/или составных флаговСлишком много регионов в %s, строка %d: %sНаверхуОбщее количество слов: %dЛишний текст на хвосте в %s стр. %d: %sВведите :quit<Enter>  для выхода из VimВведите номер и <Enter> (пусто для отмены): Введите номер и <Enter> или щёлкните мышью (пусто для отмены): Невозможно прочитать блок 0 из Невозможно зарегистрировать имя сервера командНеизвестноНеизвестный необязательный параметрНераспознанные флаги в %s, строка %d: %sНераспознанный или повторяющийся элемент в %s, строка %d: %sБез имениВверхИспользуйте Vim версии 3.0.
Вместо пустого выделения используется CUT_BUFFER0Использование ключа шифрования из своп-файла для текстового файла.
Используется своп-файл "%s"VIM — ВНИМАНИЕVIM — Поиск и замена...VIM — Поиск...VIM — Vi IMproved (улучшенный Vi)Ошибка VIMVIM: Невозможно открыть окно!
VIMRUN.EXE не найден в пути, заданном в $PATH.
Внешние команды не будут останавливаться после выполнения.
Дополнительная информация в :help win32-vimrunVim — Выбор шрифтаVim E458: Невозможно выделить запись в таблице цвета, некоторые цвета могут отображаться неправильноПредупреждение VimДиалоговое окно Vimошибка Vimошибка Vim: ~aПрекращение работы Vim с кодом %d
Vim это свободно распространяемая программа с открытым кодомVim: Перехвачено событие %s
Vim: Ошибка чтения ввода, выход...
Vim: Ошибка: Не удалось запустить gvim из NetBeans
Vim: Основное окно было неожиданно закрыто
Vim: Чтение из стандартного потока ввода stdin...
Vim: Получен запрос на прекращение работы от диспетчера сеансов
Vim: Предупреждение: Ввод происходит не с терминала
Vim: Предупреждение: Вывод осуществляется не на терминал
W10: Предупреждение: Изменение файла с правами только для чтенияW11: Предупреждение: файл "%s" был изменён после начала редактированияW12: Предупреждение: файл "%s" и буфер Vim были изменены независимо друг от другаW13: Предупреждение: файл "%s" был создан после начала редактированияW14: Предупреждение: переполнение списка имён файловW15: Предупреждение: неправильный разделитель строки. Возможно пропущено ^MW16: Предупреждение: режим доступа к файлу "%s" был изменён после начала редактированияW17: Арабский требует использования UTF-8, введите ':set encoding=utf-8'W18: Недопустимый символ в имени группыПРЕДУПРЕЖДЕНИЕ: Файл изменён с момента чтения!!!ПРЕДУПРЕЖДЕНИЕ: обнаружена Windows 95/98/MEПредупреждениеПредупреждение: Невозможно найти список слов "%s.%s.spl" или "%s.ascii.spl"Предупреждение: Невозможно найти список слов "%s_%s.spl" или "%s_ascii.spl"Предупреждение: Неожиданный переход в другой буфер (проверьте автокоманды)Предупреждение: оба составные и указано NOBREAKПредупреждение: регион %s не поддерживаетсяПредупреждение: терминал не может выполнять подсветкупри открытии файла: "Файл отмен не перезаписан, невозможно прочитать: %sПерезапись не выполнена, это не файл отмен: %sПоложение окна: X %d, Y %dСлово '%.*s' добавлено в %sСлово '%.*s' удалено из %sСлово из другой строкиЗаписать файл частично?Запись файла правописания %s ...Запись файла предложения исправлений правописания %sЗапись файла отмен: %sЗапись файла viminfo "%s"Неправильное значение CHECKCOMPOUNDPATTERN в %s, строка %d: %sНеправильное значение COMPOUNDMIN в %s, строка %d: %sНеправильное значение COMPOUNDRULES в %s, строка %d: %sНеправильное значение COMPOUNDSYLMAX в %s, строка %d: %sНеправильное значение COMPOUNDWORDMAX в %s, строка %d: %sXSMP потеряно слежение за соединением ICEXSMP неудачно выполнено SmcOpenConnection: %sXSMP обрабатывает запрос самосохраненияXSMP утеряно соединение ICEXSMP открывает соединениеXref имеетСсылка на xref изXref ссылается наXref используетсяДАНулевое значение счётчика[ОШИБКА ПРЕОБРАЗОВАНИЯ в строке %ld][пропущены символы CR][Удалено][Устройство][Файл слишком большой][Справка][НЕДОПУСТИМЫЙ БАЙТ в строке %ld][Незавершённая последняя строка][Список расположений][БЕЗ преобразований][Новый КАТАЛОГ][Новый файл][Новый файл][Новый][Нет имени][Изменения не сохранены]
[Не редактировался][Доступ запрещён][Предпросмотр][Список быстрых исправлений][ОШИБКИ ЧТЕНИЯ][ТЧ][Ошибки чтения][Временный][вызовы] re/malloc() всего %lu, free() всего %lu

[специальный символьный][перекодировано][зашифровано][формат dos][dos][fifo/гнездо][fifo][файл ..] редактирование указанных файлов[длинные строки разбиты][формат mac][mac][noeol][только для чтения][гнездо][формат unix][unix]параметра add()послефайлом при помощи программы diff)Попытка присвоить последовательность размером %d к расширенной выборке размером %dПопытка присвоить последовательность размером больше чем %d к расширенной выборкеПопытка сослаться на уничтоженный буферПопытка сослаться на удалённую вкладкуПопытка сослаться на закрытое окноавто-удаление автокоманды: %s <буффер=%d>автокоманда %sпередскопирован блок из строк: %ldскопирован блок из одной строкинеправильный буфер Брам Мооленаар и другиеФункция inputrestore() вызывается чаще, чем функция inputsave()вызов %sНевозможно удалить атрибуты OutputObjectневозможно прочитать вывод 'charconvert'невозможно сменить режим консоли?!
невозможно создать команду буфера или окна: объект в процессе удаленияневозможно удалить строкуНевозможно удалить атрибуты vim.DictionaryНевозможно удалить атрибуты vim.Listневозможно получить строкуневозможно вставить строкуневозможно вставить или добавить строкуНевозможно изменить фиксированный словарьНевозможно изменить фиксированный списокневозможно открыть невозможно зарегистрировать команду с обратным вызовом: буфер или окно в процессе удаленияневозможно зарегистрировать команду с обратным вызовом: ссылка на буфер или окно не обнаруженаневозможно заменить строкуневозможно сохранить информацию об отмене операцииНевозможно установить атрибут %sневозможно назначить строку или строкископировать не удалось, удаление выполненоизм.изм.закрытиекоманда: %sподсоединёнпродолжение в %sневозможно считать "%s"невозможно открыть буферcs_create_connection: не удалось выполнить execcs_create_connection: не удалось выполнить setpgidcs_create_connection: не удалось выполнить fdopen для fr_fpcs_create_connection: не удалось выполнить fdopen для to_fpКоманды cscope:
соединение с cscope %s закрытоПозиция курсора находится вне буферапо умолчанию 'удалён блок 1?Словарь заблокированНевозможно переключиться на указанную вкладкуНевозможно переключиться на указанное окноdlerror = "%s"не выходите из редактора, пока файл не будет успешно записан!Пустые ключи не допустимыпеременная окруженияневозможно преобразовать значения Scheme в Vimобработчик ошибкисписок ошибок %d из %d; %d ошибокОжидался 3-кортеж как результат imp.find_module(), но получен %sОжидался 3-кортеж как результат imp.find_module(), но получен кортеж с размером %dОжидался экземпляр bytes() или str(), но получен %sОжидалось int() или что-то приводимое к int(), но получено %sОжидалось int(), long() или что-то приводимое к long(), но получено %sОжидался элемент-последовательность размера 2, а размер полученной последовательности %dОжидался экземпляр str() или unicode(), но получен %sОжидался объект vim.Buffer, но получен %sОжидался объект vim.TabPage, но получен %sОжидался объект vim.Window, но получен %sвыражения отключены при компиляциипараметра extend()Невозможно добавить элемент в списокНевозможно добавить ключ '%s' к словарюНевозможно сменить каталогНевозможно найти окно в текущей вкладкеНевозможно переименовать буферНевозможно выполнить функцию %sНевозможно выполнить кодНевозможно переключиться на буфер %dстр. удаленофайл
имя файла / контекст / строка
параметра filter()считывание сценария %s завершеноочищено строк: %ldФункция %s не существуетКонструктор функции не допускает ключевые слова как аргументыошибка gvimext.dllХэш-таблица изменилась при итерациисправкаскрытая опцияпо пути ---
Индекс должен быть целым числом или выборкой, а не %sпараметра insert()Внутренняя ошибка: передана ссылка на NULLВнутренняя ошибка: не удалось добавить элемент в списокВнутренняя ошибка: не удалось получить элемент VIM-списка %dВнутренняя ошибка: imp.find_module возвратил Внутренняя ошибка: неправильный тип значенияВнутренняя ошибка: нет элемента VIM-списка %dВнутренняя ошибка: недостаточно элемнтов спискаВнутренняя ошибка: неизвестный тип опцииНеправильный атрибут: %sнеправильный номер буферанеправильное выражениенеправильное имя отметкиявляется устройством (отключено при опции 'opendevice')является каталогомне является файломне является файлом или устройством, доступным для записиоткрыт только для чтения (добавьте !, чтобы обойти проверку)клавиатурное прерываниестрока %4ld:строка %6d, слово %6d — %sстрока %ldстр. %ld из %ld --%d%%-- кол. строка %ld: %sстрока %ld: невозможно считать "%s"строка %ld: считывание "%s"стр. удаленаномер строки за пределами диапазонаномер строки за пределами диапазонаКонструктор списка не допускает ключевые слова как аргументыИндекс списка за пределами диапазонаСписок заблокированотключениепараметра map()Название отметки должно быть одним символомотметка не установленасоответствие %dсоответствие %d из %dмаксимум mch_get_shellsize: не в консоли??
меню Правка->Глобальные настройки->Режим Вставки                     меню Правка->Глобальные настройки->Совместимость с Vi                меню Справка->Сироты             для получения информации     меню Справка->Помощь/Регистрация для получения информации       минимум режимная строкастр. добавленастр. добавленоNetBeans не поддерживается с этим графическим интерфейсом
запуск новой оболочки
нетсоединения с cscope отсутствуют
нет специального совпаденияНет такой вкладкиНет такого окнабез синхронизациине не допускается в песочнице Vimне найдено не найдено в 'runtimepath': "%s"пока не реализовано номер  измен.  когда              сохраненоНомер должен быть больше или равен нулюНомер должен быть больше нулязначение pe_line_count равно нулюкомандная строка перед выполнением vimrcПроблема при переключении окончтение из гнезда NetBeansАтрибут только для чтения: буферзаписьпараметра remove()заменить на %s? (y/n/a/q/l/^E/^Y)параметра reverse()ряд %d колонка %dПоиск будет продолжен с НАЧАЛА документаПоиск будет продолжен с КОНЦА документаоболочка завершение работы оболочки с кодом %dзавершениеШаг выборки не может быть нулевымпараметра sort()считывание сценария "%s"значение stack_idx должно быть равно 0строка не может содержать символ новой строкиСинхронизация по комментариям в стиле языка Cсинхронизация начата метка %d из %d%sимя меткив %s на %sнаберите :help cp-default<Enter> для дополнительной информациинаберите :help iccf<Enter>       для дополнительной информациинаберите :help register<Enter>   для получения информации     наберите :help sponsor<Enter>    для получения информации     наберите :help version8<Enter>   чтобы узнать об этой версии  наберите :help windows95<Enter>  для получения информации     наберите :help<Enter> или <F1>   для получения справки        наберите :q<Enter>               чтобы выйти из программы     наберите :set nocp<Enter>        для перехода в режим Vim     Невозможно преобразовать %s в словарь VIMНевозможно преобразовать %s в структуру VIMНевозможно получить значение опцииНевозможно сбросить глобальную опцию %sНевозможно сбросить опцию %s без глобального значенияпараметра uniq()неизвестнонеизвестный флаг: неизвестная опциянеизвестная vimOptionНе существует безымянной функции %sЗначение слишком велико для целочисленного типа CЗначение слишком мало для целочисленного типа Cверсия ошибка VIMиндекс окна за пределами диапазонанеправильное окнос классическим графическим интерфейсом.с графическим интерфейсом Carbon.с графическим интерфейсом Cocoa.с графическим интерфейсом GTK2.с графическим интерфейсом GTK2-GNOME.с графическим интерфейсом.с графическим интерфейсом Photon.с графическим интерфейсом X11-Athena.с графическим интерфейсом X11-Motif.с графическим интерфейсом X11-neXtaw.без графического интерфейса.запись в устройство отключена при опции 'opendevice'PK�j�Z2�ڡڡ'vim80/lang/cs.cp1250/LC_MESSAGES/vim.monu�[�����<(�\P@kAkWk
hkvkk'�k/�k�kll0/l`l+hl�l"�l�l�l5�l)mFmcmrm��m,5n;bn�n�n�n�n�no#o2oHoco{o�o�o0�o.�o/ p1Pp
�p�p�p�p
�p�p
�p q&q5qIq!dq�q"�q�q�q�q@rAr\rmr~r(�r-�r�r�rs/s=Fs�s�s�s�s�s�st-!tOtot�t�t�t�t3�t3u$Kupu�u�u�u�u�u�u
vv(v@vQvdv
|v$�v�v �v�v�v;wHw7Ww0�w#�w	�w�wxxx
(x3xMx^xjx�x�x�x�x#�x�x!�x!y2y :y[ycy!ky�y�y �y�y�y�y�y z&z	.z!8zZzfzkz+pz	�z"�z*�z�z{{"{.{E{
L{
Z{e{
n{y{�{�{�{�{5�{�{-|1=|&o|�|�|�|�|�|}}$,}Q}
a}l}x}�}�}�}�}�}�}�}~!~9~J~V~e~w~0�~�~�~�~�~+61hq'�-�%�5�+4�`�}�A��؀1�/&�V�g�v�	��������ρ-��$;�`�
����������?҂5�H�%e�6��Eƒ9�IB�0��6��8�3-�-a�%����Ʌ���&�,3�#`� ��@��-�0�E�;Z���"��ه>�))�>S�<��ψ#�:�'N�9v���$ɉ-�4�;Q� ��>��'�/�E�-b���.��B΋"�/4�2d�*��Œ+�%�'2�(Z�<��E��.�-5�$c���<��ގ*��&#�J�Y�j�|���������̏܏����
�#�,�8�G�_�w�������̐ߐ��
�$%�!J�l�{�"��"��1͑?��?�P�_�f�z�������ܒ���'�E�%]���������ғ�$���!5�W�g�y�}�����ǔ#ܔ�*�D�W�.j�.��ȕϕQ�;�-J�x����� ��֖!��/1�a�?n�����˗
ڗ
�$��.6�e����	����!����"�E�[�%x�#��-™�
�+�H�&d�������͚���'�>�)Y�+��@��-��2;�n�������/ל1�9�EV���-��7�#� C�:d�5��&՞"��&�$F�#k�!��=��5� %�(F�7o�!��,ɠ���'� A�#b�#������١��,�H�g�0��$��!ܢ ��(�4H�,}���ƣ٣� �'�/D�t�!��%��%٤$��$� =�^�z�?��&ե!���
:�AH�%��%��"֦9��'3�([�2��*��!�!�)&�%P�!v�4��:ͨ&�;/�;k�)��0ѩ�!�=�V�h�,��!��8Ъ&	�#0�T�/l�"����-Ы���.�G�/_�*��(��#��#�>�[�w�>��ҭ��%�=�"T�w�����Ȯ!߮�#�@�9X�1��)į1�% �7F�2~���A˰?
�M�d�|�!����ڱ���00�4a�!��$��(ݲN�,U�L��8ϳ�,(� U� v�#����ִ7�N(�Mw�ŵ���$�!>�3`�,��2��%�*�9E�(���"÷�#�(�G�d�����0��!� �<,�(i�����+ǹ2�$&�K�,i���H��,��'�=�"]�������ۻ��9�S�h���0��#м'��,�,L�&y�����+ͽ2��-,�(Z���"��'��'�,�<�.S���#��,ƿW�)K�"u�,��%�� �)�2B�2u�2���!���3�2H�5{�'��#��)��,'�'T�$|�%��.�����%�$=�&b� ��'��*��#��'!�%I�3o�!����+���*0�-[�$���������� 6� W�$x�$��)��,���1�,G�t���%����=��(�D�a�z�'������$��#�0?�.p�0������
�(�@�W�k�-�� ����7��)$�N�$f�(������%��$�-�L�_�'|���'�� ���$�>� V�7w�0����#��#�"C�f�-����.��1��'.�"V�y�������������5�H�X�q�����(��+��/�>�\�{�!��"��B�� �?�\�v���)��'��� �'=�e�	m�w���������#��6�C�S�g�$~�.����+��6�L�6R�#������
������� �&�(-�	V�%`���
������(����
��
"�-�B�T�i�n�%������	�������-�?�L�_�r���
����������������+�;�V�h�~�����	����2���
�
!�/�I�`�$u�������'�����,�D�]�
w�������������
������!�!7�Y�x����������������,�#L�p�����
����	������+�;�
G�U�f�~�������9���"�*�
6�D�M�h�{�	��������������
�	��2�J�e�t�9��
��������?�	N�X�q�����"���������"�
4�'B�j�E����������5�#H�$l���������2��0�;P� ��-���������((�Q�n�s�{���������������+�/�D�T�p���	�������F;���
��
����+�������7�%T�z���+��*����&�9>�Mx�>��)�5/�Ae�6��"���?	�"I�l���������
��������
�'�:�M�	Z�d�m�z�
����
��
����	��	�������	�
%�3�
8�5F�|�	������
����&����������
�!�*�
<�J�:Q�����"��"������
)�$4�"Y�|�����<����'�:�T�Ha�C������2�M�S�[�	j�t������� ��-��-�H�Z�w���������=��#�A�"`�$�� ����������	��-�2�?�Q�g�z���
�� �� ��
��	��0�=�]�u�����������,�#���0�03�7d�4��6���5�D�
S�^�
c� n��������	�"��$!�$F�k�r�����
��������,�;�C�O�.^�.��.��.�.�.I�.x���������	
�(�@�._���������
���	
��%�:�N�[�{�%��"�����
�
&�1�*J�*u������.�0( Y/z��?�0"E
hv��I(1r�#�"�(:I&c����$�"#=%a
������
%
3DW&w#�'��I/f���*�/�*7H@YO�"�
)A`u�-���
	$	 B	 c	7�	<�	9�	3
P
 o
�
�
�
�
�
�
#3"Cf+w�(���=OA[:��	��
"
2

;
F
b
s
"
"�
�
�
�
&�

%8
^$l
��*�"���!*1$M	r	|#�
���,�	�!�!#:^
p{����
����
-2Fy5�9�/�)D_u ���C�2DP`l/�.��-�(Fb���
��2.?.n���E�MT])n*�4�/�?(h%�A��JHV
����#��#!-Es5�)��"!/9Q)��&�<�C8<|D�$�;#H_5�,�$0B#b�&�/�#�(I>1�7��>M'k�5�5�6 7I '� *� .� *!;.!j!-�!2�!:�!6%".\"6�""�":�"" #/C#s#&�#6�#@�#7"$8Z$A�$/�$(% .%+O%+{%7�%D�%6$&4[&�&�&@�&"')2'3\'�'�'�'�'
�'(,	(+6(b(+r(�(�(�(�(		))))"5)"X) {)#�)�)�)�)#*>* \*1}* �*�*	�*�* +*,+0W+
�+�+�+�+�+�+�+,',=,X,"\,%,�,6�,
�,--3-
I-W-$`-�-�-%�-�-�-�-#�-."-.P.(i.$�.7�.�./8/>U/�/�/X�/070T0c0w0#�0�0�0!�0?1N1Ac1�1�1
�1	�1�1%�12&+2R2j2z2�2�2�2�2�2*�2G�2>3$]3$�3,�3�3�3	4(4'?4g4{4�4�4�4�4$�45*35)^5I�5,�5�5<6\6z6�6�60�63�6 +7OL7�7.�72�78,68>c8;�8+�8%
9&09.W9.�9(�9>�9<:Z:,z:1�:$�:.�:(-;V;i; �; �;&�;�;<<5<T<t<�<!�<*�<.�<'&=(N=.w=8�=0�=!>2>E>[>,n>,�>7�>"?#?)@?)j?-�?�?!�?�?@C/@1s@$�@�@
�@3�@-*AXA"xAC�A'�ABI&B,pB-�B"�B(�B$C!<C<^C>�C&�CND>PD,�D?�D!�DE=E[EoE(�E$�E6�E/F?F_F<{F2�F�F1�F,G&;G!bG�G.�G/�G%�G&#HJHiH!�H�H-�HE�H/IKI hI�I�I"�I�I�IJ/J(NJwJ�J�J7�J7�J)4K0^K0�K/�K/�K L??LIL�L�LM'M"FMiM�M�M6�M;�M#/N&SN!zNO�N0�NQOGoO�O&�O"�OP ?P`PxPC�PX�P_.Q�Q"�Q�Q,�Q*R=AR+R2�R%�R%S?*S#jS�S;�S)�SA
T/OTT�T�T"�TL�T+@U(lU-�U)�U+�UV-0V.^V�V$�V7�VWKW3jW�W%�W$�W!X#'X#KX#oX'�X2�X�X	Y&Y8DY$}Y1�Y�Y&�Y5Z)=Z%gZ�Z-�Z3�Z.[07[h['�[,�[5�[?\L\$h\#�\"�\8�\i
](w]%�]5�]3�]%0^+V^�^7�^7�^5_D_(`_�_�_-�_2�_3`$K`)p`D�`)�`+	a)5a)_a�a�a�a/�a5b%AbFgb6�b.�b+c+@c.lc�c�c0�c%d-.d+\d"�d!�d�d�dee'7e'_e+�e"�e3�e3
f>f\f.pf�f!�f#�f�fCgXgwg�g�g,�g�g$h+8h+dh1�h2�hC�h9iVipi�i�i�i�i/�i)-jWjJvj/�j�jk0'kXknk k'�k'�k�kl$&l)Kl&ul%�l�l&�l	m" m4Cm1xm!�m�m-�m%n?n;]n�n3�n:�n2(o&[o*�o"�o�o	�o�o,�o#p?p]pyp�p�p$�p�p'�p+&q+Rq'~q�q"�q'�q&r87r&pr�r�r#�r%�r%s5?sus$�s'�s�s�s�st"t9tWtot;�t�t�t�t#uH4u!}u3�u@�uv@v[v(tv�v�v�v�v�v�v�v/�v.w,:wgw	tw~w�w-�w�w�w�wxx$x?x[xdx3�x�x�x	�x�xyy-yGyWyhy}y�y
�y
�y�y	�y�y�y	z
z+z8zJzgz'{z�z�z�z	�z�z,�z	+{5{E{Q{e{~{(�{$�{"�{|9|P|&m|�|�|�|�|}}7}U}a}$q}�}�}�}�}�}4�}42~g~}~�~�~�~�~�~�~ -2%`������ �)�8�K�
c�q�����������؀5��#,�P�Y�
f�q�~�����
́!ځ��
��5�
I�W�
h�v�����łւ;�!�7�C�V�9q�����ʃ���'�>�O�"e�����
��"��-߄J
�X�s�������م-�.�M�i����6��!؆0��+�/K�{�������+·����
"�0�
N�\�c�}�����)Ȉ���8�H�
Z�e�o��P�E�
N�Y�f�:{���ϊ!��'-�
U�#c�+��,���&��3#�MW�1��0׌6�??�6�%��܍M�+3�_�v�������َ�����!�8�
H�
S�
^�
i�w�
����
��
��ˏҏ��
��$�
-�;�@�5R�����������ѐ'�

��0�=�C�O�a�i�
����'����ё��$�:�<�Z�"c�������ג1�&�9�M�`�|�H��Jԓ�&4�[�p���
��������ה���%�5<�5r�����Օ�
� �/�9A�){�#��!ɖ1�!�?�G�f�����������Ηݗ����
 �0.�,_�����	����
ؘ#�
�%�=�D�Z�c�
o�&z�"��
ęϙ�D�;+�<g�K�����/�A�U�Y�)e��� ��Ǜ���!�$�-8�-f�������$������**�!U�w���
��
����<֝6�6J�8��*��3�9�S�f���
������	��+ğ#�3�H�!_�������ˠ۠���1�G�-_�'��$���O��
v�(]@��![tw#3G���R�U��O�c����C,������DS���"�w�X)�M��}�y	i�
c�j����A0����K��v�����J���l5��Q��I&O������$:_9<+����ro����	&����36��{��J�@;o���|�}=���m�L��dH_��/��q�B�����Y��"��f�4P�o�x�;f�2@��*@r�����C	�J�{y�g�����sq��t8�U$5d��NS���7He��Iu�aR_��!-�Z%}j�}l�Qg����.&wH�[��`�]K	V��[���k����W'+X�G����>���bQX,���D#�^
�2v��`�%>x8Q������(��d��{��������e��)g���4���y9�,>1#��/���w�f��j
4���3LG���k�(�X��6��b�>��ym|
XI��h-�K�CU��/��hc�`�7����+�5w���o�7�h^������9\���*S3�TOK�I���a\i7S/��(Z�B������0~�m�V�F���DmR���U���S7�l�VnJ�;����]���d=�%q��~x�����8�-��_0?�M��F:����R�3��A4���n:1����z��V]���%���n���F_D
T����]��.��2z�C��D����z$����1}��;�?8��E���6JeZ��a�\�Q�{a��I���A��i����N����G���M����^�|N#���n��? \=�,��2e�P'�T�"l5�4qhW��~ ;�~F�������m�l
��i:��
-.���y'���L!����<�z�s<Bi�U������|������kL0�P�����^�O�&��?�WENp.�W�1Y��t����j��d�������:���c��MH=us��g�)���`�
��'��Z��b�����x���?��p���!�[6��YM�F^���������pYo�2(5�����[�#E��<����T��=��'�����r,�������f�-��� cBu�+\K��*P1����e�����v�H�krG+��p�a���E�N�R�"t����E!bh9|CxA����%b�L�T�{��g@��V��9��Y��q�u��r���&6�"�W�s/>�A�z<
�0kf��*	~�B���n����� u���8tP�������.Z���s��v$����`$������j� ���)�����*�p)			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Send failed.

Send failed. Trying to execute locally

Sending message to terminate child process.

Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

mark line  col file/text
shell returned 
syncing on items             dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   #   line   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (RET/BS: line, SPACE/b: page, d/u: half page, q: quit) (RET: line, SPACE: page, d: half page, q: quit) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " Adding BLOCK CONVERSION ERROR Command-line completion (^V/^N/^P) Copy %d of %d Definition completion (^D/^N/^P) Dictionary completion (^K/^N/^P) FAILED File name completion (^F/^N/^P) Hebrew INSERT Keyword Local completion (^N/^P) Keyword completion (^N/^P) LINE Path pattern completion (^N/^P) REPLACE REVERSE SELECT Tag completion (^]/^N/^P) Thesaurus completion (^T/^N/^P) VISUAL VREPLACE Whole line completion (^L/^N/^P) [Modified] [a] [w] ^X mode (^E/^Y/^L/^]/^F/^I/^K/^D/^V/^N/^P) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)
%2d %-5ld  %-34s  <none>
%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld more lines%ld substitutions%s Auto commands for "%s"%s is not a directory or a valid cscope database%s returning "%s"%s returning #%ld&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit&Open Read-Only
&Edit anyway
&Recover
&Quit
&Delete it&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'backupext' and 'patchmode' are equal'columns' is not 80, cannot execute external commands'commentstring' must be empty or contain %s'dictionary' option is empty'history' option is zero'readonly' option is set for "%.*s".
Do you wish to write anyway?'thesaurus' option is empty'winheight' cannot be smaller than 'winminheight''winwidth' cannot be smaller than 'winminwidth'(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--help		Show Gnome arguments--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server and exit--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-wait <files>  As --remote but wait for files to have been edited--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		print version information and exit-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			start in Farsi mode-H			start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		like -o but split vertically-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f			Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h			print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ":break without :while:continue without :while:else without :if:elseif without :if:endif without :if:endwhile without :while:if nesting too deep:while nesting too deep<%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGA preview window already existsANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAllAll cscope databases resetAll included files were foundAlready only one windowAmbiguous use of user-defined commandAppend FileArgument missing afterArgument must be positiveArgument requiredAt end-of-fileAt lineAttempt to open script file again: "Back at originalBackwards range givenBackwards range given, OK to swapBefore byte %ldBinary tag searchBotBreakpoint in "%s%s" line %ldBrowse classCalling shell to execute: "%s"Can't create file %sCan't find temp file for conversionCan't get temp file nameCan't make backup file (use ! to override)Can't open file %sCan't read file %sCan't read file for backup (use ! to override)Can't write to backup file (use ! to override)CancelCannot change term in GUICannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot create backup file (use ! to override)Cannot execute Cannot open NIL:
Cannot open for reading: "Cannot open for script output: "Cannot open termcap fileCannot set 'term' to empty stringCannot source a directory: "%s"Close error for backup file (use ! to override)Close failedCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCommand LineCommand abortedCommand failedCompilation: Compiler: Conversion with 'charconvert' failedCould not create cscope pipesCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %s
Current %slanguage: "%s"DirectionDirectoriesDo you really want to write to itDon't panic!DownE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE106: Unknown variable: "%s"E107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, use ! to replaceE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Undefined function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE174: Command already exists: use ! to redefineE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (use ! to override)E18: Unexpected characters before '='E190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: Warning: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (use ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E221: 'commentstring' is emptyE222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Can't load Zap font '%s'E235: Can't use font %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE242: Color name not recognized: %sE242: Missing color: %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE249: couldn't read VIM instance registry propertyE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E255: Too many signs definedE256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE260: cscope connection not foundE261: cscope connection %s not foundE262: error reading cscope connection %dE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_timestamp: Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu of that nameE32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE361: Crash intercepted; regexp too complex?E363: pattern caused out-of-stack errorE364: Library call failed for "%s()"E365: Failed to print PostScript fileE366: Invalid 'osfiletype' option - using TextE367: No such group: "%s"E36: Not enough roomE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (use ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E45: 'readonly' option is set (use ! to override)E46: Cannot set read-only variable "%s"E47: Error while reading errorfileE48: Not allowed in sandboxE49: Invalid scroll sizeE61: Nested %s*E62: Nested %s%cE64: %s%c follows nothingE72: Close error on swap fileE73: tag stack emptyE74: Command too complexE75: Name too longE76: Too many [E77: Too many file namesE78: Unknown markE79: Cannot expand wildcardsE80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Cannot go to buffer %ldE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (use ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - &Edit with single &VimEdits the selected file(s) with VimEmpty file name for '%' or '#', only works with ":p:h"End of functionEnd of sourced fileEnter encryption key: Enter nr of choice (<CR> to abort): Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to leave.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError creating process: Check if gvim is in your path!Error detected while processing %s:Evaluates to an empty stringExecuting %sExpressionExternal submatches:
File "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find NextFind string (use '\\' to find  a '\')Find symbolFind what:Font '%s' is not fixed-widthFont SelectionFont%d width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Garbage after optionGenerate docu forGreetings, Vim user!HelpHelp poor children in Uganda!Hit ENTER or type command to continueHit ENTER to continueHit end of paragraphI/O ERRORIllegal character <%s>Illegal character after <%c>Illegal componentIllegal file nameIllegal modeIllegal mouseshapeIllegal percentageIllegal register nameIllegal starting charInput LineInternal errorInterrupt: InterruptedInvalid argumentInvalid argument forInvalid argument: %sInvalid commandInvalid font(s)Invalid fontsetInvalid server id used: %sInvalid wide fontKeymap file not foundKeys don't match!Kill a connectionLinear tag searchLinking: Match exact word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing colonMissing commaMissing number after <%s>Must specify a ' valueNeed %s version %ld
Need Amigados version 2.04 or later
Need at least %d columnsNeed at least %d linesNo ! allowedNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo buffers were deletedNo buffers were unloadedNo buffers were wiped outNo fold foundNo included filesNo mapping foundNo marks setNo matchNo match: %sNo matching autocommandsNo more itemsNo mouse supportNo range allowedNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot a valid codepageNot allowed hereNot allowed in a modelineNot an editor commandNot found in termcapNumber required after =OKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOption not supportedOriginal file "%s"Overwrite existing file "%.*s"?Patch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading from stdin...Reading viminfo file "%s"%s%s%sRecovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRun MacroRunning in Vi compatible modeSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%.*s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelectionSend expression failed.
Sending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, this command is disabled: the Tcl library could not be loaded.Stack size increasesSwap file "Swap file already exists!Swap files found:Syntax error in %s{...}Tear off this menuTerminal entry not found in termcapTerminal entry not found in terminfoTesting the X display failedThanks for flying VimThe file was created on The only matchThe resource fork will be lost (use ! to override)This Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command" or "-c command" argumentsToo many edit argumentsTopTrailing charactersUnable to read block 0 from Unable to register a command server nameUnclosed expression sequenceUndoUnknownUnknown optionUnknown register type %dUntitledUpUsage: cstag <ident>Use ":gui" to start the GUIUse Vim version 3.0.
Use w or w>>Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Finished.
Vim: Reading from stdin...
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Entered other buffer unexpectedly (check autocommands)Warning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing viminfo file "%s"Xref has aXref referred byXref refers toXref used byYESZero countZero length string[CONVERSION ERROR][CR missing][Deleted][Device][Error List][Incomplete last line][NL found][NOT converted][New File][New file][New][No File][No file][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][string too long][unix format][unix]and run diff with the original file to check for changes)
at bottom of tag stackat top of tag stackattempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sby by Bram Moolenaar et al.calling %scan't delete OutputObject attributescan't read output of 'charconvert'can't select fontsetcan't select wide fontcannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %scomma requiredconnectedcontains unprintable charactercontinuing in %scould not source "%s"couldn't malloc
cs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closed
cscope connection closedcursor position outside bufferdefaulting to 'deleted block 1?digit expecteddon't quit the editor until the file is successfully written!duplicate cscope database not addederror list %d of %d; %d errorserror reading cscope connection %dexpressions disabled at compile timefatal error in cs_manage_matchesfile
filename / context / line
finished sourcing %sfreeing %ld linesfunction gvimext.dll errorhelpin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (use ! to override)keyboard interruptline %4ld:line %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelogoffmark not setmatch %dmatch %d of %dmaximal maximum number of cscope connections reachedmch_get_shellsize: not a console??
minimal new shell started
nono :source file name to substitute for "<sfile>"no autocommand buffer number to substitute for "<abuf>"no autocommand file name to substitute for "<afile>"no autocommand match name to substitute for "<amatch>"no cscope connectionsno cscope connections
no such bufferno such windowno syncingnot not found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command linereadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0stat(%s) error: %dstring cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stoo many itemstype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunbalanced groupsunknown cscope search typeunknown flag: unknown optionunknown vimOptionversion vim errorvim_SelFile: can't get current directoryvim_SelFile: can't get font %svim_SelFile: can't return to current directoryviminfo: %s in line: with (classic) GUI.with BeOS GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.without GUI.write error (file system full?)write error, conversion failedwritelines() requires list of stringsProject-Id-Version: vim-6.0
POT-Creation-Date: 2001-10-08 08:27-0700
PO-Revision-Date: 2002-02-06 22:29+0100
Last-Translator: Ji�� Pavlovsk� <jpavlovsky@mbox.vol.cz>
Language-Team: Czech <cs@li.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=cp1250
Content-Transfer-Encoding: 8bit
			  (nen� implementov�no)

	Naposledy nastavena z 

Argumenty:


pou�it�:
          datum zm�ny: 
         [nepou�iteln� na tomto po��ta�i]
         [nepou�iteln� s touto verz� Vim]
         n�zev po��ta�e: 
         u�ivatelsk� jm�no: 
        ID procesu : 
    Jm�no       Args Rozsah �plnost  Definice
   nebo
  # C�L tag        START ��dek  v souboru/textu
 skok ��dek sloupec soubor/text
# Historie %s (po��naje nejnov�j�� polo�kou):

# Seznam buffer�:

# Souborov� zna�ky:

# Historie zna�ek v souborech (po��naje nejnov�j�� polo�kou):

# Seznam skok� (po��naje nejnov�j�� polo�kou):

# Posledn� nahrazuj�c� �et�zec:
$
# Registry:

# glob�ln� prom�nn�:

(1) Soubor m��e b�t editov�n jin�m programem.
    Je-li tomu tak, pak si dejte pozor, aby jste po ulo�en� zm�n
    nem�li dv� r�zn� verze t�ho� souboru.

(2) Editace tohoto souboru byla p�eru�ena ne�ekan�m ukon�en�m programu.

(Zva�te ulo�en� tohoto souboru pod jin�m n�zvem

--- Automatick� p��kazy ---
--- Nastaven� glob�ln�ch voleb ---
--- Nastaven� lok�ln�ch voleb ---
--- Nab�dky ---
--- Volby ---
--- Registry ---
--- Znaky ---
--- P�edm�ty syntaxe ---
--- Polo�ky synchronizace syntaxe ---
--- K�dy termin�lu ---
--- Kl�vesy termin�lu ---
16 bitov� MS-DOS verze
32 bitov� verze pro MS Windows
P�ep�na�e pro gvim (Athena verzi):

P�ep�na�e pro gvim (GTK+ verzi):

P�ep�na�e pro gvim (Motif verzi):

P�ep�na�e pro gvim (RISC OS verzi):

velk� verze 
Nelze vytvo�it roury

nelze spustit shell 
Nelze spustit sh shell

Vol�n� fork selhalo

P��kaz ukon�en

p�elo�il 
Nalezen odkl�dac� soubor se jm�nem "
maxim�ln� verze
Pou�it� z�platy: 
16 bitov� verze pro MS Windows
16/32 bitov� GUI verze pro MS Windows
32 bitov� GUI verze pro MS Windows
32 bitov� verze pro MS Windows konzolu
MacOS X (unix) verze
MacOS X verze
MacOS verze
Mo�n� nedo�lo k ��dn�m zm�n�m, nebo Vim neaktualizoval odkl�dac� soubor.
Podrobn�j�� informace z�sk�te pomoc� "vim -h"

norm�ln� verze
RISC OS verze
P�ed�n� v�razu selhalo.

P�ed�n� selhalo. Zkou��m prov�st lok�ln�

Pos�l�m sign�l k ukon�en� synovsk�ho procesu.

mal� verze 
minim�ln� verze
Vim: chyba X11

VAROV�N�: Obsah p�vodn�ho souboru m��e b�t ztracen �i po�kozen

[bajt�] celkem uvoln�no-alokov�no %lu-%lu, vyu�ito %lu, maxim�ln� vyu�it� %lu

zna�ka ��dek  sloupec soubor/text
 n�vratov� hodnota shellu 
synchronizuji p�edm�ty             datum vytvo�en�:           vlastn�k:          [nelze otev��t]         [nelze p�e��st]         [nevypad� jako odkl�dac� soubor Vim]         [od Vim verze 3.0]         n�zev souboru:       -- ��dn� --
      NOV�J�� ne� odkl�dac� soubor!
      u�ivatelsk� exrc soubor: "     u�ivatelsk� vimrc soubor: "    Je-li tomu tak, pak pou�ijte ":recover" �i "vim -r     Pokud jste tak ji� u�inil, tak sma�te odkl�dac� soubor "    Ukon�ete program, nebo opatrn� pokra�ujte v editaci.
    ��dek=%ld id=%d jm�no=%s    syst�mov� soubor s menu: "    u�ivatelsk� gvimrc soubor: "   #   ��dek   V aktu�ln�m adres�i:
   V adres�i    Se zadan�m n�zvem:
   datum vytvo�en�:    n�zev po��ta�e:    syst�mov� vimrc soubor: "  # pri typ tag  (Ji� vyps�no)  druh� u�ivatelsk� exrc soubor: "  PODPORA LAD�N� Vlastnosti zahrnut� (+) a nezahrnut� (-):
 NENALEZENY  Pou��v�m tag s p�smeny jin� velikosti!  implicitn� hodnota $VIM:"  syst�mov� gvimrc soubor: " # pid    n�zev datab�ze                      p�edpona cesty
(P�eru�eno) (RET/BS: ��dek, MEZERN�K/b: str�nka, d/u: 0.5 str�nky, q: konec) (RET: ��dek, MEZERN�K: str�nka, d: 0.5 str�nky, q: konec) (v�etn� ji� vypsan�ch shod) (insert) (insert) Rolov�n� (^E/^Y) (lang) (��dek smaz�n) (paste) (replace) (replace) Rolov�n� (^E/^Y) (st�le aktivn�) (vreplace) druh� u�ivatelsk� vimrc soubor: " t�et� u�ivatelsk� vimrc soubor: "P�id�v�m BLOK CHYBA P�EVODU Dopl�ov�n� p��kazov� ��dky (^I/^N/^P) Kopie %d z %d Dopl�ov�n� definic (^D/^N/^P) Dopl�ov�n� podle slovn�ku (^K/^N/^P) se nezda�ilo Dopl�ov�n� n�zv� soubor� (^F/^N/^P) hebrejsk� INSERT Lok�ln� dopl�ov�n� kl��ov�ch slov (^N/^P) Dopl�ov�n� kl��ov�ch slov (^N/^P) �DEK Dopl�ov�n� vzoru cest (^N/^P) REPLACE REVERSE SHODY Dopl�ov�n� tag� (^I/^N/^P) Dopl�ov�n� podle tezauru (^T/^N/^P) VIZU�LN� VREPLACE Dopl�ov�n� cel�ch ��dk� (^L/^N/^P) [Zm�n�n�] [p] [u] ^X re�im (^E/^Y/^L/^]/^F/^I/^K/^D/^V/^N/^P) p�ipojen nelze pou��t na tomto po��ta�i.
 nelze pou��t s touto verz� Vim.
  implicitn� hodnota $VIMRUNTIME: " ve Win32s re�imu informace typ soubor
 ��dk� p�ed za��tkem zna�ky na %ld ��dc�ch na jednom ��dku nebo v�ce n�vratov� hodnota shellu
vim [p�ep�na�e]  s OLE podporou ulo�en"
"
    a tato zpr�va se ji� nebude objevovat.
"
    pro odstran�n� zm�n (viz ":help recovery)".
" ji� existuje!# Tento viminfo soubor byl vytvo�en editorem Vim %s.
# Hodnota volby 'encoding' v dob� ulo�en� tohoto souboru
# Pokud budete opatrn�, m��ete jej upravovat.

%-5s: %-30s (Pou�it�: %s)
%2d %-5ld  %-34s  <��dn�>
%3d  %s %s  ��dek %ldPo�et smazan�ch buffer�: %dPo�et deaktivovan�ch buffer�: %dPo�et zahozen�ch buffer�: %dpo�et soubor� pro editaci: %d
Je�t� zb�vaj� soubory k editaci (%d). Chcete p�esto ukon�it editor?%d z %d editov�no��dk�: %ld;po�et zm�n: %ld%ld znak�, po�et smazan�ch ��dk�: %ldPo�et ��dk�: %ld (posunut�ch pomoc� %s %d-kr�t)Po�et ��dk�: %ld (posunut�ch jednou pomoc� %s)��dk�: %ld --%d%%--po�et ��dek se zm�n�nou velikost� p�smen: %ldPo�et filtrovan�ch ��dk�: %ldpo�et odsazen�ch ��dk�: %ldPo�et p�esunut�ch ��dk�: %ldpo�et ��dk� k odsazen�: %ldpo�et zkop�rovan�ch ��dk�: %ld%ld ��dk�, po�et nov�ch ��dk�: %ld%ld nahrazen�%s automatick� p��kazy pro "%s"%s nen� ani adres�em ani spr�vnou cscope datab�z�dokon�eno prov�d�n� %s. N�vratov� hodnota "%s"dokon�eno prov�d�n� %s. N�vratov� hodnota #%ld&OK
&Zru�it&OK
&Nahr�t soubor&Ok&Otev��t pouze pro �ten�
&Pokra�ovat v editaci
O&bnovit soubor
&Konec&Otev��t pouze pro �ten�
&Pokra�ovat v editaci
O&bnovit soubor
&Konec
&Smazat&Ano
&Ne&Ano
&Ne
&Zru�it&Ano
&Ne
&Ulo�it v�e
Zahodit &v�e
&Zru�it' nen� zn�m. Dostupn� vestav�n� termin�ly:volby 'backupext' a 'patchmode' maj� stejnou hodnotu'columns' nen� 80, nelze spustit extern� p��kazvolba `commentstring` mus� b�t bu� pr�zdn� nebo nastaven� na %svolba 'dictionary' je pr�zdn�'volba 'history' je nastavena na nuluPro "%.*s" je nastavena volba 'readonly'.
P�ejete si ji potla�it?volba 'thesaurus' je pr�zdn�hodnota volby 'winheight' nesm� b�t men�� ne� hodnota volby 'winminheight'hodnota volby 'winwidth' nesm� b�t men�� ne� hodnota volby 'winminwidth'(%d/%d)%s%s: (+%ld pro BOM)(P�eru�eno) (Chybn�)+			Nastav� kurzor na konec souboru+-%s%3ld ��dk�:po�et ��dk� v z�hybu: %3ld+<��dek>		Nastav� kurzor na <��dek>+reverse		Nepou�ije reverzn� barvy (tak� +rv),
nebo byl soubor po�kozen.-                    ��st text ze standardn�ho vstupu--			Mohou n�sledovat pouze n�zvy soubor�-- Pokra�ov�n� ---- Hled�m...--- Vlo�en� soubory--Vymaz�no----Buffer neobsahuje ��dn� ��dek----cmd <p��kaz>	Po nahr�n� prvn�ho souboru vykon� <p��kaz>--columns <po�et>	<po�et> sloupc� na okno--help		Vyp�e Gnome p�ep�na�e--noplugin		Nenahraje 'plugin' skripty--remote <soubory>	Edituje <soubory> na Vim serveru a skon��--remote-expr <v�raz>	Provede <v�raz> na serveru a zobraz� v�sledek--remote-send <kl�vesy>	P�ed� <kl�vesy> Vim serveru a skon��--remote-wait <soubory> Jako --remote, ale �ek� na soubory k editaci--rows <po�et>	<po�et> ��dk� na okno--serverlist		Vyp�e seznam dostupn�ch Vim server� a skon��--servername <jm�no>	Za�le serveru <jm�no>/stane se Vim serverem <jm�no>--socketid <xid>	Otev�e Vim uvnit� jin�ho GTK widgetu--version		vyp�e informace o verzi a skon��-C			Kompatabiln� s Vi: 'compatible'-D			Lad�c� re�im-F			nastartuje ve Farsi re�imu-H			nastartuje v hebrejsk�m re�imu-L			Stejn� jako -r-M			Zm�ny (ukl�d�n� soubor�) zak�z�ny-N			Kompatibilita s Vi vypnuta: 'nocompatible'-O[N]		Jako -o but split vertically-R			Re�im pouze_pro_�ten� (jako "view")-S <sezen�>		Po nahr�n� prvn�ho souboru vykon� p��kazy v souboru <sezen�>-T <termin�l>	Nastav� typ termin�lu na <termin�l>-U <gvimrc>		Pou�ije <gvimrc> m�sto jak�hokoliv .gvimrc-V[N]		�rove� v�pisu hl�ek-W <skript>		Ulo�� v�echny napsan� p��kazy do souboru <skript>-X			Nep�ipoj� se k X serveru-Z			Omezen� re�im (stejn� jako "rvim")-b			Bin�rn� re�im-background <barva>	Nastav� <barvu> pozad� (tak� -bg)-boldfont <p�smo>	Nastav� <p�smo> pro zv�razn�n� text-borderwidth <��ka>	Nastav� <��ku> okraj� (tak� -bw)-c <p��kaz>		Po nahr�n� prvn�ho souboru vykon� <p��kaz>-d			Diff re�im (stejn� jako "vimdiff")-dev <za��zen�>		Pou��t <za��zen�> pro I/O-display <display>	Spust� vim na dan� X-server-display <display>	Spust� vim na <display>-display <display>	Spust� vim na <display> (tak� --display)-v			Ex m�d (stejn� jako "ex")-f			Nebude pou��vat newcli pro otev�en� okna-f			Pop�ed�: p�i startu GUI se neodd�l� od shellu-font <p�smo>		Nastav� <p�smo> norm�ln�ho textu (tak� -fn)-foreground <barva>	Nastav� <barvu> pop�ed� (tak� -fg)-g			spustit v GUI re�imu (stejn� jako "gvim")-geometry <geometrie>	Nastav� <geometrii> (tak� -geom)-h			Vyp�e tuto n�pov�du a skon��-i <viminfo>		Pou�ije <viminfo> m�sto jak�hokoliv .viminfo-iconic		Spust� vim minimalizovan�-italicfont <p�smo>	Nastav� <p�smo> pro kurz�vu-l			Lisp re�im-m			Zm�ny (ukl�d�n� soubor�) zak�z�ny-menuheight <v��ka>	Nastav� <v��ku> nab�dky (tak� -mh)-n			Nebude vytv�et odkl�dac� soubor, bude pou��vat pouze pam�-name <n�zev>		Pou�ije resource jako by vim m�l <n�zev>-o[N]		Otev�e N oken (implicitn� jedno pro ka�d� soubor)-q [chybov� soubor]  editovat soubor na m�st� v�skytu prvn� chyby-r			Vyp�e seznam odkl�dac�ch soubor� a skon��-r n�zev souboru	Obnov� p�eru�en� sezen�-register		p�ihl�sit gvim na OLE-reverse		Pou�ije reverzn� barvy (tak� -rv)-s			Tich� (d�vkov�) re�im (pouze pro "ex")-s <skript>		Na�te p��kazy norm�ln�ho m�du ze <skriptu>-scrollbarwidth <��ku> Nastav� <��ku> posunovac� li�ty (tak�: -sw)-t TAG          editovat soubor na m�st� definice TAGU-u <vimrc>		Pou�ije <vimrc> m�sto jak�hokoliv .vimrc-register		odhl�sit gvim z OLE-v			Vi m�d (stejn� jako "vi")-w <skript>		P�ipoj� v�echny napsan� p��kazy do souboru <skript>-x			Editace za�ifrovan�ch soubor�-xrm <resource>	Nastav� zadan� <resource>-v			Snadn� re�im (stejn� jako "evim", ��dn� m�dy )...(kr�ceno)Po�et smazan�ch buffer�: 1Po�et deaktivovan�ch buffer�: 1Po�et zahozen�ch buffer�: 1po�et zm�n: 11 znakPo�et ��dk� posunut�ch pomoc� %s %d-kr�t : 1po�et ��dk� posunut�ch jednou pomoc� %s : 1��dk�: --%d%%--po�et ��dek se zm�n�nou velikost� p�smen: 1po�et ��dk� k odsazen�: 1po�et smazan�ch ��dk�: 1po�et p�esunut�ch ��dk�: 1po�et zkop�rovan�ch ��dk�: 11 ��dek, po�et nov�ch ��dk�: 11 nahrazen�druh� u�ivatelsk� gvimrc soubor: "t�et� u�ivatelsk� gvimrc soubor: ":break bez odpov�daj�c�ho :while:continue bez odpov�daj�c�ho :while:else bez odpov�daj�c�ho :if:elseif bez odpov�daj�c�ho :if:endif bez odpov�daj�c�ho :if:endwhile bez odpov�daj�c�ho :whilevno�en� :if je p��li� hlubok�vno�en� :while je p��li� hlubok�<%s>%s%s  %d,  �estn�ctkov� %02x,  osmi�kov� %03o<buffer objekt (smaz�n) na %8lX><nelze otev��t> <okno %d><objekt okna (smaz�n) na %.8lX><objekt okna (nezn�m�) na %.8lX>od ??? po ???END mohou b�t ��dky pom�chan�od ??? po ???END mohou b�t vlo�en�/smazan� ��dky???CHYB� BLOK???PR�ZDN� BLOK???KONEC???CHYBN� PO�ET �DK�???CHYB�J�C� �DKY???CHYB� MNOHO �DK�Okno n�hledu ji� existujeANCHOR_BUF_SIZE je p��li� mal�.P�idat novou datab�ziP�id�na cscope datab�ze %sV�eV�echny cscope datab�ze resetov�nyV�echny vlo�en� soubory byly nalezenyJi� existuje pouze jedno oknoNejednozna�n� pou�it� u�ivatelsky definovan�ho p��kazuUlo�it souborChyb� argument poArgument mus� b�t kladn�Je vy�adov�n argumentKonec souboruNa ��dkuPokus o op�tovn� otev�en� skriptu: "V�choz� podobaZad�n zp�tn� rozsahZad�n zp�tn� rozsah. Prohodit hraniceP�ed bajtem %ldBin�rn� hled�n� taguKonecBod p�eru�en� v "%s%s" na ��dku %ldProhl�et classSpou�t�m p��kaz "%s" pomoc� shelluNelze vytvo�it soubor %sNelze nal�zt do�asn� soubor pro konverziNelze z�skat n�zev do�asn�ho souboruNelze vytvo�it z�lo�n� soubor (pou�ijte ! pro vynucen�)Nelze otev��t soubor %sNelze ��st soubor %sNelze na��st soubor pro z�lohu (pou�ijte ! pro vynucen�)Nelze zapisovat do z�lo�n�ho souboru (pou�ijte ! pro vynucen�)Zru�itV GUI nelze m�nit termNelze se p�ipojit k SNiFF+. Zkontrolujte prom�nn� (sniffemacs mus� b�t)uvedena v $PATH.
 Nelze vytvo�it Nelze vytvo�it z�lo�n� soubor (pou�ijte ! pro vynucen�)Nelze spustit Nelze otev��t NIL:
Nelze otev��t pro z�pis: "Nelze otev��t pro v�stup skriptu: "Nelze otev��t termcapvolba 'term' nem��e b�t pr�zdn�nelze interpretovat adres�: "%s"Chyba p�i uzav�r�n� z�lo�n�ho souboru (pou�ijte ! pro vynucen�)Vol�n� close selhaloSloupec %s z %s; ��dek %ld z %ld; Slovo %ld z %ld; Byte %ld z %ldp��kazov� ��dkyP��kaz p�eru�enP��kaz selhalP�eklad: P�eklada�: Konverze s 'charconvert' se nezda�ilanelze vytvo�it cscope rouryNelze nastavit ukazatele funkc� na DLLNelze na��st vim32.dll!Cscope tag: %s
Aktu�ln� %sjazyk: "%s"Sm�rAdres�eChcete jej opravdu ulo�itNepanika�te!Dol�E100: To byl posledn� buffer v diff re�imuE101: V diff re�imu jsou v�ce ne� dva buffery. Nev�m, kter� m�m pou��t.E102: Nelze nal�zt buffer "%s"E103: Buffer "%s" nen� v diff re�imuE104: digraph nesm� obsahovat EscapeE105: :loadkeymap mimo interpretovan� souborE106: Nezn�m� prom�nn�: "%s"E107: Chyb� z�vorky: %sE108: Prom�nn� "%s" neexistujeE109: Po '?' chyb� ':'E10: po \ by m�l n�sledovat /. ? nebo &E110: Chyb�j�c� ')'E111: Chyb�j�c� ']'E112: Chyb� jm�no volby: %sE113: Nezn�m� volba: %sE114: Chyb� uvozovky: %sE115: Chyb� uvozovky: %sE116: Chybn� argumenty pro funkci %sE117: Nezn�m� funkce: %sE118: P��li� mnoho argument� pro funkci %sE119: P��li� m�lo argument� pro funkci %sE11: Chyba v okn� p��kazov� ��dky; <CR> pro spu�t�n�, CTRL-C pro ukon�en�E120: Pou�it� <SID> mimo kontext skriptu: %sE121: Nedefinovan� prom�nn�: %sE122: Funkce %s ji� existuje. Pou�ijte ! pro jej� nahrazen�.E123: Nedefinovan� funkce: %sE124: Chyb� '(': %sE125: Nep��pustn� argument: %sE126: Chyb� :endfunctionE127: Nelze p�edefinovat funkci %s: je pou��v�naE128: N�zev funkce mus� za��nat velk�m p�smenem: %sE129: Je vy�adov�no jm�no funkceE12: P��kaz nen� z exrc/vimrc v aktu�ln�m adres�i �i p�i hled�n� tagu povolen.E130: Nedefinovan� funkce: %sE131: Nelze smazat funkci %s: je ji� pou��v�naE132: Zano�en� funkce je hlub�� ne� 'maxfuncdepth'E133: :return mimo funkciE134: Nelze p�esunout ��dky na p�vodn� m�stoE135: Automatick� p��kazy *Filter* nesm� m�nit aktu�ln� bufferE136: viminfo: p��li� mnoho chyb, p�eskakuji zbytek souboruE137: do viminfo souboru %s nelze zapisovatE138: Nelze ulo�it viminfo soubor %s!E139: Soubor je nahr�n v jin�m bufferuE13: Soubor existuje (pou�ijte ! pro vynucen�)E140: Pou�ijte ! pro ulo�en� ne�pln�ho bufferuE141: ��dn� n�zev souboru pro buffer %ldE142: Soubor nebyl ulo�en: Ukl�d�n� je zak�z�no volbou 'write'E143: Automatick� p��kazy neo�ek�van� smazaly nov� buffer %sE144: ne��seln� argument pro :zE145: rvim nepovoluje pou�it� p��kaz� shelluE146: Regul�rn� v�razy nesm� b�t odd�leny p�smenyE147: :global nelze volat rekurzivn�E148: U p��kazu 'global' chyb� regul�rn� v�razE149: Lituji, pro %s nen� ��dn� n�pov�daE14: Chybn� adresaE150: %s nen� adres�emE152: Nelze otev��t %s pro z�pisE153: Nelze otev��t %s pro z�pisE154: Duplicitn� tag "%s" v souboru %sE155: Nezn�m� volba: %sE156: Chyb� jm�no volbyE157: Chybn� ID volby: %ldE158: chybn� jm�no bufferu: %sE159: Chyb� identifik�tor volbyE15: Chybn� v�raz: %sE160: Nezn�m� volba p��kazu: %sE161: Bod p�eru�en� nenalezen: %sE162: Buffer "%s" obsahuje neulo�en� zm�nyE163: Pro editaci byl zad�n pouze jeden souborE164: P�ed prvn� soubor nelze p�esko�itE165: Za posledn� soubor nelze p�esko�itE166: Nelze otev��t p�ipojen� soubor pro z�pisE167: :scriptencoding pou�ito mimo interpretovan� souborE168: :finish pou�ito mimo interpretovan� souborE169: P��kaz je p��li� rekurzivn�E16: Chybn� rozsahE170: Chyb� :endwhileE171: Chyb� :endifE172: P��pustn� je pouze jeden n�zev souboruE173: Je�t� zb�vaj� soubory k editaci (%ld).E174: P��kaz ji� existuje: pou�ijte ! pro p�edefinov�n�E175: Nebyly zad�ny ��dn� atributyE176: Chybn� po�et argument�E177: Opakov�n� nem��e b�t zad�no dvakr�tE178: Chybn� implicitn� hodnota pro po�etE179: chybn� implicitn� hodnota pro opakov�n�E17: "%s" je adres�emE180: Chybn� hodnota dopln�n�: %sE181: Chybn� atribut: %sE182: Chybn� jm�no p��kazuE183: U�ivatelsky definovan� p��kazy mus� za��nat velik�m p�smenem.E184: U�ivatelsky definovan� p��kaz %s neexistujeE185: Nelze nal�zt barevn� sch�ma %sE186: ��dn� p�edchoz� adres�E187: Nezn�m�E188: Na t�to platform� nelze um�st�n� okna zjistitE189: "%s" existuje (pou�ijte ! pro vynucen�)E18: Neo�ek�van� znaky p�ed '='E190: Nelze otev��t "%s" pro z�pisE191: Argumentem m��e b�t pouze p�smeno nebo prav� �i lev� apostrofE192: Vno�en� :normal je p��li� hlubok�E193: :endfunction mimo funkciE194: ��dn� alternativn� n�zev souboru, kter�m by bylo mo�n� nahradit '#'E195: Nelze otev��t pro �ten� viminfo souborE196: V t�to verzi nejsou sp�e�ky podporov�nyE197: Nelze nastavit jazyk na "%s"E198: cmd_pchar p�ekra�uje d�lku p��kazuE199: Smaz�no aktivn� okno �i bufferE19: Zna�ka m� chybn� ��slo ��dkuE200: *ReadPre automatick� p��kazy u�inily soubor ne�iteln�mE201: *ReadPre automatick� p��kazy nesm� m�nit aktu�ln� bufferE202: Po konverzi je soubor ne�iteln�!E203: Automatick� p��kazy smazaly �i deaktivovaly buffer, kter� m�l b�t ulo�enE204: Automatick� p��kaz ne�ekan�m zp�sobem zm�nil po�et ��dk�E205: patchmode: nelze ulo�it p�vodn� souborE206: patchmode: nelze zapisovat do pr�zdn�ho p�vodn�ho souboruE207: Nelze smazat z�lo�n� souborE208: Chyba p�i z�pisu do "%s"E209: Chyb p�i uzav�r�n� "%s"E20: nen� nastavenaE210: Chyba p�i �ten� "%s"E211: wa1: soubor "%s" ji� nen� dostupn�E212: Nelze otev��t soubor pro z�pisE213: Nelze p�ev�st (pou�ijte ! pro z�pis bez p�evodu)E214: Nelze naj�t do�asn� temp soubor pro z�pisE215: Nep��pustn� znak po *: %sE216: Ud�lost %s neexistujeE217: Automatick� p��kazy nelze spustit pro V�ECHNY ud�lostiE218: vno�en� automatick�ho p��kazu p��li� hlubok�E219: Chyb� {.E21: Nelze m�nit, je nastavena volba 'modifiable'E220: Chyb� }.E221: volba 'commentstring' je pr�zdn�E222: P�idat do bufferu pro �ten�E223: rekurzivn� mapov�n�E224: pro %s ji� glob�ln� zkratka ji� existujeE225: pro %s ji� glob�ln� mapov�n� ji� existujeE226: pro %s ji� zkratka ji� existujeE227: pro %s ji� mapov�n� ji� existujeE228: makemap: nep��pustn� m�dE229: Nelze spustit GUIE22: Skript vno�en p��li� hlubokoE230: Nelze ��st z "%s"E231: volba 'guifontwide' je chybn� nastavenaE232: BalloonEval nelze vytvo�it se zpr�vou a z�rove� zp�tn�m vol�n�mE233: nelze otev��t displayE234: Nezn�m� sada p�sem: %sE235: Nelze na��st Zap font '%s'E235: Nelze pou��t font %sE235: Nezn�m� p�smo: %sE236: P�smo "%s" nem� pevnou ��kuE237: Nelze zvolit tisk�rnuE238: Chyba tisku: %sE239: Neplatn� text volby: %sE23: ��dn� alternativn� souborE240: Neexistuje p�ipojen� k Vim serveruE241: Nelze p�edat do %sE242: Nezn�m� jm�no barvy: %sE242: Chyb� barva: %sE243: Argument nepodporov�n: "-%s"; Pou�ijte OLE verzi.E244: Nep��pustn� jm�no znakov� sady "%s" ve fontu "%s"E245: Nep��pustn� znak '%c' ve fontu "%s"E246: FileChangedShell autocommand zru�il bufferE247: Neexistuje registrovan� server jm�nem "%s"E248: Selhalo zasl�n� p��kazu ur�en�mu programuE249: nelze ��st VIM instanci registry propertyE24: Takov� zkratka neexistujeE250: p�sma pro n�sleduj�c� znakov� sady chyb� v sad� p�sem %s:E251: VIM instance registry property byla �patn� vytvo�enaa byla smaz�na!E252: n�zev sady p�sem: %sE253: n�zev sady p�sem: %s
E254: nelze alokovat barvu %sE255: Chyba -- nelze p�e��st sign data!E255: Nastaveno p��li� mnoho volebE256: CYBA Hangul automatuE257: cstag: tag nenalezenE258: Nelze p�edat klientoviE259: cscope hled�n� %s vzorku %s nena�lo ��dnou shoduE25: Nelze pou��t GUI: nebylo zapnuto p�i p�ekladu programuE260: connection spojen� nenalezenoE261: connection spojen� %s nenalezenoE262: p�i �ten� cscope spojen� %dE263: Lituji, tento p��kaz je deaktivov�n; knihovnu jazyka Python nelze nahr�t.E264: Python: chyba p�i inicializaci I/O objekt�E266: Lituji, ale tento p��kaz je deaktivov�n; knihovnu jazyka Ruby nelze nahr�t.E26: nelze pou��t hebrejsk� re�im:  nebyl zapnut p�i p�ekladu programu
E273: nezn�m� longjmp stav %dE274: Sniff: Chyba p�i �ten�. OdpojenoE275: Nezn�m� po�adavek SNiFF+: %sE276: Chybn� p�ipojen� k SNiFF+E277: Nelze ��st odpov�� serveruE278: SNiFF+ nep�ipojenE279: Nen� SNiFF+ bufferE27: Nelze pou��t farsi re�im:  nebyl zapnut p�i p�ekladu programu
E280: TCL FATAL ERROR: reflist po�kozen!? Oznamte, pros�m, tuto chybu na vim-dev@vim.orgE281: TCL CHYBA: n�vratov� k�d nen� cel� ��slo!? Oznamte, pros�m, tuto chybu na vim-dev@vim.orgE282: Nelze ��st z "%s"E283: "%s" nevyhovuj� ��dn� zna�kyE284: Nelze nastavit IC hodnotyE285: Nepoda�ilo se vytvo�it vstupn� kontextE286: Nepoda�ilo se otev��t vstupn� metoduE287: Varov�n�: likvida�n� zp�tn� vol�n� nelze nastavit na IME288: vstupn� metoda nepodporuje ��dn� stylE289: vstupn� metoda nepodporuje m�j 'preedit' typE28: Skupina zv�razn�n� %s neexistujeE290: Nadbodov� styl vy�aduje fontsetE291: M�te GTK+ verze star�� ne� 1.2.3. Stavov� plocha vypnuta.E292: Server vstupn�ch metod neb��E293: blok nebyl zamknutE294: Chyba posunu ukazov�tka p�i �ten� odkl�dac�ho souboruE295: Chyba p�i �ten� odkl�dac�ho souboruE296: Chyba posunu ukazov�tka p�i ukl�d�n� do odkl�dac�ho souboruE297: Chyba p�i ukl�d�n� do odkl�dac�ho souboruE298: Nelze z�skat blok 0?E298: Nelze z�skat blok 1?E298: nelze z�skat blok 2?E29: Zat�m nen� ��dn� vlo�en� textE300: Odkl�dac� soubor ji� existuje! (N�kdo hackujep�es nastra�en� symlink?)E301: J�je, odkl�dac� soubor byl ztracen!!!E302: Nelze p�ejmenovat odkl�dac� souborE303: Nelze otev��t odkl�dac� soubor pro "%s"E304: ml_timestamp: nelze z�skat blok 0??E305: Odkl�dac� soubor pro %s nebyl nalezenE306: Nelze otev��t %sE307: %s se nezd� b�t odkl�dac�m souborem VimE308: Varov�n�: P�vodn� soubor mohl b�t zm�n�nE309: Nelze ��st blok 1 z %sE30: ��dn� p�edchoz� p��kazov� ��dkaE310: ID bloku 1 je chybn� (je %s odkl�dac�m souborem?)E311: Obnova p�eru�enaE312: V pr�b�hu obnovy do�lo k chyb�m; zkontrolujte ��dky za��naj�c� na ???E313: Nelze zachovat - odkl�dac� soubor neexistuje.E314: Uchov�n� se nezda�iloE315: ml_get: chybn� ��slo ��dku: %ldE316: ml_get: nelze nal�zt ��dek %ldE317: chybn� id ukazatele na blokE317: chybn� id ukazatele na blok 2E317: chybn� id ukazatele na blok 3E317: chybn� id ukazatele na blok 4E318: Aktualizov�no p��li� mnoho blok�?E319: P��kaz nen� t�to verzi bohu�el implementov�nE31: ��dn� takov� mapov�n�E320: Nelze nal�zt ��dek %ldE321: Nelze znovuotev��t "%s"E322: po�et ��dk� mimo rozsah: %ld > celkov� po�et ��dk�E323: chybn� po�et ��dk� v bloku %ldE324: Nelze otev��t v�stupn� PostScriptov� souborE325: POZORE326: P��li� mnoho odkl�dac�ch soubor�E327: ��sti cesty k p�edm�tu nab�dky nen� podnab�dkouE328: Nab�dka existuje pouze v jin�m m�duE329: Nab�dka tohoto jm�na neexistujeE32: ��dn� n�zev souboruE330: Cesta nab�dkou nesm� v�st do podnab�dkyE331: Polo�ky nab�dky nelze p�id�vat p��mo na li�tuE332: Odd�lova� nesm� b�t ��st� cesty nab�dkouE333: Cesta nab�dkou mus� v�st k polo�ce nab�dkyE334: Vzor nenalezen: %sE335: V %s m�du nen� nab�dka definov�naE336: Cesta nab�dkou mus� v�st do podnab�dkyE337: Nab�dka nenalezena - zkontrolujte n�zvy nab�dekE338: Lituji, ale konzolov� verze nepodporuje prohl�e� soubor�E339: Vzor je p��li� dlouh�E33: ��dn� p�edchoz� regul�rn� v�razE340: ��dek se st�v� p��li� dlouh�mE341: Vnit�n� chyba: lalloc(%ld, )E342: Nedostatek pam�ti! (pot�ebuji alokovat bajt�: %lu)E343: Chybn� cesta: '**[��slo] mus� b�t bu� na konci cesty, nebo mus� b�t n�sledov�no'%s. Viz :help path.E344: Adres� "%s" nelze v cdpath nal�ztE345: Soubor "%s" nelze v path nal�ztE346: ��dn� dal�� adres� "%s" nebyl v cdpath nalezenE347: ��dn� dal�� soubor "%s" nebyl v cest� nalezenE348: pod kurzorem nen� ��dn� �et�zecE349: pod kurzorem nen� ��dn� identifik�torE34: ��dn� p�edchoz� p��kazE350: pomoc� aktu�ln� 'foldmethod' nelze vytvo�it z�hybE351: pomoc� aktu�ln� 'foldmethod' nelze vytvo�it z�hybE352: pomoc� aktu�ln� 'foldmethod' nelze mazat z�hybyE353: Registr %s je pr�zdn�E354: '%s' nen� p��pustn� jm�no registruE355: Nezn�m� volba: %sE356: get_varp CHYBAE357: 'langmap': pro %s chyb� vyhovuj�c� znakE358: 'langmap': nadbyte�n� znaky po st�edn�ku: %sE359: Nastavov�n� re�imu obrazovky nen� podporov�noE35: ��dn� p�edchoz� regul�rn� v�razE360: Nelze spustit shell s parametrem -fE361: Zachyceno p�ete�en� z�sobn�ku: p��li� slo�it� regul�rn� v�raz?E363: vzorek zp�sobil p�ete�en� z�sobn�kuE364: Vol�n� knihovn� funkce "%s()" selhaloE365: Selhal tisk PostScriptov�ho souboruE366: Neplatn� 'osfiletype' - pou�it TextE367: Skupina "%s" neexistujeE36: Nedostatek m�staE371: P��kaz nen� k dispoziciE372: P��li� mnoho %%%c ve form�tovac�m �et�zciE373: Neo�ek�van� v�skyt %%%c ve form�tovac�m �et�zciE374: Ve form�tovac�m �et�zci chyb� ]E375: %%%c Nepodporovan� form�tov� specifikace ve form�tovac�m �et�zciE376: Nep��pustn� %%%c v prefixu form�tovac�ho �et�zceE377: Nep��pustn� %%%c ve form�tovac�m �et�zciE378: 'errorformat' neobsahuje ��dn� vzorekE379: Chyb�j�c� nebo pr�zdn� n�zev adres�eE37: Neulo�en� zm�ny (pou�ijte ! pro vynucen�)E380: Konec quickfix seznamuE381: Za��tek quickfix seznamuE382: Nelze ulo�it, je nastavena volba 'buftype'E383: Nep��pustn� hledan� �et�zec: %sE384: hledan� dos�hlo za��tku bez nalezen� %sE385: hledan� dos�hlo konce bez nalezen� %sE386: Po ';' o�ek�v�m '?' nebo '/'E387: Shoda je na aktu�ln�m ��dkuE388: Nelze nal�zt definiciE389: Nelze nal�zt vzorekE38: Nulov� argumentE390: nep��pustn� argument: %sE391: Syntaktick� sestava %s neexistujeE392: Syntaktick� sestava %s neexistujeE393: group[t]here nesm� b�t na tomto m�st�E394: Pro %s chyb� polo�ka regionuE395: obsahuje argumenty, kter� zde nejsou povolenyE396: obsahuje argumenty, kter� zde nejsou povolenyE397: Vy�adov�n n�zev souboruE398: Chyb� '=': %sE399: P��li� m�lo argument�: oblast syntaxe %sE39: O�ek�v�no ��sloE400: Nebyla zad�na ��dn� sestavaE401: Odd�lova� vzorku %s nenalezenE402: Chyba za vzorkem %sE403: synchronizace syntaxe: vzorek pokra�ov�n� ��dk� zad�n dvakr�tE404: nep��pustn� argument: %sE405: Chyb� rovn�tko: %sE406: Pr�zdn� argument: %sE407: %s zde nen� povolenoE408: %s mus� b�t prvn� v 'contains' seznamuE409: Nezn�m� n�zev skupiny: %sE40: Nelze otev��t chybov� soubor %sE410: chybn� pod�azen� p��kaz :syntax : %s E411: skupina zv�razn�n� %s nebyla nalezenaE412: P��li� m�lo argument�: ":highlight link %s"E413: P��li� mnoho argument�: ":highlight link %s"E414: skupina je nastavena, odkaz na zv�raz�ovac� skupinu ignorov�nE415: ne�ekan� rovn�tko : %sE416: chybn� rovn�tko: %sE417: chyb� argument: %sE418: nep��pustn� hodnota: %sE419: barva pop�ed� nen� zn�m�E41: Nedostatek pam�ti!E420: barva pop�ed� nen� zn�m�E421: n�zev �i ��slo barvy %s nebylo rozpozn�noE422: termin�lov� k�d %s je p��li� dlouh�E423: nep��pustn� argument: %sE424: Je pou��v�no p��li� velk� mno�stv� odli�n�ch zv�raz�ovac�ch atribut�E425: P�ed prvn� vyhovuj�c� tag nelze p�esko�itE426: tag %s nenalezenE427: Vyhovuje pouze jeden tagE428: Za posledn� vyhovuj�c� tag nelze p�esko�itE429: "%s" neexistujeE42: ��dn� chybyE430: Soubor tag� %s byl o�ez�n
E431: Chyba form�tu v souboru tag� "%s"E432: Obsah soubor tag� %s nen� se�azenE433: ��dn� soubor tag�E434: Nelze naj�t vzorek tag�E435: Tag nelze nal�zt, pouze h�d�m!E436: Termcap neobsahuje polo�ku pro "%s"E437: Termin�l mus� m�t schopnost "cm"E438: u_undo: ��sla ��dk� jsou chybn�E439: z�znam o zm�n�ch po�kozenE43: Po�kozen� �et�zec pro vyhled�v�n�E440: chyb� undo ��dekE441: Nen� ��dn� preview okno nen�E442: Okno nelze rozd�lit z�rove� topleft a botrightE443: Nelze rotovat, pokud je jin� okno rozd�lenoE444: Posledn� okno nelze uzav��tE445: Jin� okno obsahuje zm�nyE446: Pod kurzorem se nenach�z� n�zev souboruE447: Soubor "%s" nelze v path nal�ztE44: po�kozen� regexp programE455: Nelze zapisovat do v�stupn�ho PostScriptov�ho souboruE456: Nelze otev��t soubor "%s"E457: Nelze ��st zdrojov� PostScriptov� soubor "%s"E45: 'nastavena volba 'readonly' (pou�ijte ! pro vynucen�)E46: Nelze nastavit pouze_pro_�ten� prom�nnou "%s"E47: Chyba p�i �ten� chybov�ho souboruE48: Nen� v bezpe�nostn� schr�nce povolenoE49: Chybn� hodnota volby 'scroll'E61: %s*E62: %s%cE64: %s%c nic nen�E72: Chyba p�i uzav�r�n� odkl�dac�ho souboruE73: seznam tag� je pr�zdn�E74: P��kaz je p��li� slo�it�E75: N�zev je p��li� dlouh�E76: p��li� mnoho [E77: P��li� mnoho n�zv� soubor�E78: Nezn�m� zna�kaE79: Nelze expandovat �ol�kov� znakyE80: Chyba p�i ukl�d�n�E81: Pou�it� <SID> mimo kontext skriptuE82: Nelze alokovat ��dn� buffer, kon��m...E83: Nelze alokovat buffer, pou�iji jin�...E84: Nebyl nalezen ��dn� zm�n�n� bufferE85: Seznam buffer� je pr�zdn�E86: Nelze p�esko�it na buffer %ldE87: Za posledn� buffer nelze p�esko�itE88: P�ed prvn� buffer nelze p�esko�itE89: Zm�ny v bufferu %ld nebyly ulo�eny (! pro vynucen�)E90: Posledn� buffer nelze deaktivovatE91: volba 'shell' je pr�zdn�E92: Buffer %ld nenalezenE93: Vzoru %s vyhovuje v�ce buffer�E94: Vzoru %s nevyhovuje ��dn� bufferE95: Buffer tohoto jm�na ji� existujeE96: Nelze p�ekro�it maxim�ln� po�et %ld diff buffer�E97: Nelze vytvo�it diffyE98: Nelze ��st v�stup programu diffE99: Aktu�ln� buffer nen� v diff re�imuCHYBA: Editovat souborEditovat soubor v nov�m okn�Editace &Vim -emEditace &multiple VimyEditace existuj�c�m Vimem - &Editace jedn�m $Vim -emEditace vybran�ch soubor� VimemPr�zdn� n�zev souboru pro '%' �i '#' funguje pouze s ":p:h"Konec funkceKonec interpretovan�ho souboruZadejte �ifrovac� kl��: Zadejte ��slo (<CR> pro ukon�en�): Zadejte ��slo odkl�dac�ho souboru, kter� se m� pou��t (0 pro ukon�en�): Zadejte je�t� jednou tent�� kl��:Spou�t�m lad�c� re�im. Pro ukon�en� napi�te "cont".Spou�t�m Ex m�d. Napi�te "visual" pro n�vrat do norm�ln�ho m�du.ChybaChyba p�i spou�t�n� procesu: Zkontrolujte zdali je gvim v $PATH!Chyba p�i zpracov�n� %s:V�sledkem vyhodnocen� je pr�zdn� �et�zecspou�t�m %sv�raz�Vn�j�� pod�azen� shody:
Soubor "%s" neexistujeSoubor zachov�nSouboryFiltrNaj�t & Nahradit (pou�ijte '\\' k nalezen� '\')Naj�t dal��Naj�t �et�zec (pou�ijte '\\' k nalezen� '\')Naj�t symbolVyhledat:P�smo '%s' nem� pevnou ��kuV�b�r p�sma��ka p�sma%d nen� dvojn�soblem ��ky p�sma0
��ka p�sma0: %ld
P�smo0: %s
��ka p�sma1: %ld

P�smo1: %s
Chyby za volbouGenerov�na dokumentace proBlahop�eji, u�ivateli Vimu!N�pov�daPomozte chud�m d�tem v Ugand�!Pro pokra�ov�n� stiskn�te ENTER nebo zadejte p��kazpokra�ov�n� stiskem ENTERKonec odstavceI/O CHYBANep��pustn� znak <%s>Nep��pustn� znak po <%c>nep��pustn� sou��stnep��pustn� n�zev souborunep��pustn� m�dChybn� tvar my�inep��pustn� procentonep��pustn� n�zev registruNep��pustn� po��te�n� znakvstupn� ��dkyVnit�n� chybaP�eru�en�: P�eru�enoChybn� argumentChybn� argument proChybn� argument: %sChybn� p��kazChybn� p�smachybn� sada p�semPou�it chybn� id serveru: %sChybn� �irok� p�smoSoubor s mapou kl�vesnice nebyl nalezenKl��e se neshoduj�Ukon�it spojen�Line�rn� hled�n� taguLinkuji: hledat pouze cel� slovaSpr�vce zpr�v: Bram Moolenaar <Bram@vim.org>Chyb� '>'Chyb� dvojte�kaChyb� ��rkaPo <%s> chyb� ��sloJe nutn� zadat hodnotu 'Vy�aduje %s verze %ld
Vy�aduje Amigados verze 2.04 nebo vy���
minim�ln� pot�ebn� po�et sloupc�: %dminim�ln� pot�ebn� po�et ��dk�: %d! nen� povolenoPro tento buffer nejsou definov�ny ��dn� p�edm�ty syntaxe��dn� zkratka nebyl nalezenaNebyly definov�nu ��dn� body p�eru�en���dn� buffer nebyl smaz�n��dn� buffer nebyl deaktivov�n��dn� buffer nebyl zahozen��dn� z�hyb nebyl nalezen��dn� vlo�en� soubory��dn� mapov�n� nebylo nalezenoNejsou nastaveny ��dn� zna�ky��dn� shoda��dn� shoda: %s��dn� vyhovuj�c� automatick� p��kazy��dn� dal�� polo�kyBez podpory my�iRozsah nen� povolen��dn� odkl�dac� soubor��dn� text k vyti�t�n�odstran�n� zm�n nen� mo�n�; chcete p�esto pokra�ovatNebyly nalezeny ��dn� u�ivatelsky definovan� p��kazyChybn� k�dov� str�nkaToto zde nen� povolenoNen� v modeline povolenoNen� p��kazem editoruNenalezen v termcapuPo = je vy�adov�no ��sloOKDialog pro otev�r�n� soubor�Otev�en� X displeje se nezda�iloVypr�el �as p�i �ek�n� na otev�en� X displejeDoba otev�r�n� X displeje (v ms): %ldVolba nen� podporov�naP�vodn� soubor "%s"P�epsat soubor "%.*s"?Soubor se z�platouN�zev (v path) je p��li� dlouh�N�zev cesty:Vzor nalezen na ka�d�m ��dku: %sVzor nenalezenVzor nenalezen: %sTiskov� �loha odesl�na.Vyti�t�no: %sVyti�t�no '%s'Tisk zru�enTisknu stranu %d (%d%%)Hled�n� vzorkuOt�zka�tu ze standardn�ho vstupu...�tu viminfo soubor "%s"%s%s%sObnova dokon�ena. Zkontrolujte, zda je v�e v po��dku.Znovu inicializovat v�echna spojen�NahraditNahradit v�eNov� text:Znovuz�sk�noZnovz�sk�no ze v�ech projekt�Znovuz�sk�no ze souboruZnovuz�sk�no z projektuSpustit makroB��m v re�imu kompatibility s ViSNiFF+ je pr�v� Ulo�it jakoDialog pro ukl�d�n� soubor�Ulo�it p�esm�rov�n�Ulo�it sezen�Ulo�it nastaven�Ulo�it pohledUlo�it zm�ny do "%.*s"?Prohled�v�m slovn�k %sProhled�v�m vlo�en� soubory: %sProhled�v�m tagyProhled�v�m %sP��pravek posunovac� li�ty: nelze zjistit geometrii obr�zkuvyhled�van�ch �et�zc�Hled�m "%s"Hled�m "%s" v "%s"Prohled�v�m soubor tag� %sVybr�no %s%ld z %ld ��dk�; %ld z %ld slov; %ld z %ld Byt�V�b�rP�ed�n� v�razu selhalo.
Odes�l�m na tisk�rnu...Zobrazen� base class zZobrazen� class v hierarchiiZobrazen� class v restricted hierarchiiZobrazit spojen�Zobrazen� documentaceZobrazen� overridden member funkceZobrazen� zdrojeZobrazit tuto zpr�vuZnaky pro %s:Sniff: Chyba p�i z�pisu. Odpojeno.Lituji, soubor "%s" s n�pov�dou nebyl nalezenLituji, ale tento p��kaz je deaktivov�n; knihovnu jazyka Tcl nelze nahr�t.N�r�st velikosti z�sobn�kuOdkl�dac� soubor "Odkl�dac� soubor ji� existuje!Nalezen� odkl�dac� soubory:Chyba syntaxe v %s{...}Odtrhnout tuto nab�dkuTermcap neobsahuje polo�ku pro tento termin�lTerminfo neobsahuje polo�ku pro tento termin�lTest X displeje se nezda�ilD�kuji za pou�it� VimSoubor byl vytvo�en Jedin� shoda'Resource fork' bude ztracen (pou�ijte ! pro vynucen�)VIM nebyl p�elo�en s volbou +diffTento cscope p��kaz nepodporuje rozd�len� okna.
Prohozen� implementace/definiceP��li� mnoho "+p��kaz" �i "-c p��kaz" argument�P��li� mnoho edit argument�Za��tekNadbyte�n� znaky na konciNelze ��st blok 0 z Nen� mo�n� zaznamenat jm�no command serveruneuzav�en� sekvence v�raz�Zp�tNezn�m�Nezn�m� volba%d nen� zn�m�m typem registruNepojmenov�noNahoruPou�it�: cstag <odsazen�>Pou�ijte "gui" pro spu�t�n� GUIPou�ijte Vim verze 3.0.
Pou�ijte w �i w>>M�sto pr�dn� schr�nky pou�ito CUT_BUFFER0Pou��v�m odkl�dac� soubor "%s"VIM - POZORVIM - Nal�zt a nahradit...VIM - Nal�zt...VIM - Vi IMprovedChyba VIMuVIM: Nelze otev��t nov� okno!
VIMRUN.EXE se nevyskytuje ve Va�� $PATH.
Extern� p��kazy nebudou
See  :help win32-vimrun  for more information.Vim E458: nelze alokovat polo�ku barevn� mapy. N�kter� barvy mohou b�t nespr�vn�Varov�n�Vim dialogVim dialog..Vim bude ukon�en %d
Vim je voln� �i�iteln� program s otev�en�m zdrojov�m k�demVim: Zachycen %s sign�l
Vim: Zachycen smrteln� sign�l
Vim: Zachycen smrteln� sign�l %s
VIm: dvojit� sign�l, kon��m
Vim: chyba p�i �ten� vstupu, kon��m...
Vim: ukon�en
Vim: �tu ze standardn�ho vstupu...
Vim: Varov�n�: vstup nepoch�z� z termin�lu
Vim: Varov�n�: v�stup nesm�uje na termin�l
Vim: zachov�v�m soubory...
W10: wc1: m�n�m soubor pouze_pro_�ten�W11: wc2: soubor "%s" byl po po��tku editace zm�n�nW12: Varov�n�: soubor "%s" byl po po��tku editace zm�n�n a buffer ve Vim tak�W13: wc4: po po��tku editace vytvo�en soubor "%s"W14: Varov�n�: p�ete�en� seznamu s n�zvy soubor�W15: Varov�n�: chybn� odd�lova� ��dk�. Mo�n� chyb� ^M.W16: Varov�n�: M�d souboru "%s" byl zm�n�n od zapo�nut� editaceVAROV�N�: od jeho na�ten� byl obsah souboru zm�n�n!!!!VAROV�N�: detekov�ny Windows 95/98/MEVarov�n�Varov�n�: Ne�ekan� vstup do jin�ho bufferu (zkontrolujte automatick� p��kazy)Varov�n�: termin�l nepodporuje zv�raz�ov�n�P�i otev�r�n� souboru"Um�st�n� okna: X %d, Y %dSlovo z jin�ho ��dkuUlo�it ne�pln� soubor?Ukl�d�m viminfo souboru "%s"Xref m�Xref odkazoval naXref odkazuje naXref pou�itANONulov� po�et�et�zec o nulov� d�lce[CHYBA P�EVODU][chyb� CR][Vymaz�no][za��zen�][seznam chyb][ne�pln� posledn� ��dek][nalezeno NL][nezkonvertov�n][nov� soubor][Nov� soubor][Nov�][��dn� soubor][��dn� soubor][Neulo�en� zm�ny]
[Needitovan�][p��stup odm�tnut][n�hled][CHYBY �TEN�][RO][Chyby p�i �ten�][vol�n�] celkem re/malloc(): %lu, celkem free() %lu

[zkonvertov�n][za�ifrov�n][dos form�t][dos][pojmenovan� roura/soket][pojmenovan� roura][SOUBOR] ..          editovat SOUBOR(y)[n�pov�da][dlouh� ��dky zalomeny][mac form�t][mac][��dn� eol][Pouze pro �ten�][soket][p��li� dlouh� �et�zec][unix form�t][unix]a kontrolu zm�n pomoc� programu diff.)
konec seznamu tag�za��tek seznamu tag�pokus o odkaz na smazan� bufferpokus o odkaz na smazan� oknoAutomatick� p��kaz %s Autor: Bram Moolenaar a dal��vol�m %snelze smazat atributy OutputObjectnelze ��st v�stup 'charconvert'nelze vybrat sadu p�semnelze vybrat �irok� fontNelze zm�nit m�d konzole ?!
nelze vytvo�it p��kaz bufferu/okna: objekt smaz�nnelze smazat ��deknelze p�e��st ��deknelze vlo�it ��deknelze vlo�it/p�ipojit ��deknelze otev��t nelze zaregistrovat p��kaz zp�tn�ho vol�n�: buffer/okno ji� bylo smaz�nonelze zaregistrovat p��kaz zp�tn�ho vol�n�: odkaz na buffer/okno nenalezennelze nahradit ��deknelze ulo�it informace pro p��kaz undonelze nastavit ��dkynelze kop�rovat; p�esto smaz�nozav��tp��kaz: %sje nutn� ��rkap�ipojenobsahuje netisknuteln� znakypokra�uji v %snelze interpretovat "%s"vol�n� malloc selhalo
spu�t�n� cs_create_connection selhalocs_create_connection: vol�n� fdopen pro fr_fp selhalocs_create_connection: vol�n� fdopen pro to_fp selhalop��kazy cscope:
cscope spojen� %s uzav�eno
closed spojen� uzav�enoum�st�n� kurzoru mimo bufferimplicitn� termin�l 'smaz�n blok 1?o�ek�v�na ��sliceneukon�ujte editor d��ve, ne� bude soubor �sp�n� ulo�en!duplicitn� cscope datab�ze nebyla p�id�naseznam chyb %d z %d; po�et chyb: %dchyba p�i �ten� cscope spojen� %dpodpora v�raz� byla vypnuta p�i p�ekladu programuosudov� chyba v cs_manage_matchessoubor
n�zev souboru/ kontext/ ��dek
dokon�ena interpretace %spo�et uvol�ovan�ch ��dk�: %ldfunkce chyba gvimext.dlln�pov�dav cest� ---
chybn� atributchybn� n�zev bufferuChybn� v�razchybn� jm�no zna�kyje adres�emnen� souboremnen� souborem ani za��zen�m na n� lze zapisovatje pouze pro �ten� (pou�ijte ! pro vynucen�)p�eru�en� z kl�vesnice��dek %4ld:��dek %ld��dek %ld/%ld --%d%%-- sloupec��dek %ld: %s��dek %ld: nelze interpretovat "%s"��dek %ld: interpretuji %s��slo ��dku mimo rozsahlogoffzna�ka nen� nastavenashoda %dshoda %d/%dmaxim�ln� dosa�en maxim�ln� po�et cscope spojen�mch_get_shellsize: neni konzole??
minim�ln� spu�t�n nov� shell
ne��dn� interpretovan� soubor, kter�m by bylo mo�n� nahradit "<sfile>"��dn� ��slo bufferu, kter�m by bylo mo�n� nahradit "<abuf>"��dn� n�zev souboru, kter�m by bylo mo�n� nahradit "<afile>"��dn� shoda automatick�ch p��kaz�, kterou by bylo mo�n� nahradit "<amatch>"��dn� cscope spojen���dn� cscope spojen�
��dn� takov� buffer��dn� takov� okno��dn� synchronizacene  nenalezenysoubor "%s" nebyl nalezen v 'runtimepath'nen� je�t� podporov�nope_line_count m� nulovou hodnotupre-vimrc p��kazov� ��dekatribut pouze_pro_�ten�nahr�v�mnahradit za %s (y/n/a/q/l/^E/^Y)?��dek %d sloupec %dhled�n� dos�hlo konce, pokra�ov�n� od za��tkuhled�n� dos�hlo za��tku, pokra�ov�n� od konceshell n�vratov� hodnota shellu %dshutdownsoftspace mus� b�t kladn� cel� ��slointerpretuji "%s"stack_idx by m�lo m�t hodnotu 3stat(%s) chyba: %d�et�zec nesm� obsahovat znaky nov�ho ��dkusynchronizuji koment�e v C stylusynchronizace za��n� tag %d z celkov�ho po�tu %d%sjm�no tagudo %s v %sp��li� mnoho polo�ekpodrobn�j�� informace z�sk�te pomoc� :help cp-default<Enter>podrobn�j�� informace z�sk�te pomoc� :help iccf<Enter>zadejte :help version8<Enter>  pro informace o verzi 6zadejte :help windows95<Enter> pro podrobn�j�� informacezadejte :help<Enter>  �i <F1> pro n�pov�duzadejte :q<Enter>             pro ukon�en� programuzadejte :set nocp<Enter>     pro implicitn� nastaven� Vimnevyv�en� skupinynezn�m� typ cscope hled�n�nezn�m� p��znak: nezn�m� volbanezn�m� vimOptionverze chyba vimvim_SelFile: nelze zjistit aktu�ln� adres�vim_SelFile: p�smo %s nen� dostupn�vim_SelFile: nelze se vr�tit do aktu�ln�ho adres�eviminfo: %s na ��dku: s (clasick�m) grafick�m rozhran�ms rozhran�m BeOSs grafick�m rozhran�m Carbons grafick�m rozhran�m Cocoas rozhran�m GTKs rozhran�m GTK-GNOMEs grafick�m rozhran�ms rozhran�m PhotonS rozhran�m X11-Athenas rozhran�m X11-Motifbez grafick�ho rozhran�chyba p�i ukl�d�n� (je voln� m�sto na disku?)chyba p�i z�pisu, konverze se nezda�ilawritelines() vy�aduje seznam �et�zc�PK�j�Z¹��[[vim80/lang/menu_ja.eucjp.vimnu�[���" Menu Translations:	Japanese (for UNIX)
" Translated By:	MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change:		15-Jun-2012.
"
" Copyright (C) 2004,12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

" eucjp is the same as euc-jp.  Source the other one from here.
source <sfile>:p:h/menu_ja_jp.euc-jp.vim
PK�j�ZS[�2\\vim80/lang/menu_af.utf-8.vimnu�[���" Menu Translations:	Afrikaans for UTF-8 encoding

source <sfile>:p:h/menu_af_af.latin1.vim
PK�j�Z�G��RR vim80/lang/menu_cs_cz.cp1250.vimnu�[���" Menu Translations:	Czech

source <sfile>:p:h/menu_czech_czech_republic.1250.vim
PK�j�Z��O2O2vim80/lang/menu_sr_rs.ascii.vimnu�[���" Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change:	Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: Ivan Pesic on 2017-12-28 12:05+0400

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" Help menu
menutrans &Help		      Pomo&c
menutrans &Overview<Tab><F1>  &Pregled<Tab><F1>
menutrans &User\ Manual       &Uputstvo\ za\ korisnike
menutrans &How-to\ links      &Kako\ da\.\.\.
menutrans &Find		      &Nadji
menutrans &Credits	      &Zasluge
menutrans Co&pying	      P&reuzimanje
menutrans O&rphans	      &Sirocici
menutrans &Sponsor/Register   Sponzor/&Registrujte\ se
menutrans &Version	      &Verzija
menutrans &About	      &O\ programu

" File menu
menutrans &File			    &Datoteka
menutrans &Open\.\.\.<Tab>:e	    &Otvori\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otvori\ karticu\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew	    &Nova<Tab>:enew
menutrans &Close<Tab>:close	    &Zatvori<Tab>:close
menutrans &Save<Tab>:w		    &Sacuvaj<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav  Sacuvaj\ &kao\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.  Podeli\ i\ &uporedi\ sa\.\.\.
menutrans Split\ Patched\ &By\.\.\. Po&deli\ i\ prepravi\ sa\.\.\.
menutrans &Print		    Sta&mpaj
menutrans Sa&ve-Exit<Tab>:wqa	    Sacuvaj\ i\ za&vrsi<Tab>:wqa
menutrans E&xit<Tab>:qa		    K&raj<Tab>:qa

" Edit menu
menutrans &Edit			 &Uredjivanje
menutrans &Undo<Tab>u		 &Vrati<Tab>u
menutrans &Redo<Tab>^R		 &Povrati<Tab>^R
menutrans Rep&eat<Tab>\.	 P&onovi<Tab>\.
menutrans Cu&t<Tab>"+x		 Ise&ci<Tab>"+x
menutrans &Copy<Tab>"+y		 &Kopiraj<Tab>"+y
menutrans &Paste<Tab>"+gP	 &Ubaci<Tab>"+gP
menutrans &Paste<Tab>"+P	&Ubaci<Tab>"+gP
menutrans Put\ &Before<Tab>[p	 Stavi\ pre&d<Tab>[p
menutrans Put\ &After<Tab>]p	 Stavi\ &iza<Tab>]p
menutrans &Delete<Tab>x		 Iz&brisi<Tab>x
menutrans &Select\ all<Tab>ggVG  Izaberi\ sv&e<Tab>ggVG
menutrans &Find\.\.\.		 &Nadji\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. Nadji\ i\ &zameni\.\.\.
menutrans Settings\ &Window	 P&rozor\ podesavanja
menutrans Startup\ &Settings	 Po&desavanja\ pri\ pokretanju		
menutrans &Global\ Settings	 Op&sta\ podesavanja
menutrans F&ile\ Settings	 Podesavanja\ za\ da&toteke
menutrans &Shiftwidth		 &Pomeraj
menutrans Soft\ &Tabstop	 &Meka\ tabulacija
menutrans Te&xt\ Width\.\.\.	 &Sirina\ teksta\.\.\.
menutrans &File\ Format\.\.\.	 &Vrsta\ datoteke\.\.\.
menutrans Show\ C&olor\ Schemes\ in\ Menu	Prikazi\ seme\ bo&ja\ u\ meniju
menutrans C&olor\ Scheme	\Seme\ bo&ja
menutrans Show\ &Keymaps\ in\ Menu	Prikazi\ pres&likavanja\ tastature\ u\ meniju
menutrans &Keymap	Pres&likavanja\ tastature
menutrans Select\ Fo&nt\.\.\.	 Izbor\ &fonta\.\.\.

" Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Zanemari\ velicinu\ &slova\ (da/ne)<Tab>:set\ ic!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Proveri\ pratecu\ &zagradu\ (da/ne)<Tab>:set\ sm!
menutrans &Context\ lines  Vidljivi\ &redovi
menutrans &Virtual\ Edit   Virtuelno\ &uredjivanje
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!   Rezim\ u&nosa\ (da/ne)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!     '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
menutrans Ta&g\ Files\.\.\.   &Datoteke\ oznaka\.\.\.
menutrans Toggle\ &Toolbar    Linija\ sa\ &alatkama\ (da/ne)
menutrans Toggle\ &Bottom\ Scrollbar   Donja\ l&inija\ klizanja\ (da/ne)
menutrans Toggle\ &Left\ Scrollbar  &Leva\ linija\ klizanja\ (da/ne)
menutrans Toggle\ &Right\ Scrollbar &Desna\ linija\ klizanja\ (da/ne)

" Edit/Global Settings/Virtual Edit
menutrans Never		      Nikad
menutrans Block\ Selection    Izbor\ bloka
menutrans Insert\ mode	      Rezim\ unosa
menutrans Block\ and\ Insert  Blok\ i\ unos
menutrans Always	      Uvek

" Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!   Prikazi\ &numeraciju\ linija\ (da/ne)<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!   Prikazi\ Relati&vnu\ numeraciju\ linija\ (da/ne)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!	   Rezim\ &liste\ (da/ne)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!	   Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!   Prelomi\ &na\ rec\ (da/ne)<Tab>:set\ lbr!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!	   Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!	Auto-&uvlacenje\ (da/ne)<Tab>:set\ ai!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!	   &C-uvlacenje\ (da/ne)<Tab>:set\ cin!

" Edit/Keymap
menutrans None Bez\ preslikavanja

" Tools menu
menutrans &Tools	&Alatke
menutrans &Jump\ to\ this\ tag<Tab>g^] Skoci\ na\ &ovu\ oznaku<Tab>g^]
menutrans Jump\ &back<Tab>^T	 Skoci\ &natrag<Tab>^T
menutrans Build\ &Tags\ File	 Izgradi\ &datoteku\ oznaka
menutrans &Spelling	 Pra&vopis
menutrans &Folding	      &Podvijanje
menutrans Create\ &Fold<Tab>zf		  S&tvori\ podvijutak<Tab>zf
menutrans &Delete\ Fold<Tab>zd		  O&brisi\ podvijutak<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	  Obrisi\ sve\ po&dvijutke<Tab>zD
menutrans Fold\ column\ &width		  Sirina\ &reda\ podvijutka
"menutrans &Diff		      &Uporedjivanje
menutrans &Make<Tab>:make     'mak&e'<Tab>:make
menutrans &List\ Errors<Tab>:cl     Spisak\ &gresaka<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!  Sp&isak\ poruka<Tab>:cl!
menutrans &Next\ Error<Tab>:cn	    S&ledeca\ greska<Tab>:cn
menutrans &Previous\ Error<Tab>:cp  Pre&thodna\ greska<Tab>:cp
menutrans &Older\ List<Tab>:cold    Stari\ spisa&k<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew    No&vi\ spisak<Tab>:cnew
menutrans Error\ &Window	    Prozor\ sa\ g&reskama
menutrans Se&t\ Compiler	    I&zaberi\ prevodioca
menutrans &Convert\ to\ HEX<Tab>:%!xxd	   Pretvori\ u\ &HEKS<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r    Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu	Prikazi\ pode&savanja\ prevodioca\ u\ meniju

" Tools/Spelling
menutrans &Spell\ Check\ On	&Ukljuci\ proveru\ pravopisa
menutrans Spell\ Check\ &Off	&Iskljuci\ proveru\ pravopisa
menutrans To\ &Next\ Error<Tab>]s	Idi\ na\ &sledecu\ gresku<Tab>]s
menutrans To\ &Previous\ Error<Tab>[s	Idi\ na\ &prethodnu\ gresku<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	Predlozi\ isp&ravke<Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall	P&onovi\ ispravku<Tab>:spellrepall
menutrans Set\ Language\ to\ "en"	Postavi\ jezik\ na\ "en"
menutrans Set\ Language\ to\ "en_au" 	Postavi\ jezik\ na\ "en_au"
menutrans Set\ Language\ to\ "en_ca" 	Postavi\ jezik\ na\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" 	Postavi\ jezik\ na\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" 	Postavi\ jezik\ na\ "en_nz"
menutrans Set\ Language\ to\ "en_us" 	Postavi\ jezik\ na\ "en_us"
menutrans &Find\ More\ Languages	Pronadji\ jos\ jezika 

" Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi   &Omoguci/prekini\ podvijanje<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	  &Pokazi\ red\ sa\ kursorom<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Pokazi\ &samo\ red\ sa\ kursorom<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm   &Zatvori\ vise\ podvijutaka<Tab>zm
menutrans &Close\ all\ folds<Tab>zM    Zatvori\ s&ve\ podvijutke<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr    Otvori\ vis&e\ podvijutaka<Tab>zr
menutrans &Open\ all\ folds<Tab>zR     O&tvori\ sve\ podvijutke<Tab>zR
menutrans Fold\ Met&hod		       &Nacin\ podvijanja
menutrans Fold\ Col&umn\ Width	Sirina\ kolone\ ispred\ podvijutaka

" Tools/Folding/Fold Method
menutrans M&anual	&Rucno
menutrans I&ndent	&Uvucenost
menutrans E&xpression	&Izraz
menutrans S&yntax	&Sintaksa
"menutrans &Diff
menutrans Ma&rker	&Oznaka

" Tools/Diff
menutrans &Update	&Azuriraj
menutrans &Get\ Block	&Prihvati\ blok\ izmena
menutrans &Put\ Block	Pre&baci\ blok\ izmena

" Tools/Error Window
menutrans &Update<Tab>:cwin   &Azuriraj<Tab>:cwin
menutrans &Open<Tab>:copen    &Otvori<Tab>:copen
menutrans &Close<Tab>:cclose  &Zatvori<Tab>:cclose

" Bufers menu
menutrans &Buffers	   &Baferi
menutrans &Refresh\ menu   &Azuriraj
menutrans Delete	   &Obrisi
menutrans &Alternate	   A&lternativni
menutrans &Next		   &Sledeci
menutrans &Previous	   &Prethodni
menutrans [No\ File]	   [Nema\ datoteke]

" Window menu
menutrans &Window		    &Prozor
menutrans &New<Tab>^Wn		    &Novi<Tab>^Wn
menutrans S&plit<Tab>^Ws	    &Podeli<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^    Podeli\ sa\ &alternativnim<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv   Podeli\ &uspravno<Tab>^Wv
menutrans Split\ File\ E&xplorer    Podeli\ za\ pregled\ &datoteka
menutrans &Close<Tab>^Wc	    &Zatvori<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo  Zatvori\ &ostale<Tab>^Wo
"menutrans Ne&xt<Tab>^Ww       &Sledeci<Tab>^Ww
"menutrans P&revious<Tab>^WW	  P&rethodni<Tab>^WW
menutrans Move\ &To		    Pre&mesti
menutrans Rotate\ &Up<Tab>^WR	    &Kruzno\ nagore<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr     Kruzno\ nadol&e<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=	    &Iste\ velicine<Tab>^W=
menutrans &Max\ Height<Tab>^W_	    Maksimalna\ &visina<Tab>^W_
menutrans M&in\ Height<Tab>^W1_     Minima&lna\ visina<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|	    Maksimalna\ &sirina<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|     Minimalna\ si&rina<Tab>^W1\|

" Window/Move To
menutrans &Top<Tab>^WK		 &Vrh<Tab>^WK
menutrans &Bottom<Tab>^WJ	 &Podnozje<Tab>^WJ
menutrans &Left\ side<Tab>^WH	 U&levo<Tab>^WH
menutrans &Right\ side<Tab>^WL	 U&desno<Tab>^WL

" The popup menu
menutrans &Undo		      &Vrati
menutrans Cu&t		      &Iseci
menutrans &Copy		      &Kopiraj
menutrans &Paste	      &Ubaci
menutrans &Delete	      I&zbrisi
menutrans Select\ Blockwise   Biraj\ b&lokovski
menutrans Select\ &Word       Izaberi\ &rec
menutrans Select\ &Sentence       Izaberi\ r&ecenicu
menutrans Select\ Pa&ragraph       Izaberi\ &paragraf
menutrans Select\ &Line       Izaberi\ r&ed
menutrans Select\ &Block      Izaberi\ &blok
menutrans Select\ &All	      Izaberi\ &sve

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open     Ucitaj
    tmenu ToolBar.Save     Sacuvaj
    tmenu ToolBar.SaveAll  Sacuvaj sve
    tmenu ToolBar.Print    Stampaj
    tmenu ToolBar.Undo     Vrati
    tmenu ToolBar.Redo     Povrati
    tmenu ToolBar.Cut      Iseci
    tmenu ToolBar.Copy     Kopiraj
    tmenu ToolBar.Paste    Ubaci
    tmenu ToolBar.Find     Nadji
    tmenu ToolBar.FindNext Nadji sledeci
    tmenu ToolBar.FindPrev Nadji prethodni
    tmenu ToolBar.Replace  Zameni
    tmenu ToolBar.New      Novi
    tmenu ToolBar.WinSplit Podeli prozor
    tmenu ToolBar.WinMax   Maksimalna visina
    tmenu ToolBar.WinMin   Minimalna visina
    tmenu ToolBar.WinVSplit   Podeli uspravno
    tmenu ToolBar.WinMaxWidth Maksimalna sirina
    tmenu ToolBar.WinMinWidth Minimalna sirina
    tmenu ToolBar.WinClose Zatvori prozor
    tmenu ToolBar.LoadSesn Ucitaj seansu
    tmenu ToolBar.SaveSesn Sacuvaj seansu
    tmenu ToolBar.RunScript   Izvrsi spis
    tmenu ToolBar.Make     'make'
    tmenu ToolBar.Shell    Operativno okruzenje
    tmenu ToolBar.RunCtags Napravi oznake
    tmenu ToolBar.TagJump  Idi na oznaku
    tmenu ToolBar.Help     Pomoc
    tmenu ToolBar.FindHelp Nadji objasnjenje
  endfun
endif

" Syntax menu
menutrans &Syntax &Sintaksa
menutrans &Show\ File\ Types\ in\ Menu  Prikazi\ tipove\ datoteka\ u\ &meniju
menutrans Set\ '&syntax'\ only   Pode&si\ samo\ 'syntax' 
menutrans Set\ '&filetype'\ too  Podesi\ &takodje\ i\ 'filetype'
menutrans &Off       &Iskljuceno
menutrans &Manual    &Rucno
menutrans A&utomatic    &Automatski
menutrans on/off\ for\ &This\ file     Da/ne\ za\ ovu\ &datoteku
menutrans Co&lor\ test     Provera\ &boja
menutrans &Highlight\ test Provera\ isti&canja
menutrans &Convert\ to\ HTML  Pretvori\ &u\ HTML

" dialog texts
let menutrans_help_dialog = "Unesite naredbu ili rec cije pojasnjenje trazite:\n\nDodajte i_ za naredbe unosa (npr. i_CTRL-X)\nDodajte c_ za naredbe komandnog rezima (npr. s_<Del>)\nDodajte ' za imena opcija (npr. 'shiftwidth')"

let g:menutrans_path_dialog = "Unesite put pretrage za datoteke\nRazdvojite zarezima imena direktorijuma."

let g:menutrans_tags_dialog = "Unesite imena datoteka sa oznakama\nRazdvojite zarezima imena."

let g:menutrans_textwidth_dialog = "Unesite novu sirinu teksta (0 sprecava prelom)"

let g:menutrans_fileformat_dialog = "Izaberite format zapisa datoteke"

let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Otkazi"

let menutrans_no_file = "[Nema datoteke]"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: tw=0 keymap=serbian
PK�j�Z��y�&vim80/lang/menu_chinese(gb)_gb.936.vimnu�[���" Menu Translations:	Simplified Chinese (Windows)
" Last Change:		Tue Sep  4 11:26:52 CST 2001

" $LANG  on Windows 95/98/NT is Chinese(GB)_GB.936
" $LANG  on Windows 2000/ME is Chinese_GB.936
" Source the other one from here.
source <sfile>:p:h/menu_chinese_gb.936.vim
PK�j�Z���sZZvim80/lang/menu_ja_jp.ujis.vimnu�[���" Menu Translations:	Japanese (for UNIX)
" Translated By:	MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change:		15-Jun-2012.
"
" Copyright (C) 2004,12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

" ujis is the same as euc-jp.  Source the other one from here.
source <sfile>:p:h/menu_ja_jp.euc-jp.vim
PK�j�Z�R���,�,'vim80/lang/sk.cp1250/LC_MESSAGES/vim.monu�[�����]3��e�����
 �.�7�'M�/u�����ш0��%�+-�Y�"t�����5����(�7��M�,��;'�c�z�����ċՋ���
�(�@�W�n�0��.��/�1�0G�-x�
����ʍ�
��	�
� )�J�Y�m�!����"Ɏ���@$�e�����������%ԏ/��=*�h������1��1� �5�J�f�-����Α����*�3B�3v�$��ϒ���6�G�
a�l�{�������
ϓ$ݓ� �/�G�;_�����#��	۔�����'�
0�;�U�f�r���	��������!Ε����?�G�f�n� v�����̖�����
��6!�X�v���!��З
ؗ�	����)�.�'3�	[�"e�*����˘ۘ�����
�
&�1�
:�E�W�i�r�5��ƙ-ؙ1�&8�_�w�������Śښ��$�,�
<�G�S�b�r�������ś؛����%�1�=�L�^�
x�����
������7͜��*�2�;�C�I�M�Y�h�2l�=��ݝ����'�-.�5\�����?Ȟ�$�5�D�	S�]�v�����-���$	�.�
N�Y�i�}���?��5�(�!?�%a�9��E��9�CA�I��HϢ;�0T�6��8��3��-)�W�%q�����Ĥޤ&�,�#B�4f� ��@��-��0+�\�;q���"ͦ�>�@�)Z�>��<ç�# �:D�'�9���$��9�4Y�;�� ʩ>�1*�/\���-��ת.�B�"X�/{���2ʫ*��(�+F�%r�'��(��<�E&�.l�(��-ĭ$��<0�m�*��&��ٮ �4	�>�O�a�t�}���������Я��
����"�<�H�W�o�����)��ܰ$�!
�,�;�C�"O�"r�����1DZ?��O9���������IJղ���H2�%{�������޳����$!�F�!W�y���������ϴ"��$�B�#a�������Qŵ�&�6�H�^� y�����9̶!�?(�Ph���
Ʒ
Է)߷	�-"�P�-o�$��.¸���"3�
V�Cd�	������!ӹ�����3�2R�!��(�� к"�E�Z�%w�#��-���
�*�&F�m������ȼ�)��@"�c�5����̽�D�G�Ed���-ž7�#+� O�:p�5��&�"�&+�$R�#w�!��=��5�� 1�(R�7{�!��,���3� M�#n�&���������!�;�W�v�0��$��!�� 
�(.�4W�,����������� +�L�i�1����!��%��%�%@�f� �����?��&�!>�`�
|�A��%��"��"�98�'r�(��2��*��!!�!C�)e�%��!��4��:�&G�;n�;��)��0�A�`�|�����#��!��8�&?�#f��� ��/��"���-'�U�f��/��*��(��#�?�[�v�����>��
�$�>�"U�x�������!���9�1W�)��1��%��7�C�A]�?�������!-�O�k���0��4��$�)0�NZ�,��L��8#�\�,|� �� ��#���*�7D�N|�M���5�R�$m�!��3��,��2�%H�*n�9��(����"�:�#X�|�������B��5�0O�!�� ��<��+�,�L�+a�2��$����,�0�HK�,������"���7�V�u���9������09�#j�'������,��&�:�M�+_�2��-��(���".�'Q�'y�,����.���#4�,X�W��)��"�,*�%W�}� ����2��2�2:�m�!������2��5
�'C�#k�)��3��$��%�8�R�o�����$��&�� �')�*Q�#|�'��%��3��!"�D�+c���*��-��$�-�L�k����� �� ��$��$�)A�,k�����,�����%#�I�=i���������'�;�X�$u�#��0��.��0�O�o�����������-� /�P�7k�)����$��(
�3�R�%a�$��������'��#�'B� j������� ��7��0.�_�#~���"��(��!�0�-N�1|�6��5���.6�*e�1��9����*�&G�+n�,��+��4��<(�+e�*��-������-�B�Y�t�������"�������'�F�_�x����������6�:I�=��<�6��<6�s�"�����4�5�46�3k���0���D��%:�`�����������=�X�o��������'��(�!H�j���"���1�	� �=�"R�u�����������.�G�Z�n����������*#�)N�x��� �����6
�#A�e�)��2��&�KQ d�����
"9&\#���+�%
735k��,�
 ;)Q {����>Z0r����4.J$y)�1�;�6.F*u�$��%,&Sd{&�-�&� -Nk�+� ��?	)@	j	6�	#�	2�	9
>L
8�
1�
�
))> h)��)�*�"#F#_"�"�)��
%1
 W
+x
$�
�
�
!0(Yr��"�!�9
8D$}���+�%1?)q��'�%�&.!U%w'�%�'�-AV$k���"�.!N1p&��!�!*?Y+y8���7EM!���&�0#9]$q�#�*� <O0i2�0��+)G$q/���'�),Bo!����9�)(B+k/���!#"EBh���!)@'j��'��	�)B\#r	����.�
.!6P��6�#�&�	#-BZq� � �!�
� ( A Z i o (v 
� 	� %� � 
� &� &!?!\!)k!�!
�!�!
�!�!�!�!""9"	N"2X"*�"�"�"�"�"
##	-#7#C#O#d###(�#�#�#	�#
�#$2$N$Z$y$�$�$�$$�$/�$'%8%N%
e%$p%�%�%�% �%�%�%&!"&D&c&l&o&�&�&#�&�&�&'.'
I'T'	j't'�''�'�'�'
�'�'	(!(5(>(X(w(�(�(�(9�()/)7)D)
P)^)g)�)�)�)(�)�)** *1*
>*	I*S*i*�*�*�*9�*
�*++.+&E+l+�+�+�+?�+Q!,	s,},�,�,"�,�,�,�,-3-B-
T-b-'h-�-�-�-F�-).;.T.i.p.(|.�.�.�.�.//0/0?/;p/ �/>�/0$0<01X0"�0�0�0�03�0%1(B1k1s1$�10�1�1�1�1+2/2D2T2p2�2	�2�2��2;3FO3�3
�3
�3	�3
�3�3+�34*4E4c4%�40�4�4(�451,5+^5*�5�5&�59�5M06>~6)�65�6A74_7$�76�7"�78<8?X8/�8 �8"�89!9=9R9f9�9)�9)�9,�9 :!<:#^:�:�:
�:�:�:�:�:
�:�:
;	;$;-;:;U;
l;w;
�;
�;�;	�;�;�;�;	�;
�;<
	<5<M<	Y<c<p<
v<�<&�<�<�<�<�<�<
�<�<
�<	=:="K="n=)�=�=�=�=�=
>>1*>
\>$g>"�>�><�>??.?A?[?Hh?C�?�?	@&@9@T@Z@	b@l@}@�@ �@-�@-�@%A7ASArA�A�A=�A�A$�A$B*BEBZBlB~B
�B�B�B�B�B�B�B
�B C )CJC
]ChC�C�C�C�C�C�CDD D-D6DED#ND1rD1�D1�D1E:ECEVEYEpE�E�E
�E�E�E
�E �E�EF%F<FVF	iF"sF�F$�F$�F�F�F
GG
0G>GTGsG�G�G�G�G.�G.�G. H.OH.~H.�H.�H.I.:IiIxI�I�I	�I7�I�IJJ'J8J
HJVJjJyJ	�J
�J�J�J�J�J�J%KN(KwL�L
�L�L�L*�L,M8MSMkM.�M�M
�M1�M�M0NONdN@yN2�N �N
OO�3OJ�O/!PQP%nP$�P�P�P�P�P�P'Q=QUQpQ�Q.�Q,�Q-R/0R.`R+�R�R�R�R�RS/SAS"MSpS�S �S'�S$�S(T,TCT
STJaT2�T�T�T
UU!U!0UERUQ�U�U!V(VDV1\V1�V�V�V�V	W+%WQWnW�W!�W"�W"�W;X<=X;zX�X!�X!�XY3YBYXYoY"�Y�Y�Y"�Y�Y,�Y
(Z&3Z ZZ{Z=�Z�Z�Z�Z	
[[3[<[O[	`[j[v[
�[�["�["�[	�[	\\\(*\S\b\$�\�\$�\
�\�\*�\"]6]R]	r]|]�]�]
�]D�]$�]^$,^$Q^	v^�^�^�^$�^
�^�^�^(�^
_##_%G_m_�_�_�_�_�_�_�_�_�_	
``%`5`,>`2k`�`5�`<�`/ aPaka�a�a�a�a�a�aEbVb
qb	b
�b�b)�b'�b�bc(cAcYcqc�c
�c�c�c
�c�c
ddd
#d.d
>d=Ld�d�d�d�d�d	�d�d�d�d�dN�dVKe	�e�e	�e�e0�e,�e2,f'_f%�fR�f&g'g7gFgSg#\g�g�g%�g-�gh4h&Shzh�h�h�h#�h:�h2i*Li1wi2�i?�iAj;^jG�jJ�jL-kBzk/�k@�k1.l6`l.�l�l$�lmm0mNmbm/~m$�m8�m%nH2n1{n:�n�n=oBo'`o�o9�o�o5�o7(p5`p,�p.�p4�p*'q;Rq�q.�qY�q:6r:qr8�r9�r/s=Os"�s/�s
�s'�s5t3Lt6�t!�t8�t?u.Ru-�u �u+�u'�u8$vB]v6�v�v7�v,wKw?jw!�w)�w3�w
*x&8xD_x�x�x�x�x�x$�x,y=yOy`ysy�y�y
�y�yB�y
zz!z!@zbzz0�z�z1�z#{%{	8{	B{!L{ n{'�{'�{*�{1
|N<|
�|�|	�|�|�|�|�|}(}KC}&�}�}!�}"�}~~,~	>~%H~n~#~(�~�~�~�~�~%%.T#d�)����Z�p�������Ā%�#�+�9=�w�A��Q؁*�	;�E�+Q�}�*��!ǂ-�'�&?�f�����0��׃M�5�:�C�R�j�r���;��9҄%�#2�%V�2|�D���,�*A�Fl���Ά�)�.�>�N�i�����,��M�4�;T�����ÈN܈ +�UL���.��4� �$;�>`�;��,ۊ&�&/�.V�.��(��?݋<�Z�.z�3��&݌.�,3�`�s�%��$��(؍��6�R�p���#��"Î*�+�'=�)e�)��>��6��!/�Q�d�x���)��(ː$�6�%P�v�%��)��4��"0�S�n�C��2̒ ��# �
D�8R�-����$דB��7?�w�I��1�/�$C�'h�,��"��=�>�(]�O��C֖-�@H�#����̗�	�.%�)T�C~�/˜��).�?X�5��Ι7ݙ�#$�H�)c�+�� ��"ښ��.�"K�n�I��Dӛ�6�T�!l�������ޜ)��'�=B�8��)��8�0�7M���2��=՞�/�L�3l�>��ߟ��9�=S�"��*��Mߠ2-�K`�I����*�#A� e�"����ǢE�Y*�a���"�#$�,H�*u�A��,�2�&B�3i�A��#ߥ�1�*O�6z�/������b8�&��1§*�(�>H�.��*���,��0'�X�+x�6��۩M�3@�t�&��&��&�(�(0�(Y�)��>����#�2>�&q�2��ˬ&׬4��%3�Y�v�,��6��.�."�Q�(l�*��1��B�5�6O�"��#��.ͯk��)h�$��6��3�("�.K�!z�@��>ݱ3�P�)m�����-IJ4�6'�*^�'��2��5�0�K�i���&��Ŵ/ܴ5�%B�Gh�7��.�*�,B�.o�����2ܶ%�05�.f�#��"��ܷ���(�'G�'o�-��"Ÿ2�2�N�l�/����"Ź"��F%�l�"����ź+�
�%-�+S�+�2��3޻E�(X�"������!ۼ�� �36�(j���A��-�"�9�2V�����+��,�+�<�U�#t�%��A��%� &�'G�o�#��b��/�$A�f�-��&��.��'�<E�8��=��<�� 6�,W�#��N��=��$5�2Z�.��>��4��30�:d�K��-��2�=L��������������+�C�X�&k�������+���1�N�g���-��#�����1�BK�B��S��C%�Bi�&��/����E�Ed�@��>��*�>@��`��%��"�"B�"e������� �����(,�U�k�������%����8�%J� p�������I��*�A�]�%t�����������3�J�b�}������������3�#S�4w�3������!�!3�U�f�;�$����/��/-�%]�J����&���#*�$N�#s�%���� ��+��5"�2X�&��*��:���v7�t��,#�,P�!}��� ����4��!�>�$R�w���"������"��7 �X�o�'�� ��8��2�+B�0n�-��6���8�-N�'|�$�� ��)��1�F�X�o�1��/��+���*5�`�����N��&
�1�OD�&����;��(�/<�:l�H��A��?2�'r�%��3��#��'�@�1]�)��)����(��1%�0W�B������>�*?�Wj�8��2�� .�)O�8y��������.!�2P�Q��>��$�!9�,[���9��6��C
�:Q���&��4��0�.9�2h���1��4��. �0O�6������,��=�-W�0��7��$��$�8�LX�#����%��"
�-�J�i�2��9����%�C9�N}�'����	�8'�3`�5����#���'�+C�0o�<������Y�Lp�7��!��#�+;�2g�D������/�:<�/w� ��#�����2�GG���(��'��-��(&�O�o�)��'��9�&�=�[�$u�&��%��+�"�$6�/[�����������	�!�@�I�X�w�I���4��C,�p�v�B���$�	��'�<�Q�
i�!t�!��&����6�7�M�]�d�3k�
����/��
�	��(��*(�S�p�*|����������!�!=�_�	o�/y�*���&��/�K�Z�	t�~�	������/�6�*�>�O�\�r�/��	��!����.#;R9��'�,'Tj�-�%��>(5g���� �$
/B	b4l���!��36
Sam��"���	%!D8f#������1$D3i�
�����
3Ji{C����*(H(q(��@�R#	v	|	�	�	%�	�	�	 
4
L
Y

n
|
�
.�
�
�
EJ^x��/���&D]r63��C

#N
$r
�
=�
(�
%&1L2~�-���':?z��-����"	4>�Z�Q�
I
Wb	o
y�0���")(F.o�%�%�>�-8-f�+�7�P9d4�8�KTX�1�&�	&E0Mv1�'�-Lb{���*�*
-8"f"�*���0=AN
^
it
� ������

(7LUej6}������$

2=Tag��
��?� �-/]s����7�&"E h:����	(J9M��-�(2[
c	nx��&�6�6 O ` | � � � 8� !2"!U!\!|!�!�!�!�!�!�!�!""("5",D",q"�"�"�"
�" �"
#&#@#_#x#�#�#�#
�#
�#%�#:�#@5$1v$:�$
�$�$%%%7%J%[%q%(t%
�%(�%�%�%	&$&>&X&a&�&2�&1�&�&''$#'H'[',z'(�'�'
�'	�'�'?(;H(;�(>�(;�(<;);x);�)A�)2*
D*R*l*	t*p~*�*+ +8+V+s+ �+�+!�+�+,,!=, _,!�,�,%�,���w ������t��)��%(�0k�7�9h�\��j$\F���`�iM��7��L:�v"�ab_)b���+��bD����j����[,�,h����A<lm�r������pL���cH�����e�!\\n�?��~"�<!\�������E�u
��e|���B:�������5U�
�WX,�Vy���
#�"��GG+6�c��^tu��L�2>�	�;�6!�{��G�*o{�|�8V
��6��}!��T�M��dL�A�y>I7'A�'�mG3f#Qe����\����E��r��i��>�,2:lK.I/��(���?�u�J*-g
����H���]�D��������V��U|�5�������N��w0�-<�$5��?��8�����4[����ye�,X��s�AB}���wc�	����i��Z���f'r�����Z����di[�*<Y1�����/O����A%}E@zn��W�QZ�A���Y:�����2��Z������dP��F���31K6/g������� ���G�I���W*�����J��8=[�0q���FO�	��~������L9��[����
�;V?.�-U�"����%uK�;��&��5��]��
.�W��zG�]��5"���#�9�~����b5Y�'��@`z%�2��Q;%U�m�i�4��X����z��m"'�� ������s:p�=�)jpS�F)�Cq�
=�-�{�&/�+$�J�2�nt�<���y��yt���/k�S��_�_�^R�F_�]J9q�M>��N�iY&�����@�|���p_<SGr#V���oWS���v������BY��3�������K��$~�4���	3�xM���a�6@	F��Q"��7�����p�}T���C���{$�D7b(U�T	ew.���0g���#�f^���Ha����B����� (yB�c����
L���l���CJ���9&:E��W���T�� k�.+Pu/�vKs��S�����=����H[��1c�;d��}C�?�C+�������Cke����
���������nD�a�+;�].�Zg�,L��q�I
@8���Q��-��� @�w�ZT���t�X�����2�N5'�)!��m���)���UT�Md'�j��x1�����������E���oTxON�*�hJ�4U�r@����[4������}I<V�r���xJ���4%�1�]�R�v��!&P
����_��>�+�����z���#��:�3������v�`���*C8�\q��^��39�QuX��O�F��Hp�l��9H�&�fs.�E���O��DxI���z�K�H�MW�1���Z���^=����=f��-��-j�>����?��Y�o#~|c�h�P,�$O��/��{�M�
P�����a��&�v�X!R
���S���Yn(�ENN�{��6�|*P�����f7Bjk��)���O4��x�1��I>��2a]�$���(�hn��7��D�S��NR`3`Rl�gqPAw ��t���8=8�ds�D�h�0%��oVbK0��mXB��lg����Q�oR^�;�~0�k?��`6��(s	���R�			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Arguments recognised by kvim (KDE version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

Vim: Got X error but we continue...

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (^S^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort
&Delete it&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--display <display>	Run vim on <display>--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-black		Use reverse video-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-notip		Disable the tip dialog-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-tip			Display the tip dialog on startup-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???: Sorry, this command is disabled, the MzScheme library could not be loaded.???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Character used for SLASH must be ASCII; in %s line %d: %sChoice number (<Enter> cancels): Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d%% remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE118: Too many arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E46: Cannot set variable in the sandbox: "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Range not allowedE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE77: Too many file namesE783: duplicate char in MAP entryE789: Missing ']': %sE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPress ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing spell file %s ...Writing viminfo file "%s"Wrong COMPOUNDMAX value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR][CR missing][Deleted][Device][Error List][ILLEGAL BYTE in line %ld][Incomplete last line][NL found][NOT converted][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]and run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!error list %d of %d; %d errorsexpressions disabled at compile timefile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal new shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwhere case is ignored prepend / to make flag upper casewindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with KDE GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: vim
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2005-09-30 15:58+0200
PO-Revision-Date: 2005-09-30 15:58+0200
Last-Translator: Lubomir Host <rajo@platon.sk>
Language-Team: Slovak <sk-i18n@lists.linux.sk>
MIME-Version: 1.0
Content-Type: text/plain; charset=cp1250
Content-Transfer-Encoding: 8bit
X-Generator: Vim 7.x
			  (nie je implementovan�)

	Posledn� nastavenie z 

Argumenty:


pou�itie:
             zmenen�: 
         [nepou�iteln� na tomto po��ta�i]
         [nepou�ite�n� s touto verziou Vim]
         n�zov po��ta�a: 
    u��vate�sk� meno: 
         ID procesu : 
    Meno       Args Rozsah �plnos�  Defin�cia
   #   riadok
   alebo:
  # CIE� tag        �TART riadok  v s�bore/texte
 skok riadok st�pec s�bor/text
# Hist�ria %s (za��naj�ci najnov�ou polo�kou):

# Zoznam bufferov:

# S�borov� zna�ky:

# Hist�ria zna�iek v s�boroch (za��naj�ci najnov�ou polo�kou):

# Zoznam skokov (za��naj�ci najnov�ou polo�kou):

# Posledn� zamie�an� re�azec:
$
# Registre:

# glob�lne premenn�:

(1) S�bor m�e by� upravovan� in�m programom.
    Ak je tomu tak, potom si dajte pozor, aby ste po ulo�en� zmien
    nemali dve r�zne verzie toho ist�ho s�boru.

(2) �prava tohoto s�boru bola preru�en� neo�ak�van�m ukon�en�m programu.

(Zv�te ulo�enie tohoto s�boru pod in�m menom

--- Automatick� pr�kazy ---
--- Nastavenie glob�lnych volieb ---
--- Nastavenie lok�lnych volieb ---
--- Ponuky ---
--- Mo�nosti ---
--- Registre ---
--- Znaky ---
--- Polo�ky syntaxe ---
--- Polo�ky synchroniz�cie syntaxe ---
--- K�dy termin�lu ---
--- Kl�vesy termin�lu ---
16 bitov� MS-DOS verzia
32 bitov� verzia pre MS-DOS
Argumenty dostupn� pre gvim (Athena verzia):

Argumenty dostupn� pre gvim (GTK+ verzia):

Argumenty dostupn� pre gvim (Motif verzia):

Argumenty dostupn� pre gvim (RISC OS verzia):

Argumenty dostupn� pre gvim (neXtaw verzia):

Argumenty dostupn� pre kvim (KDE verzia):

Ve�k� verzia 
Nedj� sa vytvori� r�ry

Ned� sa spusti� shell 
Ned� sa spusti� sh shell

Vyvolanie fork zlyhalo

Pr�kaz ukon�en�

Prelo�en� 
N�jden� odkladac� s�bor s menom "
Maxim�lna verzia
Pou�it� z�platy: 
16 bitov� verzia pre MS Windows
16/32 bitov� GUI verzia pre MS Windows
32 bitov� GUI verzia pre MS Windows
32 bitov� verzia pre MS Windows konzolu
MacOS X (unix) verzia
MacOS X verzia
MacOS verzia
Mo�no nedo�lo k �iadnym zmen�m, alebo Vim neaktualizoval odkladac� s�bor.
Podrobnej�ie inform�cie z�sk�te pomocou "vim -h"

Norm�lna verzia
RISC OS verzia
Mal� verzia 
Minim�lna verzia 
Vim: Chyba X

Vim: Chyba X ale pokra�ujem ...

VAROVANIE: Obsah p�vodn�ho s�boru m�e by� straten� alebo po�koden�

[bajtov] celkom uvolnen�-alokovan� %lu-%lu, vyu�it� %lu, maxim�lne vyu�itie %lu

zna�ka riadok  st�pec text
zna�ka riadok  st�pec s�bor/text
 n�vratov� hodnota shellu 
synchronizujem polo�ky                 pre predvolen� vlastnosti Vim                               pre dva re�imy           d�tum vytvorenia:             vlastn�k:          [ned� sa otvori�]         [ned� sa pre��ta�]         [nevyzer� ako odkladac� s�bor Vim]         [od Vim verzie 3.0]        n�zov s�boru:       -- �iadne --
      NOV�� ako odkladac� s�bor!
         u��vate�sk� exrc s�bor: "        u��vate�sk� vimrc s�bor: "    Ak je tomu tak, potom pou�ite ":recover" alebo "vim -r     Pokia� ste tak u� urobili, tak vyma�te odkladac� s�bor "    Ukon�ite program, alebo opatrne pokra�ujte v �prav�ch.
    riadok=%ld  id=%d  meno=%s     syst�mov� s�bor s ponukou: "      u��vate�sk� gvimrc s�bor: "   V aktu�lnom adres�ri:
   V adres�ri    So zadan�m menom:
    d�tum vytvorenia:    n�zov po��ta�a:           syst�mov� vimrc s�bor: "  # pri typ tag  (U� vyp�san�)   druh� u��vate�sk� exrc s�bor: "  PODPORA LADENIA  Vlastnosti zahrnut� (+) a nezahrnut� (-):
 NEN�JDEN�  Pou��vam tag s p�smom inej ve�kosti!       implicitn� hodnota $VIM:"  syst�mov� gvimrc s�bor: " # pid    n�zov datab�zy                      predpona cesty
 (Preru�en�) (NEN�JDEN�) (vr�tane u� vyp�san�ch zh�d) (vlo�i�) (insert) Rolovanie (^E/^Y) (jazyk) (riadok vymazan�) (nepodporovan�) (vlo�i�) (nahradi�) (replace) Rolovanie (^E/^Y) (st�le be��) (nahradi� vertik�lne)  druh� u��vate�sk� vimrc s�bor: "  tret� u��vate�sk� vimrc s�bor: " < "%.*s" Prid�vam Arabsk� CHYBA PREVODU Dopl�ovanie pr�kazov�ho riadka (^V^N^P) K�pia %d z %d Dopl�ovanie defin�ci� (^D^N^P) Dopl�ovanie pod�a slovn�ka (^K^N^P) ZLYHALO Dopl�ovanie n�zvov s�borov (^F^N^P) Hebrejsk� VLO�I� Miestne dopl�ovanie k���ov�ch slov (^N^P) Dopl�ovanie k���ov�ch slov (^N^P) Dopl�ovanie tagov (^O^N^P) Dopl�ovanie vzoru ciest (^N^P) NAHRADI� OBR�TI� ZHODY OZNA� BLOK OZNA� RIADOK MEDZERA/d/j: obrazovka/str�nka/riadok dole, b/u/k: hore, q: koniec  Dopl�ovanie cel�ch riadkov (^S^N^P) Dopl�ovanie tagov (^]^N^P) Dopl�ovanie pod�a lexikonu (^T^N^P) Dopl�ovanie cel�ch riadkov (^U^N^P) VIZU�LNE VIZU�LNY BLOK VIZU�LNY RIADOK NAHRADI� VERTIK�LNE Dopl�ovanie cel�ch riadkov (^L^N^P) [Zmenen�] [p] [u] ^X re�im (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y) pripojen� ned� sa pou�� na tomto po��ta�i.
 ned� sa pou�i� s touto verziou Vim.
 f-b pre $VIMRUNTIME: " vo Win32 re�ime inform�cie typ s�boru
 zalomen� riadkov riadkov pred za�iatkom zna�ky na %ld riadkov na 1 riadku alebo viac vr�ten�
vim [argumenty]  s OLE podporou ulo�en�"
    a t�to spr�va sa u� nebude objavova�.
"
    pre obnovenie zmien (vi� ":help recovery)".
" u� existuje!# Tento viminfo s�bor bol vytvoren� editorom Vim %s.
# Hodnota 'encoding' (k�dovania) po�as z�pisu tohoto s�boru
# Pokia� budete opatrn�, m�ete ho upravova�.

%-5s: %-30s (Pou�itie: %s)%3d  %s %s  riadok %ld%<%f%h%m%=Strana %N%d bufferov vymazan�ch%d bufferov uvo�nen�ch%d bufferov odstr�nen�ch%d duplicitn� slovo(�) v %s%d s�borov pre �pravu
E�te zost�va %d s�borov k �prave. Chcete napriek tomu ukon�i� editor?%d upraven�ch s�borov z %d%ld St�pcov; %ld zmien%ld znakov%ld vymazan�ch riadkov%ld riadkov upraven�ch pomocou %s %d kr�t%ld riadkov upraven�ch naraz pomocou %s%ld riadkov --%d%%--%ld zmenen�ch riadkov%ld riadkov filtrovan�ch%ld riadkov odsaden�ch %ld riadkov presunut�ch%ld riadkov pre odsadenie...%ld skop�rovan�ch riadkov%ld riadkov, %ld zh�d%ld nov�ch riadkov%ld nahraden�%s Automatick� pr�kazy pre "%s"%s zru�en�%s zahoden�%s prebieha%s vr�ten�%s vr�tilo #%ld%s vr�tilo %sHodnota %s sa odli�uje od hodnoty pou�itej v inom .aff s�bore%s, riadok %ld%sviminfo: %s na riadku: &Zru�i�&Zru�i�&Filter&Pomocn�k&OK&OK
&Zru�i�&OK
&Na��ta� s�bor&Ok&Otvori� iba pre ��tanie
&Pokra�ova� v �prav�ch
O&bnovi� s�bor
&Koniec
&Zru�i�&Otvori� iba pre ��tanie
&Pokra�ovat v �prav�ch
O&bnovi� s�bor
&Koniec
&Zru�i�
Z&maza�&Nahradi�&Sp�&Ano
&Nie&Ano
&Nie
&Zru�i�&Ano
&Nie
&Ulo�i� v�etko
Zahodi� &v�etko
&Zru�i�' nie je zn�my. Dostupn� vstavan� termin�ly:'st�pce' nie je 80, nem�em spusti� extern� pr�kazvo�ba 'dictionary' (slovn�k) je pr�zdna'vo�ba 'history' je nastaven� na nuluPre "%s" je nastaven� vo�ba 'readonly' (iba na ��tanie).
Prajete si aj tak ulo�i�?vo�ba 'thesaurus' (lexikon) je pr�zdna(%d z %d)%s%s: (+%ld pre BOM)(preru�en�) (Chybn�)+			Nastav� kurzor na koniec s�boru+-%s%3ld riadky: +--%3ld riadkov zahnut�ch +<riadok>		Nastav� kurzor na <riadok>+reverse		Nepou�ije reverzn� farby (tie� +rv),
alebo bol s�bor po�koden�.-                   ��ta� text z �tandardn�ho vstupu--			M�u nasledova� iba n�zvy s�borov-- Pokra�ovanie ---- H�ad�m...--- Vlo�en� s�bory--Vymazan�----Buffer neobsahuje �iadne riadky----cmd <pr�kaz>		Vykon� <pr�kaz> pred nahrat�m vimrc s�boru--columns <po�et>	Po�iato�n� ��rka okna v st�pcoch-display <displej>	Spust� vim na <displej>--literal		Nexpandova� �ol�kov� znaky (wildcards)--noplugin		Nenahr� z�suvn� moduly(plugin skripty)--remote <s�bory>	Upravi� <s�bory> na Vim servri ak je to mo�n�--remote-expr <v�raz>	Spusti <v�raz> na servri a vytla�� v�sledok--remote-send <vo�by>	Odo�le <vo�by> na Vim server a skon��--remote-silent <s�bory>	To ist�, ale nes�a�uj si, ak neexistuje server--remote-wait <s�bory>	Ako --remote ale �ak� na s�bory pre ukon�enie �prav--remote-wait-silent <s�bory>	To ist�, ale nes�a�uj si, ak neexistuje server-role <rola>	Nastav� unik�tnu rolu pre identifik�ciu hlavn�ho okna--rows <po�et>	Po�iato�n� v��ka okna v riadkoch--serverlist		Vyp�e zoznam mien dostupn�ch Vim servrov a skon��--servername <n�zov>	Odo�le na Vim server <n�zov>--socketid <xid>	Otvor� Vim vn�tri in�ho GTK programu.--version		Vyp�e inform�cie o verzii a skon��-A			spusti v Arabic m�de-C			Kompatabiln� s Vi: 'compatible'-D			Ladiaci m�d-F			spusti vo Farsi m�de-H			spusti v hebrejskom m�de-L			Rovnak� ako -r-M			Zmeny v texte zak�zan�-N			Kompatibilita s Vi vypnut�: 'nocompatible'-O[N]		Ako -o ale rozdel� vertik�lne-P <titulok rodi�a>	Otvor Vim vn�tri materskej aplik�cie-R			M�d iba pre ��tanie (ako "view")-S <sedenie>		Po nahrat� prv�ho s�boru vykon� pr�kazy v s�bore <sedenie>-T <termin�l>	Nastav� typ termin�lu na <termin�l>-U <gvimrc>		Pou�ije <gvimrc> namiesto ak�hoko�vek .gvimrc-V[N]		�rove� v�pisu hl�ok-W <skript>		Ulo�� v�etky nap�san� pr�kazy do s�boru <skript>-X			Nepripoj� sa k X serveru-Z			Obmedzen� m�d (rovnak� ako "rvim")-b			Bin�rny m�d-background <farba>	Nastav� sa <farba> pozadia (tie� -bg)-black		Pou�ije reverzn� farby-boldfont <p�smo>	Nastav� <p�smo> pre zv�raznen� text-borderwidth <��rka>	Nastav� <��rku> okrajov (tie� -bw)-c <pr�kaz>		Po nahrat� prv�ho s�boru vykon� <pr�kaz>-d			Porovn�vac� m�d (rovnak� ako "vimdiff")-dev <zariadenie>		Pou�i� <zariadenie> pre I/O-display <displej>	Pripoj� vim na pr�slu�n� X-server-display <displej>	Spust� vim na <displej>-display <displej>	Spust� vim na <displej> (tie� --display)-e			Ex m�d (rovnak� ako "ex")-f			Nebude pou��va� newcli pre otvorenie okna-f  alebo  --nofork	Popredie: Pri spusten� grafick�ho (GUI) m�du sa nepresunie do pozadia-font <p�smo>		Nastav� <p�smo> norm�lneho textu (tie� -fn)-foreground <farba>	Nastav� sa <farba> popredia (tie� -fg)-g			Spusti� v grafickom (GUI) m�de (rovnak� ako "gvim")-geometry <geometrie>	Nastav� sa <geometria> (tie� -geom)-h  alebo  --help	Vyp�e t�to n�povedu a skon��-i <viminfo>		Pou�ije <viminfo> namiesto ak�hoko�vek .viminfo-iconic		Spust� vim minimalizovan�-italicfont <p�smo>	Nastav� <p�smo> pre kurz�vu-l			Lisp m�d-m			Zmeny (ukladanie s�borov) zak�zan�-menuheight <v��ka>	Nastav� <v��ku> ponuky (tie� -mh)-n			Nevytv�ra� odkladac� s�bor, pou��va� iba pam�-name <n�zov>		Pou�ije resource ako by vim mal <n�zov>-notip		Nezobrazuj tip pri �tarte-o[N]		Otvor� N okien (implicitne jedno pre ka�d� s�bor)-q [chybov� s�bor]  upravi� s�bor na mieste v�skytu prvej chyby-r			Vyp� zoznam odkladac�ch s�borov a skon�i-r (s n�zvom s�boru)	Obnov� preru�en� sedenie-register		Prihl�si� gvim na OLE-reverse		Pou�ije reverzn� farby (tie� -rv)-s			Tich� (d�vkov�) m�d (iba pre "ex")-s <skript>		Na��ta pr�kazy norm�lneho m�du zo <skriptu>-scrollbarwidth <��rka>  Nastav� <��rku> posuvnej li�ty (tie� -sw)-t tag          upravi� s�bor na mieste defin�cie tagu-tip			Zobraz tip pri �tarte-u <vimrc>		Pou�ije <vimrc> namiesto ak�hoko�vek .vimrc-register		Odhl�si� gvim z OLE-v			Vi m�d (rovnak� ako "vi")-w <skript>		Pripoj� v�etky nap�san� pr�kazy do s�boru <skript>-x			�prava za�ifrovan�ch s�borov-xrm <resource>	Nastav� zadan� <resource>-y			Jednoduch� m�d (rovnak� ako "evim", bezm�dov�)...(skr�ten�)Riadok / v %s riadok %d ignorovan�: %s/encoding= riadok nasleduj�ci po slove v %s riadok %d ignorovan�: %s1 buffer vymazan�1 buffer uvo�nen�1 buffer odstr�nen�1 zmena1 znak1 riadok upraven� pomocou %s %d kr�tpo�et riadkov upraven�ch naraz pomocou %s: 11 riadok --%d%%--1 riadok zmenen�1 riadok odsaden� 1 vymazan� riadok1 riadok presunut�1 riadok skop�rovan�1 riadok, 1 zhodaE�te zost�va 1 s�bor k �prave. Chcete napriek tomu ukon�i� editor?1 nov� riadok1 nahradeniedruh� u��vate�sk� gvimrc s�bor: "tret� u��vate�sk� gvimrc s�bor: ": Odoslanie v�razu zlyhalo.
: Odoslanie zlyhalo.
: Odoslanie zlyhalo. Pok��am sa spusti� lok�lne
; zhoda <%s>%s%s  %d,  �estn�stkovo %02x,  osmi�kovo %03o<objekt bufferu (vymazan�) na %8lX><ned� sa otvori�> <pr�zdny><okno %d><objekt okna (vymazan�) na %.8lX><objekt okna (nezn�my) na %.8lX>> %d,  �estn�stkovo %04x,  osmi�kovo %o> %d,  �estn�stkovo %08x,  osmi�kovo %ood ??? po ???END m�u by� riadky pomie�an�od ??? po ???END m�u by� riadky vlo�en�/vymazan�???: Prep��te, tento pr�kaz je vypnut�, MzScheme kni�nica nem�e by� na��tan�.???CH�BA BLOK???PR�ZDNY BLOK???KONIEC???CHYBN� PO�ET RIADKOV???CH�BAJ�CE RIADKY???CH�BA MNOHO RIADKOVANCHOR_BUF_SIZE pr�li� mal�.Prida� nov� datab�zuPridan� cscope datab�za %sPr�pona pou�it� aj pre BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %sPr�pona pr�li� dlh� v %s riadok %d: %sV�etkoV�etky cscope datab�ze resetovan�V�etky vlo�en� s�bory boli n�jden�Existuje u� iba jedno oknoPripoji� s�borCh�ba argument poNa riadkuPokus o op�tovn� otvorenie skriptu: "V�chodzia podobaZadan� sp�tn� rozsah. OK pre z�menuSta�te sa registrovan�m u��vate�om Vimu!Piip!Pred bajtom %ldKoniecSAL a SOFO riadky z�rove� v %sBod preru�enia v "%s%s" na riadku %ldNaru�en� podmienka v %s riadok %d: %sPrezrie� trieduCOMPOUNDSYLMAX pou�it� bez SYLLABLEVol�m shell na spustenie: "%s"Ned� sa n�js� do�asn� s�bor pre konverziuZru�i�Ned� sa pripoji� na NetbeansNed� sa pripoji� na Netbeans #2Zlyhalo pripojenie na SNiFF+, Preverte prostredie (sniffemacs sa mus� nach�dza� v $PATH).
Ned� sa vytvori� Ned� sa spusti� Ned� sa otvori� NIL:
Ned� sa otvori� s�bor "%s"Ned� sa otvori� pre z�pis: "Ned� sa otvori� pre v�stup skriptu: "Nemo�no interpretova� adres�r: "%s"Zmeni� "%.*s" na:Znak pou�it� pre SLASH mus� by� ASCII; v %s riadok %d: %sZvo�te ��slo (<Enter> zru��): St�pec %s z %s; Riadok %ld z %ld; Slovo %ld z %ld; Bajt %ld z %ldSt�pec %s z %s; Riadok %ld z %ld; Slovo %ld z %ld; Znak %ld z %ld; Bajt %ld z %ldPr�kazov� riadokPreklad: Preklada�: Skomprimovan�ch %d z %d uzlov; %d%% zost�vaRob�m kompresiu stromu slov...Konverzia slova zlyhala v %s riadok %d: %sKonverzia v %s nie je podporovan�Konverzia v %s nie je podporovan�: z %s do %sKonverzia s 'charconvert' sa nepodarilaNem�em opravi� odkazy funkci� na DLL!Nem�em nahra� vim32.dll!Cscope tag: %sAktu�lny %sjazyk: "%s"Potom vyma�te odkladac� s�bor s pr�ponou .swp.

Porovna� &VimomRozdielna kombin�cia pr�znakov v nasleduj�com bloku pr�pon v %s riadok %d: %sSmerAdres�reAdres�r	*.ni�
Chcete ho naozaj ulo�i�Hotovo!Dvojit� ; v zozname premenn�chDoluDuplicitn� riadok /encoding= v %s riadok %d ignorovan�: %s Duplicitn� riadok /regions= v %s riadok %d ignorovan�: %sDuplicitn� pr�pona v %s riadok %d: %sOpakovan� znak v MAP v %s riadok %dOpakuj�ce sa slovo v %s riadok %d: %sE100: V porovn�vacom m�de sa nenach�dza in� bufferE101: Viac ako dva buffery v porovn�vacom m�de; neviem, ktor� pou�i�E102: Ned� sa n�js� buffer "%s"E103: Buffer "%s" nie je v porovn�vacom m�deE104: digraph nesmie obsahova� znak EscapeE105: Pou�it� pr�kaz :loadkeymap v s�bore, ktor� nie je interpretovan�E107: Ch�baj� z�tvorky: %sE108: Premenn� "%s" neexistujeE109: Po '?' ch�ba ':'E10: po \ by malo nasledova� /, ? alebo &E110: Ch�ba ')'E111: Ch�ba ']'E112: Ch�ba meno vo�by: %sE113: Nezn�ma vo�ba: %sE114: Ch�baj� �vodzovky: %sE115: Ch�baj� �vodzovky: %sE118: Pr�li� mnoho argumentov pre funkciu %sE11: Chybn� pr�kaz v okne pr�kazov�ho riadku; <Enter> sp���a, CTRL-C ukon�ujeE121: Nedefinovan� premenn�: %sE122: Funkcia %s u� existuje. Pou�ite ! pre jej nahradenie.E124: Ch�ba '(': %sE125: Nepr�pustn� argument: %sE126: Ch�ba :endfunctionE128: N�zov funkcie mus� za��na� ve�k�m p�smenom alebo obsahova� dvojbodku: %sE129: Je vy�adovan� meno funkcieE12: Pr�kaz nie je z exrc/vimrc v aktu�lnom adres�ri alebo pri h�adan� tagu povolen�.E130: Nezn�ma funkcia: %sE131: Ned� sa vymaza� funkcia %s: je pou��van�E132: Zanorenie funkci� je hlb�ie ne� 'maxfuncdepth'E133: :return mimo funkciuE134: Prekrytie riadkov sebou sam�miE135: Automatick� pr�kazy *Filter* nesm� meni� aktu�lny bufferE136: viminfo: pr�li� mnoho ch�b, preskakujem zbytok s�boruE137: Do viminfo s�boru %s sa ned� zapisova�E138: Ned� sa ulo�i� viminfo s�bor %s!E139: S�bor je na��tan� v inom buffereE13: S�bor existuje (pou�ite ! pre prep�sanie)E140: Pou�ite ! pre ulo�enie ne�pln�ho bufferuE141: �iadny n�zov s�boru pre buffer %ldE142: S�bor nebol ulo�en�: ukladanie je zak�zan� vo�bou 'write'E143: Automatick� pr�kazy neo�ak�vane zmazali nov� buffer %sE144: ne��seln� argument pre :zE145: rvim nepovo�uje pou�itie pr�kazov shelluE146: Regul�rne v�razy nesm� by� oddelen� p�smenamiE147: :global sa ned� vola� rekurz�vneE148: Pri pr�kaze global ch�ba regul�rny v�razE149: �utujem, pre %s nie je �iadny pomocn�kE14: Chybn� adresaE150: %s nie je adres�romE152: %s sa ned� sa otvori� pre z�pisE153: %s as ned� otvori� pre ��tanieE154: Duplicitn� tag "%s" v s�bore %s/%sE155: Nezn�ma zna�ka: %sE156: Ch�ba meno pre zna�kuE157: Chybn� ID zna�ky: %ldE158: Chybn� meno bufferu: %sE159: Ch�ba �islo zna�kyE15: Chybn� v�raz: %sE160: Nezn�mu pr�kaz pre zna�ky: %sE161: Bod preru�enia nen�jden�: %sE162: Buffer "%s" obsahuje neulo�en� zmenyE163: Pre �pravu bol zadan� iba jeden s�borE164: Ned� sa presko�i� pred prv� s�borE165: Ned� sa presko�i� za posledn� s�borE166: S�bor sa ned� otvori� pre ukladanieE167: pr�kaz :scriptencoding pou�it� mimo interpretovan� s�borE168: pr�kaz :finish pou�it� mimo interpretovan� s�borE169: Pr�kaz je pr�li� rekurz�vnyE16: Chybn� rozsahE170: Ch�ba :endforE170: Ch�ba :endwhileE171: Ch�ba :endifE172: Pr�pustn� je iba jeden n�zov s�boruE173: E�te zost�va %ld s�borov k �prave.E173: E�te zost�va 1 s�bor k �prave.E174: Pr�kaz u� existuje: pou�ite ! pre predefinovanieE175: Neboli zadan� �iadne vlastnostiE176: Chybn� po�et argumentovE177: Po�et nem�e by� zadan� dvakr�tE178: Chybn� implicitn� hodnota pre po�etE179: pre doplnenie (-complete) je potrebn� argumentE17: "%s" je adres�romE180: Chybn� hodnota doplnenia: %sE181: Chybn� vlastnos�: %sE182: Chybn� meno pr�kazuE183: Pou��vate�om definovan� pr�kazy musia za��na� ve�k�m p�smenomE184: Pou��vate�om definovan� pr�kaz %s neexistujeE185: Sch�ma farieb %s nen�jden�E186: �iadny predch�dzaj�ci adres�rE187: Nezn�myE188: Na tejto platforme sa ned� zisti� umiestnenie oknaE189: "%s" existuje (pou�ite ! pre vyn�tenie)E18: Neo�ek�van� znaky v :letE190: "%s" sa ned� otvori� pre z�pisE191: Argumentem m�e by� iba p�smeno alebo prav� �i �av� apostrofE192: Rekurz�vne pou�itie pr�kazu :normal pr�li� hlbok�E193: :endfunction mimo funkciuE194: �iadny alternat�vny n�zov s�boru, ktor�m by bolo mo�n� nahradi� '#'E195: S�bor viminfo sa ned� sa otvori� na ��tanieE196: V tejto verzi nie s� digraphy podporovan�E197: Ned� sa nastavi� jazyk na "%s"E198: cmd_pchar prevy�uje d�ku pr�kazuE199: Akt�vne okno alebo buffer bol vymazan�E19: Zna�ka m� chybn� ��slo riadkuE200: automatick� pr�kazy *ReadPre urobili s�bor ne�itate�n�mE201: automatick� pr�kazy *ReadPre nesm� meni� aktu�lny bufferE202: Po konverzii je s�bor ne�itate�n�!E203: Automatick� pr�kazy zmazali �i deaktivovali buffer, ktor� mal by� ulo�en�E204: Automatick� pr�kaz neo�ak�van�m sp�sobom zmenil po�et riadkovE205: patchmode: ned� sa ulo�i� p�vodn� s�borE206: patchmode: ned� sa zapisova� do pr�zdneho p�vodn�ho s�boruE207: Ned� sa vymaza� z�lo�n� s�borE208: Chyba pri z�pise do "%s"E209: Chyba pri uzatv�ran� "%s"E20: Zna�ka nie je nastaven�E210: Chyba pri ��tan� "%s"E211: Varovanie: s�bor "%s" u� nie je dostupn�E212: S�bor sa ned� otvori� pre ukladanieE213: Ned� sa spravi� konverzia (pou�ite ! pre z�pis bez konverzie)E214: Ned� sa n�js� do�asn� s�bor pre ukladanieE215: Nepr�pustn� znak po *: %sE216: Udalos� %s neexistujeE216: Udalos� alebo skupina %s neexistujeE217: Automatick� pr�kazy sa nedaj� spusti� pre V�ETKY udalostiE218: vnorenia automatick�ho pr�kazu s� pr�li� hlbok�E219: Ch�ba {.E21: Nemo�no robi� zmeny, vo�ba 'modifiable' je vypnut�E220: Ch�ba }.E222: Prida� do bufferu pre ��tanieE223: rekurz�vne mapovanieE224: pre %s u� glob�lna skratka existujeE225: pre %s u� glob�lne mapovanie existujeE226: pre %s u� skratka existujeE227: pre %s u� mapovanie existujeE228: makemap: nepr�pustn� m�dE229: Ned� sa spusti� GUI (grafick� rozhranie)E22: Skripty vnoren� pr�li� hlbokoE230: Ned� sa ��ta� z "%s"E231: vo�ba 'guifontwide' (nastavenie �irok�ho p�sma) je chybne nastaven�E232: BalloonEval ned� sa vytvori� spr�vou a z�rove� sp�tn�m volan�mE233: ned� sa otvori� displejE234: Nezn�ma sada p�siem: %sE235: Nezn�me p�smo: %sE236: P�smo "%s" nem� pevn� ��rkuE237: Zlyhal v�ber tla�iarneE238: Chyba tla�e: %sE239: Chybn� text zna�ky: %sE23: �iadny alternat�vny s�borE240: Neexistuje pripojenie k Vim serveruE241: Nem�em posla� na %sE243: Argument nie je podporovan�: "-%s"; Pou�ite OLE verziu.E244: Chybn� n�zov znakovej sady "%s" v n�zve p�sma "%s"E245: Chybn� znak '%c' v n�zve p�sma "%s"E246: automatick� pr�kaz FileChangedShell vymazal bufferE247: �iaden registrovan� server pomenovan� "%s"E248: Chyba po�as prenosu pr�kazu do cie�ov�ho programuE24: Tak� skratka neexistujeE250: Ch�ba p�smo pre nasleduj�ce znakov� sady %s:E251: VIM registrov� vlastnos� je zle form�tovan�.  Vymazan�!E252: N�zov sady p�siem: %sE253: N�zov sady p�siem: %s
E254: Ned� sa alokova� farba %sE255: Chyba -- ned�j� sa pre��ta� ozna�ovacie d�ta!E256: Hangul ERROR - chyba k�rejsk�ho sp�sobu vkladania znakovE257: cstag: tag nen�jden�E258: Nem�em posla� klientoviE259: cscope h�adanie %s vo vzore %s nena�lo �iadnu zhoduE25: Ned� sa pou�� GUI: nebolo zapnut� pri preklade programuE261: cscope spojenie %s nen�jden�E262: chyba pri ��tan� cscope spojenia %ldE262: Prep��te, tento pr�kaz je vypnut�, Python kni�nica nem�e by� na��tan�.E264: Python: Chyba pri inicializ�cii I/O objektovE266: Prep��te, tento pr�kaz je vypnut�, Ruby kni�nica nem�e by� na��tan�.E26: Ned� sa pou�� hebrejsk� re�im: nebol zapnut� pri preklade programu
E273: Nezn�my 'longjmp' stav %dE274: Sniff: Chyba po�as ��tania. Odpojen�E275: Nezn�ma SNiFF+ po�iadavka: %sE276: Chyba pripojenia na SNiFF+E277: Nem�em ��ta� odpove� servraE278: SNiFF+ nie je pripojen�E279: Nie je SNiFF+ bufferomE27: Ned� sa pou�� farsi re�im: nebol zapnut� pri preklade programu
E280: TCL FATAL ERROR: reflist po�koden�!? Ozn�mte, pros�m, t�to chybu na vim-dev@vim.orgE281: TCL CHYBA: n�vratov� k�d nie je cel� ��slo!? Ozn�mte, pros�m, t�to chybu na vim-dev@vim.orgE282: Ned� sa ��ta� z "%s"E283:"%s" nevyhovuj� �iadne zna�kyE284: Nedaj� sa nastavi� IC hodnotyE285: Nepodarilo sa vytvori� vstupn� kontextE286: Nepodarilo sa otvori� vstupn� met�duE287: Varovanie: likvida�n� sp�tn� volanie sa ned� nastavi� na IME288: vstupn� met�da nepodporuje �iadny �t�lE289: vstupn� met�da nepodporuje m�j 'preedit' typE28: Skupina zv�raznenia %s neexistujeE290: Nadbodov� �t�l vy�aduje sadu fontov (fontset)E291: M�te GTK+ verziu star�iu ne� 1.2.3. Stavov� plocha vypnut�.E292: Server vstupn�ch met�d nebe��E293: blok nebol zamknut�E294: Chyba posunu pri ��tan� odkladacieho s�boruE295: Chyba pri ��tan� odkladacieho s�boruE296: Chyba posunu pri ukladan� do odkladacieho s�boruE297: Chyba pri ukladan� do odkladacieho s�boruE298: Ned� sa z�ska� blok 0?E298: Ned� sa z�ska� blok 1?E298: Ned� sa z�ska� blok 2?E299: Vykonanie k�du v jazyku Perl nie je mo�n� v bezpe�nostnej schr�nke bez bezpe�nostn�ho moduluE29: Zatia� nie je vlo�en� �iaden textE300: Odkladac� s�bor u� existuje (symlink �tok?)E301: Ups, odkladac� s�bor bol straten�!!!E302: Ned� sa premenova� odkladac� s�borE303: Ned� sa otvori� odkladac� s�bor pre "%s", oprava nemo�n�E304: ml_upd_block0(): ned� sa z�ska� blok 0??E305: Odkladac� s�bor pre %s nebol n�jden�E306: Ned� sa otvori� %sE307: %s sa nezd� by� odkladac�m s�borom VimE308: Varovanie: P�vodn� s�bor mohol by� zmenen�E309: Ned� sa ��ta� blok 1 z %sE30: �iadny predch�dzaj�ci pr�kazov� riadokE310: ID bloku 1 je chybn� (je %s odkladac�m s�borom?)E311: Obnova preru�en�E312: V priebehu obnovy do�lo k chyb�m; skontrolujte riadky za��naj�ce na ???E313: Ned� sa zachova� - odkladac� s�bor neexistujeE314: Uchovanie sa nepodariloE315: ml_get: chybn� ��slo riadku: %ldE316: ml_get: ned� sa n�js� riadok %ldE317: chybn� ��slo ukazovate�a na blokE317: chybn� ��slo ukazovate�a na blok 2E317: chybn� ��slo ukazovate�a na blok 3E317: chybn� ��slo ukazovate�a na blok 4E318: Aktualizovan�ch pr�li� ve�a blokov?E319: �utujem, ale tento pr�kaz nie je dostupn� v tejto verziiE31: Mapovanie nen�jden�E320: Ned� sa n�js� riadok %ldE321: ned� sa obnovi� "%s"E322: ��slo riadku je mimo rozsah: %ld (za koncom)E323: chybn� po�et riadkov v bloku %ldE324: Ned� sa otvori� v�stupn� PostScriptov� s�borE325: POZORE326: Pr�li� mnoho odkladac�ch s�borovE327: �as� cesty k predmetu ponuky nie je podponukouE328: Ponuka existuje iba v inom m�deE329: Ponuka "%s" neexistujeE32: �iadny n�zov s�boruE330: Cesta ponuky nesmie vies� do podponukyE331: Polo�ky ponuky sa nejd� prid�va� priamo na li�tuE332: Odde�ova� nesmie by� �as�ou cesty ponukyE333: Cesta ponuky mus� vies� k polo�ke ponukyE334: Ponuka nen�jden�: %sE335: V %s m�de nie je ponuka definovan�E336: Cesta ponuky mus� vies� do podponukyE337: Ponuka nen�jden� - skontrolujte n�zvy pon�kE338: �utujem, ale konzolov� verzia nepodporuje prehliada� s�borovE339: Vzor je pr�li� dlh�E33: �iadny predch�dzaj�ci prisl�chaj�ci spr�vny v�razE340: Riadok sa st�va pr�li� dlh�mE341: Vn�torn� chyba: lalloc(%ld, )E342: Nedostatok pam�te! (alokujem %lu bajtov)E343: Chybn� cesta: '**[��slo] mus� by� bu� na konci cesty, alebo mus� by� nasledovan� '%s. Vi� :help path.E344: Adres�r "%s" sa ned� n�js� v cdpathE345: S�bor "%s" sa nepodarilo n�js�E346: �iadny �al�� adres�r "%s" nebol v cdpath n�jden�E347: �iadny �al�� s�bor "%s" nebol v ceste n�jden�E348: Pod kurzorom nie je �iadny re�azecE349: Pod kurzorom nie je �iadny identifik�torE34: �iadny predch�dzaj�ci pr�kazE350: Ned� sa vytvori� vnorenie s aktu�lnou met�dou 'foldmethod'E351: Ned� sa zru�i� vnorenie s aktu�lnou met�dou 'foldmethod'E352: Pomocou 'foldmethod' sa ned� vymaza� vnorenieE353: Register %s je pr�zdnyE354: '%s' nie je pr�stupn� meno registruE355: Nezn�ma vo�ba: %sE356: get_varp CHYBAE357: 'langmap': pre %s ch�ba vyhovuj�ci znakE358: 'langmap': nadbyto�n� znaky po bodko�iarke: %sE359: Nastavovanie re�imu obrazovky nie je podporovan�E35: �iadny predch�dzaj�ci regul�rny v�razE360: Ned� sa spusti� shell s -f vo�bouE363: vzor pou��va viac pam�te ako 'maxmempattern'E364: Vyvolanie kni�ni�nej funkcia zlyhalo pre "%s()"E365: PostScriptov� s�bor sa nepodarilo vytla�i�E367: Skupina "%s" neexistujeE369: chybn� polo�ka v %s%%[]E36: Nedostatok miestaE370: Nepodarilo sa nahra� kni�nicu %sE371: Pr�kaz nen�jden�E372: Pr�li� mnoho %%%c vo form�tovacom re�azciE373: Neo�ak�van� v�skyt %%%c vo form�tovacom re�azciE374: Vo form�tovacom re�azci ch�ba ]E375: Nepodporovan� form�tov� �pecifik�cia %%%c vo form�tovacom re�azciE376: Nepr�stupn� %%%c v prefixe form�tovacieho re�azcaE377: Nepr�stupn� %%%c vo form�tovacom re�azciE378: 'errorformat' neobsahuje �iadny vzorE379: Ch�baj�ci alebo pr�zdny n�zov adres�raE37: Neulo�en� zmeny (pou�ite ! pre vyn�tenie)E380: Koniec quickfix zoznamuE381: Za�iatok quickfix zoznamuE382: Ned� sa ulo�i�, je nastaven� vo�ba 'buftype'E383: Nepr�pustn� h�adan� re�azec: %sE384: h�adanie dosiahlo za�iatok bez n�jdenia %sE385: h�adanie dosiahlo koniec bez n�jdenia %sE386: Po ';' o�ak�vam '?' alebo '/'E387: Zhoda je na aktu�lnom riadkuE388: Ned� sa n�js� defin�ciaE389: Ned� sa n�js� vzorE38: Nulov� argumentE390: Nepr�pustn� argument: %sE391: Syntaktick� zostava %s neexistujeE392: Syntaktick� zostava %s neexistujeE393: group[t]here nesmie by� na tomto miesteE394: Pre %s ch�ba polo�ka regi�nuE395: obsahuje argumenty, ktor� tu nie s� povolen�E396: obsahuje argumenty, ktor� tu nie s� povolen�E397: Vy�adovan� n�zov s�boruE398: Ch�ba '=': %sE399: Pr�li� m�lo argumentov: oblas� syntaxe %sE39: O�ak�van� ��sloE400: Nebola zadan� �iadna zostavaE401: Odde�ova� vzoru %s nen�jden�E402: Chyba za vzorom: %sE403: synchroniz�cia syntaxe: vzor pokra�ovania riadkov zadan� dvakr�tE404: Chybn� argumenty: %sE405: Ch�ba znamienko rovn� sa: %sE406: Pr�zdny argument: %sE407: %s tu nie je povolen�E408: %s mus� by� prv� v 'contains' zoznameE409: Nezn�my n�zov skupiny: %sE40: Ned� sa otvori� chybov� s�bor %sE410: Chybn� podraden� pr�kaz :syntax : %s E411: skupina zv�raznenia %s nebola n�jden�E412: Pr�li� m�lo argumentov: ":highlight link %s"E413: Pr�li� mnoho argumentov: ":highlight link %s"E414: skupina je nastaven�, odkaz na zv�raz�ovaciu skupinu ignorovan�E415: neo�ak�van� znamienko rovn� sa: %sE416: ch�ba znamienko rovn� sa: %sE417: ch�ba argument: %sE418: Nepr�pustn� hodnota: %sE419: farba popredia nie je zn�maE41: Nedostatok pam�ti!E420: farba pozadia nie je zn�maE421: N�zov alebo ��slo farby nebolo rozpoznan�: %sE422: termin�lov� k�d je pr�li� dlh�: %sE423: Nepr�pustn� argument: %sE424: Pou��van�ch pr�li� ve�a odli�n�ch zv�raz�ovac�ch vlastnost�E425: Ned� sa sko�i� pred prv� vyhovuj�ci tagE426: tag %s nen�jden�E427: Vyhovuje iba jeden tagE428: Za posledn� vyhovuj�ci tag sa ned� presko�i�E429: S�bor "%s" neexistujeE42: �iadne chybyE430: Cesta k s�boru tagov %s bola orezan�
E431: Chyba form�tovania v s�bore tagov "%s"E432: Obsah s�boru tagov %s nie je zoraden�E433: �iadny s�bor tagovE434: Ned� sa n�js� vzor tagovE435: Tag sa ned� n�js�, iba h�dam!E436: Termcap neobsahuje polo�ku "%s"E437: Termin�l mus� ma� schopnos� "cm" (schopnos� pohybu kurzora)E438: u_undo: ��sla riadkov s� chybn�E439: z�znam o zmen�ch po�koden�E43: Po�koden� re�azac pre vyh�ad�vanieE440: ch�ba opravn� riadokE441: Nen�jden� �iadne okno n�h�aduE442: Okno sa ned� rozdeli� z�rove� v m�de 'vrchn�-�av�' a 'spodn�-prav�' ('topleft' a 'botright')E443: Ned� sa rotova�, ak je in� okno rozdelen�E444: Posledn� okno sa ned� zatvori�E445: In� okno obsahuje zmenyE446: Pod kurzorom sa nenach�dza n�zov s�boruE447: S�bor "%s" sa ned� n�js� v cesteE448: Nepodarilo sa nahra� funkciu kni�nice %sE449: Bol prijat� chybn� v�razE44: Po�koden� regexp programE455: Ned� sa zapisova� do v�stupn�ho PostScriptov�ho s�boruE456: Nemo�no n�js� PostScriptov� zdrojov� s�bor "%s.ps"E456: Nemo�no n�js� PostScriptov� zdrojov� s�bor "cidfont.ps"E456: Nemo�no n�js� PostScriptov� zdrojov� s�bor "prolog.ps"E456: Ned� sa otvori� s�bor "%s"E457: Ned� sa ��ta� PostScriptov� s�bor "%s"E459: �iadny predch�dzaj�ci adres�rE45: vo�ba 'readonly' (iba na ��tanie) je nastaven� (pou�ite ! pre prep�sanie)E460: 'Resource fork' bude straten� (pou�ite ! pre vyn�tenie)E461: Nepr�pustn� meno premennej: %sE462: Nemo�no pripravi� na op�tovn� na��tanie "%s"E463: Regi�n je uzamknut�, nemo�no modifikova�E464: Nejednozna�n� pou�itie pou��vate�om definovan�ho pr�kazuE465: :winsize (ve�kos� okna) vy�aduje dva argumentyE466: :winpos (poz�cia okna) vy�aduje dva argumentyE467: Vlastn� doplnenia vy�aduj� meno funkcie ako argumentE468: Argument doplnenia je povolen� iba pre vlastn� dop��ania (completion)E469: chybn� cscopequickfix pr�znak %c pre %cE46: Ned� sa nastavi� premenn� len na ��tanie "%s"E46: Ned� sa nastavi� premenn� v bezpe�nostnej schr�nke: "%s"E470: Pr�kaz preru�en�E471: Je vy�adovan� argumentE472: Pr�kaz zlyhalE473: Vn�torn� chybaE474: Chybn� argumentE475: Chybn� argument: %sE476: Chybn� pr�kazE477: ! nie je povolen�E478: �iadnu paniku!E479: �iadna zhodaE47: Chyba pri ��tan� chybov�ho s�boruE480: �iadna zhoda: %sE481: Rozsah nie je povolen�E482: Ned� sa vytvori� s�bor %sE483: Ned� sa z�ska� n�zov do�asn�ho s�boruE484: Ned� sa otvori� s�bor %sE485: Ned� sa ��ta� s�bor %sE486: Vzor nen�jden�: %sE487: Argument mus� by� kladn�E488: Nadbyto�n� znaky na konciE48: Nie je dovolen� v bezpe�nostnej schr�nkeE490: Nebol n�jden� �iadne vnorenieE492: Nie je pr�kazom editoruE493: Zadan� sp�tn� rozsahE494: Pou�ite w alebo w>>E495: �iadny n�zov s�boru, ktor�m by bolo mo�n� nahradi� "<afile>"E496: �iadne ��slo bufferu, ktor�m by bolo mo�n� nahradi� "<abuf>"E497: �iadna zhoda automatick�ch pr�kazov, ktorou by bolo mo�n� nahradi� "<amatch>"E498: �iadny :source s�bor, ktor�m by bolo mo�n� nahradi� "<sfile>"E499: Pr�zdn� n�zov s�boru pre '%' alebo '#', funguje iba s ":p:h"E49: Chybn� hodnota ve�kosti rolovaniaE500: V�sledkom vyhodnotenia je pr�zdny re�azecE501: Koniec s�boruE505: E506: Ned� sa zapisova� do z�lo�n�ho s�boru (pou�ite ! pre vyn�tenie)E507: Chyba pri uzatv�ran� z�lo�n�ho s�boru (pou�ite ! pre vyn�tenie)E508: Ned� sa na��ta� s�bor pre z�lohu (pou�ite ! pre vyn�tenie)E509: Ned� sa vytvori� z�lo�n� s�bor (pou�ite ! pre vyn�tenie)E50: Pr�li� mnoho \z(E510: Ned� sa vytvori� z�lo�n� s�bor (pou�ite ! pre vyn�tenie)E512: Zatvorenie zlyhaloE513: chyba pri z�pise, konverzia sa nepodarila (nastavte vo�bu 'fenc' na pr�zdnu pre vyn�tenie)E514: chyba pri ukladan� (pln� disk?)E515: �iadny buffer nebol uvo�nen�E516: �iadny buffer nebol vymazan�E517: �iadny buffer nebol vymazan�E518: Nezn�ma vo�baE519: Vo�ba nie je podporovan�E51: Pr�li� mnoho %s(E520: Nie je v modeline povolen�E521: Po = je vy�adovan� ��sloE522: Nen�jden� v termcapeE523: Nie je na povolen� na tomto miesteE524: Ch�ba dvojbodkaE525: Re�azec s nulovou d�kouE526: Po <%s> ch�ba ��sloE527: Ch�ba �iarkaE528: Je nutn� zada� hodnotu 'E529: Vo�ba 'term' nem�e by� pr�zdnaE52: Nesp�rovan� \z(E530: V grafickom m�de (GUI) sa ned� meni� typ termin�luE531: Pou�ite "gui" pre spustenie GUIE533: ned� sa vybra� �irok� fontE534: Chybn� �irok� p�smoE535: Nepr�pustn� znak po <%c>E536: je nutn� �iarkaE537: 'commentstring' (koment�r) mus� by� pr�zdny alebo mus� obsahova� %sE538: Bez podpory my�iE539: Nepr�pustn� znak <%s>E53: Nesp�rovan� %s%%(E540: Neuzatvoren� zoskupenie v�razovE541: pr�li� mnoho polo�iekE542: nevyv�en� skupinyE543: Chybn� k�dov� str�nkaE544: Mapa kl�ves nen�jden�E545: Ch�ba dvojbodkaE546: Nepr�pustn� m�dE547: Chybn� tvar my�iE548: o�ak�van� ��slicaE549: Nepr�pustn� percentoE54: Nesp�rovan� %s(E550: Ch�ba dvojbodkaE551: Nepr�pustn� komponentE552: o�ak�van� ��slicaE553: �iadne �al�ie polo�kyE554: Chyba syntaxe v %s{...}E555: na konci zoznamu tagovE556: na za�iatku zoznamu tagovE557: Ned� sa otvori� termcap s�borE558: Terminfo neobsahuje polo�ku pre tento termin�lE559: Termcap neobsahuje polo�ku pre tento termin�lE55: Nesp�rovan� %s)E560: Pou�itie: cs[cope] %sE561: nezn�my typ cscope h�adaniaE562: Pou�itie: cstag <odsadenie>E563: chyba statE563: stat(%s) chyba: %dE564: %s nie je ani adres�rom ani spr�vnou cscope datab�zouE566: Nedaj� sa vytvori� cscope r�ryE567: �iadne cscope spojeniaE568: duplicitn� cscope datab�za nebola pridan�E569: dosiahnut� maxim�lny po�et cscope spojen�E570: v�na chyba v cs_manage_matchesE571: Prep��te, tento pr�kaz je vypnut�, Tcl kni�nica nem�e by� na��tan�.E572: n�vratov� k�d %dE573: Pou��t� chybn� ��slo servera: %sE574: Nezn�my typ registra %dE579: vnorenie :if je pr�li� hlbok�E580: :endif bez zodpovedaj�ceho :ifE581: :else bez zodpovedaj�ceho :ifE582: :elseif bez zodpovedaj�ceho :ifE583: viacn�sobn� :elseE584: :elseif nasleduje po :elseE585: vnorenie :while/:for je pr�li� hlbok�E586: :continue bez zodpovedaj�ceho :while alebo :forE587: :break bez zodpovedaj�ceho :while alebo :forE588: :endfor bez zodpovedaj�ceho :forE588: :endwhile bez zodpovedaj�ceho :whileE589: vo�by 'backupext' a 'patchmode' maj� rovnak� hodnotuE590: Okno n�h�adu u� existujeE591: hodnota vo�by 'winheight' (v��ka okna) nesmie by� men�ia ne� hodnota vo�by 'winminheight' (minim�lna v��ka okna)E592: hodnota vo�by 'winwidth' (��rka okna) nesmie by� men�ia ne� hodnota vol�y 'winminwidth' (minim�lna ��rka okna)E593: Minim�lny potrebn� po�et riadkov je %dE594: Minim�lne potrebn� po�et st�pcov je %dE595: obsahuje netla�ite�n� znakyE596: Chybn� p�smaE597: ned� sa vybra� sada p�siemE598: Chybn� sada p�siemE599: Hodnota 'imactivatekey' je nespr�vne nastaven�E59: Nepr�pustn� znak po %s@E600: Ch�ba :endtryE601: vnorenie :try je pr�li� hlbok�E602: :endtry bez :tryE603: :catch bez :tryE604: :catch nasleduje po :finallyE605: V�nimka nezachyten�: %sE606: :finally bez :tryE607: viacn�sobn� pou�it� :finallyE608: Nemo�no spracova� v�nimku :throw s preponou 'Vim'E609: Chyba cscope: %sE60: Pr�li� komplexn� %s{...}E612: Pr�li� mnoho definovan�ch zna�iekE613: Nezn�my font tla�iarne: %sE614: vim_SelFile: ned� sa vr�ti� do aktu�lneho adres�raE615: vim_SelFile: ned� sa zisti� aktu�lny adres�rE616: vim_SelFile: p�smo %s nie je dostupn�E617: Ned� sa zmeni� v grafickom rozhran� GTK+ 2E618: s�bor "%s" nie je vo form�te PostScriptE619: s�bor "%s" nie je podporvan� PostScriptov� s�borE61: Vnoren� %s*E620: Nemo�no skonvertova� do k�dovania na tla�enie "%s"E621: "%s" zdrojov� s�bor m� zl� ��slo verzieE622: Nemo�no spusti� proces pre cscopeE623: Nedaj� sa vytvori� cscope r�ryE624: Ned� sa otvori� s�bor "%s"E625: nemo�no otvori� cscope datab�zu: %sE626: nemo�no z�ska� cscope datab�zov� inform�cieE62: Vnoren� %s%cE63: Chybne pou�it� \_E64: %s%c ni� nenasledujeE655: Pr�li� mnoho symbolick�ch odkazov (slu�ka?)E658: Straten� NetBeans spojenie pre buffer %ldE659: Python nem�e by� spusten� rekurz�vneE65: Chybn� sp�tn� referenciaE661: �utujem, �iadny '%s' pomocn�k pre %sE662: Na za�iatku zoznamu zmienE663: Na konci zoznamu zmienE664: zoznam zmien je pr�zdnyE665: Nemo�no na�tartova� grafick� rozhranie, nen�jden� �iaden pou�iteln� fontE666: preklada� nie je podporovan�: %sE667: Fsync zlyhalE668: Zl� pr�stupov� pr�va pre s�bor s inform�ciami pre NetBeans spojenie: "%s"E669: Netla�iteln� znak v mene skupinyE66: \z( tu nie je povolen�E670: R�zne k�dovania pre s�bory s pomocn�kom pre jazyk: %sE671: Nemo�no n�js� okno s titulkom "%s"E672: Nemo�no otvori� okno vn�tri MDI aplik�cieE673: nekompatibiln� viacbajtov� k�dovanie a znakov� sada.E674: vo�ba printmbcharset nem�e by� pr�zdna pri viacbajtovom k�dovan�.E675: Nie je �pecifikovan� �iadne p�smo pre viacbajtov� tla�enie.E676: �iadne vyhovuj�ce automatick� pr�kazy pre acwrite buffer E677: Chyba pri z�pise do�asn�ho s�boruE678: Nepr�pustn� znak po %s%%[dxouU]E679: rekurz�vna slu�ka pri na��tavan� syncolor.vimE67: \z1 a spol. tu nie je povolen�E680: <buffer=%d>: chybn� ��slo bufferuE681: Buffer nie je na��tan�E682: Nepr�pustn� h�adan� re�azec alebo odde�ova�E683: Ch�ba meno s�boru alebo chybn� vzorE684: index v zozname je mimo rozsah: %ldE685: Vn�torn� chyba: %sE686: Argument %s mus� by� Zoznam (List)E687: Menej cie�ov ako polo�iek Po�a (List items)E688: Viac cie�ov ako polo�iek Po�a (List items)E689: Indexova� mo�no iba Zoznam (List) alebo Slovn�k (Dictionary)E68: Nepr�pustn� znak po \zE690: Ch�ba "in" po :forE691: Porovn�va� mo�no iba Zoznam so Zoznamom (List with List)E692: Neplatn� oper�cia pre Zoznamy (List)E693: Porovn�va� mo�no iba odkaz na Funkciu s odkazom na Funkciu (Funcref with Funcref)E694: Neplatn� oper�cia pre odkazy na Funkcie (Funcrefs)E695: Nemo�no indexova� odkaz na Funkciu (Funcref)E696: Ch�ba �iarka v Zozname: %sE697: Ch�ba koniec Zoznamu (List) ']': %sE698: premenn� je vnoren� pr�li� hlboko pre skop�rovanieE699: Pr�li� mnoho argumentovE69: Ch�baj�ca ] po %s%%[E700: Nezn�ma funkcia: %sE701: Neplatn� typ pre len()E702: Funkcia na utriedenie/porovnanie zlyhalaE703: Pou�it� odkaz na Funkciu (Funcref) ako ��sloE704: Premenn� typu odkaz na Funkciu (Funcref) mus� za��na� s ve�k�m p�smenom: %sE705: Meno premennej je v konflikte s existuj�cou funkciou: %sE706: Typ premennej sa nezhoduje: %sE708: [:] mus� pr�s� ako posledn�E709: [:] vy�aduje hodnotu Po�a (List value)E70: Pr�zdny %s%%[]E710: Hodnota Po�a (List value) m� viac polo�iek ako cie�E711: Hodnota Po�a (List value) nem� dostatok polo�iekE712: Argument %s mus� by� Zoznam (List) alebo Slovn�k (Dictionary)E713: Nemo�no pou�i� pr�zdny k��� pre Slovn�k (Dictionary)E714: vy�aduje sa Zoznam (List)E715: Vy�aduje sa Slovn�k (Dictionary)E716: k��� sa v Slovn�ku (Dictionary) nenach�dza: %sE717: Z�znam v Slovn�ku (Dictionary) u� existujeE718: Je vy�adovan� odkaz na Funkciu (Funcref)E719: Nemo�no pou�it [:] so Slovn�kom (Dictionary)E71: Nepr�pustn� znak po %s%%E720: Ch�ba dvojbodka v Slovn�ku (Dictionary): %sE721: Duplikovan� k��� v Slovn�ku (Dictionary): "%s"E722: Ch�ba �iarka v Slovn�ku (Dictionary): %sE723: Ch�ba koniec Slovn�ka (Dictionary) '}': %sE724: premenn� je vnoren� pr�li� hlboko pre zobrazenieE726: Krok je nulov�E727: Za�iatok presahuje koniecE728: Slovn�k (Dictionary) pou�it� ako ��sloE729: Odkaz na Funkciu (Funcref) pou�it� ako Re�azec (String)E72: Chyba pri uzatv�ran� odkladacieho s�boruE730: Zoznam (List) pou�it� ako Re�azec (String)E731: Slovn�k (Dictionary) pou�it� ako Re�azec (String)E732: Pou�it� :endfor spolu s :whileE733: Pou�it� :endwhile spolu s :forE734: Zl� typ premennej pre %s=E735: Porovn�va� mo�no iba Slovn�k so Slovn�kom (Dictionary with Dictionary)E736: Neplatn� oper�cia pre Slovn�kE737: K��� u� existuje: %sE738: Nemo�no vyp�sa� premenn� pre %sE739: Nemo�no vytvori� adres�r: %sE73: zoznam tagov je pr�zdnyE741: Hodnota je uzamknut�: %sE742: Nemo�no zmeni� hodnotu %sE743: premenn� je pr�li� vnoren� na (od)blokovanieE744: NetBeans nepovo�uje zmeny v s�boroch len na ��tanieE745: Rozsah nie je povolen�E745: Zoznam (List) pou�it� ako ��sloE746: Meno funkcie sa nezhoduje s menom interpretovan�ho s�boru: %sE747: Nemo�no zmeni� adres�r, buffer je modifikovan� (pou�ite ! pre vyn�tenie)E748: �iadny predt�m pou��van� registerE749: pr�zdny bufferE74: Pr�kaz je pr�li� zlo�it�E750: Najprv pou�ite pr�kaz :profile start <meno_suboru>E751: V�stupn� meno s�boru nesmie ma� n�zov regi�nuE752: �iadny predch�dzaj�ce nahradenie pod�a slovn�kaE753: Nen�jden�: %sE754: Podporovan�ch max. 8 regi�novE755: Chybn� regi�n v %sE756: Kontrola pravopisu nie je zapnut�E757: Toto sa nezd� by� slovn�kov�m s�boromE758: Odseknut� spell s�bor (kontrola pravopisu)E759: Chyba form�tovania v spell s�bore (kontrola pravopisu)E75: N�zov je pr�li� dlh�E760: Ch�aj�ci po�et slov v %sE761: Chyba form�tovania v s�bore pr�pon FOL, LOW alebo UPP (NASLEDUJE, MAL� alebo VE�K�)E762: Znak v FOL, LOW alebo UPP (NASLEDUJE, MAL� alebo VE�K�) je mimo rozsahE763: Znaky slov sa odli�uj� medzi slovn�kov�mi s�bormiE764: Vo�ba "%s" nie je nastaven�E765: 'spellfile' nem� %ld polo�iekE766: Chybn� argumenty pre funkciu printf()E767: Pr�li� mnoho argumentov pre funkciu printf()E768: Odkladac� s�bor existuje: %s (pou�ite :silent! pre prep�sanie)E769: Ch�baj�ca ] po %s[E76: Pr�li� mnoho [E770: Nepodporovan� sekcia v slovn�kovom s�boreE771: Star� slovn�kov� s�bor, potrebuje by� zaktualizovan�E772: Slovn�kov� s�bor je pre nov�iu verziu VimE77: Pr�li� mnoho n�zvov s�borovE783: duplicitn� znak v MAP polo�keE789: Ch�ba ']': %sE78: Nezn�ma zna�kaE79: Nemo�no expandova� �ol�kov� znaky (wildcards)E800: Ned� sa pou�� arabic re�im: nebol zapnut� pri preklade programu
E80: Chyba pri ukladan�E81: Pou�itie <SID> mimo kontext skriptuE82: Ned� sa alokova� buffer, kon��m...E83: Ned� sa alokova� buffer, pou�ijem in�...E84: Nebol n�jden� �iadny zmenen� bufferE85: Nena�iel som �iadny bufferE86: Buffer %ld neexistujeE87: Za posledn� buffer sa ned� presko�i�E88: Pred prv� buffer sa ned� presko�i�E89: Zmeny v bufferi %ld neboli ulo�en� (! pre vyn�tenie)E90: Posledn� buffer sa ned� odstr�ni�E91: vo�ba 'shell' je pr�zdnaE92: buffer %ld nen�jden�E93: Vzoru %s vyhovuje viac bufferovE94: Vzoru %s nevyhovuje �iadny bufferE95: Buffer tak�hoto mena u� existujeE96: Nem�em porovna� viac ako %ld bufferovE97: Nedaj� sa vytvori� porovnaniaE98: Ned� sa ��ta� v�stup porovnaniaE99: Aktu�lny buffer nie je v porovn�vacom m�deCHYBA: Upravova� s�borUpravi� s�bor v novom okneUpravi� s &VimomUpravi� s viacer�&mi VimmiUpravi� s existuj�cim Vimom - Upravi� s jedn�m &VimomUpravi� vybran� s�bory s VimomK�dujem:Koniec funkcieKoniec interpretovan�ho s�boruZadajte �ifrovac� k���: Zadajte ��slo odkladacieho s�boru, ktor� sa m� pou�it (0 pre ukon�enie): Vlo�te ten ist� k��� znova: Sp���am re�im ladenia. Pre ukon�enie nap�te "cont".Sp���am Ex re�im. Nap�te "visual" pre n�vrat do Norm�lneho re�imu.ChybaChyba a preru�en�Chyba vytv�rania procesu: Skontrolujte, �i je gvim vo va�ej ceste!Chyba pri spracovan� %s:Ve�kos� pou��vanej pam�te: %d bajtovV�nimkaZachyten� v�nimka: %sV�nimka zahoden�: %sV�nimka ukon�en�: %sSpracovanie v�nimky: %sSp���am %sO�ak�vam po�et MAP v %s riadok %dO�ak�vam po�et REP v %s riadok %dO�ak�vane Y alebo N v %s riadok %d: %sV�razVn�torn� podraden� zhody:
Pr�znak (FLAG) po pou�it� pr�znakov v %s riadok %d: %sS�bor "%s" neexistujeS�bor zachovan�S�boryFilterN�js� a Nahradi� (pou�ite '\\' ak chcete n�js� '\')N�js� �a&l�ieN�js� �al�ieN�js� re�azec (pou�ite '\\' ak chete n�js� '\')N�js� znakVyh�ada�:Prv� duplicitn� slovo v %s riadok %d: %sPr�znak nie je ��slo v %s na riadku %d: %sP�smo '%s' nem� pevnou ��rkuV�ber P�smaP�smo%ld nie je dvakr�t �ir�ie ako p�smo0
��rka p�sma0: %ld
P�smo0: %s
��rka p�sma1: %ld

P�smo1: %s
P�smo:Chyby za parametrom vo�byVytvori� dokument�ciu prePozdravujem, u��vate� Vimu!Pom�te chudobn�m de�om v Ugande!Koniec odstavcaI/O CHYBAIgnorovan�ch %d slov s nep�smenn�mi znakmi v %sIgnorovan�ch %d slov s nep�smenn�mi znakmiNepr�pustn� n�zov s�boruNepr�pustn� pr�znak v %s riadok %d: %sNepr�pustn� n�zov registraNepr�pustn� za�iato�n� znakVstupn� riadokVstupn� met�dy (_Methods)Preru�en�Preru�enie: Preru�en�Chybn� argument preChybn� �pecifik�cia p�smaPou��t� chybn� ��slo regi�nu v %s riadok %d: %sNeplatn� hodnota pre pr�znak (FLAG) v %s riadok %d: %sK���e sa nezhoduj�!Ukon�i� spojenieZlinkovan�: Zhoda ve�kosti p�smenH�ada� len cel� slov�Spr�vca prekladu: Lubomir Host <rajo@platon.sk>Ch�ba '>'Ch�baj�ci riadok FOL/LOW/UPP v %sCh�ba SOFO%s riadok v %sZmenil Meno:Potrebn� %s verzia %ld
Je potrebn� Amigados verzia 2.04 alebo nov�ia
NetBeans rozhranie nedovolilo zap�sa� nemodifikovan� buffrePre tento buffer nie s� definovan� �iadne polo�ky syntaxe�iadna skratka nebola n�jden�Neboli definovn� �iadne body preru�eniaBez grafick�ho rozhrania�iaden graf. m�d: Odoslanie v�razu zlyhalo.
�iadne vlo�en� s�bory�iadne mapovanie nebolo n�jden�Nie s� nastaven� �iadne zna�ky�iadna zhoda na poz�cii kurzora, h�ad�m �alej�iadne vyhovuj�ce automatick� pr�kazy�iadny odkladac� s�bor�iadny text na tla�Odstr�nenie zmien nie je mo�n�; chcete napriek tomu pokra�ova�Neboli n�jden� �iadne pou�ivate�om definovan� pr�kazy[neupravovan�]OKDial�g pre otv�ranie s�borovOtvorenie X displeja zlyhaloUplynul �as otvorenia X displejaOtvorenie X displej zabralo %ld msecP�vodn� s�bor "%s"Prep�sa� existuj�ci s�bor "%s"?Strana %d�iasto�n� z�pisy nie s� povolen� pre NetBeans buffreZ�platov� s�borPr�li� dlh� cesta!N�zov cesty:Vzor n�jden� na ka�dom riadku: %sVzor nen�jden�Stla�te ENTER alebo zadajte pr�kaz pre pokra�ovanieTla�ov� �loha bola odoslan�.Vytla�en�: %sTla��m '%s'Tla� bola zru�en�Tla��m stranu %d (%d%%)H�adanie vzoruOt�zkaNa��tavam s�bor s pr�ponami %s ...Na��tavam slovn�k %s ...��tam zo �tandardn�ho vstupu...��tam slovn�kov� s�bor "%s"��tam viminfo s�bor "%s"%s%s%sNa��tavam s�bor so slovami %s ...Obnova dokon�en�. Skontrolujte, �i je v�etko v poriadku.Znovu inicializova� v�etky spojeniaNahradi�Nahradi� &V�etkoNahradi� V�etkoNahradi� s:Obnovi�Obnovi� zo v�etk�ch projektovObnovi� zo s�boruObnovi� z projektuPracujem v re�ime kompatibility s ViSp���am v bezm�dovom re�ime, p�san� text je vlo�en�SNiFF+ je aktu�lne Ulo�i� akoDial�g pre ukladanie s�borovUlo�i� presmerovanieUlo�i� sedenieUlo�i� nastavenieUlo�i� poh�adUlo�i� zmeny do "%s"?preh�ad�vam slovn�k %sPreh�ad�vam vlo�en� s�bory: %sPreh�ad�vam tagy.Preh�ad�vam: %sPr�pravok posuvnej li�ty: ned� sa zisti� geometria n�h�adu obr�zku.Vyh�ad�van� re�azecH�ad�m "%s"H�ad�m "%s" v "%s"Preh�ad�vam s�bor tagov %sPozrite ":help E312" pre �al�ie inform�ciePozrite ":help W11" pre viac inform�ci�.Pozrite ":help W12" pre viac inform�ci�.Pozrite ":help W16" pre viac inform�ci�.Dial�g pre vytvorenie adres�raVybran�ch %s%ld z %ld Riadkov; %ld zo %ld Slov; %ld z %ld BajtovVybran�ch %s%ld z %ld Riadkov; %ld zo %ld Slov; %ld z %ld Znakov; %ld z %ld BajtovV�berPosielam na tla�iare�...Uk�za� z�kladn� trieduUk�za� triedu v hierarchiiUk�za� triedu v obmedzenej hierarchiiZobrazi� spojeniaUk�za� dokument�ciuUk�za� pre�a�en� �lensk� funkciuUkazuj ve�kos� v bodochUk�za� zdrojZobrazi� t�to spr�vuZnaky pre %s:Ve�kos�:Sniff: Chyba z�pisu. Odpojen��utujem, s�bor "%s" s pomocn�kom nebol n�jden�Prep��te, �iadne n�vrhyPrep��te, iba %ld n�vrhovPrep��te, tento pr�kaz je vypnut�, Perl kni�nica nem�e by� na��tan�.Zdrojov� skript VimZasponzorujte v�voj Vimu!N�rast ve�kosti z�sobn�ku�t�lOdkladac� s�bor "Odkladac� s�bor "%s" existuje, aj tak prep�sa�?Odkladac� s�bor u� existuje!N�jden� odkladacie s�bory:Odtrhn�� tuto ponukuTestovanie X displeja zlyhalo�akujeme za pou�itie VimS�bor bol vytvoren� Jedin� zhodaTento Vim nebol kompilovan� s porovn�vac�mi funkciami.Tento cscope pr�kaz nepodporuje rozde�ovanie okna.
Prepn�� implement�ciu/defin�ciuPr�li� mnoho "+pr�kaz", "-c pr�kaz" alebo "--cmd pr�kaz" argumentovPr�li� mnoho upravovac�ch pr�znakovPr�li� mnoho upravovac�ch argumentovPr�li� mnoho odlo�en�ch pr�ponPr�li� mnoho odlo�en�ch pr�pon a/alebo upravovac�ch pr�znakovPr�li� mnoho regi�nov v %s riadok %d: %sZa�iatokPrebyto�n� text v %s na riadku %d: %sZadajte  :quit<Enter>  pre ukon�enie programu VimZadajte ��slo ale kliknite my�ou (<Enter> zru��): Ned� sa ��ta� blok 0 z Nem�em zaregistrova� meno pr�kazov�ho servraNezn�myNezn�my parameter vo�byNerozpoznan� pr�znak v %s riadok %d: %sNerozpoznan� alebo opakuj�ca sa polo�ka v %s riadok %d: %sBez menaHorePou�ite Vim verziu 3.0.
Pou�it� CUT_BUFFER0 namiesto pr�zdneho v�beruPou��vam odkladac� s�bor "%s"VIM - POZORVIM - N�js� a nahradi�...VIM - N�js�...VIM - Vi IMprovedVIM ChybaVIM: Ned� sa otvori� okno!
VIMRUN.EXE nen�jden� v $PATH.
Po dokon�en� extern�ch pr�kazov nebude v�stup pozastaven�.
Pozrite  :help win32-vimrun  pre viac inform�ci�.Vim - V�ber p�smaVim E458: Ned� sa alokova� polo�ka mapy farieb, niektor� farby m�u by� nespr�vneVim VarovanieVim dial�gVim dial�g..Chyba VimChyba Vim: ~aVim ukon�en� s %d
Vim je vo�ne ��rite�n� program s otvoren�m k�domVim: Zachyten� udalos� %s
Vim: Zachyten� smrtiaci sign�l
Vim: Zachyten� smrtiaci sign�l %s
Vim: dvojit� sign�l, kon��m
Vim: Chyba pri ��tan� vstupu, kon��m...
Vim: Chyba: Chyba sp���ania gvim pre NetBeans
Vim: ukon�en�
Vim: Hlavn� okno neo�ak�vane zru�en�
Vim: ��tam zo �tandardn�ho vstupu...
Vim: Prijat� po�iadavka na ukon�enie (die) od mana��ra seden�
Vim: Varovanie: Vstup nepoch�dza z termin�lu
Vim: Varovanie: V�stup nesmeruje na termin�l
Vim: zachov�vam s�bory...
W10: Varovanie: men�m s�bor iba pre ��tanieW11: Varovanie: s�bor "%s" bol po za�at� �pravy zmenen�W12: Varovanie: s�bor "%s" bol po za�at� �pravy zmenen� a buffer sa tie� zmenil W13: Varovanie: S�bor "%s" bol vytvoren� po za�at� �pravyW14: Varovanie: prete�enie zoznamu s n�zvami s�borovW15: Varovanie: chybn� odde�ova� riadkov. Mo�no ch�ba ^MW16: Varovanie: Pr�stupov� pr�va k s�boru "%s" boli po za�at� �prav zmenen�W17: M�d Arabic vy�aduje k�dovanie UTF-8, nastavte to pr�kazom ':set encoding=utf-8'W18: Chybn� znak v mene skupinyVAROVANIE: S�bor bol zmenen� od jeho na��tania!!!VAROVANIE: detekovan� Windows 95/98/MEVarovanieVarovanie: Nemo�no n�js� zoznam slov "%s.%s.spl" alebo "%s.ascii.spl"Varovanie: Ne�akan� vstup do in�ho bufferu (skontrolujte automatick� pr�kazy)Varovanie: �pecifikovan� sp�janie a nezalamovanieVarovanie: regi�n %s nie je podporovan�Varovanie: termin�l nepodporuje zv�raz�ovaniePri otv�ran� s�boru "Poz�cia okna: X %d, Y %dSlovo z in�ho riadkuUlo�i� ne�pln� s�bor?Ukl�d�m slovn�kov� s�bor %s ...Ukl�d�m viminfo s�boru "%s"Zl� hodnota COMPOUNDMAX v %s riadok %d: %sZl� hodnota COMPOUNDMIN v %s riadok %d: %sZl� hodnota COMPOUNDSYLMAX v %s riadok %d: %sXSMP kontrola spojenia ICE zlyhalaXSMP SmcOpenConnection zlyhalo: %sXSMP spracuv�va po�iadavku na samoulo�enieXSMP stratilo ICE spojenieXSMP otv�ra spojenieXref m�Xref odk�zan� zXref odkazuje naXref pou�it��NONulov� po�et[CHYBA PREVODU][ch�ba CR][vymazan�][zariadenie][Zoznam ch�b][NEPR�PUSTN� BAJT na riadku %ld][ne�pln� posledn� riadok][n�jden� NL][neskonvertovan�][nov� s�bor][Nov� s�bor][nov�][Bez mena][Neulo�en� zmeny]
[Neupravovan�][pr�stup odmietnut�][N�h�ad][CHYBY ��TANIA][RO][Chyby pri ��tan�][volanie] celkom re/malloc(): %lu, celkom free() %lu

[skonvertovan�][�ifrovan�][dos form�t][dos][pomenovan� r�ra/soket][pomenovan� r�ra][s�bor ..] ..       upravi� s�bor(y)[pomocn�k][dlh� riadky zalomen�][mac form�t][mac][bez znaku konca riadku][iba pre ��tanie][soket][unix form�t][unix]a pomocou programu diff zistite zmeny oproti p�vodn�mu s�boru)
pokus o odkaz na vymazan� bufferpokus o odkaz na vymazan� oknosamomazac� automatick� pr�kaz: %s <buffer=%d>automatick� pr�kaz %sskop�rovan� blok %ld riadkovskop�rovan� blok 1 riadkubuffer je neplatn� od Brama Moolenaara a �al��chfunkcia inputrestore() volan� �astej�ie ako inputsave()vol�m %sned� sa vymaza� vlastnos� OutputObjectned� sa ��ta� v�stup 'charconvert'nem�em zmeni� konzolov� m�d ?!
ned� sa vytvori� pr�kaz bufferu/okna: objekt bude vymazan�ned� sa vymaza� riadokned� sa pre��ta� riadokned� sa vlo�i� riadokned� sa vlo�i�/pripoji� riadokned� sa otvori� ned� sa zaregistrova� pr�kaz sp�tn�ho volania: buffer/okno u� bol vymazan�ned� sa zaregistrova� pr�kaz sp�tn�ho volania: odkaz na buffer/okno nen�jden�ned� sa nahradi� riadoknedaj� sa ulo�i� z�lo�ne (opravn�) inform�cienedaj� sa nastavi� riadkyned� sa kop�rova�; napriek tomu vymazan�zavrie�pr�kaz: %spripojen�pokra�ujem v %sned� sa interpretova� "%s"nemo�no otvori� bufferspustenie cs_create_connection zlyhalocs_create_connection: volanie fdopen pre fr_fp zlyhalocs_create_connection: volanie fdopen pre to_fp zlyhalopr�kazy cscope:
cscope spojenie %s ukon�en�umiestnenie kurzoru mimo buffernastavujem na 'vymazan� blok 1?dlerror = "%s"neukon�ujte editor sk�r, ne� bude s�bor �spe�ne ulo�en�!zoznam ch�b %d z %d; %d ch�bpodpora v�razov bola vypnut� pri preklade programus�bor
n�zov s�boru/ kontext / riadok
dokon�en� interpret�cia %suvol�ujem %ld riadkovchyba gvimext.dllpomocn�kskryt� vo�bav ceste ---
chybn� vlastnos�chybn� ��slo bufferuchybn� v�razchybn� meno zna�kyje adres�romnie je s�boromnie je s�borom ani zapisovateln�m zariaden�mje iba pre ��tanie (pou�ite ! pre vyn�tenie)preru�enie z kl�vesniceriadok %4ld:riadok %6d, slovo %6d - %sriadok %ldriadok %ld z %ld --%d%%-- st�pecriadok %ld: %sriadok %ld: nem�no interpretova� "%s"riadok %ld: interpretujem "%s"��slo riadka mimo rozsah��slo riadka mimo rozsahodhl�si�zna�ka nie je nastaven�zhoda %dzhoda %d z %dmaxim�lne mch_get_shellsize: nie je konzolou??
ponuka  �pravy->Glob�lne mo�nosti->Prepn�� re�im vlo�enia ponuka  �pravy->Glob�lne mo�nostt->Prepn�� Vi kompatibiln� re�imbli��ie inform�cie v ponuke  Pomocn�k->Samostatn�bli��ie inform�cie v ponuke  Pomocn�k->Sponzor/Registr�ciaminim�lne spusten� nov� shell
nie�iadne cscope spojenia
�iadna �pecifick� zhoda�iadny tak� buffer�iadne tak� okno�iadne synchroniz�cienenie je dovolen� v bezpe�nostnej schr�nkenen�jden� s�bor "%s" nebol n�jden� v 'runtimepath'nie je e�te podporovan�pe_line_count m� nulov� hodnotupre-vimrc pr�kazov� riadok��tanie z Netbeans soketuvlastnos� iba pre ��tanienahr�vamnahradi� %s (y/n/a/q/l/^E/^Y)?riadok %d st�pec %dh�adanie dosiahlo koniec, pokra�ovanie od za�iatkuh�adanie dosiahlo za�iatok, pokra�ovanie od koncashell n�vratov� hodnota shellu %dvypn��softspace mus� by� kladn� cel� ��slointerpretujem "%s"stack_idx by mal ma� hodnotu 3re�azec nesmie obsahova� znaky nov�ho riadkusynchronizujem pod�a koment�rov jazyka Csynchroniz�cia za��na tag %d z %d%smeno tagu%s na %spodrobnej�ie inform�cie z�skate pomocou :help cp-default<Enter>zadajte  :help iccf<Enter>          pre inform�cie         zadajte  :help register<Enter>      pre inform�cie         zadajte  :help sponsor<Enter>          pre inform�cie         zadajte  :help version8<Enter>      pre inform�cie o verziizadajte  :help windows95<Enter>  pre podrobnej�ie inform�ciezadajte  :help<Enter>  alebo  <F1>  pre pomocn�ka          zadajte  :q<Enter>                  pre ukon�enie programu zadajte  :set nocp<Enter>           pre implicitn� nastavenie Vimnezn�my pr�znak: nezn�ma vo�banezn�ma vo�ba (vimOption)verzia chyba Vimv pr�pade, �e je ignorovan� ve�kos� p�smen, pou�ite znak '/' na za�iatku, aby mal pr�znak v�znam ve�k�ho p�smena��slo okna mimo rozsahokno je neplatn�s klasick�m grafick�m rozhran�m.s grafick�m rozhran�m Carbon.s grafick�m rozhran�m Cocoa.s grafick�m rozhran�m GTK.s grafick�m rozhran�m GTK-GNOME.s grafick�m rozhran�m GTK2.s grafick�m rozhran�m GTK2-GNOME.s grafick�m rozhran�m.s grafick�m rozhran�m KDE.s grafick�m rozhran�m Photon.s grafick�m rozhran�m X11-Athena.s grafick�m rozhran�m X11-Motif.s grafick�m rozhran�m X11-neXtaw.bez grafick�ho rozhrania.writelines() vy�aduje zoznam re�azcovPK�j�Z#*�I?3?3 vim80/lang/menu_sl_si.latin2.vimnu�[���" Menu Translations:	Slovenian / Slovensko
" Maintainer:		Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By:	Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change:		2016 Oct 17
" vim:set foldmethod=marker tabstop=8:

" TODO: add/check all '&'s

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding latin2

" {{{ FILE / DATOTEKA
menutrans &File				&Datoteka
menutrans &Open\.\.\.<Tab>:e		&Odpri\ \.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Odpri\ de&ljeno\ \.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Odpri\ v\ zavi&hku\ \.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Nova<Tab>:enew
menutrans &Close<Tab>:close		&Zapri<Tab>:close
menutrans &Save<Tab>:w			&Shrani<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Shrani\ &kot\ \.\.\.<Tab>:sav
menutrans &Print			Na&tisni
menutrans Sa&ve-Exit<Tab>:wqa		Shrani\ in\ &kon�aj<Tab>:wqa
menutrans E&xit<Tab>:qa			&Izhod<Tab>:qa

if has("diff")
    menutrans Split\ &Diff\ with\.\.\.	Primerjaj\ z\ (di&ff)\ \.\.\.
    menutrans Split\ Patched\ &By\.\.\.	&Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA

" {{{ EDIT / UREDI
menutrans &Edit				&Uredi
menutrans &Undo<Tab>u			&Razveljavi<Tab>u
menutrans &Redo<Tab>^R			&Obnovi<Tab>^R
menutrans Rep&eat<Tab>\.		Po&novi<Tab>\.
menutrans Cu&t<Tab>"+x			&Izre�i<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopiraj<Tab>"+y
menutrans &Paste<Tab>"+gP		&Prilepi<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vrini\ pred<Tab>[p
menutrans Put\ &After<Tab>]p		Vrini\ za<Tab>]p
menutrans &Delete<Tab>x			Iz&bri�i<Tab>x
menutrans &Select\ all<Tab>ggVG		Izberi\ vse<Tab>ggVG
menutrans &Find\.\.\.			Po&i��i\ \.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Poi��i\ in\ &zamenjaj\ \.\.\.

" [-- SETTINGS --]
menutrans Settings\ &Window				Nastavitve\ \.\.\.
menutrans Startup\ &Settings				Za�etne nastavitve
menutrans &Global\ Settings				&Globalne\ nastavitve

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Vklju�i/izklju�i\ poudarjanje\ iskanega\ niza<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Vklju�i/izklju�i\ lo�evanje\ velikih\ in\ malih\ �rk<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Vklju�i/izklju�i\ kratek\ skok\ na\ pripadajo�i\ oklepaj<Tab>:set\ sm!

menutrans &Context\ lines				�t\.\ vidnih\ vrstic\ pred/za\ kurzorjem

menutrans &Virtual\ Edit				Dovoli\ polo�aj\ kazal�ka,\ kjer\ ni\ besedila
menutrans Never						Nikoli
menutrans Block\ Selection				Le\ med\ izbiranjem\ bloka
menutrans Insert\ mode					Le\ v\ na�inu\ za\ pisanje
menutrans Block\ and\ Insert				Pri\ obojem
menutrans Always					Vedno
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Vklju�i/izklju�i\ na�in\ za\ pisanje<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Vklju�i/izklju�i\ zdru�ljivost\ z\ Vi-jem<Tab>:set\ cp!

menutrans Search\ &Path\.\.\.				Pot\ za\ iskanje\ \.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g-datoteke\.\.\.

menutrans Toggle\ &Toolbar				Poka�i/skrij\ Orodja
menutrans Toggle\ &Bottom\ Scrollbar			Poka�i/skrij\ spodnji\ drsnik
menutrans Toggle\ &Left\ Scrollbar			Poka�i/skrij\ levi\ drsnik
menutrans Toggle\ &Right\ Scrollbar			Poka�i/skrij\ desni\ drsnik

" Edit/File Settings
menutrans F&ile\ Settings				&Nastavitve\ datoteke

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Poka�i/skrij\ �tevilke\ vrstic<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Poka�i/skrij\ nevidne\ znake<Tab>:set\ list! " space/tab
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Vklju�i/izklju�i\ prelome\ vrstic<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Vklju�i/izklju�i\ prelome\ vrstic\ med\ besedami<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Vklju�i/izklju�i\ zamenjavo\ tabulatorjev\ s\ presledki<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Vklju�i/izklju�i\ avtomatsko\ zamikanje\ vrstic<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Vklju�i/izklju�i\ C-jevski\ na�in\ zamikanja\ vrstic<Tab>:set\ cin!

" other options
menutrans &Shiftwidth					�irina\ zamika\ vrstic
menutrans Soft\ &Tabstop				�irina &tabulatorja
menutrans Te&xt\ Width\.\.\.				�irina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\.				Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme				&Barvna\ shema\ \.\.\.
menutrans &Keymap					Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\.				Pisava\ \.\.\.
" }}} EDIT / UREDI

" {{{  TOOLS / ORODJA
menutrans &Tools					O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^]			&Sko�i\ k\ tej\ zna�ki<Tab>g^]
menutrans Jump\ &back<Tab>^T				Sko�i\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File				Napravi\ datoteke\ z\ zna�kami\ (tag)
if has("spell")
    menutrans &Spelling					�rkovalnik
    menutrans &Spell\ Check\ On				&Vklju�i
    menutrans Spell\ Check\ &Off			&Izklju�i
    menutrans To\ &Next\ error<Tab>]s			K\ &naslednji\ napaki<Tab>]s
    menutrans To\ &Previous\ error<Tab>[s		K\ &prej�nji\ napaki<Tab>[s
    menutrans Suggest\ &Corrections<Tab>z=		Predlagaj\ popravek<Tab>z=
    menutrans &Repeat\ correction<Tab>:spellrepall	Po&novi\ popravke\ na\ vseh\ besedah<Tab>:spellrepall
    menutrans Set\ language\ to\ "en"			�rkovalnik:\ angle�ki\ "en"
    menutrans Set\ language\ to\ "en_au"		�rkovalnik:\ angle�ki\ "en_au"
    menutrans Set\ language\ to\ "en_ca"		�rkovalnik:\ angle�ki\ "en_ca"
    menutrans Set\ language\ to\ "en_gb"		�rkovalnik:\ angle�ki\ "en_gb"
    menutrans Set\ language\ to\ "en_nz"		�rkovalnik:\ angle�ki\ "en_nz"
    menutrans Set\ language\ to\ "en_us"		�rkovalnik:\ angle�ki\ "en_us"
    menutrans Set\ language\ to\ "sl"			�rkovalnik:\ slovenski\ "sl"
    menutrans Set\ language\ to\ "de"			�rkovalnik:\ nem�ki\ "de"
    menutrans Set\ language\ to\ 			�rkovalnik:\
    menutrans &Find\ More\ Languages			&Ostali\ jeziki
endif
if has("folding")
  menutrans &Folding					Zavihek
  " open close folds
  menutrans &Enable/Disable\ folds<Tab>zi		Omogo�i/onemogo�i\ zavihke<Tab>zi
  menutrans &View\ Cursor\ Line<Tab>zv			Poka�i\ vrstico\ s\ kazalcem<Tab>zv " kjer je kazalec
  menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Poka�i\ samo\ vrstico\ s\ kazalcem<Tab>zMzx
  menutrans C&lose\ more\ folds<Tab>zm			Zapri\ ve�\ zavihkov<Tab>zm
  menutrans &Close\ all\ folds<Tab>zM			Zapri\ vse\ zavihke<Tab>zM
  menutrans O&pen\ more\ folds<Tab>zr			Odpri\ ve�\ zavihkov<Tab>zr
  menutrans &Open\ all\ folds<Tab>zR			Odpri\ vse\ zavihke<Tab>zR
  " fold method
  menutrans Fold\ Met&hod				Ustvarjanje\ zavihkov
  menutrans M&anual					&Ro�no
  menutrans I&ndent					Glede\ na\ &poravnavo
  menutrans E&xpression					Z\ &izrazi\ (foldexpr)
  menutrans S&yntax					Glede\ na\ &sintakso
  menutrans &Diff					Razlike\ (&diff)
  menutrans Ma&rker					Z\ &markerji/ozna�bami
  " create and delete folds
  " TODO accelerators
  menutrans Create\ &Fold<Tab>zf			Ustvari\ zavihek<Tab>zf
  menutrans &Delete\ Fold<Tab>zd			Izbri�i\ zavihek<Tab>zd
  menutrans Delete\ &All\ Folds<Tab>zD			Izbri�i\ vse\ zavihke<Tab>zD
  " moving around in folds
  menutrans Fold\ column\ &width			�irina\ stolpca\ z\ zavihkom
endif  " has folding

if has("diff")
  menutrans &Diff					Razlike\ (&Diff)
  menutrans &Update					&Posodobi<Tab>
  menutrans &Get\ Block					&Sprejmi\ (spremeni\ to\ okno) " TODO: check if translation is OK
  menutrans &Put\ Block					&Po�lji\ (spremeni\ drugo\ okno)
endif

menutrans &Make<Tab>:make				Napravi\ (&make)<Tab>:make
menutrans &List\ Errors<Tab>:cl				Poka�i\ napake<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!			Poka�i\ sporo�ila<Tab>:cl!
menutrans &Next\ Error<Tab>:cn				K\ &naslednji\ napaki<Tab>:cn
menutrans &Previous\ Error<Tab>:cp			K\ &prej�nji\ napaki<Tab>:cp
menutrans &Older\ List<Tab>:cold			K\ &starej�emu\ seznamu\ napak<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew			K\ &novej�emu\ seznamu\ napak<Tab>:cnew

menutrans Error\ &Window				Okno\ z\ napakami
menutrans &Update<Tab>:cwin				&Posodobi<Tab>:cwin
menutrans &Open<Tab>:copen				&Odpri<Tab>:copen
menutrans &Close<Tab>:cclose				&Zapri<Tab>:cclose

menutrans &Set\ Compiler				Nastavi\ &prevajalnik
menutrans Se&T\ Compiler				Nastavi\ &prevajalnik " bug in original translation?

menutrans &Convert\ to\ HEX<Tab>:%!xxd			Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r			Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}}  TOOLS / ORODJA

" {{{ SYNTAX / BARVANJE KODE
menutrans &Syntax				&Barvanje\ kode
menutrans &Show\ filetypes\ in\ menu		Podprte\ vrste\ datotek
menutrans Set\ '&syntax'\ only			Samo\ barvanje\ ('&syntax')
menutrans Set\ '&filetype'\ too			Tudi\ obna�anje\ ('&filetype')
menutrans &Off					&Izklju�eno
menutrans &Manual				&Ro�no
menutrans A&utomatic				&Avtomatsko
menutrans on/off\ for\ &This\ file		Vklju�i/izklju�i\ za\ to\ datoteko
menutrans Co&lor\ test				Preizkus\ barv
menutrans &Highlight\ test			Preizkus\ barvanja\ kode
menutrans &Convert\ to\ HTML			Pretvori\ v\ &HTML
" }}} SYNTAX / BARVANJE KODE

" {{{ BUFFERS / MEDPOMNILNIK
menutrans &Buffers					&Medpomnilnik " XXX: ni najbolje: okno bi bolj pristajalo, ampak okno je �e
menutrans &Refresh\ menu				&Osve�i
menutrans Delete					&Bri�i
menutrans &Alternate					&Menjaj
menutrans &Next						&Naslednji
menutrans &Previous					&Prej�nji
menutrans [No\ File]					[Brez\ datoteke]
" }}} BUFFERS / MEDPOMNILNIK

" {{{ WINDOW / OKNO
menutrans &Window			&Okno
menutrans &New<Tab>^Wn			&Novo<Tab>^Wn
menutrans S&plit<Tab>^Ws		Razdeli<Tab>^Ws
menutrans Split\ &Vertically<Tab>^Wv	Razdeli\ navpi�no<Tab>^Ws
menutrans Split\ File\ E&xplorer	Razdeli:\ Vsebina\ mape
menutrans Sp&lit\ To\ #<Tab>^W^^	Razdeli\ v\ #<Tab>^W^^
menutrans &Close<Tab>^Wc		&Zapri<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zapri\ &ostala<Tab>^Wo
menutrans Move\ &To			Premakni
menutrans &Top<Tab>^WK			&Gor<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dol<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Levo<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Desno<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Zavrti\ navzgor<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Zavrti\ navzdol<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		&Enaka\ velikost<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Najvi�je<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Najni�je<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Naj�ir�e<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Najo�je<Tab>^W1\|
" }}} WINDOW / OKNO

" {{{ HELP / POMO�
menutrans &Help			&Pomo�
menutrans &Overview<Tab><F1>	Hitri\ pregled<Tab><F1>
menutrans &User\ Manual		P&riro�nik
menutrans &How-to\ links	&How-to\ kazalo
menutrans &Find\.\.\.		Po&i��i\ \.\.\.	" conflicts with Edit.Find
menutrans &Credits		&Avtorji
menutrans Co&pying		&Licenca
menutrans &Sponsor/Register	Registracija\ in\ &donacije
menutrans O&rphans		&Sirotam
menutrans &Version		&Verzija
menutrans &About		&O\ programu
" }}} HELP / POMO�

" {{{ POPUP
menutrans &Undo				&Razveljavi
menutrans Cu&t				&Izre�i
menutrans &Copy				&Kopiraj
menutrans &Paste			&Prilepi
menutrans &Delete			&Zbri�i
menutrans Select\ Blockwise		Izbiraj\ po\ blokih
menutrans Select\ &Word			Izberi\ &besedo
menutrans Select\ &Sentence		Izberi\ &stavek
menutrans Select\ Pa&ragraph		Izberi\ &odstavek
menutrans Select\ &Line			Izberi\ vrs&tico
menutrans Select\ &Block		Izberi\ b&lok
menutrans Select\ &All			Izberi\ &vse
" }}} POPUP

" {{{ TOOLBAR
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Odpri datoteko
    tmenu ToolBar.Save		Shrani datoteko
    tmenu ToolBar.SaveAll	Shrani vse datoteke
    tmenu ToolBar.Print		Natisni
    tmenu ToolBar.Undo		Razveljavi
    tmenu ToolBar.Redo		Obnovi
    tmenu ToolBar.Cut		Izre�i
    tmenu ToolBar.Copy		Kopiraj
    tmenu ToolBar.Paste		Prilepi
    tmenu ToolBar.Find		Najdi ...
    tmenu ToolBar.FindNext	Najdi naslednje
    tmenu ToolBar.FindPrev	Najdi prej�nje
    tmenu ToolBar.Replace	Najdi in zamenjaj ...
    tmenu ToolBar.LoadSesn	Nalo�i sejo
    tmenu ToolBar.SaveSesn	Shrani trenutno sejo
    tmenu ToolBar.RunScript	Izberi Vim skripto za izvajanje
    tmenu ToolBar.Make		Napravi trenutni projekt (:make)
    tmenu ToolBar.RunCtags	Napravi zna�ke v trenutnem direktoriju (!ctags -R.)
    tmenu ToolBar.TagJump	Sko�i k zna�ki pod kurzorjem
    tmenu ToolBar.Help		Pomo� za Vim
    tmenu ToolBar.FindHelp	I��i v pomo�i za Vim
  endfun
endif
" }}} TOOLBAR

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[Brez datoteke]"
let g:menutrans_help_dialog = "Vnesite ukaz ali besedo, za katero �elite pomo�:\n\nUporabite predpono i_ za ukaze v na�inu za pisanje (npr.: i_CTRL-X)\nUporabite predpono c_ za ukaze v ukazni vrstici (command-line) (npr.: c_<Del>)\nUporabite predpono ' za imena opcij (npr.: 'shiftwidth')"
let g:menutrans_path_dialog = "Vnesite poti za iskanje datotek.\nImena direktorijev lo�ite z vejico."
let g:menutrans_tags_dialog = "Vnesite imena datotek z zna�kami ('tag').\nImana lo�ite z vejicami."
let g:menutrans_textwidth_dialog = "Vnesite novo �irino besedila (ali 0 za izklop formatiranja): "
let g:menutrans_fileformat_dialog = "Izberite format datoteke"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Prekli�i"
" }}}

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Zc��qXXvim80/lang/menu_eo_xx.utf-8.vimnu�[���" Menu Translations:	Esperanto for UTF-8 encoding

source <sfile>:p:h/menu_eo.utf-8.vim
PK�j�Z��YYvim80/lang/menu_fr.utf-8.vimnu�[���" Menu Translations:	French for UTF-8 encoding

source <sfile>:p:h/menu_fr_fr.latin1.vim
PK�j�Z�0FFvim80/lang/menu_sr_yu.utf-8.vimnu�[���" Menu Translations:	Serbian

source <sfile>:p:h/menu_sr_rs.utf-8.vim
PK�j�ZF!�j2j2$vim80/lang/menu_cs_cz.iso_8859-2.vimnu�[���" Menu Translations:    Czech (ISO-8859-2)
" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
" Previous maintainer:  Jiri Brezina
" Based on:             menu.vim (2012-10-21)

" Quit when menu translations have already been done.
if exists("did_menu_trans")
   finish
endif

let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding iso-8859-2

" {{{ File menu
menutrans &File				&Soubor
menutrans &Open\.\.\.<Tab>:e		&Otev��t\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otev��t\ v\ no&v�m\ okn�\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otev��t\ tab\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Nov�<Tab>:enew
menutrans &Close<Tab>:close		&Zav��t<Tab>:close
menutrans &Save<Tab>:w			&Ulo�it<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Ulo�it\ &jako\.\.\.<Tab>:sav
if has("printer") || has("unix")
   menutrans &Print			&Tisk
endif
menutrans Sa&ve-Exit<Tab>:wqa		U&lo�it\ a\ ukon�it<Tab>:wqa
menutrans E&xit<Tab>:qa			&Ukon�it<Tab>:qa

if has("diff")
   menutrans Split\ &Diff\ with\.\.\.	Rozd�lit\ okno\ -\ &Diff\.\.\.
   menutrans Split\ Patched\ &By\.\.\.	Rozd�lit\ okno\ -\ &Patch\.\.\.
endif
" }}}

" {{{ Edit menu
menutrans &Edit				�pr&avy
menutrans &Undo<Tab>u			&Zp�t<Tab>u
menutrans &Redo<Tab>^R			Z&ru�it\ vr�cen�<Tab>^R
menutrans Rep&eat<Tab>\.		&Opakovat<Tab>\.
menutrans Cu&t<Tab>"+x			&Vy��znout<Tab>"+x
menutrans &Copy<Tab>"+y			&Kop�rovat<Tab>"+y
menutrans &Paste<Tab>"+gP		V&lo�it<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vlo�it\ &p�ed<Tab>[p
menutrans Put\ &After<Tab>]p		Vlo�i&t\ za<Tab>]p
if has("win32") || has("win16")
   menutrans &Delete<Tab>x			&Smazat<Tab>x
endif
menutrans &Select\ All<Tab>ggVG		Vy&brat\ v�e<Tab>ggVG
if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
   menutrans &Find\.\.\.			&Hledat\.\.\.
   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
else
   menutrans Find<Tab>/ &Hledat<Tab>/
   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
endif
menutrans Settings\ &Window		Nastav&en�\ okna
" {{{2 Edit -1
menutrans Startup\ &Settings  Po��te�n�\ &nastaven�
menutrans &Global\ Settings				&Glob�ln�\ nastaven�
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&P�epnout\ zv�razn�n�\ vzoru<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		P�epnout\ ignorov�n�\ &VERZ�LEK<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		P�epnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
menutrans &Virtual\ Edit				Virtu�ln�\ p&ozice\ kurzoru
menutrans Never						Nikdy
menutrans Block\ Selection				V�b�r\ Bloku
menutrans Insert\ mode					Insert\ m�d
menutrans Block\ and\ Insert				Blok\ a\ Insert
menutrans Always					V�dycky
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		P�epnout\ Insert\ m�&d<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		P�epnout\ kompatibiln�\ re�im\ s\ 'vi'<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohled�v�n�\.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g\ soubory\.\.\.
menutrans Toggle\ &Toolbar				P�epnout\ &Toolbar
menutrans Toggle\ &Bottom\ Scrollbar			P�&epnout\ doln�\ rolovac�\ li�tu
menutrans Toggle\ &Left\ Scrollbar			P�epnout\ &levou\ rolovac�\ li�tu
menutrans Toggle\ &Right\ Scrollbar			P�epnout\ p&ravou\ rolovac�\ li�tu
" {{{2 Edit -2
menutrans F&ile\ Settings				Nastaven�\ so&uboru
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	P�epnout\ ��slov�n�\ ��&dk�<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! P�epnout\ relativn�\ ��slov�n�\ ��&dk�<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		P�epnout\ &List\ m�d<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		P�epnout\ zala&mov�n�\ ��dk�<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	P�epnout\ zl&om\ ve\ slov�<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		P�epnout\ &expand-tab<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		P�epnout\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		P�epnout\ &C-indenting<Tab>:set\ cin!
menutrans &Shiftwidth					Nastav&it\ ��ku\ od&sazen�
menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\.				��ka\ te&xtu\.\.\.
menutrans &File\ Format\.\.\.				&Form�t\ souboru\.\.\.
" {{{2 Edit -3
menutrans C&olor\ Scheme		Barevn�\ s&ch�ma
menutrans &Keymap			Kl�vesov�\ m&apa
if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
   menutrans Select\ Fo&nt\.\.\.		Vybrat\ p�s&mo\.\.\.
endif
" }}}1

" {{{ Programming menu
menutrans &Tools			N�st&roje
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Sko�it\ na\ tag<Tab>g^]
menutrans Jump\ &back<Tab>^T		Sko�it\ &zp�t<Tab>^T
menutrans Build\ &Tags\ File		&Vytvo�it\ soubor\ tag�

if has("spell")
   menutrans &Spelling			&Kontrola\ pravopisu
   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
   menutrans To\ &Next\ error<Tab>]s	&Dal��\ chyba<Tab>]s
   menutrans To\ &Previous\ error<Tab>[s	&P�edchoz�\ chyba<Tab>[s
   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
   menutrans &Find\ More\ Languages	Nal�zt\ dal��\ &jazyky
   let g:menutrans_set_lang_to = "Nastavit jazyk na"
endif

if has("Folding")   
   menutrans &Folding			&Skl�d�n�
   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ ��dek\ &kurzoru<Tab>zv
   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ ��dek\ kurzoru\ <Tab>zMzx
   menutrans C&lose\ more\ folds<Tab>zm	Slo�it\ &jednu\ �rove�\ sklad�<Tab>zm
   menutrans &Close\ all\ folds<Tab>zM	Slo�it\ v�echny\ sklady<Tab>zM
   menutrans O&pen\ more\ folds<Tab>zr	P�idat\ jednu\ �rove�\ sklad�<Tab>zr
   menutrans &Open\ all\ folds<Tab>zR	&Otev��t\ v�echny\ sklady<Tab>zR
   menutrans Fold\ Met&hod			&Metoda\ skl�d�n�
   menutrans M&anual			&Ru�n�
   menutrans I&ndent			&Odsazen�
   menutrans E&xpression	&V�raz
   menutrans S&yntax			&Syntaxe
   menutrans &Diff			&Rozd�ly
   menutrans Ma&rker			&Zna�ky
   menutrans Create\ &Fold<Tab>zf		Vytvo�it\ &sklad<Tab>zf
   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ v�echny\ sklady<Tab>zD
   menutrans Fold\ col&umn\ width		Sloupec\ zob&razen�\ sklad�
endif

if has("diff")
   menutrans &Update			&Obnovit
   menutrans &Get\ Block			&Sejmout\ Blok
   menutrans &Put\ Block			&Vlo�it\ Blok
endif

menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		V�pis\ &chyb<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	V�p&is\ zpr�v<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		Dal��\ ch&yba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&P�edchoz�\ chyba<Tab>:cp
menutrans &Older\ List<Tab>:cold	Sta&r��\ seznam<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	N&ov�j��\ seznam<Tab>:cnew
menutrans Error\ &Window		Chybov�\ o&kno
menutrans SeT\ Compiler			Nas&taven�\ kompil�toru
menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
menutrans &Open<Tab>:copen		&Otev��t<Tab>:copen
menutrans &Close<Tab>:cclose		&Zav��t<Tab>:cclose
menutrans Se&T\ Compiler		N&astavit\ kompil�tor

menutrans &Convert\ to\ HEX<Tab>:%!xxd	P�ev�st\ do\ �estn�ctkov�ho\ form�t&u<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r P�&ev�st\ zp�t<Tab>:%!xxd\ -r
" }}}

" {{{ Syntax menu
menutrans &Syntax		Synta&xe
menutrans Set\ '&syntax'\ only	Nastavit\ pouze\ 'synta&x'
menutrans Set\ '&filetype'\ too	Nastavit\ tak�\ '&filetype'
menutrans &Off			&Vypnout
menutrans &Manual		&Ru�n�
menutrans A&utomatic		A&utomaticky
menutrans on/off\ for\ &This\ file	&P�epnout\ (pro\ tento\ soubor)
menutrans o&ff\ (this\ file)	vyp&nout\ (pro\ tento\ soubor)
menutrans Co&lor\ test		Test\ &barev
menutrans &Highlight\ test	&Test\ zv�raz�ov�n�
menutrans &Convert\ to\ HTML	P�ev�st\ &do\ HTML
menutrans &Show\ filetypes\ in\ menu	&Zobrazit\ v�b�r\ mo�nost�
" }}}

" {{{ Menu Buffers
menutrans &Buffers		&Buffery
menutrans &Refresh\ menu	&Obnovit\ menu
menutrans &Delete		Z&ru�it
menutrans &Alternate		&Zm�nit
menutrans &Next			&Dal��
menutrans &Previous		&P�edchoz�
" }}}

" {{{ Menu Window
menutrans &Window			&Okna
menutrans &New<Tab>^Wn			&Nov�<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Rozd�lit<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Ro&zd�lit\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Rozd�lit\ &vertik�ln�<Tab>^Wv
menutrans Split\ File\ E&xplorer	Rozd�lit\ -\ File\ E&xplorer
menutrans Move\ &To			&P�esun
menutrans &Top<Tab>^WK			&Nahoru<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dolu<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Vlevo<Tab>^WH
menutrans &Right\ side<Tab>^WL		Vp&ravo<Tab>^WL

menutrans &Close<Tab>^Wc		Zav��&t<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zav��t\ &ostatn�<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Dal��<Tab>^Ww
menutrans P&revious<Tab>^WW		&P�edchoz�<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Stejn�\ v��ka<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Maxim�ln�\ v��&ka<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		M&inim�ln�\ v��ka<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		&Maxim�ln�\ ��ka<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minim�ln�\ ��k&a<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		Rotovat\ na&horu<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotovat\ &dol�<Tab>^Wr

" {{{ Help menu
menutrans &Help			&N�pov�da
menutrans &Overview<Tab><F1>	&P�ehled<Tab><F1>
menutrans &User\ Manual		&U�ivatelsk�\ Manu�l
menutrans &How-to\ links	Ho&wto
menutrans &GUI			&Grafick�\ rozhran�
menutrans &Credits		&Auto�i
menutrans Co&pying		&Licen�n�\ politika
menutrans &Sponsor/Register	Sponzorov�n�/&Registrace
menutrans &Find\.\.\.		&Hledat\.\.\.
menutrans O&rphans		O&si�el�\ d�ti
menutrans &Version		&Verze
menutrans &About		&O\ aplikaci
" }}}

" {{{ The popup menu
menutrans &Undo			&Zp�t
menutrans Cu&t			&Vy��znout
menutrans &Copy			&Kop�rovat
menutrans &Paste		&Vlo�it
menutrans &Delete		&Smazat
menutrans Select\ Blockwise	Vybrat\ blokov�
menutrans Select\ &Word		Vybrat\ &slovo
menutrans Select\ Pa&ragraph Vybrat\ &odstavec
menutrans Select\ &Sentence   Vybrat\ v�&tu
menutrans Select\ &Line		Vybrat\ &��dek
menutrans Select\ &Block	Vybrat\ &blok
menutrans Select\ &All		Vybrat\ &v�e
" }}}

" {{{ The GUI toolbar
if has("toolbar")
   if exists("*Do_toolbar_tmenu")
      delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
      tmenu ToolBar.Open		Otev��t soubor
      tmenu ToolBar.Save		Ulo�it soubor
      tmenu ToolBar.SaveAll		Ulo�it v�echny soubory
      if has("printer") || has("unix")
         tmenu ToolBar.Print		Tisk
      endif
      tmenu ToolBar.Undo		Zp�t
      tmenu ToolBar.Redo		Zru�it vr�cen�
      tmenu ToolBar.Cut		Vy��znout
      tmenu ToolBar.Copy		Kop�rovat
      tmenu ToolBar.Paste		Vlo�it
      tmenu ToolBar.Find		Hledat...
      tmenu ToolBar.FindNext	Hledat dal��
      tmenu ToolBar.FindPrev	Hledat p�edchoz�
      tmenu ToolBar.Replace		Nahradit...
      if 0	" disabled; These are in the Windows menu
         tmenu ToolBar.New		Nov� okno
         tmenu ToolBar.WinSplit	Rozd�lit okno
         tmenu ToolBar.WinMax		Maximalizovat okno
         tmenu ToolBar.WinMin		Minimalizovat okno
         tmenu ToolBar.WinClose	Zav��t okno
      endif
      tmenu ToolBar.LoadSesn	Na��st sezen�
      tmenu ToolBar.SaveSesn	Ulo�it sezen�
      tmenu ToolBar.RunScript	Spustit skript
      tmenu ToolBar.Make		Spustit make
      tmenu ToolBar.Shell		Spustit shell
      tmenu ToolBar.RunCtags	Spustit ctags
      tmenu ToolBar.TagJump		Sko�it na tag pod kurzorem
      tmenu ToolBar.Help		N�pov�da
      tmenu ToolBar.FindHelp	Hledat n�pov�du k...
   endfun
endif
" }}}

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[��dn� soubor]"
let g:menutrans_help_dialog = "Zadejte hledan� p��kaz nebo slovo:\n\n\tP�idejte i_ pro p��kazy vkl�dac�ho re�imu (nap�. i_CTRL-X)\n\tP�idejte c_ pro p��kazy p��kazov� ��dky (nap�. c_<Del>)\n\tP�idejte ' pro jm�no volby (nap�. 'shiftwidth')"
let g:menutrans_path_dialog = "Zadejte cesty pro vyhled�v�n� soubor�. Jednotliv� cesty odd�lte ��rkou"
let g:menutrans_tags_dialog = "Zadejte jm�na soubor� s tagy. Jm�na odd�lte ��rkami."
let g:menutrans_textwidth_dialog = "Zadejte d�lku ��dku (0 pro zak�z�n� form�tov�n�):"
let g:menutrans_fileformat_dialog = "Vyberte typ konce ��dk�"
" }}}" 

let &cpo = s:keepcpo
unlet s:keepcpo



" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3:
PK�j�Z��s2s2.vim80/lang/menu_czech_czech_republic.ascii.vimnu�[���" Menu Translations:    Czech (latin1 - w/o diacritics)
" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
" Previous maintainer:  Jiri Brezina
" Based on:             menu.vim (2012-10-21)

" Quit when menu translations have already been done.
if exists("did_menu_trans")
   finish
endif

let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding latin1

" {{{ File menu
menutrans &File				&Soubor
menutrans &Open\.\.\.<Tab>:e		&Otevrit\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otevrit\ v\ no&vem\ okne\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otevrit\ tab\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Novy<Tab>:enew
menutrans &Close<Tab>:close		&Zavrit<Tab>:close
menutrans &Save<Tab>:w			&Ulozit<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Ulozit\ &jako\.\.\.<Tab>:sav
if has("printer") || has("unix")
   menutrans &Print			&Tisk
endif
menutrans Sa&ve-Exit<Tab>:wqa		U&lozit\ a\ ukoncit<Tab>:wqa
menutrans E&xit<Tab>:qa			&Ukoncit<Tab>:qa

if has("diff")
   menutrans Split\ &Diff\ with\.\.\.	Rozdelit\ okno\ -\ &Diff\.\.\.
   menutrans Split\ Patched\ &By\.\.\.	Rozdelit\ okno\ -\ &Patch\.\.\.
endif
" }}}

" {{{ Edit menu
menutrans &Edit				Upr&avy
menutrans &Undo<Tab>u			&Zpet<Tab>u
menutrans &Redo<Tab>^R			Z&rusit\ vraceni<Tab>^R
menutrans Rep&eat<Tab>\.		&Opakovat<Tab>\.
menutrans Cu&t<Tab>"+x			&Vyriznout<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopirovat<Tab>"+y
menutrans &Paste<Tab>"+gP		V&lozit<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vlozit\ &pred<Tab>[p
menutrans Put\ &After<Tab>]p		Vlozi&t\ za<Tab>]p
if has("win32") || has("win16")
   menutrans &Delete<Tab>x			&Smazat<Tab>x
endif
menutrans &Select\ All<Tab>ggVG		Vy&brat\ vse<Tab>ggVG
if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
   menutrans &Find\.\.\.			&Hledat\.\.\.
   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
else
   menutrans Find<Tab>/ &Hledat<Tab>/
   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
endif
menutrans Settings\ &Window		Nastav&eni\ okna
" {{{2 Edit -1
menutrans Startup\ &Settings  Pocatecni\ &nastaveni
menutrans &Global\ Settings				&Globalni\ nastaveni
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Prepnout\ zvyrazneni\ vzoru<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Prepnout\ ignorovani\ &VERZALEK<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Prepnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
menutrans &Virtual\ Edit				Virtualni\ p&ozice\ kurzoru
menutrans Never						Nikdy
menutrans Block\ Selection				Vyber\ Bloku
menutrans Insert\ mode					Insert\ mod
menutrans Block\ and\ Insert				Blok\ a\ Insert
menutrans Always					Vzdycky
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Prepnout\ Insert\ mo&d<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Prepnout\ kompatibilni\ rezim\ s\ 'vi'<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohledavani\.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g\ soubory\.\.\.
menutrans Toggle\ &Toolbar				Prepnout\ &Toolbar
menutrans Toggle\ &Bottom\ Scrollbar			Pr&epnout\ dolni\ rolovaci\ listu
menutrans Toggle\ &Left\ Scrollbar			Prepnout\ &levou\ rolovaci\ listu
menutrans Toggle\ &Right\ Scrollbar			Prepnout\ p&ravou\ rolovaci\ listu
" {{{2 Edit -2
menutrans F&ile\ Settings				Nastaveni\ so&uboru
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Prepnout\ cislovani\ ra&dku<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Prepnout\ relativni\ cislovani\ ra&dku<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Prepnout\ &List\ mod<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Prepnout\ zala&movani\ radku<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Prepnout\ zl&om\ ve\ slove<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Prepnout\ &expand-tab<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Prepnout\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Prepnout\ &C-indenting<Tab>:set\ cin!
menutrans &Shiftwidth					Nastav&it\ sirku\ od&sazeni
menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\.				Sirka\ te&xtu\.\.\.
menutrans &File\ Format\.\.\.				&Format\ souboru\.\.\.
" {{{2 Edit -3
menutrans C&olor\ Scheme		Barevne\ s&chema
menutrans &Keymap			Klavesova\ m&apa
if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
   menutrans Select\ Fo&nt\.\.\.		Vybrat\ pis&mo\.\.\.
endif
" }}}1

" {{{ Programming menu
menutrans &Tools			Nast&roje
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Skocit\ na\ tag<Tab>g^]
menutrans Jump\ &back<Tab>^T		Skocit\ &zpet<Tab>^T
menutrans Build\ &Tags\ File		&Vytvorit\ soubor\ tagu

if has("spell")
   menutrans &Spelling			&Kontrola\ pravopisu
   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
   menutrans To\ &Next\ error<Tab>]s	&Dalsi\ chyba<Tab>]s
   menutrans To\ &Previous\ error<Tab>[s	&Predchozi\ chyba<Tab>[s
   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
   menutrans &Find\ More\ Languages	Nalezt\ dalsi\ &jazyky
   let g:menutrans_set_lang_to = "Nastavit jazyk na"
endif

if has("Folding")   
   menutrans &Folding			&Skladani
   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ radek\ &kurzoru<Tab>zv
   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ radek\ kurzoru\ <Tab>zMzx
   menutrans C&lose\ more\ folds<Tab>zm	Slozit\ &jednu\ uroven\ skladu<Tab>zm
   menutrans &Close\ all\ folds<Tab>zM	Slozit\ vsechny\ sklady<Tab>zM
   menutrans O&pen\ more\ folds<Tab>zr	Pridat\ jednu\ uroven\ skladu<Tab>zr
   menutrans &Open\ all\ folds<Tab>zR	&Otevrit\ vsechny\ sklady<Tab>zR
   menutrans Fold\ Met&hod			&Metoda\ skladani
   menutrans M&anual			&Rucne
   menutrans I&ndent			&Odsazeni
   menutrans E&xpression	&Vyraz
   menutrans S&yntax			&Syntaxe
   menutrans &Diff			&Rozdily
   menutrans Ma&rker			&Znacky
   menutrans Create\ &Fold<Tab>zf		Vytvorit\ &sklad<Tab>zf
   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ vsechny\ sklady<Tab>zD
   menutrans Fold\ col&umn\ width		Sloupec\ zob&razeni\ skladu
endif

if has("diff")
   menutrans &Update			&Obnovit
   menutrans &Get\ Block			&Sejmout\ Blok
   menutrans &Put\ Block			&Vlozit\ Blok
endif

menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		Vypis\ &chyb<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	Vyp&is\ zprav<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		Dalsi\ ch&yba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Predchozi\ chyba<Tab>:cp
menutrans &Older\ List<Tab>:cold	Sta&rsi\ seznam<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	N&ovejsi\ seznam<Tab>:cnew
menutrans Error\ &Window		Chybove\ o&kno
menutrans SeT\ Compiler			Nas&taveni\ kompilatoru
menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
menutrans &Open<Tab>:copen		&Otevrit<Tab>:copen
menutrans &Close<Tab>:cclose		&Zavrit<Tab>:cclose
menutrans Se&T\ Compiler		N&astavit\ kompilator

menutrans &Convert\ to\ HEX<Tab>:%!xxd	Prevest\ do\ sestnactkoveho\ format&u<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pr&evest\ zpet<Tab>:%!xxd\ -r
" }}}

" {{{ Syntax menu
menutrans &Syntax		Synta&xe
menutrans Set\ '&syntax'\ only	Nastavit\ pouze\ 'synta&x'
menutrans Set\ '&filetype'\ too	Nastavit\ take\ '&filetype'
menutrans &Off			&Vypnout
menutrans &Manual		&Rucne
menutrans A&utomatic		A&utomaticky
menutrans on/off\ for\ &This\ file	&Prepnout\ (pro\ tento\ soubor)
menutrans o&ff\ (this\ file)	vyp&nout\ (pro\ tento\ soubor)
menutrans Co&lor\ test		Test\ &barev
menutrans &Highlight\ test	&Test\ zvyraznovani
menutrans &Convert\ to\ HTML	Prevest\ &do\ HTML
menutrans &Show\ filetypes\ in\ menu	&Zobrazit\ vyber\ moznosti
" }}}

" {{{ Menu Buffers
menutrans &Buffers		&Buffery
menutrans &Refresh\ menu	&Obnovit\ menu
menutrans &Delete		Z&rusit
menutrans &Alternate		&Zmenit
menutrans &Next			&Dalsi
menutrans &Previous		&Predchozi
" }}}

" {{{ Menu Window
menutrans &Window			&Okna
menutrans &New<Tab>^Wn			&Nove<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Rozdelit<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Ro&zdelit\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Rozdelit\ &vertikalne<Tab>^Wv
menutrans Split\ File\ E&xplorer	Rozdelit\ -\ File\ E&xplorer
menutrans Move\ &To			&Presun
menutrans &Top<Tab>^WK			&Nahoru<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dolu<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Vlevo<Tab>^WH
menutrans &Right\ side<Tab>^WL		Vp&ravo<Tab>^WL

menutrans &Close<Tab>^Wc		Zavri&t<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zavrit\ &ostatni<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Dalsi<Tab>^Ww
menutrans P&revious<Tab>^WW		&Predchozi<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Stejna\ vyska<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Maximalni\ vys&ka<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		M&inimalni\ vyska<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		&Maximalni\ sirka<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minimalni\ sirk&a<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		Rotovat\ na&horu<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotovat\ &dolu<Tab>^Wr

" {{{ Help menu
menutrans &Help			&Napoveda
menutrans &Overview<Tab><F1>	&Prehled<Tab><F1>
menutrans &User\ Manual		&Uzivatelsky\ Manual
menutrans &How-to\ links	Ho&wto
menutrans &GUI			&Graficke\ rozhrani
menutrans &Credits		&Autori
menutrans Co&pying		&Licencni\ politika
menutrans &Sponsor/Register	Sponzorovani/&Registrace
menutrans &Find\.\.\.		&Hledat\.\.\.
menutrans O&rphans		O&sirele\ deti
menutrans &Version		&Verze
menutrans &About		&O\ aplikaci
" }}}

" {{{ The popup menu
menutrans &Undo			&Zpet
menutrans Cu&t			&Vyriznout
menutrans &Copy			&Kopirovat
menutrans &Paste		&Vlozit
menutrans &Delete		&Smazat
menutrans Select\ Blockwise	Vybrat\ blokove
menutrans Select\ &Word		Vybrat\ &slovo
menutrans Select\ Pa&ragraph Vybrat\ &odstavec
menutrans Select\ &Sentence   Vybrat\ ve&tu
menutrans Select\ &Line		Vybrat\ &radek
menutrans Select\ &Block	Vybrat\ &blok
menutrans Select\ &All		Vybrat\ &vse
" }}}

" {{{ The GUI toolbar
if has("toolbar")
   if exists("*Do_toolbar_tmenu")
      delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
      tmenu ToolBar.Open		Otevrit soubor
      tmenu ToolBar.Save		Ulozit soubor
      tmenu ToolBar.SaveAll		Ulozit vsechny soubory
      if has("printer") || has("unix")
         tmenu ToolBar.Print		Tisk
      endif
      tmenu ToolBar.Undo		Zpet
      tmenu ToolBar.Redo		Zrusit vraceni
      tmenu ToolBar.Cut		Vyriznout
      tmenu ToolBar.Copy		Kopirovat
      tmenu ToolBar.Paste		Vlozit
      tmenu ToolBar.Find		Hledat...
      tmenu ToolBar.FindNext	Hledat dalsi
      tmenu ToolBar.FindPrev	Hledat predchozi
      tmenu ToolBar.Replace		Nahradit...
      if 0	" disabled; These are in the Windows menu
         tmenu ToolBar.New		Nove okno
         tmenu ToolBar.WinSplit	Rozdelit okno
         tmenu ToolBar.WinMax		Maximalizovat okno
         tmenu ToolBar.WinMin		Minimalizovat okno
         tmenu ToolBar.WinClose	Zavrit okno
      endif
      tmenu ToolBar.LoadSesn	Nacist sezeni
      tmenu ToolBar.SaveSesn	Ulozit sezeni
      tmenu ToolBar.RunScript	Spustit skript
      tmenu ToolBar.Make		Spustit make
      tmenu ToolBar.Shell		Spustit shell
      tmenu ToolBar.RunCtags	Spustit ctags
      tmenu ToolBar.TagJump		Skocit na tag pod kurzorem
      tmenu ToolBar.Help		Napoveda
      tmenu ToolBar.FindHelp	Hledat napovedu k...
   endfun
endif
" }}}

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[Zadny soubor]"
let g:menutrans_help_dialog = "Zadejte hledany prikaz nebo slovo:\n\n\tPridejte i_ pro prikazy vkladaciho rezimu (napr. i_CTRL-X)\n\tPridejte c_ pro prikazy prikazove radky (napr. c_<Del>)\n\tPridejte ' pro jmeno volby (napr. 'shiftwidth')"
let g:menutrans_path_dialog = "Zadejte cesty pro vyhledavani souboru. Jednotlive cesty oddelte carkou"
let g:menutrans_tags_dialog = "Zadejte jmena souboru s tagy. Jmena oddelte carkami."
let g:menutrans_textwidth_dialog = "Zadejte delku radku (0 pro zakazani formatovani):"
let g:menutrans_fileformat_dialog = "Vyberte typ konce radku"
" }}}" 

let &cpo = s:keepcpo
unlet s:keepcpo



" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3:
PK�j�Zkq��X*X*vim80/lang/menu_hu_hu.utf-8.vimnu�[���" Menu Translations:	Hungarian (Magyar)
" Original Translation:	Zoltán Árpádffy
" Maintained By:	Kontra Gergely <kgergely@mcl.hu>
" Last Change:		2012 May 01
"
" This file was converted from menu_hu_hu.iso_8859-2.vim.  See there for
" remarks.

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Help menu
menutrans &Help			&Súgó
menutrans &Overview<Tab><F1>	Á&ttekintés<Tab><F1>
menutrans &How-to\ links	&HOGYAN\ linkek
menutrans &User\ Manual		&Kézikönyv
menutrans &Credits		&Szerzők,\ köszönetek
menutrans Co&pying		&Védjegy
menutrans O&rphans		Árvá&k
menutrans &Find\.\.\.		Ke&resés\.\.\.
menutrans &Version		&Verzió
menutrans &About		&Névjegy
" File menu
menutrans &File				&Fájl
menutrans &Open\.\.\.<Tab>:e		Meg&nyitás\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Megnyitás\ új\ a&blakba\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		Új\ dok&umentum<Tab>:enew
menutrans &Close<Tab>:close		Be&zárás<Tab>:close
menutrans &Save<Tab>:w			&Mentés<Tab>:w
menutrans Split\ &Diff\ with\.\.\.	Össze&hasonlítás\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Összehasonlítás\ &patch\ -el\.\.\.
menutrans Save\ &As\.\.\.<Tab>:sav	Menté&s\ másként\.\.\.<Tab>:w
menutrans &Print			Nyomt&atás
menutrans Sa&ve-Exit<Tab>:wqa		Mentés\ és\ k&ilépés<Tab>:wqa
menutrans E&xit<Tab>:qa			&Kilépés<Tab>:qa

" Edit menu
menutrans &Edit				S&zerkesztés
menutrans &Undo<Tab>u			&Visszavonás<Tab>u
menutrans &Redo<Tab>^R			Mé&gis<Tab>^R
menutrans Rep&eat<Tab>\.		&Ismét<Tab>\.
menutrans Cu&t<Tab>"+x			&Kivágás<Tab>"+x
menutrans &Copy<Tab>"+y			&Másolás<Tab>"+y
menutrans &Paste<Tab>"+gP		&Beillesztés<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Berakás\ e&lé<Tab>[p
menutrans Put\ &After<Tab>]p		Berakás\ &mögé<Tab>]p
menutrans &Delete<Tab>x			&Törlés<Tab>x
menutrans &Select\ all<Tab>ggVG		A&z\ összes kijelölése<Tab>ggvG
menutrans &Find\.\.\.			Ke&resés\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Keresés\ és\ c&sere\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	Keresés\ és\ c&sere<Tab>:%s
menutrans Find\ and\ Rep&lace		Keresés\ és\ c&sere
menutrans Find\ and\ Rep&lace<Tab>:s	Keresés\ és\ c&sere<Tab>:s
menutrans Settings\ &Window		&Ablak\ beállításai
menutrans &Global\ Settings		Ál&talános\ beállítások
menutrans F&ile\ Settings		&Fájl\ beállítások
menutrans C&olor\ Scheme		&Színek
menutrans &Keymap			Billent&yűzetkiosztás

" Edit.Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Minta\ kiemelés\ BE/KI<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	&Kis/nagybetű\ azonos/különböző<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!	&Zárójelpár\ mutatása\ BE/KI<Tab>:set\ sm!
menutrans &Context\ lines		&Kurzor\ ablak\ szélétől
menutrans &Virtual\ Edit		&Virtuális\ szerkesztés
menutrans Never				&Soha
menutrans Block\ Selection		&Blokk\ kijelölésekor
menutrans Insert\ mode			S&zöveg\ bevitelekor
menutrans Block\ and\ Insert		Bl&okk\ kijelölésekor\ és\ szöveg\ bevitelekor
menutrans Always			&Mindig
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	&Szövegbeviteli\ mód\ BE/KI<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	&Vi\ kompatíbilis\ mód\ BE/Ki<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		Ke&resési\ útvonal\.\.\.
menutrans Ta&g\ Files\.\.\.		&Tag\ fájl\.\.\.
menutrans Toggle\ &Toolbar		&Eszköztár\ BE/KI
menutrans Toggle\ &Bottom\ Scrollbar	&Vízszintes\ Görgetősáv\ BE/KI
menutrans Toggle\ &Left\ Scrollbar	&Bal\ görgetősáv\ BE/KI
menutrans Toggle\ &Right\ Scrollbar	&Jobb\ görgetősáv\ BE/KI
menutrans None				Nincs

" Edit.File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Sorszá&mozás\ BE/KI<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		&Lista\ mód\ BE/KI<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Sor&törés\ BE/KI<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Sortörés\ s&zóvégeknél\ BE/KI<tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		&Tab\ kifejtés\ BE/KI<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		&Automatikus\ behúzás\ BE/KI<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		&C-behúzás\ BE/KI<Tab>:set\ cin!
menutrans &Shiftwidth					&Behúzás\ mértéke\ ('sw')
menutrans Soft\ &Tabstop				T&abulálás\ mértéke\ ('sts')
menutrans Te&xt\ Width\.\.\.				&Szöveg\ szélessége\.\.\.
menutrans &File\ Format\.\.\.				&Fájlformátum\.\.\.

" Tools menu
menutrans &Tools			&Eszközök
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Ugrás\ a\ taghoz<Tab>g^]
menutrans Jump\ &back<Tab>^T		Ugrás\ &vissza<Tab>^T
menutrans Build\ &Tags\ File		&Tag\ fájl\ készítése
menutrans &Folding			&Behajtások
menutrans &Make<Tab>:make		&Fordítás<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Hibák\ listája<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	Ü&zenetek\ listája<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&Következő\ &hiba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Előző\ hiba<Tab>:cp
menutrans &Older\ List<Tab>:cold	&Régebbi\ lista<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	&Újabb\ lista<Tab>:cnew
menutrans Error\ &Window		Hibaablak
menutrans &Update<Tab>:cwin		&Frissítés<Tab>:cwin
menutrans &Open<Tab>:copen		M&egnyitás<Tab>:copen
menutrans &Close<Tab>:cclose		Be&zárás<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Normál->HEX\ nézet<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	HEX->Normál\ nézet<Tab>:%!xxd\ -r
menutrans &Set\ Compiler		Fordító\ &megadása

" Tools.Folding
menutrans &Enable/Disable\ folds<Tab>zi	Behajtások\ BE&/KI<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	&Aktuális\ sor\ látszik<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	&Csak\ aktuális\ sor\ látszik<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	Következő\ szint\ be&zárása<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	Összes\ hajtás\ &bezárása<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	Következő\ szint\ ki&nyitása<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	Összes\ hajtás\ &kinyitása<Tab>zR
menutrans Fold\ Met&hod			Behajtások\ &létrehozása
menutrans M&anual			&Kézi
menutrans I&ndent			Be&húzás
menutrans E&xpression			Ki&fejezés
menutrans S&yntax			&Szintaxis
menutrans &Diff				&Diff-különbség
menutrans Ma&rker			&Jelölés
menutrans Create\ &Fold<Tab>zf		Ú&j\ behajtás<Tab>zf
menutrans &Delete\ Fold<Tab>zd		Behajtás\ &törlése<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	Öss&zes\ behajtás\ törlése<Tab>zD
menutrans Fold\ col&umn\ width		Behajtások\ a\ &margón\ x\ oszlopban

" Tools.Diff
menutrans &Update		&Frissítés
menutrans &Get\ Block		Block\ &BE
menutrans &Put\ Block		Block\ &KI



" Names for buffer menu.
menutrans &Buffers		&Pufferok
menutrans &Refresh\ menu	&Frissítés
menutrans Delete		&Törlés
menutrans &Alternate		&Csere
menutrans &Next			&Következő
menutrans &Previous		&Előző

" Window menu
menutrans &Window			&Ablak
menutrans &New<Tab>^Wn			Ú&j<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Felosztás<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Felosztás\ &#-val<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Felosztás\ Fü&ggőlegesen<Tab>^Wv
menutrans Split\ File\ E&xplorer	Új\ &intéző
menutrans &Close<Tab>^Wc		Be&zárás<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	&Többi\ bezárása<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Következő<Tab>^Ww
menutrans P&revious<Tab>^WW		&Előző<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Azonos\ magasság<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Ma&x\ magasság<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		&Min\ magasság<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Max\ &szélesség<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Mi&n\ szélesség<Tab>^W1\|
menutrans Move\ &To			&Elmozdítás
menutrans &Top<Tab>^WK			&Fel<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Le<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Balra<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Jobbra<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Gördítés\ &felfelé<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Gördítés\ &lefelé<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		&Betűtípus\.\.\.

" The popup menu
menutrans &Undo			&Visszavonás
menutrans Cu&t			&Kivágás
menutrans &Copy			&Másolás
menutrans &Paste		&Beillesztés
menutrans &Delete		&Törlés
menutrans Select\ Blockwise	Kijelölés\ blo&kként
menutrans Select\ &Word		S&zó\ kijelölése
menutrans Select\ &Line		&Sor\ kijelölése
menutrans Select\ &Block	B&lokk\ kijelölése
menutrans Select\ &All		A&z\ összes\ kijelölése

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Megnyitás
    tmenu ToolBar.Save		Mentés
    tmenu ToolBar.SaveAll	Mindet menti
    tmenu ToolBar.Print		Nyomtatás
    tmenu ToolBar.Undo		Visszavonás
    tmenu ToolBar.Redo		Mégis
    tmenu ToolBar.Cut		Kivágás
    tmenu ToolBar.Copy		Másolás
    tmenu ToolBar.Paste		Beillesztés
    tmenu ToolBar.Find		Keresés
    tmenu ToolBar.FindNext	Tovább keresés
    tmenu ToolBar.FindPrev	Keresés visszafelé
    tmenu ToolBar.Replace	Keresés/csere
    tmenu ToolBar.LoadSesn	Munkamenet beolvasás
    tmenu ToolBar.SaveSesn	Munkamenet mentés
    tmenu ToolBar.RunScript	Vim program indítás
    tmenu ToolBar.Make		Projekt építés
    tmenu ToolBar.Shell		Shell indítás
    tmenu ToolBar.RunCtags	Tag építés
    tmenu ToolBar.TagJump	Ugrás a kurzor alatti tagra
    tmenu ToolBar.Help		Vim súgó
    tmenu ToolBar.FindHelp	Keresés a Vim súgóban
  endfun
endif

" Syntax menu
menutrans &Syntax			Sz&intaxis
menutrans &Show\ filetypes\ in\ menu	Fájl&típusok\ menü
menutrans Set\ '&syntax'\ only		Csak\ '&syntax'
menutrans Set\ '&filetype'\ too		'&filetype'\ is
menutrans &Off				&Ki
menutrans &Manual			Ké&zi
menutrans A&utomatic			A&utomatikus
menutrans on/off\ for\ &This\ file	&BE/KI\ ennél\ a\ fájlnál
menutrans Co&lor\ test			&Színteszt
menutrans &Highlight\ test		Kiemelés\ &teszt
menutrans &Convert\ to\ HTML		&HTML\ oldal\ készítése

" dialog texts
let menutrans_no_file = "[Nincs file]"
let menutrans_help_dialog = "Írd be a kívánt szót vagy parancsot:\n\n A szövegbeviteli parancsok elé írj i_-t (pl.: i_CTRL-X)\nA sorszerkesző parancsok elé c_-t (pl.: c_<Del>)\nA változókat a ' jellel vedd körül (pl.: 'shiftwidth')"
let g:menutrans_path_dialog = "Írd be a keresett fájl lehetséges elérési útjait, vesszővel elválasztva"
let g:menutrans_tags_dialog = "Írd be a tag fájl lehetséges elérési útjait, vesszővel elválasztva"
let g:menutrans_textwidth_dialog = "Írd be a szöveg szélességét (0 = formázás kikapcsolva)"
let g:menutrans_fileformat_dialog = "Válaszd ki a fájl formátumát"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�0FFvim80/lang/menu_sr.utf-8.vimnu�[���" Menu Translations:	Serbian

source <sfile>:p:h/menu_sr_rs.utf-8.vim
PK�j�Z�U��� vim80/lang/menu_af_af.latin1.vimnu�[���" Menu Translations:	Afrikaas
" Maintainer:		Danie Roux <droux@tuks.co.za>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in latin1, but they work for cp1252 and
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
  scriptencoding latin1
endif


" Help menu
menutrans &Help			&Hulp
menutrans &Overview<Tab><F1>	&Oorsig<Tab><F1>
menutrans &How-to\ links	&How-to\ Indeks
"menutrans &GUI			&GUI
menutrans &Credits		&Met\ dank\ aan
menutrans Co&pying		&Kopiereg
menutrans &Find\.\.\.		&Soek\.\.\.
menutrans &Version		&Weergawe
menutrans &About		&Inleiding\ skerm

" File menu
menutrans &File				&L�er
menutrans &Open\.\.\.<Tab>:e		&Open\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Maak\ oop\ in\ nuwe\ &venster\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		&Nuut<Tab>:enew
menutrans &Close<Tab>:close		Maak\ &Toe<Tab>:close
menutrans &Save<Tab>:w			&Skryf<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:w	Skryf\ &as\.\.\.<Tab>:w
menutrans &Print			&Druk
menutrans Sa&ve-Exit<Tab>:wqa		Skryf\ en\ verlaat<Tab>:wqa
menutrans E&xit<Tab>:qa			&Verlaat<Tab>:qa

" Edit menu
menutrans &Edit				&Wysig
menutrans &Undo<Tab>u			Terug<Tab>u
menutrans &Redo<Tab>^R			Voo&ruit<Tab>^R
menutrans Rep&eat<Tab>\.			&Herhaal<Tab>\.
menutrans Cu&t<Tab>"+x			&Knip<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopi�er<Tab>"+y
menutrans &Paste<Tab>"+gP		Plak<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Voeg\ &Voor\ in<Tab>[p
menutrans Put\ &After<Tab>]p		Voeg\ A&gter\ in<Tab>]p
menutrans &Select\ all<Tab>ggVG		Kies\ &Alles<Tab>ggVG
menutrans &Find\.\.\.			&Soek\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.			Soek\ en\ Vervang\.\.\.
menutrans Options\.\.\.			Opsies\.\.\.

" Programming menu
menutrans &Tools			&Gereedskap
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Spring\ na\ Etiket<Tab>g^]
menutrans Jump\ &back<Tab>^T		Spring\ &Terug<Tab>^T
menutrans Build\ &Tags\ File		Genereer\ &Etiket\ Le�r
menutrans &Make<Tab>:make		Voer\ &Make\ uit<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Foutlys<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	&Boodskaplys<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		Volgende\ Fout<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	Vorige\ Fout<Tab>:cp
menutrans &Older\ List<Tab>:cold	&Ouer\ Lys<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	&Nuwer\ Lys<Tab>:cnew
menutrans Error\ &Window<Tab>:cwin	Foute\ Venster<Tab>:cwin
menutrans Convert\ to\ HEX<Tab>:%!xxd	Verwissel\ na\ HEX<Tab>:%!xxd
menutrans Convert\ back<Tab>:%!xxd\ -r	Verwissel\ terug<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers	&Buffers
menutrans Refresh	Verfris
menutrans Delete	Verwyder
menutrans Alternate	Vorige
menutrans [No\ File]	[Geen\ Le�r]

" Window menu
menutrans &Window			&Venster
menutrans &New<Tab>^Wn			&Nuut<Tab>^Wn
menutrans S&plit<Tab>^Ws		Ver&deel<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Verdeel\ N&a\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv		Verdeel\ Vertikaal<Tab>^Wv
menutrans &Close<Tab>^Wc		&Maak\ toe<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Maak\ &Ander\ Toe<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			Volgende<Tab>^Ww
menutrans P&revious<Tab>^WW		&Vorige<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Gelyke\ hoogte<Tab>^W=
menutrans &Max\ Height<Tab>^W_		&Maksimale\ hoogte<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Mi&nimale\ hoogte<Tab>^W1_
menutrans Max\ Width<Tab>^W\|		Maksimale\ breedte<Tab>^W\|
menutrans Min\ Width<Tab>^W1\|		Minimale\ breedte<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		Roteer\ na\ &bo<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Roteer\ na\ &onder<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		Kies\ font\.\.\.

" The popup menu
menutrans &Undo			&Terug
menutrans Cu&t			Knip
menutrans &Copy			&Kopi�er
menutrans &Paste		&Plak
menutrans &Delete		&Verwyder
menutrans Select\ Blockwise	Kies\ per\ Blok
menutrans Select\ &Word		Kies\ een\ &Woord
menutrans Select\ &Line		Kies\ een\ &Re�l
menutrans Select\ &Block	Kies\ een\ &Blok
menutrans Select\ &All		Kies\ &Alles

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Maak le�r oop
    tmenu ToolBar.Save		Skryf le�r
    tmenu ToolBar.SaveAll	Skryf alle le�rs
    tmenu ToolBar.Print		Druk
    tmenu ToolBar.Undo		Terug
    tmenu ToolBar.Redo		Vooruit
    tmenu ToolBar.Cut		Knip
    tmenu ToolBar.Copy		Kopi�er
    tmenu ToolBar.Paste		Plak
    tmenu ToolBar.Find		Soek...
    tmenu ToolBar.FindNext	Soek volgende
    tmenu ToolBar.FindPrev	Soek vorige
    tmenu ToolBar.Replace	Soek en vervang...
    tmenu ToolBar.LoadSesn	Laai sessie
    tmenu ToolBar.SaveSesn	Stoor sessie
    tmenu ToolBar.RunScript	Voer vim skrip uit
    tmenu ToolBar.Make		Voer make uit
    tmenu ToolBar.Shell		Begin dop
    tmenu ToolBar.RunCtags	Genereer etikette
    tmenu ToolBar.TagJump	Spring na etiket
    tmenu ToolBar.Help		Hulp
    tmenu ToolBar.FindHelp	Soek hulp...
  endfun
endif

" Syntax menu
menutrans &Syntax		&Sintaks
menutrans Set\ 'syntax'\ only		Stel\ slegs\ 'syntax'
menutrans Set\ 'filetype'\ too	Verander\ 'filetype'\ ook
menutrans &Off			&Af
menutrans &Manual		&Met\ die\ hand
menutrans A&utomatic		O&utomaties
menutrans o&n\ (this\ file)		Aa&n\ (die\ le�r)
menutrans o&ff\ (this\ file)	&Af\ (die\ le�r)
menutrans Co&lor\ test		Toets\ die\ &kleure
menutrans &Highlight\ test	Toets\ die\ verligting
menutrans &Convert\ to\ HTML	Verwissel\ na\ HTML

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�OaRR&vim80/lang/menu_italian_italy.1252.vimnu�[���" Menu Translations:	Italian for Latin1

source <sfile>:p:h/menu_it_it.latin1.vim
PK�j�ZWW?�#(#( vim80/lang/menu_uk_ua.cp1251.vimnu�[���" Menu Translations:	Ukrainian
" Maintainer:		Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Last Change:		11 Oct 2001

"
" Please, see readme at htpp://www.vstu.edu.ua/~bohdan/vim before any
" complains, and even if you won't complain, read it anyway.
"

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp1251

" Help menu
menutrans &Help			&��������
menutrans &Overview<Tab><F1>	&�������\ ��������<Tab><F1>
menutrans &User\ Manual		&���������\ ��\ ����������
menutrans &How-to\ links	&��-�������?
"menutrans &GUI			&GIU
menutrans &Credits		&�����
menutrans Co&pying		&������������
menutrans O&rphans		&��������\ �������
menutrans &Version		&����
menutrans &About		���\ &��������

" File menu
menutrans &File				&����
menutrans &Open\.\.\.<Tab>:e	    &³������\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &��������\ ����\.\.\.<Tab>:sp
menutrans &New<Tab>:enew	    &�����<Tab>:enew
menutrans &Close<Tab>:close	    &�������<Tab>:close
menutrans &Save<Tab>:w		    ��&���'�����<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	�����'�����\ &��\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	��&�����\ �\.\.\.
menutrans Split\ Patched\ &By\.\.\.	��&������\.\.\.
menutrans &Print					&���������
menutrans Sa&ve-Exit<Tab>:wqa		��������\ �\ ��&���<Tab>:wqa
menutrans E&xit<Tab>:qa			&���<Tab>:qa

" Edit menu
menutrans &Edit				&����������
menutrans &Undo<Tab>u			&³������<Tab>u
menutrans &Redo<Tab>^R			&���������<Tab>^R
menutrans Rep&eat<Tab>\.		�&��������<Tab>\.
menutrans Cu&t<Tab>"+x			��&�����<Tab>"+x
menutrans &Copy<Tab>"+y			&�������<Tab>"+y
menutrans &Paste<Tab>"+gP		�&�������<Tab>"+gP
menutrans Put\ &Before<Tab>[p		��������\ ����&����<Tab>[p
menutrans Put\ &After<Tab>]p		��������\ �&���<Tab>]p
menutrans &Select\ all<Tab>ggVG		��&�����\ ���<Tab>ggVG
menutrans &Find\.\.\.			&������\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	��&�����\.\.\.
menutrans Settings\ &Window		³���\ &���������
menutrans &Global\ Settings		������\ ��&��������
menutrans F&ile\ Settings		����������\ ��\ &�����
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	&�������\ ����<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		�����\ ��&���������\ ����������<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		�����\ &��������<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	����������\ ���\ &�����<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!			������������\ ��������\ &�������<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		�����������\ &������<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		³������\ ��\ ����\ &C<Tab>:set\ cin!
menutrans &Shiftwidth								&����
menutrans Te&xt\ Width\.\.\.						&������\ ������\.\.\.
menutrans &File\ Format\.\.\.			&������\ �����\.\.\.
menutrans Soft\ &Tabstop				�����\ &�������
menutrans C&olor\ Scheme		&������
menutrans Select\ Fo&nt\.\.\.		�������\ &�����\.\.\.


menutrans &Keymap			�����\ ���������
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	������\ &������<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		&��������\ \�����\ ��\ ���\ �����<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		&��������\ ����<Tab>:set\ sm!
menutrans &Context\ lines	ʳ����\ &�������\ ����
menutrans &Virtual\ Edit	������\ &�����\ ���\ ���

menutrans Never			ͳ����
menutrans Block\ Selection	����\ �����
menutrans Insert\ mode		�����\ �������
menutrans Block\ and\ Insert	����\ �\ �������
menutrans Always		������

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	�����\ &�������<Tab>:set\ im!
menutrans Search\ &Path\.\.\.	&��\ �����\.\.\.
menutrans Ta&g\ Files\.\.\.	�����\ &������\.\.\.


"
" GUI options
menutrans Toggle\ &Toolbar		�����\ &�����������
menutrans Toggle\ &Bottom\ Scrollbar	&����\ �����\ �����
menutrans Toggle\ &Left\ Scrollbar	&˳��\ �����\ �����
menutrans Toggle\ &Right\ Scrollbar	&�����\ �����\ �����

" Programming menu
menutrans &Tools			&�����������
menutrans &Jump\ to\ this\ tag<Tab>g^]	&�������\ ��\ ������<Tab>g^]
menutrans Jump\ &back<Tab>^T		��&��������<Tab>^T
menutrans Build\ &Tags\ File		&��������\ ����\ ������
" Folding
menutrans &Folding				&�������
menutrans &Enable/Disable\ folds<Tab>zi		&���������/����������\ �������<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&�����\ ����\ �\ ��������<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx			�����\ &���\ ����\ �\ ��������<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm				�������\ &���\ �������<Tab>zm
menutrans &Close\ all\ folds<Tab>zM				�������\ &��\ �������<Tab>zM
menutrans &Open\ all\ folds<Tab>zR				³������\ �&�\ �������<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr				³������\ �&���\ �������<Tab>zr

menutrans Create\ &Fold<Tab>zf				�&�������\ �������<Tab>zf
menutrans &Delete\ Fold<Tab>zd				&��������\ �������<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD		�������&�\ ��\ �������<Tab>zD
menutrans Fold\ column\ &width				&������\ ����\ �������
menutrans Fold\ Met&hod		&�����\ ��������
menutrans M&anual			&�����
menutrans I&ndent			&³�����
menutrans E&xpression       �&����
menutrans S&yntax			&����������
menutrans Ma&rker			��&�����

" Diff
menutrans &Diff					��&�����
menutrans &Update				&��������
menutrans &Get\ Block			&���������\ ����
menutrans &Put\ Block			&����������\ ����

" Make and stuff...
menutrans &Make<Tab>:make		&��������(make)<Tab>:make
menutrans &List\ Errors<Tab>:cl		&������\ �������<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	��&����\ ���������<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&��������\ �������<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&��������\ �������<Tab>:cp
menutrans &Older\ List<Tab>:cold	&���\ �������<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	&�������\ �������<Tab>:cnew
menutrans Error\ &Window	    &³���\ �������
menutrans &Update<Tab>:cwin			&��������<Tab>:cwin
menutrans &Close<Tab>:cclose		&�������<Tab>:cclose
menutrans &Open<Tab>:copen			&³������<Tab>:copen

menutrans &Set\ Compiler				����������\ &��������
menutrans &Convert\ to\ HEX<Tab>:%!xxd     ���������\ �\ �����������\ ����<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r     ���������\ �\ �������\ �����<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers	&������
menutrans &Refresh\ menu &��������
menutrans Delete	&��������
menutrans &Alternate	&���������
menutrans &Next		&������
menutrans &Previous	&���������
menutrans [No\ File]	[����\ �����]

" Window menu
menutrans &Window			&³���
menutrans &New<Tab>^Wn			&����<Tab>^Wn
menutrans S&plit<Tab>^Ws		&��������<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	��������\ ��\ &����������\ �����<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	��������\ &�������<Tab>^Wv
"menutrans Split\ &Vertically<Tab>^Wv	&��������\ �������<Tab>^Wv
menutrans Split\ File\ E&xplorer		��������\ ��\ &��������\ �����

menutrans &Close<Tab>^Wc		&�������<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	�������\ ��\ &��<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&��������<Tab>^Ww
menutrans P&revious<Tab>^WW		&��������<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&�������\ �����<Tab>^W=
menutrans &Max\ Height<Tab>^W_		���&���\ ������<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		���&����\ ������<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		����&��\ ������<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		������&��\ ������<Tab>^W1\|
menutrans Move\ &To			&�������
menutrans &Top<Tab>^WK			��&����<Tab>^WK
menutrans &Bottom<Tab>^WJ		��&����<Tab>^WJ
menutrans &Left\ side<Tab>^WH		�&���<Tab>^WH
menutrans &Right\ side<Tab>^WL		�&�����<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		&������\ ������<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		�&�����\ ����<Tab>^Wr

" The popup menu
menutrans &Undo			&³������
menutrans Cu&t			��&�����
menutrans &Copy			&�������
menutrans &Paste		�&�������
menutrans &Delete		��&������
menutrans Select\ &Word		�������\ &�����
menutrans Select\ &Line		�������\ &����
menutrans Select\ &Block	�������\ &����
menutrans Select\ &All		�������\ &���



" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		³������ ����
    tmenu ToolBar.Save		�����'����� ����
    tmenu ToolBar.SaveAll		�����'����� �� �����
    tmenu ToolBar.Print		���������
    tmenu ToolBar.Undo		³������
    tmenu ToolBar.Redo		���������
    tmenu ToolBar.Cut		�������
    tmenu ToolBar.Copy		�������
    tmenu ToolBar.Paste		��������
    tmenu ToolBar.Find		������...
    tmenu ToolBar.FindNext	������ ���������
    tmenu ToolBar.FindPrev	������ ���������
    tmenu ToolBar.Replace	�������...
    tmenu ToolBar.LoadSesn	����������� ����� ����������
    tmenu ToolBar.SaveSesn	�����'����� ����� ����������
    tmenu ToolBar.RunScript	�������� ���� ������
    tmenu ToolBar.Make		��������� ������
    tmenu ToolBar.Shell		Shell
    tmenu ToolBar.RunCtags	�������� ���� ������
    tmenu ToolBar.TagJump	������� �� ������
    tmenu ToolBar.Help		��������
    tmenu ToolBar.FindHelp	���� � �������
  endfun
endif

" Syntax menu
menutrans &Syntax &���������
menutrans Set\ '&syntax'\ only	������������\ ���\ '&syntax'
menutrans Set\ '&filetype'\ too	������������\ '&filetype'\ �����
menutrans &Off			&��������
menutrans &Manual		&�����
menutrans A&utomatic		&����������
menutrans on/off\ for\ &This\ file		����������\ ��\ �����\ &�����
menutrans Co&lor\ test		��������\ &������
menutrans &Highlight\ test	&��������\ �������
menutrans &Convert\ to\ HTML	��������\ &HTML

" dialog texts
let menutrans_no_file = "[����\ �����]"
let menutrans_help_dialog = "����� ������� ��� ����� �� �����:\n\n������� i_ �� ������ ������ ������� (����. i_CTRL-X)\n������� i_ �� ���������� ������ (����. �_<Del>)\n������� ' �� �������� ����� ��� (����. 'shiftwidth')"
let g:menutrans_path_dialog = "����� �� ����� �����\n�������� ����� ��������� ������."
let g:menutrans_tags_dialog = "����� ����� ����� ������\n�������� ����� ������."
let g:menutrans_textwidth_dialog = "����� ���� ������ ������ (0 �� ����� ����������)"
let g:menutrans_fileformat_dialog = "������ ������ �����"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�ZW5_�@@vim80/lang/menu_ru.utf-8.vimnu�[���" Menu Translations:	Russian

source <sfile>:p:h/menu_ru_ru.vim
PK�j�ZD�m��E�E vim80/lang/menu_fi_fi.latin1.vimnu�[���" Menu Translations:	Finnish
" Maintainer:		Flammie Pirinen <flammie@iki.fi>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" Translations should be in latin1, if it requires latin9 or even unicode,
" change this:
if &enc != "cp1252" && &enc != "iso-8859-15" && &enc != "iso-8859-1"
  scriptencoding latin1
endif

" Accels: TMYSPIO
menutrans &File				&Tiedosto
" Accels: AJTUSNIDPOE
menutrans &Open\.\.\.<Tab>:e			&Avaa\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp		Avaa\ &jaettuna\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew		Avaa\ &tabissa\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew			&Uusi<Tab>:enew
menutrans &Close<Tab>:close			&Sulje<Tab>:close
" -SEP1-
menutrans &Save<Tab>:w				Talle&nna<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav		Tallenna\ n&imell�\.\.\.<Tab>:sav
" -SEP2-
menutrans Split\ &Diff\ with\.\.\.		Jaa\ &diffill�\.\.\.
menutrans Split\ Patched\ &By\.\.\.		Jaa\ &patchilla\.\.\.
" -SEP3-
menutrans &Print				Tul&osta
" -SEP4-
menutrans Sa&ve-Exit<Tab>:wqa			Tall&enna\ ja\ lopeta<Tab>:wqa
menutrans E&xit<Tab>:qa				&Lopeta<Tab>:qa


menutrans &Edit				&Muokkaa
" Accels: KPTLOIEJSAHRUYKVNF
menutrans &Undo<Tab>u				&Kumoa<Tab>u
menutrans &Redo<Tab>^R				&Palauta<Tab>^R
menutrans Rep&eat<Tab>\.			&Toista<Tab>\.
" -SEP1-
menutrans Cu&t<Tab>"+x				&Leikkaa<Tab>"+x
menutrans &Copy<Tab>"+y				K&opioi<Tab>"+y
menutrans &Paste<Tab>"+gP			L&iit�<Tab>"+gP
menutrans Put\ &Before<Tab>[p			Lis��\ &ennen<Tab>[p
menutrans Put\ &After<Tab>]p			Lis��\ &j�lkeen<Tab>]p
menutrans &Delete<Tab>x				Poi&sta<Tab>x
menutrans &Select\ All<Tab>ggVG			V&alitse\ kaikki<Tab>ggVG
" -SEP2-
menutrans &Find\.\.\.				&Hae\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.		Hae\ ja\ ko&rvaa\.\.\.
menutrans &Find<Tab>/				&Hae<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s		Hae\ ja\ ko&rvaa<Tab>:%s
menutrans Find\ and\ Rep&lace<Tab>:s		Hae\ ja\ ko&rvaa<Tab>:s
" -SEP3-
menutrans Settings\ &Window			Aset&usikkuna
menutrans Startup\ &Settings		&K�ynnistysasetukset
menutrans &Global\ Settings			&Yleiset\ asetukset
" Submenu:
" Accels: KOSHVYIATLEPR
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Korostus<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		&Ohita\ kirjaintaso<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		&Suljekorostus<Tab>:set\ sm!

menutrans &Context\ lines				&Huomioitavat\ kontekstirivit
" Subsubmenu:
" Accels: ELSOA
menutrans &Virtual\ Edit				&Virtuaalimuokkaus
menutrans Never							&Ei koskaan
menutrans Block\ Selection					&Lohkovalinta
menutrans Insert\ mode						&Sy�tt�tila
menutrans Block\ and\ Insert					L&ohkosy�tt�tila
menutrans Always						&Aina

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		S&y�tt�tila<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		V&i-tila<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				H&akupolku\.\.\.
menutrans Ta&g\ Files\.\.\.				&T�gitiedostot\.\.\.
" -SEP1-
menutrans Toggle\ &Toolbar				Ty�ka&lupalkki
menutrans Toggle\ &Bottom\ Scrollbar			Vaakavi&erityspalkki
menutrans Toggle\ &Left\ Scrollbar			Vasen\ &pystyvierityspalkki
menutrans Toggle\ &Right\ Scrollbar			Oikea\ pystyvie&rityspalkki

let g:menutrans_path_dialog = "Anna tiedostojen hakupolku.\nErota hakemistot pilkuin."
let g:menutrans_tags_dialog = "Anna t�gitiedostojen nimet.\nErota tidostot pilkuin."

menutrans F&ile\ Settings			Tiedostoasetu&kset
" Submenu:
" Accels: NLRSTACIBEM
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Rivi&numerointi<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		&Listaustila<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		&Rivitys<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	&Sanoittainen rivitys<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Muuta\ &tabit\ v�leiksi<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		&Automaattinen\ sisennys<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		&C-kielen\ sisennys<Tab>:set\ cin!
" -SEP2-
menutrans &Shiftwidth					S&isennysleveys
menutrans Soft\ &Tabstop				N�enn�ista&bulointi
menutrans Te&xt\ Width\.\.\.				Tekstinl&eveys\.\.\.
menutrans &File\ Format\.\.\.				Tiedosto&muoto\.\.\.

let g:menutrans_textwidth_dialog = "Anna uusi tekstin leveys\n(0 poistaa k�yt�st�)"
let g:menutrans_fileformat_dialog = "Anaa tiedoston kirjoitusmuoto."
let g:menutrans_fileformat_choices = " &Unix \n &Dos \n &Mac \n &Peru "

menutrans C&olor\ Scheme			&V�riteema
menutrans &Keymap				&N�pp�inkartta
menutrans None						Ei mik��n
menutrans Select\ Fo&nt\.\.\.			Valitse\ &fontti\.\.\.


menutrans &Tools			T&y�kalut
" Accels: ___OTDM__
menutrans &Jump\ to\ this\ tag<Tab>g^]		Siirry\ t�giin<Tab>g^]
menutrans Jump\ &back<Tab>^T			Siirry\ takaisin<Tab>^T
menutrans Build\ &Tags\ File			Luo\ t�gitiedosto

" -SEP1-
menutrans &Spelling			&Oikeinkirjoitus
" Submenu:
" Accels: OSEKT
menutrans &Spell\ Check\ On			&Oikaisuluku\ p��lle
menutrans Spell\ Check\ &Off			&Oikaisuluku\ pois\ p��lt�
menutrans To\ &Next\ error<Tab>]s		&Seuraavaan\ virheeseen<Tab>]s
menutrans To\ &Previous\ error<Tab>[s		&Edelliseen\ virheeseen<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=		Ehdota\ &korjausta<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	&Toista\ korjaus<Tab>:spellrepall

menutrans Set\ language\ to\ "en"		Aseta\ kieleksi\ en
menutrans Set\ language\ to\ "en_au"		Aseta\ kieleksi\ en_au
menutrans Set\ language\ to\ "en_ca"		Aseta\ kieleksi\ en_ca
menutrans Set\ language\ to\ "en_gb"		Aseta\ kieleksi\ en_gb
menutrans Set\ language\ to\ "en_nz"		Aseta\ kieleksi\ en_nz
menutrans Set\ language\ to\ "en_us"		Aseta\ kieleksi\ en_us

menutrans &Find\ More\ Languages		Hae\ lis��\ kieli�



menutrans &Folding				&Taitokset
" Accels: TNVSAPEOKL
menutrans &Enable/Disable\ folds<Tab>zi			&Taitokset<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&N�yt�\ kursorin\ rivi<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		N�yt�\ &vain\ kursorin\ rivi<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm			&Sulje\ lis��\ taitoksia<Tab>zm
menutrans &Close\ all\ folds<Tab>zM			&Sulje\ kaikki\ taitokset<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr			&Avaa\ lis��\ taitoksia<Tab>zr
menutrans &Open\ all\ folds<Tab>zR			&Avaa\ kaikki\ taitokset<Tab>zR
" -SEP1-
menutrans Fold\ Met&hod					Taitteluta&pa
" Submenu:
" Accels: MILSDM
menutrans M&anual						&Manuaalinen
menutrans I&ndent						S&isennys
menutrans E&xpression						I&lmaus
menutrans S&yntax						&Syntaksi
menutrans &Diff							&Diff
menutrans Ma&rker						&Merkit

menutrans Create\ &Fold<Tab>zf				T&ee\ taitos<Tab>zf
menutrans &Delete\ Fold<Tab>zd				P&oista\ taitos<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD			Poista\ &kaikki\ taitokset<Tab>zD
" -SEP2-
menutrans Fold\ col&umn\ width				Taitossarakkeen\ &leveys

menutrans &Diff					&Diffit
" Submenu:
" Accels: PHL
menutrans &Update					&P�ivit�
menutrans &Get\ Block					&Hae\ lohko
menutrans &Put\ Block					&Lis��\ lohko

" -SEP2-
menutrans &Make<Tab>:make			&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl			Virheluettelo<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!		Virheviestit<Tab>:cl!
menutrans &Next\ Error<Tab>:cn			Seuraava\ virhe<Tab>:cn
menutrans &Previous\ Error<Tab>:cp		Edellinen\ virhe<Tab>:cp
menutrans &Older\ List<Tab>:cold		Edellinen\ lista<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew		Seuraava\ lista<Tab>:cnew

menutrans Error\ &Window			Virheikkuna
" Submenu:
" Accels: PAS
menutrans &Update<Tab>:cwin				&P�ivit�<Tab>:cwin
menutrans &Open<Tab>:copen				&Avaa<Tab>:copen
menutrans &Close<Tab>:cclose				&Sulje<Tab>:cclose

menutrans Se&T\ Compiler			Ase&ta\ k��nt�j�
" -SEP3-
menutrans &Convert\ to\ HEX<Tab>:%!xxd		Muunna\ heksoiksi<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r		Muunna\ takaisin<Tab>:%!xxd\ -r


menutrans &Syntax			&Syntaksi
" Accels: NSFPMAT
menutrans &Show\ filetypes\ in\ menu		&N�yt�\ tiedostotyypit\ valikossa
" -SEP1-
menutrans Set\ '&syntax'\ only			Aseta\ vain\ &syntax
menutrans Set\ '&filetype'\ too			Aseta\ my�s\ &filetype
menutrans &Off					&Pois\ p��lt�
" -SEP3-
menutrans Co&lor\ test				Testaa\ v�rit
menutrans &Highlight\ test			Testaa\ korostukset
menutrans &Convert\ to\ HTML			Muunna\ HTML:ksi
" -SEP2-
menutrans &Off					&Pois\ p��lt�
menutrans &Manual				&Manuaalinen
menutrans A&utomatic				&Automaattinen
menutrans on/off\ for\ &This\ file		Kytke\ &t�lle\ tiedostolle

" The Start Of The Syntax Menu
menutrans ABC\ music\ notation		ABC\ (notation\ musicale)
menutrans AceDB\ model			Mod�le\ AceDB
menutrans Apache\ config		Config\.\ Apache
menutrans Apache-style\ config		Config\.\ style\ Apache
menutrans ASP\ with\ VBScript		ASP\ avec\ VBScript
menutrans ASP\ with\ Perl		ASP\ avec\ Perl
menutrans Assembly			Assembleur
menutrans BC\ calculator		Calculateur\ BC
menutrans BDF\ font			Fonte\ BDF
menutrans BIND\ config			Config\.\ BIND
menutrans BIND\ zone			Zone\ BIND
menutrans Cascading\ Style\ Sheets	Feuilles\ de\ style\ en\ cascade
menutrans Cfg\ Config\ file		Fichier\ de\ config\.\ \.cfg
menutrans Cheetah\ template		Patron\ Cheetah
menutrans commit\ file			Fichier\ commit
menutrans Generic\ Config\ file		Fichier\ de\ config\.\ g�n�rique
menutrans Digital\ Command\ Lang	DCL
menutrans DNS/BIND\ zone		Zone\ BIND/DNS
menutrans Dylan\ interface		Interface
menutrans Dylan\ lid			LID
menutrans Elm\ filter\ rules		R�gles\ de\ filtrage\ Elm
menutrans ERicsson\ LANGuage		Erlang\ (langage\ Ericsson)
menutrans Essbase\ script		Script\ Essbase
menutrans Eterm\ config			Config\.\ Eterm
menutrans Exim\ conf			Config\.\ Exim
menutrans Fvwm\ configuration		Config\.\ Fvwm
menutrans Fvwm2\ configuration		Config\.\ Fvwm2
menutrans Fvwm2\ configuration\ with\ M4	Config\.\ Fvwm2\ avec\ M4
menutrans GDB\ command\ file		Fichier\ de\ commandes\ GDB
menutrans HTML\ with\ M4		HTML\ avec\ M4
menutrans Cheetah\ HTML\ template	Patron\ Cheetah\ pour\ HTML
menutrans IDL\Generic\ IDL		IDL\IDL\ g�n�rique
menutrans IDL\Microsoft\ IDL		IDL\IDL\ Microsoft
menutrans Indent\ profile		Profil\ Indent
menutrans Inno\ setup			Config\.\ Inno
menutrans InstallShield\ script		Script\ InstallShield
menutrans KDE\ script			Script\ KDE
menutrans LFTP\ config			Config\.\ LFTP
menutrans LifeLines\ script		Script\ LifeLines
menutrans Lynx\ Style			Style\ Lynx
menutrans Lynx\ config			Config\.\ Lynx
menutrans Man\ page			Page\ Man
menutrans MEL\ (for\ Maya)		MEL\ (pour\ Maya)
menutrans 4DOS\ \.bat\ file		Fichier\ \.bat\ 4DOS
menutrans \.bat\/\.cmd\ file		Fichier\ \.bat\ /\ \.cmd
menutrans \.ini\ file			Fichier\ \.ini
menutrans Module\ Definition		D�finition\ de\ module
menutrans Registry			Extrait\ du\ registre
menutrans Resource\ file		Fichier\ de\ ressources
menutrans Novell\ NCF\ batch		Batch\ Novell\ NCF
menutrans NSIS\ script			Script\ NSIS
menutrans Oracle\ config		Config\.\ Oracle
menutrans Palm\ resource\ compiler	Compil\.\ de\ resources\ Palm
menutrans PHP\ 3-4			PHP\ 3\ et\ 4
menutrans Postfix\ main\ config		Config\.\ Postfix
menutrans Povray\ scene\ descr		Sc�ne\ Povray
menutrans Povray\ configuration		Config\.\ Povray
menutrans Purify\ log			Log\ Purify
menutrans Readline\ config		Config\.\ Readline
menutrans RCS\ log\ output		Log\ RCS
menutrans RCS\ file			Fichier\ RCS
menutrans RockLinux\ package\ desc\.	Desc\.\ pkg\.\ RockLinux
menutrans Samba\ config			Config\.\ Samba
menutrans SGML\ catalog			Catalogue\ SGML
menutrans SGML\ DTD			DTD\ SGML
menutrans SGML\ Declaration		D�claration\ SGML
menutrans Shell\ script			Script\ shell
menutrans sh\ and\ ksh			sh\ et\ ksh
menutrans Sinda\ compare		Comparaison\ Sinda
menutrans Sinda\ input			Entr�e\ Sinda
menutrans Sinda\ output			Sortie\ Sinda
menutrans SKILL\ for\ Diva		SKILL\ pour\ Diva
menutrans Smarty\ Templates		Patrons\ Smarty
menutrans SNNS\ network			R�seau\ SNNS
menutrans SNNS\ pattern			Motif\ SNNS
menutrans SNNS\ result			R�sultat\ SNNS
menutrans Snort\ Configuration		Config\.\ Snort
menutrans Squid\ config			Config\.\ Squid
menutrans Subversion\ commit		Commit\ Subversion
menutrans TAK\ compare			Comparaison\ TAK
menutrans TAK\ input			Entr�e\ TAK
menutrans TAK\ output			Sortie\ TAK
menutrans TeX\ configuration		Config\.\ TeX
menutrans TF\ mud\ client		TF\ (client\ MUD)
menutrans Tidy\ configuration		Config\.\ Tidy
menutrans Trasys\ input			Entr�e\ Trasys
menutrans Command\ Line			Ligne\ de\ commande
menutrans Geometry			G�om�trie
menutrans Optics			Optiques
menutrans Vim\ help\ file		Fichier\ d'aide\ Vim
menutrans Vim\ script			Script\ Vim
menutrans Viminfo\ file			Fichier\ Viminfo
menutrans Virata\ config		Config\.\ Virata
menutrans Wget\ config			Config\.\ wget
menutrans Whitespace\ (add)		Espaces\ et\ tabulations
menutrans WildPackets\ EtherPeek\ Decoder	D�codeur\ WildPackets\ EtherPeek
menutrans X\ resources			Resources\ X
menutrans XXD\ hex\ dump		Sortie\ hexa\.\ de\ xxd
menutrans XFree86\ Config		Config\.\ XFree86

menutrans &Buffers			&Puskurit
" Accels: VPASE
menutrans Dummy					Dummy
menutrans &Refresh\ menu			P�ivit�\ &valikko
menutrans &Delete				&Poista
menutrans &Alternate				V&aihda
menutrans &Next					&Seuraava
menutrans &Previous				&Edellinen
" -SEP-
" (Alphabet menus)
menutrans &others				&muut
let g:menutrans_no_file = "[Ei tiedostoja]"


menutrans &Window			&Ikkuna
" Accels: UJPTSMIYAKOL
menutrans &New<Tab>^Wn				&Uusi\ ikkuna<Tab>^Wn
menutrans S&plit<Tab>^Ws			&Jaa<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^		&Jaa\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv		Jaa\ &pystysuunnassa<Tab>^Wv
menutrans Split\ File\ E&xplorer		Jaa\ &tiedostonhallinnalle
" -SEP1-
menutrans &Close<Tab>^Wc			&Sulje<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo		Sulje\ &muut<Tab>^Wo
" -SEP2-
menutrans Move\ &To				S&iirr�
" Submenu:
" Accels: YAOV
menutrans &Top<Tab>^WK					&Yl�s<Tab>^WK
menutrans &Bottom<Tab>^WJ				&Alas<Tab>^WJ
menutrans &Left\ side<Tab>^WH				&Oikealle<Tab>^WH
menutrans &Right\ side<Tab>^WL				&Vasemmalle<Tab>^WL

menutrans Rotate\ &Up<Tab>^WR			Vaihda\ &ylemm�s<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr			Vaihda\ &alemmas<Tab>^Wr
" -SEP3-
menutrans &Equal\ Size<Tab>^W=			Saman\ &kokoisiksi<Tab>^W=
menutrans &Max\ Height<Tab>^W_			Enimm�isk&orkeuteen<Tab>^W_
menutrans M&in\ Height<Tab>^W1_			V�himm�isk&orkeuteen<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|			Enimm�is&leveyteen<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|			V�himm�is&leveyteen<Tab>^W1\|

" (Plugin menus here)
menutrans Plugin			Liit�nn�iset

menutrans &Help				&Ohje
" Accels: YKUHTLROVI
menutrans &Overview<Tab><F1>			&Yleiskatsaus<Tab><F1>
menutrans &User\ Manual				&K�ytt�ohje
menutrans &How-to\ links			K&UINKA-linkkej�
menutrans &Find\.\.\.				&Hae\.\.\.
" -sep1-
menutrans &Credits				&Tekij�t
menutrans Co&pying				&Lisenssi
menutrans &Sponsor/Register			Sponsoroi/&Rekister�i
menutrans O&rphans				&Orvoista
" -sep2-
menutrans &Version				&Versio
menutrans &About				T&ietoja

let g:menutrans_help_dialog = "Anna komento tai sana, jota haetaan ohjeesta.\n\nAloita i_:ll� sy�tt�tilan komentoja varten (esim. i_CTRL-X)\nAloita c_:ll� komentorivi� varten (esim. c_<Del>)\nKirjoita asetukset puolilainausmerkkeijin (esim. 'shiftwidth')"


" PopUp

menutrans &Undo					&Kumoa
" -SEP1-
menutrans Cu&t					&Leikkaa
menutrans &Copy					&Kopioi
menutrans &Paste				L&iit�
" &Buffers.&Delete overwrites this one
menutrans &Delete				&Poista
" -SEP2-
menutrans Select\ Blockwise			Valitse\ lohkoittain
menutrans Select\ &Word				Valitse\ &sana
menutrans Select\ &Line				Valitse\ &rivi
menutrans Select\ &Block			Valitse\ &lohko
menutrans Select\ &All				Valitse\ &kaikki


" ToolBar

menutrans Open					Avaa
menutrans Save					Tallenna
menutrans SaveAll				TallennaKaikki
menutrans Print					Tulosta
" -sep1-
menutrans Undo					Kumoa
menutrans Redo					Palauta
" -sep2-
menutrans Cut					Leikkaa
menutrans Copy					Kopioi
menutrans Paste					Liit�
" -sep3-
menutrans Find					Etsi
menutrans FindNext				EtsiSeur
menutrans FindPrev				EtsiEd
menutrans Replace				Korvaa
" -sep4-
menutrans New					Uusi
menutrans WinSplit				JaaIkk
menutrans WinMax				IkkMax
menutrans WinMin				IkkMin
menutrans WinVSplit				JaaIkkV
menutrans WinMaxWidth				IkkMaxLev
menutrans WinMinWidth				IkkMinLev
menutrans WinClose				SuljeIkk
" -sep5-
menutrans LoadSesn				AvaaSess
menutrans SaveSesn				TallSess
menutrans RunScript				AjaSkripti
" -sep6-
menutrans Make					Make
menutrans RunCtags				AjaCTags
menutrans TagJump				TagHypp
" -sep7-
menutrans Help					Ohje
menutrans FindHelp				OhjeHaku

fun! Do_toolbar_tmenu()
  let did_toolbar_tmenu = 1
  tmenu ToolBar.Open				Avaa tiedosto
  tmenu ToolBar.Save				Tallenna nykyinen tiedosto
  tmenu ToolBar.SaveAll				Tallenna kaikki tiedostot
  tmenu ToolBar.Print				Tulosta
  tmenu ToolBar.Undo				Kumoa
  tmenu ToolBar.Redo				Palauta
  tmenu ToolBar.Cut				Leikkaa
  tmenu ToolBar.Copy				Kopioi
  tmenu ToolBar.Paste				Liit�
  if !has("gui_athena")
    tmenu ToolBar.Find				Hae
    tmenu ToolBar.FindNext			Hae seuraava
    tmenu ToolBar.FindPrev			Hae edellinen
    tmenu ToolBar.Replace			Korvaa
  endif
 if 0	" disabled; These are in the Windows menu
  tmenu ToolBar.New				Uusi ikkuna
  tmenu ToolBar.WinSplit			Jaa ikkuna
  tmenu ToolBar.WinMax				Maximiser fen�tre
  tmenu ToolBar.WinMin				Minimiser fen�tre
  tmenu ToolBar.WinVSplit			Fractionner verticalement
  tmenu ToolBar.WinMaxWidth			Maximiser largeur fen�tre
  tmenu ToolBar.WinMinWidth			Minimiser largeur fen�tre
  tmenu ToolBar.WinClose			Fermer fen�tre
 endif
  tmenu ToolBar.LoadSesn			Avaa sessio
  tmenu ToolBar.SaveSesn			Tallenna nykyinen sessio
  tmenu ToolBar.RunScript			Lataa vim-skripti
  tmenu ToolBar.Make				Suorita make
  tmenu ToolBar.RunCtags			Suorita CTags
  tmenu ToolBar.TagJump				Hypp�� t�giin
  tmenu ToolBar.Help				Vimin ohje
  tmenu ToolBar.FindHelp			Etsi ohjeesta
endfun

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: set fileencoding=latin1
PK�j�Z�{ZqLLvim80/lang/menu_pl.cp1250.vimnu�[���" Menu Translations:	Polish

source <sfile>:p:h/menu_polish_poland.1250.vim
PK�j�Z�����vim80/lang/menu_no_no.utf-8.vimnu�[���" Menu Translations: Norwegian for UTF-8 encoding
" menu_no_no.utf-8.vim 289 2004-05-16 18:00:52Z sunny

source <sfile>:p:h/menu_no_no.latin1.vim
PK�j�Z�i��� vim80/lang/menu_en_gb.latin1.vimnu�[���" Menu Translations:	UK English
" Maintainer:		Mike Williams <mrw@eandem.co.uk>
" Last Change:		2003 Feb 10

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1

" Note: there is no "scriptencoding" command here, all encodings should be
" able to handle ascii characters without conversion.

" Convert from American to UK spellings.
menutrans C&olor\ Scheme			C&olour\ Scheme
menutrans Co&lor\ test				Co&lour\ test
PK�j�Z#�	555 vim80/lang/menu_de_de.latin1.vimnu�[���" Menu Translations:	German / Deutsch
" Maintainer:		Georg Dahn <gorgyd@yahoo.co.uk>
" Originally By:	Marcin Dalecki <dalecki@cs.net.pl>
"			Johannes Zellner <johannes@zellner.org>
" Last Change:	Sat, 11 Mar 2006 22:40:00 CEST
" vim:set foldmethod=marker tabstop=8:

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in latin1, but they work for cp1252 and
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
  scriptencoding latin1
endif

" {{{ FILE / DATEI
menutrans &File				&Datei
menutrans &Open\.\.\.<Tab>:e		&�ffnen\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	In\ geteiltem\ &Fenster\ �ffnen\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	In\ neuem\ &Tab\ �ffnen\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Neue\ Datei<Tab>:enew
menutrans &Close<Tab>:close		S&chlie�en<Tab>:close
menutrans &Save<Tab>:w			&Speichern<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Speichern\ &als\.\.\.<Tab>:sav
menutrans &Print			&Drucken
menutrans Sa&ve-Exit<Tab>:wqa		Speichern\ und\ Be&enden<Tab>:wqa
menutrans E&xit<Tab>:qa			&Beenden<Tab>:qa

if has("diff")
    menutrans Split\ &Diff\ with\.\.\.	D&ifferenz\ in\ geteiltem\ Fenster\ mit\.\.\.
    menutrans Split\ Patched\ &By\.\.\.	&Patch\ in\ geteiltem\ Fenster\ mit\.\.\.
endif
" }}} FILE / DATEI

" {{{ EDIT / EDITIEREN
menutrans &Edit				&Editieren
menutrans &Undo<Tab>u			Z&ur�ck<Tab>u
menutrans &Redo<Tab>^R			Vo&r<Tab>^R
menutrans Rep&eat<Tab>\.		&Wiederholen<Tab>\.
menutrans Cu&t<Tab>"+x			&Ausschneiden<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopieren<Tab>"+y
menutrans &Paste<Tab>"+gP		Ein&f�gen<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Da&vor\ einf�gen<Tab>[p
menutrans Put\ &After<Tab>]p		Da&nach\ einf�gen<Tab>]p
menutrans &Delete<Tab>x			&L�schen<Tab>x
menutrans &Select\ All<Tab>ggVG		Alles\ &markieren<Tab>ggVG
menutrans &Find\.\.\.			&Suchen\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Suchen\ und\ &Ersetzen\.\.\.

" [-- SETTINGS --]
" XXX &E would conflict with 'Suchen\ und\ &Ersetzen', see above
menutrans Settings\ &Window				E&instellungen\.\.\.
menutrans &Global\ Settings				&Globale\ Einstellungen
menutrans Startup\ &Settings				&Starteinstellungen

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Hervorhebungen\ ein-\ und\ ausschalten<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Gro�schreibung\ &ignorieren\ oder\ benutzen<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Anzeige\ des\ passenden\ &Symbols\ ein-\ und\ ausschalten<Tab>:set\ sm!

menutrans &Context\ lines				&Zusammenhang

menutrans &Virtual\ Edit				&Virtueller\ Editier-Modus
menutrans Never						Nie
menutrans Block\ Selection				Block-Auswahl
menutrans Insert\ mode					Einf�ge-Modus
menutrans Block\ and\ Insert				Block-Auswahl\ und\ Einf�ge-Modus
menutrans Always					Immer
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Einf�ge-&Modus\ ein-\ und\ ausschalten<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Vi-Kompatibilit�t\ ein-\ und\ ausschalten<Tab>:set\ cp!

menutrans Search\ &Path\.\.\.				Such-&Pfad\.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g-Dateien\.\.\.

menutrans Toggle\ &Toolbar				Werkzeugleiste\ ein-\ und\ ausschalten
menutrans Toggle\ &Bottom\ Scrollbar			Unteren\ Rollbalken\ ein-\ und\ ausschalten
menutrans Toggle\ &Left\ Scrollbar			Linken\ Rollbalken\ ein-\ und\ ausschalten
menutrans Toggle\ &Right\ Scrollbar			Rechten\ Rollbalken\ ein-\ und\ ausschalten

" Edit/File Settings
menutrans F&ile\ Settings				&Datei-Einstellungen

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!		Anzeige\ der\ Zeilen&nummer\ ein-\ und\ ausschalten<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!	Anzeige\ der\ relati&ven\ Zeilennummer\ ein-\ und\ ausschalten<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!			&List-Modus\ ein-\ und\ ausschalten<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			&Zeilenumbruch\ ein-\ und\ ausschalten<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!		Umbruch\ an\ &Wortgrenzen\ ein-\ und\ ausschalten<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!			&Erweiterung\ von\ Tabulatoren\ ein-\ und\ ausschalten<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!			&Automatische\ Einr�ckung\ ein-\ und\ ausschalten<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!			&C-Einr�ckung\ ein-\ und\ ausschalten<Tab>:set\ cin!

" other options
menutrans &Shiftwidth					&Schiebeweite
menutrans Soft\ &Tabstop				&Tabulator
menutrans Te&xt\ Width\.\.\.				Te&xtbreite\.\.\.
menutrans &File\ Format\.\.\.				&Dateiformat\.\.\.
menutrans C&olor\ Scheme				F&arbschema\.\.\.
menutrans &Keymap					&Tastaturbelegung
" }}} EDIT / EDITIEREN

" {{{  TOOLS / WERKZEUGE
if has("spell")
    menutrans &Spelling					&Rechtschreibung
    menutrans &Spell\ Check\ On				&Rechtschreibpr�fung\ an
    menutrans Spell\ Check\ &Off			Rechtschreibpr�fung\ &aus
    menutrans To\ &Next\ error<Tab>]s			Zum\ &n�chsten\ Fehler<Tab>]s
    menutrans To\ &Previous\ error<Tab>[s		Zum\ &vorherigen\ Fehler<Tab>[s
    menutrans Suggest\ &Corrections<Tab>z=		&Korrekturvorschl�ge<Tab>z=
    menutrans &Repeat\ correction<Tab>:spellrepall	&Wiederhole\ Korrektur<Tab>:spellrepall
    menutrans Set\ language\ to\ "en"			Verwende\ W�rterbuch\ "en"
    menutrans Set\ language\ to\ "en_au"		Verwende\ W�rterbuch\ "en_au"
    menutrans Set\ language\ to\ "en_ca"		Verwende\ W�rterbuch\ "en_ca"
    menutrans Set\ language\ to\ "en_gb"		Verwende\ W�rterbuch\ "en_gb"
    menutrans Set\ language\ to\ "en_nz"		Verwende\ W�rterbuch\ "en_nz"
    menutrans Set\ language\ to\ "en_us"		Verwende\ W�rterbuch\ "en_us"
    menutrans Set\ language\ to\ "de"			Verwende\ W�rterbuch\ "de"
    menutrans &Find\ More\ Languages			&Suche\ nach\ W�rterb�chern
endif
if has("folding")
  menutrans &Folding					Fa&ltung
  " open close folds
  menutrans &Enable/Disable\ folds<Tab>zi		&Ein-\ und\ ausschalten<Tab>zi
  menutrans &View\ Cursor\ Line<Tab>zv			Momentane\ &Position\ anzeigen<Tab>zv
  menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		&Ausschlie�lich\ momentane\ Position\ anzeigen<Tab>zMzx
  menutrans C&lose\ more\ folds<Tab>zm			Faltungen\ &schlie�en<Tab>zm
  menutrans &Close\ all\ folds<Tab>zM			Alle\ Faltungen\ schlie�en<Tab>zM
  menutrans O&pen\ more\ folds<Tab>zr			Faltungen\ &�ffnen<Tab>zr
  menutrans &Open\ all\ folds<Tab>zR			Alle\ Faltungen\ �ffnen<Tab>zR
  " fold method
  menutrans Fold\ Met&hod				Faltungs-&Methode
  menutrans M&anual					&Manuell
  menutrans I&ndent					&Einr�ckungen
  menutrans E&xpression					&Ausdruck
  menutrans S&yntax					&Syntax
  menutrans &Diff					&Differenz
  menutrans Ma&rker					Ma&rkierungen
  " create and delete folds
  " TODO accelerators
  menutrans Create\ &Fold<Tab>zf			Faltung\ erzeugen<Tab>zf
  menutrans &Delete\ Fold<Tab>zd			Faltung\ l�schen<Tab>zd
  menutrans Delete\ &All\ Folds<Tab>zD			Alle\ Faltungen\ l�schen<Tab>zD
  " moving around in folds
  menutrans Fold\ column\ &width			&Breite\ der\ Faltungsspalte
endif  " has folding

if has("diff")
  menutrans &Diff					&Differenz
  menutrans &Update					&Aktualisieren
  menutrans &Get\ Block					Block\ &einf�gen
  menutrans &Put\ Block					Block\ &�bertragen
endif

menutrans &Tools					&Werkzeuge
menutrans &Jump\ to\ this\ tag<Tab>g^]			&Springe\ zum\ Tag<Tab>g^]
menutrans Jump\ &back<Tab>^T				Springe\ &zur�ck<Tab>^T
menutrans Build\ &Tags\ File				Erstelle\ &Tag-Datei
menutrans &Make<Tab>:make				&Erstellen<Tab>:make
menutrans &List\ Errors<Tab>:cl				&Fehler\ anzeigen<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!			&Hinweise\ anzeigen<Tab>:cl!
menutrans &Next\ Error<Tab>:cn				Zum\ &n�chsten\ Fehler<Tab>:cn
menutrans &Previous\ Error<Tab>:cp			Zum\ &vorherigen\ Fehler<Tab>:cp
menutrans &Older\ List<Tab>:cold			&�ltere\ Liste<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew			&Neuere\ Liste<Tab>:cnew

menutrans Error\ &Window				Feh&ler-Fenster
menutrans Se&t\ Compiler				&Compiler
menutrans Se&T\ Compiler				&Compiler
menutrans &Update<Tab>:cwin				&Aktualisieren<Tab>:cwin
menutrans &Open<Tab>:copen				&�ffnen<Tab>:copen
menutrans &Close<Tab>:cclose				&Schlie�en<Tab>:cclose

menutrans &Convert\ to\ HEX<Tab>:%!xxd			Nach\ HE&X\ konvertieren<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r			Zur�ck\ konvertieren<Tab>:%!xxd\ -r
" }}}  TOOLS / WERKZEUGE

" {{{ SYNTAX / SYNTAX
menutrans &Syntax				&Syntax
menutrans &Show\ filetypes\ in\ menu		Dateitypen\ an&zeigen
menutrans Set\ '&syntax'\ only			Nur\ '&syntax'\ setzen
menutrans Set\ '&filetype'\ too			Auch\ '&filetype'\ setzen
menutrans &Off					&Aus
menutrans &Manual				&Manuell
menutrans A&utomatic				A&utomatisch
menutrans on/off\ for\ &This\ file		An/Aus (diese\ &Datei)
menutrans Co&lor\ test				Test\ der\ Farben
menutrans &Highlight\ test			Test\ der\ Un&terstreichungen
menutrans &Convert\ to\ HTML			Konvertieren\ nach\ &HTML
" }}} SYNTAX / SYNTAX

" {{{ BUFFERS / PUFFER
menutrans &Buffers					&Puffer
menutrans &Refresh\ menu				&Aktualisieren
menutrans Delete					L�schen
menutrans &Alternate					&Wechseln
menutrans &Next						&N�chster
menutrans &Previous					&Vorheriger
" }}} BUFFERS / PUFFER

" {{{ WINDOW / ANSICHT
menutrans &Window			&Ansicht
menutrans &New<Tab>^Wn			&Neu<Tab>^Wn
menutrans S&plit<Tab>^Ws		Aufs&palten<Tab>^Ws
menutrans Split\ &Vertically<Tab>^Wv	&Vertikal\ aufspalten<Tab>^Wv
menutrans Split\ File\ E&xplorer	Ver&zeichnis
menutrans Sp&lit\ To\ #<Tab>^W^^	Aufspa&lten\ in\ #<Tab>^W^^
menutrans &Close<Tab>^Wc		&Schlie�en<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	&Andere\ schlie�en<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			N&�chstes<Tab>^Ww
menutrans P&revious<Tab>^WW		Vor&heriges<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Gleiche\ H�hen<Tab>^W=
menutrans &Max\ Height<Tab>^W_		&Maximale\ H�he<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		M&inimale\ H�he<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Maximale\ &Breite<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minimale\ Brei&te<Tab>^W1\|
menutrans Move\ &To			V&erschiebe\ nach
menutrans &Top<Tab>^WK			&Oben<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Unten<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Links<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Rechts<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Rotiere\ nach\ &oben<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotiere\ nach\ &unten<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		Auswahl\ der\ Schriftart\.\.\.
" }}} WINDOW / ANSICHT

" {{{ HELP / HILFE
menutrans &Help			&Hilfe
menutrans &Overview<Tab><F1>	&�berblick<Tab><F1>
menutrans &User\ Manual		&Handbuch
menutrans &How-to\ links	How-to\ &Index
menutrans &GUI			&Graphische\ Oberfl�che
menutrans &Credits		&Autoren
menutrans Co&pying		&Urheberrecht
menutrans O&rphans		&Waisen
menutrans &Find\.\.\.		&Suchen\.\.\.	" conflicts with Edit.Find
menutrans &Version		&Version
menutrans &About		&Titelseite
" }}} HELP / HILFE

" {{{ POPUP
menutrans &Undo				&Zur�ck
menutrans Cu&t				Aus&schneiden
menutrans &Copy				&Kopieren
menutrans &Paste			&Einf�gen
menutrans &Delete			&L�schen
menutrans Select\ Blockwise		Auswahl\ blockartig
menutrans Select\ &Word			Auswahl\ des\ &Wortes
menutrans Select\ &Sentence		Auswahl\ des\ Sa&tzes
menutrans Select\ Pa&ragraph		Auswahl\ des\ Absatzes
menutrans Select\ &Line			Auswahl\ der\ &Zeile
menutrans Select\ &Block		Auswahl\ des\ &Blocks
menutrans Select\ &All			&Alles\ Ausw�hlen
" }}} POPUP

" {{{ TOOLBAR
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Datei �ffnen
    tmenu ToolBar.Save		Datei speichern
    tmenu ToolBar.SaveAll	Alle Dateien speichern
    tmenu ToolBar.Print		Drucken
    tmenu ToolBar.Undo		Zur�ck
    tmenu ToolBar.Redo		Wiederholen
    tmenu ToolBar.Cut		Ausschneiden
    tmenu ToolBar.Copy		Kopieren
    tmenu ToolBar.Paste		Einf�gen
    tmenu ToolBar.Find		Suchen...
    tmenu ToolBar.FindNext	Suche n�chsten
    tmenu ToolBar.FindPrev	Suche vorherigen
    tmenu ToolBar.Replace	Suchen und Ersetzen...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Neue Ansicht
      tmenu ToolBar.WinSplit	Ansicht aufspalten
      tmenu ToolBar.WinMax	Ansicht maximale H�hen
      tmenu ToolBar.WinMin	Ansicht minimale H�hen
      tmenu ToolBar.WinClose	Ansicht schlie�en
    endif
    tmenu ToolBar.LoadSesn	Sitzung laden
    tmenu ToolBar.SaveSesn	Sitzung speichern
    tmenu ToolBar.RunScript	Vim-Skript ausf�hren
    tmenu ToolBar.Make		Erstellen
    tmenu ToolBar.Shell		Shell starten
    tmenu ToolBar.RunCtags	Erstelle Tag-Datei
    tmenu ToolBar.TagJump	Springe zum Tag
    tmenu ToolBar.Help		Hilfe!
    tmenu ToolBar.FindHelp	Hilfe durchsuchen...
  endfun
endif
" }}} TOOLBAR

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[Keine Datei]"
let g:menutrans_help_dialog = "Geben Sie einen Befehl oder ein Wort ein, f�r das Sie Hilfe ben�tigen:\n\nVerwenden Sie i_ f�r Eingabe ('input') Befehle (z.B.: i_CTRL-X)\nVerwenden Sie c_ f�r Befehls-Zeilen ('command-line') Befehle (z.B.: c_<Del>)\nVerwenden Sie ' f�r Options-Namen (z.B.: 'shiftwidth')"
let g:menutrans_path_dialog = "Geben Sie Such-Pfade f�r Dateien ein.\nTrennen Sie die Verzeichnis-Namen durch Kommata."
let g:menutrans_tags_dialog = "Geben Sie die Namen der 'tag'-Dateien ein.\nTrennen Sie die Namen durch Kommata."
let g:menutrans_textwidth_dialog = "Geben Sie eine neue Text-Breite ein (oder 0, um die Formatierung abzuschalten)"
let g:menutrans_fileformat_dialog = "W�hlen Sie ein Datei-Format aus"
" }}}

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�|狇5�5vim80/lang/menu_ja_jp.utf-8.vimnu�[���" vi:set ts=8 sts=8 sw=8 tw=0:
"
" Menu Translations:	Japanese (UTF-8)
" Last Translator:	MURAOKA Taro  <koron.kaoriya@gmail.com>
" Last Change:		28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
"			  vim-jp (http://vim-jp.org/)
"
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Help menu
menutrans &Help			ヘルプ(&H)
menutrans &Overview<Tab><F1>	概略(&O)<Tab><F1>
menutrans &User\ Manual		ユーザーマニュアル(&U)
menutrans &How-to\ links	&How-toリンク
menutrans &Credits		クレジット(&C)
menutrans Co&pying		著作権情報(&P)
menutrans &Sponsor/Register	スポンサー/登録(&S)
menutrans O&rphans		孤児(&R)
menutrans &Version		バージョン情報(&V)
menutrans &About		Vimについて(&A)

let g:menutrans_help_dialog = "ヘルプを検索したいコマンドもしくは単語を入力してください:\n\n挿入モードのコマンドには i_ を先頭に付加します. (例: i_CTRL-X)\nコマンドライン編集コマンドには c_ を先頭に付加します. (例: c_<Del>)\nオプションの名前には ' を付加します. (例: 'shiftwidth')"

" File menu
menutrans &File				ファイル(&F)
menutrans &Open\.\.\.<Tab>:e		開く(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割して開く(&L)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	タブページで開く<Tab>:tabnew
menutrans &New<Tab>:enew		新規作成(&N)<Tab>:enew
menutrans &Close<Tab>:close		閉じる(&C)<Tab>:close
menutrans &Save<Tab>:w			保存(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	名前を付けて保存(&A)\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	差分表示(&D)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	パッチ結果を表示(&B)\.\.\.
menutrans &Print			印刷(&P)
menutrans Sa&ve-Exit<Tab>:wqa		保存して終了(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			終了(&X)<Tab>:qa

" Edit menu
menutrans &Edit				編集(&E)
menutrans &Undo<Tab>u			取り消す(&U)<Tab>u
menutrans &Redo<Tab>^R			もう一度やる(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		繰り返す(&E)<Tab>\.
menutrans Cu&t<Tab>"+x			切り取り(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			コピー(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		貼り付け(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		前に貼る(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		後に貼る(&A)<Tab>]p
menutrans &Delete<Tab>x			消す(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		全て選択(&S)<Tab>ggVG
menutrans &Find\.\.\.			検索(&F)\.\.\.
menutrans &Find<Tab>/			検索(&F)<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	置換(&L)\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	置換(&L)<Tab>:%s
menutrans Find\ and\ Rep&lace<Tab>:s	置換(&L)<Tab>:s
"menutrans Options\.\.\.			オプション(&O)\.\.\.
menutrans Settings\ &Window		設定ウィンドウ(&W)
menutrans Startup\ &Settings		起動時の設定(&S)

" Edit/Global Settings
menutrans &Global\ Settings		全体設定(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!
	\	パターン強調切替(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!
	\	大小文字区別切替(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!
	\	マッチ表示切替(&S)<Tab>:set\ sm!
menutrans &Context\ lines		カーソル周辺行数(&C)
menutrans &Virtual\ Edit		仮想編集(&V)
menutrans Never				無効
menutrans Block\ Selection		ブロック選択時
menutrans Insert\ mode			挿入モード時
menutrans Block\ and\ Insert		ブロック/挿入モード時
menutrans Always			常時
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!
	\	挿入(初心者)モード切替(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!
	\	Vi互換モード切替(&O)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		検索パス(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.		タグファイル(&G)\.\.\.
"
" GUI options
menutrans Toggle\ &Toolbar		ツールバー表示切替(&T)
menutrans Toggle\ &Bottom\ Scrollbar	スクロールバー(下)表示切替(&B)
menutrans Toggle\ &Left\ Scrollbar	スクロールバー(左)表示切替(&L)
menutrans Toggle\ &Right\ Scrollbar	スクロールバー(右)表示切替(&R)

let g:menutrans_path_dialog = "ファイルの検索パスを入力してください:\nディレクトリ名はカンマ ( , ) で区切ってください."
let g:menutrans_tags_dialog = "タグファイルの名前を入力してください:\n名前はカンマ ( , ) で区切ってください."

" Edit/File Settings

" Boolean options
menutrans F&ile\ Settings		ファイル設定(&I)
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!
	\	行番号表示切替(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!
	\	相対行番号表示切替(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!
	\ リストモード切替(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!
	\	行折返し切替(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!
	\	単語折返し切替(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!
	\	タブ展開切替(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!
	\	自動字下げ切替(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!
	\	C言語字下げ切替(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			シフト幅(&S)
menutrans Soft\ &Tabstop		ソフトウェアタブ幅(&T)
menutrans Te&xt\ Width\.\.\.		テキスト幅(&X)\.\.\.
menutrans &File\ Format\.\.\.		改行記号選択(&F)\.\.\.

let g:menutrans_textwidth_dialog = "テキストの幅('textwidth')を設定してください (0で整形を無効化):"
let g:menutrans_fileformat_dialog = "ファイル出力の際の改行記号の形式を選んでください."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nキャンセル(&C)"

menutrans C&olor\ Scheme		色テーマ選択(&O)
menutrans &Keymap			キーマップ(&K)
menutrans None				なし

" Programming menu
menutrans &Tools			ツール(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	タグジャンプ(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		戻る(&B)<Tab>^T
menutrans Build\ &Tags\ File		タグファイル作成(&T)
menutrans &Make<Tab>:make		ビルド(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		エラーリスト(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	メッセージリスト(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		次のエラーへ(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	前のエラーへ(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	古いリスト(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	新しいリスト(&E)<Tab>:cnew
menutrans Error\ &Window		エラーウィンドウ(&W)
menutrans &Update<Tab>:cwin		更新(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		開く(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		閉じる(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	HEXへ変換(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	HEXから逆変換(&R)<Tab>%!xxd\ -r
menutrans Se&T\ Compiler		コンパイラ設定(&T)

" Tools.Spelling Menu
menutrans &Spelling			スペリング(&S)
menutrans &Spell\ Check\ On		スペルチェック有効(&S)
menutrans Spell\ Check\ &Off		スペルチェック無効(&O)
menutrans To\ &Next\ error<Tab>]s	次のエラー(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	前のエラー(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	修正候補(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	修正を繰り返す(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	言語を\ "en"\ に設定する
menutrans Set\ language\ to\ "en_au"	言語を\ "en_au"\ に設定する
menutrans Set\ language\ to\ "en_ca"	言語を\ "en_ca"\ に設定する
menutrans Set\ language\ to\ "en_gb"	言語を\ "en_gb"\ に設定する
menutrans Set\ language\ to\ "en_nz"	言語を\ "en_nz"\ に設定する
menutrans Set\ language\ to\ "en_us"	言語を\ "en_us"\ に設定する
menutrans &Find\ More\ Languages	他の言語を検索する(&F)

" Tools.Fold Menu
menutrans &Folding			折畳み(&F)
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi	有効/無効切替(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	カーソル行を表示(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	カーソル行だけを表示(&W)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	折畳みを閉じる(&L)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	全折畳みを閉じる(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	折畳みを開く(&P)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	全折畳みを開く(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			折畳み方法(&H)
menutrans M&anual			手動(&A)
menutrans I&ndent			インデント(&N)
menutrans E&xpression			式評価(&X)
menutrans S&yntax			シンタックス(&Y)
menutrans &Diff				差分(&D)
menutrans Ma&rker			マーカー(&R)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		折畳み作成(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		折畳み削除(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	全折畳み削除(&A)<Tab>zD
" moving around in folds
menutrans Fold\ col&umn\ width		折畳みカラム幅(&U)

menutrans &Update		更新(&U)
menutrans &Get\ Block		ブロック抽出(&G)
menutrans &Put\ Block		ブロック適用(&P)

" Names for buffer menu.
menutrans &Buffers		バッファ(&B)
menutrans &Refresh\ menu	メニュー再読込(&R)
menutrans &Delete		削除(&D)
menutrans &Alternate		裏へ切替(&A)
menutrans &Next			次のバッファ(&N)
menutrans &Previous		前のバッファ(&P)
menutrans [No\ File]		[無題]
let g:menutrans_no_file = "[無題]"

" Window menu
menutrans &Window			ウィンドウ(&W)
menutrans &New<Tab>^Wn			新規作成(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		分割(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	裏バッファへ分割(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	垂直分割(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	ファイルエクスプローラ(&X)
menutrans &Close<Tab>^Wc		閉じる(&C)<Tab>^Wc
menutrans Move\ &To			移動(&T)
menutrans &Top<Tab>^WK			上(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		下(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		左(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		右(&R)<Tab>^WL
menutrans Close\ &Other(s)<Tab>^Wo	他を閉じる(&O)<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			次へ(&X)<Tab>^Ww
menutrans P&revious<Tab>^WW		前へ(&R)<Tab>^WW
menutrans &Equal\ Size<Tab>^W=	同じ高さに(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		最大高に(&M)<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		最小高に(&i)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		最大幅に(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		最小幅に(&H)<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		上にローテーション(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		下にローテーション(&D)<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		フォント設定(&N)\.\.\.

" The popup menu
menutrans &Undo			取り消す(&U)
menutrans Cu&t			切り取り(&T)
menutrans &Copy			コピー(&C)
menutrans &Paste		貼り付け(&P)
menutrans &Delete		削除(&D)
menutrans Select\ Blockwise	矩形ブロック選択
menutrans Select\ &Word		単語選択(&W)
menutrans Select\ &Sentence	文選択(&S)
menutrans Select\ Pa&ragraph	段落選択(&R)
menutrans Select\ &Line		行選択(&L)
menutrans Select\ &Block	ブロック選択(&B)
menutrans Select\ &All		すべて選択(&A)

" The GUI toolbar (for Win32 or GTK)
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		ファイルを開く
    tmenu ToolBar.Save		現在のファイルを保存
    tmenu ToolBar.SaveAll	すべてのファイルを保存
    tmenu ToolBar.Print		印刷
    tmenu ToolBar.Undo		取り消し
    tmenu ToolBar.Redo		もう一度やる
    tmenu ToolBar.Cut		クリップボードへ切り取り
    tmenu ToolBar.Copy		クリップボードへコピー
    tmenu ToolBar.Paste		クリップボードから貼り付け
    tmenu ToolBar.Find		検索...
    tmenu ToolBar.FindNext	次を検索
    tmenu ToolBar.FindPrev	前を検索
    tmenu ToolBar.Replace	置換...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		新規ウィンドウ作成
      tmenu ToolBar.WinSplit	ウィンドウ分割
      tmenu ToolBar.WinMax	ウィンドウ最大化
      tmenu ToolBar.WinMin	ウィンドウ最小化
      tmenu ToolBar.WinClose	ウィンドウを閉じる
    endif
    tmenu ToolBar.LoadSesn	セッション読込
    tmenu ToolBar.SaveSesn	セッション保存
    tmenu ToolBar.RunScript	Vimスクリプト実行
    tmenu ToolBar.Make		プロジェクトをMake
    tmenu ToolBar.Shell		シェルを開く
    tmenu ToolBar.RunCtags	tags作成
    tmenu ToolBar.TagJump	タグジャンプ
    tmenu ToolBar.Help		Vimヘルプ
    tmenu ToolBar.FindHelp	Vimヘルプ検索
  endfun
endif

" Syntax menu
menutrans &Syntax		シンタックス(&S)
menutrans &Show\ filetypes\ in\ menu	対応形式をメニューに表示(&S)
menutrans Set\ '&syntax'\ only	'syntax'だけ設定(&S)
menutrans Set\ '&filetype'\ too	'filetype'も設定(&F)
menutrans &Off			無効化(&O)
menutrans &Manual		手動設定(&M)
menutrans A&utomatic		自動設定(&U)
menutrans on/off\ for\ &This\ file
	\	オン/オフ切替(&T)
menutrans Co&lor\ test		カラーテスト(&L)
menutrans &Highlight\ test	ハイライトテスト(&H)
menutrans &Convert\ to\ HTML	HTMLへコンバート(&C)

let &cpo = s:keepcpo
unlet s:keepcpo

" filler to avoid the line above being recognized as a modeline
" filler
PK�j�Z�G>�BB vim80/lang/menu_pt_pt.latin1.vimnu�[���" Menu Translations:	Portugu�s

source <sfile>:p:h/menu_pt_pt.vim
PK�j�Zl�NyKKvim80/lang/menu_ca.latin1.vimnu�[���" Menu translations for Catalan
"
source <sfile>:p:h/menu_ca_es.latin1.vim
PK�j�Z'�bHgIgI vim80/lang/uk/LC_MESSAGES/vim.monu�[������|<
�x(�)�
:�H�Q�'g�/����ա�L�:N�����+��ʣ"��(�9�5I������դ����;ɥ��:�W�f�w�������ʦ�0��.*�/Y�0��
��ȧާ��
��
2�$=�$b��� ����@ȨD	�N�b�"����"é����@�_�z���������/Ϊ8��,7�=d�����ӫ���0�1A�1s�����Ϭ�-�3�S�h�������ǭ3߭3�G�d�|�������
ٮ����/�
G�$U�z�L�� ӯ��;$�`�o�#|�	����ðӰ�
����#�/�G�	_�i�q�y�!������ܱ���#�+� 3�T�o���������
òѲ6޲�2�K�!j���
����	����ٳ��&�	�" �*C�n�=��
ĴҴش���	�
�
'�2�
;�F�X�j�s�5��ǵ-ٵ1�&9�`�x�������ƶ۶��$�-�=�
Q�\�l���������ҷ�����+�7�F�V�h�x�
��������
ƸѸ�7�+�!8�Z�r�z�������������=��2�%�.�4�=�'N�-v�2��׺�?
�M�i�z�+����	Ļλ��-�M�$m���
����ͼ��?�D�2S�!��%��@ν9�EI�9��CɾK
�IY�H��;�6(�8_�3��<�4	�->�6l���%�����
�&�@�&P�,w�#��4�� ��@�-_�0��:��;��5�"U�x�>��)��>��<1�n�z�#��:��'��9!�[�$t�9��4��;� D�>e�1��/���-#�Q�.`�B��"��2��4(�*]���+��%��'��( �<I�E��.��-��$)�N�<g���*��&�� �41�f�w�����������������
�'�0�"8�[�g�v�������)����$�)�8�@�Y�1r�?���������0�F�a�t�X��%����+�I�b�{���������$����!�0�N�T�d�h���"��$����#�/�6�E�U�u����� ����4��.�	@�CJ�V����
��
�.�:�-S���-��$��.��6"�Y�.s�H��(���#�
<�OG�O��
��C��	9�C�O�!d�������3��2��!�(8�a� z�"��E���%!�#G�-k�������&���)�;�Y�r���'����)��+�@;�-|���5�����0�K�/f�9����E��3�-N�7|�#�� ��:��54�&j�"��&��$��#�!$�=F�5�� ��(��7�.<�,k��������� ��#�&;�b�y�����������0>�$o�!�� ��(��4�,5�b�~������� �����1,�^�!{�%��%��!��%�1�$J� o�����?��&�#.�R�
n�A|�%��"��"�9*�'d�(��2��*��!�!5�)W�%��!��4��:��&9�;`�;��)��0�3�R�n�����#��!��8��&1�#X�|� ��/��"���-�G�X�q�/��*��(��#
�1�M�h�����>�����0�"G�j�������#����9�1K�1}�)��1��%�71�i�A��?����3�!R�t�����0��4��$0�)U�N�,��&��L"�o�����8����$�(�B�#b�7��N��
�)�F�$a�!��3��,�2	�%<�b�"}���#�����;�BX���0��!� �<)�+f�����+�2�$&�K�,i���H��,��'�=�"]����������9�S�h���0��#�'��,�,L�&y�����+�2�-$�(R�{�"��'��'�,�4�.K�z�#��,��W�)C�"m�,��%��� !2:2m2��!�+2@5s'�#�)�3$S%x����
$"&G n'�*�#�'%.T3t!��+�*5-`$����
  ; \$}$�)��	,La%|�=�9R'l��$�#�0	.H	0w	�	�	�	

/
C
-Z
 �
�
7�
)�
&$>(c��%�$�$7'T|'� ���
 .
7O
0�
�
#�
�
"(>!g�-�1�65>t.�*�1�9U*u&�+�,�+ 4L<�+�*�+CXm�����"�
 7Rq�����)Ea:t=�<�6*<a�"��+�)4E5z4�3�0+ \}D�P�%&Lk�����!)Kf}����'�#6!Vx�"��1�.K"`������'<Uh|�����*1)\�� ����6#Os)�&�K�, ?`�����" &7 #^ � � +� %� 7!5F!|!�!,�!�!�!")," V"w"�"�"�"�"�"#5#0M#~#�#�#�#4�#.%$$T$)y$1�$;�$%.!%*P%{%$�%�%%�%,&.&%?&e&~&�&&�&-�&&'+' G'h'�'�'+�' �'(?()Z(�(6�(#�(2�(9,)>f)8�)1�)*).*)X* �*)�*�*)�**+"=+`+#y+"�+"�+)�+
,-,%K, q,$�,�,�,!�,0-G-`-{-�-"�-!�-9�-82./k.�.�.�.+�.%/18/)j/�/�/'�/%�/0&'0!N0%p0'�0%�0'�0-12:1m1�1$�1�1�1�1"2:2Z2!z21�2&�2�2!3!43V3(k3�3�3+�38�3347R4E�4!�4�45(50G5#x5�5$�5�5#�5*6?6Z6m60�62�60�67+97)e7$�7/�7�7�7'8)68,`8�8�8 �8�8�8-9,K9x9/�9+�9'�9!: 7:0X:�:!�:,�:�:;(;A;Z;0p;.�;�;1�;&"<:I<�<9�<�<:�<2=J=j=�=*�=�=3�=&>%?>2e>0�>!�>;�>R'?z?*�?�?�?(�?!@+=@+i@�@ �@"�@%�@ A+;A"gA+�A�A.�A4BI:B)�B)�B6�B6C-FC(tC/�C&�C<�C)1D*[D�D7�D�D�DE*-EXEvE0�E/�E!�E"F*8F/cF;�F�F�FQG.YG�G$�G#�G0�G#"HFH2eH6�H�H+�H%IXAI;�I/�I;JBJ!bJ%�J"�JN�J.K$KK&pKT�K#�K"L$3L XLyL�L#�L]�L 9MBZM'�M�M/�M2N,EN"rN�N&�N(�N%�N%ODObOEO!�O �O7P@P%VP|P'�P�P'�P	Q)Q<?Q|Q"�Q'�Q�QR+RDR(^R!�R5�R�R7�R!6S%XS/~S!�S�S�S'T6T)UT;T&�T(�TU)*U&TU{U�U'�U�U	�U�UVV+VEV#[V	V�V�V�V.�V�V.
W69WpWvW6�W#�W
�W&�W	X!X6XNXeXzX �X%�X!�X
�X�X(Y�:Ya�YGZ+`Za�Z�Z�Z[(
[
3[	>[%H[
n[y[&�[&�[�[(\+\	<\F\	W\a\
g\u\�\�\�\	�\2�\*]C]c]u]�]�]
�]�]	�]�]�]�]^#,^(P^y^�^	�^�^�^
�^�^�^2_9_E_d_~_�_�_$�_�_/�_` `'#`K`a`
x`$�`
�`�`�`�` �`aa*a7a!Maoa�a@�a(�ab'b9b<bMbYbeb�b#�b�b�b�b.�b
.c9c	OcYcyc�c�c'�c�c�c
ddd7dKdTdnd�d�d�d�d�de9%e9_e�e�e�e�e
�e�e(�e&f.f?fPf
]f	hfrf�f�f�f�f9�f
gg2gMghg&g�g�g�ghChW_h	�h�h�h�h�h
ii)"iLili�iF�i�i�ij%j,j8j(Djmj�j�j1�j�j�jk$k:kSk0bk;�k>�kl&l>l1Zl"�l�l�l�lA�l)/m=Ym�m(�m�m�m$�m0"nSn\n_n+un2�n�n�n�no%o	7oAo�Zo�oF�o;p
Gp	Rp
\pjp+p�p%�p0�pBq([q�q1�q+�q*�q&)r9PrM�r>�r)s5AsAws4�s$�s*tA>tA�t&�t6�t u<(u<eu?�u7�u/v Jv"kv�v2�v0�vw#w;wWwlw�w�w�w�w2�w)x+Fx,rx-�x �x!�x#y4yMyeyiymy�y	�y�y�y�y�y�y�yzz
$z
/z:z	@zJzhzuz	�z�z
�z�z
�z	�z5�z{{	${.{;{
A{O{&V{}{�{�{�{
�{�{
�{�{�{�{�{�{�{�{|9|BB|D�|"�|$�|"})5}_}n}u}�}�}�}�}1�}
~$~"7~Z~<y~�~'�~!�~#6Po�H�C�"�6�S�k�~�����������ǀ݀ �#�-7�-e����������(�&?�f�=u���΂%�
	�8�FP�.��DƃM�@Y�0��&˄'�&�$A�f�x�$����-Ӆ��3�J�h�t�z�������
׆���� $�E�
J�X�"e���%��*��.�8�"S�#v�%��#������#�/5�e�
t� �� ��ĉ
׉����!�.�N�	f�p���2��Њ�����$
�2�?�H�
W�e�#n�1��1ċ1��1(�Z�c�	l�
v�(��������׌���
	��
3�>�V�(j�'�� ��܍�	�)�	D�N�"`�����$��$̎���
��-�
=�K�a���������я�����5�K�Z�b�.n�.��.̐.��.*�.Y�.��.��&� 
�%.�T� o�:��˒ے���"�)6�)`���	������̓����%�	4�>�O�d�x���3��aΔ%0�V�m�}�F��D�"&�!I�k�3��\���-�D9�4~�8��B� /�P�Td�B��)��!&�H�$^�s��c��[�7{�7������+�.E�It�$��*�6�-E�5s�7���/��8-�>f�,��6ҡ	�M"�Qp� ¢9�#�uA����9�9X�E��<ؤE�#[����^��/�!F�h�������jզ�@�ZڧU5�.��/��-�&�3?�~s�P�AC�����+��-�4�H� b�����1��$�$�e7�U��'� �$<�+a���;��
��
�)�F�-a�.��N��
�r%�f�����E<�����6���.��)�"F�i�u�,����̱-�-�A�M�a�&s�+��Ʋ3۲4�D�4Y�����G��6�/)�;Y�
������˴ �j�2v�)��4ӵ9�B�N�e�~�6��̶޶�,��M)�Hw�#��p�U�i����2������!�=�R�g�����G��J��F�D\�U��?��*7�b�}�$��,��$�*�6�PK�#����Լ �&�-�F� d�1��$��)ܽ;�%B�h�{�����ɾܾ'��0�B�T�l�����o��$�97�q���������%��)�I��Y��	�������'��C�=F�i��&��#�p9�%������U��I�_�.t�/��D��@�0Y�0��;��
��� �4�G�de���Z��3<�Gp�l��m%�{��t�~��s�|w�|���q�r��cg�_���+�\��i�]��C��4#�(X�'��A��4�� �D?�H��M��r�6��y��Z?�R��q��c_�7��6��"2�^U�]��_�tr���;��j7�g��U
�\`�$��T��k7�q��w�/��Z��S�Fl�G��a��]�Ar�f��f�`��b��CF�;��^��<%�;b�N��q��k_�5��P�OR�$��g��;/�Kk�I��B�aD�"��*��"���)-�W�s�"��&��"��(��'&�N�d�cv� ����-�-?�5m�*��X��'�)3�"]�������X��l&�������:��!�.?�n�)��*�����Cn���@��<��+7�+c�1��!����.��,�>8�#w�i��I�O�[�
w�)��4��:��)�IF�b����%�%,�7R�*��4��)��F�=[�o��	�)�^G�y�� �/�L�Fc�/��M��>(�Mg�;��T��fF�4��f���I�V�/�A�#W��{���,����d�q���@���+� �`)�_��8�A#�0e�:��O��!�8��A�A0�Hr�'��'�%�'1�Y�v�,��%��!�!�A$�)f�E��@�f�Z~�-�D/L|3��q�l]3�{�)ze�V
2aO�h�aM@�?�E07vP�D�ZD[�6�E2YxY�),;V(�$�#�A	CF	@�	)�	2�	5(
6^
2�
,�
8�
9.Ah7�-�+Y<Y�Q�8B
${
�
�
�
D�
G7LF�,D@I�U�6%:\#�G�5196kn�EIW3��_�?L2�E�A1G7yS�=8C>|4�I�C:X~^�P6}�oKuK�D
+R,~/�*�8G?j�^�<Q*�:�Z�>O�F��3'5G]?�.�&4;0p9�6�*h=9�6�' 5? 7u #� -� /� :/!4j!p�!l"[}"L�"G&#Un#Z�#1$VQ$v�$0%0P%8�%;�%,�%-#&;Q&L�&k�&:F'E�'��'_N(6�(��(%j)#�)$�)s�)#M*q*-�*1�*N�*s<+��+6Z,1�,]�,F!-@h-�->).Wh.D�.3/I9/A�/b�/9(0b0�0�0r�0/21eb15�1L�1{K20�2=�2-637d3e�3=4$@4ne4/�4�5R�5.�5060I68z6:�6:�6:)77d7O�7'�7585J8M�87�8R9Y9Aj9U�9J: M:'n:O�:n�:VU;G�;(�;=<<[<F�<`�<.@=Mo=5�=6�=S*>�~>F?>M??�?L�?/@EI@$�@U�@S
Ad^A4�A>�A%7B]B={B=�B=�B35CPiC_�CKDDfD.�D5�D'EH8E*�E8�EB�E7(FG`FO�F>�F47GHlG8�GM�G,<H4iHI�HC�HK,IGxI3�I/�I0$J(UJ(~J3�JM�JM)K2wKC�KE�K,4L aLQ�L$�L(�L9"M.\M��M3N6HN+N'�NK�N0ODPO=�OE�OIPCcPK�P<�P60Q-gQ1�Q0�Q$�Q,RNJR?�R3�R\
SBjS*�S7�S@T%QT wT@�TC�T=U&[U>�UU�USVEkV>�V<�V/-W8]W.�WO�WXXBnX.�X>�XFYYfY8�YL�YOFZU�ZZ�ZYG[:�[X�[W5\P�\\�\<;]Tx]D�]S^Hf^G�^d�^k\_K�_<`'Q`8y`(�`'�`-a11a)ca�a�a�a<�a#%b9Ib6�b[�b6c8Mc,�c7�c)�c2d*Hd1sd6�d%�d]e``e^�eN faof3�f8g>gN\gJ�ge�gd\h��heJi�ic�i).j(Xje�jw�jQ_kG�k6�k60l!gl0�l�l)�l=�l8<mRum$�m%�m!n-5ncn8n5�n�n4o=@oP~o<�o;pHpOhp.�p0�pqG7q)q.�q8�q7r+Ir)ur4�r!�r/�r&s+Cs/os%�s0�s6�s(-t*Vt_�t=�tTutu+�u3�u;�u-v!GvKivC�v2�vC,w:pw��w/xaLx3�x8�xy3yJycy}y5�y'�y$�yz9z<Wz5�zI�zG{;\{?�{R�{/+|B[|8�|;�|9}M}.h}�}�} �}E�}0~K~Zh~�~.�~:8M`�W�E?�2��=��X��O�Zi�LāG�>Y�:��Iӂ]�{�3��4ʃ'��,'�HT�J��D�=-�@k�*��(ׅ,�R-�>��0����B|�'��V�8>�]w�fՈr<�Z��<
�HG�B��Aӊ2�FH�,��W��W�:l�+��;ӌC�ES�l��8�/?�Qo�A��C�5G�/}�6��g�+L�*x�)��0͐@��$?�fd�[ˑJ'�,r�%��ŒJ�C-�Sq�Gœ#
�%1�@W�6��7ϔH�:P�=��Aɕ3�:?�Vz�Bі�&4�'[�$��J��!�'�$=�$b�?��WǘE�$e�A��=̙)
�D4�+y�8��eޚgD�!��gΛt6�@��!�1�C@�V��4۝�P0�/��E��8��60�g�2��R��=	�bG�1��<ܠA�;[�H��#��L�Mk�h��C"�#f�4��(��+�,�IA�+��E��A��7?�=w�B��V��.O�8~�K�� �$$�?I�8��(§j�UV�4��G�:)�Td�6����#t�T��#�7�"I�"l�A��1ѫ@�.D�Zs�UάO$�;t�l����E��b�3S�5��U���G/�Mw�&Ű6�;#�N_�:��Z�BD�z��<�I?�h��f�>Y�>��]״]5�<��Cеs�C���̶VM�V��1��]-�3��@��B�RC�.��8ŹM��HL�@��FֺV�Dt�]��.�6F��}�Z	�*d�7��6ǽb��6a� ��W��I�'[�I��&Ϳ��`��H�`6�'��,��O�@<��}�M	�3W�L�����8n�.��?��#�":� ]�&~���� 2�DS�'��=��T��cS�T��:�(G�Ap�D��N��EF� ����f��$4�#Y�V}�+��T�=U�2��&��D��Q2���e��7
�0B�?s�)����J��)F�Pp�>��k�)l�W��?��8.�Ug�5��8��5,�]b�*��9��f%�H��H��;�<Z�M��>��C$�@h�����8��1�,C�:p�)��B���,�0H�$y�p���Z-�q����"	�m,�D����<��4�8C�!|�%��'����8�=?�.}���$��V���5��+���y���S���
��?*�j���6��
��>��E�B^�0��[��.�N�^�~�����5��+��4�0F�&w�J��I��T3�,��F��2��D/�t���������,��:�KO�E��!�� �$�-?�Cm�"������K�X�/o�*��
����%��5
�)@�Vj�����S��*2�>]���N���.�"A�7d�;��6��(�"8�[�V{�9��
���W��.��K �l�y�"��"��5��K�L[�$��6���Q�
j�%u�	��>��"��&�9.�[h�/�����)�/E�u���1��;��;�Q�7p�.��3��+�u7�W��3�9�J�e�}�>��N��"�8�:W���)����&��'�1E�!w���l���0�B�8^�.��1�0��0)�0Z���Z��y�~�/��"��/�.�C�
_�Tm�F�1	�7;�~s�#�?�0V���
����B��(��6&�)]�^��� ��8�"R�(u���l��B!�sd�4�%
�:3�hn�<�
*2Ju}J�m>5�U�8.IDx\�
/:YTx�='e)x���6���9���(]G$�X�Q#ZuI�$	L?	K�	C�	r
p�
gyhP�z3}�h,
A�
H�
r r�<fC�t�t8��o2`�IQM&�q�O8%�&�&�%�+";N9�2�.�W&N~P�QRpS�.BF)�1���9�-?Pc�3�.��1Mcy�#����#(HM
mL{ ��06PB]&�����#*=LYj{
�Z����|DDGD�R�$
>2I7|!��%�J�I @e ?� :� m!!,�!B�!<�!-<"/j"<�"B�"@#%[#l�#��#.|$U�$6%38%Jl%
�%�%�%�%�%+&/-&E]&,�&;�&;'H'1`'+�'�'�'%�'@(>U(�(U�(1�(-)IK)�)i�)i*V�*q�*zR+��+XX,I�,J�,IF-Q�-�-A�-D>.7�.N�.9
/6D/+{/A�/�/	0)090(S0:|0$�0$�0!1#1M>1�1�1�1>�12K42d�2j�2ZP3S�3R�3RR4G�4+�4.5!H52j5B�5�5
�5+�5=)6*g6�6#�6�6.�67;7-T7�72�72�7c8+f8#�8�8�8=�8"959A9S9j9)�97�97�9I:Yh:�:�:�:�:7;+M;y;+~;,�;$�;"�;!<1A<s<%�< �<?�<;=8M= �=�=3�=9�=5>G>+a>�>�>U�>U?t?&�?�?3�?�?@( @'I@Fq@7�@6�@>'A2fA4�A�A%�A,B2?BrB�B
�BJ�B<�BE4CEzCF�CFD9NDC�DC�DAEGRE@�EC�ElF�F�F'�F�F�F6GNMGJ�G
�G�G,H5HUHrH
�H�H�H�H�H�H�H�H�HIOIz�~����*�Gg�lI�T��g������Z~�;����hE���5�`�p�$�jNr�T}��'���^P�W_��Z>���^w3����`UL��h���[���o
P�o0�*E��K� �y�����d��.f�<��Ubq&Y_�\����>�F�g���N�#���6���k��9_G8|�R����n��x:>(�;�X�������bj�D���S�,k|�z!�����A���j?m��a&lVSB�:�&��.�R�v� �%.@@�
���~Q��\Wu���&w[$?t*+�;��x��)�o��(y�s�t��
O]x�#���'��s�]�B�f��J����,#u&��;�����9l�3�/f�����+��\X�uW*iD�Q S����9c���h|��*�l/�@(v������9��{�������ji5%�|�Ln���E"�K�g����Z $T�T�gA~ej��
���{��u���O���}^X��O�+�fv��i��-G@�l��m�-|�p�J�_%l�~�R��"F8��NM����`�yC���zJ����,��KElt�r�4�Pl����K>eq�3��kQaK�W�!�.o�V�P]�[��/�m��X�w����)�����Y!��	4%��b��8�3�5���EyH�VjB���B�=�.�9(?�/K��X��:PZ����@	����r�7�����;b
+����#���b�o�-f�9_Vv����2��"�����
1\!	3?z�% X��CZ��)p�'�:Q^�������Y�wD>�#AH�e�x���r2T��C����h2A0�M�;�����^GL��Y_7F15��=��g5jV�x��7�s'!?�k>�v�`�������4<�D
�B6�1G�#A�a�����[��0{�dN�Z���(�F�O<�_��p�tNI�O���H������g��B*(���W��-2���Z�S���T��5A����6e�^�kt�����q����zmCsUG��'L�H���f�J~=nd)R9�9�������sr�0`i��)|M�`���,�:/L��?$�X}����z��#n�7�J�H�������Du=�������tC�'!,��� S 
Q)������H7�WgJ�������Y��
z�B�������~F��h�nCUS�o$�d�0��}L��=�m�7c��d�a��K
U���k���ew��	a�&Io�S)��}���������K����$�V�b�]J�|�0��s�����u-�c��G�wR���C%��1���1	��I=�w3�48��]�@�{��V#������|e����b����1�'�q���En��~7PWO�[�L������6�4�[�GZ^�`5R$����6r�ym� ���<��y��y�Ac�+����>/�c�F�3������=��qp0Lv�a
p�M��U=w����Q�4���]�d���d�4��0�5������N��X��2k*�Q�F��	�"R{���Oa��C�8M6�1����}��iqO��t��qn[�����a�?8�&%\�;f���hY<��Ec��q�"
{��\D���sxo�},�!��.�I�&e�i�������{,��7�����Iv:D�+:+H
���v�'k�"����Pp`��D���T]��b	���jt\{�,>��
���
?M�(I�i;�	N�x���IQ(32T���Y�]��/")^.Y�<}�e��F8m@_�u���%�[A��\x��S�rc�������������P��@��my���6/�
-*�W�-1�:���Mf���6�Ur�4"p�BN���J��E�-���h�n.��<�R��!�H�cV+$���8<���U2iz2M�d�h�������s�����u�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-12 12:22+0300
PO-Revision-Date: 2010-06-18 21:53+0300
Last-Translator: Анатолій Сахнік <sakhnik@gmail.com>
Language-Team: Bohdan Vlasyuk <bohdan@vstu.edu.ua>
Language: uk
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

	Востаннє змінена у 

Аргументи:


Вжиток:
           змінено: 
         [непридатний на цьому комп'ютері]
         [не придатний для цієї версії Vim]
          назва вузла: 
          користувач: 
         ID процесу: 
       a: Знайти присвоєння цього символу
       c: Знайти функції, що викликають цю функцію
       d: Знайти функції, що викликаються цією функцією
       e: Знайти цей шаблон egrep
       f: Знайти цей файл
       g: Знайти це визначення
       i: Знайти файли, які включають в себе цей файл
       s: Знайти цей символ C
       t: Знайти цей текст

    Назва       Арг.       Адреса   Доповнення Визначення
   #   рядок
   або:
  # ДО мітки       З рядка  у файлі/тексті
 точка ряд. стовп. файл/текст
# Попередні %s (від найновіших):

# Рядки bar, скопійовано посимвольно:

# Список буферів:

# Помітки:

# Попередні помітки в файлах (від найновіших):

# Список переходів (від найновіших):

# Ост. %sЗразок пошуку:
~
# Остання заміна:
$
# Регістри:

# глобальні змінні:

(1) Можливо, інша програма вже редагує цей самий файл. Якщо це так,
    будьте обережні, щоб не залишилися два різні екземпляри
    одного й того самого файлу після змін.  Вийдіть чи продовжуйте з обережністю.

(Можливо, потрібно записати цей файл під іншою назвою

--- Автокоманди ---
--- Значення загальних опцій ---
--- Значення локальних опцій ---
--- Меню ---
--- Опції ---
--- Регістри ---
--- Позначки ---
--- Елементи синтаксису ---
--- Елементи синхронізації синтаксису ---
--- Коди терміналу ---
--- Клавіші терміналу ---
Аргументи для gvim (версія Athena)

Аргументи gvim (версія GTK+)

Аргументи для gvim (версія Motif)

Аргументи для gvim (версія neXtaw):

Велика версія 
Не можна створити канали

Не вдалося запустити оболонку
Не вдалося запустити оболонку `sh'

Не вдалося роздвоїтися

Команда закінчила виконання

Скомпілював 
Не вдалося отримати контекст безпеки для 
Не вдалося встановити контекст безпеки для 
Додаткові латки: 
Знайдено файл обміну з назвою "
Гігантська версія 
Якщо ви задали новий ключ шифру, але не записали текстовий файл,
Якщо ви записали текстовий файл після зміни ключа шифру, натисніть enter
Включені латки: 
Версія з GUI для 32-розрядної Windows
Консольна версія для 32-розрядної Windows
Версія з GUI для 64-розрядної MS-Windows
Консольна версія для 64-розрядної Windows
Версія для MacOS X (unix)
Версія для MacOS X
Версія для MacOS
Напевно, змін не було, або Vim не поновив файл обміну.
Дізнайтеся більше: «vim -h»

Нормальна версія 
Версія для OpenVMS
Мала версія 
Крихітна версія 
Vim: Помилка X

ЗАСТЕРЕЖЕННЯ: Оригінал, мабуть, втрачений чи пошкоджений

Якщо регістр ігнорується, додайте / спереду щоб прапорець був у верхньому регістрі.
Можливо, тепер ви хочете знищити файл обміну .swp.


[байт]  всього розм/знищ. %lu/%lu, викор. %lu, макс. %lu

змінити ряд. стовп. текст
введіть новий ключ шифру.
пом. ряд.  кол. файл/текст
оболонка повернула: 
синхронізація по елементах
щоб використати однаковий ключ для текстового файлу та файлу обміну              щоб починати в режимі сумісності з Vi                          для двох режимів                      дата:            власник:          [не можна відкрити]         [не можна прочитати]        [не схоже на файл обміну]         [від Vim 3.0]         назва файлу:        файл defaults: "      -- жодного --
      НОВІШИЙ за файл обміну!
      exrc користувача: "     vimrc користувача: "    Якщо це справді трапилося, спробуйте «:recover» або «vim -r     Якщо ви вже це зробили, знищіть файл обміну «    рядок=%ld  id=%d назва=%s    системне меню: "    gvimrc користувача: "   В поточному каталозі:
   У каталозі    Використовуючи вказану назву:
   дата:    назва вузла:    системний vimrc: "  # прі тип мітка  (Уже у списку)  другий exrc користувача: "  ВЕРСІЯ ДЛЯ НАЛАГОДЖЕННЯ  Включені (+) або не включені (-) компоненти:
  НЕ ЗНАЙДЕНО  ВСЬОГО     К-ТЬ   СПІВП.  НАЙПОВІЛ.   СЕРЕДН.   НАЗВА              ШАБЛОН  Використано мітку, не розрізняючи великі й малі літери  заміна для $VIM: "  системний gvimrc: " # pid    назва бази даних                    шлях
 (Перервано) (НЕ ЗНАЙДЕНО) (разом з попередніми збігами) (вставка) (вставка) Прогорнути (^E/^Y) (рядок знищено) (не підтримується) (клей) (заміна) (заміна) Прогорнути (^E/^Y) (виконується) (вірт заміна) другий vimrc користувача: " третій vimrc користувача: " < «%.*s» Додається Арабська ПОМИЛКА КОНВЕРТАЦІЇ Доповнення команд (^V^N^P) Копія %d з %d Доповнення визначення (^D^N^P) Доповнення зі словника (^K^N^P) НЕ ВДАЛОСЯ Доповнення назви файлу (^F^N^P) Іврит ВСТАВКА Доповнення місцевих ключових слів (^N^P) Доповнення ключових слів (^N^P) Кмітливе доповнення (^O^N^P) Доповнення шляху за зразком (^N^P) ЗАМІНА НАВИВОРІТ ВИДІЛЕННЯ ВИДІЛЕННЯ БЛОКУ ВИДІЛЕННЯ РЯДКІВ ПРОБІЛ/d/j: вниз на екран/сторінку/рядок, b/u/k: вгору, q: вийти  Орфографічна підказка (s^N^P) Доповнення міток (^]^N^P) Доповнення з тезаурусу (^T^N^P) Користувацьке доповнення (^U^N^P) ВИБІР ВИБІР БЛОКУ ВИБІР РЯДКІВ ВІРТ ЗАМІНА Доповнення усього рядка (^L^N^P) [Змінено][д][з] Режим ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) дописаний не можна використати на цьому комп'ютері.
 не можна використати з цією версією Vim.
 заміна для $VIMRUNTIME: " пошкоджений (розмір сторінки менший мінімального значення).
 у рядку %ld; інформація тип файлу
 розриви рядків рядків перед першим рядком позначки старі файли в %ld рядках в одному рядку або більше повернуто
 vim [аргументи]  з підтримкою OLE записаний»,
    щоб позбутися цього повідомлення.
»
    щоб відновити зміни (див. «:help recovery»).
» вже існує!# Цей файл автоматично створений Vim %s.
# Значення 'encoding' під час створення цього файлу
# Можете редагувати, але ОБЕРЕЖНО!

%-5s: %s%*s (Використання: %s)%3d %s %s   рядок %ld%<%f%h%m%=Стор. %NЗнищено %d буфери(ів)Вивантажено %d буфери(ів)Витерто %d буфери(ів)%d повторюваних слів у %s%d файли(ів)
Ще є %d не редагованих файлів. Все одно вийти?відредаговано %d з %d%ld %s; %s #%ld  %sдовж.: %ld; знищено рядків: %ld%ld рядків %s-но %d разів%ld рядків %s-но%ld рядки(ів) --%d%%--Змінено рядків: %ldВідфільтровано %ld рядки(ів)Вирівняно рядків: %ldПереміщено %ld рядки(ів)Залишилося вирівняти %ld рядків...Запам'ятав рядків: %ld%ld рядків, %ld збіги(ів)додано рядків: %ld%ld секунд тому%ld замін(и)%lld символівАвтокоманди %s для «%s»%s припиненоСкинуто %s%s рядок %ldОчікується %sВідновлено %s%s повертає #%ld%s повертає %sЗначення %s відрізняється від того, що вжито у іншому файлі .aff%s, рядок %ld%sсписок помилок %d з %d; %d помилок%sviminfo: %s в рядку: &C:Скасувати&D:Припинити&F:Фільтрувати&H:Допомога&O:Гаразд&O:Гаразд
&C:Скасувати&O:Гаразд
&L:Завантажити&O:Гаразд&O:Відкрити лише для читання
&E:Усе одно редагувати
&R:Відновити
&D:Знищити його
&Q:Вийти
&A:Перервати&O:Відкрити лише для читання
&E:Все одно редагувати
&R:Відновити
&Q:Вийти
&A:Перервати&R:Замінити&U:Скасувати&Y:Так
&N:Ні&Y:Так
&N:Ні
&C:Скасувати&Y:Так
&N:Ні
&A:Усі
&D:Жодного
&C:Скасувати' не відомий. Вбудовані термінали:Не можна використати '-nb': не дозволено під час компіляції
Опція 'dictionary' порожняОпція 'history' порожняДля «%s» встановлено 'readonly'.
Бажаєте все одно продовжити запис?Опція 'thesaurus' порожня(%d з %d)%s%s: (+%ld для BOM)(2) Сеанс редагування цього файлу зазнав краху.
(Перервано) (Неможливо)(NFA) НЕ ВДАЛОСЯ ВІДКРИТИ %s!+			Розпочати в кінці файлу+<рядок>		Розпочати у вказаному <рядку>+reverse		Не обертати кольори (також: +rv),
або файл було пошкоджено.-               читати текст з stdin--			Лише назви файлів після цього-- Ще ---- Пошук...--- Включені файли --Знищено----Жодного рядка----cmd <команда>	Виконати <команду> перед завантаженням vimrc--cmd аргумент--echo-wid		Хай gvim надрукує ідентифікатор вікна на stdout--literal		Не розкривати шаблони--noplugin		Не вантажити скрипти доповнення--not-a-term		Пропустити попередження вводу/виводу не в термінал--remote <файли>	Редагувати <файли> на сервері Vim, якщо це можливо--remote-expr <вираз> Виконати <вираз> у сервері Vim і надрукувати результат--remote-send <символи> Відіслати <символи> серверу і завершити роботу--remote-silent <файли>  Те саме, тільки не скаржитися на відсутність сервера--remote-tab[-wait][-silent] <файли>  Так само, як --remote, але по вкладці на файл--remote-wait <файли>   ..., але зачекати поки усі файли будуть відредаговані--remote-wait-silent <файли>  Те саме, тільки не скаржитися, якщо сервера немає--role <роль>	Встановити унікальну роль для ідентифікації головного вікна--serverlist		Показати список наявних серверів Vim і завершити роботу--servername <назва>	Надіслати до/стати Vim сервером з <назвою>--socketid <xid>	Відкрити Vim в іншому елементі інтерфейсу GTK--startuptime <файл>	Записати запускні повідомлення з часовими відмітками до <файлу>--ttyfail		Вийти, якщо введення/виведення не в термінал--version		Надрукувати інформацію про версію програми і вийти--windowid <HWND>	Відкрити Vim всередині іншого елементу win32-A			Запустити в режимі арабської мови-C			Сумісний з Vi режим: 'compatible'-D			Режим налагодження-E			Покращений режим Ex-F			Запустити в режимі перської мови-H			Запустити в режимі івриту-L			Те саме, що й -r-M			Зміни в тексті файлів не дозволено-N			Не зовсім сумісний з Vi режим: 'nocompatible'-O[N]		Ніби -o, але поділити вікна вертикально-P <заголовок батька>	Відкрити Vim всередині батьківського вікна-R			Режим перегляду (ніби «view»)-S <сеанс>		Виконати поданий файл після першого завантаженого файлу-T <термінал>	Встановити тип терміналу у <термінал>-u <gvimrc>		Використати поданий файл замість .gvimrc-V[N][файл]		Більше повідомлень [рівень N] [файл журн. повідомлень]-w <скрипт>		Записати усі набрані команди у файл <скрипт>-X			Не з'єднуватися з X сервером-Z			Обмежений режим (ніби «rvim»)-b			Двійковий режим-background <колір>	Використати <колір> для фону (також: -bg)-boldfont <шрифт>	Використати <шрифт> для жирного тексту-borderwidth <товщ>	Встановити товщину меж <товщ> (також: -bw)-c <команда>		Виконати <команду> після завантаження першого файлу-c аргумент-d			Режим порівняння (ніби «vimdiff»)-dev <пристрій>			Використовувати <пристрій> для вводу/виводу-display <дисплей>	Під'єднати vim до заданого дисплею сервера X-display <дисплей>	Виконати vim на заданому <дисплеї>-display <дисплей>	Виконати vim на <дисплеї> (також: --display)-e			Режим Ex (ніби «ex»)-f			Не використовувати newcli для відкриття вікна-f  чи  --nofork	Передній план: тримати термінал після запуску GUI-font <шрифт>	Використати <шрифт> для звичайного тексту (також: -fn)-foreground <колір>	Використати <колір> для звичайного тексту (також: -fg)-g			Запустити GUI (ніби «gvim»)-geometry <геом>	Задати розміри й положення (також: -geom)-h  чи  --help	Надрукувати це повідомлення і вийти-i <viminfo>		Використати <viminfo> замість .viminfo-iconic		Запустити Vim і згорнути його вікно-italicfont <шрифт>	Використати <шрифт> для похилого тексту-l			Режим lisp-m			Зміни (запис файлів) не дозволено-menuheight <висота>	Встановити висоту меню <висота> (також: -mh)-n			Не використовувати файл обміну, тримати усе в пам'яті-o[N]		Відкрити N вікон (або по одному для кожного файлу)-p[N]		Відкрити N вкладок (або по одній для кожного файлу)-q [файл]       перейти до першої помилки-r			Показати файли обміну і вийти-r (назва файлу)	Відновити аварійно закінчений сеанс-register		Зареєструвати цей gvim для OLE-reverse		Обернути кольори (також: -rv)-s			Мовчазний (пакетний) режим (лише для «ex»)-s <скрипт>		Зчитати команди нормального режиму з файлу <скрипт>-scrollbarwidth <товщ>  Встановити товщину лінійки зсуву (також: -sw)-t помітка      перейти до мітки-u <vimrc>		Використати поданий файл замість .vimrc-unregister		Скасувати реєстрацію цього gvim для OLE-v			Режим Vi (ніби «vi»)-w <скрипт>		Дописати усі набрані команди до файлу <скрипт>-x			Редагувати зашифровані файли-xrm <ресурс>		Встановити зазначений ресурс-y			Простий режим (ніби «evim», без режимів)Рядок / проігноровано у %s у рядку %d: %sРядок /encoding= після слова проігноровано у %s у рядку %d: %sЗнищено один буферВивантажено один буферВитерто один буферодин символОдин рядок %s-но %d разівОдин рядок %s-ноодин рядок --%d%%--Один рядок зміненоВирівняно один рядокзнищено один рядокПереміщено один рядокЗапам'ятав один рядокодин рядок, Один збігЗалишилося відредагувати ще один файл. Все одно вийти?додано один рядокОдна замінадругий gvimrc користувача: "третій gvimrc користувача: ": Відіслати вираз не вдалося.
: Не вдалося відіслати.
: Не вдалося відіслати. Спроба виконати на місці
; збіг <%s>%s%s  %d,  шіст %02x, віс %03o<не відкривається> <нічого>> %d, шіст %04x, віс %o> %d, шіст %08x, віс %o??? звідси і до `??? КІНЕЦЬ' рядки, можливо, сплутані??? звідси і до `??? КІНЕЦЬ' рядки, можливо, були додані/знищені??? ПРОПУЩЕНО БЛОК??? ПОРОЖНІЙ БЛОК??? КІНЕЦЬ??? НЕПРАВИЛЬНА КІЛЬКІСТЬ РЯДКІВ??? ПРОПУЩЕНІ РЯДКИ??? БРАКУЄ БАГАТЬОХ РЯДКІВANCHOR_BUF_SIZE замалийДодати нову базу данихДодано базу даних cscope %sАфікс також використовується для BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST у %s у рядку %d: %sНазва афіксу завелика у %s у рядку %d: %sУсеУсі бази даних cscope перезавантаженоБули знайдені всі включені файлиВже на найновішій змініВже на найстаршій змініВже й так лише одна вкладкаЦе вже єдине вікноДописати файлПропущено аргумент післяРядок:Спроба повторно відкрити скрипт: "Початковий варіантІнтервал задано навиворіт, щоб поміняти місцями — ГАРАЗДСтаньте зареєстрованим користувачем Vim!Дзень!Перед байтом %ldЗнизуОбидва рядки SAL і SOFO у %sТочка зупинки в «%s%s» рядок %ldНепридатна умова у %s у рядку %d: %sВжито COMPOUNDSYLMAX без SYLLABLEВикликається оболонка щоб виконати: «%s»Не вдалося підшукати тимчасовий файл для конвертаціїСкасуватиНе вдалося створити Не вдалося виконати Неможливо відкрити $VIMRUNTIME/rgb.txtНе вдалося відкрити NIL:
Не вдалося відкрити файл «%s»Не вдалося прочитати: "Не вдалося відкрити як вихідний файл: "Не вдалося прочитати каталог: «%s»Не вдалося записати файл історії у жодну з директорій у 'undodir'Замінити «%.*s» на:Закрити вкладкуКолонка %s з %s; рядок %ld з %ld; слово %lld з %lld; байт %lld з %lldКолонка %s з %s; рядок %ld з %ld; слово %lld з %lld; символ %lld of %lld; байт %lld з %lldкомандиСкомпільовано: Компілятор: Стиснено %d з %d вузлів; залишилося %d (%d%%)Стискується дерево слів...Помилка перетворення слова у %s у рядку %d: %sПеретворення у %s не підтримуєтьсяПеретворення у %s не підтримується: з %s до %sКонвертація з 'charconvert' не вдаласяНе вдалося виправити вказівники на функції DLL!Не вдалося отримати контекст безпеки %s для %s. Видаляємо!Не вдалося завантажити vim32.dllНе вдалося відкрити тимчасовий файл журналу для запису Не вдалося відкрити тимчасовий файл журналу для запису, показується на stderr ... Не вдалося встановити контекст безпеки %s для  %sТеґ cscope: %sМова (%s): «%s»Рядок налагодженняВизначення COMPOUNDFORBIDFLAG після елементу PFX може дати неправильний результат у %s у рядку %dВизначення COMPOUNDPERMITFLAG після елементу PFX можу дати неправильний результат у %s у рядку %dПорівняти з допомогою VimІнший прапорець комбінації у продовженні блоку афіксів у %s у рядку %d: %sНапрямКаталогиКаталог	*.нічого
Ви справді хочете його переписати??Зроблено!Друга ; у списку зміннихУнизПовторення рядка /encoding= проігноровано у %s у рядку %d: %sПовторення рядка /regions= проігноровано у %s у рядку %d: %sПодвійний афікс у %s у рядку %d: %sПовторення символу у MAP у %s у рядку %dНазва поля повторюється: %sПовторення слова у %s у рядку %d: %sE100: Немає інших буферів в режимі порівнянняE101: Понад два буфери у режимі порівняння, не зрозуміло, котрий із них використатиE102: Не вдалося знайти буфер «%s»E103: Буфер «%s» не в режимі порівнянняE104: У диграфах не може міститися escapeE105: :loadkeymap використано не у файлі командE107: Пропущено дужки: %sE108: Змінної немає: «%s»E109: Бракує ':' після '?'E10: За \ має йти /, ? або &E110: Пропущено ')'E111: Бракує ']'E112: Бракує назви опції: %sE113: Невідома опція: %sE114: Бракує лапки: %sE115: Бракує лапки: %sE116: Неправильні аргументи функції %sE117: Невідома функція: %sE118: Забагато аргументів для функції: %sE119: Замало аргументів для функції %sE11: Неприпустимо у вікні команд, <CR> виконує, CTRL-C виходитьE120: <SID> використовується не у контексті скрипту: %sE121: Невизначена змінна: %sE122: Функція %s уже існує, ! щоб замінитиE123: Невизначена функція: %sE124: Бракує '(': %sE125: Недозволений аргумент: %sE126: Бракує :endfunctionE127: Не вдалося перевизначити функцію %s: вона використовуєтьсяE128: Назва функції має починатися з великої літери або «s:»: %sE129: Не вказано назву функціїE12: Команда не дозволена у exrc/vimrc у пошуку поточного каталогу чи теґуE130: Невідома функція: %sE131: Не вдалося знищити функцію %s: Вона використовуєтьсяE132: Глибина викликів функції перевищує 'maxfuncdepth'E133: :return поза межами функціїE134: Неможливо перемістити рядки самі в себеE135: Автокоманди *Filter* не повинні змінювати поточний буферE136: viminfo: Забагато помилок, решта файлу буде пропущеноE137: Не дозволено запис у файл viminfo: %sE138: Не вдалося записати файл viminfo %s!E139: Файл уже завантажено в інший буферE13: Файл існує (! щоб не зважати)E140: Використайте ! для запису частини буфераE141: Немає вхідного файлу для буфера %ldE142: Файл не записано: запис заборонено опцією 'write'E143: Автокоманди несподівано знищили новий буфер %sE144: не числовий аргумент для :zE145: У rvim не дозволені команди оболонкиE146: Регулярні вирази не можна розділяти літерамиE147: :global не можна вживати рекурсивно з діапазономE148: У global бракує зразкаE149: Вибачте, немає допомоги для %sE14: Неправильна адресаE150: Не є каталогом: %sE151: Жодного збігу: %sE152: Не вдалося відкрити %s для записуE153: Не вдалося відкрити %s для читанняE154: Повторення мітки «%s» у файлі %s/%sE155: Невідомий надпис: %sE156: Пропущено назву надписуE157: Неправильний ID надпису: %ldE158: Некоректна назва буфера: %sE159: Пропущено номер надписуE15: Неправильний вираз: %sE160: Невідома команда надпису: %sE161: Точку зупинки не знайдено: %sE162: Буфер «%s» має не збережені зміниE163: Редагується лише один файлE164: Це вже найперший файлE165: Це вже останній файлE166: Не вдалося відкрити для запису зв'язаний файлE167: :scriptencoding використано поза виконуваним файломE168: :finish використано поза виконуваним файломE169: Команда занадто рекурсивнаE16: Неправильні межіE170: Бракує :endforE170: Бракує :endwhileE171: Бракує :endifE172: Дозволено тільки одну назву файлуE173: Залишилося %ld не редагованих файлівE173: Залишилося відредагувати ще один файлE174: Команда вже існує, ! щоб замінити їїE175: Не вказано атрибутівE176: Неправильна кількість аргументівE177: Лічильник не може бути вказано двічіE178: Неправильне початкове значення лічильникаE179: для -addr потрібний аргументE179: для -complete потрібний аргументE17: «%s» — це каталогE180: Неправильне значення типу адреси: %sE180: Неправильне доповнення: %sE181: Неправильний атрибут: %sE182: Неправильна назва командиE183: Команди користувача повинні починатися з великої літериE184: Команду користувача не знайдено: %sE185: Не вдалося знайти схему кольорів «%s»E186: Це вже найперший каталогE187: НевідомоE188: Не можна отримати позицію вікна на цій платформіE189: Файл «%s» існує (! щоб не зважати)E18: Неочікувані символи у :letE190: Не вдалося відкрити «%s» для записуE191: Аргумент має бути літерою, ` або 'E192: Забагато вкладених :normalE193: :endfunction поза межами функціїE194: Немає назви вторинного файлу для заміни '#'E195: Не вдалося прочитати файл viminfoE196: У цій версії немає диграфівE197: Не вдалося встановити мову «%s»E198: cmd_pchar поза межами командиE199: Активне вікно або буфер було знищеноE19: У помітки некоректний номер рядкаE200: Автокоманди *ReadPre унеможливили читання файлуE201: Автокоманди *ReadPre не повинні змінювати цей буферE202: Конвертація унеможливила читання файлу!E203: Автокоманда знищила або вивантажила буфер, що мав бути записанийE204: Автокоманда несподіваним чином змінила кількість рядківE205: Латання: не вдалося зберегти оригіналE206: Латання: не вдалося створити оригіналE207: Не вдалося знищити резервний файлE208: Помилка запису у «%s»E209: Помилка закриття «%s»E20: Помітку не встановленоE210: Помилка читання «%s»E211: Файл «%s» більше не досяжнийE212: Не вдалося відкрити файл для записуE213: Не вдалося перетворити (! щоб записати без конвертації)E214: Не вдалося підшукати тимчасовий файл для записуE215: Недозволений символ після *: %sE216: Немає такої події: %sE216: Немає такої групи чи події: %sE217: Не можу виконувати автокоманди для УСІХ подійE218: Забагато вкладених автокомандE219: Бракує {.E21: Зміни не дозволені: вимкнено 'modifiable'E220: Бракує }.E222: Додати до буфера читанняE223: Заміна рекурсивнаE224: Загальне скорочення для %s вже існуєE225: Загальна заміна для %s вже існуєE226: Вже є скорочення для %sE227: Вже є заміна для %sE228: makemap: Неприпустимий режимE229: Не вдалося запустити GUIE22: Забагато вкладених скриптівE230: Не вдалося прочитати з «%s»E231: Некоректний 'guifontwide'E232: Не вдалося створити BalloonEval з повідомленням і функцієюE233: Не вдалося відкрити дисплейE234: Невідомий набір шрифтів: %sE235: Невідомий шрифт: %sE236: Шрифт «%s» не моношириннийE237: Не вдалося вибрати принтерE238: Помилка друку: %sE239: Некоректний надпис: %sE23: Немає вторинного файлуE240: Немає з'єднання із сервером XE241: Не вдалося відіслати до %sE243: Аргумент не підтримується: «-%s»; користуйтесь версією з OLE.E244: Некоректна назва набору символів «%s» у назві шрифту «%s»E244: Некоректна назва якості «%s» у назві шрифту «%s»E245: Помилковий символ %c в назві шрифту «%s»E246: Автокоманда FileChangedShell знищила буферE247: Немає зареєстрованих серверів з назвою «%s»E248: Не вдалося відіслати команду до програми-ціліE24: Такого скорочення немаєE250: Шрифти для цих символів відсутні у наборі %s:E251: Реквізит реєстру зразку VIM сформований неправильно.  Знищено!E252: Назва набору шрифтів: %sE253: Назва набору шрифтів: %sE254: Не вдалося отримати колір %sE255: Не можна зчитати дані напису!E256: Помилка автомату HangulE257: cstag: мітку не знайденоE258: Не вдалося надіслати клієнтуE259: Для запиту cscope %s з %s нічого не знайденоE25: Не можна використати GUI: Не ввімкнено під час компіляціїE261: З'єднання з cscope %s не знайденоE262: Помилка читання зі з'єднання cscope %ldE263: Вибачте, ця команда вимкнена, бібліотека Python не може бути завантажена.E264: Python: Помилка ініціалізації об'єктів вводу/виводуE265: $_ має бути екземпляром StringE266: Вибачте, ця команда вимкнена, бібліотека Ruby не може бути завантажена.E267: несподіваний returnE268: несподіваний nextE269: несподіваний breakE26: Не можна використати іврит: Не ввімкнено під час компіляції
E270: несподіваний redoE271: retry поза rescueE272: Необроблений винятокE273: Невідомий статус longjmp: %dE277: Не вдалося прочитати відповідь сервераE27: Не можна використати фарсі: Не ввімкнено під час компіляції
E280: ФАТАЛЬНА ПОМИЛКА TCL: можливо пошкоджено список посилань!? Будь ласка, повідомте у vim-dev@vim.orgE282: Не вдалося прочитати з «%s»E283: Помітку «%s» не знайденоE284: Не вдалося встановити значення контексту вводуE285: Не вдалося створити контекст вводуE286: Не вдалося створити метод вводуE287: Застереження: Не вдалося встановити в методі вводу подію знищенняE288: Метод вводу не підтримує стиліE289: Метод вводу не підтримує відредаговані типиE28: Немає такої групи підсвічування: %sE293: Блок не було зафіксованоE294: Помилка зміни позиції у файлі обмінуE295: Помилка зчитування файлу обмінуE296: Помилка зміни позиції під час запису у файл обмінуE297: Помилка запису файлу обмінуE298: Немає блоку 0?E298: Немає блоку 1?E298: Немає блоку 2?E299: Обчислення виразів Perl заборонене у пісочниці без модуля SafeE29: Текст ще не було доданоE300: Файл обміну вже існує (атака символьним посиланням?)E301: Ой, втрачено файл обміну!!!E302: Не вдалося перейменувати файлу обмінуE303: Не вдалося прочитати файл обміну для «%s», відновлення неможливеE304: ml_upd_block0(): Немає блоку 0??E305: Не знайдено файлу обміну для %sE306: Не вдалося відкрити %sE307: %s не схоже на файл обміну VimE308: Застереження: Можливо, початковий файл було зміненоE309: Не вдалося прочитати блок 1 з %sE30: Ще не було командE310: Ідентифікатор блоку 1 неправильний (%s не є файлом обміну?)E311: Відновлення перерваноE312: Під час відновлення знайдено помилки. Перегляньте рядки, що починаються з ???E313: Не вдалося заготовити, немає файлу обмінуE314: Збереження не вдалосяE315: ml_get: неправильний lnum: %ldE316: ml_get: не знайшов рядок %ldE317: Вказівник блоку помилковийE317: Вказівник блоку помилковий 2E317: Вказівник блоку помилковий 3E317: Вказівник блоку помилковий 4E318: Поновлено забагато блоків?E319: Вибачте, цієї команди немає у цій версіїE31: Немає такої заміниE320: Не вдалося знайти рядок %ldE321: Не вдалося перечитати «%s»E322: Номер рядка вийшов за межі: %ld за кінцемE323: Кількість рядків у блоці %ldE324: Не вдалося відкрити файл PostScript для виводуE325: УВАГАE326: Знайдено забагато файлів обмінуE327: Частина шляху до елемента меню не є підменюE328: Меню може бути тільки в іншому режиміE329: Немає меню «%s»E32: Бракує назви файлуE330: Шлях до меню не повинен вести до підменюE331: Не можна додавати елементи меню просто до верхнього менюE332: Роздільник не може бути частиною шляху менюE333: Шлях повинен вести до елемента менюE334: Меню не знайдено: %sE335: Для режиму %s меню не визначеноE336: Шлях повинен вести до підменюE337: Меню не знайдено — перевірте назвуE338: Вибачте, але в консолі немає діалогу вибору файлуE339: Зразок занадто довгийE33: Заміна зразків ще не використовуваласьE340: Рядок стає занадто довгимE341: Внутрішня помилка: lalloc(%ld, )E342: Забракло пам'яті!  (потрібно було %lu байтів)E343: Некоректний шлях: `**[число]' повинне бути наприкінці шляху або перед '%s'.E344: Не вдалося знайти каталог «%s» у cdpathE345: Не вдалося знайти файл «%s» у pathE346: У cdpath немає більше каталогу «%s»E347: У шляху пошуку більше немає файлів «%s»E348: Немає рядка на курсоріE349: Немає ідентифікатора над курсоромE34: Команд ще не булоE350: Не вдалося створити згортку методом 'foldmethod'E351: Не вдалося знищити згортку методом 'foldmethod'E352: Не вдалося знищити згортки поточним методом 'foldmethod'E353: У регістрі %s нічого немаєE354: Неправильна назва регістру: '%s'E355: Невідома опція: %sE356: Помилка get_varpE357: 'langmap': Для символу %s немає париE358: 'langmap': Зайві символи після `;': %sE359: Режим екрану не підтримуєтьсяE35: Зразків пошуку ще не булоE360: Не вдалося запустити оболонку з опцією -fE363: Зразок використовує більше, ніж 'maxmempattern', пам'ятіE364: Бібліотечний виклик до «%s()» не вдавсяE365: Не вдалося надрукувати файл PostScriptE367: Немає такої групи: «%s»E369: Некоректний елемент у %s%%[]E36: Місця не вистачитьE370: Не вдалося завантажити бібліотеку %sE371: Команду не знайденоE372: Забагато %%%c у рядку форматуE373: Неочікуваний `%%%c' у рядку форматуE374: Пропущено ] у рядку форматуE375: %%%c у рядку формату не підтримуєтьсяE376: Помилковий `%%%c' у префіксі рядку форматуE377: Помилковий `%%%c' у рядку форматуE378: 'errorformat' не містить зразокE379: Пропущена чи порожня назва каталогуE37: Не записано попередні зміниE37: Зміни не було записано (! щоб не зважати)E380: Дно стеку виправленьE381: Вершина стеку виправленьE382: Не можу записати, вказана опція 'buftype'E383: Неправильний зразок для пошуку: %sE384: Пошук дійшов до ПОЧАТКУ без збігів з %sE385: Пошук дійшов до КІНЦЯ без збігів з %sE386: Після `;' має бути `?' або `/'E387: Збіг у поточному рядкуE388: Визначення не знайденоE389: Зразок не знайденоE38: Відсутній аргументE390: Неправильний аргумент: %sE391: Немає такого синтаксичного кластера: %sE392: Немає такого синтаксичного кластера: %sE393: group[t]here тут неприйнятнийE394: Не знайдено елемент регіону для %sE395: Містить неприйнятні тут аргументиE397: Потрібна назва файлуE398: Пропущено `=': %sE399: Бракує аргументів: синтаксичний регіон %sE39: Очікується числоE400: Кластер не вказаноE401: Кінець зразку не знайдено: %sE402: Сміття після зразку: %sE403: Синтаксична синхронізація: зразок для продовження рядка вказано двічіE404: Неправильні аргументи: %sE405: Пропущено знак рівності: %sE406: Порожній аргумент: %sE407: %s тут не дозволеноE408: %s має бути першим рядком у списку containsE409: Невідома назва групи: %sE40: Не вдалося відкрити файл помилок %sE410: Неправильна підкоманда :syntax: %sE411: Групу підсвічування не знайдено: %sE412: Недостатньо аргументів: «:highlight link %s»E413: Забагато аргументів: «:highlight link %s»E414: Грума має settings, highlight link проігнорованоE415: Несподіваний знак рівності: %sE416: Пропущено знак рівності: %sE417: Пропущено аргумент: %sE418: Неправильне значення: %sE419: Невідомий колір текстуE41: Забракло пам'яті!E420: Невідомий колір фонуE421: Нерозпізнана назва або номер кольору: %sE422: Занадто довгий код терміналу: %sE423: Неправильний аргумент: %sE424: Використано забагато різних атрибутів кольоруE425: Це вже найперша відповідна міткаE426: Мітку не знайдено: %sE427: Лише одна відповідна міткаE428: Це вже остання відповідна міткаE429: Файл «%s» не існуєE42: Жодної помилкиE430: Шлях файлу міток скорочено до %s
E431: Помилка формату у файлі міток «%s»E432: Файл міток не впорядкований: %sE433: Немає файлу мітокE434: Не вдалося знайти зразок міткиE435: Не вдалося знайти мітку, тільки припущення!E436: Немає запису «%s» про можливості терміналуE437: Потрібна можливість терміналу «cm»E438: u_undo: неправильні номери рядківE439: Список скасування пошкодженоE43: Текст збігу пошкодженоE440: Відсутній рядок скасуванняE441: Немає вікна переглядуE442: Не вдалося одночасно розбити topleft і botrightE443: Не вдалося перемістити вікно, заважають іншіE444: Не вдалося закрити останнє вікноE445: У іншому вікні є зміниE446: Немає назви файлу над курсоромE447: Файл «%s» не знайдено у шляху пошукуE448: Не вдалося завантажити бібліотечну функцію %sE449: Отримано некоректний виразE44: Зіпсована програма регулярних виразівE455: Не вдалося записати вихідний файл PostScriptE456: Не вдалося знайти файл ресурсів PostScript «%s.ps»E456: Не вдалося знайти файл ресурсів PostScript «cidfont.ps»E456: Не вдалося знайти файл ресурсів PostScript «prolog.ps»E456: Не вдалося відкрити файл «%s»E457: Не вдалося прочитати файл ресурсів PostScript «%s»E459: Не вдалося перейти до попереднього каталогуE45: Встановлено опцію 'readonly' (! щоб не зважати)E460: Гілку ресурсів можна втратити (! щоб не зважати)E461: Неприпустима назва змінної: %sE462: Не вдалося підготувати «%s», щоб перечитатиE463: Не можна змінити захищений регіонE464: Неоднозначний вжиток команди користувачаE465: :winsize вимагає два числових аргументиE466: :winpos вимагає два числових аргументиE467: Користувацьке доповнення вимагає аргумент-функціюE468: Аргумент дозволений тільки для доповнення користувачаE469: Некоректний прапорець cscopequickfix %c для %cE46: Змінна тільки для читання: «%s»E470: Команду перерваноE471: Необхідно вказати аргументE472: Команда на вдаласьE473: Внутрішня помилкаE474: Некоректний аргументE475: Некоректний аргумент: %sE476: Некоректна командаE477: ! не дозволеноE478: Без паніки!E479: Жодного збігуE47: Помилка читання файлу помилокE480: Жодного збігу: %sE481: Не дозволено вказувати межіE482: Не вдалося створити файл %sE483: Не вдалося сформувати назву тимчасового файлуE484: Не вдалося відкрити файл %sE485: Не вдалося прочитати файл %sE486: Зразок не знайдено: %sE487: Аргумент має бути додатнийE488: Надлишкові символиE48: На дозволено у пісочниціE490: Згорток не знайденоE492: Це не команда редактораE493: Інтервал задано навиворітE494: Спробуйте w або w>>E495: Немає назви файлу автокоманди для заміни «<afile>»E496: Немає номера буфера автокоманди для заміни «<abuf>»E497: Немає назви збігу автокоманди для заміни «<amatch>»E498: Немає назви файлу :source для заміни «<sfile>»E499: Назва файлу для '%' чи '#' порожня, працює лише з «:p:h»E49: Некоректний розмір зсувуE500: Результат — порожній рядокE501: Кінець файлуE505: «%s» тільки для читання (! щоб не зважати)E505: %s тільки для читання (! щоб не зважати)E506: Не вдалося записати резервний файл (! щоб не зважати)E507: Помилка закриття резервного файлу (! щоб не зважати)E508: Не вдалося прочитати файл щоб створити резервну копію (! щоб не зважати)E509: Не вдалося створити резервну копію (! щоб не зважати)E50: Забагато \z(E510: Не вдалося зробити резервну копію (! щоб не зважати)E511: netbeans вже під'єднаноE512: Не вдалося закритиE513: Помилка запису, конвертація не вдалася (скиньте 'fenc')E513: Помилка запису, конвертація не вдалася у рядку %ld (скиньте 'fenc')E514: Помилка запису (скінчилось вільне місце?)E515: Жоден з буферів не був вивантаженийE516: Жоден з буферів не знищеноE517: Жоден з буферів не витертоE518: Невідома опціяE519: Опція не підтримуєтьсяE51: Забагато %s(E520: Не дозволено у modelineE521: Після = потрібно вказати числоE521: Потрібно вказати Number: &%s = '%s'E522: Не знайдено серед можливостей терміналівE523: Не дозволено тутE524: Бракує двокрапкиE525: Рядок порожнійE526: Після <%s> бракує числаE527: Бракує комиE528: Потрібно вказати значення 'E529: Не вдалося спорожнити 'term'E52: Немає пари \z(E530: Не вдалося змінити term в GUIE531: Застосуйте «:gui» для запуску GUIE533: Не вдалося використати розширений шрифтE534: Некоректний розширений шрифтE535: Недозволений символ після <%c>E536: Потрібна комаE537: 'commentstring' має бути порожньою чи містити %sE538: Миша не підтримуєтьсяE539: Недозволений символ <%s>E53: Немає пари %s%%(E540: Послідовність виразів не завершеноE541: Забагато елементівE542: Групи не збалансованоE543: Некоректна кодова сторінкаE544: Не знайдено файл розкладкиE545: Пропущено двокрапкуE546: Неправильний режимE547: Неправильний вигляд мишіE548: Потрібна цифраE549: Неправильний відсотокE54: Немає пари %s(E550: Пропущено двокрапкуE551: Некоректний компонентE552: очікується цифраE553: Немає більше елементівE554: Синтаксична помилка в %s{...}E555: Кінець стеку мітокE556: Вершина стеку мітокE557: Не вдалося відкрити файл можливостей терміналівE558: Немає інформації про терміналE559: Немає інформації про можливості терміналуE55: Немає пари %s)E560: Використання: cs[cope] %sE561: Невідомий тип пошуку cscopeE562: Використання: cstag <ідентиф-ор>E563: помилка statE563: stat(%s) помилка: %dE564: %s не є ні каталогом, ні базою даних cscopeE566: Не вдалося створити канали до cscopeE567: жодного з'єднання із cscopeE568: Повторна база даних cscope не доданаE570: Фатальна помилка в cs_manage_matchesE571: Вибачте, ця команда вимкнена, бібліотека Tcl не може бути завантажена.E572: Код виходу %dE573: Використано некоректний ідентифікатор сервера: %sE574: Невідомий тип регістру %dE579: Занадто багато вкладених :ifE580: :endif без :ifE581: :else без :ifE582: :elseif без :ifE583: Не одне :elseE584: :elseif після :elseE585: Забагато вкладених :while/:forE586: :continue без :while чи :forE587: :break без :while чи :forE588: :endfor без :forE588: :endwhile без :whileE589: Опції 'backupext' і 'patchmode' однаковіE590: Вікно перегляду вже існуєE591: 'winheight' не може бути меншим за 'winminheight'E592: 'winwidth' не може бути меншим за 'winminwidth'E593: Потрібно щонайменше %d рядківE594: Потрібно щонайменше %d стовпцівE595: Містить недруковні або розширені символиE596: Некоректний(і) шрифт(и)E597: Не вдалося вибрати набір шрифтівE598: Неправильний набір шрифтівE599: Значення 'imactivatekey' некоректнеE59: Недозволений символ після %s@E600: Бракує :endtryE601: Забагато вкладених :tryE602: :entry без :tryE603: :catch без :tryE604: :catch після :finallyE605: Виняткова ситуація не оброблена: %sE606: :finally без :tryE607: Не одне :finallyE608: Не можна викидати (:throw) винятки з префіксом 'Vim'E609: Помилка cscope: %sE60: Забагато складних %s{...}E612: Визначено забагато надписівE613: Невідомий шрифт принтера: %sE614: vim_SelFile: не вдалося повернутися в поточний каталогE615: vim_SelFile: не вдалося отримати поточний каталогE616: vim_SelFile: не вдалося отримати шрифт %sE617: Не можна змінити в GUI GTK+ 2E618: «%s» не є файлом ресурсів PostScriptE619: «%s» не є підтримуваним файлом ресурсів PostScriptE61: Вкладені %s*E620: Не вдалося перетворити до кодування друку «%s»E621: Неправильна версія файлу ресурсів «%s»E622: Не вдалося розділити процес для cscopeE623: Не вдалося створити процес cscopeE624: Не вдалося відкрити файл «%s»E625: Не вдалося відкрити базу даних cscope: %sE626: Не вдалося отримати інформацію з бази даних cscopeE62: Вкладені %s%cE630: %s(): запис до під’єднанняE631: %s(): збереження не вдалосяE63: Некоректно вжито \_E64: Після %s%c нічого немаєE655: Забагато символьних посилань (цикл?)E658: Втрачено зв'язок із NetBeans для буфера %ldE659: Не можна рекурсивно викликати PythonE65: Некоректне зворотне посиланняE661: Вибачте, немає допомоги '%s' для %sE662: Початок списку змінE663: Кінець списку змінE664: Список змін порожнійE665: Не вдалося запустити GUI, не знайдено шрифтE666: Компілятор не підтримується: %sE667: Не вдалося виконати fsyncE668: Неправильний режим доступу до файлу інформації про з'єднання з NetBenans: «%s»E669: Недруковний символ у назві групиE66: \z( тут не дозволеноE670: Мішанина кодувань файлу допомоги для мови %sE671: Не вдалося знайти вікно «%s»E672: Не вдалося відкрити вікно всередині програми MDIE673: Несумісні багатобайтове кодування й набір символів.E674: printmbcharset не може бути порожнім з багатобайтовим кодуванням.E675: Не зазначено шрифт для багатобайтового друку.E676: Немає відповідних автокомандE677: Не вдалося записати тимчасовий файлE678: Недозволений символ після %s%%[dxouU]E679: Рекурсивний цикл читання syncolor.vimE67: \z1 та ін. тут не дозволеноE680: <буфер=%d>: некоректний номер буфера E681: Буфер не завантаженоE682: Некоректний зразок для пошуку чи роздільникE683: Пропущено назву файлу чи некоректний шаблонE684: Індекс списку поза межами: %ldE685: Внутрішня помилка: %sE686: Аргумент у %s має бути спискомE687: Цілей менше, ніж елементів спискуE688: Цілей більше, ніж елементів спискуE689: Індексний доступ може бути тільки до списку чи словникаE68: Неправильний символ після \zE690: Пропущено «in» після :forE691: Список можна порівняти тільки зі спискомE692: Некоректна операція над спискомE694: Некоректна операція над функцієюE695: Функція не має індексаціїE696: Бракує коми у списку: %sE697: Немає кінцівки списку ']': %sE698: Змінна вкладена занадто глибоко щоб зробити її копіюE699: Забагато аргументівE69: Пропущено ] після %s%%[E700: Невідома функція: %sE701: Некоректний тип для len()E702: Помилка у функції порівняння sortE703: Funcref вжито як NumberE704: Назва змінної Funcref має починатися з великої літери: %sE705: Назва змінної співпадає з існуючою функцією: %sE707: Назва функції співпадає зі змінною: %sE708: [:] має бути останньоюE709: [:] вимагає списокE70: %s%%[] порожнійE710: Список має більше елементів, ніж цільE711: Список має недостатньо елементівE712: Аргумент у %s має бути списком чи словникомE713: Ключ словника не може бути порожнімE714: Потрібен списокE715: Потрібен словникE716: Немає такого ключа у словнику: %sE717: Запис у словнику вже існуєE718: Треба посилання на функціюE719: Не можна використати [:] зі словникомE71: Недозволений символ після %s%%E720: Бракує двокрапки у словнику: %sE721: Повторення ключа в словнику: «%s»E722: Бракує коми у словнику: %sE723: Немає кінцівки словника '}': %sE724: У змінній забагато вкладень щоб її показатиE725: Виклик dict-функції без словника: %sE726: Крок нульовийE727: Початок за кінцемE728: Dictionary вжито як NumberE729: Funcref вжито як StringE72: Помилка під час закриття файлу обмінуE730: List вжито як StringE731: Dictionary вжито як StringE732: Вжито :endfor із :whileE733: Вжито :endwhile із :forE734: Неправильний тип змінної для %s=E735: Словник можна порівняти тільки із словникомE736: Некоректна операція над словникомE737: Ключ вже існує: %sE738: Не можна перерахувати змінні у %sE739: Не вдалося створити каталог: %sE73: Стек міток порожнійE740: Забагато аргументів для функції %sE741: Значення захищене: %sE742: Не можна змінити значення %sE743: Змінна має забагато вкладень щоб бути за-/відкритою.E744: NetBeans не дозволяє змінювати захищені від запису файлиE745: List вжито як NumberE746: Назва функції не збігається з назвою файлу скрипту: %sE747: Не вдалося змінити каталог, буфер має зміни (! щоб не зважати)E748: Регістри перед цим не вживалисьE749: Порожній буферE74: Занадто складна командаE750: Спочатку зробіть «:profile start {файл}»E751: Вихідний файл не повинен мати назву регіонуE752: Немає попередньої заміниE753: Не знайдено: %sE754: Підтримується тільки до восьми регіонівE755: Некоректний регіон у %sE756: Перевірка орфографії не дозволенаE757: Не схоже на файл орфографіїE758: Обірваний файл орфографіїE75: Задовге ім'яE760: Немає кількості слів у %sE761: Помилка формату у файлі афіксів FOL, LOW чи UPPE762: Символ у FOL, LOW чи UPP поза межамиE763: Символи у слові відрізняються у файлах орфографіїE764: Опція '%s' не встановленаE765: 'spellfile' не містить %ld елементівE766: Недостатньо аргументів для printf()E767: Забагато аргументів для printf()E768: Файл обміну існує: %s (:silent! переважує)E769: Бракує ] після %s[E76: Забагато '['E770: Недозволена секція у файлі орфографіїE771: Файл орфографії старий, треба поновитиE772: Файл орфографії призначений для більш нової версії VimE773: Циклічні символьні посилання «%s»E774: 'operatorfunc' порожняE775: Можливість eval недоступнаE776: Немає списку місцьE777: Очікується String чи ListE778: Не схоже на файл .sug: %sE779: Застарілий файл .sug, треба поновити: %sE77: Забагато назв файлівE780: Файл .sug для більш нової версії Vim: %sE781: Файл .sug не відповідає файлу .spl: %sE782: Помилка читання файлу .sug: %sE783: Повторено символ у елементі MAPE784: Не можна закрити останню вкладкуE785: complete() можна вживати тільки в режимі вставкиE786: Інтервал не дозволеноE787: Буфер несподівано змінивсяE788: Зараз не можна редагувати інший буферE789: Пропущено ']': %sE78: Невідома поміткаE790: Не можна виконати undojoin після undoE791: Елемент розкладки порожнійE792: Порожня назва менюE793: Немає більше модифіковних буферів в режимі порівнянняE794: Не можна встановити змінну у пісочниці: «%s»E795: Не можна знищити змінну %sE797: Автокоманда SpellFileMissing знищила буферE798: ID зарезервовано для «:match»: %ldE799: Неправильний ID: %ld (має бути не менший, ніж 1)E79: Не вдалося розкрити шаблонE800: Не можна використати арабську мову: Не ввімкнено під час компіляції
E801: ID вже зайнято: %ldE802: Неправильний ID: %ld (має бути не менший, ніж 1)E803: ID не знайдено: %ldE804: Не можна виконати '%' над FloatE805: Float вжито як NumberE806: Float вжито як StringE807: Очікується аргумент Float для printf()E808: Треба вказати Number чи FloatE809: #< не доступна без можливості +evalE80: Помилка під час записуE810: Не можна читати чи записувати тимчасові файлиE811: Зараз не можна змінювати інформацію буфераE812: Автокоманди змінили буфер чи його назвуE813: Не вдалося закрити вікно autocmdE814: Не вдалося закрити вікно, залишилося б тільки вікно autocmdE815: Вибачте, ця команда вимкнена, бібліотеки MzScheme не можуть бути завантажені.E816: Не вдалося прочитати результат patchE817: Неправильне використання порядку байтів Blowfish (BE/LE)E818: Не пройшла перевірка sha256E819: Не пройшла перевірка BlowfishE81: <SID> використовується не в контексті скриптуE820: sizeof(uint32_t) != 4E821: Файл зашифровано невідомим методомE822: Не вдалося відкрити файл для читання: %sE823: Не файл історії: %sE824: Несумісний файл історії: %sE825: Файл історії пошкоджено (%s): %sE826: Не вдалося розшифрувати файл історії: %sE827: Файл історії зашифрований: %sE828: Не вдалося відкрити файл історії для запису: %sE829: Помилка запису у файлі історії: %sE82: Немає можливості розмістити хоч один буфер, завершення роботи...E830: Зміну %ld не знайдено в історіїE831: Викликано bf_key_init() з порожнім паролемE832: Не зашифрований файл має зашифрований файл історії: %sE833: %s зашифровано, а ця версія Vim не підтримує шифруванняE834: Конфліктує із значенням 'listchars'E835: Конфліктує із значенням 'fillchars'E836: Python: Не можна використати :py і :py3 в одному сеансіE837: Python: Не можна використати :py і :py3 в одному сеансіE838: netbeans не підтримується з цим GUIE839: Функція доповнення змінила вікноE83: Немає можливості розмістити буфер, буде використано інший...E840: Функція доповнення знищила текстE841: Зарезервована назва, не можна використати для команди користувачаE842: немає номера рядка, щоб використати з «<sfile>»E843: Помилка поновлення шифрування файлу обмінуE844: Некоректне значення ccharE845: Недостатньо пам’яті, список слів буде неповнимE846: Код ключа не встановленоE847: Забагато синтаксичних включеньE848: Забагато синтаксичних кластерівE849: Забагато груп підсвічування і синтаксисуE84: Жоден буфер не зміненоE850: Неправильна назва регіструE851: Не вдалося створити новий процес для GUIE852: Дочірній процес не зміг запустити GUIE853: Назва аргументу повторюється: %sE854: шлях занадто довгий для доповненняE855: Автокоманди призвели до скасування командиE858: Eval не повернув дійсний об’єкт pythonE859: Не вдалося перетворити об’єкт python у значення vimE85: У списку немає буферівE862: Тут не можна використати g:E864: після \%#= може бути тільки 0, 1, or 2. Буде використано автоматичний механізм E865: (NFA) Зарано трапився кінець регулярного виразуE866: (NFA regexp) Не на місці %cE867: (NFA) Невідомий оператор '\%%%c'E867: (NFA) Невідомий оператор '\z%c'E868: Не вдалося побудувати NFA з класом еквівалентності!E869: (NFA) Невідомий оператор '\@%c'E86: Буфера %ld немаєE870: (NFA regexp) Не вдалося прочитати межі повторенняE871: (NFA regexp) Мульти не може бути за мульти!E872: (NFA regexp) Забагато '('E873: (NFA regexp) помилка належного припиненняE874: (NFA) Стек порожній!E875: (NFA regexp) (Під час перетворення з постфікс у NFA) залишилося забагато станів у стекуE876: (NFA regexp) Недостатньо пам’яті, щоб зберегти весь NFA E877: (NFA regexp) Неправильний клас символу: %ldE878: (NFA) Не вдалося отримати пам’ять для обходу гілок!E879: (NFA regexp) Забагато \z(E87: Це вже останній буферE881: Кількість рядків несподівано зміниласяE882: Помилка у функції порівняння uniqE883: шаблон пошуку і регістровий вираз не можуть містити два чи більше рядківE884: Назва функції не може мати двокрапку: %sE885: Неможливо змінити знак %sE886: Не вдалося перейменувати файл viminfo у %s!E887: Вибачте, ця команда вимкнена, місцева бібліотека Python не може бути завантажена.E888: (NFA regexp) не можна повторити %sE88: Це вже найперший буферE890: надлишкові символи після ']': %s]%sE891: Funcref вжито як FloatE892: String вжито як FloatE893: List вжито як FloatE894: Dictionary вжито як FloatE895: Вибачте, ця команда вимкнена, бібліотеки MzScheme не можуть бути завантажені.E898: socket() у channel_open()E89: Буфер %ld має зміни (! щоб не зважати)E901: gethostbyname() у channel_open()E902: Не вдалося з'єднатися з портомE903: отримано команду з нетекстовим аргументомE904: останній аргумент у виразі/виклику має бути числомE904: третій аргумент у виклику має бути спискомE905: отримано невідому команду: %sE906: не відкритий каналE907: Спеціальне значення вжито як FloatE908: неправильне значення вжито як StringE909: Не можна індексувати спеціальну зміннуE90: Не можу вивантажити останній буферE910: Job вжито як NumberE911: Job вжито як FloatE912: не можна використати ch_evalexpr()/ch_sendexpr() з raw чи nl каналомE913: Channel вжито як NumberE914: Channel вжито як FloatE915: буфер in_io потребує встановленого in_buf чи in_nameE916: некоректне завданняE917: Не можна використати зворотній виклик у %s()E918: буфер має бути завантажений: %sE919: Теку не знайдено: '%s': «%s»E91: Опція 'shell' порожняE920: файл _io потребує встановленого _nameE921: Некоректний аргумент зворотного викликуE922: очікується dictE923: Другий аргумент function() має бути списком чи словникомE924: Поточне вікно було закритоE925: Поточний quickfix змінивсяE926: Поточний список місць змінивсяE927: Неправильна дія: '%s'E928: Потрібно StringE929: Забагато тимчасових файлів viminfo, як %s!E92: Буфер %ld не знайденоE930: Не можна використати :redir всередині execute()E931: Неможливо зареєструвати буферE932: Функція замикання не повинна бути на верхньому рівні: %sE933: Функцію видалено: %sE934: Не можна перейти до буфера, який не має назвиE935: неправильний номер під-збігу: %dE936: Не вдалося знищити цю групуE937: Спроба видалити буфер, що використовуєтьсяE938: Повторення ключа в JSON: «%s»E939: Потрібна додатна кількістьE93: Знайдено кілька збігів з %sE940: Неможливо заблокувати чи розблокувати змінну %sE941: сервер вже запущеноE942: можливість +clientserver відсутняE943: Таблицю команд потрібно поновити, запустіть 'make cmdidxs'E944: Зворотній діапазон у класі символівE945: Завеликий діапазон у класі символівE94: Не знайдено буфер, схожий на %sE95: Буфер з такою назвою вже існуєE96: Не можна порівнювати понад %ld буфери(ів)E97: Не вдалося створити порівнянняE98: Не вдалося прочитати результат diffE99: Цей буфер не в режимі порівнянняПОМИЛКА: Редагувати ФайлРедагувати файл у новому вікніРедагувати за допомогою &VimРедагувати у (&m)різних VimРедагувати у вже запущеному Vim - Редагувати у одному &VimРедагує вибрані файли з допомогою VimКодування:Кінець функціїКінець виконуваного файлуВкажіть ключ шифру: Введіть номер файлу обміну, котрий використати, (0 для виходу):Повторіть ключ: Режим налагодження.  Щоб продовжити введіть «cont».Режим Ex. Для повернення до нормального режиму виконайте «visual»ПомилкаПомилка, перерваноПомилка створення процесу, перевірте чи є gvim у шляху пошуку!Виявлено помилку під час виконання %s:Файл помилокОцінка споживання пам'яті: %d байтВинятокСпіймано виняткову ситуацію: %sВиняток скинуто: %sВиняток закінчено: %sВиняткова ситуація: %sВиконується %sТреба кількість MAP у %s у рядку %dТреба кількість REP(SAL) у %s у рядку %dТреба Y чи N у %s у рядку %d: %sвиразиЗовнішні під-збіги:
FLAG після використання прапорців у %s у рядку %d: %sНе вдалося встановити обробник шляху: sys.path_hooks не список
Вам слід вчинити так:
- додайте vim.path_hook до sys.path_hooks
- додайте vim.VIM_SPECIAL_PATH до sys.path
Не вдалося встановити шлях: sys.path не список
Вас слід додати vim.VIM_SPECIAL_PATH до sys.pathФайл «%s» не існуєВміст файлу змінився, не можна використати інформацію про історіюФайл «%s» дозволено тільки читати.
Проте, можливо, його можна записати.
Хочете спробувати?Файл збереженоФайлиФільтрЗнайти і замінити ('\\' щоб знайти '\')&N:Знайти даліНаступнеЗнайти рядок ('\\' щоб знайти '\')Знайти:Закінчено читання файлу історії %sПерше повторення слова у %s у рядку %d: %sПрапорець не є числом у %s у рядку %d: %sШрифт '%s' не є моношириннимШирина шрифту%ld не більша удвічі за ширину шрифту0Ширина шрифту0: %ldШрифт0: %sШирина шрифту1: %ldШрифт1: %sШрифт:Для опції %sСміття після аргументу опціїВітання, користувачу Vim!Допоможіть сиротам з Уганди!Трапився кінець параграфаПомилка вводу/виводуПропущено %d слів(~) із не-ASCII символами у %sПроігноровано %d слів із не-ASCII символамиІгнорується довгий рядок у файлі з позначкамиНедозволена назва файлуНеправильний прапорець у %s у рядку %d: %sНеправильна назва регіструНедозволений символ на початку рядкавведені рядкиМетоди введенняПерерваноПерервано: ПерерваноНеправильний аргумент уНекоректна специфікація шрифтуНекоректний номер регіону у %s у рядку %d: %sНекоректне значення FLAG у %s у рядку %d: %sКлючі не однакові!Знищити з'єднанняСкомпоновано: Потрібен список чи числоНе вдалося завантажити бібліотеку LuaЗважати на регістрЛише повне словоПовідомленняУкраїнізація: Анатолій Сахнік <sakhnik@gmail.com>Пропущено '>'Пропущено рядок FOL/LOW/UPP у %sПропущено рядок SOFO%s у %sЗмінив Назва:Потрібно %s версії %ld
Потрібна Amigados 2.04 або пізніша
Для «%s» потрібен ключ: NetBeans не дозволяє записувати у незмінені буфериНова вкладкаНіДля буфера не визначено елементів синтаксисуСкорочення не знайденоНе визначено жодної точки зупинкиНемає дисплеюНемає дисплею: Відіслати вираз не вдалося.
НічогоЖодного включеного файлуЗаміни не знайденоНе встановлено жодної поміткиНемає над курсором, пошук триваєНемає відповідних автокомандЖодного старого файлуНемає файлу обмінуНічого друкуватиСкасування буде неможливе, все одно продовжитиНе знайдено команд користувачаНемаєНедостатньо пам’яті, щоб встановити посилання, збір сміття скасовано!Файл історії прочитано не буде, власник інший: %sНемає нічого скасовуватиКількість слів після згортання звуків: %ldГараздВідкрити файлВідкрити вкладку...Відкрити вкладку...Не вдалося відкрити дисплей XСплив час очікування відкриття дисплею ХНа відкриття дисплею X пішло %ld мілісекундПочатковий файл «%s»Переписати існуючий файл «%s»?Сторінка %dЧасткові записи заборонені для буферів NetBeansЛаткаШлях занадто довгий!Шлях:Зразок знайдено у кожному рядку: %sЗразок не знайденоЗразок не знайдено: %sВиконується згортання звуків...Натисніть ENTER або введіть команду для продовженняЗавдання друку відіслано.Надруковано: %sДрукується '%s'Друк перерваноДрукується сторінка %d (%d%%)Запит за зразкомЗапитанняЧитається файл афіксів %s ...Перечитується файл орфографії...Зчитується словниковий файл %s ...Читається з stdin...Читається файл орфографії «%s»Читається файл історії: %sЗчитується файл viminfo: «%s»%s%s%sЧитається файл слів %s ...Відновлення закінчено. Вміст буфера співпадає зі вмістом файлу.Відновлення закінчено, перевірте чи все гаразд.Перезапустити усі з'єднанняЗамінити&A:Замінити усіЗамінити усіЗамінити на:Ви працюєте в режимі сумісному з ViБез режимів, текст що набрано вставляєтьсяЗберегти якЗапам'ятати файлЗберегти переадресований вивідЗберегти сеансЗберегти налаштуванняЗберегти виглядЗберегти зміни в «%s»?Сканується словник: %sПошук у включеному файлі: %sПошук серед міток.Пошук у: %sScrollbar Widget: Не вдалося визначити розмір скороченої картинки.шукані рядкиПошук «%s»Пошук «%s» в «%s»Шукається у включеному файлі %sШукається у файлі міток %sДив. «:help E312» для уточнення.Див. «:help W11» для уточнення.Див. «:help W12» для уточнення.Див. «:help W16» для уточнення.Вибрати каталогВибрано %s%ld з %ld рядків; %lld з %lld слів; %lld з %lld байтівВибрано %s%ld з %ld рядків; %lld з %lld слів; %lld of %lld символів; %lld з %lld байтівВиділенняВідсилається на принтер...Показати з'єднанняПоказати розмір у пунктахПоказати це повідомленняПозначки для %s:Розмір:Файл історії не записується, нічого повертатиВибачте, файл допомоги «%s» не знайденоПробачте, немає пропозиційПробачте, тільки %ld пропозиційВибачте, ця команда вимкнена, бібліотека Perl не може бути завантажена.Прочитати скрипт VimПідтримайте розробку редактора Vim!Розмір стеку збільшуєтьсяСтиль:Заміна Файл обміну «Файл обміну «%s» існує, перезаписати?Файл обміну вже існує!Файл обміну зашифрований: «%s»Знайдено файли обміну:Перемикаємося до пошуку з поверненням для шаблона: Вкладка %dВідірвати це менюДисплей Х не пройшов перевіркуДякуємо за вибір VimФайл було створено на Єдиний збігЦя версія Vim не була скомпільована з підтримкою порівняння.Ця команда cscope не вміє ділити вікно.
Забагато аргументів у «+команда», «-c команда» або «--cmd команда»Забагато складних прапорцівЗабагато аргументівЗабагато відкладених префіксівЗабагато відкладених префіксів і/або складних прапорцівЗабагато регіонів у %s у рядку %d: %sВгоріПовна кількість слів: %dЗайвий текст у %s у рядку %d: %sУведіть  :qa!  і натисніть <Enter>, щоб відкинути всі зміни і вийти з VimНаберіть число й <Enter> (порожнє скасовує): Наберіть число й <Enter> чи клацніть мишкою (порожнє скасовує): Не вдалося прочитати блок 0 з Не вдалося зареєструвати назву сервера командНевідомоНевідомий аргумент опціїНерозпізнані прапорці у %s у рядку %d: %sНерозпізнаний чи повторний елемент у %s у рядку %d: %sНеназванийВгоруЗнайдіть Vim 3.0
Використано CUT_BUFFER0 замість порожнього виділенняДля текстового файлу використовується ключ шифру з файлу обміну.
Використовується файл обміну «%s»VIM — УВАГАVIM - Знайти й замінити...VIM - Пошук...VIM - Покращений ViПомилка VIMVIM: Не вдалося відкрити вікно!
Файл VIMRUN.EXE не знайдено у шляху пошуку.
Зовнішні команди не будуть призупинені після виконання.
Гляньте  :help win32-vimrun щоб отримати подробиці.Vim - Вибір шрифтуVim E458: Немає вільних комірок у палітрі, деякі кольори можуть бути неправильніЗастереження VimДіалог VimПомилка VimПомилка Vim: ~aVim завершує роботу з %d
Vim — це відкрита й вільно розповсюджувана програмаVim: Виявлено подію %s
Vim: Помилка читання вводу, робота завершується...
Vim: Помилка: Не вдалося запустити gvim для NetBeans
Vim: Помилка: Ця версія Vim не працює у терміналі Cygwin
Vim: Несподівано знищилося головне вікно
Vim: Читається з stdin...
Vim: Отримав запит «die» від менеджера сесій
Vim: Застереження: Уведення не з терміналу
Vim: Застереження: Вивід не у термінал
W10: Застереження: Змінюється файл призначений лише для читанняW11: Застереження: Файл «%s» змінився після початку редагуванняW12: Застереження: Файл «%s» змінився, але й буфер у Vim такожW13: Застереження: Файл «%s» було створено після початку редагуванняW14: Обережно: Список назв файлів переповненоW15: Застереження: Неправильний роздільник рядків, можливо, бракує ^MW16: Застереження: Режим файлу «%s» змінився після початку редагуванняW17: Для арабської мови потрібне UTF-8, виконайте ':set encoding=utf-8'W18: Некоректний символ у назві групиW19: Знищується автогрупа все ще у вжиткуW20: Потрібна версія python 2.x не підтримується, ігнорується файл: %sW21: Потрібна версія python 3.x не підтримується, ігнорується файл: %sW22: Трапився текст після :endfunction: %sЗАСТЕРЕЖЕННЯ: Файл змінився з часу останнього читання!!!ЗастереженняЗастереження: Не вдалося знайти список слів «%s.%s.spl» чи «%s.ascii.spl»Застереження: Не вдалося знайти список слів «%s_%s.spl» чи «%s_ascii.spl»Обережно: Несподівано опинилися у іншому буфері (перевірте автокоманди)Увага: Використовується слабкий метод шифрування; див. :help 'cm'Застереження: зазначено обидва `складні слова' і NOBREAKЗастереження: регіон %s не підтримуєтьсяЗастереження: Термінал не підтримує кольориПри відкритті файлу "Не можна перезаписати з файлу скасувань, не можна прочитати: %sНе можна перезаписати, це не файл історії: %sПозиція вікна: X %d, Y %dСлово '%.*s' додано до %sСлово '%.*s' знищено з %sСлово з іншого рядкаЗаписати частину файлу?Записується файл орфографії %s ...Записується файл припущень %s ...Записується файл історії: %sЗаписується файл viminfo «%s»Неправильне значення CHECKCOMPOUNDPATTERN у %s у рядку %d: %sНеправильне значення COMPOUNDMIN у %s у рядку %d: %sНеправильне значення COMPOUNDRULES у %s у рядку %d: %sНеправильне значення COMPOUNDSYLMAX у %s у рядку %d: %sНеправильне значення COMPOUNDWORDMAX у %s у рядку %d: %sXSMP спостереження за з'єднанням з ICE не вдалосяXSMP не вдалося SmcOpenConnection: %sXSMP обробляється запит 'збережи себе'XSMP втратив з'єднання ICEXSMP відкривається з'єднанняТАКТак[ПОМИЛКА КОНВЕРТАЦІЇ у рядку %ld][Бракує CR][Знищено][Пристрій][Файл завеликий][Допомога][НЕКОРЕКТНИЙ БАЙТ у рядку %ld][Неповний останній рядок][Список місць][НЕ конвертовано][Новий каталог][Новий файл][Новий файл][Новий][Без назви][Зміни не записано]
[Не редаговано][Відмовлено][Перегляд][Список виправлень][ПОМИЛКА ЧИТАННЯ][RO][Помилки читання][З нуля][виклики] усього re/malloc() - %lu, усього free() - %lu

[спец. символьний][конвертовано][зашифровано][формат dos][dos][канал/гніздо][канал][файл ..]       редагувати вказані файли[Розбито довгі рядки][формат mac][mac][noeol][лише читати][гніздо][формат unix][unix]СкасуватиЗакритиГараздВідкритиЗберегтиаргумент add()післяі запустити diff з оригіналом щоб перевірити зміни)спроба призначити послідовність розміром %d у розширений зріз розміру %dспроба призначити послідовність розміру більше, ніж %d, у розширений зрізспроба звернення до знищеного буфераспроба звернення до знищеної вкладкиспроба звернутися до знищеного вікнаАвтоматичне знищення автокоманди: %s <буфер=%d>автокоманда %sпередЗапам'ятав блок із %ld рядківЗапам'ятав блок з одного рядкабуфер непридатний автор: Bram Moolenaar та ін.Виклики до inputrestore() частіше, ніж до inputsave()викликається %sне вдалося знищити атрибути OutputObjectне вдалося прочитати вивід 'charconvert'не можу змінити режим консолі ?!
не вдалося створити команду вікна/буфера: об'єкт знищуєтьсянеможливо знищити рядокне вдалося знищити атрибути vim.Dictionaryне вдалося знищити атрибути vim.Listне вдалося дістати рядокне вдалося вставити рядокНе вдалося вставити/додати рядокне можна змінити фіксований словникне можна змінити фіксований списокне вдалося відкрити Не вдалося зареєструвати подію: буфер/вікно уже знищуєтьсяНе вдалося зареєструвати команду події: посилання на буфер/вікно не знайденонеможливо замінити рядокне вдалося зберегти інформацію для скасуванняне можна встановити атрибут %sне вдалося встановити рядкине вдалося запам'ятати; все одно знищити?зміназмінcloseкоманда: %sпродовження в %sНе вдалося виконати «%s»не вдалося відкрити буферcs_create_connection: помилка під час виконанняcs_create_connection: помилка setpgidcs_create_connection: fdopen для fr_fp не вдавсяcs_create_connection: fdopen для to_fp не вдавсяКоманди cscope:
З'єднання з cscope %s закінченокурсор за межами буферапочатково 'блок 1 знищено?словник заблокованоне перемкнувся до вказаної вкладкине перемкнувся до вказаного вікнаdlerror = «%s»Не виходьте з редактора, доки файл не записано!порожні ключі не дозволенізмінна оточенняне вдалося перетворити значення Scheme у Vimобробник помилкиочікувався 3-кортеж як результат imp.find_module(), але отримано %sочікувався 3-кортеж як результат imp.find_module(), але отримано %dочікувався екземпляр bytes() чи str(), але отримано %sочікувався int() чи щось, що може бути вміщене int(), але отримано %sочікувався int(), long() чи щось, що може бути вміщене long(), але отримано %sочікувалась послідовність розміром 2, але отримано послідовність розміру %dочікувався екземпляр str() чи unicode(), але отримано %sочікувався об’єкт vim.Buffer, але отримано %sочікувався об’єкт vim.TabPage, але отримано %sочікувався об’єкт vim.Window, але отримано %sобробку виразів вимкнено під час компіляціїаргумент extend()не вдалося додати елемент до спискуне вдалося додати ключ '%s' до словникане вдалося змінити директоріюне вдалося знайти вікно у поточній вкладціне вдалося перейменувати буферне вдалося виконати функцію %sне вдалося виконати кодне вдалося перемкнутися до буфера %dрядків знищенофайл
файл / контекст / рядок
аргумент filter()закінчено виконання %sкадр стеку на найвищому рівні: %dкадр стеку нульовийЗвільнено рядків: %ldфункції %s не існуєпомилка gvimext.dllхеш-таблиця змінилася під час перебираннядопомогаприхована опціяу шляху пошуку ---
індекс має бути цілий чи зріз, не %sаргумент insert()внутрішня помилка: передано посилання NULLвнутрішня помилка: не вдалося додати елемент до спискувнутрішня помилка: не вдалося отримати елемент списку vim %dвнутрішня помилка: imp.find_module повернула кортеж з NULLвнутрішня помилка: неправильний тип значеннявнутрішня помилка: немає елемента списку vim %dвнутрішня помилка: бракує елементів у спискувнутрішня помилка: невідомий тип опціїнеправильний атрибут: %sнеправильна назва буферанекоректний виразнеправильна назва позначкиє пристроєм (вимкнено опцією 'opendevice')каталогне файлНе придатний для записулише для читання (! щоб не зважати)перервано з клавіатурирядок %4ld:рядок %6d, слово %6d - %sрядок %ldрядок %ld з %ld --%d%%-- колонка рядок %ld: %sрядок %ld: не вдалося виконати «%s»рядок %ld: виконується «%s»знищено рядокномер рядка за межами файлуномер рядка за межами файлусписковий конструктор не приймає іменовані аргументиіндекс списку за межамисписок заблокованоlogoffаргумент map()назвою мітки має бути один символпомітку не вказанозбіг %dзбіг %d з %dзбіг у файлімаксимальний mch_get_shellsize: не консоль??
меню  Edit->Global Settings->Toggle Insert Mode    меню  Edit->Global Settings->Toggle Vi Compatible  меню  Help->Orphans       подальша інформація      меню  Допомога->Спонсор/Реєстрація  подробиці      мінімальний modelineдодано рядокрядків доданоnetbeans не підтримується з цим GUI
запущено нову оболонку
ніЖодного з'єднання з cscope
немає конкретного збігутакої вкладки немаєтакого вікна немаєбез синхронізаціїне дозволено у пісочниці Vimне знайдено не знайдено у '%s': «%s»ще не реалізованономер  зміни    час             збереженочисло має бути не менше, ніж нульчисло має бути більше, ніж нульpe_line_count дорівнює 0команди перед vimrcне вдалося перемкнути вікнаатрибут лише для читання: буферйде записаргумент remove()Замінити на %s (y/n/a/q/l/^E/^Y)?аргумент reverse()рядок %d колонка %dПошук дійшов до КІНЦЯ, продовжується з ПОЧАТКУПошук дійшов до ПОЧАТКУ, продовжується з КІНЦЯоболонку оболонка повернула %dshutdownкрок зрізу не може бути нульаргумент sort()виконується «%s»stack_idx має бути рівним 0більше ніж один рядоксинхронізується по коментарях стилю Спочинається синхронізація за синтаксис ігнорувати регістрсинтаксис дотримуватися регіструмаскування синтаксису вимкмаскування синтаксису увімксинтаксис iskeyword синтаксис початковосинтаксис не перевірятисинтаксис перевіряти всюдимітка %d з %d%sназва міткина %s з %s:help cp-default<Enter>   інформація про сумісність:help iccf<Enter>         подробиці                :help register<Enter>     подальша інформація      :help sponsor<Enter>      подальша інформація      :help version8<Enter>     інформація про версію    :help<Enter> або <F1>     перегляд допомоги        :q<Enter>                 вихід з Vim              :set nocp<Enter>          режим несумісний з Vi    не вдалося перетворити %s у словник vimне вдалося перетворити %s у список vimне вдалося перетворити %s у структуру vimне вдалося отримати значення опціїне вдалося скинути глобальну опцію %sне вдалося скинути опцію %s, яка не має глобального значенняаргумент unique()Невідомоневідомий прапорець: невідома опціяНевідома vimOptionбезіменної функції %s не існуєзначення завелике, щоб вміститися у тип C intзначення замале, щоб вміститися у тип C intверсія помилка Vimнекоректний номер вікнавікно непридатнез (класичним) GUI.з GUI Carbon.з GUI Cocoa.з GUI GTK2.з GUI GTK2-GNOME.з GUI GTK3.з GUI.з GUI Photon.з GUI X11-Athena.з GUI X11-Motif.з GUI X11-neXtaw.без GUI.Запис до пристрою заборонено опцією 'opendevice'PK�j�Zqq���5�5 vim80/lang/menu_es_es.latin1.vimnu�[���" Menu Translations:	Espa�ol
" Previous translator:	Alejandro L�pez-Valencia <dradul@users.sourceforge.net>
" Last translator:	Omar Campagne Polaino <ocampagne@gmail.com>
" Version:		7.2.245
" Last Change:		2012 May 01
"

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in latin1, but they work for cp1252,
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
  scriptencoding latin1
endif


" Help menu
menutrans &Help			Ay&uda
menutrans &Overview<Tab><F1>	Tabla\ de\ &contenidos<Tab><F1>
menutrans &User\ Manual		&Manual\ del\ usuario
menutrans &How-to\ links	&Enlaces\ a\ �C�mo\ hago\.\.\.?
menutrans &Find\.\.\.		&Buscar\ en\ la\ ayuda
menutrans &Credits		&Reconocimientos
menutrans O&rphans		Ayude\ a\ los\ ni�os\ &hu�rfanos
menutrans Co&pying		&T�rminos\ de\ Licencia
menutrans Sponsor/Register	Benefactor/Reg�strese
menutrans &Version		&Versi�n\ e\ \informaci�n\ de\ configuraci�n
menutrans &About		&Acerca\ de\ Vim

" File menu
menutrans &File				&Archivo
menutrans &Open\.\.\.<Tab>:e		&Abrir\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	A&brir\ en\ otra\ ventana\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		&Nuevo<Tab>:enew
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Abrir\ pes&ta�a\.\.\.<Tab>:tabnew
menutrans &Close<Tab>:close		&Cerrar<Tab>:close
menutrans &Save<Tab>:w			&Guardar<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Guardar\ &como\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	&Mostrar\ diferencias\ con\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Mostrar\ &parcheado\ por\.\.\.
menutrans &Print			&Imprimir
menutrans Sa&ve-Exit<Tab>:wqa		Gua&rdar\ y\ salir<Tab>:wqa
menutrans E&xit<Tab>:qa			&Salir<Tab>:qa

" Edit menu
menutrans &Edit				&Editar
menutrans &Undo<Tab>u			&Deshacer<Tab>u
menutrans &Redo<Tab>^R			&Rehacer<Tab>^R
menutrans Rep&eat<Tab>\.		Repe&tir<Tab>\.
menutrans Cu&t<Tab>"+x			Cor&tar<Tab>"+x
menutrans &Copy<Tab>"+y			&Copiar<Tab>"+y
menutrans &Paste<Tab>"+gP		&Pegar<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Poner\ &antes<Tab>[p
menutrans Put\ &After<Tab>]p		Poner\ &despu�s<Tab>]p
if has("win32") || has("win16")
  menutrans &Delete<Tab>x		S&uprimir<Tab>x
endif
menutrans &Select\ all<Tab>ggVG		&Seleccionar\ todo<Tab>ggVG
menutrans &Find\.\.\.			&Buscar\.\.\.
menutrans &Find<Tab>/			&Buscar<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.     Buscar\ y\ R&eemplazar\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	Buscar\ y\ R&eemplazar<Tab>:%s
menutrans Find\ and\ Rep&lace		Buscar\ y\ R&eemplazar
menutrans Find\ and\ Rep&lace<Tab>:s	Buscar\ y\ R&eemplazar<Tab>:s
menutrans Settings\ &Window		&Ventana\ de\ opciones
menutrans Startup\ &Settings		Opciones\ de\ arranque	 

" Edit/Global Settings
menutrans &Global\ Settings		Opciones\ &globales

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Activar/Desactivar\ &resaltado\ de\ sintaxis<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Activar/Desactivar\ &ignorar\ may�sculas\ y\ min�sculas<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Activar/Desactivar\ &mostrar\ coincidencias<Tab>:set\ sm!

menutrans &Context\ lines		L�neas\ de\ &contexto

menutrans &Virtual\ Edit		Edici�n\ &virtual
menutrans Never				Nunca
menutrans Block\ Selection		Selecci�n\ de\ bloque
menutrans Insert\ mode			Modo\ de\ inserci�n
menutrans Block\ and\ Insert		Bloque\ e\ inserci�n
menutrans Always			Siempre

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	Activar/Desactivar\ modo\ de\ in&serci�n<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Activar/Desactivar\ compatiblidad\ con\ Vi<Tab>:set\ cp!

menutrans Search\ &Path\.\.\.		Ruta\ de\ &b�squeda\.\.\.

menutrans Ta&g\ Files\.\.\.		Ficheros\ de\ &etiquetas\.\.\.

" GUI options
menutrans Toggle\ &Toolbar		Ocultar/Mostrar\ barra\ de\ &herramientas
menutrans Toggle\ &Bottom\ Scrollbar	Ocultar/Mostrar\ barra\ de\ desplazamiento\ &inferior
menutrans Toggle\ &Left\ Scrollbar	Ocultar/Mostrar\ barra\ de\ desplazamiento\ i&zquierda
menutrans Toggle\ &Right\ Scrollbar	Ocultar/Mostrar\ barra\ de\ desplazamiento\ &derecha

let g:menutrans_path_dialog = "Introduzca la ruta de b�squeda para los archivos.\nSepare los nombres de los directorios con una coma."
let g:menutrans_tags_dialog = "Introduzca los nombres de los archivos de tags.\nSepare los nombres con una coma."

" Edit/File Settings
menutrans F&ile\ Settings		Opciones\ del\ &archivo

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Activar/Desactivar\ &numeraci�n\ de\ l�neas<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Activar/Desactivar\ modo\ de\ lista<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Activar/Desactivar\ &quiebre\ de\ l�neas<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Activar/Desactivar\ quiebre\ entre\ &palabras<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Activar/Desactivar\ &expansi�n\ de\ marcas\ de\ \tabulado<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Activar/Desactivar\ &auto-sangrado<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Activar/Desactivar\ sangrado\ &C<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			Anchura\ del\ &sangrado

menutrans Soft\ &Tabstop		&Tabulado\ �blando�

menutrans Te&xt\ Width\.\.\.		Anchura\ del\ te&xto\.\.\.
let g:menutrans_textwidth_dialog = "Introduzca el nuevo ancho del texto (0 para desactivar el quiebre de l�nea): "

menutrans &File\ Format\.\.\.		&Formato\ del\ archivo\.\.\.
let g:menutrans_fileformat_dialog = "Seleccione el formato para escribir el archivo"

menutrans C&olor\ Scheme		Esquema\ de\ c&olores
menutrans blue		azul
menutrans darkblue	azul\ oscuro
menutrans default	original
menutrans desert	desierto
menutrans evening	vespertino
menutrans morning	matutino
menutrans peachpuff	melocot�n
menutrans shine		brillante

menutrans Select\ Fo&nt\.\.\.		Seleccionar\ fue&nte\.\.\.

menutrans &Keymap	Asociaci�n\ de\ teclados
menutrans None		Ninguna
menutrans accents	acentos
menutrans arabic	�rabe
menutrans czech		checo
menutrans greek		griego
menutrans hebrew	hebreo
menutrans hebrewp	hebreo\ fon�tico
menutrans lithuanian-baltic	lituano-b�ltico
menutrans russian-jcuken	ruso-�jcuken�
menutrans russian-jcukenwin	ruso-�jcuken�\ Windows
menutrans russian-yawerty	ruso-�yawerty�
menutrans serbian-latin		serbio-latino
menutrans serbian	serbio
menutrans slovak	eslovaco


" Programming menu
menutrans &Tools			&Herramientas
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Saltar\ a\ este\ etiqueta<Tab>g^]
menutrans Jump\ &back<Tab>^T		Saltar\ &atr�s<Tab>^T
menutrans Build\ &Tags\ File		Crear\ archivo\ de\ &etiquetas\
menutrans &Diff				Modo\ de\ &diferencias
menutrans &Folding			&Plegado
menutrans &Make<Tab>:make		Ejecutar\ �&Make�<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Lista\ de\ errores<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	L&ista\ de\ mensajes<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&Error\ siguiente<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	Error\ p&revio<Tab>:cp
menutrans &Older\ List<Tab>:cold	Lista\ de\ &viejos\ a\ nuevos<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	Lista\ de\ &nuevos\ a\ viejos<Tab>:cnew
menutrans Error\ &Window		Ven&tana\ de\ errores
menutrans &Set\ Compiler		Esco&ger\ el\ compilador\ a\ usar
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Convertir\ a\ formato\ &hexadecimal<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	&Convertir\ al\ formato\ original<Tab>:%!xxd\ -r

" Tools.Spelling Menu
menutrans &Spelling				Correcci�n\ ortogr�fica
menutrans &Spell\ Check\ On			&Activar\ correcci�n\ ortogr�fica
menutrans Spell\ Check\ &Off			&Desactivar\ correcci�n\ ortogr�fica
menutrans To\ &Next\ error<Tab>]s		&Siguiente\ error<Tab>]s
menutrans To\ &Previous\ error<Tab>[s  		Error\ &precedente<Tab>[s 
menutrans Suggest\ &Corrections<Tab>z=		Sugerir\ &correcci�n<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	&Repetir\ correcci�n<Tab>:spellrepall
an 40.335.205 &Tools.&Spelling.Castellano\ (es)	:set spl=es spell<CR>
menutrans Set\ language\ to\ "en"		Ingl�s
menutrans Set\ language\ to\ "en_au"		Ingl�s\ (en_au)
menutrans Set\ language\ to\ "en_ca"		Ingl�s\ (en_ca)
menutrans Set\ language\ to\ "en_gb"		Ingl�s\ (en_gb)
menutrans Set\ language\ to\ "en_nz"		Ingl�s\ (en_nz)
menutrans Set\ language\ to\ "en_us"		Ingl�s\ (en_us)

menutrans &Find\ More\ Languages		&Buscar\ otras\ lenguas

" Tools.Fold Menu
menutrans &Enable/Disable\ folds<Tab>zi		&Activar/Desactivar\ pliegues<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv		&Ver\ l�nea\ del\ cursor<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	Ve&r\ s�lo\ la\ l�nea\ del\ cursor<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm		C&errar\ m�s\ pliegues<Tab>zm
menutrans &Close\ all\ folds<Tab>zM		&Cerrar\ todos\ los\ pliegues<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr		Abrir\ &m�s\ pliegues<Tab>zr
menutrans &Open\ all\ folds<Tab>zR		&Abrir\ todos\ los\ pliegues<Tab>zR
" fold method
menutrans Fold\ Met&hod				&M�todo\ de\ plegado
" create and delete folds
menutrans Create\ &Fold<Tab>zf			Crear\ &pliegue<Tab>zf
menutrans &Delete\ Fold<Tab>zd			&Suprimir\ pliegue<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD		Suprimir\ &todos\ los\ pliegues<Tab>zD
" moving around in folds
menutrans Fold\ col&umn\ width			A&nchura\ de\ columna\ del\ pliegue

" Tools.Diff Menu
menutrans &Update	&Actualizar
menutrans &Get\ Block	&Obtener\ bloque
menutrans &Put\ Block	&Poner\ bloque

"Tools.Error Menu
menutrans &Update<Tab>:cwin	&Actualizar
menutrans &Open<Tab>:copen	A&brir
menutrans &Close<Tab>:cclose	&Cerrar

" Names for buffer menu.
menutrans &Buffers		&Buffers
menutrans &Refresh\ menu	&Refrescar\ men�
menutrans &Delete		&Suprimir
menutrans &Alternate		&Alternar
menutrans &Next			Si&guiente
menutrans &Previous		&Previo
let g:menutrans_no_file = "[Sin archivo]"

" Window menu
menutrans &Window			&Ventana
menutrans &New<Tab>^Wn			Ventana\ &nueva<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Dividir\ la\ ventana<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	D&ividir\ en\ el\ marcador\ (#)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv    Dividir\ &verticalmente<Tab>^Wv
menutrans Split\ File\ E&xplorer	&Abrir\ el\ �Explorador\ de\ archivos�
menutrans &Close<Tab>^Wc		&Cerrar\ esta\ ventana<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Cerrar\ &otra(s)\ ventana(s)<Tab>^Wo
menutrans Move\ &To			Mov&er\ a
menutrans &Top<Tab>^WK			&Arriba<Tab>^WK
menutrans &Bottom<Tab>^WJ		A&bajo<Tab>^WJ
menutrans &Left\ side<Tab>^WH		Lado\ &izquierdo<Tab>^WH
menutrans &Right\ side<Tab>^WL		Lado\ &derecho<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		&Rotar\ hacia\ arriba<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotar\ hacia\ a&bajo<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		Mismo\ &tama�o<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Altura\ &m�xima<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Altura\ m�&nima<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Anchura\ m�&xima<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Anc&hura\ m�nima<Tab>^W1\|

" The popup menu
menutrans &Undo			&Deshacer
menutrans Cu&t			Cor&tar
menutrans &Copy			&Copiar
menutrans &Paste		&Pegar
menutrans &Delete		&Borrar
menutrans Select\ Blockwise	Seleccionar\ por\ bloque
menutrans Select\ &Word		Seleccionar\ &palabra
menutrans Select\ &Line		Seleccionar\ una\ &l�nea
menutrans Select\ &Block	Seleccionar\ un\ &bloque
menutrans Select\ &All		Seleccionar\ &todo

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Abrir archivo
    tmenu ToolBar.Save		Guardar archivo
    tmenu ToolBar.SaveAll	Guardar todos los archivos
    tmenu ToolBar.Print		Imprimir
    tmenu ToolBar.Undo		Deshacer
    tmenu ToolBar.Redo		Rehacer
    tmenu ToolBar.Cut		Cortar
    tmenu ToolBar.Copy		Copiar
    tmenu ToolBar.Paste		Pegar
    tmenu ToolBar.Find		Buscar...
    tmenu ToolBar.FindNext	Buscar siguiente
    tmenu ToolBar.FindPrev	Buscar precedente
    tmenu ToolBar.Replace	Buscar y reemplazar
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Ventana nueva
      tmenu ToolBar.WinSplit	Dividir ventana
      tmenu ToolBar.WinMax	Altura m�xima
      tmenu ToolBar.WinMin	Altura m�nima
      tmenu ToolBar.WinVSplit	Dividir verticalmente
      tmenu ToolBar.WinMaxWidth	Anchura m�xima
      tmenu ToolBar.WinMinWidth	Anchura m�nima
      tmenu ToolBar.WinClose	Cerrar ventana
    endif
    tmenu ToolBar.LoadSesn	Cargar sesi�n
    tmenu ToolBar.SaveSesn	Guardar sesi�n
    tmenu ToolBar.RunScript	Ejecutar un archivo de �rdenes
    tmenu ToolBar.Make		Ejecutar �Make�
    tmenu ToolBar.Shell		Abrir un int�rprete de comandos
    tmenu ToolBar.RunCtags	Generar un archivo de etiquetas
    tmenu ToolBar.TagJump	Saltar a una etiqueta
    tmenu ToolBar.Help		Ayuda
    tmenu ToolBar.FindHelp	Buscar en la ayuda...
  endfun
endif

" Syntax menu
menutrans &Syntax			&Sintaxis
menutrans &Show\ filetypes\ in\ menu	&Mostrar\ listas\ de\ �tipo\ de\ archivo�
menutrans Set\ '&syntax'\ only		Activar\ s�lo\ sintaxis
menutrans Set\ '&filetype'\ too		Activar\ tambi�n\ �tipo\ de\ archivo�
menutrans &Off				&Desactivar\ sintaxis
menutrans &Manual			Sintaxis\ &manual
menutrans A&utomatic			Sintaxis\ a&utom�tica
menutrans on/off\ for\ &This\ file	Activar/Desactivar\ en\ es&te\ archivo
menutrans Co&lor\ test			&Prueba\ de\ colores
menutrans &Highlight\ test		Prueba\ de\ &resaltado
menutrans &Convert\ to\ HTML		&Convertir\ a\ HTML

" Find Help dialog text
let g:menutrans_help_dialog = "Introduzca un nombre de comando o palabra para obtener ayuda;\n\nAnteponga i_ para comandos de entrada (e.g.: i_CTRL-X)\nAnteponga c_ para comandos de la l�nea de comandos (e.g.: c_<Del>)\nAnteponga ` para un nombre de opci�n (e.g.: `shiftwidth`)"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��<Sjj(vim80/lang/menu_finnish_finland.1252.vimnu�[���" Menu Translations:	Finnish for Windows CodePage 1252 encoding

source <sfile>:p:h/menu_fi_fi.latin1.vim
PK�j�Z*с vim80/lang/ja/LC_MESSAGES/vim.monu�[������|<
�x(�)�
:�H�Q�'g�/����ա�L�:N�����+��ʣ"��(�9�5I������դ����;ɥ��:�W�f�w�������ʦ�0��.*�/Y�0��
��ȧާ��
��
2�$=�$b��� ����@ȨD	�N�b�"����"é����@�_�z���������/Ϊ8��,7�=d�����ӫ���0�1A�1s�����Ϭ�-�3�S�h�������ǭ3߭3�G�d�|�������
ٮ����/�
G�$U�z�L�� ӯ��;$�`�o�#|�	����ðӰ�
����#�/�G�	_�i�q�y�!������ܱ���#�+� 3�T�o���������
òѲ6޲�2�K�!j���
����	����ٳ��&�	�" �*C�n�=��
ĴҴش���	�
�
'�2�
;�F�X�j�s�5��ǵ-ٵ1�&9�`�x�������ƶ۶��$�-�=�
Q�\�l���������ҷ�����+�7�F�V�h�x�
��������
ƸѸ�7�+�!8�Z�r�z�������������=��2�%�.�4�=�'N�-v�2��׺�?
�M�i�z�+����	Ļλ��-�M�$m���
����ͼ��?�D�2S�!��%��@ν9�EI�9��CɾK
�IY�H��;�6(�8_�3��<�4	�->�6l���%�����
�&�@�&P�,w�#��4�� ��@�-_�0��:��;��5�"U�x�>��)��>��<1�n�z�#��:��'��9!�[�$t�9��4��;� D�>e�1��/���-#�Q�.`�B��"��2��4(�*]���+��%��'��( �<I�E��.��-��$)�N�<g���*��&�� �41�f�w�����������������
�'�0�"8�[�g�v�������)����$�)�8�@�Y�1r�?���������0�F�a�t�X��%����+�I�b�{���������$����!�0�N�T�d�h���"��$����#�/�6�E�U�u����� ����4��.�	@�CJ�V����
��
�.�:�-S���-��$��.��6"�Y�.s�H��(���#�
<�OG�O��
��C��	9�C�O�!d�������3��2��!�(8�a� z�"��E���%!�#G�-k�������&���)�;�Y�r���'����)��+�@;�-|���5�����0�K�/f�9����E��3�-N�7|�#�� ��:��54�&j�"��&��$��#�!$�=F�5�� ��(��7�.<�,k��������� ��#�&;�b�y�����������0>�$o�!�� ��(��4�,5�b�~������� �����1,�^�!{�%��%��!��%�1�$J� o�����?��&�#.�R�
n�A|�%��"��"�9*�'d�(��2��*��!�!5�)W�%��!��4��:��&9�;`�;��)��0�3�R�n�����#��!��8��&1�#X�|� ��/��"���-�G�X�q�/��*��(��#
�1�M�h�����>�����0�"G�j�������#����9�1K�1}�)��1��%�71�i�A��?����3�!R�t�����0��4��$0�)U�N�,��&��L"�o�����8����$�(�B�#b�7��N��
�)�F�$a�!��3��,�2	�%<�b�"}���#�����;�BX���0��!� �<)�+f�����+�2�$&�K�,i���H��,��'�=�"]����������9�S�h���0��#�'��,�,L�&y�����+�2�-$�(R�{�"��'��'�,�4�.K�z�#��,��W�)C�"m�,��%��� !2:2m2��!�+2@5s'�#�)�3$S%x����
$"&G n'�*�#�'%.T3t!��+�*5-`$����
  ; \$}$�)��	,La%|�=�9R'l��$�#�0	.H	0w	�	�	�	

/
C
-Z
 �
�
7�
)�
&$>(c��%�$�$7'T|'� ���
 .
7O
0�
�
#�
�
"(>!g�-�1�65>t.�*�1�9U*u&�+�,�+ 4L<�+�*�+CXm�����"�
 7Rq�����)Ea:t=�<�6*<a�"��+�)4E5z4�3�0+ \}D�P�%&Lk�����!)Kf}����'�#6!Vx�"��1�.K"`������'<Uh|�����*1)\�� ����6#Os)�&�K�, ?`�����" &7 #^ � � +� %� 7!5F!|!�!,�!�!�!")," V"w"�"�"�"�"�"#5#0M#~#�#�#�#4�#.%$$T$)y$1�$;�$%.!%*P%{%$�%�%%�%,&.&%?&e&~&�&&�&-�&&'+' G'h'�'�'+�' �'(?()Z(�(6�(#�(2�(9,)>f)8�)1�)*).*)X* �*)�*�*)�**+"=+`+#y+"�+"�+)�+
,-,%K, q,$�,�,�,!�,0-G-`-{-�-"�-!�-9�-82./k.�.�.�.+�.%/18/)j/�/�/'�/%�/0&'0!N0%p0'�0%�0'�0-12:1m1�1$�1�1�1�1"2:2Z2!z21�2&�2�2!3!43V3(k3�3�3+�38�3347R4E�4!�4�45(50G5#x5�5$�5�5#�5*6?6Z6m60�62�60�67+97)e7$�7/�7�7�7'8)68,`8�8�8 �8�8�8-9,K9x9/�9+�9'�9!: 7:0X:�:!�:,�:�:;(;A;Z;0p;.�;�;1�;&"<:I<�<9�<�<:�<2=J=j=�=*�=�=3�=&>%?>2e>0�>!�>;�>R'?z?*�?�?�?(�?!@+=@+i@�@ �@"�@%�@ A+;A"gA+�A�A.�A4BI:B)�B)�B6�B6C-FC(tC/�C&�C<�C)1D*[D�D7�D�D�DE*-EXEvE0�E/�E!�E"F*8F/cF;�F�F�FQG.YG�G$�G#�G0�G#"HFH2eH6�H�H+�H%IXAI;�I/�I;JBJ!bJ%�J"�JN�J.K$KK&pKT�K#�K"L$3L XLyL�L#�L]�L 9MBZM'�M�M/�M2N,EN"rN�N&�N(�N%�N%ODObOEO!�O �O7P@P%VP|P'�P�P'�P	Q)Q<?Q|Q"�Q'�Q�QR+RDR(^R!�R5�R�R7�R!6S%XS/~S!�S�S�S'T6T)UT;T&�T(�TU)*U&TU{U�U'�U�U	�U�UVV+VEV#[V	V�V�V�V.�V�V.
W69WpWvW6�W#�W
�W&�W	X!X6XNXeXzX �X%�X!�X
�X�X(Y�:Ya�YGZ+`Za�Z�Z�Z[(
[
3[	>[%H[
n[y[&�[&�[�[(\+\	<\F\	W\a\
g\u\�\�\�\	�\2�\*]C]c]u]�]�]
�]�]	�]�]�]�]^#,^(P^y^�^	�^�^�^
�^�^�^2_9_E_d_~_�_�_$�_�_/�_` `'#`K`a`
x`$�`
�`�`�`�` �`aa*a7a!Maoa�a@�a(�ab'b9b<bMbYbeb�b#�b�b�b�b.�b
.c9c	OcYcyc�c�c'�c�c�c
ddd7dKdTdnd�d�d�d�d�de9%e9_e�e�e�e�e
�e�e(�e&f.f?fPf
]f	hfrf�f�f�f�f9�f
gg2gMghg&g�g�g�ghChW_h	�h�h�h�h�h
ii)"iLili�iF�i�i�ij%j,j8j(Djmj�j�j1�j�j�jk$k:kSk0bk;�k>�kl&l>l1Zl"�l�l�l�lA�l)/m=Ym�m(�m�m�m$�m0"nSn\n_n+un2�n�n�n�no%o	7oAo�Zo�oF�o;p
Gp	Rp
\pjp+p�p%�p0�pBq([q�q1�q+�q*�q&)r9PrM�r>�r)s5AsAws4�s$�s*tA>tA�t&�t6�t u<(u<eu?�u7�u/v Jv"kv�v2�v0�vw#w;wWwlw�w�w�w�w2�w)x+Fx,rx-�x �x!�x#y4yMyeyiymy�y	�y�y�y�y�y�y�yzz
$z
/z:z	@zJzhzuz	�z�z
�z�z
�z	�z5�z{{	${.{;{
A{O{&V{}{�{�{�{
�{�{
�{�{�{�{�{�{�{�{|9|BB|D�|"�|$�|"})5}_}n}u}�}�}�}�}1�}
~$~"7~Z~<y~�~'�~!�~#6Po�H�C�"�6�S�k�~�����������ǀ݀ �#�-7�-e����������(�&?�f�=u���΂%�
	�8�FP�.��DƃM�@Y�0��&˄'�&�$A�f�x�$����-Ӆ��3�J�h�t�z�������
׆���� $�E�
J�X�"e���%��*��.�8�"S�#v�%��#������#�/5�e�
t� �� ��ĉ
׉����!�.�N�	f�p���2��Њ�����$
�2�?�H�
W�e�#n�1��1ċ1��1(�Z�c�	l�
v�(��������׌���
	��
3�>�V�(j�'�� ��܍�	�)�	D�N�"`�����$��$̎���
��-�
=�K�a���������я�����5�K�Z�b�.n�.��.̐.��.*�.Y�.��.��&� 
�%.�T� o�:��˒ے���"�)6�)`���	������̓����%�	4�>�O�d�x���3���Δ+W�
������?��?��5�O�j����@A�����.��,ՙ>�6A�x���J��2��$,�'Q�y���d��_�k�*��'��՝���-�C�_�x�?��=Ξ>�?K�	��#��#��&ݟ�#�
?�>J�>��Ƞ?�
!�h,�o��� �,<� i�,����ˢ
آb�$F�k�x���
��+��Cȣa�:n�U��"��2"�+U�#����d��7!�7Y�������ڦA��:�Z� t���8�����.�GI�$����֨ �� *�K�W�i�������ĩ&ک�L�+f�����Dʪ�(�*A�	l� v�����ɫ	٫!���(�E�	b�
l�
w���%����׬��
�
-�;�#C�g��� ����ȭ
Э
ޭ�<��:�V�m�"������ٮ
����(�-�+2�^�6f�9��ׯT�	H�R�Z�
o�}�
������Ͱݰ���
&�>1�Qp�±K۱<'�8d�����Ͳ-�-�-@�0n�4��OԳ7$�\�	p�z�-��,ô��+!�&M�t�)��"��	���#�@�]�i�����
��-ƶ�
�,�II���,��̷����
�'�+�J�e�}i�l�
T�_�p�,��N��G�NM�(��)źb�'R�z���H�����/�+5�%a�5��3��:�,,�Y�f�,v�
��(��Gڽ"�;/�2k�?��J޾J)�Pt�JſW�ih�O�\"�Y�D�G�3f�S��8��8'�?`�,��$����
�,$�,Q�~�;��(��$��N�-h�U��2��6�LV�U��$��'�F�?a�+��C��L�	^�)h�.��C��2�E8�!~�=��O��A.�?p�*��@��F�9c�3��/���B�SW�;��J��J2�1}�/��B��0"�2S�6��P��V�Ee�3��,��!�U.�2��4��;��?(�Kh�,��,��,�;�+D�*p�����$����� $�E�M�Hh��������%�E�Me�	��+�������"�HB�K��!�����!�>�']�&����%��p��2b���9��H��!�A�1`�1��������?��4�?D�1��
������;��'�3D�-x�0��<���$�;�%R�x�$��!��*��-�Q0�����F��Z��X�n���G��*��=�3C�Kw�2��<��\3�.��Z����G�������w"�w���a.�����������=��9�H=�G��@��<�"L�<o�B��g��0W�?��-��Q��*H�*s�*��=��"�"*�.M�(|�*��*��(��$�+D�+p�O��<��")�WL�"�� ����%�<.�Ok�$��f��G�9g�F��-��3�YJ�M��8��6+�Qb�:��N��5>�at�N��7%�7]�?��>��E�:Z� ��1��%��+�(:�@c�����'��(
�%3�Y�)u�:��?��:�9U�?��9��L	�DV�*���� ��"�%�3E�>y�6��\�*L�!w�=��-�'�+-�%Y�1�%���$��Z�@w�9��0�#�i0�P��2�2�TQ�;��5�E�=^�6��-�4�N6�A��H�K�9\�J��D�;&�@b�6��,�,�,4�)a�3��3��A�956o7�O�M./|�;�! BEaH�6�9'!a!�2�1�#
X.*�(��9�05f,�&�2�*U2D�;�:	KDH�K�2%CXL�"�"	-/	5]	-�	+�	9�	F'
Rn
7�
;�
v58�H�t. ���_
c
#�
6�
 �
-�
_,Z�1�5&OEvE�LTOP�K�3ABu9�E�98.r.�.�v�5vP�A�??YI�?#cB;�3�/2Tb*�n�BQ!�&�1�;=K=�=�7_=5�&�2�9-Ag:��<�Z.9�2�&�TTrB�W
.b9�Q�Wbu$�;�'9#aB�h�?1 =q K� K� <G!<�!5�!D�!D<"D�"1�"$�"(#F#;_#K�#E�#5-$<c$J�$:�$:&%0a%#�%G�%=�%$<&<a&H�&9�&K!'Km'B�'A�'0>(2o(R�(*�(* )OK)(�)F�)F*>R*'�*'�*-�*+'+=G+=�+6�+0�+D+,$p, �,/�,&�,0
-7>-7v-E�-�-".7.3N.?�."�.0�.1/=H/7�/4�/]�/"Q0"t0"�0�0�0'�017=1+u1�1K�1E
2(S24|2E�2*�2 "3GC3N�3=�3*43C4@w47�4*�4/50K5,|5'�56�5E6QN6B�66�6<7=W7F�7*�7/8=78Lu8Q�8P9*e9F�90�9T:Y]:"�:A�:A;B^;:�;9�;B<EY<9�<>�<*=C='_=�=�=�=!�=&>!(>J>Gi>"�>0�>.?94?*n?+�?7�?6�?-4@2b@!�@6�@0�@4APTAO�AK�AQABb�B&�B0C!NCApC?�CY�CkLDY�DSEfES�E,�EF^"Fj�F>�F3+G3_G3�G$�G9�G&H*BH)mH'�H)�H'�H!I'3I,[I!�I5�I7�I'J/@JGpJ3�J*�J2KJKJiK-�K �K)L$-LRL'qL'�L9�L!�LM#<M`M*|M'�M!�M!�MN$/N2TN'�N'�N+�N>O=BO'�O�O$�O�OP!P]>P6�P'�PK�P6GQs~Q�Q6R(BR(kR*�R)�R+�R%S-;S4iS9�S6�S,T0<T1mT<�TC�TA U(bU.�UE�U!V3"V*VV:�V3�V �V)W#;W+_W/�W1�W-�W(X8DX}X)�X1�X4�X@(YFiY;�Y*�YTZZlZ)�Z9�ZH+[6t[9�[*�[D\?U\*�\3�\-�\&"]*I]`t]?�]@^ V^Cw^�^�^!�^S_=o_!�__�_?/`3o`b�`Ea?LaZ�a^�aoFbH�bB�b<Bc=c<�c;�c66d9md<�d;�d e?@eH�eE�eNf2^f,�f?�f-�f0,g9]g4�g9�gBhIh)hh�h$�h3�h<iUHi:�i1�i1j1=jojN�jB�jQk?lk!�k�k1�k9l*Yl=�l4�l1�l3)m1]m6�m<�mIn,Mn3zn3�n<�n>o9^o6�o7�o7p(?p9hp*�p(�p-�p4$q#Yq+}q+�q'�qG�qQEr6�rL�rss3�s�s&�sD	tBNt9�t�tB�t.u9Nu3�u?�u�u*veEv;�v?�v9'wAaw*�w*�wR�w(LxuxW�xP�xM8yJ�y0�y3z36z*jz3�zQ�z&{NB{E�{H�{7 |BX|A�|0�|<}KK} �}�}3�}'~!,~HN~K�~(�~K?X@�2�`�)m�@�� ؀F��<@�?}�K��0	�::�u�E��KقG%�4m�^��]�)_�T��-ބ5�7B�z�B��Fم7 �:X�<��RІ@#�Cd�@��G�51�Dg�a��i�/x�/��H؉H!�8j�9��I݊6'�P^�<��T� A�Hb�3��6ߌ*�<A�2~�$��9֍9�+J�0v�D��N�W;�;��(Ϗz��Hs�8��3��2)�=\�2��(͑L��PC�/��7Ē4��y1�[��6�^>�/��>͔6�/C�Rs�:ƕ(�?*��j�1�>�;\�H��?�B!�?d����:.�Ti�A��'�?(�Ih�K��4��-3�?a�9��6ۛ2�3E�?y�^��<�HU�G��-�2�FG�?��(Ξ8��-0�'^�_��6�1�BO�����:Ѡ.�6;�*r�O��(�B�(Y�3��B��.��'(�,P�C}�3��8��o.�*��3ɤ>��5<�4r�#��'˥A�5�A�9W��� ��!ʦ�-�9�J�!`�2��W��5
�YC�d��	��_"�4����&ͩ�"��"�A�a���3��8Ѫ2
�=�A�AY�������$�]B����!-�O�\�0i�����0���.��<)�<f�3��Bׯ�3�E�^�
p�~�3��ư7��5�EH�<��3˱��0�I�b�	~���	������в!�.
�>9�x�����!��.س"�!*�L�N\���+ȴ#��%�*-�>X�!��S��
�	#�B-�-p�6��*նI�J�0i�0��'˷P�,D�$q�*��*��D�?1�q�q��R��$I�&n���!����ֺ(�4�<M���4��׻D�)�?�
Y�7d�-��1ʼ��G�%c�������۽$���%&�$L�+q�!��'��%�.
�%<�Nb�W��$	�.�5�F�S�d�D���!�$��'�F�_�%{���=�����?*�j�z���<��"��2
�1=�1o�1��'��A��U=�������'��$���
*�T5�B��/��=��o;���(��$��
�&�2�QM�1��<��7�TF���!��.��(��7(�`�Fp�S��E�!Q�s�!��B��4��,�3�(D�nm�E��f"�%��3����$��3�NC�����5��D��b�*{�����������(���$���U��A�N�
b�p���@����B�AD�S��?��$�O?�8��5��7��I6�X��I��:#�B^�U��^��5V�8��^��^$�4��D����U�UZ�`��W�Gi�?��A��,3�R`�C��!��-�0G�x�.��+��0��+�(C�Kl�B��O��EK�F��)��/�32�#f�&����������������!"�D�\�z�����������0����,�>�R�d�m��<�� ���������3�5:�p����������������
���
	�
��/�C6�Yz�a��<6�6s�?��C��.�=�1D�/v�������@���$4�5Y�3��x��<�&R�!y�����%��-��0'�X�ri�u��R�*n�"����,����	7�A�R�q���3��9��<�<V���(��0��,�/�$O�?t�?����X�*\���$����M��L�[j�R��S�Rm�]��G�Hf�G��6��.�0A�<r�$��N��-#�(Q�'z�F����
��.�A�"W�z�������<��	�!�7�OG���0��A��H�Nf�&��<��>�2X���!������I��@�$\�E��6���	�!�:�"B�e�#q�������Q��-O�'}�����L�'�7�(J�s���1��G�C�FV�S�������15�%g�����'��0�0
�	>�-H�v�&��!��5�9�6F�}� ��9��#��	�$�+7�c�
w�-��-��
�.��91�k�|�%��3��%�
�2�1O�&��%���(�+)8b	v�4�4�4�426g8�4�6*C-n-�-�C�R<�����%�66S�
�'���%4I	Xbs���U�z�~����*�Gg�lI�T��g������Z~�;����hE���5�`�p�$�jNr�T}��'���^P�W_��Z>���^w3����`UL��h���[���o
P�o0�*E��K� �y�����d��.f�<��Ubq&Y_�\����>�F�g���N�#���6���k��9_G8|�R����n��x:>(�;�X�������bj�D���S�,k|�z!�����A���j?m��a&lVSB�:�&��.�R�v� �%.@@�
���~Q��\Wu���&w[$?t*+�;��x��)�o��(y�s�t��
O]x�#���'��s�]�B�f��J����,#u&��;�����9l�3�/f�����+��\X�uW*iD�Q S����9c���h|��*�l/�@(v������9��{�������ji5%�|�Ln���E"�K�g����Z $T�T�gA~ej��
���{��u���O���}^X��O�+�fv��i��-G@�l��m�-|�p�J�_%l�~�R��"F8��NM����`�yC���zJ����,��KElt�r�4�Pl����K>eq�3��kQaK�W�!�.o�V�P]�[��/�m��X�w����)�����Y!��	4%��b��8�3�5���EyH�VjB���B�=�.�9(?�/K��X��:PZ����@	����r�7�����;b
+����#���b�o�-f�9_Vv����2��"�����
1\!	3?z�% X��CZ��)p�'�:Q^�������Y�wD>�#AH�e�x���r2T��C����h2A0�M�;�����^GL��Y_7F15��=��g5jV�x��7�s'!?�k>�v�`�������4<�D
�B6�1G�#A�a�����[��0{�dN�Z���(�F�O<�_��p�tNI�O���H������g��B*(���W��-2���Z�S���T��5A����6e�^�kt�����q����zmCsUG��'L�H���f�J~=nd)R9�9�������sr�0`i��)|M�`���,�:/L��?$�X}����z��#n�7�J�H�������Du=�������tC�'!,��� S 
Q)������H7�WgJ�������Y��
z�B�������~F��h�nCUS�o$�d�0��}L��=�m�7c��d�a��K
U���k���ew��	a�&Io�S)��}���������K����$�V�b�]J�|�0��s�����u-�c��G�wR���C%��1���1	��I=�w3�48��]�@�{��V#������|e����b����1�'�q���En��~7PWO�[�L������6�4�[�GZ^�`5R$����6r�ym� ���<��y��y�Ac�+����>/�c�F�3������=��qp0Lv�a
p�M��U=w����Q�4���]�d���d�4��0�5������N��X��2k*�Q�F��	�"R{���Oa��C�8M6�1����}��iqO��t��qn[�����a�?8�&%\�;f���hY<��Ec��q�"
{��\D���sxo�},�!��.�I�&e�i�������{,��7�����Iv:D�+:+H
���v�'k�"����Pp`��D���T]��b	���jt\{�,>��
���
?M�(I�i;�	N�x���IQ(32T���Y�]��/")^.Y�<}�e��F8m@_�u���%�[A��\x��S�rc�������������P��@��my���6/�
-*�W�-1�:���Mf���6�Ur�4"p�BN���J��E�-���h�n.��<�R��!�H�cV+$���8<���U2iz2M�d�h�������s�����u�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-03 23:05+0900
PO-Revision-Date: 2017-07-12 20:45+0900
Last-Translator: MURAOKA Taro <koron.kaoriya@gmail.com>
Language-Team: vim-jp (https://github.com/vim-jp/lang-ja)
Language: Japanese
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8-bit
Plural-Forms: nplurals=1; plural=0;

	最後にセットしたスクリプト: 

引数:


使用法:
          変更状態: 
         [このコンピュータでは使用できません]
         [このVimバージョンでは使用できません]
          ホスト名: 
        ユーザー名: 
        プロセスID: 
       a: このシンボルに対する代入を探す
       c: この関数を呼んでいる関数を探す
       d: この関数から呼んでいる関数を探す
       e: このegrepパターンを探す
       f: このファイルを探す
       g: この定義を探す
       i: このファイルを#includeしているファイルを探す
       s: このCシンボルを探す
       t: このテキスト文字列を探す

    名前        引数       アドレス  補完      定義
   #   行番号
   もしくは:
  # TO タグ        FROM 行    in file/text
 jump   行   列 ファイル/テキスト
# %s 項目の履歴 (新しいものから古いものへ):

# '|' で始まる行の、文字通りのコピー:

# バッファリスト:

# ファイルマーク:

# ファイル内マークの履歴 (新しいものから古いもの):

# ジャンプリスト (新しいものが先):

# 最後の %s検索パターン:
~
# 最後に置換された文字列:
$
# レジスタ:

# グローバル変数:

(1) 別のプログラムが同じファイルを編集しているかもしれません.
    この場合には, 変更をしてしまうと1つのファイルに対して異なる2つの
    インスタンスができてしまうので, そうしないように気をつけてください.
    終了するか, 注意しながら続けてください.

(変更をチェックするために, このファイルを別の名前で保存した上で

--- Auto-Commands ---
--- グローバルオプション値 ---
--- ローカルオプション値 ---
--- メニュー ---
--- オプション ---
--- レジスタ ---
--- サイン ---
--- 構文要素 ---
--- 構文同期要素 ---
--- 端末コード ---
--- 端末キー ---
gvimによって解釈される引数(Athenaバージョン):

gvimによって解釈される引数(GTK+バージョン):

gvimによって解釈される引数(Motifバージョン):

gvimによって解釈される引数(neXtawバージョン):

Big 版 
パイプを作成できません

シェルを実行できません 
sh シェルを実行できません

fork できません

コマンドを中断しました

Compiled 
セキュリティコンテキストを取得できません 
セキュリティコンテキストを設定できません 
追加拡張パッチ: 
次の名前でスワップファイルを見つけました "
Huge 版 
新しい暗号キーを入力したあとにテキストファイルを保存していない場合は,
暗号キーを変えたあとにテキストファイルを保存した場合は, テキストファイルと
適用済パッチ: 
MS-Windows 32 ビット GUI 版
MS-Windows 32 ビット コンソール 版
MS-Windows 64 ビット GUI 版
MS-Windows 64 ビット コンソール 版
MacOS X (unix) 版
MacOS X 版
MacOS 版
恐らく変更がされていないかVimがスワップファイルを更新していません.
より詳細な情報は: "vim -h"

通常 版 
OpenVMS 版
Small 版 
Tiny 版 
Vim: X のエラーを検出しましたr

警告: 原本ファイルが失われたか変更されました

大小文字が無視される場合は大文字にするために / を前置してください
元の.swpファイルは削除しても構いません


[メモリ(バイト)] 総割当-解放量 %lu-%lu, 使用量 %lu, ピーク時 %lu

変更   行    列  テキスト
新しい暗号キーを入力してください.
mark   行   列 ファイル/テキスト
シェルが値を返しました 
要素上で同期中
スワップファイルに同じ暗号キーを使うためにenterだけを押してください.                              でVimとして動作                                  でモード有に                    日付:             所有者:          [開けません]         [読込めません]         [Vimのスワップファイルではないようです]         [from Vim version 3.0]        ファイル名:   デフォルトファイル: "      -- なし --
      スワップファイルよりも新しいです!
       ユーザー exrc: "      ユーザー vimrc: "    この場合には ":recover" か "vim -r     既にこれを行なったのならば, スワップファイル "    行=%ld  識別子=%d  名前=%s    システムメニュー: "     ユーザー gvimrc: "   現在のディレクトリ:
   ディレクトリ    以下の名前を使用中:
   日付:    ホスト名:       システム vimrc: "  # pri kind tag  (既に列挙)    第2ユーザー exrc: "デバッグビルド  機能の一覧 有効(+)/無効(-)
  見つかりません  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  タグを異なるcaseで使用します!       省略時の $VIM: "     システム gvimrc: " # pid    データベース名                      prepend パス
 (割込まれました) (見つかりません) (前に列挙した該当箇所を含む) (挿入) (挿入) スクロール(^E/^Y) (行が削除されました) (非サポート) (貼り付け) (置換) (置換) スクロール (^E/^Y) (まだ実行中) (仮想置換)   第2ユーザー vimrc: "   第3ユーザー vimrc: " < "%.*s" 追加中 アラビア 変換エラー コマンドライン補完 (^V^N^P) コピー %d (全 %d 中) 定義補完 (^D^N^P) 辞書補完 (^K^N^P) 失敗 ファイル名補完 (^F^N^P) ヘブライ 挿入 局所キーワード補完 (^N^P) キーワード補完 (^N^P) オムニ補完 (^O^N^P) パスパターン補完 (^N^P) 置換 反転 セレクト 矩形選択 行指向選択 SPACE/d/j: 画面/ページ/行 下, b/u/k: 上, q: 終了  綴り修正候補 (s^N^P) タグ補完 (^]^N^P) シソーラス補完 (^T^N^P) ユーザー定義補完 (^U^N^P) ビジュアル ビジュアル 矩形 ビジュアル 行 仮想置換 行(全体)補完 (^L^N^P) [変更あり] [a] [w] ^X モード (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) 追加 このコンピュータでは使用できません.
 Vimのこのバージョンでは使用できません.
省略時の $VIMRUNTIME: " は損傷しています (ページサイズが最小値を下回っています).
 行 %ld; 情報 ファイル種類
 個の改行 行前(トップ行よりも) マーク 旧ファイル群 (計 %ld 行内) (計 1 行内) かそれ以上 戻りました
 vim [引数]  with OLE サポート 書込み"
    を消せばこのメッセージを回避できます.
"
    を使用して変更をリカバーします(":help recovery" を参照).
" が既にあります!# この viminfo ファイルは Vim %s によって生成されました.
# このファイルが書かれた時の 'encoding' の値
# 変更する際には十分注意してください!

%-5s: %s%*s (使用法: %s)%3d  %s %s  行 %ld%<%f%h%m%=%N ページ%d 個のバッファが削除されました%d 個のバッファが解放されました%d 個のバッファが破棄されました%d 個の単語が見つかりました (%s 内)%d 個のファイルが編集を控えています
編集すべきファイルがあと %d 個ありますが, 終了しますか?%d 個 (%d 個中) のファイルを編集しました%ld %s; %s #%ld  %s%ld 列; %ld 行 削除しました%ld 行が %s で %d 回処理されました%ld 行が %s で 1 回処理されました%ld 行 --%d%%--%ld 行が変更されました%ld 行がフィルタ処理されました%ld 行をインデントしました %ld 行が移動されました%ld 行がインデントされます... %ld 行がヤンクされました%ld 行, %ld 箇所該当しました%ld 行 追加しました%ld 秒経過しています%ld 箇所置換しました%lld 文字%s Auto commands for "%s"%s が中断されました%s が破棄されました%s 行 %ld%s により未決定状態が生じました%s が再開しました%s が #%ld を返しました%s が %s を返しました値 %s は他の .aff ファイルで使用されたのと異なります%s, 行 %ld%s エラー一覧 %d of %d; %d 個エラー%sviminfo: %s 行目: キャンセル(&C)却下する(&D)フィルタ(&F)ヘルプ(&H)&OK決定(&O)
キャンセル(&C)&OK
ファイル読込(&L)&Ok読込専用で開く(&O)
とにかく編集する(&E)
復活させる(&R)
削除する(&D)
終了する(&Q)
中止する(&A)読込専用で開く(&O)
とにかく編集する(&E)
復活させる(&R)
終了する(&Q)
中止する(&A)置換(&R)アンドゥ(&U)はい(&Y)
いいえ(&N)はい(&Y)
いいえ(&N)
キャンセル(&C)はい(&Y)
いいえ(&N)
全て保存(&A)
全て放棄(&D)
キャンセル(&C)' は未知です. 現行の組み込み端末は次のとおりです:'-nb' 使用不可能です: コンパイル時に無効にされています
'dictionary' オプションが空ですオプション 'history' がゼロです"%s" には 'readonly' オプションが設定されています.
上書き強制をしますか?'thesaurus' オプションが空です(%d of %d)%s%s: (+%ld for BOM)(2) このファイルの編集セッションがクラッシュした.
(割込まれました) (無効)(NFA) ログファイル %s を開けません!+			ファイルの最後からはじめる+<lnum>		<lnum> 行からはじめる+reverse		反転映像を使用しない(同義: +rv),
もしくはファイルが損傷しています.-               標準入力からテキストを読込む--			このあとにはファイル名だけ-- 継続 ---- 検索中...--- インクルードされたファイル --削除済----バッファに行がありません----cmd <command>	vimrcをロードする前に <command> を実行する--cmd 引数--echo-wid		ウィンドウIDを標準出力に出力する--literal		ワイルドカードを展開しない--noplugin		プラグインスクリプトをロードしない--not-a-term		入出力が端末でないとの警告をスキップする--remote <files>	可能ならばVimサーバーで <files> を編集する--remote-expr <expr>	サーバーで <expr> を実行して結果を表示する--remote-send <keys>	Vimサーバーに <keys> を送信して終了する--remote-silent <files>  同上, サーバーが無くても警告文を出力しない--remote-tab[-wait][-silent] <files>  --remoteでファイル1つにつき1つのタブページを開く--remote-wait <files>	--remote後 ファイルの編集が終わるのを待つ--remote-wait-silent <files>  同上, サーバーが無くても警告文を出力しない--role <role>	メインウィンドウを識別する一意な役割(role)を設定する--serverlist		Vimサーバー名の一覧を表示して終了する--servername <name>	Vimサーバー <name> に送信/名前設定する--socketid <xid>	異なるGTK widgetでVimを開く--startuptime <file>	起動にかかった時間の詳細を <file> へ出力する--ttyfail		入出力が端末でなければ終了する--version		バージョン情報を表示し終了する--windowid <HWND>	異なるWin32 widgetの内部にVimを開く-A			アラビア語モードで起動する-C			Vi互換モード: 'compatible'-D			デバッグモード-E			改良Exモード-F			ペルシア語モードで起動する-H			ヘブライ語モードで起動する-L			-rと同じ-M			テキストの編集を行なえないようにする-N			Vi非互換モード: 'nocompatible-O[N]		-oと同じだが垂直分割-P <親のタイトル>	Vimを親アプリケーションの中で起動する-R			読込専用モード ("view" と同じ)-S <session>		最初のファイルをロード後ファイル <session> を取込む-T <terminal>	端末を <terminal> に設定する-U <gvimrc>		.gvimrcの代わりに <gvimrc> を使う-V[N][fname]		ログ出力設定 [レベル N] [ログファイル名 fname]-W <scriptout>	入力した全コマンドをファイル <scriptout> に保存する-X			Xサーバーに接続しない-Z			制限モード ("rvim" と同じ)-b			バイナリモード-background <color>	背景色に <color> を使う(同義: -bg)-boldfont <font>	太字に <font> を使う-borderwidth <width>	境界の幅を <width> にする(同義: -bw)-c <command>		最初のファイルをロード後 <command> を実行する-c 引数-d			差分モード ("vidiff" と同じ)-dev <device>		I/Oに <device> を使用する-display <display>	vimを指定した X サーバーに接続する-display <display>	<display> でvimを実行する-display <display>	<display> でvimを実行する(同義: --display)-e			Exモード ("ex" と同じ)-f			ウィンドウを開くのに newcli を使用しない-f or  --nofork	フォアグラウンド: GUIを始めるときにforkしない-font <font>		テキスト表示に <font> を使う(同義: -fn)-foreground <color>	前景色に <color> を使う(同義: -fg)-g			GUIで起動する ("gvim" と同じ)-geometry <geom>	初期配置に <geom> を使う(同義: -geom)-h or  --help	ヘルプ(このメッセージ)を表示し終了する-i <viminfo>		.viminfoの代わりに <viminfo> を使う-iconic		最小化した状態でvimを起動する-italicfont <for>	斜体字に <font> を使う-l			Lispモード-m			変更 (ファイル保存時) をできないようにする-menuheight <height>	メニューバーの高さを <height> にする(同義: -mh)-n			スワップファイルを使用せずメモリだけ-o[N]		N 個ウィンドウを開く(省略値: ファイルにつき1個)-p[N]		N 個タブページを開く(省略値: ファイルにつき1個)-q [errorfile]  最初のエラーで編集する-r			スワップファイルを列挙し終了-r (ファイル名)	クラッシュしたセッションを復帰-register		このgvimをOLEとして登録する-reverse		反転映像を使用する(同義: -rv)-s			サイレント(バッチ)モード ("ex" 専用)-s <scriptin>	ファイル <scriptin> からノーマルコマンドを読込む-scrollbarwidth <width>  スクロールバーの幅を <width> にする(同義: -sw)-t タグ         タグが定義されたところから編集する-u <vimrc>		.vimrcの代わりに <vimrc> を使う-unregister		gvimのOLE登録を解除する-v			Viモード ("vi" と同じ)-w <scriptout>	入力した全コマンドをファイル <scriptout> に追加する-x			暗号化されたファイルを編集する-xrm <resource>	特定のリソースを使用する-y			イージーモード ("evim" と同じ, モード無)%s の %d 行目の 重複した / 行を無視しました: %s%s の %d 行目の 単語の後の /encoding= 行を無視しました: %s1 個のバッファが削除されました1 個のバッファが解放されました1 個のバッファが破棄されました1 文字1 行が %s で %d 回処理されました1 行が %s で 1 回処理されました1 行 --%d%%--1 行が変更されました1 行をインデントしました 1 行 削除しました1 行が移動されました1 行がヤンクされました1 行, 1 箇所該当しました編集すべきファイルが 1 個ありますが, 終了しますか?1 行 追加しました1 箇所置換しました  第2ユーザー gvimrc: "  第3ユーザー gvimrc: ": 式の送信に失敗しました.
: 送信に失敗しました.
: 送信に失敗しました. ローカルでの実行を試みています
; 該当 <%s>%s%s  %d,  16進数 %02x,  8進数 %03o<開けません> <空>> %d, 16進数 %04x, 8進数 %o> %d, 16進数 %08x, 8進数 %o??? ここから ???END までの行が破壊されているようです??? ここから ???END までの行が挿入か削除されたようです???ブロックがありません???ブロックが空です???END???行数が間違っています???行が失われています???多くの行が失われていますANCHOR_BUF_SIZE が小さ過ぎます.新データベースを追加cscopeデータベース %s を追加%s の %d 行目の affix は BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST に使用してください: %s%s (%d 行目) の affix 名が長過ぎます: %s全て全てのcscopeデータベースをリセットします全てのインクルードされたファイルが見つかりました既に一番新しい変更です既に一番古い変更です既にタブページは1つしかありません既にウィンドウは1つしかありません追加ファイル引数がありません行スクリプトファイルを再び開こうとしました: "始めに戻る逆さまの範囲が指定されました, 入替えますか?Vimの登録ユーザーになってください!ビーッ!直前の %ld バイト末尾SAL行 と SOFO行 が %s で両方指定されていますブレークポイント "%s%s" 行 %ld%s の %d 行目の 条件は壊れています: %sSYLLABLE が指定されない COMPOUNDSYLMAX実行のためにシェルを呼出し中: "%s"変換に必要な一時ファイルが見つかりませんキャンセル作成できません 実行できません $VIMRUNTIME/rgb.txtを開けませんNILを開けません:
ファイル "%s" を開けません読込用として開けませんスクリプト出力用を開けませんディレクトリは取込めません: "%s"'undodir'のディレクトリにアンドゥファイルを書き込めません"%.*s" を次へ変換:タブページを閉じる列 %s / %s; 行 %ld of %ld; 単語 %lld / %lld; バイト %lld / %lld列 %s / %s; 行 %ld / %ld; 単語 %lld / %lld; 文字 %lld / %lld; バイト %lld of %lldコマンドラインコンパイル: コンパイラ: ノード %d 個(全 %d 個中) を圧縮しました; 残り %d (%d%%)単語ツリーを圧縮しています...%s (%d 行目) の単語を変換できませんでした: %s%s 内の変換はサポートされていません%s 内の次の変換はサポートされていません: %s から %s へ'charconvert' による変換が失敗しましたDLLから関数ポインタを取得できませんでしたセキュリティコンテキスト %s を %s から取得できません. 削除します!vim32.dll をロードできませんでしたNFA正規表現エンジン用のログファイルを書込用として開けません。NFA正規表現エンジン用のログファイルを書込用として開けません。ログは標準出力に出力します。セキュリティコンテキスト %s を %s に設定できませんCscope タグ: %s現在の %s言語: "%s"デバッグ行%s の %d 行目の PFX 項目の後の COMPOUNDFORBIDFLAG の定義は誤った結果を生じることがあります%s の %d 行目の PFX 項目の後の COMPOUNDPERMITFLAG の定義は誤った結果を生じることがありますVimで差分を表示する%s の %d 行目の 連続 affix ブロックのフラグの組合せに違いがあります: %s方向ディレクトリディレクトリ	*.nothing
本当に上書きしますか実行しました!リスト型の値に2つ以上の ; が検出されました下%s の %d 行目の 重複した /encoding= 行を無視しました: %s%s の %d 行目の 重複した /regions= 行を無視しました: %s%s の %d 行目に 重複した affix を検出しました: %s%s の %d 行目の MAP に重複した文字があります重複したフィールド名: %s%s の %d 行目で 重複単語が見つかりました: %sE100: 差分モードである他のバッファはありませんE101: 差分モードのバッファが2個以上あるので、どれを使うか特定できませんE102: バッファ "%s" が見つかりませんE103: バッファ "%s" は差分モードではありませんE104: 合字にEscapeは使用できませんE105: :source で取込むファイル以外では :loadkeymap を使えませんE107: カッコ '(' がありません: %sE108: その変数はありません: "%s"E109: '?' の後に ':' がありませんE10: \ の後は / か ? か & でなければなりませんE110: ')' が見つかりませんE111: ']' が見つかりませんE112: オプション名がありません: %sE113: 未知のオプションです: %sE114: 引用符 (") がありません: %sE115: 引用符 (') がありません: %sE116: 関数の無効な引数です: %sE117: 未知の関数です: %sE118: 関数の引数が多過ぎます: %sE119: 関数の引数が足りません: %sE11: コマンドラインでは無効です; <CR>で実行, CTRL-CでやめるE120: スクリプト以外で<SID>が使われました: %sE121: 未定義の変数です: %sE122: 関数 %s は定義済です, 再定義するには ! を追加してくださいE123: 未定義の関数です: %sE124: '(' がありません: %sE125: 不正な引数です: %sE126: :endfunction がありませんE127: 関数 %s を再定義できません: 使用中ですE128: 関数名は大文字か "s:" で始まらなければなりません: %sE129: 関数名が要求されますE12: 現在のディレクトリやタグ検索ではexrc/vimrcのコマンドは許可されませんE130: 未知の関数です: %sE131: 関数 %s を削除できません: 使用中ですE132: 関数呼出の入れ子数が 'maxfuncdepth' を超えましたE133: 関数外に :return がありましたE134: 行をそれ自身には移動できませんE135: *フィルタ* autocommandは現在のバッファを変更してはいけませんE136: viminfo: エラーが多過ぎるので, 以降はスキップしますE137: viminfoファイルが書込みできません: %sE138: viminfoファイル %s を保存できません!E139: 同じ名前のファイルが他のバッファで読込まれていますE13: ファイルが存在します (! を追加で上書)E140: バッファを部分的に保存するには ! を使ってくださいE141: バッファ %ld には名前がありませんE142: ファイルは保存されませんでした: 'write' オプションにより無効ですE143: autocommandが予期せず新しいバッファ %s を削除しましたE144: 数ではない引数が :z に渡されましたE145: rvimではシェルコマンドを使えませんE146: 正規表現は文字で区切ることができませんE147: :global を範囲付きで再帰的には使えませんE148: globalコマンドに正規表現が指定されていませんE149: 残念ですが %s にはヘルプがありませんE14: 無効なアドレスですE150: ディレクトリではありません: %sE151: マッチはありません: %sE152: 書込み用に %s を開けませんE153: 読込用に %s を開けませんE154: タグ "%s" がファイル %s/%s に重複していますE155: 未知のsignです: %sE156: sign名がありませんE157: 無効なsign識別子です: %ldE158: 無効なバッファ名です: %sE159: signの番号がありませんE15: 無効な式です: %sE160: 未知のsignコマンドです: %sE161: ブレークポイントが見つかりません: %sE162: バッファ "%s" の変更は保存されていませんE163: 編集するファイルは1つしかありませんE164: 最初のファイルより前には行けませんE165: 最後のファイルを越えて後には行けませんE166: リンクされたファイルに書込めませんE167: :scriptencoding が取込スクリプト以外で使用されましたE168: :finish が取込スクリプト以外で使用されましたE169: コマンドが再帰的過ぎますE16: 無効な範囲ですE170: :endfor がありませんE170: :endwhile がありませんE171: :endif がありませんE172: ファイル名は 1 つにしてくださいE173: 編集すべきファイルがあと %ld 個ありますE173: 編集すべきファイルが 1 個ありますE174: コマンドが既にあります: 再定義するには ! を追加してくださいE175: 属性は定義されていませんE176: 引数の数が無効ですE177: カウントを2重指定することはできませんE178: カウントの省略値が無効ですE179: -addr には引数が必要ですE179: -complete には引数が必要ですE17: "%s" はディレクトリですE180: 無効なアドレスタイプ値です: %sE180: 無効な補完指定です: %sE181: 無効な属性です: %sE182: 無効なコマンド名ですE183: ユーザー定義コマンドは英大文字で始まらなければなりませんE184: そのユーザー定義コマンドはありません: %sE185: カラースキーム '%s' が見つかりませんE186: 前のディレクトリはありませんE187: 未知E188: このプラットホームにはウィンドウ位置の取得機能は実装されていませんE189: "%s" が存在します (上書するには ! を追加してください)E18: 予期せぬ文字が :let にありましたE190: "%s" を書込み用として開けませんE191: 引数は1文字の英字か引用符 (' か `) でなければいけませんE192: :normal の再帰利用が深くなり過ぎましたE193: 関数の外に :endfunction がありましたE194: '#'を置き換える副ファイルの名前がありませんE195: viminfoファイルを読込用として開けませんE196: このバージョンに合字はありませんE197: 言語を "%s" に設定できませんE198: cmd_pchar がコマンド長を超えましたE199: アクティブなウィンドウかバッファが削除されましたE19: マークに無効な行番号が指定されていましたE200: *ReadPre autocommand がファイルを読込不可にしましたE201: *ReadPre autocommand は現在のバッファを変えられませんE202: 変換がファイルを読込不可にしましたE203: 保存するバッファをautocommandが削除か解放しましたE204: autocommandが予期せぬ方法で行数を変更しましたE205: patchmode: 原本ファイルを保存できませんE206: patchmode: 空の原本ファイルをtouchできませんE207: バックアップファイルを消せませんE208: "%s" を書込み中のエラーですE209: "%s" を閉じる時にエラーですE20: マークは設定されていませんE210: "%s" を読込中のエラーですE211: ファイル "%s" は既に存在しませんE212: 書込み用にファイルを開けませんE213: 変換できません (! を追加で変換せずに保存)E214: 保存用一時ファイルが見つかりませんE215: * の後に不正な文字がありました: %sE216: そのようなイベントはありません: %sE216: そのようなグループもしくはイベントはありません: %sE217: 全てのイベントに対してのautocommandは実行できませんE218: autocommandの入れ子が深過ぎますE219: { がありません.E21: 'modifiable' がオフなので, 変更できませんE220: } がありません.E222: 読込バッファへ追加E223: 再帰的マッピングE224: %s というグローバル短縮入力は既に存在しますE225: %s というグローバルマッピングは既に存在しますE226: %s という短縮入力は既に存在しますE227: %s というマッピングは既に存在しますE228: makemap: 不正なモードE229: GUIを開始できませんE22: スクリプトの入れ子が深過ぎますE230: "%s"から読込むことができませんE231: 'guifontwide' が無効ですE232: メッセージとコールバックのある BalloonEval を作成できませんE233: ディスプレイを開けませんE234: 未知のフォントセット: %sE235: 未知のフォント: %sE236: フォント "%s" は固定幅ではありませんE237: プリンタの選択に失敗しましたE238: 印刷エラー: %sE239: 無効なsignのテキストです: %sE23: 副ファイルはありませんE240: X サーバーへの接続がありませんE241: %s へ送ることができませんE243: 引数はサポートされません: "-%s"; OLE版を使用してください.E244: 文字セット名 "%s" は不正です (フォント名 "%s")E244: 品質名 "%s" は不正です (フォント名 "%s")E245: '%c' は不正な文字です (フォント名 "%s")E246: autocommand の FileChangedShell がバッファを削除しましたE247: %s という名前の登録されたサーバーはありませんE248: 目的のプログラムへのコマンド送信に失敗しましたE24: そのような短縮入力はありませんE250: 以下の文字セットのフォントがありません %s:E251: VIM 実体の登録プロパティが不正です. 消去しました!E252: フォントセット名: %sE253: フォントセット名: %sE254: %s の色を割り当てられませんE255: sign のデータを読込めませんでしたE256: ハングルオートマトンエラーE257: cstag: タグが見つかりませんE258: クライアントへ送ることができませんE259: cscopeクエリー %s of %s に該当がありませんでしたE25: GUIは使用不可能です: コンパイル時に無効にされていますE261: cscope接続 %s が見つかりませんでしたE262: cscopeの接続 %ld を読込み中のエラーですE263: このコマンドは無効です,ごめんなさい: Pythonライブラリをロードできませんでした.E264: Python: I/Oオブジェクトの初期化エラーE265: $_ は文字列のインスタンスでなければなりませんE266: このコマンドは無効です,ごめんなさい: Rubyライブラリをロードできませんでした.E267: 予期せぬ return ですE268: 予期せぬ next ですE269: 予期せぬ break ですE26: ヘブライ語は使用不可能です: コンパイル時に無効にされています
E270: 予期せぬ redo ですE271: rescue の外の retry ですE272: 取り扱われなかった例外がありますE273: 未知のlongjmp状態: %dE277: サーバーの応答がありませんE27: ペルシア語は使用不可能です: コンパイル時に無効にされています
E280: TCL 致命的エラー: reflist 汚染!? vim-dev@vim.org に報告してくださいE282: "%s"から読込むことができませんE283: "%s" に該当するマークがありませんE284: ICの値を設定できませんE285: インプットコンテキストの作成に失敗しましたE286: インプットメソッドのオープンに失敗しましたE287: 警告: IMの破壊コールバックを設定できませんでしたE288: インプットメソッドはどんなスタイルもサポートしませんE289: インプットメソッドは my preedit type をサポートしませんE28: そのような名のハイライトグループはありません: %sE293: ブロックがロックされていませんE294: スワップファイル読込時にシークエラーですE295: スワップファイルの読込みエラーですE296: スワップファイル書込み時にシークエラーですE297: スワップファイルの書込みエラーですE298: ブロック 0 を取得できません?E298: ブロック 1 を取得できません?E298: ブロック 2 を取得できません?E299: サンドボックスでは Safe モジュールを使用しないPerlスクリプトは禁じられていますE29: まだテキストが挿入されていませんE300: スワップファイルが既に存在します (symlinkによる攻撃?)E301: おっと, スワップファイルが失われました!!!E302: スワップファイルの名前を変えられませんE303: "%s" のスワップファイルを開けないのでリカバリは不可能ですE304: ml_upd_block0(): ブロック 0 を取得できませんでした??E305: %s にはスワップファイルが見つかりませんE306: %s を開けませんE307: %s はVimのスワップファイルではないようですE308: 警告: 原本ファイルが変更されていますE309: %s からブロック 1 を読込めませんE30: 以前にコマンド行がありませんE310: ブロック 1 のIDが間違っています(%s が.swpファイルでない?)E311: リカバリが割込まれましたE312: リカバリの最中にエラーが検出されました; ???で始まる行を参照してくださいE313: スワップファイルが無いので維持できませんE314: 維持に失敗しましたE315: ml_get: 無効なlnumです: %ldE316: ml_get: 行 %ld を見つけられませんE317: ポインタブロックのIDが間違っていますE317: ポインタブロックのIDが間違っています 2E317: ポインタブロックのIDが間違っています 3E317: ポインタブロックのIDが間違っています 4E318: 更新されたブロックが多過ぎるかも?E319: このバージョンではこのコマンドは利用できません, ごめんなさいE31: そのようなマッピングはありませんE320: 行 %ld が見つかりませんE321: "%s" はリロードできませんでしたE322: 行番号が範囲外です: %ld 超えていますE323: ブロック %ld の行カウントが間違っていますE324: PostScript出力用のファイルを開けませんE325: 注意E326: スワップファイルが多数見つかりましたE327: メニューアイテムのパスの部分がサブメニューではありませんE328: メニューは他のモードにだけありますE329: "%s" というメニューはありませんE32: ファイル名がありませんE330: メニューパスはサブメニューを生じるべきではありませんE331: メニューバーには直接メニューアイテムを追加できませんE332: 区切りはメニューパスの一部ではありませんE333: メニューパスはメニューアイテムを生じなければいけませんE334: メニューが見つかりません: %sE335: %s にはメニューが定義されていませんE336: メニューパスはサブメニューを生じなければいけませんE337: メニューが見つかりません - メニュー名を確認してくださいE338: コンソールモードではファイルブラウザを使えません, ごめんなさいE339: パターンが長過ぎますE33: 正規表現置換がまだ実行されていませんE340: 行が長くなり過ぎましたE341: 内部エラー: lalloc(%ld,)E342: メモリが足りません!  (%lu バイトを割当要求)E343: 無効なパスです: '**[数値]' はpathの最後か '%s' が続いてないといけません.E344: cdpathには "%s" というファイルがありませんE345: pathには "%s" というファイルがありませんE346: cdpathにはこれ以上 "%s" というファイルがありませんE347: パスにはこれ以上 "%s" というファイルがありませんE348: カーソルの位置には文字列がありませんE349: カーソルの位置には識別子がありませんE34: コマンドがまだ実行されていませんE350: 現在の 'foldmethod' では折畳みを作成できませんE351: 現在の 'foldmethod' では折畳みを削除できませんE352: 現在の 'foldmethod' では折畳みを消去できませんE353: レジスタ %s には何もありませんE354: 無効なレジスタ名: '%s'E355: 未知のオプションです: %sE356: get_varp エラーE357: 'langmap': %s に対応する文字がありませんE358: 'langmap': セミコロンの後に余分な文字があります: %sE359: スクリーンモードの設定には対応していませんE35: 正規表現がまだ実行されていませんE360: -f オプションでシェルを実行できませんE363: パターンが 'maxmempattern' 以上のメモリを使用しますE364: "%s"() のライブラリ呼出に失敗しましたE365: PostScriptファイルの印刷に失敗しましたE367: そのグループはありません: "%s"E369: 無効な項目です: %s%%[]E36: ウィンドウに十分な高さもしくは幅がありませんE370: ライブラリ %s をロードできませんでしたE371: コマンドがありませんE372: フォーマット文字列に %%%c が多過ぎますE373: フォーマット文字列に予期せぬ %%%c がありましたE374: フォーマット文字列に ] がありませんE375: フォーマット文字列では %%%c はサポートされませんE376: フォーマット文字列の前置に無効な %%%c がありますE377: フォーマット文字列に無効な %%%c がありますE378: 'errorformat' にパターンが指定されていませんE379: ディレクトリ名が無いか空ですE37: 最後の変更が保存されていませんE37: 最後の変更が保存されていません (! を追加で変更を破棄)E380: quickfix スタックの末尾ですE381: quickfix スタックの先頭ですE382: 'buftype' オプションが設定されているので書込みませんE383: 無効な検索文字列です: %sE384: 上まで検索しましたが該当箇所はありません: %sE385: 下まで検索しましたが該当箇所はありません: %sE386: ';' のあとには '?' か '/' が期待されているE387: 現在行に該当がありますE388: 定義を見つけられませんE389: パターンを見つけられませんE38: 引数が空ですE390: 不正な引数です: %sE391: そのような構文クラスタはありません: %sE392: そのような構文クラスタはありません: %sE393: ここではグループは許可されませんE394: %s の範囲要素が見つかりませんE395: この場所では引数containsは許可されていませんE397: ファイル名が必要ですE398: '=' がありません: %sE399: 引数が足りません: 構文範囲 %sE39: 数値が要求されていますE400: クラスタが指定されていませんE401: パターン区切りが見つかりません: %sE402: パターンのあとにゴミがあります: %sE403: 構文同期: 連続行パターンが2度指定されましたE404: 不正な引数です: %sE405: 等号がありません: %sE406: 空の引数: %sE407: %s はココでは許可されていませんE408: %s は内容リストの先頭でなければならないE409: 未知のグループ名: %sE40: エラーファイル %s を開けませんE410: 無効な :syntax のサブコマンド: %sE411: ハイライトグループが見つかりません: %sE412: 引数が充分ではない: ":highlight link %s"E413: 引数が多過ぎます: ":highlight link %s"E414: グループが設定されているのでハイライトリンクは無視されますE415: 予期せぬ等号です: %sE416: 等号がありません: %sE417: 引数がありません: %sE418: 不正な値です: %sE419: 未知の前景色ですE41: メモリが尽き果てました!E420: 未知の背景色ですE421: カラー名や番号を認識できません: %sE422: 終端コードが長過ぎます: %sE423: 不正な引数です: %sE424: 多くの異なるハイライト属性が使われ過ぎていますE425: 最初の該当タグを越えて戻ることはできませんE426: タグが見つかりません: %sE427: 該当タグが1つだけしかありませんE428: 最後の該当タグを越えて進むことはできませんE429: ファイル "%s" がありませんE42: エラーはありませんE430: タグファイルのパスが %s に切り捨てられました
E431: タグファイル "%s" のフォーマットにエラーがありますE432: タグファイルがソートされていません: %sE433: タグファイルがありませんE434: タグパターンを見つけられませんE435: タグを見つけられないので単に推測します!E436: termcapに "%s" のエントリがありませんE437: 端末に "cm" 機能が必要ですE438: u_undo: 行番号が間違っていますE439: アンドゥリストが壊れていますE43: 該当文字列が破損していますE440: アンドゥ行がありませんE441: プレビューウィンドウがありませんE442: 左上と右下を同時に分割することはできませんE443: 他のウィンドウが分割されている時には順回できませんE444: 最後のウィンドウを閉じることはできませんE445: 他のウィンドウには変更がありますE446: カーソルの下にファイル名がありませんE447: pathには "%s" というファイルがありませんE448: ライブラリの関数 %s をロードできませんでしたE449: 無効な式を受け取りましたE44: 不正な正規表現プログラムですE455: PostScript出力ファイルの書込みエラーですE456: PostScriptのリソースファイル "%s.ps" が見つかりませんE456: PostScriptのリソースファイル "cidfont.ps" が見つかりませんE456: PostScriptのリソースファイル "prolog.ps" が見つかりませんE456: ファイル "%s" を開けませんE457: PostScriptのリソースファイル "%s" を読込めませんE459: 前のディレクトリに戻れませんE45: 'readonly' オプションが設定されています (! を追加で上書き)E460: リソースフォークが失われるかもしれません (! を追加で強制)E461: 不正な変数名です: %sE462: "%s" をリロードする準備ができませんでしたE463: 領域が保護されているので, 変更できませんE464: ユーザー定義コマンドのあいまいな使用ですE465: :winsize には2つの数値の引数が必要ですE466: :winpos には2つの数値の引数が必要ですE467: カスタム補完には引数として関数が必要ですE468: 補完引数はカスタム補完でしか使用できませんE469: 無効な cscopequickfix フラグ %c の %c ですE46: 読取専用変数 "%s" には値を設定できませんE470: コマンドが中断されましたE471: 引数が必要ですE472: コマンドが失敗しましたE473: 内部エラーですE474: 無効な引数ですE475: 無効な引数です: %sE476: 無効なコマンドですE477: ! は許可されていませんE478: 慌てないでくださいE479: 該当はありませんE47: エラーファイルの読込中にエラーが発生しましたE480: 該当はありません: %sE481: 範囲指定は許可されていませんE482: ファイル %s を作成できませんE483: 一時ファイルの名前を取得できませんE484: ファイル "%s" を開けませんE485: ファイル %s を読込めませんE486: パターンは見つかりませんでした: %sE487: 引数は正の値でなければなりませんE488: 余分な文字が後ろにありますE48: サンドボックスでは許されませんE490: 折畳みがありませんE492: エディタのコマンドではありませんE493: 逆さまの範囲が指定されましたE494: w もしくは w>> を使用してくださいE495: "<afile>"を置き換えるautocommandのファイル名がありませんE496: "<abuf>"を置き換えるautocommandバッファ番号がありませんE497: "<amatch>"を置き換えるautocommandの該当名がありませんE498: "<sfile>"を置き換える :source 対象ファイル名がありませんE499: '%' や '#' が無名ファイルなので ":p:h" を伴わない使い方はできませんE49: 無効なスクロール量ですE500: 空文字列として評価されましたE501: ファイルの終了位置E505: "%s" は読込専用です (強制書込には ! を追加)E505: %s は読込専用です (強制書込には ! を追加)E506: バックアップファイルを保存できません (! を追加で強制保存)E507: バックアップファイルを閉じる際にエラーが発生しました (! を追加で強制)E508: バックアップ用ファイルを読込めません (! を追加で強制読込)E509: バックアップファイルを作れません (! を追加で強制作成)E50: \z( が多過ぎますE510: バックアップファイルを作れません (! を追加で強制作成)E511: NetBeansは既に接続していますE512: 閉じることに失敗E513: 書込みエラー, 変換失敗 (上書するには 'fenc' を空にしてください)E513: 書込みエラー, 変換失敗, 行数 %ld (上書するには 'fenc' を空にしてください)E514: 書込みエラー, (ファイルシステムが満杯?)E515: 解放されたバッファはありませんE516: 削除されたバッファはありませんE517: 破棄されたバッファはありませんE518: 未知のオプションですE519: オプションはサポートされていませんE51: %s( が多過ぎますE520: modeline では許可されませんE521: = の後には数字が必要ですE521: 数字が必要です: &%s = '%s'E522: termcap 内に見つかりませんE523: ここでは許可されませんE524: コロンがありませんE525: 文字列の長さがゼロですE526: <%s> の後に数字がありませんE527: カンマがありませんE528: ' の値を指定しなければなりませんE529: 'term' には空文字列を設定できませんE52: \z( が釣り合っていませんE530: GUIでは 'term' を変更できませんE531: GUIをスタートするには ":gui" を使用してくださいE533: ワイドフォントを選択できませんE534: 無効なワイドフォントですE535: <%c> の後に不正な文字がありますE536: カンマが必要ですE537: 'commentstring' は空であるか %s を含む必要がありますE538: マウスはサポートされませんE539: 不正な文字です <%s>E53: %s%%( が釣り合っていませんE540: 式が終了していませんE541: 要素が多過ぎますE542: グループが釣合いませんE543: 無効なコードページですE544: キーマップファイルが見つかりませんE545: コロンがありませんE546: 不正なモードですE547: 不正な 'mouseshape' ですE548: 数値が必要ですE549: 不正なパーセンテージですE54: %s( が釣り合っていませんE550: コロンがありませんE551: 不正な構文要素ですE552: 数値が必要ですE553: 要素がもうありませんE554: %s{...} 内に文法エラーがありますE555: タグスタックの末尾ですE556: タグスタックの先頭ですE557: termcapファイルを開けませんE558: terminfoに端末エントリを見つけられませんE559: termcapに端末エントリを見つけられませんE55: %s) が釣り合っていませんE560: 使用方法: cs[cope] %sE561: 未知のcscope検索型ですE562: 使用法: cstag <ident>E563: stat エラーE563: stat(%s) エラー: %dE564: %s はディレクトリ及び有効なcscopeのデータベースではありませんE566: cscopeパイプを作成できませんでしたE567: cscope接続に失敗しましたE568: 重複するcscopeデータベースは追加されませんでしたE570: cs_manage_matches で致命的なエラーですE571: このコマンドは無効です,ごめんなさい: Tclライブラリをロードできませんでした.E572: 終了コード %dE573: 無効なサーバーIDが使われました: %sE574: 未知のレジスタ型 %d ですE579: :if の入れ子が深過ぎますE580: :if のない :endif がありますE581: :if のない :else がありますE582: :if のない :elseif がありますE583: 複数の :else がありますE584: :else の後に :elseif がありますE585: :while や :for の入れ子が深過ぎますE586: :while や :for のない :continue がありますE587: :while や :for のない :break がありますE588: :endfor のない :for がありますE588: :while のない :endwhile がありますE589: 'backupext' と 'patchmode' が同じですE590: プレビューウィンドウが既に存在しますE591: 'winheight' は 'winminheight' より小さくできませんE592: 'winwidth' は 'winminwidth' より小さくできませんE593: 最低 %d の行数が必要ですE594: 最低 %d のカラム幅が必要ですE595: 表示できない文字かワイド文字を含んでいますE596: 無効なフォントですE597: フォントセットを選択できませんE598: 無効なフォントセットですE599: 'imactivatekey' に設定された値が無効ですE59: %s@ の後に不正な文字がありましたE600: :endtry がありませんE601: :try の入れ子が深過ぎますE602: :try のない :endtry ですE603: :try のない :catch がありますE604: :finally の後に :catch がありますE605: 例外が捕捉されませんでした: %sE606: :try のない :finally がありますE607: 複数の :finally がありますE608: 'Vim' で始まる例外は :throw できませんE609: cscopeエラー: %sE60: 複雑な %s{...} が多過ぎますE612: signの定義が多数見つかりましたE613: 未知のプリンタオプションです: %sE614: vim_SelFile: 現在のディレクトリに戻れませんE615: vim_SelFile: 現在のディレクトリを取得できませんE616: vim_SelFile: フォント %s を取得できませんE617: GTK+2 GUIでは変更できませんE618: ファイル "%s" は PostScript リソースファイルではありませんE619: ファイル "%s" は対応していない PostScript リソースファイルですE61:%s* が入れ子になっていますE620: 印刷エンコード "%s" へ変換できませんE621: リソースファイル "%s" はバージョンが異なりますE622: cscopeの起動準備(fork)に失敗しましたE623: cscopeプロセスを起動できませんでしたE624: ファイル "%s" を開けませんE625: cscopeデータベース: %s を開くことができませんE626: cscopeデータベースの情報を取得できませんE62:%s%c が入れ子になっていますE630: %s(): 非接続状態で書き込みましたE631: %s(): 書き込みに失敗しましたE63: \_ の無効な使用方法ですE64:%s%c の後になにもありませんE655: シンボリックリンクが多過ぎます (循環している可能性があります)E658: バッファ %ld の NetBeans 接続が失われましたE659: Python を再帰的に実行することはできませんE65: 不正な後方参照ですE661: 残念ですが '%s' のヘルプが %s にはありませんE662: 変更リストの先頭E663: 変更リストの末尾E664: 変更リストが空ですE665: 有効なフォントが見つからないので, GUIを開始できませんE666: そのコンパイラには対応していません: %sE667: fsync に失敗しましたE668: NetBeansの接続情報ファイルのアクセスモードに問題があります: "%s"E669: グループ名に印刷不可能な文字がありますE66: \z( はココでは許可されていませんE670: 1つの言語のヘルプファイルに複数のエンコードが混在しています: %sE671: タイトルが "%s" のウィンドウは見つかりませんE672: MDIアプリの中ではウィンドウを開けませんE673: 互換性の無いマルチバイトエンコーディングと文字セットですE674: マルチバイトエンコーディングでは printmbcharset を空にできませんE675: マルチバイト文字を印刷するためのデフォルトフォントが指定されていませんE676: acwriteバッファの該当するautocommandは存在しませんE677: 一時ファイル書込中にエラーが発生しましたE678: %s%%[dxouU] の後に不正な文字がありましたE679: syncolor.vim の再帰呼び出しを検出しましたE67: \z1 その他はココでは許可されていませんE680: <バッファ=%d>: 無効なバッファ番号です E681: バッファは読み込まれませんでしたE682: 検索パターンか区切り記号が不正ですE683: ファイル名が無いか無効なパターンですE684: リストのインデックスが範囲外です: %ldE685: 内部エラーです: %sE686: %s の引数はリスト型でなければなりませんE687: ターゲットがリスト型内の要素よりも少ないですE688: ターゲットがリスト型内の要素よりも多いですE689: リスト型と辞書型以外はインデックス指定できませんE68: \z の後に不正な文字がありましたE690: :for の後に "in" がありませんE691: リスト型はリスト型としか比較できませんE692: リスト型には無効な操作ですE694: 関数参照型には無効な操作ですE695: 関数参照型はインデックスできませんE696: リスト型にカンマがありません: %sE697: リスト型の最後に ']' がありません: %sE698: コピーを取るには変数の入れ子が深過ぎますE699: 引数が多過ぎますE69: %s%%[ の後に ] がありませんE700: 未知の関数です: %sE701: len() には無効な型ですE702: ソートの比較関数が失敗しましたE703: 関数参照型を数値として扱っています。E704: 関数参照型変数名は大文字で始まらなければなりません: %sE705: 変数名が既存の関数名と衝突します: %sE707: 関数名が変数名と衝突します: %sE708: [:] は最後でなければいけませんE709: [:] にはリスト型の値が必要ですE70: %s%%[] が空ですE710: リスト型変数にターゲットよりも多い要素がありますE711: リスト型変数に十分な数の要素がありませんE712: %s の引数はリスト型または辞書型でなければなりませんE713: 辞書型に空のキーを使うことはできませんE714: リスト型が必要ですE715: 辞書型が必要ですE716: 辞書型にキーが存在しません: %sE717: 辞書型内にエントリが既に存在しますE718: 関数参照型が要求されますE719: [:] を辞書型と組み合わせては使えませんE71: %s%% の後に不正な文字がありましたE720: 辞書型にコロンがありません: %sE721: 辞書型に重複キーがあります: "%s"E722: 辞書型にカンマがありません: %sE723: 辞書型の最後に '}' がありません: %sE724: 表示するには変数の入れ子が深過ぎますE725: 辞書用関数が呼ばれましたが辞書がありません: %sE726: ストライド(前進量)が 0 ですE727: 開始位置が終了位置を越えましたE728: 辞書型を数値として扱っていますE729: 関数参照型を文字列として扱っていますE72: スワップファイルのクローズ時エラーですE730: リスト型を文字列として扱っていますE731: 辞書型を文字列として扱っていますE732: :endfor を :while と組み合わせていますE733: :endwhile を :for と組み合わせていますE734: 異なった型の変数です %s=E735: 辞書型は辞書型としか比較できませんE736: 辞書型には無効な操作ですE737: キーは既に存在します: %sE738: %s の値を一覧表示できませんE739: ディレクトリを作成できません: %sE73: タグスタックが空ですE740: 関数の引数が多過ぎます: %sE741: 値がロックされています: %sE742: %s の値を変更できませんE743: (アン)ロックするには変数の入れ子が深過ぎますE744: NetBeans は読込専用ファイルを変更することを許しませんE745: リスト型を数値として扱っていますE746: 関数名がスクリプトのファイル名と一致しません: %sE747: バッファが修正されているので, ディレクトリを変更できません (! を追加で上書)E748: まだレジスタを使用していませんE749: バッファが空ですE74: コマンドが複雑過ぎますE750: 初めに ":profile start {fname}" を実行してくださいE751: 出力ファイル名には範囲名を含められませんE752: スペル置換がまだ実行されていませんE753: 見つかりません: %sE754: 範囲は 8 個までしかサポートされていませんE755: 無効な範囲です: %sE756: スペルチェックは無効化されていますE757: スペルファイルではないようですE758: スペルファイルが切取られているようですE75: 名前が長過ぎますE760: %s には単語数がありませんE761: affixファイルの FOL, LOW もしくは UPP のフォーマットにエラーがありますE762: FOL, LOW もしくは UPP の文字が範囲外ですE763: 単語の文字がスペルファイルと異なりますE764: オプション '%s' は設定されていませんE765: 'spellfile' には %ld 個のエントリはありませんE766: printf() の引数が不十分ですE767: printf() の引数が多過ぎますE768: スワップファイルが存在します: %s (:silent! を追加で上書)E769: %s[ の後に ] がありませんE76: [ が多過ぎますE770: スペルファイルにサポートしていないセクションがありますE771: 古いスペルファイルなので, アップデートしてくださいE772: より新しいバージョンの Vim 用のスペルファイルですE773: "%s" のシンボリックリンクがループになっていますE774: 'operatorfunc' オプションが空ですE775: 式評価機能が無効になっていますE776: ロケーションリストはありませんE777: 文字列かリストが必要ですE778: .sug ファイルではないようです: %sE779: 古い .sug ファイルなので, アップデートしてください: %sE77: ファイル名が多過ぎますE780: より新しいバージョンの Vim 用の .sug ファイルです: %sE781: .sug ファイルが .spl ファイルと一致しません: %sE782: .sug ファイルの読込中にエラーが発生しました: %sE783: MAP エントリに重複文字が存在しますE784: 最後のタブページを閉じることはできませんE785: complete() は挿入モードでしか利用できませんE786: 範囲指定は許可されていませんE787: 予期せずバッファが変更変更されましたE788: 現在は他のバッファを編集することは許されませんE789: ']' がありません: %sE78: 未知のマークE790: undo の直後に undojoin はできませんE791: 空のキーマップエントリE792: メニュー名が空ですE793: 差分モードである他のバッファは変更できませんE794: サンドボックスでは変数 "%s" に値を設定できませんE795: 変数 %s を削除できませんE797: autocommand の SpellFileMissing がバッファを削除しましたE798: ID は ":match" のために予約されています: %ldE799: 無効な ID: %ld (1 以上でなければなりません)E79: ワイルドカードを展開できませんE800: アラビア語は使用不可能です: コンパイル時に無効にされています
E801: ID はすでに利用中です: %ldE802: 無効な ID: %ld (1 以上でなければなりません)E803: ID はありません: %ldE804: '%' を浮動小数点数と組み合わせては使えませんE805: 浮動小数点数を数値として扱っていますE806: 浮動小数点数を文字列として扱っていますE807: printf() の引数には浮動小数点数が期待されていますE808: 数値か浮動小数点数が必要ですE809: #< は +eval 機能が無いと利用できませんE80: 書込み中のエラーE810: 一時ファイルの読込もしくは書込ができませんE811: 現在はバッファ情報を変更することは許されませんE812: autocommandがバッファかバッファ名を変更しましたE813: autocmdウィンドウは閉じられませんE814: autocmdウィンドウしか残らないため、ウィンドウは閉じられませんE815: このコマンドは無効です. MzScheme ライブラリをロードできません.E816: patchの出力を読込めませんE817: Blowfish暗号のビッグ/リトルエンディアンが間違っていますE818: sha256のテストに失敗しましたE819: Blowfish暗号のテストに失敗しましたE81: スクリプト以外で<SID>が使われましたE820: sizeof(uint32_t) != 4E821: ファイルが未知の方法で暗号化されていますE822: アンドゥファイルを読込用として開けません: %sE823: アンドゥファイルではありません: %sE824: 互換性の無いアンドゥファイルです: %sE825: アンドゥファイルが壊れています (%s): %sE826: 暗号化されたアンドゥファイルの解読に失敗しました: %sE827: アンドゥファイルが暗号化されています: %sE828: 書込み用にアンドゥファイルを開けません: %sE829: アンドゥファイルの書き込みエラーです: %sE82: バッファを1つも作成できないので, 終了します...E830: アンドゥ番号 %ld は見つかりませんE831: bf_key_init() が空パスワードで呼び出されましたE832: 非暗号化ファイルが暗号化されたアンドゥファイルを使ってます: %sE833: %s はこのバージョンのVimでサポートしていない形式で暗号化されていますE834: 'listchars'の値に矛盾がありますE835: 'fillchars'の値に矛盾がありますE836: このVimでは :py3 を使った後に :python を使えませんE837: このVimでは :python を使った後に :py3 を使えませんE838: NetBeansはこのGUIには対応していませんE839: 補間関数がウィンドウを変更しましたE83: バッファを作成できないので, 他のを使用します...E840: 補完関数がテキストを削除しましたE841: 予約名なので, ユーザー定義コマンドに利用できませんE842: "<slnum>"を置き換える行番号がありませんE843: スワップファイルの暗号を更新中にエラーが発生しましたE844: 無効なccharの値ですE845: メモリが足りないので、単語リストは不完全ですE846: キーコードが設定されていませんE847: 構文の取り込み(include)が多過ぎますE848: 構文クラスタが多過ぎますE849: ハイライトと構文グループが多過ぎますE84: 変更されたバッファはありませんE850: 無効なレジスタ名ですE851: GUI用のプロセスの起動に失敗しましたE852: 子プロセスがGUIの起動に失敗しましたE853: 引数名が重複しています: %sE854: パスが長過ぎて補完できませんE855: autocommandがコマンドの停止を引き起こしましたE858: 式評価は有効なpythonオブジェクトを返しませんでしたE859: 返されたpythonオブジェクトをvimの値に変換できませんでしたE85: リスト表示されるバッファはありませんE862: ここでは g: は使えませんE864: \%#= には 0, 1 もしくは 2 のみが続けられます。正規表現エンジンは自動選択されます。E865: (NFA) 期待より早く正規表現の終端に到達しましたE866: (NFA 正規表現) 位置が誤っています: %cE867: (NFA) 未知のオペレータです: '\%%%c'E867: (NFA) 未知のオペレータです: '\z%c'E868: 等価クラスを含むNFA構築に失敗しました!E869: (NFA) 未知のオペレータです: '\@%c'E86: バッファ %ld はありませんE870: (NFA 正規表現) 繰り返しの制限回数を読込中にエラーE871: (NFA 正規表現) 繰り返し の後に 繰り返し はできません!E872: (NFA 正規表現) '(' が多過ぎますE873: (NFA 正規表現) 終端記号がありませんE874: (NFA) スタックをポップできません!E875: (NFA 正規表現) (後置文字列をNFAに変換中に) スタックに残されたステートが多過ぎますE876: (NFA 正規表現) NFA全体を保存するには空きスペースが足りませんE877: (NFA 正規表現) 無効な文字クラス: %ldE878: (NFA) 現在横断中のブランチに十分なメモリを割り当てられません!E879: (NFA 正規表現) \z( が多過ぎますE87: 最後のバッファを越えて移動はできませんE881: 予期せず行カウントが変わりましたE882: Uniq の比較関数が失敗しましたE883: 検索パターンと式レジスタには2行以上を含められませんE884: 関数名にはコロンは含められません: %sE885: 変更できない sign です: %sE886: viminfoファイルを %s へ名前変更できません!E887: このコマンドは無効です,ごめんなさい. Python の site モジュールをロードできませんでした.E888: (NFA 正規表現) 繰り返せません %sE88: 最初のバッファより前へは移動できませんE890: ']' の後ろに余分な文字があります: %s]%sE891: 関数参照型を浮動小数点数として扱っています。E892: 文字列を浮動小数点数として扱っていますE893: リスト型を浮動小数点数として扱っていますE894: 辞書型を浮動小数点数として扱っていますE895: このコマンドは無効です,ごめんなさい. MzScheme の racket/base モジュールがロードできませんでした.E898: channel_open() 内の socket() が失敗しましたE89: バッファ %ld の変更は保存されていません (! で変更を破棄)E901: channel_open() 内の gethostbyname() が失敗しましたE902: ポートに接続できませんE903: 非文字列の引数のコマンドを受信しましたE904: expr/call の最後の引数は数字でなければなりませんE904: call の3番目の引数はリスト型でなければなりませんE905: 未知のコマンドを受信しました: %sE906: 開いていないチャンネルですE907: 特殊値を浮動小数点数として扱っていますE908: 無効な値を文字列として扱っていますE909: 特殊変数はインデックスできませんE90: 最後のバッファは解放できませんE910: ジョブを数値として扱っていますE911: ジョブを浮動小数点数として扱っていますE912: raw や nl モードのチャンネルに ch_evalexpr()/ch_sendexpr() は使えませんE913: チャンネルを数値として扱っています。E914: チャンネルを浮動小数点数として扱っています。E915: in_io バッファは in_buf か in_name の設定が必要ですE916: 有効なジョブではありませんE917: %s() にコールバックは使えませんE918: バッファがロードされてなければなりません: %sE919: ディレクトリが '%s' の中にありません: "%s"E91: 'shell' オプションが空ですE920: _io ファイルは _name の設定が必要ですE921: 無効なコールバック引数ですE922: 辞書が期待されていますE923: function() の第 2 引数はリスト型または辞書型でなければなりませんE924: 現在のウィンドウが閉じられましたE925: 現在の quickfix が変更されましたE926: 現在のロケーションリストが変更されましたE927: 無効な操作です: %sE928: 文字列が必要ですE929: 一時viminfoファイルが多過ぎます! 例: %sE92: バッファ %ld が見つかりませんE930: execute() の中では :redir は使えませんE931: バッファを登録できませんE932: クロージャー関数はトップレベルに記述できません: %sE933: 関数は削除されました: %sE934: 名前の無いバッファへはジャンプできませんE935: 無効なサブマッチ番号: %dE936: 現在のグループは削除できませんE937: 使用中のバッファを削除しようと試みましたE938: JSONに重複キーがあります: "%s"E939: 正のカウントが必要ですE93: %s に複数の該当がありましたE940: 変数 %s はロックまたはアンロックできませんE941: サーバーはすでに開始していますE942: +clientserver 機能が無効になっていますE943: コマンドテーブルを更新する必要があります、'make cmdidxs' を実行してくださいE944: 文字クラスの範囲が逆ですE945: 文字クラスの範囲が大きすぎますE94: %s に該当するバッファはありませんでしたE95: この名前のバッファは既にありますE96: %ld 以上のバッファはdiffできませんE97: 差分を作成できませんE98: diffの出力を読込めませんE99: 現在のバッファは差分モードではありませんエラー: ファイルを編集新しいウィンドウでファイルを編集しますVimで編集する (&V)複数のVimで編集する (&M)起動済のVimで編集する - 1つのVimで編集する (&V)選択したファイルをVimで編集するエンコード:関数の最後です取込ファイルの最後です暗号化用のキーを入力してください: 使用するスワップファイルの番号を入力してください(0 で終了): もう一度同じキーを入力してください: デバッグモードに入ります. 続けるには "cont" と入力してください.Exモードに入ります. ノーマルモードに戻るには"visual"と入力してください.エラーエラーと割込みプロセスの作成に失敗: gvimが環境変数PATH上にあるか確認してください!%s の処理中にエラーが検出されました:エラーファイル推定メモリ使用量: %d バイト例外例外が捕捉されました: %s例外が破棄されました: %s例外が収束しました: %s例外が発生しました: %s%s を実行しています%s の %d 行目には MAP の回数が必要です%s の %d 行目には REP(SAL) の回数が必要です%s の %d 行目では Y か N が必要です: %s式外部の部分該当:
%s 内の %d 行目にフラグの二重使用があります: %sパスフックの設定に失敗しました: sys.path_hooks がリストではありません
すぐに下記を実施してください:
- vim.path_hooks を sys.path_hooks へ追加
- vim.VIM_SPECIAL_PATH を sys.path へ追加
パスの設定に失敗しました: sys.path がリストではありません
すぐに vim.VIM_SPECIAL_PATH を sys.path に追加してくださいファイル "%s" がありませんファイルの内容が変わっているため、アンドゥ情報を利用できませんファイル "%s" のパーミッションが読込専用です.
それでも恐らく書き込むことは可能です.
継続しますか?ファイルが維持されますファイルフィルタ検索・置換 ('\' を検索するには '\\')次を検索(&N)次を検索検索文字列 ('\' を検索するには '\\')検索文字列:アンドゥファイル %s の取込を完了重複のうち最初の単語は %s の %d 行目です: %s%s の %d 行の フラグが数値ではありません: %sフォント '%s' は固定幅ではありませんフォント%ld の幅がフォント0の2倍ではありませんフォント0の幅: %ldフォント0: %sフォント1の幅: %ldフォント1: %sフォント:オプション: %sオプション引数の後にゴミがありますVim 使いさん、やあ!ウガンダの恵まれない子供たちに援助を!段落の最後にヒット入出力エラー非ASCII文字を含む %d 個の単語を無視しました (%s 内)非ASCII文字を含む %d 個の単語を無視しましたタグファイル内の長い行を無視します不正なファイル名%s の %d 行目の フラグが不正です: %s不正なレジスタ名不正な先頭文字です入力行インプットメソッド割込み割込み: 割込まれました無効な引数です: 無効なフォント指定です%s の %d 行目 無効な nr 領域です: %s%s 内の %d 行目の FLAG に無効な値があります: %sキーが一致しません接続を終了するリンク: リストか数値が必要ですLuaライブラリをロードできません.大文字/小文字を区別する正確に該当するものだけメッセージ日本語メッセージ翻訳/監修: 村岡 太郎 <koron.kaoriya@gmail.com>'>' が見つかりません%s 行目に FOL/LOW/UPP がありませんSOFO%s 行が %s にありませんModified by 名前:%s のバージョン %ld が必要です
Amigadosのバージョン 2.04かそれ以降が必要です
暗号キーが必要です: "%s"NetBeansは未変更のバッファを上書することは許可していません新規タブページいいえこのバッファに定義された構文要素はありません短縮入力は見つかりませんでしたブレークポイントが定義されていませんディスプレイが見つかりませんディスプレイがありません: 式の送信に失敗しました.
エントリがありませんインクルードファイルはありませんマッピングは見つかりませんでしたマークが設定されていませんカーソルの位置にマッチはありません, 次を検索しています該当するautocommandは存在しません古いファイルはありませんスワップファイルがありません印刷するテキストがありません可能なアンドゥはありません: とりあえず続けますユーザー定義コマンドが見つかりませんでした使われませんガーベッジコレクションを中止しました! 参照を作成するのにメモリが不足しましたオーナーが異なるのでアンドゥファイルを読み込みません: %sアンドゥ対象がありません音声畳込み後の総単語数: %ldOKファイル読込ダイアログタブページを開く...タブページを開くX display の open に失敗しましたX display の open がタイムアウトしましたXサーバーへの接続に %ld ミリ秒かかりました原本ファイル "%s"既存のファイル "%s" を上書きしますか?%d ページNetBeansバッファの一部を書き出すことはできませんパッチファイルパスが長過ぎます!パス名:パターンが全ての行で見つかりました: %sパターンは見つかりませんでしたパターンは見つかりませんでした: %s音声畳込みを実行中...続けるにはENTERを押すかコマンドを入力してください印刷ジョブを送信しました.印刷しました: %s印刷しています: '%s'印刷が中止されました印刷中: ページ %d (%d%%)パターンのクエリーを追加質問affix ファイル %s を読込中...スペルファイルを逆読込中辞書ファイル %s をスキャン中...標準入力から読込み中...スペルファイル "%s" を読込中アンドゥファイル読込中: %sviminfoファイル "%s"%s%s%s を読込み中標準入力から読込み中 %s ...復元完了. バッファの内容はファイルと同じになりました.リカバリが終了しました. 全てが正しいかチェックしてください.全ての接続を再初期化する置換全て置換(&A)全て置換置換文字列:Vi互換モードで動作中モード無で実行中, タイプした文字が挿入されます別名で保存ファイル保存ダイアログリダイレクトを保存しますセッション情報を保存します設定を保存しますビューを保存します変更を "%s" に保存しますか?辞書をスキャン中: %sインクルードされたファイルをスキャン中: %sタグをスキャン中.スキャン中: %sスクロールバー: 画像を取得できませんでした.検索文字列"%s" を検索中"%s" を "%s" から検索中インクルードされたファイルをスキャン中 %sタグファイル %s を検索中詳細は ":help E312" を参照してください詳細は ":help W11" を参照してください詳細は ":help W12" を参照してください詳細は ":help W16" を参照してくださいディレクトリ選択ダイアログ選択 %s%ld / %ld 行; %lld / %lld 単語; %lld / %lld バイト選択 %s%ld / %ld 行; %lld / %lld 単語; %lld / %lld 文字; %lld / %lld バイト選択プリンタに送信中...接続を表示するサイズをポイントで表示するこのメッセージを表示する%s のサイン:サイズ:対象がないのでアンドゥファイルの書き込みをスキップします残念ですがヘルプファイル "%s" が見つかりません残念ですが, 修正候補はありません残念ですが, 修正候補は %ld 個しかありませんこのコマンドは無効です, ごめんなさい: Perlライブラリをロードできませんでした.Vimスクリプトの取込みVimの開発を応援してください!スタックサイズが増えますスタイル:Substitute スワップファイル "スワップファイル "%s" が存在します. 上書きを強制しますか?スワップファイルが既に存在します!スワップファイルは暗号化されています: "%s"スワップファイルが複数見つかりました:次のパターンにバックトラッキング RE エンジンを適用します: タブページ %dこのメニューを切り取るX display のチェックに失敗しましたVim を使ってくれてありがとうこのファイルは次の場所で作られました 唯一の該当このVimにはdiff機能がありません(コンパイル時設定).このcscopeコマンドは分割ウィンドウではサポートされません.
"+command", "-c command", "--cmd command" の引数が多過ぎます複合フラグが多過ぎます編集引数が多過ぎます遅延後置子が多過ぎます遅延後置子 と/もしくは 複合フラグが多過ぎます%s の %d 行目, 範囲指定が多過ぎます: %s先頭総単語数: %d%s (%d 行目) に続くテキスト: %sすべての変更を破棄し、Vimを終了するには  :qa!  と入力し <Enter> を押してください番号と<Enter>を入力してください (空でキャンセル): 番号と<Enter>を入力するかマウスでクリックしてください (空でキャンセル): ブロック 0 を読込めません 命令サーバーの名前を登録できません不明未知のオプション引数です%s の %d 行目 認識不能なフラグです: %s%s の %d 行目に 認識できないか重複した項目があります: %s無題上Vimのバージョン3.0を使用してください.
空の選択領域のかわりにCUT_BUFFER0が使用されましたスワップファイルから取得した暗号キーをテキストファイルに使います.
スワップファイル "%s" を使用中VIM - 注意VIM - 検索と置換...VIM - 検索...VIM - Vi IMprovedVIMエラーVIM: ウィンドウを開けません!
VIMRUN.EXEが $PATH の中に見つかりません.
外部コマンドの終了後に一時停止をしません.
詳細は  :help win32-vimrun  を参照してください.Vim - フォント選択Vim E458: 色指定が正しくないのでエントリを割り当てられませんVimの警告Vim ダイアログVim エラーVim エラー: ~aVimは %d で終了します
Vim はオープンソースであり自由に配布可能ですVim: イベント %s を検知
Vim: 入力を読込み中のエラーにより終了します...
Vim: エラー: NetBeansからgvimをスタートできません
Vim: エラー: このバージョンのVimはCygwin端末では動作しません
Vim: メインウィンドウが不意に破壊されました
Vim: 標準入力から読込中...
Vim: セッションマネージャから "die" 要求を受け取りました
Vim: 警告: 端末からの入力ではありません
Vim: 警告: 端末への出力ではありません
W10: 警告: 読込専用ファイルを変更しますW11: 警告: ファイル "%s" は編集開始後に変更されましたW12: 警告: ファイル "%s" が変更されVimのバッファも変更されましたW13: 警告: ファイル "%s" は編集開始後に作成されましたW14: 警告: ファイル名のリストが長過ぎますW15: 警告: 行区切が不正です. ^M がないのでしょうW16: 警告: ファイル "%s" のモードが編集開始後に変更されましたW17: アラビア文字にはUTF-8が必要なので, ':set encoding=utf-8' してくださいW18: グループ名に不正な文字がありますW19: 使用中の augroup を消そうとしていますW20: 要求されたpython 2.xは対応していません、ファイルを無視します: %sW21: 要求されたpython 3.xは対応していません、ファイルを無視します: %sW22: :endfunction の後に文字があります: %s警告: 読込んだ後にファイルに変更がありました!!!警告警告: 単語リスト "%s.%s.spl" および "%s.ascii.spl" は見つかりません警告: 単語リスト "%s_%s.spl" および "%s_ascii.spl" は見つかりません警告: 予期せず他バッファへ移動しました (autocommands を調べてください)警告: 弱い暗号方法を使っています; :help 'cm' を参照してください警告: 複合フラグと NOBREAK が両方とも指定されました警告9: %s という範囲はサポートされていません警告: 使用している端末はハイライトできません次のファイルを開いている最中 "アンドゥファイルとして読み込めないので上書きしません: %sアンドゥファイルではないので上書きしません: %sウィンドウ位置: X %d, Y %d単語 '%.*s' が %s へ追加されました単語 '%.*s' が %s から削除されました他の行の単語ファイルを部分的に保存しますか?スペルファイル %s を書込み中...修正候補ファイル "%s" を書込み中...アンドゥファイル書き込み中: %sviminfoファイル "%s" を書込み中%s の %d 行目の CHECKCOMPOUNDPATTERN の値に誤りがあります: %s%s の %d 行目の COMPOUNDMIN の値に誤りがあります: %sCOMPOUNDRULES の値に誤りがあります. ファイル %s の %d 行目: %s%s の %d 行目の COMPOUNDSYLMAX の値に誤りがあります: %s%s の %d 行目の COMPOUNDWORDMAX の値に誤りがあります: %sXSMP ICE接続が失敗したようですXSMP SmcOpenConnectionが失敗しました: %sXSMP がsave-yourself要求を処理していますXSMP がICE接続を失いましたXSMP が接続を開始していますありはい[%ld 行目で変換エラー][CR無][削除済][デバイス][ファイル過大][ヘルプ][%ld 行目の不正なバイト][最終行が不完全][ロケーションリスト][未変換][新規ディレクトリ][新ファイル][新ファイル][新][無名][最後の変更が保存されていません]
[未編集][権限がありません][プレビュー][Quickfixリスト][読込エラー][読専][読込エラー][下書き][呼出] 総 re/malloc() 回数 %lu, 総 free() 回数 %lu

[キャラクタ・デバイス][変換済][暗号化][dosフォーマット][dos][FIFO/ソケット][FIFO][ファイル..]    あるファイルを編集する[長行分割][macフォーマット][mac][noeol][読込専用][ソケット][unixフォーマット][unix]キャンセル(_C)閉じる(_C)_OK開く(_O)保存(_S)add() の引数後方原本ファイルとの diff を実行すると良いでしょう)長さ %d のスライスを %d の拡張スライスに割り当てようとしました長さ %d の拡張スライスに、より長いスライスを割り当てようとしました削除されたバッファを参照しようとしました削除されたタブを参照しようとしました削除されたウィンドウを参照しようとしましたautocommand: %s <バッファ=%d> が自動的に削除されますautocommand %s前方%ld 行のブロックがヤンクされました1 行のブロックがヤンクされましたバッファは無効ですby by Bram Moolenaar 他.inputrestore() が inputsave() よりも多く呼ばれました%s を実行中ですOutputObject属性を消せません'charconvert' の出力を読込めませんでしたコンソールモードを変更できません?!
バッファ/ウィンドウ作成コマンドを作成できません: オブジェクトが消去されていました行を消せませんvim.Dictionary属性は消せませんvim.List 属性は消せません行を取得できません行を挿入できません行の挿入/追加をできません固定された辞書は変更できません固定されたリストは変更できません開けません コールバックコマンドを登録できません: バッファ/ウィンドウが既に消去されましたコールバックコマンドを登録できません: バッファ/ウィンドウの参照が見つかりません行を置換できませんアンドゥ情報が保存できません属性 %s は設定できません行を設定できませんヤンクできません; とにかく消去箇所変更しました箇所変更しました閉じるコマンド: %s%s の実行を継続中です"%s" を取込めませんバッファを開けませんcs_create_connection の実行に失敗しましたcs_create_connection への setpgid に失敗しましたcs_create_connection: fr_fp の fdopen に失敗しましたcs_create_connection: to_fp の fdopen に失敗しましたcscopeコマンド:
cscope接続 %s が閉じられましたカーソル位置がバッファの外側です省略値を次のように設定します 'ブロック 1 は消された?辞書はロックされています指定されたタブページに切り替えませんでした指定されたウィンドウに切り替えませんでしたdlerror = "%s"ファイルの保存に成功するまでエディタを終了しないでください!空のキーは許可されていません環境変数Scheme値のVimへの変換エラーエラーハンドラimp.find_module() が %s を返しました (期待値: 3 要素のタプル)imp.find_module() が %d 要素のタプルを返しました (期待値: 3)bytes() もしくは str() のインスタンスが期待されているのに %s でしたint() かそれへ変換可能なものが期待されているのに %s でしたlong() かそれへ変換可能なものが期待されているのに %s でしたシーケンスの要素数には 2 が期待されていましたが %d でしたstr() もしくは unicode() のインスタンスが期待されているのに %s でしたvim.Bufferオブジェクトが期待されているのに %s でしたvim.TabPageオブジェクトが期待されているのに %s でしたvim.Windowオブジェクトが期待されているのに %s でした式はコンパイル時に無効にされていますextend() の引数リストへの要素追加に失敗しました辞書にキー '%s' を追加するのに失敗しました辞書の変更に失敗しました現在のタブには指定されたウィンドウがありませんでしたバッファ名の変更に失敗しました関数 %s の実行に失敗しましたコードの実行に失敗しました指定されたバッファ %d への切り替えに失敗しました行 削除しましたファイル
ファイル名 / 文脈 / 行
filter() の引数%s の取込を完了最高レベルのフレーム: %dフレームが 0 です%ld 行を解放中関数 %s がありませんgvimext.dll エラーイテレーション中に hashtab が変更されましたヘルプ隠しオプションパスに ----
インデックスは %s ではなく整数かスライスにしてくださいinsert() の引数内部エラー: NULL参照が渡されました内部エラー: リストへの要素追加に失敗しました内部エラー: vimのリスト要素 %d の取得に失敗しました内部エラー: imp.find_module が NULL を含むタプルを返しました内部エラー: 無効な値型です内部エラー: vimのリスト要素 %d はありません内部エラー: リストに十分な要素がありません内部エラー: 未知のオプション型です無効な属性です: %s無効なバッファ番号です無効な式です無効なマーク名ですはデバイスです ('opendevice' オプションで回避できます)はディレクトリですはファイルではありませんはファイルでも書込み可能デバイスでもありませんは読込専用です (強制書込には ! を追加)キーボード割込み行 %4ld:行 %6d, 単語 %6d - %s行 %ld行 %ld (全体 %ld) --%d%%-- col 行 %ld: %s行 %ld: "%s" を取込めません行 %ld: %s を取込中行 削除しました範囲外の行番号です範囲外の行番号ですリストのコンストラクタはキーワード引数を受け付けませんリスト範囲外のインデックスですリストはロックされていますログオフmap() の引数マーク名は1文字のアルファベットでなければなりませんマークは設定されていません%d 番目の該当%d 番目の該当 (全該当 %d 個中)ファイル内のマッチmaximal mch_get_shellsize: コンソールではない??
メニューの 編集->全体設定->挿入(初心者)モード切替 メニューの 編集->全体設定->Vi互換モード切替      詳細はメニューの ヘルプ->孤児 を参照して下さい   詳細はメニューの ヘルプ->スポンサー/登録 を参照して下さいminimal モード行行 追加しました行 追加しましたnetbeans はこのGUIでは利用できません
新しいシェルを起動します
なしcscope接続がありません
マッチするものがありませんそのようなタブページはありませんそのようなウィンドウはありません非同期サンドボックスでは許されません見つかりません '%s' の中にはありません: "%s"まだ実装されていません通番   変更数   変更時期           保存済数値は 0 かそれ以上でなければなりません数値は 0 より大きくなければなりませんpe_line_count がゼロですvimrc前のコマンドラインウィンドウを切換中に問題が発生しました読込専用属性: バッファー記録中remove() の引数%s に置換しますか? (y/n/a/q/l/^E/^Y)reverse() の引数行 %d 列 %d下まで検索したので上に戻ります上まで検索したので下に戻りますシェル シェルがコード %d で終了しましたシャットダウンスライスのステップに 0 は指定できませんsort() の引数"%s" を取込中stack_idx は 0 であるべきです文字列には改行文字を含められませんC言語風コメントから同期中同期開始 構文の大文字小文字は現在 ignore です構文の大文字小文字は現在 match です構文の conceal は現在 off です構文の conceal は現在 on です構文用 iskeyword 構文の spell は現在 default です構文の spell は現在 notoplevel です構文の spell は現在 toplevel ですタグ %d (全%d%s)タグ名%s へ (%s 上の)詳細な情報は           :help cp-default<Enter>詳細な情報は           :help iccf<Enter>      詳細な情報は           :help register<Enter>  詳細な情報は           :help sponsor<Enter>   バージョン情報は       :help version8<Enter>  オンラインヘルプは     :help<Enter> か <F1>   終了するには           :q<Enter>              Vim推奨値にするには    :set nocp<Enter>       %s vimの辞書型に変換できません%s をvimのリストに変換できません%s をvimの構造体に変換できませんオプションの値は取得できませんグローバルオプション %s の設定解除はできませんグローバルな値の無いオプション %s の設定解除はできませんuniq() の引数不明未知のフラグ: 未知のオプションです未知の vimOption です無名関数 %s は存在しませんC言語の int 型としては値が大き過ぎますC言語の int 型としては値が小さ過ぎますversion vim エラー範囲外のウィンドウ番号ですウィンドウは無効ですwith (クラシック) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.'opendevice' オプションによりデバイスへの書き込みはできませんPK�j�ZG�U�� vim80/lang/fr/LC_MESSAGES/vim.monu�[�������<
|y����

��!�'7�/_�������LѢ:�Y�f�+n���"��ؤ��	�5�O�l��������ʥ;��զ�
�'�6�G�Z�i������0ɧ.��/)�0Y�
������Ũ
ߨ�
�$
�$2�W� h���@��D٩�2�"Q�t�"����Ϊߪ@�/�J�[�l�|���/��8Ϋ,�=4�r�������ά0�1�1C�u�������-խ�#�8�P�b����3��3��4�L�d�~���
����ïۯ���
�$%�J�LV� ��İܰ;�0�?�#L�	p�z�������
��ȱ�����	/�9�A�I�![�}�����̲Բ��� �$�?�Y�y�����
����6�����!:�\�
d�r�	���������&��	�"�*�>�=V�
����	������˵�	�
�
��
� �2�D�M�5k���-��1�&�:�R�g�z�������$��
�$�4�L�b�u���������ָ����� �2�B�
\�g�t���
������7����!�$�<�D�M�U�[�_�k�z�=~�2��������'�-@�2n�����?׻�3�D�+S��	������˼-��$7�\�
|���������=ν?�L�2[�!��%��@־9�EQ�9��CѿK�Ia�H��;�60�8g�3��<�4�-F�6t���%�������.�H�&X�,�#��4�� �@&�-g�0��:��;�=�"]���>��)��>��<9�v���#��:��'�9)�c�$|�9��4��;� L�>m�1��/���-+�Y�.h�B��"��2��40�*e���+��%��'�((�<Q�E��.��-�$1�V�<o���*��&�� �49�n������������������!�1�:�"B�e�q���������)���$�3�B�J�c�1|�?��������)�:�P�k�~�X��%����5�S�l�����������$���!�:�X�^�n�r���"��$����#�9�@�O�_������ ����4�8�	J�CT�V����
��

�.�D�-]���-��$��.��6,�c�.}�H��(���-�
F�OQ�O��
��C��	C�M�Y�!n�������3��2��! �(B�k� ��"��E���%+�#Q�-u�������&��!�3�E�c�|���'����)��+�@E�-����5���$�:�U�/p�9����E��=�-X�7��#�� ��:�5>�&t�"��&��$��#
�!.�=P�5�� ��(��7�.F�,u��������� �#!�&E�l�����������
�)�0H�$y�!�� ��(��4
�,?�l��������� �����16�h�!��%��%��!��%�;�$T� y�����?��&�#8�\�
x�A��%��"��"�94�'n�(��2��*��!�!?�)a�%��!��4��:�&C�;j�;��)��0�=�\�x�����#��!��8�&;�#b��� ��/��"���-#�Q�b�{�/��*��(��#�;�W�r�����>��� �:�"Q�t�������#���9�1U�1��)��1��%�7;�s�A��?���&�=�!\�~�����0��4�$:�)_�N��,��&�L,�y�����8����$
�2�L�#l�7��N��3�P�$k�!��3��,�2�%F�l�"����#���(�E�Bb���0��!� �<3�+p�����+�2��$0�U�,s���H��,�1�G�"g��������9#�]�r���0��#�'��&�6�,V�&������+�2��-.�(\���"��'��'�,�>�.U���#��,�W��)M"w,�%�� 
+2D2w2��!�52J5}'�#�)�3)$]%�����$,&Q x'�*�#�'%8^3~!��+�*?-j$����* E f$�$�)��,)Vk%��=�
	&	C	\	'v	�	�	$�	#�	0!
.R
0�
�
�
�

"9M-d ��7�)0$H(m��%�$�
.
A
'^
�
'�
 �
�
  87Y0��#�"%(H!q�-�1�65H~.�*�1�9%_*&�+�,�+*4V<�+�*�5Mbw�����"�*A\{����3Ok:~=�<�64<k�"��+�)%4O5�4�3�#05 f�D�P�%0Vu�����!3Up�����'-@!`��"��1�!8U"j�����1F_r�����*;)f�� ���	6"#Y})�&�K�6  I j � � � � � !"!&A!#h!�!�!+�!%�!7"5P"�"�",�"�"# #)6# `#�#�#�#�#�#$#$?$0W$�$�$�$�$4�$./%$^%)�%1�%;�%&.+&*Z&�&$�&�&%�&,'8'%I'o'�'�'&�'-�'&(5( Q(r(�(�(+�( �()?$))d)�)6�)#�)2*96*>p*8�*1�*+)8+)b+ �+)�+�+)�+*,"G,j,#�,"�,"�,)�,-7-%U- {-$�-�-�-!�-0 .Q.j.�.�."�.!�.9/8<//u/�/�/�/+�/%01B0)t0�0�0'�0%�01&11!X1%z1'�1%�1'�1-22D2w2�2$�2�2�23"!3D3d3!�31�3&�3�3!4!>4`4(u4�4�4+�485=57\5E�5!�5�56((60Q6#�6�6$�6�6#�6*7I7d7w70�72�70�7&8+C8)o8$�8/�8�89'9)@9,j9�9�9 �9�9	:-':,U:�:/�:+�:'�:!; A;0b;�;!�;,�;�;<("<K<d<0z<.�<�<1�<&,=:S=�=9�=�=:><>T>t>�>*�>�>3�>0?%I?2o?0�?!�?;�?R1@�@*�@�@�@(A+A+GA+sA�A �A"�A%�A $B+EB"qB+�B�B.�B4CIDC)�C)�C6�C6D-PD(~D/�D&�D<�D);E*eE�E7�E�E�EF*7FbF�F0�F/�F!�F"G*BG/mG;�G�G�GQH.cH�H$�H#�H0�H#,IPI2oI6�I�I+�I%%JXKJ;�J/�J;KLK!lK%�K"�KN�K.&L$UL&zLT�L#�L"M$=M bM�M�M#�M]�M CNBdN'�N�N/�N2O,OO"|O�O&�O(�O%	P/PNPlPE�P!�P �P7QJQ%`Q�Q'�Q�Q'�QR3R<IR�R"�R'�R�RS+"SNS(hS!�S5�S�S7T!@T%bT/�T!�T�T�T'U@U)_U;�U&�U(�U8V&NVuV.�V�V)�V&W,WEW'bW�W	�W�W�W�W�W�W#X	0X:XJX^X.uX�X.�X6�X!Y'Y6;Y#rY
�Y&�Y	�Y�Y�Y�YZ+Z 8Z%YZ!Z
�Z�Z(�Z��Za�[�[+\a=\�\�\�\(�\
�\	�\%�\
]*]&H]&o]�](�]�]	�]�]	^^
^&^D^Y^w^	�^2�^*�^�^_&_E_[_
q_|_	�_�_�_�_�_#�_(`*`<`	N`X`p`
�`�`�`2�`�`�`a/a<aBa$Wa|a/�a�a�a'�a�ab
)b$4b
Ybdbvb�b �b�b�b�b�b!�b c?c@Hc(�c�c'�c�c�c�c
dd3d#Sdwd�d�d.�d
�d�d	e
e*e<eRe'me�e�e
�e�e�e�e�eff:fYfof�f�f�f9�f9gJgagigvg
�g�g(�g�g�g�gh
h	h#h9hQhlh{h9�h
�h�h�h�hi&0iWivi�i�iC�iWj	hjrj�j�j�j
�j�j)�j�jk3kFOk�k�k�k�k�k�k(�kl8lUl1gl�l�l�l�l�l�lmm0.m;_m>�m�m�m
n1&n"Xn{nn�nA�n)�n=%oco(�o�o�o$�o0�op(p+p+Ap2mp�p�p�p�p�p	q
q�&q�qF�qr
r	r
(r6r+Krwr%�r0�rB�r('sPs1ls+�s*�s&�s9tMVt>�t)�t5
uACu4�u$�u*�uA
vALv&�v6�v�v<�v<1w?nw7�w/�w x"7xZx2ox0�x�x�xy#y8yLyfy�y�y2�y)�y+z,>z-kz �z!�z#�z{{1{5{9{X{	e{o{x{�{�{�{�{�{�{
�{
�{|	||4|A|	U|_|
o|}|
�|	�|5�|�|�|	�|�|}

}}&"}I}\}i}o}
w}�}
�}�}�}�}�}�}�}�}�}�}9�}B~DX~"�~$�~"�~)2AHd}��1�
�$�"�1�<P���'��!Ȁ���
�'�F�_�Hl�C����
�*�B�U�p�w���������� ɂ#�-�-<�j�|�����ǃ؃(�&�=�=L�����%��
�8�F'�.n�D��M�@0�0q�&��'Ɇ&�$�=�O�$j���-��؇�
�!�?�K�Q�l�~�����
��ň׈� �%�
*�8�"E�h�%z�*��.ˉ8��"3�#V�%z�#��Ċڊ��/�E�
T� b� ����
��‹ڋ���.�	F�P�i�2}���Ȍ׌ތ$���(�
7�E�#N�1r�1��1֍1�:�C�	L�
V�(a���������Ɏڎ
��
��6�(J�'s� ����ҏ�	�	$�.�"@�c�v���$��$��ِ�����
%�3�I�h���������̑ޑ���3�B�J�.V�.��.��.�.�.A�.p�.��&Γ ��%�<� W�:x���Ô˔ڔ�"��)�)H�r�	{�������ȕٕ���
�	�&�7�L�`�u�3��D�� ���+�;�+R�2~���Șߘ|��:s�
��	��4ƚ��.�4I�~���M��0�$3�(X��������B���$�#&�J�Y�j�}���/��ܞ��0�.E�/t�0��՟(� �#0�T�k�	��3��5����$	�.�_?�a���%�#=�%a�#����âԢj�N�l�~����� ��>գO�9d�<��ۤ&��"�@�V�Jt�1��5�'�=�S�r�6��Ħ�"���--�"[�"~�4��<֧�"0�"S� v�����ʨ֨"�
� �"/�R�,h�
��J��7�"&�"I�5l�
����2���� �1�
A�L�"\����"��"˫	������+�H�$Y�+~���(��ڬ
�&��64�&k�
����
����ĭLխ!"�"D�(g�/����Ȯ
ծ�'�	�$�)�&.�
U�.`�5��"ůC�,�<�	B�L�^�q���������ưϰ��	��	�>(�g�.w�0��-ױ�$�:�U�r�����3²����-�A�Z�r�������ųڳ�	��*�=�Q�c�s�
����
����̴۴�?�
A�(O�x�������������ȵ�Y�K>�
����	����5��(�<�W�v�Q�����2)�
\�
j�u���+��:޸ �.:�7i�
����Ź
ڹ�F��DC���6��.κ#��I!�Ek�M��D��FD�\��L�G5�B}�E��@�4G�N|�B˾:�7I���%��¿Կ��!�).�6X�+��9��%��H�3d�8��9�C�'O�!w���I��5��J*�<u�����2��6�,H�Fu���8��M�C\�J��/��D�7`�<��#��;��
5�+C�Co�>��:��8-�7f�,��*��#��4�1O�D��L��9�5M�#����D��!�4'�.\�%��=������4�@�U�i�z���������	����1���-�"<�"_�%����2����%�*�A�H�b�;|�A�������:� O�p���!��c��,.�[�9`�(��&��'��'�!:�\�l�
��,����3��*
�5�;�M�+Q�!}�*��+��#��>�Y�a�v�'����#��"��-�*E�Xp�����O��i@�������1���0,�#]�3��)��@��K �!l�1��W��;�T�i���[��[��R�We�	������"��		�$�8�8<�7u�%��,���"�+>�?j�"��)��=��=5�!s�����&����
�( �I� d� ��-����,��3�MR�.����>��.�N�k���9��H��(�eE���;��G�&L�0s�H��K��19�'k�0��9��G��.F�Iu�4��*��9�OY�9��:��!�@� V� w�(��'��2���!7�$Y�"~�����"��)�),�*V�1��3��/��;�3S�����������%��"%�H�;h���!��7��9� V�$w���,��,���/�CN�2��3��!��
�K)�/u�$��,��@��.8�+g�8��/��)��*&�5Q�$��,��?��Q�2k�A��H��>)�>h�.��)��)�*�'F�+n�2��D��?�'R�z�"��L��#�'�79�q� ����1��+��)�$C�h�2��'���� ��A �%b� ����6�+��'�+F�r�#��$��>�?�<Y�7��8�/�87�#p�I��F� %� F�(g�1��#�"�2	�C<�B��%�:�S$�7x�2��Q�5�P�i�C���,�#
�&1�.X�@��M��(4�)]�0��2��J�26�Ni�+��$�F	1PF�1��7DU�>�,�1&CX.�,��74M(�(�?�N3@��-�$$5'Z&�&� �D�6N"j:�.�9�1(AFj-���;FK<�:�
	.&	4U	4�	:�	�	;
"L
$o
2�
X�
/ *P+{&�#�'�A:E|D�
%%
K
f
7|
C�
(�
+!5M:�4�1�%"=`.x�+�-�)0F:w,�+�&#2AV �#�9�'6?5v"�1�)$+Pc!�!�7�1�3.b~.���*�,"GO����> F0g,�-�1�-%AS����&,%A/g,��H�@*k+�B�"�608g2� �*�4%T'z'�)�*�"1B>t>�.�E!*g1�=�&"5I@E�D)K@u5�B�M/ #} 4� =� B!2W!1�!E�!;"0>"*o"�"�"�"�"�"#,#D#b#y#3�# �#'�#'$7:$)r$&�$�$"�$%,"%O%h%%�%�%A�%C&DD&;�&C�&"	','L'=f';�'C�'F$(Zk(K�()M#)q)$�)M�)\*5^*#�*!�*"�*�*+.+)?+i+ �+�+�+�+�+ ,5,&M,-t,#�,<�,9-<=-&z-#�-�-3�-#.3.%Q.w.�.!�.�.7�./,/D/d/z/�/�/�/�/�/$0$10'V0,~0>�0=�0(1F1&f1!�1�1�1E�13"2V23t2*�2O�2#3.;3!j3(�3�3�3�3)�3!43;4#o4 �4�4�4+�445@I5>�5)�5+�5>6^62z6�6(�6!�67)-7W7o7�7$�7�7,�7B
8P8i8#�8'�8D�8>95Y96�97�9@�9?:?R:9�:&�:0�:)$;6N;I�;�;(�;<+<K<)i<2�<0�<�<0=,E=,r=6�=J�=!!>C>LY>4�>�>@�>'<?>d?>�?J�?=-@>k@5�@*�@9A)EA-oA �A/�A/�A9BXB*rB8�B7�B8C GChC7�C'�C*�C&D,9D+fD5�D�D�D�DE39E/mE@�E@�E?F-_F�F�F3�F'�F=G=VG�G�G1�G2�G-'H8UH"�H+�H-�H5I1AI0sI:�I�I�I3J0FJ5wJ.�J4�J(K(:K&cKB�K/�K�K.L,JL#wL*�L%�L,�L5MKOM-�MA�MXN1dN�N�N4�N=�N17OiO*�O�O6�O=P$>PcP(vP?�P8�PIQ%bQ%�Q)�Q$�QF�QDRaR:pRD�R?�R*0S[S9yS!�S�S+�SB TcTB�T<�T>U*@U,kU<�U'�U)�U4'V\VtV6�V4�V�V6WFCW,�W8�W'�W:X0SXC�X�X:�XY06Y/gY0�Y2�Y�Y:ZVZ;uZH�Z@�Z7;[Ss[d�[?,\1l\ �\"�\(�\]6']B^]0�]-�].^7/^/g^C�^:�^9_#P_5t_A�_K�_,8`,e`?�`?�`@a5SaI�a3�aIb5Qb?�b�b>�b+%c"Qc tc3�c�c�cQdGZd"�d(�d?�d2.e<ae�e"�eW�e27f(jf%�f$�fE�f$$gIg@ig9�g�g(h#,h^Ph;�h5�hI!iki/�i2�i3�ic!jN�j)�j*�jS)k-}k/�k-�k1	l0;l/ll5�le�l"8mG[m)�m(�m>�m:5n9pn"�n�n9�n8!o0Zo.�o-�o/�oPp,ip.�p/�p�p1
q%<q-bq�q!�q#�q�qMr*^r"�r/�r�r�r5sEs1es+�sI�s#
t/1t&at/�tA�t0�t#+u)Ou1yu�u:�uIv#Kv.ovJ�v4�v wC?w$�w �w7�wx=x-[x	�x�x1�x�x�x
y)y/By
ry}y�y�yD�y
z2$z:Wz�z�zP�z {"{+4{	`{j{�{�{�{�{&�{+|$-|
R| ]|4~|��|]}�}S�}wN~�~�~�~9�~!*82k*x*�4�'�;+�g�	~���	������ À�%�*�<�9I�1��0���*��)�B�_�o�����
����*‚/�-�K�k�����,��؃��F
�Q�#^���������3ӄ)�51�
g�u�.y��� Å
�2�
%�3�H�]�?w�"��چ��!�1@�r�H~�BLJ
�/�I�L�^�w�!��5��&�� %�F�5N�������(�����7'�_�{�������Ҋ�"�#�'6�^�&r�(��%‹!�O
�4Z�#��	����͌܌�4
�?�V�m�����čݍ��,�B�FN�������׎!��/�.H�.w�.��ՏM�h;�	����Ɛސ���"�8+�.d���!��Kϑ�%3�Y�x�
����2��"Ւ ���46�	k�u���
������ԓ�6�@=�<~���۔'��:�%Y����#��N•+�E=� ��3��ؖ�+�5�R�_�d�0�Q��%�(�8�H�Y�
k�'v����A�LZ�
����
����љ���7�;V�N��.��C+�7o�;��8�C�I`�D��2�B"�Me�;��-�+�7I�/��(��9ڞ�@�@\�H��M�?4� t�*�� ��D�F&�#m�����á١(��(!�&J� q�<��3Ϣ5�69�7p�0��&٣2�3� Q�r�v�%z�
����	����ۤ���7�F�[�m�	���(����ʥ	ߥ�����)�25�h�
|�	������
����2������ �0�
9�G�N�W�_�c�k�x�~���E��\ܧ`9�(��(è+�=�V�f�l���������7Ω�1�-D�0r�L���4�.C�r���&��+ի%�'�J<�M�� լ6��&-�&T�7{���
��έ	ۭ����%0�%V�1|�1����&�6�R�b�-~�+��دP�%8�^�9w���DǰW�2d�N��W�P>�4��)IJ*�)�.C�r���,��!γ7� (�$I�n�&������ɴ�����)�A�[�t���7��޵
��'�-�&B�4i�8��C׶(�.D�.s�&��ɷ����9%�_�q�4��2�����	(�2�R�&a�������ӹ;�,�H�Z�i�,{�����Ѻ�	�'�5:�1p�1��3Ի�
�
�-�;<�x�����"��ϼ�� �
:�H�e�-{�-��'׽���'3�"[�~���#��ƾܾ�2��2,�	_�i���4����п�0��.*�Y�t�������U�CD�<�����1��B+�Bn�B��B��B7�Bz�1��0��- �1N�+��.��B���1�9�L�\�$o�7��7���

��7�#H� l�����$����� .�$O�#t�$����A����S*K�O�Ih��pwEA�������]��O�?��~s�X������%�q
C�H(�)
>+�%T��cT�#��Qb�L�nS���s`Mi�5��^�jP�W�������
e��8�x�����������d���K�ncmm����&*Rq�0���Z�In���7kB_&R�}����4[�����b������,A����wh���6���2�o�d���|Gp7�%lw��!�%um�N���(����)�6!���Q����/�'~�"Q�J���6�x^�
�k��&KQ3:9��>��)��<$f�z����8e��k��-���;8�
?���u03&Eo��#.���Z����X'��R[]��Vw��`���=��dO3�*:�����x$�zz��������),�������r+,�*�hJ�\�H �}��\�>u�A3\�#x���M���^�@T�lw����u<�W�-���m>�$���A�X;w�y@��fL�pS� "g�Za_�@��e�!i_���&N,��t�+:pv'k���?��)�!U)��S*q�+����F��1�S��4<���I8�+�����Wx���y���Lw�!0���}�g�k������D�9X��?kz�� D"��]�^�Q,�P�0	IR@���|�c>�����FaG��0t�r~8�l�@-6G��9���e��W�F]Use���h�O^��o��`�=��~�M[R�K_8P��lTV�Bfh2�:���G�.��1�������N��E>�Zb{�O�����z�J��.�������D`f�1a�n�6Ru�Y
?;�����mfr>x���?=a���fsZ��S;~g���:ET���Y�;���Y6a
�
�g�9��39��4@.�)H���-�2���N���d(C���	�A�I��N$a�����[��v$H�n	�j5�W�����4c4��^/�	��y{Br�j�S�@����u@=D���v����P��f�������}����;�{��������*���V����<��g�2�(�o\q���
�AC-���H`=c/L�'��L��Kv����XV/(t2#D��<��/�����[�e�vzG�>�����+3i�&�0�����J�����1���/�/��E9i�����\��,nU�ykBp#c��{�Yv�]�C���D��wl�cIi�=�4E�;���9�+��!+�b��}	P{OKB����o�	������nT��(�^�[����
A����iT�M��5�	���QP�|y�-�������M�`7���s��1qH.�H�b����5'{AIN�}�Z<��|�K�U��fl�
I�3����$5��C�z��tE�d�����R��XBB2���<~yJ�,$�C��h����1����:e,
�i����0� ��#�/2�Y m��k���FY����%�jG���yF���L��NM��_�� �.��4j������{��$�8��W���hs����<�t�-~Y=�E�ap���V(g�{ ���q01�#:���i�K�Z�d��o~���e�jv��)PJM};O.��7MSu�4_J�7��r��gaV�%�[_3��O5�&dJ���`��s]��Q�qD7����\"�7�X
������o�H�2�5j����=�W^�t�����.	��������#B���h
����
��n������]V� *Np���|7!�|����6}�U�\(�'Ucs:6���Gb�x]b�otg����-�5F����8�"��|R�����mvLl'P|u�Z����jx_��!�C&����U\�D�rb?T��d�����V���t���l��'�X�mW[�U��"����"G�9��`L�
�Q%��pr���%�z�C�?YFqr����1*��y��"F
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info into "%c kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%s%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----clean		'nocompatible', Vim defaults, no plugins, no viminfo--cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked%s1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE946: Cannot make a terminal with running job modifiableE947: Job still running in buffer "%s"E948: Job still runningE948: Job still running (add ! to end the job)E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTerminalTerminal-finishedTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveactiveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yanked%sblock of 1 line yanked%sbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinishedfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %drunningsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim(Fran�ais)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-10-04 23:32+0200
PO-Revision-Date: 2017-10-04 23:44+0200
Last-Translator: Dominique Pell� <dominique.pelle@gmail.com>
Language-Team: 
Language: fr
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO_8859-15
Content-Transfer-Encoding: 8bit

	Modifi� la derni�re fois dans 

Arguments :


utilisation :
           modifi� : 
         [inutilisable sur cet ordinateur]
         [inutilisable avec cette version de Vim]
        nom d'h�te : 
 nom d'utilisateur : 
      processus n� : 
       a: Trouver les affectations � ce symbole
       c: Trouver les fonctions appelant cette fonction
       d: Trouver les fonctions appel�es par cette fonction
       e: Trouver ce motif egrep
       f: Trouver ce fichier
       g: Trouver cette d�finition
       i: Trouver les fichiers qui #incluent ce fichier
       s: Trouver ce symbole C
       t: Trouver cette cha�ne

    Nom         Args       Adresse   Complet.  D�finition
   #   ligne
    ou :
  # VERS marqueur  DE ligne   dans le fichier/texte
 saut ligne col fichier/texte
# Historique %s (chronologie d�croissante) :

# Lignes commen�ant par |, copi�es litt�ralement :

# Liste des tampons :

# Marques dans le fichier :

# Historique des marques dans les fichiers (les plus r�centes en premier) :

# Liste de sauts (le plus r�cent en premier) :

# Dernier motif de recherche %s :
~
# Derni�res cha�nes de substitution :
$
# Registres :

# Variables globales:

(1) Un autre programme est peut-�tre en train d'�diter ce fichier.
    Si c'est le cas, faites attention � ne pas vous retrouver avec
    deux versions diff�rentes du m�me fichier en faisant des modifications.
    Quitter ou continuer avec attention.

(Vous voudrez peut-�tre enregistrer ce fichier sous un autre nom

--- Auto-commandes ---
--- Valeur des options globales ---
--- Valeur des options locales ---
--- Menus ---
--- Options ---
--- Registres ---
--- Symboles ---
--- �l�ments de syntaxe ---
--- �l�ments de synchronisation syntaxique ---
--- Codes de terminal ---
--- Touches du terminal ---
Arguments reconnus par gvim (version Athena) :

Arguments reconnus par gvim (version GTK+) :

Arguments reconnus par gvim (version Motif) :

Arguments reconnus par gvim (version neXtaw) :

Grosse version 
Impossible de cr�er des tuyaux (pipes)

Impossible d'ex�cuter le shell 
Impossible d'ex�cuter le shell sh

Impossible de forker

Commande interrompue

Compil� 
Impossible d'obtenir le contexte de s�curit� pour 
Impossible de modifier le contexte de s�curit� pour 
Rustines extra : 
Trouv� un fichier d'�change nomm� "
�norme version 
Si vous avez tap� une nouvelle cl� de chiffrement mais n'avez pas enregistr� le fichier texte,
Si vous avez �crit le fichier texte apr�s avoir chang� la cl� de chiffrement, appuyez sur entr�e
Rustines incluses : 
Version graphique MS-Windows 32 bits
Version console MS-Windows 32 bits
Version graphique MS-Windows 64 bits
Version console MS-Windows 64 bits
Version MaxOS X (unix)
Version MacOS X
Version MacOS
Il est possible qu'aucune modification n'a �t� faite ou que Vim n'a pas mis � jour  le fichier d'�change.
Plus d'info avec : "vim -h"

Version normale 
Version OpenVMS
Petite version 
Version minuscule 
Vim : R�ception d'une erreur X

ALERTE: Le fichier original est peut-�tre perdu ou endommag�

pour lesquels la casse est indiff�rente (/ pour que le drapeau soit majuscule)
Il est conseill� d'effacer maintenant le fichier .swp.


[octets] total allou�-lib�r� %lu-%lu, utilis� %lu, pic %lu

modif  ligne col fichier/texte
tapez la nouvelle cl� de chiffrement.
marq ligne col fichier/texte
le shell a retourn� 
synchronisation sur �l�ments
afin d'utiliser la m�me cl� pour le fichier texte et le fichier d'�change                                pour d�f. de Vim                                   pour les modes                   dat� :       propri�t� de :          [ne peut �tre ouvert]         [ne peut �tre lu]         [ne semble pas �tre un fichier d'�change Vim]         [de Vim version 3.0]    nom de fichier :  fichier de valeurs par d�faut : "     -- aucun --
      PLUS R�CENT que le fichier d'�change !
      fichier exrc utilisateur : "     fichier vimrc utilisateur : "    Si c'est le cas, utilisez ":recover" ou "vim -r     Si vous l'avez d�j� fait, effacez le fichier d'�change "    ligne=%ld  id=%d  nom=%s          fichier menu syst�me : "    fichier gvimrc utilisateur : "   Dans le r�pertoire courant :
   Dans le r�pertoire Utilisant le nom indiqu� :
    dat� :    nom d'h�te :          fichier vimrc syst�me : "  # pri type marqueur  (D�j� list�)  2me fichier exrc utilisateur : "  VERSION DE D�BOGAGE  Fonctionnalit�s incluses (+) ou non (-) :
  INTROUVABLE  TOTAL      NOMBRE MATCH   PLUS LENT   MOYEN     NOM                MOTIF  Utilisation d'un marqueur avec une casse diff�rente !               $VIM par d�faut : "        fichier gvimrc syst�me : " # pid    nom de la base de donn�es           chemin
 (Interrompu)  (INTROUVABLE) (inclut des correspondances list�es pr�c�demment) (insertion) (insertion) D�filement (^E/^Y) (ligne effac�e) (non support�) (collage) (remplacement) (remplacement) D�filement (^E/^Y) (en cours d'ex�cution) (vremplacement) 2me fichier vimrc utilisateur : " 3me fichier vimrc utilisateur : " < "%.*s" Ajout arabe ERREUR DE CONVERSION Compl�tement de ligne de commande (^V^N^P) Copie %d sur %d Compl�tement de d�finition (^D^N^P) Compl�tement avec le dictionnaire (^K^N^P) �CHEC Compl�tement de nom de fichier (^F^N^P) h�breu INSERTION Compl�tement local de mot-cl� (^N/^P) Compl�tement de mot-cl� (^N^P) Compl�tement selon le type de fichier (Omni) (^O^N^P) Compl�tement global de mot-cl� (^N^P) REMPLACEMENT REVERSE S�LECTION S�LECTION BLOC S�LECTION LIGNEESPACE/d/j : �cran/page/ligne vers le bas, b/u/k : vers le haut, q : quitter Suggestion d'orthographe (s^N^P) Compl�tement de marqueur (^]^N^P) Compl�tement avec le th�saurus (^T^N^P) Compl�tement d�fini par l'utilisateur (^U^N^P) VISUEL VISUEL BLOC VISUEL LIGNE VREMPLACEMENT Compl�tement de ligne enti�re (^L^N^P)[Modifi�] [a] [e] mode ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) ajout�(s) ne peut pas �tre utilis� sur cet ordinateur.
 ne peut pas �tre utilis� avec cette version de Vim.
        $VIMRUNTIME par d�faut : " a �t� endommag� (taille de page inf�rieure � la valeur minimale).
 � la ligne %ld info dans "%c type de fichier
 coupures de ligne lignes avant la ligne du haut marques vieux fichiers sur %ld lignes sur 1 ligne ou plus a �t� retourn�
 vim [args]  supportant l'OLE �crit(s)"
    pour �viter ce message.
"
    pour r�cup�rer le fichier (consultez ":help recovery").
" existe d�j� !# Ce fichier viminfo a �t� g�n�r� par Vim %s.
# 'encoding' dans lequel ce fichier a �t� �crit
# Vous pouvez l'�diter, mais soyez prudent.

%-5s: %s%*s (Utilisation : %s)%3d  %s %s  ligne %ld%d tampons ont �t� effac�s%d tampons ont �t� d�charg�s%d tampons ont �t� d�truits%d mot(s) dupliqu�(s) dans %s%d fichiers � �diter
Encore %d fichiers � �diter. Quitter tout de m�me ?%d �dit�s sur %d%ld %s ; %s #%ld ; %s%ld Colonnes ; %ld lignes en moins%ld lignes %s�es %d fois%ld lignes %s�es 1 fois%ld lignes --%d%%--%ld lignes modifi�es%ld lignes filtr�es%ld lignes indent�es %ld lignes d�plac�es%ld lignes � indenter... %ld lignes copi�es%s%ld lignes, %ld correspondances%ld lignes en plusil y a %ld secondes%ld substitutions%lld caract�resAutocommandes %s pour "%s"%s annul�e%s �limin�e(s)%s, ligne %ld%s mise(s) en attente%s r�-�mise(s)%s a retourn� #%ld%s a retourn� "%s"La valeur de %s est diff�rente de celle d'un autre fichier .aff%s, ligne %ld%sliste d'erreurs %d sur %d ; %d erreurs%sviminfo : %s � la ligne &AnnulerAban&donner&Filtrer&Aide&Ok&Ok
&Annuler&Ok
&Charger le fichier&Ok&Ouvrir en lecture seule
&Editer quand m�me
&R�cup�rer
Le &supprimer
&Quitter
&Abandonner&Ouvrir en lecture seule
&Editer quand m�me
&R�cup�rer
&Quitter
&Abandonner&RemplacerAnn&uler&Oui
&Non&Oui
&Non
&Annuler&Oui
&Non
Tout &enregistrer
Tout aban&donner
&Annuler' inconnu. Les terminaux int�gr�s sont :'-nb' ne peut pas �tre utilis� : d�sactiv� � la compilation
L'option 'dictionary' est videl'option 'history' vaut z�roL'option 'readonly' est activ�e pour "%s".
Voulez-vous tout de m�me enregistrer ?L'option 'thesaurus' est vide(%d sur %d)%s%s : (+%ld pour le BOM)(2) Une session d'�dition de ce fichier a plant�.
(Interrompu) (Invalide)(NFA) IMPOSSIBLE D'OUVRIR %s !+		Ouvrir � la fin du fichier+<numL>	Ouvrir le fichier � la ligne <numL>+reverse		Ne pas utiliser de vid�o inverse	   (abrv : +rv),
ou le fichier a �t� endommag�.-              lire le texte � partir de stdin--		Seuls des noms de fichier sont sp�cifi�s apr�s ceci-- Plus ---- Recherche en cours...--- Fichiers inclus --Effac�----Le tampon est vide----clean		'nocompatible', r�glages par d�faut, aucun greffon ni viminfo--cmd <cmde>	Ex�cuter <commande> avant de charger les fichiers vimrcargument --cmd--echo-wid		Gvim affiche l'ID de la fen�tre sur stdout--literal	Ne pas d�velopper les m�tacaract�res--noplugin	Ne charger aucun greffon--no-a-term		Aucun avertissement si l'entr�e/sortie n'est pas un terminal--remote <fich>	�diter les <fichiers> dans un serveur Vim si possible--remote-expr <expr>	�valuer <expr> dans un serveur Vim, afficher le r�sultat--remote-send <tche>	Envoyer <touches> � un serveur Vim puis quitter--remote-silent ...	Pareil, mais pas d'erreur s'il n'y a aucun serveur--remote-tab[-wait][-silent] <fich>	Comme --remote mais ouvrir un onglet pour chaque fichier--remote-wait <fich>	Comme --remote mais ne quitter qu'� la fin de l'�dition--remote-wait-silent	Pareil, mais pas d'erreur s'il n'y a aucun serveur--role <r�le>	Donner un r�le pour identifier la fen�tre principale--serverlist		Lister les noms des serveurs Vim disponibles et quitter--servername <nom>	Envoyer au/devenir le serveur Vim nomm� <nom>--socketid <xid>	Ouvrir Vim dans un autre widget GTK--startuptime <fich>	�crire les messages d'horodatage au d�marrage dans <fich>--ttyfail		Quitte si l'entr�e ou la sortie ne sont pas un terminal--version		Afficher les informations de version et quitter--windowid <HWND>	Ouvrir Vim dans un autre widget win32-A		D�marrer en mode arabe-C		Compatible avec Vi : 'compatible'-D		Mode d�bogage-E			Mode Ex am�lior�-F		D�marrer en mode farsi-H		D�marrer en mode h�breu-L		Comme -r-M		Interdire toute modification de texte-N		Pas totalement compatible avec Vi : 'nocompatible'-O[N]	Comme -o, mais partager verticalement-P <titre parent>	Ouvrir Vim dans une application parente-R		Mode lecture seule (comme "view")-S <session>	Sourcer le fichier <session> une fois le 1er fichier charg�-T <term>	R�gler le type du terminal sur <terminal>-U <gvimrc>	Utiliser <gvimrc> au lieu du gvimrc habituel-V[N][<fichier>]	Mode verbeux [niveau N] [dans <fichier>]-W <dest>	�crire toutes les commandes tap�es dans le fichier <dest>-X			Ne pas se connecter � un serveur X-Z		Mode restreint (comme "rvim")-b		Mode binaire-background <coul>	Utiliser <couleur> pour l'arri�re-plan	   (abrv : -bg)-boldfont <fonte>	Utiliser <fonte> pour le texte gras-borderwidth <�pais>	Utiliser cette <�paisseur> de bordure	   (abrv : -bw)-c <cmde>	Ex�cuter <commande> une fois le 1er fichier charg�argument -c-d		Mode diff (comme "vimdiff")-dev <p�riph>	Utiliser <p�riph�rique> pour les E/S-display <display>	Connecter Vim au serveur X sp�cifi�-display <�cran>	Lancer Vim sur ce <display>-display <display>	Lancer Vim sur ce <display>	(�galement : --display)-e		Mode Ex (comme "ex")-f		Ne pas utiliser newcli pour l'ouverture des fen�tres-f, --nofork	Premier-plan : ne pas d�tacher l'interface graphique du terminal-font <fonte>	Utiliser <fonte> pour le texte normal	   (abrv : -fn)-foreground <coul>	Utiliser <couleur> pour le texte normal	   (abrv : -fg)-g		Lancer l'interface graphique (comme "gvim")-geometry <g�om>	Utiliser cette <g�om�trie> initiale	 (abrv : -geom)-h ou --help		Afficher l'aide (ce message) puis quitter-i <viminfo>		Utiliser <viminfo> au lieu du viminfo habituel-iconic		Iconifier Vim au d�marrage-italicfont <fonte>	Utiliser <fonte> pour le texte italique-l		Mode lisp-m		Interdire l'enregistrement des fichiers-menuheight <haut>	Utiliser cette <hauteur> de menu	   (abrv : -mh)-n		Ne pas utiliser de fichier d'�change, seulement la m�moire-o[N]	Ouvrir N fen�tres (d�faut : une pour chaque fichier)-p[N]	Ouvrir N onglets (d�faut : un pour chaque fichier)-q [fichErr]   ouvrir � l'endroit de la premi�re erreur-r		Lister les fichiers d'�change et quitter-r <fichier>	R�cup�rer une session plant�e-register	Inscrire ce gvim pour OLE-reverse		Utiliser la vid�o inverse		   (abrv : -rv)-s		Mode silencieux (batch) (seulement pour "ex")-s <src>	Lire les commandes du mode Normal � partir du fichier <src>-scrollbarwidth <lg>	Utiliser cette <largeur> de barre de d�fil. (abrv: -sw)-t marqueur    ouvrir le fichier qui contient le marqueur-u <vimrc>	Utiliser <vimrc> au lieu du vimrc habituel-unregister	D�sinscrire gvim de OLE-v		Mode Vi (comme "vi")-w <dest>	Ajouter toutes les commandes tap�es dans le fichier <dest>-x			�diter des fichiers chiffr�s-xrm <ressource>	Configurer la <ressource> sp�cifi�e-y		Mode facile (comme "evim", vim sans modes)Ligne / ignor�e dans %s ligne %d : %sLigne /encoding= apr�s des mots ignor�e dans %s ligne %d : %s1 tampon a �t� effac�1 tampon a �t� d�charg�1 tampon a �t� d�truit1 caract�re1 ligne %s�e %d fois1 ligne %s�e 1 fois1 ligne --%d%%--1 ligne modifi�e1 ligne indent�e 1 ligne en moins1 ligne d�plac�e1 ligne copi�e%s1 ligne, 1 correspondanceEncore 1 fichier � �diter. Quitter tout de m�me ?1 ligne en plus1 substitution2me fichier gvimrc utilisateur : "3me fichier gvimrc utilisateur : " : L'envoi de l'expression a �chou�.
 : L'envoi a �chou�.
 : L'envoi a �chou�. Tentative d'ex�cution locale
; correspond avec <%s>%s%s  %d,  Hexa %02x,  Octal %03o<impossible d'ouvrir> <vide>> %d, Hexa %04x, Octal %o> %d, Hexa %08x, Octal %o??? d'ici jusqu'� ???FIN des lignes peuvent �tre corrompues??? d'ici jusqu'� ???FIN des lignes ont pu �tre ins�r�es/effac�es???BLOC MANQUANT???BLOC VIDE???FIN???NOMBRE DE LIGNES ERRON�???LIGNES MANQUANTES???DE NOMBREUSES LIGNES MANQUENTANCHOR_BUF_SIZE trop petit.Ajouter une base de donn�esBase de donn�es cscope %s ajout�eAffixe aussi utilis�e pour BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST dans %s ligne %d : %sNom d'affixe trop long dans %s ligne %d : %sToutToutes les bases de donn�es cscope ont �t� r�initialis�esTous les fichiers inclus ont �t� trouv�sD�j� � la modification la plus r�centeD�j� � la modification la plus ancienneIl ne reste d�j� plus qu'un seul ongletIl n'y a d�j� plus qu'une fen�treAjouter fichierArgument manquant apr�s� la ligneNouvelle tentative pour ouvrir le script : "Retour au point de d�partLa plage sp�cifi�e est invers�e, OK pour l'inverserDevenez un utilisateur de Vim enregistr� !Bip !Avant l'octet %ldBasLignes SAL et lignes SOFO pr�sentes dans %sPoint d'arr�t dans %s%s ligne %ldCondition non valide dans %s ligne %d : %sUtilisation de COMPOUNDSYLMAX sans SYLLABLEAppel du shell pour ex�cuter : "%s"Impossible de g�n�rer un fichier temporaire pour la conversionAnnulerImpossible de cr�er Impossible d'ex�cuter Impossible d'ouvrir $VIMRUNTIME/rgb.txtImpossible d'ouvrir NIL :
Impossible d'ouvrir le fichier "%s"Impossible d'ouvrir en lecture : "Impossible d'ouvrir pour la sortie script : "Impossible de sourcer un r�pertoire : "%s"Impossible d'�crire le fichier d'annulations dans n'importe quel r�pertoire de 'undodir'Remplacer "%.*s" par :Fermer l'ongletColonne %s sur %s ; Ligne %ld sur %ld ; Mot %lld sur %lld ; Octet %lld sur %lldColonne %s sur %s ; Ligne %ld sur %ld ; Mot %lld sur %lld ; Caract�re %lld sur %lld ; Octet %lld sur %lldligne de commandeCompilation : Compilateur : %d noeuds compress�s sur %d ; %d (%d%%) restants Compression de l'arbre des mots�chec de conversion du mot dans %s ligne %d : %sLa conversion dans %s non support�eLa conversion dans %s non support�e : de %s vers %sLa conversion avec 'charconvert' a �chou�Impossible d'initialiser les pointeurs de fonction vers la DLL !Impossible d'obtenir le contexte de s�curit� %s pour %s. Il sera supprim� !Impossible de charger vim32.dll !Impossible d'ouvrir le fichier de log en �critureImpossible d'ouvrir le fichier de log temporaire en �criture, affichage sur stderr ... Impossible d'initialiser le contexte de s�curit� %s pour %sMarqueur cscope : %sLangue courante pour %s : "%s"Ligne de d�bogageD�finir COMPOUNDFORBIDFLAG apr�s des PFX peut donner des r�sultats erron�s dans %s ligne %dD�finir COMPOUNDPERMITFLAG apr�s des PFX peut donner des r�sultats erron�s dans %s ligne %d&Comparer avec VimDrapeaux de composition diff�rents dans un bloc d'affixes continu dans %s ligne %d : %sDirectionR�pertoiresR�pertoire	*.rien
Voulez-vous vraiment �crire dedansTermin� !Double ; dans une liste de variablesBasLigne /encoding= en double ignor�e dans %s ligne %d : %sLigne /regions= en double ignor�e dans %s ligne %d : %sAffixe dupliqu� dans %s ligne %d : %sCaract�re dupliqu� dans MAP dans %s ligne %dNom de champ dupliqu� : %sMot dupliqu� dans %s ligne %d : %sE100: Aucun autre tampon n'est en mode diffE101: Plus de deux tampons sont en mode diff, soyez plus pr�cisE102: Le tampon %s est introuvableE103: Le tampon %s n'est pas en mode diffE104: Un digraphe ne peut contenir le caract�re d'�chappementE105: :loadkeymap ne peut �tre utilis� que dans un script VimE107: Parenth�ses manquantes : %sE108: Variable inexistante : %sE109: Il manque ':' apr�s '?'E10: \ devrait �tre suivi de /, ? ou &E110: ')' manquantE111: ']' manquantE112: Il manque un nom d'option apr�s %sE113: Option inconnue : %sE114: Il manque " � la fin de %sE115: Il manque ' � la fin de %sE116: Arguments invalides pour la fonction %sE117: Fonction inconnue : %sE118: La fonction %s a re�u trop d'argumentsE119: La fonction %s n'a pas re�u assez d'argumentsE11: Invalide dans la fen�tre ligne-de-commande ; <CR> ex�cute, CTRL-C quitteE120: <SID> utilis� en dehors d'un script : %sE121: Variable non d�finie : %sE122: La fonction %s existe d�j� (ajoutez ! pour la remplacer)E123: Fonction non d�finie : %sE124: Il manque '(' apr�s %sE125: Argument invalide : %sE126: Il manque :endfunctionE127: Impossible de red�finir fonction %s : d�j� utilis�eE128: Le nom de la fonction doit commencer par une majuscule ou "s:": %sE129: Nom de fonction requisE12: commande non autoris�e depuis un exrc/vimrc dans r�pertoire courant ou une recherche de marqueurE130: Fonction inconnue : %sE131: Impossible d'effacer %s : cette fonction est utilis�eE132: La profondeur d'appel de fonction est sup�rieure � 'maxfuncdepth'E133: :return en dehors d'une fonctionE134: La destination est dans la plage d'origineE135: Les autocommandes Filter* ne doivent pas changer le tampon courantE136: Il y a trop d'erreurs ; interruption de la lecture du fichier viminfoE137: L'�criture dans le fichier %s est interditeE138: Impossible d'�crire le fichier %sE139: Le fichier est charg� dans un autre tamponE13: Le fichier existe d�j� (ajoutez ! pour passer outre)E140: Une partie du fichier serait perdue (ajoutez ! pour passer outre)E141: Pas de nom de fichier pour le tampon %ldE142: L'option 'nowrite' est activ�e et emp�che toute �criture du fichierE143: Une autocommande a effac� le nouveau tampon %sE144: L'argument de :z n'est pas num�riqueE145: Les commandes externes sont indisponibles dans rvimE146: Les expressions r�guli�res ne peuvent pas �tre d�limit�es par des lettresE147: :global ne peut pas ex�cuter :global avec une plageE148: :global doit �tre suivi par une expression r�guli�reE149: D�sol�, aucune aide pour %sE14: Adresse invalideE150: %s n'est pas un r�pertoireE151: Aucune correspondance : %sE152: Impossible d'ouvrir %s en �critureE153: Impossible d'ouvrir %s en lectureE154: Marqueur "%s" dupliqu� dans le fichier %s/%sE155: Symbole inconnu : %sE156: Il manque le nom du symboleE157: Le symbole %ld est introuvableE158: Le tampon %s est introuvableE159: Il manque l'ID du symboleE15: Expression invalide : %sE160: Commande inconnue : :sign %sE161: Le point d'arr�t %s est introuvableE162: Le tampon %s n'a pas �t� enregistr�E163: Il n'y a qu'un seul fichier � �diterE164: Impossible d'aller avant le premier fichierE165: Impossible d'aller au-del� du dernier fichierE166: Impossible d'ouvrir le lien pour y �crireE167: :scriptencoding utilis� en dehors d'un fichier sourc�E168: :finish utilis� en dehors d'un fichier sourc�E169: Commande trop r�cursiveE16: Plage invalideE170: :endfor manquantE170: :endwhile manquantE171: :endif manquantE172: Un seul nom de fichier autoris�E173: encore %ld fichiers � �diterE173: encore 1 fichier � �diterE174: La commande existe d�j� : ajoutez ! pour la red�finirE175: Pas d'attribut sp�cifi�E176: Nombre d'arguments invalideE177: Le quantificateur ne peut �tre sp�cifi� deux foisE178: La valeur par d�faut du quantificateur est invalideE179: argument requis avec -addrE179: argument requis avec -completeE17: "%s" est un r�pertoireE180: Valeur de type d'adresse invalide : %sE180: Valeur invalide pour "-complete=" : %sE181: Attribut invalide : %sE182: Nom de commande invalideE183: Les commandes utilisateur doivent commencer par une majusculeE184: Aucune commande %s d�finie par l'utilisateurE185: Impossible de trouver le jeu de couleurs '%s'E186: Pas de r�pertoire pr�c�dentE187: InconnuE188: R�cup�rer la position de la fen�tre non impl�ment� dans cette versionE189: "%s" existe (ajoutez ! pour passer outre)E18: Caract�res inattendus avant '='E190: Impossible d'ouvrir "%s" pour y �crireE191: L'argument doit �tre une lettre ou une (contre-)apostropheE192: Appel r�cursif de :normal trop importantE193: :endfunction en dehors d'une fonctionE194: Aucun nom de fichier alternatif � substituer � '#'E195: Impossible d'ouvrir le viminfo en lectureE196: Pas de digraphes dans cette versionE197: Impossible de choisir la langue "%s"E198: cmd_pchar au-del� de la longueur de la commandeE199: Fen�tre ou tampon actif effac�E19: La marque a un num�ro de ligne invalideE200: Les autocommandes *ReadPre ont rendu le fichier illisibleE201: Autocommandes *ReadPre ne doivent pas modifier le contenu du tampon courantE202: La conversion a rendu le fichier illisible !E203: Des autocommandes ont effac� ou d�charg� le tampon � �crireE204: L'autocommande a modifi� le nombre de lignes de mani�re inattendueE205: Patchmode : impossible d'enregistrer le fichier originalE206: patchmode : impossible de cr�er le fichier original videE207: Impossible d'effacer la copie de secoursE208: Erreur lors de l'�criture dans "%s"E209: Erreur lors de la fermeture de "%s"E20: Marque non positionn�eE210: Erreur lors de la lecture de "%s"E211: Le fichier "%s" n'est plus disponibleE212: Impossible d'ouvrir le fichier pour y �crireE213: Impossible de convertir (ajoutez ! pour �crire sans convertir)E214: Impossible de g�n�rer un fichier temporaire pour y �crireE215: Caract�re non valide apr�s * : %sE216: Aucun �v�nement %sE216: Aucun �v�nement ou groupe %sE217: Impossible d'ex�cuter les autocommandes pour TOUS les �v�nements (ALL)E218: autocommandes trop imbriqu�esE219: { manquant.E21: Impossible de modifier, 'modifiable' est d�sactiv�E220: } manquant.E222: Ajout au tampon de lectureE223: mappage r�cursifE224: une abr�viation globale existe d�j� pour %sE225: un mappage global existe d�j� pour %sE226: une abr�viation existe d�j� pour %sE227: un mappage existe d�j� pour %sE228: makemap : mode invalideE229: Impossible de d�marrer l'interface graphiqueE22: Trop de r�cursion dans les scriptsE230: Impossible de lire "%s"E231: 'guifontwide' est invalideE232: Impossible de cr�er un BalloonEval avec message ET callbackE233: ouverture du display impossibleE234: Jeu de police inconnu : %sE235: Police inconnue : %sE236: La police "%s" n'a pas une chasse (largeur) fixeE237: La s�lection de l'imprimante a �chou�E238: Erreur d'impression : %sE239: Le texte du symbole est invalide : %sE23: Pas de fichier alternatifE240: Pas de connexion au serveur XE241: L'envoi au serveur %s a �chou�E243: Argument non support� : "-%s" ; Utilisez la version OLE.E244: Jeu de caract�res "%s" invalide dans le nom de fonte "%s"E244: Nom de qualit� "%s" invalide dans le nom de fonte "%s"E245: Caract�re '%c' invalide dans le nom de fonte "%s"E246: L'autocommande FileChangedShell a effac� le tamponE247: aucun serveur nomm� "%s" n'est enregistr�E248: �chec de l'envoi de la commande au programme cibleE24: Cette abr�viation n'existe pasE250: Des polices manquent dans %s pour les jeux de caract�res suivants :E251: Entr�e registre de l'instance de Vim mal format�e. Suppression !E252: Nom du jeu de polices : %sE253: Nom du jeu de polices : %sE254: Impossible d'allouer la couleur %sE255: Impossible de lire les donn�es du symbole !E256: ERREUR dans l'automate HangulE257: cstag : marqueur introuvableE258: La r�ponse n'a pas pu �tre envoy�e au clientE259: aucune correspondance trouv�e pour la requ�te cscope %s de %sE25: L'interface graphique n'a pas �t� compil�e dans cette versionE261: Connexion cscope %s introuvableE262: erreur lors de la lecture de la connexion cscope %ldE263: D�sol�, commande d�sactiv�e : la biblioth�que Python n'a pas pu �tre charg�e.E264: Python : Erreur d'initialisation des objets d'E/SE265: $_ doit �tre une instance de cha�ne (String)E266: D�sol�, commande d�sactiv�e : la biblioth�que Ruby n'a pas pu �tre charg�e.E267: � return � inattenduE268: � next � inattenduE269: � break � inattenduE26: Le support de l'h�breu n'a pas �t� compil� dans cette version
E270: � redo � inattenduE271: � retry � hors d'une clause � rescue �E272: Exception non prise en chargeE273: contexte de longjmp inconnu : %dE277: Impossible de lire la r�ponse du serveurE27: Le support du farsi n'a pas �t� compil� dans cette version
E280: ERREUR FATALE TCL: reflist corrompue ?! Contactez vim-dev@vim.org, SVP.E282: Impossible de lire "%s"E283: Aucune marque ne correspond � "%s"E284: Impossible de r�gler les valeurs ICE285: �chec de la cr�ation du contexte de saisieE286: �chec de l'ouverture de la m�thode de saisieE287: Alerte : Impossible d'inscrire le callback de destruction dans la MSE288: la m�thode de saisie ne supporte aucun styleE289: le type de pr��dition de Vim n'est pas support� par la m�thode de saisieE28: Aucun nom de groupe de surbrillance %sE293: le bloc n'�tait pas verrouill�E294: Erreur de positionnement lors de la lecture du fichier d'�changeE295: Erreur de lecture dans le fichier d'�changeE296: Erreur de positionnement lors de l'�criture du fichier d'�changeE297: Erreur d'�criture dans le fichier d'�changeE298: Bloc n�0 non r�cup�r� ?E298: Bloc n�1 non r�cup�r� ?E298: Bloc n�2 non r�cup�r� ?E299: �valuation Perl interdite dans bac � sable sans le module SafeE29: Pas encore de texte ins�r�E300: Le fichier d'�change existe d�j� (attaque par symlink ?)E301: Oups, le fichier d'�change a disparu !E302: Impossible de renommer le fichier d'�changeE303: Impossible d'ouvrir fichier .swp pour "%s", r�cup. impossibleE304: ml_upd_block0() : bloc 0 non r�cup�r� ?!E305: Aucun fichier d'�change trouv� pour %sE306: Impossible d'ouvrir %sE307: %s ne semble pas �tre un fichier d'�change de VimE308: Alerte : Le fichier original a pu �tre modifi�E309: Impossible de lire le bloc 1 de %sE30: Aucune ligne de commande pr�c�denteE310: ID du bloc 1 erron� (%s n'est pas un fichier d'�change ?)E311: R�cup�ration interrompueE312: Erreurs lors de la r�cup�ration ; examinez les lignes commen�ant par ???E313: Pr�servation impossible, il n'y a pas de fichier d'�changeE314: �chec de la pr�servationE315: ml_get : num�ro de ligne invalide : %ldE316: ml_get : ligne %ld introuvableE317: mauvais id de pointeur de blocE317: mauvais id de pointeur de block 2E317: mauvais id de pointeur de bloc 3E317: mauvais id de pointeur de bloc 4E318: Trop de blocs mis � jour ?E319: D�sol�, cette commande n'est pas disponible dans cette versionE31: Mappage inexistantE320: Ligne %ld introuvableE321: Impossible de recharger "%s"E322: num�ro de ligne hors limites : %ld au-del� de la finE323: nombre de lignes erron� dans le bloc %ldE324: Impossible d'ouvrir le fichier PostScript de sortieE325: ATTENTIONE326: Trop de fichiers d'�change trouv�sE327: Une partie du chemin de l'�l�ment de menu n'est pas un sous-menuE328: Le menu n'existe que dans un autre modeE329: Aucun menu "%s"E32: Aucun nom de fichierE330: Le chemin de menu ne doit pas conduire � un sous-menuE331: Ajout d'�l�ments de menu directement dans barre de menu interditE332: Un s�parateur ne peut faire partie d'un chemin de menuE333: Le chemin du menu doit conduire � un �l�ment de menuE334: Menu introuvable : %sE335: Le menu n'est pas d�fini pour le mode %sE336: Le chemin du menu doit conduire � un sous-menuE337: Menu introuvable - v�rifiez les noms des menusE338: D�sol�, pas de s�lecteur de fichiers en mode consoleE339: Motif trop longE33: Aucune expression r�guli�re de substitution pr�c�denteE340: La ligne devient trop longueE341: Erreur interne : lalloc(%ld, )E342: M�moire �puis�e ! (allocation de %lu octets)E343: Chemin invalide : '**[nombre]' doit �tre � la fin du chemin ou �tre suivi de '%s'.E344: R�pertoire "%s" introuvable dans 'cdpath'E345: Fichier "%s" introuvable dans 'path'E346: Plus de r�pertoire "%s" dans 'cdpath'E347: Plus de fichier "%s" dans 'path'E348: Aucune cha�ne sous le curseurE349: Aucun identifiant sous le curseurE34: Aucune commande pr�c�denteE350: Impossible de cr�er un repli avec la 'foldmethod'e actuelleE351: Impossible de supprimer un repli avec la 'foldmethod'e actuelleE352: Impossible d'effacer des replis avec la 'foldmethod'e actuelleE353: Le registre %s est videE354: Nom de registre invalide : '%s'E355: Option inconnue : %sE356: ERREUR get_varpE357: 'langmap' : Aucun caract�re correspondant pour %sE358: 'langmap' : Caract�res surnum�raires apr�s point-virgule : %sE359: Choix du mode d'�cran non support�E35: Aucune expression r�guli�re pr�c�denteE360: Impossible d'ex�cuter un shell avec l'option -fE363: le motif utilise plus de m�moire que 'maxmempattern'E364: L'appel � la biblioth�que a �chou� pour "%s()"E365: L'impression du fichier PostScript a �chou�E367: Aucun groupe "%s"E369: �l�ment invalide dans %s%%[]E36: Pas assez de placeE370: Impossible de charger la biblioth�que %sE371: Commande introuvableE372: Trop de %%%c dans la cha�ne de formatE373: %%%c inattendu dans la cha�ne de formatE374: ] manquant dans la cha�ne de formatE375: %%%c non support� dans la cha�ne de formatE376: %%%c invalide dans le pr�fixe de la cha�ne de formatE377: %%%c invalide dans la cha�ne de formatE378: 'errorformat' ne contient aucun motifE379: Nom de r�pertoire vide ou absentE37: Modifications non enregistr�esE37: Modifications non enregistr�es (ajoutez ! pour passer outre)E380: En bas de la pile quickfixE381: Au sommet de la pile quickfixE382: �criture impossible, l'option 'buftype' est activ�eE383: Cha�ne de recherche invalide : %sE384: la recherche a atteint le HAUT sans trouver : %sE385: la recherche a atteint le BAS sans trouver : %sE386: '?' ou '/' attendu apr�s ';'E387: La correspondance est sur la ligne couranteE388: Impossible de trouver la d�finitionE389: Impossible de trouver le motifE38: Argument nullE390: Argument invalide : %sE391: Aucune grappe de syntaxe %sE392: Aucune grappe de syntaxe %sE393: L'argument � group[t]here � n'est pas accept� iciE394: Aucun �l�ment de type r�gion trouv� pour %sE395: L'argument � contains � n'est pas accept� iciE397: Nom de fichier requisE398: '=' manquant : %sE399: Pas assez d'arguments : syntax region %sE39: Nombre attenduE400: Aucune grappe sp�cifi�eE401: D�limiteur de motif introuvable : %sE402: caract�res en trop apr�s le motif : %sE403: synchro syntax : motif de continuation de ligne pr�sent deux foisE404: Arguments invalides : %sE405: '=' manquant : %sE406: Argument vide : %sE407: %s n'est pas autoris� iciE408: %s doit �tre le premier �l�ment d'une liste � contains �E409: Nom de groupe inconnu : %sE40: Impossible d'ouvrir le fichier d'erreurs %sE410: Sous-commande de :syntax invalide : %sE411: groupe de surbrillance introuvable : %sE412: Trop peu d'arguments : ":highlight link %s"E413: Trop d'arguments : ":highlight link %s"E414: le groupe a d�j� des attributs, lien de surbrillance ignor�E415: signe �gal inattendu : %sE416: '=' manquant : %sE417: argument manquant : %sE418: Valeur invalide : %sE419: Couleur de premier plan inconnueE41: M�moire �puis�eE420: Couleur d'arri�re-plan inconnueE421: Nom ou num�ro de couleur non reconnu : %sE422: le code de terminal est trop long : %sE423: Argument invalide : %sE424: Trop d'attributs de surbrillance diff�rents en cours d'utilisationE425: Impossible d'aller avant le premier marqueur correspondantE426: Marqueur introuvable : %sE427: Il n'y a qu'un marqueur correspondantE428: Impossible d'aller au-del� du dernier marqueur correspondantE429: Le fichier "%s" n'existe pasE42: Aucune erreurE430: Chemin de fichiers de marqueurs tronqu� pour %s
E431: Erreur de format dans le fichier de marqueurs "%s"E432: Le fichier de marqueurs %s n'est pas ordonn�E433: Aucun fichier de marqueursE434: Le motif de marqueur est introuvableE435: Marqueur introuvable, tentative pour deviner !E436: Aucune entr�e "%s" dans termcapE437: capacit� de terminal "cm" requiseE438: u_undo : num�ros de ligne erron�sE439: la liste d'annulation est corrompueE43: La cha�ne de recherche est endommag�eE440: ligne d'annulation manquanteE441: Il n'y a pas de fen�tre de pr�visualisationE442: Impossible de partager topleft et botright en m�me tempsE443: Rotation impossible quand une autre fen�tre est partag�eE444: Impossible de fermer la derni�re fen�treE445: Les modifications de l'autre fen�tre n'ont pas �t� enregistr�esE446: Aucun nom de fichier sous le curseurE447: Le fichier "%s" est introuvable dans 'path'E448: Impossible de charger la fonction %s de la biblioth�queE449: Expression invalide re�ueE44: L'automate de regexp est corrompuE455: Erreur lors de l'�criture du fichier PostScriptE456: Le fichier de ressource PostScript "%s.ps" est introuvableE456: Le fichier de ressource PostScript "cidfont.ps" est introuvableE456: Le fichier de ressource PostScript "prolog.ps" est introuvableE456: Impossible d'ouvrir le fichier "%s"E457: Impossible de lire le fichier de ressource PostScript "%s"E459: Impossible de retourner au r�pertoire pr�c�dentE45: L'option 'readonly' est activ�e (ajoutez ! pour passer outre)E460: Les ressources partag�es seraient perdues (ajoutez ! pour passer outre)E461: Nom de variable invalide : %sE462: Impossible de pr�parer le rechargement de "%s"E463: Cette zone est verrouill�e et ne peut pas �tre modifi�eE464: Utilisation ambigu� d'une commande d�finie par l'utilisateurE465: :winsize n�cessite deux arguments num�riquesE466: :winpos n�cessite deux arguments num�riquesE467: Le compl�tement personnalis� n�cessite une fonction en argumentE468: Seul le compl�tement personnalis� accepte un argumentE469: Drapeau cscopequickfix %c invalide pour %cE46: La variable "%s" est en lecture seuleE470: Commande annul�eE471: Argument requisE472: La commande a �chou�E473: Erreur interneE474: Argument invalideE475: Argument invalide : %sE476: Commande invalideE477: Le ! n'est pas autoris�E478: Pas de panique !E479: Aucune correspondanceE47: Erreur lors de la lecture du fichier d'erreursE480: Aucune correspondance : %sE481: Les plages ne sont pas autoris�esE482: Impossible de cr�er le fichier %sE483: Impossible d'obtenir un nom de fichier temporaireE484: Impossible d'ouvrir le fichier "%s"E485: Impossible de lire le fichier %sE486: Motif introuvable : %sE487: L'argument doit �tre positifE488: Caract�res surnum�rairesE48: Op�ration interdite dans le bac � sableE490: Aucun repli trouv�E492: Commande inconnueE493: La plage sp�cifi�e est invers�eE494: Utilisez w ou w>>E495: Aucun nom de ficher d'autocommande � substituer � "<afile>"E496: Aucun num�ro de tampon d'autocommande � substituer � "<abuf>"E497: Aucune correspondance d'autocommande � substituer � "<amatch>"E498: Aucun nom de fichier :source � substituer � "<sfile>"E499: Nom de fichier vide pour '%' ou '#', ne marche qu'avec ":p:h"E49: Valeur de d�filement invalideE500: �valu� en une cha�ne videE501: � la fin du fichierE505: "%s" est en lecture seule (ajoutez ! pour passer outre)E505: %s est en lecture seule (ajoutez ! pour passer outre)E506: Impossible d'�crire la copie de secours (! pour passer outre)E507: Erreur de fermeture de la copie de secours (! pour passer outre)E508: Impossible de lire le fichier pour la copie de secours (ajoutez ! pour passer outre)E509: Impossible de cr�er la copie de secours (ajoutez ! pour passer outre)E50: Trop de \z(E510: Impossible de g�n�rer la copie de secours (ajoutez ! pour passer outre)E511: netbeans d�j� connect�E512: Erreur de fermeture de fichierE513: Erreur d'�criture, �chec de conversion (videz 'fenc' pour passer outre)E513: Erreur d'�criture, �chec de conversion � la ligne %ld (videz 'fenc' pour passer outre)E514: erreur d'�criture (syst�me de fichiers plein ?)E515: Aucun tampon n'a �t� d�charg�E516: Aucun tampon n'a �t� effac�E517: Aucun tampon n'a �t� d�truitE518: Option inconnueE519: Option non support�eE51: Trop de %s(E520: Non autoris� dans une ligne de modeE521: Nombre requis apr�s =E521: Nombre requis : &%s = '%s'E522: Introuvable dans termcapE523: Interdit � cet endroitE524: ':' manquantE525: Cha�ne de longueur nulleE526: Nombre manquant apr�s <%s>E527: Virgule manquanteE528: Une valeur ' doit �tre sp�cifi�eE529: 'term' ne doit pas �tre une cha�ne videE52: Pas de correspondance pour \z(E530: Impossible de modifier term dans l'interface graphiqueE531: Utilisez ":gui" pour d�marrer l'interface graphiqueE533: Impossible de s�lectionner une police � largeur doubleE534: Police � largeur double invalideE535: Caract�re invalide apr�s <%c>E536: virgule requiseE537: 'commentstring' doit �tre vide ou contenir %sE538: La souris n'est pas support�eE539: Caract�re <%s> invalideE53: Pas de correspondance pour %s%%(E540: '}' manquantE541: trop d'�l�mentsE542: parenth�ses non �quilibr�esE543: Page de codes non valideE544: Le fichier descripteur de clavier est introuvableE545: ':' manquantE546: Mode non autoris�E547: Forme de curseur invalideE548: chiffre attenduE549: Pourcentage non autoris�E54: %s( ouvrante non ferm�eE550: ':' manquantE551: �l�ment invalideE552: chiffre attenduE553: Plus d'�l�mentsE554: Erreur de syntaxe dans %s{...}E555: En bas de la pile de marqueursE556: Au sommet de la pile de marqueursE557: Impossible d'ouvrir le fichier termcapE558: La description du terminal est introuvable dans terminfoE559: La description du terminal est introuvable dans termcapE55: %s) fermante non ouverteE560: Utilisation : cs[cope] %sE561: type de recherche cscope inconnuE562: Utilisation : cstag <ident>E563: Erreur statE563: Erreur stat(%s) : %dE564: %s n'est pas un r�pertoire ou une base de donn�es cscope valideE566: Impossible de cr�er les tuyaux (pipes) cscopeE567: Aucune connexion cscopeE568: base de donn�es cscope redondante non ajout�eE570: erreur fatale dans cs_manage_matchesE571: D�sol�, commande d�sactiv�e: la biblioth�que Tcl n'a pas pu �tre charg�e.E572: code de sortie %dE573: Id utilis� pour le serveur invalide : %sE574: Type de registre %d inconnuE579: Imbrication de :if trop importanteE580: :endif sans :ifE581: :else sans :ifE582: :elseif sans :ifE583: Il ne peut y avoir qu'un seul :elseE584: :elseif apr�s :elseE585: Imbrication de :while ou :for trop importanteE586: :continue sans :while ou :forE587: :break sans :while ou :forE588: :endfor sans :forE588: :endwhile sans :whileE589: 'backupext' et 'patchmode' sont �gauxE590: Il existe d�j� une fen�tre de pr�visualisationE591: 'winheight' ne peut pas �tre plus petit que 'winminheight'E592: 'winwidth' ne peut pas �tre plus petit que 'winminwidth'E593: Au moins %d lignes sont n�cessairesE594: Au moins %d colonnes sont n�cessairesE595: contient des caract�res � largeur double non-imprimablesE596: Police(s) invalide(s)E597: Impossible de s�lectionner un jeu de policesE598: Jeu de polices invalideE599: Valeur de 'imactivatekey' invalideE59: caract�re invalide apr�s %s@E600: :endtry manquantE601: Imbrication de :try trop importanteE602: :endtry sans :tryE603: :catch sans :tryE604: :catch apr�s :finallyE605: Exception non intercept�e : %sE606: :finally sans :tryE607: Il ne peut y avoir qu'un seul :finallyE608: Impossible d'�mettre des exceptions avec 'Vim' comme pr�fixeE609: Erreur cscope : %sE60: Trop de %s{...}s complexesE612: Trop de symboles sont d�finisE613: Police d'imprimante inconnue : %sE614: vim_SelFile : impossible de revenir dans le r�pertoire courantE615: vim_SelFile : impossible d'obtenir le r�pertoire courantE616: vim_SelFile : impossible d'obtenir la police %sE617: Non modifiable dans l'interface graphique GTK+ 2E618: "%s" n'est pas un fichier de ressource PostScriptE619: "%s" n'est pas un fichier de ressource PostScript support�E61: %s* imbriqu�sE620: La conversion pour imprimer dans l'encodage "%s" a �chou�E621: La version du fichier de ressource "%s" est erron�eE622: Impossible de forker pour cscopeE623: Impossible d'engendrer le processus cscopeE624: Impossible d'ouvrir le fichier "%s"E625: impossible d'ouvrir la base de donn�es cscope %sE626: impossible d'obtenir des informations sur la base de donn�es cscopeE62: %s%c imbriqu�sE630: %s() : �criture sans �tre connect�E631: %s() : erreur d'�critureE63: utilisation invalide de \_E64: %s%c ne suit aucun atomeE655: Trop de liens symboliques (cycle ?)E658: Connexion NetBeans perdue pour le tampon %ldE659: Impossible d'invoquer Python r�cursivementE65: post-r�f�rence invalideE661: D�sol�, aucune aide en langue '%s' pour %sE662: Au d�but de la liste des modificationsE663: � la fin de la liste des modificationsE664: La liste des modifications (changelist) est videE665: Impossible de d�marrer l'IHM graphique, aucune police valide trouv�eE666: Compilateur %s non support�E667: Fsynch a �chou�E668: Mode d'acc�s incorrect au fichier d'infos de connexion NetBeans : "%s"E669: Caract�re non-imprimable dans un nom de groupeE66: \z( n'est pas autoris� iciE670: Encodages diff�rents dans les fichiers d'aide en langue %sE671: Titre de fen�tre "%s" introuvableE672: Impossible d'ouvrir une fen�tre dans une application MDIE673: Jeu de caract�res et encodage multi-octets incompatiblesE674: 'printmbcharset' ne peut pas �tre vide avec un encodage multi-octetsE675: Aucune police par d�faut pour l'impression multi-octetsE676: Pas d'autocommande correspondante pour le tampon acwriteE677: Erreur lors de l'�criture du fichier temporaireE678: Caract�re invalide apr�s %s%%[dxouU]E679: boucle r�cursive lors du chargement de syncolor.vimE67: \z1 et co. ne sont pas autoris�s iciE680: <buffer=%d> : num�ro de tampon invalideE681: le tampon n'est pas charg�E682: D�limiteur ou motif de recherche invalideE683: Nom de fichier manquant ou motif invalideE684: index de Liste hors limites : %ld au-del� de la finE685: Erreur interne : %sE686: L'argument de %s doit �tre une ListeE687: Moins de destinations que d'�l�ments dans la ListeE688: Plus de destinations que d'�l�ments dans la ListeE689: Seul une Liste ou un Dictionnaire peut �tre index�E68: Caract�re invalide apr�s \zE690: "in" manquant apr�s :forE691: Une Liste ne peut �tre compar�e qu'avec une ListeE692: Op�ration invalide avec les ListeE694: Op�ration invalide avec les FuncrefsE695: Impossible d'indexer une FuncrefE696: Il manque une virgule dans la Liste %sE697: Il manque ']' � la fin de la Liste %sE698: variable trop imbriqu�e pour en faire une copieE699: Trop d'argumentsE69: ']' manquant apr�s %s%%[E700: Fonction inconnue : %sE701: Type invalide avec len()E702: La fonction de comparaison de sort() a �chou�E703: Utilisation d'une Funcref comme un NombreE704: Le nom d'une Funcref doit commencer par une majuscule : %sE705: Le nom d'une variable entre en conflit avec la fonction %sE707: Le nom de fonction entre en conflit avec la variable : %sE708: [:] ne peut �tre sp�cifi� qu'en dernierE709: [:] n�cessite une ListeE70: %s%%[] videE710: La Liste a plus d'�l�ments que la destinationE711: La Liste n'a pas assez d'�l�mentsE712: L'argument de %s doit �tre une Liste ou un DictionnaireE713: Impossible d'utiliser une cl� vide dans un DictionnaireE714: Liste requiseE715: Dictionnaire requisE716: La cl� %s n'existe pas dans le DictionnaireE717: Une entr�e du Dictionnaire porte d�j� ce nomE718: R�f�rence de fonction (Funcref) requiseE719: Utilisation de [:] impossible avec un DictionnaireE71: Caract�re invalide apr�s %s%%E720: Il manque ':' dans le Dictionnaire %sE721: Cl� dupliqu�e dans le Dictionnaire : %sE722: Il manque une virgule dans le Dictionnaire : %sE723: Il manque '}' � la fin du Dictionnaire : %sE724: variable trop imbriqu�e pour �tre affich�eE725: Appel d'une fonction � dict � sans Dictionnaire : %sE726: Le pas est nulE727: D�but au-del� de la finE728: Utilisation d'un Dictionnaire comme un NombreE729: Utilisation d'une Funcref comme une Cha�neE72: Erreur lors de la fermeture du fichier d'�changeE730: Utilisation d'une Liste comme une Cha�neE731: Utilisation d'un Dictionnaire comme une Cha�neE732: Utilisation de :endfor avec :whileE733: Utilisation de :endwhile avec :forE734: Type de variable erron� avec %s=E735: Un Dictionnaire ne peut �tre compar� qu'avec un DictionnaireE736: Op�ration invalide avec les DictionnairesE737: La cl� existe d�j� : %sE738: Impossible de lister les variables de %sE739: Impossible de cr�er le r�pertoire "%s"E73: La pile des marqueurs est videE740: Trop d'arguments pour la fonction %sE741: La valeur de %s est verrouill�eE742: Impossible de modifier la valeur de %sE743: variable trop imbriqu�e pour la (d�)verrouillerE744: NetBeans n'autorise pas la modification des fichiers en lecture seuleE745: Utilisation d'une Liste comme un NombreE746: Le nom de la fonction %s ne correspond pas le nom du scriptE747: Tampon modifi� : impossible de changer de r�pertoire (ajoutez ! pour passer outre)E748: Aucun registre n'a �t� pr�c�demment utilis�E749: tampon videE74: Commande trop complexeE750: Utilisez d'abord ":profile start {nomfichier}"E751: Le nom du fichier ne doit pas contenir de nom de r�gionE752: Pas de suggestion orthographique pr�c�denteE753: Introuvable : %sE754: 8 r�gions au maximum sont support�esE755: R�gion invalide dans %sE756: La v�rification orthographique n'est pas activ�eE757: Le fichier ne ressemble pas � un fichier orthographiqueE758: Fichier orthographique tronqu�E75: Nom trop longE760: Nombre de mots non indiqu� dans %sE761: Erreur de format dans le fichier d'affixe FOL, LOW et UPPE762: Un caract�re dans FOL, LOW ou UPP est hors-limitesE763: Les caract�res de mots diff�rent entre les fichiers orthographiquesE764: L'option '%s' n'est pas activ�eE765: 'spellfile' n'a pas %ld entr�esE766: Pas assez d'arguments pour printf()E767: Trop d'arguments pour printf()E768: Le fichier d'�change %s existe d�j� (:silent! pour passer outre)E769: ']' manquant apr�s %s[E76: Trop de [E770: Section non support�e dans le fichier orthographiqueE771: Fichier orthographique obsol�te, sa mise � jour est n�cessaireE772: Le fichier est pr�vu pour une version de Vim plus r�centeE773: cycle de liens symboliques avec "%s"E774: 'operatorfunc' est videE775: La fonctionnalit� d'�valuation n'est pas disponibleE776: Aucune liste d'emplacementsE777: Cha�ne ou Liste attendueE778: %s ne semble pas �tre un fichier .sugE779: Fichier de suggestions obsol�te, mise � jour n�cessaire : %sE77: Trop de noms de fichiersE780: Fichier .sug pr�vu pour une version de Vim plus r�cente : %sE781: Le fichier .sug ne correspond pas au fichier .spl : %sE782: Erreur lors de la lecture de fichier de suggestions : %sE783: caract�re dupliqu� dans l'entr�e MAPE784: Impossible de fermer le dernier ongletE785: complete() n'est utilisable que dans le mode InsertionE786: Les plages ne sont pas autoris�esE787: Le tampon a �t� modifi� inopin�mentE788: L'�dition d'un autre tampon n'est plus permiseE789: ']' manquant : %sE78: Marque inconnueE790: undojoin n'est pas autoris� apr�s une annulationE791: Entr�e du descripteur de clavier (keymap) videE792: Nom de menu videE793: Aucun autre tampon en mode diff n'est modifiableE794: Impossible de modifier une variable depuis le bac � sable : "%s"E795: Impossible de supprimer la variable %sE797: L'autocommande SpellFileMissing a effac� le tamponE798: ID est r�serv� pour ":match": %ldE799: ID invalide : %ld (doit �tre plus grand ou �gal � 1)E79: Impossible de d�velopper les m�tacaract�resE800: Le support de l'arabe n'a pas �t� compil� dans cette version
E801: ID d�j� pris: %ldE802: ID invalide : %ld (doit �tre plus grand ou �gal � 1)E803: ID introuvable : %ldE804: Impossible d'utiliser '%' avec un FlottantE805: Utilisation d'un Flottant comme un NombreE806: Utilisation d'un Flottant comme une Cha�neE807: printf() attend un argument de type FlottantE808: Nombre ou Flottant requisE809: #< n'est pas disponible sans la fonctionnalit� +evalE80: Erreur lors de l'�critureE810: Impossible de lire ou �crire des fichiers temporairesE811: Changement des informations du tampon n'est pas permise maintenantE812: Des autocommandes ont chang� le tampon ou le nom du tamponE813: Impossible de fermer la fen�tre des autocommandesE814: Impossible de fermer la fen�tre, seule la fen�tre des autocommandes resteraitE815: D�sol�, cette commande est d�sactiv�e : les biblioth�ques MzScheme n'ont pas pu �tre charg�es.E816: Le fichier interm�diaire produit par patch n'a pu �tre luE817: petit/gros boutisme incorrect dans blowfishE818: le test de sha256 a �chou�E819: le test de blowfish a �chou�E81: <SID> utilis� en dehors d'un scriptE820: sizeof(uint32_t) != 4E821: Le fichier est chiffr� avec une m�thode inconnueE822: Impossible d'ouvrir le fichier d'annulations en lecture : %sE823: Ce n'est pas un fichier d'annulations : %sE824: Fichier d'annulations incompatible : %sE825: Fichier d'annulations corrompu (%s) : %sE826: D�chiffrage du fichier d'annulation a �chou� : %sE827: Le fichier d'annulations est chiffr� : %sE828: Impossible d'ouvrir le fichier d'annulations en �criture : %sE829: Erreur d'�criture dans le fichier d'annulations : %sE82: Aucun tampon ne peut �tre allou�, Vim doit s'arr�terE830: Annulation n� %ld introuvableE831: bf_key_init() appel�e avec un mot de passe videE832: Fichier non-chiffr� a un fichier d'annulations chiffr� : %sE833: %s est chiffr� et cette version de Vim ne supporte pas le chiffrementE834: Conflits avec la valeur de 'listchars'E835: Conflits avec la valeur de 'fillchars'E836: Vim ne peut pas ex�cuter :python apr�s avoir utilis� :py3E837: Vim ne peut pas ex�cuter :py3 apr�s avoir utilis� :pythonE838: netbeans n'est pas support� avec cette interface graphiqueE839: La fonction de compl�tement a chang� la fen�treE83: L'allocation du tampon a �chou� : arr�tez Vim, lib�rez de la m�moireE840: La fonction de compl�tement a effac� du texteE841: Nom r�serv�, ne peux pas �tre utilis� pour une commande utilisateurE842: aucun num�ro de ligne � utiliser pour "<slnum>"E843: Erreur lors de la mise � jour du fichier d'�change crypt�E844: valeur de cchar invalideE845: m�moire insuffisante, liste de mots peut-�tre incompl�teE846: Le code de touche n'est pas configur�E847: Trop d'inclusions de syntaxeE848: Trop de grappes de syntaxeE849: Trop de groupes de surbrillance et de syntaxeE84: Aucun tampon n'est modifi�E850: Nom de registre invalideE851: �chec lors de la cr�ation d'un nouveau processus pour l'interface graphiqueE852: Le processus fils n'a pas r�ussi � d�marrer l'interface graphiqueE853: Nom d'argument dupliqu� : %sE854: chemin trop long pour compl�tementE855: Des autocommandes ont caus� la terminaison de la commandeE858: Eval n'a pas retourn� un objet python valideE859: Conversion d'objet python � une valeur de vim a �chou�E85: Aucun tampon n'est list�E862: Impossible d'utiliser g: iciE864: \%#= peut �tre suivi uniquement de 0, 1 ou 2. Le moteur automatique sera utilis� E865: (NFA) Fin de regexp rencontr�e pr�matur�mentE866: (regexp NFA) %c au mauvais endroitE867: (NFA) Op�rateur inconnu '\%%%c'E867: (NFA) Op�rateur inconnu '\z%c'E868: Erreur lors de la construction du NFA avec classe d'�quivalenceE869: (NFA) Op�rateur inconnu '\@%c'E86: Le tampon %ld n'existe pasE870: (regexp NFA) Erreur � la lecture des limites de r�p�titionE871: (regexp NFA) Un multi ne peut pas suivre un multi !E872: (regexp NFA) Trop de '('E873: (NFA regexp) erreur de terminaisonE874: (NFA) Impossible de d�piler !E875: (regexp NFA) (lors de la conversion de postfix � NFA), il reste trop d'�tats sur la pileE876: (regexp NFA) Pas assez de m�moire pour stocker le NFAE877: (regexp NFA) Classe de caract�re invalide : %ldE878: (NFA) Impossible d'allouer la m�moire pour parcourir les branches !E879: (regexp NFA) Trop de \z(E87: Impossible d'aller apr�s le dernier tamponE881: Le nombre de lignes a �t� chang� inopin�mentE882: La fonction de comparaison de uniq() a �chou�E883: le motif de recherche et le registre d'expression ne peuvent pas contenir deux lignes ou plusE884: Le nom de la fonction ne peut pas contenir le caract�re deux-points : %sE885: Impossible de changer le symbole %sE886: Impossible de renommer viminfo en %sE887: D�sol�, commande d�sactiv�e : la biblioth�que Python n'a pas pu �tre charg�e.E888: (regexp NFA) %s ne peut pas �tre r�p�t�E88: Impossible d'aller avant le premier tamponE890: Caract�re surnum�raire apr�s ']': %s]%sE891: Utilisation d'une Funcref comme un FlottantE892: Utilisation d'une Cha�ne comme un FlottantE893: Utilisation d'une Liste comme un FlottantE894: Utilisation d'un Dictionnaire comme un FlottantE895: D�sol�, cette commande est d�sactiv�e : le module MzScheme racket/base ne peut pas �tre charg�.E898: socket() dans channel_open()E89: Le tampon %ld n'a pas �t� enregistr� (ajoutez ! pour passer outre)E901: gethostbyname() dans channel_open()E902: Impossible de se connecter au portE903: commande re�ue avec un argument qui n'est pas une cha�neE904: le dernier argument de expr/call doit �tre un nombreE904: le troisi�me argument de "call" doit �tre une listeE905: commande inconnue re�ue : %sE906: pas un canal ouvertE907: Utilisation d'une valeur sp�ciale comme un FlottantE908: Utilisation d'une valeur invalide comme une Cha�neE909: Impossible d'indexer une variable sp�cialeE90: Impossible de d�charger le dernier tamponE910: Utilisation d'une T�che comme un NombreE911: Utilisation d'une T�che comme un FlottantE912: Impossible d'utiliser ch_evalexpr()/ch_sendexpr() avec un canal brut ou nlE913: Utilisation d'un Canal comme un NombreE914: Utilisation d'un Canal comme un FlottantE915: tampon in_io n�cessite in_buf ou in_name E916: t�che invalideE917: Impossible d'utiliser un callback avec %s()E918: le tampon doit �tre charg� : %sE919: R�pertoire introuvable dans '%s' : "%s"E91: L'option 'shell' est videE920: fichier _io n�cessite _nameE921: Argument de callback invalideE922: dictionnaire attenduE923: Le second argument de function() doit �tre une liste ou un dictionnaireE924: La fen�tre courante doit �tre ferm�eE925: Le quickfix courant a chang�E926: La liste d'emplacements courante a chang�E927: Action invalide : � %s �E928: Cha�ne requisE929: Trop de fichiers temporaires viminfo, comme %s!E92: Le tampon %ld n'existe pasE930: Impossible d'utiliser :redir dans execute()E931: Le tampon ne peut pas �tre enregistr�E932: une fonction fermeture ne devrait pas �tre au niveau principal : %sE933: La fonction a �t� effac�e: %sE934: Impossible de sauter � un tampon sans nomE935: num�ro de submatch invalide : %dE936: Impossible de supprimer le groupe courantE937: Tentative de suppression d'un tampon en cours d'utilisationE938: Cl� dupliqu�e dans le document JSON : "%s"E939: Quantificateur positif requisE93: Plusieurs tampons correspondent � %sE940: Impossible de (d�)verrouiler la variable %sE941: serveur d�j� d�marr�E942: La fonctionnalit� +clientserver n'est pas disponibleE943: La table des commandes doit �tre mise � jour, lancez 'make cmdidxs'E944: Classe de caract�res invers�eE945: Plage de classe de caract�res trop largeE946: terminal avec t�che en cours d'ex�cution ne peut pas �tre modifiableE947: T�che en cours d'ex�cution dans le buffer "%s"E948: T�che en cours d'ex�cutionE948: T�che en cours d'ex�cution (ajouter ! pour terminer la t�che)E94: Aucun tampon ne correspond � %sE95: Un tampon porte d�j� ce nomE96: Impossible d'utiliser diff sur plus de %ld tamponsE97: diff ne fonctionne pasE98: Le fichier interm�diaire produit par diff n'a pu �tre luE99: Le tampon courant n'est pas en mode diffERREUR : Ouvrir un fichier - VimOuvrir un fichier dans une nouvelle fen�tre - Vim�diter dans &Vim�diter dans &plusieurs Vims�diter dans le Vim existant - �diter dans un seul &Vim�dites le(s) fichier(s) s�lectionn�(s) avec VimEncodage :Fin de la fonctionFin du fichier sourc�Tapez la cl� de chiffrement : Entrez le num�ro du fichier d'�change � utiliser (0 pour quitter) : Tapez la cl� � nouveau : Mode d�bogage activ�. Tapez "cont" pour continuer.Mode Ex activ�. Tapez "visual" pour passer en mode Normal.ErreurErreur et interruptionErreur de cr�ation du processus : v�rifiez que gvim est bien dans votre chemin !Erreur d�tect�e en traitant %s :Fichier d'erreursEstimation de m�moire consomm�e : %d octetsExceptionException intercept�e : %sException �limin�e : %sException termin�e : %sException �mise : %sEx�cution de %sNombre de MAP attendu dans %s ligne %dNombre de REP(SAL) attendu dans %s ligne %dY ou N attendu dans %s ligne %d : %sexpressionSous-correspondances externes :
FLAG trouv� apr�s des drapeaux dans %s ligne %d : %sImpossible d'initialiser sys.path_hook qui n'est pas un liste
Vous devez maintenant :
- ajouter vim.path_hook � sys.path_hooks
- ajouter vim.VIM_SPECIAL_PATH � sys.path
Impossible d'initialiser le chemin : sys.math n'est pas une liste
Vous devez maintenant ajouter vim.VIM_SPECIAL_PATH � sys.pathLe fichier "%s" n'existe pasLe contenu du fichier a chang�, impossible d'utiliser les informations d'annulationLes droits du fichier "%s" sont restreints � la lecture seule.
Il peut �tre possible de l'�crire tout de m�me.
Tenter ?Fichier pr�serv�FichiersFiltreChercher et remplacer (utilisez '\\' pour trouver un '\')Suiva&ntSuivantChercher une cha�ne (utilisez '\\' pour chercher un '\')Rechercher :Fin de lecture du fichier d'annulations %sPremier mot dupliqu� dans %s ligne %d : %sLe drapeau n'est pas un nombre dans %s ligne %d : %sLa police '%s' n'a pas une largeur fixeLa largeur de Font%ld n'est pas le double de celle de Font0Largeur de Font0 : %ldFont0: %sLargeur de Font1 : %ldFont1: %sPolice :Pour l'option %sarguments en trop apr�s l'optionBienvenue, utilisateur de Vim !Aidez les enfants pauvres d'Ouganda !Fin du paragrapheERREUR d'E/S%d mot(s) ignor�(s) avec des caract�res non-ASCII dans %s%d mot(s) ignor�(s) avec des caract�res non-ASCIIIgnore longue ligne dans le fichier de marqueursNom de fichier invalideDrapeau non autoris� dans %s ligne %d : %sNom de registre invalideCaract�re initial non valideligne de saisie_M�thodes de saisieInterruptionInterruption : InterrompuArgument invalide pourLa sp�cification de la police est invalideNum�ro de r�gion invalide dans %s ligne %d : %sValeur de FLAG invalide dans %s ligne %d : %sLes cl�s ne correspondent pas !Fermer une connexion�dition de liens : Liste ou nombre requisLa biblioth�que Lua n'a pas pu �tre charg�e.Respecter la casseMots entiers seulementMessageMaintenance des messages : Dominique Pell� <dominique.pelle@gmail.com>'>' manquantLigne FOL/LOW/UPP manquante dans %sLigne SOFO%s manquante dans %sModifi� par Nom :%s version %ld est n�cessaire
Amigados version 2.04 ou ult�rieure est n�cessaire
Besoin de la cl� de chiffrement pour "%s"NetBeans interdit l'�criture des tampons non modifi�sNouvel ongletNonAucun �l�ment de syntaxe d�fini pour ce tamponAucune abr�viation trouv�eAucun point d'arr�t n'est d�finiAucun displayAucun display : L'envoi de l'expression a �chou�.
Aucune entr�eAucun fichier inclusAucun mappage trouv�Aucune marque positionn�eAucune correspondance sous le curseur, recherche de la suivanteAucune autocommande correspondanteAucun vieux fichierPas de fichier d'�changeAucun texte � imprimerAnnulation impossible ; continuerAucune commande d�finie par l'utilisateur trouv�eNon utilis�Pas assez de m�moire pour les r�f�rences, arr�t du ramassage de mi�tes !Le fichier d'annulations n'est pas lu, propri�taire diff�rent : %sRien � annulerNombre de mots apr�s l'analyse phon�tique : %ldOkOuvrir un fichierOuvrir dans un onglet...Ouvrir dans un onglet...L'ouverture du display X a �chou�L'ouverture du display X a d�pass� le d�lai d'attenteL'ouverture du display X a pris %ld msFichier original "%s"�craser le fichier %s existant ?Page %dNetbeans interdit l'�criture partielle de ses tamponsFichier rustineLe chemin est trop long !Chemin :Motif trouv� dans toutes les lignes : %sMotif introuvableMotif introuvable: %sAnalyse phon�tique en cours...Appuyez sur ENTR�E ou tapez une commande pour continuerT�che d'impression envoy�e.Imprim� : %sImpression de '%s'Impression interrompueImpression de la page %d (%d%%)Rechercher un motifQuestionLecture du fichier d'affixes %s...Relecture du fichier orthographiqueLecture du fichier orthographique %s...Lecture de stdin...Lecture du fichier orthographique "%s"Lecture du fichier d'annulations : %s...Lecture du fichier viminfo "%s"%s%s%sLecture de la liste de mots %s...R�cup�ration achev�e. Le contenu du tampon est identique au contenu du fichier.R�cup�ration achev�e. V�rifiez que tout est correct.R�initialiser toutes les connexionsRemplacerRempl&acer toutRemplacer toutRemplacer par :Compatibilit� avec Vi activ�eLes modes sont d�sactiv�s, le texte saisi est ins�r�Enregistrer sous - VimEnregistrer un fichierEnregistrer la redirectionEnregistrer la session - VimEnregistrer les r�glages - VimEnregistrer la vue - VimEnregistrer "%s" ?Examen du dictionnaire : %sExamen des fichiers inclus : %sExamen des marqueurs.Examen : %sWidget scrollbar : Impossible d'obtenir la g�om�trie du pixmap 'thumb'cha�ne de rechercheRecherche de "%s"Recherche de "%s" dans "%s"Recherche du fichier inclus %sExamen du fichier de marqueurs %sConsultez ":help E312" pour plus d'information.Consultez ":help W11" pour plus d'information.Consultez ":help W12" pour plus d'information.Consultez ":help W16" pour plus d'information.S�lecteur de r�pertoire%s%ld sur %ld Lignes ; %lld sur %lld Mots ; %lld sur %lld Octets s�lectionn�s%s%ld sur %ld Lignes ; %lld sur %lld Mots ; %lld sur %lld Caract�res ; %lld sur %lld octets s�lectionn�sS�lectionEnvoi � l'imprimante...Afficher les connexionsAfficher la taille en PointsAfficher ce messageSymboles dans %s :Taille :Le fichier d'annulations n'est pas �crit, rien � annulerD�sol�, le fichier d'aide "%s" est introuvableD�sol�, aucune suggestionD�sol�, seulement %ld suggestionsD�sol�, commande d�sactiv�e : la biblioth�que Perl n'a pas pu �tre charg�e.Sourcer un script - VimSponsorisez le d�veloppement de Vim !La taille de la pile s'accro�tStyle :Substitue Le fichier d'�change "Le fichier d'�change "%s" existe d�j�, l'�craser ?Un fichier d'�change existe d�j� !Fichier d'�change chiffr� : "%s"Fichiers d'�change trouv�s :Moteur RE avec backtracking utilis� pour le motif : Onglet %dD�tacher ce menuTerminalTerminal-finiLe test du display X a �chou�Merci d'avoir choisi VimLe fichier a �t� cr�� le La seule correspondanceCe Vim n'a pas �t� compil� avec la fonctionnalit� diffCette commande cscope ne supporte pas le partage de la fen�tre.
Trop d'arguments "+command", "-c command" ou "--cmd command"Trop de drapeaux de compositionTrop d'arguments d'�ditionTrop de pr�fixes report�s (PFXPOSTPONE)Trop de pr�fixes report�s et/ou de drapeaux de compositionTrop de r�gions dans %s ligne %d : %sHautNombre total de mots : %dTexte en trop dans %s ligne %d : %sTapez  :qa!  puis <Entr�e> pour abandonner tous les changements et quitter VimTapez un nombre et <Entr�e> (rien annule) :Tapez un nombre et <Entr�e> ou cliquez avec la souris (rien annule) :Impossible de lire le bloc 0 de Impossible d'inscrire un nom de serveur de commandeInconnuOption inconnueDrapeaux non reconnus dans %s ligne %d : %s�l�ment non reconnu ou dupliqu� dans %s ligne %d : %s(sans titre)HautUtilisez Vim version 3.0.
CUT_BUFFER0 utilis� plut�t qu'une s�lection videUtilisation de la cl� de chiffrement du fichier d'�change pour le fichier texte.
Utilisation du fichier d'�change "%s"VIM - ATTENTIONRemplacer - VimRechercher - VimVIM - Vi Am�lior�Erreur VIMVIM : Impossible d'ouvrir la fen�tre !
VIMRUN.EXE est introuvable votre $PATH.
Les commandes externes ne feront pas de pause une fois termin�es.
Consultez  :help win32-vimrun  pour plus d'informations.Choisir une police - VimVim E458: Erreur d'allocation de couleurs, couleurs possiblement incorrectesAlerte VimVimErreur VimErreur Vim : ~aVim quitte avec %d
Vim est un logiciel libreVim : �v�nement %s intercept�
Vim : Erreur lors de la lecture de l'entr�e, sortie...
Vim : Erreur : Impossible de d�marrer gvim depuis NetBeans
Vim : Erreur : Cette version de Vim ne fonctionne pas dans un terminal Cygwin
Vim : Fen�tre principale d�truite inopin�ment
Vim : Lecture de stdin...
Vim : Une requ�te "die" a �t� re�ue par le gestionnaire de session
Vim : Alerte : L'entr�e ne se fait pas sur un terminal
Vim : Alerte : La sortie ne s'effectue pas sur un terminal
W10: Alerte : Modification d'un fichier en lecture seuleW11: Alerte : Le fichier "%s" a chang� depuis le d�but de l'�ditionW12: Alerte : Le fichier "%s" a �t� modifi�, ainsi que le tampon dans VimW13: Alerte : Le fichier "%s" a �t� cr�� apr�s le d�but de l'�ditionW14: Alerte : La liste des noms de fichier d�bordeW15: Alerte : S�parateur de ligne erron�, ^M possiblement manquantW16: Alerte : Les permissions de "%s" ont chang� depuis le d�but de l'�ditionW17: L'arabe n�cessite l'UTF-8, tapez ':set encoding=utf-8'W18: Caract�re invalide dans un nom de groupeW19: Effacement d'augroup toujours en usageW20: Python version 2.x non support�, fichier %s ignor�W21: Python 3.x non support�, fichier %s ignor�W22: Texte trouv� apr�s :endfunction: %sALERTE : Le fichier a �t� modifi� depuis que Vim l'a lu !AlerteAlerte : Liste de mots "%s.%s.spl" ou "%s.ascii.spl" introuvableAlerte : Liste de mots "%s_%s.spl" ou "%s_ascii.spl" introuvableAlerte : Entr�e inattendue dans un autre tampon (v�rifier autocommandes)Alerte : utilisation d'une m�thode de chiffrage faible ; consultez :help 'cm'Alerte : la composition et NOBREAK sont tous les deux sp�cifi�sAlerte : r�gion %s non support�eAlerte : le terminal ne peut pas surlignerLors de l'ouverture du fichier "Le fichier d'annulations ne sera pas �cras�, impossible de lire : %sFichier ne sera pas �cras�, ce n'est pas un fichier d'annulations : %sPosition de la fen�tre : X %d, Y %dMot '%.*s' ajout� dans %sMot '%.*s' retir� de %sMot d'une autre lignePerdre une partie du fichier ?�criture du fichier orthographique %s...�criture du fichier de suggestions %s...�criture du fichier d'annulations : %s�criture du fichier viminfo "%s"Valeur de CHECKCOMPOUNDPATTERN erron�e dans %s ligne %d : %sValeur de COMPOUNDMIN erron�e dans %s ligne %d : %sValeur de COMPOUNDRULES erron�e dans %s ligne %d : %sValeur de COMPOUNDSYLMAX erron�e dans %s ligne %d : %sValeur de COMPOUNDWORDMAX erron�e dans %s ligne %d : %sXSMP : �chec de la surveillance de connexion ICEXSMP : SmcOpenConnection a �chou� : %sXSMP : prise en charge d'une requ�te save-yourselfXSMP a perdu la connexion ICEXSMP : ouverture de la connexionOUIOui[ERREUR DE CONVERSION � la ligne %ld][CR manquant][Effac�][P�riph.][Fichier trop volumineux][Aide][OCTET INVALIDE � la ligne %ld][Derni�re ligne incompl�te][Liste des emplacements][NON converti][Nouveau R�PERTOIRE][Nouveau fichier][Nouveau fichier][Nouveau][Aucun nom][Attention : tout n'est pas enregistr�]
[Non �dit�][Permission refus�e][Pr�visu][Liste Quickfix][ERREURS DE LECTURE][RO][Erreurs de lecture][Brouillon][appels] total re/malloc() %lu, total free() %lu

[caract�re sp�cial][converti][chiffr�][format dos][dos][fifo/socket][fifo][fichier ...]  ouvrir le ou les fichiers sp�cifi�s[lignes longues coup�es][format mac][mac][noeol][lecture-seule][socket][format unix][unix]_Annuler_Fermer_Ok_Ouvrir_Enregistreractifargument de add()apr�set lancer diff avec le fichier original pour rep�rer les changements)tentative d'assigner une s�quence de taille %d � un d�coupage en tranche �tendu de taille %dtentative d'assigner une s�quence de taille plus grande que %d � un d�coupage en tranche �tendu tentative de r�f�rencer un tampon effac�tentative de r�f�rencer un onglet effac�tentative de r�f�rencer une fen�tre effac�eAutocommandes marqu�es pour auto-suppression : %s <tampon=%d>autocommande %savantbloc de %ld lignes copi�%sbloc de 1 ligne copi�%stampon invalidepar par Bram Moolenaar et al.inputrestore() a �t� appel� plus de fois qu'inputsave()appel de %simpossible d'effacer les attributs d'OutputObjectImpossible de lire la sortie de 'charconvert'Impossible de modifier le mode de la console ?!
Impossible de cr�er commande de tampon/fen�tre : objet en cours d'effacementimpossible d'effacer la ligneimpossible d'effacer les attributs de vim.Dictionaryimpossible d'effacer les attributs de vim.ListImpossible d'obtenir la ligneimpossible d'ins�rer la ligneImpossible d'ins�rer/ajouter de lignesimpossible de modifier un dictionnaire fixeimpossible de modifier une liste fixeimpossible d'ouvrir Impossible d'inscrire la commande de rappel : tampon/fen�tre en effacementImpossible d'inscrire la commande de rappel : r�f. tampon/fen�tre introuvableimpossible de remplacer la ligneimpossible d'enregistrer les informations d'annulationimpossible d'initialiser l'attribut %sImpossible de remettre la/les ligne(s)impossible de r�aliser une copie ; effacer tout de m�memodificationmodificationsde fermeturecmde : %sde retour dans %simpossible de sourcer "%s"impossible d'ouvrir le tamponexec de cs_create_connection a �chou�cs_create_connection setpgid a �chou�cs_create_connection : fdopen pour fr_fp a �chou�cs_create_connection : fdopen pour to_fp a �chou�commandes cscope :
connexion cscope %s ferm�ecurseur positionn� en dehors du tamponutilisation par d�faut de 'bloc 1 effac� ?dictionnaire est verrouill�impossible de se d�placer � l'onglet sp�cifi�ne s'est pas d�plac� � la fen�tre sp�cifi�edlerror = "%s"ne quittez pas l'�diteur tant que le fichier n'est pas correctement enregistr� !les cl�s vides ne sont pas autoris�esvariable d'environnementerreur lors de la conversion d'une valeur de Scheme � Vimgestionnaire d'erreurattendu un 3-tuple comme r�sultat de imp.find_module(), mais re�u %sattendu un 3-tuple comme r�sultat de imp.find_module(), mais re�u un tuple de taille %dattendu instance de bytes() ou str(), mais re�u %sattendu int() ou quelque chose qui peut �tre transform� en int(), mais re�u %sattendu int(), long() ou quelque chose qui peut �tre transform� en long(), mais re�u %sattendu une s�quence d'�l�ments de taille 2, mais re�u une s�quence de taille %dattendu instance de str() ou unicode(), mais re�u %sattendu un objet vim.Buffer, mais re�u %sattendu un objet vim.TabPage, mais re�u %sattendu un objet vim.Window, mais re�u %sexpressions d�sactiv�es lors de la compilationargument de extend()ajout � la liste a �chou�l'ajout de cl� '%s' au dictionnaire a �chou�changement de r�pertoire a �chou�impossible de trouver une fen�tre dans l'onglet courantimpossible de renommer le tamponex�cution de la fonction %s a �chou�ex�cution du code a �chou�impossible de se d�placer au tampon %dlignes en moinsfichier
nom      / contexte/ ligne
argument de filter()finifin du sourcement de %scadre de pile au niveau le plus haut : %dle cadre de pile est z�rolib�ration de %ld lignesla fonction %s n'existe pasErreur de gvimext.dllla table de hachage a �t� chang�e pendant une it�rationaideoption cach�edans le chemin ---
index doit �tre int ou slice, et non %sargument de insert()erreur interne : r�f�rence NULL pass�eerreur interne : ajout d'�l�ment � la liste a �chou�erreur interne : acc�s � un �l�ment %d de liste a �chou�erreur interne : imp.find_module a retourn� un tuple contenant NULLerreur interne : type de valeur invalideerreur interne : pas d'�l�ment %d de liste vimerreur interne : pas assez d'�l�ments de listeerreur interne : type d'option inconnuattribut invalide : %snum�ro de tampon invalideexpression invalidenom de marque invalideest un p�riph�rique (d�sactiv� par l'option 'opendevice')est un r�pertoiren'est pas un fichiern'est pas un fichier ou un p�riph�rique inscriptibleest en lecture seule (ajoutez ! pour passer outre)interruption clavierligne %4ld :ligne %6d, mot %6d - %sligne %ldligne %ld sur %ld --%d%%-- col ligne %ld : %sligne %ld : impossible de sourcer "%s"ligne %ld : sourcement de "%s"ligne en moinsnum�ro de ligne hors limitesnum�ro de ligne hors limitesle constructeur de liste n'accepte pas les arguments nomm�sindex de liste hors limitesliste verrouill�ede d�connexionargument de map()le nom de marque doit �tre un seul caract�remarque non positionn�eCorrespondance %dCorrespondance %d sur %dcorrespondance dans le fichiermaximum mch_get_shellsize : pas une console ?!
menu  �dition->R�glages Globaux->Insertion Permanentemenu  �dition->R�glages Globaux->Compatibilit� Vimenu  Aide->Orphelins            pour plus d'infomenu  Aide->Sponsor/Enregistrement pour plus d'infominimum ligne de modeligne en pluslignes en plusnetbeans n'est pas support� avec cette interface graphique
nouveau shell d�marr�
nonaucune connexion cscope
aucune correspondance particuli�recet onglet n'existe pasCette fen�tre n'existe pasAucune synchronisationnon autoris� dans le bac � sableintrouvables introuvable dans '%s' : "%s"pas encore impl�ment�num�ro modif.   instant            enregistr�le nombre doit �tre plus grand ou �gal � z�role nombre doit �tre plus grand que z�rope_line_count vaut z�roligne de commande pre-vimrcprobl�me lors du changement de fen�tresattribut en lecture seule : tamponEnregistrementargument de remove()remplacer par %s (y/n/a/q/l/^E/^Y)?argument de reverse()ligne %d colonne %den coursLa recherche a atteint le BAS, et continue en HAUTLa recherche a atteint le HAUT, et continue en BASle shell le shell a retourn� %dd'arr�tle pas du d�coupage en tranche ne peut pas �tre z�roargument de sort()sourcement "%s"stack_idx devrait �tre 0une cha�ne ne peut pas contenir de saut-de-lignesynchronisation sur les commentaires de type CLa synchronisation d�bute syntaxe ignore la cassesyntaxe respecte la casse"syntax conceal" d�sactiv�e"syntax conceal" activ�esyntaxe iskeyword contr�le orthographique dans le texte sans groupe syntaxique, sauf si @Spell/@NoSpellpas de contr�le orthographique dans le texte sans groupe syntaxiquecontr�le orthographique dans le texte sans groupe syntaxiquemarqueur %d sur %d%snom du marqueurvers %s sur %stapez  :help cp-default<Entr�e>  pour plus d'infotapez  :help iccf<Entr�e>       pour plus d'informations          tapez  :help register<Entr�e>   pour plus d'informations          tapez  :help sponsor<Entr�e>    pour plus d'informations          tapez  :help version8<Entr�e>   pour lire les notes de mise � jourtapez  :help<Entr�e>  ou  <F1>  pour acc�der � l'aide en ligne    tapez  :q<Entr�e>               pour sortir du programme          tapez  :set nocp<Entr�e>       pour la d�sactiverimpossible de convertir %s � un dictionnaire vimimpossible de convertir %s � une liste de vimimpossible de convertir %s � une structure de vimimpossible d'obtenir la valeur d'une optionimpossible de d�sactiver une option globale %simpossible de d�sactiver l'option %s qui n'a pas de valeur globaleargument de uniq()inconnudrapeau inconnu : option inconnuevimOption inconnuela fonction sans nom %s n'existe pasvaleur trop grande pour �tre stock�e dans le type C intvaleur trop petite pour �tre stock�e dans le type C intversion erreur Vimnum�ro de fen�tre hors limitesfen�tre invalideavec interface graphique (classic).avec interface graphique Carbon.avec interface graphique Cocoa.avec interface graphique GTK2.avec interface graphique GTK2-GNOME.avec interface graphique GTK3.avec une interface graphique.avec interface graphique Photon.avec interface graphique X11-Athena.avec interface graphique X11-Motif.avec interface graphique X11-neXtaw.sans interface graphique.�criture vers un p�riph�rique d�sactiv� par l'option 'opendevice'PK�j�ZԗA�KK$vim80/lang/menu_sr_yu.iso_8859-2.vimnu�[���" Menu Translations:	Serbian

source <sfile>:p:h/menu_sr_rs.iso_8859-2.vim
PK�j�Z��0=H=H vim80/lang/menu_fr_fr.latin1.vimnu�[���" Menu Translations:	Francais
" Maintainer:		Adrien Beau <version.francaise@free.fr>
" First Version:	Francois Thunus <thunus@systran.fr>
" Last Modification:    David Blanchet <david.blanchet@free.fr>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in latin1, but they work for cp1252 and
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15" && &enc != "iso-8859-1"
  scriptencoding latin1
endif

menutrans &Help				&Aide

menutrans &Overview<Tab><F1>			&Sommaire<Tab><F1>
menutrans &User\ Manual				&Manuel\ utilisateur
menutrans &How-to\ links			&T�ches\ courantes
menutrans &Find\.\.\.				Rec&hercher\.\.\.
" -sep1-
menutrans &Credits				&Remerciements
menutrans Co&pying				&License
menutrans &Sponsor/Register			Sponsor/&Enregistrement
menutrans O&rphans				&Orphelins
" -sep2-
menutrans &Version				&Version
menutrans &About				�\ &propos\ de\ Vim

let g:menutrans_help_dialog = "Entrez une commande ou un mot � rechercher dans l'aide.\n\nAjoutez i_ pour les commandes du mode Insertion (ex: i_CTRL-X)\nAjoutez c_ pour l'�dition de la ligne de commande (ex: c_<Del>)\nEntourez les options avec des apostrophes (ex: 'shiftwidth')"


menutrans &File				&Fichier

menutrans &Open\.\.\.<Tab>:e			&Ouvrir\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp		Ouvrir\ �\ p&art\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew		Ouvrir\ dans\ un\ onglet\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew			&Nouveau<Tab>:enew
menutrans &Close<Tab>:close			&Fermer<Tab>:close
" -SEP1-
menutrans &Save<Tab>:w				&Enregistrer<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav		Enregistrer\ &sous\.\.\.<Tab>:sav
" -SEP2-
menutrans Split\ &Diff\ with\.\.\.		&Difference\ avec\.\.\.
"menutrans Split\ Patched\ &By\.\.\.		&Patcher\ avec\.\.\.
menutrans Split\ Patched\ &By\.\.\.		&Tester\ un\ patch\.\.\.
" -SEP3-
menutrans &Print				&Imprimer
" -SEP4-
menutrans Sa&ve-Exit<Tab>:wqa			En&registrer\ et\ quitter<Tab>:wqa
menutrans E&xit<Tab>:qa				&Quitter<Tab>:qa


menutrans &Edit				&Edition

menutrans &Undo<Tab>u				&Annuler<Tab>u
menutrans &Redo<Tab>^R				Re&faire<Tab>^R
menutrans Rep&eat<Tab>\.			R&�p�ter<Tab>\.
" -SEP1-
menutrans Cu&t<Tab>"+x				Co&uper<Tab>"+x
menutrans &Copy<Tab>"+y				Cop&ier<Tab>"+y
menutrans &Paste<Tab>"+gP			C&oller<Tab>"+gP
menutrans Put\ &Before<Tab>[p			Placer\ a&vant<Tab>[p
menutrans Put\ &After<Tab>]p			Placer\ apr&�s<Tab>]p
menutrans &Delete<Tab>x				Effa&cer<Tab>x
menutrans &Select\ All<Tab>ggVG			&S�lectionner\ tout<Tab>ggVG
" -SEP2-
menutrans &Find\.\.\.				Rec&hercher\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.		Re&mplacer\.\.\.
menutrans &Find<Tab>/				Rec&hercher<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s		Re&mplacer<Tab>:%s
menutrans Find\ and\ Rep&lace<Tab>:s		Re&mplacer<Tab>:s
" -SEP3-
menutrans Settings\ &Window			Fe&n�tre\ des\ r�glages
menutrans &Global\ Settings			R�glages\ globau&x

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Surligner\ recherche\ on/off<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		&Ignorer\ casse\ on/off<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		V�rifier\ parenth&�ses\ on/off<Tab>:set\ sm!

menutrans &Context\ lines				Lignes\ &autour\ du\ curseur

menutrans &Virtual\ Edit				�dition\ &virtuelle
menutrans Never							&Jamais
menutrans Block\ Selection					&S�lection\ en\ bloc
menutrans Insert\ mode						&Mode\ insertion
menutrans Block\ and\ Insert					&Bloc\ et\ insertion
menutrans Always						&Toujours

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		I&nsertion\ permanente\ on/off<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		&Compatibilit�\ Vi\ on/off<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				Chemin\ de\ rec&herche\ des\ fichiers\.\.\.
menutrans Ta&g\ Files\.\.\.				Fichiers\ d'&�tiquettes\.\.\.
" -SEP1-
menutrans Toggle\ &Toolbar				Barre\ d'&outils\ on/off
menutrans Toggle\ &Bottom\ Scrollbar			Ascenseur\ &horizontal\ on/off
menutrans Toggle\ &Left\ Scrollbar			Ascenseur\ �\ ga&uche\ on/off
menutrans Toggle\ &Right\ Scrollbar			Ascenseur\ �\ &droite\ on/off

let g:menutrans_path_dialog = "Entrez le chemin de recherche des fichiers.\nS�parez les r�pertoires par des virgules."
let g:menutrans_tags_dialog = "Entrez les noms des fichiers d'�tiquettes.\nS�parez les noms par des virgules."

menutrans F&ile\ Settings			R�glages\ fichie&r

menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	&Num�rotation\ on/off<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Mode\ &listing\ on/off<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		&Retour\ �\ la\ ligne\ on/off<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Retour\ sur\ &mot\ on/off<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		&Tab\.\ en\ espaces\ on/off<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Indentation\ &auto\.\ on/off<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Indent\.\ langage\ &C\ on/off<Tab>:set\ cin!
" -SEP2-
menutrans &Shiftwidth					Largeur\ des\ in&dentations
menutrans Soft\ &Tabstop				&Pseudo-tabulations
menutrans Te&xt\ Width\.\.\.				Largeur\ du\ te&xte\.\.\.
menutrans &File\ Format\.\.\.				Format\ du\ &fichier\.\.\.

let g:menutrans_textwidth_dialog = "Entrez la nouvelle largeur du texte\n(0 pour d�sactiver le formattage)."
let g:menutrans_fileformat_dialog = "Choisissez le format dans lequel �crire le fichier."
let g:menutrans_fileformat_choices = " &Unix \n &Dos \n &Mac \n &Annuler "

menutrans C&olor\ Scheme			&Jeu\ de\ couleurs
menutrans &Keymap				&Type\ de\ clavier
menutrans None						(aucun)
menutrans Select\ Fo&nt\.\.\.			S�lectionner\ &police\.\.\.


menutrans &Tools			&Outils

menutrans &Jump\ to\ this\ tag<Tab>g^]		&Atteindre\ cette\ �tiquette<Tab>g^]
menutrans Jump\ &back<Tab>^T			Repartir\ en\ arri&�re<Tab>^T
menutrans Build\ &Tags\ File			&G�n�rer\ fichier\ d'�tiquettes

" -SEP1-
menutrans &Spelling			&Orthographe
menutrans &Spell\ Check\ On			&Activer
menutrans Spell\ Check\ &Off			&D�sactiver
menutrans To\ &Next\ error<Tab>]s		�\ l'erreur\ &suivante<Tab>]s
menutrans To\ &Previous\ error<Tab>[s		�\ l'erreur\ &pr�c�dente<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=		Sugg�rer\ &correction<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	&Reporter\ la\ correction<Tab>:spellrepall

an 40.335.205 &Tools.&Spelling.Fran�ais\ (fr)	:set spl=fr spell<CR>
menutrans Set\ language\ to\ "en"		Anglais
menutrans Set\ language\ to\ "en_au"		Anglais\ (en_au)
menutrans Set\ language\ to\ "en_ca"		Anglais\ (en_ca)
menutrans Set\ language\ to\ "en_gb"		Anglais\ (en_gb)
menutrans Set\ language\ to\ "en_nz"		Anglais\ (en_nz)
menutrans Set\ language\ to\ "en_us"		Anglais\ (en_us)

menutrans &Find\ More\ Languages		&Trouver\ d'autres\ langues



menutrans &Folding				&Replis

menutrans &Enable/Disable\ folds<Tab>zi			&Replis\ on/off<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			D&�plier\ ligne\ curseur<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Tout\ plier\ &sauf\ ligne\ curseur<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm			Fermer\ &plus\ de\ replis<Tab>zm
menutrans &Close\ all\ folds<Tab>zM			F&ermer\ tous\ les\ replis<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr			Ouvrir\ pl&us\ de\ replis<Tab>zr
menutrans &Open\ all\ folds<Tab>zR			&Ouvrir\ tous\ les\ replis<Tab>zR
" -SEP1-
menutrans Fold\ Met&hod					&M�thode\ de\ repli

menutrans M&anual						&Manuelle
menutrans I&ndent						&Indentation
menutrans E&xpression						&Expression
menutrans S&yntax						&Syntaxe
menutrans &Diff							&Diff�rence
menutrans Ma&rker						Ma&rqueurs

menutrans Create\ &Fold<Tab>zf				&Cr�er\ repli<Tab>zf
menutrans &Delete\ Fold<Tab>zd				E&ffacer\ repli<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD			Effacer\ &tous\ les\ replis<Tab>zD
" -SEP2-
menutrans Fold\ col&umn\ width				&Largeur\ colonne\ replis

menutrans &Diff					&Diff�rence

menutrans &Update					&Mettre\ �\ jour
menutrans &Get\ Block					Corriger\ &ce\ tampon
menutrans &Put\ Block					Corriger\ l'&autre\ tampon

" -SEP2-
menutrans &Make<Tab>:make			Lancer\ ma&ke<Tab>:make
menutrans &List\ Errors<Tab>:cl			Lister\ &erreurs<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!		Lister\ &messages<Tab>:cl!
menutrans &Next\ Error<Tab>:cn			Erreur\ &suivante<Tab>:cn
menutrans &Previous\ Error<Tab>:cp		Erreur\ pr&�c�dente<Tab>:cp
"menutrans &Older\ List<Tab>:cold		A&ncienne\ liste<Tab>:cold
menutrans &Older\ List<Tab>:cold		Liste\ &pr�c�dente<Tab>:cold
"menutrans N&ewer\ List<Tab>:cnew		No&uvelle\ liste<Tab>:cnew
menutrans N&ewer\ List<Tab>:cnew		Liste\ suivan&te<Tab>:cnew

menutrans Error\ &Window			&Fen�tre\ d'erreurs

menutrans &Update<Tab>:cwin				&Mettre\ �\ jour<Tab>:cwin
menutrans &Open<Tab>:copen				&Ouvrir<Tab>:copen
menutrans &Close<Tab>:cclose				&Fermer<Tab>:cclose

" -SEP3-
menutrans &Convert\ to\ HEX<Tab>:%!xxd		Convertir\ en\ he&xa<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r		D�con&vertir<Tab>:%!xxd\ -r

menutrans Se&T\ Compiler			&Type\ de\ compilateur


menutrans &Buffers			&Tampons

menutrans Dummy					Factice
menutrans &Refresh\ menu			&Mettre\ ce\ menu\ �\ jour
menutrans &Delete				&Effacer
menutrans &Alternate				&Alterner
menutrans &Next					&Suivant
menutrans &Previous				&Pr�c�dent
" -SEP-

menutrans &others				au&tres
menutrans &u-z					&uvwxyz
let g:menutrans_no_file = "[Aucun fichier]"


menutrans &Window			Fe&n�tre

menutrans &New<Tab>^Wn				&Nouvelle\ fen�tre<Tab>^Wn
menutrans S&plit<Tab>^Ws			&Fractionner<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^		Fractionner\ p&our\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv		Fractionner\ &verticalement<Tab>^Wv
menutrans Split\ File\ E&xplorer		Fractionner\ &explorateur
" -SEP1-
menutrans &Close<Tab>^Wc			Fer&mer<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo		Fermer\ les\ &autres<Tab>^Wo
" -SEP2-
menutrans Move\ &To				&D�placer\ vers\ le

menutrans &Top<Tab>^WK					&Haut<Tab>^WK
menutrans &Bottom<Tab>^WJ				&Bas<Tab>^WJ
menutrans &Left\ side<Tab>^WH				C�t�\ &gauche<Tab>^WH
menutrans &Right\ side<Tab>^WL				C�t�\ &droit<Tab>^WL

menutrans Rotate\ &Up<Tab>^WR			Rotation\ vers\ le\ &haut<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr			Rotation\ vers\ le\ &bas<Tab>^Wr
" -SEP3-
menutrans &Equal\ Size<Tab>^W=			�galiser\ ta&illes<Tab>^W=
menutrans &Max\ Height<Tab>^W_			Hau&teur\ maximale<Tab>^W_
menutrans M&in\ Height<Tab>^W1_			Ha&uteur\ minimale<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|			&Largeur\ maximale<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|			La&rgeur\ minimale<Tab>^W1\|


" PopUp

menutrans &Undo					&Annuler
" -SEP1-
menutrans Cu&t					Co&uper
menutrans &Copy					Cop&ier
menutrans &Paste				C&oller
" &Buffers.&Delete overwrites this one
menutrans &Delete				&Effacer
" -SEP2-
menutrans Select\ Blockwise			S�lectionner\ &bloc
menutrans Select\ &Word				S�lectionner\ &mot
menutrans Select\ &Line				S�lectionner\ &ligne
menutrans Select\ &Block			S�lectionner\ &bloc
menutrans Select\ &All				S�lectionner\ &tout


" ToolBar

menutrans Open					Ouvrir
menutrans Save					Enreg
menutrans SaveAll				EnregTout
menutrans Print					Imprimer
" -sep1-
menutrans Undo					Annuler
menutrans Redo					Refaire
" -sep2-
menutrans Cut					Couper
menutrans Copy					Copier
menutrans Paste					Coller
" -sep3-
menutrans Find					Chercher
menutrans FindNext				CherchSuiv
menutrans FindPrev				CherchPrec
menutrans Replace				Remplacer
" -sep4-
menutrans New					Nouvelle
menutrans WinSplit				FenFract
menutrans WinMax				FenMax
menutrans WinMin				FenMin
menutrans WinVSplit				FenVFract
menutrans WinMaxWidth				FenMaxLarg
menutrans WinMinWidth				FenMinLarg
menutrans WinClose				FenFerme
" -sep5-
menutrans LoadSesn				OuvrirSess
menutrans SaveSesn				EnregSess
menutrans RunScript				LancScript
" -sep6-
menutrans Make					Make
menutrans RunCtags				Cr�erEtiqu
menutrans TagJump				AllerEtiqu
" -sep7-
menutrans Help					Aide
menutrans FindHelp				CherchAide

fun! Do_toolbar_tmenu()
  let did_toolbar_tmenu = 1
  tmenu ToolBar.Open				Ouvrir fichier
  tmenu ToolBar.Save				Enregistrer fichier courant
  tmenu ToolBar.SaveAll				Enregistrer tous les fichiers
  tmenu ToolBar.Print				Imprimer
  tmenu ToolBar.Undo				Annuler
  tmenu ToolBar.Redo				Refaire
  tmenu ToolBar.Cut				Couper
  tmenu ToolBar.Copy				Copier
  tmenu ToolBar.Paste				Coller
  if !has("gui_athena")
    tmenu ToolBar.Find				Rechercher
    tmenu ToolBar.FindNext			Chercher suivant
    tmenu ToolBar.FindPrev			Chercher pr�c�dent
    tmenu ToolBar.Replace			Remplacer
  endif
 if 0	" disabled; These are in the Windows menu
  tmenu ToolBar.New				Nouvelle fen�tre
  tmenu ToolBar.WinSplit			Fractionner fen�tre
  tmenu ToolBar.WinMax				Maximiser fen�tre
  tmenu ToolBar.WinMin				Minimiser fen�tre
  tmenu ToolBar.WinVSplit			Fractionner verticalement
  tmenu ToolBar.WinMaxWidth			Maximiser largeur fen�tre
  tmenu ToolBar.WinMinWidth			Minimiser largeur fen�tre
  tmenu ToolBar.WinClose			Fermer fen�tre
 endif
  tmenu ToolBar.LoadSesn			Ouvrir session
  tmenu ToolBar.SaveSesn			Enregister session courante
  tmenu ToolBar.RunScript			Lancer un script Vim
  tmenu ToolBar.Make				Lancer make
  tmenu ToolBar.RunCtags			Cr�er les �tiquettes
  tmenu ToolBar.TagJump				Atteindre cette �tiquette
  tmenu ToolBar.Help				Aide de Vim
  tmenu ToolBar.FindHelp			Rechercher dans l'aide
endfun


menutrans &Syntax			&Syntaxe

menutrans &Off					D�sactiver
menutrans &Manual				&Manuelle
menutrans A&utomatic				&Automatique
menutrans on/off\ for\ &This\ file		On/off\ pour\ &ce\ fichier

" The Start Of The Syntax Menu
menutrans ABC\ music\ notation		ABC\ (notation\ musicale)
menutrans AceDB\ model			Mod�le\ AceDB
menutrans Apache\ config		Config\.\ Apache
menutrans Apache-style\ config		Config\.\ style\ Apache
menutrans ASP\ with\ VBScript		ASP\ avec\ VBScript
menutrans ASP\ with\ Perl		ASP\ avec\ Perl
menutrans Assembly			Assembleur
menutrans BC\ calculator		Calculateur\ BC
menutrans BDF\ font			Fonte\ BDF
menutrans BIND\ config			Config\.\ BIND
menutrans BIND\ zone			Zone\ BIND
menutrans Cascading\ Style\ Sheets	Feuilles\ de\ style\ en\ cascade
menutrans Cfg\ Config\ file		Fichier\ de\ config\.\ \.cfg
menutrans Cheetah\ template		Patron\ Cheetah
menutrans commit\ file			Fichier\ commit
menutrans Generic\ Config\ file		Fichier\ de\ config\.\ g�n�rique
menutrans Digital\ Command\ Lang	DCL
menutrans DNS/BIND\ zone		Zone\ BIND/DNS
menutrans Dylan\ interface		Interface
menutrans Dylan\ lid			LID
menutrans Elm\ filter\ rules		R�gles\ de\ filtrage\ Elm
menutrans ERicsson\ LANGuage		Erlang\ (langage\ Ericsson)
menutrans Essbase\ script		Script\ Essbase
menutrans Eterm\ config			Config\.\ Eterm
menutrans Exim\ conf			Config\.\ Exim
menutrans Fvwm\ configuration		Config\.\ Fvwm
menutrans Fvwm2\ configuration		Config\.\ Fvwm2
menutrans Fvwm2\ configuration\ with\ M4	Config\.\ Fvwm2\ avec\ M4
menutrans GDB\ command\ file		Fichier\ de\ commandes\ GDB
menutrans HTML\ with\ M4		HTML\ avec\ M4
menutrans Cheetah\ HTML\ template	Patron\ Cheetah\ pour\ HTML
menutrans IDL\Generic\ IDL		IDL\IDL\ g�n�rique
menutrans IDL\Microsoft\ IDL		IDL\IDL\ Microsoft
menutrans Indent\ profile		Profil\ Indent
menutrans Inno\ setup			Config\.\ Inno
menutrans InstallShield\ script		Script\ InstallShield
menutrans KDE\ script			Script\ KDE
menutrans LFTP\ config			Config\.\ LFTP
menutrans LifeLines\ script		Script\ LifeLines
menutrans Lynx\ Style			Style\ Lynx
menutrans Lynx\ config			Config\.\ Lynx
menutrans Man\ page			Page\ Man
menutrans MEL\ (for\ Maya)		MEL\ (pour\ Maya)
menutrans 4DOS\ \.bat\ file		Fichier\ \.bat\ 4DOS
menutrans \.bat\/\.cmd\ file		Fichier\ \.bat\ /\ \.cmd
menutrans \.ini\ file			Fichier\ \.ini
menutrans Module\ Definition		D�finition\ de\ module
menutrans Registry			Extrait\ du\ registre
menutrans Resource\ file		Fichier\ de\ ressources
menutrans Novell\ NCF\ batch		Batch\ Novell\ NCF
menutrans NSIS\ script			Script\ NSIS
menutrans Oracle\ config		Config\.\ Oracle
menutrans Palm\ resource\ compiler	Compil\.\ de\ resources\ Palm
menutrans PHP\ 3-4			PHP\ 3\ et\ 4
menutrans Postfix\ main\ config		Config\.\ Postfix
menutrans Povray\ scene\ descr		Sc�ne\ Povray
menutrans Povray\ configuration		Config\.\ Povray
menutrans Purify\ log			Log\ Purify
menutrans Readline\ config		Config\.\ Readline
menutrans RCS\ log\ output		Log\ RCS
menutrans RCS\ file			Fichier\ RCS
menutrans RockLinux\ package\ desc\.	Desc\.\ pkg\.\ RockLinux
menutrans Samba\ config			Config\.\ Samba
menutrans SGML\ catalog			Catalogue\ SGML
menutrans SGML\ DTD			DTD\ SGML
menutrans SGML\ Declaration		D�claration\ SGML
menutrans Shell\ script			Script\ shell
menutrans sh\ and\ ksh			sh\ et\ ksh
menutrans Sinda\ compare		Comparaison\ Sinda
menutrans Sinda\ input			Entr�e\ Sinda
menutrans Sinda\ output			Sortie\ Sinda
menutrans SKILL\ for\ Diva		SKILL\ pour\ Diva
menutrans Smarty\ Templates		Patrons\ Smarty
menutrans SNNS\ network			R�seau\ SNNS
menutrans SNNS\ pattern			Motif\ SNNS
menutrans SNNS\ result			R�sultat\ SNNS
menutrans Snort\ Configuration		Config\.\ Snort
menutrans Squid\ config			Config\.\ Squid
menutrans Subversion\ commit		Commit\ Subversion
menutrans TAK\ compare			Comparaison\ TAK
menutrans TAK\ input			Entr�e\ TAK
menutrans TAK\ output			Sortie\ TAK
menutrans TeX\ configuration		Config\.\ TeX
menutrans TF\ mud\ client		TF\ (client\ MUD)
menutrans Tidy\ configuration		Config\.\ Tidy
menutrans Trasys\ input			Entr�e\ Trasys
menutrans Command\ Line			Ligne\ de\ commande
menutrans Geometry			G�om�trie
menutrans Optics			Optiques
menutrans Vim\ help\ file		Fichier\ d'aide\ Vim
menutrans Vim\ script			Script\ Vim
menutrans Viminfo\ file			Fichier\ Viminfo
menutrans Virata\ config		Config\.\ Virata
menutrans Wget\ config			Config\.\ wget
menutrans Whitespace\ (add)		Espaces\ et\ tabulations
menutrans WildPackets\ EtherPeek\ Decoder	D�codeur\ WildPackets\ EtherPeek
menutrans X\ resources			Resources\ X
menutrans XXD\ hex\ dump		Sortie\ hexa\.\ de\ xxd
menutrans XFree86\ Config		Config\.\ XFree86
" The End Of The Syntax Menu

menutrans &Show\ filetypes\ in\ menu		&Afficher\ tout\ le\ menu
" -SEP1-
menutrans Set\ '&syntax'\ only			Changer\ '&syntax'\ seulement
menutrans Set\ '&filetype'\ too			Changer\ '&filetype'\ aussi
menutrans &Off					&Off
" -SEP3-
menutrans Co&lor\ test				Tester\ les\ co&uleurs
menutrans &Highlight\ test			Tester\ les\ g&roupes\ de\ surbrillance
menutrans &Convert\ to\ HTML			Con&vertir\ en\ HTML

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��s�SS vim80/lang/menu_cs_cz.latin1.vimnu�[���" Menu Translations:	Czech

source <sfile>:p:h/menu_czech_czech_republic.ascii.vim
PK�j�Z�iA�p�p�'vim80/lang/pl.cp1250/LC_MESSAGES/vim.monu�[�����N�:�	�t��
*�8�A�'W�/���Ŝۜ"�0�E�R�+Z���"��Ğ՞5��8�T�q������;D�������Ҡ����*�E�]�t���0��.ӡ/�02�
c�q�����
��Ƣ
ۢ$�$�0� A�b�@q�D�����!&�H�"g���"��̤���@�E�`�q�������/��8�,�=J�������Ӧ�0��1'�1Y�������ѧ-��9�N�`�}���3��3��2�J�b�|���
������٩���
�$#�H�"T�Lw� Ī���;�Q�`�#m�	��������̫ݫ
����(�@�	X�b�j�r�!������լ�����$� ,�M�h���������
��ʭ6׭�+�D�!c���
����	����Үޮ�&�	�"�*<�g�=���
ͯۯ�����	�
"�
0�;�
D�O�a�s�|�5��а-�1�&B�i���������ϱ���$�6�F�
Z�e�t�������Ųײ����&�7�C�O�^�n�����
����³γ
޳���7�C�P�h�p�y�����������=��2��$�*�3�'D�-l�2��5͵� �?9�y�����+���	����-�>�T�-r���$���
�� �4�@�?W���2��!ٸ%��9!�E[�9��C۹K�Ik�H��;��6:�8q�3��<޻-�6I���%����Լ���&-�,T�#��4�� ڽ@��-<�0j�:��;־�"2�U�>f�)��>Ͽ<�K�W�#w�:��'�9��8�$Q�9v�4��;� !�>B�1��/����-�.�.=�Bl�"��2��4�*:�e�+��%��'��(��<&�Ec�.��-��$�+�<D���*��&�� ��4�C�T�f�y���������������
���
�"�8�D�S�k�����)����$�����6�1O�?������������
�#�>�Q�Xj�%�������&�?�X�r�������$����!��
�+�1�A�E�c�"����$����#��� �;�QY����������� 
�.�4N�����	��?��P��6�
C�
Q�.\���-����-��$�.D�s�.��H����O-�O}�
��C��	�)�5�!J�l�r���3��2��!��(�G� `�"��E����%�#-�-Q������&�����!�?�X�p�'����)��+��@!�-b���5������1�/L�D|���E��$�-?�7m�#�� ��:��5%�&[�"��&��$��#��!�=7�5u� ��(��7��!-�,O�|����� ��#��&�3�J�b�}���������0�$@�!e� ��(��4��,�3�O�b�x��� ������1��/�!L�%n�%��%���� ���6�?Q�&��#����
��A�%H�"n�"��9��'��(�2?�*r�!��!��)��%�!1�4S�:��&��;��;&�)b�0���������#�#<�!`�8��&��#��� �/?�"o���-��������/�*C�(n�#���������+�>G�������"�����)�E�!\�~�9��1��)�1/�%a�7����A��?�[�r���!�������0 �4Q�$��)��N��,$�&Q�Lx�������8
�C�$Y�~���,�� �� �#'�K�f�7��N���#�@�$[�!��3��,��2�%6�\�"w���#�������5�BR���0��!�� �<#�+`�����+��2��$ �E�,c���H��,��!�7�"W�z�������9�M�b�}�0��#�'��&�,F�&s�����+��2�-�(L�u�"��'��'�,�.�.E�t�#��,��W�)=�"g�,��%��� ���24�2g�2���!��%�2:�5m�'��#�)�3�$M�%r��������$�&A� h�'��*��#�'�%(�3N�!����+��*-:$h�����  6$W$|)���,�&;%V|=���,'Fn�$�#�0�."0Q�����	-4 b�7�)�$(=f�%�$���'.V'u ���� 7)0a�#��"�(	!A	c	-�	1�	6�	5
N
.i
*�
1�
9�
/*O&z+�,�+�4&<[+�*��

2
G
^
y
�
�
�
"�
�
�
,Kd}����;:N=�<�6<;x"��+�)�45T4�3��0 6WDjP�%&Ec�����!%@Wk���'��!0Ro"��1��%":]r�����/BVn�����*)6`s ����6�#)M)i&�K� :Yt����"�&#8\w+�%�7�5 Vs,����) 0Qg�����0'Xo��4�.�$.)S1};��.�** U $u � %� ,� !!0!&J!-q!&�!�! �!" ";"+U" �"�"?�")�"#69##p#2�#9�#>$8@$1y$�$)�$)�$ %)>%h%)�%*�%"�%�%#&"8&"[&)~&�&�&%�& '+-'$Y'~'�'!�'0�'('(B(]("z(!�(9�(8�($2)/W)�)�)�)+�)%�)1$*)V*�*�*'�*%�*�*&+!:+%\+'�+%�+'�+-�+2&,Y,n,$�,�,�,�,"-&-F-!f-1�-&�-�-!�-! .B.(W.�.�.+�.8�./7>/Ev/!�/�/�/(
0030#d0�0$�0�0#�0*1+1 F1g1z10�12�10�1)2+F2)r2$�2/�2�23'3)C3,m3�3�3 �3�34-*4,X4�4/�4+�4'�4!"5 D50e5�5!�5,�5�56(%6N6g60}6.�6�6�697T7t7�7*�7�73�708%I82o80�8!�8;�8R19�9*�9�9�9(:+:+G:+s:�: �:"�:%�: $;+E;"q;+�;�;.�;4<ID<)�<%�<)�<6=6?=-v=(�=/�=&�=<$>)a>*�>�>7�>??>?*]?�?�?0�?/�?!#@"E@*h@/�@;�@�@AQ7A.�A�A$�A#�A0!B#RBvB2�B6�B�B+C%KCXqC;�C;DBD!bD"�DB�D�D	E&E@E`E)E'�E�E�E'F/F	7FAFYFhF�F�F#�F	�F�F�FG.GIG.`G6�G�G�G6�G#H
;H&FH	mHwH�H�H�H�H �H%�H!$I
FIQI(gI��Ia;J�J+�Ja�JDKSKYK(`K
�K	�K%�K�K
�K�K&�K& LGL(dL�L	�L�L	�L�L�L�L�LM,M	AM2KM*~M�M�M�M�MN
&N1N	@NJNVNbNwN#�N(�N�N�N	O
O
+O6OLO2TO�O�O�O�O�O�O$�OP/6PfP'nP�P�P
�P$�P�PQQ #QDQ]QjQwQ!�Q�Q�Q(�QR'R8R;RLRXRdR�R#�R�R�R�R.�R
-S8S	NSXSxS�S�S'�S�S�S
�S
TT6TJTSTmT�T�T�T�T�TU9$U9^U�U�U�U�U
�U�U�UVV+V(IVrV�V�V�V�V
�V	�V�V�VWW+W98W
rW�W�W�W�W&�WX&XEXdX?|XQ�X	YY.YAY"YY|Y�Y�Y�Y�Y�Y
�Y�Y)Z'-ZUZuZ�ZF�Z�Z[[.[5[A[(M[v[�[�[�[�[�[�[\*\09\;j\ �\>�\]]6]1R]"�]�]�]�]�])^=/^m^(�^�^�^$�^0�^)_2_5_+K_2w_�_�_�_�_�_	
``�0`�`F�`a
a	(a
2a@a+Ua�a�a�a�a%�a0bDb(Tb}b1�b+�b*�b"c&<c9ccM�c>�c)*d5TdA�d4�d$e6&e"]e�e<�e<�e?f/Bf rf"�f�f2�f0�f/gKg\gqg�g�g�g�g�g2h)6h+`h,�h-�h �h!i#*iNigi
i�i�i�i�i
�i�i�i	�i�ijjj6jMj]jmj
}j
�j�j	�j�j�j�j	�j�j
�j
k
k	k
'k52khk|k	�k�k�k
�k�k&�k�k�kll
ll
#l1l8lGl9Ml"�l$�l"�l)�lm+m2mLmcmumym1�m
�m$�m"�mn<6nsn'�n!�n�n�n�n
o,oEoHRoC�o�o�op(p;pVp]pepkp	sp}p�p�p �p#�p-�p-,qZqlq�q�q�q�q(�q&r-r=<rzr�r%�r
�r�r8�rF6s.}sD�sM�s@?t0�t&�t'�t&u$'uLu^u$yu�u-�u�u�uv0vNvZv`v{v�v�v�v6�vw w9w
>wLw"Yw|w%�w*�w.�w8x"Gx#jx#�x�x�x�x�x/y3y
By Py qy�y
�y�y�y�y�y�yz	4z>zWz2kz�z�z�z�z$�z{
{{%{#.{1R{1�{1�{1�{|#|	,|
6|(A|j|}|�|�|�|�|
�|�|�|
�| }$}(8}'a} �}�}�}�}�}~	,~6~"H~k~~~$�~$�~�~�~�~�~
/Njz��.�.�.�.*�.Y�.��.��.�.�&D�%k��� ��:́���.�"@�)c�)����	��ʂ���
��.�=�	R�\�m�������3������
��	��˅'�.	�8�M�c�8y�/����1��,�/I�y���?��/�#�8�
W�e��{�0�G� \�}�
������̊ۊ(���6�R�o�4��2��3�4(�
]�k�������ڌ�.��/-�]�"l���G��J�5� D�$e�$��+��$ێ+�,�G�[�Bm�%��֏�
��
��B0�Vs�(ʐS�G� ^������;̑$�--�[�p�����+�����-�M�e�.}�.��ۓ���+�D�S�	m�w�������˔�"��!�#2�LV�/��ӕ�;�=�J�,\���#����Ɩږ�
���"�2�?�_�	�������%��ӗ�"�%�!7�
Y�
d�+r�#��˜"ޘ�
�� �5�AJ��� ��!ə3�	�)�;�
M�%X�~�����&��
��+ǚ*��L5�����������՛	�����%�	1�;�L�	a�"k�6��Ŝ6՜0�!=�_�x�������Ν ��,�F�X�l�
y�������ɞޞ��'�@�[�
t�
��������ŸΟ��
��
�"�1�@�5M�����������àʠΠ۠�@�:2�m�u�	}���6��/ѡ9�=;�y���H�����)�)8�b�
o�}�����ɣ!�4�:�%X�~�������
ʤؤW�K�8Z�*��&��;�A!�Dc�B��U�IA�H��Aԧ=�>T�7��B˨1�<@�!}�#��é۩�#�7�I�1g�/��@ɪ+
�@6�/w�9��B�I$�n�#����9��8��?2�Gr��� ƭ%�3
�+A�Bm���*Ȯ@�@4�Gu�#��J�=,�/j���.���2��J+�0v�>��=�6$�#[�)�'��/Ѳ&�A(�Mj�C��6��$3�X�Hp���%ִ(��(%�<N�������õʵ����*�9�O�
c�n�(w��������'�(�8F�	�$����÷˷�<��C;�
�
��	����¸ո��"�[?�(��Ĺ)͹#���;�Z�u�����	��+���*��*(�S�Z�k�o�#��!��ͻ!ݻ#��4#�X�`� ~�\�����!�9�V�(v� ��:�����
�>"�Na�����̾1پ�9$�!^�.��"��/ҿ�9 �GZ�����R�R�r�B�����	��*�<0�;m�#��%����$
�(2�I[�"��/��*��2#�V� n��� �����������2�*L�w�+��(��I��.1�`�5��������5�QQ�!��Q���12�8d���,��=��6#�*Z�(��*��$��,��%+�:Q�8��#��,��:�*Q�'|�&������$�%%�,K�x�����"����� !�+B�'n���+��'��4
�4?�,t�����������,�">�a�:���"��,��+'� S�t�)������N��+E�+q�"����J��%�@�&`�;��1����9�0O�!��%��,��'��*�8H�=��;��G��@C�4��=��,��$�#C�g���(��'��;��6(�#_�#��,��5��,
�
7�8E�
~���"��(��4��+�+K�#w���)������A�_�"~���3��$���!.�P�$h���=��C��3+�2_�1��>���M�Hl� �� ��%��&�D�%b� ��1��<��#�*<�Vg�.��(��T�k�����C����)�@� ]�/~�#��*��(��&�A�?_�W����'�#<�.`�,��:��2��8*�.c���+�� ��#��!"� D� e� ��?��+��/�$C�,h�F��.��)�5�)P�5z�$��(��=��<�FY�2����#��(�&>�(e�&��&��'��?�%D�"j� ��7��,��4�H�*T�1�(������-�95�/o�-����-��)�.C�=r���=��!�$)�,N�U{�-��*��**�'U�}�&����=��=�8\���&������-�0.�+_�,��)��6��8�2R���"����(���* �-K�!y�-��6��+�&,�'S�5{�����6��&#�.J�0y�!��'���-�B�(b�(��-��,�2�B�]�*p�����"��A� P�q���(��,���&�)D�,n�0��1�@��%?�e���������/� 3�T�8t�8��"�!	�4+�`�}�4��*�*��'5�.]���&��(����4�O�Cj�9��&��#.�*R�/}�%��(�8��95>o=�"�70G6x8�%�.-=Jk3�2�;JY2�4�%=\r�����)-F `.� � ��2Jj���?�A6\;�>�&5T6i4�>�A	CV	<�	�	:�	&
!D
Kf
X�
<#H"l"�����!8Z y�����+
F
!\
"~
(�
#�
�
4'\z����%,,Yn����� ;Yv�%�/�.:P"p!���<�*E-d(�S�($M%l�����-#. Rs�*� �:�8,(e'�.��&"++Nz�&���� 9Q3l�!��$�:7U0�"�4�?V:l-�0�("/.R6����-�--+[#�)���)88"q�>�'�(:@'{4�=�EE\3�)�&.'0V+��4�. %7 ]  w %� &� 6� !<!'T!&|!+�!(�!#�!'"$D"7i"�"�"�"!�"2# ?#7`#?�#(�#4$6$R$r$'�$2�$/�$0%@%U%'l%(�%�%&�%�%#&'>&(f&#�&2�&/�&')'!A'"c')�' �'#�'�'(1(/P()�(�('�($�()*4)"_)"�)4�)?�)*39*Qm*&�*�*$�*.+7L+2�+�+�+�++,0<,&m,4�,�,�,3�,1/-Aa-�-(�-%�-%.87.p.�.5�.<�.6	/@/^/+~/�/&�/+�/70N0+j0,�0*�0"�0&1;81t1!�1,�1�1�1)212I2;`23�2!�2,�2B3-b3,�3.�38�3,%40R4�47�43�4/
5$:5:_5Y�5*�5.6!N6$p6)�6�6)�61777#W7#{75�7%�70�7",81O8)�8,�89�8C9$V9({9$�9?�9?	:.I:(x:3�:'�:C�:+A;;m;�;E�;#< 3<T<*s<'�< �<0�<+=$D=#i=0�=5�=A�=!6>X>Ov>5�>;�>%8?$^?3�?$�?�?H�?IC@-�@;�@.�@_&A;�AE�A+B(4B*]B5�B)�B�BC#%C!IC$kC0�C�C%�C+D1D8DDD^DnD�D�D�D
�D�D�DE90E!jE>�EA�E
FF?$F&dF
�F%�F�F�F�F�F
GG%"G*HG&sG	�G�G&�G��Gj�HI6(Ib_I�I�I�I.�IJ!J'1J
YJgJ#oJ,�J(�J6�J5 KVK	kKuK	�K	�K�K�K�K"�K
L&L./L)^L*�L�L&�L�LM2MDM
SM^M	kMuM�M/�M,�MN$N5N!DNfN}N	�N6�N�N�N�NO0O7O1SO&�O8�O
�O2�O#P)9PcP5pP�P �P
�P,�PQ4QHQ[Q(uQ6�Q�Q,�QR((RQRTRlR|R"�R)�R#�R�RS	1S/;S	kSuS�S'�S�S�S�S3T9TWTgTxT�T�T�T�T%�TUU'5U]U tU�UF�UJ�UEV_VfVwV
�V�V�V�V�V�V6W7WLWXWqW�W�W�W�W�W�WXXE%XkX
xX�X"�X�X,�X,Y,5Y,bY�Y=�YO�Y4Z:ZSZdZ%}Z�Z�Z!�Z�Z[[
,[	:[*D[(o[$�[�[!�[M�[J\^\u\�\
�\�\,�\�\�\]1]:]J]h]|]�]=�]1�])^BG^�^�^ �^2�^#_/_4_N_.n_'�_A�_`+$`P`Y`!q`3�`
�`�`�`)�`@a]awa�a�a�a�a�a��a�bQ�b�b�b	c
cc,5cbc~c"�c�c1�c/dCd+Ud�d0�d3�d.e3e1KeC}ek�eB-f1pf?�fI�f5,g&bg<�g%�g�gG�gG@hE�h5�h)i0.i_i0zi'�i�i�i�ij*j(Bjkj�j�j3�j*�j,k-Gk.uk/�k+�k!l"l>lVl^lul�l�l�l�l
�l�l�l�l�l!m)mGmWmjmym�m�m�m(�m�m�m	�m�mnn n/n
7nEBn�n�n�n�n�n
�n�n#�no
 o.o4o<oKoTocojoyo:|o'�o%�o%p)+pUpdpjp�p�p�p�p3�p
q(q)?q"iq;�q�q(�q"r.rFr$br'�r#�r�rU�rT<s�s$�s�s�s"	t,t5t<tDt
LtWtht�t/�t-�t7�t7/ugu(xu�u�u�u�u#�u#!vEv?Tv�v�v+�v
�vw@!wSbw,�wD�wM(xQvx.�x/�x0'y/Xy&�y�y*�y0�y z&>z$ez�z"�z�z
�z�z!�z{0{I{^{Av{�{%�{�{�{
|,|=|+O|;{|C�|6�|$2}/W}#�}�}�}�}�}2
~@~P~,a~'�~�~�~�~
�~�~#-Qn}�?���'�/�+>�j�	������&��2΀5�27�4j�������ā)Ӂ����3�P�d�x�������$���+�-.� \�}���&��փ���(�H�[�*p�*��Ƅτ�����,%�#R�v�����
��9��8��4/�3d�9��9҆9�9F�9��)��*��%.�<T���������#͈0�5"�X�	`�j�����
����Ɖ҉�
�����.�87��0�^���i��A��R���{�_��t��v�
6Ig7��;�X���j�yq"�I��
�?�#��$n�	��}&��(w���������0�U��D<�"p�G�	=�(�!��V{#�l��|���r����$Z��s*
}�G5l)�3p�xP���Qm��>T�LhY���-$8�!�q��'^u���bD���Z�#g	�v�H`GZ4��1ea`
��,����j^()w�����R	g�9����_/����eyNb��/
`	�:X���;��d������V�v����:��kxL���f84������\uM'���NB�H�?�O��%��n�q�Y��0�M���4� H4��^�B4L,�}dz��7G�Z�E���.oIy65T�\���q-�LKP%a�l��DY�P���,�L����OH���N���[%���~�T9y.u���:S���~O���x�������Qc�~�q.�z<WM���"9���,8?w]c���C���=��A������ H'��<&\����B�bp�^%5x+�Y`�k���:���e��M�~�8�5gn�:��-�%��[$�,:^��IE"�S�9IWI�P�eCr_��Q�5������i"�g�����f��x����6���]iu�>��Z���C�(uCp�����+�	#�9�Q���0���}V�������\�4F��G;G����?]�_���k��<�2�F1o�L�>K������;����w�>\�_KB���@iU��� +p�)CJ��s��z�T]����z��t�D�>~,�rv���b�t�0�2�8@-��*{o�
��;�V�J],����z�����np�b�!�/���������c~(yG��rF|cf8�&���U�[��K�t�'g'3t��3��WE����B�.��C2��o7������'aM5O�J�D�������w���ND�f�H�-O2�v�m6h��i���m�����d�*�v-�0e�MY*���8<��>���X�s��&��:���@�m�Z��1$�c�Qy�&�>a���T����*������x��'K��d�52�P���������3�0k@���R=)��EJ+\��a�s�Ek�W��u.��*���5����6F%�����a��|?�<�nF._��d��S���jh�|����r��C�
�`s����T�W�/��A����U A�2$��{:MSs���e�����]���)�.�J!����R�N�!Og$E�������1�����������}}8��� @=�n�b��JQ(�w�-1�e�L�����r�i��3�3)���;%F���7M��" ��A�F<d�f[�A����cB��x
��2�k`��
�!�+@3����#��S��?� Nh��7��1�%�op=|���+0NXf�AL��!q�[�B">�X���lW|��jD��W��hZ��y�
�-�f���P&�[[��nD~��!��Kz`V�PH�������6��#����	�X�h�����4/�ab��{��t,�R)�����T]^��#}�&�Kt���=���/�r�{��m��(��
QF�m����6��
I��U�U��S;�����U��K�@��Ijm��is�.9���u;�AV�(7�=@��1��k�?�9��"�	���/G��j����O+�XY��S6cY_&7��E�R���j)B�������w��
����1�N7�<�C|���
49�'�
l{��RlJ�*��$�/�����E\vh�����J=� �V3d���z�#�+��o�
������q������H�����l�*�?o����2
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Quit, or continue with caution.
  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in Win32s mode in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Cscope tag: %sCurrent %slanguage: "%s"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E834: Line count changed unexpectedlyE835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Lua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][blowfish][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]add() argumentafterand run diff with the original file to check for changes)attempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlererror list %d of %d; %d errorsexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sfreeing %ld linesfunction %s does not existfunction constructor does not accept keyword argumentsgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater then zerope_line_count is zeropre-vimrc command lineproblem while switching windowsread from Netbeans socketreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: pl
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2013-07-06 19:33+0200
PO-Revision-Date: 2010-08-10 18:15+0200
Last-Translator: Mikolaj Machowski <mikmach@wp.pl>
Language-Team: 
Language: pl
MIME-Version: 1.0
Content-Type: text/plain; charset=cp1250
Content-Transfer-Encoding: 8bit
X-Generator: Lokalize 1.0
Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);

	Ostatnie ustawienie przez 

Argumenty:


u�ycie:
         zmieniono: 
     [nie do u�ytku na tym komputerze]
         [nie nadaje si� dla tej wersji Vima]
      nazwa hosta: 
        u�ytkownik: 
        ID procesu: 
       c: znajd� funkcje wywo�uj�ce t� funkcj�
       d: znajd� funkcje wywo�ywane przez t� funkcj�
       e: znajd� ten wzorzec egrep
       f: znajd� ten plik
       g: znajd� t� definicj�
       i: znajd� pliki w��czaj�ce (#include) ten plik
       s: znajd� ten symbol C
       t: znajd� ten �a�cuch znak�w

    Nazwa       Arg. Zak.  Gotowo��  Definicja
   #   wiersz
   lub:
  # DO znacznik  OD wiersza      w pliku/tek�cie
 skok wiersz kol plik/tekst
# %s Historia (od najnowszych po najstarsze):

# Lista bufor�w:

# Zak�adki w plikach:

# Historia zak�adek w plikach (od najnowszych po najstarsze):

# Lista odniesie� (pocz�wszy od najnowszych):

# Ostatni %sWyszukiwany wzorzec:
~
# Ostatni podstawiany ci�g:
$
# Rejestry:

# zmienne globalne:

(1) Pewnie inny program obrabia ten sam plik.
    Je�li tak, b�d� ostro�ny, aby nie sko�czy� z dwoma
    r�nymi wersjami tego samego pliku po zmianach.

(Mo�esz chcie� zapisa� ten plik pod inn� nazw�

--- Autokomendy ---
--- Globalne warto�ci opcji ---
--- Lokalne warto�ci opcji ---
--- Menu ---
--- Opcje ---
--- Rejestry ---
--- Znaki ---
--- Elementy sk�adni ---
--- Elementy synchronizacji sk�adni ---
--- Kody terminala ---
--- Klawisze terminala ---
16 bitowa wersja dla MS-DOS
32 bitowa wersja dla MS-DOS
Argumenty rozpoznawane przez gvim (wersja Athena):

Argumenty rozpoznawane przez gvim (wersja GTK+):

Argumenty rozpoznawane przez gvim (wersja Motif):

Argumenty rozpoznawane przez gvim (wersja neXtaw):

Du�a wersja 
Nie mog� stworzy� potok�w

Nie mog� wykona� pow�oki 
Nie mog� wykona� pow�oki sh

Nie mog� rozdzieli� si�

Komenda zako�czona

Skompilowany 
Nie mog� uzyska� kontekstu bezpiecze�stwa dla
Nie mo�na uzyska� kontekstu bezpiecze�stwa dla
Ekstra �aty: 
Znalaz�em plik wymiany o nazwie "
Olbrzymia wersja 
Je�li podano nowy klucz szyfruj�cy, ale nie zapisano pliku tekstowego,
Je�li zapisano plik tekstowy po zmianie klucza szyfruj�cego wci�nij Enter
Zadane �aty: 
16 bitowa wersja dla MS-Windows
16/32-bit wersja GUI dla MS-Windows
32 bitowa wersja GUI dla MS-Windows
32 bitowa wersja na konsol� dla MS-Windows
64 bitowa wersja GUI dla MS-Windows
32 bitowa wersja na konsol� dla MS-Windows
wersja dla MacOS X (unix)
wersja dla MacOS X
wersja dla MacOS
Mo�e nie wykonano zmian albo Vim nie zaktualizowa� pliku wymiany.
Dalsze informacje poprzez: "vim -h"

Normalna wersja 
wersja dla OpenVMS
Ma�a wersja 
Malutka wersja 
Vim: Dosta� b��d X

OSTRZE�ENIE: Oryginalny plik mo�e zosta� utracony lub uszkodzony

gdzie wielko�� znak�w jest ignorowana dodaj na pocz�tku / by flaga by�a wielk� liter�
Mo�esz teraz chcie� usun�� plik .swp.


[bajt�w] totalne alokacje-zwolnienia %lu-%lu, w u�ytku %lu, maksymalne u�ycie %lu

zmie� wrsz. kol tekst
wprowad� nowy klucz szyfruj�cy.
zak�. wiersz kol plik/tekst
pow�oka zwr�ci�a 
synchronizuj� na elementach
aby u�y� tego samego klucza dla pliku tekstowego i wymiany     dla domy�lnych ustawie� Vima                     dla dw�ch tryb�w                         data:    posiadany przez:             [nieotwieralny]        [nieodczytywalny]         [nie wygl�da na plik wymiany Vima]         [po Vimie wersja 3.0]       nazwa pliku:      -- �aden --
      NOWSZE od pliku wymiany!
    exrc u�ytkownika: "   vimrc u�ytkownika: "    Je�li tak, to u�yj ":recover" lub "vim -r     Je�li ju� to zrobi�e�, usu� plik wymiany "    wiersz=%ld  id=%d  nazwa=%s systemowy plik menu: "  gvimrc u�ytkownika: "   W bie��cym katalogu:
   W katalogu    U�ywam podanej nazwy:
   data:    nazwa hosta:        vimrc systemu: "  # pri rodzaj znacznik  (Ju� wymienione)  2-gi plik exrc u�ytkownika: "  KOMPILACJA DEBUG  Opcje w��czone (+) lub nie (-):
  NIE ZNALEZIONO  Zako�cz lub ostro�nie kontynuuj.
  WSZYTKO    ILO��  PASUJE  NAJWOLN.    �REDNIO   NAZWA              WZORZEC  U�ywam znacznika o odmiennej wielko�ci liter!   odwet dla $VIM-a: "     gvimrc systemu: " # pid   nazwa bazy danych               przedsionek tropu
 (Przerwane) (NIE ZNALEZIONO) (zawiera poprzednio wymienione dopasowanie) (wprowadzanie) (wprowadzanie) Przewijanie (^E/^Y) (j�zyk) (wiersz skasowany)(nie wspomagane) (wklejanie) (zamiana) (zamiana) Przewijanie (^E/^Y) (dalej dzia�a) (v-zamiana) 2-gi plik vimrc u�ytkownika: " 3-ci plik vimrc u�ytkownika: " < "%.*s" Dodaj� Arabski B��D W PRZEMIANIE Dope�nianie wiersza polece� (^V^N^P) Kopia %d z %d Dope�nianie definicji (^D^N^P) Dope�nianie ze s�ownik�w (^K^N^P) NIE POWIOD�O SI� Dope�nianie nazw plik�w (^F^N^P) Hebrajski WPROWADZANIE Lokalne dope�nianie s��w kluczowych (^N^P) Dope�nianie s��w kluczowych (^N^P) Omni uzupe�nianie (^O^N^P) Dope�nianie wzorc�w trop�w (^N^P) ZAMIANA NEGATYW ZAZNACZANIE ZAZNACZANIE BLOKOWE ZAZNACZANIE LINIOWE SPACE/d/j: ekran/strona/wiersz w d�, b/u/k: do g�ry, q: zako�czPropozycja pisowni (^L^N^P) Dope�nianie znacznik�w (^]^N^P) Dope�nianie z tezaurusa (^T^N^P)Dope�nianie zdefiniowane przez u�ytkownika (^U^N^P) WIZUALNY WIZUALNY BLOKOWY WIZUALNY LINIOWY V-ZAMIANA Dope�nianie pe�nych wierszy (^L^N^P) [Zmieniony] [a] [w] ^X tryb (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) do��czono nie mo�e by� stosowany na tym komputerze.
 nie mo�e by� stosowany z t� wersj� Vima.
f-b dla $VIMRUNTIME: " zosta� uszkodzony (wielko�� strony jest mniejsza ni� najmniejsza warto��).
 w trybie Win32s w wierszu %ld; informacja pokrewny plik
znak�w nowego wiersza wierszy przed g�rn� lini� zak�adki stare pliki w %ld wierszach w 1 wierszu lub wi�cej zwr�ci�
 vim [argumenty] ze wspomaganiem OLE zapisano"
    aby unikn�� tej wiadomo�ci.
"
    aby odzyska� zmiany (zobacz ":help recovery)").
" ju� istnieje!# Ten plik viminfo zosta� wygenerowany przez Vima %s.
# Warto�� 'encoding' w czasie zapisu tego pliku
# Mo�esz go ostro�nie edytowa�!

%-5s: %s%*s (U�ycie: %s)%3d  %s %s  wiersz %ld%<%f%h%m%=Strona %N%d bufor�w skasowanowy�adowano %d bufor�wwyrzucono %d bufor�w%d powt�rzony(ch) wyraz(�w) w %s%d plik�w do edycji
jeszcze %d plik�w do edycji.  Mimo to wyj��?otworzono %d z %d%ld %s; %s #%ld  %s%ld Kolumn; %ld znak�wusuni�to %ld wierszy%ld wierszy %sed %d razy%ld wierszy %sed 1 raz%ld wiersze --%d%%--%ld wierszy zmieniono%ld wierszy przefiltrowanych%ld wierszy wci�tych %ld wiersze przeniesione%ld wierszy do wci�cia... %ld wierszy skopiowanych%ld wierszy, %ld dopasowa�dodano %ld wierszy%ld sekund temu%ld podstawie�%lld znak�w%s Autokomend dla "%s"porzucono %s%s odrzucony%s wiersz %ld%s zosta� zawieszony%s przywr�cony%s zwraca #%ld%s zwraca %sWarto�� %s r�ni si� od tej u�ytej w innym pliku .aff%s, wiersz %ld%sviminfo: %s w wierszu: &Anuluj&Anuluj&Filtr&Pomoc&OK&OK
&Zako�cz&OK
&Za�aduj Plik&Ok&Otw�rz Read-Only
&Edytuj pomimo
O&dtw�rz
&Usu�
&Zako�cz
&Porzu�&Otw�rz Read-Only
&Edytuj pomimo
O&dtw�rz
&Zako�cz
&Porzu�&Zamie�&Cofnij&Tak
&Nie&Tak
&Nie
&Zako�cz&Tak
&Nie
Zapisz &wszystkie
&Odrzu� wszystkie
&Zako�cz' nieznany. Mo�liwe typy wbudowanych terminali:'-nb' - nie mo�e by� u�yte: nie w��czone przy kompilacji
'columns' nie wynosi 80, nie mog� wykona� zewn�trznych komendopcja 'dictionary' jest pustaopcja 'history' jest zerowaopcja 'readonly' nastawiona dla "%s".
Czy chcesz go pomimo tego zapisa�?opcja 'thesaurus' jest pusta(%d z %d)%s%s: (+%ld dla BOM)(2) Sesja edycji dla pliku za�ama�a si�.
(Przerwane) (Niew�a�ciwe)(NFA) NIE MO�NA OTWORZY� %s !+			Zacznij na ko�cu pliku+-%s%3ld wierszy: +--%3ld wierszy zwini�to +<lnum>		Zacznij w wierszu <lnum>+reverse		Nie stosuj negatywu kolor�w (r�wnie�: +rv),
lub plik zosta� uszkodzony.-               czytaj tekst ze stdin--			Tylko nazwy plik�w po tym-- Wi�cej ---- Szukam...--- Zawarte pliki --Skasowano----Brak wierszy w buforze---cmd <command>		Wykonaj komend� <command> przed za�adowaniem jakiegokolwiek pliku vimrc--cmd argument-echo-wid		Gvim wypisze Window ID na wyj�cie standardowe--literal		Nie rozwijaj znak�w specjalnych--noplugin		Nie �aduj skrypt�w wtyczek--remote <pliki>	Edytuj pliki w serwerze Vima je�li mo�liwe--remote-expr <wyr>	Wykonaj <wyra�enie> w serwerze i wypisz wynik--remote-send <klawisze>	Wy�lij <klawisze> do serwera Vima i zako�cz--remote-silent <pliki> To samo, nie narzekaj je�li nie ma serwera--remote-tab[-wait][-silent] <pliki>  tak jak --remote ale u�ywa jednej karty na plik--remote-wait <pliki>	Tak jak --remote, lecz czekaj na pliki przed edycj�--remote-wait-silent <pliki>  To samo, nie narzekaj je�li nie ma serwera--role <role>	Ustaw unikatow� rol� do identyfikacji g��wnego okna--serverlist		Wymie� nazwy dost�pnych serwer�w Vima i zako�cz--servername <nazwa>		Odsy�aj do/sta� si� serwerem Vim <nazwa>--socketid <xid>	Otw�rz Vim wewn�trz innego widgetu GTK--startuptime <plik> Zapisz wiadomo�ci o d�ugo�ci startu do <plik>--version		wy�wietl informacj� o wersji i zako�cz--windowid <HWND>	Otw�rz Vima wewn�trz innego elementu win32-A			rozpocznij w trybie arabskim-C			B�d� zgodny z Vi: 'compatible'-D			Tryb odpluskwiania-E			Usprawniony tryb Ex-F			rozpocznij w trybie farsi-H			rozpocznij w trybie hebrajskim-L			To�same z -r-M			Zakaz modyfikacji tekstu-N			B�d� niezupe�nie zgodny z Vi: 'nocompatible'-O[N]		tak samo jak -o tylko dziel okno pionowo-P <tytu� rodzica>	Otw�rz Vima wewn�trz rodzicielskiej aplikacji-R			Tryb wy��cznie do odczytu (jak "view")-S <sesja>		Wczytaj plik <sesja> po za�adowaniu pierwszego pliku-T <terminal>	Ustaw typ terminala na <terminal>-U <gvimrc>		U�yj <gvimrc> zamiast jakiegokolwiek .gvimrc-V[N][nazwap]		Gadatliwy [poziom N] [zapisuj wiadomo�ci do nazwap]-W <scriptout>	Zapisuj wszystkie wprowadzane komendy do pliku <scriptout>-X			Nie ��cz z serwerem X-Z			Tryb ograniczenia (jak "rvim")-b			Tryb binarny-background <kolor>	U�ywaj <kolor> dla t�a (r�wnie�: -bg)-boldfont <font>	U�ywaj <font> dla wyt�uszczonego tekstu-borderwidth <szer>	U�yj ramki o grubo�ci <szer> (r�wnie�: -bw)-c <command>		Wykonaj komend� <command> po za�adowaniu pierwszego pliku-c argument-d			Tryb r�nic (jak "vimdiff")-dev <device>		U�ywaj <device> do I/O-display <display>	Pod��cz vima to danego X-serwera-display <display>	Za�aduj vim na <display>-display <display>	Zastartuj vim na <display> (r�wnie�: --display)-e			Tryb ex (jak "ex")-f			Nie stosuj newcli do otwierania okien-f  lub --nofork	Pierwszy plan: Nie wydzielaj przy odpalaniu GUI-font <font>		U�ywaj <font> dla normalnego tekstu (r�wnie�: -fn)-foreground <kolor>	U�ywaj <kolor> dla normalnego tekstu (r�wnie�: -fg)-g			Startuj w GUI (tak jak "gvim")-geometry <geom>	U�ywaj <geom> dla pocz�tkowych rozmiar�w (r�wnie�: -geom)-h  lub  --help	wy�wietl Pomoc (czyli t� wiadomo��) i zako�cz-i <viminfo>		U�ywaj <viminfo> zamiast .viminfo-iconic		Zacznij Vim jako ikon�-italicfont <font>	U�ywaj <font> dla pochy�ego-l			Tryb lisp-m			Modyfikacje (zapisywanie plik�w) niedozwolone-menuheight <height>	Stosuj belk� menu o wysoko�ci <height> (r�wnie�: -mh)-n			Zamiast pliku wymiany, u�ywaj tylko pami�ci-o[N]		Otw�rz N okien (domy�lnie: po jednym dla ka�dego pliku)-p[N]		Otw�rz N kart (domy�lnie: po jednej dla ka�dego pliku)-q [errorfile]  edytuj plik, zawieraj�cy pierwszy b��d-r			Wylicz pliki wymiany i zako�cz-r (z nazw� pliku)	Odtw�rz za�aman� sesj�-register		Zarejestruj tego gvima w OLE-reverse		Stosuj negatyw kolor�w (r�wnie�: -rv)-s			Cichy tryb (t�a) (tylko dla "ex")-s <scriptin>	Wczytuj komendy trybu normalnego z pliku <scriptin>-scrollbarwidth <szer>  U�ywaj przewijacza o szeroko�ci <szer> (r�wnie�: -sw)-t znacznik   edytuj plik, w kt�rym dany znacznik jest zdefiniowany-u <vimrc>		U�yj <vimrc> zamiast jakiegokolwiek .vimrc-unregister		Wyrejestruj gvima z OLE-v			Tryb vi (jak "vi")-w <scriptout>	Do��cz wszystkie wprowadzane komendy do pliku <scriptout>-x			Edytuj zakodowane pliki-xrm <resource>	Ustaw okre�lony zas�b-y			Tryb �atwy (jak "evim", bez tryb�w)wiersz / zignorowano w %s wierszu %d: %sZignorowano wiersz /encoding= po wyrazie w %s wierszu %d: %s1 bufor skasowany1 bufor wy�adowanywyrzucono 1 bufor 1 znak1 wiersz %sed %d razy1 wiersz %sed 1 raz1 wiersz --%d%%--1 wiersz zmieniono1 wiersz wci�ty 1 wiersz mniej1 wiersz przeniesiony1 wiersz skopiowano1 wiersz, 1 pasuje1 wi�cej plik do edycji.  Mimo to wyj��?1 wiersz wi�cej1 podstawienie 2-gi plik gvimrc u�ytkownika: "3-ci plik gvimrc u�ytkownika: ": Wys�anie wyra�enia nie powiod�o si�.
: Wys�anie nie powiod�o si�.
: Wys�anie nie powiod�o si�. Pr�buj� wykona� na miejscu
; pasuje <%s>%s%s  %d,  Hex %02x,  Oktal %03o<nie mog� otworzy�> <pusty>> %d, Hex %04x,  Oktal %o> %d, Hex %08x, Oktal %o??? od tego miejsca po ???KONIEC wiersze mog� by� pomieszane??? od tego miejsca po ???KONIEC wiersze mog� by� w�o�one/skasowane???BRAK BLOKU???PUSTY BLOK???KONIEC???LICZNIK WIERSZY NIEZGODNY???BRAKUJE WIERSZY???BRAKUJE WIELU WIERSZYANCHOR_BUF_SIZE zbyt niskie.Dodaj now� baz� danychDodano baz� danych cscope %sAfiks u�yty tak�e dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %sZa d�uga nazwa afiksu w %s wiersz %d: %sWszystkoWszystkie bazy danych cscope prze�adowanoWszelkie w��czane pliki odnalezionoJu� w miejscu najnowszej zmianyJu� w miejscu ostatniej zmianyJest ju� tylko jedna kartaJu� jest tylko jeden widokDo��cz plikBrak argumentu poW wierszuPr�ba ponownego otworzenia pliku skryptu: "Z powrotem na pierwotnymDano wsteczny zakres; zamiana jest mo�liwaZosta� zarejestrowanym u�ytkownikiem Vima!Biiip!Przed bajtem %ldD�Wiersze SAL i SOFO w %sPunkt kontrolny w "%s%s" wiersz %ldB��dny warunek w %s wiersz %d: %sPrzejrzyj klas�COMPOUNDSYLMAX u�yty bez SYLLABLEWywo�uj� pow�ok� do wykonania: "%s"Nie mog� znale�� pliku tymczasowego w celu przemianyZako�czNie mo�na po��czy� z NetbeansNie mo�na po��czy� z Netbeans #2Nie mog� pod��czy� do SNiFF+. Sprawd� �rodowisko (sniffemacs musi by� odnaleziony w $PATH).
Nie mog� stworzy� Nie mog� wykona� Nie mog� otworzy� NIL:
Nie mog� otworzy� pliku "%s"Nie mog� otworzy� do odczytu: "Nie mog� otworzy� dla wyj�cia skryptu: "Nie mo�na wczyta� katalogu: "%s"Nie mo�na zapisa� pliku undo w �adnym katalogu z 'undodir'Zmie� "%.*s" na:ZamknijZamknij kart�Kol %s z %s; Wiersz %ld z %ld; S�owo %ld z %ld; Bajt %ld z %ldKol %s z %s; Wiersz %ld z %ld; S�owo %ld z %ld; Znak %ld z %ld; Bajt %ld z %ldWiersz polece�Kompilacja: Kompilator: Skompresowano %d z %d w�z��w; pozostaje %d (%d%%)Kompresja drzewa s��w...Konwersja nie powiod�a si� dla wyrazu w %s wierszu %d: %sKonwersja w %s nie jest wspieranaKonwersja w %s nie jest wspierana: od %s do %sNieudana przemiana z 'charconvert'Nie zdo�a�em poprawi� wska�nik�w funkcji w DLL!Nie mog� za�adowa� vim32.dll!Nie mo�na otworzy� do zapisu tymczasowego pliku logowaniaNie mo�na otworzy� do zapisu tymczasowego pliku, pokazuj� na stderr... Znacznik cscope: %sBie��cy %sj�zyk: "%s"Definiowanie COMPOUNDFORBIDFLAG po PFX mo�e skutkowa� z�ym wynikiem w %s wiersz %dDefiniowanie COMPOUNDPERMITFLAG po PFX mo�e skutkowa� z�ym wynikiem w %s wiersz %dDiff z VimemR�ne flagi z�o�e� w kontynuowanym bloku afiksu w %s wiersz %d: %sKierunekKatalogiKatalog	*.nic
Czy naprawd� chcesz go zapisa�Zrobione!Podw�jny ; w li�cie zmiennychW d�Zignorowano powt�rzony wiersz /encoding= w %s wierszu %d: %sPowt�rzony wiersz /regions= zignorowano w %s wierszu %d: %sPowt�rzony afiks w %s wiersz %d: %sPowt�rzony znak w MAP w %s wierszu %dPowt�rzona nazwa pola: %sPowt�rzony wyraz w %s wierszu %d: %sE100: Brak innego bufora w trybie r�nicE101: Wi�cej ni� jeden bufor w trybie r�nicowania, nie wiem kt�rego u�y�E102: Nie mog� znale�� bufora "%s"E103: Bufor "%s" nie jest w trybie r�nicowaniaE104: Escape jest niedozwolone w dwugrafieE105: Zastosowano :loadkeymap w niewczytanym plikuE107: Brak nawias�w: %sE108: Nie istnieje zmienna: "%s"E109: Brak ':' po '?'E10: po \ powinno by� /, ? lub &E110: Brak ')'E111: Brak ']'E112: Brak nazwy opcji: %sE113: Nieznana opcja: %sE114: Brak cudzys�owu: %sE115: Brak cudzys�owu: %sE116: Zbyt wiele argument�w dla funkcji %sE117: Nieznana funkcja: %sE118: Zbyt wiele argument�w dla funkcji: %sE119: Za ma�o argument�w dla funkcji: %sE11: Niedozwolone w oknie wiersza polece�; <CR> wykonuje, CTRL-C opuszczaE120: U�ycie <SID> poza kontekstem skryptu: %sE121: Nieokre�lona zmienna: %sE122: Funkcja %s ju� istnieje; aby j� zamieni� u�yj !E123: Nieznana funkcja: %sE124: Brak '(': %sE125: Niedozwolony argument: %sE126: Brak :endfunctionE127: Nie mog� redefiniowa� funkcji %s: jest w u�yciuE128: Nazwa funkcji musi rozpoczyna� si� wielk� liter� lub zawiera� dwukropek: %sE129: Wymagana jest nazwa funkcjiE12: Komenda niedozwolona z exrc/vimrc w bie��cym szukaniu katalogu lub znacznikaE130: Nieznana funkcja: %sE131: Nie mog� skasowa� funkcji %s: jest w u�yciuE132: Zagnie�d�enie wywo�a� funkcji ponad 'maxfuncdepth'E133: :return poza funkcj�E134: Przeniesienie wierszy na siebie samychE135: Autokomendy *Filter* nie mog� zmienia� bie��cego buforaE136: viminfo: Zbyt wiele b��d�w; pomijam reszt� plikuE137: Plik viminfo jest niezapisywalny: %sE138: Nie mog� zapisa� pliku viminfo %s!E139: Plik jest za�adowany w innym buforzeE13: Plik istnieje (wymu� poprzez !)E140: Stosuj ! do zapisania cz�ciowo buforaE141: Brak nazwy pliku dla bufora %ldE142: Plik niezapisany: Zapis jest wy��czony opcj� 'write'E143: Autokomendy nieoczekiwanie skasowa�y nowy bufor %sE144: nienumeryczny argument dla :zE145: Komendy pow�oki s� niedozwolone w rvimE146: Wzorce regularne nie mog� by� rozgraniczane literamiE147: Nie mog� wykona� :global rekursywnieE148: Brak wzorca regularnego w :globalE149: Przykro mi, ale brak pomocy o %sE14: Niew�a�ciwy adresE150: Nie jest katalogiem: %sE152: Nie mog� otworzy� %s do zapisuE153: Nie mog� otworzy� %s do odczytuE154: Powt�rzony znacznik "%s" w pliku %s/%sE155: Nieznany znak: %sE156: Brak nazwy znakuE157: Niew�a�ciwe ID znaku: %ldE158: Niew�a�ciwa nazwa bufora: %sE159: Brak numeru znakuE15: Niew�a�ciwe wyra�enie: %sE160: Nieznana komenda znaku: %sE161: Nie znaleziono punktu kontrolnego: %sE162: Nie zapisano zmian w buforze "%s"E163: Tylko jeden plik w edycjiE164: Nie mo�na przej�� przed pierwszy plikE165: Nie mo�na przej�� za ostatni plikE166: Nie mog� otworzy� pod��czonego pliku do zapisuE167: u�yto :scriptencoding poza wczytywanym plikiemE168: u�yto :finish poza wczytywanym plikiemE169: Komenda zbyt rekursywnaE16: Niew�a�ciwy zakresE170: Brak :endforE170: Brak :endwhileE171: Brak :endifE172: Tylko pojedyncza nazwa pliku dozwolonaE173: jeszcze %ld plik�w do edycjiE173: 1 wi�cej plik do edycjiE174: Komenda ju� istnieje; aby j� przedefiniowa� stosuj !E175: Nie okre�lono atrybutuE176: Niew�a�ciwa ilo�� argument�wE177: Mno�nik nie mo�e by� podany dwukrotnieE178: Niew�a�ciwa domy�lna warto�� mno�nikaE179: -complete wymaga argumentuE17: "%s" jest katalogiemE180: Niew�a�ciwa warto�� dope�niania: %sE181: Niew�a�ciwy atrybut: %sE182: Niew�a�ciwa nazwa komendyE183: Komendy zdefiniowane przez u�ytkownika musz� rozpoczyna� si� du�� liter�E184: Nie ma takiej komendy u�ytkownika: %sE185: Nie mog� znale�� zestawu kolor�w '%s'E186: Nie ma poprzedniego kataloguE187: NieznanyE188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemuE189: "%s" istnieje (wymu� poprzez !)E18: Nieoczekiwane znaki w :letE190: Nie mog� otworzy� "%s" do zapisuE191: Argument musi by� liter� albo cudzys�owem w prz�d/ty�E192: Rekursywne zastosowanie :normal za g��bokieE193: :endfunction poza funkcj�E194: Brak nazwy zamiennego pliku do podstawienia pod '#'E195: Nie mog� otworzy� pliku viminfo do odczytuE196: Brak dwugraf�w w tej wersjiE197: Nie mog� ustawi� j�zyka na "%s"E198: cmd_pchar przekracza d�ugo�� poleceniaE199: Aktywny widok lub bufor skasowanyE19: Zak�adka ma niew�a�ciwy numer wierszaE200: Autokomendy *ReadPre zrobi�y plik nieodczytywalnymE201: Autokomendy *ReadPre nie mog� zmienia� bie��cego buforaE202: Nie mo�na otworzy� pliku utworzonego przez przemian�!E203: Autokomendy skasowa�y lub wy�adowa�y bufor przeznaczony do zapisuE204: Autokomenda zmieni�a liczb� wierszy w nieoczekiwany spos�bE205: Patchmode: nie mog� zapisa� oryginalnego plikuE206: patchmode: nie mog� stworzy� pustego oryginalnego plikuE207: Nie mog� skasowa� pliku zabezpieczeniaE208: B��d zapisywania do "%s"E209: B��d w trakcie zamykania "%s"E20: Zak�adka nienastawionaE210: B��d odczytu "%s"E211: Plik "%s" nie jest d�u�ej dost�pnyE212: Nie mog� otworzy� pliku do zapisuE213: Nie mog� przemieni� (u�yj ! by zapisa� bez przemiany)E214: Nie mog� znale�� pliku tymczasowego do zapisaniaE215: Niedopuszczalny znak po *: %sE216: Nie ma takiego wydarzenia: %sE216: Nie ma takiej grupy lub wydarzenia: %sE217: Nie mo�na wykonywa� autokomend dla wydarze� ALLE218: zbyt g��bokie zagnie�d�enie autokomendE219: Brak {.E21: Nie mog� wykona� zmian, 'modifiable' jest wy��czoneE220: Brak }.E222: Dodaj do bufora odczytuE223: rekursywne przyporz�dkowanieE224: istnieje ju� globalny skr�t dla %sE225: istnieje ju� globalne przyporz�dkowanie dla %sE226: istnieje ju� skr�t dla %sE227: istnieje ju� przyporz�dkowanie dla %sE228: makemap: Niedopuszczalny trybE229: Nie mog� odpali� GUIE22: Zbyt g��bokie zagnie�d�enie skrypt�wE230: Nie mog� czyta� z "%s"E231: Niew�a�ciwe 'guifontwide'E232: Nie mog� stworzy� BalloonEval z powiadomieniem i wywo�aniemE233: nie mog� otworzy� ekranuE234: Nieznany zestaw czcionek: %sE235: Nieznana czcionka: %sE236: Czcionka "%s" nie ma sta�ej szeroko�ci znak�wE237: Wyb�r drukarki nie powi�d� si�E238: B��d drukarki: %sE239: Niew�a�ciwy tekst znaku: %sE23: Brak pliku zamianyE240: Brak po��czenia z serwerem VimE241: Nie mog� wys�a� do %sE243: Argument nie jest wspomagany: "-%s"; U�ywaj wersji OLE.E244: Niedozwolona nazwa zestawu znak�w "%s" w nazwie czcionki "%s"E245: Niedozwolony znak '%c' w nazwie czcionki "%s"E246: Autokomenda FileChangedShell skasowa�a buforE247: brak zarejestrowanego serwera o nazwie "%s"E248: Wys�anie komendy do programu docelowego nie powiod�o si�E24: Nie ma takiego skr�tuE250: Brak czcionek dla nast�puj�cych zestaw�w znak�w w zestawie czcionek %s:E251: wcielenia instancji rejestru Vima jest �le sformowane.  Skasowano!E252: Nazwa zestawu czcionek: %sE253: Nazwa zestawu czcionek: %sE254: Nie mog� zarezerwowa� koloru %sE255: Nie mog�em wczyta� danych znaku!E256: B��D w automacie HangulE257: cstag: nie znaleziono znacznikaE258: Nie mog� wys�a� do klientaE259: brak dopasowa� dla zapytania cscope %s o %sE25: GUI nie mo�e by� u�yte: Nie w��czono podczas kompilacjiE261: nie ma po��czenia %s z cscopeE262: b��d odczytu po��czenia z cscope %ldE263: Przykro mi, ta komenda jest wy��czona, bo nie mo�na za�adowa� biblioteki PythonaE264: Python: B��d w uruchomieniu obiekt�w I/OE265: $_ musi by� reprezentacj� �a�cuchaE266: Przykro mi, ta komenda jest wy��czona, bo nie mo�na za�adowa� biblioteki Ruby.E267: nieoczekiwany returnE268: nieoczekiwany nextE269: nieoczekiwany breakE26: Hebrajski nie mo�e by� u�yty: Nie w��czono podczas kompilacji
E270: nieoczekiwane redoE271: ponowna pr�ba poza klauzul� ratunkuE272: nieobs�ugiwany wyj�tekE273: Nieznany status longjmp %dE274: Sniff: B��d podczas czytania. Roz��czenieE275: Nieznane zapytanie SNiFF+: %sE276: B��d w trakcie pod��czania do SNiFF+E277: Nie mog� czyta� odpowiedzi serweraE278: SNiFF+ niepod��czonyE279: Nie jest buforem SNiFF+E27: Farsi nie mo�e by� u�yty: Nie w��czono podczas kompilacji
E280: TCL FATALNY B��D: reflist zepsuta!? Prosz� z�o�y� raport o tym na vim-dev@vim.orgE282: Nie mog� czyta� z "%s"E283: �adna zak�adka nie pasuje do "%s"E284: Nie mog� nastawi� warto�ci ICE285: Nie mog�em stworzy� kontekstu wprowadze�E286: Nie mog�em otworzy� sposobu wprowadze�E287: OSTRZE�ENIE: Nie mog�em zlikwidowa� wywo�ania dla IME288: metoda wprowadze� nie wspomaga �adnego styluE289: metoda wprowadze� nie wspomaga mojego typu preeditE28: Brak takiej nazwy grupy pod�wietlania: %sE293: blok nie by� zablokowanyE294: B��d w trakcie czytania pliku wymianyE295: B��d odczytu pliku wymianyE296: B��d szukania w pliku wymianyE297: B��d zapisu w pliku wymianyE298: Nie otrzyma�em bloku nr 0?E298: Nie otrzyma�em bloku nr 1?E298: Nie otrzyma�em bloku nr 2?E299: wyliczenie Perla zabronione w piaskownicy bez modu�u SafeE29: Nie wprowadzono jeszcze �adnego tekstuE300: Plik wymiany ju� istnieje (atak symlink?)E301: Ojej, zgubi�em plik wymiany!!!E302: Nie mog�em zmieni� nazwy pliku wymianyE303: Nie mog� otworzy� pliku wymiany dla "%s"; odtworzenie niemo�liweE304: ml_upd_block(): Nie otrzyma�em bloku 0??E305: Nie znaleziono pliku wymiany dla %sE306: Nie mog� otworzy� %sE307: %s nie wygl�da na plik wymiany VimaE308: OSTRZE�ENIE: Oryginalny plik m�g� by� zmienionyE309: Nie mog� odczyta� bloku 1 z %sE30: Nie ma poprzedniego wiersza polece�E310: Niew�a�ciwe ID bloku 1 (mo�e %s nie jest plikiem .swp?)E311: Przerwanie odtwarzaniaE312: Wykryto b��dy podczas odtwarzania; od kt�rych wierszy zacz�� ???E313: Nie mog� zabezpieczy�, bo brak pliku wymianyE314: Nieudane zabezpieczenieE315: ml_get: niew�a�ciwy lnum: %ldE316: ml_get: nie znaleziono wiersza %ldE317: niepoprawne id bloku odniesieniaE317: niepoprawne id bloku odniesienia 2E317: niepoprawne id wska�nika bloku 3E317: niepoprawne id wska�nika bloku 4E318: Zaktualizowano zbyt wiele blok�w?E319: Przykro mi, ale ta komenda nie jest dost�pna w tej wersjiE31: Nie ma takiego przyporz�dkowaniaE320: Nie mog� znale�� wiersza %ldE321: Nie mo�na prze�adowa� "%s"E322: numer wiersza poza zakresem: %ld jest poza ko�cemE323: liczba wierszy niepoprawna w bloku %ldE324: Nie mo�na otworzy� pliku PostScript do wyj�ciaE325: UWAGAE326: Znaleziono zbyt wiele plik�w wymianyE327: Cz�� tropu punktu menu nie okre�la podmenuE328: Menu istnieje tylko w innym trybieE329: Nie ma menu "%s"E32: Brak nazwy plikuE330: Trop menu nie mo�e prowadzi� do podmenuE331: Nie wolno dodawa� punkt�w menu wprost do paska menuE332: Separator nie mo�e by� cz�ci� tropu menuE333: Trop menu musi prowadzi� do punktu menuE334: Nie znaleziono menu: %sE335: Menu nie jest zdefiniowane dla trybu %sE336: Trop menu musi prowadzi� do podmenuE337: Nie znaleziono menu - sprawd� nazwy menuE338: Przykro mi, nie ma przegl�darki plik�w w trybie konsoliE339: Zbyt d�ugi wzorzecE33: Brak poprzedniego podstawieniowego wyra�enia regularnegoE340: Wiersz staje si� zbyt d�ugiE341: Wewn�trzny b��d: lalloc(%ld, )E342: Brak pami�ci!  (rezerwacja %lu bajt�w)E343: Niew�a�ciwy trop: '**[numer]' musi by� na ko�cu tropu lub po nim musi by� '%s'.E344: Nie mog� znale�� katalogu "%s" w cdpathE345: Nie mog� znale�� pliku "%s" w tropieE346: Katalogu "%s" nie ma wi�cej w cdpathE347: Pliku "%s" nie ma wi�cej w tropieE348: Brak ci�gu pod kursoremE349: Brak identyfikatora pod kursoremE34: Brak poprzedniej komendyE350: Nie mo�na utworzy� zwini�cia przy bie��cej 'foldmethod'E351: Nie mo�na skasowa� zwini�cia przy bie��cej 'foldmethod'E352: Nie mog� skasowa� zwini�cia z bie��c� 'foldmethod'E353: Pusty rejestr %sE354: Niew�a�ciwa nazwa rejestru: '%s'E355: Nieznana opcja: %sE356: B��D get_varpE357: 'langmap': Brak pasuj�cego znaku dla %sE358: 'langmap': Dodatkowe znaki po �redniku: %sE359: Ustawianie trybu ekranu niewspomaganeE35: Brak poprzedniego wyra�enia regularnegoE360: Nie mog� wykona� pow�oki z opcj� -fE363: Wzorzec u�ywa wi�cej pami�ci ni� 'maxmempattern'E364: Wywo�anie z biblioteki nie powiod�o si� dla "%s()"E365: Drukowanie pliku PostScript nie powiod�o si�E367: Nie ma takiej grupy: "%s"E369: Niew�a�ciwy element w %s%%[]E36: Brak miejscaE370: Nie mog�em za�adowa� biblioteki %sE371: Nie znaleziono komendyE372: Zbyt wiele %%%c w ci�gu formatuj�cymE373: Nieoczekiwane %%%c w ci�gu formatuj�cymE374: Brak ] w ci�gu formatuj�cymE375: Niewspomagane %%%c w ci�gu formatuj�cymE376: Niepoprawne %%%c w prefiksie ci�gu formatuj�cegoE377: Niepoprawne %%%c w ci�gu formatuj�cymE378: 'errorformat' nie zawiera wzorcaE379: Pusta nazwa katalogu lub jej brakE37: Nie zapisano od ostatniej zmiany (wymu� przez !)E380: Na dole stosu quickfixE381: Na g�rze stosu quickfixE382: Nie mog� zapisa�, opcja 'buftype' jest ustawionaE383: Niew�a�ciwy ci�g do szukania: %sE384: szukanie dobi�o G�RY bez znalezienia: %sE385: szukanie dobi�o KO�CA bez znalezienia : %sE386: Oczekuj� '?' lub '/' po ';'E387: Wzorzec pasuje w bie��cym wierszuE388: Nie znalaz�em definicjiE389: Nie znalaz�em wzorcaE38: Zerowy argumentE390: Niedozwolony argument: %sE391: Nie ma takiego klastra sk�adni: %sE392: Nie ma takiego klastra sk�adni: %sE393: group[t]here niedozwolone w tym miejscuE394: Nie znalaz�em element�w regionu dla %sE395: argument contains niedozwolony w tym miejscuE397: Wymagana nazwa plikuE398: Brak '=': %sE399: Za ma�o argument�w: syntax region %sE39: Oczekuj� liczbyE400: Brak specyfikacji klastraE401: Brak ogranicznika wzorca: %sE402: �mieci po wzorcu: %sE403: syntax sync: wielokrotnie podane wzorce kontynuacji wierszaE404: Niedozwolone argumenty: %sE405: Brak znaku r�wno�ci: %sE406: Pusty argument: %sE407: %s jest niedozwolone w tym miejscuE408: %s musi by� pierwsze w li�cie containsE409: Nieznana nazwa grupy: %sE40: Nie mog� otworzy� pliku b��d�w %sE410: Niew�a�ciwa podkomenda :syntax : %sE411: nie znaleziono grupy pod�wietlania: %sE412: Zbyt ma�o argument�w: ":highlight link %s"E413: Zbyt wiele argument�w: ":highlight link %s"E414: grupa ma ustawienia; zignorowane pod��czenie pod�wietlaniaE415: nieoczekiwany znak r�wno�ci: %sE416: brak znaku r�wno�ci: %sE417: brak argumentu: %sE418: Niedozwolona warto��: %sE419: Kolor FG nieznanyE41: Pami�� wyczerpana!E420: Kolor BG nieznanyE421: Nazwa lub liczba koloru nierozpoznana: %sE422: za d�ugi kod terminala: %sE423: Niedozwolony argument: %sE424: Zbyt wiele r�nych atrybut�w podkre�lania w u�yciuE425: Nie mo�na przej�� przed pierwszy pasuj�cy znacznikE426: nie znaleziono znacznika: %sE427: Pasuje tylko jeden znacznikE428: Nie mo�na przej�� za ostatni pasuj�cy znacznikE429: Plik "%s" nie istniejeE42: Brak B��d�wE430: Trop szukania pliku znacznik�w obci�ty dla %s
E431: B��d formatu w pliku znacznik�w "%s"E432: Plik znacznik�w nieuporz�dkowany: %sE433: Brak pliku znacznik�wE434: Nie mog� znale�� wzorca znacznikaE435: Nie znalaz�em znacznika - tylko zgaduj�!E436: Brak opisu "%s" w termcapE437: wymagana zdolno�� "cm" terminalaE438: u_undo: niew�a�ciwe numery wierszyE439: uszkodzona lista cofaniaE43: Popsuty ci�g wzorcaE440: brak wiersza cofaniaE441: Nie ma okna podgl�duE442: Nie mog� rozdzieli� lewo-g�rnego i prawo-dolnego jednocze�nieE443: Nie mog� przekr�ci�, gdy inne okno jest rozdzieloneE444: Nie mog� zamkn�� ostatniego oknaE445: Inne okno zawiera zmianyE446: Brak nazwy pliku pod kursoremE447: Nie mog� znale�� pliku "%s" w tropieE448: Nie mo�na za�adowa� funkcji biblioteki %sE449: Odebra�em niew�a�ciwe wyra�enieE44: Zepsuty program wyra�e� regularnychE455: Nie mo�na zapisa� do wyj�ciowego pliku PostScriptuE456: Nie mo�na znale�� pliku zasob�w PostScriptu "%s.ps"E456: Nie mo�na znale�� pliku zasob�w PostScriptu "cidfont.ps"E456: Nie mo�na znale�� pliku zasob�w PostScriptu "prolog.ps"E456: Nie mog� otworzy� pliku "%s"E457: Nie mo�na odczyta� pliku zasob�w PostScriptu "%s"E459: Nie mo�na przej�� do poprzedniego kataloguE45: opcja 'readonly' jest ustawiona (wymu� poprzez !)E460: Rozdzia� zasob�w zostanie utracony (wymu� przez !)E461: Niedozwolona nazwa zmiennej: %sE462: Nie mo�na przygotowa� prze�adowania "%s"E463: Region jest chroniony, nie mog� zmieni�E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez u�ytkownikaE465: :winsize wymaga dw�ch argument�w numerycznychE466: :winpos wymaga dw�ch argument�w numerycznychE467: Dope�nianie u�ytkownika wymaga funkcji jako argumentuE468: Argument depe�niania dozwolony wy��cznie dla dope�niania u�ytkownikaE469: nieprawid�owa flaga cscopequickfix %c dla %cE46: Nie mog� zmieni� zmiennej tylko do odczytu "%s"E470: Przerwanie komendyE471: wymagany argumentE472: Komenda nie powiod�a si�E473: B��d wewn�trznyE474: Niew�a�ciwy argumentE475: Niew�a�ciwy argument: %sE476: Niew�a�ciwa komendaE477: Niedozwolone !E478: Nie panikuj!E479: Brak dopasowa�E47: B��d w trakcie czytania pliku b��d�wE480: Brak dopasowa�: %sE481: Zakres niedozwolonyE482: Nie mog� stworzy� pliku %sE483: Nie mog� pobra� nazwy pliku tymczasowegoE484: Nie mog� otworzy� pliku %sE485: Nie mog� odczyta� pliku %sE486: Nie znaleziono wzorca: %sE487: Argument musi by� dodatniE488: Nadst�pne znaczkiE48: Niedozwolone w piaskownicyE490: Nie znaleziono zwini�ciaE492: Nie jest komend� edytoraE493: Dano wsteczny zakresE494: Stosuj w lub w>>E495: brak nazwy pliku autokomend do podstawienia pod "<afile>"E496: brak numeru bufora autokomend do podstawienia pod  "<abuf>"E497: brak nazwy dopasowania autokomend pod "<amatch>"E498: brak nazwy pliku :source do postawienia pod "<sfile>"E499: Pusta nazwa pliku dla '%' lub '#', dzia�a tylko z ":p:h"E49: Niew�a�ciwa wielko�� przewini�ciaE500: Wynikiem jest pusty ci�gE501: Na ko�cu plikuE505: "%s" jest tylko do odczytu (dodaj ! aby wymusi�)E505: %s jest tylko do odczytu (dodaj ! aby wymusi�)E506: Nie mog� zapisa� do pliku zabezpieczenia (wymu� przez !)E507: B��d podczas zamykania pliku zabezpieczenia (wymu� przez !)E508: Nie mog� odczyta� pliku w celu zabezpieczenia (wymu� przez !)E509: Nie mog� stworzy� pliku zabezpieczenia (wymu� przez !)E50: Zbyt wiele \z(E510: Nie mog� zrobi� pliku zabezpieczenia (wymu� przez !)E511: netbeans ju� pod��czoneE512: Zamkni�cie si� nie powiod�oE513: B��d zapisu, przemiana si� nie powiod�a (opr�nij 'fenc' aby wymusi�)E513: B��d zapisu, przemiana si� nie powiod�a w wierszu %ld (opr�nij 'fenc' by wymusi�)E514: b��d w zapisie (mo�e system plik�w jest przepe�niony?)E515: Nie wy�adowano �adnego buforaE516: Nie skasowano �adnego buforaE517: Nie wyrzucono �adnego buforaE518: Nieznana opcjaE519: Opcja nie jest wspomaganaE51: Zbyt wiele %s(E520: Niedozwolone w modelineE521: Po = wymagany jest numerE521: Wymagana Liczba: &%s = '%s'E522: Nie znaleziono w termcapE523: Niedozwolone w tym miejscuE524: Brak dwukropkaE525: Ci�g o zerowej d�ugo�ciE526: Brak numeru po <%s>E527: Brak przecinkaE528: Musi okre�la� warto�� 'E529: Nie mog� ustawi� 'term' na pusty ci�gE52: Niesparowany \z(E530: Nie mog� zmieni� term w GUIE531: U�yj ":gui" do odpalenia GUIE533: nie mog� wybra� szerokiej czcionkiE534: Niedozwolona szeroka czcionkaE535: Niedozwolony znak po <%c>E536: wymagany przecinekE537: 'commentstring' musi by� pusty lub zawiera� %sE538: Brak wspomagania myszkiE539: Niedozwolony znak <%s>E53: Niesparowany %s%%(E540: Niedomkni�ty ci�g wyra�e�E541: zbyt wiele element�wE542: niezbalansowane grupyE543: To nie jest wa�na strona kodowaE544: Nie znaleziono pliku rozk�adu klawiszyE545: Brak dwukropkaE546: Niedozwolony trybE547: Niedozwolony obrys myszkiE548: oczekiwa�em na cyfr�E549: Niedozwolony procentE54: Niesparowany %s(E550: Brak dwukropkaE551: Niedozwolona cz��E552: oczekiwa�em na cyfr�E553: Nie ma wi�cej element�wE554: B��d sk�adni w %s{...}E555: na dole stosu znacznik�wE556: na g�rze stosu znacznik�wE557: Nie mog� otworzy� pliku termcapE558: Nie ma opisu takiego terminala w terminfoE559: Nie ma opisu takiego terminala w termcapE55: Niesparowany %s)E560: Zastosowanie: cs[cope] %sE561: nieznany typ szukania cscopeE562: Zastosowanie: cstag <ident>E563: b��d statE563: stat(%s) b��d: %dE564: %s nie jest katalogiem lub poprawn� baz� danych cscopeE566: Nie mog�em stworzy� potoku do cscopeE567: brak po��czenia z cscopeE568: nie dodano duplikatu bazy danych cscopeE570: b��d krytyczny w cs_manage_matchesE571: Przykro mi, ta komenda jest wy��czona, bo nie mo�na za�adowa� biblioteki Tcl.E572: kod wyj�cia %dE573: U�yto niew�a�ciwego id serwera: %sE574: Nieznany typ rejestru %dE579: zbyt g��bokie zagnie�d�enie :ifE580: :endif bez :ifE581: :else bez :ifE582: :elseif bez :ifE583: wielokrotne :elseE584: :elseif po :elseE585: zbyt g��bokie zagnie�d�enie :while/:forE586: :continue bez :while lub :forE587: :break bez :while lub :forE588: :endfor bez :forE588: :endwhile bez :whileE589: 'backupext' i 'patchmode' s� to�sameE590: okno podgl�du ju� istniejeE591: 'winheight' nie mo�e by� mniejsze ni� 'winminheight'E592: 'winwidth' nie mo�e by� mniejsze ni� 'winminwidth'E593: Potrzebuj� przynajmniej %d wierszyE594: Potrzebuj� przynajmniej %d kolumnE595: zawiera niewy�wietlalny lub szeroki znakE596: Niedozwolona czcionka/kiE597: nie mog� wybra� zestawu czcionekE598: Niedozwolony zestaw czcionekE599: Nieprawid�owa warto�� 'imactivatekey'E59: niedozwolony znak po %s@E600: Brak :endtryE601: zbyt g��bokie zagnie�d�enie :tryE602: :endtry bez :tryE603: :catch bez :tryE604: :catch za :finallyE605: Nie znaleziono wyj�tku: %sE606: :finally bez :tryE607: wielokrotne :finallyE608: Nie mo�na ':throw' wyj�tk�w z prefiksem 'Vim'E609: B��d cscope: %sE60: Zbyt wiele z�o�onych %s{...}E612: Zbyt wiele nazw znak�wE613: Nieznana czcionka drukarki: %sE614: vim_SelFile: nie mog� powr�ci� do bie��cego kataloguE615: vim_SelFile: nie mog� otrzyma� bie��cego kataloguE616: vim_SelFile: nie mog� otrzyma� czcionki %sE617: Nie mog� zmieni� w GTK+2 GUIE618: plik "%s" nie jest plikiem zasob�w PostScriptuE619: plik "%s" nie jest wspieranym plikiem zasob�w PostScriptuE61: Zagnie�d�one %s*E620: Nie mo�na przekonwertowa� by drukowa� kodowanie "%s"E621: "%s" nieprawid�owa wersja pliku zasob�wE622: Nie mog�em utworzy� rozwidlenia dla cscopeE623: Nie mog�em stworzy� procesu cscopeE624: Nie mog� otworzy� pliku "%s"E625: nie mog� otworzy� bazy danych cscope: %sE626: nie mog� uzyska� informacji z bazy danych cscopeE62: Zagnie�d�one %s%cE63: Niedozwolone u�ycie \_E64: %s%c po niczymE655: Za du�o dowi�za� symbolicznych (p�tla?)E658: Bufor %ld utraci� po��czenie z NetBeansE659: Nie mo�na wywo�a� Pythona rekursywnieE65: Niew�a�ciwe odwo�anie wsteczneE661: Przykro mi, brak '%s' pomocy dla %sE662: Na pocz�tku listy zmianE663: Na ko�cu listy zmianE664: lista zmian (changelist) jest pustaE665: Nie mo�na uruchomi� GUI, brak prawid�owej czcionkiE666: nie wspierany kompilator: %sE667: Fsync nie powi�d� si�E668: B��dny tryb dost�pu pliku info po��czenia NetBeans: "%s"E669: Niedrukowalny znak w nazwie grupyE66: \z( jest niedozwolone w tym miejscuE670: Mieszanka kodowa� w pliku pomocy w ramach j�zyka: %sE671: Nie mog� znale�� tytu�u okna "%s"E672: Nie mo�na otworzy� okna wewn�trz aplikacji MDIE673: Niekompatybilne kodowanie wielobajtowe i zestaw znak�w.E674: printmbcharset nie mo�e by� pusty przy kodowaniu wielobajtowym.E675: Nie okre�lono domy�lnej czcionki dla drukowania wielobajtowego.E676: Brak pasuj�cych autokomend dla bufora acwriteE677: B��d zapisywania pliku tymczasowegoE678: Niedozwolony znak po %s%%[dxouU]E679: rekursywna p�tla wczytuj�ca syncolor.vimE67: \z1 i podobne s� niedozwolone w tym miejscuE680: <buffer=%d>: niew�a�ciwy numer buforaE681: Bufor nie jest za�adowanyE682: Niew�a�ciwy wzorzec wyszukiwania lub delimiterE683: Brak nazwy pliku lub niew�a�ciwa �cie�kaE684: Indeks listy poza zakresem: %ldE685: B��d wewn�trzny: %sE686: Argument %s musi by� List�E687: Mniej cel�w ni� element�w ListyE688: Wi�cej cel�w ni� element�w ListyE689: Indeks mo�e istnie� tylko dla Listy lub S�ownikaE68: niedopuszczalny znak po \zE690: Brak "in" po :forE691: List� mog� por�wna� tylko z List�E692: Nieprawid�owa operacja dla ListyE693: Funcref mog� por�wna� tylko z FuncrefE694: Nieprawid�owa operacja dla FuncrefE695: Nie mo�na zindeksowa� FuncrefE696: Brakuj�cy przecinek w Li�cie: '%sE697: Brak zako�czenia Listy ']': %sE698: Zmienna zagnie�d�ona zbyt g��boko by zrobi� kopi�E699: Za du�o argument�wE69: Brak ] po %s%%[E700: Nieznana funkcja: %sE701: Nieprawid�owy typ dla len()E702: Funkcja por�wnywania w sort nie powiod�a si�E703: U�ycie Funcref jako LiczbyE704: Nazwa Funcref musi si� zaczyna� wielk� liter�: %sE705: Nazwa zmiennej jest w konflikcie z istniej�c� funkcj�: %sE706: Nieprawid�owy typ zmiennej dla: %sE707: Nazwa funkcji jest w konflikcie ze zmienn�: %sE708: [:] musi by� ostatnieE709: [:] wymaga warto�ci listyE70: Pusty %s%%[]E710: Lista ma wi�cej element�w ni� celE711: Lista nie ma wystarczaj�cej ilo�ci element�wE712: Argument %s musi by� List� lub S�ownikiemE713: Nie mo�na u�y� pustego klucza dla S�ownikaE714: wymagana ListaE715: wymagany S�ownikE716: Klucz nie istnieje w S�owniku: %sE717: istnieje ju� taki element S�ownikaE718: wymagana FuncrefE719: Nie mo�na u�y� [:] przy S�ownikuE71: Niedozwolony znak po %s%%E720: Brak dwukropka w S�owniku: %sE721: Powt�rzony klucz w S�owniku: "%s"E722: Brakuj�cy przecinek w S�owniku: %sE723: Brak ko�ca w S�owniku '}': %sE724: Zmienna zagnie�d�ona zbyt g��boko by pokaza�E725: Wywo�anie funkcji "dict" bez S�ownika: %sE726: Skok to zeroE727: Pocz�tek po ko�cuE728: U�ycie S�ownika jako LiczbyE729: U�ycie Funcref jako �a�cuchaE72: B��d podczas zamykania pliku wymianyE730: U�ycie Listy jako �a�cuchaE731: U�ycie S�ownika jako �a�cuchaE732: U�ycie :endfor z :whileE733: U�ycie :endwhile z :forE734: Z�y typ zmiennej dla %s=E735: S�ownik mog� por�wna� tylko ze S�ownikiemE736: Nieprawid�owa operacja dla S�ownikaE737: Klucz ju� istnieje: %sE738: Nie mog� wypisa� zmiennych dla %sE739: Nie mog� utworzy� katalogu: %sE73: stos znacznik�w jest pustyE740: Zbyt wiele argument�w dla funkcji %sE741: Warto�� jest zablokowana: %sE742: Nie mog� zmieni� warto�ci %sE743: zmienna zagnie�d�ona zbyt g��boko dla (un)lockE744: NetBeans nie zezwala na zmiany w plikach tylko do odczytuE745: U�ycie Listy jako LiczbyE746: Nazwa funkcji nie pasuje do nazwy skryptu: %sE747: Nie mog� zmieni� katalogu, bufor zosta� zmodyfikowany (dodaj ! aby wymusi�)E748: Brak poprzednio u�ytego rejestruE749: pusty buforE74: Komenda jest zbyt skomplikowanaE750: Pierwsze u�ycie ":profile start {fname}"E751: Nazwa pliku wynikowego nie mo�e by� nazw� regionuE752: Brak poprzednich podmian sprawdzania pisowniE753: Nie znaleziono: %sE754: Wspieram tylko 8 region�wE755: Nieprawid�owy region w %sE756: Sprawdzanie pisowni nie jest w��czoneE757: To nie wygl�da na plik sprawdzania pisowniE758: Obci�ty plik sprawdzania pisowniE759: Nieprawid�owy format pliku sprawdzania pisowniE75: Zbyt d�uga nazwaE760: Brak ilo�ci s��w w %sE761: B��d formatu w pliku afiks�w FOL, LOW lub UPPE762: Znak w FOL, LOW lub UPP jest poza zasi�giemE763: Znaki wyraz�w r�ni� si� mi�dzy plikami sprawdzania pisowniE764: Nie ustawiono opcji '%s'E765: 'spellfile' nie posiada wpis�w %ldE766: Za ma�o argument�w dla printf()E767: Za du�o argument�w dla printf()E768: Plik wymiany istnieje: %s (wymu� poprzez :silent!)E769: Brak ] po %s[E76: Zbyt wiele [E770: Niewspierana sekcja w pliku sprawdzania pisowniE771: Stary plik sprawdzania pisowni, wymagane uaktualnienieE772: Plik sprawdzania pisowni dla nowszej wersji VimaE773: P�tla dowi�za� dla "%s"E774: 'operatorfunc' jest pustaE775: Funkcjonalno�� eval nie jest dost�pnaE776: Brak listy lokacjiE777: Oczekiwa�em na �a�cuch lub list�E778: Ten plik nie wygl�da na plik .sug: %sE779: Stary plik .sug, konieczne jest uaktualnienie: %sE77: Zbyt wiele nazw plik�wE780: Plik .sug dla nowszej wersji Vima: %sE781: Plik .sug nie pasuje do pliku .spl: %sE782: B��d w czasie odczytu pliku .sug: %sE783: Podwojony znak we wpisie MAPE784: Nie mog� zamkn�� ostatniej kartyE785: complete() mo�e by� u�yte tylko w trybie WprowadzaniaE786: Zakres niedozwolonyE787: Nieoczekiwana zmiana buforaE788: Nie mo�na teraz edytowa� innego buforaE789: Brak ']': %sE78: Nieznana zak�adkaE790: undojoin nie jest dozwolone po undoE791: Pusty wpis keymapE792: Pusta nazwa menuE793: �aden inny bufor w trybie diff nie jest modyfikowalnyE794: Nie mog� ustawi� zmiennej w piaskownicy: "%s"E795: Nie mog� usun�� zmiennej %sE79: Nie mog� rozwin�� znak�w wieloznacznychE800: Arabski nie mo�e by� u�yty: Nie w��czono podczas kompilacji
E804: Nie mog� u�y� '%' w ZmiennoprzecinkowejE805: U�ycie Zmiennoprzecinkowej jako LiczbyE806: U�ycie Zmiennoprzecinkowej jako �a�cuchaE807: Spodziewany argument Zmiennoprzecinkowy w printf()E808: Wymagana Liczba lub ZmiennoprzecinkowaE809: #< nie jest dost�pne bez w�a�ciwo�ci +evalE80: B��d w trakcie zapisuE810: Nie mog� otworzy� lub zapisa� plik�w tymczasowychE811: Nie mo�na teraz zmienia� informacji o buforzeE812: Autokomendy zmieni�y bufor lub jego nazw�E813: Nie mo�na zamkn�� okna autocmdE814: Nie mo�na zamkn�� okna, zosta�oby tylko okno autocmdE815: Przykro mi, ta komenda jest wy��czona, biblioteka MzScheme nie mo�e by� za�adowana.E816: Nie mog� odczyta� wyj�cia pliku �atyE817: Blowfish u�ywa b��dnej kolejno�ci bajt�wE818: test sha256 nie powi�d� si�E819: test Blowfisha nie powi�d� si�E81: U�ycie <SID> poza kontekstem skryptuE820: sizeof(uint32_t) != 4E821: Plik zaszyfrowano w nieznany spos�bE822: Nie mog� otworzy� pliku undo do odczytu: %sE823: To nie jest plik undo: %sE824: Niekompatybilny plik undo: %sE825: Uszkodzony plik undo (%s): %sE826: Nie powiod�o si� odszyfrowywanie pliku undo: %sE827: Plik undo jest zaszyfrowany: %sE828: Nie mog� otworzy� do zapisu pliku undo: %sE829: B��d zapisu w pliku undo: %sE82: Nie mog� zarezerwowa� bufora; zako�czenie...E830: Nie znaleziono numeru cofni�cia %ldE831: bf_key_init() wywo�any z pustym has�emE832: Nie zaszyfrowany plik ma zaszyfrowany plik undo: %sE833: %s jest zaszyfrowany a ta wersja Vima nie wspiera szyfrowaniaE834: Konflikty warto�ci 'listchars'E834: Niespodziewana zmiana ilo�ci liniiE835: Konflikty warto�ci 'fillchars'E836: Python: nie mo�na u�ywa� :py i :py3 w czasie jednej sesjiE837: Python: nie mo�na u�ywa� :py i :py3 w czasie jednej sesjiE838: netbeans nie s� obs�ugiwane przez to GUIE839: Funkcja uzupe�niania zmieni�a oknoE83: Nie mog� zarezerwowa� bufora; u�ywam innego...E840: Funkcja uzupe�nania usun�a tekstE841: Nazwa zastrze�ona, nie mo�na jej u�y� w komendzie u�ytkownikaE842: brak numeru linii by u�y� z "<slnum>"E843: B��d w czasie uaktualniania szyfrowania pliku wymianyE844: Niew�a�ciwa warto�� ccharE845: Nie wystarczaj�ca ilo�� pami�ci, lista s��w b�dzie niekompletnaE846: Kod klucza nie jest ustawionyE847: Za du�o w��czonych sk�adniE848: Za du�o klastr�w sk�adniE849: Za du�o grup pod�wietlania i sk�adniE84: Nie znaleziono zmienionych bufor�wE850: Niew�a�ciwa nazwa rejestruE851: Nie mog�em stworzy� nowego procesu dla GUIE852: Proces potomny nie m�g� uruchomi� GUIE853: Powt�rzona nazwa argumentu: %sE854: �cie�ka za d�uga by uzupe�ni�E855: Autokomendy spowodowa�y porzucenie komendyE858: eval nie zwr�ci�o odpowiedniego obiektu pythonaE859: Nie powiod�a si� konwersja obiektu pythona do warto�ci VimaE85: Nie ma wylistowanych bufor�wE862: Nie mo�na tutaj u�y� g:E:864: \%#= mo�e by� tylko przed 0, 1 lub 2. Zostanie u�yty silnik automatycznyE865: (NFA) przedwczesny koniec wyra�enia regularnegoE866: (wyra�enie regularne NFA) Niepoprawnie umieszczone %cE867: (NFA) Nieznany operator '\%%%c'E867: (NFA) Nieznany operator '\z%c'E868: B��d przy budowwaniu NFA z klas� ekwiwalencjiE869: (NFA) Nieznany operator '\@%c'E86: Bufor "%ld" nie istniejeE870: (wyra�enie regularne NFA) B��d przy odczytywaniu limit�w powt�rze�E871: (wyra�enie regularne NFA) wielokrotne nie mo�e by� po wielokrotnym!E872: (wyra�enie regularne NFA) Zbyt du�o '('E873: (wyra�enie regularne NFA) b��d poprawnego zako�czeniaE874: (NFA) Nie mo�na zdj�� elementu ze stosu!E875: (wyra�enie regularne NFA) (w trakcie konwersji postfix do NFA), za wiele stan�w na stosieE876: (wyra�enie regularne NFA) Nie ma miejsca na ca�e NFA E878: (NFA) Nie mo�na przydzieli� pami�ci do przej�cia przez ga��zie!E879: (wyra�enie regularne NFA) Za du�o \z(E87: Nie mog� przej�� poza ostatni buforE88: Nie mog� przej�� przed pierwszy buforE89: Nie zapisano zmian w buforze %ld (wymu� przez !)E90: Nie mog� wy�adowa� ostatniego buforaE91: opcja 'shell' jest pustaE92: Nie znaleziono bufora %ldE93: Wielokrotne dopasowania dla %sE94: �aden bufor nie pasuje do %sE95: Bufor o tej nazwie ju� istniejeE96: Nie mog� zr�nicowa� wi�cej ni� %ld bufor�wE97: Nie mog� stworzy� r�nicE98: Nie mog� wczyta� wyj�cia r�nicyE99: Bie��cy bufor nie jest w trybie r�nicB��D: Edytuj PlikEdytuj plik w nowym oknieEdytuj w &VimieEdytuj w &wielu VimachEdytuj z istniej�cym Vimem - Edytuj w pojedynczym &VimieEdytuj wybrane pliki w VimieKodowanie:Koniec funkcjiKoniec wczytywanego plikuWprowad� klucz do odkodowania: Wprowad� numer pliku wymiany, kt�rego u�y� (0 by wyj��): Wprowad� ponownie ten sam klucz: Wchodz� w tryb odpluskwiania. Wprowad� "cont" aby kontynuowa�.Wchodz� w tryb Ex. Wprowad� "visual" aby przej�� do trybu Normal.B��dB��d i przerwanieB��d tworzenia procesu: Sprawd� czy gvim jest w twojej �cie�ce!Wykryto b��d podczas przetwarzania %s:Plik b��duOczekiwane zu�ycie pami�ci: %d bajt�wWyj�tekWyj�tek przechwycony: %sWyj�tek odrzucony: %sWyj�tek zako�czony: %sWyj�tek: %sWykonuj� %sOczekiwano ilo�ci MAP w %s wierszu %dOczekiwano ilo�ci REP(SAL) w %s wierszu %dOczekiwano Y lub N w %s wierszu %d: %sWyra�enieZewn�trzne poddopasowania:
FLAG po u�yciu flag w %s wiersz %d: %sNie mog� ustawi� haka �cie�ki: sys.path_hooks nie jest list�
Powiniene� teraz wykona� nast�puj�ce czynno�ci:
- doda� vim.path_hook do sys.path_hooks
- doda� vim.VIM_SPECIAL_PATH do sys.path
Nie mog� ustawi� �cie�ki: sys.path nie jest list�
Powinno si� teraz doda� vim.VIM_SPECIAL_PATH do sys.pathPlik "%s" nie istniejeZawarto�� pliku si� zmieni�a, nie mog� u�y� pliku undoPrawa pliku "%s" s� tylko do odczytu.
Mimo to by� mo�e uda si� zmieni� ten plik.
Chcesz spr�bowa�?Plik zabezpieczonoPlikiFiltrSzukanie i Zamiana (u�yj '\\' do szukania '\')Znajd� &nast�pneZnajd� nast�pneZnajd� ci�g (u�yj '\\' do szukania '\')Znajd� symbolZnajd�:Sko�czono wczytywanie pliku undo %sPierwszy powt�rzony wyraz w %s wiersz %d: %sFlaga nie jest liczb� w %s wiersz %d: %sCzcionka '%s' nie posiada znak�w jednolitej szeroko�ciSzeroko�� font%ld nie jest podw�jn� szeroko�ci� font0Szeroko�� font0: %ldFont0: %sSzeroko�� font1: %ldFont1: %sCzcionka:�miecie po argumencie opcjiUtw�rz dokumentacj� dlaWitaj u�ytkowniku Vima!Pom� biednym dzieciom w Ugandzie!Dobi�em do ko�ca akapituB��D I/OZignorowa�em %d s��w ze znakami nie ASCII w %sZignorowa�em %d s��w ze znakami nie ASCIIIgnoruj� d�ugie wiersze w pliku znacznik�wNiedopuszczalna nazwa plikuNieprawid�owa flaga w %s wiersz %d: %sNiedozwolona nazwa rejestruNiedopuszczalny pocz�tkowy znakWiersz wprowadze�Input _MethodsPrzerwaniePrzerwanie: PrzerwaneNiew�a�ciwy argument dlaNieprawid�owy opis czcionkiNieprawid�owy numer regionu w %s wierszu %d: %sNieprawid�owa warto�� FLAG w %s wierz %d: %sKlucze nie pasuj� do siebie!Zabij po��czenieKonsolidacja: Nie mo�na wczyta� biblioteki Lua.Dopasuj wielko�� literDopasuj tylko ca�e wyrazyWiadomo��Opiekun komunikat�w: Miko�aj Machowski <mikmach@wp.pl>Brak '>'Brak wiersza FOL/LOW/UPP w %sBrak wiersza SOFO%s wiersz w %sZmieniony przez Nazwa:Potrzebuj� %s w wersji %ld
Potrzebuj� Amigados w wersji 2.04 lub p�niejsz�
Potrzebuj� klucza szyfrowania dla "%s"NetBeans nie pozwala na zapis niezmodyfikowanych bufor�wNowa kartaBrak element�w sk�adni okre�lonych dla tego buforaNie znaleziono skr�tuNie okre�lono �adnych punkt�w kontrolnychBrak displayBrak terminala: Wys�anie wyra�enia nie powiod�o si�.
Brak w��czanych plik�wNie znaleziono przyporz�dkowaniaBrak zak�adekBrak dopasowania przy kursorze, szukam dalejBrak pasuj�cych autokomendBrak starych plik�wBrak pliku wymianyBrak tekstu do drukowaniaCofni�cie niemo�liwe; mimo to kontynuuj�Nie znaleziono komend zdefiniowanych przez u�ytkownikaNie u�ywanyNie wczytuj� pliku undo, inny w�a�ciciel: %sNie ma zmian do cofni�ciaLiczba s��w po kompresji d�wi�kowej: %ldOKDialog otwierania plikuOtw�rz kart�...Otw�rz kart�...Otwarcie ekranu X nie powiod�o si�Pr�ba otwarcia ekranu X trwa�a zbyt d�ugoOtwieranie ekranu X trwa�o %ld msecOryginalny plik "%s"Nadpisa� istniej�cy plik "%s"?Strona %dCz�ciowy zapis niemo�liwy dla bufor�w NetBeansPlik �ataZa d�uga �cie�ka!Trop:Wzorzec znaleziono w ka�dym wierszu: %sNie znaleziono wzorcaNie znaleziono wzorca: %sWykonuj� kompresj� d�wi�kow�...Naci�nij ENTER lub wprowad� komend� aby kontynuowa�Zadanie drukowanie przes�ane.Wydrukowano: %sWydrukowano '%s'Drukowanie odwo�aneDrukuj� stron� %d (%d%%)Zapytane o wzorzecPytanieCzytam plik afiks�w %s ...Odczytuj� plik sprawdzania pisowni...Czytam plik s�ownika %s ...Wczytywanie ze stdin...Odczytuj� plik sprawdzania pisowni "%s"Wczytuj� plik undo: %sWczytuj� plik viminfo "%s"%s%s%sOdczytuj� plik wyraz�w %s ...Odzyskiwanie zako�czone. Zawarto�� bufora jest r�wna zawarto�ci pliku.Odtwarzanie zako�czono. Powiniene� sprawdzi� czy wszystko jest w porz�dku.Pon�w wszelkie po��czeniaZamie�Zamie� &wszystkoZamie� wszystkieZamie� na:PobierzPobieraj z wszystkich projekt�wPobieraj z plikuPobieraj z projektuDzia�am w trybie zgodno�ci z ViUruchomiony bez tryb�w, wpisany tekst jest wprowadzanySNiFF+ jest obecnie Zapisz jakoDialog zapisywania plikuZapisz przekierowanieZapisz sesj�Zapisz ustawieniaZapisz widokZachowa� zmiany w "%s"?Przegl�dam s�ownik: %sPrzegl�d w��czonego pliku: %sPrzegl�dam znaczniki.Przegl�dam: %sScrollbar Widget: Nie mog�em otrzyma� rozmiar�w rysunku na przycisku.Szukany ci�gSzukanie "%s"Szukanie "%s" w "%s"Przeszukiwanie w��czonego pliku %sSzukam w pliku znacznik�w %sZobacz ":help E312" dla dalszych informacji.Zobacz ":help W11"  dla dalszych informacji.Zobacz ":help W12"  dla dalszych informacji.Zobacz ":help W16"  dla dalszych informacji.Dialog wyboru kataloguWybrano %s%ld z %ld Wierszy; %ld z %ld S��w; %ld z %ld Bajt�wWybrano %s%ld z %ld Wierszy; %ld z %ld S��w; %ld z %ld Znak�w; %ld z %ld Bajt�wWyb�rPrzesy�am do drukarki...Poka� baz� klasyPoka� klas� w hierarchiiPoka� klas� w ograniczonej hierarchiiPoka� po��czeniaPoka� dokumentacj� dlaPoka� przepisan� funkcj� cz�onow�Poka� wielko�� w punktachPoka� �r�d�o dlaPoka� ten komunikatZnaki dla %s:Wielko��:Pomijam zapis pliku undo, nic do cofni�ciaSniff: B��d w trakcie zapisu. Roz��czonyPrzykro mi, nie ma pliku pomocy "%s"Przykro mi, brak podpowiedziPrzykro mi, tylko %ld podpowiedziPrzykro mi, ta komenda jest wy��czona: nie mog�em za�adowa� biblioteki Perla.Wczytaj skrypt VimaSponsoruj rozw�j Vima!Wielko�� stosu wzrastaStyl:Podstawienie Plik wymiany "Plik wymiany "%s" istnieje, czy go nadpisa�?Plik wymiany ju� istnieje!Zaszyfrowany plik wymiany: "%s"Znalezione pliki wymiany:Karta %dOderwij to menuTest ekranu X nie powi�d� si�Dzi�ki za lot VimemTen plik zosta� stworzony na Jedyne dopasowanieTa wersja Vima nie by�a skompilowanego z opcj� r�nic (diff).Ta komenda cscope nie wspomaga podzielenia okna.
Prze��cz mi�dzy implementacj�/okre�leniemZbyt wiele argument�w "+komenda", "-c komenda" lub "--cmd komenda"Zbyt wiele flag z�o�e�Zbyt wiele argument�wZbyt wiele op�nionych prefiks�wZbyt wiele op�nionych prefiks�w i/lub flag z�o�e�Za du�o region�w w %s wiersz %d: %sG�raCa�kowita liczba s��w: %dZb�dny tekst w %s wiersz %d: %swprowad�  :quit<Enter>    zako�czenie programuWpisz numer i <Enter> (puste anuluje): Wpisz numer i <Enter> lub wybierz mysz� (pusta warto�� anuluje): Nie mog� odczyta� bloku 0 z Nie mog� zarejestrowa� nazwy serwera komendNieznaneNieznany argument opcjiNieznane flagi w %s wiersz %d: %sNieznany lub powt�rzony element w %s wierszu %d: %sBez Tytu�uW g�r�U�yj Vima w wersji 3.0.
U�ywam CUT_BUFFER0 zamiast pustego wyboruU�ywam klucza szyfruj�cego z pliku wymiany do pliku tekstowego.
U�ywam pliku wymiany "%s"VIM - UWAGAVIM - Szukaj i Zamie�...VIM - Szukaj...VIM - Vi rozbudowanyB��d VIMVIM: Nie mog� otworzy� okna!
VIMRUN.EXE nie znaleziono w twoim $PATH.
Zewn�trzne komendy nie b�d� wstrzymane po wykonaniu.
Zobacz  :help wim32-vimrun  aby otrzyma� wi�cej informacji.Vim - wyb�r czcionkiVim E458: Nie mog� zarezerwowa� mapy kolor�w, pewne kolory mog� by� nieprawid�oweVim Ostrze�enieVIM - DialogB��d VimaB��d vima: ~aVim ko�czy prac� z %d
Vim jest open source i rozprowadzany darmowoVim: Za�apa� wydarzenie %s
Vim: Za�apa� �miertelny sygna�
Vim: Za�apa� �miertelny sygna� %s
Vim: Podw�jny sygna�, wychodz�
Vim: B��d podczas wczytywania wej�cia, ko�cz�...
Vim: B��d: Nie mo�na uruchomi� gvim z NetBeans
Vim: Zako�czono.
Vim: G��wne okno nieoczekiwanie zniszczone
Vim: Wczytywanie ze stdin...
Vim: otrzymano ��danie "die" od mened�era sesji
Vim: OSTRZE�ENIE: Wej�cie nie pochodzi z terminala
Vim: OSTRZE�ENIE: Wyj�cie nie jest terminalem
Vim: zachowuj� plik...
W10: OSTRZE�ENIE: Zmiany w pliku tylko do odczytuW11: OSTRZE�ENIE: Plik "%s" zmieni� si� od czasu rozpocz�cia edycjiW12: OSTRZE�ENIE: Plik "%s" zmieni� si� od czasu rozpocz�cia edycji, bufor w Vimie r�wnie� zosta� zmienionyW13: OSTRZE�ENIE: Plik "%s" zosta� stworzony po rozpocz�ciu edycjiW14: OSTRZE�ENIE: Przepe�nienie listy nazw plik�wW15: OSTRZE�ENIE: Niew�a�ciwy separator wierszy, pewnie brak ^MW16: OSTRZE�ENIE: Tryb pliku "%s" zmieni� si� od czasu rozpocz�cia edycjiW17: Arabski wymaga UTF-8, zr�b ':set encoding=utf-8'W18: nieprawid�owy znak w nazwie grupyOSTRZE�ENIE: Plik zmieni� si� od czasu ostatniego odczytu!!!OSTRZE�ENIE: wykryto Windows 95/98/MEOSTRZE�ENIEOstrze�enie: Nie mog� znale�� listy s��w "%s.%s.spl" lub "%s.ascii.spl"Ostrze�enie: Nie mog� znale�� listy s��w "%s_%s.spl" lub "%s_ascii.spl"OSTRZE�ENIE: Nieoczekiwane wej�cie w inny bufor (sprawd� autokomendy)Ostrze�enie: okre�lono zar�wno z�o�enia jak i NOBREAKOstrze�enie: region %s nie jest wspieranyOSTRZE�ENIE: terminal nie wykonuje pod�wietlaniaPodczas otwierania pliku "Nie nadpisz� plikiem undo, nie mog� odczyta�: %sNie nadpisz�, to nie jest plik undo: %sPozycja okna: X %d, Y %dDodano s�owo do %sWyraz z innego wierszaUsuni�to s�owo z %sZapisa� cz�ciowo plik?Zapisuj� plik sprawdzania pisowni %s ...Zapisuj� plik sugestii %s ...Zapisuj� plik undo: %sZapisuj� plik viminfo "%s"Z�a warto�� CHECKCOMPOUNDPATTERN w %s wiersz %d: %sZ�a warto�� COMPOUNDMIM w %s wiersz %d: %sZ�a warto�� COMPOUNDRULES w %s wiersz %d: %sZ�a warto�� COMPOUNDSYLMAX w %s wiersz %d: %sZ�a warto�� COMPOUNDWORDMAX w %s wiersz %d: %sObserwacja po��czenia XSMP ICE nie powiod�a si�XSMP SmcOpenConnection nie powiod�o si�: %sXSMP obs�uguje ��danie samozapisuXSMP straci� po��czenie ICEXSMP otwiera po��czenieXref maXref ma odniesienia odXref odnosi si� doXref u�yte przezTAKZerowy licznik[B��D W PRZEMIANIE w linii %ld][brak CR]'[Skasowano][Urz�dzenie][Za du�y plik][Pomoc][NIEDOZWOLONY BAJT w wierszu %ld][Niekompletny ostatni wiersz][Lista lokacji][NIE przemienione][Nowy KATALOG][Nowy Plik][Nowy Plik][Nowy][Bez nazwy][Brak zapisu od czasu ostatniej zmiany]
[Nie edytowany][Nie dozwolono][Podgl�d][Lista quickfix][B��DY W ODCZYCIE][RO][B��d odczytu][Notka][blowfish][wywo�ania] wszystkich re/malloc()-�w %lu, wszystkich free()-�w %lu

[specjalny znak][przemienione][zakodowane][format dos-a][dos][fifo/socket][fifo][plik ..]       edytuj zadane pliki[d�ugie wiersze rozdzielane][format maca][mac][noeol][tylko odczyt][socket][format unixa][unix]argument add()zai wykona� diff z oryginalnym plikiem aby sprawdzi� zmiany)pr�ba odniesienia do skasowanego buforapr�ba odniesienia do skasowanej kartypr�ba odniesienia do skasowanego oknaauto-usuwanie autokomendy: %s <buffer=%d>autokomenda %sprzed%ld wierszy skopiowanychskopiowano blok 1 wierszabufor jest niewa�nyprzez Autor: Bram Moolenaar i Inni.wywo�ano inputrestore() wi�cej razy ni� inputsave()wywo�uj� %snie mog� skasowa� atrybut�w OutputObjectnie mog� odczyta� wyj�cia z 'charconvert'nie mog� zmieni� trybu konsoli ?!
nie mog� stworzy� bufora/okna komendy: obiekt jest kasowanynie mog� skasowa� wierszanie mog� usun�� atrybut�w vim.Dictionarynie mog� usun�� atrybut�w vim.Listnie mog� dosta� wierszanie mog� wprowadzi� wierszanie mog� wprowadzi�/do��czy� wierszanie mog� zmieni� zablokowanego s�ownikanie mog� zmieni� zablokowanej listynie mog� otworzy� nie mog� zarejestrowa� wstecznego wywo�ania komendy: bufor/okno ju� zosta�a skasowananie mog� zarejestrowa� wstecznego wywo�ania komendy: brak odniesienia do bufora/oknanie mog� zamieni� wierszanie mog� zachowa� informacji cofanianie mog� ustawi� atrybutu %snie mog� ustawi� wiersza(y)nie mog� skopiowa�, mimo to kasuj�1 zmianazmianyzamknijcmd: %spod��czonykontynuacja w %snie mog�em wczyta� "%s"nie mog� otworzy� buforawykonanie cs_create_connection nie powiod�o si�nie powiod�o si� setpgid cs_create_connectioncs_create_connection: fdopen dla fr_fp nie powiod�o si�cs_create_connection: fdopen dla to_fp nie powiod�o si�komendy cscope:
po��czenie %s z cscope zosta�o zamkni�tepozycja kursora poza buforemdomy�lnie jest 'blok nr 1 skasowany?s�ownik jest zablokowanynie przeszed�em do okre�lonej kartynie przeszed�em do okre�lonego oknadlerror = "%s"nie wychod� edytora, dop�ki plik nie zosta� poprawnie zapisany!puste klucze nie s� dozwolonezmienna �rodowiskowab��d przy konwersji warto�ci Scheme do Vimaobs�uga b��dulista b��d�w %d z %d; %d b��d�wczeka�em na 3-krotk� jako wynik imp.find_module(), a dosta�em %sczeka�em na 3-krotk� jako wynik imp.find_module(), a dosta�em krotk� o wielko�ci %dczeka�em na bytes() lub str(), a dosta�em %sczeka�em na int() lub co� co mo�na zmieni� na int(), ale dosta�em %sczeka�em na int(), long() lub co� co mo�na zmieni� na long(), ale dosta�em %sczeka�em na element sekwencyjny od d�ugo�ci 2, a dosta�em sekwencj� o d�ugo�ci %dczeka�em na str() lub unicode(), a dosta�em %soczekiwa�em na obiekt vim.Buffer, a dosta�em %soczekiwa�em na obiekt vim.TabPage, a dosta�em %soczekiwa�em na obiekt vim.Window, a dosta�em %swyra�enia wy��czone podczas kompilacjiargument extend()nie powiod�o si� dodanie elementu do listynie powiod�o si� dodanie klucza '%s' do s�ownikanie powiod�a si� zmiana katalogunie znaleziono okna na bie��cej karcienie powiod�a si� zmiana nazwy buforanie mog� uruchomi� funkcji %suruchomienie kodu si� nie powiod�onie przeszed�em do bufora %dmniej wierszyplik
nazwa pliku  / kontekst / wiersz
argument filter()sko�czono wczytywanie %szwalniam %ld wierszyfunkcja %s nie istniejekonstruktor funkcji nie akceptuje s��w kluczowych jako argument�wb��d gvimext.dllhashtab zmieni� si� w czasie iteracjipomocukryta opcjaw tropie ---
indeks musi by� liczb� lub wycinkiem, nie %sargument insert()b��d wewn�trzny: przekazano referencj� NULLb��d wewn�trzny: nie powiod�o si� dodanie elementu do listyb��d wewn�trzny: nie powiod�o si� pobranie z listy Vima elementu %dwewn�trzny b��d: imp.find_module zwr�ci� krotk� z NULLb��d wewn�trzny: b��dny typ warto�cib��d wewn�trzny: w li�cie Vima brak elementu %db��d wewn�trzny: nieznany typ opcjiniepoprawny atrybut: %sniew�a�ciwy numer buforaniepoprawne wyra�enieniepoprawna nazwa zak�adkijest urz�dzeniem (wy��czonym w opcji 'opendevice')jest katalogiemnie jest plikiemnie jest plikiem lub zapisywalnym przyrz�demjest tylko do odczytu (wymu� poprzez !)przerwanie klawiaturywiersz %4ld:wiersz %6d, s�owo %6d - %swiersz %ldwiersz %ld z %ld --%d%%-- kol wiersz %ld: %swiersz: %ld nie mog�em wczyta� "%s"wiersz %ld: wczytywanie "%s"1 wiersz mniejnumer wiersza poza zakresemnumer wiersza poza zakresemkonstruktor listy nie akceptuje s��w kluczowych jako argument�windeks listy poza zakresemlista jest zablokowanawylogujargument map()nazwa zak�adki musi by� pojedynczym znakiemzak�adka nie ustawionapasuje %dpasuje %d z %dmaksymalnie mch_get_shellsize: nie jest konsol�??
menu  Edytuj->Ustawienia globalne->Tryb wstawianiamenu Edytuj->Ustawienia globalne->Kompatybilno�� z Vimenu Pomoc->Sieroty        dla informacji to tym  menu Pomoc->Sponsoruj/Zarejestruj si� dla informacjiminimalnie modeline1 wiersz wi�cejwi�cej wierszynetbeans nie s� obs�ugiwane przez to GUI
uruchomiono now� pow�ok�
niebrak po��cze� z cscope
brak okre�lonego dopasowanianie ma takiej kartynie ma takiego oknabrak synchronizacjinie Niedozwolone w piaskownicy Vimanie znaleziononie znaleziono w 'runtimepath': "%s"obecnie nie zaimplementowanoliczba zmiany   kiedy              zapisanoliczba musi by� wi�ksza lub mniejsza ni� zeroliczba musi by� wi�ksza ni� zerope_line_count wynosi zerolinia polece� pre-vimrcwyst�pi� problem w czasie zmiany okienodczyt z gniazda Netbeansatrybut tylko do odczytu: buforzapisargument remove()zamie� na %s (y/n/a/q/l/^E/^Y)?argument reverse()wiersz %d kolumna %dszukanie dobi�o KO�CA; kontynuacja od G�RYszukanie dobi�o G�RY; kontynuacja od KO�CApow�oka pow�oka zwr�ci�a %dzako�czargument sort()wczytywanie "%s"stack_idx powinien by� 0ci�g nie mo�e zawiera� znak�w nowego wierszasynchronizacja komentarzy w stylu Cpocz�tek synchronizacjiznacznik %d z %d%snazwa znacznikado %s z %swprowad� :help cp-default<Enter>  dla informacji to tym  wprowad� :help iccf<Enter>        dla informacji o tym  wprowad� :help register<Enter>        dla informacjiwprowad� :help sponsor<Enter>        dla informacjiwprowad� :help version8<Enter>    dla informacji o wersjiwprowad� :help windows95<Enter>   dla informacji to tym  wprowad� :help<Enter>  lub  <F1>  pomoc na bie��co       wprowad� :q<Enter>                zako�czenie programu   wprowad� :set nocp<Enter>         warto�ci domy�lne Vim-anie mo�na konwertowa� %s do s�ownika Vimanie mo�na konwertowa� %s do struktury Vimanie mog� pobra� warto�ci opcjinie mog� wyzerowa� opcji globalnej %snie mog� wyzerowa� opcji %s, kt�ra nie ma warto�ci globalnejnieznanynieznana flaga: nieznana opcjanieznane vimOptionnie nazwana funkcja %s nie istniejewarto�� zbyt du�a by zmie�ci�a si� w typie int Cwarto�� jest zbyt ma�a by zmie�ci�a si� w typie int Cwersja b��d vimaindeks okna poza zakresemokno jest niewa�nez (klasycznym) GUI.z Carbon GUI.z Cocoa GUI.z GTK2 GUI.z GTK2-GNOME GUI.z GUI.z Photon GUI.z X11-Athena GUI.z X11-Motif GUI.z X11-neXtaw GUI.bez GUI.zapisywanie do urz�dzenia wy��czone w opcji 'opendevice'PK�j�Z]u�.``vim80/lang/menu_zh.gb2312.vimnu�[���" Menu Translations:	Simplified Chinese (for Windows)

source <sfile>:p:h/menu_zh_cn.gb2312.vim
PK�j�Z��W�(�("vim80/lang/menu_chinese_gb.936.vimnu�[���" Menu Translations:    Simplified Chinese
" Maintainer:           Shun Bai <baishunde@gmail.com>
" Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
" Last Change:          2014 Oct 15

" vim: ts=8 sw=8 noet

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp936

" Help menu
menutrans &Help			���(&H)
menutrans &Overview<Tab><F1>	���(&O)<Tab><F1>
menutrans &User\ Manual		�û��ֲ�(&U)
menutrans &How-to\ links	How-to\ ָ�(&H)
menutrans &Find\.\.\.		����(&F)\.\.\.
menutrans &Credits		��л(&C)
menutrans Co&pying		��Ȩ(&P)
menutrans &Sponsor/Register	���/ע��(&S)
menutrans O&rphans		�¶�(&R)
menutrans &Version		�汾(&V)
menutrans &About		����(&A)

" File menu
menutrans &File				�ļ�(&F)
menutrans &Open\.\.\.<Tab>:e		��(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	�ָ��(&L)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	�򿪱�ǩ\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		�½�(&N)<Tab>:enew
menutrans &Close<Tab>:close		�ر�(&C)<Tab>:close
menutrans &Save<Tab>:w			����(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	���Ϊ(&A)\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	�ָ�Ƚ�(Diff)(&D)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	�ָ�򲹶�(Patch)(&B)\.\.\.
menutrans &Print			��ӡ(&P)
menutrans Sa&ve-Exit<Tab>:wqa		���沢�˳�(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			�˳�(&X)<Tab>:qa

" Edit menu
menutrans &Edit				�༭(&E)
menutrans &Undo<Tab>u			���(&U)<Tab>u
menutrans &Redo<Tab>^R			���(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		�ظ��ϴβ��(&E)<Tab>\.
menutrans Cu&t<Tab>"+x			����(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			����(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		ճ�(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		ճ������ǰ(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		ճ�������(&A)<Tab>]p
menutrans &Delete<Tab>x			ɾ��(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
menutrans &Find\.\.\.			����(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	���Һ��滻(&L)\.\.\.
menutrans &Find<Tab>/			����(&F)<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s	���Һ��滻(&L)<Tab>:%s
menutrans Settings\ &Window		�趨����(&W)
menutrans Startup\ &Settings		���趨(&S)
menutrans &Global\ Settings		ȫ���趨(&G)

" Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	��/��ģʽ���(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		��/�غ��Դ�Сд(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		��/����ʾ���(&S)<Tab>:set\ sm!
menutrans &Context\ lines			���������(&C)

menutrans &Virtual\ Edit			����༭(&V)
menutrans Never					�Ӳ�
menutrans Block\ Selection			��ѡ��
menutrans Insert\ mode				����ģʽ
menutrans Block\ and\ Insert			��ѡ��Ͳ���ģʽ
menutrans Always				����

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	��/�ز���ģʽ(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	��/��\ Vi\ ����<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.			����·��(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.			Tag\ �ļ�(&T)\.\.\.

" GUI options
menutrans Toggle\ &Toolbar			��/�ع����(&T)
menutrans Toggle\ &Bottom\ Scrollbar		��/�صײ������(&B)
menutrans Toggle\ &Left\ Scrollbar		��/����˹����(&L)
menutrans Toggle\ &Right\ Scrollbar		��/���Ҷ˹����(&R)

" Edit/File Settings
menutrans F&ile\ Settings			�ļ��趨(&I)

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!		��/����ʾ�к�(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!	��/������к�(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!			��/��\ list\ ģʽ(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			��/������(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!		��/���������(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!			��/���չ\ tab(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!			��/���Զ����(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!			��/��\ C\ ���(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			������(&S)
menutrans Soft\ &Tabstop		Soft\ Tab\ ���(&T)
menutrans Te&xt\ Width\.\.\.		�ı����(&X)\.\.\.
menutrans &File\ Format\.\.\.		�ļ���ʽ(&F)\.\.\.
menutrans C&olor\ Scheme		��ɫ����(&O)
menutrans Select\ Fo&nt\.\.\.		ѡ������(&N)\.\.\.
menutrans &Keymap			����ӳ��(&K)

" Programming menu
menutrans &Tools			����(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	�ת����\ tag(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		�ת����(&B)<Tab>^T
menutrans Build\ &Tags\ File		����\ Tags\ �ļ�(&T)

" Tools.Spelling Menu
menutrans &Spelling				ƴд���(&S)
menutrans &Spell\ Check\ On			��ƴд���(&S)
menutrans Spell\ Check\ &Off			�ر�ƴд���(&O)
menutrans To\ &Next\ error<Tab>]s		��һ������(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s		��һ������(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=		�������(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	�ظ����(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"		�趨����Ϊ\ "en"
menutrans Set\ language\ to\ "en_au"		�趨����Ϊ\ "en_au"
menutrans Set\ language\ to\ "en_ca"		�趨����Ϊ\ "en_ca"
menutrans Set\ language\ to\ "en_gb"		�趨����Ϊ\ "en_gb"
menutrans Set\ language\ to\ "en_nz"		�趨����Ϊ\ "en_nz"
menutrans Set\ language\ to\ "en_us"		�趨����Ϊ\ "en_us"
menutrans &Find\ More\ Languages		���Ҹ�������(&F)

" Tools.Fold Menu
" open close folds
menutrans &Folding				�۵�(&F)
menutrans &Enable/Disable\ folds<Tab>zi		����/�����۵�(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv		�鿴����(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	���鿴����(&W)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm		�رո����۵�(&L)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM		�ر�����۵�(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr		�򿪸����۵�(&P)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR		������۵�(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			�۵�����(&H)
menutrans M&anual			�ֹ�(&A)
menutrans I&ndent			���(&N)
menutrans E&xpression			���ʽ(&X)
menutrans S&yntax			�﷨(&Y)
menutrans &Diff				�Ƚ�(Diff)(&D)
menutrans Ma&rker			���(&R)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		�����۵�(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		ɾ���۵�(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	ɾ������۵�(&A)<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width		�۵������(&W)

" Tools.Diff Menu
menutrans &Diff				�Ƚ�(Diff)(&D)
menutrans &Update			����(&U)
menutrans &Get\ Block			�õ���(&G)
menutrans &Put\ Block			���ÿ�(&P)

menutrans &Make<Tab>:make		Make(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		�����(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	�г��Ϣ(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		��һ������(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	��һ������(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	���ɵĴ���б�(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	���µĴ���б�(&E)<Tab>:cnew
menutrans Error\ &Window		���󴰿�(&W)
menutrans &Update<Tab>:cwin		����(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		��(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		�ر�(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	ת����ʮ������<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	ת������<Tab>:%!xxd\ -r
menutrans Se&T\ Compiler		�趨�����(&T)

" Names for buffer menu.
menutrans &Buffers		�����(&B)
menutrans &Refresh\ menu	���²˵�(&R)
menutrans &Delete		ɾ��(&D)
menutrans &Alternate		����(&A)
menutrans &Next			��һ��(&N)
menutrans &Previous		��һ��(&P)

" Window menu
menutrans &Window			����(&W)
menutrans &New<Tab>^Wn			�½�(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		�ָ�(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	�ָ\ #(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	��ֱ�ָ�(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	�ָ��ļ����(&X)
menutrans &Close<Tab>^Wc		�ر�(&C)<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	�ر��������(&O)<Tab>^Wo
menutrans Move\ &To			�ƶ���(&T)
menutrans &Top<Tab>^WK			����(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		�׶�(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		���(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		�ұ�(&R)<Tab>^WL
" menutrans Ne&xt<Tab>^Ww		��һ��(&X)<Tab>^Ww
" menutrans P&revious<Tab>^WW		��һ��(&R)<Tab>^WW
menutrans Rotate\ &Up<Tab>^WR		�����ֻ�(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		�����ֻ�(&D)<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		�ȴ�(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		���߶�(&M)<Tab>^W
menutrans M&in\ Height<Tab>^W1_		��С�߶�(&I)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		�����(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		�����(&H)<Tab>^W1\|
"
" The popup menu
menutrans &Undo			���(&U)
menutrans Cu&t			����(&T)
menutrans &Copy			����(&C)
menutrans &Paste		ճ�(&P)
menutrans &Delete		ɾ��(&D)
menutrans Select\ Blockwise	ѡ���
menutrans Select\ &Word		ѡ�񵥴�(&W)
menutrans Select\ &Sentence	ѡ�����(&S)
menutrans Select\ Pa&ragraph	ѡ�����(&R)
menutrans Select\ &Line		ѡ����(&L)
menutrans Select\ &Block	ѡ���(&B)
menutrans Select\ &All		ȫѡ(&A)
"
" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		���ļ�
    tmenu ToolBar.Save		���浱ǰ�ļ�
    tmenu ToolBar.SaveAll	����ȫ���ļ�
    tmenu ToolBar.Print		��ӡ
    tmenu ToolBar.Undo		���
    tmenu ToolBar.Redo		���
    tmenu ToolBar.Cut		��������
    tmenu ToolBar.Copy		���Ƶ������
    tmenu ToolBar.Paste		�Ӽ����ճ�
    tmenu ToolBar.Find		����...
    tmenu ToolBar.FindNext	������һ��
    tmenu ToolBar.FindPrev	������һ��
    tmenu ToolBar.Replace	���Һ��滻...
    tmenu ToolBar.LoadSesn	���ػỰ
    tmenu ToolBar.SaveSesn	���浱ǰ�Ự
    tmenu ToolBar.RunScript	���� Vim �ű�
    tmenu ToolBar.Make		ִ�� Make (:make)
    tmenu ToolBar.RunCtags	�ڵ�ǰĿ¼���� tags (!ctags -R .)
    tmenu ToolBar.TagJump	�ת�����λ�õ� tag
    tmenu ToolBar.Help		Vim ���
    tmenu ToolBar.FindHelp	���� Vim ���
  endfun
endif

" Syntax menu
menutrans &Syntax			�﷨(&S)
menutrans &Show\ filetypes\ in\ menu	�ڲ˵�����ʾ�ļ�����(&S)
menutrans &Off				�ر�(&O)
menutrans &Manual			�ֹ�(&M)
menutrans A&utomatic			�Զ�(&U)
menutrans on/off\ for\ &This\ file	���������/��(&T)
menutrans Co&lor\ test			ɫ�ʲ���(&L)
menutrans &Highlight\ test		�������(&H)
menutrans &Convert\ to\ HTML		ת����\ HTML(&C)
menutrans Set\ '&syntax'\ only		���趨\ 'syntax'(&S)
menutrans Set\ '&filetype'\ too		Ҳ�趨\ 'filetype'(&F)

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�(����� vim80/lang/ga/LC_MESSAGES/vim.monu�[������|<
�x(�)�
:�H�Q�'g�/����ա�L�:N�����+��ʣ"��(�9�5I������դ����;ɥ��:�W�f�w�������ʦ�0��.*�/Y�0��
��ȧާ��
��
2�$=�$b��� ����@ȨD	�N�b�"����"é����@�_�z���������/Ϊ8��,7�=d�����ӫ���0�1A�1s�����Ϭ�-�3�S�h�������ǭ3߭3�G�d�|�������
ٮ����/�
G�$U�z�L�� ӯ��;$�`�o�#|�	����ðӰ�
����#�/�G�	_�i�q�y�!������ܱ���#�+� 3�T�o���������
òѲ6޲�2�K�!j���
����	����ٳ��&�	�" �*C�n�=��
ĴҴش���	�
�
'�2�
;�F�X�j�s�5��ǵ-ٵ1�&9�`�x�������ƶ۶��$�-�=�
Q�\�l���������ҷ�����+�7�F�V�h�x�
��������
ƸѸ�7�+�!8�Z�r�z�������������=��2�%�.�4�=�'N�-v�2��׺�?
�M�i�z�+����	Ļλ��-�M�$m���
����ͼ��?�D�2S�!��%��@ν9�EI�9��CɾK
�IY�H��;�6(�8_�3��<�4	�->�6l���%�����
�&�@�&P�,w�#��4�� ��@�-_�0��:��;��5�"U�x�>��)��>��<1�n�z�#��:��'��9!�[�$t�9��4��;� D�>e�1��/���-#�Q�.`�B��"��2��4(�*]���+��%��'��( �<I�E��.��-��$)�N�<g���*��&�� �41�f�w�����������������
�'�0�"8�[�g�v�������)����$�)�8�@�Y�1r�?���������0�F�a�t�X��%����+�I�b�{���������$����!�0�N�T�d�h���"��$����#�/�6�E�U�u����� ����4��.�	@�CJ�V����
��
�.�:�-S���-��$��.��6"�Y�.s�H��(���#�
<�OG�O��
��C��	9�C�O�!d�������3��2��!�(8�a� z�"��E���%!�#G�-k�������&���)�;�Y�r���'����)��+�@;�-|���5�����0�K�/f�9����E��3�-N�7|�#�� ��:��54�&j�"��&��$��#�!$�=F�5�� ��(��7�.<�,k��������� ��#�&;�b�y�����������0>�$o�!�� ��(��4�,5�b�~������� �����1,�^�!{�%��%��!��%�1�$J� o�����?��&�#.�R�
n�A|�%��"��"�9*�'d�(��2��*��!�!5�)W�%��!��4��:��&9�;`�;��)��0�3�R�n�����#��!��8��&1�#X�|� ��/��"���-�G�X�q�/��*��(��#
�1�M�h�����>�����0�"G�j�������#����9�1K�1}�)��1��%�71�i�A��?����3�!R�t�����0��4��$0�)U�N�,��&��L"�o�����8����$�(�B�#b�7��N��
�)�F�$a�!��3��,�2	�%<�b�"}���#�����;�BX���0��!� �<)�+f�����+�2�$&�K�,i���H��,��'�=�"]����������9�S�h���0��#�'��,�,L�&y�����+�2�-$�(R�{�"��'��'�,�4�.K�z�#��,��W�)C�"m�,��%��� !2:2m2��!�+2@5s'�#�)�3$S%x����
$"&G n'�*�#�'%.T3t!��+�*5-`$����
  ; \$}$�)��	,La%|�=�9R'l��$�#�0	.H	0w	�	�	�	

/
C
-Z
 �
�
7�
)�
&$>(c��%�$�$7'T|'� ���
 .
7O
0�
�
#�
�
"(>!g�-�1�65>t.�*�1�9U*u&�+�,�+ 4L<�+�*�+CXm�����"�
 7Rq�����)Ea:t=�<�6*<a�"��+�)4E5z4�3�0+ \}D�P�%&Lk�����!)Kf}����'�#6!Vx�"��1�.K"`������'<Uh|�����*1)\�� ����6#Os)�&�K�, ?`�����" &7 #^ � � +� %� 7!5F!|!�!,�!�!�!")," V"w"�"�"�"�"�"#5#0M#~#�#�#�#4�#.%$$T$)y$1�$;�$%.!%*P%{%$�%�%%�%,&.&%?&e&~&�&&�&-�&&'+' G'h'�'�'+�' �'(?()Z(�(6�(#�(2�(9,)>f)8�)1�)*).*)X* �*)�*�*)�**+"=+`+#y+"�+"�+)�+
,-,%K, q,$�,�,�,!�,0-G-`-{-�-"�-!�-9�-82./k.�.�.�.+�.%/18/)j/�/�/'�/%�/0&'0!N0%p0'�0%�0'�0-12:1m1�1$�1�1�1�1"2:2Z2!z21�2&�2�2!3!43V3(k3�3�3+�38�3347R4E�4!�4�45(50G5#x5�5$�5�5#�5*6?6Z6m60�62�60�67+97)e7$�7/�7�7�7'8)68,`8�8�8 �8�8�8-9,K9x9/�9+�9'�9!: 7:0X:�:!�:,�:�:;(;A;Z;0p;.�;�;1�;&"<:I<�<9�<�<:�<2=J=j=�=*�=�=3�=&>%?>2e>0�>!�>;�>R'?z?*�?�?�?(�?!@+=@+i@�@ �@"�@%�@ A+;A"gA+�A�A.�A4BI:B)�B)�B6�B6C-FC(tC/�C&�C<�C)1D*[D�D7�D�D�DE*-EXEvE0�E/�E!�E"F*8F/cF;�F�F�FQG.YG�G$�G#�G0�G#"HFH2eH6�H�H+�H%IXAI;�I/�I;JBJ!bJ%�J"�JN�J.K$KK&pKT�K#�K"L$3L XLyL�L#�L]�L 9MBZM'�M�M/�M2N,EN"rN�N&�N(�N%�N%ODObOEO!�O �O7P@P%VP|P'�P�P'�P	Q)Q<?Q|Q"�Q'�Q�QR+RDR(^R!�R5�R�R7�R!6S%XS/~S!�S�S�S'T6T)UT;T&�T(�TU)*U&TU{U�U'�U�U	�U�UVV+VEV#[V	V�V�V�V.�V�V.
W69WpWvW6�W#�W
�W&�W	X!X6XNXeXzX �X%�X!�X
�X�X(Y�:Ya�YGZ+`Za�Z�Z�Z[(
[
3[	>[%H[
n[y[&�[&�[�[(\+\	<\F\	W\a\
g\u\�\�\�\	�\2�\*]C]c]u]�]�]
�]�]	�]�]�]�]^#,^(P^y^�^	�^�^�^
�^�^�^2_9_E_d_~_�_�_$�_�_/�_` `'#`K`a`
x`$�`
�`�`�`�` �`aa*a7a!Maoa�a@�a(�ab'b9b<bMbYbeb�b#�b�b�b�b.�b
.c9c	OcYcyc�c�c'�c�c�c
ddd7dKdTdnd�d�d�d�d�de9%e9_e�e�e�e�e
�e�e(�e&f.f?fPf
]f	hfrf�f�f�f�f9�f
gg2gMghg&g�g�g�ghChW_h	�h�h�h�h�h
ii)"iLili�iF�i�i�ij%j,j8j(Djmj�j�j1�j�j�jk$k:kSk0bk;�k>�kl&l>l1Zl"�l�l�l�lA�l)/m=Ym�m(�m�m�m$�m0"nSn\n_n+un2�n�n�n�no%o	7oAo�Zo�oF�o;p
Gp	Rp
\pjp+p�p%�p0�pBq([q�q1�q+�q*�q&)r9PrM�r>�r)s5AsAws4�s$�s*tA>tA�t&�t6�t u<(u<eu?�u7�u/v Jv"kv�v2�v0�vw#w;wWwlw�w�w�w�w2�w)x+Fx,rx-�x �x!�x#y4yMyeyiymy�y	�y�y�y�y�y�y�yzz
$z
/z:z	@zJzhzuz	�z�z
�z�z
�z	�z5�z{{	${.{;{
A{O{&V{}{�{�{�{
�{�{
�{�{�{�{�{�{�{�{|9|BB|D�|"�|$�|"})5}_}n}u}�}�}�}�}1�}
~$~"7~Z~<y~�~'�~!�~#6Po�H�C�"�6�S�k�~�����������ǀ݀ �#�-7�-e����������(�&?�f�=u���΂%�
	�8�FP�.��DƃM�@Y�0��&˄'�&�$A�f�x�$����-Ӆ��3�J�h�t�z�������
׆���� $�E�
J�X�"e���%��*��.�8�"S�#v�%��#������#�/5�e�
t� �� ��ĉ
׉����!�.�N�	f�p���2��Њ�����$
�2�?�H�
W�e�#n�1��1ċ1��1(�Z�c�	l�
v�(��������׌���
	��
3�>�V�(j�'�� ��܍�	�)�	D�N�"`�����$��$̎���
��-�
=�K�a���������я�����5�K�Z�b�.n�.��.̐.��.*�.Y�.��.��&� 
�%.�T� o�:��˒ے���"�)6�)`���	������̓����%�	4�>�O�d�x���3���Δ������Ȗ,�/�@�T�j��y�:-�h�u�/}���&˙+��2�3H�)|�"��!ɚ
�����E�)�,?�&l�������˜ߜ!���6�,T�*��+��,؝��/� I�j�����8��9��&.�U�Tf�Z��� ,�$M� r�$����Ϡ
ߠM�;�X�k�
{�����<��T��>M�=��ʢ+��+�C�I^�@��0��2�E�b�+���Ǥ#ߤ�$�=�\�6{�@���#�4�S�n�%��
����Ϧ����9�.P�
�K��٧���?0�p��8��ǨӨ���,�9�Y�h�w���	����ȩѩ$�
�%�?�Z�,c�	����#�������#�
+�9�@F�������ܫ����*�#7�[�l�q�%v���"��(Ϭ��B�
R�`�g�x���	������íӭ����.�BM���+��0ЮA�C�[�p�������ïٯ3�"�2�F�R�c�y�������ɰݰ��
� �
6�D�W�g�v�
��������ӱ���9�H�'U�}�	����	������
��ʲ�V�L;�
��	������/��.�<�U�u�R����
�*#�N�
]�"k� ����1ϵ*�%,�:R�������ȶն9�
'�?5� u�"��N��G�QP�J��S�]A�V��Y��EP�@��@׺9�NR�@��2�<�R�&p�����Ƽ��&�8B�&{�5��$ؽG��*E�8p�G��<�$.�S�q�>��0¿B�86�
o�z�*��9�*��=(�f�-}�8��>�E#�(i�P��3��/�*G�8r�
��6��U��<F�<��D��:�+@�.l�/��-��1��9+�^e�;��-�4.�c�Fz�%��-��&�0<�Jm�������
��+�A�Q�g�~���������2���
��>�^�{�2��
��%������1�?K�A�����������+�H�a�u�j��&��&�)+�U�u���/��'���"�@�+H�t���������������!�$>�*c�:��������'�*�D�#d�5��"��B��$�8�EE�]�������)�?�(Z���%��!��>��G$�"l�=��X��=&�d�t���j��j�z�D��������/��
"�0�O�BT�8����$���-�'L�Tt��� ��4
�8?�x�#��#��*��	�� 5�V�,p�,��'����'
�+5�Ia�>����C
�N�n�!����H��E�X�Pu���B��7$�3\�"��G��I��)E�,o�+��?��7�!@�Db�5��$��-�I0�0z�.��)����1�-J�+x�(���� ��#�"0�#S�w�"�� ��?��0�-G�1u�9��:��3�P�j�������0�� �!�4?�!t�$��:��2��')�+Q�}�#��"�� ����Q�,o�$��$����B��89�"r�)��B��$�8'�.`�6��+��+��(�7G�+�9��E��-+�>Y�3��8��A�-G�!u�!������$��1�DD�:��/��%��/�<J�#����R���(�H�;a�8��-��)�".�&Q�%x�����M��%)�O� m�������%���-/�+]�@��N��>�?X�0��5��2��&2�IY�6������#�16�*h���3��J�A/�q�-��\��,�,I�Zv����I�i�/����!�.�I"�rl��+��%(�*N�%y�D��,�:�.L�!{�5��)�7��+5�a� }���E��&�C*�*n�4��O�-�2L��*��9�(�**�DU�"��S��:L#d!�/�1�11>%p6��� -'(U.~
�+�3�*'CkD�N�B<\�)�:�>4\�*� �'�.fH2�/�0-C!q$��>�@FU�%���C	<O	)�	*�	)�	<
)H
,r
$�
�
�
0�
0*N+y(�-�5�+2%^.�#�A�+
+E
2q
(�
A�
@*P6{���!�--M'{/�-�48m�)�$�:�"+$Ns�;��.%5$[*�/�H�$$$In����-� ,!M+o:��(�>$X};�0�&*J8h&�*�'�(D!b(�@�6�/%)U%.�0� ,&8S4�9�8�(48]8�E�@'V7~*�*�1/>9nG�:�1+]s�����#7)['��#�-�#!=_"{�*�!�	 ' ? A\ B� E� <'!Od!!�!-�!">"2^"I�"K�"I'#Hq#�#H�##$;$OQ$Y�$?�$';%#c%#�%�%�%�%�%"&!5&W&s&�&�&'�&�& '4"'
W'%e'.�'$�'�'*�'((Q=(�($�(�(�(�()4)&S)z)�)"�)�)�)
** 1*R*i*"�*&�*&�*+�*0+/O+
+�+'�+�+�+�+;,,S,�,7�,*�,Y-[-4p-"�-�-�-�-.&.;.&Y."�.�.�.�.0�.)&/CP/A�/"�/#�//0M0"h0�0*�0(�0�0151L1b1"�1�1�14�1
2%#2(I2*r2D�24�273'O36w37�3�36�38047i41�4(�44�4;15m5,�5�5�5�5-6526-h6�6-�6%�6'7%.7HT7+�7�7D�7+#8O8Fm83�8>�8A'9Ii9=�9B�9-4:1b:0�:$�:/�:;29;5l;!�;�;1�;+<+?<3k<'�<%�<@�<&.=&U="|=$�=,�=4�=&>"@>c>*~>2�> �><�>?:?1z?(�?)�?�?3@'F@<n@2�@�@�@)A+5AaA&xA)�A*�A(�A'B-EB6sB+�B�B�B 
C#.C+RC"~C#�C�C�C.DB4D'wD�D+�D(�D#E&8E _E&�E7�E@�E FG@F_�F(�FG%G+8G8dG)�G�G+�GH&'H&NHuH�H&�H;�H)	I:3InI$�I'�I,�IBJ!FJhJ-zJ0�J<�J2KIKeK�K,�K&�K0�K"!L<DL?�L*�L'�L9M:NM�M%�M5�MNN.0N%_N!�N5�N7�N%O0;O,lO;�O �OI�O%@P;fP �P+�P%�P(QB>Q%�Q#�Q�Q8�Q6 RDWR*�RM�RbS(xS9�S�S �S-TIT(eT9�T�T,�T(U7;U'sU:�U2�U-	V7V<WV;�VG�V.W.GWMvWM�W*X6=X8tX2�XJ�X7+Y<cY�Y6�Y�Y*Z!=Z0_Z'�Z�Z3�Z-[:[ V[7w[3�[;�[#\ C\Vd\;�\�\&]%:]5`]%�]"�]?�]=^ ]^)~^1�^c�^7>_2v_P�_ �_/`+K`'w`R�`1�`($a5MaX�a,�a,	b"6b'Yb(�b&�b'�bh�b bc]�c'�c%	d9/dFid3�d!�de0"e-Se,�e/�e�e#�eHf hf'�fD�f�f*g#6g)Zg�g6�g'�g!�gQh qh)�h'�h�hi:iVi4qi"�i;�ij'$j,Lj+yj.�j$�j!�j5k5Qk �k'�kD�k*l$@l*el*�l7�l"�l&m&=m	dmnm%�m�m#�m�m�m)n	FnPn`n zn<�n�n<�n?0opoxoG�o�o�o7	p	ApKpfp�p�p	�p,�p1�p/#qSq[q1xq��q{zr"�r<ssVs�s�s�s1�s#t9t7Nt�t�t(�t(�t�t(u:uMuVuiuruwu!�u�u,�u�uv>"v9av7�v�v(�vw!7wYwkw
~w�w�w�w�w,�w*x*-xXx	exox&�x�x�x�xG�x-y!=y_y|y�y�y-�y/�y9zEzRz@Vz�z�z�z*�z{{3{M{Be{ �{�{�{�{0|2C|	v|K�|0�|�|)}9}<}S}f}y}�}(�}�}&�}
~?+~
k~y~�~#�~�~�~�~)�~0@R!g�����#��9�!S�u�S��C�*�	=�G�W�f�w�2��Łс�����0�K�a�����H�����"� >�_�:�9��9�9.�h�D��\˄(� /�P�`�x�����1��,� �#0�TT�����Ն����<
�G�%f���I���	� �'@�h�(��4��<�B �c�$��"��>ʉ#	�-�2�#M�Nq�6��O��G�,c�	����$��*׋���23�Gf���
ˌ ֌��
��#(��L��`��[�
g�r�~�������5َ-�I=�-��)��9ߏ7�6Q�+��@��H��A>�2��M��I�SK�(��5ȒA��A@�,��)��ٓF�F(�Eo�*��1�!�-4�b�:��.����(�C�V� r�����Ζ7�.$�0S�1��2���#�-+�Y�q���������
ØΘ֘	�"�$�8�H�X�i�v���
��'����ș
ڙ����)�)5�)_�����
������Ś2̚��
�$�*�3�	D�N�]�	d�n�s�w��
����>��DݛC"�0f�/��2ǜ2��-�9�?�X�t�����0��	՝*ߝ-
�!8�=Z���,��&�
�$�";�#^�"����F��J�M�$i�����(Ơ���������5�"P�(s�7��7ԡ�� 4�U�e�{�8��-͢��(
�3�S�*i���O��W��5Q�M��Wդ>-�7l�4��5٥4�(D�m�(~�4��%ܦ5�+8�d�$��'��ѧާ!���!0�R�g�z���&��ǨϨߨF�5�'F�<n�:��A�&(�1O�3��*������)�4@�u�����3���
���	!�+�I�(V��������?�%�=�
J�5X���������׭%ޭ6�6;�1r�;����	�	��%�)�>�E�Z�*m���
��)ů
����!�A�%a�����)���
��$�D�V�?g�B������3�B� R�.s�����ز����"�4�I�a�w�����G��7�;�;X�C��@ش4�MN�&��%õ(� �-3�6a���	����Ŷն�-�-2�`�h�t�������
ɷ׷������.�@�S�7\�z�~����*�Gg�lI�T��g������Z~�;����hE���5�`�p�$�jNr�T}��'���^P�W_��Z>���^w3����`UL��h���[���o
P�o0�*E��K� �y�����d��.f�<��Ubq&Y_�\����>�F�g���N�#���6���k��9_G8|�R����n��x:>(�;�X�������bj�D���S�,k|�z!�����A���j?m��a&lVSB�:�&��.�R�v� �%.@@�
���~Q��\Wu���&w[$?t*+�;��x��)�o��(y�s�t��
O]x�#���'��s�]�B�f��J����,#u&��;�����9l�3�/f�����+��\X�uW*iD�Q S����9c���h|��*�l/�@(v������9��{�������ji5%�|�Ln���E"�K�g����Z $T�T�gA~ej��
���{��u���O���}^X��O�+�fv��i��-G@�l��m�-|�p�J�_%l�~�R��"F8��NM����`�yC���zJ����,��KElt�r�4�Pl����K>eq�3��kQaK�W�!�.o�V�P]�[��/�m��X�w����)�����Y!��	4%��b��8�3�5���EyH�VjB���B�=�.�9(?�/K��X��:PZ����@	����r�7�����;b
+����#���b�o�-f�9_Vv����2��"�����
1\!	3?z�% X��CZ��)p�'�:Q^�������Y�wD>�#AH�e�x���r2T��C����h2A0�M�;�����^GL��Y_7F15��=��g5jV�x��7�s'!?�k>�v�`�������4<�D
�B6�1G�#A�a�����[��0{�dN�Z���(�F�O<�_��p�tNI�O���H������g��B*(���W��-2���Z�S���T��5A����6e�^�kt�����q����zmCsUG��'L�H���f�J~=nd)R9�9�������sr�0`i��)|M�`���,�:/L��?$�X}����z��#n�7�J�H�������Du=�������tC�'!,��� S 
Q)������H7�WgJ�������Y��
z�B�������~F��h�nCUS�o$�d�0��}L��=�m�7c��d�a��K
U���k���ew��	a�&Io�S)��}���������K����$�V�b�]J�|�0��s�����u-�c��G�wR���C%��1���1	��I=�w3�48��]�@�{��V#������|e����b����1�'�q���En��~7PWO�[�L������6�4�[�GZ^�`5R$����6r�ym� ���<��y��y�Ac�+����>/�c�F�3������=��qp0Lv�a
p�M��U=w����Q�4���]�d���d�4��0�5������N��X��2k*�Q�F��	�"R{���Oa��C�8M6�1����}��iqO��t��qn[�����a�?8�&%\�;f���hY<��Ec��q�"
{��\D���sxo�},�!��.�I�&e�i�������{,��7�����Iv:D�+:+H
���v�'k�"����Pp`��D���T]��b	���jt\{�,>��
���
?M�(I�i;�	N�x���IQ(32T���Y�]��/")^.Y�<}�e��F8m@_�u���%�[A��\x��S�rc�������������P��@��my���6/�
-*�W�-1�:���Mf���6�Ur�4"p�BN���J��E�-���h�n.��<�R��!�H�cV+$���8<���U2iz2M�d�h�������s�����u�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim 7.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-11 15:45-0500
PO-Revision-Date: 2010-04-14 10:01-0500
Last-Translator: Kevin Patrick Scannell <kscanne@gmail.com>
Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>
Language: ga
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(n>6 && n<11) ? 3 : 4;

	Socraithe is d�ana� � 

Arg�int�:


�s�id:
          mionathraithe: 
         [n� in�s�idte ar an r�omhaire seo]
         [n� in�s�idte leis an leagan seo Vim]
         �stainm: 
         �s�ideoir: 
        PID: 
       a: Aimsigh r�itis sannach�in leis an tsiombail seo
       c: Aimsigh feidhmeanna a chuireann glaoch ar an bhfeidhm seo
       d: Aimsigh feidhmeanna a gcuireann an fheidhm seo glaoch orthu
       e: Aimsigh an patr�n egrep seo
       f: Aimsigh an comhad seo
       g: Aimsigh an sainmh�ni� seo
       i: Aimsigh comhaid a #include-�il an comhad seo
       s: Aimsigh an tsiombail C seo
       t: Aimsigh an teaghr�n t�acs seo

    Ainm        Arg        Seoladh   Ioml�n    Sainmh�ni�
   #   l�ne
   n�:
  # Go clib        �    l�ne  i  gcomhad/t�acs
 l�im l�ne  col comhad/t�acs
# %s Stair (is nua� go dt� is sine):

# Barral�nte, c�ipe�ilte focal ar fhocal:

# Liosta maol�in:

# Marcanna comhaid:

# Stair na marcanna i gcomhaid (is nua� ar dt�s):

# Liosta l�imeanna (is nua� i dtosach):

# %sPatr�n Cuardaigh Is D�ana�:
~
# Teaghr�n Ionadach Is D�ana�:
$
# Tabhaill:

# athr�ga comhchoiteanna:

(1) Seans go bhfuil an comhad seo � chur in eagar ag cl�r eile. M� t�,
    b� c�ramach nach bhfuil dh� leagan den chomhad c�anna agat nuair
    a athra�onn t� �. Scoir anois, n� lean ort go faichilleach.

(B'fh�idir gur mian leat an comhad seo a sh�bh�il de r�ir ainm eile

--- Uathorduithe ---
--- Luachanna na roghanna comhchoiteann ---
--- Luachanna na roghanna log�nta ---
--- Roghchl�ir ---
--- Roghanna ---
--- Tabhaill ---
--- Comhartha� ---
--- M�reanna comhr�ire ---
--- M�reanna Comhr�ire Sionc ---
--- C�id teirmin�il ---
--- Eochracha teirmin�il ---
Arg�int� ar eolas do gvim (leagan Athena):

Arg�int� ar eolas do gvim (leagan GTK+):

Arg�int� ar eolas do gvim (leagan Motif):

Arg�int� ar eolas do gvim (leagan neXtaw):

Leagan m�r 
N� f�idir p�opa� a chruth�

N� f�idir blaosc a rith 
N� f�idir an bhlaosc sh a rith

N� f�idir forc a dh�anamh

Ord� cr�ochnaithe

Tiomsaithe 
N�orbh fh�idir comhth�acs sl�nd�la a fh�il le haghaidh 
N�orbh fh�idir comhth�acs sl�nd�la a shocr� le haghaidh 
Paist� sa bhreis: 
Fuarthas comhad babht�la darbh ainm "
Leagan ollmh�r 
M� chuir t� eochair nua chripti�ch�in isteach, ach mura scr�obh t� an t�acschomhad,
M� scr�obh t� an t�acschomhad tar �is duit an eochair chripti�ch��n a athr�, br�igh Enter
Paist� san �ireamh: 
Leagan GUI 32 giot�n MS-Windows
Leagan cons�il 32 giot�n MS-Windows
Leagan GUI 64 giot�n MS-Windows
Leagan cons�il 64 giot�n MS-Windows
Leagan MacOS X (unix)
Leagan MacOS X
Leagan MacOS
B'fh�idir nach raibh aon athr� � dh�anamh, n� t� an comhad babht�la as d�ta.
Tuilleadh eolais: "vim -h"

Leagan coitianta 
Leagan OpenVMS
Leagan beag 
Leagan beag b�deach 
Vim: Fuarthas earr�id � X

RABHADH: Is f�idir gur caillte n� loite an comhad bun�sach

Nuair nach c�s�ogair �, cuir '/' ag tosach na brata� chun � a chur sa ch�s uachtair
B'fh�idir gur mhaith leat an comhad .swp a scriosadh anois.


[beart] ioml�n d�ilte-saor %lu-%lu, in �s�id %lu, buaic %lu

athr�  l�ne  col t�acs
cuir isteach an eochair nua chripti�ch�in.
marc l�ne  col comhad/t�acs
d'aisfhill an bhlaosc 
ag sioncr�n� ar mh�reanna
chun an eochair ch�anna a �s�id don t�acschomhad agus an comhad babht�la                              le haghaidh r�amhshocruithe Vim                                 do dh� mh�d                    d�taithe:           �in�ir:          [n� f�idir oscailt]         [n� f�idir a l�amh]         [n� cos�il le comhad babht�la Vim]         [� leagan 3.0 Vim]         ainm comhaid:        comhad na r�amhshocruithe: "      -- neamhn� --
      N�OS NUA� n� comhad babht�la!
      comhad exrc �s�ideora: "     comhad vimrc �s�ideora: "    M�s amhlaidh, bain �s�id as ":recover" n� "vim -r     M� t� s� seo d�anta cheana agat, scrios an comhad babht�la "    l�ne=%ld  id=%d  ainm=%s    comhad roghchl�ir an ch�rais: "    comhad gvimrc �s�ideora: "   Sa chomhadlann reatha:
   Sa chomhadlann    Ag baint �s�id as ainm socraithe:
   d�taithe:    ainm an �str�omhaire:    comhad vimrc an ch�rais: "  # tos cin clib  (Liostaithe cheana f�in)  dara comhad �s�ideora exrc: "  LEAGAN D�FHABHTAITHE  Gn�ithe san �ireamh (+) n� nach bhfuil (-):
  AR IARRAIDH  IOML�N     L�ON   MEAITS  IS MOILLE   ME�N      AINM               PATR�N  Ag �s�id clib le c�s eile!  rogha th�naisteach do $VIM: "  comhad gvimrc c�rais: " # pid    ainm bunachair                       conair thosaigh
 (Idirbhriste) (AR IARRAIDH) (t� an teaghr�n comhoiri�naithe roimhe seo san �ireamh) (ions�igh) (ions�igh) Scrollaigh (^E/^Y) (l�ne scriosta) (n�l an rogha seo ar f�il) (greamaigh) (ionadaigh) (ionadaigh) Scrollaigh (^E/^Y) (ag rith f�s) (v-ionadaigh) dara comhad vimrc �s�ideora: " tr� comhad vimrc �s�ideora: " < "%.*s" M�ad� Araibis EARR�ID TIONTAITHE Comhl�n� den l�ne ordaithe (^V^N^P) C�ip %d de %d Comhl�n� de na sainmh�nithe (^D^N^P) Comhl�n� focl�ra (^K^N^P) TEIPTHE Comhl�n� de na hainmneacha comhaid (^F^N^P) Eabhrais IONS� Comhl�n� log�nta lorgfhocal (^N^P) Comhl�n� lorgfhocal (^N^P) Comhl�n� Omni (^O^N^P) Comhl�n� Conaire (^N^P) ATHCHUR TIONT� ROGHN� SELECT BLOCK SELECT LINE SP�S/d/j: sc�ile�n/leathanach/l�ne s�os, b/u/k: suas, q: scoir  Moladh litrithe (s^N^P) Comhl�n� clibeanna (^]/^N/^P) Comhl�n� teas�rais (^T^N^P) Comhl�n� saincheaptha (^U^N^P) RADHARCACH BLOC RADHARCACH L�NE RADHARCACH V-IONADAIGH Comhl�n� L�nte Ina Ioml�n (^L^N^P) [Mionathraithe] [a] [w] m�d ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) iarcheangailte n�l ar f�il ar an r�omhaire seo.
 n�l ar f�il leis an leagan seo de Vim.
 f-b do $VIMRUNTIME: " rinneadh dochar d� (m�id an leathanaigh n�os l� n� an �osmh�id).
 ar l�ne %ld; eolas cine�l comhaid
 bristeacha l�ne l�nte roimh an bharr marcanna seanchomhad ar %ld l�ne ar l�ne amh�in n� os a chionn aisfhilleadh
 vim [arg�int�]  le taca�ocht OLE scr�ofa"
   chun an teachtaireacht seo a sheachaint.
"
    chun na hathruithe a fh�il ar ais (f�ach ":help recovery").
" t� s� ann cheana!# Chruthaigh Vim an comhad viminfo seo %s.
# Luach 'encoding' agus an comhad seo � scr�obh
# Is f�idir leat an comhad seo a chur in eagar ach b� c�ramach!

%-5s: %s%*s (�s�id: %s)%3d  %s %s  l�ne %ld%<%f%h%m%=Leathanach %N%d maol�n scriosta%d maol�n folmhaithe%d maol�n b�naithe%d focal d�blach i %s%d comhad le heagr�
%d comhad le cur in eagar f�s.  Scoir mar sin f�in?%d as %d d�anta%ld %s; %s #%ld  %s%ld Col�n; %ld l�ne n�os l�%ld l�ne %sed %d uair%ld l�ne %sed uair amh�in%ld l�ne --%d%%--athra�odh %ld l�neScagadh %ld l�ne%ld l�ne eangaithe Bogadh %ld l�ne%ld l�ne le heang�... %ld l�ne sractha%ld l�ne, %ld rud comhoiri�nach%ld l�ne eile%ld soicind � shin%ld ionada�ocht%lld carachtar%s Uathorduithe do "%s"%s tobscortha%s curtha i leataobh%s l�ne %ld%s ar feitheamh anoisatosa�odh %s%s ag aisfhilleadh #%ld%s ag aisfhilleadh %sT� difear idir luach %s agus an luach i gcomhad .aff eile%s, l�ne %ld%sliosta earr�id� %d as %d; %d earr�id %sviminfo: %s i l�ne: &Cealaigh&Ruaig&Scagaire&Cabhair&OK&OK
&Cealaigh&OK
&Luchtaigh Comhad&Ok&Oscail Inl�ite Amh�in
&Eagraigh mar sin f�in
&Athshl�naigh
S&crios �
&Scoir
&Tobscoir&Oscail Inl�ite Amh�in
&Eagraigh mar sin f�in
&Athshl�naigh
&Scoir
&Tobscoir&Ionadaigh&Cealaigh&T�
&N�l&T�
&N�l
&Cealaigh&T�
&N�l
S�bh�il &Uile
&Dealaigh Uile
&Cealaigh' anaithnid. Is iad seo na teirmin�il insuite:N� f�idir '-nb' a �s�id: n�or cumasa�odh � ag am tiomsaithe
t� an rogha 'dictionary' folamht� an rogha 'history' nialast� an rogha 'readonly' socraithe do "%s".
Ar mhaith leat � a scr�obh mar sin f�in?t� an rogha 'thesaurus' folamh(%d as %d)%s%s: (+%ld do BOM)(2) Thuairte�il seisi�n eagarth�ireachta.
(Idirbhriste) (Neamhbhail�)(NFA) N�ORBH FH�IDIR %s A OSCAILT!+			Tosaigh ag an chomhadchr�och+<lnum>		Tosaigh ar l�ne <lnum>+reverse		N� h�s�id f�s aisiompaithe (fosta: +rv),
is � sin n� rinneadh dochar don chomhad.-               scr�obh t�acs � stdin--			N� cheada�tear ach ainmneacha comhaid i ndiaidh � seo-- Tuilleadh ---- Ag Cuardach...--- Comhaid cheannt�isc --Scriosta----T� an maol�n folamh----cmd <ord�>	Rith <ord�> roimh aon chomhad vimrc a lucht�arg�int --cmd--echo-wid		Taispe�nann gvim aitheantas na fuinneoige ar stdout--literal		N� leathnaigh saor�ga--noplugin		N� luchtaigh breise�in--not-a-term		N� bac le rabhadh faoi ionchur/aschur gan a bheith �n teirmin�al--remote <comhaid>	Cuir <comhaid> in eagar le freastala� Vim m�s f�idir--remote-expr <slonn>	Luach�il <slonn> le freastala� Vim agus taispe�in an toradh--remote-send <eochracha>	Seol <eochracha> chuig freastala� Vim agus scoir--remote-silent <comhaid> Mar an gc�anna, n� d�an gear�n mura bhfuil freastala� ann--remote-tab[-wait][-silent] <comhaid>  Cos�il le --remote ach oscail cluais�n do gach comhad--remote-wait <comhaid>  Mar --remote ach fan leis na comhaid a bheith curtha in eagar--remote-wait-silent <comhaid>  Mar an gc�anna, n� d�an gear�n mura bhfuil freastala� ann--role <r�l>	Socraigh r�l saini�il chun an phr�omhfhuinneog a aithint--serverlist		Taispe�in freastalaithe Vim at� ar f�il agus scoir--servername <ainm>	Seol chuig/T�igh i do fhreastala� Vim <ainm>--socketid <xid>	Oscail Vim isteach i ngiuirl�id GTK eile--startuptime <comhad>	Scr�obh faisn�is maidir le tr�imhse tosaithe i <comhad>--ttyfail		Scoir mura bhfuil ionchur agus aschur ina dteirmin�il--version		Taispe�in eolas faoin leagan agus scoir--windowid <HWND>	Oscail Vim isteach i ngiuirl�id win32 eile-A			tosaigh sa mh�d Araibise-C			Comhoiri�nach le Vi: 'compatible'-D			M�d d�fhabhtaithe-E			M�d Ex feabhsaithe-F			Tosaigh sa mh�d Pheirsise-H			Tosaigh sa mh�d Eabhraise-L			Ar comhbhr� le -r-M			N� cheada�tear athruithe sa t�acs-N			N� comhoiri�naithe le Vi go hioml�n: 'nocompatible'-O[N]		Mar -o, ach roinn go hingearach-P <m�thairchl�r>	Oscail Vim isteach sa mh�thairchl�r-R			M�d inl�ite amh�in (mar "view")-S <seisi�n>		L�igh comhad <seisi�n> i ndiaidh an ch�ad chomhad � l�amh-T <teirmin�al>	Socraigh cine�l teirmin�al-U <gvimrc>		Bain �s�id as <gvimrc> in ionad aon .gvimrc-V[N][fname]		B� foclach [leibh�al N] [log�il teachtaireachta� i fname]-W <aschur>	Scr�obh gach ord� cl�scr�ofa sa chomhad <aschur>-X			N� naisc leis an bhfreastala� X-Z			M�d srianta (mar "rvim")-b			M�d d�n�rtha-background <dath>	Bain �s�id as <dath> don ch�lra (-bg fosta)-boldfont <cl�>	Bain �s�id as <cl�> do chl� trom-borderwidth <leithead>	Socraigh <leithead> na himl�ne (-bw fosta)-c <ord�>		Rith <ord�> i ndiaidh lucht� an ch�ad chomhadarg�int -c-d			M�d diff (mar "vimdiff")-dev <gl�as>		Bain �s�id as <gl�as> do I/A-display <freastala�>	Nasc vim leis an bhfreastala�-X seo-display <sc�ile�n>	Rith vim ar <sc�ile�n>-display <sc�ile�n>	Rith vim ar <sc�ile�n> (fosta: --display)-e			M�d Ex (mar "ex")-f			N� h�s�id newcli chun fuinneog a oscailt-f  n�  --nofork	Tulra: N� d�an forc agus an GUI � thos�-font <cl�>		�s�id <cl�> le haghaidh gn�th-th�acs (fosta: -fn)-foreground <dath>	�s�id <dath> le haghaidh gn�th-th�acs (fosta: -fg)-g			Rith agus �s�id an GUI (mar "gvim")-geometry <geoim>	�s�id <geoim> le haghaidh na c�imseatan tosaigh (fosta: -geom)-h  n�  --help	Taispe�in an chabhair seo agus scoir-i <viminfo>		�s�id <viminfo> in ionad .viminfo-iconic		Tosaigh vim sa mh�d �oslaghdaithe-italicfont <cl�>	�s�id <cl�> le haghaidh t�acs iod�lach-l			M�d Lisp-m			N� cheada�tear athruithe (.i. scr�obh na gcomhad)-menuheight <airde>	Socraigh airde an bharra roghchl�ir a bheith <airde> (fosta: -mh)-n			N� h�s�id comhad babht�la .i. n� h�s�id ach an chuimhne-o[N]		Oscail N fuinneog (r�amhshocr�: ceann do gach comhad)-p[N]		Oscail N leathanach cluais�n� (default: ceann do gach comhad)-q [comhadearr] cuir comhad leis an ch�ad earr�id in eagar-r			Taispe�in comhaid bhabht�la agus scoir-r (le hainm comhaid)	Athshl�naigh � chliseadh-register		Cl�raigh an gvim seo le haghaidh OLE-reverse		�s�id f�s aisiompaithe (fosta: -rv)-s			M�d ci�in (baiscphr�ise�la) (do "ex" amh�in)-s <script>	L�igh orduithe gn�thmh�id �n chomhad <script>-scrollbarwidth <leithead> Socraigh leithead na scrollbharra� a bheith <leithead> (fosta: -sw)-t tag          cuir an comhad ina bhfuil an chlib in eagar-u <vimrc>		�s�id <vimrc> in ionad aon .vimrc-unregister		D�chl�raigh an gvim seo le haghaidh OLE-v			M�d Vi (mar "vi")-w <script>	Iarcheangail gach ord� iontr�ilte leis an gcomhad <script>-x			Cuir comhaid chriptithe in eagar-xrm <acmhainn>	Socraigh an acmhainn sainithe-y			M�d �asca (mar "evim", gan mh�id)Rinneadh neamhshuim ar l�ne `/' i %s l�ne %d: %sRinneadh neamhshuim ar l�ne `/encoding=' i ndiaidh focail i %s l�ne %d: %sBh� maol�n amh�in scriostaBh� maol�n amh�in d�luchtaitheBh� maol�n amh�in b�naithe1 carachtar1 l�ne %s %d uair1 l�ne %s uair amh�in1 l�ne --%d%%--athra�odh l�ne amh�ineanga�odh l�ne amh�in 1 l�ne n�os l�Bogadh l�ne amh�insracadh l�ne amh�in1 l�ne, 1 rud comhoiri�nach1 comhad le cur in eagar f�s.  Scoir mar sin f�in?1 l�ne eile1 ionada�ochtdara comhad gvimrc �s�ideora: "tr� comhad gvimrc �s�ideora: ": Theip ar sheoladh sloinn.
: Theip ar seoladh.
: Theip ar seoladh. Ag baint triail as go log�nta
; meaitse�il <%s>%s%s  %d,  Heics %02x,  Ocht %03o<n� f�idir a oscailt> <folamh>> %d, Heics %04x, Ocht %o> %d, Heics %08x, Ocht %o??? is f�idir go ndearnadh praiseach de l�nte � anseo go ???END??? is f�idir go bhfuil l�nte ions�ite/scriosta � anseo go ???END???BLOC AR IARRAIDH???BLOC FOLAMH???DEIREADH???L�ON M�CHEART NA L�NTE???L�NTE AR IARRAIDH???GO LEOR L�NTE AR IARRAIDHANCHOR_BUF_SIZE r�bheag.Bunachar sonra� nuaBunachar sonra� nua cscope: %sFoirceann in �s�id le haghaidh BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST freisin i %s l�ne %d: %sAinm foircinn r�fhada i %s l�ne %d: %sUileAthshocra�odh gach bunachar sonra� cscopeAims�odh gach comhad ceannt�iscAg an athr� is nua� cheanaAg an athr� is sine cheanaN�l ach leathanach cluais�n� amh�in cheana f�inN�l ach aon fhuinneog amh�in ann cheanaCeangail Comhad ag an DeireadhArg�int ar iarraidh i ndiaidhAg l�neD�an iarracht ar oscailt na scripte ar�s: "Ar ais ag an mbun�itRaon droim ar ais, babht�ilB� i d'�s�ideoir cl�raithe Vim!B�p!Roimh bheart %ldBunL�nte SAL agus SOFO araon i %sBrisphointe i "%s%s" l�ne %ldCoinn�oll briste i %s l�ne %d: %sCOMPOUNDSYLMAX in �s�id gan SYLLABLEAn t-ord� seo � rith leis an bhlaosc: "%s"N� f�idir comhad sealadach a aimsi� le haghaidh tiontaitheCealaighN� f�idir a chruth�: N� f�idir blaosc a rith: N� f�idir $VIMRUNTIME/rgb.txt a oscailtN� f�idir NIL a oscailt:
N� f�idir comhad "%s" a oscailtN� f�idir � a oscailt chun l�amh: "N� f�idir a oscailt le haghaidh an aschuir scripte: "N� f�idir comhadlann a l�amh: "%s"N� f�idir comhad staire a sh�bh�il in aon chomhadlann in 'undodir'Athraigh "%.*s" go:D�n cluais�nCol %s as %s; L�ne %ld as %ld; Focal %lld as %lld; Beart %lld as %lldCol %s as %s; L�ne %ld as %ld; Focal %lld as %lld; Carachtar %lld as %lld; Beart %lld as %lldL�ne na nOrduithe:Tioms�: Tiomsaitheoir: Comhbhr�dh %d as %d n�d; %d (%d%%) f�gthaCrann focal � chomhbhr�...Theip ar thiont� focail i %s l�ne %d: %sTiont� i %s gan taca�ochtTiont� i %s gan taca�ocht: � %s go %sTheip ar thiont� le 'charconvert'N�orbh fh�idir pointeoir� feidhme a ch�iri� i gcomhair an DLL!N�orbh fh�idir comhth�acs sl�nd�la %s a fh�il le haghaidh %s. � bhaint!N�orbh fh�idir vim32.dll a lucht�!N�orbh fh�idir logchomhad sealadach a oscailt le scr�obh ann N�orbh fh�idir logchomhad sealadach a oscailt le scr�obh ann, � thaispe�int ar stderr...N�orbh fh�idir comhth�acs sl�nd�la %s a shocr� le haghaidh %sClib cscope: %s%sTeanga faoi l�thair: "%s"L�ne Dh�fhabhtaitheSeans go bhfaighfidh t� tortha� m�chearta m� chuireann t� COMPOUNDFORBIDFLAG tar �is m�re PFX i %s l�ne %dSeans go bhfaighfidh t� tortha� m�chearta m� chuireann t� COMPOUNDPERMITFLAG tar �is m�re PFX i %s l�ne %dDiff le VimBratach dhifri�il cheangail i mbloc leanta foircinn i %s l�ne %d: %sTreoComhadlannaComhadlann	*.neamhn�
An bhfuil t� cinnte gur mhaith leat � a scr�obhCr�ochnaithe!; d�blach i liosta na n-athr�gS�osRinneadh neamhshuim ar l�ne dh�blach `/encoding=' i %s l�ne %d: %sRinneadh neamhshuim ar l�ne `/regions=' i %s l�ne %d: %sClib dh�blach i %s l�ne %d: %sCarachtar d�blach i MAP i %s l�ne %dAinm r�imse d�bailte: %sFocal d�blach i %s l�ne %d: %sE100: N�l aon mhaol�n eile sa mh�d diffE101: T� n�os m� n� dh� mhaol�n sa mh�d diff, n�l fhios agam c� acu ba ch�ir a �s�idE102: T� maol�n "%s" gan aimsi�E103: N�l maol�n "%s" i m�d diffE104: N� cheada�tear carachtair �al�ch�in i nd�ghrafE105: Ag �s�id :loadkeymap ach n� comhad foinsithe � seoE107: L�ib�n� ar iarraidh: %sE108: N�l a leith�id d'athr�g: "%s"E109: ':' ar iarraidh i ndiaidh '?'E10: Ba ch�ir /, ? n� & a chur i ndiaidh \E110: ')' ar iarraidhE111: `]' ar iarraidhE112: Ainm rogha ar iarraidh: %sE113: Rogha anaithnid: %sE114: Comhartha athfhriotail ar iarraidh: %sE115: Comhartha athfhriotail ar iarraidh: %sE116: Arg�int� neamhbhail� d'fheidhm %sE117: Feidhm anaithnid: %sE118: An iomarca arg�int� d'fheidhm: %sE119: N�l go leor feidhmeanna d'fheidhm: %sE11: Neamhbhail� i bhfuinneog l�ne na n-orduithe; <CR>=rith, CTRL-C=scoirE120: <SID> � �s�id ach gan a bheith i gcomhth�acs scripte: %sE121: Athr�g gan sainmh�ni�: %sE122: T� feidhm %s ann cheana, cuir ! leis an ord� chun � a as�iti�E123: Feidhm gan sainmh�ni�: %sE124: '(' ar iarraidh: %sE125: Arg�int neamhcheadaithe: %sE126: :endfunction ar iarraidhE127: N� f�idir sainmh�ni� nua a dh�anamh ar fheidhm %s: In �s�id cheanaE128: Caithfidh ceannlitir a bheith ar dt�s ainm feidhme, n� "s:": %sE129: T� g� le hainm feidhmeE12: N� cheada�tear ord� � exrc/vimrc sa chomhadlann reatha n� � chuardach clibeE130: Feidhm anaithnid: %sE131: N� f�idir feidhm %s a scriosadh: T� s� in �s�id faoi l�thairE132: Doimhneacht na nglaonna n�os m� n� 'maxfuncdepth'E133: Caithfidh :return a bheith isteach i bhfeidhmE134: Bog l�nte isteach iontu f�inE135: N� cheada�tear d'uathorduithe *scagaire* an maol�n reatha a athr�E136: viminfo: An iomarca earr�id�, ag scipe�il an chuid eile den chomhadE137: N�l an comhad Viminfo inscr�ofa: %sE138: N� f�idir comhad viminfo %s a scr�obh!E139: T� an comhad luchtaithe i maol�n eileE13: T� comhad ann cheana (cuir ! leis an ord� chun forscr�obh)E140: Bain �s�id as ! chun maol�n neamhioml�n a scr�obhE141: N�l aon ainm ar mhaol�n %ldE142: N�or scr�obhadh an comhad: d�chumasaithe leis an rogha 'write'E143: Scrios na huathorduithe maol�n nua %s go tobannE144: arg�int neamhuimhri�il chun :zE145: N� cheada�tear orduithe blaoisce i rvimE146: N� cheada�tear litreacha mar theormharc�ir� ar shloinn ionada�ochtaE147: N� cheada�tear :global athch�rsach le raonE148: Slonn ionada�ochta ar iarraidh � :globalE149: T� br�n orm, n�l aon chabhair do %sE14: DrochsheoladhE150: N� comhadlann �: %sE151: Gan meaitse�il: %sE152: N� f�idir %s a oscailt chun scr�obh annE153: N� f�idir %s a oscailt chun � a l�amhE154: Clib dh�blach "%s" i gcomhad %s/%sE155: Comhartha anaithnid: %sE156: Ainm comhartha ar iarraidhE157: ID neamhbhail� comhartha: %ldE158: Ainm maol�in neamhbhail�: %sE159: Uimhir chomhartha ar iarraidhE15: Slonn neamhbhail�: %sE160: Ord� anaithnid comhartha: %sE161: Brisphointe gan aimsi�: %sE162: Athra�odh maol�n "%s" ach nach bhfuil s� s�bh�ilte � shinE163: N�l ach aon chomhad amh�in le cur in eagarE164: N� f�idir a dhul roimh an ch�ad chomhadE165: N� f�idir a dhul thar an gcomhad deireanachE166: N� f�idir comhad nasctha a oscailt chun scr�obh annE167: n� �s�idtear :scriptencoding ach i gcomhad foinsitheE168: n� �s�idtear :finish ach i gcomhaid foinsitheE169: Ord� r�-athch�rsachE16: Raon neamhbhail�E170: :endfor ar iarraidhE170: :endwhile ar iarraidhE171: :endif ar iarraidhE172: N� cheada�tear ach aon ainm comhaid amh�inE173: %ld comhad le cur in eagarE173: 1 chomhad le heagr� f�sE174: T� an t-ord� ann cheana: cuir ! leis chun s�r�E175: N�l aon aitreab�id sainitheE176: T� l�on na n-arg�int� m�cheartE177: N� cheada�tear an t-�ireamh a bheith tugtha faoi dh�E178: Luach r�amhshocraithe neamhbhail� ar �ireamhE179: t� g� le harg�int i ndiaidh -addrE179: t� g� le harg�int i ndiaidh -completeE17: is comhadlann "%s"E180: Cine�l neamhbhail� seolta: %sE180: Luach ioml�n neamhbhail�: %sE181: Aitreab�id neamhbhail�: %sE182: Ainm neamhbhail� ordaitheE183: Caithfidh ceannlitir a bheith ar dt�s orduithe at� sainithe ag an �s�ideoirE184: N�l a leith�id d'ord� saincheaptha: %sE185: Sc�im dathanna '%s' gan aimsi�E186: N�l aon chomhadlann roimhe seoE187: AnaithnidE188: N� f�idir ionad na fuinneoige a fh�il amach ar an gc�ras seoE189: T� "%s" ann cheana (cuir ! leis an ord� chun s�r�)E18: Carachtair gan choinne i :letE190: N� f�idir "%s" a oscailt chun l�amhE191: Caithfidh an arg�int a bheith litir n� comhartha athfhriotalE192: athch�rs�il :normal r�dhomhainE193: Caithfidh :endfunction a bheith isteach i bhfeidhmE194: N�l aon ainm comhaid a chur in ionad '#'E195: N� f�idir an comhad viminfo a oscailt chun l�amhE196: N� cheada�tear d�ghraif sa leagan seoE197: N� f�idir an teanga a shocr� mar "%s"E198: cmd_pchar os cionn fad an ordaitheE199: Scriosadh an fhuinneog reatha n� an maol�n reathaE19: T� l�ne-uimhir neamhbhail� ag an mharcE200: Rinne uathorduithe *ReadPre praiseach as an chomhadE201: N� cheada�tear d'uathorduithe *ReadPre an maol�n reatha a athr�E202: Comhad dol�ite i ndiaidh an tiontaithe!E203: Scrios n� dh�luchtaigh uathorduithe an maol�n le scr�obhE204: D'athraigh uathord� l�on na l�nte gan choinneE205: Patchmode: n� f�idir an comhad bun�sach a sh�bh�ilE206: patchmode: n� f�idir an comhad bun�sach folamh a theagmh�ilE207: N� f�idir an comhad c�ltaca a scriosadhE208: Earr�id agus "%s" � scr�obhE209: Earr�id agus "%s" � dh�nadhE20: Marc gan socr�E210: Earr�id agus "%s" � l�amhE211: N�l comhad "%s" ar f�il feastaE212: N� f�idir comhad a oscailt chun scr�obh annE213: N� f�idir tiont� (cuir ! leis an ord� chun scr�obh gan tiont�)E214: N� f�idir comhad sealadach a aimsi� chun scr�obh annE215: Carachtar neamhcheadaithe i ndiaidh *: %sE216: N�l a leith�id de theagmhas: %sE216: N�l a leith�id de ghr�pa n� theagmhas: %sE217: N� f�idir uathorduithe a rith i gcomhair teagmhas UILEE218: uathord� neadaithe r�dhomhainE219: { ar iarraidh.E21: N� f�idir athruithe a chur i bhfeidhm, n�l an bhratach 'modifiable' socraitheE220: } ar iarraidh.E222: Cuir leis an maol�n l�iteE223: map�il athch�rsachE224: t� giorr�ch�n comhchoiteann ann cheana le haghaidh %sE225: t� map�il chomhchoiteann ann cheana le haghaidh %sE226: t� giorr�ch�n ann cheana le haghaidh %sE227: t� map�il ann cheana le haghaidh %sE228: makemap: M�d neamhcheadaitheE229: N� f�idir an GUI a chur ag obairE22: scripteanna neadaithe r�dhomhainE230: N� f�idir l�amh � "%s"E231: 'guifontwide' neamhbhail�E232: N� f�idir BalloonEval a chruth� le teachtaireacht agus aisghlaoch araonE233: n� f�idir an sc�ile�n a oscailtE234: Tacar cl� anaithnid: %sE235: Cl�fhoireann anaithnid: %sE236: N� cl� aonleithid � "%s"E237: Theip ar roghn� print�araE238: Earr�id phriont�la: %sE239: T�acs neamhbhail� comhartha: %sE23: N�l aon chomhad malartachE240: N�l aon cheangal leis an bhfreastala� XE241: N� f�idir aon rud a sheoladh chuig %sE243: Arg�int gan taca�ocht: "-%s"; Bain �s�id as an leagan OLE.E244: Ainm neamhcheadaithe ar thacar carachtar "%s" mar ph�irt d'ainm cl� "%s"E244: Ainm neamhcheadaithe ar ch�il�ocht "%s" in ainm cl� "%s"E245: Carachtar neamhcheadaithe '%c' mar ph�irt d'ainm cl� "%s"E246: Scrios uathord� FileChangedShell an maol�nE247: n�l aon fhreastala� cl�raithe leis an ainm "%s"E248: Theip ar sheoladh ord� chuig an sprioc-chl�rE24: N�l a leith�id de ghiorr�ch�n annE250: Cl�nna ar iarraidh le haghaidh na dtacar carachtar i dtacar cl� %s:E251: Air� m�chumtha sa chl�rlann �isc VIM.  Scriosta!E252: Ainm an tacar cl�: %sE253: Ainm an tacar cl�: %sE254: N� f�idir dath %s a dh�ileadhE255: N�orbh fh�idir na sonra� comhartha a l�amh!E256: EARR�ID leis na huathoibre�in HangulE257: cstag: clib gan aimsi�E258: N� f�idir aon rud a sheoladh chuig an chliantE259: n�or aims�odh aon rud comhoiri�nach leis an iarratas cscope %s de %sE25: N� f�idir an GUI a �s�id: N�or cumasa�odh � ag am tiomsaitheE261: nasc cscope %s gan aimsi�E262: earr�id agus an nasc cscope %ld � l�amhE263: T� br�n orm, n�l an t-ord� seo le f�il, n�orbh fh�idir an leabharlann Python a lucht�.E264: Python: Earr�id agus r�ada I/A � dt�s�E265: caithfidh $_ a bheith cine�l Teaghr�inE266: T� br�n orm, n�l an t-ord� seo le f�il, n�orbh fh�idir an leabharlann Ruby a lucht�.E267: "return" gan choinneE268: "next" gan choinneE269: "break" gan choinneE26: N�l taca�ocht Eabhraise ar f�il: N�or cumasa�odh � ag am tiomsaithe
E270: "redo" gan choinneE271: "retry" taobh amuigh de chl�sal tarrth�laE272: eisceacht gan l�imhse�ilE273: st�das anaithnid longjmp %dE277: N� f�idir freagra �n fhreastala� a l�amhE27: N�l taca�ocht Pheirsise ar f�il: N�or cumasa�odh � ag am tiomsaithe
E280: EARR�ID MHARFACH TCL: liosta truaillithe tagartha!? Seol tuairisc fhabht chuig <vim-dev@vim.org> le do thoilE282: N� f�idir l�amh � "%s"E283: N�l aon mharc comhoiri�naithe le "%s"E284: N� f�idir luachanna IC a shocr�E285: Theip ar chruth� comhth�acs ionchuirE286: Theip ar oscailt mhodh ionchuirE287: Rabhadh: N�orbh fh�idir aisghlaoch l�irscriosta a shocr� le IME288: N� thaca�onn an modh ionchuir aon st�lE289: n� thaca�onn an modh ionchuir mo chine�l r�amheagairE28: N�l a leith�id d'ainm gr�pa aibhsithe: %sE293: n� raibh an bloc faoi ghlasE294: Earr�id chuardaigh agus comhad babht�la � l�amhE295: Earr�id sa l�amh i gcomhad babht�laE296: Earr�id chuardaigh agus comhad babht�la � scr�obhE297: Earr�id sa scr�obh i gcomhad babht�laE298: N� bhfuarthas bloc 0?E298: N� bhfuarthas bloc a haon?E298: N� bhfuarthas bloc a d�?E299: N� cheada�tear luach�il Perl i mbosca gainimh gan an mod�l SafeE29: N�l aon t�acs ions�ite go dt� seoE300: T� comhad babht�la ann cheana (ionsa� le naisc shiombalacha?)E301: �ps, cailleadh an comhad babht�la!!!E302: N�orbh fh�idir an comhad babht�la a athainmni�E303: N� f�idir comhad babht�la le haghaidh "%s" a oscailt, n� f�idir athshl�n�E304: ml_upd_block0(): N� bhfuarthas bloc 0??E305: N�or aims�odh comhad babht�la le haghaidh %sE306: N� f�idir %s a oscailtE307: N�l %s cos�il le comhad babht�la VimE308: Rabhadh: Is f�idir gur athra�odh an comhad bun�sachE309: N� f�idir bloc a haon a l�amh � %sE30: N�l aon l�ne na n-orduithe roimhe seoE310: Aitheantas m�cheart ar bhloc a haon (n�l %s ina chomhad .swp?)E311: Idirbhriseadh an t-athshl�n�E312: Braitheadh earr�id� le linn athshl�naithe; f�ach ar na l�nte le ??? ar tosachE313: N� f�idir � a chaomhn�, n�l aon chomhad babht�la annE314: Theip ar chaomhn�E315: ml_get: lnum neamhbhail�: %ldE316: ml_get: l�ne %ld gan aimsi�E317: aitheantas m�cheart ar an mbloc pointeoraE317: aitheantas m�cheart ar an mbloc pointeora 2E317: aitheantas m�cheart ar an mbloc pointeora 3E317: aitheantas m�cheart ar an mbloc pointeora 4E318: An iomarca bloic nuashonraithe?E319: T� br�n orm, n�l an t-ord� ar f�il sa leagan seoE31: N�l a leith�id de mhap�ilE320: L�ne %ld gan aimsi�E321: N� f�idir "%s" a athlucht�E322: l�ne-uimhir as raon: %ld thar dheireadhE323: l�on m�cheart na l�nte i mbloc %ldE324: N� f�idir aschomhad PostScript a oscailtE325: AIREE326: Aims�odh an iomarca comhaid bhabht�laE327: N� fo-roghchl�r � p�irt de chonair roghchl�irE328: N�l an roghchl�r ar f�il sa mh�d seoE329: N�l aon roghchl�r darbh ainm "%s"E32: N�l aon ainm comhaidE330: N� cheada�tear conair roghchl�ir a threora�onn go fo-roghchl�rE331: N� cheada�tear m�reanna roghchl�ir a chur le barra roghchl�ir go d�reachE332: N� cheada�tear deighilteoir mar ph�irt de chonair roghchl�irE333: N� m�r conair roghchl�ir a threor� chun m�r roghchl�irE334: Roghchl�r gan aimsi�: %sE335: N�l an roghchl�r ar f�il sa mh�d %sE336: N� m�r conair roghchl�ir a threor� chun fo-roghchl�rE337: Roghchl�r gan aimsi� - deimhnigh ainmneacha na roghchl�rE338: N�l brabhs�la� comhaid ar f�il sa mh�d cons�ilE339: Slonn r�fhadaE33: N�l aon slonn ionada�ochta roimhe seoE340: T� an l�ne ag �ir� r�fhadaE341: Earr�id inmhe�nach: lalloc(%ld, )E342: Cuimhne �dithe!  (%lu beart � nd�ileadh)E343: Conair neamhbhail�: n� m�r '**[uimhir]' a bheith ag deireadh na conaire, n� le '%s' ina dhiaidh.E344: N� f�idir comhadlann "%s" a aimsi� sa cdpathE345: N� f�idir comhad "%s" a aimsi� sa chonairE346: N�l comhadlann "%s" sa cdpath a thuilleadhE347: N�l comhad "%s" sa chonair a thuilleadhE348: N�l teaghr�n faoin ch�rs�irE349: N�l aitheant�ir faoin ch�rs�irE34: N�l aon ord� roimhe seoE350: N� f�idir filleadh a chruth� leis an 'foldmethod' reathaE351: N� f�idir filleadh a scriosadh leis an 'foldmethod' reathaE352: N� f�idir fillteacha a l�irscriosadh leis an 'foldmethod' reathaE353: Tabhall folamh %sE354: Ainm neamhbhail� tabhaill: '%s'E355: Rogha anaithnid: %sE356: EARR�ID get_varpE357: 'langmap': Carachtar comhoiri�nach ar iarraidh le haghaidh %sE358: 'langmap': Carachtair breise i ndiaidh an idirstad: %sE359: N� f�idir an m�d sc�ile�in a shocr�E35: N�l aon slonn ionada�ochta roimhe seoE360: N� f�idir blaosc a rith le rogha -fE363: �s�ideann an patr�n n�os m� cuimhne n� 'maxmempattern'E364: Theip ar ghlao leabharlainne "%s()"E365: Theip ar phriont�il comhaid PostScriptE367: N�l a leith�id de ghr�pa: "%s"E369: m�r neamhbhail� i %s%%[]E36: N�l sl� a dh�thain annE370: N�orbh fh�idir an leabharlann %s a oscailtE371: N� bhfuarthas an t-ord�E372: An iomarca %%%c i dteaghr�n form�ideE373: %%%c gan choinne i dteaghr�n form�ideE374: ] ar iarraidh i dteaghr�n form�ideE375: %%%c gan taca�ocht i dteaghr�n form�ideE376: %%%c neamhbhail� i r�im�r an teaghr�in form�ideE377: %%%c neamhbhail� i dteaghr�n form�ideE378: N�l aon phatr�n i 'errorformat'E379: Ainm comhadlainne ar iarraidh, n� folamhE37: Gan scr�obh �n athr� is d�ana�E37: T� athruithe ann gan s�bh�il (cuir ! leis an ord� chun s�r�)E380: In �ochtar chruach na mearcheart�ch�nE381: In uachtar chruach na mearcheart�ch�nE382: N� f�idir scr�obh, rogha 'buftype' socraitheE383: Teaghr�n cuardaigh neamhbhail�: %sE384: bhuail an cuardach an BARR gan teaghr�n comhoiri�nach le %sE385: bhuail an cuardach an BUN gan teaghr�n comhoiri�nach le %sE386: Ag s�il le '?' n� '/'  i ndiaidh ';'E387: T� an teaghr�n comhoiri�naithe ar an l�ne reathaE388: Sainmh�ni� gan aimsi�E389: Patr�n gan aimsi�E38: Arg�int nialasachE390: Arg�int neamhcheadaithe: %sE391: N�l a leith�id de mhogall comhr�ire: %sE392: N�l a leith�id de mhogall comhr�ire: %sE393: n� ghlactar le group[t]here anseoE394: N�or aims�odh m�r r�igi�in le haghaidh %sE395: t� arg�int ann nach nglactar leis anseoE397: T� g� le hainm comhaidE398: '=' ar iarraidh: %sE399: N�l go leor arg�int� ann: r�igi�n comhr�ire %sE39: Ag s�il le huimhirE400: N�or sonra�odh mogallE401: Teormharc�ir patr�in gan aimsi�: %sE402: Dramha�l i ndiaidh patr�in: %sE403: comhr�ir sionc: tugadh patr�n lean�int l�ne faoi dh�E404: Arg�int� neamhcheadaithe: %sE405: S�n chothroime ar iarraidh: %sE406: Arg�int fholamh: %sE407: n� cheada�tear %s anseoE408: n� fol�ir %s a thabhairt ar dt�s sa liosta `contains'E409: Ainm anaithnid gr�pa: %sE40: N� f�idir an comhad earr�ide %s a oscailtE410: Fo-ord� neamhbhail� :syntax: %sE411: Gr�pa aibhsithe gan aimsi�: %sE412: Easpa arg�int�: ":highlight link %s"E413: An iomarca arg�int�: ":highlight link %s"E414: t� socruithe ag an ghr�pa, ag d�anamh neamhshuim ar nasc aibhsitheE415: s�n chothroime gan choinne: %sE416: s�n chothroime ar iarraidh: %sE417: arg�int ar iarraidh: %sE418: Luach neamhcheadaithe: %sE419: Dath anaithnid an ch�lraE41: Cuimhne �dithe!E420: Dath anaithnid an tulraE421: N�or aithn�odh ainm/uimhir an datha: %sE422: c�d teirmin�il r�fhada: %sE423: Arg�int neamhcheadaithe: %sE424: An iomarca tr�ithe aibhsithe in �s�idE425: N� f�idir a dhul roimh an ch�ad chlib chomhoiri�nachE426: clib gan aimsi�: %sE427: T� aon chlib chomhoiri�nach amh�inE428: N� f�idir a dhul thar an chlib chomhoiri�nach deireanachE429: N�l a leith�id de chomhad "%s"E42: N�l Aon Earr�id AnnE430: Teascadh conair an chomhaid clibeanna le haghaidh %s
E431: Earr�id fhorm�ide i gcomhad clibeanna "%s"E432: Comhad clibeanna gan s�rt�il: %sE433: N�l aon chomhad clibeannaE434: Patr�n clibe gan aimsi�E435: Clib gan aimsi�, ag tabhairt buille faoi thuairim!E436: N�l aon iontr�il "%s" sa termcapE437: t� g� leis an chumas teirmin�il "cm"E438: u_undo: l�ne-uimhreacha m�cheartaE439: t� an liosta cealaithe truaillitheE43: Teaghr�n cuardaigh loiteE440: l�ne chealaithe ar iarraidhE441: N�l aon fhuinneog r�amhamhairc annE442: N� f�idir a scoilteadh topleft agus botright san am c�annaE443: N� f�idir rothl� nuair at� fuinneog eile scoilteE444: N� f�idir an fhuinneog dheiridh a dh�nadhE445: T� athruithe ann san fhuinneog eileE446: N�l ainm comhaid faoin ch�rs�irE447: N�l aon fh�il ar chomhad "%s" sa chonairE448: N� f�idir feidhm %s leabharlainne a lucht�E449: Fuarthas slonn neamhbhail�E44: Cl�r na sloinn ionada�ochta truaillitheE455: Earr�id le linn scr�obh chuig aschomhad PostScriptE456: Comhad acmhainne PostScript "%s.ps" gan aimsi�E456: Comhad acmhainne PostScript "cidfont.ps" gan aimsi�E456: Comhad acmhainne PostScript "prolog.ps" gan aimsi�E456: N� f�idir an comhad "%s" a oscailtE457: N� f�idir comhad acmhainne PostScript "%s" a l�amhE459: N� f�idir a fhilleadh ar an chomhadlann roimhe seoE45: t� an rogha 'readonly' socraithe (cuir ! leis an ord� chun s�r�)E460: Chaillf� an forc acmhainne (cuir ! leis an ord� chun s�r�)E461: Ainm athr�ige neamhcheadaithe: %sE462: N� f�idir "%s" a ullmh� le haghaidh athluchtaitheE463: R�igi�n cosanta, n� f�idir � a athr�E464: �s�id athbhr�och d'ord� saincheapthaE465: n� fol�ir dh� arg�int uimhri�la le :winsizeE466: dh� arg�int uimhri�la de dh�th le :winposE467: T� g� le harg�int fheidhme le comhl�n� saincheapthaE468: N� cheada�tear arg�int chomhl�naithe ach le comhl�n� saincheapthaE469: bratach neamhbhail� cscopequickfix %c le haghaidh %cE46: N� f�idir athr�g inl�ite amh�in "%s" a athr�E470: Ord� tobscorthaE471: T� g� le harg�intE472: Theip ar ord�E473: Earr�id inmhe�nachE474: Arg�int neamhbhail�E475: Arg�int neamhbhail�: %sE476: Ord� neamhbhail�E477: N� cheada�tear !E478: N� t�igh i scaoll!E479: N�l aon rud comhoiri�nach annE47: Earr�id agus comhad earr�ide � l�amhE480: N�l aon rud comhoiri�nach ann: %sE481: N� cheada�tear raonE482: N� f�idir comhad %s a chruth�E483: N�l aon fh�il ar ainm comhaid sealadachE484: N� f�idir comhad %s a oscailtE485: N� f�idir comhad %s a l�amhE486: Patr�n gan aimsi�: %sE487: Arg�int dheimhneach de dh�thE488: Carachtair chun deiridhE48: N� cheada�tear � seo i mbosca gainimhE490: N�or aims�odh aon fhilleadhE492: N�l ina ord� eagarth�raE493: Raon droim ar aisE494: Bain �s�id as w n� w>>E495: n�l aon ainm comhaid uathordaithe le cur in ionad "<afile>"E496: n�l aon uimhir mhaol�n uathordaithe le cur in ionad "<abuf>"E497: n�l aon ainm meaitse�la uathordaithe le cur in ionad "<amatch>"E498: n�l aon ainm comhaid :source le cur in ionad "<sfile>"E499: Ainm comhaid folamh le haghaidh '%' n� '#', oibreoidh s� le ":p:h" amh�inE49: M�id neamhbhail� scrollaitheE500: Luach�iltear � seo mar theaghr�n folamhE501: Ag an chomhadchr�ochE505: is inl�ite amh�in � "%s" (cuir ! leis an ord� chun s�r�)E505: T� %s inl�ite amh�in (cuir ! leis chun s�r�)E506: N� f�idir scr�obh a dh�anamh sa chomhad c�ltaca (�s�id ! chun s�r�)E507: Earr�id agus comhad c�ltaca � dh�nadh (cuir ! leis an ord� chun s�r�)E508: N� f�idir an comhad c�ltaca a l�amh (cuir ! leis an ord� chun s�r�)E509: N� f�idir comhad c�ltaca a chruth� (cuir ! leis an ord� chun s�r�)E50: an iomarca \z(E510: N� f�idir comhad c�ltaca a chruth� (cuir ! leis an ord� chun s�r�)E511: T� netbeans ceangailte cheanaE512: Theip ar d�nadhE513: earr�id le linn scr�obh, theip ar thiont� (�s�id 'fenc' folamh chun s�r�)E513: earr�id le linn scr�ofa, theip ar thiont� ar l�ne %ld (�s�id 'fenc' folamh le s�r�)E514: earr�id le linn scr�ofa (an bhfuil an c�ras comhaid l�n?)E515: N� raibh aon mhaol�n d�luchtaitheE516: N� raibh aon mhaol�n scriostaE517: N� raibh aon mhaol�n b�naitheE518: Rogha anaithnidE519: N�l an rogha seo ar f�ilE51: an iomarca %s(E520: N� cheadaithe i m�dl�neE521: T� g� le huimhir i ndiaidh =E521: Uimhir de dh�th: &%s = '%s'E522: Gan aimsi� sa termcapE523: N� cheada�tear � anseoE524: Idirstad ar iarraidhE525: Teaghr�n folamhE526: Uimhir ar iarraidh i ndiaidh <%s>E527: Cam�g ar iarraidhE528: Caithfidh luach ' a shonr�E529: N� f�idir 'term' a shocr� mar theaghr�n folamhE52: \z( corrE530: N� f�idir 'term' a athr� sa GUIE531: �s�id ":gui" chun an GUI a chur ag obairE533: n� f�idir cl� leathan a roghn�E534: Cl� leathan neamhbhail�E535: Carachtar neamhbhail� i ndiaidh <%c>E536: t� g� le cam�gE537: n� m�r %s a bheith i 'commentstring', is � sin n� n� m�r d� a bheith folamhE538: Gan taca�ocht luicheE539: Carachtar neamhcheadaithe <%s>E53: %s%%( corrE540: Seicheamh gan d�nadhE541: an iomarca m�reannaE542: gr�pa� neamhchothromaitheE543: N� c�dleathanach bail� �E544: Comhad eochairmhap�la gan aimsi�E545: Idirstad ar iarraidhE546: M�d neamhcheadaitheE547: Cruth neamhcheadaithe luicheE548: ag s�il le digitE549: C�atad�n neamhcheadaitheE54: %s( corrE550: Idirstad ar iarraidhE551: Comhph�irt neamhcheadaitheE552: ag s�il le digitE553: N�l aon mh�r eileE554: Earr�id chomhr�ire i %s{...}E555: in �ochtar na cruaiche clibeannaE556: in uachtar na cruaiche clibeannaE557: N� f�idir an comhad termcap a oscailtE558: Iontr�il teirmin�il gan aimsi� sa terminfoE559: Iontr�il teirmin�il gan aimsi� sa termcapE55: %s) corrE560: �s�id: cs[cope] %sE561: cine�l anaithnid cuardaigh cscopeE562: �s�id: cstag <ident>E563: earr�id statE563: earr�id stat(%s): %dE564: N�l %s ina comhadlann n� bunachar sonra� cscope bail�E566: N�orbh fh�idir p�opa� cscope a chruth�E567: n�l aon nasc cscope annE568: n�or cuireadh bunachar sonra� d�blach cscope leisE570: earr�id mharfach i cs_manage_matchesE571: T� br�n orm, n�l an t-ord� seo le f�il: n�orbh fh�idir an leabharlann Tcl a lucht�.E572: c�d scortha %dE573: Aitheantas neamhbhail� freastala� in �s�id: %sE574: Cine�l anaithnid tabhaill %dE579: :if neadaithe r�dhomhainE580: :endif gan :ifE581: :else gan :ifE582: :elseif gan :ifE583: :else iomad�laE584: :elseif i ndiaidh :elseE585: :while/:for neadaithe r�dhomhainE586: :continue gan :while n� :forE587: :break gan :while n� :forE588: :endfor gan :forE588: :endwhile gan :whileE589: is ionann iad 'backupext' agus 'patchmode'E590: T� fuinneog r�amhamhairc ann cheanaE591: n� cheada�tear 'winheight' a bheith n�os l� n� 'winminheight'E592: n� cheada�tear 'winwidth' a bheith n�os l� n� 'winminwidth'E593: T� g� le %d l�ne ar a laghadE594: T� g� le %d col�n ar a laghadE595: t� carachtar neamhghrafach n� leathan annE596: Cl�(nna) neamhbhail�E597: n� f�idir tacar cl� a roghn�E598: Tacar cl� neamhbhail�E599: Luach neamhbhail� ar 'imactivatekey'E59: carachtar neamhbhail� i ndiaidh %s@E600: :endtry ar iarraidhE601: :try neadaithe r�dhomhainE602: :endtry gan :tryE603: :catch gan :tryE604: :catch i ndiaidh :finallyE605: Eisceacht gan l�imhse�il: %sE606: :finally gan :tryE607: :finally iomad�laE608: N� f�idir eisceachta� a :throw le r�im�r 'Vim'E609: Earr�id cscope: %sE60: An iomarca %s{...} coimpl�ascachE612: An iomarca comhartha� sainmh�nitheE613: Cl�fhoireann anaithnid print�ara: %sE614: vim_SelFile: n� f�idir dul ar ais go dt� an chomhadlann reathaE615: vim_SelFile: n�l an chomhadlann reatha ar f�ilE616: vim_SelFile: n�l aon fh�il ar an chl�fhoireann %sE617: N� f�idir � a athr� sa GUI GTK+ 2E618: N�l comhad "%s" ina chomhad acmhainne PostScriptE619: T� "%s" ina chomhad acmhainne PostScript gan tac�E61: %s* neadaitheE620: N� f�idir an t-ionch�d� priont�la "%s" a thiont�E621: T� an leagan m�cheart ar an gcomhad acmhainne "%s"E622: N�orbh fh�idir forc a dh�anamh le haghaidh cscopeE623: N�orbh fh�idir pr�iseas cscope a sceitheadhE624: N� f�idir an comhad "%s" a oscailtE625: n� f�idir bunachar sonra� cscope a oscailt: %sE626: n� f�idir eolas a fh�il faoin bhunachar sonra� cscopeE62: %s%c neadaitheE630: %s(): scr�obh gan ceangal a bheith annE631: %s(): theip ar scr�obhE63: �s�id neamhbhail� de \_E64: n�l aon rud roimh %s%cE655: An iomarca naisc shiombalacha (ciogal?)E658: Cailleadh nasc NetBeans le haghaidh maol�in %ldE659: N� f�idir Python a rith go hathch�rsachE65: C�ltagairt neamhbhail�E661: T� br�n orm, n� aon chabhair '%s' do %sE662: Ag tosach liosta na n-athruitheE663: Ag deireadh liosta na n-athruitheE664: t� liosta na n-athruithe folamhE665: N� f�idir an GUI a chur ag obair, n�l aon chl�fhoireann bhail� annE666: n� ghlactar leis an tiomsaitheoir: %sE667: Theip ar fsyncE668: M�d m�cheart rochtana ar an chomhad eolas naisc NetBeans: "%s"E669: Carachtar neamhghrafach in ainm gr�paE66: n� cheada�tear \z( anseoE670: Ionch�duithe �ags�la do chomhaid chabhracha i dteanga aonair: %sE671: N� f�idir teideal na fuinneoige "%s" a aimsi�E672: N� f�idir fuinneog a oscailt isteach i bhfeidhmchl�r MDIE673: Ionch�d� agus tacar carachtar ilbhirt neamh-chomhoiri�nach.E674: n� cheada�tear printmbcharset a bheith folamh le hionch�d� ilbhirt.E675: N�or r�amhshocra�odh cl� le haghaidh priont�la ilbhirt.E676: N�l aon uathord� comhoiri�naithe le haghaidh maol�in acwriteE677: Earr�id agus comhad sealadach � scr�obhE678: Carachtar neamhbhail� i ndiaidh %s%%[dxouU]E679: l�b athch�rsach agus syncolor.vim � lucht�E67: n� cheada�tear \z1 et al. anseoE680: <maol�n=%d>: uimhir neamhbhail� mhaol�in E681: N�l an maol�n luchtaitheE682: Patr�n n� teormharc�ir neamhbhail� cuardaighE683: Ainm comhaid ar iarraidh, n� patr�n neamhbhail�E684: inn�acs liosta as raon: %ldE685: Earr�id inmhe�nach: %sE686: Caithfidh arg�int de %s a bheith ina LiostaE687: N�os l� spriocanna n� m�reanna LiostaE688: N�os m� spriocanna n� m�reanna LiostaE689: Is f�idir Liosta n� Focl�ir amh�in a inn�acs�E68: Carachtar neamhbhail� i ndiaidh \zE690: "in" ar iarraidh i ndiaidh :forE691: Is f�idir Liosta a chur i gcompar�id le Liosta eile amh�inE692: Oibr�ocht neamhbhail� ar Liosta�E694: Oibr�ocht neamhbhail� ar FuncrefE695: N� f�idir Funcref a inn�acs�E696: Cam�g ar iarraidh i Liosta: %sE697: ']' ar iarraidh ag deireadh liosta: %sE698: athr�g neadaithe r�dhomhain chun � a ch�ipe�ilE699: An iomarca arg�int�E69: ] ar iarraidh i ndiaidh %s%%[E700: Feidhm anaithnid: %sE701: Cine�l neamhbhail� le haghaidh len()E702: Theip ar fheidhm chompar�ide le linn s�rt�laE703: Funcref � �s�id mar UimhirE704: Caithfidh ceannlitir a bheith ar dt�s ainm Funcref: %sE705: Tagann ainm athr�ige salach ar fheidhm at� ann cheana: %sE707: Tagann ainm na feidhme salach ar athr�g: %sE708: caithfidh [:] a bheith ar deireadhE709: n� fol�ir Liosta a thabhairt le [:]E70: %s%%[] folamhE710: T� n�os m� m�reanna ag an Liosta n� an spriocE711: N�l go leor m�reanna ag an LiostaE712: Caithfidh arg�int de %s a bheith ina Liosta n� Focl�irE713: N� f�idir eochair fholamh a �s�id le Focl�irE714: T� g� le liostaE715: T� g� le focl�irE716: N�l an eochair seo san Fhocl�ir: %sE717: T� an iontr�il focl�ra seo ann cheanaE718: T� g� le FuncrefE719: N� f�idir [:] a �s�id le focl�irE71: Carachtar neamhbhail� i ndiaidh %s%%E720: Idirstad ar iarraidh i bhFocl�ir: %sE721: Eochair dh�blach i bhFocl�ir: "%s"E722: Cam�g ar iarraidh i bhFocl�ir: %sE723: '}' ar iarraidh ag deireadh focl�ra: %sE724: athr�g neadaithe r�dhomhain chun � a thaispe�intE725: Feidhm 'dict' � ghlao gan Focl�ir: %sE726: Is nialas � an ch�imE727: Tosach thar dheireadhE728: Focl�ir � �s�id mar UimhirE729: Funcref � �s�id mar Theaghr�nE72: Earr�id agus comhad babht�la � dh�nadhE730: Liosta � �s�id mar Theaghr�nE731: Focl�ir � �s�id mar Theaghr�nE732: :endfor � �s�id le :whileE733: :endwhile � �s�id le :forE734: Cine�l m�cheart athr�ige le haghaidh %s=E735: Is f�idir Focl�ir a chur i gcompar�id le Focl�ir eile amh�inE736: Oibr�ocht neamhbhail� ar Fhocl�irE737: T� eochair ann cheana: %sE738: N� f�idir athr�ga do %s a thaispe�intE739: N� f�idir comhadlann a chruth�: %sE73: t� cruach na gclibeanna folamhE740: An iomarca arg�int� d'fheidhm %sE741: T� an luach faoi ghlas: %sE742: N� f�idir an luach de %s a athr�E743: athr�g neadaithe r�dhomhain chun � a (d�)ghlas�ilE744: N� cheada�onn NetBeans aon athr� i gcomhaid inl�ite amh�inE745: Liosta � �s�id mar UimhirE746: N�l ainm na feidhme comhoiri�nach le hainm comhaid na scripte: %sE747: N� f�idir an chomhadlann a athr�, mionathra�odh an maol�n (cuir ! leis an ord� chun s�r�)E748: N�l aon tabhall �s�idte roimhe seoE749: maol�n folamhE74: Ord� r�chastaE750: �s�id ":profile start {ainm}" ar dt�sE751: N� cheada�tear ainm r�igi�in in ainm an aschomhaidE752: N�l aon ionada� litrithe roimhe seoE753: Gan aimsi�: %sE754: N� thaca�tear le n�os m� n� 8 r�igi�nE755: R�igi�n neamhbhail� i %sE756: N�l seice�il litrithe cumasaitheE757: N�l s� cos�il le comhad litritheE758: Comhad teasctha litritheE75: Ainm r�fhadaE760: L�on na bhfocal ar iarraidh i %sE761: Earr�id fhorm�ide i gcomhad foircinn FOL, LOW, n� UPPE762: Carachtar i FOL, LOW n� UPP as raonE763: T� carachtair dhifri�la fhocail sna comhaid litritheE764: Rogha '%s' gan socr�E765: n�l %ld iontr�il i 'spellfile'E766: Easpa arg�int� d'fheidhm printf()E767: An iomarca arg�int� d'fheidhm printf()E768: T� comhad babht�la ann cheana: %s (�s�id :silent! chun s�r�)E769: ] ar iarraidh i ndiaidh %s[E76: an iomarca [E770: Rann�n gan taca�ocht i gcomhad litritheE771: Seanchomhad litrithe, t� g� lena nuashonr�E772: Oibr�onn an comhad litrithe le leagan n�os nua� de VimE773: Ciogal i naisc shiombalacha le haghaidh "%s"E774: 'operatorfunc' folamhE775: N�l an ghn� Eval le f�ilE776: Gan liosta su�omhE777: Bh�othas ag s�il le Teaghr�n n� LiostaE778: N�l s� cos�il le comhad .sug: %sE779: Seanchomhad .sug, t� g� lena nuashonr�: %sE77: An iomarca ainmneacha comhaidE780: Oibr�onn an comhad .sug le leagan n�os nua� de Vim: %sE781: N�l an comhad .sug comhoiri�nach leis an gcomhad .spl: %sE782: earr�id agus comhad .sug � l�amh: %sE783: carachtar d�blach in iontr�il MAPE784: N� f�idir an leathanach cluais�n� deiridh a dh�nadhE785: is f�idir complete() a �s�id sa mh�d Ions�ite amh�inE786: N� cheada�tear an raonE787: Athra�odh an maol�n gan choinneE788: N�l cead agat maol�n eile a chur in eagar anoisE789: ']' ar iarraidh: %sE78: Marc anaithnidE790: n� cheada�tear "undojoin" tar �is "undo"E791: Iontr�il fholamh eochairmhap�laE792: Ainm folamh ar an roghchl�rE793: N� f�idir aon mhaol�n eile a athr� sa mh�d diffE794: N� f�idir athr�g a shocr� sa bhosca gainimh: "%s"E795: N� f�idir athr�g %s a scriosadhE797: Scrios uathord� SpellFileMissing an maol�nE798: Aitheantas in �irithe do ":match": %ldE799: Aitheantas neamhbhail�: %ld (n� m�r d� a bheith >= 1)E79: N� f�idir saor�ga a leathn�E800: N�l taca�ocht Araibise ar f�il: N�or cumasa�odh � ag am tiomsaithe
E801: Aitheantas in �s�id cheana: %ldE802: Aitheantas neamhbhail�: %ld (n� m�r d� a bheith >= 1)E803: Aitheantas gan aimsi�: %ldE804: N� f�idir '%' a �s�id le Sn�mhphointeE805: Sn�mhphointe � �s�id mar UimhirE806: Sn�mhphointe � �s�id mar Theaghr�nE807: Bh�othas ag s�il le harg�int Sn�mhphointe d'fheidhm printf()E808: Uimhir n� Sn�mhphointe de dh�thE809: n�l #< ar f�il gan ghn� +evalE80: Earr�id agus � scr�obhE810: N� f�idir comhaid shealadacha a l�amh n� a scr�obhE811: N�l cead agat faisn�is an mhaol�in a athr� anoisE812: Bh� maol�n n� ainm maol�in athraithe ag orduithe uathoibr�ochaE813: N� f�idir fuinneog autocmd a dh�nadhE814: N� f�idir an fhuinneog a dh�nadh, n� bheadh ach fuinneog autocmd f�gthaE815: T� br�n orm, bh� an t-ord� seo d�chumasaithe, n�orbh fh�idir leabharlanna MzScheme a lucht�.E816: N� f�idir aschur � 'patch' a l�amhE817: �s�id mh�cheart Blowfish m�rcheannach/caolcheannachE818: Theip ar th�st�il sha256E819: Theip ar th�st�il BlowfishE81: <SID> � �s�id nach i gcomhth�acs scripteE820: sizeof(uint32_t) != 4E821: Comhad criptithe le modh anaithnidE822: N� f�idir an comhad staire a oscailt lena l�amh: %sE823: N� comhad staire �: %sE824: Comhad staire neamh-chomhoiri�nach: %sE825: Comhad staire truaillithe (%s): %sE826: N�orbh fh�idir an comhad staire a dh�chripti�: %sE827: T� an comhad staire criptithe: %sE828: N� f�idir comhad staire a oscailt le scr�obh ann: %sE829: earr�id le linn scr�ofa i gcomhad staire: %sE82: N� f�idir maol�n a dh�ileadh, ag scor...E830: M�r staire %ld gan aimsi�E831: cuireadh glaoch ar bf_key_init() le focal faire folamhE832: Comhad neamhchriptithe le comhad staire criptithe: %sE833: t� %s criptithe agus n� thaca�onn an leagan seo de Vim le cripti�E834: Tagann s� salach ar luach de 'listchars'E835: Tagann s� salach ar luach de 'fillchars'E836: N� f�idir leis an leagan seo de Vim :python a rith tar �is :py3 a �s�idE837: N� f�idir leis an leagan seo de Vim :py3 a rith tar �is :python a �s�idE838: N� thaca�tear le netbeans sa GUI seoE839: D'athraigh an fheidhm chomhl�naithe an fhuinneogE83: N� f�idir maol�n a dh�ileadh, ag �s�id cinn eile...E840: Scrios an fheidhm chomhl�naithe roinnt t�acsE841: Ainm in �irithe, n� f�idir � a chur ar ord� sainithe ag an �s�ideoirE842: n�l aon l�ne-uimhir ar f�il le haghaidh "<slnum>"E843: Earr�id agus cripti� an chomhaid bhabht�la � nuashonr�E844: luach neamhbhail� ccharE845: Easpa cuimhne, beidh an liosta focal neamhioml�nE846: C�d eochrach gan socr�E847: An iomarca comhad comhr�ire in �s�idE848: An iomarca mogall comhr�ireE849: An iomarca gr�pa� aibhsithe agus comhr�ireE84: N�or aims�odh maol�n mionathraitheE850: Ainm neamhbhail� tabhaillE851: N�orbh fh�idir pr�iseas nua a chruth� don GUIE852: Theip ar an macphr�iseas an GUI a thos�E853: Arg�int dh�bailte: %sE854: conair r�fhada le comhl�n�E855: Tobscoireadh an t-ord� mar gheall ar uathorduitheE858: N� bhfuarthas r�ad bail� python ar ais � EvalE859: N�orbh fh�idir luach vim a dh�anamh as an r�ad pythonE85: N�l aon mhaol�n liostaithe annE862: N� f�idir g: a �s�id anseoE864: N� cheada�tear ach 0, 1, n� 2 tar �is \%#=. �s�idfear an t-inneall uathoibr�och E865: (NFA) Th�ngthas ar dheireadh an tsloinn gan s�il leisE866: (slonn NFA) %c as �itE867: (NFA) Oibreoir anaithnid '\%%%c'E867: (NFA) Oibreoir anaithnid '\z%c'E868: Earr�id agus NFA � th�g�il le haicme coibh�ise!E869: (NFA) Oibreoir anaithnid '\@%c'E86: N�l a leith�id de mhaol�n %ldE870: (slonn NFA) Earr�id agus teorainneacha athdh�anta � l�amhE871: (slonn NFA) N� cheada�tear ilchodach tar �is ilchodach!E872: (slonn NFA) An iomarca '('E873: (slonn NFA) cr�ochn� neamhoiri�nachE874: (NFA) N�orbh fh�idir an chruach a phlobadh!E875: (slonn NFA) (Le linn tiontaithe � postfix go NFA), an iomarca staideanna f�gtha ar an gcruachE876: (slonn NFA) N�l go leor sp�is ann don NFA ioml�n E877: (slonn NFA) Aicme carachtar neamhbhail�: %ldE878: (NFA) N�orbh fh�idir cuimhne a leithdh�ileadh leis an gcraobh a thrasna�l!E879: (slonn NFA) An iomarca \z(E87: N� f�idir a dhul thar an maol�n deireanachE881: Athra�odh l�on na l�nte gan s�il leisE882: Theip ar fheidhm chompar�ide UniqE883: n� cheada�tear n�os m� n� l�ne amh�in i bpatr�n cuardaigh n� sa slonntabhallE884: N� cheada�tear idirstad in ainm feidhme: %sE885: N� f�idir an comhartha a athr�: %sE886: N� f�idir ainm %s a chur ar an gcomhad viminfo!E887: �r leithsc�al, n�l an t-ord� seo le f�il, n�orbh fh�idir an mod�l Python a lucht�.E888: (slonn NFA) n� f�idir %s a athdh�anamhE88: N� f�idir a dhul roimh an ch�ad mhaol�nE890: carachtar tar �is ']': %s]%sE891: Funcref � �s�id mar Shn�mhphointeE892: Teaghr�n � �s�id mar Shn�mhphointeE893: Liosta � �s�id mar Shn�mhphointeE894: Focl�ir � �s�id mar Shn�mhphointeE895: �r leithsc�al, t� an t-ord� seo d�chumasaithe; n�orbh fh�idir mod�l racket/base MzScheme a lucht�.E898: socket() in channel_open()E89: Athra�odh maol�n %ld ach nach bhfuil s� s�bh�ilte � shin (cuir ! leis an ord� chun s�r�)E901: gethostbyname() in channel_open()E902: N� f�idir ceangal leis an bportE903: fuarthas ord� le harg�int nach bhfuil ina theaghr�nE904: n� m�r don arg�int dheireanach ar expr/call a bheith ina huimhirE904: Caithfidh an tr� arg�int a bheith ina liostaE905: fuarthas ord� anaithnid: %sE906: n� cain�al oscailte �E907: Luach speisialta � �s�id mar Shn�mhphointeE908: luach neamhbhail� � �s�id mar Theaghr�nE909: N� f�idir athr�g speisialta a inn�acs�E90: N� f�idir an maol�n deireanach a dh�lucht�E910: Jab � �s�id mar UimhirE911: Jab � �s�id mar Shn�mhphointeE912: n� f�idir ch_evalexpr()/ch_sendexpr() a �s�id le cain�al raw n� nlE913: Cain�al � �s�id mar UimhirE914: Cain�al � �s�id mar Shn�mhphointeE915: caithfear in_buf n� in_name a shocr� chun maol�n in_io a �s�idE916: n� jab bail� �E917: N� f�idir aisghlaoch a �s�id le %s()E918: n� m�r an maol�n a lucht�: %sE919: Comhadlann gan aimsi� in '%s': "%s"E91: rogha 'shell' folamhE920: caithfear _name a shocr� chun comhad _io a �s�idE921: Arg�int neamhbhail� ar aisghlaochE922: bh�othas ag s�il le focl�irE923: Caithfidh an dara harg�int de function() a bheith ina liosta n� ina focl�irE924: D�nadh an fhuinneog reathaE925: Athra�odh an mearcheart�ch�n reathaE926: Athra�odh an liosta su�omh reathaE927: Gn�omh neamhbhail�: '%s'E928: Teaghr�n de dh�thE929: An iomarca comhad sealadach viminfo, mar shampla %s!E92: Maol�n %ld gan aimsi�E930: N� f�idir :redir a �s�id laistigh de execute()E931: N� f�idir an maol�n a chl�r�E932: N� m�r don chlabhs�r a bheith ag an mbarrleibh�al: %sE933: Scriosadh an fheidhm: %sE934: N� f�idir l�im go maol�n gan ainmE935: uimhir fho-mheaitse�la neamhbhail�: %dE936: N� f�idir an gr�pa reatha a scriosadhE937: Iarracht ar mhaol�n in �s�id a scriosadhE938: Eochair dh�blach in JSON: "%s"E939: Uimhir dheimhneach de dh�thE93: N�os m� n� teaghr�n amh�in comhoiri�naithe le %sE940: N� f�idir athr�g %s a ghlas�il n� a dh�ghlas�ilE941: tosa�odh freastala� cheanaE942: n�l an ghn� +clientserver ar f�ilE943: Caithfear t�bla na n-orduithe a nuashonr�; rith 'make cmdidxs'E944: Raon aisiompaithe in aicme carachtarE945: Raon r�mh�r in aicme carachtarE94: N�l aon mhaol�n comhoiri�naithe le %sE95: T� maol�n ann leis an ainm seo cheanaE96: N� f�idir diff a dh�anamh ar n�os m� n� %ld maol�nE97: N� f�idir diffeanna a chruth�E98: N� f�idir aschur � 'diff' a l�amhE99: N�l an maol�n reatha sa mh�d diffEARR�ID: Cuir Comhad in EagarCuir comhad in eagar i bhfuinneog nuaCuir in Eagar le &VimCuir in eagar le Vimeanna io&mad�laCuir in Eagar le Vim beo - Cuir in eagar le &Vim aonairCuir an comhad roghnaithe in eagar le VimIonch�d�:Cr�och fheidhmeCr�och chomhaid foinsitheIontr�il eochair chripti�ch�in: Iontr�il uimhir an chomhaid babht�la le h�s�id (0 = scoir): Iontr�il an eochair ar�s: M�d d�fhabhtaithe � thos�.  Cl�scr�obh "cont" chun lean�int.M�d Ex � thos�.  Cl�scr�obh "visual" le haghaidh an ghn�thmh�d.Earr�idEarr�id agus idirbhriseadhEarr�id agus pr�iseas � chruth�: Deimhnigh go bhfuil gvim i do chonair!Earr�id agus %s � phr�ise�il:Comhad earr�ideCuimhne measta a bheith in �s�id le linn rite: %d beartEisceachtL�imhse�ladh eisceacht: %sEisceacht curtha i leataobh: %sEisceacht curtha i gcr�ch: %sGineadh eisceacht: %s%s � rithBh�othas ag s�il le l�on na MAP i %s l�ne %dBh�othas ag s�il le l�on na REP(SAL) i %s l�ne %dBh�othas ag s�il le `Y' n� `N' i %s l�ne %d: %sSloinn:Fo-mheaitse�il sheachtrach:
FLAG i ndiaidh bratacha in �s�id i %s l�ne %d: %sN�orbh fh�idir path_hook a shocr�: n� liosta � sys.path_hooks
Ba ch�ir duit na ruda� seo a leanas a dh�anamh:
- cuir vim.path_hook le deireadh sys.path_hooks
- cuir vim.VIM_SPECIAL_PATH le deireadh sys.path
N�orbh fh�idir an chonair a shocr�: n� liosta � sys.path
Ba ch�ir duit vim.VIM_SPECIAL_PATH a cheangal le deireadh sys.pathN�l a leith�id de chomhad "%s" annAthra�odh �bhar an chomhaid, n� f�idir comhad staire a �s�idT� comhad "%s" inl�ite amh�in.
Seans gurbh fh�idir scr�obh ann mar sin f�in.
An bhfuil fonn ort triail a bhaint as?Caomhna�odh an comhadComhaidScagaireAimsigh & Athchuir (�s�id '\\' chun '\' a aimsi�)An Ch�ad Chea&nn EileAn Ch�ad Cheann EileAimsigh teaghr�n (bain �s�id as '\\' chun '\' a aimsi�)Aimsigh:Comhad staire %s l�iteAn ch�ad fhocal d�blach i %s l�ne %d: %sN� uimhir � an bhratach i %s l�ne %d: %sN� cl� aonleithid � '%s'N�l Cl�%ld n�os leithne faoi dh� n� cl�0Leithead Cl�0: %ldCl�0: %sLeithead cl�1: %ldCl�1: %sCl�:Le haghaidh rogha %sDramha�l i ndiaidh arg�inte roghaDia duit, a �s�ideoir Vim!Tabhair cabhair do ph�ist� bochta in Uganda!Sroicheadh cr�och an pharagraifEARR�ID I/ARinneadh neamhshuim ar %d focal le carachtair neamh-ASCII i %sRinneadh neamhshuim ar %d focal le carachtair neamh-ASCIIAg d�anamh neamhaird de l�ne fhada sa chomhad clibeannaAinm comhaid neamhcheadaitheBratach neamhcheadaithe i %s l�ne %d: %sAinm neamhcheadaithe tabhaillCarachtar neamhcheadaithe tosaighL�ne an Ionchuir:_Modhanna ionchuirIdirbhriseadhIdirbhriseadh: IdirbhristeArg�int neamhbhail� doSonr� neamhbhail� cl�Uimhir neamhbhail� r�igi�in i %s l�ne %d: %sLuach neamhbhail� ar FLAG i %s l�ne %d: %sN�l na heochracha comhoiri�nach le ch�ile!Maraigh nascNasc�il: T� g� le liosta n� uimhirN� f�idir an leabharlann Lua a lucht�.Meaitse�il an c�sFocal ioml�n amh�inTeachtaireachtCothaitheoir na dteachtaireachta�: Kevin P. Scannell <scannell@slu.edu>`>' ar iarraidhL�ne FOL/LOW/UPP ar iarraidh i %sL�ne SOFO%s ar iarraidh i %sMionathraithe ag Ainm:T� g� le %s, leagan %ld
T� g� le Amigados leagan 2.04 n� n�os d�ana�
Eochair chripti�ch�in le haghaidh "%s" de dh�thN� cheada�onn NetBeans maol�in gan athr� a bheith scr�ofaCluais�n nuaN�lN�l aon mh�r chomhr�ire sainmh�nithe le haghaidh an mhaol�in seoN�or aims�odh aon ghiorr�ch�nN�l aon bhrisphointe socraitheGan taispe�intGan taispe�int: Theip ar sheoladh sloinn.
Gan iontr�ilGan comhaid cheannt�iscN�or aims�odh aon mhap�ilN�l aon mharc socraitheN�l a leith�id ag an ch�rs�ir, ag cuardach ar an ch�ad cheann eileN�l aon uathord� comhoiri�naitheGan seanchomhaidN�l aon chomhad babht�la annN�l aon t�acs le priont�ilN� f�idir a cheal�; lean ar aghaidh mar sin f�inN�l aon ord� aimsithe at� sainithe ag an �s�ideoirGan �s�idN�l go leor cuimhne ann le tagairt� a shocr�; baili� dramha�ola � thobscor!N�or l�adh an comhad staire; �in�ir difri�il: %sN�l faic le ceal�L�on na bhfocal tar �is fuaimfhillte: %ldOKDial�g `Oscail Comhad'Oscail Cluais�n...Oscail cluais�n...Theip ar oscailt an sc�ile�in XOscailt an sc�ile�in X thar amTh�g %ld ms chun an sc�ile�n X a oscailtComhad bun�sach "%s"Forscr�obh comhad "%s" at� ann cheana?Leathanach %dN� cheada�tear maol�in NetBeans a bheith scr�ofa go neamhioml�nComhad paisteConair r�fhada!Conair:Aims�odh an patr�n i ngach l�ne: %sPatr�n gan aimsi�Patr�n gan aimsi�: %sFuaimfhilleadh...Br�igh ENTER n� iontr�il ord� le lean�intSeoladh jab priont�la.Priont�ilte: %s'%s' � phriont�ilPriont�il tobscorthaLeathanach %d (%d%%) � phriont�ilIarratas ar phatr�nCeistComhad foircinn %s � l�amh...Comhad litrithe � l�amh ar�s...Focl�ir %s � l�amh ...Ag l�amh �n ionchur caighde�nach...Comhad litrithe "%s" � l�amhComhad staire � l�amh: %sComhad viminfo "%s"%s%s%s � l�amhComhad focail %s � l�amh ...Athshl�n� cr�ochnaithe. Is ionann an t-�bhar sa mhaol�n agus an t-�bhar sa chomhad.Athshl�na�odh. Ba ch�ir duit gach rud a sheice�il uair amh�in eile.At�saigh gach nascIonadaighIonadaigh &UileIonadaigh UileLe cur in ionad:Sa mh�d comhoiri�nachta Vi� rith gan mh�id, ag ions� an t�acs at� iontr�ilteS�bh�il MarDial�g `S�bh�il Comhad'S�bh�il Atreor�S�bh�il an Seisi�nS�bh�il an Socr�S�bh�il an tAmharcS�bh�il athruithe ar "%s"?Focl�ir � scanadh: %sComhad ceannt�isc � scanadh: %sClibeanna � scanadh.%s � scanadhGiuirl�id Scrollbharra: N� f�idir c�imseata an mhapa picteil�n� a fh�il.Teaghr�n CuardaighAg d�anamh cuardach ar "%s"Ag d�anamh cuardach ar "%s" i "%s"Comhad ceannt�isc %s � chuardachComhad clibeanna %s � chuardachBain triail as ":help E312" chun tuilleadh eolais a fh�il.Bain triail as ":help W11" chun tuilleadh eolais a fh�il.Bain triail as ":help W12" chun tuilleadh eolais a fh�il.Bain triail as ":help W16" chun tuilleadh eolais a fh�il.Dial�g `Roghnaigh Comhadlann'Roghna�odh %s%ld as %ld L�ne; %lld as %lld Focal; %lld as %lld BeartRoghna�odh %s%ld as %ld L�ne; %lld as %lld Focal; %lld as %lld Carachtar; %lld as %lld BeartRoghn�� sheoladh chuig an phrint�ir...Taispe�in naiscTaispe�in m�id (Point�)Taispe�in an teachtaireacht seoComhartha� do %s:M�id:N� scr�obhfar an comhad staire, n�l aon stair annT� br�n orm, comhad cabhrach "%s" gan aimsi�T� br�n orm, n�l aon mholadh annT� br�n orm, n�l ach %ld moladh annT� br�n orm, n�l an t-ord� seo le f�il: n�orbh fh�idir an leabharlann Perl a lucht�.Foinsigh script VimB� i d'urraitheoir Vim!M�ada�onn an chruachSt�l:Ionad� Comhad babht�la "T� comhad babht�la "%s" ann cheana; forscr�obh mar sin f�in?T� comhad babht�la ann cheana!T� an comhad babht�la criptithe: "%s"Comhaid bhabht�la aimsithe:Ag athr� go dt� an t-inneall rianaithe siar le haghaidh an phatr�in seo: Leathanach cluais�n %dBain an roghchl�r seoTheip ar th�st�il an sc�ile�in XGo raibh m�le maith agat as Vim a �s�idCrutha�odh an comhad seo ar An t-aon teaghr�n amh�in comhoiri�naitheN�or tiomsa�odh an leagan Vim seo le `diff' ar f�il.N� f�idir fuinneoga a scoilteadh leis an ord� seo `cscope'.
An iomarca arg�int� den chine�l "+ord�", "-c ord�" n� "--cmd ord�"An iomarca bratach comhfhocailAn iomarca arg�int� eagarth�ireachtaAn iomarca r�im�reanna curtha siarAn iomarca r�im�reanna curtha siar agus/n� bratacha comhfhocalAn iomarca r�igi�n i %s l�ne %d: %sBarrL�on ioml�n na bhfocal: %dT�acs chun deiridh i %s l�ne %d: %sCl�scr�obh  :qa!  agus br�igh <Enter> le f�g�il � Vim gan athruithe a sh�bh�ilCl�scr�obh uimhir agus <Enter> (f�g folamh le ceal�): Cl�scr�obh uimhir agus <Enter> n� clice�il leis an luch (f�g folamh le ceal�): N� f�idir bloc 0 a l�amh � N� f�idir ainm fhreastala� ordaithe a chl�r�AnaithnidArg�int anaithnid roghaBratacha anaithnide i %s l�ne %d: %sM�r anaithnid n� dh�blach i %s l�ne %d: %sGan TeidealSuasBain �s�id as Vim, leagan 3.0.
�s�ideadh CUT_BUFFER0 in ionad roghn�ch�in folaimhEochair chripti�ch�in �n gcomhad babht�la � h�s�id ar an t�acschomhad.
Comhad babht�la "%s" � �s�idVIM - AIREVIM - Cuardaigh agus Athchuir...VIM - Cuardaigh...VIM - Vi IMprovedEarr�id VIMVIM: N� f�idir fuinneog a oscailt!
N�or aims�odh VIMRUN.EXE i do $PATH.
N� mhoilleoidh orduithe seachtracha agus iad curtha i gcr�ch.
F�ach ar  :help win32-vimrun  chun n�os m� eolas a fh�il.Vim - Roghn� Cl�Vim E458: N� f�idir iontr�il dathmhap�la a dh�ileadh, is f�idir go mbeidh dathanna m�chearta annRabhadh VimDial�g Vimearr�id Vimearr�id Vim: ~aVim � scor le st�das %d
Is saorbhogearra � VimVim: Fuarthas teagmhas %s
Vim: Earr�id agus an t-inchomhad � l�amh; ag scor...
Vim: Earr�id: Theip ar thos� gvim � NetBeans
Vim: Earr�id: N� f�idir an leagan seo de Vim a rith i dteirmin�al Cygwin
Vim: Milleadh an pr�omhfhuinneog gan choinne
Vim: Ag l�amh �n ionchur caighde�nach...
Vim: Fuarthas iarratas "die" � bhainisteoir an tseisi�in
Vim: Rabhadh: N�l an t-ionchur ag teacht � theirmin�al
Vim: Rabhadh: N�l an t-aschur ag dul chuig teirmin�al
W10: Rabhadh: Comhad inl�ite amh�in � athr�W11: Rabhadh: Athra�odh comhad "%s" � tosa�odh � a chur in eagarW12: Rabhadh: Athra�odh comhad "%s" agus athra�odh an maol�n i Vim fostaW13: Rabhadh: Crutha�odh comhad "%s" � tosa�odh � a chur in eagarW14: Rabhadh: Liosta ainmneacha comhaid thar maoilW15: Rabhadh: Deighilteoir l�nte m�cheart, is f�idir go bhfuil ^M ar iarraidhW16: Rabhadh: Athra�odh m�d an chomhaid "%s" � tosa�odh � a chur in eagarW17: T� UTF-8 ag teast�il le haghaidh Araibise, socraigh � le ':set encoding=utf-8'W18: Carachtar neamhbhail� in ainm gr�paW19: Iarracht ar augroup at� f�s in �s�id a scriosadhW20: N�l leagan 2.x de Python ar f�il; ag d�anamh neamhaird de %sW21: N�l leagan 3.x de Python ar f�il; ag d�anamh neamhaird de %sW22: Aims�odh t�acs tar �is :endfunction: %sRABHADH: Athra�odh an comhad � l�adh �!!!RabhadhRabhadh: N� f�idir liosta focal "%s.%s.spl" n� "%s.ascii.spl" a aimsi�Rabhadh: N� f�idir liosta focal "%s_%s.spl" n� "%s_ascii.spl" a aimsi�Rabhadh: Chuathas i maol�n eile go tobann (seice�il na huathorduithe)Rabhadh: Cripti�ch�n lag; f�ach :help 'cm'Rabhadh: sonra�odh comhfhocail agus NOBREAK araonRabhadh: r�igi�n %s gan taca�ochtRabhadh: n� f�idir leis an teirmin�al aibhsi�Agus an comhad seo � oscailt: "N� forscr�obhfar le comhad staire, n� f�idir � a l�amh: %sN� forscr�obhfar �, n� comhad staire � seo: %sIonad na fuinneoige: X %d, Y %dCuireadh focal '%.*s' le %sBaineadh focal '%.*s' � %sFocal as l�ne eileScr�obh comhad neamhioml�n?Comhad litrithe %s � scr�obh ...Comhad molta� %s � scr�obh ...Comhad staire � scr�obh: %sComhad viminfo "%s" � scr�obhLuach m�cheart ar CHECKCOMPOUNDPATTERN i %s l�ne %d: %sLuach m�cheart ar COMPOUNDMIN i %s l�ne %d: %sLuach m�cheart ar COMPOUNDRULES i %s l�ne %d: %sLuach m�cheart ar COMPOUNDSYLMAX i %s l�ne %d: %sLuach m�cheart ar COMPOUNDWORDMAX i %s l�ne %d: %sTheip ar fhaire nasc ICE XSMPTheip ar XSMP SmcOpenConnection: %sIarratas s�bh�il-do-f�in � l�imhse�il ag XSMPChaill XSMP an nasc ICENasc � oscailt ag XSMPIS SEAT�[EARR�ID TIONTAITHE i l�ne %ld][CR ar iarraidh][Scriosta][Gl�as][Comhad r�mh�r][Cabhair][BEART NEAMHCHEADAITHE i l�ne %ld][Is neamhioml�n an l�ne dheireanach][Liosta Su�omh][N� tiontaithe][COMHADLANN nua][Comhad Nua][Comhad nua][Nua][Gan Ainm][Athraithe agus nach s�bh�ilte � shin]
[Gan eagr�][Cead Di�ltaithe][R�amhamharc][Liosta Mearcheart�ch�n][EARR�ID� L�IMH][L-A][Earr�id� l�imh][Sealadach][glaonna] re/malloc(): %lu, free(): %lu

[comhad speisialta den chine�l carachtar][tiontaithe][criptithe][form�id dos][dos][fifo/soic�ad][fifo][comhad ..]       cuir na comhaid ceaptha in eagar[l�nte fada deighilte][form�id mac][mac][ganEOL][inl�ite amh�in][soic�ad][form�id unix][unix]_Cealaigh_D�n_OK_Oscail_S�bh�ilarg�int add()tar �isagus d�an compar�id leis an mbunchomhad chun athruithe a lorg)iarracht ar sheicheamh de mh�id %d a shannadh do shlisne de mh�id %diarracht ar sheicheamh n�os m� n� %d a shannadh do shlisne fadaitherinneadh iarracht ar mhaol�n scriosta a rochtaintagairt d�anta do leathanach cluais�n� scriostarinneadh iarracht ar fhuinneog scriosta a rochtainuathord� � bhaint go huathoibr�och: %s <maol�n=%d>uathord� %sroimhsracadh bloc de %ld l�nesracadh bloc de l�ne amh�inmaol�n neamhbhail�ag le Bram Moolenaar et al.Glaodh inputrestore() n�os minice n� inputsave()%s � glaon� f�idir tr�ithe OutputObject a scriosadhn� f�idir an t-aschur � 'charconvert' a l�amhn� f�idir m�d cons�il a athr� ?!
n� f�idir ord� maol�in/fuinneoige a chruth�: r�ad � scriosadhn� f�idir an l�ne a scriosadhn� f�idir tr�ithe vim.Dictionary a scriosadhn� f�idir tr�ithe vim.List a scriosadhn� f�idir an l�ne a fh�iln� f�idir l�ne a ions�n� f�idir l�ne a ions�/iarcheangaln� f�idir focl�ir socraithe a athr�n� f�idir liosta socraithe a athr�n� f�idir a oscailt: n� f�idir ord� aisghlaoch a chl�r�: maol�n/fuinneog � scriosadh cheanan� f�idir ord� aisghlaoch a chl�r�: tagairt mhaol�n/fhuinneoige gan aimsi�n� f�idir an l�ne a athchurn� f�idir eolas cealaithe a sh�bh�iln� f�idir tr�ith %s a shocr�n� f�idir l�n(t)e a shocr�n� f�idir a sracadh; scrios mar sin f�inathr�athr�d�nord�: %sag lean�int i %sn�orbh fh�idir "%s" a l�amhn� f�idir maol�n a oscailttheip ar rith cs_create_connectiontheip ar setpgid do cs_create_connectioncs_create_connection: theip ar fdopen le haghaidh fr_fpcs_create_connection: theip ar fdopen le haghaidh to_fpOrduithe cscope:
D�nadh nasc cscope %sc�rs�ir taobh amuigh den mhaol�nr�amhshocr� = 'bloc a haon scriosta?t� an focl�ir faoi ghlasn�or athra�odh go dt� an leathanach cluais�n� roghnaithen�or athra�odh go dt� an fhuinneog roghnaithedlerror = "%s"n� scoir go dt� go scr�obhfa� an comhad!n� cheada�tear eochracha folmhaathr�g thimpeallachtaearr�id agus luach Scheme � thiont� go Viml�imhse�la� earr�id�bh�othas ag s�il le 3-chodach mar thoradh ar imp.find_module(), ach fuarthas %sbh�othas ag s�il le 3-chodach mar thoradh ar imp.find_module(), ach fuarthas %d-chodachbh�othas ag s�il le bytes() n� str(), ach fuarthas %sbh�othas ag s�il le int() n� rud �igin inathraithe ina int(), ach fuarthas %sbh�othas ag s�il le int(), long(), n� rud �igin inathraithe ina long(), ach fuarthas %sbh�othas ag s�il le heilimint de mh�id 2, ach fuarthas m�id %dbh�othas ag s�il le str() n� unicode(), ach fuarthas %sbh�othas ag s�il le r�ad vim.Buffer, ach fuarthas %sbh�othas ag s�il le r�ad vim.TabPage, ach fuarthas %sbh�othas ag s�il le r�ad vim.Window, ach fuarthas %sd�chumasa�odh sloinn ag am an tiomsaithearg�int extend()n�orbh fh�idir m�r a chur leis an liostan�orbh fh�idir eochair '%s' a chur leis an bhfocl�irn�orbh fh�idir an chomhadlann a athr�n�or aims�odh fuinneog sa leathanach cluais�n� reathan�orbh fh�idir ainm nua a chur ar an maol�nn�orbh fh�idir feidhm %s a rithn�orbh fh�idir an c�d a chur ar si�ln�orbh fh�idir athr� go dt� maol�n a %dl�ne n�os l�comhad
ainm comhaid / comhth�acs / l�ne
arg�int filter()deireadh ag foinsi� %sfr�ma ag an leibh�al is airde: %dis nialas � an fr�ma%ld l�ne � saoradhn�l feidhm %s annearr�id gvimext.dllathra�odh an haist�b le linn atrialltacabhairrogha fholaithei gconair ---
n� m�r don inn�acs a bheith ina shl�nuimhir n� ina shlisne, seachas %sarg�int insert()earr�id inmhe�nach: tagairt NULL seoltaearr�id inmhe�nach: n�orbh fh�idir m�r a chur leis an liostaearr�id inmhe�nach: n�l aon fh�il ar mh�r %d sa liosta vimearr�id inmhe�nach: fuarthas codach NULL ar ais � imp.find_moduleearr�id inmhe�nach: cine�l neamhbhail�earr�id inmhe�nach: n�l aon mh�r %d sa liosta vimearr�id inmhe�nach: n�l go leor m�reanna liosta annearr�id inmhe�nach: cine�l rogha anaithnidaitreab�id neamhbhail�: %suimhir neamhbhail� mhaol�inslonn neamhbhail�ainm neamhbhail� maircis gl�as � seo (d�chumasaithe le rogha 'opendevice')is comhadlann �n� comhad �n� comhad n� gl�as inscr�ofa �is inl�ite amh�in � (cuir ! leis an ord� chun s�r�)idirbhriseadh m�archl�irl�ne %4ld:l�ne %6d, focal %6d - %sl�ne %ld:l�ne %ld de %ld --%d%%-- col l�ne %ld: %sl�ne %ld: n�orbh fh�idir "%s" a fhoinsi�l�ne %ld: "%s" � fhoinsi�l�ne n�os l�l�ne-uimhir as raonl�ne-uimhir as raonn� ghlacann cruthaitheoir an liosta le harg�int� eochairfhocailinn�acs liosta as raont� an liosta faoi ghlaslog�il amacharg�int map()n� cheada�tear ach carachtar amh�in in ainm an mhaircmarc gan socr�comhoiri�n� %dcomhoiri�n� %d as %dmeaitse�il sa chomhaduasta mch_get_shellsize: n� cons�l � seo??
roghchl�r  Edit->Global Settings->Toggle Insert Mode  roghchl�r  Edit->Global Settings->Toggle Vi Compatibleroghchl�r  Help->Orphans      chun eolas a fh�il roghchl�r  Help->Sponsor/Register       chun eolas a fh�il �osta m�dl�nel�ne eilel�ne eileN� thaca�tear le netbeans sa GUI seo
tosa�odh blaosc nua
n� hean�l aon nasc cscope
n�l a leith�id annn�l a leith�id de leathanach cluais�n� annn�l a leith�id d'fhuinneog anngan sioncr�n�n� cheada�tear � seo i mbosca gainimh Vimgan aimsi�gan aimsi� in '%s': "%s"n�l ar f�ilathra�onn an uimhir ag am s�bh�lan� m�r don uimhir a bheith >= 0n� m�r don uimhir a bheith deimhneachis 0 pe_line_count"l�ne na n-orduithe pre-vimrctharla earr�id agus an fhuinneog � hathr�tr�ith inl�ite amh�in: maol�n� thaifeadadharg�int remove()cuir %s ina ionad (y/n/a/q/l/^E/^Y)?arg�int reverse()l�ne %d col�n %dBuaileadh an BUN le linn an chuardaigh, ag lean�int ag an BHARRBuaileadh an BARR le linn an chuardaigh, ag lean�int ag an CHR�OCHblaosc d'aisfhill an bhlaosc %dm�chadhn� cheada�tear slisne le c�im 0arg�int sort()"%s" � fhoinsi�ba ch�ir do stack_idx a bheith 0n� cheada�tear carachtair l�ne nua sa teaghr�nag sioncr�n� ar n�ta den n�s Ctosa�onn an sioncr�n� syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell toplevelclib %d as %d%sclibainmgo %s ar %scl�scr�obh  :help cp-default<Enter> chun n�os m� eolas faoi seo a fh�ilcl�scr�obh  :help iccf<Enter>       chun eolas a fh�il cl�scr�obh  :help register<Enter>       chun eolas a fh�il cl�scr�obh  :help sponsor<Enter>        chun eolas a fh�il cl�scr�obh  :help version8<Enter>   le haghaidh eolais faoin leagancl�scr�obh  :help<Enter>  n�  <F1>  le haghaidh cabhrach ar l�necl�scr�obh  :q<Enter>               chun scoir      cl�scr�obh  :set nocp<Enter>        chun na r�amhshocruithe Vim a thaispe�intn� f�idir focl�ir vim a dh�anamh as %sn� f�idir liosta vim a dh�anamh as %sn� f�idir strucht�r vim a dh�anamh as %sn� f�idir luach na rogha a fh�iln� f�idir rogha chomhchoiteann %s a dh�shocr�n� f�idir rogha %s gan luach comhchoiteann a dh�shocr�arg�int uniq()anaithnidbratach anaithnid: rogha anaithnidvimOption anaithnidn�l feidhm %s gan ainm annt� an luach n�os m� n� athr�g int sa teanga Ct� an luach n�os l� n� athr�g int sa teanga Cleagan earr�id viminn�acs fuinneoige as raonfuinneog neamhbhail�le GUI (clasaiceach).le GUI Carbon.le GUI Cocoa.le GUI GTK2.le GUI GTK2-GNOME.le GUI GTK3.le GUI.le GUI Photon.le GUI X11-Athena.le GUI X11-Motif.le GUI X11-neXtaw.gan GUI.d�chumasa�odh scr�obh chuig gl�as le rogha 'opendevice'PK�j�Z`�s�)�) vim80/lang/menu_zh_cn.gb2312.vimnu�[���" Menu Translations:    Simplified Chinese
" Maintainer:           Shun Bai <baishunde@gmail.com>
" Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
" Last Change:          2014 Oct 15

" vim: ts=8 sw=8 noet

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" This causes trouble for a broken iconv (symptom: last character is always
" ??).  Without this it works fine anyway, because gbk/cp936 is a superset of
" gb2312. (suggested by Edward L. Fox)
" scriptencoding gb2312

" Help menu
menutrans &Help			���(&H)
menutrans &Overview<Tab><F1>	���(&O)<Tab><F1>
menutrans &User\ Manual		�û��ֲ�(&U)
menutrans &How-to\ links	How-to\ ָ�(&H)
menutrans &Find\.\.\.		����(&F)\.\.\.
menutrans &Credits		��л(&C)
menutrans Co&pying		��Ȩ(&P)
menutrans &Sponsor/Register	���/ע��(&S)
menutrans O&rphans		�¶�(&R)
menutrans &Version		�汾(&V)
menutrans &About		����(&A)

" File menu
menutrans &File				�ļ�(&F)
menutrans &Open\.\.\.<Tab>:e		��(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	�ָ��(&L)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	�򿪱�ǩ\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		�½�(&N)<Tab>:enew
menutrans &Close<Tab>:close		�ر�(&C)<Tab>:close
menutrans &Save<Tab>:w			����(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	���Ϊ(&A)\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	�ָ�Ƚ�(Diff)(&D)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	�ָ�򲹶�(Patch)(&B)\.\.\.
menutrans &Print			��ӡ(&P)
menutrans Sa&ve-Exit<Tab>:wqa		���沢�˳�(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			�˳�(&X)<Tab>:qa

" Edit menu
menutrans &Edit				�༭(&E)
menutrans &Undo<Tab>u			���(&U)<Tab>u
menutrans &Redo<Tab>^R			���(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		�ظ��ϴβ��(&E)<Tab>\.
menutrans Cu&t<Tab>"+x			����(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			����(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		ճ�(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		ճ������ǰ(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		ճ�������(&A)<Tab>]p
menutrans &Delete<Tab>x			ɾ��(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
menutrans &Find\.\.\.			����(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	���Һ��滻(&L)\.\.\.
menutrans &Find<Tab>/			����(&F)<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s	���Һ��滻(&L)<Tab>:%s
menutrans Settings\ &Window		�趨����(&W)
menutrans Startup\ &Settings		���趨(&S)
menutrans &Global\ Settings		ȫ���趨(&G)

" Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	��/��ģʽ���(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		��/�غ��Դ�Сд(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		��/����ʾ���(&S)<Tab>:set\ sm!
menutrans &Context\ lines			���������(&C)

menutrans &Virtual\ Edit			����༭(&V)
menutrans Never					�Ӳ�
menutrans Block\ Selection			��ѡ��
menutrans Insert\ mode				����ģʽ
menutrans Block\ and\ Insert			��ѡ��Ͳ���ģʽ
menutrans Always				����

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	��/�ز���ģʽ(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	��/��\ Vi\ ����<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.			����·��(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.			Tag\ �ļ�(&T)\.\.\.

" GUI options
menutrans Toggle\ &Toolbar			��/�ع����(&T)
menutrans Toggle\ &Bottom\ Scrollbar		��/�صײ������(&B)
menutrans Toggle\ &Left\ Scrollbar		��/����˹����(&L)
menutrans Toggle\ &Right\ Scrollbar		��/���Ҷ˹����(&R)

" Edit/File Settings
menutrans F&ile\ Settings			�ļ��趨(&I)

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	��/����ʾ�к�(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! ��/������к�(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		��/��\ list\ ģʽ(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		��/������(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	��/���������(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		��/���չ\ tab(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		��/���Զ����(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		��/��\ C\ ���(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			������(&S)
menutrans Soft\ &Tabstop		Soft\ Tab\ ���(&T)
menutrans Te&xt\ Width\.\.\.		�ı����(&X)\.\.\.
menutrans &File\ Format\.\.\.		�ļ���ʽ(&F)\.\.\.
menutrans C&olor\ Scheme		��ɫ����(&O)
menutrans Select\ Fo&nt\.\.\.		ѡ������(&N)\.\.\.
menutrans &Keymap			����ӳ��(&K)

" Programming menu
menutrans &Tools			����(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	�ת����\ tag(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		�ת����(&B)<Tab>^T
menutrans Build\ &Tags\ File		����\ Tags\ �ļ�(&T)

" Tools.Spelling Menu
menutrans &Spelling				ƴд���(&S)
menutrans &Spell\ Check\ On			��ƴд���(&S)
menutrans Spell\ Check\ &Off			�ر�ƴд���(&O)
menutrans To\ &Next\ error<Tab>]s		��һ������(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s		��һ������(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=		�������(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	�ظ����(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"		�趨����Ϊ\ "en"
menutrans Set\ language\ to\ "en_au"		�趨����Ϊ\ "en_au"
menutrans Set\ language\ to\ "en_ca"		�趨����Ϊ\ "en_ca"
menutrans Set\ language\ to\ "en_gb"		�趨����Ϊ\ "en_gb"
menutrans Set\ language\ to\ "en_nz"		�趨����Ϊ\ "en_nz"
menutrans Set\ language\ to\ "en_us"		�趨����Ϊ\ "en_us"
menutrans &Find\ More\ Languages		���Ҹ�������(&F)

" Tools.Fold Menu
" open close folds
menutrans &Folding				�۵�(&F)
menutrans &Enable/Disable\ folds<Tab>zi		����/�����۵�(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv		�鿴����(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	���鿴����(&W)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm		�رո����۵�(&L)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM		�ر�����۵�(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr		�򿪸����۵�(&P)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR		������۵�(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			�۵�����(&H)
menutrans M&anual			�ֹ�(&A)
menutrans I&ndent			���(&N)
menutrans E&xpression			���ʽ(&X)
menutrans S&yntax			�﷨(&Y)
menutrans &Diff				�Ƚ�(Diff)(&D)
menutrans Ma&rker			���(&R)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		�����۵�(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		ɾ���۵�(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	ɾ������۵�(&A)<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width		�۵������(&W)

" Tools.Diff Menu
menutrans &Diff				�Ƚ�(Diff)(&D)
menutrans &Update			����(&U)
menutrans &Get\ Block			�õ���(&G)
menutrans &Put\ Block			���ÿ�(&P)

menutrans &Make<Tab>:make		Make(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		�����(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	�г��Ϣ(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		��һ������(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	��һ������(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	���ɵĴ���б�(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	���µĴ���б�(&E)<Tab>:cnew
menutrans Error\ &Window		���󴰿�(&W)
menutrans &Update<Tab>:cwin		����(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		��(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		�ر�(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	ת����ʮ������<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	ת������<Tab>:%!xxd\ -r
menutrans Se&T\ Compiler		�趨�����(&T)

" Names for buffer menu.
menutrans &Buffers		�����(&B)
menutrans &Refresh\ menu	���²˵�(&R)
menutrans &Delete		ɾ��(&D)
menutrans &Alternate		����(&A)
menutrans &Next			��һ��(&N)
menutrans &Previous		��һ��(&P)

" Window menu
menutrans &Window			����(&W)
menutrans &New<Tab>^Wn			�½�(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		�ָ�(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	�ָ\ #(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	��ֱ�ָ�(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	�ָ��ļ����(&X)
menutrans &Close<Tab>^Wc		�ر�(&C)<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	�ر��������(&O)<Tab>^Wo
menutrans Move\ &To			�ƶ���(&T)
menutrans &Top<Tab>^WK			����(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		�׶�(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		���(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		�ұ�(&R)<Tab>^WL
" menutrans Ne&xt<Tab>^Ww		��һ��(&X)<Tab>^Ww
" menutrans P&revious<Tab>^WW		��һ��(&R)<Tab>^WW
menutrans Rotate\ &Up<Tab>^WR		�����ֻ�(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		�����ֻ�(&D)<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		�ȴ�(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		���߶�(&M)<Tab>^W
menutrans M&in\ Height<Tab>^W1_		��С�߶�(&I)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		�����(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		�����(&H)<Tab>^W1\|
"
" The popup menu
menutrans &Undo			���(&U)
menutrans Cu&t			����(&T)
menutrans &Copy			����(&C)
menutrans &Paste		ճ�(&P)
menutrans &Delete		ɾ��(&D)
menutrans Select\ Blockwise	ѡ���
menutrans Select\ &Word		ѡ�񵥴�(&W)
menutrans Select\ &Sentence	ѡ�����(&S)
menutrans Select\ Pa&ragraph	ѡ�����(&R)
menutrans Select\ &Line		ѡ����(&L)
menutrans Select\ &Block	ѡ���(&B)
menutrans Select\ &All		ȫѡ(&A)
"
" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		���ļ�
    tmenu ToolBar.Save		���浱ǰ�ļ�
    tmenu ToolBar.SaveAll	����ȫ���ļ�
    tmenu ToolBar.Print		��ӡ
    tmenu ToolBar.Undo		���
    tmenu ToolBar.Redo		���
    tmenu ToolBar.Cut		��������
    tmenu ToolBar.Copy		���Ƶ������
    tmenu ToolBar.Paste		�Ӽ����ճ�
    tmenu ToolBar.Find		����...
    tmenu ToolBar.FindNext	������һ��
    tmenu ToolBar.FindPrev	������һ��
    tmenu ToolBar.Replace	���Һ��滻...
    tmenu ToolBar.LoadSesn	���ػỰ
    tmenu ToolBar.SaveSesn	���浱ǰ�Ự
    tmenu ToolBar.RunScript	���� Vim �ű�
    tmenu ToolBar.Make		ִ�� Make (:make)
    tmenu ToolBar.RunCtags	�ڵ�ǰĿ¼���� tags (!ctags -R .)
    tmenu ToolBar.TagJump	�ת�����λ�õ� tag
    tmenu ToolBar.Help		Vim ���
    tmenu ToolBar.FindHelp	���� Vim ���
  endfun
endif

" Syntax menu
menutrans &Syntax			�﷨(&S)
menutrans &Show\ filetypes\ in\ menu	�ڲ˵�����ʾ�ļ�����(&S)
menutrans &Off				�ر�(&O)
menutrans &Manual			�ֹ�(&M)
menutrans A&utomatic			�Զ�(&U)
menutrans on/off\ for\ &This\ file	���������/��(&T)
menutrans Co&lor\ test			ɫ�ʲ���(&L)
menutrans &Highlight\ test		�������(&H)
menutrans &Convert\ to\ HTML		ת����\ HTML(&C)
menutrans Set\ '&syntax'\ only		���趨\ 'syntax'(&S)
menutrans Set\ '&filetype'\ too		Ҳ�趨\ 'filetype'(&F)

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�
��+�+ vim80/lang/nb/LC_MESSAGES/vim.monu�[������D4�lh`�a�w�
������'��/݋
�#�9�0O�����+����"܌���5 �V�s��������,b�;��ˎ���,�=�P�_�u�������֏0�.�/M�1}�0��
����
5�C�
X� c�������!‘�"�&�E�]�n�@}���ْ�����/-�=]�����̓ݓ1�1!�S�h�}���-�����(�E�]�3u�3��$ݕ��7�O�i�z�
������Ɩٖ
�$��$� 0�Q�i�;����̗#ٗ	��� �(�8�I�
R�]�w�������	ĘΘ֘ޘ!��!�A�a�i����� ����ԙ��� �
(�6�6C�z���!��Ԛ
ܚ�	���!�-�2�	7�"A�*d���������ʛ�
�
���

��'�9�B�5`���-��1֜&�/�G�\�n�������ŝ$ם���
 �+�:�J�b�x�������ĞԞ���	��$�4�F�
`�k�x���
������7������&�/�7�=�A�M�\�=`�2��Ѡڠ��'��-"�5P�����?�����)�8�	G�Q�j�{���-��ݢ$��"�
B�M�]�q�}�?��5ԣ!
�%,�9R�E��9ҤC�IP�H��;�0�6P�8��3��-�"�%<�b�v�����&��,�#
�41� f�@��-Ȩ0��'�;<�x�"����>̩)�>5�<t���#Ѫ:��'0�9X���$��9Ы4
�;?� {�>��1۬/
�=�-Z���.��Bƭ"	�/,�2\�*����+خ%�'*�(R�<{�E��.��--�$[���<��ְ*�&� B�4c�������αڱ���!�2�>�
K�Y�b�"j���������ز�)�-�$6�![�}�����"��"ó���1�?J�O��ڴ�����&�<�W�j�X��%ܵ��!�?�X�q�������$��ٶ!��*�0�@�D�b�"����$��շ#���:�QX�����ɸ۸� �-�M�!_���?��Pǹ�
%�
3�.>�m�-����-Ӻ$�.&�U�o�~�"��
��CȻ	��"�!7�Y�_�}�3��2��!�(� 4�"U�Ex���%۽#�-%�S�q���&��Ѿ����,�D�\�)w�+��@Ϳ-�<�5Y�������D� �E=���-��7�#� (�:I�5��&��"��&�$+�#P�!t�=��5�� 
�(+�7T�!��,������� &�#G�&k������������0�O�0n�$��!�� ��(�40�,e����������� �%�B�1\���!��%��%��%�?� X�y���?��&��!�9�
U�Ac�%��"��"��9�'K�(s�2��*��!��!�)>�%h�!��4��:��& �;G�;��)��0���9�U�n���#��!��8��&�#?�c� {�/��"����-�.�?�X�/p�*��(��#���4�O�l���>�������".�Q�p�����!����9��10�)b�1��%��7���A6�?x�������!�(�C�0b�4��$��)��N�,f�L�������8%�^�t���,�� �� ��#�A�\�7v�N��M��K�g���$��!��3��,�2G�%z�*��9��(�.�"I�l�#���������B$�g�0��!�� ��<��+2�^�~�+��2��$���,5�b�H}�,����	�")�L�i�������9���4�O�0k�#��'������,�&E�l��+��2��-��(�G�"`�'��'��,���.�F�#f�,��W��)�"9�,\�%���� ����2�29�2l���!������2�5?�'u�#��)��3��$�%D�j���������$��&� :�'[�*��#��'��%��3 �!T�v�+����*��-�$:�_�~������� �� �$)�$N�)s�,������,��%�:�%U�{�=�������+�'E�m���$��#��0��.!�0P�������������-3� a���7��)����$�(<�e���%��$�������'-�U�'t� �������� �7(�0`���#����"��(�!@�b�-��1��6��5�M�.h�*��1��9��.�*N�&y�+��,�+��4%�<Z�+��*����1�F�]�x�������"�����+�J�c�|���������:�:M�=��<�6�<:�w�"�����4�5�4:�3o���0���D��%>�d����������#�A�\�s��������'��,�!L�n���"���1�
�$�A�"V�y���������2K^r�����*')R|� ����6#Ei)�2�&�K	U h�����#"=&`#���+�%775o��,�$?)U ����#B^0v����4.N$})�1�;�:	.J	*y	�	$�	�	%
,*
W
h

&�
-�
&�
 1Ro�+� ��?)Dn6�#�2�9
>P
8�
1�
�
))B l)��)�*�"'J#c"�"�)��%5 [+|$���!
0,]v��"�!�98H$����+�%1C)u��'�%�&2!Y%{'�%�'�-2Ex�$���""Ee!�1�&�!!?av�+�8�74El!���&0'#X|$��#�*� :[n0�2�0�+:)f$�/���')7,a�� ��-,Ly/�+�'�!08i!�,���(�!:0P.���9�' (@ +i /� � � !!!!"C!Bf!�!�!�!�!")>"'h"�"�"'�"�"	�"##'#@#Z##p#	�#�#�#�#.�#$.$6N$�$�$6�$#�$&�$	!%+%@%X%o% |%%�%!�%
�%�%(&/&H&W&]&(d&
�&	�&%�&�&
�&&�&&'-'J')Y'�'
�'�'
�'�'�'�'�'	('(	<(2F(*y(�(�(�(�(
))	)%)1)=)R)#m)(�)�)�)	�)
�)�)	*2*D*P*o*�*�*�*$�*/�*'+.+D+
[+$f+�+�+�+ �+�+�+,!,:,Y,b,r,u,�,�,#�,�,�,-. -
O-Z-	p-z-�-'�-�-�-
�-�-.'.;.D.^.}.�.�.�.9�./5/=/J/
V/d/m/�/�/�/(�/�/
00&070
D0	O0Y0o0�0�0�09�0
�01141O1&f1�1�1�1�1?2QB2	�2�2�2�2"�233 3@3T3c3
u3�3'�3�3�3�3F4J4\4u4�4�4(�4�4�4�45"585Q50`5;�5 �5>�5-6E6]61y6"�6�6�6�673,7`7(}7�7�7�7$�70868?8B8+X8�8�8�8�8�8	�8�8�
9�9F�9�9
�9
:	:
:(:+=:i::�:�:%�:0�:,;(<;e;1�;+�;*�;
<&$<9K<M�<>�<)=5<=Ar=4�=$�=6>"E>h><p>?�> �>"?1?F?b?s?�?�?�?�?�?2@)7@,a@-�@ �@!�@#�@#A<A
TA_ApAA�A
�A�A�A	�A�A�A�A�AB"B
2B=BMB
]B
hBsB	yB�B�B�B	�B
�B�B
�B5�B#C	/C9CFC
LCZC&aC�C�C�C�C
�C�C
�C�C�C:�C" D"CD)fD�D�D�D�D�D�D�D1E
8E$CE"hE�E<�E�E�E
FF7FHDFC�F�F�FGG0G7G?GEG	MGWGhG~G �G-�G-�GH"H>H]HmH~H=�H�H
�H�H$
I2I>IDI_ItI�I�I
�I�I�I�I�I�I/J5J
DJ RJ sJ�J
�J�J�J�J�J�JK	6K@KYKmKtK�K�K�K#�K1�K1�K1*L1\L�L	�L
�L�L�L�L�L�L�L
	MMM
8M CMdMxM�M�M�M�M	�M"�MN$%N$JNoNvN�N�N
�N�N�N�N
OO,O4O.@O.oO.�O.�O.�O.+P.ZP.�P.�P�P�PQQ	 Q7*QbQQ�Q�Q�Q
�Q�Q�Q�Q	RR'R<RPReR%rR3�RO�RT6TGTVT^T*vT0�T�T�T�T0U
FU
TU*_U�U$�U�U�U7�U"V@V]VlV��V%LW7rW�W�W�W�W
XX,X;X UXvX�X�X�X0�X.Y/5Y1eY0�Y�Y �YZZ,3Z`ZuZ�Z�Z�Z�Z&�Z["/[#R[v[�[�[P�[�[\)\:\T\o\4�\B�\�\].]C]3_]3�]�]�]�]^)%^O^n^�^�^ �^ �^8�^7)_+a_�_ �_ �_�_
``1`=` L`m` �`�`+�`
�`-�` a ?a;`a
�a�a'�a�a�abb b
0b
;bFbabtb �b �b	�b�b�b�b"�bc$'c!Lcncvc	�c	�c!�c�c�cd d)d2d8dDd>Pd�d�d#�d�d�de
e! e
BePeUe	Ze$de*�e �e�e�e�e�e
f
f
#f
.f9fFfYfif#rf>�f�f.�f4g-Lgzg�g�g�g�g�ghh+0h\hnh	�h�h�h�h�h�h�hii3iFi%bi�i	�i�i�i�i�i
�i�i
jj*j9jLj?]j
�j�j�j�j�j�j�j�j
�jkOkDUk�k�k�k�k*�k4�k9$l^lzl9�l�l�l�l
m	mm;mMmdm,�m�m#�m�m	nn'n=nIn;en8�n�n$�n<oN\oA�o?�oG-pDupA�p1�p?.q4nq=�q/�qr$,rQr"fr�r�r*�r,�r!s91s'ks6�s/�s7�s#2t@Vt"�t!�t�t:�t6'uJ^u9�u%�u"	v;,v(hv:�v�v&�v:wAGw<�w�wJ�w:0x0kx�x8�x�x1yJ3y)~y0�y2�y+z8z(Wz!�z'�z)�z?�zR4{3�{4�{,�{|?6|v|.�|(�|$�|7}H}]}t}�}�}�}�}�}�}�}
~"~	=~G~(O~x~�~ �~ �~�~�~&-$>!c��
�"�!���1�BP�L��������-�E�`�x�Z��&��� 5�V�u�������т%ڂ�%�;�Y�^�k�p���"��΃"��/#�S�Z�v�]�����+�D�"`�������օ?ۅP�
l�
z���&����+Ά��-�%G�3m�����͇��L�c�	k�u�������ʈ7Έ6�"=�"`���*��LΉ �-<�)j�.��Ê"��+�K�]�o���#��ȋ�-�,/�D\�3��ՌF�9�O�k�F��͍O�;�2U�6��*��'�?�:R�&��$��'ُ.�'0�$X�E}�8Ð$��,!�8N�%��0��"ޑ��#3�!W�%y�����Β��!�:�Y�:w�#��"֓!��+�0G�(x�����Ԕ��� 6�W�?t�!��֕<��33�%g���"��Ȗ�6��-6�&d�����H��.��.�%H�An�)��/ژC
�*N�)y�#��'Ǚ'�&�5>�At�+��E�;(�+d�3��ě"� �(�B�,b�$��D��1��+� J�.k�7��'ҝ��4�@�%Q�w�/��+��(�&�:�5W�����ǟ?�#�?�_�+{���Ġ���(�B�8a�9��-ԡ6�'9�;a���A��G�� E�!f�!��$��ϣ$�8�9J�'��1��Kޤ7*�Ib�����ԥ?�(�;�S�)r�#��$��(��*�FF�V��[�@�%]�1��*��$�F�,L�3y�$��4ҩ:�%B�h�"����%���!�!#�!E�Ig���2ϫ�("�>K�,��!��٬'�4�%M�"s�5��̭M�&7�^�t�&����Ԯ�
�#%�7I�����#��3߯"�/6�f� s�*��-����,�<E�0��'��۱*��(!�)J�1t���6Ų�� �78�Yp�.ʳ'��0!�)R�|�&��ô3�5�7K��� ��µص0�0�/P�%��(��<϶&�+3�_����$��׷#�!�8�&W�)~�!��.ʸ&��F �!g�!��.��ڹ,��,$�'Q�#y�����ֺ�$�$*�(O�$x�.��1̻���+*�V�!l�2�� ��M�0�N�n���)��ν�'
�#2�/V�0��9����1�M�e�����6��#��84�,m���(��-�	�&�#6�Z�y���"��)�$��'�D�c����+��9��4�&L�)s�"��'��-���(4�,]�/��4��3��#�.B�/q�;��F��$�-C�3q�/��.��-�;2�Cn�.��4���/�I�a�s�����������#���3� P�,q�������"���4�S�k�����I��P�G\�G��<��)� E�f���@��B��?�:L���:����P��%;�!a���!���������'�F�b�y�������!��*���:5�<p�$�������4$�Y�t���(������ �"�=�Q�%e��������������-�I�f���,��+�����*�!G�i�{�8��)����-�.C�&r�H����!���:�W�m��� ����'��&��##�G�_�({�2��9��7�I�g�-����#����,�B�^�t������� ����#�2;�n�!����'��;��3)�0]�%��1��9�� �71�'i�1��'����'
�32�f�x���,��0��&�5�'S�%{�%����G��&.�U�Eh�&����=�� -�3N�.��:��:��;'�-c�$��(��'��'�/�)M�.w�%����'��"
�"-�0P�����*��!��D�/L�.|���$��1��"�=�X�r�1��0��C��A6�)x�������.��)�6B�,y�����)��'��"%�/H�x�"��'��"��'�*+�/V�����&��0��"�#3�&W�&~�&����0��$�"B�%e�������$��+��B'�#j�8��Q��#�=�N�)n�)��'����'�(�&B�'i���!������/�15�+g���%��%��'��0&�W�q�!��*��/�����0:�k�"��+��.���2�.J�'y�$��3����!�06�g�}�)��#����8��0*�![�!}�?����(��=!�=_�!��%���#�$'�VL�#������$�/B�/r�"��$�/��!�-�F�W�q���'�������>�V�8s�<����3��'2�/Z���������
�"�'��%&�L�T�*h���
������-��
��*�2�	>�'H�'p�)���2��
�$�
8�C�O�j�{������)�$�%�5�U�j�|������������&�(�(9�b�	v� ������H��/IX^*v8�5�)
B*P{��&� �
'('P
x����#�)�!)K0S	���$��0�0?O`z������9)c�
��������5
C	]g	�
�����	'B1
t���$�#�#"#Fj<�M�		-	@	V	v	�	�	�	
�	�	
�	
�	%
*
E
^
Cy
�
�
�
�
)
7Vh|���;�;%LFr���9
$N
s
x
%�
'�
4�
)/Yu|�0�	���'3IV
o }����MAd������/7Rn�1�1�
)I0c3�/��/A@K�J�-;GR�7�8-#f�B�C� $;`x������1'(Y+�,�*�!*(Sp���
����	#7?Zt�������'��
&1
6<A~
���
��.��*<
ESZE`'�&�/�%5/9,i���+�	�*�&)"P8s���"�G"Hj� ��1
6ANS	`jz�'�-�- . B ` ~ � � 4� 
� 
� !)!I!X!]!y!�!�!�!�!
�!�!�!�!"-"
L"Z"#i"/�"�"�"�"	�"�"
# (#I#
`#n#�#�#�#�#�#	�#%�#=$>B$3�$3�$�$�$%%%%)%D%[%p%�%�%�%�%!�%�%&!&7&O&g&�&!�&�&)�&)�&''2';'Z'f'$~'$�'�'�'�'�'3(3<(3p(3�(3�(3)3@)3t)3�)�)�)�)**`*"{*�*�*�*�*�*�*
++$+-+=+Q+d+	x+(�+4�+�H'���s4o#o�S�����i]��������d6"��C����:"nLt�&X���QT���e�'VBP�����;v���x����e:����������@=�Rx
��2��%1�x�Q��[��-������^�`��R���|��C|3���']Xii��
3�J����nV��Un(5��<w�����&UM�5�"�������+�����#!��$6^?LD�@�Q�N+^�;��P�"�>Iky��p^}���\�i.7�IT{N}~�Mc�����l���������|��_!�P���%,��ZNw
q9���_yX�O��Az
�U�6����u�o����&2J��s30]g��������>�?K�Jb� �uv��B,
�!M�)l{c�P���ta�6��Z�c�d+��f�e�C�_��&��:XAR���=z
��"Ev���
PAG}��6��E/m�,�Fg��T�`�s1r�|�M��5d5o{�9��/ �C�O��m�����<�c�a�u�F��>�N����I`l�F��{��V���9���'>7H�4��mwt*��&�.�����N��@jaN�{s��r^�,�J���\�qZByp1r9�����S�")��E_ ��(4L���]�Q.��z�d�|�5�=�X�R%��,��3#,���*Ko�@�Z4B~hfj�]�XxF����`������gl{*D�K�D��0Sm��i7OpG73��b���<��*)@�y���(�m$�����T|.��7�'��*��b<�;jP
C�08��+.j�C?�*�:W����W�WK��[;@�9�G���Kf��C=�kbh�Y)�2��y$��j\���h$��ue+��y�����$I2��E��.��<���z���w�������3�AF!��AS������\8�-�p����'�zU���%�YJ�/������g���hu�B�a�+�=U�6^DO������_��O�����]�16�����m�,��U�Y:	5�}0
"���Y�V������-���?a[!��I�n����H��:#sL-�x}H�~��U�7	�N8W	)�-v���`�i9bO�0�W�[}A�%�%tp�wtoQ�/�n���T���
p���lge���2Du��q4��8�y�rz�H���g�@%k���PQ���f0�~�`��qc f���)���>Y[��?�x��K���r>�1i�S��ZdI����5V��8L�|eQ2�.��=(�k�\L+��H��(��/#lA	���_�`�;#�q�e�� 4�TI��jMvM������^��bw��r���fB�X�������~���-�!������B�q/����Y#M�a\z	l��w�� �9�'TG���K��p��s!7G������t��$�����F*m�H�;���-���REh��(�G�/EE�V��>��Jf�1�q�4[��Z�d�v8
~�x)�~���j�	��
R�k<������g0R2�����cb<��:��o�� &��ZSu��W��hr����a8
�=��O&���S��L�_vhW�d���Y�G1�n�������{�����s�3��$�}�(�ntk��[�����\��
�?�Vk�D�J��]�;�cD�	�?��F�			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???: Sorry, this command is disabled, the MzScheme library could not be loaded.???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Choice number (<Enter> cancels): CloseCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNothing to undoOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPress ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUndo number %ld not foundUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NL found][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!environment variableerror handlererror list %d of %d; %d errorsexpressions disabled at compile timefewer linesfile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal more linemore linesnew shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwhere case is ignored prepend / to make flag upper casewindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringswriting to device disabled with 'opendevice' optionProject-Id-Version: Vim 6.x
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2007-03-19 02:09+0100
PO-Revision-Date: 2007-03-21 11:51+0100
Last-Translator: �yvind A. Holm <sunny@sunbase.org>
Language-Team: Norwegian <vim.in.norwegian@sunbase.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
			  (Ikke implementert)

	Sist satt fra 

Parametere:


bruk:
          modifisert: 
         [ikke brukbar p� denne maskinen]
         [ikke brukbar med denne Vim-versjonen]
         vertsnavn: 
         brukernavn: 
        prosess-ID: 
    Navn        Prm. Omr�d Fullf�r   Definering
   #   linje
   eller:
  # TIL tag        FRA  linje i fil/tekst
 hopp linje kol fil/tekst
# %s-historie (nyeste til eldste):

# Bufferliste:

# Filmerker:

# Historie for merker inne i filer (yngst til eldst):

# Hoppliste (nyeste f�rst):

# Siste erstatningstekst:
$
# Registere:

# globale variabler:

(1) Det er mulig et annet program redigerer den samme filen.
    Hvis det er tilfelle, v�r forsiktig s� du ikke ender opp med to
    forskjellige utgaver av den samme filen n�r du gj�r forandringer.

(2) En �kt for denne filen kr�sjet.

(Du vil kanskje lagre denne filen under et annet navn

--- Autokommandoer ---
--- Globale valgverdier ---
--- Lokale valgverdier ---
--- Menyer ---
--- Valg ---
--- Registere ---
--- Skilt ---
--- Syntakselementer ---
--- "Syntax sync"-elementer ---
--- Terminalkoder ---
--- Terminaltaster ---
16-bits MS-DOS-versjon
32-bits MS-DOS-versjon
Parametere gjenkjent av gvim (Athena-versjon):

Parametere gjenkjent av gvim (GTK+-versjon):

Parametere gjenkjent av gvim (Motif-versjon):

Parametere gjenkjent av gvim (RISC OS-versjon):

Parametere gjenkjent av gvim (neXtaw-versjon):

Stor ("big") versjon 
Kan ikke opprette r�r ("pipe")

Kan ikke kj�re skall 
Kan ikke kj�re skallet sh

Kan ikke opprette tvillingprosess ("fork")

Kommando avsluttet

Kompilert 
Fant en swapfil ved navn "
Diger ("huge") versjon 
Inkluderte patcher: 
MS-Windows 16-bits versjon
MS Windows 16/32-bits grafisk versjon
MS-Windows 32-bits GUI-versjon
MS-Windows 32-bits konsollversjon
MS Windows 64-bits grafisk versjon
MacOS X (unix)-versjon
MacOS X-versjon
MacOS-versjon
Det er mulig ingen forandringer ble gjort, eller Vim oppdaterte ikke swapfilen.
Mer info med: "vim -h"

Normal versjon 
RISC OS-versjon
Liten ("small") versjon 
Spinkel ("tiny") versjon 
Vim: Mottok X-feil

ADVARSEL: Originalfilen kan bli tapt eller �delagt

[bytes] totalt alloc-frigjort %lu-%lu, i bruk %lu, topp-bruk %lu

forand linje kol tekst
merk linje kol fil/tekst
skallet returnerte 
synkroniserer p� elementer                                  for standard Vim                                   for to moduser                datert:           eies av:          [kan ikke �pnes]         [kan ikke leses]         [ser ikke ut som en Vim-swapfil]         [fra Vim versjon 3.0]         filnavn:       -- ingen --
      NYERE enn swapfil!
         exrc-fil for brukere: "        vimrc-fil for brukere: "    Hvis det er tilfelle, bruk ":recover" eller "vim -r     Hvis du har gjort dette allerede, slett swapfilen "    Avslutt, eller fortsett med varsomhet.
    linje=%ld  id=%d  navn=%s          menyfil p� systemet: "       gvimrc-fil for brukere: "   I n�v�rende katalog:
   I katalog    Bruker spesifisert navn:
   datert:    vertsnavn:         vimrc-fil p� systemet: "  (Allerede listet)   exrc-fil nr. 2 for brukere: "  DEBUGGINGSVERSJON  Funksjoner inkludert (+) eller ikke (-):
  IKKE FUNNET Bruker tag med forskjellig bokstavst�rrelse!       $VIM faller tilbake p�: "       gvimrc-fil p� systemet: " # pid    databasenavn                        legg til sti
 (Avbrutt) (IKKE FUNNET) (inkluderer tidligere utlistede treff) (sett inn) (sett inn) Rulling (^E/^Y) (lang) (linjen slettet) (ikke st�ttet) (lim inn) (erstatt) (erstatt) Rulling (^E/^Y) (kj�rer fortsatt) (v-erstatt)  vimrc-fil nr. 2 for brukere: "  vimrc-fil nr. 3 for brukere: " < "%.*s" Legger til arabisk KONVERTERINGSFEIL Kommandolinje-fullf�ring (^V^N^P) Kopi %d av %d Fullf�ring av defineringer (^D^N^P) Fullf�ring fra ordliste (^K^N^P) FEILET Fullf�ring av filnavn (^F^N^P) hebraisk SETT INN Lokal n�kkelordfullf�ring (^N^P) N�kkelordfullf�ring (^N^P) Omni-fullf�ring (^O^N^P) Stim�nster-fullf�ring (^N^P) ERSTATT OMVENDT VELG VELG BLOKK VELG LINJE MELLOMROM/d/j: Skjerm/side/linje ned, b/u/k: Opp, q: Avslutt  Fullf�ring av tag (^]^N^P) Thesaurus-fullf�ring (^T^N^P) Brukerdefinert fullf�ring (^U^N^P) VISUELL VISUELL BLOKK VISUELL LINJE V-ERSTATT Fullf�ring av hel linje (^L^N^P) [Modifisert] [l] [s] lagt til kan ikke brukes p� denne maskinen.
 kan ikke brukes med denne Vim-versjonen.
$VIMRUNTIME faller tilbake p�: " i Win32s-modus info linjeskift linjer f�r topplinje merker i %ld linjer i 1 linje eller mer returnerte
 vim [parametere]  med OLE-st�tte skrevet"
    for � unng� denne meldingen.
"
    for � gjenopprette forandringene (se ":help recovery").
" finnes allerede!# Denne viminfo-filen ble generert av Vim %s.
# Verdien av 'encoding' n�r denne filen ble skrevet
# Du kan redigere den hvis du er forsiktig!

%-5s: %-30s (Bruk: %s)%3d  %s %s  linje %ld%<%f%h%m%=Side %N%d buffere ble slettet%d buffere ble lastet ut%d buffere ble visket ut%d duplisert(e) ord i %s%d filer � redigere
%d andre filer � redigere. Avslutt likevel?%d av %d redigert%ld %s; %s #%ld  %s%ld Kol; %ld tegn%ld linjer fjernet%ld linjer "%s"-et %d ganger%ld linjer "%s"-et 1 gang%ld linjer --%d%%--%ld linjer forandret%ld linjer filtrert%ld linjer rykket inn %ld linjer flyttet%ld linjer � rykke inn�... %ld linjer kopiert til utklippstavlen%ld linjer, %ld treff%ld linjer lagt til%ld sekunder siden%ld erstatninger%s Autokommandoer for "%s"%s avbrutt%s forkastet%s linje %ld%s satt p� venting%s gjenopptatt%s returnerer #%ld%s returnerer %s%s-verdi er forskjellig fra det som er bruk i en annen .aff-fil%s, linje %ld%sviminfo: %s i linje: &Avbryt&Forkast&Filter&Hjelp&OK&OK
&Avbryt&OK
&�pne fil&Ok&�pne skrivebeskyttet
&Rediger likevel
&Gjenopprett
&Slett den
&Avslutt
Av&bryt&�pne skrivebeskyttet
&Rediger likevel
&Gjenopprett
&Avslutt
Av&brytE&rstatt&Angre&Ja
&Nei&Ja
&Nei
&Avbryt&Ja
&Nei
&Lagre alle
&Forkast alle
&Avbryt' ikke kjent. Tilgjengelige innebygde terminaler er:'columns' er ikke 80, kan ikke utf�re eksterne kommandoer'dictionary'-valget er tomt'history'-valget er null'readonly'-valget er satt for "%s".
Vil du lagre likevel?'thesaurus'-valget er tomt(%d av %d)%s%s: (+%ld for BOM)(Avbrutt) (Ugyldig)+			Start p� slutten av filen+-%s%3ld linjer: +--%3ld linjer foldet +<lnr>		Start p� linje <lnr>+reverse		Ikke bruk invers video (ogs�: +rv),
eller filen er blitt �delagt.-               les tekst fra stdin--			Bare filnavn etter dette-- Mer ---- S�ker�...--- Inkluderte filer --Slettet----Ingen linjer i bufferen----cmd <kommando>	Kj�r <kommando> f�r lasting av vimrc-filer--columns <antall>	Innledende bredde p� vindu i kolonner--literal		Ikke utvid jokertegn--noplugin		Ikke last plugin-skripts--remote <filer>	Rediger <filer> p� en Vim-tjener hvis mulig--remote-expr <uttrykk>	Evaluer <uttrykk> p� en Vim-tjener og skriv resultatet--remote-send <n�kler>	Send <n�kler> til en Vim-tjener og avslutt--remote-silent <filer>  Samme, ikke klag hvis tjeneren mangler--remote-wait <filer>  Som --remote men vent p� filer som blir redigert--remote-wait-silent <files>  Samme, ikke klag hvis tjeneren mangler--role <role>	Sett en unik "role" for � identifisere hovedvinduet--rows <antall>	Innledende h�yde p� vindu i rader--serverlist		List navn p� tilgjengelige Vim-tjenere og avslutt--servername <navn>	Send til/bli Vim-tjeneren <navn>--socketid <xid>	�pne Vim innenfor et annet GTK-skjermelement--version		Skriv versjonsinformasjon og avslutt-A			Start i arabisk modus-C			Kompatibel med Vi: 'compatible'-D			Debuggingsmodus-F			Start i persisk (Farsi) modus-H			Start i hebraisk modus-L			Samme som -r-M			Modifiseringer i teksten ikke tillatt-N			Ikke helt Vi-kompatibel: 'nocompatible'-O[N]		Som -o men splitt loddrett-P <foreldretittel>	Start Vim innenfor et foreldreprogram-R			Skrivebeskyttet modus (som "view")-S <�kt>		Kj�r filen <�kt> etter lasting av f�rste fil-T <terminal>	Sett terminaltypen til <terminal>-U <gvimrc>		Bruk <gvimrc> istedenfor eventuell .gvimrc-V[N]		Informasjonsniv� ("Verbose")-W <utskript>	Skriv alle skrevne kommandoer til filen <utskript>-X			Unng� oppkobling til X-tjener-Z			Begrenset modus (som "rvim")-b			Bin�rmodus-background <farge>	Bruk <farge> p� bakgrunnen (ogs�: -bg)-boldfont <skrifttype>	Bruk <skrifttype> p� fet skrift-borderwidth <bredde>	Bruk en rammebredde tilsvarende <bredde> (ogs�: -bw)-c <kommando>	Kj�r <kommando> etter lasting av f�rste fil-d			Differanse-modus (som "vimdiff")-dev <enhet>		Bruk <enhet> for I/U-display <display>	Koble vim til denne spesielle X-tjeneren-display <display>	Kj�r vim p� <display>-display <display>	Kj�r vim p� <display> (ogs�: --display)-e			Ex-modus (som "ex")-f			Ikke bruk newcli for � �pne vindu-f  eller  --nofork	Forgrunn: Ikke fork n�r GUI-et startes-font <skrifttype>		Bruk <skrifttype> p� normal tekst (ogs�: -fn)-foreground <farge>	Bruk <farge> p� normal tekst (ogs�: -fg)-g			Kj�r med GUI (som "gvim")-geometry <geom>	Bruk <geom> for innledende vindusplassering (ogs�: -geom)-h  eller  --help	Skriv hjelpen (denne teksten) og avslutt-i <viminfo>		Bruk <viminfo> istedenfor .viminfo-iconic		Start vim som ikon-italicfont <skrifttype>	Bruk <skrifttype> p� skr� tekst-l			Lisp-modus-m			Modifisering (lagring av filer) ikke tillatt-menuheight <h�yde>	Bruk en menyblokkh�yde tilsvarende <h�yde> (ogs�: -mh)-n			Ingen swapfil, bruk bare hukommelsen-name <navn>		Bruk ressurs som om Vim var <navn>-o[N]		�pne N vinduer (standard: Ett for hver fil)-q [feilfil]    rediger fil med f�rste feil-r			List swapfiler og avslutt-r (med filnavn)	Gjenopprett kr�sjet �kt-register		Registrer gvim for OLE-reverse		Bruk invers video (ogs�: -rv)-s			Stille (batch) modus (bare for "ex")-s <innskript>	Les normalmodus-kommandoer fra filen <innskript>-scrollbarwidth <bredde>  Bruk en rullefeltbredde tilsvarende <bredde> (ogs�: -sw)-t tag          rediger fil hvor en tag er definert-u <vimrc>		Bruk <vimrc> istedenfor eventuell .vimrc-unregister		Fjern OLE-registrering for gvim-v			Vi-modus (som "vi")-w <utskript>	Legg alle skrevne kommandoer til filen <utskript>-x			Rediger krypterte filer-xrm <ressurs>	Sett den spesifiserte ressursen-y			Lett modus (som "evim", uten modus)'/'-linje ignorert i %s linje %d: %s'/encoding='-linje etter ord ignorert i %s linje %d: %s1 buffer ble slettet1 buffer ble lastet ut1 buffer ble visket ut1 tegn1 linje "%s"-et %d ganger1 linje "%s"-et 1 gang1 linje --%d%%--1 linje forandret1 linje rykket inn 1 linje fjernet1 linje flyttet1 linje kopiert til utklippstavlen1 linje, 1 treff1 annen fil � redigere. Avslutt likevel?1 linje lagt til1 erstatning gvimrc-fil nr. 2 for brukere: " gvimrc-fil nr. 3 for brukere: ": Sending av uttrykk feilet.
: Send feilet.
: Send feilet. Pr�ver � utf�re lokalt
; samsvarer med <%s>%s%s  %d,  Hex %02x,  Oktal %03o<bufferobjekt (slettet) ved %8lX><kan ikke �pne> <tom><vindu %d><vindusobjekt (slettet) ved %.8lX><vindusobjekt (ukjent) ved %.8lX>> %d, Hex %04x, Oktal %o> %d, Hex %08x, Oktal %o??? Herfra til ???SLUTT kan linjer v�re rotet til??? Herfra til ???SLUTT kan linjer ha blitt lagt til eller slettet???: Denne kommandoen er deaktivert, MzScheme-biblioteket kunne ikke lastes.???BLOKK MANGLER???TOM BLOKK???SLUTT???FEIL LINJEANTALL???LINJER MANGLER???MANGE LINJER MANGLERANCHOR_BUF_SIZE for liten.Legg til en ny databaseLa til cscope-database %sAffiks ogs� brukt for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST i %s linje %d: %sAffiksnavn for langt i %s linje %d: %sAltAlle cscope-databaser resattAlle inkluderte filer ble funnetAllerede ved nyeste forandringAllerede ved eldste forandringAllerede bare ett vinduLegg til filParameter mangler etterP� linjeFors�k p� � �pne skriptfilen igjen: "Tilbake i originalenOmr�de bakover er angitt, OK � swappeBli registrert bruker av Vim!Pip!F�r byte %ldBunnB�de SAL- og SOFO-linjer i %sStoppunkt i "%s%s" linje %ldBrutt betingelse i %s linje %d: %sBla gjennom klasseCOMPOUNDSYLMAX brukt uten SYLLABLEKaller skall for � utf�re "%s"Kan ikke finne midlertidig fil for konverteringAvbrytKan ikke koble til NetbeansKan ikke koble til Netbeans #2Kan ikke koble til SNiFF+. Sjekk milj�et ("environment") (sniffemacs m� bli funnet i $PATH).
Kan ikke opprette Kan ikke utf�re Kan ikke �pne NIL:
Kan ikke �pne filen "%s"Kan ikke �pne for lesing: "Kan ikke �pne for skript-utdata: "Kan ikke kj�re en katalog: "%s"Forandre "%.*s" til:Valgnummer (<Enter> avbryter)LukkKol %s av %s; Linje %ld av %ld; Ord %ld av %ld; Byte %ld av %ldKol %s av %s; linje %ld av %ld; ord %ld av %ld; tegn %ld av %ld; byte %ld av %ldKommandolinjeKompilering: Kompilator: Pakket %d av %d noder; %d (%d%%) igjenPakker ordtre ...Konverteringsfeil for ord i %s linje %d: %sKonvertering i %s ikke st�ttetKonvertering i %s ikke st�ttet: Fra %s til %sKonvertering med 'charconvert' feiletKlarte ikke ordne opp i funksjonspekere til DLL-en!Klarte ikke laste vim32.dll!Cscope-tag: %sN�v�rende %sspr�k: "%s"Slett ".swp"-filen etterp�.

Differanse med VimForskjellig kombinasjonsflagg i affiksblokk som fortsetter i %s linje %d: %sRetningKatalogerKatalog	*.ingenting
Vil du virkelig skrive til denFerdig!Dobbel ; i variabellisteNedDuplisert '/encoding='-linje ignorert i %s linje %d: %sDuplisert '/regions='-linje ignorert i %s linje %d: %sDuplisert affiks i %s linje %d: %sDuplisert tegn i MAP i %s linje %dDuplisert ord i %s linje %d: %sE100: Ingen annen buffer i differansemodusE101: Mer enn to buffere i differansemodus, vet ikke hvilken som skal brukesE102: Kan ikke finne buffer "%s"E103: Bufferen "%s" er ikke i differansemodusE104: Escape er ikke lovlig i spesialtegnE105: Bruk av :loadkeymap utenfor en kj�rt filE107: Mangler parenteser: %sE108: Variabelen finnes ikke: "%s"E109: Mangler ':' etter '?'E10: \ skulle ha v�rt fulgt av /, ? eller &E110: Mangler ')'E111: Mangler ']'E112: Navn p� valg mangler: %sE113: Ukjent valg: %sE114: Mangler anf�rselstegn ("): %sE115: Mangler apostrof ('): %sE117: Ukjent funksjon: %sE118: For mange parametere til funksjonen: %sE119: Ikke nok parametere til funksjonen: %sE11: Ugyldig i kommandolinjevindu; <ENTER> utf�rer, CTRL-C avslutterE120: Bruk av "<SID>" utenfor skript-sammenheng: %sE121: Udefinert variabel: %sE122: Funksjonen %s eksisterer allerede, legg til ! for � erstatte denE124: Mangler '(': %sE125: Ugyldig parameter: %sE126: Mangler :endfunctionE128: Funksjonsnavn m� ha stor forbokstav eller inneholde et kolon: %sE129: Funksjonsnavn n�dvendigE12: Kommandoen er ikke tillatt fra exrc/vimrc i n�v�rende katalog eller tags�kE130: Ukjent funksjon: %sE131: Kan ikke slette funksjonen %s: Den er i brukE132: Funksjonskalldybden er st�rre enn 'maxfuncdepth'E133: :return er ikke innenfor en funksjonE134: Flytting av linjer inn i seg selvE135: *Filter* Autokommandoer m� ikke forandre n�v�rende bufferE136: viminfo: For mange feil, hopper over resten av filenE137: Viminfo-fil er ikke skrivbar: %sE138: Kan ikke lagre viminfo-fil %s!E139: Filen er lastet i en annen bufferE13: Filen finnes (legg til ! for � overstyre)E140: Bruk ! for � skrive delvis bufferE141: Mangler filnavn for buffer %ldE142: Filen ble ikke lagret: Lagring er deaktivert med 'write'-valgetE143: Autokommandoer slettet uventet den nye bufferen %sE144: Ikke-numerisk parameter til :zE145: Skallkommandoer er ikke tillatt i rvimE146: Regul�re uttrykk kan ikke bli adskilt av bokstaverE147: Kan ikke gj�re :global rekursivE148: Regul�rt uttrykk mangler i global kommandoE149: Dessverre ingen hjelp for %sE14: Ugyldig adresseE150: Er ikke en katalog: %sE152: Kan ikke �pne %s for skrivingE153: Kan ikke �pne %s for lesingE154: Duplikat-tag "%s" i filen %s/%sE155: Ukjent skilt: %sE156: Mangler skiltnavnE157: Ulovlig skilt-ID: %ldE158: Ugyldig buffernavn: %sE159: Mangler skiltnummerE15: Ugyldig uttrykk: %sE160: Ukjent skiltkommando: %sE161: Fant ikke stoppunkt: %sE162: Ikke lagret siden siste forandringer i bufferen "%s"E163: Det er bare en fil � redigereE164: Kan ikke g� forbi f�rste filE165: Kan ikke g� forbi siste filE166: Kan ikke �pne lenket fil for skrivingE167: :scriptencoding brukt utenfor en kj�rt filE168: :finish brukt utenfor en kj�rt filE169: Kommando altfor rekursivE16: Ugyldig omr�deE170: Mangler :endforE170: Mangler :endwhileE171: Mangler :endifE172: Bare ett filnavn tillattE173: %ld andre filer � redigereE173: 1 annen fil � redigereE174: Kommandoen finnes allerede: Legg til ! for � erstatte denE175: Ingen attributt spesifisertE176: Ugyldig antall parametereE177: Antall repeteringer kan ikke bli spesifisert to gangerE178: Ugyldig standardverdi for antall repeteringerE179: Trenger parameter til -completeE17: "%s" er en katalogE180: Ugyldig "complete"-verdi: %sE181: Ugyldig attributt: %sE182: Ugyldig kommandonavnE183: Brukerdefinerte kommandoer m� ha stor forbokstavE184: Brukerdefinert kommando finnes ikke: %sE185: Kan ikke finne fargeoppsettet %sE186: Ingen tidligere katalogE187: UkjentE188: Lesing av vindusposisjon er ikke implementert p� denne plattformenE189: "%s" finnes (legg til ! for � overstyre)E18: Uventede tegn i :letE190: Kan ikke �pne "%s" for skrivingE191: Parameter m� v�re en bokstav eller vanlig/baklengs apostrofE192: Rekursiv bruk av :normal er for dypE193: :endfunction er ikke innenfor en funksjonE194: Ingen alternative filnavn tilgjengelig som erstatning for '#'E195: Kan ikke �pne viminfo-fil for lesingE196: Ingen spesialtegn i denne versjonenE197: Kan ikke sette spr�k til "%s"E198: cmd_pchar utenfor kommandolengdenE199: Aktivt vindu eller buffer slettetE19: Merket har et ugyldig linjenummerE200: "*ReadPre"-autokommandoer gjorde filen uleseligE201: "*ReadPre"-autokommandoer m� ikke forandre n�v�rende bufferE202: Konverteringen gjorde filen uleselig!E203: Autokommandoer slettet eller lastet ut buffer som skulle lagresE204: Autokommando forandret linjeantall p� en uventet m�teE205: Patchmode: Kan ikke lagre originalfilE206: patchmode: Kan ikke oppdatere tom originalfilE207: Kan ikke slette backupfilE208: Feil under skriving til "%s"E209: Feil under lukking av "%s"E20: Merket ble ikke sattE210: Feil under lesing av "%s"E211: Filen "%s" er ikke lenger tilgjengeligE212: Kan ikke �pne fil for skrivingE213: Kan ikke konvertere (legg til ! for � lagre uten konvertering)E214: Kan ikke finne midlertidig fil for skrivingE215: Ulovlig tegn etter *: %sE216: Handlingen finnes ikke: %sE216: Gruppen eller handlingen finnes ikke: %sE217: Kan ikke utf�re autokommandoer for ALLE hendelserE218: N�sting av autokommandoer for dypE219: Mangler {.E21: Kan ikke gj�re forandringer, 'modifiable' er avE220: Mangler }.E222: Legger til allerede lest bufferE223: Rekursiv mappingE224: Global forkortelse finnes allerede for %sE225: Global mapping finnes allerede for %sE226: Forkortelse finnes allerede for %sE227: Mappingen finnes allerede for %sE228: makemap: Ulovlig modusE229: Kan ikke starte grafisk brukergrensesnitt (GUI)E22: Skripts n�stet for dyptE230: Kan ikke lese fra "%s"E231: 'guifontwide' ugyldigE232: Kan ikke lage BalloonEval med b�de melding og tilbakekallE233: Kan ikke �pne displayE234: Ukjent skrifttypesett: %sE235: Ukjent skrifttype: %sE236: Skrifttypen "%s" har ikke fast breddeE237: Valg av skriver feiletE238: Feil under utskrift: %sE239: Ugyldig skilttekst: %sE23: Ingen alternativ filE240: Ingen forbindelse med Vim-tjenerenE241: Klarer ikke sende til %sE243: Parameter ikke st�ttet: "-%s"; Bruk OLE-versjonen.E244: Ulovlig navn p� tegnsett "%s" i skrifttypenavn "%s"E245: Ulovlig tegn '%c' i skrifttypenavn "%s"E246: Autokommandoen "FileChangedShell" slettet bufferE247: Ingen registrert tjener kalt "%s"E248: Klarte ikke sende kommando til destinasjonsprogrammetE24: Forkortelsen finnes ikkeE250: Skrifttyper for de f�lgende tegnsett mangler i fontsett %s:E251: Registry-egenskapen for VIM-oppf�ringen er ikke korrekt. Slettet!E252: Navn p� skrifttypesett: %sE253: Navn p� skrifttypesett: %s
E254: Kan ikke reservere farge %sE255: Kunne ikke lese inn skiltdata!E257: cstag: Tag ikke funnetE258: Klarer ikke sende til klientenE259: Ingen treff funnet for cscope-foresp�rsel %s av %sE25: GUI kan ikke brukes: Ikke sl�tt p� under kompileringE261: cscope-forbindelse %s ikke funnetE262: Feil under lesing av cscope-forbindelse %ldE263: Denne kommandoen er deaktivert, Python-biblioteket kunne ikke lastes.E264: Python: Feil under initialisering av I/U-objekterE266: Denne kommandoen er deaktivert, Ruby-biblioteket kunne ikke lastes.E267: Uventet returnE268: Uvented nextE269: Uventet breakE26: Hebraisk kan ikke brukes: Ikke sl�tt p� under kompilering
E270: Uventet redoE272: Ubehandlet unntakE273: Ukjent longjmp-status %dE274: Sniff: Feil under lesing. FrakobletE275: Ukjent SNiFF+-foresp�rsel: %sE276: Feil ved oppkobling til SNiFF+E277: Klarer ikke lese svar fra tjenerenE278: SNiFF+ ikke tilkobletE279: Ikke en SNiFF+-bufferE27: Persisk (Farsi) kan ikke brukes: Ikke sl�tt p� under kompilering
E280: TCL KRITISK FEIL: reflist skadet!? Vennligst rapporter dette til vim-dev@vim.orgE281: TCL-FEIL: Avslutningskode er ikke int!? Vennligst rapporter dette til vim-dev@vim.orgE282: Kan ikke lese fra "%s"E283: Ingen merker samsvarer med "%s"E284: Kan ikke sette IC-verdier ("Input Context")E285: Klarte ikke opprette inndatakontekstE286: Klarte ikke �pne inndatametodeE287: Advarsel: Klarte ikke sette "destroy callback" til inndatametodeE288: Inndatametode st�tter ikke enhver stilE289: Inndatametode st�tter ikke min "preedit" typeE28: Uthevingsgruppe finnes ikke: %sE290: "over-the-spot"-stil trenger et skrifttypesettE291: Din GTK+ er eldre enn 1.2.3. Statusomr�de deaktivertE292: Inndatametodetjener kj�rer ikkeE293: Blokken var ikke l�stE294: S�kefeil i lesing av swapfilE295: Lesefeil i swapfilE296: S�kefeil i skriving til swapfilE297: Skrivefeil i swapfilE298: Hentet ikke blokk nummer 0?E298: Hentet ikke blokk nummer 1?E298: Hentet ikke blokk nummer 2?E299: Evaluering av Perl er ikke tillatt i sandkassen uten "Safe"-modulenE29: Ingen innlagt tekst endaE300: Swapfilen finnes allerede (symlenke-angrep?)E301: Opps, mistet swapfilen!!!E302: Klarte ikke skifte navn p� swapfilE303: Klarte ikke �pne swapfil for "%s", gjenoppretting umuligE304: ml_upd_block0(): Hentet ikke blokk 0??E305: Ingen swapfil funnet for %sE306: Kan ikke �pne %sE307: %s ser ikke ut som en Vim-swapfilE308: Advarsel: Originalfilen kan ha blitt forandretE309: Klarte ikke lese blokk 1 fra %sE30: Ingen tidligere kommandolinjeE310: ID til blokk 1 er feil (%s ikke en ".swp"-fil?)E311: Gjenoppretting avbruttE312: Feil oppdaget under gjenoppretting; se etter linjer som starter med ???E313: Kan ikke bevare, swapfil manglerE314: Bevaring feiletE315: ml_get: Ugyldig lnum: %ldE316: ml_get: Kan ikke finne linje %ldE317: Pekerblokk-id feilE317: Pekerblokk-id feil 2E317: Pekerblokk-id feil 3E317: Pekerblokk-id feil 4E318: Oppdaterte for mange blokker?E319: Kommandoen er ikke tilgjengelig i denne versjonenE31: Mappingen finnes ikkeE320: Kan ikke finne linje %ldE321: Kunne ikke laste "%s" p� nyttE322: Linjenummer utenfor omr�de: %ld forbi sluttenE323: Linjeantall feil i blokk %ldE324: Kan ikke �pne Postscript-fil for skrivingE325: VIKTIGE326: For mange swapfiler funnetE327: Del av menyelement er ikke undermenyE328: Menyen eksisterer bare i en annen modusE329: Ingen "%s"-menyE32: Mangler filnavnE330: Menysti kan ikke lede til en undermenyE331: Kan ikke legge til menyelementer direkte p� menylinjenE332: Skilletegn kan ikke v�re del av en menystiE333: Menystien m� lede til et menyvalgE334: Fant ikke menyen: %sE335: Menyen er ikke definert for %s-modusE336: Menystien m� lede til en undermenyE337: Fant ikke menyen - sjekk menynavnetE338: Dessverre ingen filbehandler i konsollmodusE339: S�kestrengen er for langE33: Ingen tidligere erstatninger med regul�re uttrykkE340: Linjen blir for langE341: Intern feil: lalloc(%ld, )E342: Ikke mer ledig hukommelse! (Reserverer %lu bytes)E343: Ugyldig sti: '**[nummer]' m� v�re p� slutten av stien eller bli etterfulgt av '%s'.E344: Kan ikke finne katalogen "%s" i "cdpath"E345: Kan ikke finne filen "%s" i stienE346: Ingen flere katalog-"%s" funnet i "cdpath"E347: Ingen flere fil-"%s" funnet i stienE348: Ingen streng under mark�rE349: Ingen identifikator under mark�rE34: Ingen tidligere kommandoE350: Kan ikke lage fold med n�v�rende 'foldmethod'E351: Kan ikke slette fold med n�v�rende 'foldmethod'E352: Kan ikke slette folder med n�v�rende 'foldmethod'E353: Ingenting i register %sE354: Ugyldig registernavn: '%s'E355: Ukjent valg: %sE356: "get_varp"-FEILE357: 'langmap': Samsvarende tegn mangler for %sE358: 'langmap': Ekstra tegn etter semikolon: %sE359: Forandring av skjermmodus er ikke st�ttetE35: Ingen tidligere regul�re uttrykkE360: Kan ikke kj�re skall med "-f"-valgE363: S�kestrengen bruker mer hukommelse enn 'maxmempattern'E364: Bibliotek-kall feilet for "%s()"E365: Feil under utskrift av Postscript-filE367: Gruppen finnes ikke: "%s"E369: Ugyldig element i %s%%[]E36: Ikke nok plassE370: Klarte ikke laste bibliotek %sE371: Kommando ikke funnetE372: For mange %%%c i formatstrengE373: Uventet %%%c i formatstrengE374: Mangler ] i formatstrengE375: %%%c ikke st�ttet i formatstrengE376: Ugyldig %%%c i formatstreng-prefiksE377: Ugyldig %%%c i formatstrengE378: 'errorformat' inneholder ikke s�kestrengE379: Manglende eller tomt katalognavnE37: Ikke lagret siden forrige forandring (legg til ! for � overstyre)E380: P� bunnen av quickfix-stackE381: P� toppen av quickfix-stackE382: Kan ikke lagre, 'buftype'-valget er sattE383: Ugyldig s�kestreng: %sE384: S�ket kom til TOPPEN uten treff p�: %sE385: S�ket kom til BUNNEN uten treff p�: %sE386: Forventet '?' eller '/' etter ';'E387: Treffet er p� n�v�rende linjeE388: Fant ikke definisjonenE389: Fant ikke s�ketekstenE38: NullparameterE390: Ulovlig parameter: %sE391: Syntaksklyngen finnes ikke: %sE392: Syntaksklyngen finnes ikke: %sE393: "group[t]here" aksepteres ikke herE394: Fant ikke regionelement for %sE395: "contains"-parameter aksepteres ikke herE396: "containedin"-parameter aksepteres ikke herE397: Trenger filnavnE398: Mangler '=': %sE399: Ikke nok parametere: syntax region %sE39: Nummer forventetE400: Ingen klynge er spesifisertE401: Skilletegn for s�ketekst ble ikke funnet: %sE402: S�ppel etter s�ketekst: %sE403: syntax sync: S�kestreng for linjefortsettelser er spesifisert to gangerE404: Ulovlige parametere: %sE405: Mangler "er lik"-tegn: %sE406: Tomt parameter: %sE407: %s er ikke tillatt herE408: %s m� v�re f�rst i "contains"-listeE409: Ukjent gruppenavn: %sE40: Kan ikke �pne feilfilen %sE410: Ugyldig ":syntax"-delkommando: %sE411: Fant ikke uthevingsgruppe: %sE412: Ikke nok parametere: ":highlight link %s"E413: For mange parametere: ":highlight link %s"E414: Syntaxgruppen har oppsett, uthevingslenke ignoreresE415: Uventet "er lik"-tegn: %sE416: Mangler "er lik"-tegn: %sE417: Mangler parameter: %sE418: Ulovlig verdi: %sE419: Ukjent forgrunnsfargeE41: Ikke mer ledig hukommelse!E420: Ukjent bakgrunnsfargeE421: Kjenner ikke til fargenavnet eller -nummeret: %sE422: Terminalkoden er for lang: %sE423: Ulovlig parameter: %sE424: For mange forskjellige uthevingsattributter i brukE425: Kan ikke g� f�r f�rste samsvarende tagE426: Fant ikke tag: %sE427: Det finnes bare en samsvarende tagE428: Kan ikke g� forbi siste samsvarende tagE429: Filen "%s" finnes ikkeE42: Ingen feilE430: Sti til tagfil kuttet for %s
E431: Formatfeil i tagfil "%s"E432: Tagfil ikke sortert: %sE433: Ingen tagfilE434: Kan ikke finne tags�kestrengE435: Kunne ikke finne tag, bare gjetter!E436: Ingen "%s"-oppf�ring i termcapE437: Terminalfunksjonen "cm" n�dvendigE438: u_undo: Gale linjenummerE439: Angrelisten er skadetE43: �delagt s�kestrengE440: Angrelisten manglerE441: Vindu for forh�ndsvisning finnes ikkeE442: Kan ikke splitte "topleft" og "botright" p� en gangE443: Kan ikke rotere n�r et annet vindu er splittetE444: Kan ikke lukke det siste vinduetE445: Annet vindu inneholder forandringerE446: Ingen filnavn under mark�renE447: Kan ikke finne filen "%s" i stienE448: Klarte ikke laste biblioteksfunksjon %sE449: Ugyldig uttrykk mottattE44: Skadet program med regul�rt uttrykkE455: Feil under skriving til Postscript-filE456: Fant ikke Postscript-ressursfilen "%s.ps"E456: Fant ikke Postscript-ressursfilen "cidfont.ps"E456: Fant ikke Postscript-ressursfilen "prolog.ps"E456: Kan ikke �pne filen "%s"E457: Kan ikke lese Postscript-ressursfil "%s"E459: Kan ikke g� tilbake til tidligere katalogE45: 'readonly'-valget er satt (legg til ! for � overstyre)E460: Ressursforgreningen ville g�tt tapt (legg til ! for � overstyre)E461: Ugyldig variabelnavn: %sE462: Kunne ikke forberede for relasting "%s"E463: Regionen er beskyttet og kan ikke modifiseresE464: Flertydig bruk av brukerdefinert kommandoE465: :winsize trenger to numeriske parametereE466: :winpos trenger to numeriske parametereE467: Tilpassede fullf�ringer trenger et funksjonsparameterE468: Fullf�ringsparameter er bare tillatt for tilpasset fullf�ringE469: Ugyldig "cscopequickfix"-flagg %c for %cE46: Kan ikke forandre skrivebeskyttet variabel "%s"E470: Kommandoen avbruttE471: Parameter n�dvendigE472: Kommandoen feiletE473: Intern feilE474: Ugyldig parameterE475: Ugyldig paramter: %sE476: Ugyldig kommandoE477: Ingen ! tillattE478: Ingen panikk!E479: Ingen treffE47: Feil under lesing av feilfilenE480: Ingen treff: %sE481: Omr�de er ikke tillattE482: Kan ikke opprette filen %sE483: Kan ikke hente navn p� midlertidig filE484: Kan ikke �pne filen %sE485: Kan ikke lese filen %sE486: Fant ikke s�keteksten: %sE487: Parameteret m� v�re positivtE488: Etterf�lgende tegnE48: Ikke tillatt i sandkassenE490: Ingen fold funnetE492: Er ikke en editorkommandoE493: Omr�de bakover er angittE494: Bruk w eller w>>E495: Ingen autokommandofilnavn tilgjengelig som erstatning for "<afile>"E496: Ingen buffernummer tilgjengelig som erstatning for "<abuf>" i autokommandoE497: Ingen autokommandonavn tilgjengelig som erstatning for "<amatch>"E498: Ingen ':source'-filnavn tilgjengelig som erstatning for "<sfile>"E499: Tomt filnavn for '%' eller '#', virker bare med ":p:h"E49: Ugyldig "scroll"-verdiE500: Resulterer i en tom strengE501: Ved slutten av filenE505: E506: Kan ikke skrive til backupfil (legg til ! for � overstyre)E507: Feil under lukking av backupfil (legg til ! for � overstyre)E508: Kan ikke lese fil for backup (legg til ! for � overstyre)E509: Kan ikke lese backupfil (legg til ! for � overstyre)E50: For mange \z(E510: Kan ikke lage backupfil (legg til ! for � overstyre)E512: Lukking feiletE513: Feil under skriving, konvertering feilet (gj�r 'fenc' tom for � overstyre)E514: Feil under lagring (full disk?)E515: Ingen buffere ble lastet utE516: Ingen buffere ble slettetE517: Ingen buffere ble visket utE518: Ukjent valgE519: Valget er ikke st�ttetE51: For mange %s(E520: Ikke tillatt i moduslinjeE521: Nummer n�dvendig etter =E522: Ikke funnet i termcapE523: Ikke tillatt herE524: Mangler kolonE525: Tom strengE526: Mangler nummer etter <%s>E527: Mangler kommaE528: M� spesifisere en "'"-verdiE529: Kan ikke sette 'term' til tom strengE52: Usamsvarende \z(E530: Kan ikke forandre "term" i grafisk brukergrensesnittE531: Bruk ":gui" for � starte med grafisk brukergrensesnittE533: Kan ikke velge bred skrifttypeE534: Ugyldig bred skrifttypeE535: Ulovlig tegn etter <%c>E536: Komma n�dvendigE537: 'commentstring' m� v�re tom eller inneholde %sE538: Ingen st�tte for musE539: Ulovlig tegn <%s>E53: Usamsvarende %s%%(E540: Uttrykkssekvens som ikke er lukketE541: For mange elementerE542: Ubalanserte grupperE543: Er ikke en gyldig codepageE544: Fant ikke keymap-filE545: Mangler kolonE546: Ulovlig modusE547: Ulovlig utseende p� musepekerenE548: Siffer forventetE549: Ulovlig prosentE54: Usamsvarende %s(E550: Mangler kolonE551: Ulovlig komponentE552: Siffer forventetE553: Ingen flere elementerE554: Syntaksfeil i %s{...}E555: P� bunnen av tag-stackE556: P� toppen av tag-stackE557: Kan ikke �pne termcap-filE558: Fant ikke terminaloppf�ring i terminfoE559: Fant ikke terminaloppf�ring i termcapE55: Usamsvarende %s)E560: Bruk: cs[cope] %sE561: Ukjent cscope-s�ketypeE562: Bruk: cstag <identifikator>E563: "stat"-feilE563: stat(%s) feil: %dE564: %s er ikke en katalog eller gyldig cscope-databaseE566: Kunne ikke lage cscope-r�r ("pipe")E567: Ingen cscope-forbindelseE568: Duplisert cscope-database ikke lagt tilE569: Maksimum antall cscope-forbindelser n�ddE570: Kritisk feil i cs_manage_matchesE571: Denne kommandoen er deaktivert, Tcl-biblioteket kunne ikke lastes.E572: Avslutningskode %dE573: Ugyldig tjener-id brukt: %sE574: Ukjent registertype %dE579: N�sting av :if for dypE580: :endif uten :ifE581: :else uten :ifE582: :elseif uten :ifE583: Flere forekomster av :elseE584: :elseif etter :elseE585: N�sting av :while/:for er for dypE586: :continue uten :while eller :forE587: :break uten :while eller :forE588: :endfor uten :forE588: :endwhile uten :whileE589: 'backupext' og 'patchmode' er likeE590: Det finnes allerede et forh�ndsvisningsvinduE591: 'winheight' kan ikke v�re mindre enn 'winminheight'E592: 'winwidth' kan ikke v�re mindre enn 'winminwidth'E593: Trenger minst %d linjerE594: Trenger minst %d kolonnerE595: Inneholder uskrivelige eller brede tegnE596: Ugyldig(e) skrifttype(r)E597: Kan ikke velge skrifttypesettE598: Ugyldig skrifttypesettE599: Verdien for 'imactivatekey' er ugyldigE59: Ugyldig tegn etter %s@E600: Mangler :endtryE601: N�sting av :try for dypE602: :endtry uten :tryE603: :catch uten :tryE604: :catch etter :finallyE605: Unntak ikke fanget opp: %sE606: :finally uten :tryE607: Flere forekomster av :finallyE608: Kan ikke :throw unntak med 'Vim'-forstavelseE609: Cscope-feil: %sE60: For mange komplekse %s{...}sE612: For mange skilt definertE613: Ukjent skrifttype for skriver: %sE614: vim_SelFile: Kan ikke returnere til n�v�rende katalogE615: vim_SelFile: Kan ikke finne n�v�rende katalogE616: vim_SelFile: Kan ikke bruke skrifttypen %sE617: Kan ikke forandres i GTK+ 2 GUIE618: Filen "%s" er ikke en Postscript-ressursfilE619: Det er ikke st�tte for Postscript-ressursfilen "%s"E61: N�stede %s*E620: Klarte ikke � konvertere til utskriftskoding "%s"E621: Ressursfilen "%s" er feil versjonE622: Klarte ikke lage tvillingprosess for cscopeE623: Klarte ikke starte cscope-prosessE624: Kan ikke �pne filen "%s"E625: Kan ikke �pne cscope-database: %sE626: Kan ikke hente informasjon om cscope-databaseE62: N�stede %s%cE63: Ugyldig bruk av \_E64: %s%c etterf�lger ingentingE655: For mange symbolske linker (runddans?)E658: Mistet NetBeans-forbindelse for buffer %ldE659: Kan ikke starte Python rekursivtE65: Ulovlig tilbakereferanseE661: Dessverre ingen '%s' hjelp for %sE662: Ved starten av forandringslisteE663: Ved slutten av forandringslisteE664: Forandringslisten er tomE665: Kan ikke starte grafisk brukergrensesnitt, fant ingen gyldig fontE666: Kompilatoren er ikke st�ttet: %sE667: Fsync feiletE668: Feil tilgangsmodus for infofilen til NetBeans-forbindelse: "%s"E669: Ikke-skrivbart tegn i gruppenavnE66: \z( ikke tillatt herE670: Tegnsettblanding i hjelpefilen innenfor samme spr�k: %sE671: Fant ikke vindutittel "%s"E672: Klarer ikke �pne vindu inne i MDI-applikasjonE673: Inkompatibel multibytekoding og tegnsettE674: printmbcharset kan ikke v�re tom med multibytekodingE675: Ingen standardfont spesifisert for multibyteutskriftE676: Ingen samsvarende autokommandoer for 'acwrite'-bufferE677: Feil under skriving til midlertidig filE678: Ugyldig tegn etter %s%%[dxouU]E679: Rekursiv l�kke laster syncolor.vimE67: \z1 med venner er ikke tillatt herE680: <buffer=%d>: Ugyldig buffernummerE681: Bufferen er ikke lastetE682: Ugyldig s�kestreng eller skilletegnE683: Filnavn mangler eller ugyldig s�kestrengE684: Listeindeks utenfor omr�de: %ldE685: Intern feil: %sE686: Parameter til %s m� v�re en listeE687: F�rre m�l enn listeelementerE688: Flere m�l enn listeelementerE689: Kan bare indeksere en liste eller ordlisteE68: Ugyldig tegn etter \zE690: Mangler "in" etter :forE691: Kan bare sammenligne liste med listeE692: Ugyldig operasjon for listeE693: Kan bare sammenligne funksjonsreferanse med funksjonsreferanseE694: Ugyldig operasjon for funksjonsreferanserE695: Kan ikke indeksere en funksjonsreferanseE696: Mangler komma i liste: %sE697: Mangler slutt p� liste ']': %sE698: Variabel n�stet for dypt til � lage en kopiE699: For mange parametereE69: Mangler ] etter %s%%[E700: Ukjent funksjon: %sE701: Ugyldig type for len()E702: Funksjon for sorteringssammenligning feiletE703: Bruker en funksjonsreferanse som et nummerE704: Variabelnavn for funksjonsreferanse m� ha stor forbokstav: %sE705: Variabelnavn er i konflikt med en eksisterende funksjon: %sE706: Variabeltype samsvarer ikke med: %sE708: [:] m� komme sistE709: [:] krever en listeverdiE70: Tom %s%%[]E710: Listeverdien har flere elementer enn m�lE711: Listeverdien har ikke nok elementerE712: Parameter til %s m� v�re en liste eller ordlisteE713: Kan ikke bruke tom n�kkel med ordlisteE714: Liste p�krevetE715: Ordliste p�krevetE716: N�kkelen finnes ikke i ordliste: %sE717: Ordlisteoppf�ring finnes alleredeE718: Funksjonsreferanse n�dvendigE719: Kan ikke bruke [:] sammen med en ordlisteE71: Ugyldig tegn etter %s%%E720: Mangler kolon i ordliste: %sE721: Duplisert n�kkel i ordliste: "%s"E722: Mangler komma i ordliste: %sE723: Mangler slutt p� ordliste '}': %sE724: Variabel n�stet for dypt for visningE725: Kaller ordlistefunksjon uten ordliste: %sE726: �kning er nullE727: Starten er bak sluttenE728: Bruker en ordliste som et nummerE729: Bruker en funksjonsreferanse som en strengE72: Feil under lukking av swapfilE730: Bruker en liste som en strengE731: Bruker en ordliste som en strengE732: Bruker :endfor sammen med :whileE733: Bruker :endwhile sammen med :forE734: Feil variabeltype for %s=E735: Kan bare sammenligne ordliste med ordlisteE736: Ugyldig operasjon for ordlisteE737: N�kkelen finnes allerede: %sE738: Kan ikke liste variabler for %sE739: Kan ikke lage katalog: %sE73: Tag-stack tomE741: Verdi er l�st: %sE742: Kan ikke forandre verdi for %sE743: Variabel n�stet for dypt for (un)lockE744: NetBeans tillater ikke forandringer i skrivebeskyttede filerE745: Bruker en liste som et nummerE746: Funksjonsnavn samsvarer ikke med skriptfilnavn: %sE747: Kan ikke skifte katalog, bufferen er forandret (legg til ! for � overstyre)E748: Register ikke tidligere bruktE749: Tom bufferE74: Kommandoen er for kompleksE750: Bruk f�rst :profile start <filnavn>E751: Utdatafilnavn m� ikke ha regionnavnE752: Ingen tidligere staveerstatningerE753: Ikke funnet: %sE754: Kun opp til 8 regioner er st�ttetE755: Ugyldig region i %sE756: Stavekontroll er ikke aktivisertE757: Dette ser ikke ut som en stavefilE758: Valg av skriver feiletE759: Formateringsfeil i stavefilE75: Navnet er for langtE760: Ingen ord-antall i %sE761: Formatfeil i affiksfil FOL, LOW eller UPPE762: Tegn i FOL, LOW eller UPP er utenfor omr�deE763: Tegn i ord varierer mellom stavefilerE764: Valget '%s' er ikke sattE765: 'spellfile' har ikke %ld posterE766: Ikke nok parametre for printf()E767: For mange parametere for printf()E768: Swapfilen finnes: %s (:silent! overstyrer)E769: Mangler ] etter %s[E76: For mange [E770: Ust�ttet seksjon i stavefilE771: Gammel stavefil, trenger oppdateringE772: Stavefilen er for en nyere versjon av VimE773: Symlenkesl�yfe for "%s"E774: 'operatorfunc' er tomtE775: Eval-funksjonaliteten er ikke tilgjengeligE776: Ingen plasslisteE777: Streng eller liste forventetE778: Dette ser ikke ut som en .sug-fil: %sE779: Gammel .sug-fil, trenger oppdatering: %sE77: For mange filnavnE780: .sug-fila er for en nyere versjon av Vim: %sE781: .sug-fil samsvarer ikke med .spl-fil: %sE782: Feil under lesing av .sug-fil: %sE783: Duplisert tegn i MAP-oppf�ringE785: complete() kan bare brukes i innsettingsmodusE786: Omr�de ikke tillattE787: Uventet forandring i bufferE788: Ikke tillatt � redigere en annen buffer n�E789: Mangler ']': %sE78: Ukjent merkeE790: undojoin er ikke tillatt etter undoE791: Tom tastaturoppsett-oppf�ringE792: Tomt menynavnE793: Ingen annen buffer i differansemodus er redigerbarE794: Kan ikke sette variabel i sandkassen: "%s"E795: Kan ikke slette variabel %sE79: Klarte ikke utvide jokertegnE800: Arabisk kan ikke brukes: Ikke sl�tt p� under kompilering
E80: Feil under skrivingE81: Bruker <SID> utenom skript-kontekstE82: Kan ikke reservere plass til noen buffere, avslutter�...E83: Kan ikke reservere plass til buffer, bruker en annen�...E84: Fant ingen modifisert bufferE85: Det finnes ingen listede buffereE86: Bufferen %ld finnes ikkeE87: Kan ikke g� forbi siste bufferE88: Kan ikke g� forbi f�rste bufferE89: Ikke lagret siden forrige forandring av bufferen %ld (legg til ! for � overstyre)E90: Kan ikke laste ut siste bufferE91: 'shell'-valget er tomtE92: Fant ikke bufferen %ldE93: Mer enn ett treff for %sE94: Ingen samsvarende buffer for %sE95: En buffer med dette navnet finnes alleredeE96: Kan ikke sammenligne flere enn %ld buffereE97: Kan ikke lage differansefilerE98: Kan ikke lese differanse-utdataE99: N�v�rende buffer er ikke i differansemodusFEIL: Rediger filRediger fil i nytt vinduRediger med &VimRediger med &flere Vim-erRediger med eksisterende Vim - Rediger med enkel &VimRedigerer de(n) valgte filen(e) med VimKoding:Slutt p� funksjonSlutt p� kj�rt filSkriv krypteringsn�kkel: Skriv nummeret p� swapfil som skal brukes (0 for � avslutte): Gjenta krypteringsn�kkelen: G�r inn i debuggingsmodus. Skriv "cont" for � fortsette.G�r inn i Ex-modus. Skriv "visual" for � g� til normalmodus.FeilFeil og avbruddKlarte ikke lage prosess: Sjekk at gvim er i stien!Feil oppdaget under prosessering av %s:Ansl�tt hukommelsesbruk under kj�ring: %d bytesUnntakUnntak fanget opp: %sUnntak forkastet: %sUnntak fullf�rt: %sUtf�rer %sForventet MAP-antall i %s linje %dForventet REP(SAL)-antall i %s linje %dForventet Y eller N i %s linje %d: %sUttrykkEksterne deltreff:
FLAG etter bruk av flagg i %s linje %d: %sFilen "%s" finnes ikkeFil bevartFilerFilterS�k og erstatt (bruk '\\' for � finne en '\')Finn &nesteFinn nesteFinn streng (bruk '\\' for � finne en '\')Finn symbolFinn hva:F�rste dupliserte ord i %s linje %d: %sFlagg er ikke et tall i %s linje %d: %sSkrifttypen '%s' har ikke konstant breddeVelge skrifttypeFont%ld-bredde er ikke to ganger bredden av font0
Font0-bredde: %ld
Font0: %s
Font1-bredde: %ld

Font1: %s
Skrifttype:S�ppel etter valgparameterGenerer docu forV�r hilset, Vim-bruker!Hjelp fattige barn i Uganda!Kom til slutten av avsnittetI/U-FEILIgnorerte %d ord med ikke-ASCII-tegn i %sIgnorerte %d ord med ikke-ASCII-tegnUlovlig filnavnUlovlig flagg i %s linje %d: %sUlovlig registernavnUlovlig starttegnInndatalinjeInndata-_metoderAvbruddAvbryt: AvbruttUgyldig parameter forUgyldig skrifttypespesifiseringUgyldig regionnummer i %s linje %d: %sUgyldig verdi for FLAG i %s linje %d: %sKrypteringsn�klene stemmer ikke overens!Drep en forbindelseLinking: Forskjell p� store/sm� bokstaverFinn kun hele ordMeldingVedlikeholder for norsk oversettelse: �yvind A. Holm <sunny@sunbase.org>Mangler '>'Mangler FOL/LOW/UPP-linje i %sMangler SOFO%s-linje i %sModifisert av Navn:Trenger %s versjon %ld
Trenger Amigados versjon 2.04 eller nyere
NetBeans forbyr lagring av buffere som ikke er forandretIngen syntakselementer er definert for denne bufferenIngen forkortelse funnetIngen stoppunkt definertIngen displayIngen display: Sending av uttrykk feilet.
Ingen inkluderte filerIngen mapping funnetIngen merker sattIngen treff ved mark�ren, finner nesteIngen samsvarende autokommandoerIngen swapfilIngen tekst for utskriftIngen angremuligheter; fortsett likevelIngen brukerdefinerte kommandoer funnetIkke bruktIngenting � angreOK"�pne fil"-dialogvindu�pning av X-display feiletTidsavbrudd for �pning av X-display�pning av X-display tok %ld millisekunderOriginalfil "%s"Overskrive eksisterende fil "%s"?Side %dDelvis lagring ikke tillatt for NetBeans-bufferePatch filLengden p� stien er for lang!Sti:S�kestreng funnet i alle linjene: %sFant ikke s�ketekstenTrykk ENTER eller skriv kommando for � fortsetteSkriverjobb sendt.Skrevet ut: %sSkriver ut '%s'Utskrift avbruttSkriver ut side %d (%d%%)Foresp�rsel etter s�kestrengSp�rsm�lLeser affiksfil %s ...Leser ordlistefil %s ...Leser fra stdin�...Leser stavefil "%s"Leser viminfo-fil "%s"%s%s%sLeser ordfil %s ...Gjenoppretting komplett. Du b�r sjekke at alt er i orden.Reinitialiser alle forbindelserErstattErstatt &alleErstatt alleErstatt med:HentHent fra alle prosjekterHent fra filHent fra prosjektKj�rer i Vi-kompatibel modusKj�rer uten modus, tastetrykk blir lagt inn i tekstenSNiFF+ er for �yeblikket Lagre som"Lagre fil"-dialogvinduLagre omdirigeringLagre �ktLagre oppsettLagre utseendeLagre forandringer til "%s"?Leter gjennom ordliste: %sLeter gjennom inkludert fil: %sLeter gjennom tagger.Leter: %sRullefeltelement: Klarte ikke hente dimensjoner p� "thumb pixmap".S�kestrengS�ker etter "%s"S�ker etter "%s" i "%s"Leter gjennom inkludert fil %sLeter i tagfil %sSe ":help E312" for mer informasjon.Se ":help W11" for mer informasjon.Se ":help W12" for mer informasjon.Se ":help W16" for mer informasjon."Velge katalog"-dialogvinduValgte %s%ld av %ld linjer; %ld av %ld ord; %ld av %ld bytesValgte %s%ld av %ld linjer; %ld av %ld ord; %ld av %ld tegn; %ld av %ld bytesValgSender til skriver�...Vis basisklasse avVis klasse i hierarkiVis klasse i begrenset hierarkiVis forbindelserVis docu avVis overstyrt medlemsfunksjonVis st�rrelse i punkterVis kilde tilVis denne meldingenSkilt for %s:St�rrelse:Sniff: Feil under skriving. FrakobletFant ikke hjelpefilen "%s"Dessverre, ingen forslagDessverre bare %ld forslagDenne kommandoen er deaktivert, Perl-biblioteket kunne ikke lastes.Kj�r Vim-skriptSt�tt utviklingen av Vim!Stackst�rrelse �kerStil:Swapfilen "Swapfilen "%s" finnes, overskriv likevel?Swapfilen eksisterer allerede!Swapfiler funnet:Riv av denne menyenTest av X-display feiletTakk for at du fl�y VimFilen ble laget p� Det eneste treffetDenne Vim-versjonen er kompilert uten differansefunksjonen.Denne cscope-kommandoen st�tter ikke splitting av vinduet.
Bytt mellom implementasjon/definisjonFor mange "+command"-, "-c command"- eller "--cmd kommando"-parametereFor mange sammensatte flaggFor mange redigeringsparametereFor mange utsatte forstavelserFor mange utsatte forstavelser og/eller sammensatte flaggFor mange regioner i %s linje %d: %sToppTotalt antall ord: %dEtterf�lgende tekst i %s linje %d: %sSkriv  :quit<Enter>  for � avslutte VimSkriv nummer eller velg med musen (<Enter> avbryter)Klarte ikke lese blokk 0 fra Klarer ikke registrere kommandotjenernavnAngrenummer %ld ikke funnetUkjentUkjent parameter til valgUkjent flagg i %s linje %d: %sUkjent eller duplisert element i %s linje %d: %sUten navnOppBruk Vim versjon 3.0.
Brukte CUT_BUFFER0 istedenfor tomt valgBruker swapfilen "%s"VIM - VIKTIGVIM - S�k og erstatt�...VIM - S�k�...VIM - Vi IMproved - Forbedret ViVIM-feilVIM: Kan ikke �pne vindu!
VIMRUN.EXE ikke funnet i $PATH.
Eksterne kommandoer kommer ikke til � vente etter fullf�ring.
Se ":help win32-vimrun" for mer informasjon.Vim - SkrifttypevelgerVim E458: Kan ikke reservere fargekart, noen farger kan v�re feilVim-advarselDialogvindu for VimVim dialogvindu�...Vim-feilVim-feil: ~aVim avslutter med %d
Vim er �pen kildekode og kan fritt distribueresVim: Mottok "%s"-hendelse
Vim: Mottok d�delig signal
Vim: Mottok d�delig signal %s
Vim: Dobbelt signal, avslutter
Vim: Feil under lesing av inndata, avslutter�...
Vim: Feil: Feil under start av gvim fra NetBeans
Vim: Ferdig.
Vim: Uventet �deleggelse av hovedvinduet
Vim: Leser fra stdin�...
Vim: Mottok "d�"-foresp�rsel fra �ktbehandleren
Vim: Advarsel: Inndata kommer ikke fra en terminal
Vim: Advarsel: Utdata g�r ikke til en terminal
Vim: Bevarer filer�...
W10: Advarsel: Forandrer en skrivebeskyttet filW11: Advarsel: Filen "%s" er forandret siden redigeringen startetW12: Advarsel: Filen "%s" er forandret og bufferen var ogs� forandret i VimW13: Advarsel: Filen "%s" er blitt opprettet etter at redigeringen startetW14: Advarsel: Listen med filnavn er overfyltW15: Advarsel: Feil linjeseparator, det er mulig ^M manglerW16: Advarsel: Rettighetene til filen "%s" er forandret siden redigeringen startetW17: Arabisk trenger UTF-8, utf�r ':set encoding=utf-8'W18: Ugyldig tegn i gruppenavnADVARSEL: Filen er blitt forandret siden den ble lest!!!ADVARSEL: Windows 95/98/ME oppdagetAdvarselAdvarsel: Kan ikke finne ordliste "%s.%s.spl" eller "%s.ascii.spl"Advarsel: Gikk uventet inn i en annen buffer (sjekk autokommandoer)Advarsel: Region %s ikke st�ttetAdvarsel: Terminalen kan ikke utheveUnder �pning av filen "Vindusposisjon: X %d, Y %dOrd lagt til %sOrd fra annen linjeOrd fjernet fra %sSkrive delvis fil?Lagrer stavefil %s ...Skriver forslagsfil %s ...Lagrer viminfo-fil "%s"Feil CHECKCOMPOUNDPATTERN-verdi i %s linje %d: %sFeil COMPOUNDMIN-verdi i %s linje %d: %sFeil COMPOUNDSYLMAX-verdi i %s linje %d: %sFeil COMPOUNDWORDMAX-verdi i %s linje %d: %sOverv�kning av XSMP ICE-forbindelse feiletXSMP SmcOpenConnection feilet: %sXSMP h�ndterer "redd-deg-selv"-foresp�rselXSMP mistet ICE-forbindelsenXSMP �pner forbindelseXref har enXref referert avXref refererer tilXref brukt avJAAntall repeteringer er null[KONVERTERINGSFEIL i linje %ld][CR mangler][Slettet][Enhet][Filen er for stor][Hjelp][ULOVLIG BYTE i linje %ld][Ufullstendig sistelinje][Plassliste][NL funnet][IKKE konvertert][Ny KATALOG][Ny fil][Ny fil][Ny][Uten navn][Ikke lagret siden forrige forandring]
[Uredigert][Tilgang nektet][Forh�ndsvisning][LESEFEIL][SB][Lesefeil][kall] totale "re/malloc()"-er %lu, totale "free()"-er %lu

[konvertert][kryptert][dos-format][dos][fifo/socket][fifo][file ..]       rediger spesifisert(e) fil(er)[lange linjer splittes][mac-format][mac][ingenlinjeslutt][skrivebeskyttet][socket][unix-format][unix]etterog sammenligne den mot den originale filen for � finne forandringer)
fors�k p� � referere til slettet bufferfors�k p� � referere til slettet vindufjerner autokommando automatisk: %s <buffer=%d>autokommando %sf�rblokk med %ld linjer kopiert til utklippstavlenblokk med 1 linje kopiert til utklippstavlenbuffer er ugyldigav av Bram Moolenaar med flerekalte inputrestore() oftere enn inputsave()kaller %sKan ikke slette "OutputObject"-attributterKan ikke lese utdata fra 'charconvert'kan ikke forandre konsollmodus ?!
kan ikke opprette buffer/vindukommando: Objektet sletteskan ikke slette linjekan ikke hente linjekan ikke sette inn linjekan ikke sette inn/legge til linjekan ikke �pne kan ikke registrere callback-kommando: Buffer/vindu er allerede slettetkan ikke registrere callback-kommando: Buffer/vindureferanse ikke funnetkan ikke erstatte linjekan ikke lagre angre-informasjonkan ikke sette linje(r)kan ikke kopiere til utklippstavle; slett likevelforandringforandringerlukkkommando: %soppkobletfortsetter i %skunne ikke kj�re "%s"klarte ikke � �pne bufferUtf�ring av cs_create_connection feiletcs_create_connection: fdopen for fr_fp feiletcs_create_connection: fdopen for to_fp feiletcscope-kommandoer:
cscope-forbindelsen %s stengtmark�rposisjon utenfor bufferfaller tilbake p� 'slettet blokk 1?dlerror = "%s"ikke avslutt editoren f�r filen er skikkelig lagret!milj�variabelfeilbehandlerfeilliste %d av %d; %d feiluttrykk deaktivert p� kompileringsstadietlinjer fjernetfil
filnavn / kontekst / linje
ferdig med kj�ring av %sfrigj�r %ld linjerFeil i gvimext.dllhjelpskjult valgi sti ---
ugyldig attributtugyldig buffernummerugyldig uttrykkugyldig merkenavner en enhet (frakoblet med 'opendevice'-valg)er en kataloger ikke en filer ikke en fil eller skrivbar enheter skrivebeskyttet (legg til ! for � overstyre)tastaturavbruddlinje %4ld:linje %6d, ord %6d - %slinje %ldlinje %ld av %ld --%d%%-- kol linje %ld: %slinje %ld: Kunne ikke kj�re "%s"linje %ld: kj�rer "%s"linje fjernetlinjenummer utenfor omr�delinjenummer utenfor omr�delogg avmerke ikke satttreff %dtreff %d av %dmaksimal mch_get_shellsize: Ikke et konsoll??
meny:  Rediger->Globale innstillinger->Innsettingsmodus av/p�meny:  Rediger->Globale innstillinger->Vi-kompatibilitet av/p�meny:  Hjelp->Foreldrel�se        for informasjon  meny:  Hjelp->St�tte/Registrering  for informasjon minimal linje lagt tillinjer lagt tilnytt skall startet
neiingen cscope-forbindelser
ingen spesifikke treffbufferen finnes ikkevinduet finnes ikkeingen synkroniseringikke ikke tillatt i Vim-sandkassenikke funnet ikke funnet i 'runtimepath': "%s"ikke implementert endanummer forandringer tidspunktpe_line_count er nullpre-vimrc kommandolinjeles fra Netbeans-socketskrivebeskyttet attributtspiller innErstatt med %s (y/n/a/q/l/^E/^Y)?rad %d kolonne %dS�ket traff BUNNEN, fortsetter fra TOPPENS�ket traff TOPPEN, fortsetter fra BUNNENskall skallet returnerte %dkj�r ned"softspace" m� v�re et heltallkj�rer "%s"stack_idx skulle v�re 0streng kan ikke inneholde linjeskiftsynkroniserer C-lignende kommentarersynkronisering starter tag %d av %d%snavn p� tagtil %s p� %sskriv  :help cp-default<Enter>    for informasjon  skriv  :help iccf<Enter>          for informasjon  skriv  :help register<Enter>      for informasjon  skriv  :help sponsor<Enter>       for informasjon  skriv  :help version8<Enter>      for versjonsinfo skriv  :help windows95<Enter>     for informasjon  skriv  :help<Enter>  eller  <F1>  for on-line hjelpskriv  :q<Enter>                  for � avslutte   skriv  :set nocp<Enter>           for standard Vim ukjent flagg: ukjent valgukjent vimOptionversjon vim-feilder bokstavst�rrelse ignoreres, legg til / i begynnelsen for � gj�re flagget om til stor bokstavindeks for vindu er utenfor omr�devindu er ugyldigmed (klassisk) GUI.med Carbon GUI.med Cocoa GUI.med GTK GUI.med GTK-GNOME GUI.med GTK2 GUI.med GTK2-GNOME GUI.med GUI.med Photon GUI.med X11-Athena GUI.med X11-Motif GUI.med X11-neXtaw GUI.uten GUI.writelines() krever en liste av strengerskriving til enhet er sl�tt av med 'opendevice'-valgPK�j�Z��m�g�g� vim80/lang/ca/LC_MESSAGES/vim.monu�[������|<
�x(�)�
:�H�Q�'g�/����ա�L�:N�����+��ʣ"��(�9�5I������դ����;ɥ��:�W�f�w�������ʦ�0��.*�/Y�0��
��ȧާ��
��
2�$=�$b��� ����@ȨD	�N�b�"����"é����@�_�z���������/Ϊ8��,7�=d�����ӫ���0�1A�1s�����Ϭ�-�3�S�h�������ǭ3߭3�G�d�|�������
ٮ����/�
G�$U�z�L�� ӯ��;$�`�o�#|�	����ðӰ�
����#�/�G�	_�i�q�y�!������ܱ���#�+� 3�T�o���������
òѲ6޲�2�K�!j���
����	����ٳ��&�	�" �*C�n�=��
ĴҴش���	�
�
'�2�
;�F�X�j�s�5��ǵ-ٵ1�&9�`�x�������ƶ۶��$�-�=�
Q�\�l���������ҷ�����+�7�F�V�h�x�
��������
ƸѸ�7�+�!8�Z�r�z�������������=��2�%�.�4�=�'N�-v�2��׺�?
�M�i�z�+����	Ļλ��-�M�$m���
����ͼ��?�D�2S�!��%��@ν9�EI�9��CɾK
�IY�H��;�6(�8_�3��<�4	�->�6l���%�����
�&�@�&P�,w�#��4�� ��@�-_�0��:��;��5�"U�x�>��)��>��<1�n�z�#��:��'��9!�[�$t�9��4��;� D�>e�1��/���-#�Q�.`�B��"��2��4(�*]���+��%��'��( �<I�E��.��-��$)�N�<g���*��&�� �41�f�w�����������������
�'�0�"8�[�g�v�������)����$�)�8�@�Y�1r�?���������0�F�a�t�X��%����+�I�b�{���������$����!�0�N�T�d�h���"��$����#�/�6�E�U�u����� ����4��.�	@�CJ�V����
��
�.�:�-S���-��$��.��6"�Y�.s�H��(���#�
<�OG�O��
��C��	9�C�O�!d�������3��2��!�(8�a� z�"��E���%!�#G�-k�������&���)�;�Y�r���'����)��+�@;�-|���5�����0�K�/f�9����E��3�-N�7|�#�� ��:��54�&j�"��&��$��#�!$�=F�5�� ��(��7�.<�,k��������� ��#�&;�b�y�����������0>�$o�!�� ��(��4�,5�b�~������� �����1,�^�!{�%��%��!��%�1�$J� o�����?��&�#.�R�
n�A|�%��"��"�9*�'d�(��2��*��!�!5�)W�%��!��4��:��&9�;`�;��)��0�3�R�n�����#��!��8��&1�#X�|� ��/��"���-�G�X�q�/��*��(��#
�1�M�h�����>�����0�"G�j�������#����9�1K�1}�)��1��%�71�i�A��?����3�!R�t�����0��4��$0�)U�N�,��&��L"�o�����8����$�(�B�#b�7��N��
�)�F�$a�!��3��,�2	�%<�b�"}���#�����;�BX���0��!� �<)�+f�����+�2�$&�K�,i���H��,��'�=�"]����������9�S�h���0��#�'��,�,L�&y�����+�2�-$�(R�{�"��'��'�,�4�.K�z�#��,��W�)C�"m�,��%��� !2:2m2��!�+2@5s'�#�)�3$S%x����
$"&G n'�*�#�'%.T3t!��+�*5-`$����
  ; \$}$�)��	,La%|�=�9R'l��$�#�0	.H	0w	�	�	�	

/
C
-Z
 �
�
7�
)�
&$>(c��%�$�$7'T|'� ���
 .
7O
0�
�
#�
�
"(>!g�-�1�65>t.�*�1�9U*u&�+�,�+ 4L<�+�*�+CXm�����"�
 7Rq�����)Ea:t=�<�6*<a�"��+�)4E5z4�3�0+ \}D�P�%&Lk�����!)Kf}����'�#6!Vx�"��1�.K"`������'<Uh|�����*1)\�� ����6#Os)�&�K�, ?`�����" &7 #^ � � +� %� 7!5F!|!�!,�!�!�!")," V"w"�"�"�"�"�"#5#0M#~#�#�#�#4�#.%$$T$)y$1�$;�$%.!%*P%{%$�%�%%�%,&.&%?&e&~&�&&�&-�&&'+' G'h'�'�'+�' �'(?()Z(�(6�(#�(2�(9,)>f)8�)1�)*).*)X* �*)�*�*)�**+"=+`+#y+"�+"�+)�+
,-,%K, q,$�,�,�,!�,0-G-`-{-�-"�-!�-9�-82./k.�.�.�.+�.%/18/)j/�/�/'�/%�/0&'0!N0%p0'�0%�0'�0-12:1m1�1$�1�1�1�1"2:2Z2!z21�2&�2�2!3!43V3(k3�3�3+�38�3347R4E�4!�4�45(50G5#x5�5$�5�5#�5*6?6Z6m60�62�60�67+97)e7$�7/�7�7�7'8)68,`8�8�8 �8�8�8-9,K9x9/�9+�9'�9!: 7:0X:�:!�:,�:�:;(;A;Z;0p;.�;�;1�;&"<:I<�<9�<�<:�<2=J=j=�=*�=�=3�=&>%?>2e>0�>!�>;�>R'?z?*�?�?�?(�?!@+=@+i@�@ �@"�@%�@ A+;A"gA+�A�A.�A4BI:B)�B)�B6�B6C-FC(tC/�C&�C<�C)1D*[D�D7�D�D�DE*-EXEvE0�E/�E!�E"F*8F/cF;�F�F�FQG.YG�G$�G#�G0�G#"HFH2eH6�H�H+�H%IXAI;�I/�I;JBJ!bJ%�J"�JN�J.K$KK&pKT�K#�K"L$3L XLyL�L#�L]�L 9MBZM'�M�M/�M2N,EN"rN�N&�N(�N%�N%ODObOEO!�O �O7P@P%VP|P'�P�P'�P	Q)Q<?Q|Q"�Q'�Q�QR+RDR(^R!�R5�R�R7�R!6S%XS/~S!�S�S�S'T6T)UT;T&�T(�TU)*U&TU{U�U'�U�U	�U�UVV+VEV#[V	V�V�V�V.�V�V.
W69WpWvW6�W#�W
�W&�W	X!X6XNXeXzX �X%�X!�X
�X�X(Y�:Ya�YGZ+`Za�Z�Z�Z[(
[
3[	>[%H[
n[y[&�[&�[�[(\+\	<\F\	W\a\
g\u\�\�\�\	�\2�\*]C]c]u]�]�]
�]�]	�]�]�]�]^#,^(P^y^�^	�^�^�^
�^�^�^2_9_E_d_~_�_�_$�_�_/�_` `'#`K`a`
x`$�`
�`�`�`�` �`aa*a7a!Maoa�a@�a(�ab'b9b<bMbYbeb�b#�b�b�b�b.�b
.c9c	OcYcyc�c�c'�c�c�c
ddd7dKdTdnd�d�d�d�d�de9%e9_e�e�e�e�e
�e�e(�e&f.f?fPf
]f	hfrf�f�f�f�f9�f
gg2gMghg&g�g�g�ghChW_h	�h�h�h�h�h
ii)"iLili�iF�i�i�ij%j,j8j(Djmj�j�j1�j�j�jk$k:kSk0bk;�k>�kl&l>l1Zl"�l�l�l�lA�l)/m=Ym�m(�m�m�m$�m0"nSn\n_n+un2�n�n�n�no%o	7oAo�Zo�oF�o;p
Gp	Rp
\pjp+p�p%�p0�pBq([q�q1�q+�q*�q&)r9PrM�r>�r)s5AsAws4�s$�s*tA>tA�t&�t6�t u<(u<eu?�u7�u/v Jv"kv�v2�v0�vw#w;wWwlw�w�w�w�w2�w)x+Fx,rx-�x �x!�x#y4yMyeyiymy�y	�y�y�y�y�y�y�yzz
$z
/z:z	@zJzhzuz	�z�z
�z�z
�z	�z5�z{{	${.{;{
A{O{&V{}{�{�{�{
�{�{
�{�{�{�{�{�{�{�{|9|BB|D�|"�|$�|"})5}_}n}u}�}�}�}�}1�}
~$~"7~Z~<y~�~'�~!�~#6Po�H�C�"�6�S�k�~�����������ǀ݀ �#�-7�-e����������(�&?�f�=u���΂%�
	�8�FP�.��DƃM�@Y�0��&˄'�&�$A�f�x�$����-Ӆ��3�J�h�t�z�������
׆���� $�E�
J�X�"e���%��*��.�8�"S�#v�%��#������#�/5�e�
t� �� ��ĉ
׉����!�.�N�	f�p���2��Њ�����$
�2�?�H�
W�e�#n�1��1ċ1��1(�Z�c�	l�
v�(��������׌���
	��
3�>�V�(j�'�� ��܍�	�)�	D�N�"`�����$��$̎���
��-�
=�K�a���������я�����5�K�Z�b�.n�.��.̐.��.*�.Y�.��.��&� 
�%.�T� o�:��˒ے���"�)6�)`���	������̓����%�	4�>�O�d�x���3��IΔ�
3�A�I�)_�1����і����=~�
��ʘ-ј��)�0F�w���.��ʙ��'�6��M�4/�d�&��%��Λݛ���./�^�z�0��.Ȝ/��0'�X�i� ��'��Н�
��0�19�k�-����CŞG	�Q�'d�+��'��+��)�?�;S�������Ԡ�'��="�?`�5��D֡�2�H�d�~�I��7�7�U�j����*������4�*E�p���0��*��)�I�i�����
��
ťӥ�	��8�.N�}�J��3Ԧ�(�@H�����)��
ϧڧ��
��
(�"6�Y�i�x���	��¨˨Ѩ(��"�A�a�%h�����)��"ɩ��$�0�8�E�W�Aj�!��Ϊ�)�8�@�
M�[�&h�������&��ͫ)֫1�2�AR�����
����"ʬ
���	��$�
+�9�K�a�$j�;��˭5ڭ<�'M�u�������Ӯ��(�=?�}���
������گ��	��3�H�_�w�������
��ǰٰ$�

��-�:�K�]�q�6��
��%ʱ�
���&�-�6�J�f�Po�F�����$�07�,h�5��'˳�N�&a�����<���
����"=�5`���4��)�	�
�+�A�N�?i���6��'��56�El�J��?��C=�n��K�H<�E��2˹>��5=�As�7��3�8!�Z�$v�����Ȼ��� �12�'d�6��$ü>�+'�<S�:��@˽!� .�O�8`�2��F̾@�T�`�/�>��,�?�[�)s�1��8�?�+H�Bt�*��/��4.�c�+r�<��/��5�5A�8w�&��7��%�25�/h�?��K��3$�9X�,����A���-7�+e�#��?�����$�
;�F�_�v�����
������	����:��/�
;�I�i�����4����$�*�=�D�]�?v�G������ %�F�W�%o���&��_��,;�h�0l�&�� ������7�I�
f�%q���&�� ��������"%�#H�%l�2��8��	����'5�]�"w� ��/��*��M�d�x�L��c��;�P�_�-l�!��6����/�(?�;h�@��!��-�B5�5x�������Z��ZM���A��	�
��!.�P�'U�}�6��5�� ��&�8�$Q�,v�)��#��-��*�(J�s�$��!��'�����!$�F�b�{�'����&��&�@'�,h���<��$���-�I�6b�A��#��M��M�5j�<����3��D1�=v�-��2��0�/F�,v�.��@��7�K�Aj�?��?��+,�X�v�����%��&��7�!I�k�&��'�� ����&�#=�1a�&��0��0��,�,I�$v� ����������.�#?�c�7��$��'��>�AG�+��/����'��+'�S�#s�E��5��-�%A�g�Dx�+�� ��+
�C6�<z�$��:��9�'Q�+y�)��1��'�A)�Dk�1��<��9�7Y�A��2���#�>�W�1r�4��=��'�(?�&h�-��;��<��6�FH���.����0��0�)M�)w���1��0��!�+A�Cm�%��%����'�(@�i�(��#��)����6�7S�4��+��?��0,�:]���E��>��"=�"`�4��,�� ��&�$-�9R�-��*��,��A�6T���?�������1+�]�+t���$��3�0�RE���#��>�)�(E�Bn�.��:�*�!F�=h�0��?�2�&J�&q�&��J�� 
�;+�.g�5��@�3
�1A�s�1��3�*�� !�?B�%��C��B�/� N�)o�$��&��&�&�$3�8X���!��!�=��-3�9a�
��-��5�-
;X*t@�4�. D,e.�:�@�=3['�!�1�\/h*�4�/�,(2U �:�=�5"$X*}��1�=
8K,�E�8�40,e ���-�'4*\&�,�7�)	&=	d	�	6�	 �	 �	2
#O
8s
8�
)�
,!<^| �,�,�8	2B/u ��(�
% 
'F
.n
8�
�
 �
$-+R ~.�'�%�,,I1v$� ��
&#J%b,�&��7�@0#q)�>� �843m/�%��'*?:j3�)�&*/J9z4�(�1/D*t)�(�+�,=KB�A�(@7,x6�H�+%=Q2�1�/�.$CS/�3�8�4On������''Oj"�6�"�#!*,Ly0��!�
$E:>�A�7G9(�(��6�4!CVC�D�@# d >t  � � C� J.!2y!"�!!�!!�!"0"P"$`""�"$�"*�"!�"#6#%T#z#"�#7�#�#/$>1$>p$1�$'�$	%7%%"]%�%�%(�%�%�%#&00&a&}&0�&�&�&�&'*'C']' v'#�'#�'+�'<(;H(�(�('�(�(�()=+)+i) �)7�)%�)>*S*!l*+�**�*�*�*+*+@+2_+#�+�+�+�+;,.B,Aq,?�,)�,+--I-w-3�-%�--�-%.:.+N.z.�. �.(�.�./;(/d/~/!�/&�/;�/<03T0;�0;�0<1=1?P19�1*�1*�1( 25I2A2�2-�2"3&3<3+U38�31�3�3%4024/c4$�4>�4(�4 5B65/y5�58�5.�5;.6;j6A�6G�6:07*k7-�7,�7&�7,8 E8+f83�8-�8�8$98096i91�9#�9#�9):$D:&i:$�:$�:)�:;;@; W;x;�;0�; �;=<@E<A�<�<!�<=:=&S=2z=>�=�=
>+(>)T>~>*�>%�>�>
?%?>?;U?;�?�?�?#@ )@+J@v@#�@�@�@,�@5#A)YA�A6�A*�A#B%'B!MB*oB;�B:�BCB/CBrC1�C�C�C-D7FD#~D�D(�D�D1�D",E!OEqE&�E:�E2�EF!F)hF$�F!�F!�FA�F=G
]G:kG8�G=�G-H"KH/nH&�H�H�H4I8I9SI9�I(�I'�I-J:FJ�J)�J/�J�JK-"K%PKvKB�KF�K+L?GL%�L8�L,�L0MDM8cM�M,�M�MN-N!MN9oN�N8�N9�NC4O*xOG�OB�O..P<]P�P �P(�PQ4Q,TQ#�Q'�Q)�Q0�Q)(R>RR9�R@�R3S9@S@zS@�S+�S+(T8TT8�T4�T5�TG1U-yUD�U2�U<V\V@yV�V"�V �V+W(IWrWC�W<�WX5.X9dX1�XA�X$Y37YFkY1�Y�Y'Z&)Z9PZ&�Z�Z3�Z@[E["\[4[G�[/�[,,\9Y\�\/�\3�\2]UA]1�])�]6�]D*^%o^/�^+�^�^_0_"M_Ep_�_8�_&`%6`9\`6�`4�`*a-aJa(ja/�a'�a�abD$b ib�b?�b�b.c$6c&[c'�c2�c)�cdF&d$md#�d'�d�d�d4e!He4je'�eA�e!	f5+f0af'�f4�f+�f1g*Mg;xg!�g8�gCh6Sh2�h'�h)�h.i>i,^i.�i�i�i$�i�i	j"j?j/Tj�j�j�j�j?�j(k3=k8qk�k�k>�k'l+l2;lnlwl�l�l�l�l7�l<m#Zm
~m!�m/�m��me�n�nJo_^o�o�o�o0�op)p-:php1op,�p"�p!�p3qGq	]qgq	}q�q�q%�q�q �q"r$r50r,fr2�r�r �rss7sKs^s
jsxs�s/�s+�s(�s!t;tNt#]t)�t�t�t�t;�t"u /uPulu{u�u/�u)�u1�u
)v7v8:vsv!�v�v4�v�vw*wHw.cw(�w�w#�w�w%x-8xfx8nx@�x�xDyEyMyZyoy�y+�y&�y�y,	z	6z7@zxz!�z	�z'�z�z�z,{3C{!w{�{�{�{�{�{�{!|**|&U|||#�|�|$�|$}A)}Ck}�}�}�}�}~$~1<~n~}~�~�~�~
�~�~�~':AF
����#�(�!�!?�!a���K��c�I�R�m�����
����8Ɓ%��%�;�?X���&��Ղ���	�>"�#a�(����7̃��-'�U�r���;��9ބ5�N�i���1��!υ����E2�.x�9��"�3�
8�C�&U�2|�	������2܇?�&O�
v�������
ˆ&Ј�����F�����
��.�0H�%y�+��7ˊB�8F�$�9��9ދ:�:S�<��Cˌ@�9P�?��Cʍ=�2L�;�9��<��+2�7^���5��5ԏA
�@L�5��*Ð)��=3�2q�"��Ǒ��!�'>�*f��� ��;ђ2
�4@�5u�6��/�.�+A� m�������#��Д
�����<�V�l�{���������#��ە�����-�2�F�2R�����������
��ϖ4֖�&�3�9�@�P�
Y�g�
n�y���������
��<��H�I7���#��#Ř,��*�3�M�c�y�~�5��
Ι4ٙ0�,?�:l���6ǚ0��/�N�%m�,��%���>��=:�!x�+��#Ɯ"�=
�K�Q�X�	h�r�����#��&�2�2:�m�!��"��Ş���*�*B�m�?|���؟-��=+�Di�4��@�I$�Gn�7��6�0%�/V�)����&Ģ*��/4�d�������٣����;�T�d�{�"��%��ݤ
��/��.�7B�4z�<��C�$0�6U�0��&������+�=A����2��+ҧ��� �	<�F�
e�&s�����"��"�6�"=�`�z���,��˩ߩ���'#�7K�7��7��7�+�
2�	@�
J�/U�������ëګ��'�F�R�n�(��-��%���:�Z�s���$����έ.�.�?�U�p�)����ĮӮ(�%�<� W�#x� ����ۯ+�!�>�^�r�	{�:��:��:��:6�:q�:��:�:"�*]�'��+��$ܲ/�?1�q�
��������"ѳ,�-!�O�W�.d���"��ϴ��")�L�i���"��!õ"��D"�z�~����*�Gg�lI�T��g������Z~�;����hE���5�`�p�$�jNr�T}��'���^P�W_��Z>���^w3����`UL��h���[���o
P�o0�*E��K� �y�����d��.f�<��Ubq&Y_�\����>�F�g���N�#���6���k��9_G8|�R����n��x:>(�;�X�������bj�D���S�,k|�z!�����A���j?m��a&lVSB�:�&��.�R�v� �%.@@�
���~Q��\Wu���&w[$?t*+�;��x��)�o��(y�s�t��
O]x�#���'��s�]�B�f��J����,#u&��;�����9l�3�/f�����+��\X�uW*iD�Q S����9c���h|��*�l/�@(v������9��{�������ji5%�|�Ln���E"�K�g����Z $T�T�gA~ej��
���{��u���O���}^X��O�+�fv��i��-G@�l��m�-|�p�J�_%l�~�R��"F8��NM����`�yC���zJ����,��KElt�r�4�Pl����K>eq�3��kQaK�W�!�.o�V�P]�[��/�m��X�w����)�����Y!��	4%��b��8�3�5���EyH�VjB���B�=�.�9(?�/K��X��:PZ����@	����r�7�����;b
+����#���b�o�-f�9_Vv����2��"�����
1\!	3?z�% X��CZ��)p�'�:Q^�������Y�wD>�#AH�e�x���r2T��C����h2A0�M�;�����^GL��Y_7F15��=��g5jV�x��7�s'!?�k>�v�`�������4<�D
�B6�1G�#A�a�����[��0{�dN�Z���(�F�O<�_��p�tNI�O���H������g��B*(���W��-2���Z�S���T��5A����6e�^�kt�����q����zmCsUG��'L�H���f�J~=nd)R9�9�������sr�0`i��)|M�`���,�:/L��?$�X}����z��#n�7�J�H�������Du=�������tC�'!,��� S 
Q)������H7�WgJ�������Y��
z�B�������~F��h�nCUS�o$�d�0��}L��=�m�7c��d�a��K
U���k���ew��	a�&Io�S)��}���������K����$�V�b�]J�|�0��s�����u-�c��G�wR���C%��1���1	��I=�w3�48��]�@�{��V#������|e����b����1�'�q���En��~7PWO�[�L������6�4�[�GZ^�`5R$����6r�ym� ���<��y��y�Ac�+����>/�c�F�3������=��qp0Lv�a
p�M��U=w����Q�4���]�d���d�4��0�5������N��X��2k*�Q�F��	�"R{���Oa��C�8M6�1����}��iqO��t��qn[�����a�?8�&%\�;f���hY<��Ec��q�"
{��\D���sxo�},�!��.�I�&e�i�������{,��7�����Iv:D�+:+H
���v�'k�"����Pp`��D���T]��b	���jt\{�,>��
���
?M�(I�i;�	N�x���IQ(32T���Y�]��/")^.Y�<}�e��F8m@_�u���%�[A��\x��S�rc�������������P��@��my���6/�
-*�W�-1�:���Mf���6�Ur�4"p�BN���J��E�-���h�n.��<�R��!�H�cV+$���8<���U2iz2M�d�h�������s�����u�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-11 23:51+0200
PO-Revision-Date: 2017-07-26 13:29+0200
Last-Translator: Ernest Adrogu� <eadrogue@gmx.net>
Language-Team: Catalan <ca@dodds.net>
Language: ca
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

	Definit per �ltim cop a 

Arguments:


  �s:
         modificat: 
          [no usable en aquesta m�quina]
          [no usable amb aquesta versi� del Vim]
           m�quina: 
   nom de l'usuari: 
     ID del proc�s: 
       a: Cerca assignacions a aquest s�mbol
       c: Cerca funcions que criden aquesta funci�
       d: Cerca funcions cridades per aquesta funci�
       e: Cerca aquest patr� egrep
       f: Cerca aquest fitxer
       g: Cerca aquesta definici�
       i: Cerca fitxers que fan #include amb aquest fitxer
       s: Cerca aquest s�mbol C
       t: Cerca aquesta cadena de car�cters

    Nom         Arguments  Adre�a    Compleci� Definici�    
   #   l�nia
o b�:
  #  A nom   DES DE la l�nia  al fitxer/text
 salt  l�n  col fitxer/text
# Historial %s (de m�s a menys recent):

# L�nies copiades literalment sense modificar:

# Llista de buffers:

# Marques:

# Historial de marques (m�s recents primer):

# Salts (m�s recents primer):

# �ltim patr� de cerca%s:
~
# �ltima cadena substitu�da:
$
# Registres:

# variables globals:

(1) Un altre programa pot estar editant aquest mateix fitxer.  Si �s
    aquest el cas, aneu amb compte de no acabar amb dues versions
    diferents del mateix fitxer quan feu canvis.  Sortiu, o continueu
    amb precauci�.

(Potser voleu desar aquest fitxer amb un altre nom

--- Ordres autom�tiques ---
--- Valors de les opcions globals ---
--- Valors de les opcions locals ---
--- Men�s ---
--- Opcions ---
--- Registres ---
--- Senyals ---
--- Elements de sintaxi ---
--- Elements de sincronitzaci� de sintaxi ---
--- Codis del terminal ---
--- Tecles del terminal ---
Arguments reconeguts pel gvim (versi� Athena):

Arguments reconeguts pel gvim (versi� GTK+):

Arguments reconeguts pel gvim (versi� Motif):

Arguments reconeguts pel gvim (versi� neXtaw):

Versi� extensa 
No es poden crear canonades

No es pot executar l'int�rpret 
No s'ha pogut executar l'int�rpret sh

No es pot fer fork

L'ordre ha finalitzat

Compilat 
Error en obtenir el context de seguretat per a 
Error en establir el context de seguretat per a 
Canvis addicionals: 
S'ha trobat un fitxer d'intercanvi amb nom "
Versi� molt extensa 
Si vau entrar una nova clau de xifrat per� no vau desar el fitxer,
Si vau desar el fitxer despr�s de canviar la clau, premeu Entrar per a
Canvis inclosos: 
Versi� GUI per a MS-Windows de 32 bits
Versi� consola per a MS-Windows de 32 bits
Versi� GUI per a MS-Windows de 64 bits
Versi� consola per a MS-Windows de 64 bits
Versi� per a MacOS X (Unix)
Versi� per a MacOS X
Versi� per a MacOS
Potser no hi havia canvis o no es va desar el fitxer .swp.
M�s informaci� amb: "vim -h"

Versi� normal 
Versi� per a OpenVMS
Versi� redu�da 
Versi� minimalista 
Vim: Error del sistema de finestres X

ATENCI�: El fitxer original es pot haver perdut o fet malb�

On no es distingeixen maj�scules el prefix / indica maj�scules
Normalment, ara haur�eu d'esborrar el fitxer .swp.


[octets] total assignat-alliberat %lu-%lu, en �s %lu, m�xim �s %lu

canvi l�nia  col text
entreu la nova clau.
marca l�n  col fitxer/text
l'int�rpret ha retornat 
es sincronitza amb elements
usar la mateixa clau per al fitxer de text i per al fitxer d'intercanvi.                                 per al mode compatible                                 per a dos modes                 amb data:       propietat de:          [no es pot obrir]         [no es pot llegir]         [no sembla un fitxer .swp de Vim]         [del Vim versi� 3.0]    nom del fitxer: fitxer de valors per defecte: "      -- cap --
      M�S NOU que el fitxer d'intercanvi!
     fitxer exrc de l'usuari: "    fitxer vimrc de l'usuari: "    En aquest cas, useu ":recover" o b� "vim -r     Si ja ho heu fet, elimineu el fitxer "    l�nia=%ld  id=%d  nom=%s  fitxer de men� del sistema: "   fitxer gvimrc de l'usuari: "   En el directori actual:
   En el directori    Usant el nom especificat:
   amb data:     m�quina:     fitxer vimrc del sistema: "  # pri tip  etiqueta  (Ja llistat)  2n fitxer exrc de l'usuari: "  VERSI� DE DEPURACI�Caracter�stiques incloses (+) o excloses (-):
  NO TROBAT  TOTAL      FREQ   COINC   PITJOR      MITJANA   NOM                PATR�  No es fa distinci� entre maj�scules i min�scules!      alternativa per a $VIM: "   fitxer gvimrc del sistema: " # pid    base de dades                       prefix d'ubicaci�
 (Interromput) (NO TROBAT) (inclou resultats mostrats anteriorment) (inserir) (inserir) Despla�ament (^E/^Y) (l�nia eliminada) (no suportat) (enganxar) (substituir) (substituir) Despla�ament (^E/^Y) (executant-se) (substituirv) 2n fitxer vimrc de l'usuari: " 3r fitxer vimrc de l'usuari: " < "%.*s" Afegint �rab ERROR DE CONVERSI� Compleci� de la l�nia d'ordres (^V^N^P) C�pia %d de %d Compleci� de definicions (^D^N^P) Compleci� de paraules (^K^N^P) ERROR Compleci� de noms de fitxer (^F^N^P) Hebreu INSERIR Compleci� de paraules clau locals (^N^P) Compleci� de paraules clau (^N^P) Omni-compleci� (^O^N^P) Compleci� d'ubicacions (^N^P) SUBSTITUIR INVERS SELECCIONAR SELECCIONAR BLOC SELECCIONAR L�NIA ESPAI/d/j: pantalla/p�gina/l�nia avall, b/u/k: amunt, q: sortir  Suggeriment d'ortografia (s^N^P) Compleci� d'etiquetes (^]^N^P) Compleci� de sin�nims (^T^N^P) Compleci� definida per l'usuari (^U^N^P) VISUAL VISUAL BLOC VISUAL L�NIA SUBSTITUIRV Compleci� de l�nies senceres (^L^N^P) [Modificat] [a] [e] Mode ^X (^]^D^E^F^|^K^L^N^O^Ps^U^V^Y) afegits no es pot utilitzar en aquesta m�quina.
 no es pot utilitzar amb aquesta versi� del Vim.
   altern. per a $VIMRUNTIME: " ha estat danyat (la mida de p�gina �s inferior al valor m�nim).
 a la l�nia %ld / info  tip fitxer
 salts de l�nia l�nies abans de la l�nia superior / marques / fitxers vells en %ld l�nies en 1 l�nia o m�s ha retornat
 vim [arguments]  amb suport per a OLE escrits"
    per a evitar aquest missatge.
"
    per a recuperar els canvis (vegeu ":help recovery").
" ja existeix!# Aquest fitxer viminfo ha estat generat per Vim %s.
# Valor de 'encoding' en el moment d'escriure aquest fitxer
# El podeu editar si aneu amb compte!

%-5s: %s%*s (Sintaxi: %s)%3d  %s %s  l�nia %ld%<%f%h%m%=P�gina %NS'han eliminat %d buffersS'han alliberat %d buffersS'han destru�t %d buffers%d paraula/es duplicada/es a %s%d fitxers per editar
Queden %d fitxers per editar.  Voleu sortir de totes maneres?editat %d de %d%ld %s; %s #%ld  %s%ld Cols; %ld l�nies menys%ld l�nies %sades %d vegades%ld l�nies %sades 1 vegada%ld l�nies --%d%%--%ld l�nies canviades%ld l�nies filtrades%ld l�nies sagnades %ld l�nies despla�ades%ld l�nies a sagnar... %ld l�nies copiades%ld l�nies, %ld coincid�ncies%ld l�nies m�sfa %ld segons%ld substitucions%lld car�ctersOrdres autom�tiques de %s per a "%s"%s ha avortat%s s'ha descartat%s l�nia %ld%s s'ha posposat%s s'ha continuat%s ha retornat #%ld%s ha retornat "%s"el valor %s difereix de l'usat en un altre fitxer .aff%s, l�nia %ld%sllista d'errors %d de %d; %d errors%sviminfo: %s a la l�nia: &Cancel�la&Ignora&Filtre&Ajuda&D'acord&D'acord
&Cancel�la&D'acord
&Carrega el fitxer&D'acord&Obrir amb nom�s lectura
&Editar igualment
&Recuperar
E&liminar
&Sortir
&Avortar&Obrir amb nom�s lectura
&Editar igualment
&Recuperar
&Sortir
&Avortar&Substitueix&Desf�s&S�
&No&S�
&No
&Cancel�la&S�
&No
Desa-ho &tot
&Descarta-ho tot
&Cancel�la' desconegut. Els terminals disponibles s�n:'-nb' no est� disponible: no s'ha compilat el suport
El par�metre 'dictionary' est� en blancel par�metre 'history' �s zeroS'ha establert l'opci� 'readonly' per a "%s".
Voleu escriure de totes maneres?El par�metre 'thesaurus' est� en blanc(%d de %d)%s%s: (+%ld per la BOM)(2) El Vim es va estavellar mentre s'editava aquest fitxer.
(Interromput) (No v�lid)(NFA) NO ES POT OBRIR %s !+			Comen�a al final del fitxer+<ln�m>		Comen�a a la l�nia <ln�m>+reverse		No usa el mode de video invers (tamb�: +rv),
o el fitxer est� fet malb�.-               edita el text de l'entrada est�ndard--			Despr�s d'aix� nom�s noms de fitxers-- M�s ---- Cercant...--- Fitxers inclosos --Eliminat----Cap l�nia en el buffer----cmd <ordre>	Executa <ordre> abans de llegir els fitxers vimrcargument --cmd--echo-wid		Escriu el Window ID a la sortida est�ndard--literal		No expandeix patrons de noms--noplugin		No carrega plugins--not-a-term		Omet avisos relacionats amb el terminal--remote <fitxers>	Edita <fitxers> en un servidor Vim, si �s possible--remote-expr <expr>	Avalua <expr> en un servidor Vim i mostra el resultat--remote-send <tecles>  Envia <tecles> a un servidor Vim i surt--remote-silent <fitxers>  Igual, no es queixa si no hi ha servidor--remote-tab[-wait][-silent] <fitxers>
                        Com --remote, per� obre una pestanya per fitxer--remote-wait <fitxers>  Com --remote, per� espera que s'editin els fitxers--remote-wait-silent <fitxers>  Igual, no es queixa si no hi ha servidor--role <rol>		Usa un �nic rol per a identificar la finestra principal--serverlist		Llistat de servidors Vim disponibles--servername <nom>	Envia a/es converteix en servidor Vim <nom>--socketid <xid>	Obre el vim dins d'un altre giny GTK--startuptime <fitxer>  Desa la cronologia d'arrencada a <fitxer>--ttyfail		Surt si l'entrada/sortida no s�n un terminal--version		Mostra informaci� sobre la versi� i surt--windowid <HWND>	Obre el Vim dins d'un altre giny win32-A			Comen�a en mode ar�bic-C			Compatible amb Vi: 'compatible'-D			Mode de depuraci�-E			Mode Ex millorat-F			Comen�a en mode farsi-H			Comen�a en mode hebreu-L			Igual que -r-M			No permet modificar el text-N			No del tot compatible amb Vi: 'nocompatible'-O[N]		Com -o per� amb divisi� vertical-P <aplicaci�>		Obre el Vim dins d'una altra aplicaci�-R			Mode nom�s lectura (com "view")-S <fitxer>		Executa <fitxer> un cop carregat el primer fitxer-T <terminal>	Defineix el tipus de terminal-U <gvimrc>		Usa <gvimrc> en lloc de qualsevol altre .gvimrc-V[N][nomf]		Loquacitat [nivell N] [desa missatges a nomf]-W <script>		Escriu totes les ordres entrades al fitxer <script>-X			No es connecta al servidor X-Z			Mode restringit (com "rvim)-b			Mode binari-background <color>	Usa <color> per al fons (tamb�: -bg)-boldfont <fosa>	Usa <fosa> per al text en negreta-borderwidth <amplada>  Usa un marge d'amplada <amplada> (tamb�: -bw) -c <ordre>		Executa <ordre> despr�s de carregar el primer fitxerargument -c-d			Mode diff (com "vimdiff")-dev <dispositiu>		Usa <dispositiu> per a l'E/S-display <pantalla>	Connecta el Vim a un servidor X particular-display <pantalla>	Executa vim a <pantalla>-display <pantalla>	Executa vim a <pantalla> (tamb�: --display)-e			Mode Ex (com "ex")-f			No obre una finestra nova amb newcli-f  o   --nofork	No crea un proc�s nou per al GUI-font <fosa>		Usa <fosa> per al text normal (tamb�: -fn)-foreground <color>	Usa <color> per al text normal (tamb�: -fg)-g			Usa la interf�cie gr�fica (com "gvim")-geometry <geom>	Usa <geom> com a geometria inicial (tamb�: -geom)-h  o   --help	Mostra aquesta ajuda i surt-i <viminfo>		Usa <viminfo> en lloc de .viminfo-iconic		Comen�a iconificat-italicfont <fosa>	Usa <fosa> per al text en cursiva-l			Mode Lisp-m			No permet modificar (escriure) fitxers-menuheight <al�ada>	Al�ada de la barra de men� (tamb�: -mh)-n			No usa fitxers d'intercanvi, nom�s mem�ria-o[N]		Obre N finestres (per omissi�: una per fitxer)-p[N]		Obre N pestanyes (per omissi�: una per fitxer)-q [ftxerrors]  edita el fitxer on hi ha el primer error-r			Llistat dels fitxers d'intercanvi-r (amb nom de fitxer)  Recupera una sessi� accidentada-register		Registra aquest gvim a OLE-reverse		Usa el mode de video invers (tamb�: -rv)-s			Mode silenci�s per lots (nom�s per a "ex")-s <script>		Llegeix ordres del mode Normal del fitxer <script>-scrollbarwidth <amplada>  Amplada de la barra de despla�ament (tamb�: -sw)-t etiqueta     edita el fitxer on hi ha l'etiqueta-u <vimrc>		Usa <vimrc> en lloc de qualsevol altre .vimrc-unregister		D�na de baixa aquest gvim a OLE-v			Mode Vi (com "vi")-w <script>		Afegeix totes les ordres entrades al fitxer <script>-x			Edita fitxers amb xifrat-xrm <recurs>	Estableix el recurs especificat-y			Mode senzill (com "evim", sense modes)S'ignora l�nia / a %s, l�nia %d: %sS'ignora l�nia /encoding= despr�s de paraula a %s, l�nia %d: %sS'ha eliminat 1 bufferS'ha alliberat 1 bufferS'ha destru�t 1 buffer1 car�cter1 l�nia %sada %d vegades1 l�nia %sada 1 vegada1 l�nia --%d%%--1 l�nia canviada1 l�nia sagnada 1 l�nia menys1 l�nia despla�ada1 l�nia copiada1 l�nia, 1 coincid�ncia Queda 1 fitxer per editar.  Voleu sortir de totes maneres?1 l�nia m�s1 substituci�2n fitxer gvimrc de l'usuari: "3r fitxer gvimrc de l'usuari: ": Error en enviar l'expressi�.
: Error en enviar.
: Error en enviar. Intentant executar vim localment
; coincident amb  <%s>%s%s  %d,  Hex %02x,  Octal %03o<no es pot obrir> <buit>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? Des d'aqu� fins a ???FINAL les l�nies poden ser incorrectes??? Des d'aqu� fins a ???FINAL hi pot haver l�nies inserides/eliminades???FALTA UN BLOC???BLOC BUIT???FINAL???RECOMPTE DE L�NIES INCORRECTE???FALTEN L�NIES???FALTEN MOLTES L�NIESValor de ANCHOR_BUF_SIZE massa petit.Afegeix una base de dades novaS'ha afegit la base de dades cscope %sMateix afix utilitzat per BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST a %s, l�nia %d: %sNom d'afix �s massa llarg a %s, l�nia %d: %sTotS'han restablert totes les bases de dades cscopeS'han trobat tots els fitxers inclososJa us trobeu al canvi m�s recentJa us trobeu al canvi m�s anticNom�s hi ha una pestanyaNom�s hi ha una finestraAfegeix un fitxerFalta un argument despr�s deA la l�niaEs torna a intentar obrir l'script: "OriginalInterval decreixent. El voleu invertirFeu-vos usuari de Vim registrat!Bip!Abans de l'octet %ldBaixL�nies SAL i SOFO alhora a %sPunt de ruptura a "%s%s" l�nia %ldCondici� err�nia a %s, l�nia %d: %sElement COMPOUNDSYLMAX sense SYLLABLEEs crida l'int�rpret d'ordres per a executar: "%s"No s'ha trobat el fitxer temporal per a fer la conversi�Cancel�laNo s'ha pogut crear No s'ha pogut executar No s'ha pogut obrir $VIMRUNTIME/rgb.txtNo s'ha pogut obrir NIL:
No s'ha pogut obrir el fitxer "%s"No es pot obrir per a lectura: "No es pot obrir per a la sortida de l'script: "No �s possible executar un directori: "%s"No s'ha pogut escriure el fitxer de desfer a cap dels directoris de 'undodir'Canviar "%.*s" per:Tanca la pestanyaColumna %s de %s; l�nia %ld de %ld; paraula %lld de %lld; octet %lld de %lldColumna %s de %s; l�nia %ld de %ld; paraula %lld de %lld; car�cter %lld de %lld; octet %lld de %lldde la l�nia d'ordresCompilat amb: Compilador: Comprimits %d de %d nodes; %d (%d%%) pendentsComprimint l'arbre de paraules...No s'ha pogut convertir una paraula a %s, l�nia %d: %sConversi� a %s no suportadaLa conversi� a %s no est� suportada: de %s a %sLa conversi� amb 'charconvert' ha fallatNo s'han pogut reassignar els punters de funcions a la DLL!Error en obtenir el context de seguretat %s per a %s.  Eliminat!No s'ha pogut carregar vim32.dll!Error en obrir un fitxer temporal per a logs No es pot obrir un fitxer temporal de logs, s'escriu a stderr ... Error en establir el context de seguretat %s per a %sEtiqueta cscope: %sIdioma actual ( %s): "%s"d'ordres de depuraci�Definir COMPOUNDFORBIDFLAG despr�s de PFX, pot donar resultats incorrectes, a %s, l�nia %dDefinir COMPOUNDPERMITFLAG despr�s de PFX, pot donar resultats incorrectes, a %s, l�nia %dMostra les difer�ncies amb VimDiferents tipus de combinaci� en bloc d'afixos a %s, l�nia %d: %sDirecci�DirectorisDirectori	*.res
Esteu segurs que voleu escriure'lFet!La llista de variables cont� un ; dobleAvallS'ignora l�nia /encoding= duplicada a %s, l�nia %d: %sS'ignora l�nia /regions= duplicada a %s, l�nia %d: %sAfix duplicat a %s, l�nia %d: %sCar�cter duplicat a MAP a %s, l�nia %dCamp de nom duplicat: %sParaula duplicada a %s, l�nia %d: %sE100: No hi ha cap altre buffer en mode diffE101: Hi ha m�s de 2 buffers en mode diffE102: No s'ha trobat el buffer "%s"E103: El buffer "%s" no es troba en mode diffE104: El d�graf cont� car�cters d'escapadaE105: �s de :loadkeymap fora d'un scriptE107: Falten par�ntesis: %sE108: No existeix tal variable: "%s"E109: Falta un ':' despr�s de '?'E10: \ hauria de continuar amb /, ? o &E110: Falta un ')'E111: Falta un ']'E112: Falta el nom de l'opci�: %sE113: Opci� desconeguda: %sE114: Falten cometes: %sE115: Falten cometes: %sE116: Arguments inv�lids a la funci� %sE117: Funci� desconeguda: %sE118: Sobren arguments a la funci�: %sE119: Falten arguments a la funci�: %sE11: No v�lid a la l�nia d'ordres; <ENTRAR> executa, CTRL-C surtE120: �s de <SID> en un context no v�lid: %sE121: Variable no definida: %sE122: La funci� %s ja existeix, afegiu ! per a substituir-laE123: La funci� no est� definida: %sE124: Falta un '(': %sE125: Argument il�legal: %sE126: Falta :endfunctionE127: No es pot redefinir la funci� %s: es troba en �sE128: El nom de la funci� ha de comen�ar amb maj�scula o "s:": %sE129: Es necessita un nom de funci�E12: Ordre no permesa a exrc/vimrc al directori actual o en cerca d'etiquetesE130: Funci� desconeguda: %sE131: No es pot eliminar la funci� %s: es troba en �sE132: El nombre de crides a funcions excedeix 'maxfuncdeptg'E133: :return fora d'una funci�E134: No es poden moure l�nies cap a elles mateixesE135: Les ordres autom�tiques *Filter* han de no modificar el bufferE136: viminfo: Hi ha massa errors, s'omet la resta del fitxerE137: El fitxer viminfo no �s modificable: %sE138: No s'ha pogut escriure el fitxer viminfo %s!E139: El fitxer est� carregat en un altre bufferE13: El fitxer existeix (afegiu ! per a for�ar)E140: Useu ! per a desar una part del bufferE141: No hi ha nom de fitxer per al buffer %ldE142: No s'ha escrit el fitxer: El par�metre 'write' ho impedeixE143: Una ordre autom�tica ha eliminat el nou buffer %sE144: Argument no num�ric a :zE145: El mode restringit no permet executar ordres de l'int�rpretE146: Expressions regulars delimitades amb car�cters alfab�ticsE147: No �s possible usar :global recursivament amb un intervalE148: Falta una expressi� regular a :globalE149: No hi ha ajuda sobre %sE14: Adre�a no v�lidaE150: No �s un directori: %sE151: Cap coincid�ncia: %sE152: No es obrir %s per a escripturaE153: No es pot obrir %s per a lecturaE154: L'etiqueta "%s" est� duplicada en el fitxer %s/%sE155: El senyal �s desconegut: %sE156: Falta el nom del senyalE157: L'ID del senyal no �s v�lid: %ldE158: El nom del buffer no �s v�lid: %sE159: Falta el n�mero del senyalE15: Expressi� no v�lida: %sE160: Ordre de senyals desconeguda: %sE161: Punt de ruptura no trobat: %sE162: No s'han desat els canvis en el buffer "%s"E163: Nom�s hi ha un fitxer per editarE164: No es pot anar m�s enll� del primer fitxerE165: No es pot anar m�s enll� de l'�ltim fitxerE166: No s'ha pogut obrir el fitxer enlla�atE167: �s de :scriptencoding fora d'un scriptE168: �s de :finish fora d'un scriptE169: L'ordre �s massa recursivaE16: Interval no v�lidE170: Falta :endforE170: Falta :endwhileE171: Falta :endifE172: Nom�s podeu especificar un nom de fitxerE173: Queden %ld fitxers per editarE173: Queda 1 fitxer per editarE174: L'ordre ja existeix: afegiu ! per a substituir-laE175: No heu especificat cap atributE176: El nombre d'arguments no �s v�lidE177: El par�metre de quantitat no es pot especificar dos copsE178: El valor per omissi� del par�metre de quantitat no �s v�lidE179: l'atribut -addr requereix un argumentE179: l'atribut -complete requereix un argumentE17: "%s" �s un directoriE180: El tipus d'adre�a no �s v�lid: %sE180: El tipus de compleci� no �s v�lid: %sE181: L'atribut no �s v�lid: %sE182: El nom de l'ordre no �s v�lidE183: Les ordres definides per l'usuari han de comen�ar amb maj�sculaE184: No existeix tal ordre definida per l'usuari: %sE185: No s'ha trobat l'esquema de colors '%s'E186: No hi ha cap directori anteriorE187: DesconegutE188: Aquesta plataforma no permet obtenir la posici� de la finestraE189: "%s" existeix (afegiu ! per a for�ar)E18: Car�cters inesperats a :letE190: No es pot obrir "%s" per a escripturaE191: L'argument ha de ser una lletra o b� un accent obert o tancatE192: �s de :normal amb un grau de recursivitat massa elevatE193: :endfunction fora d'una funci�E194: no hi ha cap nom de fitxer alternatiu per substituirE195: No s'ha pogut obrir el fitxer viminfo per a lecturaE196: Aquesta versi� no suporta d�grafsE197: No s'ha pogut canviar l'idioma a "%s"E198: cmd_pchar fora de l'�rea de l'ordreE199: S'ha eliminat la finestra o el buffer actiuE19: Marca amb n�mero de l�nia no v�lidE200: Ordres autom�tiques *ReadPre han deixat el fitxer illegibleE201: Les ordres autom�tiques *ReadPre han de no modificar el bufferE202: La conversi� ha deixat el fitxer illegible!E203: Ordres autom�tiques han eliminat o alliberat el bufferE204: Una ordre autom�tica ha canviat el nombre de l�niesE205: patchmode: no s'ha pogut desar el fitxer originalE206: patchmode: no s'ha pogut fer un toc al fitxer original buitE207: No s'ha pogut eliminar la c�pia de seguretatE208: Error en escriure "%s"E209: Error en tancar "%s"E20: Marca no establertaE210: Error en llegir "%s"E211: El fitxer "%s" ha deixat d'estar disponibleE212: No s'ha pogut obrir el fitxer per a escripturaE213: No s'ha pogut convertir (! per a desar sense convertir)E214: No s'ha trobat el fitxer temporalE215: Car�cter il�legal despr�s de *: %sE216: No existeix tal esdeveniment: %sE216: No existeix tal grup o esdeveniment: %sE217: No es pot assignar una ordre a TOTS els esdevenimentsE218: nivell d'imbricaci� d'ordres autom�tiques massa elevatE219: Falta un {.E21: No es poden fer canvis, el par�metre 'modifiable' est� desactivatE220: Falta un }.E222: No es pot modificar un buffer de lecturaE223: assignaci� recursivaE224: ja existeix una abreviaci� global per a %sE225: ja existeix una assignaci� global per a %sE226: ja existeix una abreviaci� per a %sE227: ja existeix una assignaci� per a %sE228: makemap: Mode il�legalE229: No s'ha pogut iniciar la interf�cie gr�ficaE22: Nivell d'imbricaci� de scripts massa elevatE230: No s'ha pogut llegir "%s"E231: El valor de 'guifontwide' no �s v�lidE232: No es pot crear un BalloonEval amb missatge i callback alhoraE233: No s'ha pogut obrir la pantallaE234: Conjunt de foses desconegut: %sE235: Fosa desconeguda: %sE236: La fosa "%s" no �s d'amplada fixaE237: Error en seleccionar la impressoraE238: Error d'impressi�: %sE239: El text del senyal no �s v�lid: %sE23: No hi ha cap fitxer alternatiuE240: No hi ha connexi� amb el servidor XE241: No s'ha pogut enviar a %sE243: Argument no suportat: "-%s"; Useu la versi� OLE.E244: Conjunt de car�cters "%s" il�legal a la fosa "%s"E244: Tipus de qualitat "%s" il�legal a la fosa "%s"E245: Car�cter '%c' il�legal a la fosa "%s"E246: L'ordre autom�tica FileChangedShell ha eliminat el bufferE247: cap servidor registrat amb aquest nom "%s"E248: No s'ha pogut enviar l'ordre al programa destinatariE24: No existeix tal abreviaci�E250: Falten fonts per als jocs de car�cters del conjunt de fonts %s:E251: La propietat 'VimRegistry' no �s v�lida.  S'ha esborrat!E252: Nom del conjunt de fonts: %sE253: Nom del conjunt de fonts: %sE254: No s'ha pogut assignar mem�ria per al color %sE255: Error en obtenir les dades de senyals!E256: ERROR de l'aut�mata hangulE257: cstag: No s'ha trobat l'etiquetaE258: No s'ha pogut enviar al clientE259: no hi ha coincid�ncies per la cerca cscope %s de %sE25: No es pot usar GUI: No ha estat compilatE261: no s'ha trobat la connexi� cscope %sE262: Error en llegir la connexi� cscope %ldE263: Ordre no disponible, no s'ha carregat la biblioteca Python.E264: Python: Error en inicialitzar els objectes d'E/SE265: $_ ha de ser StringE266: Ordre no disponible, no s'ha carregat la biblioteca Ruby.E267: retorn inesperatE268: 'next' inesperatE269: 'break' inesperatE26: No es pot usar hebreu: No ha estat compilat
E270: 'redo' inesperatE271: 'retry' fora d'una cl�usula de rescatE272: excepci� no condu�daE273: estat de longjmp %d desconegutE277: No s'ha pogut llegir la resposta del servidorE27: No es pot usar farsi: No ha estat compilat
E280: ERROR FATAL DE TCL: reflist corromput!? Comuniqueu el bug a vim-dev@vim.org.E282: No s'ha pogut llegir "%s"E283: Cap marca coincident amb "%s"E284: No s'han pogut establir els valors del context d'entradaE285: Error en crear el context d'entradaE286: Error en obrir el m�tode d'entradaE287: Atenci�: Error en establir el callback de destrucci� de l'IME288: el m�tode d'entrada no suporta cap estilE289: el m�tode d'entrada no suporta el tipus de preedici�E28: No existeix tal grup de ressaltat: %sE293: El bloc no estava bloquejatE294: Error de posicionament en llegir el fitxer d'intercanviE295: Error de lectura en el fitxer d'intercanviE296: Error de posicionament en escriure el fitxer d'intercanviE297: Error d'escriptura en el fitxer d'intercanviE298: No s'ha pogut obtenir el bloc 0?E298: No s'ha pogut obtenir el bloc 1?E298: No s'ha pogut obtenir el bloc 2?E299: No est� perm�s executar Perl en un entorn a�llat sense el m�dul SafeE29: Encara no s'ha inserit textE300: El fitxer d'intercanvi ja existeix (pot ser un atac?)E301: El fitxer d'intercanvi ha desaparegut!!!E302: No s'ha pogut reanomenar el fitxer d'intercanviE303: Error en obrir el fitxer .swp de "%s", no es pot recuperarE304: ml_upd_block0(): No s'ha obtingut el bloc 0??E305: No s'ha trobat el fitxer d'intercanvi de %sE306: No s'ha pogut obrir %sE307: %s no sembla un fitxer d'intercanvi del VimE308: Atenci�: El fitxer original pot haver canviatE309: No s'ha pogut llegir el bloc 1 de %sE30: No hi ha cap ordre anteriorE310: L'ID del bloc 1 no �s correcte (%s no �s un fitxer .swp?)E311: S'ha interromput la recuperaci�E312: Errors durant la recuperaci�; cerqueu l�nies amb la marca ???E313: No s'ha pogut preservar, no existeix cap fitxer d'intercanviE314: La preservaci� ha fallatE315: ml_get: lnum no v�lid: %ldE316: ml_get: no s'ha trobat la l�nia %ldE317: punter a id de bloc incorrecteE317: punter a id de bloc incorrecte 2E317: punter a id de bloc incorrecte 3E317: Punter a id de bloc incorrecte 4E318: S'han actualitzat massa blocs?E319: Aquesta ordre no est� disponible en aquesta versi�E31: No existeix tal assignaci�E320: No s'ha trobat la l�nia %ldE321: No s'ha pogut rellegir "%s"E322: n�mero de l�nia fora de l'interval: %ld passat el finalE323: nombre de l�nies incorrecte al bloc %ldE324: No s'ha pogut obrir el fitxer PostScript de sortidaE325: ATENCI�E326: S'han trobat massa fitxers d'intercanviE327: Un component de l'�tem de men� no �s un submen�E328: El men� nom�s existeix en un altre modeE329: No hi ha cap men� "%s"E32: Falta un nom de fitxerE330: L'�tem de men� no pot ser un submen�E331: No �s possible afegir �tems directament a la barra de men�E332: Un component de l'�tem de men� �s un separadorE333: L'�tem de men� ha de portar a un elementE334: No s'ha trobat el men�: %sE335: El men� no est� definit per al mode %sE336: L'�tem de men� ha de portar a un submen�E337: No s'ha trobat el men� - reviseu els noms dels men�sE338: L'explorador de fitxers no est� disponible en mode consolaE339: El patr� �s massa llargE33: No hi ha cap expressi� de substituci� anteriorE340: La l�nia s'est� fent massa llargaE341: Error intern: lalloc(%ld, )E342: Mem�ria exhaurida! (en assignar %lu octets)E343: Ubicaci� no v�lida: '**[n�m]' ha d'anar al final de la ubicaci�, o anar seguit de '%s'E344: No s'ha trobat el directori "%s" a cdpathE345: No s'ha trobat el fitxer "%s" a pathE346: No s'ha trobat cap m�s directori "%s" a cdpathE347: No s'ha trobat cap m�s fitxer "%s" a pathE348: El cursor no es troba sobre una cadenaE349: El cursor no es troba sobre un identificadorE34: No hi ha cap ordre anteriorE350: No �s possible crear plecs amb el m�tode seleccionatE351: No �s possible eliminar plecs amb el m�tode seleccionatE352: No es poden eliminar plecs amb el m�tode actualE353: No hi ha res en el registre %sE354: El nom de registre no �s v�lid: '%s'E355: Opci� desconeguda: %sE356: Error a get_varpE357: 'langmap': Cap car�cter coincident per a %sE358: 'langmap': Sobren car�cters despr�s del punt i coma: %sE359: L'ajustament del mode de pantalla no est� suportatE35: No hi ha cap expressi� regular anteriorE360: No �s possible executar l'int�rpret conjuntament amb l'opci� -fE363: el patr� requereix m�s mem�ria que 'maxmempattern'E364: La crida a la biblioteca a fallat per a "%s()"E365: Error en imprimir el fitxer PostScriptE367: No existeix tal grup: "%s"E369: �tem no v�lid a %s%%[]E36: No hi ha prou espaiE370: No s'ha pogut carregar la biblioteca %sE371: No s'ha trobat l'ordreE372: Sobren %%%c a la cadena de formatE373: %%%c inesperat a la cadena de formatE374: Falta un ] a la cadena de formatE375: %%%c no suportat a la cadena de formatE376: %%%c no v�lid en el prefix de la cadena de formatE377: %%%c no v�lid a la cadena de formatE378: 'errorformat' no cont� cap patr�E379: Falta un nom de directoriE37: No s'han desat els canvisE37: No s'han desat els canvis (afegiu ! per a for�ar)E380: A baix de la pila quickfixE381: A dalt de la pila quickfixE382: No es pot escriure, 'buftype' est� establertE383: Cadena de cerca no v�lida: %sE384: la cerca ha arribat a DALT sense resultats per: %sE385: la cerca ha arribat a BAIX sense resultats per: %sE386: S'esperava '?' o '/' despr�s de ';'E387: El resultat es troba a la l�nia actualE388: No s'ha trobat la definici�E389: No s'ha trobat el patr�E38: Argument nulE390: L'argument �s il�legal: %sE391: No existeix tal cl�ster de sintaxi: %sE392: No existeix tal cl�ster de sintaxi: %sE393: grouphere/groupthere no �s v�lid en aquest contextE394: No s'ha trobat cap element de regi� per a %sE395: cont� argument no v�lid en aquest contextE397: Necessita un nom de fitxerE398: Falta un '=': %sE399: Falten arguments: syntax region %sE39: S'esperava un n�meroE400: No s'ha especificat cap cl�sterE401: No s'ha trobat el delimitador: %sE402: Car�cters sobrants despr�s del patr�: %sE403: syntax sync: patr� de continuaci� de l�nia repetitE404: Arguments il�legals: %sE405: Falta un signe d'igual: %sE406: Argument buit: %sE407: %s no perm�s en aquest contextE408: %s ha d'anar al principi a 'contains'E409: Nom de grup desconegut: %sE40: No s'ha pogut obrir el fitxer d'errors %sE410: Subordre de :syntax no v�lida: %sE411: grup de ressaltat no trobat: %sE412: Falten arguments: ":highlight link %s"E413: Sobren arguments: ":highlight link %s"E414: el grup ja t� par�metres, s'ignora l'enlla�E415: signe d'igualtat inesperat: %sE416: falta un signe d'igual: %sE417: falta un argument: %sE418: Valor il�legal: %sE419: Color de primer terme desconegutE41: Mem�ria exhaurida!E420: Color de segon terme desconegutE421: Nom o n�mero de color no reconegut: %sE422: codi de terminal massa llarg: %sE423: Argument il�legal: %sE424: Hi ha massa atributs de ressaltat diferents en �sE425: No es pot anar m�s enll� de la primera etiqueta coincidentE426: No s'ha trobat l'etiqueta: %sE427: Nom�s hi ha una etiqueta coincidentE428: No es pot anar m�s enll� de l'�ltima etiqueta coincidentE429: El fitxer "%s" no existeixE42: No hi ha errorsE430: ubicaci� del fitxer d'etiquetes truncada per a %s
E431: Error de format en el fitxer d'etiquetes "%s"E432: El fitxer d'etiquetes no est� ordenat: %sE433: No hi ha cap fitxer d'etiquetesE434: No s'ha trobat l'etiquetaE435: No s'ha trobat l'etiqueta exacta!E436: No hi ha cap entrada "%s" al termcapE437: es necessita la capacitat "cm" per part del terminalE438: u_undo: els n�meros de l�nia no s�n correctesE439: la llista de desfer est� corrompudaE43: Cadena de coincid�ncia corrompudaE440: falta una l�nia de desferE441: No hi ha cap finestra de previsualitzaci�E442: No es pot dividir horitzontal i verticalment alhoraE443: No es pot rotar quan hi ha finestres divididesE444: No es pot tancar l'�ltima finestraE445: Hi han altres finestres que contenen canvisE446: No hi ha cap nom de fitxer sota el cursorE447: No s'ha trobat el fitxer "%s" a pathE448: No s'ha pogut carregar la funci� %sE449: S'ha rebut una expressi� no v�lidaE44: Programa d'expressi� regular corromputE455: Error en escriure el fitxer PostScriptE456: No s'ha trobat el fitxer de recursos PostScript "%s.ps"E456: No s'ha trobat el fitxer de recursos PostScript "cidfont.ps"E456: No s'ha trobat el fitxer de recursos PostScript "prolog.ps"E456: No s'ha pogut obrir el fitxer "%s"E457: No s'ha pogut llegir el fitxer de recursos PostScript "%s"E459: No es pot tornar al directori anteriorE45: 'readonly' est� establert (afegiu ! per a for�ar)E460: La secci� de recursos del fitxer es perdr� (afegiu ! per a for�ar)E461: El nom de la variable �s il�legal: %sE462: No s'han pogut fer les preparacions per a rellegir "%s"E463: La regi� est� protegida, no es pot modificarE464: �s ambigu d'una ordre definida per l'usuariE465: :winsize requereix dos arguments num�ricsE466: :winpos requereix dos arguments num�ricsE467: La compleci� no est�ndard requereix una funci� com a argumentE468: La compleci� est�ndard no admet argumentsE469: par�metre cscopequickfix %c no v�lid per a %cE46: No es pot canviar la variable de nom�s lectura "%s"E470: S'ha avortat l'ordreE471: Es requereix un argumentE472: L'ordre ha fallatE473: Error internE474: Argument no v�lidE475: Argument no v�lid: %sE476: Ordre no v�lidaE477: ! no perm�sE478: Mantingueu la calma!E479: Cap coincid�nciaE47: Error en llegir el fitxer d'errorsE480: Cap coincid�ncia: %sE481: No es permeten intervalsE482: No es pot crear el fitxer %sE483: No s'ha pogut obtenir el nom del fitxer temporalE484: No es pot obrir el fitxer %sE485: No es pot llegir el fitxer %sE486: No s'ha trobat el patr�: %sE487: L'argument ha de ser un n�mero positiuE488: Sobren car�cters al finalE48: No est� perm�s dins d'un entorn d'a�llamentE490: No s'ha trobat cap plecE492: No �s una ordre de l'editorE493: Interval decreixentE494: Useu w o b� w>>E495: no hi ha cap nom de fitxer d'ordres autom�tiques per substituirE496: no hi ha cap buffer d'ordres autom�tiques per substituirE497: no hi ha cap coincid�ncia d'ordre autom�tica per substituirE498: no hi ha cap nom de fitxer :source per substituirE499: Nom de fitxer per a '%' o '#' en blanc, nom�s funciona amb ":p:h"E49: Dist�ncia de despla�ament no v�lidaE500: L'avaluaci� �s una cadena en blancE501: Final del fitxerE505: "%s" �s de nom�s lectura (afegiu ! per a for�ar)E505: %s �s de nom�s lectura (afegiu ! per a for�ar)E506: No s'ha pogut escriure la c�pia de seguretat (! per a for�ar)E507: Error en tancar la c�pia de seguretat (afegiu ! per a for�ar)E508: Error de lectura en fer la c�pia de seguretat (! per a for�ar)E509: No s'ha pogut crear la c�pia de seguretat (! per a for�ar)E50: Sobren \z(E510: No s'ha pogut fer la c�pia de seguretat (! per a for�ar)E511: NetBeans ja est� connectatE512: Error en tancarE513: ha fallat la conversi� (anul�leu l'opci� 'fenc' per a ometre)E513: error de conversi�, l�nia %ld (anul�leu l'opci� 'fenc' per a ometre)E514: Error d'escriptura (sistema de fitxers ple?)E515: No s'ha alliberat cap bufferE516: No s'ha eliminat cap bufferE517: No s'ha destru�t cap bufferE518: L'opci� �s desconegudaE519: L'opci� no est� suportadaE51: Sobren %s(E520: No perm�s en una l�nia de modeE521: Falta un n�mero despr�s de =E521: Fa falta un n�mero: &%s = '%s'E522: No trobat a la base de dades termcapE523: No perm�s en aquest contextE524: Falta un car�cter ":"E525: Cadena de longitud zeroE526: Falta un n�mero despr�s de <%s>E527: Falta una comaE528: Heu d'especificar un valor 'E529: No �s possible assignar 'term' a una cadena buidaE52: \z( desequilibratE530: No es pot canviar el terminal en mode GUIE531: Useu ":gui" per a iniciar la interf�cie d'usuari gr�ficaE533: No s'ha pogut seleccionar la fosa per a car�cters amplesE534: La fosa per a car�cters amples no �s v�lidaE535: Car�cter il�legal despr�s de <%c>E536: Es requereix una comaE537: 'commentstring' ha d'estar en blanc o contenir %sE538: No hi ha suport per a ratol�E539: Car�cter il�legal <%s>E53: %s%%( desequilibratE540: Seq��ncia d'expressions no tancadaE541: massa �temsE542: grups desequilibratsE543: No �s un codi de p�gina v�lidE544: No s'ha trobat el fitxer de mapa de teclesE545: Falta un car�cter ":"E546: Mode il�legalE547: La forma del punter del ratol� �s il�legalE548: S'esperava un d�gitE549: Percentatge il�legalE54: %s( desequilibratE550: Falta un car�cter ':'E551: Component il�legalE552: s'esperava un d�gitE553: No hi ha m�s �temsE554: Error de sintaxi a %s{...}E555: a baix de la pila d'etiquetesE556: a dalt de la pila d'etiquetesE557: No s'ha pogut obrir el fitxer termcapE558: No s'ha trobat informaci� sobre el terminal a terminfoE559: No s'ha trobat informaci� sobre el terminal a termcapE55: %s) desequilibratE560: Sintaxi: cs[cope] %sE561: Tipus de cerca cscope desconegudaE562: Sintaxi: cstag <despl>E563: Error a stat()E563: Error a stat(%s): %dE564: %s no �s un directori o una base de dades cscope v�lidaE566: No s'han pogut crear canonades cscopeE567: No hi ha connexions cscopeE568: no s'ha afegit una base de dades cscope duplicadaE570: error fatal a cs_manage_matchesE571: Ordre no disponible: no s'ha carregat la biblioteca Tcl.E572: codi de sortida %dE573: ID de servidor no v�lid: %sE574: El tipus de registre %d �s desconegutE579: nivell d'imbricaci� :if massa elevatE580: :endif sense :ifE581: :else sense :ifE582: :elseif sense :ifE583: m�ltiples :elseE584: :elseif despr�s de :elseE585: nivell d'imbricaci� :while/:for massa elevatE586: :continue sense :while o :forE587: :break sense :whileE588: :endfor sense :forE588: :endwhile sense :whileE589: Els par�metres 'backupext' i 'patchmode' coincideixenE590: Ja existeix una finestra de vista pr�viaE591: El valor de 'winheight' no pot ser menor que 'winminheight'E592: El valor de 'winwidth' no pot ser menor que 'winminwidth'E593: Es necessiten com a m�nim %d l�niesE594: Es necessiten com a m�nim %d columnesE595: Cont� un car�cter no imprimible o ampleE596: Fosa no v�lidaE597: No s'ha pogut seleccionar el conjunt de fosesE598: El conjunt de foses no �s v�lidE599: El valor de 'imactivatekey' no �s v�lidE59: car�cter no v�lid despr�s de %s@E600: Falta :endtryE601: nivell d'imbricaci� :try massa elevatE602: :endtry sense :tryE603: :catch sense :tryE604: :catch despr�s de :finallyE605: No s'ha interceptat l'excepci�: %sE606: :finally sense :tryE607: m�ltiples :finallyE608: No �s possible generar excepcions amb el prefix 'Vim'E609: Error de cscope: %sE60: Massa %s{...}sE612: S'han definit massa senyalsE613: Fosa d'impressi� desconeguda: %sE614: vim_SelFile: no s'ha pogut tornar al directori actualE615: vim_SelFile: no s'ha pogut obtenir el directori actualE616: vim_SelFile: no s'ha pogut obtenir la fosa %sE617: La interf�cie GTK+ 2 no permet canviar la codificaci�E618: El fitxer "%s" no �s un fitxer de recursos PostScriptE619: El fitxer de recursos PostScript "%s" no est� suportatE61: %s* imbricatsE620: No s'ha pogut convertir a la codificaci� d'impressi� "%s"E621: La versi� del fitxer de recursos "%s" �s incorrectaE622: No s'ha pogut crear el proc�s cscopeE623: No s'ha pogut crear el proc�s cscopeE624: No s'ha pogut obrir el fitxer "%s"E625: no s'ha pogut obrir la base de dades cscope: %sE626: no s'ha pogut obtenir informaci� de la base de dades cscopeE62: %s%c imbricatsE630: %s(): s'ha escrit sense estar connectatE631: %s(): l'escriptura ha fallatE63: �s inv�lid de \_E64: %s%c no segueix resE655: Massa enlla�os simb�lics (circulars?)E658: S'ha perdut la connexi� NetBeans per al buffer %ldE659: No es pot invocar Python de forma recursivaE65: Refer�ncia enrere il�legalE661: No hi ha ajuda en '%s' sobre %sE662: Us trobeu a l'inici de la llista de canvisE663: Us trobeu al final de la llista de canvisE664: La llista de canvis est� buidaE665: Error en iniciar el GUI, no s'han trobat tipus de lletraE666: el compilador no est� suportat: %sE667: Fsync ha fallatE668: El fitxer de connexi� NetBeans t� permisos incorrectes: "%s"E669: Car�cter no imprimible en el nom del grupE66: \z( no est� perm�s aqu�E670: Fitxers d'ajuda amb codificacions heterog�nies: %sE671: No s'ha trobat el t�tol de finestra "%s"E672: No s'ha pogut obrir una finestra dins l'aplicaci� MDIE673: El joc de car�cters no admet codificaci� multi-octet.E674: la codificaci� multi-octet requereix l'opci� printmbcharsetE675: No hi ha cap font per defecte per a imprimir en mode multi-octet.E676: No hi ha ordres autom�tiques coincidents amb acwriteE677: Error en escriure el fitxer temporalE678: Car�cter inv�lid despr�s de %s%%[dxouU]E679: bucle infinit en carregar syncolor.vimE67: \z1 et al. no estan permesos aqu�E680: <buffer=%d>: n�mero de buffer no v�lidE681: El buffer no est� carregatE682: Patr� de cerca o delimitador no v�lidE683: Falta un nom de fitxer o el patr� no �s v�lidE684: �ndex de llista fora de l'interval: %ldE685: Error intern: %sE686: L'argument a %s ha de ser ListE687: Menys valors per assignar que elements a la llistaE688: M�s valors per assignar que elements a la llistaE689: Nom�s �s possible indexar List i DictionaryE68: Car�cter inv�lid despr�s de \zE690: Falta un "in" despr�s de :forE691: List nom�s es pot comparar amb ListE692: Operaci� no v�lida amb llistesE694: Operaci� no v�lida per a FuncrefE695: No �s possible indexar FuncrefE696: Falta una coma a la llista: %sE697: Falta ']' al final de la llista: %sE698: el nivell d'imbricaci� de la variable �s massa elevatE699: Sobren argumentsE69: Falta un ] despr�s de %s%%[E700: Funci� desconeguda: %sE701: Tipus inv�lid per a len()E702: La funci� de comparaci� a sort() ha fallatE703: �s de Funcref com a NumberE704: Les variables Funcref han de comen�ar amb maj�scula: %sE705: La variable entra en conflicte amb una funci� existent: %sE707: El nom de la funci� entra en conflicte amb una variable: %sE708: [:] ha d'anar al finalE709: [:] requereix un valor ListE70: %s%%[] buitE710: La llista cont� m�s elements que valors per assignarE711: La llista no cont� prou elementsE712: L'argument de %s ha de ser List o DictionaryE713: No �s possible utilitzar una clau buida en un diccionariE714: Es necessita una llistaE715: Es necessita DictionaryE716: La clau no existeix al diccionari: %sE717: Ja existeix l'entrada al diccionariE718: Es necessita FuncrefE719: No es pot usar [:] amb un diccionariE71: Car�cter inv�lid despr�s de %s%%E720: Falta un car�cter ':': %sE721: Clau duplicada: "%s"E722: Falta una coma: %sE723: Falta un '}': %sE724: el nivell d'imbricaci� de la variable �s massa elevatE725: Crida a una funci� de diccionari sense diccionari: %sE726: L'increment �s zeroE727: Inici despr�s del finalE728: �s de Dictionary com a NumberE729: �s de Funcref com a StringE72: Error en tancar el fitxer d'intercanviE730: �s de List com a StringE731: �s de Dictionary com a StringE732: �s de :endfor amb :whileE733: �s de :endwhile amb :forE734: Tipus de variable incorrecte per a %s=E735: Dictionary nom�s es pot comparar amb DictionaryE736: Operaci� no v�lida per a DictionaryE737: La clau ja existeix: %sE738: No s'han pogut mostrar les variables de tipus %sE739: No s'ha pogut crear el directori: %sE73: La pila d'etiquetes est� buidaE740: Sobren arguments a la funci� %sE741: El valor est� bloquejat: %sE742: No s'ha pogut canviar el valor de %sE743: el nivell d'imbricaci� de la variable �s massa elevatE744: NetBeans no permet canvis a fitxers de nom�s lecturaE745: �s de List com a NumberE746: El nom de la funci� no coincideix amb el nom de l'script: %sE747: Buffer modificat, no es canvia de directori (! per a for�ar)E748: No hi ha cap registre usat amb anterioritatE749: buffer buitE74: L'ordre �s massa complexaE750: Primer feu ":profile start {nomfitxer}"E751: El fitxer de sortida no pot tenir un nom de regi�E752: No hi ha cap correcci� pr�viaE753: No trobat: %sE754: Nom�s es suporten fins a 8 regionsE755: Regi� no v�lida a %sE756: La comprovaci� ortogr�fica no est� activadaE757: No �s un fitxer d'ortografiaE758: Fitxer d'ortografia truncatE75: El nom �s massa llargE760: Falta el nombre de paraules a %sE761: Error de format en el fitxer d'afixos FOL, LOW o UPPE762: Car�cter a FOL, LOW o UPP fora de l'intervalE763: Les llistes de car�cters constituents de paraula no coincideixenE764: El par�metre '%s' no est� establertE765: 'spellfile' no t� %ld entradesE766: Falten arguments a printf()E767: Sobren arguments a printf()E768: El fitxer d'intercanvi existeix: %s (:silent! per a for�ar)E769: Falta un ] despr�s de %s[E76: Sobren [E770: El fitxer d'ortografia cont� una secci� no suportadaE771: Fitxer d'ortografia obsolet, ha de ser actualitzatE772: Fitxer d'ortografia per a una versi� m�s recent del VimE773: Enlla�os simb�lics circulars per a "%s"E774: 'operatorfunc' est� en blancE775: La caracter�stica eval no est� disponibleE776: No hi ha cap llista de posicionsE777: S'esperava String o ListE778: No �s un fitxer .sug: %sE779: Fitxer .sug obsolet, ha de ser actualitzat: %sE77: Sobren noms de fitxerE780: Fitxer .sug per a una versi� m�s recent del Vim: %sE781: El fitxer .sug no coincideix amb el fitxer .spl: %sE782: error en llegir el fitxer .sug: %sE783: Car�cter duplicat a l'entrada MAPE784: No �s possible tancar l'�ltima pestanyaE785: complete() nom�s es pot utilitzar en mode d'inserci�E786: Interval no perm�sE787: El buffer ha canviat inesperadamentE788: No est� perm�s editar un altre buffer araE789: Falta un ']': %sE78: Marca desconegudaE790: undojoin no est� perm�s despr�s de undoE791: Entrada buida al mapa de teclesE792: Nom de men� en blancE793: No hi ha cap altre buffer en mode diff que sigui modificableE794: No es pot definir la variable dins de l'entorn d'a�llament: "%s"E795: No s'ha pogut eliminar la variable %sE797: L'ordre autom�tica SpellFileMissing ha eliminat el bufferE798: ID reservat per a ":match": %ldE799: ID inv�lid: %ld (ha de ser m�s gran o igual que 1)E79: No s'ha pogut expandir el nom de fitxerE800: No es pot usar �rab: No ha estat compilat
E801: L'ID ja est� agafat: %ldE802: ID inv�lid: %ld (ha de ser m�s gran o igual que 1)E803: ID no trobat: %ldE804: No �s possible utilitzar '%' amb FloatE805: �s de Float com a NumberE806: �s de Float com a StringE807: S'esperava un argument Float a printf()E808: Es necessita Number o FloatE809: #< no est� disponible sense la caracter�stica +evalE80: Error d'escripturaE810: No s'han pogut escriure o llegir fitxers temporalsE811: No est� perm�s canviar la informaci� del buffer araE812: Ordres autom�tiques han canviat el buffer o el nom del bufferE813: No es pot tancar la finestra autocmdE814: No es pot tancar la finestra, nom�s romandria la finestra autocmdE815: Ordre no disponible, no s'han carregat biblioteques MzSchemeE816: No s'ha pogut llegir la sortida de patchE817: �s de Blowfish amb una ordenaci� dels bytes incorrectaE818: el test sha256 ha fallatE819: el test Blowfish ha fallatE81: �s de <SID> en un context equivocatE820: sizeof(uint32_t) != 4E821: El fitxer est� xifrat amb un m�tode desconegutE822: Error en obrir el fitxer de desfer: %sE823: No �s un fitxer de desfer: %sE824: Fitxer de desfer incompatible: %sE825: Fitxer de desfer corromput (%s): %sE826: Error en desxifrar el fitxer de desfer: %sE827: El fitxer de desfer est� xifrat: %sE828: No es pot obrir el fitxer de desfer per a escriptura: %sE829: error d'escriptura en desar el fitxer de desfer: %sE82: No s'ha pogut assignar mem�ria per a cap buffer, sortint...E830: No s'ha trobat l'element de desfer n�mero %ldE831: s'ha cridat bf_key_init() amb una contrasenya buidaE832: Fitxer de desfer xifrat associat a un fitxer no xifrat: %sE833: %s est� xifrat i aquesta versi� de Vim no suporta xifratgeE834: Conflicte amb el valor de 'listchars'E835: Conflicte amb el valor de 'fillchars'E836: Aquest Vim no pot executar :python despr�s de :py3E837: Aquest Vim no pot executar :py3 despr�s de :pythonE838: aquesta interf�cie gr�fica no suporta NetBeansE839: La funci� de compleci� ha modificat la finestraE83: No s'ha pogut assignar mem�ria per al buffer, usant-ne un altre...E840: La funci� de compleci� ha esborrat textE841: Nom reservat, no es pot usar com a ordre definida per l'usuariE842: no hi ha cap script per substituir "<sfile>"E843: Error en actualitzar el xifrat del fitxer d'intercanviE844: valor de cchar inv�lidE845: Mem�ria insuficient, la llista de paraules ser� incompletaE846: Codi de tecla no definitE847: Sobren inclusions de sintaxiE848: Sobren cl�sters de sintaxiE849: Massa grups de sintaxi i de ressaltatE84: No s'ha trobat cap buffer modificatE850: Nom de registre no v�lidE851: No s'ha pogut crear un nou proc�s per a la interf�cie gr�ficaE852: El proc�s fill no ha pogut crear la interf�cie gr�ficaE853: Argument duplicat: %sE854: la ubicaci� �s massa llarga per a fer compleci�E855: Una ordre autom�tica a provocat que l'ordre avort�sE858: Eval no ha retornat un objecte Python v�lidE859: Error en convertir l'objecte Python retornat a un valor VimE85: No hi ha cap buffer a la llistaE862: No �s possible utilitzar g: en aquest contextE864: \%#= ha d'anar seguit de 0, 1 o 2. Es canvia al motor autom�tic.E865: (NFA) final prematur de l'expressi� regularE866: (NFA) %c mal col�locatE867: (NFA) Operador desconegut '\%%%c'E867: (NFA) Operador desconegut '\z%c'E868: Error en construir l'NFA amb classe d'equival�ncia!E869: (NFA) Operador desconegut '\@%c'E86: El buffer %ld no existeixE870: (NFA) Error en llegir els l�mits de repetici�E871: (NFA) Diverses especificacions de multiplicitat seguides !E872: (NFA) Sobren '('E873: (NFA) par�ntesi sense tancarE874: (NFA) No es poden treure elements de la pila !E875: (NFA) (En convertir de postfix a NFA), la pila cont� massa estatsE876: (NFA) Espai insuficient per a desar l'NFAE877: (NFA) Classe de car�cter inv�lida: %ldE878: (NFA) Mem�ria insuficient per a rec�rrer la branca!E879: (NFA) Sobren \z(E87: No es pot anar m�s enll� de l'�ltim bufferE881: El nombre de l�nies ha canviat inesperadamentE882: La funci� de comparaci� a unique() ha fallatE883: els registres d'expressi� i de patr� de cerca no poden contenir m�s d'una l�niaE884: El nom de la funci� no pot contenir ":": %sE885: No �s possible canviar el senyal %sE886: No s'ha pogut reanomenar el fitxer viminfo a %s!E263: Ordre no disponible, no s'ha carregat el m�dul site de Python.E888: (NFA) no �s possible repetir %sE88: No es pot anar m�s enll� del primer bufferE890: car�cter sobrer despr�s de ']': %s]%sE891: �s de Funcref com a FloatE892: �s de String com a FloatE893: �s de List com a FloatE894: �s de Dictionary com a FloatE895: Ordre no disponible, no s'ha carregat el m�dul base de MzSchemeE898: socket() a channel_open()E89: No s'ha desat el buffer %ld (afegiu ! per a for�ar)E901: gethostbyname() a channel_open()E902: No s'ha pogut connectar al portE903: s'ha rebut una ordre amb un argument que no �s textE904: l'�ltim argument a expr/call ha de ser un n�meroE904: el tercer argument a call ha de ser una llistaE905: s'ha rebut una ordre desconeguda: %sE906: el canal no est� obertE907: �s de Special com a FloatE908: �s d'un valor inv�lid com a StringE909: Les variables especials no s�n indexablesE90: No es pot alliberar l'�ltim bufferE910: �s de Job com a NumberE911: �s de Job com a FloatE912: no es pot usar ch_evalexpr()/ch_sendexpr() amb canals raw o nlE913: �s de Channel com a NumberE914: �s de Channel com a FloatE915: els buffers in_io han de tenir l'atribut in_buf o in_nameE916: no �s una feina v�lidaE917: No es poden utilitzar callbacks amb %s()E918: el buffer no est� carregat: %sE919: Directori no trobat a '%s': "%s"E91: El par�metre 'shell' est� en blancE920: els fitxers _io han de tenir l'atribut _nameE921: L'argument del callback no �s v�lidE922: s'esperava un diccionariE923: El segon argument a function() ha de ser una llista o diccionariE924: S'ha tancat la finestra actualE925: La llista quickfix ha canviatE926: La llista d'ubicacions ha canviatE927: Acci� inv�lida: '%s'E928: Es necessita StringE929: Massa fitxers viminfo temporals, anomenats %s!E92: No s'ha trobat el buffer %ldE930: No es pot utilitzar :redir a dins de execute()E931: No s'ha pogut registrar el bufferE932: Una funci� amb clausura no pot estar al nivell superior: %sE933: La funci� s'ha eliminat: %sE934: No �s possible saltar a un buffer que no t� nomE935: refer�ncia inv�lida a una coincid�ncia: %dE936: No es pot eliminar el grup actualE937: Intent d'eliminar un buffer que es troba en �sE938: Clau duplicada a l'objecte JSON: "%s"E939: Es necessita un n�mero estrictament positiuE93: Hi ha m�s d'una coincid�ncia per a %sE940: No s'ha pogut bloquejar o desbloquejar la variable %sE941: ja s'ha iniciat un servidorE942: la caracter�stica +clientserver no est� disponibleE943: La taula d'ordres s'ha d'actualitzar, executeu 'make cmdidxs'E944: Interval en ordre invers a la classe de car�cterE945: Interval massa ample a la classe de car�cterE94: No hi ha cap coincid�ncia per a %sE95: Ja existeix un buffer amb aquest nomE96: No es pot fer diff amb m�s de %ld buffersE97: No s'han pogut crear diffsE98: No s'ha pogut llegir la sortida de diffE99: El buffer actual no es troba en mode diffERROR: Edita un fitxerEdita un fitxer en una finestra novaEdita amb el &VimEdita en &m�ltiples VimsEdita amb un Vim existent - Edita en un sol &VimEdita el(s) fitxer(s) seleccionat(s) amb el VimCodificaci�:Final de la funci�Final de l'scriptIntrodu�u la clau de xifrat: Entreu el n�mero del fitxer .swp a utilitzar (0 per a sortir): Introdu�u la mateixa clau un altre cop: Mode de depuraci�. Escriviu "cont" per a continuar.Mode Ex.  Escriviu "visual" per a tornar al mode Normal.ErrorError i interrupci�Error en crear el proc�s: Comproveu que gvim es troba al path!S'ha detectat un error en processar %s:Fitxer d'errors�s estimat de mem�ria durant l'execuci�: %d octetsExcepci�Excepci� interceptada: %sExcepci� descartada: %sExcepci� finalitzada: %sExcepci� generada: %sExecutant %sS'esperava un enter no negatiu per a MAP a %s, l�nia %dS'esperava un enter no negatiu per a REP(SAL) a %s, l�nia %dS'esperava Y o N a %s, l�nia %d: %sd'expressionsCoincid�ncies parcials externes:
FLAG posterior a l'�s de flags %s, l�nia %d: %sError en establir les rutines de path: sys.path_hooks no �s una llista
Haur�eu de fer el seg�ent:
- afegir vim.path_hook a sys.path_hooks
- afegir vim.VIM_SPECIAL_PATH a sys.path
Error en establir el path: sys.path no �s una llista
Haur�eu d'afegir vim.VIM_SPECIAL_PATH a sys.pathEl fitxer "%s" no existeixEl contingut del fitxer ha canviat, no s'utilitza la informaci� de desfer.El fitxer "%s" �s de nom�s lectura.
Tot i aix� pot ser possible escriure-hi.
Voleu intentar-ho?S'ha preservat el fitxerFitxersFiltreCerca i substitueix (useu '\\' per a cercar '\')&Cerca el seg�entCerca el seg�entCerca una cadena (useu '\\' per a cercar '\')Cerca:S'ha completat la lectura del fitxer de desfer %sPrimera paraula duplicada a %s, l�nia %d: %sFlag no num�ric a %s, l�nia %d: %sLa fosa '%s' no �s d'amplada fixaL'amplada de fosa%ld no �s el doble que la de fosa0Amplada de fosa0: %ldFosa0: %sAmplada de fosa1: %ldFosa1: %sFosa:Per a l'opci� %sCar�cters sobrants despr�s de l'opci�Salutacions, usuari de Vim!Ajudeu els nens pobres d'Uganda!S'ha arribat al final del par�grafERROR d'E/SS'ignora/en %d paraula/es amb car�cters no-ASCII a %sS'ignoren %d paraules amb car�cters no-ASCIIS'ignora una l�nia llarga en el fitxer d'etiquetesEl nom de fitxer �s il�legalFlag il�legal a %s, l�nia %d: %sNom de registre il�legalCar�cter inicial il�legalde l�nies d'entrada_M�todes d'entradaInterrupci�Interrupci�: InterromputArgument no v�lid per aL'especificaci� de tipus de lletra no �s v�lidaN�mero de regi� no v�lid a %s, l�nia %d: %sValor de FLAG inv�lid a %s, l�nia %d: %sLa claus no coincideixen!Talla una connexi�Enlla�at amb: Es necessita una llista o un n�meroNo s'ha pogut carregar la biblioteca Lua.Sensible a les maj�sculesNom�s paraules senceresMissatgeTraducci� dels missatges: Ernest Adrogu� <eadrogue@gmx.net>Falta un '>'Falta una l�nia FOL/LOW/UPP a %sFalta una l�nia SOFO%s a %sModificat per Nom:Es necessita %s, versi� %ld
Es necessita Amigados, versi� 2.04 o posterior
Es necessita la clau de xifrat per a "%s"NetBeans no permet escriure buffers no modificatsNova pestanyaNoNo s'han definit elements de sintaxi per a aquest bufferNo s'ha trobat cap abreviaci�No s'han definit punts de rupturaNo hi ha cap pantallaNo hi ha cap pantalla: Error en enviar l'expressi�.
No hi ha entradesNo hi ha fitxers inclososNo s'ha trobat cap assignaci�No hi ha marques definidesCap coincid�ncia al cursor, cercant la seg�entNo hi ha cap ordre autom�tica coincidentNo hi ha fitxers anticsNo existeix cap fitxer d'intercanviNo hi ha text per imprimirNo es pot desfer res; voleu continuarNo s'han trobat ordres definides per l'usuariNo UsatNo hi ha prou mem�ria, s'avorta el col�lector de brossa!No es llegeix el fitxer de desfer, el propietari �s diferent: %sNo hi ha res per desferNombre de paraules despr�s de l'expansi� per similitud fon�tica: %ldD'acordObrir fitxerObre una pestanya...Obre una pestanya...Error en obrir la pantalla XTemps esgotat intentant obrir la pantalla XObrir la pantalla X ha tardat %ld msegFitxer original "%s"Voleu sobreescriure el fitxer existent "%s"?P�gina %dL'escriptura parcial no est� permesa a buffers NetBeansFitxer de difer�nciesLa llargada del path �s excessivaUbicaci�:El patr� apareix a totes les l�nies: %sNo s'ha trobat el patr�No s'ha trobat el patr�: %sEfectuant expansi� per similitud fon�tica...Premeu ENTRAR o introdu�u una ordre per a continuarS'ha enviat la feina d'impressi�.S'ha impr�s: %sImprimint '%s'S'ha avortat la impressi�Imprimint la p�gina %d (%d%%)Cerca un patr�PreguntaLlegint el fitxer d'afixos %s ...Tornant a llegir el fitxer d'ortografia...Llegint el fitxer de diccionari %s ...Llegint l'entrada est�ndard...Llegint el fitxer d'ortografia "%s"Llegint el fitxer de desfer: %sLlegint el fitxer viminfo "%s"%s%s%sLlegint el fitxer de paraules %s ...Recuperaci� completada.  El buffer cont� el mateix que el fitxer.Recuperaci� completada.  Haur�eu de revisar que tot sigui correcte.Reinicia totes les connexionsSubstitueixSubstitueix-les &totesSubstitueix-les totesSubstitueix per:Funcionant en mode compatible amb ViFuncionant sense modes, el text escrit s'insereixAnomena i desaDesar fitxerDesa la redirecci�Desa la sessi�Desa la configuraci�Desa la vistaVoleu desar els canvis a "%s"?Cercant al diccionari: %sExaminant el fitxer incl�s: %sCercant etiquetes.Cercant: %sBarra de despla�ament: No s'ha obtingut la mida del mapa de bits.de cerquesCercant "%s"Cercant "%s" a "%s"Cercant al fitxer incl�s %sCercant en el fitxer d'etiquetes %sVegeu ":help E312" per a m�s informaci�.Vegeu ":help W11" per a m�s info.Vegeu ":help W12" per a m�s info.Vegeu ":help W16" per a m�s info.Selecci� de directoriSeleccionat %s%ld de %ld l�nies; %lld de %lld paraules; %lld de %lld octetsSeleccionat %s%ld de %ld l�nies; %lld de %lld paraules; %lld de %lld car�cters; %lld de %lld octetsSelecci�Enviant a la impressora...Mostra les connexionsMostra la mida en puntsMostra aquest missatgeSenyals a %s:Mida:No s'escriu el fitxer de desfer, no hi ha res per desferNo s'ha trobat el fitxer d'ajuda "%s"No hi ha suggerimentsNom�s hi ha %ld suggerimentsOrdre no disponible: no s'ha pogut carregar la biblioteca Perl.Executa un script VimPatrocineu el desenvolupament del Vim!S'augmenta la mida de la pilaEstil: (substituci�)El fitxer d'intercanvi "El fitxer d'intercanvi "%s" existeix, sobreescriure igualment?El fitxer d'intercanvi ja existeix!El fitxer d'intercanvi est� xifrat: "%s"Fitxers d'intercanvi trobats:Es canvia al motor d'ER amb backtracking per al patr�: Pestanya %dDesenganxa aquest men�Error en realitzar els tests de la pantalla XGr�cies per utilitzar el VimEl fitxer va ser creat el L'�nica coincid�nciaAquest Vim no ha estat compilat amb la caracter�stica diff.Aquesta ordre de cscope no suporta divisi� de finestres.
Sobren arguments "+ordre", "-c ordre" o "--cmd ordre"Sobren flags de composici�Sobren arguments d'edici�Sobren prefixes posposatsSobren prefixes posposats i/o flags de composici�Sobren regions a %s, l�nia %d: %sDaltNombre total de paraules: %dText sobrer a %s, l�nia %d: %sEscriviu  :qa!  i premeu <Entrar> per a abandonar els canvis i sortirEntreu un n�mero (<Entrar> per a cancel�lar): Entreu un n�mero o feu clic (<Entrar> per a cancel�lar): No s'ha pogut llegir el bloc 0 de No s'ha pogut registrar un nom de servidor d'ordresDesconegutOpci� desconegudaFlags no reconeguts a %s, l�nia %d: %sElement no reconegut o duplicat a %s, l�nia %d: %sSense-nomAmuntUseu la versi� 3.0 del Vim.
S'ha usat CUT_BUFFER0 en lloc d'una selecci� buidaS'usa la clau de xifrat del fitxer .swp per al fitxer de text.
S'utilitza el fitxer d'intercanvi "%s"VIM - ATENCI�VIM - Cerca i substitueix...VIM - Cerca...VIM - Vi IMprovedError del VIMVIM: No s'ha pogut obrir la finestra!
El programa VIMRUN.EXE no es troba en el $PATH.
Les ordres externes no faran una pausa un cop finalitzades.
Vegeu  :help win32-vimrun  per a m�s informaci�.Vim - Selector de fosaVim E458: No es pot assignar mem�ria, els colors poden ser incorrectesVim: Atenci�Di�leg del VimError del VimError del Vim: ~aVim ha finalitzat amb %d
Vim �s un programa obert i de lliure distribuci�Vim: S'ha atrapat un esdeveniment %s
Vim: Error en llegir l'entrada, sortint...
Vim: Error: No s'ha pogut iniciar gvim des de NetBeans
Vim: Error: Aquesta versi� de Vim no funciona en terminals Cygwin
Vim: La finestra principal s'ha destru�t inesperadament
Vim: Llegint l'entrada est�ndard...
Vim: S'ha rebut una petici� "die" del gestor de sessions
Vim: Atenci�: L'entrada no est� connectada a un terminal
Vim: Atenci�: La sortida no est� connectada a un terminal
W10: Atenci�: S'est� modificant un fitxer de nom�s lecturaW11: Atenci�: El fitxer "%s" ha canviat despr�s de ser obertW12: Atenci�: Tant el fitxer "%s" com el buffer del Vim han canviatW13: Atenci�: El fitxer "%s" ha estat creat despr�s de ser obertW14: Atenci�: S'ha desbordat la llista de noms de fitxersW15: Atenci�: Separador de l�nia incorrecte, potser falta un ^MW16: Atenci�: Els permisos de "%s" han canviat despr�s de ser obertW17: L'idioma �rab requereix UTF-8, feu ':set encoding=utf-8'W18: Hi ha un car�cter no v�lid en el nom del grupW19: S'elimina un grup d'ordres autom�tiques que est� en �sW20: la versi� 2.x de Python est� suportada, s'ignora: %sW21: La versi� 3.x de Python no est� suportada, s'ignora: %sW22: Hi ha text despr�s de :endfunction: %sATENCI�: El fitxer ha canviat des de que s'ha llegit!!!Atenci�Atenci�: No s'ha trobat "%s.%s.spl" ni "%s.ascii.spl"Atenci�: No s'ha trobat "%s_%s.spl" ni "%s_ascii.spl"Atenci�: S'ha canviat de buffer (reviseu les ordres autom�tiques)Atenci�: esteu utilitzant un xifrat poc potent; vegeu :help 'cm'Atenci�: s'ha especificat composici� i NOBREAK alhoraAtenci�: no hi ha suport per a la regi� %sAtenci�: el terminal no suporta ressaltatMentre s'obria el fitxer "No se sobreescriur� el fitxer de desfer, error de lectura: %sNo se sobreescriur�, no �s un fitxer de desfer: %sPosici� de la finestra: X %d, Y %dParaula '%.*s' afegida a %sParaula '%.*s' eliminada de %sParaula d'una altra l�niaVoleu escriure un fitxer parcial?Escrivint el fitxer d'ortografia %s ...Escrivint el fitxer de suggeriments %s ...Desant el fitxer de desfer: %sEscrivint el fitxer viminfo "%s"Valor de CHECKCOMPOUNDPATTERN incorrecte a %s, l�nia %d: %sValor de COMPOUNDMIN incorrecte a %s, l�nia %d: %sValor de COMPOUNDRULES incorrecte a %s, l�nia %d: %sValor de COMPOUNDSYLMAX incorrecte a %s, l�nia %d: %sValor de COMPOUNDWORDMAX incorrecte a %s, l�nia %d: %sha fallat la supervisi� de la connexi� XSMP ICEha fallat la rutina XSMP SmcOpenConnection: %ss'executa el procediment XSMP save-yourselfl'XSMP ha perdut la connexi� ICEs'obre la connexi� XSMPS�S�[ERROR DE CONVERSI� a la l�nia %ld][falta retorn-de-carro][Eliminat][Dispositiu][Fitxer massa gran][Ajuda][OCTET IL�LEGAL a la l�nia %ld][�ltima l�nia incompleta][Llista de posicions][NO convertit][Nou DIRECTORI][Fitxer nou][Fitxer nou][Nou][Sense nom][No s'han desat els �ltims canvis]
[No editat][Perm�s denegat][Vista pr�via][Llista Quickfix][ERRORS DE LECTURA][NL][Errors de lectura][Esborrany][crides] total re/malloc() %lu, total free() %lu

[car�cter especial][convertit][xifrat][format dos][dos][fifo/socket][fifo][fitxer ...]    edita el(s) fitxer(s) especificat(s)[l�nies llargues partides][format mac][mac][nofl][nom�s lectura][socket][format unix][unix]_Cancel�la_TancaD'_acord_Obre_Desaargument a add()despr�s dei fer un diff amb el fitxer original per a veure els canvis)intent d'assignar una seq��ncia de %d elements a un interval est�s de %dintent d'assignar una seq��ncia de m�s de %d elements a un interval est�srefer�ncia a un buffer eliminatrefer�ncia a una pestanya eliminadarefer�ncia a una finestra eliminadas'elimina l'ordre autom�tica: %s <buffer=%d>ordre autom�tica %sabans debloc de %ld l�nies copiatbloc d'1 l�nia copiatel buffer no �s v�lidper per Bram Moolenaar et al.s'ha cridat inputrestore() m�s sovint que inputsave()cridant %sno s'han pogut eliminar els atributs de OutputObjectNo s'ha pogut llegir la sortida de 'charconvert'no s'ha pogut canviar el mode de consola ?!
no es pot crear l'ordre Tcl: l'objecte est� sent eliminantno s'ha pogut esborrar la l�niano s'han pogut eliminar els atributs de vim.Dictionaryno s'han pogut eliminar els atributs de vim.Listno s'ha pogut obtenir la l�niano s'ha pogut inserir la l�niano s'ha pogut inserir/afegir la l�niano �s possible modificar un diccionari fixatno es pot modificar una llista fixadano s'ha pogut obrir no es pot registrar el callback: l'objecte est� sent eliminantno es pot registrar el callback: no s'ha trobat la refer�nciano s'ha pogut substituir la l�niano s'ha pogut desar la informaci� de desferno s'ha pogut establir l'atribut %sno s'han pogut establir les l�niesno s'ha pogut copiar; voleu eliminar el text de totes manerescanvicanvisde finalitzaci�ordre: %scontinuant a %sno s'ha pogut executar "%s"no s'ha pogut obrir el buffercs_create_connection exec ha fallatcs_create_connection setpgid ha fallatcs_create_connection: fdopen per a fr_fp ha fallatcs_create_connection: fdopen per a to_fp ha fallatordres de cscope:
s'ha tancat la connexi� cscope %sposici� del cursor fora del bufferse selecciona per omissi� 's'ha eliminat el bloc 1?el diccionari est� bloquejatno s'ha canviat a la pestanya especificadano s'ha canviat a la finestra especificadadlerror = "%s"no sortiu de l'editor fins que s'hagi desat el fitxer amb �xit!no s'admeten claus en blancvariable d'entornerror en convertir els valors de Scheme a Vimconductor d'errorss'esperava una 3-tupla, per� imp.find_module() ha retornat %ss'esperava una 3-tupla, per� imp.find_module() retornat una %d-tuplas'esperava un objecte bytes() o str(), s'ha rebut %ss'esperava int() o un objecte convertible a int(), s'ha rebut %ss'esperava int(), long() o un objecte convertible a long(), s'ha rebut %ss'esperava una seq��ncia de mida 2, s'ha rebut una seq��ncia de mida %ds'esperava una objecte str() o unicode(), s'ha rebut %ss'esperava un objecte vim.Buffer object, s'ha rebut %ss'esperava un objecte vim.TabPage, s'ha rebut %ss'esperava un objecte vim.Window, s'ha rebut %sno s'ha compilat suport per a expressionsargument a extend()error en afegir un element a la llistaerror en afegir la clau '%s' al diccionarierror en canviar de directorino s'ha trobat la finestra a la pestanya actualerror en reanomenar el buffererror en executar la funci� %serror en executar el codierror en canviar al buffer %dl�nies menysfitxer
fitxer / context / l�nia
argument a filter()ha finalitzat l'execuci� de %smarc al nivell m�xim: %del marc �s zeros'alliberen %ld l�niesla funci� %s no existeixerror de la biblioteca gvimext.dllhashtab ha canviat durant la iteraci�ajudaopci� amagadaal path ---
l'�ndex ha de ser un enter o un interval, no %sargument a insert()error intern: s'ha passat una refer�ncia amb valor NULLerror intern: error en afegir un element a la llistaerror intern: error en obtenir l'element %d de la llista vimerror intern: imp.find_module ha retornat una tupla amb valors NULLerror intern: tipus de valor inv�liderror intern: no existeix l'element %d a la llista vimerror intern: no hi ha prou elements a la llistaerror intern: tipus d'opci� desconegutatribut inv�lid: %sn�mero de buffer no v�lidl'expressi� no �s v�lidanom de marca no v�lid�s un dispositiu (deshabilitat amb el par�metre 'opendevice')�s un directorino �s un fitxerno �s un fitxer o dispositiu que es pugui escriure�s de nom�s lectura (afegiu ! per a for�ar)interrupci� de teclatl�nia %4ld:l�nia %6d, paraula %6d - %sl�nia %ldl�nia %ld de %ld --%d%%-- col l�nia %ld: %sl�nia %ld: no s'ha pogut executar "%s"l�nia %ld: executant "%s"l�nia menysn�mero de l�nia fora de l'intervaln�mero de l�nia fora de l'intervalel constructor de llistes no accepta arguments amb nom�ndex de llista fora de l'intervalla llista est� bloquejadade final de sessi�argument a map()els noms de marques han ser un �nic car�ctermarca no establertacoincid�ncia %dcoincid�ncia %d de %dcoincid�ncia al fitxerm�xim mch_get_shellsize: no �s una consola??
men�  Edita->Opcions globals->Mode d'inserci�          men�  Edita->Opcions globals->Compatible amb Vi        men�  Ajuda->Orfes               per a informaci�      men�  Ajuda->Patrocini/Registre  per a informaci�      m�nim l�nia de model�nia m�sl�nies m�saquesta interf�cie gr�fica no suporta NetBeans
s'ha iniciat un nou int�rpret
nono hi ha connexions cscope
no hi ha coincid�nciesno existeix tal pestanyano existeix tal finestrano es sincronitzano perm�s a l'entorn d'execuci� del Vimno trobats no s'ha trobat a '%s': "%s"no implementat (de moment)   n�m  canvis  quan               desatel n�mero ha de ser m�s gran o igual que zeroel n�mero ha de ser m�s gran que zeropo_line_count �s zerol�nia d'ordres pr�via a vimrcproblema en canviar de finestraatribut readonly: bufferenregistrantargument a remove()substituir per %s (y/n/a/q/l/^E/^Y)?argument a reverse()fila %d columna %dla cerca ha arribat a BAIX, es continua a DALTla cerca ha arribat a DALT, es continua a BAIXl'int�rpret d'ordres l'int�rpret ha retornat %dd'apagament del sistemal'increment de l'interval no pot ser zeroargument a sort()executant "%s"stack_idx hauria de ser 0la cadena no pot contenir salts de l�niase sincronitza amb comentaris estil Cla sincronitzaci� comen�a la sintaxi distingeix maj�sculesla sintaxi no distingeix maj�sculesocultaci� de sintaxi desactivadaocultaci� de sintaxi activadasintaxi 'iskeyword' sintaxi amb revisi� ortogr�fica per defectesintaxi sense revisi� ortogr�ficasintaxi amb revisi� ortogr�ficaetiqueta %d de %d%setiquetaa %s a %sfeu  :help cp-default<Entrar>    per a info sobre el tema feu  :help iccf<Entrar>          per a m�s informaci�     feu  :help register<Entrar>      per a informaci�         feu  :help sponsor<Entrar>       per a informaci�         feu  :help version8<Entrar>      per a info de la versi�  feu  :help<Entrar> o <F1>        per a obtenir ajuda      feu  :q<Entrar>                  per a sortir             feu  :set nocp<Entrar>           per al mode no compatibleerror en convertir %s en un diccionari Vimerror en convertir %s en una llista Vimerror en convertir %s en una estructura Vimerror en obtenir el valor de l'opci�error en eliminar el valor de l'opci� global %serror en eliminar el valor de l'opci� %s que no t� valor globalargument a uniq()desconegutpar�metre desconegut: opci� desconegudaopci� del Vim desconegudala funci� sense nom %s no existeixel valor �s massa gran per al tipus int de Cel valor �s massa petit per al tipus int de Cversi� error de viml'�ndex de la finestra est� fora de l'intervalla finestra no �s v�lidaamb interf�cie gr�fica (cl�ssica).amb interf�cie gr�fica Carbon.amb interf�cie gr�fica Cocoa.amb interf�cie gr�fica GTK2.amb interf�cie gr�fica GTK2-GNOME.amb interf�cie gr�fica GTK3.amb interf�cie gr�fica.amb interf�cie gr�fica Photon.amb interf�cie gr�fica X11-Athena.amb interf�cie gr�fica X11-Motif.amb interf�cie gr�fica X11-neXtaw.sense interf�cie gr�fica.escriptura a dispositius deshabilitada amb el par�metre 'opendevice'PK�j�Z�G��RRvim80/lang/menu_cs.cp1250.vimnu�[���" Menu Translations:	Czech

source <sfile>:p:h/menu_czech_czech_republic.1250.vim
PK�j�Z.H-�4�4�&vim80/lang/pl.UTF-8/LC_MESSAGES/vim.monu�[�����N�:�	�t��
*�8�A�'W�/���Ŝۜ"�0�E�R�+Z���"��Ğ՞5��8�T�q������;D�������Ҡ����*�E�]�t���0��.ӡ/�02�
c�q�����
��Ƣ
ۢ$�$�0� A�b�@q�D�����!&�H�"g���"��̤���@�E�`�q�������/��8�,�=J�������Ӧ�0��1'�1Y�������ѧ-��9�N�`�}���3��3��2�J�b�|���
������٩���
�$#�H�"T�Lw� Ī���;�Q�`�#m�	��������̫ݫ
����(�@�	X�b�j�r�!������լ�����$� ,�M�h���������
��ʭ6׭�+�D�!c���
����	����Үޮ�&�	�"�*<�g�=���
ͯۯ�����	�
"�
0�;�
D�O�a�s�|�5��а-�1�&B�i���������ϱ���$�6�F�
Z�e�t�������Ųײ����&�7�C�O�^�n�����
����³γ
޳���7�C�P�h�p�y�����������=��2��$�*�3�'D�-l�2��5͵� �?9�y�����+���	����-�>�T�-r���$���
�� �4�@�?W���2��!ٸ%��9!�E[�9��C۹K�Ik�H��;��6:�8q�3��<޻-�6I���%����Լ���&-�,T�#��4�� ڽ@��-<�0j�:��;־�"2�U�>f�)��>Ͽ<�K�W�#w�:��'�9��8�$Q�9v�4��;� !�>B�1��/����-�.�.=�Bl�"��2��4�*:�e�+��%��'��(��<&�Ec�.��-��$�+�<D���*��&�� ��4�C�T�f�y���������������
���
�"�8�D�S�k�����)����$�����6�1O�?������������
�#�>�Q�Xj�%�������&�?�X�r�������$����!��
�+�1�A�E�c�"����$����#��� �;�QY����������� 
�.�4N�����	��?��P��6�
C�
Q�.\���-����-��$�.D�s�.��H����O-�O}�
��C��	�)�5�!J�l�r���3��2��!��(�G� `�"��E����%�#-�-Q������&�����!�?�X�p�'����)��+��@!�-b���5������1�/L�D|���E��$�-?�7m�#�� ��:��5%�&[�"��&��$��#��!�=7�5u� ��(��7��!-�,O�|����� ��#��&�3�J�b�}���������0�$@�!e� ��(��4��,�3�O�b�x��� ������1��/�!L�%n�%��%���� ���6�?Q�&��#����
��A�%H�"n�"��9��'��(�2?�*r�!��!��)��%�!1�4S�:��&��;��;&�)b�0���������#�#<�!`�8��&��#��� �/?�"o���-��������/�*C�(n�#���������+�>G�������"�����)�E�!\�~�9��1��)�1/�%a�7����A��?�[�r���!�������0 �4Q�$��)��N��,$�&Q�Lx�������8
�C�$Y�~���,�� �� �#'�K�f�7��N���#�@�$[�!��3��,��2�%6�\�"w���#�������5�BR���0��!�� �<#�+`�����+��2��$ �E�,c���H��,��!�7�"W�z�������9�M�b�}�0��#�'��&�,F�&s�����+��2�-�(L�u�"��'��'�,�.�.E�t�#��,��W�)=�"g�,��%��� ���24�2g�2���!��%�2:�5m�'��#�)�3�$M�%r��������$�&A� h�'��*��#�'�%(�3N�!����+��*-:$h�����  6$W$|)���,�&;%V|=���,'Fn�$�#�0�."0Q�����	-4 b�7�)�$(=f�%�$���'.V'u ���� 7)0a�#��"�(	!A	c	-�	1�	6�	5
N
.i
*�
1�
9�
/*O&z+�,�+�4&<[+�*��

2
G
^
y
�
�
�
"�
�
�
,Kd}����;:N=�<�6<;x"��+�)�45T4�3��0 6WDjP�%&Ec�����!%@Wk���'��!0Ro"��1��%":]r�����/BVn�����*)6`s ����6�#)M)i&�K� :Yt����"�&#8\w+�%�7�5 Vs,����) 0Qg�����0'Xo��4�.�$.)S1};��.�** U $u � %� ,� !!0!&J!-q!&�!�! �!" ";"+U" �"�"?�")�"#69##p#2�#9�#>$8@$1y$�$)�$)�$ %)>%h%)�%*�%"�%�%#&"8&"[&)~&�&�&%�& '+-'$Y'~'�'!�'0�'('(B(]("z(!�(9�(8�($2)/W)�)�)�)+�)%�)1$*)V*�*�*'�*%�*�*&+!:+%\+'�+%�+'�+-�+2&,Y,n,$�,�,�,�,"-&-F-!f-1�-&�-�-!�-! .B.(W.�.�.+�.8�./7>/Ev/!�/�/�/(
0030#d0�0$�0�0#�0*1+1 F1g1z10�12�10�1)2+F2)r2$�2/�2�23'3)C3,m3�3�3 �3�34-*4,X4�4/�4+�4'�4!"5 D50e5�5!�5,�5�56(%6N6g60}6.�6�6�697T7t7�7*�7�73�708%I82o80�8!�8;�8R19�9*�9�9�9(:+:+G:+s:�: �:"�:%�: $;+E;"q;+�;�;.�;4<ID<)�<%�<)�<6=6?=-v=(�=/�=&�=<$>)a>*�>�>7�>??>?*]?�?�?0�?/�?!#@"E@*h@/�@;�@�@AQ7A.�A�A$�A#�A0!B#RBvB2�B6�B�B+C%KCXqC;�C;DBD!bD"�DB�D�D	E&E@E`E)E'�E�E�E'F/F	7FAFYFhF�F�F#�F	�F�F�FG.GIG.`G6�G�G�G6�G#H
;H&FH	mHwH�H�H�H�H �H%�H!$I
FIQI(gI��Ia;J�J+�Ja�JDKSKYK(`K
�K	�K%�K�K
�K�K&�K& LGL(dL�L	�L�L	�L�L�L�L�LM,M	AM2KM*~M�M�M�M�MN
&N1N	@NJNVNbNwN#�N(�N�N�N	O
O
+O6OLO2TO�O�O�O�O�O�O$�OP/6PfP'nP�P�P
�P$�P�PQQ #QDQ]QjQwQ!�Q�Q�Q(�QR'R8R;RLRXRdR�R#�R�R�R�R.�R
-S8S	NSXSxS�S�S'�S�S�S
�S
TT6TJTSTmT�T�T�T�T�TU9$U9^U�U�U�U�U
�U�U�UVV+V(IVrV�V�V�V�V
�V	�V�V�VWW+W98W
rW�W�W�W�W&�WX&XEXdX?|XQ�X	YY.YAY"YY|Y�Y�Y�Y�Y�Y
�Y�Y)Z'-ZUZuZ�ZF�Z�Z[[.[5[A[(M[v[�[�[�[�[�[�[\*\09\;j\ �\>�\]]6]1R]"�]�]�]�]�])^=/^m^(�^�^�^$�^0�^)_2_5_+K_2w_�_�_�_�_�_	
``�0`�`F�`a
a	(a
2a@a+Ua�a�a�a�a%�a0bDb(Tb}b1�b+�b*�b"c&<c9ccM�c>�c)*d5TdA�d4�d$e6&e"]e�e<�e<�e?f/Bf rf"�f�f2�f0�f/gKg\gqg�g�g�g�g�g2h)6h+`h,�h-�h �h!i#*iNigi
i�i�i�i�i
�i�i�i	�i�ijjj6jMj]jmj
}j
�j�j	�j�j�j�j	�j�j
�j
k
k	k
'k52khk|k	�k�k�k
�k�k&�k�k�kll
ll
#l1l8lGl9Ml"�l$�l"�l)�lm+m2mLmcmumym1�m
�m$�m"�mn<6nsn'�n!�n�n�n�n
o,oEoHRoC�o�o�op(p;pVp]pepkp	sp}p�p�p �p#�p-�p-,qZqlq�q�q�q�q(�q&r-r=<rzr�r%�r
�r�r8�rF6s.}sD�sM�s@?t0�t&�t'�t&u$'uLu^u$yu�u-�u�u�uv0vNvZv`v{v�v�v�v6�vw w9w
>wLw"Yw|w%�w*�w.�w8x"Gx#jx#�x�x�x�x�x/y3y
By Py qy�y
�y�y�y�y�y�yz	4z>zWz2kz�z�z�z�z$�z{
{{%{#.{1R{1�{1�{1�{|#|	,|
6|(A|j|}|�|�|�|�|
�|�|�|
�| }$}(8}'a} �}�}�}�}�}~	,~6~"H~k~~~$�~$�~�~�~�~�~
/Njz��.�.�.�.*�.Y�.��.��.�.�&D�%k��� ��:́���.�"@�)c�)����	��ʂ���
��.�=�	R�\�m�������3������
��
��˅(�/
�:�O�f�O|�1̇��
�2�I�/f�����@È1�#6�Z�
z������5A�w�!�� ��
ϊ݊���
�)(�R�j�����4��2��3(�4\������� ݌���1�1@�2r���#��ٍI�M6��� ��$��$ڎ,��$,�,Q�~�����D��%�*�<�P�_�p�E��]ΐ,,�VY���"ȑ�	��==�&{�/��Ғ����,2�_�~�����Ɠߓ0��3)�]�}�����ɔؔ	����&�>� R�s�$����%��O�12�d�{�;��Ζۖ,��#*�	N�X�l�}�
������ŗ җ �	��'�0�'E�m� |�%��Ø#ט
��
�.�&C�j�%��������̙�E��<�"X�"{�5��	Ԛޚ�
�'
�5�B�G�&L�s�-��.��ݛR�G�X�h�t�����
��Ĝќ������	.�%8�7^���7��2ߝ$�7�Q�h�|�����"���/��)�;�O�\�h�~�����ßٟ��
�&�B�
[�i�x���������Ϡܠ
���
��,�;9�u�������������
��Ρ�E�>+�j�s�	{���8��0Ң>�@B�����I���$�4�,C�p�}�����ɤܤ!��7�Q�%p���
��ĥѥ
��Y
�g�9v�+��(ܦ=�BC�F��CͧV�Jh�I��E��AC�A��9ǩE�4G�>|�!��%ݪ��4�#S�w���4��/ݫC
�-Q�A�/��:�C,�Ip���#׭��=
�:K�C��Iʮ�" �&C�5j�,��Dͯ�**�@U�C��Jڰ#%�OI�B��0ܱ 
�0.�_�3n�N��2�A$�@f�9��$�.�'5�2]�'��A��Q��DL�7��$ɵ�J�Q�'n�*��(��<�'�9�M�`�g�}�������ȷ׷�
��+�A�R� b� ��+�� и>�	0�$:�_�v�~���>��G�
8�
F�	T�^�{�����ĺݺ]��)Y���*��%�� ݻ���:�
V�d�	v�,����+Ƽ,��&�7�=�#U�#y���"��'ѽ7��1�!:�$\�c������(�!G�+i�"��=������?�O_������4��;)�!e�.��"��4� �;/�Jk�����U��U9���G�������� �	&�0�P�=X�<��$��&���%:�*`�P��%��1�*4�2_��� ����!����"�=�V�q�+����,��*�J+�/v���9����.�N�8f�V��!��S�l�4��<����,�AB�:��*��*��+�%A�.g�%��=��9��#4�.X�<��,��'��&�@�Y�&w�'��-�����!#�$E�j�!�� ��+��'���.9�*h�8��5��-�0�N�h�{���,��#����=�P�'n�/��1�� ���.3�b�!��U��,��/'�"W�z�J��&����(�@D�3�� ��9��2�"G�(j�/��'��-��9�AS�>��J��C�6c�?��.�� 	�%*�P�m�+��)��?��9�#W�#{�,��8��0�
6�<D�
����#��*��6��!3�-U�#����.����!�D4� y�"����6��(�9�#S�w�&����>��D�3Y�3��1��A��5�QQ�I�� �� �'/�(W���%��#��2��A�%_�.��[��1�,B�Yo�������H�`�+y��� ��3��#�.=�*l�����D��]�u�)��&��1��/�>G�4��9��/��%�-E�"s�%��#��!��!�!$�@F�,��0��%��.�I:�/��)����*��9&�&`�)��@����K�4[���%��(��&��($�'M�'u�(��@��&�%.�#T�8x�,��7���+"�5N�(������/��;
�4F�.{���-��*��/!�?Q���>��#��'�.6�Ze�0��-��+�(K�t�&����B��B�>^���(������.�1;�+m�-��-�:��;0�4l���$���+��$�,A�/n�#��/�8�-+�&Y�'��6�����8�)T�0~�2��"�)�/�N�j��)��)�-�.!�2P�����,����"�7�AS� �����(�.�G�+f�+��-��2�2�CR�'����� ���0�J�/b�!����=�<"O!r8���6�-5,c�*�0�	()*R}���G�<5)r�#�-�2
)@*j;�=�BAR$�:�3�7(;`%�1�/�K$5p4�=�O3i6��� 	&	?	 \	}	�	�	�	.�	
 
":
0]
"�
"�
�
 �
.Nn��?�A6B;y?�+�!
A
7W
5�
A�
DFL?��=� %$FRk_�A%`#�#���5!Tv �� ��!.=l#�#�*�#�96R���#�&8-_�����(=Yv��!�'�/ .P�"�!��>&,e �-�*�Xe+{�)��/G1^#� ���,"4=W;�)�(�/$T(s"�.��*Jaw!���6�#4X$v?�;�2$J5o@��=�/<2l*�$�0�8  Y r � 1� 0� .!&5!)\!�!�!)�!;�!"'"J"Ci"'�"(�"<�"+;#7g#>�#G�#G&$4n$+�$&�$0�$1'%-Y% �%6�%2�%%&8&"U&(x&*�&9�&'&',>''k'.�')�'%�')(%<(=b(�(�(�("�(5)!D);f)B�))�)5*E* b*�**�*5�*2�*4)+^+s+(�+*�+�+*�+!,$@,)e,*�,%�,7�,1-J-]-#w-%�-+�-#�-'.9.X.w.4�.+�.�.)/&@/ g/+�/$�/%�/8�/?80x03�0U�0'"1J1$\1/�1:�12�12 82 Y2-z21�2'�25383O36n32�3G�3 4)?4'i4'�49�4�4555<O56�5 �5�5.636*L6,w67�6�6+�6,%7,R7"7)�7>�78!%8.G8v8�8)�8�8�8<�8579$m90�9G�90:-<:1j:8�:,�:4;7;;T;5�;1�;'�;> <^_<.�<3�<$!='F=*n=�=*�=3�=>#4>#X>7|>%�>2�>$
?42?*g?.�?9�?C�?%?@)e@%�@B�@B�@0;A*lA6�A*�AH�A-BB=pB#�BL�B#C$CC!hC-�C(�C"�C2D.7D%fD(�D1�D7�DDE"dE �ER�E6�E<2F%oF$�F6�F$�FGN4GL�G/�G?H1@HarH=�HKI-^I+�I-�I6�I,JJJhJ#�J"�J%�J7�J!,K*NK/yK�K�K�K�K�K�KL:L
WLbLqL �L?�L"�LAMEQM�M�MD�M(�M N(-NVN_NyN�N�N�N&�N+�N&O
=OHO'eO��OqXP�P=�PiQ�Q�Q�Q/�Q�Q�Q*�Q(R7R$@R-eR)�R8�R;�R2S	ISSS	jS	tS~S�S�S$�S�S
T1T,KT-xT�T'�T�T U'U:U
IUTU	aUkU�U0�U/�UV"V5V#DVhV�V�V8�V�V�VW(W9W@W5]W'�W9�W
�W5X6X,MXzX9�X�X!�X�X,Y9YUYjY}Y+�Y7�Y�Y/Z8Z,SZ�Z�Z�Z�Z$�Z,�Z$[6[ K[	l[3v[
�[�[�[(�[�[\$)\7N\�\�\�\�\�\�\	]]&-]T]q](�]�]!�]�]K^NX^�^�^�^�^�^�^ _%_6_!J_7l_�_�_�_�_
�_``!`:` S`t`�`H�`
�`
�`a$a:a,Xa,�a,�a,�ab@#bSdb�b�b�b�b'c/cCc&\c�c�c�c
�c�c+�c,d$=dbd!dR�d�de e9e
?eMe-\e�e�e�e�e�e �ef/fNfAaf1�f.�fCgHgbg#yg8�g%�g�gh h0@h'qhD�h�h-�h+i4i!Li4ni�i�i�i*�iB�i@j[jgj�j�j
�j�j��jpkW�k�k�k�kll,1l^l#|l&�l"�l6�l3!mUm-hm�m3�m5�m0nOn2hnG�nr�nEVo4�oB�oMp6bp'�p?�p&q(qM5qM�qH�q:r*Ur2�r�r3�r(s+sDsXsos�s)�s�s�st6t-Tt/�t0�t1�t3u-Iu$wu�u�u�u�u�uvvv!-v
OvZv
fvtv�v!�v�v�v�v�v�v
www()wRwbw
rw}w�w�w�w�w
�wH�wx&x5xBxQx
Wxex#lx�x
�x�x�x�x�x�x�x�xy<
y(Gy&py&�y)�y�y�y�yz0zEzLz6jz
�z+�z,�z${=-{k{,�{&�{�{�{)|*=|%h|�|Z�|W�|V}&r}�}�}%�}�}~~~~)~:~T~1o~/�~9�~9E,V����%�%�-�B<����.���%�C�X^�.��I�R0�X��0܂1
�2?�1r�)��΃,�3
�"A�(d�&����$Ԅ��
�%�!+�M�_�y���D���'��&�,�
9�.G�v�/��@��H��<B�*�3��&އ��8�O�5k�����-ˆ(��/�<�
X�c���%����ԉ���B�^�y�����-��Պ	����'�2;�7n�2��5ً��$�5�+E�q�������ˌߌ���,�$;�`�+}�0��#ڍ���(1�Z�t����� ��͎�-��-#�	Q�[�r�{�����0��#��$�7�
G�:R�9��5ǐ4��:2�:m�<��;�<!�,^�,��!��'ڒ@�C�L�]�l�#�6��;ړ��*�D�X�
l�z�������
����̔ݔ�;���0�^���i��A��R���{�_��t��v�
6Ig7��;�X���j�yq"�I��
�?�#��$n�	��}&��(w���������0�U��D<�"p�G�	=�(�!��V{#�l��|���r����$Z��s*
}�G5l)�3p�xP���Qm��>T�LhY���-$8�!�q��'^u���bD���Z�#g	�v�H`GZ4��1ea`
��,����j^()w�����R	g�9����_/����eyNb��/
`	�:X���;��d������V�v����:��kxL���f84������\uM'���NB�H�?�O��%��n�q�Y��0�M���4� H4��^�B4L,�}dz��7G�Z�E���.oIy65T�\���q-�LKP%a�l��DY�P���,�L����OH���N���[%���~�T9y.u���:S���~O���x�������Qc�~�q.�z<WM���"9���,8?w]c���C���=��A������ H'��<&\����B�bp�^%5x+�Y`�k���:���e��M�~�8�5gn�:��-�%��[$�,:^��IE"�S�9IWI�P�eCr_��Q�5������i"�g�����f��x����6���]iu�>��Z���C�(uCp�����+�	#�9�Q���0���}V�������\�4F��G;G����?]�_���k��<�2�F1o�L�>K������;����w�>\�_KB���@iU��� +p�)CJ��s��z�T]����z��t�D�>~,�rv���b�t�0�2�8@-��*{o�
��;�V�J],����z�����np�b�!�/���������c~(yG��rF|cf8�&���U�[��K�t�'g'3t��3��WE����B�.��C2��o7������'aM5O�J�D�������w���ND�f�H�-O2�v�m6h��i���m�����d�*�v-�0e�MY*���8<��>���X�s��&��:���@�m�Z��1$�c�Qy�&�>a���T����*������x��'K��d�52�P���������3�0k@���R=)��EJ+\��a�s�Ek�W��u.��*���5����6F%�����a��|?�<�nF._��d��S���jh�|����r��C�
�`s����T�W�/��A����U A�2$��{:MSs���e�����]���)�.�J!����R�N�!Og$E�������1�����������}}8��� @=�n�b��JQ(�w�-1�e�L�����r�i��3�3)���;%F���7M��" ��A�F<d�f[�A����cB��x
��2�k`��
�!�+@3����#��S��?� Nh��7��1�%�op=|���+0NXf�AL��!q�[�B">�X���lW|��jD��W��hZ��y�
�-�f���P&�[[��nD~��!��Kz`V�PH�������6��#����	�X�h�����4/�ab��{��t,�R)�����T]^��#}�&�Kt���=���/�r�{��m��(��
QF�m����6��
I��U�U��S;�����U��K�@��Ijm��is�.9���u;�AV�(7�=@��1��k�?�9��"�	���/G��j����O+�XY��S6cY_&7��E�R���j)B�������w��
����1�N7�<�C|���
49�'�
l{��RlJ�*��$�/�����E\vh�����J=� �V3d���z�#�+��o�
������q������H�����l�*�?o����2
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Quit, or continue with caution.
  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in Win32s mode in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Cscope tag: %sCurrent %slanguage: "%s"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E834: Line count changed unexpectedlyE835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Lua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][blowfish][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]add() argumentafterand run diff with the original file to check for changes)attempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlererror list %d of %d; %d errorsexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sfreeing %ld linesfunction %s does not existfunction constructor does not accept keyword argumentsgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater then zerope_line_count is zeropre-vimrc command lineproblem while switching windowsread from Netbeans socketreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: pl
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2013-07-06 19:33+0200
PO-Revision-Date: 2010-08-10 18:15+0200
Last-Translator: Mikolaj Machowski <mikmach@wp.pl>
Language-Team: 
Language: pl
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Generator: Lokalize 1.0
Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);

	Ostatnie ustawienie przez 

Argumenty:


użycie:
         zmieniono: 
     [nie do użytku na tym komputerze]
         [nie nadaje się dla tej wersji Vima]
      nazwa hosta: 
        użytkownik: 
        ID procesu: 
       c: znajdź funkcje wywołujące tę funkcję
       d: znajdź funkcje wywoływane przez tę funkcję
       e: znajdź ten wzorzec egrep
       f: znajdź ten plik
       g: znajdź tę definicję
       i: znajdź pliki włączające (#include) ten plik
       s: znajdź ten symbol C
       t: znajdź ten łańcuch znaków

    Nazwa       Arg. Zak.  Gotowość  Definicja
   #   wiersz
   lub:
  # DO znacznik  OD wiersza      w pliku/tekście
 skok wiersz kol plik/tekst
# %s Historia (od najnowszych po najstarsze):

# Lista buforów:

# Zakładki w plikach:

# Historia zakładek w plikach (od najnowszych po najstarsze):

# Lista odniesień (począwszy od najnowszych):

# Ostatni %sWyszukiwany wzorzec:
~
# Ostatni podstawiany ciąg:
$
# Rejestry:

# zmienne globalne:

(1) Pewnie inny program obrabia ten sam plik.
    Jeśli tak, bądź ostrożny, aby nie skończyć z dwoma
    różnymi wersjami tego samego pliku po zmianach.

(Możesz chcieć zapisać ten plik pod inną nazwą

--- Autokomendy ---
--- Globalne wartości opcji ---
--- Lokalne wartości opcji ---
--- Menu ---
--- Opcje ---
--- Rejestry ---
--- Znaki ---
--- Elementy składni ---
--- Elementy synchronizacji składni ---
--- Kody terminala ---
--- Klawisze terminala ---
16 bitowa wersja dla MS-DOS
32 bitowa wersja dla MS-DOS
Argumenty rozpoznawane przez gvim (wersja Athena):

Argumenty rozpoznawane przez gvim (wersja GTK+):

Argumenty rozpoznawane przez gvim (wersja Motif):

Argumenty rozpoznawane przez gvim (wersja neXtaw):

Duża wersja 
Nie mogę stworzyć potoków

Nie mogę wykonać powłoki 
Nie mogę wykonać powłoki sh

Nie mogę rozdzielić się

Komenda zakończona

Skompilowany 
Nie mogę uzyskać kontekstu bezpieczeństwa dla
Nie można uzyskać kontekstu bezpieczeństwa dla
Ekstra łaty: 
Znalazłem plik wymiany o nazwie "
Olbrzymia wersja 
Jeśli podano nowy klucz szyfrujący, ale nie zapisano pliku tekstowego,
Jeśli zapisano plik tekstowy po zmianie klucza szyfrującego wciśnij Enter
Zadane łaty: 
16 bitowa wersja dla MS-Windows
16/32-bit wersja GUI dla MS-Windows
32 bitowa wersja GUI dla MS-Windows
32 bitowa wersja na konsolę dla MS-Windows
64 bitowa wersja GUI dla MS-Windows
32 bitowa wersja na konsolę dla MS-Windows
wersja dla MacOS X (unix)
wersja dla MacOS X
wersja dla MacOS
Może nie wykonano zmian albo Vim nie zaktualizował pliku wymiany.
Dalsze informacje poprzez: "vim -h"

Normalna wersja 
wersja dla OpenVMS
Mała wersja 
Malutka wersja 
Vim: Dostał błąd X

OSTRZEŻENIE: Oryginalny plik może zostać utracony lub uszkodzony

gdzie wielkość znaków jest ignorowana dodaj na początku / by flaga była wielką literą
Możesz teraz chcieć usunąć plik .swp.


[bajtów] totalne alokacje-zwolnienia %lu-%lu, w użytku %lu, maksymalne użycie %lu

zmień wrsz. kol tekst
wprowadź nowy klucz szyfrujący.
zakł. wiersz kol plik/tekst
powłoka zwróciła 
synchronizuję na elementach
aby użyć tego samego klucza dla pliku tekstowego i wymiany     dla domyślnych ustawień Vima                     dla dwóch trybów                         data:    posiadany przez:             [nieotwieralny]        [nieodczytywalny]         [nie wygląda na plik wymiany Vima]         [po Vimie wersja 3.0]       nazwa pliku:      -- żaden --
      NOWSZE od pliku wymiany!
    exrc użytkownika: "   vimrc użytkownika: "    Jeśli tak, to użyj ":recover" lub "vim -r     Jeśli już to zrobiłeś, usuń plik wymiany "    wiersz=%ld  id=%d  nazwa=%s systemowy plik menu: "  gvimrc użytkownika: "   W bieżącym katalogu:
   W katalogu    Używam podanej nazwy:
   data:    nazwa hosta:        vimrc systemu: "  # pri rodzaj znacznik  (Już wymienione)  2-gi plik exrc użytkownika: "  KOMPILACJA DEBUG  Opcje włączone (+) lub nie (-):
  NIE ZNALEZIONO  Zakończ lub ostrożnie kontynuuj.
  WSZYTKO    ILOŚĆ  PASUJE  NAJWOLN.    ŚREDNIO   NAZWA              WZORZEC  Używam znacznika o odmiennej wielkości liter!   odwet dla $VIM-a: "     gvimrc systemu: " # pid   nazwa bazy danych               przedsionek tropu
 (Przerwane) (NIE ZNALEZIONO) (zawiera poprzednio wymienione dopasowanie) (wprowadzanie) (wprowadzanie) Przewijanie (^E/^Y) (język) (wiersz skasowany)(nie wspomagane) (wklejanie) (zamiana) (zamiana) Przewijanie (^E/^Y) (dalej działa) (v-zamiana) 2-gi plik vimrc użytkownika: " 3-ci plik vimrc użytkownika: " < "%.*s" Dodaję Arabski BŁĄD W PRZEMIANIE Dopełnianie wiersza poleceń (^V^N^P) Kopia %d z %d Dopełnianie definicji (^D^N^P) Dopełnianie ze słowników (^K^N^P) NIE POWIODŁO SIĘ Dopełnianie nazw plików (^F^N^P) Hebrajski WPROWADZANIE Lokalne dopełnianie słów kluczowych (^N^P) Dopełnianie słów kluczowych (^N^P) Omni uzupełnianie (^O^N^P) Dopełnianie wzorców tropów (^N^P) ZAMIANA NEGATYW ZAZNACZANIE ZAZNACZANIE BLOKOWE ZAZNACZANIE LINIOWE SPACE/d/j: ekran/strona/wiersz w dół, b/u/k: do góry, q: zakończPropozycja pisowni (^L^N^P) Dopełnianie znaczników (^]^N^P) Dopełnianie z tezaurusa (^T^N^P)Dopełnianie zdefiniowane przez użytkownika (^U^N^P) WIZUALNY WIZUALNY BLOKOWY WIZUALNY LINIOWY V-ZAMIANA Dopełnianie pełnych wierszy (^L^N^P) [Zmieniony] [a] [w] ^X tryb (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) dołączono nie może być stosowany na tym komputerze.
 nie może być stosowany z tą wersją Vima.
f-b dla $VIMRUNTIME: " został uszkodzony (wielkość strony jest mniejsza niż najmniejsza wartość).
 w trybie Win32s w wierszu %ld; informacja pokrewny plik
znaków nowego wiersza wierszy przed górną linią zakładki stare pliki w %ld wierszach w 1 wierszu lub więcej zwrócił
 vim [argumenty] ze wspomaganiem OLE zapisano"
    aby uniknąć tej wiadomości.
"
    aby odzyskać zmiany (zobacz ":help recovery)").
" już istnieje!# Ten plik viminfo został wygenerowany przez Vima %s.
# Wartość 'encoding' w czasie zapisu tego pliku
# Możesz go ostrożnie edytować!

%-5s: %s%*s (Użycie: %s)%3d  %s %s  wiersz %ld%<%f%h%m%=Strona %N%d buforów skasowanowyładowano %d buforówwyrzucono %d buforów%d powtórzony(ch) wyraz(ów) w %s%d plików do edycji
jeszcze %d plików do edycji.  Mimo to wyjść?otworzono %d z %d%ld %s; %s #%ld  %s%ld Kolumn; %ld znakówusunięto %ld wierszy%ld wierszy %sed %d razy%ld wierszy %sed 1 raz%ld wiersze --%d%%--%ld wierszy zmieniono%ld wierszy przefiltrowanych%ld wierszy wciętych %ld wiersze przeniesione%ld wierszy do wcięcia... %ld wierszy skopiowanych%ld wierszy, %ld dopasowańdodano %ld wierszy%ld sekund temu%ld podstawień%lld znaków%s Autokomend dla "%s"porzucono %s%s odrzucony%s wiersz %ld%s został zawieszony%s przywrócony%s zwraca #%ld%s zwraca %sWartość %s różni się od tej użytej w innym pliku .aff%s, wiersz %ld%sviminfo: %s w wierszu: &Anuluj&Anuluj&Filtr&Pomoc&OK&OK
&Zakończ&OK
&Załaduj Plik&Ok&Otwórz Read-Only
&Edytuj pomimo
O&dtwórz
&Usuń
&Zakończ
&Porzuć&Otwórz Read-Only
&Edytuj pomimo
O&dtwórz
&Zakończ
&Porzuć&Zamień&Cofnij&Tak
&Nie&Tak
&Nie
&Zakończ&Tak
&Nie
Zapisz &wszystkie
&Odrzuć wszystkie
&Zakończ' nieznany. Możliwe typy wbudowanych terminali:'-nb' - nie może być użyte: nie włączone przy kompilacji
'columns' nie wynosi 80, nie mogę wykonać zewnętrznych komendopcja 'dictionary' jest pustaopcja 'history' jest zerowaopcja 'readonly' nastawiona dla "%s".
Czy chcesz go pomimo tego zapisać?opcja 'thesaurus' jest pusta(%d z %d)%s%s: (+%ld dla BOM)(2) Sesja edycji dla pliku załamała się.
(Przerwane) (Niewłaściwe)(NFA) NIE MOŻNA OTWORZYĆ %s !+			Zacznij na końcu pliku+-%s%3ld wierszy: +--%3ld wierszy zwinięto +<lnum>		Zacznij w wierszu <lnum>+reverse		Nie stosuj negatywu kolorów (również: +rv),
lub plik został uszkodzony.-               czytaj tekst ze stdin--			Tylko nazwy plików po tym-- Więcej ---- Szukam...--- Zawarte pliki --Skasowano----Brak wierszy w buforze---cmd <command>		Wykonaj komendę <command> przed załadowaniem jakiegokolwiek pliku vimrc--cmd argument-echo-wid		Gvim wypisze Window ID na wyjście standardowe--literal		Nie rozwijaj znaków specjalnych--noplugin		Nie ładuj skryptów wtyczek--remote <pliki>	Edytuj pliki w serwerze Vima jeśli możliwe--remote-expr <wyr>	Wykonaj <wyrażenie> w serwerze i wypisz wynik--remote-send <klawisze>	Wyślij <klawisze> do serwera Vima i zakończ--remote-silent <pliki> To samo, nie narzekaj jeśli nie ma serwera--remote-tab[-wait][-silent] <pliki>  tak jak --remote ale używa jednej karty na plik--remote-wait <pliki>	Tak jak --remote, lecz czekaj na pliki przed edycją--remote-wait-silent <pliki>  To samo, nie narzekaj jeśli nie ma serwera--role <role>	Ustaw unikatową rolę do identyfikacji głównego okna--serverlist		Wymień nazwy dostępnych serwerów Vima i zakończ--servername <nazwa>		Odsyłaj do/stań się serwerem Vim <nazwa>--socketid <xid>	Otwórz Vim wewnątrz innego widgetu GTK--startuptime <plik> Zapisz wiadomości o długości startu do <plik>--version		wyświetl informację o wersji i zakończ--windowid <HWND>	Otwórz Vima wewnątrz innego elementu win32-A			rozpocznij w trybie arabskim-C			Bądź zgodny z Vi: 'compatible'-D			Tryb odpluskwiania-E			Usprawniony tryb Ex-F			rozpocznij w trybie farsi-H			rozpocznij w trybie hebrajskim-L			Tożsame z -r-M			Zakaz modyfikacji tekstu-N			Bądź niezupełnie zgodny z Vi: 'nocompatible'-O[N]		tak samo jak -o tylko dziel okno pionowo-P <tytuł rodzica>	Otwórz Vima wewnątrz rodzicielskiej aplikacji-R			Tryb wyłącznie do odczytu (jak "view")-S <sesja>		Wczytaj plik <sesja> po załadowaniu pierwszego pliku-T <terminal>	Ustaw typ terminala na <terminal>-U <gvimrc>		Użyj <gvimrc> zamiast jakiegokolwiek .gvimrc-V[N][nazwap]		Gadatliwy [poziom N] [zapisuj wiadomości do nazwap]-W <scriptout>	Zapisuj wszystkie wprowadzane komendy do pliku <scriptout>-X			Nie łącz z serwerem X-Z			Tryb ograniczenia (jak "rvim")-b			Tryb binarny-background <kolor>	Używaj <kolor> dla tła (również: -bg)-boldfont <font>	Używaj <font> dla wytłuszczonego tekstu-borderwidth <szer>	Użyj ramki o grubości <szer> (również: -bw)-c <command>		Wykonaj komendę <command> po załadowaniu pierwszego pliku-c argument-d			Tryb różnic (jak "vimdiff")-dev <device>		Używaj <device> do I/O-display <display>	Podłącz vima to danego X-serwera-display <display>	Załaduj vim na <display>-display <display>	Zastartuj vim na <display> (również: --display)-e			Tryb ex (jak "ex")-f			Nie stosuj newcli do otwierania okien-f  lub --nofork	Pierwszy plan: Nie wydzielaj przy odpalaniu GUI-font <font>		Używaj <font> dla normalnego tekstu (również: -fn)-foreground <kolor>	Używaj <kolor> dla normalnego tekstu (również: -fg)-g			Startuj w GUI (tak jak "gvim")-geometry <geom>	Używaj <geom> dla początkowych rozmiarów (również: -geom)-h  lub  --help	wyświetl Pomoc (czyli tę wiadomość) i zakończ-i <viminfo>		Używaj <viminfo> zamiast .viminfo-iconic		Zacznij Vim jako ikonę-italicfont <font>	Używaj <font> dla pochyłego-l			Tryb lisp-m			Modyfikacje (zapisywanie plików) niedozwolone-menuheight <height>	Stosuj belkę menu o wysokości <height> (również: -mh)-n			Zamiast pliku wymiany, używaj tylko pamięci-o[N]		Otwórz N okien (domyślnie: po jednym dla każdego pliku)-p[N]		Otwórz N kart (domyślnie: po jednej dla każdego pliku)-q [errorfile]  edytuj plik, zawierający pierwszy błąd-r			Wylicz pliki wymiany i zakończ-r (z nazwą pliku)	Odtwórz załamaną sesję-register		Zarejestruj tego gvima w OLE-reverse		Stosuj negatyw kolorów (również: -rv)-s			Cichy tryb (tła) (tylko dla "ex")-s <scriptin>	Wczytuj komendy trybu normalnego z pliku <scriptin>-scrollbarwidth <szer>  Używaj przewijacza o szerokości <szer> (również: -sw)-t znacznik   edytuj plik, w którym dany znacznik jest zdefiniowany-u <vimrc>		Użyj <vimrc> zamiast jakiegokolwiek .vimrc-unregister		Wyrejestruj gvima z OLE-v			Tryb vi (jak "vi")-w <scriptout>	Dołącz wszystkie wprowadzane komendy do pliku <scriptout>-x			Edytuj zakodowane pliki-xrm <resource>	Ustaw określony zasób-y			Tryb łatwy (jak "evim", bez trybów)wiersz / zignorowano w %s wierszu %d: %sZignorowano wiersz /encoding= po wyrazie w %s wierszu %d: %s1 bufor skasowany1 bufor wyładowanywyrzucono 1 bufor 1 znak1 wiersz %sed %d razy1 wiersz %sed 1 raz1 wiersz --%d%%--1 wiersz zmieniono1 wiersz wcięty 1 wiersz mniej1 wiersz przeniesiony1 wiersz skopiowano1 wiersz, 1 pasuje1 więcej plik do edycji.  Mimo to wyjść?1 wiersz więcej1 podstawienie 2-gi plik gvimrc użytkownika: "3-ci plik gvimrc użytkownika: ": Wysłanie wyrażenia nie powiodło się.
: Wysłanie nie powiodło się.
: Wysłanie nie powiodło się. Próbuję wykonać na miejscu
; pasuje <%s>%s%s  %d,  Hex %02x,  Oktal %03o<nie mogę otworzyć> <pusty>> %d, Hex %04x,  Oktal %o> %d, Hex %08x, Oktal %o??? od tego miejsca po ???KONIEC wiersze mogą być pomieszane??? od tego miejsca po ???KONIEC wiersze mogą być włożone/skasowane???BRAK BLOKU???PUSTY BLOK???KONIEC???LICZNIK WIERSZY NIEZGODNY???BRAKUJE WIERSZY???BRAKUJE WIELU WIERSZYANCHOR_BUF_SIZE zbyt niskie.Dodaj nową bazę danychDodano bazę danych cscope %sAfiks użyty także dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %sZa długa nazwa afiksu w %s wiersz %d: %sWszystkoWszystkie bazy danych cscope przeładowanoWszelkie włączane pliki odnalezionoJuż w miejscu najnowszej zmianyJuż w miejscu ostatniej zmianyJest już tylko jedna kartaJuż jest tylko jeden widokDołącz plikBrak argumentu poW wierszuPróba ponownego otworzenia pliku skryptu: "Z powrotem na pierwotnymDano wsteczny zakres; zamiana jest możliwaZostań zarejestrowanym użytkownikiem Vima!Biiip!Przed bajtem %ldDółWiersze SAL i SOFO w %sPunkt kontrolny w "%s%s" wiersz %ldBłędny warunek w %s wiersz %d: %sPrzejrzyj klasęCOMPOUNDSYLMAX użyty bez SYLLABLEWywołuję powłokę do wykonania: "%s"Nie mogę znaleźć pliku tymczasowego w celu przemianyZakończNie można połączyć z NetbeansNie można połączyć z Netbeans #2Nie mogę podłączyć do SNiFF+. Sprawdź środowisko (sniffemacs musi być odnaleziony w $PATH).
Nie mogę stworzyć Nie mogę wykonać Nie mogę otworzyć NIL:
Nie mogę otworzyć pliku "%s"Nie mogę otworzyć do odczytu: "Nie mogę otworzyć dla wyjścia skryptu: "Nie można wczytać katalogu: "%s"Nie można zapisać pliku undo w żadnym katalogu z 'undodir'Zmień "%.*s" na:ZamknijZamknij kartęKol %s z %s; Wiersz %ld z %ld; Słowo %ld z %ld; Bajt %ld z %ldKol %s z %s; Wiersz %ld z %ld; Słowo %ld z %ld; Znak %ld z %ld; Bajt %ld z %ldWiersz poleceńKompilacja: Kompilator: Skompresowano %d z %d węzłów; pozostaje %d (%d%%)Kompresja drzewa słów...Konwersja nie powiodła się dla wyrazu w %s wierszu %d: %sKonwersja w %s nie jest wspieranaKonwersja w %s nie jest wspierana: od %s do %sNieudana przemiana z 'charconvert'Nie zdołałem poprawić wskaźników funkcji w DLL!Nie mogę załadować vim32.dll!Nie można otworzyć do zapisu tymczasowego pliku logowaniaNie można otworzyć do zapisu tymczasowego pliku, pokazuję na stderr... Znacznik cscope: %sBieżący %sjęzyk: "%s"Definiowanie COMPOUNDFORBIDFLAG po PFX może skutkować złym wynikiem w %s wiersz %dDefiniowanie COMPOUNDPERMITFLAG po PFX może skutkować złym wynikiem w %s wiersz %dDiff z VimemRóżne flagi złożeń w kontynuowanym bloku afiksu w %s wiersz %d: %sKierunekKatalogiKatalog	*.nic
Czy naprawdę chcesz go zapisaćZrobione!Podwójny ; w liście zmiennychW dółZignorowano powtórzony wiersz /encoding= w %s wierszu %d: %sPowtórzony wiersz /regions= zignorowano w %s wierszu %d: %sPowtórzony afiks w %s wiersz %d: %sPowtórzony znak w MAP w %s wierszu %dPowtórzona nazwa pola: %sPowtórzony wyraz w %s wierszu %d: %sE100: Brak innego bufora w trybie różnicE101: Więcej niż jeden bufor w trybie różnicowania, nie wiem którego użyćE102: Nie mogę znaleźć bufora "%s"E103: Bufor "%s" nie jest w trybie różnicowaniaE104: Escape jest niedozwolone w dwugrafieE105: Zastosowano :loadkeymap w niewczytanym plikuE107: Brak nawiasów: %sE108: Nie istnieje zmienna: "%s"E109: Brak ':' po '?'E10: po \ powinno być /, ? lub &E110: Brak ')'E111: Brak ']'E112: Brak nazwy opcji: %sE113: Nieznana opcja: %sE114: Brak cudzysłowu: %sE115: Brak cudzysłowu: %sE116: Zbyt wiele argumentów dla funkcji %sE117: Nieznana funkcja: %sE118: Zbyt wiele argumentów dla funkcji: %sE119: Za mało argumentów dla funkcji: %sE11: Niedozwolone w oknie wiersza poleceń; <CR> wykonuje, CTRL-C opuszczaE120: Użycie <SID> poza kontekstem skryptu: %sE121: Nieokreślona zmienna: %sE122: Funkcja %s już istnieje; aby ją zamienić użyj !E123: Nieznana funkcja: %sE124: Brak '(': %sE125: Niedozwolony argument: %sE126: Brak :endfunctionE127: Nie mogę redefiniować funkcji %s: jest w użyciuE128: Nazwa funkcji musi rozpoczynać się wielką literą lub zawierać dwukropek: %sE129: Wymagana jest nazwa funkcjiE12: Komenda niedozwolona z exrc/vimrc w bieżącym szukaniu katalogu lub znacznikaE130: Nieznana funkcja: %sE131: Nie mogę skasować funkcji %s: jest w użyciuE132: Zagnieżdżenie wywołań funkcji ponad 'maxfuncdepth'E133: :return poza funkcjąE134: Przeniesienie wierszy na siebie samychE135: Autokomendy *Filter* nie mogą zmieniać bieżącego buforaE136: viminfo: Zbyt wiele błędów; pomijam resztę plikuE137: Plik viminfo jest niezapisywalny: %sE138: Nie mogę zapisać pliku viminfo %s!E139: Plik jest załadowany w innym buforzeE13: Plik istnieje (wymuś poprzez !)E140: Stosuj ! do zapisania częściowo buforaE141: Brak nazwy pliku dla bufora %ldE142: Plik niezapisany: Zapis jest wyłączony opcją 'write'E143: Autokomendy nieoczekiwanie skasowały nowy bufor %sE144: nienumeryczny argument dla :zE145: Komendy powłoki są niedozwolone w rvimE146: Wzorce regularne nie mogą być rozgraniczane literamiE147: Nie mogę wykonać :global rekursywnieE148: Brak wzorca regularnego w :globalE149: Przykro mi, ale brak pomocy o %sE14: Niewłaściwy adresE150: Nie jest katalogiem: %sE152: Nie mogę otworzyć %s do zapisuE153: Nie mogę otworzyć %s do odczytuE154: Powtórzony znacznik "%s" w pliku %s/%sE155: Nieznany znak: %sE156: Brak nazwy znakuE157: Niewłaściwe ID znaku: %ldE158: Niewłaściwa nazwa bufora: %sE159: Brak numeru znakuE15: Niewłaściwe wyrażenie: %sE160: Nieznana komenda znaku: %sE161: Nie znaleziono punktu kontrolnego: %sE162: Nie zapisano zmian w buforze "%s"E163: Tylko jeden plik w edycjiE164: Nie można przejść przed pierwszy plikE165: Nie można przejść za ostatni plikE166: Nie mogę otworzyć podłączonego pliku do zapisuE167: użyto :scriptencoding poza wczytywanym plikiemE168: użyto :finish poza wczytywanym plikiemE169: Komenda zbyt rekursywnaE16: Niewłaściwy zakresE170: Brak :endforE170: Brak :endwhileE171: Brak :endifE172: Tylko pojedyncza nazwa pliku dozwolonaE173: jeszcze %ld plików do edycjiE173: 1 więcej plik do edycjiE174: Komenda już istnieje; aby ją przedefiniować stosuj !E175: Nie określono atrybutuE176: Niewłaściwa ilość argumentówE177: Mnożnik nie może być podany dwukrotnieE178: Niewłaściwa domyślna wartość mnożnikaE179: -complete wymaga argumentuE17: "%s" jest katalogiemE180: Niewłaściwa wartość dopełniania: %sE181: Niewłaściwy atrybut: %sE182: Niewłaściwa nazwa komendyE183: Komendy zdefiniowane przez użytkownika muszą rozpoczynać się dużą literąE184: Nie ma takiej komendy użytkownika: %sE185: Nie mogę znaleźć zestawu kolorów '%s'E186: Nie ma poprzedniego kataloguE187: NieznanyE188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemuE189: "%s" istnieje (wymuś poprzez !)E18: Nieoczekiwane znaki w :letE190: Nie mogę otworzyć "%s" do zapisuE191: Argument musi być literą albo cudzysłowem w przód/tyłE192: Rekursywne zastosowanie :normal za głębokieE193: :endfunction poza funkcjąE194: Brak nazwy zamiennego pliku do podstawienia pod '#'E195: Nie mogę otworzyć pliku viminfo do odczytuE196: Brak dwugrafów w tej wersjiE197: Nie mogę ustawić języka na "%s"E198: cmd_pchar przekracza długość poleceniaE199: Aktywny widok lub bufor skasowanyE19: Zakładka ma niewłaściwy numer wierszaE200: Autokomendy *ReadPre zrobiły plik nieodczytywalnymE201: Autokomendy *ReadPre nie mogą zmieniać bieżącego buforaE202: Nie można otworzyć pliku utworzonego przez przemianę!E203: Autokomendy skasowały lub wyładowały bufor przeznaczony do zapisuE204: Autokomenda zmieniła liczbę wierszy w nieoczekiwany sposóbE205: Patchmode: nie mogę zapisać oryginalnego plikuE206: patchmode: nie mogę stworzyć pustego oryginalnego plikuE207: Nie mogę skasować pliku zabezpieczeniaE208: Błąd zapisywania do "%s"E209: Błąd w trakcie zamykania "%s"E20: Zakładka nienastawionaE210: Błąd odczytu "%s"E211: Plik "%s" nie jest dłużej dostępnyE212: Nie mogę otworzyć pliku do zapisuE213: Nie mogę przemienić (użyj ! by zapisać bez przemiany)E214: Nie mogę znaleźć pliku tymczasowego do zapisaniaE215: Niedopuszczalny znak po *: %sE216: Nie ma takiego wydarzenia: %sE216: Nie ma takiej grupy lub wydarzenia: %sE217: Nie można wykonywać autokomend dla wydarzeń ALLE218: zbyt głębokie zagnieżdżenie autokomendE219: Brak {.E21: Nie mogę wykonać zmian, 'modifiable' jest wyłączoneE220: Brak }.E222: Dodaj do bufora odczytuE223: rekursywne przyporządkowanieE224: istnieje już globalny skrót dla %sE225: istnieje już globalne przyporządkowanie dla %sE226: istnieje już skrót dla %sE227: istnieje już przyporządkowanie dla %sE228: makemap: Niedopuszczalny trybE229: Nie mogę odpalić GUIE22: Zbyt głębokie zagnieżdżenie skryptówE230: Nie mogę czytać z "%s"E231: Niewłaściwe 'guifontwide'E232: Nie mogę stworzyć BalloonEval z powiadomieniem i wywołaniemE233: nie mogę otworzyć ekranuE234: Nieznany zestaw czcionek: %sE235: Nieznana czcionka: %sE236: Czcionka "%s" nie ma stałej szerokości znakówE237: Wybór drukarki nie powiódł sięE238: Błąd drukarki: %sE239: Niewłaściwy tekst znaku: %sE23: Brak pliku zamianyE240: Brak połączenia z serwerem VimE241: Nie mogę wysłać do %sE243: Argument nie jest wspomagany: "-%s"; Używaj wersji OLE.E244: Niedozwolona nazwa zestawu znaków "%s" w nazwie czcionki "%s"E245: Niedozwolony znak '%c' w nazwie czcionki "%s"E246: Autokomenda FileChangedShell skasowała buforE247: brak zarejestrowanego serwera o nazwie "%s"E248: Wysłanie komendy do programu docelowego nie powiodło sięE24: Nie ma takiego skrótuE250: Brak czcionek dla następujących zestawów znaków w zestawie czcionek %s:E251: wcielenia instancji rejestru Vima jest źle sformowane.  Skasowano!E252: Nazwa zestawu czcionek: %sE253: Nazwa zestawu czcionek: %sE254: Nie mogę zarezerwować koloru %sE255: Nie mogłem wczytać danych znaku!E256: BŁĄD w automacie HangulE257: cstag: nie znaleziono znacznikaE258: Nie mogę wysłać do klientaE259: brak dopasowań dla zapytania cscope %s o %sE25: GUI nie może być użyte: Nie włączono podczas kompilacjiE261: nie ma połączenia %s z cscopeE262: błąd odczytu połączenia z cscope %ldE263: Przykro mi, ta komenda jest wyłączona, bo nie można załadować biblioteki PythonaE264: Python: Błąd w uruchomieniu obiektów I/OE265: $_ musi być reprezentacją ŁańcuchaE266: Przykro mi, ta komenda jest wyłączona, bo nie można załadować biblioteki Ruby.E267: nieoczekiwany returnE268: nieoczekiwany nextE269: nieoczekiwany breakE26: Hebrajski nie może być użyty: Nie włączono podczas kompilacji
E270: nieoczekiwane redoE271: ponowna próba poza klauzulą ratunkuE272: nieobsługiwany wyjątekE273: Nieznany status longjmp %dE274: Sniff: Błąd podczas czytania. RozłączenieE275: Nieznane zapytanie SNiFF+: %sE276: Błąd w trakcie podłączania do SNiFF+E277: Nie mogę czytać odpowiedzi serweraE278: SNiFF+ niepodłączonyE279: Nie jest buforem SNiFF+E27: Farsi nie może być użyty: Nie włączono podczas kompilacji
E280: TCL FATALNY BŁĄD: reflist zepsuta!? Proszę złożyć raport o tym na vim-dev@vim.orgE282: Nie mogę czytać z "%s"E283: Żadna zakładka nie pasuje do "%s"E284: Nie mogę nastawić wartości ICE285: Nie mogłem stworzyć kontekstu wprowadzeńE286: Nie mogłem otworzyć sposobu wprowadzeńE287: OSTRZEŻENIE: Nie mogłem zlikwidować wywołania dla IME288: metoda wprowadzeń nie wspomaga żadnego styluE289: metoda wprowadzeń nie wspomaga mojego typu preeditE28: Brak takiej nazwy grupy podświetlania: %sE293: blok nie był zablokowanyE294: Błąd w trakcie czytania pliku wymianyE295: Błąd odczytu pliku wymianyE296: Błąd szukania w pliku wymianyE297: Błąd zapisu w pliku wymianyE298: Nie otrzymałem bloku nr 0?E298: Nie otrzymałem bloku nr 1?E298: Nie otrzymałem bloku nr 2?E299: wyliczenie Perla zabronione w piaskownicy bez modułu SafeE29: Nie wprowadzono jeszcze żadnego tekstuE300: Plik wymiany już istnieje (atak symlink?)E301: Ojej, zgubiłem plik wymiany!!!E302: Nie mogłem zmienić nazwy pliku wymianyE303: Nie mogę otworzyć pliku wymiany dla "%s"; odtworzenie niemożliweE304: ml_upd_block(): Nie otrzymałem bloku 0??E305: Nie znaleziono pliku wymiany dla %sE306: Nie mogę otworzyć %sE307: %s nie wygląda na plik wymiany VimaE308: OSTRZEŻENIE: Oryginalny plik mógł być zmienionyE309: Nie mogę odczytać bloku 1 z %sE30: Nie ma poprzedniego wiersza poleceńE310: Niewłaściwe ID bloku 1 (może %s nie jest plikiem .swp?)E311: Przerwanie odtwarzaniaE312: Wykryto błędy podczas odtwarzania; od których wierszy zacząć ???E313: Nie mogę zabezpieczyć, bo brak pliku wymianyE314: Nieudane zabezpieczenieE315: ml_get: niewłaściwy lnum: %ldE316: ml_get: nie znaleziono wiersza %ldE317: niepoprawne id bloku odniesieniaE317: niepoprawne id bloku odniesienia 2E317: niepoprawne id wskaźnika bloku 3E317: niepoprawne id wskaźnika bloku 4E318: Zaktualizowano zbyt wiele bloków?E319: Przykro mi, ale ta komenda nie jest dostępna w tej wersjiE31: Nie ma takiego przyporządkowaniaE320: Nie mogę znaleźć wiersza %ldE321: Nie można przeładować "%s"E322: numer wiersza poza zakresem: %ld jest poza końcemE323: liczba wierszy niepoprawna w bloku %ldE324: Nie można otworzyć pliku PostScript do wyjściaE325: UWAGAE326: Znaleziono zbyt wiele plików wymianyE327: Część tropu punktu menu nie określa podmenuE328: Menu istnieje tylko w innym trybieE329: Nie ma menu "%s"E32: Brak nazwy plikuE330: Trop menu nie może prowadzić do podmenuE331: Nie wolno dodawać punktów menu wprost do paska menuE332: Separator nie może być częścią tropu menuE333: Trop menu musi prowadzić do punktu menuE334: Nie znaleziono menu: %sE335: Menu nie jest zdefiniowane dla trybu %sE336: Trop menu musi prowadzić do podmenuE337: Nie znaleziono menu - sprawdź nazwy menuE338: Przykro mi, nie ma przeglądarki plików w trybie konsoliE339: Zbyt długi wzorzecE33: Brak poprzedniego podstawieniowego wyrażenia regularnegoE340: Wiersz staje się zbyt długiE341: Wewnętrzny błąd: lalloc(%ld, )E342: Brak pamięci!  (rezerwacja %lu bajtów)E343: Niewłaściwy trop: '**[numer]' musi być na końcu tropu lub po nim musi być '%s'.E344: Nie mogę znaleźć katalogu "%s" w cdpathE345: Nie mogę znaleźć pliku "%s" w tropieE346: Katalogu "%s" nie ma więcej w cdpathE347: Pliku "%s" nie ma więcej w tropieE348: Brak ciągu pod kursoremE349: Brak identyfikatora pod kursoremE34: Brak poprzedniej komendyE350: Nie można utworzyć zwinięcia przy bieżącej 'foldmethod'E351: Nie można skasować zwinięcia przy bieżącej 'foldmethod'E352: Nie mogę skasować zwinięcia z bieżącą 'foldmethod'E353: Pusty rejestr %sE354: Niewłaściwa nazwa rejestru: '%s'E355: Nieznana opcja: %sE356: BŁĄD get_varpE357: 'langmap': Brak pasującego znaku dla %sE358: 'langmap': Dodatkowe znaki po średniku: %sE359: Ustawianie trybu ekranu niewspomaganeE35: Brak poprzedniego wyrażenia regularnegoE360: Nie mogę wykonać powłoki z opcją -fE363: Wzorzec używa więcej pamięci niż 'maxmempattern'E364: Wywołanie z biblioteki nie powiodło się dla "%s()"E365: Drukowanie pliku PostScript nie powiodło sięE367: Nie ma takiej grupy: "%s"E369: Niewłaściwy element w %s%%[]E36: Brak miejscaE370: Nie mogłem załadować biblioteki %sE371: Nie znaleziono komendyE372: Zbyt wiele %%%c w ciągu formatującymE373: Nieoczekiwane %%%c w ciągu formatującymE374: Brak ] w ciągu formatującymE375: Niewspomagane %%%c w ciągu formatującymE376: Niepoprawne %%%c w prefiksie ciągu formatującegoE377: Niepoprawne %%%c w ciągu formatującymE378: 'errorformat' nie zawiera wzorcaE379: Pusta nazwa katalogu lub jej brakE37: Nie zapisano od ostatniej zmiany (wymuś przez !)E380: Na dole stosu quickfixE381: Na górze stosu quickfixE382: Nie mogę zapisać, opcja 'buftype' jest ustawionaE383: Niewłaściwy ciąg do szukania: %sE384: szukanie dobiło GÓRY bez znalezienia: %sE385: szukanie dobiło KOŃCA bez znalezienia : %sE386: Oczekuję '?' lub '/' po ';'E387: Wzorzec pasuje w bieżącym wierszuE388: Nie znalazłem definicjiE389: Nie znalazłem wzorcaE38: Zerowy argumentE390: Niedozwolony argument: %sE391: Nie ma takiego klastra składni: %sE392: Nie ma takiego klastra składni: %sE393: group[t]here niedozwolone w tym miejscuE394: Nie znalazłem elementów regionu dla %sE395: argument contains niedozwolony w tym miejscuE397: Wymagana nazwa plikuE398: Brak '=': %sE399: Za mało argumentów: syntax region %sE39: Oczekuję liczbyE400: Brak specyfikacji klastraE401: Brak ogranicznika wzorca: %sE402: Śmieci po wzorcu: %sE403: syntax sync: wielokrotnie podane wzorce kontynuacji wierszaE404: Niedozwolone argumenty: %sE405: Brak znaku równości: %sE406: Pusty argument: %sE407: %s jest niedozwolone w tym miejscuE408: %s musi być pierwsze w liście containsE409: Nieznana nazwa grupy: %sE40: Nie mogę otworzyć pliku błędów %sE410: Niewłaściwa podkomenda :syntax : %sE411: nie znaleziono grupy podświetlania: %sE412: Zbyt mało argumentów: ":highlight link %s"E413: Zbyt wiele argumentów: ":highlight link %s"E414: grupa ma ustawienia; zignorowane podłączenie podświetlaniaE415: nieoczekiwany znak równości: %sE416: brak znaku równości: %sE417: brak argumentu: %sE418: Niedozwolona wartość: %sE419: Kolor FG nieznanyE41: Pamięć wyczerpana!E420: Kolor BG nieznanyE421: Nazwa lub liczba koloru nierozpoznana: %sE422: za długi kod terminala: %sE423: Niedozwolony argument: %sE424: Zbyt wiele różnych atrybutów podkreślania w użyciuE425: Nie można przejść przed pierwszy pasujący znacznikE426: nie znaleziono znacznika: %sE427: Pasuje tylko jeden znacznikE428: Nie można przejść za ostatni pasujący znacznikE429: Plik "%s" nie istniejeE42: Brak BłędówE430: Trop szukania pliku znaczników obcięty dla %s
E431: Błąd formatu w pliku znaczników "%s"E432: Plik znaczników nieuporządkowany: %sE433: Brak pliku znacznikówE434: Nie mogę znaleźć wzorca znacznikaE435: Nie znalazłem znacznika - tylko zgaduję!E436: Brak opisu "%s" w termcapE437: wymagana zdolność "cm" terminalaE438: u_undo: niewłaściwe numery wierszyE439: uszkodzona lista cofaniaE43: Popsuty ciąg wzorcaE440: brak wiersza cofaniaE441: Nie ma okna podgląduE442: Nie mogę rozdzielić lewo-górnego i prawo-dolnego jednocześnieE443: Nie mogę przekręcić, gdy inne okno jest rozdzieloneE444: Nie mogę zamknąć ostatniego oknaE445: Inne okno zawiera zmianyE446: Brak nazwy pliku pod kursoremE447: Nie mogę znaleźć pliku "%s" w tropieE448: Nie można załadować funkcji biblioteki %sE449: Odebrałem niewłaściwe wyrażenieE44: Zepsuty program wyrażeń regularnychE455: Nie można zapisać do wyjściowego pliku PostScriptuE456: Nie można znaleźć pliku zasobów PostScriptu "%s.ps"E456: Nie można znaleźć pliku zasobów PostScriptu "cidfont.ps"E456: Nie można znaleźć pliku zasobów PostScriptu "prolog.ps"E456: Nie mogę otworzyć pliku "%s"E457: Nie można odczytać pliku zasobów PostScriptu "%s"E459: Nie można przejść do poprzedniego kataloguE45: opcja 'readonly' jest ustawiona (wymuś poprzez !)E460: Rozdział zasobów zostanie utracony (wymuś przez !)E461: Niedozwolona nazwa zmiennej: %sE462: Nie można przygotować przeładowania "%s"E463: Region jest chroniony, nie mogę zmienićE464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez użytkownikaE465: :winsize wymaga dwóch argumentów numerycznychE466: :winpos wymaga dwóch argumentów numerycznychE467: Dopełnianie użytkownika wymaga funkcji jako argumentuE468: Argument depełniania dozwolony wyłącznie dla dopełniania użytkownikaE469: nieprawidłowa flaga cscopequickfix %c dla %cE46: Nie mogę zmienić zmiennej tylko do odczytu "%s"E470: Przerwanie komendyE471: wymagany argumentE472: Komenda nie powiodła sięE473: Błąd wewnętrznyE474: Niewłaściwy argumentE475: Niewłaściwy argument: %sE476: Niewłaściwa komendaE477: Niedozwolone !E478: Nie panikuj!E479: Brak dopasowańE47: Błąd w trakcie czytania pliku błędówE480: Brak dopasowań: %sE481: Zakres niedozwolonyE482: Nie mogę stworzyć pliku %sE483: Nie mogę pobrać nazwy pliku tymczasowegoE484: Nie mogę otworzyć pliku %sE485: Nie mogę odczytać pliku %sE486: Nie znaleziono wzorca: %sE487: Argument musi być dodatniE488: Nadstępne znaczkiE48: Niedozwolone w piaskownicyE490: Nie znaleziono zwinięciaE492: Nie jest komendą edytoraE493: Dano wsteczny zakresE494: Stosuj w lub w>>E495: brak nazwy pliku autokomend do podstawienia pod "<afile>"E496: brak numeru bufora autokomend do podstawienia pod  "<abuf>"E497: brak nazwy dopasowania autokomend pod "<amatch>"E498: brak nazwy pliku :source do postawienia pod "<sfile>"E499: Pusta nazwa pliku dla '%' lub '#', działa tylko z ":p:h"E49: Niewłaściwa wielkość przewinięciaE500: Wynikiem jest pusty ciągE501: Na końcu plikuE505: "%s" jest tylko do odczytu (dodaj ! aby wymusić)E505: %s jest tylko do odczytu (dodaj ! aby wymusić)E506: Nie mogę zapisać do pliku zabezpieczenia (wymuś przez !)E507: Błąd podczas zamykania pliku zabezpieczenia (wymuś przez !)E508: Nie mogę odczytać pliku w celu zabezpieczenia (wymuś przez !)E509: Nie mogę stworzyć pliku zabezpieczenia (wymuś przez !)E50: Zbyt wiele \z(E510: Nie mogę zrobić pliku zabezpieczenia (wymuś przez !)E511: netbeans już podłączoneE512: Zamknięcie się nie powiodłoE513: Błąd zapisu, przemiana się nie powiodła (opróżnij 'fenc' aby wymusić)E513: Błąd zapisu, przemiana się nie powiodła w wierszu %ld (opróżnij 'fenc' by wymusić)E514: błąd w zapisie (może system plików jest przepełniony?)E515: Nie wyładowano żadnego buforaE516: Nie skasowano żadnego buforaE517: Nie wyrzucono żadnego buforaE518: Nieznana opcjaE519: Opcja nie jest wspomaganaE51: Zbyt wiele %s(E520: Niedozwolone w modelineE521: Po = wymagany jest numerE521: Wymagana Liczba: &%s = '%s'E522: Nie znaleziono w termcapE523: Niedozwolone w tym miejscuE524: Brak dwukropkaE525: Ciąg o zerowej długościE526: Brak numeru po <%s>E527: Brak przecinkaE528: Musi określać wartość 'E529: Nie mogę ustawić 'term' na pusty ciągE52: Niesparowany \z(E530: Nie mogę zmienić term w GUIE531: Użyj ":gui" do odpalenia GUIE533: nie mogę wybrać szerokiej czcionkiE534: Niedozwolona szeroka czcionkaE535: Niedozwolony znak po <%c>E536: wymagany przecinekE537: 'commentstring' musi być pusty lub zawierać %sE538: Brak wspomagania myszkiE539: Niedozwolony znak <%s>E53: Niesparowany %s%%(E540: Niedomknięty ciąg wyrażeńE541: zbyt wiele elementówE542: niezbalansowane grupyE543: To nie jest ważna strona kodowaE544: Nie znaleziono pliku rozkładu klawiszyE545: Brak dwukropkaE546: Niedozwolony trybE547: Niedozwolony obrys myszkiE548: oczekiwałem na cyfręE549: Niedozwolony procentE54: Niesparowany %s(E550: Brak dwukropkaE551: Niedozwolona częśćE552: oczekiwałem na cyfręE553: Nie ma więcej elementówE554: Błąd składni w %s{...}E555: na dole stosu znacznikówE556: na górze stosu znacznikówE557: Nie mogę otworzyć pliku termcapE558: Nie ma opisu takiego terminala w terminfoE559: Nie ma opisu takiego terminala w termcapE55: Niesparowany %s)E560: Zastosowanie: cs[cope] %sE561: nieznany typ szukania cscopeE562: Zastosowanie: cstag <ident>E563: błąd statE563: stat(%s) błąd: %dE564: %s nie jest katalogiem lub poprawną bazą danych cscopeE566: Nie mogłem stworzyć potoku do cscopeE567: brak połączenia z cscopeE568: nie dodano duplikatu bazy danych cscopeE570: błąd krytyczny w cs_manage_matchesE571: Przykro mi, ta komenda jest wyłączona, bo nie można załadować biblioteki Tcl.E572: kod wyjścia %dE573: Użyto niewłaściwego id serwera: %sE574: Nieznany typ rejestru %dE579: zbyt głębokie zagnieżdżenie :ifE580: :endif bez :ifE581: :else bez :ifE582: :elseif bez :ifE583: wielokrotne :elseE584: :elseif po :elseE585: zbyt głębokie zagnieżdżenie :while/:forE586: :continue bez :while lub :forE587: :break bez :while lub :forE588: :endfor bez :forE588: :endwhile bez :whileE589: 'backupext' i 'patchmode' są tożsameE590: okno podglądu już istniejeE591: 'winheight' nie może być mniejsze niż 'winminheight'E592: 'winwidth' nie może być mniejsze niż 'winminwidth'E593: Potrzebuję przynajmniej %d wierszyE594: Potrzebuję przynajmniej %d kolumnE595: zawiera niewyświetlalny lub szeroki znakE596: Niedozwolona czcionka/kiE597: nie mogę wybrać zestawu czcionekE598: Niedozwolony zestaw czcionekE599: Nieprawidłowa wartość 'imactivatekey'E59: niedozwolony znak po %s@E600: Brak :endtryE601: zbyt głębokie zagnieżdżenie :tryE602: :endtry bez :tryE603: :catch bez :tryE604: :catch za :finallyE605: Nie znaleziono wyjątku: %sE606: :finally bez :tryE607: wielokrotne :finallyE608: Nie można ':throw' wyjątków z prefiksem 'Vim'E609: Błąd cscope: %sE60: Zbyt wiele złożonych %s{...}E612: Zbyt wiele nazw znakówE613: Nieznana czcionka drukarki: %sE614: vim_SelFile: nie mogę powrócić do bieżącego kataloguE615: vim_SelFile: nie mogę otrzymać bieżącego kataloguE616: vim_SelFile: nie mogę otrzymać czcionki %sE617: Nie mogę zmienić w GTK+2 GUIE618: plik "%s" nie jest plikiem zasobów PostScriptuE619: plik "%s" nie jest wspieranym plikiem zasobów PostScriptuE61: Zagnieżdżone %s*E620: Nie można przekonwertować by drukować kodowanie "%s"E621: "%s" nieprawidłowa wersja pliku zasobówE622: Nie mogłem utworzyć rozwidlenia dla cscopeE623: Nie mogłem stworzyć procesu cscopeE624: Nie mogę otworzyć pliku "%s"E625: nie mogę otworzyć bazy danych cscope: %sE626: nie mogę uzyskać informacji z bazy danych cscopeE62: Zagnieżdżone %s%cE63: Niedozwolone użycie \_E64: %s%c po niczymE655: Za dużo dowiązań symbolicznych (pętla?)E658: Bufor %ld utracił połączenie z NetBeansE659: Nie można wywołać Pythona rekursywnieE65: Niewłaściwe odwołanie wsteczneE661: Przykro mi, brak '%s' pomocy dla %sE662: Na początku listy zmianE663: Na końcu listy zmianE664: lista zmian (changelist) jest pustaE665: Nie można uruchomić GUI, brak prawidłowej czcionkiE666: nie wspierany kompilator: %sE667: Fsync nie powiódł sięE668: Błędny tryb dostępu pliku info połączenia NetBeans: "%s"E669: Niedrukowalny znak w nazwie grupyE66: \z( jest niedozwolone w tym miejscuE670: Mieszanka kodowań w pliku pomocy w ramach języka: %sE671: Nie mogę znaleźć tytułu okna "%s"E672: Nie można otworzyć okna wewnątrz aplikacji MDIE673: Niekompatybilne kodowanie wielobajtowe i zestaw znaków.E674: printmbcharset nie może być pusty przy kodowaniu wielobajtowym.E675: Nie określono domyślnej czcionki dla drukowania wielobajtowego.E676: Brak pasujących autokomend dla bufora acwriteE677: Błąd zapisywania pliku tymczasowegoE678: Niedozwolony znak po %s%%[dxouU]E679: rekursywna pętla wczytująca syncolor.vimE67: \z1 i podobne są niedozwolone w tym miejscuE680: <buffer=%d>: niewłaściwy numer buforaE681: Bufor nie jest załadowanyE682: Niewłaściwy wzorzec wyszukiwania lub delimiterE683: Brak nazwy pliku lub niewłaściwa ścieżkaE684: Indeks listy poza zakresem: %ldE685: Błąd wewnętrzny: %sE686: Argument %s musi być ListąE687: Mniej celów niż elementów ListyE688: Więcej celów niż elementów ListyE689: Indeks może istnieć tylko dla Listy lub SłownikaE68: niedopuszczalny znak po \zE690: Brak "in" po :forE691: Listę mogę porównać tylko z ListąE692: Nieprawidłowa operacja dla ListyE693: Funcref mogę porównać tylko z FuncrefE694: Nieprawidłowa operacja dla FuncrefE695: Nie można zindeksować FuncrefE696: Brakujący przecinek w Liście: '%sE697: Brak zakończenia Listy ']': %sE698: Zmienna zagnieżdżona zbyt głęboko by zrobić kopięE699: Za dużo argumentówE69: Brak ] po %s%%[E700: Nieznana funkcja: %sE701: Nieprawidłowy typ dla len()E702: Funkcja porównywania w sort nie powiodła sięE703: Użycie Funcref jako LiczbyE704: Nazwa Funcref musi się zaczynać wielką literą: %sE705: Nazwa zmiennej jest w konflikcie z istniejącą funkcją: %sE706: Nieprawidłowy typ zmiennej dla: %sE707: Nazwa funkcji jest w konflikcie ze zmienną: %sE708: [:] musi być ostatnieE709: [:] wymaga wartości listyE70: Pusty %s%%[]E710: Lista ma więcej elementów niż celE711: Lista nie ma wystarczającej ilości elementówE712: Argument %s musi być Listą lub SłownikiemE713: Nie można użyć pustego klucza dla SłownikaE714: wymagana ListaE715: wymagany SłownikE716: Klucz nie istnieje w Słowniku: %sE717: istnieje już taki element SłownikaE718: wymagana FuncrefE719: Nie można użyć [:] przy SłownikuE71: Niedozwolony znak po %s%%E720: Brak dwukropka w Słowniku: %sE721: Powtórzony klucz w Słowniku: "%s"E722: Brakujący przecinek w Słowniku: %sE723: Brak końca w Słowniku '}': %sE724: Zmienna zagnieżdżona zbyt głęboko by pokazaćE725: Wywołanie funkcji "dict" bez Słownika: %sE726: Skok to zeroE727: Początek po końcuE728: Użycie Słownika jako LiczbyE729: Użycie Funcref jako ŁańcuchaE72: Błąd podczas zamykania pliku wymianyE730: Użycie Listy jako ŁańcuchaE731: Użycie Słownika jako ŁańcuchaE732: Użycie :endfor z :whileE733: Użycie :endwhile z :forE734: Zły typ zmiennej dla %s=E735: Słownik mogę porównać tylko ze SłownikiemE736: Nieprawidłowa operacja dla SłownikaE737: Klucz już istnieje: %sE738: Nie mogę wypisać zmiennych dla %sE739: Nie mogę utworzyć katalogu: %sE73: stos znaczników jest pustyE740: Zbyt wiele argumentów dla funkcji %sE741: Wartość jest zablokowana: %sE742: Nie mogę zmienić wartości %sE743: zmienna zagnieżdżona zbyt głęboko dla (un)lockE744: NetBeans nie zezwala na zmiany w plikach tylko do odczytuE745: Użycie Listy jako LiczbyE746: Nazwa funkcji nie pasuje do nazwy skryptu: %sE747: Nie mogę zmienić katalogu, bufor został zmodyfikowany (dodaj ! aby wymusić)E748: Brak poprzednio użytego rejestruE749: pusty buforE74: Komenda jest zbyt skomplikowanaE750: Pierwsze użycie ":profile start {fname}"E751: Nazwa pliku wynikowego nie może być nazwą regionuE752: Brak poprzednich podmian sprawdzania pisowniE753: Nie znaleziono: %sE754: Wspieram tylko 8 regionówE755: Nieprawidłowy region w %sE756: Sprawdzanie pisowni nie jest włączoneE757: To nie wygląda na plik sprawdzania pisowniE758: Obcięty plik sprawdzania pisowniE759: Nieprawidłowy format pliku sprawdzania pisowniE75: Zbyt długa nazwaE760: Brak ilości słów w %sE761: Błąd formatu w pliku afiksów FOL, LOW lub UPPE762: Znak w FOL, LOW lub UPP jest poza zasięgiemE763: Znaki wyrazów różnią się między plikami sprawdzania pisowniE764: Nie ustawiono opcji '%s'E765: 'spellfile' nie posiada wpisów %ldE766: Za mało argumentów dla printf()E767: Za dużo argumentów dla printf()E768: Plik wymiany istnieje: %s (wymuś poprzez :silent!)E769: Brak ] po %s[E76: Zbyt wiele [E770: Niewspierana sekcja w pliku sprawdzania pisowniE771: Stary plik sprawdzania pisowni, wymagane uaktualnienieE772: Plik sprawdzania pisowni dla nowszej wersji VimaE773: Pętla dowiązań dla "%s"E774: 'operatorfunc' jest pustaE775: Funkcjonalność eval nie jest dostępnaE776: Brak listy lokacjiE777: Oczekiwałem na łańcuch lub listęE778: Ten plik nie wygląda na plik .sug: %sE779: Stary plik .sug, konieczne jest uaktualnienie: %sE77: Zbyt wiele nazw plikówE780: Plik .sug dla nowszej wersji Vima: %sE781: Plik .sug nie pasuje do pliku .spl: %sE782: Błąd w czasie odczytu pliku .sug: %sE783: Podwojony znak we wpisie MAPE784: Nie mogę zamknąć ostatniej kartyE785: complete() może być użyte tylko w trybie WprowadzaniaE786: Zakres niedozwolonyE787: Nieoczekiwana zmiana buforaE788: Nie można teraz edytować innego buforaE789: Brak ']': %sE78: Nieznana zakładkaE790: undojoin nie jest dozwolone po undoE791: Pusty wpis keymapE792: Pusta nazwa menuE793: Żaden inny bufor w trybie diff nie jest modyfikowalnyE794: Nie mogę ustawić zmiennej w piaskownicy: "%s"E795: Nie mogę usunąć zmiennej %sE79: Nie mogą rozwinąć znaków wieloznacznychE800: Arabski nie może być użyty: Nie włączono podczas kompilacji
E804: Nie mogę użyć '%' w ZmiennoprzecinkowejE805: Użycie Zmiennoprzecinkowej jako LiczbyE806: Użycie Zmiennoprzecinkowej jako ŁańcuchaE807: Spodziewany argument Zmiennoprzecinkowy w printf()E808: Wymagana Liczba lub ZmiennoprzecinkowaE809: #< nie jest dostępne bez właściwości +evalE80: Błąd w trakcie zapisuE810: Nie mogę otworzyć lub zapisać plików tymczasowychE811: Nie można teraz zmieniać informacji o buforzeE812: Autokomendy zmieniły bufor lub jego nazwęE813: Nie można zamknąć okna autocmdE814: Nie można zamknąć okna, zostałoby tylko okno autocmdE815: Przykro mi, ta komenda jest wyłączona, biblioteka MzScheme nie może być załadowana.E816: Nie mogę odczytać wyjścia pliku łatyE817: Blowfish używa błędnej kolejności bajtówE818: test sha256 nie powiódł sięE819: test Blowfisha nie powiódł sięE81: Użycie <SID> poza kontekstem skryptuE820: sizeof(uint32_t) != 4E821: Plik zaszyfrowano w nieznany sposóbE822: Nie mogę otworzyć pliku undo do odczytu: %sE823: To nie jest plik undo: %sE824: Niekompatybilny plik undo: %sE825: Uszkodzony plik undo (%s): %sE826: Nie powiodło się odszyfrowywanie pliku undo: %sE827: Plik undo jest zaszyfrowany: %sE828: Nie mogę otworzyć do zapisu pliku undo: %sE829: Błąd zapisu w pliku undo: %sE82: Nie mogę zarezerwować bufora; zakończenie...E830: Nie znaleziono numeru cofnięcia %ldE831: bf_key_init() wywołany z pustym hasłemE832: Nie zaszyfrowany plik ma zaszyfrowany plik undo: %sE833: %s jest zaszyfrowany a ta wersja Vima nie wspiera szyfrowaniaE834: Konflikty wartości 'listchars'E834: Niespodziewana zmiana ilości liniiE835: Konflikty wartości 'fillchars'E836: Python: nie można używać :py i :py3 w czasie jednej sesjiE837: Python: nie można używać :py i :py3 w czasie jednej sesjiE838: netbeans nie są obsługiwane przez to GUIE839: Funkcja uzupełniania zmieniła oknoE83: Nie mogę zarezerwować bufora; używam innego...E840: Funkcja uzupełnania usunęła tekstE841: Nazwa zastrzeżona, nie można jej użyć w komendzie użytkownikaE842: brak numeru linii by użyć z "<slnum>"E843: Błąd w czasie uaktualniania szyfrowania pliku wymianyE844: Niewłaściwa wartość ccharE845: Nie wystarczająca ilość pamięci, lista słów będzie niekompletnaE846: Kod klucza nie jest ustawionyE847: Za dużo włączonych składniE848: Za dużo klastrów składniE849: Za dużo grup podświetlania i składniE84: Nie znaleziono zmienionych buforówE850: Niewłaściwa nazwa rejestruE851: Nie mogłem stworzyć nowego procesu dla GUIE852: Proces potomny nie mógł uruchomić GUIE853: Powtórzona nazwa argumentu: %sE854: ścieżka za długa by uzupełnićE855: Autokomendy spowodowały porzucenie komendyE858: eval nie zwróciło odpowiedniego obiektu pythonaE859: Nie powiodła się konwersja obiektu pythona do wartości VimaE85: Nie ma wylistowanych buforówE862: Nie można tutaj użyć g:E:864: \%#= może być tylko przed 0, 1 lub 2. Zostanie użyty silnik automatycznyE865: (NFA) przedwczesny koniec wyrażenia regularnegoE866: (wyrażenie regularne NFA) Niepoprawnie umieszczone %cE867: (NFA) Nieznany operator '\%%%c'E867: (NFA) Nieznany operator '\z%c'E868: Błąd przy budowwaniu NFA z klasą ekwiwalencjiE869: (NFA) Nieznany operator '\@%c'E86: Bufor "%ld" nie istniejeE870: (wyrażenie regularne NFA) Błąd przy odczytywaniu limitów powtórzeńE871: (wyrażenie regularne NFA) wielokrotne nie może być po wielokrotnym!E872: (wyrażenie regularne NFA) Zbyt dużo '('E873: (wyrażenie regularne NFA) błąd poprawnego zakończeniaE874: (NFA) Nie można zdjąć elementu ze stosu!E875: (wyrażenie regularne NFA) (w trakcie konwersji postfix do NFA), za wiele stanów na stosieE876: (wyrażenie regularne NFA) Nie ma miejsca na całe NFA E878: (NFA) Nie można przydzielić pamięci do przejścia przez gałęzie!E879: (wyrażenie regularne NFA) Za dużo \z(E87: Nie mogę przejść poza ostatni buforE88: Nie mogę przejść przed pierwszy buforE89: Nie zapisano zmian w buforze %ld (wymuś przez !)E90: Nie mogę wyładować ostatniego buforaE91: opcja 'shell' jest pustaE92: Nie znaleziono bufora %ldE93: Wielokrotne dopasowania dla %sE94: Żaden bufor nie pasuje do %sE95: Bufor o tej nazwie już istniejeE96: Nie mogę zróżnicować więcej niż %ld buforówE97: Nie mogę stworzyć różnicE98: Nie mogę wczytać wyjścia różnicyE99: Bieżący bufor nie jest w trybie różnicBŁĄD: Edytuj PlikEdytuj plik w nowym oknieEdytuj w &VimieEdytuj w &wielu VimachEdytuj z istniejącym Vimem - Edytuj w pojedynczym &VimieEdytuj wybrane pliki w VimieKodowanie:Koniec funkcjiKoniec wczytywanego plikuWprowadź klucz do odkodowania: Wprowadź numer pliku wymiany, którego użyć (0 by wyjść): Wprowadź ponownie ten sam klucz: Wchodzę w tryb odpluskwiania. Wprowadź "cont" aby kontynuować.Wchodzę w tryb Ex. Wprowadź "visual" aby przejść do trybu Normal.BłądBłąd i przerwanieBłąd tworzenia procesu: Sprawdź czy gvim jest w twojej ścieżce!Wykryto błąd podczas przetwarzania %s:Plik błęduOczekiwane zużycie pamięci: %d bajtówWyjątekWyjątek przechwycony: %sWyjątek odrzucony: %sWyjątek zakończony: %sWyjątek: %sWykonuję %sOczekiwano ilości MAP w %s wierszu %dOczekiwano ilości REP(SAL) w %s wierszu %dOczekiwano Y lub N w %s wierszu %d: %sWyrażenieZewnętrzne poddopasowania:
FLAG po użyciu flag w %s wiersz %d: %sNie mogę ustawić haka ścieżki: sys.path_hooks nie jest listą
Powinieneś teraz wykonać następujące czynności:
- dodać vim.path_hook do sys.path_hooks
- dodać vim.VIM_SPECIAL_PATH do sys.path
Nie mogę ustawić ścieżki: sys.path nie jest listą
Powinno się teraz dodać vim.VIM_SPECIAL_PATH do sys.pathPlik "%s" nie istniejeZawartość pliku się zmieniła, nie mogę użyć pliku undoPrawa pliku "%s" są tylko do odczytu.
Mimo to być może uda się zmienić ten plik.
Chcesz spróbować?Plik zabezpieczonoPlikiFiltrSzukanie i Zamiana (użyj '\\' do szukania '\')Znajdź &następneZnajdź następneZnajdź ciąg (użyj '\\' do szukania '\')Znajdź symbolZnajdź:Skończono wczytywanie pliku undo %sPierwszy powtórzony wyraz w %s wiersz %d: %sFlaga nie jest liczbą w %s wiersz %d: %sCzcionka '%s' nie posiada znaków jednolitej szerokościSzerokość font%ld nie jest podwójną szerokością font0Szerokość font0: %ldFont0: %sSzerokość font1: %ldFont1: %sCzcionka:Śmiecie po argumencie opcjiUtwórz dokumentację dlaWitaj użytkowniku Vima!Pomóż biednym dzieciom w Ugandzie!Dobiłem do końca akapituBŁĄD I/OZignorowałem %d słów ze znakami nie ASCII w %sZignorowałem %d słów ze znakami nie ASCIIIgnoruję długie wiersze w pliku znacznikówNiedopuszczalna nazwa plikuNieprawidłowa flaga w %s wiersz %d: %sNiedozwolona nazwa rejestruNiedopuszczalny początkowy znakWiersz wprowadzeńInput _MethodsPrzerwaniePrzerwanie: PrzerwaneNiewłaściwy argument dlaNieprawidłowy opis czcionkiNieprawidłowy numer regionu w %s wierszu %d: %sNieprawidłowa wartość FLAG w %s wierz %d: %sKlucze nie pasują do siebie!Zabij połączenieKonsolidacja: Nie można wczytać biblioteki Lua.Dopasuj wielkość literDopasuj tylko całe wyrazyWiadomośćOpiekun komunikatów: Mikołaj Machowski <mikmach@wp.pl>Brak '>'Brak wiersza FOL/LOW/UPP w %sBrak wiersza SOFO%s wiersz w %sZmieniony przez Nazwa:Potrzebuję %s w wersji %ld
Potrzebuję Amigados w wersji 2.04 lub późniejszą
Potrzebuję klucza szyfrowania dla "%s"NetBeans nie pozwala na zapis niezmodyfikowanych buforówNowa kartaBrak elementów składni określonych dla tego buforaNie znaleziono skrótuNie określono żadnych punktów kontrolnychBrak displayBrak terminala: Wysłanie wyrażenia nie powiodło się.
Brak włączanych plikówNie znaleziono przyporządkowaniaBrak zakładekBrak dopasowania przy kursorze, szukam dalejBrak pasujących autokomendBrak starych plikówBrak pliku wymianyBrak tekstu do drukowaniaCofnięcie niemożliwe; mimo to kontynuujęNie znaleziono komend zdefiniowanych przez użytkownikaNie używanyNie wczytuję pliku undo, inny właściciel: %sNie ma zmian do cofnięciaLiczba słów po kompresji dźwiękowej: %ldOKDialog otwierania plikuOtwórz kartę...Otwórz kartę...Otwarcie ekranu X nie powiodło sięPróba otwarcia ekranu X trwała zbyt długoOtwieranie ekranu X trwało %ld msecOryginalny plik "%s"Nadpisać istniejący plik "%s"?Strona %dCzęściowy zapis niemożliwy dla buforów NetBeansPlik łataZa długa ścieżka!Trop:Wzorzec znaleziono w każdym wierszu: %sNie znaleziono wzorcaNie znaleziono wzorca: %sWykonuję kompresję dźwiękową...Naciśnij ENTER lub wprowadź komendę aby kontynuowaćZadanie drukowanie przesłane.Wydrukowano: %sWydrukowano '%s'Drukowanie odwołaneDrukuję stronę %d (%d%%)Zapytane o wzorzecPytanieCzytam plik afiksów %s ...Odczytuję plik sprawdzania pisowni...Czytam plik słownika %s ...Wczytywanie ze stdin...Odczytuję plik sprawdzania pisowni "%s"Wczytuję plik undo: %sWczytuję plik viminfo "%s"%s%s%sOdczytuję plik wyrazów %s ...Odzyskiwanie zakończone. Zawartość bufora jest równa zawartości pliku.Odtwarzanie zakończono. Powinieneś sprawdzić czy wszystko jest w porządku.Ponów wszelkie połączeniaZamieńZamień &wszystkoZamień wszystkieZamień na:PobierzPobieraj z wszystkich projektówPobieraj z plikuPobieraj z projektuDziałam w trybie zgodności z ViUruchomiony bez trybów, wpisany tekst jest wprowadzanySNiFF+ jest obecnie Zapisz jakoDialog zapisywania plikuZapisz przekierowanieZapisz sesjęZapisz ustawieniaZapisz widokZachować zmiany w "%s"?Przeglądam słownik: %sPrzegląd włączonego pliku: %sPrzeglądam znaczniki.Przeglądam: %sScrollbar Widget: Nie mogłem otrzymać rozmiarów rysunku na przycisku.Szukany ciągSzukanie "%s"Szukanie "%s" w "%s"Przeszukiwanie włączonego pliku %sSzukam w pliku znaczników %sZobacz ":help E312" dla dalszych informacji.Zobacz ":help W11"  dla dalszych informacji.Zobacz ":help W12"  dla dalszych informacji.Zobacz ":help W16"  dla dalszych informacji.Dialog wyboru kataloguWybrano %s%ld z %ld Wierszy; %ld z %ld Słów; %ld z %ld BajtówWybrano %s%ld z %ld Wierszy; %ld z %ld Słów; %ld z %ld Znaków; %ld z %ld BajtówWybórPrzesyłam do drukarki...Pokaż bazę klasyPokaż klasę w hierarchiiPokaż klasę w ograniczonej hierarchiiPokaż połączeniaPokaż dokumentację dlaPokaż przepisaną funkcję członowąPokaż wielkość w punktachPokaż źródło dlaPokaż ten komunikatZnaki dla %s:Wielkość:Pomijam zapis pliku undo, nic do cofnięciaSniff: Błąd w trakcie zapisu. RozłączonyPrzykro mi, nie ma pliku pomocy "%s"Przykro mi, brak podpowiedziPrzykro mi, tylko %ld podpowiedziPrzykro mi, ta komenda jest wyłączona: nie mogłem załadować biblioteki Perla.Wczytaj skrypt VimaSponsoruj rozwój Vima!Wielkość stosu wzrastaStyl:Podstawienie Plik wymiany "Plik wymiany "%s" istnieje, czy go nadpisać?Plik wymiany już istnieje!Zaszyfrowany plik wymiany: "%s"Znalezione pliki wymiany:Karta %dOderwij to menuTest ekranu X nie powiódł sięDzięki za lot VimemTen plik został stworzony na Jedyne dopasowanieTa wersja Vima nie była skompilowanego z opcją różnic (diff).Ta komenda cscope nie wspomaga podzielenia okna.
Przełącz między implementacją/określeniemZbyt wiele argumentów "+komenda", "-c komenda" lub "--cmd komenda"Zbyt wiele flag złożeńZbyt wiele argumentówZbyt wiele opóźnionych prefiksówZbyt wiele opóźnionych prefiksów i/lub flag złożeńZa dużo regionów w %s wiersz %d: %sGóraCałkowita liczba słów: %dZbędny tekst w %s wiersz %d: %swprowadź  :quit<Enter>    zakończenie programuWpisz numer i <Enter> (puste anuluje): Wpisz numer i <Enter> lub wybierz myszą (pusta wartość anuluje): Nie mogę odczytać bloku 0 z Nie mogę zarejestrować nazwy serwera komendNieznaneNieznany argument opcjiNieznane flagi w %s wiersz %d: %sNieznany lub powtórzony element w %s wierszu %d: %sBez TytułuW góręUżyj Vima w wersji 3.0.
Używam CUT_BUFFER0 zamiast pustego wyboruUżywam klucza szyfrującego z pliku wymiany do pliku tekstowego.
Używam pliku wymiany "%s"VIM - UWAGAVIM - Szukaj i Zamień...VIM - Szukaj...VIM - Vi rozbudowanyBłąd VIMVIM: Nie mogę otworzyć okna!
VIMRUN.EXE nie znaleziono w twoim $PATH.
Zewnętrzne komendy nie będą wstrzymane po wykonaniu.
Zobacz  :help wim32-vimrun  aby otrzymać więcej informacji.Vim - wybór czcionkiVim E458: Nie mogę zarezerwować mapy kolorów, pewne kolory mogą być nieprawidłoweVim OstrzeżenieVIM - DialogBłąd VimaBłąd vima: ~aVim kończy pracę z %d
Vim jest open source i rozprowadzany darmowoVim: Załapał wydarzenie %s
Vim: Załapał śmiertelny sygnał
Vim: Załapał śmiertelny sygnał %s
Vim: Podwójny sygnał, wychodzę
Vim: Błąd podczas wczytywania wejścia, kończę...
Vim: Błąd: Nie można uruchomić gvim z NetBeans
Vim: Zakończono.
Vim: Główne okno nieoczekiwanie zniszczone
Vim: Wczytywanie ze stdin...
Vim: otrzymano żądanie "die" od menedżera sesji
Vim: OSTRZEŻENIE: Wejście nie pochodzi z terminala
Vim: OSTRZEŻENIE: Wyjście nie jest terminalem
Vim: zachowuję plik...
W10: OSTRZEŻENIE: Zmiany w pliku tylko do odczytuW11: OSTRZEŻENIE: Plik "%s" zmienił się od czasu rozpoczęcia edycjiW12: OSTRZEŻENIE: Plik "%s" zmienił się od czasu rozpoczęcia edycji, bufor w Vimie również został zmienionyW13: OSTRZEŻENIE: Plik "%s" został stworzony po rozpoczęciu edycjiW14: OSTRZEŻENIE: Przepełnienie listy nazw plikówW15: OSTRZEŻENIE: Niewłaściwy separator wierszy, pewnie brak ^MW16: OSTRZEŻENIE: Tryb pliku "%s" zmienił się od czasu rozpoczęcia edycjiW17: Arabski wymaga UTF-8, zrób ':set encoding=utf-8'W18: nieprawidłowy znak w nazwie grupyOSTRZEŻENIE: Plik zmienił się od czasu ostatniego odczytu!!!OSTRZEŻENIE: wykryto Windows 95/98/MEOSTRZEŻENIEOstrzeżenie: Nie mogę znaleźć listy słów "%s.%s.spl" lub "%s.ascii.spl"Ostrzeżenie: Nie mogę znaleźć listy słów "%s_%s.spl" lub "%s_ascii.spl"OSTRZEŻENIE: Nieoczekiwane wejście w inny bufor (sprawdź autokomendy)Ostrzeżenie: określono zarówno złożenia jak i NOBREAKOstrzeżenie: region %s nie jest wspieranyOSTRZEŻENIE: terminal nie wykonuje podświetlaniaPodczas otwierania pliku "Nie nadpiszę plikiem undo, nie mogę odczytać: %sNie nadpiszę, to nie jest plik undo: %sPozycja okna: X %d, Y %dDodano słowo do %sWyraz z innego wierszaUsunięto słowo z %sZapisać częściowo plik?Zapisuję plik sprawdzania pisowni %s ...Zapisuję plik sugestii %s ...Zapisuję plik undo: %sZapisuję plik viminfo "%s"Zła wartość CHECKCOMPOUNDPATTERN w %s wiersz %d: %sZła wartość COMPOUNDMIM w %s wiersz %d: %sZła wartość COMPOUNDRULES w %s wiersz %d: %sZła wartość COMPOUNDSYLMAX w %s wiersz %d: %sZła wartość COMPOUNDWORDMAX w %s wiersz %d: %sObserwacja połączenia XSMP ICE nie powiodła sięXSMP SmcOpenConnection nie powiodło się: %sXSMP obsługuje żądanie samozapisuXSMP stracił połączenie ICEXSMP otwiera połączenieXref maXref ma odniesienia odXref odnosi się doXref użyte przezTAKZerowy licznik[BŁĄD W PRZEMIANIE w linii %ld][brak CR]'[Skasowano][Urządzenie][Za duży plik][Pomoc][NIEDOZWOLONY BAJT w wierszu %ld][Niekompletny ostatni wiersz][Lista lokacji][NIE przemienione][Nowy KATALOG][Nowy Plik][Nowy Plik][Nowy][Bez nazwy][Brak zapisu od czasu ostatniej zmiany]
[Nie edytowany][Nie dozwolono][Podgląd][Lista quickfix][BŁĘDY W ODCZYCIE][RO][Błąd odczytu][Notka][blowfish][wywołania] wszystkich re/malloc()-ów %lu, wszystkich free()-ów %lu

[specjalny znak][przemienione][zakodowane][format dos-a][dos][fifo/socket][fifo][plik ..]       edytuj zadane pliki[długie wiersze rozdzielane][format maca][mac][noeol][tylko odczyt][socket][format unixa][unix]argument add()zai wykonać diff z oryginalnym plikiem aby sprawdzić zmiany)próba odniesienia do skasowanego buforapróba odniesienia do skasowanej kartypróba odniesienia do skasowanego oknaauto-usuwanie autokomendy: %s <buffer=%d>autokomenda %sprzed%ld wierszy skopiowanychskopiowano blok 1 wierszabufor jest nieważnyprzez Autor: Bram Moolenaar i Inni.wywołano inputrestore() więcej razy niż inputsave()wywołuję %snie mogę skasować atrybutów OutputObjectnie mogę odczytać wyjścia z 'charconvert'nie mogę zmienić trybu konsoli ?!
nie mogę stworzyć bufora/okna komendy: obiekt jest kasowanynie mogę skasować wierszanie mogę usunąć atrybutów vim.Dictionarynie mogę usunąć atrybutów vim.Listnie mogę dostać wierszanie mogę wprowadzić wierszanie mogę wprowadzić/dołączyć wierszanie mogę zmienić zablokowanego słownikanie mogę zmienić zablokowanej listynie mogę otworzyć nie mogę zarejestrować wstecznego wywołania komendy: bufor/okno już została skasowananie mogę zarejestrować wstecznego wywołania komendy: brak odniesienia do bufora/oknanie mogę zamienić wierszanie mogę zachować informacji cofanianie mogę ustawić atrybutu %snie mogę ustawić wiersza(y)nie mogę skopiować, mimo to kasuję1 zmianazmianyzamknijcmd: %spodłączonykontynuacja w %snie mogłem wczytać "%s"nie mogę otworzyć buforawykonanie cs_create_connection nie powiodło sięnie powiodło się setpgid cs_create_connectioncs_create_connection: fdopen dla fr_fp nie powiodło sięcs_create_connection: fdopen dla to_fp nie powiodło siękomendy cscope:
połączenie %s z cscope zostało zamkniętepozycja kursora poza buforemdomyślnie jest 'blok nr 1 skasowany?słownik jest zablokowanynie przeszedłem do określonej kartynie przeszedłem do określonego oknadlerror = "%s"nie wychodź edytora, dopóki plik nie został poprawnie zapisany!puste klucze nie są dozwolonezmienna środowiskowabłąd przy konwersji wartości Scheme do Vimaobsługa błędulista błędów %d z %d; %d błędówczekałem na 3-krotkę jako wynik imp.find_module(), a dostałem %sczekałem na 3-krotkę jako wynik imp.find_module(), a dostałem krotkę o wielkości %dczekałem na bytes() lub str(), a dostałem %sczekałem na int() lub coś co można zmienić na int(), ale dostałem %sczekałem na int(), long() lub coś co można zmienić na long(), ale dostałem %sczekałem na element sekwencyjny od długości 2, a dostałem sekwencję o długości %dczekałem na str() lub unicode(), a dostałem %soczekiwałem na obiekt vim.Buffer, a dostałem %soczekiwałem na obiekt vim.TabPage, a dostałem %soczekiwałem na obiekt vim.Window, a dostałem %swyrażenia wyłączone podczas kompilacjiargument extend()nie powiodło się dodanie elementu do listynie powiodło się dodanie klucza '%s' do słownikanie powiodła się zmiana katalogunie znaleziono okna na bieżącej karcienie powiodła się zmiana nazwy buforanie mogę uruchomić funkcji %suruchomienie kodu się nie powiodłonie przeszedłem do bufora %dmniej wierszyplik
nazwa pliku  / kontekst / wiersz
argument filter()skończono wczytywanie %szwalniam %ld wierszyfunkcja %s nie istniejekonstruktor funkcji nie akceptuje słów kluczowych jako argumentówbłąd gvimext.dllhashtab zmienił się w czasie iteracjipomocukryta opcjaw tropie ---
indeks musi być liczbą lub wycinkiem, nie %sargument insert()błąd wewnętrzny: przekazano referencję NULLbłąd wewnętrzny: nie powiodło się dodanie elementu do listybłąd wewnętrzny: nie powiodło się pobranie z listy Vima elementu %dwewnętrzny błąd: imp.find_module zwrócił krotkę z NULLbłąd wewnętrzny: błędny typ wartościbłąd wewnętrzny: w liście Vima brak elementu %dbłąd wewnętrzny: nieznany typ opcjiniepoprawny atrybut: %sniewłaściwy numer buforaniepoprawne wyrażenieniepoprawna nazwa zakładkijest urządzeniem (wyłączonym w opcji 'opendevice')jest katalogiemnie jest plikiemnie jest plikiem lub zapisywalnym przyrządemjest tylko do odczytu (wymuś poprzez !)przerwanie klawiaturywiersz %4ld:wiersz %6d, słowo %6d - %swiersz %ldwiersz %ld z %ld --%d%%-- kol wiersz %ld: %swiersz: %ld nie mogłem wczytać "%s"wiersz %ld: wczytywanie "%s"1 wiersz mniejnumer wiersza poza zakresemnumer wiersza poza zakresemkonstruktor listy nie akceptuje słów kluczowych jako argumentówindeks listy poza zakresemlista jest zablokowanawylogujargument map()nazwa zakładki musi być pojedynczym znakiemzakładka nie ustawionapasuje %dpasuje %d z %dmaksymalnie mch_get_shellsize: nie jest konsolą??
menu  Edytuj->Ustawienia globalne->Tryb wstawianiamenu Edytuj->Ustawienia globalne->Kompatybilność z Vimenu Pomoc->Sieroty        dla informacji to tym  menu Pomoc->Sponsoruj/Zarejestruj się dla informacjiminimalnie modeline1 wiersz więcejwięcej wierszynetbeans nie są obsługiwane przez to GUI
uruchomiono nową powłokę
niebrak połączeń z cscope
brak określonego dopasowanianie ma takiej kartynie ma takiego oknabrak synchronizacjinie Niedozwolone w piaskownicy Vimanie znaleziononie znaleziono w 'runtimepath': "%s"obecnie nie zaimplementowanoliczba zmiany   kiedy              zapisanoliczba musi być większa lub mniejsza niż zeroliczba musi być większa niż zerope_line_count wynosi zerolinia poleceń pre-vimrcwystąpił problem w czasie zmiany okienodczyt z gniazda Netbeansatrybut tylko do odczytu: buforzapisargument remove()zamień na %s (y/n/a/q/l/^E/^Y)?argument reverse()wiersz %d kolumna %dszukanie dobiło KOŃCA; kontynuacja od GÓRYszukanie dobiło GÓRY; kontynuacja od KOŃCApowłoka powłoka zwróciła %dzakończargument sort()wczytywanie "%s"stack_idx powinien być 0ciąg nie może zawierać znaków nowego wierszasynchronizacja komentarzy w stylu Cpoczątek synchronizacjiznacznik %d z %d%snazwa znacznikado %s z %swprowadź :help cp-default<Enter>  dla informacji to tym  wprowadź :help iccf<Enter>        dla informacji o tym  wprowadź :help register<Enter>        dla informacjiwprowadź :help sponsor<Enter>        dla informacjiwprowadź :help version8<Enter>    dla informacji o wersjiwprowadź :help windows95<Enter>   dla informacji to tym  wprowadź :help<Enter>  lub  <F1>  pomoc na bieżąco       wprowadź :q<Enter>                zakończenie programu   wprowadź :set nocp<Enter>         wartości domyślne Vim-anie można konwertować %s do słownika Vimanie można konwertować %s do struktury Vimanie mogę pobrać wartości opcjinie mogę wyzerować opcji globalnej %snie mogę wyzerować opcji %s, która nie ma wartości globalnejnieznanynieznana flaga: nieznana opcjanieznane vimOptionnie nazwana funkcja %s nie istniejewartość zbyt duża by zmieściła się w typie int Cwartość jest zbyt mała by zmieściła się w typie int Cwersja błąd vimaindeks okna poza zakresemokno jest nieważnez (klasycznym) GUI.z Carbon GUI.z Cocoa GUI.z GTK2 GUI.z GTK2-GNOME GUI.z GUI.z Photon GUI.z X11-Athena GUI.z X11-Motif GUI.z X11-neXtaw GUI.bez GUI.zapisywanie do urządzenia wyłączone w opcji 'opendevice'PK�j�ZN��XXvim80/lang/menu_sk.cp1250.vimnu�[���" Menu Translations:    Slovak

source <sfile>:p:h/menu_slovak_slovak_republic.1250.vim
PK�j�ZW��GGvim80/lang/menu_it.latin1.vimnu�[���" Menu Translations:	Italian

source <sfile>:p:h/menu_it_it.latin1.vim
PK�j�ZW5_�@@vim80/lang/menu_ru_ru.utf-8.vimnu�[���" Menu Translations:	Russian

source <sfile>:p:h/menu_ru_ru.vim
PK�j�ZBD��]2]2$vim80/lang/menu_sr_rs.iso_8859-2.vimnu�[���" Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change:	Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: Ivan Pe�i� on 2017-12-28 12:05+0400

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding iso8859-2

" Help menu
menutrans &Help		      Pomo&�
menutrans &Overview<Tab><F1>  &Pregled<Tab><F1>
menutrans &User\ Manual       &Uputstvo\ za\ korisnike
menutrans &How-to\ links      &Kako\ da\.\.\.
menutrans &Find		      &Na�i
menutrans &Credits	      &Zasluge
menutrans Co&pying	      P&reuzimanje
menutrans O&rphans	      &Siro�i�i
menutrans &Sponsor/Register   Sponzor/&Registrujte\ se
menutrans &Version	      &Verzija
menutrans &About	      &O\ programu

" File menu
menutrans &File			    &Datoteka
menutrans &Open\.\.\.<Tab>:e	    &Otvori\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otvori\ karticu\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew	    &Nova<Tab>:enew
menutrans &Close<Tab>:close	    &Zatvori<Tab>:close
menutrans &Save<Tab>:w		    &Sa�uvaj<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav  Sa�uvaj\ &kao\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.  Podeli\ i\ &uporedi\ sa\.\.\.
menutrans Split\ Patched\ &By\.\.\. Po&deli\ i\ prepravi\ sa\.\.\.
menutrans &Print		    �ta&mpaj
menutrans Sa&ve-Exit<Tab>:wqa	    Sa�uvaj\ i\ za&vr�i<Tab>:wqa
menutrans E&xit<Tab>:qa		    K&raj<Tab>:qa

" Edit menu
menutrans &Edit			 &Ure�ivanje
menutrans &Undo<Tab>u		 &Vrati<Tab>u
menutrans &Redo<Tab>^R		 &Povrati<Tab>^R
menutrans Rep&eat<Tab>\.	 P&onovi<Tab>\.
menutrans Cu&t<Tab>"+x		 Ise&ci<Tab>"+x
menutrans &Copy<Tab>"+y		 &Kopiraj<Tab>"+y
menutrans &Paste<Tab>"+gP	 &Ubaci<Tab>"+gP
menutrans &Paste<Tab>"+P	&Ubaci<Tab>"+gP
menutrans Put\ &Before<Tab>[p	 Stavi\ pre&d<Tab>[p
menutrans Put\ &After<Tab>]p	 Stavi\ &iza<Tab>]p
menutrans &Delete<Tab>x		 Iz&bri�i<Tab>x
menutrans &Select\ all<Tab>ggVG  Izaberi\ sv&e<Tab>ggVG
menutrans &Find\.\.\.		 &Na�i\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. Na�i\ i\ &zameni\.\.\.
menutrans Settings\ &Window	 P&rozor\ pode�avanja
menutrans Startup\ &Settings	 Po&de�avanja\ pri\ pokretanju		
menutrans &Global\ Settings	 Op&�ta\ pode�avanja
menutrans F&ile\ Settings	 Pode�avanja\ za\ da&toteke
menutrans &Shiftwidth		 &Pomeraj
menutrans Soft\ &Tabstop	 &Meka\ tabulacija
menutrans Te&xt\ Width\.\.\.	 &�irina\ teksta\.\.\.
menutrans &File\ Format\.\.\.	 &Vrsta\ datoteke\.\.\.
menutrans Show\ C&olor\ Schemes\ in\ Menu	Prika�i\ �eme\ bo&ja\ u\ meniju
menutrans C&olor\ Scheme	\�eme\ bo&ja
menutrans Show\ &Keymaps\ in\ Menu	Prika�i\ pres&likavanja\ tastature\ u\ meniju
menutrans &Keymap	Pres&likavanja\ tastature
menutrans Select\ Fo&nt\.\.\.	 Izbor\ &fonta\.\.\.

" Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Zanemari\ veli�inu\ &slova\ (da/ne)<Tab>:set\ ic!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Proveri\ prate�u\ &zagradu\ (da/ne)<Tab>:set\ sm!
menutrans &Context\ lines  Vidljivi\ &redovi
menutrans &Virtual\ Edit   Virtuelno\ &ure�ivanje
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!   Re�im\ u&nosa\ (da/ne)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!     '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
menutrans Ta&g\ Files\.\.\.   &Datoteke\ oznaka\.\.\.
menutrans Toggle\ &Toolbar    Linija\ sa\ &alatkama\ (da/ne)
menutrans Toggle\ &Bottom\ Scrollbar   Donja\ l&inija\ klizanja\ (da/ne)
menutrans Toggle\ &Left\ Scrollbar  &Leva\ linija\ klizanja\ (da/ne)
menutrans Toggle\ &Right\ Scrollbar &Desna\ linija\ klizanja\ (da/ne)

" Edit/Global Settings/Virtual Edit
menutrans Never		      Nikad
menutrans Block\ Selection    Izbor\ bloka
menutrans Insert\ mode	      Re�im\ unosa
menutrans Block\ and\ Insert  Blok\ i\ unos
menutrans Always	      Uvek

" Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!   Prika�i\ &numeraciju\ linija\ (da/ne)<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!   Prika�i\ Relati&vnu\ numeraciju\ linija\ (da/ne)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!	   Re�im\ &liste\ (da/ne)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!	   Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!   Prelomi\ &na\ re�\ (da/ne)<Tab>:set\ lbr!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!	   Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!	Auto-&uvla�enje\ (da/ne)<Tab>:set\ ai!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!	   &C-uvla�enje\ (da/ne)<Tab>:set\ cin!

" Edit/Keymap
menutrans None Bez\ preslikavanja

" Tools menu
menutrans &Tools	&Alatke
menutrans &Jump\ to\ this\ tag<Tab>g^] Sko�i\ na\ &ovu\ oznaku<Tab>g^]
menutrans Jump\ &back<Tab>^T	 Sko�i\ &natrag<Tab>^T
menutrans Build\ &Tags\ File	 Izgradi\ &datoteku\ oznaka
menutrans &Spelling	 Pra&vopis
menutrans &Folding	      &Podvijanje
menutrans Create\ &Fold<Tab>zf		  S&tvori\ podvijutak<Tab>zf
menutrans &Delete\ Fold<Tab>zd		  O&bri�i\ podvijutak<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	  Obri�i\ sve\ po&dvijutke<Tab>zD
menutrans Fold\ column\ &width		  �irina\ &reda\ podvijutka
"menutrans &Diff		      &Upore�ivanje
menutrans &Make<Tab>:make     'mak&e'<Tab>:make
menutrans &List\ Errors<Tab>:cl     Spisak\ &gre�aka<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!  Sp&isak\ poruka<Tab>:cl!
menutrans &Next\ Error<Tab>:cn	    S&lede�a\ gre�ka<Tab>:cn
menutrans &Previous\ Error<Tab>:cp  Pre&thodna\ gre�ka<Tab>:cp
menutrans &Older\ List<Tab>:cold    Stari\ spisa&k<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew    No&vi\ spisak<Tab>:cnew
menutrans Error\ &Window	    Prozor\ sa\ g&re�kama
menutrans Se&t\ Compiler	    I&zaberi\ prevodioca
menutrans &Convert\ to\ HEX<Tab>:%!xxd	   Pretvori\ u\ &HEKS<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r    Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu	Prika�i\ pode&�avanja\ prevodioca\ u\ meniju

" Tools/Spelling
menutrans &Spell\ Check\ On	&Uklju�i\ proveru\ pravopisa
menutrans Spell\ Check\ &Off	&Isklju�i\ proveru\ pravopisa
menutrans To\ &Next\ Error<Tab>]s	Idi\ na\ &slede�u\ gre�ku<Tab>]s
menutrans To\ &Previous\ Error<Tab>[s	Idi\ na\ &prethodnu\ gre�ku<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	Predlo�i\ isp&ravke<Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall	P&onovi\ ispravku<Tab>:spellrepall
menutrans Set\ Language\ to\ "en"	Postavi\ jezik\ na\ "en"
menutrans Set\ Language\ to\ "en_au" 	Postavi\ jezik\ na\ "en_au"
menutrans Set\ Language\ to\ "en_ca" 	Postavi\ jezik\ na\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" 	Postavi\ jezik\ na\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" 	Postavi\ jezik\ na\ "en_nz"
menutrans Set\ Language\ to\ "en_us" 	Postavi\ jezik\ na\ "en_us"
menutrans &Find\ More\ Languages	Prona�i\ jo�\ jezika 

" Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi   &Omogu�i/prekini\ podvijanje<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	  &Poka�i\ red\ sa\ kursorom<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Poka�i\ &samo\ red\ sa\ kursorom<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm   &Zatvori\ vi�e\ podvijutaka<Tab>zm
menutrans &Close\ all\ folds<Tab>zM    Zatvori\ s&ve\ podvijutke<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr    Otvori\ vi�&e\ podvijutaka<Tab>zr
menutrans &Open\ all\ folds<Tab>zR     O&tvori\ sve\ podvijutke<Tab>zR
menutrans Fold\ Met&hod		       &Na�in\ podvijanja
menutrans Fold\ Col&umn\ Width	�irina\ kolone\ ispred\ podvijutaka

" Tools/Folding/Fold Method
menutrans M&anual	&Ru�no
menutrans I&ndent	&Uvu�enost
menutrans E&xpression	&Izraz
menutrans S&yntax	&Sintaksa
"menutrans &Diff
menutrans Ma&rker	&Oznaka

" Tools/Diff
menutrans &Update	&A�uriraj
menutrans &Get\ Block	&Prihvati\ blok\ izmena
menutrans &Put\ Block	Pre&baci\ blok\ izmena

" Tools/Error Window
menutrans &Update<Tab>:cwin   &A�uriraj<Tab>:cwin
menutrans &Open<Tab>:copen    &Otvori<Tab>:copen
menutrans &Close<Tab>:cclose  &Zatvori<Tab>:cclose

" Bufers menu
menutrans &Buffers	   &Baferi
menutrans &Refresh\ menu   &A�uriraj
menutrans Delete	   &Obri�i
menutrans &Alternate	   A&lternativni
menutrans &Next		   &Slede�i
menutrans &Previous	   &Prethodni
menutrans [No\ File]	   [Nema\ datoteke]

" Window menu
menutrans &Window		    &Prozor
menutrans &New<Tab>^Wn		    &Novi<Tab>^Wn
menutrans S&plit<Tab>^Ws	    &Podeli<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^    Podeli\ sa\ &alternativnim<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv   Podeli\ &uspravno<Tab>^Wv
menutrans Split\ File\ E&xplorer    Podeli\ za\ pregled\ &datoteka
menutrans &Close<Tab>^Wc	    &Zatvori<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo  Zatvori\ &ostale<Tab>^Wo
"menutrans Ne&xt<Tab>^Ww       &Slede�i<Tab>^Ww
"menutrans P&revious<Tab>^WW	  P&rethodni<Tab>^WW
menutrans Move\ &To		    Pre&mesti
menutrans Rotate\ &Up<Tab>^WR	    &Kru�no\ nagore<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr     Kru�no\ nadol&e<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=	    &Iste\ veli�ine<Tab>^W=
menutrans &Max\ Height<Tab>^W_	    Maksimalna\ &visina<Tab>^W_
menutrans M&in\ Height<Tab>^W1_     Minima&lna\ visina<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|	    Maksimalna\ &�irina<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|     Minimalna\ �i&rina<Tab>^W1\|

" Window/Move To
menutrans &Top<Tab>^WK		 &Vrh<Tab>^WK
menutrans &Bottom<Tab>^WJ	 &Podno�je<Tab>^WJ
menutrans &Left\ side<Tab>^WH	 U&levo<Tab>^WH
menutrans &Right\ side<Tab>^WL	 U&desno<Tab>^WL

" The popup menu
menutrans &Undo		      &Vrati
menutrans Cu&t		      &Iseci
menutrans &Copy		      &Kopiraj
menutrans &Paste	      &Ubaci
menutrans &Delete	      I&zbri�i
menutrans Select\ Blockwise   Biraj\ b&lokovski
menutrans Select\ &Word       Izaberi\ &re�
menutrans Select\ &Sentence       Izaberi\ r&e�enicu
menutrans Select\ Pa&ragraph       Izaberi\ &paragraf
menutrans Select\ &Line       Izaberi\ r&ed
menutrans Select\ &Block      Izaberi\ &blok
menutrans Select\ &All	      Izaberi\ &sve

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open     U�itaj
    tmenu ToolBar.Save     Sa�uvaj
    tmenu ToolBar.SaveAll  Sa�uvaj sve
    tmenu ToolBar.Print    �tampaj
    tmenu ToolBar.Undo     Vrati
    tmenu ToolBar.Redo     Povrati
    tmenu ToolBar.Cut      Iseci
    tmenu ToolBar.Copy     Kopiraj
    tmenu ToolBar.Paste    Ubaci
    tmenu ToolBar.Find     Na�i
    tmenu ToolBar.FindNext Na�i slede�i
    tmenu ToolBar.FindPrev Na�i prethodni
    tmenu ToolBar.Replace  Zameni
    tmenu ToolBar.New      Novi
    tmenu ToolBar.WinSplit Podeli prozor
    tmenu ToolBar.WinMax   Maksimalna visina
    tmenu ToolBar.WinMin   Minimalna visina
    tmenu ToolBar.WinVSplit   Podeli uspravno
    tmenu ToolBar.WinMaxWidth Maksimalna �irina
    tmenu ToolBar.WinMinWidth Minimalna �irina
    tmenu ToolBar.WinClose Zatvori prozor
    tmenu ToolBar.LoadSesn U�itaj seansu
    tmenu ToolBar.SaveSesn Sa�uvaj seansu
    tmenu ToolBar.RunScript   Izvr�i spis
    tmenu ToolBar.Make     'make'
    tmenu ToolBar.Shell    Operativno okru�enje
    tmenu ToolBar.RunCtags Napravi oznake
    tmenu ToolBar.TagJump  Idi na oznaku
    tmenu ToolBar.Help     Pomo�
    tmenu ToolBar.FindHelp Na�i obja�njenje
  endfun
endif

" Syntax menu
menutrans &Syntax &Sintaksa
menutrans &Show\ File\ Types\ in\ Menu  Prika�i\ tipove\ datoteka\ u\ &meniju
menutrans Set\ '&syntax'\ only   Pode&si\ samo\ 'syntax' 
menutrans Set\ '&filetype'\ too  Podesi\ &tako�e\ i\ 'filetype'
menutrans &Off       &Isklju�eno
menutrans &Manual    &Ru�no
menutrans A&utomatic    &Automatski
menutrans on/off\ for\ &This\ file     Da/ne\ za\ ovu\ &datoteku
menutrans Co&lor\ test     Provera\ &boja
menutrans &Highlight\ test Provera\ isti&canja
menutrans &Convert\ to\ HTML  Pretvori\ &u\ HTML

" dialog texts
let menutrans_help_dialog = "Unesite naredbu ili re� �ije poja�njenje tra�ite:\n\nDodajte i_ za naredbe unosa (npr. i_CTRL-X)\nDodajte c_ za naredbe komandnog re�ima (npr. s_<Del>)\nDodajte ' za imena opcija (npr. 'shiftwidth')"

let g:menutrans_path_dialog = "Unesite put pretrage za datoteke\nRazdvojite zarezima imena direktorijuma."

let g:menutrans_tags_dialog = "Unesite imena datoteka sa oznakama\nRazdvojite zarezima imena."

let g:menutrans_textwidth_dialog = "Unesite novu �irinu teksta (0 spre�ava prelom)"

let g:menutrans_fileformat_dialog = "Izaberite format zapisa datoteke"

let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Otka�i"

let menutrans_no_file = "[Nema datoteke]"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: tw=0 keymap=serbian
PK�j�Z�,����vim80/lang/README.txtnu�[���Language files for Vim

Translated menus
----------------

The contents of each menu file is a sequence of lines with "menutrans"
commands.  Read one of the existing files to get an idea of how this works.

More information in the on-line help:

	:help multilang-menus
	:help :menutrans
	:help 'langmenu'
	:help :language

The "$VIMRUNTIME/menu.vim" file will search for a menu translation file.  This
depends on the value of the "v:lang" variable.

	"menu_" . v:lang . ".vim"

When the 'menutrans' option is set, its value will be used instead of v:lang.

The file name is always lower case.  It is the full name as the ":language"
command shows (the LC_MESSAGES value).

For example, to use the Big5 (Taiwan) menus on MS-Windows the $LANG will be

	Chinese(Taiwan)_Taiwan.950

and use the menu translation file:

	$VIMRUNTIME/lang/menu_chinese(taiwan)_taiwan.950.vim

On Unix you should set $LANG, depending on your shell:

	csh/tcsh:	setenv LANG "zh_TW.Big5"
	sh/bash/ksh:	export LANG="zh_TW.Big5"

and the menu translation file is:

	$VIMRUNTIME/lang/menu_zh_tw.big5.vim

The menu translation file should set the "did_menu_trans" variable so that Vim
will not load another file.


AUTOMATIC CONVERSION

When Vim was compiled with multi-byte support, conversion between latin1 and
UTF-8 will always be possible.  Other conversions depend on the iconv
library, which is not always available.
For UTF-8 menu files which only use latin1 characters, you can rely on Vim
doing the conversion.  Let the UTF-8 menu file source the latin1 menu file,
and put "scriptencoding latin1" in that one.
Other conversions may not always be available (e.g., between iso-8859-# and
MS-Windows codepages), thus the converted menu file must be available.


Translated messages
-------------------

This requires doing "make install" in the "src" directory.  It will compile
the portable files "src/po/*.po" into binary ".mo" files and place them in the
right directory.
PK�j�Z��w��vim80/lang/menu_ca_es.utf-8.vimnu�[���" Menu translations for Catalan
"
" Maintainer:	Ernest Adrogu� <eadrogue@gmx.net>
" Last Change:	29 Dec 2003
"
source <sfile>:p:h/menu_ca_es.latin1.vim

PK�j�Z���`m'm'$vim80/lang/menu_sk_sk.iso_8859-2.vimnu�[���" Menu Translations:	Slovak
" Translated By:	Martin Lacko <lacko@host.sk>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding iso-8859-2

" Help menu
menutrans &Help			&Pomocn�k
menutrans &Overview<Tab><F1>	&Preh�ad<Tab><F1>
menutrans &User\ Manual		Po&u��vate�sk�\ manu�l
menutrans &How-to\ links	&Tipy
menutrans &Find\.\.\.		&N�js�\.\.\.
menutrans &Credits		Po�&akovanie
menutrans O&rphans		Si&roty
menutrans Co&pying		&Licencia
menutrans &Version		&Verzia
menutrans &About		&O\ programe

" File menu
menutrans &File				&S�bor
menutrans &Open\.\.\.<Tab>:e		&Otvori�\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Ot&vori�\ v\ novom\ okne\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		&Nov�<Tab>:enew
menutrans &Close<Tab>:close		&Zatvori�<Tab>:close
menutrans &Save<Tab>:w			&Ulo�i�<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Ulo�i�\ &ako\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	Otvor&i�\ porovnanie\ v\ novom\ okne\ s\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Otvo&ri�\ aktualizovan�\ s\.\.\.
menutrans &Print			&Tla�
menutrans Sa&ve-Exit<Tab>:wqa		U&lo�i�-Koniec<Tab>:wqa
menutrans E&xit<Tab>:qa			&Koniec<Tab>:qa

" Edit menu
menutrans &Edit				&�pravy
menutrans &Undo<Tab>u			&Sp�<Tab>u
menutrans &Redo<Tab>^R			Z&ru�i�\ sp�<Tab>^R
menutrans Rep&eat<Tab>\.		&Opakova�<Tab>\.
menutrans Cu&t<Tab>"+x			&Vystrihn��<Tab>"+x
menutrans &Copy<Tab>"+y			&Kop�rova�<Tab>"+y
menutrans &Paste<Tab>"+gP		V&lo�i�<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vlo�i�\ &pred<Tab>[p
menutrans Put\ &After<Tab>]p		Vlo�i�\ za<Tab>]p
menutrans &Select\ all<Tab>ggVG		Vy&bra�\ v�etko<Tab>ggVG
menutrans &Delete<Tab>x			Vy&maza�<Tab>x
menutrans &Find\.\.\.			&N�js�\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	N&ahradi�\.\.\.
menutrans Settings\ &Window		Mo&�nosti
menutrans &Global\ Settings		&Glob�lne mo�nosti
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Prepn��\ paletu\ zv�raz�ovania<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	Prepn��\ &ignorovanie ve�kosti<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!	Prepn��\ &uk�za�\ zhodu<Tab>:set\ sm!
menutrans &Context\ lines		&Kontextov�\ riadky
menutrans &Virtual\ Edit		&Virtu�lne �pravy
menutrans Never				Nikdy
menutrans Block\ Selection		Blokov�\ v�ber
menutrans Insert\ mode			Re�im\ vkladania
menutrans Block\ and\ Insert		Blok\ a\ vkladanie
menutrans Always			V�dy
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	Prepn��\ re�i&m\ vkladania<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Prepn��\ vi\ kompatibilitu<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		Cesta\ &h�adania\.\.\.
menutrans Ta&g\ Files\.\.\.		Ta&gov� s�bory\.\.\.
menutrans Toggle\ &Toolbar		Prepn��\ &panel
menutrans Toggle\ &Bottom\ Scrollbar	Prepn��\ spodn�\ posuvn�k
menutrans Toggle\ &Left\ Scrollbar	Prepn��\ �av�\ posuvn�k
menutrans Toggle\ &Right\ Scrollbar	Prepn��\ prav�\ posuvn�k
menutrans F&ile\ Settings		Nastavenia\ s�boru
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Prepn��\ ��slova&nie\ riadkov<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Prepn��\ re�im\ &zoznamu<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Prepn��\ z&alamovanie\ riadkov<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Prepn��\ za&lamovanie\ slov<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Prepn��\ roz��r&en�\ tabul�tory<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Prepn��\ automatick�\ &odsadzovanie<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Prepn��\ &C-odsadzovanie<Tab>:set\ cin!
menutrans &Shiftwidth			&��rka\ �iftu
menutrans Soft\ &Tabstop		&Softv�rov�\ tabul�tor
menutrans Te&xt\ Width\.\.\.		��rka\ te&xtu\.\.\.
menutrans &File\ Format\.\.\.		&Form�t\ s�boru\.\.\.
menutrans C&olor\ Scheme		Far&ebn�\ sch�ma

" Programming menu
menutrans &Tools			&N�stroje
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Sko�i�\ na\ zna�ku<Tab>g^]
menutrans Jump\ &back<Tab>^T		Sk&o�i�\ sp�<Tab>^T
menutrans Build\ &Tags\ File		&Vytvori�\ s�bor\ zna�iek
menutrans &Folding			&Vn�ranie
menutrans &Enable/Disable\ folds<Tab>zi	Zapn��/Vypn��\ vn�rani&e<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	Zobrazi�\ kurzoro&v�\ riadok<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	Zobrazi�\ iba\ kurzorov�\ riadok<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	Zatvori�\ viac \vnoren�<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	Zatvor&i�\ v�etky\ vnorenia<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	O&tvori�\ viac\ vnoren�<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	&Otvori�\ v�etky\ vnorenia<Tab>zR
menutrans Fold\ Met&hod			Met�&da\ vn�rania
menutrans M&anual			M&anu�lne
menutrans I&ndent			Odsade&nie
menutrans E&xpression			&V�raz
menutrans S&yntax			S&yntax
menutrans &Diff				Roz&diel
menutrans Ma&rker			Zna&�kova�
menutrans Create\ &Fold<Tab>zf		Vyt&vori�\ vnorenie<Tab>zf
menutrans &Delete\ Fold<Tab>zd		V&ymaza�\ vnorenie<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	Vymaza�\ v�etky\ vnorenia<Tab>zD
menutrans Fold\ column\ &width		��rka\ &vkladan�ho\ st�pca
menutrans &Diff				&Rozdiely
menutrans &Update			Akt&ualizova�
menutrans &Get\ Block			Zob&ra�\ blok
menutrans &Put\ Block			&Vlo�i�\ blok
menutrans Error\ &Window		Chybov�\ &okno
menutrans &Update<Tab>:cwin		Akt&ualizova�<Tab>:cwin
menutrans &Open<Tab>:copen		&Otvori�<Tab>:copen
menutrans &Close<Tab>:cclose		&Zatvori�<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	&Konvertova�\ do\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	Konve&rtova�\ sp�<Tab>:%!xxd\ -r
menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		V�pis\ &ch�b<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	V�p&is\ spr�v<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		�a&l�ia\ chyba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Predch�dzaj�ca\ chyba<Tab>:cp
menutrans &Older\ List<Tab>:cold	Sta&r��\ zoznam<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	Nov��\ &zoznam<Tab>:cnew
menutrans Error\ &Window<Tab>:cwin	Chybov�\ o&kno<Tab>:cwin
menutrans &Set\ Compiler		Vyberte\ k&ompil�tor
menutrans Convert\ to\ HEX<Tab>:%!xxd	Prvies�\ do\ �es&tn�stkov�ho\ form�tu<Tab>:%!xxd
menutrans Convert\ back<Tab>:%!xxd\ -r	Pr&evies�\ sp�<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers		&Vyrovn�vacia\ pam�
menutrans &Refresh\ menu	Obnovi�
menutrans &Delete		Vymaza�
menutrans &Alternate		Zmeni�
menutrans &Next			�&al�ia
menutrans &Previous		&Predch�dzaj�ca
menutrans [No File]		[�iadny\ s�bor]

" Window menu
menutrans &Window			&Okn�
menutrans &New<Tab>^Wn			&Nov�<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Rozdeli�<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Ro&zdeli�\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Rozdeli�\ &vertik�lne<Tab>^Wv
menutrans Split\ File\ E&xplorer	Otvori�\ pri&eskumn�ka
menutrans &Close<Tab>^Wc		Zatvor&i�<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zatvori�\ i&n�<Tab>^Wo
menutrans Move\ &To			Presun�&�
menutrans &Top<Tab>^WK			Na&hor<Tab>^WK
menutrans &Bottom<Tab>^WJ		Nado&l<Tab>^WJ
menutrans &Left\ side<Tab>^WH		V&�avo<Tab>^WJ
menutrans &Right\ side<Tab>^WL		Vprav&o<Tab>^WL
menutrans Ne&xt<Tab>^Ww			�&al�ie<Tab>^Ww
menutrans P&revious<Tab>^WW		&Predch�dzaj�ce<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		Rovnak�\ v��&ka<Tab>^W=
menutrans &Max\ Height<Tab>^W_		&Maxim�lna\ v��ka<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Minim�lna\ v�&�ka<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Maxim�lna\ ��rka<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minim�lna �irka<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		Rotova&�\ nahor<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotova�\ na&dol<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		Vy&bra�\ p�smo\.\.\.

" The popup menu
menutrans &Undo			&Sp�
menutrans Cu&t			&Vystrihn��
menutrans &Copy			&Kop�rova�
menutrans &Paste		V&lo�i�
menutrans &Delete		V&ymaza�
menutrans Select\ Blockwise	Vybra�\ blokovo
menutrans Select\ &Word		Vybra�\ sl&ovo
menutrans Select\ &Line		Vybra�\ &riadok
menutrans Select\ &Block	Vybra�\ &blok
menutrans Select\ &All		Vybra�\ v�&etko

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Otvori� s�bor
    tmenu ToolBar.Save		Ulo�i� s�bor
    tmenu ToolBar.SaveAll	Ulo�i� v�etky
    tmenu ToolBar.Print		Tla�
    tmenu ToolBar.Undo		Sp�
    tmenu ToolBar.Redo		Opakova�
    tmenu ToolBar.Cut		Vystrihn��
    tmenu ToolBar.Copy		Kop�rova�
    tmenu ToolBar.Paste		Vlo�i�
    tmenu ToolBar.Find		N�js�...
    tmenu ToolBar.FindNext	N�js� �al�ie
    tmenu ToolBar.FindPrev	N�js� predch�dzaj�ce
    tmenu ToolBar.Replace	Nahradi�...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Nov� okno
      tmenu ToolBar.WinSplit	Rozdeli� okno
      tmenu ToolBar.WinMax	Maximalizova� okno
      tmenu ToolBar.WinMin	Minimalizova� okno
      tmenu ToolBar.WinVSplit	Rozdeli� okno vertik�lne
      tmenu ToolBar.WinMaxWidth	Maximalizova� ��rku okna
      tmenu ToolBar.WinMinWidth	Minimalizova� ��rku okna
      tmenu ToolBar.WinClose	Zatvori� okno
    endif
    tmenu ToolBar.LoadSesn	Na��ta� sedenie
    tmenu ToolBar.SaveSesn	Ulo�i� sedenie
    tmenu ToolBar.RunScript	Spusti� skript
    tmenu ToolBar.Make		Spusti� make
    tmenu ToolBar.Shell		Spusti� �el
    tmenu ToolBar.RunCtags	Spusti� ctags
    tmenu ToolBar.TagJump	Sko�i� na tag pod kurzorom
    tmenu ToolBar.Help		Pomocn�k
    tmenu ToolBar.FindHelp	N�js� pomocn�ka k...
  endfun
endif

" Syntax menu
menutrans &Syntax		&Syntax
menutrans Set\ '&syntax'\ only	Nastavi�\ iba\ 'syntax'
menutrans Set\ '&filetype'\ too	Nastavi�\ aj\ 'filetype'
menutrans &Off			&Vypn��
menutrans &Manual		&Ru�ne
menutrans A&utomatic		A&utomaticky
" menutrans o&n\ (this\ file)	&Zapn��\ (pre\ tento\ s�bor)
" menutrans o&ff\ (this\ file)	Vyp&n��\ (pre\ tento\ s�bor )
menutrans on/off\ for\ &This\ file	Zapn��/vypn��\ pre\ &tento\ s�bor
menutrans Co&lor\ test		Test\ &farieb
menutrans &Highlight\ test	&Test\ zv�raz�ovania
menutrans &Convert\ to\ HTML	&Previes�\ do\ HTML

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z4��)šš'vim80/lang/ru.cp1251/LC_MESSAGES/vim.monu�[�����[�:�	�u0�1�
B�P�Y�'o�/��ǝݝ�"	�0,�]�j�+r���"��ܟ�5��3�P�l��������;[�����̡���	��+�A�\�t�����0��.�/�0I�
z�������
ϣݣ
�$��$"�G� X�y�@��Dɤ�"�!=�_�"~���"������@�\�w���������/˦8��,4�=a�����Ч���0
�1>�1p�����̨�-�0�P�e�w�����3ĩ3��,�I�a�y�����
��ɪت���
,�$:�_�"k�L�� ۫���;,�h�w�#��	����ˬӬ��
���"�3�?�W�	o�y�����!����̭���3�;� C�d������®ˮ
Ӯ�6�%�B�[�!z���
����	��ɯ�����&��	&�"0�*S�~���=��ڰ
�����
��.�	5�
?�
M�X�
a�l�~�����5���-��1-�&_�������Ųز���$.�S�c�
w���������ϳ����+�C�T�`�l�{�������
ǴҴߴ�
����7(�`�m���������������õ=ǵ2�8�A�G�P�'a�-��2��5� �=�?V�����÷+ҷ��	
��1�J�[�q�-����$ݸ�
"�-�=�Q�]�?t���2ù!��%�9>�Ex�9��C��K<�I��Hһ;�6W�8��3Ǽ<��-8�6f���%��ݽ�� �:�&J�,q�#��4¾ ��@�-Y�0��:��;�/�"O�r�>��)�>�<+�h�t�#��:��'�9�U�$n�9��4��;� >�>_�1��/���-�K�.Z�B��"��2��4"�*W���+��%��'��(�<C�E��.��-��$#�H�<a���*��&��
� �4;�p�����������������
��
#�1�:�"B�e�q���������)���$�3�B�J�c�1|�?��������)�:�P�k�~�X��%����5�S�l�����������$���!�:�X�^�n�r���"����$���#"�F�M�h�Q��������	�� :�[�4{�����	��?��P�c�
p�
~�.����-����-�$L�.q�����.��H	�R�r���O��O��
:�CH�	������!��������3�26�!i�(���� ��"��E�W�%t�#��-����
�'�&C�j�|���������'���)8�+b�@��-����5�P�m�����/��9��#�E@���-��7��#� +�:L�5��&��"��&�$.�#S�!w�=��5�� 
�(.�7W�!��,������� )�#J�&n������������3�R�0q�$��!�� ��(
�43�,h����������� �(�E�1_���!��%��%��%�B� [�|���?��&��#�>�
Z�Ah�%��"��"��9�'P�(x�2��*��!��!!�)C�%m�!��4��:��&%�;L�;��)��0���>�Z�s���#��!��8��&�#D�h� ��/��"����-�3�D�]�/u�*��(��#���9�T�q���>������"3�V�u�����!����9��15�)g�1��%��7��!�A;�?}�������!
�,�H�c�0��4��$��)
�N7�,��&��L��'�?�U�8l���$������,� G� h�#������7��N�i�����$��!��3�,8�2e�%����"����#�>�]�z���B����0�!B� d�<��+�����+#�2O�$����,��H
�,V�����"������7�V�9u�����0��#,�'P�x���,��&����+!�2M�-��(���"�'�';�,c���.���#��,�WG�)��"�,�%�?� \�}�2��2�2��/�!L�n���2��5�'�#-�)Q�3{�$��%����1�F�f�$~�&�� �'�*#>'b%��3�!&+Eq*�-�$�.Mi| � �$�$�)#Me,{��%��=\x��'��
$*#O0s.�0�$A\t��-� �7 )X�$�(��%$<a��'��'� 	@	X	r	 �	7�	0�	
#3
W
"w
(�
!�
�
-116c5��.�*1E9w�*�&�+#
,O
+|
4�
<�
+*Fq������$7"Fi|�����;Uq���:�=<I6�<��"6+K)w4�5�43Au0� ��D�P1%����5Gg!�����&:'W�!���"	,1As��"���'CWj������7Tn*�)��� /J[6t#��)�&K<� ����'AV"p&�#���+%D7j5���,AWr)� ��� :Vu�0��� - 4L .� $� )� 1� ;1!m!.}!*�!�!$�!"%7",]"�"�"�"&�"-�"&!#H# d#�#�#�#+�# $$$?7$)w$�$6�$#�$2%9I%>�%8�%1�%-&)K&)u& �&)�&�&)'*/'"Z'}'#�'"�'"�')(*(J(%h( �(+�($�())!=)0_)�)�)�)�)"�)!*9A*8{*$�*/�*	+"+B++T+%�+1�+)�+,,'0,%X,~,&�,!�,%�,'-%,-'R--z-2�-�-�-$.*.J.h."�.�.�.!�.1
/&</c/!�/!�/�/(�/00+<08h0�07�0E�0!>1`1s1(�10�1#�1
2$2C2#^2*�2�2 �2�2�2032G30z3�3+�3)�3$4/C4s4�4'�4)�4,�4585 V5w5�5-�5,�56/ 6+P6'|6!�6 �60�67!07,R77�7(�7�7�70�7.08_889�8�8�89*49_93~9�9%�92�90$:!U:;w:R�:;*%;P;i;(�;�;+�;+�;!< <<"]<%�< �<+�<"�<+=B=.b=4�=I�=)>):>6d>6�>-�>(?/)?&Y?<�?)�?*�?@7,@d@{@�@*�@�@A0A/OA!A"�A*�A/�A;B[BzBQ�B.�BC$4C#YC0}C#�C�C2�C6$D[D+{D%�DX�D;&E/bE;�E�E!�E%F"6FNYF.�F$�F&�FT#G#xG"�GB�GH!H>HXHxH)�H'�H�HI'IGI	OIYIqI�I�I�I#�I	�I�IJJ.2JaJ.xJ6�J�J�J6�J#/K
SK&^K	�K�K�K�K�K�K �K%L!<L
^LiL(L��LaSM�M+�Ma�M\NkNqN(xN
�N	�N%�N�N
�N�N&O&8O_O(|O�O	�O�O	�O�O�O�OP&PDP	YP2cP*�P�P�P�PQ(Q
>QIQ	XQbQnQzQ�Q#�Q(�Q�Q	R	R%R=R
[RfR|R2�R�R�R�R�R	SS$$SIS/fS�S'�S�S�S
�S$�S#T5TFT STtT�T�T�T!�T�T�T(U0U'@UhUkU|U�U�U�U#�U�UV&V..V
]VhV	~V�V�V�V�V'�VW#W
/W=WNWfWzW�W�W�W�W�WXX;X9TX9�X�X�X�X�X
YYY2YEY[Y(yY�Y�Y�Y�Y�Y
�Y	�YZZ1ZLZ[Z9hZ
�Z�Z�Z�Z�Z&[7[V[u[�[?�[Q�[	>\H\^\q\"�\�\�\�\�\�\
]
]-])3]']]�]�]�]F�]^0^I^^^e^q^(}^�^�^�^�^�^_+_A_Z_0i_;�_ �_>�_6`N`f`1�`"�`�`�`�`a)5a=_a�a(�a�a�a$b0(bYbbbeb+{b2�b�b�b�bc+c	=cGc�`c�cF�cAd
Md	Xd
bdpd+�d�d%�d0�d(eGe1ce+�e*�e&�e9fMMf>�f)�f5gA:g4|g$�g6�g"
h0h<8h<uh?�h/�h "i"Cifi2{i0�i�i�ij/jDjXjrj�j�j2�j)�j+k,Jk-wk �k!�k#�kl%l
=lHlYlhlul
yl�l�l	�l�l�l�l�l�lmm+m
;m
FmQm	Wmamm�m	�m�m
�m�m
�m	�m5�mn/n	;nEnRn
Xnfn&mn�n�n�n�n
�n�n
�n�n�n�n9oB:oD}o"�o$�o"
p)-pWpfpmp�p�p�p�p1�p
�p$
q"/qRq<qq�q'�q!�qrr.rHrgr�rH�rC�rs.sKscsvs�s�s�s�s	�s�s�s�s �s#t-9t-gt�t�t�t�t�tu(u&Auhu=wu�u�u%�u
vv88vFqv.�vD�vM,w@zw0�w&�w'x&;x$bx�x�x$�x�x-�x"y:yTyky�y�y�y�y�y�y�y6
zAz Sztz
yz�z"�z�z%�z*�z.{8I{"�{#�{%�{#�{|)|?|R|/d|�|
�| �| �|�|
}})}2}P}]}}}	�}�}�}2�}�}~&~-~$<~a~n~w~�~#�~1�~1�~11I{�	�
�(�����
��
*�5�:�
Y� d���(��'€ ��!�8�X�r�	����"��́߁$�$�:�A�S�\�v�
������ɂ�����.�.G�.v�.��.ԃ.�.2�.a�.��&��%�� '�:H�����������"˅)�)�B�	K�U�r���������Ȇ	݆���
�!�6�3C�8w�#��
Ԉ��<	�>F�������6lj1��0�?�-H�v�/��‹֋7�*&�Q�!q�
�������C��֍"��
.�<�K�]� m�*����Ԏ��%"�#H�$l�%����ȏ�"�&�D�b�/r�1��Ԑ��J!�Nl���Ǒ:�7 �(X�7��(������2#�%V�|���������@ѓI�2\�F��֔(��2�N�Gj�@��@�4�I�^�x�&����Ӗ�1��'+�'S�>{�;����'�'<�d�|���
��
��'�����'	�1�0E�v�6��L��2�'9�'a�=��ǚ
Ӛ*�
��4�<�N�
c�	n�x�����'��'�	
��	#�-�)D�n�$~�#��	ǜ$ќ����.�&5�\�#v���	��
����ȝ?ڝ-�H�"g�)����ƞמ�%��
$�/�4�'9�
a�)l�*��'���?�/�?�O�U�a�r���������à̠ߠ�	�:
�;H���1��2ȡ)��%�E�Y�k�%����Ţ�+��+�D�X�
g�u�'��&��֣�!��!�@�#V�z�������Ĥ	Фڤ��
�
�(�>�N�a�*r�����ť
ͥإ��
����V�Kl�����Ȧզ7�-�:L�F��%Χ#�-�$F�k�|�8��
ɨ
Ԩ�'��'�8�8P�;��ũ/�*�;�U�a�w���?��ܪB�,.�)[�D��Cʫ?�BN�K��GݬG%�Jm�B��G��:C�@~�=��=��;�+Y�������ί�/�60�:g�=��#�D�1I�>{�N��>	�)H�$r���F��9�@,�>m���"��>۳8�7S�J��ִ-�E�Dc�G��5�G&�@n�9��'�>�P�9`�<��/׷>�@F�6��2��;�--�8[�-��C¹J�3Q�;��7����?�(R�+{�,��Ի)�A�Q�c�����'��&ļ���1�D�[�
s�~�%����̽'ؽ'�!(�J�3b���$��˾ݾ���1�=I�������'��ؿ�'	�1�L�dl�/��#�*� G�h�����
����-��/)�-Y���������!��&��	�(�#B�,f���!��$��w��Y�m����� ��)���A!�c�w��?��Q��!�2�I�(V��2��%��1��3 �/T�*����5��I�,O�|���d��d�m�I��������$��
�%�C�CH�8��(��*���#4�)X�:����.��>�6J��� ����*����.�M�i���-����-��,�GH�)��#��?�� �?�W�$w�<��B���L8���5��@��!�&<�<c�J��3��*�#J�5n�+��(��7��11�,c�:��7��/�63�,j�����&��&��,�I�f�!��!������#�$%�+J�2v�����2��=�5I�!���!��#�� �2#�+V�$��4����(��-�8K�.����*�����>9�(x�*������=��9:�t�(��>��A��E>�.��0��'��%�$2�%W�3}�F��<��75�Km�@��;��J6�'����������"�(6�H_�)��&�� ��+�7F�+~���?�����0�+K�)w� ����!��8�'<�&d�/��]�� �%:�`�)|�*����#�� 
�.�(M�@v�9��2��>$�$c�4����E��P�o���"��,�����,�9K�O��*��:�S;�/��,��Q��>�W�n�#���� ����&�1)�#[�!�������$��b�)x�%��3��'��+$�NP�'��I��1�C�)^���)��"�����2�HQ�!��J�� �((�FQ�*�� ����$��4"�'W�$�:����O��>M�-��-��)��+�->�-l�-��%��6��!%�G�,f�.��6��(��"�*1�8\�&�����+�C�7S�.����&�(��,$�IQ���5��'�&�.=�jl�6�/�5>�2t�"��!��J�JS�G���%�+�G�4]�9��+�*��3#�9W�2��2���#�;�(S�|�)��/��"�-�4@�(u�7��4��?'�%g�'��L��$6'5^*�#��-)M)w,�&�1�!'I5a��(��G S!t�$�-�& )G/q1�4�:$C!h�����)'BjF�>�(+BT��$�'�$7U)r�*�'�	#-	Q	$n	A�	=�	#
07
'h
,�
3�
%�
8%P0v5�4�"85-nB�F�%&
2L
,
6�
@�
?$:dL�0�:!X z"����-&Dk#��,� �. >"_�/���(Ge9�:�A�28@k"�2�GE^L�J�M<K��K�9"WNz\�+&-R!�!����&%8)^���� �'08X�;�<�9 3Z$��P�9X-p�� �,�*D ]~%����,%Gm�%�-�,�  6#W {��5�)�$(0M,~P��. !? #a � � �  � � /� #/! S!t!1�!4�!!�!M"Kb"�"�":�"%#(?#"h#1�#"�#!�#$$'$>$T$/p$�$#�$K�$(%.@%&o%$�%7�%0�%%$&<J&6�&A�&'6'+J',v')�'"�'/�'1 (R("f(�(0�(3�(3
)!A)2c)�)�)�)L�)&@**g*K�*&�*)+D/+*t+3�+=�+F,CX,2�,%�,+�,1!-0S--�-�-0�--�-/).Y.%u.'�.'�.7�.!#/E//e/'�/D�/10040$e0(�0:�0�0
1*1 H1;i1/�1N�1<$2,a2.�2�2"�23136E32|35�3�3�34%24!X4-z4#�4'�4"�4%5)=5:g5(�5�5�5%�506M6%m6&�6$�6$�6)71.7'`7�7-�7$�7�7-8>8%^8>�8@�8$9;)9Re9.�9�9�97:>O:(�:�:+�:�:%;(=;f;)�;�;%�;6�;7&<3^<�<+�<*�<+	=?5=u=�=2�=8�=?>&[>;�>�>�>!�>$?.:?i?.�?/�?&�?)@&8@=_@�@ �@9�@A.A3GA({A�A4�A6�A&&B.MB'|B=�B7�B7C<RC2�C*�C�C7D9<D/vD$�D;�DUE&]EJ�E&�E(�E/FOF)kF2�F�F"�F#G++GWG2wG'�G@�G!H+5H>aH@�H*�H*ID7ID|I?�I*JF,J*sJK�J3�J1K!PKArK�K,�K,L0.L%_L�L;�L;�L%M-CM-qM2�MH�M N&<NYcN3�N)�N(O'DO8lO'�O�O>�OF)P,pP8�P5�PiQDvQ;�Q9�Q,1R^R(wRH�RO�R29S#lS1�ST�S2TJTL`T3�T3�TU".U#QU(uU:�U%�U$�U1$VVV_VtV�V�V!�V�V,
W
:W
EWSWjWG�W�W6�WB!XdXkX<X#�X�X3�X Y%8Y+^Y/�Y�Y
�Y$�Y)	Z%3Z	YZcZ3}Z��Zhn[�[E�[i5\�\�\�\0�\�\].]@]	M]W])w]+�]#�]B�]4^	M^W^	p^z^%�^�^#�^(�^__+"_&N_)u_�_'�_�_�_`#`
0`;`H`Q`k`.�`.�`�`aa"a'=aea�a	�at�a
b!,bNbkb	�b�b2�b"�b;c
<c8Jc�c�c�c,�c�cdd-4dbd|d�d�d(�d3�d
e+eFe+Ve�e�e�e�e�e2�e"
f-f$@fef0qf
�f�f
�f1�fgg,g1Kg}g�g�g�g�g�g�g�g(h=h,Yh�h�h�h�hC�h69i&pi�i
�i�i�i�i�i�i�ij-2j`j
{j�j�j�j�j�j�jkk7kVk7ck
�k
�k�k�k�k/�k.(l.Wl.�l�l=�lNm	Qm[mqm�m&�m�m
�m�mn'n=nTncn-kn+�n%�n�n"oH*oso�o�o�o�o�o(�o�op4p
KpVp%hp�p�p�pI�p4#q+XqE�q�q'�q"r94r*nr�r�r'�r'�r,s?8sxs.�s
�s#�s(�s<t	\tftlt1�tC�t�tu*uBu!Qu
su~u��u6vdIv�v�v
�v�v"�v<wOw#lw3�w+�w2�w@#x4dx9�x@�xFyQ[yE�y4�yK(zWtzH�z'{0={+n{�{K�{K�{JA|/�|+�|5�|}34}.h}�}�}�}�}~ ~49~n~�~>�~5�~78L9�)�-�'�?�[�
u�����������$Ӏ��	��&�	=� G� h�������āсށ��� �2�A�^�n�s���2��‚ۂ
����

��)"�L�e�r�x�����
������ƒ!ȃR�Q=�'��&��"ބ)�+�:�@�^�~�����?���(�(�#F�Fj���*ˆ$���6�'Q�)y�(��̇Z�^;���2�� �&	�*0�[�`�e�n�z�������/ȉ2��;+�;g�����$ӊ����-+�*Y���=��ы�.�/�!A�@c�R��3��=+�Fi�X��5	�)?�*i�)��"���$�'�A�'\�����Ï$܏���3� F�g�z�=��ѐ#��
��5+�a�*t�7��<ב-�,B�-o�/��(͒���)�@�7Y�����8��<�-�E�R�
m�x���#��ʔ�#�#�<;�$x���
����+̕����	5�"?�Eb�E��>�@-�n�w�����:����� ���8�J�Z�l�p��� ����,И'��%�!C�(e����� Ǚ��!�$�8�(J�'s�	��%��
˚!֚��	�&"�-I�-w�����	̛
֛>�> �>_�>��>ݜ>�>[�>��>ٝ)�+B�"n�'��5���
���0�#F�1j�/��̟
ԟ"ߟ�'�!<� ^��%��Š!�%�$(�%M�s�4����F9���$�NC�q�d�T�D�KZ7��:�av��:���Y��,O�����z�Tg�G�l��G�i�_�������sV����E�$N
H���h`�N�����:�r�W^��hl��B���m���#,���KB��f�G������z����0�]!�3U4�>��c��-������5o��w�~R�M~��j���`�L}p��#�*Tf����(��'M�`g��2�#W��#1��[=kU?���aw�m��a�P�%�"G3!����/VnS����]h��_ZD��qk;)ZO~x�)T��o!���������5�lD���P++�X��O��h1FH5���A�jC���n�w��&�����6\��&����jYA��%D��{���m�����\SK�c��
�{�YfC��M�<��^m'b���4��2��r�&�g&�<�Q��q������<������A���	�G�����<S��q?�X���%/C�LJ�sT �	�S�L�g��6@��r�	]��([3x�C
����]`���<�
5N@.i�;�ii�B�H_�0.��s�R>e\�d����o��*�"�3���)R�Zm��m�iQ��^j�����@�p��}��EY����"�������,R���7V
��<Q��:��xZ����!5'�W"�z�s��ILjvv���	��/�(QL=���'&��I�9H|6����)�>Dk7�����f�d�K��W�U�xnQ�Ju[���J�x�W|�{tlUb��^����K
w;�����'$�%��7PBW���O�N��a���6�D������$Ksb���R���I��%]�-����R��0:[(����>��!7�0��L����-����&?SGF�������P�*�}����V
�M���^�T�3�`|
k��Z�$�O�������.�%����e=����Ey�Y���*�6��m�`���n���b��������u�Q��g)�KU\r���-����F~�8 d��B������/�
��s�!T-X�8�9�����_}�"(�AyS�[@z�P�����4��w��1�|J�,�9e#��C�(.�L ��;�'1Q��)�
I�8�J���\�������;]i�e�	3�?�a�"�e��y*���+�W;��k?-��*�Q	>c�o�[P�����uy���X�'���r��f!V���n�����i�Ts?�R��v�x��@@�*�1��@���$���
p��V����=^��E�y�b��9j�����4��O��N�����CM 8�������203H,�e$P~�V�ft�9�MJ��Xz�-�J�|4����/�F�D5h��vc<}l\G&�
c�a�X���qr��2�*��x��eF�8���V{#5F�>�{�����Oz�����F��u��=��u�M�jl\����:41+v&.��~�� d)0{��u1����Z���I]C�
U�����%E�������O{_����+��t'�YW4>���f6���a�Eop2N��|�SXH>�;}�K��#=����6���Rw��+v"���-�4�E��p��	���@�_2��)n�7h����(��H�
5`��.�0�}�� [�J�G���(A�,���qY��$�+�H�����1/!t�cg<;���btB~r#	�h��8��.2�2I n,���
��A�o7���_���U7����t",�k�l�NPBg�8�So����U�6�Mz�����3��:�|
��%q���p0B/I�ZX9/ ��:u���?Y+��k�8DywLp���A���cdd�^�b�����9=E�?y[�tA�=����.�I�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.
(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Quit, or continue with caution.
  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " for  has been damaged (page size is smaller than minimum value).
 in Win32s mode in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless). Removing it!
/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context Cscope tag: %sCurrent %slanguage: "%s"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]add() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlererror list %d of %d; %d errorsexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sfreeing %ld linesfunction %s does not existfunction constructor does not accept keyword argumentsgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsread from Netbeans socketreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim_ru
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2014-10-10 11:52+0400
PO-Revision-Date: 2014-10-10 12:00+0400
Last-Translator: Sergey Alyoshin <alyoshin.s@gmail.com>
Language-Team: 
Language: Russian
MIME-Version: 1.0
Content-Type: text/plain; charset=cp1251
Content-Transfer-Encoding: 8bit

	� ��������� ��� ��� �������� � 

��������:


������������:
           ������: 
         [�� �������� �� ����������� �� ���� ��������]
         [�� �������� �� ����������� � ������ ������� Vim]
         �������: 
      ����������: 
           ������: 
       c: ����� ������ ������ ��� �����
       d: ����� ������ ������� ���� �������
       e: ����� ���� ������ egrep
       f: ����� ���� ����
       g: ����� ��� �����������
       i: ����� ���� ������ (#include) ���� ����
       s: ����� ���� C-������
       t: ����� ��� �������� ������

    ��      �����. ����. ������.    �����������
   #   ������
   ���:
  # �  �����       ��   ���.  � �����/������
����� ���  ��� ����/�����
# %s, ������ (����� �� ������� � �������):

# ������ �������:

# �������� �������:

# ������ ����� ������� (�� ����� ����� � �����):

# ������ ������ (������ ����� ������):

# ��������� %s������ ������:
~
# ������� ������ �� �����:
$
# �������:

# �������� ���������:

(1) ��������, �������������� ����� �� ����� �������� � ������ ���������.
    ���� ��� ���, �� ����� ��������� ��� �������� ���������, ����
    � ��� �� ������� ��� ���� �������� ������ � ���� �� �����.
(������ ������� ���� ��� ������ ������ � ������� ��� � ������

--- ���������� ---
--- �������� ������ ���� ---
--- ������ ������ ���� ---
--- ��� ---
--- ���� ---
--- ������� ---
--- ����� ---
--- ������������� ������� ---
--- ������� ����������� ���������� ---
--- ���������� ��� ---
--- ������ ��������� ---
����� �� MS-DOS 16 ���
����� �� MS-DOS 32 ���
�������� �� gvim (����� Athena):

�������� �� gvim (����� GTK+):

�������� �� gvim (����� Motif):

�������� �� gvim (����� neXtaw):

���� ����� 
���������� ������ ����

���������� �������� ������� 
���������� �������� ������� sh

���������� ������� fork()

��������� ������ ��������

������������� 
���������� ������ �������� ������������ �� 
���������� ��������� �������� ������������ �� 
������������ ��������: 
��������� ����-���� � ������ "
������� ����� 
���� � ����� ���� ����� �� ���������, �� �� �������� �������� ����,
���� � �������� �������� ���� ����� �������� ����� ���������, �� �������
��������: 
����� �� MS-Windows 16 ���
����� � ���������� ����������� �� MS-Windows 16/32 ���
����� � ���������� ����������� �� MS-Windows 32 ���
�������� ����� �� MS-Windows 32 ���
����� � ���������� ����������� �� MS-Windows 64 ���
�������� ����� �� MS-Windows 64 ���
����� �� MacOS X (unix)
����� �� MacOS X
����� �� MacOS
��� ���������, ��� Vim �� ���� ������� ����-����
������������ ��������: "vim -h"

���� ����� 
����� �� OpenVMS
���� ����� 
����� "����" 
Vim: ����� X

��������������: ������ ���� ����� �� ������ ��� ��������

���� ������� �����������, ������� ����� ������ / �� ������� ��������
�������, ����� � ������� ������ ���� .swp.


[����] ����� ����.-�����. %lu-%lu, ������. %lu, ����. ������. %lu

�����.  ���  ��� �����
�� ������� ���� ����� �� ���������.
����� ���  ��� ����/�����
������� �������� ������ 
���������� �� ���������
Enter �� ����������� ������ ��� �� ���������� ����� � ����-�����                                 �� ������� � ����� Vim                                        �� ��� �������                             ����:           �������:          [�� ���������]         [�� �������]         [�� ������ ����-������ Vim]         [�� Vim ������ 3.0]         �� �����:       -- ��� --
                    ����� ������, ��� ����-����!
          �������������� ���� exrc: "         �������������� ���� vimrc: "    � ���� �����, ���������� ������� ":recover" ��� "vim -r     ���� � ��� ������� ��� ������, ������� ����-���� "    ������=%ld  id=%d  ��=%s             ����������� ���� ���: "        �������������� ���� gvimrc: "   � ������ ��������:
   � ��������      � �������� ������:
    ����:   �������:             ����������� ���� vimrc: "  # ��� ���  ����� (��� ��������)   ������ �������������� ���� exrc: "  �������� ����  ������� (+) � �������� (-) �����������:
 �� ������    �������� ������ ��� ����������� � �����������.
  �����       ���.  �����. ��������    �������    ���                ����� ���������� ����� � ��������� � ������ ��������!          ������� $VIM �� �������: "           ����������� ���� gvimrc: " # pid    ���� ����                         ������ ���
 (��������) (�� ������) (������ ������ ��������� �����������) (�������) (�������) ��������� (^E/^Y) (���) (������ �������) (�� �������������) (�������) (������) (������) ��������� (^E/^Y) (� ��������) (��������� ������)  ������ �������������� ���� vimrc: "  ������ �������������� ���� vimrc: " < "%.*s" ���������� �������� ���� ����������� �������������� ��������� ������ (^V^N^P) ���� %d �� %d �������������� ���������� (^D^N^P) �������������� �� ������ (^K^N^P) ������� �������������� ����� ����� (^F^N^P) ����� ����� ������� �������������� ������� ����� (^N^P) �������������� ������� ����� (^N^P) Omni-���������� (^O^N^P) �������������� ������� ���� (^N^P) ���� ����� ��������� ��������� ���� ��������� ������ SPACE/d/j: �����/�������/������ ����, b/u/k: ����, q: ���  ����������� ���������� ����������� (s^N^P) �������������� ����� (^]^N^P) �������������� ��������� (^T^N^P) �������������� �������������� (^U^N^P) ��������� ����� ��������� ���� �������� ����� ��������� ���� �������������� ����� ������ (^L^N^P) [������] [�] [�] ����� ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) ��������� ���� ���������� �� ���� ��������.
 ���� ���������� � ������ ������ Vim.
   ������� $VIMRUNTIME �� �������: " ��  �� �������� (������ ������ ���� ����������� ������).
 � ������ Win32 �� ������ %ld; ���� ��� �����
 ��������� ����� ����� ����� ������ ������� ������� ���� ������ � %ld ���. � ����� ������ � ����� �������� ������
 vim [��������]  � ���������� OLE ��������"
    ���� ������� ������� ����� ������� � ������.
"
    �� ������������� ��������� (��. ":help recovery").
" ��� ���������!# ���� ���� viminfo ������������ ������ Vim %s.
# ������� ���� 'encoding' � ������ ������ �����
# ��� ����� (���������!) ������������.

%-5s: %s%*s (������������: %s)%3d  %s %s ���. %ld%<%f%h%m%=���. %N����� ������� �������: %d����� �������� ������� �� �����: %d����� ����� �������: %d%d �������� ���� � %s������ �� �������������: %d
��� ������������������ ���� (%d). ����?��������������� %d �� %d%ld %s; %s #%ld  %s�������: %ld; ��������: %ld������ �����: %ld������� ������, %ld ����� (%s %d ���)������� ������, %ld ����� (%s 1 ���)%ld ���. --%d%%--�������� �����: %ld�������� ����� ����� �����: %ld������� ������ � ������ (%ld) ��������� �����: %ld������� ������ ������ (%ld)...����������� �����: %ld�����: %ld, %ld ��������������������� �����: %ld%ld � �����%ld �������������: %lld%s ���������� �� "%s"%s ��������%s ��������%s ������ %ld%s ������� ��������%s ������������%s ��������� #%ld%s ��������� %s%s ����� ������ �������, ��� � ����� .aff%s, ������ %ld%sviminfo: %s � ������: �&������&�������&�����&�������&��&OK
&C ������&OK
&L �������� ����&Ok&O ����� �� �����
&E ������������
&R �����������
&D ������
&Q ����
&A �������&O ����� �� �����
&E ������������
&R �����������
&Q ����
&A ���������&�����&�����&Y ��
&N ���&��
&���
�&�����&Y ��
&N ���
&A ������� ���
&D ������ ���
&C ������' �� ��������. ������� ��������� ��������:���������� ���������� '-nb': �� ������ ��� ��������
������� ���� 'columns' �� ����� 80, ������ �������� �� ��������� ������ ������� ���� 'dictionary'������� ���� 'history' ����� ����� "%s" ������ ��� 'readonly'.
�������?�� ������ ������� ���� 'thesaurus'(%d �� %d)%s%s: (+%ld � ���� BOM)(2) ����� ������������� ����� ����� ������ ��������.
(��������)(����������)(��) ���������� ����� %s!+			���� �������������� � ���� �����+-%s%3ld �����: +--%3ld ����� � �������+<lnum>		���� �������������� � ������ � ������� <lnum>+reverse		�� ���������� �������� ���������� (�����: +rv),
���� ���� �� ��������.-           ������ ������ �� ������ ����� stdin--			����� �������� ����� ����� ������-- ����������� ������� ---- �����...--- ������� ���� --�������---- ��� ����� � ������ ----cmd <�������>	������� <�������> ����� ��������� ����� vimrc--cmd ��������--echo-wid		������ Window ID �� gvim �� ���������� ����� �����--literal		�� ������ ����������� �� �����--noplugin		�� �������� ������� �������--remote <����>	�� ����������� ������������ <����> �� ������� Vim--remote-expr <����>	������� <����> �� ������� Vim � ��������--remote-send <������>	�������� <������> �� ������ Vim � ����--remote-silent <����>  �� ��, �� ��� ����� �� ���������� �������--remote-tab[-wait][-silent] <����>  �� ��, ��� � --remote, �� � ���������--remote-wait <����>  �� ��, ��� � --remote, �� � ��������� ��������--remote-wait-silent <����>  �� ��, �� ��� ����� �� ���������� �������--role <���>	��������� �������� <���> �� ������������ �������� ����--serverlist		������� ������ ��� �������� Vim � ������� ������--servername <��>	�������� ��/���� �������� Vim � �������� <������>--socketid <xid>	����� Vim ������ ������� ���������� GTK--startuptime <����>	������� �������� ����� � ������� � <����>--version		������ �������� � ������ Vim � ������� ������--windowid <HWND>	����� Vim ������ ������� ���������� win32-A			������ � �������� ������-C			����� ������������� � Vi: 'compatible'-D			����� �������-E			������� ����� Ex-F			������ � ������ "�����"-H			������ � ������ "�����"-L			�� ��, ��� � -r-M			��� ����������� ������� ��������� � �����-N			����� �������� ������������� � Vi: 'nocompatible'-O[N]		�� ��, ��� � -o, �� � ���������� ����������� ����-P <��������� �������>	����� Vim � ����������� ����������-R			����� �� ����� (��� "view")-S <�����>		������� ������� <������> ����� �������� ������� �����-T <��������>	������� �������� ��� <���������>-U <gvimrc>		���������� <gvimrc> ������ �� ������ .gvimrc-V[N][����]		������ ������������ ������� [������ N] [�������� � ����]-W <�������>	������� ��� ������� ������ � ���� <������>-X			�� ������ ���������� � �������� X-Z			���������� ����� (��� "rvim")-b			������ �����-background <����>	���������� �������� <����> �� ���� (�����: -bg)-boldfont <�����>	���������� <�����> �� ������� ������-borderwidth <������>	���������� <������> ������ (�����: -bw)-c <�������>		������� <�������> ����� �������� ������� �����-c ��������-d			����� ������ (��� "vimdiff")-dev <����������>		���������� �� I/O ��������� <����������>-display <�����>	����������� VIM � ���������� X-�������-display <�������>	�������� VIM �� ��������� <�������>-display <�������>	�������� VIM �� ��������� <�������> (�����: --display)-e			����� Ex (��� "ex")-f			�� ���������� newcli �� ������ ����-f  ��� --nofork	� �������� �����: �� ������ fork ��� ������� GUI-font <�����>		���������� <�����> �� ������ ������ (�����: -fn)-foreground <����>	���������� <����> �� ������ ������ (�����: -fg)-g			�������� � ���������� ����������� (��� "gvim")-geometry <��������>	���������� ������ <��������> (�����: -geom)-h ��� --help	������ ������� (��� ��������) � ������� ������-i <viminfo>		���������� ������ .viminfo ���� <viminfo>-iconic		�������� VIM � �������� ����-italicfont <�����>	���������� <�����> �� ���������� ������-l			����� Lisp-m			��� ����������� �������� ��������� (������ ������)-menuheight <�����>	���������� <�����> ��� (�����: -mh)-n			��� ����-�����, ���������� ����� ����-o[N]		����� N ���� (�� �������: �� ������ �� ����� ����)-p[N]		����� N ������� (�� �������: �� ����� �� ����� ����)-q [����-�����] �������������� ����� � ������ ������-r			������ ������ ����-������ � ������� ������-r (� ������ �����)	����������� �������� �������� �����-register		��������������� ���� gvim �� OLE-reverse		���������� �������� ���������� (�����: -rv)-s			���� (�������) ����� (����� �� "ex")-s <�������>	������� ������ ������ ������ �� ����� <������>-scrollbarwidth <������> ���������� ������ ����� ��������� (�����: -sw)-t �����    �������������� ����� � ��������� ������-u <vimrc>		���������� <vimrc> ������ �� ������ .vimrc-unregister		������ ��������� ������� gvim �� OLE-v			����� Vi (��� "vi")-w <�������>	������� ��� ������� ������ � ���� <������>-x			�������������� ���������� ������-xrm <������>	��������� �������� <������>-y			������� ����� (��� "evim", ����������). ����� �����!
/ ������ ����������� � %s, ������ %d: %s��������������� ������ /encoding= ����� ����� � %s, ������ %d: %s���� ����� ��������� ����� ������� �� ��������� ����� ����1 ������������� ������ � 1 ������ (%s %d ���)������� ������ � 1 ������ (%s 1 ���)���� ������ --%d%%--�������� 1 ������������ ������ � ����� ������ ������ ���� ��������������� ���� ����������������� ���� ������1 ������, ���� ������������1 ���� ������� �������������. ����?��������� ���� ���������� ������ ������ �������������� ���� gvimrc: " ������ �������������� ���� gvimrc: ": �������� ������� �� ������.
: �������� �� ������.
: �������� �� ������. ������ �������� ��������
; ������������ <%s>%s%s  %d,  Hex %02x,  Octal %03o<���� �����> <�����>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o???������ ����� �� ������� ����� �� ???����???������ ����� �� �������� ��� ������ ����� �� ???����???�������� ����???������ ����???�����???����������� ������� �ר���� �����???����������� ������???����������� ����� ����������� ���� ������� ANCHOR_BUF_SIZE.������� ���� ���� ������������� ���� ���� cscope %s������ ����� ���������� �� BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST � %s, ������ %d: %s�� ������� ������ ������� � %s, ������ %d: %s��������������� ��� ��� ���� cscope������ ��� ������� ������� �� ����� ��������� ������������ �� ����� ������ ����������� ������ ����� ���� ��������� ������ ����� ���� ����������� ����������� �������� ������ ������������ ���������� ������ ����� ������: "������� ���������� ������� ��������, ����� ����� ������������� ����������������� ������������ Vim!��-��!����� ������ %ld�������� ������ SAL � SOFO � %s���� ��������� � "%s%s" ���. %ld��������� ������� � %s, ������ %d: %s�������� ������COMPOUNDSYLMAX ���������� ��� SYLLABLE���� ������� �� ���������: "%s"�������� ���� �� �������������� �� ���������������������� ��������� � NetBeans���������� ��������� � NetBeans #2���������� ������������ � SNiFF+. �������� ��������� ��������.(sniffemacs ����� �� ������ � ���������� $PATH).
���������� ������ ���������� ������� ���������� ����� NIL:
���������� ����� ���� "%s"���������� ����� �� �����: "���������� ����� �� ����� ������: "���� ����� �������: "%s"���������� ������� ���� ����� � �����-���� �������� �� 'undodir'������� "%.*s" ��:���������� ����������. %s �� %s; ���. %ld �� %ld; ��. %ld �� %ld; ���� %ld �� %ld���. %s �� %s; ���. %ld �� %ld; ��. %ld �� %ld; ����. %ld �� %ld; ���� %ld �� %ld�������� �������������� ��������: ���������: ����� %d �� %d �����; ������� %d (%d%%)������ ������ ����...�� ������ ������������ ����� � %s, ������ %d: %s�������������� � %s �� ��������������������������� � %s �� �������������: �� %s � %s�������������� � ����� 'charconvert' �� ������������������ �������� ��������� ������ �� DLL!���������� ������ �������� ������������ ���������� �������� vim32.dll!���������� ����� ���� ���������� ������� �� ���������������� ����� ���� ���������� ������� �� ������, ���� �� stderr...���������� ��������� �������� ������������ ����� cscope: %s������� %s���: "%s"����������� COMPOUNDFORBIDFLAG ����� �������� PFX ����� ��� ���������� �������� � %s, ������ %d����������� COMPOUNDPERMITFLAG ����� �������� PFX ����� ��� ���������� �������� � %s, ������ %d������� � ����� Vim������ ��������� ���� � ���������� ����� ������� � %s, ������ %d: %s��������������������������	*.�����
������ ������ ������� � ���� ������������!������ ; � ������ ��������������������������� �������� ������ /encoding= � %s, ������ %d: %s����������� ������ ������ /regions= � %s, ������ %d: %s��������� ������ � %s, ������ %d: %s��������� ������ � MAP � %s, ������ %d��������� �� ���: %s������ ����� � %s �� ������ %d: %s E100: ���� ��� ������� � ������ ������E101: � ������ ������ ����� ��� �������, �� ���� �����E102: �� ���� ����� ����� "%s"E103: ����� "%s" �� ������� � ������ ������E104: ���������� ������ Escape ���� ���������� � �������E105: ������� :loadkeymap ��������� ��� ����� ������E107: ������� ������: %sE108: ��� ����� ����������: "%s"E109: �������� ':' ����� '?'E10: ����� \ ������ ���� ������ /, ? ��� &E110: �������� ')'E111: �������� ']'E112: �� ������� �� ����: %sE113: ���������� ���: %sE114: �������� �����: %sE115: �������� �����: %sE116: �������� �� ������ %s ����� �������E117: ���������� �����: %sE118: ������ ����� ���������� �� ������ %sE119: ����������� ���������� �� ������ %sE11: ����������� � ���� ��������� ������; <CR> ���������, CTRL-C ���E120: <SID> ���������� ��� ������: %sE121: ������������ ���������: %sE122: ����� %s ��� ���������. ������� !, ���� ������� �.E123: ������������ �����: %sE124: �������� '(': %sE125: ����������� ��������: %sE126: �������� ������� :endfunctionE127: ���������� ������������� ����� %s, ��� ����������E128: �� ������ ������ ������� � ��������� ���� ��� "s:": %sE129: �������� �� ������E12: ������� �� ���������� � exrc/vimrc � ������ �������� ��� ������ �����E130: ���������� �����: %sE131: ���������� ������ ����� %s, ��� ����������E132: ������� ����� ������ ����, ��� ������� 'maxfuncdepth'E133: ������� :return ��� ������E134: ������ ��������� ���� �� ���E135: ���������� *Filter* �� ����� ������ ������� �����E136: viminfo: ������ ����� �����, ������� ���� ����� ����� ��������E137: ����� �� ����� ����� viminfo ����������: %sE138: ���������� ������� ���� viminfo %s!E139: ���� �������� � ������ ������E13: ���� ��������� (������� !, ���� �����������)E140: �� ������ ����� ������ ���������� !E141: ����� %ld �� ����� � ������ �����E142: ���� �� ������: ����� ������� ����� 'write'E143: ���������� ���������� ����� ���� ����� %sE144: �������� ������ :z ������ �� ������E145: ������������ ������ ������� �� ���������� � rvim.E146: �������� ������� �� ����� �������� �������E147: ������� :global �� ����� �� �����������E148: � ������� :global �������� ��������� ��������E149: � �������� ������� �� %s �����������E14: ����������� �����E150: %s �� ������ ���������E152: ���������� ����� %s �� ������E153: ���������� ����� %s �� �����E154: �������� ����� "%s" � ����� %s/%sE155: ���������� �����: %sE156: �������� �� �����E157: ���������� ID �����: %ldE158: ����������� �� ������: %sE159: ������� ����� �����E15: ������������ ��������: %sE160: ���������� ������� ����� %sE161: ���� ��������� �� �������: %sE162: ���������� �������� � ������ "%s"E163: �� ������������� �������� ����� ���� ����E164: ��� ����� ����E165: ��� ��������� ����E166: ���������� ����� ������� ���� �� ������E167: ������� :scriptencoding ���������� ��� ����� ������E168: ������� :finish ���������� ��� ����� ������E169: ������ ���������� �������E16: ����������� ��������E170: ����������� ������� :endforE170: ����������� ������� :endwhileE171: ����������� ������� :endifE172: �������� ���������� ����� ���� �� �����E173: ��� ������������������ ���� (%ld).E173: 1 ���� ������� �������������.E174: ������� ��� ���������. ������� ! �� �����.E175: �������� �� �����E176: ����������� ��������� ����������E177: �����-��������� ���� ������� �����E178: ����������� ������� �����-��������� �� �������E179: �� -complete �������� ������ ��������E17: "%s" ������ ���������E180: ����������� ������� ���������: %sE181: ���������� �������: %sE182: ����������� �� ������E183: ������� ���������� ������ ������� � ��������� ����E184: ��� ����� ������ ����������: %sE185: ���������� ����� ������� ���� '%s'E186: ��� ��������� ��������E187: ����������E188: � ������ ������� ����������� �������� ���� �� ��������E189: "%s" ��������� (������� !, ���� ������ ��������)E18: ���������� ������ � :letE190: ���������� ����� �� ������ "%s"E191: �������� ������ �� �����/�������� ������ ��� ������E192: ������ ������� ������� ��� ������������ ������ :normalE193: ������� :endfunction ����� ����������� ����� ������ ������E194: ��� ��������� ����� ����� �� ����� '#'E195: ���������� ����� ���� viminfo �� �����E196: � ���� ������ ������ �� �������E197: ���������� ������ ��� �� "%s"E198: cmd_pchar ���� ���� ������E199: ������� �������� ���� ��� �����E19: ������� �������� �� ���������� ����� ������E200: � ��������� �������� ���������� *ReadPre ���� ���� ��������E201: ���������� *ReadPre �� ����� ������ ������� �����E202: � ��������� ������������� ���� ���� ��������!E203: �����, ������ ���������� �������, ����� ��� ������� ������������E204: ��������� ����� �������� ������������ ���������� �������E205: ����� ��������: ���������� ��������� �������� �����E206: ����� ��������: ���������� ������ �������� ������� �������� �����E207: ���������� ������ �������� ����E208: ����� ������ � "%s"E209: ����� ������ "%s"E20: ������� �� ����������E210: ����� ����� "%s"E211: ���� "%s" ���� �� ��������E212: ���������� ����� ���� �� ������E213: ������������� ���������� (������� ! �� ������ ��� �������������)E214: �������� ���� �� ������ �� ������E215: ����������� ������ ����� *: %sE216: ����������� ������: %sE216: ���������� ������ ��� ������: %sE217: ���������� ������� ���������� �� ���� ������E218: ������ ������� �������� ����������E219: �������� {.E21: �������� ���������, ��� ��� ������� ��� 'modifiable'E220: �������� }.E222: ���������� � ����� �����E223: ���������� �������E224: ��� ��� ��������� ��������� �� %sE225: ��� ��� �������� ������� �� %sE226: ��� ��� ��������� �� %sE227: ��� ��� ������� �� %sE228: makemap: ����������� �����E229: ���������� ������� � ����� ����������� ����������E22: ������ ������� �������� �������E230: ���������� ������� ������ "%s"E231: ����������� ������� ���� 'guifontwide'E232: "����" �� ��������, ������ � ��������, � ������� ����, �� ����� �� ������E233: ���������� ����� �������E234: ���������� ��������� �����: %sE235: ���������� �����: %sE236: ����� "%s" �� ������ ����������E237: �������� ��������� ����� ��������E238: ����� �����: %sE239: ���������� ����� �����: %sE23: �������� ���� �� ���������E240: ��� ���� � �������� VimE241: �� ���� �������� �������� �� %sE243: �������� �� �������������: "-%s"; ���������� ����� OLE.E244: ������������ �� ��������� "%s" � ����� ������ "%s"E245: ����������� ������ '%c' � ����� ������ "%s"E246: ����� ����� ��� ��������� ���������� FileChangedShellE247: ������ "%s" �� ���������������E248: �� ������ �������� ������ � ����� ���������E24: ��� ������ ��������E250: � ������ ������� %s ���������� ����� �� ������ ���������:E251: ���������� ������������ ������� ������� ������� VIM � �������. �������!E252: ����� �������: %sE253: ����� �������: %sE254: ���������� ������� ���� %sE255: ���������� ������� ����� � �����!E256: ���� ���������� �����E257: cstag: ����� �� �������E258: �� ���� ������� �������E259: �� ������� ������������ �� ������� cscope %s �� %sE25: ���������� ����������� ����������� ���������� ������ ��� ��������E261: ���������� � cscope %s �� ����������E262: ����� ������� ��������� �� ��������� cscope %ldE263: � �������� ��� ������� �� ��������, �������� �� ��������� ���������� PythonE264: Python: ����� ����������� ������� I/OE265: $_ ������ �� ���������� ��� �������E266: � �������� ��� ������� �� ��������, �������� �� ��������� ���������� RubyE267: ���������� returnE268: ���������� nextE269: ���������� breakE26: ����� ����� ��� ��������
E270: ���������� redoE271: retry ��� ��������� rescueE272: �������������� ��������E273: ����������� �������� longjmp %dE274: Sniff: ����� �� ���� �����. ������������E275: ���������� ������ SNiFF+: %sE276: ����� ��������� �� SNiFF+E277: ������ �� �������E278: SNiFF+ �� ����������E279: ��� �� ����� SNiFF+E27: ����� ������ ��� ��������
E280: ���������� ���� TCL: �������� ������ �����?! ������� �� ���� �� ������ vim-dev@vim.orgE282: ���������� ������� ������ �� "%s"E283: ��� �������, �������� � "%s"E284: ���������� ������� ������ ��������� �����E285: ���������� ������ �������� �����E286: ������� ������ ����� ����� �����E287: ��������������: ���������� ������� ���. ���� ��������� ������ �����E288: ����� ����� �� ������������ �����E289: ����� ����� �� ������������ ��� ��� ��������������� �������������E28: ������ ��������� ���������� %s �� ���������E293: ���� �� ������������E294: ����� ������ ��� ������ ����-�����E295: ����� ����� ����-�����E296: ����� ������ ��� ������ ����-�����E297: ����� ��� ������ ����-�����E298: �� ������ ���� ����� 0?E298: �� ������ ���� ����� 1?E298: �� ������ ���� ����� 2?E299: �� ���������� �������� Perl � ������� ��� ����� ������������E29: ���� ��� ������������ ������E300: ����-���� ��� ��������� (����� � ������������� ��������� �����?)E301: ��, ������� ����-����!!!E302: ���������� ������������ ����-����E303: �� ������ ����� ����-���� �� "%s", �������������� ����������E304: ml_upd_block0(): �� ������ ���� 0??E305: ����-���� �� %s �� ������E306: �� ���� ����� %sE307: %s �� ������ ����-������ VimE308: ��������������: ������ ���� ��� �� ������E309: ���������� ������� ���� 1 �� %sE30: �������� ��������� ������ ���E310: ���������� ���� 1 ID (%s �� ������ ������ .swp?)E311: �������������� ��������E312: �� ���� ������������� ��������� �����; ��. ������, �������� � ???E313: ���������� ������� ����-����, �������� �� �� ���������E314: ������� ������ ��������� ����-�����E315: ml_get: ����������� ������� lnum: %ldE316: ml_get: ���������� ����� ������ %ldE317: ����������� ������� �������� �����E317: ����������� ������� �������� ����� 2E317: ����������� ������� �������� ����� 3E317: ����������� ������� �������� ����� 4E318: ��������� ������ ����� ������?E319: ��������, ��� ������� ���������� � ������ ������E31: ����� ������� �� ���������E320: ������ %ld �� ����������E321: ���������� ������� ������������ "%s"E322: ����� ������ �� ��������� ���������: %ldE323: ����������� ������� ����� ����� � ����� %ldE324: ���������� ����� ���� PostScriptE325: �������E326: ���������� ������ ����� ����-������E327: ��������� ���� � �������� ��� �� ������ ������E328: ��� � ���� ������ �� ���������E329: ��� ��� %sE32: ��� ����� �����E330: ��� � ��� �� ������ ����� � ������E331: ������� ��� ���� ������� ��������������� � ������� ���E332: ����������� �� ����� �� ����������� ���� � ���E333: ��� � ��� ������ ����� � �������� ���E334: ��� �� �������: %sE335: ��� �� ���������� �� ������ %sE336: ��� � ��� ������ ����� � ������E337: ��� �� ������� � �������� ����� ���E338: ��������, �� � ��������� ������ ��� ���������� �� �������� �������E339: ������ ������ ������E33: ��� ��������� ���������� ������� �� �����E340: ������ ��������� ������ �������E341: �������� �����: lalloc(%ld, )E342: �� ������� �����! (������� %lu ����)E343: ���������� ����� ���: '**[�����]' ������ �� ���� � ���� ����, ���� �� ��� ������ �������� '%s'E344: ������� "%s" �� ������ � ���� �� ���� ��������E345: ���� "%s" � ������� �������� �� ������E346: � ���� ���� �������� ���� ��� ��������� "%s"E347: � ������� �������� ���� ��� ������ "%s"E348: ��� ������ � ������ �������E349: ��� ����� � ������ �������E34: ��� �������� ������E350: ������� �� ����� �� ������� � ������ �������� ���� 'foldmethod'E351: ������� �� ����� �� ������� � ������ �������� ���� 'foldmethod'E352: ���������� ������ ������� � ������ �������� ���� 'foldmethod'E353: � �������� %s ����� ���E354: ������������ �� ��������: '%s'E355: ���������� ���: %sE356: ���� get_varpE357: 'langmap': ��� �������������� ������� �� %sE358: 'langmap': ����� ������ ����� ���� � ������: %sE359: ����� ����� ������ �� �������������E35: ��� ��������� ���������� �������E360: ���������� ������� ������� � ���������� -fE363: ������ ��������� ���� ����� ��� 'maxmempattern'E364: ������� ���� ������ "%s()" �� ����������E365: �� ������ ������� ���� ����� PostScriptE367: ������ "%s" �� ���������E369: ����������� ������� � %s%%[]E36: ����������� �����E370: ���������� �������� ���������� %sE371: ������� �� �������E372: � ������ ������� ������ ����� %%%cE373: ���������� ������� %%%c � ������ �������E374: � ������ ������� �������� ]E375: %%%c �� ������������� � ������ �������E376: ����������� %%%c � ��������� � ������ �������E377: ����������� %%%c � ������ �������E378: � ������� ���� 'errorformat' ����������� ������E379: �� �������� �� ������ ��� ����� ������ ������E37: �������� �� �������E37: �������� �� ������� (������� !, ���� ������ ��������)E380: ����� ����� ���� �����������E381: ������ ����� ���� �����������E382: ����� ����������, ������� ���� 'buftype' �� ������ ������ �������E383: ���������� ������ ������: %sE384: ����� ������� � ���� ���������; %s �� �������E385: ����� ������� � ����� ���������; %s �� �������E386: ����� ';' �������� ���� '?' ��� '/'E387: ������������ � ������ ������E388: ����������� �� �������E389: ������ �� ������E38: ������� ��������E390: ����������� ��������: %sE391: ������������� ������� %s �� ������E392: ������������� ������� %s �� ������E393: ���� ���� ���������� group[t]hereE394: ������� ������� �� %s �� ������E395: ���� ���� ���������� �������� containsE397: �������� ������ �� �����E398: �������� '=': %sE399: �� ������� ����������: ������������� ������ %sE39: �������� �����E400: ������� �� ������E401: �� ������ ���������� ��������: %sE402: ����� ����� �������: %sE403: ���������� ����������: ������ ����������� ������ ������ �����E404: ����������� ��������: %sE405: ������� ���� ���������: %sE406: ������ ��������: %sE407: %s �� ���������� � ���� �����E408: %s ������ �� ����� � ������ containsE409: ���������� ������: %sE40: �� ������ ����� ���� ����� %sE410: ���������� ���������� :syntax: %sE411: ������ ��������� ���������� %s �� �������E412: �� ������� ����������: ":highlight link %s"E413: ������ ����� ����������: ":highlight link %s"E414: � ����� ��� ���������, ����������� highlight linkE415: ���������� ���� ���������: %sE416: ������� ���� ���������: %sE417: ������� ��������: %sE418: ������������ �������: %sE419: ���������� ���� ������E41: �� ������� �����!E420: ���������� ���� ����E421: �� ��� ����� ����� �� ��������: %sE422: ������ ������ ��� ���������: %sE423: ����������� ��������: %sE424: ���������� ������ ����� ���� ��������� ��������� ����������E425: ���������� ������� � ����� �� ������ ��������� �����E426: ����� �� �������: %sE427: ��� ����� ���� �������� �����E428: ���������� ������� � ����� �� ��������� ��������� ������E429: ���� "%s" �� ���������E42: ��� �����E430: ��� � ����� ����� %s �������
E431: ����� ������� � ����� ����� "%s"E432: ���� ����� �� ������������: %sE433: ���� ����� �� ���������E434: �� ������ ������ �����E435: ����� �� �������, ������ ������!E436: � termcap ��� ������ "%s"E437: �������� ���������� ��������� "cm"E438: u_undo: ���������� ������ �����E439: �������� ������ �����E43: ���������� ������ �����������E440: ������� ������ �����E441: ���� ������������� �����������E442: ���� �� ����� �� ������������ ����� ����� � ������ �����E443: ���������� ������ �������, ���� ������ ���� ���������E444: ���� ����� ��������� ����E445: � ������ ���� ��� ���������� ��������E446: ��� ����� ����� � ������ �������E447: ���� "%s" �� ������ �� �������� ����E448: �� ������ �������� ����� %s �� ����������E449: ������� ������������ ��������E44: ��������� ��������� ������� �������� ����������E455: ����� ������ � ���� PostScriptE456: ���� �������� PostScript "%s.ps" �� ������E456: ���� �������� PostScript "cidfont.ps" �� ������E456: ���� �������� PostScript "prolog.ps" �� ������E456: ���������� ����� ���� "%s"E457: ���������� ������� ���� �������� PostScript "%s"E459: ������� � �������� ������� ����������E45: ������ ��� 'readonly' (������� !, ���� ������ ��������)E460: ���� ������� ����� ������� (������� !, ���� ������ ��������)E461: ������������ �� ����������: %sE462: ���������� ����������� � ������������ "%s"E463: ���������� ������� ������� ������E464: ������������ ������������ ������ ����������E465: ������� :winsize ������� ������� ��� ������ ����������E466: ������� :winpos ������� ������� ��� ������ ����������E467: ������ ���������� ������� ������� ��������� ������E468: �������� ������������� ����� ���������� ����� � ����� �����������E469: ���������� ���� cscopequickfix %c �� %cE46: ���������� ������� ��������� ����� �� ����� "%s"E470: ��������� ������ ��������E471: �������� ������ ��������E472: �� ������ ������� �������E473: �������� �����E474: ����������� ��������E475: ����������� ��������: %sE476: ����������� �������E477: ! �� ����������E478: �����������, ����� �����������!E479: ��� �����������E47: ����� ��� ������ ����� �����E480: ��� �����������: %sE481: ������������ ��������� �� ����������E482: ���������� ������ ���� %sE483: ���������� ������ �� ���������� �����E484: ���������� ����� ���� %sE485: ���������� ������� ���� %sE486: ������ �� ������: %sE487: �������� ������ �� ����������� ������E488: ����� ������ �� ������E48: �� ���������� � �������E490: ������� �� ����������E492: ��� �� ������� ���������E493: ����� ������� ��������E494: ���������� w ��� w>>E495: ��� �������������� ����� ����� �� ����� "<afile>"E496: ��� �������������� ������ ������ �� ����� "<abuf>"E497: ��� �������������� ����� ����������� �� ����� "<amatch>"E498: ��� ����� ����� :source �� ����� "<sfile>"E499: ������ �� ����� �� '%' ��� '#', �������� ����� c ":p:h"E49: ����������� ������ ���������E500: ���������� ������� ������ ����� ������E501: � ���� �����E505: "%s" ����� ����� �� ����� (������� !, ���� ������ ��������)E505: %s ����� ����� �� ����� (������� !, ���� ������ ��������)E506: ����� � �������� ���� ���������� (������� !, ���� ������ ��������)E507: ����� ������ ���������� ����� (������� !, ���� ������ ��������)E508: ���������� ������� �������� ���� (������� !, ���� ������ ��������)E509: ���������� ������ �������� ���� (������� !, ���� ������ ��������)E50: ������ ����� \z(E510: ���������� ������ �������� ���� (������� !, ���� ������ ��������)E511: ��� ������� � NetBeansE512: ������ ������ �� ������E513: ����� ������, �������������� �� ������ (������� 'fenc', ���� ������)E513: ����� ������, �������������� �� ������ �� ������ %ld (������� 'fenc', ���� ������)E514: ����� ������ (��� ���������� �����?)E515: �� ���� ����� �� �� ������� �� �����E516: �� ���� ����� �� �� �����E517: �� ���� ����� �� �� ����E518: ���������� ���E519: ��� �� �������������E51: ������ ����� %s(E520: �� ���������� � �������� ������E521: ����� = �������� ������ �����E521: �������� ������ �����: &%s = '%s'E522: �� ���������� � termcapE523: ���� �� ��������E524: �������� ��������E525: ������ � ������� ������E526: �������� ����� ����� <%s>E527: �������� �����E528: ��������� ������ ������� �� 'E529: ������� ���� 'term' �� ����� �� ������ �������E52: ��� ��� �� \z(E530: � ���������� ���������� ������ �������� ����������E531: �� ������� ����������� ���������� ���������� ":gui"E533: ���������� ����� ����� � ��������� ������� �����E534: ���������� ����� � ��������� ������� �����E535: ���������� ������ ����� <%c>E536: �������� �����E537: ������� ��� 'commentstring' ������ �� ������ ������� ��� �������� %sE538: ��� �� �������������E539: ����������� ������ <%s>E53: ��� ��� �� %s%%(E540: �������� ���������������� �������E541: ������ ����� ���������E542: ����������������� �����E543: ������������ �� ���������E544: ���� � ���������� ��������� �� ������E545: �������� ��������E546: ����������� �����E547: ����������� ����� �������E548: �������� ������ �����E549: ������������ ������� ��������E54: ��� ��� �� %s(E550: �������� ��������E551: ����������� ���������E552: �������� ������ �����E553: ���� ��� ���������E554: ������������ ����� � %s{...}E555: ����� ����� �����E556: ������ ����� �����E557: ���������� ����� ���� termcapE558: � terminfo ��� ������ �� ���� ���������E559: � termcap ��� ������ �� ���� ���������E55: ��� ��� �� %s)E560: ������������: cs[cope] %sE561: ���������� ��� ������ cscopeE562: ������������: cstag <��>E563: ����� statE563: ����� stat(%s): %dE564: %s �� ������ ��������� ��� ������ ��� cscopeE566: ���������� ������ ����� �� cscopeE567: ���������� � cscope �� �������E568: ����� ���� ���� cscope ��� ������������E570: ��������� ����� � cs_manage_matchesE571: � �������� ��� ������� �� ��������, �������� �� ��������� ���������� TclE572: ��� ���� %dE573: ���������� ���������� id �������: %sE574: ���������� ��� �������� %dE579: ������ ������� �������� :ifE580: :endif ��� :ifE581: :else ��� :ifE582: :elseif ��� :ifE583: ���������� �������� :elseE584: :elseif ����� :elseE585: ������ �������� �������� :while ��� :forE586: :continue ��� :while ��� :forE587: :break ��� :while ��� :forE588: :endfor ��� :forE588: ������� :endwhile ��� ������ ������ :whileE589: ������ ���� 'backupext' � 'patchmode' ����E590: ���� ������������� ��� ���E591: ������� ���� 'winheight' �� ����� �� ���� ������ 'winminheight'E592: ������� ���� 'winwidth' �� ����� �� ���� ������ 'winminwidth'E593: ����� ��� � %d �����E594: ����� ��� � %d �������E595: �������� �������� ������ ��� ������ ������� �����E596: ���������� �����E597: ���������� ����� ��������� �����E598: ���������� ��������� �����E599: ����������� ������� ���� 'imactivatekey'E59: ����������� ������ ����� %s@E600: ����������� ������� :endtryE601: ������ ������� �������� :tryE602: :endtry ��� :tryE603: :catch ��� :tryE604: :catch ����� :finallyE605: ���������� ������ �� ����������: %sE606: :finally ��� :tryE607: ���������� �������� :finallyE608: ���������� ������� ������� :throw �� �������� � ���������� 'Vim'E609: ����� cscope: %sE60: ������ ����� ����� ���������� %s{...}E612: ���������� ������ ����� ������E613: ���������� ����� ��������: %sE614: vim_SelFile: ������� � ������ ������� ����������E615: vim_SelFile: �� ���� ����� ������ �������E616: vim_SelFile: ����� %s �� ������E617: �� ����� �� �������� � ���������� ���������� GTK+ 2E618: ���� "%s" �� ������ ������ �������� PostScriptE619: ���� "%s" �� ������ ��������� ������ �������� PostScriptE61: �������� %s*E620: ���������� ������������ � ��������� ���� "%s"E621: ���� �������� "%s" ����������� ������E622: ���������� ������� fork() �� cscopeE623: �� ������ �������� ������ cscopeE624: ���������� ����� ���� "%s"E625: ���������� ����� ���� ���� cscope: %sE626: �������� � ���� ���� cscope �� ��������E62: �������� %s%cE63: ������������ ������������ \_E64: %s%c �� �� ��� �� �������E655: ������ ����� ����������� ����� (����?)E658: ������� ���������� � NetBeans �� ������ %ldE659: ���������� ������� ���������� ���� PythonE65: ����������� ������� �����E661: � ��������, ������� '%s' �� %s �����������E662: � ����� ������ ���������E663: � ���� ������ ���������E664: ������ ��������� ������E665: ���������� ������� � ����� ����. ����������, ���������� ����� �����E666: ��������� �� �������������: %sE667: �� ������ ������� ����� fsync()E668: ���������� ����� ������� � ��������� � ���������� � NetBeans: "%s"E669: �������� ������ � ����� �����E66: \z( �� ����� �� ����������� ����E670: ���� ������� �������� ����� ��������� �� ������ ����: %sE671: ���� � ���������� "%s" �� ����������E672: ���������� ����� ���� ������ ��������� MDIE673: ������������ ������������ ��������� � ����� ��������.E674: printmbcharset �� ����� �� ����� ��� ������������� ���������.E675: ��� ���������� ������ �� ������� �� ������������� �����.E676: ��� ������ ���������� �� ������ acwriteE677: ����� ������ �� �������� ����E678: ����������� ������ ����� %s%%[dxouU]E679: ���������� ���� ��� �������� syncolor.vimE67: \z1 � �.�. �� ����� �� ���������� ����E680: <buffer=%d>: ���������� ����� ������ E681: ����� �� �������E682: ���������� ������ ������ ��� ����������E683: ��� ����� ����� ��� ���������� ������E684: ������ ������ �� ��������� ���������: %ldE685: �������� �����: %sE686: �������� %s ������ �� �������E687: ����� ���� ��� ��������� ������E688: ����� ���� ��� ��������� ������E689: �������������� �������� ����� ������ ��� ������E68: ����������� ������ ����� \zE690: �������� "in" ����� :forE691: ������ ����� ��������� ����� �� �������E692: ����������� ������ �� �������E693: ����� �� ����� ����� ��������� ����� � ������ �� �����E694: ����������� ������ �� ����� �� �����E695: ���������� ������������ ����� �� �����E696: �������� ����� � ������: %sE697: �������� �������� ������ ']': %sE698: ������ ������� �������� ��������� �� ����������E699: ������ ����� ����������E69: �������� ] ����� %s%%[E700: ���������� �����: %sE701: ���������� ��� �� len()E702: �������� ��������� ������ �������� ��� ����������E703: ������������ ����� �� ����� ��� �����E704: �� ���������� ����� �� ����� ������ ������� � ��������� ����: %sE705: �� ���������� ����������� � ��������� �������: %sE706: �������������� ���� ���������� ��: %sE707: �� ������ ����������� � ����������: %sE708: [:] ������ �� ���������E709: [:] ������� �������� ������E70: ������ %s%%[]E710: ��������� ������-������ ���� ��� � ����E711: ������-������� �� �������� ��������� ���������E712: �������� %s ������ �� ������� ��� �������E713: ���������� ���������� ������ �� �� ������E714: �������� ������E715: �������� ������E716: ��� ��� � �������: %sE717: ����� ��� ��������� � �������E718: �������� ����� �� �����E719: ���������� ���������� [:] �� �������E71: ����������� ������ ����� %s%%E720: �������� �������� � �������: %sE721: ������ ��� � �������: "%s"E722: �������� ����� � �������: %sE723: �������� �������� ������ '}': %sE724: ������ ������� �������� ��������� �� ����������E725: ���� ������ dict ��� ������: %sE726: ������� ���E727: ����� ����� ����E728: ������������ ������ ��� �����E729: ������������ ����� �� ����� ��� ������E72: ����� ������ ����-�����E730: ������������ ������ ��� ������E731: ������������ ������ ��� ������E732: ������������ :endfor � :whileE733: ������������ :endwhile � :forE734: ���������� ��� ���������� �� %s=E735: ������ ����� ��������� ����� �� �������E736: ����������� ������ �� ������E737: �� ��� ���������: %sE738: ���������� ��������� ��������� �� %sE739: ���������� ������ �������: %sE73: ���� ����� ������E740: ������ ����� ���������� �� ������ %sE741: ������� %s �������������E742: ���������� ������� ������� %sE743: ������ ������� �������� ��������� �� (���)����������E744: NetBeans �� ��������� ��������� � ����� ����� �� �����E745: ������������ ������ ��� �����E746: �� ������ �� ������������� ����� ����� ������: %sE747: ����� �������� ����������, ����� ������ (������� !, ���� ������ ��������)E748: ��� ��������� �������������� ��������E749: ������ �����E74: ������ ������ �������E750: ������ ������������ ":profile start {��-�����}"E751: �� ������� ����� �� ������ �������� ������� �������E752: ��� �������� ����� �����������E753: �� �������: %sE754: ������������� �� ����� 8-�� ��������E755: ����������� ������ � %sE756: �������� ����������� ������E757: ��� �� ����� �� ���� �����������E758: ���� ����������� �������E759: ����� ������� � ����� �����������E75: ������ ������� ��E760: ��������� ���� �� ������� � %sE761: ����� ������� � ����� �������� FOL, LOW ��� UPPE762: ������ � FOL, LOW ��� UPP �� ��������� ���������E763: ������ ���� ������� � ����� �����������E764: ��� '%s' �� �����������E765: 'spellfile' �� �������� %ld ���������E766: ����������� ���������� �� printf()E767: ������ ����� ���������� �� printf()E768: ����-���� ���������: %s (:silent! ���� ������ ��������)E769: �������� ] ����� %s[E76: ������ ����� �������� [E770: ��������������� ������ � ����� �����������E771: ����� ���� �����������, �������� ��� ����������E772: ���� ����������� ����������� �� ����� ����� ������ VimE773: ���� ������� ����� �� "%s"E774: �������� ���� 'operatorfunc' ������ ����� ������E775: eval �� ��������E776: ��� ������ ������������E777: �������� ������ ��� ������E778: ��� �� ����� �� ���� .sug: %sE779: ����� ���� .sug, ������� ���������: %sE77: ������ ����� ��� ������E780: ���� .sug �� ����� ����� ������ Vim: %sE781: ���� .sug �� ������������� ����� .spl: %sE782: ����� ��� ������ ����� .sug: %sE783: ��������� ������ � �������� MAPE784: ���� ����� ������� �������E785: complete() ����� ����������� ����� � ������ �������E786: �������� �� ����������E787: ����� ���������� ��������E788: ����� �� ���������� �������������� ������� ������E789: �������� ']': %sE78: ���������� �������E790: ���������� ����� �� ���������� ����� �����E791: ����� ����� ��������� ���������E792: ������ �� ���E793: ���� ��� ������� ������� � ������ ������E794: ���������� ������� ��������� � �������: "%s"E795: ���������� ������ ��������� %sE79: ���������� ������� ����������� �� �����E800: �������� ����� ��� ��������
E804: ���������� ���������� '%' � ������ � ������� �����E805: ������������ ����� � ������� ����� ��� ������E806: ������������ ����� � ������� ����� ��� ������E807: ������� �������� ���� � ������� ����� �� printf()E808: �������� ����� ����� ��� � ������� �����E809: #< �� �������� ��� ����������� +evalE80: ����� ��� ������E810: ���������� ������� ��� ������� �������� ����E811: ����� �� ���������� ��������� ��������� � ������E812: ���������� �������� ����� ��� �� ������E813: ���� ����� ���� ����������E814: ���� ����� ����, �������� ����� ���� ����������E815: � �������� ��� ������� �� ��������, �������� �� ��������� ���������� MzSchemeE816: ���������� ������� ���� patchE817: ����������� ������������ ���������/������ ������ ���� � BlowfishE818: �� ������ ������� ���� sha256E819: �� ������ ������� ���� BlowfishE81: ������������ <SID> ��� ��������� ������E820: sizeof(uint32_t) != 4E821: ���� ��������� ���������� �������E822: ���������� ����� ���� ����� �� �����: %sE823: ��� �� ���� �����: %sE824: ������������ ���� �����: %sE825: ���� ����� �������� (%s): %sE826: �� ������ ��������� ���� �����: %sE827: ���� ����� ���������: %sE828: ���������� ����� ���� ����� �� ������: %sE829: ����� ��� ������ ����� �����: %sE82: ���������� ������ ���� ���� �� ������ ������, ���...E830: �� ������� ������ ����� %ldE831: bf_key_init() ����� � ����� �������E832: �� ����������� ���� ����� ����������� ���� �����: %sE833: %s ���������, � ��� ����� Vim �� ������������ ����������E834: ����������� �� �������� 'listchars'E835: ����������� �� �������� 'fillchars'E836: ����� Vim �� ����� ������� :python ����� ����������� :py3E837: ����� Vim �� ����� ������� :py3 ����� ����������� :pythonE838: NetBeans �� ������������� � ���� ���������� �����������E839: ����� ������������� �������� ����E83: ���������� ������ ���� �� ������, ��������� ������ �����...E840: ����� ������������� ������� �����E841: ����������������� �� �� ����� ����������� �� ������ ����������E842: ��� ������ ������ �� ����������� "<slnum>"E843: ����� ��� ���������� ��������� ����-�����E844: ������������ ������� ccharE845: ����������� ����������� �����, ������ ���� ����� �� �����E846: ��� ������ �� ����������E847: ������ ����� ������������ �������E848: ������ ����� ������������ ���������E849: ������ ����� ����� ��������� � ����������E84: ������� ������� �� ����������E850: ������������ �� ��������E851: ���������� ������ ���� ������ �� ����. ����������E852: �������-������� �� ������ �������� ����. ���������E853: ��������� �� ���������: %sE854: ������ ����� ��� �� �������������E855: ���������� ������ ���������� ������E858: Eval �� ��������� ����������� ������ PythonE859: �� ������ ������������ ��������� ����� Python � ������� VIME85: ����� � ������ ����������E862: ���� ���������� ���������� g:E864: ����� \%#= ����� �� ����� 0, 1 ��� 2. ����� ����������� ������������ �����E865: (��) ���������� ���� ���������� �������E866: (���. �������� ��) ���������� %cE867: (��) ���������� �������� '\%%%c'E867: (��) ���������� �������� '\z%c'E868: ����� ��� �������� �� � ������� ���������������!E869: (��) ���������� �������� '\@%c'E86: ����� %ld �� ���������E870: (���. �������� ��) ����� ��� ������ ����� ���������E871: (���. �������� ��) ��������� �� ����� �������� �� ����������!E872: (���. �������� ��) ������ ����� '('E873: (���. �������� ��) ����� ����������� ��������E874: (���. �������� ��) ���������� ��� �� �����!E875: (���. �������� ��) � ����� ������� ������ ����� �������� (��� �������������� �� postfix � ��)E876: (���. �������� ��) ����������� ����� �� ������� ����� ��E877: (���. �������� ��) ���������� ����� ��������: %ldE878: (��) ���������� ������ ���� �� ������ �����!E879: (���. �������� ��) ������ ����� \z(E87: ��� ��������� �����E881: ���������� �������� ���� �����E882: �������� ��������� ������ �������� ��� �������� ��������������E883: ������ ������ � ������� ������� �� ����� �������� ��� ��� ����� �����E884: �� ������ �� ����� �������� ��������: %sE885: ���������� ������� ����� %sE886: ���������� ������������ ���� viminfo � %s!E887: � �������� ��� ������� �� ��������, �������� �� �������� ����� Python site.E888: (���. �������� ��) ���������� �������� %sE88: ��� ����� �����E89: �������� � ������ %ld �� ������� (������� !, ���� ������ ��������)E90: ���������� ������� �� ����� ��������� �����E91: �������� ���� 'shell' ������ ����� ������E92: ����� %ld �� ������E93: �������� ������������ �� %sE94: ��� �������������� %s ������E95: ����� � ����� ������ ��� ���������E96: ������ �� ������� ����� �� ����� ��� � %ld ������E97: ���������� ������ ���� ������E98: ���������� ������� ���� diffE99: ������� ����� �� ������� � ������ ����������: �������������� ����������������� ���� � ����� ������&���������� � ����� Vim������������ � &���� Vim-������������� � ��������� Vim � ������������ � &����� Vim������������ �������� ���� � ����� Vim���������:���� ���������� ��������� ������������ ����� �� ���������: ������� ����� ����-�����, ������ ������� ���������� (0 �� ����): ��������� ���� �����: ����� ����� �������. �� ���������� �������� "cont"������ � ����� Ex. �� ������� � ���� ����� �������� "visual"���������� � �������������� ������� �������: �������� ���������� gvim � ����!���������� ����� ��� ��������� %s:���� ���������� ����������� ����� ��� ���������: %d �������������� ��������������� ����������� �������: %s���������� ������ ���������������: %s�������� ��������� ����������� �������: %s���������� ������: %s��������� %s������� ���� MAP � %s, ������ %d������� ���� REP(SAL) � %s, ������ %d�������� Y ��� N � %s, ������ %d: %s�������������� ��������������:
FLAG ����� ����������� ������ � %s, ������ %d: %s����� ��� ��������� ���������� ����: sys.path_hooks �� ������ �������
������� ������ �������:
� ������� vim.path_hook  � sys.path_hooks
� ������� vim.VIM_SPECIAL_PATH � sys.path
����� ��� ��������� ����: sys.path �� ������ �������
������� ������� vim.VIM_SPECIAL_PATH � sys.path���� "%s" �� ������������������ ���������� �����, ���������� ���������� �������� ��������� "%s" ����� ����� ������� ����� �� �����.
��, ��������, ���� ������ �������.
������ ����������?����-���� ��������������������� � ������ (���������� '\\' �� ������ '\')����� &������������ ������������ ������ (���������� '\\' �� ������ '\')����� ��������� ���:�������� ������ ����� ����� %s����� ������ ����� � %s �� ������ %d: %s���� �� ������ ������ � %s, ������ %d: %s����� '%s' �� ������ ���������������� ������ font%ld ������ �� ����� ���� ����� ������ font0������ ������ font0: %ldFont0: %s������ ������ font1: %ldFont1: %s�����:����� ����� ������������� ��������������� docu������������ ���, ���������� Vim!����� ���� � ������ ����� ��� ����!���� ��������� ����/������������� %d ���� � �� ASCII ��������� � %s�������� %d ���� � �� ASCII ���������������������� ������� ������ � ����� tags������������ �� ���������������� ���� � %s �� ������ %d: %s������������ �� ������������������� ������ ������������ ���������� �����������������������: ������������������� �������� ������������� ����������� ����������������� ����� ������� � %s, ������ %d: %s����������� ������� FLAG � %s, ������ %d: %s������� ������ �� ��������!���� ����������������: �������� ������ ��� ��������������� Lua �� ����� �� ���������.���������������� ���������������� ���� �������������������������� �������� �� ������� ���: ������� ������� <vrr@users.sourceforge.net>, ������ ���� <alyoshin.s@gmail.com>�������� '>'�������� ������ FOL/LOW/UPP � %s�������� ������ SOFO%s � %s� ����������, �������� ��������:��������� %s ������ %ld
��������� Amigados ������ 2.04 ��� ����� �������
�������� �� ��������� �� "%s"NetBeans �� �������� ������ ����� ��������� ����������� �������������������� ������� �� ������� ������ �� ����������������� �� ���������� ��������� �� ������������ ��������� ������: �������� ������� �� ������.
������ ������ ���������� �� ��������� ����������� ���������� ��������� ��� ��������, ����� ����������� ������ ������������� ���� ��������� ����-����������� ����������� ����������; ��������� ���������������, ���������� ������������, �� ���������.�� �������������� ����� �� �������, ������ �������: %s����� ��������������� ���� ����� �������� ������: %ld��������� ���������� �������...����� �������...�������� ������� ������ X������� ������ X �� �������� � ��������� ����������� ������ X ����� %ld msec������ ���� "%s"����������� ��������� ���� "%s"?������� %d������� ����� ������� NetBeans �� ��������������-�������������� ������ ���!��� � �����:������������ ������� ������� �� ������ ������: %s������ �� ������������ �� ������: %s��������� �������� ������...������� ENTER ��� ������� ������� �� ����������������� �� ���� ����������.���������: %s���� '%s'���� ������������� ���. %d (%d%%)������ �� ������������������� ����� �������� %s ...������ ����������� ����� �����������...������ ����� ������ %s ...������ �� ������������ ������ ����� stdin...������ ����� ����������� "%s"������ ����� �����: %s������ ����� viminfo "%s"%s%s%s������ ����� ���� %s ...�������������� ��������. ���������� ������� � ������ ������������.�������������� ��������. ��������, �� �� � ������.������ �������������� ��� ���������������������� &���������� ����� ��� �������:������������ �� ��� �������������� �� ����������� �� ������������� � Vi-����������� ���������������� ������, ������� ��������� ������� ������� ������ SNiFF+ ������� ������������ �������������������� ��������������� ��������������� ����������������� ����������� �������� � "%s"?�������� ������: %s�������� ������ ������: %s�������� ����� ����� �����.��������: %s������ ���������: �� ���� ��������� �������� �������������� ����������� "%s"����� "%s" � "%s"����� ��������� ����� %s����� � ����� ����� %s��. ":help E312" �� ������������� ���������.��. ":help W11" �� ������������� ���������.��. ":help W12" �� ������������� ���������.��. ":help W16" �� ������������� ���������.���� ��������������� %s%ld �� %ld �����; %ld �� %ld ����; %ld �� %ld ����������� %s%ld �� %ld ���.; %ld �� %ld ����; %ld �� %ld ����.; %ld �� %ld �������������������� �� ����...������� �������� ������������ ����� � �������������� ����� � ����������� �������������� ���������������� docu������� ������������ �������������� ������ � ������������� ������ ���������� ��� ������������� �� %s:������:�������� ����� ����� �����, ����� ������Sniff: ����� �� ���� ������. ��������������������, ���� ������� "%s" �� ��������������, ��� ���������������������, ����� %ld ���������������������, ����� ������� �������: ���������� �������� ���������� Perl������� ������� Vim�������� � ���������� Vim!������ ����� �����������:������ ����-���� "����-���� "%s" ���������, �����������?����-���� ��� ���������!����-���� ���������: "%s"��������� ����-����:������� %d������� ��� ����������� ������ X �������� ����������������� �� ������������ Vim���� �� ������ ������������ ����������������� Vim �� ������������� � �������� ���������� ��������� ��������� ������� cscope �� ������������ ���������� ����.
���������� ����� ����������/������������������ ����� ���������� "+�������", "-c �������" ��� "--cmd �������"������ ����� ������� ������������ ����� ���������� ������������������� ����� �������� ��������������� ����� �������� ��������� �/��� ������� ������������ ����� �������� � %s, ������ %d: %s���������� ��������� ����: %d����� ����� �� ������ � %s ���. %d: %s������� :quit<Enter>  �� ���� �� Vim������� ����� � <Enter> (����� �� �����): ������� ����� � <Enter> ��� �������� ��� (����� �� �����): ���������� ������� ���� 0 �� ���������� ��������������� �� ������� �������������������������� ����������� ��������������������� ����� � %s, ������ %d: %s������������� ��� ��������� ������� � %s, ������ %d: %s��� ������������������� Vim ������ 3.0.
������ ������� ������� ���������� CUT_BUFFER0������������ ��� ��������� �� ����-����� �� ���������� �����.
���������� ����-���� "%s"VIM � �������VIM � ����� � ������...VIM � �����...VIM � Vi IMproved (������� Vi)����� VIMVIM: ���������� ����� ����!
VIMRUN.EXE �� ������ � ����, �������� � $PATH.
������ ������ �� ����� ������������� ����� ��������.
������������ �������� � :help win32-vimrunVim � ���� ������Vim E458: ���������� ������ ����� � ������ �����, �������� ����� ����� ���������� ������������������������ Vim���������� ���� Vim����� Vim����� Vim: ~a���������� ����� Vim � ����� %d
Vim ��� �������� �������������� ��������� � ������ �����Vim: ��������� ������ %s
Vim: ����� ����� �����, ���...
Vim: �����: �� ������ �������� gvim �� NetBeans
Vim: �������� ���� ��� ���������� ������
Vim: ������ �� ������������ ������ ����� stdin...
Vim: ������ ������ �� ���������� ����� �� ��������� �������
Vim: ��������������: ���� ��������� �� � ���������
Vim: ��������������: ���� ����������� �� �� ��������
W10: ��������������: ��������� ����� � ������� ����� �� �����W11: ��������������: ���� "%s" �� ������ ����� ����� �������������W12: ��������������: ���� "%s" � ����� Vim ��� ������� ���������� ���� �� �����W13: ��������������: ���� "%s" �� ������ ����� ����� �������������W14: ��������������: ������������ ������ ��� ������W15: ��������������: ���������� ���������� ������. �������� �������� ^MW16: ��������������: ����� ������� � ����� "%s" �� ������ ����� ����� �������������W17: �������� ������� ����������� UTF-8, ������� ':set encoding=utf-8'W18: ����������� ������ � ����� �������������������: ���� ������ � ������� �����!!!��������������: ���������� Windows 95/98/ME����������������������������: ���������� ����� ������ ���� "%s.%s.spl" ��� "%s.ascii.spl"��������������: ���������� ����� ������ ���� "%s_%s.spl" ��� "%s_ascii.spl"��������������: ���������� ������ � ������ ����� (�������� ����������)��������������: ��� �������� � ������� NOBREAK��������������: ������ %s �� ���������������������������: �������� �� ����� ������ ������������ ������� �����: "���� ����� �� �����������, ���������� �������: %s��������� �� ��������, ��� �� ���� �����: %s��������� ����: X %d, Y %d����� '%.*s' ��������� � %s����� '%.*s' ������� �� %s����� �� ������ ������������� ���� �������?����� ����� ����������� %s ...����� ����� ���������� ����������� ����������� %s����� ����� �����: %s����� ����� viminfo "%s"����������� ������� CHECKCOMPOUNDPATTERN � %s, ������ %d: %s����������� ������� COMPOUNDMIN � %s, ������ %d: %s����������� ������� COMPOUNDRULES � %s, ������ %d: %s����������� ������� COMPOUNDSYLMAX � %s, ������ %d: %s����������� ������� COMPOUNDWORDMAX � %s, ������ %d: %sXSMP ������� �������� �� ����������� ICEXSMP ������� �������� SmcOpenConnection: %sXSMP ����������� ������ ������������XSMP ������ ���������� ICEXSMP �������� ����������Xref ���������� �� xref ��Xref ������� ��Xref ������������������ ������� �����[���� ����������� � ������ %ld][������� ������ CR][�������][����������][���� ������ �����][�������][������������ ���� � ������ %ld][���������� ������� ������][������ ������������][��� ��������������][���� �����][���� ����][���� ����][����][��� �����][�������� �� �������]
[�� �������������][������ ������][������������][������ ���� �����������][����� ������][��][����� �����][��������][����] re/malloc() ����� %lu, free() ����� %lu

[�������� ��������][��������������][����������][������ dos][dos][fifo/������][fifo][���� ..] �������������� ������� ������[������ ������ ������][������ mac][mac][noeol][����� �� �����][������][������ unix][unix]��������� add()����������� ��� ����� �������� diff)������ �������� ���������������� �������� %d � ���������� ������ �������� %d������ �������� ���������������� �������� ���� ��� %d � ���������� ������������ ������� �� ���������� ����������� ������� �� ������� ������������� ������� �� ������� ��������-�������� ����������: %s <������=%d>����������� %s��������������� ���� �� �����: %ld���������� ���� �� ����� ���������������� ����� ���� ��������� � ����������� inputrestore() ������� ���, ��� ����� inputsave()���� %s���������� ������ ������� OutputObject���������� ������� ���� 'charconvert'���������� ������ ����� �������?!
���������� ������ ������� ������ ��� ����: ����� � ������� ����������������� ������ ���������������� ������ ������� vim.Dictionary���������� ������ ������� vim.List���������� ������ ���������������� ������� ���������������� ������� ��� ������� ���������������� ������� ������������ ���������������� ������� ������������ ���������������� ����� ���������� ��������������� ������� � ������� ������: ����� ��� ���� � ������� ����������������� ��������������� ������� � ������� ������: ����� �� ����� ��� ���� �� �������������������� ������� ���������������� ������� �������� �� ������ ����������������� ��������� ������� %s���������� ������� ������ ��� ���������������� �� ������, �������� �����������.���.��������������: %s��������������������� � %s���������� ����� "%s"���������� ����� �����cs_create_connection: �� ������ ������� execcs_create_connection: �� ������ ������� setpgidcs_create_connection: �� ������ ������� fdopen �� fr_fpcs_create_connection: �� ������ ������� fdopen �� to_fp������ cscope:
���������� � cscope %s ����������� ������� ������� ��� �������� ������� '����� ���� 1?������ ���������������������� ��������� �� �������� ����������������� ��������� �� ��������� ����dlerror = "%s"�� ������ �� ���������, ���� ���� �� ����� ������ �������!����� ��� �� ����������������� ������������������ ������������ ������ Scheme � Vim��������� ����������� ����� %d �� %d; %d ������������ 3-������ ��� �������� imp.find_module(), �� ������ %s������� 3-������ ��� �������� imp.find_module(), �� ������ ������ � �������� %d������� �������� bytes() ��� str(), �� ������ %s�������� int() ��� ���-�� ���������� � int(), �� ������� %s�������� int(), long() ��� ���-�� ���������� � long(), �� ������� %s������� �������-���������������� ������� 2, � ������ ��������� ����������������� %d������� �������� str() ��� unicode(), �� ������ %s������� ����� vim.Buffer, �� ������ %s������� ����� vim.TabPage, �� ������ %s������� ����� vim.Window, �� ������ %s������� ������ ��� ����������������� extend()���������� ������� ������� � ���������������� ������� �� '%s' � ���������������� ������ ����������������� ����� ���� � ������ ����������������� ������������ ��������������� ������� ����� %s���������� ������� ������������� ��������� �� ����� %d���. �����������
�� ����� / �������� / ������
��������� filter()�������� ������ %s ������������� �����: %ld����� %s �� �������������������� ������ �� ��������� ����� ����� ��� ������������� gvimext.dll��-������ ��������� ��� ������������������� ����� ���� ---
������ ������ �� ���� ������ ��� �������, � �� %s��������� insert()�������� �����: �������� ����� �� NULL�������� �����: �� ������ ������� ������� � �������������� �����: �� ������ ������ ������� VIM-������ %d�������� �����: imp.find_module ��������� �������� �����: ���������� ��� �������������� �����: ��� �������� VIM-������ %d�������� �����: ����������� �������� �������������� �����: ���������� ��� �������������� �������: %s���������� ����� ����������������� ������������������� �� ������������� ����������� (������� ��� ���� 'opendevice')������ ����������� ������ �������� ������ ������ ��� �����������, �������� �� ����������� ����� �� ����� (������� !, ���� ������ ��������)������������ ��������������� %4ld:������ %6d, ����� %6d � %s������ %ld���. %ld �� %ld --%d%%-- ���. ������ %ld: %s������ %ld: ���������� ����� "%s"������ %ld: �������� "%s"���. ������������ ������ �� ��������� �������������� ������ �� ��������� �������������������� ������ �� ��������� ����� ����� ��� �������������� ������ �� ��������� ��������������� ����������������������������� map()�������� ������� ������ �� ����� ��������������� �� ����������������������� %d������������ %d �� %d�������� mch_get_shellsize: �� � �������??
��� ������->�������� ���������->����� �������                     ��� ������->�������� ���������->������������ � Vi                ��� �������->�����             �� ������� ���������     ��� �������->����/��������� �� ������� ���������       ������� ������� ���������. ������������. ���������NetBeans �� ������������� � ���� ���������� �����������
������ ����� �������
������������ � cscope ����������
��� ���������� ������������ ����� ���������� ������ ������� ������������� �� ���������� � ������� Vim�� ������� �� ������� � 'runtimepath': "%s"���� �� ����������� �����  �����.  �����              ������������� ������ �� ���� ��� ����� �������� ������ �� ���� ���������� pe_line_count ����� ����������� ������ ����� ���������� vimrc�������� ��� ���������� ���������� �� ������ NetBeans������� ����� �� �����: ������������������� remove()������� �� %s? (y/n/a/q/l/^E/^Y)��������� reverse()�� %d ������� %d����� ����� ��������� � ��� �������������� ����� ��������� � ���� ���������������� ��������� ����� ������� � ����� %d������������ ������ �� ����� �� ��������������� sort()�������� ������ "%s"������� stack_idx ������ �� ����� 0������ �� ����� �������� ������ ����� ���������������� �� ����������� � ����� ���� C���������� ����� ����� %d �� %d%s�� ������ %s �� %s�������� :help cp-default<Enter> �� ������������� ����������������� :help iccf<Enter>       �� ������������� ����������������� :help register<Enter>   �� ������� ���������     �������� :help sponsor<Enter>    �� ������� ���������     �������� :help version8<Enter>   ���� ����� �� ���� ������  �������� :help windows95<Enter>  �� ������� ���������     �������� :help<Enter> ��� <F1>   �� ������� �������        �������� :q<Enter>               ���� ���� �� ��������     �������� :set nocp<Enter>        �� ������� � ����� Vim     ���������� ������������ %s � ������ VIM���������� ������������ %s � ��������� VIM���������� ������ ������� �������������� ������� �������� ��� %s���������� ������� ��� %s ��� ���������� ��������������� uniq()�������������������� ����: ���������� ������������� vimOption�� ��������� �������� ������ %s������� ������ ������ �� ������������� ���� C������� ������ ���� �� ������������� ���� C����� ����� VIM������ ���� �� ��������� �������������������� ����� ����������� ���������� �����������.� ���������� ����������� Carbon.� ���������� ����������� Cocoa.� ���������� ����������� GTK2.� ���������� ����������� GTK2-GNOME.� ���������� �����������.� ���������� ����������� Photon.� ���������� ����������� X11-Athena.� ���������� ����������� X11-Motif.� ���������� ����������� X11-neXtaw.��� ����������� ����������.����� � ���������� ������� ��� ���� 'opendevice'PK�j�Z)Ǎ̈́���)vim80/lang/zh_TW.UTF-8/LC_MESSAGES/vim.monu�[�������,mY�v�v�v
�v�v�v'w/=wmw�w�w0�w�w�w+�w!x"<x_xpx5�x�x�x�x�x�y,�y;�y+zBz`z}z�z�z�z�z�z�z{{6{0M{.~{/�{1�{0|
@|N|d|{|
�|�|
�| �|�|�|}!"}D}"c}�}�}�}@�}�}~+~<~L~[~/n~=�~�~�~
101b����-�"�B�W�i�����3��3�$�C�`�x�������
Ձ����+�
C�$Q�v� ������;ӂ��7+�0c�#��	��ƒۃ���

��2�C�O�g������!��Ä҄���9�A� I�j���������
��ͅڅ��
�(�	5�?�_�k�p�!u�	��"��*����)�6�M�
T�
b�m�
v���������5̇�-�1B�&t�����Ȉڈ���$(�M�
]�h�t���������ԉ���
��5�F�R�a�s�
������
����Ҋ��	��$�3�27�=j�����'‹-�5�N�k�A��ƌ���	��4�E�[�-y���$Ǎ�
��'�;�G�?^�5��!Ԏ%��9�EV�9��C֏I�Hd�;��0�6�8Q�3��-���%�,�@�Y�s�&��,��#ג4�� 0�@Q�-��0���;�B�"b���>��)Ք>��<>�{�#��:��'��9"�\�$u�9��4Ԗ;	� E�>f�1��/ח�-$�R�.a�B��"Ә/��2&�*Y���+��%Ι'�(�<E�E��.Ț-��$%�J�<c���*��&���,�>�Q�Z�f�{���������ʜ
ל�"���,�D�\�w�)����$��!ߝ��"�"?�b�{�1��?ƞ��&�-�A�R�h���������Ο���'�$/�T�!e���������נ�#�'�.�I�Qg���ȡء� �&�?F���
��
��$��+Ѣ.��,�F�U�"n�	����!��ɣ"ΣE�7�%T�#z�-��̤��$�&@�g�y�����¥ڥ'��)5�+_�@��-̦��5�M�j�����/��1��E5�{�-��7ƨ#�� "�:C�5~�&��"۩&��$%�#J�!n�=��5Ϊ �(%�7N�!��,��ի��  �#A�#e�������Ӭ��'�F�0e�$��!�� ݭ(��4'�,\�������Ю ��#�1=�o�!��%��%ԯ$��� 8�Y�u�?��&а!���
5�AC�%��%��"ѱ9�'.�(V�2�*��!ݲ!��)!�%K�!q�4��:ȳ&�;*�;f�)��0̴���8�Q�c�,|�!��8˵&�#+�O� g�/��"��۶-��+�D�/\�*��(��#�� �;�X�t�>��ϸ��"�=�\�r���!��ǹ9�1�)N�1x�%��7к�A"�?d�����ӻ!��0�K�0j�4��$м)��N�,n�L��8�!�,A� n� ��#��Ծ�7	�NA�M��޿���$2�!W�3y�,��2�%
�*3�9^�(����"���#�A�`�}���B����0�!E� g�<��(�����+#�2O�$����,����H
�,V�����"�������7�V�9u�������0��#,�'P�x���,��&�����+)�2U�-��(����"��'�'C�,k���.����#��,"�WO�)��"��,��%!�G� d���2��2��2�7�!T�v���2��5��'
�#5�)Y�,��'��$��%��#�=�Z�o���$��&�� ��'�*<�#g�'��%��3��!
�/�+N�z�*��-��$���7�V�r��� �� ��$��$�),�,V�����,������%�4�=T���������'��&�C�$`�#��0��.��0	�:�Z�w���������-�� �;�7V�)����$��(���=�%L�$r�������'���'-� U�v����� ��7��0�J�#i���"��(��!���-9�1g�5����.��*�1D�9v���*��&��+"�,N�+{�4��<��+�'E�m�������������
� �3�"B�e�x������������7�Q�m�������:��=�<E�6��<����"�2�4G�5|�4��3���0-�^�$q�%���������.�I�[�{������������,�'I�q���!������"���13�e�|���"���������5�I�\�u��������������)�F�`�*�)������ �!�<�M�6f�#����)��2�:�&Z�K�� ����
�(�H�a�y������������+:�f�%��7��5���7�,V�������)�� ���+�G�b�|�������0���3�R�o�4��.��$��)�1A�;s���8��*��#�$C�h�%��,��������&�-?�&m��� ������	�+#� O�p�?��)����6�#>�2b� ��������!�%�C�X�q���������9���(/�+X�/������!�"2�BU��������)-�'W����'���	����/�J�#`�������$��.��.*�6Y�����6��#�	��$�<�S�h�
u����������(�	�%��$�
0�;�X�)g���
����
������
�%+�Q�g�	|�������
��	�����'�	9�
C�N�2d�������$�/�'�B�X�
o�$z����������!�-�L�O�`�}�#������.��
+6	LVv��
������9.h�
������(5JRct
�	������9�
7EXs&��?�	0C"[~����
�'�F3z������"8Q0`;� �>�-EIi(�������+�.>Zj	|���F%	l	
x	
�	�	+�	�	�	
!
%>
d
(t
�
1�
+�
*B&\9�M�>)J5tA�4�$!
6F
"}
�
?�
"�
 <Qe !�#���
"3BO
S^q	~����
��
�
�		9F	Z
dr
w5��	���
��&� ':GM
U`i
{�:�"�"� $1=
o$z"��<�1ATnH{C�9Lgm	u� �-�-�#5Qp�=��$�4I[mr����
� � 
+
>IRp}�������#1'1Y1�1���%4
CN
S ^����	�"�$+$Pu|��
����#2:.F.u.�.�..1.`.�.���	&0DSd
t���	�����% �F��
�
�
 '# /K { � � :� 
� 
!3!!J! l!�!�!)�!�!�!"&"�8"!�"9�"1#H#b#{#�#�#�#�#/�#$$3$I$$_$"�$#�$%�$$�$%%%@%T%
l%z%�%�%�%�%!�%(�%%&!7&Y&p&
�&I�&'�&'''.'='%M'Ds'�'"�'�'
(6(5P(�(�(�(�(3�(")<)S)d)$)$�)2�)A�)#>*b*#�*"�*�*
�*�*++!'+I+
Z+$h+�+6�+�+"�+, ",@C,�,
�,K�,=�,)-	H-R-	k-u-
�-	�-	�-�-�-�-#�-#�-!.).1.>.^.m.�.�.�.�.�.#�.//9/A/I/
Q/_/k/ �/�/
�/�/	�/�/�/�/�/!0
"0!-0&O0v0
�0�0
�0�0�0�0�0�0
11
1
)1
41#?1Cc1�1-�1&�1.2>2W2p2�2�2�2 �20�2%3	?3
I3W3d3t3�3�3�3�3�3�344	&404@4P4g4�4�4�4�4�4�4�4�45*5
F5KQ5_�5�5	6263Q6-�6�6�69�6#7@7P7_7l7x7�7�7'�7/�7 8268 i8�8�8�8
�8�86�8(9 >9"_9=�9A�9=:@@:C�:B�:;;%D;:j;6�;6�;&<:<(W<�<�<�<�<�<M�<#==+a=�=B�=+�=1>M>@c>�>�>�>?�>.6?Fe?6�?C�?+'@7S@1�@A�@�@%A7?A:wAH�A$�A> B9_B.�B&�B0�B C 1CIRC+�C?�C7D.@DoDJ�D�D,�D8$E5]EI�E,�E.
F*9FdFH~F�F(�F(G7GFG_GxG�G�G�G�G�G
�G�G
HH!H2H/:H
jH
xH#�H#�H�H�H'�H	%I1/I!aI�I�I �I�I%�I&J0*J:[J�J�J�J�J�J�J�JK!K<KCKaK�K�K�K
�K �K�K+�K %LFL[LbL�L�L�L�L�L�LXM
\M
jMxM�M �M�M?�M	 N*N9NEN$[N �N�N�N�N �NOOO-O$4ONYO�O*�O1�O$P>P]P}P�P �P�P�PQ Q=QTQ"kQ�Q�Q�QC�Q0/R`R6}R�R�R�RS4S1OS�S)�S�S.�S3T&DT$kT<�T5�T$U&(U6OU/�U*�U&�U6V1?V$qV'�V2�V!�V,W!@WbWzW&�W�W9�WX*XCX]X}X�X#�X�XH�X!?Y!aY$�Y-�Y<�Y4ZHZgZZ�Z�Z#�Z"�Z8
[C[_[~[$�[$�[�[�[\4\6P\*�\�\�\�\0	],:]'g]&�]7�] �].^#>^b^'}^ �^"�^0�^_65_<l_�_9�_*�_,!`2N`�`�`�`�`�`)a!<a6^a$�a'�a�a�a-bGbfb@vb�b�b�b)�b$%c#Jc!nc!�c�c �c�c d31d%ed)�d"�d#�d�de"2eUe'pe�e2�e+�e<f2Mf'�f*�f%�fH�f5Bg"xg#�g�g�g�gh1h.NhY}h �h%�hIi%hiB�iQ�i!#j'Ej$mj�j$�j�j �jOkK`kI�k�k*l?l \l}l*�l$�l$�l*m,9m=fmB�m�mnn8nTnpn�n�n8�n�nBo#Uo$yo4�o'�o�op)1p2[p!�p�p.�p�p;q&Lqsq!�q#�q�q�qr$rCr2]r �r�r�r*�rs'4s\sis'�s*�s�s�s't-.t0\t*�t�t�t'�t-uDIu�u*�u�u!�u3vP5v!�v&�v/�v/�v/wKwjw4�w4�w4�w"$x!Gxix�x-�x0�x!�x y%>y1dy4�y#�y$�yz"-zPz$kz�z'�z*�z �z-{3H{-|{�{3�{>�{;|W|.s|�|-�|-�|)}$H}m}�}�}�}!�}!�}!~"5~!X~!z~�~�~&�~�~	%&E5l����'�"4� W�(x�#��(ŀ(�,�D�a�~�����ˁ�(��&�C�-]�)����Ԃ,��6�&H�o�����ƒփ��$�;�V�o�����3Ä*��$"�!G�i�&��'��!ԅ��'�/4�3d���,��!�@�8F�"�#��$Ƈ'�!� 5�'V�'~�/��"ֈ"���5�N�a�z�����ljۉ�	��<�X�w�����Š!ފ �!�<�$[���2��:͋9�.B�7q���Č݌6��6-�?d�6��ۍ6�"�"5�*X�!��!��!ǎ���"+�N�i�������ɏ���&�=�)S�)}�1��"ِ#�� �13�e�{��� ��ґ����5�H�a�������˒ޒ���)�E�c�!��*��)Γ���#(�$L�q���)��,ǔ�,�)<�!f�$��F��#��8�!O� q���!��Ԗ��& �#G�&k�.��!��$�1�/:�j���!����$ژ$��%$�%J�p��� ���� ֙���1�-G�u�����%ƚ+�+�)D�)n�.��)Ǜ�&� (�#I�m���&��)͜���#�1=�3o� ��ĝ*�!
�!/�Q�9m���Ğ=�-!�O�Bk�'��)֟"�$#�H�_�&r�����̠�
���.�KL���,��2ס9
� D�e���)��)ʢF�&;�#b�"����ǣ&٣0�1� D�,e���������#ݤ)�)+�#U�y�����#��1ɥ��8�7I�����E��ަ����(�;�	N�	X�b�q�����	��1��ڧ(�
��&�D�)Q�{�
����
��#�����"�%7�]�q�
��������
ԩ	ߩ��	����8�E�T�d����
�!�.�#D�*h�'����ҫ	�&��,�H�b�������!Ƭ����
�$�D�%S�
y�+������ѭ٭	���
�$�4�D�a�p�w� ��$��֮��
����)�;�M�7]�
��������ʯٯ��
��
5�
C�.Q���������̰$�A�S�Z�v���$��ʱױ&�
��
/�"=�`�K��̲ ޲����5�O�_�v�����/��*��= �^�q�%x���!��ִݴ�	����%�A�V�c�|���
�����õKE�
��
������.Զ�.�&F�m�'��
����׷.��+%�+Q�}�+��4¸]��:U���:��L�92�)l�/��"ƺ�I�,:�g�y�����Ȼ�!�#%�I�`�v��������
��ƼӼ߼���#�
8�C�O�[�g�m�y���������½ѽڽ7�!�-�9�F�
L�Z�'a�����������žξ׾
��;��"7�!Z�|��� ��5��	� �$�(7�9`���������@�7G����������	�
���!�+0�+\�������	����.��'�ZC��� ������������$�:�P�	f�p�!}�'����	��������+�H�[�b�	u����.��E��M
�<X�C����������
��&�6�
:�#E�i�v�������	����
��3��30�d�k�~�������������� �-�R:�3��5��3��;+�Pg�:��9��9-�g�y���	��
���������0� K�l�!������!�� ��!�A�)Z�l������42v/G�_�
x�����<z$k��v/���eV-H!��I�`2/�"_dy����J���E:A<���i�{�Y��"v���c����[����l�Y�H^MC��k��-���,�y�]��7.��p�}�����++��R��m���~M�}�����a�21�%�,+]�~��a=@4�'�J�\�o����[�[rL0�!t�����Bj����� on�|$I3S�S��j4���]��9��VK'��!3F�M�����B���t?�9J}E��:��j����#���m�>�0NL�����5b��8��c�<��0��5����,�TV�Y�qI��0�,6o��a�
�������!�q�f��(�u	J	�z7	#�~�zy��K�6~\�h��6��?S�������/����<� )�P�Xb�E���%j@R	(��#H2���d�[w���n(F��DZ���OB�9������{3�Gl����Q�C�<_��8��*b~
B�j!
`T��e��u6p����3�Mh|g����-��D�Z���mL����
�
�)M���s�����c��L�G)Wt����B���T�Pi�I�A�n� x@[}���$�|��s u_F�'8g|.#��7:\A����iW�����.7*��T6O��zU�;pE��#a��n�}>
Ca��
�fHmi1��N���D4d�~��w��1\�>�h?����q���V��`l��s�E�f���iD�G
z'��5�9&�rJ�N�AK���e�-P��)Q��&�wQ���	�`w�
���&���X�g���N��
��|�&x�?.0�8�7������A8�^�{�x>`������^�TP��Z���U��?�Yov�>kN��k7�p�t:�C�"vG�c����;�i���Q\D��|X%k1�����9�%��q�"x����=���F�Y.��a���N��q'��$ W��������_�e$���rW���O)��rh^R��o�9"u�	:^��Wy/%�n��!Z<Cgk�)U�z��%���(@�;tFV���;��f�X;�r=�I{Z*r��P�m���q�V,2G���1]bc�5�����R��*P�c����"�=���R[�H]�s�S*��x,���Y�C�B`f���&��p{#F4��u+On�}w-��K2Ks>@(���h_+(��+��@��^��o���X�U��5�D;�8�6�U�L��dwg���{������y��5b�J�vf$�����e�=h����m��g���:���S3�\0�s�j�p?&�S��RX�*3����yQL��T'/H�I���E���elZK�t�Q���-�.�OU����d�]��4WO�d���A
�bul� ��������1M�=����			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (RET/BS: line, SPACE/b: page, d/u: half page, q: quit) (RET: line, SPACE: page, d: half page, q: quit) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE Tag completion (^]^N^P) Thesaurus completion (^T^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^E^Y^L^]^F^I^K^D^V^N^P) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s made pending%s resumed%s returning "%s"%s returning #%ld%s, line %ld%sviminfo: %s in line: &Diff with Vim&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort
&Delete it&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%.*s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAllAll cscope databases resetAll included files were foundAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Before byte %ldBotBreakpoint in "%s%s" line %ldBrowse classCalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Conversion with 'charconvert' failedCould not allocate memory for command line.Could not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

DirectionDirectoriesDo you really want to write to itDownE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE106: Unknown variable: "%s"E107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Undefined function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters before '='E190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: Warning: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_timestamp: Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu of that nameE32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE361: Crash intercepted; regexp too complex?E363: pattern caused out-of-stack errorE364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot set read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failedE514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE56: %s* operand could be emptyE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE57: %s+ operand could be emptyE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while nesting too deepE586: :continue without :whileE587: :break without :whileE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE58: %s{ operand could be emptyE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert from multi-byte to "%s" encodingE621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE67: \z1 et al. not allowed hereE68: Invalid character after \zE69: Missing ] after %s%%[E70: Empty %s%%[]E71: Invalid character after %s%%E72: Close error on swap fileE73: tag stack emptyE74: Command too complexE75: Name too longE76: Too many [E77: Too many file namesE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - &Edit with single &VimEdits the selected file(s) with VimEnd of functionEnd of sourced fileEnter encryption key: Enter nr of choice (<CR> to abort): Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:ExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpressionExternal submatches:
File "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find NextFind string (use '\\' to find  a '\')Find symbolFind what:Font '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Garbage after optionGenerate docu forGreetings, Vim user!HelpHelp poor children in Uganda!Hit ENTER or type command to continueHit ENTER to continueHit end of paragraphI/O ERRORIllegal file nameIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Modified by Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%.*s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading from stdin...Reading viminfo file "%s"%s%s%sRecovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%.*s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSee ":help E312" for more information.See ":help W11" for more info.Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesSwap file "Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many edit argumentsTopType  :quit<Enter>  to exit VimUnable to read block 0 from Unable to register a command server nameUndoUnknownUnknown optionUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Entered other buffer unexpectedly (check autocommands)Warning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing viminfo file "%s"XSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR][CR missing][Deleted][Device][Error List][ILLEGAL BYTE in line %ld][Incomplete last line][NL found][NOT converted][New File][New file][New][No File][No file][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][string too long][unix format][unix]and run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %sconnectedcontinuing in %scould not source "%s"cs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?don't quit the editor until the file is successfully written!error list %d of %d; %d errorsexpressions disabled at compile timefile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelpin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal new shell started
nono cscope connections
no such bufferno such windowno syncingnot not found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwith (classic) GUI.with BeOS GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: Vim(Traditional Chinese)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2005-01-27 19:00+0800
PO-Revision-Date: Mon Feb 19 22:49:21 CST 2001
Last-Translator: Hung-Te Lin <piaip@csie.ntu.edu.tw>
Language-Team: Hung-Te Lin <piaip@csie.ntu.edu.tw>, Cecil Sheng <b7506022@csie.ntu.edu.tw>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8-bit
			  (尚未實作)

	上次設定: 

參數:


 用法:
            修改過: 
         [無法在本電腦上使用]
         [無法在本版本的 Vim 上使用]
          主機名稱: 
            使用者: 
        process ID: 
    名稱        參數 範圍  完整      定義      
   #   行  
   或:
  # 到 tag         從   行    在 檔案/文字
 jump 行號  欄  檔案/文字
# %s 歷史記錄 (新到舊):

# 緩衝區列表:

# 檔案標記:

# 檔案內 Mark 記錄 (由新到舊):

# Jumplist (由新到舊):

# 前一組替代字串:
$
# 暫存器:

# 全域變數:

(1) 可能有另一個程式也在編輯同一個檔案.
    如果是這樣,請小心不要兩邊一起寫入,不然你的努力都會負諸流水。

(2) 前次編輯此檔時當機

(你可能會想要把這個檔案另存別的檔名,

--- Auto-Commands ---
--- Global 選項值 ---
--- Local 選項值 ---
--- 選單 ---
--- 選項 ---
--- 暫存器 ---
--- 符號 ---
--- 語法項目 ---
--- 語法同步物件 (Syntax sync items) ---
--- 終端機碼 ---
--- 終端機按鍵 ---
16 Bit MS-DOS 版本
32 Bit MS-DOS 版本
gvim 認得的參數 (Athena 版):

gvim 認得的參數 (GTK+ 版):

gvim 認得的參數 (Motif 版):

gvim 認得的參數 (RISC OS 版):

gvim 認得的參數 (neXtaw 版):

大型版本 
不能建立 pipe 管線

不能執行 shell
不能執行 shell sh

不能 fork

命令已終結

編譯
找到暫存檔 "
超強版本 
引入修正: 
MS-Windows 32 Bit console 版本
MS-Windows 16/32 Bit 圖型界面版本
MS-Windows 32 Bit 圖型界面版本
MS-Windows 32 Bit console 版本
MacOS X (unix) 版本
MacOS X 版本
MacOS 版本
可能是你沒做過任何修改或是 Vim 還來不及更新暫存檔.
查詢更多資訊請執行: "vim -h"

一般版本 
RISC OS 版本
簡易版本 
精簡版本 
Vim: X 錯誤

警告: 原始檔案流失或損壞

[bytes] 全部 alloc-freed %lu-%lu, 使用中 %lu, peak 使用 %lu

改變   行號  欄  文字
標記 行號  欄  檔案/文字
Shell 已返回
同步化中:                              以得 Vim 預設值                                  兩種模式                         日期:             擁有者:          [無法開啟]         [無法讀取]                          [不像 Vim 的暫存檔]              [從 Vim 版本 3.0]              檔名:       -- 無 --
      比暫存檔更新!
   使用者個人 exrc 設定檔: "  使用者個人 vimrc 設定檔: "    如果是這樣, 請用 ":recover" 或 "vim -r    如果該救的都已經救了, 請直接刪除此暫存檔 "    離開,或是繼續編輯。
    行=%ld  id=%d  名稱=%s           系統選單設定檔: "     使用者個人 gvimrc 檔: "   在目前的目錄:
   在目錄    Using specified name:
    日期:     主機名稱:         系統 vimrc 設定檔: "  # pri kind tag  (已列出)   第二組使用者 exrc 檔案: "  除錯版本 目前可使用(+)與不可使用(-)的模組列表:
  找不到  以不同大小寫來使用 tag!              $VIM 預設值: "         系統 gvimrc 檔案: " # pid    資料庫名稱                          prepend path
 (已中斷) (找不到)  (RET/BS: 向下/向上一行, 空白鍵/b: 一頁, d/u: 半頁, q: 離開) (RET: 向下一行, 空白鍵: 一頁, d: 半頁, q: 離開) (包括前次列出符合項) (插入) (插入) Scroll (^E/^Y) (語言) (行已刪除) (不支援)  (貼上) (取代) (取代) Scroll (^E/^Y) (執行中) (v-取代)    第二組個人 vimrc 檔案: "    第三組個人 vimrc 檔案: " 增加 Arabic轉換錯誤 命令列自動完成 (^V^N^P)複製 %d / %d 定義自動完成 (^D^N^P) 字典自動完成 (^K^N^P) 失敗 檔名自動完成 (^F^N^P) Hebrew 插入 區域關鍵字自動完成 (^N^P) 關鍵字自動完成 (^N^P) 路徑自動完成 (^N^P) 取代 反轉 選取 選取區塊 選取行  標籤自動完成 (^]^N^P) Thesaurus 自動完成 (^T^N^P) 選取 [區塊]  [行]  V-取代 整行自動完成 (^L^N^P) [已修改][a][w] ^X 模式 (^E^Y^L^]^F^I^K^D^N^P) 已附加 無法在這臺電腦上使用.
 無法在本版本的 Vim 中使用.
       $VIMRUNTIME 預設值: "Win32s 模式 訊息類檔案
斷行 行號超出範圍 標記,範圍: %ld 行 ,範圍:一行  或更多 已返回
vim [參數] 支援 OLE 已寫入"
    以避免再看到此訊息.
"
    來救回修改資料 (詳細說明請看 ":help recovery").
" 已經存在了!# 本 viminfo 檔案是由 Vim %s 所產生.
# 'encoding' 在此檔建立時的值
# 如果想要自行修改請特別小心!

%-5s: %-30s (用法: %s)%3d  %s %s  第 %ld 行 %<%f%h%m%=第 %N 頁已刪除 %d 個緩衝區已釋放 %d 個緩衝區已刪除 %d 個緩衝區還有 %d 個檔案等待編輯
還有 %d 個檔案未編輯. 確定要離開?已編輯 %d/%d 個檔案%ld 欄; %ld 項改變%ld個字元少了 %ld 行 %ld 行 %s 過 %d 次%ld 行 %s 過 一次行數 %ld --%d%%--已改變 %ld 行 已處理 %ld 行 已縮排 %ld 行 已搬移 %ld 行 縮排 %ld 行... 已複製 %ld 行 %ld 行, 多了 %ld 行 取代 %ld 組 %s Auto commands: "%s"%s 被強制中斷執行 %s 已丟棄%s 造成 pending%s 已回復%s 傳回值 "%s"%s 傳回值 #%ld %s, 行 %ld%sviminfo: %s 在行中: 使用 Vim 來比較(&Diff)確定(&O)
取消(&C)確定(&O)
載入檔案(&L)確定(&O)以唯讀方式開啟(&O)
直接編輯(&E)
修復(&R)
離開(&Q)
跳出(&A)以唯讀方式開啟(&O)
直接編輯(&E)
修復(&R)
離開(&Q)
跳出(&A)
刪除暫存檔(&D)&Y是
&N否&Y是
&N否
&C取消&Y是
&N否
&A全部存檔
&D全部不存
&C取消' 無法載入。可用的內建終端機形式有:'columns' 不是 80, 無法執行外部命令選項 'dictionary' 未設定選項 'history' 是零"%.*s" 已設定 'readonly' 選項.
確定要覆寫嗎?選項 'thesaurus' 未設定(%d / %d)%s%s: (+%ld for BOM)(已中斷) (不正確)+			啟動後跳到檔案結尾+-%s%3ld 行: +--已 fold %3ld 行 +<lnum>		啟動後跳到第 <lnum> 行 +reverse		不使用反相顯示 (也可用 +rv),
或是這檔案已經損毀。-               從標準輸入(stdin)讀取檔案--			只有在這之後的檔案-- 尚有 ---- 搜尋中...--- 引入檔案 --已刪除----緩衝區無資料----cmd <command>	載入任何 vimrc 前執行 <command>--columns <number>	視窗初始化寬度--literal		不展開萬用字元--noplugin		不載入任何 plugin--remote <files>	編輯 Vim 伺服器上的 <files> 後離開--remote-expr <expr>	在伺服器上執行 <expr> 並印出結果--remote-send <keys>	送出 <keys> 到 Vim 伺服器並離開--remote-silent <files>  相同,但沒有伺服器時不警告--remote-wait <files>  同 --remote, 但會等候檔案完成編輯--remote-wait-silent <files>  相同,但沒伺服器時不警告--role <role>	設定獨特的角色(role)以區分主視窗--rows <number>	視窗初始化高度--serverlist		列出可用的 Vim 伺服器名稱並離開--servername <name>	送至/成為 Vim 伺服器 <name>--socketid <xid>	在另一個 GTK widget 內開啟 Vim--version		印出版本資訊後離開-A			啟動為 Arabic 模式-C			'compatible' 傳統 Vi 相容模式-D			除錯模式-F			啟動為 Farsi 模式-H			啟動為 Hebrew 模式-L			同 -r-M			不可修改文字-N			'nocompatible' 不完全與傳統 Vi 相容,可使用 Vim 加強能力-O[N]		同 -o 但使用垂直分割-P <parent title>	在父程式中開啟 Vim-R			唯讀模式 (同 "view")-S <session>		載入第一個檔案後載入 Session 檔 <session>-T <terminal>	設定終端機為 <terminal>-U <gvimrc>		使用 <gvimrc> 取代任何 .gvimrc-V[N]		Verbose 等級-W <scriptout>	對檔案 <scriptout> 寫入所有輸入的命令-X			不要連線到 X Server-Z			限制模式 (同 "rvim")-b			二進位模式-background <color>	設定 <color> 為背景色 (也可用 -bg)-boldfont <font>	使用 <font> 為粗體字型-borderwidth <width>	使用寬度為 <width> 的邊框 (也可用 -bw)-c <command>		載入第一個檔案後執行 <command>-d			Diff 模式 (同 "vimdiff", 可迅速比較兩檔案不同處)-dev <device>		使用 <device> 做輸出入-display <display>	將 vim 與指定的 X-server 連線-display <display>	在視窗 <display> 執行 vim-display <display>	在 <display> 執行 vim (也可用 --display)-e			Ex 模式 (同 "ex")-f			不使用 newcli 來開啟視窗-f  或  --nofork	前景: 起始圖形界面時不 fork-font <font>	使用 <font> 為一般字型 (也可用 -fn)-foreground <color>	設定 <color> 為一般文字顏色 (也可用 -fg)-g			使用圖形界面 (同 "gvim")-geometry <geom>	使用<geom>為起始位置 (也可用 -geom)-h  或  --help	印出說明(也就是本訊息)後離開-i <viminfo>		使用 <viminfo> 而非 .viminfo-iconic		啟動後圖示化(iconified)-italicfont <font>	使用 <font> 為斜體字型-l			Lisp 模式-m			不可修改 (寫入檔案)-menuheight <height>	設定選單列的高度為 <height> (也可用 -mh)-n			不使用暫存檔, 只使用記憶體-name <name>		讀取 Resource 時把 vim 的名稱視為 <name>-o[N]		開啟 N 個視窗 (預設是每個檔案一個)-q [errorfile]  編輯時載入第一個錯誤-r			列出暫存檔後離開-r (加檔名)       	修復上次損毀的資料(Recover crashed session)-register		註冊 gvim 到 OLE-reverse		使用反相顯示 (也可用 -rv)-s			安靜 (batch) 模式 (只能與 "ex" 一起使用)-s <scriptin>	從 <scriptin> 讀入一般模式命令-scrollbarwidth <width>  設定捲動軸寬度為 <width> (也可用 -sw)-t tag          編輯時使用指定的 tag-u <vimrc>		使用 <vimrc> 取代任何 .vimrc-unregister		取消 OLE 中的 gvim 註冊-v			Vi 模式 (同 "vi")-w <scriptout>	對檔案 <scriptout> 附加(append)所有輸入的命令-x			編輯編碼過的檔案-xrm <resource>	設定指定的 resource-y			簡易模式 (同 "evim", modeless)...(已切掉)已刪除一個緩衝區已釋放一個緩衝區已刪除一個緩衝區一項改變一個字元一行 %s 過 %d 次一行 %s 過 一次行數 1 --%d%%-- 1 行 ~ed一行已縮排少於一行 已搬移 1 行 已複製 1 行 1 行, 還有一個檔案未編輯. 確定要離開?還有一行 取代一組    第二組個人 gvimrc 檔案: "   第三組個人 gvimrc 檔案: ": 無法傳送運算式。
: 傳送失敗。
: 送出失敗。試圖在本地執行
; 符合 <%s>%s%s  %d,  十六進位 %02x,  八進位 %03o<buffer 物件 (已刪除): %8lX><不能開啟><視窗 %d><視窗物件(已刪除): %.8lX><視窗物件(未知): %.8lX>> %d, 十六進位 %04x, 八進位 %o> %d, 十六進位 %08x,  八進位 %o??? 從這裡到 ???END 的內容可能有問題??? 從這裡到 ???END 的內容可能被刪除/插入過???找不到BLOCK???空的 BLOCK???END???行號錯誤???找不到一些行 ???缺少太多行 ANCHOR_BUF_SIZE 太小新增資料庫新增 cscope 資料庫 %s全部重設所有 cscope 資料庫所有引入檔案都已找到已經只剩一個視窗了附加檔案缺少必要的參數:在行號 試圖再次開啟 script 檔: "回到起點指定了向前參考的範圍,OK to swap成為 Vim 的註冊使用者!在 %ld 位元之前底端"%s%s" 中斷點: 第 %ld 行 瀏覽 class呼叫 shell 執行: "%s"找不到轉換用的暫存檔取消無法連接到 Netbeans無法連接到 Netbeans #2無法連線到 SNiFF+。請檢查環境變數 ($PATH 裡必需可以找到 sniffemacs)
不能建立 不能執行 無法開啟 NIL:
無法開啟以讀取: "無法開啟為 script 輸出: "無法執行目錄: "%s"欄 %s/%s; 行 %ld/%ld; 字(Word) %ld/%ld; 字元(Byte) %ld/%ld命令列編譯方式: 編譯器: 字元集轉換錯誤無法為命令列配置記憶體。不能修正函式指標到 DLL!無法載入 vim32.dll!Cscope 標籤(tag): %s目前的 %s語言: "%s"(D)直接刪除 .swp 暫存檔

方向目錄確定要寫入嗎向下E100: 沒有緩衝區在 diff 模式E101: 有兩個以上的緩衝區在 diff 模式,無法決定要用哪一個E102: 找不到緩衝區: "%s"E103: 緩衝區 "%s" 不是在 diff 模式E104: 複合字元(digraph)中不能使用 EscapeE105: 使用 :loadkeymap E106: 未定義的變數: "%s"E107: 缺少對應的括號: %sE108: 無此變數: "%s"E109: '?' 後缺少 ':'E10: \ 後面應該有 / ? 或 &E110: 缺少對應的 ")"E111: 缺少對應的 "]"E112: 缺少選項名稱: %sE113: 不正確的選項: %sE114: 缺少引號: %sE115: 缺少引號: %sE116: 函式 %s 的引數不正確E117: 未定義的函式: %sE118: 函式 %s 的引數過多E119: 函式 %s 的引數太少E11: 不能在命令列視窗中使用。<CR>執行,CTRL-C 離開E120: <SID> 不能在 script 本文外使用: %sE121: 變數 %s 尚未定義E122: 函式 %s 已經存在, 請使用 ! 強制取代E123: 函式 %s 尚未定義E124: 缺少 "(": %sE125: 參數不正確: %sE126: 缺少 :endfunctionE127: 函式 %s 正在使用中,無法重新定義E128: 函式名稱第一個字母必須大寫: %sE129: 需要函式名稱E12: exrc/vimrc 裡的指令無法執行 E130: 函式 %s 尚未定義E131: 函式 %s 正在使用中,無法刪除E132: 函式遞迴呼叫層數超過 'maxfuncdepth'E133: :return 必須在函式裡使用E134: 無法把行移到它自已內E135: *Filter* Autocommand 不可以更改緩衝區的內容E136: viminfo: 過多錯誤, 忽略檔案其餘部分E137: Viminfo 檔案無法寫入: %sE138: 無法寫入 viminfo 檔案 %s !E139: 您在另一個緩衝區也載入了這個檔案E13: 檔案已經存在 (可用 ! 強制取代)E140: 請使用 ! 以寫入部分緩衝區E141: 緩衝區 %ld 沒有檔案名稱E142: 檔案未寫入,因為 'write' 選項被關閉E143: Autocommands 意外地刪除新緩衝區 %sE144: :z 不接受非數字的參數E145: rvim 中禁止使用 shell 命令E146: Regular expression 無法用字母分隔 (?)E147: :global 無法遞迴執行 E148: 沒有使用過 Regular expression (?)E149: 抱歉, 沒有 %s 的說明E14: 不正確的位址E150: %s 不是目錄E152: 無法以寫入模式開啟 "%s"E153: 無法讀取檔案: %sE154: 標籤(tag) "%s" 在檔案 %s 裡重複出現多次E155: 不正確的 sign: %sE156: 缺少 sign 名稱E157: Sign ID 錯誤: %ldE158: 緩衝區名稱錯誤: %sE159: 缺少 sign numberE15: 不正確的運算式: %sE160: 未定義的 sign command: %sE161: 找不到中斷點: %sE162: 已更改過緩衝區 "%s" 但尚未存檔 (可用 ! 強制執行)E163: 只有一個檔案可編輯E164: 已經在第一個檔案了E165: 已經在最後一個檔案了E166: 無法以寫入模式開啟連結檔案E167: 在執行 script 檔案外不可使用 :scriptencodingE168: 在執行 script 檔案外不可使用 :finishE169: 命令遞迴層數過多E16: 不正確的範圍E170: 缺少 :endwhileE171: 缺少 :endifE172: 只能有一個檔E173: 還有 %ld 個檔案未編輯E173: 還有一個檔案未編輯 E174: 命令已經存在, 請使用 ! 強制重新定義E175: 沒有指定的屬性E176: 不正確的參數數目E177: 不能指定兩次數目E178: 數目的預設參數不正確E179: 指令需要參數才能完成E17: "%s" 是目錄E180: 不完整的值: '%s'E181: 不正確的屬性: %sE182: 指令名稱不正確E183: 使用者自定指令必須以大寫字母開始E184: 沒有使用者自定的命令: %sE185: 找不到顏色樣式 %sE186: 沒有前一個目錄E187: 無法辦識的標記E188: 在您的平台上無法獲得視窗位置E189: "%s" 已存在 (請用 ! 強制執行)E18: '=' 前面出現了錯誤的字元E190: 無法以寫入模式開啟 "%s"E191: 參數必須是英文字母或向前/後的引號E192: :normal 遞迴層數過深E193: :endfunction 必須在函式內部使用E194: 沒有 '#' 可替代的檔名E195: 無法讀取 viminfoE196: 本版本無複合字元(digraph)E197: 不能設定語言成 "%s"E198: cmd_pchar 超過命令長度E199: 已刪除掉作用中的視窗或暫存區E19: 標記的行號錯誤E200: *ReadPre Autocommand 使程式無法讀取此檔E201: *Filter* Autocommand 不可以更改緩衝區的內容E202: 轉換錯誤E203: Autocommand 刪除或釋放了要寫入的緩衝區E204: Autocommand 意外地改變了行號E205: Patch 模式: 無法儲存原始檔案E206: Patch 模式: 無法變更空的原始檔案E207: 無法刪除備份檔E208: 寫入檔案 "%s" 錯誤E209: 關閉檔案 "%s" 錯誤E20: 沒有設定標記E210: 讀取檔案 "%s" 錯誤E211: 警告: 檔案 "%s" 已經不存在E212: 無法以寫入模式開啟E213: 無法轉換 (請使用 ! 強制不轉換寫入)E214: 找不到寫入用的暫存檔E215: * 後面有不正確的字元: %sE216: 無此事件: %sE216: 無此群組或事件: %sE217: 無法對所有事件執行 autocommandE218: autocommand 層數過深E219: 缺少 {.E21: 因為 'modifiable' 選項是關閉的,所以不能修改E220: 缺少 }.E222: 加入讀取緩衝區中E223: 遞迴 mappingE224: %s 已經有全域 abbreviation 了E225: %s 已經有全域 mapping 了E226: %s 已經有 abbreviation 了E227: %s 的 mapping 已經存在E228: makemap: 不正確的模式E229: 無法啟動圖型界面E22: 巢狀遞迴呼叫太多層E230: 無法讀取檔案 "%s"E231: 不正確的 'guifontwide'E232: 不能對訊息與 callback 建立 BallonEvalE233: <不能開啟 X Server DISPLAY>E234: 不正確的字元集 (Fontset): %sE235: 不正確的字型名稱: %sE236: "%s" 不是固定寬度字型E237: 無法選擇此印表機E238: 列印錯誤: %sE239: 不正確的 sign 文字: %sE23: 沒有替代的檔案E240: 沒有與 Vim Server 建立連線E241: 無法傳送到 %sE243: 不支援參數 "-%s"。請用 OLE 版本。E244: 字元集 "%s" 無法對應字型"%s"E245: 不正確的字元 '%c' 出現在字型名稱 "%s" 內E246: FileChangedShell autocommand 刪除緩衝區E247: 沒有註冊為 "%s" 的伺服器E248: 無法送出命令到目的地程式E24: 沒有這個 abbreviation 對應E250: Fontset %s 沒有設定正確的字型以供顯示這些字元集:E251: VIM 的 registry 設定項有誤。已刪除。E252: 字型集(Fontset)名稱: %sE253: 字型集(Fontset)名稱: %s
E254: 不能配置顏色 %sE255: 無法讀取 sign data!E256: Hangul automata 錯誤E257: cstag: 找不到 tagE258: 無法傳送到 clientE259: 找不到符合 cscope 的搜尋 %s / %sE25: 因為編譯時沒有加入圖型界面的程式碼,所以無法使用圖型界面E261: 找不到 cscope 連線 %sE262: 讀取 cscope 連線 %ld 錯誤E263: 抱歉,這個命令無法使用,Python 程式庫沒有載入。E264: Python: 無法初始 I/O 物件E266: 此命令無法使用,無法載入 Ruby 程式庫(Library)E26: 因為編譯時沒有加入 Hebrew 的程式碼,所以無法使用 Hebrew
E273: 未知的 longjmp status %dE274: Sniff: 讀取錯誤. 取消連線E275: 不正確的 SNiff+ 呼叫: %sE276: 連線到 SNiFF+ 失敗E277: 無法讀取伺服器的回應E278: 未連線到 SNiFF+E279: 不是 SNiFF+ 的緩衝區E27: 因為編譯時沒有加入 Farsi 的程式碼,所以無法使用 Farsi
E280: TCL 嚴重錯誤: reflist 爛掉了!? 請報告給 to vim-dev@vim.orgE281: TCL 錯誤: 結束碼不是整數!? 請報告給 to vim-dev@vim.orgE282: 無法讀取檔案 "%s"E283: 找不到符合 "%s" 的標記(mark)E284: 不能設定 IC 數值E285: 無法建立 input contextE286: 無法開啟輸入法E287: 警告: 無法移除 IM 的 callbackE288: 輸入法不支援任何 styleE289: 輸入法不支援任何 styleE28: 沒有名為 '%s' 的 highlight groupE290: over-the-spot 需要字型集(Fontset)E291: 你的 GTK+ 比 1.2.3 還舊。無法使用狀態區。E292: 沒有執行中的輸入法管理程式(Input Method Server)E293: 區塊未被鎖定E294: 暫存檔讀取錯誤E295: 暫存檔讀取錯誤E296: 暫存檔寫入錯誤E297: 暫存檔寫入錯誤E298: 找不到區塊 0?E298: 找不到區塊 1?E298: 找不到區塊 2?E299: 在 sandbox 中無 Safe 模組時無法執行 PerlE29: 還沒有插入文字過E300: 暫存檔已經存在! (小心符號連結的安全漏洞!?)E301: 噢噢, 暫存檔不見了!!!E302: 無法改變暫存檔的名稱E303: 無法開啟暫存檔 "%s", 不可能修復了E304: ml_timestamp: 找不到區塊 0??E305: 找不到 %s 的暫存檔E306: 無法開啟 %sE307: %s 看起來不像是 Vim 暫存檔E308: 警告: 原始檔案可能已經修改過了E309: 無法從 %s 讀取區塊 1E30: 沒有前一項命令E310: 區塊 1 ID 錯誤 (%s 不是暫存檔?)E311: 修復已中斷E312: 修復時發生錯誤; 請注意開頭為 ??? 的行 E313: 無法保留, 不使用暫存檔E314: 保留失敗E315: ml_get: 錯誤的 lnum: %ldE316: ml_get: 找不到第 %ld 行 E317: 指標區塊 id 錯誤E317: 指標區塊 id 錯 2E317: 指標區塊 id 錯誤 3E317: 指標區塊 id 錯誤 4E318: 更新太多區塊?E319: 抱歉, 本命令在此版本中沒有實作E31: 沒有這個 mapping 對應E320: 找不到第 %ld 行 E321: 無法重新載入 "%s"E322: 行號超出範圍: %ld 超過結尾E323: 區塊 %ld 行數錯誤E324: 無法開啟 PostScript 輸出檔E325: 注意E326: 找到太多暫存檔E327: 部份選項路徑不是子選單E328: 選單只能在其它模式中使用E329: 沒有那樣的選單E32: 沒有檔名E330: 選單路徑不能指向子選單E331: 不能直接把選項加到選單列中E332: 分隔線不能是選單路徑的一部份E333: 選單路徑必需指向一個選項E334: [選單] 找不到 %sE335: %s 模式未定義選單E336: 選單路徑必需指向子選單E337: 找不到選單 - 請檢查選單名稱E338: 主控台(Console)模式時沒有檔案瀏覽器(file browser)E339: 名字太長E33: 沒有前一個搜尋/取代的命令E340: 此行過長E341: 內部錯誤: lalloc(%ld, )E342: 記憶體不足! (嘗試配置 %lu 位元組)E343: 不正確的路徑: '**[number]' 必需要在路徑結尾或要接著 '%s'E344: cdpath 中沒有目錄 "%s"E345: 在路徑中找不到檔案 "%s"E346: 在路徑中找不到更多的檔案 "%s"E347: 在路徑中找不到更多的檔案 "%s"E348: 游標處沒有字串E349: 游標處沒有識別字E34: 沒有前一個命令E350: 無法在目前的 'foldmethod' 下建立 foldE351: 無法在目前的 'foldmethod' 下刪除 foldE352: 無法在目前的 'foldmethod' 下刪除 foldE353: 暫存器 %s 裡沒有東西E354: 暫存器名稱錯誤: '%s'E355: 不正確的選項: %sE356: get_varp 錯誤E357: 'langmap': 找不到 %s 對應的字元E358: 'langmap': 分號後有多餘的字元: %sE359: 不支援設定螢幕模式E35: 沒有前一個搜尋指令E360: 不能用 -f 選項執行 shellE361: 無法執行; regular expression 太複雜?E363: regular expression 造成堆疊用光的錯誤E364: 呼叫函式庫 "%s"() 失敗E365: 無法列印 PostScript 檔案E367: 無此群組: "%s"E369: 不正確的項目: %s%%[]E36: 沒有足夠的空間E370: 無法重新載入程式庫 %sE371: 找不到命令E372: 格式化字串裡有太多 %%%c E373: 格式化字串不應該出現 %%%c E374: 格式化字串裡少了 ]E375: 格式化字串裡有不支援的 %%%c E376: 格式化字串開頭裡有不正確的 %%%c E377: 格式化字串裡有不正確的 %%%c E378: 'errorformat' 未設定E379: 找不到目錄名稱或是空的目錄名稱E37: 已更改過檔案但尚未存檔 (可用 ! 強制執行)E380: Quickfix 堆疊結尾E381: Quickfix 堆疊頂端E382: 無法寫入,'buftype' 選項已設定E383: 錯誤的搜尋字串: %sE384: 已搜尋到檔案開頭仍找不到 %sE385: 已搜尋到檔案結尾仍找不到 %sE386: 在 ';' 後面應該有 '?' 或 '/'E387: 目前所在行中有一匹配E388: 找不到定義E389: 找不到 patternE38: 空的 (Null) 參數E390: 參數不正確: %sE391: 無此 syntax cluster: "%s"E392: 無此 syntax cluster: "%s"E393: 使用了不正確的參數E394: 找不到 %s 的 region itemE395: 使用了不正確的參數E396: 使用了不正確的參數E397: 需要檔案名稱E398: 缺少 "=": %sE399: syntax region %s 的引數太少E39: 應該要有數字E400: 沒有指定的屬性E401: 找不到分隔符號: %sE402: '%s' 後面的東西無法辨識E403: 語法同步: 連接行符號被指定了兩次E404: 參數不正確: %sE405: 缺少相等符號: %sE406: 空白參數: %sE407: %s 不能在此出現E408: %s 必須是列表裡的第一個E409: 不正確的群組名稱: %sE40: 無法開啟錯誤檔案 %sE410: 不正確的 :syntax 子命令: %sE411: 找不到 highlight group: %sE412: 參數太少: ":highlight link %s"E413: 參數過多: ":highlight link %s"E414: 已設定群組, 忽略 highlight linkE415: 不該有的等號: %sE416: 缺少相等符號: %sE417: 缺少參數: %sE418: 不合法的值: %sE419: 錯誤的前景顏色E41: 記憶體不足!E420: 錯誤的背景顏色E421: 錯誤的顏色名稱或數值: %sE422: 終端機碼太長: %sE423: 參數不正確: %sE424: 使用了過多相異的高亮度屬性E425: 已經在最前面的標籤(tag)了E426: 找不到標籤(tag): %sE427: 只有此項符合E428: 己經在最後一個符合的 tag 了E429: 檔案 "%s" 不存在E42: 沒有錯誤E430: Tag 檔案路徑被截斷為 %s
E431: Tag 檔 "%s" 格式錯誤E432: Tag 檔案未排序: %sE433: 沒有 tag 檔E434: 找不到 tagE435: 找不到 tag, 用猜的!E436: termcap 沒有 "%s" entryE437: 終端機需要 "cm" 的能力E438: u_undo: 行號錯誤E439: 復原列表損壞E43: 符合字串有問題E440: 找不到要 undo 的行 E441: 沒有預覽視窗E442: 不能同時分割視窗為左上和右下角E443: 有其它分割視窗時無法旋轉E444: 不能關閉最後一個視窗E445: 其它視窗有更動資料E446: 游標處沒有檔名E447: 在路徑中找不到檔案 "%s"E448: 無法載入程式庫的函式 %sE449: 收到不正確的運算式E44: regexp 有問題E455: 無法寫入 PostScript 輸出檔E456: 無法讀取 PostScript 資源檔 "%s.ps"E456: 無法讀取 PostScript 資源檔 "prolog.ps"E456: 無法開啟檔案 "%s"E457: 無法讀取 PostScript 資源檔 "%s"E459: 無法回到前一個目錄E45: 有設定 'readonly' 選項(唯讀) (可用 ! 強制執行)E460: Resource fork 會消失 (請使用 ! 強制執行)E461: 不合法的變數名稱: %sE462: 無法準備重新載入 "%s"E463: 區域被保護,無法修改E464: 使用者定義的命令會混淆E465: :winsize 需要兩個參數E466: :winpos 需要兩個參數E467: 自訂補完需要函式為參數E468: 自訂補完時才可補完參數E469: cscopequickfix 的 flac %c (%c) 不正確E46: 無法設定唯讀變數 "%s"E470: 命令被強制中斷執行 E471: 需要指令參數E472: 命令執行失敗E473: 內部錯誤E474: 不正確的參數E475: 不正確的參數: %sE476: 不正確的命令E477: 不可使用 '!'E478: 不要驚慌!E479: 找不到E47: 讀取錯誤檔案失敗E480: 找不到: %sE481: 不可使用範圍指令E482: 不能建立檔案 %sE483: 無法得知暫存檔名E484: 無法開啟檔案 %sE485: 無法讀取檔案 %sE486: 找不到 %sE487: 參數應該是正數E488: 你輸入了多餘的字元E48: 不能在 sandbox 裡出現E490: 找不到任何 foldE492: 不是編輯器的命令E493: 指定了向前參考的範圍E494: 請使用 w 或 w>>E495: 沒有 Autocommand 檔名以取代 "<afile>"E496: 沒有 Autocommand 緩衝區名稱以取代 "<abuf>"E497: 沒有 Autocommand 符合名稱以取代 "<amatch>"E498: 沒有 :source 檔名以取代 "<sfile>"E499: '%' 或 '#' 指向空檔名,只能用於 ":p:h"E49: 錯誤的捲動大小E500: 輸入為空字串E501: 已到檔案結尾E506: 無法寫入備份檔 (請使用 ! 強制執行)E507: 無法關閉備份檔 (請使用 ! 強制執行)E508: 無法讀取檔案以供備份 (請使用 ! 強制執行)E509: 無法建立備份檔 (請使用 ! 強制執行)E50: 太多 \z(E510: 無法製作備份檔 (請使用 ! 強制執行)E512: 關閉失敗E513: 無法寫入 -- 轉換失敗E514: 寫入錯誤 (檔案系統已滿?)E515: 沒有釋放任何緩衝區E516: 沒有刪除任何緩衝區E517: 沒有清除任何緩衝區E518: 不正確的選項E519: 不支援該選項E51: 太多 %s(E520: 不能在 Modeline 裡出現E521: = 後需要有數字E522: Termcap 裡面找不到E523: 這裡不可使用E524: 缺少 colonE525: 零長度字串E526: <%s> 後缺少數字E527: 缺少逗號E528: 必需指定一個 ' 值E529: 無法設定 'term' 為空字串E52: 無對應的 \z(E530: 在圖型界面中無法切換 termE531: 輸入 ":gui" 來啟動圖形界面E533: 無法使用設定的中文字型(Widefont)E534: 不正確的字型(Widefont)E535: <%c> 後有不正確的字元E536: 需要逗號E537: 'commentstring' 必需是空白或包含 %sE538: 不支援滑鼠E539: 不正確的字元 <%s>E53: 無對應的 %s%%(E540: 沒有結束的運算式: E541: 太多項目E542: 不對稱的 groupE543: 不正確的 codepageE544: 找不到 keymap 檔E545: 缺少 colonE546: 不正確的模式E547: 不正確的滑鼠形狀E548: 應該要有數字E549: 不正確的百分比E54: 無對應的 %s(E550: 缺少 colonE551: 不正確的模式E552: 應該要有數字E553: 沒有其它項目E554: 語法錯誤: %s{...}E555: 標籤(tag)堆疊結尾E556: 標籤(tag)堆疊開頭E557: 無法開啟 termcap 檔案E558: terminfo 中沒有終端機資料項E559: termcap 中沒有終端機資料項E55: 無對應的 %s)E560: 用法: cs[cope] %sE561: 未知的 cscope 搜尋形態E562: 用法: cstag <識別字ident>E563: stat 錯誤E563: stat(%s) 錯誤: %dE564: %s 不是目錄或 cscope 資料庫E566: 無法建立與 cscope 的 pipe 連線E567: 沒有 cscope 連線E568: 重複的 cscope 資料庫未被加入E569: 已達到 cscope 最大連線數目E56: %s* 運算元可以是空的E570: cs_manage_matches 嚴重錯誤E571: 此命令無法使用, 因為無法載入 Tcl 程式庫(Library)E573: 不正確的伺服器 id : %sE574: 未知的註冊型態: %dE579: :if 層數過深E57: %s+ 運算元可以是空的E580: :endif 缺少對應的 :ifE581: :else 缺少對應的 :ifE582: :elseif 缺少對應的 :ifE583: 多重 :elseE584: :elseif 在 :else 之後E585: :while 層數過深E586: :continue 缺少對應的 :whileE587: :break 缺少對應的 :whileE588: :endwhile 缺少對應的 :whileE589: 'backupext' 跟 'patchmode' 是一樣的E58: %s{ 運算元可以是空的E590: 預視的視窗已經存在了E591: 'winheight' 不能比 'winminheight' 更少E592: 'winwidth' 不能比 'winminwidth' 更少E593: 至少需要 %d 行 E594: 至少需要 %d 欄E595: 內含無法顯示的字元E596: 不正確的字型E597: 無法使用字型集(Fontset)E598: 不正確的字型集(Fontset)E599: 'imactivatekey' 的值不正確E59: 後面有不正確的字元: %s@E600: 缺少 :endtryE601: :if 層數過深E602: :endif 缺少對應的 :ifE603: :catch 沒有 :tryE604: :catch 在 :finally 之後E605: 未攔截的例外: %sE606: :finally 沒有 :tryE607: 多重 :finallyE608: 不能 :throw 用 'Vim' 開頭的例外E609: Csope 錯誤: %sE60: 太多複雜的 %s{...}sE612: 已定義太多 signsE613: 不正確的印表機字型: %sE614: vim_SelFile: 無法回到目前目錄E615: vim_SelFile: 無法取得目前目錄E616: vim_SelFile: 不能使用 %s 字型E617: 在圖型界面中無法切換 termE618: 檔案 "%s" 不是 PostScript 資源檔 E619: 不支援 PostScript 資源檔 "%s"E61: 巢狀 %s*E620:無法轉換至 "%s" 字元編碼E621: "%s" 資源檔版本錯誤E622: 無法 fork 以執行 cscope E623: 無法執行 cscope E624: 無法開啟檔案 "%s"E625: 無法開啟 cscope 資料庫 %sE626: 無法取得 cscope 資料庫資訊E62: 巢狀 %s%cE63: 不正確的使用 \_E64: %s%c 沒有接東西E655: 太多層的符號鏈結(symlink) (循環?)E658: 緩衝區 %ld 與 NetBeans 的連線已中斷E659: 無法遞迴執行 Python E65: 不正確的反向參考E661: 抱歉, 沒有關於 %s-%s 的說明E662: 已在變更列表的開頭E663: 已在變更列表的結尾E664: 變更列表是空的E665: 無法啟動圖型界面,找不到可用的字型E666: 編譯器不支援: %sE667: Fsync 命令執行失敗E668: NetBeans 連線資訊檔案: "%s" 存取模式不正確E669: 群組名稱中有無法列印的字元E66: \z( 不能在此出現E670: 同一語言 (%s) 中有混合不同字元編碼的說明檔E671: 找不到標題為 "%s" 的視窗E672: 無法在 MDI 程式中開啟視窗E67: \z1 et al. 不能在此出現E68: 後面有不正確的字元: \zE69: %s%%[ 後缺少 ]E70: 空的 %s%%[]E71: 後面有不正確的字元: %s%%E72: 暫存檔關閉錯誤E73: 標籤堆疊已空E74: 命令太複雜E75: 名字太長E76: 太多 [E77: 太多檔名E78: 無法辦識的標記E79: 無法展開萬用字元E800: 因為編譯時沒有加入 Arabic 的程式碼,所以無法使用
E80: 寫入錯誤E81: <SID> 不能在 script 本文外使用.E82: 無法配置任何緩衝區,離開程式...E83: 無法配置緩衝區,使用另一個緩衝區....E84: 沒有修改過的緩衝區E85: 沒有列出的緩衝區E86: 緩衝區 %ld 不存在E87: 無法切換到更後面的緩衝區E88: 無法切換到更前面的緩衝區E89: 已更改過緩衝區 %ld 但尚未存檔 (可用 ! 強制執行)E90: 無法釋放最後一個緩衝區E91: 'E71: 選項 'shell' 未設定E92: 找不到第 %ld 個緩衝區E93: 找到一個以上的 %sE94: 找不到 %sE95: 已有緩衝區使用這個名字E96: 無法比較(diff) %ld個以上的緩衝區E97: 不能建立 E98: 無法讀取 diff 的輸出E99: 目前的緩衝區不是在 diff 模式錯誤: 編輯檔案在新視窗編輯檔案使用 Vim 編輯此檔(&V)使用多個 Vim session 編輯(&M)使用執行中的 Vim session 編輯 - &只使用同一個 Vim session 編輯(&V)使用 Vim 編輯已選取的檔案函式結尾命令檔結束輸入密碼: 輸入 nr 或選擇 (<CR> 離開): 請選擇你要使用的暫存檔 (按0 離開): 請再輸入一次: 進入除錯模式. 輸入 "cont" 以回到正常模式.進入 Ex 模式. 輸入 "visua" 以回到正常模式.錯誤錯誤與中斷無法執行程式: 請檢查 gvim 有沒有在你的 PATH 變數裡!處理 %s 時發生錯誤:例外發生例外:%s已丟棄例外: %s例外結束: %s丟出例外: %s執行 %s運算式外部符合:
檔案 "%s" 不存在檔案已保留檔案過濾器搜尋及取代字串 (使用 '\\' 來表示 '\')找下一個搜尋字串 (使用 '\\' 來表示 '\')搜尋 symbol搜尋:'%s' 不是固定寬度字型字型選擇字型%ld 寬度不是 字型0 的兩倍
字型0的寬度:%ld
Font0: %s
字型1寬度: %ld

Font1: %s
無法辨認此選項後的命令: 產生文件: 嗨, Vim 使用者!輔助說明請幫助烏干達的可憐孩童!請按 ENTER 或其它命令以繼續請按 ENTER 繼續已到段落結尾I/O 錯誤不正確的檔名不正確的暫存器名稱無效的起始字元輸入行 輸入法中斷已中斷: 已中斷不正確的參數: 兩次輸入密碼不相同!結束連線鏈結方式: 符合大小寫只搜尋完全相同的字正體中文訊息維護者: Francis S.Lin <piaip@csie.ntu.edu.tw>,                                 Cecil Sheng   <b7506022@csie.ntu.edu.tw>缺少對應的 '>'修改者為需要 %s 版本 %ld
需要 Amigados 版本 2.04 以上
NetBeans 不能寫出未修改的緩衝區這個緩衝區沒有定義任何語法找不到 abbreviation沒有定義中斷點無顯示無 Display: 無法傳送運算式。
沒有引入檔案沒有這個 mapping 對應沒有設定標記 (mark)找不到對應的 autocommand無暫存檔沒有要列印的文字無法還原;請繼續努力找不到使用者定義的命令確定開檔開啟 X Window 失敗開啟 X Window 逾時開啟 X Window 耗時 %ld msec原始檔 "%s"要覆寫已存在的檔案 "%.*s"?第 %d 頁部份內容無法寫入 Netbeans 緩衝區Patch 檔案路徑長度太長!路徑:每一行都找不到: %s找不到已送出列印工作。已列印: %s列印中: '%s'已取消列印列印中: 第 %d 頁 (%d%%)輸入 pattern問題從標準輸入讀取...讀取 viminfo 檔案 "%s"%s%s%s復原完成. 請確定一切正常.重設所有連線取代取代全部取代為:讀取讀取: 從所有 project讀取: 從檔案讀取: 從物件Vi 相容模式執行 Modeless 模式,輸入的文字會自動插入SNiFF+ 目前另存新檔存檔儲存 Redirection儲存 Session儲存設定儲存 View將變動存儲至 "%.*s"?掃瞄字典: %s搜尋引入檔案: %s掃瞄標籤.掃瞄中: %s捲動軸: 不能設定 thumb pixmap 的位置搜尋字串搜尋中: "%s"搜尋中: "%s" -- "%s"搜尋 tag 檔案 "%s"詳細說明請見 ":help E312"進一步說明請見 ":help W11"。選擇了 %s%ld/%ld 行; %ld/%ld 字(Word); %ld/%ld 字元(Bytes)選擇傳送資料到印表機...顯示 base class of:顯示階層式的 class顯示 restricted 階層式的 class顯示連線顯示文件: 顯示被 override 的 member function顯示原始碼: 顯示此訊息%s 的符號:Sniff: 寫入錯誤。結束連線抱歉, 找不到說明檔 "%s"抱歉, 此命令無法使用. 原因: 無法載入 Perl 程式庫(Library)執行 Vim script贊助 Vim 的開發與成長!堆疊大小增加暫存檔 "暫存檔已經存在!找到以下的暫存檔:切下此選單測試 X Window 失敗感謝您愛用 Vim本檔案建立於 只有此項符合您的 Vim 編譯時沒有加入 diff 的能力這個 cscope 命令不支援分割螢幕
切換實作/定義太多 "+command" 、 "-c command" 或 "--cmd command" 參數太多編輯參數頂端要離開 Vim 請輸入 :quit<Enter> 無法讀取區塊 0:無法註冊命令伺服器名稱復原未知不正確的選項未命名向上使用 Vim 3.0。
使用 CUT_BUFFER0 來取代空選擇使用暫存檔 "%s"VIM - 注意VIM - 尋找與取代...VIM - 尋找...VIM - Vi IMprovedVIM 錯誤VIM: 無法開啟視窗!
在你的 $PATH 中找不到 VIMRUN.EXE.
外部命令執行完畢後將不會暫停.
進一步說明請執行 :help win32-vimrun Vim E458: 無法配置 color map 項目,有些顏色看起來會怪怪的Vim 警告Vim 對話盒Vim 對話盒...Vim 結束傳回值: %d
Vim 為可自由散佈的開放原始碼軟體Vim: 攔截到 %s 
Vim: 攔截到致命的信號(deadly signale)
Vim: CVim: 攔截到信號(signal) %s
Vim: 雙重signal, 離開中
Vim: 讀取輸入錯誤,離開中...
Vim: 結束.
Vim: 主視窗爛掉
Vim: 從標準輸入讀取...
Vim: 由 Session 管理員收到 "die" 要求
Vim: 注意: 輸入不是終端機(鍵盤)
Vim: 注意: 輸出不是終端機(螢幕)
Vim: 保留檔案中...
W10: 注意: 你正在修改一個唯讀檔W11: 警告: 檔案 "%s" 自上次讀入後已變動W12: 警告: 檔案 "%s" 自上次讀入後已變動, 而且編輯中的緩衝區也更動了W13: 警告: 檔案 "%s" 在開始編輯後又被建立了W14: 警告: 檔名過多W15: 注意: 錯誤的行分隔字元,可能是少了 ^MW16: 警告: 檔案 "%s" 的權限與上次讀入時不一樣 (有變動過)W17: Arabic 需要 UTF-8, 請執行 ':set encoding=utf-8'W18: 群組名稱中有不正確的字元警告: 本檔案自上次讀入後已變動!!!注意: 偵測到 Windows 95/98/ME警告注意: 已切換到其它緩衝區 (請檢查 Autocommands 有無錯誤)注意: 你的終端機無法顯示高亮度在開啟檔案 "視窗位置: X %d, Y %d從別行開始的字 (?)要寫入部分檔案嗎?寫入 viminfo 檔案 "%s" 中XSMP ICE 連線監看失敗XSMP SmcOpenConnection 失敗: %sXSMP 正在處理自我儲存要求XSMP 失去 ICE 連線開啟 XSMP 連線中Xref 有Xref 被誰參考:Xref 參考到Xref 被誰使用:是數到零 (?)轉換錯誤[缺少CR]'[已刪除][裝置][錯誤列表][行 %ld 有不正確的位元][結尾行不完整][找到NL][未轉換][未命名][新檔案][新][未命名][未命名][更新後尚未儲存]
[未編輯][權限不足][預覽][讀取錯誤][唯讀][讀取錯誤][呼叫] 全部 re/malloc(): %lu, 全部 free()': %lu

[已轉換][已加密][dos 格式][dos][fifo/socket][fifo][檔案 ..]       編輯指定的檔案[輔助說明][分割過長行][mac 格式][mac][noeol][唯讀][socket][此行過長][unix 格式][unix]再執行 diff 與原檔案比較以檢查是否有改變)
試圖使用已被刪除的 buffer試圖使用已被刪除的視窗autocommand %s者:維護者: Bram Moolenaar et al.呼叫 inputrestore() 的次數比 inputsave() 還多呼叫 %s無法刪除 OutputObject 屬性無法讀取 'charconvert' 的輸出無法切換主控台(console)模式 !?
無法建立緩衝區/視窗命令: 物件將會被刪除不能刪除此行 不能取得此行 不能替代插入此行 不能插入或附加此行 不能開啟無法註冊 callback 命令: 緩衝區/視窗已經被刪除了無法註冊 callback 命令: 找不到緩衝區/視窗不能替代此行 無法儲存復原資訊不能設定行 無法剪下; 直接刪除關閉cmd: %s連線中繼續: %s無法執行 "%s"cs_create_connection 執行失敗cs_create_connection: fdopen 失敗 (fr_fp)cs_create_connection: fdopen 失敗 (to_fp)cscope 命令:
cscope 連線 %s 已關閉游標定位在緩衝區之外預設: '刪除區塊 1?在檔案正確寫入前請勿離開編輯器!錯誤列表 %d/%d; 共有 %d 項錯誤因為編譯時沒有加入運算式(expression)的程式碼,所以無法使用運算式檔案
檔名     / 內文    / 行號
結束執行 %s釋放 %ld 行中 gvimext.dll 錯誤[輔助說明]---
不正確的屬性緩衝區號碼錯誤不正確的運算式標記名稱不正確是目錄不是檔案不是檔案或可寫入的裝置是唯讀檔 (請使用 ! 強制執行)鍵盤中斷行 %4ld:行 %ld行 %ld/%ld --%d%%-- 欄 行 %ld: %s第 %ld 行: 無法執行 "%s"第 %ld 行: 結束執行 %s行號超出範圍登出沒有設定標記符合 %d找到 %d / %d最大mch_get_shellsize: 不是主控台(console)??
選取選單的「編輯」「全域設定」「切換插入模式」選取選單的「編輯」「全域設定」「切換傳統Vi相容模式」進一步說明請選取選單的 輔助說明->拯救孤兒詳細說明請選取選單的    輔助說明->贊助/註冊      最小起動新 shell
否沒有 cscope 連線
無此 buffer無此視窗沒有同步化未找不到 在 'runtimepath' 裡找不到 "%s"尚未實作pe_line_count 為零vimrc 前命令列由 Netbeans socket 讀取唯讀屬性記錄中取代為 %s (y/n/a/q/^E/^Y)?列 %d 行 %d已搜尋到檔案結尾;再從開頭繼續搜尋已搜尋到檔案開頭;再從結尾繼續搜尋shell Shell 傳回值 %d關機softspace 必需是整數執行 "%s" 中stack_idx 應該是 0字串無法包含新行 C語言式註解同步化中同步化開始找到 tag: %d/%d%s標籤名稱到 %s on %s如果需要對 Vi 相容模式的進一步說明請輸入 :help cp-default<Enter>進一步說明請輸入          :help iccf<Enter>詳細說明請輸入          :help register<Enter> 詳細說明請輸入          :help sponsor<Enter>新版本資訊請輸入              :help version8<Enter>如果需要對 Windows 95 支援的更多資訊請輸入 :help windows95<Enter>線上說明請輸入                :help<Enter>         要離開請輸入                  :q<Enter>            如果要完全模擬傳統 Vi 請輸入 :set nocp<Enter>錯誤的旗標: 不正確的選項不正確的 VIM 選項版本   vim 錯誤使用 (傳統) 圖型界面。使用 BeOS 圖型界面。使用 Carbon 圖型界面。使用 Cocoa 圖型界面。使用 GTK 圖型界面。使用 GTK-GNOME 圖型界面。使用 GTK2 圖型界面。使用 GTK2-GNOME 圖型界面。使用圖型界面。使用Photon圖型界面。使用 X11-Athena 圖型界面。使用 X11-Motif 圖型界面。使用 X11-neXtaw 圖型界面。不使用圖型界面。writelines() 需要 string list 當參數PK�j�Z�iH�TT0vim80/lang/menu_english_united_kingdom.ascii.vimnu�[���" Menu Translations:	UK English for ASCII

source <sfile>:p:h/menu_en_gb.latin1.vim
PK�j�Z�,�Dii&vim80/lang/menu_french_france.1252.vimnu�[���" Menu Translations:	French for Windows CodePage 1252 encoding

source <sfile>:p:h/menu_fr_fr.latin1.vim
PK�j�ZC���ZZvim80/lang/menu_fi.utf-8.vimnu�[���" Menu Translations:	Finnish for UTF-8 encoding

source <sfile>:p:h/menu_fi_fi.latin1.vim
PK�j�Z6k/))%vim80/lang/menu_spanish_spain.850.vimnu�[���source <sfile>:p:h/menu_es_es.latin1.vim
PK�j�Z|�0���vim80/lang/menu_sk_sk.vimnu�[���" Menu Translations:	Slovak
" Translated By:	Martin Lacko <lacko@host.sk>
" Last Change:		2002 May 27

if has("win32")
	source <sfile>:p:h/menu_sk_sk.1250.vim
else
	source <sfile>:p:h/menu_sk_sk.iso_8859-2.vim
endif
PK�j�ZʥkBIIvim80/lang/menu_af.latin1.vimnu�[���" Menu Translations:	Afrikaans

source <sfile>:p:h/menu_af_af.latin1.vim
PK�j�Z<�w��4�4 vim80/lang/menu_ru_ru.koi8-r.vimnu�[���" Menu Translations:	Russian
" Maintainer:		Sergey Alyoshin <alyoshin.s@gmail.com>
" Previous Maintainer:	vassily ragosin <vrr[at]users.sourceforge.net>
" Last Change:		29 May 2013
" URL:			cvs://cvs.sf.net:/cvsroot/ruvim/extras/menu/menu_ru_ru.vim
"
" $Id: menu_ru_ru.vim,v 1.1 2004/06/13 16:09:10 vimboss Exp $
"
" Adopted for RuVim project by Vassily Ragosin.
" First translation: Tim Alexeevsky <realtim [at] mail.ru>,
" based on ukrainian translation by Bohdan Vlasyuk <bohdan@vstu.edu.ua>
"
"
" Quit when menu translations have already been done.
"
if exists("did_menu_trans")
   finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding koi8-r

" Top
menutrans &File				&���
menutrans &Edit				�&���
menutrans &Tools			&�����������
menutrans &Syntax			&��������
menutrans &Buffers			&������
menutrans &Window			&����
menutrans &Help				�&����
"
"
"
" Help menu
menutrans &Overview<Tab><F1>		&�����<Tab><F1>
menutrans &User\ Manual			������&�����\ �����������
menutrans &How-to\ links		&��\ ���\ ������\.\.\.
menutrans &Find\.\.\.			&�����
"--------------------
menutrans &Credits			&�����������
menutrans Co&pying			&�������������
menutrans &Sponsor/Register		����&��/����������
menutrans O&rphans			&������
"--------------------
menutrans &Version			&���������\ �\ ��������
menutrans &About			&������
"
"
" File menu
menutrans &Open\.\.\.<Tab>:e		&�������\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	��&������\ ����\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	�������\ �&�����\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&�����<Tab>:enew
menutrans &Close<Tab>:close		&�������<Tab>:close
"--------------------
menutrans &Save<Tab>:w			&��������<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	��������\ &��\.\.\.<Tab>:sav
"--------------------
menutrans Split\ &Diff\ with\.\.\.	��&������\ �\.\.\.
menutrans Split\ Patched\ &By\.\.\.	�������\ �\ �����������\ ��&����\.\.\.
"--------------------
menutrans &Print			�&������
menutrans Sa&ve-Exit<Tab>:wqa		��&���\ �\ ����������<Tab>:wqa
menutrans E&xit<Tab>:qa			&�����<Tab>:qa
"
"
" Edit menu
menutrans &Undo<Tab>u			�&�������<Tab>u
menutrans &Redo<Tab>^R			�&������<Tab>^R
menutrans Rep&eat<Tab>\.		��������&�<Tab>\.
"--------------------
menutrans Cu&t<Tab>"+x			&�������<Tab>"+x
menutrans &Copy<Tab>"+y			&���������<Tab>"+y
menutrans &Paste<Tab>"+gP		��&�����<Tab>"+gP
menutrans Put\ &Before<Tab>[p		�������\ ����&�<Tab>[p
menutrans Put\ &After<Tab>]p		�������\ ��&���<Tab>]p
menutrans &Delete<Tab>x			&������<Tab>x
menutrans &Select\ All<Tab>ggVG		�&�������\ �ӣ<Tab>ggVG
"--------------------
" Athena GUI only
menutrans &Find<Tab>/			&�����<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s	�����\ �\ &����<Tab>:%s
" End Athena GUI only
menutrans &Find\.\.\.<Tab>/		&�����\.\.\.<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	�����\ �\ &����\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.<Tab>:%s	�����\ �\ &����\.\.\.<Tab>:%s
menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s	�����\ �\ &����\.\.\.<Tab>:s
"--------------------
menutrans Settings\ &Window		����\ ��������\ &�����
menutrans Startup\ &Settings		��������\ ����&�
menutrans &Global\ Settings		&���������\ ��������
menutrans F&ile\ Settings		��������\ &�����
menutrans C&olor\ Scheme		&�������\ ����
menutrans &Keymap			������\ ��&�������
menutrans Select\ Fo&nt\.\.\.		�����\ &�����\.\.\.
">>>----------------- Edit/Global settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	��������\ &��������\ ������������<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		&������������������\ �����<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		��������\ �����\ &��������<Tab>:set\ sm!
menutrans &Context\ lines				���&��\ ������\ ������
menutrans &Virtual\ Edit				���&�������\ ������������
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		�����\ &������<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		&�������������\ �\ Vi<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				&����\ ���\ �����\ �����\.\.\.
menutrans Ta&g\ Files\.\.\.				����\ &�����\.\.\.
"
menutrans Toggle\ &Toolbar				&��������������\ �����
menutrans Toggle\ &Bottom\ Scrollbar			�����\ ���������\ ���&��
menutrans Toggle\ &Left\ Scrollbar			�����\ ���������\ �&���
menutrans Toggle\ &Right\ Scrollbar			�����\ ���������\ ���&��
">>>->>>------------- Edit/Global settings/Virtual edit
menutrans Never						��������
menutrans Block\ Selection				���\ ���������\ ����
menutrans Insert\ mode					�\ ������\ ������
menutrans Block\ and\ Insert				���\ ���������\ ����\ �\ �\ ������\ ������
menutrans Always					�������\ �����
">>>----------------- Edit/File settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	&��������\ �����<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!	��������&����\ ��������\ �����<Tab>:set\ nru!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		�����&�����\ ���������\ ��������<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		&�������\ �������\ �����<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	�������\ &�����\ ����<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		���&����\ ������\ ��������<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		�������������\ ������������\ &��������<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		������������\ ��������\ �\ &�����\ C<Tab>:set\ cin!
">>>---
menutrans &Shiftwidth					����&���\ ������
menutrans Soft\ &Tabstop				�����\ &��������
menutrans Te&xt\ Width\.\.\.				&�����\ �����\.\.\.
menutrans &File\ Format\.\.\.				&�����\ ���\.\.\.
"
"
"
" Tools menu
menutrans &Jump\ to\ this\ tag<Tab>g^]			&�������\ �\ �����<Tab>g^]
menutrans Jump\ &back<Tab>^T				&���������\ ���<Tab>^T
menutrans Build\ &Tags\ File				������\ &���\ �����
"-------------------
menutrans &Folding					����\ ��\ &�������
menutrans &Spelling					��&���������
menutrans &Diff						&�������\ (diff)
"-------------------
menutrans &Make<Tab>:make				��&��������<Tab>:make
menutrans &List\ Errors<Tab>:cl				������\ �&�����<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!			������\ ���&�\ ������\ �\ ��������������<Tab>:cl!
menutrans &Next\ Error<Tab>:cn				�����&���\ �����<Tab>:cn
menutrans &Previous\ Error<Tab>:cp			�&��������\ �����<Tab>:cp
menutrans &Older\ List<Tab>:cold			�����\ ���&��\ ������\ ������<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew			�����\ ���&���\ ������\ ������<Tab>:cnew
menutrans Error\ &Window				��&��\ ������
menutrans Se&T\ Compiler				�����\ &����������
"-------------------
menutrans &Convert\ to\ HEX<Tab>:%!xxd			�&��������\ �\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r			���������\ �&�\ HEX<Tab>:%!xxd\ -r
">>>---------------- Tools/Spelling
menutrans &Spell\ Check\ On				&���\ ��������\ ����������
menutrans Spell\ Check\ &Off				��&��\ ��������\ ����������
menutrans To\ &Next\ error<Tab>]s			&�������\ �����
menutrans To\ &Previous\ error<Tab>[s			&���������\ �����
menutrans Suggest\ &Corrections<Tab>z=			����������\ ���&�������
menutrans &Repeat\ correction<Tab>:spellrepall		���&������\ ����������\ ���\ ����
"-------------------
menutrans Set\ language\ to\ "en"			���������\ ����\ "en"
menutrans Set\ language\ to\ "en_au"			���������\ ����\ "en_au"
menutrans Set\ language\ to\ "en_ca"			���������\ ����\ "en_ca"
menutrans Set\ language\ to\ "en_gb"			���������\ ����\ "en_gb"
menutrans Set\ language\ to\ "en_nz"			���������\ ����\ "en_nz"
menutrans Set\ language\ to\ "en_us"			���������\ ����\ "en_us"
menutrans &Find\ More\ Languages			&����\ ������\ ������
let g:menutrans_set_lang_to =				'��������� ����'
">>>---------------- Folds
menutrans &Enable/Disable\ folds<Tab>zi			���/����\ &������<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			�������\ ������\ �\ &��������<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		�������\ &������\ ������\ �\ ��������<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm			�������\ &������\ ������<Tab>zm
menutrans &Close\ all\ folds<Tab>zM			�������\ &���\ ������<Tab>zM
menutrans &Open\ all\ folds<Tab>zR			����&���\ ���\ ������<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr			���&����\ ������\ ������<Tab>zr
menutrans Fold\ Met&hod					&�����\ ������
menutrans Create\ &Fold<Tab>zf				��&����\ ������<Tab>zf
menutrans &Delete\ Fold<Tab>zd				�&�����\ ������<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD			������\ ��&�\ ������<Tab>zD
menutrans Fold\ col&umn\ width				&�����\ �������\ ������
">>>->>>----------- Tools/Folds/Fold Method
menutrans M&anual					���&���
menutrans I&ndent					�&�����
menutrans E&xpression					&��������
menutrans S&yntax					&��������
menutrans Ma&rker					&������
">>>--------------- Tools/Diff
menutrans &Update					�&�������
menutrans &Get\ Block					��������\ &����\ �����
menutrans &Put\ Block					��������\ &������\ �����
">>>--------------- Tools/Diff/Error window
menutrans &Update<Tab>:cwin				�&�������<Tab>:cwin
menutrans &Close<Tab>:cclose				&�������<Tab>:cclose
menutrans &Open<Tab>:copen				&�������<Tab>:copen
"
"
" Syntax menu
"
menutrans &Show\ filetypes\ in\ menu			������\ ���\ ���\ �����\ ���\ &���
menutrans Set\ '&syntax'\ only				&��������\ ������\ �������\ 'syntax'
menutrans Set\ '&filetype'\ too				��������\ &����\ �������\ 'filetype'
menutrans &Off						&��������
menutrans &Manual					���&���
menutrans A&utomatic					&������������
menutrans on/off\ for\ &This\ file			���/����\ ���\ &�����\ ���
menutrans Co&lor\ test					�������\ &������
menutrans &Highlight\ test				�������\ ���&������
menutrans &Convert\ to\ HTML				�&�����\ HTML\ �\ ����������
"
"
" Buffers menu
"
menutrans &Refresh\ menu				�&�������\ ���
menutrans Delete					�&�����
menutrans &Alternate					&��������
menutrans &Next						�&�������
menutrans &Previous					&����������
menutrans [No\ File]					[���\ ���]
"
"
" Window menu
"
menutrans &New<Tab>^Wn					&�����\ ����<Tab>^Wn
menutrans S&plit<Tab>^Ws				&��������\ ����<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^			�������\ &��������\ ���\ �\ �����\ ����<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv			��������\ ��\ &��������<Tab>^Wv
menutrans Split\ File\ E&xplorer			�������\ ���������\ ��\ &�������\ �������
"
menutrans &Close<Tab>^Wc				&�������\ ���\ ����<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo			�������\ &��������\ ���<Tab>^Wo
"
menutrans Move\ &To					&�����������
menutrans Rotate\ &Up<Tab>^WR				��������\ ����&�<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr				��������\ �&���<Tab>^Wr
"
menutrans &Equal\ Size<Tab>^W=				�&��������\ �����<Tab>^W=
menutrans &Max\ Height<Tab>^W_				���������\ �&����<Tab>^W_
menutrans M&in\ Height<Tab>^W1_				���������\ ����&�<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|				���������\ &�����<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|				������&���\ �����<Tab>^W1\|
">>>----------------- Window/Move To
menutrans &Top<Tab>^WK					�&����<Tab>^WK
menutrans &Bottom<Tab>^WJ				�&���<Tab>^WJ
menutrans &Left\ side<Tab>^WH				�&����<Tab>^WH
menutrans &Right\ side<Tab>^WL				�&����<Tab>^WL
"
"
" The popup menu
"
"
menutrans &Undo						�&�������
menutrans Cu&t						&�������
menutrans &Copy						&���������
menutrans &Paste					��&�����
menutrans &Delete					&������
menutrans Select\ Blockwise				��������\ ���������
menutrans Select\ &Word					��������\ &�����
menutrans Select\ &Line					��������\ ��&����
menutrans Select\ &Block				��������\ &����
menutrans Select\ &All					�&�������\ &�ӣ
"
" The GUI toolbar
"
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open					������� ���
    tmenu ToolBar.Save					�������� ���
    tmenu ToolBar.SaveAll				�������� ��� ����
    tmenu ToolBar.Print					�������
    tmenu ToolBar.Undo					��������
    tmenu ToolBar.Redo					�������
    tmenu ToolBar.Cut					�������
    tmenu ToolBar.Copy					���������
    tmenu ToolBar.Paste					�������
    tmenu ToolBar.Find					�����...
    tmenu ToolBar.FindNext				����� ��������� ������������
    tmenu ToolBar.FindPrev				����� ����������� ������������
    tmenu ToolBar.Replace				��������...
    tmenu ToolBar.LoadSesn				��������� ���� ������������
    tmenu ToolBar.SaveSesn				�������� ���� ������������
    tmenu ToolBar.RunScript				��������� ������� Vim
    tmenu ToolBar.Make					����������
    tmenu ToolBar.Shell					�������
    tmenu ToolBar.RunCtags				������ ��� �����
    tmenu ToolBar.TagJump				������� � �����
    tmenu ToolBar.Help					�����
    tmenu ToolBar.FindHelp				���� ������
  endfun
endif
"
"
" Dialog texts
"
" Find in help dialog
"
let g:menutrans_help_dialog = "������� ������ ��� ����� ��� �����:\n\n������� i_ ��� ����� ����� ����� ������ (�������, i_CTRL-X)\n������� c_ ��� ����� ����� �������� ����� (�������, �_<Del>)\n������� ' ��� ����� ������ �� ����� (�������, 'shiftwidth')"
"
" Searh path dialog
"
let g:menutrans_path_dialog = "������ ���� ��� ����� �����.\n���� ������� ��������� �������."
"
" Tag files dialog
"
let g:menutrans_tags_dialog = "������� ���� ����� ����� (����� �����).\n"
"
" Text width dialog
"
let g:menutrans_textwidth_dialog = "������� ������ ����� ��� ������������.\n��� ������ ������������ ������� 0."
"
" File format dialog
"
let g:menutrans_fileformat_dialog = "�������� ����� ���."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n�&����"
"
let menutrans_no_file = "[��� ���]"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�j��YYvim80/lang/menu_zh_tw.big5.vimnu�[���" Menu Translations:	Traditional Chinese

source <sfile>:p:h/menu_chinese_taiwan.950.vim
PK�j�Z���3�3vim80/lang/menu_cs_cz.utf-8.vimnu�[���" Menu Translations:    Czech (UTF-8)
" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
" Previous maintainer:  Jiri Brezina
" Based on:             menu.vim (2012-10-21)

" Quit when menu translations have already been done.
if exists("did_menu_trans")
   finish
endif

let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" {{{ File menu
menutrans &File				&Soubor
menutrans &Open\.\.\.<Tab>:e		&Otevřít\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otevřít\ v\ no&vém\ okně\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otevřít\ tab\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Nový<Tab>:enew
menutrans &Close<Tab>:close		&Zavřít<Tab>:close
menutrans &Save<Tab>:w			&Uložit<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Uložit\ &jako\.\.\.<Tab>:sav
if has("printer") || has("unix")
   menutrans &Print			&Tisk
endif
menutrans Sa&ve-Exit<Tab>:wqa		U&ložit\ a\ ukončit<Tab>:wqa
menutrans E&xit<Tab>:qa			&Ukončit<Tab>:qa

if has("diff")
   menutrans Split\ &Diff\ with\.\.\.	Rozdělit\ okno\ -\ &Diff\.\.\.
   menutrans Split\ Patched\ &By\.\.\.	Rozdělit\ okno\ -\ &Patch\.\.\.
endif
" }}}

" {{{ Edit menu
menutrans &Edit				Úpr&avy
menutrans &Undo<Tab>u			&Zpět<Tab>u
menutrans &Redo<Tab>^R			Z&rušit\ vrácení<Tab>^R
menutrans Rep&eat<Tab>\.		&Opakovat<Tab>\.
menutrans Cu&t<Tab>"+x			&Vyříznout<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopírovat<Tab>"+y
menutrans &Paste<Tab>"+gP		V&ložit<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vložit\ &před<Tab>[p
menutrans Put\ &After<Tab>]p		Vloži&t\ za<Tab>]p
if has("win32") || has("win16")
   menutrans &Delete<Tab>x			&Smazat<Tab>x
endif
menutrans &Select\ All<Tab>ggVG		Vy&brat\ vše<Tab>ggVG
if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
   menutrans &Find\.\.\.			&Hledat\.\.\.
   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
else
   menutrans Find<Tab>/ &Hledat<Tab>/
   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
endif
menutrans Settings\ &Window		Nastav&ení\ okna
" {{{2 Edit -1
menutrans Startup\ &Settings  Počáteční\ &nastavení
menutrans &Global\ Settings				&Globální\ nastavení
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Přepnout\ zvýraznění\ vzoru<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Přepnout\ ignorování\ &VERZÁLEK<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Přepnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
menutrans &Virtual\ Edit				Virtuální\ p&ozice\ kurzoru
menutrans Never						Nikdy
menutrans Block\ Selection				Výběr\ Bloku
menutrans Insert\ mode					Insert\ mód
menutrans Block\ and\ Insert				Blok\ a\ Insert
menutrans Always					Vždycky
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Přepnout\ Insert\ mó&d<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Přepnout\ kompatibilní\ režim\ s\ 'vi'<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohledávání\.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g\ soubory\.\.\.
menutrans Toggle\ &Toolbar				Přepnout\ &Toolbar
menutrans Toggle\ &Bottom\ Scrollbar			Př&epnout\ dolní\ rolovací\ lištu
menutrans Toggle\ &Left\ Scrollbar			Přepnout\ &levou\ rolovací\ lištu
menutrans Toggle\ &Right\ Scrollbar			Přepnout\ p&ravou\ rolovací\ lištu
" {{{2 Edit -2
menutrans F&ile\ Settings				Nastavení\ so&uboru
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Přepnout\ číslování\ řá&dků<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Přepnout\ relativní\ číslování\ řá&dků<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Přepnout\ &List\ mód<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Přepnout\ zala&mování\ řádků<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Přepnout\ zl&om\ ve\ slově<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Přepnout\ &expand-tab<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Přepnout\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Přepnout\ &C-indenting<Tab>:set\ cin!
menutrans &Shiftwidth					Nastav&it\ šířku\ od&sazení
menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\.				Šířka\ te&xtu\.\.\.
menutrans &File\ Format\.\.\.				&Formát\ souboru\.\.\.
" {{{2 Edit -3
menutrans C&olor\ Scheme		Barevné\ s&chéma
menutrans &Keymap			Klávesová\ m&apa
if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
   menutrans Select\ Fo&nt\.\.\.		Vybrat\ pís&mo\.\.\.
endif
" }}}1

" {{{ Programming menu
menutrans &Tools			Nást&roje
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Skočit\ na\ tag<Tab>g^]
menutrans Jump\ &back<Tab>^T		Skočit\ &zpět<Tab>^T
menutrans Build\ &Tags\ File		&Vytvořit\ soubor\ tagů

if has("spell")
   menutrans &Spelling			&Kontrola\ pravopisu
   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
   menutrans To\ &Next\ error<Tab>]s	&Další\ chyba<Tab>]s
   menutrans To\ &Previous\ error<Tab>[s	&Předchozí\ chyba<Tab>[s
   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
   menutrans &Find\ More\ Languages	Nalézt\ další\ &jazyky
   let g:menutrans_set_lang_to = "Nastavit jazyk na"
endif

if has("Folding")   
   menutrans &Folding			&Skládání
   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ řádek\ &kurzoru<Tab>zv
   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ řádek\ kurzoru\ <Tab>zMzx
   menutrans C&lose\ more\ folds<Tab>zm	Složit\ &jednu\ úroveň\ skladů<Tab>zm
   menutrans &Close\ all\ folds<Tab>zM	Složit\ všechny\ sklady<Tab>zM
   menutrans O&pen\ more\ folds<Tab>zr	Přidat\ jednu\ úroveň\ skladů<Tab>zr
   menutrans &Open\ all\ folds<Tab>zR	&Otevřít\ všechny\ sklady<Tab>zR
   menutrans Fold\ Met&hod			&Metoda\ skládání
   menutrans M&anual			&Ručně
   menutrans I&ndent			&Odsazení
   menutrans E&xpression	&Výraz
   menutrans S&yntax			&Syntaxe
   menutrans &Diff			&Rozdíly
   menutrans Ma&rker			&Značky
   menutrans Create\ &Fold<Tab>zf		Vytvořit\ &sklad<Tab>zf
   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ všechny\ sklady<Tab>zD
   menutrans Fold\ col&umn\ width		Sloupec\ zob&razení\ skladů
endif

if has("diff")
   menutrans &Update			&Obnovit
   menutrans &Get\ Block			&Sejmout\ Blok
   menutrans &Put\ Block			&Vložit\ Blok
endif

menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		Výpis\ &chyb<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	Výp&is\ zpráv<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		Další\ ch&yba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Předchozí\ chyba<Tab>:cp
menutrans &Older\ List<Tab>:cold	Sta&rší\ seznam<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	N&ovější\ seznam<Tab>:cnew
menutrans Error\ &Window		Chybové\ o&kno
menutrans SeT\ Compiler			Nas&tavení\ kompilátoru
menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
menutrans &Open<Tab>:copen		&Otevřít<Tab>:copen
menutrans &Close<Tab>:cclose		&Zavřít<Tab>:cclose
menutrans Se&T\ Compiler		N&astavit\ kompilátor

menutrans &Convert\ to\ HEX<Tab>:%!xxd	Převést\ do\ šestnáctkového\ formát&u<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Př&evést\ zpět<Tab>:%!xxd\ -r
" }}}

" {{{ Syntax menu
menutrans &Syntax		Synta&xe
menutrans Set\ '&syntax'\ only	Nastavit\ pouze\ 'synta&x'
menutrans Set\ '&filetype'\ too	Nastavit\ také\ '&filetype'
menutrans &Off			&Vypnout
menutrans &Manual		&Ručně
menutrans A&utomatic		A&utomaticky
menutrans on/off\ for\ &This\ file	&Přepnout\ (pro\ tento\ soubor)
menutrans o&ff\ (this\ file)	vyp&nout\ (pro\ tento\ soubor)
menutrans Co&lor\ test		Test\ &barev
menutrans &Highlight\ test	&Test\ zvýrazňování
menutrans &Convert\ to\ HTML	Převést\ &do\ HTML
menutrans &Show\ filetypes\ in\ menu	&Zobrazit\ výběr\ možností
" }}}

" {{{ Menu Buffers
menutrans &Buffers		&Buffery
menutrans &Refresh\ menu	&Obnovit\ menu
menutrans &Delete		Z&rušit
menutrans &Alternate		&Změnit
menutrans &Next			&Další
menutrans &Previous		&Předchozí
" }}}

" {{{ Menu Window
menutrans &Window			&Okna
menutrans &New<Tab>^Wn			&Nové<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Rozdělit<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Ro&zdělit\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Rozdělit\ &vertikálně<Tab>^Wv
menutrans Split\ File\ E&xplorer	Rozdělit\ -\ File\ E&xplorer
menutrans Move\ &To			&Přesun
menutrans &Top<Tab>^WK			&Nahoru<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dolu<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Vlevo<Tab>^WH
menutrans &Right\ side<Tab>^WL		Vp&ravo<Tab>^WL

menutrans &Close<Tab>^Wc		Zavří&t<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zavřít\ &ostatní<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Další<Tab>^Ww
menutrans P&revious<Tab>^WW		&Předchozí<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Stejná\ výška<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Maximální\ výš&ka<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		M&inimální\ výška<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		&Maximální\ šířka<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minimální\ šířk&a<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		Rotovat\ na&horu<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotovat\ &dolů<Tab>^Wr

" {{{ Help menu
menutrans &Help			&Nápověda
menutrans &Overview<Tab><F1>	&Přehled<Tab><F1>
menutrans &User\ Manual		&Uživatelský\ Manuál
menutrans &How-to\ links	Ho&wto
menutrans &GUI			&Grafické\ rozhraní
menutrans &Credits		&Autoři
menutrans Co&pying		&Licenční\ politika
menutrans &Sponsor/Register	Sponzorování/&Registrace
menutrans &Find\.\.\.		&Hledat\.\.\.
menutrans O&rphans		O&siřelé\ děti
menutrans &Version		&Verze
menutrans &About		&O\ aplikaci
" }}}

" {{{ The popup menu
menutrans &Undo			&Zpět
menutrans Cu&t			&Vyříznout
menutrans &Copy			&Kopírovat
menutrans &Paste		&Vložit
menutrans &Delete		&Smazat
menutrans Select\ Blockwise	Vybrat\ blokově
menutrans Select\ &Word		Vybrat\ &slovo
menutrans Select\ Pa&ragraph Vybrat\ &odstavec
menutrans Select\ &Sentence   Vybrat\ vě&tu
menutrans Select\ &Line		Vybrat\ &řádek
menutrans Select\ &Block	Vybrat\ &blok
menutrans Select\ &All		Vybrat\ &vše
" }}}

" {{{ The GUI toolbar
if has("toolbar")
   if exists("*Do_toolbar_tmenu")
      delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
      tmenu ToolBar.Open		Otevřít soubor
      tmenu ToolBar.Save		Uložit soubor
      tmenu ToolBar.SaveAll		Uložit všechny soubory
      if has("printer") || has("unix")
         tmenu ToolBar.Print		Tisk
      endif
      tmenu ToolBar.Undo		Zpět
      tmenu ToolBar.Redo		Zrušit vrácení
      tmenu ToolBar.Cut		Vyříznout
      tmenu ToolBar.Copy		Kopírovat
      tmenu ToolBar.Paste		Vložit
      tmenu ToolBar.Find		Hledat...
      tmenu ToolBar.FindNext	Hledat další
      tmenu ToolBar.FindPrev	Hledat předchozí
      tmenu ToolBar.Replace		Nahradit...
      if 0	" disabled; These are in the Windows menu
         tmenu ToolBar.New		Nové okno
         tmenu ToolBar.WinSplit	Rozdělit okno
         tmenu ToolBar.WinMax		Maximalizovat okno
         tmenu ToolBar.WinMin		Minimalizovat okno
         tmenu ToolBar.WinClose	Zavřít okno
      endif
      tmenu ToolBar.LoadSesn	Načíst sezení
      tmenu ToolBar.SaveSesn	Uložit sezení
      tmenu ToolBar.RunScript	Spustit skript
      tmenu ToolBar.Make		Spustit make
      tmenu ToolBar.Shell		Spustit shell
      tmenu ToolBar.RunCtags	Spustit ctags
      tmenu ToolBar.TagJump		Skočit na tag pod kurzorem
      tmenu ToolBar.Help		Nápověda
      tmenu ToolBar.FindHelp	Hledat nápovědu k...
   endfun
endif
" }}}

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[Žádný soubor]"
let g:menutrans_help_dialog = "Zadejte hledaný příkaz nebo slovo:\n\n\tPřidejte i_ pro příkazy vkládacího režimu (např. i_CTRL-X)\n\tPřidejte c_ pro příkazy příkazové řádky (např. c_<Del>)\n\tPřidejte ' pro jméno volby (např. 'shiftwidth')"
let g:menutrans_path_dialog = "Zadejte cesty pro vyhledávání souborů. Jednotlivé cesty oddělte čárkou"
let g:menutrans_tags_dialog = "Zadejte jména souborů s tagy. Jména oddělte čárkami."
let g:menutrans_textwidth_dialog = "Zadejte délku řádku (0 pro zakázání formátování):"
let g:menutrans_fileformat_dialog = "Vyberte typ konce řádků"
" }}}" 

let &cpo = s:keepcpo
unlet s:keepcpo



" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3:
PK�j�Z�
��+�+ vim80/lang/no/LC_MESSAGES/vim.monu�[������D4�lh`�a�w�
������'��/݋
�#�9�0O�����+����"܌���5 �V�s��������,b�;��ˎ���,�=�P�_�u�������֏0�.�/M�1}�0��
����
5�C�
X� c�������!‘�"�&�E�]�n�@}���ْ�����/-�=]�����̓ݓ1�1!�S�h�}���-�����(�E�]�3u�3��$ݕ��7�O�i�z�
������Ɩٖ
�$��$� 0�Q�i�;����̗#ٗ	��� �(�8�I�
R�]�w�������	ĘΘ֘ޘ!��!�A�a�i����� ����ԙ��� �
(�6�6C�z���!��Ԛ
ܚ�	���!�-�2�	7�"A�*d���������ʛ�
�
���

��'�9�B�5`���-��1֜&�/�G�\�n�������ŝ$ם���
 �+�:�J�b�x�������ĞԞ���	��$�4�F�
`�k�x���
������7������&�/�7�=�A�M�\�=`�2��Ѡڠ��'��-"�5P�����?�����)�8�	G�Q�j�{���-��ݢ$��"�
B�M�]�q�}�?��5ԣ!
�%,�9R�E��9ҤC�IP�H��;�0�6P�8��3��-�"�%<�b�v�����&��,�#
�41� f�@��-Ȩ0��'�;<�x�"����>̩)�>5�<t���#Ѫ:��'0�9X���$��9Ы4
�;?� {�>��1۬/
�=�-Z���.��Bƭ"	�/,�2\�*����+خ%�'*�(R�<{�E��.��--�$[���<��ְ*�&� B�4c�������αڱ���!�2�>�
K�Y�b�"j���������ز�)�-�$6�![�}�����"��"ó���1�?J�O��ڴ�����&�<�W�j�X��%ܵ��!�?�X�q�������$��ٶ!��*�0�@�D�b�"����$��շ#���:�QX�����ɸ۸� �-�M�!_���?��Pǹ�
%�
3�.>�m�-����-Ӻ$�.&�U�o�~�"��
��CȻ	��"�!7�Y�_�}�3��2��!�(� 4�"U�Ex���%۽#�-%�S�q���&��Ѿ����,�D�\�)w�+��@Ϳ-�<�5Y�������D� �E=���-��7�#� (�:I�5��&��"��&�$+�#P�!t�=��5�� 
�(+�7T�!��,������� &�#G�&k������������0�O�0n�$��!�� ��(�40�,e����������� �%�B�1\���!��%��%��%�?� X�y���?��&��!�9�
U�Ac�%��"��"��9�'K�(s�2��*��!��!�)>�%h�!��4��:��& �;G�;��)��0���9�U�n���#��!��8��&�#?�c� {�/��"����-�.�?�X�/p�*��(��#���4�O�l���>�������".�Q�p�����!����9��10�)b�1��%��7���A6�?x�������!�(�C�0b�4��$��)��N�,f�L�������8%�^�t���,�� �� ��#�A�\�7v�N��M��K�g���$��!��3��,�2G�%z�*��9��(�.�"I�l�#���������B$�g�0��!�� ��<��+2�^�~�+��2��$���,5�b�H}�,����	�")�L�i�������9���4�O�0k�#��'������,�&E�l��+��2��-��(�G�"`�'��'��,���.�F�#f�,��W��)�"9�,\�%���� ����2�29�2l���!������2�5?�'u�#��)��3��$�%D�j���������$��&� :�'[�*��#��'��%��3 �!T�v�+����*��-�$:�_�~������� �� �$)�$N�)s�,������,��%�:�%U�{�=�������+�'E�m���$��#��0��.!�0P�������������-3� a���7��)����$�(<�e���%��$�������'-�U�'t� �������� �7(�0`���#����"��(�!@�b�-��1��6��5�M�.h�*��1��9��.�*N�&y�+��,�+��4%�<Z�+��*����1�F�]�x�������"�����+�J�c�|���������:�:M�=��<�6�<:�w�"�����4�5�4:�3o���0���D��%>�d����������#�A�\�s��������'��,�!L�n���"���1�
�$�A�"V�y���������2K^r�����*')R|� ����6#Ei)�2�&�K	U h�����#"=&`#���+�%775o��,�$?)U ����#B^0v����4.N$})�1�;�:	.J	*y	�	$�	�	%
,*
W
h

&�
-�
&�
 1Ro�+� ��?)Dn6�#�2�9
>P
8�
1�
�
))B l)��)�*�"'J#c"�"�)��%5 [+|$���!
0,]v��"�!�98H$����+�%1C)u��'�%�&2!Y%{'�%�'�-2Ex�$���""Ee!�1�&�!!?av�+�8�74El!���&0'#X|$��#�*� :[n0�2�0�+:)f$�/���')7,a�� ��-,Ly/�+�'�!08i!�,���(�!:0P.���9�' (@ +i /� � � !!!!"C!Bf!�!�!�!�!")>"'h"�"�"'�"�"	�"##'#@#Z##p#	�#�#�#�#.�#$.$6N$�$�$6�$#�$&�$	!%+%@%X%o% |%%�%!�%
�%�%(&/&H&W&]&(d&
�&	�&%�&�&
�&&�&&'-'J')Y'�'
�'�'
�'�'�'�'�'	('(	<(2F(*y(�(�(�(�(
))	)%)1)=)R)#m)(�)�)�)	�)
�)�)	*2*D*P*o*�*�*�*$�*/�*'+.+D+
[+$f+�+�+�+ �+�+�+,!,:,Y,b,r,u,�,�,#�,�,�,-. -
O-Z-	p-z-�-'�-�-�-
�-�-.'.;.D.^.}.�.�.�.9�./5/=/J/
V/d/m/�/�/�/(�/�/
00&070
D0	O0Y0o0�0�0�09�0
�01141O1&f1�1�1�1�1?2QB2	�2�2�2�2"�233 3@3T3c3
u3�3'�3�3�3�3F4J4\4u4�4�4(�4�4�4�45"585Q50`5;�5 �5>�5-6E6]61y6"�6�6�6�673,7`7(}7�7�7�7$�70868?8B8+X8�8�8�8�8�8	�8�8�
9�9F�9�9
�9
:	:
:(:+=:i::�:�:%�:0�:,;(<;e;1�;+�;*�;
<&$<9K<M�<>�<)=5<=Ar=4�=$�=6>"E>h><p>?�> �>"?1?F?b?s?�?�?�?�?�?2@)7@,a@-�@ �@!�@#�@#A<A
TA_ApAA�A
�A�A�A	�A�A�A�A�AB"B
2B=BMB
]B
hBsB	yB�B�B�B	�B
�B�B
�B5�B#C	/C9CFC
LCZC&aC�C�C�C�C
�C�C
�C�C�C:�C" D"CD)fD�D�D�D�D�D�D�D1E
8E$CE"hE�E<�E�E�E
FF7FHDFC�F�F�FGG0G7G?GEG	MGWGhG~G �G-�G-�GH"H>H]HmH~H=�H�H
�H�H$
I2I>IDI_ItI�I�I
�I�I�I�I�I�I/J5J
DJ RJ sJ�J
�J�J�J�J�J�JK	6K@KYKmKtK�K�K�K#�K1�K1�K1*L1\L�L	�L
�L�L�L�L�L�L�L
	MMM
8M CMdMxM�M�M�M�M	�M"�MN$%N$JNoNvN�N�N
�N�N�N�N
OO,O4O.@O.oO.�O.�O.�O.+P.ZP.�P.�P�P�PQQ	 Q7*QbQQ�Q�Q�Q
�Q�Q�Q�Q	RR'R<RPReR%rR3�RO�RT6TGTVT^T*vT0�T�T�T�T0U
FU
TU*_U�U$�U�U�U7�U"V@V]VlV��V%LW7rW�W�W�W�W
XX,X;X UXvX�X�X�X0�X.Y/5Y1eY0�Y�Y �YZZ,3Z`ZuZ�Z�Z�Z�Z&�Z["/[#R[v[�[�[P�[�[\)\:\T\o\4�\B�\�\].]C]3_]3�]�]�]�]^)%^O^n^�^�^ �^ �^8�^7)_+a_�_ �_ �_�_
``1`=` L`m` �`�`+�`
�`-�` a ?a;`a
�a�a'�a�a�abb b
0b
;bFbabtb �b �b	�b�b�b�b"�bc$'c!Lcncvc	�c	�c!�c�c�cd d)d2d8dDd>Pd�d�d#�d�d�de
e! e
BePeUe	Ze$de*�e �e�e�e�e�e
f
f
#f
.f9fFfYfif#rf>�f�f.�f4g-Lgzg�g�g�g�g�ghh+0h\hnh	�h�h�h�h�h�h�hii3iFi%bi�i	�i�i�i�i�i
�i�i
jj*j9jLj?]j
�j�j�j�j�j�j�j�j
�jkOkDUk�k�k�k�k*�k4�k9$l^lzl9�l�l�l�l
m	mm;mMmdm,�m�m#�m�m	nn'n=nIn;en8�n�n$�n<oN\oA�o?�oG-pDupA�p1�p?.q4nq=�q/�qr$,rQr"fr�r�r*�r,�r!s91s'ks6�s/�s7�s#2t@Vt"�t!�t�t:�t6'uJ^u9�u%�u"	v;,v(hv:�v�v&�v:wAGw<�w�wJ�w:0x0kx�x8�x�x1yJ3y)~y0�y2�y+z8z(Wz!�z'�z)�z?�zR4{3�{4�{,�{|?6|v|.�|(�|$�|7}H}]}t}�}�}�}�}�}�}�}
~"~	=~G~(O~x~�~ �~ �~�~�~&-$>!c��
�"�!���1�BP�L��������-�E�`�x�Z��&��� 5�V�u�������т%ڂ�%�;�Y�^�k�p���"��΃"��/#�S�Z�v�]�����+�D�"`�������օ?ۅP�
l�
z���&����+Ά��-�%G�3m�����͇��L�c�	k�u�������ʈ7Έ6�"=�"`���*��LΉ �-<�)j�.��Ê"��+�K�]�o���#��ȋ�-�,/�D\�3��ՌF�9�O�k�F��͍O�;�2U�6��*��'�?�:R�&��$��'ُ.�'0�$X�E}�8Ð$��,!�8N�%��0��"ޑ��#3�!W�%y�����Β��!�:�Y�:w�#��"֓!��+�0G�(x�����Ԕ��� 6�W�?t�!��֕<��33�%g���"��Ȗ�6��-6�&d�����H��.��.�%H�An�)��/ژC
�*N�)y�#��'Ǚ'�&�5>�At�+��E�;(�+d�3��ě"� �(�B�,b�$��D��1��+� J�.k�7��'ҝ��4�@�%Q�w�/��+��(�&�:�5W�����ǟ?�#�?�_�+{���Ġ���(�B�8a�9��-ԡ6�'9�;a���A��G�� E�!f�!��$��ϣ$�8�9J�'��1��Kޤ7*�Ib�����ԥ?�(�;�S�)r�#��$��(��*�FF�V��[�@�%]�1��*��$�F�,L�3y�$��4ҩ:�%B�h�"����%���!�!#�!E�Ig���2ϫ�("�>K�,��!��٬'�4�%M�"s�5��̭M�&7�^�t�&����Ԯ�
�#%�7I�����#��3߯"�/6�f� s�*��-����,�<E�0��'��۱*��(!�)J�1t���6Ų�� �78�Yp�.ʳ'��0!�)R�|�&��ô3�5�7K��� ��µص0�0�/P�%��(��<϶&�+3�_����$��׷#�!�8�&W�)~�!��.ʸ&��F �!g�!��.��ڹ,��,$�'Q�#y�����ֺ�$�$*�(O�$x�.��1̻���+*�V�!l�2�� ��M�0�N�n���)��ν�'
�#2�/V�0��9����1�M�e�����6��#��84�,m���(��-�	�&�#6�Z�y���"��)�$��'�D�c����+��9��4�&L�)s�"��'��-���(4�,]�/��4��3��#�.B�/q�;��F��$�-C�3q�/��.��-�;2�Cn�.��4���/�I�a�s�����������#���3� P�,q�������"���4�S�k�����I��P�G\�G��<��)� E�f���@��B��?�:L���:����P��%;�!a���!���������'�F�b�y�������!��*���:5�<p�$�������4$�Y�t���(������ �"�=�Q�%e��������������-�I�f���,��+�����*�!G�i�{�8��)����-�.C�&r�H����!���:�W�m��� ����'��&��##�G�_�({�2��9��7�I�g�-����#����,�B�^�t������� ����#�2;�n�!����'��;��3)�0]�%��1��9�� �71�'i�1��'����'
�32�f�x���,��0��&�5�'S�%{�%����G��&.�U�Eh�&����=�� -�3N�.��:��:��;'�-c�$��(��'��'�/�)M�.w�%����'��"
�"-�0P�����*��!��D�/L�.|���$��1��"�=�X�r�1��0��C��A6�)x�������.��)�6B�,y�����)��'��"%�/H�x�"��'��"��'�*+�/V�����&��0��"�#3�&W�&~�&����0��$�"B�%e�������$��+��B'�#j�8��Q��#�=�N�)n�)��'����'�(�&B�'i���!������/�15�+g���%��%��'��0&�W�q�!��*��/�����0:�k�"��+��.���2�.J�'y�$��3����!�06�g�}�)��#����8��0*�![�!}�?����(��=!�=_�!��%���#�$'�VL�#������$�/B�/r�"��$�/��!�-�F�W�q���'�������>�V�8s�<����3��'2�/Z���������
�"�'��%&�L�T�*h���
������-��
��*�2�	>�'H�'p�)���2��
�$�
8�C�O�j�{������)�$�%�5�U�j�|������������&�(�(9�b�	v� ������H��/IX^*v8�5�)
B*P{��&� �
'('P
x����#�)�!)K0S	���$��0�0?O`z������9)c�
��������5
C	]g	�
�����	'B1
t���$�#�#"#Fj<�M�		-	@	V	v	�	�	�	
�	�	
�	
�	%
*
E
^
Cy
�
�
�
�
)
7Vh|���;�;%LFr���9
$N
s
x
%�
'�
4�
)/Yu|�0�	���'3IV
o }����MAd������/7Rn�1�1�
)I0c3�/��/A@K�J�-;GR�7�8-#f�B�C� $;`x������1'(Y+�,�*�!*(Sp���
����	#7?Zt�������'��
&1
6<A~
���
��.��*<
ESZE`'�&�/�%5/9,i���+�	�*�&)"P8s���"�G"Hj� ��1
6ANS	`jz�'�-�- . B ` ~ � � 4� 
� 
� !)!I!X!]!y!�!�!�!�!
�!�!�!�!"-"
L"Z"#i"/�"�"�"�"	�"�"
# (#I#
`#n#�#�#�#�#�#	�#%�#=$>B$3�$3�$�$�$%%%%)%D%[%p%�%�%�%�%!�%�%&!&7&O&g&�&!�&�&)�&)�&''2';'Z'f'$~'$�'�'�'�'�'3(3<(3p(3�(3�(3)3@)3t)3�)�)�)�)**`*"{*�*�*�*�*�*�*
++$+-+=+Q+d+	x+(�+4�+�H'���s4o#o�S�����i]��������d6"��C����:"nLt�&X���QT���e�'VBP�����;v���x����e:����������@=�Rx
��2��%1�x�Q��[��-������^�`��R���|��C|3���']Xii��
3�J����nV��Un(5��<w�����&UM�5�"�������+�����#!��$6^?LD�@�Q�N+^�;��P�"�>Iky��p^}���\�i.7�IT{N}~�Mc�����l���������|��_!�P���%,��ZNw
q9���_yX�O��Az
�U�6����u�o����&2J��s30]g��������>�?K�Jb� �uv��B,
�!M�)l{c�P���ta�6��Z�c�d+��f�e�C�_��&��:XAR���=z
��"Ev���
PAG}��6��E/m�,�Fg��T�`�s1r�|�M��5d5o{�9��/ �C�O��m�����<�c�a�u�F��>�N����I`l�F��{��V���9���'>7H�4��mwt*��&�.�����N��@jaN�{s��r^�,�J���\�qZByp1r9�����S�")��E_ ��(4L���]�Q.��z�d�|�5�=�X�R%��,��3#,���*Ko�@�Z4B~hfj�]�XxF����`������gl{*D�K�D��0Sm��i7OpG73��b���<��*)@�y���(�m$�����T|.��7�'��*��b<�;jP
C�08��+.j�C?�*�:W����W�WK��[;@�9�G���Kf��C=�kbh�Y)�2��y$��j\���h$��ue+��y�����$I2��E��.��<���z���w�������3�AF!��AS������\8�-�p����'�zU���%�YJ�/������g���hu�B�a�+�=U�6^DO������_��O�����]�16�����m�,��U�Y:	5�}0
"���Y�V������-���?a[!��I�n����H��:#sL-�x}H�~��U�7	�N8W	)�-v���`�i9bO�0�W�[}A�%�%tp�wtoQ�/�n���T���
p���lge���2Du��q4��8�y�rz�H���g�@%k���PQ���f0�~�`��qc f���)���>Y[��?�x��K���r>�1i�S��ZdI����5V��8L�|eQ2�.��=(�k�\L+��H��(��/#lA	���_�`�;#�q�e�� 4�TI��jMvM������^��bw��r���fB�X�������~���-�!������B�q/����Y#M�a\z	l��w�� �9�'TG���K��p��s!7G������t��$�����F*m�H�;���-���REh��(�G�/EE�V��>��Jf�1�q�4[��Z�d�v8
~�x)�~���j�	��
R�k<������g0R2�����cb<��:��o�� &��ZSu��W��hr����a8
�=��O&���S��L�_vhW�d���Y�G1�n�������{�����s�3��$�}�(�ntk��[�����\��
�?�Vk�D�J��]�;�cD�	�?��F�			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???: Sorry, this command is disabled, the MzScheme library could not be loaded.???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Choice number (<Enter> cancels): CloseCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNothing to undoOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPress ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUndo number %ld not foundUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NL found][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!environment variableerror handlererror list %d of %d; %d errorsexpressions disabled at compile timefewer linesfile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal more linemore linesnew shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwhere case is ignored prepend / to make flag upper casewindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringswriting to device disabled with 'opendevice' optionProject-Id-Version: Vim 6.x
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2007-03-19 02:09+0100
PO-Revision-Date: 2007-03-21 11:51+0100
Last-Translator: �yvind A. Holm <sunny@sunbase.org>
Language-Team: Norwegian <vim.in.norwegian@sunbase.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
			  (Ikke implementert)

	Sist satt fra 

Parametere:


bruk:
          modifisert: 
         [ikke brukbar p� denne maskinen]
         [ikke brukbar med denne Vim-versjonen]
         vertsnavn: 
         brukernavn: 
        prosess-ID: 
    Navn        Prm. Omr�d Fullf�r   Definering
   #   linje
   eller:
  # TIL tag        FRA  linje i fil/tekst
 hopp linje kol fil/tekst
# %s-historie (nyeste til eldste):

# Bufferliste:

# Filmerker:

# Historie for merker inne i filer (yngst til eldst):

# Hoppliste (nyeste f�rst):

# Siste erstatningstekst:
$
# Registere:

# globale variabler:

(1) Det er mulig et annet program redigerer den samme filen.
    Hvis det er tilfelle, v�r forsiktig s� du ikke ender opp med to
    forskjellige utgaver av den samme filen n�r du gj�r forandringer.

(2) En �kt for denne filen kr�sjet.

(Du vil kanskje lagre denne filen under et annet navn

--- Autokommandoer ---
--- Globale valgverdier ---
--- Lokale valgverdier ---
--- Menyer ---
--- Valg ---
--- Registere ---
--- Skilt ---
--- Syntakselementer ---
--- "Syntax sync"-elementer ---
--- Terminalkoder ---
--- Terminaltaster ---
16-bits MS-DOS-versjon
32-bits MS-DOS-versjon
Parametere gjenkjent av gvim (Athena-versjon):

Parametere gjenkjent av gvim (GTK+-versjon):

Parametere gjenkjent av gvim (Motif-versjon):

Parametere gjenkjent av gvim (RISC OS-versjon):

Parametere gjenkjent av gvim (neXtaw-versjon):

Stor ("big") versjon 
Kan ikke opprette r�r ("pipe")

Kan ikke kj�re skall 
Kan ikke kj�re skallet sh

Kan ikke opprette tvillingprosess ("fork")

Kommando avsluttet

Kompilert 
Fant en swapfil ved navn "
Diger ("huge") versjon 
Inkluderte patcher: 
MS-Windows 16-bits versjon
MS Windows 16/32-bits grafisk versjon
MS-Windows 32-bits GUI-versjon
MS-Windows 32-bits konsollversjon
MS Windows 64-bits grafisk versjon
MacOS X (unix)-versjon
MacOS X-versjon
MacOS-versjon
Det er mulig ingen forandringer ble gjort, eller Vim oppdaterte ikke swapfilen.
Mer info med: "vim -h"

Normal versjon 
RISC OS-versjon
Liten ("small") versjon 
Spinkel ("tiny") versjon 
Vim: Mottok X-feil

ADVARSEL: Originalfilen kan bli tapt eller �delagt

[bytes] totalt alloc-frigjort %lu-%lu, i bruk %lu, topp-bruk %lu

forand linje kol tekst
merk linje kol fil/tekst
skallet returnerte 
synkroniserer p� elementer                                  for standard Vim                                   for to moduser                datert:           eies av:          [kan ikke �pnes]         [kan ikke leses]         [ser ikke ut som en Vim-swapfil]         [fra Vim versjon 3.0]         filnavn:       -- ingen --
      NYERE enn swapfil!
         exrc-fil for brukere: "        vimrc-fil for brukere: "    Hvis det er tilfelle, bruk ":recover" eller "vim -r     Hvis du har gjort dette allerede, slett swapfilen "    Avslutt, eller fortsett med varsomhet.
    linje=%ld  id=%d  navn=%s          menyfil p� systemet: "       gvimrc-fil for brukere: "   I n�v�rende katalog:
   I katalog    Bruker spesifisert navn:
   datert:    vertsnavn:         vimrc-fil p� systemet: "  (Allerede listet)   exrc-fil nr. 2 for brukere: "  DEBUGGINGSVERSJON  Funksjoner inkludert (+) eller ikke (-):
  IKKE FUNNET Bruker tag med forskjellig bokstavst�rrelse!       $VIM faller tilbake p�: "       gvimrc-fil p� systemet: " # pid    databasenavn                        legg til sti
 (Avbrutt) (IKKE FUNNET) (inkluderer tidligere utlistede treff) (sett inn) (sett inn) Rulling (^E/^Y) (lang) (linjen slettet) (ikke st�ttet) (lim inn) (erstatt) (erstatt) Rulling (^E/^Y) (kj�rer fortsatt) (v-erstatt)  vimrc-fil nr. 2 for brukere: "  vimrc-fil nr. 3 for brukere: " < "%.*s" Legger til arabisk KONVERTERINGSFEIL Kommandolinje-fullf�ring (^V^N^P) Kopi %d av %d Fullf�ring av defineringer (^D^N^P) Fullf�ring fra ordliste (^K^N^P) FEILET Fullf�ring av filnavn (^F^N^P) hebraisk SETT INN Lokal n�kkelordfullf�ring (^N^P) N�kkelordfullf�ring (^N^P) Omni-fullf�ring (^O^N^P) Stim�nster-fullf�ring (^N^P) ERSTATT OMVENDT VELG VELG BLOKK VELG LINJE MELLOMROM/d/j: Skjerm/side/linje ned, b/u/k: Opp, q: Avslutt  Fullf�ring av tag (^]^N^P) Thesaurus-fullf�ring (^T^N^P) Brukerdefinert fullf�ring (^U^N^P) VISUELL VISUELL BLOKK VISUELL LINJE V-ERSTATT Fullf�ring av hel linje (^L^N^P) [Modifisert] [l] [s] lagt til kan ikke brukes p� denne maskinen.
 kan ikke brukes med denne Vim-versjonen.
$VIMRUNTIME faller tilbake p�: " i Win32s-modus info linjeskift linjer f�r topplinje merker i %ld linjer i 1 linje eller mer returnerte
 vim [parametere]  med OLE-st�tte skrevet"
    for � unng� denne meldingen.
"
    for � gjenopprette forandringene (se ":help recovery").
" finnes allerede!# Denne viminfo-filen ble generert av Vim %s.
# Verdien av 'encoding' n�r denne filen ble skrevet
# Du kan redigere den hvis du er forsiktig!

%-5s: %-30s (Bruk: %s)%3d  %s %s  linje %ld%<%f%h%m%=Side %N%d buffere ble slettet%d buffere ble lastet ut%d buffere ble visket ut%d duplisert(e) ord i %s%d filer � redigere
%d andre filer � redigere. Avslutt likevel?%d av %d redigert%ld %s; %s #%ld  %s%ld Kol; %ld tegn%ld linjer fjernet%ld linjer "%s"-et %d ganger%ld linjer "%s"-et 1 gang%ld linjer --%d%%--%ld linjer forandret%ld linjer filtrert%ld linjer rykket inn %ld linjer flyttet%ld linjer � rykke inn�... %ld linjer kopiert til utklippstavlen%ld linjer, %ld treff%ld linjer lagt til%ld sekunder siden%ld erstatninger%s Autokommandoer for "%s"%s avbrutt%s forkastet%s linje %ld%s satt p� venting%s gjenopptatt%s returnerer #%ld%s returnerer %s%s-verdi er forskjellig fra det som er bruk i en annen .aff-fil%s, linje %ld%sviminfo: %s i linje: &Avbryt&Forkast&Filter&Hjelp&OK&OK
&Avbryt&OK
&�pne fil&Ok&�pne skrivebeskyttet
&Rediger likevel
&Gjenopprett
&Slett den
&Avslutt
Av&bryt&�pne skrivebeskyttet
&Rediger likevel
&Gjenopprett
&Avslutt
Av&brytE&rstatt&Angre&Ja
&Nei&Ja
&Nei
&Avbryt&Ja
&Nei
&Lagre alle
&Forkast alle
&Avbryt' ikke kjent. Tilgjengelige innebygde terminaler er:'columns' er ikke 80, kan ikke utf�re eksterne kommandoer'dictionary'-valget er tomt'history'-valget er null'readonly'-valget er satt for "%s".
Vil du lagre likevel?'thesaurus'-valget er tomt(%d av %d)%s%s: (+%ld for BOM)(Avbrutt) (Ugyldig)+			Start p� slutten av filen+-%s%3ld linjer: +--%3ld linjer foldet +<lnr>		Start p� linje <lnr>+reverse		Ikke bruk invers video (ogs�: +rv),
eller filen er blitt �delagt.-               les tekst fra stdin--			Bare filnavn etter dette-- Mer ---- S�ker�...--- Inkluderte filer --Slettet----Ingen linjer i bufferen----cmd <kommando>	Kj�r <kommando> f�r lasting av vimrc-filer--columns <antall>	Innledende bredde p� vindu i kolonner--literal		Ikke utvid jokertegn--noplugin		Ikke last plugin-skripts--remote <filer>	Rediger <filer> p� en Vim-tjener hvis mulig--remote-expr <uttrykk>	Evaluer <uttrykk> p� en Vim-tjener og skriv resultatet--remote-send <n�kler>	Send <n�kler> til en Vim-tjener og avslutt--remote-silent <filer>  Samme, ikke klag hvis tjeneren mangler--remote-wait <filer>  Som --remote men vent p� filer som blir redigert--remote-wait-silent <files>  Samme, ikke klag hvis tjeneren mangler--role <role>	Sett en unik "role" for � identifisere hovedvinduet--rows <antall>	Innledende h�yde p� vindu i rader--serverlist		List navn p� tilgjengelige Vim-tjenere og avslutt--servername <navn>	Send til/bli Vim-tjeneren <navn>--socketid <xid>	�pne Vim innenfor et annet GTK-skjermelement--version		Skriv versjonsinformasjon og avslutt-A			Start i arabisk modus-C			Kompatibel med Vi: 'compatible'-D			Debuggingsmodus-F			Start i persisk (Farsi) modus-H			Start i hebraisk modus-L			Samme som -r-M			Modifiseringer i teksten ikke tillatt-N			Ikke helt Vi-kompatibel: 'nocompatible'-O[N]		Som -o men splitt loddrett-P <foreldretittel>	Start Vim innenfor et foreldreprogram-R			Skrivebeskyttet modus (som "view")-S <�kt>		Kj�r filen <�kt> etter lasting av f�rste fil-T <terminal>	Sett terminaltypen til <terminal>-U <gvimrc>		Bruk <gvimrc> istedenfor eventuell .gvimrc-V[N]		Informasjonsniv� ("Verbose")-W <utskript>	Skriv alle skrevne kommandoer til filen <utskript>-X			Unng� oppkobling til X-tjener-Z			Begrenset modus (som "rvim")-b			Bin�rmodus-background <farge>	Bruk <farge> p� bakgrunnen (ogs�: -bg)-boldfont <skrifttype>	Bruk <skrifttype> p� fet skrift-borderwidth <bredde>	Bruk en rammebredde tilsvarende <bredde> (ogs�: -bw)-c <kommando>	Kj�r <kommando> etter lasting av f�rste fil-d			Differanse-modus (som "vimdiff")-dev <enhet>		Bruk <enhet> for I/U-display <display>	Koble vim til denne spesielle X-tjeneren-display <display>	Kj�r vim p� <display>-display <display>	Kj�r vim p� <display> (ogs�: --display)-e			Ex-modus (som "ex")-f			Ikke bruk newcli for � �pne vindu-f  eller  --nofork	Forgrunn: Ikke fork n�r GUI-et startes-font <skrifttype>		Bruk <skrifttype> p� normal tekst (ogs�: -fn)-foreground <farge>	Bruk <farge> p� normal tekst (ogs�: -fg)-g			Kj�r med GUI (som "gvim")-geometry <geom>	Bruk <geom> for innledende vindusplassering (ogs�: -geom)-h  eller  --help	Skriv hjelpen (denne teksten) og avslutt-i <viminfo>		Bruk <viminfo> istedenfor .viminfo-iconic		Start vim som ikon-italicfont <skrifttype>	Bruk <skrifttype> p� skr� tekst-l			Lisp-modus-m			Modifisering (lagring av filer) ikke tillatt-menuheight <h�yde>	Bruk en menyblokkh�yde tilsvarende <h�yde> (ogs�: -mh)-n			Ingen swapfil, bruk bare hukommelsen-name <navn>		Bruk ressurs som om Vim var <navn>-o[N]		�pne N vinduer (standard: Ett for hver fil)-q [feilfil]    rediger fil med f�rste feil-r			List swapfiler og avslutt-r (med filnavn)	Gjenopprett kr�sjet �kt-register		Registrer gvim for OLE-reverse		Bruk invers video (ogs�: -rv)-s			Stille (batch) modus (bare for "ex")-s <innskript>	Les normalmodus-kommandoer fra filen <innskript>-scrollbarwidth <bredde>  Bruk en rullefeltbredde tilsvarende <bredde> (ogs�: -sw)-t tag          rediger fil hvor en tag er definert-u <vimrc>		Bruk <vimrc> istedenfor eventuell .vimrc-unregister		Fjern OLE-registrering for gvim-v			Vi-modus (som "vi")-w <utskript>	Legg alle skrevne kommandoer til filen <utskript>-x			Rediger krypterte filer-xrm <ressurs>	Sett den spesifiserte ressursen-y			Lett modus (som "evim", uten modus)'/'-linje ignorert i %s linje %d: %s'/encoding='-linje etter ord ignorert i %s linje %d: %s1 buffer ble slettet1 buffer ble lastet ut1 buffer ble visket ut1 tegn1 linje "%s"-et %d ganger1 linje "%s"-et 1 gang1 linje --%d%%--1 linje forandret1 linje rykket inn 1 linje fjernet1 linje flyttet1 linje kopiert til utklippstavlen1 linje, 1 treff1 annen fil � redigere. Avslutt likevel?1 linje lagt til1 erstatning gvimrc-fil nr. 2 for brukere: " gvimrc-fil nr. 3 for brukere: ": Sending av uttrykk feilet.
: Send feilet.
: Send feilet. Pr�ver � utf�re lokalt
; samsvarer med <%s>%s%s  %d,  Hex %02x,  Oktal %03o<bufferobjekt (slettet) ved %8lX><kan ikke �pne> <tom><vindu %d><vindusobjekt (slettet) ved %.8lX><vindusobjekt (ukjent) ved %.8lX>> %d, Hex %04x, Oktal %o> %d, Hex %08x, Oktal %o??? Herfra til ???SLUTT kan linjer v�re rotet til??? Herfra til ???SLUTT kan linjer ha blitt lagt til eller slettet???: Denne kommandoen er deaktivert, MzScheme-biblioteket kunne ikke lastes.???BLOKK MANGLER???TOM BLOKK???SLUTT???FEIL LINJEANTALL???LINJER MANGLER???MANGE LINJER MANGLERANCHOR_BUF_SIZE for liten.Legg til en ny databaseLa til cscope-database %sAffiks ogs� brukt for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST i %s linje %d: %sAffiksnavn for langt i %s linje %d: %sAltAlle cscope-databaser resattAlle inkluderte filer ble funnetAllerede ved nyeste forandringAllerede ved eldste forandringAllerede bare ett vinduLegg til filParameter mangler etterP� linjeFors�k p� � �pne skriptfilen igjen: "Tilbake i originalenOmr�de bakover er angitt, OK � swappeBli registrert bruker av Vim!Pip!F�r byte %ldBunnB�de SAL- og SOFO-linjer i %sStoppunkt i "%s%s" linje %ldBrutt betingelse i %s linje %d: %sBla gjennom klasseCOMPOUNDSYLMAX brukt uten SYLLABLEKaller skall for � utf�re "%s"Kan ikke finne midlertidig fil for konverteringAvbrytKan ikke koble til NetbeansKan ikke koble til Netbeans #2Kan ikke koble til SNiFF+. Sjekk milj�et ("environment") (sniffemacs m� bli funnet i $PATH).
Kan ikke opprette Kan ikke utf�re Kan ikke �pne NIL:
Kan ikke �pne filen "%s"Kan ikke �pne for lesing: "Kan ikke �pne for skript-utdata: "Kan ikke kj�re en katalog: "%s"Forandre "%.*s" til:Valgnummer (<Enter> avbryter)LukkKol %s av %s; Linje %ld av %ld; Ord %ld av %ld; Byte %ld av %ldKol %s av %s; linje %ld av %ld; ord %ld av %ld; tegn %ld av %ld; byte %ld av %ldKommandolinjeKompilering: Kompilator: Pakket %d av %d noder; %d (%d%%) igjenPakker ordtre ...Konverteringsfeil for ord i %s linje %d: %sKonvertering i %s ikke st�ttetKonvertering i %s ikke st�ttet: Fra %s til %sKonvertering med 'charconvert' feiletKlarte ikke ordne opp i funksjonspekere til DLL-en!Klarte ikke laste vim32.dll!Cscope-tag: %sN�v�rende %sspr�k: "%s"Slett ".swp"-filen etterp�.

Differanse med VimForskjellig kombinasjonsflagg i affiksblokk som fortsetter i %s linje %d: %sRetningKatalogerKatalog	*.ingenting
Vil du virkelig skrive til denFerdig!Dobbel ; i variabellisteNedDuplisert '/encoding='-linje ignorert i %s linje %d: %sDuplisert '/regions='-linje ignorert i %s linje %d: %sDuplisert affiks i %s linje %d: %sDuplisert tegn i MAP i %s linje %dDuplisert ord i %s linje %d: %sE100: Ingen annen buffer i differansemodusE101: Mer enn to buffere i differansemodus, vet ikke hvilken som skal brukesE102: Kan ikke finne buffer "%s"E103: Bufferen "%s" er ikke i differansemodusE104: Escape er ikke lovlig i spesialtegnE105: Bruk av :loadkeymap utenfor en kj�rt filE107: Mangler parenteser: %sE108: Variabelen finnes ikke: "%s"E109: Mangler ':' etter '?'E10: \ skulle ha v�rt fulgt av /, ? eller &E110: Mangler ')'E111: Mangler ']'E112: Navn p� valg mangler: %sE113: Ukjent valg: %sE114: Mangler anf�rselstegn ("): %sE115: Mangler apostrof ('): %sE117: Ukjent funksjon: %sE118: For mange parametere til funksjonen: %sE119: Ikke nok parametere til funksjonen: %sE11: Ugyldig i kommandolinjevindu; <ENTER> utf�rer, CTRL-C avslutterE120: Bruk av "<SID>" utenfor skript-sammenheng: %sE121: Udefinert variabel: %sE122: Funksjonen %s eksisterer allerede, legg til ! for � erstatte denE124: Mangler '(': %sE125: Ugyldig parameter: %sE126: Mangler :endfunctionE128: Funksjonsnavn m� ha stor forbokstav eller inneholde et kolon: %sE129: Funksjonsnavn n�dvendigE12: Kommandoen er ikke tillatt fra exrc/vimrc i n�v�rende katalog eller tags�kE130: Ukjent funksjon: %sE131: Kan ikke slette funksjonen %s: Den er i brukE132: Funksjonskalldybden er st�rre enn 'maxfuncdepth'E133: :return er ikke innenfor en funksjonE134: Flytting av linjer inn i seg selvE135: *Filter* Autokommandoer m� ikke forandre n�v�rende bufferE136: viminfo: For mange feil, hopper over resten av filenE137: Viminfo-fil er ikke skrivbar: %sE138: Kan ikke lagre viminfo-fil %s!E139: Filen er lastet i en annen bufferE13: Filen finnes (legg til ! for � overstyre)E140: Bruk ! for � skrive delvis bufferE141: Mangler filnavn for buffer %ldE142: Filen ble ikke lagret: Lagring er deaktivert med 'write'-valgetE143: Autokommandoer slettet uventet den nye bufferen %sE144: Ikke-numerisk parameter til :zE145: Skallkommandoer er ikke tillatt i rvimE146: Regul�re uttrykk kan ikke bli adskilt av bokstaverE147: Kan ikke gj�re :global rekursivE148: Regul�rt uttrykk mangler i global kommandoE149: Dessverre ingen hjelp for %sE14: Ugyldig adresseE150: Er ikke en katalog: %sE152: Kan ikke �pne %s for skrivingE153: Kan ikke �pne %s for lesingE154: Duplikat-tag "%s" i filen %s/%sE155: Ukjent skilt: %sE156: Mangler skiltnavnE157: Ulovlig skilt-ID: %ldE158: Ugyldig buffernavn: %sE159: Mangler skiltnummerE15: Ugyldig uttrykk: %sE160: Ukjent skiltkommando: %sE161: Fant ikke stoppunkt: %sE162: Ikke lagret siden siste forandringer i bufferen "%s"E163: Det er bare en fil � redigereE164: Kan ikke g� forbi f�rste filE165: Kan ikke g� forbi siste filE166: Kan ikke �pne lenket fil for skrivingE167: :scriptencoding brukt utenfor en kj�rt filE168: :finish brukt utenfor en kj�rt filE169: Kommando altfor rekursivE16: Ugyldig omr�deE170: Mangler :endforE170: Mangler :endwhileE171: Mangler :endifE172: Bare ett filnavn tillattE173: %ld andre filer � redigereE173: 1 annen fil � redigereE174: Kommandoen finnes allerede: Legg til ! for � erstatte denE175: Ingen attributt spesifisertE176: Ugyldig antall parametereE177: Antall repeteringer kan ikke bli spesifisert to gangerE178: Ugyldig standardverdi for antall repeteringerE179: Trenger parameter til -completeE17: "%s" er en katalogE180: Ugyldig "complete"-verdi: %sE181: Ugyldig attributt: %sE182: Ugyldig kommandonavnE183: Brukerdefinerte kommandoer m� ha stor forbokstavE184: Brukerdefinert kommando finnes ikke: %sE185: Kan ikke finne fargeoppsettet %sE186: Ingen tidligere katalogE187: UkjentE188: Lesing av vindusposisjon er ikke implementert p� denne plattformenE189: "%s" finnes (legg til ! for � overstyre)E18: Uventede tegn i :letE190: Kan ikke �pne "%s" for skrivingE191: Parameter m� v�re en bokstav eller vanlig/baklengs apostrofE192: Rekursiv bruk av :normal er for dypE193: :endfunction er ikke innenfor en funksjonE194: Ingen alternative filnavn tilgjengelig som erstatning for '#'E195: Kan ikke �pne viminfo-fil for lesingE196: Ingen spesialtegn i denne versjonenE197: Kan ikke sette spr�k til "%s"E198: cmd_pchar utenfor kommandolengdenE199: Aktivt vindu eller buffer slettetE19: Merket har et ugyldig linjenummerE200: "*ReadPre"-autokommandoer gjorde filen uleseligE201: "*ReadPre"-autokommandoer m� ikke forandre n�v�rende bufferE202: Konverteringen gjorde filen uleselig!E203: Autokommandoer slettet eller lastet ut buffer som skulle lagresE204: Autokommando forandret linjeantall p� en uventet m�teE205: Patchmode: Kan ikke lagre originalfilE206: patchmode: Kan ikke oppdatere tom originalfilE207: Kan ikke slette backupfilE208: Feil under skriving til "%s"E209: Feil under lukking av "%s"E20: Merket ble ikke sattE210: Feil under lesing av "%s"E211: Filen "%s" er ikke lenger tilgjengeligE212: Kan ikke �pne fil for skrivingE213: Kan ikke konvertere (legg til ! for � lagre uten konvertering)E214: Kan ikke finne midlertidig fil for skrivingE215: Ulovlig tegn etter *: %sE216: Handlingen finnes ikke: %sE216: Gruppen eller handlingen finnes ikke: %sE217: Kan ikke utf�re autokommandoer for ALLE hendelserE218: N�sting av autokommandoer for dypE219: Mangler {.E21: Kan ikke gj�re forandringer, 'modifiable' er avE220: Mangler }.E222: Legger til allerede lest bufferE223: Rekursiv mappingE224: Global forkortelse finnes allerede for %sE225: Global mapping finnes allerede for %sE226: Forkortelse finnes allerede for %sE227: Mappingen finnes allerede for %sE228: makemap: Ulovlig modusE229: Kan ikke starte grafisk brukergrensesnitt (GUI)E22: Skripts n�stet for dyptE230: Kan ikke lese fra "%s"E231: 'guifontwide' ugyldigE232: Kan ikke lage BalloonEval med b�de melding og tilbakekallE233: Kan ikke �pne displayE234: Ukjent skrifttypesett: %sE235: Ukjent skrifttype: %sE236: Skrifttypen "%s" har ikke fast breddeE237: Valg av skriver feiletE238: Feil under utskrift: %sE239: Ugyldig skilttekst: %sE23: Ingen alternativ filE240: Ingen forbindelse med Vim-tjenerenE241: Klarer ikke sende til %sE243: Parameter ikke st�ttet: "-%s"; Bruk OLE-versjonen.E244: Ulovlig navn p� tegnsett "%s" i skrifttypenavn "%s"E245: Ulovlig tegn '%c' i skrifttypenavn "%s"E246: Autokommandoen "FileChangedShell" slettet bufferE247: Ingen registrert tjener kalt "%s"E248: Klarte ikke sende kommando til destinasjonsprogrammetE24: Forkortelsen finnes ikkeE250: Skrifttyper for de f�lgende tegnsett mangler i fontsett %s:E251: Registry-egenskapen for VIM-oppf�ringen er ikke korrekt. Slettet!E252: Navn p� skrifttypesett: %sE253: Navn p� skrifttypesett: %s
E254: Kan ikke reservere farge %sE255: Kunne ikke lese inn skiltdata!E257: cstag: Tag ikke funnetE258: Klarer ikke sende til klientenE259: Ingen treff funnet for cscope-foresp�rsel %s av %sE25: GUI kan ikke brukes: Ikke sl�tt p� under kompileringE261: cscope-forbindelse %s ikke funnetE262: Feil under lesing av cscope-forbindelse %ldE263: Denne kommandoen er deaktivert, Python-biblioteket kunne ikke lastes.E264: Python: Feil under initialisering av I/U-objekterE266: Denne kommandoen er deaktivert, Ruby-biblioteket kunne ikke lastes.E267: Uventet returnE268: Uvented nextE269: Uventet breakE26: Hebraisk kan ikke brukes: Ikke sl�tt p� under kompilering
E270: Uventet redoE272: Ubehandlet unntakE273: Ukjent longjmp-status %dE274: Sniff: Feil under lesing. FrakobletE275: Ukjent SNiFF+-foresp�rsel: %sE276: Feil ved oppkobling til SNiFF+E277: Klarer ikke lese svar fra tjenerenE278: SNiFF+ ikke tilkobletE279: Ikke en SNiFF+-bufferE27: Persisk (Farsi) kan ikke brukes: Ikke sl�tt p� under kompilering
E280: TCL KRITISK FEIL: reflist skadet!? Vennligst rapporter dette til vim-dev@vim.orgE281: TCL-FEIL: Avslutningskode er ikke int!? Vennligst rapporter dette til vim-dev@vim.orgE282: Kan ikke lese fra "%s"E283: Ingen merker samsvarer med "%s"E284: Kan ikke sette IC-verdier ("Input Context")E285: Klarte ikke opprette inndatakontekstE286: Klarte ikke �pne inndatametodeE287: Advarsel: Klarte ikke sette "destroy callback" til inndatametodeE288: Inndatametode st�tter ikke enhver stilE289: Inndatametode st�tter ikke min "preedit" typeE28: Uthevingsgruppe finnes ikke: %sE290: "over-the-spot"-stil trenger et skrifttypesettE291: Din GTK+ er eldre enn 1.2.3. Statusomr�de deaktivertE292: Inndatametodetjener kj�rer ikkeE293: Blokken var ikke l�stE294: S�kefeil i lesing av swapfilE295: Lesefeil i swapfilE296: S�kefeil i skriving til swapfilE297: Skrivefeil i swapfilE298: Hentet ikke blokk nummer 0?E298: Hentet ikke blokk nummer 1?E298: Hentet ikke blokk nummer 2?E299: Evaluering av Perl er ikke tillatt i sandkassen uten "Safe"-modulenE29: Ingen innlagt tekst endaE300: Swapfilen finnes allerede (symlenke-angrep?)E301: Opps, mistet swapfilen!!!E302: Klarte ikke skifte navn p� swapfilE303: Klarte ikke �pne swapfil for "%s", gjenoppretting umuligE304: ml_upd_block0(): Hentet ikke blokk 0??E305: Ingen swapfil funnet for %sE306: Kan ikke �pne %sE307: %s ser ikke ut som en Vim-swapfilE308: Advarsel: Originalfilen kan ha blitt forandretE309: Klarte ikke lese blokk 1 fra %sE30: Ingen tidligere kommandolinjeE310: ID til blokk 1 er feil (%s ikke en ".swp"-fil?)E311: Gjenoppretting avbruttE312: Feil oppdaget under gjenoppretting; se etter linjer som starter med ???E313: Kan ikke bevare, swapfil manglerE314: Bevaring feiletE315: ml_get: Ugyldig lnum: %ldE316: ml_get: Kan ikke finne linje %ldE317: Pekerblokk-id feilE317: Pekerblokk-id feil 2E317: Pekerblokk-id feil 3E317: Pekerblokk-id feil 4E318: Oppdaterte for mange blokker?E319: Kommandoen er ikke tilgjengelig i denne versjonenE31: Mappingen finnes ikkeE320: Kan ikke finne linje %ldE321: Kunne ikke laste "%s" p� nyttE322: Linjenummer utenfor omr�de: %ld forbi sluttenE323: Linjeantall feil i blokk %ldE324: Kan ikke �pne Postscript-fil for skrivingE325: VIKTIGE326: For mange swapfiler funnetE327: Del av menyelement er ikke undermenyE328: Menyen eksisterer bare i en annen modusE329: Ingen "%s"-menyE32: Mangler filnavnE330: Menysti kan ikke lede til en undermenyE331: Kan ikke legge til menyelementer direkte p� menylinjenE332: Skilletegn kan ikke v�re del av en menystiE333: Menystien m� lede til et menyvalgE334: Fant ikke menyen: %sE335: Menyen er ikke definert for %s-modusE336: Menystien m� lede til en undermenyE337: Fant ikke menyen - sjekk menynavnetE338: Dessverre ingen filbehandler i konsollmodusE339: S�kestrengen er for langE33: Ingen tidligere erstatninger med regul�re uttrykkE340: Linjen blir for langE341: Intern feil: lalloc(%ld, )E342: Ikke mer ledig hukommelse! (Reserverer %lu bytes)E343: Ugyldig sti: '**[nummer]' m� v�re p� slutten av stien eller bli etterfulgt av '%s'.E344: Kan ikke finne katalogen "%s" i "cdpath"E345: Kan ikke finne filen "%s" i stienE346: Ingen flere katalog-"%s" funnet i "cdpath"E347: Ingen flere fil-"%s" funnet i stienE348: Ingen streng under mark�rE349: Ingen identifikator under mark�rE34: Ingen tidligere kommandoE350: Kan ikke lage fold med n�v�rende 'foldmethod'E351: Kan ikke slette fold med n�v�rende 'foldmethod'E352: Kan ikke slette folder med n�v�rende 'foldmethod'E353: Ingenting i register %sE354: Ugyldig registernavn: '%s'E355: Ukjent valg: %sE356: "get_varp"-FEILE357: 'langmap': Samsvarende tegn mangler for %sE358: 'langmap': Ekstra tegn etter semikolon: %sE359: Forandring av skjermmodus er ikke st�ttetE35: Ingen tidligere regul�re uttrykkE360: Kan ikke kj�re skall med "-f"-valgE363: S�kestrengen bruker mer hukommelse enn 'maxmempattern'E364: Bibliotek-kall feilet for "%s()"E365: Feil under utskrift av Postscript-filE367: Gruppen finnes ikke: "%s"E369: Ugyldig element i %s%%[]E36: Ikke nok plassE370: Klarte ikke laste bibliotek %sE371: Kommando ikke funnetE372: For mange %%%c i formatstrengE373: Uventet %%%c i formatstrengE374: Mangler ] i formatstrengE375: %%%c ikke st�ttet i formatstrengE376: Ugyldig %%%c i formatstreng-prefiksE377: Ugyldig %%%c i formatstrengE378: 'errorformat' inneholder ikke s�kestrengE379: Manglende eller tomt katalognavnE37: Ikke lagret siden forrige forandring (legg til ! for � overstyre)E380: P� bunnen av quickfix-stackE381: P� toppen av quickfix-stackE382: Kan ikke lagre, 'buftype'-valget er sattE383: Ugyldig s�kestreng: %sE384: S�ket kom til TOPPEN uten treff p�: %sE385: S�ket kom til BUNNEN uten treff p�: %sE386: Forventet '?' eller '/' etter ';'E387: Treffet er p� n�v�rende linjeE388: Fant ikke definisjonenE389: Fant ikke s�ketekstenE38: NullparameterE390: Ulovlig parameter: %sE391: Syntaksklyngen finnes ikke: %sE392: Syntaksklyngen finnes ikke: %sE393: "group[t]here" aksepteres ikke herE394: Fant ikke regionelement for %sE395: "contains"-parameter aksepteres ikke herE396: "containedin"-parameter aksepteres ikke herE397: Trenger filnavnE398: Mangler '=': %sE399: Ikke nok parametere: syntax region %sE39: Nummer forventetE400: Ingen klynge er spesifisertE401: Skilletegn for s�ketekst ble ikke funnet: %sE402: S�ppel etter s�ketekst: %sE403: syntax sync: S�kestreng for linjefortsettelser er spesifisert to gangerE404: Ulovlige parametere: %sE405: Mangler "er lik"-tegn: %sE406: Tomt parameter: %sE407: %s er ikke tillatt herE408: %s m� v�re f�rst i "contains"-listeE409: Ukjent gruppenavn: %sE40: Kan ikke �pne feilfilen %sE410: Ugyldig ":syntax"-delkommando: %sE411: Fant ikke uthevingsgruppe: %sE412: Ikke nok parametere: ":highlight link %s"E413: For mange parametere: ":highlight link %s"E414: Syntaxgruppen har oppsett, uthevingslenke ignoreresE415: Uventet "er lik"-tegn: %sE416: Mangler "er lik"-tegn: %sE417: Mangler parameter: %sE418: Ulovlig verdi: %sE419: Ukjent forgrunnsfargeE41: Ikke mer ledig hukommelse!E420: Ukjent bakgrunnsfargeE421: Kjenner ikke til fargenavnet eller -nummeret: %sE422: Terminalkoden er for lang: %sE423: Ulovlig parameter: %sE424: For mange forskjellige uthevingsattributter i brukE425: Kan ikke g� f�r f�rste samsvarende tagE426: Fant ikke tag: %sE427: Det finnes bare en samsvarende tagE428: Kan ikke g� forbi siste samsvarende tagE429: Filen "%s" finnes ikkeE42: Ingen feilE430: Sti til tagfil kuttet for %s
E431: Formatfeil i tagfil "%s"E432: Tagfil ikke sortert: %sE433: Ingen tagfilE434: Kan ikke finne tags�kestrengE435: Kunne ikke finne tag, bare gjetter!E436: Ingen "%s"-oppf�ring i termcapE437: Terminalfunksjonen "cm" n�dvendigE438: u_undo: Gale linjenummerE439: Angrelisten er skadetE43: �delagt s�kestrengE440: Angrelisten manglerE441: Vindu for forh�ndsvisning finnes ikkeE442: Kan ikke splitte "topleft" og "botright" p� en gangE443: Kan ikke rotere n�r et annet vindu er splittetE444: Kan ikke lukke det siste vinduetE445: Annet vindu inneholder forandringerE446: Ingen filnavn under mark�renE447: Kan ikke finne filen "%s" i stienE448: Klarte ikke laste biblioteksfunksjon %sE449: Ugyldig uttrykk mottattE44: Skadet program med regul�rt uttrykkE455: Feil under skriving til Postscript-filE456: Fant ikke Postscript-ressursfilen "%s.ps"E456: Fant ikke Postscript-ressursfilen "cidfont.ps"E456: Fant ikke Postscript-ressursfilen "prolog.ps"E456: Kan ikke �pne filen "%s"E457: Kan ikke lese Postscript-ressursfil "%s"E459: Kan ikke g� tilbake til tidligere katalogE45: 'readonly'-valget er satt (legg til ! for � overstyre)E460: Ressursforgreningen ville g�tt tapt (legg til ! for � overstyre)E461: Ugyldig variabelnavn: %sE462: Kunne ikke forberede for relasting "%s"E463: Regionen er beskyttet og kan ikke modifiseresE464: Flertydig bruk av brukerdefinert kommandoE465: :winsize trenger to numeriske parametereE466: :winpos trenger to numeriske parametereE467: Tilpassede fullf�ringer trenger et funksjonsparameterE468: Fullf�ringsparameter er bare tillatt for tilpasset fullf�ringE469: Ugyldig "cscopequickfix"-flagg %c for %cE46: Kan ikke forandre skrivebeskyttet variabel "%s"E470: Kommandoen avbruttE471: Parameter n�dvendigE472: Kommandoen feiletE473: Intern feilE474: Ugyldig parameterE475: Ugyldig paramter: %sE476: Ugyldig kommandoE477: Ingen ! tillattE478: Ingen panikk!E479: Ingen treffE47: Feil under lesing av feilfilenE480: Ingen treff: %sE481: Omr�de er ikke tillattE482: Kan ikke opprette filen %sE483: Kan ikke hente navn p� midlertidig filE484: Kan ikke �pne filen %sE485: Kan ikke lese filen %sE486: Fant ikke s�keteksten: %sE487: Parameteret m� v�re positivtE488: Etterf�lgende tegnE48: Ikke tillatt i sandkassenE490: Ingen fold funnetE492: Er ikke en editorkommandoE493: Omr�de bakover er angittE494: Bruk w eller w>>E495: Ingen autokommandofilnavn tilgjengelig som erstatning for "<afile>"E496: Ingen buffernummer tilgjengelig som erstatning for "<abuf>" i autokommandoE497: Ingen autokommandonavn tilgjengelig som erstatning for "<amatch>"E498: Ingen ':source'-filnavn tilgjengelig som erstatning for "<sfile>"E499: Tomt filnavn for '%' eller '#', virker bare med ":p:h"E49: Ugyldig "scroll"-verdiE500: Resulterer i en tom strengE501: Ved slutten av filenE505: E506: Kan ikke skrive til backupfil (legg til ! for � overstyre)E507: Feil under lukking av backupfil (legg til ! for � overstyre)E508: Kan ikke lese fil for backup (legg til ! for � overstyre)E509: Kan ikke lese backupfil (legg til ! for � overstyre)E50: For mange \z(E510: Kan ikke lage backupfil (legg til ! for � overstyre)E512: Lukking feiletE513: Feil under skriving, konvertering feilet (gj�r 'fenc' tom for � overstyre)E514: Feil under lagring (full disk?)E515: Ingen buffere ble lastet utE516: Ingen buffere ble slettetE517: Ingen buffere ble visket utE518: Ukjent valgE519: Valget er ikke st�ttetE51: For mange %s(E520: Ikke tillatt i moduslinjeE521: Nummer n�dvendig etter =E522: Ikke funnet i termcapE523: Ikke tillatt herE524: Mangler kolonE525: Tom strengE526: Mangler nummer etter <%s>E527: Mangler kommaE528: M� spesifisere en "'"-verdiE529: Kan ikke sette 'term' til tom strengE52: Usamsvarende \z(E530: Kan ikke forandre "term" i grafisk brukergrensesnittE531: Bruk ":gui" for � starte med grafisk brukergrensesnittE533: Kan ikke velge bred skrifttypeE534: Ugyldig bred skrifttypeE535: Ulovlig tegn etter <%c>E536: Komma n�dvendigE537: 'commentstring' m� v�re tom eller inneholde %sE538: Ingen st�tte for musE539: Ulovlig tegn <%s>E53: Usamsvarende %s%%(E540: Uttrykkssekvens som ikke er lukketE541: For mange elementerE542: Ubalanserte grupperE543: Er ikke en gyldig codepageE544: Fant ikke keymap-filE545: Mangler kolonE546: Ulovlig modusE547: Ulovlig utseende p� musepekerenE548: Siffer forventetE549: Ulovlig prosentE54: Usamsvarende %s(E550: Mangler kolonE551: Ulovlig komponentE552: Siffer forventetE553: Ingen flere elementerE554: Syntaksfeil i %s{...}E555: P� bunnen av tag-stackE556: P� toppen av tag-stackE557: Kan ikke �pne termcap-filE558: Fant ikke terminaloppf�ring i terminfoE559: Fant ikke terminaloppf�ring i termcapE55: Usamsvarende %s)E560: Bruk: cs[cope] %sE561: Ukjent cscope-s�ketypeE562: Bruk: cstag <identifikator>E563: "stat"-feilE563: stat(%s) feil: %dE564: %s er ikke en katalog eller gyldig cscope-databaseE566: Kunne ikke lage cscope-r�r ("pipe")E567: Ingen cscope-forbindelseE568: Duplisert cscope-database ikke lagt tilE569: Maksimum antall cscope-forbindelser n�ddE570: Kritisk feil i cs_manage_matchesE571: Denne kommandoen er deaktivert, Tcl-biblioteket kunne ikke lastes.E572: Avslutningskode %dE573: Ugyldig tjener-id brukt: %sE574: Ukjent registertype %dE579: N�sting av :if for dypE580: :endif uten :ifE581: :else uten :ifE582: :elseif uten :ifE583: Flere forekomster av :elseE584: :elseif etter :elseE585: N�sting av :while/:for er for dypE586: :continue uten :while eller :forE587: :break uten :while eller :forE588: :endfor uten :forE588: :endwhile uten :whileE589: 'backupext' og 'patchmode' er likeE590: Det finnes allerede et forh�ndsvisningsvinduE591: 'winheight' kan ikke v�re mindre enn 'winminheight'E592: 'winwidth' kan ikke v�re mindre enn 'winminwidth'E593: Trenger minst %d linjerE594: Trenger minst %d kolonnerE595: Inneholder uskrivelige eller brede tegnE596: Ugyldig(e) skrifttype(r)E597: Kan ikke velge skrifttypesettE598: Ugyldig skrifttypesettE599: Verdien for 'imactivatekey' er ugyldigE59: Ugyldig tegn etter %s@E600: Mangler :endtryE601: N�sting av :try for dypE602: :endtry uten :tryE603: :catch uten :tryE604: :catch etter :finallyE605: Unntak ikke fanget opp: %sE606: :finally uten :tryE607: Flere forekomster av :finallyE608: Kan ikke :throw unntak med 'Vim'-forstavelseE609: Cscope-feil: %sE60: For mange komplekse %s{...}sE612: For mange skilt definertE613: Ukjent skrifttype for skriver: %sE614: vim_SelFile: Kan ikke returnere til n�v�rende katalogE615: vim_SelFile: Kan ikke finne n�v�rende katalogE616: vim_SelFile: Kan ikke bruke skrifttypen %sE617: Kan ikke forandres i GTK+ 2 GUIE618: Filen "%s" er ikke en Postscript-ressursfilE619: Det er ikke st�tte for Postscript-ressursfilen "%s"E61: N�stede %s*E620: Klarte ikke � konvertere til utskriftskoding "%s"E621: Ressursfilen "%s" er feil versjonE622: Klarte ikke lage tvillingprosess for cscopeE623: Klarte ikke starte cscope-prosessE624: Kan ikke �pne filen "%s"E625: Kan ikke �pne cscope-database: %sE626: Kan ikke hente informasjon om cscope-databaseE62: N�stede %s%cE63: Ugyldig bruk av \_E64: %s%c etterf�lger ingentingE655: For mange symbolske linker (runddans?)E658: Mistet NetBeans-forbindelse for buffer %ldE659: Kan ikke starte Python rekursivtE65: Ulovlig tilbakereferanseE661: Dessverre ingen '%s' hjelp for %sE662: Ved starten av forandringslisteE663: Ved slutten av forandringslisteE664: Forandringslisten er tomE665: Kan ikke starte grafisk brukergrensesnitt, fant ingen gyldig fontE666: Kompilatoren er ikke st�ttet: %sE667: Fsync feiletE668: Feil tilgangsmodus for infofilen til NetBeans-forbindelse: "%s"E669: Ikke-skrivbart tegn i gruppenavnE66: \z( ikke tillatt herE670: Tegnsettblanding i hjelpefilen innenfor samme spr�k: %sE671: Fant ikke vindutittel "%s"E672: Klarer ikke �pne vindu inne i MDI-applikasjonE673: Inkompatibel multibytekoding og tegnsettE674: printmbcharset kan ikke v�re tom med multibytekodingE675: Ingen standardfont spesifisert for multibyteutskriftE676: Ingen samsvarende autokommandoer for 'acwrite'-bufferE677: Feil under skriving til midlertidig filE678: Ugyldig tegn etter %s%%[dxouU]E679: Rekursiv l�kke laster syncolor.vimE67: \z1 med venner er ikke tillatt herE680: <buffer=%d>: Ugyldig buffernummerE681: Bufferen er ikke lastetE682: Ugyldig s�kestreng eller skilletegnE683: Filnavn mangler eller ugyldig s�kestrengE684: Listeindeks utenfor omr�de: %ldE685: Intern feil: %sE686: Parameter til %s m� v�re en listeE687: F�rre m�l enn listeelementerE688: Flere m�l enn listeelementerE689: Kan bare indeksere en liste eller ordlisteE68: Ugyldig tegn etter \zE690: Mangler "in" etter :forE691: Kan bare sammenligne liste med listeE692: Ugyldig operasjon for listeE693: Kan bare sammenligne funksjonsreferanse med funksjonsreferanseE694: Ugyldig operasjon for funksjonsreferanserE695: Kan ikke indeksere en funksjonsreferanseE696: Mangler komma i liste: %sE697: Mangler slutt p� liste ']': %sE698: Variabel n�stet for dypt til � lage en kopiE699: For mange parametereE69: Mangler ] etter %s%%[E700: Ukjent funksjon: %sE701: Ugyldig type for len()E702: Funksjon for sorteringssammenligning feiletE703: Bruker en funksjonsreferanse som et nummerE704: Variabelnavn for funksjonsreferanse m� ha stor forbokstav: %sE705: Variabelnavn er i konflikt med en eksisterende funksjon: %sE706: Variabeltype samsvarer ikke med: %sE708: [:] m� komme sistE709: [:] krever en listeverdiE70: Tom %s%%[]E710: Listeverdien har flere elementer enn m�lE711: Listeverdien har ikke nok elementerE712: Parameter til %s m� v�re en liste eller ordlisteE713: Kan ikke bruke tom n�kkel med ordlisteE714: Liste p�krevetE715: Ordliste p�krevetE716: N�kkelen finnes ikke i ordliste: %sE717: Ordlisteoppf�ring finnes alleredeE718: Funksjonsreferanse n�dvendigE719: Kan ikke bruke [:] sammen med en ordlisteE71: Ugyldig tegn etter %s%%E720: Mangler kolon i ordliste: %sE721: Duplisert n�kkel i ordliste: "%s"E722: Mangler komma i ordliste: %sE723: Mangler slutt p� ordliste '}': %sE724: Variabel n�stet for dypt for visningE725: Kaller ordlistefunksjon uten ordliste: %sE726: �kning er nullE727: Starten er bak sluttenE728: Bruker en ordliste som et nummerE729: Bruker en funksjonsreferanse som en strengE72: Feil under lukking av swapfilE730: Bruker en liste som en strengE731: Bruker en ordliste som en strengE732: Bruker :endfor sammen med :whileE733: Bruker :endwhile sammen med :forE734: Feil variabeltype for %s=E735: Kan bare sammenligne ordliste med ordlisteE736: Ugyldig operasjon for ordlisteE737: N�kkelen finnes allerede: %sE738: Kan ikke liste variabler for %sE739: Kan ikke lage katalog: %sE73: Tag-stack tomE741: Verdi er l�st: %sE742: Kan ikke forandre verdi for %sE743: Variabel n�stet for dypt for (un)lockE744: NetBeans tillater ikke forandringer i skrivebeskyttede filerE745: Bruker en liste som et nummerE746: Funksjonsnavn samsvarer ikke med skriptfilnavn: %sE747: Kan ikke skifte katalog, bufferen er forandret (legg til ! for � overstyre)E748: Register ikke tidligere bruktE749: Tom bufferE74: Kommandoen er for kompleksE750: Bruk f�rst :profile start <filnavn>E751: Utdatafilnavn m� ikke ha regionnavnE752: Ingen tidligere staveerstatningerE753: Ikke funnet: %sE754: Kun opp til 8 regioner er st�ttetE755: Ugyldig region i %sE756: Stavekontroll er ikke aktivisertE757: Dette ser ikke ut som en stavefilE758: Valg av skriver feiletE759: Formateringsfeil i stavefilE75: Navnet er for langtE760: Ingen ord-antall i %sE761: Formatfeil i affiksfil FOL, LOW eller UPPE762: Tegn i FOL, LOW eller UPP er utenfor omr�deE763: Tegn i ord varierer mellom stavefilerE764: Valget '%s' er ikke sattE765: 'spellfile' har ikke %ld posterE766: Ikke nok parametre for printf()E767: For mange parametere for printf()E768: Swapfilen finnes: %s (:silent! overstyrer)E769: Mangler ] etter %s[E76: For mange [E770: Ust�ttet seksjon i stavefilE771: Gammel stavefil, trenger oppdateringE772: Stavefilen er for en nyere versjon av VimE773: Symlenkesl�yfe for "%s"E774: 'operatorfunc' er tomtE775: Eval-funksjonaliteten er ikke tilgjengeligE776: Ingen plasslisteE777: Streng eller liste forventetE778: Dette ser ikke ut som en .sug-fil: %sE779: Gammel .sug-fil, trenger oppdatering: %sE77: For mange filnavnE780: .sug-fila er for en nyere versjon av Vim: %sE781: .sug-fil samsvarer ikke med .spl-fil: %sE782: Feil under lesing av .sug-fil: %sE783: Duplisert tegn i MAP-oppf�ringE785: complete() kan bare brukes i innsettingsmodusE786: Omr�de ikke tillattE787: Uventet forandring i bufferE788: Ikke tillatt � redigere en annen buffer n�E789: Mangler ']': %sE78: Ukjent merkeE790: undojoin er ikke tillatt etter undoE791: Tom tastaturoppsett-oppf�ringE792: Tomt menynavnE793: Ingen annen buffer i differansemodus er redigerbarE794: Kan ikke sette variabel i sandkassen: "%s"E795: Kan ikke slette variabel %sE79: Klarte ikke utvide jokertegnE800: Arabisk kan ikke brukes: Ikke sl�tt p� under kompilering
E80: Feil under skrivingE81: Bruker <SID> utenom skript-kontekstE82: Kan ikke reservere plass til noen buffere, avslutter�...E83: Kan ikke reservere plass til buffer, bruker en annen�...E84: Fant ingen modifisert bufferE85: Det finnes ingen listede buffereE86: Bufferen %ld finnes ikkeE87: Kan ikke g� forbi siste bufferE88: Kan ikke g� forbi f�rste bufferE89: Ikke lagret siden forrige forandring av bufferen %ld (legg til ! for � overstyre)E90: Kan ikke laste ut siste bufferE91: 'shell'-valget er tomtE92: Fant ikke bufferen %ldE93: Mer enn ett treff for %sE94: Ingen samsvarende buffer for %sE95: En buffer med dette navnet finnes alleredeE96: Kan ikke sammenligne flere enn %ld buffereE97: Kan ikke lage differansefilerE98: Kan ikke lese differanse-utdataE99: N�v�rende buffer er ikke i differansemodusFEIL: Rediger filRediger fil i nytt vinduRediger med &VimRediger med &flere Vim-erRediger med eksisterende Vim - Rediger med enkel &VimRedigerer de(n) valgte filen(e) med VimKoding:Slutt p� funksjonSlutt p� kj�rt filSkriv krypteringsn�kkel: Skriv nummeret p� swapfil som skal brukes (0 for � avslutte): Gjenta krypteringsn�kkelen: G�r inn i debuggingsmodus. Skriv "cont" for � fortsette.G�r inn i Ex-modus. Skriv "visual" for � g� til normalmodus.FeilFeil og avbruddKlarte ikke lage prosess: Sjekk at gvim er i stien!Feil oppdaget under prosessering av %s:Ansl�tt hukommelsesbruk under kj�ring: %d bytesUnntakUnntak fanget opp: %sUnntak forkastet: %sUnntak fullf�rt: %sUtf�rer %sForventet MAP-antall i %s linje %dForventet REP(SAL)-antall i %s linje %dForventet Y eller N i %s linje %d: %sUttrykkEksterne deltreff:
FLAG etter bruk av flagg i %s linje %d: %sFilen "%s" finnes ikkeFil bevartFilerFilterS�k og erstatt (bruk '\\' for � finne en '\')Finn &nesteFinn nesteFinn streng (bruk '\\' for � finne en '\')Finn symbolFinn hva:F�rste dupliserte ord i %s linje %d: %sFlagg er ikke et tall i %s linje %d: %sSkrifttypen '%s' har ikke konstant breddeVelge skrifttypeFont%ld-bredde er ikke to ganger bredden av font0
Font0-bredde: %ld
Font0: %s
Font1-bredde: %ld

Font1: %s
Skrifttype:S�ppel etter valgparameterGenerer docu forV�r hilset, Vim-bruker!Hjelp fattige barn i Uganda!Kom til slutten av avsnittetI/U-FEILIgnorerte %d ord med ikke-ASCII-tegn i %sIgnorerte %d ord med ikke-ASCII-tegnUlovlig filnavnUlovlig flagg i %s linje %d: %sUlovlig registernavnUlovlig starttegnInndatalinjeInndata-_metoderAvbruddAvbryt: AvbruttUgyldig parameter forUgyldig skrifttypespesifiseringUgyldig regionnummer i %s linje %d: %sUgyldig verdi for FLAG i %s linje %d: %sKrypteringsn�klene stemmer ikke overens!Drep en forbindelseLinking: Forskjell p� store/sm� bokstaverFinn kun hele ordMeldingVedlikeholder for norsk oversettelse: �yvind A. Holm <sunny@sunbase.org>Mangler '>'Mangler FOL/LOW/UPP-linje i %sMangler SOFO%s-linje i %sModifisert av Navn:Trenger %s versjon %ld
Trenger Amigados versjon 2.04 eller nyere
NetBeans forbyr lagring av buffere som ikke er forandretIngen syntakselementer er definert for denne bufferenIngen forkortelse funnetIngen stoppunkt definertIngen displayIngen display: Sending av uttrykk feilet.
Ingen inkluderte filerIngen mapping funnetIngen merker sattIngen treff ved mark�ren, finner nesteIngen samsvarende autokommandoerIngen swapfilIngen tekst for utskriftIngen angremuligheter; fortsett likevelIngen brukerdefinerte kommandoer funnetIkke bruktIngenting � angreOK"�pne fil"-dialogvindu�pning av X-display feiletTidsavbrudd for �pning av X-display�pning av X-display tok %ld millisekunderOriginalfil "%s"Overskrive eksisterende fil "%s"?Side %dDelvis lagring ikke tillatt for NetBeans-bufferePatch filLengden p� stien er for lang!Sti:S�kestreng funnet i alle linjene: %sFant ikke s�ketekstenTrykk ENTER eller skriv kommando for � fortsetteSkriverjobb sendt.Skrevet ut: %sSkriver ut '%s'Utskrift avbruttSkriver ut side %d (%d%%)Foresp�rsel etter s�kestrengSp�rsm�lLeser affiksfil %s ...Leser ordlistefil %s ...Leser fra stdin�...Leser stavefil "%s"Leser viminfo-fil "%s"%s%s%sLeser ordfil %s ...Gjenoppretting komplett. Du b�r sjekke at alt er i orden.Reinitialiser alle forbindelserErstattErstatt &alleErstatt alleErstatt med:HentHent fra alle prosjekterHent fra filHent fra prosjektKj�rer i Vi-kompatibel modusKj�rer uten modus, tastetrykk blir lagt inn i tekstenSNiFF+ er for �yeblikket Lagre som"Lagre fil"-dialogvinduLagre omdirigeringLagre �ktLagre oppsettLagre utseendeLagre forandringer til "%s"?Leter gjennom ordliste: %sLeter gjennom inkludert fil: %sLeter gjennom tagger.Leter: %sRullefeltelement: Klarte ikke hente dimensjoner p� "thumb pixmap".S�kestrengS�ker etter "%s"S�ker etter "%s" i "%s"Leter gjennom inkludert fil %sLeter i tagfil %sSe ":help E312" for mer informasjon.Se ":help W11" for mer informasjon.Se ":help W12" for mer informasjon.Se ":help W16" for mer informasjon."Velge katalog"-dialogvinduValgte %s%ld av %ld linjer; %ld av %ld ord; %ld av %ld bytesValgte %s%ld av %ld linjer; %ld av %ld ord; %ld av %ld tegn; %ld av %ld bytesValgSender til skriver�...Vis basisklasse avVis klasse i hierarkiVis klasse i begrenset hierarkiVis forbindelserVis docu avVis overstyrt medlemsfunksjonVis st�rrelse i punkterVis kilde tilVis denne meldingenSkilt for %s:St�rrelse:Sniff: Feil under skriving. FrakobletFant ikke hjelpefilen "%s"Dessverre, ingen forslagDessverre bare %ld forslagDenne kommandoen er deaktivert, Perl-biblioteket kunne ikke lastes.Kj�r Vim-skriptSt�tt utviklingen av Vim!Stackst�rrelse �kerStil:Swapfilen "Swapfilen "%s" finnes, overskriv likevel?Swapfilen eksisterer allerede!Swapfiler funnet:Riv av denne menyenTest av X-display feiletTakk for at du fl�y VimFilen ble laget p� Det eneste treffetDenne Vim-versjonen er kompilert uten differansefunksjonen.Denne cscope-kommandoen st�tter ikke splitting av vinduet.
Bytt mellom implementasjon/definisjonFor mange "+command"-, "-c command"- eller "--cmd kommando"-parametereFor mange sammensatte flaggFor mange redigeringsparametereFor mange utsatte forstavelserFor mange utsatte forstavelser og/eller sammensatte flaggFor mange regioner i %s linje %d: %sToppTotalt antall ord: %dEtterf�lgende tekst i %s linje %d: %sSkriv  :quit<Enter>  for � avslutte VimSkriv nummer eller velg med musen (<Enter> avbryter)Klarte ikke lese blokk 0 fra Klarer ikke registrere kommandotjenernavnAngrenummer %ld ikke funnetUkjentUkjent parameter til valgUkjent flagg i %s linje %d: %sUkjent eller duplisert element i %s linje %d: %sUten navnOppBruk Vim versjon 3.0.
Brukte CUT_BUFFER0 istedenfor tomt valgBruker swapfilen "%s"VIM - VIKTIGVIM - S�k og erstatt�...VIM - S�k�...VIM - Vi IMproved - Forbedret ViVIM-feilVIM: Kan ikke �pne vindu!
VIMRUN.EXE ikke funnet i $PATH.
Eksterne kommandoer kommer ikke til � vente etter fullf�ring.
Se ":help win32-vimrun" for mer informasjon.Vim - SkrifttypevelgerVim E458: Kan ikke reservere fargekart, noen farger kan v�re feilVim-advarselDialogvindu for VimVim dialogvindu�...Vim-feilVim-feil: ~aVim avslutter med %d
Vim er �pen kildekode og kan fritt distribueresVim: Mottok "%s"-hendelse
Vim: Mottok d�delig signal
Vim: Mottok d�delig signal %s
Vim: Dobbelt signal, avslutter
Vim: Feil under lesing av inndata, avslutter�...
Vim: Feil: Feil under start av gvim fra NetBeans
Vim: Ferdig.
Vim: Uventet �deleggelse av hovedvinduet
Vim: Leser fra stdin�...
Vim: Mottok "d�"-foresp�rsel fra �ktbehandleren
Vim: Advarsel: Inndata kommer ikke fra en terminal
Vim: Advarsel: Utdata g�r ikke til en terminal
Vim: Bevarer filer�...
W10: Advarsel: Forandrer en skrivebeskyttet filW11: Advarsel: Filen "%s" er forandret siden redigeringen startetW12: Advarsel: Filen "%s" er forandret og bufferen var ogs� forandret i VimW13: Advarsel: Filen "%s" er blitt opprettet etter at redigeringen startetW14: Advarsel: Listen med filnavn er overfyltW15: Advarsel: Feil linjeseparator, det er mulig ^M manglerW16: Advarsel: Rettighetene til filen "%s" er forandret siden redigeringen startetW17: Arabisk trenger UTF-8, utf�r ':set encoding=utf-8'W18: Ugyldig tegn i gruppenavnADVARSEL: Filen er blitt forandret siden den ble lest!!!ADVARSEL: Windows 95/98/ME oppdagetAdvarselAdvarsel: Kan ikke finne ordliste "%s.%s.spl" eller "%s.ascii.spl"Advarsel: Gikk uventet inn i en annen buffer (sjekk autokommandoer)Advarsel: Region %s ikke st�ttetAdvarsel: Terminalen kan ikke utheveUnder �pning av filen "Vindusposisjon: X %d, Y %dOrd lagt til %sOrd fra annen linjeOrd fjernet fra %sSkrive delvis fil?Lagrer stavefil %s ...Skriver forslagsfil %s ...Lagrer viminfo-fil "%s"Feil CHECKCOMPOUNDPATTERN-verdi i %s linje %d: %sFeil COMPOUNDMIN-verdi i %s linje %d: %sFeil COMPOUNDSYLMAX-verdi i %s linje %d: %sFeil COMPOUNDWORDMAX-verdi i %s linje %d: %sOverv�kning av XSMP ICE-forbindelse feiletXSMP SmcOpenConnection feilet: %sXSMP h�ndterer "redd-deg-selv"-foresp�rselXSMP mistet ICE-forbindelsenXSMP �pner forbindelseXref har enXref referert avXref refererer tilXref brukt avJAAntall repeteringer er null[KONVERTERINGSFEIL i linje %ld][CR mangler][Slettet][Enhet][Filen er for stor][Hjelp][ULOVLIG BYTE i linje %ld][Ufullstendig sistelinje][Plassliste][NL funnet][IKKE konvertert][Ny KATALOG][Ny fil][Ny fil][Ny][Uten navn][Ikke lagret siden forrige forandring]
[Uredigert][Tilgang nektet][Forh�ndsvisning][LESEFEIL][SB][Lesefeil][kall] totale "re/malloc()"-er %lu, totale "free()"-er %lu

[konvertert][kryptert][dos-format][dos][fifo/socket][fifo][file ..]       rediger spesifisert(e) fil(er)[lange linjer splittes][mac-format][mac][ingenlinjeslutt][skrivebeskyttet][socket][unix-format][unix]etterog sammenligne den mot den originale filen for � finne forandringer)
fors�k p� � referere til slettet bufferfors�k p� � referere til slettet vindufjerner autokommando automatisk: %s <buffer=%d>autokommando %sf�rblokk med %ld linjer kopiert til utklippstavlenblokk med 1 linje kopiert til utklippstavlenbuffer er ugyldigav av Bram Moolenaar med flerekalte inputrestore() oftere enn inputsave()kaller %sKan ikke slette "OutputObject"-attributterKan ikke lese utdata fra 'charconvert'kan ikke forandre konsollmodus ?!
kan ikke opprette buffer/vindukommando: Objektet sletteskan ikke slette linjekan ikke hente linjekan ikke sette inn linjekan ikke sette inn/legge til linjekan ikke �pne kan ikke registrere callback-kommando: Buffer/vindu er allerede slettetkan ikke registrere callback-kommando: Buffer/vindureferanse ikke funnetkan ikke erstatte linjekan ikke lagre angre-informasjonkan ikke sette linje(r)kan ikke kopiere til utklippstavle; slett likevelforandringforandringerlukkkommando: %soppkobletfortsetter i %skunne ikke kj�re "%s"klarte ikke � �pne bufferUtf�ring av cs_create_connection feiletcs_create_connection: fdopen for fr_fp feiletcs_create_connection: fdopen for to_fp feiletcscope-kommandoer:
cscope-forbindelsen %s stengtmark�rposisjon utenfor bufferfaller tilbake p� 'slettet blokk 1?dlerror = "%s"ikke avslutt editoren f�r filen er skikkelig lagret!milj�variabelfeilbehandlerfeilliste %d av %d; %d feiluttrykk deaktivert p� kompileringsstadietlinjer fjernetfil
filnavn / kontekst / linje
ferdig med kj�ring av %sfrigj�r %ld linjerFeil i gvimext.dllhjelpskjult valgi sti ---
ugyldig attributtugyldig buffernummerugyldig uttrykkugyldig merkenavner en enhet (frakoblet med 'opendevice'-valg)er en kataloger ikke en filer ikke en fil eller skrivbar enheter skrivebeskyttet (legg til ! for � overstyre)tastaturavbruddlinje %4ld:linje %6d, ord %6d - %slinje %ldlinje %ld av %ld --%d%%-- kol linje %ld: %slinje %ld: Kunne ikke kj�re "%s"linje %ld: kj�rer "%s"linje fjernetlinjenummer utenfor omr�delinjenummer utenfor omr�delogg avmerke ikke satttreff %dtreff %d av %dmaksimal mch_get_shellsize: Ikke et konsoll??
meny:  Rediger->Globale innstillinger->Innsettingsmodus av/p�meny:  Rediger->Globale innstillinger->Vi-kompatibilitet av/p�meny:  Hjelp->Foreldrel�se        for informasjon  meny:  Hjelp->St�tte/Registrering  for informasjon minimal linje lagt tillinjer lagt tilnytt skall startet
neiingen cscope-forbindelser
ingen spesifikke treffbufferen finnes ikkevinduet finnes ikkeingen synkroniseringikke ikke tillatt i Vim-sandkassenikke funnet ikke funnet i 'runtimepath': "%s"ikke implementert endanummer forandringer tidspunktpe_line_count er nullpre-vimrc kommandolinjeles fra Netbeans-socketskrivebeskyttet attributtspiller innErstatt med %s (y/n/a/q/l/^E/^Y)?rad %d kolonne %dS�ket traff BUNNEN, fortsetter fra TOPPENS�ket traff TOPPEN, fortsetter fra BUNNENskall skallet returnerte %dkj�r ned"softspace" m� v�re et heltallkj�rer "%s"stack_idx skulle v�re 0streng kan ikke inneholde linjeskiftsynkroniserer C-lignende kommentarersynkronisering starter tag %d av %d%snavn p� tagtil %s p� %sskriv  :help cp-default<Enter>    for informasjon  skriv  :help iccf<Enter>          for informasjon  skriv  :help register<Enter>      for informasjon  skriv  :help sponsor<Enter>       for informasjon  skriv  :help version8<Enter>      for versjonsinfo skriv  :help windows95<Enter>     for informasjon  skriv  :help<Enter>  eller  <F1>  for on-line hjelpskriv  :q<Enter>                  for � avslutte   skriv  :set nocp<Enter>           for standard Vim ukjent flagg: ukjent valgukjent vimOptionversjon vim-feilder bokstavst�rrelse ignoreres, legg til / i begynnelsen for � gj�re flagget om til stor bokstavindeks for vindu er utenfor omr�devindu er ugyldigmed (klassisk) GUI.med Carbon GUI.med Cocoa GUI.med GTK GUI.med GTK-GNOME GUI.med GTK2 GUI.med GTK2-GNOME GUI.med GUI.med Photon GUI.med X11-Athena GUI.med X11-Motif GUI.med X11-neXtaw GUI.uten GUI.writelines() krever en liste av strengerskriving til enhet er sl�tt av med 'opendevice'-valgPK�j�Z-`����� vim80/lang/it/LC_MESSAGES/vim.monu�[�������<
|y����

��!�'7�/_�������LѢ:�Y�f�+n���"��ؤ��	�5�O�l��������ʥ;��զ�
�'�6�G�Z�i������0ɧ.��/)�0Y�
������Ũ
ߨ�
�$
�$2�W� h���@��D٩�2�"Q�t�"����Ϊߪ@�/�J�[�l�|���/��8Ϋ,�=4�r�������ά0�1�1C�u�������-խ�#�8�P�b����3��3��4�L�d�~���
����ïۯ���
�$%�J�LV� ��İܰ;�0�?�#L�	p�z�������
��ȱ�����	/�9�A�I�![�}�����̲Բ��� �$�?�Y�y�����
����6�����!:�\�
d�r�	���������&��	�"�*�>�=V�
����	������˵�	�
�
��
� �2�D�M�5k���-��1�&�:�R�g�z�������$��
�$�4�L�b�u���������ָ����� �2�B�
\�g�t���
������7����!�$�<�D�M�U�[�_�k�z�=~�2��������'�-@�2n�����?׻�3�D�+S��	������˼-��$7�\�
|���������=ν?�L�2[�!��%��@־9�EQ�9��CѿK�Ia�H��;�60�8g�3��<�4�-F�6t���%�������.�H�&X�,�#��4�� �@&�-g�0��:��;�=�"]���>��)��>��<9�v���#��:��'�9)�c�$|�9��4��;� L�>m�1��/���-+�Y�.h�B��"��2��40�*e���+��%��'�((�<Q�E��.��-�$1�V�<o���*��&�� �49�n������������������!�1�:�"B�e�q���������)���$�3�B�J�c�1|�?��������)�:�P�k�~�X��%����5�S�l�����������$���!�:�X�^�n�r���"��$����#�9�@�O�_������ ����4�8�	J�CT�V����
��

�.�D�-]���-��$��.��6,�c�.}�H��(���-�
F�OQ�O��
��C��	C�M�Y�!n�������3��2��! �(B�k� ��"��E���%+�#Q�-u�������&��!�3�E�c�|���'����)��+�@E�-����5���$�:�U�/p�9����E��=�-X�7��#�� ��:�5>�&t�"��&��$��#
�!.�=P�5�� ��(��7�.F�,u��������� �#!�&E�l�����������
�)�0H�$y�!�� ��(��4
�,?�l��������� �����16�h�!��%��%��!��%�;�$T� y�����?��&�#8�\�
x�A��%��"��"�94�'n�(��2��*��!�!?�)a�%��!��4��:�&C�;j�;��)��0�=�\�x�����#��!��8�&;�#b��� ��/��"���-#�Q�b�{�/��*��(��#�;�W�r�����>��� �:�"Q�t�������#���9�1U�1��)��1��%�7;�s�A��?���&�=�!\�~�����0��4�$:�)_�N��,��&�L,�y�����8����$
�2�L�#l�7��N��3�P�$k�!��3��,�2�%F�l�"����#���(�E�Bb���0��!� �<3�+p�����+�2��$0�U�,s���H��,�1�G�"g��������9#�]�r���0��#�'��&�6�,V�&������+�2��-.�(\���"��'��'�,�>�.U���#��,�W��)M"w,�%�� 
+2D2w2��!�52J5}'�#�)�3)$]%�����$,&Q x'�*�#�'%8^3~!��+�*?-j$����* E f$�$�)��,)Vk%��=�
	&	C	\	'v	�	�	$�	#�	0!
.R
0�
�
�
�

"9M-d ��7�)0$H(m��%�$�
.
A
'^
�
'�
 �
�
  87Y0��#�"%(H!q�-�1�65H~.�*�1�9%_*&�+�,�+*4V<�+�*�5Mbw�����"�*A\{����3Ok:~=�<�64<k�"��+�)%4O5�4�3�#05 f�D�P�%0Vu�����!3Up�����'-@!`��"��1�!8U"j�����1F_r�����*;)f�� ���	6"#Y})�&�K�6  I j � � � � � !"!&A!#h!�!�!+�!%�!7"5P"�"�",�"�"# #)6# `#�#�#�#�#�#$#$?$0W$�$�$�$�$4�$./%$^%)�%1�%;�%&.+&*Z&�&$�&�&%�&,'8'%I'o'�'�'&�'-�'&(5( Q(r(�(�(+�( �()?$))d)�)6�)#�)2*96*>p*8�*1�*+)8+)b+ �+)�+�+)�+*,"G,j,#�,"�,"�,)�,-7-%U- {-$�-�-�-!�-0 .Q.j.�.�."�.!�.9/8<//u/�/�/�/+�/%01B0)t0�0�0'�0%�01&11!X1%z1'�1%�1'�1-22D2w2�2$�2�2�23"!3D3d3!�31�3&�3�3!4!>4`4(u4�4�4+�485=57\5E�5!�5�56((60Q6#�6�6$�6�6#�6*7I7d7w70�72�70�7&8+C8)o8$�8/�8�89'9)@9,j9�9�9 �9�9	:-':,U:�:/�:+�:'�:!; A;0b;�;!�;,�;�;<("<K<d<0z<.�<�<1�<&,=:S=�=9�=�=:><>T>t>�>*�>�>3�>0?%I?2o?0�?!�?;�?R1@�@*�@�@�@(A+A+GA+sA�A �A"�A%�A $B+EB"qB+�B�B.�B4CIDC)�C)�C6�C6D-PD(~D/�D&�D<�D);E*eE�E7�E�E�EF*7FbF�F0�F/�F!�F"G*BG/mG;�G�G�GQH.cH�H$�H#�H0�H#,IPI2oI6�I�I+�I%%JXKJ;�J/�J;KLK!lK%�K"�KN�K.&L$UL&zLT�L#�L"M$=M bM�M�M#�M]�M CNBdN'�N�N/�N2O,OO"|O�O&�O(�O%	P/PNPlPE�P!�P �P7QJQ%`Q�Q'�Q�Q'�QR3R<IR�R"�R'�R�RS+"SNS(hS!�S5�S�S7T!@T%bT/�T!�T�T�T'U@U)_U;�U&�U(�U8V&NVuV.�V�V)�V&W,WEW'bW�W	�W�W�W�W�W�W#X	0X:XJX^X.uX�X.�X6�X!Y'Y6;Y#rY
�Y&�Y	�Y�Y�Y�YZ+Z 8Z%YZ!Z
�Z�Z(�Z��Za�[�[+\a=\�\�\�\(�\
�\	�\%�\
]*]&H]&o]�](�]�]	�]�]	^^
^&^D^Y^w^	�^2�^*�^�^_&_E_[_
q_|_	�_�_�_�_�_#�_(`*`<`	N`X`p`
�`�`�`2�`�`�`a/a<aBa$Wa|a/�a�a�a'�a�ab
)b$4b
Ybdbvb�b �b�b�b�b�b!�b c?c@Hc(�c�c'�c�c�c�c
dd3d#Sdwd�d�d.�d
�d�d	e
e*e<eRe'me�e�e
�e�e�e�e�eff:fYfof�f�f�f9�f9gJgagigvg
�g�g(�g�g�g�gh
h	h#h9hQhlh{h9�h
�h�h�h�hi&0iWivi�i�iC�iWj	hjrj�j�j�j
�j�j)�j�jk3kFOk�k�k�k�k�k�k(�kl8lUl1gl�l�l�l�l�l�lmm0.m;_m>�m�m�m
n1&n"Xn{nn�nA�n)�n=%oco(�o�o�o$�o0�op(p+p+Ap2mp�p�p�p�p�p	q
q�&q�qF�qr
r	r
(r6r+Krwr%�r0�rB�r('sPs1ls+�s*�s&�s9tMVt>�t)�t5
uACu4�u$�u*�uA
vALv&�v6�v�v<�v<1w?nw7�w/�w x"7xZx2ox0�x�x�xy#y8yLyfy�y�y2�y)�y+z,>z-kz �z!�z#�z{{1{5{9{X{	e{o{x{�{�{�{�{�{�{
�{
�{|	||4|A|	U|_|
o|}|
�|	�|5�|�|�|	�|�|}

}}&"}I}\}i}o}
w}�}
�}�}�}�}�}�}�}�}�}�}9�}B~DX~"�~$�~"�~)2AHd}��1�
�$�"�1�<P���'��!Ȁ���
�'�F�_�Hl�C����
�*�B�U�p�w���������� ɂ#�-�-<�j�|�����ǃ؃(�&�=�=L�����%��
�8�F'�.n�D��M�@0�0q�&��'Ɇ&�$�=�O�$j���-��؇�
�!�?�K�Q�l�~�����
��ň׈� �%�
*�8�"E�h�%z�*��.ˉ8��"3�#V�%z�#��Ċڊ��/�E�
T� b� ����
��‹ڋ���.�	F�P�i�2}���Ȍ׌ތ$���(�
7�E�#N�1r�1��1֍1�:�C�	L�
V�(a���������Ɏڎ
��
��6�(J�'s� ����ҏ�	�	$�.�"@�c�v���$��$��ِ�����
%�3�I�h���������̑ޑ���3�B�J�.V�.��.��.�.�.A�.p�.��&Γ ��%�<� W�:x���Ô˔ڔ�"��)�)H�r�	{�������ȕٕ���
�	�&�7�L�`�u�3�������
��Ę͘/�7�K�f�|�i��;��8�E�,M�z�.��6ś���K�i�#��!��
Ϝݜ��=ĝ��8�
W�e�v�����+�����.�.B�-q�.��Ο��� �!9�[�o�1{�2��� ��J(�Is���Ρ#��#2�V�o���M��%ߢ��*�=�R�:h�J��0�=�]�&u���!��٤A�11�1c�������ۥ-��#�B�W�s�#����Ȧ-�4�G�c������˧
����/�@�\�*m�
��L��(��8�;T�
����)��ש���
%�0�?�]�n����	��	��˪Ҫ$��#�"B�e�!n���
��$��ɫ�"�*�
7�
B�M�_�>o�!��Ь!�,�;�D�
T�b�#q�
������*��ح*�2�I�Id���
��̮Ԯ� ����
;�
I�T�
[�f�x���0��>į�2�AG�.����ΰ����'�A�0W�����
����̱�����2�G�W�r�
��������Ȳٲ����+�=�M�
]�?k���"��۳��
���"�&�8�I�NM�@��ݴ�	����2�3F�5z�&��׵;�%0�V�g�8v�
����ʶ"�%�11� c�&��!��ͷ
ڷ���	�>�HW���)��!ڸ&��;#�9_�G��;�D�Qb�J��I��OI�7��=ѻ4�ID�>��5ͼ7�;�%[�����*��!ܽ��$�70�1h�3��(ξK��3C�3w�7��A�%�%E�k�:��2��?�:/�j�#w�-��;�*�=0�n�)��@��:��C1�$u�D��6��.�(E�2n���&��?��*�7F�8~�*����1��%1�+W�0��B��G��2?�0r�"����B��&�-@�2n�!��6�����(�<�H�\�o������������
��/��
�*�9�U� q���.����%����!�;�=U�G����������1�I�i���\��+��)�!-�'O�w�����������	�# �D�$Z�!�����������+��# �"D�.g�������(����!�5�&T�*{�@������I�\V�����
��-���4+� `�,��%��A��B� Y�0z�K��6��.�=�
S�\a�\���F.�	u�	�������!����4��3�#M�(q���"��4��>�*M�-x�%��4���!�?�/X�������������.�C�*b�,��E��7� 8�;Y���������3�=6�t�L����2��I2�#|�(��E��6�2F�/y�*��0��-�'3�<[�J��!��(�F.�Cu�5��$���.� K�&l�(��'������ 9�Z�t�$����+��#�,)�*V�@��7��,��'�F�a�u�����"�� ��7�":�$]�3��1��$��(
�6�&P�)w�����J��1)�-[�&����K��4�#C�,g�K��,��0
�6>�1u�0��'��(�))�&S�=z�E��1��B0�Ds�4��;��/)�!Y� {�����!��+��I$�9n�&����%��9�2L��5����#����1�*A�)l�"��"��$����?�F^�%������&�#+�O�!o���&����;��=.�<l�6��>��0�4P���?��B��'�>�)U�>�����#��E�8d�'��,��Z��4M�)��X����3�=J���$���0�2�;C�Q��'�#�/=�%m�9��.�8��55�!k�8���2� �+:�+f�+��K��!
�2,�&_�*��F��6��%/�U�%s�I��(�$�;1�m�C��+���)�.=� l�"��"��"� ��;�S�&l�#��3��+�4L]G|/��< G]<�8�*65a,�=�<!)^#�5�]�9@4z6�1�&,?l;�?�=E$b��6�1�2$,W2�A�,�*&Q#p�*��+�/	'G	3o	<�	/�	.
%?
'e
A�
&�
$�
9'U<}=��(0A,r��*�*�"*
-M
*{
�
�
7�

")1L%~J��"<5X!�+�*�+53,i8��� !=_"y2�'��49L�$�8��(/)X/��&�>�/.,^!��%��1AA@�-�)�'4D3y(� �5�/-4]3�'�7�1&<XO�'�1
.?1n.�-�G�QE.�3��/EZu��(��#
 ."O$r-�%�%�!&3%Z%� �"��<GZE�E�B.$q#��?�= NM N� O� K;!�!I�!�!�!["ip"0�"#%)#O#n#�#�#&�#�#$�#!$@$Y$i$}$�$"�$<�$%7(%'`%'�%�%%�%�%6
&A& \&}&�&�&�&�&' '0' J'k'�'�'�'�'�'("!("D( g(%�(5�(4�()3)(J)s)�)�)8�)&�) *-9*.g*W�*�*-+&6+(]+�+�+�+�+�+0�+#*, N,o,�,+�,4�,;-9B-|-�-0�-�-#.%./>.#n.�.)�.�.�./$/A/[/7s/�/�/�/(�/:(0=c02�0.�031>71v16�17�1'�1+!2'M2,u2:�2�20�2"#3F3`3*|32�33�3)4)84&b4%�4�4@�4$535GG53�5�5A�5-!69O6=�6B�6=
7:H7,�7+�75�7 8+38_86y81�8(�89-$97R98�96�9"�9:98:%r:'�:&�:#�: ;5,;b;y;�;�;.�; �;I <Cj<5�<�<#=(=8:=1s==�=8�=> 9>'Z>$�>�>+�>$�>"?+4?&`?%�?8�?<�?#@/B@#r@!�@&�@�@$�@$ADA&dAB�A)�A�A/B'GBoB*�B#�B+�B1C<8CuCD�CX�C)2D\DoD*�DB�D1�D-E'CEkE)�E+�E�EF#F7;F2sF9�F �F%G,'G#TG;xG�G
�G1�G9H;EH/�H*�H)�HI$I(DI6mI�I8�I3�I&'J+NJ+zJ>�J�J*K+0K\KpK)�K%�K�K;�KK/L*{L>�L$�L;
M#FM<jM�M;�MN9N3TN4�N@�N5�N74OlO5�O;�OE�O3=PQqP\�P5 Q1VQ�Q�Q2�Q�Q)
R27RjR!�R!�R+�R�R4S(HS1qS!�S1�S0�SE(T,nT,�T@�T8	U.BU<qU5�U9�UDV2cV2�V�V<�V$W#AW!eW0�W%�W�W7�W<5X"rX0�X3�X5�XL0Y"}Y�YP�Y4Z!DZ)fZ(�Z8�Z(�Z[A9[6{[�[2�[-\Z1\A�\6�\=]C]+a]1�]-�]^�]?L^#�^3�^X�^+=_,i_&�_1�_1�_/!`4Q`_�` �`La'Ta&|a>�aE�a<(b)eb�b9�b.�b2c+Ccoc-�c=�c�c0d=Id�d'�d'�d)�d"e.9e#he�eM�e)�e+"f8Nf�f�f.�f�f;	g'EgImg�g8�g3
h-Ah3oh$�h(�h%�h7i'Oi0wi@�i4�i7jTVj1�j�j<�j&5k&\k2�k#�k3�k+l:lCl"Pl
sl�l�l�l �l	�l
�l�lm<5m'rm3�mB�mnnW/n�n�n2�n	�n�noo.o	Eo&Oo+vo,�o�o�o*�o�%ps�pYqCqqa�qr'r,r*3r^rsr1�r�r#�r(�r)s#:s7^s�s	�s�s	�s�s�s$�st#'tKt
jt0ut*�t �t�t"u.uHu
guuu�u�u
�u�u�u'�u+v=vZvrv"yv#�v�v�v	�v8�v	3w=w]wxw�w�w*�w&�w>�w5xEx5Hx~x�x
�x.�x�xyy+y4Ay!vy#�y �y�y+�y&!zHz?Wz5�z"�z'�z{{-{?{"Q{)t{3�{�{$�{	|8|N|a|}|$�|�|�|�|'�|$}A}N}]}s}�}�}�}�}�}~~6~L~l~L�~;�~"3?Tf!w+�������!�;�T�o�
~�E��Ҁ
����/6�.f�.��.ā�I�\V�	����҂��
 �.�5:�'p��� ��R؃+�=�]�x�
���*��Ą݄��-
�;�H�	Z�d�x�����҅*�?�;T�������!Ά ��!�"7�EZ�1��I҇$�1A�s� �'��7Ȉ
���+%�?Q�������ʉ!ى
��'��.�ъN�
5�C�
O�Z�i�8z���&Ћ4��H,�4u���2Č3��/+�/[�1��E��8�9<�6v�6��7�/�)L�Hv�H��(�21�d�;k�;��J�<.�0k�!��2���4�(;�d�������Ӓ�"
�0�E�8^�/��1Ǔ2��3,�)`�"��'�� Ք����%�
=�H�
U�c�x�������ѕ�����%#�I� Y�z���������
Ζ6ٖ�$�	1�;�L�
R�`�(g���������ŗח�����
����"�5�;:�Yv�IИ,�/G�2w�/��ڙ�'�$�<�N�R�0k�	��2��2ٚ)�L6���4��.՛�"�%=�(c�#����KƜP�c�,�� ��Ν6�"�	+�5�>�F�U�%q�!��$��-ޞ-�:�K�"h�������3ɟ2��0�A?�����+��ޠF�W7�4��IġR�Ka�6��%�&
�%1�(W���/��<ƣ�M!�o�)��"��#ܤ
���/�	E�O�j���������%����
�6�V�(l�?��@զ:�)Q�2{�<��+��0�I�`�:x���
è7Ѩ4	�>�
Z�e������%��٩����@<�#}�������,Ϫ���!�9�
Q�%\�1��3��1�5�	P�Z�c�o�)|���¬Ŭ ���-� F�g�t���(��-ϭ&��$�9�U�!r�
����$��ݮ�
�5�3K��"����4������/#�$S�x�$��'������,!�&N� u�����
��2��:�/'�/W�:��:²:��88�*q�%��)³)�,�AC���������ϴ!�*	�+4�	`�
j�)u�����ǵ׵
��
���/�C�V�
j�?u���S*K�O�Ih��pwEA�������]��O�?��~s�X������%�q
C�H(�)
>+�%T��cT�#��Qb�L�nS���s`Mi�5��^�jP�W�������
e��8�x�����������d���K�ncmm����&*Rq�0���Z�In���7kB_&R�}����4[�����b������,A����wh���6���2�o�d���|Gp7�%lw��!�%um�N���(����)�6!���Q����/�'~�"Q�J���6�x^�
�k��&KQ3:9��>��)��<$f�z����8e��k��-���;8�
?���u03&Eo��#.���Z����X'��R[]��Vw��`���=��dO3�*:�����x$�zz��������),�������r+,�*�hJ�\�H �}��\�>u�A3\�#x���M���^�@T�lw����u<�W�-���m>�$���A�X;w�y@��fL�pS� "g�Za_�@��e�!i_���&N,��t�+:pv'k���?��)�!U)��S*q�+����F��1�S��4<���I8�+�����Wx���y���Lw�!0���}�g�k������D�9X��?kz�� D"��]�^�Q,�P�0	IR@���|�c>�����FaG��0t�r~8�l�@-6G��9���e��W�F]Use���h�O^��o��`�=��~�M[R�K_8P��lTV�Bfh2�:���G�.��1�������N��E>�Zb{�O�����z�J��.�������D`f�1a�n�6Ru�Y
?;�����mfr>x���?=a���fsZ��S;~g���:ET���Y�;���Y6a
�
�g�9��39��4@.�)H���-�2���N���d(C���	�A�I��N$a�����[��v$H�n	�j5�W�����4c4��^/�	��y{Br�j�S�@����u@=D���v����P��f�������}����;�{��������*���V����<��g�2�(�o\q���
�AC-���H`=c/L�'��L��Kv����XV/(t2#D��<��/�����[�e�vzG�>�����+3i�&�0�����J�����1���/�/��E9i�����\��,nU�ykBp#c��{�Yv�]�C���D��wl�cIi�=�4E�;���9�+��!+�b��}	P{OKB����o�	������nT��(�^�[����
A����iT�M��5�	���QP�|y�-�������M�`7���s��1qH.�H�b����5'{AIN�}�Z<��|�K�U��fl�
I�3����$5��C�z��tE�d�����R��XBB2���<~yJ�,$�C��h����1����:e,
�i����0� ��#�/2�Y m��k���FY����%�jG���yF���L��NM��_�� �.��4j������{��$�8��W���hs����<�t�-~Y=�E�ap���V(g�{ ���q01�#:���i�K�Z�d��o~���e�jv��)PJM};O.��7MSu�4_J�7��r��gaV�%�[_3��O5�&dJ���`��s]��Q�qD7����\"�7�X
������o�H�2�5j����=�W^�t�����.	��������#B���h
����
��n������]V� *Np���|7!�|����6}�U�\(�'Ucs:6���Gb�x]b�otg����-�5F����8�"��|R�����mvLl'P|u�Z����jx_��!�C&����U\�D�rb?T��d�����V���t���l��'�X�mW[�U��"����"G�9��`L�
�Q%��pr���%�z�C�?YFqr����1*��y��"F
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info into "%c kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%s%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----clean		'nocompatible', Vim defaults, no plugins, no viminfo--cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked%s1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE946: Cannot make a terminal with running job modifiableE947: Job still running in buffer "%s"E948: Job still runningE948: Job still running (add ! to end the job)E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTerminalTerminal-finishedTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveactiveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yanked%sblock of 1 line yanked%sbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinishedfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %drunningsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-09-24 16:26+0200
PO-Revision-Date:  2017-09-24 18:40+0200
Last-Translator:   Antonio Colombo   <azc100@gmail.com>
Language-Team:     Antonio Colombo   <azc100@gmail.com>
Language: Italian
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO_8859-1
Content-Transfer-Encoding: 8-bit
                   Vlad Sandrini     <vlad.gently@gmail.com>
                   Luciano Montanaro <mikelima@cirulla.net>

	Impostata l'ultima volta da 

Argomenti:


  uso:
        modificato: 
         [not utilizzabile su questo computer]
         [non utilizzabile con questa versione di Vim]
          nome computer: 
       nome utente: 
   ID del processo: 
       a: Trova assegnazioni a questo simbolo
       c: Trova funzioni che chiamano questa
       d: Trova funzioni chiamate da questa
       e: Trova questa espressione egrep
       f: Trova questo file
       g: Trova questa definizione
       i: Trova file che #includono questo file
       s: Trova questo simbolo C
       t: Trova questa stringa di testo

    Nome        Arg.       Indir.    Completo  Definizione
   #   riga
    o:
  # A  tag         DA__ riga  in file/testo
 salt.riga  col.file/testo
# %s Storia (da pi� recente a meno recente):

# Righe che iniziano con '|', semplicemente copiate:

# Lista Buffer:

# File mark:

# Storia dei mark all'interno dei file (dai pi� recenti ai meno recenti):

# Jumplist (dai pi� recenti):

# Ult. %sEspressione di Ricerca:
~
# Ultima Stringa Sostituzione:
$
# Registri:

# variabili globali:

(1) Un altro programma pu� essere in edit sullo stesso file.  Se � cos�,
    attenzione a non finire con due sessioni differenti che modificano lo
    stesso file.  Uscire da Vim, o continuare con cautela.

(Potresti salvare questo file con un altro nome ed eseguire

--- Auto-Comandi ---
--- Valori opzioni globali ---
--- Valore opzioni locali ---
--- Menu ---
--- Opzioni ---
--- Registri ---
--- Segni ---
--- Elementi sintattici ---
--- Elementi sincronizzazione sintassi ---
--- Codici terminale ---
--- Tasti Terminale ---
Opzioni accettate da gvim (versione Athena):

Argomenti accettati da gvim (versione GTK+):

Opzioni accettate da gvim (versione Motif):

Opzioni accettate da gvim (versione neXtaw):

Versione grande 
Non posso creare 'pipe'

Non riesco a eseguire shell 
Non riesco a eseguire shell sh

Non riesco ad effettuare 'fork'

Comando terminato

Compilato 
Non posso ottenere il contesto di sicurezza per 
Non posso impostare il contesto di sicurezza per 
Patch aggiuntive: 
Trovato uno swap file di nome "
Versione gigante 
Se hai immesso una chiave di cifratura senza riscrivere il file di testo,
Se hai riscritto il file dopo aver cambiato chiave di cifr., premi Invio
Patch incluse: 
Versione MS-Windows 32-bit GUI
Versione MS-Windows 32-bit console
Versione MS-Windows 64-bit GUI
Versione MS-Windows 64-bit console
Versione MacOS X (Unix)
Versione X MacOS
Versione MacOS
Forse non ci sono state modifiche oppure Vim non ha aggiornato lo swap file.
Maggiori informazioni con: "vim -h"

Versione normale 
Versione OpenVMS
Versione piccola 
Versione minuscola 
Vim: Preso errore X

AVVISO: Il file originale pu� essere perso o danneggiato

Quando si ignorano maiusc./minusc. preporre / per rendere il flag maiusc.
� consigliato cancellare il file .swp adesso.


[byte] totali alloc-rilasc %lu-%lu, in uso %lu, max uso %lu

modif  riga  col testo
immetti la nuova chiave di cifratura.
mark riga  col.file/testo
shell terminato con return-code 
sincronizzo elementi
per usare la stessa chiave sia per il testo che per il file swap                            modo Vim predefinito                           per modo Inser./Comandi            datato:       proprietario:      [non riesco ad aprire]          [non leggibile]        [non assomiglia ad uno swap file Vim]         [da Vim versione 3.0]         nome file:         file dei default: "      -- nessuno --
      pi� RECENTE dello swap file!
        file exrc utente: "       file vimrc utente: "    Se � cos�, usa ":recover" oppure "vim -r     Se hai gi� fatto ci�, cancella il file di swap "    riga=%ld id=%d, nome=%s    file menu di sistema: "      file gvimrc utente: "   Nella directory in uso:
   Nella directory    Uso il nome fornito:
  datato:    nome computer:    file vimrc di sistema: "  # pri tipo tag  (Gi� elencati)     II file exrc utente: "  VERSIONE DEBUG  Funzionalit� incluse (+) o escluse (-):
  NON TROVATO  TOTALE     CONT.  CORRIS. PIU LENTO   MEDIA     NOME               MODELLO  Uso tag ignorando maiuscole/minuscole!         $VIM di riserva: "  file gvimrc di sistema: " # pid    database nome                       prepend path
 (Interrotto) (NON TROVATO) (comprese corrispondenze elencate prima) (inserisci) (inserisci) Scroll (^E/^Y) (riga cancellata) (non supportata) (incolla) (sostituisci) (sostituisci) Scroll (^E/^Y) (ancora attivo) (v-sostituisci)    II file vimrc utente: "   III file vimrc utente: " < "%.*s" Aggiungo Arabo ERRORE DI CONVERSIONE Completamento riga comandi (^V^N^P) Copia %d di %d Completamento Definizione (^D^N^P) Completamento Dizionario (^K^N^P) FALLITO Completamento nomi file (^F^N^P) Ebraico INSERISCI Completamento Keyword Locale (^N^P) Completamento Keyword (^N^P) Completamento globale (^O^N^P) Completamento modello Path (^N^P) SOSTITUISCI INVERTITO SELEZIONA SELEZIONA BLOCCO SELEZIONA RIGA SPAZIO/d/j: schermo/pagina/riga gi�, b/u/k: su, q: abbandona  Suggerimento ortografico (s^N^P) Completamento Tag (^]^N^P) Completamento Thesaurus (^T^N^P) Completamento definito dall'utente (^U^N^P) VISUALE VISUALE BLOCCO VISUALE RIGA V-SOSTITUISCI Completamento riga intera (^L^N^P) [Modificato] [a] [s] modalit� ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) aggiunto in fondo non pu� essere usato su questo computer.
 non pu� essere usato con questa versione di Vim.
 $VIMRUNTIME di riserva: " � stato danneggiato (la dimensione della pagina � inferiore al minimo).
 alla riga %ld; informazione in "%c tipo file
 interruzioni di riga righe prima della riga iniziale mark file elaborati in precedenza in %ld righe in 1 riga o pi� ottenuto
 vim [argomenti]  con supporto OLE scritti"
    per non ricevere ancora questo messaggio.
"
    per recuperare modifiche fatte (vedi ":help recovery").
" gi� esistente!# Questo file viminfo � stato generato da Vim %s.
# Valore di 'encoding' al momento della scrittura di questo file
# File modificabile, attento a quel che fai!

%-5s: %s%*s (Uso: %s)%3d  %s %s riga %ld%d buffer tolti dalla lista%d buffer scaricati%d buffer cancellati%d parole duplicate in %s%d file da elaborare
%d ulteriori file da elaborare.  Esco lo stesso?%d di %d elaborato%ld %s; %s #%ld  %s%ld Col.; %ld righe in meno%ld righe %se %d volte%ld righe %se 1 volta%ld righe --%d%%--%ld righe cambiate%ld righe filtrate%ld righe rientrate %ld righe mosse%ld righe da rientrare... %ld righe messe in registro%s%ld righe,%ld corrisp.%ld righe in pi�%ld secondi fa%ld sostituzioni%lld caratteri%s Auto comandi per "%s"%s non completata%s scartato%s riga %ld%s reso 'pending'%s ripristinato%s ritorno #%ld%s ritorno %sIl valore di %s � diverso da quello usato in un altro file .aff%s, riga %ld%slista errori %d di %d; %d errori%sviminfo: %s nella riga: &C Non eseguire&D Non ora&Filtro&H Aiuto&OK&OK
&Non eseguire&OK
&Carica File&OK&O Apri sola-lettura
&E Apri comunque
&Recupera
&D Cancellalo
&Q Esci
&Annulla&O Apri sola-lettura
&E Apri comunque
&Recupera
&Q Esci
&Annulla&R Sostituisci&U Disfa&Y S�
&No&Y S�
&No
&C Ignora&Y S�
&No
&A Salva tutto
&D Scarta Tutto
&Cancella' non noto. Terminali disponibili predisposti sono:'-nb' non disponibile: non abilitato in compilazione
l'opzione 'dictionary' non � impostatal'opzione 'history' � a zeroopzione 'readonly' attiva per "%s".
Vuoi scrivere comunque?l'opzione 'thesaurus' non � impostata(%d di %d)%s%s: (+%ld per BOM)(2) Una sessione di edit per questo file � finita male.
(Interrotto) (Non valido)(NFA) IMPOSSIBILE APRIRE %s !+			Posizionati alla fine del file+<lnum>		Posizionati alla riga <lnum>+reverse		Non usare colori invertiti (anche: +rv),
o il file � stato danneggiato.-               leggi testo da 'stdin'--			Solo nomi file da qui in poi-- Ancora ---- Ricerca...--- File inclusi --Cancellato----File vuoto----clean		'nocompatible', default di Vim, no plugin, no viminfo--cmd <comando>		Esegui <comando> prima di caricare eventuali file vimrcargomento --cmd--echo-wid		Stampa il Window ID su stdout--literal		Non espandere wildcard--noplugin		Non caricare script plugin--not-a-term		Non avvisare se input/output non da terminale--remote <file>	Apri <file> in un server Vim se possibile--remote--expr <expr>	Esegui <expr> in un server Vim e stampa risultato--remote-send <tasti>	Invia <tasti> a un server Vim ed esci--remote-silent <file>   Stessa cosa, ignora se non esiste un server--remote-tab[-wait][-silent] <file>  Come --remote ma apre una linguetta per file--remote-wait <file>   Come --remote ma aspetta che i file siano elaborati--remote-wait-silent <file>   Stessa cosa, ignora se non esiste un server--role <ruolo>	Imposta un ruolo univoco per identificare la finestra principale--serverlist		Lista nomi server Vim disponibili ed esci--servername <nome>	Invia a/diventa server Vim di nome <nome>--socketid <xid>	Apri Vim dentro un altro widget GTK--startuptime <file>	Scrivi tutti i messaggi iniziali di timing in <file>--ttyfail		Esce se l'input o l'output non sono da un terminale--version		Stampa informazioni sulla versione ed esci--windowid <HWND>	Apri Vim dentro un altro widget win32-A			Comincia in modalit� Araba-C			Compatibile con Vi: 'compatible'-D			Modalit� Debug-E			Modalit� Ex migliorata-F			Comincia in modalit� Farsi (Persiano)-H			Comincia in modalit� Ebraica-L			Come -r-M			Modifiche nel file non permesse-N			Non interamente compatibile con Vi: 'nocompatible'-O[N]		Come -o ma dividi le finestre in verticale-P <titolo padre>	Apri Vim in un'applicazione padre-R			Modalit� Sola Lettura (come "view")-S <sessione>	Esegui comandi in file <sessione> dopo caricamento primo file-T <terminale>	Imposta tipo terminale a <terminale>-U <gvimrc>		Usa <gvimrc> invece di qualche .gvimrc-V[N][fname]		Verbosit� [livello N] [log su file fname]-W <scriptout>	Scrivi tutti i comandi immessi in file <scriptout>-X			Non connetterti a server X-Z			Modalit� Ristretta (come "rvim")-b			Modalit� Binaria-background <colore>	Usa <colore> come sfondo (anche: -bg)-boldfont <font>	Usa <font> per testo in grassetto-borderwidth <larg>	Usa larghezza <larg> per bordo (anche: -bw)-c <comando>		Esegui <comando> dopo caricamento primo fileargomento -c-d			Modalit� Diff (come "vimdiff")-dev <dispositivo>		Usa <dispositivo> per I/O-display <schermo>	Esegui vim a questo particolare server X-display <schermo>	Esegui vim su <schermo>-display <schermo>	Esegui vim su <schermo> (anche: --display)-e			Modalit� Ex (come "ex")-f			Non usare newcli per aprire finestra-f opp. --nofork	Foreground: Non usare 'fork' inizializzando GUI-font <font>		Usa <font> for il testo normale (anche: -fn)-foreground <colore>	Usa <colore> per il testo normale (anche: -fg)-g			Esegui usando GUI (come "gvim")-geometry <geom>	Usa <geom> per la geometria iniziale (anche: -geom)-h opp. --help	Stampa Aiuto (questo messaggio) ed esci-i <viminfo>		Usa <viminfo> invece di .viminfo-iconic		Inizia vim riducendolo ad icona-italicfont <font>	Usa <font> per testo in corsivo-l			Modalit� Lisp-m			Riscritture del file non permesse-menuheight <alt>	Usa altezza <alt> per barra menu (anche: -mh)-n			Niente file di swap, usa solo memoria-o[N]		Apri N finestre (predefinito: una per ogni file)-o[N]		Apri N linguette (predefinito: una per ogni file)-q [errorfile]  apri file col primo errore-r			Lista swap file ed esci-r (e nome file)	Recupera da sessione finita male-register		Registra questo gvim a OLE-reverse		Usa colori invertiti (anche: -rv)-s			Modalit� Silenziosa (batch) (solo per "ex")-s <scriptin>	Leggi comandi in modalit� normale da file <scriptin>-scrollbarwidth <larg>  Usa larghezza <larg> per scrollbar (anche: -sw)-t tag          apri file in cui � definito il tag-u <vimrc>		Usa <vimrc> invece di qualche .vimrc-unregister		Deregistra gvim a OLE-v			Modalit� Vi (come "vi")-w <scriptout>	Aggiungi tutti i comandi immessi a file <scriptout>-x			Apri un file cifrato-xrm <risorsa>	Imposta la risorsa specificata-y			Modalit� Facile (come "evim", senza modalit�)Riga / ignorata in %s riga %d: %sRiga /encoding= dopo parola ignorata in %s riga %d: %s1 buffer tolto dalla lista1 buffer scaricato1 buffer cancellato1 carattere1 riga %sa %d volte1 riga %sa 1 volta1 riga --%d%%--1 riga cambiata1 riga rientrata 1 riga in meno1 riga mossa1 riga messa in registro%s1 riga, 1 corrisp.1 ulteriore file da elaborare.  Esco lo stesso?1 riga in pi�1 sostituzione   II file gvimrc utente: "  III file gvimrc utente: ": Invio di espressione fallito.
: Invio fallito.
: Invio fallito. Tento di eseguire localmente
; corrisp. <%s>%s%s  %d,  Esa %02x,  Ottale %03o<non posso aprire> <vuoto>> %d, Esa %04x, Ottale %o> %d, Esa %08x, Ottale %o??? da qui fino a ???END le righe possono essere fuori ordine??? da qui fino a ???END righe possono essere state inserite/cancellate???BLOCCO MANCANTE???BLOCCO VUOTO???END???CONTATORE RIGHE ERRATO???RIGHE MANCANTI???MOLTE RIGHE MANCANTIANCHOR_BUF_SIZE troppo piccolo.Aggiungi un nuovo databaseAggiunto database cscope %sAffisso usato anche per BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s riga %d: %sNome affisso troppo lungo in %s riga %d: %sTutTutti i database cscope annullatiTutti i file inclusi sono stati trovatiQuesta � gi� l'ultima modificaQuesta � gi� la prima modificaC'� gi� una linguetta solaC'� gi� una finestra solaIn aggiunta al FileArgomento mancante dopoAlla rigaTento di riaprire lo script file: "Ritorno all'originaleIntervallo rovesciato, OK invertirloDiventa un utente Vim registrato!Beep!Prima del byte %ldFonRighe sia SAL che SOFO in %sPausa in "%s%s" riga %ldCondizione non rispettata in %s riga %d: %sCOMPOUNDSYLMAX usato senza SYLLABLEChiamo lo shell per eseguire: "%s"Non riesco a trovare il file temp per leggerloNon eseguireNon riesco a creare Non riesco a eseguire Non riesco ad aprire $VIMRUNTIME/rgb.txtNon riesco ad aprire NIL:
Non riesco ad aprire il file "%s"Non posso aprire in lettura: "Non posso aprire come script output: "Non riesco ad eseguire una directory: "%s"Non posso scrivere un file Undo in alcuna directory di 'undodir'Cambiare "%.*s" in:Chiudi linguettaCol. %s di %s; Riga %ld di %ld; Parola %lld di %lld; Caratt. %lld di %lldCol. %s di %s; Riga %ld di %ld; Parola %lld di %lld; Caratt. %lld di %lld; Byte %lld di %lldRiga di ComandoCompilazione: Compilatore: %d di %d nodi compressi; ne restano %d (%d%%)Comprimo albero di parole...Conversione fallita per una parola in %s riga %d: %sConversione in %s non supportataConversione in %s non supportata: da %s a %sConversione fallita con 'charconvert'Non sono riuscito a impostare puntatori di funzione verso la DLL!Non posso ottenere il contesto di sicurezza %s per %s. Lo rimuovo!Non riesco a caricare vim32.dll!Non posso aprire il log temporaneo in scrittura Non posso aprire il file temporaneo per la scrittura, mostro su stderr ... Non posso impostare il contesto di sicurezza %s per %sTag cscope: %sLingua %sin uso: "%s"Riga di DebugDefinire COMPOUNDFORBIDFLAG dopo l'elemento PFX potrebbe dare risultati errati in %s riga %dDefinire COMPOUNDPERMITFLAG dopo l'elemento PFX potrebbe dare risultati errati in %s riga %dDifferenza con VimFlag combinazione diverso in blocco affissi continuo in %s riga %d: %sDirezioneDirectoryDirectory	*.nothing
Vuoi davvero riscriverloFatto!Doppio ; nella lista di variabiliGi�Riga /encoding= duplicata ignorata in %s riga %d: %sRiga /regions= duplicata ignorata in %s riga %d: %sAffisso duplicato in %s riga %d: %sCarattere duplicato in MAP in %s riga %dNome di campo duplicato: %sParola duplicata in %s riga %d: %sE100: Non c'� nessun altro buffer in modalit� 'diff'E101: Pi� di due buffer in modalit� 'diff', non so quale usareE102: Non riesco a trovare il buffer: "%s"E103: Il buffer "%s" non � in modalit� 'diff'E104: Escape not ammesso nei digrammiE105: Uso di :loadkeymap fuori da un file di comandiE107: Mancano parentesi: %sE108: Variabile inesistente: "%s"E109: Manca ':' dopo '?'E10: \ dovrebbe essere seguito da /, ? oppure &E110: Manca ')'E111: Manca ']'E112: Nome Opzione mancante: %sE113: Opzione inesistente: %sE114: Manca '"': %sE115: Manca apostrofo: %sE116: Argomenti non validi per la funzione: %sE117: Funzione sconosciuta: %sE118: Troppi argomenti per la funzione: %sE119: La funzione: %s richiede pi� argomentiE11: Non valido nella finestra comandi; <INVIO> esegue, CTRL-C ignoraE120: Uso di <SID> fuori dal contesto di uno script: %sE121: Variabile non definita: %sE122: La funzione %s esiste gi�, aggiungi ! per sostituirlaE123: Funzione non definita: %sE124: Manca '(': %sE125: Argomento non ammesso: %sE126: Manca :endfunctionE127: Non posso ridefinire la funzione %s: � in usoE128: Il nome funzione deve iniziare con maiuscola o "s:": %sE129: Nome funzione necessarioE12: Comando non ammesso da exrc/vimrc nella dir. in uso o nella ricerca tagE130: Funzione sconosciuta: %sE131: Non posso eliminare la funzione %s: � in usoE132: Nidificazione della chiamata di funzione maggiore di 'maxfuncdepth'E133: :return fuori da una funzioneE134: Movimento di righe verso se stesseE135: *Filter* Gli autocomandi non devono modificare il buffer in usoE136: viminfo: Troppi errori, ignoro il resto del fileE137: File viminfo "%s" inaccessibile in scritturaE138: Non riesco a scrivere il file viminfo %s!E139: File gi� caricato in un altro bufferE13: File esistente (aggiungi ! per riscriverlo)E140: Usa ! per scrivere il buffer incompletoE141: Manca nome file per il buffer %ldE142: File non scritto: Scrittura inibita da opzione 'write'E143: Gli autocomandi hanno inaspettatamente cancellato il nuovo buffer %sE144: argomento non-numerico a :zE145: Comandi Shell non permessi in rvimE146: Le espressioni regolari non possono essere delimitate da lettereE147: :global non pu� essere usato ricorsivamente con un intervalloE148: Manca espressione regolare nel comando 'global'E149: Spiacente, nessun aiuto per %sE14: Indirizzo non validoE150: %s non � una directoryE151: Nessuna corrispondenza: %sE152: Non posso aprire %s in scritturaE153: Non riesco ad aprire %s in letturaE154: Tag duplicato "%s" nel file %s/%sE155: 'sign' sconosciuto: %sE156: Manca nome 'sign'E157: ID 'sign' non valido: %ldE158: Nome buffer non valido: %sE159: Manca numero 'sign'E15: Espressione non valida: %sE160: Comando 'sign' sconosciuto: %sE161: Breakpoint %s non trovatoE162: Buffer "%s" non salvato dopo modificaE163: C'� un solo file da elaborareE164: Non posso andare davanti al primo fileE165: Non posso oltrepassare l'ultimo fileE166: Non posso aprire il file collegato ('linked') in scritturaE167: :scriptencoding usato fuori da un file di comandiE168: :finish usato fuori da file di comandiE169: Comando troppo ricorsivoE16: Intervallo non validoE170: Manca :endforE170: Manca :endwhileE171: Manca :endifE172: Ammesso un solo nome fileE173: ancora %ld file da elaborareE173: ancora 1 file da elaborareE174: Il comando esiste gi�: aggiungi ! per sostituirloE175: Nessun attributo specificatoE176: Numero di argomenti non validoE177: Non si pu� specificare due volte il contatoreE178: Valore predefinito del contatore non validoE179: argomento necessario per -addrE179: argomento necessario per -completeE17: "%s" � una directoryE180: Tipo di indirizzo non valido: %sE180: Valore %s non valido per 'complete'E181: Attributo non valido: %sE182: Nome comando non validoE183: I comandi definiti dall'utente devono iniziare con lettera maiuscolaE184: Comando definito dall'utente %s inesistenteE185: Non riesco a trovare schema colore '%s'E186: Non c'� una directory precedenteE187: SconosciutoE188: Informazioni posizione finestra non disponibili su questa piattaformaE189: "%s" esiste (aggiungi ! per eseguire comunque)E18: Caratteri non previsti in :letE190: Non riesco ad aprire "%s" in scritturaE191: L'argomento deve essere una lettera, oppure un apice/apice retroversoE192: Uso ricorsivo di :normal troppo estesoE193: :endfunction non contenuto in una funzioneE194: Nessun nome file alternativo da sostituire a '#'E195: Non posso aprire il file viminfo in letturaE196: Digrammi non supportati in questa versioneE197: Non posso impostare lingua a "%s"E198: cmd_pchar dopo la fine del comandoE199: Finestra attiva o buffer cancellatoE19: 'Mark' con numero riga non validoE200: Gli autocomandi *ReadPre hanno reso il file illeggibileE201: Gli autocomandi *ReadPre non devono modificare il buffer in usoE202: La conversione ha reso il file illeggibile!E203: Buffer in scrittura cancellato o scaricato dagli autocomandiE204: L'autocomando ha modificato numero righe in maniera imprevistaE205: Patchmode: non posso salvare il file originaleE206: patchmode: non posso alterare il file vuoto originaleE207: Non riesco a cancellare il file di backupE208: Errore in scrittura di "%s"E209: Errore in chiusura di "%s"E20: 'Mark' non impostatoE210: Errore in lettura di "%s"E211: Il file "%s" non esiste pi�E212: Non posso aprire il file in scritturaE213: Non riesco a convertire (aggiungi ! per scrivere senza conversione)E214: Non riesco a trovare un file 'temp' su cui scrivereE215: Carattere non ammesso dopo *: %sE216: Evento inesistente: %sE216: Evento o gruppo inesistente: %sE217: Non posso eseguire autocomandi for TUTTI gli eventiE218: nidificazione dell'autocomando troppo estesaE219: Manca {.E21: Non posso fare modifiche, 'modifiable' � inibitoE220: Manca }.E222: Aggiunto al buffer di letturaE223: mapping ricorsivoE224: una abbreviazione globale gi� esiste per %sE225: un mapping globale gi� esiste per %sE226: una abbreviazione gi� esiste per %sE227: un mapping gi� esiste per %sE228: makemap: modo non consentitoE229: Non posso inizializzare la GUIE22: Script troppo nidificatiE230: Non posso leggere da "%s"E231: 'guifontwide' non validoE232: Non riesco a creare 'BalloonEval' con sia messaggio che callbackE233: non riesco ad aprire lo schermoE234: Fontset sconosciuto: %sE235: Font sconosciuto: %sE236: Font "%s" non di larghezza fissaE237: Scelta stampante non riuscitaE238: Errore durante stampa: %sE239: Testo 'sign' non valido: %sE23: Nessun file alternatoE240: Manca connessione con server VimE241: Impossibile inviare a %sE243: Argomento non supportato: "-%s"; Usa la versione OLE.E244: Nome di charset non ammesso "%s" nel fonte di nome "%s"E244: Nome di qualit� non ammesso "%s" nel font di nome "%s"E245: Carattere non ammesso '%c' nel font di nome "%s"E246: L'autocomando 'FileChangedShell' ha cancellato il bufferE247: non esiste server registrato con nome "%s"E248: Fallito invio comando a programma destinatarioE24: Abbreviazione inesistenteE250: Mancano descrizioni per i seguenti caratteri nel font: %sE251: Propriet� registry relative a VIM non adeguate.  Cancellate!E252: Nome fontset: %sE253: Nome fontset: %sE254: Non riesco ad allocare il colore %sE255: Errore -- non sono riuscito a leggere i dati del 'sign'!E256: ERRORE processore HangulE257: cstag: tag non trovatoE258: Impossibile inviare al clientE259: nessuna corrispondenza trovata per la richiesta cscope %s di %sE25: GUI non utilizzabile: Non abilitata in compilazioneE261: connessione cscope %s non trovataE262: errore leggendo connessione cscope %ldE263: Spiacente, comando non disponibile, non riesco a caricare libreria programmi Python.E264: Python: Errore di inizializzazione oggetti I/OE265: $_ deve essere un'istanza di StringE266: Spiacente, comando non disponibile, non riesco a caricare libreria programmi Ruby.E267: return imprevistoE268: next imprevistoE269: break imprevistoE26: Ebraico non utilizzabile: Non abilitato in compilazione
E270: redo imprevistoE271: retry fuori da clausola rescueE272: eccezione non gestitaE273: tipo sconosciuto di salto nel programma %dE277: Non riesco a leggere una risposta del serverE27: Farsi non utilizzabile: Non abilitato in compilazione
E280: ERRORE FATALE TCL: reflist corrotta!? Si prega notificare a vim-dev@vim.orgE282: Non posso leggere da "%s"E283: Nessun mark corrispondente a "%s"E284: Non posso assegnare valori ICE285: Creazione di un contesto di input fallitaE286: Apertura 'input method' fallitaE287: Avviso: Non posso assegnare IM a 'destroy callback'E288: 'input method' non sopporta alcuno stileE289: 'input method' non supporta il mio tipo di preeditE28: Nome di gruppo di evidenziazione inesistente: %sE293: il blocco non era riservatoE294: Errore di posizionamento durante lettura swap fileE295: Errore leggendo swap fileE296: Errore di posizionamento scrivendo swap fileE297: Errore scrivendo swap fileE298: Non riesco a leggere blocco numero 0?E298: Non riesco a leggere blocco numero 1?E298: Non riesco a leggere blocco numero 2?E299: Valorizzazione Perl vietata in ambiente protetto senza il modulo SafeE29: Ancora nessun testo inseritoE300: Lo swap file esiste gi� (un link simbolico?)E301: Ahim�, lo swap file � perduto!!!E302: Non riesco a rinominare lo swap fileE303: Non riesco ad aprile lo swap file per "%s", recupero impossibileE304: ml_upd_block0(): Non riesco a leggere blocco 0??E305: Nessun swap file trovato per %sE306: Non riesco ad aprire %sE307: %s non sembra uno swap file VimE308: Avviso: il file originale pu� essere stato modificato nel frattempoE309: Impossibile leggere blocco 1 da %sE30: Nessuna riga comandi precedenteE310: ID del Blocco 1 errato (che %s non sia un .swp file?)E311: Recupero InterrottoE312: Errori durante recupero; controlla righe che iniziano con ???E313: Non posso preservare, manca swap fileE314: Preservazione fallitaE315: ml_get: numero riga non valido: %ldE316: ml_get: non riesco a trovare la riga %ldE317: ID blocco puntatori erratoE317: ID blocco puntatori errato 2E317: ID blocco puntatori errato 3E317: ID blocco puntatori errato 4E318: Aggiornati troppi blocchi?E319: Spiacente, comando non disponibile in questa versioneE31: Mapping inesistenteE320: Non riesco a trovare la riga %ldE321: Non riesco a ri-caricare "%s"E322: numero riga non ammissibile: %ld dopo la fineE323: contatore righe errato nel blocco %ldE324: Non riesco ad aprire file PostScript di outputE325: ATTENZIONEE326: Trovati troppi swap fileE327: Parte del percorso di questo elemento di Menu non � un sotto-MenuE328: I Menu esistono solo in un'altra modalit�E329: Nessun Menu "%s"E32: Manca nome fileE330: Il percorso del Menu non deve condurre a un sotto-MenuE331: Non devi aggiungere elementi di Menu direttamente alla barra MenuE332: Il separatore non pu� far parte di un percorso di MenuE333: Il percorso Menu deve condurre ad un elemento MenuE334: Menu non trovato: %sE335: Menu non definito per la modalit� %sE336: Il percorso Menu deve condurre ad un sotto-MenuE337: Menu non trovato - controlla nomi MenuE338: Spiacente, niente esplorazione file in modalit� consoleE339: Espressione troppo lungaE33: Nessuna espressione regolare precedente di 'substitute'E340: La riga sta diventando troppo lungaE341: Errore interno: lalloc(%ld, )E342: Non c'� pi� memoria! (stavo allocando %lu byte)E343: Percorso non valido: '**[numero]' deve essere a fine percorso o essere seguito da '%s'.E344: Non riesco a trovare la directory "%s" nel 'cdpath'E345: Non riesco a trovare il file "%s" nel percorsoE346: Nessun altra directory "%s" trovata nel 'cdpath'E347: Nessun altro file "%s" trovato nel percorsoE348: Nessuna stringa sotto il cursoreE349: Nessun identificativo sotto il cursoreE34: Nessun comando precedenteE350: Non posso creare piegatura con il 'foldmethod' in usoE351: Non posso cancellare piegatura con il 'foldmethod' in usoE352: Non posso togliere piegature con il 'foldmethod' in usoE353: Niente nel registro %sE354: Nome registro non valido: '%s'E355: Opzione inesistente: %sE356: ERRORE get_varpE357: 'langmap': Manca carattere corrispondente per %sE358: 'langmap': Caratteri in pi� dopo il ';': %sE359: Impostazione modalit� schermo non supportataE35: Nessuna espressione regolare precedenteE360: Non posso eseguire lo shell con l'opzione -fE363: l'espressione usa troppa memoria rispetto a 'maxmempattern'E364: Chiamata a libreria fallita per "%s()"E365: Non riesco ad aprire file PostScriptE367: Gruppo inesistente: "%s"E369: elemento non valido in %s%%[]E36: Manca spazioE370: Non riesco a caricare la libreria %sE371: Comando non trovatoE372: Troppi %%%c nella stringa di 'format'E373: %%%c imprevisto nella stringa di 'format'E374: Manca ] nella stringa di 'format'E375: %%%c non supportato nella stringa di 'format'E376: %%%c non valido nel prefisso della stringa di 'format'E377: %%%c non valido nella stringa di 'format'E378: 'errorformat' non contiene alcun modelloE379: Nome directory mancante o nulloE37: Non salvato dopo l'ultima modificaE37: Non salvato dopo modifica (aggiungi ! per eseguire comunque)E380: Al fondo dello stack di quickfixE381: In cima allo stack di quickfixE382: Non posso scrivere, l'opzione 'buftype' � impostataE383: Stringa di ricerca non valida: %sE384: la ricerca ha raggiunto la CIMA senza successo per: %sE385: la ricerca ha raggiunto il FONDO senza successo per: %sE386: '?' o '/' atteso dopo ';'E387: Corrispondenza nella riga correnteE388: Non sono riuscito a trovare la definizioneE389: Non sono riuscito a trovare il modelloE38: Argomento nulloE390: Argomento non ammesso: %sE391: 'cluster' sintattico inesistente: %sE392: 'cluster' sintattico inesistente: %sE393: group[t]here non ammesso quiE394: Elemento di 'region' non trovato per %sE395: contiene argomenti non accettati quiE397: Nome file necessarioE398: Manca '=': %sE399: Argomenti non sufficienti per: 'syntax region' %sE39: Mi aspettavo un numeroE400: Nessun 'cluster' specificatoE401: Delimitatore di espressione non trovato: %sE402: Spazzatura dopo espressione: %sE403: syntax sync: espressione di continuazione riga specificata due volteE404: Argomenti non validi: %sE405: Manca '=': %sE406: Argomento nullo: %sE407: %s non consentito quiE408: %s deve venire per primo nella lista 'contains'E409: Nome gruppo sconosciuto: %sE40: Non riesco ad aprire il file errori %sE410: Sotto-comando :syntax non valido: %sE411: gruppo evidenziazione non trovato: %sE412: Argomenti non sufficienti: ":highlight link %s"E413: Troppi argomenti: ":highlight link %s"E414: 'group' ha impostazioni, 'highlight link' ignoratoE415: segno '=' inatteso: %sE416: manca segno '=': %sE417: manca argomento: %sE418: Valore non ammesso: %sE419: colore di testo sconosciutoE41: Non c'� pi� memoria!E420: colore di sfondo sconosciutoE421: Numero o nome di colore non riconosciuto: %sE422: codice terminale troppo lungo: %sE423: Argomento non ammesso: %sE424: Troppi gruppi evidenziazione differenti in usoE425: Non posso andare prima del primo tag corrispondenteE426: tag non trovato: %sE427: C'� solo un tag corrispondenteE428: Non posso andare oltre l'ultimo tag corrispondenteE429: Il file "%s" non esisteE42: Nessun ErroreE430: Percorso tag file troncato per %s
E431: Errore di formato nel tag file "%s"E432: Tag file non ordinato alfabeticamente: %sE433: Nessun tag fileE434: Non riesco a trovare modello tagE435: Non riesco a trovare tag, sto solo tirando a indovinare!E436: Nessuna descrizione per "%s" in 'termcap'E437: capacit� "cm" del terminale necessariaE438: u_undo: numeri righe erratiE439: lista 'undo' non validaE43: Stringa di confronto danneggiataE440: riga di 'undo' mancanteE441: Non c'� una finestra di pre-visualizzazioneE442: Non riesco a dividere ALTO-SX e BASSO-DX contemporaneamenteE443: Non posso ruotare quando un'altra finestra � divisa in dueE444: Non riesco a chiudere l'ultima finestraE445: Altre finestre contengono modificheE446: Nessun nome file sotto il cursoreE447: Non riesco a trovare il file "%s" nel percorsoE448: Non posso caricare la funzione di libreria %sE449: Ricevuta un'espressione non validaE44: Programma 'regexp' corrottoE455: Errore in scrittura a file PostScript di outputE456: Non trovo file risorse PostScript "%s.ps"E456: Non trovo file risorse PostScript "cidfont.ps"E456: Non trovo file risorse PostScript "prolog.ps"E456: Non riesco ad aprire il file "%s"E457: Non riesco a leggere file risorse PostScript "%s"E459: Non posso tornare alla directory precedenteE45: file in sola lettura (aggiungi ! per eseguire comunque)E460: La 'fork' sulla risorsa verrebbe persa (aggiungi ! per eseguire comunque)E461: Nome di variabile non ammesso: %sE462: Non riesco a preparare per ri-caricare "%s"E463: Regione protetta, impossibile modificareE464: Uso ambiguo di comando definito dall'utenteE465: :winsize richiede due argomenti numericiE466: :winpos richiede due argomenti numericiE467: Il completamento personalizzato richiede un argomento di funzioneE468: Argomento di completamento consentito solo per completamento personalizzatoE469: flag cscopequickfix %c non valido per %cE46: Non posso cambiare la variabile read-only "%s"E470: Comando finito maleE471: Argomento necessarioE472: Comando fallitoE473: Errore internoE474: Argomento non validoE475: Argomento non valido: %sE476: Comando non validoE477: ! non consentitoE478: Non lasciarti prendere dal panico!E479: Nessuna corrispondenzaE47: Errore leggendo il file erroriE480: Nessuna corrispondenza: %sE481: Nessun intervallo consentitoE482: Non riesco a creare il file %sE483: Non riesco ad ottenere nome file 'temp'E484: Non riesco ad aprire il file %sE485: Non riesco a leggere il file %sE486: Espressione non trovata: %sE487: L'argomento deve essere positivoE488: Caratteri in pi� a fine comandoE48: Non ammesso in ambiente protettoE490: Non trovo alcuna piegaturaE492: Non � un comando dell'editorE493: Intervallo rovesciatoE494: Usa w oppure w>>E495: nessun file di autocomandi da sostituire per "<afile>"E496: nessun numero di buffer di autocomandi da sostituire per "<abuf>"E497: nessun nome di autocomandi trovato da sostituire per "<amatch>"E498: nessun nome di file :source trovato da sostituire per "<sfile>"E499: Un nome di file nullo per '%' o '#', va bene solo con ":p:h"E49: Quantit� di 'scroll' non validaE500: Il valore � una stringa nullaE501: Alla fine-fileE505: "%s" � in sola lettura (aggiungi ! per eseguire comunque)E505: %s � in sola lettura (aggiungi ! per eseguire comunque)E506: Non posso scrivere sul file di backup (aggiungi ! per eseguire comunque)E507: Errore in chiusura sul file di backup (aggiungi ! per eseguire comunque)E508: Non riesco a leggere il file di backup (aggiungi ! per eseguire comunque)E509: Non posso creare il file di backup (aggiungi ! per eseguire comunque)E50: Troppe \z(E510: Non posso fare il file di backup (aggiungi ! per eseguire comunque)E511: netbeans gi� connessoE512: Chiusura fallitaE513: errore in scrittura, conversione fallita (rendere 'fenc' nullo per eseguire comunque)E513: errore in scrittura, conversione fallita alla riga %ld (rendere 'fenc' nullo per eseguire comunque)E514: errore in scrittura ('File System' pieno?)E515: Nessun buffer scaricatoE516: Nessun buffer tolto dalla listaE517: Nessun buffer cancellatoE518: Opzione inesistenteE519: Opzione non supportataE51: Troppe %s(E520: Non consentito in una 'modeline'E521: Ci vuole un numero dopo =E521: Ci vuole un numero: &%s = '%s'E522: Non trovato in 'termcap'E523: Non consentito quiE524: Manca ':'E525: Stringa nullaE526: Manca numero dopo <%s>E527: Manca virgolaE528: Devi specificare un valore 'E529: Non posso assegnare a 'term' il valore 'stringa nulla'E52: Senza riscontro: \z(E530: Non posso modificare 'term' mentre sono nella GUIE531: Usa ":gui" per far partire la GUIE533: non posso selezionare 'wide font'E534: 'Wide font' non validoE535: Carattere non ammesso dopo <%c>E536: virgola mancanteE537: 'commentstring' deve essere nulla o contenere %sE538: Manca supporto mouseE539: Carattere non ammesso <%s>E53: Senza riscontro: %s%%(E540: Espressione non terminataE541: troppi elementiE542: gruppi sbilanciatiE543: Codepage non validoE544: File keymap non trovatoE545: Manca ':'E546: Modalit� non validaE547: Forma del mouse non validaE548: aspettavo un numeroE549: Percentuale non validaE54: Senza riscontro: %s(E550: Manca ':'E551: Componente non validoE552: aspettavo un numeroE553: Non ci sono pi� elementiE554: Errore sintattico in %s{...}E555: al fondo dello stack dei tagE556: in cima allo stack dei tagE557: Non posso aprire file 'termcap'E558: Descrizione terminale non trovata in 'terminfo'E559: Descrizione terminale non trovata in 'termcap'E55: Senza riscontro: %s)E560: Uso: cs[cope] %sE561: tipo di ricerca cscope sconosciutaE562: Uso: cstag <ident>E563: errore statE563: errore stat(%s): %dE564: %s non � una directory o un database cscope validoE566: Non riesco a creare pipes cscopeE567: nessuna connessione cscopeE568: database cscope duplicato, non aggiuntoE570: errore irreparabile in cs_manage_matchesE571: Spiacente, comando non disponibile, non riesco a caricare libreria programmi Tcl.E572: codice di uscita %dE573: Identificativo di server non valido: %sE574: Tipo di registro sconosciuto: %dE579: nidificazione di :if troppo estesaE580: :endif senza :ifE581: :else senza :ifE582: :elseif senza :ifE583: :else multipliE584: :elseif dopo :elseE585: nidificazione di :while/:for troppo estesaE586: :continue senza :while o :forE587: :break senza :while o :forE588: :endfor senza :forE588: :endwhile senza :whileE589: 'backupext' e 'patchmode' sono ugualiE590: Una finestra di pre-visualizzazione esiste gi�E591: 'winheight' non pu� essere inferiore a 'winminheight'E592: 'winwidth' non pu� essere inferiore a 'winminwidth'E593: Servono almeno %d righeE594: Servono almeno %d colonneE595: contiene carattere 'wide' o non-stampabileE596: Font non validiE597: non posso selezionare fontsetE598: Fontset non validoE599: Il valore di 'imactivatekey' non � validoE59: Carattere non ammesso dopo %s@E600: Manca :endtryE601: nidificazione di :try troppo estesaE602: :endtry senza :tryE603: :catch senza :tryE604: :catch dopo :finallyE605: Eccezione non intercettata: %sE606: :finally senza :tryE607: :finally multipliE608: Impossibile lanciare eccezioni con prefisso 'Vim'E609: Errore cscope: %sE60: Troppi %s{...}s complessiE612: Troppi 'sign' definitiE613: Font per stampante sconosciuto: %sE614: vim_SelFile: non posso tornare alla directory in usoE615: vim_SelFile: non riesco ad ottenere la directory in usoE616: vim_SelFile: non riesco a trovare il font %sE617: Non pu� essere cambiato nella GUI GTK+ 2E618: file "%s" non � un file di risorse PostScriptE619: file "%s" non � un file di risorse PostScript supportatoE61: %s* nidificatoE620: Impossibile convertire a codifica di stampa "%s"E621: il file di risorse "%s" ha una versione sbagliataE622: Non riesco a fare fork per cscopeE623: Non riesco a generare processo cscopeE624: Non riesco ad aprire il file "%s"E625: impossibile aprire database cscope: %sE626: impossibile leggere informazioni sul database cscopeE62: %s%c nidificatoE630: %s(): scrittura in mancanza di connessioneE631: %s(): scrittura non riuscitaE63: uso non valido di \_E64: %s%c senza nulla primaE655: Troppi link simbolici (circolarit�?)E658: Connessione NetBeans persa per il buffer %ldE659: Python non pu� essere chiamato ricorsivamenteE65: Riferimento all'indietro non ammessoE661: Spiacente, nessun aiuto '%s' per %sE662: All'inizio della lista modificheE663: Alla fine della lista modificheE664: lista modifiche assenteE665: Non posso inizializzare la GUI, nessun font valido trovatoE666: compilatore non supportato: %sE667: Fsync fallitoE668: Modalit� errata di accesso a file info connessione NetBeans: "%s"E669: Carattere non stampabile in un nome di gruppoE66: \z( non consentito quiE670: Codifiche diverse fra file di aiuto nella stessa lingua: %sE671: Non trovo il titolo della finestra "%s"E672: Non posso aprire la finestra in un'applicazione MDIE673: Codifica e set di caratteri multi-byte non compatibili.E674: printmbcharset non pu� essere nullo con codifica multi-byte.E675: Font predefinito non specificato per stampa multi-byte.E676: Nessun autocomando corrispondente per buffer acwriteE677: Errore in scrittura su file temporaneoE678: Carattere non valido dopo %s%%[dxouU]E679: ciclo ricorsivo nel caricamento di syncolor.vimE67: \z1 ecc. non consentiti quiE680: <buffer=%d>: numero buffer non validoE681: Buffer non caricatoE682: Espressione o delimitatore di ricerca non validiE683: Nome file mancante o espressione non validaE684: indice lista fuori intervallo: %ldE685: Errore interno: %sE686: L'argomento di %s deve essere una ListaE687: Destinazioni pi� numerose degli elementi di ListaE688: Destinazioni meno numerose degli elementi di ListaE689: Posso indicizzare solo una Lista o un DizionarioE68: Carattere non ammesso dopo \zE690: Manca "in" dopo :forE691: Posso confrontare una Lista solo con un'altra ListaE692: Operazione non valida per ListeE694: Operazione non valida per FuncrefE695: Non posso indicizzare un FuncrefE696: Manca virgola nella Lista: %sE697: Manca ']' a fine Lista: %sE698: Variabile troppo nidificata per poterla copiareE699: Troppi argomentiE69: Manca ] dopo %s%%[E700: Funzione sconosciuta: %sE701: Tipo non valido per len()E702: Funzione confronto nel sort non riuscitaE703: Uso di Funcref come NumeroE704: Il nome della variabile Funcref deve iniziare con una maiuscola: %sE705: Nome di variabile in conflitto con una funzione esistente: %sE707: Nome funzione in conflitto con la variabile: %sE708: [:] deve essere alla fineE709: [:] necessita un valore ListaE70: %s%%[] vuotoE710: Il valore Lista ha pi� elementi della destinazioneE711: Il valore Lista non ha elementi sufficientiE712: L'argomento di %s deve essere una Lista o un DizionarioE713: Non posso usare una chiave nulla per il DizionarioE714: � necessaria una ListaE715: � necessario un DizionarioE716: Chiave assente dal Dizionario: %sE717: C'� gi� la voce nel DizionarioE718: Funcref necessarioE719: Non posso usare [:] con un DizionarioE71: Carattere non ammesso dopo %s%%E720: Manca ':' nel Dizionario: %sE721: Chiave duplicata nel Dizionario: "%s"E722: Manca virgola nel Dizionario: %sE723: Manca '}' a fine Dizionario: %sE724: variabile troppo nidificata per la visualizzazioneE725: Chiamata di funzione dict in assenza di Dizionario: %sE726: Incremento indice a zeroE727: Indice iniziale superiore a quello finaleE728: Uso di Dizionario come NumeroE729: uso di Funcref come StringaE72: Errore durante chiusura swap fileE730: uso di Lista come StringaE731: uso di Dizionario come StringaE732: Uso di :endfor con :whileE733: Uso di :endwhile con :forE734: Tipo di variabile errato per %s=E735: Posso confrontare un Dizionario solo con un altro DizionarioE736: Operazione non valida per DizionariE737: Chiave gi� esistente: %sE738: Non riesco a elencare le variabili per %sE739: Non posso creare la directory: %sE73: tag stack ancora vuotoE740: Troppi argomenti per la funzione: %sE741: Valore di %s non modificabileE742: Non riesco a cambiare il valore di %sE743: variabile troppo nidificata per lock/unlockE744: NetBeans non permette modifiche a file di sola letturaE745: Uso di Lista come NumeroE746: Il nome funzione non corrisponde al nome file dello script: %sE747: Non posso cambiare directory, buffer modificato (aggiungi ! per eseguire comunque)E748: Nessun registro usato in precedenzaE749: buffer vuotoE74: Comando troppo complessoE750: Usare prima ":profile start {fname}"E751: Il nome del file di output non deve avere il nome di regioneE752: Nessuna sostituzione ortografica precedenteE753: Non trovato: %sE754: Sono supportate fino ad 8 regioniE755: Regione non valida in %sE756: Controllo ortografico non abilitatoE757: Questo non sembra un file ortograficoE758: File ortografico troncatoE75: Nome troppo lungoE760: Nessun contatore parole in %sE761: Errore di formato nel file affissi FOL, LOW o UPPE762: Carattere fuori intervallo in FOL, LOW o UPPE763: Caratteri di parola differenti nei file ortograficiE764: opzione '%s' non impostataE765: 'spellfile' non ha %ld elementiE766: Argomenti non sufficienti per printf()E767: Troppi argomenti per printf()E768: File swap esistente: %s (:silent! per sovrascriverlo)E769: Manca ] dopo %s[E76: Troppe [E770: Sezione non supportata nel file ortograficoE771: File ortografico obsoleto, � necessario aggiornarloE772: Il file ortografico � per versioni di Vim pi� recentiE773: Collegamento simbolico ricorsivo per "%s"E774: opzione 'operatorfunc' non impostataE775: Funzionalit� [eval] non disponibileE776: Nessuna lista locazioniE777: aspettavo Stringa o ListaE778: Questo non sembra un file .sug: %sE779: File .sug obsoleto, � necessario aggiornarlo: %sE77: Troppi nomi fileE780: Il file .sug � per versioni di Vim pi� recenti: %sE781: Il file .sug non corrisponde al file .spl: %sE782: Errore leggendo il file .sug: %sE783: carattere duplicato nell'elemento MAPE784: Non posso chiudere l'ultima linguettaE785: complete() pu� essere usata solo in modalit� inserimentoE786: Intervallo non consentitoE787: Il buffer � variato inaspettatamenteE788: Non si pu� aprire ora un altro bufferE789: Manca ']': %sE78: 'Mark' sconosciutoE790: undojoin non � consentito dopo undoE791: Nessuna keymap per questo tastoE792: Nome menu non validoE793: Nessun altro buffer � modificabile in modalit� 'diff'E794: Non posso impostare la variabile read-only in ambiente protetto: "%s"E795: Non posso cancellare la variabile %sE797: L'autocomando 'SpellFileMissing' ha cancellato il bufferE798: ID riservato per ":match": %ldE799: ID non valido: %ld (dev'essere maggiore o uguale a 1)E79: Non posso espandere 'wildcard'E800: Arabo non utilizzabile: Non abilitato in compilazione
E801: ID gi� utilizzato: %ldE802: ID non valido: %ld (dev'essere maggiore o uguale a 1)E803: ID non trovato: %ldE804: Non si pu� usare '%' con un Numero-a-virgola-mobileE805: Uso di un Numero-a-virgola-mobile come NumeroE806: uso di un Numero-a-virgola-mobile come StringaE807: Numero-a-virgola-mobile atteso come argomento per printf()E808: Ci vuole un Numero o un Numero-a-virgola-mobileE809: #< non disponibile se Vim � compilato senza +evalE80: Errore in scritturaE810: Non riesco a leggere o scrivere file temporaneiE811: Non consentito modificare informazioni del buffer oraE812: Gli autocomandi hanno modificato il buffer o il nome del bufferE813: Non riesco a chiudere la finestra autocomandiE814: Non posso chiudere questa finestra, rimarrebbe solo la finestra autocomandiE815: Spiacente, comando non disponibile, non riesco a caricare librerie programmi MzScheme.E816: Non riesco a leggere output del comando 'patch'E817: uso errato di big/little endian in BlowfishE818: test sha256 fallitoE819: test Blowfish fallitoE81: Uso di <SID> fuori dal contesto di uno scriptE820: sizeof(uint32_t) != 4E821: File cifrato con metodo sconosciutoE822: Non posso aprire il file Undo in lettura: %sE823: Non � un file Undo: %sE824: File Undo incompatibile: %sE825: File Undo corrotto (%s): %sE826: Decifratura fallita del file Undo: %sE827: File Undo cifrato: %sE828: Non posso aprire il file Undo in scrittura: %sE829: errore scrivendo nel file Undo: %sE82: Non riesco ad allocare alcun buffer, esco...E830: Undo numero %ld non trovatoE831: chiamata a bf_key_init() con password nullaE832: File non cifrato con file Undo cifrato: %sE833: %s � cifrato e questa versione di Vim non supporta la cifraturaE834: Conflitto con il valore di 'listchars'E835: Conflitto con il valore di 'fillchars'E836: Python: Impossibile usare :py e :py3 nella stessa sessioneE837: Impossibile usare ora :py3 dopo aver usato :pythonE838: netbeans non � supportato con questa GUIE839: La funzione di completamento ha modificato la finestraE83: Non riesco ad allocare un buffer, uso l'altro...E840: La funzione di completamento ha eliminato del testoE841: Nome riservato, non usabile in un comando definito dall'utenteE842: nessun numero di riga da usare per "<slnum>"E843: Errore aggiornando cifratura dello swap fileE844: valore cchar non validoE845: Memoria insufficiente, la lista parole sar� incompletaE846: Key code non impostatoE847: Troppe inclusioni di sintassiE848: Troppi 'cluster' sintatticiE849: Troppi gruppi di evidenziazione e sintassiE84: Nessun buffer risulta modificatoE850: Nome registro non validoE851: Creazione di un nuovo processo fallita per la GUIE852: Il processo figlio non � riuscito a far partire la GUIE853: Nome argomento duplicato: %sE854: percorso troppo lungo per il completamentoE855: Comando non completato a causa di autocomandiE858: Eval non ha restituito un oggetto python validoE859: Conversione non riuscita dell'oggetto python risultato a un valore vimE85: Non c'� alcun buffer elencatoE862: Non si pu� usare g: quiE864: \%#= pu� essere seguito solo da 0, 1 o 2. Sar� usato il motore automatico E865: (NFA) Fine prematura dell'espressione regolareE866: (NFA regexp) %c fuori postoE867: (NFA) Operatore sconosciuto '\%%%c'E867: (NFA) Operatore sconosciuto '\z%c'E868: Errore nel build di NFA con classe di equivalenza!E869: (NFA) Operatore sconosciuto '\@%c'E86: Non esiste il buffer %ldE870: (NFA regexp) Errore nella lettura dei limiti di ripetizioneE871: (NFA regexp) Non si pu� avere multi dopo multi !E872: (NFA regexp) Troppi '('E873: (NFA regexp) errore di terminazione correttaE874: (NFA) Impossibile riprendere lo stack !E875: (NFA regexp) (Nella conversione da postfix a NFA), troppi stati lasciati sullo stackE876: (NFA regexp) Non c'� spazio per immagazzinare l'intero NFA E877: (NFA regexp) Classe di caratteri non valida: %ldE878: (NFA) Non posso allocare memoria per il zigzag di ramo!E879: (NFA regexp) Troppi \z(E87: Non posso oltrepassare l'ultimo bufferE881: Contatore righe � inaspettatamente cambiatoE882: Funzione confronto in uniq non riuscitaE883: espressione di ricerca e registro dell'espressione non possono contenere due o pi� righeE884: Il nome della funzione non pu� contenere un due punti: %sE885: Impossibile cambiare segno %sE886: Non riesco a rinominare il file viminfo a %s!E887: Spiacente, comando non disponibile, non riesco a caricare il modulo Python locale.E888: (NFA regexp) non riesco a ripetere %sE88: Non posso andare prima del primo bufferE890: Caratteri in pi� dopo ']': %s]%sE891: Uso di Funcref come Numero-a-virgola-mobileE892: Uso di Stringa come Numero-a-virgola-mobileE893: Uso di Lista come Numero-a-virgola-mobileE894: Uso di Dizionario come Numero-a-virgola-mobileE815: Spiacente, comando non disponibile, non riesco a caricare modulo racket/base di MzScheme.E898: socket() in channel_open()E89: Buffer %ld non salvato dopo modifica (aggiungi ! per eseguire comunque)E901: gethostbyname() in channel_open()E902: Non posso commettermi alla portaE903: il comando ricevuto non aveva come argomento una stringaE904: l'ultimo argomento per espressione/chiamata dev'essere numericoE904: il terzo argomento della chiamata dev'essere una ListaE905: recevuto comando non conosciuto: %sE906: canale non apertoE907: Uso di valore speciale come Numero-a-virgola-mobileE908: uso di un valore non valido come StringaE909: Non posso indicizzare una variabile specialeE90: Non riesco a scaricare l'ultimo bufferE910: Uso di Job come NumeroE911: Uso di Job come Numero-a-virgola-mobileE912: non posso usare ch_evalexpr() con un canale grezzo o nlE913: Uso di Canale come NumeroE914: Uso di Canale come Numero-a-virgola-mobileE915: il buffer in_io necessita di impostare in_buf o in_nameE916: job non validoE917: Non posso usare callback con %s()E918: il buffer dev'essere caricato: %sE919: Directory non trovata in '%s': "%s"E91: opzione 'shell' non impostataE920: il file _io necessita di impostare _nameE921: Argomento callback non validoE922: aspettavo un DizionarioE923: Il secondo argomento di function() dev'essere una Lista o un DizionarioE924: La finestra corrente � stata chiusaE925: Il quickfix corrente � stato cambiatoE926: La lista delle locazioni corrente � stata cambiataE927: Azione non valida: '%s'E928: Stringa necessariaE929: Troppi file temporanei viminfo, come %s!E92: Buffer %ld non trovatoE930: Non � possibile usare :redir all'interno di execute()E931: Non riesco a registrare il bufferE932: La funzione di chiusura non novrebbe essere al livello pi� alto: %sE933: Funzione eliminata: %sE934: Impossibile passare a un buffer che non ha un nomeE935: nomeri di sotto-corrispondenza non valido: %dE936: Non posso cancellare il gruppo correnteE937: Tentativo di eliminare un buffer ancora usatoE938: Chiave duplicata in JSON: "%s"E939: Un contatore positivo � necessarioE93: Pi� di una corrispondenza per %sE940: Non riesco a bloccare o sbloccare la variabile %sE941: un server � gi� stato predispostoE942: funzionalit� +clientserver non disponibileE943: Tabella dei comandi da aggiornare, eseguire 'make cmdidxs'E944: Intervallo invertito nella classe di caratteriE945: Intervallo troppo ampio nella classe di caratteriE946: Non posso aprire un terminale mentre ci sono lavori modificabili in esecuzioneE947: Lavoro ancora in esecuzione nel buffer "%s"E948: Lavoro ancora attivoE948: Lavoro ancora in esecuzione (aggiungi! per terminarlo)E94: Nessun buffer corrispondente a %sE95: C'� gi� un buffer con questo nomeE96: Non supporto differenze fra pi� di %ld bufferE97: Non riesco a creare differenzeE98: Non riesco a leggere output del comando 'diff'E99: Buffer corrente non in modalit� 'diff'ERRORE: Elabora FileApri il File in una nuova finestraApri con &VimApri con &molti VimApri con Vim esistente - Apri con un solo &VimApri i(l) file scelto(i) con VimCodifica:Fine funzioneFine del file di comandiImmetti chiave di cifratura: Dimmi numero di swap file da usare (0 per lasciar perdere): Ribatti per conferma la stessa chiave: Entro modalit� Debug.  Batti "cont" per continuare.Entro modalit� Ex.  Batti "visual" per tornare a modalit� Normale.ErroreErrore ed interruzioneErrore creando il processo: Controllate che gvim sia incluso nel vostro percorso (PATH)Errore/i eseguendo %s:File erroriUso stimato di memoria durante esecuzione: %d byteEccezioneEccezione intercettata: %sEccezione scartata: %sEccezione finita: %sEccezione lanciata: %sEseguo %sContatore MAP necessario in %s riga %dContatore REP(SAL) necessario in %s riga %dY o N deve essere presente in %s riga %d: %sEspressioneSotto-corrispondenze esterne:
FLAG dopo l'uso di flags in %s riga %d: %sImpostazione dell'ancora di percorso non riuscita: sys.path_hooks non � una lista
Dovresti fare cos�:
- aggiungere vim.path_hook a vim.path_hooks
- aggiungere vim.VIM_SPECIAL_PATH a sys.path
Impostazione di percorso non riuscita: sys.path non � una Lista
Dovresti aggiungere vim.VIM_SPECIAL_PATH a sys.pathIl file "%s" non esisteFile ulteriormente modificato, non posso usare informazioni di UndoI permessi di "%s" sono di sola lettura.
Questo potrebbe non impedire la scrittura.
Vuoi provare?File preservatoFileFiltroSostituisci (usa '\\' per cercare  un '\')&N Trova il ProssimoTrova il ProssimoStringa di ricerca (usa '\\' per cercare  un '\')Trova cosa:Lettura del file Undo %s effettuataPrima parola duplicata in %s riga %d: %sIl flag non � un numero in %s riga %d: %sIl font '%s' non di larghezza fissaLa larghezza di font%ld non � doppia di quella di font0Larghezza di Font0: %ldFont0: %sLarghezza di Font1: %ldFont1: %sFont:Per opzione %sSpazzatura dopo argomento di opzioneSalve, utente Vim!Aiuta i bambini poveri dell'Uganda!Giunto alla fine del paragrafoERRORE I/O%d parole con caratteri non-ASCII ignorate in %s%d parole con caratteri non-ASCII ignorateRiga lunga ignorata nel tag fileNome di file non ammessoFlag non ammesso in %s riga %d: %sNome registro non ammessoCarattere iniziale non ammessoRiga di Input_Metodi di inserimentoInterruzioneInterruzione: InterrottoArgomento non valido perSpecifica di font non validaN. regione non valido in %s riga %d: %sValore di FLAG non valido in %s riga %d: %sLe chiavi non corrispondono!Termina una connessioneLink: � necessaria una Lista o un numeroNon riesco a caricare libreria Lua.Maiuscole/minuscoleCerca solo la parola interaMessaggioManutentore messaggi: Vlad Sandrini <marco@sandrini.biz>Manca '>'Riga FOL/LOW/UPP mancante in %sRiga SOFO%s mancante in %sModificato da Nome:Serve %s versione %ld
Serve Amigados versione 2.04 o successiva
Serve una chiave di cifratura per "%s"NetBeans non permette la scrittura di un buffer non modificatoNuova linguettaNoNessun elemento sintattico definito per questo bufferNon trovo l'abbreviazioneNessun 'breakpoint' definitoManca displayNessun display: Invio di espressione fallito.
Nessun elementoNessun file inclusoNon trovo il mappingNessun mark impostatoNessuna corrispondenza al cursore, cerco la prossimaNessun autocomando corrispondenteNessun file elaborato in precedenzaNon posso creare un file di swapManca testo da stampare'undo' non pi� possibile; continuo comunqueNon trovo comandi definiti dall'utenteNon UtilizzatoMemoria insufficiente per impostarlo, recupero memoria fallito!Non leggo file Undo, appartiene a un altro utente: %sNessuna modifica, Undo impossibileNumero di parole dopo soundfolding: %ldOKApri File dialogoApri linguetta...Apri linguetta...Apertura visualizzazione X fallitaApertura visualizzazione X: tempo scadutoAttivazione visualizzazione X ha richiesto %ld msecFile originale "%s"Riscrittura del file esistente "%s"?Pagina %dScrittura parziale disabilitata per i buffer di NetBeansFile di differenzePercorso file troppo lungo!Nome percorso:Espressione trovata su ogni riga: %sEspressione non trovataEspressione non trovata: %sEseguo soundfolding...Premi INVIO o un comando per proseguireRichiesta di stampa inviata.Stampato: %sStampato: '%s'Stampa non completataSto stampando pagina %d (%d%%)Cerca un modelloDomandaLettura file affissi %s ...Rilettura file ortografico...Lettura file dizionario %s ...Leggo da 'stdin'...Lettura file ortografico "%s"Lettura file Undo: %sLettura file viminfo "%s"%s%s%sLettura file parole %s ...Ripristino effettuato. Il contenuto del buffer coincide con quello del file.Recupero completato. Dovresti controllare se va tutto bene.Reinizializza tutte le connessioniSostituisci&A Sostituisci TuttoSostituisci TuttoSostituisci con:Eseguo in modalit� compatibile ViEsecuzione senza modalit�: solo inserimentoSalva con NomeSalva File dialogoSalva RedirezioneSalva SessioneSalva SetupSalva VedutaSalvare modifiche a "%s"?Scansione dizionario: %sScandisco file incluso: %sScansione tag.Scansione: %sScrollbar Widget: Non riesco a ottenere geometria del 'thumb pixmap'.Stringa di RicercaCerco "%s"Cerco "%s" in "%s"Cerco nel file incluso: %sRicerca nel tag file %sVedere ":help E312" per ulteriori informazioni.Vedere ":help W11" per ulteriori informazioni.Vedere ":help W12" per ulteriori informazioni.Vedere ":help W16" per ulteriori informazioni.Scelta Directory dialogoSelezionate %s%ld di %ld Righe; %lld di %lld Parole; %lld di %lld Caratt.Selezionate %s%ld di %ld Righe; %lld di %lld Parole; %lld di %lld Caratt.; %lld di %lld ByteSelezioneInvio a stampante...Visualizza connessioniMostra dimensione in PuntiVisualizza questo messaggioSegni per %s:Dimensione:Ometto scrittura del file Undo, non ci sono modificheSpiacente, non trovo file di aiuto "%s"Spiacente, nessun suggerimentoSpiacente, solo %ld suggerimentiSpiacente, comando non disponibile, non riesco a caricare libreria programmi Perl.Esegui script VimSponsorizza lo sviluppo di Vim!Dimensione stack aumentataStile:Sostituzione Swap file "Il file swap "%s" esiste gi�, sovrascrivo?Lo swap file esiste gi�!Il file swap � cifrato: "%s"Swap file trovati:Passo alla ricerca di RE col vecchio metodo: Linguetta %dTogli questo MenuTerminaleTerminale-terminatoProva visualizzazione X fallitaGrazie per aver volato con VimIl file � stato creato il L'unica corrispondenzaVim non compilato con funzionalit� 'diff'.Questo comando cscope non gestisce la divisione delle schermo.
Troppi argomenti "+command", "-c command" o "--cmd command"Troppi flag compostiTroppi argomenti di editTroppi suffissiTroppi suffissi e/o flag compostiTroppe regioni in %s riga %d: %sCimConteggio totale delle parole: %dTesto in eccesso in %s riga %d: %sBatti  :qa! e premi <Invio> per ignorare le modifiche e uscire da VimInserire numero e <Invio> (vuoto per annullare): Inserire un numero e <Invio> o fare clic (lasciare vuoto per annullare): Non riesco a leggere il blocco 0 da Non riesco a registrare un nome di server comandoSconosciutoArgomento di opzione sconosciutoFlag non riconosciuti in %s riga %d: %sElemento non riconosciuto o duplicato in %s riga %d: %sSenza NomeSuUsa Vim versione 3.0.
Uso CUT_BUFFER0 invece che una scelta nullaUso la chiave di cifratura del file swap per il file di testo.
Uso swap file "%s"VIM - ATTENZIONEVIM - Sostituisci...VIM - Cerca...VIM - Vi IMproved (VI Migliorato)Errore VIMVIM: Non riesco ad aprire la finestra!
VIMRUN.EXE non trovato nel tuo $PATH.
I comandi esterni non faranno una pausa dopo aver finito l'esecuzione.
Vedi  :help win32-vimrun  per ulteriori informazioni.Vim - Selettore FontVim E458: Non riesco ad allocare elemento di colormap, possibili colori erratiAvviso da VimDialogo VimErrore VimErrore Vim: ~aVim esce con %d
Vim � 'open source' e pu� essere distribuito liberamenteVim: Intercettato evento %s
Vim: Errore leggendo l'input, esco...
Vim: Errore: Avvio di gvim da NetBeans non riuscito
Vim: Errore: Questa versione di Vim non funziona in un terminale Cygwin
Vim: Finestra principale distrutta inaspettatamente
Vim: Leggo da 'stdin'...
Vim: Ricevuta richiesta "die" dal session manager
Vim: Avviso: Input non proveniente da un terminale
Vim: Avviso: Output non diretto a un terminale
W10: Avviso: Modifica a un file in sola-letturaW11: Avviso: File "%s" modificato dopo l'aperturaW12: Avviso: File "%s" modificato su disco ed anche nel buffer di VimW13: Avviso: Il file "%s" risulta creato dopo l'aperturaW14: Avviso: Superato limite della lista dei nomi di fileW15: Avviso: Separatore di riga errato, forse manca ^MW16: Avviso: Modo File "%s" modificato dopo l'aperturaW17: Arabo richiede UTF-8, esegui ':set encoding=utf-8'W18: Carattere non ammesso in un nome di gruppoW19: Cancello augroup, ma � ancora in usoW20: Versione richiesta di python 2.x non supportata, ignoro il file: %sW21: Versione richiesta di python 3.x non supportata, ignoro il file: %sW22: Trovato testo dopo :endfunction: %sAVVISO: File modificato dopo essere stato letto!!!AvvisoAvviso: Non trovo lista parole "%s.%s.spl" o "%s.ascii.spl"Avviso: Non trovo lista parole "%s_%s.spl" o "%s_ascii.spl"Avviso: Entrato in altro buffer inaspettatamente (controllare autocomandi)Avviso: Metodo di cifratura debole in uso; vedere :help 'cm'Avviso: specificati sia composizione sia NOBREAKAvviso: regione %s non supportataAvviso: il terminale non � in grado di evidenziareMentre aprivo file "File Undo non sovrascritto, non riesco a leggere: %sNon sovrascritto, non � un file Undo: %sPosizione finestra: X %d, Y %dParola '%.*s' aggiunta a %sParola '%.*s' rimossa da %sParola da un'altra rigaScrivo il file incompleto?Scrivo file ortografico %s ...Scrivo file di suggerimenti %s ...Scrivo file Undo: %sScrivo file viminfo "%s"Valore errato per CHECKCOMPOUNDPATTERN in %s riga %d: %sValore errato per COMPOUNDMIN in %s riga %d: %sValore errato per COMPOUNDRULES in %s riga %d: %sValore errato per COMPOUNDSYLMAX in %s riga %d: %sValore errato per COMPOUNDWORDMAX in %s riga %d: %sXSMP osservazione connessione ICE fallitaXSMP SmcOpenConnection fallita: %sXSMP gestione richiesta 'save-yourself'XSMP ha perso la connessione ICEXSMP apertura connessioneYESS�[ERRORE DI CONVERSIONE alla riga %ld][manca CR][Cancellato][Dispositivo][File troppo grande][Aiuto][BYTE NON VALIDO alla riga %ld][Manca carattere di fine riga][Lista Locazioni][NON convertito][Nuova DIRECTORY][File nuovo][File nuovo][Nuovo][Senza nome][Non salvato dopo l'ultima modifica]
[Non elaborato][Tipo di accesso non consentito][Anteprima][Lista Quickfix][ERRORI IN LETTURA][Sola Lettura][Errori in lettura][Volatile][chiamate] totale re/malloc() %lu, totale free() %lu

[character special][convertito][cifrato][in formato DOS][DOS][fifo/socket][fifo][file ..]       apri file(s) specificati[righe lunghe divise][in formato Mac][Mac][noeol][in sola lettura][socket][in formato Unix][Unix]_Annulla_Chiudi_OK_Apri_Salvaattivoargomento di add()dopo'diff' rispetto al file originale per vedere le differenze)tentativo di assegnare sequenza di dimensione %d a un intervallo  esteso di dimensione %dtentativo di assegnare una sequenza maggiore di %d a un intervallo estesotentativo di riferimento a buffer cancellatotentativo di riferimento a linguetta cancellatatentativo di riferimento a una finestra cancellataauto-rimozione dell'autocomando: %s <buffer=%d>autocomando %sprimablocco di %ld righe messo in registro%sblocco di 1 riga messo in registro%sbuffer non validoda di Bram Moolenaar et al.inputrestore() chiamata pi� volte di inputsave()chiamo %snon riesco a cancellare gli attributi OutputObjectnon riesco a leggere il risultato di 'charconvert'non posso modificare modalit� console ?!
non riesco a creare comando buffer/finestra: oggetto in via di cancellazionenon posso cancellare la riganon riesco a cancellare gli attributi vim.Dictionarynon riesco a cancellare gli attributi vim.Listnon riesco a ottenere la riganon posso inserire la riganon riesco a inserire/aggiungere riganon posso modificare il dizionario fissonon posso modificare la lista fissanon riesco ad aprire non posso registrare comando callback: buffer/finestra gi� in cancellazionenon posso registrare comando callback: riferimento a buffer/finestra inesistentenon posso sostituire la riganon riesco a salvare informazioni per 'undo'non posso impostare attributo %snon posso impostare riga(he)non riesco a salvare in un registro; cancello comunquemodificamodifichechiusuracom: %scontinuo in %snon riesco ad eseguire "%s"non sono riuscito ad aprire il buffercs_create_connection exec fallitacs_create_connection setpgid fallitacs_create_connection: fdopen di fr_fp fallitacs_create_connection: fdopen di to_fp fallitacomandi cscope:
connessione cscope %s chiusaposizione cursore fuori dal bufferpredefinito a 'cancellato blocco 1?il dizionario � bloccatopassaggio alla linguetta specificata non effettuatopassaggio alla finestra specificata non effettuatodlerror = "%s"non uscire dall'editor prima della fine della scrittura del file!chiavi nulle non consentitevariabile d'ambienteerrore nel convertire i valori Scheme a Vimgestore di erroreatteso terzetto come risultato di imp.find_module(), trovato invece %satteso terzetto come risultato di imp.find_module(), trovato invece tuple di dimens. %dattesa istanza di bytes() o str(), trovato invece %satteso int() o qualcosa che supporti forzatura a int(), trovato invece %satteso int(), long() o qualcosa che supporti forzatura a long(), trovato invece %satteso elemento sequenza di dimensione 2, trovata sequenza di dimensione %dattesa istanza di str() o unicode(), trovato invece %satteso oggetto vim.Buffer, trovato %satteso oggetto vim.TabPage, trovato %satteso oggetto vim.Window, trovato %sespressioni disabilitate in compilazioneargomento di extend()non ho potuto aggiungere un elemento alla listanon non riusciato ad aggiungere la chiave '%s' al dizionariocambio directory non riuscitonon � stato possibile trovare la finestra nella pagina con linguette correntecambio nome buffer non riuscitoesecuzione non riuscita della funzione %sesecuzione del codice non riuscitapassaggio non riuscito al buffer %drighe in menofile
nomefile / contest / riga
argomento di filter()terminatoesecuzione di %s terminataal livello pi� alto: %dal livello zerolibero %ld righela funzione %s non esisteerrore gvimext.dllhashtab cambiato durante l'iterazioneaiutoopzione nascostanel percorso ---
l'indice deve'essere un intero o un intervallo, non %sargomento di insert()errore interno: passato riferimento NULLerrore interno: non ho potuto aggiungere un elemento alla listaerrore interno: non ho potuto ottenere l'elemento di vim list %derrore interno: imp.find_module restituisce tuple con NULLerrore interno: tipo di valore non validoerrore interno: non c'� un elemento di vim list %derrore interno: non ci sono abbastanza elementi per la listaerrore interno: tipo di opzione sconosciutoattributo non valido: %snumero buffer non validoespressione non validanome di mark non valido� una periferica (disabilitata con l'opzione 'opendevice')� una directorynon � un filenon � un file o un dispositivo su cui si possa scrivere� in sola lettura (aggiungi ! per eseguire comunque)interruzione dalla tastierariga %4ld:riga %6d, parola %6d - %sriga %ldriga %ld di %ld --%d%%-- col riga %ld: %sriga %ld: non riesco ad eseguire "%s"riga %ld: eseguo "%s"riga in menonumero riga non nell'intervallonumero riga non nell'intervalloil costruttore di lista non accetta parole chiave come argomentiindice di lista non nell'intervallola lista � bloccatalogoffargomento di map()il nome mark dev'essere un carattere singolomark non impostatocorrispondenza %dcorrispondenza %d di %dcorrispondenza nel filemassimale mch_get_shellsize: non una console??
menu Modifica->Impost.Globali->Modal.Inser. S�/Nomenu Modifica->Impost.Globali->Compatibile Vi S�/Nomenu  Aiuto->Orfani           per informazioni   menu  Aiuto->Sponsor/Registrazione  per informazioni minimale modelineriga in pi�righe in pi�netbeans non � supportato con questa GUI
fatto eseguire nuovo shell
nonessuna connessione cscope
nessuna corrispondenza specificalinguetta inesistentefinestra inesistentenessuna sincronizzazionenon ammesso in ambiente protettonon trovati non trovato in '%s': "%s"non ancora implementatonumero modif.   quando             salv.il numero dev'essere maggiore o uguale a zeroil numero deve essere maggiore di zerope_line_count a zeroriga comandi prima di vimrcproblema nel cambio finestraattributo in sola lettura: bufferregistrazioneargomento di remove()sostituire con %s (y/n/a/q/l/^E/^Y)?argomento di reverse()riga %d colonna %din esecuzioneraggiunto il FONDO nella ricerca, continuo dalla CIMAraggiunta la CIMA nella ricerca, continuo dal FONDOshell shell terminato con return-code %dshutdownil passo scorrendo un intervallo non pu� essere zeroargomento di sort()eseguo "%s"stack_idx dovrebbe essere 0la stringa non pu� contenere caratteri 'A CAPO'sincronizzo i commenti nello stile Cla sincronizzazione inizia syntax, ignorare maiuscolo/minuscolosyntax, considerare maiuscolo/minuscolosyntax conceal inattivosyntax conceal attivosyntax iskeyword syntax, usare valore di default per lo spellsyntax, non effettuare spell sul testosyntax, effettua spell sul testotag %d di %d%snome_taga %s su %sbatti :help cp-default<Enter> per info al riguardobatti :help iccf<Invio>       per informazioni            batti :help register<Invio>   per informazioni batti :help sponsor<Invio>    per informazioni batti :help version8<Invio>   per informazioni su versionebatti :help<Invio>  o  <F1>   per aiuto online            batti :q<Invio>               per uscire                  batti :set nocp<Invio>        per valori predefiniti Vimimpossibile convertire %s a dizionario vimimpossibile convertire %s a Lista vimimpossibile convertire %s a struttura vimimpossibile ottenere il valore di opzioneimpossibile deimpostare l'opzione globale %simpossibile deimpostare l'opzione %s che non ha un valore globaleargomento di uniq()sconosciutoopzione inesistente: opzione inesistente'vimOption' inesistentela funzione anonima %s non esistevalore troppo grande per il tipo int del Cvalore troppo piccolo per il tipo int del Cversione errore vimindice della finestra non nell'intervallofinestra non validacon GUI (classica).con GUI Carbon.con GUI Cocoa.con GUI GTK2.con GUI GTK2-GNOME.con GUI GTK3.con GUI.con GUI Photon.con GUI X11-Athena.con GUI X11-Motif.con GUI X11-neXtaw.senza GUI.scrittura su periferica disabilitata con l'opzione 'opendevice'PK�j�Zp#�F&x&x vim80/lang/es/LC_MESSAGES/vim.monu�[������L6	|l���
�&�/�'E�/m�����ɑ ߑ0�1�>�+F�r�"������5ѓ�$�@�]�l����,/�;\�����͕���
��,�B�]�u�����0��.�/�1J�0|�
����ї�
��
%�$0�$U�z� ������Ϙ!��"+�N�"m�������@ș	�$�5�F�W�g�v�/��8��=�0�G�a�r�1��1������.�-H�v�������ڜ�3
�3>�$r�����̝����
)�4�C�[�l��
��$��ʞ ֞���;'�c�r�#�	����ƟΟޟ�
����.�:�R�	j�t�|���!����Ǡ���.�6� >�_�z�������ơ
Ρܡ6� �=�V�!u���
����	��Ģ����&��	!�"+�*N�y�=��ϣ
ߣ�����#�	*�
4�
B�M�
V�a�s�����5���-�1"�&T�{�������ͥ����$#�H�X�
l�w�������Ħצ���� �8�I�U�a�p�����
����ħЧ
����7
�E�R�j�r�{�����������=��2��&�,�5�'F�-n�2��5ϩ�"�?;�{�������	ƪЪ����-.�\�$|���
��̫ܫ���?�S�5b�!��%��9�E�9`�C��KޭI*�Ht�;��0��6*�8a�3��<ί-�69�p�%����İݰ��&�,.�#[�4� ��@ձ-�0D�:u�;���"�/�>@�)�>��<�%�1�#Q�:u�'��9ش�$+�9P�4��;�� ��>�1[�/����-ڶ�.�BF�"��/��2ܷ4�*D�o�+��%��'߸(�<0�Em�.��-�$�5�<N���*��&к ��4�M�^�p���������ǻֻ��
���"�B�N�]�u�����)���$��0�?�G�S�s�����1Ž?��7�H�W�^�r�������ǾX�%9�_�c�~�����ο���#�$+�P�!a������������"���$'�L�#k�������Q�!�0�@�R�h� ��������	��?��P&�w�
��
��.����-���-2�$`�.��������O��OF�"��
��C��	��!�!6�X�^�|�3��2��!��(
� 3�"T�Ew���%��#�-$�R�p���&���������+�C�'[���)��+��@��-5�c�5���������/�DO���E����-�7@�#x� ��:��5��&.�"U�&x�$��#��!��=
�5H� ~�(��7��!�,"�O�k��� ��#��&����5�P�n�������0��$�!8� Z�({�4��,���"�5�K�c� x�����1���!�%A�%g�%���� ����	�?$�&d�!����
��A��%�"?�"b�9��'��(��2�*C�!n�!��)��%��!�4$�:Y�&��;��;��)3�0]�����������#
�!1�8S�&��#���� ��/�"@�c�-t�������/��*�(?�#h�����������>�W�q���"���������!-�O�9j�1��)��1�%2�7X���A��?��,�C�[�!z�������0��4#�$X�)}�N��,��&#�LJ�������8���$+�P�j�,�� �� ��#���8�7R�N��M��'�C�`�${�!��3��,��2#�%V�*|�9��(��
�"%�H�#f���������B�C�0]�!�� ��<��+�:�Z�+o�2��$����,�>�HY�,������"�(�E�d�����9�����+�0G�#x�'������,��&!�H�[�+m�2��-��(��#�"<�'_�'��,����.��"�#B�,f�W��)��"�,8�%e��� ����2��2�2H�{�!������2��5�'Q�#y�)��3��$��% �F�`�}�����$��&�� �'7�*_�#��'��%��3��!0�R�+q���*��-��$�;�Z�y����� � �$�$*�)O�,y�����,���%1�W�=w������'!�I�f�$��#��0�.��0,�]�}���������-� =�^�7y�)���$�(�A�`�%o�$������'	�1�'P� x������ �7�0<�m�#����"�(�!�>�-\�1��6��5�)�.D�*s�1��9�
**&U+|,�+�4<6+s*����
"9Tj}�"����&?Xt�����:)=d<�6�<S"l��+�4�54B3w�0��DPF%����/J\|!����		;	O	'l	�	�	!�	�	
"
A
1V
�
�
�
"�
�
	!<Xl�����.Li�*�)��

 #
D
_
p
6�
#�
�
)&*KQ� ���$<Vk"�&�#��+-%Y75��
,)Vl�)� ���5Ok��0��%B4a.�$�)�1;F�.�*��$1%L,r���&�-&6] y���+� 9?L)��6�#2+9^>�8�1B)`)� �)��)*D"o�#�"�"�)?_%} �+�$�2!R0t����"!49V8�$�/�7W+i%�1�)�+'E%m�&�!�%�' %A 'g -� 2� � !$!?!_!}!"�!�!�!!�!1"&Q"x"!�"!�"�"(�"#1#+Q#8}#�#7�#E
$!S$u$�$&�$0�$#�$%$1%V%#q%*�%�% �%�%&0)&2Z&0�&�&+�&)'$1'/V'�'�''�')�',(/(K( i(�(�(-�(,�()/3)+c)'�)!�) �)0�)+*!C*,e*�*�*(�*�*�*0+.C+r+�+9�+�+	,),*G,r,3�,�,%�,2-07-!h-;�-R�-.(8.+a./�.�.�.�.!/";/B^/�/�/�/�/0)60'`0�0�0'�0�0	�0�01181R1#h1	�1�1�1�1.�12.26F2}2�26�2#�2&�2	3#383P3g3|3 �3%�3!�3
�3�3(4<4aU4�4�4�4(�4
�4	5%575
C5&N5&u5�5�5)�5�5
66
"6-636Q6c6x6�6	�62�6*�6737E7d7z7
�7�7	�7�7�7�7�7#�7( 8I8[8	m8
w8�8�82�8�8�8�89%9+9$@9/e9�9'�9�9�9
�9$�9":4:E: R:s:�:�:�:!�:�:�:;';>;A;R;^;j;�;#�;�;�;�;.<
3<><	T<^<~<�<'�<�<�<
�<�<=&=:=C=]=x=�=�=�=�=9�=8>O>W>d>
p>~>�>�>�>�>(�>?'?/?@?Q?
^?	i?s?�?�?�?�?9�?
@ @3@N@i@&�@�@�@�@A?AQ\A	�A�A�A�A"�AB-B:BZBnB}B
�B�B'�B�B�BCFCdCvC�C�C�C�C(�C�CDD$D7DTDjD�D0�D;�D �D> E_EwE�E1�E"�EFFF>F)^F=�F�F(�FG&G.G$FG0kG�G�G�G+�G�G�GH+H;H	MHWH�pH�HF
IQI
]I
hI	vI
�I�I+�I�I�IJJ%;J0aJ�J(�J�J1�J+K*EKpK&�K9�KM�K>9L)xL5�LA�L4M$OM6tM"�M�M<�M?N/SN �N"�N�N�N�N	OO3OGOaO�O2�O)�O+�O,#P-PP ~P!�P#�P�P�P
Q!Q2QAQNQ
RQ]Q|Q	�Q�Q�Q�Q�Q�Q�Q�QR
R
R*R	0R:RXReR	yR�R
�R�R
�R	�R5�R�RS	SS+S
1S?S&FSmS�S�S�S
�S�S
�S�S�S:�S"T"(T)KTuT�T�T�T�T�T�T1�T
U$(U"MUpU<�U�U�U�UVVH)VCrV�V�V�V�VWW$W*W	2W<WMWcW xW-�W-�W�WX#XBXRXcX=rX�X
�X�X$�XY#Y)YDYYYkY}Y
�Y�Y�Y�Y�Y�Y/�YZ
)Z 7Z XZyZ
�Z�Z�Z�Z�Z�Z[	[%[>[R[Y[f[o[~[#�[1�[1�[1\1A\s\|\	�\
�\�\�\�\�\�\�\
�\]]
&] 1]R]f]{]�]�]�]	�]"�]^$^$8^]^d^v^^
�^�^�^�^�^__"_.._.]_.�_.�_.�_.`.H`.w`.�`�`�`�`a	aa5aGa[ala
|a�a�a�a	�a�a�a�abb%(b3Nb~�bd!d;dJdQd.hd5�d�d�de`e2{f�f�f<�f!g8"g[gqgS�g2�g$h$7h\hkh��h54i6ji�i)�i(�ijj-j@jPj1pj�j�j �j k4!k2Vk3�k:�k4�k-lAl0\l5�l,�l�l	m2m2Hm{m;�m�m�m$�m<n9Yn/�n9�n/�n"-oPogoF|o!�o�o�op'p=pSpBlpd�pKq!`q �q&�q �qH�qD4ryr�r�r�r5�r$s>s\s/qs#�s#�s)�s>t4Rt�t$�t#�t�tu"!u
DuRu#ju�u�u$�u+�u#v0vMBv$�v#�v=�vw'w/8whw"tw	�w�w'�w�w
�w$�wx-x$Bx#gx	�x
�x�x�x+�x�x�xy9y%Aygy	oy%yy�y$�y!�yz	zz)z=zEQz"�z�z(�z({*{2{A{P{"c{
�{�{�{&�{	�{#�{+�{$|DD|�|�|�|�|�|$�|�|}}&}9}A}M}_}	{} �}:�}�})�}7~-P~~~�~�~�~�~�~ 6;N��
�����
�"�8�N�d�x���
����Ȁـ����
5�C�%X�
~�����:�����	�#�+�3�:�>�Q�e�Zi�RĂ�	#�-�5�/G�;w�6��7�$"�'G�ao�-ф��� �/�!?�a�t�>��0̅��2�/M�
}�����
����F݆$�>7� v�0��FȇN�B^�X��Z��ZU�Z��H�7T�I��L֊7#�N[�=��:�#�$?�d�"}�����'Ќ3��7,�Ed�'��^ҍ>1�5p�T��^��&Z�#����=��H��E>�A��Ɛ)֐/�@0�-q�C���)�_�Tz�Dϒ)�H>�=��3œ ��J�e�*t�H��-�9�?P�?��5Е8�&?�+f�-��3��^�XS�A��7�6&�]�_j�ʘ0�(�&B�Ci���ș���	� �4�F�X�j�y���
����:��
���$�#=�%a���N��
�$��$�@�U�]�"j�$����˜B�N'�v�����!��Ý՝%��+4�``�3����3��..�]�z�����ßӟ�3��3�8I�/������Ϡՠ!�(�9�!M�6o�<����!�Y-�������Ƣ�C�%G�m����D��Yڣ4�G�V�-c�%��9��2�.$�'S�;{� ��إ�e�bn�/Ѧ�S�
b�m�y�&����$���7�.%�#T�*x�%��6ɨA�'B�4j�7��5ש
�!*�"L�,o�����'ª��&�0D�u�0��8ūR��;Q���<�����9�8W�a��*�V�t�6��Iʮ/�'D�Bl�A��@�42�0g�6��-ϰ7��O5�8��&��0�A�&X�/�'�� ײ��(�&?�1f�����5Գ,
� 7�$X�$}�-��Eд&�2=�2p�8��QܵI.�x�����ʶ�*��""�%E�7k�'��,˷3��<,�/i���/��#�)�I2�5|�3��!��Q�3l�#��(ĺS�)A�7k�=��8�'�8B�7{�-��3�?�DU�4��\ϽI,�>v�C��.��(�G� b���,��6ɿP�CQ�(����&�D�&I�p�9����"��.
�.<�'k�'����-��-� 4�-U�`��"��>�1F�=x�'����)��&�&E�l�8��o��K2�;~�2��4��"�jA�A��/��<�$[�%�� ��(��"��I�P]�2��1��X�8l�+��V��(�B�Z�:s���-����.�(@�)i�"��0�����A'�^i�^�� '�(H�%q�1��/��M��4G�>|�2��A��J0�B{�#��:��3�AQ�5��%��%��%�d;���J��/�:;�Qv�4��7��5�3O�;��'��)��D� V�Pw�?��)�12�2d�0��3��3��30�(d�?����(���@1�3r�6����:��<(�5e��� ��7��O�:b�9��&��0��4/�Hd�C����<�1L�"~�/��T��9&�3`�;��7��*�13�e�D��>��:	�#D�)h�����4��?��4?�,t�F��5��3�1R���)����2���-<�-j�%��+��?��1*�*\�)��K��0��4.�<c�.��@��<�(M�7v�$�� �����0#�0T�6��7��3��3(�,\���6����+��*�%J�ap������*�5G�%}�0��'��*��4'�1\�A�������)�'@�h� ��/��-����>�;Y�%��!��A���?�9S�6��*��!��4�;F�5��2��,��(�#A�e�(��B��:��++�#W�0{�5��2��*�(@�7i�?��D��C&�$j�?��.��B��SA�)��+��7��6#�6Z�5��W��^�8~�6��!��0�F� Z�${��������(�:�!P�&r�7��&�%��1�$P�0u�+��%� ��#�=�US�F��F�E7�I}�0�/�� (�I�;P�X��Y�a?�\����W�"j�L��[�76�$n�!��#����
�$%�0J�,{�%���%�('7_ tD��7�2+U^3�'�5(#^��(���*)D%n�#���
%&Ld�"�)�-�+@D?���1�)0!Z|E�>�$>B(�Y�7%W }����&	#=	-a	'�	�	�	+�	4 
?U
=�
"�
#�
>0Y*�?�/�(%N!d ��(�$�!
7
IU
�
&�
!�
A;FK�G�:=Q@��@�<"C_=�&�4I=���=�9
0Du,�(�%�&n79�1�E4X�M�8�;1@mL�R�?N+�2�.�$'A i3�<�*�&+>-j,�3�/�!)5K%�;�*�2$A/fF���&7+^5�Y�D,_F��'�:)8d<�;�#24V.�,�*�&99+s*�9�F 9K � *� )� 5� 1'!%Y!)!#�!#�!*�!@"+]"�"-�"%�"3�"0/#"`#'�#D�#=�#&.$BU$`�$(�$"%#6%6Z%K�%/�%
&*'&R&3q&.�&%�&3�&!.'%P'=v'9�'I�''8('`(,�()�(H�(()F)9\)8�)I�)!*!;*3]*$�*6�*-�*<+'X+C�+8�+$�+(",*K,4v,!�,'�,6�,,-C-6Z-$�-�-6�-;
.&F.&m.;�.&�.%�."/4@/$u/;�/!�/8�/F10Bx0.�0O�0\:1*�1A�1@2>E2.�2�2�20�20!3]R3+�3>�3"4(>4)g4(�44�43�4(#55L5�5�5#�5�5�5!�56.#6R6_6,r6 �6H�6/	7=97<w7�7�7N�7(8)H8
r8}8�8�8�8
�8#�8(9":9
]9h97�9�9o�9G:Z:c:4j:�:�:.�:�:;+;-F;5t;�;f�;/.<"^<0�<"�<�<�<==&/=V=	v=5�=-�=4�=>2>Q>k>�>%�>
�>�>�>�>1?)7?9a?%�?�?
�?�?!�?@O!@	q@"{@�@�@�@�@0�@>A^A8mA#�A �A�AE�ADB.^B�BH�B�B
C&CDC2^C6�C�C�C=�CD!D:DLD&^D-�D"�D�D+�D
E=!E_E'rE�E%�E'�E �E.F%KFqF}F�F �F�F�F$�F'G(3G\G#|G'�G$�GB�G0H
OHZHlH}H	�H �H�H�H$�H=
IHIbIoI�I�I�I
�I�I�I"J5JIJHVJ�J
�J�J#�J#�J(K*HK)sK*�K"�KK�K]7L
�L�L�L!�L*�L!M8MFJM�M�M�M�M�M&�M0NGN#eNE�N"�N!�NO2O:OGOAeO&�O9�O
PP2PQPkP�P1�P:�P(QF0Q!wQ!�Q#�Q6�Q'R>RGR"eR(�R>�RI�R:S6ZS,�S�S �S.�S6TQT]TjT9�T%�T�T�TU$U6U$CU�hU �UgV�V�V�V�V�V�V7�V)WCW!bW�W+�W1�W�W9X%KX@qX5�X.�XY75YLmYV�YUZ>gZD�ZU�ZCA[7�[?�[-�[+\Q7\[�\3�\+]3E]y]#�]�]"�]�]
^+)^,U^"�^<�^3�^2_6I_7�_/�_!�_<
`G`!e`
�`�`�`�`�`�`$�`
aa
a ,aMaUata�a�a�a�a�a�a�a9b?bLb_bnb�b�b�b	�b6�b�bc	c
&c4c
:cHc6Oc$�c
�c�c�c�c�c�c�cdFd*Ud,�d+�d
�d�d�de'e>eCe8]e�e3�e-�e/fD5fzf�f�f#�f�fOgnTg�g0�g$h59hohvh~h�h	�h�h�h�h.�h4i4<iqi�i%�i�i�i�i;jBjVj%oj$�j
�j�j'�j �jk0kGkMk\klk�k�k�k;�k
ll:,l0gl�l�l�l
�l�lm"m=mWm-hm-�m�m�m�m�mn*nFAnI�nH�n<oXo`oioyo'�o�o�o"�o�opp2p#6pZp(kp�p�p�p#�pqq7q&@qgq@zq@�q�q)r-r4r
Srar.|r/�r�r�r!
s
,sA:s:|s=�s>�sB4t9wt9�t9�tC%uiu�u�u	�u�u!�u�u!�u!v!1vSv%qv�v&�v!�v"�v$"w%Gw$mw�w,�wI�w�"����&�~��:`
�X?�N�B��1���^�����Q�u����t9]��oh���N�D�Q���b�z���T�DG��rm�UJR��Nx�'�Z�|�F�IM����n {�>9�W��e/�f�w����m
*}
��p���������@/�z
�MJ���0���bW��
$/���+'Z��Y+��0$v��f��V������<�,��N�M�s�x��<*��Xe��I��v��#f���h�L�I��\���78bE�4�_Hj-���;�y��"AGW.����B���V�5��:�v������~�[������Y,X?���J��iJ���-�S������;2�YW+�����~M����)����@����c<��
@���0P����6�(PC��Q�84�0�����&kr��T	)g��1�t�����F1Yn����;���o���W>�n���M���$�-Ci��~���-��U��8�����DH3�#��tdE���f��y!�"<g��4�~F`���m0�m� �dj�q?��H<���x-��a=���
|���3�^�����_��w��Z������tAY,���G5�x>�nU|��\2V��G��s�_��������	CAUc��u��@ ���& ��ig�s*��T�>-� d��?b���[��=����LlV����z
����b�J8k��6HM�7�e�!��������k��I�C��{�|��z6#uE{KEq��!�F8�f��.���k%v:o�����)6�E=���;��_����t�y�'iX����2�il��9q�8�#�����J��IM�j�Br�LO��'���OK`���c��l=�l�WSe��>
������?e~D�*5�p?��D�������S4���	K�r�A=o�O3��$������)i�������&�Uq�|<N��2@or���AV�""��^;h8�,G��S[!hV/�+�R&��*r���]��v�����k��7�L1�:R*�{!�R��l�(�0��}A|+�a��$��PS��<u��a3K.a�&�S�~[�}��/�Xz��D�)�A����	i}�C��(����^B#1`�L:�%b .
`��"��5;���\�]-�/�����Inpj�`�l�\B�PV;��)w�5B�!FcNd�w�,7(�kOu�FI�(t	�z1�[��h�9���H��de�����C
�c4�9��w�r�g���$��Q�NpgZT���ed�������y�����v��]X�%�>�\>��]�l6���'���
7�q�$ZQ�����w��P����j��Bty�p�Q_^u�����x��2��n�����7�	.�b��?7�K(��O�,��P#��Y���\����+��"[���%��
�=�{�1�O�,�s���j���ZKm���@�K5����y!@��W9�`E���3�DU������Gc����yps�}2Z%������|x��mj����T�����}0#�x ���o.��:m��f�z/�a6�s+��3%TU���R�q�a_T����	p���:)�L9n���h����}�*'g\�2�����Ps&��QL%��YG���{���k����w���(��a�]^�R��CgOh�d�f4[�cq�'EH]�uo{���v3
5���_����6�=H��X�F�.��S�����4���R^�J���			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find assignments to

    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in Win32s mode in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %p><cannot open> <empty><window %d><window object (deleted) at %p><window object (unknown) at %p>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDelete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E505: "%s" is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUndo number %ld not foundUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!environment variableerror handlererror list %d of %d; %d errorsexpressions disabled at compile timefewer linesfile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnew shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringswriting to device disabled with 'opendevice' optionProject-Id-Version: Vim 7.2.284 (rev 1692)
Report-Msgid-Bugs-To: vim@bugs.org
POT-Creation-Date: 2009-11-25 02:05+0100
PO-Revision-Date: 2009-12-04 18:52+0100
Last-Translator: Omar Campagne <ocampagne@gmail.com>
Language-Team: vim-doc-es http://www.assembla.com/wiki/show/vim-doc-es
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: octect-stream
			  (Sin implementar)

	Se definió por última vez en 

Argumentos:


Uso:
         modificado: 
         [no se puede usar en este ordenador]
         [no se puede usar con esta versión de Vim]
       nombre del servidor: 
 nombre del usuario: 
      ID del proceso: 
       c: Encontrar funciones que invocan esta función
       d: Encontrar funciones invocados por esta función
       e: Encontrar este patrón egrep
       f: Encontrar este archivo
       g: Encontrar esta definición
       i: Encontrar archivos #incluyendo este archivo
       s: Encontrar este símbolo de C
       t: Encontrar asignaciones a

    Nombre      Args Rango Completar  Definición
   #   línea
  o:
  # A etiqueta        DESDE la línea   en el archivo/texto
 salto línea  col archivo/texto
# Historia de %s (de lo más nuevo a lo más antiguo):

# Lista de búfers:

# Marcas en el archivo:

# Historia de las marcas en los archivos (de la más reciente a la más antigua):

# Lista de saltos (el más reciente va primero):

# Último %sPatrón de búsqueda:
~
# Última cadena de sustitución:
$
# Registros:

# variables globales:

(1) Puede que otro programa esté editando el mismo archivo.
    De ser así, tenga cuidado de no acabar con dos
    ejemplares diferentes del mismo archivo al hacer cambios.

(2) Falló una sesión de edición de este archivo.

(Podría querer guardar este archivo con otro nombre

--- Auto-órdenes ---
--- Valores de las opciones globales ---
--- Valores de las opciones locales ---
--- Menús ---
--- Opciones ---
--- Registros ---
--- Signos ---
--- Elementos sintácticos ---
--- Elementos de sincronización de sintaxis ---
--- Códigos de terminal ---
--- Teclas de la terminal ---
Versión de 16 bits para MS-DOS
Versión de 32 bits para MS-DOS
Argumentos reconocidos por gvim (versión Athena):

Argumentos reconocidos por gvim (versión GTK+):

Argumentos reconocidos por gvim (versión Motif):

Argumentos reconocidos por gvim (versión para RISC OS):

Argumentos reconocidos por gvim (versión neXtaw):

Versión "grande" 
No se pudo crear "pipes"

No se pudo ejecutar el intérprete de órdenes 
No se pudo ejecutar el intérprete de órdenes "sh"

No se pudo crear proceso secundario "fork"

La orden fue terminada

Compilado 
No se pudo obtener el contexto de seguridad para 
No se pudo definir el contexto de seguridad para 
Parches adicionales: 
Se ha encontrado un archivo de intercambio con el nombre "
Versión "enorme" 
Parches incluidos: 
Versión de 16 bits para MS-Windows
Versión de interfaz gráfica de 16/32 bits para MS-Windows
Versión de interfaz gráfica de 32 bits para MS-Windows
Versión de 32 bits para consola de MS-Windows
Versión de interfaz gráfica de 64 bits para MS-Windows
Versión de 64 bits para consola de MS-Windows
Versión para X (Unix) para MacOS
Versión para MacOS X
Versión para MacOS
Tal vez no hay cambios o Vim no actualizó el archivo de intercambio.
Más información con: "vim -h"

Versión "normal" 
Versión para OpenVMS
Versión para RISC OS
Versión "pequeña" 
Versión "diminuta" 
Vim: Hay un error de X

ADVERTENCIA: el archivo original puede haberse perdido o dañado

Cuando mayúscula y minúscula son ignoradas añada "/" para cambiar la marca ("flag") a mayúscula
[bytes] total liberados por alloc: %lu-%lu, en uso: %lu, uso máximo: %lu

cambio línea  col archivo/texto
marca línea  col archivo/texto
El intérprete de órdenes devolvió 
sincronizando con los elementos                                 para los valores predeterminados de Vim                                                 para dos modos                  de fecha:           propiedad de:          [no se puede abrir]         [no se puede leer]         [no parece un archivo de intercambio de Vim]      [desde la versión 3.0 de Vim]         nombre del archivo:       -- ninguno --
     MÁS NUEVO que el archivo de intercambio!
      archivo "exrc" del usuario: "     archivo "vimrc" del usuario: "    Si es así, use ":recover" o "vim -r     Si Ud. ya ha hecho esto, borre el archivo de intercambio "    Salga del programa o continúe con precaución.
    línea=%ld id=%d nombre=%s     archivo de menú del sistema: "    archivo "gvimrc" del usuario: "   En el directorio actual:
   En el directorio    Usando el nombre especificado:
   de fecha:   nombre del servidor:      archivo "vimrc" del sistema: "  # etiqueta tipo "pri"  (Ya está listado)   2º archivo "exrc" del usuario: "  COMPILACIÓN CON SÍMBOLOS DE DEPURACIÓN  Aspectos incluidos (+) o no (-):
  NO SE ENCONTRÓ  ¡Está usando una etiqueta con mayúsculas y minúsculas que no coinciden!            predefinido para $VIM: "    archivo "gvimrc" del sistema: " nº pid    base de datos                       prefijo ruta
 (Interrumpido) (NO ENCONTRADO) (incluye la coincidencia mostrada previamente) (insertar) (insertar) Desplazamiento (^E/^Y) (idioma) (línea borrada) (no hay apoyo para la función pedida) (pegar) (reemplazar) (reemplazar) Desplazamiento (^E/^Y) (aún en ejecución) (reemplazo virtual)  2º archivo "vimrc" del usuario: " 3er archivo "vimrc" del usuario: " < "%.*s"Añadiendo árabe ERROR DE CONVERSIÓN Compleción de línea de órdenes (^V^N^P)Copia %d de %d Completar definición (^D^N^P) Completar diccionario (^K^N^P) FALLÓ Completar nombre de archivo (^F^N^P) hebreo INSERTAR Completar palabra clave local (^N^P) Completar palabra clave (^N^P) Completar con método Omni (^O^N^P) Completar patrón de ruta (^N^P) REEMPLAZAR INVERTIR SELECCIONAR SELECCIONAR BLOQUE SELECCIONAR LÍNEA ESPACIO/d/j: pantalla/página/línea abajo, b/u/k: arriba, q: salir  Sugerencia de ortografía (s^N^P) Completar etiquetas (^]^N^P) Completar palabras con tesauro (^T^N^P) Completar definido por usuario (^U^N^P) VISUAL BLOQUE VISUAL LÍNEA VISUAL REEMPLAZO VIRTUAL Completar toda la línea (^L^N^P) [Modificado] [a] [w] Modo ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) añadidono puede usarse en este ordenador.
 no puede usarse con esta versión de Vim.
     predefinido para $VIMRUNTIME: " se ha dañado (el tamaño de la página es menor al valor minimo).
 en modo Win32sen la línea %ld info tipo de archivo
 líneas de quiebre líneas antes de la línea superior marcas archivos antiguos en %ld líneas en una (1) línea o más devolvió
 vim [argumentos] con compatibilidad con OLE escritos"
    para evitar este mensaje.
"
    para recuperar los cambios (véa ":help recovery").
" ya existe!# Vim %s generó este archivo "viminfo".
# Valor de 'encoding' cuando se escribió este archivo
# Puede editarlo, ¡sólo si tiene cuidado!

%-5s: %s%*s (Modo de uso: %s)%3d  %s %s  línea %ld%<%f%h%m%=Página %NSe suprimieron %d búfersSe descargaron %d búfersSe eliminaron %d búfers%d palabra(s) duplicada(s) en %s%d archivos que editar
Hay %d archivos más en edición. ¿Cerrar de todas formas?%d de %d editados%ld %s; %s #%ld  %s%ld Cols; %ld caracteres%ld líneas menos%ld líneas %sed %d veces%ld líneas %sed 1 vez%ld líneas --%d%%--%ld líneas cambiadas%ld líneas filtradas%ld líneas sangradas%ld líneas movidas%ld líneas por sangrar...%ld líneas copiadas%ld líneas, %ld coincidencias%ld líneas máshace %ld segundos%ld sustituciones%s Auto-órdenes para "%s"Abortada la ejecución de %s%s descartado%s, en la línea %ld%s ha pasado a la lista de pendientes%s continuado%s devuelve #%ld%s devuelve %sEl valor %s difiere de los que se usa en otro archivo .aff%s, en la línea %ld%sviminfo: %s en la línea: &Cancelar&Cerrar&Filtro&Ayuda&OK&Aceptar
&Cancelar&OK
&Cargar archivo&Ok&Abrir para lectura únicamente
&Editar de todas formas
&Recuperar
&Borrar
&Salir
&Abortar&Abrir para lectura únicamente
&Editar de todas formas
&Recuperar
&Salir
A&bortar&Reemplazar&Deshacer&Si
&No&Si
&No
&Cancelar&Si
&No
&Guardar todo
&Descartar todo
&Cancelar' desconocido. Los terminales incorporados disponibles son:'-nb' no se puede usar: no se ha activado al compilar
"columns" no es 80, no puede ejecutar órdenes externasLa opción 'dictionary' está vacíaLa opción 'history' (historia) es ceroSe ha activado la opción de solo lectura ('readonly') para %s.
¿Desea escribir de todas formas?La opción 'thesaurus' (tesauro) está vacía(%d de %d)%s%s: (+%ld para BOM)(Interrumpido)(No es válido)+			Comenzar al final del archivo+-%s%3ld líneas: +--%3ld líneas plegadas+<número_de_línea>	Comienza en la línea <número_de_línea>+reverse		No usar vídeo inverso (también: +rv),
o el archivo se ha dañado-               Leer texto de la entrada estándar--			Solo nombres de archivos a partir de aquí-- Más ---- Buscando...--- Archivos incluidos --Suprimido----No hay líneas en el búfer----cmd <orden>	Ejecutar la <orden> antes de cargar algún archivo vimrc--cmd [argumentos]--columns <número>	Anchura inicial de la ventana, en columnas--literal		No expandir comodines--noplugin		No cargar los módulos de expansión--remote <archivos>	Editar <archivos> en un servidor Vim si es posible--remote-expr <expr>	Evaluar <expr> en un servidor Vim e imprimir el resultado--remote-send <teclas>	Envíar <teclas> a un servidor Vim y cerrar--remote-silent "archivos"	Lo mismo pero no se queja si no existe un servidor disponible--remote-tab[-wait][-silent] <archivos>  Como "--remote" pero usa una pestaña por página--remote-wait "archivos"	Como --remote pero espera a que los archivos terminen de editarse--remote-wait-silent "archivos"	Lo mismo pero no se queja si no hay un servidor disponible--role <role>	Define un rol único para identificar la ventana principal--rows <número>	Altura inicial de la ventana, en filas--serverlist		Emitir una lista de los servidores Vim disponibles y cerrar--servername "nombre"	Envíar a/se convierte en el servidor Vim con <nombre>--socketid <xid>	Abre a Vim dentro de otro "widget" GTK-- startuptime <archivo>	Guardar los mensajes de tiempo de inicio a <archivo>.--version		Impresión de la información de versión y cerrar--windowid <HWND>	Abrir Vim dentro de otro objeto de win32-A			Iniciar en modo árabe-C			Compatible con vi: "compatible"-D			Modo de depuración-F			Iniciar en modo persa (farsi)-H			Iniciar en modo hebreo-L			Igual que "-r"-M			Modificación de texto desactivada-N			Parcialmente compatible con vi: "nocompatible"-O[N]		Como "-o" pero divide las ventanas verticalmente-P <título ventana padre>	Abrir a Vim dentro de la aplicación padre-R			Modo de solo lectura (como "view")-S <sesión>		Ejecutar las órdenes del archivo <sesión> después de cargar el primer archivo-T <terminal>	Establecer el tipo de salida visual a <terminal>-U <gvimrc>		Usar <gvimrc> en lugar de otro ".gvimrc"-V[N][nombre_archivo]		Con verbosidad [nivel N] [guardar mensajes en nombre_archivo]-W <scriptout>	Grabar todas las órdenes escritas al archivo "módulo de expansión" de salida-X			Evitar la conexión al servidor X-Z			Modo restringido (como "rvim")-b			Modo binario-background <color>	Usa <color> para el fondo (también: -bg)-boldfont <tipo>	Usa <tipo de letra de impresión> para texto en negrita-borderwidth <ancho>	Usa un ancho de borde de <ancho> (también: -bw)-c <orden>		Ejecutar <orden> después de cargar el primer archivo-c [argumentos]-d			Modo de diferencias (como "vimdiff")-dev <dispositivo>		Usar <dispositivo> para I/O-display <pantalla>	Conectar vim a este servidor X en particular-display <pantalla>	Ejecuta vim en <pantalla>-display <pantalla>	Ejecuta vim en <pantalla> (también: --display)-e			Modo ex-f			No usar "newcli" para abrir ventanas-f  o  --nofork	Primer plano: No separarse ("fork") cuando se inicia la interfaz gráfica (GUI)-font <tipo>		Use <tipo de letra de impresión> para el texto normal (también: -fn)-foreground <color>	Usa <color> para el texto normal (también: -fg)-g			Ejecutar usando el GUI (como "gvim")-geometry <geom>	Use <geom> para la geometría inicial (también: -geom)-h  or  --help	Impresión de la ayuda (este mensaje) y cerrar-i <viminfo>		Usar <viminfo> en lugar de ".viminfo"-iconic		Arranca vim "iconizado"-italicfont <tipo>	Use <tipo de letra de impresión> para texto en cursiva-l			Modo LISP-m			Modificación de archivos desactivada-menuheight <alt>	Usa una barra de menú de altura <alt> (también: -mh)-n			Sin archivo de intercambio, solo usa RAM-name <nombre>		Usa un recurso como si vim fuese <nombre>-o[N]		Abrir N ventanas (valor predeterminado: una por archivo)-p[N]		Abrir N ventanas (valor predeterminado: una por archivo)-q [fich. err.] Editar el archivo con el primer error-r			Dar una lista de los archivo de intercambio y salir-r "archivo"	Recuperar sesión fallida-register		Registrar este "gvim" para "OLE"-reverse		Usar vídeo inverso (también: -rv)-s			Modo silencioso de ejecución por lotes ("ex")-s <scriptin>	Leer las órdenes en modo Normal del archivo "módulo de expansión" de entrada>-scrollbarwidth <ancho>	Usa una barra de desplazamiento de ancho <ancho> (también: -sw)-t etiqueta    Editar el archivo donde está definida la etiqueta-u <vimrc>		Usar <vimrc> en lugar de cualquier ".vimrc"-unregister		Suprimir el registro de "gvim" para "OLE"-v			Modo vi-w <scriptout>	Añadir todas las órdenes escritas al archivo "módulo de expansión" de salida-x			Editar archivos cifrados-xrm <recurso>	Establece el recurso especificado-y			Modo fácil (como "evim", sin modo)Ignorando línea / en %s línea %d: %sIgnorando línea /encoding= después de palabra en %s línea %d: %sSe suprimió un (1) búferSe descargó un (1) búferSe eliminó un (1) búfer1 carácter1 línea %sed %d veces1 línea %sed 1 vez1 línea --%d%%--1 línea cambiada1 línea sangrada1 línea menos1 línea movida1 línea copiada1 línea, Una (1) coincidenciaUn (1) archivo más para editar. ¿Cerrar de todas formas?1 línea másUna (1) sustitución 2º archivo "gvimrc" del usuario: "3er archivo "gvimrc" del usuario: ": Falló el envío de la expresión.
: Falló el envío.
: Falló el inicio de sesión remota ("send"). Intentado una ejecución local
; coincide<%s>%s%s  %d,  Hex %02x,  Octal %03o<objeto de búfer (suprimido) en %p><no se puede abrir> <vacio><ventana %d><objeto ventana (suprimido) en %p><objeto ventana (desconocido) en %p>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? desde aquí hasta ???FIN las líneas pueden estar desordenadas??? desde aquí hasta ???FIN las líneas pueden haber sido insertadas/borradas???FALTA UN BLOQUE???BLOQUE VACÍO???FIN???RECUENTO DE LÍNEAS EQUIVOCADO???FALTAN LÍNEAS???FALTAN MUCHAS LÍNEAS"ANCHOR_BUF_SIZE" demasiado pequeño.Añadir una nueva base de datosSe ha añadido la base de datos "cscope" %sAfijo usado también para BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST en %s línea %d: %sNombre de afijo demasiado largo en %s línea %d: %sTodoSe han vaciado todas las bases de datos de "cscope"Se han encontrado todos los archivos incluidosEste es el cambio más nuevoEste es el cambio más antiguoSolo hay una ventanaSolo hay una ventanaAñadir archivoFalta el argumento después deEn la líneaIntento de abrir de nuevo el archivo de órdenes: "De vuelta al originalSe devolvió un rango invertido, ¿puedo intercambiarlo?¡Conviértase en un usuario registrado de Vim!¡Bip!Adelante del byte %ldFinalLíneas SAL y SOFO en %s"Breakpoint" en "%s%s" línea %ldCondición inválida en %s línea %d: %sNavegador de ClasesCOMPOUNDSYLMAX usado sin SYLLABLEInvocando al intérprete de órdenes para ejecutar: %sNo se pudo encontrar el archivo temporal para la conversiónCancelarNo se pudo conectar a NetBeansNo se pudo conectar a NetBeans #2No se pudo conectar a SNiFF+. Verifique el entorno ("sniffemacs" debe estar en "$PATH").
No se pudo crear No se puede ejecutar No se pudo abrir NIL:
No se pudo abrir el archivo %sNo se pudo abrir para leer: "No se pudo abrir para escribir la salida del archivo de órdenes: "No se pudo ejecutar un directorio: %s"%.*s" cambió a:CerrarCerrar VentanaCol %s de %s; Línea %ld de %ld; Palabra %ld de %ld; Byte %ld de %ldCol %s de %s; Línea %ld de %ld; Palabra %ld de %ld; Carácter %ld de %ld Byte %ld de %ldLínea de órdenesCompilación: Compilador: Comprimiendo %d de %d nodos; faltan %d (%d%%)Comprimiendo el árbol de palabras...La conversión falló para la palabra en %s línea %d: %sLa conversión a %s no es posible en esta versiónLa conversión en %s no es posible: de %s a %sFalló la conversión con 'charconvert'¡No se pudo conectar los punteros de la función a la DLL!¡No se pudo cargar "vim32.dll"!Etiqueta de "cscope": %sIdioma actual %s: "%s"Definir COMPOUNDFORBIDFLAG después de un elemento PFX puede dar resultados erróneos en %s línea %dDefinir COMPOUNDPERMITFLAG después de un ítem PFX puede dar resultados erróneos en %s línea %dElimine el archivo .swp después de terminar.

Diff con VimMarca de combinación diferente en el bloque de afijos continuo en %s línea %d: %sDirecciónDirectoriosDirectorio	*.nada
¿Desea realmente escribir al archivo?¡Listo!Duplicado ; en la lista de variablesHacia abajoIgnorando línea /encoding= duplicada en %s line %d: %sIgnorando línea /regions= en %s línea %d: %sAfijo duplicado en %s línea %d: %sCarácter duplicado en MAP en %s línea %dPalabra duplicada en %s línea %d: %sE100: Ningún otro búfer está en modo de diferenciasE101: Más de dos búfers en modo de diferencias, no se cual usarE102: No se pudo encontrar el búfer %sE103: El búfer "%s" no está en modo de diferenciasE104: El código de escape no se permite en un dígrafoE105: Usando ":loadkeymap" en el archivo suministradoE107: Faltan paréntesis: %sE108: No existe la variable: "%s"E109: Falta un ":" después de "?"E10: \ debería ir seguido de "/", "?" o "&"E110: Falta un ")"E111: Falta un "]"E112: Falta el nombre de la opción: %sE113: Opción desconocida: %sE114: Faltan las comillas: %sE115: Faltan las comillas: %sE116: Argumentos inválidos para la función: %sE117: Función desconocida: %sE118: Demasiados argumentos para la función: %sE119: No hay suficientes argumentos para la función: %sE11: Inválido en la ventana de la línea de órdenes: <CR> ejecuta, CTRL-C cierraE120: Usando <SID> en un contexto que no es de "script": %sE121: Variable sin definir: %sE122: La función %s ya existe, añada "!" para reemplazarlaE123: Función indefinida: %sE124: Falta un "(": %sE125: Argumento ilegal: %sE126: Falta un ":endfunction"E127: No se puede redefinir la función %s: Está en usoE128: El nombre de una función debe empezar con mayúscula o contener el signo de dos puntos: %sE129: Se requiere el nombre de la funciónE12: Orden no permitida desde exrc/vimrc en el directorio en uso o al buscar etiquetasE130: Función desconocida: %sE131: No se pudo eliminar la función %s: Está en usoE132: La recursión de llamada de la función es mayor que "maxfuncdepth"E133: ":return" no está dentro de una funciónE134: Moviendo líneas sobre sí mismasE135: *Filtro* Las auto-órdenes no deben cambiar el búfer en usoE136: viminfo: Demasiados errores, omitiendo el resto del archivoE137: No hay permisos de escritura para el archivo "viminfo": %sE138: ¡No se pudo escribir el archivo "viminfo" %s!E139: El archivo ya se ha cargado en otro búferE13: El archivo ya existe (use "!" para sobreescribir)E140: Use "!" para escribir un búfer parcialE141: No existe un nombre de archivo para el búfer %ldE142: No se ha escrito el archivo: escritura desactivada por la opción 'write'E143: Las auto-órdenes han eliminado al nuevo búfer %sE144: Argumento no numérico para ":z"E145: No se permiten órdenes de consola en rvimE146: Las expresiones regulares no se pueden delimitar con letrasE147: ":global" no puede ser recursivoE148: Falta una expresión regular en ":global"E149: Lo siento, no hay ayuda para "%s"E14: La dirección no es válidaE150: No es un directorio: %sE152: No se pudo abrir %s para escrituraE153: Incapaz de abrir %s para lecturaE154: Etiqueta "%s" duplicada en el archivo %s/%sE155: Signo desconocido: %sE156: Falta el nombre del signoE157: La identificación del signo no es válida: %ldE158: El nombre del búfer no es válido: %sE159: Falta el número del signoE15: La expresión no es válida: %sE160: Orden de signo desconocida: %sE161: No se ha encontrado el "breakpoint": %sE162: No se ha grabado nada desde el último cambio en el búfer "%s"E163: Hay sólo un archivo para editarE164: No se pudo regresar antes del primer archivoE165: No se pudo ir más allá del último archivoE166: No se pudo abrir el archivo enlazado para escribirE167: Ha usado ":scriptencoding" fuera de un archivo de instrucciones ejecutablesE168: Ha usado ":finish" fuera de un archivo de instrucciones ejecutablesE169: Orden demasiado recursivaE16: El rango no es válidoE170: Falta ":endfor"E170: Falta ":endwhile"E171: Falta ":endif"E172: Solo se permite un nombre de archivoE173: Hay %ld archivos en ediciónE173: Un (1) archivo más para editarE174: Ya existe esa orden. Añada "!" para reemplazarlaE175: No se ha especificado el atributoE176: El número de argumentos no es válidoE177: El recuento no se puede especificar dos vecesE178: El valor predeterminado para el recuento no es válidoE179: se necesita un argumento para "-complete"E17: "%s" es un directorioE180: El valor para completar no es válido: %sE181: El atributo no es válido: %sE182: El nombre de la orden no es válidoE183: Las órdenes definidas por el usuario deben comenzar con mayúsculaE184: No existe esa orden definida por el usuario: %sE185: No se pudo encontrar el esquema de colores %sE186: No hay un directorio previoE187: DesconocidoE188: Obtener la posición de la ventana no está implementado en esta plataformaE189: "%s" ya existe (añada ! para sobreescribir.)E18: Caracteres inesperados en :letE190: No se pudo abrir "%s" para escrbirE191: El argumento debe ser una letra o una comilla simple/comilla simple invertidaE192: Excesivo uso recursivo de ":normal"E193: ¡":endfunction" no está dentro de una función!E194: No hay un nombre de archivo alterno que sustituya a '#'E195: No se pudo abrir el archivo "viminfo" para lecturaE196: No hay dígrafos en esta versiónE197: No se pudo establecer la opción del idioma a "%s"E198: "cmd_pchar" más allá de la longitud de la ordenE199: Se borró la ventana o el búfer activoE19: El número de línea de la marca no es válidoE200: Las auto-órdenes "*ReadPre" hicieron ilegible el archivoE201: Las auto-órdenes "*ReadPre" no deben cambiar el búfer en usoE202: ¡La conversión ha hecho ilegible el archivo!E203: Las auto-órdenes fueron suprimidas o el búfer se descargó para ser grabado en discoE204: La auto-orden ha cambiado el número de líneas en forma inesperadaE205: Modo de parcheo: no se puede guardar el archivo originalE206: Modo de parcheo: no se puede tocar el archivo original vacíoE207: No se pudo borrar el archivo de respaldoE208: Error al escribir a "%s"E209: Error al cerrar "%s"E20: No se ha colocado una marcaE210: Error al leer "%s"E211: El archivo "%s" ya no está disponibleE212: No se pudo abrir el archivo para escribir en élE213: No se pudo convertir (añada "!" para escribir el archivo sin conversión)E214: No se pudo encontrar el archivo temporal para escribir en élE215: Carácter ilegal después de *: %sE216: No existe tal evento: %sE216: No existe tal grupo o evento: %sE217: No se pueden ejecutar las auto-órdenes para TODOS los eventosE218: La auto-orden se anida en excesoE219: Falta un {.E21: No se pudo modificar, 'modifiable' está desactivadoE220: Falta un }.E222: Añadir al búfer de lecturaE223: Asociación recursivaE224: Ya existe una abreviatura global para %sE225: Ya existe una asociación global para %sE226: Ya existe una abreviatura para %sE227: Ya existe una asociación para %sE228: "makemap": modo ilegalE229: No se pudo iniciar la interfaz gráficaE22: Demasiados archivos de órdenes anidadosE230: No se pudo leer desde "%s"E231: El valor de 'guifontwide' no es válidoE232: No se pudo crear un "BalloonEval" que contenga tanto el mensaje como la llamada de retornoE233: No se pudo abrir la pantallaE234: Conjunto de tipos de letra de impresión desconocido: %sE235: Tipo de letra de impresión desconocida: %sE236: El tipo de letra de impresión "%s" no es de ancho fijoE237: Falló la selección de impresoraE238: Error de impresión: %sE239: El texto de signo no es válido: %sE23: No hay un archivo alternoE240: No hay conexión al servidor VimE241: Incapaz de enviar a %sE243: Argumento no admitido: "-%s"; use la versión OLE.E244: El nombre del conjunto de caracteres "%s" no es válido en el nombre del tipo de letra de impresión "%s"E245: Carácter '%c' ilegal en el nombre del tipo de letra de impresión %sE246: La auto-orden "FileChangedShell" ha borrado el búferE247: El servidor llamado "%s" no está registradoE248: No pude enviar la orden al programa de destinoE24: No existe esa abreviaturaE250: Faltan los tipos de letras para los siguientes conjuntos de caracteres en el conjunto de fuentes %s:E251: La propiedad de registro de VIM es incorrecta. ¡Eliminada!E252: Nombre del conjunto de tipos de letra: %sE253: Nombre del conjunto de tipografías de impresión: %s
E254: No se pudo asignar el color %sE255: ¡No se pudo cargar los signos!E256: ERROR del autómata HangulE257: cstag: no se encontró la etiquetaE258: Incapaz de enviar al clienteE259: No se encontraron coincidencias para la búsqueda "cscope" %s de %sE25: No se puede usar la interfaz gráfica de usuario: No se activó al compilarE261: No se ha encontrado la conexión "cscope" %sE262: Error al leer la conexión %ld con "cscope"E263: Lo siento, esta orden está desactivada, no se pudo cargar la biblioteca de PythonE264: Python: error de iniciación de los objetos de I/OE265: $_ debe ser una instancia de "String"E266: Lo siento, esta orden está desactivada, no se pudo cargar la biblioteca de RubyE267: "return" inesperadoE268: "next" inesperadoE269: "break" inesperadoE26: No se pudo usar el hebreo: no se activó al compilar
E270: "redo" inesperadoE271: "retry" fuera de una cláusula "rescue"E272: excepción sin manejarE273: El estado %d de "longjmp" es desconocidoE274: Sniff: Error al leer. DesconectadoE275: Petición de SNiFF+ desconocida: %sE276: Error al conectarme a SNiFF+E277: Incapaz de leer una respuesta del servidorE278: SNiFF+ no está conectadoE279: No es un búfer de SNiFF+E27: No se pudo usar el persa (farsi): no se activó al compilar
E280: ERROR FATAL DE TCL: ¿¡"reflist" dañada!? Por favor, informe de esto a vim-dev@vim.orgE281: ERROR DE TCL: ¿¡el código de salida no es "int"!? Por favor informe a vim-dev@vim.orgE282: No se pudo leer desde "%s"E283: No hay marcas que coincidan con %sE284: No se pudo fijar los valores ICE285: Falló la creación del contexto de entradaE286: Falló la apertura del método de entradaE287: Advertencia: No pude crear una llamada de retorno de destrucción al IME288: el método de entrada no admite ningún estiloE289: El método de entrada no soporta mi tipo de pre-ediciónE28: No existe un grupo de resaltado de nombre: %sE290: El estilo "sobre el punto" requiere del uso de un "fontset"E291: Su versión de GTK+ es anterior a 1.2.3. Área de estado desactivadaE292: El servidor de método de entrada (IME) no está funcionandoE293: El bloque no estaba aseguradoE294: Error de búsqueda al leer el archivo de intercambioE295: Error de lectura en el archivo de intercambioE296: Error de búsqueda al escribir en el archivo de intercambioE297: Error de escritura en el archivo de intercambioE298: ¿No se obtuvo el bloque Nº 0?E298: ¿No se obtuvo el bloque Nº 1?E298: ¿No se obtuvo el bloque Nº 2?E299: No se permite la evaluación de código Perl en la caja de arena sin el uso del módulo "Safe"E29: Aún no ha insertado textoE300: Ya existe un archivo de intercambio (¿ataque de enlace simbólico?)E301: ¡¡¡Perdí el archivo de intercambio!!!E302: No pude cambiar el nombre del archivo de intercambioE303: Incapaz de abrir el archivo de intercambio para %s, recuperación imposibleE304: "ml_upd_block0()": ¿No se obtuvo el bloque 0?E305: No se encontró el archivo de intercambio para %sE306: No se pudo abrir %sE307: %s no parece un archivo de intercambio de VimE308: Advertencia: el archivo original puede haber cambiadoE309: Incapaz de leer el bloque 1 de %sE30: No hay una línea de órdenes previaE310: El ID del bloque 1 es incorrecto (¿No es %s un archivo .swp?)E311: Recuperación interrumpidaE312: Se han detectado errores al recuperar; busque líneas que empiecen con ???E313: No se pudo preservar, no existe un archivo de intercambioE314: Falló la preservación del archivoE315: "ml_get": número de línea no válido: %ldE316: "ml_get": no se pudo encontrar la línea %ldE317: El id del bloque de punteros es incorrectoE317: El id del bloque de punteros es incorrecto. 2E317: El id del bloque de punteros es incorrecto. 3E317: El id del bloque de punteros es incorrecto. 4E318: ¿Demasiados bloques actualizados?E319: Lo siento, esa orden no está disponible en esta versiónE31: No existe tal asociaciónE320: No se pudo encontrar la línea %ldE321: No pude recargar "%s"E322: número de línea fuera de rango: %ld más allá del finalE323: recuento de líneas erróneo en el bloque %ldE324: No se pudo abrir el archivo PostScript de salidaE325: ATENCIÓNE326: Se han encontrado demasiados archivos de intercambioE327: Parte de la ruta del item del menú no es un sub-menúE328: El menú solo existe en otro modo de operaciónE329: No existe el menú "%s"E32: No hay un nombre de archivoE330: La ruta del menú no debe conducir a un sub-menúE331: No se deben añadir elementos del menú directamente a la barra del menúE332: El separador no puede ser parte de una ruta de menúE333: La ruta del menú debe conducir a un item del menúE334: No se ha encontrado el menú: %sE335: El menú no está definido para el modo %sE336: La ruta del menú debe conducir a un sub-menúE337: No se ha encontrado el menú - verifique los nombres de los menúsE338: Lo siento, no hay navegador de archivos en el modo de consolaE339: Patrón demasiado largoE33: No existe una expresión regular de sustitución previaE340: La línea se está haciendo demasiado largaE341: Error interno: lalloc(%ld, )E342: ¡Memoria agotada! (al asignar %lu bytes)E343: Ruta no válida: '**[número]' debe estar al final de la ruta o seguido de %s.E344: No se pudo encontrar el directorio "%s" en "cdpath"E345: No se pudo encontrar el archivo %s en la rutaE346: No se han encontrado mas directorios "%s" en "cdpath"E347: No se han encontrado mas archivos "%s" en la rutaE348: No hay ninguna cadena bajo el cursorE349: No hay ningún identificador bajo el cursorE34: No existe una orden previaE350: No se puede crear el pliegue con el 'foldmethod' actual activoE351: No se puede borrar el pliegue con el 'foldmethod' activoE352: No se pudo borrar pliegues con el 'folmethod' actualE353: No hay nada en el registro %sE354: Nombre de registro no válido: '%s'E355: Opción desconocida: %sE356: ERROR en "get_varp"E357: "langmap": falta carácter coincidente para %sE358: "langmap": caracteres extra después del punto y coma: %sE359: La configuración de la pantalla no es válidaE35: No existe una expresión regular previaE360: No se pudo ejecutar el intérprete de órdenes con la opción -fE363: El patrón usa más memoria que 'maxmempattern'E364: Falló la llamada a la biblioteca para "%s()"E365: Falló la impresión del archivo PostScriptE367: No existe el grupo: %sE369: El elemento en %s%%[] no es válidoE36: No hay espacio suficienteE370: No se pudo cargar la biblioteca dinámica %sE371: No se encontró la ordenE372: Demasiados %%%c en la cadena de formatoE373: %%%c inesperado en la cadena de formatoE374: Falta ] en la cadena de formatoE375: %%%c no admitido en cadena de formatoE376: %%%c no es válido en el prefijo de una cadena de formatoE377: %%%c no es válido en una cadena de formatoE378: 'errorformat' no contiene un patrónE379: Hace falta el nombre del directorioE37: No guardó el archivo desde el último cambio (añada "!" para forzar)E380: Al final de la pila de corrección rápidaE381: Al principio de la pila de corrección rápidaE382: No se pudo escribir, la opción "buftype" está activaE383: La cadena de búsqueda no es válida: %sE384: La búsqueda ha llegado al PRINCIPIO sin coincidir con: %sE385: La búsqueda ha llegado al FINAL sin coincidir con: %sE386: Esperaba "?" o "/" después de ";"E387: La coincidencia está en la línea bajo el cursorE388: La definición no se encontróE389: El patrón no se encontróE38: Argumento nuloE390: Argumento ilegal: %sE391: No existe tal agrupamiento sintáctico: %sE392: No existe tal agrupamiento sintáctico: %sE393: "grouphere" y "groupthere" no son válidos aquíE394: No se encuentra el elemento de la región para %sE395: el contenido del argumento no se acepta aquíE396: el argumento "containedin" no se acepta aquíE397: Debe proporcionar un nombre de archivoE398: Falta un '=': %sE399: Argumentos insuficientes: región de sintaxis %sE39: Se esperaba un númeroE400: No se ha especificado una agrupaciónE401: No hay un delimitador de patrón: %sE402: Basura después del patrón: %sE403: Sincronización de sintaxis: Se especificó dos veces un patrón de continuación de líneaE404: Argumentos ilegales: %sE405: Falta el signo igual: %sE406: Argumento vacío: %sE407: %s no se permite aquíE408: %s debe ser el primero en la lista de contenidoE409: Nombre de grupo desconocido: %sE40: No se pudo abrir el archivo de errores "%s"E410: Suborden ":syntax" no válido: %sE411: grupo de resaltado no encontrado: %sE412: Argumentos insuficientes: ":highlight link %s"E413: Demasiados argumentos: ":highlight link %s"E414: Esta grupo está configurado, se ignora el enlace resaltadoE415: Signo "=" inesperado: %sE416: Falta el signo "=": %sE417: Falta el argumento: %sE418: Valor ilegal: %sE419: Color en primer plano desconocidoE41: ¡Memoria agotada!E420: Color de fondo desconocidoE421: Nombre o número de color desconocido: %sE422: Código de terminal demasiado largo: %sE423: Argumento ilegal: %sE424: Hay demasiados atributos de resaltado sintáctico en usoE425: No se pudo ir antes de la primer etiqueta coincidenteE426: No se encontró la etiqueta: %sE427: Sólo coincide una etiquetaE428: No se pudo ir más allá de la última etiqueta coincidenteE429: El archivo "%s" no existeE42: No hay erroresE430: La ruta del archivo de etiquetas %s está truncada
E431: Error de formato en el archivo de etiquetas "%s"E432: Archivo de etiquetas sin ordenar: %sE433: No hay archivo de etiquetasE434: No se pudo encontrar el patrón de la etiquetaE435: No se pudo encontrar la etiqueta. ¡Estoy adivinando!E436: la entrada %s no existe en el archivo "termcap"E437: Se necesita la capacidad "cm" en el terminalE438: "u_undo": números de línea erróneosE439: la lista de deshacer se ha dañadoE43: Cadena de coincidencia dañadaE440: falta la línea deshacerE441: No hay una ventana de vista previaE442: No se puede dividir arriba izq. y abajo der. al mismo tiempoE443: No se puede rotar cuando otra ventana está divididaE444: No se puede cerrar la última ventanaE445: Otra ventana contiene cambiosE446: No hay un nombre de archivo bajo el cursorE447: No se pudo encontrar el archivo "%s" en la rutaE448: No pude cargar la biblioteca de funciones %sE449: Se recibió una expresión inválidaE44: El programa "regexp" está corruptoE455: Error escribiendo al archivo PostScript de salidaE456: No se encontró el archivo de recursos PostScript "%s.ps"E456: No se encontró el archivo de recursos PostScript "cidfont.ps"E456: No se encontró el archivo de recursos PostScript "prolog.ps"E456: No se pudo abrir el archivo %sE457: No se pudo leer el archivo de recursos de PostScript "%s"E459: No se pudo regresar al directorio previoE45: La opción 'readonly' está activada (añada "!" para forzar)E460: Se perdería el segmento ("fork") de recursos (añada ! para forzar la orden)E461: Nombre ilegal para una variable: %sE462: No pude prepararme para recargar "%s"E463: La región está protegida, no se puede modificarE464: Uso ambiguo de una orden definida por el usuarioE465: ":winsize" requiere de dos argumentos numéricosE466: ":winpos" requiere de dos argumentos numéricosE467: Las finalizaciones definidas por el usuario requieren de un argumento de funciónE468: El argumento de finalización solo se permite en finalizaciones definidas por el usuarioE469: La marca "cscopequickfix" %c para %c no es válidaE46: No puede cambiar la variable de solo lectura "%s"E470: La orden se ha interrumpidoE471: Es necesario un argumentoE472: La orden fallóE473: Error internoE474: El argumento no es válidoE475: El argumento no es válido: %sE476: La orden no es válidaE477: "!" no está permitidoE478: ¡No entre en pánico!E479: No hay coincidenciaE47: Error al leer el archivo de erroresE480: No coincide: %sE481: El rango no está permitidoE482: No se pudo crear el archivo "%s"E483: No se pudo obtener el nombre del archivo temporalE484: No se pudo abrir el archivo "%s"E485: No se pudo leer el archivo "%s"E486: No se encontró el patrón de búsqueda: %sE487: El argumento debe ser positivoE488: Caracteres en exceso al final de la líneaE48: No se permite en el ambiente protegidoE490: No se encontró ningún pliegueE492: No es una orden del editorE493: Me ha dado un rango invertidoE494: Use "w" o "w>>"E495: No se ha dado un nombre de archivo de auto-órdenes para sustituir a  "<afile>"E496: No existe un búfer de auto-órdenes para sustituir por "<abuf>"E497: Ningún nombre de auto-orden concuerda para sustituir "<amatch>"E498: No hay un nombre de archivo ":source" que sustituya a "<sfile>"E499: Un nombre de archivo vacío para "%" o "#" solo funciona con ":p:h"E49: La longitud de desplazamiento no es válidaE500: La expresión evalúa a una cadena vacíaE501: Estoy al final del archivoE505: E505: "%s" es de solo lectura (añada ! para sobreescribir)E506: No se pudo escribir en el archivo de recuperación (añada ! para forzar la orden)E507: Error al cerrar el archivo de la copia de seguridad (añada ! para forzar la orden)E508: No se pudo leer el archivo para crear la copia de seguridad (añada ! para forzar la orden)E509: No se pudo crear el archivo para la copia de seguridad (añada ! para forzar la orden)E50: Demasiados \z(E510: No se pudo hacer un archivo de copia de seguridad (añada ! para forzar la orden)E512: Falló el cierre del archivoE513: Error de escritura, la conversión falló (vacíe 'fenc' para forzar).E513: Error de escritura, la conversión falló en la línea %ld(vacíe 'fenc' para forzar)E514: Error de escritura (¿Sistema de archivos lleno?)E515: No se descargó ningún búferE516: No se borró ningún búferE517: No se eliminó ningún búferE518: Opción desconocidaE519: Opción no admitidaE51: Hay demasiados %s(E520: No permitido en una "modeline"E521: Debe introducir un número después de "="E521: Debe introducir un número: &%s = '%s'E522: No lo encontré en el "termcap"E523: No se permite aquíE524: Falta un símbolo de dos puntosE525: Cadena de caracteres de largo ceroE526: Falta el número después de <%s>E527: Falta una comaE528: Debe especificar un valor E529: No se pudo definir "term" como una cadena de caracteres vacíaE52: \z( sin complementoE530: No se pudo cambiar "term" en la interfaz gráficaE531: Use ":gui" para iniciar la interfaz gráficaE533: No se pudo seleccionar el tipo de letra de impresión "ancho" (de "byte" doble)E534: Tipo de letra de impresión "ancho" inválidaE535: Carácter ilegal después de <%c>E536: necesita una comaE537: 'commentstring' debe estar vacío o contener %sE538: No hay soporte para el ratónE539: Carácter ilegal <%s>E53: %s%%( sin complementoE540: Secuencia de expresión sin cerrarE541: Demasiados elementosE542: Grupos sin equilibrarE543: No es una página de código válidaE544: No se encontró el archivo "keymap"E545: Falta un símbolo de dos puntosE546: Modo de operación ilegalE547: El "mouseshape" no es válidoE548: Se esperaba un dígitoE549: Porcentaje ilegalE54: %s( sin complementoE550: Falta un símbolo de dos puntosE551: Componente ilegalE552: Se esperaba un dígitoE553: No hay más elementosE554: Error de sintaxis en %s{...}E555: En el final de la pila de etiquetasE556: En el principio de la pila de etiquetasE557: No se pudo abrir el archivo "termcap"E558: No he encontrado la definición del terminal en "terminfo"E559: No he encontrado la definición del terminal en "termcap"E55: %s) sin complementoE560: Forma de uso: cs[cope] %sE561: Tipo de búsqueda desconocido para "cscope"E562: Forma de uso: cstag <identificador>E563: error en la función "stat"E563: Error en stat(%s): %dE564: "%s" no es un directorio ni una base de datos válida de cscopeE566: Falló la conexión "pipe" para comunicarse con "cscope"E567: No hay conexiones con "cscope"E568: Intentó añadir una base de datos de "cscope" duplicadaE570: Error fatal en "cs_manage_matches"E571: Lo siento, esta orden está desactivada pues no se pudo cargar la biblioteca de TclE572: código de salida %dE573: El ID de usuario no es válido en el servidor: %sE574: Registro desconocido de tipo %dE579: ¡":if" anidado en exceso!E580: ¡":endif" sin un ":if"!E581: ¡":else" sin un ":if"!E582: ¡":elseif" sin un ":if"!E583: ¡":else" múltiple!E584: ¡":elseif" después de ":else"!E585: ¡":while" anidado en exceso!E586: ¡":continue" sin un ":while" o ":for"!E587: ¡":break" sin ":while" o ":for"!E588: ":endfor" sin un ":for"E588: ":endwhile" sin ":while"E589: "backupext" y "patchmode" son igualesE590: Ya existe una ventana de visualización previaE591: "winheight" no puede ser más pequeño que "winminheight"E592: "winwidth" no puede ser más pequeño que "winminwidth"E593: Necesita al menos %d líneasE594: Necesita al menos %d columnasE595: Contiene un carácter no imprimible o de más de un byteE596: Las fuente/s de impresión no son válidasE597: No se pudo seleccionar ese "fontset"E598: El conjunto de tipos de letra de impresión no es válidoE599: El valor de 'imactivatekey' no es válidoE59: Carácter inválido después de %s@E600: Falta ":endtry"E601: ¡":try" anidado en exceso!E602: ¡":endtry" sin un ":try"!E603: ¡":catch" sin un ":try"!E604: ¡":catch" después de ":finally"!E605: La excepción %s no se atrapóE606: ¡":finally" sin un ":try"!E607: ¡":finally" múltiple!E608: No se pudo lanzar (':throw') excepciones si tienen el prefijo 'Vim'E609: Error de "cscope": %sE60: Hay demasiados %s{...}s complejosE612: Demasiados signos definidosE613: Tipo de letra de impresión desconocida en la impresora: %sE614: "vim_SelFile": no puedo regresar al directorio actualE615: "vim_SelFile": No se pudo obtener la ubicación del directorio actualE616: "vim_SelFile": No se puede hallar la tipografía de impresión %sE617: No puede cambiarse en la interfaz gráfica de GTK+ 2E618: El archivo "%s" no es un archivo de recursos PostScriptE619: El archivo "%s" no es un recurso PostScript que pueda usarE61: Anidado %s*E620: No se pudo convertir a la codificación de impresión "%s"E621: La versión del archivo de recursos "%s" es incorrectaE622: No se pudo crear un nuevo proceso ("fork") para usar "cscope"E623: No se pudo crear un nuevo proceso ("spawn") de "cscope"E624: No se pudo abrir el archivo "%s"E625: No se pudo abrir la base de datos "cscope": %sE626: No se pudo obtener información acerca de la base de datos "cscope"E62: Anidado %s%cE63: Uso inválido de \_E64: %s%c no sigue a nadaE655: Demasiados enlaces simbólicos (¿referencia circular?)E658: Se perdió la conexión NetBeans para el búfer %ldE659: No se pudo invocar a Python recursivamenteE65: Referencia inversa ilegalE661: Lo siento, no hay ayuda '%s' para "%s"E662: Al comienzo de la lista de cambiosE663: Al final de la lista de cambiosE664: La lista de cambios está vacíaE665: No se pudo iniciar la interfaz gráfica (GUI), no se encontró ninguna tipografía de impresión válidaE666: El compilador no es compatible en esta versión: %sE667: Falló "fsync" (sincronización de archivo)E668: El dueño/a del archivo de conexión NetBeans no es válido: %sE669: Carácter no imprimible en el nombre del grupoE66: No se permite \z( aquíE670: Mezcla de codificaciones en archivos de ayuda dentro de un lenguaje: %sE671: No se pudo encontrar el título de la ventana "%s"E672: Incapaz de abrir ventana dentro de la aplicación MDIE673: Codificación y set de caracteres multi-byte incompatiblesE674: "printmbcharset" no puede estar vacío en una codificación multi-byteE675: No se ha definido un tipo de letra predeterminado para impresión multi-byteE676: No coincide ninguna auto-orden para "acwrite"en el búferE677: Error al escribir el archivo temporalE678: Carácter no válido después de %s%%[dxouU]E679: bucle recursivo al cargar "syncolor.vim"E67: \z1 et al. no se permiten aquíE680: número de <búfer=%d> no válidoE681: El búfer no está cargadoE682: Patrón de búsqueda o delimitador no válidoE683: Falta el nombre del archivo o el patrón no es válidoE684: índice de lista fuera de rango: %ldE685: Error interno: %sE686: El argumento de %s debe ser una listaE687: Menos blancos que elementos en la listaE688: Más blancos que elementos en la listaE689: Solo puedo indexar una lista o un diccionarioE68: Hay un carácter no válido después de \zE690: Falta "in" después de :forE691: Solo se puede comparar una lista con otra listaE692: Operación inválida para listaE693: Solo se puede comparar un "Funref" con otro "Funcref"E694: Operación inválida para "Funcrefs"E695: No se puede crear un índice de un "Funcref"E696: Falta una coma en la lista: %sE697: Falta una marca de final de lista ']': %sE698: La variable está anidada muy profundamente para hacer una copiaE699: Demasiados argumentosE69: Falta ] después de %s%%[E700: Función desconocida: %sE701: No es un tipo válido para len()E702: Fallo al ordenar funciones comparadasE703: Usando una función de referencia como "Number"E704: El nombre de una variable de Función de referencia debe empezar con mayúscula: %sE705: Nombre de variable en conflicto con una función existente: %sE706: Tipo de variable no concuerda con : %sE707: El nombre de la función entran en conflicto con la variable: %sE708: [:] debe ir al finalE709: [:] requiere un valor de la listaE70: %s%%[] vacíoE710: La lista de valores tiene más elementos que blancosE711: La lista de valores no tiene suficientes elementosE712: El argumento de %s debe ser una lista o un diccionarioE713: No se puede usar una llave vacía para el diccionarioE714: Se requiere una listaE715: Se requiere de un diccionarioE716: No se encuentra la llave en el diccionario. %sE717: Esta entrada ya existe en el diccionarioE718: Se requiere una referencia de funciónE719: No puede usar [:] con un diccionarioE71: Carácter ilegal después de %s%%E720: Falta una marca de dos puntos en el diccionario: %sE721: Llave duplicada en el diccionario: %sE722: Falta una coma en el diccionario: %sE723: Falta una marca de cierre '}' en el diccionario: %sE724: La variable está anidada demasiado profundamente para mostrarlaE725: Llamando una función "dict" sin un diccionario: %sE726: El largo es ceroE727: El inicio está más allá del finalE728: Usando un Diccionario como "Number"E729: Usando una Función de referencia como "String"E72: Error de cierre en el archivo de intercambioE730: Usando una "List" como "String"E731: Usando un Diccionario como "String"E732: Usando ":endfor" con ":while"E733: Usando ":endwhile" con ":for"E734: Tipo de variable incorrecta para %s=E735: Solo se puede comparar un diccionario con otro diccionarioE736: Operación inválida para diccionarioE737: Ya existe una llave: %sE738: No se pudo enumerar las variables de %sE739: No se pudo crear directorio: %sE73: La pila de etiquetas ('tagstack') está vacíaE740: Demasiados argumentos para la función: %sE741: El valor está bloqueado: %sE742: No se pudo cambiar el valor de %sE743: La variable está anidada muy profundamente para (des)bloquearE744: NetBeans no permite cambios a archivos de sólo lecturaE745: Usando una "Lista" como "Number"E746: Nombre de función no concuerda con el nombre de archivo: %sE747: No se pudo cambiar de directorio, el búfer fue modificado (añada ! para forzar la orden)E748: No hay registro previamente en usoE749: Búfer vacíoE74: La orden es demasiado complejaE750: Primero use ":profile start <nombre_de_archivo>"E751: El nombre del archivo de salida no debe contener un nombre de regiónE752: No hay un reemplazo de ortografía previoE753: No se encontró: %sE754: Solo se pueden usar hasta 8 regionesE755: Región no válida en %sE756: La corrección ortográfica está desactivadaE757: Esto no parece un archivo de ortografíaE758: Archivo de ortografía truncadoE759: Error de formato en el archivo de ortografíaE75: El nombre es demasiado largoE760: No hay cuenta de palabras en %sE761: Error de formato en el archivo de afijos FOL, LOW o UPPE762: El carácter en FOL, LOW o UPP está fuera de rangoE763: Los caracteres de la palabra difieren entre archivos de ortografíaE764: No se ha definido la opción '%s'E765: 'spellfile' no tiene entradas %ldE766: Argumentos insuficientes para printf()E767: Demasiados argumentos para printf()E768: El archivo de intercambio ya existe: %s (use ! para sobreescribir)E769: Falta ] después de %s[E76: Hay demasiados [E770: Sección no compatible en el archivo de ortografíaE771: Archivo de ortografía obsoleto, debe actualizarloE772: El archivo de ortografía es para una versión de Vim más recienteE773: Bucle de symlinks para "%s"E774: 'operatorfunc' está vacíoE775: La característica "eval" no está disponibleE776: No hay una lista de posicionesE777: Se esperaba una lista o una cadena de caracteresE778: Esto no se parece a un archivo .sug: %sE779: Archivo .sug obsoleto, necesita una actualización: %sE77: Hay demasiados nombres de archivosE780: El archivo .sug es para una versión más reciente de Vim: %sE781: El archivo .sug no corresponde al archivo .spl: %sE782: Error al leer archivo .sig: %sE783: carácter duplicado en entrada MAPE784: No se pudo cerrar la última ventanaE785: complete() solo se puede usar en modo "Insert"E786: El rango no está permitidoE787: El búfer cambió inesperadamenteE788: No se permite editar otro búfer en este momentoE789: Falta un ']': %sE78: Marca desconocidaE790: "undojoin" no está permitido después de "undo"E791: Definición de "keymap" vacíaE792: Nombre de menú vacíoE793: Ningún otro búfer está en modo de diferenciasE794: No se puede definir la variable en el "sandbox": "%s"E795: No se pudo borrar la variable %sE79: No se pudo expandir los comodinesE800: No se pudo usar el árabe: no se activó al compilar
E804: No se puede usar '%' con "Float"E805: Usando "Float" como un "Number"E806: Usando "Float" como "String"E807: Se esperaba un argumento "Float" para printf()E808: Se requiere "Number" o "Float"E809: #< no está disponible sin la característica "+eval"E80: Error al escribir el archivoE810: No se puede leer o escribir en archivos temporalesE811: No se permite cambiar la información del búfer en este momentoE812: *Filtro* Las auto-órdenes no deben cambiar el búfer en usoE813: No se puede cerrar la ventana de autocmdE814: No se pudo cerrar la última ventana, solo quedará la ventana de autocmdE815: Lo siento, esta orden está desactivada, no se pudo cargar las bibliotecas de MzSchemeE816: No se pudo leer la salida del parcheE81: Usando <SID> en un contexto que no es de archivo de órdenesE82: No se pudo asignar memoria para ningún búfer, saliendo...E83: No se pudo asignar memoria para el búfer, usando otro...E84: No se encontró ningún búfer modificadoE85: No hay búfers en la listaE86: El búfer %ld no existeE87: No se pudo ir más allá del último búferE88: No se pudo regresar antes del primer búferE89: No se guardó el archivo desde el último cambio del búfer %ld (añada "!" para forzar)E90: No se pudo descargar el último búferE91: La opción 'shell' (intérprete de órdenes) está vacíaE92: No se encontró el búfer %ldE93: Hay más de una coincidencia con %sE94: No hay un búfer que coincida con %sE95: Ya existe un búfer con este nombreE96: No se puede usar "diff" con más de %ld búfersE97: No se pudieron crear las "diffs" (diferencias)E98: No se pudo leer la salida de "diff"E99: El búfer actual no está en modo de diferenciasERROR: Editar archivoEditar archivo en una ventana nuevaEditar con &VimEditar con &múltiples VimsEditar con un Vim en ejecución -Editar con un solo &VimEditar el(los) archivos seleccionado/s con VimCodificando:Fin de la funciónFin del archivo de instrucciones ejecutablesIntroduzca la clave de cifrado: Introduzca el número del archivo de intercambio a usar (0 para salir): Introduzca la misma clave de cifrado otra vez: Iniciando modo de depuración. Escriba "cont" para continuar.Entrando al modo Ex. Escriba "visual" para ir al modo NormalErrorError e interrupciónError al crear el proceso: ¡Asegúrese de que gvim esta en su ruta de acceso!Se ha detectado un error al procesar %s:Uso de memoria estimado al usar: %d bytesExcepciónExcepción atrapada: %sExcepción descartada: %sExcepción terminada: %sExcepción lanzada: %sEjecutando %sEsperaba conteo MAP en %s línea %dEsperaba conteo REP(SAL) en %s línea %dEsperaba Y o N en %s línea %d: %sExpresiónSub-coincidencias externas:
"FLAG" después de usar parámetros en %s línea %d: %sNo existe el archivo "%s"Los permisos del archivo "%s" son de
sólo lectura. Cabe la posibilidad de escribir
en él. ¿Desea intentarlo?Archivo preservadoArchivosFiltroBuscar y reemplazar (use '\\' para encontrar un '\')Encontrar &SiguienteEncontrar siguienteBuscar cadena (use '\\' para encontrar un '\')Buscar símbolo¿Encontrar qué?:Primera palabra duplicada en %s line %d: %sLa marca no es un número en %s línea %d: %sLa tipografía de impresión '%s' no es de ancho fijoSelección de tipos de letraLa anchura del tipo de letra de impresión %ld no es el doble de la de la tipografía de impresión 0
Anchura del tipo de letra de impresión 0: %ld
Tipo de letra de impresión 0: %s
Anchura del tipo de letra de impresión 1: %ld

Tipo de letra de impresión 1: %s
Tipo de letra:Basura después de la opciónGenerar "docu" de¡Saludos, usuario de Vim!¡Ayude a los niños pobres de Uganda!Se llegó al final del párrafoERROR I/OIgnorando %d palabra(s) con caracteres no-ASCII en %sIgnorando %d palabras con caracteres no-ASCIIIgnorando la línea larga en el archivo de etiquetasNombre de archivo ilegalMarca ilegal en %s line %d: %sNombre de registro ilegalCarácter de comienzo ilegalLínea de entradaMétodos de Entrada ("Input Methods")InterrupciónInterrupción: InterrumpidoArgumento no válido paraLa especificación de tipo de letra no es válidaRegión nr no válida en %s línea %d: %sEl valor para "FLAG" no es válido en la %s línea %d: %s¡Las claves de cifrado no coinciden!Matar una conexiónEnlazado: La única coincidenciaEncontrar solo palabras completasMensajeTraducción: Proyecto vim-doc-es <http://www.assembla.com/wiki/show/vim-doc-es>Falta ">"Falta una línea FOL/LOW/UPP en %sFalta una línea SOFO%s en %sModificado por Nombre:Necesito %s versión %ld
Necesito Amigados 2.04 o una versión posterior
NetBeans no permite que se escriba sobre búfers sin modificarPestaña nuevaNo hay elementos sintácticos definidos para este búferNo se encontró ninguna abreviaturaNo se han definido "breakpoints"No hay una ventanaNo hay una ventana en el destino: El envío de la expresión falló.
No hay archivos incluidosNo se encontró ninguna asociación de tecladoNo se han fijado marcasNo hay correspondencia en la posición del cursor, buscando la siguienteNo coincide ninguna auto-ordenNo hay archivos antiguosNo hay archivo de intercambioNo hay texto que imprimirNo es posible deshacer; continuando de todos modosNo se han encontrado órdenes definidos por el usuarioSin usarNada que hacerNúmero de palabras después de la compresión fonética: %ldOKDiálogo: Abrir ArchivosAbrir pestaña...Abrir pestaña...Falló la apertura de la pantalla de XEl "display" de X tardó demasiado en abrirseAbrir la pantalla X tomó %ld msegArchivo original %s¿Escribir sobre el archivo existente "%s"?Página %dNo se permite la escritura parcial de los búfers de NetBeansArchivo de parches¡La ruta de acceso es demasiado larga!Nombre de la ruta:Patrón encontrado en cada línea: %sNo se encontró el patrón de búsquedaEjecutando compresión fonéticaPulse INTRO o escriba una orden para continuarSe ha enviado la tarea de impresión.Impreso: %sImprimiendo %sImpresión interrumpidaImprimiendo la página %d (%d%%)Petición de un patrónPreguntaLeyendo el archivo de afijos "%s"...Releyendo el archivo de ortografía ...Leyendo el archivo de diccionario %s ...Leyendo la entrada estándar...Leyendo archivo de ortografía "%s"Leyendo el archivo "viminfo" "%s"%s%s%sLeyendo archivo de palabras "%s" ...Recuperación completa. Ud. debería comprobar que todo está bienReiniciar todas las conexionesReemplazarReemplazar &TodosReemplazar todosReemplazar con:RestaurarRestaurar de todos los proyectosRestaurar del archivoRestaurar del proyectoEjecutando en modo compatible con ViEjecución no modal, el texto escrito se inserta directamenteSNiFF+ está actualmente Guardar comoDiálogo: Guardar ArchivosGuardar redirecciónGuardar sesiónGuardar configuraciónGuardar vista¿Guardar los cambios en "%s"?Buscando en el diccionario: %sExplorando el archivo incluido: %sBuscando etiquetas.Buscando: %sScrollbar Widget: No pude obtener la geometría de la miniatura "pixmap"Cadena de búsquedaBuscando "%s"Buscando "%s" en "%s"Buscando en el archivo incluido: %sBuscando el archivo de etiquetas %sVea ":help E312" para más información.Véase ":help W11" para más información.Véase ":help W12" para más informaciónVéase ":help W16" para más información.Diálogo: Selección de directorioSelección %s%ld de %ld Líneas; %ld de %ld Palabras; %ld de %ld CaracteresSelección %s%ld de %ld Líneas; %ld de %ld Palabras; %ld de %ld Caracteres; %ld de %ld BytesSelecciónEnviando a la impresora...Mostrar la clase base deMostrar la clase en su jerarquíaMostrar la clase en jerarquía restringidaMostrar las conexionesMostrar "docu" deMostrar la función miembro que se ha sobrepasado con el código nuevoMostrar tamaño en puntosMostrar el origen de Mostrar este mensajeSignos para %s:Tamaño:Sniff: error al escribir. DesconectadoLo siento, no encuentro el archivo de ayuda "%s"Lo siento, no hay sugerenciasLo siento, solo hay %ld sugerenciasEsta orden está desactivada, no se pudo cargar la biblioteca de PerlEjecute archivo de órdenes de Vim¡Patrocine el desarrollo de Vim!El tamaño de la pila aumentaEstilo:Sustitución¡El archivo de intercambio "Ya existe un archivo de intercambio "%s", desea sobreescribirlo? ¡Ya existe un archivo de intercambio!Se han encontrado los siguientes archivos de intercambio:Página %dDesprender y flotar este menúFalló la prueba del sistema XGracias por volar con VimEl archivo se creó el La única coincidenciaEste Vim no se ha compilado con la opción "diff"Esta orden "cscope" no admite la división de la ventana.
Intercambiar implementación/definiciónDemasiados argumentos tales como: "+orden", "-c orden" o "--cmd orden"Demasiados parámetros compuestosDemasiados argumentos de ediciónHay demasiados prefijos postpuestosDemasiados prefijos postpuestos y/o "flags" compuestosDemasiadas regiones en %s línea %d: %sComienzoNúmero total de palabras: %dTexto sobrante en %s línea %d: %sEscriba ":quit<intro>" para salir de VimEscoja un número e <Intro> (la omisión cancela la acción): Escriba un número e <Intro> o pulse con el ratón (la omisión cancela) Incapaz de leer el bloque 0 de Incapaz de registrar un nombre de servidor de órdenesNo se encontró el número de "deshacer" %ldDesconocidoOpción de argumento desconocidaParámetros no reconocidos en %s línea %d: %sElemento no reconocido o duplicado en %s línea %d: %sSin títuloHacia arribaUse la versión 3.0 de Vim.
Se ha usado "CUT_BUFFER0" en vez de una selección vacíaUsando el archivo de intercambio "%s"VIM - ATENCIÓNVIM - Buscar y reemplazar...VIM - Buscar...VIM - VI MejoradoError de VimVIM: ¡No se pudo abrir la ventana!
VIMRUN.EXE no se encuentra en su $PATH.
Las órdenes externas no harán una pausa al finalizar.
Véase ":help win32-vimrun"  para más informaciónVim - Selector de tipos de letraVim E458: no se puede asignar una entrada al mapa de colores; algunos colores tal vez no sean correctosAdvertencia de VimDiálogo de VimDiálogo de Vim...Error de VimError de Vim: ~aSaliendo de Vim con %d
Vim es código abierto y se puede distribuir librementeVim: Capté el evento %s
Vim: Capté una señal mortal
Vim: Capté una señal mortal %s
Vim: Señal doble, saliendo
Vim: error al leer la entrada, saliendo...
Vim: Error: Imposible iniciar gvim para NetBeans
Vim: Finalizado.
Vim: La ventana principal fue destruida inesperadamente.
Vim: Leyendo la entrada estándar...
Vim: Recibí una solicitud "die" del administrador de sesiones.
Vim: Advertencia: la entrada no es desde un terminal
Vim: Advertencia: la salida no es un terminal
Vim: preservando archivos...
W10: Advertencia: cambiando un archivo de sólo lecturaW11: Advertencia: el archivo "%s" ha cambiado desde que comenzó la ediciónW12: Advertencia: el archivo "%s" ha cambiado y el búfer se modificó también en VimW13: Advertencia: la creación del archivo "%s" es posterior al inicio de la ediciónW14: Advertencia: La lista de nombres de archivos es muy largaW15: Advertencia: separador de línea incorrecto, puede que falte ^MW16: Advertencia: el modo del archivo "%s" ha cambiado desde que comenzó la ediciónW17: La opción árabe necesita de UTF-8, use ":set encoding=utf-8"W18: Hay un carácter no válido en el nombre del grupoADVERTENCIA: ¡¡¡El archivo ha cambiado desde que se leyó!!!ADVERTENCIA: se ha detectado Windows 95/98/MEAdvertenciaAdvertencia: No se pudo hallar la lista de palabras "%s.%s.spl" or "%s.ascii.spl"Advertencia: se ha entrado en otro búfer de forma inesperada (verifique las auto-órdenes)Advertencia: Se especificó "compounding" y NOBREAKAdvertencia: la región %s no es compatibleAdvertencia: la terminal no puede resaltar el textoal abrir el archivo "Posición de la ventana: X %d, Y %dAñadiendo palabra en "%s"Palabra proveniente de otra líneaEliminando palabra de %s¿Escribir un archivo parcial?Escribiendo archivo de ortografía "%s" ...Escribiendo el archivo de sugerencias %s ...Escribiendo archivo "viminfo" "%s"Valor equivocado de CHECKCOMPOUNDPATTERN en %s línea %d: %sValor equivocado de COMPOUNDMIN en %s línea %d: %sValor equivocado de COMPOUNDRULES %s línea %d: %sValor equivocado de COMPOUNDSYLMAX en %s línea %d: %sValor equivocado de COMPOUNDWORDMAX en %s línea %d: %sXSMP Falló el supervisión de la conexión ICEXSMP SmcOpenConnection falló: %sXSMP está manejando una solicitud de "guardelo usted mismo"XSMP perdió la conexión ICEXSMP está abriendo una conexiónXref tiene unXref referida porXref se refiere aXref usada porSIEl recuento es cero[ERROR DE CONVERSIÓN en línea %ld][Falta un CR][Suprimido][Dispositivo][El archivo es demasiado grande][Ayuda][BYTE ILEGAL en la línea %ld][Última línea incompleta][Lista de ubicaciones][NO se ha convertido][Directorio nuevo][Archivo nuevo][Archivo nuevo][Nuevo][Sin nombre][No se ha escrito nada al disco desde el último cambio]
[Sin editar][Permiso denegado][Vista previa][Lista de cambios rápidos][ERRORES DE LECTURA][RO][Errores de lectura][De cero][llamadas] total re/malloc(): %lu, total free(): %lu

[carácter especial][convertido][cifrado][formato DOS][DOS][fifo/socket][fifo][archivo ..]   Editar el/los archivos/s especificado/s[se han dividido las líneas largas][formato Mac][Mac][no hay fin de línea][Sólo lectura][socket][formato UNIX][UNIX]despuésy ejecutar "diff" con el archivo original para comprobar los cambios)
Intento de referirse a un búfer suprimidoIntento de referirse a una ventana suprimidaAuto-removiendo autocomando: %s <búfer=%d>auto-orden %santesbloque de %ld líneas copiadasbloque de 1 línea copiadaEl búfer no es validopor por Bram Moolenaar et al.Se invocó "inputrestore()" más veces que "inputsave()"Invocando %sNo se pueden borrar los atributos de "OutputObject"No se pudo leer el resultado de 'charconvert'¡¿No se pudo cambiar el modo de la consola?!
No se pudo crear la orden de búfer/ventana: el objeto se suprimiráno puedo suprimir la líneaNo puedo obtener la líneano se pudo insertar la líneaNo se puede insertar/añadir líneaNo se pudo abrirNo se pudo registrar el orden "callback": El búfer o la ventana ya se eliminóNo se pudo registrar la orden de retorno de llamada: No se pudo encontrar la referencia al búfer o la ventanano se pudo reemplazar la líneaNo se pudo guardar la información para deshacerNo se puede(n) definir la/s línea/sNo se pudo copiar "yank"; ¿Lo borro de todas formas?cambiocambioscerrarcmd: %sconectadocontinuando en %sNo pude ejecutar %sNo se pudo abrir el búferFalló la ejecución de "cs_create_connection""cs_create_connection": Falló "fdopen" para "fr_fp""cs_create_connection": Falló "fdopen" para "to_fp"órdenes de "cscope":
Conexión "cscope" %s cerradaPosición del cursor fuera del búferUsando ' por defecto¿bloque 1 suprimido?dlerror = "%s"¡no salga del editor hasta que el archivo se haya escrito!variable de entornoadministrador de erroreslista de errores %d de %d: %d erroresexpresiones desactivadas al compilarlíneas menosarchivo
nombre del archivo / contexto / línea
La ejecución de %s ha terminadoliberando %ld líneaserror de "gvimext.dll"ayudaopción ocultaen la ruta ---
Atributo no válidoNúmero de búfer no válidoexpresión no válidaNombre de marca no válidoes un dispositivo (desactivado con la opción 'opendevice')es un directoriono es un archivono es un archivo o dispositivo en el que se pueda escribires de solo lectura (añada ! para sobreescribir)Interrupción desde el tecladolínea %4ldlínea %6d, palabra %6d - %slínea %ldlínea %ld de %ld --%d%%-- col línea %ld: %slínea %ld: no se pudo ejecutar %slínea %ld: ejecutando %suna línea menosEl número de la línea está fuera del rangoEl número de la línea está fuera del rangocerrar la sesiónMarca sin definircoincidencia %dcoincidencia %d de %dmáximo"mch_get_shellsize": ¿No es una consola?
menú Editar->Opciones globales->Activar/Desactivar modo de inserciónmenú Editar->Opciones globales->Activar/Desactivar compatibilidad con Vimenú  Ayuda->Ayude a los niños huérfanos      para más información menú  Ayuda->Benefactor/Regístrese  para más informaciónmínimomodelineUna línea máslíneas másIniciado nuevo intérprete de órdenes
nono hay conexiones "cscope"
no hay una coincidencia especificaNo existe tal búferNo existe tal ventanano hay sincronizaciónno No permitido en la "sandbox" de vimno se encontrṕNo se ha encontrado en 'runtimepath': %sAún no implementadoel número modifica el tiempo"pe_line_count" es ceroLínea de órdenes previa a "vimrc"leído del socket NetBeansAtributo de solo lecturagrabando¿Reemplazar con %s (y/n/a/q/l/^E/^Y)?fila %d columna %dLa búsqueda ha llegado al FINAL, continuando desde el PRINCIPIOLa búsqueda ha llegado al PRINCIPIO, continuando desde el FINALshell El intérprete de órdenes ha devuelto %dapagar"softspace" debe ser un enteroejecutando %s"stack_idx" debería ser 0La cadena no puede contener quiebres de líneaSincronizando con los comentarios de estilo "C"Comenzando sincronizaciónetiqueta %d de %d%sNombre de la etiqueta ("tagname")para %s en %sescriba «:help cp-default<Intro>»        para más informaciónescriba  «:help iccf<Intro>»    para más información  escriba «:help register<Intro>»    para más información  escriba  «:help sponsor<Intro>»     para más información  escriba «:help version8<Intro>» para información de la versiónescriba «:help windows95<Intro>» para más informaciónescriba  «:help<Intro>» o <F1>  para obtener ayuda     escriba  «:q<Intro>»            para salir             escriba  «:set nocp<Intro>»  para los valores predefinidos de VimIndicador desconocido: opción desconocida"vimOption" desconocidaversión Error de Vimindice de ventana fuera del rangoLa ventana no es válidacon interfaz gráfica (clásica).con GUI Carbon.con interfaz gráfica para Cocoa.con interfaz gráfica de GTK.con interfaz gráfica para GTK-GNOME.con interfaz gráfica de GTK2.con interfaz gráfica para GTK2-GNOME.con interfaz gráfica de usuario.con interfaz gráfica para Photon.con interfaz gráfica de X11-Athena.con interfaz gráfica para X11-Motif.con interfaz gráfica de X11-neXtaw.sin interfaz gráfica (GUI)."writelines()" requiere una lista de cadenasse ha desactivado la escritura en dispositivo con la opción 'opendevice'PK�j�Z��~$$vim80/lang/menu_ja.cp932.vimnu�[���" Menu Translations:	Japanese (for Windows)
" Translated By:	MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change:		15-Jun-2012.
"
" Copyright (C) 2004,12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

source <sfile>:p:h/menu_japanese_japan.932.vim
PK�j�Z�g�W:0:0&vim80/lang/menu_japanese_japan.932.vimnu�[���" vi:set ts=8 sts=8 sw=8 tw=0:
"
" Menu Translations:	Japanese (CP932)
" Last Translator:	MURAOKA Taro  <koron.kaoriya@gmail.com>
" Last Change:		28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
"			  vim-jp (http://vim-jp.org/)
"
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp932

" Help menu
menutrans &Help			�w���v(&H)
menutrans &Overview<Tab><F1>	�T��(&O)<Tab><F1>
menutrans &User\ Manual		���[�U�[�}�j���A��(&U)
menutrans &How-to\ links	&How-to�����N
menutrans &Credits		�N���W�b�g(&C)
menutrans Co&pying		���쌠���(&P)
menutrans &Sponsor/Register	�X�|���T�[/�o�^(&S)
menutrans O&rphans		�ǎ�(&R)
menutrans &Version		�o�[�W�������(&V)
menutrans &About		Vim�ɂ‚���(&A)

let g:menutrans_help_dialog = "�w���v����������R�}���h�����͒P���͂��Ă�������:\n\n�}�����[�h�̃R�}���h�ɂ� i_ ��擪�ɕt�����܂�. (��: i_CTRL-X)\n�R�}���h���C���ҏW�R�}���h�ɂ� c_ ��擪�ɕt�����܂�. (��: c_<Del>)\n�I�v�V�����̖��O�ɂ� ' ��t�����܂�. (��: 'shiftwidth')"

" File menu
menutrans &File				�t�@�C��(&F)
menutrans &Open\.\.\.<Tab>:e		�J��(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	�������ĊJ��(&L)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	�^�u�y�[�W�ŊJ��<Tab>:tabnew
menutrans &New<Tab>:enew		�V�K�쐬(&N)<Tab>:enew
menutrans &Close<Tab>:close		�‚���(&C)<Tab>:close
menutrans &Save<Tab>:w			�ۑ�(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	���O��t���ĕۑ�(&A)\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	�����\��(&D)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	�p�b�`���ʂ�\��(&B)\.\.\.
menutrans &Print			��(&P)
menutrans Sa&ve-Exit<Tab>:wqa		�ۑ����ďI��(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			�I��(&X)<Tab>:qa

" Edit menu
menutrans &Edit				�ҏW(&E)
menutrans &Undo<Tab>u			�����(&U)<Tab>u
menutrans &Redo<Tab>^R			����x���(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		�J��Ԃ�(&E)<Tab>\.
menutrans Cu&t<Tab>"+x			�؂���(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			�R�s�[(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		�\��t��(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		�O�ɓ\��(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		��ɓ\��(&A)<Tab>]p
menutrans &Delete<Tab>x			����(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		�S�đI��(&S)<Tab>ggVG
menutrans &Find\.\.\.			����(&F)\.\.\.
menutrans &Find<Tab>/			����(&F)<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	�u��(&L)\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	�u��(&L)<Tab>:%s
menutrans Find\ and\ Rep&lace<Tab>:s	�u��(&L)<Tab>:s
"menutrans Options\.\.\.			�I�v�V����(&O)\.\.\.
menutrans Settings\ &Window		�ݒ�E�B���h�E(&W)
menutrans Startup\ &Settings		�N�����̐ݒ�(&S)

" Edit/Global Settings
menutrans &Global\ Settings		�S�̐ݒ�(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!
	\	�p�^�[�������ؑ�(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!
	\	�召������ʐؑ�(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!
	\	�}�b�`�\���ؑ�(&S)<Tab>:set\ sm!
menutrans &Context\ lines		�J�[�\�����Ӎs��(&C)
menutrans &Virtual\ Edit		���z�ҏW(&V)
menutrans Never				����
menutrans Block\ Selection		�u���b�N�I��
menutrans Insert\ mode			�}�����[�h��
menutrans Block\ and\ Insert		�u���b�N/�}�����[�h��
menutrans Always			�펞
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!
	\	�}��(���S��)���[�h�ؑ�(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!
	\	Vi�݊����[�h�ؑ�(&O)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		�����p�X(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.		�^�O�t�@�C��(&G)\.\.\.
"
" GUI options
menutrans Toggle\ &Toolbar		�c�[���o�[�\���ؑ�(&T)
menutrans Toggle\ &Bottom\ Scrollbar	�X�N���[���o�[(��)�\���ؑ�(&B)
menutrans Toggle\ &Left\ Scrollbar	�X�N���[���o�[(��)�\���ؑ�(&L)
menutrans Toggle\ &Right\ Scrollbar	�X�N���[���o�[(�E)�\���ؑ�(&R)

let g:menutrans_path_dialog = "�t�@�C���̌����p�X��͂��Ă�������:\n�f�B���N�g�����̓J���} ( , ) �ŋ�؂��Ă�������."
let g:menutrans_tags_dialog = "�^�O�t�@�C���̖��O��͂��Ă�������:\n���O�̓J���} ( , ) �ŋ�؂��Ă�������."

" Edit/File Settings

" Boolean options
menutrans F&ile\ Settings		�t�@�C���ݒ�(&I)
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!
	\	�s�ԍ��\���ؑ�(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!
	\	���΍s�ԍ��\���ؑ�(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!
	\ ���X�g���[�h�ؑ�(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!
	\	�s�ܕԂ��ؑ�(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!
	\	�P��ܕԂ��ؑ�(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!
	\	�^�u�W�J�ؑ�(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!
	\	�����������ؑ�(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!
	\	C���ꎚ�����ؑ�(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			�V�t�g��(&S)
menutrans Soft\ &Tabstop		�\�t�g�E�F�A�^�u��(&T)
menutrans Te&xt\ Width\.\.\.		�e�L�X�g��(&X)\.\.\.
menutrans &File\ Format\.\.\.		���s�L���I��(&F)\.\.\.

let g:menutrans_textwidth_dialog = "�e�L�X�g�̕�('textwidth')��ݒ肵�Ă������� (0�Ő��`�𖳌���):"
let g:menutrans_fileformat_dialog = "�t�@�C���o�͂̍ۂ̉��s�L���̌`����I��ł�������."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n�L�����Z��(&C)"

menutrans C&olor\ Scheme		�F�e�[�}�I��(&O)
menutrans &Keymap			�L�[�}�b�v(&K)
menutrans None				�Ȃ�

" Programming menu
menutrans &Tools			�c�[��(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	�^�O�W�����v(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		�߂�(&B)<Tab>^T
menutrans Build\ &Tags\ File		�^�O�t�@�C���쐬(&T)
menutrans &Make<Tab>:make		�r���h(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		�G���[���X�g(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	���b�Z�[�W���X�g(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		���̃G���[��(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	�O�̃G���[��(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	�����X�g(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	�V�������X�g(&E)<Tab>:cnew
menutrans Error\ &Window		�G���[�E�B���h�E(&W)
menutrans &Update<Tab>:cwin		�X�V(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		�J��(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		�‚���(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	HEX�֕ϊ�(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	HEX����t�ϊ�(&R)<Tab>%!xxd\ -r
menutrans Se&T\ Compiler		�R���p�C���ݒ�(&T)

" Tools.Spelling Menu
menutrans &Spelling			�X�y�����O(&S)
menutrans &Spell\ Check\ On		�X�y���`�F�b�N�L��(&S)
menutrans Spell\ Check\ &Off		�X�y���`�F�b�N����(&O)
menutrans To\ &Next\ error<Tab>]s	���̃G���[(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	�O�̃G���[(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	�C�����(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	�C����J��Ԃ�(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	�����\ "en"\ �ɐݒ肷��
menutrans Set\ language\ to\ "en_au"	�����\ "en_au"\ �ɐݒ肷��
menutrans Set\ language\ to\ "en_ca"	�����\ "en_ca"\ �ɐݒ肷��
menutrans Set\ language\ to\ "en_gb"	�����\ "en_gb"\ �ɐݒ肷��
menutrans Set\ language\ to\ "en_nz"	�����\ "en_nz"\ �ɐݒ肷��
menutrans Set\ language\ to\ "en_us"	�����\ "en_us"\ �ɐݒ肷��
menutrans &Find\ More\ Languages	���̌���������(&F)

" Tools.Fold Menu
menutrans &Folding			�܏��(&F)
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi	�L��/�����ؑ�(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	�J�[�\���s��\��(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	�J�[�\���s������\��(&W)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	�܏�݂�‚���(&L)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	�S�܏�݂�‚���(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	�܏�݂�J��(&P)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	�S�܏�݂�J��(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			�܏�ݕ��@(&H)
menutrans M&anual			�蓮(&A)
menutrans I&ndent			�C���f���g(&N)
menutrans E&xpression			���]��(&X)
menutrans S&yntax			�V���^�b�N�X(&Y)
menutrans &Diff				����(&D)
menutrans Ma&rker			�}�[�J�[(&R)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		�܏�ݍ쐬(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		�܏�ݍ폜(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	�S�܏�ݍ폜(&A)<Tab>zD
" moving around in folds
menutrans Fold\ col&umn\ width		�܏�݃J������(&U)

menutrans &Update		�X�V(&U)
menutrans &Get\ Block		�u���b�N���o(&G)
menutrans &Put\ Block		�u���b�N�K�p(&P)

" Names for buffer menu.
menutrans &Buffers		�o�b�t�@(&B)
menutrans &Refresh\ menu	���j���[�ēǍ�(&R)
menutrans &Delete		�폜(&D)
menutrans &Alternate		���֐ؑ�(&A)
menutrans &Next			���̃o�b�t�@(&N)
menutrans &Previous		�O�̃o�b�t�@(&P)
menutrans [No\ File]		[����]
let g:menutrans_no_file = "[����]"

" Window menu
menutrans &Window			�E�B���h�E(&W)
menutrans &New<Tab>^Wn			�V�K�쐬(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		����(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	���o�b�t�@�֕���(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	��������(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	�t�@�C���G�N�X�v���[��(&X)
menutrans &Close<Tab>^Wc		�‚���(&C)<Tab>^Wc
menutrans Move\ &To			�ړ�(&T)
menutrans &Top<Tab>^WK			��(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		��(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		��(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		�E(&R)<Tab>^WL
menutrans Close\ &Other(s)<Tab>^Wo	����‚���(&O)<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			����(&X)<Tab>^Ww
menutrans P&revious<Tab>^WW		�O��(&R)<Tab>^WW
menutrans &Equal\ Size<Tab>^W=	����������(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		�ő卂��(&M)<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		�ŏ�����(&i)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		�ő啝��(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		�ŏ�����(&H)<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		��Ƀ��[�e�[�V����(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		���Ƀ��[�e�[�V����(&D)<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		�t�H���g�ݒ�(&N)\.\.\.

" The popup menu
menutrans &Undo			�����(&U)
menutrans Cu&t			�؂���(&T)
menutrans &Copy			�R�s�[(&C)
menutrans &Paste		�\��t��(&P)
menutrans &Delete		�폜(&D)
menutrans Select\ Blockwise	��`�u���b�N�I��
menutrans Select\ &Word		�P��I��(&W)
menutrans Select\ &Sentence	���I��(&S)
menutrans Select\ Pa&ragraph	�i���I��(&R)
menutrans Select\ &Line		�s�I��(&L)
menutrans Select\ &Block	�u���b�N�I��(&B)
menutrans Select\ &All		���ׂđI��(&A)

" The GUI toolbar (for Win32 or GTK)
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		�t�@�C����J��
    tmenu ToolBar.Save		���݂̃t�@�C����ۑ�
    tmenu ToolBar.SaveAll	���ׂẴt�@�C����ۑ�
    tmenu ToolBar.Print		��
    tmenu ToolBar.Undo		�����
    tmenu ToolBar.Redo		����x���
    tmenu ToolBar.Cut		�N���b�v�{�[�h�֐؂���
    tmenu ToolBar.Copy		�N���b�v�{�[�h�փR�s�[
    tmenu ToolBar.Paste		�N���b�v�{�[�h����\��t��
    tmenu ToolBar.Find		����...
    tmenu ToolBar.FindNext	�����
    tmenu ToolBar.FindPrev	�O���
    tmenu ToolBar.Replace	�u��...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		�V�K�E�B���h�E�쐬
      tmenu ToolBar.WinSplit	�E�B���h�E����
      tmenu ToolBar.WinMax	�E�B���h�E�ő剻
      tmenu ToolBar.WinMin	�E�B���h�E�ŏ���
      tmenu ToolBar.WinClose	�E�B���h�E��‚���
    endif
    tmenu ToolBar.LoadSesn	�Z�b�V�����Ǎ�
    tmenu ToolBar.SaveSesn	�Z�b�V�����ۑ�
    tmenu ToolBar.RunScript	Vim�X�N���v�g���s
    tmenu ToolBar.Make		�v���W�F�N�g��Make
    tmenu ToolBar.Shell		�V�F����J��
    tmenu ToolBar.RunCtags	tags�쐬
    tmenu ToolBar.TagJump	�^�O�W�����v
    tmenu ToolBar.Help		Vim�w���v
    tmenu ToolBar.FindHelp	Vim�w���v����
  endfun
endif

" Syntax menu
menutrans &Syntax		�V���^�b�N�X(&S)
menutrans &Show\ filetypes\ in\ menu	�Ή��`����j���[�ɕ\��(&S)
menutrans Set\ '&syntax'\ only	'syntax'�����ݒ�(&S)
menutrans Set\ '&filetype'\ too	'filetype'��ݒ�(&F)
menutrans &Off			������(&O)
menutrans &Manual		�蓮�ݒ�(&M)
menutrans A&utomatic		�����ݒ�(&U)
menutrans on/off\ for\ &This\ file
	\	�I��/�I�t�ؑ�(&T)
menutrans Co&lor\ test		�J���[�e�X�g(&L)
menutrans &Highlight\ test	�n�C���C�g�e�X�g(&H)
menutrans &Convert\ to\ HTML	HTML�փR���o�[�g(&C)

let &cpo = s:keepcpo
unlet s:keepcpo

" filler to avoid the line above being recognized as a modeline
" filler
PK�j�Z��.`�)�) vim80/lang/menu_no_no.latin1.vimnu�[���" Menu Translations:	Norwegian / Norsk (Bokm�l)
" Maintainer:		�yvind A. Holm <sunny@sunbase.org>
" Last Change:		2012 May 01
" menu_no_no.latin1.vim 289 2004-05-16 18:00:52Z sunny

" Quit when menu translations have already been done.
if exists("did_menu_trans")
	finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in ISO-8859-1, but they work for ISO-8859-15 and
" CP1252 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
	scriptencoding latin1
endif

menutrans &File		&Fil
	menutrans &Open\.\.\.<Tab>:e		&�pne�\.\.\.<Tab>:e
	menutrans Sp&lit-Open\.\.\.<Tab>:sp	�pne\ i\ nytt\ &vindu�\.\.\.<Tab>:sp
	menutrans &New<Tab>:enew		&Ny\ fil<Tab>:enew
	menutrans &Close<Tab>:close		L&ukk<Tab>:close
	menutrans &Save<Tab>:w			&Lagre<Tab>:w
	menutrans Save\ &As\.\.\.<Tab>:sav	Lagre\ s&om�\.\.\.<Tab>:sav
	if has("diff")
	menutrans Split\ &Diff\ with\.\.\.	Sa&mmenlign\ med\ ny\ fil�\.\.\.
	menutrans Split\ Patched\ &By\.\.\.	&Patch\ i\ nytt\ vindu�\.\.\.
	endif
	menutrans &Print			&Skriv\ ut
	menutrans Sa&ve-Exit<Tab>:wqa		Lagre\ o&g\ avslutt<Tab>:wqa
	menutrans E&xit<Tab>:qa			&Avslutt<Tab>:qa
menutrans &Edit		&Rediger
	menutrans &Undo<Tab>u						&Angre<Tab>u
	menutrans &Redo<Tab>^R						&Gjenopprett<Tab>^R
	menutrans Rep&eat<Tab>\.					&Repeter<Tab>\.
	menutrans Cu&t<Tab>"+x						&Klipp\ ut<Tab>"+x
	menutrans &Copy<Tab>"+y						K&opier<Tab>"+y
	menutrans &Paste<Tab>"+gP					&Lim\ inn<Tab>"+gP
	menutrans Put\ &Before<Tab>[p					Lim\ i&nn\ f�r\ mark�r<Tab>[p
	menutrans Put\ &After<Tab>]p					Lim\ inn\ &etter\ mark�r<Tab>]p
	menutrans &Select\ All<Tab>ggVG					&Merk\ alt<Tab>ggVG
	menutrans &Find\.\.\.						&S�k�\.\.\.
	menutrans Find\ and\ Rep&lace\.\.\.				S&�k\ og\ erstatt�\.\.\.
	menutrans Settings\ &Window					&Innstillinger
	menutrans &Global\ Settings					Glo&bale\ innstillinger
		menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!		&Utheving\ av\ s�ketekst\ av/p�<Tab>:set\ hls!
		menutrans Toggle\ &Ignore-case<Tab>:set\ ic!			&Forskjell\ mellom\ store/sm� bokstaver\ av/p�<Tab>:set\ ic!
		menutrans Toggle\ &Showmatch<Tab>:set\ sm!			&Indikering\ av\ samsvarende\ parentes\ av/p�<Tab>:set\ sm!
		menutrans &Context\ lines					&Kontekstlinjer
		menutrans &Virtual\ Edit					Vi&rtuell\ redigering
			menutrans Never							&Aldri
			menutrans Block\ Selection					I\ &blokkmodus
			menutrans Insert\ mode						I\ &Innsettingsmodus
			menutrans Block\ and\ Insert					I\ Blokk-\ &og\ innsettingsmodus
			menutrans Always						A&lltid
		menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!			Innsettings&modus\ av/p�<Tab>:set\ im!
		menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!			&Vi-kompatiblitet\ av/p�<Tab>:set\ cp!
		menutrans Search\ &Path\.\.\.					&S�kesti�\.\.\.
		menutrans Ta&g\ Files\.\.\.					Ta&gfiler�\.\.\.
		menutrans Toggle\ &Toolbar					Verkt&�ylinje
		menutrans Toggle\ &Bottom\ Scrollbar				Ne&dre\ rullefelt\ av/p�
		menutrans Toggle\ &Left\ Scrollbar				Ve&nstre\ rullefelt\ av/p�
		menutrans Toggle\ &Right\ Scrollbar				&H�yre\ rullefelt\ av/p�
	menutrans F&ile\ Settings					Filo&ppsett
		menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!		&Linjenummer\ av/p�<Tab>:set\ nu!
		menutrans Toggle\ &List\ Mode<Tab>:set\ list!			L&istemodus\ av/p�<Tab>:set\ list!
		menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			Li&njebryting\ av/p�<Tab>:set\ wrap!
		menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!		Linjebryting\ ved\ &ord\ av/p�<Tab>:set\ lbr!
		menutrans Toggle\ &expand-tab<Tab>:set\ et!			Utvidelse\ av\ &tabulatorer\ av/p�<Tab>:set\ et!
		menutrans Toggle\ &auto-indent<Tab>:set\ ai!			A&utomatisk\ innrykk\ av/p�<Tab>:set\ ai!
		menutrans Toggle\ &C-indenting<Tab>:set\ cin!			&C-innrykk\ av/p�<Tab>:set\ cin!
		menutrans &Shiftwidth						&St�rrelse\ p�\ innrykk
		menutrans Soft\ &Tabstop					&Myke\ tabulatorstopp
		menutrans Te&xt\ Width\.\.\.					Te&kstbredde�\.\.\.
		menutrans &File\ Format\.\.\.					&Filformat�\.\.\.
	menutrans C&olor\ Scheme					&Fargekart
	menutrans &Keymap						&Tastaturoppsett
	menutrans Select\ Fo&nt\.\.\.					Skriftt&ype�\.\.\.
menutrans &Tools	&Verkt�y
	menutrans &Jump\ to\ this\ tag<Tab>g^]			&Hopp\ til\ tag\ under\ mark�r<Tab>g^]
	menutrans Jump\ &back<Tab>^T				Hopp\ &tilbake<Tab>^T
	menutrans Build\ &Tags\ File				Lag\ ta&gfil
	if has("folding")
	menutrans &Folding					Fol&der
		menutrans &Enable/Disable\ folds<Tab>zi			&Folder\ av/p�<Tab>zi
		menutrans &View\ Cursor\ Line<Tab>zv			Se\ &mark�rlinje<Tab>zv
		menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Se\ &bare\ mark�rlinjen<Tab>zMzx
		menutrans C&lose\ more\ folds<Tab>zm			L&ukk\ flere\ folder<Tab>zm
		menutrans &Close\ all\ folds<Tab>zM			Lukk\ &alle\ folder<Tab>zM
		menutrans O&pen\ more\ folds<Tab>zr			&�pne\ flere\ folder<Tab>zr
		menutrans &Open\ all\ folds<Tab>zR			�&pne\ alle\ folder<Tab>zR
		menutrans Fold\ Met&hod					Foldme&tode
			menutrans M&anual					&Manuell
			menutrans I&ndent					&Innrykk
			menutrans E&xpression					&Uttrykk
			menutrans S&yntax					&Syntaks
			menutrans &Diff						&Forskjeller
			menutrans Ma&rker					M&arkering
		menutrans Create\ &Fold<Tab>zf				La&g\ fold<Tab>zf
		menutrans &Delete\ Fold<Tab>zd				&Slett\ fold<Tab>zd
		menutrans Delete\ &All\ Folds<Tab>zD			Sl&ett\ alle\ folder<Tab>zD
		menutrans Fold\ col&umn\ width				Bredde\ p�\ fold&kolonne
	endif
	if has("diff")
	menutrans &Diff						&Forskjeller
		menutrans &Update					&Oppdater
		menutrans &Get\ Block					&Hent\ blokk
		menutrans &Put\ Block					&Putt\ blokk
	endif
	menutrans &Make<Tab>:make				&Kj�r\ "make"<Tab>:make
	menutrans &List\ Errors<Tab>:cl				&List\ feil<Tab>:cl
	menutrans L&ist\ Messages<Tab>:cl!			List\ &meldinger<Tab>:cl!
	menutrans &Next\ Error<Tab>:cn				&Neste\ feil<Tab>:cn
	menutrans &Previous\ Error<Tab>:cp			Fo&rrige\ feil<Tab>:cp
	menutrans &Older\ List<Tab>:cold			&Eldre\ liste<Tab>:cold
	menutrans N&ewer\ List<Tab>:cnew			N&yere\ liste<Tab>:cnew
	menutrans Error\ &Window				Fe&ilvindu
		menutrans &Update<Tab>:cwin				&Oppdater<Tab>:cwin
		menutrans &Open<Tab>:copen				&�pne<Tab>:copen
		menutrans &Close<Tab>:cclose				&Lukk<Tab>:cclose
	menutrans &Set\ Compiler				&Velg\ kompilator
	menutrans &Convert\ to\ HEX<Tab>:%!xxd			Konverter\ til\ hek&sadesimal<Tab>:%!xxd
	menutrans Conve&rt\ back<Tab>:%!xxd\ -r			K&onverter\ tilbake<Tab>:%!xxd\ -r
menutrans &Syntax	&Syntaks
	menutrans &Show\ filetypes\ in\ menu	&Vis\ filtyper\ i\ menyen
	menutrans Set\ '&syntax'\ only		Sett\ bare\ '&syntax'
	menutrans Set\ '&filetype'\ too		Sett\ '&filetype'\ ogs�
	menutrans &Off				&Av
	menutrans &Manual			&Manuell
	menutrans A&utomatic			A&utomatisk
	menutrans on/off\ for\ &This\ file	Av/p�\ for\ &denne\ filen
	menutrans Co&lor\ test			Far&getest
	menutrans &Highlight\ test		Uthevings&test
	menutrans &Convert\ to\ HTML		Konverter\ til\ &HTML
menutrans &Buffers	&Buffer
	menutrans &Refresh\ menu	&Oppdater
	menutrans Delete		&Slett
	menutrans &Alternate		&Veksle
	menutrans &Next			&Neste
	menutrans &Previous		&Forrige
	menutrans [No\ File]		[Uten\ navn]
menutrans &Window	Vi&ndu
	menutrans &New<Tab>^Wn			&Nytt<Tab>^Wn
	menutrans S&plit<Tab>^Ws		&Splitt<Tab>^Ws
	menutrans Sp&lit\ To\ #<Tab>^W^^	Splitt\ &til\ #<Tab>^W^^
	menutrans Split\ &Vertically<Tab>^Wv	S&plitt\ loddrett<Tab>^Ws
	menutrans Split\ File\ E&xplorer	&Filbehandler
	menutrans &Close<Tab>^Wc		&Lukk<Tab>^Wc
	menutrans Close\ &Other(s)<Tab>^Wo	Lukk\ &andre<Tab>^Wo
	menutrans Move\ &To			Fl&ytt\ til
		menutrans &Top<Tab>^WK			&Toppen<Tab>^WK
		menutrans &Bottom<Tab>^WJ		&Bunnen<Tab>^WJ
		menutrans &Left\ side<Tab>^WH		&Venstre\ side<Tab>^WH
		menutrans &Right\ side<Tab>^WL		&H�yre\ side<Tab>^WL
	menutrans Rotate\ &Up<Tab>^WR		Roter\ &opp<Tab>^WR
	menutrans Rotate\ &Down<Tab>^Wr		&Roter\ ned<Tab>^Wr
	menutrans &Equal\ Size<Tab>^W=		Lik\ st&�rrelse<Tab>^W=
	menutrans &Max\ Height<Tab>^W_		&Maksimal\ h�yde<Tab>^W_
	menutrans M&in\ Height<Tab>^W1_		M&inimal\ h�yde<Tab>^W1_
	menutrans Max\ &Width<Tab>^W\|		Ma&ksimal\ bredde<Tab>^W\|
	menutrans Min\ Widt&h<Tab>^W1\|		Minimal\ &bredde<Tab>^W1\|
menutrans &Help		&Hjelp
	menutrans &Overview<Tab><F1>	&Oversikt<Tab><F1>
	menutrans &User\ Manual		&Brukerh�ndbok
	menutrans &How-to\ links	&F�rstehjelp
	menutrans &Find\.\.\.		&S�k�\.\.\.
	menutrans &Credits		&Kreditering
	menutrans Co&pying		&Programlisens
	menutrans &Sponsor/Register	S&t�tte/Registrering
	menutrans O&rphans		Fo&reldrel�se
	menutrans &Version		&Versjon
	menutrans &About		&Om\ Vim

" Popup
	menutrans &Undo			&Angre
	menutrans Cu&t			Klipp\ &ut
	menutrans &Copy			&Kopier
	menutrans &Paste		&Lim\ inn
	menutrans &Delete		&Slett
	menutrans Select\ Blockwise	Marker\ blokk&vis
	menutrans Select\ &Word		Marker\ &ord
	menutrans Select\ &Line		Marker\ lin&je
	menutrans Select\ &Block	Marker\ &blokk
	menutrans Select\ &All		Marker\ al&t

" Verkt�ylinje
if has("toolbar")
	if exists("*Do_toolbar_tmenu")
		delfunction Do_toolbar_tmenu
	endif
	function Do_toolbar_tmenu()
		tmenu ToolBar.Open		�pne fil
		tmenu ToolBar.Save		Lagre fil
		tmenu ToolBar.SaveAll		Lagre alle filer
		tmenu ToolBar.Print		Skriv ut
		tmenu ToolBar.Undo		Angre
		tmenu ToolBar.Redo		Gjenopprett
		tmenu ToolBar.Cut		Klipp
		tmenu ToolBar.Copy		Kopier
		tmenu ToolBar.Paste		Lim inn
		tmenu ToolBar.Find		S�k�...
		tmenu ToolBar.FindNext		Finn neste
		tmenu ToolBar.FindPrev		Finn forrige
		tmenu ToolBar.Replace		S�k og erstatt�...
		if 0 " Disabled, they are in the Windows menu
			tmenu ToolBar.New	Nytt vindu
			tmenu ToolBar.WinSplit	Splitt vindu
			tmenu ToolBar.WinMax	Maksimal vindush�yde
			tmenu ToolBar.WinMin	Minimal vindush�yde
			tmenu ToolBar.WinClose	Lukk vindu
		endif
		tmenu ToolBar.LoadSesn		�pne �kt
		tmenu ToolBar.SaveSesn		Lagre �kt
		tmenu ToolBar.RunScript		Kj�r Vim-skript
		tmenu ToolBar.Make		Kj�r "make"
		tmenu ToolBar.Shell		Start skall
		tmenu ToolBar.RunCtags		Oppdater tag-fil
		tmenu ToolBar.TagJump		Hopp til tag
		tmenu ToolBar.Help		Hjelp!
		tmenu ToolBar.FindHelp		S�k i hjelpen�...
	endfunction
endif

" Dialogmeldinger
	let g:menutrans_no_file = "[Uten navn]"
	let g:menutrans_help_dialog = "Skriv en kommando eller ord du vil ha hjelp om:\n\nLegg til i_ i begynnelsen for inndatametoder (f.eks.: i_CTRL-X)\nLegg til c_ i begynnelsen for kommandoer som redigerer kommandolinjen (f.eks.: c_<Del>)\nLegg til ' i begynnelsen for et valgnavn (f.eks.: 'shiftwidth')"
	let g:menutrans_path_dialog = "Skriv s�kesti for filer.\nSkill katalognavn med komma."
	let g:menutrans_tags_dialog = "Skriv navn p� tagfiler.\nSkill navnene med komma."
	let g:menutrans_textwidth_dialog = "Velg ny tekstbredde (0 for � forhindre formatering): "
	let g:menutrans_fileformat_dialog = "Velg filformat som filen skal lagres med"

let &cpo = s:keepcpo
unlet s:keepcpo

"    vim: set ts=8 sw=8 :
" vim600: set fdm=indent :
PK�j�Zu��'ݿݿ#vim80/lang/pt_BR/LC_MESSAGES/vim.monu�[�������<
<y����
ʡء�'��/�O�e�{�L��:ޣ�&�+.�Z�"u�����ɤ5٤�,�H�e�t����;Y�����ʦ�����)�?�Z�r�0��.��/�0�
J�X�n���
����
¨$ͨ$�� (�I�@X�D��ީ�"�4�"S�v�����@���
��,�<�K�/^�8��,ǫ=�2�I�c�}���0��1Ѭ1�5�J�_�{�-��í����"�?�W�3o�3��׮��$�>�O�
i�t���������
ׯ$�
�L� c�����;�����#�	0�:�S�c�t�
}���������ױ	����	�!�=�L�l��������� ò����9�B�K�
S�a�6n���³۳!���
$�2�	?�I�i�u�z�&�	��"��*Ӵ��=�
T�b�	h�r�~�����	��
��
��̵
յ���
�5+�a�-s�1��&Ӷ���'�:�N�c�~�$����ŷ
ٷ���"�5�G�Z�n�~���������и���
�'�4�@�
P�[�m�7}���!¹����
����+�:�=>�2|�������Ǻ'غ-�2.�a�~�?��׻��+�?�	N�X�r���-��׼$���
<�G�W�k�w�=��?̽�2�!N�%p�@��9׾E�9W�C��KտI!�Hk�;��6�8'�3`�<��4�-�64�k�%�����������&�,?�#l�4�� ��@��-'�0U�:��;����"�@�>Q�)��>��<��6�B�#b�:��'��9��#�$<�9a�4��;�� �>-�1l�/����-���.(�BW�"��2��4��*%�P�+n�%��'��(��<�EN�.��-��$���</�l�*��&�� ��4��.�?�Q�d�p�������������������"�%�1�@�X�p���)����$�����
�#�1<�?n��������������+�>�XW�%���������,�E�_�w�����$����!������.�2�P�"n�$����#�������?�Q�g� ����4����	
�C�VX���
��
��.���-�K�-j�$��.��6��#�.=�Hl�(������
�O�Oa�
��C��	�
��!.�P�V�t�3y�2��!��(�+� D�"e�E����%��#�-5�c�����&�������#�<�T�'l���)��+��@�-F�t�5���������/0�9`���E����-�7F�#~� ��:��5��&4�"[�&~�$��#��!��=�5N� ��(��7��.�,5�b�~����� ��#��&�,�C�[�v���������0�$9�!^� ��(��4��,��,�H�[�q��� ������1��(�!E�%g�%��!��%����$� 9�Z�v�?��&��#���
8�AF�%��"��"��9��'.�(V�2�*��!��!��)!�%K�!q�4��:��&�;*�;f�)��0�����8�Q�c�#|�!��8��&��#"�F� ^�/�"����-���"�;�/S�*��(��#�����2�O�k�>��������"�4�S�i���#����9��1�1G�)y�1��%��7��3�AM�?��������!�>�Z�u�0��4��$��)�NI�,��&��L��9�Q�g�8~���$�����#,�7P�N�����$+�!P�3r�,��2�%�,�"G�j�#�������B"�e�0�!�� �<�+0�\�|�+��2��$��,3�`�H{�,���"'�J�g������9��2�M�0i�#��'�����,�&C�j�}�+��2��-�(�E�"^�'��'��,���.�D�#d�,��W��)
"7,Z%�� ��2272j�!���2
5='s#�)�3�$%Bh����$�& 8'Y*�#�'�%�3>!r�+��*�-*$X}����  &$G$l)���,�+%Fl=���		'6	^	{	$�	#�	0�	.
0A
r
�
�
�
�
�

-$ Rs7�)��$(-Vu%�$���
'
F
'e
 �
�
�
�
 �
70Q�#��"�(!1S-q1�6�5>.Y*�1�9�*?&j+�,�+�4<K+�*���
"7Ni��"���;Tm�����+:>=y<�6�<+h"��+�)�45D4z3��0� &GDZP�%�5Ss����!�0G[t��'��! B_"w�1���"*Mbz�����2F^s����*�)&Pc |���6�#=)Y&�K�� 	 * I d } � � � "� &!#(!L!g!+�!%�!7�!5"F"c",�"�"�"�")�"  #A#W#s#�#�#�#�#�#0$H$_$~$�$4�$.�$$%)C%1m%;�%�%.�%*&E&$e&�&%�&,�&�&%	'/'H'_'&y'-�'&�'�' (2(O(j(+�( �(�(?�()$)N)6h)#�)2�)9�)>0*8o*1�*�*)�*)"+ L+)m+�+)�+*�+",*,#C,"g,"�,)�,�,�,%- ;-$\-�-�-!�-0�-.*.E.`."}.!�.9�.8�./5/e/~/�/+�/%�/10)40^0r0'�0%�0�0&�0!1%:1'`1%�1'�1-�12272L2$a2�2�2�2"�23$3!D31f3&�3�3!�3!�3 4(54^4x4+�48�4�475ET5!�5�5�5(�506#B6f6$z6�6#�6*�6	7$7770Q72�70�7�7+8)/8$Y8/~8�8�8'�8)9,*9W9s9 �9�9�9-�9,:B:/[:+�:'�:!�: ;0";S;!k;,�;�;�;(�;<$<0:<.k<�<1�<&�<:=N=9k=�=:�=�=>4>T>*r>�>3�>�>%	?2/?0b?!�?;�?R�?D@*c@�@�@(�@�@+A+3A_A zA"�A%�A �A+B"1B+TB�B.�B4�BIC)NC)xC6�C6�C-D(>D/gD&�D<�D)�D*%EPE7jE�E�E�E*�E"F@F0\F/�F!�F"�F*G/-G;]G�G�GQ�G.#HRH$rH#�H0�H#�HI2/I6bI�I+�I%�IXJ;dJ/�J;�JK!,K%NK"tKN�K.�K$L&:LTaL#�L"�L$�L "MCMcM#�M]�M NB$N'gN�N/�N2�N,O"<O_O&yO(�O%�O�OP,PEIP!�P �P7�P
Q% QFQ'fQ�Q'�Q�Q�Q<	RFR"fR'�R�R�R+�RS((S!QS5sS�S7�S!T%"T/HT!xT�T�T'�TU)U;IU&�U(�U8�U&V5V.MV|V)�V&�V�VW'"WJW	RW\WtW�W�W�W#�W	�W�W
XX.5XdX.{X6�X�X�X6�X#2Y
VY&aY	�Y�Y�Y�Y�Y�Y �Y%Z!?Z
aZlZ(�Z��ZaV[�[+�[a�[_\n\t\({\
�\	�\%�\
�\�\&]&/]V](s]�]	�]�]	�]�]
�]�]^^7^	L^2V^*�^�^�^�^__
1_<_	K_U_a_m_�_#�_(�_�_�_	``0`
N`Y`o`2w`�`�`�`�`�`a$a<a/Ya�a�a'�a�a�a
�a$�a
b$b6bGb Tbub�b�b�b!�b�b�b@c(Icrc'�c�c�c�c�c�c�c#d7dJdhd.pd
�d�d	�d�d�d�de'-eUeee
qee�e�e�e�e�e�ef/fGf]f}f9�f9�f
g!g)g6g
BgPg(ng�g�g�g�g
�g	�g�g�gh,h;h9Hh
�h�h�h�h�h&�hi6iUitiC�iW�i	(j2jHjYjmj
j�j)�j�j�j�jFkVkhk�k�k�k�k(�k�k�kl1'lYlelxl�l�l�l�l�l0�l;m>[m�m�m�m1�m"n;n?nYnAyn)�n=�n#o(@oioqo$�o0�o�o�o�o+p2-p`pup�p�p�p	�p�p��plqF�q�q
�q	�q
�q�q+r7r%Mr0srB�r(�rs1,s+^s*�s&�s9�sMt>dt)�t5�tAu4Eu$zu*�uA�uAv&Nv6uv�v<�v<�v?.w7nw/�w �w"�wx2/x0bx�x�x�x�x�xy&yEy[y2uy)�y+�y,�y-+z Yz!zz#�z�z�z�z�z�z{	%{/{8{G{N{i{�{�{�{
�{
�{�{	�{�{�{|	||
/|=|
B|	P|5Z|�|�|	�|�|�|
�|�|&�|	}})}/}
7}B}
K}Y}`}h}o}s}y}}�}�}9�}B�}D~"]~$�~"�~)�~�~$=OS1l
�$�"��<�M�'`�!������̀���H,�Cu���́���0�7�?�E�M�^�t� ��#��-΂-��*�<�X�w�����(��&փ��=�J�e�%z�
��8��F�..�D]�M��@�01�&b�'��&��$؆���$*�O�-j�����ʇ�����,�>�G�\�
w������� Ĉ�
���"�(�%:�*`�.��8��"�#�%:�#`�������Ê/Պ�
� "� C�d�
w���������΋�	��)�2=�p�������$��Ҍߌ�
���#�12�1d�1��1ȍ���	�
�(!�J�]�`�w�����
����
ӎގ��(
�'3� [�|�����ɏ	��"�#�6�G�$O�$t���������Ր
��	�(�D�T�g�y���������.��.�.�.N�.}�.��.ے.
�&9� `�%���� “:��.�6�E�T�"f�)��)��ݔ	��
��3�D�T�c�x�	��������˕�3��!���ݗ��0	�7:�r��������;9�
u���/����-ښ,�5�K�>d�,��!Л&��,��D�9�F�$\�#������Ɲݝ�0�<�Z�5v�3��4�5�K�*\�%��(��/֟��8)�:b���-���N�>@��)��(á)�(�?�W�h�\w�"Ԣ����+�@�?Z�L��2�>�Y�$q����� Ǥ=�<&�>c�����̥�8
�C�a�v���(�� Ѧ �2�6F�}��� ��ܧ���
'�2�D�d�z�!����'Ũ�M��&M� t���@�����/�
I�W�u�������!��ת�!�!&�	H�R�_�g�'{�����"ԫ��#��	#�-�%9�_�#�$��Ȭج
���?� Y�z�0��*ȭ�
��
	��!.�
P�^�c�&h���'��.Ʈ ��E�
\�j�	p�z���������ӯ��
����(�!4�>V�
��/��6Ӱ*
�5�T�j�~��� ��α4��.�
B�P�c�~�������Բ����1�>�T�f�z���"����γ
߳���)�>8�
w�$����	ô
ʹش��
����Q�Ef���	��
µ͵1�<�<Q�����_Ŷ%�?�P�6`����� ��Է%�0�I�5h�)��
ȸӸ�
���B$�Cg���?��+��,'�CT�C��IܺD&�Ck�P��K�HL�I��7߼?�:W�X��5�3!�:U���'�� Ծ��"�/�M�(_�9��+¿:�')�PQ�6��;�<�CR� �� ���7�4#�EX�F������.�?A�,��>����'�N.�:}�<��0��C&�6j�6����7��/�8>�Fw�2��7��4)�7^�$��.��&��+�2=�<p�T��:�8=�+v���F��#�-&�0T�$��?�������$�0�G�[�l�}�������	����3���!�!2�!T�v���-����$��
�"�*�C�7\�@�����������,�F�f�&��_��.�:�.?�.n�"��$�������(�A�-J�x�B��'�������!�+5�)a�!��$��E���!�4�(P�y���!��1��(�K-�y�
��J��b��G�X�g�.t�"��4��"��1�#P�?t�H��&��A$�Kf�>������[-�[����W��	U�_�k� ~�������7��6	�#@�*d���%��/��@�!B�)d�5��-����!� 3�$T�y���"����#��$�.*�Y�+y�2��F��'�G�;f���������A�?S� ��Z���?/�Fo�"��%��B��AB�1��4��/��-�4I�+~�F��H��+:�4f�A��E��4#�%X�~���"��.��.	�.8�g��� ��"�����&#�0J�5{�$��.��-�.3�-b�%����������)4�#^� ��7��&��%�9(�2b�&��*����%�((�Q�n�J��8��+�">�a�Tt�+��#��,�3F�$z�'��9��9�+;�*g�)��*��)��8�@J�.��F��A�6C�9z�+�������-�.D�,s�B��C��%'�M�%j�C��#����?
�J�#\���0��0��)��))�S�4q�%����(��;�O�)o���(��$���"!�D� d�'��9��A��4)�4^�4��0�4��.�WL�U��$��$�D�4d���%��*�3	�M=�.��*��_�0E�*v�]�����1�DJ���$���'�3�IE�X���%�B,�*o�)��H�5
�AC�3��!��;�)�;A�)}�$��$�$�S�$j�6��-�4�M)2w0��6�6-%d&�>� �U9g�-�'�(+;+g+�&�A�(F(f9�.�6�/0?9p#���2D8<}2��'/49d?��:�+4!`/�Y�1	,>	8k	3�	/�	'
0
HM
J�
:�
%)Bl�<�=�6(T/}3�.�6
G
e
 �
1�
�
/�
3%.Y7�=�2�/12a/�?�#"(8K"�,�+�#-$%R!x��.�.�&*4Q1���0� %:0`.�I�
!*Lf3�$�,�++84d-�J�#!6Xu���1�*DJbC�"�%::u�:�3�-$B)g>�%�/�'&'Nv*�'�N�:8(s'�)�8�='#e/�,�?�D&Ck$�>�/@C=�$�;�6#4Z0�/�>�A/ 4q 7� � � !%!8!R!p!�!�!�!!�!"�!%"""H"3k""�" �"!�"!#-'#-U#�#"�#&�#�#F�#GF$@�$>�$C%!R%(t%�%7�%5�%D &Ge&E�&C�&7':G'�'$�'M�'Z(5m($�(�(!�(
)%)B)!R)t)#�) �)!�)�) *!7*Y*0q*+�*�*7�*2"+7U+*�+$�+�+3�+*,I,e,'�,�,!�,#�,0-5-"P-s-�-�-�-�-..<. V.#w.$�.'�.9�.8"/[/w/*�/!�/�/�/E0GX0%�0<�0%1\)1�10�1)�1�12+2?2U2l2"�2"�2�2�23+"3-N38|36�3,�3-44G4|4/�4"�4*�4"595P5k5�5�5%�5�5�5>6O6h6�6*�69�65
7-@72n7?�7I�7+8E=80�8G�85�8$294W9A�9�96�9:3: L:/m:7�:7�: 
;-.;+\;)�;)�;P�;#-<Q<Xd<1�<�<D=2T=8�=J�=K>GW>C�>*�>+?-:?)h?/�?!�?/�?3@,H@u@(�@+�@*�@4A!AAcA6�A%�A(�A+B%4B'ZB5�B�B�B�BC8,C eCF�CB�C4DEDdDD*�D(�D7�D2EPEfE*�E*�E1�E3
F#>F-bF*�F*�F-�F0G2EGxG#�G$�G�G&�GH#<H`HH'�HA�H.I7I&RI)yI�I*�I�I)J21JFdJ�JH�JVK4jK�K�K5�K:L2@LsL2�L�L5�LFM4[M�M-�M=�M:NENN&�N,�N,�N%O9;OuO
�OE�OO�OP4P+�P �P+�P�P*Q.GQ5vQ�Q;�Q9R$@R(eR,�R9�R%�R)S1ESwS�S3�S&�ST<TCXT&�T4�T%�T5U/TUC�U�U5�UV*9VdV�V3�V �V3�V*W<?W>|W9�W/�WF%XflX1�X1Y!7Y#YY"}Y�Y4�Y?�Y(1Z+ZZ-�Z9�Z+�Z<[0W[7�[+�[+�[K\Ld\'�\'�\>]=@]*~]3�]6�],^MA^4�^8�^�^C_$W_"|_%�_)�_/�_#`:C`;~`%�`(�`,	a16aLha�a!�ah�a#_b"�b)�b(�b8�b(2c5wcC�c�c*d3:dWnd@�d6eD>e�e1�e0�e1fV6f7�f(�f;�fa*g,�g7�g)�gh:hXh"uhj�h iM$i'ri-�i0�i9�i53j'ij�j%�j'�j6�j+4k`k}kI�k�kl:l!Zl(|l&�l.�l �l-m'Jmrm;�m�m!�m(n/nLn3cn�n1�n%�n=oMo/mo+�o'�o+�o*p#Hp(lp2�p�p,�pGq1Yq4�qG�q)r 2r?Sr"�r'�r6�rs/.s+^s�s�s�s�s�s�st.tKtZtjt�t;�t �t<uA=uu�uF�u�uv&v	7vAv\vuv�v
�v'�v,�v#w,w8w<Uw��wgFx�xD�xoy|y�y�y7�y�y�y?�y
>z(Iz.rz,�z"�z-�z{
6{A{
X{c{j{z{�{!�{�{�{=|/?|0o|�|'�|�|}}-}
B}P}`}m}"�}.�}-�}~ ~6~E~(b~#�~�~�~:�~
 ;Wgm/�*�<�!�*�0/�`�&����.�����1�2H�{�����Ɂ-�4�
D�KO�7��ӂ1��
�&�3�@�,]�$����$Ń
�;��1�M�f�$o����� Ȅ0��:�G�W�l�������2ȅ ���08�i� �� ��@ɆC
� N�
o�z�����%��6Ӈ
��%�=�L�c�w��� ��ӈ�G�;�P�d���#��*ĉ)�)�)C�m�K��dϊ	4�>�X�j�������?��/�#�A�Wa���#Ќ���*�0?�p�$����<Ӎ��*�3�G�a�}���/��7�A�&Z�!����@Ï#�(�-� K�Kl�=��S��J�@h���!��1ؑ6
�A�M�S�3k�I�����5�G�Z�(f����$�X<�
��������ϔ4��&8�B_�@��1�!�57�+m�'��2��A�L6�R��1֗@�EI�6��)Ƙ�@�@O�'��8���H��H@�E��6Ϛ<�#C�6g���>��:�-�M�l�����5��%�"�8�8V�/��1��2�3$�'X�&��'��Ϟ���!�
*�8�
D�R�i�q�����������
��.�=�Q�b�s�����
��1��ܠ���
�"�
(�6�5=�s�
��������ơϡޡ	�������
��#�?)�Ni�J��)�'-�+U�7����ȣѣ�
�� �5:�p�0|�3��)�J�V�2p�,�� �#�&/� V�w�]��_�H�.e�(��*��'���
)�7�@� R�s�5��(¨.�.�I� ^�!�����ȩ*�-
�;�FJ�"����(ʪ�?�PD�2��7ȫ@�NA�4��)Ŭ*�)�'D�l��,��̭)��)�G� c���������
ήٮ���4�L�'`�������&��ݯ'�.�9J�5��%��3�1�*F�q�������8ѱ
��;.�,j�������	ٲ�
�+�<�
W�!e�!��<��!��	�&�*9�d�x�������(ȴ?�>1�?p�/�����
��%
�3�H�M�i�������'������*,�*W�������Է ���$1�V�m�
��&��&��ٸ��!�$�8�H�*`�/����-Թ+�".�Q�q���
��=��3ں2�2A�2t�1��1ٻ<�0H�*y�.��"Ӽ.��3%�Y�m�z����� ½'�(�4�=�"I�l�#}�����̾����&�<�V�o���;����S*K�O�Ih��psEA�������]��O�?��~o�X������%�q
C�H(�)
>+{�%T��cT�#��Qb�L�jS���s`Mi�5��^�jPW�������
e��8�x�����������d���K�ncmm����&*Rq�0���Z�In���7kB_&R�}����4[�����b������,A����wh���6���2�o�d���|Gp7�%lw��!�%um�N���(����)�6!���Q����/�'~�"Q�J���6�t^�
�k��&KQ3:9��>��)��<$f�v����8e��k��-���;8�
?���u03&Eo��#.���Z����X'��R[]��Vw��`���=��dO3�*:�����x$�zz��������),�������r+,�*�hJ�\�H �}��\�>u�A3\�#x���M���^�@T�lw����u<�W�-���m>�$���A�X;w�y@��fL�lS� "g�Za_�@��e�!_���&N,��t�+:pv'k���?��)�!U)��S*q�+����F��1�S��4<���I8�+�����Wx���y���Lw�!0���}�g�k������D�9X��?kz�� D"��]�^�Q,�P�0	IR@���|�c>�����FaG��0t�r~8��@-6G��9���e��W�F]Use���h�O^��o��`�=��~�M[R�K_8P��lTV�Bfh2�:���G�.��1�������N��E>�Zbw�O�����z�J��.���|���D`f�1a�n�6Ru�Y
?;�����mfr>x���?=a���fsZ��S;zg���:ET���Y�;���Y6a
�
�g�9��39��4@.�)H���-�2���N���d(C���	�A�I��N$a�����[��v$H�n	�j5�W�����4c4��^/�	��y{Bn�j�S�@����q@=D���v����P��f�������}����;�{��������*���V����<��g�2�(�o\m���
�AC-���H`=c/L�'��L��Kr����XV/(t2#D��<��/�����[�e�vzG�>�����+3i�&�0�����J�����1���/�/��E9i�����\��,nU�yBp#c}�{�Yv�]�C���D��wl�cIi�=�4E�;���9�+��!+�b��y	P{OKB����o�	������nT��(�^�[����
A����iT�M��5�	���QP�|y�-�������M�`7���s��1qH.�H�b����5'{AIN�}�Z<��|�K�U��fl�
I�3����$5��C�z��pE�d�����R��XBB2���<~yJ�,$�C��h����1����:e,
�i����0� ��#�/2�Y m��k���FY����%�jG���uF���L��NM��_�� �.��4j������{�~$�8��W���hs����<�t�-~Y=�E�ap���V(g�{ ���q01�#:���i�K�Z�d��o~���e�v��)PJM};O.��7MSu�4_J�7��r��gaV�%�[_3��O5�&dJ���`��s]��Q�qD7����\"�7�X
������k�H�2�5j����=�W^�t�����.	��������#B���h
����
��n������]V� *Np���|7!�x����6}�U�\(�'Ucs:6���Gb�x]b�otg����-�5F����8�"��|R�����mvLl'P|u�Z����jx_��!�C&����U\�D�rb?T��d�����V���t���l��'�X�iW[�U��"����"G�9��`L�
�Q%��pr���%�z�C�?YFqr����1*��y��"F
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info into "%c kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%s%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----clean		'nocompatible', Vim defaults, no plugins, no viminfo--cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked%s1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE946: Cannot make a terminal with running job modifiableE947: Job still running in buffer "%s"E948: Job still runningE948: Job still running (add ! to end the job)E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTerminalTerminal-finishedTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveactiveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yanked%sblock of 1 line yanked%sbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinishedfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %drunningsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal ontag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-09-10 11:11-0300
PO-Revision-Date: 2017-09-10 11:12-0300
Last-Translator: Eduardo S. Dobay <edudobay@gmail.com>
Language-Team: Brazilian Portuguese
Language: pt_BR
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n > 1);
X-Language: pt_BR
X-Source-Language: en

	Definido pela última vez em 

Argumentos:


uso:
        modificado: 
         [não pode ser usado neste computador]
         [não pode ser usado com esta versão do Vim]
      nome do host: 
   nome de usuário: 
    ID do processo: 
       a: Buscar atribuição a este símbolo
       c: Buscar funções que chamam esta função
       d: Buscar funções chamadas por esta função
       e: Buscar este padrão do egrep
       f: Buscar este arquivo
       g: Buscar esta definição
       i: Buscar arquivos com #include para este arquivo
       s: Buscar este símbolo do C
       t: Buscar esta string de texto

    Nome        Args       Intrv     Complet.  Definição
   #   linha
   ou:
  # PARA marcador  DA linha   no arquivo/texto
salto linha col arquivo/texto
# Histórico de %s (mais recente primeiro):

# Linhas com barra, copiadas literalmente:

# Lista de buffers:

# Marcas nos arquivos:

# Histórico de marcas nos arquivos (mais recente primeiro):

# Lista de saltos (mais recente primeiro):

# Último padrão de busca %s:
~
# Última string de substituição:
$
# Registradores:

# variáveis globais:

(1) Outro programa pode estar editando o mesmo arquivo. Se for esse
    o caso, cuidado para não acabar com duas versões do mesmo arquivo
    ao fazer alterações. Saia, ou continue com cuidado.

(Você talvez queira salvar este arquivo com outro nome

--- Autocomandos ---
--- Valores de opções globais ---
--- Valores de opções locais ---
--- Menus ---
--- Opções ---
--- Registradores ---
--- Sinais ---
--- Elementos de sintaxe ---
--- Elementos de sincronização da sintaxe ---
--- Códigos de terminal ---
--- Teclas do terminal ---
Argumentos reconhecidos pelo gvim (versão Athena):

Argumentos reconhecidos pelo gvim (versão GTK+):

Argumentos reconhecidos pelo gvim (versão Motif):

Argumentos reconhecidos pelo gvim (versão neXtaw):

Versão grande 
Impossível criar pipes de comunicação

Não foi possível executar o shell 
Não foi possível executar o shell sh

Impossível realizar bifurcação de processo

Comando interrompido

Compilado 
Não foi possível obter o contexto de segurança para 
Não foi possível definir o contexto de segurança para 
Correções extras:
Foi encontrado um arquivo de troca de nome "
Versão enorme 
Se você inseriu uma nova chave criptográfica sem gravar o arquivo de texto,
Se você gravou o arquivo após alterar a chave, aperte Enter
Correções incluídas: 
Versão gráfica para MS-Windows 32 bits
Versão console para MS-Windows 32 bits
Versão gráfica para MS-Windows 64 bits
Versão console para MS-Windows 64 bits
Versão MacOS X (unix)
Versão MacOS X
Versão MacOS
Talvez nenhuma mudança tenha sido feita ou o Vim não tenha atualizado o arquivo de troca.
Mais informações com: "vim -h"

Versão normal 
Versão OpenVMS
Versão pequena 
Versão minúscula 
Vim: Recebido erro do X

AVISO: O arquivo original pode ter sido perdido ou danificado

Se a caixa é ignorada, insira / antes da opção para torná-la maiúscula
Você pode querer excluir o arquivo .swp agora.


[bytes] total alocado-liberado %lu-%lu, em uso %lu, pico %lu

alter. linha col texto
insira a nova chave criptográfica.
marc linha col arquivo/texto
o shell devolveu 
sincronização sobre elementos
para usar a mesma chave para o arquivo de texto e o de troca                              para restaurar padrões do Vim                              para voltar à execução modal        com data de:         pertence a:          [não pode ser aberto]         [não pode ser lido]         [não se parece com um arquivo de troca do Vim]         [do Vim versão 3.0]   nome do arquivo:        arquivo de padrões: "      -- nenhum --
      MAIS NOVO que o arquivo de troca!
     arquivo exrc do usuário: "    arquivo vimrc do usuário: "    Se for esse o caso, use ":recover" ou "vim -r     Se você já vez isso, exclua o arquivo de troca "    linha=%ld  id=%d  nome=%s  arquivo de menu do sistema: "   arquivo gvimrc do usuário: "   No diretório atual:
   No diretório    Usando o nome especificado:
com data:    nome do host:     arquivo vimrc de sistema: "  # pri tipo marcador  (Já listado)  2º arquivo exrc do usuário: "  VERSÃO DE DEPURAÇÃO  Recursos incluídos (+) ou não (-):
  NÃO ENCONTRADO  TOTAL      CONT.  COINC.  MAIS LENTO  MÉDIA     NOME               PADRÃO  Usando etiqueta com caixa diferente!            padrão para $VIM: "   arquivo gvimrc de sistema: " # pid    nome do banco de dados              adicionar caminho
 (Interrompido) (NÃO ENCONTRADO) (inclui coincidências listadas anteriormente) (inserção) (inserção) Rolagem (^E/^Y) (linha excluída) (não suportado) (colar) (substituição) (substituição) Rolagem (^E/^Y) (ainda executando) (substituição visual) 2º arquivo vimrc do usuário: " 3º arquivo vimrc do usuário: " < "%.*s" Adicionando Árabe ERRO DE CONVERSÃO Completar da linha de comando (^V^N^P) Cópia %d de %d Completar definição (^D^N^P) Completar do dicionário (^K^N^P) FALHOU Completar nome de arquivo (^F^N^P) Hebraico INSERÇÃO Completar palavra-chave local (^N^P) Completar palavra-chave (^N^P) Completação inteligente (^O^N^P) Completar padrão de caminho (^N^P) SUBSTITUIÇÃO (INVERTIDA) SELEÇÃO SELEÇÃO EM BLOCO SELEÇÃO DE LINHAS ESPAÇO/d/j: tela/página/linha abaixo, b/u/k: acima, q: sair  Sugestão de ortografia (s^N^P) Completar marcador (^]^N^P) Completar do dicionário de sinônimos (^T^N^P) Completar definido pelo usuário (^U^N^P) VISUAL VISUAL/BLOCO VISUAL/LINHA SUBSTITUIÇÃO VISUAL Completar linha inteira (^L^N^P) [Modificado] [a] [g] modo ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) adicionado(s) não pode ser usado neste computador.
 não pode ser usado com esta versão do Vim.
     padrão para $VIMRUNTIME: " foi danificado (o tamanho da página é menor que o valor mínimo).
na linha %ld; info para "%c tipo arquivo
 quebras de linha linhas antes do topo da tela marcas arquivos antigos em %ld linhas em 1 linha ou mais devolveu
 vim [argumentos]  com suporte a OLE gravado(s)"
    para evitar esta mensagem.
"
    para recuperar as alterações (veja ":help recovery").
" já existe!# Este arquivo viminfo foi gerado pelo Vim %s.
# Valor de 'encoding' quando este arquivo foi escrito
# Você pode editá-lo se for cuidadoso!

%-5s: %s%*s (Forma de uso: %s)%3d  %s %s  linha %ld%d buffers apagados%d buffers descarregados%d buffers eliminados%d palavra(s) duplicada(s) em %s%d arquivos para editar
Há mais %d arquivos para editar.  Sair mesmo assim?%d de %d editados%ld %s; %s #%ld  %s%ld colunas; %ld linhas a menos%ld linhas %sadas %d vezes%ld linhas %sadas 1 vez%ld linhas --%d%%--%ld linhas alteradas%ld linhas filtradas%ld linhas indentadas %ld linhas movidas%ld linhas para indentar... %ld linhas copiadas%s%ld linhas, %ld correspondências%ld linhas a mais%ld segundos atrás%ld substituições%lld caracteresComandos automáticos %s para "%s"%s cancelada%s descartado(s)%s, linha %ld%s tornado(s) pendente(s)%s continuado(s)%s devolveu #%ld%s devolveu %sO valor de %s é diferente daquele usado em outro arquivo .aff%s, linha %ld%slista de erros %d de %d; %d erros %sviminfo: %s na linha: &Cancelar&Dispensar&FiltrarA&juda&OK&OK
&Cancelar&OK
&Carregar arquivo&OK&Abrir somente-leitura
&Editar mesmo assim
&Recuperar
E&xcluí-lo
&Sair
&Cancelar&Abrir somente-leitura
&Editar mesmo assim
&Recuperar
&Sair
&Cancelar&Substituir&Desfazer&Sim
&Não&Sim
&Não
&Cancelar&Sim
&Não
Salvar &tudo
&Descartar tudo
&Cancelar' desconhecido. Os terminais incorporados disponíveis são:'-nb' não pode ser usado: não foi ativado na compilação
opção 'dictionary' vaziaopção 'history' vale zero"%s" está com a opção 'readonly' (somente-leitura) ativada.
Você deseja gravar assim mesmo?opção 'thesaurus' vazia(%d de %d)%s%s: (+%ld para BOM)(2) Uma sessão de edição para esse arquivo travou.
(Interrompido) (Inválido)(NFA) %s NÃO PÔDE SER ABERTO !+			Abrir no final do arquivo+<núm.l>		Começar na linha <núm.l>+reverse		Não usar vídeo reverso (abrev.: +rv),
ou o arquivo foi danificado.-               ler texto a partir da entrada padrão--			Apenas nomes de arquivo depois daqui-- Mais ---- Procurando...--- Arquivos incluídos --Excluído----Sem linhas no buffer----clean		'nocompatible', padrões do Vim, sem plugins, sem viminfo--cmd <comando>	Executar <comando> antes de carregar qualquer vimrcargumento --cmd--echo-wid		Faz o gvim mostrar o ID da janela na saída padrão--literal		Não expandir caracteres-curinga--noplugin		Não carregar scripts de plugins--not-a-term		Omite aviso sobre entrada/saída não ser um terminal--remote <arquivos>	Editar <arquivos> num servidor Vim se possível--remote-expr <expr>	Avaliar <expr> num servidor Vim e exibir o resultado--remote-send <teclas>   Enviar <teclas> para um servidor Vim e sair--remote-silent <arqs.>  Idem, sem reclamar se não houver servidor--remote-tab[-wait][-silent] <arqs.>  Como --remote, mas com uma aba por arquivo--remote-wait <arqs.>    Como --remote, mas esperar a edição dos arquivos--remote-wait-silent <arqs.>  Idem, sem reclamar se não houver servidor--role <papel>	Define um papel único para identificar a janela principal--serverlist		Listar servidores Vim disponíveis e sair--servername <nome>	Enviar para/tornar-se o servidor Vim <nome>--socketid <xid>	Abrir o Vim dentro de outro widget do GTK--startuptime <arq.>	Gravar mensagens de cronometragem da inicialização para <arquivo>--ttyfail		Sai se entrada/saída não for um terminal--version		Imprimir informações da versão e sair--windowid <HWND>	Abrir o Vim dentro de outro widget win32-A			iniciar no modo Árabe-C			Compatível com o Vi: 'compatible'-D			Modo de depuração (debug)-E			Movo Ex melhorado-F			Iniciar no modo Farsi (persa)-H			Iniciar no modo Hebraico-L			Mesmo que -r-M			Não permitir alterações no texto-N			Não totalmente compatível com o Vi: 'nocompatible'-O[N]		Como -o, mas dividindo verticalmente-P <título pai>	Abrir o Vim dentro de uma aplicação-pai-R			modo somente-leitura (como "view")-S <sessão>		Executar o arquivo <sessão> depois de carregar o primeiro arquivo-T <terminal>	Definir tipo de terminal como <terminal>-U <gvimrc>		Usar <gvimrc> em vez de qualquer outro .gvimrc-V[N][arq]		Detalhado [nível N] [gravar mensagens em 'arq']-W <script>		Gravar todos os comandos digitados no arquivo <script>-X			Não conectar ao servidor X-Z			modo restrito (como "rvim")-b			Modo binário-background <cor>	Usar <cor> para o fundo (abrev.: -bg)-boldfont <fonte>	Usar <fonte> para texto em negrito-borderwidth <larg.>	Usar <larg.> como largura da borda (abrev.: -bw)-c <comando>		Executar <comando> depois de carregar o primeiro arquivoargumento -c-d			Modo diff (como "vimdiff")-dev <dispositivo>	Usar <dispositivo> para E/S-display <display>	Conectar o vim a este servidor X específico-display <display>	Executar vim em <display>-display <display>	Executar vim no <display> (alt.: --display)-e			Modo Ex (como "ex")-f			Não usar newcli para abrir janela-f  ou  --nofork	Primeiro plano: Não separar a interface gráfica do terminal-font <fonte>	Usar <fonte> para texto normal (abrev.: -fn)-foreground <cor>	Usar <cor> para texto normal (abrev.: -fg)-g			Executar a interface gráfica (como "gvim")-geometry <geom>	Usar <geom> como geometria inicial (abrev.: -geom)-h  ou  --help	Imprimir a ajuda (esta mensagem) e sair-i <viminfo>		Usar <viminfo> em vez do .viminfo normal-iconic		Iniciar vim iconizado-italicfont <fonte>	Usar <fonte> para texto em itálico-l			Modo Lisp-m			Não permitir alterações (gravação de arquivos)-menuheight <altura>	Usar <altura> para a barra de menus (abrev.: -mh)-n			Não usar arquivo de troca, apenas a memória-o[N]		Abrir N janelas (padrão: uma para cada arquivo)-p[N]		Abrir N abas (padrão: uma para cada arquivo)-q [arq.erro]   editar arquivo e abrir no primeiro erro-r			Listar arquivos de troca e sair-r (nome de arquivo)	Recuperar sessão perdida-register		Registrar o gvim para o OLE-reverse		Usar vídeo reverso (abrev.: -rv)-s			Modo silencioso ou "batch" (apenas para "ex")-s <script>		Ler comandos do modo Normal do arquivo <script>-scrollbarwidth <larg.>  Usar <larg.> como largura da barra de rolagem (abrev.: -sw)-t marcador     editar arquivo onde o marcador é definido-u <vimrc>		Usar <vimrc> em vez de qualquer outro .vimrc-unregister		Desregistrar o gvim para o OLE-v			Modo Vi (como "vi")-w <script>		Adicionar todos os comandos digitados ao arquivo <script>-x			Editar arquivos criptografados-xrm <recurso>	Definir o recurso especificado-y			Modo fácil (como "evim", o Vim não modal)Linha / ignorada em %s, linha %d: %sLinha /encoding= ignorada após uma palavra em %s, linha %d: %s1 buffer apagado1 buffer descarregado1 buffer eliminado1 caractere1 linha %sada %d vezes1 linha %sada 1 vez1 linha --%d%%--1 linha alterada1 linha indentada 1 linha a menos1 linha movida1 linha copiada%s1 linha, 1 correspondênciaAinda há 1 arquivo para editar.  Sair mesmo assim?1 linha a mais1 substituição2º arquivo gvimrc do usuário: "3º arquivo gvimrc do usuário: ": Envio da expressão falhou.
: Envio falhou.
: Envio falhou. Tentando executar localmente
; corresponder com <%s>%s%s  %d,  Hex %02x,  Octal %03o<impossível abrir> <vazio>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? daqui até ???FIM as linhas podem estar corrompidas??? daqui até ???FIM linhas podem ter sido inseridas/excluídas???BLOCO FALTANDO???BLOCO VAZIO???FIM???NÚMERO DE LINHAS ERRADO???LINHAS FALTANDO???MUITAS LINHAS FALTANDOANCHOR_BUF_SIZE pequeno demais.Adicionar novo banco de dadosAdicionado banco de dados do cscope %sAfixo também usado para BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST em %s, linha %d: %sNome do afixo longo demais em %s, linha %d: %sTudoTodos os bancos de dados do cscope redefinidosTodos os arquivos incluídos foram encontradosJá está na alteração mais novaJá está na alteração mais antigaJá há apenas uma abaJá há apenas uma janelaAdicionar arquivoArgumento faltando apósNa linhaTentando abrir novamente arquivo de script: "De volta ao originalO intervalo dado está com os limites invertidos. OK para reverterTorne-se um usuário registrado do Vim!Bip!Antes do byte %ldFimLinhas SAL e SOFO presentes em %sPonto de interrupção em "%s%s", linha %ldCondição defeituosa em %s, linha %d: %sCOMPOUNDSYLMAX usado sem SYLLABLEChamando o shell para executar: "%s"Não foi possível encontrar um arquivo temporário para a conversãoCancelarImpossível criar Não é possível executar $VIMRUNTIME/rgb.txt não pode ser abertoImpossível abrir NIL:
Impossível abrir arquivo "%s"Impossível abrir para leitura: "Impossível abrir para transcrição do script: "Impossível executar um diretório: "%s"Arquivo de desfazer não pode ser gravado em nenhum diretório de 'undodir'Alterar "%.*s" para:Fechar abaColuna %s de %s; linha %ld de %ld; palavra %lld de %lld; byte %lld de %lldColuna %s de %s; linha %ld de %ld; palavra %lld de %lld; caractere %lld de %lld; byte %lld de %lldlinha de comandoCompilação: Compilador: %d de %d nós comprimidos; %d (%d%%) restantesComprimindo árvore de palavras...Falha na conversão para palavra em %s, linha %d: %sConversão em %s não é suportadaConversão em %s não é suportada: de %s para %sConversão com 'charconvert' falhouNão foi possível definir os ponteiros de função para a DLL!Não foi possível obter o contexto de segurança %s para %s. Removendo!Não foi possível carregar vim32.dll!Não foi possível abrir arquivo de log temporário para escrita Arquivo de log temporário não pôde ser gravado, mostrando no stderr ... Não foi possível definir o contexto de segurança %s para %sTag do cscope: %sIdioma atual para %s: "%s"linha de debugDefinir COMPOUNDFORBIDFLAG após um item PFX pode causar resultados errados em %s, linha %dDefinir COMPOUNDPERMITFLAG após um item PFX pode causar resultados errados em %s, linha %dComparar (diff) com VimIndicadores de combinação diferentes no bloco de afixos continuado em %s linha %d: %sDireçãoDiretóriosDiretório	*.nada
Você realmente deseja gravá-loConcluído!; duplo na lista de variáveisAbaixoLinha /encoding= duplicada ignorada em %s, linha %d: %sLinha /regions= duplicada ignorada em %s, linha %d: %sAfixo duplicado em %s, linha %d: %sCaractere duplicado em MAP em %s, linha %dNome de campo duplicado: %sPalavra duplicada em %s, linha %d: %sE100: Não há nenhum outro buffer no modo diffE101: Há mais de dois buffers no modo diff; não sei quais usarE102: Buffer "%s" não encontradoE103: Buffer "%s" não está no modo diffE104: Caractere escape não é permitido em dígrafosE105: :loadkeymap usado fora de um script VimE107: Parênteses faltando: %sE108: Variável inexistente: "%s"E109: ':' faltando depois de '?'E10: \ deve ser seguido de /, ? ou &E110: ')' faltandoE111: ']' faltandoE112: Nome de opção faltando: %sE113: Opção desconhecida: %sE114: Aspas duplas (") faltando: %sE115: Aspas simples (') faltando: %sE116: Argumentos inválidos para a função %sE117: Função desconhecida: %sE118: Muitos argumentos para a função: %sE119: Argumentos insuficientes para a função: %sE11: Inválido na janela da linha de comando; <CR> executa, CTRL-C saiE120: <SID> usado fora de um script: %sE121: Variável indefinida: %sE122: Função %s já existe, adicione ! para substituí-laE123: Função indefinida: %sE124: '(' faltando: %sE125: Argumento inválido: %sE126: :endfunction faltandoE127: Não é possível redefinir a função %s: ela está em usoE128: Nome da função deve começar com maiúscula ou "s:": %sE129: Nome da função requeridoE12: Comando não permitido no exrc/vimrc do diretório atual ou num arquivo de marcadoresE130: Função desconhecida: %sE131: Não é possível excluir a função %s: ela está em usoE132: Profundidade de chamadas de função é maior que 'maxfuncdepth'E133: :return fora de uma funçãoE134: O destino coincide com a origemE135: Os autocomandos *Filter* não devem modificar o buffer atualE136: viminfo: Há erros demais; abandonando a leitura do arquivoE137: O arquivo viminfo não pode ser escrito: %sE138: Não é possível gravar o arquivo viminfo %s!E139: O arquivo está carregado em outro bufferE13: Arquivo existe (adicione ! para forçar)E140: Use ! para gravar o buffer apenas parcialmenteE141: Sem nome de arquivo para o buffer %ldE142: Arquivo não gravado: gravação desativada pela opção 'write'E143: Algum autocomando inesperadamente apagou o buffer %s recém-criadoE144: argumento não-numérico passado a :zE145: Comandos do shell não são permitidos no rvimE146: Expressões regulares não podem ser delimitadas por letrasE147: Não é possível fazer :global recursivamente com um intervaloE148: Expressão regular faltando no comando :globalE149: Desculpe, nenhuma ajuda para %sE14: Endereço inválidoE150: Não é um diretório: %sE151: Nenhuma correspondência: %sE152: Não foi possível abrir %s para escritaE153: Não foi possível abrir %s para leituraE154: Marcador duplicado "%s" no arquivo %s/%sE155: Sinal desconhecido: %sE156: Nome do sinal faltandoE157: ID de sinal inválido: %ldE158: Nome de buffer inválido: %sE159: Número do sinal faltandoE15: Expressão inválida: %sE160: Subcomando sign desconhecido: %sE161: Ponto de interrupção não encontrado: %sE162: Alterações no buffer "%s" não foram gravadasE163: Só há um arquivo para editarE164: Impossível ir antes do primeiro arquivoE165: Impossível ir além do último arquivoE166: Impossível abrir ligação para escritaE167: :scriptencoding usado fora de um scriptE168: :finish usado fora de um scriptE169: Comando recursivo demaisE16: Intervalo inválidoE170: :endfor faltandoE170: :endwhile faltandoE171: :endif faltandoE172: Só é permitido um nome de arquivoE173: Mais %ld arquivos para editarE173: Mais 1 arquivo para editarE174: Comando já existe; adicione ! para substituí-loE175: Nenhum atributo foi especificadoE176: Número inválido de argumentosE177: Quantificador não pode ser especificado duas vezesE178: Valor padrão inválido para o quantificadorE179: argumento necessário para -addrE179: argumento necessário para -completeE17: "%s" é um diretórioE180: Tipo de endereço inválido: %sE180: Valor inválido para -complete: %sE181: Atributo inválido: %sE182: Nome de comando inválidoE183: Comandos definidos pelo usuário devem começar com letra maiúsculaE184: Não existe tal comando definido pelo usuário: %sE185: Esquema de cores '%s' não encontradoE186: Não há diretório anteriorE187: DesconhecidoE188: A obtenção da posição da janela não foi implementada para esta plataformaE189: "%s" existe (adicione ! para forçar)E18: Caracteres inesperados em :letE190: "%s" não pode ser aberto para escritaE191: Argumento deve ser uma letra ou aspa (` ou ')E192: Recursão excessiva de :normalE193: :endfunction fora de uma funçãoE194: Sem nome de arquivo alternativo para substituir '#'E195: O arquivo viminfo não pode ser aberto para leituraE196: Sem suporte a dígrafos nesta versãoE197: Impossível definir idioma como "%s"E198: cmd_pchar além do final do comandoE199: A janela ou buffer ativo foi apagadoE19: Marca tem número de linha inválidoE200: Autocomandos *ReadPre tornaram o arquivo ilegívelE201: Os autocomandos *ReadPre não devem alterar o buffer atualE202: A conversão tornou o arquivo ilegível!E203: Os autocomandos apagaram ou descarregaram o buffer a ser gravadoE204: Autocomando alterou número de linhas de maneira inesperadaE205: patchmode: impossível salvar o arquivo originalE206: patchmode: impossível criar arquivo original vazioE207: Impossível excluir arquivo de backupE208: Erro ao gravar "%s"E209: Erro ao fechar "%s"E20: Marca não definidaE210: Erro ao ler "%s"E211: Arquivo "%s" não está mais disponívelE212: Impossível abrir arquivo para escritaE213: Impossível converter (adicione ! para gravar sem converter)E214: Não foi possível encontrar arquivo temporário para escritaE215: Caractere inválido após *: %sE216: Evento inexistente: %sE216: Grupo ou evento inexistente: %sE217: Não é possível executar autocomandos para TODOS os eventosE218: autocomandos aninhados demaisE219: { faltando.E21: Impossível fazer mudanças, 'modifiable' está desativadoE220: } faltando.E222: Adição a um buffer já lidoE223: associação recursivaE224: já existe uma abreviação global para %sE225: já existe uma associação global para %sE226: já existe uma abreviação para %sE227: já existe uma associação para %sE228: makemap: Modo inválidoE229: Não é possível iniciar a interface gráficaE22: Scripts excessivamente aninhadosE230: Impossível ler de "%s"E231: Valor inválido para 'guifontwide'E232: Impossível criar BalloonEval com mensagem E callbackE233: impossível abrir displayE234: Conjunto de fontes desconhecido: %sE235: Fonte desconhecida: %sE236: Fonte "%s" não é de largura fixaE237: Seleção da impressora falhouE238: Erro de impressão: %sE239: Texto de sinal inválido: %sE23: Nenhum arquivo alternativoE240: Sem conexão ao servidor XE241: Não foi possível enviar para %sE243: Argumento não suportado: "-%s"; Use a versão OLE.E244: Conjunto de caracteres "%s" inválido no nome da fonte "%s"E244: Qualidade "%s" inválida no nome da fonte "%s"E245: Caractere '%c' inválido no nome da fonte "%s"E246: O autocomando FileChangedShell apagou o bufferE247: nenhum servidor registrado com o nome "%s"E248: Falha ao enviar comando ao programa de destinoE24: Abreviação inexistenteE250: Faltam fontes para os seguintes conjuntos de caracteres no conjunto de fontes %s:E251: Propriedade de registro de instância do VIM malformada encontrada e excluída!E252: Nome do conjunto de fontes: %sE253: Nome do conjunto de fontes: %sE254: Impossível alocar cor %sE255: Não foi possível ler os dados dos símbolos!E256: ERRO no autômato HangulE257: cstag: marcador não encontradoE258: Não foi possível enviar ao clienteE259: nenhum resultado para a busca cscope %s de %sE25: Interface gráfica não pode ser usada, não foi ativada na compilaçãoE261: conexão %s com o cscope não encontradaE262: erro ao ler a conexão %ld do cscopeE263: Desculpe, este comando está desativado. A biblioteca do Python não pôde ser carregada.E264: Python: Erro ao inicializar objetos de E/SE265: $_ deve ser uma instância de StringE266: Desculpe, este comando está desativado. A biblioteca do Ruby não pôde ser carregada.E267: "return" inesperadoE268: "next" inesperadoE269: "break" inesperadoE26: Hebraico não pode ser usado, não foi ativado na compilação
E270: "redo" inesperadoE271: "retry" fora de bloco "rescue"E272: exceção não tratadaE273: status %d de longjmp desconhecidoE277: Não foi possível ler a resposta do servidorE27: Farsi (persa) não pode ser usado, não foi ativado na compilação
E280: ERRO FATAL DO TCL: reflist corrompida!? Por favor relate isso para vim-dev@vim.orgE282: Impossível ler de "%s"E283: Nenhuma marca coincide com "%s"E284: Não foi possível definir os valores do contexto de entradaE285: Falha ao criar o contexto de entradaE286: Falha ao abrir o método de entradaE287: Aviso: Não foi possível definir o callback de destruição do MEE288: o método de entrada não suporta nenhum estiloE289: o método de entrada não suporta meu tipo de pré-ediçãoE28: Não existe grupo de destaque com tal nome: %sE293: o bloco não estava travadoE294: Erro de posicionamento na leitura do arquivo de trocaE295: Erro de leitura no arquivo de trocaE296: Erro de posicionamento na escrita do arquivo de trocaE297: Erro de escrita no arquivo de trocaE298: Não foi obtido o bloco nº 0?E298: Não foi obtido o bloco nº 1?E298: Não foi obtido o bloco nº 2?E299: Avaliação de expressões Perl na caixa de areia proibida sem o módulo SafeE29: Nenhum texto foi inserido aindaE300: Arquivo de troca já existe (ataque de symlink?)E301: Oops, o arquivo de troca foi perdido!!!E302: Não foi possível renomear o arquivo de trocaE303: Impossível abrir arquivo de troca para "%s", recuperação impossívelE304: ml_upd_block0(): Não foi obtido o bloco 0??E305: Nenhum arquivo de troca encontrado para %sE306: Impossível abrir %sE307: %s não se parece com um arquivo de troca do VimE308: Aviso: O arquivo original pode ter sido alteradoE309: Impossível ler o bloco 1 de %sE30: Nenhuma linha de comando anteriorE310: ID do bloco 1 está errado (%s não é um arquivo .swp?)E311: Recuperação interrompidaE312: Erros detectados durante a recuperação; procure por linhas começando com ???E313: Impossível preservar, não há um arquivo de trocaE314: Preservação falhouE315: ml_get: número de linha inválido: %ldE316: ml_get: linha %ld não encontradaE317: id do bloco de ponteiros incorretoE317: id do bloco de ponteiros incorreto: 2E317: id do bloco de ponteiros incorreto: 3E317: id do bloco de ponteiros incorreto: 4E318: Foram atualizados blocos demais?E319: Desculpe, esse comando não está disponível nesta versãoE31: Associação inexistenteE320: Linha %ld não encontradaE321: Não foi possível recarregar "%s"E322: número da linha fora dos limites: %ld além do fimE323: número de linhas incorreto no bloco %ldE324: Impossível abrir arquivo PostScript para saídaE325: ATENÇÃOE326: Foram encontrados arquivos de troca demaisE327: Parte do caminho do item do menu não é um submenuE328: Menu só existe em outro modoE329: Não há o menu "%s"E32: Nenhum nome de arquivoE330: Caminho do menu não deve levar a um submenuE331: Itens não devem ser adicionados diretamente à barra de menusE332: Um separador não pode ser parte de um caminho de menuE333: Caminho de menu deve levar a um item de menuE334: Menu não encontrado: %sE335: Menu não definido para o modo %sE336: O caminho do menu deve levar a um submenuE337: Menu não encontrado - verifique os nomes dos menusE338: Desculpe, não há um seletor de arquivos no modo consoleE339: Padrão longo demaisE33: Nenhuma expressão regular de substituição anteriorE340: A linha está tornando-se muito longaE341: Erro interno: lalloc(%ld, )E342: Memória esgotada!  (ao alocar %lu bytes)E343: Caminho inválido: '**[número]' deve estar no final do caminho ou seguido de '%s'.E344: Diretório "%s" não encontrado em 'cdpath'E345: Arquivo "%s" não encontrado em 'path'E346: Mais nenhum diretório "%s" encontrado em 'cdpath'E347: Mais nenhum arquivo "%s" encontrado em 'path'E348: Nenhuma cadeia de caracteres sob o cursorE349: Nenhum identificador sob o cursorE34: Nenhum comando anteriorE350: Impossível criar dobra com a configuração atual de 'foldmethod'E351: Impossível excluir dobra com a configuração atual de 'foldmethod'E352: Impossível eliminar dobras com o 'foldmethod' atualE353: Não há nada no registrador %sE354: Nome de registrador inválido: '%s'E355: Opção desconhecida: %sE356: ERRO em get_varpE357: 'langmap': Falta um caractere para corresponder com %sE358: 'langmap': Caracteres a mais após ponto-e-vírgula: %sE359: Configuração do modo de tela não é suportadaE35: Nenhuma expressão regular anteriorE360: Impossível executar shell com opção -fE363: padrão usa mais memória que 'maxmempattern'E364: Chamada à biblioteca falhou para "%s()"E365: Não foi possível imprimir o arquivo PostScriptE367: Grupo inexistente: "%s"E369: item inválido em %s%%[]E36: Não há espaço suficienteE370: Não foi possível carregar a biblioteca %sE371: Comando não encontradoE372: Muitos %%%c na especificação do formatoE373: %%%c inesperado na especificação do formatoE374: ] faltando na especificação do formatoE375: %%%c não suportado na especificação de formatoE376: %%%c inválido no prefixo da especificação de formatoE377: %%%c inválido na especificação de formatoE378: 'errorformat' não contém nenhum padrãoE379: O nome do diretório está faltando ou vazioE37: Não foi salvo desde a última alteraçãoE37: Alterações não foram gravadas (adicione ! para forçar)E380: No final da pilha do quickfixE381: No topo da pilha do quickfixE382: Impossível gravar, opção 'buftype' foi definidaE383: Texto de busca inválido: %sE384: busca atingiu o TOPO sem encontrar: %sE385: busca atingiu o FIM sem encontrar: %sE386: '?' ou '/' esperado após ';'E387: A correspondência está na linha atualE388: Definição não foi encontradaE389: Padrão não foi encontradoE38: Argumento nuloE390: Argumento inválido: %sE391: Não existe o agrupamento sintático: %sE392: Não existe o agrupamento de sintaxe: %sE393: group[t]here não é aceito aquiE394: Não foi encontrado um item de região para %sE395: o parâmetro "contains" não é aceito aquiE397: Nome de arquivo requeridoE398: '=' faltando: %sE399: Argumentos insuficientes: syntax region %sE39: Número era esperadoE400: Nenhum agrupamento especificadoE401: Delimitador de padrão não encontrado: %sE402: Caracteres indevidos após o padrão: %sE403: syntax sync: padrão de continuação de linha informado duas vezesE404: Argumentos inválidos: %sE405: Sinal de igual faltando: %sE406: Argumento vazio: %sE407: %s não é permitido aquiE408: %s deve ser o primeiro na lista de "contains"E409: Nome de grupo desconhecido: %sE40: Impossível abrir o arquivo de erros %sE410: Subcomando inválido para :syntax: %sE411: grupo de destaque não encontrado: %sE412: Argumentos insuficientes: ":highlight link %s"E413: Argumentos demais: ":highlight link %s"E414: o grupo já tem suas definições; associação de destaque ignoradaE415: sinal de igual inesperado: %sE416: sinal de igual faltando: %sE417: argumento faltando: %sE418: Valor inválido: %sE419: cor do texto desconhecidaE41: Memória esgotada!E420: cor de fundo desconhecidaE421: Nome ou número de cor não reconhecido: %sE422: código de terminal longo demais: %sE423: Argumento inválido: %sE424: Muitos atributos diferentes de destaque sendo usados simultaneamenteE425: Impossível ir para antes do primeiro marcador correspondenteE426: marcador não encontrado: %sE427: Só há um marcador coincidenteE428: Impossível ir além do último marcador coincidenteE429: Arquivo "%s" não existeE42: Nenhum erroE430: Caminho dos arquivos de marcadores truncado para %s
E431: Erro de formato no arquivo de marcadores "%s"E432: Arquivo de marcadores não ordenado: %sE433: Não há arquivo de marcadoresE434: Padrão do marcador não encontradoE435: Marcador não foi encontrado, tentando adivinhar apenas!E436: Nenhuma entrada "%s" em termcapE437: é necessário o recurso de terminal "cm"E438: u_undo: números de linha erradosE439: lista de desfazimentos corrompidaE43: String de busca danificadaE440: a linha para desfazer está faltandoE441: Não há janela de visualizaçãoE442: Impossível dividir nos cantos sup.esquerdo e inf.direito ao mesmo tempoE443: Impossível rodar quando outra janela está divididaE444: Não posso fechar a última janelaE445: Outra janela contém alteraçõesE446: Nenhum nome de arquivo sob o cursorE447: Arquivo "%s" não encontrado nos caminhos de buscaE448: Não foi possível carregar a função %s de bibliotecaE449: Expressão inválida recebidaE44: Autômato de expressão regular corrompidoE455: Erro ao escrever no arquivo PostScriptE456: Arquivo de recursos de PostScript "%s.ps" não encontradoE456: Arquivo de recursos de PostScript "cidfont.ps" não encontradoE456: Arquivo de recursos de PostScript "prolog.ps" não encontradoE456: Impossível abrir arquivo "%s"E457: Impossível ler o arquivo de recursos de PostScript "%s"E459: Impossível voltar ao diretório anteriorE45: opção 'readonly' está definida (adicione ! para forçar)E460: O resource fork seria perdido (adicione ! para forçar)E461: Nome ilegal para variável: %sE462: Não foi possível preparar "%s" para ser recarregadoE463: A região é protegida; impossível modificá-laE464: Uso ambíguo de comando definido pelo usuárioE465: :winsize requer dois argumentos numéricosE466: :winpos requer dois argumentos numéricosE467: Completação automática requer função como argumentoE468: Argumento só é permitido para completação personalizadaE469: marca %c inválida para %c em 'cscopequickfix'E46: Impossível alterar variável somente-leitura "%s"E470: Comando canceladoE471: Argumento requeridoE472: Comando falhouE473: Erro internoE474: Argumento inválidoE475: Argumento inválido: %sE476: Comando inválidoE477: '!' não permitidoE478: Não entre em pânico!E479: Nenhuma correspondênciaE47: Erro ao ler arquivo de errosE480: Nenhuma correspondência: %sE481: Intervalos não são permitidosE482: Impossível criar arquivo %sE483: Impossível obter nome do arquivo temporárioE484: Impossível abrir arquivo %sE485: Impossível ler arquivo %sE486: Padrão não encontrado: %sE487: Argumento deve ser positivoE488: Caracteres em excesso no final da linhaE48: Isso não é permitido na caixa de areiaE490: Nenhuma dobra encontradaE492: Não é um comando do editorE493: Intervalo com limites invertidosE494: Use w ou w>>E495: nenhum nome de arquivo de autocomandos para substituir "<afile>"E496: nenhum número de buffer de autocomandos para substituir "<abuf>"E497: nenhum critério de autocomando para substituir "<amatch>"E498: nenhum nome de arquivo :source para substituir "<sfile>"E499: Nome de arquivo vazio para '%' ou '#' só funciona com ":p:h"E49: Tamanho de rolagem inválidoE500: Expressão resulta em string vaziaE501: Fim do arquivoE505: "%s" é somente-leitura (adicione ! para forçar)E505: %s é somente-leitura (adicione ! para forçar)E506: Impossível gravar arquivo de backup (adicione ! para forçar)E507: Erro de fechamento no arquivo de backup (adicione ! para forçar)E508: Impossível ler o arquivo para backup (adicione ! para forçar)E509: Impossível criar arquivo de backup (adicione ! para forçar)E50: Muitos \z(E510: Impossível fazer o backup (adicione ! para forçar)E511: netbeans já conectadoE512: Falha no fechamento do arquivoE513: erro de gravação, conversão falhou (torne 'fenc' vazio para forçar)E513: erro de gravação, conversão falhou na linha %ld (deixe 'fenc' vazio para forçar)E514: erro de gravação (sistema de arquivos cheio?)E515: Nenhum buffer foi descarregadoE516: Nenhum buffer foi apagadoE517: Nenhum buffer foi eliminadoE518: Opção desconhecidaE519: Opção não suportadaE51: Muitos %s(E520: Não permitido em modelinesE521: Número requerido após =E521: Número requerido: &%s = '%s'E522: Não encontrado no termcapE523: Isso não é permitido aquiE524: Dois-pontos faltandoE525: Cadeia de comprimento zeroE526: Número faltando após <%s>E527: Vírgula faltandoE528: É necessário especificar um valor para 'E529: 'term' não pode ser uma string vaziaE52: \z( sem correspondenteE530: term não pode ser alterado na interface gráficaE531: Use ":gui" para iniciar a interface gráficaE533: impossível selecionar fonte de caracteres largosE534: Fonte de caracteres largos inválidaE535: Caractere inválido após <%c>E536: vírgula requeridaE537: 'commentstring' deve estar vazia ou conter %sE538: Não há suporte a mouseE539: Caractere ilegal <%s>E53: %s%%( sem correspondenteE540: Expressão não terminada com '}'E541: itens demaisE542: parênteses desequilibradosE543: Página de códigos inválidaE544: Arquivo de mapa de teclado não encontradoE545: Dois-pontos faltandoE546: Modo de operação inválidoE547: 'mouseshape' inválidoE548: era esperado um algarismoE549: Porcentagem inválidaE54: %s( sem correspondenteE550: Dois-pontos faltandoE551: Elemento inválidoE552: era esperado um algarismoE553: Não há mais itensE554: Erro de sintaxe em %s{...}E555: no fim da pilha de marcadoresE556: no topo da pilha de marcadoresE557: Impossível abrir arquivo termcapE558: Descrição do terminal não encontrada em terminfoE559: Descrição do terminal não encontrada em termcapE55: %s) sem correspondenteE560: Forma de uso: cs[cope] %sE561: tipo desconhecido de busca do cscopeE562: Forma de uso: cstag <ident>E563: erro em statE563: erro em stat(%s): %dE564: %s não é um diretório ou um banco de dados válido do cscopeE566: Não foi possível criar os pipes para comunicação com o cscopeE567: não há conexões com o cscopeE568: banco de dados do cscope repetido; não foi adicionadoE570: erro fatal em cs_manage_matchesE571: Desculpe, este comando está desativado. A biblioteca do Tcl não pôde ser carregada.E572: código de saída %dE573: Foi usada uma id de servidor inválida: %sE574: Registrador de tipo desconhecido %dE579: :if aninhado demaisE580: :endif sem :ifE581: :else sem :ifE582: :elseif sem :ifE583: mais de um :elseE584: :elseif depois de :elseE585: :while/:for aninhados demaisE586: :continue sem :while ou :forE587: :break sem :while ou :forE588: :endfor sem :forE588: :endwhile sem :whileE589: 'backupext' e 'patchmode' são iguaisE590: Já existe uma janela de visualizaçãoE591: 'winheight' não pode ser menor que 'winminheight'E592: 'winwidth' não pode ser menor que 'winminwidth'E593: São necessárias pelo menos %d linhasE594: São necessárias pelo menos %d colunasE595: contém caracteres não-imprimíveis ou largosE596: Fonte(s) inválida(s)E597: impossível selecionar conjunto de fontesE598: Conjunto de fontes inválidoE599: Valor inválido para 'imactivatekey'E59: caractere inválido após %s@E600: :endtry faltandoE601: :try aninhado demaisE602: :endtry sem :tryE603: :catch sem :tryE604: :catch depois de :finallyE605: Exceção não interceptada: %sE606: :finally sem :tryE607: mais de um :finallyE608: Não é possível lançar exceções com o prefixo 'Vim'E609: Erro do cscope: %sE60: Muitos %s{...}s complexosE612: Muitos sinais definidosE613: Fonte de impressão desconhecida: %sE614: vim_SelFile: impossível voltar ao diretório atualE615: vim_SelFile: impossível obter diretório atualE616: vim_SelFile: impossível obter fonte %sE617: Não pode ser modificado na interface GTK+ 2E618: arquivo "%s" não é um arquivo de recursos de PostScriptE619: arquivo "%s" não é um arquivo de recursos de PostScript suportadoE61: %s* aninhadoE620: Impossível converter para a codificação "%s" para impressãoE621: versão errada do arquivo de recursos "%s"E622: Não foi possível fazer a bifurcação de processo para o cscopeE623: Não foi possível invocar o processo do cscopeE624: Impossível abrir arquivo "%s"E625: impossível abrir banco de dados do cscope: %sE626: impossível obter informações do banco de dados do cscopeE62: %s%c aninhadoE630: %s(): tentativa de escrita enquanto desconectadoE631: %s(): escrita falhouE63: uso inválido de \_E64: %s%c não segue nenhum itemE655: Links simbólicos em excesso (cíclicos?)E658: Conexão com o NetBeans perdida para o buffer %ldE659: Não é possível invocar o Python recursivamenteE65: Retrorreferência inválidaE661: Desculpe, nenhuma ajuda para %s em '%s'E662: No início da lista de modificaçõesE663: No final da lista de modificaçõesE664: lista de modificações está vaziaE665: Impossível iniciar a interface gráfica, nenhuma fonte válida encontradaE666: compilador não suportado: %sE667: Fsync falhouE668: Modo de acesso errado para o arquivo de informação de conexão do NetBeans: "%s"E669: Caractere não-imprimível no nome do grupoE66: \z( não é permitido aquiE670: Mistura de codificações nos arquivos de ajuda na língua: %sE671: Impossível encontrar janela de título "%s"E672: Impossível abrir janela dentro de aplicação MDIE673: Codificação multi-byte incompatível com o conjunto de caracteres.E674: 'printmbcharset' não pode estar vazio com codificações multi-byte.E675: Nenhuma fonte padrão especificada para impressão em multi-byte.E676: Nenhum comando automático correspondente para acwrite bufferE677: Erro ao gravar o arquivo temporárioE678: Caractere inválido após %s%%[dxouU]E679: loop recursivo ao carregar syncolor.vimE67: \z1 e cia. não são permitidos aquiE680: <buffer=%d>: número inválido de buffer E681: Buffer não está carregadoE682: Padrão de busca ou delimitador inválidoE683: Nome de arquivo faltando ou padrão inválidoE684: índice da lista fora dos limites: %ldE685: Erro interno: %sE686: Argumento de %s deve ser uma ListaE687: Há menos destinos que itens na ListaE688: Há mais destinos que itens na ListaE689: Só Listas ou Dicionários podem ser indexadosE68: Caractere inválido após \zE690: "in" faltando após :forE691: Uma Lista só pode ser comparada com outra ListaE692: Operação inválida para ListaE694: Operação inválida para FuncrefsE695: Não é possível indexar uma FuncrefE696: Falta uma vírgula na Lista: %sE697: Lista não finalizada com ']': %sE698: variável aninhada demais para fazer uma cópiaE699: Argumentos demaisE69: ] faltando após %s%%[E700: Função desconhecida: %sE701: Tipo inválido para len()E702: Falha na função de comparação para ordenaçãoE703: Funcref usada como NúmeroE704: Nome de variável Funcref deve começar com letra maiúscula: %sE705: Nome da variável em conflito com função já existente: %sE707: Nome da função em conflito com variável: %sE708: [:] deve vir por últimoE709: [:] requer uma ListaE70: %s%%[] vazioE710: a Lista tem mais itens que o destinoE711: a Lista não tem itens suficientesE712: Argumento de %s deve ser uma Lista ou DicionárioE713: Impossível usar chave vazia num DicionárioE714: Lista requeridaE715: Dicionário requeridoE716: Chave inexistente no Dicionário: %sE717: Entrada do Dicionário já existenteE718: Referência de função (Funcref) requeridaE719: Não é possível usar [:] com um DicionárioE71: Caractere inválido após %s%%E720: Dois-pontos faltando no Dicionário: %sE721: Chave duplicada no Dicionário: "%s"E722: Vírgula faltando no Dicionário: %sE723: Dicionário não finalizado com '}': %sE724: variável aninhada demais para ser exibidaE725: Função dict chamada sem um Dicionário: %sE726: Incremento nuloE727: O início está depois do fimE728: Dicionário usado como NúmeroE729: Funcref usada como StringE72: Erro ao fechar o arquivo de trocaE730: Lista usada como StringE731: Dicionário usado como StringE732: :endfor usado com :whileE733: :endwhile usado com :forE734: Variável de tipo errado para %s=E735: Um Dicionário só pode ser comparado com outro DicionárioE736: Operação inválida para um DicionárioE737: Chave já existe: %sE738: Impossível listar variáveis %sE739: Diretório não pode ser criado: %sE73: pilha de marcadores vaziaE740: Argumentos demais para a função %sE741: Valor bloqueado: %sE742: Não é possível mudar valor de %sE743: variável aninhada demais para (des)bloquearE744: O NetBeans não permite alterações em arquivos somente-leituraE745: Lista usada como NúmeroE746: Nome da função não coincide com o nome de arquivo do script: %sE747: Impossível mudar de diretório, o buffer foi alterado (adicione ! para forçar)E748: Nenhum registrador foi anteriormente utilizadoE749: buffer vazioE74: Comando complexo demaisE750: Primeiro digite ":profile start {nome_arquivo}"E751: O nome do arquivo não deve conter o nome da regiãoE752: Nenhuma substituição ortográfica anteriorE753: Não encontrado: %sE754: São suportadas apenas 8 regiões no máximoE755: Região inválida em %sE756: A verificação ortográfica não está ativadaE757: Este não se parece com um arquivo de verificação ortográficaE758: Arquivo de verificação ortográfica truncadoE75: Nome longo demaisE760: Número de palavras não indicado em %sE761: Erro de formato em FOL, LOW ou UPP no arquivo de afixosE762: Há um caractere fora dos limites em FOL, LOW ou UPPE763: Caracteres das palavras diferem entre os arquivos ortográficosE764: Opção '%s' não está definidaE765: 'spellfile' não contém %ld elementosE766: Argumentos insuficientes para printf()E767: Argumentos demais para printf()E768: Arquivo de troca existe: %s (:silent! para forçar)E769: ] faltando após %s[E76: Muitos [E770: Seção não suportada no arquivo de verificação ortográficaE771: Arquivo de verificação ortográfica antigo; é necessário atualizá-loE772: Arquivo de verificação ortográfica é para uma versão mais nova do VimE773: Links simbólicos cíclicos para "%s"E774: 'operatorfunc' está vazioE775: O recurso eval não está disponívelE776: Nenhuma lista de locaisE777: Era esperada uma String ou uma ListaE778: Este não parece com um arquivo .sug: %sE779: Arquivo .sug antigo, precisa ser atualizado: %sE77: Muitos nomes de arquivosE780: Arquivo .sug é para uma versão mais nova do Vim: %sE781: O arquivo .sug não corresponde ao arquivo .spl: %sE782: erro ao ler o arquivo .sug: %sE783: caractere duplicado na entrada MAPE784: Não é possível fechar a última abaE785: complete() só pode ser usado no modo de InserçãoE786: Intervalos não são permitidosE787: Buffer foi alterado inesperadamenteE788: Não é possível editar outro buffer agoraE789: ']' faltando: %sE78: Marca desconhecidaE790: undojoin não é permitido depois de desfazerE791: Entrada vazia no mapa de tecladoE792: Menu com nome vazioE793: Não há nenhum outro buffer modificável em modo diffE794: Não é possível definir a variável na caixa de areia: "%s"E795: Impossível excluir variável %sE797: O autocomando SpellFileMissing apagou o bufferE798: ID reservado para ":match": %ldE799: ID inválido: %ld (deve ser maior ou igual a 1)E79: Impossível expandir os caracteres-curingaE800: Árabe não pode ser usado, não foi ativado na compilação
E801: ID já atribuído: %ldE802: ID inválido: %ld (deve ser maior ou igual a 1)E803: ID não encontrado: %ldE804: Não é possível usar '%' com FloatE805: Float usado como NúmeroE806: Float usado como StringE807: Era esperado um argumento Float para printf()E808: Número ou Float requeridoE809: #< não está disponível sem o recurso +evalE80: Erro na escritaE810: Não foi possível ler ou gravar arquivos temporáriosE811: Não é permitido mudar as informações do buffer agoraE812: Autocomandos alteraram o buffer ou o nome do bufferE813: Não é possível fechar a janela autocmdE814: Não é possível fechar a janela, só restaria a janela autocmdE815: Desculpe, este comando está desativado. As bibliotecas do MzScheme não puderam ser carregadas.E816: Não foi possível ler o resultado do patchE817: Uso incorreto de Blowfish big/little endianE818: verificação sha256 falhouE819: verificação Blowfish falhouE81: <SID> usado fora de um scriptE820: sizeof(uint32_t) != 4E821: Arquivo criptografado com método desconhecidoE822: Arquivo de desfazer não pode ser aberto para leitura: %sE823: Não é um arquivo de desfazer: %sE824: Arquivo de desfazer incompatível: %sE825: Arquivo de desfazer corrompido (%s): %sE826: Falha na descriptografia do arquivo de desfazer: %sE827: Arquivo de desfazer criptografado: %sE828: Impossível abrir arquivo de desfazer para escrita: %sE829: erro de escrita no arquivo de desfazer: %sE82: Não foi possível alocar nenhum buffer, saindo...E830: Registro desfazer %ld não encontradoE831: bf_key_init() chamado com senha vaziaE832: Arquivo de desfazer criptografado para arquivo não criptografado: %sE833: %s está criptografado e esta versão do Vim não suporta criptografiaE834: Conflita com valor de 'listchars'E835: Conflita com valor de 'fillchars'E836: Este Vim não pode executar :python após ter usado :py3E837: Este Vim não pode executar :py3 depois de usar :pythonE838: netbeans não suportado com esta GUIE839: Janela alterada por função de completamentoE83: Impossível alocar buffer; tentando usar outro...E840: Função de completamento apagou textoE841: Nome reservado, não pode ser usado para comando definido pelo usuárioE842: sem número de linha para substituir "<slnum>"E843: Erro ao atualizar criptografia do arquivo de trocaE844: cchar inválidoE845: Memória insuficiente, a lista de palavras ficará incompletaE846: Código de tecla não definidoE847: Muitas inclusões de sintaxeE848: Muitos agrupamentos sintáticosE849: Muitos grupos de destaque e sintaxeE84: Não foram encontrados buffers modificadosE850: Nome de registrador inválidoE851: Falha ao criar novo processo para interface gráficaE852: Inicialização da interface falhou no processo filhoE853: Nome de argumento duplicado: %sE854: caminho muito longo para completarE855: Comando abortado devido a autocomandosE858: Eval não devolveu um objeto python válidoE859: Falha ao converter o objeto devolvido pelo python para um valor do vimE85: Não há buffers listadosE862: g: não pode ser usado aquiE864: \%#= só pode ser seguido por 0, 1 ou 2. Será usada a seleção automática do mecanismo de regexE865: (NFA) Fim prematuro de regexpE866: (NFA regexp) %c mal colocadoE867: (NFA) Operador '\%%%c' desconhecidoE867: (NFA) Operador '\z%c' desconhecidoE868: Erro ao construir NFA com classe de equivalência!E869: (NFA) Operador '\@%c' desconhecidoE86: Buffer %ld não existeE870: (NFA regexp) Erro ao ler limites de repetiçãoE871: (NFA regexp) Não é possível um multi seguindo outro multi!E872: (NFA regexp) Muitos '('E873: (NFA regexp) terminação imprópriaE874: (NFA) não foi possível desempilhar a pilha!E875: (NFA regexp) (ao converter de postfix para NFA), muitos estados sobraram na pilhaE876: (NFA regexp) espaço insuficiente para guardar todo o NFA E877: (NFA regexp) Classe de caracteres inválida: %ldE878: (NFA) memória não pôde ser alocada para percorrer os ramos!E879: (NFA regexp) Muitos \z(E87: Não é possível ir além do último bufferE881: Número de linhas alterado inesperadamenteE882: Falha na função de comparação para uniqE883: padrão de busca e registro de expressões não podem conter duas ou mais linhasE884: Nome da função não pode conter dois-pontos: %sE885: Não é possível mudar o sinal %sE886: Não é possível renomear o arquivo viminfo para %s!E887: Desculpe, este comando está desativado. O módulo site do Python não pôde ser carregado.E888: (NFA regexp) %s não pode ser repetidoE88: Não é possível ir para antes do primeiro bufferE890: caractere sobrando após ']': %s]%sE891: Funcref usada como FloatE892: String usada como FloatE893: Lista usada como FloatE894: Dicionário usado como FloatE895: Desculpe, este comando está desativado. O módulo racket/base do MzScheme não pôde ser carregado.E898: socket() em channel_open()E89: Alterações no buffer %ld não foram gravadas (adicione ! para forçar)E901: gethostbyname() em channel_open()E902: Não foi possível conectar-se à portaE903: comando recebido com argumento não-stringE904: último argumento para expr/call deve ser numéricoE904: terceiro argumento para call deve ser uma listaE905: comando desconhecido recebido: %sE906: não é um canal abertoE907: Valor especial usado como FloatE908: valor inválido usado como StringE909: Não é possível indexar uma variável especialE90: Impossível descarregar último bufferE910: Job usado como NúmeroE911: Job usado como FloatE912: ch_evalexpr()/ch_sendexpr() não pode ser usado com canal raw ou nlE913: Canal usado como NúmeroE914: Usando Canal como FloatE915: buffer in_io requer definição de in_buf ou in_nameE916: não é um trabalho válidoE917: Impossível usar callback com %s()E918: buffer precisa ser carregado: %sE919: Diretório não encontrado em '%s': "%s"E91: Opção 'shell' está vaziaE920: arquivo _io requer definição de _nameE921: Argumento inválido para callbackE922: esperava um dictE923: Segundo argumento de function() deve ser list ou dictE924: Janela atual foi fechadaE925: Quickfix atual foi alteradaE926: Lista de locais atual foi alteradaE927: Ação inválida: '%s'E928: String requeridaE929: Muitos arquivos viminfo temporários para %s!E92: Buffer %ld não encontradoE930: Impossível usar :redir dentro de execute()E931: Buffer não pode ser registradoE932: Função closure não deve estar no nível superior: %sE933: Função foi deletada: %sE934: Impossível pular para um buffer sem nomeE935: número inválido para subpadrão: %dE936: Impossível deletar o grupo atualE937: Tentativa de deletar um buffer em usoE938: Chave duplicada no objeto JSON: "%s"E939: Contador positivo necessárioE93: Mais de uma correspondência com %sE940: Impossível travar ou destravar variável %sE941: servidor já iniciadoE942: recurso +clientserver não disponívelE943: Tabela de comandos precisa ser atualizada, execute 'make cmdidxs'E944: Intervalo invertido em classe de caracteresE945: Intervalo muito grande em classe de caracteresE946: Um terminal com trabalho em execução não pode ser modificávelE947: Tarefa em execução no buffer "%s"E948: Tarefa ainda em execuçãoE948: Tarefa ainda em execução (adicione ! para finalizá-la)E94: Nenhum buffer coincide com %sE95: Já existe um buffer com esse nomeE96: Não é possível um diff com mais de %ld buffersE97: diff não funcionouE98: Não foi possível ler o resultado do diffE99: O buffer atual não está no modo diffERRO: Editar arquivoEditar arquivo em nova janelaEditar com &VimEditar em &múltiplos VimsEditar com Vim existente - Editar com único &VimEdita o(s) arquivo(s) selecionado(s) com o VimCodificação:Fim da funçãoFim do arquivo executadoInsira a chave criptográfica: Insira o número do arquivo de troca a usar (0 para sair): Insira a mesma chave novamente: Entrando modo de depuração.  Digite "cont" para continuar.Entrando no modo Ex.  Digite "visual" para ir para o modo Normal.ErroErro e interrupçãoErro ao criar processo: verifique se o gvim está no caminho de busca!Erro detectado ao processar %s:Arquivo de erroConsumo estimado de memória: %d bytesExceçãoExceção interceptada: %sExceção descartada: %sExceção concluída: %sExceção lançada: %sExecutando %sEsperado número de MAP em %s, linha %dEsperado número de REP(SAL) em %s, linha %dEsperado Y ou N em %s, linha %d: %sexpressõesSubcoincidências externas:
FLAG encontrado após outros indicadores em %s, linha %d: %sFalha ao definir path hook: sys.path_hooks não é uma lista
Você deve fazer o seguinte:
- adicionar vim.path_hook ao sys.path_hooks
- adicionar vim.VIM_SPECIAL_PATH ao sys.path
Falha ao definir path: sys.path não é uma lista
Você deve adicionar vim.VIM_SPECIAL_PATH ao sys.pathArquivo "%s" não existeConteúdo do arquivo mudou; não posso usar informação de desfazerAs permissões para "%s" são somente-leitura.
Ainda pode ser possível gravar no arquivo.
Você deseja tentar?Arquivo preservadoArquivosFiltroLocalizar e Substituir (use '\\' para procurar por '\')Localizar &próximaLocalizar próximaLocalizar cadeia de caracteres (use '\\' para procurar por '\')Localizar:Fim da leitura do arquivo de desfazer %sPrimeira palavra duplicada em %s, linha %d: %sIndicador não numérico em %s, linha %d: %sFonte '%s' não é de largura fixaLargura da Fonte%ld não é o dobro da Fonte0Largura da Fonte0: %ldFonte0: %sLargura da Fonte1: %ldFonte1: %sFonte:Para opção %sLixo após argumento de opçãoSaudações, usuário do Vim!Ajude crianças pobres em Uganda!Fim do parágrafo atingidoERRO DE E/SForam ignoradas %d palavra(s) com caracteres não-ASCII em %sIgnoradas %d palavras com caracteres não-ASCIIIgnorando linha muito longa no arquivo de marcasNome de arquivo inválidoIndicador inválido em %s, linha %d: %sNome de registrador inválidoCaractere inicial inválidolinha de entrada_Métodos de entradaInterrupçãoInterrupção: InterrompidoArgumento inválido paraEspecificação de fonte inválidaNúm. de região inválido em %s, linha %d: %sValor inválido para FLAG em %s, linha %d: %sAs chaves não coincidem!Terminar uma conexãoVinculação: Necessária Lista ou númeroBiblioteca Lua não pôde ser carregada.Diferenciar maiúsculas/minúsculasCoincidir palavra inteiraMensagemTradutor das mensagens: Eduardo Dobay <edudobay@gmail.com>'>' faltandoLinha FOL/LOW/UPP faltando em %sLinha SOFO%s faltando em %sModificado por Nome:Necessário %s versão %ld
Necessário Amigados versão 2.04 ou mais nova
Necessária chave criptográfica para "%s"NetBeans não permite gravação de buffers não modificadosNova abaNãoNenhum item sintático definido para este bufferNenhuma abreviação encontradaNenhum ponto de interrupção definidoNão há displayNão há display: Envio da expressão falhou.
Sem entradasNão há arquivos incluídosNenhuma associação encontradaNenhuma marca definidaNenhum resultado sob o cursor; procurando próximoNenhum autocomando coincidenteNão há arquivos antigosSem arquivo de trocaSem texto para imprimirImpossível desfazer; continuando assim mesmoNenhum comando definido pelo usuário foi encontradoNão usadoSem memória suficiente para definir referências, coleta de lixo abortada!Arquivo de desfazer não lido; proprietário difere: %sNada a desfazerNúmero de palavras após análise fonética: %ldOKAbrir arquivoAbrir aba...Abrir aba...Abertura do display X falhouAbertura do display X excedeu o tempo-limiteAbertura do display X demorou %ld msArquivo original "%s"Sobrescrever arquivo existente "%s"?Página %dGravação parcial não é permitida em buffers do NetBeansSelecionar arquivo de patchCaminho comprido demais!Caminho:Padrão encontrado em toda linha: %sPadrão não encontradoPadrão não encontrado: %sRealizando análise fonética...Aperte ENTER ou digite um comando para continuarTrabalho de impressão enviado.Impresso: %sImprimindo '%s'Impressão canceladaImprimindo página %d (%d%%)Procurar por um padrãoQuestãoLendo arquivo de afixos %s...Relendo o arquivo de verificação ortográfica...Lendo arquivo-dicionário %s ...Lendo da entrada padrão...Lendo arquivo de verificação ortográfica "%s"Lendo arquivo de desfazer: %sLendo arquivo viminfo "%s"%s%s%sLendo arquivo de palavras %s ...Recuperação completa. Buffer e arquivo têm o mesmo conteúdo.Recuperação concluída. Você deve verificar se está tudo certo.Reinicializar todas as conexõesSubstituirSubstituir &todasSubstituir todasSubstituir por:Executando no modo compatível com ViExecução não modal; todo texto digitado é inseridoSalvar comoSalvar arquivoSalvar redirecionamentoSalvar sessãoSalvar configuraçõesSalvar visão atualSalvar as alterações em "%s"?Examinando dicionário: %sExaminando arquivo incluído: %sExaminando tags.Examinando: %sWidget barra de rolagem: impossível obter geometria do pixmap 'thumb'.expressões de buscaProcurando por "%s"Procurando por "%s" em "%s"Examinando arquivo incluído %sExaminando arquivo de marcadores %sVeja ":help E312" para mais informações.Veja ":help W11" para mais informações.Veja ":help W12" para mais informações.Veja ":help W16" para mais informações.Seletor de diretórioSelecionadas %s%ld de %ld linhas; %lld de %lld palavras; %lld de %lld bytesSelecionadas %s%ld de %ld linhas; %lld de %lld palavras; %lld de %lld caracteres; %lld de %lld bytesSeleçãoEnviando à impressora...Mostrar conexõesMostrar tamanho em pontosMostrar esta mensagemSinais para %s:Tamanho:Ignorando gravação do arquivo de desfazer; nada para desfazerDesculpe, arquivo de ajuda "%s" não encontradoDesculpe, não há sugestõesDesculpe, apenas %ld sugestõesDesculpe, este comando está desativado: a biblioteca do Perl não pôde ser carregada.Executar script do VimPatrocine o desenvolvimento do Vim!Aumenta o tamanho da pilhaEstilo: de substituiçãoO arquivo de troca "O arquivo de troca "%s" existe. Sobrescrevê-lo?O arquivo de troca já existe!Arquivo de troca criptografado: "%s"Arquivos de troca encontrados:Usando mecanismo de regexp com backtracking para o padrão: Aba %dDestacar este menuTerminalTerminal-concluídoTeste do display X falhouObrigado por voar com o VimO arquivo foi criado em A única correspondênciaEste Vim não foi compilado com o recurso diff.Este comando cscope não suporta a divisão da janela.
Demasiados argumentos "+comando", "-c comando" ou "--cmd comando"Há muitos indicadores de composiçãoArgumentos de edição em excessoHá muitos prefixos postergadosHá muitos prefixos postergados e/ou indicadores de composiçãoRegiões demais em %s, linha %d: %sTopoNúmero total de palavras: %dTexto a mais em %s, linha %d: %sDigite  :qa!  e aperte <Enter> para abandonar as alterações e sair do VimDigite um número e <Enter> (deixe em branco para cancelar): Digite um número e <Enter> ou clique com o mouse (deixe em branco para cancelar): Impossível ler o bloco 0 de Não foi possível registrar um nome para o servidor de comandosDesconhecidoArgumento de opção desconhecidoIndicadores não reconhecidos em %s, linha %d: %sItem não reconhecido ou duplicado em %s, linha %d: %sSem títuloAcimaUse o Vim versão 3.0.
Foi usado CUT_BUFFER0 em vez de uma seleção vaziaUsando chave criptográfica do arquivo de troca para o arquivo de texto.
Usando arquivo de troca "%s"VIM - ATENÇÃOVIM - Procurar e substituir...VIM - Procurar...VIM - VI MelhoradoErro do VIMVIM: Não foi possível abrir a janela!
VIMRUN.EXE não foi encontrado no seu $PATH.
Comandos externos não farão uma pausa ao terminar.
Veja  :help win32-vimrun  para mais informações.Vim - Seletor de fontesVim E458: Impossível alocar entrada do mapa de cores; algumas cores podem estar erradasAlerta do VimDiálogo do VimErro do VimErro do Vim: ~aVim terminando com %d
Vim tem código aberto e é livremente distribuívelVim: Evento %s interceptado
Vim: Erro ao ler a entrada; saindo...
Vim: Erro: Não foi possível iniciar o gvim a partir do NetBeans
Vim: Erro: Esta versão do Vim não executa num terminal Cygwin
Vim: Janela principal destruída inesperadamente
Vim: Lendo da entrada padrão...
Vim: Pedido "die" recebido do gerenciador de sessão
Vim: Aviso: Entrada não é de um terminal
Vim: Aviso: Saída não é um terminal
W10: Aviso: Modificando um arquivo somente-leituraW11: Aviso: arquivo "%s" foi alterado desde o início da ediçãoW12: Aviso: arquivo "%s" foi alterado e o buffer também foi alterado no VimW13: Aviso: arquivo "%s" foi criado por outro programa desde o início da ediçãoW14: Aviso: Estouro da lista de nomes de arquivosW15: Aviso: Separador de linha incorreto; ^M pode estar faltandoW16: Aviso: modo do arquivo "%s" alterado desde o início da ediçãoW17: Árabe requer UTF-8; digite ':set encoding=utf-8'W18: Caractere inválido no nome do grupoW19: Deletando augroup em usoW20: Versão 2.x do python não suportada; ignorando arquivo: %sW21: Versão 3.x do python não suportada; ignorando arquivo: %sW22: Texto extra após :endfunction: %sAVISO: O arquivo foi alterado desde que foi carregado!!!AvisoAviso: Não encontrada a lista de palavras "%s.%s.spl" ou "%s.ascii.spl"Aviso: Não encontrada a lista de palavras "%s_%s.spl" ou "%s_ascii.spl"Aviso: Entrada inesperada em outro buffer (verifique os autocomandos)Alerta: Método fraco de criptografia; veja :help 'cm'Aviso: tanto composição quanto NOBREAK foram especificadosAviso: região %s não é suportadaAviso: o terminal não suporta destaque no modo visualAo abrir o arquivo "Não será sobrescrito pelo arquivo de desfazer; ilegível: %sNão é um arquivo de desfazer; não será sobrescrito: %sPosição da janela: X %d, Y %dPalavra '%.*s' adicionada a %sPalavra '%.*s' removida de %sPalavra de outra linhaGravar arquivo parcial?Gravando arquivo de verificação ortográfica %s ...Gravando arquivo de sugestões %s ...Gravando arquivo de desfazer: "%s"Gravando arquivo viminfo "%s"Valor CHECKCOMPOUNDPATTERN incorreto em %s, linha %d: %sValor COMPOUNDMIN incorreto em %s, linha %d: %sValor COMPOUNDRULES incorreto em %s, linha %d: %sValor COMPOUNDSYLMAX incorreto em %s, linha %d: %sValor COMPOUNDWORDMAX incorreto em %s, linha %d: %sFalha no vigia de conexões ICE do XSMPFalha em SmcOpenConnection do XSMP: %sXSMP tratando pedido de auto-salvamentoXSMP perdeu a conexão ICEXSMP abrindo conexãoSIMSim[ERRO DE CONVERSÃO na linha %ld][CR faltando][Excluído][Dispositivo][Arquivo muito grande][Ajuda][BYTE INVÁLIDO na linha %ld][Última linha incompleta][Lista de locais][NÃO convertido][Novo DIRETÓRIO][Novo arquivo][Novo arquivo][Novo][Sem nome][Alterações não gravadas]
[Não editado][Permissão negada][Visualização][Lista quickfix][ERROS DE LEITURA][S/L][Erros de leitura][Rascunho][total de chamadas] re/malloc() %lu, free() %lu

[dispositivo de caractere][convertido][criptografado][formato dos][dos][fifo/socket][fifo][arquivo ..]    abrir o(s) arquivo(s) especificado(s)[linhas longas divididas][formato mac][mac][sem fim de linha][somente-leitura][socket][formato unix][unix]_Cancelar_Fechar_OK_Abrir_Salvarativoargumento de add()apóse execute diff com o arquivo original para verificar mudanças)tentativa de atribuir sequência de tamanho %d a slice estendida de tamanho %dtentativa de atribuir sequência de tamanho maior que %d a slice estendidatentativa de referência a buffer apagadotentativa de referência a aba removidatentativa de referência a janela excluídaremovendo automaticamente o autocomando: %s <buffer=%d>autocomando %santes debloco de %ld linhas copiado%sbloco de 1 linha copiado%sbuffer inválidopor por Bram Moolenaar et al.inputrestore() foi chamado mais vezes que inputsave()chamando %simpossível excluir os atributos do OutputObjectnão foi possível ler o resultado de 'charconvert'impossível alterar o modo de console ?!
impossível criar comando de buffer/janela: o objeto está sendo excluídoimpossível excluir linhaimpossível excluir os atributos de vim.Dictionaryimpossível excluir os atributos de vim.Listnão foi possível obter a linhaimpossível inserir linhaimpossível inserir/adicionar linhaimpossível modificar dicionário fixoimpossível modificar lista fixaimpossível abrir não foi possível registrar o comando de callback: o buffer/janela já está sendo excluídonão foi possível registrar o comando de callback: referência a buffer/janela não encontradaimpossível substituir linhaimpossível salvar informações para desfazernão foi possível definir o atributo %snão foi possível redefinir a(s) linha(s)impossível copiar; excluir assim mesmoalteraçãoalteraçõesde fechamentocmdo: %scontinuando em %snão foi possível executar "%s"impossível abrir bufferfalha na execução do cscope em cs_create_connectionfalha de setpgid em cs_create_connectioncs_create_connection: fdopen para fr_fp falhoucs_create_connection: fdopen para to_fp falhoucomandos do cscope:
conexão %s com o cscope fechadacursor posicionado fora do bufferusando por omissão 'bloco 1 apagado?dicionário está travadonão pude alternar para a aba especificadanão pude alternar para a janela especificadadlerror = "%s"não saia do editor até que o arquivo tenha sido gravado com sucesso!chaves vazias não são permitidasvariável de ambienteerro convertendo valores Scheme para Vimtratador de erroesperava 3-tupla como resultado de imp.find_module(); recebi %sesperava 3-tupla como resultado de imp.find_module(); recebi tupla de tamanho %desperava instância de bytes() ou str(); recebi %sesperava int() ou algo coercível para int(); recebi %sesperava int(), long() ou algo coercível para long(); recebi %sesperava elemento sequência de tamanho 2, mas obtive sequência de tamanho %desperava instância de str() ou unicode(); recebi %sesperava objeto vim.Buffer, mas recebi %sesperava objeto vim.TabPage, mas recebi %sesperava objeto vim.Window, mas recebi %sexpressões desativadas na compilaçãoargumento extend()falha ao adicionar item a listafalha ao adicionar chave '%s' ao dicionáriofalha ao mudar diretórionão pude encontrar a janela na aba atualfalha ao renomear bufferfalha ao executar função %sfalha ao executar o códigofalha ao alternar para buffer %dlinhas a menosarquivo
arquivo / contexto / linha
argumento de filter()concluídofim da execução de %squadro no nível mais alto: %dquadro é zeroliberando %ld linhasfunção %s não existeerro da gvimext.dlltabela hash alterada durante iteraçãoajudaopção ocultano caminho de busca ---
índice deve ser int ou slice, não %sargumento de insert()erro interno: referência NULL recebidaerro interno: falha ao adicionar item à listaerro interno: não consegui obter item %d de lista do Vimerro interno: imp.find_module devolveu tupla com NULLerro interno: valor de tipo inválidoerro interno: não existe o item %d na lista do vimerro interno: não há itens suficientes na listaerro interno: opção de tipo desconhecidoatributo inválido: %snúmero inválido de bufferexpressão inválidanome de marca inválidoé um dispositivo (desativado pela opção 'opendevice')é um diretórionão é um arquivonão é um arquivo ou dispositivo com permissão de escritaé somente-leitura (adicione ! para forçar)interrompido pelo tecladolinha %4ld:linha %6d, palavra %6d - %slinha %ldlinha %ld de %ld --%d%%-- col linha %ld: %slinha %ld: não foi possível executar "%s"linha %ld: executando "%s"linha a menosnúmero de linha fora dos limitesnúmero de linha fora dos limitesconstrutor de lista não aceita argumentos por palavra-chaveíndice de lista fora dos limiteslista está travadade logoffargumento de map()nome da marca deve ser um único caracteremarca não definidacorrespondência %dcorrespondência %d de %dcoincidência no arquivomáximo mch_get_shellsize: não é um console??
  menu  Editar->Opções globais->Alternar modo de inserção    menu  Editar->Opções globais->Alternar compatível com Vi   menu  Ajuda->Órfãos         para informações             menu  Ajuda->Doar/Registrar  para informaçõesmínimo modelinelinha a maislinhas a maisnetbeans não suportado com esta GUI
novo shell iniciado
nãonenhuma conexão ao cscope
nenhuma coincidência exataaba inexistentejanela inexistentesem sincronizaçãonão permitido na caixa de areia do Vimnão encontrados não encontrado em '%s': "%s"ainda não implementadonúmero mudanças quando             salvonúmero deve ser maior que ou igual a zeronúmero deve ser maior que zerope_line_count é zerolinha de comando pré-vimrcproblema ao alternar janelasatributo somente-leitura: buffergravandoargumento de remove()substituir por %s (y/n/a/q/l/^E/^Y)?argumento de reverse()linha %d coluna %dexecutandobusca atingiu FIM; continuando do TOPObusca atingiu TOPO; continuando do FIMshell shell devolveu %dde desligamentopasso de slice não pode ser zeroargumento de sort()executando "%s"stack_idx deveria ser 0a cadeia não pode conter quebras de linhasincronização nos comentários no estilo do Csincronização começa sintaxe insensível a maiúsculas/minúsculassintaxe sensível a maiúsculas/minúsculassintaxe com ocultamento desativadosintaxe com ocultamento ativadomarcador %d de %d%smarcadorpara %s em %sdigite  :help cp-default<Enter> para informações sobre issodigite  :help iccf<Enter>     para informações   digite  :help register<Enter> para informações  digite  :help sponsor<Enter>  para informações  digite  :help version8<Enter> para info da versãodigite  :help<Enter> ou <F1>  para ajuda on-line digite  :q<Enter>             para sair          digite  :set nocp<Enter>      para restaurar padrões do Vimimpossível converter %s para dicionário do vimimpossível converter %s para lista do vimimpossível converter %s para estrutura do vimimpossível obter valor da opçãoimpossível remover definição global para %simpossível remover definição %s sem valor globalargumento de uniq()desconhecidoopção desconhecida: opção desconhecidaopção do Vim desconhecidafunção anônima %s não existevalor muito grande para o tipo int do Cvalor muito pequeno para o tipo int do Cversão erro do vimnúmero da janela fora dos limitesjanela inválidacom interface gráfica (clássica).com interface Carbon.com interface Cocoa.com interface GTK2.com interface GTK2-GNOME.com interface GTK3.com interface gráfica.com interface Photon.com interface X11-Athena.com interface X11-Motif.com interface X11-neXtaw.sem interface gráfica.escrita em dispositivo desativada pela opção 'opendevice'PK�j�Z�j��YYvim80/lang/menu_zh_tw.cp950.vimnu�[���" Menu Translations:	Traditional Chinese

source <sfile>:p:h/menu_chinese_taiwan.950.vim
PK�j�Z��YYvim80/lang/menu_de.utf-8.vimnu�[���" Menu Translations:	German for UTF-8 encoding

source <sfile>:p:h/menu_de_de.latin1.vim
PK�j�Z�ɊRRvim80/lang/menu_zh_cn.18030.vimnu�[���" Menu Translations:	Simplified Chinese

source <sfile>:p:h/menu_zh_cn.gb2312.vim
PK�j�ZҎ��VVvim80/lang/menu_pt_br.utf-8.vimnu�[���" Menu translations: Portuguese for UTF-8 encoding

source <sfile>:p:h/menu_pt_br.vim
PK�j�Z��,CC vim80/lang/menu_pt_br.latin1.vimnu�[���" Menu translations: Portuguese

source <sfile>:p:h/menu_pt_br.vim
PK�j�Z�G�=�� vim80/lang/af/LC_MESSAGES/vim.monu�[�������,mY�v�v�v
�vww'%w/Mw}w�w�w0�w�w�w+x1x"Lxox�x5�x�x�xyy�%y,�y;�y;zRzpz�z�z�z�z�z�z{{/{F{0]{.�{/�{1�{0|
P|^|t|�|
�|�|
�| �|�|}}!2}T}"s}�}�}�}@�}~*~;~L~\~k~/~~=�~�~.1@1r����-�2�R�g�y�����3ƀ3��$.�S�p�������ˁ
�����(�;�
S�$a��� ����˂;��.�7;�0s�#��	ȃ҃����
�(�B�S�_�w�������!��ӄ��"�*�I�Q� Y�z�������Dž
υ݅��"�
*�8�	E�O�o�{���!��	��"��*Ԇ���'�-�9�F�]�
d�
r�}�
����������5܇�-$�1R�&����È؈����&�$8�]�
m�x���������щ���	��-�E�V�b�q���
������
ŊЊ����(�4�C�2G�=z�����'ҋ-��5(�^�{�A��֌���	!�+�D�U�k�-����$׍��
�'�7�K�W�?n�5��!�%�9,�Ef�9��C�I*�Ht�;��0��6*�8a�3��-Α��%�<�P�i���&��,��#�4� @�@a�-��0Г�;�R�"r���>��)�>�<N���#��:ϕ'
�92�l�$��9��4�;� U�>v�1��/��-4�b�.q�B��"�/�26�*i���+��%ޙ'�(,�<U�E��.ؚ-�$5�Z�<s���*ʛ&���+�<�N�a�j�v���������Μڜ
���"��!�-�<�T�l���)����$ʝ!�� �",�"O�r���1��?֞�'�6�=�Q�b�x�������ßޟ��� �7�$?�d�!u�����Šɠ��#�7�>�Y�Qw�ɡء��� �6�?V���
��
��$��+�.
�<�V�e�"~�	����!��٣"ޣE�G�%d�#��-��ܤ���4�&P�w�������ҥ�'�*�)E�+o�@��-ܦ
�5'�]�z�����/Ƨ1��(�EE���-��7֨#� 2�:S�5��&ĩ"�&�$5�#Z�!~�=��5ު �(5�7^�!��,����� 0�#Q�&u�����ˬ���:�Y�0x�$��!έ �(�4:�,o�����ˮ� ���6�1P���!��%��%�$
�2� K�l���?��&�!
�,�
H�AV�%��%��"�9�'A�(i�2��*Ų!�!�)4�%^�!��4��:۳&�;=�;y�)��0ߴ�/�K�d�v�,��!��8޵&�#>�b� z�/��"˶�-��-�>�W�/o�*��(ʷ#��3�N�k���>������"-�P�o�����!��ڹ9��1/�)a�1��%��7��A5�?w���λ�!�'�C�^�0}�4��$�)�N2�,��L��8��4�,T� �� ��#þ��7�NT�M���
�*�$E�!j�3��,��2�% �*F�9q�(���"��#0�T�s�����B��
�0'�!X� z�<��(���!�+6�2b�$����,���H �,i�����"�����+�J�i�9��������0�#?�'c�����,��&���*�+<�2h�-��(����"�'.�'V�,~���.����#�,5�Wb�)��"��,�%4�Z� w���2��2��2�J�!g�����2��5��' �#H�)l�,��'��$��%�6�P�m�����$��&�� �''�*O�#z�'��%��3��! �B�+a���*��-��$�+�J�i����� �� ��$��$�)?�,i�����,�����%!�G�=g���������'�9�V�$s�#��0��.��0�M�m�����������-�� -�N�7i�)����$��(�1�P�%_�$��������'��!�'@� h������� ��7��0,�]�#|���"��(��!�.�-L�1z�5����.��*,�1W�9����*��&�+5�,a�+��4��<��+,�'X�������������
� �3�F�"U�x������������*�J�d���������:��=�<X�6��<��	�""�E�4Z�5��4��3��.�0@�q�$��%�������,�A�\�n������������+�?�'\�����!������"�1�1F�x�����"�������,�H�\�o�������������
��<�Y�s�*��)������ �4�O�`�6y�#����)��2�M�&m�K�� ��� �;�[�t������������.�+M�y�%��7��5��-�J�,i�������)�� �(�>�Z�u���������0��/�F�e���4��.��$�)*�1T�;����8��*�6�$V�{�%��,�������&+�-R�&���� ������+6� b���?��)���6�#Q�2u�)�� �����.�!@�b���������������9�S�(l�+��/����.�!M�"o�B�����+�K�)j�'�����'��	"�,�D�S�l���#������$��.!�P�.g�6����6�#�	B�L�a�y�����
���������(�	1�%;�a�
m�x���)���
��
��	��0�E�J�%h�����	�����
��	�%�1�=�R�d�	v�
����2�����$�/'�'W����
��$�������%�2�!H�j���������#���1.9
hs	�����
��,5K9k���
���+(Ir����
�	���-9:
t���&��?
	MWm�"�����
'(PFp����/B_u�0�;� 
>+j���(����+*Vk{��	����Fb	�	
�	
�	�	+�	
%
@
^
%{
�
(�
�
1�
+(*T&�9�M�>H)�5�A�4)
$^
6�
"�
�
?�
"%H]y�� �!�#�#<
T_p�
���	�����


(
3>	D	NXv�	�
��
�5��	
!/&6]dw��
���
��:�""+N]a1z
�$�"��<[n~��H�CEYv���	��� �--2`r���=�$+PVq��������	
 & Gh
{������(7#@1d1�1�1�,5HKbq
��
� �����	*"4W$h$�����
��4P`ow.�.�.�..?.n.�.�.�*9HZ	cm���
����	�';P%]E�"�� 
  10 :b � � � /� !#!++!W!+s!�!�!:�!�!"6"E"�`";#1V#�#�#�#�#�#�#$$6$R$k$�$�$0�$/�$/%2H%0{%�%�%�%�%&!&2&&C&j&|&�&"�&�&#�&'.'@'EP'�'�'�'�'�'(>(KY(�(�(�(�(4)15)g))%�)"�)+�)*(*<*N*l*�*-�*=�*#+6+S+o+�+�+%�+
�+�+�+,,0,M,&g,�,#�,�,�,>�,
1-?->Q-7�-"�-	�-�-..$.?.
G.R.i.�.�.�.�.�.�.�./"/@/_/g/	�/�/&�/�/�/�/00
0
0*0E0b0
k0
y0	�0�0
�0�0�0"�0	�0/�08"1[1w1
�1�1�1�1�1
�1
�1�1
�1�12'2$02=U2�22�24�2(373R3g3{3�3�3�3.�3�3
4!4
24@4Q4i4�4�4�4�4�4�4�455&565M5
]5k5�5�5�5�5�5�5�566D6O`6�6�61�6.7</7l7�77�7�7�78
8
!8,8H8Y8n83�8�8%�89
9
'959I9U9An9;�9*�9+:DC:I�:G�:R;Lm;W�;B<5U<9�<9�<5�<,5=b=%=�=�=�=�=,>5.>%d>5�>#�>F�>0+?8\?�?:�?0�?!@>@AP@3�@A�@5A >A)_A4�A,�A9�A%B9?B=yB7�B>�B'.C9VC5�C5�C�C3DLD5\DI�D(�D2E78E+pE!�E.�E*�E&F)?F:iFG�F6�F;#G&_G�G<�G �G1�G(0HYHfHwH�H
�H
�H�H�H�H�H�H
II
+I9I,BIoI{I�I�I$�I�I2�I
/J%:J"`J�J�J%�J'�J�JK1)K<[K�K�K�K�K�K�K�KL%LDL!JLlL!�L�L�L�L(�LM(M%DMjMyM }M
�M�M,�M
�MN""NtEN�N�N�N!�N'OFOEeO	�O
�O�O&�O'�O,!PNPlP~P$�P�P�P�P�P+�PQQ dQ,�Q+�Q3�Q"R5RRRpR&�R�R�R�R�R%S%=S)cS�S(�S'�S>�S/9T&iT9�T!�T�TU $U<EU2�U�UM�U!V8>V3wV�V�VA�V<+W+hW(�W$�W)�W/X&<XFcX5�X$�X&Y5,Y)bY"�Y"�Y�Y�Y(Z(*Z)SZ}Z�Z�Z�Z�Z[-[/I[;y['�[+�[,	\(6\4_\,�\�\�\�\]")] L]m]9�]'�]!�]6^)F^$p^�^%�^�^�^A_0I_$z_�_�_R�_*`"G`(j`H�`.�`*a,6a3ca*�a'�a2�a'b$Eb:jbC�b+�b9c=Oc5�c6�c'�c"d>d[dvd7�d(�d@�d.4e!ce'�e0�e<�ef:f*Ofzf�f�f.�f,�f&g$Dgig�g�g�g�gBh&Dhkh�h.�h!�h�hi#i&Ciji<�i6�i.�i6+j/bj2�j�jK�j=,kjk�k!�k)�k!�k$l!-l=OlD�l+�l5�l^4m*�m[�mJn#en4�n"�n#�n)o$/oToGsoQ�oW
pep"�p!�p+�p(�p:q+Zq<�q*�q'�q6r+Mryr#�r�r$�r�r"s";s"^sD�s!�s5�s#t"BtBet0�t%�t�t)u5Fu!|u�u8�u�uMv3`v�v%�v)�v�vw9wXw ww1�w�w�wx1%x/Wx1�x�x�x9�x-y'Myuy1�y8�y3�y+'z Sz.tz+�z>�z={L{'b{�{#�{'�{]�{,L|'y|0�|+�|!�|* }K}3f}4�}8�}~"&~I~c~2y~1�~.�~
**3U,�*�(�#
�.�M�$^���#��&€$�'�06�%g�*��!��@ځ!�=�/\���2��5ނ� 3� T�u�����*Ń*�)�+E�+q�2��Є�3�5�$H�)m���@���#�7�O�)o���$��#܆$�-%�.S�G��"ʇ#��1�L�d�t�-����ڈ7��10�b�&��2��܉��$�$-� R�s�$��,��)ߊ!	�!+�M�e���)��>Nj;�(B�*k���'��,ތ#�/�2L�6�=��!�6�/M�4}�?��$�,�6D�={�/��%�1�BA�/��3�����0�C�]�{�������%ӑ���0�'O�!w��� ��"ْ��!�8�R�r���=��@�A(�=j�8������?.�8n�;��;��;0�l�!��"��#ǖ!�!
�/�!E�g�&x���!��ڗ��� ,�M�"e�+����(Ę(��6� O�p�0�� ��֙�"�)�=�!Z�'|�����ך���/�L�f�y�����̛(�6�5F�|���!��ɜ���<�$Q�#v�3��1Ν�(�VH�'��Ǟ��"�>�Y�v�����!ȟ�!	�-+�Y�+x�<��:�!�#>�)b�����ġ,ݡ
�)�E�b�����%�����>�[�!q� �� ��:գ2�,C�3p�8��Eݤ#�;4�7p�#��&̥#�0�1H�z�����*��/�'�A�'^�*��*��ܧ9��*1�\�Iu�)���8	�)B�9l�4��$۩��:�J�j�������ƪժ�#�J%�p�+��0��9�&&�$M�r�)��(��L�&.� U�'v���"��,�+�:�#Y�.}���
����ݮ��#� ;�\�o���/��<ѯ�2)�A\�����8��&��%�=�!Y�{�������±ر��5�
'�+5�a�n�(w�	��1��ܲ
���
��'�;�T�Y�+u�����ܳ����
'�2�
B�M�
Z�e�}���������EҴ�
(�6�(O�8x�5���#�%�57�m�������
Ӷ�.��.)�X�[�)w�+��4ͷ��	:�>D�����	����̸�
��
���9�M�S�(l�)����ع
��	���!�4�%I�/o�������к����/�G�c�v�D��
Ȼӻ!��%&�$L�Aq�����ܼ��#�3�B�[�h�}�/��-��Q�<�O�f�
}�������*ɾ��'�>;�Iz�'Ŀ>�+�G�%J�p�)�������
���2��2�H�U�
n�|���"�����T@���������'���%�!D�f�*���#����7��83�6l���1��C��i/�@��"��:��M8�6��!��:��%�@�>L�.���������#�$A�'f�$������������,�/�;�
L�	Z�	d�	n�x�����������������&�,�8�
N�Y�e�j�7v�	��
��
����
��������
'�5�;�
C�Q�Z�k�z�@��*��(���#�)�4D�y�+��)��&��<��;�U�j�����J��M�O�"h���'��������
����,�7>�7v����������D�a�*~������������	��(�?�U�
h�s�*��&����
���� �%�"2�U�q�	����
����
��*��B��C?�9��0��	������+�>�X�m�r�.�����������+�!?�a�.p�.��������"���*�#B�#f�����
����8��3�97�9q�4��8��4�4N�7��������	������'�7�F�R�e�r�������������)��l������43v/G�_�y�����<z$l��v/���eV-I!��I�`20�#_dy����J���E:B<���i�{
�Y��"w���d����[����l�Z�H^MC��k��-���,�z�]��7.��p�~�����+,��R��m���M�}�����b�22�%�,�,^�~��b>@4�'�J�\�o����\�[rL0�!u�����Bj����� on�|$I4S�T��j4���^��:��VK'��"3F�N�����B� ��u?�9J}E��:��k����#���m�>�1NM�����5c��8��d�<��0��6����,�TW�Z�qI��0�-6o��a�
�������!�q�f��(�u	J	�z7	$�~�zy��L�6\�i�6�@S�������/����<�!*�P�Xc�F���%j@R	)��#I2��	�e�\w���n)G��DZ���OB�9������|3�Hm����R�C�=_��8��*b~B�k!
`T��f��v6q����3�Mh}g����-��D�Z���mL����
�
�)N���s������c��L�G)Xt����C����U�Qj�I�A�o� x@[}���$�|��s u_F�(9h|.#��8:]B����iX�����/7*��T7O��zU�;qF��#a��n�}>
Ca���gHnj2��O���D5d�~��w��1]�?�h?����r���V��`m��t�E�g����iE�G{(��5�:'�rK�O�AK���e�.Q��)Q��&�wQ���
�aw�
���&���X�g���N��
�� }�'x�?.0�9�7������A8�_�{�y?`������^�UP��Z���U��?�Ypw�>kN��l8�p�t:�D�"vH�c����<�i���Q\D��|Y&k1�����9�%��q�#x����=���F�Y/��a���N��r'��% W��������`�e$���
rW���O)��si_S��o�9"v�
;^��Wz/%�n��"[=Cgk�*U�{��&���(A�;tFW���;��f�X<�r=�J|Z*s��P�m���q�V,3G���1]bc�6�����R��+P�c����"�=���R[�H]�s�S+��x-���Y�D�Caf���&��p{$G4��u+Po�~x.��K2Kt>A(���h`+(��+��@��^��p���Y�V��5�E;�8�7�U�M��exh	���{������y��5b�K�vf%�����e�=h����n��g���;���S3�\1�s�j�p@&�T��SX�*4����yRL��T'0H�J���E���fl[L�t�Q���-�.�OV���d�]��5WP�d���A
�bul�!��������1M�>����			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (RET/BS: line, SPACE/b: page, d/u: half page, q: quit) (RET: line, SPACE: page, d: half page, q: quit) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE Tag completion (^]^N^P) Thesaurus completion (^T^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^E^Y^L^]^F^I^K^D^V^N^P) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s made pending%s resumed%s returning "%s"%s returning #%ld%s, line %ld%sviminfo: %s in line: &Diff with Vim&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort
&Delete it&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%.*s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAllAll cscope databases resetAll included files were foundAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Before byte %ldBotBreakpoint in "%s%s" line %ldBrowse classCalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Conversion with 'charconvert' failedCould not allocate memory for command line.Could not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

DirectionDirectoriesDo you really want to write to itDownE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE106: Unknown variable: "%s"E107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Undefined function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters before '='E190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: Warning: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_timestamp: Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu of that nameE32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE361: Crash intercepted; regexp too complex?E363: pattern caused out-of-stack errorE364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot set read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failedE514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE56: %s* operand could be emptyE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE57: %s+ operand could be emptyE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while nesting too deepE586: :continue without :whileE587: :break without :whileE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE58: %s{ operand could be emptyE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert from multi-byte to "%s" encodingE621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE68: Invalid character after \zE69: Missing ] after %s%%[E70: Empty %s%%[]E71: Invalid character after %s%%E72: Close error on swap fileE73: tag stack emptyE74: Command too complexE75: Name too longE76: Too many [E77: Too many file namesE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - &Edit with single &VimEdits the selected file(s) with VimEnd of functionEnd of sourced fileEnter encryption key: Enter nr of choice (<CR> to abort): Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:ExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpressionExternal submatches:
File "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find NextFind string (use '\\' to find  a '\')Find symbolFind what:Font '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Garbage after optionGenerate docu forGreetings, Vim user!HelpHelp poor children in Uganda!Hit ENTER or type command to continueHit ENTER to continueHit end of paragraphI/O ERRORIllegal file nameIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Modified by Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%.*s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading from stdin...Reading viminfo file "%s"%s%s%sRecovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%.*s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSee ":help E312" for more information.See ":help W11" for more info.Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesSwap file "Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many edit argumentsTopType  :quit<Enter>  to exit VimUnable to read block 0 from Unable to register a command server nameUndoUnknownUnknown optionUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Entered other buffer unexpectedly (check autocommands)Warning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing viminfo file "%s"XSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR][CR missing][Deleted][Device][Error List][ILLEGAL BYTE in line %ld][Incomplete last line][NL found][NOT converted][New File][New file][New][No File][No file][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][string too long][unix format][unix]and run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %sconnectedcontinuing in %scould not source "%s"cs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?don't quit the editor until the file is successfully written!error list %d of %d; %d errorsexpressions disabled at compile timefile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelpin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal new shell started
nono cscope connections
no such bufferno such windowno syncingnot not found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwith (classic) GUI.with BeOS GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: Vim 6.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2005-04-17 23:24+0200
PO-Revision-Date: Wed Oct 31 13:41 SAST 2001
Last-Translator: Danie Roux <droux@tuks.co.za>
Language-Team: Danie Roux <droux@tuks.co.za>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO_8859-1
Content-Transfer-Encoding: 8-bit
			  (Nog nie ge�mplementeer nie)

	Laas gestel vanaf 

Parameters:


gebruik:
          gewysig: 
         [nie bruikbaar op hierdie rekenaar nie]
         [nie bruikbaar met hierdie weergawe van Vim nie]
         gasheernaam: 
         gebruikersnaam: 
         proses ID: 
    Naam        Args Reeks Klaar     Definisie
   #   re�l
   of:
  # NA etiket      VAN re�l   in l�er/teks
 spring re�l kol l�er/teks
# %s Geskiedenis (van nuutste na oudste):

# Buffer lys:

# L�ermerkers:

# Geskiedenis van merkers in l�ers (nuutste tot oudste):

# Springlys (nuutste eerste):

# Vorige Vervangstring:
$
# Registers:

# globale veranderlikes:

(1) 'n Ander program mag besig wees met hierdie l�er.
    Indien wel, pas op om nie met twee verskillende weergawes
    van dieselfde l�er te sit wanneer veranderinge gemaak word nie.

(2) 'n Bewerkingsessie van hierdie l�er het ineengestort.

(Jy wil dalk die l�er stoor onder 'n ander naam

--- Outobevele ---
--- Globale opsie waardes ---
--- Lokale opsie waardes ---
--- Kieslyste ---
--- Opsies ---
--- Registers ---
--- Tekens ---
--- Sintaks items ---
--- Sintaks sync items ---
--- Terminaal kodes ---
--- Terminaal sleutels ---
16-bis MS-DOS weergawe
32-bis MS-DOS weergawe
Parameters deur gvim herken (Athena weergawe):

Parameters wat gvim verstaan (GTK+ weergawe):

Parameters deur gvim herken (Motif weergawe):

Parameters wat gvim verstaan (RISC OS weergawe):

Parameters deur gvim herken (neXtaw weergawe):

Groot weergawe 
Kan nie pype skep nie

Kan nie dop uitvoer nie 
Kan nie dop 'sh' uitvoer nie

Kan nie vurk nie

Bevel be�indig

Gekompileer op 
Het 'n ruill�er gevind met die naam "
Enorme weergawe 
Ingeslote laslappies:
MS-Windows 16-bis weergawe
MS-Windows 16/32-bis GUI weergawe
MS-Windows 32-bis GUI version
MS-Windows 32-bis konsole weergawe
MacOS X (unix) weergawe
MacOS X weergawe
MacOS weergawe
Vim het die ruill�er nie opgedateer nie. Dalk was niks verander nie.
Meer inligting met: "vim -h"

Normale weergawe 
RISC OS weergawe
Klein weergawe 
Piepklein weergawe 
Vim: Het X fout ontvang

WAARSKUWING: Oorspronklike l�er mag verlore of beskadig wees

[grepe] totaal 'alloc'-vrygelaat %lu-%lu, in gebruik %lu, piekgebruik %lu

verander re�l  kol teks
merk re�l   kol l�er/teks
dop lewer 
sinchronisering met items                              vir Vim verstekwaardes                              vir twee modusse                gedateer:           eienaar:          [kan nie oopgemaak word nie]         [kan nie gelees word nie]         [lyk nie soos 'n Vim ruill�er nie]         [van Vim weergawe 3.0]         l�ernaam:       -- geen --
      NUWER as die ruill�er!
      gebruiker exrc-l�er: "     gebruiker vimrc-l�er: "    Indien wel, gebruik ":recover" of "vim -r    Indien jy dit alreeds gedoen het, verwyder die ruill�er "    Stop, of gaan versigtig voort.
    re�l=%ld  id=%d  naam=%s    stelsel kieslys-l�er: "    gebruiker gvimrc-l�er: "   In huidige gids:
   In gids    Wat gespesifiseerde naam gebruik:
   gedateer:    gasheernaam:    stelsel vimrc-l�er: "  # pri tipe etiket (Alreeds gelys)  2de gebruiker exrc-l�er: "  ONTFOUTINGS-KOMPILERING  Kenmerke in- (+) of uitgesluit (-):
  NIE GEVIND NIE Gaan etiket met ander kas gebruik!  bystand vir $VIM: "  stelsel gvimrc-l�er: " # pid    databasis naam                      gidsvoorvoegsel
 (Onderbreek) (NIE GEVIND NIE) (RET/BS: re�l, SPACE/b: bladsy, d/u: halwe bladsy, q: los dit (RET: re�l, SPACE: bladsy, d: halwe bladsy, q: los dit (sluit in vorige gelyste treffer) (invoeg) (invoeg) Rol (^E/^Y) (taal) (re�l verwyder) (word nie ondersteun nie) (plak) (vervang) (vervang) Rol (^E/^Y) (nog steeds aan die uitvoer) (vvervang) 2de gebruiker vimrc-l�er " 3de gebruiker vimrc-l�er " Word bygevoeg Arabies OMSETTINGSFOUT Bevelre�lvoltooiing (^V^N^P) Kopie %d van %d Definisievoltooiing (^D^N^P) Woordeboekvoltooiing (^K^N^P) GEFAAL L�ernaam voltooiing (^F^N^P) Hebreeus INVOEG Sleutelwoord Lokale voltooiing (^N^P) Sleutelwoord voltooiing (^N^P) Gidspatroon voltooiing (^N^P) VERVANG OMKEER KIES KIES BLOK KIES RE�L Etiketvoltooiing (^]^N^P) Tesourusvoltooiing (^T^N^P) VISUELE VISUELE BLOK VISUELE RE�L VVERVANG Hele-re�l voltooiing (^L^N^P) [Gewysig] [a] [w] ^X modus (^E^Y^L^]^F^I^K^D^V^N^P) bygevoeg kan nie gebruik word op hierdie rekenaar nie.
 kan nie gebruik word met hierdie weergawe van Vim nie.
 bystand vir $VIMRUNTIME: " in Win32s modus inligting tipe l�er
 re�l breuke re�ls voor boonste lyn merkers op %ld re�ls op 1 re�l of meer teruggekeer
 vim [parameters]  met OLE ondersteuning geskryf"
    om hierdie boodskap te vermy.
"
    om die veranderinge te herwin (sien ":help recovery").
" bestaan alreeds!# Hierdie viminfo l�er is gegenereer deur Vim %s.
# Waarde van 'encoding' toe hierdie l�er gestoor is
# Jy mag dit wysig as jy versigtig is!

%-5s: %-30s: (Gebruik: %s)%3d  %s %s  re�l %ld%<%f%h%m%=Bladsy %N%d buffers geskrap%d buffers uitgelaai%d buffers geskrap%d l�ers om te bewerk
Nog %d l�ers om te bewerk.  Stop in elk geval?%d van %d l�ers bewerk%ld Kolomme; %ld veranderinge%ld karakters%ld minder re�ls%ld re�ls ge-%s %d keer%ld re�ls 1 keer ge-%s%ld re�ls --%d%%--%ld re�ls verander%ld re�ls filtreer%ld re�ls ingekeep %ld re�ls geskuif%ld re�ls om in te keep...%ld re�ls gepluk%ld re�ls, %ld meer re�ls%ld vervangings%s outobevele vir "%s"%s gekanselleer%s weg gegooi%s is afwagtend gemaak%s teruggekeer%s lewer "%s" op%s lewer #%ld op%s, re�l %ld%sviminfo: %s in re�l: Wys verskille ('&diff') met Vim&OK
&Kanselleer&OK
&Laai L�er&Ok&Maak as lees-alleen oop
&Bewerk in elk geval
&Herwin
&Verlaat
&Stop&Maak as lees-alleen oop
&Bewerk in elk geval
&Herwin
&Verlaat
&Stop
S&krap dit&Ja
&Nee&Ja
&Nee
&Kanselleer&Ja
&Nee
Stoor &alles
&Gooi alles weg
&Kanselleer' onbekend. Beskikbare ingeboude terminale is:'columns' is nie 80 nie, kan nie eksterne bevele uitvoer nie'dictionary' opsie is leeg'history' opsie is nul'readonly' opsie is aan vir "%.*s".
Wil jy dit forseer?'thesaurus' opsie is leeg(%d van %d)%s%s: (+%ld vir 'BOM')(Onderbreek) (Ongeldig)+			Begin by einde van l�er+-%s%3ld re�ls: +--%3ld re�ls gevou +<lnum>		Begin by re�l <lnum>+reverse		Moet nie tru-video gebruik nie (ook: +rv),
of die l�er is beskadig.-               lees teks uit 'stdin'--			Slegs l�ername hierna-- Meer ---- Soekend...--- Ingeslote l�ers--Geskrap----Geen re�ls in buffer----cmd <bevel>	Voer <bevel> uit voor enige .vimrc-l�er gelaai word--columns <aantal>	Aanvanklike wydte van venster in kolomme--literal		Moet nie plekhouers uitbrei nie--noplugin		Moet nie inpropskripte laai nie--remote <l�ers>	Wysig die <l�ers> in a Vim bediener indien moontlik--remote-expr <expr>	Evalueer <expr> in 'n Vim-bediener en druk resultaat--remote-send <sleutels>	Stuur <sleutels> na 'n Vim-bediener en verlaat--remote-silent <l�ers>  Dieselfde, moet nie kla as daar nie so 'n bediener is nie--remote-wait <l�ers> Soos '--remote', maar wag vir l�ers om gewysig te word--remote-wait-silent <l�ers>  Dieselfde, moet nie kla as daar nie so 'n bediener is nie--role <rol>	Stel 'n unieke rol om die hoofvenster te identifiseer--rows <aantal>	Aanvanklike hoogte van venster in rye--serverlist		Lys beskikbare Vim-bediener name en verlaat--servername <naam>	Stuur na/word die Vim-bediener <naam>--socketid <xid>	Maak Vim in 'n ander GTK element oop--version		Skryf weergawe-inligting en sluit-A			begin in Arabiese modus-C			Versoenbaar met Vi: 'compatible'-D			Ontfoutmodus-F			Begin in Farsi modus-H			Begin in Hebreeuse modus-L			Selfde as -r-M			Veranderings aan teks nie toegelaat nie-N			Nie ten volle Vi-versoenbaar nie: 'nocompatible'-O[N]		Soos -o maar verdeel vertikaal-P <ouer title>	Maak Vim oop binne 'n ouer toepassing-R			Leesalleen modus (soos "view")-S <sessie>		Voer bevele in l�er <sessie> uit na eerste l�er gelaai is-T <terminaal>	Stel terminaaltipe na <terminaal>-U <gvimrc>		Gebruik <gvimrc> in plaas van enige .gvimrc-V[N]		Omslagtigheidsgraad-W <skripuit>	Skryf alle getikte bevele na l�er <skripuit>-X			Moet nie verbinding met X-bediener maak nie-Z			Beperkte modus (soos "rvim")-b			Bin�re modus-background <kleur>	Gebruik <kleur> vir die agtergrond (ook: -bg)�boldfont <font>	 Gebruik <font> vir vetletter teks-borderwidth <wydte>	Gebruik 'n grenswydte van <wydte> (ook: -bw)-c <bevel>		Voer <bevel> uit na eerste l�er gelaai is-d			Diff modus (soos "vimdiff")-dev <toestel>		Gebruik <toestel> vir I/O-display <display>	Koppel vim aan hierdie X-bediener-display <display>	Voer vim op <display> uit-display <skerm>	Voer vim op <skerm> uit: (ook --display)-e			Ex modus (soos "ex")-f			Moet nie 'newcli' gebruik om venster oop te maak nie-f  of  --nofork	Voorgrond: Moenie vurk wanneer GUI begin nie-font <font>		Gebruik <font> vir normale teks (ook -fn)-voorgrond <kleur>	Gebruik <kleur> vir normale teks (ook: -fg)-g			Voer uit met die GUI (soos "gvim")-geometry <geom>	Gebruik <geom> vir aanvanklike geometrie-h  of  --help	Skryf Hulp (hierdie boodskap) en sluit-i <viminfo>		Gebruik <viminfo> in plaas van .viminfo-iconic		Begin vim as ikoon-italicfont <font>	Gebruik <font> vir kursiewe teks-l			Lisp modus-m			Veranderings (skryf van l�ers) nie toegelaat nie-menuheight <hoogte>	Gebruik a kieslysstaafhoogte van <hoogte> (ook: -mh)-n			Geen ruill�er, gebruik slegs geheue-name <name>		Gebruik hulpbron asof vim <name> was-o[N]		Maak N vensters oop (verstek: een vir elke l�er)-q [foutl�er]   bewerk l�er met eerste fout-r			Lys ruill�ers en verlaat vim-r (met l�er naam)	Herwin ineengestorte sessie-register		Registreer hierdie gvim vir OLE-reverse		Gebruik tru-video (ook: -rv)-s			Stil (bondel) modus (slegs vir "ex")-s <skripin>		Lees Normale-modus bevele van l�er <skripin>-scrollbarwidth <wydte>	Gebruik 'n rolstaafwydte van <wydte> (ook: -sw>-t tag          bewerk l�er waar etiket gedefinieer is-u <vimrc>		Gebruik <vimrc> in plaas van enige ander .vimrc-unregister		Onregistreer gvim vir OLE-v			Vi modus (soos "vi")-w <skripuit>	Las alle getikte bevele aan by l�er <skripuit>-x			Bewerk ge�nkripteerde l�ers-xrm <hulpbron>	Stel die gespesifiseerde hulpbron-y			Easy modus (soos "evim", modusloos)...(afgekap)1 buffer geskrap1 buffer uitgelaai1 buffer geskrap1 verandering1 karakter1 re�l ge-%s %d keer1 re�l 1 keer ge-%s1 re�l --%d%%--1 re�l verander1 re�l ingekeep 1 re�l minder1 re�l geskuif1 re�l gepluk1 re�l, Nog 1 l�er om te bewerk.  Stop in elk geval?1 re�l meer1 vervanging2de gebruiker gvimrc-l�er: "3de gebruiker gvimrc-l�er: ": Stuur van uitdrukking het gefaal.
: Stuur het gefaal.
: Stuur het gefaal. Probeer om lokaal uit te voer
; treffer <%s>%s%s  %d,  Hex %02x,  Oktaal %03o<buffervoorwerp (geskrap) by %8lX><kan nie oopmaak nie> <venster %d><venster voorwerp (geskrap) by %.8lX><verwyder voorwerp (onbekend) by %.8lX>> %d, Hex %04x, Oktaal %o> %d, Hex %08x, Oktaal %o??? van hier tot ???END mag re�ls deurmekaar wees??? van hier tot ???END mag daar re�ls ingevoeg/geskrap wees???BLOK WEG???LE� BLOK???END???RE�LTELLING FOUTIEF???RE�LS WEG???BAIE RE�LS WEG'ANCHOR_BUF_SIZE' is te kleinVoeg 'n nuwe databasis by'cscope' databasis %s bygevoegAllesAlle 'cscope' databasisse herstelAlle ingeslote l�ers is gevindDaar is alreeds slegs een vensterLas aan by l�erParameter ontbreek naBy re�lProbeer weer om skripl�er oop te maak: "Terug by oorspronklikeTerugwaardse omvang gegee, OK om te ruilWord 'n geregistreerde Vim gebruiker!Voor greep %ldOndInspeksiepunt in "%s%s" re�l %ldKyk klas deurRoep dop om uit te voer: "%s"Kan nie tydelike l�er vir omsetting vind nieKanselleerKan nie aan Netbeans koppel nieKan nie aan Netbeans #2 koppel nieKan nie 'n verbinding met 'SNiFF+' maak nie. Kyk of die omgewing reg is ('sniffemacs' moet in '$PATH' gevind word).
Kan nie skep nie: Kan nie uitvoer nie Kan nie NIL: oopmaak nie
Kan nie oopmaak om te lees nie: "Kan nie oopmaak vir skrip-afvoer nie: "Kan nie gids uitvoer nie: "%s"Kol %s van %s; Re�l %ld van %ld; Woord %ld van %ld; Greep %ld van %ldBevelre�lKompilering: Kompileerder: Omsetting met 'charconvert' het gefaalKan nie geheue toeken vir bevelre�l nieKon nie funksiewysers na die DLL opstel nie!Kon nie 'vim32.dll' laai nie!Cscope etiket: %sHuidige %staal: "%s"Verwyder die .swp-l�er na die tyd.

RigtingGidseWil jy regtig soontoe skryf?AfE100: Geen ander buffer in 'diff' modus nieE101: Meer as twee buffers in 'diff' modus, weet nie watter een om te gebruik nieE102: Kan buffer %s nie vind nieE103: Buffer "%s" is nie in 'diff' modus nieE104: 'Escape' nie toegelaat in digraaf nieE105: :loadkeymap word buite 'n uitvoerl�er gebruikE106: Onbekende veranderlike: "%s"E107: Ontbrekende hakies: %sE108: Geen veranderlike: "%s"E109: Ontbrekende ':' na '?'E10: \ moet gevolg word deur /, ? of &E110: Ontbrekende ')'E111: Ontbrekende ']'E112: Opsienaam ontbreek: %sE113: Onbekende opsie: %sE114: Ontbrekende aanhalingsteken: %sE115: Ontbrekende aanhalingsteken: %sE116: Ongeldige parameters vir funksie %sE117: Onbekende funksie: %sE118: Te veel parameters vir funksie: %sE119: Te min parameters vir funksie: %sE11: Ongeldig in bevelre�l venster: <CR> voer uit, CTRL-C stopE120: <SID> word buite skripkonteks gebruik: %sE121: Ongedefinieerde veranderlike: %sE122: Funksie %s bestaan alreeds, gebruik ! om te vervangE123: Ongedefinieerde funksie: %sE124: Ontbrekende '(': %sE125: Ongeldige parameter: %sE126: Ontbrekende ':endfunction'E127: Kan funksie %s nie herdefinieer nie: Dit is in gebruikE128: Funksienaam moet met 'n hoofletter begin: %sE129: Funksienaam vereisE12: Bevel uit exrc/vimrc nie toegelaat in huidige gids- of etiketsoektog nieE130: Ongedefinieerde funksie: %sE131: Kan funksie %s nie verwyder nie: Dit is in gebruikE132: Funksieroepdiepte is groter as 'maxfuncdepth'E133: ':return' buite funksieE134: Skuif re�ls in hulself inE135: *Filter* Outobevele mag nie die huidige buffer verander nieE136: viminfo: Te veel foute, slaan die res van die l�er oorE137: Viminfo l�er is nie skryfbaar nie: %sE138: Kan nie viminfo l�er %s stoor nie!E139: L�er is gelaai in ander bufferE13: L�er bestaan (gebruik ! om te dwing)E140: Gebruik ! om gedeeltelike buffer te skryfE141: Geen l�ernaam vir buffer %ld nieE142: L�er nie gestoor nie: Stoor is afgeskakel deur die 'write' opsieE143: Outobevele het nuwe buffer %s onverwags geskrapE144: nie-numeriese parameter vir :zE145: Dop bevele nie toegelaat in rvimE146: Patrone kan nie deur letters afgebaken word nieE147: Kan nie :global rekursief doen nie E148: Patroon ontbreek uit globaalE149: Jammer, geen hulp vir %s nieE14: Ongeldige adresE150: Nie 'n gids nie: %sE152: Kan nie %s oopmaak om te skryf nieE153: Kan nie %s oop maak om te lees nieE154: Duplikaat etiket "%s" in l�er %s/%sE155: Onbekende opsie: %sE156: Ontbrekende tekennaamE157: Ongeldige teken ID: %ldE158: Ongeldige buffernaam: %sE159: Ontbrekende tekennommerE15: Ongeldige uitdrukking: %sE160: Onbekende funksie: %sE161: Inspeksiepunt kon nie gevind word nie: %sE162: Buffer "%s" is nie geskryf sedert vorige wysiging nieE163: Daar is net een l�er om te bewerkE164: Kan nie v��r die eerste l�er gaan nieE165: Kan nie verby die laaste l�er gaan nieE166: Kan l�er nie oopmaak vir skryf nieE167: ':scriptencoding' buite 'n uitvoerl�er gebruikE168: ':finish' buite 'n uitvoerl�er gebruikE169: Bevel te rekursiefE16: Ongeldige omvangE170: Ontbrekende ':endwhile'E171: Ontbrekende ':endif'E172: Slegs een l�ernaam toegelaatE173: Nog %ld l�ers om te bewerkE173: Nog 1 l�er om te bewerkE174: Bevel bestaan alreeds: gebruik ! om te herdefinieerE175: Geen eienskappe gespesifiseer nieE176: Ongeldige aantal parametersE177: Telling kan nie twee keer gespesifiseer word nieE178: Ongeldige verstekwaarde vir tellingE179: parameter nodig vir voltooiingE17: "%s" is 'n gidsE180: Ongeldige voltooiingswaarde: %sE181: Ongeldige eienskap: %sE182: Ongeldige bevelnaamE183: Gebruiker-gedefinieerde bevele moet met 'n hoofletter beginE184: Geen gebruiker-gedefinieerde bevel nie: %sE185: Kan nie kleurskema %s vind nieE186: Geen vorige gids nieE187: OnbekendE188: Verkryging van vensterposisie is nie vir hierdie platform ge�mplementeer nieE189: "%s" bestaan (gebruik ! om te dwing)E18: Onverwagte karakters voor '='E190: Kan "%s" nie oopmaak vir skryf nieE191: Parameter moet 'n letter of 'n terug/vorentoe aanhalingsteken weesE192: Rekursiewe gebruik van ':normal' te diepE193: ':endfunction' nie in 'n funksie nieE194: Geen alternatiewe l�ernaam vir '#' nieE195: Kan 'viminfo' l�er nie oopmaak om te lees nieE196: Geen digrawe in hierdie weergawe nieE197: Kan nie taal na "%s" verander nieE198: 'cmd_pchar' verby die einde van opdraglengteE199: Aktiewe venster of buffer geskrapE19: Merker het ongeldige re�lnommerE200: '*ReadPre' outobevele het die l�er onleesbaar gemaakE201: '*ReadPre' outobevele mag nie die huidige buffer verander nieE202: Omsetting het l�er onleesbaar gemaak!E203: Outobevele het die skryfbuffer geskrap of uitgelaaiE204: Outobevel het etlike re�ls op onverwagse wyse verander E205: patchmode: kan oorspronklike l�er nie stoor nieE206: patchmode: kan le� oorsprongl�er nie 'touch' nieE207: Kan rugsteunl�er nie verwyder nieE208: Kan nie skryf na "%s"E209: Kan "%s" nie sluit nieE20: Merker nie gestel nieE210: Kan "%s" nie lees nieE211: Waarskuwing: L�er "%s" is nie meer beskikbaar nieE212: Kan l�er nie oopmaak vir skryf nieE213: Kan nie omsit nie (gebruik ! om te skryf sonder omsetting)E214: Kan nie tydelike l�er vind vir skryf nieE215: Ongeldige karakter na *: %sE216: Geen sodanige gebeurtenis nie: %sE216: Geen sodanige groep of gebeurtenis nie: %sE217: Kan nie outobevele uitvoer vir 'ALL' gebeurtenisse nieE218: outobevele te diep genesE219: Ontbrekende {.E21: Kan nie wysig nie, 'modifiable' is afE220: Ontbrekende }.E222: Voeg by leesbufferE223: rekursiewe bindingE224: globale afkorting bestaan alreeds vir %sE225: globale binding bestaan alreeds vir %sE226: afkorting bestaan already vir %sE227: binding bestaan alreeds vir %sE228: makemap: Ongeldige modusE229: Kan nie die GUI begin nieE22: Skripte te diep ge-nesE230: Kan nie lees uit "%s" nieE231: 'guifontwide' ongeldigE232: Kan nie BalloonEval skep met beide boodskap en terugroep nieE233: kan nie vertoonskerm oopmaak nieE234: Onbekende fontstel: %sE235: Onbekende font: %sE236: Font "%s" is nie 'n vaste-wydte font nieE237: Drukker-seleksie het gefaalE238: Drukfout: %sE239: Ongeldige tekenteks: %sE23: Geen alternatiewe l�er nieE240: Geen verbinding met Vim bedienerE241: Kan nie na %s stuur nieE243: Parameter nie bekend: "-%s"; Gebruik die OLE weergawe.E244: Ongeldige karakterstelnaam "%s" in fontnaam "%s"E245: Ongeldige karakter '%c' in fontnaam "%s"E246: 'FileChangedShell' outobevel het buffer verwyderE247: geen geregistreerde bediener genaamd "%s"E248: Het gefaal om bevel na doel program te stuurE24: Afkorting bestaan nieE250: Fonte vir die volgende karakterstelle ontbreek in fontversameling %s:E251: VIM instansie register-kenmerk is swak gevorm. Geskrap!E252: Fontstel naam: %sE253: Fonstel naam: %s
E254: Kan nie kleur %s toeken nieE255: Fout -- kon nie tekendata lees nie!E256: Hangul outomatiserings FOUTE257: 'cstag': etiket nie gevind nieE258: Kan nie na kli�nt stuur nieE259: geen treffers gevind vir 'cscope' versoek %s van %s nieE25: GUI kan nie gebruik word nie: Nie tydens kompilering gekies nieE261: 'cscope' verbinding %s nie gevind nieE262: 'cscope' verbinding %ld kon nie gelees word nieE263: Jammer, hierdie bevel is afgeskakel, die Python biblioteek l�er kon nie gelaai word nie.E264: Python: Kon nie I/O objekte inwy nieE266: Jammer, hierdie bevel is afgeskakel, die Ruby biblioteekl�er kon nie gelaai word nie.E26: Hebreeus kan nie gebruik word nie: Nie tydens kompilering gekies nie
E273: Onbekende 'longjmp' status %dE274: Sniff: Fout gedurende lees. Verbinding gebreekE275: Onbekende SNiFF+ versoek: %sE276: Fout in konnekteer met SNiFF+E277: Kon bediener-terugvoer nie lees nieE278: SNiFF+ is nie gekonnekteer nieE279: Nie 'n SNiFF+ buffer nieE27: Farsi kan nie gebruik word nie: Nie tydens kompilering gekies nie
E280: TCL FATALE FOUT: verwlys korrup!? Rapporteer dit asb. aan <vim-dev@vim.org>E281: TCL FOUT: verlaatkode is nie 'n 'int'!? Rapporteer dit asb. aan <vim-dev@vim.org>E282: Kan nie lees uit "%s" nieE283: Geen merkers pas op "%s" nieE284: Kan nie IC waardes stel nieE285: Gefaal met die skep van invoerkonteksE286: Gefaal om invoermetode oop te maakE287: Waarskuwing: Kon nie uitwis-terugroep na IM stel nieE288: invoermetode ondersteun geen styl nieE289: invoermetode ondersteun nie my voor-bewerking tipe nieE28: Geen sodanige uitliggroepnaam nie: %sE290: oor-die-plek styl vereis fontstelE291: Jou GTK+ is ouer as 1.2.3. Statusarea afgeskakelE292: Invoermetodebediener voer nie uit nieE293: blok was nie gesluit nieE294: Soekfout in lees van ruill�erE295: Leesfout in ruill�erE296: Soekfout in skryf van ruill�erE297: Skryffout in ruill�erE298: Het nie blok no 0 gekry nie?E298: Het nie blok no 1 gekry nie?E298: Het nie blok no 2 gekry nie?E299: Perl evaluasie verbied in die sandput sonder die 'Safe' moduleE29: Nog geen ingevoegde teks nieE300: Ruill�er bestaan alreeds! ('symlink' probleem?)E301: Hiert, die ruill�er is weg!!!E302: Kon nie ruill�er vernoem nieE303: Kon nie ruill�er oopmaak vir "%s" nie, herwinning onmoontlikE304: 'ml_timestamp': Het nie blok 0 gekry nie??E305: Geen ruill�er gevind vir %s nieE306: Kan %s nie oopmaak nieE307: %s lyk nie soos 'n Vim ruill�er nieE308: Waarskuwing: Oorspronklike l�er is dalk gewysigE309: Kan nie block 1 lees van %sE30: Geen vorige bevelre�l nieE310: Blok 1 se ID is foutief (%s nie 'n .swp l�er nie?)E311: Herwinning onderbreekE312: Foute raakgesien gedurende herwinning; soek vir re�ls wat begin met ???E313: Kan nie bewaar nie, daar is geen ruill�er nieE314: Kon nie bewaar nieE315: 'ml_get': ongeldige 'lnum': %ldE316: 'ml_get': kan re�l %ld nie vind nieE317: wyser blok id verkeerdE317: wyser blok id verkeerd 2E317: wyser blok id verkeerd 3E317: wyser blok id verkeerd 4E318: Te veel blokke opgedateer?E319: Jammer, die bevel is nie ge�mplementeer nieE31: Geen so 'n binding nieE320: Kan nie re�l %ld vind nieE321: Kon nie "%s" herlaai nieE322: re�lnommer buite perke: %ld verby die eindeE323: re�ltelling mag verkeerd wees in blok %ldE324: Kan nie 'PostScript' afvoerl�er oopmaak nieE325: LET OPE326: Te veel ruill�ers gevindE327: Deel van kieslys-item pad is nie 'n sub-kieslys nieE328: Kieslys bestaan slegs in 'n ander modusE329: Geen kieslys met daardie naam nieE32: Geen l�ernaamE330: Kieslyspad moenie lei na 'n sub-kieslys nieE331: Moenie kieslysitems direk by kieslysstaaf voeg nieE332: Verdeler kan nie deel wees van kieslyspad nieE333: Kieslyspad moet lei na 'n kieslysitemE334: Kieslys nie gevind nie: %sE335: Kieslys nie gedefinieer vir %s modus nieE336: Kieslyspad moet lei na 'n sub-kieslysE337: Kieslys nie gevind nie - maak seker oor die kieslys nameE338: Jammer, l�erblaaier nie beskikbaar in konsole-modus nieE339: Patroon te lankE33: Geen vorige vervangingspatroon nieE340: R�el word te lankE341: Interne fout: 'lalloc(%ld, )'E342: Geheue is op! (ken %lu grepe toe)E343: Ongeldige pad: '**[nommer]' moet aan die einde van 'n pad wees of gevolg wees deur %s'.E344: Kan nie gids "%s" in 'cdpath' vind nieE345: Kan l�er "%s" nie vind in pad nieE346: Geen gids "%s" meer gevind in 'cdpath' nieE347: Geen l�er "%s" meer gevind in pad nieE348: Geen string onder loper nieE349: Geen identifiseerder onder loper nieE34: Geen vorige bevel nieE350: Kan nie vou skep met huidige 'foldmethod' nieE351: Kan nie vou skrap met huidige 'foldmethod' nieE352: Kan nie voue verwyder met huidige 'foldmethod' nieE353: Niks in register %s nieE354: Ongeldige registernaam: '%s'E355: Onbekende opsie: %sE356: 'get_varp' FOUTE357: 'langmap': Passende karakter ontbreek vir %sE358: 'langmap: Ekstra karakters na kommapunt: %sE359: Skermmodus instelling nie ondersteun nieE35: Geen vorige patroon nieE360: Kan nie dop met -f opsie uitvoer nieE361: Ineenstorting onderskep. Patroon te kompleks?E363: patroon het l�e-stapel fout veroorsaakE364: Biblioteekroep het gefaal vir "%s"()E365: Kon nie 'PostScript' l�er druk nieE367: Geen sodanige groep nie: "%s"E369: ongeldige item in %s%%[]E36: Te min plekE370: Kon nie biblioteek laai nie %sE371: Bevel nie gevind nieE372: Te veel %%%c in formaatstringE373: Onverwagte %%%c in formaatstringE374: Ontbrekende ] in formaatstringE375: Ongesteunde %%%c in formaatstringE376: Ongeldige %%%c in formaatstringvoorvoegselE377: Ongeldige %%%c in formaatstringE378: 'errorformat' bevat geen patroon nieE379: Ontbrekende of le� gidsnaamE37: Ongeskryf sedert vorige verandering (gebruik ! om te dwing)E380: Onder aan 'quickfix' stapelE381: Bo aan 'quickfix' stapelE382: Kan nie skryf nie, 'buftype' opsie is aanE383: Ongeldige soekstring: %sE384: soektog het BO getref sonder treffer vir: %sE385: soektog het ONDER getref sonder treffer vir: %sE386: Verwag '?' of '/' na ';'E387: Treffer is op huidige re�lE388: Kon definisie nie vind nieE389: Kon patroon nie vind nieE38: Nul parameterE390: Ongeldige parameter: %sE391: Geen sodanige sintakskluster nie: %sE392: Geen sodanige sintakskluster nie: %sE393: 'group[t]here' nie hier aanvaar nieE394: Kon nie omgewingsitem vind vir %s nieE395: bevat parameters nie hier aanvaar nieE396: 'containedin' parameter nie hier aanvaar nieE397: L�ernaam benodigE398: Ontbrekende '=': %sE399: Nie genoeg parameters nie: sintaksomgewing %sE39: Nommer verwagE400: Geen kluster gespesifiseer nieE401: Patroonbegrenser nie gevind nie: %sE402: Gemors na patroon: %sE403: sintaks sync: re�lvoortgaanpatroon twee keer gespesifiseerE404: Ongeldige parameters: %sE405: Ontbrekende gelykaanteken: %sE406: Le� parameter: %sE407: %s nie toegelaat hier nieE408: %s moet v��r in 'contains' lys weesE409: Onbekende groepnaam: %sE40: Kan nie foutl�er %s oopmaak nieE410: Ongeldige :syntax subbevel %sE411: uitliggroep nie gevind nie: %sE412: Te min parameters: ":highlight link %s"E413: Te veel parameters: ":highlight link %s"E414: groep het instellings, uitligskakel ('highlight link') ge�gnoreerE415: onverwagte gelykaanteken: %sE416: ontbrekende gelykaanteken: %sE417: ontbrekende parameter: %sE418: Ongeldige waarde: %sE419: FG kleur onbekendE41: Geheue op!E420: BG kleur onbekendE421: Kleurnaam of -nommer nie herken nie: %sE422: terminaalkode te lank: %sE423: Ongeldige parameter: %sE424: Te veel verskillende uitlig-eienskappe in gebruikE425: Kan nie v��r eerste etiket-treffer gaan nieE426: etiket nie gevind nie: %sE427: Daar is slegs een etiket-trefferE428: Kan nie verby laaste etiket-treffer gaan nieE429: L�er "%s" bestaan nieE42: Geen FouteE430: Etiketl�ergids afgekap vir %s
E431: Formaatfout in etiketl�er "%s"E432: Etiketl�er ongesorteer: %sE433: Geen etiketl�er nieE434: Kan nie etiketpatroon vind nieE435: Kon nie etiket vind nie, ek raai maar!E436: Geen "%s" inskrywing in termcap nieE437: terminaalvermo� "cm" vereisE438: u_undo: re�lnommers foutiefE439: herstellys korrupE43: Beskadige trefferstringE440: herstelre�l ontbreekE441: Daar is nie 'n voorskou-venster nieE442: Kan nie bo-links en onder-regs terselfdertyd verdeel nieE443: Kan nie roteer terwyl 'n ander venster verdeel is nieE444: Kan nie laaste venster toemaak nieE445: Die ander venster bevat veranderingeE446: Geen l�ernaam onder loperE447: Kan l�er "%s" nie vind in pad nieE448: Kon nie biblioteek funksie laai nie %sE449: Ongeldige uitdrukking ontvangE44: Korrupte patroonprogramE455: Kan nie na 'PostScript' afvoerl�er skryf nieE456: Kan nie 'PostScript' hulpbron-l�er "%s" vind nieE456: Kan nie 'PostScript' hulpbron-l�er "prolog.ps" lees nieE456: Kan nie l�er %s oopmaak nieE457: Kan nie 'PostScript' hulpbron-l�er "%s" lees nieE459: Kan nie terug gaan na die vorige gids nieE45: 'readonly' opsie is aan (gebruik ! om te dwing)E460: Die hulpbronvurk sal verlore gaan (gebruik ! om te dwing)E461: Ongeldige veranderlikenaam: %sE462: Kon nie voorberei vir herlaai nie "%s"E463: Omgewing is onder bewaking, kan nie verander nieE464: Dubbelsinnige gebruik van gebruiker-gedefinieerde bevelE465: ':winsize' benodig twee nommer parametersE466: :winpos benodig twee parametersE467: Eie voltooiing benodig 'n funksie parameterE468: Voltooiingsargument words slegs toegelaat vir eie voltooiingE469: ongeldige 'cscopequickfix' vlag %c vir %cE46: Kan nie lees-alleen veranderlike stel nie "%s"E470: Bevel gekanselleerE471: Parameter benodigE472: Bevel het gefaalE473: Interne foutE474: Ongeldige parameterE475: Ongeldige parameter: %sE476: Ongeldige bevelE477: Geen ! toegelaat nieE478: Bly kalm!E479: Geen treffer nieE47: Fout tydens lees van 'errorfile'E480: Geen treffer: %sE481: Geen omvang toegelaat nieE482: Kan nie l�er %s skep nieE483: Kan nie tydelike l�ernaam kry nieE484: Kan nie l�er %s oopmaak nieE485: Kan nie l�er %s lees nieE486: Patroon nie gevind nie: %sE487: Parameter moet positief weesE488: Oorbodige karaktersE48: Nie toegelaat in sandput nieE490: Geen vou gevind nieE492: Nie 'n verwerkerbevel nieE493: Terugwaardse omvang gegeeE494: Gebruik w of w>>E495: geen outobevel-l�ernaam om "<afile>" mee te vervang nieE496: geen outobevel buffernommer om "<abuf>" mee te vervang nieE497: geen outobevel treffernaam om "<amatch>" mee te vervang nieE498: geen ':source' l�ernaam om "<sfile>" mee te vervang nieE499: Le� l�ernaam vir '%' of '#', werk slegs met ":p:h"E49: Ongeldige rolgrootteE500: Evalueer na 'n le� stringE501: By l�ereindeE506: Kan nie na rugsteunl�er skryf nie (gebruik ! om te dwing)E507: Sluitfout vir rugsteunl�er (gebruik ! om te dwing)E508: Kan rugsteunl�er nie lees nie (gebruik ! om te dwing)E509: Kan rugsteunl�er nie skep nie (gebruik ! om te dwing)E50: Te veel \z(E510: Kan rugsteunl�er nie skep nie (gebruik ! om te dwing)E512: Sluiting gefaalE513: skryffout, omsetting gefaalE514: skryffout (l�erstelsel vol?)E515: Geen buffers is uitgelaai nieE516: Geen buffers is geskrap nieE517: Geen buffers is geskrap nieE518: Onbekende opsieE519: Opsie is nie ondersteun nieE51: Te veel %s(E520: Nie toegelaat in 'n moduslyn nieE521: Nommer vereis na =E522: Nie gevind in 'termcap' nieE523: Nie hier toegelaat nieE524: Ontbrekende dubbelpuntE525: Nul-lengte stringE526: Ontbrekende nommer na <%s>E527: Ontbrekende kommaE528: Moet 'n ' waarde spesifiseerE529: Kan nie 'term' stel na le� string nieE52: Onpaar \z(E530: Kan nie 'term' verander in GUI nieE531: Gebruik ":gui" om die GUI te beginE533: kan nie wye font kies nieE534: Ongeldige wye fontE535: Ongeldige karakter na <%c>E536: komma benodigE537: 'commentstring' moet leeg wees of %s bevatE538: Geen muisondersteuning nieE539: Ongeldige karakter <%s>E53: Onpaar %s%%(E540: Onvoltooide uitdrukkingreeksE541: te veel itemsE542: ongebalanseerde groepeE543: Nie 'n geldige kodeblad nieE544: Sleutelbindingl�er nie gevind nieE545: Ontbrekende dubbelpuntE546: Ongeldige modusE547: Ongeldige muisvormE548: syfer verwagE549: Ongeldige persentasieE54: Onpaar %s(E550: Ontbrekende dubbelpuntE551: Ongeldige komponentE552: syfer verwagE553: Geen items meer nieE554: Sintaksfout in %s{...}E555: onderaan etiketstapelE556: bo-aan etiketstapelE557: Kan nie 'termcap'-l�er oopmaak nieE558: Terminaalinskrywing nie in 'terminfo' gevind nieE559: Terminaalinskrywing nie in 'termcap' gevind nieE55: Onpaar %s)E560: Gebruik: cs[cope] %sE561: onbekende 'cscope' soektipeE562: Gebruik: 'cstag <ident>'E563: 'stat' foutE563: 'stat(%s)' fout: %dE564: %s is nie 'n gids of 'n geldige 'cscope' databasis nieE566: Kon nie 'cscope' pype skep nieE567: geen 'cscope' verbindings nieE568: duplikaat 'cscope' databasis nie bygevoeg nieE569: maksimum aantal 'cscope' verbindings bereikE56: %s* operand mag leeg weesE570: fatale fout in 'cs_manage_matches'E571: Jammer, hierdie bevel is afgeskakel, die Tcl biblioteek kon nie gelaai word nie.E573: Ongeldige bediener-id gebruik: %sE574: Onbekende registertipe %dE579: geneste ':if' te diepE57: %s+ operand mag leeg weesE580: ':endif' sonder ':if'E581: ':else' sonder ':if'E582: ':elseif' sonder ':if'E583: meer as een ':else'E584: ':elseif' na ':else'E585: ':while' te diep genesE586: ':continue' sonder ':while'E587: ':break' sonder ':while'E588: ':endwhile' sonder ':while'E589: 'backupext' en 'patchmode' is dieselfdeE58: %s{ operand mag leeg weesE590: Daar bestaan reeds 'n voorskouvensterE591: 'winheight' kan nie kleiner as 'winminheight' wees nieE592: 'winwidth' kan nie kleiner as 'winminwidth' wees nieE593: Benodig ten minste %d re�lsE594: Benodig ten minste %d kolommeE595: bevat 'n ondrukbare of wye karakterE596: Ongeldige font(e)E597: kan nie fontstel kies nieE598: Ongeldige fontstelE599: Waarde van 'imactivatekey' is ongeldigE59: ongeldige karakter na %s@E600: Ontbrekende ':endtry'E601: geneste ':try' te diepE602: ':endtry' sonder ':try'E603: ':catch' sonder ':try'E604: ':catch' na ':finally'E605: Uitsondering nie gevang nie: %sE606: ':finally' sonder ':try'E607: meer as een ':finally'E608: Kan nie uitsonderings ':throw' met 'Vim' voorvoegsel nieE609: Cscope fout: %sE60: Te veel komplekse %s{...}iesE612: Te veel tekens gedefinieerE613: Onbekende drukker font: %sE614: 'vim_SelFile': Kan nie terugkeer na huidige gids nieE615: vim_SelFile: Kan nie huidige gids verkry nieE616: 'vim_SelFile': kan font %s nie kry nieE617: Kan nie 'term' verander in die GTK+ 2 GUI nieE618: L�er "%s" is nie 'n 'PostScript' hulpbron-l�er nieE619: L�er "%s" is nie 'n ondersteunde 'PostScript' hulpbron-l�er nieE61: Geneste %s*E620: Kon nie van wye-greep na "%s" enkodering verander nieE621: "%s" die hulpbron l�er het die verkeerde weergaweE622: Kon nie vurk vir 'cscope' nieE623: Kon nie 'cscope' proses skep nieE624: Kan nie l�er "%s" oopmaak nieE625: Kon nie 'cscope' databasis oopmaak nie: %sE626: kan nie 'cscope' databasisinligting kry nieE62: Geneste %s%cE63: ongeldige gebruik van \_E64: %s%c volg niksE655: Te veel simboliese skakels (siklus?)E658: NetBeans konneksie vir buffer %ld verloorE659: Kan nie Python rekursief roep nieE65: Ongeldige tru-verwysingE661: Jammer, geen '%s' hulp vir %s nieE662: By die begin van die veranderingslysE663: By die einde van die veranderingslysE664: 'changelist' is leegE665: Kan nie GUI begin nie, geen geldige font gevind nieE666: vertaler word nie ondersteun nie: %sE667: 'Fsync' het gefaalE668: Verkeerde toegangsmodue vir NetBeans konneksie inligtingsl�er: "%s"E669: Onvertoonbare karakter in groepnaamE66: \z( nie hier toegelaat nieE670: 'n Mengsel van hulpl�er enkoderings in 'n taal: %sE671: Kan nie venster titel vind nie "%s"E672: Kon nie venster oopmaak binne 'n MDI toepassing nieE679: rekursiewe lus gedurende laai van syncolor.vimE67: \z1 e.a. nie hier toegelaat nieE68: ongeldige karakter na \zE69: Ontbrekende ] na %s%%[E70: Le� %s%%[]E71: Ongeldige karakter na %s%%E72: Sluitfout met ruill�erE73: etiketstapel leegE74: Bevel te kompleksE75: Naam te lankE76: Te veel [E77: Te veel l�ernameE78: Onbekende merkerE79: Kan nie plekhouers uitbrei nieE800: Arabies kan nie gebruik word nie: Nie tydens kompilering gekies nie
E80: Fout tydens skryfoperasieE81: Gebruik van '<SID>' buite skripkonteksE82: Kan nie buffer toeken nie, program sluit...E83: Kan nie buffer toeken nie, gaan ander een gebruik...E84: Geen veranderde buffer gevind nieE85: Daar is geen gelyste buffer nieE86: Buffer %ld bestaan nieE87: Kan nie verby laaste buffer gaan nieE88: Kan nie v��r eerste buffer gaan nieE89: Buffer %ld nog ongestoor sedert vorige wysiging (gebruik ! om te dwing)E90: Kan nie laaste buffer uitlaai nieE91: 'shell' (dop) opsie is leegE92: buffer %ld kon nie gevind word nieE93: Meer as een treffer vir %sE94: Geen buffer wat by %s pas nieE95: Buffer met hierdie naam bestaan alreedsE96: Kan nie meer as %ld buffers 'diff' nieE97: Kan nie 'diffs' skep nie E98: Kan nie 'diff' afvoer lees nieE99: Huidige buffer is nie in 'diff' modus nieFOUT: Verander l�erBewerk l�er in nuwe vensterWysig met &VimWysig met &meer as een VimWysig met bestaande Vim - &Wysig met 'n enkel &VimWysig die gekose l�er(s) met VimEinde van funksie Einde van uitvoerl�erVoer enkripsie-sleutel in: Sleutel nommer van keuse in (<CR> om te stop): Tik die nommer van die ruill�er om te gebruik (0 om te stop)Voer die sleutel weer in: Ontfoutmodus begin nou.  Tik "cont" om te verlaat.Betree Ex modus.  Tik "visual" om na Normale modus terug te keer.FoutFout en onderbrekingFOut met die skep van proses: Kyk of gvim in jou pad is!Fout ontdek tydens verwerking van %s: UitsonderingUitsondering gevang: %sUitsondering weg gegooi: %sUitsondering het klaar gemaak: %sUitsondering gegooi: %sVoer %s uitUitdrukkingEksterne subtreffers:
L�er "%s" bestaan nieL�er bewaarL�ersFilterVind & vervang string (gebruik '\\' om 'n '\' te vindVind volgendeVind string (gebruik '\\' om 'n '\' te vindVind simboolSoek na:Font '%s' is nie 'n vaste-wydte font nieFontkeuseFont%ld wydte is nie twee keer d�e van font0 nie
Font0 wydte: %ld
Font0: %s
Font1 wydte: %ld

Font1: %s
Gemors na opsieGenereer 'docu' virGoeiedag, Vim gebruiker!HulpHelp arm kinders in Uganda!Druk ENTER of tik 'n bevel om voort te gaanDruk ENTER om voort te gaanHet einde van paragraaf getrefI/O FOUTOngeldige l�ernaamOngeldige registernaamOngeldige beginkarakterInvoer LynInvoer _MetodesOnderbreekOnderbreek: OnderbreekOngeldige parameter virSleutels verskil!Sluit 'n verbindingKoppeling: Tref kasTref slegs presiese woordBoodskappe onderhouers: Danie Roux en Jean Jordaan <droux@tuks.co.za>Ontbrekende '>'Gewysig deur Benodig %s weergawe %ld
Benodig Amigados weergawe 2.04 of later
NetBeans laat nie skryf toe van onveranderde buffers nieGeen Sintaks-items gedefinieer vir hierdie buffer nieGeen afkorting gevind nieGeen inspeksiepunte gedefinieer nieGeen vertoonskermGeen vertoonskerm: Stuur van uitdrukking het gefaal.
Geen ingeslote l�ers nieGeen binding gevind nieGeen merkers gestel nieGeen passende outobevele nieGeen ruill�erGeen teks om te druk nieGeen herstel moontlik; gaan in elk geval voortGeen gebruiker-gedefinieerde bevele gevind nieOKMaak l�er oop dialooghokkieOopmaak van die X vertoonskerm het gefaalOopmaak van die X-vertoonskerm het uitgetelOm die X-vertoonskerm oop te maak het %ld msek gevatOorspronklike l�er "%s"Oorskryf bestaande l�er "%.*s"?Bladsy %dGedeeltelike skryf word nie toegelaat vir NetBeans buffers nieLaslap l�erPad-lengte te lankGidsnaam:Patroon gevind in elke re�l: %sPatroon nie gevind nieDruktaak gestuur.Gedruk: %sDruk nou '%s'Drukkery gestaakDruk nou bladsy %d (%d%%)Soek vir 'n patroonVraagLees nou vanaf stdin... Besig om viminfo l�er "%s"%s%s%s te leesHerwinning is klaar. Kyk of alles reg is.Herstel alle verbindingsVervangVervang allesVervang met:Gaan haalGaan haal uit alle projekteGaan haal uit l�erGaan haal uit projekVoer tans uit in Vi-versoenbare modusVoer modus-loos uit, getikte teks word ingevoegSNiFF+ is tansStoor AsStoor L�er dialooghokkieStoor HerversturingStoor SessieStoor konfigurasieStoor OorsigStoor veranderinge na "%.*s"?Deursoek woordeboek: %sDeursoek ingeslote l�er: %sDeursoek etikette.Soek vir: %sRolstaafelement: Kon nie pikselmatriks-duimnael se geometrie kry nieSoekstringBesig om te soek vir "%s"Besig om te soek vir "%s" in "%s"Deursoek etiketl�er %sSien ":help E312" vir meer inligting.Sien ":help W11" vir meer inligting.%s%ld van %ld re�ls gekies; %ld van %ld Woorde; %ld van %ld GrepeSeleksieBesig om te stuur na drukker...Wys basisklas vanWys klas in hi�rargieWys klas in beperkte hi�rargieWys verbindingsWys 'docu' vanWys vervangde lidfunksieWys kode vanWys hierdie boodskapTekens vir %s:Sniff: Fout gedurende stoor. Verbinding gebreekJammer, hulpl�er "%s" kan nie gevind word nieJammer, hierdie bevel is afgeskakel: die Perl biblioteek kon nie gelaai word nie.Voer Vim skrip uitBorg Vim ontwikkeling!Stapel grootte verhoogRuill�er "Ruill�er bestaan alreeds!Ruill�ers gevind:Skeur die kieslys afToetsing van die X-vertoonskerm het gefaalDankie dat jy vlieg met VimDie l�er is geskep op Die enigste trefferHierdie Vim is nie gekompileer met 'diff' funksionaliteit nie.Hierdie 'cscope' bevel ondersteun nie die splitsing van die venster nie.
Stel en herstel implimentasie/definisieTe veel "+command", "-c command" of "--cmd command" parametersTe veel redigeer-parametersBoTik   :quit<Enter>  om Vim te verlaatKan nie blok 0 lees vanaf Kon nie bevelbediener naam registreer nieHerroepOnbekendOnbekende opsieOngetiteldOpGebruik Vim weergawe 3.0.
'CUT_BUFFER0' is gebruik in plaas van le� seleksieGebruik ruill�er "%s"VIM - LET OPVIM - Soek en Vervang...VIM - Soek...VIM - Vi Met skopVIM FoutVIM: Kan nie venster oopmaak nie!
'VIMRUN.EXE' nie gevind in '$PATH' nie.
Eksterne opdragte sal nie wag na voltooiing nie
Sien ':help win32-vimrun' vir meer inligting.Vim E458: Kan nie kleurkaart-inskrywing toeken nie, sommige kleure mag verkeerd weesVim WaarskuwingVim dialooghokkieVim dialooghokkie...Vim stop met %d
Vim is vryekode, en vrylik verspreibaarVim: Het %s gebeurtenis gevang
Vim: Het dodelike sein gevang
Vim: Het dodelike sein %s gevang
Vim: Dubbel sein, staak
Vim: Fout met lees van invoer, verlaat...
Vim: Klaar.
Vim: Hoofvenster onverwags verwoes
Vim: Lees nou vanaf 'stdin'...
Vim: Het die "die" opdrag ontvang van sessiebestuurder
Vim: Waarskuwing: Invoer kom nie vanaf 'n terminaal nie
Vim: Waarskuwing: Afvoer gaan nie na 'n terminaal nie
Vim: bewaar l�ers...
W10: Waarskuwing: Jy wysig aan 'n leesalleen l�erW11: Waarskuwing: L�er "%s" het verander sedert bewerking begin hetW12: Waarskuwing: L�er "%s" het verander sedert bewerking begin het en die buffer in Vim het ook veranderW13: Waarskuwing: L�er "%s" is geskep sedert bewerking begin hetW14: Waarskuwing: L�erlys loop oorW15: Waarskuwing: Verkeerde re�lskeiding, ^M ontbreek dalkW16: Waarskuwing: Modus van l�er "%s" het verander sedert bewerking begin hetW17: Arabies benodig UTF-8, doen ':set encoding=utf-8'W18: Ongeldige karakter groepnaamWAARSKUWING: Die l�er het verander sedert dit gelees is!!!WAARSKUWING: Windows 95/98/ME bespeurWaarskuwingWaarskuwing: Ander buffer onverwags betree (kyk na outobevele)Waarskuwing: terminaal kan nie teks uitlig nieTydens oopmaak van l�er "Vensterposisie: X %d, Y %dWoord van ander re�lSkryf gedeeltelike l�er?Besig om viminfo l�er "%s" te stoorXSMP ICE konneksie beloer het gefaalXSMP 'SmcOpenConnection' het gefaal: %sXSMP hanteer 'save-yourself' versoekXSMP het ICE konneksie verloorXSMP maak nou konneksie oopXref het 'nXref verwys deurXref verwys naXref gebruik deurJANul telling[OMSETTINGSFOUT][CR ontbreek][Geskrap][Toestel][Foutlys][ONWETTIGE GREEP in re�l %ld][Onvoltooide laaste re�l][NL gevind][NIE omgesit nie][Nuwe l�er][Nuwe l�er][Nuut][Geen l�er][Geen l�er][Ongestoor sedert vorige verandering]
[Ongewysig][Toestemming Geweier][Voorskou][LEESFOUTE][RO][Leesfoute][roepe] totaal re/malloc()'s %lu, totale free()'s %lu

[omgesit][gekodeer][dos formaat][dos][fifo/socket][fifo][l�er ..]       bewerk l�er(s)[help][lang re�ls verdeel][mac formaat][mac][noeol][lees alleen][socket][string te lank][unix formaat][unix]en dit "diff" teen die oorspronklike l�er om wysigings te soek)
poging om na 'n geskrapte buffer te verwyspoging om na geskrapte venster te verwysoutobevel %sdeur deur Bram Moolenaar et al.inputrestore() is meer gereeld as inputsave() geroeproep %skan nie 'OutputObject' eienskappe skrap niekan afvoer van 'charconvert' nie lees niekan konsole-modus nie verander nie ?!
kan nie buffer/venster bevel skep nie: voorwerp word geskrapkan re�l nie verwyder niekan nie re�l kry niekan re�l nie byvoeg niekan nie re�l invoeg/aanlas niekan nie oopmaak nie kan nie terugroepbevel registreer nie: buffer/venster word alreeds geskrapkan terugroepbevel nie registreer nie: buffer/vensterverwysing nie gevind niekan re�l nie vervang niekan nie herwin-inligting stoor niekan nie re�l(s) stel niekan nie pluk nie: verwyder in elk gevalmaak toecmd: %sgekonnekteervervolg in %skon nie "%s" uitvoer nie'cs_create_connection' uitvoering het misluk'cs_create_connection': 'fdopen' vir 'fr_fp' het misluk'cs_create_connection': 'fdopen' vir 'to_fp' het misluk'cscope' bevele:
'cscope' verbinding %s gesluitloperposisie buite buffergebruik verstek 'verwyder blok 1?moenie die verwerker verlaat voor die l�er suksesvol geskryf is nie!foutelys %d van %d; %d fouteuitdrukkings afgeskakel tydens kompileringl�er
l�ernaam / konteks / re�l
%s klaar uitgevoerlaat %ld re�ls gaan'gvimext.dll' fouthelpin pad ---
ongeldige eienskapongeldige buffernommerongeldige uitdrukkingonbekende merknaamis 'n gidsis nie 'n l�er nieis nie 'n l�er of 'n skryfbare toestel nieis lees-alleen (gebruik ! om te dwing)sleutelbordonderbrekingre�l %4ld:re�l %ldre�l %ld van %ld --%d%%-- kolom re�l %ld: %sre�l %ld: kon nie "%s" uitvoer niere�l %ld: voer nou "%s" uitre�lnommer buite omvangteken uitmerker nie gestel nietreffer %dtreffer %d van %dmaksimaal 'mch_get_shellsize': nie 'n konsole nie??
menu  Redigeer->Globale verstellings->Stel en herstel Invoeg Modusmenu  Redigeer->Global verstellings->Stel en herstel Vi Versoenbaarmenu  Hulp->Weeskinders       vir meer inligting hieroor menu  Hulp->Borg/Registreer   vir meer inligtingminimaal nuwe dop begin
neegeen 'cscope' verbindings nie
buffer bestaan niegeen sodanige venster niegeen sinchroniseringnie nie gevind nie kon nie in 'runtimepath' gevind word nie: "%s"nog nie ge�mplementeer nie'pe_line_count' is nulv��r-'vimrc' bevelre�llees vanaf Netbeans 'socket'leesalleen eienskapbesig om op te neemvervang met %s (y/n/a/q/l/^E/^Y)?ry %d kolom %dsoektog het ONDER getref, gaan voort van BO afsoektog het BO getref, gaan voort van ONDER afdop dop het %d gelewersit af'softspace' moet 'n heelgetal weesbesig om "%s" uit te voer'stack_idx' moet 0 weesstring kan nie 'newlines' bevat niesinchroniseer met C-styl kommentaarsinchronisasie begin etiket %d van %d%setiketnaamna %s op %stik   :help cp-default<Enter> vir meer inligting hieroortik   :help iccf<Enter> vir meer inligting hieroor tik   :help register<Enter>   vir meer inligting hieroor tik   :help sponsor<Enter>    vir meer inligting hieroor tik   :help version8<Enter>   vir weergawe-inligtingtik   :help windows95<Enter>  vir meer inligting hieroortik   :help<Enter>  of  <F1>  vir aanlyn hulp       tik   :q<Enter>               om program verlaat    tik   :set nocp<Enter>        vir Vim verstekwaardes   onbekende vlag: onbekende opsieonbekende 'vimOption'Weergawe vim foutmet (klassieke) GUI.met BeOS GUImet Carbon GUI.met Cocoa GUI.met GTK GUImet GTK-GNOME GUI.met GTK2 GUImet GTK2-GNOME GUI.met GUI.met Photon GUI.met X11-Athena GUImet X11-Motif GUI.met X11-neXtaw GUIsonder GUI.'writelines()' benodig 'n lys van stringePK�j�ZnV�)�) vim80/lang/menu_sv_se.latin1.vimnu�[���" Menu Translations:    Swedish
" Maintainer:		Johan Svedberg <johan@svedberg.com>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in latin1, but they work for cp1252 and
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
  scriptencoding latin1
endif

" Help menu
menutrans &Help			&Hj�lp
menutrans &Overview<Tab><F1>	&�versikt<Tab><F1>
menutrans &User\ Manual		&Anv�ndarmanual
menutrans &How-to\ links	&Hur-g�ra-l�nkar
menutrans &Find\.\.\.		&S�k\.\.\.
menutrans &Credits		&Tack
menutrans Co&pying		&Kopieringsr�ttigheter
menutrans &Sponsor/Register	&Sponsra/Registrera
menutrans O&rphans		&F�r�ldral�sa
menutrans &Version		&Version
menutrans &About		&Om

" File menu
menutrans &File				&Arkiv
menutrans &Open\.\.\.<Tab>:e		&�ppna\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	�ppna\ i\ splitt-vy\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	�ppna\ flik\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Ny<Tab>:enew
menutrans &Close<Tab>:close		S&t�ng<Tab>:close
menutrans &Save<Tab>:w			&Spara<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Spara\ som\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	Dela\ diff\ med\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Dela\ lappad\ med\.\.\.
menutrans &Print			Skriv\ &ut
menutrans Sa&ve-Exit<Tab>:wqa		Spara\ &och\ avsluta<Tab>:wqa
menutrans E&xit<Tab>:qa			&Avsluta<Tab>:qa

" Edit menu
menutrans &Edit				&Redigera
menutrans &Undo<Tab>u			&�ngra<Tab>u
menutrans &Redo<Tab>^R			&G�r\ om<Tab>^R
menutrans Rep&eat<Tab>\.		&Repetera<Tab>\.
menutrans Cu&t<Tab>"+x			Klipp\ &ut<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopiera<Tab>"+y
menutrans &Paste<Tab>"+gP		Klistra &in<Tab>"+gP
menutrans Put\ &Before<Tab>[p		S�tt\ in\ &f�re<Tab>[p
menutrans Put\ &After<Tab>]p		S�tt\ in\ &efter<Tab>]p
menutrans &Select\ All<Tab>ggVG		&Markera\ allt<Tab>ggVG
menutrans &Find\.\.\.			&S�k\.\.\.
menutrans &Find<Tab>/			&S�k<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	S�k\ och\ ers�tt\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	S�k\ och\ ers�tt<Tab>:%s
menutrans Find\ and\ Rep&lace		S�k\ och\ ers�tt
menutrans Find\ and\ Rep&lace<Tab>:s	S�k\ och\ ers�tt<Tab>:s
menutrans Settings\ &Window		In&st�llningar
menutrans &Global\ Settings		Gl&obala\ inst�llningar
menutrans F&ile\ Settings		Fi&linst�llningar
menutrans C&olor\ Scheme		F&�rgschema
menutrans &Keymap			&Tangentbordsupps�ttning

" Edit.Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	V�xla\ m�nsterframh�vning<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		V�xla\ ignorering\ av\ storlek<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		V�xla\ matchningsvisning<Tab>:set\ sm!
menutrans &Context\ lines				Sammanhangsrader
menutrans &Virtual\ Edit				Virtuell\ redigering
menutrans Never						Aldrig
menutrans Block\ Selection				Blockval
menutrans Insert\ mode					Infogningsl�ge
menutrans Block\ and\ Insert				Block\ och\ infogning
menutrans Always					Alltid
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		V�xla\ infogningsl�ge<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		V�xla\ Vi-kompabilitet<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				S�kv�g\.\.\.
menutrans Ta&g\ Files\.\.\.				Taggfiler\.\.\.
menutrans Toggle\ &Toolbar				V�xla\ verktygsrad
menutrans Toggle\ &Bottom\ Scrollbar			V�xla\ rullningslista\ i\ botten
menutrans Toggle\ &Left\ Scrollbar			V�xla\ v�nster\ rullningslista
menutrans Toggle\ &Right\ Scrollbar			V�xla\ h�ger\ rullningslista
menutrans None						Ingen

" Edit.File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	V�xla\ radnumrering<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		V�xla\ listl�ge<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		V�xla\ radbrytning<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	V�xla\ radbrytning\ vid\ ord<tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		V�xla\ tab-expandering<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		V�xla\ auto-indentering<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		V�xla\ C-indentering<Tab>:set\ cin!
menutrans &Shiftwidth					Shiftbredd
menutrans Soft\ &Tabstop				Mjuk\ tab-stopp
menutrans Te&xt\ Width\.\.\.				Textbredd\.\.\.
menutrans &File\ Format\.\.\.				Filformat\.\.\.

" Tools menu
menutrans &Tools			&Verktyg
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Hoppa\ till\ den\ h�r\ taggen<Tab>g^]
menutrans Jump\ &back<Tab>^T		Hoppa\ tillbaka<Tab>^T
menutrans Build\ &Tags\ File		Bygg\ taggfil
menutrans &Make<Tab>:make		&Bygg<Tab>:make
menutrans &List\ Errors<Tab>:cl		Listfel<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	Listmeddelande<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		N�sta\ fel<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	Tidigare\ fel<Tab>:cp
menutrans &Older\ List<Tab>:cold	&�ldre\ lista<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	&Nyare\ lista<Tab>:cnew
menutrans Error\ &Window		Felf�nster
menutrans &Update<Tab>:cwin		&Uppdatera<Tab>:cwin
menutrans &Open<Tab>:copen		&�ppna<Tab>:copen
menutrans &Close<Tab>:cclose		&St�ng<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Konvertera\ till\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	Konvertera\ tillbaka<Tab>:%!xxd\ -r
menutrans Se&T\ Compiler		S�tt\ &kompilerare

" Tools.Spelling
menutrans &Spelling				&Stavning
menutrans &Spell\ Check\ On			&Stavningskontroll\ p�
menutrans &Spell\ Check\ Off			Stavningskontroll\ &av
menutrans To\ &Next\ error<Tab>]s		Till\ &n�sta\ fel
menutrans To\ &Previous\ error<Tab>[s		Till\ &f�reg�ende\ fel
menutrans Suggest\ &Corrections<Tab>z=		F�resl�\ &korrigeringar
menutrans &Repeat\ correction<Tab>:spellrepall	&Upprepa\ korrigering

" Tools.Folding
menutrans &Enable/Disable\ folds<Tab>zi	V�xla\ veck<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	Visa\ mark�rrad<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	Visa\ bara\ mark�rrad<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	St�ng\ mer\ veck<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	St�ng\ alla\ veck<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	�ppna\ mer\ veck<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	�ppna\ mer\ veck<Tab>zR
menutrans Fold\ Met&hod			Veckmetod
menutrans M&anual			Manual
menutrans I&ndent			Indentering
menutrans E&xpression			Uttryck
menutrans S&yntax			Syntax
menutrans &Folding			Vikning
menutrans &Diff				Differans
menutrans Ma&rker			Markering
menutrans Create\ &Fold<Tab>zf		Skapa\ veck<Tab>zf
menutrans &Delete\ Fold<Tab>zd		Ta\ bort\ veck<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	Ta\ bort\ alla\ veck<Tab>zD
menutrans Fold\ col&umn\ width		Veckcolumnsbredd

" Tools.Diff
menutrans &Update		Uppdatera
menutrans &Get\ Block		H�mta\ block
menutrans &Put\ Block		L�mna\ block

" Names for buffer menu.
menutrans &Buffers		&Buffertar
menutrans &Refresh\ menu	Uppdatera\ meny
menutrans &Delete		Ta\ bort
menutrans &Alternate		Alternativ
menutrans &Next			&N�sta
menutrans &Previous		&Tidigare

" Window menu
menutrans &Window			&F�nster
menutrans &New<Tab>^Wn			&Nytt<Tab>^Wn
menutrans S&plit<Tab>^Ws		Dela<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Dela\ till\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Dela\ &vertikalt<Tab>^Wv
menutrans Split\ File\ E&xplorer	Dela\ filhanterare
menutrans &Close<Tab>^Wc		&St�ng<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	&St�ng\ alla\ andra<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			N�sta<Tab>^Ww
menutrans P&revious<Tab>^WW		&Tidigare<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Samma\ storlek<Tab>^W=
menutrans &Max\ Height<Tab>^W_		&Maximal\ storlek<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		M&inimal\ storlek<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Maximal\ bredd<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minimal\ bredd<Tab>^W1\|
menutrans Move\ &To			Flytta\ till
menutrans &Top<Tab>^WK			Toppen<Tab>^WK
menutrans &Bottom<Tab>^WJ		Botten<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&V�nstra\ sidan<Tab>^WH
menutrans &Right\ side<Tab>^WL		&H�gra\ sidan<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Rotera\ upp<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotera\ ned<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		V�lj\ typsnitt\.\.\.

" The popup menu
menutrans &Undo			&�ngra
menutrans Cu&t			Klipp\ ut
menutrans &Copy			&Kopiera
menutrans &Paste		&Klistra\ in
menutrans &Delete		&Ta\ bort
menutrans Select\ Blockwise	Markera\ blockvis
menutrans Select\ &Word		Markera\ ord
menutrans Select\ &Line		Markera\ rad
menutrans Select\ &Block	Markera\ block
menutrans Select\ &All		Markera\ allt

" The GUI toolbar (for Win32 or GTK)
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		�ppna fil
    tmenu ToolBar.Save		Spara aktuell fil
    tmenu ToolBar.SaveAll	Spara alla filer
    tmenu ToolBar.Print		Skriv ut
    tmenu ToolBar.Undo		�ngra
    tmenu ToolBar.Redo		G�r om
    tmenu ToolBar.Cut		Klipp ut
    tmenu ToolBar.Copy		Kopiera
    tmenu ToolBar.Paste		Klistra in
    tmenu ToolBar.Find		S�k...
    tmenu ToolBar.FindNext	S�k n�sta
    tmenu ToolBar.FindPrev	S�k tidigare
    tmenu ToolBar.Replace	S�k och ers�tt...
    tmenu ToolBar.LoadSesn	Ladda session
    tmenu ToolBar.SaveSesn	Spara session
    tmenu ToolBar.RunScript	K�r ett Vim-skript
    tmenu ToolBar.Make		Bygg aktuellt projekt
    tmenu ToolBar.Shell		�ppna ett kommandoskal
    tmenu ToolBar.RunCtags	K�r Ctags
    tmenu ToolBar.TagJump	Hoppa till tagg under mark�r
    tmenu ToolBar.Help		Hj�lp
    tmenu ToolBar.FindHelp	S�k i hj�lp
  endfun
endif

" Syntax menu
menutrans &Syntax			&Syntax
menutrans &Show\ filetypes\ in\ menu	&Visa\ filtyper\ i\ meny
menutrans &Off				&Av
menutrans &Manual			&Manuellt
menutrans A&utomatic			Automatiskt
menutrans on/off\ for\ &This\ file	Av/P�\ f�r\ aktuell\ fil
menutrans Co&lor\ test			F�rgtest
menutrans &Highlight\ test		Framh�vningstest
menutrans &Convert\ to\ HTML		Konvertera\ till\ &HTML

" dialog texts
let menutrans_no_file = "[Ingen fil]"
let menutrans_help_dialog = "Skriv in ett kommando eller ord som du vill s�ka hj�lp p�:\n\nB�rja med i_ f�r infogningl�geskommandon (t.ex. i_CTRL-X)\nB�rja med c_ f�r kommandoradredigeringskommandon (t.ex. c_<Del>)\nB�rja med ' f�r ett inst�llningsnamn (t.ex. 'shiftwidth')"
let g:menutrans_path_dialog = "Skriv in s�kv�g f�r filer.\nSeparera katalognamn med komma"
let g:menutrans_tags_dialog = "Skriv in namn p� taggfiler.\nSeparera namn med komma."
let g:menutrans_textwidth_dialog = "V�lj ny textbredd (0 f�r att f�rhindra formatering): "
let g:menutrans_fileformat_dialog = "V�lj filformat som filen ska sparas med"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�G>�BBvim80/lang/menu_pt_pt.utf-8.vimnu�[���" Menu Translations:	Portugu�s

source <sfile>:p:h/menu_pt_pt.vim
PK�j�Z�j��YYvim80/lang/menu_zh.cp950.vimnu�[���" Menu Translations:	Traditional Chinese

source <sfile>:p:h/menu_chinese_taiwan.950.vim
PK�j�Z_��S�(�( vim80/lang/menu_nl_nl.latin1.vimnu�[���" Menu Translations:	Nederlands
" Maintainer:		Bram Moolenaar
" Last Change:	2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in latin1, but they work for cp1252 and
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
  scriptencoding latin1
endif

" Help menu
menutrans &Help			&Help
menutrans &Overview<Tab><F1>	&Overzicht<Tab><F1>
menutrans &User\ Manual		Gebruikershandleiding
menutrans &How-to\ links	&Hoe-doe-ik\ lijst
"menutrans &GUI			&GUI
menutrans &Credits		&Met\ dank\ aan
menutrans Co&pying		&Copyright
menutrans &Sponsor/Register	&Sponsor/Registreer
menutrans O&rphans		&Weeskinderen
menutrans &Version		&Versie
menutrans &About		&Introductiescherm

" File menu
menutrans &File				&Bestand
menutrans &Open\.\.\.<Tab>:e		&Openen\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	In\ nieuw\ &Venster\ openen\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		&Nieuw<Tab>:enew
menutrans &Close<Tab>:close		&Sluiten<Tab>:close
menutrans &Save<Tab>:w			&Bewaren<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Bewaren\ als\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	Toon\ diff\ met\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Toon\ gewijzigd\ door\.\.\.
menutrans &Print			Af&drukken
menutrans Sa&ve-Exit<Tab>:wqa		Bewaren\ en\ Afsluiten<Tab>:wqa
menutrans E&xit<Tab>:qa			&Afsluiten<Tab>:qa

" Edit menu
menutrans &Edit				Be&werken
menutrans &Undo<Tab>u			Terug<Tab>u
menutrans &Redo<Tab>^R			Voo&ruit<Tab>^R
menutrans Rep&eat<Tab>\.		&Herhalen<Tab>\.
menutrans Cu&t<Tab>"+x			&Knippen<Tab>"+x
menutrans &Copy<Tab>"+y			K&opi�eren<Tab>"+y
menutrans &Paste<Tab>"+gP		Plakken<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Ervoor\ invoegen<Tab>[p
menutrans Put\ &After<Tab>]p		Erachter\ invoegen<Tab>]p
menutrans &Select\ all<Tab>ggVG		Alles\ &Markeren<Tab>ggVG
menutrans &Find\.\.\.			&Zoeken\.\.\.
menutrans &Find<Tab>/			&Zoeken<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	Zoeken\ en\ &Vervangen\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	Zoeken\ en\ &Vervangen<Tab>:%s
menutrans Find\ and\ Rep&lace		Zoeken\ en\ &Vervangen
menutrans Find\ and\ Rep&lace<Tab>:s	Zoeken\ en\ &Vervangen<Tab>:s
menutrans Settings\ &Window		Optievenster
menutrans &Global\ Settings		Globale\ Opties
menutrans F&ile\ Settings		Bestandopties
menutrans C&olor\ Scheme		Kleurenschema
menutrans &Keymap			Toetsenbordindeling

" Edit.Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Flip\ Patroonkleuring<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	Flip\ Negeren\ hoofd/kleine\ letters<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!	Flip\ Showmatch<Tab>:set\ sm!
menutrans &Context\ lines		Contextregels
menutrans &Virtual\ Edit		Virtueel\ positioneren
menutrans Never				Nooit
menutrans Block\ Selection		Bij\ Blokselectie
menutrans Insert\ mode			In\ Invoegmode
menutrans Block\ and\ Insert		Bij\ Blokselectie\ en\ Invoegmode
menutrans Always			Altijd
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	Flip\ Invoegmode<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Flip\ Vi\ Compatibiliteit<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		Zoekpad\.\.\.
menutrans Ta&g\ Files\.\.\.		Tag\ Bestanden\.\.\.
menutrans Toggle\ &Toolbar		Toon/verberg\ Knoppenbalk
menutrans Toggle\ &Bottom\ Scrollbar	Toon/verberg\ onderste\ schuifbalk
menutrans Toggle\ &Left\ Scrollbar	Toon/verberg\ linker\ schuifbalk
menutrans Toggle\ &Right\ Scrollbar	Toon/verberg\ rechter\ schuifbalk
menutrans None				Geen

" Edit.File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Flip\ regelnummers<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Flip\ list\ mode<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Flip\ regelafbreken<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Flip\ afbreken\ op\ woordgrens<tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Flip\ tabexpansie<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Flip\ automatisch\ indenteren<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Flip\ C-indenteren<Tab>:set\ cin!
menutrans Te&xt\ Width\.\.\.				Tekstbreedte\.\.\.
menutrans &File\ Format\.\.\.				Bestandsformaat\.\.\.

" Tools menu
menutrans &Tools			&Gereedschap
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Spring\ naar\ Tag<Tab>g^]
menutrans Jump\ &back<Tab>^T		Spring\ &Terug<Tab>^T
menutrans Build\ &Tags\ File		Genereer\ &Tagsbestand
menutrans &Make<Tab>:make		&Make\ uitvoeren<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Foutenlijst<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	&Berichtenlijst<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		Volgende\ Fout<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	Vorige\ Fout<Tab>:cp
menutrans &Older\ List<Tab>:cold	&Oudere\ Lijst<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	&Nieuwere\ Lijst<Tab>:cnew
menutrans Error\ &Window		Foutenvenster
menutrans &Update<Tab>:cwin		&Aanpassen<Tab>:cwin
menutrans &Open<Tab>:copen		&Openen<Tab>:copen
menutrans &Close<Tab>:cclose		&Sluiten<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Converteer\ naar\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	Converteer\ terug<Tab>:%!xxd\ -r
menutrans &Set\ Compiler		Kies\ Compiler

" Tools.Folding
menutrans &Enable/Disable\ folds<Tab>zi	Flip\ tonen\ folds<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	Toon\ cursorregel<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	Toon\ alleen\ cursorregel<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	Sluit\ meer\ folds<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	Sluit\ alle\ folds<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	Open\ meer\ folds<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	Open\ alle\ folds<Tab>zR
menutrans Fold\ Met&hod			Foldwijze
menutrans M&anual			Handmatig
menutrans I&ndent			Inspringing
menutrans E&xpression			Expressie
menutrans S&yntax			Syntax
menutrans &Diff				Verschillen
menutrans Ma&rker			Markeringen
menutrans Create\ &Fold<Tab>zf		maak\ Fold<Tab>zf
menutrans &Delete\ Fold<Tab>zd		verwijder\ Fold<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	verwijder\ alle\ Folds<Tab>zD
menutrans Fold\ column\ &width		Fold\ kolom\ breedte

" Tools.Diff
menutrans &Update		Verversen
menutrans &Get\ Block		Blok\ ophalen\ van\ ander\ venster
menutrans &Put\ Block		Blok\ naar\ ander\ venster

" Names for buffer menu.
menutrans &Buffers		&Buffer
menutrans &Refresh\ menu	Ververs\ menu
menutrans &Delete		Wissen
menutrans &Alternate		Vorige
menutrans &Next			Vooruit
menutrans &Previous		Achteruit

" Window menu
menutrans &Window			&Venster
menutrans &New<Tab>^Wn			&Nieuw<Tab>^Wn
menutrans S&plit<Tab>^Ws		Splitsen<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Splits\ naar\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Splits\ &Vertikaal<Tab>^Wv
menutrans Split\ File\ E&xplorer	Splits\ Bestandverkenner
menutrans &Close<Tab>^Wc		&Sluiten<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	&Sluit\ alle\ andere<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			Volgende<Tab>^Ww
menutrans P&revious<Tab>^WW		&Vorige<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Gelijke\ afmetingen<Tab>^W=
menutrans &Max\ Height<Tab>^W_		&Maximale\ hoogte<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Mi&nimale\ hoogte<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Maximale\ breedte<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minimale\ breedte<Tab>^W1\|
menutrans Move\ &To			Verplaats\ naar
menutrans &Top<Tab>^WK			Bovenkant<Tab>^WK
menutrans &Bottom<Tab>^WJ		Onderkant<Tab>^WJ
menutrans &Left\ side<Tab>^WH		Linkerkant<Tab>^WH
menutrans &Right\ side<Tab>^WL		Rechterkant<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Roteren\ naar\ &boven<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Roteren\ naar\ &onder<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		Selecteer\ font\.\.\.

" The popup menu
menutrans &Undo			&Terug
menutrans Cu&t			Knip
menutrans &Copy			&Kopi�er
menutrans &Paste		&Plak
menutrans &Delete		&Wissen
menutrans Select\ Blockwise	Selecteer\ per\ Rechthoek
menutrans Select\ &Word		Selecteer\ een\ &Woord
menutrans Select\ &Line		Selecteer\ een\ &Regel
menutrans Select\ &Block	Selecteer\ een\ Recht&hoek
menutrans Select\ &All		Selecteer\ &Alles

" The GUI toolbar (for Win32 or GTK)
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Bestand openen
    tmenu ToolBar.Save		Bestand opslaan
    tmenu ToolBar.SaveAll	Alle bestanden opslaan
    tmenu ToolBar.Print		afdrukken
    tmenu ToolBar.Undo		terug
    tmenu ToolBar.Redo		vooruit
    tmenu ToolBar.Cut		knippen
    tmenu ToolBar.Copy		Kopi�ren
    tmenu ToolBar.Paste		Plakken
    tmenu ToolBar.Find		Zoeken...
    tmenu ToolBar.FindNext	Zoek volgende
    tmenu ToolBar.FindPrev	Zoek vorige
    tmenu ToolBar.Replace	Zoek en vervang...
    tmenu ToolBar.LoadSesn	Sessie Laden
    tmenu ToolBar.SaveSesn	Sessie opslaan
    tmenu ToolBar.RunScript	Vim script uitvoeren
    tmenu ToolBar.Make		Make uitvoeren
    tmenu ToolBar.Shell		Shell starten
    tmenu ToolBar.RunCtags	Tags bestand genereren
    tmenu ToolBar.TagJump	Spring naar tag
    tmenu ToolBar.Help		Help!
    tmenu ToolBar.FindHelp	Help vinden...
  endfun
endif

" Syntax menu
menutrans &Syntax		&Syntax
menutrans &Show\ filetypes\ in\ menu  Toon\ filetypes\ in\ menu
menutrans Set\ '&syntax'\ only	Alleen\ 'syntax'\ wijzigen
menutrans Set\ '&filetype'\ too	Ook\ 'filetype'\ wijzigen
menutrans &Off			&Uit
menutrans &Manual		&Handmatig
menutrans A&utomatic		A&utomatisch
menutrans on/off\ for\ &This\ file	Aan/Uit\ voor\ dit\ Bestand
menutrans Co&lor\ test		Test\ de\ &Kleuren
menutrans &Highlight\ test	Test\ de\ Markeringen
menutrans &Convert\ to\ HTML	Converteren\ naar\ &HTML
menutrans &Show\ individual\ choices	Toon\ elke\ keuze

" dialog texts
let menutrans_no_file = "[Geen Bestand]"
let menutrans_help_dialog = "Typ een commando of woord om help voor te vinden:\n\nVoeg i_ in voor Input mode commandos (bijv. i_CTRL-X)\nVoeg c_ in voor een commando-regel edit commando (bijv. c_<Del>)\nVoeg ' in \voor een optie naam (bijv. 'shiftwidth')"
let g:menutrans_path_dialog = "Typ het zoekpad voor bestanden.\nGebruik commas tussen de padnamen."
let g:menutrans_tags_dialog = "Typ namen van tag bestanden.\nGebruik commas tussen de namen."
let g:menutrans_textwidth_dialog = "Typ de nieuwe tekst breedte (0 om formatteren uit the schakelen): "
let g:menutrans_fileformat_dialog = "Selecteer formaat voor het schrijven van het bestand"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�j��YYvim80/lang/menu_zh.big5.vimnu�[���" Menu Translations:	Traditional Chinese

source <sfile>:p:h/menu_chinese_taiwan.950.vim
PK�j�Z�L����� vim80/lang/eo/LC_MESSAGES/vim.monu�[�������<
|y����

��!�'7�/_�������LѢ:�Y�f�+n���"��ؤ��	�5�O�l��������ʥ;��զ�
�'�6�G�Z�i������0ɧ.��/)�0Y�
������Ũ
ߨ�
�$
�$2�W� h���@��D٩�2�"Q�t�"����Ϊߪ@�/�J�[�l�|���/��8Ϋ,�=4�r�������ά0�1�1C�u�������-խ�#�8�P�b����3��3��4�L�d�~���
����ïۯ���
�$%�J�LV� ��İܰ;�0�?�#L�	p�z�������
��ȱ�����	/�9�A�I�![�}�����̲Բ��� �$�?�Y�y�����
����6�����!:�\�
d�r�	���������&��	�"�*�>�=V�
����	������˵�	�
�
��
� �2�D�M�5k���-��1�&�:�R�g�z�������$��
�$�4�L�b�u���������ָ����� �2�B�
\�g�t���
������7����!�$�<�D�M�U�[�_�k�z�=~�2��������'�-@�2n�����?׻�3�D�+S��	������˼-��$7�\�
|���������=ν?�L�2[�!��%��@־9�EQ�9��CѿK�Ia�H��;�60�8g�3��<�4�-F�6t���%�������.�H�&X�,�#��4�� �@&�-g�0��:��;�=�"]���>��)��>��<9�v���#��:��'�9)�c�$|�9��4��;� L�>m�1��/���-+�Y�.h�B��"��2��40�*e���+��%��'�((�<Q�E��.��-�$1�V�<o���*��&�� �49�n������������������!�1�:�"B�e�q���������)���$�3�B�J�c�1|�?��������)�:�P�k�~�X��%����5�S�l�����������$���!�:�X�^�n�r���"��$����#�9�@�O�_������ ����4�8�	J�CT�V����
��

�.�D�-]���-��$��.��6,�c�.}�H��(���-�
F�OQ�O��
��C��	C�M�Y�!n�������3��2��! �(B�k� ��"��E���%+�#Q�-u�������&��!�3�E�c�|���'����)��+�@E�-����5���$�:�U�/p�9����E��=�-X�7��#�� ��:�5>�&t�"��&��$��#
�!.�=P�5�� ��(��7�.F�,u��������� �#!�&E�l�����������
�)�0H�$y�!�� ��(��4
�,?�l��������� �����16�h�!��%��%��!��%�;�$T� y�����?��&�#8�\�
x�A��%��"��"�94�'n�(��2��*��!�!?�)a�%��!��4��:�&C�;j�;��)��0�=�\�x�����#��!��8�&;�#b��� ��/��"���-#�Q�b�{�/��*��(��#�;�W�r�����>��� �:�"Q�t�������#���9�1U�1��)��1��%�7;�s�A��?���&�=�!\�~�����0��4�$:�)_�N��,��&�L,�y�����8����$
�2�L�#l�7��N��3�P�$k�!��3��,�2�%F�l�"����#���(�E�Bb���0��!� �<3�+p�����+�2��$0�U�,s���H��,�1�G�"g��������9#�]�r���0��#�'��&�6�,V�&������+�2��-.�(\���"��'��'�,�>�.U���#��,�W��)M"w,�%�� 
+2D2w2��!�52J5}'�#�)�3)$]%�����$,&Q x'�*�#�'%8^3~!��+�*?-j$����* E f$�$�)��,)Vk%��=�
	&	C	\	'v	�	�	$�	#�	0!
.R
0�
�
�
�

"9M-d ��7�)0$H(m��%�$�
.
A
'^
�
'�
 �
�
  87Y0��#�"%(H!q�-�1�65H~.�*�1�9%_*&�+�,�+*4V<�+�*�5Mbw�����"�*A\{����3Ok:~=�<�64<k�"��+�)%4O5�4�3�#05 f�D�P�%0Vu�����!3Up�����'-@!`��"��1�!8U"j�����1F_r�����*;)f�� ���	6"#Y})�&�K�6  I j � � � � � !"!&A!#h!�!�!+�!%�!7"5P"�"�",�"�"# #)6# `#�#�#�#�#�#$#$?$0W$�$�$�$�$4�$./%$^%)�%1�%;�%&.+&*Z&�&$�&�&%�&,'8'%I'o'�'�'&�'-�'&(5( Q(r(�(�(+�( �()?$))d)�)6�)#�)2*96*>p*8�*1�*+)8+)b+ �+)�+�+)�+*,"G,j,#�,"�,"�,)�,-7-%U- {-$�-�-�-!�-0 .Q.j.�.�."�.!�.9/8<//u/�/�/�/+�/%01B0)t0�0�0'�0%�01&11!X1%z1'�1%�1'�1-22D2w2�2$�2�2�23"!3D3d3!�31�3&�3�3!4!>4`4(u4�4�4+�485=57\5E�5!�5�56((60Q6#�6�6$�6�6#�6*7I7d7w70�72�70�7&8+C8)o8$�8/�8�89'9)@9,j9�9�9 �9�9	:-':,U:�:/�:+�:'�:!; A;0b;�;!�;,�;�;<("<K<d<0z<.�<�<1�<&,=:S=�=9�=�=:><>T>t>�>*�>�>3�>0?%I?2o?0�?!�?;�?R1@�@*�@�@�@(A+A+GA+sA�A �A"�A%�A $B+EB"qB+�B�B.�B4CIDC)�C)�C6�C6D-PD(~D/�D&�D<�D);E*eE�E7�E�E�EF*7FbF�F0�F/�F!�F"G*BG/mG;�G�G�GQH.cH�H$�H#�H0�H#,IPI2oI6�I�I+�I%%JXKJ;�J/�J;KLK!lK%�K"�KN�K.&L$UL&zLT�L#�L"M$=M bM�M�M#�M]�M CNBdN'�N�N/�N2O,OO"|O�O&�O(�O%	P/PNPlPE�P!�P �P7QJQ%`Q�Q'�Q�Q'�QR3R<IR�R"�R'�R�RS+"SNS(hS!�S5�S�S7T!@T%bT/�T!�T�T�T'U@U)_U;�U&�U(�U8V&NVuV.�V�V)�V&W,WEW'bW�W	�W�W�W�W�W�W#X	0X:XJX^X.uX�X.�X6�X!Y'Y6;Y#rY
�Y&�Y	�Y�Y�Y�YZ+Z 8Z%YZ!Z
�Z�Z(�Z��Za�[�[+\a=\�\�\�\(�\
�\	�\%�\
]*]&H]&o]�](�]�]	�]�]	^^
^&^D^Y^w^	�^2�^*�^�^_&_E_[_
q_|_	�_�_�_�_�_#�_(`*`<`	N`X`p`
�`�`�`2�`�`�`a/a<aBa$Wa|a/�a�a�a'�a�ab
)b$4b
Ybdbvb�b �b�b�b�b�b!�b c?c@Hc(�c�c'�c�c�c�c
dd3d#Sdwd�d�d.�d
�d�d	e
e*e<eRe'me�e�e
�e�e�e�e�eff:fYfof�f�f�f9�f9gJgagigvg
�g�g(�g�g�g�gh
h	h#h9hQhlh{h9�h
�h�h�h�hi&0iWivi�i�iC�iWj	hjrj�j�j�j
�j�j)�j�jk3kFOk�k�k�k�k�k�k(�kl8lUl1gl�l�l�l�l�l�lmm0.m;_m>�m�m�m
n1&n"Xn{nn�nA�n)�n=%oco(�o�o�o$�o0�op(p+p+Ap2mp�p�p�p�p�p	q
q�&q�qF�qr
r	r
(r6r+Krwr%�r0�rB�r('sPs1ls+�s*�s&�s9tMVt>�t)�t5
uACu4�u$�u*�uA
vALv&�v6�v�v<�v<1w?nw7�w/�w x"7xZx2ox0�x�x�xy#y8yLyfy�y�y2�y)�y+z,>z-kz �z!�z#�z{{1{5{9{X{	e{o{x{�{�{�{�{�{�{
�{
�{|	||4|A|	U|_|
o|}|
�|	�|5�|�|�|	�|�|}

}}&"}I}\}i}o}
w}�}
�}�}�}�}�}�}�}�}�}�}9�}B~DX~"�~$�~"�~)2AHd}��1�
�$�"�1�<P���'��!Ȁ���
�'�F�_�Hl�C����
�*�B�U�p�w���������� ɂ#�-�-<�j�|�����ǃ؃(�&�=�=L�����%��
�8�F'�.n�D��M�@0�0q�&��'Ɇ&�$�=�O�$j���-��؇�
�!�?�K�Q�l�~�����
��ň׈� �%�
*�8�"E�h�%z�*��.ˉ8��"3�#V�%z�#��Ċڊ��/�E�
T� b� ����
��‹ڋ���.�	F�P�i�2}���Ȍ׌ތ$���(�
7�E�#N�1r�1��1֍1�:�C�	L�
V�(a���������Ɏڎ
��
��6�(J�'s� ����ҏ�	�	$�.�"@�c�v���$��$��ِ�����
%�3�I�h���������̑ޑ���3�B�J�.V�.��.��.�.�.A�.p�.��&Γ ��%�<� W�:x���Ô˔ڔ�"��)�)H�r�	{�������ȕٕ���
�	�&�7�L�`�u�3��@������$�&:�+a�������tϘ6D�
{���0��Ú/�3�G�\�Bs� ��כ ���'��?�-��+�C� \�}�������Ν$��$�0A�.r�/��0ў��*�D�a�r���+��,���*�-�M?�\���#�#(�#L�#p�������PΡ�>�O�_�r���:��B٢$�XA���&��ܣ���J �8k�8��ݤ�� �65�l���#��¥'ԥ"��"�)B�<l���"Ǧ"�
�*�;�
X�c�"u�����"���%��M&�%t�#��"��<��
.�(<�	e�o�����	����ũ���"�".�	Q�
[�f�m�%������ժ��"�%�-�(5�"^���+��
ǫի	ޫ���=�J�g� ��'��Ь
ج
��"�
'�2�7�)<�f�w�#��#��>߭�-�6�>�P�]�x���������	����Ԯ���:�P�.`�5��/ů���!�7�N�b���/��ɰ߰���0�G�[�q�������ձ�����*�<�H�b�o���������
Dz1ղ
�%�;�T�]�f�n�u�{�����K��A�
5�C�L�U�0g�&��,��$��G+�#s�����,���
���%�!A�.c���&��"ٶ	����1�@�AY�K���A�� 9�*Z�H��@θF�@V�C��W۹Q3�G��@ͺ@�7O�5��O��9
�.G�8v���!ͼ��"�@�_�%l�+��#��5�%�J>�/��3��M�M;���#��ʿDݿ2"�IU�F���%�7�.Q�)��A���*�D3�>x�G��-��B-�7p�.����6��-�0?�Hp�0��A��@,�0m�,��1��$��+"�,N�D{�P��<�0N�$���Q���-2�-`�#��7�������"�*�@�U�f�x�������	��	��+����"�"@�"c���+��
��*����
��=�4\�A�����������0�H�g��]��+��)�&.�*U�������������	�+�I�$`��������� ��!��$�!'� I�/j�������%�����$!�)F�p�@������F��Z?�
������,����3	�=�'X�&��2��G��"�?=�W}�0����3�XC�X����E�K�
S�^�q�������5��4��")�$L�q�!��1��D�� !�4B�,w�3����!���'2�Z�k�|�������*���'*�.R�H��7���A �b������9��=�E�Od���9��7	�A�`�?��A��'�**�*U�.��$��#��B��8;�t�(��/��3��# �*D�o�����*��(��,
�:�U�)r� ������"��"�:<�&w�.��,��3��3.�+b�����������#�$*�O�=o���#��$��+�"A�&d���+��'�����91�/k�.������G��,?�!l�'��9��/��# �6D�8{�%��)��*�*/�+Z�:��D��*�A1�;s�6��=��&$�K�j�����"��.��:�3O�$����*��7��)�G�<W�������,��&�$'�L�k�,��"������B�W�$w���(��#���$�C� ^��8��:��:�0I�4z�*��3���:+�Jf�����#��)�*1�\�{�:��<��!�/5�We�7��"��R�k�����5����%�*�#C�(g�4��O��#1�$U�+z�*��8�)
�84�#m���:��*�<�'R�"z�"��"��M�#1�FU�+��-�G��+>�.j���4��0�"� =�K^���@�5�>� Y�'z�$��&�&�&�$<�8a������6�,#�4P�����1��(��#�29�?l�2��,�,&.S2�=��/<"X5{X�.
/9-i.� �%�
6(:_7��&�.,C8p$��*�41N0�!���$	."G&j�'�0�$
,/1\'�@�)�*!5L"�)�(�'�% 	F	c	�	�	�	�	4�	)&
0P
�
�
1�
�
�
(+<Fh��� 6' ^)'� �2�-%
5S
�
�
�
�
�
1+L+x�0�4�'#C2g��.�.�+(T)p+�#�(�)$=b�"�9�8�(4(]%�/�-�
%*3P8�=�<�%87^)�A�<#?(c-�/�0�/2KN~,�0�+C\y�����$=Uq+�#��&F Z{ ���D�H-Jv>�BCb�4�2�=;A;};��;A]JuX�+#E"i ����!�!
!/Ql��"���. 5 .J 2y %� � #� !7'!_!z!�!�!�!�!�!&"-"C""]"�"�"�"�"�"�"	#!##A#$e#+�#.�#0�#$*$'A$i$�$�$:�$%�$%.1%,`%Q�%�%.�%#"&F&f&&�&�&!�&'�&)'&:'a'|'.�'&�'9�'7+(!c(#�(4�(�(�()..)!])) �)�)�)#�)*,*H*:`*�*!�*%�*$�*:"+5]+,�+3�+1�+;&,b,5r,4�,�,&�,% -0F-9w-�-$�- �-. .08./i.&�.�./�. ///&M/Ht/�/�/F�/'<0d0=�0-�0:�03+1H_1=�15�1+2*H2/s2*�2+�2�2+3-D3(r3�3&�3!�3�3+4 G4"h4(�4!�4%�4�45":52]5�5�5�5!�5 6 $6=E6<�61�6�6 
7.7/C7+s72�71�788)08%Z8�8%�8"�8'�8+9#49$X9-}9,�9�9�9 :):.I:x:�:#�:#�:+�:,*;"W;z;'�;!�;�;'<+<$K<2p<<�<�<?�<Q?=#�=�=�=,�=:>)M>w>�>�>"�>*�>?6?%J?9p?2�?5�?%@(9@)b@#�@?�@�@

A,A3HA7|A(�A#�AB B;B*ZB3�B�B7�B3	C*=C#hC$�C.�C�C"�C'DGD\D.pD"�D�DA�D7!E$YE4~E*�E=�E F5=FsF=�F�F*�F(G'5G:]G)�G&�G�G4H,6H6cH2�HG�HRI-hI.�I!�I#�I-J9J0UJ6�J"�J$�J(K4.K(cK;�K'�K5�K"&L2IL?|LC�L-M-.M3\M4�M;�M.N10N*bN=�N0�N:�N7O7VO�O!�O�O)�O!P 5P>VP@�P$�P#�P%Q/EQAuQ �Q�Qb�Q1YR*�R&�R%�R9S%=ScS<�SP�S#T)3T*]T]�TF�T6-U9dU#�U)�U-�U+VQFV3�V"�V-�VWW+uW(�W&�W)�W'X'CX)kXe�X'�XS#Y'wY�Y8�Y6�Y//Z#_Z �Z1�Z'�Z*�Z()[R['q[F�[�[(\,)\V\(k\#�\(�\$�\]'&]N]>e]�]%�](�]^,^2A^t^&�^$�^9�^"_%7_(]_*�_2�_%�_ 
`+`0J`{`*�`B�`)a+.a8Za,�a�a8�a b$6b0[b$�b5�b6�bc&c!7cYcjc�c�c-�c
�c�cd dA?d�d7�d>�deeD/e te
�e!�e�e�e�e�ef%f&5f)\f#�f�f�f#�f��fm�gh?1h_qh�h�h�h/�h$i4i%Dijiwi&�i(�i�i+j3j	HjRj	gjqjyj+�j�j$�j�jk1k(Ok(xk�k!�k�k�kll
!l,l9lFl]l&wl*�l�l�l�l�l m5mEmamAim
�m�m�m�mnn/ n&Pn4wn�n�n.�n�n"o'o.4o	como�o�o.�o�o�op p6p(Up~pB�p2�p�p-q=qBq`quq �q)�q%�q�q+r>r0Gr
xr�r
�r$�r�r�r�r1sEs
`sksws�s�s�s�s"�s�st/tOt$mt"�tL�t:u=u\uiu}u�u"�u2�u
�uv%v:vKv^vsv�v$�v�v�vN�v>wKw\w$uw"�w%�w$�w$x$-xRxGnx\�xyy1yBy\yqy�y9�y-�y�y"zO=z�z�z�z�z
�z�z?�z!={)_{�{;�{
�{�{	|
| |>|W|s|/�|;�|>�|.}G}d}7�}"�}�}�}�}Q~4q~L�~�~*9B!^/�
���.�J	�!T�v� ������Ȁ"Հ���z�T��
����� �03�d�,|�0��>ڂ*�D�;]�)��)Ã*�:�PS�?��'�7�BD�8��$��1�F�F^�.��CԆ�@�@`�@��:�-�K�!k���4��1܈�.�J�g�{�#��%�����:�1X�3��4��5�))�'S�#{�����Ջً ݋��
��'�<�D�b�{���������ˌҌ%ߌ��'�4�L�_�l�	�7����ҍ
ߍ
���!�� �22�e�
���	��������͎֎ߎ�	�	�����C�Cc�>��&�(
�)6�,`�������ݐ���.�
C�,N�({�'��F̑�0,�*]�����!�� ג���O*�Pz�˓&��,�G�f�n�w�}�������+��3�1!�1S�������ӕ���!�!3�U�Gd�!��Ζ*ۖ�@�ET�3��;ΗD
�;O�5��+��,�+�#F�j���.��͙-��4�Q� k�
������Úٚ
� ��!�7�N�$c���
����+��ڛ'�,�5E�4{�&��%ל#��%!�G�]�v���;��ڝ�,��)(�R�e�q�	����
��ž���� �:=�x�������%ǟ�
���
2�&=�;d�C��7�7�	T�^�
j�u�6����Ρѡ���+�"<�_�k���/��-ɢ#���3�K�j�
����*��ң���*�*1�\�c�w� ����
��ä#ڤ ���0�J�g�����L��+�'1�Y�l�|�7��7��7��70�7h�8��7٧8�#J�!n�%��"��%٨;��;�O�X�i�x���'��+ҩ���&�:� R�s�����!ʪ���!=� _�!����=����S*K�O�Ih��pwEA�������]��O�?��~s�X������%�q
C�H(�)
>+�%T��cT�#��Qb�L�nS���s`Mi�5��^�jP�W�������
e��8�x�����������d���K�ncmm����&*Rq�0���Z�In���7kB_&R�}����4[�����b������,A����wh���6���2�o�d���|Gp7�%lw��!�%um�N���(����)�6!���Q����/�'~�"Q�J���6�x^�
�k��&KQ3:9��>��)��<$f�z����8e��k��-���;8�
?���u03&Eo��#.���Z����X'��R[]��Vw��`���=��dO3�*:�����x$�zz��������),�������r+,�*�hJ�\�H �}��\�>u�A3\�#x���M���^�@T�lw����u<�W�-���m>�$���A�X;w�y@��fL�pS� "g�Za_�@��e�!i_���&N,��t�+:pv'k���?��)�!U)��S*q�+����F��1�S��4<���I8�+�����Wx���y���Lw�!0���}�g�k������D�9X��?kz�� D"��]�^�Q,�P�0	IR@���|�c>�����FaG��0t�r~8�l�@-6G��9���e��W�F]Use���h�O^��o��`�=��~�M[R�K_8P��lTV�Bfh2�:���G�.��1�������N��E>�Zb{�O�����z�J��.�������D`f�1a�n�6Ru�Y
?;�����mfr>x���?=a���fsZ��S;~g���:ET���Y�;���Y6a
�
�g�9��39��4@.�)H���-�2���N���d(C���	�A�I��N$a�����[��v$H�n	�j5�W�����4c4��^/�	��y{Br�j�S�@����u@=D���v����P��f�������}����;�{��������*���V����<��g�2�(�o\q���
�AC-���H`=c/L�'��L��Kv����XV/(t2#D��<��/�����[�e�vzG�>�����+3i�&�0�����J�����1���/�/��E9i�����\��,nU�ykBp#c��{�Yv�]�C���D��wl�cIi�=�4E�;���9�+��!+�b��}	P{OKB����o�	������nT��(�^�[����
A����iT�M��5�	���QP�|y�-�������M�`7���s��1qH.�H�b����5'{AIN�}�Z<��|�K�U��fl�
I�3����$5��C�z��tE�d�����R��XBB2���<~yJ�,$�C��h����1����:e,
�i����0� ��#�/2�Y m��k���FY����%�jG���yF���L��NM��_�� �.��4j������{��$�8��W���hs����<�t�-~Y=�E�ap���V(g�{ ���q01�#:���i�K�Z�d��o~���e�jv��)PJM};O.��7MSu�4_J�7��r��gaV�%�[_3��O5�&dJ���`��s]��Q�qD7����\"�7�X
������o�H�2�5j����=�W^�t�����.	��������#B���h
����
��n������]V� *Np���|7!�|����6}�U�\(�'Ucs:6���Gb�x]b�otg����-�5F����8�"��|R�����mvLl'P|u�Z����jx_��!�C&����U\�D�rb?T��d�����V���t���l��'�X�mW[�U��"����"G�9��`L�
�Q%��pr���%�z�C�?YFqr����1*��y��"F
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info into "%c kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%s%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----clean		'nocompatible', Vim defaults, no plugins, no viminfo--cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked%s1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE946: Cannot make a terminal with running job modifiableE947: Job still running in buffer "%s"E948: Job still runningE948: Job still running (add ! to end the job)E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTerminalTerminal-finishedTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveactiveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yanked%sblock of 1 line yanked%sbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinishedfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %drunningsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim(Esperanto)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-10-02 22:42+0200
PO-Revision-Date: 2017-10-02 22:57+0200
Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>
Language-Team: 
Language: eo
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

	Laste ŝaltita de 

Argumentoj:


  uzo:
          modifita: 
         [neuzebla per tiu komputilo]
         [ne uzebla per tiu versio de Vim]
    komputila nomo: 
        uzantonomo: 
        proceza ID: 
       a: Trovi valirizojn al tiu simbolo
       c: Trovi funkciojn, kiuj alvokas tiun funkcion
       d: Trovi funkciojn alvokataj de tiu funkcio
       e: Trovi tiun egrep-ŝablonon
       f: Trovi tiun dosieron
       g: Trovi tiun difinon
       i: Trovi dosierojn, kiuj inkluzivas (#include) tiun dosieron
       s: Trovi tiun C-simbolon
       t: Trovi tiun ĉenon

    Nomo        Argumentoj Adreso    Kompleto  Difino
 nro   linio
   aŭ:
nro AL etikedo     DE   linio en dosiero/teksto
 salt linio kol dosiero/teksto
# Historio %s (de plej nova al plej malnova):

# Linioj komencantaj per |, kopiitaj sen ŝanĝo:

# Listo de bufroj:

# Markoj de dosiero:

# Historio de markoj en dosieroj (de plej nova al plej malnova):

# Saltlisto (plej novaj unue):

# Lasta serĉa ŝablono %s:
~
# Lasta anstataŭigita ĉeno:
$
# Reĝistroj:

# mallokaj variabloj:

(1) Alia programo eble redaktas la saman dosieron. Se jes, estu singarda
    por ne havi du malsamajn aperojn de la sama dosiero, kiam vi faros
    ŝanĝojn. Eliru aŭ daŭrigu singarde.

(Indas konservi tiun dosieron per alia nomo

--- Aŭto-Komandoj ---
--- Mallokaj opcioj ---
--- Valoroj de lokaj opcioj ---
--- Menuoj ---
--- Opcioj ---
--- Reĝistroj ---
--- Emfazaj simbolaĵoj ---
--- Sintakseroj ---
--- Eroj de sintaksa sinkronigo ---
--- Kodoj de terminalo ---
--- Klavoj de terminalo ---
Argumentoj agnoskitaj de gvim (versio Athena):

Argumentoj agnoskitaj de gvim (versio GTK+):

Argumentoj agnoskitaj de gvim (versio Motif):

Argumentoj agnoskitaj de gvim (versio neXtaw):

Granda versio 
Ne eblas krei duktojn

Ne eblas plenumi ŝelon 
Ne eblas plenumi ŝelon sh

Ne eblas forki

Komando terminigita

Kompilita 
Ne povis akiri kuntekston de sekureco por 
Ne povis ŝalti kuntekston de sekureco por 
Ekstraj flikaĵoj: 
Trovis permutodosieron .swp kun la nomo "
Grandega versio 
Se vi tajpis novan ŝlosilon de ĉifrado sed ne skribis la tekstan dosieron,
Se vi skribis la tekstan dosieron post ŝanĝo de la ŝlosilo de ĉifrado, premu enenklavon
Flikaĵoj inkluzivitaj: 
Grafika versio MS-Vindozo 32-bitoj
Versio konzola MS-Vindozo 32-bitoj
Grafika versio MS-Vindozo 64-bitoj
Versio konzola MS-Vindozo 64-bitoj
Versio Mak OS X (unikso)
Versio Mak OS X
Versio Mak OS
Eble neniu ŝanĝo estis farita aŭ Vim ne ĝisdatigis la permutodosieron .swp.
Pliaj informoj per: "vim -h"

Normala versio 
Versio OpenVMS
Malgranda versio 
Malgrandega versio 
Vim: Alvenis X eraro

AVERTO: Originala dosiero estas eble perdita aŭ difekta

Kie uskleco estas ignorita antaŭaldonu / por igi flagon majuskla
La dosiero .swp nun forviŝindas.


[bajtoj] totalaj disponigitaj/maldisponigitaj %lu-%lu, nun uzataj %lu, kulmina uzo %lu

ŝanĝo  linio kol teksto
tajpu la novan ŝlosilon de ĉifrado.
mark linio kol dosiero/teksto
ŝelo liveris 
sinkronigo per eroj
por uzi la saman ŝlosilon por la teksta dosiero kaj permuto dosiero .swp                                  por defaŭltoj de Vim                                   por du reĝimoj                     dato:        posedata de:          [nemalfermebla]         [nelegebla]         [ne aspektas kiel permutodosiero .swp de Vim]         [de Vim versio 3.0]        dosiernomo:            dosiero de defaŭltoj: "     -- nenio --
      PLI NOVA ol permutodosiero .swp!
         dosiero exrc de uzanto: "        dosiero vimrc de uzanto: "    Se veras, uzu ":recover" aŭ "vim -r     Se vi jam faris ĝin, forviŝu la permutodosieron .swp "    linio=%ld  id=%d  nomo=%s       dosiero de sistema menuo: "       dosiero gvimrc de uzanto: "   En la aktuala dosierujo:
   En dosierujo    Uzado de specifita nomo:
    dato:  komputila nomo:           sistema dosiero vimrc: "nro pri tipo etikedo  (Jam listigita)     2-a dosiero exrc de uzanto: "  SENCIMIGA MUNTO  Ebloj inkluzivitaj (+) aŭ ne (-):
  NETROVITA  TOTALO    NOMBRO  KONGRUO PLEJ MALRAPID  MEZA   NOMO               ŜABLONO  Uzo de etikedo kun malsama uskleco!               defaŭlto de $VIM: "         sistema dosiero gvimrc: " # pid    nomo de datumbazo                   prefiksa vojo
 (Interrompita)  (NETROVITA) (enhavas antaŭe listigitajn kongruojn) (enmeto) (enmeto) Rulumo (^E/^Y) (forviŝita linio) (nesubtenata) (algluo) (anstataŭigo) (anstataŭigo) Rulumo (^E/^Y) (ankoraŭ ruliĝas) (v-anstataŭigo)    2-a dosiero vimrc de uzanto: "    3-a dosiero vimrc de uzanto: " < "%.*s" Aldonanta araba ERARO DE KONVERTO Kompletigo de komanda linio (^V^N^P) Kopio %d de %d Kompletigo de difino (^D^N^P) Kompletigo de vortaro (^K^N^P) MALSUKCESIS Kompletigo de dosiernomo (^F^N^P) hebrea ENMETO Kompletigo loka de ŝlosilvorto (^N/^P) Kompletigo de ŝlosilvorto (^N^P) Kompletigo Omni (^O^N^P) Kompletigo de ŝablona dosierindiko (^N^P) ANSTATAŬIGO INVERSI APARTIGO APARTIGITA BLOKO APARTIGITA LINIO SPACETO/d/j: ekrano/paĝo/sub linio, b/u/k: supre, q: eliri  Sugesto de literumo (s^N^P) Kompletigo de etikedo (^]^N^P) Kompletigo de tezaŭro (^T^N^P) Kompletigo difinita de uzanto (^U^N^P) VIDUMA VIDUMA BLOKO VIDUMA LINIO V-ANSTATAŬIGO Kompletigo de tuta linio (^L^N^P)[Modifita] [a] [s] Reĝimo ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) postaldonita(j) ne uzeblas per tiu komputilo.
 ne uzeblas per tiu versio de vim.
         defaŭlto de VIMRUNTIME: " difektiĝis (paĝa grando pli malgranda ol minimuma valoro).
 en linio %ld; informo en "%c tipo de dosiero
 liniavancoj linioj antaŭ supra linio markoj malnovaj dosieroj en %ld linioj en 1 linio aŭ pli liveris
 vim [argumentoj]  kun subteno de OLE skribita(j)"
    por eviti tiun mesaĝon.
"
    por restaŭri la ŝanĝojn (vidu ":help recovery").
" jam ekzistas!# Tiu dosiero viminfo estis kreita de Vim %s.
# Valoro de 'encoding' kiam tiu dosiero estis kreita
# Vi povas redakti ĝin se vi estas singarda.

%-5s: %s%*s (Uzo: %s)%3d  %s %s  linio %ld%d bufroj forviŝitaj%d bufroj malŝargitaj%d bufroj detruitaj%d ripetita(j) vorto(j) en %s%d redaktendaj dosieroj
%d pliaj redaktendaj dosieroj. Ĉu tamen eliri?%d de %d redaktita(j)%ld %s; %s #%ld  %s%ld Kolumnoj; %ld malpliaj linioj%ld linioj %sitaj %d foje%ld linio %sita 1 foje%ld linioj --%d%%--%ld linioj ŝanĝitaj%ld linioj filtritaj%ld linioj krommarĝenitaj %ld linioj movitaj%ld krommarĝenendaj linioj... %ld linioj kopiitaj%s%ld linioj, %ld kongruoj%ld pliaj liniojantaŭ %ld sekundoj%ld anstataŭigoj%lld signoj%s Aŭtokomandoj por "%s"%s ĉesigita%s ne konservita(j)%s linio %ld%s iĝis atendanta(j)%s daŭrigita(j)%s liveras #%ld%s liveras %sValoro de %s malsamas ol tiu en alia dosiero .aff%s, linio %ld%slisto de eraroj %d de %d; %d eraroj%sviminfo: %s en linio: &Rezigni&Forlasi&Filtri&Helpo&Bone&Bone
&Rezigni&Bone
Ŝ&argi Dosieron&Bone&Malfermi nurlegreĝime
Tamen &redakti
Res&taŭri
&Forviŝi
&Eliri
Ĉe&sigi&Malfermi nurlegreĝime
Tamen &redakti
Res&taŭri
&Eliri
Ĉe&sigi&Anstataŭigi&Malfari&Jes
&Ne&Jes
&Ne
&Rezigni&Jes
&Ne
&Konservi Ĉion
&Forlasi Ĉion
&Rezigni' nekonata. Haveblaj terminaloj estas:'-nb' ne uzeblas: malŝaltita dum kompilado
La opcio 'dictionary' estas malplenaopcio 'history' estas nulLa opcio 'readonly' estas ŝaltita por "%s".
Ĉu vi tamen volas skribi?La opcio 'thesaurus' estas malplena(%d de %d)%s%s: (+%ld por BOM)(2) Redakta seanco de tiu dosiero kolapsis.
(Interrompita) (Nevalida)(NFA) NE POVIS MALFERMI %s!+			Komenci ĉe la fino de la dosiero+<numL>		Komenci ĉe linio <numL>+reverse		Ne uzi inversan videon (ankaŭ: +rv),
aŭ la dosiero estas difekta.-                legi tekston el stdin--			Nur dosiernomoj malantaŭ tio-- Pli ---- Serĉanta...--- Inkluzivitaj dosieroj --Forviŝita----Neniu linio en bufro----clean		'nocompatible', defaŭltaj agordoj de Vim, neniu viminfo--cmd <komando>	Plenumi <komando>-n antaŭ ol ŝargi iun ajn dosieron vimrc--cmd argumento--echo-wid		Igas gvim afiŝi la identigilon de vindozo sur stdout--literal		Ne malvolvi ĵokerojn--noplugin		Ne ŝargi kromaĵajn skriptojn--not-a-term		Preterpasi averton por enigo/eligo, kiu ne estas terminalo--remote <dosieroj>	Redakti <dosieroj>-n en Vim-servilo se eblas--remote-expr <espr>	Komputi <espr> en Vim-servilo kaj afiŝi rezulton--remote-send <klavoj> Sendi <klavoj>-n al Vim-servilo kaj eliri--remote-silent <dosieroj>  Same, sed ne plendi se ne estas servilo--remote-tab[-wait][-silent] <dosieroj> Kiel --remote sed uzi langeton por ĉiu dosiero--remote-wait <dosieroj>  Kiel --remote sed atendi ĝis dosieroj estas redaktitaj--remote-wait-silent <dosieroj> Same, sed ne plendi se ne estas servilo--role <rolo>	Doni unikan rolon por identigi la ĉefan fenestron--serverlist		Listigi haveblajn nomojn de Vim-serviloj kaj eliri--servername <nomo>	Sendu al/iĝi la Vim-servilo <nomo>--socketid <xid>	Malfermi Vim en alia GTK fenestraĵo--startuptime <dosiero>  Skribi mesaĝojn de komenca tempomezurado al <dosiero>--ttyfail		Eliri se la eniro aŭ eliro ne estas terminalo--version		Afiŝi informon de versio kaj eliri--windowid <HWND>	Malfermi Vim en alia win32 fenestraĵo-A			Komenci en araba reĝimo-C			Kongrua kun Vi: 'compatible'-D			Sencimiga reĝimo-E			Plibonigita Ex-reĝimo-F			Komenci en persa reĝimo-H			Komenci en hebrea reĝimo-L			Kiel -r-M			Ŝanĝoj al teksto nepermeseblaj-N			Ne tute kongrua kun Vi: 'nocompatible'-O[N]		Kiel -o sed dividi vertikale-P <gepatra titolo>	Malfermi Vim en gepatra aplikaĵo-R			Nurlegebla reĝimo (kiel "view")-S <seanco>		Ruli dosieron <seanco>-n post kiam la unua dosiero ŝargiĝis-T <terminalo>	Agordi terminalon al <terminalo>-U <gvimrc>		Uzi <gvimrc> anstataŭ iun ajn .gvimrc-V[N][dosiernomo]	Esti babilema [nivelo N] [konservi mesaĝojn al dosiernomo]-W <eligaskripto>	Skribi ĉiujn tajpitajn komandojn al dosiero <eligaskripto>-X			Ne konekti al X-servilo-Z			Limigita reĝimo (kiel "rvim")-b			Duuma reĝimo-background <koloro>	Uzi <koloro>-n por la fona koloro (ankaŭ: -bg)-boldfont <tiparo>	Uzi <tiparo>-n por grasa teksto-borderwidth <larĝo>	Uzi <larĝo>-n kiel larĝo de bordero (ankaŭ: -bw)-c <komando>		Plenumi <komando>-n post kiam la unua dosiero ŝargiĝis-c argumento-d			Kompara reĝimo (kiel "vimdiff")-dev <aparatdosiero>		Uzi <aparatdosiero>-n por eneligo-display <ekrano>	Konekti Vim al tiu X-servilo-display <ekrano>	Lanĉi vim sur <ekrano>-display <ekrano>	Lanĉi Vim sur tiu <ekrano> (ankaŭ: --display)-e			Reĝimo Ex (kiel "ex")-f			Ne uzi newcli por malfermi fenestrojn-f  aŭ  --nofork	Malfono: ne forki kiam lanĉas grafikan interfacon-font <tiparo>	Uzi <tiparo>-n por normala teksto (ankaŭ: -fn)-foreground <koloro>	Uzi <koloro>-n por la malfona koloro (ankaŭ: -fg)-g			Ruli per grafika interfaco (kiel "gvim")-geometry <geom>	Uzi <geom> kiel komenca geometrio (ankaŭ: -geom)-h  aŭ  --help	Afiŝi Helpon (tiun mesaĝon) kaj eliri-i <viminfo>		Uzi <viminfo> anstataŭ .viminfo-iconic		Lanĉi vim piktograme-italicfont <tiparo>	Uzi <tiparo>-n por kursiva teksto-l			Reĝimo Lisp-m			Ŝanĝoj (skribo al dosieroj) nepermeseblaj-menuheight <alto>	Uzi <alto>-n kiel alto de menuzona alto (ankaŭ: -mh)-n			Neniu permutodosiero .swp, uzas nur memoron-o[N]		Malfermi N fenestrojn (defaŭlto: po unu por ĉiu dosiero)-p[N]		Malfermi N langetojn (defaŭlto: po unu por ĉiu dosiero)-q [erardosiero] redakti dosieron kun unua eraro-r			Listigi permutodosierojn .swp kaj eliri-r (kun dosiernomo)	Restaŭri kolapsintan seancon-register		Registri tiun gvim al OLE-reverse		Uzi inversan videon (ankaŭ: -rv)-s			Silenta (stapla) reĝimo (nur por "ex")-s <skripto>		Legi komandojn en Normala reĝimo el dosiero <skripto>-scrollbarwidth <larĝo>  Uzi <larĝo>-n kiel larĝo de rulumskalo (ankaŭ: -sw)-t etikedo       redakti dosieron kie etikedo estas difinata-u <vimrc>		Uzi <vimrc> anstataŭ iun ajn .vimrc-unregister		Malregistri gvim de OLE-v			Reĝimo Vi (kiel "vi")-w <eligaskripto>	Postaldoni ĉiujn tajpitajn komandojn al dosiero <eligaskripto>-x			Redakti ĉifradan dosieron-xrm <rimedo>	Agordi la specifitan <rimedo>-n-y			Facila reĝimo (kiel "evim", senreĝima)Linio / ignorita en %s linio %d: %sLinio /encoding= post vorto ignorita en %s linio %d: %s1 bufro forviŝita1 bufro malŝargita1 bufro detruita1 signo1 linio %sita %d foje1 linio %sita 1 foje1 linio --%d%%--1 linio ŝanĝita1 linio krommarĝenita 1 malplia linio1 linio movita1 linio kopiita%s1 linio, 1 kongruo1 plia redaktenda dosiero. Ĉu tamen eliri?1 plia linio1 anstataŭigo   2-a dosiero gvimrc de uzanto: "   3-a dosiero gvimrc de uzanto: ": Sendado de esprimo malsukcesis.
: Sendo malsukcesis.
: Sendo malsukcesis. Provo de loka plenumo
; kongruo <%s>%s%s  %d,  Deksesuma %02x,  Okuma %03o<ne eblas malfermi> <malplena>> %d, Deksesuma %04x, Okuma %o> %d, Deksesuma %08x, Okuma %o??? ekde tie ĝis ???FINO linioj estas eble difektaj??? ekde tie ĝis ???FINO linioj estas eble enmetitaj/forviŝitaj???MANKAS BLOKO???MALPLENA BLOKO???FINO???NOMBRO DE LINIOJ NE ĜUSTAS???LINIOJ MANKANTAJ???MULTAJ LINIOJ MANKASANCHOR_BUF_SIZE tro malgranda.Aldoni novan datumbazonAldonis datumbazon de cscope %sAfikso ankaŭ uzata por BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST en %s linio %d: %sNomo de afikso tro longa en %s linio %d: %sĈioReŝargo de ĉiuj datumbazoj de cscopeĈiuj inkluzivitaj dosieroj estis trovitajJam al la plej nova ŝanĝoJam al la plej malnova ŝanĝoJam nur unu langetoJam nur unu fenestroPostaldoni dosieronArgumento mankas malantaŭĈe linioProvas malfermi skriptan dosieron denove: "Reveninta al originaloInversa amplekso donita, permuteblasIĝu registrita uzanto de Vim!Bip!Antaŭ bajto %ldSuboAmbaŭ SAL kaj SOFO linioj en %sKontrolpunkto en "%s%s" linio %ldNevalida kondiĉo en %s linio %d: %sCOMPOUNDSYLMAX uzita sen SYLLABLEAlvokas ŝelon por plenumi: "%s"Ne eblas trovi provizoran dosieron por konvertiRezigniNe eblas krei Ne eblas plenumi Ne povas malfermi $VIMRUNTIME/rgb.txtNe eblas malfermi NIL:
Ne eblas malfermi dosieron "%s"Ne eblas malfermi en lega reĝimo: "Ne eblas malfermi por eligo de skripto: "Ne eblas ruli dosierujon: "%s"Ne eblis skribi malfaran dosieron en iu dosiero ajn de 'undodir'Anstataŭigi "%.*s" per:Fermi langetonKol %s de %s; Linio %ld de %ld; Vorto %lld de %lld; Bajto %lld de %lldKol %s de %s; Linio %ld de %ld; Vorto %lld de %lld; Signo %lld de %lld; Bajto %lld de %lldKomanda linioKompilado: Kompililo: Densigis %d de %d nodoj; %d (%d%%) restantajDensigas arbon de vortoj...Malsukceso dum konverto de vorto en %s linio %d: %sKonverto en %s nesubtenataKonverto en %s nesubtenata: de %s al %sKonverto kun 'charconvert' malsukcesisNe eblis ripari referencojn de funkcioj al la DLL!Ne povis akiri kuntekston de sekureco %s por %s. Gi nun estas forigata!Ne eblis ŝargi vim32.dll!Ne povis malfermi la provizoran protokolan dosieron por skribi Ne povis malfermi provizoran protokolan dosieron por skribi, nun montras sur stderr ...Ne povis ŝalti kuntekston de sekureco %s por %sEtikedo de cscope: %sAktuala %slingvo: "%s"Sencimiga linioDifino de COMPOUNDFORBIDFLAG post ano PFX povas doni neĝustajn rezultojn en %s linio %dDifino de COMPOUNDPERMITFLAG post ano PFX povas doni neĝustajn rezultojn en %s linio %dKompari per VimMalsama flago de kombino en daŭra bloko de afikso en %s linio %d: %sDirektoDosierujojDosierujo	*.nenio
Ĉu vi vere volas skribi al ĝiFarita!Duobla ; en listo de variablojSubenRipetita linio /encoding= ignorita en %s linio %d: %sRipetita linio /regions= ignorita en %s linio %d: %sRipetita afikso en %s linio %d: %sRipetita signo en MAP en %s linio %dRipetita kamponomo: %sRipetita vorto en %s linio %d: %sE100: Neniu alia bufro en dosierdiferenca reĝimoE101: Pli ol du bufroj en dosierdiferenca reĝimo, ne scias kiun uziE102: Ne eblas trovi bufron "%s"E103: Bufro "%s" ne estas en dosierdiferenca reĝimoE104: Eskapsigno nepermesebla en duliteraĵoE105: Uzo de ":loadkeymap" nur eblas en vim-skriptoE107: Mankas krampoj: %sE108: Ne estas tia variablo: "%s"E109: Mankas ':' malantaŭ '?'E10: \ devus esti sekvita de /, ? aŭ &E110: Mankas ')'E111: Mankas ']'E112: Mankas nomo de opcio: %sE113: Nekonata opcio: %sE114: Mankas citilo: %sE115: Mankas citilo: %sE116: Nevalidaj argumentoj por funkcio: %sE117: Nekonata funkcio: %sE118: Tro da argumentoj por funkcio: %sE119: Ne sufiĉe da argumentoj por funkcio: %sE11: Nevalida en fenestro de komanda linio; <CR> plenumas, CTRL-C elirasE120: <SID> estas uzata ekster kunteksto de skripto: %sE121: Nedifinita variablo: %sE122: La funkcio %s jam ekzistas (aldonu ! por anstataŭigi ĝin)E123: Nedifinita funkcio: %sE124: Mankas '(': %sE125: Nevalida argumento: %sE126: Mankas ":endfunction"E127: Ne eblas redifini funkcion %s: Estas nuntempe uzataE128: Nomo de funkcio devas eki per majusklo aŭ per "s:": %sE129: Nomo de funkcio bezonataE12: Nepermesebla komando el exrc/vimrc en aktuala dosierujo aŭ etikeda serĉoE130: Nekonata funkcio: %sE131: Ne eblas forviŝi funkcion %s: Estas nuntempe uzataE132: Profundo de funkcia alvoko superas 'maxfuncdepth'E133: ":return" ekster funkcioE134: Movas liniojn en ilin memE135: *Filtraj* Aŭtokomandoj ne rajtas ŝanĝi aktualan bufronE136: viminfo: Tro da eraroj, nun ignoras la reston de la dosieroE137: Dosiero viminfo ne skribeblas: %sE138: Ne eblas skribi dosieron viminfo %s!E139: Dosiero estas ŝargita en alia bufroE13: Dosiero ekzistas (aldonu ! por transpasi)E140: Uzu ! por skribi partan bufronE141: Neniu dosiernomo de bufro %ldE142: Dosiero ne skribita: Skribo malŝaltita per la opcio 'write'E143: Aŭtokomandoj neatendite forviŝis novan bufron %sE144: nenumera argumento de :zE145: Ŝelkomandoj nepermeseblaj en rvimE146: Ne eblas limigi regulesprimon per literojE147: Ne eblas fari ":global" rekursie kun ampleksoE148: Regulesprimo mankas el globalE149: Bedaŭrinde estas neniu helpo por %sE14: Nevalida adresoE150: Ne estas dosierujo: %sE151: Neniu kongruo: %sE152: Ne eblas malfermi %s en skribreĝimoE153: Ne eblas malfermi %s en legreĝimoE154: Ripetita etikedo "%s" en dosiero %s/%sE155: Nekonata simbolo: %sE156: Mankas nomo de simboloE157: Nevalida identigilo de simbolo: %ldE158: Nevalida nomo de bufro: %sE159: Mankas numero de simboloE15: Nevalida esprimo: %sE160: Nekonata simbola komando: %sE161: Kontrolpunkto ne trovita: %sE162: Neniu skribo de post la lasta ŝanĝo por bufro "%s"E163: Estas nur unu redaktenda dosieroE164: Ne eblas iri antaŭ ol la unuan dosieronE165: Ne eblas iri preter la lastan dosieronE166: Ne eblas malfermi ligitan dosieron por skribiE167: ":scriptencoding" uzita ekster rulita dosieroE168: ":finish" uzita ekster rulita dosieroE169: Komando tro rekursiaE16: Nevalida ampleksoE170: Mankas ":endfor"E170: Mankas ":endwhile"E171: Mankas ":endif"E172: Nur unu dosiernomo permeseblaE173: %ld pliaj redaktendaj dosierojE173: 1 plia redaktenda dosieroE174: La komando jam ekzistas: aldonu ! por anstataŭigi ĝinE175: Neniu atributo specifitaE176: Nevalida nombro de argumentojE177: Kvantoro ne povas aperi dufojeE178: Nevalida defaŭlta valoro de kvantoroE179: argumento bezonata por -addrE179: argumento bezonata por -completeE17: "%s" estas dosierujoE180: Nevalida valoro de tipo de adreso: %sE180: Nevalida valoro de kompletigo: %sE181: Nevalida atributo: %sE182: Nevalida komanda nomoE183: Komandoj difinataj de uzanto devas eki per majuskloE184: Neniu komando-difinita-de-uzanto kiel: %sE185: Ne eblas trovi agordaron de koloroj '%s'E186: Neniu antaŭa dosierujoE187: NekonataE188: Akiro de pozicio de fenestro ne estas realigita por tiu platformoE189: "%s" ekzistas (aldonu ! por transpasi)E18: Neatenditaj signoj en ":let"E190: Ne eblas malfermi "%s" por skribiE191: Argumento devas esti litero, citilo aŭ retrocitiloE192: Tro profunda rekursia alvoko de ":normal"E193: ":endfunction" ekster funkcioE194: Neniu alterna dosiernomo por anstataŭigi al '#'E195: Ne eblas malfermi dosieron viminfo en lega reĝimoE196: Neniu duliteraĵo en tiu versioE197: Ne eblas ŝanĝi la lingvon al "%s"E198: cmd_pchar preter la longo de komandoE199: Aktiva fenestro aŭ bufro forviŝitaE19: Marko havas nevalidan numeron de linioE200: La aŭtokomandoj *ReadPre igis la dosieron nelegeblaE201: La aŭtokomandoj *ReadPre ne rajtas ŝanĝi la aktualan bufronE202: Konverto igis la dosieron nelegebla!E203: Aŭtokomandoj forviŝis aŭ malŝargis la skribendan bufronE204: Aŭtokomando ŝanĝis la nombron de linioj neatenditeE205: Patchmode: ne eblas konservi originalan dosieronE206: patchmode: ne eblas tuŝi malplenan originalan dosieronE207: Ne eblas forviŝi restaŭrkopionE208: Eraro dum skribo de "%s"E209: Eraro dum fermo de "%s"E20: Marko ne estas agorditaE210: Eraro dum lego de "%s"E211: Dosiero "%s" ne plu haveblasE212: Ne eblas malfermi la dosieron por skribiE213: Ne eblas konverti (aldonu ! por skribi sen konverto)E214: Ne eblas trovi provizoran dosieron por skribiE215: Nevalida signo malantaŭ *: %sE216: Ne estas tia evento: %sE216: Ne ekzistas tia grupo aŭ evento: %sE217: Ne eblas plenumi aŭtokomandojn por ĈIUJ eventojE218: aŭtokomando tro ingitaE219: Mankas {.E21: Ne eblas fari ŝanĝojn, 'modifiable' estas malŝaltitaE220: Mankas }.E222: Aldoni al lega bufroE223: rekursia mapoE224: malloka mallongigo jam ekzistas por %sE225: malloka mapo jam ekzistas por %sE226: mallongigo jam ekzistas por %sE227: mapo jam ekzistas por %sE228: makemap: Nevalida reĝimoE229: Ne eblas lanĉi la grafikan interfaconE22: Tro profunde ingitaj skriptojE230: Ne eblas legi el "%s"E231: 'guifontwide' nevalidaE232: Ne eblas krei BalloonEval kun ambaŭ mesaĝo kaj reagfunkcioE233: ne eblas malfermi vidigonE234: Nekonata familio de tiparo: %sE235: Nekonata tiparo: %sE236: La tiparo "%s" ne estas egallarĝaE237: Elekto de presilo malsukcesisE238: Eraro de presado: %sE239: Nevalida teksto de simbolo: %sE23: Neniu alterna dosieroE240: Neniu konekto al X-serviloE241: Ne eblas sendi al %sE243: Ne subtenata argumento: "-%s"; Uzu la version OLE.E244: Nevalida nomo de signaro "%s" en nomo de tiparo "%s"E244: Nevalida nomo de kvalito "%s" en nomo de tiparo "%s"E245: Nevalida signo '%c' en nomo de tiparo "%s"E246: Aŭtokomando FileChangedShell forviŝis bufronE247: neniu registrita servilo nomita "%s"E248: Sendo de komando al cela programo malsukcesisE24: Ne estas tia mallongigoE250: Tiparoj de tiuj signaroj mankas en aro de tiparo %s:E251: Ecoj de registro de apero de VIM estas nevalide formata. Forviŝita!E252: Nomo de tiparo: %sE253: Nomo de tiparo: %sE254: Ne eblas disponigi koloron %sE255: Ne eblis legi datumojn de simboloj!E256: ERARO en aŭtomato de korea alfabetoE257: cstag: etikedo netrovitaE258: Ne eblas sendi al klientoE259: neniu kongruo trovita por serĉo per cscope %s de %sE25: Grafika interfaco ne uzeblas: Malŝaltita dum kompiladoE261: konekto cscope %s netrovitaE262: eraro dum legado de konekto de cscope %ldE263: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne ŝargeblis.E264: Pitono: Eraro de pravalorizo de eneligaj objektojE265: $_ devas esti apero de ĈenoE266: Bedaŭrinde tiu komando estas malŝaltita, la biblioteko Ruby ne ŝargeblis.E267: "return" neatenditaE268: "next" neatenditaE269: "break" neatenditaE26: La hebrea ne uzeblas: Malŝaltita dum kompilado
E270: "redo" neatenditaE271: "retry" ekster klaŭzo "rescue"E272: netraktita esceptoE273: nekonata stato de longjmp: %dE277: Ne eblas legi respondon de serviloE27: La persa ne uzeblas: Malŝaltita dum kompilado
E280: NERIPAREBLA TCL-ERARO: reflist difekta!? Bv. retpoŝti al vim-dev@vim.orgE282: Ne eblas legi el "%s"E283: Neniu marko kongruas kun "%s"E284: Ne eblas agordi valorojn de ICE285: Kreado de eniga kunteksto malsukcesisE286: Malfermo de eniga metodo malsukcesisE287: Averto: Ne eblis agordi detruan reagfunkcion al IME288: eniga metodo subtenas neniun stilonE289: eniga metodo ne subtenas mian antaŭredaktan tiponE28: Neniu grupo de emfazo kiel: %sE293: bloko ne estis ŝlositaE294: Eraro de enpoziciigo dum lego de permutodosiero .swpE295: Eraro de lego en permutodosiero .swpE296: Eraro de enpoziciigo dum skribo de permutodosiero .swpE297: Skriberaro en permutodosiero .swpE298: Ĉu ne akiris blokon n-ro 0?E298: Ĉu ne akiris blokon n-ro 1?E298: Ĉu ne akiris blokon n-ro 2?E299: Plenumo de Perl esprimoj malpermesata en sabloludejo sen la modulo SafeE29: Ankoraŭ neniu enmetita tekstoE300: Permutodosiero .swp jam ekzistas (ĉu atako per simbola ligilo?)E301: Ve, perdis la permutodosieron .swp!!!E302: Ne eblis renomi la permutodosieron .swpE303: Ne eblas malfermi permutodosieron .swp de "%s", restaŭro neeblasE304: ml_upd_block0(): Ne akiris blokon 0??E305: Neniu permutodosiero .swp trovita por %sE306: Ne eblas malfermi %sE307: %s ne aspektas kiel permutodosiero .swp de VimE308: Averto: Originala dosiero eble ŝanĝiĝisE309: Ne eblas legi blokon 1 de %sE30: Neniu antaŭa komanda linioE310: Nevalida identigilo de bloko 1 (ĉu %s ne estas permutodosiero .swp?)E311: Restaŭro interrompitaE312: Eraroj dum restaŭro; rigardu liniojn komencantajn per ???E313: Ne eblas konservi, ne estas permutodosiero .swpE314: Konservo malsukcesisE315: ml_get: nevalida lnum: %ldE316: ml_get: ne eblas trovi linion %ldE317: nevalida referenco de bloko idE317: nevalida referenco de bloko id 2E317: nevalida referenco de bloko id 3E317: nevalida referenco de bloko id 4E318: Ĉu ĝisdatigis tro da blokoj?E319: Bedaŭrinde, tiu komando ne haveblas en tiu versioE31: Neniu tiel mapoE320: Ne eblas trovi linion %ldE321: Ne eblis reŝargi "%s"E322: numero de linio ekster limoj: %ld preter la finoE323: nevalida nombro de linioj en bloko %ldE324: Ne eblas malfermi eligan PostSkriptan dosieronE325: ATENTOE326: Tro da dosieroj trovitajE327: Parto de vojo de menuero ne estas sub-menuoE328: Menuo nur ekzistas en alia reĝimoE329: Neniu menuo "%s"E32: Neniu dosiernomoE330: Vojo de menuo ne rajtas konduki al sub-menuoE331: Aldono de menueroj direkte al menuzono estas malpermesitaE332: Disigilo ne rajtas esti ero de vojo de menuoE333: Vojo de menuo devas konduki al menueroE334: Menuo netrovita: %sE335: Menuo ne estas difinita por reĝimo %sE336: Vojo de menuo devas konduki al sub-menuoE337: Menuo ne trovita - kontrolu nomojn de menuojE338: Bedaŭrinde ne estas dosierfoliumilo en konzola reĝimoE339: Ŝablono tro longaE33: Neniu antaŭa regulesprimo de anstataŭigoE340: Linio iĝas tro longaE341: Interna eraro: lalloc(%ld, )E342: Ne plu restas memoro! (disponigo de %lu bajtoj)E343: Nevalida vojo: '**[nombro]' devas esti ĉe la fino de la vojo aŭ sekvita de '%s'.E344: Ne eblas trovi dosierujon "%s" en cdpathE345: Ne eblas trovi dosieron "%s" en serĉvojoE346: Ne plu trovis dosierujon "%s" en cdpathE347: Ne plu trovis dosieron "%s" en serĉvojoE348: Neniu ĉeno sub la kursoroE349: Neniu identigilo sub la kursoroE34: Neniu antaŭa komandoE350: Ne eblas krei faldon per la aktuala 'foldmethod'E351: Ne eblas forviŝi faldon per la aktuala 'foldmethod'E352: Ne eblas forviŝi faldon per aktuala 'foldmethod'E353: Nenio en reĝistro %sE354: Nevalida nomo de reĝistro: '%s'E355: Nekonata opcio: %sE356: ERARO get_varpE357: 'langmap': Kongrua signo mankas por %sE358: 'langmap': Ekstraj signoj malantaŭ punktokomo: %sE359: Reĝimo de ekrano ne subtenataE35: Neniu antaŭa regulesprimoE360: Ne eblas plenumi ŝelon kun opcio -fE363: ŝablono uzas pli da memoro ol 'maxmempattern'E364: Alvoko al biblioteko malsukcesis por "%s()"E365: Presado de PostSkripta dosiero malsukcesisE367: Ne ekzistas tia grupo: "%s"E369: nevalida ano en %s%%[]E36: Ne sufiĉe da spacoE370: Ne eblis ŝargi bibliotekon %sE371: Netrovebla komandoE372: Tro da %%%c en formata ĉenoE373: Neatendita %%%c en formata ĉenoE374: Mankas ] en formata ĉenoE375: Nesubtenata %%%c en formata ĉenoE376: Nevalida %%%c en prefikso de formata ĉenoE377: Nevalida %%%c en formata ĉenoE378: 'errorformat' enhavas neniun ŝablononE379: Nomo de dosierujo mankas aŭ estas malplenaE37: Neniu skribo de post lasta ŝanĝoE37: Neniu skribo de post lasta ŝanĝo (aldonu ! por transpasi)E380: Ĉe la subo de stako de rapidriparoE381: Ĉe la supro de stako de rapidriparoE382: Ne eblas skribi, opcio 'buftype' estas ŝaltitaE383: Nevalida serĉenda ĉeno: %sE384: serĉo atingis SUPRON sen trovi: %sE385: serĉo atingis SUBON sen trovi: %sE386: Atendis '?' aŭ '/' malantaŭ ';'E387: Kongruo estas ĉe aktuala linioE388: Ne eblis trovi difinonE389: Ne eblis trovi ŝablononE38: Nula argumentoE390: Nevalida argumento: %sE391: Nenia sintaksa fasko: %sE392: Nenia sintaksa fasko: %sE393: La argumento "group[t]here" ne akcepteblas tieE394: Ne trovis regionan elementon por %sE395: La argumento "contains" ne akcepteblas tieE397: Dosiernomo bezonataE398: Mankas '=': %sE399: Ne sufiĉaj argumentoj: sintaksa regiono %sE39: Nombro atenditaE400: Neniu fasko specifitaE401: Disigilo de ŝablono netrovita: %sE402: Forĵetindaĵo malantaŭ ŝablono: %sE403: sintaksa sinkronigo: ŝablono de linia daŭrigo specifita dufojeE404: Nevalidaj argumentoj: %sE405: Mankas egalsigno: %sE406: Malplena argumento: %sE407: %s ne estas permesebla tieE408: %s devas esti la unua ano de la listo "contains"E409: Nekonata nomo de grupo: %sE40: Ne eblas malfermi eraran dosieron %sE410: Nevalida ":syntax" subkomando: %sE411: emfaza grupo netrovita: %sE412: Ne sufiĉaj argumentoj: ":highlight link %s"E413: Tro da argumentoj: ":highlight link %s"E414: grupo havas agordojn, ligilo de emfazo ignoritaE415: neatendita egalsigno: %sE416: mankas egalsigno: %sE417: mankas argumento: %sE418: Nevalida valoro: %sE419: Nekonata malfona koloroE41: Ne plu restas memoro!E420: Nekonata fona koloroE421: Kolora nomo aŭ nombro nerekonita: %sE422: kodo de terminalo estas tro longa: %sE423: Nevalida argumento: %sE424: Tro da malsamaj atributoj de emfazo uzatajE425: Ne eblas iri antaŭ la unuan kongruan etikedonE426: etikedo netrovita: %sE427: Estas nur unu kongrua etikedoE428: Ne eblas iri preter lastan kongruan etikedonE429: Dosiero "%s" ne ekzistasE42: Neniu eraroE430: Vojo de etikeda dosiero trunkita por %s
E431: Eraro de formato en etikeda dosiero "%s"E432: Etikeda dosiero ne estas ordigita: %sE433: Neniu etikeda dosieroE434: Ne eblas trovi ŝablonon de etikedoE435: Ne eblis trovi etikedon, nur divenas!E436: Neniu rikordo "%s" en termcapE437: kapablo de terminalo "cm" bezonataE438: u_undo: nevalidaj numeroj de liniojE439: listo de malfaro estas difektaE43: Difekta kongruenda ĉenoE440: linio de malfaro mankasE441: Ne estas antaŭvida fenestroE442: Ne eblas dividi supralivan kaj subdekstran samtempeE443: Ne eblas rotacii kiam alia fenestro estas dividitaE444: Ne eblas fermi la lastan fenestronE445: La alia fenestro enhavas ŝanĝojnE446: Neniu dosiernomo sub la kursoroE447: Ne eblas trovi dosieron "%s" en serĉvojoE448: Ne eblis ŝargi bibliotekan funkcion %sE449: Nevalida esprimo ricevitaE44: Difekta programo de regulesprimoE455: Eraro dum skribo de PostSkripta eliga dosieroE456: Dosiero de PostSkripta rimedo "%s.ps" ne troveblasE456: Dosiero de PostSkripta rimedo "cidfont.ps" ne troveblasE456: Dosiero de PostSkripta rimedo "prolog.ps" ne troveblasE456: Ne eblas malfermi dosieron "%s"E457: Ne eblas legi dosieron de PostSkripta rimedo "%s"E459: Ne eblas reiri al antaŭa dosierujoE45: La opcio 'readonly' estas ŝaltita '(aldonu ! por transpasi)E460: La rimeda forko estus perdita (aldonu ! por transpasi)E461: Nevalida nomo de variablo: %sE462: Ne eblis prepari por reŝargi "%s"E463: Regiono estas gardita, ne eblas ŝanĝiE464: Ambigua uzo de komando difinita de uzantoE465: ":winsize" bezonas du numerajn argumentojnE466: ":winpos" bezonas du numerajn argumentojnE467: Uzula kompletigo bezonas funkcian argumentonE468: Argumento de kompletigo nur permesebla por kompletigo difinita de uzantoE469: nevalida flago cscopequickfix %c de %cE46: Ne eblas ŝanĝi nurlegeblan variablon "%s"E470: komando ĉesigitaE471: Argumento bezonataE472: La komando malsukcesisE473: Interna eraroE474: Nevalida argumentoE475: Nevalida argumento: %sE476: Nevalida komandoE477: Neniu ! permeseblaE478: Ne paniku!E479: Neniu kongruoE47: Eraro dum legado de erardosieroE480: Neniu kongruo: %sE481: Amplekso nepermeseblaE482: Ne eblas krei dosieron %sE483: Ne eblas akiri provizoran dosiernomonE484: Ne eblas malfermi dosieron %sE485: Ne eblas legi dosieron %sE486: Ŝablono ne trovita: %sE487: La argumento devas esti pozitivaE488: Vostaj signojE48: Nepermesebla en sabloludejoE490: Neniu faldo trovitaE492: Ne estas redaktila komandoE493: Inversa amplekso donitaE494: Uzu w aŭ w>>E495: neniu dosiernomo de aŭtokomando por anstataŭigi al "<afile>"E496: neniu numero de bufro de aŭtokomando por anstataŭigi al "<abuf>"E497: neniu nomo de kongruo de aŭtokomando por anstataŭigi al "<amatch>"E498: neniu dosiernomo ":source" por anstataŭigi al "<sfile>"E499: Malplena dosiernomo por '%' aŭ '#', nur funkcias kun ":p:h"E49: Nevalida grando de rulumoE500: Liveras malplenan ĉenonE501: Ĉe fino-de-dosieroE505: "%s" estas nurlegebla (aldonu ! por transpasi)E505: %s estas nurlegebla (aldonu ! por transpasi)E506: Ne eblas skribi restaŭrkopion (aldonu ! por transpasi)E507: Eraro dum fermo de restaŭrkopio (aldonu ! transpasi)E508: Ne eblas legi restaŭrkopion (aldonu ! por transpasi)E509: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)E50: Tro da \z(E510: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)E511: nebeans jam konektataE512: Fermo malsukcesisE513: skriberaro, konverto malsukcesis (igu 'fenc' malplena por transpasi)E513: skriberaro, konverto malsukcesis en linio %ld (igu 'fenc' malplena  por transpasi)E514: skriberaro (ĉu plena dosiersistemo?)E515: Neniu bufro estis malŝargitaE516: Neniu bufro estis forviŝitaE517: Neniu bufro estis detruitaE518: Nekonata opcioE519: Opcio ne subtenataE51: Tro da %s(E520: Nepermesebla en reĝimlinioE521: Nombro bezonata malantaŭ =E521: Nombro bezonata: &%s = '%s'E522: Netrovita en termcapE523: Nepermesebla tieE524: Mankas dupunktoE525: Ĉeno de nula longoE526: Mankas nombro malantaŭ <%s>E527: Mankas komoE528: Devas specifi ' valoronE529: Ne eblas agordi 'term' al malplena ĉenoE52: Neekvilibra \z(E530: term ne ŝanĝeblas en grafika interfacoE531: Uzu ":gui" por lanĉi la grafikan interfaconE533: ne eblas elekti larĝan tiparonE534: Nevalida larĝa tiparoE535: Nevalida signo malantaŭ <%c>E536: komo bezonataE537: 'commentstring' devas esti malplena aŭ enhavi %sE538: Neniu muso subtenataE539: Nevalida signo <%s>E53: Neekvilibra %s%%(E540: '}' mankasE541: tro da elementojE542: misekvilibraj grupojE543: Nevalida kodpaĝoE544: Dosiero de klavmapo ne troveblasE545: Mankas dupunktoE546: Reĝimo nepermesataE547: Nevalida formo de muskursoroE548: cifero atendataE549: Nevalida procentoE54: Neekvilibra %s(E550: Mankas dupunktoE551: Nevalida komponentoE552: cifero atenditaE553: Ne plu estas erojE554: Sintaksa eraro en %s{...}E555: ĉe subo de stako de etikedojE556: ĉe supro de stako de etikedojE557: Ne eblas malfermi la dosieron termcapE558: Ne trovis rikordon de terminalo terminfoE559: Ne trovis rikordon de terminalo en termcapE55: Neekvilibra %sE560: Uzo: cs[cope] %sE561: nekonata tipo de serĉo de cscopeE562: Uzo: cstag <ident>E563: Eraro de statE563: Eraro de stat(%s): %dE564: %s ne estas dosierujo aŭ valida datumbazo de cscopeE566: Ne eblis krei duktojn de cscopeE567: neniu konekto al cscopeE568: ripetita datumbazo de cscope ne aldonitaE570: neriparebla eraro en cs_manage_matchesE571: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko Tcl ne ŝargeblis.E572: elira kodo %dE573: Nevalida identigilo de servilo uzita: %sE574: Nekonata tipo de reĝistro %dE579: ":if" tro profunde ingitaE580: ":endif" sen ":if"E581: ":else" sen ":if"E582: ":elseif" sen ":if"E583: pluraj ":else"E584: ":elseif" malantaŭ ":else"E585: ":while/:for" ingita tro profundeE586: ":continue" sen ":while" aŭ ":for"E587: ":break" sen ":while" aŭ ":for"E588: ":endfor" sen ":for"E588: ":endwhile" sen ":while"E589: 'backupext' kaj 'patchmode' estas egalajE590: Antaŭvida fenestro jam ekzistasE591: 'winheight' ne rajtas esti malpli ol 'winminheight'E592: 'winwidth' ne rajtas esti malpli ol 'winminwidth'E593: Bezonas almenaŭ %d liniojnE594: Bezonas almenaŭ %d kolumnojnE595: enhavas nepreseblan aŭ plurĉellarĝan signonE596: Nevalida(j) tiparo(j)E597: ne eblas elekti tiparonE598: Nevalida tiparoE599: Valoro de 'imactivatekey' estas nevalidaE59: nevalida signo malantaŭ %s@E600: Mankas ":endtry"E601: ":try" ingita tro profundeE602: ":endtry" sen ":try"E603: ":catch" sen ":try"E604: ":catch" malantaŭ ":finally"E605: Escepto nekaptita: %sE606: ":finally" sen ":try"E607: pluraj ":finally"E608: Ne eblas lanĉi (:throw) escepton kun prefikso 'Vim'E609: Eraro de cscope: %sE60: Tro da kompleksaj %s{...}-ojE612: Tro da simboloj estas difinitajE613: Nekonata tiparo de presilo: %sE614: vim_SelFile: ne eblas reveni al la aktuala dosierujoE615: vim_SelFile: ne eblas akiri aktualan dosierujonE616: vim_SelFile: ne eblas akiri tiparon %sE617: Ne ŝanĝeblas en la grafika interfaco GTK+ 2E618: "%s" ne estas dosiero de PostSkripta rimedoE619: "%s" ne estas subtenata dosiero de PostSkripta rimedoE61: Ingita %s*E620: Ne eblas konverti al la presa kodoprezento "%s"E621: "%s" dosiero de rimedo havas neĝustan versionE622: Ne eblis forki cscopeE623: Ne eblis naskigi procezon cscopeE624: Ne eblas malfermi dosieron "%s"E625: ne eblas malfermi datumbazon de cscope: %sE626: ne eblas akiri informojn pri la datumbazo de cscopeE62: Ingita %s%cE630: %s(): konservo dum nekonektitaE631: %s(): Konservo malsukcesisE63: nevalida uzo de \_E64: %s%c sekvas nenionE655: Tro da simbolaj ligiloj (ĉu estas ciklo?)E658: Konekto de NetBeans perdita por bufro %ldE659: Ne eblas alvoki Pitonon rekursieE65: Nevalida retro-referencoE661: Bedaŭrinde estas neniu helpo '%s' por %sE662: Ĉe komenco de ŝanĝlistoE663: Ĉe fino de ŝanĝlistoE664: Listo de ŝanĝoj estas malplenaE665: Ne eblas startigi grafikan interfacon, neniu valida tiparo trovitaE666: kompililo nesubtenata: %sE667: Fsync malsukcesisE668: Nevalida permeso de dosiero de informo de konekto NetBeans: "%s"E669: Nepresebla signo en nomo de grupoE66: \z( estas nepermesebla tieE670: Miksaĵo de kodoprezento de helpa dosiero en lingvo: %sE671: Ne eblas trovi titolon de fenestro "%s"E672: Ne eblas malfermi fenestron interne de aplikaĵo MDIE673: Nekongrua plurbajta kodoprezento kaj signaro.E674: printmbcharset ne rajtas esti malplena kun plurbajta kodoprezento.E675: Neniu defaŭlta tiparo specifita por plurbajta presado.E676: Neniu kongrua aŭtokomando por la bufro acwriteE677: Eraro dum skribo de provizora dosieroE678: Nevalida signo malantaŭ %s%%[dxouU]E679: rekursia buklo dum ŝargo de syncolor.vimE67: \z1 kaj aliaj estas nepermeseblaj tieE680: <bufro=%d>: nevalida numero de bufro E681: Bufro ne estas ŝargitaE682: Nevalida serĉa ŝablono aŭ disigiloE683: Dosiernomo mankas aŭ nevalida ŝablonoE684: indekso de listo ekster limoj: %ldE685: Interna eraro: %sE686: Argumento de %s devas esti ListoE687: Malpli da celoj ol ListerojE688: Pli da celoj ol ListerojE689: Nur eblas indeksi Liston aŭ VortaronE68: Nevalida signo malantaŭ \zE690: "in" mankas malantaŭ ":for"E691: Eblas nur kompari Liston kun ListoE692: Nevalida operacio de ListojE694: Nevalida operacio de Funcref-ojE695: Ne eblas indeksi FuncrefE696: Mankas komo en Listo: %sE697: Mankas fino de Listo ']': %sE698: variablo ingita tro profunde por fari kopionE699: Tro da argumentojE69: Mankas ] malantaŭ %s%%[E700: Nekonata funkcio: %sE701: Nevalida datumtipo de len()E702: Ordiga funkcio malsukcesisE703: Uzo de Funcref kiel NombroE704: Nomo de variablo Funcref devas finiĝi per majusklo: %sE705: Nomo de variablo konfliktas kun ekzistanta funkcio: %sE707: Nomo de funkcio konfliktas kun variablo: %sE708: [:] devas esti lasteE709: [:] bezonas listan valoronE70: Malplena %s%%[]E710: Lista valoro havas pli da eroj ol la celoE711: Lista valoro ne havas sufiĉe da erojE712: Argumento de %s devas esti Listo aŭ VortaroE713: Ne eblas uzi malplenan ŝlosilon de VortaroE714: Listo bezonataE715: Vortaro bezonataE716: Ŝlosilo malekzistas en Vortaro: %sE717: Rikordo de vortaro jam ekzistasE718: Funcref bezonataE719: Uzo de [:] ne eblas kun VortaroE71: Nevalida signo malantaŭ %s%%E720: Mankas dupunkto en la vortaro: %sE721: Ripetita ŝlosilo en la vortaro: "%s"E722: Mankas komo en la vortaro: %sE723: Mankas fino de vortaro '}': %sE724: variablo ingita tro profunde por vidigiE725: Alvoko de funkcio dict sen Vortaro: %sE726: Paŝo estas nulE727: Komenco preter finoE728: Uzo de Vortaro kiel NombroE729: uzo de Funcref kiel ĈenoE72: Eraro dum malfermo de permutodosiero .swpE730: uzo de Listo kiel ĈenoE731: uzo de Vortaro kiel ĈenoE732: Uzo de ":endfor" kun ":while"E733: Uzo de ":endwhile" kun ":for"E734: Nevalida datumtipo de variablo de %s=E735: Eblas nur kompari Vortaron kun VortaroE736: Nevalida operacio de VortaroE737: Ŝlosilo jam ekzistas: %sE738: Ne eblas listigi variablojn de %sE739: Ne eblas krei dosierujon %sE73: malplena stako de etikedoE740: Tro da argumentoj por funkcio: %sE741: Valoro estas ŝlosita: %sE742: Ne eblas ŝanĝi valoron de %sE743: variablo ingita tro profunde por (mal)ŝlosiE744: NetBeans ne permesas ŝanĝojn en nurlegeblaj dosierojE745: Uzo de Listo kiel NombroE746: Nomo de funkcio ne kongruas kun dosiernomo de skripto: %sE747: Ne eblas ŝanĝi dosierujon, bufro estas ŝanĝita (aldonu ! por transpasi)E748: Neniu reĝistro antaŭe uzataE749: malplena bufroE74: Komando tro kompleksaE750: Uzu unue ":profile start {dosiernomo}"E751: Nomo de eliga dosiero ne devas havi nomon de regionoE752: Neniu antaŭa literuma anstataŭigoE753: Netrovita: %sE754: Nur 8 regionoj subtenatajE755: Nevalida regiono en %sE756: Literumilo ne estas ŝaltitaE757: Tio ne ŝajnas esti literuma dosieroE758: Trunkita literuma dosieroE75: Nomo tro longaE760: Ne estas nombro de vortoj en %sE761: Eraro de formato en afiksa dosiero FOL, LOW aŭ UPPE762: Signo en FOL, LOW aŭ UPP estas ekster limojE763: Signoj de vorto malsamas tra literumaj dosierojE764: La opcio '%s' ne estas ŝaltitaE765: 'spellfile' ne havas %ld rikordojnE766: Ne sufiĉaj argumentoj por printf()E767: Tro da argumentoj al printf()E768: Permutodosiero .swp ekzistas: %s (:silent! por transpasi)E769: Mankas ] malantaŭ %s[E76: Tro da [E770: Nesubtenata sekcio en literuma dosieroE771: Malnova literuma dosiero, ĝisdatigo bezonataE772: Literuma dosiero estas por pli nova versio de VimE773: Buklo de simbolaj ligiloj por "%s"E774: 'operatorfunc' estas malplenaE775: Eval eblo ne disponeblasE776: Neniu listo de lokojE777: Ĉeno aŭ Listo atenditaE778: Tio ne ŝajnas esti dosiero .sug: %sE779: Malnova dosiero .sug, bezonas ĝisdatigon: %sE77: Tro da dosiernomojE780: Dosiero .sug estas por pli nova versio de Vim: %sE781: Dosiero .sug ne kongruas kun dosiero .spl: %sE782: eraro dum legado de dosiero .sug: %sE783: ripetita signo en rikordo MAPE784: Ne eblas fermi lastan langetonE785: complete() uzeblas nur en Enmeta reĝimoE786: Amplekso nepermeseblaE787: Bufro ŝanĝiĝis neatenditeE788: Ne eblas redakti alian bufron nunE789: Mankas ']': %sE78: Nekonata markoE790: undojoin estas nepermesebla post malfaroE791: Malplena rikordo en klavmapoE792: Malplena nomo de menuoE793: Neniu alia bufro en dosierdiferenca reĝimo estas modifeblaE794: Ne eblas agordi variablon en la sabloludejo: "%s"E795: Ne eblas forviŝi variablon %sE797: Aŭtokomando SpellFileMissing forviŝis bufronE798: ID estas rezervita por ":match": %ldE799: Nevalida ID: %ld (devas esti egala aŭ pli granda ol 1)E79: Ne eblas malvolvi ĵokerojnE800: La araba ne uzeblas: Malŝaltita dum kompilado
E801: ID jam uzata: %ldE802: Nevalida ID: %ld (devas esti egala aŭ pli granda ol 1)E803: ID netrovita: %ldE804: Ne eblas uzi '%' kun GlitpunktnombroE805: Uzo de Glitpunktnombro kiel NombroE806: uzo de Glitpunktnombro kiel ĈenoE807: Atendis Glitpunktnombron kiel argumenton de printf()E808: Nombro aŭ Glitpunktnombro bezonataE809: #< ne haveblas sen la eblo +evalE80: Eraro dum skribadoE810: Ne eblas legi aŭ skribi provizorajn dosierojnE811: Ne eblas ŝanĝi informon de bufro nunE812: Aŭtokomandoj ŝanĝis bufron aŭ nomon de bufroE813: Ne eblas fermi la fenestron de aŭtokomandojE814: Ne eblas fermi fenestron, nur la fenestro de aŭtokomandoj restusE815: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la bibliotekojn.E816: Ne eblas legi eliron de flikilo "patch"E817: Misuzo de pezkomenca/pezfina en blowfishE818: Testo de sha256 malsukcesisE819: Testo de blowfish malsukcesisE81: Uzo de <SID> ekster kunteksto de skriptoE820: sizeof(uint32_t) != 4E821: Dosiero estas ĉifrita per nekonata metodoE822: Ne eblas malfermi malfaran dosieron por legi: %sE823: Ne estas malfara dosiero: %sE824: Malkongrua malfara dosiero: %sE825: Difektita malfara dosiero (%s): %sE826: Malĉifrado de malfara dosiero malsukcesis: %sE827: Malfara dosiero estas ĉifrata: %sE828: Ne eblas malfermi la malfaran dosieron por skribi: %sE829: Skriberaro en malfara dosiero: %sE82: Ne eblas disponigi iun ajn bufron, nun eliras...E830: Malfara numero %ld netrovitaE831: bf_key_init() alvokita kun malplena pasvortoE832: Ne ĉifrata dosiero havas ĉifratan malfaran dosieron: %sE833: %s estas ĉifrata kaj tiu versio de Vim ne subtenas ĉifradonE834: Konfliktoj kun la valoro de 'listchars'E835: Konfliktoj kun la valoro de 'fillchars'E836: Vim ne povas plenumi :python post uzo de :py3E837: Vim ne povas plenumi :py3  post uzo de :pythonE838: netbeans ne estas subtenata kun tiu grafika interfacoE839: Kompletiga funkcio ŝanĝis la fenestronE83: Ne eblas disponigi bufron, nun uzas alian...E840: Kompletiga funkcio forviŝis tekstonE841: Rezervita nomo, neuzebla por komando difinita de uzantoE842: neniu uzebla numero de linio por "<slnum>"E843: Eraro dum ĝisdatigo de ĉifrada permutodosiero .swpE844: nevalida valoro de ccharE845: Ne sufiĉe da memoro, vortlisto estos nekompleta.E846: Klavkodo ne agorditaE847: Tro da sintaksaj inkluzivojE848: Tro da sintaksaj grupojE849: Tro da emfazaj kaj sintaksaj grupojE84: Neniu modifita bufro trovitaE850: Nevalida nomo de reĝistroE851: Malsukcesis krei novan procezon por la grafika interfacoE852: La ida procezo malsukcesis startigi la grafikan interfaconE853: Ripetita nomo de argumento: %sE854: tro longa vojo por kompletigoE855: Aŭtokomandoj haltigis komandonE858: Eval ne revenis kun valida python-objektoE859: Konverto de revena python-objekto al vim-valoro malsukcesisE85: Estas neniu listigita bufroE862: Ne eblas uzi g: ĉi tieE864: \%#= povas nur esti sekvita de 0, 1, aŭ 2. La aŭtomata motoro de regulesprimo estos uzata E865: (NFA) Trovis finon de regulesprimo tro frueE866: (NFA-regulesprimo) Mispoziciigita %cE867: (NFA) Nekonata operatoro '\%%%c'E867: (NFA) Nekonata operatoro '\z%c'E868: Eraro dum prekomputado de NFA kun ekvivalentoklaso!E869: (NFA) Nekonata operatoro '\@%c'E86: La bufro %ld ne ekzistasE870: (NFS-regulesprimo) Eraro dum legado de limoj de ripetoE871: (NFA-regulesprimo) Ne povas havi mult-selekton tuj post alia mult-selekto!E872: (NFA-regulesprimo) tro da '('E873: (NFA-regulesprimo) propra end-eraroE874: (NFA) Ne povis elpreni de la staplo!E875: (NFA-regulesprimo) (dum konverto de postmeto al NFA), restas tro da statoj en la staploE876: (NFA-regulesprimo) ne sufiĉa spaco por enmemorigi la tutan NFA E877: (NFA-regulesprimo) Nevalida klaso de signoj: %ldE878: (NFA) Ne povis asigni memoron por traigi branĉojn!E879: (NFA-regulesprimo) tro da \z(E87: Ne eblas iri preter la lastan bufronE881: Nombro de linioj ŝanĝiĝis neatenditeE882: kompara funkcio de uniq() malsukcesisE883: serĉa ŝablono kaj esprima reĝistro ne povas enhavi du aŭ pliajn liniojnE884: Nomo de funkcio ne povas enhavi dupunkton: %sE885: Ne eblas ŝanĝi simbolon %sE886: Ne eblas renomi dosieron viminfo al %s!E887` Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne ŝargeblis.E888: (NFA-regulesprimo) ne eblas ripeti %sE88: Ne eblas iri antaŭ la unuan bufronE890: vosta signo malantaŭ ']': %s]%sE891: Uzo de Funcref kiel GlitpunktnombroE892: Uzo de Ĉeno kiel GlitpunktnombroE893: Uzo de Listo kiel GlitpunktnombroE894: Uzo de Vortaro kiel GlitpunktnombroE895: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la modulon de MzScheme racket/base.E898: gethostbyname() en channel_open()E89: Neniu skribo de post la lasta ŝanĝo de la bufro %ld (aldonu ! por transpasi)E901: gethostbyname() en channel_open()E902: Ne eblas konekti al pordoE903: ricevis komandon kun argumento, kiu ne estas ĉenoE904: lasta argumento de "expr/call" devas esti nombroE904: tria argumento de "call" devas esti listoE905: nekonata komando ricevita: %sE906: ne estas malfermita kanaloE907: Uzo de speciala valoro kiel GlitpunktnombroE908: uzo de nevalida valoro kiel ĈenoE909: Ne eblas indeksi specialan variablonE90: Ne eblas malŝargi la lastan bufronE910: Uzo de Tasko kiel NombroE911: Uzo de Tasko kiel GlitpunktnombroE912: ne eblas uzi ch_evalexpr()/ch_sendexpr() kun kruda aŭ nl kanaloE913: Uzo de Kanalo kiel NombroE914: Uzo de Kanalo kiel GlitpunktnombroE915: bufro in_io bezonas in_buf aŭ in_nameE916: nevalida taskoE917: Ne eblas uzi reagfunkcion kun %s()E918: bufro devas esti ŝargita: %sE919: Dosierujo ne trovita en '%s': "%s"E91: La opcio 'shell' estas malplenaE920: dosiero _io bezonas _nameE921: Nevalida argumento de reagfunctioE922: vortaro atenditaE923: Dua argumento de function() devas esti listo aŭ VortaroE924: Aktuala vindozo fermiĝisE925: Aktuala rapidriparo ŝanĝiĝisE926: Aktuala listo de lokoj ŝanĝiĝisE927: Nevalida ago: '%s'E928: Ĉeno bezonataE929: Tro da provizoraj dosieroj viminfo, kiel %s!E92: Bufro %ld ne trovitaE930: Ne eblas uzi :redir en execute()E931: Bufro ne povas esti registritaE932: Fermo-funkcio devus esti je la plej alta nivelo: %sE933: funkcio estis forviŝita: %sE934: Ne eblas salti al sennoma bufroE935: nevalida indekso de "submatch": %dE936: Ne eblas forviŝi la aktualan gruponE937: Provo de forviŝo de bufro, kiu estas uzantaE938: Ripetita ŝlosilo en JSON: "%s"E939: Pozitiva kvantoro bezonataE93: Pli ol unu kongruo kun %sE940: Ne eblas ŝlosi aŭ malŝlosi variablon %sE941: servilo jam lanĉitaE942: la eblo +clientserver ne disponeblasE943: Tabulo de komandoj estas ĝisdatigenda, lanĉu 'make cmdidx'E944: Inversa amplekso en klaso de signojE945: tro larga amplekso de klaso de signojE946: Ne eblas igi modifebla terminalon kun aktiva taskoE947: Tasko ankoraŭ aktiva en la bufro "%s"E948: Tasko ankoraŭ aktivaE948: Tasko akoraŭ aktiva (aldonu ! por fini la taskon)E94: Neniu bufro kongruas kun %sE95: Bufro kun tiu nomo jam ekzistasE96: Ne eblas dosierdiferenci pli ol %ld bufrojnE97: Ne eblas krei dosierdiferencojnE98: Ne eblas legi eliron de dosierdiferencilo "diff"E99: Aktuala bufro ne estas en dosierdiferenca reĝimoERARO: Redakti dosieronRedakti Dosieron en nova fenestroRedakti per &VimRedakti per &pluraj Vim-ojRedakti per ekzistanta Vim - Redakti per unuopa &VimRedakti la apartigita(j)n dosiero(j)n per VimKodoprezento:Fino de funkcioFino de rulita dosieroTajpu la ŝlosilon de ĉifrado: Entajpu la uzendan numeron de permutodosiero .swp (0 por eliri): Tajpu la ŝlosilon denove: Eniras sencimigan reĝimon.  Tajpu "cont" por daŭrigi.Eniras reĝimon Ex. Tajpu "visual" por iri al reĝimo Normala.EraroEraro kaj interrompoEraro dum kreo de procezo: Kontrolu ĉu gvim estas en via serĉvojo!Eraro okazis dum traktado de %s:Erara DosieroEvaluo de memoro uzata: %d bajtojEsceptoKaptis escepton: %sEscepto ne konservita: %sEscepto finiĝis: %sEscepto lanĉita: %sPlenumado de %sNeatendita nombro de MAPen %s linio %dNeatendita nombro REP(SAL) en %s linio %dY aŭ N atendita en %s linio %d: %sEsprimoEksteraj subkongruoj:
FLAG post flagoj en %s linio %d: %sValorizo de sys.path_hooks malsukcesis: sys.path_hooks ne estas listo
Vi nun devas fari tion:
- postaldoni vim.path_hook al sys.path_hooks
- postaldoni vim.VIM_SPECIAL_PATH al sys.path
Agordo de serĉvojo malsukcesis: sys.path ne estas listo
Vi nun devas aldoni vim.VIM_SPECIAL_PATH al sys.pathLa dosiero "%s" ne ekzistasEnhavo de dosiero ŝanĝiĝis, ne eblas uzi malfarajn informojnPermesoj de dosiero "%s" estas nur-legeblaj.
Bonŝance ĝi eble skribeblus.
Ĉu vi volas provi?Dosiero konservitaDosierojFiltriTrovi kaj anstataŭigi (uzu '\\' por trovi '\')Trovi &SekvantaTrovi sekvantanTrovi ĉenon (uzu '\\' por trovi '\')Serĉi kion:Finis legi malfaran dosieron %sUnua ripetita vorto en %s linio %d: %sFlago ne estas nombro en %s linio %d: %sTiparo '%s' ne estas egallarĝaFont%ld ne estas duoble pli larĝa ol font0Larĝo de font0: %ldFont0: %sLarĝo de Font1: %ldFont1: %sTiparo:Por opcio %sForĵetindaĵo malantaŭ argumento de opcioBonvenon, uzanto de Vim!Helpu malriĉajn infanojn en Ugando!Atingis finon de alineoERARO DE ENIGO/ELIGO%d ignorita(j) vorto(j) kun neaskiaj signoj en %sIgnoris %d vorto(j)n kun neaskiaj signojIgnoro de longa linio en etikeda dosieroNevalida dosiernomoNevalida flago en %s linio %d: %sNevalida nomo de reĝistroNevalida eka signoEniga linioEnigaj _metodojInterrompoInterrompo: InterrompitaNevalida argumento porNevalida tiparo specifitaNevalida regiono nr en %s linio %d: %sNevalida valoro de FLAG en %s linio %d: %sŜlosiloj ne kongruas!Ĉesigi konektonLigado: Listo aŭ nombro bezonataLa biblioteko Lua no ŝargeblis.Uskleca kongruoKongrui kun nur plena vortoMesaĝoFlegado de mesaĝoj: Dominique PELLÉ <dominique.pelle@gmail.com>Mankas '>'Mankas linio FOL/LOW/UPP en %sMankas SOFO%s-aj linioj en %sModifita de Nomo:Bezonas %s-on versio %ld
Bezonas version 2.04 de Amigados aŭ pli novan
Ŝlosilo de ĉifrado bezonata por "%s"NetBeans malpermesas skribojn de neŝanĝitaj bufrojNova langetoNeNeniu sintaksa elemento difinita por tiu bufroNeniu mallongigo trovitaNeniu kontrolpunkto estas difinitaNeniu ekranoNeniu ekrano: Sendado de esprimo malsukcesis.
Neniu anoNeniu inkluzivita dosieroNeniu mapo trovitaNeniu markoNeniu kongruo ĉe kursorpozicio, trovas sekvanNeniu kongrua aŭtokomandoNeniu malnova dosieroNeniu permutodosiero .swpNeniu presenda tekstoMalfaro neebla; tamen daŭrigiNeniu komando difinita de uzanto trovitaNe uzataNe sufiĉa memoro por valorigi referencojn, senrubigado ĉesigita!Ne legas malfaran dosieron, posedanto malsamas: %sNenio por malfariNombro de vortoj post fonetika analizado: %ldBoneDialogujo de dosiera malfermoMalfermi langeton...Malfermi langeton...Malfermo de vidigo X malsukcesisTempolimo okazis dum malfermo de vidigo XMalfermo de vidigo X daŭris %ld msekOriginala dosiero "%s"Ĉu anstataŭigi ekzistantan dosieron "%s"?Paĝo %dPartaj skriboj malpermesitaj ĉe bufroj NetBeansFlika dosieroSerĉvojo estas tro longa!Serĉvojo:Ŝablono trovita en ĉiuj linioj: %sŜablono ne trovitaŜablono ne trovita: %sFonetika analizado...Premu ENEN-KLAVON aŭ tajpu komandon por daŭrigiLaboro de presado sendita.Presis: %sPresas '%s'Presado ĉesigitaPresas paĝon %d (%d%%)Serĉi ŝablononDemandoLegado de afiksa dosiero %s ...Relegas la dosieron de literumo...Legado de vortardosiero %s ...Legado el stdin...Legado de literuma dosiero "%s"Legado de malfara dosiero: %sLegado de dosiero viminfo "%s"%s%s%sLegado de dosiero de vortoj %s ...Restaŭro finiĝis. La enhavo de la bufro samas kun la enhavo de la dosiero.Restaŭro finiĝis. Indus kontroli ĉu ĉio estas en ordo.Repravalorizi ĉiujn konektojnAnstataŭigiAnstataŭigi ĉi&onAnstataŭigi ĉiujnAnstataŭigi per:Ruliĝas en reĝimo kongrua kun ViRuliĝas senreĝime, tajpita teksto estas enmetitaKonservi kielDialogujo de dosiera konservoKonservi alidirektonKonservi seanconKonservi agordaronKonservi superflugonĈu konservi ŝanĝojn al "%s"?Analizas vortaron: %sSkanado de inkluzivitaj dosieroj: %sAnalizas etikedojn.Analizas: %sFenestraĵo de rulumskalo: Ne eblis akiri geometrion de reduktita rastrumbildoSerĉa ĉenoSerĉado de "%s"Serĉado de "%s" en "%s"Serĉado de inkluzivitaj dosieroj %sSerĉado de dosiero de etikedoj %sVidu ":help E312" por pliaj informoj.Vidu ":help W11" por pliaj informoj.Vidu ":help W12" por pliaj informoj.Vidu ":help W16" por pliaj informoj.Dialogujo de dosiera elektoApartigis %s%ld de %ld Linioj; %lld de %lld Vortoj; %lld de %lld BajtojApartigis %s%ld de %ld Linioj; %lld de %lld Vortoj; %lld de %lld Signoj; %lld de %lld BajtojApartigoSendas al presilo...Montri konektojnMontri grandon en punktojMontri tiun mesaĝonEmfazaj simbolaĵoj de %s:Grando:Preterpasas skribon de malfara dosiero, nenio por malfariBedaŭrinde, la helpdosiero "%s" ne troveblasBedaŭrinde ne estas sugestojBedaŭrinde estas nur %ld sugestojBedaŭrinde tiu komando estas malŝaltita: la biblioteko de Perl ne ŝargeblis.Ruli Vim-skriptonSubtenu la programadon de Vim!Stako pligrandiĝasStilo:Anstataŭigi Permutodosiero .swp "Permutodosiero .swp "%s" ekzistas, ĉu tamen anstataŭigi ĝin?Permutodosiero .swp jam ekzistas!Perumutodosiero .swp estas ĉifrata: "%s"Permutodosiero .swp trovita:Ŝangota al malavanca motoro de regulesprimo por ŝablono: Langeto %dDisigi tiun menuonTerminaloTerminalo-finiĝisTesto de la vidigo X malsukcesisDankon pro flugi per VimLa dosiero estas kreita je La sola kongruoTiu Vim ne estis kompilita kun la kompara eblo.Tiu ĉi komando de cscope ne subtenas dividon de fenestro.
Tro da argumentoj "+komando", "-c komando" aŭ "--cmd komando"Tro da kunmetitaj flagojTro da argumentoj de redaktoTro da prokrastitaj prefiksojTro da prokrastitaj prefiksoj kaj/aŭ kunmetitaj flagojTro da regionoj en %s linio %d: %sSuproTotala nombro de vortoj: %dVosta teksto en %s linio %d: %sTajpu  :qa!  kaj premu <Enenklavon> por forlasi ĉiujn ŝanĝojn kaj eliri el VimTajpu nombron kaj <Enenklavon> (malpleno rezignas): Tajpu nombron kaj <Enenklavon> aŭ alklaku per la muso (malpleno rezignas): Ne eblas legi blokon 0 de Ne eblas registri nomon de komanda serviloNekonataNekonata argumento de opcioNekonata flago en %s linio %d: %sNeagnoskita aŭ ripetita ano en %s linio %d: %sSen titoloSuprenUzu version 3.0 de Vim
Uzis CUT_BUFFER0 anstataŭ malplenan apartigonUzas ŝlosilon de ĉifrado el permuto dosiero .swp por la teksta dosiero.
Uzado de permutodosiero .swp "%s"VIM - ATENTOVIM - Serĉi kaj anstataŭigi...VIM- Serĉi...VIM - Vi plibonigitaEraro de VIMVIM: Ne eblas malfermi fenestron!
VIMRUN.EXE ne troveblas en via $PATH.
Eksteraj komandoj ne paŭzos post kompletigo.
Vidu  :help win32-vimrun  por pliaj informoj.Vim - Elektilo de tiparoVim E458: Ne eblas disponigi rikordon de kolormapo, iuj koloroj estas eble neĝustajAverto de VimVim dialogoEraro de VimEraro de Vim: ~aVim eliras kun %d
Vim estas libera programo kaj disdoneblas libereVim: Kaptis eventon %s
Vim: Eraro dum legado de eniro, elironta...
Vim: Eraro: malsukcesis lanĉi gvim el NetBeans
Vim: Eraro: Tiu versio de Vim ne ruliĝas en terminalo Cygwin
Vim: Ĉefa fenestro neatendite detruiĝis
Vim: Legado el stdin...
Vim: Ricevis peton "die" (morti) el la seanca administrilo
Vim: Averto: Enigo ne estas el terminalo
Vim: Averto: Eligo ne estas al terminalo
W10: Averto: Ŝanĝo de nurlegebla dosieroW11: Averto: La dosiero "%s" ŝanĝiĝis ekde redakti ĝinW12: Averto: Dosiero "%s" ŝanĝiĝis kaj la bufro estis ŝanĝita ankaŭ en VimW13: Averto: Dosiero "%s" kreiĝis post la komenco de redaktadoW14: Averto: Listo de dosiernomoj troasW15: Averto: Neĝusta disigilo de linio, ^M eble mankasW16: Averto: Permeso de dosiero "%s" ŝanĝiĝis ekde redakti ĝinW17: La araba bezonas UTF-8, tajpu ":set encoding=utf-8"W18: Nevalida signo en nomo de grupoW19: Forviŝo de augroup kiu estas ankoraŭ uzataW20: Pitono versio 2.x bezonata sed nesubtenata, ignoro de dosiero: %sW21: pitono versio 3.x bezonata sed nesubtenata, ignoro de dosiero: %sW22: Teksto trovita malantaŭ :endfunction: %sAVERTO: La dosiero estas ŝanĝita de post kiam ĝi estis legita!!!AvertoAverto: Ne eblas trovi vortliston "%s.%s.spl" aŭ "%s.ascii.spl"Averto: Ne eblas trovi vortliston "%s_%s.spl" aŭ "%s_ascii.spl"Averto: Eniris neatendite alian bufron (kontrolu aŭtokomandojn)Averto: uzo de malfortika ĉifrada metodo; vidu :help 'cm'Averto: ambaŭ NOBREAK kaj NOBREAK specifitajAverto: regiono %s ne subtenataAverto: terminalo ne povas emfaziDum malfermo de dosiero "Ne superskribos malfaran dosieron, ne eblis legi: %sNe superskribos, tio ne estas malfara dosiero: %sPozicio de fenestro: X %d, Y %dVorto '%.*s' aldonita al %sVorto '%.*s' fortirita el %sVorto el alia linioĈu skribi partan dosieron?Skribado de literuma dosiero %s ...Skribado de dosiero de sugesto %s ...Skribas malfaran dosieron: %sSkribas dosieron viminfo "%s"Nevalida valoro de CHECKCOMPOUNDPATTERN en %s linio %d: %sNevalida valoro de COMPOUNDMIN en %s linio %d: %sNevalida valoro de COMPOUNDRULES en %s linio %d: %sNevalida valoro de COMPOUNDSYLMAX en %s linio %d: %sNevalida valoro de COMPOUNDWORDMAX en %s linio %d: %sXSMP: kontrolo de konekto ICE malsukcesisXSMP: SmcOpenConnection malsukcesis: %sXSMP: traktado de peto konservi-memXSMP perdis la konekton ICEXSMP: malfermo de konektoJESJes[ERARO DE KONVERTO en linio %ld][CR mankas][Forviŝita][Aparatdosiero][Dosiero tro granda][Helpo][NEVALIDA BAJTO en linio %ld][Nekompleta lasta linio][Listo de lokoj][NE konvertita][Nova DOSIERUJO][Nova dosiero][Nova dosiero][Nova][Neniu nomo][Neniu skribo de post lasta ŝanĝo]
[Ne redaktita][Permeso rifuzita][Antaŭvido][Listo de rapidriparoj][ERAROJ DE LEGADO][Nurlegebla][Eraroj de legado][Malneto][alvokoj] totalaj re/malloc() %lu, totalaj free() %lu

[speciala signo][konvertita][ĉifrita][formato dos][dos][rektvica memoro/kontaktoskatolo][rektvica memoro][dosiero...]     redakti specifita(j)n dosiero(j)n[divido de longaj linioj][formato mac][mac][sen EOL][nurlegebla][kontaktoskatolo][formato unikso][unikso]_Rezigni_Fermi_Bone_Malfermi_Konserviaktivaargumento de add()postkaj lanĉi diff kun la originala dosiero por kontroli la ŝanĝojn)provis valorizi sekvencon kun %d eroj al etendita sekco kun %d erojprovis valorizi sekvencon kun pli ol %d eroj en etendita sekcoprovo de referenco al forviŝita bufroprovo de referenco al forviŝita langetoprovo de referenco al forviŝita fenestroaŭto-forviŝas aŭtokomandon: %s <bufro=%d>aŭtokomando %santaŭbloko de %ld linioj kopiita%sbloko de 1 linio kopiita%sbufro estas nevalidade de Bram Moolenaar kaj aliulojalvokis inputrestore() pli ofte ol inputsave()alvokas %sne eblas forviŝi atributojn de OutputObjectne eblas legi la eligon de 'charconvert'ne eblas ŝanĝi reĝimon de konzolo?!
ne eblas krei komandon de bufro/fenestro: objekto estas forviŝiĝantane eblas forviŝi linionne eblas forviŝi atributojn de 'vim.Dictionary'ne eblas forviŝi atributojn de 'vim.List'ne eblas akiri linionne eblas enmeti linionne eblas enmeti/postaldoni linionne eblas ŝanĝi fiksan vortaronne eblas ŝanĝi fiksan listonne eblas malfermi ne eblas registri postalvokan komandon: bufro/fenestro estas jam forviŝiĝantane eblas registri postalvokan komandon: referenco de bufro/fenestro ne troveblasne eblas anstataŭigi linionne eblas konservi informojn de malfarone eblas agordi atributon %sne eblas meti la linio(j)nne eblas kopii; tamen forviŝiŝanĝoŝanĝojfermokmd: %sdaŭrigas en %sne eblis ruli "%s"ne eblis malfermi bufronplenumo de cs_create_connection malsukcesisplenumo de cs_create_connection-setgpid malsukcesiscs_create_connection: fdopen de fr_fp malsukcesiscs_create_connection: fdopen de to_fp malsukcesiskomandoj de cscope:
konekto cscope %s fermitakursoro poziciita ekster bufrodefaŭlto al 'ĉu forviŝita bloko 1?vortaro estas ŝlositane saltis al la specifita langetone saltis al la specifita vindozodlerror = "%s"ne eliru el la redaktilo ĝis kiam la dosiero estas sukcese konservita!malplenaj ŝlosiloj nepermeseblajmedivariabloeraro dum konverto de Scheme-valoro al Vimerartraktiloatendis 3-opon kiel rezulto de imp.find_module(), sed ricevis %satendis 3-opon kiel rezulto de imp.find_module(), sed ricevis %d-oponatendis aperon de bytes() aŭ str(), sed ricevis %satendis int() aŭ ion konverteblan al int(), sed ricevis %satendis int(), long() aŭ ion konverteblan al long(), sed ricevis %satendis 2-longan sekvencon, sed ricevis %d-longan sekvenconatendis aperon de str() aŭ unicode(), sed ricevis %satendis objekton vim.Buffer, sed ricevis %satendis objekton vim.TabPage, sed ricevis %satendis objekton vim.window, sed ricevis %sesprimoj malŝaltitaj dum kompiladoargumento de extend()aldono de listero malsukcesisaldono de ŝlosilo '%s' al vortaro malsukcesismalsukcesis ŝanĝi dosierujonmalsukcesis trovi vindozon en la nuna langetomalsukcesis renomi bufronmalsukcesis ruli funkcion %smalsukcesis ruli la kodonsalto al la bufro %d malsukcesismalpli liniojdosiero
dosiernomo / kunteksto / linio
argumento de filter()finiĝisfinis ruli %skadro je la plej alta nivelo: %dkadro estas nulmalokupas %ld liniojnfunkcio %s ne ekzistasEraro de gvimext.dllhakettabelo ŝanĝiĝis dum iteraciohelpokaŝita opcioen serĉvojo ---
indekso devas esti 'int' aŭ 'slice', ne %sargumento de insert()interna eraro: NULL-referenco argumentointerna eraro: aldono de listero malsukcesisinterna eraro: obteno de vim-a listero %d malsukcesisinterna eraro: imp.find_module liveris opon kun NULLinterna eraro: nevalida tipo de valorointerna eraro: neniu vim-a listero %dinterna eraro: ne sufiĉaj listerojinterna eraro: nekonata tipo de opcionevalida atributo: %snevalida numero de bufronevalida esprimonevalida nomo de markoestas aparatdosiero (malŝaltita per la opcio 'opendevice')estas dosierujone estas dosierone estas dosiero aŭ skribebla aparatdosieroestas nurlegebla (aldonu ! por transpasi)klavara interrompolinio %4ld:linio %6d, vorto %6d - %slinio %ldlinio %ld de %ld --%d%%-- kol linio %ld: %slinio %ld: ne eblis ruli "%s"linio %ld: rulas "%s"malpli linionumero de linio ekster limojnumero de linio ekster limojkonstruilo de listo ne akceptas ŝlosilvortajn argumentojnindekso de listo ekster limojlisto estas ŝlositaelsalutoargumento de map()nomo de marko devas esti unuopa signomarko ne estas metitakongruo %dkongruo %d de %dkongruo en dosieromaksimuma mch_get_shellsize: ne estas konzolo??
menuo Redakti->Mallokaj Agordoj->Baskuligi Enmetan Reĝimonmenuo Redakti->Mallokaj Agordoj->Baskuligi Reĝimon Kongruan kun Vimenuo  Help->Orfinoj              por pliaj informoj   menuo Helpo->Subteni/Registri     por pliaj informoj   minimuma reĝimlinioplia liniopliaj liniojnetbeans ne estas subtenata kun tiu grafika interfaco
nova ŝelo lanĉita
neneniu konekto de cscope
Neniu specifa kongruone estas tia langetone estas tia fenestroneniu sinkronigonepermesebla en sabloludejo de Vimnetrovitaj ne trovita en '%s: "%s"ankoraŭ ne realigitanumero ŝanĝoj   tempo              konservitanombro devas esti egala aŭ pli granda ol nulnombro devas esti pli granda ol nulpe_line_count estas nulkomanda linio pre-vimrcproblemo dum salto al vindozojnurlegebla atributo: bufferregistradoargumento de remove()ĉu anstataŭigi per %s (y/n/a/q/l/^E/^Y)?argumento de reverse()linio %d kolumno %druliĝasserĉo atingis SUBON, daŭrigonte al SUPROserĉo atingis SUPRON, daŭrigonte al SUBOŝelo la ŝelo liveris %dsistemfermopaŝo de sekco ne povas esti nulargumento de sort()rulas "%s"stack_idx devus esti 0ĉeno ne rajtas enhavi liniavancojnsinkronigo per C-stilaj komentojsinkronigo ekas sintakso ignoras uskleconsintakso konsideras uskleconsintakso de conceal malŝaltitasintakso de conceal ŝaltatasintakso iskeyword literumado en teksto sen sintaksa grupo, nur se ne estas @Spell aŭ @NoSpellsen literumado en teksto sen sintaksa grupoliterumado en teksto sen sintaksa grupoetikedo %d de %d%snomo de etikedoal %s de %stajpu :help cp-default<Enenklavo> por pliaj informoj   tajpu  :help iccf<Enenklavo>      por pliaj informoj   tajpu  :help register<Enenklavo>  por pliaj informoj   tajpu  :help sponsor<Enenklavo>   por pliaj informoj   tajpu  :help version8<Enenklavo>  por informo de versiotajpu  :help<Enenklavo>  aŭ  <F1> por aliri la helpon  tajpu  :q<Enenklavo>              por eliri            tajpu :set nocp<Enenklavo>        por Vim defaŭltoj    ne povis konverti %s al vim-vortarone povis konverti %s al vim-listone povis konverti %s al vim-strukturomalsukcesis akiri valoron de opcione povis malŝalti mallokan opcion %sne povis malŝalti opcion %s, kiu ne havas mallokan valoronargumento de uniq()nekonatanekonata flago: nekonata opcionekonata vimOptionsennoma funkcio %s ne ekzistasvaloro estas tro grada por C-tipo 'int'valoro estas tro malgranda por C-tipo 'int'versio eraro de Vimindekso de fenestro estas ekster limojfenestro estas nevalidakun (klasika) grafika interfaco.kun grafika interfaco Carbon.kun grafika interfaco Cocoa.kun grafika interfaco GTK2.kun grafika interfaco GTK2-GNOME.kun grafika interfaco GTK3.sen grafika interfaco.kun grafika interfaco Photon.kun grafika interfaco X11-Athena.kun grafika interfaco X11-Motif.kun grafika interfaco X11-neXtaw.sen grafika interfaco.skribo al aparatdosiero malŝaltita per la opcio 'opendevice'PK�j�Z��bmFFvim80/lang/menu_sr_yu.ascii.vimnu�[���" Menu Translations:	Serbian

source <sfile>:p:h/menu_sr_rs.ascii.vim
PK�j�Z�ZSii'vim80/lang/menu_german_germany.1252.vimnu�[���" Menu Translations:	German for Windows CodePage 1252 encoding

source <sfile>:p:h/menu_de_de.latin1.vim
PK�j�Zb]&}}vim80/lang/menu_no.latin1.vimnu�[���" Menu Translations: Norwegian
" menu_no.latin1.vim 289 2004-05-16 18:00:52Z sunny

source <sfile>:p:h/menu_no_no.latin1.vim
PK�j�Z�&�d��%vim80/lang/ja.sjis/LC_MESSAGES/vim.monu�[������|<
�x(�)�
:�H�Q�'g�/����ա�L�:N�����+��ʣ"��(�9�5I������դ����;ɥ��:�W�f�w�������ʦ�0��.*�/Y�0��
��ȧާ��
��
2�$=�$b��� ����@ȨD	�N�b�"����"é����@�_�z���������/Ϊ8��,7�=d�����ӫ���0�1A�1s�����Ϭ�-�3�S�h�������ǭ3߭3�G�d�|�������
ٮ����/�
G�$U�z�L�� ӯ��;$�`�o�#|�	����ðӰ�
����#�/�G�	_�i�q�y�!������ܱ���#�+� 3�T�o���������
òѲ6޲�2�K�!j���
����	����ٳ��&�	�" �*C�n�=��
ĴҴش���	�
�
'�2�
;�F�X�j�s�5��ǵ-ٵ1�&9�`�x�������ƶ۶��$�-�=�
Q�\�l���������ҷ�����+�7�F�V�h�x�
��������
ƸѸ�7�+�!8�Z�r�z�������������=��2�%�.�4�=�'N�-v�2��׺�?
�M�i�z�+����	Ļλ��-�M�$m���
����ͼ��?�D�2S�!��%��@ν9�EI�9��CɾK
�IY�H��;�6(�8_�3��<�4	�->�6l���%�����
�&�@�&P�,w�#��4�� ��@�-_�0��:��;��5�"U�x�>��)��>��<1�n�z�#��:��'��9!�[�$t�9��4��;� D�>e�1��/���-#�Q�.`�B��"��2��4(�*]���+��%��'��( �<I�E��.��-��$)�N�<g���*��&�� �41�f�w�����������������
�'�0�"8�[�g�v�������)����$�)�8�@�Y�1r�?���������0�F�a�t�X��%����+�I�b�{���������$����!�0�N�T�d�h���"��$����#�/�6�E�U�u����� ����4��.�	@�CJ�V����
��
�.�:�-S���-��$��.��6"�Y�.s�H��(���#�
<�OG�O��
��C��	9�C�O�!d�������3��2��!�(8�a� z�"��E���%!�#G�-k�������&���)�;�Y�r���'����)��+�@;�-|���5�����0�K�/f�9����E��3�-N�7|�#�� ��:��54�&j�"��&��$��#�!$�=F�5�� ��(��7�.<�,k��������� ��#�&;�b�y�����������0>�$o�!�� ��(��4�,5�b�~������� �����1,�^�!{�%��%��!��%�1�$J� o�����?��&�#.�R�
n�A|�%��"��"�9*�'d�(��2��*��!�!5�)W�%��!��4��:��&9�;`�;��)��0�3�R�n�����#��!��8��&1�#X�|� ��/��"���-�G�X�q�/��*��(��#
�1�M�h�����>�����0�"G�j�������#����9�1K�1}�)��1��%�71�i�A��?����3�!R�t�����0��4��$0�)U�N�,��&��L"�o�����8����$�(�B�#b�7��N��
�)�F�$a�!��3��,�2	�%<�b�"}���#�����;�BX���0��!� �<)�+f�����+�2�$&�K�,i���H��,��'�=�"]����������9�S�h���0��#�'��,�,L�&y�����+�2�-$�(R�{�"��'��'�,�4�.K�z�#��,��W�)C�"m�,��%��� !2:2m2��!�+2@5s'�#�)�3$S%x����
$"&G n'�*�#�'%.T3t!��+�*5-`$����
  ; \$}$�)��	,La%|�=�9R'l��$�#�0	.H	0w	�	�	�	

/
C
-Z
 �
�
7�
)�
&$>(c��%�$�$7'T|'� ���
 .
7O
0�
�
#�
�
"(>!g�-�1�65>t.�*�1�9U*u&�+�,�+ 4L<�+�*�+CXm�����"�
 7Rq�����)Ea:t=�<�6*<a�"��+�)4E5z4�3�0+ \}D�P�%&Lk�����!)Kf}����'�#6!Vx�"��1�.K"`������'<Uh|�����*1)\�� ����6#Os)�&�K�, ?`�����" &7 #^ � � +� %� 7!5F!|!�!,�!�!�!")," V"w"�"�"�"�"�"#5#0M#~#�#�#�#4�#.%$$T$)y$1�$;�$%.!%*P%{%$�%�%%�%,&.&%?&e&~&�&&�&-�&&'+' G'h'�'�'+�' �'(?()Z(�(6�(#�(2�(9,)>f)8�)1�)*).*)X* �*)�*�*)�**+"=+`+#y+"�+"�+)�+
,-,%K, q,$�,�,�,!�,0-G-`-{-�-"�-!�-9�-82./k.�.�.�.+�.%/18/)j/�/�/'�/%�/0&'0!N0%p0'�0%�0'�0-12:1m1�1$�1�1�1�1"2:2Z2!z21�2&�2�2!3!43V3(k3�3�3+�38�3347R4E�4!�4�45(50G5#x5�5$�5�5#�5*6?6Z6m60�62�60�67+97)e7$�7/�7�7�7'8)68,`8�8�8 �8�8�8-9,K9x9/�9+�9'�9!: 7:0X:�:!�:,�:�:;(;A;Z;0p;.�;�;1�;&"<:I<�<9�<�<:�<2=J=j=�=*�=�=3�=&>%?>2e>0�>!�>;�>R'?z?*�?�?�?(�?!@+=@+i@�@ �@"�@%�@ A+;A"gA+�A�A.�A4BI:B)�B)�B6�B6C-FC(tC/�C&�C<�C)1D*[D�D7�D�D�DE*-EXEvE0�E/�E!�E"F*8F/cF;�F�F�FQG.YG�G$�G#�G0�G#"HFH2eH6�H�H+�H%IXAI;�I/�I;JBJ!bJ%�J"�JN�J.K$KK&pKT�K#�K"L$3L XLyL�L#�L]�L 9MBZM'�M�M/�M2N,EN"rN�N&�N(�N%�N%ODObOEO!�O �O7P@P%VP|P'�P�P'�P	Q)Q<?Q|Q"�Q'�Q�QR+RDR(^R!�R5�R�R7�R!6S%XS/~S!�S�S�S'T6T)UT;T&�T(�TU)*U&TU{U�U'�U�U	�U�UVV+VEV#[V	V�V�V�V.�V�V.
W69WpWvW6�W#�W
�W&�W	X!X6XNXeXzX �X%�X!�X
�X�X(Y�:Ya�YGZ+`Za�Z�Z�Z[(
[
3[	>[%H[
n[y[&�[&�[�[(\+\	<\F\	W\a\
g\u\�\�\�\	�\2�\*]C]c]u]�]�]
�]�]	�]�]�]�]^#,^(P^y^�^	�^�^�^
�^�^�^2_9_E_d_~_�_�_$�_�_/�_` `'#`K`a`
x`$�`
�`�`�`�` �`aa*a7a!Maoa�a@�a(�ab'b9b<bMbYbeb�b#�b�b�b�b.�b
.c9c	OcYcyc�c�c'�c�c�c
ddd7dKdTdnd�d�d�d�d�de9%e9_e�e�e�e�e
�e�e(�e&f.f?fPf
]f	hfrf�f�f�f�f9�f
gg2gMghg&g�g�g�ghChW_h	�h�h�h�h�h
ii)"iLili�iF�i�i�ij%j,j8j(Djmj�j�j1�j�j�jk$k:kSk0bk;�k>�kl&l>l1Zl"�l�l�l�lA�l)/m=Ym�m(�m�m�m$�m0"nSn\n_n+un2�n�n�n�no%o	7oAo�Zo�oF�o;p
Gp	Rp
\pjp+p�p%�p0�pBq([q�q1�q+�q*�q&)r9PrM�r>�r)s5AsAws4�s$�s*tA>tA�t&�t6�t u<(u<eu?�u7�u/v Jv"kv�v2�v0�vw#w;wWwlw�w�w�w�w2�w)x+Fx,rx-�x �x!�x#y4yMyeyiymy�y	�y�y�y�y�y�y�yzz
$z
/z:z	@zJzhzuz	�z�z
�z�z
�z	�z5�z{{	${.{;{
A{O{&V{}{�{�{�{
�{�{
�{�{�{�{�{�{�{�{|9|BB|D�|"�|$�|"})5}_}n}u}�}�}�}�}1�}
~$~"7~Z~<y~�~'�~!�~#6Po�H�C�"�6�S�k�~�����������ǀ݀ �#�-7�-e����������(�&?�f�=u���΂%�
	�8�FP�.��DƃM�@Y�0��&˄'�&�$A�f�x�$����-Ӆ��3�J�h�t�z�������
׆���� $�E�
J�X�"e���%��*��.�8�"S�#v�%��#������#�/5�e�
t� �� ��ĉ
׉����!�.�N�	f�p���2��Њ�����$
�2�?�H�
W�e�#n�1��1ċ1��1(�Z�c�	l�
v�(��������׌���
	��
3�>�V�(j�'�� ��܍�	�)�	D�N�"`�����$��$̎���
��-�
=�K�a���������я�����5�K�Z�b�.n�.��.̐.��.*�.Y�.��.��&� 
�%.�T� o�:��˒ے���"�)6�)`���	������̓����%�	4�>�O�d�x���3���ΔW�v�	���.��/Ζ���*�N@�4��Ę
Ә+�"
�-0�'^�����4��$��$�
A�O��c�A\�����՛���+�;�M�c�w�/��-��.�/�F�O�h�������
ȝ*ӝ*��)�+;�	g�Fq�K����#1�U�#r�����	��C���	 �*�
6�	A� K�.l�B��)ޠB�K�"f�!����ġEԡ1�1L�~�������0բ�&�;�S�(e�����'��2��8�P�h�����	��
����٤�����<�LM�����ҥ;�&�8�J�h�p���
������¦
ݦ����	'�1�	9�C�O�l���������	ǧѧק�	��7�=�	C�	M�W�2c�������ب����	�)�@�L�Q�(V��%��(��ԩ:�'�0�6�	E�O�e�
m�{�����������Ъ,ت?�E�9W�-��'�����'�G�g�#��$��7Ь(�1�E�N�"b�!������έ�	� �?�X�a�v�����	����خ�	�
�*�<�T�4j�
��#������
���3�H�]L�P������"%�<H�1��7����H/�x�����2�����#�'�F�)e�#��,���
���
8�C�:`�
��,��%Ӵ.��6(�;_�?��<۵C�V\�?��H�B<�3�:��,�A�)]�)��5����'�;�M�m�
��)��"Ź�7�#<�A`�*��.ͺ<��B9�|�����6˻%�9(�;b���!��(ȼ5�,'�=T���-��=ܽ5�6P�"��6��4�1�&H�(o���/��Dؿ)�6G�6~�&��!�.��&-�'T�)|�>��G�2-�+`�$����B��#�(4�-]�/��:�����4�S� Z�{�
��������������20�c�u���������5�� �'(�
P�^�c��4��6����3�:�R�h�������b��(9�b�(g�0������!��!�1�>�O�+R�
~�+��"��������,��$�&C�&j�"��(��
�������(�:�U�l� ��9������?
�QJ�������7����-�#I�6m�&��)��A��"7�=Z�Y��2��%�5�
I�ZT�Z��
�G�f�k�x���
��*����8��7�1R�,����,��.��G&�$n�.��"��?��!%� G�!h�.������"���!1�!S�u��� �� ��;��-+�Y�?t��������,#�:P���I����*	�64�#k�$��B��9��+1�*]�8��*��7��'$�FL�;��(��(��,!�.N�2}�*����$��� 5�V�1u����������5� K�*l�.��)��(��,�(F�:o�2�������+�H�%b�-��'��A�� �?�+X� ����"����$�)�F�_�>z�.��*��"�
6�HA�;��%��%��=�,P�*}�1��-��&�"/�(R�6{�-��9��;�(V�7�3��-��2�&L�!s�!������&��$�/C�(s�(��(��8��9'�%a���.��������1�3D�'x�)������#�$$�I�Ah�������*�",�O�"d���$����?��4(�.]�-��>��3��4-�#b�0��7����
�!%�'G� o�!��(��6��:�*M�-x�T��+��3'�R[�������B��?�X�&w��� ��B��I�$h�'����0��0�64�:k�=��5��$�.?�(n�0��(��"��"�"7�TZ�%��;��/�,A�?n�:��-��0-�*^�&��!��?��M1�.���!�'�*�,<�,i�,��'�B�%.�T�%r�*��/�,�
 �*+�>V�(��%���:�:;�.v�<��"�)�8/�=h�D���)�0�M�1l�N��0�.�8M�6��*��*�%�49�4n�4��$���9.O9~0�%�+9;+u,�$��1,Bo,�4�)�66M0�2�"�#:/!j!�:��22;0n�� ��,%,R&#�2��#3W"s(�(�1�3N%a-��#�'�,	.I	,x	@�	�	

7
N
e
�
(�
 �
�
4�
01b%�0� ��38E,~�$�-�+
 I
$j
"�
�
�
&�
08G.�&�*�.20c!�.�;�@?P �6�"�??K�/�.�.,4+a.�0�0�-Lk������/1Fx"�"�(�  #(D&m �#��&�"'<>d=�;�>I\�"��1�/0?`K�?�;,h;~"��E�O:-�$�$�$'(Bk!�� � �!:!Wy&�)��%5'$]�%��:� :Tt���(�	"9Xm�����& 3 P !m .� -� � 
!&!C!_!q!C�!(�!�!6",N"Q{"�"(�"
#)#"H#!k##�#�#%�#)�#0$-P$$~$(�$+�$*�$8#%6\%�%"�%0�%&$&D&.c&%�&�&�&�&#''6'$^'%�' �',�'�' ($/(&T(1{(5�(/�(!)@5)Dv)�)*�)4**:**e* �*3�*.�*+&4+"[+~+�+C�+1�+/1,a,2y,�,�,�,;�,,/-\-Fw-,�-%�-E.2W.-�.>�.F�.L>/8�/.�/.�//"0+R0,~0&�0(�0*�0+&1R1-k12�10�16�1$42#Y2,}2 �2"�2(�2&3+>3.j3�3 �3�3�3$4*,4<W4*�4$�4$�4$	5.56C5.z59�5,�56)6$@6(e6�6,�6&�6$7&&7$M7)r7*�74�7!�7$8$C8*h8+�8(�8&�8,9,<9i9(�9�9�9!�9&:8: R: s:�:2�:;�:&!;6H;Q;$�;�;
<8)<.b<(�<�</�<=(=$E=,j=�=�=L�=.>,I>*v>3�>!�>!�>>?X?x?<�?8�?7@5:@'p@$�@$�@�@'A<)AfA;�A5�A5�A(*B.SB1�B"�B*�B4C7CRC)dC�C�C2�C6�C.D>MD2�D1�D#�DCE YE1zE�E2�E*�E,%F7RF"�F,�F�F0�F4!G5VG'�GC�GD�G=H=]H"�H(�H(�HI.,I2[I(�I*�I-�I:J.KJ0zJ.�J3�J'K46KDkKJ�K%�K%!L8GL8�L+�L(�L4M&CM8jM-�M:�MN2&N$YN)~N�N*�N#�NO)1O)[O �O"�O3�O8�O?6P)vP�PX�P4Q+MQ)yQ(�Q,�Q(�Q"R7AR;yR%�R)�R'SW-SB�S*�SC�S%7T+]T&�T#�T9�T*U 9U0ZU]�U&�U+V-<V2jV,�V.�V,�Vf&W1�W=�W8�W6X,SX6�X6�X&�X Y,6Y(cY&�Y#�Y$�Y,�YM)Z*wZ2�Z9�Z [%0[2V[0�[�[+�[ \'\FD\&�\&�\.�\]!]-8]"f],�]�]8�]^.-^\^${^.�^$�^�^ _02_$c_,�_Q�_`$&`,K`%x`'�`�`�`-�`,a5a&Daka~a�a�a�a�a�ab"b<=b$zb?�bG�b'c.cC=c$�c�c�c�c�c�cdd6d&Jd+qd'�d�d�d/�d�	et�e7f>Rfa�f�f
gg$gAgNg$Wg|g �g,�g,�g$h.(hWh
jhxh
�h	�h�h"�h�h%�hi"i3/i+ci"�i�i$�i�i�ijj&j-j6jEjVj$mj/�j�j�j�j�j k%k=k
Tk>_k�k"�k�k�k�kl.%lTl:ml�l�l,�l�l$
m/m2Lmm �m �m�m6�m!(nJncn�n.�n*�n�nLo8Qo�o�o�o�o�o�o �o(p*Hpsp%�p	�p0�p�p�pq&q6q"Uqxq1�q�q�q�qrr.rGrLrjr�r�r�r�r%�rs55s;ks�s�s�s�s�s�s.�s
+t6tMtft�t�t�t�t*�tuu+"u
Nu
Yugu)u�u&�u%�u%v%5v[v9vvK�v�vww$w?wXwew8mw.�w �w+�wM"xpx�x�x	�x�x�x9�x!y*Ay%ly:�y
�y�y"�yz%2z
Xz2cz:�z<�z{%{:{-Q{'{�{�{�{P�{2*|H]|�|"�|�|�|&}8)}b}g}&j}1�}B�}~
%~0~
D~R~	d~n~��~<"	_i
x��,��/�2�=R�,����9ـ(�&<�'c�5��@��5�)8�0b�=��Jт%�*B�Em�E��*��/$�T�CY�C��F�?(�3h�,��,Ʌ��8�.N�}�"��$����
�#-�Q�p�=��4·>�7B�8z���(҈(��$�?�[�`�e�|���
��������ȉى���
��$�)�!0�R�[�n�{���������4������&�,�<�&C�
j�u�����
��
������ŋ
ԋߋ�����/�>7�Bv�(��$�*�42�g�v�"{� ����ҍ֍4�!�1�(N�#w�Q������5�H�[�u� ����M��O�_�r�������ڐ�����&�:�)O�0y�4��4ߑ�%� D�e�����*��*ߒ
�;�U�r�{���=��<�C!�:e�;��9ܔE�4\�5��4Ǖ$��!� 1�*R�}�4��˖��0"�S�	c�m���������Зߗ�+�3�:�I�6V���"��,��3�<!�^�+y�*��"Й���*�6=�t���.��&Ϛ����&�-�
M�X�t�������6�����/�8�3E�y�
������Ԝ(ݜ2�19�1k�9��ם����%	�/�I�N�f� �� ��Þʞ����).�'X�%������&ן����$.�S�d�p����� ��נ'�
�
�*�"H�k�	��$��#��ء��� '�#H�!l�������.��.�.�.C�.r�.��.У.��.� M� n���.��8ݤ
�$�)�8�M�c�&~�&��̥
ե����'�8�H�W�l�	{���������Ԧ=�z�~����*�Gg�lI�T��g������Z~�;����hE���5�`�p�$�jNr�T}��'���^P�W_��Z>���^w3����`UL��h���[���o
P�o0�*E��K� �y�����d��.f�<��Ubq&Y_�\����>�F�g���N�#���6���k��9_G8|�R����n��x:>(�;�X�������bj�D���S�,k|�z!�����A���j?m��a&lVSB�:�&��.�R�v� �%.@@�
���~Q��\Wu���&w[$?t*+�;��x��)�o��(y�s�t��
O]x�#���'��s�]�B�f��J����,#u&��;�����9l�3�/f�����+��\X�uW*iD�Q S����9c���h|��*�l/�@(v������9��{�������ji5%�|�Ln���E"�K�g����Z $T�T�gA~ej��
���{��u���O���}^X��O�+�fv��i��-G@�l��m�-|�p�J�_%l�~�R��"F8��NM����`�yC���zJ����,��KElt�r�4�Pl����K>eq�3��kQaK�W�!�.o�V�P]�[��/�m��X�w����)�����Y!��	4%��b��8�3�5���EyH�VjB���B�=�.�9(?�/K��X��:PZ����@	����r�7�����;b
+����#���b�o�-f�9_Vv����2��"�����
1\!	3?z�% X��CZ��)p�'�:Q^�������Y�wD>�#AH�e�x���r2T��C����h2A0�M�;�����^GL��Y_7F15��=��g5jV�x��7�s'!?�k>�v�`�������4<�D
�B6�1G�#A�a�����[��0{�dN�Z���(�F�O<�_��p�tNI�O���H������g��B*(���W��-2���Z�S���T��5A����6e�^�kt�����q����zmCsUG��'L�H���f�J~=nd)R9�9�������sr�0`i��)|M�`���,�:/L��?$�X}����z��#n�7�J�H�������Du=�������tC�'!,��� S 
Q)������H7�WgJ�������Y��
z�B�������~F��h�nCUS�o$�d�0��}L��=�m�7c��d�a��K
U���k���ew��	a�&Io�S)��}���������K����$�V�b�]J�|�0��s�����u-�c��G�wR���C%��1���1	��I=�w3�48��]�@�{��V#������|e����b����1�'�q���En��~7PWO�[�L������6�4�[�GZ^�`5R$����6r�ym� ���<��y��y�Ac�+����>/�c�F�3������=��qp0Lv�a
p�M��U=w����Q�4���]�d���d�4��0�5������N��X��2k*�Q�F��	�"R{���Oa��C�8M6�1����}��iqO��t��qn[�����a�?8�&%\�;f���hY<��Ec��q�"
{��\D���sxo�},�!��.�I�&e�i�������{,��7�����Iv:D�+:+H
���v�'k�"����Pp`��D���T]��b	���jt\{�,>��
���
?M�(I�i;�	N�x���IQ(32T���Y�]��/")^.Y�<}�e��F8m@_�u���%�[A��\x��S�rc�������������P��@��my���6/�
-*�W�-1�:���Mf���6�Ur�4"p�BN���J��E�-���h�n.��<�R��!�H�cV+$���8<���U2iz2M�d�h�������s�����u�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-03 23:05+0900
PO-Revision-Date: 2017-07-12 20:45+0900
Last-Translator: MURAOKA Taro <koron.kaoriya@gmail.com>
Language-Team: vim-jp (https://github.com/vim-jp/lang-ja)
Language: Japanese
MIME-Version: 1.0
Content-Type: text/plain; charset=cp932
Content-Transfer-Encoding: 8-bit
Plural-Forms: nplurals=1; plural=0;

	�Ō�ɃZ�b�g�����X�N���v�g: 

����:


�g�p�@:
          �ύX���: 
         [���̃R���s���[�^�ł͎g�p�ł��܂���]
         [����Vim�o�[�W�����ł͎g�p�ł��܂���]
          �z�X�g��: 
        ���[�U�[��: 
        �v���Z�XID: 
       a: ���̃V���{���ɑ΂������T��
       c: ���̊֐���Ă�ł���֐���T��
       d: ���̊֐�����Ă�ł���֐���T��
       e: ����egrep�p�^�[����T��
       f: ���̃t�@�C����T��
       g: ���̒�`��T��
       i: ���̃t�@�C����#include���Ă���t�@�C����T��
       s: ����C�V���{����T��
       t: ���̃e�L�X�g�������T��

    ���O        ����       �A�h���X  �⊮      ��`
   #   �s�ԍ�
   ������:
  # TO �^�O        FROM �s    in file/text
 jump   �s   �� �t�@�C��/�e�L�X�g
# %s ���ڂ̗��� (�V������̂���Â���̂�):

# '|' �Ŏn�܂�s�́A�����ʂ�̃R�s�[:

# �o�b�t�@���X�g:

# �t�@�C���}�[�N:

# �t�@�C����}�[�N�̗��� (�V������̂���Â����):

# �W�����v���X�g (�V������̂���):

# ��� %s�����p�^�[��:
~
# �Ō�ɒu�����ꂽ������:
$
# ���W�X�^:

# �O���[�o���ϐ�:

(1) �ʂ̃v���O�����������t�@�C����ҏW���Ă��邩����܂���.
    ���̏ꍇ�ɂ�, �ύX��Ă��܂���1�‚̃t�@�C���ɑ΂��ĈقȂ�2�‚�
    �C���X�^���X���ł��Ă��܂��̂�, �������Ȃ��悤�ɋC��‚��Ă�������.
    �I�����邩, ���ӂ��Ȃ��瑱���Ă�������.

(�ύX��`�F�b�N���邽�߂�, ���̃t�@�C����ʂ̖��O�ŕۑ��������

--- Auto-Commands ---
--- �O���[�o���I�v�V�����l ---
--- ���[�J���I�v�V�����l ---
--- ���j���[ ---
--- �I�v�V���� ---
--- ���W�X�^ ---
--- �T�C�� ---
--- �\���v�f ---
--- �\�������v�f ---
--- �[���R�[�h ---
--- �[���L�[ ---
gvim�ɂ��ĉ�߂������(Athena�o�[�W����):

gvim�ɂ��ĉ�߂������(GTK+�o�[�W����):

gvim�ɂ��ĉ�߂������(Motif�o�[�W����):

gvim�ɂ��ĉ�߂������(neXtaw�o�[�W����):

Big �� 
�p�C�v��쐬�ł��܂���

�V�F����s�ł��܂��� 
sh �V�F����s�ł��܂���

fork �ł��܂���

�R�}���h�𒆒f���܂���

Compiled 
�Z�L�����e�B�R���e�L�X�g��擾�ł��܂��� 
�Z�L�����e�B�R���e�L�X�g��ݒ�ł��܂��� 
�lj��g���p�b�`: 
���̖��O�ŃX���b�v�t�@�C����‚��܂��� "
Huge �� 
�V�����Í��L�[��͂������ƂɃe�L�X�g�t�@�C����ۑ����Ă��Ȃ��ꍇ��,
�Í��L�[��ς������ƂɃe�L�X�g�t�@�C����ۑ������ꍇ��, �e�L�X�g�t�@�C����
�K�p�σp�b�`: 
MS-Windows 32 �r�b�g GUI ��
MS-Windows 32 �r�b�g �R���\�[�� ��
MS-Windows 64 �r�b�g GUI ��
MS-Windows 64 �r�b�g �R���\�[�� ��
MacOS X (unix) ��
MacOS X ��
MacOS ��
���炭�ύX������Ă��Ȃ���Vim���X���b�v�t�@�C����X�V���Ă��܂���.
���ڍׂȏ���: "vim -h"

�ʏ� �� 
OpenVMS ��
Small �� 
Tiny �� 
Vim: X �̃G���[��o���܂���r

�x��: ���{�t�@�C��������ꂽ���ύX����܂���

�召���������������ꍇ�͑啶���ɂ��邽�߂� / ��O�u���Ă�������
����.swp�t�@�C���͍폜���Ă�\���܂���


[������(�o�C�g)] ������-��� %lu-%lu, �g�p�� %lu, �s�[�N�� %lu

�ύX   �s    ��  �e�L�X�g
�V�����Í��L�[��͂��Ă�������.
mark   �s   �� �t�@�C��/�e�L�X�g
�V�F�����l��Ԃ��܂��� 
�v�f��œ�����
�X���b�v�t�@�C���ɓ����Í��L�[��g�����߂�enter��������Ă�������.                              ��Vim�Ƃ��ē���                                  �Ń��[�h�L��                    ���t:             ���L��:          [�J���܂���]         [�Ǎ��߂܂���]         [Vim�̃X���b�v�t�@�C���ł͂Ȃ��悤�ł�]         [from Vim version 3.0]        �t�@�C����:   �f�t�H���g�t�@�C��: "      -- �Ȃ� --
      �X���b�v�t�@�C������V�����ł�!
       ���[�U�[ exrc: "      ���[�U�[ vimrc: "    ���̏ꍇ�ɂ� ":recover" �� "vim -r     ���ɂ����s�Ȃ����̂Ȃ��, �X���b�v�t�@�C�� "    �s=%ld  ���ʎq=%d  ���O=%s    �V�X�e�����j���[: "     ���[�U�[ gvimrc: "   ���݂̃f�B���N�g��:
   �f�B���N�g��    �ȉ��̖��O��g�p��:
   ���t:    �z�X�g��:       �V�X�e�� vimrc: "  # pri kind tag  (���ɗ�)    ��2���[�U�[ exrc: "�f�o�b�O�r���h  �@�\�̈ꗗ �L��(+)/����(-)
  ���‚���܂���  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  �^�O��قȂ�case�Ŏg�p���܂�!       �ȗ����� $VIM: "     �V�X�e�� gvimrc: " # pid    �f�[�^�x�[�X��                      prepend �p�X
 (�����܂�܂���) (���‚���܂���) (�O�ɗ񋓂����Y���ӏ���܂�) (�}��) (�}��) �X�N���[��(^E/^Y) (�s���폜����܂���) (��T�|�[�g) (�\��t��) (�u��) (�u��) �X�N���[�� (^E/^Y) (�܂����s��) (���z�u��)   ��2���[�U�[ vimrc: "   ��3���[�U�[ vimrc: " < "%.*s" �lj��� �A���r�A �ϊ��G���[ �R�}���h���C���⊮ (^V^N^P) �R�s�[ %d (�S %d ��) ��`�⊮ (^D^N^P) �����⊮ (^K^N^P) ���s �t�@�C�����⊮ (^F^N^P) �w�u���C �}�� �Ǐ��L�[���[�h�⊮ (^N^P) �L�[���[�h�⊮ (^N^P) �I���j�⊮ (^O^N^P) �p�X�p�^�[���⊮ (^N^P) �u�� ���] �Z���N�g ��`�I�� �s�w���I�� SPACE/d/j: ���/�y�[�W/�s ��, b/u/k: ��, q: �I��  �Ԃ�C����� (s^N^P) �^�O�⊮ (^]^N^P) �V�\�[���X�⊮ (^T^N^P) ���[�U�[��`�⊮ (^U^N^P) �r�W���A�� �r�W���A�� ��` �r�W���A�� �s ���z�u�� �s(�S��)�⊮ (^L^N^P) [�ύX����] [a] [w] ^X ���[�h (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) �lj� ���̃R���s���[�^�ł͎g�p�ł��܂���.
 Vim�̂��̃o�[�W�����ł͎g�p�ł��܂���.
�ȗ����� $VIMRUNTIME: " �͑������Ă��܂� (�y�[�W�T�C�Y���ŏ��l���Ă��܂�).
 �s %ld; ��� �t�@�C�����
 �‚̉��s �s�O(�g�b�v�s����) �}�[�N ���t�@�C���Q (�v %ld �s��) (�v 1 �s��) ������ȏ� �߂�܂���
 vim [����]  with OLE �T�|�[�g ������"
    ����΂��̃��b�Z�[�W����ł��܂�.
"
    ��g�p���ĕύX��J�o�[���܂�(":help recovery" ��Q��).
" �����ɂ���܂�!# ���� viminfo �t�@�C���� Vim %s �ɂ��Đ�������܂���.
# ���̃t�@�C���������ꂽ���� 'encoding' �̒l
# �ύX����ۂɂ͏\�����ӂ��Ă�������!

%-5s: %s%*s (�g�p�@: %s)%3d  %s %s  �s %ld%<%f%h%m%=%N �y�[�W%d �‚̃o�b�t�@���폜����܂���%d �‚̃o�b�t�@�������܂���%d �‚̃o�b�t�@���j������܂���%d �‚̒P�ꂪ���‚���܂��� (%s ��)%d �‚̃t�@�C�����ҏW��T���Ă��܂�
�ҏW���ׂ��t�@�C�������� %d �‚���܂���, �I�����܂���?%d �� (%d �’�) �̃t�@�C����ҏW���܂���%ld %s; %s #%ld  %s%ld ��; %ld �s �폜���܂���%ld �s�� %s �� %d �񏈗�����܂���%ld �s�� %s �� 1 �񏈗�����܂���%ld �s --%d%%--%ld �s���ύX����܂���%ld �s���t�B���^��������܂���%ld �s��C���f���g���܂��� %ld �s���ړ�����܂���%ld �s���C���f���g����܂�... %ld �s�������N����܂���%ld �s, %ld �ӏ��Y�����܂���%ld �s �lj����܂���%ld �b�o�߂��Ă��܂�%ld �ӏ��u�����܂���%lld ����%s Auto commands for "%s"%s �����f����܂���%s ���j������܂���%s �s %ld%s �ɂ�薢�����Ԃ������܂���%s ���ĊJ���܂���%s �� #%ld ��Ԃ��܂���%s �� %s ��Ԃ��܂����l %s �͑��� .aff �t�@�C���Ŏg�p���ꂽ�̂ƈقȂ�܂�%s, �s %ld%s �G���[�ꗗ %d of %d; %d �ƒG���[%sviminfo: %s �s��: �L�����Z��(&C)�p������(&D)�t�B���^(&F)�w���v(&H)&OK����(&O)
�L�����Z��(&C)&OK
�t�@�C���Ǎ�(&L)&Ok�Ǎ���p�ŊJ��(&O)
�Ƃɂ����ҏW����(&E)
����������(&R)
�폜����(&D)
�I������(&Q)
���~����(&A)�Ǎ���p�ŊJ��(&O)
�Ƃɂ����ҏW����(&E)
����������(&R)
�I������(&Q)
���~����(&A)�u��(&R)�A���h�D(&U)�͂�(&Y)
������(&N)�͂�(&Y)
������(&N)
�L�����Z��(&C)�͂�(&Y)
������(&N)
�S�ĕۑ�(&A)
�S�ĕ���(&D)
�L�����Z��(&C)' �͖��m�ł�. ���s�̑g�ݍ��ݒ[���͎��̂Ƃ���ł�:'-nb' �g�p�s�”\�ł�: �R���p�C�����ɖ����ɂ���Ă��܂�
'dictionary' �I�v�V��������ł��I�v�V���� 'history' ���[���ł�"%s" �ɂ� 'readonly' �I�v�V�������ݒ肳��Ă��܂�.
�㏑��������܂���?'thesaurus' �I�v�V��������ł�(%d of %d)%s%s: (+%ld for BOM)(2) ���̃t�@�C���̕ҏW�Z�b�V�������N���b�V������.
(�����܂�܂���) (����)(NFA) ���O�t�@�C�� %s ��J���܂���!+			�t�@�C���̍Ōォ��͂��߂�+<lnum>		<lnum> �s����͂��߂�+reverse		���]�f����g�p���Ȃ�(���`: +rv),
�����̓t�@�C�����������Ă��܂�.-               �W�����͂���e�L�X�g��Ǎ���--			���̂��Ƃɂ̓t�@�C��������-- �p�� ---- ������...--- �C���N���[�h���ꂽ�t�@�C�� --�폜��----�o�b�t�@�ɍs������܂���----cmd <command>	vimrc��[�h����O�� <command> ��s����--cmd ����--echo-wid		�E�B���h�EID��W���o�͂ɏo�͂���--literal		���C���h�J�[�h��W�J���Ȃ�--noplugin		�v���O�C���X�N���v�g��[�h���Ȃ�--not-a-term		���o�͂��[���łȂ��Ƃ̌x����X�L�b�v����--remote <files>	�”\�Ȃ��Vim�T�[�o�[�� <files> ��ҏW����--remote-expr <expr>	�T�[�o�[�� <expr> ��s���Č��ʂ�\������--remote-send <keys>	Vim�T�[�o�[�� <keys> �𑗐M���ďI������--remote-silent <files>  ����, �T�[�o�[�������Ă�x������o�͂��Ȃ�--remote-tab[-wait][-silent] <files>  --remote�Ńt�@�C��1�‚ɂ‚�1�‚̃^�u�y�[�W��J��--remote-wait <files>	--remote�� �t�@�C���̕ҏW���I���̂�҂�--remote-wait-silent <files>  ����, �T�[�o�[�������Ă�x������o�͂��Ȃ�--role <role>	���C���E�B���h�E��ʂ����ӂȖ�(role)��ݒ肷��--serverlist		Vim�T�[�o�[���̈ꗗ��\�����ďI������--servername <name>	Vim�T�[�o�[ <name> �ɑ��M/���O�ݒ肷��--socketid <xid>	�قȂ�GTK widget��Vim��J��--startuptime <file>	�N���ɂ����������Ԃ̏ڍׂ� <file> �֏o�͂���--ttyfail		���o�͂��[���łȂ���ΏI������--version		�o�[�W��������\�����I������--windowid <HWND>	�قȂ�Win32 widget�̓���Vim��J��-A			�A���r�A�ꃂ�[�h�ŋN������-C			Vi�݊����[�h: 'compatible'-D			�f�o�b�O���[�h-E			����Ex���[�h-F			�y���V�A�ꃂ�[�h�ŋN������-H			�w�u���C�ꃂ�[�h�ŋN������-L			-r�Ɠ���-M			�e�L�X�g�̕ҏW��s�Ȃ��Ȃ��悤�ɂ���-N			Vi��݊����[�h: 'nocompatible-O[N]		-o�Ɠ���������������-P <�e�̃^�C�g��>	Vim��e�A�v���P�[�V�����̒��ŋN������-R			�Ǎ���p���[�h ("view" �Ɠ���)-S <session>		�ŏ��̃t�@�C����[�h��t�@�C�� <session> ��捞��-T <terminal>	�[���� <terminal> �ɐݒ肷��-U <gvimrc>		.gvimrc�̑���� <gvimrc> ��g��-V[N][fname]		���O�o�͐ݒ� [���x�� N] [���O�t�@�C���� fname]-W <scriptout>	���͂����S�R�}���h��t�@�C�� <scriptout> �ɕۑ�����-X			X�T�[�o�[�ɐڑ����Ȃ�-Z			�������[�h ("rvim" �Ɠ���)-b			�o�C�i�����[�h-background <color>	�w�i�F�� <color> ��g��(���`: -bg)-boldfont <font>	������ <font> ��g��-borderwidth <width>	���E�̕��� <width> �ɂ���(���`: -bw)-c <command>		�ŏ��̃t�@�C����[�h�� <command> ��s����-c ����-d			�������[�h ("vidiff" �Ɠ���)-dev <device>		I/O�� <device> ��g�p����-display <display>	vim��w�肵�� X �T�[�o�[�ɐڑ�����-display <display>	<display> ��vim��s����-display <display>	<display> ��vim��s����(���`: --display)-e			Ex���[�h ("ex" �Ɠ���)-f			�E�B���h�E��J���̂� newcli ��g�p���Ȃ�-f or  --nofork	�t�H�A�O���E���h: GUI��n�߂�Ƃ���fork���Ȃ�-font <font>		�e�L�X�g�\���� <font> ��g��(���`: -fn)-foreground <color>	�O�i�F�� <color> ��g��(���`: -fg)-g			GUI�ŋN������ ("gvim" �Ɠ���)-geometry <geom>	�����z�u�� <geom> ��g��(���`: -geom)-h or  --help	�w���v(���̃��b�Z�[�W)��\�����I������-i <viminfo>		.viminfo�̑���� <viminfo> ��g��-iconic		�ŏ���������Ԃ�vim��N������-italicfont <for>	�Α̎��� <font> ��g��-l			Lisp���[�h-m			�ύX (�t�@�C���ۑ���) ��ł��Ȃ��悤�ɂ���-menuheight <height>	���j���[�o�[�̍����� <height> �ɂ���(���`: -mh)-n			�X���b�v�t�@�C����g�p��������������-o[N]		N �ƒE�B���h�E��J��(�ȗ��l: �t�@�C���ɂ‚�1��)-p[N]		N �ƒ^�u�y�[�W��J��(�ȗ��l: �t�@�C���ɂ‚�1��)-q [errorfile]  �ŏ��̃G���[�ŕҏW����-r			�X���b�v�t�@�C����񋓂��I��-r (�t�@�C����)	�N���b�V�������Z�b�V�����𕜋A-register		����gvim��OLE�Ƃ��ēo�^����-reverse		���]�f����g�p����(���`: -rv)-s			�T�C�����g(�o�b�`)���[�h ("ex" ��p)-s <scriptin>	�t�@�C�� <scriptin> ����m�[�}���R�}���h��Ǎ���-scrollbarwidth <width>  �X�N���[���o�[�̕��� <width> �ɂ���(���`: -sw)-t �^�O         �^�O����`���ꂽ�Ƃ��납��ҏW����-u <vimrc>		.vimrc�̑���� <vimrc> ��g��-unregister		gvim��OLE�o�^������-v			Vi���[�h ("vi" �Ɠ���)-w <scriptout>	���͂����S�R�}���h��t�@�C�� <scriptout> �ɒlj�����-x			�Í������ꂽ�t�@�C����ҏW����-xrm <resource>	����̃��\�[�X��g�p����-y			�C�[�W�[���[�h ("evim" �Ɠ���, ���[�h��)%s �� %d �s�ڂ� �d������ / �s�𖳎����܂���: %s%s �� %d �s�ڂ� �P��̌�� /encoding= �s�𖳎����܂���: %s1 �‚̃o�b�t�@���폜����܂���1 �‚̃o�b�t�@�������܂���1 �‚̃o�b�t�@���j������܂���1 ����1 �s�� %s �� %d �񏈗�����܂���1 �s�� %s �� 1 �񏈗�����܂���1 �s --%d%%--1 �s���ύX����܂���1 �s��C���f���g���܂��� 1 �s �폜���܂���1 �s���ړ�����܂���1 �s�������N����܂���1 �s, 1 �ӏ��Y�����܂����ҏW���ׂ��t�@�C���� 1 �‚���܂���, �I�����܂���?1 �s �lj����܂���1 �ӏ��u�����܂���  ��2���[�U�[ gvimrc: "  ��3���[�U�[ gvimrc: ": ���̑��M�Ɏ��s���܂���.
: ���M�Ɏ��s���܂���.
: ���M�Ɏ��s���܂���. ���[�J���ł̎��s��݂Ă��܂�
; �Y�� <%s>%s%s  %d,  16�i�� %02x,  8�i�� %03o<�J���܂���> <��>> %d, 16�i�� %04x, 8�i�� %o> %d, 16�i�� %08x, 8�i�� %o??? �������� ???END �܂ł̍s���j�󂳂�Ă���悤�ł�??? �������� ???END �܂ł̍s���}�����폜���ꂽ�悤�ł�???�u���b�N������܂���???�u���b�N����ł�???END???�s�����Ԉ��Ă��܂�???�s�������Ă��܂�???�����̍s�������Ă��܂�ANCHOR_BUF_SIZE �������߂��܂�.�V�f�[�^�x�[�X��lj�cscope�f�[�^�x�[�X %s ��lj�%s �� %d �s�ڂ� affix �� BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST �Ɏg�p���Ă�������: %s%s (%d �s��) �� affix �������߂��܂�: %s�S���S�Ă�cscope�f�[�^�x�[�X��Z�b�g���܂��S�ẴC���N���[�h���ꂽ�t�@�C�������‚���܂������Ɉ�ԐV�����ύX�ł����Ɉ�ԌÂ��ύX�ł����Ƀ^�u�y�[�W��1�‚�������܂������ɃE�B���h�E��1�‚�������܂����lj��t�@�C������������܂����s�X�N���v�g�t�@�C����ĂъJ�����Ƃ��܂���: "�n�߂ɖ߂��t���܂͈̔͂��w�肳��܂���, ���ւ��܂���?Vim�̓o�^���[�U�[�ɂȂ��Ă�������!�r�[�b!���O�� %ld �o�C�g����SAL�s �� SOFO�s �� %s �ŗ����w�肳��Ă��܂��u���[�N�|�C���g "%s%s" �s %ld%s �� %d �s�ڂ� ��͉��Ă��܂�: %sSYLLABLE ���w�肳��Ȃ� COMPOUNDSYLMAX���s�̂��߂ɃV�F����ďo����: "%s"�ϊ��ɕK�v�Ȉꎞ�t�@�C�������‚���܂����L�����Z���쐬�ł��܂��� ���s�ł��܂��� $VIMRUNTIME/rgb.txt��J���܂���NIL��J���܂���:
�t�@�C�� "%s" ��J���܂����Ǎ��p�Ƃ��ĊJ���܂����X�N���v�g�o�͗p��J���܂����f�B���N�g���͎捞�߂܂���: "%s"'undodir'�̃f�B���N�g���ɃA���h�D�t�@�C��������߂܂���"%.*s" ��֕ϊ�:�^�u�y�[�W��‚����� %s / %s; �s %ld of %ld; �P�� %lld / %lld; �o�C�g %lld / %lld�� %s / %s; �s %ld / %ld; �P�� %lld / %lld; ���� %lld / %lld; �o�C�g %lld of %lld�R�}���h���C���R���p�C��: �R���p�C��: �m�[�h %d ��(�S %d �’�) ��k���܂���; �c�� %d (%d%%)�P��c���[��k���Ă��܂�...%s (%d �s��) �̒P���ϊ��ł��܂���ł���: %s%s ��̕ϊ��̓T�|�[�g����Ă��܂���%s ��̎��̕ϊ��̓T�|�[�g����Ă��܂���: %s ���� %s ��'charconvert' �ɂ��ϊ������s���܂���DLL����֐��|�C���^��擾�ł��܂���ł����Z�L�����e�B�R���e�L�X�g %s �� %s ����擾�ł��܂���. �폜���܂�!vim32.dll ��[�h�ł��܂���ł���NFA���K�\���G���W���p�̃��O�t�@�C������p�Ƃ��ĊJ���܂���BNFA���K�\���G���W���p�̃��O�t�@�C������p�Ƃ��ĊJ���܂���B���O�͕W���o�͂ɏo�͂��܂��B�Z�L�����e�B�R���e�L�X�g %s �� %s �ɐݒ�ł��܂���Cscope �^�O: %s���݂� %s����: "%s"�f�o�b�O�s%s �� %d �s�ڂ� PFX ���ڂ̌�� COMPOUNDFORBIDFLAG �̒�`�͌������ʂ𐶂��邱�Ƃ�����܂�%s �� %d �s�ڂ� PFX ���ڂ̌�� COMPOUNDPERMITFLAG �̒�`�͌������ʂ𐶂��邱�Ƃ�����܂�Vim�ō�����\������%s �� %d �s�ڂ� �A�� affix �u���b�N�̃t���O�̑g�����ɈႢ������܂�: %s�����f�B���N�g���f�B���N�g��	*.nothing
�{���ɏ㏑�����܂������s���܂���!���X�g�^�̒l��2�ˆȏ�� ; �����o����܂�����%s �� %d �s�ڂ� �d������ /encoding= �s�𖳎����܂���: %s%s �� %d �s�ڂ� �d������ /regions= �s�𖳎����܂���: %s%s �� %d �s�ڂ� �d������ affix ��o���܂���: %s%s �� %d �s�ڂ� MAP �ɏd����������������܂��d�������t�B�[���h��: %s%s �� %d �s�ڂ� �d���P�ꂪ���‚���܂���: %sE100: �������[�h�ł��鑼�̃o�b�t�@�͂���܂���E101: �������[�h�̃o�b�t�@��2�ˆȏ゠��̂ŁA�ǂ��g��������ł��܂���E102: �o�b�t�@ "%s" �����‚���܂���E103: �o�b�t�@ "%s" �͍������[�h�ł͂���܂���E104: ������Escape�͎g�p�ł��܂���E105: :source �Ŏ捞�ރt�@�C���ȊO�ł� :loadkeymap ��g���܂���E107: �J�b�R '(' ������܂���: %sE108: ���̕ϐ��͂���܂���: "%s"E109: '?' �̌�� ':' ������܂���E10: \ �̌�� / �� ? �� & �łȂ���΂Ȃ�܂���E110: ')' �����‚���܂���E111: ']' �����‚���܂���E112: �I�v�V������������܂���: %sE113: ���m�̃I�v�V�����ł�: %sE114: ���p�� (") ������܂���: %sE115: ���p�� (') ������܂���: %sE116: �֐��̖����Ȉ����ł�: %sE117: ���m�̊֐��ł�: %sE118: �֐��̈��������߂��܂�: %sE119: �֐��̈���������܂���: %sE11: �R�}���h���C���ł͖����ł�; <CR>�Ŏ��s, CTRL-C�ł�߂�E120: �X�N���v�g�ȊO��<SID>���g���܂���: %sE121: ����`�̕ϐ��ł�: %sE122: �֐� %s �͒�`�ςł�, �Ē�`����ɂ� ! ��lj����Ă�������E123: ����`�̊֐��ł�: %sE124: '(' ������܂���: %sE125: �s���Ȉ����ł�: %sE126: :endfunction ������܂���E127: �֐� %s ��Ē�`�ł��܂���: �g�p���ł�E128: �֐����͑啶���� "s:" �Ŏn�܂�Ȃ���΂Ȃ�܂���: %sE129: �֐������v������܂�E12: ���݂̃f�B���N�g����^�O�����ł�exrc/vimrc�̃R�}���h�͋��‚���܂���E130: ���m�̊֐��ł�: %sE131: �֐� %s ��폜�ł��܂���: �g�p���ł�E132: �֐��ďo�̓���q���� 'maxfuncdepth' �𒴂��܂���E133: �֐��O�� :return ������܂���E134: �s��ꎩ�g�ɂ͈ړ��ł��܂���E135: *�t�B���^* autocommand�͌��݂̃o�b�t�@��ύX���Ă͂����܂���E136: viminfo: �G���[�����߂���̂�, �ȍ~�̓X�L�b�v���܂�E137: viminfo�t�@�C���������݂ł��܂���: %sE138: viminfo�t�@�C�� %s ��ۑ��ł��܂���!E139: �������O�̃t�@�C�������̃o�b�t�@�œǍ��܂�Ă��܂�E13: �t�@�C�������݂��܂� (! ��lj��ŏ㏑)E140: �o�b�t�@�𕔕��I�ɕۑ�����ɂ� ! ��g���Ă�������E141: �o�b�t�@ %ld �ɂ͖��O������܂���E142: �t�@�C���͕ۑ�����܂���ł���: 'write' �I�v�V�����ɂ�薳���ł�E143: autocommand���\�������V�����o�b�t�@ %s ��폜���܂���E144: ���ł͂Ȃ������� :z �ɓn����܂���E145: rvim�ł̓V�F���R�}���h��g���܂���E146: ���K�\���͕����ŋ�؂邱�Ƃ��ł��܂���E147: :global ��͈͕t���ōċA�I�ɂ͎g���܂���E148: global�R�}���h�ɐ��K�\�����w�肳��Ă��܂���E149: �c�O�ł��� %s �ɂ̓w���v������܂���E14: �����ȃA�h���X�ł�E150: �f�B���N�g���ł͂���܂���: %sE151: �}�b�`�͂���܂���: %sE152: �����ݗp�� %s ��J���܂���E153: �Ǎ��p�� %s ��J���܂���E154: �^�O "%s" ���t�@�C�� %s/%s �ɏd�����Ă��܂�E155: ���m��sign�ł�: %sE156: sign��������܂���E157: ������sign���ʎq�ł�: %ldE158: �����ȃo�b�t�@���ł�: %sE159: sign�̔ԍ�������܂���E15: �����Ȏ��ł�: %sE160: ���m��sign�R�}���h�ł�: %sE161: �u���[�N�|�C���g�����‚���܂���: %sE162: �o�b�t�@ "%s" �̕ύX�͕ۑ�����Ă��܂���E163: �ҏW����t�@�C����1�‚�������܂���E164: �ŏ��̃t�@�C�����O�ɂ͍s���܂���E165: �Ō�̃t�@�C����z���Č�ɂ͍s���܂���E166: �����N���ꂽ�t�@�C���ɏ����߂܂���E167: :scriptencoding ���捞�X�N���v�g�ȊO�Ŏg�p����܂���E168: :finish ���捞�X�N���v�g�ȊO�Ŏg�p����܂���E169: �R�}���h���ċA�I�߂��܂�E16: �����Ȕ͈͂ł�E170: :endfor ������܂���E170: :endwhile ������܂���E171: :endif ������܂���E172: �t�@�C������ 1 �‚ɂ��Ă�������E173: �ҏW���ׂ��t�@�C�������� %ld �‚���܂�E173: �ҏW���ׂ��t�@�C���� 1 �‚���܂�E174: �R�}���h�����ɂ���܂�: �Ē�`����ɂ� ! ��lj����Ă�������E175: �����͒�`����Ă��܂���E176: �����̐��������ł�E177: �J�E���g��2�d�w�肷�邱�Ƃ͂ł��܂���E178: �J�E���g�̏ȗ��l�������ł�E179: -addr �ɂ͈������K�v�ł�E179: -complete �ɂ͈������K�v�ł�E17: "%s" �̓f�B���N�g���ł�E180: �����ȃA�h���X�^�C�v�l�ł�: %sE180: �����ȕ⊮�w��ł�: %sE181: �����ȑ����ł�: %sE182: �����ȃR�}���h���ł�E183: ���[�U�[��`�R�}���h�͉p�啶���Ŏn�܂�Ȃ���΂Ȃ�܂���E184: ���̃��[�U�[��`�R�}���h�͂���܂���: %sE185: �J���[�X�L�[�� '%s' �����‚���܂���E186: �O�̃f�B���N�g���͂���܂���E187: ���mE188: ���̃v���b�g�z�[���ɂ̓E�B���h�E�ʒu�̎擾�@�\�͎�������Ă��܂���E189: "%s" �����݂��܂� (�㏑����ɂ� ! ��lj����Ă�������)E18: �\�����ʕ����� :let �ɂ���܂���E190: "%s" ����ݗp�Ƃ��ĊJ���܂���E191: ������1�����̉p�������p�� (' �� `) �łȂ���΂����܂���E192: :normal �̍ċA���p���[���Ȃ�߂��܂���E193: �֐��̊O�� :endfunction ������܂���E194: '#'��u�������镛�t�@�C���̖��O������܂���E195: viminfo�t�@�C����Ǎ��p�Ƃ��ĊJ���܂���E196: ���̃o�[�W�����ɍ����͂���܂���E197: ����� "%s" �ɐݒ�ł��܂���E198: cmd_pchar ���R�}���h���𒴂��܂���E199: �A�N�e�B�u�ȃE�B���h�E���o�b�t�@���폜����܂���E19: �}�[�N�ɖ����ȍs�ԍ����w�肳��Ă��܂���E200: *ReadPre autocommand ���t�@�C����Ǎ��s�‚ɂ��܂���E201: *ReadPre autocommand �͌��݂̃o�b�t�@��ς����܂���E202: �ϊ����t�@�C����Ǎ��s�‚ɂ��܂���E203: �ۑ�����o�b�t�@��autocommand���폜������܂���E204: autocommand���\�����ʕ��@�ōs����ύX���܂���E205: patchmode: ���{�t�@�C����ۑ��ł��܂���E206: patchmode: ��̌��{�t�@�C����touch�ł��܂���E207: �o�b�N�A�b�v�t�@�C������܂���E208: "%s" ����ݒ��̃G���[�ł�E209: "%s" ��‚��鎞�ɃG���[�ł�E20: �}�[�N�͐ݒ肳��Ă��܂���E210: "%s" ��Ǎ����̃G���[�ł�E211: �t�@�C�� "%s" �͊��ɑ��݂��܂���E212: �����ݗp�Ƀt�@�C����J���܂���E213: �ϊ��ł��܂��� (! ��lj��ŕϊ������ɕۑ�)E214: �ۑ��p�ꎞ�t�@�C�������‚���܂���E215: * �̌�ɕs���ȕ���������܂���: %sE216: ���̂悤�ȃC�x���g�͂���܂���: %sE216: ���̂悤�ȃO���[�v�����̓C�x���g�͂���܂���: %sE217: �S�ẴC�x���g�ɑ΂��Ă�autocommand�͎��s�ł��܂���E218: autocommand�̓���q���[�߂��܂�E219: { ������܂���.E21: 'modifiable' ���I�t�Ȃ̂�, �ύX�ł��܂���E220: } ������܂���.E222: �Ǎ��o�b�t�@�֒lj�E223: �ċA�I�}�b�s���OE224: %s �Ƃ����O���[�o���Z�k���͂͊��ɑ��݂��܂�E225: %s �Ƃ����O���[�o���}�b�s���O�͊��ɑ��݂��܂�E226: %s �Ƃ����Z�k���͂͊��ɑ��݂��܂�E227: %s �Ƃ����}�b�s���O�͊��ɑ��݂��܂�E228: makemap: �s���ȃ��[�hE229: GUI��J�n�ł��܂���E22: �X�N���v�g�̓���q���[�߂��܂�E230: "%s"����Ǎ��ނ��Ƃ��ł��܂���E231: 'guifontwide' �������ł�E232: ���b�Z�[�W�ƃR�[���o�b�N�̂��� BalloonEval ��쐬�ł��܂���E233: �f�B�X�v���C��J���܂���E234: ���m�̃t�H���g�Z�b�g: %sE235: ���m�̃t�H���g: %sE236: �t�H���g "%s" �͌Œ蕝�ł͂���܂���E237: �v�����^�̑I��Ɏ��s���܂���E238: ��G���[: %sE239: ������sign�̃e�L�X�g�ł�: %sE23: ���t�@�C���͂���܂���E240: X �T�[�o�[�ւ̐ڑ�������܂���E241: %s �֑��邱�Ƃ��ł��܂���E243: �����̓T�|�[�g����܂���: "-%s"; OLE�ł�g�p���Ă�������.E244: �����Z�b�g�� "%s" �͕s���ł� (�t�H���g�� "%s")E244: �i���� "%s" �͕s���ł� (�t�H���g�� "%s")E245: '%c' �͕s���ȕ����ł� (�t�H���g�� "%s")E246: autocommand �� FileChangedShell ���o�b�t�@��폜���܂���E247: %s �Ƃ������O�̓o�^���ꂽ�T�[�o�[�͂���܂���E248: �ړI�̃v���O�����ւ̃R�}���h���M�Ɏ��s���܂���E24: ���̂悤�ȒZ�k���͂͂���܂���E250: �ȉ��̕����Z�b�g�̃t�H���g������܂��� %s:E251: VIM ���̂̓o�^�v���p�e�B���s���ł�. �������܂���!E252: �t�H���g�Z�b�g��: %sE253: �t�H���g�Z�b�g��: %sE254: %s �̐F��蓖�Ă��܂���E255: sign �̃f�[�^��Ǎ��߂܂���ł���E256: �n���O���I�[�g�}�g���G���[E257: cstag: �^�O�����‚���܂���E258: �N���C�A���g�֑��邱�Ƃ��ł��܂���E259: cscope�N�G���[ %s of %s �ɊY��������܂���ł���E25: GUI�͎g�p�s�”\�ł�: �R���p�C�����ɖ����ɂ���Ă��܂�E261: cscope�ڑ� %s �����‚���܂���ł���E262: cscope�̐ڑ� %ld ��Ǎ��ݒ��̃G���[�ł�E263: ���̃R�}���h�͖����ł�,���߂�Ȃ���: Python���C�u������[�h�ł��܂���ł���.E264: Python: I/O�I�u�W�F�N�g�̏������G���[E265: $_ �͕�����̃C���X�^���X�łȂ���΂Ȃ�܂���E266: ���̃R�}���h�͖����ł�,���߂�Ȃ���: Ruby���C�u������[�h�ł��܂���ł���.E267: �\������ return �ł�E268: �\������ next �ł�E269: �\������ break �ł�E26: �w�u���C��͎g�p�s�”\�ł�: �R���p�C�����ɖ����ɂ���Ă��܂�
E270: �\������ redo �ł�E271: rescue �̊O�� retry �ł�E272: ��舵���Ȃ�������O������܂�E273: ���m��longjmp���: %dE277: �T�[�o�[�̉���������܂���E27: �y���V�A��͎g�p�s�”\�ł�: �R���p�C�����ɖ����ɂ���Ă��܂�
E280: TCL �v���I�G���[: reflist ����!? vim-dev@vim.org �ɕ񍐂��Ă�������E282: "%s"����Ǎ��ނ��Ƃ��ł��܂���E283: "%s" �ɊY������}�[�N������܂���E284: IC�̒l��ݒ�ł��܂���E285: �C���v�b�g�R���e�L�X�g�̍쐬�Ɏ��s���܂���E286: �C���v�b�g���\�b�h�̃I�[�v���Ɏ��s���܂���E287: �x��: IM�̔j��R�[���o�b�N��ݒ�ł��܂���ł���E288: �C���v�b�g���\�b�h�͂ǂ�ȃX�^�C����T�|�[�g���܂���E289: �C���v�b�g���\�b�h�� my preedit type ��T�|�[�g���܂���E28: ���̂悤�Ȗ��̃n�C���C�g�O���[�v�͂���܂���: %sE293: �u���b�N�����b�N����Ă��܂���E294: �X���b�v�t�@�C���Ǎ����ɃV�[�N�G���[�ł�E295: �X���b�v�t�@�C���̓Ǎ��݃G���[�ł�E296: �X���b�v�t�@�C�������ݎ��ɃV�[�N�G���[�ł�E297: �X���b�v�t�@�C���̏����݃G���[�ł�E298: �u���b�N 0 ��擾�ł��܂���?E298: �u���b�N 1 ��擾�ł��܂���?E298: �u���b�N 2 ��擾�ł��܂���?E299: �T���h�{�b�N�X�ł� Safe ���W���[����g�p���Ȃ�Perl�X�N���v�g�͋ւ����Ă��܂�E29: �܂��e�L�X�g���}������Ă��܂���E300: �X���b�v�t�@�C�������ɑ��݂��܂� (symlink�ɂ��U��?)E301: ������, �X���b�v�t�@�C���������܂���!!!E302: �X���b�v�t�@�C���̖��O��ς����܂���E303: "%s" �̃X���b�v�t�@�C����J���Ȃ��̂Ń��J�o���͕s�”\�ł�E304: ml_upd_block0(): �u���b�N 0 ��擾�ł��܂���ł���??E305: %s �ɂ̓X���b�v�t�@�C�������‚���܂���E306: %s ��J���܂���E307: %s ��Vim�̃X���b�v�t�@�C���ł͂Ȃ��悤�ł�E308: �x��: ���{�t�@�C�����ύX����Ă��܂�E309: %s ����u���b�N 1 ��Ǎ��߂܂���E30: �ȑO�ɃR�}���h�s������܂���E310: �u���b�N 1 ��ID���Ԉ��Ă��܂�(%s ��.swp�t�@�C���łȂ�?)E311: ���J�o���������܂�܂���E312: ���J�o���̍Œ��ɃG���[�����o����܂���; ???�Ŏn�܂�s��Q�Ƃ��Ă�������E313: �X���b�v�t�@�C���������̂ňێ��ł��܂���E314: �ێ��Ɏ��s���܂���E315: ml_get: ������lnum�ł�: %ldE316: ml_get: �s %ld ��‚����܂���E317: �|�C���^�u���b�N��ID���Ԉ��Ă��܂�E317: �|�C���^�u���b�N��ID���Ԉ��Ă��܂� 2E317: �|�C���^�u���b�N��ID���Ԉ��Ă��܂� 3E317: �|�C���^�u���b�N��ID���Ԉ��Ă��܂� 4E318: �X�V���ꂽ�u���b�N�����߂��邩��?E319: ���̃o�[�W�����ł͂��̃R�}���h�͗��p�ł��܂���, ���߂�Ȃ���E31: ���̂悤�ȃ}�b�s���O�͂���܂���E320: �s %ld �����‚���܂���E321: "%s" �̓����[�h�ł��܂���ł���E322: �s�ԍ����͈͊O�ł�: %ld �����Ă��܂�E323: �u���b�N %ld �̍s�J�E���g���Ԉ��Ă��܂�E324: PostScript�o�͗p�̃t�@�C����J���܂���E325: ����E326: �X���b�v�t�@�C�����������‚���܂���E327: ���j���[�A�C�e���̃p�X�̕������T�u���j���[�ł͂���܂���E328: ���j���[�͑��̃��[�h�ɂ�������܂�E329: "%s" �Ƃ������j���[�͂���܂���E32: �t�@�C����������܂���E330: ���j���[�p�X�̓T�u���j���[�𐶂���ׂ��ł͂���܂���E331: ���j���[�o�[�ɂ͒��ڃ��j���[�A�C�e����lj��ł��܂���E332: ��؂�̓��j���[�p�X�̈ꕔ�ł͂���܂���E333: ���j���[�p�X�̓��j���[�A�C�e���𐶂��Ȃ���΂����܂���E334: ���j���[�����‚���܂���: %sE335: %s �ɂ̓��j���[����`����Ă��܂���E336: ���j���[�p�X�̓T�u���j���[�𐶂��Ȃ���΂����܂���E337: ���j���[�����‚���܂��� - ���j���[����m�F���Ă�������E338: �R���\�[�����[�h�ł̓t�@�C���u���E�U��g���܂���, ���߂�Ȃ���E339: �p�^�[�������߂��܂�E33: ���K�\���u�����܂����s����Ă��܂���E340: �s�������Ȃ�߂��܂���E341: ���G���[: lalloc(%ld,)E342: ������������܂���!  (%lu �o�C�g����v��)E343: �����ȃp�X�ł�: '**[���l]' ��path�̍Ōォ '%s' �������ĂȂ��Ƃ����܂���.E344: cdpath�ɂ� "%s" �Ƃ����t�@�C��������܂���E345: path�ɂ� "%s" �Ƃ����t�@�C��������܂���E346: cdpath�ɂ͂���ȏ� "%s" �Ƃ����t�@�C��������܂���E347: �p�X�ɂ͂���ȏ� "%s" �Ƃ����t�@�C��������܂���E348: �J�[�\���̈ʒu�ɂ͕����񂪂���܂���E349: �J�[�\���̈ʒu�ɂ͎��ʎq������܂���E34: �R�}���h���܂����s����Ă��܂���E350: ���݂� 'foldmethod' �ł͐܏�݂�쐬�ł��܂���E351: ���݂� 'foldmethod' �ł͐܏�݂�폜�ł��܂���E352: ���݂� 'foldmethod' �ł͐܏�݂���ł��܂���E353: ���W�X�^ %s �ɂ͉�����܂���E354: �����ȃ��W�X�^��: '%s'E355: ���m�̃I�v�V�����ł�: %sE356: get_varp �G���[E357: 'langmap': %s �ɑΉ����镶��������܂���E358: 'langmap': �Z�~�R�����̌�ɗ]���ȕ���������܂�: %sE359: �X�N���[�����[�h�̐ݒ�ɂ͑Ή����Ă��܂���E35: ���K�\�����܂����s����Ă��܂���E360: -f �I�v�V�����ŃV�F����s�ł��܂���E363: �p�^�[���� 'maxmempattern' �ȏ�̃�������g�p���܂�E364: "%s"() �̃��C�u�����ďo�Ɏ��s���܂���E365: PostScript�t�@�C���̈�Ɏ��s���܂���E367: ���̃O���[�v�͂���܂���: "%s"E369: �����ȍ��ڂł�: %s%%[]E36: �E�B���h�E�ɏ\���ȍ��������͕�������܂���E370: ���C�u���� %s ��[�h�ł��܂���ł���E371: �R�}���h������܂���E372: �t�H�[�}�b�g������� %%%c �����߂��܂�E373: �t�H�[�}�b�g������ɗ\������ %%%c ������܂���E374: �t�H�[�}�b�g������� ] ������܂���E375: �t�H�[�}�b�g������ł� %%%c �̓T�|�[�g����܂���E376: �t�H�[�}�b�g������̑O�u�ɖ����� %%%c ������܂�E377: �t�H�[�}�b�g������ɖ����� %%%c ������܂�E378: 'errorformat' �Ƀp�^�[�����w�肳��Ă��܂���E379: �f�B���N�g��������������ł�E37: �Ō�̕ύX���ۑ�����Ă��܂���E37: �Ō�̕ύX���ۑ�����Ă��܂��� (! ��lj��ŕύX��j��)E380: quickfix �X�^�b�N�̖����ł�E381: quickfix �X�^�b�N�̐擪�ł�E382: 'buftype' �I�v�V�������ݒ肳��Ă���̂ŏ����݂܂���E383: �����Ȍ���������ł�: %sE384: ��܂Ō������܂������Y���ӏ��͂���܂���: %sE385: ���܂Ō������܂������Y���ӏ��͂���܂���: %sE386: ';' �̂��Ƃɂ� '?' �� '/' �����҂���Ă���E387: ���ݍs�ɊY��������܂�E388: ��`��‚����܂���E389: �p�^�[����‚����܂���E38: ��������ł�E390: �s���Ȉ����ł�: %sE391: ���̂悤�ȍ\���N���X�^�͂���܂���: %sE392: ���̂悤�ȍ\���N���X�^�͂���܂���: %sE393: �����ł̓O���[�v�͋��‚���܂���E394: %s �͈̔͗v�f�����‚���܂���E395: ���̏ꏊ�ł͈���contains�͋��‚���Ă��܂���E397: �t�@�C�������K�v�ł�E398: '=' ������܂���: %sE399: ����������܂���: �\���͈� %sE39: ���l���v������Ă��܂�E400: �N���X�^���w�肳��Ă��܂���E401: �p�^�[����؂肪���‚���܂���: %sE402: �p�^�[���̂��ƂɃS�~������܂�: %sE403: �\������: �A���s�p�^�[����2�x�w�肳��܂���E404: �s���Ȉ����ł�: %sE405: ����������܂���: %sE406: ��̈���: %sE407: %s �̓R�R�ł͋��‚���Ă��܂���E408: %s �͓�e���X�g�̐擪�łȂ���΂Ȃ�Ȃ�E409: ���m�̃O���[�v��: %sE40: �G���[�t�@�C�� %s ��J���܂���E410: ������ :syntax �̃T�u�R�}���h: %sE411: �n�C���C�g�O���[�v�����‚���܂���: %sE412: �������[���ł͂Ȃ�: ":highlight link %s"E413: ���������߂��܂�: ":highlight link %s"E414: �O���[�v���ݒ肳��Ă���̂Ńn�C���C�g�����N�͖�������܂�E415: �\�����ʓ����ł�: %sE416: ����������܂���: %sE417: ����������܂���: %sE418: �s���Ȓl�ł�: %sE419: ���m�̑O�i�F�ł�E41: ���������s���ʂĂ܂���!E420: ���m�̔w�i�F�ł�E421: �J���[����ԍ���F���ł��܂���: %sE422: �I�[�R�[�h�����߂��܂�: %sE423: �s���Ȉ����ł�: %sE424: �����̈قȂ�n�C���C�g�������g���߂��Ă��܂�E425: �ŏ��̊Y���^�O��z���Ė߂邱�Ƃ͂ł��܂���E426: �^�O�����‚���܂���: %sE427: �Y���^�O��1�‚�����������܂���E428: �Ō�̊Y���^�O��z���Đi�ނ��Ƃ͂ł��܂���E429: �t�@�C�� "%s" ������܂���E42: �G���[�͂���܂���E430: �^�O�t�@�C���̃p�X�� %s �ɐ؂�̂Ă��܂���
E431: �^�O�t�@�C�� "%s" �̃t�H�[�}�b�g�ɃG���[������܂�E432: �^�O�t�@�C�����\�[�g����Ă��܂���: %sE433: �^�O�t�@�C��������܂���E434: �^�O�p�^�[����‚����܂���E435: �^�O��‚����Ȃ��̂ŒP�ɐ������܂�!E436: termcap�� "%s" �̃G���g��������܂���E437: �[���� "cm" �@�\���K�v�ł�E438: u_undo: �s�ԍ����Ԉ��Ă��܂�E439: �A���h�D���X�g�����Ă��܂�E43: �Y�������񂪔j�����Ă��܂�E440: �A���h�D�s������܂���E441: �v���r���[�E�B���h�E������܂���E442: ����ƉE���𓯎��ɕ������邱�Ƃ͂ł��܂���E443: ���̃E�B���h�E����������Ă��鎞�ɂ͏���ł��܂���E444: �Ō�̃E�B���h�E��‚��邱�Ƃ͂ł��܂���E445: ���̃E�B���h�E�ɂ͕ύX������܂�E446: �J�[�\���̉��Ƀt�@�C����������܂���E447: path�ɂ� "%s" �Ƃ����t�@�C��������܂���E448: ���C�u�����̊֐� %s ��[�h�ł��܂���ł���E449: �����Ȏ���󂯎��܂���E44: �s���Ȑ��K�\���v���O�����ł�E455: PostScript�o�̓t�@�C���̏����݃G���[�ł�E456: PostScript�̃��\�[�X�t�@�C�� "%s.ps" �����‚���܂���E456: PostScript�̃��\�[�X�t�@�C�� "cidfont.ps" �����‚���܂���E456: PostScript�̃��\�[�X�t�@�C�� "prolog.ps" �����‚���܂���E456: �t�@�C�� "%s" ��J���܂���E457: PostScript�̃��\�[�X�t�@�C�� "%s" ��Ǎ��߂܂���E459: �O�̃f�B���N�g���ɖ߂�܂���E45: 'readonly' �I�v�V�������ݒ肳��Ă��܂� (! ��lj��ŏ㏑��)E460: ���\�[�X�t�H�[�N�������邩����܂��� (! ��lj��ŋ���)E461: �s���ȕϐ����ł�: %sE462: "%s" ����[�h���鏀�����ł��܂���ł���E463: �̈悪�ی삳��Ă���̂�, �ύX�ł��܂���E464: ���[�U�[��`�R�}���h�̂����܂��Ȏg�p�ł�E465: :winsize �ɂ�2�‚̐��l�̈������K�v�ł�E466: :winpos �ɂ�2�‚̐��l�̈������K�v�ł�E467: �J�X�^���⊮�ɂ͈����Ƃ��Ċ֐����K�v�ł�E468: �⊮�����̓J�X�^���⊮�ł����g�p�ł��܂���E469: ������ cscopequickfix �t���O %c �� %c �ł�E46: �ǎ��p�ϐ� "%s" �ɂ͒l��ݒ�ł��܂���E470: �R�}���h�����f����܂���E471: �������K�v�ł�E472: �R�}���h�����s���܂���E473: ���G���[�ł�E474: �����Ȉ����ł�E475: �����Ȉ����ł�: %sE476: �����ȃR�}���h�ł�E477: ! �͋��‚���Ă��܂���E478: �Q�ĂȂ��ł�������E479: �Y���͂���܂���E47: �G���[�t�@�C���̓Ǎ����ɃG���[���������܂���E480: �Y���͂���܂���: %sE481: �͈͎w��͋��‚���Ă��܂���E482: �t�@�C�� %s ��쐬�ł��܂���E483: �ꎞ�t�@�C���̖��O��擾�ł��܂���E484: �t�@�C�� "%s" ��J���܂���E485: �t�@�C�� %s ��Ǎ��߂܂���E486: �p�^�[���͌��‚���܂���ł���: %sE487: �����͐��̒l�łȂ���΂Ȃ�܂���E488: �]���ȕ��������ɂ���܂�E48: �T���h�{�b�N�X�ł͋�����܂���E490: �܏�݂�����܂���E492: �G�f�B�^�̃R�}���h�ł͂���܂���E493: �t���܂͈̔͂��w�肳��܂���E494: w ������ w>> ��g�p���Ă�������E495: "<afile>"��u��������autocommand�̃t�@�C����������܂���E496: "<abuf>"��u��������autocommand�o�b�t�@�ԍ�������܂���E497: "<amatch>"��u��������autocommand�̊Y����������܂���E498: "<sfile>"��u�������� :source �Ώۃt�@�C����������܂���E499: '%' �� '#' �������t�@�C���Ȃ̂� ":p:h" �𔺂�Ȃ��g�����͂ł��܂���E49: �����ȃX�N���[���ʂł�E500: �󕶎���Ƃ��ĕ]������܂���E501: �t�@�C���̏I���ʒuE505: "%s" �͓Ǎ���p�ł� (���������ɂ� ! ��lj�)E505: %s �͓Ǎ���p�ł� (���������ɂ� ! ��lj�)E506: �o�b�N�A�b�v�t�@�C����ۑ��ł��܂��� (! ��lj��ŋ����ۑ�)E507: �o�b�N�A�b�v�t�@�C����‚���ۂɃG���[���������܂��� (! ��lj��ŋ���)E508: �o�b�N�A�b�v�p�t�@�C����Ǎ��߂܂��� (! ��lj��ŋ����Ǎ�)E509: �o�b�N�A�b�v�t�@�C������܂��� (! ��lj��ŋ����쐬)E50: \z( �����߂��܂�E510: �o�b�N�A�b�v�t�@�C������܂��� (! ��lj��ŋ����쐬)E511: NetBeans�͊��ɐڑ����Ă��܂�E512: �‚��邱�ƂɎ��sE513: �����݃G���[, �ϊ����s (�㏑����ɂ� 'fenc' ���ɂ��Ă�������)E513: �����݃G���[, �ϊ����s, �s�� %ld (�㏑����ɂ� 'fenc' ���ɂ��Ă�������)E514: �����݃G���[, (�t�@�C���V�X�e�������t?)E515: ����ꂽ�o�b�t�@�͂���܂���E516: �폜���ꂽ�o�b�t�@�͂���܂���E517: �j�����ꂽ�o�b�t�@�͂���܂���E518: ���m�̃I�v�V�����ł�E519: �I�v�V�����̓T�|�[�g����Ă��܂���E51: %s( �����߂��܂�E520: modeline �ł͋��‚���܂���E521: = �̌�ɂ͐������K�v�ł�E521: �������K�v�ł�: &%s = '%s'E522: termcap ��Ɍ��‚���܂���E523: �����ł͋��‚���܂���E524: �R����������܂���E525: ������̒������[���ł�E526: <%s> �̌�ɐ���������܂���E527: �J���}������܂���E528: ' �̒l��w�肵�Ȃ���΂Ȃ�܂���E529: 'term' �ɂ͋󕶎����ݒ�ł��܂���E52: \z( ���ނ荇���Ă��܂���E530: GUI�ł� 'term' ��ύX�ł��܂���E531: GUI��X�^�[�g����ɂ� ":gui" ��g�p���Ă�������E533: ���C�h�t�H���g��I��ł��܂���E534: �����ȃ��C�h�t�H���g�ł�E535: <%c> �̌�ɕs���ȕ���������܂�E536: �J���}���K�v�ł�E537: 'commentstring' �͋�ł��邩 %s ��܂ޕK�v������܂�E538: �}�E�X�̓T�|�[�g����܂���E539: �s���ȕ����ł� <%s>E53: %s%%( ���ނ荇���Ă��܂���E540: �����I�����Ă��܂���E541: �v�f�����߂��܂�E542: �O���[�v���ލ����܂���E543: �����ȃR�[�h�y�[�W�ł�E544: �L�[�}�b�v�t�@�C�������‚���܂���E545: �R����������܂���E546: �s���ȃ��[�h�ł�E547: �s���� 'mouseshape' �ł�E548: ���l���K�v�ł�E549: �s���ȃp�[�Z���e�[�W�ł�E54: %s( ���ނ荇���Ă��܂���E550: �R����������܂���E551: �s���ȍ\���v�f�ł�E552: ���l���K�v�ł�E553: �v�f��������܂���E554: %s{...} ��ɕ��@�G���[������܂�E555: �^�O�X�^�b�N�̖����ł�E556: �^�O�X�^�b�N�̐擪�ł�E557: termcap�t�@�C����J���܂���E558: terminfo�ɒ[���G���g����‚����܂���E559: termcap�ɒ[���G���g����‚����܂���E55: %s) ���ނ荇���Ă��܂���E560: �g�p���@: cs[cope] %sE561: ���m��cscope�����^�ł�E562: �g�p�@: cstag <ident>E563: stat �G���[E563: stat(%s) �G���[: %dE564: %s �̓f�B���N�g���y�їL����cscope�̃f�[�^�x�[�X�ł͂���܂���E566: cscope�p�C�v��쐬�ł��܂���ł���E567: cscope�ڑ��Ɏ��s���܂���E568: �d������cscope�f�[�^�x�[�X�͒lj�����܂���ł���E570: cs_manage_matches �Œv���I�ȃG���[�ł�E571: ���̃R�}���h�͖����ł�,���߂�Ȃ���: Tcl���C�u������[�h�ł��܂���ł���.E572: �I���R�[�h %dE573: �����ȃT�[�o�[ID���g���܂���: %sE574: ���m�̃��W�X�^�^ %d �ł�E579: :if �̓���q���[�߂��܂�E580: :if �̂Ȃ� :endif ������܂�E581: :if �̂Ȃ� :else ������܂�E582: :if �̂Ȃ� :elseif ������܂�E583: ������ :else ������܂�E584: :else �̌�� :elseif ������܂�E585: :while �� :for �̓���q���[�߂��܂�E586: :while �� :for �̂Ȃ� :continue ������܂�E587: :while �� :for �̂Ȃ� :break ������܂�E588: :endfor �̂Ȃ� :for ������܂�E588: :while �̂Ȃ� :endwhile ������܂�E589: 'backupext' �� 'patchmode' �������ł�E590: �v���r���[�E�B���h�E�����ɑ��݂��܂�E591: 'winheight' �� 'winminheight' ��菬�����ł��܂���E592: 'winwidth' �� 'winminwidth' ��菬�����ł��܂���E593: �Œ� %d �̍s�����K�v�ł�E594: �Œ� %d �̃J���������K�v�ł�E595: �\���ł��Ȃ����������C�h������܂�ł��܂�E596: �����ȃt�H���g�ł�E597: �t�H���g�Z�b�g��I��ł��܂���E598: �����ȃt�H���g�Z�b�g�ł�E599: 'imactivatekey' �ɐݒ肳�ꂽ�l�������ł�E59: %s@ �̌�ɕs���ȕ���������܂���E600: :endtry ������܂���E601: :try �̓���q���[�߂��܂�E602: :try �̂Ȃ� :endtry �ł�E603: :try �̂Ȃ� :catch ������܂�E604: :finally �̌�� :catch ������܂�E605: ��O���ߑ�����܂���ł���: %sE606: :try �̂Ȃ� :finally ������܂�E607: ������ :finally ������܂�E608: 'Vim' �Ŏn�܂��O�� :throw �ł��܂���E609: cscope�G���[: %sE60: ���G�� %s{...} �����߂��܂�E612: sign�̒�`���������‚���܂���E613: ���m�̃v�����^�I�v�V�����ł�: %sE614: vim_SelFile: ���݂̃f�B���N�g���ɖ߂�܂���E615: vim_SelFile: ���݂̃f�B���N�g����擾�ł��܂���E616: vim_SelFile: �t�H���g %s ��擾�ł��܂���E617: GTK+2 GUI�ł͕ύX�ł��܂���E618: �t�@�C�� "%s" �� PostScript ���\�[�X�t�@�C���ł͂���܂���E619: �t�@�C�� "%s" �͑Ή����Ă��Ȃ� PostScript ���\�[�X�t�@�C���ł�E61:%s* ������q�ɂȂ��Ă��܂�E620: ��G���R�[�h "%s" �֕ϊ��ł��܂���E621: ���\�[�X�t�@�C�� "%s" �̓o�[�W�������قȂ�܂�E622: cscope�̋N������(fork)�Ɏ��s���܂���E623: cscope�v���Z�X��N���ł��܂���ł���E624: �t�@�C�� "%s" ��J���܂���E625: cscope�f�[�^�x�[�X: %s ��J�����Ƃ��ł��܂���E626: cscope�f�[�^�x�[�X�̏���擾�ł��܂���E62:%s%c ������q�ɂȂ��Ă��܂�E630: %s(): ��ڑ���Ԃŏ������݂܂���E631: %s(): �������݂Ɏ��s���܂���E63: \_ �̖����Ȏg�p���@�ł�E64:%s%c �̌�ɂȂɂ���܂���E655: �V���{���b�N�����N�����߂��܂� (�z�‚��Ă���”\��������܂�)E658: �o�b�t�@ %ld �� NetBeans �ڑ��������܂���E659: Python ��ċA�I�Ɏ��s���邱�Ƃ͂ł��܂���E65: �s���Ȍ��Q�Ƃł�E661: �c�O�ł��� '%s' �̃w���v�� %s �ɂ͂���܂���E662: �ύX���X�g�̐擪E663: �ύX���X�g�̖���E664: �ύX���X�g����ł�E665: �L���ȃt�H���g�����‚���Ȃ��̂�, GUI��J�n�ł��܂���E666: ���̃R���p�C���ɂ͑Ή����Ă��܂���: %sE667: fsync �Ɏ��s���܂���E668: NetBeans�̐ڑ����t�@�C���̃A�N�Z�X���[�h�ɖ�肪����܂�: "%s"E669: �O���[�v���Ɉ�s�”\�ȕ���������܂�E66: \z( �̓R�R�ł͋��‚���Ă��܂���E670: 1�‚̌���̃w���v�t�@�C���ɕ����̃G���R�[�h�����݂��Ă��܂�: %sE671: �^�C�g���� "%s" �̃E�B���h�E�͌��‚���܂���E672: MDI�A�v���̒��ł̓E�B���h�E��J���܂���E673: �݊����̖����}���`�o�C�g�G���R�[�f�B���O�ƕ����Z�b�g�ł�E674: �}���`�o�C�g�G���R�[�f�B���O�ł� printmbcharset ���ɂł��܂���E675: �}���`�o�C�g���������邽�߂̃f�t�H���g�t�H���g���w�肳��Ă��܂���E676: acwrite�o�b�t�@�̊Y������autocommand�͑��݂��܂���E677: �ꎞ�t�@�C���������ɃG���[���������܂���E678: %s%%[dxouU] �̌�ɕs���ȕ���������܂���E679: syncolor.vim �̍ċA�Ăяo����o���܂���E67: \z1 ���̑��̓R�R�ł͋��‚���Ă��܂���E680: <�o�b�t�@=%d>: �����ȃo�b�t�@�ԍ��ł� E681: �o�b�t�@�͓ǂݍ��܂�܂���ł���E682: �����p�^�[������؂�L�����s���ł�E683: �t�@�C�����������������ȃp�^�[���ł�E684: ���X�g�̃C���f�b�N�X���͈͊O�ł�: %ldE685: ���G���[�ł�: %sE686: %s �̈����̓��X�g�^�łȂ���΂Ȃ�܂���E687: �^�[�Q�b�g�����X�g�^��̗v�f�����Ȃ��ł�E688: �^�[�Q�b�g�����X�g�^��̗v�f�������ł�E689: ���X�g�^�Ǝ����^�ȊO�̓C���f�b�N�X�w��ł��܂���E68: \z �̌�ɕs���ȕ���������܂���E690: :for �̌�� "in" ������܂���E691: ���X�g�^�̓��X�g�^�Ƃ�����r�ł��܂���E692: ���X�g�^�ɂ͖����ȑ���ł�E694: �֐��Q�ƌ^�ɂ͖����ȑ���ł�E695: �֐��Q�ƌ^�̓C���f�b�N�X�ł��܂���E696: ���X�g�^�ɃJ���}������܂���: %sE697: ���X�g�^�̍Ō�� ']' ������܂���: %sE698: �R�s�[����ɂ͕ϐ��̓���q���[�߂��܂�E699: ���������߂��܂�E69: %s%%[ �̌�� ] ������܂���E700: ���m�̊֐��ł�: %sE701: len() �ɂ͖����Ȍ^�ł�E702: �\�[�g�̔�r�֐������s���܂���E703: �֐��Q�ƌ^�𐔒l�Ƃ��Ĉ����Ă��܂��BE704: �֐��Q�ƌ^�ϐ����͑啶���Ŏn�܂�Ȃ���΂Ȃ�܂���: %sE705: �ϐ����������̊֐����ƏՓ˂��܂�: %sE707: �֐������ϐ����ƏՓ˂��܂�: %sE708: [:] �͍Ō�łȂ���΂����܂���E709: [:] �ɂ̓��X�g�^�̒l���K�v�ł�E70: %s%%[] ����ł�E710: ���X�g�^�ϐ��Ƀ^�[�Q�b�g�������v�f������܂�E711: ���X�g�^�ϐ��ɏ\���Ȑ��̗v�f������܂���E712: %s �̈����̓��X�g�^�܂��͎����^�łȂ���΂Ȃ�܂���E713: �����^�ɋ�̃L�[��g�����Ƃ͂ł��܂���E714: ���X�g�^���K�v�ł�E715: �����^���K�v�ł�E716: �����^�ɃL�[�����݂��܂���: %sE717: �����^��ɃG���g�������ɑ��݂��܂�E718: �֐��Q�ƌ^���v������܂�E719: [:] ����^�Ƒg�ݍ��킹�Ă͎g���܂���E71: %s%% �̌�ɕs���ȕ���������܂���E720: �����^�ɃR����������܂���: %sE721: �����^�ɏd���L�[������܂�: "%s"E722: �����^�ɃJ���}������܂���: %sE723: �����^�̍Ō�� '}' ������܂���: %sE724: �\������ɂ͕ϐ��̓���q���[�߂��܂�E725: �����p�֐����Ă΂�܂���������������܂���: %sE726: �X�g���C�h(�O�i��)�� 0 �ł�E727: �J�n�ʒu���I���ʒu��z���܂���E728: �����^�𐔒l�Ƃ��Ĉ����Ă��܂�E729: �֐��Q�ƌ^�𕶎���Ƃ��Ĉ����Ă��܂�E72: �X���b�v�t�@�C���̃N���[�Y���G���[�ł�E730: ���X�g�^�𕶎���Ƃ��Ĉ����Ă��܂�E731: �����^�𕶎���Ƃ��Ĉ����Ă��܂�E732: :endfor �� :while �Ƒg�ݍ��킹�Ă��܂�E733: :endwhile �� :for �Ƒg�ݍ��킹�Ă��܂�E734: �قȂ����^�̕ϐ��ł� %s=E735: �����^�͎����^�Ƃ�����r�ł��܂���E736: �����^�ɂ͖����ȑ���ł�E737: �L�[�͊��ɑ��݂��܂�: %sE738: %s �̒l��ꗗ�\���ł��܂���E739: �f�B���N�g����쐬�ł��܂���: %sE73: �^�O�X�^�b�N����ł�E740: �֐��̈��������߂��܂�: %sE741: �l�����b�N����Ă��܂�: %sE742: %s �̒l��ύX�ł��܂���E743: (�A��)���b�N����ɂ͕ϐ��̓���q���[�߂��܂�E744: NetBeans �͓Ǎ���p�t�@�C����ύX���邱�Ƃ���܂���E745: ���X�g�^�𐔒l�Ƃ��Ĉ����Ă��܂�E746: �֐������X�N���v�g�̃t�@�C�����ƈ�v���܂���: %sE747: �o�b�t�@���C������Ă���̂�, �f�B���N�g����ύX�ł��܂��� (! ��lj��ŏ㏑)E748: �܂����W�X�^��g�p���Ă��܂���E749: �o�b�t�@����ł�E74: �R�}���h�����G�߂��܂�E750: ���߂� ":profile start {fname}" ��s���Ă�������E751: �o�̓t�@�C�����ɂ͔͈͖���܂߂��܂���E752: �X�y���u�����܂����s����Ă��܂���E753: ���‚���܂���: %sE754: �͈͂� 8 �‚܂ł����T�|�[�g����Ă��܂���E755: �����Ȕ͈͂ł�: %sE756: �X�y���`�F�b�N�͖���������Ă��܂�E757: �X�y���t�@�C���ł͂Ȃ��悤�ł�E758: �X�y���t�@�C�����؎���Ă���悤�ł�E75: ���O�����߂��܂�E760: %s �ɂ͒P�ꐔ������܂���E761: affix�t�@�C���� FOL, LOW ������ UPP �̃t�H�[�}�b�g�ɃG���[������܂�E762: FOL, LOW ������ UPP �̕������͈͊O�ł�E763: �P��̕������X�y���t�@�C���ƈقȂ�܂�E764: �I�v�V���� '%s' �͐ݒ肳��Ă��܂���E765: 'spellfile' �ɂ� %ld �‚̃G���g���͂���܂���E766: printf() �̈������s�\���ł�E767: printf() �̈��������߂��܂�E768: �X���b�v�t�@�C�������݂��܂�: %s (:silent! ��lj��ŏ㏑)E769: %s[ �̌�� ] ������܂���E76: [ �����߂��܂�E770: �X�y���t�@�C���ɃT�|�[�g���Ă��Ȃ��Z�N�V����������܂�E771: �Â��X�y���t�@�C���Ȃ̂�, �A�b�v�f�[�g���Ă�������E772: ���V�����o�[�W������ Vim �p�̃X�y���t�@�C���ł�E773: "%s" �̃V���{���b�N�����N�����[�v�ɂȂ��Ă��܂�E774: 'operatorfunc' �I�v�V��������ł�E775: ���]���@�\�������ɂȂ��Ă��܂�E776: ���P�[�V�������X�g�͂���܂���E777: �����񂩃��X�g���K�v�ł�E778: .sug �t�@�C���ł͂Ȃ��悤�ł�: %sE779: �Â� .sug �t�@�C���Ȃ̂�, �A�b�v�f�[�g���Ă�������: %sE77: �t�@�C���������߂��܂�E780: ���V�����o�[�W������ Vim �p�� .sug �t�@�C���ł�: %sE781: .sug �t�@�C���� .spl �t�@�C���ƈ�v���܂���: %sE782: .sug �t�@�C���̓Ǎ����ɃG���[���������܂���: %sE783: MAP �G���g���ɏd�����������݂��܂�E784: �Ō�̃^�u�y�[�W��‚��邱�Ƃ͂ł��܂���E785: complete() �͑}�����[�h�ł������p�ł��܂���E786: �͈͎w��͋��‚���Ă��܂���E787: �\�������o�b�t�@���ύX�ύX����܂���E788: ���݂͑��̃o�b�t�@��ҏW���邱�Ƃ͋�����܂���E789: ']' ������܂���: %sE78: ���m�̃}�[�NE790: undo �̒���� undojoin �͂ł��܂���E791: ��̃L�[�}�b�v�G���g��E792: ���j���[������ł�E793: �������[�h�ł��鑼�̃o�b�t�@�͕ύX�ł��܂���E794: �T���h�{�b�N�X�ł͕ϐ� "%s" �ɒl��ݒ�ł��܂���E795: �ϐ� %s ��폜�ł��܂���E797: autocommand �� SpellFileMissing ���o�b�t�@��폜���܂���E798: ID �� ":match" �̂��߂ɗ\�񂳂�Ă��܂�: %ldE799: ������ ID: %ld (1 �ȏ�łȂ���΂Ȃ�܂���)E79: ���C���h�J�[�h��W�J�ł��܂���E800: �A���r�A��͎g�p�s�”\�ł�: �R���p�C�����ɖ����ɂ���Ă��܂�
E801: ID �͂��łɗ��p���ł�: %ldE802: ������ ID: %ld (1 �ȏ�łȂ���΂Ȃ�܂���)E803: ID �͂���܂���: %ldE804: '%' �𕂓������_���Ƒg�ݍ��킹�Ă͎g���܂���E805: ���������_���𐔒l�Ƃ��Ĉ����Ă��܂�E806: ���������_���𕶎���Ƃ��Ĉ����Ă��܂�E807: printf() �̈����ɂ͕��������_�������҂���Ă��܂�E808: ���l�����������_�����K�v�ł�E809: #< �� +eval �@�\�������Ɨ��p�ł��܂���E80: �����ݒ��̃G���[E810: �ꎞ�t�@�C���̓Ǎ������͏������ł��܂���E811: ���݂̓o�b�t�@����ύX���邱�Ƃ͋�����܂���E812: autocommand���o�b�t�@���o�b�t�@����ύX���܂���E813: autocmd�E�B���h�E�͕‚����܂���E814: autocmd�E�B���h�E�����c��Ȃ����߁A�E�B���h�E�͕‚����܂���E815: ���̃R�}���h�͖����ł�. MzScheme ���C�u������[�h�ł��܂���.E816: patch�̏o�͂�Ǎ��߂܂���E817: Blowfish�Í��̃r�b�O/���g���G���f�B�A�����Ԉ��Ă��܂�E818: sha256�̃e�X�g�Ɏ��s���܂���E819: Blowfish�Í��̃e�X�g�Ɏ��s���܂���E81: �X�N���v�g�ȊO��<SID>���g���܂���E820: sizeof(uint32_t) != 4E821: �t�@�C�������m�̕��@�ňÍ�������Ă��܂�E822: �A���h�D�t�@�C����Ǎ��p�Ƃ��ĊJ���܂���: %sE823: �A���h�D�t�@�C���ł͂���܂���: %sE824: �݊����̖����A���h�D�t�@�C���ł�: %sE825: �A���h�D�t�@�C�������Ă��܂� (%s): %sE826: �Í������ꂽ�A���h�D�t�@�C���̉�ǂɎ��s���܂���: %sE827: �A���h�D�t�@�C�����Í�������Ă��܂�: %sE828: �����ݗp�ɃA���h�D�t�@�C����J���܂���: %sE829: �A���h�D�t�@�C���̏������݃G���[�ł�: %sE82: �o�b�t�@��1�‚�쐬�ł��Ȃ��̂�, �I�����܂�...E830: �A���h�D�ԍ� %ld �͌��‚���܂���E831: bf_key_init() ����p�X���[�h�ŌĂяo����܂���E832: ��Í����t�@�C�����Í������ꂽ�A���h�D�t�@�C����g���Ă܂�: %sE833: %s �͂��̃o�[�W������Vim�ŃT�|�[�g���Ă��Ȃ��`���ňÍ�������Ă��܂�E834: 'listchars'�̒l�ɖ���������܂�E835: 'fillchars'�̒l�ɖ���������܂�E836: ����Vim�ł� :py3 ��g������� :python ��g���܂���E837: ����Vim�ł� :python ��g������� :py3 ��g���܂���E838: NetBeans�͂���GUI�ɂ͑Ή����Ă��܂���E839: ��Ԋ֐����E�B���h�E��ύX���܂���E83: �o�b�t�@��쐬�ł��Ȃ��̂�, ���̂�g�p���܂�...E840: �⊮�֐����e�L�X�g��폜���܂���E841: �\�񖼂Ȃ̂�, ���[�U�[��`�R�}���h�ɗ��p�ł��܂���E842: "<slnum>"��u��������s�ԍ�������܂���E843: �X���b�v�t�@�C���̈Í���X�V���ɃG���[���������܂���E844: ������cchar�̒l�ł�E845: ������������Ȃ��̂ŁA�P�ꃊ�X�g�͕s���S�ł�E846: �L�[�R�[�h���ݒ肳��Ă��܂���E847: �\���̎�荞��(include)�����߂��܂�E848: �\���N���X�^�����߂��܂�E849: �n�C���C�g�ƍ\���O���[�v�����߂��܂�E84: �ύX���ꂽ�o�b�t�@�͂���܂���E850: �����ȃ��W�X�^���ł�E851: GUI�p�̃v���Z�X�̋N���Ɏ��s���܂���E852: �q�v���Z�X��GUI�̋N���Ɏ��s���܂���E853: ���������d�����Ă��܂�: %sE854: �p�X�����߂��ĕ⊮�ł��܂���E855: autocommand���R�}���h�̒�~����N�����܂���E858: ���]���͗L����python�I�u�W�F�N�g��Ԃ��܂���ł���E859: �Ԃ��ꂽpython�I�u�W�F�N�g��vim�̒l�ɕϊ��ł��܂���ł���E85: ���X�g�\�������o�b�t�@�͂���܂���E862: �����ł� g: �͎g���܂���E864: \%#= �ɂ� 0, 1 ������ 2 �݂̂��������܂��B���K�\���G���W���͎����I���܂��BE865: (NFA) ���҂�葁�����K�\���̏I�[�ɓ��B���܂���E866: (NFA ���K�\��) �ʒu�����Ă��܂�: %cE867: (NFA) ���m�̃I�y���[�^�ł�: '\%%%c'E867: (NFA) ���m�̃I�y���[�^�ł�: '\z%c'E868: �����N���X��܂�NFA�\�z�Ɏ��s���܂���!E869: (NFA) ���m�̃I�y���[�^�ł�: '\@%c'E86: �o�b�t�@ %ld �͂���܂���E870: (NFA ���K�\��) �J��Ԃ��̐����񐔂�Ǎ����ɃG���[E871: (NFA ���K�\��) �J��Ԃ� �̌�� �J��Ԃ� �͂ł��܂���!E872: (NFA ���K�\��) '(' �����߂��܂�E873: (NFA ���K�\��) �I�[�L��������܂���E874: (NFA) �X�^�b�N��|�b�v�ł��܂���!E875: (NFA ���K�\��) (��u�������NFA�ɕϊ�����) �X�^�b�N�Ɏc���ꂽ�X�e�[�g�����߂��܂�E876: (NFA ���K�\��) NFA�S�̂�ۑ�����ɂ͋󂫃X�y�[�X������܂���E877: (NFA ���K�\��) �����ȕ����N���X: %ldE878: (NFA) ���݉��f���̃u�����`�ɏ\���ȃ�������蓖�Ă��܂���!E879: (NFA ���K�\��) \z( �����߂��܂�E87: �Ō�̃o�b�t�@��z���Ĉړ��͂ł��܂���E881: �\�������s�J�E���g���ς��܂���E882: Uniq �̔�r�֐������s���܂���E883: �����p�^�[���Ǝ����W�X�^�ɂ�2�s�ȏ��܂߂��܂���E884: �֐����ɂ̓R�����͊܂߂��܂���: %sE885: �ύX�ł��Ȃ� sign �ł�: %sE886: viminfo�t�@�C���� %s �֖��O�ύX�ł��܂���!E887: ���̃R�}���h�͖����ł�,���߂�Ȃ���. Python �� site ���W���[����[�h�ł��܂���ł���.E888: (NFA ���K�\��) �J��Ԃ��܂��� %sE88: �ŏ��̃o�b�t�@���O�ւ͈ړ��ł��܂���E890: ']' �̌��ɗ]���ȕ���������܂�: %s]%sE891: �֐��Q�ƌ^�𕂓������_���Ƃ��Ĉ����Ă��܂��BE892: ������𕂓������_���Ƃ��Ĉ����Ă��܂�E893: ���X�g�^�𕂓������_���Ƃ��Ĉ����Ă��܂�E894: �����^�𕂓������_���Ƃ��Ĉ����Ă��܂�E895: ���̃R�}���h�͖����ł�,���߂�Ȃ���. MzScheme �� racket/base ���W���[�������[�h�ł��܂���ł���.E898: channel_open() ��� socket() �����s���܂���E89: �o�b�t�@ %ld �̕ύX�͕ۑ�����Ă��܂��� (! �ŕύX��j��)E901: channel_open() ��� gethostbyname() �����s���܂���E902: �|�[�g�ɐڑ��ł��܂���E903: �񕶎���̈����̃R�}���h���M���܂���E904: expr/call �̍Ō�̈����͐����łȂ���΂Ȃ�܂���E904: call ��3�Ԗڂ̈����̓��X�g�^�łȂ���΂Ȃ�܂���E905: ���m�̃R�}���h���M���܂���: %sE906: �J���Ă��Ȃ��`�����l���ł�E907: ����l�𕂓������_���Ƃ��Ĉ����Ă��܂�E908: �����Ȓl�𕶎���Ƃ��Ĉ����Ă��܂�E909: ����ϐ��̓C���f�b�N�X�ł��܂���E90: �Ō�̃o�b�t�@�͉�ł��܂���E910: �W���u�𐔒l�Ƃ��Ĉ����Ă��܂�E911: �W���u�𕂓������_���Ƃ��Ĉ����Ă��܂�E912: raw �� nl ���[�h�̃`�����l���� ch_evalexpr()/ch_sendexpr() �͎g���܂���E913: �`�����l���𐔒l�Ƃ��Ĉ����Ă��܂��BE914: �`�����l���𕂓������_���Ƃ��Ĉ����Ă��܂��BE915: in_io �o�b�t�@�� in_buf �� in_name �̐ݒ肪�K�v�ł�E916: �L���ȃW���u�ł͂���܂���E917: %s() �ɃR�[���o�b�N�͎g���܂���E918: �o�b�t�@�����[�h����ĂȂ���΂Ȃ�܂���: %sE919: �f�B���N�g���� '%s' �̒��ɂ���܂���: "%s"E91: 'shell' �I�v�V��������ł�E920: _io �t�@�C���� _name �̐ݒ肪�K�v�ł�E921: �����ȃR�[���o�b�N�����ł�E922: ���������҂���Ă��܂�E923: function() �̑� 2 �����̓��X�g�^�܂��͎����^�łȂ���΂Ȃ�܂���E924: ���݂̃E�B���h�E���‚����܂���E925: ���݂� quickfix ���ύX����܂���E926: ���݂̃��P�[�V�������X�g���ύX����܂���E927: �����ȑ���ł�: %sE928: �����񂪕K�v�ł�E929: �ꎞviminfo�t�@�C�������߂��܂�! ��: %sE92: �o�b�t�@ %ld �����‚���܂���E930: execute() �̒��ł� :redir �͎g���܂���E931: �o�b�t�@��o�^�ł��܂���E932: �N���[�W���[�֐��̓g�b�v���x���ɋL�q�ł��܂���: %sE933: �֐��͍폜����܂���: %sE934: ���O�̖����o�b�t�@�ւ̓W�����v�ł��܂���E935: �����ȃT�u�}�b�`�ԍ�: %dE936: ���݂̃O���[�v�͍폜�ł��܂���E937: �g�p���̃o�b�t�@��폜���悤�Ǝ��݂܂���E938: JSON�ɏd���L�[������܂�: "%s"E939: ���̃J�E���g���K�v�ł�E93: %s �ɕ����̊Y��������܂���E940: �ϐ� %s �̓��b�N�܂��̓A�����b�N�ł��܂���E941: �T�[�o�[�͂��łɊJ�n���Ă��܂�E942: +clientserver �@�\�������ɂȂ��Ă��܂�E943: �R�}���h�e�[�u����X�V����K�v������܂��A'make cmdidxs' ��s���Ă�������E944: �����N���X�͈̔͂��t�ł�E945: �����N���X�͈̔͂��傫�����܂�E94: %s �ɊY������o�b�t�@�͂���܂���ł���E95: ���̖��O�̃o�b�t�@�͊��ɂ���܂�E96: %ld �ȏ�̃o�b�t�@��diff�ł��܂���E97: ������쐬�ł��܂���E98: diff�̏o�͂�Ǎ��߂܂���E99: ���݂̃o�b�t�@�͍������[�h�ł͂���܂����G���[: �t�@�C����ҏW�V�����E�B���h�E�Ńt�@�C����ҏW���܂�Vim�ŕҏW���� (&V)������Vim�ŕҏW���� (&M)�N���ς�Vim�ŕҏW���� - 1�‚�Vim�ŕҏW���� (&V)�I����t�@�C����Vim�ŕҏW�����G���R�[�h:�֐��̍Ō�ł��捞�t�@�C���̍Ō�ł��Í����p�̃L�[��͂��Ă�������: �g�p����X���b�v�t�@�C���̔ԍ���͂��Ă�������(0 �ŏI��): ����x�����L�[��͂��Ă�������: �f�o�b�O���[�h�ɓ���܂�. ������ɂ� "cont" �Ɠ��͂��Ă�������.Ex���[�h�ɓ���܂�. �m�[�}�����[�h�ɖ߂�ɂ�"visual"�Ɠ��͂��Ă�������.�G���[�G���[�Ɗ������v���Z�X�̍쐬�Ɏ��s: gvim���‹��ϐ�PATH��ɂ��邩�m�F���Ă�������!%s �̏������ɃG���[�����o����܂���:�G���[�t�@�C�����胁�����g�p��: %d �o�C�g��O��O���ߑ�����܂���: %s��O���j������܂���: %s��O���������܂���: %s��O���������܂���: %s%s ��s���Ă��܂�%s �� %d �s�ڂɂ� MAP �̉񐔂��K�v�ł�%s �� %d �s�ڂɂ� REP(SAL) �̉񐔂��K�v�ł�%s �� %d �s�ڂł� Y �� N ���K�v�ł�: %s���O���̕����Y��:
%s ��� %d �s�ڂɃt���O�̓�d�g�p������܂�: %s�p�X�t�b�N�̐ݒ�Ɏ��s���܂���: sys.path_hooks �����X�g�ł͂���܂���
�����ɉ��L��{���Ă�������:
- vim.path_hooks �� sys.path_hooks �֒lj�
- vim.VIM_SPECIAL_PATH �� sys.path �֒lj�
�p�X�̐ݒ�Ɏ��s���܂���: sys.path �����X�g�ł͂���܂���
������ vim.VIM_SPECIAL_PATH �� sys.path �ɒlj����Ă��������t�@�C�� "%s" ������܂����t�@�C���̓�e���ς��Ă��邽�߁A�A���h�D���𗘗p�ł��܂����t�@�C�� "%s" �̃p�[�~�b�V�������Ǎ���p�ł�.
����ł��炭�������ނ��Ƃ͉”\�ł�.
�p�����܂���?�t�@�C�����ێ�����܂��t�@�C���t�B���^�����E�u�� ('\' �������ɂ� '\\')�����(&N)��������������� ('\' �������ɂ� '\\')����������:�A���h�D�t�@�C�� %s �̎捞����d���̂����ŏ��̒P��� %s �� %d �s�ڂł�: %s%s �� %d �s�� �t���O�����l�ł͂���܂���: %s�t�H���g '%s' �͌Œ蕝�ł͂���܂����t�H���g%ld �̕����t�H���g0��2�{�ł͂���܂����t�H���g0�̕�: %ld�t�H���g0: %s�t�H���g1�̕�: %ld�t�H���g1: %s�t�H���g:�I�v�V����: %s�I�v�V���������̌�ɃS�~������܂�Vim �g������A�₠!�E�K���_�̌b�܂�Ȃ��q�������ɉ�����!�i���̍Ō�Ƀq�b�g���o�̓G���[��ASCII������܂� %d �‚̒P��𖳎����܂��� (%s ��)��ASCII������܂� %d �‚̒P��𖳎����܂����^�O�t�@�C����̒����s�𖳎����܂��s���ȃt�@�C����%s �� %d �s�ڂ� �t���O���s���ł�: %s�s���ȃ��W�X�^���s���Ȑ擪�����ł����͍s�C���v�b�g���\�b�h������������: �����܂�܂��������Ȉ����ł�: �����ȃt�H���g�w��ł�%s �� %d �s�� ������ nr �̈�ł�: %s%s ��� %d �s�ڂ� FLAG �ɖ����Ȓl������܂�: %s�L�[����v���܂����ڑ���I�����������N: ���X�g�����l���K�v�ł�Lua���C�u������[�h�ł��܂���.�啶��/���������ʂ������m�ɊY�������̂������b�Z�[�W���{�ꃁ�b�Z�[�W�|��/�ďC: ���� ���Y <koron.kaoriya@gmail.com>'>' �����‚���܂���%s �s�ڂ� FOL/LOW/UPP ������܂���SOFO%s �s�� %s �ɂ���܂���Modified by ���O:%s �̃o�[�W���� %ld ���K�v�ł�
Amigados�̃o�[�W���� 2.04������ȍ~���K�v�ł�
�Í��L�[���K�v�ł�: "%s"NetBeans�͖��ύX�̃o�b�t�@��㏑���邱�Ƃ͋��‚��Ă��܂����V�K�^�u�y�[�W���������̃o�b�t�@�ɒ�`���ꂽ�\���v�f�͂���܂����Z�k���͂͌��‚���܂���ł����u���[�N�|�C���g����`����Ă��܂����f�B�X�v���C�����‚���܂����f�B�X�v���C������܂���: ���̑��M�Ɏ��s���܂���.
�G���g��������܂����C���N���[�h�t�@�C���͂���܂����}�b�s���O�͌��‚���܂���ł����}�[�N���ݒ肳��Ă��܂����J�[�\���̈ʒu�Ƀ}�b�`�͂���܂���, ��������Ă��܂��Y������autocommand�͑��݂��܂����Â��t�@�C���͂���܂����X���b�v�t�@�C��������܂��������e�L�X�g������܂����”\�ȃA���h�D�͂���܂���: �Ƃ肠���������܂����[�U�[��`�R�}���h�����‚���܂���ł����g���܂����K�[�x�b�W�R���N�V�����𒆎~���܂���! �Q�Ƃ�쐬����̂Ƀ��������s�����܂����I�[�i�[���قȂ�̂ŃA���h�D�t�@�C����ǂݍ��݂܂���: %s�A���h�D�Ώۂ�����܂��������􍞂݌�̑��P�ꐔ: %ldOK�t�@�C���Ǎ��_�C�A���O�^�u�y�[�W��J��...�^�u�y�[�W��J��X display �� open �Ɏ��s���܂���X display �� open ���^�C���A�E�g���܂���X�T�[�o�[�ւ̐ڑ��� %ld �~���b������܂������{�t�@�C�� "%s"�����̃t�@�C�� "%s" ��㏑�����܂���?%d �y�[�WNetBeans�o�b�t�@�̈ꕔ����o�����Ƃ͂ł��܂����p�b�`�t�@�C���p�X�����߂��܂�!�p�X��:�p�^�[�����S�Ă̍s�Ō��‚���܂���: %s�p�^�[���͌��‚���܂���ł����p�^�[���͌��‚���܂���ł���: %s�����􍞂݂�s��...������ɂ�ENTER������R�}���h��͂��Ă���������W���u�𑗐M���܂���.����܂���: %s����Ă��܂�: '%s'������~����܂������: �y�[�W %d (%d%%)�p�^�[���̃N�G���[��lj�����affix �t�@�C�� %s ��Ǎ���...�X�y���t�@�C����t�Ǎ��������t�@�C�� %s ��X�L������...�W�����͂���Ǎ��ݒ�...�X�y���t�@�C�� "%s" ��Ǎ����A���h�D�t�@�C���Ǎ���: %sviminfo�t�@�C�� "%s"%s%s%s ��Ǎ��ݒ��W�����͂���Ǎ��ݒ� %s ...��������. �o�b�t�@�̓�e�̓t�@�C���Ɠ����ɂȂ�܂���.���J�o�����I�����܂���. �S�Ă����������`�F�b�N���Ă�������.�S�Ă̐ڑ���ď����������u���S�Ēu��(&A)�S�Ēu���u��������:Vi�݊����[�h�œ��쒆���[�h���Ŏ��s��, �^�C�v�����������}������܂��ʖ��ŕۑ��t�@�C���ۑ��_�C�A���O���_�C���N�g��ۑ����܂��Z�b�V��������ۑ����܂��ݒ��ۑ����܂��r���[��ۑ����܂��ύX�� "%s" �ɕۑ����܂���?������X�L������: %s�C���N���[�h���ꂽ�t�@�C����X�L������: %s�^�O��X�L������.�X�L������: %s�X�N���[���o�[: �摜��擾�ł��܂���ł���.����������"%s" �����"%s" �� "%s" ���猟�����C���N���[�h���ꂽ�t�@�C����X�L������ %s�^�O�t�@�C�� %s ������ڍׂ� ":help E312" ��Q�Ƃ��Ă��������ڍׂ� ":help W11" ��Q�Ƃ��Ă��������ڍׂ� ":help W12" ��Q�Ƃ��Ă��������ڍׂ� ":help W16" ��Q�Ƃ��Ă��������f�B���N�g���I��_�C�A���O�I�� %s%ld / %ld �s; %lld / %lld �P��; %lld / %lld �o�C�g�I�� %s%ld / %ld �s; %lld / %lld �P��; %lld / %lld ����; %lld / %lld �o�C�g�I���v�����^�ɑ��M��...�ڑ���\�������T�C�Y��|�C���g�ŕ\���������̃��b�Z�[�W��\������%s �̃T�C��:�T�C�Y:�Ώۂ��Ȃ��̂ŃA���h�D�t�@�C���̏������݂�X�L�b�v���܂��c�O�ł����w���v�t�@�C�� "%s" �����‚���܂����c�O�ł���, �C�����͂���܂����c�O�ł���, �C������ %ld �‚�������܂������̃R�}���h�͖����ł�, ���߂�Ȃ���: Perl���C�u������[�h�ł��܂���ł���.Vim�X�N���v�g�̎捞��Vim�̊J��������Ă�������!�X�^�b�N�T�C�Y�������܂��X�^�C��:Substitute �X���b�v�t�@�C�� "�X���b�v�t�@�C�� "%s" �����݂��܂�. �㏑��������܂���?�X���b�v�t�@�C�������ɑ��݂��܂�!�X���b�v�t�@�C���͈Í�������Ă��܂�: "%s"�X���b�v�t�@�C�����������‚���܂���:���̃p�^�[���Ƀo�b�N�g���b�L���O RE �G���W����K�p���܂�: �^�u�y�[�W %d���̃��j���[��؂���X display �̃`�F�b�N�Ɏ��s���܂���Vim ��g���Ă���Ă��肪�Ƃ����̃t�@�C���͎��̏ꏊ�ō���܂��� �B��̊Y������Vim�ɂ�diff�@�\������܂���(�R���p�C�����ݒ�).����cscope�R�}���h�͕����E�B���h�E�ł̓T�|�[�g����܂���.
"+command", "-c command", "--cmd command" �̈��������߂��܂������t���O�����߂��܂��ҏW���������߂��܂��x����u�q�����߂��܂��x����u�q ��/������ �����t���O�����߂��܂�%s �� %d �s��, �͈͎w�肪���߂��܂�: %s�擪���P�ꐔ: %d%s (%d �s��) �ɑ����e�L�X�g: %s���ׂĂ̕ύX��j�����AVim��I������ɂ�  :qa!  �Ɠ��͂� <Enter> ����Ă��������ԍ���<Enter>��͂��Ă������� (��ŃL�����Z��): �ԍ���<Enter>��͂��邩�}�E�X�ŃN���b�N���Ă������� (��ŃL�����Z��): �u���b�N 0 ��Ǎ��߂܂��� ���߃T�[�o�[�̖��O��o�^�ł��܂����s�����m�̃I�v�V���������ł�%s �� %d �s�� �F���s�\�ȃt���O�ł�: %s%s �� %d �s�ڂ� �F���ł��Ȃ����d���������ڂ�����܂�: %s������Vim�̃o�[�W����3.0��g�p���Ă�������.
��̑I��̈�̂�����CUT_BUFFER0���g�p����܂����X���b�v�t�@�C������擾�����Í��L�[��e�L�X�g�t�@�C���Ɏg���܂�.
�X���b�v�t�@�C�� "%s" ��g�p��VIM - ����VIM - �����ƒu��...VIM - ����...VIM - Vi IMprovedVIM�G���[VIM: �E�B���h�E��J���܂���!
VIMRUN.EXE�� $PATH �̒��Ɍ��‚���܂���.
�O���R�}���h�̏I����Ɉꎞ��~��܂���.
�ڍׂ�  :help win32-vimrun  ��Q�Ƃ��Ă�������.Vim - �t�H���g�I��Vim E458: �F�w�肪�������Ȃ��̂ŃG���g����蓖�Ă��܂���Vim�̌x��Vim �_�C�A���OVim �G���[Vim �G���[: ~aVim�� %d �ŏI�����܂�
Vim �̓I�[�v���\�[�X�ł��莩�R�ɔz�z�”\�ł�Vim: �C�x���g %s ��m
Vim: ���͂�Ǎ��ݒ��̃G���[�ɂ��I�����܂�...
Vim: �G���[: NetBeans����gvim��X�^�[�g�ł��܂���
Vim: �G���[: ���̃o�[�W������Vim��Cygwin�[���ł͓��삵�܂���
Vim: ���C���E�B���h�E���s�ӂɔj�󂳂�܂���
Vim: �W�����͂���Ǎ���...
Vim: �Z�b�V�����}�l�[�W������ "die" �v����󂯎��܂���
Vim: �x��: �[������̓��͂ł͂���܂���
Vim: �x��: �[���ւ̏o�͂ł͂���܂���
W10: �x��: �Ǎ���p�t�@�C����ύX���܂�W11: �x��: �t�@�C�� "%s" �͕ҏW�J�n��ɕύX����܂���W12: �x��: �t�@�C�� "%s" ���ύX����Vim�̃o�b�t�@��ύX����܂���W13: �x��: �t�@�C�� "%s" �͕ҏW�J�n��ɍ쐬����܂���W14: �x��: �t�@�C�����̃��X�g�����߂��܂�W15: �x��: �s��؂��s���ł�. ^M ���Ȃ��̂ł��傤W16: �x��: �t�@�C�� "%s" �̃��[�h���ҏW�J�n��ɕύX����܂���W17: �A���r�A�����ɂ�UTF-8���K�v�Ȃ̂�, ':set encoding=utf-8' ���Ă�������W18: �O���[�v���ɕs���ȕ���������܂�W19: �g�p���� augroup ������Ƃ��Ă��܂�W20: �v�����ꂽpython 2.x�͑Ή����Ă��܂���A�t�@�C���𖳎����܂�: %sW21: �v�����ꂽpython 3.x�͑Ή����Ă��܂���A�t�@�C���𖳎����܂�: %sW22: :endfunction �̌�ɕ���������܂�: %s�x��: �Ǎ��񂾌�Ƀt�@�C���ɕύX������܂���!!!�x���x��: �P�ꃊ�X�g "%s.%s.spl" ����� "%s.ascii.spl" �͌��‚���܂����x��: �P�ꃊ�X�g "%s_%s.spl" ����� "%s_ascii.spl" �͌��‚���܂����x��: �\���������o�b�t�@�ֈړ����܂��� (autocommands �𒲂ׂĂ�������)�x��: �ア�Í����@��g���Ă��܂�; :help 'cm' ��Q�Ƃ��Ă��������x��: �����t���O�� NOBREAK �������Ƃ�w�肳��܂����x��9: %s �Ƃ����͈͂̓T�|�[�g����Ă��܂����x��: �g�p���Ă���[���̓n�C���C�g�ł��܂������̃t�@�C����J���Ă���Œ� "�A���h�D�t�@�C���Ƃ��ēǂݍ��߂Ȃ��̂ŏ㏑�����܂���: %s�A���h�D�t�@�C���ł͂Ȃ��̂ŏ㏑�����܂���: %s�E�B���h�E�ʒu: X %d, Y %d�P�� '%.*s' �� %s �֒lj�����܂����P�� '%.*s' �� %s ����폜����܂������̍s�̒P���t�@�C���𕔕��I�ɕۑ����܂���?�X�y���t�@�C�� %s ����ݒ�...�C�����t�@�C�� "%s" ����ݒ�...�A���h�D�t�@�C���������ݒ�: %sviminfo�t�@�C�� "%s" ����ݒ�%s �� %d �s�ڂ� CHECKCOMPOUNDPATTERN �̒l�Ɍ�肪����܂�: %s%s �� %d �s�ڂ� COMPOUNDMIN �̒l�Ɍ�肪����܂�: %sCOMPOUNDRULES �̒l�Ɍ�肪����܂�. �t�@�C�� %s �� %d �s��: %s%s �� %d �s�ڂ� COMPOUNDSYLMAX �̒l�Ɍ�肪����܂�: %s%s �� %d �s�ڂ� COMPOUNDWORDMAX �̒l�Ɍ�肪����܂�: %sXSMP ICE�ڑ������s�����悤�ł�XSMP SmcOpenConnection�����s���܂���: %sXSMP ��save-yourself�v��������Ă��܂�XSMP ��ICE�ڑ�����܂���XSMP ���ڑ���J�n���Ă��܂������͂�[%ld �s�ڂŕϊ��G���[][CR��][�폜��][�f�o�C�X][�t�@�C���ߑ�][�w���v][%ld �s�ڂ̕s���ȃo�C�g][�ŏI�s���s���S][���P�[�V�������X�g][���ϊ�][�V�K�f�B���N�g��][�V�t�@�C��][�V�t�@�C��][�V][����][�Ō�̕ύX���ۑ�����Ă��܂���]
[���ҏW][����������܂���][�v���r���[][Quickfix���X�g][�Ǎ��G���[][�ǐ�][�Ǎ��G���[][������][�ďo] �� re/malloc() �� %lu, �� free() �� %lu

[�L�����N�^�E�f�o�C�X][�ϊ���][�Í���][dos�t�H�[�}�b�g][dos][FIFO/�\�P�b�g][FIFO][�t�@�C��..]    ����t�@�C����ҏW����[���s����][mac�t�H�[�}�b�g][mac][noeol][�Ǎ���p][�\�P�b�g][unix�t�H�[�}�b�g][unix]�L�����Z��(_C)�‚���(_C)_OK�J��(_O)�ۑ�(_S)add() �̈��������{�t�@�C���Ƃ� diff ��s����Ɨǂ��ł��傤)���� %d �̃X���C�X�� %d �̊g���X���C�X�Ɋ��蓖�Ă悤�Ƃ��܂������� %d �̊g���X���C�X�ɁA��蒷���X���C�X��蓖�Ă悤�Ƃ��܂����폜���ꂽ�o�b�t�@��Q�Ƃ��悤�Ƃ��܂����폜���ꂽ�^�u��Q�Ƃ��悤�Ƃ��܂����폜���ꂽ�E�B���h�E��Q�Ƃ��悤�Ƃ��܂���autocommand: %s <�o�b�t�@=%d> �������I�ɍ폜����܂�autocommand %s�O��%ld �s�̃u���b�N�������N����܂���1 �s�̃u���b�N�������N����܂����o�b�t�@�͖����ł�by by Bram Moolenaar ��.inputrestore() �� inputsave() �������Ă΂�܂���%s ��s���ł�OutputObject��������܂���'charconvert' �̏o�͂�Ǎ��߂܂���ł����R���\�[�����[�h��ύX�ł��܂���?!
�o�b�t�@/�E�B���h�E�쐬�R�}���h��쐬�ł��܂���: �I�u�W�F�N�g����������Ă��܂����s����܂���vim.Dictionary�����͏����܂���vim.List �����͏����܂����s��擾�ł��܂����s��}���ł��܂����s�̑}��/�lj���ł��܂����Œ肳�ꂽ�����͕ύX�ł��܂����Œ肳�ꂽ���X�g�͕ύX�ł��܂����J���܂��� �R�[���o�b�N�R�}���h��o�^�ł��܂���: �o�b�t�@/�E�B���h�E�����ɏ�������܂����R�[���o�b�N�R�}���h��o�^�ł��܂���: �o�b�t�@/�E�B���h�E�̎Q�Ƃ����‚���܂����s��u���ł��܂����A���h�D��񂪕ۑ��ł��܂������� %s �͐ݒ�ł��܂����s��ݒ�ł��܂��������N�ł��܂���; �Ƃɂ��������ӏ��ύX���܂����ӏ��ύX���܂����‚����R�}���h: %s%s �̎��s��p�����ł�"%s" ��捞�߂܂����o�b�t�@��J���܂���cs_create_connection �̎��s�Ɏ��s���܂���cs_create_connection �ւ� setpgid �Ɏ��s���܂���cs_create_connection: fr_fp �� fdopen �Ɏ��s���܂���cs_create_connection: to_fp �� fdopen �Ɏ��s���܂���cscope�R�}���h:
cscope�ڑ� %s ���‚����܂����J�[�\���ʒu���o�b�t�@�̊O���ł��ȗ��l��̂悤�ɐݒ肵�܂� '�u���b�N 1 �͏����ꂽ?�����̓��b�N����Ă��܂��w�肳�ꂽ�^�u�y�[�W�ɐ؂�ւ��܂���ł����w�肳�ꂽ�E�B���h�E�ɐ؂�ւ��܂���ł���dlerror = "%s"�t�@�C���̕ۑ��ɐ�������܂ŃG�f�B�^��I�����Ȃ��ł�������!��̃L�[�͋��‚���Ă��܂����‹��ϐ�Scheme�l��Vim�ւ̕ϊ��G���[�G���[�n���h��imp.find_module() �� %s ��Ԃ��܂��� (���Ғl: 3 �v�f�̃^�v��)imp.find_module() �� %d �v�f�̃^�v����Ԃ��܂��� (���Ғl: 3)bytes() ������ str() �̃C���X�^���X�����҂���Ă���̂� %s �ł���int() ������֕ϊ��”\�Ȃ�̂����҂���Ă���̂� %s �ł���long() ������֕ϊ��”\�Ȃ�̂����҂���Ă���̂� %s �ł����V�[�P���X�̗v�f���ɂ� 2 �����҂���Ă��܂����� %d �ł���str() ������ unicode() �̃C���X�^���X�����҂���Ă���̂� %s �ł���vim.Buffer�I�u�W�F�N�g�����҂���Ă���̂� %s �ł���vim.TabPage�I�u�W�F�N�g�����҂���Ă���̂� %s �ł���vim.Window�I�u�W�F�N�g�����҂���Ă���̂� %s �ł������̓R���p�C�����ɖ����ɂ���Ă��܂�extend() �̈������X�g�ւ̗v�f�lj��Ɏ��s���܂��������ɃL�[ '%s' ��lj�����̂Ɏ��s���܂��������̕ύX�Ɏ��s���܂������݂̃^�u�ɂ͎w�肳�ꂽ�E�B���h�E������܂���ł����o�b�t�@���̕ύX�Ɏ��s���܂����֐� %s �̎��s�Ɏ��s���܂����R�[�h�̎��s�Ɏ��s���܂����w�肳�ꂽ�o�b�t�@ %d �ւ̐؂�ւ��Ɏ��s���܂����s �폜���܂����t�@�C��
�t�@�C���� / ���� / �s
filter() �̈���%s �̎捞����ō����x���̃t���[��: %d�t���[���� 0 �ł�%ld �s�����֐� %s ������܂���gvimext.dll �G���[�C�e���[�V�������� hashtab ���ύX����܂����w���v�B���I�v�V�����p�X�� ----
�C���f�b�N�X�� %s �ł͂Ȃ��������X���C�X�ɂ��Ă�������insert() �̈������G���[: NULL�Q�Ƃ��n����܂������G���[: ���X�g�ւ̗v�f�lj��Ɏ��s���܂������G���[: vim�̃��X�g�v�f %d �̎擾�Ɏ��s���܂������G���[: imp.find_module �� NULL ��܂ރ^�v����Ԃ��܂������G���[: �����Ȓl�^�ł����G���[: vim�̃��X�g�v�f %d �͂���܂������G���[: ���X�g�ɏ\���ȗv�f������܂������G���[: ���m�̃I�v�V�����^�ł������ȑ����ł�: %s�����ȃo�b�t�@�ԍ��ł������Ȏ��ł������ȃ}�[�N���ł��̓f�o�C�X�ł� ('opendevice' �I�v�V�����ʼn��ł��܂�)�̓f�B���N�g���ł��̓t�@�C���ł͂���܂����̓t�@�C���ł����݉”\�f�o�C�X�ł���܂����͓Ǎ���p�ł� (���������ɂ� ! ��lj�)�L�[�{�[�h�������s %4ld:�s %6d, �P�� %6d - %s�s %ld�s %ld (�S�� %ld) --%d%%-- col �s %ld: %s�s %ld: "%s" ��捞�߂܂����s %ld: %s ��捞���s �폜���܂����͈͊O�̍s�ԍ��ł��͈͊O�̍s�ԍ��ł����X�g�̃R���X�g���N�^�̓L�[���[�h������󂯕t���܂������X�g�͈͊O�̃C���f�b�N�X�ł����X�g�̓��b�N����Ă��܂����O�I�tmap() �̈����}�[�N����1�����̃A���t�@�x�b�g�łȂ���΂Ȃ�܂����}�[�N�͐ݒ肳��Ă��܂���%d �Ԗڂ̊Y��%d �Ԗڂ̊Y�� (�S�Y�� %d �’�)�t�@�C����̃}�b�`maximal mch_get_shellsize: �R���\�[���ł͂Ȃ�??
���j���[�� �ҏW->�S�̐ݒ�->�}��(���S��)���[�h�ؑ� ���j���[�� �ҏW->�S�̐ݒ�->Vi�݊����[�h�ؑ�      �ڍׂ̓��j���[�� �w���v->�ǎ� ��Q�Ƃ��ĉ�����   �ڍׂ̓��j���[�� �w���v->�X�|���T�[/�o�^ ��Q�Ƃ��ĉ�����minimal ���[�h�s�s �lj����܂����s �lj����܂���netbeans �͂���GUI�ł͗��p�ł��܂���
�V�����V�F����N�����܂�
�Ȃ�cscope�ڑ�������܂���
�}�b�`�����̂�����܂������̂悤�ȃ^�u�y�[�W�͂���܂������̂悤�ȃE�B���h�E�͂���܂����񓯊��T���h�{�b�N�X�ł͋�����܂������‚���܂��� '%s' �̒��ɂ͂���܂���: "%s"�܂���������Ă��܂����ʔ�   �ύX��   �ύX����           �ۑ������l�� 0 ������ȏ�łȂ���΂Ȃ�܂������l�� 0 ���傫���Ȃ���΂Ȃ�܂���pe_line_count ���[���ł�vimrc�O�̃R�}���h���C���E�B���h�E��؊����ɖ�肪�������܂����Ǎ���p����: �o�b�t�@�[�L�^��remove() �̈���%s �ɒu�����܂���? (y/n/a/q/l/^E/^Y)reverse() �̈����s %d �� %d���܂Ō��������̂ŏ�ɖ߂�܂���܂Ō��������̂ʼn��ɖ߂�܂��V�F�� �V�F�����R�[�h %d �ŏI�����܂����V���b�g�_�E���X���C�X�̃X�e�b�v�� 0 �͎w��ł��܂���sort() �̈���"%s" ��捞��stack_idx �� 0 �ł���ׂ��ł�������ɂ͉��s������܂߂��܂���C���ꕗ�R�����g���瓯���������J�n �\���̑啶���������͌��� ignore �ł��\���̑啶���������͌��� match �ł��\���� conceal �͌��� off �ł��\���� conceal �͌��� on �ł��\���p iskeyword �\���� spell �͌��� default �ł��\���� spell �͌��� notoplevel �ł��\���� spell �͌��� toplevel �ł��^�O %d (�S%d%s)�^�O��%s �� (%s ���)�ڍׂȏ���           :help cp-default<Enter>�ڍׂȏ���           :help iccf<Enter>      �ڍׂȏ���           :help register<Enter>  �ڍׂȏ���           :help sponsor<Enter>   �o�[�W��������       :help version8<Enter>  �I�����C���w���v��     :help<Enter> �� <F1>   �I������ɂ�           :q<Enter>              Vim�����l�ɂ���ɂ�    :set nocp<Enter>       %s vim�̎����^�ɕϊ��ł��܂���%s ��vim�̃��X�g�ɕϊ��ł��܂���%s ��vim�̍\���̂ɕϊ��ł��܂����I�v�V�����̒l�͎擾�ł��܂����O���[�o���I�v�V���� %s �̐ݒ��͂ł��܂����O���[�o���Ȓl�̖����I�v�V���� %s �̐ݒ��͂ł��܂���uniq() �̈����s�����m�̃t���O: ���m�̃I�v�V�����ł����m�� vimOption �ł������֐� %s �͑��݂��܂���C����� int �^�Ƃ��Ă͒l���傫�߂��܂�C����� int �^�Ƃ��Ă͒l�������߂��܂�version vim �G���[�͈͊O�̃E�B���h�E�ԍ��ł��E�B���h�E�͖����ł�with (�N���V�b�N) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.'opendevice' �I�v�V�����ɂ��f�o�C�X�ւ̏������݂͂ł��܂���PK�j�Z�Tn�/�/&vim80/lang/menu_polish_poland.1250.vimnu�[���" Menu Translations:	Polish
" Maintainer:		Mikolaj Machowski ( mikmach AT wp DOT pl )
" Initial Translation:	Marcin Dalecki <martin@dalecki.de>
" Last Change: 17 May  2010

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp1250

" Help menu
menutrans &Help			Po&moc
menutrans &Overview<Tab><F1>			&Og�lnie<Tab><F1>
menutrans &User\ Manual	Podr�cznik\ &u�ytkownika
menutrans &How-to\ links	&Odno�niki\ JTZ
menutrans &Find\.\.\.	&Szukaj\.\.\.
menutrans &Credits		Po&dzi�kowania
menutrans Co&pying		&Kopiowanie
menutrans &Sponsor/Register	&Sponsorowanie/Rejestracja
menutrans O&rphans		Sie&roty
menutrans &Version		&Wersja
menutrans &About		o\ &Programie

" File menu
menutrans &File				&Plik
menutrans &Open\.\.\.<Tab>:e		&Otw�rz\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otw�rz\ z\ &podzia�em\.\.\.<Tab>:sp
menutrans &New<Tab>:enew       &Nowy<Tab>:enew
menutrans &Close<Tab>:close		&Zamknij<Tab>:close
menutrans &Save<Tab>:w			Za&pisz<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Zapisz\ &jako\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	Podziel\ na\ diff-a\ mi�dzy\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Podziel\ �atane\ przez\.\.\.
menutrans &Print			&Drukuj
menutrans Sa&ve-Exit<Tab>:wqa		W&yj�cie\ z\ zapisem<Tab>:wqa
menutrans E&xit<Tab>:qa			&Wyj�cie<Tab>:qa
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otw�rz\ &kart�\.\.\.<Tab>:tabnew

" Edit menu
menutrans &Edit				&Edycja
menutrans &Undo<Tab>u			&Cofnij<Tab>u
menutrans &Redo<Tab>^R			&Pon�w<Tab>^R
menutrans Rep&eat<Tab>\.		P&owt�rz<Tab>\.
menutrans Cu&t<Tab>"+x			W&ytnij<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopiuj<Tab>"+y
menutrans &Paste<Tab>"+gP		&Wklej<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Wstaw\ p&rzed<Tab>[p
menutrans Put\ &After<Tab>]p		Wstaw\ p&o<Tab>]p
menutrans &Select\ All<Tab>ggVG		Z&aznacz\ ca�o��<Tab>ggVG
menutrans &Find\.\.\.			&Szukaj\.\.\.
menutrans &Find<Tab>/			&Szukaj<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	&Zamie�\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	&Zamie�<Tab>:%s
menutrans Find\ and\ Rep&lace		&Zamie�
menutrans Find\ and\ Rep&lace<Tab>:s	&Zamie�<Tab>:s
menutrans Options\.\.\.			Opcje\.\.\.
menutrans Settings\ &Window		Ustawienia
menutrans &Global\ Settings		Ustawienia\ &globalne
menutrans Startup\ &Settings	Ustawienia\ &startowe
menutrans F&ile\ Settings		Ustawienia\ dla\ pliku
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			&Numerowanie\ wierszy<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!					Tryb\ &listowania<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			Za&wijanie\ wierszy<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!			�amanie\ wie&rsza<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!			Rozwijani&e\ tabulator�w<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!			&Automatyczne\ wci�cia<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!			Wci�cia\ &C<Tab>:set\ cin!
menutrans &Shiftwidth				&Szeroko��\ wci�cia
menutrans Te&xt\ Width\.\.\.			D�ugo��\ linii\.\.\.
menutrans &File\ Format\.\.\.			&Format\ pliku\.\.\.
menutrans Soft\ &Tabstop				Rozmiar\ &tabulacji
menutrans C&olor\ Scheme		Zestawy\ kolor�w
menutrans &Keymap			Uk�ady\ klawiatury
menutrans None				�aden
menutrans accents			akcenty
menutrans hebrew			hebrajski
menutrans hebrewp			hebrajski\ p
menutrans russian-jcuken		rosyjski-jcuken
menutrans russian-jcukenwin		rosyjski-jcukenwin

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Pod�wietlanie\ &wzorc�w<Tab>:set\ hls!

menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	&Ignorowanie\ wielko�ci<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		&Pokazywanie\ pasuj�cych<Tab>:set\ sm!

menutrans &Context\ lines	Wiersze\ &kontekstowe
menutrans &Virtual\ Edit	Edycja\ &wirtualna

menutrans Never			Nigdy
menutrans Block\ Selection	Zaznaczanie\ blokowe
menutrans Insert\ mode		Tryb\ wprowadzania
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Tryb\ zg&odno�ci\ z\ Vi<Tab>:set\ cp!
menutrans Block\ and\ Insert	Blokowe\ i\ wprowadzanie
menutrans Always		Zawsze

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	Tryb\ wprowadzania<Tab>:set\ im!
menutrans Search\ &Path\.\.\.	Scie�ka\ poszukiwania\.\.\.
menutrans Ta&g\ Files\.\.\.	Pliki\ tag�w\.\.\.


"
" GUI options
menutrans Toggle\ &Toolbar		Pasek\ narz�dzi
menutrans Toggle\ &Bottom\ Scrollbar	Dolny\ przewijacz
menutrans Toggle\ &Left\ Scrollbar	&Lewy\ przewijacz
menutrans Toggle\ &Right\ Scrollbar	P&rawy\ przewijacz

" Programming menu
menutrans &Tools			&Narz�dzia
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Skocz\ do\ taga<Tab>g^]
menutrans Jump\ &back<Tab>^T		Skok\ w\ &ty�<Tab>^T
menutrans Build\ &Tags\ File		&Tw�rz\ plik\ tag�w
" Spelling
menutrans &Spelling	Pi&sownia
menutrans &Spell\ Check\ On	W��cz
menutrans Spell\ Check\ &Off	Wy��cz
menutrans To\ &Next\ error<Tab>]s	Do\ &nast�pnego\ b��du<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	Do\ &poprzedniego\ b��du<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	Sugestie\ poprawek<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	Powt�r&z\ poprawk�<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	Ustaw\ j�zyk\ na\ "en"
menutrans Set\ language\ to\ "en_au"	Ustaw\ j�zyk\ na\ "en_au"
menutrans Set\ language\ to\ "en_ca"	Ustaw\ j�zyk\ na\ "en_ca"
menutrans Set\ language\ to\ "en_gb"	Ustaw\ j�zyk\ na\ "en_gb"
menutrans Set\ language\ to\ "en_nz"	Ustaw\ j�zyk\ na\ "en_nz"
menutrans Set\ language\ to\ "en_us"	Ustaw\ j�zyk\ na\ "en_us"
menutrans Set\ language\ to\ "pl"	Ustaw\ j�zyk\ na\ "pl"
menutrans &Find\ More\ Languages	&Znajd�\ wi�cej\ j�zyk�w

" Folding
menutrans &Folding				&Zwijanie
menutrans &Enable/Disable\ folds<Tab>zi		&Zwi�/rozwi�<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&Linia\ kursora<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx			&Tylko\ linia\ kursora<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm				Zwi�\ wi�cej<Tab>zm
menutrans &Close\ all\ folds<Tab>zM				Z&wi�\ wszystkie<Tab>zM
menutrans &Open\ all\ folds<Tab>zR				Rozwi�\ wszystkie<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr				R&ozwi�\ wi�cej<Tab>zr

menutrans Create\ &Fold<Tab>zf				T&w�rz\ zawini�cie<Tab>zf
menutrans &Delete\ Fold<Tab>zd				U&su�\ zawini�cie<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD				&Usu�\ wszystkie\ zawini�cia<Tab>zD
menutrans Fold\ column\ &width				Szeroko��\ kolumny\ za&wini��
menutrans Fold\ Met&hod		Me&toda\ zawijania
menutrans M&anual			&R�cznie
menutrans I&ndent			W&ci�cie
menutrans E&xpression W&yra�enie
menutrans S&yntax			S&k�adnia
menutrans Ma&rker			Zn&acznik

" Diff
menutrans &Update					&Od�wie�
menutrans &Get\ Block			&Pobierz\ blok
menutrans &Put\ Block			&Wstaw\ blok

" Make and stuff...
menutrans &Make<Tab>:make		M&ake<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Poka�\ b��dy<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	W&ylicz\ powiadomienia<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&Nast�pny\ b��d<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Poprzedni\ b��d<Tab>:cp
menutrans &Older\ List<Tab>:cold	&Starsza\ lista<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	N&owsza\ lista<Tab>:cnew
menutrans Error\ &Window	Okno\ b��d�&w
menutrans &Update<Tab>:cwin			Akt&ualizuj<Tab>:cwin
menutrans &Close<Tab>:cclose			&Zamknij<Tab>:cclose
menutrans &Open<Tab>:copen			&Otw�rz<Tab>:copen

menutrans Se&T\ Compiler				U&staw\ kompilator
menutrans &Convert\ to\ HEX<Tab>:%!xxd     Kody\ szesnastkowe<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r     Zwyk�y\ tekst<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers	&Bufory
menutrans &Refresh\ menu	&Od�wie�
menutrans &Delete	&Skasuj
menutrans &Alternate	&Zmie�
menutrans &Next		&Nast�pny
menutrans &Previous	&Poprzedni
menutrans [No\ File]	[Brak\ Pliku]

" Window menu
menutrans &Window			&Widoki
menutrans &New<Tab>^Wn			&Nowy<Tab>^Wn
menutrans S&plit<Tab>^Ws		Po&dziel<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	P&odziel\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Podziel\ pionowo<Tab>^Wv
menutrans Split\ File\ E&xplorer		Otw�rz\ mened�er\ plik�w

menutrans &Close<Tab>^Wc		&Zamknij<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zamknij\ &inne<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Nast�pny<Tab>^Ww
menutrans P&revious<Tab>^WW		&Poprzedni<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Wyr�wnaj\ wysoko�ci<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Z&maksymalizuj\ wysoko��<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Zminim&alizuj\ wysoko��<Tab>^W1_
menutrans Max\ Width<Tab>^W\|		Maksymalna\ szeroko��<Tab>^W\|
menutrans Min\ Width<Tab>^W1\|		Minimalna\ szeroko��<Tab>^W1\|
menutrans Max\ &Width<Tab>^W\|		Zmaksymalizuj\ szeroko��<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Zminimalizuj\ szeroko��<Tab>^W1\|
menutrans Move\ &To			&Id�\ do
menutrans &Top<Tab>^WK			&G�ra<Tab>^WK
menutrans &Bottom<Tab>^WJ		&D�<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Lewa\ strona<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Prawa\ strona<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Obr��\ w\ &g�r�<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Obr��\ w\ &d�<Tab>^Wr
menutrans Split\ &Vertically<Tab>^Wv	&Podziel\ w\ poziomie<Tab>^Wv
menutrans Select\ Fo&nt\.\.\.		Wybierz\ &czcionk�\.\.\.

" The popup menu
menutrans &Undo			&Cofnij
menutrans Cu&t			W&ytnij
menutrans &Copy			&Kopiuj
menutrans &Paste		&Wklej
menutrans &Delete		&Skasuj
menutrans Select\ Blockwise	Zaznacz\ &blok
menutrans Select\ &Sentence	Zaznacz\ &zdanie
menutrans Select\ Pa&ragraph	Zaznacz\ aka&pit
menutrans Select\ &Word		Zaznacz\ &s�owo
menutrans Select\ &Line		Zaznacz\ w&iersz
menutrans Select\ &Block	Zaznacz\ &blok
menutrans Select\ &All		Zaznacz\ c&a�o��
menutrans Input\ &Methods	Wprowadza&nie

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Otw�rz plik
    tmenu ToolBar.Save		Zapisz bie��cy plik
    tmenu ToolBar.SaveAll		Zapisz wszystkie pliki
    tmenu ToolBar.Print		Drukuj
    tmenu ToolBar.Undo		Cofnij
    tmenu ToolBar.Redo		Pon�w
    tmenu ToolBar.Cut		Wytnij
    tmenu ToolBar.Copy		Skopiuj
    tmenu ToolBar.Paste		Wklej
    tmenu ToolBar.Find		Szukaj...
    tmenu ToolBar.FindNext	Szukaj nast�pnego
    tmenu ToolBar.FindPrev	Szukaj poprzedniego
    tmenu ToolBar.Replace		Szukaj i zamieniaj...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Nowy widok
      tmenu ToolBar.WinSplit	Podziel widok
      tmenu ToolBar.WinMax		Zmaksymalizuj widok
      tmenu ToolBar.WinMin		Zminimalizuj widok
      tmenu ToolBar.WinClose	Zamknij widok
    endif
    tmenu ToolBar.LoadSesn	Za�aduj sesj�
    tmenu ToolBar.SaveSesn	Zachowaj bie��c� sesj�
    tmenu ToolBar.RunScript	Uruchom skrypt Vima
    tmenu ToolBar.Make		Wykonaj bie��cy projekt
    tmenu ToolBar.Shell		Otw�rz pow�ok�
    tmenu ToolBar.RunCtags	Tw�rz tagi w bie��cym katalogu
    tmenu ToolBar.TagJump		Skok do taga pod kursorem
    tmenu ToolBar.Help		Pomoc Vima
    tmenu ToolBar.FindHelp	Przeszukuj pomoc Vim-a
  endfun
endif

" Syntax menu
menutrans &Syntax &Sk�adnia
menutrans &Show\ filetypes\ in\ menu	Poka�\ typy\ &plik�w\ w\ menu
menutrans Set\ '&syntax'\ only	Ustaw\ tylko\ '&syntax'
menutrans Set\ '&filetype'\ too	Ustaw\ r�wnie�\ '&filetype'
menutrans &Off			&Wy��cz
menutrans &Manual		&R�cznie
menutrans A&utomatic		A&utomatyczne
menutrans on/off\ for\ &This\ file			w��cz/w&y��cz\ dla\ pliku
menutrans Co&lor\ test		Test\ &kolor�w
menutrans &Highlight\ test	&Test\ pod�wietlania
menutrans &Convert\ to\ HTML	Przetw�rz\ na\ &HTML

" dialog texts
let menutrans_no_file = "[Brak pliku]"
let menutrans_help_dialog = "Wprowad� komend� lub s�owo, aby otrzyma� pomoc o:\n\nPrzedrostek i_ oznacza komend� trybu Wprowadzania (np. i_CTRL-X)\nPrzedrostek c_ oznacza komend� edycji wiersza komend (np. c_<Del>)\nPrzedrostek ' oznacza nazw� opcji (np. 'shiftwidth')"
let g:menutrans_path_dialog = "Wprowad� �cie�k� poszukiwania plik�w.\nProsz� rozdziela� nazwy katalog�w przecinkiem."
let g:menutrans_tags_dialog = "Podaj nazwy plik�w tag�w.\nProsz� rozdziela� nazwy przecinkiem."
let g:menutrans_textwidth_dialog = "Wprowad� now� szeroko�� tekstu (0 wy��cza przewijanie): "
let g:menutrans_fileformat_dialog = "Wybierz format w kt�rym ten plik ma by� zapisany"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Anuluj"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��F��vim80/lang/menu_ja.utf-8.vimnu�[���" Menu Translations:	Japanese

" eucjp is the same as euc-jp.  Source the other one from here.
source <sfile>:p:h/menu_ja_jp.utf-8.vim
PK�j�Z����a�a�)vim80/lang/zh_CN.cp936/LC_MESSAGES/vim.monu�[�����c43�Lf����ψ
����'
�/5�e�{���0��؉�+��4�E�5U��������͊,z�;������5�D�U�h�w�������׌�0�.6�/e�1��0Ǎ
����3�
M�[�
p� {�������!ڎ��"�>�V�g�@v���ҏ����/&�=V�����Ő֐����.�-H�v�������ڑ�3
�3>�$r�����̒����
)�4�C�[�l��
��$��ʓ ֓���;'�c�r�#�	����ƔΔޔ�
����.�:�R�	j�t�|���!����Ǖ���.�6� >�_�z�������Ɩ
Ζܖ6� �=�V�!u���
����	��ė����&��	!�"+�*N�y���������ʘ
ј
ߘ�
����"�+�5I��������љ����$'�L�\�
p�{�������Țۚ���$�<�M�Y�e�t���
������ɛ7ٛ��6�>�G�O�U�Y�e�t�=x�2�������'�-:�5h�����?ԝ�0�A�	P�Z�s�����-���$�+�
K�V�f�z���?��ݟ5�!"�%D�9j�E��9�C$�Ah�I��H�;=�0y�6��8�3�-N�|�%����У��&�,:�#g�4�� ��@�-"�0P���;��ҥ"��>&�)e�>��<Φ��#7�:[�'��9����$�96�4p�;�� �>�1A�/s���-���.��B,�"o�/��2ª4��**�U�+s�%��'ū(�<�ES�.��-Ȭ$���<4�q�*��&�� ݭ4��3�D�V�i�u���������ͮٮ
����"�(�4�C�[�s���)��$ȯ!���&�"2�"U�x���O�����(�XA�%����ı߱���/�I�a�m���$����!²�����:�"X�{�$����#̳����Q0���������ɴ ��%�!7�Y�	_�?i�P��
��
�.�B�-[���-��$ֶ.��*�D�S�"l�
��C��	����!�.�4�R�2W�!��(�� ո"��E�_�%|�#��-ƹ��/�&K�r�������ͺ�)��@'�h�5����ѻ�D�L�Ei���-ʼ7��#0� T�:u�5��&�"
�&0�$W�#|�!��=¾5� 6�(W�7��!��,ڿ�#�8� R�#s�&�������&�@�\�{�0��$�!� �(3�4\�,���������� 0�Q�n�1����!��%��%�%E�k� ������?��&�!C�e�
��A��%��"��"�9=�'w�(��2��*��!&�!H�)j�%��!��4��:�&L�;s�;��)��0�F�e�������#��!��8�&D�#k��� ��/��"���-,�Z�k���/��*��(��# �D�`�{�����>���)�C�"Z�}�������!���9"�1\�)��1��%��7�H�Ab�?�������!2�T�p���0��4��$�)5�N_�,��L��8(�a�,�� �� ��#���/�7I�N��M���:�W�$r�!��3��,��2�%M�*s�9��(���"�?�#]�����������0�!B� d�<��+�����+#�2O�$����,����H
�,V�����"�������7�V�9u�������0��#,�'P�x���,��&�����+!�2M�-��(����"��'�';�,c���.����#��,�WG�)��"��,��%�?� \�}�2��2��2��/�!L�n���2��5��'�#-�)Q�3{�$��%�����1�F�f�$~�&�� ��'��*�#>�'b�%��3��!���+%�Q�*q�-��$�����-�I�\� w� ��$��$��)�,-�Z�r�,������%���=+�i�������'�����$7�#\�0��.��0���1�N�i�������-�� ���7-�)e���$��(�����%#�$I�n�����'����'� ,�M�e�� ��7��0��!�#@�d�"��(��!����-�1>�6p�5����.��*'�1R�9����*��+	�,5�+b�4��<��+�*,�-W��������������%�8�K�"Z�}������������/�O�i���������:��=�<]�6��<���"'�J�_�4f�5��4�3�:�0L�}�D��%����8�X�m���������
��7�W�k�'�����!��"�":�]�1r������"��%�=�X�t�����������	�!�6�J�h�����*��)��&� ?�`�{���6��#��)�2F�&y�K��� �� �?�Z�s�������"�&��#�B�]�+|�%��7�5<Y,x���)� 7Mi�����0
>Ut�4�.�$)91c;��.�*;$[�%�,���&0-W&�� ��!+; g�?�)�6#V2z9�>�8&1_�)�)� 	)$	N	)i	*�	"�	�	#�	"
"A
)d
�
�
%�
 �
+$?d�!�0��
(C"`!�9�8�$
=
V
v
+�
%�
1�
)6J'd%��&�!�%'8%`'�-���$+Ki"���!�1&=d!�!����+8@y7�E�!,Na&z0�#��$
/#J*n� ���0230f�+�)�$
//_y'�)�,�$ Bcz-�� �01!I,k��9�(+C/o���!�"B@�����)'Bj�'��	���4#J	nx��.��.�6(_e6y#�&�	�2I^ k%�!��(�,;A(H
q	|%��
�&�&� . )= g 
y � 
� � � � � � !	 !2*!*]!�!�!�!�!�!	�!�!
""+"#F"(j"�"�"	�"
�"�"�"2�"#)#H#b#o#u#$�#/�#�#'�#$%$
<$$G$l$~$�$ �$�$�$�$!�$%:%C%'S%{%~%�%�%�%�%#�%&&9&.A&
p&{&	�&�&�&�&'�&' '
,':'K'c'w'�'�'�'�'�'("(9;(u(�(�(�(
�(�(�(�(�()(&)O)d)l)})�)
�)	�)�)�)�)�)*9*O*b*}*�*&�*�*�*+3+?K+Q�+	�+�+�+,"(,K,\,i,�,�,
�,�,'�,�,--F8--�-�-�-�-(�-�-.'.3.F.c.y.�.0�.;�. />//n/�/�/1�/"�/00-0M03m0�0(�0�01	1$!10F1w1�1�1+�1�1�1�122	(222�K2�2F�2,3
83
C3	Q3
[3i3+~3�3�3�3�3%40<4m4(}4�41�4+�4* 5K5&e59�5M�5>6)S65}6A�64�6$*76O7"�7�7<�7?�7/.8 ^8"8�8�8�8�8�89"9<9[92u9)�9,�9-�9 -:!N:#p:�:�:
�:�:�:�:�:
;;+;	8;B;K;Z;a;|;�;
�;�;�;
�;
�;�;	�;�;<<	3<=<
M<[<
`<5n<�<	�<�<�<
�<�<&�<	==)=/=
7=B=
K=Y=`=:f="�="�=�=�=�=>.>@>D>1]>
�>$�>"�>�><?>?Q?a?t?�?H�?C�?(@<@Y@l@�@�@�@�@	�@�@�@�@ �@-A-9AgAyA�A�A�A�A=�A"B7B$VB{B�B�B�B�B�B�B
�B�BCC)C<CNC
]C kC �C�C
�C�C�C�C
DD7D	ODYDrD�D�D�D�D�D#�D1�D1E1CEuE~E	�E
�E�E�E�E�E�E�E
�EF	F
(F 3FTFhF}F�F�F�F	�F"�FG$G$:G_GfGxG�G
�G�G�G�G�G
HH$H.0H._H.�H.�H.�H.I.JI.yI.�I�I�I�IJ	JJ7JIJ]JnJ
~J�J�J�J	�J�J�J�JKK%*K+PK|L
�L�L�L�L�L%�LMM1M0GMxM�M+�M�M�M
�M$�MN/N
;NhIN�N'�N�N	OO
1O
?OMO]OlO)~O�O�O�O�O"�O P!6P#XP"|P
�P�P�P�P�P�P�P�P
QQ#Q ?Q`Q~Q�Q
�Q�Q4�Q�Q
R
"R
0R
;R
FR TR:uR�R�R
�R�R�R
S"S6SJSiS�S�S�S�S�S+�S*THTbT}T�T�T�T�T
�T�T�TU
#U.U
FU QUrU{U�U�U;�U	V	VV,V4VKVSV	_ViVqVyV�V	�V�V�V	�V�V�V	�V�V
WW-WGWMWbWjWpW�W�W�W�W�W�W�W�W1�WX,X?XXXqXwX�X�X�X	�X�X�X&�X�X�XYY6YCYIYUYbY	hYrYzY�Y�Y�Y�Y�Y/�Y
�YZZ1ZDZWZjZ�Z$�Z�Z�Z�Z
�Z�Z
[[/[
?[
M[[[
j[x[
�[�[�[�[�[�[	�[�[
�[
�[)\
1\?\V\_\h\q\z\�\�\�\K�\:];]D]
M][]0r]�]#�]�]�],^9^O^	_^i^p^
�^�^�^!�^�^)�^)_
A_L_
Y_
g_r_3�_
�_�_�_�_:`<T`4�`3�`<�`77a8oa,�a�a-�a2 b,Sb�b�b �b
�b�b�b
cc(1cZc(rc�c0�c'�c+d:d5Nd�d�d�d8�d)�d8(e,ae�e�e)�e0�e*f=:fxf�f,�f2�f>
gLg8jg%�g*�g�g+
h6hEh;]h�h0�h+�h-i&Diki�i�i�i,�i2j=?j%}j(�j$�j�j5k>kRk!qk�k/�k�k�kll l1l
AlOl[l	hlrl~l�l
�l#�l	�l
�l�l�lm
m'm*Amlm
�m�m	�m�m�m�m�m-n?nTngnQn�n�n�no&o7oHo^oqozo�o�o�o�o�o�o�o�opp3p
Op-Zp�p�p�p�p�pD�p	,q	6q@qOqaqsq�q�q�q�q�q>�qQr
hrsr#|r�r�r�r�rss3sHsWsks�s3�s�s�s�s�s�s�s
t,t?t!]tt$�t8�t�t u(2u'[u�u�u�u�u�u�u�uv(v;vNv/gv�v%�v�v�v�v.wCw6Tw�w!�w%�w�wx+x+Dxpx �x"�x!�x�xy)1y%[y�y �y �y�y�yz1zAzTzlz&�z�z�z�z�z	{{2{M{"b{�{�{ �{�{(�{ $|E|\|l||�|�|�|�|!�|}(}=}T}k}�}�}�}�}&�} �}~6~
M~ X~#y~�~�~%�~�~#/!Su����%�+%�Q�(j���!��%Ԁ���*�C�U�n���&��Ɂ��� -�N�i�+x�����̂ۂ�
�"�7�Q�h�z���2������%�B�W�j�������,Ʉ"��.�+H�$t�����&Ʌ$��,�D�Z�u�����*��%��,�.L�!{�*��%ȇ��+�J�c�|���$��<҈>�N�b�}�����(��� �%�$A�+f�������׊�	� �3�F�Y�%m�����,ˋ#���7�"I� l�����&���+��"�?�N�m�������΍� ���/�E� ]�~�"��
��Ž"َ���-�=�"Z�"}�����ҏ�!	�&+�R�a������>̐�*�#H�#l�������*ґ*��+(�T�o�����%��'ْ��4�*S�~�����͓����  �"A�d�$�(��$͔�$
�'2�Z�r�$����!ʕ!�"�1�B�S�
h�v�����Ŗޖ���/�B�!U�w�������$՗���"�5�K�i���!�� ��$ܘ$�#&�J�a�t���������֙��� !�B�]�r�����
��͚�	�"�6�L�g�������ƛޛ��+�4�S�n�������֜�"	�(,�-U�,����'ȝ�,	�,6�c� z�����؞!�� �':�b�$}�����Ÿ՟���
��.�=�L�b�u�������͠���
�"�?�P�g�~�-��.¡.�. �,O�|�������(��(�,�(>�
g�(u���5�����5�N�_�
r�������ͤ����-� E�f�x�����˥ޥ��'	�1�B�X�l���������Ѧ����,�>�M�^�q�������ͧ �
�*�<�T�q�����'��ۨ��"
� 0� Q�)r�����Щ���8�U�f���)��&˪�!�%2�X�)m�'����ԫ���0�E�d�~�����Ǭ���:�%N�t�������#ӭ#��"�">�(a�0����ˮ��%�@� X� y�������կ#��.�">�a�|���(��Ӱ�1��+�H�,\���#��"DZ-�$�)=�g�"|�&��Ʋ"ݲ��2�M�j�}�����!ʳ���8�!Q�s�����Ŵ���
�!�6�M�e�*�� ��͵����'�A�*]�������̶�� �:�U�%u���#��߷��	� �?�_�u�"����Ҹ�'
�2�Q�d�}�������й!��")�2L��������%к���,�=�W�o�������
ϻݻ)��$�D�c�{�����,ͼ��
�� 8�%Y������ʽ� �$�4�%R�x�����þӾ&�
��$:�(_�������!Ͽ�2�D�`�w�������&����)�G�N�W�h�x����������
�%��$'�*L�w�
|�(����������������!�#@� d�
��&����
������'���
�!!�C�	O�Y�y���������
����
���
,�7�H�_�l�-u�#����������
���'�
.�9�J�h�����
��
������6���
�&�:�B�H�Z�!x�����
���������
��*�G�
Z�e�v���������������������
:�H�c�l�
��
������
��������
	�	��'�?�L�Q�f�w�������������
���%�-�2�C�P�]�p�������
�������������	��&*�
Q�_�y������������1�AH��������� ����
�����
�'�4�:�T�n�}�&��
��������
��$���
.�	<�
F�Q�e�
t�����!��
��4����*�7�Q�k�p�}���%���������)�#I�m�t�y�����
����
�������c�y�.����
��
�������� �"�#7�&[�����'��������!�"9� \�}���'��:��)�A�(W�-��4����$�� �>�2C�-v�'��������� �
3�>�Q�d�y���/��&��)��*&�Q�#g�����
������������
�
!�,�5�
<�G�N�b�s�	������������������
����������1�I�R�
[�f�
l�z���
��
����������������*���1�H�T�[�m�
}�����)���������%0�
V�
a�
l�w���%��'��
����
���
�
#�.�3�<�C�
P�^�m�'��'��
��������+� :�[�d�����������
������
����
���+�:�A�J�_�v����	����
������	���,�1�>�F�S�)X�%��.��1��	��� �
)�7�:�L�
[�f�o�x�{�����������������#�A�"S�"v���
������	����������)�0�.<�.k�.��.��.��.'�.V�.��.����
�������+�4�G�\�p���������������2�!?���Q|�X+��S$�g�&s6�j��;�M����EB�A���W�]�"��_�z��U�(L����P�N�/?�@�^m)1��\����z���Y��m$(W�����c��9.�@L�[����&	��r�Y���\Z_B����Y4���-���x���2�F�����7�}�����u�eV���/d�"`8&��as��B���O��V�o[�4&�p���*e��������5��O0���-IOvJ8�������u���*7^�+�8|���NWD4,
�Q��}'e7�"pW�$b����v�eRG]
EtJ�=h4�� ���Nk/"�
T�q��!��`	q���w�Z�t��j���{]��NWU���,�vG��f�
�:g����\�F���9,Z��aO����k��l�#?m���c�,���PPH-���9�i�6$0�����.�V:��a���K��X#+�	8u��V>��5r:�D.����M�E
]�B�6�-��T��Z�9b�
�n{�&aVg��c����������/���[���L��k|�ER�� 2'��?���3�7�S����+a*��+�I��@N����g��6�|���1):�
�2|��>�@1�I�%<v��]0s����\	xk��D��o�x�M}���������j�_�%���)�?����v�V�t^Kl,�!y�Z��A�c��1��?vy������_zir��Sd�u��$)c6���W��M4�w�3�#
SfKR�:.��5BQ!>���k�'Ud�����a^�����,j��o�;�Y~i���AL�m`���6��A�� �Qm#����R��r(��f�{h�z��,����D�:^����_���`_�X}"H�QITP �CJkQ�O*[lF/q6�|����E0$e'!D��w�<�c�������4��SU^@�{�F�����(�F?����5D�^KX'4����8%����.���=�9�}���`U`���w�K��������j!�J�����cs����G������&<yqD�f=�Y��>GHL(�)�����\x`�C�*H5�PX���q�0�~�i��N�#�����l\��[�9�
�����?�+
�:T�<���#��q8�������Cnz�=nL;{R�b��tR�J~
���g/���L����������P�2U
�e���isb�V����y�2z��E�}=�uT�l���C~xK[Thg]>)7���F�NG��#���s���y��$��y�(bd����@x�=���pp�B����X�m��Q�3Hw�;���3KX8p��� ��-��>�1�7�3��b�d;	/�
��������YC"o�P��������I�<Z�I'�C����J����h0��%���<���f�!��n���E�RO2jW���.O����� T��-i��<�h��d!���9S+	�"*��(�H�
-�1�52�&5�7�0 ;JH�o����b>���'n�A��h�~@\r	��{G����_�����3�tM�U;M���pZ��~�[�*t�w%.Io%��B=F)�1�G�r������3�Ma%���l�]����ACu�n�fA�Y�S			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items             dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s line %ld%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab <files>  As --remote but open tab page for each file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
<%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o???: Sorry, this command is disabled, the MzScheme library could not be loaded.ANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Choice number (<Enter> cancels): CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE118: Too many arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E46: Cannot set variable in the sandbox: "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E747: Missing ']': %sE748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE77: Too many file namesE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Searching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUndo number %ld not foundUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NL found][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!environment variableerror list %d of %d; %d errorsexpressions disabled at compile timefewer linesfile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnew shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: Vim(Simplified Chinese)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2006-04-21 15:16+0800
PO-Revision-Date: 2006-04-21 14:00+0800
Last-Translator: Yuheng Xie
Language-Team: Simplified Chinese
MIME-Version: 1.0
Content-Type: text/plain; charset=gbk
Content-Transfer-Encoding: 8-bit
			  (��δʵ��)

	���޸��� 

���:


�÷�:
            �޸Ĺ�: 
         [�����ڱ�����ʹ��]
         [�����ڸð汾�� Vim ��ʹ��]
            ����: 
            �û��: 
           ���� ID: 
    ���        ��� ��Χ  ��ȫ      ����      
   #   ��  
  ��:
  # �� tag         ��   ��    �� �ļ�/�ı�
 �ת   ��   �� �ļ�/�ı�
# ������б�:

# ����:

# �ļ��ڵı���ʷ��¼ (���µ���):

# �ת�б� (���µ���):

# �Ĵ��:

# ȫ�ֱ�:

(1) ��һ���������Ҳ�ڱ༭ͬһ���ļ���
    ����������޸�ʱ��ע�����ͬһ���ļ����������ͬ�İ汾��


(2) �ϴα༭���ļ�ʱ������

(�������Ҫ�����ļ����Ϊ����ļ��

--- �Զ���� ---
--- ȫ��ѡ��ֵ ---
--- �ֲ�ѡ��ֵ ---
--- �˵� ---
--- ѡ�� ---
--- �Ĵ�� ---
--- Signs ---
--- �﷨��Ŀ ---
--- �﷨ͬ����Ŀ (Syntax sync items) ---
--- �ն˱��� ---
--- �ն˰��� ---
16 λ MS-DOS �汾
32 λ MS-DOS �汾
gvim (Athena �汾) ��ʶ��IJ��:

gvim (GTK+ �汾) ��ʶ��IJ��:

gvim (Motif �汾) ��ʶ��IJ��:

gvim (RISC OS �汾) ��ʶ��IJ��:

gvim (neXtaw �汾) ��ʶ��IJ��:

���Ͱ汾 
�޷������ܵ�

�޷�ִ�� shell
�޷�ִ�� shell sh

�޷� fork

����ѽ��

����
���ֽ����ļ� "
���Ͱ汾 
��������: 
MS-Windows 16 λ����̨�汾
MS-Windows 16/32 λͼ�ν���汾
MS-Windows 32 λͼ�ν���汾
MS-Windows 32 λ����̨�汾
MacOS X (unix) �汾
MacOS X �汾
MacOS �汾
������û����κ��޸Ļ��� Vim �����������½����ļ���
������Ϣ��: "vim -h"

����汾 
RISC OS �汾
С�Ͱ汾 
΢�Ͱ汾 
Vim: X ����

����: ԭʼ�ļ������Ѷ�ʧ����

[�ֽ�] �ܹ� alloc-free %lu-%lu��ʹ���� %lu���߷�ʹ�� %lu

  �ı�   ��   �� �ı�
���   ��   �� �ļ�/�ı�
Shell �ѷ���
ͬ����:              ����:             �����:          [�޷���]         [�޷���ȡ]         [������ Vim �����ļ�]         [���� Vim �汾 3.0]            �ļ��:       -- �� --
      �Ƚ����ļ��£�
      �û� exrc �ļ�: "     �û� vimrc �ļ�: "    ������������� ":recover" �� "vim -r     �����Ѿ�����˻ָ�����ɾ�������ļ� "    �˳�����С�ĵؼ����
    ��=%ld  id=%d  ���=%s        ϵͳ�˵��ļ�: "    �û� gvimrc �ļ�: "   λ�ڵ�ǰĿ¼:
   λ��Ŀ¼    ʹ��ָ�������:
    ����:       ����:      ϵͳ vimrc �ļ�: "  # pri kind tag  (��г�)  �ڶ��û� exrc �ļ�: "  ���԰汾  ��ʹ��(+)�벻��ʹ��(-)�Ĺ���:
  �Ҳ���  �Բ�ͬ��Сд��ʹ�� tag��         $VIM Ԥ��ֵ: "    ϵͳ gvimrc �ļ�: " # pid    ��ݿ��                            prepend path
 (���ж�) (�Ҳ���) (�����ϴ�г�������) (����) (����) Scroll (^E/^Y) (����) (����ɾ��) (��֧��) (ճ�) (�滻) (�滻) Scroll (^E/^Y) (��������) (V-�滻) �ڶ��û� vimrc �ļ�: " ����û� vimrc �ļ�: " < "%.*s" ��� Arabic ת������ ����в�ȫ (^V^N^P)���� %d / %d ���岹ȫ (^D^N^P) Dictionary ��ȫ (^K^N^P) ʧ�� �ļ����ȫ (^F^N^P) Hebrew ���� �ؼ��־ֲ���ȫ (^N^P) �ؼ��ֲ�ȫ (^N^P) ȫ�ܲ�ȫ (^O^N^P) ͷ�ļ�ģʽ��ȫ (^N^P) �滻 ���� ѡ�� ѡ�� �� ѡ�� �� �ո�/d/j: �Ļ/ҳ/�� �·���b/u/k: �Ϸ���q: �˳�  ƴд���� (s^N^P) Tag ��ȫ (^]^N^P) Thesaurus ��ȫ (^T^N^P) �û��Զ��岹ȫ (^U^N^P) ���� ���� �� ���� �� V-�滻 ��в�ȫ (^L^N^P) [���޸�] [a] [w] ^X ģʽ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) ��׷�� ��������̨������ʹ�á�
 �����ڸð汾�� Vim ��ʹ�á�
  $VIMRUNTIME Ԥ��ֵ: " Win32s ģʽ ��Ϣ ���� �ļ�
�кų�����Χ ����� %ld ���� 1 �� ��� �ѷ���
 vim [���]  �� OLE ֧�� ��д��"
    �Ա����ٿ������Ϣ��
"
    �ָ��޸ĵ����� (�� ":help recovery")��
" �Ѵ��ڣ�%-5s: %-30s (�÷�: %s)%3d  %s %s  �� %ld ��ɾ���� %d ��������ͷ�� %d ����������� %d ����������� %d ���ظ��ĵ��ʣ��� %s ������ %d ���ļ��ȴ��༭
���� %d ���ļ�δ�༭��ȷʵҪ�˳���%d �� %d �ѱ༭%ld %s��%s #%ld  %s%ld ��; %ld ���ַ���� %ld ��%ld �� %s �� %d ��%ld �� %s �� 1 ��%ld �� --%d%%--�ı�� %ld ������� %ld ������� %ld �� �ƶ��� %ld ����� %ld �С��� ����� %ld ��%ld �У�%ld ��ƥ�䣬��� %ld ��%ld ���滻��%s �Զ���� "%s"%s ����ֹ%s �� %ld ��%s ���� #%ld %s ���� %s%s ��ֵ���һ�� .aff �ļ���ʹ�õ�ֵ����ͬ%s���� %ld ��%sviminfo: %s λ����: ȡ�(&C)ȡ�(&D)����(&F)���(&H)ȷ��(&O)ȷ��(&O)
ȡ�(&C)ȷ��(&O)
�����ļ�(&L)ȷ��(&O)��ֻ����ʽ��(&O)
ֱ�ӱ༭(&E)
�ָ�(&R)
ɾ�������ļ�(&D)
�˳�(&Q)
��ֹ(&A)��ֻ����ʽ��(&O)
ֱ�ӱ༭(&E)
�ָ�(&R)
�˳�(&Q)
��ֹ(&A)�滻(&R)���(&U)��(&Y)
��(&N)��(&Y)
��(&N)
ȡ�(&C)��(&Y)
��(&N)
ȫ������(&A)
ȫ�����(&D)
ȡ�(&C)' δ֪�����õ��ڽ��ն���:'columns' ���� 80, ����ִ���ⲿ���ѡ�� 'dictionary' Ϊ��ѡ�� 'history' Ϊ��"%s" ���趨 'readonly' ѡ�
ȷʵҪ������ѡ�� 'thesaurus' Ϊ��(%d / %d)%s%s: (���ж�) (��Ч)+			�������ļ�ĩβ+-%s%3ld ��: +--���۵� %3ld ��+<lnum>		�������� <lnum> ��+reverse		��ʹ�÷��� (Ҳ���� +rv)��
���Ǵ��ļ����𻵡�-               �ӱ�׼����(stdin)��ȡ�ı�--			�����Ժ�ֻ���ļ��-- ���� ---- ������...--- �����ļ� --��ɾ��----�����������----cmd <command>	�����κ� vimrc �ļ�ǰִ�� <command>--cmd ���--columns <number>	���ڳ�ʼ���--literal		����չͨ��--noplugin		������ plugin �ű�--remote <files>	���п��ܣ��� Vim ������ϱ༭�ļ� <files>--remote-expr <expr>	�� Vim ��������� <expr> ��ֵ����ӡ��--remote-send <keys>	�ͳ� <keys> �� Vim ��������˳�--remote-silent <files>  ͬ�ϣ��Ҳ��������ʱ����Թ--remote-tab <files>  ͬ --remote ����ÿ���ļ���һ����ǩҳ--remote-wait <files>  ͬ --remote ����ȴ��ļ���ɱ༭--remote-wait-silent <files>  ͬ�ϣ��Ҳ��������ʱ����Թ--role <role>	���������������ڵĴ��ڽ�ɫ�--rows <number>	���ڳ�ʼ�߶�--serverlist		�г����õ� Vim �������Ʋ��˳�--servername <name>	���͵����Ϊ Vim ����� <name>--socketid <xid>	���һ�� GTK �����д� Vim--version		��ӡ�汾��Ϣ���˳�-A			�� Arabic ģʽ��-C			���ݴ�ͳ�� Vi: 'compatible'-D			����ģʽ-F			�� Farsi ģʽ��-H			�� Hebrew ģʽ��-L			ͬ -r-M			�ı������޸�-N			����ȫ���ݴ�ͳ�� Vi: 'nocompatible'-O[N]		ͬ -o ����ֱ�ָ�-P <parent title>	�ڸ�Ӧ�ó����д� Vim-R			ֻ��ģʽ (ͬ "view")-S <session>		���ص�һ���ļ���ִ���ļ� <session>-T <terminal>	�趨�ն����Ϊ <terminal>-U <gvimrc>		ʹ�� <gvimrc> ���κ� .gvimrc-V[N]		Verbose �ȼ�-W <scriptout>	�������������д�뵽�ļ� <scriptout>-X			�����ӵ� X Server-Z			����ģʽ (ͬ "rvim")-b			������ģʽ-background <color>	ʹ�� <color> �Ϊ����ɫ (Ҳ���� -bg)-boldfont <font>	ʹ�� <font> �Ϊ��������-borderwidth <width>	�趨�߿���Ϊ <width> (Ҳ���� -bw)-c <command>		���ص�һ���ļ���ִ�� <command>-c ���-d			Diff ģʽ (ͬ "vimdiff")-dev <device>		ʹ�� <device> ����������-display <display>	�� vim ��ָ���� X-server ����-display <display>	�� <display> ������ vim-display <display>	�� <display> ������ vim (Ҳ���� --display)-e			Ex ģʽ (ͬ "ex")-f			��ʹ�� newcli ���򿪴���-f  ��  --nofork	ǰ̨: ��ͼ�ν���ʱ�� fork-font <font>	ʹ�� <font> �Ϊһ������ (Ҳ���� -fn)-foreground <color>	ʹ�� <color> �Ϊһ��������ɫ (Ҳ���� -fg)-g			ʹ��ͼ�ν��� (ͬ "gvim")-geometry <geom>	ʹ�� <geom> �Ϊ��ʼλ�� (Ҳ���� -geom)-h  ��  --help	��ӡ���(����Ϣ)���˳�-i <viminfo>		ʹ�� <viminfo> ȡ�� .viminfo-iconic		�����С��-italicfont <font>	ʹ�� <font> �Ϊб������-l			Lisp ģʽ-m			�����޸�(д���ļ�)-menuheight <height>	�趨�˵����߶�Ϊ <height> (Ҳ���� -mh)-n			��ʹ�ý����ļ���ֻʹ���ڴ�-name <name>		��ȡ Resource ʱ�� vim ��Ϊ <name>-o[N]		�� N ������ (Ĭ��ֵ: ÿ���ļ�һ��)-P[N]		�� N ����ǩҳ (Ĭ��ֵ: ÿ���ļ�һ��)-q [errorfile]  �༭��һ���������ļ�-r			�г������ļ����˳�-r (���ļ��)		�ָ������ĻỰ-register		ע��� gvim �� OLE-reverse		ʹ�÷��� (Ҳ���� -rv)-s			����(�����)ģʽ (ֻ���� "ex" һ��ʹ��)-s <scriptin>	���ļ� <scriptin> �������ģʽ�����-scrollbarwidth <width> �趨��������Ϊ <width> (Ҳ���� -sw)-t tag          �༭ tag ���崦���ļ�-u <vimrc>		ʹ�� <vimrc> ���κ� .vimrc-unregister		ȡ� OLE �е� gvim ע��-v			Vi ģʽ (ͬ "vi")-w <scriptout>	�������������׷�ӵ��ļ� <scriptout>-x			�༭���ܵ��ļ�-xrm <resource>	�趨ָ������Դ-y			����ģʽ (ͬ "evim"����ģʽ)%s �� %d �У�/ ���ѱ�����: %s%s �� %d �У����ʺ�� /encoding= ���ѱ�����: %sɾ���� 1 ��������ͷ�� 1 ����������� 1 �������1 ���ַ�1 �� %s �� %d ��1 �� %s �� 1 ��1 �� --%d%%--�ı�� 1 ������� 1 �� ��� 1 ���ƶ��� 1 ������� 1 ��1 �У�1 ��ƥ�䣬���� 1 ���ļ�δ�༭��ȷʵҪ�˳������ 1 ��1 ���滻���ڶ��û� gvimrc �ļ�: "����û� gvimrc �ļ�: ": ���ͱ��ʽʧ�ܡ�
: ����ʧ�ܡ�
: ����ʧ�ܡ����Ա���ִ��
<%s>%s%s  %d,  ʮ������ %02x,  �˽��� %03o<���������(��ɾ��): %8lX><�޷���><��><���� %d><���ڶ���(��ɾ��): %.8lX><���ڶ���(δ֪): %.8lX>> %d, ʮ������ %04x, �˽��� %o> %d, ʮ������ %08x, �˽��� %o???: ��Ǹ���������ã��޷����� MzScheme ��ANCHOR_BUF_SIZE ̫С���һ���µ���ݿ����� cscope ��ݿ� %s%s �� %d �У������ BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST ʹ��: %s%s �� %d �У����������̫��: %sȫ����� cscope ��ݿ��ѱ�������а����ļ������ҵ���λ�����µĸı���λ����ɵĸı��Ѿ�ֻʣһ�� tab ҳ���Ѿ�ֻʣһ�������׷���ļ�ȱ�ٱ�Ҫ�IJ�����к� ��ͼ�ٴδ򿪽ű��ļ�: "�ص����ʹ�������ķ�Χ��ȷ����������Ϊ Vim ��ע���û���Beep!�ڵ� %ld �ֽ�֮ǰ�׶�%s ͬʱ���� SQL �� SOFO ���ϵ� "%s%s" �� %ld ��%s �� %d �У���������: %s�� class��û�� SYLLABLE ������ʹ��� COMPOUNDSYLMAX���� shell ִ��: "%s"�Ҳ�������ת�����ʱ�ļ�ȡ��޷����ӵ� Netbeans�޷����ӵ� Netbeans #2������ӵ� SNiFF+�����黷���� ($PATH ���������ҵ� sniffemacs)
���ܴ��� ����ִ�� ���ܴ� NIL:
�޷����ļ� "%s"�޷��򿪲���ȡ: "�޷��򿪲����ű�: "����ִ��Ŀ¼: "%s"�� "%.*s" ��Ϊ����ѡ����� (<Enter> ȡ�): �ر��رձ�ǩ�� %s/%s ��; �� %ld/%ld ��; �� %ld/%ld ����; �� %ld/%ld ���ֽ��� %s/%s ��; �� %ld/%ld ��; �� %ld/%ld ����; �� %ld/%ld ���ַ�; �� %ld/%ld ���ֽ����뷽ʽ: �����: ѹ��� %d/%d ���ڵ㣻ʣ�� %d (%d%%)ѹ�������������� %s ת��ʧ�ܣ��� %d ��: %s��֧�� %s �е�ת����֧�� %s �е�ת��: �� %s �� %s'charconvert' ת��ʧ���޷������ DLL �ĺ��ָ��!�޷����� vim32.dll��Cscope tag: %s��ǰ�� %s����: "%s"Ȼ��� .swp �ļ�ɾ��

�� Vim �Ƚ�(diff)%s �� %d �У������ĸ��ӿ��г��ֲ�ͬ����ϱ�־: %s����Ŀ¼Ŀ¼	*.nothing
ȷʵҪд������ɣ����б��г������ ;����%s �� %d �У��ظ��� /regions= ���ѱ�����: %s%s �� %d �У��ظ��ĸ�����: %s%s �� %d �У�MAP �д����ظ����ַ�%s �� %d �У��ظ��ĵ���: %sE100: û��������� diff ģʽ�Ļ����E101: ��������ϵĻ�������� diff ģʽ�����ܾ�������һ��E102: �Ҳ�������� "%s"E103: ����� "%s" ���� diff ģʽE104: �����ַ�(digraph)�в���ʹ�� EscapeE105: �����ڽű��ļ���ʹ�� :loadkeymap E107: ȱ�����: %sE108: �޴˱�: "%s"E109: '?' ��ȱ�� ':'E10: \ ����Ӧ�ø��� /��? �� &E110: ȱ�� ')'E111: ȱ�� ']'E112: ȱ��ѡ�����: %sE113: δ֪��ѡ��: %sE114: ȱ�����: %sE115: ȱ�����: %sE118: ����IJ������: %sE11: ������д�������Ч��<CR> ִ�У�CTRL-C �˳�E121: δ����ı�: %sE122: ��� %s �Ѵ��ڣ���� ! ǿ���滻E124: ȱ�� '(': %sE125: ��Ч�IJ��: %sE126: ȱ�� :endfunctionE128: ���������Դ�д��ĸ��ͷ���߰���ð��: %sE129: ��Ҫ����E12: ��ǰĿ¼�е� exrc/vimrc �� tag �����в���������E130: δ֪�ĺ��: %sE131: �޷�ɾ����� %s: ���ʹ����E132: ���������ȳ��� 'maxfuncdepth'E133: :return ���ں����E134: �����ƶ���������E135: *Filter* �Զ������Ըı䵱ǰ�����E136: viminfo: ����࣬�����ļ���ʣ�ಿ��E137: Viminfo �ļ�����д��: %sE138: �޷�д�� viminfo �ļ� %s��E139: �ļ������һ��������б�����E13: �ļ��Ѵ��� (��� ! ǿ��ִ��)E140: ��ʹ�� ! ��д�벿�ֻ����E141: ����� %ld û���ļ��E142: �ļ�δд��: д�뱻 'write' ѡ����E143: �Զ���������ɾ�����»���� %sE144: :z �����ܷ���ֵIJ��E145: rvim �н�ֹʹ�� shell ���E146: �����ʽ��������ĸ��ֽ�E147: :global ���ܵݹ�ִ��E148: global ȱ�������ʽE149: ��Ǹ��û�� %s ��˵�E14: ��Ч�ĵ�ַE150: ����Ŀ¼: %sE152: �޷��򿪲�д�� %sE153: �޷��򿪲���ȡ %sE154: Tag "%s" ���ļ� %s/%s ���ظ�����E155: δ֪�� sign: %sE156: ȱ�� sign ���E157: ��Ч�� sign ID: %ldE158: ��Ч�Ļ�����: %sE159: ȱ�� sign ��E15: ��Ч�ı��ʽ: %sE160: δ֪�� sign ���: %sE161: �Ҳ����ϵ�: %sE162: ����� "%s" ���޸ĵ���δ����E163: ֻ��һ���ļ��ɱ༭E164: �޷��л������ǵ�һ���ļ�E165: �޷��л����������һ���ļ�E166: �޷��򿪲�д�����ļ�E167: �ڽű��ļ���ʹ��� :scriptencodingE168: �ڽű��ļ���ʹ��� :finishE169: ���ݹ�������E16: ��Ч�ķ�ΧE170: ȱ�� :endforE170: ȱ�� :endwhileE171: ȱ�� :endifE172: ֻ����һ���ļ��E173: ���� %ld ���ļ�δ�༭E173: ���� 1 ���ļ�δ�༭E174: ����Ѵ���: ��� ! ǿ���滻E175: û��ָ������E176: ��Ч�IJ�����E177: ����ָ�����μ��E178: ��Ч�ļ��Ĭ��ֵE179: -complete ��Ҫ���E17: "%s" ��Ŀ¼E180: ��Ч�IJ�ȫ����: %sE181: ��Ч������: %sE182: ��Ч������E183: �û��Զ����������Դ�д��ĸ��ͷE184: û�����û��Զ������: %sE185: �Ҳ�����ɫ���� %sE186: ǰһ��Ŀ¼������E187: δ֪E188: �ڴ�ƽ̨�ϲ��ܻ�ô���λ��E189: "%s" �Ѵ��� (��� ! ǿ��ִ��)E18: :let �г����쳣�ַ�E190: �޷��򿪲�д�� "%s"E191: ���������һ����ĸ�����/�����E192: :normal �ݹ�������E193: :endfunction ���ں����E194: û�������滻 '#' �Ľ����ļ��E195: �޷��򿪲���ȡ viminfo �ļ�E196: �˰汾�޸����ַ�(digraph)E197: �����趨����Ϊ "%s"E198: cmd_pchar ��������E199: ����ڻ򻺳���ѱ�ɾ��E19: ��ǵ��к���ЧE200: *ReadPre �Զ������ļ����ɶ�E201: *ReadPre �Զ�������ı䵱ǰ�����E202: ת�������ļ����ɶ�E203: �Զ����ɾ�����ͷ��Ҫд��Ļ����E204: �Զ��������ظı�����E205: Patchmode: �޷�����ԭʼ�ļ�E206: Patchmode: �޷���ɿյ�ԭʼ�ļ�E207: �޷�ɾ�������ļ�E208: д���ļ� "%s" ����E209: �ر��ļ� "%s" ����E20: û���趨���E210: ��ȡ�ļ� "%s" ����E211: �ļ� "%s" �Ѿ�������E212: �޷��򿪲�д���ļ�E213: �޷�ת�� (��� ! ǿ�Ʋ�ת��д��)E214: �Ҳ�������д����ʱ�ļ�E215: * ��������Ч�ַ�: %sE216: �޴��¼�: %sE216: �޴�����¼�: %sE217: ���ܶ�����¼�ִ���Զ����E218: �Զ����Ƕ�ײ������E219: ȱ�� {��E21: �����޸ģ���Ϊѡ�� 'modifiable' �ǹص�E220: ȱ�� }��E222: ��ӵ��Ѷ��������E223: �ݹ�ӳ��E224: ȫ���д %s �Ѵ���E225: ȫ��ӳ�� %s �Ѵ���E226: �д %s �Ѵ���E227: ӳ�� %s �Ѵ���E228: makemap: ��Ч��ģʽE229: �޷���ͼ�ν���E22: �ű�Ƕ�׹���E230: �޷���ȡ�ļ� "%s"E231: ��Ч�� 'guifontwide'E232: ����ͬʱʹ���Ϣ�ͻص���������� BalloonEvalE233: �޷��� displayE234: δ֪�� Fontset: %sE235: δ֪������: %sE236: ���� "%s" ���ǵȿ�����E237: ѡ���ӡ��ʧ��E238: ��ӡ����: %sE239: ��Ч�� sign ����: %sE23: û�н����ļ�E240: û�е� Vim ����������E241: �޷����͵� %sE243: ��֧�ֵIJ��: "-%s"����ʹ�� OLE �汾��E244: �ַ��� "%s" ���ܶ�Ӧ����"%s"E245: ���ȷ���ַ� '%c' ������������� "%s" ��E246: FileChangedShell �Զ����ɾ���˻����E247: û����� "%s" ����ע��ķ����E248:  �޷�������Ŀ�ij���E24: û�����дE250: Fontset %s ȱ������ַ���������:E251: VIM ʵ��ע������������ɾ����E252: Fontset ���: %sE253: Fontset ���: %s
E254: �޷�������ɫ %sE255: �޷���ȡ sign ��ݣ�E256: Hangul automata ����E257: cstag: �Ҳ��� tagE258: �޷����͵��ͻ���E259: cscope ��ѯ %s %s û���ҵ�ƥ��Ľ�E25: �޷�ʹ��ͼ�ν���: ����ʱû������E261: �Ҳ��� cscope ���� %sE262: ��ȡ cscope ���� %ld ����E263: ��Ǹ���������ã��޷����� Python �⡣E264: Python: ��ʼ�� I/O �����E266: ��Ǹ���������ã��޷����� Ruby ��E26: �޷�ʹ�� Hebrew: ����ʱû������
E273: δ֪�� longjmp ״̬ %dE274: Sniff: ��ȡ����. ȡ�����E275: ���ȷ�� SNiff+ ����: %sE276: ���ӵ� SNiFF+ ʧ��E277: �޷���ȡ�������ӦE278: δ���ӵ� SNiFF+E279: ���� SNiFF+ �Ļ����E27: �޷�ʹ�� Farsi: ����ʱû������
E280: TCL ���ش���: reflist �𻵣����뱨�� vim-dev@vim.orgE281: TCL ����: �˳�����ֵ�����������뱨�� vim-dev@vim.orgE282: �޷���ȡ "%s"E283: û��ƥ�� "%s" �ı��E284: �����趨 IC ֵE285: �޷���������������E286: �޷������뷨E287: ����: �޷��趨���뷨���ͷŻص����E288: ���뷨��֧���κη��E289: ���뷨��֧���ҵ�Ԥ�༭����E28: û�������Ⱥ���: %sE290: over-the-spot �����Ҫ FontsetE291: ��� GTK+ �� 1.2.3 �ɡ�״̬������á�E292: ���뷨�����δ����E293: ��δ�����E294: �����ļ���ȡ��λ����E295: �����ļ���ȡ����E296: �����ļ�д�붨λ����E297: �����ļ�д�����E298: �Ҳ����� 0��E298: �Ҳ����� 1��E298: �Ҳ����� 2��E29: û�в�������E300: �����ļ��Ѵ��� (������ӹ�����)E301: �ޣ������ļ������ˣ�����E302: �޷����������ļ�E303: �޷��� "%s" �Ľ����ļ����ָ���������E304: ml_upd_block0(): �Ҳ����� 0��E305: �Ҳ��� %s �Ľ����ļ�E306: �޷��� %sE307: %s ��������� Vim �����ļ�E308: ����: ԭʼ�ļ������ѱ��޸�E309: �޷��� %s ��ȡ�� 1E30: û��ǰһ�������E310: �� 1 ID ���� (%s ���ǽ����ļ���)E311: �ָ��ѱ��ж�E312: �ָ�ʱ���������ע�⿪ͷΪ ??? ����E313: �޷�����û�н����ļ�E314: ����ʧ��E315: ml_get: ��Ч�� lnum: %ldE316: ml_get: �Ҳ����� %ld ��E317: ָ��� id ����E317: ָ��� id ���� 2E317: ָ��� id ���� 3E317: ָ��� id ���� 4E318: �����̫��Ŀ飿E319: ��Ǹ������ڴ˰汾�в�����E31: û����ӳ��E320: �Ҳ����� %ld ��E321: �޷����¼��� "%s"E322: �кų�����Χ: %ld ������βE323: �� %ld �������E324: �޷��� PostScript ���ļ�E325: ע��E326: �ҵ�̫�ཻ���ļ�E327: �˵����ij����·�������Ӳ˵�E328: �˵�ֻ�����ģʽ�д���E329: û�в˵� "%s"E32: û���ļ��E330: �˵�·������ָ���Ӳ˵�E331: ���ܰѲ˵���ֱ�Ӽӵ��˵�����E332: �ָ��߲����Dz˵�·����һ����E333: �˵�·������ָ��˵���E334: �Ҳ����˵�: %sE335: %s ģʽ�в˵�δ����E336: �˵�·������ָ���Ӳ˵�E337: �Ҳ����˵� - ����˵����E338: ��Ǹ������̨ģʽ��û���ļ����E339: ģʽ̫��E33: û��ǰһ���滻�����ʽE340: ���й���E341: �ڲ�����: lalloc(%ld, )E342: �ڴ治�㣡(���� %lu �ֽ�)E343: ��Ч��·��: '**[number]' ������·��ĩβ���ߺ���� '%s'��E344: cdpath ���Ҳ���Ŀ¼ "%s"E345: ��·�����Ҳ����ļ� "%s"E346: ��·�����Ҳ���������ļ� "%s"E347: ��·�����Ҳ���������ļ� "%s"E348: ��괦û���ַ���E349: ��괦û��ʶ����E34: û��ǰһ�����E350: �����ڵ�ǰ�� 'foldmethod' �´����۵�E351: �����ڵ�ǰ�� 'foldmethod' ��ɾ���۵�E352: �����ڵ�ǰ�� 'foldmethod' ��ɾ�� foldE353: �Ĵ�� %s ��û�ж��E354: ��Ч�ļĴ���: '%s'E355: δ֪��ѡ��: %sE356: get_varp ����E357: 'langmap': �Ҳ��� %s ��Ӧ���ַ�E358: 'langmap': �ֺź��ж�����ַ�: %sE359: ��֧���趨�ĻģʽE35: û��ǰһ�������ʽE360: ������ -f ѡ��ִ�� shellE363: ���ʽ���ڴ�ʹ�ó��� 'maxmempattern'E364: ���ú���� "%s()" ʧ��E365: �޷���ӡ PostScript �ļ�E367: �޴���: "%s"E369: %s%%[] ������Ч����E36: û���㹻�Ŀռ�E370: �޷����ؿ� %sE371: �Ҳ������E372: ��ʽ���ַ�������̫�� %%%c E373: ��ʽ���ַ�����Ӧ�ó��� %%%c E374: ��ʽ���ַ�������� ]E375: ��ʽ���ַ������в�֧�ֵ� %%%c E376: ��ʽ���ַ�����ͷ���в��ȷ�� %%%c E377: ��ʽ���ַ������в��ȷ�� %%%c E378: 'errorformat' δ�趨E379: �Ҳ���Ŀ¼��ƻ��ǿյ�Ŀ¼���E37: ���޸ĵ���δ���� (���� ! ǿ��ִ��)E380: Quickfix ��ջ�׶�E381: Quickfix ��ջ����E382: �޷�д�룬���趨ѡ�� 'buftype'E383: ��Ч�IJ����ַ���: %sE384: �Ѳ��ҵ��ļ���ͷ���Ҳ��� %sE385: �Ѳ��ҵ��ļ���β���Ҳ��� %sE386: �� ';' ����Ӧ���� '?' �� '/'E387: ��ǰ��ƥ��E388: �Ҳ�������E389: �Ҳ��� patternE38: �յIJ��E390: ��Ч�IJ��: %sE391: �޴��﷨ cluster: "%s"E392: �޴��﷨ cluster: "%s"E393: ʹ��˲��ȷ�IJ��E394: �Ҳ��� %s �� region itemE395: ʹ��˲��ȷ�IJ��E396: ʹ��˲��ȷ�IJ��E397: ��Ҫ�ļ����E398: ȱ�� '=': %sE399: syntax region %s �IJ��̫��E39: �˴���Ҫ���E400: û��ָ��������E401: �Ҳ����ָ��: %sE402: '%s' ����Ķ������ʶ��E403: �﷨ͬ��: �����з���ָ�������E404: ��Ч�IJ��: %sE405: ȱ�ٵȺ�: %sE406: �յIJ��: %sE407: %s �����ڴ˳���E408: %s ������б��ĵ�һ��E409: ���ȷ�����: %sE40: �޷��򿪴����ļ� %sE410: ���ȷ�� :syntax �����: %sE411: �Ҳ��� highlight group: %sE412: ���̫��: ":highlight link %s"E413: �������: ":highlight link %s"E414: ���趨��, ���� highlight linkE415: �����еĵȺ�: %sE416: ȱ�ٵȺ�: %sE417: ȱ�ٲ��: %sE418: ���Ϸ���ֵ: %sE419: �����ǰ����ɫE41: �ڴ治�㣡E420: ����ı�����ɫE421: �������ɫ��ƻ��ֵ: %sE422: �ն˱���̫��: %sE423: ��Ч�IJ��: %sE424: ʹ���̫�಻ͬ�ĸ��������E425: �ѵ���һ��ƥ��� tagE426: �Ҳ��� tag: %sE427: ֻ��һ��ƥ��� tagE428: �������һ��ƥ��� tagE429: �ļ� "%s" ������E42: û�д���E430: Tag �ļ�·�����ض�Ϊ %s
E431: Tag �ļ� "%s" ��ʽ����E432: Tag �ļ�δ����: %sE433: û�� tag �ļ�E434: �Ҳ��� tag ģʽE435: �Ҳ��� tag�����Ų£�E436: termcap ��û�� "%s" ��E437: �ն���Ҫ��� "cm"E438: u_undo: �кŴ���E439: ����б���E43: ���𻵵�ƥ���ַ���E440: �Ҳ���Ҫ�������E441: û��Ԥ������E442: ����ͬʱ���� topleft �� botright �ָ�E443: ������ָ��ʱ�����תE444: ���ܹر����һ������E445: ��������иı������E446: ��괦û���ļ��E447: ��·�����Ҳ����ļ� "%s"E448: �޷����ؿ⺯� %sE449: �յ���Ч�ı��ʽE44: ���𻵵������ʽ����E455: д�� PostScript ���ļ�����E456: �Ҳ��� PostScript ��Դ�ļ� "%s.ps"E456: �Ҳ��� PostScript ��Դ�ļ� "cidfont.ps"E456: �Ҳ��� PostScript ��Դ�ļ� "prolog.ps"E456: �޷����ļ� "%s"E457: �޷���ȡ PostScript ��Դ�ļ� "%s"E459: �޷��ص�ǰһ��Ŀ¼E45: ���趨ѡ�� 'readonly' (��� ! ǿ��ִ��)E460: Resource fork �ᶪʧ (��� ! ǿ��ִ��)E461: ��Ч�ı��: %sE462: �޷�Ϊ���¼��� "%s" �׼��E464: ��ȷ�����û��Զ������E465: :winsize ��Ҫ������ֲ��E466: :winpos ��Ҫ������ֲ��E467: Custom ��ȫ��Ҫһ��������E468: ֻ�� custom ��ȫ��������E469: cscopequickfix ��־ %c �� %c ��ЧE46: ���ܸı�ֻ���� "%s"E46: ������ sandbox ���趨��: "%s"E470: ����ֹE471: ��Ҫ���E472: ���ִ��ʧ��E473: �ڲ�����E474: ��Ч�IJ��E475: ��Ч�IJ��: %sE476: ��Ч�����E477: ����ʹ�� "!"E478: ��Ҫ�ţ�E479: û��ƥ��E47: ��ȡ�����ļ�ʧ��E480: û��ƥ��: %sE481: ����ʹ�÷�ΧE482: �޷������ļ� %sE483: �޷���ȡ��ʱ�ļ��E484: �޷����ļ� %sE485: �޷���ȡ�ļ� %sE486: �Ҳ���ģʽ: %sE487: �����������E488: �����β���ַ�E48: �������� sandbox ��ʹ��E490: �Ҳ����۵�E492: ���DZ༭������E493: ʹ�������ķ�ΧE494: ��ʹ�� w �� w>>E495: û�������滻 "<afile>" ���Զ�����ļ��E496: û�������滻 "<abuf>" ���Զ��������E497: û�������滻 "<amatch>" ���Զ����ƥ���E498: û�������滻 "<sfile>" �� :source �ļ��E499: '%' �� '#' Ϊ���ļ����ֻ������ ":p:h"E49: ��Ч�Ĺ�����СE500: ��Ϊ���ַ���E501: �ѵ��ļ�ĩβE505: E506: �޷�д�뱸���ļ� (��� ! ǿ��ִ��)E507: �رձ����ļ����� (��� ! ǿ��ִ��)E508: �޷���ȡ�ļ��Թ����� (��� ! ǿ��ִ��)E509: �޷����������ļ� (��� ! ǿ��ִ��)E50: ̫�� \z(E510: �޷���ɱ����ļ� (��� ! ǿ��ִ��)E512: �ر�ʧ��E513: д�����ת��ʧ�� (�뽫 'fenc' �ÿ���ǿ��ִ��)E514: д����� (�ļ�ϵͳ�����)E515: û���ͷ��κλ����E516: û��ɾ���κλ����E517: û�����κλ����E518: δ֪��ѡ��E519: ��֧�ָ�ѡ��E51: ̫�� %s(E520: �������� modeline ��ʹ��E521: = ������Ҫ���E522: Termcap �����Ҳ���E523: �������ڴ�ʹ��E524: ȱ��ð��E525: �ַ�������Ϊ��E526: <%s> ����ȱ�����E527: ȱ�ٶ���E528: ����ָ��һ�� ' ֵE529: �����趨 'term' Ϊ���ַ���E52: ��ƥ��� \z(E530: ��ͼ�ν����в��ܸı��ն�E531: ���� ":gui" ��ͼ�ν���E533: �޷�ѡ�������E534: ��Ч�Ŀ�����E535: <%c> ��������Ч���ַ�E536: ��Ҫ����E537: 'commentstring' ����Ϊ�ջ�� %sE538: ��֧�����E539: ��Ч���ַ� <%s>E53: ��ƥ��� %s%%(E540: û�н���ı��ʽ���E541: ��Ŀ����E542: ���ҵ���E543: ��Ч�Ĵ���ҳE544: �Ҳ��� Keymap �ļ�E545: ȱ��ð��E546: ��Ч��ģʽE547: ��Ч�������״E548: �˴���Ҫ���E549: ��Ч�İٷֱ�E54: ��ƥ��� %s(E550: ȱ��ð��E551: ��Ч�IJ���E552: Ӧ��Ҫ�����E553: û�и������E554: %s{...} ���﷨����E555: ���� tag ��ջ�ײ�E556: ���� tag ��ջ����E557: �޷��� termcap �ļ�E558: �� terminfo ���Ҳ����ն���E559: �� termcap ���Ҳ����ն���E55: ��ƥ��� %s)E560: �÷�: cs[cope] %sE561: δ֪�� cscope �������E562: �÷�: cstag <ident>E563: stat ����E563: stat(%s) ����: %dE564: %s ����Ŀ¼����Ч�� cscope ��ݿ�E566: �޷����� cscope �ܵ�E567: û�� cscope ����E568: �ظ��� cscope ��ݿ�δ������E569: �Ѵﵽ cscope �������E570: cs_manage_matches ���ش���E571: ��Ǹ���������ã��޷����� Tcl ��E572: �˳�����ֵ %dE573: ʹ�����Ч�ķ���� id: %sE574: δ֪�ļĴ������ %dE579: :if Ƕ�ײ������E580: :endif ȱ�ٶ�Ӧ�� :ifE581: :else ȱ�ٶ�Ӧ�� :ifE582: :elseif ȱ�ٶ�Ӧ�� :ifE583: �� :elseE584: :elseif �� :else ����E585: :while/:for Ƕ�ײ������E586: :continue ȱ�ٶ�Ӧ�� :while �� :forE587: :break ȱ�ٶ�Ӧ�� :while �� :forE588: :endfor ȱ�ٶ�Ӧ�� :forE588: :endwhile ȱ�ٶ�Ӧ�� :whileE589: 'backupext' �� 'patchmode' ���E590: Ԥ�������Ѵ���E591: 'winheight' ����С�� 'winminheight'E592: 'winwidth' ����С�� 'winminwidth'E593: �����Ҫ %d ��E594: �����Ҫ %d ��E595: ����������ʾ�ַ�����ַ�E596: ��Ч������E597: �޷�ѡ�� FontsetE598: ��Ч�� FontsetE599: 'imactivatekey' ��ֵ��ЧE59: %s@ ��������Ч���ַ�E600: ȱ�� :endtryE601: :try Ƕ�ײ������E602: :endtry ȱ�ٶ�Ӧ�� :tryE603: :catch ȱ�ٶ�Ӧ�� :tryE604: :catch �� :finally ����E605: �쳣û�б�����: %sE606: :finally ȱ�ٶ�Ӧ�� :tryE607: �� :finallyE608: ���� :throw ǰ׺Ϊ 'Vim' ���쳣E609: Cscope ����: %sE60: ̫�ิ�ӵ� %s{...}sE612: Signs ������E613: δ֪�Ĵ�ӡ������: %sE614: vim_SelFile: �޷����ص�ǰĿ¼E615: vim_SelFile: �޷���ȡ��ǰĿ¼E616: vim_SelFile: �޷���ȡ���� %sE617: �� GTK+ 2 ͼ�ν����в��ܸ���E618: �ļ� "%s" ���� PostScript ��Դ�ļ�E619: �ļ� "%s" ������֧�ֵ� PostScript ��Դ�ļ�E61: Ƕ�׵� %s*E620: �޷�ת�����ӡ���� "%s"E621: "%s" ��Դ�ļ��汾���ȷE622: �޷��� cscope ���� forkE623: �޷���� cscope ����E624: �޷����ļ� "%s"E625: �޷��� cscope ��ݿ�: %sE626: �޷���ȡ cscope ��ݿ���ϢE62: Ƕ�׵� %s%cE63: ���ȷ��ʹ�� \_E64: %s%c ǰ��������E655: ������ӹ���(ѭ����)E658: ����� %ld ��ʧ NetBeans ����E659: ���ܵݹ��� PythonE65: ��Ч�Ļ��E661: ��Ǹ��û�� '%s' �� %s ��˵�E662: ���ڸı�б�Ŀ�ʼ��E663: ���ڸı�б��ĩβ��E664: �ı�б�Ϊ��E665: �޷���ͼ�ν��棬�Ҳ�����Ч������E666: ��֧�ֱ����: %sE667: ͬ��ʧ��E668: NetBeans ������Ϣ�ļ��д���ķ���ģʽ: "%s"E669: ����д��ڲ�����ʾ�ַ�E66: �˴������� \z(E670: ��һ�������л��˶��ְ���ļ�����: %sE671: �Ҳ������ڱ��� "%s"E672: �޷��� MDI Ӧ�ó����д򿪴���E673: �����ݵĶ��ֽڱ�����ַ�����E674: printmbcharset �ڶ��ֽڱ����²���Ϊ�ա�E675: û��ָ�����ֽڴ�ӡ��Ĭ�����塣E676: �Ҳ��� acwrite �������Ӧ���Զ����E677: д��ʱ�ļ�����E678: %s%%[dxouU] ��������Ч���ַ�E679: ���� syncolor.vim ʱ����Ƕ��ѭ��E67: �˴������� \z1 ��E680: <buffer=%d>: ��Ч�Ļ������ E681: �����δ����E682: ��Ч��������ʽ��ָ�E683: ȱ���ļ����ģʽ��ЧE684: List ��������Χ: %ldE685: �ڲ�����: %sE686: %s �IJ�������� ListE687: Ŀ��� List �����E688: Ŀ��� List �����E689: ֻ���� List �� DictionaryE68: \z ��������Ч���ַ�E690: :for ��ȱ�� "in"E691: ֻ�ܱȽ� List �� ListE692: �� List ��Ч�IJ��E693: ֻ�ܱȽ� Funcref �� FuncrefE694: �� Funcrefs ��Ч�IJ��E695: ������һ�� FuncrefE696: List ��ȱ�ٶ���: %sE697: List ȱ�ٽ���� ']': %sE698: ��Ƕ�׹����޷�����E699: �������E69: %s%%[ ��ȱ�� ]E700: δ֪�ĺ��: %sE701: len() �������ЧE702: Sort �ȽϺ��ʧ��E703: �� Funcref ����ʹ��E704: Funcref ��������Դ�д��ĸ��ͷ: %sE705: ��������к�����ͻ: %sE706: �����Ͳ�ƥ��: %sE708: [:] ���������E709: [:] ��Ҫһ�� List ֵE70: �յ� %s%%[]E710: List ֵ�����Ŀ���E711: List ֵû���㹻�����E712: %s �IJ�������� List ���� DictionaryE713: Dictionary �ļ�����Ϊ��E714: ��Ҫ ListE715: ��Ҫ DictionaryE716: Dictionary �в����ڼ�: %sE717: Dictionary ���Ѵ���E718: ��Ҫ FuncrefE719: ���ܶ� Dictionary ʹ�� [:]E71: %s%% ��������Ч���ַ�E720: Dictionary ��ȱ��ð��: %sE721: Dictionary �г����ظ��ļ�: "%s"E722: Dictionary ��ȱ�ٶ���: %sE723: Dictionary ȱ�ٽ���� '}': %sE724: ��Ƕ�׹����޷���ʾE726: ����Ϊ��E727: ��ʼֵ����ֵֹ��E728: �� Dictionary ����ʹ��E729: �� Funcref � String ʹ��E72: �����ļ��رմ���E730: �� List � String ʹ��E731: �� Dictionary � String ʹ��E732: :while �� :endfor ��βE733: :for �� :endwhile ��βE734: %s= �ı����Ͳ��ȷE735: ֻ�ܱȽ� Dictionary �� DictionaryE736: �� Dictionary ��Ч�IJ��E737: ���Ѵ���: %sE738: �޷��г� %s �ı�E739: �޷�����Ŀ¼: %sE73: tag ��ջΪ��E741: ֵ�����: %sE742: �޷��ı� %s ��ֵE743: (un)lock �ı�Ƕ�׹���E744: NetBeans ������ı�ֻ���ļ�E745: �� List ����ʹ��E746: ������ű��ļ����ƥ��: %sE747: ���ܸı�Ŀ¼����������޸� (��� ! ǿ��ִ��)E747: ȱ�� ']': %sE748: û��ǰһ��ʹ�õļĴ��E749: �յĻ����E74: �������E750: ����ʹ�� :profile start <fname>E751: ���ļ�����ܺ�������E752: ֮ǰû��ƴд�滻E753: �Ҳ���: %sE754: ���ֻ֧�� 8 �����E755: %s ������Ч�ķ�ΧE756: ƴд���δ����E757: �⿴�������ƴд�ļ�E758: �ѽضϵ�ƴд�ļ�E759: ƴд�ļ���ʽ����E75: ��ֹ���E760: %s ��û�е��ʼ��E761: �����ļ� FOL��LOW �� UPP �и�ʽ����E762: FOL��LOW �� UPP ���ַ�������ΧE763: ƴд�ļ�֮����ַ�����ͬE764: û���趨ѡ�� '%s'E765: 'spellfile' û�� %ld ��E766: printf() �IJ������E767: printf() �IJ������E768: �����ļ��Ѵ���: %s (:silent! ǿ��ִ��)E769: %s[ ��ȱ�� ]E76: [ ����E770: ƴд�ļ��д��ڲ�֧�ֵĽ�E771: �ɰ汾��ƴд�ļ�����Ҫ����E772: Ϊ���߰汾�� Vim ��õ�ƴд�ļ�E773: "%s" ������ӳ���ѭ��E774: 'operatorfunc' Ϊ��E775: ��ֵ���ܲ�����E776: û�� location �б�E777: �˴���Ҫ String ���� ListE778: ��������� .sug �ļ�: %sE77: �ļ������E784: ���ܹر����һ�� tab ҳE785: complete() ֻ���ڲ���ģʽ��ʹ��E786: ������ķ�ΧE787: ����ظı�˻����E788: Ŀǰ������༭��Ļ����E78: δ֪�ı��E79: �޷���չͨ��E800: �޷�ʹ�� Arabic: ����ʱû������
E80: д����E81: �ڽű�������ʹ��� <SID>E82: �޷������κλ�������˳�����...E83: �޷����仺�����ʹ���һ�������...E84: û���޸Ĺ��Ļ����E85: û�п�г��Ļ����E86: ����� %ld ������E87: �޷��л����������һ�������E88: �޷��л������ǵ�һ�������E89: ����� %ld ���޸ĵ���δ���� (��� ! ǿ��ִ��)E90: �޷��ͷ����һ�������E91: ѡ�� 'shell' Ϊ��E92: �Ҳ�������� %ldE93: �ҵ���ֹһ�� %sE94: û��ƥ��Ļ���� %sE95: ���л����ʹ�ø����E96: ���ܱȽ�(diff) %ld �����ϵĻ����E97: �޷����� diffE98: �޷���ȡ diff ����E99: ��ǰ��������� diff ģʽ����: �༭�ļ����´��ڱ༭�ļ��� Vim �༭(&V)�ö� Vim �༭(&M)�õ�ǰ�� Vim �༭ - �õ��� Vim �༭(&V)�� Vim �༭ѡ�е��ļ�����:�������ű��ļ������������: ������Ҫʹ�õĽ����ļ���� (0 �˳�): ��������һ��: ������ģʽ������ "cont" ������С����� Ex ģʽ������ "visual" �ص����ģʽ������������ж���������ʧ��: ���� gvim �Ƿ���·���У����� %s ʱ�������:��������ʱ�ڴ����: %d �ֽ��쳣�����쳣: %s����쳣: %s����쳣: %s�׳��쳣: %sִ�� %s%s �� %d �У��˴���Ҫ MAP ���%s �� %d �У��˴���Ҫ REP(SAL) ���%s �� %d �У��˴���Ҫ Y �� N: %s�ⲿ����:
%s �� %d �У���ʹ�ñ�־���� FLAG: %s�ļ� "%s" �������ļ��ѱ����ļ���������Һ��滻�ַ��� (ʹ�� '\\' ������ '\')������һ��(&N)������һ�������ַ��� (ʹ�� '\\' ������ '\')���� symbol��������:%s �� %d �У��״��ظ��ĵ���: %s%s �� %d �У���־�������: %s'%s' ���ǹ̶���ȵ�����ѡ����������%ld�Ŀ�Ȳ�������0�����
����0�Ŀ�ȣ�%ld
����0: %s
����1�Ŀ��: %ld

����1: %s
����:ѡ�������������Ч����ļ�: ��ã�Vim �û�������ڸɴ�Ŀ����ͯ���ѵ������βI/O ��������˺��з� ASCII �ַ��� %d �����ʣ��� %s ������˺��з� ASCII �ַ��� %d ��������Ч���ļ��%s �� %d �У���Ч�ı�־: %s��Ч�ļĴ�����Ч�����ַ����뷨(_M)�ж����ж�: ���ж���Ч�IJ��ָ������Ч������%s �� %d �У���Ч������: %s%s �� %d �У�FLAG ��ֵ��Ч: %s�������벻ƥ�䣡���һ���������ӷ�ʽ: ƥ���Сдƥ������Ĵ��Ϣ���������Ϣά����: Yuheng Xie <elephant@linux.net.cn>ȱ�� '>'%s ��ȱ�� FOL/LOW/UPP ��%s ��ȱ�� SOFO%s ���޸��� ���:��Ҫ %s �汾 %ld
��Ҫ Amigados �汾 2.04 ����
NetBeans ������δ�޸ĵĻ����д���½���ǩ�������û�ж����κ��﷨���Ҳ����дû�ж���ϵ�û�� displayû�� display: ���ͱ��ʽʧ�ܡ�
û�а����ļ��Ҳ���ӳ��û���趨����ڹ�괦û��ƥ�䣬������һ��û��ƥ����Զ�����޽����ļ�û��Ҫ��ӡ�������޷��������Ȼ����Ҳ����û��Զ������δʹ���޿ɳ��soundfolding ��ĵ����: %ldȷ�����ļ��Ի����򿪱�ǩ...�򿪱�ǩ...�� X display ʧ���� X display ��ʱ�� X display ��ʱ %ld ��ԭʼ�ļ� "%s"�����Ѵ��ڵ��ļ� "%s" ���� %d ҳNetBeans �������������д��Patch �ļ�·��̫����·��:ÿ�ж�ƥ����ʽ: %s�Ҳ���ģʽ��� soundfolding�����밴 ENTER ������������ӡ�����ѱ����͡��Ѵ�ӡ: %s��ӡ '%s'��ӡ��ֹ��ڴ�ӡ�� %d ҳ (%d%%)��ѯһ��ģʽ������ȡ�����ļ� %s ������ȡƴд�ļ�������ȡ�ֵ��ļ� %s �����ӱ�׼����ȡ...��ȡƴд�ļ� "%s"��ȡ viminfo �ļ� "%s"%s%s%s��ȡ�����ļ� %s �����ָ���ϡ���ȷ��һ������������������滻ȫ���滻(&A)ȫ���滻�滻Ϊ:�ָ��ָ�: �������Ŀ�ָ�: ���ļ��ָ�: �Ӷ��������� Vi ����ģʽ��ģʽ���У��������ּ�����SNiFF+ Ŀǰ���Ϊ�����ļ��Ի��������ض�������Ự�����趨������ͼ���ı䱣�浽 "%s" �����ɨ�� dictionary: %s���Ұ����ļ�: %sɨ���ǩ.���ɨ��: %s���������: �޷���ȡ����ͼ��ļ��δ�С��ڲ��� "%s"��ڲ��� "%s"���� "%s" �����Ұ������ļ� %s���� tag �ļ� %s������Ϣ�� ":help E312"��һ��˵��� ":help W11"��һ��˵��� ":help W12"��һ��˵��� ":help W16"ѡ��Ŀ¼�Ի���ѡ��� %s%ld/%ld ��; %ld/%ld ����; %ld/%ld ���ֽ�ѡ��� %s%ld/%ld ��; %ld/%ld ����; %ld/%ld ���ַ�; %ld/%ld ���ֽ�ѡ�����͵���ӡ��������ʾ base class of:��ʾ��ι�ϵ�����ʾ restricted ��ι�ϵ�� class��ʾ������ʾ�ļ�: ��ʾ�����ǵij�Ա�����ʾԴ����: ��ʾ����Ϣ%s �� Signs:�ߴ�:Sniff: д����󡣽��������Ǹ���Ҳ�������ļ� "%s"��Ǹ��û�н�����Ǹ��ֻ�� %ld �������Ǹ����������: �޷����� Perl �⡣ִ�� Vim �ű���� Vim �Ŀ�������ջ��С������:�����ļ� "�����ļ� "%s" �Ѵ��ڣ�ȷʵҪ�����������ļ��Ѵ��ڣ��ҵ������ļ�:Tab ҳ %d˺�´˲˵����� X display ʧ����л�ѡ�� Vim���ļ������� Ψһƥ���� Vim ����ʱû�м��� diff ������ cscope ��֧�ַָ�ڡ�
�л�ʵ��/����"+command"��"-c command" �� "--cmd command" �������̫����ϱ�־�༭�������̫���ӳ�ǰ׺̫���ӳ�ǰ׺��/����ϱ�־%s �� %d �У�̫�����: %s�����������: %d%s �� %d �У�����ĺ���ַ�: %s����  :quit<Enter>  �˳� Vim��������ֻ����� (<Enter> ȡ�): �޷���ȡ�� 0: �޷�ע����������Ҳ�������� %ldδ֪δ֪��ѡ����%s �� %d �У�����ʶ��ı�־: %s%s �� %d �У��޷�ʶ����ظ�����: %sδ������ʹ�� Vim 3.0��
ʹ�� CUT_BUFFER0 ��ȡ����ѡ��ʹ�ý����ļ� "%s"VIM - ע��VIM - ���Һ��滻...VIM - ����...VIM - Vi IMprovedVIM ����VIM: ���ܴ򿪴���!
����� $PATH ���Ҳ��� VIMRUN.EXE��
�ⲿ���ִ����Ϻ󽫲�����ͣ��
��һ��˵��� :help win32-vimrunVim - ����ѡ���Vim E458: �޷�������ɫ���ijЩ��ɫ���ܲ��ȷVim ����Vim �Ի���Vim �Ի���...Vim ����Vim ����: ~aVim ����ֵ: %d
Vim �ǿ����ɷַ��Ŀ���Դ������Vim: ���ص� %s �¼�
Vim: ���ص�����ź�(deadly signal)
Vim: ���ص�����ź�(deadly signal) %s
Vim: ˫���źţ��˳���
Vim: �������˳���...
Vim: ����: �޷��� NetBeans ���� gvim
Vim: �����
Vim: ����ڱ�����شݻ�
Vim: �ӱ�׼����ȡ...
Vim: �ӻỰ�����յ� "die" ����
Vim: ����: ���벻������ն�(����)
Vim: ����: �����ǵ��ն�(�Ļ)
Vim: ��ڱ����ļ�����
W10: ����: ����޸�һ��ֻ���ļ�W11: ����: �༭��ʼ���ļ� "%s" �ѱ䶯W12: ����: �ļ� "%s" �ѱ䶯�������� Vim �еĻ����Ҳ�ѱ䶯W13: ����: �༭��ʼ���ļ� "%s" �ѱ�����W14: ����: �ļ������W15: ����: ������зָ����������� ^MW16: ����: �༭��ʼ���ļ� "%s" ��ģʽ�ѱ䶯W17: Arabic ��Ҫ UTF-8����ִ�� ':set encoding=utf-8'W18: ����к�����Ч�ַ�����: ���ļ��Զ�����ѷ���䶯����������: ��⵽ Windows 95/98/ME��������: �Ҳ�������б� "%s.%s.spl" or "%s.ascii.spl"����: ����ؽ������������ (�����Զ����)����: ͬʱָ���� compounding �� NOBREAK����: ��� %s ��֧������: ����ն˲�����ʾ�����ڴ��ļ� "����λ��: X %d, Y %d�� %s �����˵�����һ�еĴ��� %s ��ɾ���˵���Ҫд�벿���ļ���д��ƴд�ļ� %s ����д�뽨���ļ� %s ����д�� viminfo �ļ� "%s"%s �� %d �У������ CHECKCOMPOUNDPATTERN ֵ: %s%s �� %d �У������ COMPOUNDMIN ֵ: %s%s �� %d �У������ COMPOUNDSYLMAX ֵ: %s%s �� %d �У������ COMPOUNDWORDMAX ֵ: %sXSMP ICE ���Ӽ���ʧ��XSMP SmcOpenConnection ����ʧ��: %sXSMP ���� save-yourself ����XSMP ��ʧ�˵� ICE �����XSMP �����Xref ��Xref ��˭�ο�:Xref �ο���Xref ��˭ʹ��:�����Ϊ��[�� %ld ��ת������][ȱ�� CR]'[��ɾ��][�豸][�ļ�����][���][�� %ld ����Ч�ַ�][���һ�в����][Location �б�][�ҵ� NL][δת��][��Ŀ¼][���ļ�][���ļ�][��][δ��][���޸ĵ���δ����]
[δ�༭][Ȩ�޲���][Ԥ��][Quickfix �б�][������][ֻ��][������][����] �ܹ� re/malloc(): %lu���ܹ� free()': %lu

[��ת��][�Ѽ���][dos ��ʽ][dos][fifo/socket][fifo][�ļ� ..]       �༭ָ�����ļ�[���зָ�][mac ��ʽ][mac][noeol][ֻ��][socket][unix ��ʽ][unix]after������ diff ��ԭ�ļ��Ƚ��Լ���Ƿ��иı�)
��ͼ����ѱ�ɾ���Ļ������ͼ����ѱ�ɾ���Ĵ����Զ���� %sbefore����� %ld �еĿ������ 1 �еĿ��������Ч�� ά���� Bram Moolenaar ��inputrestore() �ĵ��ô������ inputsave()���� %s����ɾ�� OutputObject �����޷���ȡ 'charconvert' ���������л����̨(console)ģʽ !?
�޷����������/�������: ���󽫱�ɾ���޷�ɾ�����޷���ȡ���޷��������޷�����/׷�������ܴ��޷�ע��ص����: �����/�����ѱ�ɾ���޷�ע��ص����: �Ҳ��������/��������޷��滻���޷����泷���Ϣ�޷��趨���޷����ƣ���Ϊɾ���з���ı��з���ı��ر����: %s�������� %s �м������ִ�� "%s"�޷��򿪻����cs_create_connection ִ��ʧ��cs_create_connection: fdopen fr_fp ʧ��cs_create_connection: fdopen to_fp ʧ��cscope ���:
cscope ���� %s �ѹر����λ���ڻ������Ĭ��ֵΪ: 'ɾ���˿� 1��dlerror = "%s"���ļ��ȷд��ǰ�����˳��༭�������������б� %d / %d���� %d ����������ʱû�����ñ��ʽ�б�ȥ���ļ�
�� / ������ / ��
���ִ�� %s�ͷ�� %ld ��gvimext.dll ���������ص�ѡ����·�� ---
��Ч��������Ч�Ļ��������Ч�ı��ʽ��Ч�ı�������Ŀ¼�����ļ������ļ����д���豸ֻ�� (��� ! ǿ��ִ��)�����ж��� %4ld ��:�� %6d �У��� %6d ������ - %s�� %ld ���� %ld / %ld --%d%%-- �� �� %ld ��: %s�� %ld ��: ����ִ�� "%s"�� %ld ��: ִ�� "%s"�б�ȥ���кų�����Χ�кų�����Χע�û���趨���ƥ�� %dƥ�� %d / %d���mch_get_shellsize: �������̨(console)??
�˵�  �༭->ȫ���趨->��/�ز���ģʽ  �˵�  ���->�¶�           �鿴˵�           �˵�  Help->Sponsor/Register  �鿴˵�           ��Сmodeline�б������б��������� shell
��û�� cscope ����
�Ҳ���ƥ������޴˻�����޴˴���û��ͬ��δ�������� sandbox ��ʹ���Ҳ��� �� 'runtimepath' ���Ҳ��� "%s"��δʵ��  ���    �ı�  ʱ��pe_line_count Ϊ��pre-vimrc ������� Netbeans �׽��ֶ�ȡֻ��������¼���滻Ϊ %s (y/n/a/q/l/^E/^Y)���� %d �� �� %d ���Ѳ��ҵ��ļ���β���ٴӿ�ͷ��������Ѳ��ҵ��ļ���ͷ���ٴӽ�β�������shell Shell ���� %d�ػ�softspace ��������ִ�� "%s"stack_idx Ӧ���� 0�ַ������ܰ�������(NL)C���ע��ͬ����ͬ����ʼ�ҵ� tag: %d / %d%stag ��� %s �� %s����  :help cp-default<Enter> �鿴���˵�    ����  :help iccf<Enter>       �鿴˵�        ����  :help register<Enter>   �鿴˵�        ����  :help sponsor<Enter>    �鿴˵�        ����  :help version8<Enter>   �鿴�汾��Ϣ    ����  :help windows95<Enter>  �鿴���˵�    ����  :help<Enter>  ��  <F1>  �鿴���߰��    ����  :q<Enter>               �˳�            ����  :set nocp<Enter>        �ָ�Ĭ�ϵ� Vim  δ֪�ı�־: δ֪��ѡ��δ֪�� vim ѡ���汾 vim ����������������Χ������Ч��(��ͳ)ͼ�ν��档�� Carbon ͼ�ν��档�� Cocoa ͼ�ν��档�� GTK ͼ�ν��档�� GTK-GNOME ͼ�ν��档�� GTK2 ͼ�ν��档�� GTK2-GNOME ͼ�ν��档��ͼ�ν��档�� Photon ͼ�ν��档�� X11-Athena ͼ�ν��档�� X11-Motif ͼ�ν��档�� X11-neXtaw ͼ�ν��档��ͼ�ν��档writelines() ��Ҫ�ַ����б�����PK�j�Z�iH�TT/vim80/lang/menu_english_united_kingdom.1252.vimnu�[���" Menu Translations:	UK English for ASCII

source <sfile>:p:h/menu_en_gb.latin1.vim
PK�j�Z��-w�Y�Y vim80/lang/sr/LC_MESSAGES/vim.monu�[�������<
<y����
ʡء�'��/�O�e�{�L��:ޣ�&�+.�Z�"u�����ɤ5٤�,�H�e�t����;Y�����ʦ�����)�?�Z�r�0��.��/�0�
J�X�n���
����
¨$ͨ$�� (�I�@X�D��ީ�"�4�"S�@v���Ҫ����/&�8V�,��=�����+�:�Z�t���0��1Ȭ1��,�A�V�r�-����ڭ���6�N�3f�3��ή���5�F�
`�k�z�������
ί$ܯ�L
� Z�{���;�����#�	'�1�J�Z�k�
t��������α	�����!�4�C�c��������� ��۲���0�9�B�
J�X�6e�����ҳ!��
�)�	6�@�`�l�q�&v�	��"��*ʴ��=
�
K�Y�	_�i�u�����	��
��
��õ
̵׵����5"�X�-j�1��&ʶ�	��1�E�Z�u�$������
з۷���,�>�Q�e�u���������Ǹ׸���
��+�7�
G�R�d�7t���!��۹�������"�1�=5�2s���������'Ϻ-��2%�X�u�?��λ���+
�6�	E�O�i���-��μ$��
3�>�N�b�n�=��?ý�2�!E�%g�@��9ξE�9N�C��K̿I�Hb�;��6�8�3W�<��4�-��6+�b�%|�����������&�,6�#c�4�� ��@��-�0L�:}�;����"�7�>H�)��>��<��-�9�#Y�:}�'��9���$3�9X�4��;�� �>$�1c�/����-���.�BN�"��2��4��*�G�+e�%��'��(��<�EE�.��-��$��
�<&�c�*}�&�� ��4��%�6�H�[�g�|�����������������"���(�7�O�g���)����$��������13�?e��������������"�5�XN�%��������
�#�<�V�n�z���$����!������%�)�G�"e�$����#��������6�H�^� y���4����	�C�VO���
��
��.����-�B�-a�$��.��6���.4�Hc�(������
��O�OX�
��C��	����!%�G�M�k�3p�2��!��(��"� ;�"\�E���%��#�-,�Z�x���&���������3�K�'c���)��+��@��-=�k�5���������/'�9W���E����-�7=�#u� ��:��5��&+�"R�&u�$��#��!��=�5E� {�(��7��.��,,�Y�u����� ��#��&��#�:�R�m���������0��$0�!U� w�(��4��,��#�?�R�h�������1����!�%=�%c�!��%����$�� �0�L�?g�&��#����
�A�%^�"��"��9��'�(,�2U�*��!��!��)��%!�!G�4i�:��&��;�;<�)x�0�������'�9�#R�!v�8��&��#��� 4�/U�"����-�������/)�*Y�(��#�������%�A�>]�������"��
�)�?�[�#r���9��1��1�)O�1y�%��7��	�A#�?e�������!���0�K�0j�4��$��)��N�,n�&��L���'�=�8T���$������#�7&�N^�����$�!&�3H�,|�2��%��"�@�#^����������0�!C� e�<��+���+$�2P�$����,��H�,W�����"������8�W�9v�����0��#-�'Q�y���,��&����+"�2N�-��(���"�'�'<�,d���.���#��,�WH�)��"�,�%@ ]~2�2�2�0!Mo�2�5�'#.)R3|$�%��2Gg$&� �'�*#?'c%��3�!'+Fr*�-�$�/Nj} � �$�$�)$Nf,|��%��=]y��'��	$+	#P	0t	.�	0�	
%
B
]
u
�
�
-�
 �
7!)Y�$�(��%$=b��'��'�  
A
Y
s
 �
7�
0�
#4X"x(�!��-126d5��.�*1Fx*�&�+�,+C4o<�+�*
8Nf{������"
0CZu����8Lh�:�=�<6M<��"��+)>4h5�4�3<0N �D�P�%Io�����.!Ln�����'FY!y��"��1:Qn"�����
1J_x������5*T)�� ��"6;#r�)�&�KO b�����  "7 &Z #� � � +� %!71!5i!�!�!,�!""9")O" y"�"�"�"�"##<#X#0p#�#�#�#�#4$.H$$w$)�$1�$;�$4%.D%*s%�%$�%�%%�%,$&Q&%b&�&�&�&&�&-�&&''N' j'�'�'�'+�' 	(*(?=()}(�(6�(#�(2)9O)>�)8�)1*3*)Q*){* �*)�*�*)+*5+"`+�+#�+"�+"�+),0,P,%n, �,$�,�,�,!-09-j-�-�-�-"�-!�-9.8U./�.�.�.�.+	/%5/1[/)�/�/�/'�/%
030&J0!q0%�0'�0%�0'1-/12]1�1�1$�1�1�12":2]2}2!�21�2&�23!53!W3y3(�3�3�3+�384V47u4E�4!�45(5(A50j5#�5�5$�5�5#6*76b6}6�60�62�607?7+\7)�7$�7/�78!8'18)Y8,�8�8�8 �89"9-@9,n9�9/�9+�9':!8: Z:0{:�:!�:,�:;);(;;d;};0�;.�;�;1<&E<:l<�<9�<�<:=U=m=�=�=*�=�=3>I>%b>2�>0�>!�>;?RJ?�?*�?�?@(@D@+`@+�@�@ �@"�@%A =A+^A"�A+�A�A.�A4(BI]B)�B)�B6�B62C-iC(�C/�C&�C<D)TD*~D�D7�D�DE1E*PE{E�E0�E/�E!F"8F*[F/�F;�F�FGQ*G.|G�G$�G#�G0H#EHiH2�H6�H�H+I%>IXdI;�I/�I;)JeJ!�J%�J"�JN�J.?K$nK&�KT�K#L"3L$VL {L�L�L#�L]�L \MB}M'�M�M/N25N,hN"�N�N&�N(�N%"OHOgO�OE�O!�O 
P7+PcP%yP�P'�P�P'Q,QLQ<bQ�Q"�Q'�Q
R%R+;RgR(�R!�R5�RS7!S!YS%{S/�S!�S�ST'1TYT)xT;�T&�T(U8.U&gU�U.�U �U�U&V)<V&fV�V�V'�V�V	�V�VW$W=WWW#mW	�W�W�W�W.�WX.X6KX�X�X6�X#�X
�X&Y	)Y3YHY`YwY�Y �Y%�Y!�Y
Z
Z(#Z�LZa�ZY[+r[a�[\\\(\
E\	P\%Z\
�\�\&�\&�\�\(]=]	N]X]	i]s]
y]�]�]�]�]	�]2�]**^U^u^�^�^�^
�^�^	�^�^__#_#>_(b_�_�_	�_�_�_
�_�_`2`K`W`v`�`�`�`$�`�`/�`*a2a'5a]asa
�a$�a
�a�a�a�a �ab/b<bIb!_b�b�b@�b(�bc'#cKcNc_ckcwc�c#�c�c�c	d.d
@dKd	adkd�d�d�d'�d�de
e e1eIe]efe�e�e�e�e�e�ef97f9qf�f�f�f�f
�f�f(g8g@gQgbg
og	zg�g�g�g�g�g9�g
"h0hCh^hyh&�h�h�h�hiC,iWpi	�i�i�i�i
j
j-j)3j]j}j�j�j�j�j�j�jk(k7kQknk1�k�k�k�k�k�k	ll8l0Gl;xl>�l�lm#m1?m"qm�m�m�mA�m)n=>n|n(�n�n�n$�n0o8oAoDo+Zo2�o�o�o�o�o
p	p&p�?p�pF�p q
,q	7q
AqOq+dq�q%�q0�qB�q(@rir1�r+�r*�r&s95sMos>�s)�s5&tA\t4�t$�t*�tA#uAeu&�u6�uv<
v<Jv?�v7�v/�v /w"Pwsw2�w0�w�wx x<xQxexx�x�x2�x)y++y,Wy-�y �y!�y#�yz2zJzNzRzqz	~z�z�z�z�z�z�z�z�z
	{
{{	%{/{M{Z{	n{x{
�{�{
�{	�{5�{�{
�{	|||
%|3|&:|a|t|�|�|
�|�|
�|�|�|�|�|�|�|�|�|�|9�|B-}Dp}"�}$�}"�}) ~J~Y~`~|~�~�~�~1�~
�~$"&I<h�'�!���%�?�^�w�H��C̀�%�B�Z�m�������������́ �#�-&�-T�������ς߂�(�&.�U�=d�����%҃
��8�F?�.��D��M��@H�0��&��'�&	�$0�U�g�$����-†��"�9�W�c�i���������
χ݇�
� �=�
B�P�"]���%��*��.�8�"K�#n�%��#��܉���/-�]�
l� z� ����
ϊڊ����&�F�	^�h���2��ȋ����$�*�7�@�
O�]�#f�1��1��1�1 �R�[�	d�
n�(y�������ύ��
��
+�6�N�(b�'�� ��Ԏ��!�	<�F�"X�{�����$��$̏���
��-�
=�K�a���������ѐ�����5�K�Z�b�.n�.��.̑.��.*�.Y�.��.��&� 
�%.�T� o�:��˓ۓ���"�)6�)`���	������̔ݔ����	 �*�;�P�d�y�3��Q���,�C�W�Nu�Qė�'4�\�J{�Zƚ!�6�GB�>��PɛG�b�$�z��6�6V�5��Ý*ٝO�rT� ǟ;�9$�^�t�����&��3ߠ(�*<�Pg�N��O�PW���HƢH�KX�&��(ˣ�W�[d� ��D�&�F��ƥ$k�,��9��,��9$�^�"ާ!�#�;�U�*u�v����Pũi�.��:���/�@0�7q�#��oͫD=�<����%߬/�15�?g�&��"έ9�+�/G�3w�3��R߮X2�(��8��3�1!�!S�/u�����1Ұ�$�5@�v�=��ɱt�e\�3²2��a)�����L��
�.� N�o�����,��ٴ��5�5A�	w�����"��<Ƶ�3�-P�~�:��˶߶A�21�#d�8��
��Ϸ߷��q�,��+��>�H%�n�������4ɹ����,�J�L`�O��0��u.���	��Ļ̻�/�7�G�e�z�������ʼ�8��T.���B��b߽KB�"����%ξ;�%0�(V�,�q���8�L�Y�'s�$����(�%�)�%H�n�&���������$�$<�a�|���(��#���������:����
	�
�
%�3�?�E�"W�z�k��k��
X�f�v���E��S��o6�+��$��q��*i�����Q��	��/5�/e�8��X��0'�4X�?������*���)1�s[�w��G�<^�-��A��d�jp�w��]S�_����q��d
��o�]��KV�L��q��Qa�N��O�4R�3����%��.��8*�c�={�D��<��h;�(�����VW�I��W��|P�1��*��*�ZI�Q��e��j\���'��=�GA�B��\�� )�QJ�n��`�el�:��m
�J{�<��-�Q1���S��s��K`�s��s �Y��9��P(�4y�F��;���1����_8�F��@��  ��A�5��@�:D�=�_�� �6>� u���%��"����&
�1�P�#h�$������p��J�b�5q�5��-��$�^0���2��'���&�&8�T_�a���5�N�.Z�"��,��&���5�}S�K���<$�@a�4��6��7�6F�/}�.����S�� D�De�A��	�����!�65�9l�2��K��f%���%��%��8��*�:I�9��F��E��K�����\�ue������a'�2��M��4
�C?�=��b��o$�3��f��/�_���7�W��j���
|����� �&;�=b���1���\�[J�;��@�#�3B�Hv�o��</�3l�1��o�+B�?n�+��0��(�0E�)v�-��-�B��-?CmL�u�It7�\�3S �+�%�l�bg3���-�d�R(4{<�e�cS:�E�C8U|Y�>,uk^�5@	>v	a�	[
@s
7�
"�
+';;c?�D�#$*H/s2�,�$
4(
A]
\�
Q�
KNK�Z�TAL�;�  @"a�9�7�W<n8�G�V,7�;�'�IDi-�0�w
a�C�>+j}�J6L=�k�T-9�W�U8jA�7�%IC_�_�UM��oBb�oL�,�1�-1+_>�I�m`�>�0"@S^�R�F gb � 1� +!ID!E�!8�!4
".B"0q">�"0�"(#w;#7�#"�##$62$5i$.�$4�$7%/;%.k%]�%b�%Y[&N�&N'OS'S�'8�'s0(h�(!
)!/)8Q)R�)*�)5*<>*V{*o�*4B+:w+��+WE,:�,��,!i-!�-"�-�-!P.*r.+�..�.J�.wC/��/0>0Jo0B�0J�0DH1�1I
2GW2L�2(�2k3<�3g�3:&40a40�40�4(�4G5@e5K�5r�5Be6?�6-�6=7bT7?�7>�7P68,�8��8RA94�9,�9E�9@<:B}:B�:B;5F;b|;4�;=<:R<K�<C�<U=s=B�=K�=C> W>)x>K�>t�>Uc?S�?,
@<:@Hw@U�@oA,�AV�A6
B0ABYrB��BT`CJ�C]DS^D5�DA�D/*E\ZEZ�E\F+oF8�F)�F�FUGWpGN�GDHc\HP�HEIRWI*�I-�I-JF1J0xJ7�J?�J;!KA]KM�K<�K2*LS]LF�Ls�L%lM'�MT�MANXQNX�N8O><OA{OB�O"P+#PJOPJ�P6�PEQPbQ.�Q �QVR!ZR;|RE�R.�Rv-S-�S:�S'
T-5T?cT.�TJ�T7UAUUH�U=�UNV:mV:�V-�V+W$=W(bW$�WG�W=�W+6XdbX`�X2(YN[Yb�Y/
Z=ZQZZG�ZC�Z,8[Fe[Y�[+\F2\:y\7�\:�\4']1\]U�]_�]JD^9�^L�^R_Yi_5�_0�_\*`Y�`^�`]@a@�aP�a`0bg�b<�ba6cF�cf�cHFdG�db�d{:eG�e^�e']f,�f*�f!�f'�f+'g%Sg!yg�g#�gM�g'*h*Rh>}hU�h>i@Qi0�i;�i3�i.3jAbj,�j-�j%�jo%kh�ko�k[nlf�lM1mNm&�m[�mYQn~�n�*o�o}/p�p�p)Eq.oq��q�0rQ�rM(s7vs7�s%�s,t9tBQt1�t.�t,�t*"u)Mu(wu1�u#�u8�uR/v�v:�v;�vBw0Xw7�w!�wP�w+4x0`x�x3�x!�x-y.3y9by)�y'�y'�y$z-;ziz)�z/�z$�z${0){)Z{+�{C�{P�{LE|�|#�|5�|%}.}F}af}Y�}"~MA~6�~��~VDu1�?�,�D�[� t���G��)��&&�M�g�8��<��J��HF�:��:ʂ{�+��4��"�@�5F� |�@��ބ�� �22�e�#��U����3�=L�4��`��] �C~�:‡I��ZG���[��I�6d�B��@މ>�e^�ĊF�((�-Q� �D��C�F)�9p�<��3�/�1K�c}�4��i6�b��-�e1�M��a�mG�h��m�X��:�> �L_�?��B�&/�_V�U��;�%H�5n�B��B�W*�4��-��=�7#�;[�8��5Ж4�t;�'��*ؗ-�,1�B^�/��Mјm�X��1�7�P�]i�IǚO�Ta�!��#؛/��6,�c�F��6ɜD�9E�9�8��g�FZ���&��2�/�AJ�,��2��,�,�;F�I��=̠(
�V3�G��,ҡB��2B�@u�t��x+�,��jѣ�<�GӤ�:9�>t�Z��C�%R�:x�)��CݦM!�Eo�%��(ۧ\�Fa�q��5�4P�;��5��N��)F�p�T��d۪X@�"��&��7�*�,F�As�X��/�L>�K��J׭;"�L^�Z��*�;1�_m� ͯ"�6�&H�&o�W��U�BD�N��7ֱX�8g�|��(�XF�)��;ɳ-�,3�>`�-��Dʹ-�a@�f��Z	�Ad�r����;��G�)6�+`�E��ҸR�cA�5��I۹D%�Yj�Dĺ\	�Nf�s��;)�Le�|��i/�?��?ٽ]�]w�8վP�s_�Lӿ� �Y��c�-h�c��7��82�:k�H��:��.*�OY�M��;��S3�N��C��o�*��8�����Oo�=��7��65�Zl�6��'��U&�J|�%��G��B5��x�r�D�k��%0�JV�H��B���-�R��8�RE����:+�Hf�7��.��-�+D�1p���� >��_�'��>
�\L�Q��H��<D�(��L��O��ZG�[��+��**�jU�/��.��^�!~�?��3��F�+[�R��4�� �O0�5��1��F��-/� ]�>~�-��J��=6�yt�0��R�@r�B��R��'I�7q�<��Z��/A�@q�d��>�BV����K�6g�m��D�AQ�H��@��N�7l�9��:���(�@D���&��-��(��H�h�z�,��1��t��/h�S��x��e�r����@�R�{r���(��((�(Q�$z���6��;��8*�
c�'n�Q��)����)������y�.6�e�v�S������Q�f�Hv�:��>��/9�Pi���
����
�	��5-�(c�?��(����R�J[�R��.��=(�(f�4����������)'�:Q�B��E��!�7�O�.f�;�� ��/��"�G/�w�1��,�����,
�I:�;��M���&�V+�0��H����D�Y�,m�,��.�V��:M�&����'�9��T0������a+���J����0��+�J�7f�Z��B��*<�?g���V���'%�M�Cb�&��*�<��l5�-����#�'$�L�g�7t�5��3��71�3i�0��-�|��ky5�(=Q4dJ��,�%'M#i�+�%�:� 6WYn"���=9ZG�F�F#Fj6�d�M���1"Il�o�R/U3�!�*�1		8	
B	P	eh	,�	3�	./
J^
�
�
�
�
9'E3m!�L�PQa6�2�4
fR
7�
�
"�
/�KA�d5uW�.GEQ���*�L)rv.�*)Tn�8����z�]t���b�+*DVO�s�J_ �O�CA_e�x��q�~k�lP�??Dn�n3<�j�Jp]p��?s�F5;|Q�.
 �9 i� +$!%P!+v!#�!8�!?�!;?"/{"0�"P�"G-#Iu#J�#K
$<V$0�$8�$%�$#%>%C%7H%�%�%�%1�%�%3�%;-&i&#�&!�&�&�&
'';$'`'!~'�'�'"�'�'"�'(P#('t(�(�(�(�(�(�(R),W)�)�)�)�)�)�)�)
�)�)*
* *0*8*
O*{Z*~�*xU+B�+H,DZ,H�,�,-2	-0<- m-�-&�-I�-.B.?Y.F�.k�.1L/D~/>�/10140Hf0>�0<�0%+1�Q1��11�2Q�28
37F3=~3�3�3�3
�3�3&4/74-g40�4;�4;5>5*V58�5�5�5"�5=6;T6�6c�677%;7Ia71�7m�7�K8^�8�79��9�F:`�:N5;O�;N�;M#<q<>�<D�<?=GO=@�=@�=3>>M>�>�>3�>�>?(?4:?o?&�?'�?�?;�?
,@7@U@:j@�@N�@[AfjAV�AI(BGrBL�BAC#IC*mC�C*�CD�C(DFD]`DP�DE/E!BEdE*uE�E8�E+�EF.0F_FeF0�F"G9GPGLgG(�G�G�G(H>H-THs�Hs�HPjI]�IJ(-JVJlJ3�J>�J�J�J.K-CK$qK#�K-�K�K)L,/L>\LE�L1�LM'/M;WM5�M�M�M+�MN9NSNR\NP�N"O8#O\O5sO�O�O)�OBPEHP*�PQ�PLQ4XQ2�Q�Q>�Q.R,JRwR�R
�RG�RJ�RJ?SJ�SK�SG!TDiTO�TC�TABUI�UH�UMVpeV�V�V#W%W"EW>hWV�WR�WQXaX4rX"�X�X�X�X�XY	Y(Y9YNYbYwYP�Y��O'H�L�Eg��otB@������\��M����}p�U������"�o
@�E$�(
;'|�"Q��aQ���O`�I�kQ���r_Jf�
4��[�hN�T�������
b�4�w�}���������b���H�m`li����e(Om�,���Y�Fj���4j?[#O*{����1Z�����^������+=�����sd���2���.�k�b��
�Dm5�$jv�� �%skK���$����)�5 ���P����.�&|�!N�I���4�u\��h��#~IN/75��:��&��; e�w����5d��g�����96�=���t-0#Cm��"*��V����T#��PX[��Su��]���<��aM/�&6�����w#�xx��������%)
����
��q((�'�fG�Y�E �y{��Z�<q�?0Z�#t���K���[�=S�it����q<�U�*���i<�#���>�V:s�v=��cI�mR�d�V]]�>��d�!f^���%K,��r�*9nu#i���<���&�R&�
�P'o�(����D��.�P��19����F4�+�~���Tu���x���J�v�.���y�f��i������A�8V��<gv
��B��
[�\�P(�M�,�GQ���{�b=�����C]E|�-p�oz5�i�>,6D�5���a��V��BZTqb���d�N�]��k��]�:��z�JYP�H^7L��hRS�>be0��8�}�E�-��-�������M��B;�Yax�N�����y�G��+���}���@\c�-_�l�3Qs�V
<;�����jdM�q;v���;;{`����boX��Q8{d���7BQ���U�8���z3_	�	�c�6��0�7��4?+�'E	����)�/���K���c%@���n�>�F��L!^���|��W���r!E�j�h2�S�����2a0��],���ux@o�i�R��<����r=:A���t����N��e�������z����8;w��������)���R�����
9��c�/�(�lY����KB-���F_9_/J�$�	�H��Js����UU+&s/B��9��-�����X�a�syF�>�����(1��"�0�����LH�����/���,�,��D6g�����X��*kS�whAo `~�z�Xu�ZA���A��uj�_Fh�:�3C�7���6�)��'�^��zOyLG?����n�	������mP��'9�Z�Y�	�|�>����hR�L��3����OM�{u�*�������J�\7���r��1pD+�G�`����1'w?GJ�|�X:��z�H�Q��dh�H�3���� 2��A�v��qB~`�����O��W@?2���8{xH�)!�?��e����.}���:c)�e����/���� �+1�Xl��j���CW����!�fD��vC���~��KK��[���,��0f������y�$�5��T����fo����8�q�+|V:�A�`l���T%f�z���m-0� 6���g�I�W�c��m}��~c�gr���%MGI}|7K.��6JPt�1\F�3��n��e^S�$�W]2��L2�"aG���^��qY��MpC4}����["
�3�U	�
�����l�F�.�5g����=�UZ�r�����*~�������"?���g����	��l������YT�&Ll���x4�y����3{�R�X%�$Rbp72��C_�v\a�npe����)�1E����8���yN�����ktIk$Oxr�W����it�\���@&����T[�A�p_>S��`�����U��s���k��%�W�jVZ��S������D�9��^I�
N!��n
p���"�w�@�=WDnn����.*��w�~!C
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
macOS version
macOS version w/o darwin feat.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info into "%c kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%s%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----clean		'nocompatible', Vim defaults, no plugins, no viminfo--cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked%s1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE946: Cannot make a terminal with running job modifiableE947: Job still running in buffer "%s"E948: Job still runningE948: Job still running (add ! to end the job)E949: File changed while writingE94: No matching buffer for %sE950: Cannot convert between %s and %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSource Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTerminalTerminal-finishedTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][convered][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveactiveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yanked%sblock of 1 line yanked%sbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinishedfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %drunningsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim(Serbian)
Report-Msgid-Bugs-To: <ivan.pesic@gmail.com>
POT-Creation-Date: 2017-12-21 08:34+0400
PO-Revision-Date: 2017-12-27 10:29+0400
Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>
Language-Team: Serbian <LL@li.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

	Последњи сет од 

Аргументи:


употреба:
          измењено: 
         [није употребљива на овом компјутеру]
         [није употребљива са овом верзијом Vim-а]
         име хоста: 
         корисничко име: 
        ИД процеса: 
       a: Пронађи доделе овом симболу
       c: Пронађи функције које позивају ову функцију
       d: Пронађи функције које зове ова функција
       e: Пронађи овај egrep шаблон
       f: Пронађи ову датотеку
       g: Пронађи ову дефиницију
       i: Пронађи датотеке које #includе ову датотеку
       s: Пронађи овај C симбол
       t: Пронађи овај текст стринг

    Име         Аргум      Адреса    Довршење  Дефиниција
   #   линија
   или:
  # НА ознака      ОД линије  у датот/текст
  линија скока  кол датотека/текст
# %s Историја (од најновијег ка најстаријем):

# Преградне линије, копиране дословно:

# Листа бафера:

# Маркери датотеке:

# Историја маркера унутар датотека (ок најновијег до најстаријег):

# Скок-листа (прво најновији):

# Последњи %sШаблон Претраге:
~
# Последњи Стринг за замену:
$
# Регистри:

# глобалне променљиве:

(1) Можда други програм уређује исту датотеку. Ако је ово случај,
    кад правите измене, пазите да не завршите са две различите
    инстанце исте датотеке.  Изађите, или опрезно наставите.

(Можда бисте хтели да запишете ову датотеку под другим именом

--- Ауто-Команде ---
--- Вредности глобалних опција ---
--- Вредности локалних опција ---
--- Менији ---
--- Опције ---
--- Регистри ---
--- Знаци ---
--- Ставке синтаксе ---
--- Ставке синхро синтаксе ---
--- Кодови терминала ---
--- Тастери терминала ---
Аргументи које препознаје gvim (Athena верзија):

Аргументи које препознаје gvim (GTK+ верзија):

Аргументи које препознаје gvim (Motif верзија):

Аргументи које препознаје gvim (neXtaw верзија):

Велика верзија 
Токови података не могу да се креирају

Командно окружење не може да се изврши 
Командно окружење sh не може да се изврши

Рачвање није могуће

Команда је прекинута

Компајлирао
Није могао да се очита безбедносни контекст за 
Није могао да се постави безбедносни контекст за 
Екстра исправке: 
Пронађена је swap датотека под именом "
Огромна верзија 
Ако сте унели нов кључ за шифрирање али нисте уписали текст датотеку,
Ако сте уписали текст датотеку на диск након промене кључа за шифрирање притисните ентер
Укључене исправке: 
MS-Windows 32-битна GUI верзија
MS-Windows 32-битна конзолна верзија
MS-Windows 64-битна GUI верзија
MS-Windows 64-битна конзолна верзија
Можда нису направљене никакве измене или Vim није освежио swap датотеку.
Више инфо са: "vim -h"

Нормална верзија 
OpenVMS верзија
Мала верзија 
Сићушна верзија 
Vim: Дошло је до X грешке

УПОЗОРЕЊЕ: Оригинална датотека је можда изгубљена или оштећена

Где се мала/велика слова игноришу ставите испред / како би претворили индикатор у велика слова
Сада можда желите да обришете .swp датотеку.


[бајтова] укупно алоц-ослоб %lu-%lu, у употр %lu, вршна употр %lu

линија промене кол текст
унесите нови кључ за шифрирање.
macOS верзија
macOS верзија без darwin могућ.
линија маркера  кол датотека/текст
командно окружење је вратило 
синхро на ставкама
да бисте користили исти кључ за текст датотеку и swap датотеку                              за Vim подразумевано                                 за два режима                   датиране:           које поседује:          [не може да се отвори]         [не може да се прочита]         [не изгледа као Vim swap датотека]         [од Vim верзије 3.0]         име датотеке:   датотека са подраз. опцијама: "      -- ниједна --
      НОВИЈА од swap датотеке!
      корисничка exrc датотека: "     корисничка vimrc датотека: "    Ако је ово случај, користите ":recover" или "vim -r     Ако сте ово већ учинили, обришите swap датотеку "    линија=%ld  ид=%d  име=%s     системска датотека менија: "    корисничка gvimrc датотека: "   У текућем директоријуму:
   У директоријуму    Користећи наведено име:
   датиране:    име хоста:       системскa vimrc датотека: "  # ознака pri врсте  (Већ наведено)  2га корисничка exrc датотека: "  DEBUG ИЗДАЊЕ  Могућности укључене (+) или не (-):
  НИЈЕ ПРОНАЂЕНО  УКУПНО      БРОЈ  ПОДУД   НАЈСПОРИЈЕ   ПРОСЕК    ИМЕ                ШАБЛОН  Користи се ознака за другом врстом слова (мала/велика)!     резервна вредност за $VIM: "     системска gvimrc датотека: " # pid    име базе података                  додај путању испред
 (Прекинуто) (НИЈЕ ПРОНАЂЕНО) (укључује претходно наведена подударања) (уметање) (уметање) Скроловање (^E/^Y) (линија обрисана) (није подржано) (налепи) (замена) (замена) Скроловање (^E/^Y) (још се извршава) (взамена) 2га корисничка vimrc датотека: " 3ћа корисничка vimrc датотека: " < "%.*s" Додавање арапски ГРЕШКА КОНВЕРЗИЈЕ Довршавање командне линије (^V^N^P) Копија %d од %d Довршавање дефиниције (^D^N^P) Довршавање речника (^K^N^P) НЕУСПЕЛО Довршавање имена датотеке (^F^N^P) хебрејски УМЕТАЊЕ Довршавање локалне кључне речи (^N^P) Довршавање кључне речи (^N^P) Omni довршавање (^O^N^P) Довршавање шаблона путање (^N^P) ЗАМЕНА ОБРНУТО ИЗБОР ИЗБОР БЛОКА ИЗБОР ЛИНИЈА РАЗМАКНИЦА/d/j: екран/страна/линија наниже, b/u/k: навише, q: излаз  Правописни предлог (s^N^P) Довршавање ознаке (^]^N^P) Довршавање речника синонима (^T^N^P) Кориснички дефинисано довршавање (^U^N^P) ВИЗУЕЛНО ВИЗУЕЛНИ БЛОК ВИЗУЕЛНА ЛИНИЈАВЗАМЕНА Довршавање целе линије (^L^N^P)[Измењено] [н] [у] ^X режим (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) настављено не може да се користи на овом компјутеру.
 не може да се користи са овом верзијом Vim-а.
резервна вредн. за $VIMRUNTIME: " је оштећена (величина странице је маља од минималне вредности).
 у линији %ld; инфо у "%c врста датотеке
 прелома линије линија пре линије на врху маркера старихдатотека у %ld линија у 1 линији или више вратило
 vim [аргументи]  са OLE подршком уписано"
    како би избегли ову поруку.
"
    да опоравите измене (погледајте ":help recovery").
" већ постоји!# Ову viminfo датотеку је генерисао Vim %s.
# Вредност опције 'encoding' када је ова датотека написана
# Можете да је уређујете ако сте опрезни!

%-5s: %s%*s (Употреба: %s)%3d  %s %s  линија %ld%d бафера је обрисано%d бафера је уклоњено из меморије%d бафера је очишћено%d реч(и) дупликат(а) у %s%d датотека за уређивање
Још %d датотека за уређивање. Ипак желите да напустите програм?%d од %d уређено%ld %s; %s #%ld  %s%ld Кол; %ld линија мање%ld линија %sрано %d пута%ld линија %sрано 1 пут%ld линија --%d%%--%ld линија је промењено%ld линија филтрирано%ld инија увучено %ld линија премештено%ld за увлачење... %ld линија је тргнуто%s%ld линија, %ld подударања%ld линија вишепре %ld секунди%ld замена%lld карактера%s Ауто команде за "%s"%s је прекинута%s је одбачен%s линија %ld%s је стављен на чекање%s је поново активан%s враћа #%ld%s враћа %s%s вредност се разликује од онога што је коришћено у другој .aff датотеци%s, линија %ld%sлиста грешака %d од %d; %d грешака %sviminfo: %s у линији: &ОткажиО&дбаци&Филтер&Помоћ&ОК&OK
О&ткажи&OK
&Учитај датотеку&ОкОтвори &Само за читање
Ипак &Уређуј
&Опорави
&Изађи
&ПрекиниОтвори &Само за читање
Ипак &Уређуј
&Опорави
&Изађи
&Прекини&ЗамениО&позови&Да
&Не&Да
&Не
&Откажи&Да
&Не
Сачувај &Све
о&Дбаци све
&Откажи' није познат. Доступни уграђени терминали су:'-nb' не може да се користи: није омогућено у време компилације
Опција 'dictionary' је празнаопција 'history' је нула'readonly' опција је постављена за "%s".
Да ли ипак желите да упишете?Опција 'thesaurus' је празна(%d од %d)%s%s: (+%ld за BOM)(2) Сесија уређивања ове датотеке се срушила.
(Прекинуто)(Неисправно)(NFA) %s НЕ МОЖЕ ДА СЕ ОТВОРИ !+			Почни на крају датотеке+<бројл>		Почни на линији <бројл>+reverse		Немој да користиш обрнути видео (такође: +rv),
или је датотека оштећена.-                   читај текст са stdin--			Само имена датотека након овога-- Још ---- Претрага...--- Прикључене датотеке --Обрисано----У баферу нема линија----clean		'nocompatible', Vim подразумеване вредности, без додатака, без viminfo--cmd <команда>	Изврши <команда> пре учитавања било које vimrc датотеке--cmd аргумент--echo-wid		Нека gvim испише Window ID на stdout--literal		Не развијај џокере--noplugin		Не учитавај скрипте додатака--not-a-term		Прескочи упозорење да улаз/излаз није терминал--remote <датотеке>	Уређуј <датотеке> у Vim серверу ако је могуће--remote-expr <израз>	Израчунај <израз> у Vim серверу и одштампај резултат--remote-send <тастери>	Пошаљи <тастери> Vim серверу и изађи--remote-silent <датотеке>  Исто, не буни се ако нема сервера--remote-tab[-wait][-silent] <датотеке>  Као --remote али користи једну картицу по датотеци--remote-wait <датотеке>  Као --remote али чекај да датотеке буду уређене--remote-wait-silent <датотеке>  Исто, не буни се ако нема сервера--role <улога>	Постави јединствену улогу да би се идентификовао главни прозор--serverlist		Излистај имена доступних Vim сервера и изађи--servername <име>	Пошаљи/постани Vim сервер <име>--socketid <xid>	Отвори Vim унутар другог GTK виџета--startuptime <датотека>	Упиши поруке о дужини покретања у <датотеку>--ttyfail		Изађи ако улаз или излаз нису терминал--version		Испиши информације о верзији и изађи--windowid <HWND>	Отвори Vim унутар другог win32 виџета-A			Покрени у Арапском режиму-C			Компатибилан са Vi: 'compatible'-D			Debugging режим-E			Унапређен Ex режим-F			Покрени у Фарси режиму-H			Покрени у Хебрејском режиму-L			Исто као -r-M			Измене у тексту нису дозвољене-N			Не потпуно Vi компатибилан: 'nocompatible'-O[N]		Као -o али подели по вертикали-P <назив родитеља>	Отвори Vim унутар родитељске апликације-R			Readonly режим (као "view")-S <сесија>		Учитај као извор датотеку <сесија> након учитавања прве датотеке-T <терминал>	Постави тип терминала на <терминал>-U <gvimrc>		Користи <gvimrc> уместо било ког .gvimrc-V[N][fname]		Буди опширан [ниво N] [бележи поруке у fname]-W <скриптизлаз>	Уписуј све откуцане команде у датотеку <скриптизлаз>-X			Не повезуј се на X сервер-Z			Restricted режим (као "rvim")-b			Бинарни режим-background <боја>	Користи <боја> за позадину (такође: -bg)-boldfont <фонт>	Користи <фонт> за подебљани текст-borderwidth <ширина>	Користи оквир ширине <ширина> (такође: -bw)-c <команда>		Изврши <команда> након учитавања прве датотеке-c аргумент-d			Diff режим (као "vimdiff")-dev <уређај>		Користи <уређај> за У/И-display <дисплеј>	Повежи vim на овај X-сервер-display <дисплеј>	Покрени vim на <дисплеј>-display <дисплеј>	Покрени vim на <дисплеј> (такође: --display)-e			Ex режим (као "ex")-f			Немој да користиш нов cli да отвориш прозор-f  или  --nofork	У предњем плану: немој да рачваш кад се покреће GUI-font <фонт>		Користи <фонт> за нормални текст (такође: -fn)-foreground <боја>	Користи <боја> за нормални текст (такође: -fg)-g			Покрени користећи GUI (као "gvim")-geometry <геом>	Користи <геом> за почетну геометрију (такође: -geom)-h  or  --help	Испиши Помоћ (ову поруку) и изађи-i <viminfo>		Користи <viminfo> уместо .viminfo-iconic		Покрени vim као икону-italicfont <фонт>	Користи <фонт> за курзивни текст-l			Lisp режим-m			Измене (уписивање датотека) нису дозвољене-menuheight <ширина>	Користи линију менија висине <висина> (такође: -mh)-n			Без swap датотеке, користи само меморију-o[N]		Отвори N прозора (подразумевано: по један за сваку датотеку)-p[N]		Отвори N картица (подразумевано: по једну за сваку датотеку)-q [дат.грешке]     уређуј датотеку са првом грешком-r			Излистај swap датотеке и изађи-r (са именом датотеке)	Обнови срушену сесију-register		Региструј овај gvim за OLE-reverse		Користи обрнути видео (такође: -rv)-s			Нечујни (batch) режим (само за "ex")-s <скриптулаз>	Читај команде Нормалног режима из датотеке <скриптулаз>-scrollbarwidth <ширина>  Користи Линију за скроловање ширине <ширина> (такође: -sw)-t tag              уређуј датотеку где је дефинисана ознака-u <vimrc>		Користи <vimrc> уместо било ког .vimrc-unregister		Уклони регистрацију gvim за OLE-v			Vi режим (као "vi")-w <скриптизлаз>	Надовежи све откуцане команде на крај датотеке <скриптизлаз>-x			Уређуј шифроване датотеке-xrm <ресурс>	Постави наведени ресурс-y			Easy режим (као "evim", безрежимни)/ линија игнорисана у %s линија %d: %s/encoding= линија након речи је игнорисана у %s линија %d: %s1 бафер је обрисан1 бафер је уклоњен из меморије1 бафер је очишћен1 карактер1 линија %sрана %d пута1 линија %sрана 1 пут1 линија --%d%%--1 линија је промењена1 линија увучена 1 линија мање1 линија премештена1 линија је тргнута%s1 линија, 1 подударањеЈош 1 датотека за уређивање. Ипак желите да напустите програм?1 линија више1 замена2га корисничка gvimrc датотека: "3ћа корисничка gvimrc датотека: ": Израз слања није успео.
: Слање није успело.
: Слање није успело. Покушава се локално извршавање
; подударања <%s>%s%s  %d,  Хекс %02x,  Октално %03o<не може да се отвори> <празно>> %d, Хекс %04x, Октално %o> %d, Хекс %08x, Октално %o??? одавде па до ???КРАЈ линије су можда забрљане??? одавде па до ???КРАЈ линије су можда уметане/брисане???НЕДОСТАЈЕ БЛОК???ПРАЗАН БЛОК???КРАЈ???БРОЈ ЛИНИЈА ЈЕ ПОГРЕШАН???НЕДОСТАЈУ ЛИНИЈЕ??НЕДОСТАЈЕ МНОГО ЛИНИЈАANCHOR_BUF_SIZE сувише мали.Додај нову базуcscope база података %s је додатаНаставак се такође користиBAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST у %s линија %d: %sИме наставка је предугачко у %s линија %d: %sСвеСве cscope базе података ресетованеСве уметнуте датотеке су пронађенеВећ сте на најновијој измениВећ сте на најстаријој измениВећ сте на само једној картициВећ постоји само један прозорДодавање на крај ДатотекеАргумент недостаје наконКод линијеПокушај да се поново отвори скрипт датотека: "Назад на оригиналЗадат је опсег уназад, ОК да се замениПостаните регистровани Vim корисник!Биип!Пре бајта %ldДноИ SAL и SOFO линије у %sПрекидна тачка у "%s%s" линија %ldНеправилан услов у %s линија %d: %sCOMPOUNDSYLMAX се користи без SYLLABLEПозива се командно окружење да изврши: "%s"Привремена датотека за конверзију не може да се пронађеОткажиНе може да се креира Не може да се изврши Не може да се отвори $VIMRUNTIME/rgb.txtНе може да се отвори NIL:
Датотека "%s" не може да се отвориНе може да се отвори за читање: "Не може да се отвори за излаз скрипте: "Директоријум не може да буде извор: "%s"Датотека за опозив не може да се упише ни у један директоријум из 'undodir'Променити "%.*s" у:Затвори картицуКол %s од %s; Линија %ld од %ld; Реч %lld од %lld; Бајт %lld од %lldКол %s од %s; Линија %ld од %ld; Реч %lld од %lld; Знак %lld од %lld; Бајт %lld од %lldКомандна линијаКомпилација: Компајлер: Компресовано је %d од %d чворова; преостало је још %d (%d%%)Стабло речи се компресује...Неуспешна конверзија за реч у %s линија %d: %sКонверзија у %s није подржанаКонверзија у %s није подржана: из %s у %sКонверзија са 'charconvert' није успелаПоказивачи на функције у DLL-у нису могли да се поправе!Безбедносни контекст %s за %s није могао да се очита. Уклања се!vim32.dll није могла да се учита!Привремена лог датотека није могла да се отвори за упис Привремена лог датотека није могла да се отвори за упис, приказује се на stderr ... Безбедносни контекст %s за %s није могао да се поставиCscope ознака: %sТекући %sјезик: "%s"Debug линијаДефинисање COMPOUNDFORBIDFLAG након PFX ставке може да дâ погрешне резултате у %s line %dДефинисање COMPOUNDPERMITFLAG након PFX ставке може да дâ погрешне резултате у %s line %dDiff са VimРазличит индикатор комбиновања у настављеном блоку наставака у %s линија %d: %sСмерДиректоријумиДиректоријум	*.ништа
Да ли заиста желите да пишете у њуЗавршено!Дупле ; у листи променљивихДолеДупликат /encoding= линија је игнорисана у %s линија %d: %sДупликат /regions= линија је игнорисана у %s линија %d: %sДупликат наставка у %s линија %d: %sДупликат карактера у MAP у %s линија %dДупло име поља: %sДупликат речи у %s линија %d: %sE100: ниједан други бафер није у diff режимуE101: Више од два бафера су у diff режиму, не знам који да користимE102: Бафер "%s" не може да се пронађеE103: Бафер "%s" није у diff режимуE104: Escape није дозвољен у digraphE105: Коришћење :loadkeymap ван датотеке која се учитава као скриптаE107: Недостају заграде: %sE108: Не постоји таква променљива: "%s"E109: Недостаје ':' након '?'E10: Иза \ треба да је /, ? или &E110: Недостаје ')'E111: Недостаје ']'E112: Недостаје име опције: %sE113: Непозната опција: %sE114: Недостаје наводник: %sE115: Недостаје наводник: %sE116: Неважећи аргументи за функцију %sE117: Непозната функција: %sE118: Превише аргумената за функцију: %sE119: Нема довољно аргумената за функцију: %sE11: Неважеће у прозору командне линије; <CR> извршава, CTRL-C отказујеE120: Коришћење <SID> ван скрипт контекста: %sE121: Недефинисана променљива: %sE122: Функција %s већ постоји, додајте ! да је заменитеE123: Недефинисана функција: %sE124: Недостаје '(': %sE125: Неважећи аргумент: %sE126: Недостаје :endfunctionE127: Функција %s не може да се редефинише: Тренутно се користиE128: Име функције мора да почне великим словом или "s:": %sE129: Потребно је име функцијеE12: Постији забрана за команду у exrc/vimrc у текућој претрази директоријума или ознакеE130: Непозната функција: %sE131: Функција %s не може да се обрише: Тренутно се користиE132: Дубина позива функције је већа од 'maxfuncdepth'E133: :return није унутар функцијеE134: Премештање линија у саме себеE135: *Филтер* Аутокоманде не смеју да мењају текући баферE136: viminfo: Превише грешака, остатак датотеке се прескачеE137: Viminfo датотека није уписива: %sE138: Viminfo датотека %s не може да се упише!E139: Датотека је учитана у други баферE13: Датотека постоји (додајте ! за премошћавање)E140: Користите ! да бисте уписали парцијални баферE141: Нема имена датотеке за бафер %ldE142: Датотека није уписана: Уписивање је онемогућено опцијом 'write'E143: Аутокоманде су неочекивано обрисале нов бафер %sE144: ненумерички аргумент за :zE145: Shell команде нису дозвољене у rvimE146: Регуларни изрази не могу да се раздвајају словимаE147: :global не може да се изврши рекурзивно са опсегомE148: У global недостаје регуларни изразE149: Жао нам је, нема помоћи за %sE14: Неважећа адресаE150: Није директоријум: %sE151: Нема подударања: %sE152: %s не може да се отвори за уписE153: %s не може да се отвори за читањеE154: Дуплирана ознака "%s" у датотеци %s/%sE155: Непознат знак: %sE156: Недостаје име знакаE157: Неисправан ИД знака: %ldE158: Неисправно име бафера: %sE159: Недостаје број знакаE15: Неважећи израз: %sE160: Непозната знак команда: %sE161: Прекидна тачка није пронађена: %sE162: Није било уписа од последње промене за бафер "%s"E163: Постоји само једна датотека за уређивањеE164: Не може да се иде испред прве датотекеE165: Не може да се иде испред прве датотекеE166: Повезана датотека не може да се отвори за уписE167: :scriptencoding се користи ван изворишне датотекеE168: :finish се користи ван изворишне датотекеE169: Команда је сувише рекурзивнаE16: Неважећи опсегE170: Недостаје :endforE170: Недостаје :endwhileE171: Недостаје :endifE173: Још %ld датотека за уређивањеE173: Још 1 датотека за уређивањеE174: Команда већ постоји: додајте ! да је заменитеE175: Није наведен ни један атрибутE176: Неисправан број аргуменатаE177: Бројач не може да се наведе два путаE178: Несправна подразумевана вредност за бројачE179: потребан је аргумент за -addrE179: потребан је аргумент за -completeE17: "%s" је директоријумE180: Неисправна вредност адресног типа: %sE180: Неисправна вредност довршавања: %sE181: Неисправан атрибут: %sE182: Неисправно име командеE183: Кориснички дефинисане команде морају да почну великим словомE184: Не постоји таква кориснички дефинисана команда: %sE185: Шема боја '%s' не може да се пронађеE186: Нема претгодног директоријумаE187: НепознатоE188: Добављање позиције прозора није имплементирано за ову платформуE189: "%s" постоји (додајте ! за премошћавање)E18: Неочекивани карактери у :letE190: "%s" не може да се отвори за уписE191: Аргумент мора бити слово или апостроф/обрнути апострофE192: Рекурзивно коришћење :normal је сувише дубокоE193: :endfunction није унутар функцијеE194: Нема алтернативног имена које би заменило '#'E195: viminfo датотека не може да се отвори за читањеE196: У овој верзији нема диграфаE197: Језик не може да се постави на "%s"E198: cmd_pchar је иза дужине командеE199: Active window or buffer deletedE19: Маркер садржи неисправан број линијеE200: *ReadPre аутокоманде су учиниле датотеку нечитљивомE201: *ReadPre аутокоманде не смеју да измене текући баферE202: Конверзија је учинила датотеку нечитљивом!E203: Аутокоманде су обрисале или уклониле из меморије бафер који требало да буде уписанE204: Аутокоманде су на неочекиван начин промениле број линијаE205: Patch режим: оригинална датотека не може да се сачуваE206: Patch режим: не може да се креира празна оригинална датотекаE207: Резервна датотека не може да се обришеE208: Грешка при упису у "%s"E209: Грешка при затварању "%s"E20: Маркер није постављенE210: Грешка при читању "%s"E211: Датотека "%s" више није доступнаE212: Датотека не може да се отвори за уписE213: Конверзија није могућа (додајте ! за упис без конверзије)E214: Привремена датотека за упис не може да се пронађеE215: Недозвољени карактер након *: %sE216: Нема таквог догађаја: %sE216: Нема такве групе или догађаја: %sE217: Аутокоманде за СВЕ догађаје не могу да се извршеE218: Угњшждавање аутокоманде је сувише дубокоE219: Недостаје {.E21: Измене не могу да се учине, опција 'modifiable' је искљученаE220: Недостаје }.E222: Додавање у бафер читањаE223: рекурзивно мапирањеE224: глобална скраћеница за %s већ постојиE225: глобално мапирање за %s већ постојиE226: скраћеница за %s већ постојиE227: мапирање за %s већ постојиE228: makemap: Недозвољен режимE229: GUI не може да се покренеE22: Скрипте су предубоко угњежденеE230: Из "%s" не може да се читаE231: 'guifontwide' неисправанE232: Не може да се креира BalloonEval и са поруком и са повратним позивомE233: проказ не може да се отвориE234: Непознат fontset: %sE235: Непознат фонт: %sE236: Фонт "%s" није фиксне ширинеE237: Избор штампача није успеоE238: Грешка код штампања: %sE239: Неисправан текст знака: %sE23: Нема алтернативне датотекеE240: Нема везе са X серверомE241: Слање ка %s није могућеE243: Аргумент није подржан: "-%s"; Користите OLE верзију.E244: Недозвољено име сета карактера "%s" у имену фонту "%s"E244: Недозвољено име варијанте "%s" у имену фонту "%s"E245: Неисправан карактер '%c' у имену фонта "%s"E246: FileChangedShell аутокоманда је обрисала баферE247: нема регистованог сервера под именом "%s"E248: Слање команде циљном програму није успелоE24: Таква скраћеница не постојиE250: Фонтови за следеће сетове карактера недостају у фонтсету %s:E251: registry својство VIM инстанце је лоше формирано. Обрисано!E252: Име фонтсета: %sE253: Име фонтсета: %sE254: Боја %s не може да се алоцираE255: Подаци за знак нису могли да се прочитају!E256: ГРЕШКА Hangul аутоматаE257: cstag: ознака није пронађенаE258: Слање ка клијенту није могућеE259: нису пронађена подударања за cscope упит %s на %sE25: GUI не може да се користи: Није омогућен у време компилацијеE261: cscope веза %s није пронађенаE262: грешка код читања cscope везе %ldE263: Жао нам је, ова команда је онемогућена, Python библиотека није могла да се учита.E264: Python: Грешка код иницијализације У/И објекатаE265: $_ мора да буде инстанца String-аE266: Жао нам је, ова команда је онемогућена, Ruby библиотека није могла да се учита.E267: неочекиван returnE268: неочекивано nextE269: неочекивано breakE26: хебрејски не може да се користи: Није омогућен у време компилације
E270: неочекивано redoE271: retry ван rescue клаузулеE272: необрађени изузетакE273: непознат longjmp статус %dE277: Не може да се прочита одговор сервераE27: фарси не може да се користи: Није омогућен у време компилације
E280: TCL ФАТАЛНА ГРЕШКА: reflist је оштећена!? Молимо пријавите ово на vim-dev@vim.orgE282: Не може да се чита из "%s"E283: Нема маркера који се подударају са "%s"E284: IC вредности не могу да се поставеE285: Креирање контекста уноса није успелоE286: Отварање методе уноса није успелоE287: Упозорење: Постављање повратне функције за уништење IM није успелоE288: метод уноса не подржава ниједан стилE289: метод уноса не подржава мој preedit типE28: Нема групе истицања са таквим именом: %sE293: блок није закључанE294: Грешка код постављања показивача за читање swap датотекеE295: Грешка при читању swap датотекеE296: Грешка код постављања показивача за упис swap датотекеE297: Грешка при упису swap датотекеE298: Блок бр 0 није добављен?E298: Блок бр 1 није добављен?E298: Блок бр 2 није добављен?E29: Текст још није унетE300: Swap датотека већ постоји (symlink напад?)E301: Уупс, swap датотека је изгубљена!!!E302: Промена имена swap датотеке није успелаE303: Отварање swap датотеке за "%s" није успело, опоравак је немогућE304: ml_upd_block0(): Блок бр 0 није добављен??E305: За %s није пронађена swap датотекаE306: %s не може да се отвориE307: %s не изгледа као Vim swap датотекаE308: Упозорење: Можда је промењена оригинална датотекаE309: Блок 1 из %s не може да се прочитаE30: Нема претходне командне линијеE310: ID блока 1 је погрешан (%s није .swp датотека?)E311: Опоравак је прекинутE312: Откривене су грешке приликом опоравка; потражите линије које почињу са ???E313: Не може да се презервира, нема swap датотекеE314: Презервација није успелаE315: ml_get: неисправан lnum: %ldE316: ml_get: линија %ld не може да се пронађеE317: ид показивача блока је погрешанE317: ид показивача блока је погрешан 2E317: ид показивача блока је погрешан 3E317: ид показивача блока је погрешан 4E318: Освежено превише блокова?E319: Жао нам је, та команда није доступна у овој верзијиE31: Такво мапирање не постојиE320: Линија %ld не може да се пронађеE321: "%s" не може поново да се учитаE322: број линије је ван опсега: %ld иза крајаE323: број линија је погрешан у блоку %ldE324: PostScript излазна датотека не може да се отвориE325: ПАЖЊАE326: Пронађено је превише swap датотекаE327: Део путање ставке менија није подмениE328: Мени постоји само у другом режимуE329: Нема менија "%s"E32: Нема имена датотекеE330: Путања менија не сме да води у подмениE331: Ставке менија не смеју да се додају директно у линију менијаE332: Сепаратор не може да буде део путање менијаE333: Путања менија мора да води у ставку менијаE334: Мени није пронађен: %sE335: Мени није дефинисан за %s рeжимE336: Путања менија мора да води у подмениE337: Мени није пронађен - проверите имена менијаE338: Жао нам је, нема претраживача датотека у конзолном режимуE339: Шаблон је предугачакE33: Нема претходног регуларног израза за заменуE340: Линија постаје предугачкаE341: Интерна грешка: lalloc(%ld, )E342: Нема више меморије!  (код алокације %lu бајтова)E343: Неисправна путања: '**[број]' мора бити на крају путање или да иза њега следи '%s'.E344: Директоријум "%s" не може да се пронађе у cdpathE345: Датотека "%s" не може да се пронађе у pathE346: Директоријум "%s" више не може да се пронађе у cdpathE347: Датотека "%s" више не може да се пронађе у pathE348: Под курсором нема стрингаE349: Под курсором није идентификаторE34: Нема претходне командеE350: Склапање не може да се креира са текућим 'foldmethod'E351: Склапање не може да се обрише са текћим 'foldmethod'E352: Са текућим 'foldmethod' не могу да се обришу склапањаE353: Регистар %s је празанE354: Неисправно име регистра: '%s'E355: Непозната опција: %sE356: get_varp ГРЕШКАE357: 'langmap': Недостаје одговарајући карактер за %sE358: 'langmap': Има још карактера након тачказареза: %sE359: Подешавање режима екрана није подржаноE35: Нема претходног регуларног изразаE360: Командно окружење не може да се изврши са -f опцијомE363: шаблон користи више меморије од 'maxmempattern'E364: Позив библиотеке није успео за "%s()"E365: PostScript датотека није успела да се одштампаE367: Нема такве групе: "%s"E369: неважећа ставка у %s%%[]E36: Нема довољно простораE370: Библиотека %s није могла да се учитаE371: Команда није пронађенаE372: Превише %%%c стрингу форматаE373: Неочекивано %%%c стрингу форматаE374: Недостаје ] у стрингу форматаE375: Неподржано  %%%c у стрингу форматаE376: Неважеће %%%c у префиксу стринга форматаE377: Неважеће %%%c у стрингу форматаE378: 'errorformat' не садржи шаблонE379: Име директоријума недостаје или је празноE37: Није било уписа од последње променеE37: Није било уписа од последње промене (додајте ! да премостите)E380: На дну quickfix стекаE381: На врху quickfix стекаE382: Упис није могућ, постављена је 'buftype' опцијаE383: Неисправан стринг за претрагу: %sE384: претрага је достигла ВРХ без подударања за: %sE385: претрага је достигла ДНО без подударања за: %sE386: Након ';'  се очекује '?' или '/'E387: Подударање је у текућој линијиE388: Дефиниција не може да се пронађеE389: Шаблон за претрагу није пронађенE38: Празан аргументE390: Неважећи аргумент: %sE391: Не постоји такав синтаксни кластер: %sE392: не постоји такав синтаксни кластер: %sE393: group[t]here се овде не прихватаE394: Ставка региона није пронађена за %sE395: садржи аргумент који се овде не прихватаE397: Потребно име датотекеE398: Недостаје '=': %sE399: Нема довољно аргумената: синтаксни регион %sE39: Очекује се бројE400: Није наведен ниједан кластерE401: Није пронађен граничник шаблона: %sE402: Смеће након шаблона: %sE403: синтаксна синхро: шаблон настављања линије је наведен двапутE404: Неважећи аргументи: %sE405: недостаје знак једнакости: %sE406: Празан аргумент: %sE407: %s овде није дозвољеноE408: %s мора да буде прво у contains листиE409: Непознато име групе: %sE40: Датотека грешке %s не може да се отвориE410: Неважећа :syntax подкоманда: %sE411: група истицања није пронађена: %sE412: Нема довољно аргумената: ":highlight link %s"E413: Сувише аргумената: ":highlight link %s"E414: група има поставке, highlight link се игноришеE415: неочкиван знак једнакости: %sE416: недостаје знак једнакости: %sE417: недостаје аргумент: %sE418: Неважећа вредност: %sE419: Непозната FG бојаE41: Нема више меморије!E420: Непозната BG бојаE421: Име боје или број нису препознати: %sE422: код терминала је предугачак: %sE423: Неважећи аргумент: %sE424: У употреби је превише различитих атрибута истицањаE425: Не може да се иде испред прве подударајуће ознакеE426: ознака није пронађена: %sE427: Постоји само једна подударајућа ознакаE428: Не може да се иде иза последње подударајуће ознакеE429: Датотека "%s" не постојиE42: Нема грешакаE430: Путања датотеке ознака је прекинута за %s
E431: Грешка формата у датотеци ознака "%s"E432: Датотека ознака није сортирана: %sE433: Нема датотеке ознакаE434: Не може да се пронађе шаблон ознакеE435: Ознака није могла да се пронађе, само нагађам!E436: Нема "%s" ставке у termcapE437: потребна је могућност терминала "cm"E438: u_undo: погрешни бројеви линијеE439: листа опозива је искваренаE43: Оштећен стринг за подударањеE440: недостаје линија опозиваE441: Нема прозора за прегледE442: topleft и botright не могу да се поделе у исто времеE443: Не може да се ротира када је подељен други прозорE444: Последњи прозор не може да се затвориE445: Други прозори садрже изменеE446: Под курсором се не налази име датотекеE447: Датотека "%s" не може да се пронађе у путањиE448: Библиотечка функција %s није могла да се учитаE449: Примљен је неважећи изразE44: regexp програм је покваренE455: Грешка приликом уписа у PostScript излазну датотекуE456: PostScript resource датотека "%s.ps" не може да се пронађеE456: PostScript resource датотека "cidfont.ps" не може да се пронађеE456: PostScript resource датотека "prolog.ps" не може да се пронађеE456: Датотека "%s" не може да се отвориE457: PostScript resource датотека "%s" не може да се читаE459: Не може да се оде назад на претходни директоријумE45: Постављена је 'readonly' опција (додајте ! за премошћавање)E461: Недозвољено име променљиве: %sE462: Припрема за поновно учитавање "%s" није била могућаE463: Регион је чуван, измена није могућаE464: Двосмислена употреба кориснички дефинисане командеE465: :winsize захтева два бројчана аргументаE466: :winpos захтева два бројчана аргументаE467: Прилагођено довршавање захтева аргумент функцијеE468: Аргумент довршавања је дозвољен само за прилагођена довршавањаE469: неисправан cscopequickfix индикатор %c за %cE46: Променљива само за читање "%s" не може да се измениE470: Команда прекинутаE471: Потребан је аргументE472: Команда није успелаE473: Интерна грешкаE474: Неважећи аргументE475: Неважећи аргумент: %sE476: Неважећа командаE477: ! није дозвољенE478: Не паничите!E479: Нема подударањаE47: Грешка приликом читаља датотеке грешкеE480: Нема подударања: %sE481: Опсег није дозвољенE482: Датотека %s не може да се креираE483: Име привремене датотке не може да се добијеE484: Датотека %s не може да се отвориE485: Датотека %s не може да се прочитаE486: Шаблон није пронађен: %sE487: Аргумент мора бити позитиванE488: Карактери вишка на крајуE48: Није дозвољено у sandbox-уE490: Није пронађено ниједно склапањеE492: Није команда едитораE493: Задат је опсег уназадE494: Користите w или w>>E495: нема имена датотеке за аутокоманде које би заменило "<afile>"E496: нема броја бафера за аутокоманду који би заменио "<abuf>"E497: нема имена подударања аутокоманде које би заменило "<amatch>"E498: нема имена :source датотеке које би заменило "<sfile>"E499: Празно име датотеке за'%' or '#', функционише само са ":p:h"E49: Неважећа величина линије за скроловањеE500: Резултат израчунавања је празан стрингE501: На крају-датотекеE505: "%s" је само за читање (додајте ! за премошћавање)E505: %s је само за читање (додајте ! за премошћавање)E506: Не може да се упише у резервну датотеку (додајте ! за премошћавање)E507: Грешка код затварања за резервну датотеку (додајте ! за премошћавање)E508: Резервна датотека не може да се прочита (додајте ! за премошћавање)E509: Резервна датотека не може да се креира (додајте ! за премошћавање)E50: Превише \z(E510: Резервна датотека не може да се направи (додајте ! за премошћавање)E511: netbeans је већ повезанE512: Затварање није успелоE513: грешка при упису, конверзија није успела (оставите 'fenc' празно да премостите)E513: грешка при упису, конверзија није успела у линији %ld (оставите 'fenc' празно да премостите)E514: грешка при упису (систем датотека је пун?)E515: Ниједан бафер није уклоњен из меморијеE516: Ниједан бафер није обрисанE517: Ниједан бафер није очишћенE518: Непозната опцијаE519: Опција није подржанаE51: Превише %s(E520: Није довољено у режимској линијиE521: Потребан је број након =E521: Захтева се број: &%s = '%s'E522: Није пронађено у termcapE523: Није дозвољено овдеE524: Недостаје двотачкаE525: Стринг дужине нулаE526: Недостаје број након <%s>E527: Недостаје зарезE528: Мора да се наведе ' вредностE529: 'term' не може да се постави на празан стрингE52: Неупарено \z(E530: term не може да се промени из GUIE531: Користите ":gui" да покренете GUIE533: широки фонт не може да се изабереE534: Неисправан широки фонтE535: Неважећи карактер након <%c>E536: потребан зарезE537: 'commentstring' мора бити празно или да садржи %sE538: Нема подршке за мишаE539: Недозвољен карактер <%s>E53: Неупарена %s%%(E540: Низ израза није затворенE541: превише ставкиE542: неуравнотежене групеE543: Неважећа кодна странаE544: Keymap датотека није пронађенаE545: Недостаје двотачкаE546: Недозвољени режимE547: Недозвољени mouseshapeE548: очекује се цифраE549: Недозвољени проценатE54: Неупарена %s(E550: Недостаје двотачкаE551: Неисправна компонентаE552: очекује се цифраE553: Нема више ставкиE554: Синтаксна грешка у %s{...}E555: на дну стека ознакаE556: на врху стека ознакаE557: termcap датотека не може да се отвориE558: У terminfo није пронађена ставка за терминалE559: У termcap није пронађена ставка терминалаE55: Неупарена %s)E560: Употреба: cs[cope] %sE561: непознат cscope тип претрагеE562: Употреба: cstag <ident>E563: stat грешкаE563: stat(%s) грешка: %dE564: %s није директоријум или валидна cscope база податакаE566: cscope процесни токови нису могли да се креирајуE567: нема cscope везаE568: Дупликат cscope база података није додатаE570: фатална грешка у cs_manage_matchesE571: Жао нам је, ова команда је онемогућена: Tcl библиотека није могла да се учита.E572: излазни код %dE573: Користи се несправан ид сервера: %sE574: Непознат тип регистра %dE579: :if угњеждавање је сувише дубокоE580: :endif без :ifE581: :else без :ifE582: :elseif без :ifE583: вишеструко :elseE584: :elseif након :elseE585: :while/:for угњеждавање је сувише дубокоE586: :continue без :while или :forE587: :break без :while или :forE588: :endfor без :forE588: :endwhile без :whileE589: 'backupext' и 'patchmode' су истоветниE590: Прозор за преглед већ постојиE591: 'winheight' не може да буде мање од 'winminheight'E592: 'winwidth' не може да буде мање од 'winminwidth'E593: Потребно је најмање %d линијаE594: Потребно је најмање %d колонаE595: садржи карактер који не може да се одштампа, или широки карактерE596: Неисправни фонт(ови)E597: fontset не може да се изабереE598: Неисправан fontsetE599: Вредност 'imactivatekey' није исправнаE59: неважећи карактер након %s@E600: Недостаје :endtryE601: :try угњеждавање је сувише дубокоE602: :endtry без :tryE603: :catch без :tryE604: :catch након :finallyE605: Изузетак није ухваћен: %sE606: :finally без :tryE607: вишеструко :finallyE608: :throw изузетка са 'Vim' префиксом није дозвољенE609: Cscope грешка: %sE60: Превише комплексних %s{...}sE612: Дефинисано је превише знаковаE613: Непознат фонт штампача: %sE614: vim_SelFile: повратак у текући директоријум није могућE615: vim_SelFile: не може да се добије текући директоријумE616: vim_SelFile: не може да се добије фонт %sE617: Не може да се промени у GTK+ 2 GUIE618: датотека "%s" није PostScript resource датотекаE619: датотека "%s" није подржана PostScript resource датотекаE61: Угњеждено %s*E620: Није могућа конверзија у кодирање за штампу "%s"E621: "%s" resource датотека је погрешне верзијеE622: Рачвање за cscope није успелоE623: Мрешћење cscope процеса није успелоE624: Датотека "%s" не може да се отвориE625: cscope database: %s не може да се отвориE626: Инфорамције о cscope бази података не могу да се добијуE62: Угњеждено %s%cE630: %s(): упис док није успостављена везаE631: %s(): упис није успеоE63: неисправна употреба \_E64: %s%c je иза ничегаE655: Превише симболичких веза (циклус?)E658: NetBeans веза је изгубљена за бафер %ldE659: Python не може да се позива рекурзивноE65: Неважећа повратна референцаE661: Жао нам је, нема '%s' помоћи за %sE662: На почетку листе променаE663: На крају листе променаE664: листа промена је празнаE665: GUI не може да се покрене, није пронађен валидан фонтE666: компајлер није подржан: %sE667: Fsync није успеоE668: Погрешан режим приступа за инфо датотеку NetBeans везе: "%s"E669: У имену групе је карактер који не може да се штампаE66: \z( овде није дозвољеноE670: Помешано је више кодирања фајлова помоћи за језик: %sE671: Наслов прозора "%s" не може да се пронађеE672: Није могуће отварање прозора унутар MDI апликацијеE673: Вишебајтно кодирање и скуп карактера нису компатибилни.E674: printmbcharset не може бити празно са вишебајтним кодирањем.E675: Није наведен подразумевани фонт за вишебајтно штампање.E676: Нема одговарајућих аутокоманди за acwrite баферE677: Грешка при упису temp датотекеE678: Неважећи карактер након %s%%[dxouU]E679: Рекурзивна петља код учитавања syncolor.vimE67: \z1 и остали онвде нису дозвољениE680: <бафер=%d>: неисправан број бафера E681: Бафер није учитанE682: Неважећи шаблон претраге или раздвојни карактерE683: Недостаје име датотеке или неважећи шаблонE684: индекс листе је ван опсега: %ldE685: Интерна грешка: %sE686: Аргумент за %s мора бити ListE687: Мање одредишта него ставки ЛистеE688: Више одредишта него ставки ЛистеE689: Само Листа или Речник могу да се индексирајуE68: Неважећи карактер након \zE690: Недостаје "in" након :forE691: List може да се пореди само са ListE692: Неисправна операција за ListE694: Неисправна операција за FuncrefsE695: Funcref не може да се индексираE696: У Листи недостаје зарез: %sE697: Недостаје крај Листе ']': %sE698: променљива је предубоко угњеждена да би се направила копијаE699: Сувише аргуменатаE69: Недостаје ] након %s%%[E700: Непозната функција: %sE701: Неисправан тип за len()E702: Sort функција поређења није успелаE703: Користи се Funcref као NumberE704: Име Funcref мора да почне великим словом: %sE705: Име променљиве је у конфликту са постојећом функцијом: %sE707: Име функције је у конфликту са променљивом: %sE708: [:] мора да буде последњаE709: [:] захтева вредност типа ListE70: Празан %s%%[]E710: Вредност типа List има више ставки него одредиштеE711: Вредност типа List нема довољно ставкиE712: Аргумент за %s мора бити Листа или РечникE713: Не може да се користи празан кључ за РечникE714: Потребна ЛистаE715: Потребан РечникE716: У Речнику нема кључа: %sE717: Унос већ постоји у речникуE718: Потребна funcrefE719: Не може да се користи [:] са РечникомE71: Неважећи карактер након %s%%E720: Недостаје тачка-зарез у Речнику: %sE721: Дупликат кључа у Речнику: "%s"E722: Недостаје зарез у Речнику: %sE723: Недостаје крај Речника '}': %sE724: променљива је угњеждена предубоко да би се приказалаE725: Позивање dict функције без Речника: %sE726: Корак је нулаE727: Почетак иза крајаE728: Користи се Dictionary као NumberE729: користи се Funcref као StringE72: Грешка код затвањара swap датотекеE730: користи се List као StringE731: користи се Dictionary као StringE732: Коришћење :endfor са :whileE733: Коришћење :endwhile са :forE734: Погрешан тип променљиве за %s=E735: Dictionary може да се пореди само са DictionaryE736: Неисправна операција за DictionaryE737: Кључ већ постоји: %sE738: Не може да се прикаже листа променљивих за %sE739: Директоријум не може да се креира: %sE73: стек ознака је празанE740: Превише аргумената за функцију %sE741: Вредност је закључана: %sE742: Вредност %s не може да се промениE743: променљива је угњеждена сувише дубоко да би се за(от)кључалаE744: NetBeans не дозвољава измене датотека које смеју само да се читајуE745: Користи се List као NumberE746: Име функције се не поклапа са именом скрипт датотеке: %sE747: Директоријум не може да се промени, бафер је измењен (додајте ! за премошћавање)E748: Нема претходно коришћеног регистраE749: празан баферE74: Команда је сувише комплекснаE750: Најпре користите ":profile start {fname}"E751: Име излазне датотеке не сме да има име регионаE752: Нема претходне правописне заменеE753: Није пронађено: %sE754: Подржано је само до 8 регионаE755: Неважећи регион у %sE756: Провера правописа није омогућенаE757: Ово не изгледа као правописна датотекаE758: Правописна датотека је прекраћенаE75: Име је предугачкоE760: Нема броја речи у %sE761: Грешка формата у датотеци наставака FOL, LOW или UPPE762: Карактер у FOL, LOW или UPP је ван опсегаE763: Карактери у речи се разликују између правописних датотекаE764: Опција '%s' није постављенаE765: 'spellfile' не садржи %ld ставкеE766: Недовољно аргумената за printf()E767: Сувише аргумената за printf()E768: Swap датотека постоји: %s (:silent! премошћава)E769: Недостаје ] након %s[E76: Превише [E770: Неподржана секција у правописној датотециE771: Стара правописна датотека, потребно је да се освежиE772: Правописна датотека је за новију верзију Vim-аE773: Symlink петља за "%s"E774: 'operatorfunc' је празнаE775: Eval могућност није доступнаE776: Нема листе локацијаE777: Очекује се String или ListE778: Ово не изгледа као .sug датотека: %sE779: Стара .sug датотека, потребно је да се освежи: %sE77: Превише имена датотекаE780: .sug датотека је за новију верзију Vim-а: %sE781: .sug датотека не одговара .spl датотеци: %sE782: грешка приликом читања .sug датотеке: %sE783: карактер дупликат у MAP ставциE784: Последња картица не може да се затвориE785: complete() може да се користи само у режиму УметањеE786: Опсег није дозвољенE787: Бафер је неочекивано измењенE788: Уређивање другог бафера тренутно није дозвољеноE789: Недостаје ']': %sE78: Непознат маркерE790: undojoin ије дозвољен након undoE791: Празна keymap ставкаE792: Празно име менијаE793: Ниједан други бафер у diff режиму није измењивE794: Не може да се постави променљива у sandbox-у: "%s"E795: Променљива %s не може да се обришеE797: SpellFileMissing аутокоманда је обрисала баферE798: ИД је резервисан за ":match": %ldE799: Неважећи ИД: %ld (мора бити већи од или једнак 1)E79: Џокери не могу да се развијуE800: арапски не може да се користи: Није омогућен у време компилације
E801: ИД је већ заузет: %ldE802: Неважећи ИД: %ld (мора бити већи од или једнак 1)E803: ИД није пронађен: %ldE804: '%' не може да се користи са FloatE805: Користи се Float као NumberE806: коришћење Float као StringE807: Очекује се Float аргумент за printf()E808: Захтева се Number или FloatE809: #< није доступно без +eval могућностиE80: Грешка приликом уписаE810: Није могуће читање или упис у привремене датотекеE811: Мењање информација о баферу тренутно није дозвољеноE812: Аутокоманде су промениле багер или име бафераE813: autocmd прозор не може да се затвориE814: Прозор не може да се затвори, преостао би једино autocmd прозорE815: Жао нам је, ова команда је онемогућена, MzScheme библиотеке нису могле да се учитају.E816: Није могуће читање patch излазаE817: Blowfish употреба big/little endian је погрешнаE818: sha256 тест није успеоE819: Blowfish тест није успеоE81: <SID> се користи ван скрипт контекстаE820: sizeof(uint32_t) != 4E821: Датотека је шифрована непознатом методомE822: Датотека за опозив не може да се отвори за читање: %sE823: Није датотека за опозив: %sE824: Некомпатибилна датотека за опозив: %sE825: Искварена датотека за опозив (%s): %sE826: Дешифровање датотеке за опозив није успело: %sE827: Датотека за опозив је шифрована: %sE828: Датотека опозива не може да се отвори за упис: %sE829: грешка код уписа у датотеку за опозив: %sE82: Не може да се резервише меморија ни за један бафер, излазак...E830: Број опозива %ld није пронађенE831: bf_key_init() је позвана са празном лозинкомE832: Датотека која није шифрована има шифровану датотеку за опозив: %sE833: %s је шифрована и ова верзија Vim-а не подржава шифровањеE834: У конфликту са вредношћу 'listchars'E835: У конфликту са вредношћу 'fillchars'E836: Овај Vim не може да изврши :python након коришћења :py3E837: Овај Vim не може да изврши :py3 након коришћења :pythonE838: netbeans није подржан са овим GUIE839: Функција довршавања је променила прозорE83: Не може да се резервише меморија за бафер, користи се други...E840: Функција довршавања је обрисала текстE841: Резервисано име, не може да се користи за кориснички дефинисану командуE842: нема броја линије који би се користио за "<slnum>"E843: Грешка приликом осважавања криптовања swap датотекеE844: неважећа cchar вредностE845: Недовољно меморије, листа речи неће бити комплетнаE846: Није постављрн код тастераE847: Превише синтаксних уметањаE848: Превише синтаксних кластераE849: Превише синтаксних и група истицањаE84: Није пронађен измењени баферE850: Неважеће име регистраE851: Креирање новог процеса за GUI није успелоE852: Процес потомак није успео да покрене GUIE853: Име аргумента је дуплирано: %sE854: путања је сувише дугачка да би се довршилаE855: Аутокоманде су изазвале прекид командеE858: Eval није вратио важећи python објекатE859: Конверзија враћеног python објекта у vim вредност није успелаE85: Нема бафера на листиE862: g: не може овде да се користиE864: Иза \%#= може да следи једино 0, 1, или 2. Користиће се аутоматски енџин E865: Крај (NFA) Regexp израза је достигнут прераноE866: (NFA regexp) %c је на погрешном местуE867: (NFA) Непознати оператор '\%%%c'E867: (NFA) Непознати оператор '\z%c'E868: Грешка при грађењу NFA са класом еквиваленције!E869: (NFA) Непознати оператор '\@%c'E86: Бафер %ld не постојиE870: (NFA regexp) Грешка при читању граница понављањаE871: (NFA regexp) Мулти не може следи иза мулти !E872: (NFA regexp) Превише '('E873: (NFA regexp) грешка правилне терминацијеE874: (NFA) Скидање са стека није успело !E875: (NFA regexp) (Док је вршена конверзија из postfix у NFA), превише стања је остало на стекуE876: (NFA regexp) Нема довољно простора да се ускладишти комплетан NFA E877: (NFA regexp) Неважећа карактер класа: %ldE878: (NFA) Није могла да се алоцира меморија за обилазак грана!E879: (NFA regexp) Превише \z(E87: Не може да се иде иза последњег бафераE881: Број линија се неочекивано промениоE882: Uniq функција поређења није успелаE883: регистар за шаблон претраге и израз не може да садржи две или више линијаE884: Име функције не може да садржи двотачку: %sE885: Знак %s не може да се промениE886: Viminfo датотека не може да се преименује у %s!E887: Жао нам је, ова команда је онемогућена, Python-ов site модул није могао да се учита.E888: (NFA regexp) не може да се понови %sE88: Не може да се иде испред првог бафераE890: карактер вишка након ']': %s]%sE891: Користи се Funcref као FloatE892: Користи се String као FloatE893: Користи се List као FloatE894: Користи се Dictionary као FloatE895: Жао нам је, ова команда је онемогућена, MzScheme-ов racket/base модул није могао да се учита.E898: socket() у channel_open()E89: Од последње измене није било уписа за бафер %ld (додајте ! да премостите)E901: gethostbyname() у channel_open()E902: Повезивање на порт није могућеE903: примњена команда са аргуменом који није стрингE904: последњи аргумент за expr/call мора бити бројE904: трећи аргумент за call мора бити листаE905: примљена непозната команда: %sE906: није отворен каналE907: Користи се специјална вредност као FloatE908: користи се недозвољена вредност као StringE909: Специјална променљива не може да се индексираE90: Последњи бафер не може да се уклони из меморијеE910: Користи се Job као NumberE911: Користи се Job као FloatE912: ch_evalexpr()/ch_sendexpr() не може да се користи са raw или nl каналомE913: Користи се Channel као NumberE914: Користи се Channel као FloatE915: in_io бафер захтева да in_buf или in_name буде постављеноE916: није валидан jobE917: Callback не може да се користи са %s()E918: бафер мора бити учитан: %sE919: Није пронађен директоријум у '%s': "%s"E91: Опција 'shell' је празнаE920: _io датотека захтева да _name буде постављеноE921: Неисправан callback аргументE922: очекивао се dictE923: Други аргумент function() мора бити list или dictE924: Текући прозор је затворенE925: Текући quickfix је промењенE926: Текућа листа локација је промењенаE927: Неисправна акција: '%s'E928: Захтева се StringE929: Превише viminfo temp датотека, као %s!E92: Бафер %ld није пронађенE930: :redir не може да се користи унутар execute()E931: Бафер не може да се региструјеE932: Затварајућа функција не би требало да буде на највишем нивоу: %sE933: Функција је обрисана: %sE934: Не може да се скочи на бафер који нема име`E935: неисправан број подпоклапања: %dE936: Текућа група не може да се обришеE937: Покушај брисања бафера који је у употребиE938: Дупли кључ у JSON: "%s"E939: Потребан је позитиван бројE93: Више од једног подударања са %sE940: Не може да се откључа или закључа променљива %sE941: сервер је већ покренутE942: Могућност +clientserver није доступнаE943: Табела команди мора да се освежи, покрените 'make cmdidxs'E944: Обрнути опсег у карактер класиE945: Превелики опсег у карактер класиE946: Терминал са задатком који се извршава не може да се учини измењивимE947: Задатак се и даље извршава у баферу "%s"E948: Задатак се и даље извршаваE948: Задатак се још извршава (додајте ! да зауставите задатак)E949: Датотека је промењена током уписаE94: Ниједан бафер се не подудара са %sE950: Не може да се конвертује између %s и %sE95: Бафер са овим именом већ постојиE96: Не може да се упоређује више од %ld бафераE97: Није могуће креирање diff-оваE98: Није могуће читање diff излазаE99: Текући бафер није у diff режимуГРЕШКА: Уреди датотекуУређивање Датотеке у новом прозоруУређуј са &Vim-омУређуј са &више Vim-оваУређуј са постојећим Vim - Уређуј са једним &Vim-омУређује селектовауе датотеку(е) са Vim-омКодирање:Крај функцијеКрај изворишне датотекеУнесите кључ за шифрирање: Унесите број swap датотеке која ће да се користи (0 за отказивање): Унесите исти кључ поново: Улазак у Debug режим.  Откуцајте "cont" за наставак.Улазак у Ex режим.  Откуцајте "visual" да бисте прешли у Нормални режим.ГрешкаГрешка и прекидГрешка приликом креирања процеса: Проверите да ли је gvim у вашој путањи!Откривена је грешка током обраде %s:Датотека грешакаПроцењена потребна величина меморије у време извршавања: %d бајтоваИзузетакИзузетак је ухваћен: %sИзузетак је одбачен: %sИзузетак је завршен: %sБачен је изузетак: %sИзвршавање %sОчекује се број MAP у %s линија %dОчекује се број REP(SAL) у %s линија %dОчекује се Y или N у %s линија %d: %sИзразСпољна подпоклапања:
FLAG након коришћења индикатора у %s линија %d: %sКука за путању није могла да се постави: sys.path_hooks није у листи
Сада би требало да урадите следеће:
- додајте vim.path_hook на крај sys.path_hooks
- додајте vim.VIM_SPECIAL_PATH на крај sys.path
Путања није могла да се постави: sys.path није у листи
Сада би требало да додате vim.VIM_SPECIAL_PATH на крај sys.pathДатотека "%s" не постојиСадржај датотеке је промењен, информације за опозив не могу да се користеДозволе датотеке "%s" омогућавају само читање.
Можда је ипак могуће да се упише.
Да ли желите да покушате?Датотека је презервиранаДатотекеФилтерПронађи & Замени (користите '\\' да пронађете '\')Пронађи &СледећеПронађи наредноПронађи стринг (користите '\\' да пронађете '\')Пронађи:Тавршено је читање датотеке за опозив %sПрва реч дупликат у %s линија %d: %sИндикатор није број у %s линија %d: %sФонт %s' није фиксне ширинеШирина фонт%ld није двострука од ширине фонт0Фонт0 ширина: %ldФонт0: %sФонт1 ширина: %ldФонт1: %sФонт:За опцију %sСмеће након аргумента опцијеПоздрав, корисниче Vim-aПомозите сиромашној деци у Уганди!Достигнут крај пасусаУ/И ГРЕШКАИгнорисана/о %d реч(и) са не-ASCII карактерима у %sИгнорисано је %d рћи са не-ASCII карактеримаДугачка линија у датотеци ознака се игноришеНедозвољено име датотекеНеважећи индикатор у %s линија %d: %sНеважеће име регистраНеисправан почетни карактерЛинија за унос_Методе уносаПрекидПрекид: ПрекинутоНеисправан аргумент forНеисправна спецификација фонтаНеважећи број региона у %s линија %d: %sНеважећа вредност за FLAG у %s линија %d: %sКључеви нису исти!Затвори везуПовезивање: Захтева се листа или бројLua библиотека не може да се учитаМала/велика словаСамо целе речи подударајуПорукаПоруке одржава: Иван Пешић <ivan.pesic@gmail.com>Недостаје '>'Недостаје FOL/LOW/UPP линија у %sНедостаје SOFO%s линија у %sМодификовао Име:Потребан је %s верзија %ld
Потребан је Amigados верзија 2.04 или каснији
Потребан је кључ за шифровање "%s"NetBeans не дозвољава упис неизмењених бафераНова картицаНеЗа оба јбафер нису дефинисане синтаксне ставкеСкраћеница није пронађенаНије дефинисана ниједна прекидна тачкаНема приказаНема приказа: Израз слања није успео.
Нема уносаНема уметнутих датотекаМапирање није пронађеноНема постављених маркераНема подударања на месту курсора, тражи се даљеНема подударајућих аутокомандиНема старих датотекаНема swap датотекеНема текста за штампуНије могућ опозив; ипак наставиНису пронађене кориснички дефинисане командеНе користи сеНема довољно меморије за постављање референци, прекинуто је скупљање отпадаДатотека за опозив се не чита, власник се разликује: %sНишта за опозивБрој речи након склапања по звучности: %ldОКДијалог отварања датотекеОтвори картицу...Отвори картицуОтварање X приказа није успелоИстекло је максимално време за отварање X приказаОтварање X приказа је трајало %ld мсекОригинална датотека "%s"Да препишем постојећи датотеку "%s"?Страна %dПарцијални уписи нису дозвољени за NetBeans бафереPatch датотекаПутања је предугачка!Име путање:Шаблон је пронаћен у свакој линији: %sШаблон није пронађенШаблон није пронађен: %sИзвођење склапања по звучности...Да бисте наставили, притисните ЕНТЕР или откуцајте командуЗадатак штампе је послатОдштампано: %sШтампа се '%s'Штампање прекинутоШтампање стране %d (%d%%)Упит за шаблонПитањеЧитање датотеке наставака %s ...Читање правописне датотеке...Читање датотеке речника %s ...Читање са stdin...Читање правописне датотеке "%s"Читање датотеке за опозив: %sЧитање viminfo датотеке "%s"%s%s%sЧитање датотеке речи %s ...Опоравак је завршен. Садржај бафера је истоветан садржају датотеке.Опоравак је завршен. Требало би да проверите да ли је све OK.Поново иницијализуј све везеЗамениЗамени с&ВеЗамени свеЗамени са:Рад у Vi компатибилном режимуБезрежимски рад, умеће се откуцани текстСачувај каоДијалог чувања датотекеСачувај РедирекцијуСачувај СесијуСачувај ПодешавањеСачувај ПогледДа сачувам промене у "%s"?Скенирање речника: %sПрегледање уметнуте датотеке: %sСкенирање ознака.Скенирање: %sScrollbar Widget: Не може да се добије геометрија thumb pixmap.Стринг за претрагуТражи се"%s"Тражи се "%s" у "%s"Претраживање уметнуте датотеке %sПретраживање датотеке ознака %sПогледајте ":help E312" за више информација.Погледајте ":help W11" за више информација.Погледајте ":help W12" за више информација.Погледајте ":help W16" за више информација.Дијалог избора директоријумаИзабрано %s%ld од %ld Линија; %lld од %lld Речи; %lld од %lld БајтоваИзабрано %s%ld од %ld Линија; %lld од %lld Речи; %lld од %lld Знака; %lld од %lld БајтоваСелекцијаСлање штампачу...Прикажи везеПрикажи величину у ТачкамаПрикажи ову порукуЗнаци за %s:Величина:Прескакање уписа у датотеку за опозив, нема шта да се опозовеЖао нам је, датотека помоћи "%s" није пронађенаЖао нам је, нема сугестијаЖао нам је, само %ld сугестијаИзворна Vim скриптаСпонзоришите Vim развој!Величина стека се повећаваСтил:Замена Swap датотека "Swap датотека "%s" постоји, да је препишем у сваком случају?Swap датотека већ постоји!Swap датотека је шифрована: "%s"Пронађене су swap датотеке:Пребацивање на backtracking RE енџин за шаблон: Картица %dОтцепи овај мениТерминалТерминал-завршенТестирање X приказа није успелоХвала што летите са VimОва датотека је креирана са Једино подударањеОвај Vim није компајлиран са diff могућношћу.Ова cscope команда не подржава поделу прозора.
Сувише "+command", "-c command" или "--cmd command" аргуменатаПревише индикатора сложеницаСувише аргумента уређивањаПревише закашњених префиксаПревише закашњених префикса и/или индикатора сложеницаПревише региона у %s линија %d: %sВрхУкупан број речи: %dТекст вишак у %s линија %d: %sОткуцајте  :qa!  и притисните <Ентер> да одбаците све измене и напустите VimУнесите број и <Enter> (ништа за отказ): Унесите број и <Enter> или кликните мишем (ништа за отказ): Није могуће литање блока 0 из Име сервера команди није могло да се региструјеНепознатоНепознат аргумент опцијеНепрепознати индикатори у %s линија %d: %sНепрепосната или дупла ставка у %s линија %d: %sБез насловаГореКористите Vim верзијe 3.0.
Уместо празне селекције корићен је CUT_BUFFER0За текст датотеку се користи кључ за шифрирање из swap датотеке.
Користи се swap датотека "%s"VIM - ПАЖЊАVIM - Претрага and Замена...VIM - Претрага...VIM - Vi IMprovedVIM ГрешкаVIM: Прозор не може да се отвори!
VIMRUN.EXE није пронађен у вашем $PATH.
Екстерне команде неће моћи да се паузирају након завршетка.
Погледајте  :help win32-vimrun  за више информација.Vim - Фонт селекторVim E458: colormap унос не може да се алоцира, неке боје су можда неисправнеVim УпозорењеVim дијалогVim грешкаVim грешка: ~aVim излази са %d
Vim је отвореног кода и може слободно да се дистрибуираVim: Ухваћен је %s догађај
Vim: Грешка при читању улаза, излазак...
Vim: Грешка: Покретање gvim из NetBeans није успело
Vim: Грешка: Ова верзија Vim не може да се покрене из Cygwin терминала
Vim: Главни прозор је неочекивано уништен
Vim: Читање са stdin...
Vim: Примљен је "die" захтев од менаџера сесије
Vim: Упозорење: Улаз није из терминала
Vim: Упозорење: Излаз није у терминал
W10: Упозорење: Мења се датотека која може само да се читаW11: Упозорење: Датотека "%s" је измењена откад је започето уређивањеW12: Упозорење: Датотека "%s" је измењена и бафер у програму Vim је такође измењенW13: Упозорење: Датотека "%s" је креирана након почетка уређивањаW14: Упозорење: Прекорачена је максимална величина листе имена датотекаW15: Упозорење: Погрешан сепаратор линије, можда недостаје ^MW16: Упозорење: Режим датотеке "%s" је измењен откад је започето уређивањеW17: Арапски захтева UTF-8, извршите ':set encoding=utf-8'W18: Неважећи карактер у имену групеW19: Брисање augroup која је још у употребиW20: Захтевани python version 2.x није подржан, датотека: %s се игноришеW21: Захтевани python version 3.x није подржан, датотека: %s се игноришеW22: Пронађен текст након :endfunction: %sУПОЗОРЕЊЕ: Ова датотека је промењена од кад је прочитана!!!УпозорењеУпозорење: Листа речи "%s.%s.spl" или "%s.ascii.spl" не може да се пронађеУпозорење: Листа речи "%s_%s.spl" или "%s_ascii.spl" не може да се пронађеУпозорење: Неочекивано се прешло у други бафер (проверите аутокоманде)Упозорење: Користи се слаба метода шифрирања; погледајте :help 'cm'Упозорење: наведени су и слагање и NOBREAKУпозорење: регион %s није подржанУпозорење: терминал не може да истакне текстДок се отварала датотекa "Неће се вршити преписивање са датотеком опозива, читање није могуће: %sНеће се цршити преписивање, ово није датотека за опозив: %sПозиција прозора: X %d, Y %dРеч '%.*s' је додата у %sРеч '%.*s' је уклоњена из %sРеч из друге линијеДа упишем парцијалну датотеку?Уписивање правописне датотеке %s ...Уписивање датотеке предлога %s ...Упис датотеке за опозив: %sУписивање viminfo датотеке "%s"Погрешна CHECKCOMPOUNDPATTERN вредност у %s линија %d: %sПогрешна COMPOUNDMIN вредност у %s линија %d: %sПогрешна COMPOUNDRULES вредност у %s линија %d: %sПогрешна COMPOUNDSYLMAX вредност у %s линија %d: %sПогрешна COMPOUNDWORDMAX вредност у %s линија %d: %sXSMP ICE надгледање везе није успелоXSMP SmcOpenConnection није успело: %sXSMP опслужује сачувај-се захтевXSMP је изгубио ICE везуXSMP отвара везуДАДа[ГРЕШКА КОНВЕРЗИЈЕ у линији %ld][недостаје CR][Обрисано][Уређај][Датотека је сувише велика][Помоћ][НЕДОЗВОЉЕН БАЈТ у линији %ld][Последња линија није комплетна][Листа локација][НИЈЕ конвертовано][Нов ДИРЕКТОРИЈУМ][Нова датотека][Нова датотека][Ново][Без имена][Нема уписа од последње промене]
[Није уређивано][Дозвола одбијена][Преглед][Quickfix листа][ГРЕШКЕ ПРИ ЧИТАЊУ][СЧ][Грешке при читању][Празно][позива] укупно re/malloc()-а %lu, укупно free()-ова %lu

[специјални карактер][конвертовано][шифровано][dos формат][dos][fifo/утичница][fifo][датотека ..]       уређуј наведену(е) датотеку(е)[дуге линије преломљене][mac формат][mac][noeol][само за читање][утичница][unix формат][unix]_Откажи_Затвори_OK_Отвори_Сачувајaktivanadd() аргументнакони покренете diff са оригиналном датотеком да провелите има ли измена)покушај доделе секвенце величине %d како би се продужио slice величине %dпокушај доделе секвенце величине веће од %d како би се продужио sliceпокушај реферисања на обрисан баферпокушај реферисања на обрисану картицупокушај реферисања на обрисан прозорауто-уклањајућа аутокоманда: %s <бафер=%d>аутокоманда %sпреблок од %ld линија је тргнут%sблок од 1 линије је тргнут%sбафер је неважећи написали Bram Moolenaar et al.inputrestore() је позвана више пута него inputsave()позива се %sатрибути OutputObject не могу да се обришуизлаз 'charconvert' не може да се прочитаконзолни режим не може да се промени ?!
бафер/прозор команда не може да се креира: објекат се бришелинија не може да се обришеvim.Dictionary атрибути не могу да се обришуvim.List атрибути не могу да се обришулинија не може да се добијелинија не може да се уметнелинија не може да се уметне/дода на крајфиксни речник не може да се изменификсна листа не може да се изменине може да се отвори команда повратног позива не може да се региструје: бафер/прозор је већ обрисанкоманда повратног позива не може да се региструје: референца бафера/прозора није пронађеналинија не може да се замениинфорамције за опозив не могу да се сачувајуатрибут %s не може да се поставилинија(е) не може да се поставине може да се тргне; ипак обрисатиизменаизменазатварањеком: %sнаставља се у %sне може бити извор "%s"бафер не може да се отвориcs_create_connection exec није успеоcs_create_connection setpgid није успеоcs_create_connection: fdopen за fr_fp није успеоcs_create_connection: fdopen за to_fp није успеоcscope команде:
cscope веза %s је затворенапозиција курсора је ван бафераподразумева се 'блок 1 обрисан?речник је закључанније се прешло у наведену картицуније се прешло у наведени прозорdlerror = "%s"не напуштајте едитор док се датотека успешно не упише!празни кључеви нису дозвољенипроменљива окружењагрешка при конверзији Scheme вредности у Vimпроцедура за обраду грешкеКао резултат imp.find_module() очекује се триплет, али је добијено %sКао резултат imp.find_module() очекује се триплет, али је добијена н-торка величине %dочекивала се инстанца bytes() или str(), али је добијена %sочекивало се int() или нешто што подржава спајање са int(), али је добијено %sочекивало се int(), long() или нешто што подржава спајање са long(), али је добијено %sочекивао се елемент секвенце величине 2, алил је добијена секвенца величине %dочекивала се инстанца str() или unicode(), али је добијена %sочекивао се vim.Buffer објекат, али је добијен %sочекивао се vim.TabPage објекат, али је добијен %sочекивао се vim.Window објекат, али је добијен %sизрази су онемогућени у време компилацијеextend() аргументставка није могла да се дода листикључ '%s' није могао да се дода у речникне може да се промени директоријумпрозор није пронађен у текућој картицииме бафера није могло да се променифункција %s није могла да се покренекôд није могао да се покренепрелазак на бафер %d није био могућлинија мањедатотека
датотека / контекст / линија
filter() аргументзавршензавршено прибављање %sоквир је на највишем нивоу: %dоквир је нулаослобађа се %ld линијафункција %s не постојиgvimext.dll грешкаhashtab је промењен током итерацијепомоћскривена опцијау путањи ---
index мора бити типа int или slice, не %sinsert() аргументинтерна грешка: прослеђена је NULL референцаинтерна грешка: ставка није могла да се дода листиинтерна грешка: ставка %d vim листе није могла да се добијеинтерна грешка: imp.find_module је вратио н-торку са NULLинтерна грешка: вредност неважећег типаинтерна грешка: нема ставке %d у vim листиинтерна грешка: нема довољно ставки листеинтерна грешка: непознат тип опцијеневажећи атрибут: %sнеисправан број баферанеисправан изразнеисправно име маркераје уређај (онемогућен опцијом 'opendevice')је директоријумније датотеканије датотека или уређај на који може да се уписујеје само за читање (додајте ! за премошћавање)прекид тастатурелинија %4ld:линија %6d, реч %6d - %sлинија %ldлинија %ld од %ld --%d%%-- кол линија %ld: %sлинија %ld: не може бити извор "%s"линија %ld: прибављање "%s"линија мањеброј линије је ван опсегаlinenr је ван опсегаконструктор листе не прихвата кључне речи за аргументеиндекс листе је ван опсегалиста је закључанаодјављивањеmap() аргументиме маркера мора бити само један карактермаркер није постављенподударање %dподударање %d од %dподударање у датотецимаксимално mch_get_shellsize: није конзола??
мени  Уређивање->Глобална подешавања->Преклапај режим Уметање  мени  Уређивање->Глобална подешавања->Преклапај Vi Компатибилномени  Помоћ->Сирочићи           за информације    мени  Помоћ->Спонзор/Региструј се  за информације    минимално режимска линија (modeline)линија вишелинија вишеNetBeans није подржан са овим GUI
покренуто ново командно окружење
ненема cscope веза
нема посебног подударањане постоји таква картицанема таквог прозорабез синхронизацијеније дозвољено у Vim sandbox-унису пронађене није пронађено у '%s': "%s"још није имплементираноброј   измене   када            сачуваноброј мора бити већи од или једнак нулиброј мора бити већи од нулеpe_line_count је нулаpre-vimrc командна линијапроблем код пребацивања прозораатрибут само за читање: баферснимањеremove() аргументзаменити са %s (y/n/a/q/l/^E/^Y)?reverse() аргументред %d колона %dрадипретрага је достигла ДНО, наставља се на ВРХУпретрага је достигла ВРХ, наставља се на ДНУкомандно окружење командно окружење је вратило %dискључивањеslice корак не може да буде нулаsort() аргументприбављање "%s"stack_idx би требало да је 0стринг не може да садржи нове редовесинхронизација на коментарима C-стиласинхронизација почиње мала/велика слова се не разликују у синтаксимала/велика слова се разликују у синтаксискривање синтаксе искљученоскривање синтаксе укљученосинтакса iskeyword синтакса правописа подразумеваносинтакса правописа notoplevelсинтакса правописа toplevelознака %d од %d%sознакау %s на %sоткуцајте  :help cp-default<Enter> за инфо о овомеоткуцајте  :help iccf<Enter>       за информације   откуцајте  :help register<Enter>   за информације   откуцајте  :help sponsor<Enter>    за информације   откуцајте  :help version8<Enter>   за инфо о верзијиоткуцајте  :help<Enter>  или  <F1> за on-line помоћ откуцајте  :q<Enter>               за излаз         откуцајте  :set nocp<Enter>        за Vim подразумевано%s не може да се конвертује у vim речник%s не може да се конвертује у vim листу%s не може да се конвертује у vim структурувредност опције није могла да се добијеглобална опција %s није могла да се искључиопција %s која нема глобалну вредност није могла да се искључиuniq() аргументнепознатонепознат индикаторнепозната опцијанепозната vimОпцијанеименована функција %s не постојивредност је сувише велика да се смести у C int типвредност је сувише мала да се смести у C int типверзија vim грешкаиндекс прозора је ван опсегапрозор је неважећиса Carbon GUI.са Cocoa GUI.са GTK2 GUI.са GTK2-GNOME GUI.са GTK3 GUI.са GUI.са Photon GUI.са X11-Athena GUI.са X11-Motif GUI.са X11-neXtaw GUI.без GUI.упис на уређај је онемогућен опцијом 'opendevice'PK�j�Z��P�bbvim80/lang/menu_zh.cp936.vimnu�[���" Menu Translations:	Simplified Chinese (for Windows)

source <sfile>:p:h/menu_chinese_gb.936.vim
PK�j�Z;Z�.�1�1&vim80/lang/menu_chinese_taiwan.950.vimnu�[���" Menu Translations:	Traditional Chinese
" Translated By:	Hung-Te Lin	<piaip@csie.ntu.edu.tw>
" Last Change:		2012 May 01

" {{{ Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
" }}}
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp950

" {{{ Help menu: complete
menutrans &Help			���U����(&H)
" ------------------------------------------------------------------------
menutrans &Overview<Tab><F1>	�������`�(&O)<Tab><F1>
menutrans &User\ Manual		�ϥΪ̤�U(&U)
menutrans &How-to\ links	�p��@\.\.\.(&H)
menutrans &GUI			�ϫ��ɭ�(&G)
menutrans &Credits		�P��(&C)
menutrans Co&pying		���v(&P)
menutrans &Sponsor/Register		�٧U/���U(&S)
menutrans O&rphans		�@�ϩt��(&R)
" ------------------------------------------------------------------------
menutrans &Version		�{��������T(&V)
menutrans &About		���\ Vim(&A)
" }}}

" {{{ File menu: complete
menutrans &File				�ɮ�(&F)
" ------------------------------------------------------------------------
menutrans &Open\.\.\.<Tab>:e		�}��(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	���ε����ö}��(&L)<Tab>:sp
menutrans &New<Tab>:enew		�s��s�ɮ�(&N)<Tab>:enew
menutrans &Close<Tab>:close		����ɮ�(&C)<Tab>:close
" ------------------------------------------------------------------------
menutrans &Save<Tab>:w			�x�s(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	�t�s�s��(&A)\.\.\.<Tab>:sav
" ------------------------------------------------------------------------
menutrans Split\ &Diff\ with\.\.\.	��(&Diff)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	����Patch(&B)\.\.\.
" ------------------------------------------------------------------------
menutrans &Print			�C�L(&P)
" ------------------------------------------------------------------------
menutrans Sa&ve-Exit<Tab>:wqa		�x�s����}(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			��}(&X)<Tab>:qa
" }}}

" {{{ Edit menu
menutrans &Edit				�s��(&E)
" ------------------------------------------------------------------------
menutrans &Undo<Tab>u			�_��(&U)<Tab>u
menutrans &Redo<Tab>^R			�����W���_��(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		���ƤW���ʧ@(&E)<Tab>\.
" ------------------------------------------------------------------------
menutrans Cu&t<Tab>"+x			�ŤU(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			�ƻs(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		�K�W(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		�K���Ыe(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		�K����(&A)<Tab>]p
menutrans &Delete<Tab>x			�R��(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		����(&S)<Tab>ggvG
" ------------------------------------------------------------------------
menutrans &Find\.\.\.			�M��(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	�M���N(&L)\.\.\.
" ------------------------------------------------------------------------
menutrans Settings\ &Window		�]�w����(&W)
menutrans &Global\ Settings		����]�w(&G)
menutrans F&ile\ Settings		�]�w���ɮ�(&I)
menutrans C&olor\ Scheme		�t��]�w(&O)
menutrans &Keymap			��L��(&K)
    " "{{{ Keymap:
    menutrans None			�L
    " }}}
menutrans Select\ Fo&nt\.\.\.		�]�w�r��(&N)\.\.\.
" }}}

" {{{ Edit.FileSettings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!    ������ܦ渹(&N)<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!	    ������ܦ���TAB(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!	    �����۰ʧ�����(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!    ���������ܥi��N�_�y(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!	    �����i�}TAB(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!	    �����۰�Y��(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!	    �����ѻy���Y��(&C)<Tab>:set\ cin!
" ------------------------------------------------------------------------
menutrans &Shiftwidth				    �Y�Ƽe��(shiftwidth)(&S)
menutrans Soft\ &Tabstop			    �n����TAB(softtabstop)(&T)
menutrans Te&xt\ Width\.\.\.			    ��r�����e��(textwidth)(&X)\.\.\.
menutrans &File\ Format\.\.\.			    �]�w�ɮ׮榡(���@�~�t��)(&F)\.\.\.
" }}}

" {{{ Edit.GlobalSettings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! �������G�׷j�M�r��(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	     ���������j�p�g(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!	     ������ܹ��A��(&S)<Tab>:set\ sm!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	     �����Dz�Vi�ۮe�Ҧ�(&O)<Tab>:set\ cp!
menutrans &Context\ lines			     ����e��O�d���(scrolloff)(&C)
menutrans &Virtual\ Edit			     ���N����(virtualedit)(&V)
    " {{{ Edit.GlobalSettings.VirtualEdit
    menutrans Never				     ���ϥ�
    menutrans Block\ Selection			     �϶��ܮ�
    menutrans Insert\ mode			     ���J�Ҧ���
    menutrans Block\ and\ Insert		     �϶�P���J�Ҧ�
    menutrans Always				     �@���}��
    " }}}
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	     �������J�Ҧ�(&M)<Tab>:set\ im!
menutrans Search\ &Path\.\.\.			     �j�M��|(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.			     Tag\ ���ү���ɮ�(&G)\.\.\.
" ------------------------------------------------------------------------
menutrans Toggle\ &Toolbar			     �����ϥΤu��C(&T)
menutrans Toggle\ &Bottom\ Scrollbar		     �����ϥΩ��ݱ��ʶb(&B)
menutrans Toggle\ &Left\ Scrollbar		     �����ϥΥ��ݱ��ʶb(&L)
menutrans Toggle\ &Right\ Scrollbar		     �����ϥΥk�ݱ��ʶb(&R)
" }}}

" {{{ Tools menu: complete
menutrans &Tools			�u��(&T)
" ------------------------------------------------------------------------
menutrans &Jump\ to\ this\ tag<Tab>g^]	�˯���гB���������r(tag)(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		���^�˯��e����m(&B)<Tab>^T
menutrans Build\ &Tags\ File		�إ߼��ү����\ Tags(&T)
" ------------------------------------------------------------------------
menutrans &Folding			���|(Fold)�]�w(&F)
    " {{{ Tools.Fold
    menutrans &Enable/Disable\ folds<Tab>zi	    �����ϥ�\ Folding(&E)<Tab>zi
    menutrans &View\ Cursor\ Line<Tab>zv	    �˵����h\ Fold(&V)<Tab>zv
    menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx    �u�˵���\ Fold(&W)<Tab>zMzx
    menutrans C&lose\ more\ folds<Tab>zm	    ���_�@�h\ Folds(&L)<Tab>zm
    menutrans &Close\ all\ folds<Tab>zM		    ���_�Ҧ�\ Folds(&C)<Tab>zM
    menutrans O&pen\ more\ folds<Tab>zr		    ���}�@�h\ Folds(&P)<Tab>zr
    menutrans &Open\ all\ folds<Tab>zR		    ���}�Ҧ�\ Folds(&O)<Tab>zR
    menutrans Fold\ Met&hod			    Folding\ �覡(&H)
	" {{{ Tools.Fold.Method
	menutrans M&anual		��ʫإ�(&A)
	menutrans I&ndent		�̷�Y��(&N)
	menutrans E&xpression		�ۭq�B�⦡(&X)
	menutrans S&yntax		�̷ӻy�k�]�w(&Y)
	menutrans &Diff			Diff(&D)
	menutrans Ma&rker		�аO(Marker)(&R)
	" }}}
    " ------------------------------------------------------------------------
    menutrans Create\ &Fold<Tab>zf		    �إ�\ Fold(&F)<Tab>zf
    menutrans &Delete\ Fold<Tab>zd		    �R��\ Fold(&D)<Tab>zd
    menutrans Delete\ &All\ Folds<Tab>zD	    �R���Ҧ�\ Fold(&A)<Tab>zD
    " ------------------------------------------------------------------------
    menutrans Fold\ column\ &width		    �]�w\ Fold��e(&W)
    " }}}
menutrans &Diff				Diff(&D)
    " {{{ Tools.Diff
    menutrans &Update			��s(&U)
    menutrans &Get\ Block		���o�϶�(&G)
    menutrans &Put\ Block		�K�W�϶�(&P)
    " }}}
" ------------------------------------------------------------------------
menutrans &Make<Tab>:make		����\ Make(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		�C�X�s���~(&E)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	�C�X�Ҧ��T��(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		�U�@�ӽsĶ���~�B(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	�W�@�ӽsĶ���~�B(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	�˵��¿��~�C��(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	�˵��s���~�C��(&E)<Tab>:cnew
menutrans Error\ &Window		���~�T������(&W)
    " {{{ Tools.ErrorWindow
    menutrans &Update<Tab>:cwin		��s(&U)<Tab>:cwin
    menutrans &Open<Tab>:copen		�}��(&O)<Tab>:copen
    menutrans &Close<Tab>:cclose	���(&C)<Tab>:cclose
    " }}}
menutrans &Set\ Compiler		�]�w�s��Compiler(&S)
" ------------------------------------------------------------------------
menutrans &Convert\ to\ HEX<Tab>:%!xxd	�ഫ��16�i��X(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	�q16�i��X�ഫ�^��r(&R)<Tab>:%!xxd\ -r
" }}}

" {{{ Syntax menu: compete
menutrans &Syntax		    �y�k�ĪG(&S)
" ------------------------------------------------------------------------
menutrans &Show\ filetypes\ in\ menu	��ܩҦ��i��ɮ׮榡(&S)
menutrans Set\ '&syntax'\ only	    �u�ϥ�\ 'syntax'(&S)
menutrans Set\ '&filetype'\ too	    �ϥ�\ 'syntax'+'filetype'(&F)
menutrans &Off			    ����ĪG(&O)
menutrans &Manual		    ��ʳ]�w(&M)
menutrans A&utomatic		    �۰ʳ]�w(&U)
menutrans on/off\ for\ &This\ file  �u�������ɪ��ĪG�]�w(&T)
" ------------------------------------------------------------------------
menutrans Co&lor\ test		    ��m��ܴ���(&L)
menutrans &Highlight\ test	    �y�k�ĪG����(&H)
menutrans &Convert\ to\ HTML	    �ഫ��\ HTML\ �榡(&C)
" }}}

" {{{ Buffers menu: complete
menutrans &Buffers			�w��(&B)
" ------------------------------------------------------------------------
menutrans &Refresh\ menu		��s(&R)
menutrans &Delete			�R��(&D)
menutrans &Alternate			�����W���s��w��(&A)
menutrans &Next				�U�@��(&N)
menutrans &Previous			�e�@��(&P)
" ------------------------------------------------------------------------
" menutrans [No\ file]			[�L�ɮ�]
" }}}

" {{{ Window menu: complete
menutrans &Window			����(&W)
" ------------------------------------------------------------------------
menutrans &New<Tab>^Wn			�}�s����(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		�����(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	����#(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	��������(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	�ɮ�`�ަ�����(&X)
" ------------------------------------------------------------------------
menutrans &Close<Tab>^Wc		�������(&C)<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	����䥦����(&O)<Tab>^Wo
" ------------------------------------------------------------------------
menutrans Move\ &To			����(&T)
    " {{{ Window.MoveTo
    menutrans &Top<Tab>^WK		����(&T)<Tab>^WK
    menutrans &Bottom<Tab>^WJ		����(&B)<Tab>^WJ
    menutrans &Left\ side<Tab>^WH	����(&L)<Tab>^WH
    menutrans &Right\ side<Tab>^WL	�k��(&R)<Tab>^WL
    " }}}
menutrans Rotate\ &Up<Tab>^WR		�W������(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		�U������(&D)<Tab>^Wr
" ------------------------------------------------------------------------
menutrans &Equal\ Size<Tab>^W=		�Ҧ���������(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		�̤j����(&M)<Tab>^W
menutrans M&in\ Height<Tab>^W1_		�̤p����(&I)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		�̤j�e��(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		�̤p�e��(&H)<Tab>^W1\|
" }}}

" {{{ The popup menu: complete
menutrans &Undo				�_��(&U)
" ------------------------------------------------------------------------
menutrans Cu&t				�ŤU(&T)
menutrans &Copy				�ƻs(&C)
menutrans &Paste			�K�W(&P)
menutrans &Delete			�R��(&D)
" ------------------------------------------------------------------------
menutrans Select\ Blockwise		Blockwise�����
menutrans Select\ &Word			��ܳ�r(&W)
menutrans Select\ &Line			��ܦ�(&L)
menutrans Select\ &Block		��ܰ϶�(&B)
menutrans Select\ &All			����(&A)
" }}}

" {{{ The GUI toolbar: complete
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		�}��ɮ�
    tmenu ToolBar.Save		�x�s�ثe�s�褤���ɮ�
    tmenu ToolBar.SaveAll	�x�s�����ɮ�
    tmenu ToolBar.Print		�C�L
" ------------------------------------------------------------------------
    tmenu ToolBar.Undo		�_��W���ܰ�
    tmenu ToolBar.Redo		�����W���_��ʧ@
" ------------------------------------------------------------------------
    tmenu ToolBar.Cut		�ŤU�ܰŶKï
    tmenu ToolBar.Copy		�ƻs��ŶKï
    tmenu ToolBar.Paste		�ѰŶKï�K�W
" ------------------------------------------------------------------------
    tmenu ToolBar.Find		�M��...
    tmenu ToolBar.FindNext	��U�@��
    tmenu ToolBar.FindPrev	��W�@��
    tmenu ToolBar.Replace	���N...
" ------------------------------------------------------------------------
    tmenu ToolBar.LoadSesn	���J Session
    tmenu ToolBar.SaveSesn	�x�s�ثe�� Session
    tmenu ToolBar.RunScript	���� Vim �{����
" ------------------------------------------------------------------------
    tmenu ToolBar.Make		���� Make
    tmenu ToolBar.Shell		�}�Ҥ@�өR�O�C���� DosBox
    tmenu ToolBar.RunCtags	���� ctags
    tmenu ToolBar.TagJump	����ثe��Ц�m�� tag
    tmenu ToolBar.Help		Vim ���U����
    tmenu ToolBar.FindHelp	�j�M Vim �������
  endfun
endif
" }}}

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:foldmethod=marker:nowrap:foldcolumn=2:foldlevel=1
PK�j�Z��I�;2;2$vim80/lang/menu_sr_rs.iso_8859-5.vimnu�[���" Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change:	Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: ���� ���� on 2017-12-28 12:05+0400

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding iso8859-5

" Help menu
menutrans &Help		      ����&�
menutrans &Overview<Tab><F1>  &�������<Tab><F1>
menutrans &User\ Manual       &��������\ ��\ ���������
menutrans &How-to\ links      &����\ ��\.\.\.
menutrans &Find		      &����
menutrans &Credits	      &�������
menutrans Co&pying	      �&��������
menutrans O&rphans	      &�������
menutrans &Sponsor/Register   �������/&����������\ ��
menutrans &Version	      &������
menutrans &About	      &�\ ��������

" File menu
menutrans &File			    &��������
menutrans &Open\.\.\.<Tab>:e	    &������\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &������-������\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	������\ �������\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew	    &����<Tab>:enew
menutrans &Close<Tab>:close	    &�������<Tab>:close
menutrans &Save<Tab>:w		    &������<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav  ������\ &���\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.  ������\ �\ &�������\ ��\.\.\.
menutrans Split\ Patched\ &By\.\.\. ��&����\ �\ ��������\ ��\.\.\.
menutrans &Print		    ���&���
menutrans Sa&ve-Exit<Tab>:wqa	    ������\ �\ ��&����<Tab>:wqa
menutrans E&xit<Tab>:qa		    �&��<Tab>:qa

" Edit menu
menutrans &Edit			 &��������
menutrans &Undo<Tab>u		 &�����<Tab>u
menutrans &Redo<Tab>^R		 &�������<Tab>^R
menutrans Rep&eat<Tab>\.	 �&�����<Tab>\.
menutrans Cu&t<Tab>"+x		 ���&��<Tab>"+x
menutrans &Copy<Tab>"+y		 &������<Tab>"+y
menutrans &Paste<Tab>"+gP	 &�����<Tab>"+gP
menutrans &Paste<Tab>"+P	&�����<Tab>"+gP
menutrans Put\ &Before<Tab>[p	 �����\ ���&�<Tab>[p
menutrans Put\ &After<Tab>]p	 �����\ &���<Tab>]p
menutrans &Delete<Tab>x		 ��&�����<Tab>x
menutrans &Select\ all<Tab>ggVG  �������\ ��&�<Tab>ggVG
menutrans &Find\.\.\.		 &����\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. ����\ �\ &������\.\.\.
menutrans Settings\ &Window	 �&�����\ ���������
menutrans Startup\ &Settings	 ��&�������\ ���\ ��������		
menutrans &Global\ Settings	 ��&���\ ���������
menutrans F&ile\ Settings	 ���������\ ��\ ��&������
menutrans &Shiftwidth		 &������
menutrans Soft\ &Tabstop	 &����\ ���������
menutrans Te&xt\ Width\.\.\.	 &������\ ������\.\.\.
menutrans &File\ Format\.\.\.	 &�����\ ��������\.\.\.
menutrans Show\ C&olor\ Schemes\ in\ Menu	�������\ ����\ ��&��\ �\ �����
menutrans C&olor\ Scheme	\����\ ��&��
menutrans Show\ &Keymaps\ in\ Menu	�������\ ����&�������\ ���������\ �\ �����
menutrans &Keymap	����&�������\ ���������
menutrans Select\ Fo&nt\.\.\.	 �����\ &�����\.\.\.

" Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! �������\ &�������\ (��/��)<Tab>:set\ hls!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! ��������\ ��������\ &�����\ (��/��)<Tab>:set\ ic!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! �������\ ������\ &�������\ (��/��)<Tab>:set\ sm!
menutrans &Context\ lines  ������\ &������
menutrans &Virtual\ Edit   ���������\ &��������
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!   �����\ �&����\ (��/��)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!     '&Vi'\ ��������\ (��/��)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. �����\ &��������\.\.\.
menutrans Ta&g\ Files\.\.\.   &��������\ ������\.\.\.
menutrans Toggle\ &Toolbar    �����\ ��\ &��������\ (��/��)
menutrans Toggle\ &Bottom\ Scrollbar   ���\ �&����\ ������\ (��/��)
menutrans Toggle\ &Left\ Scrollbar  &����\ �����\ ������\ (��/��)
menutrans Toggle\ &Right\ Scrollbar &�����\ �����\ ������\ (��/��)

" Edit/Global Settings/Virtual Edit
menutrans Never		      �����
menutrans Block\ Selection    �����\ �����
menutrans Insert\ mode	      �����\ �����
menutrans Block\ and\ Insert  ����\ �\ ����
menutrans Always	      ����

" Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!   �������\ &���������\ �����\ (��/��)<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!   �������\ ������&���\ ���������\ �����\ (��/��)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!	   �����\ &�����\ (��/��)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!	   �������\ &������\ (��/��)<Tab>:set\ wrap!
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!   �������\ &��\ ���\ (��/��)<Tab>:set\ lbr!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!	   �������\ ������\ &���������\ (��/��)<Tab>:set\ et!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!	����-&�������\ (��/��)<Tab>:set\ ai!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!	   &C-�������\ (��/��)<Tab>:set\ cin!

" Edit/Keymap
menutrans None ���\ �����������

" Tools menu
menutrans &Tools	&������
menutrans &Jump\ to\ this\ tag<Tab>g^] �����\ ��\ &���\ ������<Tab>g^]
menutrans Jump\ &back<Tab>^T	 �����\ &������<Tab>^T
menutrans Build\ &Tags\ File	 �������\ &��������\ ������
menutrans &Spelling	 ���&�����
menutrans &Folding	      &�������
menutrans Create\ &Fold<Tab>zf		  �&�����\ ���������<Tab>zf
menutrans &Delete\ Fold<Tab>zd		  �&�����\ ���������<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	  ������\ ���\ ��&�������<Tab>zD
menutrans Fold\ column\ &width		  ������\ &����\ ���������
"menutrans &Diff		      &����������
menutrans &Make<Tab>:make     'mak&�'<Tab>:make
menutrans &List\ Errors<Tab>:cl     ������\ &�������<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!  ��&����\ ������<Tab>:cl!
menutrans &Next\ Error<Tab>:cn	    �&�����\ ������<Tab>:cn
menutrans &Previous\ Error<Tab>:cp  ���&������\ ������<Tab>:cp
menutrans &Older\ List<Tab>:cold    �����\ �����&�<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew    ��&��\ ������<Tab>:cnew
menutrans Error\ &Window	    ������\ ��\ �&�������
menutrans Se&t\ Compiler	    �&������\ ����������
menutrans &Convert\ to\ HEX<Tab>:%!xxd	   ��������\ �\ &ŵ��<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r    ��&���\ �\ ���������\ �����<Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu	�������\ ����&�����\ ����������\ �\ �����

" Tools/Spelling
menutrans &Spell\ Check\ On	&�����\ �������\ ���������
menutrans Spell\ Check\ &Off	&������\ �������\ ���������
menutrans To\ &Next\ Error<Tab>]s	���\ ��\ &������\ ������<Tab>]s
menutrans To\ &Previous\ Error<Tab>[s	���\ ��\ &���������\ ������<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	��������\ ���&�����<Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall	�&�����\ ��������<Tab>:spellrepall
menutrans Set\ Language\ to\ "en"	�������\ �����\ ��\ "en"
menutrans Set\ Language\ to\ "en_au" 	�������\ �����\ ��\ "en_au"
menutrans Set\ Language\ to\ "en_ca" 	�������\ �����\ ��\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" 	�������\ �����\ ��\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" 	�������\ �����\ ��\ "en_nz"
menutrans Set\ Language\ to\ "en_us" 	�������\ �����\ ��\ "en_us"
menutrans &Find\ More\ Languages	�������\ ���\ ������ 

" Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi   &������/�������\ �������<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	  &������\ ���\ ��\ ��������<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx ������\ &����\ ���\ ��\ ��������<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm   &�������\ ����\ ����������<Tab>zm
menutrans &Close\ all\ folds<Tab>zM    �������\ �&��\ ���������<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr    ������\ ���&�\ ����������<Tab>zr
menutrans &Open\ all\ folds<Tab>zR     �&�����\ ���\ ���������<Tab>zR
menutrans Fold\ Met&hod		       &�����\ �������
menutrans Fold\ Col&umn\ Width	������\ ������\ ������\ ����������

" Tools/Folding/Fold Method
menutrans M&anual	&�����
menutrans I&ndent	&���������
menutrans E&xpression	&�����
menutrans S&yntax	&��������
"menutrans &Diff
menutrans Ma&rker	&������

" Tools/Diff
menutrans &Update	&�������
menutrans &Get\ Block	&��������\ ����\ �����a
menutrans &Put\ Block	���&����\ ����\ ������

" Tools/Error Window
menutrans &Update<Tab>:cwin   &�������<Tab>:cwin
menutrans &Open<Tab>:copen    &������<Tab>:copen
menutrans &Close<Tab>:cclose  &�������<Tab>:cclose

" Bufers menu
menutrans &Buffers	   &������
menutrans &Refresh\ menu   &�������
menutrans Delete	   &������
menutrans &Alternate	   �&�����������
menutrans &Next		   &������
menutrans &Previous	   &���������
menutrans [No\ File]	   [����\ ��������]

" Window menu
menutrans &Window		    &������
menutrans &New<Tab>^Wn		    &����<Tab>^Wn
menutrans S&plit<Tab>^Ws	    &������<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^    ������\ ��\ &�������������<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv   ������\ &��������<Tab>^Wv
menutrans Split\ File\ E&xplorer    ������\ ��\ �������\ &��������
menutrans &Close<Tab>^Wc	    &�������<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo  �������\ &������<Tab>^Wo
"menutrans Ne&xt<Tab>^Ww       &������<Tab>^Ww
"menutrans P&revious<Tab>^WW	  �&��������<Tab>^WW
menutrans Move\ &To		    ���&�����
menutrans Rotate\ &Up<Tab>^WR	    &������\ ������<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr     ������\ �����&�<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=	    &����\ ��������<Tab>^W=
menutrans &Max\ Height<Tab>^W_	    ����������\ &������<Tab>^W_
menutrans M&in\ Height<Tab>^W1_     ������&���\ ������<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|	    ����������\ &������<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|     ���������\ ��&����<Tab>^W1\|

" Window/Move To
menutrans &Top<Tab>^WK		 &���<Tab>^WK
menutrans &Bottom<Tab>^WJ	 &�������<Tab>^WJ
menutrans &Left\ side<Tab>^WH	 �&����<Tab>^WH
menutrans &Right\ side<Tab>^WL	 �&�����<Tab>^WL

" The popup menu
menutrans &Undo		      &�����
menutrans Cu&t		      &�����
menutrans &Copy		      &������
menutrans &Paste	      &�����
menutrans &Delete	      �&������
menutrans Select\ Blockwise   ����\ �&��������
menutrans Select\ &Word       �������\ &���
menutrans Select\ &Sentence       �������\ �&�������
menutrans Select\ Pa&ragraph       �������\ &��������
menutrans Select\ &Line       �������\ �&��
menutrans Select\ &Block      �������\ &����
menutrans Select\ &All	      �������\ &���

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open     �����
    tmenu ToolBar.Save     ������
    tmenu ToolBar.SaveAll  ������ ���
    tmenu ToolBar.Print    ������
    tmenu ToolBar.Undo     �����
    tmenu ToolBar.Redo     �������
    tmenu ToolBar.Cut      �����
    tmenu ToolBar.Copy     ������
    tmenu ToolBar.Paste    �����
    tmenu ToolBar.Find     ����
    tmenu ToolBar.FindNext ���� ������
    tmenu ToolBar.FindPrev ���� ���������
    tmenu ToolBar.Replace  ������
    tmenu ToolBar.New      ����
    tmenu ToolBar.WinSplit ������ ������
    tmenu ToolBar.WinMax   ���������� ������
    tmenu ToolBar.WinMin   ��������� ������
    tmenu ToolBar.WinVSplit   ������ ��������
    tmenu ToolBar.WinMaxWidth ���������� ������
    tmenu ToolBar.WinMinWidth ��������� ������
    tmenu ToolBar.WinClose ������� ������
    tmenu ToolBar.LoadSesn ����� ������
    tmenu ToolBar.SaveSesn ������ ������
    tmenu ToolBar.RunScript   ������ ����
    tmenu ToolBar.Make     'make'
    tmenu ToolBar.Shell    ���������� �������
    tmenu ToolBar.RunCtags ������� ������
    tmenu ToolBar.TagJump  ��� �� ������
    tmenu ToolBar.Help     ����
    tmenu ToolBar.FindHelp ���� ������
  endfun
endif

" Syntax menu
menutrans &Syntax &��������
menutrans &Show\ File\ Types\ in\ Menu  �������\ ������\ ��������\ �\ &�����
menutrans Set\ '&syntax'\ only   ����&��\ ����\ 'syntax' 
menutrans Set\ '&filetype'\ too  ������\ &������\ �\ 'filetype'
menutrans &Off       &��������
menutrans &Manual    &�����
menutrans A&utomatic    &����������
menutrans on/off\ for\ &This\ file     ��/��\ ��\ ���\ &��������
menutrans Co&lor\ test     �������\ &���
menutrans &Highlight\ test �������\ ����&���
menutrans &Convert\ to\ HTML  ��������\ &�\ HTML

" dialog texts
let menutrans_help_dialog = "������� ������� ��� ��� ��� ������ �������:\n\n������ i_ �� ������� ����� (���. i_CTRL-X)\n������ c_ �� ������� ��������� ������ (���. �_<Del>)\n������ ' �� ����� ����� (���. 'shiftwidth')"

let g:menutrans_path_dialog = "������� ��� �������� �� ��������\n��������� �������� ����� ������������."

let g:menutrans_tags_dialog = "������� ����� �������� �� ��������\n��������� �������� �����."

let g:menutrans_textwidth_dialog = "������� ���� ������ ������ (0 �������� ������)"

let g:menutrans_fileformat_dialog = "��������� ������ ������ ��������"

let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&������"

let menutrans_no_file = "[���� ��������]"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: tw=0 keymap=serbian
PK�j�Zz=,�`�` vim80/lang/ko/LC_MESSAGES/vim.monu�[������8�	�q��
��	�'�/G�w�����L��:�A�N�+V���"����њ5��4�P�m�|����;a�����Ҝ����"�1�G�b�z�0��./�0!�
R�`�v���
����
ʞ$՞$��� 0�Q�@`�D�����"�<�"[�~�����@�����#�4�D�S�/f�,��áݡ���0�1K�1}���Ģ٢��-�=�]�r�������ѣ3�3�Q�n�������ɤ
�����&�9�
Q�$_��� ����ɥ;��,�#9�	]�g�������
����Ϧ���	�&�.�6�!H�j�y��������� ��,�F�f�o�x�
����6��Ҩ��!'�I�
Q�_�	l�v�������&��	ө"ݩ*�+�
C�Q�W�c�p���
��
����
����ͪߪ�5�<�-N�1|�&��ի���'�;�P�k�$}���
����Ѭ����$�7�K�[�s�����������ͭ
ݭ����
��.�7>�v���������������Ю=Ԯ2�E�N�T�]�'n�-��2į���?-�m���+��ư	հ߰���-0�$^���
������ұޱ?��5�2D�!w�%��@��9�E:�9��C��K��IJ�H��;ݴ6�8P�3��<��4��-/�6]���%��Զ����1�&A�,h�#��4�� �@�-P�0~�:��;�&�"F�i�>z�)��>�<"�_�k�#��:��'�9�L�$e�9��4Ļ;�� 5�>V�1��/Ǽ��-�B�.Q�B��"ý2�4�*N�y�+��%þ'�(�<:�Ew�.��-�$�?�<X���*��&� �4"�W�h�z��������������

��!�")�L�X�g������)����$���)�1�J�1c�?�����������!�7�R�e�X~�%������:�S�l���������$����!��!�?�E�U�Y�w�"��$����#�� �'�6�F�f�x��� ����4���	1�;�
H�
V�.a���-����-��$$�.I�x�.������
��O��OD�
��C��	������!�3�9�W�3\�2��!��(��� '�"H�Ek���%��#��-�F�d���&����������7�'O�w�)��+��@��-)�W�5t���������/�9C�}�E����-��7)�#a� ��:��5��&�">�&a�$��#��!��=��51� g�(��7��.��,�E�a�v��� ��#��&���&�>�Y�w�������0��$�!A� c�(��4��,���+�>�T�l� ������1���!(�%J�%p�!��%����$�� �=�Y�?t�&��#����
�A)�%k�"��"��9��'�(9�2b�*��!��!��)�%.�!T�4v�:��&��;
�;I�)��0�������4�F�#_�!��8��&��#�)� A�/b�"����-������/6�*f�(��#�������2�N�>j�������"���6�L�h�#���9��1��1*�)\�1��%��7���A0�?r�������!��!�=�X�4w�$��)��N��,J�&w�L������80�i����#��7��N�d�����$��!��3��,3�2`�%����"����#�9�X�u���B����0�!=� _�<��+����	�+�2J�$}���,����H�,Q�~���"�������2�Q�9p�������0��#'�'K�s���,��&����
�+�2H�-{�(����"��'�'6�,^���.����#��,�WB�)��"��,��%�:� W�x�2��2��2��*�!G�i���2��5��'�#(�)L�3v�$��%����,�A�a�$y�&�� �'�*�#9�']�%����3�!��!�+@�l�*��-��$�
�)�H�d�w� �� ��$�$��)�H�`�,v�����%���=�W�s�����'���$%�#J�0n�.��0����<�W�o�����-�� ��7�)S�}�$��(����%�$7�\�{���'���'� ;Sm �7�0�#.R"r(�!��-�1,6^5��.�*1@9r�*�&�+,J+w4�<�*@Vn������"8Kb}����
$@Tp�:�=�<6U<��"�	+	)F	4p	5�	4�	3
D
0V
 �
�
D�
P%Qw����6!Tv�����	
'&
N
a
!�
�
�
"�
�
1BYv"�����&9Rg������#=*\)��� ��*6C#z�)�&�KW j�����%"?&b#���+�%795q��,�&A)W �����	%D`0x����4.P$)�1�;<.L*{�$��%,,Y%j���&�-&/V r�+� ��?
)Mw6�#�2�9>Y8�1�)!)K u)��)�*"0S#l"�"�)� %> d$���!�0	 : S n � "� !� 9� 8%!/^!�!�!�!+�!%"1+")]"�"�"'�"%�"#&#!A#%c#'�#%�#'�#-�#2-$`$u$$�$�$�$�$"
%-%M%!m%1�%&�%�%!&!'&I&(^&�&�&+�&8�&&'7E'E}'�'�'(�'0(#I(m($�(�(#�(*�()+)>)0X)2�)0�)�)+
*)6*$`*/�*�*�*'�*)+,1+^+ |+�+�+-�+,,-,/F,+v,'�,!�, �,0
->-!V-,x-�-�-(�-�-.0%..V.�.1�.&�.:�.9/9V/:�/�/�/0#0*A0l03�0�0%�02�0011!b1;�1R�12*22]2v2(�2�2+�2+3.3 I3"j3%�3 �3+�3"4+#4O4.o44�4I�4)5)G56q56�5-�5(
6/66&f6<�6)�6*�6797P7*o7�7�70�7/8!58*W8�8�8$�8#�8#9'9F9/f9�9!�9%�9"�9.!:$P:&u:T�:#�:";$8; ];~;�;#�;]�; ><B_<'�<�</�<2=,J="w=�=&�=(�=%>*>I>g>E�>!�> �>7
?E?%[?�?'�?�?'�?@.@<D@�@"�@'�@�@A+AIA(cA!�A�A7�A!B%'B/MB!}B�B'�B�B)C;0ClC)�C&�C�C�C'D:D	BDLDdDsD�D�D#�D	�D�D�DE.%ETE.kE6�E�E�E6�E#"F
FF&QF	xF�F�F�F�F�F �F%	G!/G
QG\G(rG�G+�Ga�GBHQHWH(^H
�H	�H%�H
�H�H&�H&I9I(VII	�I�I	�I�I�I�I�IJ	!J2+J*^J�J�J�J�J�J
KK	 K*K6K#BK(fK�K�K	�K�K�K�K	L2LDLPLoL�L�L�L$�L�L/�L#M+M'.MVMlM
�M$�M�M�M�M�M�M	NN!,NNNmN(vN�N'�N�N�N�N�NO O#@OdOwO�O.�O
�O�O	�O�OP)P?P'ZP�P�P
�P�P�P�P�P�PQ2QHQ`QvQ�Q9�Q9�Q#R:RBROR
[RiR(�R�R�R�R�R
�R	�R�RS*SESTS9aS
�S�S�S�S�S&	T0TOTnT�T	�T�T�T�T
�T�T)�T&UFU\UFxU�U�U�U�UVV(VGVaV~V�V�V�V�V�V0�V;"W>^W�W�W�W1�W"X>XBX\XA|X)�X=�X&Y(CYlYtY$�Y0�Y�Y�Y�Y+Z20ZcZxZ�Z�Z�Z	�Z�Z��Zo[F�[�[
�[	�[
�[�[+\:\%P\0v\B�\(�\]1/]+a]*�]&�]9�]M^>g^)�^5�^A_4H_$}_*�_A�_A`&Q`6x`�`<�`<�`?1a7qa/�a �a"�ab22b0eb�b�b�b�b�bc)cHc^c2xc)�c+�c,d-.d \d!}d#�d�d�d�d�d�de	(e2e;eJeQele�e�e�e
�e
�e�e	�e�e�ef	f"f
2f@f
Ef	Sf]f	ifsf�f
�f�f&�f�f�f�f�f
�f�f
ggg!g(g,g2g8gGg9Mg"�g$�g"�g)�gh+h2hLhchuhyh1�h
�h$�h"�hi<6isi'�i!�i�i�i�i
j,jH9jC�j�j�j�jk"k=kDkLkRkZkkk�k �k#�k-�k-	l7lIlel�l�l�l�l=�lm"m
7m$Emjm$|m�m�m�m�m�mnn-nBn
]nkn}n�n�n
�n�n�n�n�noo/-o]o
lo zo �o�o
�o�o�o�op&pFp	^php�p�p�p�p�p�p�p�p�p#q1$q1Vq1�q1�q�q�q	�q
r(r<rOrRrirzr
�r�r
�r�r�r'�r s3sIs`s	{s�s"�s�s�s$�s$t(t/tAtJt
Ztht~t�t�t�t�t�t.�t.u.Ju.yu.�u.�u.v.5v dv�v�v�v�v�v�v"�v)w)5w_w	hwrw�w�w�w�w�w�w�w		xx$x9xMxbx3ox*�x�y�y	�y�y*z+/z[zsz�z#�z4�{
�{	|+|<|(Y|�|�|0�|�|�|	}
&}4}�C}9~;~N~d~
z~
�~�~
�~�~�~�~�~$!4$V${
����"��
6�$A�$f��� ����:ǀ@�C�R�n�����ā
ہ�A��#7�
[�
i�w�����1��$܂��;�L�&^�6��6�����0�)H�r�������˄��*"�"M�p�������Յ�	����5�F�Y�
w�#���� ��ֆ�;�G�Y�f���������	ȇ	҇܇���,�	J�T�	\�
f�q�
������ÈɈ�	����1�H�P�V�^�k�:x���Ɖډ�
��"�	/�9�P�X�]�&b���%��*�����
���)�@�F�
R�]�
f�q�	~���.��8Ƌ��/�,D�%q�����Ì׌��"+�N�/`���������֍����"�6�J�b�s�|�������	����َ	����".� Q�/r�
����
ˏ
֏�����N �Eo�
����ɐې6��--�2[�����JƑ�/�%@�f�x�������,Ւ(�+�F�
O�]�
q�|�1��
��.̓%��/!�7Q�2��:��5��:-�Oh�B��?��2;�8n�9��/�:�.L�%{�1��ӗ���+�B�Z� i�'��'��6ژ#�65�-l�)��8ę9��7� S�t�8��*��=�,%�R�!Z�|�*��*ƛ<�.�$I�;n�3��6ޜ�<5�3r�,��ӝ.�!�$2�<W�!��*��*�-�&:�*a���&�� џ7�A*�2l�&��$Ơ�9�@�"Z�(}���1š��� +�L�S�h�
{�����
����
ƢԢ
ۢ/�
�
!�,�J� h���#��ɣ&ң
��
��/�(L�@u���
ǤҤؤ�� �<�$S�]x�%֥����=�Y�u���	����Ħ#̦
�$��#�;�?�O�%T�z���$��ҧ*���*�$:�_�r�����!è=�#�5�=�E�
N�%Y��$����*֩*�%,�"R�)u�����	��W˪W#�{�5����«˫߫�����.�-G�u�����Ŭ+�I�"X�&{�)��9̭��5�%S�y�������Ү�.��-�$C�h�1��-���8�;�U�j���9��4ذ
�L*�w�2��2��'�*�:F�,��-��+ܲ*�(3�)\�%��>��7�*#�-N�,|�/��(ٴ-�0�A�[�'o�'��/���� �:�U�p���#��6ƶ$��,"�'O�%w�;��3ٷ*
�8�I�\�w�/��$��#�3�<�Y�,p�����#ٹ���:�U�k�1��$��'ٺ�
 �>+�1j���)��.�0�+@�1l�(��"Ǽ*�*�'@�,h�9��6Ͻ'�..�5]�/��0þ"��.�"C�f�0{���8˿%�*�G�#b�5��)���.��)�=�X�$h�$������
�(,�U� u�D��!�����)+� U�v�����%����7�=?�=}�6��3��)&�1P���0��B���&�$<�"a���$��#��<��+#�O�Wo�1��'��U!�w�����@������$4�?Y�R����!� .�&O�%v�/��/��5��-2� `�6��"��6�� �"3�"V�"y�>��"��1��)0�'Z�9��/��'���.2�$a�$����A��
�A$�.f�����'�����5�S�$q�:������(�84�%m�.��
��*��2��'+�S�h�3��4��0��0�!M�2o�.��4��8�?�'X�����'��S��18�+j�;��5��!�!*�L�5f�5��5��&� /�P�f�/z�1��*���3'�9[�#��.����� �(?�h�,��-�� ��5�38�.l�8����+��A �b� ��4����)��'�(F� o���������'��'�0?�-p�+������$���$5�(Z���6�������)�1H�z�%��"��,��,�*8�6c�����������3�+H�t���8��1���$3�,X�'����,��+��(�>�"Y�*|�$��*�����1�G�`�5~�2��"��
�$'�+L�-x�"����/��;�@S�?�� ��<��$2�>W�:����(��/�3G�){�*��*��.��/*�Z�v��������������'�;�Z�n� ��'���� ��!�8�W�$u���������;	�:E�<��:��A��!:�(\���2��4��5�.=�:l�7����7��'0�X�:r�E��)���:�#W�{�����%����
�"(� K�l�������!��-���'1�,Y�$��������7�� 0�Q�h�}�����$��"���(�:�R�j�~������������*�#G�1k�0�������5�E�=]�&���6�%�T<������$��'� F�g�#��,��/�,�5�%M�,s�$��2�0��)�I�:i������%��.�%G�!m� ��%��$�"��"�0A�r���(���5�3�1R�'��;��D�-�-=�.k�!��+�� �*	�14�f�#w����� �'�4%Nt6��;�">8Y0�%�(�)1<-nD�8�8S"m�(�#� �"">$a�!���,�%>(^�!�"��0"Sh��#��/�*% P$q ��4�2�/.)^�� �%�	+ 	L	 g	"�	 �	"�	0�	* 
K
\
 y
�
!�
�
"�
''Dl4�#��'�'D/`��6�2�1
)L
Ev

�
�
0�
-Ed"{�,�#�!4.V.�%�,�'(/&X3��%�*(7#`��!�"�%�#'B+j��"�5�*'I+q��)��+2I"|8�%�5�#4AX5��&�0$N$s5��'�)
24#g*�Y�#*4!_#�(��0�.J!i�(�&�)�#(A&j5�E�F
(T(}>�>�+$)P2z+�:�+&@g#}#�.�!�.1/`�)��&�%$>$c%�*�2�* 7 #N %r +� $� 3� Z!2x!�!$�!)�!("&;",b"a�"!�"P#(d#�#0�#/�#"$1$L$+g$.�$&�$#�$&
%%4%KZ%*�%)�%;�%7&,U&"�&&�&�&.�&'5'9M'�'$�')�'�'
(-'($U(2z( �(�(*�($)$6))[)�)"�)0�) �).*:F*�*(�*+�*�*!+%4+Z+a+m+�+�+�+�+�+�+
�+
,$,33,g,8},>�,�,�,5
-@-	U-&_-�-
�-�-�-�-	�- �-%�-.:.?.(Q.!z.4�.P�."/8/=/-D/
r/	�/&�/�/!�/!�/#0#(0&L0s0	�0�0	�0�0�0�0'�0116#11Z1%�1�1�1�1�12
22'2.2!=2&_2�2	�2�2�2$�2
�2�2,3-3<3$[3�3�3�3*�3 �30�3%4+4*24]4u4�4/�4�4�4
5!5:5N5c5|5#�5	�5-�5�5 
6+606
C6
N6 Y6+z6,�6�6!�6	737	B7L7
_7!j7�7�7�7(�7�7
88'8>8V8[8q8�8�8#�8�8%�89649<k9�9�9�9�9�9�9-
:8:K:
^:	l:	v:	�:�:�:�:
�:�:9�:&;2;E;a;x;0�;/�;/�;/<N<e<l<
�<�<�<�<0�<3�<=5=OH=�=�=�=�=�=�=&�=>5>P>d>q> �>�>�>)�>0�>;,?h?�? �?6�?�?@@*@CJ@&�@4�@�@#A+A0AAA(`A	�A�A�A)�A8�AB	6B@BVBcBrBzB��BCI,CvC~C�C�C�C/�C�C#D')D?QD�D�D.�D-�D&+E+RE:~EG�E:F&<F2cF=�F=�FG)/G>YG>�G(�G&H'HB,HBoHC�H6�H%-I!SI/uI�I3�I+�IJ.JLJlJ{J�J�J�J�J/�J&.K(UK)~K*�K#�K�K-L ELfL�L�L�L	�L�L�L�L�L�L�LMM
$M	2M	<MFMOM [M|M�M�M�M�M�M�M	�M�M�M
NN N,N"3NVN	cNmNrNzN�N
�N�N�N�N�N�N�N
�N�NA�N#$O(HO!qO$�O�O�O�O�O�OPP2+P^P$kP+�P �P2�PQ(&Q"OQrQ�Q �Q%�Q�Q;�Q?2RrR�R �R�R�R�RS
SSS $SES(]S+�S.�S.�S
TT>T]TmT�T�T9�T�T	UU*U
CU)QU{U�U �U�U�U�U
VV#V
AVLV^V~V�V	�V�V
�V�V�V
�V�V3�V/WEW$\W%�W�W�W�W�W�W
�W(X-X	HXRXpX�X�X�X
�X�X�X�X	Y#Y66Y6mY6�Y8�YZZ	&Z
0Z&;ZbZzZ�Z�Z�Z
�Z#�Z
�Z[[8[X[o[�[�[�[
�[ �[�[�[�[\9\@\]\d\p\�\%�\�\�\�\]]6]6N]6�]6�]6�]6*^6a^6�^&�^�^__"_2_>_(M_%v_'�_�_�_�_�_
�_`
`	#`-`	=`G`L`X`h`w`	�`&�`V�����D���Ch�h��L���&����0�	��A�_�*�������r��5i)7�du
���n-�/��]��!�8�y��=��& y�#����'���J��Pv�:	7Z
H>��Uo�X��m|����Bhv��W��HWQ���c�6��S;e �!�?��sq2�x���� �"j4��.��N4g)w����y��\85w^��^V�U��E�����"���O�J	���C��]��L��TW��<���<vK�������4�Lm�uA\�P��ta�����=#j��`:�#����~��cp��r��������s��(��n���$��}lr!�GqVy������^TuKO[�-�?}�����C���/��+D�{���[��/;>�6(3�bv�"��/�p�m��k�0_�^S�.�Qa���PI�N ��XZi�����"\V�����]�
��O��F���%�a�@������������	5���ek!��o.�h����qm����f��1FT�aSa�����1��Q�q+37��4��*%���oax��/�<�F�����p����q�h�{7�pY���J���%2 3^���[�dH-u;�M8�=+JX
��,�
��E�	�����b�����G8�|����������JnH�G!�De7���g��t+%��z�xu��$��iR\1@=����>[rW`�]:�MOPctZM���j�{��j aE�6���gJ��Y8lC��O�`���i��&������J���P*R���������9z,AS#�0���	>�LdjC��R�W����B4�����	=�����<(nwf�����_<����0�l-�4*�G9��������2d��KX,�I����~e�U��W2l}v�����>��2A[�
F&�����l��z~n��6T���R�}��+���s�TI����]�k���B���.�E�k�P~����NZ�,�������$�C�B�}��o��p#:(�3q�k�d!��Uc�m���?I�@;�G�Hz�3=���"�%)������0�����7��~���t�������b���5@��c9�5��}Ad/,.�<��M�j�%��{�<G����n����{N9`����X��t
�A�N_$�\������0�d�,�M.��L�5��Z9m��*Y>���g�)��u�UwZz"b��1�X8�K�')f�?����\fD;6Y�[x��sr�g��'lo������2�K��7���DBE��k�`�j�����I{���
�'�p����E�b��t�)����
�@%��������O���n�G���������(_~���0����N�������5�MQ��o��we|��q2�x��t��9�T��?v�c�Z
]��ys�m������x��
�fOux��-(~#BA\��]V#�L����S�}���[��
�&b����������'�gU��bF)�;X�8M��Fw�Y$I��(	c���1�H�@������osw^P��:|;����$|e��R��zp_�*SVI���>��������L�F
�@���+���-�Wr�Q�i�6&`�:���f�Y��3��
Q i������1��,�*��iQ�������K
�`���&h��N�CD�z��s��U���-9�k�y?�����!�v�_���"R�|���E�������+|3��T��g?���.�����'r{h��=1����l/4���
Sf��'R^BV������eYH�$D6��y:K
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

You may want to delete the .swp file now.


enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in line %ld; info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv)-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Could not open temporary log file for writing Cscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE846: Key code not setE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE855: Autocommands caused command to abortE85: There is no listed bufferE862: Cannot use g: hereE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE872: (NFA regexp) Too many '('E877: (NFA regexp) Invalid character class: %ldE879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:Garbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)QuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelectionSending to printer...Show connectionsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror handlerexpressions disabled at compile timeextend() argumentfailed to add key '%s' to dictionaryfailed to change directoryfailed to rename bufferfailed to run function %sfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhelphidden optionin path ---
insert() argumentinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist index out of rangelist is lockedlogoffmap() argumentmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command linereadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim listunable to get option valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-12 14:52+0900
PO-Revision-Date: 2017-07-12 18:56+0900
Last-Translator: SungHyun Nam <goweol@gmail.com>
Language-Team: GTP Korean
MIME-Version: 1.0
Content-Type: text/plain; charset=euc-kr
Content-Transfer-Encoding: 8bit

	Last set from 

���:


���:
          ����: 
         [�� ��ǻ�Ϳ����� ����� �� ����]
         [�� �̹� �ǿ����� ����� �� ����]
         ȣ��Ʈ �̸�: 
         ���� �̸�: 
        ���� ID: 
       a: �� ��ȣ�� ���� �Ҵ� ã��
       c: �� �Լ��� �θ��� �Լ��� ã��
       d: �� �Լ��� ���� �ҷ����� �Լ��� ã��
       e: �� egrep ���� �
       f: �� ��� �
       g: �� ���� �
       i: �� ���� #include�ϴ� ��ϵ� ã��
       s: �� C ��ȣ ã��
       t: �� ���ڿ� ã��

    �̸�        ���       �ּ�      �ϼ�      ����
   #   ��
   Ȥ��:
  # TO tag         FROM line  in file/text
 ��� ���  col ���/�ؽ�Ʈ
# %s ����丮 (���ͺ��� ������ �� ��):

# ���� ���:

# ��� ��ũ:

# ��ϳ��� ��ũ ����丮 (���ͺ��� ������ ��):

# ������ (����� ���):

# Last %sSearch Pattern:
~
# ���������� �ٲ� ���ڿ�:
$
# ��������:

# ���� ����:

(1) �ٸ� ��α׷��� ���� ���� ��ġ�� �ִ��� �� �ֽ��ϴ�.
    ���� �׷��ٸ� ���� ���� �� ���� ��α׷����� ��ġ�� �ʵ���
    �����Ͻñ� �ٶ��ϴ�. �����ϼ���. ����Ͻ÷��� ����ϼ���.

(��¼�� �ٸ� �̸����� �����ϰ� ����� ���� �𸣰ڽ��ϴ�

--- �ڵ�-��� ---
--- ���� �ɼ� �� ---
--- ���� �ɼ� �� ---
--- �޴� ---
--- �ɼ� ---
--- �������� ---
--- ��ȣ ---
--- Syntax �׸� ---
--- Syntax sync �׸�� ---
--- �͹̳� �ڵ� ---
--- �͹̳� Ű ---
gvim�� �˰� �ִ� ��� (���׳� ��):

gvim�� �˰�ִ� ��� (GTK+ ��):

gvim�� �˰� �ִ� ��� (��Ƽ� ��):

gvim�� �˰� �ִ� ��� (neXtaw ��):

Big ���� 
������ ���� �� �����ϴ�

Cannot execute shell 
�� sh�� ������ �� �����ϴ�

�ڽ� ��μ����� ���� �� �����ϴ�

���� ����������ϴ�

Compiled 
Could not get security context for 
Could not set security context for 
������ ��ġ: 
Found a swap file by the name "
Huge ���� 
���ο� ��ȣ Ű�� �Է��ߴ� ��, ���� ������� �ʾҾ��ٸ�,
��ȣ Ű�� �ٲ� �Ŀ� ���� �����߾��ٸ� ���� Ű�� �ؽ�Ʈ ��ϰ�
��Ե� ��ġ: 
MS-Windows 32��Ʈ GUI ����
MS-Windows 32��Ʈ �ܼ� ����
MS-Windows 64��Ʈ GUI ����
MS-Windows 64��Ʈ �ܼ� ����
MacOS X (���н�) ����
MacOS X ����
MacOS ����
� ������ �����ų� ���� ���� ���� ������� ��� �� �����ϴ�.
�� ���� ������ ���Ͻø�: "vim -h"

Normal ���� 
OpenVMS ����
Small ���� 
Tiny ���� 
��: X ������ �����ϴ�

���: ���� ���� �����ų� ������ �� �ֽ��ϴ�

��� .swp ���� ����ŵ� �˴ϴ�.


���ο� ��ȣ Ű�� �Է��ϼ���.
��ũ ���  col ���/�ؽ�Ʈ
shell returned 
syncing on items
�������� �����Ϸ��� ���͸� ��������                          Vim�� �⺻������ �����մϴ�                          �� ��带 ����� �� �ֽ��ϴ�              ��¥:           �����:          [�� �� ����]         [��� �� ����]         [�� ���� ��Ϸ� ����� �ʽ��ϴ�]         [�� 3.0 ��� ��]         ��� �̸�:        defaults ���: "      -- ���� --
      NEWER than swap file!
         ���� exrc ���: "        ���� vimrc ���: "    ���� �׷��ٸ� ":recover" Ȥ�� "vim -r     �̹� �����ϼ̾��ٸ� ������� "    ��=%ld  id=%d  �̸�=%s    �ý��� �޴� ���: "       ���� gvimrc ���: "   ��� ���丮��:
   In directory    ��õ� �̸��� ���:
   ��¥:   ȣ��Ʈ �̸�:         �ý��� vimrc ���: "  # pri kind tag  (Already listed)  ���� �� ��° exrc ���: "  ��� ���  ��� (+: ��Ե�, -: ��� �� ��):
  �� ã���  Using tag with different case!  fall-back for $VIM: "       �ý��� gvimrc ���: " # pid    �����ͺ��̽� �̸�                   prepend path
 (�ߴܵǾ����ϴ�) (�� ã���) (����� �¾Ҵ� ��� ���) (�����ֱ�) (�����ֱ�) ��ũ�� (^E/^Y) (��� ������) (������� ���) (��̱�) (�ٲٱ�) (�ٲ�) ��ũ�� (^E/^Y) (��� �����) (����ġȯ) ���� �� ��° vimrc ���: " ���� �� ��° vimrc ���: " < "%.*s" ���ϱ� �ƶ��� ��ȯ ���� ����� �ϼ� (^V^N^P) ���� %d / %d ���� �ϼ� (^D^N^P) Dictionary �ϼ� (^K^N^P) ���� ��� �̸� �ϼ� (^F^N^P) ���� �����ֱ� ���� ���� �ϼ� (^N^P) ���� �ϼ� (^N^P) Omni �ϼ� (^O^N^P) ��� ���� �ϼ� (^N^P) �ٲٱ� �ݴ� ���� ��� ���� ��� ���� SPACE/d/j: ȭ��/����/��� �Ʒ���, b/u/k: ����, q: ����  �ܾ� ���� (s^N^P) �±� �ϼ� (^]^N^P) ���� �ϼ� (^T^N^P) ���� ���� �ϼ� (^U^N^P) ��־� ��־� ��� ��־� ��� ����ġȯ ��ü �� �ϼ� (^L^N^P) [�ٲ�] [a] [w] ^X ��� (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) ���߽��ϴ� �� ��ǻ�Ϳ����� ���� �� �����ϴ�.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: "%ld �ٿ���; ��� kind file
 line breaks lines before top line ��ũ %ld �ٿ��� �� �ٿ��� or more returned
 vim [���]  OLE ���� ���� �߽��ϴ�"
    ��(��) ����ž� �� �޽���� ���ϴ�.
"
    �� ����Ͽ� �����Ͻʽÿ� (":help recovery" ���).
"�� �̹� �����մϴ�!# �� viminfo ���� ���� ���� ��Դϴ� Vim %s.
# �� ���� ����Ǿ��� ���� 'encoding'�� ��
# ���ɸ� �Ѵٸ� ��ĥ ���� �ֽ��ϴ�!

%-5s: %s%*s (���: %s)%3d  %s %s  %ld ��%<%f%h%m%=���� %N���� %d ���� ���������ϴ����� %d ���� ���������ϴ����� %d���� ���� ���������ϴ�%d���� �ߺ��� �ܾ %s�� �ֽ��ϴ�%d ���� ��ġ��
��ĥ ���� %d �� �� �ֽ��ϴ�. �׷��� �������?%ld %s; %s #%ld  %s%ld ��; %ld ���� ���� ��%ld lines %sed %d times%ld lines %sed 1 time%ld �� --%d%%--%ld lines changed%ld ��� �ɷ����ϴ�%ld lines indented %ld �� �Ű�����ϴ�%ld lines to indent... %ld lines yanked%ld ��, %ld�� ã���%ld ���� ���� ��%ld seconds ago%ld�� �ٲ�%lld ���%s��(��) ����Ǿ����ϴ�%s��(��) ���������ϴ�%s �� %ld%s��(��) pending �Ǿ����ϴ�%s��(��) �簳 �Ǿ����ϴ�%s��(��) #%ld��(��) �����־����ϴ�%s��(��) %s��(��) �����־����ϴ�%s ���� �ٸ� .aff ��Ͽ��� ���� �Ͱ� �ٸ��ϴ�%s, %ld ��%sviminfo: �ٿ� %s: ���(&C)�Ÿ���(&F)����(&H)Ȯ��(&O)Ȯ��(&O)
���(&C)Ȯ��(&O)
��� �ҷ�����(&L)Ȯ��(&O)�б� ������ ����(&O)
������ ��(&E)
����(&R)
��(&D)
������(&Q)
������(&A)�б� ������ ����(&O)
�׳� ��ġ��(&E)
����(&R)
������(&Q)
������(&A)�ٲٱ�(&R)���(&U)��(&Y)
�ƴϿ�(&N)��(&Y)
�ƴϿ�(&N)
���(&C)��(&Y)
�ƴϿ�(&N)
��� ����(&A)
��� ����(&D)
���(&C)' not known. Available builtin terminals are:'-nb'�� ����� �� ����: ������� �� ��Ե�� ���
'dictionary' �ɼ�� ����ϴ�'history' �ɼ�� 0�Դϴ�'readonly' �ɼ�� "%s"�� ���� �����Ǿ� �ֽ��ϴ�.
�׷��� ���⸦ ���Ͻʴϱ�?'thesaurus' �ɼ�� ����ϴ�(%d of %d)%s%s: (2) �� ���� ��ġ�ٰ� �׾������ϴ�.
(�ߴܵǾ����ϴ�) (���)(NFA) %s��(��) �� �� �����ϴ�!+			��� ���������� ���+<lnum>		<lnum> �ٿ��� ���+reverse		��� ��� ��� �� �� (also: +rv)-               ǥ��Է¿��� �ؽ�Ʈ �б�--			�� �ڿ��� ��� �̸���-- �� ---- ã�� ��...--- Included files --������----���ۿ� �� ����----cmd <���>	vimrc ���� �б� ���� <���>�� ����--cmd ���--echo-wid		ǥ����¿� gvim�� Window ID�� ǥ��--literal		��ϵ�ī�带 Ȯ����� ���--noplugin		�÷���� ��ũ��Ʈ�� �ҷ����� ���--not-a-term		�͹̳ο� ������� �� ���ٴ� ������ ���--remote <files>	�����ϸ� �� �������� <files> ��--remote-expr <expr>	�� �������� <expr> �����ϰ� �� ���--remote-send <keys>	�� ������ <keys>�� ������ ������--remote-silent <files>  ����, ������ ���ٰ� ������� ���--remote-tab[-wait][-silent] <files>  --remote�� ������ ��Ϻ��� �� ���� ���--remote-wait <files>  --remote�� ������ �� ��ĥ ���� ��ٸ��ϴ�--remote-wait-silent <files>  ����, ������ ���ٰ� ������� ���--role <role>	��� â ����� ���� ������ ���� ����--serverlist		��� ������ �� ���� �̸��� ǥ���ϰ� ������--servername <name>	�� ���� <name>�� �ǰų� ������ ������--socketid <xid>	���� �ٸ� GTK ���� �ȿ��� ����--startuptime <file>	startup timing �޽���� <file>�� ����--ttyfail		�͹̳ο� ������� �� ���� ��� ����--version		�� ������ ����� �� ������--windowid <HWND>	�ٸ� win32 ���� �ȿ��� Vim ����-A			Arabic ���� ���-C			Vi ȣȯ: 'compatible'-D			��� ���-E			���� Ex ���-F			Farsi ���� ���-H			Hebrew ���� ���-L			-r�� ����-M			�ؽ�Ʈ ������ ����� ���-N			Vi�� ȣȯ��� ���: 'nocompatible'-O[N]		-o�� ������ â�� �������� ������-P <parent title>	Vim�� �θ� ���� ��α׷� ������ ����-R			�б� ���� ��� ("view"�� ����)-S <����>		ù° ���� ��� �� <����> ��� �ҷ� ��̱�-T <terminal>	�͹̳� ������ <terminal>�� ����-U <gvimrc>		.gvimrc ��� <gvimrc>�� ���-V[N][fname]		Be verbose [level N] [fname�� �޽�� ����]-W <scriptout>	��� �Էµ� ���� <scriptout> ��Ͽ� ����-X			X ������ ������� ���-Z			���ѵ� ��� ("rvim"�� ����)-b			��� ����-background <color>	��� ������ <color> ��� (also: -bg)-boldfont <font>	���� �ؽ�Ʈ�� <font> ���-borderwidth <width>	����ڸ� ��̿� <width> ��� (also: -bw)-c <���>		ù° ���� ��� �� <���>�� ����-c ���-d			Diff ��� ("vimdiff"�� ����)-dev <��ġ>		I/O�� <��ġ> ���-display <display>	���� Ư�� X-������ ����-display <display>	���� <display>���� ����-display <display>	���� <display>���� ���� (also: --display)-e			Ex ��� ("ex"�� ����)-f			â�� �� �� newcli ������ ���-f Ȥ�� --nofork	��׶���: GUI�� ����� �� fork��� �� ��-font <font>		�Ϲ� �ؽ�Ʈ�� <font> ��� (also: -fn)-foreground <color>	�Ϲ� ���� <color> ��� (also: -fg)-g			GUI�� ���� ("gvim"�� ����)-geometry <geom>	�ʱ� ������Ʈ���� <geom> ��� (also: -geom)-h Ȥ�� --help	����(�� �޽��)�� ����� �� ������-i <viminfo>		.viminfo ��� <viminfo>�� ���-iconic		����� ���·� �� ���-italicfont <font>	���� �ؽ�Ʈ�� <font> ���-l			����� ����-m			����(��� ����)�� ����� ���-menuheight <height>	�޴��� ��̿� <height> ��� (also: -mh)-n			���� ��� ���� �޸𸮸� ���-o[N]		N���� â ���� (�⺻: ��Ϻ��� �ϳ�)-p[N]		N���� �� ���� (�⺻: ��Ϻ��� �ϳ�)-q [�������]   ù ��° ������ �� ��� ��ġ��-r			���� ��� ���� ǥ���� �� ������-r (��� �̸��� �Բ�)	�ļյǾ��� ���� ����-register		�� gvim OLE�� ���-reverse		��� ��� ��� (also: -rv)-s			������ (��ġ) ��� ("ex"��)-s <scriptin>	<scriptin> ��Ͽ��� Normal ���� ��� �б�-scrollbarwidth <width>  ��ũ�ѹ� ��̿� <width> ��� (also: -sw)-t tag          �±װ� ���ǵ� ��ġ���� ��� ��ġ��-u <vimrc>		.vimrc ��� <vimrc>�� ���-unregister		gvim�� OLE���� ������-v			Vi ��� ("vi"�� ����)-w <scriptout>	��� �Էµ� ���� <scriptout> ��Ͽ� �߰�-x			��ȣȭ�� ��� ��ġ��-xrm <resource>	��õ� ���ҽ� ����-y			���� ��� ("evim"�� ����, modeless)%s ��� %d�� / ��� ���õ�: %s%s ��� %d�� �ܾ� ��� /encoding= ��� ���õ�: %s���� �� ���� ���������ϴ����� �� ���� ���������ϴ����� �� ���� ���� ���������ϴ�1 ���1 line %sed %d times1 line %sed 1 time1 �� --%d%%--1 line changed1 line indented �� �� ����1 �� �Ű�����ϴ�1 line yanked1 ��, 1�� ã�����ĥ ���� �� �� �� �ֽ��ϴ�. �׷��� �������?�� �� �̻�1�� �ٲ����� �� ��° gvimrc ���: "���� �� ��° gvimrc ���: ": ǥ��� �����Ⱑ �����߽��ϴ�.
: �����Ⱑ �����Ͽ����ϴ�.
: ������ ����. ���ÿ��� ����˴ϴ�
; match <%s>%s%s  %d,  ����� %02x,  ��� %03o<�� �� ����> <�����>> %d,  ����� %04x,  ��� %o> %d,  ����� %08x,  ��� %o??? ������� ???������ ��� �������ϴ�??? ������� ???������ ��� �������ų� ������ ���� �� �����ϴ�???���� �Ҿ���???�� ����???��???�� ��ȣ�� �߸��Ǿ����ϴ�???��� �Ҿ���???���� ��� �Ҿ���ANCHOR_BUF_SIZE�� �ʹ� �۽��ϴ�.�� �����ͺ��̽� ���ϱ�cscope �����ͺ��̽� %s�� ���߽��ϴ�.%s ��� %d�� BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST�� ���ؼ��� affix�� ����: %sAffix name too long in %s line %d: %s������ cscope �����ͺ��̽� ������� ��Ե� ���� ã�ҽ��ϴ��� �̻�� ������ �������ϴ��� �̻�� ������ �������ϴ��̹� �ϳ��� �Ǹ� �ֽ��ϴ��̹� �ϳ��� â�� �ֽ��ϴ���� �߰��ڿ� ��ڰ� ����At line��ũ��Ʈ ���� �ٽ� ������ �õ�: "������� �����ݴ� ������ �־����ϴ�, ���������� ���ڷ� ����ϼ���!��!Before byte %ld�ٴ�%s�� SAL�� SOFO ���� �� �� �ֽ��ϴ������: "%s%s" %ld ��%s ��� %d�� ������ ����: %sCOMPOUNDSYLMAX�� SYLLABLE���� ���������Ϸ��� �� �θ�: "%s"��ȯ�ϱ� ���� �ӽ� ���� ã�� �� �����ϴ����Cannot create Cannot execute $VIMRUNTIME/rgb.txt�� �� �� �����ϴ�NIL�� �� �� ����:
"%s" ���� �� �� �����ϴ��б� ���� �� �� ����: "��ũ��Ʈ ���� �� �� ����: "���丮�� source�� �� ����: "%s"'undodir'�� �ִ� � ���丮���� undo ���� �� �� �����ϴ�Change "%.*s" to:�� �ݱ���� �������: ����Ϸ�: %d/%d ��尡 �����; %d (%d%%)�� �����ܾ� Ʈ�� �����...%s ��� %d�� �ִ� �ܾ� ��ȯ ����: %s%s�� ��ȯ�� ������� �ʽ��ϴ�%s�� ��ȯ�� ������� �ʽ��ϴ�: %s���� %s��'charconvert'�� ����� ��ȯ�� �����߽��ϴ��Լ� ����͸� DLL�� �ٲ� �� �����ϴ�!vim32.dll�� �ҷ� ��� �� �����ϴ�!�ӽ� �α� ���� ���� ���� �� �� �����ϴ�Cscope �±�: %s��� %s���: "%s"��� ��%s ��� %d�� PFX �ڿ� COMPOUNDFORBIDFLAG�� ������ ��� �߸��� ���� �ʷ��� �� �ֽ��ϴ�%s ��� %d�� PFX �ڿ� COMPOUNDPERMITFLAG�� ������ ��� �߸��� ���� �ʷ��� �� �ֽ��ϴ������� Diff%s ��� %d�� ���ӵ� affix ��Ͽ� �ٸ� ���� �÷���: %s�������丮���丮	*.nothing
������ ���⸦ ���Ͻʴϱ���!���� ��Ͽ� �ߺ��� ;�Ʒ���%s ��� %d�� �ߺ��� /encoding= ��� ���õ�: %s%s ��� %d�� �ߺ��� /regions= ��� ���õ�: %s%s ��� %d�� �ߺ��� affix: %s%s ��� %d�� MAP�� �ߺ��� �����ߺ��� �ʵ� ��: %s%s ��� %d�� �ߺ��� �ܾ�: %sE100: �ٸ� ����߿� diff ����� �� �����ϴ�E101: �ΰ� �̻�� ���۰� diff ���¿��� � ��� ����� �� �� �� �����ϴ�E102: "%s" ���۸� ã�� �� �����ϴ�E103: "%s" ���۴� diff ���°� �ƴմϴ�E104: digraph���� Escape�� �� �� �����ϴ�E105: �ҷ���� ��Ͽ��� :loadkeymap�� ������ �ʾҽ��ϴ�E107: ��ȣ ����: %sE108: �̷� ���� ����: "%s"E109: '?' �ڿ� ':'�� �����ϴ�E10: /, ? Ȥ�� &�� \ �ڿ� �;� �մϴ�E110: ')'�� �����ϴ�E111: ']'�� �����ϴ�E112: �ɼ� �̸� ����: %sE113: �𸣴� �ɼ�: %sE114: ����ǥ ����: %sE115: ����ǥ ����: %sE116: �Լ� %s(��)�� �߸��� ��ڰ� �Ѱ�����ϴ�E117: �𸣴� �Լ�: %sE118: �Լ��� �ʹ� ���� ��� �ѱ�: %sE119: �Լ��� ���� ��� �ѱ�: %sE11: ���� â�� �߸���; <CR> ����, CTRL-C ������E120: ��ũ��Ʈ ���ؽ�Ʈ �ۿ��� <SID> ���: %sE121: ���� �� �� ����: %sE122: �Լ� %s��(��) �̹� �ֽ��ϴ�, �ٲٷ��� !�� ���ϼ���E123: ���� �� �� �Լ�: %sE124: '('�� ����: %sE125: �߸��� ���: %sE126: :endfunction�� �����ϴ�E127: �Լ� %s��(��) �ٽ� ������ �� �����ϴ�: ����Դϴ�E128: �Լ� �̸��� �빮�� Ȥ�� "s:"�� ����ؾ� ��: %sE129: �Լ� �̸��� �ʿ��մϴ�E12: ��� ���丮 �Ǵ� �±� ã�⿡�� exrc/vimrc������ ���� ��� �� �˴ϴ�E130: �𸣴� �Լ�: %sE131: �Լ� %s��(��) ���� �� �����ϴ�: ����Դϴ�E132: �Լ��� �θ� ��̰� 'maxfuncdepth'���� Ů�ϴ�E133: :return�� �Լ� �ȿ� ��� �ʽ��ϴ�E134: ��� �� �ڽ���� �̵��Ϸ��� �߽��ϴ�E135: *Filter* �ڵ����� ��� ���۸� �ٲپ�� �� �˴ϴ�E136: viminfo: �ʹ� ���� ����, ����� �dzʶ�E137: Viminfo ���� ���� ����� �����ϴ�: %sE138: Viminfo ��� %s��(��) �� �� �����ϴ�!E139: ���� �ٸ� ���ۿ� �ε��Ǿ� �ֽ��ϴ�E13: ���� �ֽ��ϴ� (������� ! ���)E140: ���� �Ϻθ� ������ !�� ����Ͻʽÿ�E141: ���� %ld�� ��� �̸��� �����ϴ�E142: ���� ���� ���: 'write' �ɼǿ� ���� �� ���� �����ϴ�E143: Autocommand�� �� �ۿ� �� ���� %s��(��) �������ϴ�E144: ���ڰ� �ƴ� ��ڰ� :z�� �־����ϴ�E145: rvim������ �� ���� ����� �� �����ϴ�E146: ����ǥ���� ��ڷ� ���е� �� �����ϴ�E147: :global�� ������ ��� ȣ�� �� �� �����ϴ�E148: global���� ����ǥ���� �������ϴ�E149: �̾��մϴ�, %s�� ���� ����� �����ϴ�E14: �߸��� �ּ�E150: ���丮�� �ƴ�: %sE151: ��� ���: %sE152: ���� ���� %s��(��) �� �� �����ϴ�E153: �б� ���� %s��(��) �� �� �����ϴ�E154: "%s" �±װ� %s/%s ��Ͽ��� �ߺ��Ǿ����ϴ�E155: �𸣴� sign: %sE156: sign �̸��� �����ϴ�E157: �߸��� sign ID: %ldE158: �߸��� ���� �̸�: %sE159: sign ��ȣ�� �����ϴ�E15: �߸��� ǥ���: %sE160: �𸣴� sign ���: %sE161: ������� ã�� �� �����ϴ�: %sE162: ���� "%s"�� ���߿� �ٲ� ����� ���� �ʾҽ��ϴ�E163: ��ĥ ���� �ϳ� �ۿ� �����ϴ�E164: ù ��° ��� ������δ� �� �� �����ϴ�E165: ������ ��� �ڷδ� �� �� �����ϴ�E166: �� ����� ���� �� �� �����ϴ�E167: :scriptencoding�� �ҷ���� ��� �ۿ��� ���Ǿ����ϴ�E168: :finish�� �ҷ���� ��� �ۿ��� ���Ǿ����ϴ�E169: ���� �ʹ� ���� �ٽ� �ݺ��Ǿ����ϴ�E16: �߸��� ����E170: :endfor ����E170: :endwhile�� �����ϴ�E171: :endif�� �����ϴ�E172: ����� �ϳ��� ��� �̸��� ��� �����մϴ�E173: ��ĥ ���� %ld �� �� �ֽ��ϴ�E173: ��ĥ ���� �� �� �� �ֽ��ϴ�E174: ���� �̹� �����մϴ�: �ٲٷ��� !�� ���ϼ���E175: ��õ� �Ӽ��� �����ϴ�E176: �߸��� ��� ����E177: ī��Ʈ�� �� �� �̻� ��õ� �� �����ϴ�E178: �߸��� �⺻ ī��Ʈ ��E179: -addr�� ��ڰ� �ʿ��մϴ�E179: -complete�� ��ڰ� �ʿ��մϴ�E17: "%s"��(��) ���丮�Դϴ�E180: �߸��� �ּ� ��� ��: %sE180: �߸��� ������ ��: %sE181: �߸��� �Ӽ�: %sE182: �߸��� ��� �̸�E183: ���� ���� ���� �빮�ڷ� ����ؾ� �մϴ�E184: �׷� ���� ���� ��� ����: %sE185: �� ��Ŵ %s��(��) ã�� �� �����ϴ�E186: ��� ���丮�� �����ϴ�E187: ��E188: �� �÷���� ���� â ��ġ ��� ���� ������ �ʾҽ��ϴ�E189: "%s"��(��) �����մϴ� (������� ! ���ϱ�)E18: ':let'�� �𸣴� ���E190: ���� ���� "%s"��(��) �� �� �����ϴ�E191: ��ڴ� ��ڳ� ��/�� �ο� ��ȣ���� �մϴ�E192: :normal�� ��� ȣ��� �ʹ� ���� �����ϴ�E193: :endfunction�� function ���� �����ϴ�E194: '#'�� ���� ġȯ�� ��ü ��� �̸��� �����ϴ�E195: ��� viminfo ���� �� �� �����ϴ�E196: �� �ǿ��� digraph�� �����ϴ�E197: �� "%s"(��)�� ������ �� �����ϴ�E198: cmd_pchar�� ��� ��̸� ������ϴ�E199: Ȱ���� â�̳� ���۰� ���������ϴ�E19: ��ũ�� �߸��� �� ��ȣ�� ������ �ֽ��ϴ�E200: *ReadPre �ڵ����� ���� ��� ���ϰ� �������ϴ�E201: *ReadPre �ڵ����� ��� ���۸� �ٲٸ� �� �˴ϴ�E202: ��ȯ�� ���� ��� ���� �����ϴ�!E203: �� ���۸� �ڵ����� ����ų� �ݾҽ��ϴ�E204: Autocommand�� �߸��� ������ ��� �ٲپ����ϴ�E205: ��ġ ����: ���� ���� ������ �� �����ϴ�E206: ��ġ ����: �� ���� ���� ���� �� �����ϴ�E207: �� ���� ���� �� �����ϴ�E208: "%s"�� ���� ����E209: "%s" �ݱ� ����E20: ��ũ�� �����Ǿ� ��� �ʽ��ϴ�E210: "%s" �б� ����E211: ��� "%s"��(��) �� �̻� ����� �� �����ϴ�E212: �� ���� �� �� �����ϴ�E213: ��ȯ�� �� �����ϴ� (��ȯ ���� �����Ϸ��� ! ���ϱ�)E214: �� �ӽ� ���� ã�� �� �����ϴ�E215: * �ڿ� �̻��� ���: %sE216: �׷� �̺�Ʈ ����: %sE216: �׷� �׷�̳� �̺�Ʈ ����: %sE217: ALL �̺�Ʈ�� ���� �ڵ����� ������ �� �����ϴ�E218: �ڵ����� �ʹ� ��� ��ø�Ǿ����ϴ�E219: {�� �����ϴ�.E21: �ٲ� �� ����, 'modifiable'�� �����ֽ��ϴ�E220: }�� �����ϴ�.E222: ���� ���ۿ� ���ϱ�E223: ��� ����E224: %s ���� �� �̹� �����մϴ�E225: %s ���� ����� �̹� �����մϴ�E226: %s �� �̹� �����մϴ�E227: %s ����� �̹� �����մϴ�E228: makemap: �̻��� ����E229: GUI�� ����� �� �����ϴ�E22: ��ũ��Ʈ�� �ʹ� ��� ��ø�Ǿ����ϴ�E230: "%s"���� ��� �� �����ϴ�E231: 'guifontwide'�� �̻��մϴ�E232: �޽���� �ݹ� ��θ� ����ؼ��� BalloonEval�� ���� �� �����ϴ�E233: ���÷��̸� �� �� �����ϴ�E234: �𸣴� �۲ü�: %sE235: �𸣴� �۲�: %sE236: �۲� "%s"��(��) ����̰� �ƴմϴ�E237: ����͸� ���� ���߽��ϴ�E238: �μ� ����: %sE239: �߸��� sign �ؽ�Ʈ: %sE23: �ٸ� ���� �����ϴ�E240: X ������ ����Ǿ� ��� �ʽ��ϴ�E241: %s(��)�� ���� �� �����ϴ�E243: ������� �ʴ� ���: "-%s": OLE ��� ����Ͻʽÿ�.E244: �߸��� ��ڼ� �̸� "%s"��(��) �۲� �̸� "%s"�� �ֽ��ϴ�E244: �߸��� ���Ƽ �̸� "%s"��(��) �۲� �̸� "%s"�� �ֽ��ϴ�E245: �߸��� ��� '%c'��(��) �۲� �̸� "%s"�� �ֽ��ϴ�E246: FileChangedShell �ڵ����� ���۸� �������ϴ�E247: "%s"��(��) ��ϵ� ������� �ƴմϴ�E248: �����α׷����� ��� �����Ⱑ �����߽��ϴ�E24: �׷� ���� �����ϴ�E250: ��� ��ڼ�� �۲�� �۲ü� %s�� �����ϴ�:E251: �� �ν��Ͻ� ������Ʈ�� �Ӽ��� �߸��Ǿ� �ֽ��ϴ�. �������ϴ�!E252: �۲ü� �̸�: %sE253: �۲ü� �̸�: %sE254: �� %s��(��) �Ҵ��� �� �����ϴ�E255: sign �ڷḦ ��� �� �����ϴ�E256: �ѱ� ���丶Ÿ ����E257: cstag: �±׸� ã�� �� �����ϴ�E258: Ŭ��̾�Ʈ�� ���� �� �����ϴ�E25: GUI�� ����� �� �����ϴ�: ����� �� ��Ե�� �ʾҽ��ϴ�E261: cscope ���� %s��(��) ã�� �� �����ϴ�E262: cscope ���� %ld �б� ����E263: �̾��մϴ�, �� ���� ����� �� �����ϴ�, ��̽� ��̺귯���� �ε��� �� �����ϴ�.E264: ��̽�: I/O ��ü �ʱ�ȭ�� ������ �����ϴ�E265: $_�� String �ν��Ͻ��̾�� �մϴ�E266: �̾��մϴ�, �� ���� ����� �� �����ϴ�, ��� ��̺귯���� �ε��� �� �����ϴ�.E267: ���� returnE268: ���� nextE269: ���� breakE26: Hebrew�� ����� �� �����ϴ�: ����� �� ��Ե�� �ʾҽ��ϴ�
E270: ���� redoE272: ó���ʵ� ����E273: �𸣴� longjmp ���� %dE277: ������ ���� ��� �� �����ϴ�E27: Farsi�� ����� �� �����ϴ�: ����� �� ��Ե�� �ʾҽ��ϴ�
E280: TCL �ɰ��� ����: reflist�� ������!? �� ������ vim-dev@vim.org�� �˷��ֽʽÿ�E282: "%s"���� ��� �� �����ϴ�E283: "%s"�� �´� ��ũ�� �����ϴ�E284: IC ���� ������ �� �����ϴ�E285: �Է� ���ؽ�Ʈ�� ���� �� �����ϴ�E286: �Է� ���� ���ٰ� �����߽��ϴ�E287: ���: IM�� �ı� �ݹ� ������ �� �����ϴ�E288: �Է� ���� � ��ĵ� ������� �ʽ��ϴ�E289: �Է� ���� �� preedit ���� ������� �ʽ��ϴ�E28: �̷� ��̶��Ʈ �׷� �̸��� �����ϴ�: %sE293: ������ ������ �ʾҽ��ϴ�E294: ���� ���� �б� ���� Ư�� ��ġ�� �� �� �����ϴ�E295: ���� ���� ��� �� �����ϴ�E296: ���� ���� ���� ���� Ư�� ��ġ�� �� �� �����ϴ�E297: ���� ���� �� �� �����ϴ�E298: ���� ��ȣ 0�� �� ���߳���?E298: ���� ��ȣ 1�� �� ���߳���?E298: ���� ��ȣ 2�� �� ���߳���?E299: Safe ����̴� sandbox���� Perl evaluation�� ���ѵ˴ϴ�E29: �Էµ� �ؽ�Ʈ�� ��� �����ϴ�E300: ���� ���� �̹� �����մϴ� (symlink ����?)E301: ����, ���� ���� �Ҿ��Ƚ��ϴ�!!!E302: ���� ��� �̸��� �ٲ� �� �����ϴ�E303: "%s"�� ���� ���� �� �� ��� ������ �Ұ����մϴ�E304: ml_upd_block0(): ���� 0�� �� ���߳���??E305: %s�� ���� ���� ã�� �� �����ϴ�E306: %s��(��) �� �� �����ϴ�E307: %s��(��) �� ���� ���� �ƴ� �� �����ϴ�E308: ���: ���� ���� �ٲ����ϴ�E309: %s�� ���� 1�� ��� �� �����ϴ�E30: ��� ��� ��� �����ϴ�E310: ���� 1�� ID�� �߸��Ǿ����ϴ� (%s��(��) .swp ���� �ƴѰ�?)E311: ���� �ߴܵǾ����ϴ�E312: ���� ���� ���� �����ϴ�; ???�� ����ϴ� ��� ã�ƺ��ʽÿ�E313: ������ �� �����ϴ�, ���� ���� �����ϴ�E314: ��� ������ �����߽��ϴ�E315: ml_get: �߸��� lnum: %ldE316: ml_get: %ld ��� ã�� �� �����ϴ�E317: �߸��� ����� ���� idE317: �߸��� ����� ���� id 2E317: �߸��� ����� ���� id 3E317: �߸��� ����� ���� id 4E318: �ʹ� ���� ������ ���ŵǾ�����?E319: �̾��մϴ�, �� ���� ��� �ǿ��� ����� �� �����ϴ�E31: �׷� ����� �����ϴ�E320: %ld ��� ã�� �� �����ϴ�E321: "%s"��(��) �ٽ� �ε��� �� �����ϴ�E322: �� ��ȣ�� ������ ������ϴ�: ���������� %ld ��ŭE323: ���� %ld�� �� ������ Ʋ�Ƚ��ϴ�E324: ���Ʈ��ũ��Ʈ ������� �� �� �����ϴ�E325: �ָ�E326: �ʹ� ���� ���� ���� �߰ߵǾ����ϴ�E327: �޴� �׸� ���� �κ�� ��� �޴��� �ƴմϴ�E328: �޴��� �ٸ� ��忡���� �����մϴ�E329: "%s" �޴� ����E32: ��� �̸��� �����ϴ�E330: ��� �޴� �տ��� �޴� ��ΰ� ��� �� �����ϴ�E331: �޴��ٿ� ��ٷ� �޴� �׸� ���� ���� �����ϴ�E332: ����ڴ� �޴� ���� �κ�� �� �� �����ϴ�E333: �޴� �׸� �տ��� �޴� ��ΰ� �־�� �մϴ�E334: �޴��� ã�� �� �����ϴ�: %sE335: %s ��忡 ���� �޴��� ���ǵǾ� ��� �ʽ��ϴ�E336: ��� �޴� �տ� �޴� ��ΰ� �־�� �մϴ�E337: �޴��� ã�� �� ���� - �޴� �̸��� Ȯ���Ͻʽÿ�E338: �̾��մϴ�, �ܼ� ���¿��� ��� ������ �����ϴ�E339: ����� �ʹ� ��ϴ�E33: ��� �ٲٱ� ���� ǥ���� �����ϴ�E340: ��� �ʹ� ������ϴ�E341: ���� ����: lalloc(%ld, )E342: �޸� ���!  (%lu ���Ʈ�� �Ҵ�)E343: �߸��� ���: '**[��ȣ]'�� ���� �������� ��ġ�ϰų� '%s' �ڿ� �־�� �մϴ�.E344: cdpath���� "%s" ���丮�� ã�� �� �����ϴ�E345: path���� "%s" ���� ã�� �� �����ϴ�E346: cdpath���� �� �̻�� "%s" ���丮�� ã�� �� �����ϴ�E347: path���� �� �̻�� "%s" ���� ã�� �� �����ϴ�E348: Ŀ�� �ؿ� ���ڿ��� �����ϴ�E349: Ŀ�� �ؿ� �ĺ��ڰ� �����ϴ�E34: ��� ���� �����ϴ�E350: ���� 'foldmethod'���� ���⸦ ���� �� �����ϴ�E351: ���� 'foldmethod'���� ���⸦ ���� �� �����ϴ�E352: ���� 'foldmethod'���� ���⸦ ���� �� �����ϴ�E353: %s �������Ϳ� �ƹ� �͵� �����ϴ�E354: �߸��� �������� �̸�: '%s'E355: �𸣴� �ɼ�: %sE356: get_varp ����E357: 'langmap': %s�� ���� �´� ��ڰ� �����ϴ�E358: 'langmap': �����ݷ� �ڿ� ��ڰ� �� ���: %sE359: ��ũ�� ���� ������ ������� �ʽ��ϴ�E35: ��� ����ǥ���� �����ϴ�E360: -f �ɼ�� ���� ��� ���� ������ �� �����ϴ�E363: ����� 'maxmempattern'���� ���� �޸𸮸� ����մϴ�E364: ��̺귯�� "%s()" �θ��� ����E365: ���Ʈ��ũ��Ʈ ���� �μ��� �� �����ϴ�E367: �̷� �׷� ����: "%s"E369: %s%%[]�� �߸��� �׸�E36: �� ������ ������ �ʽ��ϴ�E370: %s ��̺귯���� �ε��� �� �����ϴ�E371: ���� ã�� �� �����ϴ�E372: ��� ���ڿ��� %%%c��(��) �ʹ� �����ϴ�E373: ��� ���ڿ��� %%%c��(��) �߸��Ǿ����ϴ�E374: ��� ���ڿ��� ]�� �����ϴ�E375: ��� ���ڿ��� ������� �ʴ� %%%c��(��) �ֽ��ϴ�E376: ��� ���ڿ� ���ο� �߸��� %%%c��(��) �ֽ��ϴ�E377: ��� ���ڿ��� �߸��� %%%c��(��) �ֽ��ϴ�E378: 'errorformat'�� � ���ϵ� ����ϰ� ��� �ʽ��ϴ�E379: �����ų� �� ���丮 �̸�E37: ���������� ��ģ �� ������� �ʾҽ��ϴ�E37: ���������� ��ģ �� ������ �ʾҽ��ϴ� (�����Ϸ��� ! ���ϱ�)E380: ��Ƚ� ����� �ٴ�Դϴ�E381: ��Ƚ� ����� �����Դϴ�E382: �� �� ����, 'buftype' �ɼ�� �����Ǿ� �ֽ��ϴ�E383: �߸��� ã�� ���ڿ�: %sE384: ó���� �´� ���ڿ��� �����ϴ�: %sE385: ���� �´� ���ڿ��� �����ϴ�: %sE386: ';' �ڿ��� '?'�� '/'�� �;� �մϴ�E387: �´� �� ��� �ٿ� �ֽ��ϴ�E388: ���Ǹ� ã�� �� �����ϴ�E389: ����� ã�� �� �����ϴ�E38: �� ���E390: �߸��� ���: %sE391: �̷� ���� Ŭ�����ʹ� �����ϴ�: %sE392: �̷� ���� Ŭ�����ʹ� �����ϴ�: %sE393: group[t]here�� ���⿡�� ���� �� �����ϴ�E394: %s�� ���� region �׸� ã�� ���߽��ϴ�E395: contains ��ڴ� ���⿡ �� �� �����ϴ�E397: ���̸��� �ʿ��մϴ�E398: '=' ����: %sE399: ���ġ ��� ���: ���� ���� %sE39: ���ڰ� �ʿ��մϴ�E400: Ŭ�����Ͱ� ��õ�� �ʾҽ��ϴ�E401: ���� ����ڸ� ã�� �� �����ϴ�: %sE402: ���� �ڿ� ������: %sE403: syntax sync: �� ���� ����� �� �� ���Ǿ����ϴ�E404: ���� ���: %sE405: ��� ��ȣ�� ������: %sE406: �� ���: %sE407: %s��(��) ���⿡�� ����� �ʽ��ϴ�E408: %s��(��) contains ���� ù ��°���� �մϴ�E409: �𸣴� �׷� �̸�: %sE40: ������� %s��(��) �� �� �����ϴ�E410: �߸��� :syntax ��� ���: %sE411: ��̶��Ʈ �׷� ã�� �� �����ϴ�: %sE412: ���ġ ��� ���: ":highlight link %s"E413: �ʹ� ���� ���: ":highlight link %s"E414: group�� �������� �ֽ��ϴ�, highlight link ���õ�E415: ���� ��� ��ȣ: %sE416: ��� ��ȣ�� ������: %sE417: ��ڰ� ������: %sE418: ���� ��: %sE419: �𸣴� FG ����E41: �޸𸮰� �ٴڳ����ϴ�!E420: �𸣴� BG ����E421: �� �̸��̳� ���ڸ� �ν��� �� ����: %sE422: �͹̳� �ڵ尡 �ʹ� ��: %sE423: �߸��� ���: %sE424: �ʹ� ���� �ٸ� ��̶��Ʈ �Ӽ��� ���ǰ� �ֽ��ϴ�E425: ù ��° �´� �±� ������δ� �� �� �����ϴ�E426: �±׸� ã�� �� ����: %sE427: �´� �±װ� �ϳ� �ۿ� �����ϴ�E428: ������ �´� �±� �ڷδ� �� �� �����ϴ�E429: ��� "%s"��(��) ������� �ʽ��ϴ�E42: ���� ����E430: %s�� ���� �±� ��� ��ΰ� �߷Ƚ��ϴ�
E431: �±� ��� "%s"�� ��� ������ �ֽ��ϴ�E432: �±� ���� ���ĵǾ� ��� ���: %sE433: �±� ���� �����ϴ�E434: �±� ����� ã�� �� �����ϴ�E435: �±׸� ã�� �� ������ �̰� �����ϴ�!E436: termcap�� "%s" �׸�� �����ϴ�E437: �͹̳�� "cm" ���� �����ؾ� �մϴ�E438: u_undo: �߸��� �� ��ȣE439: undo ���� �������ϴ�E43: ���� �´� ���ڿ�E440: undo ��� �����ϴ�E441: �̸� ���� â�� �����ϴ�E442: �� ���ʰ� �Ʒ� ������� ���ÿ� ���� �� �����ϴ�E443: �ٸ� â�� �������� ������ ȸ���� �� �����ϴ�E444: ������ â�� ��� �� �����ϴ�E445: �ٸ� â�� �ٲ����ϴ�E446: Ŀ�� �ؿ� ��� �̸��� �����ϴ�E447: path���� "%s" ���� ã�� �� �����ϴ�E448: %s ��̺귯�� �Լ��� �ε��� �� �����ϴ�E449: �߸��� ǥ���� �޾�����ϴ�E44: ���� ����ǥ��� ��α׷�E455: ���Ʈ��ũ��Ʈ �����Ͽ� �� �� �����ϴ�.E456: ���Ʈ��ũ��Ʈ ���ҽ� ��� "%s.ps"�� ã�� �� �����ϴ�E456: ���Ʈ��ũ��Ʈ ���ҽ� ��� "cidfont.ps"�� ã�� �� �����ϴ�E456: ���Ʈ��ũ��Ʈ ���ҽ� ��� "prolog.ps"�� ã�� �� �����ϴ�E456: "%s" ���� �� �� �����ϴ�E457: ���Ʈ��ũ��Ʈ ���ҽ� ��� "%s"��(��) ��� �� �����ϴ�E459: ��� ���丮�� �� �� �����ϴ�E45: 'readonly' �ɼ�� �����Ǿ� �ֽ��ϴ� (������� ! ���ϱ�)E460: The resource fork will be lost (������� ! ���ϱ�)E461: ���� ���� ��: %sE462: "%s"�� ��ε带 �غ��� �� �����ϴ�E463: ������ ��ȣ�ǰ� �־ ������ �� �����ϴ�E464: ���� ���� ���� ��ȣ�ϰ� ����ϰ� �ֽ��ϴ�E465: :winsize�� �ΰ��� ��ڰ� �ʿ��մϴ�E466: :winpos���� �ΰ��� ��ڰ� �ʿ��մϴ�E467: ���� �ϼ��� �Լ� ��ڰ� �ʿ��մϴ�E468: �ϼ� ��ڴ� ���� �ϼ������� ���˴ϴ�E46: �б� ���� ���� "%s"��(��) �ٲ� �� �����ϴ�E470: ���� ����Ǿ����ϴ�E471: ��ڰ� �ʿ��մϴ�E472: ���� �����߽��ϴ�E473: ���� ����E474: �߸��� ���E475: �߸��� ���: %sE476: �߸��� ���E477: !�� ����� �ʽ��ϴ�E478: ��Ȳ��� ���ʽÿ�!E479: ��� �ʽ��ϴ�E47: ������� �д� ���߿� ����E480: ��� ���: %sE481: ������ ����� �ʽ��ϴ�E482: %s ���� ���� �� �����ϴ�E483: �ӽ� ��� �̸��� �� �� �����ϴ�E484: %s ���� �� �� �����ϴ�E485: %s ���� ��� �� �����ϴ�E486: ����� ã�� �� �����ϴ�: %sE487: ��ڴ� ���̾�� �մϴ�E488: ���� ���ڰ� �� �ֽ��ϴ�E48: sandbox������ ����� �ʽ��ϴ�E490: fold�� �����ϴ�E492: ���� ���� �ƴմϴ�E493: �ݴ� ������ �־����ϴ�E494: w�� w>>�� ����Ͻʽÿ�E495: "<afile>"�� ���� ġȯ�� �ڵ���� ��� �̸��� �����ϴ�E496: "<abuf>"�� ���� ġȯ�� �ڵ���� ���� ��ȣ�� �����ϴ�E497: "<amatch>"�� ���� ġȯ�� �ڵ���� ��ġ �̸��� �����ϴ�E498: "<sfile>"�� ���� ġȯ�� :source ��� �̸��� �����ϴ�E499: '%'�� '#'�� ���� �� ��� �̸�, ����� ":p:h"�͸� �����մϴ�E49: ��ũ�� ũ�Ⱑ �߸��Ǿ����ϴ�E500: �� ���ڿ����� ���� ���Ϸ��� �մϴ�E501: ���� �������Դϴ�E505: "%s"�� �б� ����Դϴ� (������� ! ���ϱ�)E505: %s��(��) �б� ����Դϴ� (������� ! ���ϱ�)E506: ������ �� �� �����ϴ� (������� ! ���ϱ�)E507: ����� �ݱ� ���� (������� ! ���ϱ�)E508: ���� ���� ��� �� �����ϴ� (������� ! ���ϱ�)E509: ������ ���� �� �����ϴ� (������� ! ���ϱ�)E50: \z(�� �ʹ� �����ϴ�E510: ������ ���� �� �����ϴ� (������� ! ���ϱ�)E511: netbeans�� �̹� ����Ǿ� �ֽ��ϴ�E512: �ݱⰡ �����߽��ϴ�E513: ���� ����, ��ȯ ���� (�����Ϸ��� 'fenc'�� ���� ��)E513: ���� ����, %ld �ٿ��� ��ȯ ���� (�����Ϸ��� 'fenc'�� ���� ��)E514: ���� ���� (��� �ý���� ��á����?)E515: ������ ���۰� �����ϴ�E516: ������ ���۰� �����ϴ�E517: ���� ������ ���۰� �����ϴ�E518: �𸣴� �ɼ�E519: ������� �ʴ� �ɼ�Դϴ�E51: %s(�� �ʹ� �����ϴ�E520: ����ο��� ���� �� �����ϴ�E521: = �ڿ� ���ڰ� �ʿ��մϴ�E521: ���ڰ� �ʿ�: &%s = '%s'E522: termcap���� ã�� �� �����ϴ�E523: ���⿡�� ����� �ʽ��ϴ�E524: �ݷ�� �����ϴ�E525: �� ���ڿ��Դϴ�E526: <%s> �ڿ� ���ڰ� �����ϴ�E527: �޸��� �����ϴ�E528: ' ���� ����� �ּž� �մϴ�E529: 'term'�� �� ���ڿ��� ������ �� �����ϴ�E52: ��� �ʴ� \z(E530: GUI������ term�� �ٲ� �� �����ϴ�E531: GUI�� ����Ϸ��� ":gui"�� ����Ͻʽÿ�E533: ��̵� �۲�� �� �� �����ϴ�E534: �߸��� ��̵� �۲�E535: <%c> �ڿ� �̻��� ���E536: �޸��� �ʿ��մϴ�E537: 'commentstring'�� ��ų� %s��(��) ����ؾ� �մϴ�E538: ���콺�� ������� �ʽ��ϴ�E539: �̻��� ��� <%s>E53: ��� �ʴ� %s%%(E540: ����� ��� ǥ��� �迭E541: �ʹ� ���� �׸�E542: ����� �� ��� �׷�E543: ����� �ڵ������� �ƴմϴ�E544: Ű�� ���� ã�� �� �����ϴ�E545: �ݷ�� �����ϴ�E546: �̻��� ���E547: �̻��� ���콺���E548: ���ڰ� �ʿ��մϴ�E549: �̻��� ����E54: ��� �ʴ� %s(E550: �ݷ�� �����ϴ�E551: �̻��� �����ƮE552: ���ڰ� �ʿ��մϴ�E553: �� �̻�� �׸�� �����ϴ�E554: %s{...}�� ���� ����E555: �±� ����� ���Դϴ�E556: �±� ����� ó���Դϴ�E557: termcap ���� �� �� �����ϴ�E558: �͹̳� �׸� terminfo���� ã�� �� �����ϴ�E559: �͹̳� �׸� termcap���� ã�� �� �����ϴ�E55: ��� �ʴ� %s)E560: ���: cs[cope] %sE561: �𸣴� cscope ã�� ���E562: ���: cstag <ident>E563: stat ����E563: stat(%s) ����: %dE564: %s��(��) ���丮�� Ȥ�� cscope �����ͺ��̽��� �ƴմϴ�E566: cscope ������ ���� �� �����ϴ�E567: cscope ����� �����ϴ�E568: �ߺ��� cscope �����ͺ��̽��� ������� �ʾҽ��ϴ�E570: cs_manage_matches�� �ɰ��� ����E571: �̾��մϴ�, �� ���� ����� �� �����ϴ�, Tcl ��̺귯���� �ε��� �� �����ϴ�.E572: ���� �ڵ� %dE573: �߸��� ���� id ����: %sE574: �𸣴� �������� ��� %dE579: :if�� �ʹ� ��� ��ø�Ǿ����ϴ�E580: :if���� :endif�� �ֽ��ϴ�E581: :if���� :else�� �ֽ��ϴ�E582: :if���� :elseif�� �ֽ��ϴ�E583: �������� :else�� �ֽ��ϴ�E584: :else �ڿ� :elseif�� �ֽ��ϴ�E585: :while/:for�� �ʹ� ��� ��ø�Ǿ����ϴ�E586: :while Ȥ�� :for���� :continue�� �ֽ��ϴ�E587: :while Ȥ�� :for���� :break�� �ֽ��ϴ�E588: :for ���� :endforE588: :while���� :endwhile�� �ֽ��ϴ�E589: 'backupext'�� 'patchmode'�� �����մϴ�E590: �̸� ���� â�� �̹� �����մϴ�E591: 'winheight'�� 'winminheight'���� Ŀ�� �մϴ�E592: 'winwidth'�� 'winminwidth'���� Ŀ�� �մϴ�E593: ��� %d ��� �ʿ��մϴ�E594: ��� %d ĭ�� �ʿ��մϴ�E595: ����� �� ����, Ȥ�� ��̵� ���ڸ� ����ϰ� �ֽ��ϴ�E596: �߸��� �۲�(��)E597: �۲ü�� �� �� �����ϴ�E598: �߸��� �۲ü�E599: 'imactivatekey' ���� �̻��մϴ�E59: %s@ �ڿ� �߸��� ����E600: :endtry�� �����ϴ�E601: :try�� �ʹ� ��� ��ø�Ǿ����ϴ�E602: :try���� :endtry�� �ֽ��ϴ�E603: :try���� :catch�� �ֽ��ϴ�E604: :finally �ڿ� :catch�� �ֽ��ϴ�E605: ���ܰ� �߻���� �ʾҽ��ϴ�: %sE606: :try���� :finally�� �ֽ��ϴ�E607: �������� :finally�� �ֽ��ϴ�E608: 'Vim' ���λ�� ���ܸ� :throw�� �� �����ϴ�E609: Cscope ����: %sE60: %s{...}s�� �ʹ� ����E612: �ʹ� ���� sign�� ���ǵǾ� �ֽ��ϴ�E613: �𸣴� ����� �۲�: %sE614: vim_SelFile: ��� ���丮�� ���ư� �� �����ϴ�E615: vim_SelFile: ��� ���丮�� �� �� �����ϴ�E616: vim_SelFile: �۲� %s��(��) �� �� �����ϴ�E617: GTK+ 2 GUI������ �ٲ� �� �����ϴ�E618: ��� "%s"��(��) ���Ʈ��ũ��Ʈ ���ҽ� ���� �ƴմϴ�E619: ��� "%s"��(��) �����Ǵ� ���Ʈ��ũ��Ʈ ���ҽ� ���� �ƴմϴ�E61: Nested %s*E620: "%s" �μ� ���ڵ����� ��ȯ�� �� �����ϴ�E621: "%s" ���ҽ� ���� ������ �߸��Ǿ����ϴ�E622: cscope�� fork�� �� �����ϴ�E623: cscope ��μ����� spawn�� �� �����ϴ�E624: "%s" ���� �� �� �����ϴ�E625: cscope �����ͺ��̽��� �� �� ����: %sE626: cscope �����ͺ��̽� ������ �� �� �����ϴ�E62: Nested %s%cE630: %s(): ������ �ʾҴ� �� ����E631: %s(): ���Ⱑ �����߽��ϴ�E63: \_�� �� �� ���E64: %s%c �ڿ� �ƹ��͵� �����ϴ�E655: �ʹ� ���� �ɺ��� ��ũ (�ݺ���ȯ?)E658: ���� %ld�� ���� NetBeans ���� �Ҿ��Ƚ��ϴ�E659: Python�� ���ȣ���� �� �����ϴ�E65: �̻��� ��� ���E661: �̾��մϴ�, ���� '%s'��(��) %s�� ���� �����ϴ�E664: changelist�� ����ϴ�E665: ������ �۲�� ã�� �� ��� GUI�� ������ �� �����ϴ�E666: ����Ϸ��� ������� ���: %sE667: Fsync�� �����߽��ϴ�E668: NetBeans ���� ���� ���� ���� ��尡 �߸���: "%s"E669: �׷� �̸��� ����� �� ���� ���ڰ� �ֽ��ϴ�E66: \z(�� ���⿡�� ����� �ʽ��ϴ�E670: �� ������ ���� ���ڵ� ���: %sE671: â ���� "%s"��(��) ã�� �� �����ϴ�E672: MDI ������α׷� �ȿ��� â�� �� �� �����ϴ�E673: ȣȯ��� �ʴ� ��߹��� ���ڵ��� ���ڼ�.E674: printmbcharset�� ��߹��� ���ڵ����� �ݵ�� �����Ǿ�� �մϴ�.E675: ��߹��� �μ⸦ ���� �۲�� �����Ǿ� ��� �ʽ��ϴ�E676: acwrite ���ۿ� ���� autocommand�� ã�� �� �����ϴ�E677: �ӽ� ��� ���� ����E678: %s%%[dxouU] �ڿ� �̻��� ����E679: syncolor.vim �ݺ� �ε�E67: \z1 �� ���⿡�� ����� �ʽ��ϴ�E680: <buffer=%d>: �߸��� ���� ��ȣE681: ���۰� �ε��� �ʾҽ��ϴ�E682: �߸��� ã�� ���� Ȥ�� �����E683: ��ϸ� ���� Ȥ�� �߸��� ����E684: ��� ��ȣ�� ������ ���: %ldE685: ���� ����: %sE686: %s ��ڴ� List�̾�� �մϴ�E687: List �׸񺸴� ���� ���E688: List �׸񺸴� ���� ���E689: List�� Dictionary�� ������ �� �ֽ��ϴ�E68: \z �ڿ� �̻��� ����E690: :for �ڿ� "in"�� �����ϴ�E691: List�� List�͸� ���� �� �ֽ��ϴ�E692: List�� ���� �߸��� ����E694: Funcrefs�� ���� �߸��� ����E695: Funcref�� ������ �� �����ϴ�E696: List�� �޸� ����: %sE697: List ���� ']' ����: %sE698: �����ϱ⿡ ������ �ʹ� ��� ��ø�Ǿ����ϴ�E699: �ʹ� ���� ���E69: %s%%[ �ڿ� ]�� �����ϴ�E700: �𸣴� �Լ�: %sE701: len()�� �߸��� �E702: ���� �� ���� �����߽��ϴ�E703: Funcref�� Number�� ���E704: Funcref ������ �빮�ڷ� ����ؾ� ��: %sE705: ������� �̹� �ִ� �Լ��� �浹: %sE707: �Լ���� ������ �浹: %sE708: [:]�� �������� ��ġ�ؾ� �մϴ�E709: [:]�� List ���� �ʿ��մϴ�E70: �� %s%%[]E710: List ���� ��󺸴� ���� �׸� ������ �ֽ��ϴ�E711: List ���� ����� �׸� ������ ��� �ʽ��ϴ�E712: %s ��ڴ� List Ȥ�� Dictionary���� �մϴ�E713: Dictionary�� �� Ű�� �� �� �����ϴ�E714: List�� �ʿ��մϴ�E715: Dictionary�� �ʿ��մϴ�E716: Dictionary�� Ű�� ����: %sE717: �̹� Dictionary �׸�� �ֽ��ϴ�E718: Funcref�� �ʿ��մϴ�E719: Dictionary�� [:]�� ����� �� �����ϴ�E71: %s%% �ڿ� �̻��� ����E720: Dictionary�� �ݷ� ����: %sE721: Dictionary�� �ߺ��� Ű: "%s"E722: Dictionary�� �޸� ����: %sE723: Dictionary ���� '}' ����: %sE724: ������ ǥ���ϱ⿡ �ʹ� ��� ��ø�Ǿ����ϴ�E725: Dictionary���� ���Լ��� �ҷ���: %sE726: Stride�� 0E727: ����ġ�� ���� ����ħE728: Dictionary�� Number�� ���E729: Funcref�� String���� ���E72: ���� ���� ��� �� �����ϴ�E730: List�� String���� ���E731: Dictionary�� String���� ���E732: :while�� :endfor�� ���Ǿ����ϴ�E733: :for�� :endwhile�� ���Ǿ����ϴ�E734: %s=�� ���� �߸��� �����E735: Dictionary�� Dictionary�͸� ���� �� �ֽ��ϴ�E736: Dictionary�� ���� �߸��� ����E737: Ű�� �̹� ������: %sE738: %s ���� ���� ������ �� �����ϴ�E739: ���丮 ���� ����: %sE73: �±� ����� ����ϴ�E740: �Լ� %s�� �ʹ� ���� ��ڰ� ���޵Ǿ����ϴ�E741: ���� �����: %sE742: %s ���� �ٲ� �� �����ϴ�E743: ���(���)�ϱ⿡ ������ �ʹ� ��� ��ø�Ǿ����ϴ�E744: NetBeans�� �б� ���� ���� �ٲ� �� �����ϴ�E745: List�� Number�� ���E746: �Լ���� ��ũ��Ʈ ��ϸ� �ٸ�: %sE747: ���丮�� �ٲ� �� ���� ��, ���۴� ������ (������� ! ���ϱ�)E749: �� ����E74: ���� �ʹ� �����մϴ�E750: ��� ":profile start {fname}"�� ����ϼ���E751: ���� ��ϸ� ���� �̸��� �޶�� �մϴ�E752: ö�ڰ� �ٲ��� �����ϴ�E753: ã�� �� ����: %sE754: �ִ� 8���� ������ �����˴ϴ�E755: %s�� �߸��� ����E756: ���� �˻簡 Ȱ��ȭ�Ǿ� ��� �ʽ��ϴ�E757: spell ���� �ƴ� �� �����ϴ�E758: �߸� spell ���E75: �̸��� �ʹ� ��ϴ�E760: %s�� �ܾ� ī��Ʈ�� �����ϴ�E761: affix ��� FOL, LOW Ȥ�� UPP�� ��� ����E762: FOL, LOW Ȥ�� UPP�� ���ڰ� ������ ���E763: �ܾ spell ��� ���� �ٸ��ϴ�E764: �ɼ� '%s'��(��) �����Ǿ� ��� �ʽ��ϴ�E765: 'spellfile'�� %ld �׸�� �����ϴ�E766: printf()�� �Ѿ�� ��� ������ ���E767: printf()�� �ʹ� ���� ��� �Ѿ��E768: ���� ��� ���: %s (������� :silent! ���)E769: %s[ �ڿ� ]�� �����ϴ�E76: [�� �ʹ� �����ϴ�E770: spell ��Ͽ� ������� �ʴ� ����E771: ������ spell ���, ����� �ʿ��մϴ�E772: Spell ���� �� ������ Vim��Դϴ�E774: 'operatorfunc'�� ���ֽ��ϴ�E775: Eval ���� �����ֽ��ϴ�E776: ��ġ ��� ����E777: String�̳� List�� �־�� ��E778: .sug ���� �ƴ� �� ����: %sE779: ������ .sug ���, ���� �ʿ�: %sE77: ��� �̸��� �ʹ� �����ϴ�E780: .sug ���� �� ������ Vim���: %sE781: .sug ���� .spl ��ϰ� ��� ���: %sE782: .sug ��� �б� ����: %sE783: MAP �׸� �ߺ��� ����E784: ������ ��� ��� �� �����ϴ�E785: complete()�� �Է� ��忡���� ���� �� �ֽ��ϴ�E786: ������ ����� �ʽ��ϴ�E787: ���۰� �𸣴� ��̿� �ٲ����ϴ�E788: ����� �ٸ� ���۸� ���� �� �����ϴ�E789: ']' ����: %sE78: �𸣴� ��ũE790: undo �ڿ� undojoin�� �� �� �����ϴ�E791: Ű�� ��Ʈ���� �����E792: �޴� �̸� ����E793: ���� ������ diff ���� ���۴� �����ϴ�E794: sandbox �ȿ����� ������ ������ �� ����: "%s"E795: ���� %s�� ���� �� �����ϴ�E797: SpellFileMissing autocommand�� ���۸� ���߽��ϴ�E798: ID�� ":match"������ �����: %ldE799: ���� ID: %ld (1���� ũ�ų� ���ƾ� �մϴ�)E79: ���� ��ڸ� Ȯ���� �� �����ϴ�E800: Arabic�� ����� �� �����ϴ�: ����� �� ��Ե�� �ʾҽ��ϴ�
E802: ���� ID: %ld (1���� ũ�ų� ���ƾ� �մϴ�)E803: ID�� ã�� �� ����: %ldE804: Float�� '%'�� ����� �� �����ϴ�E805: Float�� Number�� ���E806: Float�� String���� ���E807: printf()�� ������ Float ���E808: Number Ȥ�� Float�� �ʿ��մϴ�E809: #<�� +eval ���� ��ԵǾ�� ����� �� �ֽ��ϴ�E80: ���� �߿� ����E810: �ӽ� ���� �аų� �� �� �����ϴ�E811: ����� ���� ������ �ٲ� �� �����ϴ�E812: Autocommand�� ���۳� ����̸��� �ٲپ����ϴ�E813: autocmd â�� ��� �� �����ϴ�E814: â�� ��� �� ����, autocmd â�� ����E815: �̾��մϴ�, �� ���� ����� �� �����ϴ�, MzScheme ��̺귯���� �ε��� �� �����ϴ�.E816: patch ���� ��� �� �����ϴ�E817: Blowfish big/little endian use wrongE818: sha256 ����� �����߽��ϴ�.E819: Blowfish ����� �����߽��ϴ�.E81: ��ũ��Ʈ ���ؽ�Ʈ �ۿ��� <SID> ���E820: sizeof(uint32_t) != 4E821: ���� �𸣴� ������ ��ȣȭ�Ǿ� �ֽ��ϴ�E822: �б� ���� undo ���� �� �� �����ϴ�: %sE823: undo ���� �ƴմϴ�: %sE824: ȣȯ��� �ʴ� undo ���: %sE825: ���� undo ��� (%s): %sE826: Undo ���� �ص��� �� �����ϴ�: %sE827: Undo ���� ��ȣȭ�Ǿ����ϴ�: %sE828: ���� ���� undo�� �� �� �����ϴ�: %sE829: undo ��� ���� ����: %sE82: ���۸� �Ҵ��� �� ��� �����ϴ�...E830: Undo ��ȣ %ld�� ã�� �� �����ϴ�E831: �� ��й�ȣ�� bf_key_init() �Լ��� �ҷ������ϴ�E832: ��ȣȭ��� ��� ���� ��ȣȭ�� undo ���� ������ �ֽ��ϴ�: %sE833: %s��(��) ��ȣȭ�Ǿ� �ִ� ��, �� Vim�� ��ȣȭ�� ������� �ʽ��ϴ�E834: 'listchars' ���� �浹�� �߻��մϴ�E835: 'fillchars' ���� �浹�� �߻��մϴ�E836: �� Vim�� :py3�� ����� �Ŀ� :python�� ����� �� �����ϴ�E837: �� Vim�� :python�� ����� �Ŀ� :py3�� ����� �� �����ϴ�E838: �� GUI�� netbeans�� ������� �ʽ��ϴ�E839: Completion ���� â�� �ٲپ����ϴ�E83: ���۸� �Ҵ��� �� ��� �ٸ� �� ����մϴ�...E840: Completion ���� ���ڿ��� �������ϴ�E841: ����� �̸�, ���� ���� ������ ���� �� �����ϴ�E842: "<slnum>"�� ���� �� ��ȣ�� �����ϴ�E843: ���� ���� ��ȣȭ�� �� �����ϴ�E844: �߸��� cchar ��E846: Ű �ڵ尡 ������� �ʾҽ��ϴ�E848: ���� Ŭ�����Ͱ� �ʹ� �����ϴ�E849: highlight�� syntax group�� �ʹ� �����ϴ�E84: �ٲ� ���۸� ã�� �� �����ϴ�E850: �߸��� �������� �̸�E851: ���ο� GUI ��μ����� ������ �� �����ϴ�E852: �ڽ� ��μ����� GUI�� ������ ���߽��ϴ�E853: �ߺ��� ��� �̸�: %sE855: Autocommand�� ���� �ߴܵǾ����ϴ�E85: ������ ���۰� �����ϴ�E862: ���⿡�� g:�� ����� �� �����ϴ�E867: (NFA) �𸣴� ���۷����� '\%%%c'E867: (NFA) �𸣴� ���۷����� '\z%c'E869: (NFA) �𸣴� ���۷����� '\@%c'E86: ���� %ld��(��) ������� �ʽ��ϴ�E872: (NFA ����ǥ���) '('�� �ʹ� �����ϴ�E877: (NFA ����ǥ���) ���� ���� Ŭ����: %ldE879: (NFA ����ǥ���) \z(�� �ʹ� �����ϴ�E87: ������ ����Դϴ�E881: �� ������ ���ڱ� �ٲ����ϴ�E882: Uniq �� �Լ��� �����Ͽ����ϴ�E884: �Լ� �̸��� �ݷ�� ����� �� ����: %sE885: sign %s��(��) �ٲ� �� �����ϴ�E886: viminfo ��ϸ� %s(��)�� ������ �� �����ϴ�!E887: �̾��մϴ�, �� ���� ����� �� �����ϴ�, ��̽�� ���Ʈ ��� �ε��� �� �����ϴ�.E888: (NFA ����ǥ���) %s��(��) �ݺ��� �� �����ϴ�E88: ù ��° ����Դϴ�E890: ']' �ڿ� ���ڰ� �� ���: %s]%sE891: Funcref�� Float�� ����ϰ� �ֽ��ϴ�E892: String�� Float�� ����ϰ� �ֽ��ϴ�E893: List�� Float�� ����ϰ� �ֽ��ϴ�E894: Dictionary�� Float�� ����ϰ� �ֽ��ϴ�E895: �̾��մϴ�, �� ���� ����� �� �����ϴ�, MzScheme�� racket/base ��� �ε��� �� �����ϴ�.E898: channel_open()���� socket()E89: ���� %ld��(��) ���������� ��ģ �� ������� �ʾҽ��ϴ� (������� ! ���ϱ�)E901: channel_open()���� gethostbyname()E902: �Ʈ�� ������ �� �����ϴ�E903: ���ڿ��� �ƴ� ��ڸ� ������ �����߽��ϴ�E904: expr/call�� ������ ��ڴ� ���ڿ��� �մϴ�E904: 3��° ��ڴ� list���� �մϴ�E905: �𸣴� ��� ����: %sE906: ���� ä��� �ƴմϴ�E907: Ư���� ���� Float�� ����ϰ� �ֽ��ϴ�E908: �߸��� ���� String���� ����ϰ� �ֽ��ϴ�E909: Ư���� ������ ������ �� �����ϴ�E90: ������ ���۸� ���� �� �����ϴ�E910: Job�� Number�� ����ϰ� �ֽ��ϴ�E911: Job�� Float�� ����ϰ� �ֽ��ϴ�E912: raw Ȥ�� nl ä�ο��� ch_evalexpr()/ch_sendexpr()�� ����� �� �����ϴ�E913: Channel�� Number�� ����ϰ� �ֽ��ϴ�E914: Channel�� Float�� ����ϰ� �ֽ��ϴ�E915: in_io ���۴� �����Ϸ��� in_buf�� in_name�� �ʿ��մϴ�E916: ����� job�� �ƴմϴ�E917: %s()���� callback�� ����� �� �����ϴ�E918: ���۰� �ε��Ǿ�� �մϴ�: %sE919: '%s'���� ���丮�� ��ã��: "%s"E91: 'shell' �ɼ�� ����ϴ�E920: _io ���� �����Ϸ��� _name�� �ʿ��մϴ�E921: ���� �ݹ� ���E922: dict�� �䱸�˴ϴ�E923: function()�� �ι�° ��ڴ� list�� dict�̾�� �մϴ�E924: ��� â�� ������ϴ�E925: ���� quickfix�� �ٲ����ϴ�E926: ���� location list�� �ٲ����ϴ�E927: ���� ����: '%s'E928: String�� �ʿ��մϴ�E929: �ʹ� ���� viminfo �ӽ� ��ϵ�, ���� %s!E92: ���� %ld��(��) ã�� �� �����ϴ�E930: execute() ������ :redir�� ����� �� �����ϴ�E931: ���۸� ������ ���߽��ϴ�E933: �Լ��� ����: %sE934: �̸����� ���۷δ� ����� �� �����ϴ�E935: ���� submatch number: %dE936: ��� �׷� ���� �� �����ϴ�E937: ����� ���۸� ���Ϸ��� �߽��ϴ�E938: JSON�� �ߺ��� Ű: "%s"E93: %s��(��) �ϳ� �̻� ã�ҽ��ϴ�E940: ���� %s��(��) ��� Ȥ�� ����� �� �����ϴ�E941: ������ �̹� ��۵Ǿ����ϴ�E942: +clientserver ���� ��Ե�� �ʾҽ��ϴ�E943: ��� ��̺� ����� �ʿ�, 'make cmdidxs'�� �����ϼ���E94: %s�� �´� ���۰� �����ϴ�E95: �� �̸��� ���� ���۰� �̹� �ֽ��ϴ�E96: ���۸� %ld�� �̻� ���� �� �����ϴ�E97: diff�� ���� �� �����ϴ�E98: diff ���� ��� �� �����ϴ�E99: ��� ���۴� diff ���°� �ƴմϴ�����: ��� ��ġ���� â���� ��� ��ġ�������� ��(&V)���� ������ ��(&M)�ϳ��� �����θ� �� - �ϳ��� �����θ� ��(&V)���õ� ���(��)�� ������ �����ڵ�:�Լ��� �������ҷ���� ���� ��������ȣ Ű �Է�: ����� ���� ��� ��ȣ�� �Է��Ͻʽÿ� (0�� ������): ���� Ű�� �ٽ� �Է�: ��� ���·� ��.  ����Ϸ��� "cont"�� �Է��Ͻʽÿ�.Ex ���·� ��ȯ.  Normal ���·� ������ "visual"�� �Է��Ͻʽÿ�.���������� ���ͷ�Ʈ��μ��� ���� ����: gvim�� path�� �ִ� �� Ȯ���ϼ���!%s ����� ���� �߰�:���� �������� ��Ÿ�� �޸� ��뷮: %d ���Ʈ�������� �߻�: %s���� ������: %s���� �����: %s���� thrown: %s%s �����%s ��� %d�� MAP ī��Ʈ�� ����%s ��� %d�� REP(SAL) ī��Ʈ�� ����%s ��� %d�� Y�� N�� ����: %sǥ��ܺ� submatches:
%s ��� %d�� �÷��װ� ���� �� FLAG: %s��� "%s"��(��) ������� �ʽ��ϴ���� ����� �ٲ�, undo ������ ����� �� �����ϴ���� "%s"�� �б���Դϴ�.
�׷��� ���Ⱑ ������ ���� �𸨴ϴ�.
�� �� �� �����?���� �����Ǿ����ϴ�����Ÿ������ڿ� ã�� �ٲٱ� ('\'�� ã������ '\\' ���)��� ã��(&N)��� ã�����ڿ� ã�� ('\'�� ã������ '\\' ���)���� ã�����:undo ��� %s��(��) �о�鿴���ϴ�%s ��� %d�� ó�� �ߺ��� �ܾ�: %s%s ��� %d�� ���ڰ� �ƴ� �÷���: %s�۲� '%s'��(��) ����̰� �ƴմϴ��۲�%ld �ʺ� �۲�0�� �ι谡 �ƴմϴ��۲�0 �ʺ�: %ld�۲�0: %s�۲�1 �ʺ�: %ld�۲�1: %s�۲�:�ɼ� ��� �ڿ� ������ ���� ���ڴ�, ȯ���մϴ�!�찣�ٿ� ��� ������ ��̸� ����ּ���!�ܶ�� ������ ����I/O �������õ� %d���� �ƽ�Ű���ڿ��� �ƴ� �ܾ %s�� �ֽ��ϴ��ƽ�Ű ���ڿ��� �ƴ� %d���� �ܾ ���õǾ����ϴ��±� ���� �ʹ� �� ���� �����մϴ��߸��� ��� �̸�%s ��� %d�� �߸��� �÷���: %s�̻��� �������� �̸��̻��� ��� ����Է� ���Է� ��(_M)���ͷ�Ʈ�ߴ�: �ߴܵǾ����ϴ�%s ��� %d�� �߸��� ���� ��ȣ: %s%s ��� %d�� FLAG�� ���� �߸��� ��: %sŰ�� ��� �ʽ��ϴ�!���� ������ũ: List�� number�� �ʿ��մϴ�Lua ��̺귯���� �ε��� �� �����ϴ�.�Ȱ��� �������޽���޽�� ������: Bram Moolenaar <Bram@vim.org>'>'�� �����ϴ�%s�� FOL/LOW/UPP�� ����� ���SOFO%s�� ����� ���� %s�� �ֽ��ϴ�Modified by �̸�:Need %s version %ld
�ƹ̰����� 2.04�� �� �� ��� �ʿ��մϴ�
"%s"�� ���� ��ȣ Ű�� �ʿ��մϴ�NetBeans������ �ٲ� ��� ���۸� �� �� �����ϴ��� ���ƴϿ��� ���ۿ� ���� ���ǵ� ���� �׸�� �����ϴ��� ã�� �� �����ϴ�������� ���ǵǾ� ��� �ʽ��ϴ����÷��̰� �����ϴ����÷��� ����: ǥ��� �����Ⱑ �����߽��ϴ�.
��Ե� ���� �����ϴ������ ã�� �� �����ϴ������� ��ũ�� �����ϴ��´� �ڵ����� �����ϴ�old ���� �����ϴ����� ���� �����ϴ��μ�� �ؽ�Ʈ�� �����ϴ���� �Ұ���; ��·�� ����մϴ����� ���� ���� ã�� �� �����ϴ���� �ʵ�����ڰ� �޶� undo ���� ��� �ʽ��ϴ�: %s����� �� �����ϴ�soundfold ���� ��� �ܾ� ��: %ldȮ����� ���� ��ȭ����� ����...�� ����...X ���÷��� ���Ⱑ �����߽��ϴ�X ���÷��̸� ���ٰ� �ð��� �ʰ��Ǿ����ϴ�X ���÷��̸� ���� �� %ld msec�� �ɷȽ��ϴ����� ��� "%s"�̹� �ִ� "%s" ���� ������?���� %dNetBeans ���ۿ� ���ؼ��� �κ� ���� �� �� �����ϴ���Ű �����ΰ� �ʹ� ��ϴ���� �̸�:���� �ٿ��� ����� ã�ҽ��ϴ�: %s����� ã�� �� �����ϴ������ ã�� �� ����: %ssoundfold �����...����Ϸ��� ���� Ȥ�� ���� �Է��Ͻʽÿ��μ�۾��� �������ϴ�.�μ��: %s'%s' �μ���μⰡ ��ҵǾ����ϴ�.���� %d �μ�� (%d%%)����affix ��� %s �д� ������ ���� �д� ��...�� ��� %s �д� �� ...ǥ��Է¿��� �д� ��...spell ��� "%s"��(��) �а� �ֽ��ϴ�undo ��� �д� ��: %sviminfo ��� "%s"%s%s%s��(��) �д� ���ܾ� ��� %s �д� �� ...������ �������ϴ�. ����� ����� ��� ���� �����ϴ�.������ �������ϴ�. ��� �� ����� �� Ȯ���� ���ž߸� �մϴ�.��� ���� �ٽ� �ʱ�ȭ�ٲٱ���� �ٲٱ�(&A)��� �ٲٱ��ٲ� ���ڿ�:Vi ȣȯ ���·� �����Դϴ������ �����̸�, �Էµ� ���ڴ� ��Ե˴ϴ��ٸ� �̸����� ������� ���� ��ȭ������𷺼� �������� �������� �������� ����"%s"�� �ٲ� ���� �����ұ��?�� ã�� ��: %s��Ե� ��� ã�� ��: %s�±� ã�� ��.ã�� ��: %s��ũ�ѹ� ����: �� �Ƚ���� ������Ʈ���� �� �� �����ϴ�.ã�� ���ڿ�"%s"��(��) ã�� ��"%s"��(��) "%s"���� ã�� ����Ե� ��� %s ã�� ���±� ��� %s ã�� ���� ���� ������ ������ ":help E312"�� �Է��ϼ���.�� ���� ������ ������ ":help W11"�� �Է��ϼ���.�� ���� ������ ������ ":help W12"�� �Է��ϼ���.�� ���� ������ ������ ":help W16"�� �Է��ϼ���.���丮 ���� ��ȭ�����������ͷ� ������ ��...���� �����ֱ��� �޽�� ���̱�%s�� ���� ��ȣ:ũ��:undo�� ����� ��� undo ��� ���� �dzʶݴϴ��̾��մϴ�, ���� ��� "%s"��(��) ã�� �� �����ϴ��˼�, ������ �� �����ϴ��˼�, %ld���� �����̾��մϴ�, �� ���� ����� �� �����ϴ�, Perl ��̺귯���� �ε��� �� �����ϴ�.�� ��ũ��Ʈ �ε��� ����� �Ŀ��� �ּ���!���� ũ�� ������Ÿ��:Substitute ���� ��� "���� ��� "%s"�� �ֽ��ϴ�, ������?���� ���� �̹� �����մϴ�!���� ���� ��ȣȭ��: "%s"���� ���� ã���:�� ���� %d�� �޴��� ���X ���÷��� ����� �����߽��ϴ����� ���� �� �ּż� �����ϴ�The only match�� ���� diff ��� ���� ����� �Ǿ����ϴ�.�� cscope ���� â �����⸦ ������� �ʽ��ϴ�.
�ʹ� ���� "+command" "-c command" Ȥ�� "--cmd command" ���compound �÷��װ� �ʹ� �����ϴ��ʹ� ���� �� ���postponed ���λ簡 �ʹ� �����ϴ�postponed ���λ��(��) compound �÷��װ� �ʹ� �����ϴ�%s ��� %d�� �ʹ� ���� ����: %s������� �ܾ� ��: %dTrailing text in %s line %d: %s:qa! �Է� �Ŀ� <����> Ű�� �����ø� ������ ����ϰ� ���� �����մϴ����� �Է��� <����> (���ھ����� ���): ���� �Է��� <����>�� ���콺 Ŭ�� (���ھ����� ���): Unable to read block 0 from ��� ���� �̸��� ����� �� �����ϴ����𸣴� �ɼ� ���%s ��� %d�� �𸣴� �÷���: %s%s ��� %d�� �𸣴� Ȥ�� �ߺ��� �׸�: %s���� ���������� 3.0 ��� ����Ͻʽÿ�.
�� ���� ��� CUT_BUFFER0�� ����߽��ϴ��ؽ�Ʈ ��Ͽ� ������Ͽ��� ������ ��ȣ Ű�� ����մϴ�.
���� ��� "%s"��(��) ����մϴ��� - �ָ��� - ã�Ƽ� �ٲٱ�...�� - ã��...�� - ���� Vi�� ������: â�� �� �� �����ϴ�!
VIMRUN.EXE�� $PATH���� ã�� �� �����ϴ�.
�ܺ� ���� ���� �� ���� �� �����ϴ�.
�� ���� ������ ���÷��� :help win32-vimrun�� ���ʽÿ�.Vim - �۲� ���ñ��� E458: ����� ��Ʈ���� �Ҵ��� �� �����ϴ�, ��� ���� �߸��� �� �ֽ��ϴ��� ����� ��ȭ���Vim ����Vim ����: ~a���� %d ������ �����ϴ�
���� ������ �ҽ��� �� �� �ְ� ��¥�� ����˴ϴ���: %s �̺�Ʈ�� ��ҽ��ϴ�
��: �Է� �д� �� ����, �������...
Vim: ����: NetBeans���� gvim ��� ����
Vim: ����: �� ������ ���� Cygwin �͹̳ο��� ������ �� �����ϴ�
��: ��� â�� �װ� �� ��Դϴ�
��: ǥ��Է¿��� �д� ��...
��: ���� �����ڷκ��� "die" ��û�� �޾ҽ��ϴ�
��: ���: �͹̳η� ���� �Է¹�� �� �����ϴ�
��: ���: �͹̳η� ����� �� �����ϴ�
W10: ���: �б� ���� ���� ��ġ�� �ֽ��ϴ�W11: ���: ��� "%s"��(��) ��ġ�� ����� �ڿ� �ٲ����ϴ�W12: ���: ��� "%s"��(��) �ٲ��� ��������� ���� ���۵� �ٲ����ϴ�W13: ���: ��� "%s"��(��) ��ġ�� ����� �ڿ� �������ϴ�W14: ���: ��� �̸� ���� ���ƽ��ϴ�W15: ���: �߸��� �� �����. ^M�� ���� �� �����ϴ�W16: ���: ��� "%s"�� ���°� ��ġ�� ����� �ڿ� �ٲ����ϴ�W17: Arabic�� UTF-8 ���ڵ� �ʿ�, ':set encoding=utf-8' �ϼ���W18: �׷� �̸��� �̻��� ����W19: ����� augroup�� ���Ϸ��� �մϴ�W20: �䱸�Ǵ� ��̼� ���� 2.x�� ������� ���, ���� ����: %sW21: �䱸�Ǵ� ��̼� ���� 3.x�� ������� ���, ���� ����: %sW22: :endfunction �ڿ� ���ڿ��� ���: %s���: ���� ��� �ڿ� �ٲ����ϴ�!!!������: �ܾ� ��� "%s.%s.spl" Ȥ�� "%s.ascii.spl"�� ã�� �� �����ϴ����: �ܾ� ��� "%s_%s.spl" Ȥ�� "%s_ascii.spl"�� ã�� �� �����ϴ����: �� �ۿ� �ٸ� ���۷� �����ϴ� (autocommand�� Ȯ���Ͻʽÿ�)���: ���� ��ȣ ���� ����; :help 'cm'�� Ȯ���ϼ������: compound�� NOBREAK �� �� ��õ����: %s ������ ������� �ʽ��ϴ����: �͹̳�� ���� ���¸� ǥ���� �� �����ϴ�While opening file "��� ���� ��� undo ��Ͽ� ��� �� �����ϴ�: %sundo ���� �ƴϾ ��� �� �����ϴ�: %sâ ��ġ: X %d, Y %d�ܾ� '%.*s'��(��) %s�� �߰����ܾ� '%.*s'��(��) %s���� ���ŵ��ٸ� �ٿ� ������� �Ϻθ� �����ұ��?spell ��� %s ���� �� ...%s ���� ���� ���� �� ...undo ��� ���� ��: %sViminfo ��� "%s"��(��) ���� ��%s ��� %d�� �߸��� CHECKCOMPOUNDPATTERN ��: %s%s ��� %d�� �߸��� COMPOUNDMIN ��: %s%s ��� %d�� �߸��� COMPOUNDRULES ��: %s%s ��� %d�� �߸��� COMPOUNDSYLMAX ��: %s%s ��� %d�� �߸��� COMPOUNDWORDMAX ��: %sXSMP�� ICE ���� ���ø� �����߽��ϴ�XSMP SmcOpenConnection ����: %sXSMP�� save-yourself ��û�� �����ϰ� �ֽ��ϴ�XSMP�� ICE ���� �Ҿ��Ƚ��ϴ�XSMP�� ���� ���� ��Դϴ�����[%ld �ٿ��� ��ȯ ����][CR ����][���������ϴ�][��ġ][���� �ʹ� ŭ][����][%ld �ٿ� �߸��� ���Ʈ][�ҿ���� ������ ��][��ġ ���][��ȯ �� �˴ϴ�][�� ���丮][�� ���][�� ���][���ο�][�̸� ����][���������� ��ģ �� ���� �� ��]
[��ġ�� �ʾ��][��� �� �˴ϴ�][�̸� ����][Quickfix ���][�б� ����][�б� ����][�б� ����][Scratch][��ȯ �Ǿ����ϴ�][��ȣȭ �Ǿ����ϴ�][���� ���][����][���/����][���][��� ..]       �־� ��� ��ġ��[�� �� �߸�][�� ���][��][noeol][�б� ����][����][���н� ���][���н�]���(_C)�ݱ�(_C)Ȯ��(_O)����(_O)����(_S)add() ���after�׸��� �ٲ� ���� Ȯ���Ϸ��� ���� ��Ͽ� ���� diff�� �����ϼ���)������ ���۸� ����Ϸ��� �Ͽ����ϴ������� �� ������ ����Ϸ��� �Ͽ����ϴ������� â�� ����Ϸ��� �Ͽ����ϴ�autocommand �ڵ���: %s <buffer=%d>�ڵ���� %sbeforeblock of %ld lines yankedblock of 1 line yanked���۰� �̻��մϴ�by by Bram Moolenaar et al.inputrestore()�� inputsave()���� ���� �ҷ������ϴ�%s �θ��� ��OutputObject �Ӽ��� ���� �� �����ϴ�'charconvert'�� ��°��� ��� �� �����ϴ��ܼ� ���¸� �ٲ� �� �����ϴ� ?!
����/â ���� ���� �� �����ϴ�: ��ü�� �������ϴ���� ���� �� �����ϴ�vim.Dictionary �Ӽ��� ���� �� �����ϴ�vim.List �Ӽ��� ���� �� �����ϴ���� �� �� �����ϴ���� ������� �� �����ϴ���� �����ְų� ���� �� �����ϴ�fixed dictionary�� ������ �� �����ϴ�cannot open �ݹ� ���� ����� �� �����ϴ�: ����/â�� �̹� ���������ϴ��ݹ� ���� ����� �� �����ϴ�: ����/â ����� ã�� �� �����ϴ���� �ٲ� �� �����ϴ�undo ������ ������ �� �����ϴ��Ӽ� %s��(��) ������ �� �����ϴ���� ������ �� �����ϴ�cannot yank; delete anywaychangechanges�ݱ����: %s%s���� ���"%s"��(��) �ҷ� ��� �� �����ϴ����۸� �� �� �������ϴ�cs_create_connection ����� �����߽��ϴ�cs_create_connection setpgid�� �����߽��ϴ�cs_create_connection: fr_fp�� ���� fdopen ����cs_create_connection: to_fp�� ���� fdopen ����cscope ���:
cscope ���� %s��(��) ������ϴ��ۼ� ��ġ�� ���� �ۿ� �ֽ��ϴ�defaulting to '���� 1�� ����������?dictionary�� ���ֽ��ϴ�dlerror = "%s"���� ���������� ����� ���� ���⸦ ������ ���ʽÿ�!�� Ű ���� ����� �ʽ��ϴ�ȯ�� �������� �ڵ鷯ǥ���� ������� �ʵ��� ����� �Ǿ����ϴ�extend() ���dictionary�� '%s' Ű�� �߰��� �� �����ϴ����丮�� �ٲ� �� �����ϴ����� �̸��� ������ �� �����ϴ��Լ� %s��(��) ������ �� �����ϴ�fewer lines���
��� �̸� / ���ؽ�Ʈ / ��
filter() ���%s �ҷ���̱� �������� ���� �� �ܰ��: %d������ 0freeing %ld lines�Լ� %s��(��) ������� �ʽ��ϴ�gvimext.dll ������������ �ɼ�in path ---
insert() ����߸��� �Ӽ�: %s�߸��� ���� ��ȣ�߸��� ǥ����߸��� ��ũ �̸���(��) ��ġ�� �ƴմϴ� ('opendevice' �ɼ���� ���)��(��) ���丮�Դϴ���(��) ���� �ƴմϴ���� Ȥ�� �� �� �ִ� ��ġ�� �ƴմϴ��б� ����Դϴ� (������� ! ���ϱ�)Ű���� ���ͷ�Ʈ%4ld ��:��� %6d, �ܾ� %6d - %s%ld ��%ld / %ld �� --%d%%-- ĭ %ld ��: %s%ld ��: "%s"��(��) �ҷ� ��� �� �����ϴ�%ld ��: "%s" �ҷ���̴� ��line less�� ��ȣ�� ������ ������ϴ��� ��ȣ�� ������ ������ϴ�list ����� ������ ������ϴ�list�� ���ֽ��ϴ��α׾ƿ�map() �����ũ�� ������� �ʾҽ��ϴ�match %dmatch %d of %dmaximal mch_get_shellsize: �ܼ�� �ƴѰ�??
�޴����� ��->���� ����->��� ��� ���� �����Ͻø� �޴����� ��->���� ����->Vi ȣȯ ���� �����Ͻø�   �̿� ���� ������ ������    �޴����� ����->���  �����̿� ���� ������ ������    �޴� ����->Sponsor/Registerminimal modelinemore linemore lines�� GUI�� netbeans�� ������� �ʽ��ϴ�
�� ���� ��۵Ǿ����ϴ�
�ƴϿ�cscope ����� �����ϴ�
�׷� �� ������ �����ϴ��׷� â�� �����ϴ�������� ����Vim sandbox������ ����� �ʽ��ϴ�not found '%s'���� ã�� �� ����: "%s"��� ������ �ʾҽ��ϴ����� 0���� ũ�ų� ���ƾ� �մϴ����� 0���� Ŀ�� �մϴ�pe_line_count�� 0�Դϴ�pre-vimrc ��� ���б� ���� �Ӽ�: ��������remove() ���%s(��)�� �ٲ� (y/n/a/q/l/^E/^Y)?reverse() ����� %d �� %d���� ã���, ó������ ���ó���� ã���, ������ ���shell ���� %d��(��) �����־����ϴ��˴ٿ�sort() ���"%s"��(��) �ҷ���̴� ��stack_idx�� 0���߸� �մϴ����ڿ��� newline�� ����� �� �����ϴ�C-��� �ּ����� �������syncing starts tag %d of %d%s�±�̸�to %s on %s�̿� ���� ������ ������    :help cp-default<����> �Է��̿� ���� ������ ������    :help iccf<����>       �Է��̿� ���� ������ ������    :help register<����>   �Է��̿� ���� ������ ������    :help sponsor<����>    �Է��� ������ ������           :help version8<����>   �Է��¶�� ����� ������     :help<����> �Ǵ� <F1>  �Է���������                   :q<����>               �Է��� �⺻���� ����Ϸ���     :set nocp<����>        �Է�%s��(��) vim list�� ������ �� �����ϴ��ɼ� ���� �� �� �����ϴ�uniq() ������𸣴� �÷���: �𸣴� �ɼ��𸣴� �� �ɼ��̸����� �Լ� %s��(��) ������� �ʽ��ϴ����� C ���� ��� ����Ͽ� �ʹ� Ů�ϴ����� C ���� ��� ����Ͽ� �ʹ� �۽��ϴ��� �� ����â ��ȣ�� ������ ������ϴ�â�� �̻��մϴ�(Ŭ����) GUI.Carbon GUI.Cocoa GUI.GTK2 GUI.GTK2-GNOME GUI.GTK3 GUI.GUI.Photon GUI.X11-Athena GUI.X11-Motif GUI.X11-neXtaw GUI.GUI ����.��ġ ���Ⱑ 'opendevice' �ɼ���� ���PK�j�Zd��i77 vim80/lang/menu_ca_es.latin1.vimnu�[���" Menu translations for Catalan
"
" Maintainer:	Ernest Adrogu� <eadrogue@gmx.net>
" Last Change:	26 Jul 2017
"

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" The translations below are in latin1, but they work for cp1252,
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
  scriptencoding latin1
endif

" men� Ajuda
menutrans &Help				&Ajuda
menutrans &Overview<Tab><F1>		&Introducci�<Tab><F1>
menutrans &User\ Manual			&Manual\ de\ l'usuari
menutrans &How-to\ links		Com\ &fer\.\.\.?
menutrans &Find\.\.\.			&Cerca\.\.\.
menutrans &Credits			&Autors
menutrans Co&pying			Con&dicions
menutrans &Sponsor/Register	&Patrocini/Registre
menutrans O&rphans			&Orfes
menutrans &Version			&Versi�
menutrans &About			&Quant\ a\.\.\.
" text del di�leg Ajuda/Cerca...
let g:menutrans_help_dialog = "Introdu�u el terme sobre el qual necessiteu ajuda.\n\nUseu el prefix i_ per ordres d'entrada (p.ex.: i_CTRL-X)\nUseu el prefix c_ per ordres de la l�nia d'ordres (p.ex.: c_<Del>)\nUseu el prefix ' per noms d'opcions (p.ex.: 'shiftwidth')"

" men� Fitxer
menutrans &File				&Fitxer
menutrans &Open\.\.\.<Tab>:e		&Obre\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Obre\ en\ una\ &finestra\ nova\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Obre\ pestanya\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Nou<Tab>:enew
menutrans &Close<Tab>:close		&Tanca<Tab>:close
menutrans &Save<Tab>:w			&Desa<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	&Anomena\ i\ desa\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	&Mostra\ les\ difer�ncies\ respecte\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Aplica\ les\ modificacions\ de\.\.\.
menutrans &Print			&Imprimeix
menutrans Sa&ve-Exit<Tab>:wqa		Desa\ i\ s&urt<Tab>:wqa
menutrans E&xit<Tab>:qa			&Surt<Tab>:qa

" men� Edita
menutrans &Edit				&Edita
menutrans &Undo<Tab>u			&Desf�s<Tab>u
menutrans &Redo<Tab>^R			&Ref�s<Tab>^R
menutrans Rep&eat<Tab>\.		Re&peteix<Tab>\.
menutrans Cu&t<Tab>"+x			Re&talla<Tab>"+x
menutrans &Copy<Tab>"+y			&Copia<Tab>"+y
menutrans &Paste<Tab>"+gP		Engan&xa<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Posa\ &abans<Tab>[p
menutrans Put\ &After<Tab>]p		P&osa\ despr�s<Tab>]p
menutrans &Delete<Tab>x			Suprimeix<Tab>x
menutrans &Select\ All<Tab>ggVG		&Selecciona-ho\ tot<Tab>ggVG
menutrans &Find\.\.\.			&Cerca\.\.\.
menutrans &Find<Tab>/			&Cerca<Tab>/
menutrans Find\ and\ Rep&lace		Cerca\ i\ s&ubstitueix
menutrans Find\ and\ Rep&lace\.\.\.	Cerca\ i\ s&ubstitueix\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	Cerca\ i\ s&ubstitueix<Tab>:%s
menutrans Find\ and\ Rep&lace<Tab>:s	Cerca\ i\ s&ubstitueix<Tab>:s
menutrans Settings\ &Window		Fin&estra\ d'opcions
menutrans Startup\ &Settings    Opcions\ i&nicials
menutrans &Global\ Settings		Opcions\ &globals
" submen� Edita/Opcions Globals
  menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Ressaltat\ de\ &patrons<Tab>:set\ hls!
  menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Sensibilitat\ a\ les\ ma&j�scules<Tab>:set\ ic!
  menutrans Toggle\ &Showmatch<Tab>:set\ sm!		&Ressaltat\ de\ coincid�ncies<Tab>:set\ sm!
  menutrans &Context\ lines				L�nies\ de\ co&ntext
  menutrans &Virtual\ Edit				Edici�\ &virtual
" submen� Edita/Opcions Globals/Edici� virtual
    menutrans Never					&Mai
    menutrans Block\ Selection				&Selecci�\ de\ blocs
    menutrans Insert\ mode				Mode\ d'&inserci�
    menutrans Block\ and\ Insert			&Blocs i inserci�
    menutrans Always					S&empre
  menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Mode\ d'&inserci�<Tab>:set\ im!
  menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Co&mpatible\ amb\ Vi<Tab>:set\ cp!
  menutrans Search\ &Path\.\.\.				&Ubicacions\.\.\.
  menutrans Ta&g\ Files\.\.\.				Fitxers\ d'&etiquetes\.\.\.
  menutrans Toggle\ &Toolbar				&Barra\ d'eines
  menutrans Toggle\ &Bottom\ Scrollbar			Barra\ de\ &despla�ament\ inferior
  menutrans Toggle\ &Left\ Scrollbar			Barra\ de\ despla�ament\ e&squerra
  menutrans Toggle\ &Right\ Scrollbar			Barra\ de\ despla�ament\ dre&ta
menutrans F&ile\ Settings				Opcions\ del\ f&itxer
" submen� Edita/Opcions del fitxer
  menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	&Ennumera\ les\ l�nies<Tab>:set\ nu!
  menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Mode\ &llista<Tab>:set\ list!
  menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		A&justa\ les\ l�nies\ llargues<Tab>:set\ wrap!
  menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Ajusta\ sense\ partir\ &paraules<Tab>:set\ lbr!
  menutrans Toggle\ &expand-tab<Tab>:set\ et!		Est�n\ les\ ta&bulacions<Tab>:set\ et!
  menutrans Toggle\ &auto-indent<Tab>:set\ ai!		&Sagnia\ autom�tica<Tab>:set\ ai!
  menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Sagnia\ estil\ &C<Tab>:set\ cin!
  menutrans &Shiftwidth					Sa&gnia
  menutrans Soft\ &Tabstop				Amplada\ de\ &tabulaci�
  menutrans Te&xt\ Width\.\.\.				&Amplada\ del\ text\.\.\.
  menutrans &File\ Format\.\.\.				&Format\ del\ fitxer\.\.\.
menutrans Select\ Fo&nt\.\.\.		&Fosa\.\.\.
menutrans C&olor\ Scheme		Es&quema\ de\ colors
" submen� Edita/Esquema de colors
  menutrans blue			blau
  menutrans darkblue			blau\ fosc
  menutrans default			normal
  menutrans desert			desert
  menutrans evening			vesprada
  menutrans morning			matinada
  menutrans peachpuff			pr�ssec
  menutrans shine			brillant
menutrans &Keymap			&Mapa\ de\ tecles
" submen� Edita/Mapa de tecles
  menutrans None			Cap
  menutrans accents			Accents
  menutrans arabic			�rab
  menutrans czech			Txec
  menutrans esperanto			Esperanto
  menutrans greek			Grec
  menutrans hebrew			Hebreu
  menutrans hebrewp			Hebreu\ (fon�tic)
  menutrans lithuanian-baltic		Litu�\ (b�ltic)
  menutrans pinyin			Mandar�\ (fon�tic)
  menutrans russian-jcuken		Rus\ (jcuken)
  menutrans russian-jcukenwin		Rus\ (jcukenwin)
  menutrans russian-yawerty		Rus\ (yawerty)
  menutrans serbian			Serbi
  menutrans serbian-latin		Serbi\ (llat�)
  menutrans slovak			Eslovac
" text del di�leg Edita/Opcions globals/Ubicacions...
let g:menutrans_path_dialog = "Introdu�u les ubicacions on cercar fitxers.\nSepareu els noms dels directoris amb una coma."
" text del di�leg Edita/Opcions globals/Fitxers d'etiquetes...
let g:menutrans_tags_dialog = "Introdu�u els noms dels fitxers d'etiquetes.\nSepareu els noms amb una coma."
" text del di�leg Edita/Opcions del fitxer/Amplada del text...
let g:menutrans_textwidth_dialog = "Introdu�u la nova amplada del text (0 per infinit): "
" text del di�leg Edita/Opcions del fitxer/Format del fitxer...
let g:menutrans_fileformat_dialog = "Seleccioneu el format per escriure el fitxer."


" men� Eines
menutrans &Tools			Ei&nes
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Salta\ a\ aquesta\ etiqueta<Tab>g^]
menutrans Jump\ &back<Tab>^T		Salta\ en&rere<Tab>^T
menutrans Build\ &Tags\ File		Crea\ un\ fitxer\ d'eti&quetes
menutrans &Spelling         &Ortografia
" submen� Eines/Ortografia
  menutrans &Spell\ Check\ On         Activa\ la\ &revisi�\ ortogr�fica
  menutrans Spell\ Check\ &Off        &Desactiva\ la\ revisi�\ ortogr�fica
  menutrans To\ &Next\ error<Tab>]s       Error\ &seg�ent<tab>]s
  menutrans To\ &Previous\ error<Tab>[s   Error\ &anterior<tab>[s
  menutrans Suggest\ &Corrections<Tab>z=  Su&ggeriments<Tab>z=
  menutrans &Repeat\ correction<Tab>:spellrepall  Re&peteix\ la\ correcci�<Tab>:spellrepall
  menutrans Set\ language\ to\ "en"       Selecciona\ l'idioma\ "en"
  menutrans Set\ language\ to\ "en_au"    Selecciona\ l'idioma\ "en_au"
  menutrans Set\ language\ to\ "en_ca"    Selecciona\ l'idioma\ "en_ca"
  menutrans Set\ language\ to\ "en_gb"    Selecciona\ l'idioma\ "en_gb"
  menutrans Set\ language\ to\ "en_nz"    Selecciona\ l'idioma\ "en_nz"
  menutrans Set\ language\ to\ "en_us"    Selecciona\ l'idioma\ "en_us"
  menutrans Set\ language\ to\ "ca"       Selecciona\ l'idioma\ "ca"
  menutrans Set\ language\ to\ "es"       Selecciona\ l'idioma\ "es"
  menutrans Set\ language\ to\ "fr"       Selecciona\ l'idioma\ "fr"
  menutrans Set\ language\ to\ "it"       Selecciona\ l'idioma\ "it"
  menutrans &Find\ More\ Languages        &Cerca\ altres\ idiomes
menutrans &Folding			&Plecs
" submen� Eines/Plecs
  menutrans &Enable/Disable\ folds<Tab>zi  &Habilita/Deshabilita\ els\ plecs<Tab>zi
  menutrans &View\ Cursor\ Line<Tab>zv	&L�nia\ del\ cursor\ visible<Tab>zv
  menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx  &Nom�s\ visible\ la\ l�nia\ del\ cursor<Tab>zMzx
  menutrans C&lose\ more\ folds<Tab>zm	&Tanca\ m�s\ plecs<Tab>zm
  menutrans &Close\ all\ folds<Tab>zM	Tanca\ t&ots\ els\ plecs<Tab>zM
  menutrans O&pen\ more\ folds<Tab>zr	Obre\ &m�s\ plecs<Tab>zr
  menutrans &Open\ all\ folds<Tab>zR	O&bre\ tots\ els\ plecs<Tab>zR
  menutrans Fold\ Met&hod		M�to&de
" submen� Eines/Pl�cs/M�tode
    menutrans M&anual			M&anual
    menutrans I&ndent			&Sagnia
    menutrans E&xpression		E&xpressi�
    menutrans S&yntax			S&intaxi
    menutrans &Diff			&Difer�ncies
    menutrans Ma&rker			&Marques
  menutrans Create\ &Fold<Tab>zf	&Crea\ un\ plec<Tab>zf
  menutrans &Delete\ Fold<Tab>zd	&Elimina\ un\ plec<Tab>zd
  menutrans Delete\ &All\ Folds<Tab>zD	Elimina\ tot&s\ els\ plecs<Tab>zD
  menutrans Fold\ col&umn\ width	&Amplada\ de\ la\ columna\ de\ plecs
menutrans &Diff				&Difer�ncies
" submen� Eines/Difer�ncies
    menutrans &Update			&Actualitza
    menutrans &Get\ Block		&Obtingues\ un\ bloc
    menutrans &Put\ Block		&Posa\ un\ bloc
menutrans &Make<Tab>:make		Crida\ &make<Tab>:make
menutrans &List\ Errors<Tab>:cl		Llista\ d'&errors<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	&Llista\ de\ missatges<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		Error\ se&g�ent<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	Error\ an&terior<Tab>:cp
menutrans &Older\ List<Tab>:cold	Llista\ &antiga<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	Llista\ no&va<Tab>:cnew
menutrans Error\ &Window		F&inestra\ d'errors
" submen� Eines/Finestra d'errors
  menutrans &Update<Tab>:cwin		&Actualitza<Tab>:cwin
  menutrans &Open<Tab>:copen		&Obre<Tab>:copen
  menutrans &Close<Tab>:cclose		&Tanca<Tab>:cclose
menutrans Se&t\ Compiler		&Compilador
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Converteix\ a\ &HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	Torna\ al\ format\ &original<Tab>:%!xxd\ -r


" men� Buffers
menutrans &Buffers			&Buffers
menutrans &Refresh\ menu		&Refresca\ el\ men�
menutrans &Delete			&Elimina
menutrans &Alternate			&Alterna
menutrans &Next				&Seg�ent
menutrans &Previous			A&nterior
let g:menutrans_no_file = "[Cap fitxer]"


" men� Finestra
menutrans &Window			F&inestra
menutrans &New<Tab>^Wn			&Nova<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Divideix<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Divideix\ &en\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Divideix\ &verticalment<Tab>^Wv
menutrans Split\ File\ E&xplorer	E&xplorador\ de\ fitxers
menutrans &Close<Tab>^Wc		&Tanca<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Tanca\ les\ altre&s<Tab>^Wo
menutrans Move\ &To			M&ou\ a
" submen� Finestra/Mou
  menutrans &Top<Tab>^WK		&Dalt\ de\ tot<Tab>^WK
  menutrans &Bottom<Tab>^WJ		&Baix\ de\ tot<Tab>^WJ
  menutrans &Left\ side<Tab>^WH		Costat\ &esquerra<Tab>^WH
  menutrans &Right\ side<Tab>^WL	Costat\ d&ret<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Alterna\ cap\ am&unt<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Alte&rna\ cap\ avall<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		&Iguala<Tab>^W=
menutrans &Max\ Height<Tab>^W_		M�xima\ &al�ada<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		M�nima\ a&l�ada<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		M�xima\ a&mplada<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		M�nima\ am&plada<Tab>^W1\|


" men� emergent
menutrans &Undo				&Desf�s
menutrans Cu&t				&Retalla
menutrans &Copy				&Copia
menutrans &Paste			&Enganxa
menutrans &Delete			&Suprimeix
menutrans Select\ Blockwise		Se&lecci�
menutrans Select\ &Word			Selecci�\ de\ &paraules
menutrans Select\ &Line			Selecci�\ de\ &l�nies
menutrans Select\ &Block		Selecci�\ de\ bl&ocs
menutrans Select\ &All			Selecciona-ho\ &tot


" barra d'eines
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Obre un fitxer
    tmenu ToolBar.Save		Desa el fitxer
    tmenu ToolBar.SaveAll	Desa tots els fitxers
    tmenu ToolBar.Print		Imprimeix
    tmenu ToolBar.Undo		Desf�s
    tmenu ToolBar.Redo		Ref�s
    tmenu ToolBar.Cut		Retalla
    tmenu ToolBar.Copy		Copia
    tmenu ToolBar.Paste		Enganxa
    tmenu ToolBar.Find		Cerca
    tmenu ToolBar.FindNext	Cerca el seg�ent
    tmenu ToolBar.FindPrev	Cerca l'anterior
    tmenu ToolBar.Replace	Cerca i substitueix
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Finestra nova
      tmenu ToolBar.WinSplit	Divideix la finestra
      tmenu ToolBar.WinMax	Al�ada m�xima
      tmenu ToolBar.WinMin	Al�ada m�nima
      tmenu ToolBar.WinVSplit	Divideix la finestra verticalment
      tmenu ToolBar.WinMaxWidth	Amplada m�xima
      tmenu ToolBar.WinMinWidth	Amplada m�nima
      tmenu ToolBar.WinClose	Tanca la finestra
    endif
    tmenu ToolBar.LoadSesn	Carrega una sessi�
    tmenu ToolBar.SaveSesn	Desa la sessi�
    tmenu ToolBar.RunScript	Executa un script
    tmenu ToolBar.Make		Crida a make
    tmenu ToolBar.Shell		Obre l'int�rpret d'ordres
    tmenu ToolBar.RunCtags	Crea un fitxer d'etiquetes
    tmenu ToolBar.TagJump	Salta a una etiqueta
    tmenu ToolBar.Help		Ajuda
    tmenu ToolBar.FindHelp	Cerca a l'ajuda
  endfun
endif


" men� Sintaxi
menutrans &Syntax			&Sintaxi
menutrans &Manual			&Manual
menutrans A&utomatic			A&utom�tica
menutrans on/off\ for\ &This\ file	Activa/Desactiva\ en\ &aquest\ fitxer
menutrans &Show\ File\ Types\ in\ Menu	Mostra\ tots\ els\ &tipus\ al\ men�
menutrans &Off				&Desactiva
menutrans Co&lor\ test			Prova\ dels\ &colors
menutrans &Highlight\ test		Prova\ del\ &ressaltat
menutrans &Convert\ to\ HTML		Converteix\ a\ &HTML
menutrans Assembly			Ensamblador
menutrans Config			Configuraci�
menutrans Set\ '&syntax'\ only		Nom�s\ el\ ressaltat\ de\ sintaxi
menutrans Set\ '&filetype'\ too		Carrega\ tamb�\ els\ plugins

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Zp���3�3vim80/lang/menu_sl_si.utf-8.vimnu�[���" Menu Translations:	Slovenian / Slovensko
" Maintainer:		Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By:	Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change:		2016 Oct 17
" vim:set foldmethod=marker tabstop=8:

" TODO: add/check all '&'s

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" {{{ FILE / DATOTEKA
menutrans &File				&Datoteka
menutrans &Open\.\.\.<Tab>:e		&Odpri\ \.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Odpri\ de&ljeno\ \.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Odpri\ v\ zavi&hku\ \.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Nova<Tab>:enew
menutrans &Close<Tab>:close		&Zapri<Tab>:close
menutrans &Save<Tab>:w			&Shrani<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Shrani\ &kot\ \.\.\.<Tab>:sav
menutrans &Print			Na&tisni
menutrans Sa&ve-Exit<Tab>:wqa		Shrani\ in\ &končaj<Tab>:wqa
menutrans E&xit<Tab>:qa			&Izhod<Tab>:qa

if has("diff")
    menutrans Split\ &Diff\ with\.\.\.	Primerjaj\ z\ (di&ff)\ \.\.\.
    menutrans Split\ Patched\ &By\.\.\.	&Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA

" {{{ EDIT / UREDI
menutrans &Edit				&Uredi
menutrans &Undo<Tab>u			&Razveljavi<Tab>u
menutrans &Redo<Tab>^R			&Obnovi<Tab>^R
menutrans Rep&eat<Tab>\.		Po&novi<Tab>\.
menutrans Cu&t<Tab>"+x			&Izreži<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopiraj<Tab>"+y
menutrans &Paste<Tab>"+gP		&Prilepi<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vrini\ pred<Tab>[p
menutrans Put\ &After<Tab>]p		Vrini\ za<Tab>]p
menutrans &Delete<Tab>x			Iz&briši<Tab>x
menutrans &Select\ all<Tab>ggVG		Izberi\ vse<Tab>ggVG
menutrans &Find\.\.\.			Po&išči\ \.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Poišči\ in\ &zamenjaj\ \.\.\.

" [-- SETTINGS --]
menutrans Settings\ &Window				Nastavitve\ \.\.\.
menutrans Startup\ &Settings				Začetne\ nastavitve
menutrans &Global\ Settings				&Globalne\ nastavitve

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Vključi/izključi\ poudarjanje\ iskanega\ niza<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Vključi/izključi\ ločevanje\ velikih\ in\ malih\ črk<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Vključi/izključi\ kratek\ skok\ na\ pripadajoči\ oklepaj<Tab>:set\ sm!

menutrans &Context\ lines				Št\.\ vidnih\ vrstic\ pred/za\ kurzorjem

menutrans &Virtual\ Edit				Dovoli\ položaj\ kazalčka,\ kjer\ ni\ besedila
menutrans Never						Nikoli
menutrans Block\ Selection				Le\ med\ izbiranjem\ bloka
menutrans Insert\ mode					Le\ v\ načinu\ za\ pisanje
menutrans Block\ and\ Insert				Pri\ obojem
menutrans Always					Vedno
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Vključi/izključi\ način\ za\ pisanje<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Vključi/izključi\ združljivost\ z\ Vi-jem<Tab>:set\ cp!

menutrans Search\ &Path\.\.\.				Pot\ za\ iskanje\ \.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g-datoteke\.\.\.

menutrans Toggle\ &Toolbar				Pokaži/skrij\ Orodja
menutrans Toggle\ &Bottom\ Scrollbar			Pokaži/skrij\ spodnji\ drsnik
menutrans Toggle\ &Left\ Scrollbar			Pokaži/skrij\ levi\ drsnik
menutrans Toggle\ &Right\ Scrollbar			Pokaži/skrij\ desni\ drsnik

" Edit/File Settings
menutrans F&ile\ Settings				&Nastavitve\ datoteke

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Pokaži/skrij\ številke\ vrstic<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Pokaži/skrij\ nevidne\ znake<Tab>:set\ list! " space/tab
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Vključi/izključi\ prelome\ vrstic<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Vključi/izključi\ prelome\ vrstic\ med\ besedami<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Vključi/izključi\ zamenjavo\ tabulatorjev\ s\ presledki<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Vključi/izključi\ avtomatsko\ zamikanje\ vrstic<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Vključi/izključi\ C-jevski\ način\ zamikanja\ vrstic<Tab>:set\ cin!

" other options
menutrans &Shiftwidth					Širina\ zamika\ vrstic
menutrans Soft\ &Tabstop				Širina\ &tabulatorja
menutrans Te&xt\ Width\.\.\.				Širina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\.				Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme				&Barvna\ shema\ \.\.\.
menutrans &Keymap					Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\.				Pisava\ \.\.\.
" }}} EDIT / UREDI

" {{{  TOOLS / ORODJA
menutrans &Tools					O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^]			&Skoči\ k\ tej\ znački<Tab>g^]
menutrans Jump\ &back<Tab>^T				Skoči\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File				Napravi\ datoteke\ z\ značkami\ (tag)
if has("spell")
    menutrans &Spelling					Črkovalnik
    menutrans &Spell\ Check\ On				&Vključi
    menutrans Spell\ Check\ &Off			&Izključi
    menutrans To\ &Next\ error<Tab>]s			K\ &naslednji\ napaki<Tab>]s
    menutrans To\ &Previous\ error<Tab>[s		K\ &prejšnji\ napaki<Tab>[s
    menutrans Suggest\ &Corrections<Tab>z=		Predlagaj\ popravek<Tab>z=
    menutrans &Repeat\ correction<Tab>:spellrepall	Po&novi\ popravke\ na\ vseh\ besedah<Tab>:spellrepall
    menutrans Set\ language\ to\ "en"			Angleški\ "en"
    menutrans Set\ language\ to\ "en_au"		Angleški\ "en_au"
    menutrans Set\ language\ to\ "en_ca"		Angleški\ "en_ca"
    menutrans Set\ language\ to\ "en_gb"		Angleški\ "en_gb"
    menutrans Set\ language\ to\ "en_nz"		Angleški\ "en_nz"
    menutrans Set\ language\ to\ "en_us"		Angleški\ "en_us"
    menutrans Set\ language\ to\ "sl"			Slovenski\ "sl"
    menutrans Set\ language\ to\ "de"			Nemški\ "de"
    menutrans Set\ language\ to\ 			Črkovalnik:\
    menutrans &Find\ More\ Languages			&Ostali\ jeziki
endif
if has("folding")
  menutrans &Folding					Zvijanje\ kode
  " open close folds
  menutrans &Enable/Disable\ folds<Tab>zi		Omogoči/onemogoči\ zvijanje<Tab>zi " Omogoči/onemogoči\ zavihke
  menutrans &View\ Cursor\ Line<Tab>zv			Pokaži\ vrstico\ s\ kazalčkom<Tab>zv " kjer je kazalec
  menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Pokaži\ samo\ vrstico\ s\ kazalčkom<Tab>zMzx
  menutrans C&lose\ more\ folds<Tab>zm			Zvij\ naslednji\ nivo<Tab>zm " Zapri\ več\ zavihkov
  menutrans &Close\ all\ folds<Tab>zM			Zvij\ vso\ kodo<Tab>zM " Zapri\ vse\ zavihke
  menutrans O&pen\ more\ folds<Tab>zr			Razvij\ en\ nivo<Tab>zr " Odpri\ več\ zavihkov
  menutrans &Open\ all\ folds<Tab>zR			Razvij\ vso\ kodo<Tab>zR " Odpri\ vse\ zavihke
  " fold method
  menutrans Fold\ Met&hod				Kriterij\ za\ zvijanje " Ustvarjanje\ zavihkov
  menutrans M&anual					&Ročno
  menutrans I&ndent					Glede\ na\ &poravnavo
  menutrans E&xpression					Z\ &izrazi\ (foldexpr)
  menutrans S&yntax					Glede\ na\ &sintakso
  menutrans &Diff					Razlike\ (&diff)
  menutrans Ma&rker					Z\ &markerji/označbami
  " create and delete folds
  " TODO accelerators
  menutrans Create\ &Fold<Tab>zf			Ustvari\ zvitek<Tab>zf
  menutrans &Delete\ Fold<Tab>zd			Izbriši\ zvitek<Tab>zd
  menutrans Delete\ &All\ Folds<Tab>zD			Izbriši\ vse\ zvitke<Tab>zD
  " moving around in folds
  menutrans Fold\ column\ &width			Širina\ drevesa\ z\ zvitki
endif  " has folding

if has("diff")
  menutrans &Diff					Razlike\ (&Diff)
  menutrans &Update					&Posodobi<Tab>
  menutrans &Get\ Block					&Sprejmi\ (spremeni\ to\ okno) " XXX: check if translation is OK
  menutrans &Put\ Block					&Pošlji\ (spremeni\ drugo\ okno)
endif

menutrans &Make<Tab>:make				Napravi\ (&make)<Tab>:make
menutrans &List\ Errors<Tab>:cl				Pokaži\ napake<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!			Pokaži\ sporočila<Tab>:cl!
menutrans &Next\ Error<Tab>:cn				K\ &naslednji\ napaki<Tab>:cn
menutrans &Previous\ Error<Tab>:cp			K\ &prejšnji\ napaki<Tab>:cp
menutrans &Older\ List<Tab>:cold			K\ &starejšemu\ seznamu\ napak<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew			K\ &novejšemu\ seznamu\ napak<Tab>:cnew

menutrans Error\ &Window				Okno\ z\ napakami
menutrans &Update<Tab>:cwin				&Posodobi<Tab>:cwin
menutrans &Open<Tab>:copen				&Odpri<Tab>:copen
menutrans &Close<Tab>:cclose				&Zapri<Tab>:cclose

menutrans &Set\ Compiler				Nastavi\ &prevajalnik
menutrans Se&T\ Compiler				Nastavi\ &prevajalnik " bug in original translation?

menutrans &Convert\ to\ HEX<Tab>:%!xxd			Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r			Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}}  TOOLS / ORODJA

" {{{ SYNTAX / BARVANJE KODE
menutrans &Syntax				&Barvanje\ kode
menutrans &Show\ filetypes\ in\ menu		Podprte\ vrste\ datotek
menutrans Set\ '&syntax'\ only			Samo\ barvanje\ ('&syntax')
menutrans Set\ '&filetype'\ too			Tudi\ obnašanje\ ('&filetype')
menutrans &Off					&Izključeno
menutrans &Manual				&Ročno
menutrans A&utomatic				&Avtomatsko
menutrans on/off\ for\ &This\ file		Vključi/izključi\ za\ to\ datoteko
menutrans Co&lor\ test				Preizkus\ barv
menutrans &Highlight\ test			Preizkus\ barvanja\ kode
menutrans &Convert\ to\ HTML			Pretvori\ v\ &HTML
" }}} SYNTAX / BARVANJE KODE

" {{{ BUFFERS / MEDPOMNILNIK
menutrans &Buffers					&Medpomnilnik " XXX: ni najbolje: okno bi bolj pristajalo, ampak okno je že
menutrans &Refresh\ menu				&Osveži
menutrans Delete					&Briši
menutrans &Alternate					&Menjaj
menutrans &Next						&Naslednji
menutrans &Previous					&Prejšnji
menutrans [No\ File]					[Brez\ datoteke]
" }}} BUFFERS / MEDPOMNILNIK

" {{{ WINDOW / OKNO
menutrans &Window			&Okno
menutrans &New<Tab>^Wn			&Novo<Tab>^Wn
menutrans S&plit<Tab>^Ws		Razdeli<Tab>^Ws
menutrans Split\ &Vertically<Tab>^Wv	Razdeli\ navpično<Tab>^Ws
menutrans Split\ File\ E&xplorer	Razdeli:\ Vsebina\ mape
menutrans Sp&lit\ To\ #<Tab>^W^^	Razdeli\ v\ #<Tab>^W^^
menutrans &Close<Tab>^Wc		&Zapri<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zapri\ &ostala<Tab>^Wo
menutrans Move\ &To			Premakni
menutrans &Top<Tab>^WK			&Gor<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dol<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Levo<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Desno<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Zavrti\ navzgor<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Zavrti\ navzdol<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		&Enaka\ velikost<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Najvišje<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Najnižje<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Najširše<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Najožje<Tab>^W1\|
" }}} WINDOW / OKNO

" {{{ HELP / POMOČ
menutrans &Help			&Pomoč
menutrans &Overview<Tab><F1>	Hitri\ pregled<Tab><F1>
menutrans &User\ Manual		P&riročnik
menutrans &How-to\ links	&How-to\ kazalo
menutrans &Find\.\.\.		Po&išči\ \.\.\.	" conflicts with Edit.Find
menutrans &Credits		&Avtorji
menutrans Co&pying		&Licenca
menutrans &Sponsor/Register	Registracija\ in\ &donacije
menutrans O&rphans		&Sirotam
menutrans &Version		&Verzija
menutrans &About		&O\ programu
" }}} HELP / POMOČ

" {{{ POPUP
menutrans &Undo				&Razveljavi
menutrans Cu&t				&Izreži
menutrans &Copy				&Kopiraj
menutrans &Paste			&Prilepi
menutrans &Delete			&Zbriši
menutrans Select\ Blockwise		Izbiraj\ po\ blokih
menutrans Select\ &Word			Izberi\ &besedo
menutrans Select\ &Sentence		Izberi\ &stavek
menutrans Select\ Pa&ragraph		Izberi\ &odstavek
menutrans Select\ &Line			Izberi\ vrs&tico
menutrans Select\ &Block		Izberi\ b&lok
menutrans &Select\ All<Tab>ggVG		Izberi\ &vse<Tab>ggVG
" }}} POPUP

" {{{ TOOLBAR
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Odpri datoteko
    tmenu ToolBar.Save		Shrani datoteko
    tmenu ToolBar.SaveAll	Shrani vse datoteke
    tmenu ToolBar.Print		Natisni
    tmenu ToolBar.Undo		Razveljavi
    tmenu ToolBar.Redo		Obnovi
    tmenu ToolBar.Cut		Izreži
    tmenu ToolBar.Copy		Kopiraj
    tmenu ToolBar.Paste		Prilepi
    tmenu ToolBar.Find		Najdi ...
    tmenu ToolBar.FindNext	Najdi naslednje
    tmenu ToolBar.FindPrev	Najdi prejšnje
    tmenu ToolBar.Replace	Najdi in zamenjaj ...
    tmenu ToolBar.LoadSesn	Naloži sejo
    tmenu ToolBar.SaveSesn	Shrani trenutno sejo
    tmenu ToolBar.RunScript	Izberi Vim skripto za izvajanje
    tmenu ToolBar.Make		Napravi trenutni projekt (:make)
    tmenu ToolBar.RunCtags	Napravi značke v trenutnem direktoriju (!ctags -R.)
    tmenu ToolBar.TagJump	Skoči k znački pod kurzorjem
    tmenu ToolBar.Help		Pomoč za Vim
    tmenu ToolBar.FindHelp	Išči v pomoči za Vim
  endfun
endif
" }}} TOOLBAR

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[Brez datoteke]"
let g:menutrans_help_dialog = "Vnesite ukaz ali besedo, za katero želite pomoč:\n\nUporabite predpono i_ za ukaze v načinu za pisanje (npr.: i_CTRL-X)\nUporabite predpono c_ za ukaze v ukazni vrstici (command-line) (npr.: c_<Del>)\nUporabite predpono ' za imena opcij (npr.: 'shiftwidth')"
let g:menutrans_path_dialog = "Vnesite poti za iskanje datotek.\nImena direktorijev ločite z vejico."
let g:menutrans_tags_dialog = "Vnesite imena datotek z značkami ('tag').\nImana ločite z vejicami."
let g:menutrans_textwidth_dialog = "Vnesite novo širino besedila (ali 0 za izklop formatiranja): "
let g:menutrans_fileformat_dialog = "Izberite format datoteke"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Prekliči"
" }}}

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z¹��[[vim80/lang/menu_ja.euc-jp.vimnu�[���" Menu Translations:	Japanese (for UNIX)
" Translated By:	MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change:		15-Jun-2012.
"
" Copyright (C) 2004,12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

" eucjp is the same as euc-jp.  Source the other one from here.
source <sfile>:p:h/menu_ja_jp.euc-jp.vim
PK�j�ZdPE���'vim80/lang/uk.cp1251/LC_MESSAGES/vim.monu�[������|<
�x(�)�
:�H�Q�'g�/����ա�L�:N�����+��ʣ"��(�9�5I������դ����;ɥ��:�W�f�w�������ʦ�0��.*�/Y�0��
��ȧާ��
��
2�$=�$b��� ����@ȨD	�N�b�"����"é����@�_�z���������/Ϊ8��,7�=d�����ӫ���0�1A�1s�����Ϭ�-�3�S�h�������ǭ3߭3�G�d�|�������
ٮ����/�
G�$U�z�L�� ӯ��;$�`�o�#|�	����ðӰ�
����#�/�G�	_�i�q�y�!������ܱ���#�+� 3�T�o���������
òѲ6޲�2�K�!j���
����	����ٳ��&�	�" �*C�n�=��
ĴҴش���	�
�
'�2�
;�F�X�j�s�5��ǵ-ٵ1�&9�`�x�������ƶ۶��$�-�=�
Q�\�l���������ҷ�����+�7�F�V�h�x�
��������
ƸѸ�7�+�!8�Z�r�z�������������=��2�%�.�4�=�'N�-v�2��׺�?
�M�i�z�+����	Ļλ��-�M�$m���
����ͼ��?�D�2S�!��%��@ν9�EI�9��CɾK
�IY�H��;�6(�8_�3��<�4	�->�6l���%�����
�&�@�&P�,w�#��4�� ��@�-_�0��:��;��5�"U�x�>��)��>��<1�n�z�#��:��'��9!�[�$t�9��4��;� D�>e�1��/���-#�Q�.`�B��"��2��4(�*]���+��%��'��( �<I�E��.��-��$)�N�<g���*��&�� �41�f�w�����������������
�'�0�"8�[�g�v�������)����$�)�8�@�Y�1r�?���������0�F�a�t�X��%����+�I�b�{���������$����!�0�N�T�d�h���"��$����#�/�6�E�U�u����� ����4��.�	@�CJ�V����
��
�.�:�-S���-��$��.��6"�Y�.s�H��(���#�
<�OG�O��
��C��	9�C�O�!d�������3��2��!�(8�a� z�"��E���%!�#G�-k�������&���)�;�Y�r���'����)��+�@;�-|���5�����0�K�/f�9����E��3�-N�7|�#�� ��:��54�&j�"��&��$��#�!$�=F�5�� ��(��7�.<�,k��������� ��#�&;�b�y�����������0>�$o�!�� ��(��4�,5�b�~������� �����1,�^�!{�%��%��!��%�1�$J� o�����?��&�#.�R�
n�A|�%��"��"�9*�'d�(��2��*��!�!5�)W�%��!��4��:��&9�;`�;��)��0�3�R�n�����#��!��8��&1�#X�|� ��/��"���-�G�X�q�/��*��(��#
�1�M�h�����>�����0�"G�j�������#����9�1K�1}�)��1��%�71�i�A��?����3�!R�t�����0��4��$0�)U�N�,��&��L"�o�����8����$�(�B�#b�7��N��
�)�F�$a�!��3��,�2	�%<�b�"}���#�����;�BX���0��!� �<)�+f�����+�2�$&�K�,i���H��,��'�=�"]����������9�S�h���0��#�'��,�,L�&y�����+�2�-$�(R�{�"��'��'�,�4�.K�z�#��,��W�)C�"m�,��%��� !2:2m2��!�+2@5s'�#�)�3$S%x����
$"&G n'�*�#�'%.T3t!��+�*5-`$����
  ; \$}$�)��	,La%|�=�9R'l��$�#�0	.H	0w	�	�	�	

/
C
-Z
 �
�
7�
)�
&$>(c��%�$�$7'T|'� ���
 .
7O
0�
�
#�
�
"(>!g�-�1�65>t.�*�1�9U*u&�+�,�+ 4L<�+�*�+CXm�����"�
 7Rq�����)Ea:t=�<�6*<a�"��+�)4E5z4�3�0+ \}D�P�%&Lk�����!)Kf}����'�#6!Vx�"��1�.K"`������'<Uh|�����*1)\�� ����6#Os)�&�K�, ?`�����" &7 #^ � � +� %� 7!5F!|!�!,�!�!�!")," V"w"�"�"�"�"�"#5#0M#~#�#�#�#4�#.%$$T$)y$1�$;�$%.!%*P%{%$�%�%%�%,&.&%?&e&~&�&&�&-�&&'+' G'h'�'�'+�' �'(?()Z(�(6�(#�(2�(9,)>f)8�)1�)*).*)X* �*)�*�*)�**+"=+`+#y+"�+"�+)�+
,-,%K, q,$�,�,�,!�,0-G-`-{-�-"�-!�-9�-82./k.�.�.�.+�.%/18/)j/�/�/'�/%�/0&'0!N0%p0'�0%�0'�0-12:1m1�1$�1�1�1�1"2:2Z2!z21�2&�2�2!3!43V3(k3�3�3+�38�3347R4E�4!�4�45(50G5#x5�5$�5�5#�5*6?6Z6m60�62�60�67+97)e7$�7/�7�7�7'8)68,`8�8�8 �8�8�8-9,K9x9/�9+�9'�9!: 7:0X:�:!�:,�:�:;(;A;Z;0p;.�;�;1�;&"<:I<�<9�<�<:�<2=J=j=�=*�=�=3�=&>%?>2e>0�>!�>;�>R'?z?*�?�?�?(�?!@+=@+i@�@ �@"�@%�@ A+;A"gA+�A�A.�A4BI:B)�B)�B6�B6C-FC(tC/�C&�C<�C)1D*[D�D7�D�D�DE*-EXEvE0�E/�E!�E"F*8F/cF;�F�F�FQG.YG�G$�G#�G0�G#"HFH2eH6�H�H+�H%IXAI;�I/�I;JBJ!bJ%�J"�JN�J.K$KK&pKT�K#�K"L$3L XLyL�L#�L]�L 9MBZM'�M�M/�M2N,EN"rN�N&�N(�N%�N%ODObOEO!�O �O7P@P%VP|P'�P�P'�P	Q)Q<?Q|Q"�Q'�Q�QR+RDR(^R!�R5�R�R7�R!6S%XS/~S!�S�S�S'T6T)UT;T&�T(�TU)*U&TU{U�U'�U�U	�U�UVV+VEV#[V	V�V�V�V.�V�V.
W69WpWvW6�W#�W
�W&�W	X!X6XNXeXzX �X%�X!�X
�X�X(Y�:Ya�YGZ+`Za�Z�Z�Z[(
[
3[	>[%H[
n[y[&�[&�[�[(\+\	<\F\	W\a\
g\u\�\�\�\	�\2�\*]C]c]u]�]�]
�]�]	�]�]�]�]^#,^(P^y^�^	�^�^�^
�^�^�^2_9_E_d_~_�_�_$�_�_/�_` `'#`K`a`
x`$�`
�`�`�`�` �`aa*a7a!Maoa�a@�a(�ab'b9b<bMbYbeb�b#�b�b�b�b.�b
.c9c	OcYcyc�c�c'�c�c�c
ddd7dKdTdnd�d�d�d�d�de9%e9_e�e�e�e�e
�e�e(�e&f.f?fPf
]f	hfrf�f�f�f�f9�f
gg2gMghg&g�g�g�ghChW_h	�h�h�h�h�h
ii)"iLili�iF�i�i�ij%j,j8j(Djmj�j�j1�j�j�jk$k:kSk0bk;�k>�kl&l>l1Zl"�l�l�l�lA�l)/m=Ym�m(�m�m�m$�m0"nSn\n_n+un2�n�n�n�no%o	7oAo�Zo�oF�o;p
Gp	Rp
\pjp+p�p%�p0�pBq([q�q1�q+�q*�q&)r9PrM�r>�r)s5AsAws4�s$�s*tA>tA�t&�t6�t u<(u<eu?�u7�u/v Jv"kv�v2�v0�vw#w;wWwlw�w�w�w�w2�w)x+Fx,rx-�x �x!�x#y4yMyeyiymy�y	�y�y�y�y�y�y�yzz
$z
/z:z	@zJzhzuz	�z�z
�z�z
�z	�z5�z{{	${.{;{
A{O{&V{}{�{�{�{
�{�{
�{�{�{�{�{�{�{�{|9|BB|D�|"�|$�|"})5}_}n}u}�}�}�}�}1�}
~$~"7~Z~<y~�~'�~!�~#6Po�H�C�"�6�S�k�~�����������ǀ݀ �#�-7�-e����������(�&?�f�=u���΂%�
	�8�FP�.��DƃM�@Y�0��&˄'�&�$A�f�x�$����-Ӆ��3�J�h�t�z�������
׆���� $�E�
J�X�"e���%��*��.�8�"S�#v�%��#������#�/5�e�
t� �� ��ĉ
׉����!�.�N�	f�p���2��Њ�����$
�2�?�H�
W�e�#n�1��1ċ1��1(�Z�c�	l�
v�(��������׌���
	��
3�>�V�(j�'�� ��܍�	�)�	D�N�"`�����$��$̎���
��-�
=�K�a���������я�����5�K�Z�b�.n�.��.̐.��.*�.Y�.��.��&� 
�%.�T� o�:��˒ے���"�)6�)`���	������̓����%�	4�>�O�d�x���3��TΔ#�
9�	G�Q�+g�,����ٖ�`�:i�
����+���"�')�Q�e�0r�&��ʙ�
�����7�*�!?�!a�
��������ě*��$�$?�d�#��%��͜ݜ��$�<�U�
s�*��,��ٝ �
�A!�Ic���&��*�)�*;�f�����7��ߟ���
$�2�D�:U�T��5�:�V�q�������Dڡ3�3S�������͢!�
�$�;�S�h�����@��1��.�L�a�{���!��	ƤФ���	��7�/Q�
��K��8ۥ�)�3?�s�����
����צ���	��+�:�I�f�	��
��	������ӧ� �#� /�P�W�)`� ����#ɨ�
��
���B.�q��� ��"̩���
��!�
@�K�O�'S�
{�+��*��ݪ=��
6�D�P�\�l�	����
������ɫի�
��)�3.�b�)o�4��$��(�;�Q�k���
��.��ح���#�=�N�e�y�����"Ů���
��-�=�
J�X�p�
}���
��
����¯@ѯ
�$ �E�]�j�w���	������	̰fְV=���������+Ա"�<#�`�{�C��ײ��0�A�N�Z�x�'��*���$�"(�K�T�`�t���<��ϴ;޴ �+;�@g�C��L�F9�M��SζM"�Op�I��E
�?P�>��Tϸ7$�=\�>��&ٹ&�'�?�%X�~���'��2ۺ.�@=�"~�C��3�5�CO�9��!ͼ"��='�8e�>��Aݽ�&+�=R�?��5о?�F�2`�B��DֿJ� f�:��2�4��,*�;W���&��A�:�9G�:��)��"��4	�)>�'h�/��@��E� G�3h�4����;��!'�+I�-u�)��>����6�I�U�o���������������	�6�I�[�g�������1���"�6�J�S�k�5��@����
�
� *�K�_�z�����g��)-�W�%[� ����������
��(�"/�R�8e�(���������� �$#�!H�(j�4��	������&��#�=�[�'s�"��A����E$�Zj�������-���.3�"b�.��&��/��:� F�7g�R��1��$�3�C�aV�a���J4������#��	������=��<+�#h�(����$��-��S$�"x�'��)��/���7�Q�l�������������&�9�)T�&~�?��7���*:�e�������@��@�T�Js���:��7�!L�-n�>��;��+�*C�(n�"��.��)��7�4K�!��*��2��6�7�$T�y�����'��(��)�=�X�"v�!������"��#�'<� d�����3��9��1*� \�}�������'��*��+&�*R�}�&��*��/��"�&=�d�*{� ������=�)D�+n�����6��(��(�)H�(r� ��&��1��'�!=�%_�#��*��&��5��91�-k�F��=��+�+J�'v���������"
�)0�=Z�5��%����$�35�#i���.��������*�&>�e���"���� ��!�"�@B�!��!���� �� �#�;�X�#t� ��C��?��6=�.t�0��1��3�:�3W�D������"�#1�U�s�"��2��>��''�-O�O}�9��$�M,�z�����A����7�"R�,u�A��h��!M�o�4��(��%��G�$Z�1�(����*��%$�8J�!��������D��)�:F�!��+��F�&�%=�c�$��9��&��A�_�S{�/���$�"@� c�"��"��"� �.�=�!U� w�/��"�4� �%,�1R�+�����.�>
�1L�)~���%�#�(
�76�n�+����&�3��Q1�-��(��)�-�2�'O�w�6��5�>�� :�&[�����*��,�#
./M>}-�,�"5X*p�#�)�!+%0Q'�%�)� �.Je/�(�-�+$7\y���-�-#C(g'���/�1#JnK��!�61P�(�(�)�2/P6�$�!��	:	W	n	.�	&�	�	3�	&3
Z
 v
%�
�
�
'�
(%;a$y1�0�('*"Ru ��5�2
&7
^
${
*�
3�
 �
* 2K8~=�<�#28V1�4�6�$-1R'�.�-�,	76;n4�$� =Vn�����"�!7!Y3{!�"�� 2Ki���8�99N4�>�� ;0N.;�:�N%;t�:��=4Ir/�)�  7Xm��$�)�.	8Of{�!�"��#'(-P"~$��6�-L(b�� � �5Ti�����#'@5Z#�/���!&:at1�*�!�* *9 Ld � 7� � "!@!U!i!!�!$�!"�!�!",".G"v"7�"5�"##%(#.N#}#&�# �#)�#"
$0$E$c$y$�$)�$�$�$:%?%X%!w%"�%<�%7�%/1&#a&*�&8�&�&4�&,0',]''�'#�'/�'8(?( R(!s(�(�(*�(1�(*()"S))v)�)�)�)1�)% *F*Tf*&�*�*2�*"/+6R+9�+G�+3,"?,)b,+�,+�, �,+-1-1L-1~-$�-�-$�-'.(>.=g.!�.�..�.%/&</c/�/#�/:�/0080S0's0�0?�05�0,/1\1y1�1+�1&�11�1),2V2l2'�2 �2 �2+�2#3%=3'c3 �3%�31�3*4/4C4 [4|4*�4�4 �455&=51d5'�5�5'�5%�5%6(>6g6"�6:�6>�6 7<;7Dx7%�7�7�7.81D8v8�8-�8�8'�8!9A9a9s95�9*�97�9,:*L:)w:&�:0�:�:;+$;,P;<};'�;�; �; <9<Y<.y<�<.�<,�<$=%C=&i=6�=�= �=+>0>H>+^> �>�>;�>2? 3?0T?(�?6�?�?J@P@6j@�@%�@�@�@,A#FA)jA�A3�A0�A-B&CBAjBS�B*C>+C!jC#�C2�C�C(�C.(DWD!qD&�D.�D#�D5
E(CEElE%�E0�E<	F=FF)�F)�F=�F=G)TG&~GA�G&�GGH5VH0�H�H4�HI$1I%VI.|I�I �I.�I+J&CJ(jJ0�J,�J9�J+K!GKUiK5�K!�K&L%>L9dL%�L�L7�L1MDM/dM�M]�M>
N1LN9~N�N�N,�N' ONHO.�O�O1�OWP(pP�P)�P�P�PQ2QSRQ�Q+�Q&�Q$R/>R8nR0�R#�R�R(S*>S,iS'�S�S�SJ�S<TZT:wT�T2�T%�T"%UHU+cU-�U�U>�U V 3V$TVyV�V0�V�V5�V#-W>QW�W3�W&�W!X0(X#YX }X �X5�X�X'Y@7Y)xY)�Y$�Y#�Y.Z#DZ(hZ%�Z	�Z�Z�Z�Z
[")[L[%e[
�[�[�[�[?�[\3%\AY\�\�\>�\&�\]")]L]T]t]�]�]�]#�](�] ^2^9^5N^��^_/_�_A�_Z�_?`N`T`'[`�`�`"�`�`"�`*�`)a>a3[a�a
�a�a
�a�a�a�a�ab5bOb/db+�b-�b�b*c1c$Lc
qcc	�c�c	�c�c�c-�c,dAdTdfdud%�d�d�d�d1�d
e %eFebejeqe#�e�e2�e�ef,	f6f!Mf
of+}f�f�f�f�f �fg8gNgag.rg�g�gE�g1h>h*Wh�h
�h�h�h�h(�h+i2iGifi/ri�i�i�i#�i�i�ij31jejj�j�j�j�j	�j�j k"&kIk^k}k#�k�k?�k/lGlclll|l�l#�l*�l�l�lm!m0mFmVmmm�m�m�mB�mn
nn-nMn hn�n�n�n�n@�nW:o	�o�o�o�o�o�op-p'Dplp�pG�p�p#q(qBqIq
Qq%_q�q�q�q3�q
rr#rBrWrnr<zr(�rB�r#s?sSs7rs%�s�s�s �sIt-Zt@�t�t-�tuu)8u6bu
�u�u�u4�uA�u!3vUvav|v�v�v �v��vdwPww�w
�w�w�wx3xNx3fx5�x9�x)
y4y-Oy+}y'�y?�y?z>QzD�z-�zE{FI{G�{%�{)�{F(|Fo|*�|8�|}I'}Iq}G�}A~8E~(~~+�~�~?�~-)Wq���"�!��4�=R�4��6ŀ7��84�1m�%��&Ł��$�(�!,�N�	Z�
d�o�
������Ăӂ������#�8�H�
U�`�t�������9����
���#�2�(:�c�y�����
����
����	��ʄ҄ل����3�H4�I}�$Dž$�$�/6�f�u�{�����ʆ̆5��(/�(X�!��;��߇*��$"�G�`� z�#��"���:��L2��-��Ɖ�)�+�1�6�<�H�Y�r�/��%��0�0�D�U�u�������"��!��/�A�\�,l���C��C�62�Ei�N��K��8J�-��.��-�+�:�#L�'p���*�����$7�\�k�q�����!��Ր����)'�Q�Z�j�$~���*��6�<�:T�,��/��,�&�@�Y�r���*��ʓғړ#��-�9�	S�!]�
�#����
͔۔��4�H�`�s�z�!������ƕӕ
� �3�3C�3w�3��ߖ���
�$�5�M�P�l���������ڗ��)�!<�^�~�����ǘ	��!�%�8�.L�.{�	����ʙә���-�%C�i��� ��Ś����%�=�X�h�
t�3�3��3�3�3O�3��3��3�'�&G�)n�"��%��<��0�9�O�^�q�-��+�������'�
:�H�U�a�s��
��������ɟ0ҟz�~����*�Gg�lI�T��g������Z~�;����hE���5�`�p�$�jNr�T}��'���^P�W_��Z>���^w3����`UL��h���[���o
P�o0�*E��K� �y�����d��.f�<��Ubq&Y_�\����>�F�g���N�#���6���k��9_G8|�R����n��x:>(�;�X�������bj�D���S�,k|�z!�����A���j?m��a&lVSB�:�&��.�R�v� �%.@@�
���~Q��\Wu���&w[$?t*+�;��x��)�o��(y�s�t��
O]x�#���'��s�]�B�f��J����,#u&��;�����9l�3�/f�����+��\X�uW*iD�Q S����9c���h|��*�l/�@(v������9��{�������ji5%�|�Ln���E"�K�g����Z $T�T�gA~ej��
���{��u���O���}^X��O�+�fv��i��-G@�l��m�-|�p�J�_%l�~�R��"F8��NM����`�yC���zJ����,��KElt�r�4�Pl����K>eq�3��kQaK�W�!�.o�V�P]�[��/�m��X�w����)�����Y!��	4%��b��8�3�5���EyH�VjB���B�=�.�9(?�/K��X��:PZ����@	����r�7�����;b
+����#���b�o�-f�9_Vv����2��"�����
1\!	3?z�% X��CZ��)p�'�:Q^�������Y�wD>�#AH�e�x���r2T��C����h2A0�M�;�����^GL��Y_7F15��=��g5jV�x��7�s'!?�k>�v�`�������4<�D
�B6�1G�#A�a�����[��0{�dN�Z���(�F�O<�_��p�tNI�O���H������g��B*(���W��-2���Z�S���T��5A����6e�^�kt�����q����zmCsUG��'L�H���f�J~=nd)R9�9�������sr�0`i��)|M�`���,�:/L��?$�X}����z��#n�7�J�H�������Du=�������tC�'!,��� S 
Q)������H7�WgJ�������Y��
z�B�������~F��h�nCUS�o$�d�0��}L��=�m�7c��d�a��K
U���k���ew��	a�&Io�S)��}���������K����$�V�b�]J�|�0��s�����u-�c��G�wR���C%��1���1	��I=�w3�48��]�@�{��V#������|e����b����1�'�q���En��~7PWO�[�L������6�4�[�GZ^�`5R$����6r�ym� ���<��y��y�Ac�+����>/�c�F�3������=��qp0Lv�a
p�M��U=w����Q�4���]�d���d�4��0�5������N��X��2k*�Q�F��	�"R{���Oa��C�8M6�1����}��iqO��t��qn[�����a�?8�&%\�;f���hY<��Ec��q�"
{��\D���sxo�},�!��.�I�&e�i�������{,��7�����Iv:D�+:+H
���v�'k�"����Pp`��D���T]��b	���jt\{�,>��
���
?M�(I�i;�	N�x���IQ(32T���Y�]��/")^.Y�<}�e��F8m@_�u���%�[A��\x��S�rc�������������P��@��my���6/�
-*�W�-1�:���Mf���6�Ur�4"p�BN���J��E�-���h�n.��<�R��!�H�cV+$���8<���U2iz2M�d�h�������s�����u�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-12 12:22+0300
PO-Revision-Date: 2010-06-18 21:53+0300
Last-Translator: ������� ���� <sakhnik@gmail.com>
Language-Team: Bohdan Vlasyuk <bohdan@vstu.edu.ua>
Language: uk
MIME-Version: 1.0
Content-Type: text/plain; charset=cp1251
Content-Transfer-Encoding: 8bit

	������� ������ � 

���������:


������:
           ������: 
         [����������� �� ����� ����'����]
         [�� ��������� �� ���� ���� Vim]
          ����� �����: 
          ���������: 
         ID ������: 
       a: ������ �������� ����� �������
       c: ������ �����, �� �������� �� �����
       d: ������ �����, �� ��������� ���� ������
       e: ������ ��� ������ egrep
       f: ������ ��� ����
       g: ������ �� ��������
       i: ������ �����, �� ����� � ���� ��� ����
       s: ������ ��� ������ C
       t: ������ ��� �����

    �����       ���.       ������   ��������� ��������
   #   ����
   ���:
  # �� ����       � ����  � ����/�����
 ���� ��. �����. ����/�����
# �������� %s (�� �������):

# ���� bar, ���������� ����������:

# ������ ������:

# ������:

# �������� ������ � ����� (�� �������):

# ������ ������� (�� �������):

# ���. %s������ �����:
~
# ������ �����:
$
# �������:

# ������� ����:

(1) �������, ��� �������� ��� ������ ��� ����� ����. ��� �� ���,
    ����� �������, ��� �� �������� ��� ��� ���������
    ������ � ���� ������ ����� ��� ���.  ����� �� ����������� � ���������.

(�������, ������� �������� ��� ���� �� ��� �����

--- ����������� ---
--- ������ ������� ��� ---
--- ������ ������� ��� ---
--- ��� ---
--- ��� ---
--- ������� ---
--- ������� ---
--- �������� ���������� ---
--- �������� ��������� ���������� ---
--- ���� �������� ---
--- ����� �������� ---
��������� �� gvim (���� Athena)

��������� gvim (���� GTK+)

��������� �� gvim (���� Motif)

��������� �� gvim (���� neXtaw):

������ ���� 
�� ����� �������� ������

�� ������ ��������� ��������
�� ������ ��������� �������� `sh'

�� ������ ���������

������� ������� ��������

��������� 
�� ������ �������� �������� ������� �� 
�� ������ ���������� �������� ������� �� 
�������� �����: 
�������� ���� ����� � ����� "
����� ���� 
��� �� ������ ����� �� �����, ��� �� �������� ��������� ����,
��� �� �������� ��������� ���� ��� ���� ��� �����, ������� enter
����� �����: 
���� � GUI �� 32-������� Windows
�������� ���� �� 32-������� Windows
���� � GUI �� 64-������� MS-Windows
�������� ���� �� 64-������� Windows
���� �� MacOS X (unix)
���� �� MacOS X
���� �� MacOS
�������, ��� �� ����, ��� Vim �� ������� ���� �����.
ij������� ���: �vim -h�

�������� ���� 
���� �� OpenVMS
���� ���� 
������ ���� 
Vim: ������� X

�����������: �������, �����, �������� �� ����������

��� ������ ��������, ������� / ������� ��� ������� ��� � ������� ������.
�������, ����� �� ����� ������ ���� ����� .swp.


[����]  ����� ����/���. %lu/%lu, �����. %lu, ����. %lu

������ ��. �����. �����
����� ����� �� �����.
���. ��.  ���. ����/�����
�������� ���������: 
��������� �� ��������
��� ����������� ��������� �� �� ���������� ����� �� ����� �����              ��� ������� � ����� �������� � Vi                          �� ��� ������                      ����:            �������:          [�� ����� �������]         [�� ����� ��������]        [�� ���� �� ���� �����]         [�� Vim 3.0]         ����� �����:        ���� defaults: "      -- ������� --
      ��²��� �� ���� �����!
      exrc ����������: "     vimrc ����������: "    ��� �� ������ ��������, ��������� �:recover� ��� �vim -r     ��� �� ��� �� �������, ���� ���� ����� �    ����=%ld  id=%d �����=%s    �������� ���: "    gvimrc ����������: "   � �������� �������:
   � �������    ������������ ������� �����:
   ����:    ����� �����:    ��������� vimrc: "  # �� ��� ����  (��� � ������)  ������ exrc ����������: "  ���Ѳ� ��� ����������  ����� (+) ��� �� ����� (-) ����������:
  �� �������  ������     �-��   �ϲ��.  ����²�.   ������.   ���              �����  ����������� ����, �� �������� ����� � ��� �����  ����� �� $VIM: "  ��������� gvimrc: " # pid    ����� ���� ����                    ��
 (���������) (�� �������) (����� � ���������� ������) (�������) (�������) ���������� (^E/^Y) (���� ������) (�� ���������) (����) (�����) (�����) ���������� (^E/^Y) (��������) (��� �����) ������ vimrc ����������: " ����� vimrc ����������: " < �%.*s� ������ ������� ������ �������ֲ� ��������� ������ (^V^N^P) ��� %d � %d ��������� �������� (^D^N^P) ��������� � �������� (^K^N^P) �� ������ ��������� ����� ����� (^F^N^P) ����� ����� ��������� ����� ����� ��� (^N^P) ��������� ����� ��� (^N^P) ������� ��������� (^O^N^P) ��������� ��� �� ������� (^N^P) �̲� �����в� ��IJ����� ��IJ����� ����� ��IJ����� ���ʲ� �����/d/j: ���� �� �����/�������/����, b/u/k: �����, q: �����  ���������� ������� (s^N^P) ��������� ���� (^]^N^P) ��������� � ��������� (^T^N^P) ����������� ��������� (^U^N^P) ���� ���� ����� ���� ���ʲ� ²�� �̲� ��������� ����� ���� (^L^N^P) [������][�][�] ����� ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) ��������� �� ����� ����������� �� ����� ����'����.
 �� ����� ����������� � ���� ���� Vim.
 ����� �� $VIMRUNTIME: " ���������� (����� ������� ����� ��������� ������).
 � ���� %ld; �������� ��� �����
 ������� ���� ���� ����� ����� ����� ������� ���� ����� � %ld ���� � ������ ���� ��� ��� ���������
 vim [���������]  � �������� OLE ����������,
    ��� �������� ����� ����������.
�
    ��� �������� ���� (���. �:help recovery�).
� ��� ����!# ��� ���� ���������� ��������� Vim %s.
# ������ 'encoding' �� ��� �������� ����� �����
# ������ ����������, ��� �������!

%-5s: %s%*s (�����������: %s)%3d %s %s   ���� %ld%<%f%h%m%=����. %N������ %d ������(��)����������� %d ������(��)������� %d ������(��)%d ���������� ��� � %s%d �����(��)
�� � %d �� ���������� �����. ��� ���� �����?������������ %d � %d%ld %s; %s #%ld  %s����.: %ld; ������ ����: %ld%ld ���� %s-�� %d ����%ld ���� %s-��%ld ����(��) --%d%%--������ ����: %ld³���������� %ld ����(��)������� ����: %ld�������� %ld ����(��)�������� ������� %ld ����...�����'���� ����: %ld%ld ����, %ld ����(��)������ ����: %ld%ld ������ ����%ld ����(�)%lld ������������������ %s �� �%s�%s ���������������� %s%s ���� %ld������ %s³�������� %s%s ������� #%ld%s ������� %s������ %s ������� �� ����, �� ����� � ����� ���� .aff%s, ���� %ld%s������ ������� %d � %d; %d �������%sviminfo: %s � ����: &C:���������&D:���������&F:Գ��������&H:��������&O:������&O:������
&C:���������&O:������
&L:�����������&O:������&O:³������ ��� �� ������
&E:��� ���� ����������
&R:³�������
&D:������ ����
&Q:�����
&A:���������&O:³������ ��� �� ������
&E:��� ���� ����������
&R:³�������
&Q:�����
&A:���������&R:�������&U:���������&Y:���
&N:ͳ&Y:���
&N:ͳ
&C:���������&Y:���
&N:ͳ
&A:��
&D:�������
&C:���������' �� ������. �������� ��������:�� ����� ����������� '-nb': �� ��������� �� ��� �������
��� 'dictionary' ��������� 'history' �������� �%s� ����������� 'readonly'.
������ ��� ���� ���������� �����?��� 'thesaurus' ������(%d � %d)%s%s: (+%ld �� BOM)(2) ����� ���������� ����� ����� ������ ����.
(���������) (���������)(NFA) �� ������ ²������ %s!+			�������� � �� �����+<����>		�������� � ��������� <����>+reverse		�� �������� ������ (�����: +rv),
��� ���� ���� ���������.-               ������ ����� � stdin--			��� ����� ����� ��� �����-- �� ---- ����...--- ����� ����� --������----������� ����----cmd <�������>	�������� <�������> ����� ������������ vimrc--cmd ��������--echo-wid		��� gvim ������� ������������ ���� �� stdout--literal		�� ���������� �������--noplugin		�� ��������� ������� ���������--not-a-term		���������� ����������� �����/������ �� � �������--remote <�����>	���������� <�����> �� ������ Vim, ��� �� �������--remote-expr <�����> �������� <�����> � ������ Vim � ����������� ��������--remote-send <�������> ³������ <�������> ������� � �������� ������--remote-silent <�����>  �� ����, ���� �� ��������� �� �������� �������--remote-tab[-wait][-silent] <�����>  ��� ����, �� --remote, ��� �� ����� �� ����--remote-wait <�����>   ..., ��� ������� ���� �� ����� ����� �����������--remote-wait-silent <�����>  �� ����, ���� �� ���������, ��� ������� ����--role <���>	���������� ������� ��� �� ���������� ��������� ����--serverlist		�������� ������ ����� ������� Vim � �������� ������--servername <�����>	�������� ��/����� Vim �������� � <�����>--socketid <xid>	³������ Vim � ����� ������� ���������� GTK--startuptime <����>	�������� ������� ���������� � �������� �������� �� <�����>--ttyfail		�����, ��� �������/�������� �� � �������--version		����������� �������� ��� ���� �������� � �����--windowid <HWND>	³������ Vim �������� ����� �������� win32-A			��������� � ����� ������� ����-C			������� � Vi �����: 'compatible'-D			����� �����������-E			��������� ����� Ex-F			��������� � ����� ������ ����-H			��������� � ����� ������-L			�� ����, �� � -r-M			���� � ����� ����� �� ���������-N			�� ����� ������� � Vi �����: 'nocompatible'-O[N]		ͳ�� -o, ��� ������� ���� ����������-P <��������� �����>	³������ Vim �������� ���������� ����-R			����� �������� (��� �view�)-S <�����>		�������� ������� ���� ��� ������ ������������� �����-T <�������>	���������� ��� �������� � <�������>-u <gvimrc>		����������� ������� ���� ����� .gvimrc-V[N][����]		���� ��������� [���� N] [���� ����. ���������]-w <������>		�������� �� ������ ������� � ���� <������>-X			�� �'��������� � X ��������-Z			��������� ����� (��� �rvim�)-b			�������� �����-background <����>	����������� <����> �� ���� (�����: -bg)-boldfont <�����>	����������� <�����> �� ������� ������-borderwidth <���>	���������� ������ ��� <���> (�����: -bw)-c <�������>		�������� <�������> ��� ����������� ������ �����-c ��������-d			����� ������� (��� �vimdiff�)-dev <�������>			��������������� <�������> �� �����/������-display <�������>	ϳ�'������ vim �� �������� ������ ������� X-display <�������>	�������� vim �� �������� <������>-display <�������>	�������� vim �� <������> (�����: --display)-e			����� Ex (��� �ex�)-f			�� ��������������� newcli �� ������� ����-f  ��  --nofork	������� ����: ������� ������� ��� ������� GUI-font <�����>	����������� <�����> �� ��������� ������ (�����: -fn)-foreground <����>	����������� <����> �� ��������� ������ (�����: -fg)-g			��������� GUI (��� �gvim�)-geometry <����>	������ ������ � �������� (�����: -geom)-h  ��  --help	����������� �� ���������� � �����-i <viminfo>		����������� <viminfo> ����� .viminfo-iconic		��������� Vim � �������� ���� ����-italicfont <�����>	����������� <�����> �� ������� ������-l			����� lisp-m			���� (����� �����) �� ���������-menuheight <������>	���������� ������ ��� <������> (�����: -mh)-n			�� ��������������� ���� �����, ������� ��� � ���'��-o[N]		³������ N ���� (��� �� ������ �� ������� �����)-p[N]		³������ N ������� (��� �� ���� �� ������� �����)-q [����]       ������� �� ���� �������-r			�������� ����� ����� � �����-r (����� �����)	³������� ������� �������� �����-register		������������ ��� gvim �� OLE-reverse		�������� ������ (�����: -rv)-s			�������� (��������) ����� (��� �� �ex�)-s <������>		������ ������� ���������� ������ � ����� <������>-scrollbarwidth <���>  ���������� ������ ����� ����� (�����: -sw)-t ������      ������� �� ����-u <vimrc>		����������� ������� ���� ����� .vimrc-unregister		��������� ������� ����� gvim �� OLE-v			����� Vi (��� �vi�)-w <������>		�������� �� ������ ������� �� ����� <������>-x			���������� ��������� �����-xrm <������>		���������� ��������� ������-y			������� ����� (��� �evim�, ��� ������)���� / ������������ � %s � ���� %d: %s���� /encoding= ��� ����� ������������ � %s � ���� %d: %s������ ���� ���������������� ���� ������������ ���� ��������� ���������� ���� %s-�� %d �������� ���� %s-������ ���� --%d%%--���� ���� ������������� ���� ���������� ���� ������������ ���� ���������'���� ���� �������� ����, ���� ����������� ������������ �� ���� ����. ��� ���� �����?������ ���� �������� ����������� gvimrc ����������: "����� gvimrc ����������: ": ³������ ����� �� ������.
: �� ������ �������.
: �� ������ �������. ������ �������� �� ��
; ��� <%s>%s%s  %d,  ���� %02x, �� %03o<�� ���������> <����>> %d, ���� %04x, �� %o> %d, ���� %08x, �� %o??? ����� � �� `??? ʲ����' ����, �������, �������??? ����� � �� `??? ʲ����' ����, �������, ���� �����/�����??? ��������� ����??? �����Ͳ� ����??? ʲ����??? ��������� ʲ��ʲ��� ���ʲ�??? �������Ͳ �����??? ���Ӫ ������� ���ʲ�ANCHOR_BUF_SIZE ������������� ���� ���� ���������� ���� ���� cscope %s���� ����� ������������� �� BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST � %s � ���� %d: %s����� ����� �������� � %s � ���� %d: %s����� ���� ���� cscope ������������������� ������� �� ����� �������� �� �������� ������ �� �������� ������ � ��� ��� ���� ��������� ��� ����� ������������ ������������ �������� �������:������ �������� ������� ������: "��������� �������������� ������ ��������, ��� ������ ���� � ���������� ������������� ����������� Vim!����!����� ������ %ld����������� ���� SAL � SOFO � %s���� ������� � �%s%s� ���� %ld���������� ����� � %s � ���� %d: %s����� COMPOUNDSYLMAX ��� SYLLABLE��������� �������� ��� ��������: �%s��� ������ ������� ��������� ���� �� �������������������� ������ �������� �� ������ �������� ��������� ������� $VIMRUNTIME/rgb.txt�� ������ ������� NIL:
�� ������ ������� ���� �%s��� ������ ��������: "�� ������ ������� �� ������ ����: "�� ������ �������� �������: �%s��� ������ �������� ���� ����� � ����� � ��������� � 'undodir'������� �%.*s� ��:������� �������������� %s � %s; ���� %ld � %ld; ����� %lld � %lld; ���� %lld � %lld������� %s � %s; ���� %ld � %ld; ����� %lld � %lld; ������ %lld of %lld; ���� %lld � %lld������������������: ��������: �������� %d � %d �����; �������� %d (%d%%)�������� ������ ���...������� ����������� ����� � %s � ���� %d: %s����������� � %s �� �������������������� � %s �� ���������: � %s �� %s��������� � 'charconvert' �� �������� ������ ��������� ��������� �� ����� DLL!�� ������ �������� �������� ������� %s �� %s. �������!�� ������ ����������� vim32.dll�� ������ ������� ��������� ���� ������� �� ������ �� ������ ������� ��������� ���� ������� �� ������, �������� �� stderr ... �� ������ ���������� �������� ������� %s ��  %s�� cscope: %s���� (%s): �%s����� ������������������� COMPOUNDFORBIDFLAG ��� �������� PFX ���� ���� ����������� �������� � %s � ���� %d�������� COMPOUNDPERMITFLAG ��� �������� PFX ���� ���� ����������� �������� � %s � ���� %d������� � �������� Vim���� ������� ������� � ���������� ����� ����� � %s � ���� %d: %s��������������������	*.����
�� ������ ����� ���� ����������??��������!����� ; � ������ ������������������ ���� /encoding= ������������ � %s � ���� %d: %s��������� ���� /regions= ������������ � %s � ���� %d: %s�������� ���� � %s � ���� %d: %s��������� ������� � MAP � %s � ���� %d����� ��� ��������: %s��������� ����� � %s � ���� %d: %sE100: ���� ��� ������ � ����� �������E101: ����� ��� ������ � ����� �������, �� ��������, ������ �� �� �����������E102: �� ������ ������ ����� �%s�E103: ����� �%s� �� � ����� �������E104: � ������� �� ���� ������� escapeE105: :loadkeymap ����������� �� � ���� ������E107: �������� �����: %sE108: ����� ����: �%s�E109: ����� ':' ��� '?'E10: �� \ �� ��� /, ? ��� &E110: �������� ')'E111: ����� ']'E112: ����� ����� ���: %sE113: ������� ���: %sE114: ����� �����: %sE115: ����� �����: %sE116: ��������� ��������� ����� %sE117: ������� �����: %sE118: �������� ��������� �� �����: %sE119: ������ ��������� �� ����� %sE11: ������������ � ��� ������, <CR> ������, CTRL-C ������E120: <SID> ������������� �� � �������� �������: %sE121: ���������� �����: %sE122: ����� %s ��� ����, ! ��� �������E123: ���������� �����: %sE124: ����� '(': %sE125: ������������ ��������: %sE126: ����� :endfunctionE127: �� ������ ������������ ����� %s: ���� �������������E128: ����� ����� �� �������� � ������ ����� ��� �s:�: %sE129: �� ������� ����� �����E12: ������� �� ��������� � exrc/vimrc � ����� �������� �������� �� ���E130: ������� �����: %sE131: �� ������ ������ ����� %s: ���� �������������E132: ������� ������� ����� ������� 'maxfuncdepth'E133: :return ���� ������ �����E134: ��������� ���������� ���� ��� � ����E135: ����������� *Filter* �� ������ ������� ������� �����E136: viminfo: �������� �������, ���� ����� ���� ��������E137: �� ��������� ����� � ���� viminfo: %sE138: �� ������ �������� ���� viminfo %s!E139: ���� ��� ����������� � ���� �����E13: ���� ���� (! ��� �� �������)E140: ������������ ! �� ������ ������� ������E141: ���� ������ ����� �� ������ %ldE142: ���� �� ��������: ����� ���������� ���� 'write'E143: ����������� ���������� ������ ����� ����� %sE144: �� �������� �������� �� :zE145: � rvim �� �������� ������� ��������E146: ������� ������ �� ����� ������� �������E147: :global �� ����� ������� ���������� � ���������E148: � global ����� ������E149: ������, ���� �������� �� %sE14: ���������� ������E150: �� � ���������: %sE151: ������� ����: %sE152: �� ������ ������� %s �� ������E153: �� ������ ������� %s �� ������E154: ��������� ���� �%s� � ���� %s/%sE155: �������� ������: %sE156: �������� ����� �������E157: ����������� ID �������: %ldE158: ���������� ����� ������: %sE159: �������� ����� �������E15: ����������� �����: %sE160: ������� ������� �������: %sE161: ���� ������� �� ��������: %sE162: ����� �%s� �� �� �������� ����E163: �������� ��� ���� ����E164: �� ��� �������� ����E165: �� ��� ������� ����E166: �� ������ ������� �� ������ ��'������ ����E167: :scriptencoding ����������� ���� ����������� ������E168: :finish ����������� ���� ����������� ������E169: ������� ������� ����������E16: ��������� ���E170: ����� :endforE170: ����� :endwhileE171: ����� :endifE172: ��������� ���� ���� ����� �����E173: �������� %ld �� ���������� �����E173: �������� ������������ �� ���� ����E174: ������� ��� ����, ! ��� ������� ��E175: �� ������� ��������E176: ���������� ����� ���������E177: ˳������ �� ���� ���� ������� ���E178: ���������� �������� ������ �������E179: �� -addr �������� ��������E179: �� -complete �������� ��������E17: �%s� � �� �������E180: ���������� ������ ���� ������: %sE180: ���������� ���������: %sE181: ����������� �������: %sE182: ���������� ����� �������E183: ������� ���������� ������ �������� � ������ �����E184: ������� ���������� �� ��������: %sE185: �� ������ ������ ���� ������ �%s�E186: �� ��� �������� �������E187: �������E188: �� ����� �������� ����� ���� �� ��� ��������E189: ���� �%s� ���� (! ��� �� �������)E18: �������� ������� � :letE190: �� ������ ������� �%s� �� ������E191: �������� �� ���� �����, ` ��� 'E192: �������� �������� :normalE193: :endfunction ���� ������ �����E194: ���� ����� ���������� ����� �� ����� '#'E195: �� ������ �������� ���� viminfoE196: � ��� ���� ���� �������E197: �� ������ ���������� ���� �%s�E198: cmd_pchar ���� ������ �������E199: ������� ���� ��� ����� ���� ������E19: � ������ ����������� ����� ����E200: ����������� *ReadPre ������������ ������ �����E201: ����������� *ReadPre �� ������ ������� ��� �����E202: ��������� ������������ ������ �����!E203: ����������� ������ ��� ����������� �����, �� ��� ���� ���������E204: ����������� ����������� ����� ������ ����� ����E205: ������: �� ������ �������� �������E206: ������: �� ������ �������� �������E207: �� ������ ������ ��������� ����E208: ������� ������ � �%s�E209: ������� ������� �%s�E20: ������ �� �����������E210: ������� ������ �%s�E211: ���� �%s� ��� �� �������E212: �� ������ ������� ���� �� ������E213: �� ������ ����������� (! ��� �������� ��� ���������)E214: �� ������ ������� ��������� ���� �� ������E215: ������������ ������ ��� *: %sE216: ���� ���� ��䳿: %sE216: ���� ���� ����� �� ��䳿: %sE217: �� ���� ���������� ����������� �� �Ѳ� ����E218: �������� �������� ����������E219: ����� {.E21: ���� �� ��������: �������� 'modifiable'E220: ����� }.E222: ������ �� ������ ������E223: ����� ����������E224: ������� �������� �� %s ��� ����E225: ������� ����� �� %s ��� ����E226: ��� � �������� �� %sE227: ��� � ����� �� %sE228: makemap: ������������� �����E229: �� ������ ��������� GUIE22: �������� �������� �������E230: �� ������ �������� � �%s�E231: ����������� 'guifontwide'E232: �� ������ �������� BalloonEval � ����������� � ������E233: �� ������ ������� �������E234: �������� ���� ������: %sE235: �������� �����: %sE236: ����� �%s� �� �����������E237: �� ������ ������� �������E238: ������� �����: %sE239: ����������� ������: %sE23: ���� ���������� �����E240: ���� �'������ �� �������� XE241: �� ������ ������� �� %sE243: �������� �� ���������: �-%s�; ����������� ���� � OLE.E244: ���������� ����� ������ ������� �%s� � ���� ������ �%s�E244: ���������� ����� ����� �%s� � ���� ������ �%s�E245: ���������� ������ %c � ���� ������ �%s�E246: ����������� FileChangedShell ������ �����E247: ���� ������������ ������� � ����� �%s�E248: �� ������ ������� ������� �� ��������-���E24: ������ �������� ����E250: ������ �� �� ������� ������ � ����� %s:E251: ������� ������ ������ VIM ����������� ����������.  ������!E252: ����� ������ ������: %sE253: ����� ������ ������: %sE254: �� ������ �������� ���� %sE255: �� ����� ������ ��� ������!E256: ������� �������� HangulE257: cstag: ���� �� ��������E258: �� ������ �������� �볺���E259: �� ������ cscope %s � %s ���� �� ��������E25: �� ����� ����������� GUI: �� �������� �� ��� �������E261: �'������ � cscope %s �� ��������E262: ������� ������ � �'������ cscope %ldE263: ������, �� ������� ��������, �������� Python �� ���� ���� �����������.E264: Python: ������� �������� ��'���� �����/������E265: $_ �� ���� ���������� StringE266: ������, �� ������� ��������, �������� Ruby �� ���� ���� �����������.E267: ����������� returnE268: ����������� nextE269: ����������� breakE26: �� ����� ����������� �����: �� �������� �� ��� �������
E270: ����������� redoE271: retry ���� rescueE272: ������������ ������E273: �������� ������ longjmp: %dE277: �� ������ �������� ������ �������E27: �� ����� ����������� ����: �� �������� �� ��� �������
E280: ����� ������ TCL: ������� ��������� ������ �������!? ��� �����, �������� � vim-dev@vim.orgE282: �� ������ �������� � �%s�E283: ������ �%s� �� ��������E284: �� ������ ���������� ������ ��������� �����E285: �� ������ �������� �������� �����E286: �� ������ �������� ����� �����E287: �����������: �� ������ ���������� � ����� ����� ��� ������E288: ����� ����� �� ������� ����E289: ����� ����� �� ������� ����������� ����E28: ���� ���� ����� ���������: %sE293: ���� �� ���� ����������E294: ������� ���� ����� � ���� �����E295: ������� �������� ����� �����E296: ������� ���� ����� �� ��� ������ � ���� �����E297: ������� ������ ����� �����E298: ���� ����� 0?E298: ���� ����� 1?E298: ���� ����� 2?E299: �������� ������ Perl ���������� � ����� ��� ����� SafeE29: ����� �� �� ���� ������E300: ���� ����� ��� ���� (����� ��������� ���������?)E301: ��, ������� ���� �����!!!E302: �� ������ ������������� ����� �����E303: �� ������ �������� ���� ����� �� �%s�, ��������� ���������E304: ml_upd_block0(): ���� ����� 0??E305: �� �������� ����� ����� �� %sE306: �� ������ ������� %sE307: %s �� ���� �� ���� ����� VimE308: �����������: �������, ��������� ���� ���� ������E309: �� ������ �������� ���� 1 � %sE30: �� �� ���� ������E310: ������������ ����� 1 ����������� (%s �� � ������ �����?)E311: ³�������� ���������E312: ϳ� ��� ��������� �������� �������. ��������� ����, �� ������� � ???E313: �� ������ ����������, ���� ����� �����E314: ��������� �� ������E315: ml_get: ����������� lnum: %ldE316: ml_get: �� ������ ���� %ldE317: �������� ����� ����������E317: �������� ����� ���������� 2E317: �������� ����� ���������� 3E317: �������� ����� ���������� 4E318: ��������� �������� �����?E319: ������, ���� ������� ���� � ��� ����E31: ���� ���� �����E320: �� ������ ������ ���� %ldE321: �� ������ ��������� �%s�E322: ����� ���� ����� �� ���: %ld �� ����E323: ʳ���� ���� � ��� %ldE324: �� ������ ������� ���� PostScript �� ������E325: ���E326: �������� �������� ����� �����E327: ������� ��� �� �������� ��� �� � �����E328: ��� ���� ���� ���� � ����� �����E329: ���� ��� �%s�E32: ����� ����� �����E330: �� �� ��� �� ������� ����� �� �����E331: �� ����� �������� �������� ��� ������ �� ������� ���E332: �������� �� ���� ���� ������� ��� ���E333: �� ������� ����� �� �������� ���E334: ��� �� ��������: %sE335: �� ������ %s ��� �� ��������E336: �� ������� ����� �� �����E337: ��� �� �������� � �������� �����E338: ������, ��� � ������ ���� ������ ������ �����E339: ������ ������� ������E33: ����� ������ �� �� ����������������E340: ���� ��� ������� ������E341: ������ �������: lalloc(%ld, )E342: �������� ���'��!  (������� ���� %lu �����)E343: ����������� ��: `**[�����]' ������� ���� ������� ��� ��� ����� '%s'.E344: �� ������ ������ ������� �%s� � cdpathE345: �� ������ ������ ���� �%s� � pathE346: � cdpath ���� ��� �������� �%s�E347: � ��� ����� ��� ���� ����� �%s�E348: ���� ���� �� ������E349: ���� ������������� ��� ��������E34: ������ �� �� ����E350: �� ������ �������� ������� ������� 'foldmethod'E351: �� ������ ������ ������� ������� 'foldmethod'E352: �� ������ ������ ������� ������� ������� 'foldmethod'E353: � ������ %s ���� ����E354: ���������� ����� �������: '%s'E355: ������� ���: %sE356: ������� get_varpE357: 'langmap': �� ������� %s ���� ����E358: 'langmap': ���� ������� ��� `;': %sE359: ����� ������ �� ���������E35: ������ ����� �� �� ����E360: �� ������ ��������� �������� � ���� -fE363: ������ ����������� ���, �� 'maxmempattern', ���'��E364: ���������� ������ �� �%s()� �� �����E365: �� ������ ����������� ���� PostScriptE367: ���� ���� �����: �%s�E369: ����������� ������� � %s%%[]E36: ̳� �� �������E370: �� ������ ����������� �������� %sE371: ������� �� ��������E372: �������� %%%c � ���� �������E373: ���������� `%%%c' � ���� �������E374: �������� ] � ���� �������E375: %%%c � ���� ������� �� ���������E376: ���������� `%%%c' � ������ ���� �������E377: ���������� `%%%c' � ���� �������E378: 'errorformat' �� ����� ������E379: �������� �� ������ ����� ��������E37: �� �������� �������� ����E37: ���� �� ���� �������� (! ��� �� �������)E380: ��� ����� ���������E381: ������ ����� ���������E382: �� ���� ��������, ������� ��� 'buftype'E383: ����������� ������ �� �����: %sE384: ���� ���� �� ������ ��� ���� � %sE385: ���� ���� �� ʲ��� ��� ���� � %sE386: ϳ�� `;' �� ���� `?' ��� `/'E387: ��� � �������� ����E388: �������� �� ��������E389: ������ �� ��������E38: ³������ ��������E390: ����������� ��������: %sE391: ���� ������ ������������ ��������: %sE392: ���� ������ ������������ ��������: %sE393: group[t]here ��� �����������E394: �� �������� ������� ������ �� %sE395: ̳���� ��������� ��� ���������E397: ������� ����� �����E398: �������� `=': %sE399: ����� ���������: ����������� ����� %sE39: ������ �����E400: ������� �� �������E401: ʳ�� ������ �� ��������: %sE402: ���� ��� ������: %sE403: ���������� ���������: ������ �� ���������� ���� ������� ���E404: ��������� ���������: %sE405: �������� ���� ������: %sE406: ������� ��������: %sE407: %s ��� �� ���������E408: %s �� ���� ����� ����� � ������ containsE409: ������� ����� �����: %sE40: �� ������ ������� ���� ������� %sE410: ���������� ��������� :syntax: %sE411: ����� ��������� �� ��������: %sE412: ���������� ���������: �:highlight link %s�E413: �������� ���������: �:highlight link %s�E414: ����� �� settings, highlight link ������������E415: ����������� ���� ������: %sE416: �������� ���� ������: %sE417: �������� ��������: %sE418: ���������� ������: %sE419: �������� ���� ������E41: �������� ���'��!E420: �������� ���� ����E421: ����������� ����� ��� ����� ������: %sE422: ������� ������ ��� ��������: %sE423: ����������� ��������: %sE424: ����������� �������� ���� �������� ������E425: �� ��� ������� �������� ����E426: ̳��� �� ��������: %sE427: ��� ���� �������� ����E428: �� ��� ������ �������� ����E429: ���� �%s� �� ����E42: ����� �������E430: �� ����� ���� �������� �� %s
E431: ������� ������� � ���� ���� �%s�E432: ���� ���� �� ������������: %sE433: ���� ����� ����E434: �� ������ ������ ������ ����E435: �� ������ ������ ����, ���� ��������!E436: ���� ������ �%s� ��� ��������� ��������E437: ������� �������� �������� �cm�E438: u_undo: ��������� ������ ����E439: ������ ��������� ���������E43: ����� ���� ���������E440: ³������ ���� ���������E441: ���� ���� ��������E442: �� ������ �������� ������� topleft � botrightE443: �� ������ ���������� ����, ������� ��E444: �� ������ ������� ������ ����E445: � ����� ��� � ����E446: ���� ����� ����� ��� ��������E447: ���� �%s� �� �������� � ��� �����E448: �� ������ ����������� �������� ����� %sE449: �������� ����������� �����E44: dz������� �������� �������� ������E455: �� ������ �������� ������ ���� PostScriptE456: �� ������ ������ ���� ������� PostScript �%s.ps�E456: �� ������ ������ ���� ������� PostScript �cidfont.ps�E456: �� ������ ������ ���� ������� PostScript �prolog.ps�E456: �� ������ ������� ���� �%s�E457: �� ������ �������� ���� ������� PostScript �%s�E459: �� ������ ������� �� ����������� ��������E45: ����������� ��� 'readonly' (! ��� �� �������)E460: ó��� ������� ����� �������� (! ��� �� �������)E461: ������������ ����� �����: %sE462: �� ������ ���������� �%s�, ��� ���������E463: �� ����� ������ ������� �����E464: ������������ ������ ������� ����������E465: :winsize ������ ��� ������� ���������E466: :winpos ������ ��� ������� ���������E467: ����������� ��������� ������ ��������-�����E468: �������� ���������� ���� �� ��������� ����������E469: ����������� ������� cscopequickfix %c �� %cE46: ����� ���� �� ������: �%s�E470: ������� ���������E471: ������� ������� ��������E472: ������� �� ������E473: ������ �������E474: ����������� ��������E475: ����������� ��������: %sE476: ���������� �������E477: ! �� ���������E478: ��� �����!E479: ������� ����E47: ������� ������ ����� �������E480: ������� ����: %sE481: �� ��������� ��������� ���E482: �� ������ �������� ���� %sE483: �� ������ ���������� ����� ���������� �����E484: �� ������ ������� ���� %sE485: �� ������ �������� ���� %sE486: ������ �� ��������: %sE487: �������� �� ���� ��������E488: �������� �������E48: �� ��������� � �����E490: ������� �� ��������E492: �� �� ������� ���������E493: �������� ������ ��������E494: ��������� w ��� w>>E495: ���� ����� ����� ����������� �� ����� �<afile>�E496: ���� ������ ������ ����������� �� ����� �<abuf>�E497: ���� ����� ���� ����������� �� ����� �<amatch>�E498: ���� ����� ����� :source �� ����� �<sfile>�E499: ����� ����� �� '%' �� '#' ������, ���� ��� � �:p:h�E49: ����������� ����� �����E500: �������� � ������� ����E501: ʳ�� �����E505: �%s� ���� �� ������ (! ��� �� �������)E505: %s ���� �� ������ (! ��� �� �������)E506: �� ������ �������� ��������� ���� (! ��� �� �������)E507: ������� ������� ���������� ����� (! ��� �� �������)E508: �� ������ �������� ���� ��� �������� �������� ��� (! ��� �� �������)E509: �� ������ �������� �������� ��� (! ��� �� �������)E50: �������� \z(E510: �� ������ ������� �������� ��� (! ��� �� �������)E511: netbeans ��� ��'������E512: �� ������ �������E513: ������� ������, ��������� �� ������ (������ 'fenc')E513: ������� ������, ��������� �� ������ � ���� %ld (������ 'fenc')E514: ������� ������ (������� ���� ���?)E515: ����� � ������ �� ��� ������������E516: ����� � ������ �� ������E517: ����� � ������ �� �������E518: ������� ���E519: ��� �� ���������E51: �������� %s(E520: �� ��������� � modelineE521: ϳ�� = ������� ������� �����E521: ������� ������� Number: &%s = '%s'E522: �� �������� ����� ����������� ��������E523: �� ��������� ���E524: ����� ���������E525: ���� �������E526: ϳ�� <%s> ����� �����E527: ����� ����E528: ������� ������� ������ 'E529: �� ������ ���������� 'term'E52: ���� ���� \z(E530: �� ������ ������ term � GUIE531: ���������� �:gui� �� ������� GUIE533: �� ������ ����������� ��������� �����E534: ����������� ��������� �����E535: ������������ ������ ��� <%c>E536: ������� ����E537: 'commentstring' �� ���� ������� �� ������ %sE538: ��� �� ���������E539: ������������ ������ <%s>E53: ���� ���� %s%%(E540: ���������� ������ �� ��������E541: �������� ��������E542: ����� �� ������������E543: ���������� ������ �������E544: �� �������� ���� ���������E545: �������� ���������E546: ����������� �����E547: ����������� ����� ��E548: ������� �����E549: ����������� �������E54: ���� ���� %s(E550: �������� ���������E551: ����������� ���������E552: ����� �����E553: ���� ��� ��������E554: ���������� ������� � %s{...}E555: ʳ�� ����� ����E556: ������ ����� ����E557: �� ������ ������� ���� ����������� ��������E558: ���� �������� ��� �������E559: ���� �������� ��� ��������� ��������E55: ���� ���� %s)E560: �����������: cs[cope] %sE561: �������� ��� ����� cscopeE562: �����������: cstag <�������-��>E563: ������� statE563: stat(%s) �������: %dE564: %s �� � � ���������, � ���� ���� cscopeE566: �� ������ �������� ������ �� cscopeE567: ������� �'������ �� cscopeE568: �������� ���� ���� cscope �� ������E570: ������� ������� � cs_manage_matchesE571: ������, �� ������� ��������, �������� Tcl �� ���� ���� �����������.E572: ��� ����� %dE573: ����������� ����������� ������������ �������: %sE574: �������� ��� ������� %dE579: ������� ������ �������� :ifE580: :endif ��� :ifE581: :else ��� :ifE582: :elseif ��� :ifE583: �� ���� :elseE584: :elseif ��� :elseE585: �������� �������� :while/:forE586: :continue ��� :while �� :forE587: :break ��� :while �� :forE588: :endfor ��� :forE588: :endwhile ��� :whileE589: ��� 'backupext' � 'patchmode' �������E590: ³��� �������� ��� ����E591: 'winheight' �� ���� ���� ����� �� 'winminheight'E592: 'winwidth' �� ���� ���� ����� �� 'winminwidth'E593: ������� ��������� %d ����E594: ������� ��������� %d ������E595: ̳���� ��������� ��� ������� �������E596: �����������(�) �����(�)E597: �� ������ ������� ���� ������E598: ����������� ���� ������E599: ������ 'imactivatekey' ����������E59: ������������ ������ ��� %s@E600: ����� :endtryE601: �������� �������� :tryE602: :entry ��� :tryE603: :catch ��� :tryE604: :catch ��� :finallyE605: �������� ������ �� ���������: %sE606: :finally ��� :tryE607: �� ���� :finallyE608: �� ����� �������� (:throw) ������ � �������� 'Vim'E609: ������� cscope: %sE60: �������� ������� %s{...}E612: �������� �������� �������E613: �������� ����� ��������: %sE614: vim_SelFile: �� ������ ���������� � ������� �������E615: vim_SelFile: �� ������ �������� ������� �������E616: vim_SelFile: �� ������ �������� ����� %sE617: �� ����� ������ � GUI GTK+ 2E618: �%s� �� � ������ ������� PostScriptE619: �%s� �� � ������������ ������ ������� PostScriptE61: ������� %s*E620: �� ������ ����������� �� �������� ����� �%s�E621: ���������� ���� ����� ������� �%s�E622: �� ������ �������� ����� �� cscopeE623: �� ������ �������� ����� cscopeE624: �� ������ ������� ���� �%s�E625: �� ������ ������� ���� ���� cscope: %sE626: �� ������ �������� �������� � ���� ���� cscopeE62: ������� %s%cE630: %s(): ����� �� �䒺�����E631: %s(): ��������� �� ������E63: ���������� ����� \_E64: ϳ�� %s%c ���� ����E655: �������� �������� ������� (����?)E658: ������� ��'���� �� NetBeans �� ������ %ldE659: �� ����� ���������� ��������� PythonE65: ���������� �������� ��������E661: ������, ���� �������� '%s' �� %sE662: ������ ������ ���E663: ʳ�� ������ ���E664: ������ ��� �������E665: �� ������ ��������� GUI, �� �������� �����E666: �������� �� ���������: %sE667: �� ������ �������� fsyncE668: ����������� ����� ������� �� ����� �������� ��� �'������ � NetBenans: �%s�E669: ����������� ������ � ���� �����E66: \z( ��� �� ���������E670: ̳������ ������� ����� �������� �� ���� %sE671: �� ������ ������ ���� �%s�E672: �� ������ ������� ���� �������� �������� MDIE673: ������� ������������� �������� � ���� �������.E674: printmbcharset �� ���� ���� ������� � �������������� ���������.E675: �� �������� ����� �� ��������������� �����.E676: ���� �������� ����������E677: �� ������ �������� ��������� ����E678: ������������ ������ ��� %s%%[dxouU]E679: ����������� ���� ������ syncolor.vimE67: \z1 �� ��. ��� �� ���������E680: <�����=%d>: ����������� ����� ������ E681: ����� �� �����������E682: ����������� ������ �� ����� �� ��������E683: �������� ����� ����� �� ����������� ������E684: ������ ������ ���� ������: %ldE685: ������ �������: %sE686: �������� � %s �� ���� �������E687: ֳ��� ����, �� �������� ������E688: ֳ��� ���, �� �������� ������E689: ��������� ������ ���� ���� ���� �� ������ �� ��������E68: ����������� ������ ��� \zE690: �������� �in� ��� :forE691: ������ ����� ������� ���� � �������E692: ���������� ������ ��� �������E694: ���������� ������ ��� ������E695: ����� �� �� ��������E696: ����� ���� � ������: %sE697: ���� ����� ������ ']': %sE698: ����� �������� ������� ������� ��� ������� �� ���E699: �������� ���������E69: �������� ] ��� %s%%[E700: ������� �����: %sE701: ����������� ��� �� len()E702: ������� � ����� ������� sortE703: Funcref ����� �� NumberE704: ����� ����� Funcref �� �������� � ������ �����: %sE705: ����� ����� ������� � ����� ������: %sE707: ����� ����� ������� � �����: %sE708: [:] �� ���� �������E709: [:] ������ ������E70: %s%%[] �������E710: ������ �� ��� ��������, �� ���E711: ������ �� ���������� ��������E712: �������� � %s �� ���� ������� �� ���������E713: �� �������� �� ���� ���� �������E714: ������� ������E715: ������� �������E716: ���� ������ ��� � ��������: %sE717: ����� � �������� ��� ����E718: ����� �������� �� �����E719: �� ����� ����������� [:] � ���������E71: ������������ ������ ��� %s%%E720: ����� ��������� � ��������: %sE721: ��������� ��� � ��������: �%s�E722: ����� ���� � ��������: %sE723: ���� ����� �������� '}': %sE724: � ����� �������� ������� ��� �� ��������E725: ������ dict-����� ��� ��������: %sE726: ���� �������E727: ������ �� ����E728: Dictionary ����� �� NumberE729: Funcref ����� �� StringE72: ������� �� ��� ������� ����� �����E730: List ����� �� StringE731: Dictionary ����� �� StringE732: ����� :endfor �� :whileE733: ����� :endwhile �� :forE734: ����������� ��� ����� �� %s=E735: ������� ����� ������� ���� �� ���������E736: ���������� ������ ��� ���������E737: �� ��� ����: %sE738: �� ����� ����������� ���� � %sE739: �� ������ �������� �������: %sE73: ���� ���� �������E740: �������� ��������� �� ����� %sE741: ������ ������: %sE742: �� ����� ������ ������ %sE743: ����� �� �������� ������� ��� ���� ��-/�������.E744: NetBeans �� ������ ������� ����� �� ������ �����E745: List ����� �� NumberE746: ����� ����� �� ������ � ����� ����� �������: %sE747: �� ������ ������ �������, ����� �� ���� (! ��� �� �������)E748: ������� ����� ��� �� ��������E749: ������� �����E74: ������� ������� �������E750: ������� ����� �:profile start {����}�E751: ������ ���� �� ������� ���� ����� ������E752: ���� ��������� �����E753: �� ��������: %sE754: ϳ�������� ���� �� ����� ������E755: ����������� ����� � %sE756: �������� �������� �� ���������E757: �� ���� �� ���� ��������E758: �������� ���� ��������E75: ������� ��'�E760: ���� ������ ��� � %sE761: ������� ������� � ���� ����� FOL, LOW �� UPPE762: ������ � FOL, LOW �� UPP ���� ������E763: ������� � ���� ������� � ����� ��������E764: ��� '%s' �� �����������E765: 'spellfile' �� ����� %ld ��������E766: ���������� ��������� �� printf()E767: �������� ��������� �� printf()E768: ���� ����� ����: %s (:silent! ��������)E769: ����� ] ��� %s[E76: �������� '['E770: ����������� ���� � ���� ��������E771: ���� �������� ������, ����� ��������E772: ���� �������� ���������� �� �� ���� ���� VimE773: ����� ������� �������� �%s�E774: 'operatorfunc' ������E775: �������� eval ����������E776: ���� ������ ��E777: ������ String �� ListE778: �� ���� �� ���� .sug: %sE779: ��������� ���� .sug, ����� ��������: %sE77: �������� ���� �����E780: ���� .sug �� �� ���� ���� Vim: %sE781: ���� .sug �� ������� ����� .spl: %sE782: ������� ������ ����� .sug: %sE783: ��������� ������ � ������� MAPE784: �� ����� ������� ������ �������E785: complete() ����� ������� ���� � ����� �������E786: �������� �� ���������E787: ����� ���������� ������E788: ����� �� ����� ���������� ���� �����E789: �������� ']': %sE78: ������� ������E790: �� ����� �������� undojoin ��� undoE791: ������� ��������� �������E792: ������ ����� ���E793: ���� ��� ���������� ������ � ����� �������E794: �� ����� ���������� ����� � �����: �%s�E795: �� ����� ������ ����� %sE797: ����������� SpellFileMissing ������ �����E798: ID ������������� �� �:match�: %ldE799: ����������� ID: %ld (�� ���� �� �����, �� 1)E79: �� ������ �������� ������E800: �� ����� ����������� ������� ����: �� �������� �� ��� �������
E801: ID ��� ������: %ldE802: ����������� ID: %ld (�� ���� �� �����, �� 1)E803: ID �� ��������: %ldE804: �� ����� �������� '%' ��� FloatE805: Float ����� �� NumberE806: Float ����� �� StringE807: ������ �������� Float �� printf()E808: ����� ������� Number �� FloatE809: #< �� �������� ��� ��������� +evalE80: ������� �� ��� ������E810: �� ����� ������ �� ���������� ������� �����E811: ����� �� ����� ������� �������� ������E812: ����������� ������ ����� �� ���� �����E813: �� ������ ������� ���� autocmdE814: �� ������ ������� ����, �������� � ���� ���� autocmdE815: ������, �� ������� ��������, �������� MzScheme �� ����� ���� ����������.E816: �� ������ �������� �������� patchE817: ���������� ����������� ������ ����� Blowfish (BE/LE)E818: �� ������ �������� sha256E819: �� ������ �������� BlowfishE81: <SID> ������������� �� � �������� �������E820: sizeof(uint32_t) != 4E821: ���� ���������� �������� �������E822: �� ������ ������� ���� �� ������: %sE823: �� ���� �����: %sE824: ��������� ���� �����: %sE825: ���� ����� ��������� (%s): %sE826: �� ������ ����������� ���� �����: %sE827: ���� ����� �����������: %sE828: �� ������ ������� ���� ����� �� ������: %sE829: ������� ������ � ���� �����: %sE82: ���� ��������� ��������� �� ���� �����, �������� ������...E830: ���� %ld �� �������� � �����E831: ��������� bf_key_init() � ������� �������E832: �� ����������� ���� �� ����������� ���� �����: %sE833: %s ����������, � �� ���� Vim �� ������� ���������E834: �������� �� ������� 'listchars'E835: �������� �� ������� 'fillchars'E836: Python: �� ����� ����������� :py � :py3 � ������ �����E837: Python: �� ����� ����������� :py � :py3 � ������ �����E838: netbeans �� ��������� � ��� GUIE839: ����� ��������� ������ ����E83: ���� ��������� ��������� �����, ���� ����������� ����...E840: ����� ��������� ������ �����E841: ������������� �����, �� ����� ����������� �� ������� ����������E842: ���� ������ ����, ��� ����������� � �<sfile>�E843: ������� ��������� ��������� ����� �����E844: ���������� ������ ccharE845: ���������� ����, ������ ��� ���� ��������E846: ��� ��� �� �����������E847: �������� ���������� �����E848: �������� ���������� ��������E849: �������� ���� ��������� � ����������E84: ����� ����� �� ������E850: ���������� ����� �������E851: �� ������ �������� ����� ����� �� GUIE852: ����� ����� �� ��� ��������� GUIE853: ����� ��������� ��������: %sE854: �� ������� ������ �� ���������E855: ����������� �������� �� ��������� �������E858: Eval �� �������� ������ �ᒺ�� pythonE859: �� ������ ����������� �ᒺ�� python � ������ vimE85: � ������ ���� ������E862: ��� �� ����� ����������� g:E864: ��� \%#= ���� ���� ���� 0, 1, or 2. ���� ����������� ����������� ������ E865: (NFA) ������ ������� ��� ���������� ������E866: (NFA regexp) �� �� �� %cE867: (NFA) �������� �������� '\%%%c'E867: (NFA) �������� �������� '\z%c'E868: �� ������ ���������� NFA � ������ �������������!E869: (NFA) �������� �������� '\@%c'E86: ������ %ld ����E870: (NFA regexp) �� ������ �������� ��� ���������E871: (NFA regexp) ����� �� ���� ���� �� �����!E872: (NFA regexp) �������� '('E873: (NFA regexp) ������� ��������� ���������E874: (NFA) ���� �������!E875: (NFA regexp) (ϳ� ��� ����������� � ������� � NFA) �������� �������� ����� � �����E876: (NFA regexp) ���������� ����, ��� �������� ��� NFA E877: (NFA regexp) ����������� ���� �������: %ldE878: (NFA) �� ������ �������� ���� �� ����� ����!E879: (NFA regexp) �������� \z(E87: �� ��� ������� �����E881: ʳ���� ���� ���������� �������E882: ������� � ����� ������� uniqE883: ������ ����� � ���������� ����� �� ����� ������ ��� �� ��� ����E884: ����� ����� �� ���� ���� ���������: %sE885: ��������� ������ ���� %sE886: �� ������ ������������� ���� viminfo � %s!E887: ������, �� ������� ��������, ����� �������� Python �� ���� ���� �����������.E888: (NFA regexp) �� ����� ��������� %sE88: �� ��� �������� �����E890: �������� ������� ��� ']': %s]%sE891: Funcref ����� �� FloatE892: String ����� �� FloatE893: List ����� �� FloatE894: Dictionary ����� �� FloatE895: ������, �� ������� ��������, �������� MzScheme �� ����� ���� ����������.E898: socket() � channel_open()E89: ����� %ld �� ���� (! ��� �� �������)E901: gethostbyname() � channel_open()E902: �� ������ �'������� � ������E903: �������� ������� � ����������� ����������E904: ������� �������� � �����/������� �� ���� ������E904: ����� �������� � ������� �� ���� �������E905: �������� ������� �������: %sE906: �� �������� �����E907: ������� ������ ����� �� FloatE908: ���������� ������ ����� �� StringE909: �� ����� ����������� ������� �����E90: �� ���� ����������� ������� �����E910: Job ����� �� NumberE911: Job ����� �� FloatE912: �� ����� ����������� ch_evalexpr()/ch_sendexpr() � raw �� nl �������E913: Channel ����� �� NumberE914: Channel ����� �� FloatE915: ����� in_io ������� ������������� in_buf �� in_nameE916: ���������� �������E917: �� ����� ����������� �������� ������ � %s()E918: ����� �� ���� ������������: %sE919: ���� �� ��������: '%s': �%s�E91: ��� 'shell' ������E920: ���� _io ������� ������������� _nameE921: ����������� �������� ���������� �������E922: ����� dictE923: ������ �������� function() �� ���� ������� �� ���������E924: ������ ���� ���� �������E925: ������� quickfix ������E926: ������� ������ �� ������E927: ���������� �: '%s'E928: ������� StringE929: �������� �������� ����� viminfo, �� %s!E92: ����� %ld �� ��������E930: �� ����� ����������� :redir �������� execute()E931: ��������� ������������ �����E932: ����� �������� �� ������� ���� �� ������� ���: %sE933: ����� ��������: %sE934: �� ����� ������� �� ������, ���� �� �� �����E935: ����������� ����� ��-����: %dE936: �� ������ ������ �� �����E937: ������ �������� �����, �� �������������E938: ��������� ��� � JSON: �%s�E939: ������� ������� �����E93: �������� ���� ���� � %sE940: ��������� ����������� �� ������������ ����� %sE941: ������ ��� �������E942: �������� +clientserver ������E943: ����� ������ ������� ��������, ������� 'make cmdidxs'E944: �������� ������� � ���� �������E945: ��������� ������� � ���� �������E94: �� �������� �����, ����� �� %sE95: ����� � ���� ����� ��� ����E96: �� ����� ��������� ����� %ld ������(��)E97: �� ������ �������� �������E98: �� ������ �������� �������� diffE99: ��� ����� �� � ����� �������������: ���������� �������������� ���� � ������ ������������� �� �������� &Vim���������� � (&m)���� Vim���������� � ��� ��������� Vim - ���������� � ������ &Vim������ ������ ����� � �������� Vim��������:ʳ�� �����ʳ�� ������������ ���������� �� �����: ����� ����� ����� �����, ������ �����������, (0 �� �����):������� ��: ����� �����������.  ��� ���������� ����� �cont�.����� Ex. �� ��������� �� ���������� ������ ��������� �visual���������������, ���������������� �������� ������, �������� �� � gvim � ��� �����!������� ������� �� ��� �������� %s:���� ������������ ��������� ���'��: %d ����������������� �������� ������: %s������ �������: %s������ �������: %s�������� ������: %s�������� %s����� ����� MAP � %s � ���� %d����� ����� REP(SAL) � %s � ���� %d����� Y �� N � %s � ���� %d: %s����������� ��-����:
FLAG ��� ����������� ������� � %s � ���� %d: %s�� ������ ���������� �������� ���: sys.path_hooks �� ������
��� ��� ������ ���:
- ������� vim.path_hook �� sys.path_hooks
- ������� vim.VIM_SPECIAL_PATH �� sys.path
�� ������ ���������� ��: sys.path �� ������
��� ��� ������ vim.VIM_SPECIAL_PATH �� sys.path���� �%s� �� �������� ����� ������, �� ����� ����������� �������� ��� ��������� �%s� ��������� ���� ������.
�����, �������, ���� ����� ��������.
����� ����������?���� ��������������Գ��������� � ������� ('\\' ��� ������ '\')&N:������ ����������������� ���� ('\\' ��� ������ '\')������:������� ������ ����� ����� %s���� ��������� ����� � %s � ���� %d: %s������� �� � ������ � %s � ���� %d: %s����� '%s' �� � ����������������� ������%ld �� ��� ���� �� ������ ������0������ ������0: %ld�����0: %s������ ������1: %ld�����1: %s�����:�� ��� %s���� ��� ��������� ���³����, ���������� Vim!�������� ������� � ������!������� ��� ���������������� �����/�������������� %d ���(~) �� ��-ASCII ��������� � %s������������ %d ��� �� ��-ASCII ����������������� ������ ���� � ���� � �������������������� ����� ���������������� ������� � %s � ���� %d: %s���������� ����� ������������������� ������ �� ������ ���������� ���������� �������������������������: �������������������� �������� ����������� �������� ����������������� ����� ������ � %s � ���� %d: %s���������� ������ FLAG � %s � ���� %d: %s��� �� �������!������ �'������������������: ������� ������ �� ������� ������ ����������� �������� Lua������� �� ��������� ����� �����������������������: ������� ���� <sakhnik@gmail.com>�������� '>'�������� ���� FOL/LOW/UPP � %s�������� ���� SOFO%s � %s����� �����:������� %s ���� %ld
������� Amigados 2.04 ��� ����
�� �%s� ������� ��: NetBeans �� ������ ���������� � ������� ���������� �������ͳ�� ������ �� �������� �������� ������������������ �� ���������� �������� ����� ���� ����������� ���������� ������: ³������ ����� �� ������.
ͳ����������� �������� ���������� �� ���������� ����������� ����� ���������� ��� ��������, ���� ��������� �������� ����������������� ������� ��������� ����� �����ͳ���� ������������������ ���� ���������, ��� ���� ������������ �������� ������ ������������������������ ����, ��� ���������� ��������, ��� ���� ���������!���� ����� �������� �� ����, ������� ����: %s���� ���� �����������ʳ���� ��� ��� �������� �����: %ld������³������ ����³������ �������...³������ �������...�� ������ ������� ������� X����� ��� ������� ������� ������ ��� ������� ������ X ��� %ld ����������������� ���� �%s����������� ������ ���� �%s�?������� %d������� ������ ��������� �� ������ NetBeans������� ������� ������!��:������ �������� � ������� ����: %s������ �� �������������� �� ��������: %s�������� �������� �����...������� ENTER ��� ����� ������� �� ����������������� ����� �������.�����������: %s������� '%s'���� ���������������� ������� %d (%d%%)����� �� ��������������������� ���� ����� %s ...��������� ���� ��������...������ ����������� ���� %s ...������ � stdin...������ ���� �������� �%s������� ���� �����: %s������ ���� viminfo: �%s�%s%s%s������ ���� ��� %s ...³�������� �������. ���� ������ ������� � ������ �����.³�������� �������, �������� �� ��� ������.������������� �� �'�������������&A:������� ��������� ��������� ��:�� ������ � ����� �������� � Vi��� ������, ����� �� ������� ���������������� �������'����� ������������ ��������������� ������������ ������������� ������������������ ������������� ���� � �%s�?������� �������: %s���� � �������� ����: %s���� ����� ����.���� �: %sScrollbar Widget: �� ������ �������� ����� �������� ��������.����� �������� �%s����� �%s� � �%s������� � �������� ���� %s������ � ���� ���� %s���. �:help E312� �� �������.���. �:help W11� �� �������.���. �:help W12� �� �������.���. �:help W16� �� �������.������� �������������� %s%ld � %ld ����; %lld � %lld ���; %lld � %lld ������������ %s%ld � %ld ����; %lld � %lld ���; %lld of %lld �������; %lld � %lld ������������³������� �� �������...�������� �'�������������� ����� � �������������� �� ����������������� �� %s:�����:���� ����� �� ��������, ���� ���������������, ���� �������� �%s� �� ���������������, ���� ���������������, ���� %ld ��������������, �� ������� ��������, �������� Perl �� ���� ���� �����������.�������� ������ Vimϳ��������� �������� ��������� Vim!����� ����� ����������:����� ���� ����� ����� ����� �%s� ����, ������������?���� ����� ��� ����!���� ����� �����������: �%s��������� ����� �����:����������� �� ����� � ���������� �� �������: ������� %d³������ �� ���������� � �� ������ ������������� �� ���� Vim���� ���� �������� �� ������ ���� ���� Vim �� ���� ����������� � �������� �������.� ������� cscope �� �쳺 ����� ����.
�������� ��������� � �+�������, �-c ������� ��� �--cmd ��������������� ������� ��������������� ����������������� ��������� ��������������� ��������� ������� �/��� ������� ��������������� ������ � %s � ���� %d: %s��������� ����� ���: %d������ ����� � %s � ���� %d: %s�����  :qa!  � ������� <Enter>, ��� �������� �� ���� � ����� � Vim������ ����� � <Enter> (������ �������): ������ ����� � <Enter> �� ����� ���� (������ �������): �� ������ �������� ���� 0 � �� ������ ������������ ����� ������� ��������������������� �������� ������������� ������ � %s � ���� %d: %s������������ �� ��������� ������� � %s � ���� %d: %s��������������������� Vim 3.0
����������� CUT_BUFFER0 ����� ��������� ��������� ���������� ����� ������������� �� ����� � ����� �����.
������������� ���� ����� �%s�VIM � ���VIM - ������ � �������...VIM - ����...VIM - ��������� Vi������� VIMVIM: �� ������ ������� ����!
���� VIMRUN.EXE �� �������� � ��� �����.
����� ������� �� ����� ���������� ��� ��������.
�����  :help win32-vimrun ��� �������� �������.Vim - ���� ������Vim E458: ���� ���� ������ � �����, ��� ������ ����� ���� �������������������� Vimij���� Vim������� Vim������� Vim: ~aVim ������ ������ � %d
Vim � �� ������� � ���� �������������� ��������Vim: ������� ��� %s
Vim: ������� ������ �����, ������ ��������...
Vim: �������: �� ������ ��������� gvim �� NetBeans
Vim: �������: � ���� Vim �� ���� � ������� Cygwin
Vim: ���������� ������� ������� ����
Vim: ������ � stdin...
Vim: ������� ����� �die� �� ��������� ����
Vim: �����������: ������� �� � ��������
Vim: �����������: ���� �� � �������
W10: �����������: ����� ���� ���������� ��� �� ������W11: �����������: ���� �%s� ������ ��� ������ ����������W12: �����������: ���� �%s� ������, ��� � ����� � Vim �����W13: �����������: ���� �%s� ���� �������� ��� ������ ����������W14: ��������: ������ ���� ����� �����������W15: �����������: ����������� �������� ����, �������, ����� ^MW16: �����������: ����� ����� �%s� ������ ��� ������ ����������W17: �� ������� ���� ������� UTF-8, ��������� ':set encoding=utf-8'W18: ����������� ������ � ���� �����W19: ������ ��������� ��� �� � ������W20: ������� ���� python 2.x �� ���������, �������� ����: %sW21: ������� ���� python 3.x �� ���������, �������� ����: %sW22: ������� ����� ��� :endfunction: %s�����������: ���� ������ � ���� ��������� ������!!!����������������������: �� ������ ������ ������ ��� �%s.%s.spl� �� �%s.ascii.spl������������: �� ������ ������ ������ ��� �%s_%s.spl� �� �%s_ascii.spl���������: ���������� �������� � ����� ����� (�������� �����������)�����: ������������� ������� ����� ���������; ���. :help 'cm'�����������: �������� ������ `������ �����' � NOBREAK�����������: ����� %s �� ��������������������: ������� �� ������� ��������� ������� ����� "�� ����� ������������ � ����� ��������, �� ����� ��������: %s�� ����� ������������, �� �� ���� �����: %s����� ����: X %d, Y %d����� '%.*s' ������ �� %s����� '%.*s' ������ � %s����� � ����� ������������ ������� �����?�������� ���� �������� %s ...�������� ���� ������� %s ...�������� ���� �����: %s�������� ���� viminfo �%s����������� ������ CHECKCOMPOUNDPATTERN � %s � ���� %d: %s���������� ������ COMPOUNDMIN � %s � ���� %d: %s���������� ������ COMPOUNDRULES � %s � ���� %d: %s���������� ������ COMPOUNDSYLMAX � %s � ���� %d: %s���������� ������ COMPOUNDWORDMAX � %s � ���� %d: %sXSMP ������������ �� �'������� � ICE �� ������XSMP �� ������ SmcOpenConnection: %sXSMP �������� ����� '������� ����'XSMP ������� �'������ ICEXSMP ��������� �'�����������[������ �������ֲ� � ���� %ld][����� CR][������][�������][���� ���������][��������][����������� ���� � ���� %ld][�������� ������� ����][������ ��][�� ������������][����� �������][����� ����][����� ����][�����][��� �����][���� �� ��������]
[�� ����������][³��������][�������][������ ���������][������ ������][RO][������� ������][� ���][�������] ����� re/malloc() - %lu, ����� free() - %lu

[���. ���������][������������][����������][������ dos][dos][�����/�����][�����][���� ..]       ���������� ������ �����[������� ���� ����][������ mac][mac][noeol][��� ������][�����][������ unix][unix]����������������������³���������������������� add()���� ��������� diff � ��������� ��� ��������� ����)������ ��������� ���������� ������� %d � ��������� ��� ������ %d������ ��������� ���������� ������ ���, �� %d, � ��������� ��������� �������� �� �������� ������������ �������� �� ������ ������������� ��������� �� �������� �������������� ������ �����������: %s <�����=%d>����������� %s����������'���� ���� �� %ld ���������'���� ���� � ������ ��������� ����������� �����: Bram Moolenaar �� ��.������� �� inputrestore() �����, �� �� inputsave()��������� %s�� ������ ������ �������� OutputObject�� ������ �������� ���� 'charconvert'�� ���� ������ ����� ������ ?!
�� ������ �������� ������� ����/������: ��'��� ��������������� ������ ������ ������ ������ �������� vim.Dictionary�� ������ ������ �������� vim.List�� ������ ������ ������ ������ �������� ������ ������ ��������/������ ������ ����� ������ ��������� ��������� ����� ������ ��������� �������� ������ ������� �� ������ ������������ ���: �����/���� ��� �������� ������ ������������ ������� ��䳿: �������� �� �����/���� �� ����������������� ������� ������ ������ �������� �������� �� ����������� ����� ���������� ������� %s�� ������ ���������� ������ ������ �����'�����; ��� ���� ������?�������close�������: %s���������� � %s�� ������ �������� �%s��� ������ ������� �����cs_create_connection: ������� �� ��� ��������cs_create_connection: ������� setpgidcs_create_connection: fdopen �� fr_fp �� �����cs_create_connection: fdopen �� to_fp �� ������������ cscope:
�'������ � cscope %s ������������� �� ������ �������������� '���� 1 ������?������� ������������� ���������� �� ������� ��������� ���������� �� ��������� ����dlerror = �%s��� ������ � ���������, ���� ���� �� ��������!������ ��� �� ������������� �������� ������ ����������� ������ Scheme � Vim�������� �������������� 3-������ �� �������� imp.find_module(), ��� �������� %s������� 3-������ �� �������� imp.find_module(), ��� �������� %d������� �������� bytes() �� str(), ��� �������� %s������� int() �� ���, �� ���� ���� ����� int(), ��� �������� %s������� int(), long() �� ���, �� ���� ���� ����� long(), ��� �������� %s�������� ���������� ������� 2, ��� �������� ���������� ������ %d������� �������� str() �� unicode(), ��� �������� %s������� �ᒺ�� vim.Buffer, ��� �������� %s������� �ᒺ�� vim.TabPage, ��� �������� %s������� �ᒺ�� vim.Window, ��� �������� %s������� ������ �������� �� ��� ��������������� extend()�� ������ ������ ������� �� �������� ������ ������ �� '%s' �� ���������� ������ ������ ���������� ������ ������ ���� � ������ ������� ������ ������������� ������� ������ �������� ����� %s�� ������ �������� ����� ������ ����������� �� ������ %d���� ����������
���� / �������� / ����
�������� filter()������� �������� %s���� ����� �� �������� ���: %d���� ����� �������������� ����: %ld����� %s �� ����������� gvimext.dll��-����� ������� �� ��� �������������������������� ���� ��� ����� ---
������ �� ���� ����� �� ���, �� %s�������� insert()������ �������: �������� �������� NULL������ �������: �� ������ ������ ������� �� ������������ �������: �� ������ �������� ������� ������ vim %d������ �������: imp.find_module ��������� ������ � NULL������ �������: ����������� ��� ������������ �������: ���� �������� ������ vim %d������ �������: ����� �������� � ������������ �������: �������� ��� �������������� �������: %s���������� ����� ����������������� ��������������� ����� �������� �������� (�������� ���� 'opendevice')��������� ������ ��������� �� ��������� �� ������ (! ��� �� �������)��������� � ������������� %4ld:���� %6d, ����� %6d - %s���� %ld���� %ld � %ld --%d%%-- ������� ���� %ld: %s���� %ld: �� ������ �������� �%s����� %ld: �������� �%s������� ��������� ���� �� ������ ���������� ���� �� ������ �������������� ����������� �� ������ �������� ��������������� ������ �� ������������ �����������logoff�������� map()����� ���� �� ���� ���� ������������ �� ���������� %d��� %d � %d��� � ��������������� mch_get_shellsize: �� ������??
���  Edit->Global Settings->Toggle Insert Mode    ���  Edit->Global Settings->Toggle Vi Compatible  ���  Help->Orphans       ������ ��������      ���  ��������->�������/�������  �������      �������� modeline������ �������� ������netbeans �� ��������� � ��� GUI
������� ���� ��������
�������� �'������ � cscope
���� ����������� �������� ������� ���������� ���� ������� ����������� ��������� � ����� Vim�� �������� �� �������� � '%s': �%s��� �� ���������������  ����    ���             �������������� �� ���� �� ����, �� �������� �� ���� ���, �� ���pe_line_count ����� 0������� ����� vimrc�� ������ ���������� ����������� ��� �� ������: �������� ������������� remove()������� �� %s (y/n/a/q/l/^E/^Y)?�������� reverse()���� %d ������� %d���� ���� �� ʲ���, ���������� � ���������� ���� �� ������, ���������� � ʲ����������� �������� ��������� %dshutdown���� ���� �� ���� ���� ����������� sort()�������� �%s�stack_idx �� ���� ����� 0��� �� ���� �������������� �� �������� ���� �������� ��������� �� ��������� ���������� ��������������� ������������ ���������������� ���������� ������������� ���������� ������������� iskeyword ��������� ����������������� �� ����������������� �������� �������� %d � %d%s����� ������ %s � %s:help cp-default<Enter>   �������� ��� �������:help iccf<Enter>         �������                :help register<Enter>     ������ ��������      :help sponsor<Enter>      ������ ��������      :help version8<Enter>     �������� ��� ����    :help<Enter> ��� <F1>     ������� ��������        :q<Enter>                 ��� � Vim              :set nocp<Enter>          ����� ��������� � Vi    �� ������ ����������� %s � ������� vim�� ������ ����������� %s � ������ vim�� ������ ����������� %s � ��������� vim�� ������ �������� ������ ����� ������ ������� �������� ��� %s�� ������ ������� ��� %s, ��� �� �� ���������� �������������� unique()��������������� �������: ������� ���������� vimOption�������� ����� %s �� ���������� ��������, ��� �������� � ��� C int������ ������, ��� �������� � ��� C int���� ������� Vim����������� ����� �������� ����������� (��������) GUI.� GUI Carbon.� GUI Cocoa.� GUI GTK2.� GUI GTK2-GNOME.� GUI GTK3.� GUI.� GUI Photon.� GUI X11-Athena.� GUI X11-Motif.� GUI X11-neXtaw.��� GUI.����� �� ������� ���������� ���� 'opendevice'PK�j�ZE��]]vim80/lang/menu_nl.utf-8.vimnu�[���" Menu Translations:	Nederlands for UTF-8 encoding

source <sfile>:p:h/menu_nl_nl.latin1.vim
PK�j�Z��s�RRvim80/lang/menu_cs.latin1.vimnu�[���" Menu Translations:	Czech

source <sfile>:p:h/menu_czech_czech_republic.1252.vim
PK�j�Z���b2b2-vim80/lang/menu_czech_czech_republic.1250.vimnu�[���" Menu Translations:    Czech (CP1250)
" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
" Previous maintainer:  Jiri Brezina
" Based on:             menu.vim (2012-10-21)

" Quit when menu translations have already been done.
if exists("did_menu_trans")
   finish
endif

let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp1250

" {{{ File menu
menutrans &File				&Soubor
menutrans &Open\.\.\.<Tab>:e		&Otev��t\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otev��t\ v\ no&v�m\ okn�\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otev��t\ tab\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Nov�<Tab>:enew
menutrans &Close<Tab>:close		&Zav��t<Tab>:close
menutrans &Save<Tab>:w			&Ulo�it<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Ulo�it\ &jako\.\.\.<Tab>:sav
if has("printer") || has("unix")
   menutrans &Print			&Tisk
endif
menutrans Sa&ve-Exit<Tab>:wqa		U&lo�it\ a\ ukon�it<Tab>:wqa
menutrans E&xit<Tab>:qa			&Ukon�it<Tab>:qa

if has("diff")
   menutrans Split\ &Diff\ with\.\.\.	Rozd�lit\ okno\ -\ &Diff\.\.\.
   menutrans Split\ Patched\ &By\.\.\.	Rozd�lit\ okno\ -\ &Patch\.\.\.
endif
" }}}

" {{{ Edit menu
menutrans &Edit				�pr&avy
menutrans &Undo<Tab>u			&Zp�t<Tab>u
menutrans &Redo<Tab>^R			Z&ru�it\ vr�cen�<Tab>^R
menutrans Rep&eat<Tab>\.		&Opakovat<Tab>\.
menutrans Cu&t<Tab>"+x			&Vy��znout<Tab>"+x
menutrans &Copy<Tab>"+y			&Kop�rovat<Tab>"+y
menutrans &Paste<Tab>"+gP		V&lo�it<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vlo�it\ &p�ed<Tab>[p
menutrans Put\ &After<Tab>]p		Vlo�i&t\ za<Tab>]p
if has("win32") || has("win16")
   menutrans &Delete<Tab>x			&Smazat<Tab>x
endif
menutrans &Select\ All<Tab>ggVG		Vy&brat\ v�e<Tab>ggVG
if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
   menutrans &Find\.\.\.			&Hledat\.\.\.
   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
else
   menutrans Find<Tab>/ &Hledat<Tab>/
   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
endif
menutrans Settings\ &Window		Nastav&en�\ okna
" {{{2 Edit -1
menutrans Startup\ &Settings  Po��te�n�\ &nastaven�
menutrans &Global\ Settings				&Glob�ln�\ nastaven�
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&P�epnout\ zv�razn�n�\ vzoru<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		P�epnout\ ignorov�n�\ &VERZ�LEK<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		P�epnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
menutrans &Virtual\ Edit				Virtu�ln�\ p&ozice\ kurzoru
menutrans Never						Nikdy
menutrans Block\ Selection				V�b�r\ Bloku
menutrans Insert\ mode					Insert\ m�d
menutrans Block\ and\ Insert				Blok\ a\ Insert
menutrans Always					V�dycky
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		P�epnout\ Insert\ m�&d<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		P�epnout\ kompatibiln�\ re�im\ s\ 'vi'<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohled�v�n�\.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g\ soubory\.\.\.
menutrans Toggle\ &Toolbar				P�epnout\ &Toolbar
menutrans Toggle\ &Bottom\ Scrollbar			P�&epnout\ doln�\ rolovac�\ li�tu
menutrans Toggle\ &Left\ Scrollbar			P�epnout\ &levou\ rolovac�\ li�tu
menutrans Toggle\ &Right\ Scrollbar			P�epnout\ p&ravou\ rolovac�\ li�tu
" {{{2 Edit -2
menutrans F&ile\ Settings				Nastaven�\ so&uboru
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	P�epnout\ ��slov�n�\ ��&dk�<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! P�epnout\ relativn�\ ��slov�n�\ ��&dk�<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		P�epnout\ &List\ m�d<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		P�epnout\ zala&mov�n�\ ��dk�<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	P�epnout\ zl&om\ ve\ slov�<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		P�epnout\ &expand-tab<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		P�epnout\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		P�epnout\ &C-indenting<Tab>:set\ cin!
menutrans &Shiftwidth					Nastav&it\ ��ku\ od&sazen�
menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\.				��ka\ te&xtu\.\.\.
menutrans &File\ Format\.\.\.				&Form�t\ souboru\.\.\.
" {{{2 Edit -3
menutrans C&olor\ Scheme		Barevn�\ s&ch�ma
menutrans &Keymap			Kl�vesov�\ m&apa
if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
   menutrans Select\ Fo&nt\.\.\.		Vybrat\ p�s&mo\.\.\.
endif
" }}}1

" {{{ Programming menu
menutrans &Tools			N�st&roje
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Sko�it\ na\ tag<Tab>g^]
menutrans Jump\ &back<Tab>^T		Sko�it\ &zp�t<Tab>^T
menutrans Build\ &Tags\ File		&Vytvo�it\ soubor\ tag�

if has("spell")
   menutrans &Spelling			&Kontrola\ pravopisu
   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
   menutrans To\ &Next\ error<Tab>]s	&Dal��\ chyba<Tab>]s
   menutrans To\ &Previous\ error<Tab>[s	&P�edchoz�\ chyba<Tab>[s
   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
   menutrans &Find\ More\ Languages	Nal�zt\ dal��\ &jazyky
   let g:menutrans_set_lang_to = "Nastavit jazyk na"
endif

if has("Folding")   
   menutrans &Folding			&Skl�d�n�
   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ ��dek\ &kurzoru<Tab>zv
   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ ��dek\ kurzoru\ <Tab>zMzx
   menutrans C&lose\ more\ folds<Tab>zm	Slo�it\ &jednu\ �rove�\ sklad�<Tab>zm
   menutrans &Close\ all\ folds<Tab>zM	Slo�it\ v�echny\ sklady<Tab>zM
   menutrans O&pen\ more\ folds<Tab>zr	P�idat\ jednu\ �rove�\ sklad�<Tab>zr
   menutrans &Open\ all\ folds<Tab>zR	&Otev��t\ v�echny\ sklady<Tab>zR
   menutrans Fold\ Met&hod			&Metoda\ skl�d�n�
   menutrans M&anual			&Ru�n�
   menutrans I&ndent			&Odsazen�
   menutrans E&xpression	&V�raz
   menutrans S&yntax			&Syntaxe
   menutrans &Diff			&Rozd�ly
   menutrans Ma&rker			&Zna�ky
   menutrans Create\ &Fold<Tab>zf		Vytvo�it\ &sklad<Tab>zf
   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ v�echny\ sklady<Tab>zD
   menutrans Fold\ col&umn\ width		Sloupec\ zob&razen�\ sklad�
endif

if has("diff")
   menutrans &Update			&Obnovit
   menutrans &Get\ Block			&Sejmout\ Blok
   menutrans &Put\ Block			&Vlo�it\ Blok
endif

menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		V�pis\ &chyb<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	V�p&is\ zpr�v<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		Dal��\ ch&yba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&P�edchoz�\ chyba<Tab>:cp
menutrans &Older\ List<Tab>:cold	Sta&r��\ seznam<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	N&ov�j��\ seznam<Tab>:cnew
menutrans Error\ &Window		Chybov�\ o&kno
menutrans SeT\ Compiler			Nas&taven�\ kompil�toru
menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
menutrans &Open<Tab>:copen		&Otev��t<Tab>:copen
menutrans &Close<Tab>:cclose		&Zav��t<Tab>:cclose
menutrans Se&T\ Compiler		N&astavit\ kompil�tor

menutrans &Convert\ to\ HEX<Tab>:%!xxd	P�ev�st\ do\ �estn�ctkov�ho\ form�t&u<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r P�&ev�st\ zp�t<Tab>:%!xxd\ -r
" }}}

" {{{ Syntax menu
menutrans &Syntax		Synta&xe
menutrans Set\ '&syntax'\ only	Nastavit\ pouze\ 'synta&x'
menutrans Set\ '&filetype'\ too	Nastavit\ tak�\ '&filetype'
menutrans &Off			&Vypnout
menutrans &Manual		&Ru�n�
menutrans A&utomatic		A&utomaticky
menutrans on/off\ for\ &This\ file	&P�epnout\ (pro\ tento\ soubor)
menutrans o&ff\ (this\ file)	vyp&nout\ (pro\ tento\ soubor)
menutrans Co&lor\ test		Test\ &barev
menutrans &Highlight\ test	&Test\ zv�raz�ov�n�
menutrans &Convert\ to\ HTML	P�ev�st\ &do\ HTML
menutrans &Show\ filetypes\ in\ menu	&Zobrazit\ v�b�r\ mo�nost�
" }}}

" {{{ Menu Buffers
menutrans &Buffers		&Buffery
menutrans &Refresh\ menu	&Obnovit\ menu
menutrans &Delete		Z&ru�it
menutrans &Alternate		&Zm�nit
menutrans &Next			&Dal��
menutrans &Previous		&P�edchoz�
" }}}

" {{{ Menu Window
menutrans &Window			&Okna
menutrans &New<Tab>^Wn			&Nov�<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Rozd�lit<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Ro&zd�lit\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Rozd�lit\ &vertik�ln�<Tab>^Wv
menutrans Split\ File\ E&xplorer	Rozd�lit\ -\ File\ E&xplorer
menutrans Move\ &To			&P�esun
menutrans &Top<Tab>^WK			&Nahoru<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dolu<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Vlevo<Tab>^WH
menutrans &Right\ side<Tab>^WL		Vp&ravo<Tab>^WL

menutrans &Close<Tab>^Wc		Zav��&t<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zav��t\ &ostatn�<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Dal��<Tab>^Ww
menutrans P&revious<Tab>^WW		&P�edchoz�<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Stejn�\ v��ka<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Maxim�ln�\ v��&ka<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		M&inim�ln�\ v��ka<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		&Maxim�ln�\ ��ka<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minim�ln�\ ��k&a<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		Rotovat\ na&horu<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotovat\ &dol�<Tab>^Wr

" {{{ Help menu
menutrans &Help			&N�pov�da
menutrans &Overview<Tab><F1>	&P�ehled<Tab><F1>
menutrans &User\ Manual		&U�ivatelsk�\ Manu�l
menutrans &How-to\ links	Ho&wto
menutrans &GUI			&Grafick�\ rozhran�
menutrans &Credits		&Auto�i
menutrans Co&pying		&Licen�n�\ politika
menutrans &Sponsor/Register	Sponzorov�n�/&Registrace
menutrans &Find\.\.\.		&Hledat\.\.\.
menutrans O&rphans		O&si�el�\ d�ti
menutrans &Version		&Verze
menutrans &About		&O\ aplikaci
" }}}

" {{{ The popup menu
menutrans &Undo			&Zp�t
menutrans Cu&t			&Vy��znout
menutrans &Copy			&Kop�rovat
menutrans &Paste		&Vlo�it
menutrans &Delete		&Smazat
menutrans Select\ Blockwise	Vybrat\ blokov�
menutrans Select\ &Word		Vybrat\ &slovo
menutrans Select\ Pa&ragraph Vybrat\ &odstavec
menutrans Select\ &Sentence   Vybrat\ v�&tu
menutrans Select\ &Line		Vybrat\ &��dek
menutrans Select\ &Block	Vybrat\ &blok
menutrans Select\ &All		Vybrat\ &v�e
" }}}

" {{{ The GUI toolbar
if has("toolbar")
   if exists("*Do_toolbar_tmenu")
      delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
      tmenu ToolBar.Open		Otev��t soubor
      tmenu ToolBar.Save		Ulo�it soubor
      tmenu ToolBar.SaveAll		Ulo�it v�echny soubory
      if has("printer") || has("unix")
         tmenu ToolBar.Print		Tisk
      endif
      tmenu ToolBar.Undo		Zp�t
      tmenu ToolBar.Redo		Zru�it vr�cen�
      tmenu ToolBar.Cut		Vy��znout
      tmenu ToolBar.Copy		Kop�rovat
      tmenu ToolBar.Paste		Vlo�it
      tmenu ToolBar.Find		Hledat...
      tmenu ToolBar.FindNext	Hledat dal��
      tmenu ToolBar.FindPrev	Hledat p�edchoz�
      tmenu ToolBar.Replace		Nahradit...
      if 0	" disabled; These are in the Windows menu
         tmenu ToolBar.New		Nov� okno
         tmenu ToolBar.WinSplit	Rozd�lit okno
         tmenu ToolBar.WinMax		Maximalizovat okno
         tmenu ToolBar.WinMin		Minimalizovat okno
         tmenu ToolBar.WinClose	Zav��t okno
      endif
      tmenu ToolBar.LoadSesn	Na��st sezen�
      tmenu ToolBar.SaveSesn	Ulo�it sezen�
      tmenu ToolBar.RunScript	Spustit skript
      tmenu ToolBar.Make		Spustit make
      tmenu ToolBar.Shell		Spustit shell
      tmenu ToolBar.RunCtags	Spustit ctags
      tmenu ToolBar.TagJump		Sko�it na tag pod kurzorem
      tmenu ToolBar.Help		N�pov�da
      tmenu ToolBar.FindHelp	Hledat n�pov�du k...
   endfun
endif
" }}}

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[��dn� soubor]"
let g:menutrans_help_dialog = "Zadejte hledan� p��kaz nebo slovo:\n\n\tP�idejte i_ pro p��kazy vkl�dac�ho re�imu (nap�. i_CTRL-X)\n\tP�idejte c_ pro p��kazy p��kazov� ��dky (nap�. c_<Del>)\n\tP�idejte ' pro jm�no volby (nap�. 'shiftwidth')"
let g:menutrans_path_dialog = "Zadejte cesty pro vyhled�v�n� soubor�. Jednotliv� cesty odd�lte ��rkou"
let g:menutrans_tags_dialog = "Zadejte jm�na soubor� s tagy. Jm�na odd�lte ��rkami."
let g:menutrans_textwidth_dialog = "Zadejte d�lku ��dku (0 pro zak�z�n� form�tov�n�):"
let g:menutrans_fileformat_dialog = "Vyberte typ konce ��dk�"
" }}}" 

let &cpo = s:keepcpo
unlet s:keepcpo



" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3:
PK�j�Z�:r��vim80/lang/menu_no.utf-8.vimnu�[���" Menu Translations: Norwegian for UTF-8 encoding
" menu_no.utf-8.vim 289 2004-05-16 18:00:52Z sunny

source <sfile>:p:h/menu_no_no.latin1.vim
PK�j�Z'�4YYvim80/lang/menu_hu.utf-8.vimnu�[���" Menu Translations:	Italian for UTF-8 encoding

source <sfile>:p:h/menu_hu_hu.utf-8.vim
PK�j�Zݕ��^^!vim80/lang/menu_hu.iso_8859-2.vimnu�[���" Menu Translations:	Italian for UTF-8 encoding

source <sfile>:p:h/menu_hu_hu.iso_8859-2.vim
PK�j�Z�?}�� vim80/lang/vi/LC_MESSAGES/vim.monu�[�������,mY�v�v�v
�v�v�v'w/=wmw�w�w0�w�w�w+�w!x"<x_xpx5�x�x�x�x�x�y,�y;�y+zBz`z}z�z�z�z�z�z�z{{6{0M{.~{/�{1�{0|
@|N|d|{|
�|�|
�| �|�|�|}!"}D}"c}�}�}�}@�}�}~+~<~L~[~/n~=�~�~�~
101b����-�"�B�W�i�����3��3�$�C�`�x�������
Ձ����+�
C�$Q�v� ������;ӂ��7+�0c�#��	��ƒۃ���

��2�C�O�g������!��Ä҄���9�A� I�j���������
��ͅڅ��
�(�	5�?�_�k�p�!u�	��"��*����)�6�M�
T�
b�m�
v���������5̇�-�1B�&t�����Ȉڈ���$(�M�
]�h�t���������ԉ���
��5�F�R�a�s�
������
����Ҋ��	��$�3�27�=j�����'‹-�5�N�k�A��ƌ���	��4�E�[�-y���$Ǎ�
��'�;�G�?^�5��!Ԏ%��9�EV�9��C֏I�Hd�;��0�6�8Q�3��-���%�,�@�Y�s�&��,��#ג4�� 0�@Q�-��0���;�B�"b���>��)Ք>��<>�{�#��:��'��9"�\�$u�9��4Ԗ;	� E�>f�1��/ח�-$�R�.a�B��"Ә/��2&�*Y���+��%Ι'�(�<E�E��.Ț-��$%�J�<c���*��&���,�>�Q�Z�f�{���������ʜ
ל�"���,�D�\�w�)����$��!ߝ��"�"?�b�{�1��?ƞ��&�-�A�R�h���������Ο���'�$/�T�!e���������נ�#�'�.�I�Qg���ȡء� �&�?F���
��
��$��+Ѣ.��,�F�U�"n�	����!��ɣ"ΣE�7�%T�#z�-��̤��$�&@�g�y�����¥ڥ'��)5�+_�@��-̦��5�M�j�����/��1��E5�{�-��7ƨ#�� "�:C�5~�&��"۩&��$%�#J�!n�=��5Ϊ �(%�7N�!��,��ի��  �#A�#e�������Ӭ��'�F�0e�$��!�� ݭ(��4'�,\�������Ю ��#�1=�o�!��%��%ԯ$��� 8�Y�u�?��&а!���
5�AC�%��%��"ѱ9�'.�(V�2�*��!ݲ!��)!�%K�!q�4��:ȳ&�;*�;f�)��0̴���8�Q�c�,|�!��8˵&�#+�O� g�/��"��۶-��+�D�/\�*��(��#�� �;�X�t�>��ϸ��"�=�\�r���!��ǹ9�1�)N�1x�%��7к�A"�?d�����ӻ!��0�K�0j�4��$м)��N�,n�L��8�!�,A� n� ��#��Ծ�7	�NA�M��޿���$2�!W�3y�,��2�%
�*3�9^�(����"���#�A�`�}���B����0�!E� g�<��(�����+#�2O�$����,����H
�,V�����"�������7�V�9u�������0��#,�'P�x���,��&�����+)�2U�-��(����"��'�'C�,k���.����#��,"�WO�)��"��,��%!�G� d���2��2��2�7�!T�v���2��5��'
�#5�)Y�,��'��$��%��#�=�Z�o���$��&�� ��'�*<�#g�'��%��3��!
�/�+N�z�*��-��$���7�V�r��� �� ��$��$�),�,V�����,������%�4�=T���������'��&�C�$`�#��0��.��0	�:�Z�w���������-�� �;�7V�)����$��(���=�%L�$r�������'���'-� U�v����� ��7��0�J�#i���"��(��!���-9�1g�5����.��*�1D�9v���*��&��+"�,N�+{�4��<��+�'E�m�������������
� �3�"B�e�x������������7�Q�m�������:��=�<E�6��<����"�2�4G�5|�4��3���0-�^�$q�%���������.�I�[�{������������,�'I�q���!������"���13�e�|���"���������5�I�\�u��������������)�F�`�*�)������ �!�<�M�6f�#����)��2�:�&Z�K�� ����
�(�H�a�y������������+:�f�%��7��5���7�,V�������)�� ���+�G�b�|�������0���3�R�o�4��.��$��)�1A�;s���8��*��#�$C�h�%��,��������&�-?�&m��� ������	�+#� O�p�?��)����6�#>�2b� ��������!�%�C�X�q���������9���(/�+X�/������!�"2�BU��������)-�'W����'���	����/�J�#`�������$��.��.*�6Y�����6��#�	��$�<�S�h�
u����������(�	�%��$�
0�;�X�)g���
����
������
�%+�Q�g�	|�������
��	�����'�	9�
C�N�2d�������$�/�'�B�X�
o�$z����������!�-�L�O�`�}�#������.��
+6	LVv��
������9.h�
������(5JRct
�	������9�
7EXs&��?�	0C"[~����
�'�F3z������"8Q0`;� �>�-EIi(�������+�.>Zj	|���F%	l	
x	
�	�	+�	�	�	
!
%>
d
(t
�
1�
+�
*B&\9�M�>)J5tA�4�$!
6F
"}
�
?�
"�
 <Qe !�#���
"3BO
S^q	~����
��
�
�		9F	Z
dr
w5��	���
��&� ':GM
U`i
{�:�"�"� $1=
o$z"��<�1ATnH{C�9Lgm	u� �-�-�#5Qp�=��$�4I[mr����
� � 
+
>IRp}�������#1'1Y1�1���%4
CN
S ^����	�"�$+$Pu|��
����#2:.F.u.�.�..1.`.�.���	&0DSd
t���	�����% GF!�2�
�� = IX � � � :� 
+!9!DE!2�!F�!" "Q;"<�"%�"�"#�#H$JP$!�$+�$*�$%*%?%X%l%0�%�%�%�%
&+*&)V&*�&,�&+�&'.'H'!g'&�' �'�'<�'&(!B(#d(H�(E�(+) C)d)~)]�)+�) *@*Z*o*�*F�*X�*$7+(\+�+#�+Y�+C,b,x,�,!�,C�,$-C-]-Eq-/�-0�-W.`p.8�.
/=(/1f/#�/�/�/�/�/50>0W02j0"�0)�0�06�0/516e1Q�1�12=26X2B�2�2�2�23333
;3I3f3|33�32�3�3
�34/4M41d44�4�41�4	55:#5/^56�5�5�5
�5�56563N6�6�6
�6�61�6�6
77(7=71I77{7/�7�7�788"+8
N8\8m8|8�8�8�8	�8P�8J9h9Cz9L�9E:Q:o:�:"�:2�:#�:!;43;h;�;�;�;�;�;�;�;	<<3<P<k<�<�<�<�<$�<	�<�<$
=/=N=b=
v=�=�=�=�=�=\�=g?>�>�>F�>:?WK?9�?4�?O@8b@�@�@
�@�@4�@A"AY?AP�A$�A9B0IBzB�B�B
�B-�BR�BQHC;�C7�CSD^bDB�DYEM^E^�ETFK`F?�FP�F<=G?zG.�G6�G$ H*EH-pH�H2�HK�HH3IA|I.�IJ�I68J>oJ/�JS�J?2K-rK%�KJ�KFLYXLR�L7M7=MFuMA�MT�M"SN4vNc�N\OWlO=�OVPFYP?�P(�PJ	QTQGjQV�QD	RFNRS�RE�R0/SJ`S'�SI�SDT]bTZ�TGU;cU.�U"�UO�U*AV2lVF�V�V�V1W"FWiW
�W�W�W�W�W�W
XX,X	CX3MX
�X�X4�X3�X+Y1Y<OY�Y$�Y6�Y�YZ6Z7UZ�Z�ZE�ZP[V[h[	y[.�[�[�[&�[&\)*\
T\;_\;�\�\�\]]0$]U]Ie]6�]�]�]%�]%^%4^JZ^
�^*�^-�^�	_�_�_�_$�_,`15`Og`�`�`�`A�`75a?ma �a�a!�a$b*b
3b5>btbN|bb�b).cIXcE�cJ�c 3dTd(td�d1�d�d�d*
e#8e\e{e2�e!�e)�e)fKCf)�f$�f?�f'gFg$\g!�gU�gG�gAhs\h%�hE�hQ<i*�i/�i]�i[Gj4�j,�j6k9<k<vk3�kX�kI@l/�l;�lI�l<@m;}m0�m"�m+
n$9n'^n3�n"�n�n,�n((o#Qo'uo.�o+�oA�o3:p&np&�p=�p@�p8;q tq�q#�q �q6�q.-r,\r4�r,�r+�r:sCRs5�s�s/�s%t$@t\etI�t/u$<uauYru-�u:�u/5vQev4�vJ�vE7w6}wD�w6�w30x<dxH�x[�x^FyM�yV�yWJzK�zl�z5[{�{�{.�{�{G|1X|b�|F�|)4}'^}4�}O�}?~K~F\~�~)�~�~3�~+,'X�+�8�+�&1�0X�]��%�&
�!4�JV�(��ʁ3݁"�14�,f�U��H�A2�Wt�&̃F�-:�Hh�V���$�+A�7m�4��)څ+�H0�[y�=Ն8�dL�@��a�>T�/��?È,�$0�#U�'y�0��;҉�����&=�6d�C��2ߋA�gT�Q��U�8d�B��G�C(�l�?��/ʎB��2=� p�!�� ��]ԏ52�`h�1ɐ>��`:�/��<ˑ�A&�Bh�2��%ޒ<�,A�an�ZГ&+�0R�,��3��G�:,�:g�,��Dϕ.�$C�#h�;��<Ȗ,�
2�;@�p|�4�3"�V�Uu�b˘\.�`��)�D�R[�I��f��_�B�(›%�4�uF�B��=��X=�E��0ܝ-
�$;�b`�aÞg%�3��1��#��6,�<c�7��1ؠ7
�RB�<��Bҡ1�#G�/k���*��$�4�:@�,{�B��J�86�<o�Q��L��+K�*w�V��+��I%�Io�/��2�'�(D�m�$��/��/٧8	�1B�>t�A�����0+�\�w�@��&өT��$O�t�"��,��:�"�,A�/n�:��2٫2�M?�2����߬%��%!�G�$e�?�� ʭ$�D�`U�&��-ݮ[�'g���H��9�8(�$a�(��7��-�+�1A�3s�&��&α(��e�E��4ʲ?��9?�=y�>��:��B1�/t�B��F�&.�@U�9��HеZ�&t�6��=ҶT�?e�=��G�e+�6��9ȸ� �3?�s� ��$��"й�.�;�%Z�"��,��(к?��'9�)a�,��-�� �0�$8�>]�'��#ļS�_<�X��B��N8�1��>����a�Xu�bοa1���a��*�86�2o�E��+�6�K�,k���9��+��&� ;�\�*{�!����+��W�g�I��F��\�Ps�*����Q�(^�$����+����#�!;�7]���"��+���-�M�k�$����(��#��"�"?�)b�A��@���-�*L�w�����a��=#�)a�S��L��$,�*Q�d|�1��-�*A�$l����������-�!I�k�>��J��$�&9�I`�G�����S2� ��.��%��4��&1�!X�+z�����!��@�D� c�_����2��,.�/[�G��>��5�CH�>��R���R3�@��5��5��&3�:Z�G����$��"�=;�?y�5��0��6 �/W�/��3��]��8I�9��[��3�+L�_x�6��A�?Q�%������'��.�:�"X�{��� ����<��@*�k�.��T��Y�3b�/��'��'��'�k>�E��1��0"�,S�2��/��S��57�9m�Q�����.�H� a�'����4�����$7�3\�Y�� ��E�`Q�����U��#+�O�)l�.��<�� �#�
4�B�!b�.��	����N���G%�m�}�V����^��X�
s�~�
����������(��?�%\�������%��&�(�5�S�f�v�#��$����
����/	�Y9�������3��J�RW���+����@�*M�x�-��1�����8'�?`�
����%��H��&)�P�(e���E������ �/5�"e�����
��������
��.�#6�WZ�/��
������$�A�W�5l�>��'��	��,�H�e�{�"����/��*��	&�G0�x�����"��<��1�DK�����#��2�?�K�d�+|������<�8/�Oh���#�'��#�(B�)k���+��"�$�&�V?�J��+�R
�(`���)��'��@�#�
3�>�X�j�'o�<��3�
�#�:�EO�	��&����~g������A6�$x�(��+��0�C�6T�4��T��GA]!�F�[dd\�7&V^q�V'/~I�'� n,F�� �!0R$m<�/��0?\n�%�����'(@i!������'�'=[jy�3����	
		:&	
a	 o	�	�	�	�	�	�	�	�	$�	,!
-N
|
�
:�
E�
 //4_D�e�?Zw%��d�z4
 �
:�
 (,U\l�"�6�H�H:�,�,��e &�)�
�$�8JVq$����!M%Fs#��	�#�
-&T5r�"���
�AWMX�O�RN
���$�!� 7PX,l&�&�4�8	S']�>�>�
62At$�0�+�	)APMb>�?�?/FoC�J�MEI��� 	
*81H'z)�(�&�,'I-q"�)�-�,-G'u5�l������42v/G�_�
x�����<z$k��v/���eV-H!��I�`2/�"_dy����J���E:A<���i�{�Y��"v���c����[����l�Y�H^MC��k��-���,�y�]��7.��p�}�����++��R��m���~M�}�����a�21�%�,+]�~��a=@4�'�J�\�o����[�[rL0�!t�����Bj����� on�|$I3S�S��j4���]��9��VK'��!3F�M�����B���t?�9J}E��:��j����#���m�>�0NL�����5b��8��c�<��0��5����,�TV�Y�qI��0�,6o��a�
�������!�q�f��(�u	J	�z7	#�~�zy��K�6~\�h��6��?S�������/����<� )�P�Xb�E���%j@R	(��#H2���d�[w���n(F��DZ���OB�9������{3�Gl����Q�C�<_��8��*b~
B�j!
`T��e��u6p����3�Mh|g����-��D�Z���mL����
�
�)M���s�����c��L�G)Wt����B���T�Pi�I�A�n� x@[}���$�|��s u_F�'8g|.#��7:\A����iW�����.7*��T6O��zU�;pE��#a��n�}>
Ca��
�fHmi1��N���D4d�~��w��1\�>�h?����q���V��`l��s�E�f���iD�G
z'��5�9&�rJ�N�AK���e�-P��)Q��&�wQ���	�`w�
���&���X�g���N��
��|�&x�?.0�8�7������A8�^�{�x>`������^�TP��Z���U��?�Yov�>kN��k7�p�t:�C�"vG�c����;�i���Q\D��|X%k1�����9�%��q�"x����=���F�Y.��a���N��q'��$ W��������_�e$���rW���O)��rh^R��o�9"u�	:^��Wy/%�n��!Z<Cgk�)U�z��%���(@�;tFV���;��f�X;�r=�I{Z*r��P�m���q�V,2G���1]bc�5�����R��*P�c����"�=���R[�H]�s�S*��x,���Y�C�B`f���&��p{#F4��u+On�}w-��K2Ks>@(���h_+(��+��@��^��o���X�U��5�D;�8�6�U�L��dwg���{������y��5b�J�vf$�����e�=h����m��g���:���S3�\0�s�j�p?&�S��RX�*3����yQL��T'/H�I���E���elZK�t�Q���-�.�OU����d�]��4WO�d���A
�bul� ��������1M�=����			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (RET/BS: line, SPACE/b: page, d/u: half page, q: quit) (RET: line, SPACE: page, d: half page, q: quit) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE Tag completion (^]^N^P) Thesaurus completion (^T^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^E^Y^L^]^F^I^K^D^V^N^P) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s made pending%s resumed%s returning "%s"%s returning #%ld%s, line %ld%sviminfo: %s in line: &Diff with Vim&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort
&Delete it&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%.*s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAllAll cscope databases resetAll included files were foundAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Before byte %ldBotBreakpoint in "%s%s" line %ldBrowse classCalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Conversion with 'charconvert' failedCould not allocate memory for command line.Could not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

DirectionDirectoriesDo you really want to write to itDownE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE106: Unknown variable: "%s"E107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Undefined function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters before '='E190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: Warning: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_timestamp: Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu of that nameE32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE361: Crash intercepted; regexp too complex?E363: pattern caused out-of-stack errorE364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot set read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failedE514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE56: %s* operand could be emptyE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE57: %s+ operand could be emptyE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while nesting too deepE586: :continue without :whileE587: :break without :whileE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE58: %s{ operand could be emptyE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert from multi-byte to "%s" encodingE621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE67: \z1 et al. not allowed hereE68: Invalid character after \zE69: Missing ] after %s%%[E70: Empty %s%%[]E71: Invalid character after %s%%E72: Close error on swap fileE73: tag stack emptyE74: Command too complexE75: Name too longE76: Too many [E77: Too many file namesE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - &Edit with single &VimEdits the selected file(s) with VimEnd of functionEnd of sourced fileEnter encryption key: Enter nr of choice (<CR> to abort): Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:ExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpressionExternal submatches:
File "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find NextFind string (use '\\' to find  a '\')Find symbolFind what:Font '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Garbage after optionGenerate docu forGreetings, Vim user!HelpHelp poor children in Uganda!Hit ENTER or type command to continueHit ENTER to continueHit end of paragraphI/O ERRORIllegal file nameIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Modified by Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%.*s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading from stdin...Reading viminfo file "%s"%s%s%sRecovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%.*s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSee ":help E312" for more information.See ":help W11" for more info.Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesSwap file "Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many edit argumentsTopType  :quit<Enter>  to exit VimUnable to read block 0 from Unable to register a command server nameUndoUnknownUnknown optionUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Entered other buffer unexpectedly (check autocommands)Warning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing viminfo file "%s"XSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR][CR missing][Deleted][Device][Error List][ILLEGAL BYTE in line %ld][Incomplete last line][NL found][NOT converted][New File][New file][New][No File][No file][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][string too long][unix format][unix]and run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %sconnectedcontinuing in %scould not source "%s"cs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?don't quit the editor until the file is successfully written!error list %d of %d; %d errorsexpressions disabled at compile timefile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelpin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal new shell started
nono cscope connections
no such bufferno such windowno syncingnot not found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwith (classic) GUI.with BeOS GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: Vim 6.3 
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2005-02-25 22:51+0300
PO-Revision-Date: 2005-02-30 21:37+0400
Last-Translator: Phan Vinh Thinh <teppi@vnlinux.org>
Language-Team: Phan Vinh Thinh <teppi@vnlinux.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
			  (Chưa được thực thi)

	Lần cuối cùng tùy chọn thay đổi vào 

Tham số:


Sử dụng:
           thay đổi: 
         [không sử dụng được trên máy tính này]
         [không sử dụng được với phiên bản này của Vim]
           tên máy: 
      tên người dùng: 
     ID tiến trình: 
    Tên		Tham_số Phạm_vi Phần_phụ Định_nghĩa
   #   dòng
   hoặc:
  # TỚI thẻ ghi        TỪ   dòng  trong tập tin/văn bản
 bước_nhảy dòng  cột tập tin/văn bản
# %s, Lịch sử (bắt đầu từ mới nhất tới cũ nhất):

# Danh sách bộ đệm:

# Nhãn của tập tin:

# Lịch sử các nhãn trong tập tin (từ mới nhất đến cũ nhất):

# Danh sách bước nhảy (mới hơn đứng trước):

# Chuỗi thay thế cuối cùng:
$
# Sổ đăng ký:

# biến toàn cầu:

(1) Rất có thể một chương trình khác đang soạn thảo tập tin.
    Nếu như vậy, hãy cẩn thận khi thay đổi, làm sao để không thu
    được hai phương án khác nhau của cùng một tập tin.

(2) Lần soạn thảo trước của tập tin này gặp sự cố.

(Có thể ghi nhớ tập tin với tên khác và so sánh với tập

--- Câu lệnh tự động ---
--- Giá trị tùy chọn toàn cầu ---
--- Giá trị tùy chọn nội bộ ---
--- Trình đơn ---
--- Tùy chọn ---
--- Sổ đăng ký ---
--- Ký hiệu ---
--- Phần tử cú pháp ---
--- Phần tử đồng bộ hóa cú pháp ---
--- Mã terminal ---
--- Phím terminal ---
Phiên bản cho MS-DOS 16 bit
Phiên bản cho MS-DOS 32 bit
Tham số cho gvim (phiên bản Athena):

Tham số cho gvim (phiên bản GTK+):

Tham số cho gvim (phiên bản Motif):

Tham số cho gvim (phiên bản RISC OS):

Tham số cho gvim (phiên bản neXtaw):

Phiên bản lớn 
Không tạo được đường ống (pipe)

Không chạy được shell 
Không chạy được shell sh

Không thực hiện được fork()

Câu lệnh bị gián đoạn

Được biên dịch 
Tìm thấy một tập tin trao đổi (swap) với tên "
Phiên bản khổng lồ 
Bao gồm các bản vá lỗi: 
Phiên bản cho MS-Windows 16 bit
Phiên bản với giao diện đồ họa GUI cho MS-Windows 16/32 bit
Phiên bản với giao diện đồ họa GUI cho MS-Windows 32 bit
Phiên bản console cho MS-Windows 32 bit
Phiên bản cho MacOS X (unix)
Phiên bản cho MacOS X
Phiên bản cho MacOS
Chưa có thay đổi nào hoặc Vim không thể cập nhật tập tin trao đổi (swap)
Xem thông tin chi tiết với: "vim -h"

Phiên bản thông thường 
Phiên bản cho RISC OS
Phiên bản nhỏ 
Phiên bản "tí hon" 
Vim: Lỗi X

CẢNH BÁO: Tập tin gốc có thể bị mất hoặc bị hỏng

[byte] tổng phân phối-còn trống %lu-%lu, sử dụng %lu, píc sử dụng %lu

thay_đổi dòng  cột văn_bản
nhãn dòng  cột tập tin/văn bản
shell dừng làm việc 
đồng bộ hóa theo phần tử                                 để chuyển vào chế độ Vim mặc định                                        cho hai chế độ                             ngày:           người sở hữu:          [không mở được]         [không đọc được]         [không phải là tập tin trao đổi (swap) của Vim]         [từ Vim phiên bản 3.0]         tên tập tin:       -- không --
                    MỚI hơn so với tập tin trao đổi (swap)
         tập tin exrc của người dùng: "         tập tin vimrc của người dùng: "    Trong trường hợp này, hãy sử dụng câu lệnh ":recover" hoặc "vim -r     Nếu đã thực hiện thao tác này rồi, thì hãy xóa tập tin trao đổi (swap) "    Thoát hoặc tiếp tục với sự cẩn thận.
    dòng=%ld  id=%d  tên=%s             tập tin trình đơn chung cho hệ thống: "         tập tin gvimrc của người dùng: "   Trong thư mục hiện thời:
   Trong thư mục      Với tên chỉ ra:
    ngày:     tên máy:             tập tin vimrc chung cho hệ thống: "  # pri loại thẻ ghi (Đã liệt kê)  tập tin exrc thứ hai của người dùng: "  BIÊN DỊCH SỬA LỖI (DEBUG)  Tính năng có (+) hoặc không (-):
 KHÔNG TÌM THẤY Đang sử dụng thẻ ghi với kiểu chữ khác!          giá trị $VIM theo mặc định: "            tập tin gvimrc chung cho hệ thống: " # pid    tên cơ sở dữ liệu                   đường dẫn ban đầu
 (Bị gián đoạn) (KHÔNG TÌM THẤY) (RET/BS: dòng, SPACE/b: trang, d/u: nửa trang, q: thoát) (RET: dòng, SPACE: trang, d: nửa trang, q: thoát) (gồm cả những tương ứng đã liệt kê trước đây) (chèn) (chèn) Cuộn (^E/^Y) (ngôn ngữ) (dòng bị xóa) (không được hỗ trợ) (dán) (thay thế) (thay thế) Cuộn (^E/^Y) (vẫn đang chạy) (thay thế ảo)  tập tin vimrc thứ hai của người dùng: "  tập tin vimrc thứ ba của người dùng: " Thêm Ả rập LỖI BIẾN ĐỔI Tự động kết thúc dòng lệnh (^V^N^P) Sao chép %d của %d Tự động kết thúc định nghĩa (^D^N^P) Tự động kết thúc theo từ điển (^K^N^P) KHÔNG THÀNH CÔNG Tự động kết thúc tên tập tin (^F^N^P) Do thái CHÈN Tự động kết thúc nội bộ cho từ khóa (^N^P) Tự động kết thúc cho từ khóa (^N^P) Tự động kết thúc mẫu đường dẫn (^N^P) THAY THẾ NGƯỢC LẠI LỰA CHỌN LỰA CHỌN KHỐI LỰA CHỌN DÒNG Tự động kết thúc thẻ đánh dấu (^]^N^P) Tự động kết thúc từ đồng âm (^T^N^P) CHẾ ĐỘ VISUAL KHỐI VISUAL DÒNG VISUAL THAY THẾ ẢO Tự động kết thúc cho cả dòng (^L^N^P) [Đã thay đổi] [a] [w] Chế độ ^X (^E^Y^L^]^F^I^K^D^V^N^P) đã thêm không thể sử dụng trên máy tính này.
 không thể sử dụng trong phiên bản Vim này.
   giá trị $VIMRUNTIME theo mặc định: " trong chế độ Win32 thông tin loại tập tin
 chuyển dòng dòng trước dòng đầu tiên dấu hiệu trên %ld dòng trên 1 dòng và hơn nữa thoát
 vim [các tham số]  với hỗ trợ OLE đã ghi"
    để tránh sự xuất hiện của thông báo này trong tương lai.
"
    để phục hồi những thay đổi (hãy xem ":help recovery").
" đã có rồi!# Tập tin viminfo này được tự động tạo bởi Vim %s.
# Giá trị của tùy chọn 'encoding' vào thời điểm ghi tập tin
# Bạn có thể sửa tập tin này, nhưng hãy thận trọng!

%-5s: %-30s (Sử dụng: %s)%3d  %s %s dòng %ld%<%f%h%m%=Trang %N%d bộ đệm được bỏ nạp%d bộ đệm được bỏ nạp từ bộ nhớ%d bộ đệm được làm sạch%d tập tin để soạn thảo
Còn %d tập tin nữa chưa soạn thảo. Thoát?đã soạn thảo %d từ %d%ld Cột; %ld thay đổi%ld ký tựBớt %ld dòngTrên %ld dòng %s %d lầnTrên %ld dòng %s 1 lần%ld dòng --%d%%--%ld đã thay đổiĐã lọc %ld dòng%ld dòng đã thụt đầuĐã di chuyển %ld dòngThụt đầu %ld dòng...đã sao chép %ld dòng%ld dòng, Thêm %ld dòng%ld thay thế%s câu lệnh tự động cho "%s"%s dừng%s bị bỏ qua%s thực hiện việc chờ đợi%s được phục hồi lại%s trả lại "%s"%s trả lại #%ld%s, dòng %ld%sviminfo: %s trên dòng: &So sánh (diff) qua Vim&OK
&Hủy bỏ&OK
&Nạp tập tin&Ok&O Mở chỉ để đọc
&E Vẫn soạn thảo
&R Phục hồi
&Q Thoát
&A Gián đoạn&O Mở chỉ để đọc
&E Vẫn soạn thảo
&R Phục hồi
&Q Thoát
&A Gián đoạn&D Xóa nó&Có
&Không&Có
&Không
&Dừng&Có
&Không&Ghi nhớ tất cả
&Vứt bỏ tất cả
&Dừng lại' không rõ. Có các terminal gắn sẵn (builtin) sau:Tùy chọn 'columns' khác 80, chương trình ngoại trú không thể thực hiệnKhông đưa ra giá trị của tùy chọn 'dictionary'giá trị của tùy chọn 'history' bằng khôngTùy chọn 'readonly' được đặt cho "%.*s".
Ghi nhớ bằng mọi giá?Không đưa ra giá trị của tùy chọn 'thesaurus'(%d của %d)%s%s: (+%ld cho BOM)(bị dừng)(Không đúng)+			Bắt đầu soạn thảo từ cuối tập tin+-%s%3ld dòng: +--%3ld dòng được gấp+<lnum>		Bắt đầu soạn thảo từ dòng thứ <lnum> (số thứ tự của dòng)+reverse		Không sử dụng chế độ video đảo ngược (cũng như: +rv),
hoặc tập tin đã bị hỏng.-                đọc văn bản từ đầu vào stdin--			Sau tham số chỉ đưa ra tên tập tin-- Còn nữa ---- Tìm kiếm...--- Tập tin tính đến --Bị xóa---- Không có dòng nào trong bộ đệm ----cmd <câu lệnh>	Thực hiện <câu lệnh> trước khi nạp tập tin vimrc--columns <số>	Chiều rộng ban đầu của cửa sổ tính theo số cột--literal		Không thực hiện việc mở rộng wildcard--noplugin		Không nạp bất kỳ script môđun nào--remote <tập tin>	Soạn thảo <tập tin> trên máy chủ Vim nếu có thể--remote-expr <biểu thức>	Tính <biểu thức> trên máy chủ Vim và in ra kết quả--remote-send <phím>	Gửi <phím> lên máy chủ Vim và thoát--remote-silent <tập tin>  Cũng vậy, nhưng không kêu ca dù không có máy chủ--remote-wait <tập tin>  Cũng như --remote, nhưng chờ sự kết thúc--remote-wait-silent <tập tin>  Cũng vậy, nhưng không kêu ca dù không có máy chủ--role <vai trò>	Đặt <vai trò> duy nhất để nhận diện cửa sổ chính--rows <số>	Chiều cao ban đầu của cửa sổ tính theo số dòng--serverlist		Hiển thị danh sách máy chủ Vim và thoát--servername <tên>	Gửi lên (hoặc trở thành) máy chủ Vim với <tên>--socketid <xid>	Mở Vim bên trong thành phần GTK khác--version		Đưa ra thông tin về phiên bản Vim và thoát-A			Khởi động vào chế độ Ả Rập-C			Chế độ tương thích với Vi: 'compatible'-D			Chế độ sửa lỗi (debug)-F			Khởi động vào chế độ Farsi-H			Khởi động vào chế độ Do thái-L			Giống với -r-M			Không có khả năng thay đổi văn bản-N			Chế độ không tương thích hoàn toàn với Vi: 'nocompatible'-O[N]		Giống với -o nhưng phân chia theo đường thẳng đứng-P <tiêu đề của mẹ>	Mở Vim bên trong ứng dụng mẹ-R			Chế độ chỉ đọc (giống "view")-S <session>		Thực hiện <session> sau khi nạp tập tin đầu tiên-T <terminal>	Đặt loại terminal thành <terminal>-U <gvimrc>		Sử dụng <gvimrc> thay thế cho mọi .gvimrc-V[N]		Mức độ chi tiết của thông báo-W <scriptout>	Ghi nhớ tất cả các lệnh đã gõ vào tập tin <scriptout>-X			Không thực hiện việc kết nối tới máy chủ X-Z			Chế độ hạn chế (giống "rvim")-b			Chế độ nhị phân (binary)-background <màu>	Sử dụng <màu> chỉ ra cho nền (cũng như: -bg)-boldfont <phông>	Sử dụng <phông> chữ cho văn bản in đậm-borderwidth <rộng>	Sử dụng đường viền có chiều <rộng> (cũng như: -bw)-c <câu lệnh>		Thực hiện <câu lệnh> sau khi nạp tập tin đầu tiên-d			Chế độ khác biệt, diff (giống "vimdiff")-dev <thiết bị>		Sử dụng <thiết bị> cho I/O-display <màn hình>	Kết nối vim tới máy chủ X đã chỉ ra-display <màn hình>	Chạy vim trong <màn hình> đã chỉ ra-display <màn hình>	Chạy vim trên <màn hình> chỉ ra (cũng như: --display)-e			Chế độ Ex (giống "ex")-f			Không sử dụng newcli để mở cửa sổ-f  hoặc  --nofork	Trong chương trình hoạt động: Không thực hiện fork khi chạy GUI-font <phông>		Sử dụng <phông> chữ cho văn bản thông thường (cũng như: -fn)-foreground <màu>	Sử dụng <màu> cho văn bản thông thường (cũng như: -fg)-g			Sử dụng giao diện đồ họa GUI (giống "gvim")-geometry <kích thước>	Sử dụng <kích thước> ban đầu (cũng như: -geom)-h hoặc --help	Hiển thị Trợ giúp (thông tin này) và thoát-i <viminfo>		Sử dụng tập tin <viminfo> thay cho .viminfo-iconic		Chạy vim ở dạng thu nhỏ-italicfont <phông>	Sử dụng <phông> chữ cho văn bản in nghiêng-l			Chế độ Lisp-m			Không có khả năng ghi nhớ thay đổi (ghi nhớ tập tin)-menuheight <cao>	Sử dụng thanh trình đơn với chiều <cao> (cũng như: -mh)-n			Không sử dụng tập tin swap, chỉ sử dụng bộ nhớ-name <tên>		Sử dụng tài nguyên giống như khi vim có <tên>-o[N]		Mở N cửa sổ (theo mặc định: mỗi cửa sổ cho một tập tin)-q [tập tin lỗi] soạn thảo tập tin với lỗi đầu tiên-r			Liệt kê các tập tin swap rồi thoát-r (với tên tập tin)	Phục hồi lần soạn thảo gặp sự cố-register		Đăng ký gvim này cho OLE-reverse		Sử dụng chế độ video đảo ngược (cũng như: -rv)-s			Chế độ ít đưa thông báo (gói) (chỉ dành cho "ex")-s <scriptin>	Đọc các lệnh của chế độ Thông thường từ tập tin <scriptin>-scrollbarwidth <rộng> Sử dụng thanh cuộn với chiều <rộng> (cũng như: -sw)-t thẻ ghi      soạn thảo tập tin từ chỗ thẻ ghi chỉ ra-u <vimrc>		Sử dụng <vimrc> thay thế cho mọi .vimrc-unregister		Bỏ đăng ký gvim này cho OLE-v			Chế độ Vi (giống "vi")-w <scriptout>	Thêm tất cả các lệnh đã gõ vào tập tin <scriptout>-x			Soạn thảo tập tin đã mã hóa-xrm <tài nguyên>	Đặt <tài nguyên> chỉ ra-y			Chế độ đơn giản (giống "evim", không có chế độ)...(bị cắt bớt)1 bộ đệm bị xóa1 bộ đệm được bỏ nạp từ bộ nhớ1 bộ đệm được làm sạchduy nhất 1 thay đổi1 ký tựTrên 1 dòng %s %d lầnTrên 1 dòng %s 1 lần1 dòng --%d%%--1 dòng đã thay đổiĐã thụt đầu 1 dòngBớt 1 dòngĐã di chuyển 1 dòngđã sao chép 1 dòng1 dòng, Còn 1 tập tin nữa cần soạn thảo. Thoát?Thêm 1 dòng1 thay thế  tập tin gvimrc thứ hai của người dùng: "  tập tin gvimrc thứ ba của người dùng: ": Gửi biểu thức không thành công.
: Gửi không thành công.
: Gửi không thành công. Thử thực hiện nội bộ
; tương ứng <%s>%s%s  %d,  Hex %02x,  Octal %03o<vật thể của bộ đệm (bị xóa) tại %8lX><không thể mở> <cửa sổ %d><vật thể của cửa sổ (bị xóa) tại %.8lX><vật thể của cửa sổ (không rõ) tại %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? từ đây tới ???CUỐI, các dòng có thể đã bị hỏng??? từ đây tới ???CUỐI, các dòng có thể đã bị chèn hoặc xóa???THIẾU KHỐI???KHỐI RỖNG???CUỐI???GIÁ TRỊ CỦA SỐ ĐẾM DÒNG BỊ SAI???THIẾU DÒNG???THIẾU NHIỀU DÒNGGiá trị ANCHOR_BUF_SIZE quá nhỏ.Thêm một cơ sở dữ liệu mớiĐã thêm cơ sở dữ liệu cscope %sTất cảKhởi động lại tất cả cơ sở dữ liệu cscopeTìm thấy tất cả các tập tin được tính đếnChỉ có một cửa sổThêm tập tinThiếu tham số sauTại dòngThử mở tập tin script một lần nữa: "Từ ban đầuĐưa ra phạm vi ngược lại, thay đổi vị trí hai giới hạnHãy trở thành người dùng đăng ký của Vim!Trước byte %ldCuốiĐiểm dừng trên "%s%s" dòng %ldDuyệt hạngGọi shell để thực hiện: "%s"Không tìm thấy tập tin tạm thời (temp) để chuyển bảng mãHủy bỏKhông kết nối được với NetBeansKhông kết nối được với Netbeans #2Không kết nối được tới SNiFF+. Hãy kiểm tra cấu hình môi trường.(sniffemacs phải được chỉ ra trong biến $PATH).
Không tạo được Không chạy được Không mở được NIL:
Không mở để đọc được: "Không mở cho đầu ra script được: "Không thể thực hiện một thư mục: "%s"Cột %s của %s;  Dòng %ld của %ld; Từ %ld của %ld; Byte %ld của %ldDòng lệnhTham số biên dịch: Trình biên dịch: Chuyển đổi nhờ 'charconvert' không được thực hiệnKhông phân chia được bộ nhớ cho dòng lệnh.Không sửa được cái chỉ (pointer) hàm số tới DLL!Không nạp được vim32.dll!Thẻ ghi cscope: %sNgôn ngữ %shiện thời: "%s"Sau đó hãy xóa tập tin .swp.

HướngThư mụcBạn có chắc muốn ghi nhớ vào tập tin nàyXuốngE100: Không còn bộ đệm trong chế độ khác biệt (diff) nào nữaE101: Có nhiều hơn hai bộ đệm trong chế độ khác biệt (diff), không biết chọnE102: Không tìm thấy bộ đệm "%s"E103: Bộ đệm "%s" không nằm trong chế độ khác biệt (diff)E104: Không cho phép dùng ký tự thoát Escape trong chữ ghépE105: Câu lệnh :loadkeymap được sử dụng ngoài tập tin scriptE106: Biến không biết: "%s"E107: Thiếu dấu ngoặc: %sE108: Không có biến như vậy: "%s"E109: Thiếu ':' sau '?'E10: Sau \ phải là các ký tự /, ? hoặc &E110: Thiếu ')'E111: Thiếu ']'E112: Không đưa ra tên tùy chọn: %sE113: Tùy chọn không biết: %sE114: Thiếu ngoặc kép: %sE115: Thiếu ngoặc kép: %sE116: Tham số cho hàm %s đưa ra không đúngE117: Hàm số không biết: %sE118: Quá nhiều tham số cho hàm: %sE119: Không đủ tham số cho hàm: %sE11: Lỗi trong cửa sổ dòng lệnh; <CR> thực hiện, CTRL-C thoátE120: Sử dụng <SID> ngoài script: %sE121: Biến không xác định: %sE122: Hàm số %s đã có, hãy thêm ! để thay thế nó.E123: Hàm số không xác định: %sE124: Thiếu '(': %sE125: Tham số không cho phép: %sE126: Thiếu lệnh :endfunctionE127: Không thể định nghĩa lại hàm số %s: hàm đang được sử dụngE128: Tên hàm số phải bắt đầu với một chữ cái hoa: %sE129: Cần tên hàm sốE12: Câu lệnh không cho phép từ exrc/vimrc trong thư mục hiện thời hoặc trong tìm kiếm thẻ ghiE130: Hàm số %s chưa xác địnhE131: Không thể xóa hàm số %s: Hàm đang được sử dụngE132: Độ sâu của lời gọi hàm số lớn hơn giá trị 'maxfuncdepth'E133: lệnh :return ở ngoài một hàmE134: Di chuyển các dòng lên chính chúngE135: Các lệnh tự động *Filter* không được thay đổi bộ đệm hiện thờiE136: viminfo: Quá nhiều lỗi, phần còn lại của tập tin sẽ được bỏ quaE137: Thiếu quyền ghi lên tập tin viminfo: %sE138: Không thể ghi tập tin viminfo %s!E139: Tập tin được nạp trong bộ đệm khácE13: Tập tin đã tồn tại (thêm ! để ghi chèn)E140: Sử dụng ! để ghi nhớ một phần bộ đệmE141: Không có tên tập tin cho bộ đệm %ldE142: Tập tin chưa được ghi nhớ: Ghi nhớ bị tắt bởi tùy chọn 'write'E143: Các lệnh tự động xóa bộ đệm mới ngoài ý muốn %sE144: Tham số của lệnh :z phải là sốE145: Không cho phép sử dụng lệnh shell trong rvim.E146: Không thể phân cách biểu thức chính quy bằng chữ cáiE147: Không thực hiện được lệnh :global đệ quiE148: Thiếu biểu thức chính quy trong lệnh :globalE149: Rất tiếc không có trợ giúp cho %sE14: Địa chỉ không cho phépE150: %s không phải là một thư mụcE152: Không thể mở %s để ghiE153: Không thể mở %s để đọcE154: Thẻ ghi lặp lại "%s" trong tập tin %sE155: Ký hiệu không biết: %sE156: Thiếu tên ký hiệuE157: ID của ký hiệu không đúng: %ldE158: Tên bộ đệm không đúng: %sE159: Thiếu số của ký hiệuE15: Biểu thức không cho phép: %sE160: Câu lệnh ký hiệu không biết: %sE161: Không tìm thấy điểm dừng: %sE162: Thay đổi chưa được ghi nhớ trong bộ đệm "%s"E163: Chỉ có một tập tin để soạn thảoE164: Đây là tập tin đầu tiênE165: Đây là tập tin cuối cùngE166: Không thể mở tập tin liên kết để ghi nhớE167: Lệnh :scriptencoding sử dụng ngoài tập tin scriptE168: Lệnh :finish sử dụng ngoài tập tin scriptE169: Câu lệnh quá đệ quyE16: Vùng không cho phépE170: Thiếu câu lệnh :endwhileE171: Thiếu câu lệnh :endifE172: Chỉ cho phép sử dụng một tên tập tinE173: %ld tập tin nữa chưa soạn thảo.E173: 1 tập tin nữa chờ soạn thảo.E174: Đã có câu lệnh: Thêm ! để thay thếE175: Không có tham số được chỉ raE176: Số lượng tham số không đúngE177: Số đếm không thể được chỉ ra hai lầnE178: Giá trị của số đếm theo mặc định không đúngE179: yêu cầu đưa ra tham số để kết thúcE17: "%s" là mộ thư mụcE180: Giá trị phần phụ không đúng: %sE181: Thuộc tính không đúng: %sE182: Tên câu lệnh không đúngE183: Câu lệnh người dùng định nghĩa phải bắt đầu với một ký tự hoaE184: Không có câu lệnh người dùng định nghĩa như vậy: %sE185: Không tin thấy sơ đồ màu sắc %sE186: Không có thư mục trướcE187: Không rõE188: Trên hệ thống này việc xác định vị trí cửa sổ không làm việcE189: "%s" đã có (thêm !, để ghi đè)E18: Ở trước '=' có các ký tự không mong đợiE190: Không mở được "%s" để ghi nhớE191: Tham số phải là một chữ cái hoặc dấu ngoặc thẳng/ngượcE192: Sử dụng đệ quy lệnh :normal quá sâuE193: lệnh :endfunction chỉ được sử dụng trong một hàm sốE194: Không có tên tập tin tương đương để thay thế '#'E195: Không thể mở tập tin viminfo để đọcE196: Trong phiên bản này chữ ghép không được hỗ trợE197: Không thể thay đổi ngôn ngữ thành "%s"E198: cmd_pchar lớn hơn chiều dài câu lệnhE199: Cửa sổ hoặc bộ đệm hoạt động bị xóaE19: Dấu hiệu chỉ đến một số thứ tự dòng không đúngE200: Câu lệnh tự động *ReadPre làm cho tập tin trở thành không thể đọcE201: Câu lệnh tự động *ReadPre không được thay đổi bộ đệm hoạt độngE202: Sự biến đổi làm cho tập tin trở thành không thể đọc!E203: Câu lệnh tự động đã xóa hoặc bỏ nạp bộ đệm cần ghi nhớE204: Câu lệnh tự động đã thay đổ số dòng theo cách không mong muốnE205: Chế độ vá lỗi (patch): không thể ghi nhớ tập tin gốcE206: Chế độ vá lỗi (patch): không thể thay đổi tham số của tập tin gốc trống rỗngE207: Không thể xóa tập tin lưu trữ (backup)E208: Lỗi ghi nhớ vào "%s"E209: Lỗi đóng "%s"E20: Dấu hiệu không được xác địnhE210: Lỗi đọc "%s"E211: Cảnh báo: Tập tin "%s" không còn truy cập được nữaE212: Không thể mở tập tin để ghi nhớE213: Không thể chuyển đổi bảng mã (thêm ! để ghi nhớ mà không chuyển đổi)E214: Không tìm thấy tập tin tạm thời (temp) để ghi nhớE215: Ký tự không cho phép sau *: %sE216: Sự kiện không có thật: %sE216: Nhóm hoặc sự kiện không có thật: %sE217: Không thể thực hiện câu lệnh tự động cho MỌI sự kiệnE218: câu lệnh tự động xếp lồng vào nhau quá xâuE219: Thiếu {.E21: Không thể thay đổi, vì tùy chọn 'modifiable' bị tắtE220: Thiếu }.E222: Thêm vào bộ đệm đang đọcE223: ánh xạ đệ quyE224: đã có sự viết tắt toàn cầu cho %sE225: đã có ánh xạ toàn cầu cho %sE226: đã có sự viết tắt cho %sE227: đã có ánh xạ cho %sE228: makemap: Chế độ không cho phépE229: Không chạy được giao diện đồ họa GUIE22: Các script lồng vào nhau quá sâuE230: Không đọc được từ "%s"E231: 'guifontwide' có giá trị không đúngE232: Không tạo được BalloonEval với cả thông báo và lời gọi ngược lạiE233: không mở được màn hìnhE234: Không rõ bộ phông chữ: %sE235: Không rõ phông chữ: %sE236: Phông chữ "%s" không có độ rộng cố định (fixed-width)E237: Chọn máy in không thành côngE238: Lỗi in: %sE239: Văn bản ký hiệu không thích hợp: %sE23: Không có tập tin xen kẽE240: Không có kết nối với máy chủ VimE241: Không thể gửi tin nhắn tới %sE243: Tham số không được hỗ trợ: "-%s"; Hãy sử dụng phiên bản OLE.E244: Tên bảng mã không cho phép "%s" trong tên phông chữ "%s"E245: Ký tự không cho phép '%c' trong tên phông chữ "%s"E246: Bộ đệm bị xóa khi thực hiện câu lệnh tự động FileChangedShellE247: máy chủ "%s" chưa đăng kýE248: Gửi câu lệnh vào chương trình khác không thành côngE24: Không có chữ viết tắt như vậyE250: Trong bộ phông chữ %s thiếu phông cho các bảng mã sau:E251: Thuộc tính đăng ký của Vim được định dạng không đúng.  Xóa!E252: Bộ phông chữ: %sE253: Bộ phông chữ: %s
E254: Không chỉ định được màu %sE255: Không đọc được dữ liệu về ký tự!E256: LỖI máy tự động Hangual (tiếng Hàn)E257: cstag: không tìm thấy thẻ ghiE258: Không thể trả lời cho máy conE259: không tìm thấy tương ứng với yêu cầu cscope %s cho %sE25: Không sử dụng được giao diện đồ họa vì không chọn khi biên dịchE261: kết nối với cscope %s không được tìm thấyE262: lỗi lấy thông tin từ kết nối cscope %ldE263: Rất tiếc câu lệnh này không làm việc, vì thư viện Python chưa được nạp.E264: Python: Lỗi khi bắt đầu sử dụng vật thể I/OE266: Rất tiếc câu lệnh này không làm việc, vì thư viện Ruby chưa đượcnạp.E26: Tiếng Do thái không được chọn khi biên dịch
E273: không rõ trạng thái của longjmp %dE274: Sniff: Lỗi trong thời gian đọc. Ngắt kết nốiE275: không rõ yêu cầu của SNiFF+: %sE276: Lỗi kết nối với SNiFF+E277: Máy chủ không trả lờiE278: SNiFF+ chưa được kết nốiE279: Đây không phải là bộ đệm SNiFF+E27: Tiếng Farsi không được chọn khi biên dịch
E280: LỖI NẶNG CỦA TCL: bị hỏng danh sách liên kết!? Hãy thông báo việc nàyđến danh sách thư (mailing list) vim-dev@vim.orgE281: LỖI TCL: mã thoát ra không phải là một số nguyên!? Hãy thông báo điều này đến danh sách thư (mailing list) vim-dev@vim.orgE282: Không đọc được từ "%s"E283: Không có dấu hiệu tương ứng với "%s"E284: Không đặt được giá trị nội dung nhập vào (IC)E285: Không tạo được nội dung nhập vàoE286: Việc thử mở phương pháp nhập không thành côngE287: Cảnh báo: không đặt được sự gọi ngược hủy diệt thành phương pháp nhậpE288: phương pháp nhập không hỗ trợ bất kỳ phong cách (style) nàoE289: phương pháp nhập không hỗ trợ loại soạn thảo trước của VimE28: Nhóm chiếu sáng cú pháp %s không tồn tạiE290: phong cách over-the-spot yêu cầu một bộ phông chữE291: GTK+ cũ hơn 1.2.3. Vùng chỉ trạng thái không làm việcE292: Máy chủ phương pháp nhập liệu chưa được chạyE293: khối chưa bị khóaE294: Lỗi tìm kiếm khi đọc tập tin trao đổi (swap)E295: Lỗi đọc tập tin trao đổi (swap)E296: Lỗi tìm kiếm khi ghi nhớ tập tin trao đổi (swap)E297: Lỗi ghi nhớ tập tin trao đổi (swap)E298: Chưa lấy khối số 0?E298: Chưa lấy khối số 12?E298: Chưa lấy khối số 2?E299: Không cho phép sự tính toán Perl trong hộp cát mà không có môđun An toànE29: Tạm thời chưa có văn bản được chènE300: Tập tin trao đổi (swap) đã tồn tại (sử dụng liên kết mềm tấn công?)E301: Ối, mất tập tin trao đổi (swap)!!!E302: Không đổi được tên tập tin trao đổi (swap)E303: Không mở được tập tin trao đổi (swap) cho "%s", nên không thể phục hồiE304: ml_timestamp: Chưa lấy khối số 0??E305: Không tìm thấy tập tin trao đổi (swap) cho %sE306: Không mở được %sE307: %s không phải là tập tin trao đổi (swap) của VimE308: Cảnh báo: Tập tin gốc có thể đã bị thay đổiE309: Không đọc được khối số 1 từ %sE30: Không có dòng lệnh trướcE310: Khối 1 ID sai (%s không phải là tập tin .swp?)E311: Việc phục hồi bị gián đoạnE312: Phát hiện ra lỗi trong khi phục hồi; hãy xem những dòng bắt đầu với ???E313: Không cập nhật được tập tin trao đổi (swap) vì không tìm thấy nóE314: Cập nhật không thành côngE315: ml_get: giá trị lnum không đúng: %ldE316: ml_get: không tìm được dòng %ldE317: giá trị của pointer khối không đúngE317: Giá trị của cái chỉ (pointer) khối số 2 không đúngE317: Giá trị của pointer khối số 3 không đúngE317: Giá trị của pointer khối số 4 không đúngE318: Đã cập nhật quá nhiều khối?E319: Xin lỗi, câu lệnh này không có trong phiên bản nàyE31: Không có ánh xạ (mapping) như vậyE320: Không tìm được dòng %ldE321: Không thể nạp lại "%s"E322: số thứ tự dòng vượt quá giới hạn : %ldE323: giá trị đếm dòng không đúng trong khối %ldE324: Không thể mở tập tin PostScriptE325: CHÚ ÝE326: Tìm thấy quá nhiều tập tin trao đổi (swap)E327: Một phần của đường dẫn tới phần tử của trình đơn không phải là trình đơn conE328: Trình đơn chỉ có trong chế độ khácE329: Không có trình đơn với tên như vậyE32: Không có tên tập tinE330: Đường dẫn tới trình đơn không được đưa tới trình đơn conE331: Các phần tử của trình đơn không thể thêm trực tiếp vào thanh trình đơnE332: Cái phân chia không thể là một phần của đường dẫn tới trình đơnE333: Đường dẫn tới trình đơn phải đưa tới một phần tử cuả trình đơnE334: Không tìm thấy trình đơn: %sE335: Trình đơn không được định nghĩa cho chế độ %sE336: Đường dẫn tới trình đơn phải đưa tới một trình đơn conE337: Không tìm thấy trình đơn - hãy kiểm tra tên trình đơnE338: Xin lỗi nhưng không có trình duyệt tập tin trong chế độ kênh giao tác (console)E339: Mẫu (pattern) quá dàiE33: Không có biểu thức chính quy trước để thay thếE340: Dòng đang trở thành quá dàiE341: Lỗi nội bộ: lalloc(%ld, )E342: Không đủ bộ nhớ! (phân chia %lu byte)E343: Đường dẫn đưa ra không đúng: '**[số]' phải ở cuối đường dẫn hoặc theo sau bởi '%s'E344: Không tìm thấy thư mục "%s" để chuyển thư mụcE345: Không tìm thấy tập tin "%s" trong đường dẫnE346: Trong đường dẫn thay đổi thư mục không còn có thư mục "%s" nữaE347: Trong đường dẫn path không còn có tập tin "%s" nữaE348: Không có chuỗi ở vị trí con trỏE349: Không có tên ở vị trí con trỏE34: Không có câu lệnh trướcE350: Không thể tạo nếp gấp với giá trị hiện thời của tùy chọn 'foldmethod'E351: Không thể xóa nếp gấp với giá trị hiện thời của tùy chọn 'foldmethod'E352: Không thể tẩy xóa nếp gấp với giá trị hiện thời của tùy chọn 'foldmethod'E353: Trong sổ đăng ký %s không có gì hếtE354: Tên sổ đăng ký không cho phép: '%s'E355: Tùy chọn không biết: %sE356: LỖI get_varpE357: 'langmap': Thiếu ký tự tương ứng cho %sE358: 'langmap': Thừa ký tự sau dấu chấm phẩy: %sE359: Chế độ màn hình không được hỗ trợE35: Không có biểu thức chính quy trướcE360: Không chạy được shell với tùy chọn -fE361: Sự cố được ngăn chặn; biểu thức chính quy quá phức tạp?E363: sử dụng mẫu (pattern) gây ra lỗi out-of-stackE364: Gọi hàm số "%s()" của thư viện không thành côngE365: In tập tin PostScript không thành côngE367: Nhóm "%s" không tồn tạiE369: phần tử không cho phép trong %s%%[]E36: Không đủ chỗ trốngE370: Không nạp được thư viện %sE371: Câu lệnh không tìm thấyE372: Quá nhiều %%%c trong chuỗi định dạngE373: Không mong đợi %%%c trong chuỗi định dạngE374: Thiếu ] trong chuỗi định dạngE375: %%%c không được hỗ trợ trong chuỗi định dạngE376: Không cho phép %%%c trong tiền tố của chuỗi định dạngE377: Không cho phép %%%c trong chuỗi định dạngE378: Trong giá trị 'errorformat' thiếu mẫu (pattern)E379: Tên thư mục không được đưa ra hoặc bằng một chuỗi rỗngE37: Thay đổi chưa được ghi nhớ (thêm ! để bỏ qua ghi nhớ)E380: Ở dưới của đống sửa nhanhE381: Ở đầu của đống sửa nhanhE382: Không ghi nhớ được, giá trị 'buftype' không phải là chuỗi rỗngE383: Chuỗi tìm kiếm không đúng: %sE384: tìm kiếm kết thúc ở ĐẦU tập tin; không tìm thấy %sE385: tìm kiếm kết thúc ở CUỐI tập tin; không tìm thấy %sE386: Mong đợi nhập '?' hoặc '/' sau ';'E387: Tương ứng nằm trên dòng hiện tạiE388: Không tìm thấy định nghĩaE389: Không tìm thấy mẫu (pattern)E38: Tham sô bằng 0E390: Tham số không cho phép: %sE391: Không có cụm cú pháp như vậy: %sE392: Không có cụm cú pháp như vậy: %sE393: không được sử dụng group[t]here ở đâyE394: Phần tử vùng cho %s không tìm thấyE395: không được sử dụng tham số contains ở đâyE396: không được sử dụng tham số containedin ở đâyE397: Yêu cầu tên tập tinE398: Thiếu '=': %sE399: Không đủ tham số: vùng cú pháp %sE39: Yêu cầu một sốE400: Chưa chỉ ra cụmE401: Không tìm thấy ký tự phân chia mẫu (pattern): %sE402: Rác ở sau mẫu (pattern): %sE403: đồng bộ hóa cú pháp: mẫu tiếp tục của dòng chỉ ra hai lầnE404: Tham số không cho phép: %sE405: Thiếu dấu bằng: %sE406: Tham số trống rỗng: %sE407: %s không được cho phép ở đâyE408: %s phải là đầu tiên trong danh sách containsE409: Tên nhóm không biết: %sE40: Không mở được tập tin lỗi %sE410: Câu lệnh con :syntax không đúng: %sE411: không tìm thấy nhóm chiếu sáng cú pháp: %sE412: Không đủ tham số: ":highlight link %s"E413: Quá nhiều tham số: ":highlight link %s"E414: nhóm có thiết lập riêng, chiếu sáng liên kết bị bỏ quaE415: dấu bằng không được mong đợi: %sE416: thiếu dấu bằng: %sE417: thiếu tham số: %sE418: Giá trị không cho phép: %sE419: Không rõ màu văn bản (FG)E41: Không đủ bộ nhớ!E420: Không rõ màu nền sau (BG)E421: Tên hoặc số của màu không được nhận ra: %sE422: mã terminal quá dài: %sE423: Tham số không cho phép: %sE424: Sử dụng quá nhiều thuộc tính chiếu sáng cú phápE425: Không chuyển được tới vị trí ở trước thẻ ghi tương ứng đầu tiênE426: không tìm thấy thẻ ghi: %sE427: Chỉ có một thẻ ghi tương ứngE428: Không chuyển được tới vị trí ở sau thẻ ghi tương ứng cuối cùngE429: Tập tin "%s" không tồn tạiE42: Không có lỗiE430: Đường dẫn tới tập tin thẻ ghi bị cắt bớt cho %s
E431: Lỗi định dạng trong tập tin thẻ ghi "%s"E432: Tập tin thẻ ghi chưa được sắp xếp: %sE433: Không có tập tin thẻ ghiE434: Không tìm thấy mẫu thẻ ghiE435: Không tìm thấy thẻ ghi, đang thử đoán!E436: Trong termcap không có bản ghi "%s"E437: cần khả năng của terminal "cm"E438: u_undo: số thứ tự dòng không đúngE439: danh sách hủy thao tác (undo) bị hỏngE43: Chuỗi tương ứng bị hỏngE440: bị mất dòng hủy thao tácE441: Không có cửa sổ xem trướcE442: Cửa sổ không thể đồng thời ở bên trái phía trên và bên phải phía dướiE443: Không đổi được chỗ khi cửa sổ khác được chiaE444: Không được đóng cửa sổ cuối cùngE445: Cửa sổ khác có thay đổi chưa được ghi nhớE446: Không có tên tập tin tại vị trí con trỏE447: Không tìm thấy tập tin "%s" trong đường dẫnE448: Nạp hàm số %s của thư viện không thành côngE449: Nhận được một biểu thức không cho phépE44: Chương trình xử lý biểu thức chính quy bị hỏngE455: Lỗi ghi nhớ vào tập tin PostScriptE456: Không tìm thấy tập tin tài nguyên PostScript "%s.ps"E456: Không tìm thấy tập tin tài nguyên PostScript "prolog.ps"E456: Không thể mở tập tin "%s"E457: Không thể đọc tập tin tài nguyên PostScript "%s"E459: Không quay lại được thư mục trước đóE45: Tùy chọn 'readonly' được bật (Hãy thêm ! để lờ đi)E460: Nhánh tài nguyên sẽ bị mất (thêm ! để bỏ qua việc kiểm tra lại)E461: Tên biến không cho phép: %sE462: Không thể chuẩn bị để nạp lại "%s"E463: Không thể thay đổi vùng đã được bảo vệE464: Sự sử dụng không rõ ràng câu lệnh do người dùng định nghĩaE465: câu lệnh :winsize yêu cầu hai tham số bằng sốE466: câu lệnh :winpos yêu câu hai tham số bằng sốE467: Phần phục đặc biệt yêu cầu một tham số của hàmE468: Tham số tự động kết thúc chỉ cho phép sử dụng với phần phụ đặc biệtE469: cờ cscopequickfix %c cho %c không chính xácE46: Không thay đổi được biến chỉ đọc "%s"E470: Câu lệnh bị dừngE471: Cần chỉ ra tham sốE472: Không thực hiện thành công câu lệnhE473: Lỗi nội bộE474: Tham số không cho phépE475: Tham số không cho phép: %sE476: Câu lệnh không cho phépE477: Không cho phép !E478: Hãy bình tĩnh, đừng hoảng hốt!E479: Không có tương ứngE47: Lỗi khi đọc tập tin lỗiE480: Không có tương ứng: %sE481: Không cho phép sử dụng phạm viE482: Không tạo được tập tin %sE483: Không nhận được tên tập tin tạm thời (temp)E484: Không mở được tập tin %sE485: Không đọc được tập tin %sE486: Không tìm thấy mẫu (pattern): %sE487: Tham số phải là một số dươngE488: Ký tự thừa ở đuôiE48: Không cho phép trong hộp cát (sandbox)E490: Không tìm thấy nếp gấpE492: Không phải là câu lệnh của trình soạn thảoE493: Đưa ra phạm vi ngược lạiE494: Hãy sử dụng w hoặc w>>E495: Không có tên tập tin câu lệnh tự động để thay thế "<afile>"E496: Không có số thứ tự bộ đệm câu lệnh tự động để thay thế "<abuf>"E497: Không có tên tương ứng câu lệnh tự động để thay thế "<amatch>"E498: không có tên tập tin :source để thay thế "<sfile>"E499: Tên tập tin rỗng cho '%' hoặc '#', chỉ làm việc với ":p:h"E49: Kích thước thanh cuộn không cho phépE500: Kết quả của biểu thức là một chuỗi rỗngE501: Ở cuối tập tinE506: Không thể ghi nhớ vào tập tin lưu trữ (thêm ! để ghi nhớ bằng mọi giáE507: Lỗi đóng tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)E508: Không đọc được tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)E509: Không tạo được tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)E50: Quá nhiều \z(E510: Không tạo được tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)E512: Thao tác đóng không thành côngE513: Lỗi ghi nhớ, biến đổi không thành côngE514: lỗi ghi nhớ (không còn chỗ trống?)E515: Không có bộ đệm nào được bỏ nạp từ bộ nhớE516: Không có bộ đệm nào bị xóaE517: Không có bộ đệm nào được làm sạchE518: Tùy chọn không biếtE519: Tùy chọn không được hỗ trợE51: Quá nhiều %s(E520: Không cho phép trên dòng chế độ (modeline)E521: Sau dấu = cần đưa ra một sốE522: Không tìm thấy trong termcapE523: Không cho phép ở đâyE524: Thiếu dấu hai chấmE525: Chuỗi có độ dài bằng khôngE526: Thiếu một số sau <%s>E527: Thiếu dấu phẩyE528: Cần đưa ra một giá trị cho 'E529: Giá trị của tùy chọn 'term' không thể là một chuỗi trống rỗngE52: Không có cặp cho \z(E530: Không thể thay đổi terminal trong giao diện đồ họa GUIE531: Hãy sử dụng ":gui" để chạy giao diện đồ họa GUIE533: không chọn được phông chữ với các ký tự có chiều rộng gấp đôiE534: Phông chữ, với ký tự có chiều rộng gấp đôi, không đúngE535: Ký tự sau <%c> không chính xácE536: cầu có dấu phẩyE537: Giá trị của tùy chọn 'commentstring' phải rỗng hoặc chứa %sE538: Chuột không được hỗ trợE539: Ký tự không cho phép <%s>E53: Không có cặp cho %s%%(E540: Dãy các biểu thức không đóngE541: quá nhiều phần tửE542: các nhóm không cân bằngE543: Bảng mã không cho phépE544: Không tìm thấy tập tin sơ đồ bàn phímE545: Thiếu dấu hai chấmE546: Chế độ không cho phépE547: Dạng trỏ chuột không cho phépE548: yêu cầu một sốE549: Tỷ lệ phần trăm không cho phépE54: Không có cặp cho %s(E550: Thiếu dấu hai chấmE551: Thành phần không cho phépE552: Cần chỉ ra một sốE553: Không còn phần tử nào nữaE554: Lỗi cú pháp trong %s{...}E555: ở cuối đống thẻ ghiE556: ở đầu đống thẻ ghiE557: Không thể mở tập tin termcapE558: Trong terminfo không có bản ghi nào về terminal nàyE559: Trong termcap không có bản ghi nào về terminal nàyE55: Không có cặp cho %s)E560: Sử dụng: cs[cope] %sE561: không rõ loại tìm kiếm cscopeE562: Sử dụng: cstag <tên>E563: lỗi statE563: lỗi stat(%s): %dE564: %s không phải là một thư mục hoặc một cơ sở dữ liệu cscope thích hợpE566: Không tạo được đường ống (pipe) cho cscopeE567: không có kết nối với cscopeE568: cơ sở dữ liệu này của cscope đã được gắn vào từ trướcE569: đã đạt tới số kết nối lớn nhất cho phép với cscopeE56: operand %s* không thể rỗngE570: lỗi nặng trong cs_manage_matchesE571: Rất tiếc là câu lệnh này không làm việc, vì thư viện Tcl chưa được nạpE573: Sử dụng id máy chủ không đúng: %sE574: Loại sổ đăng ký không biết %dE579: :if xếp lồng vào nhau quá sâuE57: operand %s+ không thể rỗngE580: :endif không có :ifE581: :else không có :ifE582: :elseif không có :ifE583: phát hiện vài :elseE584: :elseif sau :elseE585: :while xếp lồng vào nhau quá sâuE586: :continue không có :whileE587: :break không có :whileE588: Câu lệnh :endwhile không có lệnh :while (1 cặp)E589: giá trị của tùy chọn 'backupext' và 'patchmode' bằng nhauE58: operand %s{ không thể rỗngE590: Cửa sổ xem trước đã cóE591: giá trị của 'winheight' không thể nhỏ hơn 'winminheight'E592: giá trị của 'winwidth' không thể nhỏ hơn 'winminwidth'E593: Cần ít nhất %d dòngE594: Cần ít nhất %d cộtE595: chứa ký tự không in ra hoặc ký tự với chiều rộng gấp đôiE596: Phông chữ không đúngE597: không chọn được bộ phông chữE598: Bộ phông chữ không đúngE599: Giá trị của 'imactivatekey' không đúngE59: ký tự không cho phép sau %s@E600: Thiếu câu lệnh :endtryE601: :try xếp lồng vào nhau quá sâuE602: :endtry không có :tryE603: :catch không có :tryE604: :catch đứng sau :finallyE605: Trường hợp đặc biệt không được xử lý: %sE606: :finally không có :tryE607: phát hiện vài :finallyE608: Không thể thực hiện lệnh :throw cho những ngoại lệ với tiền tố 'Vim'E609: Lỗi cscope: %sE60: Quá nhiều cấu trúc phức tạp %s{...}E612: Định nghĩa quá nhiều ký hiệuE613: Không rõ phông chữ của máy in: %sE614: vim_SelFile: không trở lại được thư mục hiện thờiE615: vim_SelFile: không tìm thấy thư mục hiện thờiE616: vim_SelFile: không tìm thấy phông chữ %sE617: Không thể thay đổi trong giao diện đồ họa GTK+ 2E618: "%s" không phải là tập tin tài nguyên PostScriptE619: "%s" không phải là tập tin tài nguyên PostScript được hỗ trợE61: %s* lồng vàoE620: Không thể chuyển từ các ký tự nhiều byte thành bảng mã "%s"E621: tập tin tài nguyên "%s" có phiên bản không đúngE622: Không thực hiện được fork() cho cscopeE623: Chạy tiến trình cscope không thành côngE624: Không thể mở tập tin "%s"E625: không mở được cơ sở dữ liệu cscope: %sE626: không lấy được thông tin về cơ sở dữ liệu cscopeE62: %s%c lồng vàoE63: không cho phép sử dụng \_E64: %s%c không theo sau gì cảE655: Quá nhiều liên kết tượng trưng (vòng lặp?)E658: Bị mất liên kết với NetBeans cho bộ đệm %ldE659: Không thể gọi Python một cách đệ quyE65: Không cho phép liên kết ngược lạiE661: Rất tiếc, không có trợ giúp '%s' cho %sE662: Ở đầu danh sách những thay đổiE663: Ở cuối danh sách những thay đổiE664: danh sách những thay đổi trống rỗngE665: Không chạy được giao diện đồ họa GUI, đưa ra phông chữ không đúngE666: trình biên dịch không được hỗ trợ: %sE667: Không thực hiện thành công hàm số fsync()E668: Chế độ truy cập thông tin về liên kết với NetBeans không đúng: "%s"E669: Ký tự không thể tin ra trong tên nhómE66: \z( không thể sử dụng ở đâyE670: Tập tin trợ giúp sử dụng nhiều bảng mã khác nhau cho một ngôn ngữ: %sE671: Không tìm được tiêu đề cửa sổ "%s"E672: Không mở được cửa sổ bên trong ứng dụng MDIE67: \z1 và tương tự không được sử dụng ở đâyE68: Ký tự không cho phép sau \zE69: Thiếu ] sau %s%%[E70: %s%%[] rỗngE71: Ký tự không cho phép sau %s%%E72: Lỗi đóng tập tin trao đổi (swap)E73: đống thẻ ghi rỗngE74: Câu lệnh quá phức tạpE75: Tên quá dàiE76: Quá nhiều ký tự [E77: Quá nhiều tên tập tinE78: Dấu hiệu không biếtE79: Không thực hiện được phép thế theo wildcardE800: Tiếng Ả Rập không được chọn khi biên dịch
E80: Lỗi khi ghi nhớE81: Sử dụng <SID> ngoài phạm vi scriptE82: Không thể phân chia bộ nhớ thậm chí cho một bộ đệm, thoát...E83: Không thể phân chia bộ nhớ cho bộ đệm, sử dụng bộ đệm khác...E84: Không tìm thấy bộ đệm có thay đổiE85: Không có bộ đệm được liệt kêE86: Bộ đệm %ld không tồn tạiE87: Đây là bộ đệm cuối cùngE88: Đây là bộ đệm đầu tiênE89: Thay đổi trong bộ đệm %ld chưa được ghi lại (thêm ! để thoát ra bằng mọi giá)E90: Không thể bỏ nạp từ bộ nhớ bộ đệm cuối cùngE91: Tùy chọn 'shell' là một chuỗi rỗngE92: Bộ đệm %ld không được tìm thấyE93: Tìm thấy vài tương ứng với %sE94: Không có bộ đệm tương ứng với %sE95: Đã có bộ đệm với tên như vậyE96: Chỉ có thể theo dõi sự khác nhau trong nhiều nhất %ld bộ đệmE97: Không thể tạo tập tin khác biệt (diff)E98: Không thể đọc dữ liệu ra của lệnh diffE99: Bộ đệm hiện thời không nằm trong chế độ khác biệt (diff)LỖI: Soạn thảo tập tinSoạn thảo tập tin trong cửa sổ mớiSoạn thảo trong &VimSoạn thảo trong nhiều Vi&mSoạn thảo trong Vim đã chạy - &Soạn thảo trong một &VimSoạn thảo (các) tập tin đã chọn trong VimKết thúc của hàm sốKết thúc tập tin scriptNhập mật khẩu để mã hóa: Hãy chọn số cần thiết (<CR> để dừng):Hãy nhập số của tập tin trao đổi (swap) muốn sử dụng (0 để thoát):       Nhập lại mật khẩu:Bật chế độ sửa lỗi (Debug). Gõ "cont" để tiếp tục.Chuyển vào chế độ Ex. Để chuyển về chế độ Thông thường hãy gõ "visual"LỗiLỗi và sự gián đoạnLỗi tạo tiến trình: Hãy kiểm tra xem gvim có trong đường dẫn không!Phát hiện lỗi khi xử lý %s:Trường hợp ngoại lệXử lý trường hợp ngoại lệ: %sTrường hợp ngoại lệ bị bỏ qua: %sKết thúc việc xử lý trường hợp ngoại lệ: %sTrường hợp ngoại lệ: %sThực hiện %sBiểu thứcSự tương ứng con ngoài:
Tập tin "%s" không tồn tạiĐã cập nhật tập tin trao đổi (swap)Tập tinĐầu lọcTìm kiếm và Thay thế (hãy sử dụng '\\' để tìm kiếm dấu '\')Tìm tiếpTìm kiếm chuỗi (hãy sử dụng '\\' để tìm kiếm dấu '\')Tìm ký hiệuTìm kiếm gì:Phông chữ '%s' không phải là phông có độ rộng cố định (fixed-width)Chọn phông chữChiều rộng phông chữ font%ld phải lớn hơn hai lần so với chiều rộng font0
Chiều rộng font0: %ld
Font0: %s
Chiều rộng font1: %ld

Font1: %s
Rác sau tùy chọnTạo docu choXin chào người dùng Vim!Trợ giúpHãy giúp đỡ trẻ em nghèo Uganda!Nhấn phím ENTER hoặc nhập câu lệnh để tiếp tụcNhấn phím ENTER để tiếp tụcKết thúc của đoạn vănLỖI I/O (NHẬP/XUẤT)Tên tập tin không cho phépTên sổ đăng ký không cho phépKý tự đầu tiên không cho phépDòng nhậpPhương pháp _nhập liệuSự gián đoạnGián đoạn: Bị gián đoạnTham số không được phép choHai mật khẩu không trùng nhau!Hủy kết nốiLiên kết: Có tính kiểu chữChỉ tìm tương ứng hoàn toàn với từBản dịch các thông báo sang tiếng Việt: Phan Vĩnh Thịnh <teppi@vnlinux.org>Thiếu '>'Với các thay đổi bởi Cần %s phiên bản %ld
Cần Amigados phiên bản 2.04 hoặc mới hơn
NetBeans không cho phép ghi nhớ bộ đệm chưa có thay đổi nàoKhông có phần tử cú pháp nào được định nghĩa cho bộ đệm nàyKhông tìm thấy viết tắtĐiểm dừng không được xác địnhKhông có màn hìnhKhông có màn hình: gửi biểu thức không thành công.
Không có tập tin được tính đếnKhông tìm thấy ánh xạKhông có dấu hiệu nào được đặt.Không có câu lệnh tự động tương ứngKhông có tập tin swapKhông có gì để inKhông thể hủy thao tác; tiếp tục thực hiệnKhông tìm thấy câu lệnh do người dùng định nghĩaĐồng ýMở tập tinMở màn hình X không thành côngKhông mở được màn hình X trong thời gian cho phép (time out)Mở màn hình X mất %ld mili giâyTập tin gốc "%s"Ghi đè lên tập tin đã có "%.*s"?Trang %dGhi nhớ một phần bộ đệm NetBeans không được cho phépTập tin vá lỗi (patch)Đường dẫn quá dài!Đường dẫn tới tập tin:Tìm thấy tương ứng trên mọi dòng: %sKhông tìm thấy mẫu (pattern)Đã gửi công việc in.Đã in: %sĐang in '%s'In bị dừngIn trang %d (%d%%)Yêu cầu theo một mẫuCâu hỏiĐọc từ đầu vào tiêu chuẩn stdin...Đọc tập tin viminfo "%s"%s%s%sViệc phục hồi đã hoàn thành. Nên kiểm tra xem mọi thứ có ổn không.Khởi đầu lại tất cả các kết nốiThay thếThay thế tất cảThay thế bởi:NhậnNhận từ tất cả các dự ánNhận từ tập tinNhận từ dự ánLàm việc trong chế độ tương thích với ViKhông chế độ, văn bản nhập vào sẽ được chènTrong thời điểm hiện nay SNiFF+ Ghi nhớ nhưGhi nhớ tập tinChuyển hướng ghi nhớGhi nhớ buổi làm việcGhi nhớ cấu hìnhGhi nhớ vẻ ngoàiGhi nhớ thay đổi vào "%.*s"?Quét từ điển: %sQuét trong tập tin được tính đến: %sTìm kiếm trong số thẻ đánh dấu.Quét: %sThanh cuộn: Không thể xác định hình học của thanh cuộn.Chuỗi tìm kiếmTìm kiếm "%s"Tìm kiếm "%s" trong "%s"Tìm kiếm tập tin thẻ ghi %sHãy xem thông tin bổ sung trong trợ giúp ":help E312"Hãy xem thông tin chi tiết trong ":help W11".Chọn %s%ld của %ld Dòng; %ld của %ld Từ; %ld của %ld ByteLựa chọnGửi tới máy in...Hiển thị hạng cơ bản củaHiển thị hạng trong hệ thống cấp bậcHiển thị hạng trong hệ thống cấp bậc giới hạnHiển thị kết nốiHiển thị docu củaHiển thị hàm số bị nạp đè lênHiển thị mã nguồnHiển thị thông báo nàyKý hiệu cho %s:Sniff: Lỗi trong thời gian ghi nhớ. Ngắt kết nốiXin lỗi, không tìm thấy tập tin trợ giúp "%s"Xin lỗi, câu lệnh này bị tắt: không nạp được thư viện Perl.Thực hiện script của VimHãy giúp đỡ phát triển Vim!Kích thước của đống tăng lênTập tin trao đổi (swap) "Tập tin trao đổi (swap) đã rồi!Tìm thấy tập tin trao đổi (swap):Chia cắt trình đơn nàyKiểm tra màn hình X không thành côngXin cảm ơn đã sử dụng VimTập tin đã được tạo trên Tương ứng duy nhấtVim không được biên dịch với tính năng hỗ trợ xem khác biệt (diff).Câu lệnh cscope này không hỗ trợ việc chia (split) cửa sổ.
Bật tắt giữa thi hành/định nghĩaQuá nhiều tham số "+câu lệnh", "-c câu lệnh" hoặc "--cmd câu lệnh"Có quá nhiều tham số soạn thảoĐầuGõ :quit<Enter>  để thoát khỏi VimKhông thể đọc khối số 0 từ Không đăng ký được một tên cho máy chủ câu lệnhHủy thao tácKhông rõTùy chọn không biếtChưa đặt tênLênHãy sử dụng Vim phiên bản 3.0.
Sử dụng CUT_BUFFER0 thay cho lựa chọn trống rỗngĐang sử dụng tập tin trao đổi (swap) "%s"VIM - CHÚ ÝVIM - Tìm kiếm và thay thế...VIM - Tìm kiếm...VIM ::: Vi IMproved (Vi cải tiến) ::: Phiên bản tiếng ViệtLỗi VIMVIM: Không mở được cửa sổ!
Không tìm thấy VIMRUN.EXE trong $PATH.
Lệnh ngoại trú sẽ không dừng lại sau khi hoàn thành.
Thông tin chi tiết xem trong :help win32-vimrunVim E458: Không chỉ định được bản ghi trong bảng màu, một vài màu có thể hiển thị không chính xácCảnh báo VimHộp thoại VimHộp thoại Vim...Thoát Vim với mã %d
Vim là chương trình mã nguồn mở và phân phối tự doVim: Nhận được sự kiện %s
Vim: Nhận được tín hiệu chết
Vim: Nhận được tín hiệu chết %s
Vim: Tín hiệu đôi, thoát
Vim: Lỗi đọc dữ liệu nhập, thoát...
Vim: Đã xong.
Vim: Cửa sổ chính đã bị đóng đột ngột
Vim: Đọc từ đầu vào tiêu chuẩn stdin...
Vim: Nhận được yêu cầu "chết" (dừng) từ trình quản lý màn hình
Vim: Cảnh báo: Đầu vào không phải đến từ một terminal
Vim: Cảnh báo: Đầu ra không hướng tới một terminal
Vim: ghi nhớ các tập tin...
W10: Cảnh báo: Thay đổi một tập tin chỉ có quyền đọcW11: Cảnh báo: Tập tin "%s" đã thay đổi sau khi việc soạn thảo bắt đầuW12: Cảnh báo: Tập tin "%s" và bộ đệm Vim đã thay đổi không phụ thuộc vào nhauW13: Cảnh báo: tập tin "%s" được tạo ra sau khi việc soạn thảo bắt đầuW14: Cảnh báo: Danh sách tên tập tin quá đầyW15: Cảnh báo: Ký tự phân cách dòng không đúng. Rất có thể thiếu ^MW16: Cảnh báo: chế độ truy cập tới tập tin "%s" đã thay đổi sau khi bắt đầu soạn thảoW17: Tiếng Ả Rập yêu cầu sử dụng UTF-8, hãy nhập ':set encoding=utf-8'W18: Ký tự không cho phép trong tên nhómCẢNH BÁO: Tập tin đã thay đổi so với thời điểm đọc!!!CẢNH BÁO: nhận ra Windows 95/98/MECảnh báoCảnh báo: Chuyển tới bộ đệm khác không theo ý muốn (hãy kiểm tra câu lệnh tự động)Cảnh báo: terminal không thực hiện được sự chiếu sángKhi mở tập tin: "Vị trí cửa sổ: X %d, Y %dTừ của dòng khácGhi nhớ một phần tập tin?Ghi tập tin viminfo "%s"XSMP mất theo dõi kết nối ICEXSMP thực hiện SmcOpenConnection không thành công: %sXSMP xử lý yêu cầu tự động ghi nhớXSMP mất kết nối ICEXSMP mở kết nốiXref có mộtLiên kết đến xref từXref chỉ đếnXref được sử dụng bởiCÓGiá trị của bộ đếm bằng 0[LỖI CHUYỂN BẢNG MÃ][thiếu ký tự CR][bị xóa][Thiết bị][Danh sách lỗi][BYTE KHÔNG CHO PHÉP trên dòng %ld][Dòng cuối cùng không đầy đủ][tìm thấy ký tự NL][KHÔNG được chuyển đổi][Tập tin mới][Tập tin mới][Mới][Không có tập tin][Không có tập tin][Thay đổi chưa được ghi nhớ]
[Chưa soạn thảo][Truy cập bị từ chối][Xem trước][LỖI ĐỌC][Chỉ đọc][Lỗi đọc][gọi] tổng re/malloc() %lu, tổng free() %lu

[đã chuyển bảng mã][đã mã hóa][định dạng dos][dos][fifo/socket][fifo][tập tin ..]     soạn thảo (các) tập tin chỉ ra[trợ giúp][dòng dài được chia nhỏ][định dạng mac][mac][noeol][chỉ đọc][socket][chuỗi quá dài][định dạng unix][unix]gốc bằng chương trình diff).
cố chỉ đến bộ đệm đã bị xóacố chỉ đến cửa sổ đã bị đóngcâu lệnh tự động %sbởi Do Bram Moolenaar và những người khác thực hiệnHàm số inputrestore() được gọi nhiều hơn hàm inputsave()lời gọi %sKhông xóa được thuộc tính OutputObjectkhông đọc được đầu ra của 'charconvert'không thay đổi được chế độ kênh giao tác (console)?!
không tạo được câu lệnh của bộ đệm hay của cửa sổ: vật thể đang bị xóakhông xóa được dòngkhông nhận được dòngkhông chèn được dòngkhông thể chèn hoặc thêm dòngkhông mở được không đăng ký được câu lệnh gọi ngược: bộ đệm hoặc cửa sổ đang bị xóakhông đăng ký được câu lệnh gọi ngược: không tìm thấy liên kết đến bộ đệm hoặc cửa sổkhông thay thế được dòngkhông ghi được thông tin về việc hủy thao táckhông thể đặt (các) dòngsao chép không thành công; đã xóađóngcâu lệnh: %sđược kết nốitiếp tục trong %skhông thực hiện được "%s"thực hiện cs_create_connection không thành côngcs_create_connection: thực hiện fdopen cho fr_fp không thành côngcs_create_connection: thực hiện fdopen cho to_fp không thành côngcác lệnh cscope:
kết nối %s với cscope đã bị đóngvị trí con trỏ nằm ngoài bộ đệmtheo mặc định 'đã xóa khối số 1?đừng thoát khởi trình soạn thảo, khi tập tin còn chưa được ghi nhớ thành cồngdanh sách lỗi %d của %d; %d lỗibiểu thức bị tắt khi biên dịchtập tin
tên tập tin / nội dung / dòng
thực hiện xong %sđã làm sạch %ld dònglỗi gvimext.dlltrợ giúptrong đường dẫn ---
thuộc tính không đúngsố của bộ đệm không đúngbiểu thức không đúngtên dấu hiệu không đúnglà một thư mụckhông phải là một tập tinkhông phải là một tập tin thay một thiết bị có thể ghi nhớlà tập tin chỉ đọc (thêm ! để ghi nhớ bằng mọi giá)sự gián đoạn của bàn phímdòng %4ld:dòng %lddòng %ld của %ld --%d%%-- cột dòng %ld: %sdòng %ld: không thực hiện được "%s"dòng %ld: thực hiện "%s"số thứ tự của dòng vượt quá giới hạnthoátdấu hiệu chưa được đặtTương ứng %dTương ứng %d của %dlớn nhất mch_get_shellsize: không phải là kênh giao tác (console)??
trình đơn Soạn thảo->Thiết lập chung->Chế độ chèn                     trình đơn Soạn thảo->Thiết lập chung->Tương thích với Vi                trình đơn Trợ giúp->Mồ côi             để có thêm thông tin     trình đơn Trợ giúp->Giúp đỡ/Đăng ký để biết thêm thông tin    nhỏ nhất đã chạy shell mới
khôngkhông có kết nối với cscope
không có bộ đệm như vậykhông có cửa sổ như vậykhông đồng bộ hóakhông không tìm thấy không tìm thấy trong 'runtimepath': "%s"tạm thời chưa được thực thigiá trị pe_line_count bằng khôngdòng lệnh chạy trước khi thực hiện vimrcđọc từ socket NetBeansthuộc tính chỉ đọcđang ghithay thế bằng %s? (y/n/a/q/l/^E/^Y)hàng %d cột %dtìm kiếm sẽ được tiếp tục từ ĐẦU tài liệutìm kiếm sẽ được tiếp tục từ CUỐI tài liệushell thoát shell với mã %dtắt máygiá trị softspace phải là một số nguyênthực hiện "%s"giá trị stack_idx phải bằng 0chuỗi không thể chứa ký tự dòng mớiĐồng bộ hóa theo chú thích kiểu Cđồng bộ hóa bắt đầu thẻ ghi %d của %d%stên thẻ ghitới %s trên %shãy gõ :help cp-default<Enter> để có thêm thông tin về điều nàyhãy gõ :help iccf<Enter>       để biết thêm thông tinhãy gõ :help register<Enter>   để biết thêm thông tin hãy gõ :help sponsor<Enter>    để biết thêm thông tin hãy gõ :help version8<Enter>   để biết về phiên bản này  hãy gõ :help windows95<Enter>  để biết thêm thông tin      hãy gõ :help<Enter> hoặc <F1>  để có được trợ giúp            hãy gõ :q<Enter>               để thoát khỏi chương trình     hãy gõ :set nocp<Enter>        để chuyển vào chế độ Vim     cờ không biết: tùy chọn không rõkhông rõ tùy chọn vimOptionphiên bản lỗi của vimvới giao diện đồ họa (cổ điển) GUI.với giao diện đồ họa GUI BeOS.với giao diện đồ họa GUI Carbon.với giao diện đồ họa GUI Cocoa.với giao diện đồ họa GUI GTK.với giao diện đồ họa GUI GTK-GNOME.với giao diện đồ họa GUI GTK2.với giao diện đồ họa GUI GTK2-GNOME.với giao diện đồ họa GUI.với giao diện đồ họa GUI Photon.với giao diện đồ họa GUI X11-Athena.với giao diện đồ họa GUI X11-Motif.với giao diện đồ họa GUI X11-neXtaw.không có giao diện đồ họa GUI.writelines() yêu cầu một danh sách các chuỗiPK�j�Zc��qXXvim80/lang/menu_eo_eo.utf-8.vimnu�[���" Menu Translations:	Esperanto for UTF-8 encoding

source <sfile>:p:h/menu_eo.utf-8.vim
PK�j�Z��~$$vim80/lang/menu_ja_jp.cp932.vimnu�[���" Menu Translations:	Japanese (for Windows)
" Translated By:	MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change:		15-Jun-2012.
"
" Copyright (C) 2004,12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

source <sfile>:p:h/menu_japanese_japan.932.vim
PK�j�Z�7?6^^vim80/lang/menu_de.latin1.vimnu�[���" Menu Translations:	German for iso-8859-1 encoding

source <sfile>:p:h/menu_de_de.latin1.vim
PK�j�ZY:��I2I2 vim80/lang/menu_it_it.latin1.vimnu�[���" Menu Translations:	Italian / Italiano
" Maintainer:		Antonio Colombo <azc100@gmail.com>
"			Vlad Sandrini <vlad.gently@gmail.com>
"			Luciano Montanaro <mikelima@cirulla.net>
" Last Change:	2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding iso-8859-1

" Help / Aiuto
menut &Help			&Aiuto
menut &Overview<Tab><F1>	&Panoramica<Tab><F1>
menut &User\ Manual		Manuale\ &Utente
menut &How-to\ links	Co&Me\.\.\.
"menut &GUI			&GUI
menut &Credits		Cr&Editi
menut Co&pying		C&Opie
menut &Sponsor/Register &Sponsor/registrazione
menut O&rphans		O&Rfani
"menut &Find\.\.\.		&Cerca\.\.\.
"NOTA: fa conflitto con 'cerca' nel menu 'modifica'
menut &Version		&Versione
menut &About		&Intro

let g:menutrans_help_dialog = "Batti un comando o una parola per cercare aiuto:\n\nPremetti i_ per comandi in modo Input (ad.es.: i_CTRL-X)\nPremetti c_ per comandi che editano la linea-comandi (ad.es.: c_<Del>)\nPremetti ' per un nome di opzione (ad.es.: 'shiftwidth')"

" File menu
"menut &File				&File
"
menut &Open\.\.\.<Tab>:e		&Apri\.\.\.<Tab>:e
menut Sp&lit-Open\.\.\.<Tab>:sp	A&Pri\ nuova\ finestra\.\.\.<Tab>:sp
menut Open\ Tab\.\.\.<Tab>:tabnew Apri\ nuova\ &Linguetta\.\.\.<Tab>:tabnew
menut &New<Tab>:enew		&Nuovo<Tab>:enew
menut &Close<Tab>:close		&Chiudi<Tab>:close
menut &Save<Tab>:w			&Salva<Tab>:w
menut Save\ &As\.\.\.<Tab>:sav	Salva\ &Con\ nome\.\.\.<Tab>:sav

if has("diff")
    menut Split\ &Diff\ with\.\.\.	Finestra\ &Differenza\ con\.\.\.
    menut Split\ Patched\ &By\.\.\.	Finestra\ patc&H\ da\.\.\.
endif

menut &Print			S&tampa
menut Sa&ve-Exit<Tab>:wqa		Sa&Lva\ ed\ esci<Tab>:wqa
menut E&xit<Tab>:qa			&Esci<Tab>:qa

" Edit / Modifica

menut &Edit				&Modifica
menut &Undo<Tab>u			&Annulla<Tab>u
menut &Redo<Tab>^R			&Ripristina<Tab>^R
menut Rep&eat<Tab>\.		Ri&Peti<Tab>\.
menut Cu&t<Tab>"+x			&Taglia<Tab>"+x
menut &Copy<Tab>"+y			&Copia<Tab>"+y
menut &Paste<Tab>"+gP		&Incolla<Tab>"+gP
menut Put\ &Before<Tab>[p		&Metti\ davanti<Tab>[p
menut Put\ &After<Tab>]p		M&Etti\ dietro<Tab>]p
menut &Delete<Tab>x			Cance&Lla<Tab>x
menut &Select\ all<Tab>ggVG		Seleziona\ &Tutto<Tab>ggVG
menut &Select\ All<Tab>ggVG		Seleziona\ &Tutto<Tab>ggVG
menut &Find\.\.\.			&Cerca\.\.\.
menut Find\ and\ Rep&lace\.\.\.	&Sostituisci\.\.\.
menut Settings\ &Window		&Finestra\ impostazioni
menut Startup\ &Settings	Impostazioni\ di\ &Avvio
menut &Global\ Settings		Impostazioni\ &Globali
menut Question			Domanda

" Edit / Modifica Impostazioni Globali
menut &Global\ Settings	Impostazioni\ &Globali
menut Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Evidenzia\ ricerche\ S�/No<Tab>:set\ hls!
menut Toggle\ &Ignore-case<Tab>:set\ ic!		&Ignora\ maiusc\.-minusc\.\ S�/No<Tab>:set\ ic!
menut Toggle\ &Showmatch<Tab>:set\ sm!	Indica\ &Corrispondente\ S�/No<Tab>:set\ sm!

menut &Context\ lines	&Linee\ di\ contesto
menut &Virtual\ Edit		&Edit\ virtuale

menut Never		Mai
menut Block\ Selection		Selezione\ blocco
menut Insert\ mode	Modo\ insert
menut Block\ and\ Insert	Selezione\ blocco+inserimento
menut Always		Sempre

menut Toggle\ Insert\ &Mode<Tab>:set\ im!	&Modo\ insert\ S�/No<Tab>:set\ im!
menut Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	C&Ompatibile\ VI\ S�/No<Tab>:set\ cp!
menut Search\ &Path\.\.\.	&Percorso\ di\ ricerca\.\.\.
menut Ta&g\ Files\.\.\.		File\ ta&G\.\.\.
"
" Opzioni GUI
menut Toggle\ &Toolbar	Barra\ s&Trumenti\ S�/No
menut Toggle\ &Bottom\ Scrollbar	Barra\ scorrimento\ in\ &Fondo\ S�/No
menut Toggle\ &Left\ Scrollbar	Barra\ scorrimento\ a\ &Sinistra\ S�/No
menut Toggle\ &Right\ Scrollbar	Barra\ scorrimento\ a\ &Destra\ S�/No

let g:menutrans_path_dialog = "Batti percorso di ricerca per i file.\nSepara fra loro i nomi di directory con una virgola."
let g:menutrans_tags_dialog = "Batti nome dei file di tag.\nSepara fra loro i nomi di directory con una virgola."

" Edit / Impostazioni File
menut F&ile\ Settings	&Impostazioni\ file

" Boolean options
menut Toggle\ Line\ &Numbering<Tab>:set\ nu!	&Numerazione\ \ S�/No<Tab>:set\ nu!
menut Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!	Numerazione\ relati&Va\ S�/No<Tab>:set\ rnu!
menut Toggle\ &List\ Mode<Tab>:set\ list!		Modo\ &List\ S�/No<Tab>:set\ list!
menut Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Linee\ &Continuate\ S�/No<Tab>:set\ wrap!
menut Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	A\ capo\ alla\ &Parola\ S�/No<Tab>:set\ lbr!
menut Toggle\ &expand-tab<Tab>:set\ et!		&Espandi\ tabulazione\ S�/No<Tab>:set\ et!
menut Toggle\ &auto-indent<Tab>:set\ ai!	Indentazione\ &Automatica\ S�/No<Tab>:set ai!
menut Toggle\ &C-indenting<Tab>:set\ cin!	Indentazione\ stile\ &C\ S�/No<Tab>:set cin!

" altre opzioni
menut &Shiftwidth			&Spazi\ rientranza
menut Soft\ &Tabstop		&Tabulazione\ software
menut Te&xt\ Width\.\.\.		Lunghe&Zza\ riga\.\.\.
menut &File\ Format\.\.\.	Formato\ &File\.\.\.

let g:menutrans_textwidth_dialog = "Batti nuova lunghezza linea (0 per inibire la formattazione): "

let g:menutrans_fileformat_dialog = "Scegli formato con cui scrivere il file"

menut C&olor\ Scheme		Schema\ c&Olori

menut default		normale
menut DEFAULT		NORMALE
menut evening		notturno
menut EVENING		NOTTURNO
menut morning		diurno
menut MORNING		DIURNO
menut shine		brillante
menut SHINE		BRILLANTE
menut peachpuff		pesca
menut PEACHPUF		PESCA

menut &Keymap				&Mappa\ tastiera

menut None		nessuna
menut accents		accenti
menut ACCENTS		ACCENTI
menut hebrew		ebraico
menut HEBREW		EBRAICO
menut hebrew_iso-8859-8 ebraico_iso-8859-8
menut hebrew_cp1255	ebraico_cp1255
menut hebrew_utf-8	ebraico_utf-8
menut hebrewp_iso-8859-8 ebraico_p_iso-8859-8
menut HEBREW-		EBRAICO+
menut hebrewp		EBRAICOP
menut HEBREWP		EBRAICOP
menut russian-jcuken	cirillico-jcuken
menut russian-jcukenwin	cirillico-jcuken-win
menut RUSSIAN		CIRILLICO
menut RUSSIAN-		CIRILLICO-

menut Select\ Fo&nt\.\.\.		Scegli\ &Font\.\.\.

" Menu strumenti programmazione
menut &Tools			&Strumenti

menut &Jump\ to\ this\ tag<Tab>g^]	&Vai\ a\ questa\ tag<Tab>g^]
menut Jump\ &back<Tab>^T		Torna\ &Indietro<Tab>^T
menut Build\ &Tags\ File		Costruisci\ file\ &Tags\

" Menu ortografia / Spelling
menut &Spelling			&Ortografia

menut &Spell\ Check\ On			Attiva\ &Controllo\ ortografico
menut Spell\ Check\ &Off		&Disattiva\ controllo\ ortografico
menut To\ &Next\ error<Tab>]s		Errore\ &Seguente<tab>]s
menut To\ &Previous\ error<Tab>[s	Errore\ &Precedente<tab>[s
menut Suggest\ &Corrections<Tab>z=	&Suggerimenti<Tab>z=
menut &Repeat\ correction<Tab>:spellrepall	&Ripeti\ correzione<Tab>:spellrepall
menut Set\ language\ to\ "en"		Imposta\ lingua\ a\ "en"
menut Set\ language\ to\ "en_au"	Imposta\ lingua\ a\ "en_au"
menut Set\ language\ to\ "en_ca"	Imposta\ lingua\ a\ "en_ca"
menut Set\ language\ to\ "en_gb"	Imposta\ lingua\ a\ "en_gb"
menut Set\ language\ to\ "en_nz"	Imposta\ lingua\ a\ "en_nz"
menut Set\ language\ to\ "en_us"	Imposta\ lingua\ a\ "en_us"
menut Set\ language\ to\ "it"		Imposta\ lingua\ a\ "it"
menut Set\ language\ to\ "it_it"	Imposta\ lingua\ a\ "it_it"
menut Set\ language\ to\ "it_ch"	Imposta\ lingua\ a\ "it_ch"
menut &Find\ More\ Languages		&Trova\ altre\ lingue

" Menu piegature / Fold
if has("folding")
  menut &Folding					&Piegature
  " apri e chiudi piegature
  menut &Enable/Disable\ folds<Tab>zi		Pi&egature\ S�/No<Tab>zi
  menut &View\ Cursor\ Line<Tab>zv			&Vedi\ linea\ col\ Cursore<Tab>zv
  menut Vie&w\ Cursor\ Line\ only<Tab>zMzx		Vedi\ &Solo\ linea\ col\ Cursore<Tab>zMzx
  menut C&lose\ more\ folds<Tab>zm			C&Hiudi\ pi�\ piegature<Tab>zm
  menut &Close\ all\ folds<Tab>zM			&Chiudi\ tutte\ le\ piegature<Tab>zM
  menut O&pen\ more\ folds<Tab>zr			A&Pri\ pi�\ piegature<Tab>zr
  menut &Open\ all\ folds<Tab>zR			&Apri\ tutte\ le\ piegature<Tab>zR
  " metodo piegatura
  menut Fold\ Met&hod				Meto&Do\ piegatura
  menut M&anual					&Manuale
  menut I&ndent					&Nidificazione
  menut E&xpression					&Espressione\ Reg\.
  menut S&yntax					&Sintassi
  menut &Diff					&Differenza
  menut Ma&rker					Mar&Catura
  " crea e cancella piegature
  menut Create\ &Fold<Tab>zf			Crea\ &Piegatura<Tab>zf
  menut &Delete\ Fold<Tab>zd			&Leva\ piegatura<Tab>zd
  menut Delete\ &All\ Folds<Tab>zD			Leva\ &Tutte\ le\ piegature<Tab>zD
  " movimenti all'interno delle piegature
  menut Fold\ col&umn\ width			Larghezza\ piegat&Ure\ in\ colonne
endif  " has folding

if has("diff")
  menut &Diff					&Differenza
  "
  menut &Update					&Aggiorna
  menut &Get\ Block					&Importa\ differenze
  menut &Put\ Block					&Esporta\ differenze
endif  " has diff

menut &Make<Tab>:make		Esegui\ &Make<Tab>:make

menut &List\ Errors<Tab>:cl		Lista\ &Errori<Tab>:cl
menut L&ist\ Messages<Tab>:cl!	Lista\ &Messaggi<Tab>:cl!
menut &Next\ Error<Tab>:cn		Errore\ s&Uccessivo<Tab>:cn
menut &Previous\ Error<Tab>:cp	Errore\ &Precedente<Tab>:cp
menut &Older\ List<Tab>:cold	Lista\ men&O\ recente<Tab>:cold
menut N&ewer\ List<Tab>:cnew	Lista\ pi�\ rece&Nte<Tab>:cnew

menut Error\ &Window		&Finestra\ errori

menut &Update<Tab>:cwin		A&Ggiorna<Tab>:cwin
menut &Open<Tab>:copen		&Apri<Tab>:copen
menut &Close<Tab>:cclose	&Chiudi<Tab>:cclose

menut &Convert\ to\ HEX<Tab>:%!xxd	&Converti\ a\ esadecimale<Tab>:%!xxd
menut Conve&rt\ back<Tab>:%!xxd\ -r	Conve&rti\ da\ esadecimale<Tab>:%!xxd\ -r

menut Se&T\ Compiler		Impo&Sta\ Compilatore

" Buffers / Buffer
menut &Buffers		&Buffer

menut &Refresh\ menu				A&ggiorna\ menu
menut &Delete		&Elimina
menut &Alternate		&Alternato
menut &Next			&Successivo
menut &Previous		&Precedente
menut [No\ File]		[Nessun\ File]
" Syntax / Sintassi
menut &Syntax		&Sintassi
menut &Show\ filetypes\ in\ menu	Mo&Stra\ tipi\ di\ file\ nel\ menu
menut Set\ '&syntax'\ only	&S\ Attiva\ solo\ \ 'syntax'
menut Set\ '&filetype'\ too	&F\ Attiva\ anche\ 'filetype'
menut &Off			&Disattiva
menut &Manual		&Manuale
menut A&utomatic		A&Utomatico
menut on/off\ for\ &This\ file	Attiva\ S�/No\ su\ ques&To\ file
menut Co&lor\ test		Test\ &Colori
menut &Highlight\ test	Test\ &Evidenziamento
menut &Convert\ to\ HTML	Converti\ ad\ &HTML

let g:menutrans_no_file = "[Senza nome]"

" Window / Finestra
menut &Window			&Finestra

menut &New<Tab>^Wn			&Nuova<Tab>^Wn
menut S&plit<Tab>^Ws		&Dividi\ lo\ schermo<Tab>^Ws
menut Sp&lit\ To\ #<Tab>^W^^	D&Ividi\ verso\ #<Tab>^W^^
menut Split\ &Vertically<Tab>^Wv	Di&Vidi\ verticalmente<Tab>^Wv
menut Split\ File\ E&xplorer	Aggiungi\ finestra\ e&Xplorer

menut &Close<Tab>^Wc		&Chiudi<Tab>^Wc
menut Close\ &Other(s)<Tab>^Wo	C&Hiudi\ altra(e)<Tab>^Wo

menut Move\ &To			&Muovi\ verso

menut &Top<Tab>^WK			&Cima<Tab>^WK
menut &Bottom<Tab>^WJ		&Fondo<Tab>^WJ
menut &Left\ side<Tab>^WH		Lato\ &Sinistro<Tab>^WH
menut &Right\ side<Tab>^WL		Lato\ &Destro<Tab>^WL
menut Rotate\ &Up<Tab>^WR		Ruota\ verso\ l'&Alto<Tab>^WR
menut Rotate\ &Down<Tab>^Wr		Ruota\ verso\ il\ &Basso<Tab>^Wr

menut &Equal\ Size<Tab>^W=		&Uguale\ ampiezza<Tab>^W=
menut &Max\ Height<Tab>^W_		&Altezza\ massima<Tab>^W_
menut M&in\ Height<Tab>^W1_		A&Ltezza\ minima<Tab>^W1_
menut Max\ &Width<Tab>^W\|		Larghezza\ massima<Tab>^W\|
menut Min\ Widt&h<Tab>^W1\|		Larghezza\ minima<Tab>^W1\|

" The popup menu
menut &Undo			&Annulla
menut Cu&t			&Taglia
menut &Copy			&Copia
menut &Paste		&Incolla
menut &Delete		&Elimina

menut Select\ Blockwise	Seleziona\ in\ blocco
menut Select\ &Word		Seleziona\ &Parola
menut Select\ &Line		Seleziona\ &Linea
menut Select\ &Block	Seleziona\ &Blocco
menut Select\ &All		Seleziona\ t&Utto

" The GUI Toolbar / Barra Strumenti
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Apri
    tmenu ToolBar.Save		Salva
    tmenu ToolBar.SaveAll	Salva Tutto
    tmenu ToolBar.Print		Stampa
    tmenu ToolBar.Undo		Annulla
    tmenu ToolBar.Redo		Ripristina
    tmenu ToolBar.Cut		Taglia
    tmenu ToolBar.Copy		Copia
    tmenu ToolBar.Paste		Incolla

    if !has("gui_athena")
      tmenu ToolBar.Find	Cerca
      tmenu ToolBar.FindNext	Cerca Successivo
      tmenu ToolBar.FindPrev	Cerca Precedente
      tmenu ToolBar.Replace	Sostituisci
    endif

if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Nuova finestra
      tmenu ToolBar.WinSplit	Dividi finestra
      tmenu ToolBar.WinMax	Massima ampiezza
      tmenu ToolBar.WinMin	Minima ampiezza
      tmenu ToolBar.WinVSplit	Dividi verticalmente
      tmenu ToolBar.WinMaxWidth	Massima larghezza
      tmenu ToolBar.WinMinWidth	Minima larghezza
      tmenu ToolBar.WinClose	Chiudi finestra
endif

    tmenu ToolBar.LoadSesn	Carica Sessione
    tmenu ToolBar.SaveSesn	Salva Sessione
    tmenu ToolBar.RunScript	Esegui Script
    tmenu ToolBar.Make		Make
    tmenu ToolBar.Shell		Shell
    tmenu ToolBar.RunCtags	Esegui Ctags
    tmenu ToolBar.TagJump	Vai a Tag
    tmenu ToolBar.Help		Aiuto
    tmenu ToolBar.FindHelp	Cerca in Aiuto
  endfun
endif

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: set sw=2 :
PK�j�Z+a?�Q,Q,vim80/lang/menu_ko_kr.utf-8.vimnu�[���" Menu Translations:	Korean
" Maintainer:		SungHyun Nam <goweol@gmail.com>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Help menu
menutrans &Help			도움말(&H)
menutrans &Overview<Tab><F1>	개관(&O)<Tab><F1>
menutrans &User\ Manual		사용자\ 매뉴얼(&U)
menutrans &How-to\ links	하우투\ 목록(&H)
menutrans &GUI			GUI(&G)
menutrans &Find\.\.\.		찾기(&F)\.\.\.
menutrans &Credits		고마운\ 분(&C)
menutrans Co&pying		저작권(&p)
menutrans &Sponsor/Register	후원/등록(&S)
menutrans O&rphans		고아(&r)
menutrans &Version		버젼(&V)
menutrans &About		이\ 프로그램은(&A)

" File menu
menutrans &File				파일(&F)
menutrans &Open\.\.\.<Tab>:e		열기(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	나눠서\ 열기(&l)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	탭\ 열기\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		새로운(&N)<Tab>:enew
menutrans &Close<Tab>:close		닫기(&C)<Tab>:close
menutrans &Save<Tab>:w			저장(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	다른\ 이름으로\ 저장(&A)\.\.\.<Tab>:sav
"menutrans Split\ &Diff\ with\.\.\.	Split\ &Diff\ with\.\.\.
"menutrans Split\ Patched\ &By\.\.\.	Split\ Patched\ &By\.\.\.
menutrans &Print			인쇄(&P)
menutrans Sa&ve-Exit<Tab>:wqa		저장하고\ 끝내기(&v)<Tab>:wqa
menutrans E&xit<Tab>:qa			끝내기(&x)<Tab>:qa

" Edit menu
menutrans &Edit				편집(&E)
menutrans &Undo<Tab>u			취소(&U)<Tab>u
menutrans &Redo<Tab>^R			다시\ 실행(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		되풀이(&e)<Tab>\.
menutrans Cu&t<Tab>"+x			자르기(&t)<Tab>"+x
menutrans &Copy<Tab>"+y			복사(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		붙이기(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		앞에\ 붙이기(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		뒤에\ 붙이기(&A)<Tab>]p
menutrans &Delete<Tab>x			지우기(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		모두\ 고르기(&S)<Tab>ggVG
menutrans &Find\.\.\.			찾기(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	찾아서\ 바꾸기(&l)\.\.\.
menutrans Settings\ &Window		설정\ 창(&W)
menutrans Startup\ &Settings		시작\ 설정(&S)

" Edit/Global Settings
menutrans &Global\ Settings		전역\ 설정(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! 패턴\ 하이라이트\ 토글(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! 대소문자\ 구분\ 토글(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Showmatch\ 토글(&S)<Tab>:set\ sm!
menutrans &Context\ lines		콘텍스트\ 줄(&C)
menutrans &Virtual\ Edit		가상\ 편집(&V)
menutrans Never				사용\ 안\ 함
menutrans Block\ Selection		블럭\ 고르기
menutrans Insert\ mode			삽입\ 모드
menutrans Block\ and\ Insert		블럭과\ 삽입
menutrans Always			항상\ 사용
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! 삽입\ 모드\ 토글(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! Vi\ 호환\ 토글(&o)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		찾기\ 경로(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.		꼬리표\ 파일(&g)\.\.\.

" GUI options
menutrans Toggle\ &Toolbar		도구막대\ 토글(&T)
menutrans Toggle\ &Bottom\ Scrollbar	바닥\ 스크롤바\ 토글(&B)
menutrans Toggle\ &Left\ Scrollbar	왼쪽\ 스크롤바\ 토글(&L)
menutrans Toggle\ &Right\ Scrollbar	오른쪽\ 스크롤바\ 토글(&R)

" Edit/File Settings
menutrans F&ile\ Settings		파일\ 설정(&i)

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! 줄\ 번호붙이기\ 토글(&N)<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! 목록\ 모드\ 토글(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! 줄\ Wrap\ 토글(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!  낱말에서\ Wrap\ 토글(&r)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et! 탭\ 확장\ 토글(&e)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! 자동인덴트\ 토글(&a)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! C-인덴팅\ 토글(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			쉬프트\ 너비(&S)
menutrans Soft\ &Tabstop		소프트\ 탭스톱(&T)
menutrans Te&xt\ Width\.\.\.		텍스트\ 너비(&x)\.\.\.
menutrans &File\ Format\.\.\.		파일\ 형식(&F)\.\.\.
menutrans C&olor\ Scheme		컬러\ 스킴(&o)
menutrans &Keymap			키맵(&K)

menutrans Select\ Fo&nt\.\.\.		글꼴\ 고르기(&F)\.\.\.

" Programming menu
menutrans &Tools			도구(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	이\ 꼬리표로\ 가기(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		뒤로\ 가기(&b)<Tab>^T
menutrans Build\ &Tags\ File		꼬리표\ 파일\ 만들기(&T)

menutrans &Spelling			맞춤법\ 검사(&S)
menutrans &Spell\ Check\ On		맞춤법\ 검사\ 시작(&S)
menutrans Spell\ Check\ &Off		맞춤법\ 검사\ 끝(&O)
menutrans To\ &Next\ error<Tab>]s	다음\ 에러로(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	이전\ 에러로(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	수정\ 제안(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	수정\ 반복(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	언어를\ "en"으로\ 설정
menutrans Set\ language\ to\ "en_au"	언어를\ "en_au"로\ 설정
menutrans Set\ language\ to\ "en_ca"	언어를\ "en_ca"로\ 설정
menutrans Set\ language\ to\ "en_gb"	언어를\ "en_gb"로\ 설정
menutrans Set\ language\ to\ "en_nz"	언어를\ "en_nz"으로\ 설정
menutrans Set\ language\ to\ "en_us"	언어를\ "en_us"로\ 설정
menutrans &Find\ More\ Languages	다른\ 언어\ 찾기(&F)

" Tools.Fold Menu
menutrans &Folding			접기(&F)
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi	접기\ 사용\ 토글(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	커서\ 줄\ 보기(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx 커서\ 줄만\ 보기(&w)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	더\ 많은\ 접기\ 닫기(&l)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	모든\ 접기\ 닫기(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	더\ 많은\ 접기\ 열기(&p)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	접힌\ 부분\ 모두\ 펴기(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			접는\ 방법(&h)
menutrans M&anual			수동(&a)
menutrans I&ndent			들여쓰기(&n)
menutrans E&xpression			표현식(&x)
menutrans S&yntax			신택스(&y)
"menutrans &Diff				&Diff
menutrans Ma&rker			꼬리표(&r)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		접기\ 생성(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		접기\ 삭제(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	모든\ 접기\ 삭제(&A)<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width		접기\ 컬럼\ 너비(&w)

"menutrans &Diff				&Diff
menutrans &Update			갱신(&U)
menutrans &Get\ Block			블럭\ 가져오기(&G)
menutrans &Put\ Block			블럭\ 집어넣기(&P)

menutrans &Make<Tab>:make		빌드(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		에러\ 목록\ 보기(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	메시지\ 목록\ 보기(&i)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		다음\ 에러(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	이전\ 에러(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	오래된\ 목록(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	새로운\ 목록(&e)<Tab>:cnew
menutrans Error\ &Window		에러\ 창(&W)
menutrans &Update<Tab>:cwin		갱신(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		열기(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		닫기(&C)<Tab>:cclose
menutrans Se&T\ Compiler		컴파일러\ 설정(&T)
menutrans &Convert\ to\ HEX<Tab>:%!mc\ vim:xxd	십육진으로\ 변환<Tab>:%!mc\ vim:xxd
menutrans &Convert\ to\ HEX<Tab>:%!xxd	십육진으로\ 변환(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!mc\ vim:xxd\ -r	원래대로\ 변환(&r)<Tab>:%!mc\ vim:xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	원래대로\ 변환(&r)<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers			버퍼(&B)
menutrans &Refresh\ menu		차림표\ 다시그리기(&R)
menutrans &Delete			지우기(&D)
menutrans &Alternate			교체(&A)
menutrans &Next				다음(&N)
menutrans &Previous			이전(&P)

" Window menu
menutrans &Window			창(&W)
menutrans &New<Tab>^Wn			새\ 창(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		나누기(&p)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	#으로\ 나누기(&l)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	세로로\ 나누기(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	파일\ 익스플로러\ 나누기

menutrans &Close<Tab>^Wc		닫기(&C)<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	다른\ 창\ 닫기(&O)<Tab>^Wo

menutrans Move\ &To			이동(&T)
menutrans &Top<Tab>^WK			꼭대기(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		바닥(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		왼쪽(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		오른쪽(&R)<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		위로\ 회전(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		아래로\ 회전(&D)<Tab>^Wr

menutrans &Equal\ Size<Tab>^W=		같은\ 높이로(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		최대\ 높이로(&M)<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		최소\ 높이로(&i)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		최대\ 넓이로(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		최소\ 넓이로(&h)<Tab>^W1\|

" The popup menu
menutrans &Undo			취소(&U)
menutrans Cu&t			자르기(&t)
menutrans &Copy			복사(&C)
menutrans &Paste		붙이기(&P)
menutrans &Delete		지우기(&D)
menutrans Select\ Blockwise	사각형\ 고르기
menutrans Select\ &Word		낱말\ 고르기(&W)
menutrans Select\ &Line		줄\ 고르기(&L)
menutrans Select\ &Block	구획\ 고르기(&B)
menutrans Select\ &All		모두\ 고르기(&A)

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		파일 열기
    tmenu ToolBar.Save		현재 파일 저장
    tmenu ToolBar.SaveAll	모두 저장
    tmenu ToolBar.Print		인쇄
    tmenu ToolBar.Undo		취소
    tmenu ToolBar.Redo		다시 실행
    tmenu ToolBar.Cut		자르기
    tmenu ToolBar.Copy		복사
    tmenu ToolBar.Paste		붙이기
    tmenu ToolBar.Find		찾기...
    tmenu ToolBar.FindNext	다음 찾기
    tmenu ToolBar.FindPrev	이전 찾기
    tmenu ToolBar.Replace	바꾸기
    tmenu ToolBar.LoadSesn	세션 읽어오기
    tmenu ToolBar.SaveSesn	세션 저장
    tmenu ToolBar.RunScript	스크립트 실행
    tmenu ToolBar.Make		Make
    tmenu ToolBar.Shell		쉘
    tmenu ToolBar.RunCtags	꼬리표 만들기
    tmenu ToolBar.TagJump	꼬리표로 가기
    tmenu ToolBar.Help		도움말
    tmenu ToolBar.FindHelp	도움말 찾기...
  endfun
endif

" Syntax menu
menutrans &Syntax		문법(&S)
menutrans &Show\ filetypes\ in\ menu	모든\ 선택가능한\ 항목\ 보기(&S)
menutrans Set\ '&syntax'\ only	'syntax'만\ 설정(&s)
menutrans Set\ '&filetype'\ too	'filetype'도\ 설정(&f)
menutrans &Off			끄기(&O)
menutrans &Manual		수동(&M)
menutrans A&utomatic		자동(&u)
menutrans on/off\ for\ &This\ file 이\ 파일만\ 켜기/끄기(&T)

menutrans Co&lor\ test		색\ 시험(&l)
menutrans &Highlight\ test	Highlight\ 시험(&H)
menutrans &Convert\ to\ HTML	HTML로\ 변환(&C)

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Zh�A�T�T�&vim80/lang/ko.UTF-8/LC_MESSAGES/vim.monu�[������8�	�q��
��	�'�/G�w�����L��:�A�N�+V���"����њ5��4�P�m�|����;a�����Ҝ����"�1�G�b�z�0��./�0!�
R�`�v���
����
ʞ$՞$��� 0�Q�@`�D�����"�<�"[�~�����@�����#�4�D�S�/f�,��áݡ���0�1K�1}���Ģ٢��-�=�]�r�������ѣ3�3�Q�n�������ɤ
�����&�9�
Q�$_��� ����ɥ;��,�#9�	]�g�������
����Ϧ���	�&�.�6�!H�j�y��������� ��,�F�f�o�x�
����6��Ҩ��!'�I�
Q�_�	l�v�������&��	ө"ݩ*�+�
C�Q�W�c�p���
��
����
����ͪߪ�5�<�-N�1|�&��ի���'�;�P�k�$}���
����Ѭ����$�7�K�[�s�����������ͭ
ݭ����
��.�7>�v���������������Ю=Ԯ2�E�N�T�]�'n�-��2į���?-�m���+��ư	հ߰���-0�$^���
������ұޱ?��5�2D�!w�%��@��9�E:�9��C��K��IJ�H��;ݴ6�8P�3��<��4��-/�6]���%��Զ����1�&A�,h�#��4�� �@�-P�0~�:��;�&�"F�i�>z�)��>�<"�_�k�#��:��'�9�L�$e�9��4Ļ;�� 5�>V�1��/Ǽ��-�B�.Q�B��"ý2�4�*N�y�+��%þ'�(�<:�Ew�.��-�$�?�<X���*��&� �4"�W�h�z��������������

��!�")�L�X�g������)����$���)�1�J�1c�?�����������!�7�R�e�X~�%������:�S�l���������$����!��!�?�E�U�Y�w�"��$����#�� �'�6�F�f�x��� ����4���	1�;�
H�
V�.a���-����-��$$�.I�x�.������
��O��OD�
��C��	������!�3�9�W�3\�2��!��(��� '�"H�Ek���%��#��-�F�d���&����������7�'O�w�)��+��@��-)�W�5t���������/�9C�}�E����-��7)�#a� ��:��5��&�">�&a�$��#��!��=��51� g�(��7��.��,�E�a�v��� ��#��&���&�>�Y�w�������0��$�!A� c�(��4��,���+�>�T�l� ������1���!(�%J�%p�!��%����$�� �=�Y�?t�&��#����
�A)�%k�"��"��9��'�(9�2b�*��!��!��)�%.�!T�4v�:��&��;
�;I�)��0�������4�F�#_�!��8��&��#�)� A�/b�"����-������/6�*f�(��#�������2�N�>j�������"���6�L�h�#���9��1��1*�)\�1��%��7���A0�?r�������!��!�=�X�4w�$��)��N��,J�&w�L������80�i����#��7��N�d�����$��!��3��,3�2`�%����"����#�9�X�u���B����0�!=� _�<��+����	�+�2J�$}���,����H�,Q�~���"�������2�Q�9p�������0��#'�'K�s���,��&����
�+�2H�-{�(����"��'�'6�,^���.����#��,�WB�)��"��,��%�:� W�x�2��2��2��*�!G�i���2��5��'�#(�)L�3v�$��%����,�A�a�$y�&�� �'�*�#9�']�%����3�!��!�+@�l�*��-��$�
�)�H�d�w� �� ��$�$��)�H�`�,v�����%���=�W�s�����'���$%�#J�0n�.��0����<�W�o�����-�� ��7�)S�}�$��(����%�$7�\�{���'���'� ;Sm �7�0�#.R"r(�!��-�1,6^5��.�*1@9r�*�&�+,J+w4�<�*@Vn������"8Kb}����
$@Tp�:�=�<6U<��"�	+	)F	4p	5�	4�	3
D
0V
 �
�
D�
P%Qw����6!Tv�����	
'&
N
a
!�
�
�
"�
�
1BYv"�����&9Rg������#=*\)��� ��*6C#z�)�&�KW j�����%"?&b#���+�%795q��,�&A)W �����	%D`0x����4.P$)�1�;<.L*{�$��%,,Y%j���&�-&/V r�+� ��?
)Mw6�#�2�9>Y8�1�)!)K u)��)�*"0S#l"�"�)� %> d$���!�0	 : S n � "� !� 9� 8%!/^!�!�!�!+�!%"1+")]"�"�"'�"%�"#&#!A#%c#'�#%�#'�#-�#2-$`$u$$�$�$�$�$"
%-%M%!m%1�%&�%�%!&!'&I&(^&�&�&+�&8�&&'7E'E}'�'�'(�'0(#I(m($�(�(#�(*�()+)>)0X)2�)0�)�)+
*)6*$`*/�*�*�*'�*)+,1+^+ |+�+�+-�+,,-,/F,+v,'�,!�, �,0
->-!V-,x-�-�-(�-�-.0%..V.�.1�.&�.:�.9/9V/:�/�/�/0#0*A0l03�0�0%�02�0011!b1;�1R�12*22]2v2(�2�2+�2+3.3 I3"j3%�3 �3+�3"4+#4O4.o44�4I�4)5)G56q56�5-�5(
6/66&f6<�6)�6*�6797P7*o7�7�70�7/8!58*W8�8�8$�8#�8#9'9F9/f9�9!�9%�9"�9.!:$P:&u:T�:#�:";$8; ];~;�;#�;]�; ><B_<'�<�</�<2=,J="w=�=&�=(�=%>*>I>g>E�>!�> �>7
?E?%[?�?'�?�?'�?@.@<D@�@"�@'�@�@A+AIA(cA!�A�A7�A!B%'B/MB!}B�B'�B�B)C;0ClC)�C&�C�C�C'D:D	BDLDdDsD�D�D#�D	�D�D�DE.%ETE.kE6�E�E�E6�E#"F
FF&QF	xF�F�F�F�F�F �F%	G!/G
QG\G(rG�G+�Ga�GBHQHWH(^H
�H	�H%�H
�H�H&�H&I9I(VII	�I�I	�I�I�I�I�IJ	!J2+J*^J�J�J�J�J�J
KK	 K*K6K#BK(fK�K�K	�K�K�K�K	L2LDLPLoL�L�L�L$�L�L/�L#M+M'.MVMlM
�M$�M�M�M�M�M�M	NN!,NNNmN(vN�N'�N�N�N�N�NO O#@OdOwO�O.�O
�O�O	�O�OP)P?P'ZP�P�P
�P�P�P�P�P�PQ2QHQ`QvQ�Q9�Q9�Q#R:RBROR
[RiR(�R�R�R�R�R
�R	�R�RS*SESTS9aS
�S�S�S�S�S&	T0TOTnT�T	�T�T�T�T
�T�T)�T&UFU\UFxU�U�U�U�UVV(VGVaV~V�V�V�V�V�V0�V;"W>^W�W�W�W1�W"X>XBX\XA|X)�X=�X&Y(CYlYtY$�Y0�Y�Y�Y�Y+Z20ZcZxZ�Z�Z�Z	�Z�Z��Zo[F�[�[
�[	�[
�[�[+\:\%P\0v\B�\(�\]1/]+a]*�]&�]9�]M^>g^)�^5�^A_4H_$}_*�_A�_A`&Q`6x`�`<�`<�`?1a7qa/�a �a"�ab22b0eb�b�b�b�b�bc)cHc^c2xc)�c+�c,d-.d \d!}d#�d�d�d�d�d�de	(e2e;eJeQele�e�e�e
�e
�e�e	�e�e�ef	f"f
2f@f
Ef	Sf]f	ifsf�f
�f�f&�f�f�f�f�f
�f�f
ggg!g(g,g2g8gGg9Mg"�g$�g"�g)�gh+h2hLhchuhyh1�h
�h$�h"�hi<6isi'�i!�i�i�i�i
j,jH9jC�j�j�j�jk"k=kDkLkRkZkkk�k �k#�k-�k-	l7lIlel�l�l�l�l=�lm"m
7m$Emjm$|m�m�m�m�m�mnn-nBn
]nkn}n�n�n
�n�n�n�n�noo/-o]o
lo zo �o�o
�o�o�o�op&pFp	^php�p�p�p�p�p�p�p�p�p#q1$q1Vq1�q1�q�q�q	�q
r(r<rOrRrirzr
�r�r
�r�r�r'�r s3sIs`s	{s�s"�s�s�s$�s$t(t/tAtJt
Ztht~t�t�t�t�t�t.�t.u.Ju.yu.�u.�u.v.5v dv�v�v�v�v�v�v"�v)w)5w_w	hwrw�w�w�w�w�w�w�w		xx$x9xMxbx3ox)�x�y
�y�y�y7
z8Bz{z�z�zm�z>>|}|�|+�|%�|5�|}0}BC}$�}�}&�}�}~~Qn��������7�Q�/h�)��/€,��&,�S�&j�0��!
�$�$�9� M�
n�R|�[ς+�?�"_���"��Ń�
�\��-\�������
��"DŽE�00�)a�$������7ӅA�BM�������ֆ6�*�H�a�{���!��!·2�/#�S�q�!����Έ߈���! �B�S�%f���,��̉ ܉��!�C7�{���$��ʊ!ڊ���'�4�A�]�q�%��%��	͋
׋
�����*�B�^�f�
��
������ь�
��
�"�4�HF�������!܍
��	��
-�;�	W�a�f�(k���4��*ڎ��,�4�@�M�d�l�{���
��������>ΏE
�S�;p�9��3��6�J�#a�#��,��/֑�A�`�	t�~�����’Ӓ���/�G�	X�b�s������� ��ד
��"�!#�-E�+s�@����
�
�
�
*�5�"K�
n�ey�Zߕ
:�
H�S� i�D��-ϖD��&B�i�c��%��3#�W�p�&|�!�� Ř5�3�#P�	t�~���
����?ʙ
�7�1O�?��I��=�GI�@��Hқ]�Qy�M˜A�J[�F��:�A(�=j�0��:ٞ�1�N�d�}�����,ȟ.��4$�DY�,��Iˠ6�.L�>{�F��$�(&�O�?b�2��Fբ;�	X�&b�%��3��0�B�W�.w�K��;�<.�%k�F��Dإ1�'O�7w���1ŦD��-<�7j�7��=ڧ4�:M�!��-��(بA�JC�A��+Щ+��(�FH�"��*��/ݪ&
�=4�$r�$��.����	��+�:�K�Z�
s�����B��۬�%��%�-E�&s�1��̭+խ��!"�!D�7f�Y����
��&$�K�b�'�� ��0ɯi��%d���'��*��'�'�$4�$Y�
~�����1��ޱ4�!'�I�N�^�0e���$��*ղ �<!�^�e�t�+����#ȳ�(�*5�Q`���
Ĵ
ϴڴ�.��$�/?�)o�9��7ӵ3�,?�:l�����
϶pݶpN���Eη��(�#@�d�i�	��9��8ʸ#�''�O�$h�9��cǹ,+�0X�2��K���  �$A�/f�����ʻ���>:�y�/��(ļ>�:,�g�K��ӽ��"&�MI�D��&ܾf�j�C��?ɿ2	�:<�Mw�8�9��58�:n�6��8�1�RK�E��9��<�=[�=��5��=
�K� a���3��3��=�@�!Y�{�!��!������.�IH�1��<��5�27�Lj�D��:��7�M�b���A��/��/�FA�&����<��$
�(/�,X�'��%��!�����D.�/s�3��)���V�@e���5��?��?<�2|�B��3��+&�7R�6��6��=��L6�G��5��@�EB�@��A��.�:�V�/o���?��(��L!�2n�#��!��.��H�9_���:����#�*�0>�0o�)��)����'�8<�(u�&��Z��- �N�l�6��,����"�"&�2I�(|�G��P��P>�F��@��6�EN�"��A��\��V�q�/��,�� ��.
�09�Rj�6��%��y�B��2��v
�������V���/�!I�1k�U��f��(Z�+��*��4��3�?C�A��F��=�,J�Jw�.��J��+<�-h�-��-��K��/>�?n�7��5��M�8j�4��%��=��1<�/n�&��T��"�Y=�?��)��!�0#�#T�%x�%��%��1��P�"m�(��4��L��1;�@m���:��E��6<�s�"��F��H��B?�B��+��D��?6�Gv�N�� 
�6.�&e�"��2��o��?R�7��M��E�-^�-��"��D��D"�Dg�3��)��
�%�;;�=w�:��+��E�Ib�-��@�� � <�,]�6��'��:��<$�+a�G��D��=�HX�*��<�Z	�)d�,��C��$��7$�4\�2��+�'�'�@�P�4k�4��=�:�7N�%����/���2�5C�!y�E�� �$�'�7<�>t�!��1�)�;1�3m�0��B�!�$7�\�z���%���9�(,�U�Np�C��%�1)�<[�3���;�95U#�.�9�,8E"~$���'I*Et.�&�17B=z/�(�AOST�S�)LQv1�Q�BL$�5�A�G,5t7�:�@>^%��"�		1	L	$c	 �	�	)�	�	)
*/
5Z
'�
*�
+�
)'9/a�&�)�$�N"MqO�I
TY
.�
7�
"B8E{H�>
OIK��K2Q"�L�Z�7O&�&�0�)G3g(�"�+�,@](z�,�;�)2@9s1� �"#DC,���'�!-2O.����%?Vs�*��#�&,E@r?��
$'Lk}Q�1�#I?+�s�)'@&h0�&�%�'
(5*^8�8�5�1,K3x1�:�8)R)|P��*>,X ��1�(�' ,G 0t )� +� =� 9!Q!5p!$�!D�!A"<R"1�"P�"]#p#<�#>�#(�#6%$)\$5�$A�$�$-%(=%f%*�%4�%C�%0$&U&Gr&#�&P�&-/'!]'G'B�'2
(5=(5s(B�(>�(Y+)N�)E�)!*)<* f*6�**�*,�*.+.E+/t+�+*�+%�+%
,63,j,&�,3�,%�,)-+5-a- �-C�-�-#.%.@.0].!�.<�.8�.*&/0Q/(�/�/F�/C09F03�0�0#�0%�0.1 K15l1!�1%�1'�1%2&82C_24�2�2&�2$3$63-[3!�3'�30�304'54?]4+�4!�44�4$ 5%E5@k5�5'�5K�5A>6�67�6^�667%G78m7>�7)�78.+8Z8=w8-�8�8�8,97J9:�90�9:�9/):3Y:0�:@�:"�:";0@;7q;3�;*�;'<0<(K<*t<.�<)�<0�<5)=#_=$�=.�=E�=)>6G>;~>�>�>2�>&???9Z??�?-�?B@,E@Er@0�@W�@EAA"�A0�A�A"�A+B,JBFwB�B5�B8CAGC,�C5�Cx�C-eD*�D*�D,�D5ELEChE;�E%�E)F!8F3ZF1�F4�F#�F6G0PGD�G]�G^$H2�H2�HO�HO9I6�I4�ID�I7:JPrJ7�J4�J0K0JK0{K6�K-�K#L>5L@tL!�L4�L%M32M-fM,�M,�M1�M6 NAWN6�N�N0�N1 O9RO-�OA�O}�OAzP�P,�P3	Q2=Q0pQ6�Q~�Q#WRm{R*�R*SC?S=�S,�S!�S#T94T=nT4�T0�T0U/CUZsU4�U3VJ7V&�V7�V-�V0W&@W<gW#�W�WG�W#.X.RX3�X"�X�X8�X/1Y>aY,�Y�Y:�Y)&Z1PZ9�Z!�Z-�Z@[,M[:z[J�[(\7)\:a\$�\+�\1�\](]9]X]m] �]!�])�]
�]^ ^6^GJ^�^M�^P�^O_V_Gm_�_
�_5�_``.`C`X`j`*w`/�`'�`�`a3a-IaHwao�a0bPb	Wb<ab�b
�b2�b�b,c+3c._c0�c5�c�c	dd)d5d"=d"`d8�d�d
�dL�dF/e5ve�e'�e�e
f
"f-f?fLfUf+kf0�f�f
�f�f!�f2gPg	dg2ng�g%�g0�ghh!h:6h,qhA�h�h	�h<�h!/i-QiiC�i �i!j &j#Gjkj�j#�j+�j2�j
'k=5ksk'�k�k�k
�k
�k.�k>#l;bl�l-�l�lE�l
2m@m[m.jm!�m�m�m:�m -n
Nn\n kn�n�n�n!�n�n o-/o]o,xo�oM�oUpip	�p�p�p�p&�pA�p3qNqiq
}q
�q
�q)�q�q�qrrQ)r{r�r"�r�r�r?s>Bs>�s>�s �s	 t*tHt\ttt�tA�tF�t"u=unVu�u"�uv
v v,v4<v(qv#�v�v�v�v.w+2w^w8mwA�wC�w),xVx*rxE�x(�x	yy)y]Iy4�yH�y%z2Bzuz|z'�z5�z
�z{#{6+{Pb{*�{�{�{||
+|"6|�Y|}e}
�}�}
�}�}!�}C�}% ~/F~/v~T�~+�~&'?N?�5�;�N@�a��N�4@�Cu�S��F
�&T�6{�S��S�0Z�5����RȃR�Zn�HɄ-�.@�Co���Eȅ:�I�%`�(����!Ć�"�(�&C�6j�-��/χ0��10�/b�!��9��+�%�@�D�H�f�r������� ��ԉ���+�8�E�Q�,a�������ˊ݊���	
��0�L�\�e�u�,~�����ɋϋ׋���
�
�
%�
0�
;�F�S�[Y�3��:�0$�(U�~�������ƍ��=��;�.L�8{�,��G�)�3H�-|���$ɏ.�.�L�TY�Y���)'�,Q�!~�����‘ʑ
ёܑ+�!�1:�2l�3��3Ӓ�(�+@�l�|� ����Rɓ(�
E�S�=d���4��'�+�,;�h�t�#|�����(Ǖ���+�=�	P�
Z�h�u�������ƖBޖ!�@�3`�4��ɗ	����*�46�!k�	��*��*˜+��4�A�&N�u�~���)��L��J
�KX�G�����	��
�1�!E�	g�q�$����Л.�
�"�#A�,e������	�
�$�?�
P�(^�(����'��	ߝ
� ��!�2:�"m���������DȞD
�DR�D��AܟF�>e�D��1�%�
A�O�V�l�}�8��4ˡ7�8�
=�*H�s�����
��	����	̢֢ۢ�����1"�V�����D���Ch�h��L���&����0�	��A�_�*�������r��5i)7�du
���n-�/��]��!�8�y��=��& y�#����'���J��Pv�:	7Z
H>��Uo�X��m|����Bhv��W��HWQ���c�6��S;e �!�?��sq2�x���� �"j4��.��N4g)w����y��\85w^��^V�U��E�����"���O�J	���C��]��L��TW��<���<vK�������4�Lm�uA\�P��ta�����=#j��`:�#����~��cp��r��������s��(��n���$��}lr!�GqVy������^TuKO[�-�?}�����C���/��+D�{���[��/;>�6(3�bv�"��/�p�m��k�0_�^S�.�Qa���PI�N ��XZi�����"\V�����]�
��O��F���%�a�@������������	5���ek!��o.�h����qm����f��1FT�aSa�����1��Q�q+37��4��*%���oax��/�<�F�����p����q�h�{7�pY���J���%2 3^���[�dH-u;�M8�=+JX
��,�
��E�	�����b�����G8�|����������JnH�G!�De7���g��t+%��z�xu��$��iR\1@=����>[rW`�]:�MOPctZM���j�{��j aE�6���gJ��Y8lC��O�`���i��&������J���P*R���������9z,AS#�0���	>�LdjC��R�W����B4�����	=�����<(nwf�����_<����0�l-�4*�G9��������2d��KX,�I����~e�U��W2l}v�����>��2A[�
F&�����l��z~n��6T���R�}��+���s�TI����]�k���B���.�E�k�P~����NZ�,�������$�C�B�}��o��p#:(�3q�k�d!��Uc�m���?I�@;�G�Hz�3=���"�%)������0�����7��~���t�������b���5@��c9�5��}Ad/,.�<��M�j�%��{�<G����n����{N9`����X��t
�A�N_$�\������0�d�,�M.��L�5��Z9m��*Y>���g�)��u�UwZz"b��1�X8�K�')f�?����\fD;6Y�[x��sr�g��'lo������2�K��7���DBE��k�`�j�����I{���
�'�p����E�b��t�)����
�@%��������O���n�G���������(_~���0����N�������5�MQ��o��we|��q2�x��t��9�T��?v�c�Z
]��ys�m������x��
�fOux��-(~#BA\��]V#�L����S�}���[��
�&b����������'�gU��bF)�;X�8M��Fw�Y$I��(	c���1�H�@������osw^P��:|;����$|e��R��zp_�*SVI���>��������L�F
�@���+���-�Wr�Q�i�6&`�:���f�Y��3��
Q i������1��,�*��iQ�������K
�`���&h��N�CD�z��s��U���-9�k�y?�����!�v�_���"R�|���E�������+|3��T��g?���.�����'r{h��=1����l/4���
Sf��'R^BV������eYH�$D6��y:K
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

You may want to delete the .swp file now.


enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in line %ld; info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv)-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Could not open temporary log file for writing Cscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE846: Key code not setE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE855: Autocommands caused command to abortE85: There is no listed bufferE862: Cannot use g: hereE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE872: (NFA regexp) Too many '('E877: (NFA regexp) Invalid character class: %ldE879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:Garbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)QuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelectionSending to printer...Show connectionsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror handlerexpressions disabled at compile timeextend() argumentfailed to add key '%s' to dictionaryfailed to change directoryfailed to rename bufferfailed to run function %sfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhelphidden optionin path ---
insert() argumentinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist index out of rangelist is lockedlogoffmap() argumentmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command linereadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim listunable to get option valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-12 14:52+0900
PO-Revision-Date: 2017-07-12 18:56+0900
Last-Translator: SungHyun Nam <goweol@gmail.com>
Language-Team: GTP Korean
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

	Last set from 

인자:


사용법:
          수정: 
         [이 컴퓨터에서는 사용할 수 없음]
         [빔 이번 판에서는 사용할 수 없음]
         호스트 이름: 
         사용자 이름: 
        프로세스 ID: 
       a: 이 기호에 대한 할당 찾기
       c: 이 함수를 부르는 함수들 찾기
       d: 이 함수에 의해 불려지는 함수들 찾기
       e: 이 egrep 패턴 찾기
       f: 이 파일 찾기
       g: 이 정의 찾기
       i: 이 파일을 #include하는 파일들 찾기
       s: 이 C 기호 찾기
       t: 이 문자열 찾기

    이름        인자       주소      완성      정의
   #   줄
   혹은:
  # TO tag         FROM line  in file/text
 점프 라인  col 파일/텍스트
# %s 히스토리 (새것부터 오래된 것 순):

# 버퍼 목록:

# 파일 마크:

# 파일내의 마크 히스토리 (새것부터 오래된 순):

# 점프목록 (새것이 먼저):

# Last %sSearch Pattern:
~
# 마지막으로 바꾼 문자열:
$
# 레지스터:

# 전역 변수:

(1) 다른 프로그램이 같은 파일을 고치고 있는중일 수 있습니다.
    만약 그렇다면 같은 파일을 두 개의 프로그램에서 고치지 않도록
    조심하시기 바랍니다. 종료하세요. 계속하시려면 주의하세요.

(어쩌면 다른 이름으로 저장하고 싶으실 지도 모르겠습니다

--- 자동-명령 ---
--- 전역 옵션 값 ---
--- 지역 옵션 값 ---
--- 메뉴 ---
--- 옵션 ---
--- 레지스터 ---
--- 기호 ---
--- Syntax 항목 ---
--- Syntax sync 항목들 ---
--- 터미널 코드 ---
--- 터미널 키 ---
gvim이 알고 있는 인자 (아테나 판):

gvim이 알고있는 인자 (GTK+ 판):

gvim이 알고 있는 인자 (모티프 판):

gvim이 알고 있는 인자 (neXtaw 판):

Big 버젼 
파이프를 만들 수 없습니다

Cannot execute shell 
쉘 sh를 실행할 수 없습니다

자식 프로세스를 만들 수 없습니다

명령이 끝마쳐졌습니다

Compiled 
Could not get security context for 
Could not set security context for 
별도의 패치: 
Found a swap file by the name "
Huge 버젼 
새로운 암호 키를 입력했는 데, 파일을 저장하지 않았었다면,
암호 키를 바꾼 후에 파일을 저장했었다면 같은 키로 텍스트 파일과
포함된 패치: 
MS-Windows 32비트 GUI 버젼
MS-Windows 32비트 콘솔 버젼
MS-Windows 64비트 GUI 버젼
MS-Windows 64비트 콘솔 버젼
MacOS X (유닉스) 버젼
MacOS X 버젼
MacOS 버젼
어떤 수정도 없었거나 빔이 스왑 파일을 갱신하지 않은 것 같습니다.
더 많은 정보를 원하시면: "vim -h"

Normal 버젼 
OpenVMS 버젼
Small 버젼 
Tiny 버젼 
빔: X 에러가 생겼습니다

경고: 원래 파일이 없어졌거나 깨졌을 수 있습니다

이제 .swp 파일을 지우셔도 됩니다.


새로운 암호 키를 입력하세요.
마크 라인  col 파일/텍스트
shell returned 
syncing on items
스왑파일을 저장하려면 엔터를 누르세요                          Vim이 기본값으로 동작합니다                          두 모드를 사용할 수 있습니다              날짜:           소유자:          [열 수 없음]         [읽을 수 없음]         [빔 스왑 파일로 보이지 않습니다]         [빔 3.0 판의 것]         파일 이름:        defaults 파일: "      -- 없음 --
      NEWER than swap file!
         사용자 exrc 파일: "        사용자 vimrc 파일: "    만약 그렇다면 ":recover" 혹은 "vim -r     이미 복구하셨었다면 스왑파일 "    줄=%ld  id=%d  이름=%s    시스템 메뉴 파일: "       사용자 gvimrc 파일: "   현재 디렉토리에:
   In directory    명시된 이름을 사용:
   날짜:   호스트 이름:         시스템 vimrc 파일: "  # pri kind tag  (Already listed)  사용자 두 번째 exrc 파일: "  디버그 빌드  기능 (+: 포함됨, -: 포함 안 됨):
  못 찾았음  Using tag with different case!  fall-back for $VIM: "       시스템 gvimrc 파일: " # pid    데이터베이스 이름                   prepend path
 (중단되었습니다) (못 찾았음) (이전에 맞았던 목록 포함) (끼워넣기) (끼워넣기) 스크롤 (^E/^Y) (줄을 지웠음) (지원되지 않음) (붙이기) (바꾸기) (바꿈) 스크롤 (^E/^Y) (아직 실행중) (선택치환) 사용자 두 번째 vimrc 파일: " 사용자 세 번째 vimrc 파일: " < "%.*s" 더하기 아라비아 변환 에러 명령행 완성 (^V^N^P) 복사 %d / %d 정의 완성 (^D^N^P) Dictionary 완성 (^K^N^P) 실패 파일 이름 완성 (^F^N^P) 헤브루 끼워넣기 낱말 로컬 완성 (^N^P) 낱말 완성 (^N^P) Omni 완성 (^O^N^P) 경로 패턴 완성 (^N^P) 바꾸기 반대 고르기 블록 고르기 라인 고르기 SPACE/d/j: 화면/페이지/라인 아래로, b/u/k: 위로, q: 종료  단어 제안 (s^N^P) 태그 완성 (^]^N^P) 백과사전 완성 (^T^N^P) 사용자 정의 완성 (^U^N^P) 비주얼 비주얼 블록 비주얼 라인 선택치환 전체 줄 완성 (^L^N^P) [바뀜] [a] [w] ^X 모드 (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) 더했습니다 이 컴퓨터에서는 사용될 수 없습니다.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: "%ld 줄에서; 인포 kind file
 line breaks lines before top line 마크 %ld 줄에서 한 줄에서 or more returned
 vim [인자]  OLE 지원 저장 했습니다"
    을(를) 지우셔야 이 메시지가 사라집니다.
"
    을 사용하여 복구하십시오 (":help recovery" 참고).
"이 이미 존재합니다!# 이 viminfo 파일은 빔이 만든 것입니다 Vim %s.
# 이 파일이 저장되었을 때의 'encoding'의 값
# 조심만 한다면 고칠 수도 있습니다!

%-5s: %s%*s (사용법: %s)%3d  %s %s  %ld 줄%<%f%h%m%=페이지 %N버퍼 %d 개가 지워졌습니다버퍼 %d 개가 내려졌습니다버퍼 %d개가 완전히 지워졌습니다%d개의 중복된 단어가 %s에 있습니다%d 파일을 고치기
고칠 파일이 %d 개 더 있습니다. 그래도 끝낼까요?%ld %s; %s #%ld  %s%ld 열; %ld 보다 적은 줄%ld lines %sed %d times%ld lines %sed 1 time%ld 줄 --%d%%--%ld lines changed%ld 줄을 걸렀습니다%ld lines indented %ld 줄 옮겨졌습니다%ld lines to indent... %ld lines yanked%ld 줄, %ld개 찾아짐%ld 보다 많은 줄%ld seconds ago%ld개 바꿨음%lld 글자%s이(가) 중지되었습니다%s이(가) 버려졌습니다%s 줄 %ld%s이(가) pending 되었습니다%s이(가) 재개 되었습니다%s이(가) #%ld을(를) 돌려주었습니다%s이(가) %s을(를) 돌려주었습니다%s 값이 다른 .aff 파일에서 사용된 것과 다릅니다%s, %ld 줄%sviminfo: 줄에 %s: 취소(&C)거르개(&F)도움말(&H)확인(&O)확인(&O)
취소(&C)확인(&O)
파일 불러오기(&L)확인(&O)읽기 전용으로 열기(&O)
무조건 편집(&E)
복구(&R)
삭제(&D)
끝내기(&Q)
버리기(&A)읽기 전용으로 열기(&O)
그냥 고치기(&E)
복구(&R)
끝내기(&Q)
버리기(&A)바꾸기(&R)취소(&U)예(&Y)
아니오(&N)예(&Y)
아니오(&N)
취소(&C)예(&Y)
아니오(&N)
모두 저장(&A)
모두 버림(&D)
취소(&C)' not known. Available builtin terminals are:'-nb'는 사용할 수 없음: 컴파일할 때 포함되지 않음
'dictionary' 옵션이 비었습니다'history' 옵션이 0입니다'readonly' 옵션이 "%s"에 대해 설정되어 있습니다.
그래도 쓰기를 원하십니까?'thesaurus' 옵션이 비었습니다(%d of %d)%s%s: (2) 이 파일을 고치다가 죽었었습니다.
(중단되었습니다) (비정상)(NFA) %s을(를) 열 수 없습니다!+			파일 마지막에서 시작+<lnum>		<lnum> 줄에서 시작+reverse		반전 비디오 사용 안 함 (also: +rv)-               표준입력에서 텍스트 읽기--			이 뒤에는 파일 이름만-- 더 ---- 찾는 중...--- Included files --지워짐----버퍼에 줄 없음----cmd <명령>	vimrc 파일을 읽기 전에 <명령>을 실행--cmd 인자--echo-wid		표준출력에 gvim의 Window ID를 표시--literal		와일드카드를 확장하지 않음--noplugin		플러그인 스크립트를 불러들이지 않음--not-a-term		터미널에 입출력할 수 없다는 경고하지 않음--remote <files>	가능하면 빔 서버에서 <files> 편집--remote-expr <expr>	빔 서버에서 <expr> 실행하고 결과 출력--remote-send <keys>	빔 서버로 <keys>를 보내고 끝내기--remote-silent <files>  같음, 서버가 없다고 불평하지 않음--remote-tab[-wait][-silent] <files>  --remote와 같지만 파일별로 탭 페이지 사용--remote-wait <files>  --remote와 같지만 다 고칠 때까지 기다립니다--remote-wait-silent <files>  같음, 서버가 없다고 불평하지 않음--role <role>	메인 창 구분을 위해 유일한 역할 설정--serverlist		사용 가능한 빔 서버 이름을 표시하고 끝내기--servername <name>	빔 서버 <name>이 되거나 서버로 보내기--socketid <xid>	빔을 다른 GTK 위젯 안에서 열음--startuptime <file>	startup timing 메시지를 <file>에 저장--ttyfail		터미널에 입출력할 수 없는 경우 종료--version		판 정보를 출력한 뒤 끝내기--windowid <HWND>	다른 win32 위젯 안에서 Vim 열기-A			Arabic 모드로 시작-C			Vi 호환: 'compatible'-D			디버깅 모드-E			향상된 Ex 모드-F			Farsi 모드로 시작-H			Hebrew 모드로 시작-L			-r과 같음-M			텍스트 수정이 허용되지 않음-N			Vi와 호환되지 않음: 'nocompatible'-O[N]		-o와 같지만 창을 수직으로 나누기-P <parent title>	Vim을 부모 응용 프로그램 내에서 열기-R			읽기 전용 모드 ("view"와 같음)-S <세션>		첫째 파일을 읽은 뒤 <세션> 파일 불러 들이기-T <terminal>	터미널 종류를 <terminal>로 설정-U <gvimrc>		.gvimrc 대신 <gvimrc>를 사용-V[N][fname]		Be verbose [level N] [fname에 메시지 저장]-W <scriptout>	모든 입력된 명령을 <scriptout> 파일에 저장-X			X 서버에 연결하지 않음-Z			제한된 모드 ("rvim"과 같음)-b			이진 상태-background <color>	바탕 색으로 <color> 사용 (also: -bg)-boldfont <font>	굵은 텍스트에 <font> 사용-borderwidth <width>	가장자리 넓이에 <width> 사용 (also: -bw)-c <명령>		첫째 파일을 읽은 뒤 <명령>을 실행-c 인자-d			Diff 모드 ("vimdiff"와 같음)-dev <장치>		I/O에 <장치> 사용-display <display>	빔을 특정 X-서버와 연결-display <display>	빔을 <display>에서 실행-display <display>	빔을 <display>에서 실행 (also: --display)-e			Ex 모드 ("ex"와 같음)-f			창을 열 때 newcli 사용하지 않음-f 혹은 --nofork	포그라운드: GUI로 시작할 때 fork하지 말 것-font <font>		일반 텍스트에 <font> 사용 (also: -fn)-foreground <color>	일반 색에 <color> 사용 (also: -fg)-g			GUI로 실행 ("gvim"과 같음)-geometry <geom>	초기 지오미트리에 <geom> 사용 (also: -geom)-h 혹은 --help	도움말(이 메시지)을 출력한 뒤 끝내기-i <viminfo>		.viminfo 대신 <viminfo>를 사용-iconic		아이콘 상태로 빔 시작-italicfont <font>	기울임 텍스트에 <font> 사용-l			리스프 상태-m			수정(파일 쓰기)이 허용되지 않음-menuheight <height>	메뉴바 높이에 <height> 사용 (also: -mh)-n			스왑 파일 없이 메모리만 사용-o[N]		N개의 창 열기 (기본: 파일별로 하나)-p[N]		N개의 탭 열기 (기본: 파일별로 하나)-q [에러파일]   첫 번째 에러가 난 파일 고치기-r			스왑 파일 목록을 표시한 뒤 끝내기-r (파일 이름과 함께)	파손되었던 세션 복구-register		이 gvim OLE에 등록-reverse		반전 비디오 사용 (also: -rv)-s			조용한 (배치) 모드 ("ex"만)-s <scriptin>	<scriptin> 파일에서 Normal 상태 명령 읽기-scrollbarwidth <width>  스크롤바 넓이에 <width> 사용 (also: -sw)-t tag          태그가 정의된 위치에서 파일 고치기-u <vimrc>		.vimrc 대신 <vimrc>를 사용-unregister		gvim을 OLE에서 등록취소-v			Vi 모드 ("vi"와 같음)-w <scriptout>	모든 입력된 명령을 <scriptout> 파일에 추가-x			암호화된 파일 고치기-xrm <resource>	명시된 리소스 설정-y			쉬운 모드 ("evim"과 같음, modeless)%s 라인 %d의 / 라인 무시됨: %s%s 라인 %d의 단어 뒤의 /encoding= 라인 무시됨: %s버퍼 한 개가 지워졌습니다버퍼 한 개가 내려졌습니다버퍼 한 개가 완전히 지워졌습니다1 글자1 line %sed %d times1 line %sed 1 time1 줄 --%d%%--1 line changed1 line indented 한 줄 이하1 줄 옮겨졌습니다1 line yanked1 줄, 1개 찾아짐고칠 파일이 한 개 더 있습니다. 그래도 끝낼까요?한 줄 이상1개 바꿨음사용자 두 번째 gvimrc 파일: "사용자 세 번째 gvimrc 파일: ": 표현식 보내기가 실패했습니다.
: 보내기가 실패하였습니다.
: 보내기 실패. 로컬에서 실행됩니다
; match <%s>%s%s  %d,  십육진 %02x,  팔진 %03o<열 수 없음> <비어있음>> %d,  십육진 %04x,  팔진 %o> %d,  십육진 %08x,  팔진 %o??? 여기부터 ???끝까지의 줄이 섞였습니다??? 여기부터 ???끝까지의 줄이 끼워지거나 지워져 버린 것 같습니다???구역 잃어버림???빈 구역???끝???줄 번호가 잘못되었습니다???줄을 잃어버림???많은 줄을 잃어버림ANCHOR_BUF_SIZE가 너무 작습니다.새 데이터베이스 더하기cscope 데이터베이스 %s에 더했습니다.%s 라인 %d에 BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST에 대해서도 affix가 사용됨: %sAffix name too long in %s line %d: %s모두모든 cscope 데이터베이스 리셋모든 포함된 파일을 찾았습니다더 이상의 수정은 없었습니다더 이상의 수정이 없었습니다이미 하나의 탭만 있습니다이미 하나의 창만 있습니다파일 추가뒤에 인자가 없음At line스크립트 파일을 다시 열려고 시도: "원래대로 복구반대 영역이 주어졌습니다, 뒤집을까요빔 사용자로 등록하세요!삑!Before byte %ld바닥%s에 SAL과 SOFO 라인이 둘 다 있습니다중지점: "%s%s" %ld 줄%s 라인 %d가 망가진 상태: %sCOMPOUNDSYLMAX이 SYLLABLE없이 사용됨실행하려고 쉘 부름: "%s"변환하기 위한 임시 파일을 찾을 수 없습니다취소Cannot create Cannot execute $VIMRUNTIME/rgb.txt을 열 수 없습니다NIL을 열 수 없음:
"%s" 파일을 열 수 없습니다읽기 위해 열 수 없음: "스크립트 출력을 열 수 없음: "디렉토리는 source할 수 없음: "%s"'undodir'에 있는 어떤 디렉토리에도 undo 파일을 쓸 수 없습니다Change "%.*s" to:탭 닫기명령 행컴파일: 컴파일러: %d/%d 노드가 압축됨; %d (%d%%)가 남음단어 트리 압축중...%s 라인 %d에 있는 단어 변환 실패: %s%s의 변환이 지원되지 않습니다%s의 변환이 지원되지 않습니다: %s에서 %s로'charconvert'를 사용한 변환이 실패했습니다함수 포인터를 DLL로 바꿀 수 없습니다!vim32.dll을 불러 들일 수 없습니다!임시 로그 파일을 쓰기 위해 열 수 없습니다Cscope 태그: %s현재 %s언어: "%s"디버그 행%s 라인 %d에 PFX 뒤에 COMPOUNDFORBIDFLAG을 정의한 것은 잘못된 결과를 초래할 수 있습니다%s 라인 %d에 PFX 뒤에 COMPOUNDPERMITFLAG을 정의한 것은 잘못된 결과를 초래할 수 있습니다빔으로 Diff%s 라인 %d에 연속된 affix 블록에 다른 결합 플래그: %s방향디렉토리디렉토리	*.nothing
정말로 쓰기를 원하십니까끝!변수 목록에 중복된 ;아래로%s 라인 %d의 중복된 /encoding= 라인 무시됨: %s%s 라인 %d의 중복된 /regions= 라인 무시됨: %s%s 라인 %d에 중복된 affix: %s%s 라인 %d의 MAP에 중복된 문자중복된 필드 명: %s%s 라인 %d에 중복된 단어: %sE100: 다른 버퍼중에 diff 상태인 게 없습니다E101: 두개 이상의 버퍼가 diff 상태여서 어떤 것을 써야할 지 알 수 없습니다E102: "%s" 버퍼를 찾을 수 없습니다E103: "%s" 버퍼는 diff 상태가 아닙니다E104: digraph에는 Escape을 쓸 수 없습니다E105: 불러들인 파일에서 :loadkeymap을 사용하지 않았습니다E107: 괄호 없음: %sE108: 이런 변수 없음: "%s"E109: '?' 뒤에 ':'이 없습니다E10: /, ? 혹은 &는 \ 뒤에 와야 합니다E110: ')'가 없습니다E111: ']'이 없습니다E112: 옵션 이름 없음: %sE113: 모르는 옵션: %sE114: 따옴표 없음: %sE115: 따옴표 없음: %sE116: 함수 %s(으)로 잘못된 인자가 넘겨졌습니다E117: 모르는 함수: %sE118: 함수에 너무 많은 인자 넘김: %sE119: 함수에 적은 인자 넘김: %sE11: 명령줄 창에 잘못됨; <CR> 실행, CTRL-C 끝내기E120: 스크립트 콘텍스트 밖에서 <SID> 사용: %sE121: 정의 안 된 변수: %sE122: 함수 %s이(가) 이미 있습니다, 바꾸려면 !을 더하세요E123: 정의 안 된 함수: %sE124: '('가 없음: %sE125: 잘못된 인자: %sE126: :endfunction이 없습니다E127: 함수 %s을(를) 다시 정의할 수 없습니다: 사용중입니다E128: 함수 이름은 대문자 혹은 "s:"로 시작해야 함: %sE129: 함수 이름이 필요합니다E12: 현재 디렉토리 또는 태그 찾기에서 exrc/vimrc에서의 명령은 허용 안 됩니다E130: 모르는 함수: %sE131: 함수 %s을(를) 지울 수 없습니다: 사용중입니다E132: 함수를 부른 깊이가 'maxfuncdepth'보다 큽니다E133: :return이 함수 안에 있지 않습니다E134: 줄을 그 자신으로 이동하려고 했습니다E135: *Filter* 자동명령은 현재 버퍼를 바꾸어서는 안 됩니다E136: viminfo: 너무 많은 에러, 나머지 건너뜀E137: Viminfo 파일의 쓰기 권한이 없습니다: %sE138: Viminfo 파일 %s을(를) 쓸 수 없습니다!E139: 파일이 다른 버퍼에 로딩되어 있습니다E13: 파일이 있습니다 (덮어쓰려면 ! 사용)E140: 버퍼 일부만 쓰려면 !을 사용하십시오E141: 버퍼 %ld의 파일 이름이 없습니다E142: 파일이 써지지 않음: 'write' 옵션에 의해 쓸 수가 없습니다E143: Autocommand가 뜻 밖에 새 버퍼 %s을(를) 지웠습니다E144: 숫자가 아닌 인자가 :z에 주어졌습니다E145: rvim에서는 쉘 명령을 사용할 수 없습니다E146: 정규표현식은 글자로 구분될 수 없습니다E147: :global은 범위로 재귀 호출 될 수 없습니다E148: global에서 정규표현식이 빠졌습니다E149: 미안합니다, %s에 대한 도움말이 없습니다E14: 잘못된 주소E150: 디렉토리가 아님: %sE151: 맞지 않음: %sE152: 쓰기 위한 %s을(를) 열 수 없습니다E153: 읽기 위한 %s을(를) 열 수 없습니다E154: "%s" 태그가 %s/%s 파일에서 중복되었습니다E155: 모르는 sign: %sE156: sign 이름이 없습니다E157: 잘못된 sign ID: %ldE158: 잘못된 버퍼 이름: %sE159: sign 번호가 없습니다E15: 잘못된 표현식: %sE160: 모르는 sign 명령: %sE161: 중지점을 찾을 수 없습니다: %sE162: 버퍼 "%s"에 나중에 바뀐 내용이 써지지 않았습니다E163: 고칠 파일이 하나 밖에 없습니다E164: 첫 번째 파일 이전으로는 갈 수 없습니다E165: 마지막 파일 뒤로는 갈 수 없습니다E166: 쓸 연결된 파일을 열 수 없습니다E167: :scriptencoding이 불러들인 파일 밖에서 사용되었습니다E168: :finish가 불러들인 파일 밖에서 사용되었습니다E169: 명령이 너무 많이 다시 반복되었습니다E16: 잘못된 범위E170: :endfor 누락E170: :endwhile이 없습니다E171: :endif가 없습니다E172: 오로지 하나의 파일 이름만 사용 가능합니다E173: 고칠 파일이 %ld 개 더 있습니다E173: 고칠 파일이 한 개 더 있습니다E174: 명령이 이미 존재합니다: 바꾸려면 !을 더하세요E175: 명시된 속성이 없습니다E176: 잘못된 인자 갯수E177: 카운트는 두 번 이상 명시될 수 없습니다E178: 잘못된 기본 카운트 값E179: -addr에 인자가 필요합니다E179: -complete에 인자가 필요합니다E17: "%s"은(는) 디렉토리입니다E180: 잘못된 주소 형식 값: %sE180: 잘못된 끝내기 값: %sE181: 잘못된 속성: %sE182: 잘못된 명령 이름E183: 사용자 정의 명령은 대문자로 시작해야 합니다E184: 그런 사용자 정의 명령 없음: %sE185: 색 스킴 %s을(를) 찾을 수 없습니다E186: 이전 디렉토리가 없습니다E187: 모름E188: 이 플랫폼에 대한 창 위치 얻는 기능을 구현되지 않았습니다E189: "%s"이(가) 존재합니다 (덮어쓰려면 ! 더하기)E18: ':let'에 모르는 글자E190: 쓰기 위한 "%s"을(를) 열 수 없습니다E191: 인자는 글자나 앞/뒤 인용 부호여야 합니다E192: :normal의 재귀 호출이 너무 많이 생겼습니다E193: :endfunction이 function 내에 없습니다E194: '#'에 대해 치환할 교체 파일 이름이 없습니다E195: 읽을 viminfo 파일을 열 수 없습니다E196: 이 판에는 digraph가 없습니다E197: 언어를 "%s"(으)로 설정할 수 없습니다E198: cmd_pchar가 명령 길이를 벗어났습니다E199: 활성된 창이나 버퍼가 지워졌습니다E19: 마크가 잘못된 줄 번호를 가지고 있습니다E200: *ReadPre 자동명령이 파일을 읽지 못하게 만들었습니다E201: *ReadPre 자동명령은 현재 버퍼를 바꾸면 안 됩니다E202: 변환된 파일을 읽을 수가 없습니다!E203: 쓸 버퍼를 자동명령이 지우거나 닫았습니다E204: Autocommand가 잘못된 방법으로 줄을 바꾸었습니다E205: 패치 상태: 원래 파일을 저장할 수 없습니다E206: 패치 상태: 빈 원래 파일을 만들 수 없습니다E207: 백업 파일을 지울 수 없습니다E208: "%s"에 쓰기 에러E209: "%s" 닫기 에러E20: 마크가 설정되어 있지 않습니다E210: "%s" 읽기 에러E211: 파일 "%s"을(를) 더 이상 사용할 수 없습니다E212: 쓸 파일을 열 수 없습니다E213: 변환할 수 없습니다 (변환 없이 저장하려면 ! 더하기)E214: 쓸 임시 파일을 찾을 수 없습니다E215: * 뒤에 이상한 글자: %sE216: 그런 이벤트 없음: %sE216: 그런 그룹이나 이벤트 없음: %sE217: ALL 이벤트에 대해 자동명령을 실행할 수 없습니다E218: 자동명령이 너무 깊게 중첩되었습니다E219: {가 없습니다.E21: 바꿀 수 없음, 'modifiable'이 꺼져있습니다E220: }가 없습니다.E222: 읽혀진 버퍼에 더하기E223: 재귀 맵핑E224: %s 전역 약어가 이미 존재합니다E225: %s 전역 매핑이 이미 존재합니다E226: %s 약어가 이미 존재합니다E227: %s 매핑이 이미 존재합니다E228: makemap: 이상한 상태E229: GUI를 시작할 수 없습니다E22: 스크립트가 너무 깊게 중첩되었습니다E230: "%s"에서 읽을 수 없습니다E231: 'guifontwide'가 이상합니다E232: 메시지와 콜백 모두를 사용해서는 BalloonEval을 만들 수 없습니다E233: 디스플레이를 열 수 없습니다E234: 모르는 글꼴셋: %sE235: 모르는 글꼴: %sE236: 글꼴 "%s"은(는) 고정넓이가 아닙니다E237: 프린터를 고르지 못했습니다E238: 인쇄 에러: %sE239: 잘못된 sign 텍스트: %sE23: 다른 파일이 없습니다E240: X 서버에 연결되어 있지 않습니다E241: %s(으)로 보낼 수 없습니다E243: 지원되지 않는 인자: "-%s": OLE 판을 사용하십시오.E244: 잘못된 글자셋 이름 "%s"이(가) 글꼴 이름 "%s"에 있습니다E244: 잘못된 퀄러티 이름 "%s"이(가) 글꼴 이름 "%s"에 있습니다E245: 잘못된 글자 '%c'이(가) 글꼴 이름 "%s"에 있습니다E246: FileChangedShell 자동명령이 버퍼를 지웠습니다E247: "%s"은(는) 등록된 서버명이 아닙니다E248: 대상프로그램으로 명령 보내기가 실패했습니다E24: 그런 약어는 없습니다E250: 다음 글자셋의 글꼴이 글꼴셋 %s에 없습니다:E251: 빔 인스턴스 레지스트리 속성이 잘못되어 있습니다. 지웠습니다!E252: 글꼴셋 이름: %sE253: 글꼴셋 이름: %sE254: 색 %s을(를) 할당할 수 없습니다E255: sign 자료를 읽을 수 없습니다E256: 한글 오토마타 에러E257: cstag: 태그를 찾을 수 없습니다E258: 클라이언트로 보낼 수 없습니다E25: GUI는 사용할 수 없습니다: 컴파일 때 포함되지 않았습니다E261: cscope 연결 %s을(를) 찾을 수 없습니다E262: cscope 연결 %ld 읽기 에러E263: 미안합니다, 이 명령은 사용할 수 없습니다, 파이썬 라이브러리를 로딩할 수 없습니다.E264: 파이썬: I/O 객체 초기화중 에러가 생겼습니다E265: $_는 String 인스턴스이어야 합니다E266: 미안합니다, 이 명령은 사용할 수 없습니다, 루비 라이브러리를 로딩할 수 없습니다.E267: 뜻밖의 returnE268: 뜻밖의 nextE269: 뜻밖의 breakE26: Hebrew는 사용할 수 없습니다: 컴파일 때 포함되지 않았습니다
E270: 뜻밖의 redoE272: 처리않된 예외E273: 모르는 longjmp 상태 %dE277: 서버의 응답을 읽을 수 없습니다E27: Farsi는 사용할 수 없습니다: 컴파일 때 포함되지 않았습니다
E280: TCL 심각한 에러: reflist가 깨졌나!? 이 문제를 vim-dev@vim.org로 알려주십시오E282: "%s"에서 읽을 수 없습니다E283: "%s"에 맞는 마크가 없습니다E284: IC 값을 설정할 수 없습니다E285: 입력 콘텍스트를 만들 수 없습니다E286: 입력 방식을 열다가 실패했습니다E287: 경고: IM에 파괴 콜백을 설정할 수 없습니다E288: 입력 방식이 어떤 형식도 지원하지 않습니다E289: 입력 방식이 내 preedit 형식을 지원하지 않습니다E28: 이런 하이라이트 그룹 이름은 없습니다: %sE293: 구역이 잠궈지지 않았습니다E294: 스왑 파일을 읽기 위해 특정 위치로 갈 수 없습니다E295: 스왑 파일을 읽을 수 없습니다E296: 스왑 파일을 쓰기 위해 특정 위치로 갈 수 없습니다E297: 스왑 파일을 쓸 수 없습니다E298: 구역 번호 0을 얻지 못했나요?E298: 구역 번호 1을 얻지 못했나요?E298: 구역 번호 2를 얻지 못했나요?E299: Safe 모듈없이는 sandbox에서 Perl evaluation이 제한됩니다E29: 입력된 텍스트가 아직 없습니다E300: 스왑 파일이 이미 존재합니다 (symlink 공격?)E301: 으윽, 스왑 파일을 잃어버렸습니다!!!E302: 스왑 파일 이름을 바꿀 수 없습니다E303: "%s"의 스왑 파일을 열 수 없어서 복구는 불가능합니다E304: ml_upd_block0(): 구역 0을 얻지 못했나요??E305: %s의 스왑 파일을 찾을 수 없습니다E306: %s을(를) 열 수 없습니다E307: %s은(는) 빔 스왑 파일이 아닌 것 같습니다E308: 경고: 원래 파일이 바뀌었습니다E309: %s의 구역 1을 읽을 수 없습니다E30: 이전 명령 줄이 없습니다E310: 구역 1의 ID가 잘못되었습니다 (%s이(가) .swp 파일이 아닌가?)E311: 복구 중단되었습니다E312: 복구 도중 에러 생겼습니다; ???로 시작하는 줄을 찾아보십시오E313: 보존할 수 없습니다, 스왑 파일이 없습니다E314: 파일 보존을 실패했습니다E315: ml_get: 잘못된 lnum: %ldE316: ml_get: %ld 줄을 찾을 수 없습니다E317: 잘못된 포인터 구역 idE317: 잘못된 포인터 구역 id 2E317: 잘못된 포인터 구역 id 3E317: 잘못된 포인터 구역 id 4E318: 너무 많은 구역이 갱신되었나요?E319: 미안합니다, 그 명령은 현재 판에서 사용할 수 없습니다E31: 그런 맵핑이 없습니다E320: %ld 줄을 찾을 수 없습니다E321: "%s"을(를) 다시 로드할 수 없습니다E322: 줄 번호가 범위를 벗어났습니다: 마지막에서 %ld 만큼E323: 구역 %ld의 줄 갯수가 틀렸습니다E324: 포스트스크립트 출력파일을 열 수 없습니다E325: 주목E326: 너무 많은 스왑 파일이 발견되었습니다E327: 메뉴 항목 경로의 부분이 하위 메뉴가 아닙니다E328: 메뉴가 다른 모드에서만 존재합니다E329: "%s" 메뉴 없음E32: 파일 이름이 없습니다E330: 하위 메뉴 앞에는 메뉴 경로가 붙을 수 없습니다E331: 메뉴바에 곧바로 메뉴 항목을 더할 수는 없습니다E332: 구분자는 메뉴 경로의 부분이 될 수 없습니다E333: 메뉴 항목 앞에는 메뉴 경로가 있어야 합니다E334: 메뉴를 찾을 수 없습니다: %sE335: %s 모드에 대한 메뉴가 정의되어 있지 않습니다E336: 하위 메뉴 앞에 메뉴 경로가 있어야 합니다E337: 메뉴를 찾을 수 없음 - 메뉴 이름을 확인하십시오E338: 미안합니다, 콘솔 상태에는 파일 브라우저가 없습니다E339: 패턴이 너무 깁니다E33: 이전 바꾸기 정규 표현식이 없습니다E340: 줄이 너무 길어졌습니다E341: 내부 에러: lalloc(%ld, )E342: 메모리 부족!  (%lu 바이트를 할당)E343: 잘못된 경로: '**[번호]'는 경로의 마지막에 위치하거나 '%s' 뒤에 있어야 합니다.E344: cdpath에서 "%s" 디렉토리를 찾을 수 없습니다E345: path에서 "%s" 파일을 찾을 수 없습니다E346: cdpath에서 더 이상의 "%s" 디렉토리를 찾을 수 없습니다E347: path에서 더 이상의 "%s" 파일을 찾을 수 없습니다E348: 커서 밑에 문자열이 없습니다E349: 커서 밑에 식별자가 없습니다E34: 이전 명령이 없습니다E350: 현재의 'foldmethod'으로 접기를 만들 수 없습니다E351: 현재의 'foldmethod'으로 접기를 지울 수 없습니다E352: 현재의 'foldmethod'으로 접기를 지울 수 없습니다E353: %s 레지스터에 아무 것도 없습니다E354: 잘못된 레지스터 이름: '%s'E355: 모르는 옵션: %sE356: get_varp 에러E357: 'langmap': %s에 대한 맞는 글자가 없습니다E358: 'langmap': 세미콜론 뒤에 글자가 더 있음: %sE359: 스크린 상태 설정은 지원되지 않습니다E35: 이전 정규표현식이 없습니다E360: -f 옵션이 사용된 경우 쉘을 실행할 수 없습니다E363: 패턴이 'maxmempattern'보다 많은 메모리를 사용합니다E364: 라이브러리 "%s()" 부르기 실패E365: 포스트스크립트 파일을 인쇄할 수 없습니다E367: 이런 그룹 없음: "%s"E369: %s%%[]에 잘못된 항목E36: 빈 공간이 충분하지 않습니다E370: %s 라이브러리를 로드할 수 없습니다E371: 명령을 찾을 수 없습니다E372: 형식 문자열에 %%%c이(가) 너무 많습니다E373: 형식 문자열에 %%%c이(가) 잘못되었습니다E374: 형식 문자열에 ]가 없습니다E375: 형식 문자열에 지원되지 않는 %%%c이(가) 있습니다E376: 형식 문자열 서두에 잘못된 %%%c이(가) 있습니다E377: 형식 문자열에 잘못된 %%%c이(가) 있습니다E378: 'errorformat'이 어떤 패턴도 포함하고 있지 않습니다E379: 빠졌거나 빈 디렉토리 이름E37: 마지막으로 고친 뒤 저장하지 않았습니다E37: 마지막으로 고친 뒤 저장되지 않았습니다 (무시하려면 ! 더하기)E380: 퀵픽스 스택의 바닥입니다E381: 퀵픽스 스택의 꼭대기입니다E382: 쓸 수 없음, 'buftype' 옵션이 설정되어 있습니다E383: 잘못된 찾기 문자열: %sE384: 처음까지 맞는 문자열이 없습니다: %sE385: 끝까지 맞는 문자열이 없습니다: %sE386: ';' 뒤에는 '?'나 '/'가 와야 합니다E387: 맞는 게 현재 줄에 있습니다E388: 정의를 찾을 수 없습니다E389: 패턴을 찾을 수 없습니다E38: 널 인자E390: 잘못된 인자: %sE391: 이런 구문 클러스터는 없습니다: %sE392: 이런 구문 클러스터는 없습니다: %sE393: group[t]here는 여기에서 사용될 수 없습니다E394: %s에 대한 region 항목을 찾지 못했습니다E395: contains 인자는 여기에 쓸 수 없습니다E397: 파일이름이 필요합니다E398: '=' 누락: %sE399: 충분치 않은 인자: 구문 영역 %sE39: 숫자가 필요합니다E400: 클러스터가 명시되지 않았습니다E401: 패턴 구분자를 찾을 수 없습니다: %sE402: 패턴 뒤에 쓰레기: %sE403: syntax sync: 줄 연속 패턴이 두 번 사용되었습니다E404: 비정상적인 인자: %sE405: 이퀄 기호가 빠졌음: %sE406: 빈 인자: %sE407: %s은(는) 여기에서 허용되지 않습니다E408: %s은(는) contains 목록의 첫 번째여야 합니다E409: 모르는 그룹 이름: %sE40: 에러파일 %s을(를) 열 수 없습니다E410: 잘못된 :syntax 하위 명령: %sE411: 하이라이트 그룹을 찾을 수 없습니다: %sE412: 충분치 않은 인자: ":highlight link %s"E413: 너무 많은 인자: ":highlight link %s"E414: group이 설정값이 있습니다, highlight link 무시됨E415: 뜻밖의 이퀄 기호: %sE416: 이퀄 기호가 빠졌음: %sE417: 인자가 빠졌음: %sE418: 비정상적인 값: %sE419: 모르는 FG 색상E41: 메모리가 바닥났습니다!E420: 모르는 BG 색상E421: 색 이름이나 숫자를 인식할 수 없음: %sE422: 터미널 코드가 너무 김: %sE423: 잘못된 인자: %sE424: 너무 많은 다른 하이라이트 속성이 사용되고 있습니다E425: 첫 번째 맞는 태그 이전으로는 갈 수 없습니다E426: 태그를 찾을 수 없음: %sE427: 맞는 태그가 하나 밖에 없습니다E428: 마지막 맞는 태그 뒤로는 갈 수 없습니다E429: 파일 "%s"이(가) 존재하지 않습니다E42: 에러 없음E430: %s에 대한 태그 파일 경로가 잘렸습니다
E431: 태그 파일 "%s"에 형식 에러가 있습니다E432: 태그 파일이 정렬되어 있지 않음: %sE433: 태그 파일이 없습니다E434: 태그 패턴을 찾을 수 없습니다E435: 태그를 찾을 수 없지만 이거 같습니다!E436: termcap에 "%s" 항목이 없습니다E437: 터미널이 "cm" 기능을 지원해야 합니다E438: u_undo: 잘못된 줄 번호E439: undo 목록이 깨졌습니다E43: 깨진 맞는 문자열E440: undo 줄이 없습니다E441: 미리 보기 창이 없습니다E442: 위 왼쪽과 아래 오른쪽을 동시에 나눌 수 없습니다E443: 다른 창이 나눠졌을 때에는 회전할 수 없습니다E444: 마지막 창을 닫을 수 없습니다E445: 다른 창이 바뀌었습니다E446: 커서 밑에 파일 이름이 없습니다E447: path에서 "%s" 파일을 찾을 수 없습니다E448: %s 라이브러리 함수를 로드할 수 없습니다E449: 잘못된 표현식이 받아졌습니다E44: 깨진 정규표현식 프로그램E455: 포스트스크립트 출력파일에 쓸 수 없습니다.E456: 포스트스크립트 리소스 파일 "%s.ps"를 찾을 수 없습니다E456: 포스트스크립트 리소스 파일 "cidfont.ps"를 찾을 수 없습니다E456: 포스트스크립트 리소스 파일 "prolog.ps"를 찾을 수 없습니다E456: "%s" 파일을 열 수 없습니다E457: 포스트스크립트 리소스 파일 "%s"을(를) 읽을 수 없습니다E459: 이전 디렉토리로 갈 수 없습니다E45: 'readonly' 옵션이 설정되어 있습니다 (덮어쓰려면 ! 더하기)E460: The resource fork will be lost (덮어쓰려면 ! 더하기)E461: 비정상적인 변수 명: %sE462: "%s"의 재로드를 준비할 수 없습니다E463: 영역이 보호되고 있어서 수정할 수 없습니다E464: 사용자 정의 명령을 모호하게 사용하고 있습니다E465: :winsize는 두개의 인자가 필요합니다E466: :winpos에는 두개의 인자가 필요합니다E467: 사용자 완성은 함수 인자가 필요합니다E468: 완성 인자는 사용자 완성에서만 허용됩니다E46: 읽기 전용 변수 "%s"을(를) 바꿀 수 없습니다E470: 명령이 중지되었습니다E471: 인자가 필요합니다E472: 명령이 실패했습니다E473: 내부 에러E474: 잘못된 인자E475: 잘못된 인자: %sE476: 잘못된 명령E477: !은 허용되지 않습니다E478: 당황하지 마십시오!E479: 맞지 않습니다E47: 에러파일 읽는 도중에 에러E480: 맞지 않음: %sE481: 범위는 허용되지 않습니다E482: %s 파일을 만들 수 없습니다E483: 임시 파일 이름을 얻을 수 없습니다E484: %s 파일을 열 수 없습니다E485: %s 파일을 읽을 수 없습니다E486: 패턴을 찾을 수 없습니다: %sE487: 인자는 양수이어야 합니다E488: 끝에 문자가 더 있습니다E48: sandbox에서는 허용되지 않습니다E490: fold가 없습니다E492: 편집기 명령이 아닙니다E493: 반대 영역이 주어졌습니다E494: w나 w>>를 사용하십시오E495: "<afile>"에 대해 치환할 자동명령 파일 이름이 없습니다E496: "<abuf>"에 대해 치환할 자동명령 버퍼 번호가 없습니다E497: "<amatch>"에 대해 치환할 자동명령 매치 이름이 없습니다E498: "<sfile>"에 대해 치환할 :source 파일 이름이 없습니다E499: '%'나 '#'에 대한 빈 파일 이름, 오로지 ":p:h"와만 동작합니다E49: 스크롤 크기가 잘못되었습니다E500: 빈 문자열에서 값을 구하려고 합니다E501: 파일의 마지막입니다E505: "%s"는 읽기 전용입니다 (덮어쓰려면 ! 더하기)E505: %s은(는) 읽기 전용입니다 (덮어쓰려면 ! 더하기)E506: 백업파일을 쓸 수 없습니다 (덮어쓰려면 ! 더하기)E507: 백업파일 닫기 에러 (덮어쓰려면 ! 더하기)E508: 백업할 파일을 읽을 수 없습니다 (덮어쓰려면 ! 더하기)E509: 백업파일을 만들 수 없습니다 (덮어쓰려면 ! 더하기)E50: \z(가 너무 많습니다E510: 백업파일을 만들 수 없습니다 (덮어쓰려면 ! 더하기)E511: netbeans가 이미 연결되어 있습니다E512: 닫기가 실패했습니다E513: 쓰기 에러, 변환 실패 (무시하려면 'fenc'를 비우면 됨)E513: 쓰기 에러, %ld 줄에서 변환 실패 (무시하려면 'fenc'를 비우면 됨)E514: 쓰기 에러 (파일 시스템이 꽉찼나요?)E515: 내려진 버퍼가 없습니다E516: 지워진 버퍼가 없습니다E517: 완전히 지워진 버퍼가 없습니다E518: 모르는 옵션E519: 지원되지 않는 옵션입니다E51: %s(가 너무 많습니다E520: 모드라인에서 사용될 수 없습니다E521: = 뒤에 숫자가 필요합니다E521: 숫자가 필요: &%s = '%s'E522: termcap에서 찾을 수 없습니다E523: 여기에서 허용되지 않습니다E524: 콜론이 없습니다E525: 빈 문자열입니다E526: <%s> 뒤에 숫자가 없습니다E527: 콤마가 없습니다E528: ' 값을 명시해 주셔야 합니다E529: 'term'을 빈 문자열로 설정할 수 없습니다E52: 맞지 않는 \z(E530: GUI에서는 term을 바꿀 수 없습니다E531: GUI를 시작하려면 ":gui"를 사용하십시오E533: 와이드 글꼴을 고를 수 없습니다E534: 잘못된 와이드 글꼴E535: <%c> 뒤에 이상한 글자E536: 콤마가 필요합니다E537: 'commentstring'은 비거나 %s을(를) 포함해야 합니다E538: 마우스를 지원하지 않습니다E539: 이상한 글자 <%s>E53: 맞지 않는 %s%%(E540: 닫히지 않은 표현식 배열E541: 너무 많은 항목E542: 균형이 안 잡힌 그룹E543: 정상적인 코드페이지가 아닙니다E544: 키맵 파일을 찾을 수 없습니다E545: 콜론이 없습니다E546: 이상한 모드E547: 이상한 마우스모양E548: 숫자가 필요합니다E549: 이상한 백분율E54: 맞지 않는 %s(E550: 콜론이 없습니다E551: 이상한 컴포넌트E552: 숫자가 필요합니다E553: 더 이상의 항목이 없습니다E554: %s{...}에 구문 에러E555: 태그 스택의 끝입니다E556: 태그 스택의 처음입니다E557: termcap 파일을 열 수 없습니다E558: 터미널 항목을 terminfo에서 찾을 수 없습니다E559: 터미널 항목을 termcap에서 찾을 수 없습니다E55: 맞지 않는 %s)E560: 사용법: cs[cope] %sE561: 모르는 cscope 찾기 형식E562: 사용법: cstag <ident>E563: stat 에러E563: stat(%s) 에러: %dE564: %s은(는) 디렉토리도 혹은 cscope 데이터베이스가 아닙니다E566: cscope 파이프를 만들 수 없습니다E567: cscope 연결이 없습니다E568: 중복된 cscope 데이터베이스는 더해지지 않았습니다E570: cs_manage_matches에 심각한 에러E571: 미안합니다, 이 명령은 사용할 수 없습니다, Tcl 라이브러리를 로딩할 수 없습니다.E572: 종료 코드 %dE573: 잘못된 서버 id 사용됨: %sE574: 모르는 레지스터 형식 %dE579: :if가 너무 깊게 중첩되었습니다E580: :if없이 :endif가 있습니다E581: :if없이 :else가 있습니다E582: :if없이 :elseif가 있습니다E583: 여러개의 :else가 있습니다E584: :else 뒤에 :elseif가 있습니다E585: :while/:for가 너무 깊게 중첩되었습니다E586: :while 혹은 :for없이 :continue가 있습니다E587: :while 혹은 :for없이 :break가 있습니다E588: :for 없는 :endforE588: :while없이 :endwhile이 있습니다E589: 'backupext'와 'patchmode'가 동일합니다E590: 미리 보기 창이 이미 존재합니다E591: 'winheight'는 'winminheight'보다 커야 합니다E592: 'winwidth'는 'winminwidth'보다 커야 합니다E593: 적어도 %d 줄이 필요합니다E594: 적어도 %d 칸이 필요합니다E595: 출력할 수 없는, 혹은 와이드 문자를 포함하고 있습니다E596: 잘못된 글꼴(들)E597: 글꼴셋을 고를 수 없습니다E598: 잘못된 글꼴셋E599: 'imactivatekey' 값이 이상합니다E59: %s@ 뒤에 잘못된 문자E600: :endtry가 없습니다E601: :try가 너무 깊게 중첩되었습니다E602: :try없이 :endtry가 있습니다E603: :try없이 :catch가 있습니다E604: :finally 뒤에 :catch가 있습니다E605: 예외가 발생하지 않았습니다: %sE606: :try없이 :finally가 있습니다E607: 여러개의 :finally가 있습니다E608: 'Vim' 접두사로 예외를 :throw할 수 없습니다E609: Cscope 에러: %sE60: %s{...}s가 너무 많음E612: 너무 많은 sign이 정의되어 있습니다E613: 모르는 프린터 글꼴: %sE614: vim_SelFile: 현재 디렉토리로 돌아갈 수 없습니다E615: vim_SelFile: 현재 디렉토리를 얻을 수 없습니다E616: vim_SelFile: 글꼴 %s을(를) 얻을 수 없습니다E617: GTK+ 2 GUI에서는 바뀔 수 없습니다E618: 파일 "%s"은(는) 포스트스크립트 리소스 파일이 아닙니다E619: 파일 "%s"은(는) 지원되는 포스트스크립트 리소스 파일이 아닙니다E61: Nested %s*E620: "%s" 인쇄 인코딩으로 변환할 수 없습니다E621: "%s" 리소스 파일은 버전이 잘못되었습니다E622: cscope를 fork할 수 없습니다E623: cscope 프로세스를 spawn할 수 없습니다E624: "%s" 파일을 열 수 없습니다E625: cscope 데이터베이스를 열 수 없음: %sE626: cscope 데이터베이스 정보를 얻을 수 없습니다E62: Nested %s%cE630: %s(): 연결되지 않았는 데 쓰기E631: %s(): 쓰기가 실패했습니다E63: \_를 잘 못 사용E64: %s%c 뒤에 아무것도 없습니다E655: 너무 많은 심볼릭 링크 (반복순환?)E658: 버퍼 %ld에 대한 NetBeans 연결을 잃어버렸습니다E659: Python을 재귀호출할 수 없습니다E65: 이상한 후위 참조E661: 미안합니다, 도움말 '%s'이(가) %s에 대해 없습니다E664: changelist가 비었습니다E665: 쓸만한 글꼴을 찾을 수 없어서 GUI를 실행할 수 없습니다E666: 컴파일러가 지원되지 않음: %sE667: Fsync가 실패했습니다E668: NetBeans 연결 정보 파일이 접근 모드가 잘못됨: "%s"E669: 그룹 이름에 출력할 수 없는 문자가 있습니다E66: \z(는 여기에서 허용되지 않습니다E670: 한 언어내에서 여러 인코딩 사용: %sE671: 창 제목 "%s"을(를) 찾을 수 없습니다E672: MDI 응용프로그램 안에서 창을 열 수 없습니다E673: 호환되지 않는 다중문자 인코딩과 문자셋.E674: printmbcharset는 다중문자 인코딩에서 반드시 설정되어야 합니다.E675: 다중문자 인쇄를 위한 글꼴이 설정되어 있지 않습니다E676: acwrite 버퍼에 대한 autocommand를 찾을 수 없습니다E677: 임시 파일 쓰기 에러E678: %s%%[dxouU] 뒤에 이상한 문자E679: syncolor.vim 반복 로딩E67: \z1 등은 여기에서 허용되지 않습니다E680: <buffer=%d>: 잘못된 버퍼 번호E681: 버퍼가 로드되지 않았습니다E682: 잘못된 찾기 패턴 혹은 구분자E683: 파일명 누락 혹은 잘못된 패턴E684: 목록 번호가 범위를 벗어남: %ldE685: 내부 에러: %sE686: %s 인자는 List이어야 합니다E687: List 항목보다 적은 대상E688: List 항목보다 많은 대상E689: List나 Dictionary만 색인할 수 있습니다E68: \z 뒤에 이상한 문자E690: :for 뒤에 "in"가 없습니다E691: List는 List와만 비교할 수 있습니다E692: List에 대한 잘못된 동작E694: Funcrefs에 대한 잘못된 동작E695: Funcref를 색인할 수 없습니다E696: List에 콤마 누락: %sE697: List 끝에 ']' 누락: %sE698: 복사하기에 변수가 너무 깊게 중첩되었습니다E699: 너무 많은 인자E69: %s%%[ 뒤에 ]가 없습니다E700: 모르는 함수: %sE701: len()에 잘못된 형E702: 정렬 비교 기능이 실패했습니다E703: Funcref를 Number로 사용E704: Funcref 변수명은 대문자로 시작해야 함: %sE705: 변수명이 이미 있는 함수명과 충돌: %sE707: 함수명이 변수명과 충돌: %sE708: [:]은 마지막에 위치해야 합니다E709: [:]은 List 값이 필요합니다E70: 빈 %s%%[]E710: List 값이 대상보다 많은 항목을 가지고 있습니다E711: List 값이 충분한 항목을 가지고 있지 않습니다E712: %s 인자는 List 혹은 Dictionary여야 합니다E713: Dictionary에 빈 키를 쓸 수 없습니다E714: List가 필요합니다E715: Dictionary가 필요합니다E716: Dictionary에 키가 없음: %sE717: 이미 Dictionary 항목이 있습니다E718: Funcref가 필요합니다E719: Dictionary에 [:]을 사용할 수 없습니다E71: %s%% 뒤에 이상한 문자E720: Dictionary에 콜론 누락: %sE721: Dictionary에 중복된 키: "%s"E722: Dictionary에 콤마 누락: %sE723: Dictionary 끝에 '}' 누락: %sE724: 변수가 표시하기에 너무 깊이 중첩되었습니다E725: Dictionary없이 사전함수가 불려짐: %sE726: Stride가 0E727: 시작위치가 끝을 지나침E728: Dictionary를 Number로 사용E729: Funcref를 String으로 사용E72: 스왑 파일을 닫을 수 없습니다E730: List를 String으로 사용E731: Dictionary를 String으로 사용E732: :while에 :endfor가 사용되었습니다E733: :for에 :endwhile이 사용되었습니다E734: %s=에 대한 잘못된 변수형E735: Dictionary는 Dictionary와만 비교할 수 있습니다E736: Dictionary에 대한 잘못된 동작E737: 키가 이미 존재함: %sE738: %s 변수 목록을 나열할 수 없습니다E739: 디렉토리 생성 실패: %sE73: 태그 스택이 비었습니다E740: 함수 %s에 너무 많은 인자가 전달되었습니다E741: 값이 잠겨있음: %sE742: %s 값을 바꿀 수 없습니다E743: 잠금(해제)하기에 변수가 너무 깊이 중첩되었습니다E744: NetBeans는 읽기 전용 파일을 바꿀 수 없습니다E745: List를 Number로 사용E746: 함수명이 스크립트 파일명과 다름: %sE747: 디렉토리를 바꿀 수 없는 데, 버퍼는 수정됨 (덮어쓰려면 ! 더하기)E749: 빈 버퍼E74: 명령이 너무 복잡합니다E750: 먼저 ":profile start {fname}"을 사용하세요E751: 생성 파일명은 영역 이름과 달라야 합니다E752: 철자가 바뀐적이 없습니다E753: 찾을 수 없음: %sE754: 최대 8개의 영역이 지원됩니다E755: %s에 잘못된 영역E756: 맞춤법 검사가 활성화되어 있지 않습니다E757: spell 파일이 아닌 것 같습니다E758: 잘린 spell 파일E75: 이름이 너무 깁니다E760: %s에 단어 카운트가 없습니다E761: affix 파일 FOL, LOW 혹은 UPP에 형식 에러E762: FOL, LOW 혹은 UPP의 문자가 범위를 벗어남E763: 단어가 spell 파일 간에 다릅니다E764: 옵션 '%s'이(가) 설정되어 있지 않습니다E765: 'spellfile'에 %ld 항목이 없습니다E766: printf()에 넘어온 인자 갯수가 부족E767: printf()에 너무 많은 인자 넘어옴E768: 스왑 파일 있음: %s (덮어쓰려면 :silent! 사용)E769: %s[ 뒤에 ]가 없습니다E76: [가 너무 많습니다E770: spell 파일에 지원되지 않는 섹션E771: 오래된 spell 파일, 갱신이 필요합니다E772: Spell 파일이 새 버젼의 Vim용입니다E774: 'operatorfunc'가 비어있습니다E775: Eval 기능이 빠져있습니다E776: 위치 목록 없음E777: String이나 List가 있어야 함E778: .sug 파일이 아닌 것 같음: %sE779: 오래된 .sug 파일, 갱신 필요: %sE77: 파일 이름이 너무 많습니다E780: .sug 파일이 새 버젼의 Vim용임: %sE781: .sug 파일이 .spl 파일과 맞지 않음: %sE782: .sug 파일 읽기 에러: %sE783: MAP 항목에 중복된 문자E784: 마지막 탭을 닫을 수 없습니다E785: complete()은 입력 모드에서만 사용될 수 있습니다E786: 범위가 허용되지 않습니다E787: 버퍼가 모르는 사이에 바뀌었습니다E788: 지금은 다른 버퍼를 편집할 수 없습니다E789: ']' 누락: %sE78: 모르는 마크E790: undo 뒤에 undojoin은 할 수 없습니다E791: 키맵 엔트리가 비어있음E792: 메뉴 이름 없음E793: 수정 가능한 diff 상태 버퍼는 없습니다E794: sandbox 안에서는 변수를 설정할 수 없음: "%s"E795: 변수 %s를 삭제할 수 없습니다E797: SpellFileMissing autocommand가 버퍼를 삭제했습니다E798: ID가 ":match"때문에 예약됨: %ldE799: 비정상적인 ID: %ld (1보다 크거나 같아야 합니다)E79: 만능 글자를 확장할 수 없습니다E800: Arabic은 사용할 수 없습니다: 컴파일 때 포함되지 않았습니다
E802: 비정상적인 ID: %ld (1보다 크거나 같아야 합니다)E803: ID를 찾을 수 없음: %ldE804: Float에 '%'는 사용할 수 없습니다E805: Float를 Number로 사용E806: Float를 String으로 사용E807: printf()에 예상못한 Float 인자E808: Number 혹은 Float가 필요합니다E809: #<는 +eval 기능이 포함되어야 사용할 수 있습니다E80: 쓰는 중에 에러E810: 임시 파일을 읽거나 쓸 수 없습니다E811: 지금은 버퍼 정보를 바꿀 수 없습니다E812: Autocommand가 버퍼나 버퍼이름을 바꾸었습니다E813: autocmd 창을 닫을 수 없습니다E814: 창을 닫을 수 없음, autocmd 창만 남음E815: 미안합니다, 이 명령은 사용할 수 없습니다, MzScheme 라이브러리를 로딩할 수 없습니다.E816: patch 결과를 읽을 수 없습니다E817: Blowfish big/little endian use wrongE818: sha256 시험이 실패했습니다.E819: Blowfish 시험이 실패했습니다.E81: 스크립트 콘텍스트 밖에서 <SID> 사용E820: sizeof(uint32_t) != 4E821: 파일이 모르는 방법으로 암호화되어 있습니다E822: 읽기 위해 undo 파일을 열 수 없습니다: %sE823: undo 파일이 아닙니다: %sE824: 호환되지 않는 undo 파일: %sE825: 깨진 undo 파일 (%s): %sE826: Undo 파일을 해독할 수 없습니다: %sE827: Undo 파일이 암호화되었습니다: %sE828: 쓰기 위해 undo을 열 수 없습니다: %sE829: undo 파일 쓰기 에러: %sE82: 버퍼를 할당할 수 없어서 끝냅니다...E830: Undo 번호 %ld를 찾을 수 없습니다E831: 빈 비밀번호로 bf_key_init() 함수가 불려졌습니다E832: 암호화되지 않은 파일이 암호화된 undo 파일을 가지고 있습니다: %sE833: %s이(가) 암호화되어 있는 데, 이 Vim은 암호화를 지원하지 않습니다E834: 'listchars' 값과 충돌이 발생합니다E835: 'fillchars' 값과 충돌이 발생합니다E836: 이 Vim은 :py3을 사용한 후에 :python을 사용할 수 없습니다E837: 이 Vim은 :python을 사용한 후에 :py3을 사용할 수 없습니다E838: 이 GUI는 netbeans를 지원하지 않습니다E839: Completion 기능이 창을 바꾸었습니다E83: 버퍼를 할당할 수 없어서 다른 걸 사용합니다...E840: Completion 기능이 문자열을 지웠습니다E841: 예약된 이름, 사용자 정의 명령으로 사용될 수 없습니다E842: "<slnum>"에 사용될 줄 번호가 없습니다E843: 스왑 파일을 암호화할 수 없습니다E844: 잘못된 cchar 값E846: 키 코드가 설정되지 않았습니다E848: 구문 클러스터가 너무 많습니다E849: highlight와 syntax group이 너무 많습니다E84: 바뀐 버퍼를 찾을 수 없습니다E850: 잘못된 레지스터 이름E851: 새로운 GUI 프로세스를 생성할 수 없습니다E852: 자식 프로세스가 GUI를 시작하지 못했습니다E853: 중복된 인자 이름: %sE855: Autocommand로 명령이 중단되었습니다E85: 나열된 버퍼가 없습니다E862: 여기에서 g:을 사용할 수 없습니다E867: (NFA) 모르는 오퍼레이터 '\%%%c'E867: (NFA) 모르는 오퍼레이터 '\z%c'E869: (NFA) 모르는 오퍼레이터 '\@%c'E86: 버퍼 %ld이(가) 존재하지 않습니다E872: (NFA 정규표현식) '('가 너무 많습니다E877: (NFA 정규표현식) 비정상적인 문자 클래스: %ldE879: (NFA 정규표현식) \z(가 너무 많습니다E87: 마지막 버퍼입니다E881: 행 갯수가 갑자기 바뀌었습니다E882: Uniq 비교 함수가 실패하였습니다E884: 함수 이름은 콜론을 포함할 수 없음: %sE885: sign %s을(를) 바꿀 수 없습니다E886: viminfo 파일명을 %s(으)로 변경할 수 없습니다!E887: 미안합니다, 이 명령은 사용할 수 없습니다, 파이썬의 사이트 모듈을 로딩할 수 없습니다.E888: (NFA 정규표현식) %s을(를) 반복할 수 없습니다E88: 첫 번째 버퍼입니다E890: ']' 뒤에 문자가 더 있음: %s]%sE891: Funcref를 Float로 사용하고 있습니다E892: String을 Float로 사용하고 있습니다E893: List를 Float로 사용하고 있습니다E894: Dictionary를 Float로 사용하고 있습니다E895: 미안합니다, 이 명령은 사용할 수 없습니다, MzScheme의 racket/base 모듈을 로딩할 수 없습니다.E898: channel_open()에서 socket()E89: 버퍼 %ld을(를) 마지막으로 고친 뒤 저장하지 않았습니다 (덮어쓰려면 ! 더하기)E901: channel_open()에서 gethostbyname()E902: 포트로 연결할 수 없습니다E903: 문자열이 아닌 인자를 명령으로 수신했습니다E904: expr/call의 마지막 인자는 숫자여야 합니다E904: 3번째 인자는 list여야 합니다E905: 모르는 명령 수신: %sE906: 열린 채널이 아닙니다E907: 특수한 값을 Float로 사용하고 있습니다E908: 잘못된 값을 String으로 사용하고 있습니다E909: 특수한 변수는 색인할 수 없습니다E90: 마지막 버퍼를 내릴 수 없습니다E910: Job을 Number로 사용하고 있습니다E911: Job을 Float로 사용하고 있습니다E912: raw 혹은 nl 채널에서 ch_evalexpr()/ch_sendexpr()을 사용할 수 없습니다E913: Channel을 Number로 사용하고 있습니다E914: Channel을 Float로 사용하고 있습니다E915: in_io 버퍼는 설정하려면 in_buf나 in_name이 필요합니다E916: 정상적인 job이 아닙니다E917: %s()에는 callback을 사용할 수 없습니다E918: 버퍼가 로딩되어야 합니다: %sE919: '%s'에서 디렉토리를 못찾음: "%s"E91: 'shell' 옵션이 비었습니다E920: _io 파일은 설정하려면 _name이 필요합니다E921: 비정상적인 콜백 인자E922: dict가 요구됩니다E923: function()의 두번째 인자는 list나 dict이어야 합니다E924: 현재 창이 닫혔습니다E925: 현재의 quickfix가 바뀌었습니다E926: 현재의 location list가 바뀌었습니다E927: 비정상적인 동작: '%s'E928: String이 필요합니다E929: 너무 많은 viminfo 임시 파일들, 가령 %s!E92: 버퍼 %ld을(를) 찾을 수 없습니다E930: execute() 내에서 :redir을 사용할 수 없습니다E931: 버퍼를 등록하지 못했습니다E933: 함수가 삭제됨: %sE934: 이름없는 버퍼로는 점프할 수 없습니다E935: 비정상적인 submatch number: %dE936: 현재 그룹을 삭제할 수 없습니다E937: 사용중인 버퍼를 삭제하려고 했습니다E938: JSON에 중복된 키: "%s"E93: %s을(를) 하나 이상 찾았습니다E940: 변수 %s을(를) 잠금 혹은 해제할 수 없습니다E941: 서버가 이미 시작되었습니다E942: +clientserver 기능이 포함되지 않았습니다E943: 명령 테이블 갱신이 필요, 'make cmdidxs'를 실행하세요E94: %s와 맞는 버퍼가 없습니다E95: 이 이름을 가진 버퍼가 이미 있습니다E96: 버퍼를 %ld개 이상은 비교할 수 없습니다E97: diff를 만들 수 없습니다E98: diff 출력을 읽을 수 없습니다E99: 현재 버퍼는 diff 상태가 아닙니다에러: 파일 고치기새 창에서 파일 고치기빔으로 편집(&V)여러 빔으로 편집(&M)하나의 빔으로만 편집 - 하나의 빔으로만 편집(&V)선택된 파일(들)을 빔으로 편집인코딩:함수의 마지막불러들인 파일의 마지막암호 키 입력: 사용할 스왑 파일 번호를 입력하십시오 (0은 끝내기): 같은 키를 다시 입력: 디버그 상태로 들어감.  계속하려면 "cont"를 입력하십시오.Ex 상태로 전환.  Normal 상태로 가려면 "visual"을 입력하십시오.에러에러와 인터럽트프로세스 생성 에러: gvim이 path에 있는 지 확인하세요!%s 수행중 에러 발견:에러 파일추정된 런타임 메모리 사용량: %d 바이트예외예외 발생: %s예외 버려짐: %s예외 종료됨: %s예외 thrown: %s%s 실행중%s 라인 %d에 MAP 카운트가 기대됨%s 라인 %d에 REP(SAL) 카운트가 기대됨%s 라인 %d에 Y나 N이 기대됨: %s표현외부 submatches:
%s 라인 %d에 플래그가 사용된 후 FLAG: %s파일 "%s"이(가) 존재하지 않습니다파일 내용이 바뀌어서, undo 정보를 사용할 수 없습니다파일 "%s"가 읽기전용입니다.
그래도 쓰기가 가능할 지도 모릅니다.
한 번 써 볼까요?파일이 보존되었습니다파일거르개문자열 찾아 바꾸기 ('\'를 찾으려면 '\\' 사용)다음 찾기(&N)다음 찾기문자열 찾기 ('\'를 찾으려면 '\\' 사용)무얼 찾을까요:undo 파일 %s을(를) 읽어들였습니다%s 라인 %d에 처음 중복된 단어: %s%s 라인 %d에 숫자가 아닌 플래그: %s글꼴 '%s'은(는) 고정넓이가 아닙니다글꼴%ld 너비가 글꼴0의 두배가 아닙니다글꼴0 너비: %ld글꼴0: %s글꼴1 너비: %ld글꼴1: %s글꼴:옵션 인자 뒤에 쓰레기 값빔 사용자님, 환영합니다!우간다에 사는 가난한 아이를 도와주세요!단락의 마지막 만남I/O 에러무시된 %d개의 아스키문자열이 아닌 단어가 %s에 있습니다아스키 문자열이 아닌 %d개의 단어가 무시되었습니다태그 파일의 너무 긴 라인을 무시합니다잘못된 파일 이름%s 라인 %d에 잘못된 플래그: %s이상한 레지스터 이름이상한 시작 글자입력 행입력 방법(_M)인터럽트중단: 중단되었습니다%s 라인 %d에 잘못된 영역 번호: %s%s 라인 %d에 FLAG에 대한 잘못된 값: %s키가 맞지 않습니다!연결 끊기링크: List나 number가 필요합니다Lua 라이브러리를 로딩할 수 없습니다.똑같은 낱말만메시지메시지 관리자: Bram Moolenaar <Bram@vim.org>'>'이 없습니다%s에 FOL/LOW/UPP이 누락된 라인SOFO%s가 누락된 라인이 %s에 있습니다Modified by 이름:Need %s version %ld
아미가도스 2.04나 더 높은 판이 필요합니다
"%s"에 대한 암호 키가 필요합니다NetBeans에서는 바뀌지 않은 버퍼를 쓸 수 없습니다새 탭아니오이 버퍼에 대해 정의된 구문 항목이 없습니다약어를 찾을 수 없습니다중지점이 정의되어 있지 않습니다디스플레이가 없습니다디스플레이 없음: 표현식 보내기가 실패했습니다.
포함된 파일이 없습니다맵핑을 찾을 수 없습니다설정된 마크가 없습니다맞는 자동명령이 없습니다old 파일이 없습니다스왑 파일이 없습니다인쇄될 텍스트가 없습니다취소 불가능; 어쨌든 계속합니다사용자 정의 명령을 찾을 수 없습니다사용 않됨소유자가 달라서 undo 파일을 읽지 않습니다: %s취소할 게 없습니다soundfold 수행 후의 단어 수: %ld확인파일 열기 대화상자탭 열기...탭 열기...X 디스플레이 열기가 실패했습니다X 디스플레이를 열다가 시간이 초과되었습니다X 디스플레이를 여는 데 %ld msec이 걸렸습니다원래 파일 "%s"이미 있는 "%s" 파일을 덮어쓸까요?페이지 %dNetBeans 버퍼에 대해서는 부분 저장을 할 수 없습니다패키 파일경로가 너무 깁니다경로 이름:여러 줄에서 패턴을 찾았습니다: %s패턴을 찾을 수 없습니다패턴을 찾을 수 없음: %ssoundfold 수행중...계속하려면 엔터 혹은 명령을 입력하십시오인쇄작업이 끝났습니다.인쇄됨: %s'%s' 인쇄중인쇄가 취소되었습니다.페이지 %d 인쇄중 (%d%%)질문affix 파일 %s 읽는 중맞춤법 파일을 읽는 중...사전 파일 %s 읽는 중 ...표준입력에서 읽는 중...spell 파일 "%s"을(를) 읽고 있습니다undo 파일 읽는 중: %sviminfo 파일 "%s"%s%s%s을(를) 읽는 중단어 파일 %s 읽는 중 ...복구가 끝났습니다. 버퍼의 내용이 파일 내용과 같습니다.복구가 끝났습니다. 모든 게 정상인 지 확인해 보셔야만 합니다.모든 연결 다시 초기화바꾸기모두 바꾸기(&A)모두 바꾸기바꿀 문자열:Vi 호환 상태로 실행중입니다모드없이 수행중이며, 입력된 문자는 삽입됩니다다른 이름으로 저장파일 저장 대화상자리디렉션 저장세션 저장설정 저장보기 저장"%s"에 바뀐 내용을 저장할까요?사전 찾는 중: %s포함된 파일 찾는 중: %s태그 찾는 중.찾는 중: %s스크롤바 위젯: 썸 픽스맵의 지오미트리를 얻을 수 없습니다.찾을 문자열"%s"을(를) 찾는 중"%s"을(를) "%s"에서 찾는 중포함된 파일 %s 찾는 중태그 파일 %s 찾는 중더 많은 정보를 보려면 ":help E312"를 입력하세요.더 많은 정보를 보려면 ":help W11"을 입력하세요.더 많은 정보를 보려면 ":help W12"을 입력하세요.더 많은 정보를 보려면 ":help W16"을 입력하세요.디렉토리 선택 대화상자고르기프린터로 보내는 중...연결 보여주기이 메시지 보이기%s에 대한 기호:크기:undo할 내용이 없어서 undo 파일 저장을 건너뜁니다미안합니다, 도움말 파일 "%s"을(를) 찾을 수 없습니다죄송, 제안할 게 없습니다죄송, %ld개만 제안미안합니다, 이 명령은 사용할 수 없습니다, Perl 라이브러리를 로딩할 수 없습니다.빔 스크립트 로드빔 개발을 후원해 주세요!스택 크기 증가스타일:Substitute 스왑 파일 "스왑 파일 "%s"가 있습니다, 덮어쓸까요?스왑 파일이 이미 존재합니다!스왑 파일이 암호화됨: "%s"스왑 파일을 찾았음:탭 페이지 %d이 메뉴를 떼어냄X 디스플레이 시험이 실패했습니다빔을 날게 해 주셔서 고맙습니다The only match이 빔은 diff 기능 없이 컴파일 되었습니다.이 cscope 명령은 창 나누기를 지원하지 않습니다.
너무 많은 "+command" "-c command" 혹은 "--cmd command" 인자compound 플래그가 너무 많습니다너무 많은 편집 인자postponed 접두사가 너무 많습니다postponed 접두사와(나) compound 플래그가 너무 많습니다%s 라인 %d에 너무 많은 영역: %s꼭대기총 단어 수: %dTrailing text in %s line %d: %s:qa! 입력 후에 <엔터> 키를 누르시면 수정을 취소하고 빔을 종료합니다숫자 입력후 <엔터> (숫자없으면 취소): 숫자 입력후 <엔터>나 마우스 클릭 (숫자없으면 취소): Unable to read block 0 from 명령 서버 이름을 등록할 수 없습니다모름모르는 옵션 인자%s 라인 %d에 모르는 플래그: %s%s 라인 %d에 모르는 혹은 중복된 항목: %s제목 없음위로빔 3.0 판을 사용하십시오.
빈 고르기 대신 CUT_BUFFER0을 사용했습니다텍스트 파일에 스왑파일에서 가져온 암호 키를 사용합니다.
스왑 파일 "%s"을(를) 사용합니다빔 - 주목빔 - 찾아서 바꾸기...빔 - 찾기...빔 - 향상된 Vi빔 에러빔: 창을 열 수 없습니다!
VIMRUN.EXE를 $PATH에서 찾을 수 없습니다.
외부 명령이 끝난 뒤 멈출 수 없습니다.
다 많은 정보를 보시려면 :help win32-vimrun을 보십시오.Vim - 글꼴 선택기빔 E458: 색상맵 엔트리를 할당할 수 없습니다, 몇몇 색이 잘못될 수 있습니다빔 경고빔 대화상자Vim 에러Vim 에러: ~a빔이 %d 값으로 끝냅니다
빔은 누구나 소스를 볼 수 있고 공짜로 배포됩니다빔: %s 이벤트를 잡았습니다
빔: 입력 읽는 중 에러, 끝내는중...
Vim: 에러: NetBeans에서 gvim 시작 실패
Vim: 에러: 이 버젼의 빔은 Cygwin 터미널에서 실행할 수 없습니다
빔: 메인 창이 죽게 될 것입니다
빔: 표준입력에서 읽는 중...
빔: 세션 관리자로부터 "die" 요청을 받았습니다
빔: 경고: 터미널로 부터 입력받을 수 없습니다
빔: 경고: 터미널로 출력할 수 없습니다
W10: 경고: 읽기 전용 파일을 고치고 있습니다W11: 경고: 파일 "%s"이(가) 고치기 시작한 뒤에 바뀌었습니다W12: 경고: 파일 "%s"이(가) 바뀌었고 마찬가지로 빔의 버퍼도 바뀌었습니다W13: 경고: 파일 "%s"이(가) 고치기 시작한 뒤에 만들었습니다W14: 경고: 파일 이름 목록이 넘쳤습니다W15: 경고: 잘못된 줄 구분자. ^M이 없는 것 같습니다W16: 경고: 파일 "%s"의 상태가 고치기 시작한 뒤에 바뀌었습니다W17: Arabic은 UTF-8 인코딩 필요, ':set encoding=utf-8' 하세요W18: 그룹 이름에 이상한 문자W19: 사용중인 augroup을 삭제하려고 합니다W20: 요구되는 파이선 버젼 2.x는 지원되지 않음, 파일을 무시: %sW21: 요구되는 파이선 버젼 3.x는 지원되지 않음, 파일을 무시: %sW22: :endfunction 뒤에 문자열이 있음: %s경고: 파일이 읽은 뒤에 바뀌었습니다!!!경고경고: 단어 목록 "%s.%s.spl" 혹은 "%s.ascii.spl"을 찾을 수 없습니다경고: 단어 목록 "%s_%s.spl" 혹은 "%s_ascii.spl"을 찾을 수 없습니다경고: 뜻 밖에 다른 버퍼로 들어갔습니다 (autocommand를 확인하십시오)경고: 약한 암호 방식을 사용중; :help 'cm'을 확인하세요경고: compound와 NOBREAK 둘 다 명시됨경고: %s 영역은 지원되지 않습니다경고: 터미널이 비쥬얼 상태를 표시할 수 없습니다While opening file "읽을 수가 없어서 undo 파일에 덮어쓸 수 없습니다: %sundo 파일이 아니어서 덮어쓸 수 없습니다: %s창 위치: X %d, Y %d단어 '%.*s'이(가) %s에 추가됨단어 '%.*s'이(가) %s에서 제거됨다른 줄에 낱말파일 일부만 저장할까요?spell 파일 %s 쓰는 중 ...%s 제안 파일을 쓰는 중 ...undo 파일 쓰는 중: %sViminfo 파일 "%s"을(를) 쓰는 중%s 라인 %d에 잘못된 CHECKCOMPOUNDPATTERN 값: %s%s 라인 %d에 잘못된 COMPOUNDMIN 값: %s%s 라인 %d에 잘못된 COMPOUNDRULES 값: %s%s 라인 %d에 잘못된 COMPOUNDSYLMAX 값: %s%s 라인 %d에 잘못된 COMPOUNDWORDMAX 값: %sXSMP가 ICE 연결 감시를 실패했습니다XSMP SmcOpenConnection 실패: %sXSMP가 save-yourself 요청을 실행하고 있습니다XSMP가 ICE 연결을 잃어버렸습니다XSMP가 연결을 여는 중입니다예예[%ld 줄에서 변환 에러][CR 없음][지워졌습니다][장치][파일이 너무 큼][도움말][%ld 줄에 잘못된 바이트][불완전한 마지막 줄][위치 목록][변환 안 됩니다][새 디렉토리][새 파일][새 파일][새로운][이름 없음][마지막으로 고친 뒤 저장 안 함]
[고치지 않았음][허용 안 됩니다][미리 보기][Quickfix 목록][읽기 에러][읽기 전용][읽기 에러][Scratch][변환 되었습니다][암호화 되었습니다][도스 형식][도스][피포/소켓][피포][파일 ..]       주어진 파일 고치기[긴 줄 잘림][맥 형식][맥][noeol][읽기 전용][소켓][유닉스 형식][유닉스]취소(_C)닫기(_C)확인(_O)열기(_O)저장(_S)add() 인자after그리고 바뀐 내용을 확인하려면 원래 파일에 대해 diff를 실행하세요)지워진 버퍼를 참조하려고 하였습니다지워진 탭 페이지를 참조하려고 하였습니다지워진 창을 참조하려고 하였습니다autocommand 자동삭제: %s <buffer=%d>자동명령 %sbeforeblock of %ld lines yankedblock of 1 line yanked버퍼가 이상합니다by by Bram Moolenaar et al.inputrestore()가 inputsave()보다 많이 불려졌습니다%s 부르는 중OutputObject 속성을 지울 수 없습니다'charconvert'의 출력결과를 읽을 수 없습니다콘솔 상태를 바꿀 수 없습니다 ?!
버퍼/창 명령을 만들 수 없습니다: 객체가 지워집니다줄을 지울 수 없습니다vim.Dictionary 속성을 삭제할 수 없습니다vim.List 속성을 삭제할 수 없습니다줄을 얻을 수 없습니다줄을 끼워넣을 수 없습니다줄을 끼워넣거나 더할 수 없습니다fixed dictionary를 수정할 수 없습니다cannot open 콜백 명령을 등록할 수 없습니다: 버퍼/창이 이미 지워졌습니다콜백 명령을 등록할 수 없습니다: 버퍼/창 참조를 찾을 수 없습니다줄을 바꿀 수 없습니다undo 정보를 저장할 수 없습니다속성 %s을(를) 설정할 수 없습니다줄을 설정할 수 없습니다cannot yank; delete anywaychangechanges닫기명령: %s%s에서 계속"%s"을(를) 불러 들일 수 없습니다버퍼를 열 수 없었습니다cs_create_connection 실행이 실패했습니다cs_create_connection setpgid가 실패했습니다cs_create_connection: fr_fp에 대한 fdopen 실패cs_create_connection: to_fp에 대한 fdopen 실패cscope 명령:
cscope 연결 %s이(가) 닫혔습니다퍼서 위치가 버퍼 밖에 있습니다defaulting to '구역 1이 지워졌나요?dictionary가 잠겨있습니다dlerror = "%s"파일이 성공적으로 저장될 때까지 편집기를 끝내지 마십시오!빈 키 값은 허용되지 않습니다환경 변수에러 핸들러표현식을 지원하지 않도록 컴파일 되었습니다extend() 인자dictionary에 '%s' 키를 추가할 수 없습니다디렉토리를 바꿀 수 없습니다버퍼 이름을 변경할 수 없습니다함수 %s을(를) 실행할 수 없습니다fewer lines파일
파일 이름 / 콘텍스트 / 줄
filter() 인자%s 불러들이기 끝프레임이 가장 높은 단계임: %d프레임이 0freeing %ld lines함수 %s이(가) 존재하지 않습니다gvimext.dll 에러도움말숨김 옵션in path ---
insert() 인자잘못된 속성: %s잘못된 버퍼 번호잘못된 표현식잘못된 마크 이름은(는) 장치가 아닙니다 ('opendevice' 옵션으로 막힘)은(는) 디렉토리입니다은(는) 파일이 아닙니다파일 혹은 쓸 수 있는 장치가 아닙니다읽기 전용입니다 (덮어쓰려면 ! 더하기)키보드 인터럽트%4ld 줄:라인 %6d, 단어 %6d - %s%ld 줄%ld / %ld 줄 --%d%%-- 칸 %ld 줄: %s%ld 줄: "%s"을(를) 불러 들일 수 없습니다%ld 줄: "%s" 불러들이는 중line less줄 번호가 범위를 벗어났습니다줄 번호가 범위를 벗어났습니다list 색인이 범위를 벗어났습니다list가 잠겨있습니다로그아웃map() 인자마크가 설정되지 않았습니다match %dmatch %d of %dmaximal mch_get_shellsize: 콘솔이 아닌가??
메뉴에서 편집->전역 설정->삽입 모드 토글을 선택하시면 메뉴에서 편집->전역 설정->Vi 호환 토글을 선택하시면   이에 대한 정보를 보려면    메뉴에서 도움말->고아  선택이에 대한 정보를 보려면    메뉴 도움말->Sponsor/Registerminimal modelinemore linemore lines이 GUI는 netbeans를 지원하지 않습니다
새 쉘이 시작되었습니다
아니오cscope 연결이 없습니다
그런 탭 페이지가 없습니다그런 창은 없습니다동기맞춤 없음Vim sandbox에서는 허용되지 않습니다not found '%s'에서 찾을 수 없음: "%s"아직 구현되지 않았습니다값이 0보다 크거나 같아야 합니다값이 0보다 커야 합니다pe_line_count가 0입니다pre-vimrc 명령 행읽기 전용 속성: 버퍼기록중remove() 인자%s(으)로 바꿈 (y/n/a/q/l/^E/^Y)?reverse() 인자행 %d 열 %d끝까지 찾았음, 처음부터 계속처음까지 찾았음, 끝에서 계속shell 쉘이 %d을(를) 돌려주었습니다셧다운sort() 인자"%s"을(를) 불러들이는 중stack_idx는 0여야만 합니다문자열은 newline을 포함할 수 없습니다C-형식 주석문에 동기맞춤syncing starts tag %d of %d%s태그이름to %s on %s이에 대한 정보를 보려면    :help cp-default<엔터> 입력이에 대한 정보를 보려면    :help iccf<엔터>       입력이에 대한 정보를 보려면    :help register<엔터>   입력이에 대한 정보를 보려면    :help sponsor<엔터>    입력판 정보를 보려면           :help version8<엔터>   입력온라인 도움말을 보려면     :help<엔터> 또는 <F1>  입력끝내려면                   :q<엔터>               입력빔 기본값을 사용하려면     :set nocp<엔터>        입력%s을(를) vim list로 변경할 수 없습니다옵션 값을 얻을 수 없습니다uniq() 인자모름모르는 플래그: 모르는 옵션모르는 빔 옵션이름없는 함수 %s이(가) 존재하지 않습니다값이 C 정수 형식 대비하여 너무 큽니다값이 C 정수 형식 대비하여 너무 작습니다판 빔 에러창 번호가 범위를 벗어났습니다창이 이상합니다(클래식) GUI.Carbon GUI.Cocoa GUI.GTK2 GUI.GTK2-GNOME GUI.GTK3 GUI.GUI.Photon GUI.X11-Athena GUI.X11-Motif GUI.X11-neXtaw GUI.GUI 없음.장치 쓰기가 'opendevice' 옵션으로 막힘PK�j�Z�ɊRRvim80/lang/menu_zh_cn.gbk.vimnu�[���" Menu Translations:	Simplified Chinese

source <sfile>:p:h/menu_zh_cn.gb2312.vim
PK�j�Z��p`�`� vim80/lang/nl/LC_MESSAGES/vim.monu�[������&S�KHeIe
Zeheqe'�e/�e�e�ef !f0Bgsg�g"�g�g�g�g�gh�h,�h;�h0iGiei�i�i�i�i�i�i
�i
	jj %jFjUjij!�j�j"�j�j"k*kBkRkak|k�k�k-�k�k�k/�k8,l,el�l�l�l�l-�l m@mUmgm3�m3�m$�mn.nHnYn
sn~n�n
�n�n;�n�no#o	6o@oYo
jouo�o�o�o!�o�o�op+p3pRp Zp{p�p�p�p�p
�p�p�pq2q!Qqsq
{q�q�q�q�q�q&�q	�q�q

rr!r-r	4r
>r
LrWrir{r�r5�r�r-�r1s&Jsqs�s�s�s�s�s�s$�s#t
7tBtQtatyt�t�t�t�t�t�tuu u,u;uKu]umu
�u�u�u�u
�u�u�u�u�u
vvv&v,v0v<vKv=Ov2�v�v�v�v2�vw0w?Iw�w�w�w	�w�w�w�w
x$+xPx
px{x�x�x�x?�xy!y%3y-Yy�y%�y�y�y�yz&z,Ez#rz �z-�z0�z:{"Q{t{<�{�{�{#�{|$+|9P| �|1�|�|.�|"}2>}4q}*�}�}+�}%~(A~.j~-�~$�~�~&,=Obn������
���"�!�-�$<�a���������Ā����)�B�F�a�z�����Łс�$��!&�H�f�l�p���#����QƂ�'� B�c���	��?��PӃ$�
1�
?�$J�o�~�	������!„��"�E*�p�%��#��-ׅ�#�@�&\�������ņކ��'�6�)Q�+{�@��-��53�i�������/҈D�G�d�-�7��#� 	�:*�5e�&��"Š&�#�!0�=R�5�� Ƌ(�7�!H�,j�����Ȍ �#�&'�N�e�}�����Ѝ��0*�$[�!�� ��(Î4�,!�N�j� }�����1Տ�!$�%F�%l�%�� ��ِ��?�&P�!w���
��AÑ%�"+�"N�9q�'��(Ӓ2��*/�!Z�!|�)��%ȓ!�4�:E�&��;��;�)�0I�z�����Ε�#��!�8?�&x�#��Ö ۖ/��",�O�-`�������/З*�(+�#T�x�����̘�>�C�]�!y���9��1�%"�7H�A��?š��1�P�l���0��$כ)��N&�,u�&��Lɜ�.�D�[�$q�����,Н �� �#?�c�~�N��M�5�%Q�w�����!Ο,��93�m�'������,�&�5�H�.Z���2��2ա�%�'>�#f�3��%������3�3K��*��-ʣ$���9�L�a�~������� ̤� �7(�`�#���"å!��-&�1T�6��5���.�*=�1h�9��ԧ*�&�+F�,r�+��4˨<�+=�*i�����©ש�	��2�"A�d�w�����Ȫ����6�P�l�������:˫=�<D�6��<����"�1�+F�4r�5��4ݭ3�0F�w�D��PϮ% �F�e�������!ӯ���"�B�1W�����"��ذ��!�4�H�`�u����� ������6%�#\���)��&ƲK�9� L�m�������ӳ�"�&%�#L�%p�7��5δ�!�)@�j�������׵���0*�[�r�����4ƶ.��$*�1O�;����.ͷ*��'�$G�l�%��,��ڸ��&�&C�j� ����Ĺ߹+�� %�F�Y�6s�#��2κ9�>;�8z�1���)� -�)N�x�)��"���#��"�"@�)c�����%˽ �+�$>�c���!��0¾��'�B�"_�!��9��8޿$�/<�l�����+��%�1	�);�e�y�'��%���&��!�%A�'g�%��'��-��2�>�S�$h�����"����
�!-�1O�&����!��!��(	�2�L�+l�8����7��E(�n���(������/��#�=�M�i� ��0����!��,�;�M�f�0|�.�������9�Y�w�3����%��2	�0<�!m�;��R���*=�h���(����+��+
�9�.Y�/��������!�"6�BY����������)1�'[�����'��	����	�
��.1�.`�6������#��	��#�;�R�g�
t�a�������(��
&�	1�%;�a�
m�x���)����
����
��	��-�?�T�r�������
����	������
�%�	7�
A�L�2b�������$��/����0�G� X�y�����������������	�#�9�L�j�.r�
��	������'��� �,�=�U�i�r���9��9���3�;�H�
T�b�k���������������
�	��3�K�Z�9g�
�����������?:�Qz�	��������"�:�K�X�x�����
����'����	��4�;�G�(S�|���������0��;
� F�>g�������(����+�4�7�L�\�x���	������F���
$�
/�	=�
G�U�+j�������%��0�(C�l�1��+��*��9�MK�>��)��5�A8�4z�6��"��	�?�"Q�t���������
������ �
$�/�N�	[�e�n�}�����������
��
����	��*�7�	K�U�
e�s�
x�	������	������
����&��	��)�/�
7�B�
K�Y�`�9f�"��"��)����&�@�W�i�m�1��
��$��"��<�H�[�k�~���H��C��2�F�c�v���������	�������� ��-�-C�q�����=����
�$�D�P�k���
������������/���
,� :� [�|�
������������	��)�=�D�Q�Z�1i�1����	��
��(����.�@�O�^�c�
�� ����������	�"�.�$?�$d�����
������&��.�.:�.i�.��.��.��.%�&T�{���������	������%��3�rO�����
����(�/4�d�z���?��0��
�%�&-�T�e���������G��>��(�F�c�s������������3�?�O�f� ����!���!�� �7�
H�V�v�����1���
�G��T?�-������0+�\�z���#��=�;�"?�b���
����
����
��=�A�P�%a�����������
���!�7�G�f��� ��	��"������
/�:�
F�T�c�~���+���
��� (5:'?gs��
�
������#?5
u1�8�6�%?Ui��5��


 2Jau�����"2GXd
����
� ��


4	?IQW[j}O�B�
+I?��;��!
0";^p!�'� �
��'6GR�%�%�,�&	'F	n	�	 �	�	+�	7
-<
&j
3�
9�
F�
"Fi>|�!�3�!-<Aj%�+��5
2D
3w
6�
6�
%+?)k)�7�6�#.R2m������(>M`	s}0���$�#� 3:$G"l�����(�(D!_���	�)��3&Dkq w
�*�	�b�> \(}���E�X
v�
�(������&
C%NOt!�'�';6r��)��	=!W!y*��)�-C:4~#�;�!5OkB�T�"?=[5�%�"�>>W-�1�,�2#(VMF�$89Cr*�/�1E-X(�'��!�" : "Y | -� $� >� 4+!.`!)�!/�!9�!1#"U"q")�"(�""�"9�"6# U#/v#+�#%�#%�#$;$OX$A�$&�$%+%N:%1�%�%%�%M&0O&*�&H�&3�&'(',P':}'*�'-�'D(>V(4�(Q�(H);e)@�)/�)$*#7* [*|*+�*%�*D�*93+m+�+$�+C�+3,C,@X,�,�,�,+�,3-)I-#s-�-$�-
�-&�-.V-.�.$�.$�."�.>/;O/2�/>�/R�/DP0$�0%�0%�01#1%@1;f1+�10�1\�13\2+�2Z�2323M3!l32�3$�3!�3 4!)4%K4)q4�4�4V�4V'5 ~5/�5$�5$�5$6+>6=j6�6<�6!�65!7
W7)e7+�7)�7�7�718C86^89�8�8�8-9%298X91�9�9�9)�9#:I@:�:.�:0�:!	;!+;M;g;'{;�;�;�;�;"<$<&@<Jg<(�<!�<+�<')=%Q=!w=7�=<�=A>@P>*�>7�>*�>J?Tj?!�?A�?4#@>X@1�@0�@7�@J2A0}A3�A�A�AB&B>BZBsB�B%�B�B#�B$C/)C"YC!|C�C!�C�C�CD0D!KDmDE�DD�DJE?\EF�E�E#F%F;=FByFN�FGGLSGE�G�GPH]RH+�H#�H'I#(ILIbI"I�I�I�I�IA
JLJiJ#�J�J�J.�JKK8KRKhK�K�K+�K�K�KL3/L&cL�L0�L&�LZM\M&qM�M�M�M�M�MN"'N%JN"pN*�N:�N8�N 2O"SO,vO�O�O�O�O&P2PMPDeP�P1�P,�P%Q>EQ;�Q.�Q8�QD(RmR2~R4�R-�R+S$@S/eS3�S�S�S�S5T2GTzT$�T�T�T�TKU#hU�U�U>�U'V3(VD\V@�VD�V<'W)dW"�W'�W)�WX0 X#QXuX(�X!�X�X=�X5YOY5lY#�Y6�Y'�Y0%Z!VZ&xZ4�Z�Z�Z[#[&B[+i[E�[2�[&\)5\ _\ �\�\=�\(�\6]6P]�]�]3�]$�]^/+^[^-v^)�^'�^,�^-#_0Q_�_�_)�_&�_#�_)`$H`$m`%�`=�`)�` a'=aea'�a�a'�a2�aD'b(lbG�bR�b0cBc,_c�c"�c7�c�c
d)#dMd2gd:�d�d$�d6eNegee3�e6�e'f%)f,Of)|f$�f�f<�f&g2>g5qg6�g(�gKhbSh"�h3�h
i'i1Ciui2�i-�i'�i2j;Mj#�j�j�j.�j,kXFk"�k�k�k�k'l$>l.cl#�l �l)�lm!m	4m>mPmHjm3�mB�m*n/n)Cnmnzn�n�n�n�n	�nq�nno	o�o7�o�o�o5�op
,p(7p`p.sp�p
�p�p
�p�p�pq q8qVqjq�q�q�q
�q�q�q�q$�qr	3r=rQr2gr�r�r�r(�r<�r
-s;sSsps9�s!�s�s�st/*t
Ztht�t�t�t$�t�t$�t	u4u
Pu^u(gu�u1�u�u
�u�uv3vKvQv"nvN�v:�v'w	CwMw^w
nw|w�w�w�w'�w�w�w
x x/x
DxRxqx�x�xK�x
�xyy&,y&Sy%zyI�y]�yHzQzkz�z"�z�z�z �z{{1{C{S{&\{)�{�{#�{�{
�{�{/|4|Q|k|x|�|9�|D�| )}@J}�}�}#�}5�}~
~!~*~ 3~
T~b~~�~�~�~�~C�~$5APYf(z� ��0�31�&e�"��1��5�7�MO�C��_�1A�=s�[��6
�6D�+{���N��)�-�J�e�|�����Ƅ���
�

��4�C�
P�[�l�s�������ʅׅ�����+�7�F�U�e�v���������	��
��ȆՆ
ۆ�/� �9�F�L�T�c�
l�z���,��1��2�5�L�[�`��������0ӈ�9�1K�D}� ‰���#�A�M\�V���,!�N�*j�	��������	��ŋ׋�*�2/�2b���!�� ˌ<�)�<�3L�
������čɍٍ����'�6?�
v���'��,�����	��
2�@�_�u�"����	Ï͏��"�1*�
\�g�s�.�����̐����!�3�$B�g�������ő"͑�'�'(�	P�(Z�
��(������4ے%�.6�.e�/��6ē*��8&�_�h��������#��ؔ/�C�*��vY4?���\"����M�����f�������O�IB��
g����_P��E3����`��#������6�����D$E�)H�6����u��9�!+�X$��(a�w~q��qq[�G-m0Re��d��Lx����I
S}��.qH�D�b��M|?��z�6}�b�J�j�-`�o
/N!��bh�;@Q|���}]c�����[%��p
������Y���X��"�t�>J���w��8�Z�O�7x��;;��&t{\u��2�R���+u.{�WT 1���@(f���Bxd�K�UZ�T{[v��K!8,�"�#���\i�	����T������d���	#�������'�^@��e����4,���C�C3P�IZx�^d����n�}L�'�������V��Q���R��%]�������9��^�K���i8HT��1s��<��5W����r�!�.�f\?$�o���k4
��F��Y:�/ Ss�F����
�������p�
���JW��_1�Ic�8f�E���b?0k��N�g(e�&��n�y ��p�G{�,��i�;���oW��r�y,D���
`�jS�����F_��O�����.���h-�`g��k��*F��@�������U3�a?�)�/^��/���L��UX��5=mv�������#''�
Rb3����7�H��)�i�	Vt����5f~��<'��Ah�:=�ut�h,g���#z��B�Y����n~�"2�%C�C��|<��4"���X�E�]������� (n����e��rj��R<>&��SJ����0�K��h�9A|�����H�l(�~*�mL�E��*@�w�-Am���8Q�cZ�=sO_��PL�1�7A��t�u��x�:Ov��B��5��P3�����>�v�$����*y��so�w�M^/�!�r�l��9}�	&�V�P=4��]��	�a��;+`�>G[���5��Q0��U�)��k:�w��<2��{�y�Y��� ���6��p�W�+���G��qQ�X�����N�DeVasB���JkN�o���l�A���Tj
��cI:=K1�zVNC�.�����cZ�S�n�M��~z�0�2l���|�����2�&>���zF_�6i��9��)�p+d\7�l�%G�a�D�-�m$r��]���g�%j��7������yM�U�����[�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find assignments to

    Name        Args Range Complete  Definition
   #   line
   or:
# %s History (newest to oldest):

# Buffer list:

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Options ---
--- Registers ---
--- Signs ---
--- Terminal codes ---
16-bit MS-DOS version
32-bit MS-DOS version
Big version 
Compiled 
Extra patches: 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X-versie
MacOS version
More info with: "vim -h"

Normal version 
OpenVMS version
RISC OS version
Sending message to terminate child process.

Small version 
Tiny version 
WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.

             dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s   In current directory:
   In directory    Using specified name:
   dated:    host name:   (Already listed)  DEBUG BUILD  NOT FOUND # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (not supported) (replace) (replace) Scroll (^E/^Y) (still running) Adding CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE SELECT SELECT BLOCK SELECT LINE Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended in Win32s mode in line %ld; info kind file
 marks oldfiles on %ld lines on 1 line vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d files to edit
%d more files to edit.  Quit anyway?%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No
&Cancel'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-R			Readonly mode (like "view")-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-Z			Restricted mode (like "rvim")-b			Binary mode-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-g			Run using GUI (like "gvim")-h  or  --help	Print Help (this message) and exit-l			Lisp mode-m			Modifications (writing files) not allowed-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-s			Silent (batch) mode (only for "ex")-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-y			Easy mode (like "evim", modeless)1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution<%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %p><cannot open> <empty><window %d><window object (deleted) at %p><window object (unknown) at %p>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %oAdd a new databaseAdded cscope database %sAllAll cscope databases resetAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!BotBreakpoint in "%s%s" line %ldBrowse classCan't find temp file for conversionCancelCannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Conversion with 'charconvert' failedCscope tag: %sCurrent %slanguage: "%s"DirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDouble ; in list of variablesDownE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE239: Invalid sign text: %sE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E28: No such highlight group name: %sE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E301: Oops, lost the swap file!!!E313: Cannot preserve, there is no swap fileE314: Preserve failedE319: Sorry, the command is not available in this versionE321: Could not reload "%s"E324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE33: No previous substitute regular expressionE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E353: Nothing in register %sE355: Unknown option: %sE359: Screen mode setting not supportedE35: No previous regular expressionE363: pattern uses more memory than 'maxmempattern'E365: Failed to print PostScript fileE367: No such group: "%s"E36: Not enough roomE370: Could not load library %sE371: Command not foundE37: No write since last change (add ! to override)E383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E389: Couldn't find patternE38: Null argumentE39: Number expectedE40: Can't open errorfile %sE41: Out of memory!E426: tag not found: %sE42: No ErrorsE433: No tags fileE438: u_undo: line numbers wrongE43: Damaged match stringE441: There is no preview windowE442: Can't split topleft and botright at the same timeE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE521: Number required: &%s = '%s'E523: Not allowed hereE52: Unmatched \z(E535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE544: Keymap file not foundE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE554: Syntax error in %s{...}E55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE599: Value of 'imactivatekey' is invalidE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE610: Can't load Zap font '%s'E611: Can't use font %sE612: Too many signs definedE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E75: Name too longE764: Option '%s' is not setE768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E773: Symlink loop for "%s"E77: Too many file namesE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE78: Unknown markE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeEdit FileEdit File in new windowEncoding:End of functionEnd of sourced fileEnter number of swap file to use (0 to quit): Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError detected while processing %s:ExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpressionFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:Font '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphIllegal file nameIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterruptedInvalid argument forInvalid font specificationKill a connectionLinking: Match caseMatch whole word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Modified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNew tabNo abbreviation foundNo breakpoints definedNo mapping foundNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo user-defined commands foundNot UsedNothing to undoOKOpen Tab...Open tab...Opening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePathname:Pattern found in every line: %sPattern not foundPress ENTER or type command to continuePrint job sent.Printed: %sPrinting abortedPrinting page %d (%d%%)Query for a patternQuestionReading from stdin...Reading viminfo file "%s"%s%s%sRecovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeSNiFF+ is currently Save AsSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSource Vim scriptSponsor Vim development!Style:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tab page %dThanks for flying VimThe only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many edit argumentsTopType  :quit<Enter>  to exit VimUnable to register a command server nameUnknownUnknown option argumentUntitledUpUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'WARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Entered other buffer unexpectedly (check autocommands)Warning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing viminfo file "%s"Xref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix list][READ ERRORS][RO][Read errors][Scratch][character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)attempt to refer to deleted bufferattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdon't quit the editor until the file is successfully written!environment variableerror handlerexpressions disabled at compile timefewer linesfilename / context / line
finished sourcing %shelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    modelinemore linemore linesnetbeans is not supported with this GUI
nono cscope connections
no specific matchno such bufferno such windownot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepre-vimrc command linereadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshutdownsoftspace must be an integersourcing "%s"string cannot contain newlinestagnametype   :q<Enter>               to exittype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype :set nocp<Enter> for Vim defaultsunknownunknown flag: unknown optionunknown vimOptionversion vim errorwindow index is out of rangewindow is invalidwritelines() requires list of stringswriting to device disabled with 'opendevice' optionProject-Id-Version: vim 7.3
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2011-05-29 07:43+0200
PO-Revision-Date: 2012-03-28 08:07+0200
Last-Translator: YOUR NAME <E-MAIL@ADDRESS>
Language-Team: Dutch <vertaling@vrijschrift.nl>
Language: nl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n != 1);

	Laatst ingesteld door 

Argumenten:


Gebruik:
           bewerkt: 
         [onbruikbaar op deze computer]
         [onbruikbaar met deze versie van Vim]
         host-naam: 
    gebruikersnaam: 
         proces-id: 
       c: zoek functies die deze functie aanroepen
       d: zoek functies die door deze functie worden aangeroepen
       e: zoek op dit egrep-patroon
       f: zoek dit bestand
       g: zoek deze definitie
       i: zoek bestanden #inclusief dit bestand
       s: zoek dit C-symbool
       t: zoek toekenningen aan

    Naam        Args Berk.  Compleet  Definitie
   #   regel
   of:
# %s Historie (jongste naar oudste):

# Bufferlijst:

# Laatste %szoekpatroon:
~
# Laatst vervangingsstring:
$
# Registers:

# globale variabelen:

(1) Mogelijk wordt dit bestand met een ander programma bewerkt.
    Als dit het geval is, pas dan op niet met twee verschillende
    versies van hetzelfde bestand te eindigen bij het bewerken.

(2) Een sessie waarin dit bestand werd bewerkt is onverhoeds gestopt.

(Een advies is dit bestand onder een andere naam op te slaan

--- Auto-Commands ---
--- Globale optiewaarden ---
--- Lokale optiewaarden ---
--- Opties ---
--- Registers ---
--- Tekens ---
--- Terminal-codes ---
16-bit MS-DOS-versie
32-bit MS-DOS-versie
Grote versie 
Gecompileerd 
Extra 'patches': 
Er is een wisselbestand aangetroffen met de naam "
Enorme versie 
Inclusief 'patches': 
MS-Windows 16-bit-versie
MS-Windows 16/32-bit GUI-versie
MS-Windows 32-bit GUIversie
MS-Windows 32-bit console-versie
MS-Windows 64-bit GUI-versie
MS-Windows 64-bit console-versie
MacOS X (unix)-versie
MacOS X version
MacOS-versie
Meer informatie via: "vim -h"

Normale versie 
OpenVMS-versie
RISC OS-versie
Bericht versturen om kindproces te beëindigen.

Kleine versie 
Mini versie 
WAARSCHUWING: oorspronkelijk bestand kan verloren gaan of beschadigen

Daar waar hoofdletters genegeerd worden kan met / vlag in hoofdletters gezet worden
Het .swp-bestand kan nu verwijderd worden.

             datum:           eigenaar:          [openen is onmogelijk]         [lezen is onmogelijk]         [lijkt geen Vvim-wisselbestand te zijn]         [van Vim-versie 3.0]      bestandsnaam:       -- geen --
    NIEUWER dan het wisselbestand!
    Als dit het geval is, gebruikt dan ":recover" of "vim -r     Als dit al gedaan is, verwijder dan het wisselbestand "    Stop of ga aandachtig verder.
    regel=%ld  id=%d  naam=%s   In huidige map:
   In map    Gebruikt opgegeven naam:
   datum:   host-naam: (Reeds getoond)  DEBUG BUILD  NIET GEVONDEN # pid    databanknaam                        padvoorvoegsel
 (onderbroken) (NIET GEVONDEN) (bevat eerder getoonde overeenkomst) (invoegen) (invoegen) scroll (^E/^Y)(niet ondersteund) (vervangen) (vervangen) scroll (^E/^Y)    (nog actief) toevoegen OMZETTINGFOUT opdrachtregelvoltooiing (^V^N^P)Kopie %d van %d definitievoltooiiing (^D^N^P) Dictionaryvoltooiing (^K^N^P) MISLUKT bestandsnaamvoltooiing (^F^N^P) INVOEGEN lokaal-trefwoordvoltooiing (^N^P) trefwoordvoltooiing (^N^P) omni-voltooiing (^O^N^P) Padpatroonvoltooiing (^N^P) VERVANGEN SELECTEREN BLOKSELECTIE REGELSELECTIE spellingsuggestie (s^N^P) tag-voltooiing (^]^N^P) Thesaurusvoltooiing (^T^N^P) gebruikergedefinieerde voltooiing (^U^N^P) VISUEEL VISUEEL BLOK VISUELE REGEL gehele-regelvoltooiing (^L^N^P) [Gewijzigd] [a] [w] ^X-modus (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) toegevoegd in Win32s-modus in regel %ld; infosoor bestand
 markering oud-bestanden op %ld regels op 1 regel vim [argumenten] met OLE-ondersteuning opgeslagen"
    om dit bericht te voorkomen.
"
    om de aanpassingen te herstellen (zie ":help recovery").
" bestaat al!# Dit viminfo-bestand is aangemaakt door Vim %s.
# Waarde van 'encoding' bij het opslaan van dit bestand
# Bewerken is toegestaan, maar doe het met aandacht!

%-5s: %s%*s (Gebruik: %s)%3d  %s %s  regel %ld%<%f%h%m%=pagina %N%d buffers verwijderd%d buffers gelost%d buffers gewist%d bestanden om te bewerken
%d bestanden wachten nog op bewerking.  Toch stoppen?%ld %s; %s #%ld  %s%ld koln; %ld tekens%ld regels minder%ld regels %sed %d maal%ld regels %sed 1 maal%ld regels --%d%%--%ld regels gewijzigd%ld regels gefilterd%ld regels ingesprongen %ld regels verplaatst%ld in te springen regels... %ld regels gekopieerd%ld regels, %ld overeenkomsten%ld regels meer%ld seconden geleden%ld vervangingen%lld tekens%s 'Auto commands' voor "%s"%s afgebroken%s afgedankt%s regel %ld%s aanhanging gemaakt%s voortgezet%s komt terug met de waarde #%ld%s komt terug met de waarde %s%s, regel %ld%sviminfo: %s in regel: &Annuleren&Afwijzen&Filter&Hulp&Ok&OK
&Annuleren&OK
Bestand &Laden&OkAlleen-lezen &openen
Toch b&ewerken
He&rstellen
Verwij&deren
&Stoppen
&AfbrekenAlleen-lezen &openen
Toch b&ewerken
He&rstellen
&Stoppen
&AfbrekenVe&rvangen&Herstellen&Ja
&Nee
&Annuleren'-nb' kan niet worden gebruikt: was tijdens compilatie niet ingeschakeld
'Dictionary'-optie is leeg'history'-optie is nul'alleen-lezen'-optie is inschakeld voor "%s".
Toch opslaan?'thesaurus'-optie is leeg(+%ld voor BOD)(Onderbroken) (ongeldig)+			Aan einde van bestand beginnen+-%s%3ld regels: +--%3ld regels gevouwen +<lnum>		Op regel <lnum> beginnen-               lees tekst vanuit stdin--			Hierna alleen bestandsnamen-- meer ---- doorzoeken...--- bevatte bestanden --Verwijderd---- geen regels in buffer ----cmd <opdracht>	Opdracht <opdracht> uitvoeren voor enige vimrc-bestandargument van --cmd--literal		Jokertekens niet vervangen--noplugin		Geen plugin-scripts laden--version		Versieinformatie tonen en stoppen-A			In Arabische modus starten-C			Uitwisselbaar met Vi: 'compatible'-D			Foutopspoormodus-F			In Perzische modus starten-H			In Hebrewsche modus starten-L			Gelijk aan -r-M			Tekstuele aanpassingen niet toegestaan-N			Niet volledig met Vi uitwisselbaar: 'nocompatible'-O[N]		Gelijk aan -o maar vertikaal gesplitst-R			Alleen-lezen modus (zoals "view")-T <terminal>	Terminalsoort op <terminal> instellen-U <gvimrc>		Gebruik <gvimrc> in plaats van enige .gvimrc-V[N][fname]		Wees uitbundig [niveau N] [schrijf berichten naar fname]-Z			Beperkte modus (zoals "rvim")-b			Binaire modus-c <opdracht>		Opdracht <opdracht> uitvoeren na eerste bestandargument van -c-d			Diff-modus (zoals "vimdiff")-dev <device>		Gebruik <device> voor in- en uitvoer-e			Ex-modus (zoals "ex")-f			Gebruik geen newcli om venster te openen-f  of  --nofork	Voorgrond: niet afsplitsen tijdens opstarten GUI-g			Met GUI opstarten (zoals "gvim")-h  of  --help	Dit bericht tonen en stoppen-l			Lisp-modus-m			Aanpassingen (bestanden opslaan) niet toegestaan-n			Geen wisselbestand, alleen geheugen gebruiken-o[N]		N vensters openen (standaard: 1 per bestand)-p[N]		N tabpagina's openen (standaard: 1 per bestand)-q [foutbestand]  bewerk bestand dat eerste fout bevat-r			Wisselbestanden tonen en stoppen-r (bestandsnaam)	Herstel ontspoorde sessie-register		Deze gvim voor OLE registreren-s			Stille (bulk)modus (alleen bij "ex")-t tag          bewerk bestand waar tag is gedefinieerd-u <vimrc>		Gebruik <vimrc> in plaats van enige .vimrc-unregister		gvim afmelden voor OLE-v			Vi-modus (zoals "vi")-y			Eenvoudige modus (zoals "evim", zonder modus)1 buffer verwijderd1 buffer gelost1 buffer gewist1 teken1 regel %sed %d maal1 regel %sed 1 maal1 regel --%d%%--1 regel gewijzigd1 regel ingesprongen 1 regel minder1 regel verplaatst1 regel gekopieerd1 regel, 1 overeenkomst1 bestand wacht nog op bewerking.  Toch stoppen?1 regel meer1 vervanging<%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer-object (verwijderd) bij %p><kan niet openen> <leeg><venster %d><venster-object (verwijderd) bij %p><venster-object (onbekend) bij %p>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %oNieuwe databank toevoegencscope-databank %s toegevoegdAllesAlle cscope-databanken opnieuw ingesteldReeds de nieuwste wijzigingReeds de laatste wijzigingReeds beperkt tot één tabpaginaReeds beperkt tot een vensterBestand toevoegenArgument ontbreekt naBij regelPoging scriptbestand wederom te openen: "Terug naar origineelTeruggaand bereik opgegeven, wisselen is toegestaanWord een geregistreerde Vim-gebruiker!biep!Bodem'Breakpoint' in "%s%s" regel %ldBekijk klasseTijdelijk bestand voor conversie ontbreektAnnulerenVerbinden met SNiFF+ is mislukt. Controleer omgevingsvariabelen (sniffemacs moet in $PATH staan).
Gefaald tijdens aanmaken van Openen om te lezen is mislukt: "Openen voor script-uitvoer is mislukt: "kan geen map laden: "%s"SluitenTabblad sluitenkol %s van %s; regel %ld van %ld; woord %ld van %ld; byte %ld van %ldkol %s van %s; regel %ld van %ld; woord %ld van %ld; teken %ld van %ld; byte %ld van %ldOpdrachtregelCompilatie: Compiler: Conversatie met 'charconvert' is misluktCscope-tag: %sHuidige %s-taal: "%s"RichtingMappenMap	*.niets
Wilt u er zeker naar schrijvenDubbele ; in variabelenlijstNeerwaartsE100: geen ander buffer in diff-modusE101: meer dan twee buffers in diff-modus, weet niet welke gebruikt moet wordenE102: kan buffer "%s" niet vindenE103: buffer "%s" is niet in diff-modusE104: Escape in digraph niet toegestaanE105: Gebruik van :loadkeymap niet in een 'sourced' bestandE107: ontbrekende haakjes: %sE108: onbekende variabele: "%s"E109: ':' ontbreekt na '?'E10: \ moet worden gevolgd door /, ? of &E110: ')' ontbreektE111: ontbrekende ']'E112: optienaam ontbreekt: %sE113: onbekende optie: %sE114: ontbrekend aanhaalteken: %sE115: ontbrekend aanhaalteken: %sE116: ongeldige argumenten voor functie %sE117: onbekende functie: %sE118: te veel argumenten voor functie: %sE119: onvoldoende argumenten voor functie: %sE11: ongeldig in opdrachtregelvenster; <CR> voert uit, CTRL-C stoptE120: gebruik van <SID> buiten een scriptcontext: %sE121: ongedefinieerde variabele: %sE122: function %s bestaat reeds, voeg ! toe om te vervangenE123: ongedefinieerde functie: %sE124: ontbrekende '(': %sE125: ongeldig argument: %sE126: ontbrekende :endfunctionE127: kan functie %s niet opnieuw definiëren, het is in gebruikE128: functionnaam moet met een hoofdletter beginnen of een dubbelepunt bevatten: %sE129: functienaam is vereistE130: onbekende functie: %sE131: functie %s wordt gebruikt en kan niet worden verwijderdE132: diepte functieaanroep overstijgt 'maxfuncdepth'E133: :return niet binnen een functieE134: verplaats regels in zichzelfE135: *Filter* Autocommands mogen huidige buffer niet wijzigenE136: viminfo: teveel fouten, restand van bestand overgeslagenE137: viminfo-bestand is niet schrijfbaar: %sE138: kan niet naar viminfo-bestand %s schrijven!E139: bestand is in een ander buffer geladenE140: gebruik ! om gedeeltelijk buffer op te slaanE141: buffer %ld heeft geen bestandsnaamE142: bestand is niet opgeslagen: opslaan is uitgeschakeld door 'write'-optieE143: 'Autocommands' hebben het nieuwe buffer %s onverwacht verwijderdE144: niet-numeriek argument voor :zE145: in rvim zijn shell-opdrachten zijn niet toegestaanE146: reguliere expressies kunnen niet begrensd worden door lettersE147: kan :global niet recursief uitvoerenE148: reguliere expressies ontbreken bij globalE149: helaas, geen hulp voor %sE14: ongeldig adresE150: geen map: %sE152: kan %s niet openen om naar te schrijvenE153: kan %s niet openen om uit te lezenE154: dubbele tag "%s" in bestand %s/%sE155: onbekend margeteken: %sE156: ontbrekende naam margetekenE157: ongeldige id margeteken: %ldE158: ongeldige buffernaam: %sE159: ontbrekend nummer margetekenE15: ongeldige expressie: %sE160: onbekende opdracht voor margetekens: %sE161: 'Breakpoint' niet gevonden: %sE162: niets opgeslagen sinds laatste wijziging van buffer "%s"E163: slechts een bestand beschikbaar voor bewerkingE164: kan niet verder terug dan eerste bestandE165: kan niet verder dan laatste bestandE166: kan niet schrijven naar gekoppeld bestandE167: :scriptencoding buiten een geladen bestand gebruiktE168: :finish buiten een geladen bestand gebruiktE169: opdracht te recursiefE16: ongeldig bereikE172: slechts een bestandsnaam toegestaanE173: %ld bestanden wachten op bewerkingE173: 1 bestand wacht op bewerkingE174: opdracht bestaat al: voeg ! toe om het te vervangenE175: geen attribute opgegevenE176: ongeldig aantal argumentenE177: aantal kan niet tweemaal worden opgegevenE178: ongeldige standaardwaarde voor aantalE179: argument vereist voor -completeE180: ongeldige voltooiingswaarde: %sE181: ongeldig attribute: %sE182: ongeldige opdrachtnaamE183: door gebruiker gedefinieerde opdrachten moet een een hoofdletter beginnenE184: deze door gebruiker gedefinieerde opdracht bestaat niet: %sE185: kan kleurenschema %s niet vindenE186: geen voorgaande mapE187: onbekendE188: verkrijgen van vensterpositie is voor dit platform niet geïmplementeerdE189: "%s" bestaat al (voeg ! toe om te forceren)E18: onverwachte tekens in :letE190: "%s" kan niet worden beschrevenE191: argument moet een letter zijn of een aanhaalteken, voor of achterwaartsE192: recursief gebruik van :normal gaat te diepE193: :endfunction niet binnen een functieE194: er is geen wisselende bestandsnaam beschikbaar om '#' te vervangenE195: het 'viminfo'-bestand kan niet worden gelezenE196: deze versie bevat geen 'digraphs'E197: taal kan niet ingesteld worden op "%s"E198: cmd_pchar is langer dan toegestaan voor een opdrachtE199: actieve venster of buffer verwijderdE19: markering heeft een ongeldig regelnummerE200: *ReadPre autocommands hebben het bestand niet-leesbaar gemaaktE201: *ReadPre autocommands mogen huidige buffer niet wijzigenE202: bestand niet-leesbaar gemaakt door conversatieE203: autocommands hebben buffer verwijderd of gelost die moest worden opgeslagenE204: autocommand heeft op onverwachte wijze het aantal regels gewijzigdE205: patch-modus: kan oorspronkelijke bestand niet opslaanE206: patch-modus: kan oorspronkelijk leeg bestand niet aanrakenE207: back-upbestand kan niet worden verwijderdE208: schrijven naar "%s" is misluktE209: afsluiten van "%s" is misluktE20: Markering is niet ingesteldE210: lezen van "%s" is misluktE211: bestand "%s" is niet meer beschikbaarE212: kan niet schrijven naar bestandE213: kan niet omzetten (voeg ! toe om zonder omzetting op te slaan)E214: kan tijdelijk bestand voor wegschrijven niet vindenE215: ongeldig teken na *: %sE216: onbekend 'event': %sE216: onbekende groep of 'event': %sE217: autocommands kunnen niet voor alle 'events' worden uitgevoerdE218: hierarchie van aanroepen autocommands te diepE219: ontbrekende {.E21: kan geen veranderingen maken, 'modifiable' is uitgeschakeldE220: ontbrekende }.E222: aan leesbuffer toevoegenE223: recursieve toewijzingE224: algemene afkorting bestaat al voor %sE225: er bestaat al een algemene toewijzing voor %sE226: er bestaat al een afkorting voor %sE227: toewijzing bestaat al voor %sE228: makemap: ongeldige modusE229: de GUI kan niet worden gestartE22: scripts E230: kan niet gelezen worden uit "%s"E231: 'guifontwide' ongeldigE232: aanmaken 'BalloonEval' met zowel een bericht als een 'callback' is niet mogelijkE233: openen scherm is misluktE239: ongeldige tekst margeteken: %sE240: geen verbinding met Vim-serverE241: verzenden naar %s onmogelijkE243: argument niet ondersteund: "-%s"; gebruik de OLE-versie.E246: buffer verwijderd door 'autocommand' FileChangedShellE247: "%s" niet gevonden als geregistreerde serverE248: versturen van opdracht naar het doelprogramma is misluktE250: lettertypen voor de volgende tekenverzamelingen ontbreken in verzameling %s:E251: registereigenschap van VIM-instantie is misvormd.  Verwijderd!E252: naam lettertypeverzameling: %sE253: naam lettertypeverzameling: %s
E254: kan de kleur %s niet reserverenE256: 'Hangul automata'-foutE257: cstag: tag is gevondenE258: verzenden nar client onmogelijkE259: cscope-zoekopdracht %s van %s leverde geen resultatenE261: cscope-verbinding %s is niet gevondenE262: lezen van cscope-verbinding %ld is misluktE263: helaas, deze opdracht is uitgeschakeld. De Python-bibliotheek kan niet worden geladen.E264: Python: initialiseren I/O-objecten is misluktE265: $_ moet een instantie van String zijnE266: helaas, deze opdracht is uitgeschakeld. De Ruby-bibliotheek kan niet worden geladen.E267: onverwacht resultaatE268: onverwachte volgendeE269: onverwachte onderbrekingE270: onverwachte herstelopdrachtE271: hernieuwde poging buiten de reddingsclausuleE272: niet-afgehandelde uitzonderingE273: onbekende longjmp-status %dE274: Sniff: leesfout. VerbrokenE275: onbekend SNiFF+-verzoek: %sE276: verbinden met SNiFF+ is misluktE277: lezen van serverantwoord onmogelijkE278: SNiFF+ niet verbondenE279: geen SNiFF+-bufferE280: TCL FATALE FOUT: reflist misschien corrupt!? Meld dit a.u.b. aan vim-dev@vim.orgE281: Tcl-fout: afsluitcode is geen geheel getal!? Meld dit a.u.b. aan vim-dev@vim.orgE282: Kan niet lezen vanuit "%s"E28: naam van deze oplichtgroep is onbekend: %sE298: Ophalen blok nummer 0 mislukt?E298: Ophalen blok nummer 1 mislukt?E298: Ophalen blok nummer 2 mislukt?E301: Helaas, wisselbestand is verdwenen!!!E313: kan niet worden behouden, want er is geen wisselbestandE314: behouden is misluktE319: Helaas, in deze versie is de opdracht niet beschikbaarE321: kan "%s" niet opnieuw ladenE324: openen van PostScript-uitoverbestand is misluktE325: OPGELETE326: teveel wisselbestanden aangetroffenE327: deel van menu-itempad is geen submenuE328: menu bestaat alleen in andere modusE329: geen menu "%s"E32: geen bestandsnaamE33: geen eerdere reguliere expressie substitutieE34: geen eerdere opdrachtE350: kan geen vouw aanmaken met huidige 'vouwmethode'E351: kan geen vouw verwijderen met huidige 'vouwmethode'E353: niets in register %sE355: onbekende optie: %sE359: instelling schermmodus niet ondersteundE35: geen eerdere reguliere expressieE363: patroon gebruikt meer geheugen dan 'maxmempattern'E365: Afdrukken van PostScript-bestand is misluktE367: groep "%s" bestaat nietE36: onvoldoende ruimteE370: laden van bibliotheek %s is misluktE371: opdracht niet gevondenE37: niets opgeslagen sinds laatste wijziging (voeg ! toe om te forceren)E383: ongeldige zoekstring: %sE384: TOP bereikt zonder overeenkomst voor: %sE385: BODEM bereikt zonder overeenkomst voor: %sE386: verwachte '?' of '/' na ';'E389: kan zoekpatroon niet vindenE38: leeg argument (null)E39: getal verwachtE40: openen foutenbestand %s is misluktE41: te weinig geheugen!E426: tag niet gevonden: %sE42: geen foutenE433: geen tags-bestandE438: u_undo: regelnummers onjuistE43: beschadigde zoekstringE441: er is geen voorvertoningsvensterE442: kan linkerbovenzijde en rechteronderzijde niet gelijktijdig splitsenE444: sluiten laatste venster is misluktE445: ander venster blijft achterE446: cursor staat niet op een bestandsnaamE447: bestand "%s" niet in pad gevondenE449: ontvangen expressie is ongeldigE44: regexp-programma is misvormdE455: wegschrijven Postscript-uitvoerbestand is misluktE456: 'PostScript resource'-bestand "%s.ps" is niet gevondenE456: 'PostScript resource'-bestand "cidfont.ps" is niet gevondenE456: 'PostScript resource'-bestand "prolog.ps" is niet gevondenE456: Bestand "%s" kan niet worden geopendE457: kan 'Postscript resource'-bestand "%s" niet lezenE459: kan niet terug naar vorig DictionaryE45: 'alleen-lezen'-optie is ingeschakeld (voeg ! toe om te overschrijven)E460: de afsplitsing van middelen zou verloren gaan (voeg ! toe om dit toch te doen)E461: ongeldige variabelenaam: %sE462: het voorbereiden van "%s" voor het opnieuw laden is misluktE463: Regio is bescherm en kan niet worden veranderdE464: dubbelzinnig gebruik van gebruikergedefinieerde opdrachtE465: :winsize vereist twee getallen als argumentE466: :winpos vereist twee getallen als argumentE467: aangepaste voltooiing vereist een functieargumentE468: argument voor voltooiing alleen toegestaan bij aangepaste voltooiingE469: cscopequickfix-vlag %c voor %c is ongeldigE46: kan alleen-lezenvariabele "%s" niet veranderenE470: opdracht afgebrokenE471: Argument vereistE473: interne foutE474: ongeldig argumentE475: ongeldig argument: %sE476: ongeldige opdrachtE478: geen paniek!E479: geen overeenkomstE47: fout tijdens lezen foutenbestandE480: geen overeenkomst: %sE481: een bereik is niet toegestaanE482: aanmaken bestand %s is misluktE483: bepalen naam tijdelijk bestand is misluktE484: openen bestand %s is misluktE485: lezen bestand %s is misluktE486: patroon niet gevonden: %sE487: argument moet positief zijnE488: nakomende tekensE48: niet toegestaan in zandbakE490: geen vouw gevondenE492: geen editor-opdrachtE493: Teruggaand bereik opgegevenE494: w of w>> gebruikenE495: er is geen 'autocommand'-bestandsnaam om "<afile>" te vervangenE496: er is geen 'autocommand'-buffernummer om "<abuf>" te vervangenE497: er is geen 'autocommand'-naamovereenkomst om "<amatch>" te vervangenE498: er is geen :source-bestandsnaam om "<sfile>" te vervangenE499: lege bestandsnaam voor '%' of '#', werkt alleen samen met ":p:h"E49: ongeldige scroll-grootteE500: resulteert in een lege stringE501: bij bestandseindeE505: "%s" is alleen-lezen (voeg ! toe om te overschrijven)E506: kan niet naar back-upbestand schrijven (voeg hiervoor ! toe)E507: fout tijdens afsluiten van back-upbestand (voeg ! om toch af te sluiten)E508: kan bestand voor back-up niet lezen (voeg ! toe om toch te lezen)E509: kan back-upbestand niet aanmaken (voeg ! toe om dit toch aan te maken)E510: kan back-upbestand niet maken (voeg ! toe om dit toch te maken)E512: Afsluiten is misluktE513: schrijffout waarbij omzetting is mislukt (leeg 'fenc' om te overschrijven)E513: schrijffout waarbij omzetting in regel %ld is mislukt (leeg 'fenc' om te overschrijven)E514: schrijffout (is bestandssysteem vol?)E515: geen van de buffers is gelostE516: geen van de buffers is verwijderdE517: geen van de buffers is gewistE518: onbekende optieE519: optie niet ondersteundE521: 'Number' vereist: &%s = '%s'E523: hier niet toegestaanE52: \z( is niet gepaardE535: ongeldig teken na <%c>E536: komma is vereistE537: 'commentstring' moet leeg zijn of het volgende bevatten: %sE538: geen muisondersteuningE53: %s%%( is niet gepaardE540: ongepaarde expressie-volgordeE541: teveel itemsE542: ongepaarde groepenE544: bestand met toetsbindingen niet gevondenE54: %s( is niet gepaardE550: dubbelepunt ontbreektE551: ongeldige componentE552: cijfer verwachtE554: Syntaxfout in %s{...}E55: %s) is ongepaardE560: Gebruik: cs[cope] %sE561: soort cscope-zoekopdracht is onbekendE562: Gebruik: cstag <ident>E563: bevragingsfoutE563: bevraag((%s) fout: %dE564: %s is geen map of een geldige cscope-databankE566: aanmaken cscopei-pijp is misluktE567: geen cscope-verbindingenE568: dubbele cscope-databank is niet toegevoegdE570: fatale fout in cs_manage_matchesE571: Helaas, deze opdracht is uitgeschakeld: het laden van de Tcl-bibliotheek is mislukt.E572: afsluitcode %dE573: ongeldige server-id gebruikt: %sE579: te diepe :if-nestingE580: :endif zonder :ifE581: :else zonder :ifE582: :elseif zonder :ifE583: meerdere :elseE584: :elseif na :elseE585: te diepe :while/:for-nestingE586: :continue zonder :while of :forE587: :break zonder :while of :forE590: een voorvertoningsvenster bestaat alE591: 'winheight' kan niet kleiner zijn dan 'winminheight'E592: 'winwidth' kan niet kleiner zijn dan 'winminwidth'E593: vereist minstens %d regelsE594: vereist minstens %d kolommenE599: waarde van 'imactivatekey' is ongeldigE601: te diepe :try-nestingE602: :endtry zonder :tryE603: :catch zonder :tryE604: :catch na :finallyE605: uitzondering niet afgevangen: %sE606: :finally zonder :tryE607: meerdere :finallyE608: :throw exceptions met 'Vim' als voorvoegsel zijn niet mogelijkE609: Cscope-fout: %sE610: Zap-lettertype '%s' kan niet worden geladenE611: lettertype %s kan niet worden gebruiktE612: teveel margetekens gedefinieerdE614: vim_SelFile: teruggaan naar huidige map is niet mogelijkE615: vim_SelFile: vaststellen huidige map is niet mogelijkE616: vim_SelFile: lettertype %s niet gevondenE618: bestand "%s" is geen 'Postscript resource'-bestandE619: bestand "%s" is geen ondersteund 'Postscript resource'-bestandE61: geneste %s*E620: omzetten naar afdrukcodering "%s" is misluktE621: 'resource'-bestand "%s" heeft verkeerde versieE622: nieuw cscope-proces beginnen is misluktE623: voortbrengen cscope-proces is misluktE624: openen bestand "%s" is misluktE625: openen is mislukt van cscope-databank: %sE626: opvragen cscope-databankinformatie is misluktE62: geneste %s%cE63: onjuist gebruikt van \_E64: %s%c volgt op nietsE655: teveel symbolische koppelingen (oneindige lus?)E659: Python kan niet recursief worden aangeroepenE65: ongeldige terugverwijzingE661: helaas, geen '%s'-hulp voor %sE662: begin van wijzigingslijstE663: einde van wijzigingslijstE664: wijzigingslijst is leegE665: de GUI kan niet gestart worden, er is geen geldig lettertype gevondenE666: compiler niet ondersteund: %sE667: fsync is misluktE66: \z( hier niet toegestaanE670: mengelmoes van hulpbestandcoderingen binnen een taal: %sE671: kan venstertitel "%s" niet vindenE672: kan geen venster binnen MDI-applicatie openenE673: Multi-byte-codering en de tekenverzameling zijn onverenigbaar.E674: printmbcharset mag bij multi-byte-codering niet leeg zijn.E675: geen standaard lettertype opgegeven voor multi-byte-afdrukken.E676: geen overeenkomende autocommands voor 'acwrite'-bufferE677: opslaan van temp-bestand is misluktE678: onjuist teken na %s%%[dxouU]E67: \z1 en andere hier niet toegestaanE680: <buffer=%d>: ongeldig buffernummer E681: buffer is niet geladenE682: zoekpatroon of scheidingsteken is ongeldigE684: lijstindex buiten bereik: %ldE685: interne fout: %sE686: argument van %s moet een List zijnE687: minder doelen dan ListitemsE688: meer doelen dan ListitemsE689: alleen een List of Dictionary kan geïndexeerd wordenE68: ongeldig teken na \zE690: "in" ontbreekt na :forE691: List kan alleen met een Lijst worden vergelekenE692: ongeldige bewerking voor ListE693: Funcref kan alleen met Funcref worden vergelekenE694: ongeldige bewerking voor FuncrefsE695: een Funcref kan niet geïndexeerd wordenE696: komma ontbreekt in List: %sE697: einde van List ']' ontbreekt: %sE698: variabele te diep genest om een kopie te makenE699:teveel argumentenE69: ontbrekende ] na %s%%[E700: onbekende functie: %sE701: ongeldig type voor len()E702: sorteer-vergelijkfunctie misluktE703: een Funcref wordt als Number gebruiktE704: variabelenaam van Funcref moet beginnen met een hoofdletter: %sE705: variablenaam botst met bestaande functie: %sE706: variabelesoort past niet bij: %sE707: functienaam botst met variabele: %sE708: [:] moet als laatste staanE709: [:] vereist een ListwaardeE70: leeg %s%%[]E710: Listwaarde heeft meer  value has more items than targetE711: Listwaarde heeft onvoldoende itemsE712: argument van %s moet een List of Dictionary zijnE713: kan geen leeg trefwoord als Dictionary gebruikenE714: List is vereistE715: Dictionary is vereistE716: trefwoord niet aangetroffen in Dictionary: %sE717: woord bestaat al in DictionaryE718: Funcref is vereistE719: kan [:] niet met een Dictionary gebruikenE71: onjuist teken na %s%%E720: dubbelepunt in Dictionary ontbreekt: %sE721: dubbele sleutel in Dictionary: "%s"E722: komma ontbreekt in Dictionary: %sE723: einde van Dictionary '}' ontbreekt: %sE724: variabele is te diep genest om te tonenE725: dict-functie aanroep zonder Dictionary: %sE726: stap is nulE727: start na eindeE728: Dictionary gebruiken als een NumberE729: Funcref gebruiken als een StringE730: List gebruiken als een StringE731: Dictionary gebruiken als een StringE732: gebruik van :endfor met :whileE733: gebruik van :endwhile met :forE734: onjuist type variabele voor %s=E735: Dictionary kan alleen met Woordenboek worden vergelekenE736: ongeldige bewerking voor DictionaryE737: sleutel bestaat al: %sE738: kan variabelen voor %s niet tonenE739: kan map %s niet aanmakenE740: teveel argumenten voor functie %sE741: waarde is geblokkeerd: %sE742: kan waarde van %s niet veranderenE743: variabele is te diep genest om te beveiligenE744: NetBeans staat geen veranderingen in alleen-lezenbestanden toeE745: List wordt als een Number gebruiktE746: functienaam komt niet overeen met bestandsnaam van het script: %sE747: kan niet van map veranderen, buffer is gewijzigd (voeg ! toe om te forceren)E749: leeg bufferE74: opdracht te ingewikkeldE750: gebruik eerst ":profile start {fname}"E75: te lange naamE764: Optie '%s' is niet ingesteldE768: wisselbestand bestaat: %s (:silent! overschrijft)E769: ontbrekende ] na %s[E76: teveel [E773: Symbolische koppelingslus voor "%s"E77: teveel bestandsnamenE784: laatste tabpagina kan niet afgesloten wordenE785: complete() kan alleen in Invoegmodus worden gebruiktE786: bereik niet toegestaanE787: buffer is onverwacht gewijzigdE788: nu een andere buffer bewerken is niet toegestaanE78: onbekende markeringE791: toetsbinding leegE792: menunaam is leegE793: geen ander buffer in diff-modus is bewerkbaarE794: kan variabele niet instellen in de zandbak: "%s"E795: kan variabele %s niet verwijderenE79: vervangen jokertekens is misluktE804: '%' kan niet met Float worden gebruiktE805: een Float wordt als Number gebruiktE806: Float gebruiken als een StringE808: Number of Float vereistE809: #< is zonder de +eval-functionaliteit niet beschikbaarE80: opslaan is misluktE810: kan tijdelijke bestand niet lezen of opslaanE811: nu bufferinformatie wijzigen is niet toegestaanE812: buffer of buffernaam gewijzigd door autocommandsE813: sluiten autocmd-venster is misluktE814: venster kan niet sluiten want autocmd-venster blijft als enige achterE815: helaas, deze opdracht is uitgeschakeld. De MzScheme-bibliotheken kunnen niet geladen worden.E816: kan patch-uitvoer niet lezenE817: gebruik Blowfish big/little endian is onjuistE818: sha256 test misluktE819: Blowfish test misluktE81: <SID> wordt buiten de scriptcontext gebruiktE820: sizeof(uint32_t) != 4E821: bestand is met onbekende methode versleuteldE82: kan geen buffer aanmaken, beëindigen...E830: Ongedaan-nummer %ld niet gevondenE831: bf_key_init() uitgevoerd met leeg wachtwoordE83: kan geen buffer aanmaken, een andere wordt gebruikt...E84: geen aangepast buffer gevondenE85: er is geen vermelde bufferE86: Buffer %ld bestaat nietE87: kan niet voorbij het laatste buffer komenE88: kan niet vóór het eerste buffer komenE89: niets opgeslagen sinds laatste wijziging van buffer %ld (voeg ! toe om te forceren)E90: kan laatste buffer niet legenE91: 'shell'-optie is leegE92: buffer %ld niet gevondenE93: %s meermaals gevondenE94: geen overeenkomstig buffer voor %sE95: buffer met deze naam bestaat alE96: kan niet meer dan %ld buffers vergelijkenE97: kan geen verschillen genererenE98: kan diff-uitvoer niet lezenE99: huidige buffer is niet in diff-modusBestand bewerkenBestand in nieuw venster bewerkenCodering:Einde van functieEinde van geladen bestandTyp het nummer van het wisselbestand om te gebruiken (0 om te stoppen): Debug-modus gestart.  Typ "cont" om verder te gaan.Ex-modus betreden.  Typ "visual" om naar de Normaal-modus te gaan.FoutFout en onderbrekenFout opgetreden tijdens verwerken van %s:UitzonderingGevangen uitzondering: %sAfgedankte uitzondering: %sAfgeronde uitzondering: %sGeworpen uitzondering: %s%s uitvoerenExpressieBestandsrechten van "%s" zijn alleen-lezen.
Mogelijk kan er toch naar weggeschreven worden.
Proberen op te slaan?Bestand behoudenBestandenFilterZoeken & vervangen (gebruik '\\' om een '\' te vinden')&Volgende zoekenVolgende zoekenTekenreeks zoeken (gebruik '\\' om een '\' te vinden)Zoek symboolZoek naar:Lettertype '%s' heeft geen vaste breedteLettertypeselectieBreedte font%ld is niet het dubbele van font0
Font0-breedte: %ld
Font0: %s
Font1-breedte: %ld

Font1: %s
Lettertype:Rommel na optieargumentGenereer documentatie voorGegroet, Vim-gebruiker!Help arme kinderen in Uganda!Einde van paragraafOngeldige bestandsnaamongeldige registernaamOngeldig starttekenInvoerregelInvoer_wijzenOnderbrekenonderbrokenOngeldig argument voorOnjuiste specificatie van lettertypeEen verbinding verbrekenLinking: HoofdlettergevoeligAlleen volledig woordVertaald door: Erwin Poeze <erwin.poeze@gmail.com>Aangepast door Naam:Vereist %s versie %ld
Vereist Amigados versie 2.04 of nieuwer
Netbeans staat het opslaan van onveranderde buffers niet toeNieuw tabbladGeen afkorting gevondenGeen 'breakpoints' opgegevenGeen toewijzing gevondenOp cursorpositie is geen overeenkomst: de volgende zoekenGeen overeenkomstige autocommandsGeen oudere bestandenGeen wisselbestandGeen tekst om af te drukkenGeen gebruikergedefinieerde opdrachten gevondenNiet gebruiktNiets om ongedaan te makenOkTabblad openen...Tabblad openen...Openen van X-display vereiste %ld msOorspronkelijke bestand "%s"Bestaand bestand "%s" overschrijven?Pagina %dDeelopslag voor buffers van Netbeans niet toegestaanPatch-bestandPadnaam:Patroon aangetroffen in iedere regel: %spatroon niet gevondenToets ENTER of typ een opdracht om verder te gaanAfdrukopdracht verzondenAfgedrukt: %sAfdrukken afgebrokenAfdrukken van pagina %d (%d%%)Naar een patroon zoekenVraagLezen van standaardinvoer...Inlezen viminfo-bestand "%s"%s%s%sHerstel is afgerond. Inhoud van het buffer komt overeen met de bestandsinhoud.Herstel is afgerond. Controleer of het resultaat juist is.Alle verbindingen opnieuw initialiserenVervangen&Alles vervangenAlles vervangenVervang door:OphalenUit alle projecten halenUit bestand halenUit project halenwordt uitgevoerd in Vi compatible-modusSNiFF+ is momenteel Opslaan als'Redirection' opslaanSessie opslaanInstellingen opslaanBeeld opslaanveranderingen opslaan in "%s"?Doorzoeken Dictionary: %sDoorzoeken tags.doorzoeken: %sScrollbar-widget: vaststellen afmetingen van miniaturenkaart niet mogelijk.ZoekstringNaar "%s" zoekenNaar "%s" in "%s" zoekenLees ":help W11" voor meer informatie.Lees ":help W12" voor meer informatie.Lees ":help W16" voor meer informatiegeselecteerd %s%ld van %ld regels; %ld van %ld woorden; %ld van %ld bytesgeselecteerd %s%ld van %ld regels; %ld van %ld woorden; %ld van %ld rekens; %ld van %ld bytesSelectieNaar printer versturen...Toon basisklasse vanToon klasse in hierarchieToon klasse in beperkte hierarchieVerbindingen tonenToon documentatie vanToon overschreven member-functieGrootte in punten tonenToon broncode vanDit bericht tonenTekens voor %s:Grootte:Sniff: schrijven is mislukt. Verbrokenhelaas, hulpbestand "%s" is niet gevondenVim-script ladenOndersteun de ontwikkeling van Vim!Stijl:Vervangen Wisselbestand "Wisselbestand "%s" bestaat, toch overschrijven?Wisselbestand bestaat reeds.Gevonden wisselbestanden:Tabpagina %dDank voor het gebruik van VimHet enige resultaatDeze Vim is niet met de diff-functionaliteit gecompileerdDeze cscope-opdracht ondersteunt niet het splitsen van het venster.
Implementatie/definitie wisselenTeveel "+opdracht", "-c opdracht" of "--cmd opdracht"-argumentenTeveel bewerkargumentenTopTyp :quit<Enter> om Vim te verlatenHet registreren van een opdrachtservernaam is misluktOnbekendOnbekend optieargumentnaamloosOpwaartsToepassen van wisselbestand "%s"VIM - OPGELETVIM - zoeken en vervangen...VIM - zoeken...VIM - Vi IMprovedVim-foutVIM: kan venster niet openen!
Vim - LettertypekiezerE458: kan geen kleur toewijzen, sommige kleuren kunnen onjuist zijnVim-waarschuwingVim-dialoogVim-dialoog...Vim-foutVim-fout: ~aVim stoppen met %d
Vim is open-source en vrij verspreidbaarVim: fataal signaal gevangen
Vim: fataal signaal gevangen %s
Vim: dubbel signaal, stoppen
Vim: lezen van de invoer is mislukt. Stoppen...
Vim: Fout: gvim starten vanuit Netbeans is mislukt
Vim: hoofdvenster onverwacht gesloten
Vim: lezen van standaardinvoer...
Vim: "die"-verzoek van sessiebeheerder ontvangen
Vim: Waarschuwing: Invoer komt niet van een terminal
Vim: Waarschuwing: Uitvoer gaan niet naar een terminal
W11: waarschuwing: bestand "%s" is gewijzigd sinds het begin van het bewerkenW12: waarschuwing: bestand "%s" en de buffer zijn gewijzigd in Vim W13: waarschuwing: na het begin van het bewerken van bestand "%s" is deze ook elders aangemaaktW14: waarschuwing: lijst met bestandsnamen is volW15: waarschuwing: ongeldige regelscheiding, ^M kan ontbrekenW16: waarschuwing: rechten van bestand "%s" zijn gewijzigd sinds het begin van het bewerkenW17: Arabisch vereist UTF-8, typ ':set encoding=utf-8'WAARSCHUWING: het bestand is na het laden gewijzigd!!!Waarschuwing: Windows 95/98/ME gedetecteerdWaarschuwingWaarschuwing: onverwacht ander buffer binnengegaan (controleer 'autocommands')waarschuwing: terminal kan niet oplichtenbij het openen van bestand "Vensterpositie: X %d, Y %dWoord uit andere regelGedeeltelijk bestand opslaan?viminfo-bestand "%s" opslaanXref heeft eenXref wordt naar verwezen doorXref verwijst naarXref gebruikt doorJAAantal is nul[OMZETFOUT in regel %ld][CR ontbreekt][Verwijderd][Apparaat]Bestand te groot[Hulp][ONGELDIGE BYTE in regel %ld][Laatste regel onvolledig][Locatielijst][NIET omgezet][Nieuwe MAP][Nieuw bestand][Nieuw bestand][Nieuw][Geen naam][Niets opgeslagen sinds laatste wijziging]
[Niet bewerkt][Geen rechten][Voorvertoning][Quickfix-lijst][LEESFOUTEN][RO][Leesfouten][Klad][karakter speciaal][omgezet][versleuteld][dos-format][dos][fifo/socket][fifo][bestand ..]       bewerk opgegeven bestand(en)[lange regels gesplitst][mac-format][mac][noeol][alleen-lezen][socket][unix-format][unix]naen met 'diff' te controleren op wijzigingen)poging om naar een verwijderd buffer te verwijzenpoging om naar een verwijderd venster te verwijzenautomatisch verwijderen 'autocommand': %s <buffer=%d>autocommand %svoorblok van %ld regels gekopieerdblok van 1 regel gekopieerdbuffer is ongeldigdoor door Bram Moolenaar en andereninputrestore() vaker aangeroepen dan inputsave()%s aanroepenattributen van OutputObject kunnen niet worden verwijderduitvoer van 'charconvert' kan niet worden gelezenaanmaken buffer-/vensteropdracht is mislukt: object wordt verwijderdregel kan niet worden verwijderdkan regel niet verkrijgenregel kan niet worden ingevoegdinvoegen/toevoegen regel is misluktgefaald tijden openen van  kan 'callback'-opdracht niet registreren: buffer/venster is reeds verwijderd'callback'-opdracht kan niet worden geregistreerd: buffer-/vensterreferentie ontbreektregel kan niet worden vervangenherstelinformatie kan niet worden opgeslagenkan regel(s) niet instellenkopiëren niet mogelijk; toch verwijderdwijzigingwijzigingensluitencmd: %sverbondenvoortzetten in %skan "%s" niet ladenbuffer openen is misluktuitvoering cs_create_connection is misluktcs_create_connection: fdopen voor fr_fp is misluktcs_create_connection: fdopen voor to_fp is misluktcscope-opdrachten:
cscope-verbinding %s is verbrokencursorpositie valt buiten bufferverlaat vim niet voordat het bestand volledig opgeslagen is!omgevingsvariabelefoutafhandelingtijdens compileren zijn de expressies uitgeschakeldregels minderbestandsnaam / context / regel
laden van %s afgerondhulpverborgen optiein pad ---
ongeldig attribuutbuffernummer is ongeldigongeldige uitdrukkingnaam markering ongeldigis een apparaat (uitgeschakeld door optie 'opendevice'is een mapis geen bestandis geen bestand of schrijfbaar apparaatis alleen-lezen (voeg ! toe om te schrijven)toetsenbord-interruptregel %4ld:regel %ldregel %ld van %ld --%d%%-- kol regel %ld: %sregel %ld: kan "%s" niet ladenregel %ld: "%s" ladenregel minderregelnummer valt buiten het bereikregelnummer buiten het bereikuitloggenmarkering niet ingesteldresultaat %dresultaat %d van %dmenu Help->Orphans voor informatiemenu  Help->Sponsor/Register  voor informatie    modusregelextra regelextra regelNetbeans wordt door deze GUI niet ondersteund
neegeen cscope-verbindingen
geen specifieke overeenkomstonbekende bufferonbekend vensterniet niet toegestaan in de Vim-zandbakniet gevonden niet gevonden in 'runtimepath': "%s"nog niet geïmplementeerdaantal wijzign  tijdpre-vimrc-opdracjtregelalleen-lezen attribuutopnemenvervang door %s (y/n/a/q/l/^E/^Y)?rij %d kolom %dzoeken bereikte BODEM, verder vanaf TOPzoeken bereikte TOP, verder vanaf BODEMafsluitenzachte spatie moet een geheel getal zijn"%s" ladentekenreeks kan geen regeleinden bevattentagnaamtyp :q<Enter> om te stoppentyp :help cp-default<Enter> voor informatie hierovertyp :help iccf<Enter> voor informatietyp   :help register<Enter>   voor informatie typ   :help sponsor<Enter>    voor informatie typ :help version8<Enter> voor versieinformatietyp   :help windows95<Enter>  voor informatie hierovertyp :help<Enter> of <F1> voor on-line hulptyp :set nocp<Enter>  voor standaardinstellingen van Vimonbekendunbekende instelling: onbekende optieonbekende vim-optieversie vim-foutvensterindex valt buiten het bereikvenster is ongeldigwritelines() vereist een lijst met tekenreeksenhet schrijven naar apparaat is uitgeschakeld met optie 'opendevice'PK�j�Z
�\5JJvim80/lang/menu_nl.latin1.vimnu�[���" Menu Translations:	Nederlands

source <sfile>:p:h/menu_nl_nl.latin1.vim
PK�j�Zg�%�ZZvim80/lang/menu_sv.utf-8.vimnu�[���" Menu Translations: Swedish for UTF-8 encoding

source <sfile>:p:h/menu_sv_se.latin1.vim
PK�j�Z���ZZvim80/lang/menu_es.utf-8.vimnu�[���" Menu Translations:	Spanish for UTF-8 encoding

source <sfile>:p:h/menu_es_es.latin1.vim
PK�j�Z�f��1/1/vim80/lang/menu_pt_br.vimnu�[���" Menu Translations: Portugu�s do Brasil
" Maintainer: Jos� de Paula <jose@infoviaweb.com>
" Last Change: 2012 May 01
"

" Quit when menu translations have already been done.
if exists("did_menu_trans")
	finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" Translations in latin1 (ISO-8859-1), and should work in
" latin9 (ISO-8859-15)

if &enc != "cp1252" && &enc != "iso-8859-15"
	scriptencoding latin1
endif

" Help menu
menutrans &Help			A&juda
menutrans &Overview<Tab><F1>	&Conte�do
menutrans &User\ Manual		&Manual\ do\ Usu�rio
menutrans &How-to\ links	&Como\ fazer?
menutrans &Find\.\.\.		&Procurar\.\.\.
menutrans &Credits		&Cr�ditos
menutrans O&rphans		&�rf�os
menutrans Co&pying		&Licen�a
menutrans &Sponsor/Register	&Doar/Registrar
menutrans &Version		&Vers�o
menutrans &About		&Sobre

" File menu
menutrans &File				&Arquivo
menutrans &Open\.\.\.<Tab>:e		A&brir\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Ab&rir\ em\ outra\ janela\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		&Novo<Tab>:enew
menutrans &Close<Tab>:close		&Fechar<Tab>:close
menutrans &Save<Tab>:w			&Salvar<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Sa&lvar\ como\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	&Exibir\ diferen�as\ com\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Ex&ibir\ patcheado\ por\.\.\.
menutrans &Print			I&mprimir
menutrans Sa&ve-Exit<Tab>:wqa		Sal&var\ e\ sair<Tab>:wqa
menutrans E&xit<Tab>:qa			Sai&r<Tab>:qa

" Edit menu
menutrans &Edit				&Editar
menutrans &Undo<Tab>u			&Desfazer<Tab>u
menutrans &Redo<Tab>^R			&Refazer<Tab>u
menutrans Rep&eat<Tab>\.		Repe&tir<Tab>\.
menutrans Cu&t<Tab>"+x			Re&cortar<Tab>"+x
menutrans &Copy<Tab>"+y			Cop&iar<Tab>"+y
menutrans &Paste<Tab>"+gP		C&olar<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Colocar\ &antes<Tab>[p
menutrans Put\ &After<Tab>]p		Colocar\ &depois<Tab>]p
menutrans &Select\ all<Tab>ggVG		&Selecionar\ tudo<Tab>ggVG
menutrans &Find\.\.\.			&Procurar\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Procurar\ e\ substit&uir\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	Procurar\ e\ substit&uir<Tab>:%s
menutrans Find\ and\ Rep&lace		Procurar\ e\ substit&uir
menutrans Find\ and\ Rep&lace<Tab>:s	Procurar\ e\ substituir<Tab>:s
menutrans Settings\ &Window		&Op�es
menutrans Startup\ &Settings		&Inicializa��o

" Edit/Global Settings
menutrans &Global\ Settings		Op�es\ &Globais

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Ativar/Desativar\ &Realce\ de\ Padr�es<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Ativar/Desativar\ &Ignorar\ mai�sculas<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Ativar/Desativar\ &coincid�ncias<Tab>:set\ sm!

menutrans &Context\ lines		Linhas\ de\ C&ontexto

menutrans &Virtual\ Edit		Edi��o\ &Virtual
menutrans Never				Nunca
menutrans Block\ Selection		Sele��o\ de\ Bloco
menutrans Insert\ mode			Modo\ de\ inser��o
menutrans Block\ and\ Insert		Bloco\ e\ inser��o
menutrans Always			Sempre

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Ativar/Desativar\ Modo\ de\ In&ser��o<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! Ativar/Desativar\ Co&mpatibilidade\ com\ Vi<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		Camin&ho\ de\ Busca\.\.\.
menutrans Ta&g\ Files\.\.\.		Arquivos\ de\ Tags\.\.\.

" GUI options
menutrans Toggle\ &Toolbar		Ocultar/Exibir\ Barra\ de\ &Ferramentas
menutrans Toggle\ &Bottom\ Scrollbar	Ocultar/Exibir\ Barra\ de\ &Rolagem\ Inferior
menutrans Toggle\ &Left\ Scrollbar	Ocultar/Exibir\ Barra\ de\ R&olagem\ Esquerda
menutrans Toggle\ &Right\ Scrollbar	Ocultar/Exibir\ Barra\ de\ Ro&lagem\ Direita
let g:menutrans_path_dialog = "Indique um caminho de procura para os arquivos.\nSepare os nomes dos diret�rios com uma v�rgula."
let g:menutrans_tags_dialog = "Indique os nomes dos arquivos de tags.\nSepare os nomes com uma v�rgula."

" Edit/File Settings
menutrans F&ile\ Settings		Op�es\ do\ &Arquivo

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Ativar/Desativar\ &numera��o\ de\ linhas<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Ativar/Desativar\ modo\ &list<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Ativar/Desativar\ &quebra\ de\ linhas<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Ativar/Desativar\ quebra\ na\ &palavra<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Ativar/Desativar\ expans�o de tabs<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Ativar/Desativar\ &auto-indenta��o<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Ativar/Desativar\ indenta��o estilo &C<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			Largura\ da\ &indenta��o

menutrans Soft\ &Tabstop		&Tabula��o\ com\ espa�os

menutrans Te&xt\ Width\.\.\.		Largura\ do\ te&xto\.\.\.
let g:menutrans_textwidth_dialog = "Digite a nova largura do texto (0 para desativar a formata��o): "

menutrans &File\ Format\.\.\.		&Formato\ do\ arquivo\.\.\.
let g:menutrans_fileformat_dialog = "Selecione o formato para gravar o arquivo"

menutrans C&olor\ Scheme		Esquema\ de\ c&ores
menutrans default	padr�o

menutrans Select\ Fo&nt\.\.\.		Selecionar\ fo&nte\.\.\.

menutrans &Keymap	&Mapa\ de\ teclado
menutrans None		Nenhum

" Programming menu
menutrans &Tools			&Ferramentas
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Pular\ para\ este\ tag<Tab>g^]
menutrans Jump\ &back<Tab>^T		&Voltar<Tab>^T
menutrans Build\ &Tags\ File		&Construir\ Arquivo\ de\ tags
menutrans &Spelling			&Ortografia
menutrans &Folding			&Dobra
menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Lista\ de\ erros<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	Li&sta\ de\ mensagens<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		P&r�ximo\ erro<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Erro\ anterior<Tab>:cp
menutrans &Older\ List<Tab>:cold	Listar\ erros\ &antigos<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	Listar\ erros\ &novos<Tab>:cnew
menutrans Error\ &Window		&Janela\ de\ erros
menutrans Se&T\ Compiler		Def&inir\ Compilador
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Converter\ para\ hexadecimal<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	Conver&ter\ de\ volta<Tab>:%!xxd\ -r

" Tools.Spelling menu
menutrans &Spell Check On		&Ativar Corre��o Ortogr�fica
menutrans &Spell Check Off		&Desativar Corre��o Ortogr�fica
menutrans To &Next error<Tab>]s		&Pr�ximo Erro<Tab>]s
menutrans To &Previous Error<Tab>[s	Erro A&nterior<Tab>[s
menutrans Suggest &Corrections<Tab>z=	&Sugerir Corre�es<Tab>z=
menutrans &Repeat correction<Tab>:spellrepall	&Repetir Corre��o<Tab>:spellrepall

menutrans Set\ language\ to\ "en"               Ingl�s
menutrans Set\ language\ to\ "en_au"            Ingl�s\ (en_au)
menutrans Set\ language\ to\ "en_ca"            Ingl�s\ (en_ca)
menutrans Set\ language\ to\ "en_gb"            Ingl�s\ (en_gb)
menutrans Set\ language\ to\ "en_nz"            Ingl�s\ (en_nz)
menutrans Set\ language\ to\ "en_us"            Ingl�s\ (en_us)

menutrans &Find\ More\ Languages                &Buscar mais idiomas

" Tools.Fold Menu
menutrans &Enable/Disable\ folds<Tab>zi		&Ativar/Desativar\ dobras<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv		&Ver\ linha\ do\ cursor<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	Ve&r\ somente\ linha\ do\ cursor<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm		&Fechar\ mais\ dobras<Tab>zm
menutrans &Close\ all\ folds<Tab>zM		F&echar\ todas\ as\ dobras<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr		A&brir\ mais\ dobras<Tab>zr
menutrans &Open\ all\ folds<Tab>zR		Abr&ir\ todas\ as\ dobras<Tab>zR
" fold method
menutrans Fold\ Met&hod				&Modo\ de\ dobras
menutrans Create\ &Fold<Tab>zf			Criar\ &dobras<Tab>zf
menutrans &Delete\ Fold<Tab>zd			Remover\ d&obras<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD		Remover\ &todas\ as\ dobras<Tab>zD
" moving around in folds
menutrans Fold\ col&umn\ width			&Largura\ da\ coluna\ da\ dobra

" Tools.Diff Menu
menutrans &Update	&Atualizar
menutrans &Get\ Block	&Obter\ Bloco
menutrans &Put\ Block	&P�r\ Bloco

" Tools.Error Menu
menutrans &Update<Tab>:cwin	&Atualizar<Tab>:cwin
menutrans &Open<Tab>:copen	A&brir<Tab>:copen
menutrans &Close<Tab>:cclose	&Fechar<Tab>:cclose

" Names for buffer menu.
menutrans &Buffers		&Buffers
menutrans &Refresh\ menu	A&tualizar\ menu
menutrans &Delete		&Apagar
menutrans &Alternate		A&lternar
menutrans &Next			P&r�ximo
menutrans &Previous		A&nterior
let g:menutrans_no_file = "[Sem arquivos]"

" Window menu
menutrans &Window			&Janela
menutrans &New<Tab>^Wn			N&ova<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Dividir<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	D&ividir\ para\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Dividir\ &verticalmente<Tab>^Wv
menutrans Split\ File\ E&xplorer	&Abrir\ Gerenciador\ de\ arquivos
menutrans &Close<Tab>^Wc		&Fechar<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Fechar\ &outra(s)<Tab>^Wo
menutrans Move\ &To			Mover\ &para
menutrans &Top<Tab>^WK			A&cima<Tab>^WK
menutrans &Bottom<Tab>^WJ		A&baixo<Tab>^WJ
menutrans &Left\ side<Tab>^WH		Lado\ &esquerdo<Tab>^WH
menutrans &Right\ side<Tab>^WL		Lado\ di&reito<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		&Girar\ para\ cima<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Girar\ para\ bai&xo<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		Mesmo\ &Tamanho<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Altura\ &M�xima<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		A&ltura\ M�nima<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Larg&ura\ M�xima<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Largura\ M�&nima<Tab>^W1\|

" The popup menu
menutrans &Undo			&Desfazer
menutrans Cu&t			Recor&tar
menutrans &Copy			&Copiar
menutrans &Paste		Co&lar
menutrans &Delete		&Apagar
menutrans Select\ Blockwise	Sele��o\ de\ bloco
menutrans Select\ &Word		Selecionar\ &Palavra
menutrans Select\ &Line		Selecionar\ L&inha
menutrans Select\ &All		Selecionar\ T&udo

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
	  tmenu ToolBar.Open	Abrir Arquivo
	  tmenu ToolBar.Save	Salvar Arquivo
	  tmenu ToolBar.SaveAll	Salvar Todos os arquivos
	  tmenu ToolBar.Print	Imprimir
	  tmenu ToolBar.Undo	Desfazer
	  tmenu ToolBar.Redo	Refazer
	  tmenu ToolBar.Cut	Recortar
	  tmenu ToolBar.Copy	Copiar
	  tmenu ToolBar.Paste	Colar
	  tmenu ToolBar.Find	Procurar...
	  tmenu ToolBar.FindNext	Procurar Pr�ximo
	  tmenu ToolBar.FindPrev	Procurar Anterior
	  tmenu ToolBar.Replace		Procurar e Substituir
	  if 0	" disable; these are in the Windoze menu
		  tmenu ToolBar.New	Nova Janela
		  tmenu ToolBar.WinSplit	Dividir Janela
		  tmenu ToolBar.WinMax		Janela M�xima
		  tmenu ToolBar.WinMin		Janela M�nima
		  tmenu ToolBar.WinVSplit	Dividir Verticalmente
		  tmenu ToolBar.WinMaxWidth	Largura M�xima
		  tmenu ToolBar.WinMinWidth	Largura M�nima
		  tmenu ToolBar.WinClose	Fechar Janela
	  endif
	  tmenu ToolBar.LoadSesn	Carregar Sess�o
	  tmenu ToolBar.SaveSesn	Salvar Sess�o
	  tmenu ToolBar.RunScript	Executar script
	  tmenu ToolBar.Make		Make
	  tmenu ToolBar.Shell		Abrir um shell
	  tmenu ToolBar.RunCtags	Gerar um arquivo de tags
	  tmenu ToolBar.TagJump		Saltar para um tag
	  tmenu ToolBar.Help		Ajuda
	  tmenu ToolBar.FindHelp	Procurar na Ajuda
  endfun
endif

" Syntax menu
menutrans &Syntax			&Sintaxe
"menutrans &Show\ individual\ choices	E&xibir\ escolhas\ individuais
menutrans &Show\ filetypes\ in\ menu	E&xibir\ tipos\ de\ arquivos\ no\ menu
menutrans Set\ '&syntax'\ only		Ativar\ somente\ s&intaxe
menutrans Set\ '&filetype'\ too		Ativar\ tamb�m\ &tipo\ de\ arquivo
menutrans &Off				&Desativar
menutrans &Manual			&Manual
menutrans A&utomatic			A&utom�tica
menutrans on/off\ for\ &This\ file	Ativar/Desativar\ neste\ &arquivo
menutrans Co&lor\ test			T&este\ de\ cores
menutrans &Highlight\ test		Teste\ de\ &realce
menutrans &Convert\ to\ HTML		&Converter\ para\ HTML

" Find Help dialog text
let g:menutrans_help_dialog = "Digite um comando ou palavra para obter ajuda;\n\nAnteponha i_ para comandos de entrada (ex.: i_CTRL-X)\nAnteponha c_ para comandos da linha de comandos (ex.: c_<Del>)\nAnteponha ` para um nome de op��o (ex.: `shiftwidth`)"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�L�

)vim80/lang/zh_CN.UTF-8/LC_MESSAGES/vim.monu�[�����c43�Lf����ψ
����'
�/5�e�{���0��؉�+��4�E�5U��������͊,z�;������5�D�U�h�w�������׌�0�.6�/e�1��0Ǎ
����3�
M�[�
p� {�������!ڎ��"�>�V�g�@v���ҏ����/&�=V�����Ő֐����.�-H�v�������ڑ�3
�3>�$r�����̒����
)�4�C�[�l��
��$��ʓ ֓���;'�c�r�#�	����ƔΔޔ�
����.�:�R�	j�t�|���!����Ǖ���.�6� >�_�z�������Ɩ
Ζܖ6� �=�V�!u���
����	��ė����&��	!�"+�*N�y���������ʘ
ј
ߘ�
����"�+�5I��������љ����$'�L�\�
p�{�������Țۚ���$�<�M�Y�e�t���
������ɛ7ٛ��6�>�G�O�U�Y�e�t�=x�2�������'�-:�5h�����?ԝ�0�A�	P�Z�s�����-���$�+�
K�V�f�z���?��ݟ5�!"�%D�9j�E��9�C$�Ah�I��H�;=�0y�6��8�3�-N�|�%����У��&�,:�#g�4�� ��@�-"�0P���;��ҥ"��>&�)e�>��<Φ��#7�:[�'��9����$�96�4p�;�� �>�1A�/s���-���.��B,�"o�/��2ª4��**�U�+s�%��'ū(�<�ES�.��-Ȭ$���<4�q�*��&�� ݭ4��3�D�V�i�u���������ͮٮ
����"�(�4�C�[�s���)��$ȯ!���&�"2�"U�x���O�����(�XA�%����ı߱���/�I�a�m���$����!²�����:�"X�{�$����#̳����Q0���������ɴ ��%�!7�Y�	_�?i�P��
��
�.�B�-[���-��$ֶ.��*�D�S�"l�
��C��	����!�.�4�R�2W�!��(�� ո"��E�_�%|�#��-ƹ��/�&K�r�������ͺ�)��@'�h�5����ѻ�D�L�Ei���-ʼ7��#0� T�:u�5��&�"
�&0�$W�#|�!��=¾5� 6�(W�7��!��,ڿ�#�8� R�#s�&�������&�@�\�{�0��$�!� �(3�4\�,���������� 0�Q�n�1����!��%��%�%E�k� ������?��&�!C�e�
��A��%��"��"�9=�'w�(��2��*��!&�!H�)j�%��!��4��:�&L�;s�;��)��0�F�e�������#��!��8�&D�#k��� ��/��"���-,�Z�k���/��*��(��# �D�`�{�����>���)�C�"Z�}�������!���9"�1\�)��1��%��7�H�Ab�?�������!2�T�p���0��4��$�)5�N_�,��L��8(�a�,�� �� ��#���/�7I�N��M���:�W�$r�!��3��,��2�%M�*s�9��(���"�?�#]�����������0�!B� d�<��+�����+#�2O�$����,����H
�,V�����"�������7�V�9u�������0��#,�'P�x���,��&�����+!�2M�-��(����"��'�';�,c���.����#��,�WG�)��"��,��%�?� \�}�2��2��2��/�!L�n���2��5��'�#-�)Q�3{�$��%�����1�F�f�$~�&�� ��'��*�#>�'b�%��3��!���+%�Q�*q�-��$�����-�I�\� w� ��$��$��)�,-�Z�r�,������%���=+�i�������'�����$7�#\�0��.��0���1�N�i�������-�� ���7-�)e���$��(�����%#�$I�n�����'����'� ,�M�e�� ��7��0��!�#@�d�"��(��!����-�1>�6p�5����.��*'�1R�9����*��+	�,5�+b�4��<��+�*,�-W��������������%�8�K�"Z�}������������/�O�i���������:��=�<]�6��<���"'�J�_�4f�5��4�3�:�0L�}�D��%����8�X�m���������
��7�W�k�'�����!��"�":�]�1r������"��%�=�X�t�����������	�!�6�J�h�����*��)��&� ?�`�{���6��#��)�2F�&y�K��� �� �?�Z�s�������"�&��#�B�]�+|�%��7�5<Y,x���)� 7Mi�����0
>Ut�4�.�$)91c;��.�*;$[�%�,���&0-W&�� ��!+; g�?�)�6#V2z9�>�8&1_�)�)� 	)$	N	)i	*�	"�	�	#�	"
"A
)d
�
�
%�
 �
+$?d�!�0��
(C"`!�9�8�$
=
V
v
+�
%�
1�
)6J'd%��&�!�%'8%`'�-���$+Ki"���!�1&=d!�!����+8@y7�E�!,Na&z0�#��$
/#J*n� ���0230f�+�)�$
//_y'�)�,�$ Bcz-�� �01!I,k��9�(+C/o���!�"B@�����)'Bj�'��	���4#J	nx��.��.�6(_e6y#�&�	�2I^ k%�!��(�,;A(H
q	|%��
�&�&� . )= g 
y � 
� � � � � � !	 !2*!*]!�!�!�!�!�!	�!�!
""+"#F"(j"�"�"	�"
�"�"�"2�"#)#H#b#o#u#$�#/�#�#'�#$%$
<$$G$l$~$�$ �$�$�$�$!�$%:%C%'S%{%~%�%�%�%�%#�%&&9&.A&
p&{&	�&�&�&�&'�&' '
,':'K'c'w'�'�'�'�'�'("(9;(u(�(�(�(
�(�(�(�(�()(&)O)d)l)})�)
�)	�)�)�)�)�)*9*O*b*}*�*&�*�*�*+3+?K+Q�+	�+�+�+,"(,K,\,i,�,�,
�,�,'�,�,--F8--�-�-�-�-(�-�-.'.3.F.c.y.�.0�.;�. />//n/�/�/1�/"�/00-0M03m0�0(�0�01	1$!10F1w1�1�1+�1�1�1�122	(222�K2�2F�2,3
83
C3	Q3
[3i3+~3�3�3�3�3%40<4m4(}4�41�4+�4* 5K5&e59�5M�5>6)S65}6A�64�6$*76O7"�7�7<�7?�7/.8 ^8"8�8�8�8�8�89"9<9[92u9)�9,�9-�9 -:!N:#p:�:�:
�:�:�:�:�:
;;+;	8;B;K;Z;a;|;�;
�;�;�;
�;
�;�;	�;�;<<	3<=<
M<[<
`<5n<�<	�<�<�<
�<�<&�<	==)=/=
7=B=
K=Y=`=:f="�="�=�=�=�=>.>@>D>1]>
�>$�>"�>�><?>?Q?a?t?�?H�?C�?(@<@Y@l@�@�@�@�@	�@�@�@�@ �@-A-9AgAyA�A�A�A�A=�A"B7B$VB{B�B�B�B�B�B�B
�B�BCC)C<CNC
]C kC �C�C
�C�C�C�C
DD7D	ODYDrD�D�D�D�D�D#�D1�D1E1CEuE~E	�E
�E�E�E�E�E�E�E
�EF	F
(F 3FTFhF}F�F�F�F	�F"�FG$G$:G_GfGxG�G
�G�G�G�G�G
HH$H.0H._H.�H.�H.�H.I.JI.yI.�I�I�I�IJ	JJ7JIJ]JnJ
~J�J�J�J	�J�J�J�JKK%*K-PK~L�L
�L	�L�L$�L/�L)MBM[M:sM
�M�M3�M"�MN0N2BN uN�N�N��N'NO9vO�O�O�O�OPP+P:P/PP�P�P�P�P*�P(Q),Q+VQ*�Q�Q�Q�Q�Q
�QRR%R;RJR!ZR'|R$�R!�R�RS
SK SlS�S�S�S�S�S.�SGTOT!lT�T�T�T�T�T�T%
U 0UQUiUzU�U�U4�U<V#AVeV�V�V�V�V�VWW W<W
MW[WyW+�W�W$�W�WX?X\XiXvX	�X�X	�X�X�X	�X	�X�XYY(YFY	dYnYvY
~Y�Y�Y�Y�Y�Y�Y
ZZZ8ZPZgZ�Z�Z�Z�Z�Z?�Z�Z[ [;[[[c[o[	{[�[�[�[�[(�[
�[#�[(\4\O\^\f\v\�\�\	�\
�\�\�\�\
�\%�\9]H]W]p]�]�]�])�] ^4!^V^j^	^
�^�^�^�^�^�^�^__+_A_
S_^_o_~_�_�_�_�_�_9�_`(`
B`
M`
X`
c`
n`y`�`
�`b�`Ka
ea
pa{a�a<�a$�a-b6bQb9ib�b�b�b�b�bcc&(c)Ocyc2�c �c�c�c
d
d*d<Ad~d%�d�d#�dH�dI<e=�e@�eJfBPfE�f;�f"g:8g;sg5�g&�gh%)hOhah}h�h�h0�h�h1
i?i<^i.�i1�i�iBjUjpj�jB�j1�jBk6\k	�k �k1�k7�k.(lDWl�l%�l7�l=mKRm$�mC�m0n.8ngn3�n�n�nF�n,/o6\o9�o<�o1
p <p(]p!�p&�p:�p>
qHIq-�q.�q*�qrB4rwr%�r*�r%�r;	sEs^sws�s�s�s�s�s�s�stt t)t38tltyt�t�t�t�t$�t1u"Jumu|u�u �u�u%�u%�u<vVvmv�vZ�v)w,w#3wWwvw�w�w�w�w�w
x!x2x*?xjx�x�x�x �x�x#�xy7yQy$ky�y�y�yX�y
%z
3zAzTzlz�z�z�z"�z�z�zI	{`S{�{�{,�{�{'|:|(T|}|$�|�|�|�| �| }G5}}}�}�}�}	�}�}�}7�}&~,>~#k~0�~N�~'-1U1����%�'�8�I�f�������>΀
�1*�\�q���@���F��C�,]�-����ւ9��9/�$i�'��0��,�*�#?�5c�3��$̈́'�-� H�"i�"����ąۅ��.�H�a�z�����͆�	�-#�!Q�*s�-��'̇1�)&�P�o�������Ĉ#�!�,)�V�o�����ɉ����4�6M�+����ϊ�-��,)�V� v�4�� ̋"�/�*@�'k� ��"��*׌�0�9N�!��9��*�)�/9�i�����Ǝގ!��!�3A�*u�!��ُ-��$$�I�7[���!��ǐڐ���4�N�m�����‘B�#�>�Z�$t�����̒�&�+�9D�+~�<��5�0�(N�w�0��1����%�!A�c�����5��4� %�%F�>l�(��9Ԗ0�!?�'a�$����!̗� �/)�HY�O���!
�,�!F�h�8��$��-�$�(5�7^�!����$Κ�$�7�V�n�����3��*�!�<:�(w�"��Ü,ٜ,�3�R�0p���;��'���!1�"S�v�����Ȟ�-�1�I�d�*����*ȟ��0�'P�x���'��0͠0��'/�W�!q�'��-��6� �)3�]�!p�(��P��$�&1�/X�/����ף��5�5G�4}�"��!դ���-'�0U�!��#��%̥4�#'�$K�p�������ڦ*�-�#I�0m�6��0է�3$�5X�����.ƨ"��-�-F�)t�����ʩ�� � /�!P�"r�!��!��٪�&�.�F�b�&��2��ܫ��
�$�'@�h� ��(��#Ϭ(�(�)E�o�������ԭ��(!�J�g�-��"��Ү�%
�0�L�&^�"����Ưޯ"�� �=�[�v� ����ϰ4�*�$H�$m���&��ر��&�*=�/h�4��3Ͳ�/�!O�7q�5��߳*��''�'O�&w�+��)ʴ,�"!�,D�q�������Ƶܵ���#�6�I�g�~���!��ն�
�'�C�#_�������׷;�=-�<k�8��7��4�P�i�6p�6��<޹6�R�6b���G��*�!�!A�!c�������%Ļ��#�?�R�n�����)���*��&)�P�l�#����.�����$4�Y�l������ɾ߾���-�C�V�l�������ڿ!��(�'C�k���#������2� :�[�,v�)��$�8�+�(D�!m��� ����!���"�$A�/f�,��"��&��(
�6�-R�+������*���!�<�"T�!w�����"��!�� �2�#R�v�-��������"	�+,�+X�(��,��0��<�H�&[�&��"�� ����'�)3�]�q���#��*�����+*�$V�${���9�����?#�'c���=�� ��/�03�9d�3��6��	�*%�/P���)����*��$�"0�S� j�����&�� ��� +�L�&k�"�� ����"��$�=�P�g�����!��6��+�@�`�z��� ��#��2��#%�I�[�$s�����%��"��$�,9�$f�(��$������$�#0�T� r�&������"��,�$J�o�����������$
�*2�]�.|�E����'�.�D�)Y�*������!���"�'>�f�������4��-
�*8�c� ������7���
.�*<�-g�2��#�����$�%A�(g���&��/����!�*7�b�w�1����&��2��80� i� ����/��,��C%�&i������� ��#�1'�Y� p�&�������������.�G�e�m�z���4����2��8�R�Y�8i���&��������
��	/�'9�,a�(����1������	%�4/�d�x�+��
��
��)��&�� !�B�)O�y���������������!�2�
E�<P�/����#����
�
 �.�5�	A�K�[�&t�%������������?&�
f�q���
������#��-��!�*.�Y�i�|�)��������*���2�B�[�w�	����!�����������$�<�\�$n�
��'������������"2�U�
q���������������#�<� T�u�'����������
������.�@�'Z�
��	���������������"�
9�G�8X��� ��������!�!4�!V�x�:��M����7�M�'f�����������
����"�#$�H�^�5|�����������3�:�S�
g�r���������)��-��'�:;�v�����%�� ������)� 8�1Y�����������)��/�	L�V�]�%p���������
�������@��
�
��
�
�)�8�.K�z�*��-����/+�[�!k���+��.�+�3�+R�4~�N��7�:�7W�=��:� �5)�"_���;��A�/�7�&S�z���������%�B�6]�-��0�1�%�'A� i���������������%�2�>�G�V�_�y��������������
(1COX8d����
��'�!'/8
AOV;\$�!����$490V	� �$�(�67GWg~6�9��%5Qaq
x	����!�)�)<Lg���0��'�9FNk{��������	,Kj
w$�����':MT	gq�.�3�8�7#	[	b	k	x	�	�	�	�	�	�	�	�	�	

#
B
O
j

�
�
	�
!�
�
3�
33gn~������
#614h4�4�6
6>
7u
2�
5�
(8M
U`y�����%DWr���+���Q|�X+��S$�g�&s6�j��;�M����EB�A���W�]�"��_�z��U�(L����P�N�/?�@�^m)1��\����z���Y��m$(W�����c��9.�@L�[����&	��r�Y���\Z_B����Y4���-���x���2�F�����7�}�����u�eV���/d�"`8&��as��B���O��V�o[�4&�p���*e��������5��O0���-IOvJ8�������u���*7^�+�8|���NWD4,
�Q��}'e7�"pW�$b����v�eRG]
EtJ�=h4�� ���Nk/"�
T�q��!��`	q���w�Z�t��j���{]��NWU���,�vG��f�
�:g����\�F���9,Z��aO����k��l�#?m���c�,���PPH-���9�i�6$0�����.�V:��a���K��X#+�	8u��V>��5r:�D.����M�E
]�B�6�-��T��Z�9b�
�n{�&aVg��c����������/���[���L��k|�ER�� 2'��?���3�7�S����+a*��+�I��@N����g��6�|���1):�
�2|��>�@1�I�%<v��]0s����\	xk��D��o�x�M}���������j�_�%���)�?����v�V�t^Kl,�!y�Z��A�c��1��?vy������_zir��Sd�u��$)c6���W��M4�w�3�#
SfKR�:.��5BQ!>���k�'Ud�����a^�����,j��o�;�Y~i���AL�m`���6��A�� �Qm#����R��r(��f�{h�z��,����D�:^����_���`_�X}"H�QITP �CJkQ�O*[lF/q6�|����E0$e'!D��w�<�c�������4��SU^@�{�F�����(�F?����5D�^KX'4����8%����.���=�9�}���`U`���w�K��������j!�J�����cs����G������&<yqD�f=�Y��>GHL(�)�����\x`�C�*H5�PX���q�0�~�i��N�#�����l\��[�9�
�����?�+
�:T�<���#��q8�������Cnz�=nL;{R�b��tR�J~
���g/���L����������P�2U
�e���isb�V����y�2z��E�}=�uT�l���C~xK[Thg]>)7���F�NG��#���s���y��$��y�(bd����@x�=���pp�B����X�m��Q�3Hw�;���3KX8p��� ��-��>�1�7�3��b�d;	/�
��������YC"o�P��������I�<Z�I'�C����J����h0��%���<���f�!��n���E�RO2jW���.O����� T��-i��<�h��d!���9S+	�"*��(�H�
-�1�52�&5�7�0 ;JH�o����b>���'n�A��h�~@\r	��{G����_�����3�tM�U;M���pZ��~�[�*t�w%.Io%��B=F)�1�G�r������3�Ma%���l�]����ACu�n�fA�Y�S			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items             dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s line %ld%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab <files>  As --remote but open tab page for each file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
<%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o???: Sorry, this command is disabled, the MzScheme library could not be loaded.ANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Choice number (<Enter> cancels): CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE118: Too many arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E46: Cannot set variable in the sandbox: "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E747: Missing ']': %sE748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE77: Too many file namesE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Searching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUndo number %ld not foundUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NL found][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!environment variableerror list %d of %d; %d errorsexpressions disabled at compile timefewer linesfile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnew shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: Vim(Simplified Chinese)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2006-04-21 15:16+0800
PO-Revision-Date: 2006-04-21 14:00+0800
Last-Translator: Yuheng Xie
Language-Team: Simplified Chinese
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8-bit
			  (尚未实现)

	最近修改于 

参数:


用法:
            修改过: 
         [不能在本机上使用]
         [不能在该版本的 Vim 上使用]
            主机名: 
            用户名: 
           进程 ID: 
    名称        参数 范围  补全      定义      
   #   行  
  或:
  # 到 tag         从   行    在 文件/文本
 跳转   行   列 文件/文本
# 缓冲区列表:

# 文件标记:

# 文件内的标记历史记录 (从新到旧):

# 跳转列表 (从新到旧):

# 寄存器:

# 全局变量:

(1) 另一个程序可能也在编辑同一个文件。
    如果是这样,修改时请注意避免同一个文件产生两个不同的版本。


(2) 上次编辑此文件时崩溃。

(你可能想要将这个文件另存为别的文件名

--- 自动命令 ---
--- 全局选项值 ---
--- 局部选项值 ---
--- 菜单 ---
--- 选项 ---
--- 寄存器 ---
--- Signs ---
--- 语法项目 ---
--- 语法同步项目 (Syntax sync items) ---
--- 终端编码 ---
--- 终端按键 ---
16 位 MS-DOS 版本
32 位 MS-DOS 版本
gvim (Athena 版本) 可识别的参数:

gvim (GTK+ 版本) 可识别的参数:

gvim (Motif 版本) 可识别的参数:

gvim (RISC OS 版本) 可识别的参数:

gvim (neXtaw 版本) 可识别的参数:

大型版本 
无法建立管道

无法执行 shell
无法执行 shell sh

无法 fork

命令已结束

编译
发现交换文件 "
巨型版本 
包含补丁: 
MS-Windows 16 位控制台版本
MS-Windows 16/32 位图形界面版本
MS-Windows 32 位图形界面版本
MS-Windows 32 位控制台版本
MacOS X (unix) 版本
MacOS X 版本
MacOS 版本
可能你没做过任何修改或是 Vim 还来不及更新交换文件。
更多信息请见: "vim -h"

正常版本 
RISC OS 版本
小型版本 
微型版本 
Vim: X 错误

警告: 原始文件可能已丢失或损坏

[字节] 总共 alloc-free %lu-%lu,使用中 %lu,高峰使用 %lu

  改变   行   列 文本
标记   行   列 文件/文本
Shell 已返回
同步中:              日期:             所有者:          [无法打开]         [无法读取]         [不像是 Vim 交换文件]         [来自 Vim 版本 3.0]            文件名:       -- 无 --
      比交换文件新!
      用户 exrc 文件: "     用户 vimrc 文件: "    如果是这样,请用 ":recover" 或 "vim -r     如果你已经进行了恢复,请删除交换文件 "    退出,或小心地继续。
    行=%ld  id=%d  名称=%s        系统菜单文件: "    用户 gvimrc 文件: "   位于当前目录:
   位于目录    使用指定的名字:
    日期:       主机名:      系统 vimrc 文件: "  # pri kind tag  (已列出)  第二用户 exrc 文件: "  调试版本  可使用(+)与不可使用(-)的功能:
  找不到  以不同大小写来使用 tag!         $VIM 预设值: "    系统 gvimrc 文件: " # pid    数据库名                            prepend path
 (已中断) (找不到) (包括上次列出符合项) (插入) (插入) Scroll (^E/^Y) (语言) (行已删除) (不支持) (粘帖) (替换) (替换) Scroll (^E/^Y) (仍在运行) (V-替换) 第二用户 vimrc 文件: " 第三用户 vimrc 文件: " < "%.*s" 增加 Arabic 转换错误 命令行补全 (^V^N^P)复制 %d / %d 定义补全 (^D^N^P) Dictionary 补全 (^K^N^P) 失败 文件名补全 (^F^N^P) Hebrew 插入 关键字局部补全 (^N^P) 关键字补全 (^N^P) 全能补全 (^O^N^P) 头文件模式补全 (^N^P) 替换 反向 选择 选择 块 选择 行 空格/d/j: 屏幕/页/行 下翻,b/u/k: 上翻,q: 退出  拼写建议 (s^N^P) Tag 补全 (^]^N^P) Thesaurus 补全 (^T^N^P) 用户自定义补全 (^U^N^P) 可视 可视 块 可视 行 V-替换 整行补全 (^L^N^P) [已修改] [a] [w] ^X 模式 (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) 已追加 不能在这台电脑上使用。
 不能在该版本的 Vim 中使用。
  $VIMRUNTIME 预设值: " Win32s 模式 信息 类型 文件
行号超出范围 标记共 %ld 行共 1 行 或更多 已返回
 vim [参数]  带 OLE 支持 已写入"
    以避免再看到此消息。
"
    恢复修改的内容 (请见 ":help recovery")。
" 已存在!%-5s: %-30s (用法: %s)%3d  %s %s  第 %ld 行删除了 %d 个缓冲区释放了 %d 个缓冲区清除了 %d 个缓冲区存在 %d 个重复的单词,在 %s 中还有 %d 个文件等待编辑
还有 %d 个文件未编辑。确实要退出吗?%d 中 %d 已编辑%ld %s;%s #%ld  %s%ld 列; %ld 个字符少了 %ld 行%ld 行 %s 了 %d 次%ld 行 %s 了 1 次%ld 行 --%d%%--改变了 %ld 行过滤了 %ld 行缩进了 %ld 行 移动了 %ld 行缩进 %ld 行…… 复制了 %ld 行%ld 行,%ld 个匹配,多了 %ld 行%ld 次替换,%s 自动命令 "%s"%s 已中止%s 第 %ld 行%s 返回 #%ld %s 返回 %s%s 的值与另一个 .aff 文件中使用的值不相同%s,第 %ld 行%sviminfo: %s 位于行: 取消(&C)取消(&D)过滤(&F)帮助(&H)确定(&O)确定(&O)
取消(&C)确定(&O)
加载文件(&L)确定(&O)以只读方式打开(&O)
直接编辑(&E)
恢复(&R)
删除交换文件(&D)
退出(&Q)
中止(&A)以只读方式打开(&O)
直接编辑(&E)
恢复(&R)
退出(&Q)
中止(&A)替换(&R)撤销(&U)是(&Y)
否(&N)是(&Y)
否(&N)
取消(&C)是(&Y)
否(&N)
全部保存(&A)
全部丢弃(&D)
取消(&C)' 未知。可用的内建终端有:'columns' 不是 80, 不能执行外部命令选项 'dictionary' 为空选项 'history' 为零"%s" 已设定 'readonly' 选项。
确实要覆盖吗?选项 'thesaurus' 为空(%d / %d)%s%s: (已中断) (无效)+			启动后跳到文件末尾+-%s%3ld 行: +--已折叠 %3ld 行+<lnum>		启动后跳到第 <lnum> 行+reverse		不使用反显 (也可用 +rv),
或是此文件已损坏。-               从标准输入(stdin)读取文本--			在这以后只有文件名-- 更多 ---- 查找中...--- 包含文件 --已删除----缓冲区无内容----cmd <command>	加载任何 vimrc 文件前执行 <command>--cmd 参数--columns <number>	窗口初始宽度--literal		不扩展通配符--noplugin		不加载 plugin 脚本--remote <files>	如有可能,在 Vim 服务器上编辑文件 <files>--remote-expr <expr>	在 Vim 服务器上求 <expr> 的值并打印结果--remote-send <keys>	送出 <keys> 到 Vim 服务器并退出--remote-silent <files>  同上,找不到服务器时不抱怨--remote-tab <files>  同 --remote 但对每个文件打开一个标签页--remote-wait <files>  同 --remote 但会等待文件完成编辑--remote-wait-silent <files>  同上,找不到服务器时不抱怨--role <role>	设置用于区分主窗口的窗口角色名--rows <number>	窗口初始高度--serverlist		列出可用的 Vim 服务器名称并退出--servername <name>	发送到或成为 Vim 服务器 <name>--socketid <xid>	在另一个 GTK 部件中打开 Vim--version		打印版本信息并退出-A			以 Arabic 模式启动-C			兼容传统的 Vi: 'compatible'-D			调试模式-F			以 Farsi 模式启动-H			以 Hebrew 模式启动-L			同 -r-M			文本不可修改-N			不完全兼容传统的 Vi: 'nocompatible'-O[N]		同 -o 但垂直分割-P <parent title>	在父应用程序中打开 Vim-R			只读模式 (同 "view")-S <session>		加载第一个文件后执行文件 <session>-T <terminal>	设定终端类型为 <terminal>-U <gvimrc>		使用 <gvimrc> 替代任何 .gvimrc-V[N]		Verbose 等级-W <scriptout>	将所有输入的命令写入到文件 <scriptout>-X			不连接到 X Server-Z			限制模式 (同 "rvim")-b			二进制模式-background <color>	使用 <color> 作为背景色 (也可用 -bg)-boldfont <font>	使用 <font> 作为粗体字体-borderwidth <width>	设定边框宽度为 <width> (也可用 -bw)-c <command>		加载第一个文件后执行 <command>-c 参数-d			Diff 模式 (同 "vimdiff")-dev <device>		使用 <device> 进行输入输出-display <display>	将 vim 与指定的 X-server 连接-display <display>	在 <display> 上运行 vim-display <display>	在 <display> 上运行 vim (也可用 --display)-e			Ex 模式 (同 "ex")-f			不使用 newcli 来打开窗口-f  或  --nofork	前台: 启动图形界面时不 fork-font <font>	使用 <font> 作为一般字体 (也可用 -fn)-foreground <color>	使用 <color> 作为一般文字颜色 (也可用 -fg)-g			使用图形界面 (同 "gvim")-geometry <geom>	使用 <geom> 作为初始位置 (也可用 -geom)-h  或  --help	打印帮助(本信息)并退出-i <viminfo>		使用 <viminfo> 取代 .viminfo-iconic		启动后最小化-italicfont <font>	使用 <font> 作为斜体字体-l			Lisp 模式-m			不可修改(写入文件)-menuheight <height>	设定菜单栏高度为 <height> (也可用 -mh)-n			不使用交换文件,只使用内存-name <name>		读取 Resource 时把 vim 视为 <name>-o[N]		打开 N 个窗口 (默认值: 每个文件一个)-P[N]		打开 N 个标签页 (默认值: 每个文件一个)-q [errorfile]  编辑第一个出错处的文件-r			列出交换文件并退出-r (跟文件名)		恢复崩溃的会话-register		注册此 gvim 到 OLE-reverse		使用反显 (也可用 -rv)-s			安静(批处理)模式 (只能与 "ex" 一起使用)-s <scriptin>	从文件 <scriptin> 读入正常模式的命令-scrollbarwidth <width> 设定滚动条宽度为 <width> (也可用 -sw)-t tag          编辑 tag 定义处的文件-u <vimrc>		使用 <vimrc> 替代任何 .vimrc-unregister		取消 OLE 中的 gvim 注册-v			Vi 模式 (同 "vi")-w <scriptout>	将所有输入的命令追加到文件 <scriptout>-x			编辑加密的文件-xrm <resource>	设定指定的资源-y			容易模式 (同 "evim",无模式)%s 第 %d 行,/ 行已被忽略: %s%s 第 %d 行,单词后的 /encoding= 行已被忽略: %s删除了 1 个缓冲区释放了 1 个缓冲区清除了 1 个缓冲区1 个字符1 行 %s 了 %d 次1 行 %s 了 1 次1 行 --%d%%--改变了 1 行缩进了 1 行 少了 1 行移动了 1 行复制了 1 行1 行,1 个匹配,还有 1 个文件未编辑。确实要退出吗?多了 1 行1 次替换,第二用户 gvimrc 文件: "第三用户 gvimrc 文件: ": 发送表达式失败。
: 发送失败。
: 发送失败。尝试本地执行
<%s>%s%s  %d,  十六进制 %02x,  八进制 %03o<缓冲区对象(已删除): %8lX><无法打开><空><窗口 %d><窗口对象(已删除): %.8lX><窗口对象(未知): %.8lX>> %d, 十六进制 %04x, 八进制 %o> %d, 十六进制 %08x, 八进制 %o???: 抱歉,此命令不可用,无法加载 MzScheme 库ANCHOR_BUF_SIZE 太小添加一个新的数据库添加了 cscope 数据库 %s%s 第 %d 行,附加项被 BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST 使用: %s%s 第 %d 行,附加项名字太长: %s全部所有 cscope 数据库已被重置所有包含文件都已找到已位于最新的改变已位于最旧的改变已经只剩一个 tab 页了已经只剩一个窗口了追加文件缺少必要的参数在行号 试图再次打开脚本文件: "回到起点使用了逆向的范围,确定交换吗成为 Vim 的注册用户!Beep!在第 %ld 字节之前底端%s 同时出现 SQL 和 SOFO 行断点 "%s%s" 第 %ld 行%s 第 %d 行,错误的条件: %s浏览 class在没有 SYLLABLE 的情况下使用了 COMPOUNDSYLMAX调用 shell 执行: "%s"找不到用于转换的临时文件取消无法连接到 Netbeans无法连接到 Netbeans #2不能连接到 SNiFF+。请检查环境变量 ($PATH 里必需可以找到 sniffemacs)
不能创建 不能执行 不能打开 NIL:
无法打开文件 "%s"无法打开并读取: "无法打开并输出脚本: "不能执行目录: "%s"将 "%.*s" 改为:请选择数字 (<Enter> 取消): 关闭关闭标签第 %s/%s 列; 第 %ld/%ld 行; 第 %ld/%ld 个词; 第 %ld/%ld 个字节第 %s/%s 列; 第 %ld/%ld 行; 第 %ld/%ld 个词; 第 %ld/%ld 个字符; 第 %ld/%ld 个字节编译方式: 编译器: 压缩了 %d/%d 个节点;剩余 %d (%d%%)压缩单词树……单词 %s 转换失败,第 %d 行: %s不支持 %s 中的转换不支持 %s 中的转换: 从 %s 到 %s'charconvert' 转换失败无法修正到 DLL 的函数指针!无法加载 vim32.dll!Cscope tag: %s当前的 %s语言: "%s"然后把 .swp 文件删掉。

用 Vim 比较(diff)%s 第 %d 行,在连续的附加块中出现不同的组合标志: %s方向目录目录	*.nothing
确实要写入吗完成!变量列表中出现两个 ;向下%s 第 %d 行,重复的 /regions= 行已被忽略: %s%s 第 %d 行,重复的附加项: %s%s 第 %d 行,MAP 中存在重复的字符%s 第 %d 行,重复的单词: %sE100: 没有其它处于 diff 模式的缓冲区E101: 有两个以上的缓冲区处于 diff 模式,不能决定用哪一个E102: 找不到缓冲区 "%s"E103: 缓冲区 "%s" 不在 diff 模式E104: 复合字符(digraph)中不能使用 EscapeE105: 不是在脚本文件中使用 :loadkeymap E107: 缺少括号: %sE108: 无此变量: "%s"E109: '?' 后缺少 ':'E10: \ 后面应该跟有 /、? 或 &E110: 缺少 ')'E111: 缺少 ']'E112: 缺少选项名称: %sE113: 未知的选项: %sE114: 缺少引号: %sE115: 缺少引号: %sE118: 函数的参数过多: %sE11: 在命令行窗口中无效;<CR> 执行,CTRL-C 退出E121: 未定义的变量: %sE122: 函数 %s 已存在,请加 ! 强制替换E124: 缺少 '(': %sE125: 无效的参数: %sE126: 缺少 :endfunctionE128: 函数名必须以大写字母开头或者包含冒号: %sE129: 需要函数名E12: 当前目录中的 exrc/vimrc 或 tag 查找中不允许此命令E130: 未知的函数: %sE131: 无法删除函数 %s: 正在使用中E132: 函数调用深度超出 'maxfuncdepth'E133: :return 不在函数中E134: 把行移动到自已中E135: *Filter* 自动命令不可以改变当前缓冲区E136: viminfo: 错误过多,忽略文件的剩余部分E137: Viminfo 文件不可写入: %sE138: 无法写入 viminfo 文件 %s!E139: 文件已在另一个缓冲区中被加载E13: 文件已存在 (请加 ! 强制执行)E140: 请使用 ! 来写入部分缓冲区E141: 缓冲区 %ld 没有文件名E142: 文件未写入: 写入被 'write' 选项禁用E143: 自动命令意外地删除了新缓冲区 %sE144: :z 不接受非数字的参数E145: rvim 中禁止使用 shell 命令E146: 正则表达式不能用字母作分界E147: :global 不能递归执行E148: global 缺少正则表达式E149: 抱歉,没有 %s 的说明E14: 无效的地址E150: 不是目录: %sE152: 无法打开并写入 %sE153: 无法打开并读取 %sE154: Tag "%s" 在文件 %s/%s 中重复出现E155: 未知的 sign: %sE156: 缺少 sign 名称E157: 无效的 sign ID: %ldE158: 无效的缓冲区名: %sE159: 缺少 sign 号E15: 无效的表达式: %sE160: 未知的 sign 命令: %sE161: 找不到断点: %sE162: 缓冲区 "%s" 已修改但尚未保存E163: 只有一个文件可编辑E164: 无法切换,已是第一个文件E165: 无法切换,已是最后一个文件E166: 无法打开并写入链接文件E167: 在脚本文件外使用了 :scriptencodingE168: 在脚本文件外使用了 :finishE169: 命令递归层数过多E16: 无效的范围E170: 缺少 :endforE170: 缺少 :endwhileE171: 缺少 :endifE172: 只允许一个文件名E173: 还有 %ld 个文件未编辑E173: 还有 1 个文件未编辑E174: 命令已存在: 请加 ! 强制替换E175: 没有指定属性E176: 无效的参数个数E177: 不能指定两次计数E178: 无效的计数默认值E179: -complete 需要参数E17: "%s" 是目录E180: 无效的补全类型: %sE181: 无效的属性: %sE182: 无效的命令名E183: 用户自定义命令必须以大写字母开头E184: 没有这个用户自定义命令: %sE185: 找不到配色方案 %sE186: 前一个目录不存在E187: 未知E188: 在此平台上不能获得窗口位置E189: "%s" 已存在 (请加 ! 强制执行)E18: :let 中出现异常字符E190: 无法打开并写入 "%s"E191: 参数必须是一个字母或者正/反引号E192: :normal 递归层数过深E193: :endfunction 不在函数内E194: 没有用于替换 '#' 的交替文件名E195: 无法打开并读取 viminfo 文件E196: 此版本无复合字符(digraph)E197: 不能设定语言为 "%s"E198: cmd_pchar 超过命令长度E199: 活动窗口或缓冲区已被删除E19: 标记的行号无效E200: *ReadPre 自动命令导致文件不可读E201: *ReadPre 自动命令不允许改变当前缓冲区E202: 转换导致文件不可读E203: 自动命令删除或释放了要写入的缓冲区E204: 自动命令意外地改变了行数E205: Patchmode: 无法保存原始文件E206: Patchmode: 无法生成空的原始文件E207: 无法删除备份文件E208: 写入文件 "%s" 出错E209: 关闭文件 "%s" 出错E20: 没有设定标记E210: 读取文件 "%s" 出错E211: 文件 "%s" 已经不存在E212: 无法打开并写入文件E213: 无法转换 (请加 ! 强制不转换写入)E214: 找不到用于写入的临时文件E215: * 后面有无效字符: %sE216: 无此事件: %sE216: 无此组或事件: %sE217: 不能对所有事件执行自动命令E218: 自动命令嵌套层数过深E219: 缺少 {。E21: 不能修改,因为选项 'modifiable' 是关的E220: 缺少 }。E222: 添加到已读缓冲区中E223: 递归映射E224: 全局缩写 %s 已存在E225: 全局映射 %s 已存在E226: 缩写 %s 已存在E227: 映射 %s 已存在E228: makemap: 无效的模式E229: 无法启动图形界面E22: 脚本嵌套过深E230: 无法读取文件 "%s"E231: 无效的 'guifontwide'E232: 不能同时使用消息和回调函数来创建 BalloonEvalE233: 无法打开 displayE234: 未知的 Fontset: %sE235: 未知的字体: %sE236: 字体 "%s" 不是等宽字体E237: 选择打印机失败E238: 打印错误: %sE239: 无效的 sign 文字: %sE23: 没有交替文件E240: 没有到 Vim 服务器的连接E241: 无法发送到 %sE243: 不支持的参数: "-%s";请使用 OLE 版本。E244: 字符集 "%s" 不能对应字体"%s"E245: 不正确的字符 '%c' 出现在字体名称 "%s" 内E246: FileChangedShell 自动命令删除了缓冲区E247: 没有名叫 "%s" 的已注册的服务器E248:  无法发送命令到目的程序E24: 没有这个缩写E250: Fontset %s 缺少下列字符集的字体:E251: VIM 实例注册属性有误。已删除!E252: Fontset 名称: %sE253: Fontset 名称: %s
E254: 无法分配颜色 %sE255: 无法读取 sign 数据!E256: Hangul automata 错误E257: cstag: 找不到 tagE258: 无法发送到客户端E259: cscope 查询 %s %s 没有找到匹配的结果E25: 无法使用图形界面: 编译时没有启用E261: 找不到 cscope 连接 %sE262: 读取 cscope 连接 %ld 出错E263: 抱歉,此命令不可用,无法加载 Python 库。E264: Python: 初始化 I/O 对象出错E266: 抱歉,此命令不可用,无法加载 Ruby 库E26: 无法使用 Hebrew: 编译时没有启用
E273: 未知的 longjmp 状态 %dE274: Sniff: 读取错误. 取消连接E275: 不正确的 SNiff+ 调用: %sE276: 连接到 SNiFF+ 失败E277: 无法读取服务器响应E278: 未连接到 SNiFF+E279: 不是 SNiFF+ 的缓冲区E27: 无法使用 Farsi: 编译时没有启用
E280: TCL 严重错误: reflist 损坏!?请报告给 vim-dev@vim.orgE281: TCL 错误: 退出返回值不是整数!?请报告给 vim-dev@vim.orgE282: 无法读取 "%s"E283: 没有匹配 "%s" 的标记E284: 不能设定 IC 值E285: 无法创建输入上下文E286: 无法打开输入法E287: 警告: 无法设定输入法的释放回调函数E288: 输入法不支持任何风格E289: 输入法不支持我的预编辑类型E28: 没有这个高亮群组名: %sE290: over-the-spot 风格需要 FontsetE291: 你的 GTK+ 比 1.2.3 旧。状态区不可用。E292: 输入法服务器未运行E293: 块未被锁定E294: 交换文件读取定位错误E295: 交换文件读取错误E296: 交换文件写入定位错误E297: 交换文件写入错误E298: 找不到块 0?E298: 找不到块 1?E298: 找不到块 2?E29: 没有插入过文字E300: 交换文件已存在 (符号连接攻击?)E301: 噢,交换文件不见了!!!E302: 无法重命名交换文件E303: 无法打开 "%s" 的交换文件,恢复将不可能E304: ml_upd_block0(): 找不到块 0?E305: 找不到 %s 的交换文件E306: 无法打开 %sE307: %s 看起来不像是 Vim 交换文件E308: 警告: 原始文件可能已被修改E309: 无法从 %s 读取块 1E30: 没有前一个命令行E310: 块 1 ID 错误 (%s 不是交换文件?)E311: 恢复已被中断E312: 恢复时发生错误;请注意开头为 ??? 的行E313: 无法保留,没有交换文件E314: 保留失败E315: ml_get: 无效的 lnum: %ldE316: ml_get: 找不到第 %ld 行E317: 指针块 id 错误E317: 指针块 id 错误 2E317: 指针块 id 错误 3E317: 指针块 id 错误 4E318: 更新了太多的块?E319: 抱歉,命令在此版本中不可用E31: 没有这个映射E320: 找不到第 %ld 行E321: 无法重新加载 "%s"E322: 行号超出范围: %ld 超出结尾E323: 块 %ld 行数错误E324: 无法打开 PostScript 输出文件E325: 注意E326: 找到太多交换文件E327: 菜单项的某部分路径不是子菜单E328: 菜单只在其它模式中存在E329: 没有菜单 "%s"E32: 没有文件名E330: 菜单路径不能指向子菜单E331: 不能把菜单项直接加到菜单栏中E332: 分隔线不能是菜单路径的一部分E333: 菜单路径必须指向菜单项E334: 找不到菜单: %sE335: %s 模式中菜单未定义E336: 菜单路径必须指向子菜单E337: 找不到菜单 - 请检查菜单名称E338: 抱歉,控制台模式下没有文件浏览器E339: 模式太长E33: 没有前一个替换正则表达式E340: 此行过长E341: 内部错误: lalloc(%ld, )E342: 内存不足!(分配 %lu 字节)E343: 无效的路径: '**[number]' 必须在路径末尾或者后面接 '%s'。E344: cdpath 中找不到目录 "%s"E345: 在路径中找不到文件 "%s"E346: 在路径中找不到更多的文件 "%s"E347: 在路径中找不到更多的文件 "%s"E348: 光标处没有字符串E349: 光标处没有识别字E34: 没有前一个命令E350: 不能在当前的 'foldmethod' 下创建折叠E351: 不能在当前的 'foldmethod' 下删除折叠E352: 不能在当前的 'foldmethod' 下删除 foldE353: 寄存器 %s 里没有东西E354: 无效的寄存器名: '%s'E355: 未知的选项: %sE356: get_varp 错误E357: 'langmap': 找不到 %s 对应的字符E358: 'langmap': 分号后有多余的字符: %sE359: 不支持设定屏幕模式E35: 没有前一个正则表达式E360: 不能用 -f 选项执行 shellE363: 表达式的内存使用超出 'maxmempattern'E364: 调用函数库 "%s()" 失败E365: 无法打印 PostScript 文件E367: 无此组: "%s"E369: %s%%[] 中有无效的项E36: 没有足够的空间E370: 无法加载库 %sE371: 找不到命令E372: 格式化字符串里有太多 %%%c E373: 格式化字符串不应该出现 %%%c E374: 格式化字符串里少了 ]E375: 格式化字符串里有不支持的 %%%c E376: 格式化字符串开头里有不正确的 %%%c E377: 格式化字符串里有不正确的 %%%c E378: 'errorformat' 未设定E379: 找不到目录名称或是空的目录名称E37: 已修改但尚未保存 (可用 ! 强制执行)E380: Quickfix 堆栈底端E381: Quickfix 堆栈顶端E382: 无法写入,已设定选项 'buftype'E383: 无效的查找字符串: %sE384: 已查找到文件开头仍找不到 %sE385: 已查找到文件结尾仍找不到 %sE386: 在 ';' 后面应该有 '?' 或 '/'E387: 当前行匹配E388: 找不到定义E389: 找不到 patternE38: 空的参数E390: 无效的参数: %sE391: 无此语法 cluster: "%s"E392: 无此语法 cluster: "%s"E393: 使用了不正确的参数E394: 找不到 %s 的 region itemE395: 使用了不正确的参数E396: 使用了不正确的参数E397: 需要文件名称E398: 缺少 '=': %sE399: syntax region %s 的参数太少E39: 此处需要数字E400: 没有指定的属性E401: 找不到分隔符号: %sE402: '%s' 后面的东西不能识别E403: 语法同步: 连接行符号指定了两次E404: 无效的参数: %sE405: 缺少等号: %sE406: 空的参数: %sE407: %s 不能在此出现E408: %s 必须是列表里的第一个E409: 不正确的组名: %sE40: 无法打开错误文件 %sE410: 不正确的 :syntax 子命令: %sE411: 找不到 highlight group: %sE412: 参数太少: ":highlight link %s"E413: 参数过多: ":highlight link %s"E414: 已设定组, 忽略 highlight linkE415: 不该有的等号: %sE416: 缺少等号: %sE417: 缺少参数: %sE418: 不合法的值: %sE419: 错误的前景颜色E41: 内存不足!E420: 错误的背景颜色E421: 错误的颜色名称或数值: %sE422: 终端编码太长: %sE423: 无效的参数: %sE424: 使用了太多不同的高亮度属性E425: 已到第一个匹配的 tagE426: 找不到 tag: %sE427: 只有一个匹配的 tagE428: 己到最后一个匹配的 tagE429: 文件 "%s" 不存在E42: 没有错误E430: Tag 文件路径被截断为 %s
E431: Tag 文件 "%s" 格式错误E432: Tag 文件未排序: %sE433: 没有 tag 文件E434: 找不到 tag 模式E435: 找不到 tag,试着猜!E436: termcap 中没有 "%s" 项E437: 终端需要能力 "cm"E438: u_undo: 行号错误E439: 撤销列表损坏E43: 已损坏的匹配字符串E440: 找不到要撤销的行E441: 没有预览窗口E442: 不能同时进行 topleft 和 botright 分割E443: 有其它分割窗口时不能旋转E444: 不能关闭最后一个窗口E445: 其它窗口有改变的内容E446: 光标处没有文件名E447: 在路径中找不到文件 "%s"E448: 无法加载库函数 %sE449: 收到无效的表达式E44: 已损坏的正则表达式程序E455: 写入 PostScript 输出文件出错E456: 找不到 PostScript 资源文件 "%s.ps"E456: 找不到 PostScript 资源文件 "cidfont.ps"E456: 找不到 PostScript 资源文件 "prolog.ps"E456: 无法打开文件 "%s"E457: 无法读取 PostScript 资源文件 "%s"E459: 无法回到前一个目录E45: 已设定选项 'readonly' (请加 ! 强制执行)E460: Resource fork 会丢失 (请加 ! 强制执行)E461: 无效的变量名: %sE462: 无法为重新加载 "%s" 做准备E464: 不确定的用户自定义命令E465: :winsize 需要两个数字参数E466: :winpos 需要两个数字参数E467: Custom 补全需要一个函数参数E468: 只有 custom 补全才允许参数E469: cscopequickfix 标志 %c 对 %c 无效E46: 不能改变只读变量 "%s"E46: 不能在 sandbox 中设定变量: "%s"E470: 命令被中止E471: 需要参数E472: 命令执行失败E473: 内部错误E474: 无效的参数E475: 无效的参数: %sE476: 无效的命令E477: 不能使用 "!"E478: 不要慌!E479: 没有匹配E47: 读取错误文件失败E480: 没有匹配: %sE481: 不能使用范围E482: 无法创建文件 %sE483: 无法获取临时文件名E484: 无法打开文件 %sE485: 无法读取文件 %sE486: 找不到模式: %sE487: 参数必须是正数E488: 多余的尾部字符E48: 不允许在 sandbox 中使用E490: 找不到折叠E492: 不是编辑器的命令E493: 使用了逆向的范围E494: 请使用 w 或 w>>E495: 没有用于替换 "<afile>" 的自动命令文件名E496: 没有用于替换 "<abuf>" 的自动命令缓冲区号E497: 没有用于替换 "<amatch>" 的自动命令匹配名E498: 没有用于替换 "<sfile>" 的 :source 文件名E499: '%' 或 '#' 为空文件名,只能用于 ":p:h"E49: 无效的滚动大小E500: 结果为空字符串E501: 已到文件末尾E505: E506: 无法写入备份文件 (请加 ! 强制执行)E507: 关闭备份文件出错 (请加 ! 强制执行)E508: 无法读取文件以供备份 (请加 ! 强制执行)E509: 无法创建备份文件 (请加 ! 强制执行)E50: 太多 \z(E510: 无法生成备份文件 (请加 ! 强制执行)E512: 关闭失败E513: 写入错误,转换失败 (请将 'fenc' 置空以强制执行)E514: 写入错误 (文件系统已满?)E515: 没有释放任何缓冲区E516: 没有删除任何缓冲区E517: 没有清除任何缓冲区E518: 未知的选项E519: 不支持该选项E51: 太多 %s(E520: 不允许在 modeline 中使用E521: = 后面需要数字E522: Termcap 里面找不到E523: 不允许在此使用E524: 缺少冒号E525: 字符串长度为零E526: <%s> 后面缺少数字E527: 缺少逗号E528: 必须指定一个 ' 值E529: 不能设定 'term' 为空字符串E52: 不匹配的 \z(E530: 在图形界面中不能改变终端E531: 请用 ":gui" 启动图形界面E533: 无法选择宽字体E534: 无效的宽字体E535: <%c> 后面有无效的字符E536: 需要逗号E537: 'commentstring' 必须为空或包含 %sE538: 不支持鼠标E539: 无效的字符 <%s>E53: 不匹配的 %s%%(E540: 没有结束的表达式序列E541: 项目过多E542: 错乱的组E543: 无效的代码页E544: 找不到 Keymap 文件E545: 缺少冒号E546: 无效的模式E547: 无效的鼠标形状E548: 此处需要数字E549: 无效的百分比E54: 不匹配的 %s(E550: 缺少冒号E551: 无效的部分E552: 应该要有数字E553: 没有更多的项E554: %s{...} 中语法错误E555: 已在 tag 堆栈底部E556: 已在 tag 堆栈顶部E557: 无法打开 termcap 文件E558: 在 terminfo 中找不到终端项E559: 在 termcap 中找不到终端项E55: 不匹配的 %s)E560: 用法: cs[cope] %sE561: 未知的 cscope 查找类型E562: 用法: cstag <ident>E563: stat 错误E563: stat(%s) 错误: %dE564: %s 不是目录或有效的 cscope 数据库E566: 无法创建 cscope 管道E567: 没有 cscope 连接E568: 重复的 cscope 数据库未被加入E569: 已达到 cscope 的最大连接数E570: cs_manage_matches 严重错误E571: 抱歉,此命令不可用,无法加载 Tcl 库E572: 退出返回值 %dE573: 使用了无效的服务器 id: %sE574: 未知的寄存器类型 %dE579: :if 嵌套层数过深E580: :endif 缺少对应的 :ifE581: :else 缺少对应的 :ifE582: :elseif 缺少对应的 :ifE583: 多个 :elseE584: :elseif 在 :else 后面E585: :while/:for 嵌套层数过深E586: :continue 缺少对应的 :while 或 :forE587: :break 缺少对应的 :while 或 :forE588: :endfor 缺少对应的 :forE588: :endwhile 缺少对应的 :whileE589: 'backupext' 和 'patchmode' 相等E590: 预览窗口已存在E591: 'winheight' 不能小于 'winminheight'E592: 'winwidth' 不能小于 'winminwidth'E593: 至少需要 %d 行E594: 至少需要 %d 列E595: 包含不可显示字符或宽字符E596: 无效的字体E597: 无法选择 FontsetE598: 无效的 FontsetE599: 'imactivatekey' 的值无效E59: %s@ 后面有无效的字符E600: 缺少 :endtryE601: :try 嵌套层数过深E602: :endtry 缺少对应的 :tryE603: :catch 缺少对应的 :tryE604: :catch 在 :finally 后面E605: 异常没有被捕获: %sE606: :finally 缺少对应的 :tryE607: 多个 :finallyE608: 不能 :throw 前缀为 'Vim' 的异常E609: Cscope 错误: %sE60: 太多复杂的 %s{...}sE612: Signs 定义过多E613: 未知的打印机字体: %sE614: vim_SelFile: 无法返回当前目录E615: vim_SelFile: 无法获取当前目录E616: vim_SelFile: 无法获取字体 %sE617: 在 GTK+ 2 图形界面中不能更改E618: 文件 "%s" 不是 PostScript 资源文件E619: 文件 "%s" 不是已支持的 PostScript 资源文件E61: 嵌套的 %s*E620: 无法转换至打印编码 "%s"E621: "%s" 资源文件版本不正确E622: 无法对 cscope 进行 forkE623: 无法生成 cscope 进程E624: 无法打开文件 "%s"E625: 无法打开 cscope 数据库: %sE626: 无法获取 cscope 数据库信息E62: 嵌套的 %s%cE63: 不正确地使用 \_E64: %s%c 前面无内容E655: 符号连接过多(循环?)E658: 缓冲区 %ld 丢失 NetBeans 连接E659: 不能递归调用 PythonE65: 无效的回引E661: 抱歉,没有 '%s' 的 %s 的说明E662: 已在改变列表的开始处E663: 已在改变列表的末尾处E664: 改变列表为空E665: 无法启动图形界面,找不到有效的字体E666: 不支持编译器: %sE667: 同步失败E668: NetBeans 连接信息文件中错误的访问模式: "%s"E669: 组名中存在不可显示字符E66: 此处不允许 \z(E670: 在一种语言中混合了多种帮助文件编码: %sE671: 找不到窗口标题 "%s"E672: 无法在 MDI 应用程序中打开窗口E673: 不兼容的多字节编码和字符集。E674: printmbcharset 在多字节编码下不能为空。E675: 没有指定多字节打印的默认字体。E676: 找不到 acwrite 缓冲区对应的自动命令E677: 写临时文件出错E678: %s%%[dxouU] 后面有无效的字符E679: 加载 syncolor.vim 时出现嵌套循环E67: 此处不允许 \z1 等E680: <buffer=%d>: 无效的缓冲区号 E681: 缓冲区未加载E682: 无效的搜索表达式或分隔符E683: 缺少文件名或模式无效E684: List 索引超出范围: %ldE685: 内部错误: %sE686: %s 的参数必须是 ListE687: 目标比 List 项数少E688: 目标比 List 项数多E689: 只能索引 List 或 DictionaryE68: \z 后面有无效的字符E690: :for 后缺少 "in"E691: 只能比较 List 和 ListE692: 对 List 无效的操作E693: 只能比较 Funcref 和 FuncrefE694: 对 Funcrefs 无效的操作E695: 不能索引一个 FuncrefE696: List 中缺少逗号: %sE697: List 缺少结束符 ']': %sE698: 变量嵌套过深无法复制E699: 参数过多E69: %s%%[ 后缺少 ]E700: 未知的函数: %sE701: len() 的类型无效E702: Sort 比较函数失败E703: 将 Funcref 作数字使用E704: Funcref 变量名必须以大写字母开头: %sE705: 变量名与已有函数名冲突: %sE706: 变量类型不匹配: %sE708: [:] 必须在最后E709: [:] 需要一个 List 值E70: 空的 %s%%[]E710: List 值的项比目标多E711: List 值没有足够多的项E712: %s 的参数必须是 List 或者 DictionaryE713: Dictionary 的键不能为空E714: 需要 ListE715: 需要 DictionaryE716: Dictionary 中不存在键: %sE717: Dictionary 项已存在E718: 需要 FuncrefE719: 不能对 Dictionary 使用 [:]E71: %s%% 后面有无效的字符E720: Dictionary 中缺少冒号: %sE721: Dictionary 中出现重复的键: "%s"E722: Dictionary 中缺少逗号: %sE723: Dictionary 缺少结束符 '}': %sE724: 变量嵌套过深无法显示E726: 步长为零E727: 起始值在终止值后E728: 将 Dictionary 作数字使用E729: 将 Funcref 作 String 使用E72: 交换文件关闭错误E730: 将 List 作 String 使用E731: 将 Dictionary 作 String 使用E732: :while 以 :endfor 结尾E733: :for 以 :endwhile 结尾E734: %s= 的变量类型不正确E735: 只能比较 Dictionary 和 DictionaryE736: 对 Dictionary 无效的操作E737: 键已存在: %sE738: 无法列出 %s 的变量E739: 无法创建目录: %sE73: tag 堆栈为空E741: 值已锁定: %sE742: 无法改变 %s 的值E743: (un)lock 的变量嵌套过深E744: NetBeans 不允许改变只读文件E745: 将 List 作数字使用E746: 函数名与脚本文件名不匹配: %sE747: 不能改变目录,缓冲区已修改 (请加 ! 强制执行)E747: 缺少 ']': %sE748: 没有前一个使用的寄存器E749: 空的缓冲区E74: 命令过复杂E750: 请先使用 :profile start <fname>E751: 输出文件名不能含有区域名E752: 之前没有拼写替换E753: 找不到: %sE754: 最多只支持 8 个区域E755: %s 出现无效的范围E756: 拼写检查未启用E757: 这看起来不像是拼写文件E758: 已截断的拼写文件E759: 拼写文件格式错误E75: 名字过长E760: %s 中没有单词计数E761: 附加文件 FOL、LOW 或 UPP 中格式错误E762: FOL、LOW 或 UPP 中字符超出范围E763: 拼写文件之间的字符不相同E764: 没有设定选项 '%s'E765: 'spellfile' 没有 %ld 项E766: printf() 的参数不足E767: printf() 的参数过多E768: 交换文件已存在: %s (:silent! 强制执行)E769: %s[ 后缺少 ]E76: [ 过多E770: 拼写文件中存在不支持的节E771: 旧版本的拼写文件,需要更新E772: 为更高版本的 Vim 所用的拼写文件E773: "%s" 符号连接出现循环E774: 'operatorfunc' 为空E775: 求值功能不可用E776: 没有 location 列表E777: 此处需要 String 或者 ListE778: 看起来不像是 .sug 文件: %sE77: 文件名过多E784: 不能关闭最后一个 tab 页E785: complete() 只能在插入模式中使用E786: 不允许的范围E787: 意外地改变了缓冲区E788: 目前不允许编辑别的缓冲区E78: 未知的标记E79: 无法扩展通配符E800: 无法使用 Arabic: 编译时没有启用
E80: 写入出错E81: 在脚本环境外使用了 <SID>E82: 无法分配任何缓冲区,退出程序...E83: 无法分配缓冲区,使用另一个缓冲区...E84: 没有修改过的缓冲区E85: 没有可列出的缓冲区E86: 缓冲区 %ld 不存在E87: 无法切换,已是最后一个缓冲区E88: 无法切换,已是第一个缓冲区E89: 缓冲区 %ld 已修改但尚未保存 (请加 ! 强制执行)E90: 无法释放最后一个缓冲区E91: 选项 'shell' 为空E92: 找不到缓冲区 %ldE93: 找到不止一个 %sE94: 没有匹配的缓冲区 %sE95: 已有缓冲区使用该名称E96: 不能比较(diff) %ld 个以上的缓冲区E97: 无法创建 diffE98: 无法读取 diff 的输出E99: 当前缓冲区不在 diff 模式错误: 编辑文件在新窗口编辑文件用 Vim 编辑(&V)用多个 Vim 编辑(&M)用当前的 Vim 编辑 - 用单个 Vim 编辑(&V)用 Vim 编辑选中的文件编码:函数结束脚本文件结束输入密码: 请输入要使用的交换文件编号 (0 退出): 请再输入一次: 进入调试模式。输入 "cont" 继续运行。进入 Ex 模式。输入 "visual" 回到正常模式。错误错误和中断创建进程失败: 请检查 gvim 是否在路径中!处理 %s 时发生错误:估计运行时内存用量: %d 字节异常捕获异常: %s丢弃异常: %s完成异常: %s抛出异常: %s执行 %s%s 第 %d 行,此处需要 MAP 计数%s 第 %d 行,此处需要 REP(SAL) 计数%s 第 %d 行,此处需要 Y 或 N: %s外部符合:
%s 第 %d 行,在使用标志后出现 FLAG: %s文件 "%s" 不存在文件已保留文件过滤器查找和替换字符串 (使用 '\\' 来查找 '\')查找下一个(&N)查找下一个查找字符串 (使用 '\\' 来查找 '\')查找 symbol查找内容:%s 第 %d 行,首次重复的单词: %s%s 第 %d 行,标志不是数字: %s'%s' 不是固定宽度的字体选择字体字体%ld的宽度不是字体0的两倍
字体0的宽度:%ld
字体0: %s
字体1的宽度: %ld

字体1: %s
字体:选项参数后的内容无效产生文件: 您好,Vim 用户!帮助乌干达的可怜儿童!已到段落结尾I/O 错误忽略了含有非 ASCII 字符的 %d 个单词,在 %s 中忽略了含有非 ASCII 字符的 %d 个单词无效的文件名%s 第 %d 行,无效的标志: %s无效的寄存器名无效的启动字符输入法(_M)中断已中断: 已中断无效的参数指定了无效的字体%s 第 %d 行,无效的区域号: %s%s 第 %d 行,FLAG 的值无效: %s两次密码不匹配!结束一个连接链接方式: 匹配大小写匹配完整的词消息简体中文消息维护者: Yuheng Xie <elephant@linux.net.cn>缺少 '>'%s 中缺少 FOL/LOW/UPP 行%s 中缺少 SOFO%s 行修改者 名称:需要 %s 版本 %ld
需要 Amigados 版本 2.04 以上
NetBeans 不允许未修改的缓冲区写入新建标签这个缓冲区没有定义任何语法项找不到缩写没有定义断点没有 display没有 display: 发送表达式失败。
没有包含文件找不到映射没有设定标记在光标处没有匹配,查找下一个没有匹配的自动命令无交换文件没有要打印的文字无法撤销;仍然继续找不到用户自定义命令未使用无可撤销soundfolding 后的单词数: %ld确定打开文件对话框打开标签...打开标签...打开 X display 失败打开 X display 超时打开 X display 用时 %ld 秒原始文件 "%s"覆盖已存在的文件 "%s" 吗?第 %d 页NetBeans 不允许缓冲区部分写入Patch 文件路径太长!路径:每行都匹配表达式: %s找不到模式正在 soundfolding……请按 ENTER 或其它命令继续打印任务已被发送。已打印: %s打印 '%s'打印中止正在打印第 %d 页 (%d%%)查询一个模式问题读取附加文件 %s ……读取拼写文件……读取字典文件 %s ……从标准输入读取...读取拼写文件 "%s"读取 viminfo 文件 "%s"%s%s%s读取单词文件 %s ……恢复完毕。请确定一切正常。重置所有连接替换全部替换(&A)全部替换替换为:恢复恢复: 从所有项目恢复: 从文件恢复: 从对象运行于 Vi 兼容模式无模式运行,输入文字即插入SNiFF+ 目前另存为保存文件对话框保存重定向保存会话保存设定保存视图将改变保存到 "%s" 吗?正在扫描 dictionary: %s查找包含文件: %s扫描标签.正在扫描: %s滚动条部件: 无法获取滑块图像的几何大小正在查找 "%s"正在查找 "%s",在 "%s" 中查找包含的文件 %s查找 tag 文件 %s更多信息请见 ":help E312"进一步说明请见 ":help W11"进一步说明请见 ":help W12"进一步说明请见 ":help W16"选择目录对话框选择了 %s%ld/%ld 行; %ld/%ld 个词; %ld/%ld 个字节选择了 %s%ld/%ld 行; %ld/%ld 个词; %ld/%ld 个字符; %ld/%ld 个字节选择发送到打印机……显示 base class of:显示层次关系的类显示 restricted 层次关系的 class显示连接显示文件: 显示被覆盖的成员函数显示源代码: 显示此信息%s 的 Signs:尺寸:Sniff: 写入错误。结束连接抱歉,找不到帮助文件 "%s"抱歉,没有建议抱歉,只有 %ld 条建议抱歉,此命令不可用: 无法加载 Perl 库。执行 Vim 脚本赞助 Vim 的开发!堆栈大小增加风格:交换文件 "交换文件 "%s" 已存在,确实要覆盖吗?交换文件已存在!找到交换文件:Tab 页 %d撕下此菜单测试 X display 失败感谢您选择 Vim此文件创建于 唯一匹配此 Vim 编译时没有加入 diff 功能这个 cscope 命令不支持分割窗口。
切换实现/定义"+command"、"-c command" 或 "--cmd command" 参数过多太多组合标志编辑参数过多太多延迟前缀太多延迟前缀和/或组合标志%s 第 %d 行,太多区域: %s顶端单词总数: %d%s 第 %d 行,多余的后续字符: %s输入  :quit<Enter>  退出 Vim请输入数字或点击鼠标 (<Enter> 取消): 无法读取块 0: 无法注册命令服务器名找不到撤销号 %ld未知未知的选项参数%s 第 %d 行,不可识别的标志: %s%s 第 %d 行,无法识别或重复的项: %s未命名向上使用 Vim 3.0。
使用 CUT_BUFFER0 来取代空选择使用交换文件 "%s"VIM - 注意VIM - 查找和替换...VIM - 查找...VIM - Vi IMprovedVIM 错误VIM: 不能打开窗口!
在你的 $PATH 中找不到 VIMRUN.EXE。
外部命令执行完毕后将不会暂停。
进一步说明请见 :help win32-vimrunVim - 字体选择器Vim E458: 无法分配颜色表项,某些颜色可能不正确Vim 警告Vim 对话框Vim 对话框...Vim 错误Vim 错误: ~aVim 返回值: %d
Vim 是可自由分发的开放源代码软件Vim: 拦截到 %s 事件
Vim: 拦截到致命信号(deadly signal)
Vim: 拦截到致命信号(deadly signal) %s
Vim: 双重信号,退出中
Vim: 读错误,退出中...
Vim: 错误: 无法从 NetBeans 中启动 gvim
Vim: 结束。
Vim: 主窗口被意外地摧毁
Vim: 从标准输入读取...
Vim: 从会话管理器收到 "die" 请求
Vim: 警告: 输入不是来自终端(键盘)
Vim: 警告: 输出不是到终端(屏幕)
Vim: 正在保留文件……
W10: 警告: 正在修改一个只读文件W11: 警告: 编辑开始后,文件 "%s" 已变动W12: 警告: 文件 "%s" 已变动,并且在 Vim 中的缓冲区也已变动W13: 警告: 编辑开始后,文件 "%s" 已被创建W14: 警告: 文件名过多W15: 警告: 错误的行分隔符,可能是少了 ^MW16: 警告: 编辑开始后,文件 "%s" 的模式已变动W17: Arabic 需要 UTF-8,请执行 ':set encoding=utf-8'W18: 组名中含有无效字符警告: 此文件自读入后已发生变动!!!警告: 检测到 Windows 95/98/ME警告警告: 找不到单词列表 "%s.%s.spl" or "%s.ascii.spl"警告: 意外地进入了其它缓冲区 (请检查自动命令)警告: 同时指定了 compounding 和 NOBREAK警告: 区域 %s 不支持警告: 你的终端不能显示高亮正在打开文件 "窗口位置: X %d, Y %d向 %s 中添加了单词另一行的词从 %s 中删除了单词要写入部分文件吗?写入拼写文件 %s ……写入建议文件 %s ……写入 viminfo 文件 "%s"%s 第 %d 行,错误的 CHECKCOMPOUNDPATTERN 值: %s%s 第 %d 行,错误的 COMPOUNDMIN 值: %s%s 第 %d 行,错误的 COMPOUNDSYLMAX 值: %s%s 第 %d 行,错误的 COMPOUNDWORDMAX 值: %sXSMP ICE 连接监视失败XSMP SmcOpenConnection 调用失败: %sXSMP 处理 save-yourself 请求XSMP 丢失了到 ICE 的连接XSMP 打开连接Xref 有Xref 被谁参考:Xref 参考到Xref 被谁使用:是计数为零[第 %ld 行转换错误][缺少 CR]'[已删除][设备][文件过大][帮助][第 %ld 行无效字符][最后一行不完整][Location 列表][找到 NL][未转换][新目录][新文件][新文件][新][未命名][已修改但尚未保存]
[未编辑][权限不足][预览][Quickfix 列表][读错误][只读][读错误][调用] 总共 re/malloc(): %lu,总共 free()': %lu

[已转换][已加密][dos 格式][dos][fifo/socket][fifo][文件 ..]       编辑指定的文件[长行分割][mac 格式][mac][noeol][只读][socket][unix 格式][unix]after再运行 diff 与原文件比较以检查是否有改变)
试图引用已被删除的缓冲区试图引用已被删除的窗口自动命令 %sbefore复制了 %ld 行的块复制了 1 行的块缓冲区无效者 维护人 Bram Moolenaar 等inputrestore() 的调用次数多于 inputsave()调用 %s不能删除 OutputObject 属性无法读取 'charconvert' 的输出不能切换主控台(console)模式 !?
无法创建缓冲区/窗口命令: 对象将被删除无法删除行无法获取行无法插入行无法插入/追加行不能打开无法注册回调命令: 缓冲区/窗口已被删除无法注册回调命令: 找不到缓冲区/窗口引用无法替换行无法保存撤销信息无法设定行无法复制;改为删除行发生改变行发生改变关闭命令: %s连接中在 %s 中继续不能执行 "%s"无法打开缓冲区cs_create_connection 执行失败cs_create_connection: fdopen fr_fp 失败cs_create_connection: fdopen to_fp 失败cscope 命令:
cscope 连接 %s 已关闭光标位置在缓冲区外默认值为: '删除了块 1?dlerror = "%s"在文件正确写入前请勿退出编辑器!环境变量错误列表 %d / %d;共 %d 个错误编译时没有启用表达式行被去掉文件
文件名 / 上下文 / 行
结束执行 %s释放了 %ld 行gvimext.dll 错误帮助隐藏的选项在路径 ---
无效的属性无效的缓冲区号无效的表达式无效的标记名称是目录不是文件不是文件或可写的设备只读 (请加 ! 强制执行)键盘中断第 %4ld 行:第 %6d 行,第 %6d 个单词 - %s第 %ld 行行 %ld / %ld --%d%%-- 列 第 %ld 行: %s第 %ld 行: 不能执行 "%s"第 %ld 行: 执行 "%s"行被去掉行号超出范围行号超出范围注消没有设定标记匹配 %d匹配 %d / %d最大mch_get_shellsize: 不是主控台(console)??
菜单  编辑->全局设定->开/关插入模式  菜单  帮助->孤儿           查看说明           菜单  Help->Sponsor/Register  查看说明           最小modeline行被加入行被加入启动新 shell
否没有 cscope 连接
找不到匹配的项无此缓冲区无此窗口没有同步未不允许在 sandbox 中使用找不到 在 'runtimepath' 中找不到 "%s"尚未实现  编号    改变  时间pe_line_count 为零pre-vimrc 命令行从 Netbeans 套接字读取只读属性记录中替换为 %s (y/n/a/q/l/^E/^Y)?第 %d 行 第 %d 列已查找到文件结尾,再从开头继续查找已查找到文件开头,再从结尾继续查找shell Shell 返回 %d关机softspace 必须是整数执行 "%s"stack_idx 应该是 0字符串不能包含换行(NL)C风格注释同步中同步开始找到 tag: %d / %d%stag 名从 %s 到 %s输入  :help cp-default<Enter> 查看相关说明    输入  :help iccf<Enter>       查看说明        输入  :help register<Enter>   查看说明        输入  :help sponsor<Enter>    查看说明        输入  :help version8<Enter>   查看版本信息    输入  :help windows95<Enter>  查看相关说明    输入  :help<Enter>  或  <F1>  查看在线帮助    输入  :q<Enter>               退出            输入  :set nocp<Enter>        恢复默认的 Vim  未知的标志: 未知的选项未知的 vim 选项版本 vim 错误窗口索引超出范围窗口无效带(传统)图形界面。带 Carbon 图形界面。带 Cocoa 图形界面。带 GTK 图形界面。带 GTK-GNOME 图形界面。带 GTK2 图形界面。带 GTK2-GNOME 图形界面。带图形界面。带 Photon 图形界面。带 X11-Athena 图形界面。带 X11-Motif 图形界面。带 X11-neXtaw 图形界面。无图形界面。writelines() 需要字符串列表作参数PK�j�Z�qq-vim80/lang/menu_czech_czech_republic.1252.vimnu�[���" Menu Translations:	Czech for Windows in ASCII encoding

source <sfile>:p:h/menu_czech_czech_republic.ascii.vim
PK�j�Z�G�o�o�#vim80/lang/zh_TW/LC_MESSAGES/vim.monu�[�������,mY�v�v�v
�v�v�v'w/=wmw�w�w0�w�w�w+�w!x"<x_xpx5�x�x�x�x�x�y,�y;�y+zBz`z}z�z�z�z�z�z�z{{6{0M{.~{/�{1�{0|
@|N|d|{|
�|�|
�| �|�|�|}!"}D}"c}�}�}�}@�}�}~+~<~L~[~/n~=�~�~�~
101b����-�"�B�W�i�����3��3�$�C�`�x�������
Ձ����+�
C�$Q�v� ������;ӂ��7+�0c�#��	��ƒۃ���

��2�C�O�g������!��Ä҄���9�A� I�j���������
��ͅڅ��
�(�	5�?�_�k�p�!u�	��"��*����)�6�M�
T�
b�m�
v���������5̇�-�1B�&t�����Ȉڈ���$(�M�
]�h�t���������ԉ���
��5�F�R�a�s�
������
����Ҋ��	��$�3�27�=j�����'‹-�5�N�k�A��ƌ���	��4�E�[�-y���$Ǎ�
��'�;�G�?^�5��!Ԏ%��9�EV�9��C֏I�Hd�;��0�6�8Q�3��-���%�,�@�Y�s�&��,��#ג4�� 0�@Q�-��0���;�B�"b���>��)Ք>��<>�{�#��:��'��9"�\�$u�9��4Ԗ;	� E�>f�1��/ח�-$�R�.a�B��"Ә/��2&�*Y���+��%Ι'�(�<E�E��.Ț-��$%�J�<c���*��&���,�>�Q�Z�f�{���������ʜ
ל�"���,�D�\�w�)����$��!ߝ��"�"?�b�{�1��?ƞ��&�-�A�R�h���������Ο���'�$/�T�!e���������נ�#�'�.�I�Qg���ȡء� �&�?F���
��
��$��+Ѣ.��,�F�U�"n�	����!��ɣ"ΣE�7�%T�#z�-��̤��$�&@�g�y�����¥ڥ'��)5�+_�@��-̦��5�M�j�����/��1��E5�{�-��7ƨ#�� "�:C�5~�&��"۩&��$%�#J�!n�=��5Ϊ �(%�7N�!��,��ի��  �#A�#e�������Ӭ��'�F�0e�$��!�� ݭ(��4'�,\�������Ю ��#�1=�o�!��%��%ԯ$��� 8�Y�u�?��&а!���
5�AC�%��%��"ѱ9�'.�(V�2�*��!ݲ!��)!�%K�!q�4��:ȳ&�;*�;f�)��0̴���8�Q�c�,|�!��8˵&�#+�O� g�/��"��۶-��+�D�/\�*��(��#�� �;�X�t�>��ϸ��"�=�\�r���!��ǹ9�1�)N�1x�%��7к�A"�?d�����ӻ!��0�K�0j�4��$м)��N�,n�L��8�!�,A� n� ��#��Ծ�7	�NA�M��޿���$2�!W�3y�,��2�%
�*3�9^�(����"���#�A�`�}���B����0�!E� g�<��(�����+#�2O�$����,����H
�,V�����"�������7�V�9u�������0��#,�'P�x���,��&�����+)�2U�-��(����"��'�'C�,k���.����#��,"�WO�)��"��,��%!�G� d���2��2��2�7�!T�v���2��5��'
�#5�)Y�,��'��$��%��#�=�Z�o���$��&�� ��'�*<�#g�'��%��3��!
�/�+N�z�*��-��$���7�V�r��� �� ��$��$�),�,V�����,������%�4�=T���������'��&�C�$`�#��0��.��0	�:�Z�w���������-�� �;�7V�)����$��(���=�%L�$r�������'���'-� U�v����� ��7��0�J�#i���"��(��!���-9�1g�5����.��*�1D�9v���*��&��+"�,N�+{�4��<��+�'E�m�������������
� �3�"B�e�x������������7�Q�m�������:��=�<E�6��<����"�2�4G�5|�4��3���0-�^�$q�%���������.�I�[�{������������,�'I�q���!������"���13�e�|���"���������5�I�\�u��������������)�F�`�*�)������ �!�<�M�6f�#����)��2�:�&Z�K�� ����
�(�H�a�y������������+:�f�%��7��5���7�,V�������)�� ���+�G�b�|�������0���3�R�o�4��.��$��)�1A�;s���8��*��#�$C�h�%��,��������&�-?�&m��� ������	�+#� O�p�?��)����6�#>�2b� ��������!�%�C�X�q���������9���(/�+X�/������!�"2�BU��������)-�'W����'���	����/�J�#`�������$��.��.*�6Y�����6��#�	��$�<�S�h�
u����������(�	�%��$�
0�;�X�)g���
����
������
�%+�Q�g�	|�������
��	�����'�	9�
C�N�2d�������$�/�'�B�X�
o�$z����������!�-�L�O�`�}�#������.��
+6	LVv��
������9.h�
������(5JRct
�	������9�
7EXs&��?�	0C"[~����
�'�F3z������"8Q0`;� �>�-EIi(�������+�.>Zj	|���F%	l	
x	
�	�	+�	�	�	
!
%>
d
(t
�
1�
+�
*B&\9�M�>)J5tA�4�$!
6F
"}
�
?�
"�
 <Qe !�#���
"3BO
S^q	~����
��
�
�		9F	Z
dr
w5��	���
��&� ':GM
U`i
{�:�"�"� $1=
o$z"��<�1ATnH{C�9Lgm	u� �-�-�#5Qp�=��$�4I[mr����
� � 
+
>IRp}�������#1'1Y1�1���%4
CN
S ^����	�"�$+$Pu|��
����#2:.F.u.�.�..1.`.�.���	&0DSd
t���	�����% �F����� %2 X n � 0� � � +� !'!A!
Q! _!�!�!�!
�!l�!5"'N"v"�"�"
�"
�"�"
�"�")#0#B#V#j#~#�#�#�#�#
$"$7$G$[$g$t$
z$
�$�$�$"�$�$%"%
7%E%3Q%�%
�%
�%
�%
�%
�%�%=�%:&Q&
k&
y&1�&1�&�&�&'&'-:'h'�'�'�'�'�'*�'.'(V(p(�(�(�(
�(�(
�())3)
D)O)
l)'w)�)�)�)�);�)	8*
B*<M*0�*�*�*�*�*�*
++++	6+	@+J+g+�+�+�+�+�+�+�+�+�+,,,5,L,a,g,m,	s,},�,�,�,�,�,�,�,	�,�,�,-!-)-A-^-{-�-�-�-�-�-�-
�-�-�-�-�-�-�-6.
M.%[.�. �.�.�.�.//(/;/"S/v/�/
�/	�/�/�/�/�/�/�/
00(080G0P0]0j0�0	�0�0	�0�0�0
�0�0�01"181:A1I|1	�1�1&�1#2#,2P2i2-}2�2�2�2	�2�2�2
33 .3%O3u3)�3�3
�3�3
�3
�3�3/4!@4b4|43�45�4453958m56�5.�56-+6/Y6/�6�6�6"�6
7 777
O7Z7=l7�7$�7�778%=8+c8�84�8�8�8969'R9;z9,�95�9%:0?:,p:;�:�:�:,;0;;<l;�;4�;+�;*(< S<)t<�<�<=�<=6$=)[=$�=�=>�=�=#>-?>,m>>�>$�>(�>$'?L?<c?�?#�?#�?�?
@@,@=@F@O@`@p@	�@
�@	�@�@�@�@ �@	�@	�@�@A/A
CAQAmA*uA�A
�A	�A�A�AB#B$CB+hB�B
�B�B�B�B�B�B
�BCCC6CKC^CgCwCC�C �C�C�C�C�C

DD+D@DEDYDDpD	�D	�D�D�D�DE:ESE
ZEeEnE}E�E�E�E�E�EFFFF"F8?FxF"�F(�F�F�FG'G<GQGlG�G�G�G�G�G�GHH5H2NH(�H�H)�H�HII*I&BI$iI�I!�I�I"�I)�I'JFJ1aJ)�J�J �J&�J#$KHKhK)�K(�K�K �K+LBL'^L�L�L�L�L�L-�L(M@MUMmM�M�M�M�M6�M#N<NUN pN2�N*�N�NOO-O?OROnO)�O�O�O�O�OP+P<PSPjP&P�P�P�P�P"Q#+QOQmQ'�Q�Q%�Q�QR'RGRaR"~R�R-�R1�RS,$S"QS"tS&�S�S�S�STT 0TQT(jT�T�T�T�T$�TU
9U1GU
yU�U�U#�U�U�UV1VMVdV|V�V+�V!�V"�V"W=WYWpW�W�W �W�W'�W"X.4X-cX�X�X�X6�X*&YQYoY�Y�Y�Y�Y�Y&	Z=0ZnZ�Z5�Z�Z3[=4[r[�[�[�[�[\\;5\@q\<�\�\"]*]A]^]#s]�]�]%�]'�]/^5O^�^�^�^�^�^�^__.(_W_0m_�_�_'�_"�_ `9` K`$l`�`�`%�`�`,�`$aAaPaoa�a�a�a�a�a$b'bBbYb qb�b �b
�b�b�bc'c
<cJc gc"�c�c�c�c�c!d78dpdd�d�d'�d>�d2eOe#me#�e�e�e�e+�e+!f+Mfyf�f�f�f%�f'g(gAgYg*xg+�g�g�gh h<hPhlh}h �h�h"�h&�h" iCi$^i-�i�i�i$�ij!j!Aj"cj�j�j�j�j�j�jk2kKkjk�k�k�k!�k�k�kl$l&Blil~l�l�l�l�l�l!m 2m$Sm$xm%�m�m�m�mnn.n?nTnsn�n �n�n�n�n!
o/o
FoToso�o�o�o�o�opp6pIp]pwp$�p�p�p�pqq5qSqlq q(�q,�q�q%r4r3Mr.�r�r�r�rss;sVsss+�s�s�s�stt&t9tPtctvt�t�t�t�t�t�t�tu*u:uOuhu�u�u�u�u+�u0
v0>v'ov,�v�v�v�v(�v('w.Pw(w
�w(�w�w�w	x)xBx[xtx�x
�x�x�x�x�xyy(y>yMyey�y�y �y&�y�yz7z)Fzpz�z�z�z�z�z�z{{*{={T{g{|{�{�{�{�{�{�{| |!<| ^||�|�|�|�|�|!}$0}U}"l} �}�} �}6�}"~?~X~k~�~�~�~�~�~!>!])��,�*�6�L�a�z����� ɀ���-�I�`�~�����%Á����.�#K�#o�#����'ׂ#��
#�1�O�i������� ׃����'1�)Y�����!��ք��(�F�]�0v� ��ȅ0ޅ�.�N�k�������ʆކ�
��
�(�<�7R�
��$��$��)��$�:�Q�o�4��ˆވ���/�>�%Z�����!��ˉ҉ۉ��! �!B�d�~�
��
����#��ފ)�*�B�
G�3R���������
��
ʋ؋�
��
���%�@�I�i�u�{�������
ˌ֌
��
��'�0�H�d�t�������������ȍ͍֍ݍ��
	�
���2���ŎΎ����9�M�\�c���������яڏ����!�4�G�c�o��� ��
��
��ΐԐ��
��
�
�"�:�G�L�^�{�������������ґߑ�(��!�-�6�;�L�Y�	b�l�����	��
��$��ْ����1�:N���������ɓ�
�"���
,�
7�B�\�9t�����֔����
��,�
;�I�#V�z�
��7������"�9�>�C�P�W�\�l���
����
��ǖٖ�d��9[���
��
���� ˗�&��!$�F�_�}�����&�� ٘ ���/�'O�Cw�+���*��8&�4_���!��Ԛ�7��/�N�[�p�������ƛ���$�,�;�G�V�
Y�d�	m�w���
��������œ˜Ԝݜ����
��
!�,�
3�1>�p�y�
����
������
ǝҝ
ߝ������
���*&�Q�k�������-�����"�'B�
j�
x�������/��)�
��.�:�M�R�Z�a�
j�x�)��)��
����#�+�7�W�@v�����ء��
���!�0�?�N�U�^�u���������
â΢������%�2�)7�.a�4��)ţ1�!�
&�4�7�I�U�
^�i�l�t���������֤ߤ��"
�"0�S�Z�j�o���������
ʥե��@��+=�.i�,��3ŦA��3;�3o�-��ѧާ�����%�:�Q�g�{�����ŨԨ���9�$J�l������42v/G�_�
x�����<z$k��v/���eV-H!��I�`2/�"_dy����J���E:A<���i�{�Y��"v���c����[����l�Y�H^MC��k��-���,�y�]��7.��p�}�����++��R��m���~M�}�����a�21�%�,+]�~��a=@4�'�J�\�o����[�[rL0�!t�����Bj����� on�|$I3S�S��j4���]��9��VK'��!3F�M�����B���t?�9J}E��:��j����#���m�>�0NL�����5b��8��c�<��0��5����,�TV�Y�qI��0�,6o��a�
�������!�q�f��(�u	J	�z7	#�~�zy��K�6~\�h��6��?S�������/����<� )�P�Xb�E���%j@R	(��#H2���d�[w���n(F��DZ���OB�9������{3�Gl����Q�C�<_��8��*b~
B�j!
`T��e��u6p����3�Mh|g����-��D�Z���mL����
�
�)M���s�����c��L�G)Wt����B���T�Pi�I�A�n� x@[}���$�|��s u_F�'8g|.#��7:\A����iW�����.7*��T6O��zU�;pE��#a��n�}>
Ca��
�fHmi1��N���D4d�~��w��1\�>�h?����q���V��`l��s�E�f���iD�G
z'��5�9&�rJ�N�AK���e�-P��)Q��&�wQ���	�`w�
���&���X�g���N��
��|�&x�?.0�8�7������A8�^�{�x>`������^�TP��Z���U��?�Yov�>kN��k7�p�t:�C�"vG�c����;�i���Q\D��|X%k1�����9�%��q�"x����=���F�Y.��a���N��q'��$ W��������_�e$���rW���O)��rh^R��o�9"u�	:^��Wy/%�n��!Z<Cgk�)U�z��%���(@�;tFV���;��f�X;�r=�I{Z*r��P�m���q�V,2G���1]bc�5�����R��*P�c����"�=���R[�H]�s�S*��x,���Y�C�B`f���&��p{#F4��u+On�}w-��K2Ks>@(���h_+(��+��@��^��o���X�U��5�D;�8�6�U�L��dwg���{������y��5b�J�vf$�����e�=h����m��g���:���S3�\0�s�j�p?&�S��RX�*3����yQL��T'/H�I���E���elZK�t�Q���-�.�OU����d�]��4WO�d���A
�bul� ��������1M�=����			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (RET/BS: line, SPACE/b: page, d/u: half page, q: quit) (RET: line, SPACE: page, d: half page, q: quit) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE Tag completion (^]^N^P) Thesaurus completion (^T^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^E^Y^L^]^F^I^K^D^V^N^P) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s made pending%s resumed%s returning "%s"%s returning #%ld%s, line %ld%sviminfo: %s in line: &Diff with Vim&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort
&Delete it&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%.*s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAllAll cscope databases resetAll included files were foundAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Before byte %ldBotBreakpoint in "%s%s" line %ldBrowse classCalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Conversion with 'charconvert' failedCould not allocate memory for command line.Could not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

DirectionDirectoriesDo you really want to write to itDownE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE106: Unknown variable: "%s"E107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Undefined function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters before '='E190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: Warning: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_timestamp: Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu of that nameE32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE361: Crash intercepted; regexp too complex?E363: pattern caused out-of-stack errorE364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot set read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failedE514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE56: %s* operand could be emptyE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE57: %s+ operand could be emptyE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while nesting too deepE586: :continue without :whileE587: :break without :whileE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE58: %s{ operand could be emptyE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert from multi-byte to "%s" encodingE621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE67: \z1 et al. not allowed hereE68: Invalid character after \zE69: Missing ] after %s%%[E70: Empty %s%%[]E71: Invalid character after %s%%E72: Close error on swap fileE73: tag stack emptyE74: Command too complexE75: Name too longE76: Too many [E77: Too many file namesE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - &Edit with single &VimEdits the selected file(s) with VimEnd of functionEnd of sourced fileEnter encryption key: Enter nr of choice (<CR> to abort): Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:ExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpressionExternal submatches:
File "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find NextFind string (use '\\' to find  a '\')Find symbolFind what:Font '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Garbage after optionGenerate docu forGreetings, Vim user!HelpHelp poor children in Uganda!Hit ENTER or type command to continueHit ENTER to continueHit end of paragraphI/O ERRORIllegal file nameIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Modified by Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundOKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%.*s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading from stdin...Reading viminfo file "%s"%s%s%sRecovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%.*s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSee ":help E312" for more information.See ":help W11" for more info.Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesSwap file "Swap file already exists!Swap files found:Tear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many edit argumentsTopType  :quit<Enter>  to exit VimUnable to read block 0 from Unable to register a command server nameUndoUnknownUnknown optionUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Entered other buffer unexpectedly (check autocommands)Warning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing viminfo file "%s"XSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR][CR missing][Deleted][Device][Error List][ILLEGAL BYTE in line %ld][Incomplete last line][NL found][NOT converted][New File][New file][New][No File][No file][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][string too long][unix format][unix]and run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %sconnectedcontinuing in %scould not source "%s"cs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?don't quit the editor until the file is successfully written!error list %d of %d; %d errorsexpressions disabled at compile timefile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelpin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal new shell started
nono cscope connections
no such bufferno such windowno syncingnot not found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwith (classic) GUI.with BeOS GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: Vim(Traditional Chinese)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2005-01-27 19:00+0800
PO-Revision-Date: Mon Feb 19 22:49:21 CST 2001
Last-Translator: Hung-Te Lin <piaip@csie.ntu.edu.tw>
Language-Team: Hung-Te Lin <piaip@csie.ntu.edu.tw>, Cecil Sheng <b7506022@csie.ntu.edu.tw>
MIME-Version: 1.0
Content-Type: text/plain; charset=big5
Content-Transfer-Encoding: 8-bit
			  (�|����@)

	�W���]�w: 

�Ѽ�:


 �Ϊk:
            �ק�L: 
         [�L�k�b���q���W�ϥ�]
         [�L�k�b�������� Vim �W�ϥ�]
          �D���W��: 
            �ϥΪ�: 
        process ID: 
    �W��        �Ѽ� �d��  ����      �w�q      
   #   ��  
   ��:
  # �� tag         �q   ��    �b �ɮ�/��r
 jump �渹  ��  �ɮ�/��r
# %s ���v�O�� (�s����):

# �w�İϦC��:

# �ɮ׼аO:

# �ɮפ� Mark �O�� (�ѷs����):

# Jumplist (�ѷs����):

# �e�@�մ��N�r��:
$
# �Ȧs��:

# �����ܼ�:

(1) �i�঳�t�@�ӵ{���]�b�s��P�@��ɮ�.
    �p�G�O�o�ˡA�Фp�ߤ��n����@�_�g�J�A���M�A���V�O���|�t�Ѭy��C

(2) �e���s�覹�ɮɷ�

(�A�i��|�Q�n��o��ɮץt�s�O���ɦW�A

--- Auto-Commands ---
--- Global �ﶵ�� ---
--- Local �ﶵ�� ---
--- ��� ---
--- �ﶵ ---
--- �Ȧs�� ---
--- �Ÿ� ---
--- �y�k���� ---
--- �y�k�P�B���� (Syntax sync items) ---
--- �׺ݾ��X ---
--- �׺ݾ����� ---
16 Bit MS-DOS ����
32 Bit MS-DOS ����
gvim �{�o���Ѽ� (Athena ��):

gvim �{�o���Ѽ� (GTK+ ��):

gvim �{�o���Ѽ� (Motif ��):

gvim �{�o���Ѽ� (RISC OS ��):

gvim �{�o���Ѽ� (neXtaw ��):

�j������ 
����إ� pipe �޽u

������ shell
������ shell sh

���� fork

�R�O�w�׵�

�sĶ
���Ȧs�� "
�W�j���� 
�ޤJ�ץ�: 
MS-Windows 32 Bit console ����
MS-Windows 16/32 Bit �ϫ��ɭ�����
MS-Windows 32 Bit �ϫ��ɭ�����
MS-Windows 32 Bit console ����
MacOS X (unix) ����
MacOS X ����
MacOS ����
�i��O�A�S���L���ק�άO Vim �٨Ӥ��Χ�s�Ȧs��.
�d�ߧ�h��T�а���: "vim -h"

�@�목�� 
RISC OS ����
²������ 
��²���� 
Vim: X ���~

ĵ�i: ��l�ɮ׬y���ηl�a

[bytes] ���� alloc-freed %lu-%lu, �ϥΤ� %lu, peak �ϥ� %lu

����   �渹  ��  ��r
�аO �渹  ��  �ɮ�/��r
Shell �w��^
�P�B�Ƥ�:                              �H�o Vim �w�]��                                  ��ؼҦ�                         ��:             �֦���:          [�L�k�}��]         [�L�kŪ��]                          [���� Vim ���Ȧs��]              [�q Vim ���� 3.0]              �ɦW:       -- �L --
      ��Ȧs�ɧ�s!
   �ϥΪ̭ӤH exrc �]�w��: "  �ϥΪ̭ӤH vimrc �]�w��: "    �p�G�O�o��, �Х� ":recover" �� "vim -r    �p�G�ӱϪ����w�g�ϤF, �Ъ����R�����Ȧs�� "    ��}�A�άO�~��s��C
    ��=%ld  id=%d  �W��=%s           �t�ο��]�w��: "     �ϥΪ̭ӤH gvimrc ��: "   �b�ثe���ؿ�:
   �b�ؿ�    Using specified name:
    ��:     �D���W��:         �t�� vimrc �]�w��: "  # pri kind tag  (�w�C�X)   �ĤG�ըϥΪ� exrc �ɮ�: "  �������� �ثe�i�ϥ�(+)�P���i�ϥ�(-)���ҲզC��:
  �䤣��  �H���P�j�p�g�Өϥ� tag!              $VIM �w�]��: "         �t�� gvimrc �ɮ�: " # pid    ��Ʈw�W��                          prepend path
 (�w���_) (�䤣��)  (RET/BS: �V�U/�V�W�@��, �ť��/b: �@��, d/u: �b��, q: ��}) (RET: �V�U�@��, �ť��: �@��, d: �b��, q: ��}) (�]�A�e���C�X�ŦX��) (���J) (���J) Scroll (^E/^Y) (�y��) (��w�R��) (���䴩)  (�K�W) (���N) (���N) Scroll (^E/^Y) (���椤) (v-���N)    �ĤG�խӤH vimrc �ɮ�: "    �ĤT�խӤH vimrc �ɮ�: " �W�[ Arabic�ഫ���~ �R�O�C�۰ʧ��� (^V^N^P)�ƻs %d / %d �w�q�۰ʧ��� (^D^N^P) �r��۰ʧ��� (^K^N^P) ���� �ɦW�۰ʧ��� (^F^N^P) Hebrew ���J �ϰ����r�۰ʧ��� (^N^P) ���r�۰ʧ��� (^N^P) ��|�۰ʧ��� (^N^P) ���N ���� �� ���϶� ����  ���Ҧ۰ʧ��� (^]^N^P) Thesaurus �۰ʧ��� (^T^N^P) �� [�϶�]  [��]  V-���N ���۰ʧ��� (^L^N^P) [�w�ק�][a][w] ^X �Ҧ� (^E^Y^L^]^F^I^K^D^N^P) �w���[ �L�k�b�o�O�q���W�ϥ�.
 �L�k�b�������� Vim ���ϥ�.
       $VIMRUNTIME �w�]��: "Win32s �Ҧ� �T����ɮ�
�_�� �渹�W�X�d�� �аO�A�d��G %ld �� �A�d��G�@��  �Χ�h �w��^
vim [�Ѽ�] �䴩 OLE �w�g�J"
    �H�קK�A�ݨ즹�T��.
"
    �ӱϦ^�ק��� (�Բӻ����Ь� ":help recovery").
" �w�g�s�b�F!# �� viminfo �ɮ׬O�� Vim %s �Ҳ���.
# 'encoding' �b���ɫإ߮ɪ���
# �p�G�Q�n�ۦ�ק�ЯS�O�p�ߡI

%-5s: %-30s (�Ϊk: %s)%3d  %s %s  �� %ld �� %<%f%h%m%=�� %N ���w�R�� %d �ӽw�İ��w��� %d �ӽw�İ��w�R�� %d �ӽw�İ��٦� %d ��ɮ׵��ݽs��
�٦� %d ��ɮץ��s��. �T�w�n��}�H�w�s�� %d/%d ��ɮ�%ld ��; %ld ������%ld�Ӧr���u�� %ld �� %ld �� %s �L %d ��%ld �� %s �L �@����� %ld --%d%%--�w���� %ld �� �w�B�z %ld �� �w�Y�� %ld �� �w�h�� %ld �� �Y�� %ld ��... �w�ƻs %ld �� %ld ��, �٦� %ld �� ���N %ld �� %s Auto commands: "%s"%s �Q�j��_���� %s �w���%s �y�� pending%s �w�^�_%s �Ǧ^�� "%s"%s �Ǧ^�� #%ld %s, �� %ld%sviminfo: %s �b�椤: �ϥ� Vim �Ӥ�(&Diff)�T�w(&O)
����(&C)�T�w(&O)
���J�ɮ�(&L)�T�w(&O)�H��Ū�覡�}��(&O)
�����s��(&E)
�״_(&R)
��}(&Q)
���X(&A)�H��Ū�覡�}��(&O)
�����s��(&E)
�״_(&R)
��}(&Q)
���X(&A)
�R���Ȧs��(&D)&Y�O
&N�_&Y�O
&N�_
&C����&Y�O
&N�_
&A�����s��
&D�������s
&C����' �L�k���J�C�i�Ϊ����ز׺ݾ��Φ���:'columns' ���O 80, �L�k����~���R�O�ﶵ 'dictionary' ���]�w�ﶵ 'history' �O�s"%.*s" �w�]�w 'readonly' �ﶵ.
�T�w�n�мg�ܡH�ﶵ 'thesaurus' ���]�w(%d / %d)%s%s: (+%ld for BOM)(�w���_) (�����T)+			�Ұʫ���ɮ׵���+-%s%3ld ��: +--�w fold %3ld �� +<lnum>		�Ұʫ���� <lnum> �� +reverse		���ϥΤϬ���� (�]�i�� +rv),
�άO�o�ɮפw�g�l���C-               �q�зǿ�J(stdin)Ū���ɮ�--			�u���b�o���᪺�ɮ�-- �|�� ---- �j�M��...--- �ޤJ�ɮ� --�w�R��----�w�İϵL���----cmd <command>	���J��� vimrc �e���� <command>--columns <number>	������l�Ƽe��--literal		���i�}�U�Φr��--noplugin		�����J��� plugin--remote <files>	�s�� Vim ���A���W�� <files> ����}--remote-expr <expr>	�b���A���W���� <expr> �æL�X���G--remote-send <keys>	�e�X <keys> �� Vim ���A������}--remote-silent <files>  �ۦP�A���S�����A���ɤ�ĵ�i--remote-wait <files>  �P --remote, ���|����ɮק����s��--remote-wait-silent <files>  �ۦP�A���S���A���ɤ�ĵ�i--role <role>	�]�w�W�S������(role)�H�Ϥ��D����--rows <number>	������l�ư���--serverlist		�C�X�i�Ϊ� Vim ���A���W�٨���}--servername <name>	�e��/���� Vim ���A�� <name>--socketid <xid>	�b�t�@�� GTK widget ���}�� Vim--version		�L�X������T����}-A			�Ұʬ� Arabic �Ҧ�-C			'compatible' �Dz� Vi �ۮe�Ҧ�-D			�����Ҧ�-F			�Ұʬ� Farsi �Ҧ�-H			�Ұʬ� Hebrew �Ҧ�-L			�P -r-M			���i�ק��r-N			'nocompatible' �������P�Dz� Vi �ۮe�A�i�ϥ� Vim �[�j��O-O[N]		�P -o ���ϥΫ�������-P <parent title>	�b���{�����}�� Vim-R			��Ū�Ҧ� (�P "view")-S <session>		���J�Ĥ@��ɮ׫��J Session �� <session>-T <terminal>	�]�w�׺ݾ��� <terminal>-U <gvimrc>		�ϥ� <gvimrc> ���N��� .gvimrc-V[N]		Verbose ����-W <scriptout>	��ɮ� <scriptout> �g�J�Ҧ���J���R�O-X			���n�s�u�� X Server-Z			����Ҧ� (�P "rvim")-b			�G�i��Ҧ�-background <color>	�]�w <color> ���I���� (�]�i�� -bg)-boldfont <font>	�ϥ� <font> ������r��-borderwidth <width>	�ϥμe�׬� <width> ����� (�]�i�� -bw)-c <command>		���J�Ĥ@��ɮ׫��� <command>-d			Diff �Ҧ� (�P "vimdiff", �i���t���ɮפ��P�B)-dev <device>		�ϥ� <device> ����X�J-display <display>	�N vim �P���w�� X-server �s�u-display <display>	�b���� <display> ���� vim-display <display>	�b <display> ���� vim (�]�i�� --display)-e			Ex �Ҧ� (�P "ex")-f			���ϥ� newcli �Ӷ}�ҵ���-f  ��  --nofork	�e��: �_�l�ϧάɭ��ɤ� fork-font <font>	�ϥ� <font> ���@��r�� (�]�i�� -fn)-foreground <color>	�]�w <color> ���@���r�C�� (�]�i�� -fg)-g			�ϥιϧάɭ� (�P "gvim")-geometry <geom>	�ϥ�<geom>���_�l��m (�]�i�� -geom)-h  ��  --help	�L�X����(�]�N�O���T��)����}-i <viminfo>		�ϥ� <viminfo> �ӫD .viminfo-iconic		�Ұʫ�ϥܤ�(iconified)-italicfont <font>	�ϥ� <font> ������r��-l			Lisp �Ҧ�-m			���i�ק� (�g�J�ɮ�)-menuheight <height>	�]�w���C�����׬� <height> (�]�i�� -mh)-n			���ϥμȦs��, �u�ϥΰO����-name <name>		Ū�� Resource �ɧ� vim ���W�ٵ��� <name>-o[N]		�}�� N �ӵ��� (�w�]�O�C��ɮפ@��)-q [errorfile]  �s��ɸ��J�Ĥ@�ӿ��~-r			�C�X�Ȧs�ɫ���}-r (�[�ɦW)       	�״_�W���l�������(Recover crashed session)-register		���U gvim �� OLE-reverse		�ϥΤϬ���� (�]�i�� -rv)-s			�w�R (batch) �Ҧ� (�u��P "ex" �@�_�ϥ�)-s <scriptin>	�q <scriptin> Ū�J�@��Ҧ��R�O-scrollbarwidth <width>  �]�w���ʶb�e�׬� <width> (�]�i�� -sw)-t tag          �s��ɨϥΫ��w�� tag-u <vimrc>		�ϥ� <vimrc> ���N��� .vimrc-unregister		���� OLE ���� gvim ���U-v			Vi �Ҧ� (�P "vi")-w <scriptout>	��ɮ� <scriptout> ���[(append)�Ҧ���J���R�O-x			�s��s�X�L���ɮ�-xrm <resource>	�]�w���w�� resource-y			²���Ҧ� (�P "evim", modeless)...(�w����)�w�R���@�ӽw�İ��w���@�ӽw�İ��w�R���@�ӽw�İ��@�������@�Ӧr���@�� %s �L %d ���@�� %s �L �@����� 1 --%d%%-- 1 �� ~ed�@��w�Y���֩�@�� �w�h�� 1 �� �w�ƻs 1 �� 1 ��, �٦��@��ɮץ��s��. �T�w�n��}�H�٦��@�� ���N�@��    �ĤG�խӤH gvimrc �ɮ�: "   �ĤT�խӤH gvimrc �ɮ�: ": �L�k�ǰe�B�⦡�C
: �ǰe���ѡC
: �e�X���ѡC�չϦb���a����
; �ŦX <%s>%s%s  %d,  �Q���i�� %02x,  �K�i�� %03o<buffer ���� (�w�R��): %8lX><����}��><���� %d><��������(�w�R��): %.8lX><��������(����): %.8lX>> %d, �Q���i�� %04x, �K�i�� %o> %d, �Q���i�� %08x,  �K�i�� %o??? �q�o�̨� ???END �����e�i�঳���D??? �q�o�̨� ???END �����e�i��Q�R��/���J�L???�䤣��BLOCK???�Ū� BLOCK???END???�渹���~???�䤣��@�Ǧ� ???�ʤ֤Ӧh�� ANCHOR_BUF_SIZE �Ӥp�s�W��Ʈw�s�W cscope ��Ʈw %s�������]�Ҧ� cscope ��Ʈw�Ҧ��ޤJ�ɮ׳��w����w�g�u�Ѥ@�ӵ����F���[�ɮ��ʤ֥��n���Ѽ�:�b�渹 �չϦA���}�� script ��: "�^��_�I���w�F�V�e�ѦҪ��d��AOK to swap���� Vim �����U�ϥΪ̡I�b %ld �줸���e����"%s%s" ���_�I: �� %ld �� �s� class�I�s shell ����: "%s"�䤣���ഫ�Ϊ��Ȧs�������L�k�s���� Netbeans�L�k�s���� Netbeans #2�L�k�s�u�� SNiFF+�C��ˬd����ܼ� ($PATH �̥��ݥi�H��� sniffemacs)
����إ� ������ �L�k�}�� NIL:
�L�k�}�ҥHŪ��: "�L�k�}�Ҭ� script ��X: "�L�k����ؿ��G "%s"�� %s/%s; �� %ld/%ld; �r(Word) %ld/%ld; �r��(Byte) %ld/%ld�R�O�C�sĶ�覡: �sĶ��: �r�����ഫ���~�L�k���R�O�C�t�m�O����C����ץ��禡���Ш� DLL!�L�k���J vim32.dll�ICscope ����(tag): %s�ثe�� %s�y��: "%s"(D)�����R�� .swp �Ȧs��

��V�ؿ��T�w�n�g�J���V�UE100: �S���w�İϦb diff �Ҧ�E101: ����ӥH�W���w�İϦb diff �Ҧ��A�L�k�M�w�n�έ��@��E102: �䤣��w�İ�: "%s"E103: �w�İ� "%s" ���O�b diff �Ҧ�E104: �ƦX�r��(digraph)������ϥ� EscapeE105: �ϥ� :loadkeymap E106: ���w�q���ܼ�: "%s"E107: �ʤֹ����A��: %sE108: �L���ܼ�: "%s"E109: '?' ��ʤ� ':'E10: \ �᭱���Ӧ� / ? �� &E110: �ʤֹ��� ")"E111: �ʤֹ��� "]"E112: �ʤֿﶵ�W��: %sE113: �����T���ﶵ: %sE114: �ʤ֤޸�: %sE115: �ʤ֤޸�: %sE116: �禡 %s ���޼Ƥ����TE117: ���w�q���禡: %sE118: �禡 %s ���޼ƹL�hE119: �禡 %s ���޼ƤӤ�E11: ����b�R�O�C�������ϥΡC<CR>����ACTRL-C ��}E120: <SID> ����b script ����~�ϥ�: %sE121: �ܼ� %s �|���w�qE122: �禡 %s �w�g�s�b, �Шϥ� ! �j���NE123: �禡 %s �|���w�qE124: �ʤ� "(": %sE125: �ѼƤ����T: %sE126: �ʤ� :endfunctionE127: �禡 %s ���b�ϥΤ��A�L�k���s�w�qE128: �禡�W�ٲĤ@�Ӧr�������j�g: %sE129: �ݭn�禡�W��E12: exrc/vimrc �̪����O�L�k���� E130: �禡 %s �|���w�qE131: �禡 %s ���b�ϥΤ��A�L�k�R��E132: �禡���j�I�s�h�ƶW�L 'maxfuncdepth'E133: :return �����b�禡�̨ϥ�E134: �L�k��沾�쥦�ۤw��E135: *Filter* Autocommand ���i�H���w�İϪ����eE136: viminfo: �L�h���~, �����ɮר�l����E137: Viminfo �ɮ׵L�k�g�J: %sE138: �L�k�g�J viminfo �ɮ� %s !E139: �z�b�t�@�ӽw�İϤ]���J�F�o��ɮ�E13: �ɮפw�g�s�b (�i�� ! �j���N)E140: �Шϥ� ! �H�g�J�����w�İ�E141: �w�İ� %ld �S���ɮצW��E142: �ɮץ��g�J�A�]�� 'write' �ﶵ�Q���E143: Autocommands �N�~�a�R���s�w�İ� %sE144: :z �������D�Ʀr���Ѽ�E145: rvim ���T��ϥ� shell �R�OE146: Regular expression �L�k�Φr�����j (?)E147: :global �L�k���j���� E148: �S���ϥιL Regular expression (?)E149: ��p, �S�� %s ������E14: �����T����}E150: %s ���O�ؿ�E152: �L�k�H�g�J�Ҧ��}�� "%s"E153: �L�kŪ���ɮ�: %sE154: ����(tag) "%s" �b�ɮ� %s �̭��ƥX�{�h��E155: �����T�� sign: %sE156: �ʤ� sign �W��E157: Sign ID ���~: %ldE158: �w�İϦW�ٿ��~: %sE159: �ʤ� sign numberE15: �����T���B�⦡: %sE160: ���w�q�� sign command: %sE161: �䤣�줤�_�I: %sE162: �w���L�w�İ� "%s" ���|���s�� (�i�� ! �j����)E163: �u���@��ɮץi�s��E164: �w�g�b�Ĥ@��ɮפFE165: �w�g�b�̫�@��ɮפFE166: �L�k�H�g�J�Ҧ��}�ҳs���ɮ�E167: �b���� script �ɮץ~���i�ϥ� :scriptencodingE168: �b���� script �ɮץ~���i�ϥ� :finishE169: �R�O���j�h�ƹL�hE16: �����T���d��E170: �ʤ� :endwhileE171: �ʤ� :endifE172: �u�঳�@���E173: �٦� %ld ��ɮץ��s��E173: �٦��@��ɮץ��s�� E174: �R�O�w�g�s�b, �Шϥ� ! �j��s�w�qE175: �S�����w���ݩ�E176: �����T���ѼƼƥ�E177: �����w�⦸�ƥ�E178: �ƥت��w�]�ѼƤ����TE179: ���O�ݭn�ѼƤ~�৹��E17: "%s" �O�ؿ�E180: �����㪺��: '%s'E181: �����T���ݩ�: %sE182: ���O�W�٤����TE183: �ϥΪ̦۩w���O�����H�j�g�r���}�lE184: �S���ϥΪ̦۩w���R�O�G %sE185: �䤣���C��˦� %sE186: �S���e�@�ӥؿ�E187: �L�k���Ѫ��аOE188: �b�z�����x�W�L�k��o������mE189: "%s" �w�s�b (�Х� ! �j����)E18: '=' �e���X�{�F���~���r��E190: �L�k�H�g�J�Ҧ��}�� "%s"E191: �Ѽƥ����O�^��r���ΦV�e/�᪺�޸�E192: :normal ���j�h�ƹL�`E193: :endfunction �����b�禡�����ϥ�E194: �S�� '#' �i���N���ɦWE195: �L�kŪ�� viminfoE196: �������L�ƦX�r��(digraph)E197: ����]�w�y���� "%s"E198: cmd_pchar �W�L�R�O����E199: �w�R�����@�Τ��������μȦs��E19: �аO���渹���~E200: *ReadPre Autocommand �ϵ{���L�kŪ������E201: *Filter* Autocommand ���i�H���w�İϪ����eE202: �ഫ���~E203: Autocommand �R�������F�n�g�J���w�İ�E204: Autocommand �N�~�a���ܤF�渹E205: Patch �Ҧ�: �L�k�x�s��l�ɮ�E206: Patch �Ҧ�: �L�k�ܧ�Ū���l�ɮ�E207: �L�k�R���ƥ���E208: �g�J�ɮ� "%s" ���~E209: ����ɮ� "%s" ���~E20: �S���]�w�аOE210: Ū���ɮ� "%s" ���~E211: ĵ�i: �ɮ� "%s" �w�g���s�bE212: �L�k�H�g�J�Ҧ��}��E213: �L�k�ഫ (�Шϥ� ! �j��ഫ�g�J)E214: �䤣��g�J�Ϊ��Ȧs��E215: * �᭱�������T���r��: %sE216: �L���ƥ�: %sE216: �L���s�թΨƥ�: %sE217: �L�k��Ҧ��ƥ�� autocommandE218: autocommand �h�ƹL�`E219: �ʤ� {.E21: �]�� 'modifiable' �ﶵ�O������A�ҥH����ק�E220: �ʤ� }.E222: �[�JŪ���w�İϤ�E223: ���j mappingE224: %s �w�g������ abbreviation �FE225: %s �w�g������ mapping �FE226: %s �w�g�� abbreviation �FE227: %s �� mapping �w�g�s�bE228: makemap: �����T���Ҧ�E229: �L�k�Ұʹϫ��ɭ�E22: �_�����j�I�s�Ӧh�hE230: �L�kŪ���ɮ� "%s"E231: �����T�� 'guifontwide'E232: �����T���P callback �إ� BallonEvalE233: <����}�� X Server DISPLAY>E234: �����T���r���� (Fontset): %sE235: �����T���r���W��: %sE236: "%s" ���O�T�w�e�צr��E237: �L�k��ܦ��L��E238: �C�L���~: %sE239: �����T�� sign ��r: %sE23: �S�����N���ɮ�E240: �S���P Vim Server �إ߳s�uE241: �L�k�ǰe�� %sE243: ���䴩�Ѽ� "-%s"�C�Х� OLE �����CE244: �r���� "%s" �L�k���r��"%s"E245: �����T���r�� '%c' �X�{�b�r���W�� "%s" ��E246: FileChangedShell autocommand �R���w�İ�E247: �S�����U�� "%s" �����A��E248: �L�k�e�X�R�O��ت��a�{��E24: �S���o�� abbreviation ��E250: Fontset %s �S���]�w���T���r���H����ܳo�Ǧr����:E251: VIM �� registry �]�w�����~�C�w�R���CE252: �r����(Fontset)�W��: %sE253: �r����(Fontset)�W��: %s
E254: ����t�m�C�� %sE255: �L�kŪ�� sign data!E256: Hangul automata ���~E257: cstag: �䤣�� tagE258: �L�k�ǰe�� clientE259: �䤣��ŦX cscope ���j�M %s / %sE25: �]���sĶ�ɨS���[�J�ϫ��ɭ����{���X�A�ҥH�L�k�ϥιϫ��ɭ�E261: �䤣�� cscope �s�u %sE262: Ū�� cscope �s�u %ld ���~E263: ��p�A�o�өR�O�L�k�ϥΡAPython �{���w�S�����J�CE264: Python: �L�k��l I/O ����E266: ���R�O�L�k�ϥΡA�L�k���J Ruby �{���w(Library)E26: �]���sĶ�ɨS���[�J Hebrew ���{���X�A�ҥH�L�k�ϥ� Hebrew
E273: ������ longjmp status %dE274: Sniff: Ū�����~. �����s�uE275: �����T�� SNiff+ �I�s: %sE276: �s�u�� SNiFF+ ����E277: �L�kŪ�����A�����^��E278: ���s�u�� SNiFF+E279: ���O SNiFF+ ���w�İ�E27: �]���sĶ�ɨS���[�J Farsi ���{���X�A�ҥH�L�k�ϥ� Farsi
E280: TCL �Y�����~: reflist �걼�F!? �г��i�� to vim-dev@vim.orgE281: TCL ���~: ����X���O���!? �г��i�� to vim-dev@vim.orgE282: �L�kŪ���ɮ� "%s"E283: �䤣��ŦX "%s" ���аO(mark)E284: ����]�w IC �ƭ�E285: �L�k�إ� input contextE286: �L�k�}�ҿ�J�kE287: ĵ�i: �L�k���� IM �� callbackE288: ��J�k���䴩��� styleE289: ��J�k���䴩��� styleE28: �S���W�� '%s' �� highlight groupE290: over-the-spot �ݭn�r����(Fontset)E291: �A�� GTK+ �� 1.2.3 ���¡C�L�k�ϥΪ��A�ϡCE292: �S�����椤����J�k�޲z�{��(Input Method Server)E293: �϶�Q��wE294: �Ȧs��Ū�����~E295: �Ȧs��Ū�����~E296: �Ȧs�ɼg�J���~E297: �Ȧs�ɼg�J���~E298: �䤣��϶� 0?E298: �䤣��϶� 1?E298: �䤣��϶� 2?E299: �b sandbox ���L Safe �ҲծɵL�k���� PerlE29: �٨S�����J��r�LE300: �Ȧs�ɤw�g�s�b! (�p�߲Ÿ��s�����w���|�}!?)E301: ����, �Ȧs�ɤ����F!!!E302: �L�k���ܼȦs�ɪ��W��E303: �L�k�}�ҼȦs�� "%s", ���i��״_�FE304: ml_timestamp: �䤣��϶� 0??E305: �䤣�� %s ���Ȧs��E306: �L�k�}�� %sE307: %s �ݰ_�Ӥ����O Vim �Ȧs��E308: ĵ�i: ��l�ɮץi��w�g�ק�L�FE309: �L�k�q %s Ū���϶� 1E30: �S���e�@���R�OE310: �϶� 1 ID ���~ (%s ���O�Ȧs��?)E311: �״_�w���_E312: �״_�ɵo�Ϳ��~; �Ъ`�N�}�Y�� ??? ���� E313: �L�k�O�d, ���ϥμȦs��E314: �O�d����E315: ml_get: ���~�� lnum: %ldE316: ml_get: �䤣��� %ld �� E317: ���а϶� id ���~E317: ���а϶� id �� 2E317: ���а϶� id ���~ 3E317: ���а϶� id ���~ 4E318: ��s�Ӧh�϶�?E319: ��p, ���R�O�b���������S����@E31: �S���o�� mapping ��E320: �䤣��� %ld �� E321: �L�k���s���J "%s"E322: �渹�W�X�d��: %ld �W�L����E323: �϶� %ld ��ƿ��~E324: �L�k�}�� PostScript ��X��E325: �`�NE326: ���Ӧh�Ȧs��E327: �����ﶵ��|���O�l���E328: ���u��b�䥦�Ҧ����ϥ�E329: �S�����˪����E32: �S���ɦWE330: ����|�����V�l���E331: ���ઽ����ﶵ�[����C��E332: ���j�u����O����|���@����E333: ����|���ݫ��V�@�ӿﶵE334: [���] �䤣�� %sE335: %s �Ҧ����w�q���E336: ����|���ݫ��V�l���E337: �䤣���� - ��ˬd���W��E338: �D���x(Console)�Ҧ��ɨS���ɮ��s���(file browser)E339: �W�r�Ӫ�E33: �S���e�@�ӷj�M/���N���R�OE340: ����L��E341: �������~: lalloc(%ld, )E342: �O���餣��! (���հt�m %lu �줸��)E343: �����T����|: '**[number]' ���ݭn�b��|�����έn���� '%s'E344: cdpath ���S���ؿ� "%s"E345: �b��|���䤣��ɮ� "%s"E346: �b��|���䤣���h���ɮ� "%s"E347: �b��|���䤣���h���ɮ� "%s"E348: ��гB�S���r��E349: ��гB�S���ѧO�rE34: �S���e�@�өR�OE350: �L�k�b�ثe�� 'foldmethod' �U�إ� foldE351: �L�k�b�ثe�� 'foldmethod' �U�R�� foldE352: �L�k�b�ثe�� 'foldmethod' �U�R�� foldE353: �Ȧs�� %s �̨S���F��E354: �Ȧs���W�ٿ��~: '%s'E355: �����T���ﶵ: %sE356: get_varp ���~E357: 'langmap': �䤣�� %s �����r��E358: 'langmap': �����ᦳ�h�l���r��: %sE359: ���䴩�]�w�ù��Ҧ�E35: �S���e�@�ӷj�M���OE360: ����� -f �ﶵ���� shellE361: �L�k����; regular expression �ӽ��?E363: regular expression �y�����|�Υ������~E364: �I�s�禡�w "%s"() ����E365: �L�k�C�L PostScript �ɮ�E367: �L���s��: "%s"E369: �����T�����ءG %s%%[]E36: �S���������Ŷ�E370: �L�k���s���J�{���w %sE371: �䤣��R�OE372: �榡�Ʀr��̦��Ӧh %%%c E373: �榡�Ʀr�ꤣ���ӥX�{ %%%c E374: �榡�Ʀr��̤֤F ]E375: �榡�Ʀr��̦����䴩�� %%%c E376: �榡�Ʀr��}�Y�̦������T�� %%%c E377: �榡�Ʀr��̦������T�� %%%c E378: 'errorformat' ���]�wE379: �䤣��ؿ��W�٩άO�Ū��ؿ��W��E37: �w���L�ɮצ��|���s�� (�i�� ! �j����)E380: Quickfix ���|����E381: Quickfix ���|����E382: �L�k�g�J�A'buftype' �ﶵ�w�]�wE383: ���~���j�M�r��: %sE384: �w�j�M��ɮ׶}�Y���䤣�� %sE385: �w�j�M��ɮ׵������䤣�� %sE386: �b ';' �᭱���Ӧ� '?' �� '/'E387: �ثe�Ҧb�椤���@�ǰtE388: �䤣��w�qE389: �䤣�� patternE38: �Ū� (Null) �Ѽ�E390: �ѼƤ����T: %sE391: �L�� syntax cluster: "%s"E392: �L�� syntax cluster: "%s"E393: �ϥΤF�����T���Ѽ�E394: �䤣�� %s �� region itemE395: �ϥΤF�����T���Ѽ�E396: �ϥΤF�����T���Ѽ�E397: �ݭn�ɮצW��E398: �ʤ� "=": %sE399: syntax region %s ���޼ƤӤ�E39: ���ӭn���ƦrE400: �S�����w���ݩ�E401: �䤣���j�Ÿ�: %sE402: '%s' �᭱���F��L�k����E403: �y�k�P�B: �s����Ÿ��Q���w�F�⦸E404: �ѼƤ����T: %sE405: �ʤ֬۵��Ÿ�: %sE406: �ťհѼ�: %sE407: %s ����b���X�{E408: %s �����O�C��̪��Ĥ@��E409: �����T���s�զW��: %sE40: �L�k�}�ҿ��~�ɮ� %sE410: �����T�� :syntax �l�R�O: %sE411: �䤣�� highlight group: %sE412: �ѼƤӤ�: ":highlight link %s"E413: �ѼƹL�h: ":highlight link %s"E414: �w�]�w�s��, ���� highlight linkE415: ���Ӧ�������: %sE416: �ʤ֬۵��Ÿ�: %sE417: �ʤְѼ�: %sE418: ���X�k����: %sE419: ���~���e���C��E41: �O���餣��!E420: ���~���I���C��E421: ���~���C��W�٩μƭ�: %sE422: �׺ݾ��X�Ӫ�: %sE423: �ѼƤ����T: %sE424: �ϥΤF�L�h�۲������G���ݩ�E425: �w�g�b�̫e��������(tag)�FE426: �䤣�����(tag): %sE427: �u�������ŦXE428: �v�g�b�̫�@�ӲŦX�� tag �FE429: �ɮ� "%s" ���s�bE42: �S�����~E430: Tag �ɮ׸�|�Q�I�_�� %s
E431: Tag �� "%s" �榡���~E432: Tag �ɮץ��Ƨ�: %sE433: �S�� tag ��E434: �䤣�� tagE435: �䤣�� tag, �βq��!E436: termcap �S�� "%s" entryE437: �׺ݾ��ݭn "cm" ����OE438: u_undo: �渹���~E439: �_��C��l�aE43: �ŦX�r�꦳���DE440: �䤣��n undo ���� E441: �S���w�����E442: ����P�ɤ��ε��������W�M�k�U��E443: ���䥦���ε����ɵL�k����E444: ��������̫�@�ӵ���E445: �䥦��������ʸ��E446: ��гB�S���ɦWE447: �b��|���䤣��ɮ� "%s"E448: �L�k���J�{���w���禡 %sE449: ���줣���T���B�⦡E44: regexp �����DE455: �L�k�g�J PostScript ��X��E456: �L�kŪ�� PostScript �귽�� "%s.ps"E456: �L�kŪ�� PostScript �귽�� "prolog.ps"E456: �L�k�}��ɮ� "%s"E457: �L�kŪ�� PostScript �귽�� "%s"E459: �L�k�^��e�@�ӥؿ�E45: ���]�w 'readonly' �ﶵ(��Ū) (�i�� ! �j����)E460: Resource fork �|���� (�Шϥ� ! �j����)E461: ���X�k���ܼƦW��: %sE462: �L�k�dzƭ��s���J "%s"E463: �ϰ�Q�O�@�A�L�k�ק�E464: �ϥΪ̩w�q���R�O�|�V�cE465: :winsize �ݭn��ӰѼ�E466: :winpos �ݭn��ӰѼ�E467: �ۭq�ɧ��ݭn�禡���Ѽ�E468: �ۭq�ɧ��ɤ~�i�ɧ��Ѽ�E469: cscopequickfix �� flac %c (%c) �����TE46: �L�k�]�w��Ū�ܼ� "%s"E470: �R�O�Q�j��_���� E471: �ݭn���O�Ѽ�E472: �R�O���楢��E473: �������~E474: �����T���Ѽ�E475: �����T���Ѽ�: %sE476: �����T���R�OE477: ���i�ϥ� '!'E478: ���n��W!E479: �䤣��E47: Ū�����~�ɮץ���E480: �䤣��: %sE481: ���i�ϥνd��OE482: ����إ�ɮ� %sE483: �L�k�o���Ȧs�ɦWE484: �L�k�}��ɮ� %sE485: �L�kŪ���ɮ� %sE486: �䤣�� %sE487: �Ѽ���ӬO����E488: �A��J�F�h�l���r��E48: ����b sandbox �̥X�{E490: �䤣���� foldE492: ���O�s�边���R�OE493: ���w�F�V�e�ѦҪ��d��E494: �Шϥ� w �� w>>E495: �S�� Autocommand �ɦW�H���N "<afile>"E496: �S�� Autocommand �w�İϦW�٥H���N "<abuf>"E497: �S�� Autocommand �ŦX�W�٥H���N "<amatch>"E498: �S�� :source �ɦW�H���N "<sfile>"E499: '%' �� '#' ���V��ɦW�A�u��Ω� ":p:h"E49: ���~�����ʤj�pE500: ��J���Ŧr��E501: �w��ɮ׵���E506: �L�k�g�J�ƥ��� (�Шϥ� ! �j����)E507: �L�k����ƥ��� (�Шϥ� ! �j����)E508: �L�kŪ���ɮץH�ѳƥ� (�Шϥ� ! �j����)E509: �L�k�إ߳ƥ��� (�Шϥ� ! �j����)E50: �Ӧh \z(E510: �L�k�s�@�ƥ��� (�Шϥ� ! �j����)E512: �������E513: �L�k�g�J -- �ഫ����E514: �g�J���~ (�ɮרt�Τw���H)E515: �S�������w�İ�E516: �S���R�����w�İ�E517: �S���M�����w�İ�E518: �����T���ﶵE519: ���䴩�ӿﶵE51: �Ӧh %s(E520: ����b Modeline �̥X�{E521: = ��ݭn���ƦrE522: Termcap �̭��䤣��E523: �o�̤��i�ϥ�E524: �ʤ� colonE525: �s���צr��E526: <%s> ��ʤּƦrE527: �ʤֳr��E528: ���ݫ��w�@�� ' ��E529: �L�k�]�w 'term' ���Ŧr��E52: �L���� \z(E530: �b�ϫ��ɭ����L�k���� termE531: ��J ":gui" �ӱҰʹϧάɭ�E533: �L�k�ϥγ]�w������r��(Widefont)E534: �����T���r��(Widefont)E535: <%c> �ᦳ�����T���r��E536: �ݭn�r��E537: 'commentstring' ���ݬO�ťթΥ]�t %sE538: ���䴩�ƹ�E539: �����T���r�� <%s>E53: �L���� %s%%(E540: �S������B�⦡: E541: �Ӧh����E542: ����٪� groupE543: �����T�� codepageE544: �䤣�� keymap ��E545: �ʤ� colonE546: �����T���Ҧ�E547: �����T���ƹ��Ϊ�E548: ���ӭn���ƦrE549: �����T���ʤ���E54: �L���� %s(E550: �ʤ� colonE551: �����T���Ҧ�E552: ���ӭn���ƦrE553: �S���䥦����E554: �y�k���~: %s{...}E555: ����(tag)���|����E556: ����(tag)���|�}�YE557: �L�k�}�� termcap �ɮ�E558: terminfo ���S���׺ݾ���ƶ�E559: termcap ���S���׺ݾ���ƶ�E55: �L���� %s)E560: �Ϊk: cs[cope] %sE561: ������ cscope �j�M�κAE562: �Ϊk: cstag <�ѧO�rident>E563: stat ���~E563: stat(%s) ���~: %dE564: %s ���O�ؿ��� cscope ��ƮwE566: �L�k�إ߻P cscope �� pipe �s�uE567: �S�� cscope �s�uE568: ���ƪ� cscope ��Ʈw���Q�[�JE569: �w�F�� cscope �̤j�s�u�ƥ�E56: %s* �B�⤸�i�H�O�Ū�E570: cs_manage_matches �Y�����~E571: ���R�O�L�k�ϥ�, �]���L�k���J Tcl �{���w(Library)E573: �����T�����A�� id : %sE574: ���������U���A: %dE579: :if �h�ƹL�`E57: %s+ �B�⤸�i�H�O�Ū�E580: :endif �ʤֹ��� :ifE581: :else �ʤֹ��� :ifE582: :elseif �ʤֹ��� :ifE583: �h�� :elseE584: :elseif �b :else ����E585: :while �h�ƹL�`E586: :continue �ʤֹ��� :whileE587: :break �ʤֹ��� :whileE588: :endwhile �ʤֹ��� :whileE589: 'backupext' �� 'patchmode' �O�@�˪�E58: %s{ �B�⤸�i�H�O�Ū�E590: �w���������w�g�s�b�FE591: 'winheight' ����� 'winminheight' ���E592: 'winwidth' ����� 'winminwidth' ���E593: �ܤֻݭn %d �� E594: �ܤֻݭn %d ��E595: ���t�L�k��ܪ��r��E596: �����T���r��E597: �L�k�ϥΦr����(Fontset)E598: �����T���r����(Fontset)E599: 'imactivatekey' ���Ȥ����TE59: �᭱�������T���r��: %s@E600: �ʤ� :endtryE601: :if �h�ƹL�`E602: :endif �ʤֹ��� :ifE603: :catch �S�� :tryE604: :catch �b :finally ����E605: ���d�I���ҥ~�G %sE606: :finally �S�� :tryE607: �h�� :finallyE608: ���� :throw �� 'Vim' �}�Y���ҥ~E609: Csope ���~: %sE60: �Ӧh����� %s{...}sE612: �w�w�q�Ӧh signsE613: �����T���L���r��: %sE614: vim_SelFile: �L�k�^��ثe�ؿ�E615: vim_SelFile: �L�k���o�ثe�ؿ�E616: vim_SelFile: ����ϥ� %s �r��E617: �b�ϫ��ɭ����L�k���� termE618: �ɮ� "%s" ���O PostScript �귽�� E619: ���䴩 PostScript �귽�� "%s"E61: �_�� %s*E620:�L�k�ഫ�� "%s" �r���s�XE621: "%s" �귽�ɪ������~E622: �L�k fork �H���� cscope E623: �L�k���� cscope E624: �L�k�}��ɮ� "%s"E625: �L�k�}�� cscope ��Ʈw %sE626: �L�k���o cscope ��Ʈw��TE62: �_�� %s%cE63: �����T���ϥ� \_E64: %s%c �S�����F��E655: �Ӧh�h���Ÿ��쵲(symlink) (�`��?)E658: �w�İ� %ld �P NetBeans ���s�u�w���_E659: �L�k���j���� Python E65: �����T���ϦV�Ѧ�E661: ��p, �S����� %s-%s ������E662: �w�b�ܧ�C���}�YE663: �w�b�ܧ�C������E664: �ܧ�C��O�Ū�E665: �L�k�Ұʹϫ��ɭ��A�䤣��i�Ϊ��r��E666: �sĶ�����䴩: %sE667: Fsync �R�O���楢��E668: NetBeans �s�u��T�ɮ�: "%s" �s���Ҧ������TE669: �s�զW�٤����L�k�C�L���r��E66: \z( ����b���X�{E670: �P�@�y�� (%s) �����V�X���P�r���s�X��������E671: �䤣����D�� "%s" ������E672: �L�k�b MDI �{�����}�ҵ���E67: \z1 et al. ����b���X�{E68: �᭱�������T���r��: \zE69: %s%%[ ��ʤ� ]E70: �Ū� %s%%[]E71: �᭱�������T���r��: %s%%E72: �Ȧs��������~E73: ���Ұ��|�w��E74: �R�O�ӽ��E75: �W�r�Ӫ�E76: �Ӧh [E77: �Ӧh�ɦWE78: �L�k���Ѫ��аOE79: �L�k�i�}�U�Φr��E800: �]���sĶ�ɨS���[�J Arabic ���{���X�A�ҥH�L�k�ϥ�
E80: �g�J���~E81: <SID> ����b script ����~�ϥ�.E82: �L�k�t�m���w�İϡA��}�{��...E83: �L�k�t�m�w�İϡA�ϥΥt�@�ӽw�İ�....E84: �S���ק�L���w�İ�E85: �S���C�X���w�İ�E86: �w�İ� %ld ���s�bE87: �L�k�������᭱���w�İ�E88: �L�k�������e�����w�İ�E89: �w���L�w�İ� %ld ���|���s�� (�i�� ! �j����)E90: �L�k���̫�@�ӽw�İ�E91: 'E71: �ﶵ 'shell' ���]�wE92: �䤣��� %ld �ӽw�İ�E93: ���@�ӥH�W�� %sE94: �䤣�� %sE95: �w���w�İϨϥγo�ӦW�rE96: �L�k��(diff) %ld�ӥH�W���w�İ�E97: ����إ� E98: �L�kŪ�� diff ����XE99: �ثe���w�İϤ��O�b diff �Ҧ����~: �s��ɮ��b�s�����s��ɮ��ϥ� Vim �s�覹��(&V)�ϥΦh�� Vim session �s��(&M)�ϥΰ��椤�� Vim session �s�� - &�u�ϥΦP�@�� Vim session �s��(&V)�ϥ� Vim �s��w�����ɮ��禡�����R�O�ɵ�����J�K�X: ��J nr �ο�� (<CR> ��}): �п�ܧA�n�ϥΪ��Ȧs�� (��0 ��}): �ЦA��J�@��: �i�J�����Ҧ�. ��J "cont" �H�^�쥿�`�Ҧ�.�i�J Ex �Ҧ�. ��J "visua" �H�^�쥿�`�Ҧ�.���~���~�P���_�L�k����{��: ��ˬd gvim ���S���b�A�� PATH �ܼƸ�!�B�z %s �ɵo�Ϳ��~:�ҥ~�o�ͨҥ~�G%s�w���ҥ~�G %s�ҥ~����G %s��X�ҥ~�G %s���� %s�B�⦡�~���ŦX:
�ɮ� "%s" ���s�b�ɮפw�O�d�ɮ��L�o���j�M�Ψ��N�r�� (�ϥ� '\\' �Ӫ�� '\')��U�@���j�M�r�� (�ϥ� '\\' �Ӫ�� '\')�j�M symbol�j�M:'%s' ���O�T�w�e�צr���r������r��%ld �e�פ��O �r��0 ���⭿
�r��0���e�סG%ld
Font0: %s
�r��1�e��: %ld

Font1: %s
�L�k��{���ﶵ�᪺�R�O: ���ͤ��: ��, Vim �ϥΪ̡I���U��������U�Q�z�F���i���ĵ�!�Ы� ENTER �Ψ䥦�R�O�H�~���Ы� ENTER �~���w��q������I/O ���~�����T���ɦW�����T���Ȧs���W���L�Ī��_�l�r����J�� ��J�k���_�w���_: �w���_�����T���Ѽ�: �⦸��J�K�X���ۦP!����s�u�쵲�覡: �ŦX�j�p�g�u�j�M�����ۦP���r���餤��T�����@��: Francis S.Lin <piaip@csie.ntu.edu.tw>,                                 Cecil Sheng   <b7506022@csie.ntu.edu.tw>�ʤֹ��� '>'�ק�̬��ݭn %s ���� %ld
�ݭn Amigados ���� 2.04 �H�W
NetBeans ����g�X���ק諸�w�İ��o�ӽw�İϨS���w�q���y�k�䤣�� abbreviation�S���w�q���_�I�L����L Display: �L�k�ǰe�B�⦡�C
�S���ޤJ�ɮ��S���o�� mapping ���S���]�w�аO (mark)�䤣����� autocommand�L�Ȧs���S���n�C�L����r�L�k�٭�F���~��V�O�䤣��ϥΪ̩w�q���R�O�T�w�}���}�� X Window �����}�� X Window �O���}�� X Window �Ӯ� %ld msec��l�� "%s"�n�мg�w�s�b���ɮ� "%.*s"�H�� %d ���������e�L�k�g�J Netbeans �w�İ�Patch �ɮ���|���פӪ�!��|:�C�@�泣�䤣��: %s�䤣���w�e�X�C�L�u�@�C�w�C�L: %s�C�L��: '%s'�w�����C�L�C�L��: �� %d �� (%d%%)��J pattern���D�q�зǿ�JŪ��...Ū�� viminfo �ɮ� "%s"%s%s%s�_�짹��. �нT�w�@�����`.���]�Ҧ��s�u���N���N�������N��:Ū��Ū��: �q�Ҧ� projectŪ��: �q�ɮ�Ū��: �q����Vi �ۮe�Ҧ����� Modeless �Ҧ��A��J����r�|�۰ʴ��JSNiFF+ �ثe�t�s�s���s���x�s Redirection�x�s Session�x�s�]�w�x�s View�N�ܰʦs�x�� "%.*s"?���˦r��: %s�j�M�ޤJ�ɮ�: %s���˼���.���ˤ�: %s���ʶb: ����]�w thumb pixmap ����m�j�M�r���j�M��: "%s"�j�M��: "%s" -- "%s"�j�M tag �ɮ� "%s"�Բӻ����Ш� ":help E312"�i�@�B�����Ш� ":help W11"�C��ܤF %s%ld/%ld ��; %ld/%ld �r(Word); %ld/%ld �r��(Bytes)����ǰe��ƨ�L��...��� base class of:��ܶ��h���� class��� restricted ���h���� class��ܳs�u��ܤ��: ��ܳQ override �� member function��ܭ�l�X: ��ܦ��T��%s ���Ÿ�:Sniff: �g�J���~�C����s�u��p, �䤣�컡���� "%s"��p, ���R�O�L�k�ϥ�. ��]: �L�k���J Perl �{���w(Library)���� Vim script�٧U Vim ���}�o�P�����I���|�j�p�W�[�Ȧs�� "�Ȧs�ɤw�g�s�b!���H�U���Ȧs��:���U��������� X Window �����P�±z�R�� Vim���ɮ׫إߩ� �u�������ŦX�z�� Vim �sĶ�ɨS���[�J diff ����O�o�� cscope �R�O���䴩���οù�
������@/�w�q�Ӧh "+command" �B "-c command" �� "--cmd command" �Ѽ��Ӧh�s��Ѽ������n��} Vim �п�J :quit<Enter> �L�kŪ���϶� 0:�L�k���U�R�O���A���W���_�����������T���ﶵ���R�W�V�W�ϥ� Vim 3.0�C
�ϥ� CUT_BUFFER0 �Ө��N�ſ���ϥμȦs�� "%s"VIM - �`�NVIM - �M��P���N...VIM - �M��...VIM - Vi IMprovedVIM ���~VIM: �L�k�}�ҵ���!
�b�A�� $PATH ���䤣�� VIMRUN.EXE.
�~���R�O���槹����N���|�Ȱ�.
�i�@�B�����а��� :help win32-vimrun Vim E458: �L�k�t�m color map ���ءA�����C��ݰ_�ӷ|�ǩǪ�Vim ĵ�iVim ��ܲ�Vim ��ܲ�...Vim ����Ǧ^��: %d
Vim ���i�ۥѴ��G���}���l�X�n��Vim: �d�I�� %s 
Vim: �d�I��P�R���H��(deadly signale)
Vim: CVim: �d�I��H��(signal) %s
Vim: ���signal, ��}��
Vim: ����J���~�A��}��...
Vim: ����.
Vim: �D�����걼
Vim: �q�зǿ�JŪ��...
Vim: �� Session �޲z������ "die" �n�D
Vim: �`�N: ��J���O�׺ݾ�(��L)
Vim: �`�N: ��X���O�׺ݾ�(�ù�)
Vim: �O�d�ɮפ�...
W10: �`�N: �A���b�ק�@�Ӱ�Ū��W11: ĵ�i: �ɮ� "%s" �ۤW��Ū�J��w�ܰ�W12: ĵ�i: �ɮ� "%s" �ۤW��Ū�J��w�ܰ�, �ӥB�s�褤���w�İϤ]��ʤFW13: ĵ�i: �ɮ� "%s" �b�}�l�s���S�Q�إߤFW14: ĵ�i: �ɦW�L�hW15: �`�N: ���~�����j�r���A�i��O�֤F ^MW16: ĵ�i: �ɮ� "%s" ���v���P�W��Ū�J�ɤ��@�� (���ܰʹL)W17: Arabic �ݭn UTF-8, �а��� ':set encoding=utf-8'W18: �s�զW�٤��������T���r��ĵ�i: ���ɮצۤW��Ū�J��w�ܰ�!!!�`�N: ������ Windows 95/98/MEĵ�i�`�N: �w������䥦�w�İ� (��ˬd Autocommands ���L���~)�`�N: �A���׺ݾ��L�k��ܰ��G���b�}��ɮ� "������m: X %d, Y %d�q�O��}�l���r (?)�n�g�J�����ɮ׶ܡH�g�J viminfo �ɮ� "%s" ��XSMP ICE �s�u�ʬݥ���XSMP SmcOpenConnection ����: %sXSMP ���b�B�z�ۧ�x�s�n�DXSMP ���h ICE �s�u�}�� XSMP �s�u��Xref ��Xref �Q�ְѦ�:Xref �ѦҨ�Xref �Q�֨ϥ�:�O�ƨ�s (?)�ഫ���~[�ʤ�CR]'[�w�R��][�˸m][���~�C��][�� %ld �������T���줸][�����椣����][���NL][���ഫ][���R�W][�s�ɮ�][�s][���R�W][���R�W][��s��|���x�s]
[���s��][�v������][�w�][Ū�����~][��Ū][Ū�����~][�I�s] ���� re/malloc(): %lu, ���� free()': %lu

[�w�ഫ][�w�[�K][dos �榡][dos][fifo/socket][fifo][�ɮ� ..]       �s���w���ɮ�[���U����][���ιL����][mac �榡][mac][noeol][��Ū][socket][����L��][unix �榡][unix]�A���� diff �P��ɮפ�H�ˬd�O�_������)
�չϨϥΤw�Q�R���� buffer�չϨϥΤw�Q�R��������autocommand %s��:���@��: Bram Moolenaar et al.�I�s inputrestore() �����Ƥ� inputsave() �٦h�I�s %s�L�k�R�� OutputObject �ݩ��L�kŪ�� 'charconvert' ����X�L�k�����D���x(console)�Ҧ� !?
�L�k�إ߽w�İ�/�����R�O: ����N�|�Q�R������R������ �����o���� �����N���J���� ���ഡ�J�Ϊ��[���� ����}���L�k���U callback �R�O: �w�İ�/�����w�g�Q�R���F�L�k���U callback �R�O: �䤣��w�İ�/���������N���� �L�k�x�s�_���T����]�w�� �L�k�ŤU; �����R�����cmd: %s�s�u���~��: %s�L�k���� "%s"cs_create_connection ���楢��cs_create_connection: fdopen ���� (fr_fp)cs_create_connection: fdopen ���� (to_fp)cscope �R�O:
cscope �s�u %s �w�����Щw��b�w�İϤ��~�w�]: '�R���϶� 1?�b�ɮץ��T�g�J�e�Ф���}�s�边!���~�C�� %d/%d; �@�� %d �����~�]���sĶ�ɨS���[�J�B�⦡(expression)���{���X�A�ҥH�L�k�ϥιB�⦡�ɮ�
�ɦW     / ����    / �渹
����� %s��� %ld �椤 gvimext.dll ���~[���U����]---
�����T���ݩ��w�İϸ��X���~�����T���B�⦡�аO�W�٤����T�O�ؿ����O�ɮ����O�ɮשΥi�g�J���˸m�O��Ū�� (�Шϥ� ! �j����)��L���_�� %4ld:�� %ld�� %ld/%ld --%d%%-- �� �� %ld: %s�� %ld ��: �L�k���� "%s"�� %ld ��: ����� %s�渹�W�X�d���n�X�S���]�w�аO�ŦX %d��� %d / %d�̤jmch_get_shellsize: ���O�D���x(console)??
����檺�u�s��v�u����]�w�v�u�������J�Ҧ��v����檺�u�s��v�u����]�w�v�u�����Dz�Vi�ۮe�Ҧ��v�i�@�B�����п���檺 ���U����->�@�ϩt���Բӻ����п���檺    ���U����->�٧U/���U      �̤p�_�ʷs shell
�_�S�� cscope �s�u
�L�� buffer�L�������S���P�B�����䤣�� �b 'runtimepath' �̧䤣�� "%s"�|����@pe_line_count ���svimrc �e�R�O�C�� Netbeans socket Ū����Ū�ݩ��O�������N�� %s (y/n/a/q/^E/^Y)?�C %d �� %d�w�j�M��ɮ׵����F�A�q�}�Y�~��j�M�w�j�M��ɮ׶}�Y�F�A�q�����~��j�Mshell Shell �Ǧ^�� %d���softspace ���ݬO������� "%s" ��stack_idx ���ӬO 0�r��L�k�]�t�s�� C�y�������ѦP�B�Ƥ��P�B�ƶ}�l��� tag: %d/%d%s���ҦW���� %s on %s�p�G�ݭn�� Vi �ۮe�Ҧ����i�@�B�����п�J :help cp-default<Enter>�i�@�B�����п�J          :help iccf<Enter>�Բӻ����п�J          :help register<Enter> �Բӻ����п�J          :help sponsor<Enter>�s������T�п�J              :help version8<Enter>�p�G�ݭn�� Windows 95 �䴩����h��T�п�J :help windows95<Enter>�u�W�����п�J                :help<Enter>         �n��}�п�J                  :q<Enter>            �p�G�n��������Dz� Vi �п�J :set nocp<Enter>���~���X��: �����T���ﶵ�����T�� VIM �ﶵ����   vim ���~�ϥ� (�Dz�) �ϫ��ɭ��C�ϥ� BeOS �ϫ��ɭ��C�ϥ� Carbon �ϫ��ɭ��C�ϥ� Cocoa �ϫ��ɭ��C�ϥ� GTK �ϫ��ɭ��C�ϥ� GTK-GNOME �ϫ��ɭ��C�ϥ� GTK2 �ϫ��ɭ��C�ϥ� GTK2-GNOME �ϫ��ɭ��C�ϥιϫ��ɭ��C�ϥ�Photon�ϫ��ɭ��C�ϥ� X11-Athena �ϫ��ɭ��C�ϥ� X11-Motif �ϫ��ɭ��C�ϥ� X11-neXtaw �ϫ��ɭ��C���ϥιϫ��ɭ��Cwritelines() �ݭn string list ��Ѽ�PK�j�Z��f?�=�=vim80/lang/menu_sr_rs.utf-8.vimnu�[���" Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change:	Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: Иван Пешић on 2017-12-28 12:05+0400

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Help menu
menutrans &Help		      Помо&ћ
menutrans &Overview<Tab><F1>  &Преглед<Tab><F1>
menutrans &User\ Manual       &Упутство\ за\ кориснике
menutrans &How-to\ links      &Како\ да\.\.\.
menutrans &Find		      &Нађи
menutrans &Credits	      &Заслуге
menutrans Co&pying	      П&реузимање
menutrans O&rphans	      &Сирочићи
menutrans &Sponsor/Register   Спонзор/&Региструјте\ се
menutrans &Version	      &Верзија
menutrans &About	      &О\ програму

" File menu
menutrans &File			    &Датотека
menutrans &Open\.\.\.<Tab>:e	    &Отвори\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Отвори\ картицу\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew	    &Нова<Tab>:enew
menutrans &Close<Tab>:close	    &Затвори<Tab>:close
menutrans &Save<Tab>:w		    &Сачувај<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav  Сачувај\ &као\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.  Подели\ и\ &упореди\ са\.\.\.
menutrans Split\ Patched\ &By\.\.\. По&дели\ и\ преправи\ са\.\.\.
menutrans &Print		    Шта&мпај
menutrans Sa&ve-Exit<Tab>:wqa	    Сачувај\ и\ за&врши<Tab>:wqa
menutrans E&xit<Tab>:qa		    К&рај<Tab>:qa

" Edit menu
menutrans &Edit			 &Уређивање
menutrans &Undo<Tab>u		 &Врати<Tab>u
menutrans &Redo<Tab>^R		 &Поврати<Tab>^R
menutrans Rep&eat<Tab>\.	 П&онови<Tab>\.
menutrans Cu&t<Tab>"+x		 Исе&ци<Tab>"+x
menutrans &Copy<Tab>"+y		 &Копирај<Tab>"+y
menutrans &Paste<Tab>"+gP	 &Убаци<Tab>"+gP
menutrans &Paste<Tab>"+P	&Убаци<Tab>"+gP
menutrans Put\ &Before<Tab>[p	 Стави\ пре&д<Tab>[p
menutrans Put\ &After<Tab>]p	 Стави\ &иза<Tab>]p
menutrans &Delete<Tab>x		 Из&бриши<Tab>x
menutrans &Select\ all<Tab>ggVG  Изабери\ св&е<Tab>ggVG
menutrans &Find\.\.\.		 &Нађи\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. Нађи\ и\ &замени\.\.\.
menutrans Settings\ &Window	 П&розор\ подешавања
menutrans Startup\ &Settings	 По&дешавања\ при\ покретању		
menutrans &Global\ Settings	 Оп&шта\ подешавања
menutrans F&ile\ Settings	 Подешавања\ за\ да&тотеке
menutrans &Shiftwidth		 &Померај
menutrans Soft\ &Tabstop	 &Мека\ табулација
menutrans Te&xt\ Width\.\.\.	 &Ширина\ текста\.\.\.
menutrans &File\ Format\.\.\.	 &Врста\ датотеке\.\.\.
menutrans Show\ C&olor\ Schemes\ in\ Menu	Прикажи\ шеме\ бо&ја\ у\ менију
menutrans C&olor\ Scheme	\Шеме\ бо&ја
menutrans Show\ &Keymaps\ in\ Menu	Прикажи\ прес&ликавања\ тастатуре\ у\ менију
menutrans &Keymap	Прес&ликавања\ тастатуре
menutrans Select\ Fo&nt\.\.\.	 Избор\ &фонта\.\.\.

" Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Нагласи\ &образце\ (да/не)<Tab>:set\ hls!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Занемари\ величину\ &слова\ (да/не)<Tab>:set\ ic!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Провери\ пратећу\ &заграду\ (да/не)<Tab>:set\ sm!
menutrans &Context\ lines  Видљиви\ &редови
menutrans &Virtual\ Edit   Виртуелно\ &уређивање
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!   Режим\ у&носа\ (да/не)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!     '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\.
menutrans Ta&g\ Files\.\.\.   &Датотеке\ ознака\.\.\.
menutrans Toggle\ &Toolbar    Линија\ са\ &алаткама\ (да/не)
menutrans Toggle\ &Bottom\ Scrollbar   Доња\ л&инија\ клизања\ (да/не)
menutrans Toggle\ &Left\ Scrollbar  &Лева\ линија\ клизања\ (да/не)
menutrans Toggle\ &Right\ Scrollbar &Десна\ линија\ клизања\ (да/не)

" Edit/Global Settings/Virtual Edit
menutrans Never		      Никад
menutrans Block\ Selection    Избор\ блока
menutrans Insert\ mode	      Режим\ уноса
menutrans Block\ and\ Insert  Блок\ и\ унос
menutrans Always	      Увек

" Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!   Прикажи\ &нумерацију\ линија\ (да/не)<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!   Прикажи\ Релати&вну\ нумерацију\ линија\ (да/не)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!	   Режим\ &листе\ (да/не)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!	   Обавијање\ &редова\ (да/не)<Tab>:set\ wrap!
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!   Преломи\ &на\ реч\ (да/не)<Tab>:set\ lbr!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!	   Размаци\ уместо\ &табулације\ (да/не)<Tab>:set\ et!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!	Ауто-&увлачење\ (да/не)<Tab>:set\ ai!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!	   &C-увлачење\ (да/не)<Tab>:set\ cin!

" Edit/Keymap
menutrans None Без\ пресликавања

" Tools menu
menutrans &Tools	&Алатке
menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^]
menutrans Jump\ &back<Tab>^T	 Скочи\ &натраг<Tab>^T
menutrans Build\ &Tags\ File	 Изгради\ &датотеку\ ознака
menutrans &Spelling	 Пра&вопис
menutrans &Folding	      &Подвијање
menutrans Create\ &Fold<Tab>zf		  С&твори\ подвијутак<Tab>zf
menutrans &Delete\ Fold<Tab>zd		  О&бриши\ подвијутак<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	  Обриши\ све\ по&двијутке<Tab>zD
menutrans Fold\ column\ &width		  Ширина\ &реда\ подвијутка
"menutrans &Diff		      &Упоређивање
menutrans &Make<Tab>:make     'mak&е'<Tab>:make
menutrans &List\ Errors<Tab>:cl     Списак\ &грешака<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!  Сп&исак\ порука<Tab>:cl!
menutrans &Next\ Error<Tab>:cn	    С&ледећа\ грешка<Tab>:cn
menutrans &Previous\ Error<Tab>:cp  Пре&тходна\ грешка<Tab>:cp
menutrans &Older\ List<Tab>:cold    Стари\ списа&к<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew    Но&ви\ списак<Tab>:cnew
menutrans Error\ &Window	    Прозор\ са\ г&решкама
menutrans Se&t\ Compiler	    И&забери\ преводиоца
menutrans &Convert\ to\ HEX<Tab>:%!xxd	   Претвори\ у\ &ХЕКС<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r    Вр&ати\ у\ првобитан\ облик<Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu	Прикажи\ поде&шавања\ преводиоца\ у\ менију

" Tools/Spelling
menutrans &Spell\ Check\ On	&Укључи\ проверу\ правописа
menutrans Spell\ Check\ &Off	&Искључи\ проверу\ правописа
menutrans To\ &Next\ Error<Tab>]s	Иди\ на\ &следећу\ грешку<Tab>]s
menutrans To\ &Previous\ Error<Tab>[s	Иди\ на\ &претходну\ грешку<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	Предложи\ исп&равке<Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall	П&онови\ исправку<Tab>:spellrepall
menutrans Set\ Language\ to\ "en"	Постави\ језик\ на\ "en"
menutrans Set\ Language\ to\ "en_au" 	Постави\ језик\ на\ "en_au"
menutrans Set\ Language\ to\ "en_ca" 	Постави\ језик\ на\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" 	Постави\ језик\ на\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" 	Постави\ језик\ на\ "en_nz"
menutrans Set\ Language\ to\ "en_us" 	Постави\ језик\ на\ "en_us"
menutrans &Find\ More\ Languages	Пронађи\ још\ језика 

" Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi   &Омогући/прекини\ подвијање<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	  &Покажи\ ред\ са\ курсором<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Покажи\ &само\ ред\ са\ курсором<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm   &Затвори\ више\ подвијутака<Tab>zm
menutrans &Close\ all\ folds<Tab>zM    Затвори\ с&ве\ подвијутке<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr    Отвори\ виш&е\ подвијутака<Tab>zr
menutrans &Open\ all\ folds<Tab>zR     О&твори\ све\ подвијутке<Tab>zR
menutrans Fold\ Met&hod		       &Начин\ подвијања
menutrans Fold\ Col&umn\ Width	Ширина\ колоне\ испред\ подвијутака

" Tools/Folding/Fold Method
menutrans M&anual	&Ручно
menutrans I&ndent	&Увученост
menutrans E&xpression	&Израз
menutrans S&yntax	&Синтакса
"menutrans &Diff
menutrans Ma&rker	&Ознака

" Tools/Diff
menutrans &Update	&Ажурирај
menutrans &Get\ Block	&Прихвати\ блок\ изменa
menutrans &Put\ Block	Пре&баци\ блок\ измена

" Tools/Error Window
menutrans &Update<Tab>:cwin   &Ажурирај<Tab>:cwin
menutrans &Open<Tab>:copen    &Отвори<Tab>:copen
menutrans &Close<Tab>:cclose  &Затвори<Tab>:cclose

" Bufers menu
menutrans &Buffers	   &Бафери
menutrans &Refresh\ menu   &Ажурирај
menutrans Delete	   &Обриши
menutrans &Alternate	   А&лтернативни
menutrans &Next		   &Следећи
menutrans &Previous	   &Претходни
menutrans [No\ File]	   [Нема\ датотеке]

" Window menu
menutrans &Window		    &Прозор
menutrans &New<Tab>^Wn		    &Нови<Tab>^Wn
menutrans S&plit<Tab>^Ws	    &Подели<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^    Подели\ са\ &алтернативним<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv   Подели\ &усправно<Tab>^Wv
menutrans Split\ File\ E&xplorer    Подели\ за\ преглед\ &датотека
menutrans &Close<Tab>^Wc	    &Затвори<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo  Затвори\ &остале<Tab>^Wo
"menutrans Ne&xt<Tab>^Ww       &Следећи<Tab>^Ww
"menutrans P&revious<Tab>^WW	  П&ретходни<Tab>^WW
menutrans Move\ &To		    Пре&мести
menutrans Rotate\ &Up<Tab>^WR	    &Кружно\ нагоре<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr     Кружно\ надол&е<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=	    &Исте\ величине<Tab>^W=
menutrans &Max\ Height<Tab>^W_	    Максимална\ &висина<Tab>^W_
menutrans M&in\ Height<Tab>^W1_     Минима&лна\ висина<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|	    Максимална\ &ширина<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|     Минимална\ ши&рина<Tab>^W1\|

" Window/Move To
menutrans &Top<Tab>^WK		 &Врх<Tab>^WK
menutrans &Bottom<Tab>^WJ	 &Подножје<Tab>^WJ
menutrans &Left\ side<Tab>^WH	 У&лево<Tab>^WH
menutrans &Right\ side<Tab>^WL	 У&десно<Tab>^WL

" The popup menu
menutrans &Undo		      &Врати
menutrans Cu&t		      &Исеци
menutrans &Copy		      &Копирај
menutrans &Paste	      &Убаци
menutrans &Delete	      И&збриши
menutrans Select\ Blockwise   Бирај\ б&локовски
menutrans Select\ &Word       Изабери\ &реч
menutrans Select\ &Sentence       Изабери\ р&еченицу
menutrans Select\ Pa&ragraph       Изабери\ &параграф
menutrans Select\ &Line       Изабери\ р&ед
menutrans Select\ &Block      Изабери\ &блок
menutrans Select\ &All	      Изабери\ &све

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open     Учитај
    tmenu ToolBar.Save     Сачувај
    tmenu ToolBar.SaveAll  Сачувај све
    tmenu ToolBar.Print    Штампај
    tmenu ToolBar.Undo     Врати
    tmenu ToolBar.Redo     Поврати
    tmenu ToolBar.Cut      Исеци
    tmenu ToolBar.Copy     Копирај
    tmenu ToolBar.Paste    Убаци
    tmenu ToolBar.Find     Нађи
    tmenu ToolBar.FindNext Нађи следећи
    tmenu ToolBar.FindPrev Нађи претходни
    tmenu ToolBar.Replace  Замени
    tmenu ToolBar.New      Нови
    tmenu ToolBar.WinSplit Подели прозор
    tmenu ToolBar.WinMax   Максимална висина
    tmenu ToolBar.WinMin   Минимална висина
    tmenu ToolBar.WinVSplit   Подели усправно
    tmenu ToolBar.WinMaxWidth Максимална ширина
    tmenu ToolBar.WinMinWidth Минимална ширина
    tmenu ToolBar.WinClose Затвори прозор
    tmenu ToolBar.LoadSesn Учитај сеансу
    tmenu ToolBar.SaveSesn Сачувај сеансу
    tmenu ToolBar.RunScript   Изврши спис
    tmenu ToolBar.Make     'make'
    tmenu ToolBar.Shell    Оперативно окружење
    tmenu ToolBar.RunCtags Направи ознаке
    tmenu ToolBar.TagJump  Иди на ознаку
    tmenu ToolBar.Help     Помоћ
    tmenu ToolBar.FindHelp Нађи објашњење
  endfun
endif

" Syntax menu
menutrans &Syntax &Синтакса
menutrans &Show\ File\ Types\ in\ Menu  Прикажи\ типове\ датотека\ у\ &менију
menutrans Set\ '&syntax'\ only   Поде&си\ само\ 'syntax' 
menutrans Set\ '&filetype'\ too  Подеси\ &такође\ и\ 'filetype'
menutrans &Off       &Искључено
menutrans &Manual    &Ручно
menutrans A&utomatic    &Аутоматски
menutrans on/off\ for\ &This\ file     Да/не\ за\ ову\ &датотеку
menutrans Co&lor\ test     Провера\ &боја
menutrans &Highlight\ test Провера\ исти&цања
menutrans &Convert\ to\ HTML  Претвори\ &у\ HTML

" dialog texts
let menutrans_help_dialog = "Унесите наредбу или реч чије појашњење тражите:\n\nДодајте i_ за наредбе уноса (нпр. i_CTRL-X)\nДодајте c_ за наредбе командног режима (нпр. с_<Del>)\nДодајте ' за имена опција (нпр. 'shiftwidth')"

let g:menutrans_path_dialog = "Унесите пут претраге за датотеке\nРаздвојите зарезима имена директоријума."

let g:menutrans_tags_dialog = "Унесите имена датотека са ознакама\nРаздвојите зарезима имена."

let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)"

let g:menutrans_fileformat_dialog = "Изаберите формат записа датотеке"

let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Откажи"

let menutrans_no_file = "[Нема датотеке]"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: tw=0 keymap=serbian
PK�j�Z
���EEvim80/lang/menu_ko.utf-8.vimnu�[���" Menu Translations:	Korean

source <sfile>:p:h/menu_ko_kr.utf-8.vim
PK�j�Z���$\\vim80/lang/menu_fi.latin1.vimnu�[���" Menu Translations:	Finnish for latin 1 encoding

source <sfile>:p:h/menu_fi_fi.latin1.vim
PK�j�ZV.��+�+vim80/lang/menu_pt_pt.vimnu�[���" Menu Translations: Portugu�s
" adaptado de pt_br.
" Maintainer: Duarte Henriques <duarte_henriques@myrealbox.com>

" Quit when menu translations have already been done.
if exists("did_menu_trans")
	finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

" Translations in latin1 (ISO-8859-1), and should work in
" latin9 (ISO-8859-15)

if &enc != "cp1252" && &enc != "iso-8859-15"
	scriptencoding latin1
endif

" Help menu
menutrans &Help			A&juda
menutrans &Overview<Tab><F1>	&Conte�do
menutrans &User\ Manual		&Manual\ do\ Utilizador
menutrans &How-to\ links	&Como\ fazer?
menutrans &Find\.\.\.		&Procurar\.\.\.
menutrans &Credits		&Cr�ditos
menutrans O&rphans		&�rf�os
menutrans Co&pying		&Licen�a
menutrans &Version		&Vers�o
menutrans &About		&Sobre

" File menu
menutrans &File				&Ficheiro
menutrans &Open\.\.\.<Tab>:e		A&brir\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Abrir\ noutra\ &janela\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		&Novo<Tab>:enew
menutrans &Close<Tab>:close		&Fechar<Tab>:close
menutrans &Save<Tab>:w			&Guardar<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Gu&ardar\ como\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	&Exibir\ diferen�as\ com\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Ex&ibir\ patcheado\ por\.\.\.
menutrans &Print			Im&primir
menutrans Sa&ve-Exit<Tab>:wqa		Gua&rdar\ e\ sair<Tab>:wqa
menutrans E&xit<Tab>:qa			Sai&r<Tab>:qa

" Edit menu
menutrans &Edit				&Editar
menutrans &Undo<Tab>u			&Desfazer<Tab>u
menutrans &Redo<Tab>^R			&Refazer<Tab>u
menutrans Rep&eat<Tab>\.		Repe&tir<Tab>\.
menutrans Cu&t<Tab>"+x			&Cortar<Tab>"+x
menutrans &Copy<Tab>"+y			Cop&iar<Tab>"+y
menutrans &Paste<Tab>"+gP		C&olar<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Colocar\ &antes<Tab>[p
menutrans Put\ &After<Tab>]p		Colocar\ &depois<Tab>]p
menutrans &Select\ all<Tab>ggVG		&Seleccionar\ tudo<Tab>ggVG
menutrans &Find\.\.\.			&Procurar\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Procurar\ e\ substit&uir\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	Procurar\ e\ substit&uir<Tab>:%s
menutrans Find\ and\ Rep&lace		Procurar\ e\ substit&uir
menutrans Find\ and\ Rep&lace<Tab>:s	Procurar\ e\ substituir<Tab>:s
menutrans Settings\ &Window		Op&�es

" Edit/Global Settings
menutrans &Global\ Settings		Op�es\ &Globais

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Activar/Desactivar\ &Realce\ de\ Padr�es<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Activar/Desactivar\ &Ignorar\ mai�sculas<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Activar/Desactivar\ &coincid�ncias<Tab>:set\ sm!

menutrans &Context\ lines		Linhas\ de\ C&ontexto

menutrans &Virtual\ Edit		Edi��o\ &Virtual
menutrans Never				Nunca
menutrans Block\ Selection		Sele��o\ de\ Bloco
menutrans Insert\ mode			Modo\ de\ inser��o
menutrans Block\ and\ Insert		Bloco\ e\ inser��o
menutrans Always			Sempre

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Activar/Desactivar\ Modo\ de\ In&ser��o<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! Activar/Desactivar\ Co&mpatibilidade\ com\ Vi<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		Camin&ho\ de\ Busca\.\.\.
menutrans Ta&g\ Files\.\.\.		Arquivos\ de\ Tags\.\.\.

" GUI options
menutrans Toggle\ &Toolbar		Ocultar/Exibir\ Barra\ de\ &Ferramentas
menutrans Toggle\ &Bottom\ Scrollbar	Ocultar/Exibir\ Barra\ de\ &Rolagem\ Inferior
menutrans Toggle\ &Left\ Scrollbar	Ocultar/Exibir\ Barra\ de\ R&olagem\ Esquerda
menutrans Toggle\ &Right\ Scrollbar	Ocultar/Exibir\ Barra\ de\ Ro&lagem\ Direita
let g:menutrans_path_dialog = "Indique um caminho de procura para os arquivos.\nSepare os nomes dos diret�rios com uma v�rgula."
let g:menutrans_tags_dialog = "Indique os nomes dos arquivos de tags.\nSepare os nomes com uma v�rgula."

" Edit/File Settings
menutrans F&ile\ Settings		Op�es\ do\ &Arquivo

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Activar/Desactivar\ &numera��o\ de\ linhas<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Activar/Desactivar\ modo\ &list<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Activar/Desactivar\ &quebra\ de\ linhas<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Activar/Desactivar\ quebra\ na\ &palavra<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Activar/Desactivar\ expans�o de tabs<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Activar/Desactivar\ &auto-indenta��o<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Activar/Desactivar\ indenta��o estilo &C<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			Largura\ da\ &indenta��o

menutrans Soft\ &Tabstop		&Tabula��o\ com\ espa�os

menutrans Te&xt\ Width\.\.\.		Largura\ do\ te&xto\.\.\.
let g:menutrans_textwidth_dialog = "Digite a nova largura do texto (0 para desativar a formata��o): "

menutrans &File\ Format\.\.\.		&Formato\ do\ arquivo\.\.\.
let g:menutrans_fileformat_dialog = "Selecione o formato para gravar o arquivo"

menutrans C&olor\ Scheme		Esquema\ de\ c&ores
menutrans default	padr�o

menutrans Select\ Fo&nt\.\.\.		Seleccionar\ fo&nte\.\.\.

menutrans &Keymap	Mapa\ de\ teclado
menutrans None		Nenhum

" Programming menu
menutrans &Tools			Fe&rramentas
menutrans &Jump\ to\ this\ tag<Tab>g^]	Saltar\ para\ esta\ &tag<Tab>g^]
menutrans Jump\ &back<Tab>^T		&Voltar<Tab>^T
menutrans Build\ &Tags\ File		&Construir\ Arquivo\ de\ tags
menutrans &Folding			&Dobra
menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Lista\ de\ erros<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	Li&sta\ de\ mensagens<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		P&r�ximo\ erro<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Erro\ anterior<Tab>:cp
menutrans &Older\ List<Tab>:cold	Listar\ erros\ &antigos<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	Listar\ erros\ &novos<Tab>:cnew
menutrans Error\ &Window		&Janela\ de\ erros
menutrans &Set\ Compiler		Def&inir\ Compilador
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Converter\ para\ hexadecimal<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	Conver&ter\ de\ volta<Tab>:%!xxd\ -r

" Tools.Fold Menu
menutrans &Enable/Disable\ folds<Tab>zi		&Activar/Desactivar\ dobras<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv		&Ver\ linha\ do\ cursor<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	Ve&r\ somente\ linha\ do\ cursor<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm		&Fechar\ mais\ dobras<Tab>zm
menutrans &Close\ all\ folds<Tab>zM		F&echar\ todas\ as\ dobras<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr		A&brir\ mais\ dobras<Tab>zr
menutrans &Open\ all\ folds<Tab>zR		Abr&ir\ todas\ as\ dobras<Tab>zR
" fold method
menutrans Fold\ Met&hod				&Modo\ de\ dobras
menutrans Create\ &Fold<Tab>zf			Criar\ &dobras<Tab>zf
menutrans &Delete\ Fold<Tab>zd			Remover\ d&obras<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD		Remover\ &todas\ as\ dobras<Tab>zD
" moving around in folds
menutrans Fold\ col&umn\ width			&Largura\ da\ coluna\ da\ dobra

" Tools.Diff Menu
menutrans &Update	&Actualizar
menutrans &Get\ Block	&Obter\ Bloco
menutrans &Put\ Block	&P�r\ Bloco

" Tools.Error Menu
menutrans &Update<Tab>:cwin	&Actualizar<Tab>:cwin
menutrans &Open<Tab>:copen	A&brir<Tab>:copen
menutrans &Close<Tab>:cclose	&Fechar<Tab>:cclose

" Names for buffer menu.
menutrans &Buffers		&Buffers
menutrans &Refresh\ menu	A&ctualizar\ menu
menutrans &Delete		&Apagar
menutrans &Alternate		A&lternar
menutrans &Next			P&r�ximo
menutrans &Previous		A&nterior
let g:menutrans_no_file = "[Sem arquivos]"

" Window menu
menutrans &Window			&Janela
menutrans &New<Tab>^Wn			N&ova<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Dividir<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	D&ividir\ para\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Dividir\ &verticalmente<Tab>^Wv
menutrans Split\ File\ E&xplorer	&Abrir\ Gerenciador\ de\ arquivos
menutrans &Close<Tab>^Wc		&Fechar<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Fechar\ &outra(s)<Tab>^Wo
menutrans Move\ &To			Mover\ &para
menutrans &Top<Tab>^WK			A&cima<Tab>^WK
menutrans &Bottom<Tab>^WJ		A&baixo<Tab>^WJ
menutrans &Left\ side<Tab>^WH		Lado\ &esquerdo<Tab>^WH
menutrans &Right\ side<Tab>^WL		Lado\ di&reito<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		&Girar\ para\ cima<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Girar\ para\ bai&xo<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		Mesmo\ &Tamanho<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Altura\ &M�xima<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		A&ltura\ M�nima<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Larg&ura\ M�xima<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Largura\ M�&nima<Tab>^W1\|

" The popup menu
menutrans &Undo			&Desfazer
menutrans Cu&t			Recor&tar
menutrans &Copy			&Copiar
menutrans &Paste		Co&lar
menutrans &Delete		&Apagar
menutrans Select\ Blockwise	Sele��o\ de\ bloco
menutrans Select\ &Word		Seleccionar\ &Palavra
menutrans Select\ &Line		Seleccionar\ L&inha
menutrans Select\ &All		Seleccionar\ T&udo

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
	  tmenu ToolBar.Open	Abrir Arquivo
	  tmenu ToolBar.Save	Salvar Arquivo
	  tmenu ToolBar.SaveAll	Salvar Todos os arquivos
	  tmenu ToolBar.Print	Imprimir
	  tmenu ToolBar.Undo	Desfazer
	  tmenu ToolBar.Redo	Refazer
	  tmenu ToolBar.Cut	Recortar
	  tmenu ToolBar.Copy	Copiar
	  tmenu ToolBar.Paste	Colar
	  tmenu ToolBar.Find	Procurar...
	  tmenu ToolBar.FindNext	Procurar Pr�ximo
	  tmenu ToolBar.FindPrev	Procurar Anterior
	  tmenu ToolBar.Replace		Procurar e Substituir
	  if 0	" disable; these are in the Windoze menu
		  tmenu ToolBar.New	Nova Janela
		  tmenu ToolBar.WinSplit	Dividir Janela
		  tmenu ToolBar.WinMax		Janela M�xima
		  tmenu ToolBar.WinMin		Janela M�nima
		  tmenu ToolBar.WinVSplit	Dividir Verticalmente
		  tmenu ToolBar.WinMaxWidth	Largura M�xima
		  tmenu ToolBar.WinMinWidth	Largura M�nima
		  tmenu ToolBar.WinClose	Fechar Janela
	  endif
	  tmenu ToolBar.LoadSesn	Carregar Sess�o
	  tmenu ToolBar.SaveSesn	Salvar Sess�o
	  tmenu ToolBar.RunScript	Executar script
	  tmenu ToolBar.Make		Make
	  tmenu ToolBar.Shell		Abrir um shell
	  tmenu ToolBar.RunCtags	Gerar um arquivo de tags
	  tmenu ToolBar.TagJump		Saltar para um tag
	  tmenu ToolBar.Help		Ajuda
	  tmenu ToolBar.FindHelp	Procurar na Ajuda
  endfun
endif

" Syntax menu
menutrans &Syntax			&Sintaxe
"menutrans &Show\ individual\ choices	E&xibir\ escolhas\ individuais
menutrans &Show\ filetypes\ in\ menu	E&xibir\ tipos\ de\ arquivos\ no\ menu
menutrans Set\ '&syntax'\ only		Activar\ somente\ s&intaxe
menutrans Set\ '&filetype'\ too		Activar\ tamb�m\ &tipo\ de\ arquivo
menutrans &Off				&Desactivar
menutrans &Manual			&Manual
menutrans A&utomatic			A&utom�tica
menutrans on/off\ for\ &This\ file	Activar/Desactivar\ neste\ &arquivo
menutrans Co&lor\ test			T&este\ de\ cores
menutrans &Highlight\ test		Teste\ de\ &realce
menutrans &Convert\ to\ HTML		&Converter\ para\ HTML

" Find Help dialog text
let g:menutrans_help_dialog = "Digite um comando ou palavra para obter ajuda;\n\nAnteponha i_ para comandos de entrada (ex.: i_CTRL-X)\nAnteponha c_ para comandos da linha de comandos (ex.: c_<Del>)\nAnteponha ` para um nome de op��o (ex.: `shiftwidth`)"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��JZZZvim80/lang/menu_it.utf-8.vimnu�[���" Menu Translations:	Italian for UTF-8 encoding

source <sfile>:p:h/menu_it_it.latin1.vim
PK�j�Z����#vim80/lang/zh_CN/LC_MESSAGES/vim.monu�[�����b,3�<fH�I�_�
p�~���'��/ň���!�07�h�u�+}���ĉՉ5��8�G��]�,
�;7�s�����ŋԋ�����8�P�g�~�0��.ƌ/��1%�0W�
������Í
ݍ�
� �,�;�O�!j���"��Ύ���@�G�b�s�������/��=�$�;�U�f�x�������-ؐ�&�;�M�j���3��3Α$�'�D�\�t�����
��ĒӒ����
'�$5�Z� f�����;����#�	3�=�V�^�n��
��������ʔ�	�����!&�H�W�w�������ƕ Ε�
�$�-�6�
>�L�6Y�����Ɩ!��
��	*�4�T�`�e�&j�	��"��*������#�:�
A�
O�Z�
c�n�������5�����.�A�U�j���$����̙
����
�"�8�K�]�p���������ɚ՚���
��'�9�7I�������������śɛ՛�=�2&�Y�b�h�q�'��-��5؜�+�?D�������	��ʝ��
�-(�V�$v���
��ƞ֞���?
�M�5\�!��%��9ڟE�9Z�C��AؠI�Hd�;��0�6�8Q�3��-���%�,�@�Y�s�&��,��#ף4�� 0�@Q�-��0���;�B�"b���>��)ե>��<>�{���#��:˦'�9.�h�$��9��4�;� Q�>r�1��/��-0�^�.m�B��"ߩ/�22�4e�*��Ū+�%�'5�(]�<��Eë.	�-8�$f���<���*��&&� M�4n�����ƭ٭���
��,�=�I�
V�d�m�"u�������ˮ���)�$8�!]������"��"ů��O�j�����X��%
�0�4�O�m�������ѱݱ�$��!�!2�T�r�x�������"Ȳ�$���#<�`�g���Q�����#�9� T�u���!��ɴ	ϴ?ٴP�
j�
x�.����-˵��-�$F�.k�����ö"ܶ
��C
�	Q�[�g�!|�����·2Ƿ!��(� E�"f�E��ϸ%�#�-6�d�����&�����$�=�U�)m�@��غ5��+�A�\�Dw���Eٻ�-:�7h�#�� ļ:�5 �&V�"}�&��$ǽ#�!�=2�5p� ��(Ǿ7�!(�,J�w����� ¿#�&�.�E�]�x�������0
�$;�!`� ��(��4�,�.�J�]�s��� ������1��*�!G�%i�%��%���� ���1�?L�&��!����
��A��%A�"g�"��9��'��(�28�*k�!��!��)��%�!*�4L�:��&��;��;�)[�0��������
��#5�!Y�8{�&��#���� �/8�"h���-��������/�*<�(g�#���������$�>@������"�����"�>�!U�w�9��1��)��1(�%Z�7����A��?�T�k���!��������0�4K�$��)��N��,�LK�8����,�� � ?�#`�����7��N��M@�������$��!�3)�,]�2��%��*��9�(H�q�"����#�����-�J�g�0��!�� ��<��+2�^�~�+��2��$���,5�b�H}�,����	�")�L�i�������9���4�O�0k�#��'������,�&E�l��+��2��-��(�G�"`�'��'��,���.�F�#f�,��W��)�"9�,\�%���� ����2�29�2l���!������2�5?�'u�#��)��3��$�%D�j���������$��&� :�'[�*��#��'��%��3 �!T�v�+����*��-�$:�_�~������� �� �$)�$N�)s�,������,��%�:�%U�{�=�������+�'E�m���$��#��0��.!�0P�������������-3� a���7��)����$�(<�e���%��$�������'-�U�'t� �������� �7(�0`���#����"��(�!@�b�-��1��6��5�M�.h�*��1��9��.�*N�+y�,��+��4��<3�+p�*��-�����#�8�M�d��������"������2�Q�j�����������	�%�A�:T�=��<��6
�<A�~�"������4��5�4A�3v���0���D�%E�k���������
�*�H�c�z�������'�� �3�!S�u���"���1��+�H�"]������������$�9�R�e�y�����������*.�)Y����� ������6�#L�p�)��2��&�K�\� o����������*�"D�&g�#�����+�%�7>�5v����,�+F)\ �����*Ie0}���4 .U$�)�1�;A.Q*��$��%,1^o�&�-�&� 8Yv�+� ��?)Ku6�#�2�9>W8�1�))I s)��)�*	".	Q	#j	"�	"�	)�	�	
%<
 b
+�
$�
�
�
!03d}��"�!�98O$����+�%$
1J
)|
�
�
'�
%�
"&9!`%�'�%�'�-La$v���"�9!Y1{&��!�!5Jd+�8��7E@�!���&�0#Bf$z�#�*�	 $EX0r2�0�+$)P$z/���'�)!,Kx� ���-6 O0p�!�,�97q(�+�/�-L!k"�B��/Ii)�'���'8	@Jbq��#�	���.#R.i6���6�# &D	ku���� �%�!"D(Z����(�
�	�%�
(&3&Z��)��
��
   6 H ] { 	� 2� *� � 
!)!?!U!	d!n!z!�!�!#�!(�!""	'"
1"<"R"2Z"�"�"�"�"�"�"$�"/#O#'W##�#
�#$�#�#�#�# $-$F$S$!i$�$�$�$'�$�$�$�$%%4%#T%x%�%�%.�%
�%�%	&&+&=&'X&�&�&
�&�&�&�&�&�&
'%'D'Z'r'�'9�'�'�'((
(+(4(O(b(x((�(�(�(�(�(�(
)	) )6)N)i)x)9�)�)�)�)*&*F*e*�*�*?�*Q�*	M+W+m+�+"�+�+�+�+�+,
,(,'.,V,v,�,F�,�,--/-6-(B-k-�-�-�-�-�-�-.0.;B. ~.>�.�.�./1*/"\//�/�/�/3�/0(.0W0q0y0$�00�0�0�0�0+	151J1Z1v1�1	�1�1��1A2FU2�2
�2
�2	�2
�2�2+�2303K3i3%�30�3�3(�34124+d4*�4�4&�49�4M65>�5)�55�5A#64e6$�66�6"�67<!7?^7/�7 �7"�78'8C8T8i8~8�8�8�82�8)9,B9-o9 �9!�9#�9::
5:@:Q:`:m:
q:|:�:	�:�:�:�:�:�:;
;;.;
>;
I;T;	Z;d;�;�;	�;�;
�;�;
�;5�;<	 <*<7<
=<K<&R<y<�<�<�<
�<�<
�<�<�<:�<"="4=W=f=m=�=�=�=�=1�=
�=$
>"/>R><q>�>�>�>�>�>H?CT?�?�?�?�?�?�?@@	@@/@E@ Z@-{@-�@�@�@A$A4AEA=TA�A�A$�A�A�A�AB-B?BQB
VBdBqB�B�B�B�B
�B �B �BC
0C;CSC\CzC�C�C	�C�C�C�C�C
DD"D#+D1OD1�D1�D�D�D	�D
EEE"E9EKEZE
iEtEyE
�E �E�E�E�EFF4F	GF"QFtF$�F$�F�F�F�F�F
GG2GQGmG}G�G�G.�G.�G.�G.-H.\H.�H.�H.�H.IGIVIeIwI	�I�I�I�I�I�I
�I�IJJ	4J>JOJdJxJ�J%�Jl�J-L
>LLLUL]LsL%�L�L�L�L0�L)M6M+=MiM�M
�M$�M�M�M
�Mh�McN'�N�N�N�N
�N
�N�NOO)/OYOkO}O�O"�O �O!�O#	P"-P
PP[PjPzP�P�P�P�P
�P�P�P �PQ/QKQ
`QnQ4zQ�Q
�Q
�Q
�Q
�Q
�Q R:&RaRxR
�R�R�R�R�R�R�RS7SLS\SrS�S+�S*�S�ST.TFT^TpT}T
�T�T�T�T
�T�T
�T U#U,UGU_U;wU	�U	�U�U�U�U�UV	VV"V*VAV	MVWVoV	�V�V�V	�V�V�V�V�V�V�VWW!W8WKW^WdWjWpWyW1�W�W�W�W�WXXX#X+X	>XHXMX&RXyX�X�X�X�X�X�X�X�X	YYYY%Y2Y?YGY/cY
�Y�Y�Y�Y�Y�YZ#Z$;Z`ZpZ�Z
�Z�Z�Z�Z�Z
�Z
�Z�Z
[[
#[1[:[G[S[`[	q[{[
�[
�[)�[
�[�[�[�[\\\\/\E\KN\:�\�\�\
�\�\0]=]#W]{]�],�]�]�]	�]^
^
!^/^A^!a^�^)�^�^
�^�^
�^
__3_
Q_\_|_�_:�_<�_4+`3``<�`7�`8	a,Baoa-�a2�a,�ab8b Pb
qbb�b
�b�b(�b�b(c5c0Oc'�c+�c�c5�cd5dOd8_d)�d8�d,�d(e0e)Ne0xe*�e=�ef)f,Gf2tf>�f�f8g%=g*cg�g+�g�g�g;�g3h0Sh+�h-�h&�hii;iYi,yi2�i=�i%j(=j$fj�j5�j�j�j!k-k/Kk{k�k�k�k�k�k
�k�k�k	lll$l
+l#6l	Zl
dlol�l�l
�l�l*�lm
!m,m	1m;mUmmm�m-�m�m�mnQnkn�n�n�n�n�n�n�noo#o+oCoLoioo�o�o�o�o�o
�o-�o"p8pQpVpjpD�p	�p	�p�p�p�p
q#q6qGqcqhq>qqQ�q
r
r#r:rIrhr{r�r�r�r�r�rss30sdsisns~s�s�s�s,�s�s!�st$5t8Zt�t �t(�t'�tu0uEuZuxu�u�u�u�u�u�u/v1v%Hvnv�v�v.�v�v6�v%w!:w%\w�w�w+�w+�w
x )x"Jx!mx�x�x)�x%�xy 7y Xyyy�y�y�y�y�yz&zEz[zpz�z�z�z�z�z"�z{8{ W{x{(�{ �{�{�{||.|@|W|s|!�|�|�|�|�|}}/}H}]}&p} �}�}�}
�} �}#~7~P~%j~�~�~#�~!�~/If�%�+��(�-�!L�%n�����Ā݀��#�&<�c������� ǁ��+�>�M�f�u�������т���,�2G�z�������܃���1�O�,c�"��.��+�$�3�Q�&c�$����ƅޅ��*�B�*Y�%����Ɔ.�!�*7�%b�����Ň����,�$G�<l�>������,�E�(Z��� ����$ۉ+�,�E�V�q�������͊��%�-�L�,e�#����ы"� �'�@�&V�}�+����ٌ��%�:�Q�h�� ����ɍߍ ���".�
Q�\�"s�����ǎ׎"�"�:�W�l���!��&ŏ����(�F�>f���Đ#�#�*�A�X�*l�*��+‘�	�$�9�%M�'s�����Β*��5�T�g������� ��"ۓ��$�(>�$g���$��'̔��$$�I�!d�!��"��˕ܕ�
��%�B�_�x�����ɖܖ!��#�8�Q�$o�������ϗ���!3� U�$v�$��#������!�6�K�[�p����� ��ܙ���%�B�
Y�g�������К���6�M�`�x���+��Λ��#�:�X�p���"��(Ɯ-�,�J�'b���,��,Н�� �5�R�r�!�� ��'Ԟ��$�<�M�\�o�~�������ȟן����"�8�Q�g�}�������٠���-.�.\�.��.��,��*�?�R�(Y�(��,��(آ
�(�8�5G�}�����ϣ���
��9�N�g�|�������Ǥ ߤ��1�P�e�x���'��˥ܥ��!�0�?�R�k�z�������Ʀئ�����7�O�g� ����ħ֧��%�5�'M�u���"�� ʨ �)�6�J�j�������ҩ���);�&e���!��%̪�)�'1�Y�n�������ʫ߫���+�C�a�~�����Ԭ%��$�=�R�#m�#��"��"ح(��0$�U�e�������ڮ � �4�E�Z�o�#����ȯ"د���1�(D�m���1��Ű�,��#�#=�"a�-��$��)ױ�"�&9�`�"w�����̲���2�K�!d�������ҳ!�
�*�E�_�}�������д���*� F�g���������۵*��"�@�P�f����� ��Զ�%�5�#U�y�������ٷ���",�O�l���'��̸����.�@�S�j�!����"ù2��,�I�Z�%j�����ƺ׺�	��;�R�
i�w�)��$��޻���3�M�,g������� Ҽ%��5�O�d�}� ����ν%��%�>�]�m�&��
����$Ծ(��"�:�R�!i���2��޿���'�<�U�&o�����������&�;�O�e�k�t�
��%����$��*��
�(!�J�^�z������������#�� ��
�&*�Q�
b�m�r�'y���
��!����	�����1�I�R�p�
����
������
���������-�#=�a�n�����
��������
�������!�2�
?�
J�U�b�6g���������������!�4�=�
Z�e�r����
��������
�����!�6�=�F�c�h�w���������
�������
"�
-�8�>�
S�^�t���
��	���������������$�6�H�e�z����������������������#�/�6�
E�P�Y�b�k�����	����&��
�����#�4�N�i�����1��A��"�'�8�L� ]�~�
������
������������&+�
R�`�r��
��$����
��	��
������
��#�!C�
e�4s��������������5�%R�x�����������#�����!�?�
Q�\�
p�~�����c���."�Q�
Z�
e�s�|��� ����#��&���1�'I�q�~���!��"�� ���,�'L�:t�)����(��-�4F�{�$������2��-�'<�d�y�������
���������&�/=�&m�)��*����#��#�@�
Y�g�o�~���������
������
���������	�%�.�7�@�I�N�W�k�
t����������1������
����
���
8�
C�N�T�\�c�l�x��*�������������
� �$�)=�g�o�����%��
��
��
���%(�'N�
v���
����
��
����������
�����'#�'K�
s����������� �������0�9�?�U�
a�o���
����
������������������#�	A�K�
e�s�������������������)��1�1L�1~���������
��������
�
���"�:�B�a�j��������������"��"�@�
G�U�Z�	o�y�������������.��.�.A�.p�.��.��.��.,�.[���
������������������)�A�T�m�z���������!����n������c�����+�"b�
xb�F����"BC��kW�c2�k�>"sp��IJE0Y}�����QA����d�����R���P����(.R\�l{������gAZ��]�0�K#��t�K�'�aT�'�;u(�9SV���y��So�n�_b��(�,�*���l��F�
�|Q]��*���h����)u���--3�����	Uk[���]%��x!�������PV��dp,<��(��c��:�3Q�LH3�_$R/
>�%�U/:N7\�����+����B��XjfX��;�����[1�;zz���&�]x<1�a������:����Tw+�������~<�z�;s�2|����pT�we�+"{
YW��3���5�|��1A��r�sT�3H{m�/)*e���_K���mq��`�uB��{�U�%�Z�my��P�����[OU�	#?#���o��,rq�����5#lL2q]�oG�WJx'���SA�"������x��_�����JE��G���3�!^p�����u���N��1����=�����0~�*/Co7_����rM4��w�m[n����4�+��`��������#>% �;�U��rl�R"��,�n�q�����9Z!?�j��W������6�f�����\<O��4i
�'y�lB8O�S�O����N����`��d� ���������Y.V�%��RX9�.��7W��:^��4��a�$$���z0���9�Vb�C��
�g��an���e�M�	�N�Y�D8�:V�C?@k�5&�nC�QA�t�}��=�h���_E0D<�`
\���iM;�������u�w�4?��������r�@����)g����oB���X�*�'��,�7
�}4l�kDij}t<��
����c��+H�=�E�K q��V����!�LM��|.[q�����)����p	I�R-��
2���X���)Q�|�!77�e�=���N��&Z�#6c6~\1[��H��Y��D������OA�~I{/S���*F�J2�i����+QM�����m���������eK��P��)-�L�TM���h�E�(h���9�����G�f���@I����Z�>������$�6'-�'���g�����|�[�Z�IJ��P���r.T����5����$������9����^:�^Dd���W~2v�J���i&���K{������w>$L�a6��fF��;
���E�G�^j�	
6
���G
�yE� �i���t�����!�(���~z�d�Os��@� �B`�pF��%-�K>w�U�8��=��f�� .��mL�b5�,���5�v8`P��b�G�D�?�8�y��@����D�$h��1]��"��Y�0y\�v<��I�U	d�kI�_�Vs�7����u�S���J�����G�e�RL����b�}^!&�z 3�4�j����v(8���s`)6aQ�o����@&�g�&��/2�/�C�����Nh�g�>v}�*9��5:Z0F8cvOYAH]��\����#?�^j�,�N%���WPH=-���@?��TM����F�tfXX�Bx�S1�tH=��.a	��C�			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items             dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld substitutions%s Auto commands for "%s"%s aborted%s line %ld%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab <files>  As --remote but open tab page for each file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
<%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o???: Sorry, this command is disabled, the MzScheme library could not be loaded.ANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Choice number (<Enter> cancels): CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Delete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE118: Too many arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E46: Cannot set variable in the sandbox: "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E747: Missing ']': %sE748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE77: Too many file namesE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE78: Unknown markE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Searching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUndo number %ld not foundUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NL found][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!environment variableerror list %d of %d; %d errorsexpressions disabled at compile timefewer linesfile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnew shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringsProject-Id-Version: Vim(Simplified Chinese)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2006-04-21 15:16+0800
PO-Revision-Date: 2006-04-21 14:00+0800
Last-Translator: Yuheng Xie <elephant@linux.net.cn>
Language-Team: Simplified Chinese <i18n-translation@lists.linux.net.cn>
MIME-Version: 1.0
Content-Type: text/plain; charset=gb2312
Content-Transfer-Encoding: 8-bit
			  (��δʵ��)

	���޸��� 

���:


�÷�:
            �޸Ĺ�: 
         [�����ڱ�����ʹ��]
         [�����ڸð汾�� Vim ��ʹ��]
            ����: 
            �û��: 
           ���� ID: 
    ���        ��� ��Χ  ��ȫ      ����      
   #   ��  
  ��:
  # �� tag         ��   ��    �� �ļ�/�ı�
 �ת   ��   �� �ļ�/�ı�
# ������б�:

# ����:

# �ļ��ڵı���ʷ��¼ (���µ���):

# �ת�б� (���µ���):

# �Ĵ��:

# ȫ�ֱ�:

(1) ��һ���������Ҳ�ڱ༭ͬһ���ļ���
    ����������޸�ʱ��ע�����ͬһ���ļ����������ͬ�İ汾��


(2) �ϴα༭���ļ�ʱ������

(�������Ҫ�����ļ����Ϊ����ļ��

--- �Զ���� ---
--- ȫ��ѡ��ֵ ---
--- �ֲ�ѡ��ֵ ---
--- �˵� ---
--- ѡ�� ---
--- �Ĵ�� ---
--- Signs ---
--- �﷨��Ŀ ---
--- �﷨ͬ����Ŀ (Syntax sync items) ---
--- �ն˱��� ---
--- �ն˰��� ---
16 λ MS-DOS �汾
32 λ MS-DOS �汾
gvim (Athena �汾) ��ʶ��IJ��:

gvim (GTK+ �汾) ��ʶ��IJ��:

gvim (Motif �汾) ��ʶ��IJ��:

gvim (RISC OS �汾) ��ʶ��IJ��:

gvim (neXtaw �汾) ��ʶ��IJ��:

���Ͱ汾 
�޷������ܵ�

�޷�ִ�� shell
�޷�ִ�� shell sh

�޷� fork

����ѽ��

����
���ֽ����ļ� "
���Ͱ汾 
��������: 
MS-Windows 16 λ����̨�汾
MS-Windows 16/32 λͼ�ν���汾
MS-Windows 32 λͼ�ν���汾
MS-Windows 32 λ����̨�汾
MacOS X (unix) �汾
MacOS X �汾
MacOS �汾
������û����κ��޸Ļ��� Vim �����������½����ļ���
������Ϣ��: "vim -h"

����汾 
RISC OS �汾
С�Ͱ汾 
΢�Ͱ汾 
Vim: X ����

����: ԭʼ�ļ������Ѷ�ʧ����

[�ֽ�] �ܹ� alloc-free %lu-%lu��ʹ���� %lu���߷�ʹ�� %lu

  �ı�   ��   �� �ı�
���   ��   �� �ļ�/�ı�
Shell �ѷ���
ͬ����:              ����:             �����:          [�޷���]         [�޷���ȡ]         [������ Vim �����ļ�]         [���� Vim �汾 3.0]            �ļ��:       -- �� --
      �Ƚ����ļ��£�
      �û� exrc �ļ�: "     �û� vimrc �ļ�: "    ������������� ":recover" �� "vim -r     �����Ѿ�����˻ָ�����ɾ�������ļ� "    �˳�����С�ĵؼ����
    ��=%ld  id=%d  ���=%s        ϵͳ�˵��ļ�: "    �û� gvimrc �ļ�: "   λ�ڵ�ǰĿ¼:
   λ��Ŀ¼    ʹ��ָ�������:
    ����:       ����:      ϵͳ vimrc �ļ�: "  # pri kind tag  (��г�)  �ڶ��û� exrc �ļ�: "  ���԰汾  ��ʹ��(+)�벻��ʹ��(-)�Ĺ���:
  �Ҳ���  �Բ�ͬ��Сд��ʹ�� tag��         $VIM Ԥ��ֵ: "    ϵͳ gvimrc �ļ�: " # pid    ��ݿ��                            prepend path
 (���ж�) (�Ҳ���) (�����ϴ�г�������) (����) (����) Scroll (^E/^Y) (����) (����ɾ��) (��֧��) (ճ�) (�滻) (�滻) Scroll (^E/^Y) (��������) (V-�滻) �ڶ��û� vimrc �ļ�: " ����û� vimrc �ļ�: " < "%.*s" ��� Arabic ת������ ����в�ȫ (^V^N^P)���� %d / %d ���岹ȫ (^D^N^P) Dictionary ��ȫ (^K^N^P) ʧ�� �ļ����ȫ (^F^N^P) Hebrew ���� �ؼ��־ֲ���ȫ (^N^P) �ؼ��ֲ�ȫ (^N^P) ȫ�ܲ�ȫ (^O^N^P) �滻 ���� ѡ�� ѡ�� �� ѡ�� �� �ո�/d/j: �Ļ/ҳ/�� �·���b/u/k: �Ϸ���q: �˳�  ƴд���� (s^N^P) Tag ��ȫ (^]^N^P) Thesaurus ��ȫ (^T^N^P) �û��Զ��岹ȫ (^U^N^P) ���� ���� �� ���� �� V-�滻 ��в�ȫ (^L^N^P) [���޸�] [a] [w] ^X ģʽ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) ��׷�� ��������̨������ʹ�á�
 �����ڸð汾�� Vim ��ʹ�á�
  $VIMRUNTIME Ԥ��ֵ: " Win32s ģʽ ��Ϣ ���� �ļ�
�кų�����Χ ����� %ld ���� 1 �� ��� �ѷ���
 vim [���]  �� OLE ֧�� ��д��"
    �Ա����ٿ������Ϣ��
"
    �ָ��޸ĵ����� (�� ":help recovery")��
" �Ѵ��ڣ�%-5s: %-30s (�÷�: %s)%3d  %s %s  �� %ld ��ɾ���� %d ��������ͷ�� %d ����������� %d ����������� %d ���ظ��ĵ��ʣ��� %s ������ %d ���ļ��ȴ��༭
���� %d ���ļ�δ�༭��ȷʵҪ�˳���%d �� %d �ѱ༭%ld %s��%s #%ld  %s%ld ��; %ld ���ַ���� %ld ��%ld �� %s �� %d ��%ld �� %s �� 1 ��%ld �� --%d%%--�ı�� %ld ������� %ld ������� %ld �� �ƶ��� %ld ����� %ld �С��� ����� %ld ��%ld �У�%ld ��ƥ�䣬��� %ld ��%ld ���滻��%s �Զ���� "%s"%s ����ֹ%s �� %ld ��%s ���� #%ld %s ���� %s%s ��ֵ���һ�� .aff �ļ���ʹ�õ�ֵ����ͬ%s���� %ld ��%sviminfo: %s λ����: ȡ�(&C)ȡ�(&D)����(&F)���(&H)ȷ��(&O)ȷ��(&O)
ȡ�(&C)ȷ��(&O)
�����ļ�(&L)ȷ��(&O)��ֻ����ʽ��(&O)
ֱ�ӱ༭(&E)
�ָ�(&R)
ɾ�������ļ�(&D)
�˳�(&Q)
��ֹ(&A)��ֻ����ʽ��(&O)
ֱ�ӱ༭(&E)
�ָ�(&R)
�˳�(&Q)
��ֹ(&A)�滻(&R)���(&U)��(&Y)
��(&N)��(&Y)
��(&N)
ȡ�(&C)��(&Y)
��(&N)
ȫ������(&A)
ȫ�����(&D)
ȡ�(&C)' δ֪�����õ��ڽ��ն���:'columns' ���� 80, ����ִ���ⲿ���ѡ�� 'dictionary' Ϊ��ѡ�� 'history' Ϊ��"%s" ���趨 'readonly' ѡ�
ȷʵҪ������ѡ�� 'thesaurus' Ϊ��(%d / %d)%s%s: (���ж�) (��Ч)+			�������ļ�ĩβ+-%s%3ld ��: +--���۵� %3ld ��+<lnum>		�������� <lnum> ��+reverse		��ʹ�÷��� (Ҳ���� +rv)��
���Ǵ��ļ����𻵡�-               �ӱ�׼����(stdin)��ȡ�ı�--			�����Ժ�ֻ���ļ��-- ���� ---- ������...--- �����ļ� --��ɾ��----�����������----cmd <command>	�����κ� vimrc �ļ�ǰִ�� <command>--cmd ���--columns <number>	���ڳ�ʼ���--literal		����չͨ��--noplugin		������ plugin �ű�--remote <files>	���п��ܣ��� Vim ������ϱ༭�ļ� <files>--remote-expr <expr>	�� Vim ��������� <expr> ��ֵ����ӡ��--remote-send <keys>	�ͳ� <keys> �� Vim ��������˳�--remote-silent <files>  ͬ�ϣ��Ҳ��������ʱ����Թ--remote-tab <files>  ͬ --remote ����ÿ���ļ���һ����ǩҳ--remote-wait <files>  ͬ --remote ����ȴ��ļ���ɱ༭--remote-wait-silent <files>  ͬ�ϣ��Ҳ��������ʱ����Թ--role <role>	���������������ڵĴ��ڽ�ɫ�--rows <number>	���ڳ�ʼ�߶�--serverlist		�г����õ� Vim �������Ʋ��˳�--servername <name>	���͵����Ϊ Vim ����� <name>--socketid <xid>	���һ�� GTK �����д� Vim--version		��ӡ�汾��Ϣ���˳�-A			�� Arabic ģʽ��-C			���ݴ�ͳ�� Vi: 'compatible'-D			����ģʽ-F			�� Farsi ģʽ��-H			�� Hebrew ģʽ��-L			ͬ -r-M			�ı������޸�-N			����ȫ���ݴ�ͳ�� Vi: 'nocompatible'-O[N]		ͬ -o ����ֱ�ָ�-P <parent title>	�ڸ�Ӧ�ó����д� Vim-R			ֻ��ģʽ (ͬ "view")-S <session>		���ص�һ���ļ���ִ���ļ� <session>-T <terminal>	�趨�ն����Ϊ <terminal>-U <gvimrc>		ʹ�� <gvimrc> ���κ� .gvimrc-V[N]		Verbose �ȼ�-W <scriptout>	�������������д�뵽�ļ� <scriptout>-X			�����ӵ� X Server-Z			����ģʽ (ͬ "rvim")-b			������ģʽ-background <color>	ʹ�� <color> �Ϊ����ɫ (Ҳ���� -bg)-boldfont <font>	ʹ�� <font> �Ϊ��������-borderwidth <width>	�趨�߿���Ϊ <width> (Ҳ���� -bw)-c <command>		���ص�һ���ļ���ִ�� <command>-c ���-d			Diff ģʽ (ͬ "vimdiff")-dev <device>		ʹ�� <device> ����������-display <display>	�� vim ��ָ���� X-server ����-display <display>	�� <display> ������ vim-display <display>	�� <display> ������ vim (Ҳ���� --display)-e			Ex ģʽ (ͬ "ex")-f			��ʹ�� newcli ���򿪴���-f  ��  --nofork	ǰ̨: ��ͼ�ν���ʱ�� fork-font <font>	ʹ�� <font> �Ϊһ������ (Ҳ���� -fn)-foreground <color>	ʹ�� <color> �Ϊһ��������ɫ (Ҳ���� -fg)-g			ʹ��ͼ�ν��� (ͬ "gvim")-geometry <geom>	ʹ�� <geom> �Ϊ��ʼλ�� (Ҳ���� -geom)-h  ��  --help	��ӡ���(����Ϣ)���˳�-i <viminfo>		ʹ�� <viminfo> ȡ�� .viminfo-iconic		�����С��-italicfont <font>	ʹ�� <font> �Ϊб������-l			Lisp ģʽ-m			�����޸�(д���ļ�)-menuheight <height>	�趨�˵����߶�Ϊ <height> (Ҳ���� -mh)-n			��ʹ�ý����ļ���ֻʹ���ڴ�-name <name>		��ȡ Resource ʱ�� vim ��Ϊ <name>-o[N]		�� N ������ (Ĭ��ֵ: ÿ���ļ�һ��)-P[N]		�� N ����ǩҳ (Ĭ��ֵ: ÿ���ļ�һ��)-q [errorfile]  �༭��һ���������ļ�-r			�г������ļ����˳�-r (���ļ��)		�ָ������ĻỰ-register		ע��� gvim �� OLE-reverse		ʹ�÷��� (Ҳ���� -rv)-s			����(�����)ģʽ (ֻ���� "ex" һ��ʹ��)-s <scriptin>	���ļ� <scriptin> �������ģʽ�����-scrollbarwidth <width> �趨��������Ϊ <width> (Ҳ���� -sw)-t tag          �༭ tag ���崦���ļ�-u <vimrc>		ʹ�� <vimrc> ���κ� .vimrc-unregister		ȡ� OLE �е� gvim ע��-v			Vi ģʽ (ͬ "vi")-w <scriptout>	�������������׷�ӵ��ļ� <scriptout>-x			�༭���ܵ��ļ�-xrm <resource>	�趨ָ������Դ-y			����ģʽ (ͬ "evim"����ģʽ)%s �� %d �У�/ ���ѱ�����: %s%s �� %d �У����ʺ�� /encoding= ���ѱ�����: %sɾ���� 1 ��������ͷ�� 1 ����������� 1 �������1 ���ַ�1 �� %s �� %d ��1 �� %s �� 1 ��1 �� --%d%%--�ı�� 1 ������� 1 �� ��� 1 ���ƶ��� 1 ������� 1 ��1 �У�1 ��ƥ�䣬���� 1 ���ļ�δ�༭��ȷʵҪ�˳������ 1 ��1 ���滻���ڶ��û� gvimrc �ļ�: "����û� gvimrc �ļ�: ": ���ͱ��ʽʧ�ܡ�
: ����ʧ�ܡ�
: ����ʧ�ܡ����Ա���ִ��
<%s>%s%s  %d,  ʮ������ %02x,  �˽��� %03o<���������(��ɾ��): %8lX><�޷���><��><���� %d><���ڶ���(��ɾ��): %.8lX><���ڶ���(δ֪): %.8lX>> %d, ʮ������ %04x, �˽��� %o> %d, ʮ������ %08x, �˽��� %o???: ��Ǹ���������ã��޷����� MzScheme ��ANCHOR_BUF_SIZE ̫С���һ���µ���ݿ����� cscope ��ݿ� %s%s �� %d �У������ BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST ʹ��: %s%s �� %d �У����������̫��: %sȫ����� cscope ��ݿ��ѱ�������а����ļ������ҵ���λ�����µĸı���λ����ɵĸı��Ѿ�ֻʣһ�� tab ҳ���Ѿ�ֻʣһ�������׷���ļ�ȱ�ٱ�Ҫ�IJ�����к� ��ͼ�ٴδ򿪽ű��ļ�: "�ص����ʹ�������ķ�Χ��ȷ����������Ϊ Vim ��ע���û���Beep!�ڵ� %ld �ֽ�֮ǰ�׶�%s ͬʱ���� SQL �� SOFO ���ϵ� "%s%s" �� %ld ��%s �� %d �У���������: %s�� class��û�� SYLLABLE ������ʹ��� COMPOUNDSYLMAX���� shell ִ��: "%s"�Ҳ�������ת�����ʱ�ļ�ȡ��޷����ӵ� Netbeans�޷����ӵ� Netbeans #2������ӵ� SNiFF+�����黷���� ($PATH ���������ҵ� sniffemacs)
���ܴ��� ����ִ�� ���ܴ� NIL:
�޷����ļ� "%s"�޷��򿪲���ȡ: "�޷��򿪲����ű�: "����ִ��Ŀ¼: "%s"�� "%.*s" ��Ϊ����ѡ����� (<Enter> ȡ�): �ر��رձ�ǩ�� %s/%s ��; �� %ld/%ld ��; �� %ld/%ld ����; �� %ld/%ld ���ֽ��� %s/%s ��; �� %ld/%ld ��; �� %ld/%ld ����; �� %ld/%ld ���ַ�; �� %ld/%ld ���ֽ����뷽ʽ: �����: ѹ��� %d/%d ���ڵ㣻ʣ�� %d (%d%%)ѹ�������������� %s ת��ʧ�ܣ��� %d ��: %s��֧�� %s �е�ת����֧�� %s �е�ת��: �� %s �� %s'charconvert' ת��ʧ���޷������ DLL �ĺ��ָ��!�޷����� vim32.dll��Cscope tag: %s��ǰ�� %s����: "%s"Ȼ��� .swp �ļ�ɾ��

�� Vim �Ƚ�(diff)%s �� %d �У������ĸ��ӿ��г��ֲ�ͬ����ϱ�־: %s����Ŀ¼Ŀ¼	*.nothing
ȷʵҪд������ɣ����б��г������ ;����%s �� %d �У��ظ��� /regions= ���ѱ�����: %s%s �� %d �У��ظ��ĸ�����: %s%s �� %d �У�MAP �д����ظ����ַ�%s �� %d �У��ظ��ĵ���: %sE100: û��������� diff ģʽ�Ļ����E101: ��������ϵĻ�������� diff ģʽ�����ܾ�������һ��E102: �Ҳ�������� "%s"E103: ����� "%s" ���� diff ģʽE104: �����ַ�(digraph)�в���ʹ�� EscapeE105: �����ڽű��ļ���ʹ�� :loadkeymap E107: ȱ�����: %sE108: �޴˱�: "%s"E109: '?' ��ȱ�� ':'E10: \ ����Ӧ�ø��� /��? �� &E110: ȱ�� ')'E111: ȱ�� ']'E112: ȱ��ѡ�����: %sE113: δ֪��ѡ��: %sE114: ȱ�����: %sE115: ȱ�����: %sE118: ����IJ������: %sE11: ������д�������Ч��<CR> ִ�У�CTRL-C �˳�E121: δ����ı�: %sE122: ��� %s �Ѵ��ڣ���� ! ǿ���滻E124: ȱ�� '(': %sE125: ��Ч�IJ��: %sE126: ȱ�� :endfunctionE128: ���������Դ�д��ĸ��ͷ���߰���ð��: %sE129: ��Ҫ����E12: ��ǰĿ¼�е� exrc/vimrc �� tag �����в���������E130: δ֪�ĺ��: %sE131: �޷�ɾ����� %s: ���ʹ����E132: ���������ȳ��� 'maxfuncdepth'E133: :return ���ں����E134: �����ƶ���������E135: *Filter* �Զ������Ըı䵱ǰ�����E136: viminfo: ����࣬�����ļ���ʣ�ಿ��E137: Viminfo �ļ�����д��: %sE138: �޷�д�� viminfo �ļ� %s��E139: �ļ������һ��������б�����E13: �ļ��Ѵ��� (��� ! ǿ��ִ��)E140: ��ʹ�� ! ��д�벿�ֻ����E141: ����� %ld û���ļ��E142: �ļ�δд��: д�뱻 'write' ѡ����E143: �Զ���������ɾ�����»���� %sE144: :z �����ܷ���ֵIJ��E145: rvim �н�ֹʹ�� shell ���E146: �����ʽ��������ĸ��ֽ�E147: :global ���ܵݹ�ִ��E148: global ȱ�������ʽE149: ��Ǹ��û�� %s ��˵�E14: ��Ч�ĵ�ַE150: ����Ŀ¼: %sE152: �޷��򿪲�д�� %sE153: �޷��򿪲���ȡ %sE154: Tag "%s" ���ļ� %s/%s ���ظ�����E155: δ֪�� sign: %sE156: ȱ�� sign ���E157: ��Ч�� sign ID: %ldE158: ��Ч�Ļ�����: %sE159: ȱ�� sign ��E15: ��Ч�ı��ʽ: %sE160: δ֪�� sign ���: %sE161: �Ҳ����ϵ�: %sE162: ����� "%s" ���޸ĵ���δ����E163: ֻ��һ���ļ��ɱ༭E164: �޷��л������ǵ�һ���ļ�E165: �޷��л����������һ���ļ�E166: �޷��򿪲�д�����ļ�E167: �ڽű��ļ���ʹ��� :scriptencodingE168: �ڽű��ļ���ʹ��� :finishE169: ���ݹ�������E16: ��Ч�ķ�ΧE170: ȱ�� :endforE170: ȱ�� :endwhileE171: ȱ�� :endifE172: ֻ����һ���ļ��E173: ���� %ld ���ļ�δ�༭E173: ���� 1 ���ļ�δ�༭E174: ����Ѵ���: ��� ! ǿ���滻E175: û��ָ������E176: ��Ч�IJ�����E177: ����ָ�����μ��E178: ��Ч�ļ��Ĭ��ֵE179: -complete ��Ҫ���E17: "%s" ��Ŀ¼E180: ��Ч�IJ�ȫ����: %sE181: ��Ч������: %sE182: ��Ч������E183: �û��Զ����������Դ�д��ĸ��ͷE184: û�����û��Զ������: %sE185: �Ҳ�����ɫ���� %sE186: ǰһ��Ŀ¼������E187: δ֪E188: �ڴ�ƽ̨�ϲ��ܻ�ô���λ��E189: "%s" �Ѵ��� (��� ! ǿ��ִ��)E18: :let �г����쳣�ַ�E190: �޷��򿪲�д�� "%s"E191: ���������һ����ĸ�����/�����E192: :normal �ݹ�������E193: :endfunction ���ں����E194: û�������滻 '#' �Ľ����ļ��E195: �޷��򿪲���ȡ viminfo �ļ�E196: �˰汾�޸����ַ�(digraph)E197: �����趨����Ϊ "%s"E198: cmd_pchar ��������E199: ����ڻ򻺳���ѱ�ɾ��E19: ��ǵ��к���ЧE200: *ReadPre �Զ������ļ����ɶ�E201: *ReadPre �Զ�������ı䵱ǰ�����E202: ת�������ļ����ɶ�E203: �Զ����ɾ�����ͷ��Ҫд��Ļ����E204: �Զ��������ظı�����E205: Patchmode: �޷�����ԭʼ�ļ�E206: Patchmode: �޷���ɿյ�ԭʼ�ļ�E207: �޷�ɾ�������ļ�E208: д���ļ� "%s" ����E209: �ر��ļ� "%s" ����E20: û���趨���E210: ��ȡ�ļ� "%s" ����E211: �ļ� "%s" �Ѿ�������E212: �޷��򿪲�д���ļ�E213: �޷�ת�� (��� ! ǿ�Ʋ�ת��д��)E214: �Ҳ�������д����ʱ�ļ�E215: * ��������Ч�ַ�: %sE216: �޴��¼�: %sE216: �޴�����¼�: %sE217: ���ܶ�����¼�ִ���Զ����E218: �Զ����Ƕ�ײ������E219: ȱ�� {��E21: �����޸ģ���Ϊѡ�� 'modifiable' �ǹص�E220: ȱ�� }��E222: ��ӵ��Ѷ��������E223: �ݹ�ӳ��E224: ȫ���д %s �Ѵ���E225: ȫ��ӳ�� %s �Ѵ���E226: �д %s �Ѵ���E227: ӳ�� %s �Ѵ���E228: makemap: ��Ч��ģʽE229: �޷���ͼ�ν���E22: �ű�Ƕ�׹���E230: �޷���ȡ�ļ� "%s"E231: ��Ч�� 'guifontwide'E232: ����ͬʱʹ���Ϣ�ͻص���������� BalloonEvalE233: �޷��� displayE234: δ֪�� Fontset: %sE235: δ֪������: %sE236: ���� "%s" ���ǵȿ�����E237: ѡ���ӡ��ʧ��E238: ��ӡ����: %sE239: ��Ч�� sign ����: %sE23: û�н����ļ�E240: û�е� Vim ����������E241: �޷����͵� %sE243: ��֧�ֵIJ��: "-%s"����ʹ�� OLE �汾��E244: �ַ��� "%s" ���ܶ�Ӧ����"%s"E245: ���ȷ���ַ� '%c' ������������� "%s" ��E246: FileChangedShell �Զ����ɾ���˻����E247: û����� "%s" ����ע��ķ����E248:  �޷�������Ŀ�ij���E24: û�����дE250: Fontset %s ȱ������ַ���������:E251: VIM ʵ��ע������������ɾ����E252: Fontset ���: %sE253: Fontset ���: %s
E254: �޷�������ɫ %sE255: �޷���ȡ sign ��ݣ�E256: Hangul automata ����E257: cstag: �Ҳ��� tagE258: �޷����͵��ͻ���E259: cscope ��ѯ %s %s û���ҵ�ƥ��Ľ�E25: �޷�ʹ��ͼ�ν���: ����ʱû������E261: �Ҳ��� cscope ���� %sE262: ��ȡ cscope ���� %ld ����E263: ��Ǹ���������ã��޷����� Python �⡣E264: Python: ��ʼ�� I/O �����E266: ��Ǹ���������ã��޷����� Ruby ��E26: �޷�ʹ�� Hebrew: ����ʱû������
E273: δ֪�� longjmp ״̬ %dE274: Sniff: ��ȡ����. ȡ�����E275: ���ȷ�� SNiff+ ����: %sE276: ���ӵ� SNiFF+ ʧ��E277: �޷���ȡ�������ӦE278: δ���ӵ� SNiFF+E279: ���� SNiFF+ �Ļ����E27: �޷�ʹ�� Farsi: ����ʱû������
E280: TCL ���ش���: reflist �𻵣����뱨�� vim-dev@vim.orgE281: TCL ����: �˳�����ֵ�����������뱨�� vim-dev@vim.orgE282: �޷���ȡ "%s"E283: û��ƥ�� "%s" �ı��E284: �����趨 IC ֵE285: �޷���������������E286: �޷������뷨E287: ����: �޷��趨���뷨���ͷŻص����E288: ���뷨��֧���κη��E289: ���뷨��֧���ҵ�Ԥ�༭����E28: û�������Ⱥ���: %sE290: over-the-spot �����Ҫ FontsetE291: ��� GTK+ �� 1.2.3 �ɡ�״̬������á�E292: ���뷨�����δ����E293: ��δ�����E294: �����ļ���ȡ��λ����E295: �����ļ���ȡ����E296: �����ļ�д�붨λ����E297: �����ļ�д�����E298: �Ҳ����� 0��E298: �Ҳ����� 1��E298: �Ҳ����� 2��E29: û�в�������E300: �����ļ��Ѵ��� (������ӹ�����)E301: �ޣ������ļ������ˣ�����E302: �޷����������ļ�E303: �޷��� "%s" �Ľ����ļ����ָ���������E304: ml_upd_block0(): �Ҳ����� 0��E305: �Ҳ��� %s �Ľ����ļ�E306: �޷��� %sE307: %s ��������� Vim �����ļ�E308: ����: ԭʼ�ļ������ѱ��޸�E309: �޷��� %s ��ȡ�� 1E30: û��ǰһ�������E310: �� 1 ID ���� (%s ���ǽ����ļ���)E311: �ָ��ѱ��ж�E312: �ָ�ʱ���������ע�⿪ͷΪ ??? ����E313: �޷�����û�н����ļ�E314: ����ʧ��E315: ml_get: ��Ч�� lnum: %ldE316: ml_get: �Ҳ����� %ld ��E317: ָ��� id ����E317: ָ��� id ���� 2E317: ָ��� id ���� 3E317: ָ��� id ���� 4E318: �����̫��Ŀ飿E319: ��Ǹ������ڴ˰汾�в�����E31: û����ӳ��E320: �Ҳ����� %ld ��E321: �޷����¼��� "%s"E322: �кų�����Χ: %ld ������βE323: �� %ld �������E324: �޷��� PostScript ���ļ�E325: ע��E326: �ҵ�̫�ཻ���ļ�E327: �˵����ij����·�������Ӳ˵�E328: �˵�ֻ�����ģʽ�д���E329: û�в˵� "%s"E32: û���ļ��E330: �˵�·������ָ���Ӳ˵�E331: ���ܰѲ˵���ֱ�Ӽӵ��˵�����E332: �ָ��߲����Dz˵�·����һ����E333: �˵�·������ָ��˵���E334: �Ҳ����˵�: %sE335: %s ģʽ�в˵�δ����E336: �˵�·������ָ���Ӳ˵�E337: �Ҳ����˵� - ����˵����E338: ��Ǹ������̨ģʽ��û���ļ����E339: ģʽ̫��E33: û��ǰһ���滻�����ʽE340: ���й���E341: �ڲ�����: lalloc(%ld, )E342: �ڴ治�㣡(���� %lu �ֽ�)E343: ��Ч��·��: '**[number]' ������·��ĩβ���ߺ���� '%s'��E344: cdpath ���Ҳ���Ŀ¼ "%s"E345: ��·�����Ҳ����ļ� "%s"E346: ��·�����Ҳ���������ļ� "%s"E347: ��·�����Ҳ���������ļ� "%s"E348: ��괦û���ַ���E349: ��괦û��ʶ����E34: û��ǰһ�����E350: �����ڵ�ǰ�� 'foldmethod' �´����۵�E351: �����ڵ�ǰ�� 'foldmethod' ��ɾ���۵�E352: �����ڵ�ǰ�� 'foldmethod' ��ɾ�� foldE353: �Ĵ�� %s ��û�ж��E354: ��Ч�ļĴ���: '%s'E355: δ֪��ѡ��: %sE356: get_varp ����E357: 'langmap': �Ҳ��� %s ��Ӧ���ַ�E358: 'langmap': �ֺź��ж�����ַ�: %sE359: ��֧���趨�ĻģʽE35: û��ǰһ�������ʽE360: ������ -f ѡ��ִ�� shellE363: ���ʽ���ڴ�ʹ�ó��� 'maxmempattern'E364: ���ú���� "%s()" ʧ��E365: �޷���ӡ PostScript �ļ�E367: �޴���: "%s"E369: %s%%[] ������Ч����E36: û���㹻�Ŀռ�E370: �޷����ؿ� %sE371: �Ҳ������E372: ��ʽ���ַ�������̫�� %%%c E373: ��ʽ���ַ�����Ӧ�ó��� %%%c E374: ��ʽ���ַ�������� ]E375: ��ʽ���ַ������в�֧�ֵ� %%%c E376: ��ʽ���ַ�����ͷ���в��ȷ�� %%%c E377: ��ʽ���ַ������в��ȷ�� %%%c E378: 'errorformat' δ�趨E379: �Ҳ���Ŀ¼��ƻ��ǿյ�Ŀ¼���E37: ���޸ĵ���δ���� (���� ! ǿ��ִ��)E380: Quickfix ��ջ�׶�E381: Quickfix ��ջ����E382: �޷�д�룬���趨ѡ�� 'buftype'E383: ��Ч�IJ����ַ���: %sE384: �Ѳ��ҵ��ļ���ͷ���Ҳ��� %sE385: �Ѳ��ҵ��ļ���β���Ҳ��� %sE386: �� ';' ����Ӧ���� '?' �� '/'E387: ��ǰ��ƥ��E388: �Ҳ�������E389: �Ҳ��� patternE38: �յIJ��E390: ��Ч�IJ��: %sE391: �޴��﷨ cluster: "%s"E392: �޴��﷨ cluster: "%s"E393: ʹ��˲��ȷ�IJ��E394: �Ҳ��� %s �� region itemE395: ʹ��˲��ȷ�IJ��E396: ʹ��˲��ȷ�IJ��E397: ��Ҫ�ļ����E398: ȱ�� '=': %sE399: syntax region %s �IJ��̫��E39: �˴���Ҫ���E400: û��ָ��������E401: �Ҳ����ָ��: %sE402: '%s' ����Ķ������ʶ��E403: �﷨ͬ��: �����з���ָ�������E404: ��Ч�IJ��: %sE405: ȱ�ٵȺ�: %sE406: �յIJ��: %sE407: %s �����ڴ˳���E408: %s ������б��ĵ�һ��E409: ���ȷ�����: %sE40: �޷��򿪴����ļ� %sE410: ���ȷ�� :syntax �����: %sE411: �Ҳ��� highlight group: %sE412: ���̫��: ":highlight link %s"E413: �������: ":highlight link %s"E414: ���趨��, ���� highlight linkE415: �����еĵȺ�: %sE416: ȱ�ٵȺ�: %sE417: ȱ�ٲ��: %sE418: ���Ϸ���ֵ: %sE419: �����ǰ����ɫE41: �ڴ治�㣡E420: ����ı�����ɫE421: �������ɫ��ƻ��ֵ: %sE422: �ն˱���̫��: %sE423: ��Ч�IJ��: %sE424: ʹ���̫�಻ͬ�ĸ��������E425: �ѵ���һ��ƥ��� tagE426: �Ҳ��� tag: %sE427: ֻ��һ��ƥ��� tagE428: �������һ��ƥ��� tagE429: �ļ� "%s" ������E42: û�д���E430: Tag �ļ�·�����ض�Ϊ %s
E431: Tag �ļ� "%s" ��ʽ����E432: Tag �ļ�δ����: %sE433: û�� tag �ļ�E434: �Ҳ��� tag ģʽE435: �Ҳ��� tag�����Ų£�E436: termcap ��û�� "%s" ��E437: �ն���Ҫ��� "cm"E438: u_undo: �кŴ���E439: ����б���E43: ���𻵵�ƥ���ַ���E440: �Ҳ���Ҫ�������E441: û��Ԥ������E442: ����ͬʱ���� topleft �� botright �ָ�E443: ������ָ��ʱ�����תE444: ���ܹر����һ������E445: ��������иı������E446: ��괦û���ļ��E447: ��·�����Ҳ����ļ� "%s"E448: �޷����ؿ⺯� %sE449: �յ���Ч�ı��ʽE44: ���𻵵������ʽ����E455: д�� PostScript ���ļ�����E456: �Ҳ��� PostScript ��Դ�ļ� "%s.ps"E456: �Ҳ��� PostScript ��Դ�ļ� "cidfont.ps"E456: �Ҳ��� PostScript ��Դ�ļ� "prolog.ps"E456: �޷����ļ� "%s"E457: �޷���ȡ PostScript ��Դ�ļ� "%s"E459: �޷��ص�ǰһ��Ŀ¼E45: ���趨ѡ�� 'readonly' (��� ! ǿ��ִ��)E460: Resource fork �ᶪʧ (��� ! ǿ��ִ��)E461: ��Ч�ı��: %sE462: �޷�Ϊ���¼��� "%s" �׼��E464: ��ȷ�����û��Զ������E465: :winsize ��Ҫ������ֲ��E466: :winpos ��Ҫ������ֲ��E467: Custom ��ȫ��Ҫһ��������E468: ֻ�� custom ��ȫ��������E469: cscopequickfix ��־ %c �� %c ��ЧE46: ���ܸı�ֻ���� "%s"E46: ������ sandbox ���趨��: "%s"E470: ����ֹE471: ��Ҫ���E472: ���ִ��ʧ��E473: �ڲ�����E474: ��Ч�IJ��E475: ��Ч�IJ��: %sE476: ��Ч�����E477: ����ʹ�� "!"E478: ��Ҫ�ţ�E479: û��ƥ��E47: ��ȡ�����ļ�ʧ��E480: û��ƥ��: %sE481: ����ʹ�÷�ΧE482: �޷������ļ� %sE483: �޷���ȡ��ʱ�ļ��E484: �޷����ļ� %sE485: �޷���ȡ�ļ� %sE486: �Ҳ���ģʽ: %sE487: �����������E488: �����β���ַ�E48: �������� sandbox ��ʹ��E490: �Ҳ����۵�E492: ���DZ༭������E493: ʹ�������ķ�ΧE494: ��ʹ�� w �� w>>E495: û�������滻 "<afile>" ���Զ�����ļ��E496: û�������滻 "<abuf>" ���Զ��������E497: û�������滻 "<amatch>" ���Զ����ƥ���E498: û�������滻 "<sfile>" �� :source �ļ��E499: '%' �� '#' Ϊ���ļ����ֻ������ ":p:h"E49: ��Ч�Ĺ�����СE500: ��Ϊ���ַ���E501: �ѵ��ļ�ĩβE505: E506: �޷�д�뱸���ļ� (��� ! ǿ��ִ��)E507: �رձ����ļ����� (��� ! ǿ��ִ��)E508: �޷���ȡ�ļ��Թ����� (��� ! ǿ��ִ��)E509: �޷����������ļ� (��� ! ǿ��ִ��)E50: ̫�� \z(E510: �޷���ɱ����ļ� (��� ! ǿ��ִ��)E512: �ر�ʧ��E513: д�����ת��ʧ�� (�뽫 'fenc' �ÿ���ǿ��ִ��)E514: д����� (�ļ�ϵͳ�����)E515: û���ͷ��κλ����E516: û��ɾ���κλ����E517: û�����κλ����E518: δ֪��ѡ��E519: ��֧�ָ�ѡ��E51: ̫�� %s(E520: �������� modeline ��ʹ��E521: = ������Ҫ���E522: Termcap �����Ҳ���E523: �������ڴ�ʹ��E524: ȱ��ð��E525: �ַ�������Ϊ��E526: <%s> ����ȱ�����E527: ȱ�ٶ���E528: ����ָ��һ�� ' ֵE529: �����趨 'term' Ϊ���ַ���E52: ��ƥ��� \z(E530: ��ͼ�ν����в��ܸı��ն�E531: ���� ":gui" ��ͼ�ν���E533: �޷�ѡ�������E534: ��Ч�Ŀ�����E535: <%c> ��������Ч���ַ�E536: ��Ҫ����E537: 'commentstring' ����Ϊ�ջ�� %sE538: ��֧�����E539: ��Ч���ַ� <%s>E53: ��ƥ��� %s%%(E540: û�н���ı��ʽ���E541: ��Ŀ����E542: ���ҵ���E543: ��Ч�Ĵ���ҳE544: �Ҳ��� Keymap �ļ�E545: ȱ��ð��E546: ��Ч��ģʽE547: ��Ч�������״E548: �˴���Ҫ���E549: ��Ч�İٷֱ�E54: ��ƥ��� %s(E550: ȱ��ð��E551: ��Ч�IJ���E552: Ӧ��Ҫ�����E553: û�и������E554: %s{...} ���﷨����E555: ���� tag ��ջ�ײ�E556: ���� tag ��ջ����E557: �޷��� termcap �ļ�E558: �� terminfo ���Ҳ����ն���E559: �� termcap ���Ҳ����ն���E55: ��ƥ��� %s)E560: �÷�: cs[cope] %sE561: δ֪�� cscope �������E562: �÷�: cstag <ident>E563: stat ����E563: stat(%s) ����: %dE564: %s ����Ŀ¼����Ч�� cscope ��ݿ�E566: �޷����� cscope �ܵ�E567: û�� cscope ����E568: �ظ��� cscope ��ݿ�δ������E569: �Ѵﵽ cscope �������E570: cs_manage_matches ���ش���E571: ��Ǹ���������ã��޷����� Tcl ��E572: �˳�����ֵ %dE573: ʹ�����Ч�ķ���� id: %sE574: δ֪�ļĴ������ %dE579: :if Ƕ�ײ������E580: :endif ȱ�ٶ�Ӧ�� :ifE581: :else ȱ�ٶ�Ӧ�� :ifE582: :elseif ȱ�ٶ�Ӧ�� :ifE583: �� :elseE584: :elseif �� :else ����E585: :while/:for Ƕ�ײ������E586: :continue ȱ�ٶ�Ӧ�� :while �� :forE587: :break ȱ�ٶ�Ӧ�� :while �� :forE588: :endfor ȱ�ٶ�Ӧ�� :forE588: :endwhile ȱ�ٶ�Ӧ�� :whileE589: 'backupext' �� 'patchmode' ���E590: Ԥ�������Ѵ���E591: 'winheight' ����С�� 'winminheight'E592: 'winwidth' ����С�� 'winminwidth'E593: �����Ҫ %d ��E594: �����Ҫ %d ��E595: ����������ʾ�ַ�����ַ�E596: ��Ч������E597: �޷�ѡ�� FontsetE598: ��Ч�� FontsetE599: 'imactivatekey' ��ֵ��ЧE59: %s@ ��������Ч���ַ�E600: ȱ�� :endtryE601: :try Ƕ�ײ������E602: :endtry ȱ�ٶ�Ӧ�� :tryE603: :catch ȱ�ٶ�Ӧ�� :tryE604: :catch �� :finally ����E605: �쳣û�б�����: %sE606: :finally ȱ�ٶ�Ӧ�� :tryE607: �� :finallyE608: ���� :throw ǰ׺Ϊ 'Vim' ���쳣E609: Cscope ����: %sE60: ̫�ิ�ӵ� %s{...}sE612: Signs ������E613: δ֪�Ĵ�ӡ������: %sE614: vim_SelFile: �޷����ص�ǰĿ¼E615: vim_SelFile: �޷���ȡ��ǰĿ¼E616: vim_SelFile: �޷���ȡ���� %sE617: �� GTK+ 2 ͼ�ν����в��ܸ���E618: �ļ� "%s" ���� PostScript ��Դ�ļ�E619: �ļ� "%s" ������֧�ֵ� PostScript ��Դ�ļ�E61: Ƕ�׵� %s*E620: �޷�ת�����ӡ���� "%s"E621: "%s" ��Դ�ļ��汾���ȷE622: �޷��� cscope ���� forkE623: �޷���� cscope ����E624: �޷����ļ� "%s"E625: �޷��� cscope ��ݿ�: %sE626: �޷���ȡ cscope ��ݿ���ϢE62: Ƕ�׵� %s%cE63: ���ȷ��ʹ�� \_E64: %s%c ǰ��������E655: ������ӹ���(ѭ����)E658: ����� %ld ��ʧ NetBeans ����E659: ���ܵݹ��� PythonE65: ��Ч�Ļ��E661: ��Ǹ��û�� '%s' �� %s ��˵�E662: ���ڸı�б�Ŀ�ʼ��E663: ���ڸı�б��ĩβ��E664: �ı�б�Ϊ��E665: �޷���ͼ�ν��棬�Ҳ�����Ч������E666: ��֧�ֱ����: %sE667: ͬ��ʧ��E668: NetBeans ������Ϣ�ļ��д���ķ���ģʽ: "%s"E669: ����д��ڲ�����ʾ�ַ�E66: �˴������� \z(E670: ��һ�������л��˶��ְ���ļ�����: %sE671: �Ҳ������ڱ��� "%s"E672: �޷��� MDI Ӧ�ó����д򿪴���E673: �����ݵĶ��ֽڱ�����ַ�����E674: printmbcharset �ڶ��ֽڱ����²���Ϊ�ա�E675: û��ָ�����ֽڴ�ӡ��Ĭ�����塣E676: �Ҳ��� acwrite �������Ӧ���Զ����E677: д��ʱ�ļ�����E678: %s%%[dxouU] ��������Ч���ַ�E679: ���� syncolor.vim ʱ����Ƕ��ѭ��E67: �˴������� \z1 ��E680: <buffer=%d>: ��Ч�Ļ������ E681: �����δ����E682: ��Ч��������ʽ��ָ�E683: ȱ���ļ����ģʽ��ЧE684: List ��������Χ: %ldE685: �ڲ�����: %sE686: %s �IJ�������� ListE687: Ŀ��� List �����E688: Ŀ��� List �����E689: ֻ���� List �� DictionaryE68: \z ��������Ч���ַ�E690: :for ��ȱ�� "in"E691: ֻ�ܱȽ� List �� ListE692: �� List ��Ч�IJ��E693: ֻ�ܱȽ� Funcref �� FuncrefE694: �� Funcrefs ��Ч�IJ��E695: ������һ�� FuncrefE696: List ��ȱ�ٶ���: %sE697: List ȱ�ٽ���� ']': %sE698: ��Ƕ�׹����޷�����E699: �������E69: %s%%[ ��ȱ�� ]E700: δ֪�ĺ��: %sE701: len() �������ЧE702: Sort �ȽϺ��ʧ��E703: �� Funcref ����ʹ��E704: Funcref ��������Դ�д��ĸ��ͷ: %sE705: ��������к�����ͻ: %sE706: �����Ͳ�ƥ��: %sE708: [:] ���������E709: [:] ��Ҫһ�� List ֵE70: �յ� %s%%[]E710: List ֵ�����Ŀ���E711: List ֵû���㹻�����E712: %s �IJ�������� List ���� DictionaryE713: Dictionary �ļ�����Ϊ��E714: ��Ҫ ListE715: ��Ҫ DictionaryE716: Dictionary �в����ڼ�: %sE717: Dictionary ���Ѵ���E718: ��Ҫ FuncrefE719: ���ܶ� Dictionary ʹ�� [:]E71: %s%% ��������Ч���ַ�E720: Dictionary ��ȱ��ð��: %sE721: Dictionary �г����ظ��ļ�: "%s"E722: Dictionary ��ȱ�ٶ���: %sE723: Dictionary ȱ�ٽ���� '}': %sE724: ��Ƕ�׹����޷���ʾE726: ����Ϊ��E727: ��ʼֵ����ֵֹ��E728: �� Dictionary ����ʹ��E729: �� Funcref � String ʹ��E72: �����ļ��رմ���E730: �� List � String ʹ��E731: �� Dictionary � String ʹ��E732: :while �� :endfor ��βE733: :for �� :endwhile ��βE734: %s= �ı����Ͳ��ȷE735: ֻ�ܱȽ� Dictionary �� DictionaryE736: �� Dictionary ��Ч�IJ��E737: ���Ѵ���: %sE738: �޷��г� %s �ı�E739: �޷�����Ŀ¼: %sE73: tag ��ջΪ��E741: ֵ�����: %sE742: �޷��ı� %s ��ֵE743: (un)lock �ı�Ƕ�׹���E744: NetBeans ������ı�ֻ���ļ�E745: �� List ����ʹ��E746: ������ű��ļ����ƥ��: %sE747: ���ܸı�Ŀ¼����������޸� (��� ! ǿ��ִ��)E747: ȱ�� ']': %sE748: û��ǰһ��ʹ�õļĴ��E749: �յĻ����E74: �������E750: ����ʹ�� :profile start <fname>E751: ���ļ�����ܺ�������E752: ֮ǰû��ƴд�滻E753: �Ҳ���: %sE754: ���ֻ֧�� 8 �����E755: %s ������Ч�ķ�ΧE756: ƴд���δ����E757: �⿴�������ƴд�ļ�E758: �ѽضϵ�ƴд�ļ�E759: ƴд�ļ���ʽ����E75: ��ֹ���E760: %s ��û�е��ʼ��E761: �����ļ� FOL��LOW �� UPP �и�ʽ����E762: FOL��LOW �� UPP ���ַ�������ΧE763: ƴд�ļ�֮����ַ�����ͬE764: û���趨ѡ�� '%s'E765: 'spellfile' û�� %ld ��E766: printf() �IJ������E767: printf() �IJ������E768: �����ļ��Ѵ���: %s (:silent! ǿ��ִ��)E769: %s[ ��ȱ�� ]E76: [ ����E770: ƴд�ļ��д��ڲ�֧�ֵĽ�E771: �ɰ汾��ƴд�ļ�����Ҫ����E772: Ϊ���߰汾�� Vim ��õ�ƴд�ļ�E773: "%s" ������ӳ���ѭ��E774: 'operatorfunc' Ϊ��E775: ��ֵ���ܲ�����E776: û�� location �б�E777: �˴���Ҫ String ���� ListE778: ��������� .sug �ļ�: %sE77: �ļ������E784: ���ܹر����һ�� tab ҳE785: complete() ֻ���ڲ���ģʽ��ʹ��E786: ������ķ�ΧE787: ����ظı�˻����E788: Ŀǰ������༭��Ļ����E78: δ֪�ı��E79: �޷���չͨ��E800: �޷�ʹ�� Arabic: ����ʱû������
E80: д����E81: �ڽű�������ʹ��� <SID>E82: �޷������κλ�������˳�����...E83: �޷����仺�����ʹ���һ�������...E84: û���޸Ĺ��Ļ����E85: û�п�г��Ļ����E86: ����� %ld ������E87: �޷��л����������һ�������E88: �޷��л������ǵ�һ�������E89: ����� %ld ���޸ĵ���δ���� (��� ! ǿ��ִ��)E90: �޷��ͷ����һ�������E91: ѡ�� 'shell' Ϊ��E92: �Ҳ�������� %ldE93: �ҵ���ֹһ�� %sE94: û��ƥ��Ļ���� %sE95: ���л����ʹ�ø����E96: ���ܱȽ�(diff) %ld �����ϵĻ����E97: �޷����� diffE98: �޷���ȡ diff ����E99: ��ǰ��������� diff ģʽ����: �༭�ļ����´��ڱ༭�ļ��� Vim �༭(&V)�ö� Vim �༭(&M)�õ�ǰ�� Vim �༭ - �õ��� Vim �༭(&V)�� Vim �༭ѡ�е��ļ�����:�������ű��ļ������������: ������Ҫʹ�õĽ����ļ���� (0 �˳�): ��������һ��: ������ģʽ������ "cont" ������С����� Ex ģʽ������ "visual" �ص����ģʽ������������ж���������ʧ��: ���� gvim �Ƿ���·���У����� %s ʱ�������:��������ʱ�ڴ����: %d �ֽ��쳣�����쳣: %s����쳣: %s����쳣: %s�׳��쳣: %sִ�� %s%s �� %d �У��˴���Ҫ MAP ���%s �� %d �У��˴���Ҫ REP(SAL) ���%s �� %d �У��˴���Ҫ Y �� N: %s�ⲿ����:
%s �� %d �У���ʹ�ñ�־���� FLAG: %s�ļ� "%s" �������ļ��ѱ����ļ���������Һ��滻�ַ��� (ʹ�� '\\' ������ '\')������һ��(&N)������һ�������ַ��� (ʹ�� '\\' ������ '\')���� symbol��������:%s �� %d �У��״��ظ��ĵ���: %s%s �� %d �У���־�������: %s'%s' ���ǹ̶���ȵ�����ѡ����������%ld�Ŀ�Ȳ�������0�����
����0�Ŀ�ȣ�%ld
����0: %s
����1�Ŀ��: %ld

����1: %s
����:ѡ�������������Ч����ļ�: ��ã�Vim �û�������ڸɴ�Ŀ����ͯ���ѵ������βI/O ��������˺��з� ASCII �ַ��� %d �����ʣ��� %s ������˺��з� ASCII �ַ��� %d ��������Ч���ļ��%s �� %d �У���Ч�ı�־: %s��Ч�ļĴ�����Ч�����ַ����뷨(_M)�ж����ж�: ���ж���Ч�IJ��ָ������Ч������%s �� %d �У���Ч������: %s%s �� %d �У�FLAG ��ֵ��Ч: %s�������벻ƥ�䣡���һ���������ӷ�ʽ: ƥ���Сдƥ������Ĵ��Ϣ���������Ϣά����: Yuheng Xie <elephant@linux.net.cn>ȱ�� '>'%s ��ȱ�� FOL/LOW/UPP ��%s ��ȱ�� SOFO%s ���޸��� ���:��Ҫ %s �汾 %ld
��Ҫ Amigados �汾 2.04 ����
NetBeans ������δ�޸ĵĻ����д���½���ǩ�������û�ж����κ��﷨���Ҳ����дû�ж���ϵ�û�� displayû�� display: ���ͱ��ʽʧ�ܡ�
û�а����ļ��Ҳ���ӳ��û���趨����ڹ�괦û��ƥ�䣬������һ��û��ƥ����Զ�����޽����ļ�û��Ҫ��ӡ�������޷�����������Ҳ����û��Զ������δʹ���޿ɳ��soundfolding ��ĵ����: %ldȷ�����ļ��Ի����򿪱�ǩ...�򿪱�ǩ...�� X display ʧ���� X display ��ʱ�� X display ��ʱ %ld ��ԭʼ�ļ� "%s"�����Ѵ��ڵ��ļ� "%s" ���� %d ҳNetBeans �������������д��Patch �ļ�·��̫����·��:ÿ�ж�ƥ����ʽ: %s�Ҳ���ģʽ��� soundfolding�����밴 ENTER ������������ӡ�����ѱ����͡��Ѵ�ӡ: %s��ӡ '%s'��ӡ��ֹ��ڴ�ӡ�� %d ҳ (%d%%)��ѯһ��ģʽ������ȡ�����ļ� %s ������ȡƴд�ļ�������ȡ�ֵ��ļ� %s �����ӱ�׼����ȡ...��ȡƴд�ļ� "%s"��ȡ viminfo �ļ� "%s"%s%s%s��ȡ�����ļ� %s �����ָ���ϡ���ȷ��һ������������������滻ȫ���滻(&A)ȫ���滻�滻Ϊ:�ָ��ָ�: �������Ŀ�ָ�: ���ļ��ָ�: �Ӷ��������� Vi ����ģʽ��ģʽ���У��������ּ�����SNiFF+ Ŀǰ���Ϊ�����ļ��Ի��������ض�������Ự�����趨������ͼ���ı䱣�浽 "%s" �����ɨ�� dictionary: %s���Ұ����ļ�: %sɨ���ǩ.���ɨ��: %s���������: �޷���ȡ����ͼ��ļ��δ�С��ڲ��� "%s"��ڲ��� "%s"���� "%s" �����Ұ������ļ� %s���� tag �ļ� %s������Ϣ�� ":help E312"��һ��˵��� ":help W11"��һ��˵��� ":help W12"��һ��˵��� ":help W16"ѡ��Ŀ¼�Ի���ѡ��� %s%ld/%ld ��; %ld/%ld ����; %ld/%ld ���ֽ�ѡ��� %s%ld/%ld ��; %ld/%ld ����; %ld/%ld ���ַ�; %ld/%ld ���ֽ�ѡ�����͵���ӡ��������ʾ base class of:��ʾ��ι�ϵ�����ʾ restricted ��ι�ϵ�� class��ʾ������ʾ�ļ�: ��ʾ�����ǵij�Ա�����ʾԴ����: ��ʾ����Ϣ%s �� Signs:�ߴ�:Sniff: д����󡣽��������Ǹ���Ҳ�������ļ� "%s"��Ǹ��û�н�����Ǹ��ֻ�� %ld �������Ǹ����������: �޷����� Perl �⡣ִ�� Vim �ű���� Vim �Ŀ�������ջ��С������:�����ļ� "�����ļ� "%s" �Ѵ��ڣ�ȷʵҪ�����������ļ��Ѵ��ڣ��ҵ������ļ�:Tab ҳ %d˺�´˲˵����� X display ʧ����л�ѡ�� Vim���ļ������� Ψһƥ���� Vim ����ʱû�м��� diff ������ cscope ��֧�ַָ�ڡ�
�л�ʵ��/����"+command"��"-c command" �� "--cmd command" �������̫����ϱ�־�༭�������̫���ӳ�ǰ׺̫���ӳ�ǰ׺��/����ϱ�־%s �� %d �У�̫�����: %s�����������: %d%s �� %d �У�����ĺ���ַ�: %s����  :quit<Enter>  �˳� Vim��������ֻ����� (<Enter> ȡ�): �޷���ȡ�� 0: �޷�ע����������Ҳ�������� %ldδ֪δ֪��ѡ����%s �� %d �У�����ʶ��ı�־: %s%s �� %d �У��޷�ʶ����ظ�����: %sδ������ʹ�� Vim 3.0��
ʹ�� CUT_BUFFER0 ��ȡ����ѡ��ʹ�ý����ļ� "%s"VIM - ע��VIM - ���Һ��滻...VIM - ����...VIM - Vi IMprovedVIM ����VIM: ���ܴ򿪴���!
����� $PATH ���Ҳ��� VIMRUN.EXE��
�ⲿ���ִ����Ϻ󽫲�����ͣ��
��һ��˵��� :help win32-vimrunVim - ����ѡ���Vim E458: �޷�������ɫ���ijЩ��ɫ���ܲ��ȷVim ����Vim �Ի���Vim �Ի���...Vim ����Vim ����: ~aVim ����ֵ: %d
Vim �ǿ����ɷַ��Ŀ���Դ������Vim: ���ص� %s �¼�
Vim: ���ص�����ź�(deadly signal)
Vim: ���ص�����ź�(deadly signal) %s
Vim: ˫���źţ��˳���
Vim: �������˳���...
Vim: ����: �޷��� NetBeans ���� gvim
Vim: �����
Vim: ����ڱ�����شݻ�
Vim: �ӱ�׼����ȡ...
Vim: �ӻỰ�����յ� "die" ����
Vim: ����: ���벻������ն�(����)
Vim: ����: �����ǵ��ն�(�Ļ)
Vim: ��ڱ����ļ�����
W10: ����: ����޸�һ��ֻ���ļ�W11: ����: �༭��ʼ���ļ� "%s" �ѱ䶯W12: ����: �ļ� "%s" �ѱ䶯�������� Vim �еĻ����Ҳ�ѱ䶯W13: ����: �༭��ʼ���ļ� "%s" �ѱ�����W14: ����: �ļ������W15: ����: ������зָ����������� ^MW16: ����: �༭��ʼ���ļ� "%s" ��ģʽ�ѱ䶯W17: Arabic ��Ҫ UTF-8����ִ�� ':set encoding=utf-8'W18: ����к�����Ч�ַ�����: ���ļ��Զ�����ѷ���䶯����������: ��⵽ Windows 95/98/ME��������: �Ҳ�������б� "%s.%s.spl" or "%s.ascii.spl"����: ����ؽ������������ (�����Զ����)����: ͬʱָ���� compounding �� NOBREAK����: ��� %s ��֧������: ����ն˲�����ʾ�����ڴ��ļ� "����λ��: X %d, Y %d�� %s �����˵�����һ�еĴ��� %s ��ɾ���˵���Ҫд�벿���ļ���д��ƴд�ļ� %s ����д�뽨���ļ� %s ����д�� viminfo �ļ� "%s"%s �� %d �У������ CHECKCOMPOUNDPATTERN ֵ: %s%s �� %d �У������ COMPOUNDMIN ֵ: %s%s �� %d �У������ COMPOUNDSYLMAX ֵ: %s%s �� %d �У������ COMPOUNDWORDMAX ֵ: %sXSMP ICE ���Ӽ���ʧ��XSMP SmcOpenConnection ����ʧ��: %sXSMP ���� save-yourself ����XSMP ��ʧ�˵� ICE �����XSMP �����Xref ��Xref ��˭�ο�:Xref �ο���Xref ��˭ʹ��:�����Ϊ��[�� %ld ��ת������][ȱ�� CR]'[��ɾ��][�豸][�ļ�����][���][�� %ld ����Ч�ַ�][���һ�в����][Location �б�][�ҵ� NL][δת��][��Ŀ¼][���ļ�][���ļ�][��][δ��][���޸ĵ���δ����]
[δ�༭][Ȩ�޲���][Ԥ��][Quickfix �б�][������][ֻ��][������][����] �ܹ� re/malloc(): %lu���ܹ� free()': %lu

[��ת��][�Ѽ���][dos ��ʽ][dos][fifo/socket][fifo][�ļ� ..]       �༭ָ�����ļ�[���зָ�][mac ��ʽ][mac][noeol][ֻ��][socket][unix ��ʽ][unix]after������ diff ��ԭ�ļ��Ƚ��Լ���Ƿ��иı�)
��ͼ����ѱ�ɾ���Ļ������ͼ����ѱ�ɾ���Ĵ����Զ���� %sbefore����� %ld �еĿ������ 1 �еĿ��������Ч�� ά���� Bram Moolenaar ��inputrestore() �ĵ��ô������ inputsave()���� %s����ɾ�� OutputObject �����޷���ȡ 'charconvert' ���������л����̨(console)ģʽ !?
�޷����������/�������: ���󽫱�ɾ���޷�ɾ�����޷���ȡ���޷��������޷�����/׷�������ܴ��޷�ע��ص����: �����/�����ѱ�ɾ���޷�ע��ص����: �Ҳ��������/��������޷��滻���޷����泷���Ϣ�޷��趨���޷����ƣ���Ϊɾ���з���ı��з���ı��ر����: %s�������� %s �м������ִ�� "%s"�޷��򿪻����cs_create_connection ִ��ʧ��cs_create_connection: fdopen fr_fp ʧ��cs_create_connection: fdopen to_fp ʧ��cscope ���:
cscope ���� %s �ѹر����λ���ڻ������Ĭ��ֵΪ: 'ɾ���˿� 1��dlerror = "%s"���ļ��ȷд��ǰ�����˳��༭�������������б� %d / %d���� %d ����������ʱû�����ñ��ʽ�б�ȥ���ļ�
�� / ������ / ��
���ִ�� %s�ͷ�� %ld ��gvimext.dll ���������ص�ѡ����·�� ---
��Ч��������Ч�Ļ��������Ч�ı��ʽ��Ч�ı�������Ŀ¼�����ļ������ļ����д���豸ֻ�� (��� ! ǿ��ִ��)�����ж��� %4ld ��:�� %6d �У��� %6d ������ - %s�� %ld ���� %ld / %ld --%d%%-- �� �� %ld ��: %s�� %ld ��: ����ִ�� "%s"�� %ld ��: ִ�� "%s"�б�ȥ���кų�����Χ�кų�����Χע�û���趨���ƥ�� %dƥ�� %d / %d���mch_get_shellsize: �������̨(console)??
�˵�  Edit->Global Settings->Toggle Insert Mode  �˵�  Help->Orphans           �鿴˵�           �˵�  Help->Sponsor/Register  �鿴˵�           ��Сmodeline�б������б��������� shell
��û�� cscope ����
�Ҳ���ƥ������޴˻�����޴˴���û��ͬ��δ�������� sandbox ��ʹ���Ҳ��� �� 'runtimepath' ���Ҳ��� "%s"��δʵ��  ���    �ı�  ʱ��pe_line_count Ϊ��pre-vimrc ������� Netbeans �׽��ֶ�ȡֻ��������¼���滻Ϊ %s (y/n/a/q/l/^E/^Y)���� %d �� �� %d ���Ѳ��ҵ��ļ���β���ٴӿ�ͷ��������Ѳ��ҵ��ļ���ͷ���ٴӽ�β�������shell Shell ���� %d�ػ�softspace ��������ִ�� "%s"stack_idx Ӧ���� 0�ַ������ܰ�������(NL)C���ע��ͬ����ͬ����ʼ�ҵ� tag: %d / %d%stag ��� %s �� %s����  :help cp-default<Enter> �鿴���˵�    ����  :help iccf<Enter>       �鿴˵�        ����  :help register<Enter>   �鿴˵�        ����  :help sponsor<Enter>    �鿴˵�        ����  :help version8<Enter>   �鿴�汾��Ϣ    ����  :help windows95<Enter>  �鿴���˵�    ����  :help<Enter>  ��  <F1>  �鿴���߰��    ����  :q<Enter>               �˳�            ����  :set nocp<Enter>        �ָ�Ĭ�ϵ� Vim  δ֪�ı�־: δ֪��ѡ��δ֪�� vim ѡ���汾 vim ����������������Χ������Ч��(��ͳ)ͼ�ν��档�� Carbon ͼ�ν��档�� Cocoa ͼ�ν��档�� GTK ͼ�ν��档�� GTK-GNOME ͼ�ν��档�� GTK2 ͼ�ν��档�� GTK2-GNOME ͼ�ν��档��ͼ�ν��档�� Photon ͼ�ν��档�� X11-Athena ͼ�ν��档�� X11-Motif ͼ�ν��档�� X11-neXtaw ͼ�ν��档��ͼ�ν��档writelines() ��Ҫ�ַ����б�����PK�j�Z�`-55vim80/lang/menu_zh_tw.utf-8.vimnu�[���" Menu Translations:	Traditional Chinese
" Translated By:	Hung-Te Lin	<piaip@csie.ntu.edu.tw>
" Last Change:		2012 May 01

" {{{ Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
" }}}

let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" {{{ Help menu: complete
menutrans &Help			輔助說明(&H)
" ------------------------------------------------------------------------
menutrans &Overview<Tab><F1>	說明文件總覽(&O)<Tab><F1>
menutrans &User\ Manual		使用者手冊(&U)
menutrans &How-to\ links	如何作\.\.\.(&H)
menutrans &GUI			圖型界面(&G)
menutrans &Credits		感謝(&C)
menutrans Co&pying		版權(&P)
menutrans &Sponsor/Register		贊助/註冊(&S)
menutrans O&rphans		拯救孤兒(&R)
" ------------------------------------------------------------------------
menutrans &Version		程式版本資訊(&V)
menutrans &About		關於\ Vim(&A)
" }}}

" {{{ File menu: complete
menutrans &File				檔案(&F)
" ------------------------------------------------------------------------
menutrans &Open\.\.\.<Tab>:e		開啟(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割視窗並開啟(&L)<Tab>:sp
menutrans &New<Tab>:enew		編輯新檔案(&N)<Tab>:enew
menutrans &Close<Tab>:close		關閉檔案(&C)<Tab>:close
" ------------------------------------------------------------------------
menutrans &Save<Tab>:w			儲存(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	另存新檔(&A)\.\.\.<Tab>:sav
" ------------------------------------------------------------------------
menutrans Split\ &Diff\ with\.\.\.	比較(&Diff)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	執行Patch(&B)\.\.\.
" ------------------------------------------------------------------------
menutrans &Print			列印(&P)
" ------------------------------------------------------------------------
menutrans Sa&ve-Exit<Tab>:wqa		儲存並離開(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			離開(&X)<Tab>:qa
" }}}

" {{{ Edit menu
menutrans &Edit				編輯(&E)
" ------------------------------------------------------------------------
menutrans &Undo<Tab>u			復原(&U)<Tab>u
menutrans &Redo<Tab>^R			取消上次復原(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		重複上次動作(&E)<Tab>\.
" ------------------------------------------------------------------------
menutrans Cu&t<Tab>"+x			剪下(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			複製(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		貼上(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		貼到游標前(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		貼到游標後(&A)<Tab>]p
menutrans &Delete<Tab>x			刪除(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		全選(&S)<Tab>ggvG
" ------------------------------------------------------------------------
menutrans &Find\.\.\.			尋找(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	尋找並取代(&L)\.\.\.
" ------------------------------------------------------------------------
menutrans Settings\ &Window		設定視窗(&W)
menutrans &Global\ Settings		全域設定(&G)
menutrans F&ile\ Settings		設定此檔案(&I)
menutrans C&olor\ Scheme		配色設定(&O)
menutrans &Keymap			鍵盤對應(&K)
    " "{{{ Keymap:
    menutrans None			無
    " }}}
menutrans Select\ Fo&nt\.\.\.		設定字型(&N)\.\.\.
" }}}

" {{{ Edit.FileSettings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!    切換顯示行號(&N)<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!	    切換顯示行尾及TAB(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!	    切換自動折行顯示(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!    切換折行顯示可任意斷句(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!	    切換展開TAB(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!	    切換自動縮排(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!	    切換C語言縮排(&C)<Tab>:set\ cin!
" ------------------------------------------------------------------------
menutrans &Shiftwidth				    縮排寬度(shiftwidth)(&S)
menutrans Soft\ &Tabstop			    軟體模擬TAB(softtabstop)(&T)
menutrans Te&xt\ Width\.\.\.			    文字頁面寬度(textwidth)(&X)\.\.\.
menutrans &File\ Format\.\.\.			    設定檔案格式(對應作業系統)(&F)\.\.\.
" }}}

" {{{ Edit.GlobalSettings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! 切換高亮度搜尋字串(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	     切換忽略大小寫(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!	     切換顯示對應括號(&S)<Tab>:set\ sm!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	     切換傳統Vi相容模式(&O)<Tab>:set\ cp!
menutrans &Context\ lines			     本文前後保留行數(scrolloff)(&C)
menutrans &Virtual\ Edit			     游標任意移動(virtualedit)(&V)
    " {{{ Edit.GlobalSettings.VirtualEdit
    menutrans Never				     不使用
    menutrans Block\ Selection			     區塊選擇時
    menutrans Insert\ mode			     插入模式時
    menutrans Block\ and\ Insert		     區塊與插入模式
    menutrans Always				     一直開啟
    " }}}
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	     切換插入模式(&M)<Tab>:set\ im!
menutrans Search\ &Path\.\.\.			     搜尋路徑(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.			     Tag\ 標籤索引檔案(&G)\.\.\.
" ------------------------------------------------------------------------
menutrans Toggle\ &Toolbar			     切換使用工具列(&T)
menutrans Toggle\ &Bottom\ Scrollbar		     切換使用底端捲動軸(&B)
menutrans Toggle\ &Left\ Scrollbar		     切換使用左端捲動軸(&L)
menutrans Toggle\ &Right\ Scrollbar		     切換使用右端捲動軸(&R)
" }}}

" {{{ Tools menu: complete
menutrans &Tools			工具(&T)
" ------------------------------------------------------------------------
menutrans &Jump\ to\ this\ tag<Tab>g^]	檢索游標處的標籤關鍵字(tag)(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		跳回檢索前的位置(&B)<Tab>^T
menutrans Build\ &Tags\ File		建立標籤索引檔\ Tags(&T)
" ------------------------------------------------------------------------
menutrans &Folding			覆疊(Fold)設定(&F)
    " {{{ Tools.Fold
    menutrans &Enable/Disable\ folds<Tab>zi	    切換使用\ Folding(&E)<Tab>zi
    menutrans &View\ Cursor\ Line<Tab>zv	    檢視此層\ Fold(&V)<Tab>zv
    menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx    只檢視此\ Fold(&W)<Tab>zMzx
    menutrans C&lose\ more\ folds<Tab>zm	    收起一層\ Folds(&L)<Tab>zm
    menutrans &Close\ all\ folds<Tab>zM		    收起所有\ Folds(&C)<Tab>zM
    menutrans O&pen\ more\ folds<Tab>zr		    打開一層\ Folds(&P)<Tab>zr
    menutrans &Open\ all\ folds<Tab>zR		    打開所有\ Folds(&O)<Tab>zR
    menutrans Fold\ Met&hod			    Folding\ 方式(&H)
	" {{{ Tools.Fold.Method
	menutrans M&anual		手動建立(&A)
	menutrans I&ndent		依照縮排(&N)
	menutrans E&xpression		自訂運算式(&X)
	menutrans S&yntax		依照語法設定(&Y)
	menutrans &Diff			Diff(&D)
	menutrans Ma&rker		標記(Marker)(&R)
	" }}}
    " ------------------------------------------------------------------------
    menutrans Create\ &Fold<Tab>zf		    建立\ Fold(&F)<Tab>zf
    menutrans &Delete\ Fold<Tab>zd		    刪除\ Fold(&D)<Tab>zd
    menutrans Delete\ &All\ Folds<Tab>zD	    刪除所有\ Fold(&A)<Tab>zD
    " ------------------------------------------------------------------------
    menutrans Fold\ column\ &width		    設定\ Fold欄寬(&W)
    " }}}
menutrans &Diff				Diff(&D)
    " {{{ Tools.Diff
    menutrans &Update			更新(&U)
    menutrans &Get\ Block		取得區塊(&G)
    menutrans &Put\ Block		貼上區塊(&P)
    " }}}
" ------------------------------------------------------------------------
menutrans &Make<Tab>:make		執行\ Make(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		列出編譯錯誤(&E)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	列出所有訊息(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		下一個編譯錯誤處(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	上一個編譯錯誤處(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	檢視舊錯誤列表(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	檢視新錯誤列表(&E)<Tab>:cnew
menutrans Error\ &Window		錯誤訊息視窗(&W)
    " {{{ Tools.ErrorWindow
    menutrans &Update<Tab>:cwin		更新(&U)<Tab>:cwin
    menutrans &Open<Tab>:copen		開啟(&O)<Tab>:copen
    menutrans &Close<Tab>:cclose	關閉(&C)<Tab>:cclose
    " }}}
menutrans &Set\ Compiler		設定編譯器Compiler(&S)
" ------------------------------------------------------------------------
menutrans &Convert\ to\ HEX<Tab>:%!xxd	轉換成16進位碼(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	從16進位碼轉換回文字(&R)<Tab>:%!xxd\ -r
" }}}

" {{{ Syntax menu: compete
menutrans &Syntax		    語法效果(&S)
" ------------------------------------------------------------------------
menutrans &Show\ filetypes\ in\ menu	顯示所有可用檔案格式(&S)
menutrans Set\ '&syntax'\ only	    只使用\ 'syntax'(&S)
menutrans Set\ '&filetype'\ too	    使用\ 'syntax'+'filetype'(&F)
menutrans &Off			    關閉效果(&O)
menutrans &Manual		    手動設定(&M)
menutrans A&utomatic		    自動設定(&U)
menutrans on/off\ for\ &This\ file  只切換此檔的效果設定(&T)
" ------------------------------------------------------------------------
menutrans Co&lor\ test		    色彩顯示測試(&L)
menutrans &Highlight\ test	    語法效果測試(&H)
menutrans &Convert\ to\ HTML	    轉換成\ HTML\ 格式(&C)
" }}}

" {{{ Buffers menu: complete
menutrans &Buffers			緩衝區(&B)
" ------------------------------------------------------------------------
menutrans &Refresh\ menu		更新(&R)
menutrans &Delete			刪除(&D)
menutrans &Alternate			切換上次編輯緩衝區(&A)
menutrans &Next				下一個(&N)
menutrans &Previous			前一個(&P)
" ------------------------------------------------------------------------
" menutrans [No\ file]			[無檔案]
" }}}

" {{{ Window menu: complete
menutrans &Window			視窗(&W)
" ------------------------------------------------------------------------
menutrans &New<Tab>^Wn			開新視窗(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		分割視窗(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	分割到#(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	垂直分割(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	檔案總管式分割(&X)
" ------------------------------------------------------------------------
menutrans &Close<Tab>^Wc		關閉視窗(&C)<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	關閉其它視窗(&O)<Tab>^Wo
" ------------------------------------------------------------------------
menutrans Move\ &To			移至(&T)
    " {{{ Window.MoveTo
    menutrans &Top<Tab>^WK		頂端(&T)<Tab>^WK
    menutrans &Bottom<Tab>^WJ		底端(&B)<Tab>^WJ
    menutrans &Left\ side<Tab>^WH	左邊(&L)<Tab>^WH
    menutrans &Right\ side<Tab>^WL	右邊(&R)<Tab>^WL
    " }}}
menutrans Rotate\ &Up<Tab>^WR		上移視窗(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		下移視窗(&D)<Tab>^Wr
" ------------------------------------------------------------------------
menutrans &Equal\ Size<Tab>^W=		所有視窗等高(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		最大高度(&M)<Tab>^W
menutrans M&in\ Height<Tab>^W1_		最小高度(&I)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		最大寬度(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		最小寬度(&H)<Tab>^W1\|
" }}}

" {{{ The popup menu: complete
menutrans &Undo				復原(&U)
" ------------------------------------------------------------------------
menutrans Cu&t				剪下(&T)
menutrans &Copy				複製(&C)
menutrans &Paste			貼上(&P)
menutrans &Delete			刪除(&D)
" ------------------------------------------------------------------------
menutrans Select\ Blockwise		Blockwise式選擇
menutrans Select\ &Word			選擇單字(&W)
menutrans Select\ &Line			選擇行(&L)
menutrans Select\ &Block		選擇區塊(&B)
menutrans Select\ &All			全選(&A)
" }}}

" {{{ The GUI toolbar: complete
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		開啟檔案
    tmenu ToolBar.Save		儲存目前編輯中的檔案
    tmenu ToolBar.SaveAll	儲存全部檔案
    tmenu ToolBar.Print		列印
" ------------------------------------------------------------------------
    tmenu ToolBar.Undo		復原上次變動
    tmenu ToolBar.Redo		取消上次復原動作
" ------------------------------------------------------------------------
    tmenu ToolBar.Cut		剪下至剪貼簿
    tmenu ToolBar.Copy		複製到剪貼簿
    tmenu ToolBar.Paste		由剪貼簿貼上
" ------------------------------------------------------------------------
    tmenu ToolBar.Find		尋找...
    tmenu ToolBar.FindNext	找下一個
    tmenu ToolBar.FindPrev	找上一個
    tmenu ToolBar.Replace	取代...
" ------------------------------------------------------------------------
    tmenu ToolBar.LoadSesn	載入 Session
    tmenu ToolBar.SaveSesn	儲存目前的 Session
    tmenu ToolBar.RunScript	執行 Vim 程式檔
" ------------------------------------------------------------------------
    tmenu ToolBar.Make		執行 Make
    tmenu ToolBar.Shell		開啟一個命令列視窗 DosBox
    tmenu ToolBar.RunCtags	執行 ctags
    tmenu ToolBar.TagJump	跳到目前游標位置的 tag
    tmenu ToolBar.Help		Vim 輔助說明
    tmenu ToolBar.FindHelp	搜尋 Vim 說明文件
  endfun
endif
" }}}

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:foldmethod=marker:nowrap:foldcolumn=2:foldlevel=1
PK�j�ZY$JJvim80/lang/menu_en_gb.utf-8.vimnu�[���" Menu Translations:	UK English

source <sfile>:p:h/menu_en_gb.latin1.vim
PK�j�Zz�lu3u3 vim80/lang/menu_sl_si.cp1250.vimnu�[���" Menu Translations:	Slovenian / Slovensko
" Maintainer:		Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By:	Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change:		2016 Oct 17
" vim:set foldmethod=marker tabstop=8:

" TODO: add/check all '&'s

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp1250

" {{{ FILE / DATOTEKA
menutrans &File				&Datoteka
menutrans &Open\.\.\.<Tab>:e		&Odpri\ \.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Odpri\ de&ljeno\ \.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Odpri\ v\ zavi&hku\ \.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Nova<Tab>:enew
menutrans &Close<Tab>:close		&Zapri<Tab>:close
menutrans &Save<Tab>:w			&Shrani<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Shrani\ &kot\ \.\.\.<Tab>:sav
menutrans &Print			Na&tisni
menutrans Sa&ve-Exit<Tab>:wqa		Shrani\ in\ &kon�aj<Tab>:wqa
menutrans E&xit<Tab>:qa			&Izhod<Tab>:qa

if has("diff")
    menutrans Split\ &Diff\ with\.\.\.	Primerjaj\ z\ (di&ff)\ \.\.\.
    menutrans Split\ Patched\ &By\.\.\.	&Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA

" {{{ EDIT / UREDI
menutrans &Edit				&Uredi
menutrans &Undo<Tab>u			&Razveljavi<Tab>u
menutrans &Redo<Tab>^R			&Obnovi<Tab>^R
menutrans Rep&eat<Tab>\.		Po&novi<Tab>\.
menutrans Cu&t<Tab>"+x			&Izre�i<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopiraj<Tab>"+y
menutrans &Paste<Tab>"+gP		&Prilepi<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vrini\ pred<Tab>[p
menutrans Put\ &After<Tab>]p		Vrini\ za<Tab>]p
menutrans &Delete<Tab>x			Iz&bri�i<Tab>x
menutrans &Select\ all<Tab>ggVG		Izberi\ vse<Tab>ggVG
menutrans &Find\.\.\.			Po&i��i\ \.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Poi��i\ in\ &zamenjaj\ \.\.\.

" [-- SETTINGS --]
menutrans Settings\ &Window				Nastavitve\ \.\.\.
menutrans Startup\ &Settings				Za�etne\ nastavitve
menutrans &Global\ Settings				&Globalne\ nastavitve

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Vklju�i/izklju�i\ poudarjanje\ iskanega\ niza<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Vklju�i/izklju�i\ lo�evanje\ velikih\ in\ malih\ �rk<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Vklju�i/izklju�i\ kratek\ skok\ na\ pripadajo�i\ oklepaj<Tab>:set\ sm!

menutrans &Context\ lines				�t\.\ vidnih\ vrstic\ pred/za\ kurzorjem

menutrans &Virtual\ Edit				Dovoli\ polo�aj\ kazal�ka,\ kjer\ ni\ besedila
menutrans Never						Nikoli
menutrans Block\ Selection				Le\ med\ izbiranjem\ bloka
menutrans Insert\ mode					Le\ v\ na�inu\ za\ pisanje
menutrans Block\ and\ Insert				Pri\ obojem
menutrans Always					Vedno
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Vklju�i/izklju�i\ na�in\ za\ pisanje<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Vklju�i/izklju�i\ zdru�ljivost\ z\ Vi-jem<Tab>:set\ cp!

menutrans Search\ &Path\.\.\.				Pot\ za\ iskanje\ \.\.\.
menutrans Ta&g\ Files\.\.\.				Ta&g-datoteke\.\.\.

menutrans Toggle\ &Toolbar				Poka�i/skrij\ Orodja
menutrans Toggle\ &Bottom\ Scrollbar			Poka�i/skrij\ spodnji\ drsnik
menutrans Toggle\ &Left\ Scrollbar			Poka�i/skrij\ levi\ drsnik
menutrans Toggle\ &Right\ Scrollbar			Poka�i/skrij\ desni\ drsnik

" Edit/File Settings
menutrans F&ile\ Settings				&Nastavitve\ datoteke

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Poka�i/skrij\ �tevilke\ vrstic<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Poka�i/skrij\ nevidne\ znake<Tab>:set\ list! " space/tab
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Vklju�i/izklju�i\ prelome\ vrstic<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Vklju�i/izklju�i\ prelome\ vrstic\ med\ besedami<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Vklju�i/izklju�i\ zamenjavo\ tabulatorjev\ s\ presledki<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Vklju�i/izklju�i\ avtomatsko\ zamikanje\ vrstic<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Vklju�i/izklju�i\ C-jevski\ na�in\ zamikanja\ vrstic<Tab>:set\ cin!

" other options
menutrans &Shiftwidth					�irina\ zamika\ vrstic
menutrans Soft\ &Tabstop				�irina\ &tabulatorja
menutrans Te&xt\ Width\.\.\.				�irina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\.				Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme				&Barvna\ shema\ \.\.\.
menutrans &Keymap					Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\.				Pisava\ \.\.\.
" }}} EDIT / UREDI

" {{{  TOOLS / ORODJA
menutrans &Tools					O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^]			&Sko�i\ k\ tej\ zna�ki<Tab>g^]
menutrans Jump\ &back<Tab>^T				Sko�i\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File				Napravi\ datoteke\ z\ zna�kami\ (tag)
if has("spell")
    menutrans &Spelling					�rkovalnik
    menutrans &Spell\ Check\ On				&Vklju�i
    menutrans Spell\ Check\ &Off			&Izklju�i
    menutrans To\ &Next\ error<Tab>]s			K\ &naslednji\ napaki<Tab>]s
    menutrans To\ &Previous\ error<Tab>[s		K\ &prej�nji\ napaki<Tab>[s
    menutrans Suggest\ &Corrections<Tab>z=		Predlagaj\ popravek<Tab>z=
    menutrans &Repeat\ correction<Tab>:spellrepall	Po&novi\ popravke\ na\ vseh\ besedah<Tab>:spellrepall
    menutrans Set\ language\ to\ "en"			Angle�ki\ "en"
    menutrans Set\ language\ to\ "en_au"		Angle�ki\ "en_au"
    menutrans Set\ language\ to\ "en_ca"		Angle�ki\ "en_ca"
    menutrans Set\ language\ to\ "en_gb"		Angle�ki\ "en_gb"
    menutrans Set\ language\ to\ "en_nz"		Angle�ki\ "en_nz"
    menutrans Set\ language\ to\ "en_us"		Angle�ki\ "en_us"
    menutrans Set\ language\ to\ "sl"			Slovenski\ "sl"
    menutrans Set\ language\ to\ "de"			Nem�ki\ "de"
    menutrans Set\ language\ to\ 			�rkovalnik:\
    menutrans &Find\ More\ Languages			&Ostali\ jeziki
endif
if has("folding")
  menutrans &Folding					Zvijanje\ kode
  " open close folds
  menutrans &Enable/Disable\ folds<Tab>zi		Omogo�i/onemogo�i\ zvijanje<Tab>zi " Omogo�i/onemogo�i\ zavihke
  menutrans &View\ Cursor\ Line<Tab>zv			Poka�i\ vrstico\ s\ kazal�kom<Tab>zv " kjer je kazalec
  menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Poka�i\ samo\ vrstico\ s\ kazal�kom<Tab>zMzx
  menutrans C&lose\ more\ folds<Tab>zm			Zvij\ naslednji\ nivo<Tab>zm " Zapri\ ve�\ zavihkov
  menutrans &Close\ all\ folds<Tab>zM			Zvij\ vso\ kodo<Tab>zM " Zapri\ vse\ zavihke
  menutrans O&pen\ more\ folds<Tab>zr			Razvij\ en\ nivo<Tab>zr " Odpri\ ve�\ zavihkov
  menutrans &Open\ all\ folds<Tab>zR			Razvij\ vso\ kodo<Tab>zR " Odpri\ vse\ zavihke
  " fold method
  menutrans Fold\ Met&hod				Kriterij\ za\ zvijanje " Ustvarjanje\ zavihkov
  menutrans M&anual					&Ro�no
  menutrans I&ndent					Glede\ na\ &poravnavo
  menutrans E&xpression					Z\ &izrazi\ (foldexpr)
  menutrans S&yntax					Glede\ na\ &sintakso
  menutrans &Diff					Razlike\ (&diff)
  menutrans Ma&rker					Z\ &markerji/ozna�bami
  " create and delete folds
  " TODO accelerators
  menutrans Create\ &Fold<Tab>zf			Ustvari\ zvitek<Tab>zf
  menutrans &Delete\ Fold<Tab>zd			Izbri�i\ zvitek<Tab>zd
  menutrans Delete\ &All\ Folds<Tab>zD			Izbri�i\ vse\ zvitke<Tab>zD
  " moving around in folds
  menutrans Fold\ column\ &width			�irina\ drevesa\ z\ zvitki
endif  " has folding

if has("diff")
  menutrans &Diff					Razlike\ (&Diff)
  menutrans &Update					&Posodobi<Tab>
  menutrans &Get\ Block					&Sprejmi\ (spremeni\ to\ okno) " XXX: check if translation is OK
  menutrans &Put\ Block					&Po�lji\ (spremeni\ drugo\ okno)
endif

menutrans &Make<Tab>:make				Napravi\ (&make)<Tab>:make
menutrans &List\ Errors<Tab>:cl				Poka�i\ napake<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!			Poka�i\ sporo�ila<Tab>:cl!
menutrans &Next\ Error<Tab>:cn				K\ &naslednji\ napaki<Tab>:cn
menutrans &Previous\ Error<Tab>:cp			K\ &prej�nji\ napaki<Tab>:cp
menutrans &Older\ List<Tab>:cold			K\ &starej�emu\ seznamu\ napak<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew			K\ &novej�emu\ seznamu\ napak<Tab>:cnew

menutrans Error\ &Window				Okno\ z\ napakami
menutrans &Update<Tab>:cwin				&Posodobi<Tab>:cwin
menutrans &Open<Tab>:copen				&Odpri<Tab>:copen
menutrans &Close<Tab>:cclose				&Zapri<Tab>:cclose

menutrans &Set\ Compiler				Nastavi\ &prevajalnik
menutrans Se&T\ Compiler				Nastavi\ &prevajalnik " bug in original translation?

menutrans &Convert\ to\ HEX<Tab>:%!xxd			Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r			Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}}  TOOLS / ORODJA

" {{{ SYNTAX / BARVANJE KODE
menutrans &Syntax				&Barvanje\ kode
menutrans &Show\ filetypes\ in\ menu		Podprte\ vrste\ datotek
menutrans Set\ '&syntax'\ only			Samo\ barvanje\ ('&syntax')
menutrans Set\ '&filetype'\ too			Tudi\ obna�anje\ ('&filetype')
menutrans &Off					&Izklju�eno
menutrans &Manual				&Ro�no
menutrans A&utomatic				&Avtomatsko
menutrans on/off\ for\ &This\ file		Vklju�i/izklju�i\ za\ to\ datoteko
menutrans Co&lor\ test				Preizkus\ barv
menutrans &Highlight\ test			Preizkus\ barvanja\ kode
menutrans &Convert\ to\ HTML			Pretvori\ v\ &HTML
" }}} SYNTAX / BARVANJE KODE

" {{{ BUFFERS / MEDPOMNILNIK
menutrans &Buffers					&Medpomnilnik " XXX: ni najbolje: okno bi bolj pristajalo, ampak okno je �e
menutrans &Refresh\ menu				&Osve�i
menutrans Delete					&Bri�i
menutrans &Alternate					&Menjaj
menutrans &Next						&Naslednji
menutrans &Previous					&Prej�nji
menutrans [No\ File]					[Brez\ datoteke]
" }}} BUFFERS / MEDPOMNILNIK

" {{{ WINDOW / OKNO
menutrans &Window			&Okno
menutrans &New<Tab>^Wn			&Novo<Tab>^Wn
menutrans S&plit<Tab>^Ws		Razdeli<Tab>^Ws
menutrans Split\ &Vertically<Tab>^Wv	Razdeli\ navpi�no<Tab>^Ws
menutrans Split\ File\ E&xplorer	Razdeli:\ Vsebina\ mape
menutrans Sp&lit\ To\ #<Tab>^W^^	Razdeli\ v\ #<Tab>^W^^
menutrans &Close<Tab>^Wc		&Zapri<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zapri\ &ostala<Tab>^Wo
menutrans Move\ &To			Premakni
menutrans &Top<Tab>^WK			&Gor<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dol<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Levo<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Desno<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Zavrti\ navzgor<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Zavrti\ navzdol<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		&Enaka\ velikost<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Najvi�je<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Najni�je<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Naj�ir�e<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Najo�je<Tab>^W1\|
" }}} WINDOW / OKNO

" {{{ HELP / POMO�
menutrans &Help			&Pomo�
menutrans &Overview<Tab><F1>	Hitri\ pregled<Tab><F1>
menutrans &User\ Manual		P&riro�nik
menutrans &How-to\ links	&How-to\ kazalo
menutrans &Find\.\.\.		Po&i��i\ \.\.\.	" conflicts with Edit.Find
menutrans &Credits		&Avtorji
menutrans Co&pying		&Licenca
menutrans &Sponsor/Register	Registracija\ in\ &donacije
menutrans O&rphans		&Sirotam
menutrans &Version		&Verzija
menutrans &About		&O\ programu
" }}} HELP / POMO�

" {{{ POPUP
menutrans &Undo				&Razveljavi
menutrans Cu&t				&Izre�i
menutrans &Copy				&Kopiraj
menutrans &Paste			&Prilepi
menutrans &Delete			&Zbri�i
menutrans Select\ Blockwise		Izbiraj\ po\ blokih
menutrans Select\ &Word			Izberi\ &besedo
menutrans Select\ &Sentence		Izberi\ &stavek
menutrans Select\ Pa&ragraph		Izberi\ &odstavek
menutrans Select\ &Line			Izberi\ vrs&tico
menutrans Select\ &Block		Izberi\ b&lok
menutrans &Select\ All<Tab>ggVG		Izberi\ &vse<Tab>ggVG
" }}} POPUP

" {{{ TOOLBAR
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Odpri datoteko
    tmenu ToolBar.Save		Shrani datoteko
    tmenu ToolBar.SaveAll	Shrani vse datoteke
    tmenu ToolBar.Print		Natisni
    tmenu ToolBar.Undo		Razveljavi
    tmenu ToolBar.Redo		Obnovi
    tmenu ToolBar.Cut		Izre�i
    tmenu ToolBar.Copy		Kopiraj
    tmenu ToolBar.Paste		Prilepi
    tmenu ToolBar.Find		Najdi ...
    tmenu ToolBar.FindNext	Najdi naslednje
    tmenu ToolBar.FindPrev	Najdi prej�nje
    tmenu ToolBar.Replace	Najdi in zamenjaj ...
    tmenu ToolBar.LoadSesn	Nalo�i sejo
    tmenu ToolBar.SaveSesn	Shrani trenutno sejo
    tmenu ToolBar.RunScript	Izberi Vim skripto za izvajanje
    tmenu ToolBar.Make		Napravi trenutni projekt (:make)
    tmenu ToolBar.RunCtags	Napravi zna�ke v trenutnem direktoriju (!ctags -R.)
    tmenu ToolBar.TagJump	Sko�i k zna�ki pod kurzorjem
    tmenu ToolBar.Help		Pomo� za Vim
    tmenu ToolBar.FindHelp	I��i v pomo�i za Vim
  endfun
endif
" }}} TOOLBAR

" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[Brez datoteke]"
let g:menutrans_help_dialog = "Vnesite ukaz ali besedo, za katero �elite pomo�:\n\nUporabite predpono i_ za ukaze v na�inu za pisanje (npr.: i_CTRL-X)\nUporabite predpono c_ za ukaze v ukazni vrstici (command-line) (npr.: c_<Del>)\nUporabite predpono ' za imena opcij (npr.: 'shiftwidth')"
let g:menutrans_path_dialog = "Vnesite poti za iskanje datotek.\nImena direktorijev lo�ite z vejico."
let g:menutrans_tags_dialog = "Vnesite imena datotek z zna�kami ('tag').\nImana lo�ite z vejicami."
let g:menutrans_textwidth_dialog = "Vnesite novo �irino besedila (ali 0 za izklop formatiranja): "
let g:menutrans_fileformat_dialog = "Izberite format datoteke"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Prekli�i"
" }}}

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��W��0�0vim80/lang/menu_pl_pl.utf-8.vimnu�[���" Menu Translations:	Polish
" Maintainer:		Mikolaj Machowski ( mikmach AT wp DOT pl )
" Initial Translation:	Marcin Dalecki <martin@dalecki.de>
" Last Change: 17 May  2010

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Help menu
menutrans &Help			Po&moc
menutrans &Overview<Tab><F1>			&Ogólnie<Tab><F1>
menutrans &User\ Manual	Podręcznik\ &użytkownika
menutrans &How-to\ links	&Odnośniki\ JTZ
menutrans &Find\.\.\.	&Szukaj\.\.\.
menutrans &Credits		Po&dziękowania
menutrans Co&pying		&Kopiowanie
menutrans &Sponsor/Register	&Sponsorowanie/Rejestracja
menutrans O&rphans		Sie&roty
menutrans &Version		&Wersja
menutrans &About		o\ &Programie

" File menu
menutrans &File				&Plik
menutrans &Open\.\.\.<Tab>:e		&Otwórz\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otwórz\ z\ &podziałem\.\.\.<Tab>:sp
menutrans &New<Tab>:enew       &Nowy<Tab>:enew
menutrans &Close<Tab>:close		&Zamknij<Tab>:close
menutrans &Save<Tab>:w			Za&pisz<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Zapisz\ &jako\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	Podziel\ na\ diff-a\ między\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Podziel\ łatane\ przez\.\.\.
menutrans &Print			&Drukuj
menutrans Sa&ve-Exit<Tab>:wqa		W&yjście\ z\ zapisem<Tab>:wqa
menutrans E&xit<Tab>:qa			&Wyjście<Tab>:qa
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otwórz\ &kartę\.\.\.<Tab>:tabnew

" Edit menu
menutrans &Edit				&Edycja
menutrans &Undo<Tab>u			&Cofnij<Tab>u
menutrans &Redo<Tab>^R			&Ponów<Tab>^R
menutrans Rep&eat<Tab>\.		P&owtórz<Tab>\.
menutrans Cu&t<Tab>"+x			W&ytnij<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopiuj<Tab>"+y
menutrans &Paste<Tab>"+gP		&Wklej<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Wstaw\ p&rzed<Tab>[p
menutrans Put\ &After<Tab>]p		Wstaw\ p&o<Tab>]p
menutrans &Select\ All<Tab>ggVG		Z&aznacz\ całość<Tab>ggVG
menutrans &Find\.\.\.			&Szukaj\.\.\.
menutrans &Find<Tab>/			&Szukaj<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	&Zamień\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	&Zamień<Tab>:%s
menutrans Find\ and\ Rep&lace		&Zamień
menutrans Find\ and\ Rep&lace<Tab>:s	&Zamień<Tab>:s
menutrans Options\.\.\.			Opcje\.\.\.
menutrans Settings\ &Window		Ustawienia
menutrans &Global\ Settings		Ustawienia\ &globalne
menutrans Startup\ &Settings	Ustawienia\ &startowe
menutrans F&ile\ Settings		Ustawienia\ dla\ pliku
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			&Numerowanie\ wierszy<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!					Tryb\ &listowania<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			Za&wijanie\ wierszy<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!			Łamanie\ wie&rsza<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!			Rozwijani&e\ tabulatorów<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!			&Automatyczne\ wcięcia<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!			Wcięcia\ &C<Tab>:set\ cin!
menutrans &Shiftwidth				&Szerokość\ wcięcia
menutrans Te&xt\ Width\.\.\.			Długość\ linii\.\.\.
menutrans &File\ Format\.\.\.			&Format\ pliku\.\.\.
menutrans Soft\ &Tabstop				Rozmiar\ &tabulacji
menutrans C&olor\ Scheme		Zestawy\ kolorów
menutrans &Keymap			Układy\ klawiatury
menutrans None				żaden
menutrans accents			akcenty
menutrans hebrew			hebrajski
menutrans hebrewp			hebrajski\ p
menutrans russian-jcuken		rosyjski-jcuken
menutrans russian-jcukenwin		rosyjski-jcukenwin

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Podświetlanie\ &wzorców<Tab>:set\ hls!

menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	&Ignorowanie\ wielkości<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		&Pokazywanie\ pasujących<Tab>:set\ sm!

menutrans &Context\ lines	Wiersze\ &kontekstowe
menutrans &Virtual\ Edit	Edycja\ &wirtualna

menutrans Never			Nigdy
menutrans Block\ Selection	Zaznaczanie\ blokowe
menutrans Insert\ mode		Tryb\ wprowadzania
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Tryb\ zg&odności\ z\ Vi<Tab>:set\ cp!
menutrans Block\ and\ Insert	Blokowe\ i\ wprowadzanie
menutrans Always		Zawsze

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	Tryb\ wprowadzania<Tab>:set\ im!
menutrans Search\ &Path\.\.\.	Scieżka\ poszukiwania\.\.\.
menutrans Ta&g\ Files\.\.\.	Pliki\ tagów\.\.\.


"
" GUI options
menutrans Toggle\ &Toolbar		Pasek\ narzędzi
menutrans Toggle\ &Bottom\ Scrollbar	Dolny\ przewijacz
menutrans Toggle\ &Left\ Scrollbar	&Lewy\ przewijacz
menutrans Toggle\ &Right\ Scrollbar	P&rawy\ przewijacz

" Programming menu
menutrans &Tools			&Narzędzia
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Skocz\ do\ taga<Tab>g^]
menutrans Jump\ &back<Tab>^T		Skok\ w\ &tył<Tab>^T
menutrans Build\ &Tags\ File		&Twórz\ plik\ tagów
" Spelling
menutrans &Spelling	Pi&sownia
menutrans &Spell\ Check\ On	Włącz
menutrans Spell\ Check\ &Off	Wyłącz
menutrans To\ &Next\ error<Tab>]s	Do\ &następnego\ błędu<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	Do\ &poprzedniego\ błędu<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	Sugestie\ poprawek<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	Powtór&z\ poprawkę<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	Ustaw\ język\ na\ "en"
menutrans Set\ language\ to\ "en_au"	Ustaw\ język\ na\ "en_au"
menutrans Set\ language\ to\ "en_ca"	Ustaw\ język\ na\ "en_ca"
menutrans Set\ language\ to\ "en_gb"	Ustaw\ język\ na\ "en_gb"
menutrans Set\ language\ to\ "en_nz"	Ustaw\ język\ na\ "en_nz"
menutrans Set\ language\ to\ "en_us"	Ustaw\ język\ na\ "en_us"
menutrans Set\ language\ to\ "pl"	Ustaw\ język\ na\ "pl"
menutrans &Find\ More\ Languages	&Znajdź\ więcej\ języków

" Folding
menutrans &Folding				&Zwijanie
menutrans &Enable/Disable\ folds<Tab>zi		&Zwiń/rozwiń<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&Linia\ kursora<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx			&Tylko\ linia\ kursora<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm				Zwiń\ więcej<Tab>zm
menutrans &Close\ all\ folds<Tab>zM				Z&wiń\ wszystkie<Tab>zM
menutrans &Open\ all\ folds<Tab>zR				Rozwiń\ wszystkie<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr				R&ozwiń\ więcej<Tab>zr

menutrans Create\ &Fold<Tab>zf				T&wórz\ zawinięcie<Tab>zf
menutrans &Delete\ Fold<Tab>zd				U&suń\ zawinięcie<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD				&Usuń\ wszystkie\ zawinięcia<Tab>zD
menutrans Fold\ column\ &width				Szerokość\ kolumny\ za&winięć
menutrans Fold\ Met&hod		Me&toda\ zawijania
menutrans M&anual			&Ręcznie
menutrans I&ndent			W&cięcie
menutrans E&xpression W&yrażenie
menutrans S&yntax			S&kładnia
menutrans Ma&rker			Zn&acznik

" Diff
menutrans &Update					&Odśwież
menutrans &Get\ Block			&Pobierz\ blok
menutrans &Put\ Block			&Wstaw\ blok

" Make and stuff...
menutrans &Make<Tab>:make		M&ake<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Pokaż\ błędy<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	W&ylicz\ powiadomienia<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&Następny\ błąd<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Poprzedni\ błąd<Tab>:cp
menutrans &Older\ List<Tab>:cold	&Starsza\ lista<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	N&owsza\ lista<Tab>:cnew
menutrans Error\ &Window	Okno\ błędó&w
menutrans &Update<Tab>:cwin			Akt&ualizuj<Tab>:cwin
menutrans &Close<Tab>:cclose			&Zamknij<Tab>:cclose
menutrans &Open<Tab>:copen			&Otwórz<Tab>:copen

menutrans Se&T\ Compiler				U&staw\ kompilator
menutrans &Convert\ to\ HEX<Tab>:%!xxd     Kody\ szesnastkowe<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r     Zwykły\ tekst<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers	&Bufory
menutrans &Refresh\ menu	&Odśwież
menutrans &Delete	&Skasuj
menutrans &Alternate	&Zmień
menutrans &Next		&Następny
menutrans &Previous	&Poprzedni
menutrans [No\ File]	[Brak\ Pliku]

" Window menu
menutrans &Window			&Widoki
menutrans &New<Tab>^Wn			&Nowy<Tab>^Wn
menutrans S&plit<Tab>^Ws		Po&dziel<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	P&odziel\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Podziel\ pionowo<Tab>^Wv
menutrans Split\ File\ E&xplorer		Otwórz\ menedżer\ plików

menutrans &Close<Tab>^Wc		&Zamknij<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zamknij\ &inne<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Następny<Tab>^Ww
menutrans P&revious<Tab>^WW		&Poprzedni<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Wyrównaj\ wysokości<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Z&maksymalizuj\ wysokość<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Zminim&alizuj\ wysokość<Tab>^W1_
menutrans Max\ Width<Tab>^W\|		Maksymalna\ szerokość<Tab>^W\|
menutrans Min\ Width<Tab>^W1\|		Minimalna\ szerokość<Tab>^W1\|
menutrans Max\ &Width<Tab>^W\|		Zmaksymalizuj\ szerokość<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Zminimalizuj\ szerokość<Tab>^W1\|
menutrans Move\ &To			&Idź\ do
menutrans &Top<Tab>^WK			&Góra<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Dół<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Lewa\ strona<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Prawa\ strona<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Obróć\ w\ &górę<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Obróć\ w\ &dół<Tab>^Wr
menutrans Split\ &Vertically<Tab>^Wv	&Podziel\ w\ poziomie<Tab>^Wv
menutrans Select\ Fo&nt\.\.\.		Wybierz\ &czcionkę\.\.\.

" The popup menu
menutrans &Undo			&Cofnij
menutrans Cu&t			W&ytnij
menutrans &Copy			&Kopiuj
menutrans &Paste		&Wklej
menutrans &Delete		&Skasuj
menutrans Select\ Blockwise	Zaznacz\ &blok
menutrans Select\ &Sentence	Zaznacz\ &zdanie
menutrans Select\ Pa&ragraph	Zaznacz\ aka&pit
menutrans Select\ &Word		Zaznacz\ &słowo
menutrans Select\ &Line		Zaznacz\ w&iersz
menutrans Select\ &Block	Zaznacz\ &blok
menutrans Select\ &All		Zaznacz\ c&ałość
menutrans Input\ &Methods	Wprowadza&nie

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Otwórz plik
    tmenu ToolBar.Save		Zapisz bieżący plik
    tmenu ToolBar.SaveAll		Zapisz wszystkie pliki
    tmenu ToolBar.Print		Drukuj
    tmenu ToolBar.Undo		Cofnij
    tmenu ToolBar.Redo		Ponów
    tmenu ToolBar.Cut		Wytnij
    tmenu ToolBar.Copy		Skopiuj
    tmenu ToolBar.Paste		Wklej
    tmenu ToolBar.Find		Szukaj...
    tmenu ToolBar.FindNext	Szukaj następnego
    tmenu ToolBar.FindPrev	Szukaj poprzedniego
    tmenu ToolBar.Replace		Szukaj i zamieniaj...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Nowy widok
      tmenu ToolBar.WinSplit	Podziel widok
      tmenu ToolBar.WinMax		Zmaksymalizuj widok
      tmenu ToolBar.WinMin		Zminimalizuj widok
      tmenu ToolBar.WinClose	Zamknij widok
    endif
    tmenu ToolBar.LoadSesn	Załaduj sesję
    tmenu ToolBar.SaveSesn	Zachowaj bieżącą sesję
    tmenu ToolBar.RunScript	Uruchom skrypt Vima
    tmenu ToolBar.Make		Wykonaj bieżący projekt
    tmenu ToolBar.Shell		Otwórz powłokę
    tmenu ToolBar.RunCtags	Twórz tagi w bieżącym katalogu
    tmenu ToolBar.TagJump		Skok do taga pod kursorem
    tmenu ToolBar.Help		Pomoc Vima
    tmenu ToolBar.FindHelp	Przeszukuj pomoc Vim-a
  endfun
endif

" Syntax menu
menutrans &Syntax &Składnia
menutrans &Show\ filetypes\ in\ menu	Pokaż\ typy\ &plików\ w\ menu
menutrans Set\ '&syntax'\ only	Ustaw\ tylko\ '&syntax'
menutrans Set\ '&filetype'\ too	Ustaw\ również\ '&filetype'
menutrans &Off			&Wyłącz
menutrans &Manual		&Ręcznie
menutrans A&utomatic		A&utomatyczne
menutrans on/off\ for\ &This\ file			włącz/w&yłącz\ dla\ pliku
menutrans Co&lor\ test		Test\ &kolorów
menutrans &Highlight\ test	&Test\ podświetlania
menutrans &Convert\ to\ HTML	Przetwórz\ na\ &HTML

" dialog texts
let menutrans_no_file = "[Brak pliku]"
let menutrans_help_dialog = "Wprowadź komendę lub słowo, aby otrzymać pomoc o:\n\nPrzedrostek i_ oznacza komendę trybu Wprowadzania (np. i_CTRL-X)\nPrzedrostek c_ oznacza komendę edycji wiersza komend (np. c_<Del>)\nPrzedrostek ' oznacza nazwę opcji (np. 'shiftwidth')"
let g:menutrans_path_dialog = "Wprowadź ścieżkę poszukiwania plików.\nProszę rozdzielać nazwy katalogów przecinkiem."
let g:menutrans_tags_dialog = "Podaj nazwy plików tagów.\nProszę rozdzielać nazwy przecinkiem."
let g:menutrans_textwidth_dialog = "Wprowadź nową szerokość tekstu (0 wyłącza przewijanie): "
let g:menutrans_fileformat_dialog = "Wybierz format w którym ten plik ma być zapisany"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Anuluj"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z����E�Evim80/lang/menu_eo.utf-8.vimnu�[���" Menu Translations:	Esperanto
" Maintainer:		Dominique PELLE <dominique.pelle@free.fr>
" Last Change:		2012 May 01
" 
" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

menutrans &Help				&Helpo

menutrans &Overview<Tab><F1>			&Enhavtabelo<Tab><F1>
menutrans &User\ Manual				&Uzula\ manlibro
menutrans &How-to\ links			&Kiel\ fari
menutrans &Find\.\.\.				T&rovi\.\.\.
" -sep1-
menutrans &Credits				&Dankoj
menutrans Co&pying				&Permisilo
menutrans &Sponsor/Register			&Subteni/Registriĝi
menutrans O&rphans				&Orfoj
" -sep2-
menutrans &Version				&Versio
menutrans &About				Pri\ &Vim

let g:menutrans_help_dialog = "Tajpu komandon aŭ serĉendan vorton en la helparo.\n\nAldonu i_ por la komandoj de la enmeta reĝimo (ekz: i_CTRL-X)\nAldonu c_ por redakto de la komanda linio (ekz: c_<Del>)\nĈirkaŭi la opciojn per apostrofoj (ekz: 'shiftwidth')"

menutrans &File				&Dosiero

menutrans &Open\.\.\.<Tab>:e			&Malfermi\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp		Malfermi\ &divide\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew		Malfermi\ &langeton\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew			&Nova<Tab>:enew
menutrans &Close<Tab>:close			&Fermi<Tab>:close
" -SEP1-
menutrans &Save<Tab>:w				&Konservi<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav		Konservi\ ki&el\.\.\.<Tab>:sav
" -SEP2-
menutrans Split\ &Diff\ with\.\.\.		Kom&pari\ divide\.\.\.
menutrans Split\ Patched\ &By\.\.\.		&Testi\ flikaĵon\.\.\.
" -SEP3-
menutrans &Print				&Presi
" -SEP4-
menutrans Sa&ve-Exit<Tab>:wqa			Konservi\ kaj\ eli&ri<Tab>:wqa
menutrans E&xit<Tab>:qa				&Eliri<Tab>:qa


menutrans &Edit				&Redakti

menutrans &Undo<Tab>u				&Malfari<Tab>u
menutrans &Redo<Tab>^R				Re&fari<Tab>^R
menutrans Rep&eat<Tab>\.			R&ipeti<Tab>\.
" -SEP1-
menutrans Cu&t<Tab>"+x				&Tondi<Tab>"+x
menutrans &Copy<Tab>"+y				&Kopii<Tab>"+y
menutrans &Paste<Tab>"+gP			Al&glui<Tab>"+gP
menutrans Put\ &Before<Tab>[p			Enmeti\ &antaŭ<Tab>[p
menutrans Put\ &After<Tab>]p			Enmeti\ ma&lantaŭ<Tab>]p
menutrans &Delete<Tab>x				&Forviŝi<Tab>x
menutrans &Select\ All<Tab>ggVG			A&partigi\ ĉion<Tab>ggVG
" -SEP2-
menutrans &Find\.\.\.				&Trovi\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.		Trovi\ kaj\ a&nstataŭigi\.\.\.
menutrans &Find<Tab>/				&Trovi<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s		Trovi\ kaj\ ansta&taŭigi<Tab>:%s
menutrans Find\ and\ Rep&lace<Tab>:s		Trovi\ kaj\ ansta&taŭigi<Tab>:s
" -SEP3-
menutrans Settings\ &Window			Fenestro\ de\ a&gordoj
menutrans Startup\ &Settings	                Agordoj\ de\ prav&aloroj
menutrans &Global\ Settings			Mallo&kaj\ agordoj

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Baskuli\ emfazon\ de\ ŝa&blono<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Baskuli\ kongruon\ de\ uskle&co<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Baskuli\ kongruon\ de\ kram&poj<Tab>:set\ sm!

menutrans &Context\ lines				Linioj\ de\ &kunteksto

menutrans &Virtual\ Edit				&Virtuala\ redakto
menutrans Never							&Neniam
menutrans Block\ Selection					&Bloka\ apartigo
menutrans Insert\ mode						&Enmeta\ reĝimo
menutrans Block\ and\ Insert					Blo&ko\ kaj\ enmeto
menutrans Always						Ĉia&m

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Baskuli\ &enmetan\ reĝimon<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Baskuli\ kongruon\ kun\ &Vi<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				&Serĉvojo\ de\ dosieroj\.\.\.
menutrans Ta&g\ Files\.\.\.				Dosiero\ de\ etike&doj\.\.\.
" -SEP1-
menutrans Toggle\ &Toolbar				Baskuli\ &ilobreton
menutrans Toggle\ &Bottom\ Scrollbar			Baskuli\ su&ban\ rulumskalon
menutrans Toggle\ &Left\ Scrollbar			Baskuli\ &maldekstran\ rulumskalon
menutrans Toggle\ &Right\ Scrollbar			Baskuli\ &dekstran\ rulumskalon

let g:menutrans_path_dialog = "Tajpu la vojon de serĉo de dosieroj.\nDisigu la dosierujojn per komoj."
let g:menutrans_tags_dialog = "Tajpu la nomojn de dosieroj de etikedoj.\nDisigu la nomojn per komoj."

menutrans F&ile\ Settings			A&gordoj\ de\ dosiero

menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Baskuli\ &numerojn\ de\ linioj<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Baskuli\ &listan\ reĝimon<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Baskuli\ linifal&don<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Baskuli\ &vortofaldon<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Baskuli\ ekspansio\ de\ &taboj<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Baskuli\ &aŭtokrommarĝenon<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Baskuli\ &C-krommarĝenon<Tab>:set\ cin!
" -SEP2-
menutrans &Shiftwidth					&Larĝo\ de\ krommarĝeno
menutrans Soft\ &Tabstop				&Malm&olaj\ taboj
menutrans Te&xt\ Width\.\.\.				Larĝo\ de\ te&ksto\.\.\.
menutrans &File\ Format\.\.\.				&Formato\ de\ &dosiero\.\.\.

let g:menutrans_textwidth_dialog = "Tajpu la novan larĝon de teksto\n(0 por malŝalti formatigon)."
let g:menutrans_fileformat_dialog = "Elektu la formaton de la skribonta dosiero."
let g:menutrans_fileformat_choices = " &Unikso \n &Dos \n &Mak \n &Rezigni "

menutrans C&olor\ Scheme			&Koloraro
menutrans &Keymap				Klavo&mapo
menutrans None					(nenio)
menutrans Select\ Fo&nt\.\.\.			Elekti\ &tiparon\.\.\.


menutrans &Tools				&Iloj

menutrans &Jump\ to\ this\ tag<Tab>g^]		&Aliri\ al\ tiu\ etikedo<Tab>g^]
menutrans Jump\ &back<Tab>^T			&Retroiri<Tab>^T
menutrans Build\ &Tags\ File			Krei\ &etikedan\ dosieron

" -SEP1-
menutrans &Spelling				&Literumilo
menutrans &Spell\ Check\ On			Ŝal&ti\ literumilon
menutrans Spell\ Check\ &Off			&Malŝalti\ literumilon
menutrans To\ &Next\ error<Tab>]s		Al\ sek&vonta\ eraro<Tab>]s
menutrans To\ &Previous\ error<Tab>[s		Al\ an&taŭa\ eraro<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=		&Sugesti\ korektojn<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	R&ipeti\ korekton<Tab>:spellrepall
  
menutrans Set\ language\ to\ "en"		Angla
menutrans Set\ language\ to\ "en_au"		Angla\ (Aŭstralio)
menutrans Set\ language\ to\ "en_ca"		Angla\ (Kanado)
menutrans Set\ language\ to\ "en_gb"		Angla\ (Britio)
menutrans Set\ language\ to\ "en_nz"		Angla\ (Novzelando)
menutrans Set\ language\ to\ "en_us"		Angla\ (Usono)

menutrans &Find\ More\ Languages		&Trovi\ pli\ da\ lingvoj


menutrans &Folding				&Faldo

menutrans &Enable/Disable\ folds<Tab>zi			&Baskuli\ faldojn<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&Vidi\ linion\ de\ kursoro<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Vidi\ nur\ &kursoran\ linion<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm			F&ermi\ pli\ da\ faldoj<Tab>zm
menutrans &Close\ all\ folds<Tab>zM			Fermi\ ĉiu&jn\ faldojn<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr			&Malfermi\ pli\ da\ faldoj<Tab>zr
menutrans &Open\ all\ folds<Tab>zR			Malfermi\ ĉiuj&n\ faldojn<Tab>zR
" -SEP1-
menutrans Fold\ Met&hod					&Metodo\ de\ faldo

menutrans M&anual						&Permana\ metodo
menutrans I&ndent						&Krommarĝeno
menutrans E&xpression						&Esprimo
menutrans S&yntax						&Sintakso
menutrans &Diff							&Komparo
menutrans Ma&rker						Ma&rko

menutrans Create\ &Fold<Tab>zf				&Krei\ faldon<Tab>zf
menutrans &Delete\ Fold<Tab>zd				Forv&iŝi\ faldon<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD			Forviŝi\ ĉiu&jn\ faldojn<Tab>zD
" -SEP2-
menutrans Fold\ col&umn\ width				&Larĝo\ de\ falda\ kolumno

menutrans &Diff					Kom&pari

menutrans &Update					Ĝis&datigi
menutrans &Get\ Block					&Akiri\ blokon
menutrans &Put\ Block					Enme&ti\ blokon

" -SEP2-
menutrans &Make<Tab>:make			Lanĉi\ ma&ke<Tab>:make
menutrans &List\ Errors<Tab>:cl			Listigi\ &erarojn<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!		Listigi\ &mesaĝojn<Tab>:cl!
menutrans &Next\ Error<Tab>:cn			Sek&vanta\ eraro<Tab>:cn
menutrans &Previous\ Error<Tab>:cp		An&taŭa\ eraro<Tab>:cp
menutrans &Older\ List<Tab>:cold		Pli\ ma&lnova\ listo<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew		Pli\ nova\ listo<Tab>:cnew

menutrans Error\ &Window			&Fenestro\ de\ eraroj

menutrans &Update<Tab>:cwin				Ĝis&datigi<Tab>:cwin
menutrans &Open<Tab>:copen				&Malfermi<Tab>:copen
menutrans &Close<Tab>:cclose				&Fermi<Tab>:cclose

" -SEP3-
menutrans &Convert\ to\ HEX<Tab>:%!xxd		Konverti\ al\ deksesuma<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r		Retrokonverti<Tab>:%!xxd\ -r

menutrans Se&T\ Compiler			&Elekti\ kompililon


menutrans &Buffers			&Bufroj

menutrans Dummy					Fikcia
menutrans &Refresh\ menu			Ĝis&datigi\ menuon
menutrans &Delete				&Forviŝi
menutrans &Alternate				&Alterni
menutrans &Next					&Sekvanta
menutrans &Previous				An&taŭa
" -SEP-

menutrans &others				a&liaj
menutrans &u-z					&u-z
let g:menutrans_no_file = "[Neniu dosiero]"


menutrans &Window			Fene&stro

menutrans &New<Tab>^Wn				&Nova<Tab>^Wn
menutrans S&plit<Tab>^Ws			Di&vidi<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^		Dividi\ &al\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv		Dividi\ &vertikale<Tab>^Wv
menutrans Split\ File\ E&xplorer		Dividi\ &dosierfoliumilo
" -SEP1-
menutrans &Close<Tab>^Wc			&Fermi<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo		Fermi\ &aliajn<Tab>^Wo
" -SEP2-
menutrans Move\ &To				&Movu\ al

menutrans &Top<Tab>^WK					Su&pro<Tab>^WK
menutrans &Bottom<Tab>^WJ				Su&bo<Tab>^WJ
menutrans &Left\ side<Tab>^WH				Maldekstra\ &flanko<Tab>^WH
menutrans &Right\ side<Tab>^WL				Dekstra\ f&lanko<Tab>^WL

menutrans Rotate\ &Up<Tab>^WR			Rota&cii\ supre<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr			Rotac&ii\ sube<Tab>^Wr
" -SEP3-
menutrans &Equal\ Size<Tab>^W=			&Egala\ grando<Tab>^W=
menutrans &Max\ Height<Tab>^W_			Ma&ksimuma\ alto<Tab>^W_
menutrans M&in\ Height<Tab>^W1_			Mi&nimuma\ alto<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|			Maksimuma\ &larĝo<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|			Minimuma\ lar&ĝo<Tab>^W1\|


" PopUp

menutrans &Undo					&Malfari
" -SEP1-
menutrans Cu&t					&Tondi
menutrans &Copy					&Kopii
menutrans &Paste				&Al&glui
" &Buffers.&Delete overwrites this one
menutrans &Delete				&Forviŝi
" -SEP2-
menutrans Select\ Blockwise			Apartigi\ &bloke
menutrans Select\ &Word				Apartigi\ &vorton
menutrans Select\ &Line				Apartigi\ &linion
menutrans Select\ &Block			Apartigi\ blo&kon
menutrans Select\ &All				Apartigi\ ĉi&on


" ToolBar

menutrans Open					Malfermi
menutrans Save					Konservi
menutrans SaveAll				Konservi\ ĉion
menutrans Print					Presi
" -sep1-
menutrans Undo					Rezigni
menutrans Redo					Refari
" -sep2-
menutrans Cut					Tondi
menutrans Copy					Kopii
menutrans Paste					Alglui
" -sep3-
menutrans Find					Trovi
menutrans FindNext				Trovi\ sekvanten
menutrans FindPrev				Trovi\ antaŭen
menutrans Replace				Anstataŭigi
" -sep4-
menutrans New					Nova
menutrans WinSplit				DividFen
menutrans WinMax				MaksFen
menutrans WinMin				MinFen
menutrans WinVSplit				VDividFen
menutrans WinMaxWidth				MaksLarĝFen
menutrans WinMinWidth				MinLarĝFen
menutrans WinClose				FermFen
" -sep5-
menutrans LoadSesn				ŜargSeanc
menutrans SaveSesn				KonsSeanc
menutrans RunScript				LanĉSkript
" -sep6-
menutrans Make					Make
menutrans RunCtags				KreiEtik
menutrans TagJump				IriAlEtik
" -sep7-
menutrans Help					Helpo
menutrans FindHelp				SerĉHelp

fun! Do_toolbar_tmenu()
  let did_toolbar_tmenu = 1
  tmenu ToolBar.Open				Malfermi dosieron
  tmenu ToolBar.Save				Konservi aktualan dosieron
  tmenu ToolBar.SaveAll				Konservi ĉiujn dosierojn
  tmenu ToolBar.Print				Presi
  tmenu ToolBar.Undo				Rezigni
  tmenu ToolBar.Redo				Refari
  tmenu ToolBar.Cut				Tondi
  tmenu ToolBar.Copy				Kopii
  tmenu ToolBar.Paste				Alglui
  if !has("gui_athena")
    tmenu ToolBar.Find				Trovi
    tmenu ToolBar.FindNext			Trovi sekvanten
    tmenu ToolBar.FindPrev			Trovi antaŭen
    tmenu ToolBar.Replace			Anstataŭigi
  endif
 if 0	" disabled; These are in the Windows menu
  tmenu ToolBar.New				Nova fenestro
  tmenu ToolBar.WinSplit			Dividi fenestron
  tmenu ToolBar.WinMax				Maksimumi fenestron
  tmenu ToolBar.WinMin				Minimumi fenestron
  tmenu ToolBar.WinVSplit			Dividi vertikale
  tmenu ToolBar.WinMaxWidth			Maksimumi larĝon de fenestro
  tmenu ToolBar.WinMinWidth			Minimumi larĝon de fenestro
  tmenu ToolBar.WinClose			Fermi fenestron
 endif
  tmenu ToolBar.LoadSesn			Malfermi seancon
  tmenu ToolBar.SaveSesn			Konservi aktualan seancon
  tmenu ToolBar.RunScript			Ruli skripton Vim
  tmenu ToolBar.Make				Lanĉi make
  tmenu ToolBar.RunCtags			Krei etikedojn
  tmenu ToolBar.TagJump				Atingi tiun etikedon
  tmenu ToolBar.Help				Helpo de Vim
  tmenu ToolBar.FindHelp			Serĉo en helparo
endfun


menutrans &Syntax			&Sintakso

menutrans &Off					&Malŝalti
menutrans &Manual				&Permana
menutrans A&utomatic				&Aŭtomata
menutrans on/off\ for\ &This\ file		Ŝalti/Malŝalti\ por\ &tiu\ dosiero

" The Start Of The Syntax Menu
menutrans ABC\ music\ notation		ABC\ (muzika\ notacio)
menutrans AceDB\ model			Modelo\ AceDB
menutrans Apache\ config		Konfiguro\ de\ Apache
menutrans Apache-style\ config		Konfiguro\ de\ stilo\ Apache
menutrans ASP\ with\ VBScript		ASP\ kun\ VBScript
menutrans ASP\ with\ Perl		ASP\ kun\ Perl
menutrans Assembly			Asemblilo
menutrans BC\ calculator		Kalkulilo\ BC
menutrans BDF\ font			Tiparo\ BDF
menutrans BIND\ config			Konfiguro\ de\ BIND
menutrans BIND\ zone			Zone\ BIND
menutrans Cascading\ Style\ Sheets	CSS
menutrans Cfg\ Config\ file		Konfigura\ dosiero\ \.cfg
menutrans Cheetah\ template		Ŝablono\ Cheetah
menutrans commit\ file			Dosiero\ commit
menutrans Generic\ Config\ file		Dosiero\ de\ ĝenerala\ konfiguro
menutrans Digital\ Command\ Lang	DCL
menutrans DNS/BIND\ zone		Regiono\ BIND/DNS
menutrans Dylan\ interface		Interfaco\ Dylan
menutrans Dylan\ lid			Dylan\ lid
menutrans Elm\ filter\ rules		Reguloj\ de\ filtrado\ Elm
menutrans ERicsson\ LANGuage		Erlang\ (Lingvo\ de\ Ericsson)
menutrans Essbase\ script		Skripto\ Essbase
menutrans Eterm\ config			Konfiguro\ de\ Eterm
menutrans Exim\ conf			Konfiguro\ de\ Exim
menutrans Fvwm\ configuration		Konfiguro\ de\ Fvwm
menutrans Fvwm2\ configuration		Konfiguro\ de\ Fvwm2
menutrans Fvwm2\ configuration\ with\ M4	Konfiguro\ de\ Fvwm2\ kun\ M4
menutrans GDB\ command\ file		Komanda\ dosiero\ de\ GDB
menutrans HTML\ with\ M4		HTML\ kun\ M4
menutrans Cheetah\ HTML\ template	Ŝablono\ Cheetah\ HTML
menutrans IDL\Generic\ IDL		Ĝenerala\ IDL\IDL
menutrans IDL\Microsoft\ IDL		IDL\IDL\ Mikrosofto
menutrans Indent\ profile		Profilo\ Indent
menutrans Inno\ setup			Konfiguro\ de\ Inno
menutrans InstallShield\ script		Skripto\ InstallShield
menutrans KDE\ script			Skripto\ KDE
menutrans LFTP\ config			Konfiguro\ de\ LFTP
menutrans LifeLines\ script		Skripto\ LifeLines
menutrans Lynx\ Style			Stilo\ de\ Lynx
menutrans Lynx\ config			Konfiguro\ de\ Lynx
menutrans Man\ page			Manlibra\ paĝo
menutrans MEL\ (for\ Maya)		MEL\ (por\ Maya)
menutrans 4DOS\ \.bat\ file		Dosiero\ \.bat\ 4DOS
menutrans \.bat\/\.cmd\ file		Dosiero\ \.bat\/\.cmd
menutrans \.ini\ file			Dosiero\ \.ini
menutrans Module\ Definition		Difino\ de\ modulo
menutrans Registry			Registraro
menutrans Resource\ file		Dosiero\ de\ rimedoj
menutrans Novell\ NCF\ batch		Staplo\ Novell\ NCF
menutrans NSIS\ script			Skripto\ NSIS
menutrans Oracle\ config		Konfiguro\ de\ Oracle
menutrans Palm\ resource\ compiler	Tradukilo\ de\ rimedoj\ Palm
menutrans PHP\ 3-4			PHP\ 3\ et\ 4
menutrans Postfix\ main\ config		Ĉefa\ konfiguro\ de\ Postfix
menutrans Povray\ scene\ descr		Scenejo\ Povray
menutrans Povray\ configuration		Konfiguro\ de\ Povray
menutrans Purify\ log			Protokolo\ de\ Purify
menutrans Readline\ config		Konfiguro\ de\ Readline
menutrans RCS\ log\ output		Protokola\ eligo\ de\ RCS
menutrans RCS\ file			Dosiero\ RCS
menutrans RockLinux\ package\ desc\.	Priskribo\ de\ pakaĵoj\ RockLinux
menutrans Samba\ config			Konfiguro\ de\ Samba
menutrans SGML\ catalog			Katalogo\ SGML
menutrans SGML\ DTD			DTD\ SGML
menutrans SGML\ Declaration		Deklaracio\ SGML
menutrans Shell\ script			Skripto-ŝelo
menutrans sh\ and\ ksh			sh\ kaj\ ksh
menutrans Sinda\ compare		Komparo\ Sinda
menutrans Sinda\ input			Enigo\ Sinda
menutrans Sinda\ output			Eligo\ Sinda
menutrans SKILL\ for\ Diva		SKILL\ por\ Diva
menutrans Smarty\ Templates		Ŝablono\ Smarty
menutrans SNNS\ network			Reto\ SNNS
menutrans SNNS\ pattern			Ŝablono\ SNNS
menutrans SNNS\ result			Rezulto\ SNNS
menutrans Snort\ Configuration		Konfiguro\ de\ Snort
menutrans Squid\ config			Konfiguro\ de\ Squid
menutrans Subversion\ commit		Commit\ Subversion
menutrans TAK\ compare			Komparo\ TAK
menutrans TAK\ input			Enigo\ TAK
menutrans TAK\ output			Eligo\ TAK
menutrans TeX\ configuration		Konfiguro\ de\ TeX
menutrans TF\ mud\ client		TF\ (client\ MUD)
menutrans Tidy\ configuration		Konfiguro\ de\ Tidy
menutrans Trasys\ input			Enigo\ Trasys
menutrans Command\ Line			Komanda\ linio
menutrans Geometry			Geometrio
menutrans Optics			Optiko
menutrans Vim\ help\ file		Helpa\ dosiero\ de\ Vim
menutrans Vim\ script			Skripto\ Vim
menutrans Viminfo\ file			Dosiero\ Viminfo
menutrans Virata\ config		Konfiguro\ de\ Virata
menutrans Wget\ config			Konfiguro\ de\ wget
menutrans Whitespace\ (add)		Spacetoj
menutrans WildPackets\ EtherPeek\ Decoder	Malkodilo\ WildPackets\ EtherPeek
menutrans X\ resources			Rimedoj\ X
menutrans XXD\ hex\ dump		Eligo\ deksesuma\.\ de\ xxd
menutrans XFree86\ Config		Konfiguro\ de\ XFree86
" The End Of The Syntax Menu

menutrans &Show\ filetypes\ in\ menu		&Montri\ dosiertipojn\ en\ menuo
" -SEP1-
menutrans Set\ '&syntax'\ only			Ŝalti\ nur\ '&syntax'
menutrans Set\ '&filetype'\ too			Ŝalti\ ankaŭ\ '&filetype'
menutrans &Off					M&alŝaltita
" -SEP3-
menutrans Co&lor\ test				Testo\ de\ &koloroj
menutrans &Highlight\ test			Testo\ de\ &emfazo
menutrans &Convert\ to\ HTML			Konverti\ al\ &HTML

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��JZZZvim80/lang/menu_it_it.utf-8.vimnu�[���" Menu Translations:	Italian for UTF-8 encoding

source <sfile>:p:h/menu_it_it.latin1.vim
PK�j�Z��ɒ�vim80/lang/menu_ko_kr.vimnu�[���" Menu Translations:	Korean
" Translated By:	SungHyun Nam <goweol@gmail.com>
" Last Change:		2008 Sep 17

source <sfile>:p:h/menu_ko_kr.euckr.vim
PK�j�ZC���ZZvim80/lang/menu_fi_fi.utf-8.vimnu�[���" Menu Translations:	Finnish for UTF-8 encoding

source <sfile>:p:h/menu_fi_fi.latin1.vim
PK�j�ZS[�2\\vim80/lang/menu_af_af.utf-8.vimnu�[���" Menu Translations:	Afrikaans for UTF-8 encoding

source <sfile>:p:h/menu_af_af.latin1.vim
PK�j�Z���sZZvim80/lang/menu_ja.ujis.vimnu�[���" Menu Translations:	Japanese (for UNIX)
" Translated By:	MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change:		15-Jun-2012.
"
" Copyright (C) 2004,12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

" ujis is the same as euc-jp.  Source the other one from here.
source <sfile>:p:h/menu_ja_jp.euc-jp.vim
PK�j�Z�G����� vim80/lang/fi/LC_MESSAGES/vim.monu�[�������<
|y����

��!�'7�/_�������LѢ:�Y�f�+n���"��ؤ��	�5�O�l��������ʥ;��զ�
�'�6�G�Z�i������0ɧ.��/)�0Y�
������Ũ
ߨ�
�$
�$2�W� h���@��D٩�2�"Q�t�"����Ϊߪ@�/�J�[�l�|���/��8Ϋ,�=4�r�������ά0�1�1C�u�������-խ�#�8�P�b����3��3��4�L�d�~���
����ïۯ���
�$%�J�LV� ��İܰ;�0�?�#L�	p�z�������
��ȱ�����	/�9�A�I�![�}�����̲Բ��� �$�?�Y�y�����
����6�����!:�\�
d�r�	���������&��	�"�*�>�=V�
����	������˵�	�
�
��
� �2�D�M�5k���-��1�&�:�R�g�z�������$��
�$�4�L�b�u���������ָ����� �2�B�
\�g�t���
������7����!�$�<�D�M�U�[�_�k�z�=~�2��������'�-@�2n�����?׻�3�D�+S��	������˼-��$7�\�
|���������=ν?�L�2[�!��%��@־9�EQ�9��CѿK�Ia�H��;�60�8g�3��<�4�-F�6t���%�������.�H�&X�,�#��4�� �@&�-g�0��:��;�=�"]���>��)��>��<9�v���#��:��'�9)�c�$|�9��4��;� L�>m�1��/���-+�Y�.h�B��"��2��40�*e���+��%��'�((�<Q�E��.��-�$1�V�<o���*��&�� �49�n������������������!�1�:�"B�e�q���������)���$�3�B�J�c�1|�?��������)�:�P�k�~�X��%����5�S�l�����������$���!�:�X�^�n�r���"��$����#�9�@�O�_������ ����4�8�	J�CT�V����
��

�.�D�-]���-��$��.��6,�c�.}�H��(���-�
F�OQ�O��
��C��	C�M�Y�!n�������3��2��! �(B�k� ��"��E���%+�#Q�-u�������&��!�3�E�c�|���'����)��+�@E�-����5���$�:�U�/p�9����E��=�-X�7��#�� ��:�5>�&t�"��&��$��#
�!.�=P�5�� ��(��7�.F�,u��������� �#!�&E�l�����������
�)�0H�$y�!�� ��(��4
�,?�l��������� �����16�h�!��%��%��!��%�;�$T� y�����?��&�#8�\�
x�A��%��"��"�94�'n�(��2��*��!�!?�)a�%��!��4��:�&C�;j�;��)��0�=�\�x�����#��!��8�&;�#b��� ��/��"���-#�Q�b�{�/��*��(��#�;�W�r�����>��� �:�"Q�t�������#���9�1U�1��)��1��%�7;�s�A��?���&�=�!\�~�����0��4�$:�)_�N��,��&�L,�y�����8����$
�2�L�#l�7��N��3�P�$k�!��3��,�2�%F�l�"����#���(�E�Bb���0��!� �<3�+p�����+�2��$0�U�,s���H��,�1�G�"g��������9#�]�r���0��#�'��&�6�,V�&������+�2��-.�(\���"��'��'�,�>�.U���#��,�W��)M"w,�%�� 
+2D2w2��!�52J5}'�#�)�3)$]%�����$,&Q x'�*�#�'%8^3~!��+�*?-j$����* E f$�$�)��,)Vk%��=�
	&	C	\	'v	�	�	$�	#�	0!
.R
0�
�
�
�

"9M-d ��7�)0$H(m��%�$�
.
A
'^
�
'�
 �
�
  87Y0��#�"%(H!q�-�1�65H~.�*�1�9%_*&�+�,�+*4V<�+�*�5Mbw�����"�*A\{����3Ok:~=�<�64<k�"��+�)%4O5�4�3�#05 f�D�P�%0Vu�����!3Up�����'-@!`��"��1�!8U"j�����1F_r�����*;)f�� ���	6"#Y})�&�K�6  I j � � � � � !"!&A!#h!�!�!+�!%�!7"5P"�"�",�"�"# #)6# `#�#�#�#�#�#$#$?$0W$�$�$�$�$4�$./%$^%)�%1�%;�%&.+&*Z&�&$�&�&%�&,'8'%I'o'�'�'&�'-�'&(5( Q(r(�(�(+�( �()?$))d)�)6�)#�)2*96*>p*8�*1�*+)8+)b+ �+)�+�+)�+*,"G,j,#�,"�,"�,)�,-7-%U- {-$�-�-�-!�-0 .Q.j.�.�."�.!�.9/8<//u/�/�/�/+�/%01B0)t0�0�0'�0%�01&11!X1%z1'�1%�1'�1-22D2w2�2$�2�2�23"!3D3d3!�31�3&�3�3!4!>4`4(u4�4�4+�485=57\5E�5!�5�56((60Q6#�6�6$�6�6#�6*7I7d7w70�72�70�7&8+C8)o8$�8/�8�89'9)@9,j9�9�9 �9�9	:-':,U:�:/�:+�:'�:!; A;0b;�;!�;,�;�;<("<K<d<0z<.�<�<1�<&,=:S=�=9�=�=:><>T>t>�>*�>�>3�>0?%I?2o?0�?!�?;�?R1@�@*�@�@�@(A+A+GA+sA�A �A"�A%�A $B+EB"qB+�B�B.�B4CIDC)�C)�C6�C6D-PD(~D/�D&�D<�D);E*eE�E7�E�E�EF*7FbF�F0�F/�F!�F"G*BG/mG;�G�G�GQH.cH�H$�H#�H0�H#,IPI2oI6�I�I+�I%%JXKJ;�J/�J;KLK!lK%�K"�KN�K.&L$UL&zLT�L#�L"M$=M bM�M�M#�M]�M CNBdN'�N�N/�N2O,OO"|O�O&�O(�O%	P/PNPlPE�P!�P �P7QJQ%`Q�Q'�Q�Q'�QR3R<IR�R"�R'�R�RS+"SNS(hS!�S5�S�S7T!@T%bT/�T!�T�T�T'U@U)_U;�U&�U(�U8V&NVuV.�V�V)�V&W,WEW'bW�W	�W�W�W�W�W�W#X	0X:XJX^X.uX�X.�X6�X!Y'Y6;Y#rY
�Y&�Y	�Y�Y�Y�YZ+Z 8Z%YZ!Z
�Z�Z(�Z��Za�[�[+\a=\�\�\�\(�\
�\	�\%�\
]*]&H]&o]�](�]�]	�]�]	^^
^&^D^Y^w^	�^2�^*�^�^_&_E_[_
q_|_	�_�_�_�_�_#�_(`*`<`	N`X`p`
�`�`�`2�`�`�`a/a<aBa$Wa|a/�a�a�a'�a�ab
)b$4b
Ybdbvb�b �b�b�b�b�b!�b c?c@Hc(�c�c'�c�c�c�c
dd3d#Sdwd�d�d.�d
�d�d	e
e*e<eRe'me�e�e
�e�e�e�e�eff:fYfof�f�f�f9�f9gJgagigvg
�g�g(�g�g�g�gh
h	h#h9hQhlh{h9�h
�h�h�h�hi&0iWivi�i�iC�iWj	hjrj�j�j�j
�j�j)�j�jk3kFOk�k�k�k�k�k�k(�kl8lUl1gl�l�l�l�l�l�lmm0.m;_m>�m�m�m
n1&n"Xn{nn�nA�n)�n=%oco(�o�o�o$�o0�op(p+p+Ap2mp�p�p�p�p�p	q
q�&q�qF�qr
r	r
(r6r+Krwr%�r0�rB�r('sPs1ls+�s*�s&�s9tMVt>�t)�t5
uACu4�u$�u*�uA
vALv&�v6�v�v<�v<1w?nw7�w/�w x"7xZx2ox0�x�x�xy#y8yLyfy�y�y2�y)�y+z,>z-kz �z!�z#�z{{1{5{9{X{	e{o{x{�{�{�{�{�{�{
�{
�{|	||4|A|	U|_|
o|}|
�|	�|5�|�|�|	�|�|}

}}&"}I}\}i}o}
w}�}
�}�}�}�}�}�}�}�}�}�}9�}B~DX~"�~$�~"�~)2AHd}��1�
�$�"�1�<P���'��!Ȁ���
�'�F�_�Hl�C����
�*�B�U�p�w���������� ɂ#�-�-<�j�|�����ǃ؃(�&�=�=L�����%��
�8�F'�.n�D��M�@0�0q�&��'Ɇ&�$�=�O�$j���-��؇�
�!�?�K�Q�l�~�����
��ň׈� �%�
*�8�"E�h�%z�*��.ˉ8��"3�#V�%z�#��Ċڊ��/�E�
T� b� ����
��‹ڋ���.�	F�P�i�2}���Ȍ׌ތ$���(�
7�E�#N�1r�1��1֍1�:�C�	L�
V�(a���������Ɏڎ
��
��6�(J�'s� ����ҏ�	�	$�.�"@�c�v���$��$��ِ�����
%�3�I�h���������̑ޑ���3�B�J�.V�.��.��.�.�.A�.p�.��&Γ ��%�<� W�:x���Ô˔ڔ�"��)�)H�r�	{�������ȕٕ���
�	�&�7�L�`�u�3��x��/�N�]�i�%�/��՘��r%�=��֚�/�"�$?�$d�����:����!-�O�_��x�A"�d�{�����ȝ۝����5�O�.n�,��-ʞ.��
'�5�L�i�������+��3��0�
J�EX�L��
�#��%�"@�%c�������=�����(�9�
H�V�=e�R��"��F�`�{�#����ͣ=�2!�1T�������Ǥ,ߤ�+�@�\�'p�����7Υ,�3�P�l�������
Ѧܦ���,�F�(U�~�P��ާ���;*�f�u�.������ݨ�	��
��-�<�H�b�|�����
����ǩ!ԩ��
� "�C�	K�)U������Ѫڪ�
���:
�E�a�{�1��̫
ի�	����$�)�&.�	U�_�(|���:��
���	��
*�8�L�T�
e�s��
��������'ƭA�0�'@�4h�����Ϯ����"(�K�5f�������ί����&�9�O�f�{�������ϰ�
��
��/�@�M�
Y�
g�u���0��ұ ߱���&�/�5�	9�C�`�Ad�9�������0
�!>�=`�����3ҳ�
!�/�*>�
i�w����� ´7�!�)=�)g�
��
����
ʵصH�;;�w�6��,��'�?�LT�L��T�OC�a��P��UF�E��6�?�/Y�F��]к*.�2Y���&��ӻ�� �
@�&N�)u�)��/ɼ,��>&�7e�<��Gڽ3"�!V�&x���A��<�B1�Bt�
��#ſ'�7�-I�Iw���0�@�9O�C���I�47�:l�#��?���=�@X�(��1��6��@+�'l�)��'��2��+�>E�K��0��9�*;�f�>������7�'8�A`��������������#�2�E�W�h�z���1����	������#�2�<L���*������ �� ��-�HJ��������������!�9�}W�<���"�&:�a�y�&���������,�;�-V�!������������+�.�!M�2o���
����,����
�$�)?�i�G������:��L&�s����/����'���;+� g�,��@����?�mU�7�����*�W;�W����L��G�
N�Y�n�	}�����:��9��6!�:X�#��+��0��G�\�$x�+��?��	�$�>�*[����� ���� �� �*%�P�(m�'��E��%�&*�7Q�����!����J��MB���T���!�:@�'{�'��2��8��07�4h�+��5��<��&<�Mc�@��#��,�9C�0}�0��$����8�5O�0��3�����%�$A�f���"����G��%*�.P�+�A��4��,"�!O�q�������&��'��$�7C�&{�%��2��*��&�!D�f�'{�%��"�� ��I
�/W�������;��:�-M�7{�H��$��(!�,J�,w�)��*��.��-(�)V�H��?��/	�T9�<��9��@�#F�)j�%����#�� ��6�JP�<��*���'�9F�'����:�����!�5<�4r����� ��!�#)�M�m�:�������#�%B�h�#�� �� ��0��5�8M�2��/��2��+�2H�{�E��B���5�%N�!t�����(��*��?$�d�+��B��,��2�7R�������B��*� H� i� ��3��A�]!�!�2���(�$�HA�"��1��)�	�)%� O�.p�%������B�%Z�7��"��.�9
�+D�&p���#��>�,� G�:h���B��0�"2�$U�"z�#��$��%�%� 2�7S����� ��?�(�2E�x� ��-��/���-0�;^�)��/��-.?7n,��:�!'$I,nP�(�$+:'f"�$��4�4'5\&�&���6CH#�,�(�=%D0j�'��(�/3,c%�*�2�-%B)hA�M�"@)^�2�3�'	 4	U	s	�	!�	"�	"�	"
")
L
k
�
+�
�
"�
"";E!����&�!#5*Y'�.�-�@	
%J
p
�
�
�
�
�
+&<!c&�D��	8)b|1�#�+�)"F!i0�#��"�4FO2�&�)�%#@)d��4�1736k#�2�,�/&?V#�/�.�G-a*�;�H�8?3x����!*Lg{�$����3Nn�*�*�!"7#Sw0�4�7�14=f�$��@@AQ�T�K)Ku�L�(HGgS�37Vt���"�!�  A[w �0���4 I #Z 2~ '� � .� &!<;!x!�!�!�!�!�!" 4"U"p"�"�" �"�"�"#.#I#'b#�#�#$�#*�#*	$4$E$"a$�$�$�$1�$"�$!%8<%3u%6�%�%*�%#!&)E&o&�& �&�&%�&4'.C'+r'!�'%�'&�'%
(63(4j(!�($�(8�()"8)[))s),�)�)'�)!* **$K*"p*"�*�*A�*+,++#X+&|+6�+9�+&,!;,4],;�,�,.�,--!E-*g-�-)�--�-
.-%."S.v.�.5�.,�.,/#@/'d/�/�/�/3�/!030>M0.�0 �00�0#
1-11;_1D�11�1028C2;|2.�2%�2.
3<3)Z31�30�3�3&41(4/Z47�4.�4 �4%5$85']5"�5!�5"�57�5%6*?6j6*�6-�6 �6>7;@79|7$�7�7�72
8(@84i8.�8�8�8$�8$"9G94_93�9+�9*�9%:&E::l:'�:�:�:";#%;!I;!k;%�;#�;#�;-�;-)<(W<�<)�<!�<�<'=)='C=;k=B�=�=?	>YI>*�>�> �>.?73?(k?�?"�?$�?"�?'@ >@_@"v@5�@C�@=AQA'pA4�A0�AA�A)@BjB+B7�B/�B$C8C"UCxC'�C%�C2�CD-,D4ZD)�D+�D+�D,E>E!^E!�E�E�E&�E�EF=)F3gF!�F2�F+�F<G$YGC~G�G;�GH,7HdH!�H/�H �H6�H-I7AI!yI0�I#�IB�I;3J%oJ(�J&�J!�J K(K$DK7iK�K)�K*�K,L#CL@gL*�L5�L	M*)M?TM1�M*�M)�MHNHdN5�N �N5O :OQ[O&�O/�OP8"P[PtP �P+�P�P"�P9 Q>ZQ,�Q*�Q#�Q'R4=R!rR�R\�R9
S+GS*sS)�S2�S)�S%T5>T.tT+�T%�T$�TYU6tU1�U>�U'V)DV&nV)�VS�V8W"LW;oWI�W6�W,,X:YX�X�X�X!�XFY(ZYQ�Y/�Y Z(&Z8OZ-�Z�Z�Z(�Z[(5[)^[�[�[^�[  \%A\?g\�\)�\ �\(],]1H]&z]�]C�]!�]$ ^,E^r^�^5�^�^D�^$?_>d_!�_5�_-�_')`3Q`&�`!�`1�`*a +a.LaD{a'�a*�aHb3\b#�bB�b+�b(#c/Lc|c#�c'�c�c�c�cd)d$Cdhd%�d�d�d�d�d0�de;9eFue�e�eC�e"f
<f!Jflfuf�f�f�f�f-�f2g8Dg}g�g3�g��ge�h�hLiXMi�i	�i�i&�i
�i
j(j:j@j1Yj2�j�j0�j
k#k/kEkQkYkhk�k�k�k�k9�k$l&Dlkl-�l�l�l
�l�l		mmm +mLm5jm,�m�m�m
�m�mn7nCn\n=cn	�n+�n!�n
�no
o$#o#Ho9lo�o�o%�o�o�o
p0pFpRpqp�p2�p�p�pqq3q*Rq}qJ�q1�q
	r*rBrErQrdrwr �r&�r�r,�r$s6,scsrs�s�s�s�s'�s2�s/tHtWtftwt�t�t�t$�t�t
u$uCu$_u�uB�u6�uv4v;v
JvXv"`v8�v�v�v�v�vww'-wUwlw�w�w-�w�w�w#�wx3xPxox�x�x�x:�xN yoywy�y�y�y�y�y?�y.z
IzWz2jz�z�z�z�z�z�z0�z%{B{_{Cx{�{�{
�{�{�{|8|J|9Z|0�|3�|�|}(-}=V}.�}�}�}7�}B~*X~A�~ �~1�~
#0?Ep���2�5�J�i�y�
����	�����րc�Jx�Á
Ё	ہ
��.�=�0P�8��C��&��"%�*H�,s�-��5΃G�SL�C��-�6�QI�?��)ۅ)�</�<l�8��:��<&�<c�=��Aއ< �]�(x���=��8��.� K� l�����'��#� 
�!.�?P�6��8NJ9�::�*u�'��(ȋ���&�-�I�V�b�j��#������Ԍ����
�+&�R�a�r��������	��0ƍ��
�	� �,�2�D�&K�r�����
����	��ǎԎێ���	�
����7+�Hc�G��(�+�'I�7q�����ǐ�����38�l�)��'��Ց=�1�+I�%u�����ʒ)�$
�
2�A@�J��͓ ��%�(<�e�l�
u���������!ǔ)�/�/C�s���'��
˕ٕ�,�/�O�+\�!����$���?�S4�9��G—f
�0q�;��#ޘ)�(,�0U��� ��.���7�">�a�������	˚՚�	�
��9�H�_�s�!��������*˛��#
�1.�<`�H��!�+�+4�(`�������՝4�#�0�'@�7h���
��Þ۞���-�C�"S�"v�.��$ȟ���%$�J�a�n�~���#��6Š>��<;�7x�
��	��ȡա0��(�+�A�Y�m�
|�"��
����
آ.�3�I�i�����$��ԣ�&���1�C�&O�&v�������Ť����+�G�f�z�����Х�#��%#�"I�
l�	z���;��<ݦ2�2M�;��;��;��;4�/p�.��1Ϩ�' �:H���
������Ʃ۩.��.*�Y�	a�#k�������
̪ڪ������1�C�V�Bc���S*K�O�Ih��pwEA�������]��O�?��~s�X������%�q
C�H(�)
>+�%T��cT�#��Qb�L�nS���s`Mi�5��^�jP�W�������
e��8�x�����������d���K�ncmm����&*Rq�0���Z�In���7kB_&R�}����4[�����b������,A����wh���6���2�o�d���|Gp7�%lw��!�%um�N���(����)�6!���Q����/�'~�"Q�J���6�x^�
�k��&KQ3:9��>��)��<$f�z����8e��k��-���;8�
?���u03&Eo��#.���Z����X'��R[]��Vw��`���=��dO3�*:�����x$�zz��������),�������r+,�*�hJ�\�H �}��\�>u�A3\�#x���M���^�@T�lw����u<�W�-���m>�$���A�X;w�y@��fL�pS� "g�Za_�@��e�!i_���&N,��t�+:pv'k���?��)�!U)��S*q�+����F��1�S��4<���I8�+�����Wx���y���Lw�!0���}�g�k������D�9X��?kz�� D"��]�^�Q,�P�0	IR@���|�c>�����FaG��0t�r~8�l�@-6G��9���e��W�F]Use���h�O^��o��`�=��~�M[R�K_8P��lTV�Bfh2�:���G�.��1�������N��E>�Zb{�O�����z�J��.�������D`f�1a�n�6Ru�Y
?;�����mfr>x���?=a���fsZ��S;~g���:ET���Y�;���Y6a
�
�g�9��39��4@.�)H���-�2���N���d(C���	�A�I��N$a�����[��v$H�n	�j5�W�����4c4��^/�	��y{Br�j�S�@����u@=D���v����P��f�������}����;�{��������*���V����<��g�2�(�o\q���
�AC-���H`=c/L�'��L��Kv����XV/(t2#D��<��/�����[�e�vzG�>�����+3i�&�0�����J�����1���/�/��E9i�����\��,nU�ykBp#c��{�Yv�]�C���D��wl�cIi�=�4E�;���9�+��!+�b��}	P{OKB����o�	������nT��(�^�[����
A����iT�M��5�	���QP�|y�-�������M�`7���s��1qH.�H�b����5'{AIN�}�Z<��|�K�U��fl�
I�3����$5��C�z��tE�d�����R��XBB2���<~yJ�,$�C��h����1����:e,
�i����0� ��#�/2�Y m��k���FY����%�jG���yF���L��NM��_�� �.��4j������{��$�8��W���hs����<�t�-~Y=�E�ap���V(g�{ ���q01�#:���i�K�Z�d��o~���e�jv��)PJM};O.��7MSu�4_J�7��r��gaV�%�[_3��O5�&dJ���`��s]��Q�qD7����\"�7�X
������o�H�2�5j����=�W^�t�����.	��������#B���h
����
��n������]V� *Np���|7!�|����6}�U�\(�'Ucs:6���Gb�x]b�otg����-�5F����8�"��|R�����mvLl'P|u�Z����jx_��!�C&����U\�D�rb?T��d�����V���t���l��'�X�mW[�U��"����"G�9��`L�
�Q%��pr���%�z�C�?YFqr����1*��y��"F
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info into "%c kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%s%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----clean		'nocompatible', Vim defaults, no plugins, no viminfo--cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked%s1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE946: Cannot make a terminal with running job modifiableE947: Job still running in buffer "%s"E948: Job still runningE948: Job still running (add ! to end the job)E94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTerminalTerminal-finishedTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveactiveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yanked%sblock of 1 line yanked%sbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinishedfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %drunningsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim 7
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-10-04 17:59+0200
PO-Revision-Date: 2017-10-05 11:17+0200
Last-Translator: Flammie A Pirinen <flammie@iki.fi>
Language-Team: Finnish <laatu@lokalisointi.org>
Language: fi
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n != 1);

	Viimeksi asetettu kohteesta 

Argumentit:


käyttö:
          muokattu: 
         [ei toimi tällä koneella]
         [ei toimi tämän Vim-version kanssa]
         laitenimi: 
         käyttäjänimi: 
        prosessin tunniste: 
       a: Etsi sijotukset tähän symboliin
       c: Etsi tätä funktiota kutsuvat funktiot
       d: Etsi tämän funktion kutsumat funktiot
       e: Etsi tämä egrep-lauseke
       f: Etsi tämä tiedosto
       g: Etsi tämä määritys
       i: Etsi tiedostoja jotka #inkluudaavat tämän
       s: Etsi tämä C-symboli
       t: Etsi sijoitukset muuttujaan 

    Nimi        Argumentit Osoite    Valmis    Määritelmä
   #   rivi
   tai:
  # TILL tagg          FRÅN LINJE  i fil/text
hyppy rivi sarake tiedosto/teksti
# %s Historia (uusimmasta alkaen):

# Bar-rivit, kopiotu sellaisenaan:

# Puskuriluettelo:

# Tiedoston merkit:

# Tiedostojen merkkien historia (uusimmasta vanhimpaan):

# Hyppylista (uusin ensiksi):

# Edellinen %sHakulauseke:
~
# Viimeisin korvausmerkkijono:
$
# Rekisterit:

# globaalit muuttujat:

(1) Toinen ohjelma saattaa käyttää samaa tiedostoa.
    Jos näin on, varo, ettet muokkaa saman tiedoston
    kahta instanssia yhtä aikaa. Lopeta tai jatka varoen.

(Saattaa kannattaa kirjoittaa tämä tiedosto toisella nimellä

--- Autocommandit ---
--- Globaalit asetukset ---
--- Paikalliset asetukset ---
--- Valikot ---
--- Asetukset ---
--- Rekisterit ---
--- Merkit ---
--- Syntax-kohteet ---
--- Syntax sync -kohteet ---
--- Terminaalikoodit ---
--- Terminaalinäppäimet ---
Gvimin (Athena-version) tuntemat argumentit:

Gvimin (GTK+-version) tuntemat argumentit:

Gvimin (Motif-version) tuntemat argumentit:

Gvimin (neXtaw-version) tuntemat argumentit:

Big-version 
Putkia ei voi tehdä

Kuoren suoritus ei onnistu 
Kuoren sh suoritus ei onnistu

Ei voi haarauttaa

Komento loppui

Kääntänyt 
Ei saatu turvallisuuskontekstia kohteelle 
Ei voitu asettaa turvallisuuskontekstia kohteelle 
Muita pätsejä: 
Swap-tiedosto löytyi: "
Huge-versio 
Jos käytit uutta salausavainta muttet kirjoittanut tekstitiedostoa,
Jos kirjoitit tekstitiedoston salausavaimen vaihdon jälkeen paina enteriä
Pätsit: 
MS-Windows 32-bittinen GUI-version
MS-Windows 32-bittinen konsoliversio
MS-Windows 64-bittinen GUI-versio
MS-Windows 32-bittinen konsoliversio
MacOS X-version (unix)
MacOS X-version
MacOS-version
Muutoksia ei tehty, tai Vim ei päivittänyt swap-tiedostoa.
Lisätietoja: "vim -h"

Normal-versio 
OpenVMS-version
Small-versio 
Tiny-versio 
Vim: X-virhe

VAROITUS: Alkuperäistiedosto voi hävitä tai vahingoittua

Jos aakkoslaji on ohitettu, lisää alkuun / tehdäksesi asetuksesta suuraakkosia
Voit poistaa .swp-tiedosto nyt.


[tavua] yht. alloc-free %lu-%lu, käytössä %lu, käyttöhuippu %lu

muutos rivi sarake teksti
anna uusi salausavain.
merkki rivi sarake tiedosto/teksti
kuoren palautusarvo 
synkataan kohteisiin
käyttääksesi samaa avainta teksti- ja swäppitiedostoille                              Vim-oletuksia varten                              kahta tilaa varten             ajalta:          omistaja:          [ei voi avata]         [ei voi lukea]         [ei näytä Vimin swap-tiedostolta]         [Vimin 3.0-versiosta]      tiedostonimi:        defaults-tiedosto: " -- ei mitään --
   joka on UUDEMPI kuin swap-tiedosto!
      käyttäjän exrc: "     käyttäjän vimrc: "    Jos näin on, käytä komentoa :recover tai vim -r     Jos teit jo näin, poista swap-tiedosto     rivi=%ld  id=%d  nimi=%s    järjestelmävalikko: "    käyttäjän gvimrc: "   Tässä hakemistossa:
   Hakemistossa    Määritellyllä nimellä:
  ajalta:    laitenimi:    järjestelmän vimrc: "  # arvo tyyppi tägi  (Jo lueteltu)  2. käyttäjän exrc: "  DEBUG-versio Ominaisuudet mukana (+) ja poissa (-):
  EI LÖYTYNYT  KAIKKI     MÄÄRÄ  TÄSMÄYS HITAIN      KEKSIARVO NIMI               ILMAUS  Tägissä eri kirjaintaso  $VIMin fallback: "  järjestelmän gvimrc: " # pid    tietokanta                          lisäyspolku
 (Keskeytetty) (EI LÖYTYNYT) (sisältää viimeksi luetellun täsmäyksen) (syöttö) (syöttö) Vieritys (^E/^Y) (rivi poistettu) (ei tuettu) (liitos) (korvaus) (korvaus) Vieritys (^E/^Y) (käynnissä) (vkorvaus) 2. käyttäjän vimrc: " 3. käyttäjän vimrc: " < %.*s Lisätään Arabia MUUNNOSVIRHE Komentorivitäydennys (^V^N^P) Kopio %d/%d Määritelmätäydennys (^D^N^P) Sanakirjatäydennys (^K^N^P) EPÄONNISTUI Tiedostonimitäydennys (^F^N^P) Heprea SYÖTTÖ Avainsanan paikallinen täydennys (^N^P) Avainsanatäydennys (^N^P) Omnitäydennys (^O^N^P) Polkukuviotäydennys (^N^P) KORVAUS KÄÄNTEIS WALINTA WALINTALOHKO WALINTARIVI SPACE/d/j: ruutu/sivu/rivi alas, b/u/k: ylös, q: lopeta  Oikaisulukuehdotus (s^N^P) Tägitäydennys (^]^N^P) Thesaurus-täydennys (^T^N^P) Käyttäjän määrittelemä täydennys (^U^N^P) VALINTA VALINTALOHKO VALINTARIVI VKORVAUS Täysrivitäydennys (^L^N^P) [Muokattu] [a] [w] ^X-tila (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) lisätty ei toimi tällä koneella.
 ei toimi tämän version Vimin kanssa.
 $VIMRUNTIMEn f-b: " on vioittunut (sivun koko on vähimmäisarvoa pienempi).
 rivillä %ld info kohteeksi "%c -tiedostotyyppi
 rivinvaihdot riviä ennen alkua merkit vanhaatiedostoa %ld rivillä 1 rivillä tai useammasta palautti
 vim [argumentit]  OLE-tuella kirjoitettu"
    välttääksesi tämän viestin.
"
    palauttaaksesi muutokset (lisätietoja: ":help recovery").
 on jo olemassa# Vimin %s generoima viminfo-tiedosto.
# encoding-muuttujan arvo tiedostoa kirjoitettaessa
# Muokkaa varovasti!

%-5s: %s%*s (Käyttö: %s)%3d  %s %s  rivi %ld%d puskuria poistettu%d puskuria vapautettiin%d puskuria pyyhittytoistettuja sanoja %d kohteessa %s%d tiedostoa muokattavana
vielä %d tiedostoa muokattavana, lopetetaanko silti?%d/%d muokattu%ld %s, %s #%ld %s%ld saraketta, %ld riviä vähemmän%ld riviä %s %d kertaa%ld riviä %s kerran%ld riviä --%d %%--%ld riviä muuttui%ld riviä suodatettu%ld riviä sisennetty %ld riviä siirretty%ld riviä sisennettävänä...%ld riviä kopioitu%s%ld riviä, %ld täsmäystä%ld riviä lisää%ld sekuntia sitten%ld korvausta%lld merkkiä%s Autocommands kohteelle %s%s keskeytettiin%s poistettu%s rivi %ld%s odotutettu%s palautettu%s palaa kohdassa #%ld%s palaa kohdassa %s%s-arvo eroaa toisessa .aff-tiedostossa olevasta%s, rivi %ld%svirhelista %d/%d, %d virhettä%sviminfo: %s rivillä: &Peru&Ohita&SuodataO&hje&Ok&OK
&Peru&OK
&Avaa tiedosto uudelleen&Ok&Avaa kirjoitussuojattuna
&Muokkaa
&Palauta
P&oista
&Lopeta
P&eru&Avaa kirjoitussuojattuna
&Muokkaa
&Palauta
&Lopeta
P&eruKo&rvaa&Kumoa&Kyllä
&Ei&Kyllä
&Ei
&Peru&Kyllä
&Ei
&Tallenna kaikki
T&uhoa kaikki
&Peru ei tunnettu. Tuetut terminaalit:-nb:tä ei voi käyttää, koska sitä ei käännetty mukaan
dictionary-asetus on tyhjähistory-asetus on nollareadonly asetettu tiedostolle "%s".
Kirjoitetaanko?thesaurus-asetus on tyhjä(%d/%d)%s%s: (+%ld BOMista)(2) Tiedostonmuokkausistunto on kaatunut.
(Keskeytetty)(Virheellinen)(NFA) EI VOI AVATA KOHDETTA %s+			Aloita tiedoston lopusta+<rivi>			Aloita riviltä <rivi>+reverse		Älä käytä käänteisvärejä (myös: +rv),
tai tiedosto on vahingoittunut.-                   lue vakiosyötteestä--			vain tiedostonimiä tämän jälkeen-- Lisää ---- Haetaan...--- Sisällytetyt tiedostot --Poistettu----Ei rivejä puskurissa----clean		'nocompatible', Vimin oletukset,ei liitännäisiä tai viminfoa--cmd <komento>	Suorita <komento> ennen vimrc:iden latausta--cmd-argumentti--echo-wid		Tulosta gvimin Window ID vakiotulosteeseen--literal		Älä käsittele jokerimerkkejä --noplugin		Älä lataa liitännäisiä--not-a-term		Ohita varoitus siitä että i/o ei ole terminaali--remote <tiedostoja>	Muokkaa <tiedostoja> Vim-palvelimessa, jos mahdollista--remote-expr <ilmaus>	Käsittele <ilmaus> Vim-palvelimella ja tulosta tulos--remote-send <näppäimiä>	Lähetä <näppäimiä> painalluksina Vimille ja lopeta--remote-silent <tiedostoja>	Sama, mutta älä ilmoita puuttuvasta palvelimesta--remote-tab[-wait][-silent] <tiedostoja>  kuten --remote, mutta avaa välilehti joka tiedostolle--remote-wait <tiedostoja>  kuten --remote, mutta odota tiedostojen muokkaamista--remote-wait-silent <tiedostoja>  sama, mutta älä ilmoita puuttuvasta palvelimesta--role <rooli>	Aseta pääikkunalle ainutlaatuinen rooli tunnisteeksi--serverlist		Luettele Vim-palvelinten nimet ja lopeta--servername <nimi>	Lähetä Vim-palvelimelle <nimi> tai luo se--socketid <xid>	Avaa Vim annettuun GTK-olioon --startuptime <file>	Kirjoita käynnistysaikaviestit tiedostoon <file>--ttyfail		Lopeta jos syöttö tai tuloste ei tule terminaalista tai terminaaliin vastaavasti--version			Tulosta versiotiedot ja lopeta--windowid <HWND>	Avaa Vim annettuun win32-olioon -A			käynnistä arabia-tilassa-C			Vi-yhteensopivuustila: compatible-D			Vianetsintätila-E			Paranneltu Ex-tila-F			käynnistä farsi-tilassa-H			käynnistä heprea-tilassa-L			kuten -r-M			Tekstin muokkaus pois käytöstä-N			Ei Vi-yhteensopivuutta: nocompatible-O[N]		Kuten -o, mutta jaa pystysuunnassa-P <otsikko>	Avaa Vim isäntäohjelman sisään-R			Kirjoitussuojattu tila (kuten view'lla)-S <sessio>		Lataa <sessio> ensimmäisen tiedoston latauduttua-T <terminaali>	Aseta terminaalin tyypiksi <terminaali>-U <gvimrc>		Käytä <gvimrc>-tiedostoa .gvimrc:iden sijasta-V[N][tnimi]		Monisanainen tuloste [Taso N] [kirjoita tuloste tnimeen] -W <skripti>	Kirjoita komennot <skripti>-tiedostoon-X			Älä yhdistä X-palvelimeen-Z			Rajoitettu tila (kuten rvimillä)-b			Binääritila-background <väri>	Käytä <väriä> taustavärinä (myös: -bg)-boldfont <fontti>	Käytä <fonttia> lihavoidussa tekstissä-borderwidt <leveys>	Käytä <leveyttä> reunuksissa (myös: -bw) -c <komento>		Suorita <komento> ensimmäisen tiedoston latauduttua-c-argumentti-d			Diff-tila (kuten vimdiffillä)-dev <laite>		Käytä <laitetta> IO:hon-display <näyttö>	Yhdistä vim tiettyyn X-palvelimeen-display <näyttö>	Suorita vim <näytössä>-display <näyttö>	Suorita vim näytöllä <näyttö> (myös: --display)-e			Ex-tila (kute exillä)-f			Älä käytä newcli:tä ikkunan avaamiseen-f tai --nofork	Edustalle: Älä haarauta GUIn käynnistyksessä-font <fontti>		Käytä <fonttia> tekstissä (myös: -fn)-foreground <väri>	Käytä <väriä> tekstin värinä (myös: -fg)-g			Avaa GUI (kuten gvimillä)-geometry <geom>	Käytä mittoja <geom> ikkunan asetteluun (myös: -geom)-h tai --help	Tulosta ohje (tämä viesti) ja lopeta-i <viminfo>		Käytä <viminfo>-tiedostoa .viminfon sijaan-iconic		Käynnistä pienennettynä-italicfont <fontti>	Käytä <fonttia> kursivoidussa tekstissä-l			Lisp-tila-m			Muokkaukset (kirjoittaminen tiedostoon) pois käytöstä-menuheight <korkeus>	Käytä <korkeutta> valikossa (myös: -mh)-n			Ei swap-tiedostoja, käytä muistia-o[N]		Avaa N ikkunaa (oletus: yksi per tiedosto)-p[N]		Avaa N välilehteä (oletus: yksi per tiedosto)-q [virhetiedosto]  muokkaa tiedostoa ensimmäisestä virheestä-r			Luetteloi swap-tiedostot ja poistu-r (tiedostonimi)	Palauta kaatunut sessio-register		rekisteröi gvim OLEa varten-reverse		Käytä käänteisvärejä (myös: -rv) -s			Hiljainen (eräajo)tila (vain exillä)-s <skripti>	Lue normaalitilan komentoja <skripti>-tiedostosta-scrollbarwidth <leveys>  Käytä <leveyttä> vierityspalkissa (myös: -sw)-t tägi             muokkaa tiedostoa tägistä-u <vimrc>		Käytä <vimrc>-tiedostoa .vimrc:iden sijasta-unregister		Poista gvim OLE-rekisteristä-v			Vi-tila (kuten villä)-w <skripti>	Lisää kirjoitetut komennot <skripti>-tiedostoon-x			Muokkaa salattua tiedostoa-xrm <resurssi>	Aseta resurssi-y			Helppokäyttötila (kuten evimissä, ilman tiloja)/ ohitettu kohteessa %s rivillä %d: %s/encoding= sanojen jälkeen ohitettu kohteessa %s rivillä %d: %s1 puskuri poistettu1 puskuri vapautettiin1 puskuri pyyhitty1 merkki1 riviä %s %d kertaa1 riviä %s kerran1 rivi --%d %%--1 rivi muuttui1 rivi sisennetty 1 rivi vähemmän1 rivi siirretty1 rivi kopioitu%s1 rivi, 1 täsmäysvielä 1 tiedosto muokattavana, lopetaanko silti?1 rivi lisää1 korvaus2. käyttäjän gvimrc: "3. käyttäjän gvimrc: ": Ilmauksen lähetys epäonnistui.
: Lähetys epäonnistui.
: Lähetys epäonnistui. Yritetään suorittaa paikallisena
; täsmää <%s>%s%s  %d, heksana %02x, oktaalina %03o<ei voi avata> <tyhjä>> %d, heksana %04x, oktaalina %o> %d, hekdana %08x, oktaalina %o??? tästä kohtaan ???LOPPU rivejä sekaisin??? tästä kohtaan ???LOPPU rivejä saattaa olla lisätty tai poistettu???LOHKO PUUTTUU???TYHJÄ LOHKO???LOPPU???RIVIMÄÄRÄ PIELESSÄ???RIVEJÄ PUUTTUU???PALJON RIVEJÄ PUUTTUUANCHOR_BUF_SIZE liian pieni.Lisää uusi tietokantaLisätty cscope-tietokanta %sAffiksia käytetty myös BAD-, RARE-, KEEPCASE-, NEEDAFFIX-, NEEDCOMPOUND- tai NOSUGGEST-arvossa kohteessa %s rivillä %d: %sAffiksin nimi on liian pitkä tiedostossa %s rivillä %d: %sKaikKaikki cscope-tietokannat nollattuKaikki sisällytetyt rivit löytyivätNuorimmassa muutoksessaVanhimmassa muutoksessaVain yksi välilehti jäljellä enääEnää yksi ikkuna jäljelläLisää tiedostoonArgumentti puuttuu kohdastaRivilläYritettiin avata skriptitiedostoa uudestaan:Takaisin lähtöpisteessäTakaperoinen arvoalue annettu, OK kääntääRekisteröidy Vim-käyttäjäksi.Piip!Ennen tavua %ldLoppuSAL- ja SOFO-rivit kohteessa %sKatkaisukohta %s%s rivillä %ldViallinen ehto kohteessa %s rivillä %d: %sCOMPOUNDSYLMAX ilman SYLLABLEaKutsutaan kuorta suorittamaan: %sEi voi löytää väliaikaistiedstoa muuntamiseksiPeruEi voi luoda Ei voi suorittaa Ei voida avata tiedostoa $VIMRUNTIME/rgb.txtEi voi avata NILiä:
Tiedostoa %s ei voi avataEi voi avata luettavaksi: Ei voi avata skriptin tulostetta varten: Hakemistoa ei voi ladata: %sEi voitu lukea kumoustiedostoa mistään undodir-muuttujan hakemistostaMuuta %.*s:Sulje välilehtiSarake %s/%s, Rivi %ld/%ld, sana %lld/%lld, tavu %lld/%lldSarake %s/%s, rivi %ld/%ld, sana %lld/%lld, merkki %lld/%lld, tavu %lld/%lldKomentoriviKäännös: Käännin: Tiivistetty %d/%d noodia. %d (%d %%) jäljelläTiivistetään sanapuuta...Muunnosvirhe sanalle %s rivillä %d: %sMuutosta kohteessa %s ei tuetaMuunnosta kohteessa %s ei tueta: kohteesta %s kohteeseen %sMuunnos charconvert epäonnistuiEi voitu korjata funktio-osoittimia DLL:ssäEi saatu turvallisuuskontekstia %s kohteelle %s ja se poistetaanVim32.dll:ää ei voitu ladataVäliaikaislokitiedoston avaus kirjoittamista varten ei onnistuEi voitu avata väliaikaislokitiedosta kirjoittamista varten, joten virheet näytetään vakiovirhevirrassa. Ei voitu asettaa turvallisuuskontekstia %s kohteelle %sCscope-tägi: %sKäytössä oleva %skieli: %sVianetsintäriviCOMPOUNDFORBIDFLAG PFX:n jälkeen voi antaa vääriä tuloksia kohteessa %s rivillä %dCOMPOUNDPERMITFLAG PFX:n jälkeen voi antaa vääriä tuloksia kohteessa %s rivillä %dDiffi VimilläEri yhdistelmälippu jatketussa affiksilohkossa kohteessa %s rivillä %d: %sSuuntaHakemistotHakemisto	*.nothing
KirjoitetaankoValmista.Kaksi ;:ttä listan muuttujissaAlasToistettu /encoding= ohitettu kohteessa %s rivillä %d: %sToistettu /regions= ohitettu kohteessa %s rivillä %d: %sKaksoiskappale affiksista kohteessa %s rivillä %d: %sKaksoiskappale merkistä MAP:ssä kohteessa %s rivillä %dKaksoiskappale kentän nimestä: %sToistettu sana kohteessa %s rivillä %d: %sE100: Yksikään muu puskuri ei ole diff-tilassaE101: Monta puskuria on diff-tilassa, käytettävän valinta ei onnistuE102: Puskuria %s ei löydyE103: Puskuri %s ei ole diff-tilassaE104: Escapea ei voi käyttää digraafissaE105: Käytetään :loadkeymapia ladatun tiedoston ulkopuolellaE107: Sulkeita puuttuu: %sE108: Muuttujaa %s ei oleE109: ?:n jälkeen puuttuu :E10: \:n jälkeen pitää tulla /, ? tai &E110: ) puuttuuE111: ] puuttuuE112: Asetuksen nimi puuttuu: %sE113: Tuntematon asetus: %sE114: Puuttuva lainausmerkki: %sE115: Puuttuva lainausmerkki: %sE116: Vääriä argumentteja funktiolle %sE117: Tuntematon funktio: %sE118: Liikaa argumentteja funktiolle: %sE119: Liikaa argumentteja funktiolle %sE11: Virheellinen komentorivi-ikkuna, <CR> suorittaa, Ctrl C lopettaaE120: <SID> skriptin ulkopuolella: %sE121: Määrittelemätön muuttuja: %sE122: Funktio %s on jo olemassa, lisää ! korvataksesiE123: Tuntematon funktio: %sE124: ( puuttuu: %sE125: Virheellinen argumentti: %sE126: :endfunction puuttuuE127: Funktiota %s ei voi määritellä uudestaan, koska se on käytössäE128: Funktion nimen pitää alkaa suuraakkosella tai merkeillä ’s:’: %sE129: Funktion nimi puuttuuE12: Komentoa ei tueta exrc:ssä tai vimrc:ssä tässä hakemistossa tai tägihaussaE130: Tuntematon funktio: %sE131: Funktiota %s ei voi poistaaE132: Funktiokutsujen syvyys on enemmän kuin maxfuncdepthE133: :return ei ole funktion sisälläE134: Rivien siirto itsejensä päälleE135: *Filter*-autocommand ei voi vaihtaa puskuriaE136: viminfo: liikaa virheitä, ohitetaan lopputiedostoE137: Viminfo-tiedostoon ei voitu kirjoittaa: %sE138: Viminfo-tiedoston kirjoittaminen ei onnistu %sE139: Tiedosto on ladattu toiseen puskuriinE13: Tiedosto on jo olemassa (lisää ! ohittaaksesi)E140: Käytä !-komentoa osittaisen puskurin kirjoittamiseenE141: Ei tiedostonimeä puskurille %ldE142: Tiedostoa ei kirjoitettu; write-asetus poistaa kirjoituksen käytöstäE143: Autocommand poisti uuden puskurin odotuksen vastaisesti %sE144: :z:n argumentti ei ole numeroE145: Kuoren komennot eivät toimi rvimissäE146: Säännöllistä ilmausta ei voi rajata kirjaimillaE147: :globalia ei voi suorittaa rekursiivisestiE148: Säännöllinen ilmaus puuttuu globaalistaE149: ei löydy ohjetta kohteelle %sE14: Virheellinen osoiteE150: Ei ole hakemisto: %sE151: Ei täsmää: %sE152: Ei voi avata tiedostoa %s kirjoittamista vartenE153: Ei voi avata tiedostoa %s lukemista vartenE154: Kaksoiskappale tägistä %s tiedostossa %s/%sE155: Tuntematon merkki: %sE156: Merkki puuttuuE157: Virheellinen merkin tunnus: %ldE158: Virheellinen puskurin nimi: %sE159: Merkin numero puuttuuE15: Virheellinen ilmaus: %sE160: Tuntematon merkkikomento: %sE161: Katkaisukohta puuttuu: %sE162: Muutoksia ei ole kirjoitettu puskurin %s viime muutoksen jälkeenE163: Vain yksi tiedosto muokattavanaE164: Ensimmäisen tiedoston ohi ei voi mennäE165: Viimeisen tiedoston ohi ei voi mennäE166: Linkitetyn tiedoston avaus kirjoittamista varten ei onnistuE167: :scriptencoding ladatun tiedoston ulkopuolellaE168: :finish ladatun tiedoston ulkopuolellaE169: Liian rekursiivinen komentoE16: Virheellinen arvoalueE170: :endfor puuttuuE170: :endwhile puuttuuE171: :endif puuttuuE172: Vain yksi tiedostonimi sallitaanE173: vielä %ld tiedostoa muokattavanaE173: vielä 1 tiedosto muokattavanaE174: Komento on jo olemassa, käytä !:ä korvataksesiE175: Ei attribuutteja määriteltynäE176: Väärä määrä attribuuttejaE177: Lukumäärää ei voi määritellä kahdestiE178: Lukumäärän oletusarvo on vääräE179: -addr vaatii argumentinE179: -complete vaatii argumentinE17: %s on hakemistoE180: Virheellinen osoitetyyppiarvo: %sE180: Virheellinen täydennysarvo: %sE181: Virheellinen attribuutti: %sE182: Virheellinen komennon nimiE183: Käyttäjän määrittelemän komennon pitää alkaa suuraakkosellaE184: Käyttäjän komentoa ei ole olemassa: %sE185: Väriteemaa %s ei löydyE186: Ei edellistä hakemistoaE187: TuntematonE188: Ikkunan sijainnin selvitys ei toimi tällä alustallaE189: %s on jo olemassa (lisää komentoon ! ohittaaksesi)E18: Odottamattomia merkkejä komennossa :letE190: Tiedostoa %s ei voitu avata kirjoittamista vartenE191: Argumentin eteen- tai taaksepäin lainaukseen pitää olla kirjainE192: :normalin liian syvä rekursioE193: :endfunction funktion ulkopuolellaE194: Ei vaihtoehtoista tiedostonimeä #:lleE195: Viminfoa ei voi avata lukemista vartenE196: Digraafeja ei ole tässä versiossaE197: Kieleksi ei voitu asettaa kieltä %sE198: cmd_pchar komennon pituuden ulkopuolellaE199: Aktiivinen ikkuna tai puskuri poistettuE19: Merkillä on virheellinen rivinumeroE200: *ReadPre-autocommand-komennot tekivät tiedostosta lukukelvottomanE201: *ReadPre-autocommand-komennot eivät saa muuttaa puskuriaE202: Muunnos teki tiedostosta lukukelvottoman.E203: Autocommand-komennot poistivat tai vapauttivat puskurin, johon piti kirjoittaaE204: Autocommand-komento muutti rivien määrä odottamattaE205: Patch-tilassa ei voi tallentaa alkuperäistiedostoaE206: patch-tilassa ei voi muuttaa tyhjää alkuperäistiedostoaE207: Ei voi poistaa varmuuskopiotaE208: Virhe kirjoitettaessa tiedostoon %sE209: Virhe suljettaessa tiedostoa %sE20: Merkkiä ei asetettuE210: Virhe luettaessa tiedostoa %sE211: Tiedostoa %s ei ole enääE212: Tiedoston avaus kirjoittamista varten ei onnistuE213: Muunnos ei onnistu (lisää komentoon ! kirjoittaaksesi muuntamatta)E214: Ei voi löytää väliaikaistiedostoa kirjoitettavaksiE215: Virheellinen merkki *:n jälkeen: %sE216: Eventtiä ei ole: %sE216: Ryhmää tai eventtiä ei ole: %sE217: Ei voi suorittaa autocommandsia kaikille eventeilleE218: liian monta tasoa autocommandissaE219: { puuttuu.E21: Ei voi tehdä muutoksia, modifiable on pois päältäE220: } puuttuu.E222: Lisää lukupuskuriinE223: rekursiivinen kuvausE224: globaali lyhenne merkinnälle %s on jo olemassaE225: globaali kuvaus merkinnälle %s on jo olemassaE226: lyhenne on jo olemassa %sE227: kuvaus on jo olemassa %sE228: makemap: Virheellinen tilaE229: GUIn käynnistys ei onnistuE22: Liian monta tasoa skripteissäE230: Ei voi lukea kohteesta %sE231: guifontwide virheellinenE232: Ei voi luoda BalloonEvalia viestille ja callbackilleE233: näyttöä ei voi avataE234: Tuntematon fontset: %sE235: Tuntematon fontti: %sE236: Fontti %s ei ole tasavälinenE237: Tulostimen valinta epäonnistuiE238: Tulostinvirhe: %sE239: Virheellinen merkkiteksti: %sE23: Eo vaihtoehtoista tiedostoaE240: Ei yhteyttä X-palvelimeenE241: Kohteeseen %s lähettäminen ei onnistunutE243: Argumenttia ei tueta: -%s, käytä OLE-versiotaE244: Virheellinen merkistön nimi %s fontin nimessä %sE244: Virheellinen laatunimi %s fontin nimessä %sE245: Virheellinen merkki %c fontin nimessä %sE246: FileChangedShell-autocommand poisti puskurinE247: palvelinta %s ei ole rekisteröitynäE248: Komennon lähetys kohdeohjelmalle ei onnistuE24: Lyhennettä ei oleE250: Seuraavien merkistöjoukkojen fontit puuttuvat fontsetistä %s:E251: VIMin instanssin rekisteriarvo on virheellinen, poistettiin.E252: Fontsetin nimi: %sE253: Fontsetin nimi: %sE254: Väriä %s ei voi määritelläE255: Merkkidatan luku ei onnistuE256: Hangu-automaattivirheE257: cstag: tägia ei löydyE258: Asiakkaalle lähetys ei onnistunutE259: ei täsmäyksiä cscope-hakuun %s/%sE25: GUIta ei voi käyttää, koska sitä ei käännetty mukaanE261: cscope-yhteys %s puuttuuE262: Virhe luettaessa cscope-yhteyttä %ldE263: komento ei toimi, Python-kirjaston lataaminen ei onnistunut.E264: Python: Virhe IO-olioiden alustuksessaE265: muuttujan $_ pitää olla Stringin instanssiE266: komento ei toimi, Ruby-kirjastoa ei voitu ladata.E267: odotuksenvastainen returnE268: Odotuksenvastainen nextE269: Odotuksenvastainen breakE26: Hepreaa ei voi käyttää, koska sitä ei käännetty mukaan
E270: odotuksenvastainen redoE271: retry rescuen ulkopuolellaE272: käsittelemätön poikkeusE273: tuntematon longjmp-tila %dE277: Palvelimen vastauksen lukeminen ei onnistunutE27: Farsia ei voi käyttää, koska sitä ei käännetty mukaan
E280: kriittinen TCL-virhe: reflist hajalla? Ilmoita asiasta postituslistalle vim-dev@vim.orgE282: Ei voida lukea kohteesta %sE283: Mikään merkki ei täsmää ilmaukseen "%s"E284: Ei voi asettaa IC-arvojaE285: Syötekontekstin luonti ei onnistuE286: Syötemetodin avaus ei onnistuE287: Varoitus: Ei voitu asettaa destroy-kutsua syötemetodipalvelimelleE288: syötemetodi ei tue tyylejäE289: syötemetodi ei tue tätä preedit-tyyppiäE28: Korostusryhmää ei ole nimellä: %sE293: lohkoa ei ole lukittuE294: Hakuvirhe swap-tiedostoa luettaessaE295: Lukuvirhe swap-tiedostossaE296: Hakuvirhe swap-tiedostoa kirjoitettaessaE297: Kirjoitusvirhe swap-tiedostossaE298: Lohko 0:aa ei saatu?E298: Lohko 1:tä ei saatu?E298: Lohko 2:ta ei saatu?E299: Perl-suoritus kielletty hiekkalaatikossa ilman Safe-moduuliaE29: Tekstiä ei ole syötetty vieläE300: Swaptiedosto on jo olemassa (symlink-hyökkäys?)E301: Hups, swap-tiedosto hävisi!E302: Swap-tiedoston uudellennimeys ei onnistuE303: Swap-tiedostoa %s ei voi avata, palautus ei onnistuE304: ml_upd_block0(): Lohko 0:aa ei saatu?E305: Ei swap-tiedostoa tiedostolle %sE306: Ei voi avata tiedostoa %sE307: %s ei ole Vimin swap-tiedostoE308: Varoitus: Alkuperäistä tiedostoa saattaa olla muutettuE309: Ei voitu lukea lohkoa 1 tiedostosta %sE30: Ei edellistä komentoriviäE310: Lohon 1 tunniste väärä (%s ei ole .swp-tiedosto?)E311: Palautus keskeytettyE312: Palautuksessa oli virheitä, etsi rivejä, jotka alkavat ???E313: Ei voi säilyttää, swap-tiedostoa ei oleE314: Säilyttäminen epäonnistuiE315: ml_get: virheellinen lnum: %ldE316: ml_get: riviä %ld ei löydyE317: osoitinlohkon tunnus vääräE317: osoitinlohon tunnus väärä 2E317: osoitinlohkon tunnus väärä 3E317: osoitinlohkon tunnus väärä 4E318: Päivitetty liikaa lohkojaE319: Komento ei ole käytettävissä tässä versiossaE31: Kuvausta ei oleE320: Riviä %ld ei löydyE321: Ei voitu uudelleenavata %sE322: rivinumero arvoalueen ulkopuoleta: %ld on loppua suurempiE323: rivimäärä väärin lohkossa %ldE324: PostScript-tulostetiedoston avaus ei onnistuE325: HUOMAAE326: Liian monta swap-tiedostoaE327: Valikkokohtapolun osa ei ole alivalikkoE328: Valikko on olemassa vain toisessa tilassaE329: Ei valikkoa %sE32: Ei tiedostonimeäE330: Valikkopolku ei saa johtaa alivalikkoonE331: Valikkokohtia ei saa lisätä suoraan valikkopalkkiinE332: Erotin ei voi olla valikkopolun osaE333: Valikkopolun on johdettava valikkokohtaanE334: Valikkoa ei löydy: %sE335: Valikkoa ei ole määritelty %s-tilassaE336: Valikkopolun pitää johtaa alivalikkoonE337: Valikkoa ei löytynyt - tarkista valikkojen nimetE338: tiedostonselain puuttuu konsolitilastaE339: Liian pitkä kuvioE33: Ei edellistä korvausta säännölliselle ilmaukselleE340: Rivistä tulee liian pitkäE341: Sisäinen virhe: lalloc(%ld, )E342: Muisti loppui! (varattaessa %lu tavua)E343: Virheellinen polku: '**[numero]' kuuluu polun loppuun tai ennen kohtaa %s.E344: Hakemistoa %s ei löydy cdpathistaE345: Tiedostoa %s ei löydy polultaE346: Hakemisto %s ei ole enää cdpathissaE347: Tiedosto %s ei ole enää polullaE348: Ei merkkijonoa kursorin allaE349: Ei tunnistetta osoittimen allaE34: Ei edellistä komentoaE350: Taitoksia ei voi tehdä tällä foldmethodillaE351: Taitosta ei voi poistaa tällä foldmethodillaE352: taitoksia ei voi poistaa tällä foldmethodillaE353: Rekisterissä %s ei ole mitäänE354: Virheellinen rekisterin nimi: %sE355: Tuntematon asetus: %sE356: get_varp-virheE357: langmap: Merkkiin %s täsmäävä merkki puuttuuE358: langmap: ylimääräisiä merkkejä puolipisteen jälkeen: %sE359: Näyttötila-asetus ei tuettuE35: Ei edellistä säännöllistä ilmaustaE360: Kuorta ei voi avata asetuksella -fE363: kuvio käyttää enemmän muistia kuin maxmempattern onE364: Kirjastukutsu %s() epäonnistuiE365: PostScript-tiedoston tulostus epäonnistuiE367: Ryhmää ei ole: %sE369: virheellinen olio kohdassa %s%%[]E36: Tila ei riitäE370: Kirjaston %s lataaminen ei onnistuE371: Komentoa ei löydyE372: Liikaa %%%c-juttuja muotoilumerkkijonossaE373: Odottamaton %%%c muotoilumerkkijonossaE374: ] puuttuu muotoilemerkkijonostaE375: Tukematon %%%c muotoilumerkkijonossaE376: Virheellinen %%%c muotoilumerkkijonon alussaE377: Virheellinen %%%c muotoilumerkkijonossaE378: errorformatissa ei ole kuvioitaE379: Puuttuva tai tyhjä hakemiston nimiE37: Viimeisimmän muutoksen jälkeen ei ole kirjoitettu mitäänE37: Viimeisen muutoksen jälkeen ei ole kirjoitettu (lisää ! ohittaaksesi)E380: quickfix-pinon pohjallaE381: quickfix-pinon huipullaE382: Ei voi kirjoittaa, buftype asetettuE383: Viallinen hakujono: %sE384: Haku pääsi alkuun löytämättä jonoa: %sE385: Haku pääsi loppuun löytämättä jonoa: %sE386: ;:n jälkeen pitää olla ? tai /E387: Täsmäys tällä rivilläE388: Määritelmä ei löydyE389: kuvio ei löydyE38: Null-argumenttiE390: Virheellinen argumentti: %sE391: Syntaksiklusteri puuttuu: %sE392: syntaksiklusteria ei ole: %sE393: group[t]here ei sovi tähänE394: Aluetta nimelle %s ei löydyE395: contains ei sovi tähänE397: Tiedostonimi puuttuuE398: = puuttuu: %sE399: Argumentteja puuttuu: syntaksialue %sE39: Pitää olla numeroE400: klusteri määrittelemättäE401: Kuvoin erotin puuttuu: %sE402: Roskia kuvion jäljessä: %sE403: syntax sync: rivinjatkamiskuvio määritelty kahdestiE404: Virheelliset argumentit: %sE405: = puuttuu: %sE406: Tyhjä argumentti: %sE407: %s ei sovi tähänE408: %s kuuluu contains-listan alkuunE409: Tuntematon ryhmän nimi: %sE40: virhetiedostoa %s ei voi avataE410: Virheelluinen :syntax-osakomento: %sE411: korostusryhmää ei löytynyt: %sE412: Argumentteja puuttuu: :highlight link %sE413: Liikaa argumentteja: :highlight link %sE414: ryhmällä on asetuksia, highlight link -komento ohitetaanE415: odotuksenvastainen =-merkki: %sE416: puuttuva =-merkki: %sE417: puuttuva argumentti: %sE418: Viallinen arvo: %sE419: edustaväri tuntematonE41: Muisti loppuiE420: taustaväri tuntematonE421: Värin nimi tai numero tuntematon: %sE422: terminaalikoodi liian pitkä: %sE423: Virheellinen argumentti: %sE424: Liikaa eri korostusattribuuttejaE425: Ei voida mennä ensimmäistä täsmäävää tägiä alummaksiE426: tägi puuttuu: %sE427: Vain yksi tägi täsmääE428: Ei voida edetä viimeisen täsmäävän tägin ohiE429: Tiedostoa %s ei oleE42: Ei virheitäE430: Tägitiedoston polku katkaistu kohdassa %s
E431: Muotovirh tägitiedostossa %sE432: Tägitiedosto ei ole järjestetty: %sE433: Ei tägitiedostojaE434: Tägikuviota ei löydyE435: Tägiä ei löydy, arvataan.E436: %s ei löytynyt termcapistaE437: terminaalilla pitää olla cm kyvyissäänE438: u_undo: väärät rivinumerotE439: kumouslista rikkiE43: Viallinen täsmäysmerkkijonoE440: kumousrivi puuttuuE441: Ei esikatseluikkunaaE442: Ei voi jakaa vasenta ylänurkkaa ja oikeaa alanurkkaa yhtäaikaaE443: Ei voi kiertää kun toinen ikkuna on jaettuE444: Ei voi sulkea viimeistä ikkunaaE445: Toinen ikkuna sisältää muutoksiaE446: Ei tiedostonimeä kursorin allaE447: Tiedosto %s ei löydy polultaE448: Ei voitu ladta kirjastofunktiota %sE449: Virheellinen ilmaus saatuE44: Viallinen regexp-ohjelmaE455: Virhe kirjoitettaessa PostScriptiä tiedostoonE456: Postscript-resurssitiedosta %s.ps ei löydyE456: PostScript-resurssitiedostoa cidfont.ps ei löydyE456: PostScript-resurssitiedostoa prolog.ps ei löydyE456: Tiedoston %s avaus ei onnistuE457: Ei voi lukea PostScript-resurssitiedostoa %sE459: Ei voi siirtyä edelliseen hakemistoonE45: readonly asetettu (lisää ! ohittaaksesi)E460: resurssiosa häviäisi (lisää komentoon ! ohittaaksesi)E461: Virheellinen muuttujanimi: %sE462: Ei voitu valmistella uudelleen avausta %sE463: Alue on suojattu, muuttaminen ei onnistuE464: Käyttäjän määrittelemän komennon monimerkityksinen käyttöE465: :winsize vaatii kaksi numeroargumenttiaE466: :winpos vaatii kaksi lukuargumenttiaE467: Itse määritelty täydennys vaatii funktioargumentinE468: Täydennysargumentti sopii vain itse määriteltyyn täydennykseenE469: virheellinen cscopequickfix-asetus %c kohteelle %cE46: Kirjoitussuojattua muuttujaa %s ei voi muuttaaE470: Komento peruttuE471: Argumentti puuttuuE472: Komento epäonnistuiE473: Sisäinen virheE474: Virheellinen argumenttiE475: Virheellinen argumentti: %sE476: Virheellinen komentoE477: ! ei sallittuE478: Älä panikoi.E479: Ei täsmääE47: Virhe virhetiedostoa luettaessaE480: Ei tsämää: %sE481: Arvoalue ei sallittuE482: Tiedostoa %s ei voi luodaE483: väliaikaistiedoston nimeä ei saada selvilleE484: Ei voi avata tiedostoa %sE485: Ei voi lukea tiedostoa %sE486: Kuviota ei löydy: %sE487: Argumentin pitää olla positiivinenE488: Ylimääräisiä merkkejä perässäE48: Ei sallittu hiekkalaatikossaE490: taitos puuttuuE492: Ei ole editorikomentoE493: Takaperoinen arvoalue annettuE494: Käytä w:tä tai w>>:aaE495: ei autocommand-tiedostoa kohteelle <afile>E496: ei autocommand-puskurinumeroa kohteelle <abuf>E497: ei autocommand-täsmäysnimeä kohteella <amatch>E498: ei :source-tiedostonimeä kohteelle <sfile>E499: Tyhjä tiedostonimi kohteissa % tai #  toimii vain :p:hE49: Virheellinen vierityskokoE500: Loppuarvo on tyhjä merkkijonoE501: Tiedoston lopussaE505: %s on kirjoitussuojattu (lisää komentoon ! ohittaaksesi)E505: %s on kirjoitussuojattu (lisää komentoon ! ohittaaksesi)E506: Ei voi kirjoittaa varmuuskopiotiedostoon (lisää komentoon ! ohittaaksesi)E507: Varmuuskopiotiedoston sulkeminen ei onnistu (lisää komentoon ! ohittaaksesi)E508: Varmuuskopiotiedostoa ei voi lukea (lisää komentoon ! ohittaaksesi)E509: Ei voi luoda varmuuskopiotiedostoa (lisää komentoon ! ohittaaksesi)E50: Liikaa merkkejä \z(E510: Ei voi tehdä varmuuskopiotiedostoa (lisää komentoon ! ohittaaksesi)E511: netbeans on yhdistetty joE512: Sulkeminen ei onnistunutE513: kirjoitusvirhe, muunnos epäonnistui (tyhjää fenc ohittaaksesi)E513: kirjoitusvirhe, muunnos epäonnistui rivillä %ld(tyhjää fenc ohittaaksesi)E514: kirjoitusvirhe (tiedostojärjestelmä täysi)E515: Puskureita ei vapautettuE516: Puskureita ei poistettuE517: Puskureita ei pyyhittyE518: Tuntematon asetusE519: Asetusta ei tuetaE51: Liikaa merkkejä %s(E520: Ei sallitu modeline-rivilläE521: =:n jälkeen tarvitaan lukuE521: tarvitaan luku: &%s = '%s'E522: Puuttuu termcapistaE523: Ei sallittu täälläE524: Kaksoispiste puuttuuE525: Nollan pituinen merkkijonoE526: Lukuarvo puuttuu merkkijonon <%s> jälkeenE527: Pilkku puuttuuE528: '-arvo pitää antaaE529: Termiä ei voi asettaa tyhjäksi merkkijonoksiE52: Pariton \z(E530: Ei voi vaihtaa termiä GUIssaE531: Käytä komentoa :gui GUIn käynnistämiseenE533: Leveän fontin valinta ei onnistuE534: Viallinen leveä fonttiE535: Virheellinen merkki merkin <%c> jälkeenE536: pilkku puuttuuE537: commentstringin pitää olla tyhjä tai sisältää %sE538: Hiirtä ei tuetaE539: Virheellinen merkki <%s>E53: Pariton %s%%(E540: Sulkematon lausekesarjaE541: liikaa kohteitaE542: epätasapainoisia ryhmiäE543: Koodisivu ei ole käypäE544: Näppäinkarttaa ei löydyE545: Kaksoispiste puuttuuE546: Virheellinen tilaE547: Virheellinen hiiren muotoE548: pitää olla numeroE549: Virheellinen prosenttilukuE54: Pariton %s(E550: kaksoispiste puuttuuE551: Virheellinen komponenttiE552: pitäisi olla numeroE553: Ei enää kohteitaE554: Syntaksivirhe ilmauksessa %s{...}E555: tägipinon pohjaE556: tägipinon huippuE557: Ei voi avata termcap-tiedostoaE558: Terminaalia ei löytynyt terminfostaE559: Terminaalia ei löytynyt termcapistaE55: Pariton %s)E560: Käyttö: cs[cope] %sE561: tuntematon cscope-hakutyyppiE562: Käyttö: cstag <ident>E563: stat-virheE563: stat(%s)-virhe: %dE564: %s ei ole hakemisto eikä cscope-tietokantaE566: Ei voitu luoda cscope-putkiaE567: ei cscope-yhteyksiäE568: kaksoiskappaletta cscope-tietokannasta ei lisättyE570: kriittinen virhe cs_manage_matches-funktiossaE571: komento ei toimi, Tcl-kirjastoa ei voitu ladata.E572: palautusarvo %dE573: Virheellinen palvelimen tunniste: %sE574: Tuntematon rekisterityyppi %dE579: liian monta kerrosta :if-komennossaE580: :endif ilman komentoa :ifE581: :else ilman komentoa :ifE582: :elseif ilman komentoa :ifE583: :else monta kertaaE584: :elseif komennon :else jälkeenE585: liian monta tasoa :while- tai :for-komennoissaE586: :continue ilman komentoa :while tai :forE587: :break ilman komentoa :while tai :forE588: :endfor ilman komentoa :forE588: :endwhile ilman komentoa :whileE589: backupext ja patchmod ovat samatE590: Esikatseluikkuna on jo olemassaE591: winheight ei voi olla pienempi kuin winminheightE592: winwidth ei voi olla pienempi kuin winminwidthE593: Tarvitaan ainakin %d riviäE594: Tarvitaan ainakin %d sarakettaE595: Sisältää tulostumattomia tai leveitä merkkejäE596: Viallisia fonttejaE597: Fontsetin valinta ei onnistuE598: Viallinen fontsetE599: imactivatekeyn arvo on virheellinenE59: virheellinen merkki kohdan %s@ jälkeenE600: :endtry puuttuuE601: liian monta tasoa :try-komennossaE602: :endtry ilman komentoa :tryE603: :catch ilman komentoa :tryE604: :catch ilman komentoa :finallyE605: Kiinniottamaton poikkeus: %sE606: :finally ilman komentoa :tryE607: :finally monta kertaaE608: Vim-alkuisia poikkeuksia ei voi heittää :throw-komennollaE609: Cscope-virhe: %sE60: Liikaa monimutkaisia ilmauksia %s{...}sE612: Liikaa merkkejä määriteltyE613: Tuntematon tulostimen fontti: %sE614: vim_SelFile: nykyiseen hakemistoon ei voi palataE615: vim_SelFile: nykyistä hakemistoa ei saada selvilleE616: vim_SelFile: ei saada fonttia %sE617: Ei voi muuttaa GTK+2-GUIssaE618: tiedosto %s ei ole PostScript-resurssitiedostoE619: tiedosto %s ei ole tuettu PostScript-resurssitiedostoE61: Sisäkkäistetty %s*E620: Tulostuskoodaukseen %s muunto ei onnistuE621: resurssitiedoston %s versio on vääräE622: Ei voitu haarauttaa cscopeaE623: Cscope-prosessin luonti epäonnistuiE624: Ei voi avata tiedostoa %sE625: ei voi avata cscope-tietokantaa: %sE626: ei voi hakea cscope-tietokannan tietojaE62: Sisäkkäistetty %s%cE630: %s(): ei voi kirjoittaa ilman yhteyttäE631: %s(): kirjoitus epäonnistuiE63: väärinkäytetty \_E64: %s%c jälkeen ei minkäänE655: Liikaa symbolisia linkkejä (mahdollinen sykli)E658: NetBeans-yhteys katkesi puskurille %ldE659: Pythonia ei voi kutsua rekursiivisestiE65: Virheellinen täsmäysviittausE661: ei löydy %s-ohjetta kohteelle %sE662: Muutoslistan alussaE663: Muutoslistan lopussaE664: muutoslista on tyhjäE665: Ei voi avata GUIta, sopivaa fonttia ei löydyE666: kääntäjää ei tueta: %sE667: Fsync ei onnistunutE668: Väärä avaustila NetBeans-yhteyden infotiedostolle: %sE669: Tulostuskelvoton merkki ryhmän nimessäE66: \z( ei ole sallittu tässäE670: Monia ohjetiedostokoodauksia kielessä: %sE671: Ikkunan otsikkoa ei löydy %sE672: Ikkunaa ei voitu avata MDI-sovellukseenE673: Tukematon monitvauinen merkistökoodaus ja merkistö.E674: printmbcharset ei voi olla tyhjä monitavuiselle koodaukselle.E675: Ei oletusfonttia monitavuiseen tulostukseenE676: Ei autocommand-komentoa acwrite-puskurilleE677: Väliaikaistiedostoon kirjoittaminen ei onnistunutE678: Virheellinen merkki merkinnän %s%%[dxouU] jäljessäE679: rekursiivinen silmukka syncolor.vimissäE67: \z1 jne. ei ole sallittu tässäE680: <puskuri=%d>: virheellinen puskurinumeroE681: Puskuria ei ole ladattuE682: Virheellinen hakulauseke tai erotinE683: Tiedostonimi puuttuu tai kuvio on viallinenE684: Indeksi %ld luettelon rajojen ulkopuolellaE685: Sisäinen virhe: %sE686: Argumentin %s pitää olla listaE687: Kohteita on vähemmän kuin listan alkioitaE688: Kohteita on enemmän kuin listan alkioitaE689: Vain listalla ja sanakirjalla voi olla indeksejäE68: Virheellinen merkki ilmauksen \z jälkeenE690: :for-kommenolta puuttuu inE691: Listaa voi verrata vain listaanE692: Virheellinen toiminto listalleE694: Virheellinen toiminto funcrefilleE695: Funcrefiä ei voi indeksoidaE696: Listasta puuttuu pilkku: %sE697: Listan lopusta puuttuu ]: %sE698: muuttuja on upotettu liian syvälle kopioitavaksiE699: Liikaa argumenttejaE69: ] puuttuu merkinnän %s%%[ jäljestäE700: Tuntematon funktio: %sE701: Virheellinen tyyppi funktiolle len()E702: Lajittelun vertausfunktio ei onnistunutE703: Funcref ei käy NumberistaE704: Funcrefin muuttujanimen pitää alkaa suuraakkosella: %sE705: Muuttujanimi on sama kuin olemassaolevan funktion: %sE707: Funktion nimi on ristiriidassa muuttujan kanssa: %sE708: [:]:n pitää olla viimeisenäE709: [:] toimii vain listallaE70: Tyhjä %s%%[]E710: Listalla on enemmän alkioita kuin kohteellaE711: Listalla ei ole tarpeeksi alkioitaE712: Argumentin %s pitää olla lista tai sanakirjaE713: Sanakirjassa ei voi olla tyhjiä avaimiaE714: Lista tarvitaanE715: Sanakirja tarvitaanE716: Avainta %s ei ole sanakirjassaE717: Sanakirja-alkio on jo olemassaE718: Funcref tarvitaanE719: Sanakirjassa ei voi käyttää merkintää [:]E71: Virheellinen merkki merkinnän %s%% jäljessäE720: Sanakirjasta puuttuu kaksoispiste: %sE721: Kaksi samaa avainta sanakirjassa: %sE722: Sanakirjasta puuttuu pilkku: %sE723: Sanakirjan lopusta puuttuu }: %sE724: muuttuja on upotettu liian syvälle näytettäväksiE725: dict-funktio ilman sanakirjaa: %sE726: Stride on nollaE727: Alku on lopun jälkeenE728: Sanakirja ei käy NumberistaE729: Funcref ei käy merkkijonostaE72: Swap-tiedoston sulkemisvirheE730: Lista ei käy merkkijonostaE731: Sanakirja ei käy merkkijonostaE732: :endfor ilman komentoa :whileE733: :endwhile ilman komentoa :forE734: Väärä muuttujatyyppi muuttujalle %s=E735: Sanakirjaa voi verrata vain sanakirjaanE736: Virheellinen toiminto sanakirjalleE737: Avain on jo olemassa: %sE738: Kohteen %s muuttujia ei voi listataE739: hakemistoa ei voi luoda: %sE73: tägipino tyhjäE740: Liikaa argumentteja funktiolle %sE741: Arvo on lukittu: %sE742: Ei voi muuttaa muuttujan %s arvoaE743: muuttujassa liian monta tasoa lukituksen käsittelyynE744: NetBeans ei tue muutoksia kirjoitussuojattuihin tiedostoihinE745: Lista ei käy NumberistaE746: Funktion nimi ei ole sama kuin skriptin tiedostonnimi: %sE747: Hakemistoa ei voida muuttaa, puskuria on muokattu (lisää komentoon ! ohittaaksesiE748: Ei aiemmin käytettyjä rekisterejäE749: tyhjä puskuriE74: Liian monimutkainen komentoE750: Aloita käskyllä :profile start {fname}E751: Tulostetiedostonimessä ei saa olla alueen nimeäE752: Ei edellistä oikaisulukukorjaustaE753: Ei löytynyt: %sE754: Enintään 8 aluetta tuetaanE755: Virheellinen alue kohteelle %sE756: Oikaisuluku ei ole päälläE757: Ei vaikuta oikaisulukutiedostoltaE758: Oikolukutiedosto katkaistuE75: Liian pitkä nimiE760: Ei sanalaskuria kohteessa %sE761: Affiksitiedoston FOL-, LOW- tai UPP-muotovirhe E762: Merkki FOL:ssä, LOW:ssä tai UPP:ssä ei kuulu arvoalueeseenE763: Sanan merkit muuttuvat oikaisulukutiedostojen välilläE764: Asetus %s on asettamattaE765: spellfile ei sisällä %ld kohtaaE766: printf():lle ei annettu tarpeeksi argumenttejaE767: printf():lle annettiin liikaa argumenttejaE768: Swap-tiedosto on jo olemassa: %s (komento :silent! ohittaa)E769: ] puuttuu merkinnän %s[ jäljestäE76: Liian monta [:aE770: Tukematon osio oikaisulukutiedostossaE771: Vanha oikaisulukutiedosto vaatii päivittämistäE772: Oikaisulukutiedosto on uudemmalle VimilleE773: Symlinkkisilmukka kohteelle %sE774: operatorfunc on tyhjäE775: Eval ei ole käytettävissäE776: Ei sijaintilistaaE777: Pitää olla merkkijono tai listaE778: Ei vaikuta .sug-tiedostolta: %sE779: Vanha .sug-tiedosto pitää päivittää: %sE77: Liikaa tiedostonimiäE780: .sug-tiedosto on uudemmalle Vimille: %sE781: .sug-tiedosto ei täsmää .spl-tiedostoon: %sE782: virhe luettaessa .sug-tiedostoa: %sE783: kaksoiskappale merkistä MAP-kohdassaE784: Viimeistä välilehteä ei voi sulkeaE785: complete() toimii vain syöttötilassaE786: Aluetta ei voi käyttääE787: Puskuri vaihtui odottamattaE788: Puskuria ei voi muokata nytE789: ] puuttuu: %sE78: Tuntematon merkkiE790: undojoin ei toimi undon jälkeenE791: Tyhjä keymap-kenttäE792: tyhjä valikkonimiE793: Yksikään muu diff-tilan puskurit ei ole muokattavissaE794: Muuttujaa ei voi asettaa hiekkalaatikossa: %sE795: Muuttujaa %s ei voi poistaaE797: SpellFileMissing autocommand poisti puskurinE798: ID on varattu kohteelle ":match": %ldE799: Käyttökelvoton ID: %ld (pitää olla vähintään 1)E79: Jokerimerkkien avaus ei onnistuE800: Arabiaa ei voi käyttää, koska sitä ei käännetty mukaan
E801: ID jo käytössä: %ldE802: Käyttöklvoton ID: %ld (pitää olla vähintään 1)E803: ID:tä ei löydy: %ldE804: Ei voi käyttää '%':a Floatin kanssaE805: Float ei käy NumberistaE806: Float ei käy merkkijonostaE807: Odotettiin Float-argumenttia printf():lleE808: Number tai Float vaaditaanE809: #< ei ole käytössä jollei +eval ole päälläE80: KirjoitusvirheE810: Ei voi lukea tai kirjoittaa väliaikaistiedostojaE811: Puskuria ei voi vaihtaa nytE812: Autocommands muutti puskurin tai sen nimenE813: Ei voi sulkea autocmd-ikkunaaE814: Ei voi sulkea viimeistä ikkunaa, joka ei ole autocmd-ikkunaE815: komento ei toimi, MzScheme-kirjastoa ei voitu ladata.E816: Ei voi lukea patchin tulostettaE817: Blowfishin tavujärjestys vääräE818: sha256-testi epäonnistui failedE819: Blowfish-testi epäonnistuiE81: <SID> skriptin ulkopuolellaE820: sizeof(uint32_t) != 4E821: Tiedoston salaus on tuntematonE822: Kumoustiedostoa ei voi avata lukemista varten: %sE823: Ei ole kumoustiedosto: %sE824: Epäyhteensopiva kumoustiedosto: %sE825: Pilaanntunut kumoustiedosto (%s): %sE826: Kumoustiedoston purku epäonnistui: %sE827: Kumoustiedosto on salattu: %sE828: Kumoustiedoston avaus kirjoittamista varten ei onnistu: %sE829: Kirjoitusvirhe kumoustiedostossa: %sE82: Mitään puskuria ei voitu varata, lopetetaan...E830: Kumouslukua %ld ei löydyE831: bf_key_init() tyhjällä salasanallaE832: Salaamattomalla tiedostolla on salattu kumoustiedosto: %sE833: %s on salattu eikä tämä Vim tue salaustaE834: listcharsin arvoissa on ristiriitojaE835: fillcharsin arvossa on ristiriitojaE836: Python: Ei voi käyttää komentoja :py ja :py3 samassa istunnossaE837: Python: Ei voi käyttää komentoja :py ja :py3 samassa istunnossaE838: netbeans ei toimi tässä käyttöliittymässäE839: Täydennys vaihtoi ikkunaaE83: Puskuria ei voitu varata, käytetään toista...E840: Täydennys poisti tekstiäE841: Varattua nimeä ei voi käyttää käyttäjän määrittelemänä komentonaE842: ei rivinumeroa kohteelle <slnum>E843: Virhe päivitettäessä swapin kryptaustaE844: Virheellinen cchar-arvoE845: Muisti ei riitä, sanalista jää keskeneräiseksiE846: Avainkoodi puuttuuE847: Liikaa syntax includejaE848: Liikaa syntaksiklustereitaE849: Liikaa korostuksia ja syntaksiryhmiäE84: Ei muokattuja puskureitaE850: Virheellinen rekisterin nimiE851: Ei voitu luoda uutta prosessia käyttöliittymälleE852: Lapsiprosesi ei voinut käynnistää käyttöliittymääE853: Kaksoiskappale argumentin nimestä: %sE854: polku on liian pitkä täydennykseenE855: Autocommands lopetti komennonE858: Eval ei palauttanut python-oliotaE859: Ei voitu konvertoida python-oliota vim-arvoksiE85: Luetteloitua puskuria ei oleE862: g: ei toimi täälläE864: \%#=-merkkien perään voi tulla vain 0, 1 tai 2. Käytetään automaattista engineä E865: (NFA) Säännöllisen ilmauksen ennenaikainen loppuE866: (NFA-regexp) %c väärässä paikassaE867: (NFA) Tuntematon operaattori '\%%%c'E867: (NFA) Tuntematon operaattori '\z%c'E868: Virhe NFA:n ekvivalenssiluokkia tekemisessäE869: (NFA) Tuntematon operaattori '\@%c'E86: Puskuria %ld ei oleE870: (NFA regexp) Virhe luettaessa toiston määriäE871: (NFA regexp) Multi ei voi seurata multiaE872: (NFA regexp) Liian monta suljetta '('E873: (NFA regexp) oikea lopetusvirheE874: (NFA) Ei voida poistaa pinostaE875: (NFA regexp) (Muunnettaessa postfixistä NFA:ksi), liikaa tiloja jäljellä pinossaE876: (NFA regexp) Tila ei riitä NFA:n tallentamiseenE877: (NFA regexp) Virheellinen merkkiluokka: %ldE878: (NFA) Ei voitu allokoida muistia polkujen läpikäyntiinE879: (NFA regexp) Liikaa merkkejä \z(E87: Viimeisen puskurin ohi ei voi edetäE881: Rivimäärä vaihtui odottamattaE882: Uniqin vertausfunktio ei onnistunutE883: hakulauseke- ja -ilmausrekisteri ei voi sisältää kahta tai useampaa riviäE884: Funktion nimessä ei saa olla kaksoispistettä: %sE885: Ei voida muuttaa merkkiä %sE886: Viminfo-tiedostoa ei voit uudelleennimetä nimelle %sE887: Komento ei toimi, Pythonin site-moduulien lataaminen ei onnistunut.E888: (NFA-säänn. ilmaus) ei voi toistaa kohdetta %sE88: Ensimmäisen puskurin ohi ei voi edetäE890: Ylimääräisiä merkkejä merkin ] perässä: %s]%sE891: Funcref ei käy FloatistaE892: String ei käy FloatistaE893: Lista ei käy FloatistaE894: Sanakirja ei käy FloatistaE895: Komento ei toimi, MzScheme-moduulia racket/base ei voitu ladata.E898: socket() funktiossa channel_open()E89: Puskurin %ld muutoksia ei ole tallennettu (lisää komentoon ! ohittaaksesi)E901: gethostbyname() funktiossa channel_open()E902: Ei voi yhdistää porttiinE903: komennolla ei-merkkijonoargumenttiE904: viimeisen expr/call-argumentin pitää olla numeroE904: kolmannen argumentin pitää olla listaE905: tuntematon komento: %sE906: ei ole avoin kanavaE907: Käytettiin erikoisarvoa FloattinaE908: huono arvo merkkijonolleE909: erikoismuuttujaa ei voi indeksoidaE90: Ei voi vapauttaa viimeistä puskuriaE910: Job ei käy NumberistaE911: Job ei käy FloatistaE912: ei voida käyttää funktioita ch_evalexpr(), ch_sendexpr() raa'an tai nl-kanavan kanssaE913: Channel ei käy NumberistaE914: Käytettiin Channelia FloattinaE915: in_io-puskurilla pitää olla in_buf tai in_name asetettuE916: ei ole jobE917: Ei voitu käyttää callbackia %s()E918: puskuria ei voi ladata: %sE919: Hakemisto puuttuu kohteesta %s: %sE91: shell-asetus on tyhjäE920: _io-tiedostolla pitää olla _name asetettuE921: Virheellinen callback-argumenttiE922: odotettiin dictiäE923: toisen function()-argumentin pitää olla lista tai sanakirjaE924: Nykyinen ikkuna on suljettuE925: Nykyinen quickfix on muuttunutE926: Nykyinen sijaintiluettelo on muuttunutE927: Viallinen toiminto: %sE928: Merkkijono puuttuuE929: liikaa viminfo-väliaikaistiedostoja, kuten %s.E92: Puskuria %ld ei löydyE930: Komentoa :redir ei voi käyttää funktion execute() sisälläE931: Puskuria ei voi rekisteröidäE932: Sulkeumafunktion ei pitäisi olla uloimmalla tasolla: %sE933: Funktion nimi poistettu: %sE934: Ei voida hypätä puskuriin jolla ei ole nimeäE935: Virheellinen alitäsmäyksen numero: %dE936: Nykyistä ryhmää ei voi poistaaE937: Ei voida poistaa puskuria joka on käytössäE938: Kaksi samaa avainta JSONissa: %sE939: Positiivinen luku tarvitaanE93: %s täsmää useampaan kuin yhteen puskuriinE940: Muuttujaa %s ei voi lukita tai avataE941: palvelin on jo käynnissäE942: +clientserver-toiminto ei ole saatavillaE943: Komentotaulukko pitää päivittää komennolla 'make cmdidxs'E944: Merkiluokan arvoalua on takaperinE945: Liian laaja valikoima merkkiluokassaE946: Terminaalia jossa suoritetaan komentoa ei voi tehdä muokattavaksiE947: Komento on vielä käynnissä puskurissa "%s"E948: Komento on vielä käynnissäE948: Komento on kesken (lisää loppuun ! lopettaaksesi komennon)E94: %s ei täsmää yhteenkään puskuriinE95: Samanniminen puskuri on jo olemassaE96: Ei voi diffata enempää kuin %ld puskuriaE97: Ei voi luoda diffejäE98: Ei voi lukea diffin tulostettaE99: Tämä puskuri ei ole diff-tilassaVIRHE: Muokkaa tiedostoaMuokkaa uudessa ikkunassaMuokkaa &Vimillä&Muokkaa usealla VimilläMuokkaa olemassaolevalla Vimillä - Muokkaa yhdellä &VimilläMuokkaa valittuja tiedostoja VimilläKoodaus:Funktion loppuLadatun tiedoston loppuAnna salausavain: Anna swap-tiedoston numero tai 0 lopettaaksesi: Anna sama avain uudestaan: Siirrytään vianetsintätilaan, kirjoita cont jatkaaksesi.Siirrytään Ex-tilaan, kirjoita visual palataksesi normaaliin tilaan.VirheVirhe ja keskeytysVirhe prosessin käynnistämisessä, varmista että gvim on polullaVirhe suoritettaessa komentoja %s:VirhetiedostoArvioitu käyttömuisti: %d tavuaPoikkeusPoikkeus otettu kiinni: %sPoikkeus poistettu: %sPoikkeus lopeteltu: %sPoikkeus heitetty: %sSuoritetaan %sOdotettiin MAP-arvoa kohteessa %s rivillä %dOdotettiin REP(SAL)-arvoa kohteessa %s rivillä %dOdotettiin Y:tä tai N:ää kohteessa %s rivillä %d: %sIlmausUlkoisia alitäsmäyksiä:
FLAG kohteessa %s lippujen jälkeen rivillä %d: %sEi voitu asettaa polkukoukkua: sys.path_hooks ei ole lista
Koeta seuraavaa:
- lisää vim.path_hook muuttujaan sys.path_hooks
- lisää vim.VIM_SPECIAL_PATH muuttujaan sys.path
Ei onnistuttu asettaman polkua: sys.path ei ole list
Lisää vim.VIM_SPECIAL_PATH muuttujaan sys.pathTiedostoa %s ei oleTiedoston sisältö on muuttunut, joen kumoustiedot ovat käyttökelvottomiaTiedosto %s on kirjoitussuojattu.
Siihen saattaa voida silti kirjoittaa.
Yritetäänkö?Tiedosto säilytettyTiedostotSuodatusEtsi ja korvaa (\\:llä löytää \:t)Hae &seuraavaEtsi seuraavaEtsi merkkijonoa (\\:llä löytää \:t)Etsi:Ladattu kumoustiedoto %sEnsimmäinen kappale kohteessa %s rivillä %d: %sLippu ei ole lukuarvo kohteessa %s rivillä %d: %sFontti %s ei ole tasavälinenFontti%ld:n leveys ei ole kaksi kertaa fontti0:nFontti0:n leveys: %ldFontti0: %sFontti1:n leveys: %ldFontti1: %sFontti:Asetukselle %sRoskaa argumentin perässäTervehdys, Vimin käyttäjä.Auta Ugandan köyhiä lapsiaKappaleen loppu tuli vastaanIO-virheEi-ASCII-merkkien takia ohitettuja sanoja %d kohteessa %sEi-ASCIIn takia ohitettuja sanoja %dOhitetaan pitkä rivi tägitiedostossaVirheellinen tiedostonimiTuntematon lippu kohteessa %s rivillä %d: %sVirheellinen rekisterin nimiVirheellinen aloitusmerkkiSyöteriviSyöte_menetelmätKeskeytysKeskeytys: KeskeytettyVäärä argumentti valitsimelleVirheellinen fonttimääritysVirheellinen region-luku kohteessa %s rivillä %d: %sTuntematon FLAG kohteessa %s rivillä %d: %sAvaimet eivät täsmää!Tapa yhteysLinkitys: Lista tai luku tarvitaanLuan kirjastoa ei voitu ladata.KirjaintasoKorvaa kokonaisia sanojaViestiKäännöksen ylläpitäjä: Flammie Pirinen <flammie@iki.fi>> puuttuuPuuttuva FOL, LOW tai UPP rivi kohteessa %sPuuttuva SOFO%s-rivi kohteessa %sMuokannut Nimi:Tarvitaan %s versio %ld
Amigados 2.04 tai uudempi tarvitaan
Tarvitaan salausavain kohteelle %s NetBeans ei salli kirjoittaa muokkaamattomiin puskureihinUusi välilehtiEiEi syntaksikohteita tälle puskurilleLyhennettä ei löydyEi katkaisukohtiaEi näyttöäEi näyttöä: Ilmauksen lähetys epäonnistui.
Ei kenttiäEi sisällytettyjä tiedostojaKuvausta ei löydyEi asetettuja merkkejäEi täsmäystä kursorin alla, etsitään seuraavaEi täsmääviä autocommandsiaEi vanhoja tiedostojaEi swap-tiedostoaEi tekstiä tulostettavaksiEi voi kumota, jatketaan siltiEi käyttäjän määrittelemiä komentojaEi käytössäEi tarpeeksi muistia viitteiden asettamista varten, roskiekeruu peruttiin.Ei lueta kumoustiedosto jonka omistaja on eri: %sEi kumottavaaSanoja ääntämysyhdistelyn jälkeen: %ldOKAvausikkunaAvaa välilehti...Avaa välilehti...X-näytön avaus epäonnistuiX-näytön avaus aikakatkaistiinX-näytön avaus vei %ld millisekuntiaAlkuperäinen tiedosto %sYlikirjoitetaanko olemassaoleva tiedosto %s?Sivu %dOsittaiset kirjoitukset kielletty NetBeans-puskureissaPatch-tiedostoLiian pitkä polkuPolku:Kuvio löytyi joka riviltä: %sKuviota ei löydyKuviota ei löydy: %sÄäntämyksen mukaan yhdistellään...Paina enteriä tai kirjoita komento aloittaaksesi Tulostustyö lähetetty.Tulostettu: %sTulostetaan %sTulostus peruttuTulostetaan sivua %d (%d %%)Hae kuviotaKysymysLuetaan affiksitiedostoa %s...Luetaan taas oikaisulukutiedostoa...Luetaan sanakirjatiedostoa %sLuetaan vakiosyötteestäLuetaan oikaisulukutiedosta %sLuetaan kumoustiedostoa: %sLuetaan viminfo-tiedostoa "%s"%s%s%sLuetaan sanatiedostoa %s...Palautus onnistui. Puskurin ja tiedoston sisällöt täsmäävät.Palautus onnistui. Tarkista, että kaikki on kunnossa.Alusta uudelleen yhteydetKorvaaKorvaa k&aikkiKorvaa kaikkiKorvaa:Suoritetaan Vi-yhteensopivuustilaaSuoritetaan tilattomana, kirjoitettu teksti syötetäänTallenna nimelläTallennusikkunaTallenna uudelleenosoitusTallenna sessioTallenna asetuksetTallenna näkymäTallennetaanko muutokset tiedostoon %s?Luetaan sanakirjaa: %sHaku sisälsi tiedoston: %sLuetaan tägejä.Luetaan: %sVierityspalkki: Pixmapin geometria ei selviäHakujonoEtsitään ilmausta %sEtsitään ilmausta %s kohteesta %sHaku sisälsi tiedoston %sEtsitään tägitiedostoa %s:help E312 kertoo lisätietoja:help W11 kertoo lisätietoja.:help W12 kertoo lisätietoja.:help W16 kertoo lisätietoja.Hakemiston valintaikkunaValittu %s%ld/%ld riviä, %lld/%lld sanaa, %lld/%lld tavuaValittu %s%ld/%ld riviä, %lld/%lld sanaa, %lld/%lld merkkiä, %lld/%lld tavuaValintaLähetetään tulostimelle...Näytä yhteydetNäytä koko pisteinäNäytä tämä viestiMerkit kohteelle %s:Koko:Ohitetaan kumoustiedoston kirjoitus, koska ei ole peruutettaviaohjetiedostoa %s ei löydyei ehdotuksiavain %ld ehdotustakomento ei toimi, Perl kirjastoa ei voinut ladata.Lataa vim-skriptiTue Vimin kehitystäPinon koko kasvaaTyyli:Korvaa Swap-tiedosto Swap-tiedosto %s on olemassa, ylikirjoitetaanko?Swap-tiedosto on jo olemassaSwap-tiedosto on salattu: %sSwap-tiedostoja löytyi:Vaihdetaan käyttämään backtrackkaavaa RE-engineä ilmaukselle: Tabisivu %dRepäise valikko irtiTerminaaliTerminaali-lopetettuX-näytön testaus epäonnistuiKiitos että ajoit VimiäTiedosto luotiin Ainoa täsmäysTähän Vimiin ei ole käännetty diff-toimintoja mukaan.Tämä cscope-komento ei tue ikkunan jakamista.
Liikaa +komentoja, -c-komentoja tai --cmd-komentojaLiikaa yhdyssanalippujaLiikaa muokkausargumenttejaLiikaa jälkikäteistettyjä prefiksejäLiikaa jälkikäteistettyjä prefiksejä tai yhdyssanalippujaLiikaa regionseja kohteessa %s rivillä %d: %sAlkuSanoja yhteensä: %dTekstiä rivin perässä tiedostossa %s rivillä %d: %sKirjoita :qa! ja <Enter> niin hylkäät muutokset ja lopetat ViminValitse numero ja <Enter> (tyhjä peruu): Kirjoita numero ja <Enter> tai valitse hiirellä (tyhjä peruu): Ei voi lukea lohkoa 0 kohteesta Komentopalvelimen nimen rekisteröinti ei onnistuTuntematonTuntematon asetusargumenttiTunnistamaton lippu kohteessa %s rivillä %d: %sTunnistamaton tai kaksoiskappale arvosta kohteessa %s rivillä %d: %sNimetönYlösKäytä Vimin versiota 3.0
Käytettiin CUT_BUFFER0:aa tyhjän valinnan sijaanKäytetään swäpin salausavainta tekstitiedostolle
Käytetään swap-tiedostoa %sVIM - HUOMAUTUSVIM - Etsi ja korvaa...VIM - Etsi...VIM - Vi IMprovedVIM-virheVIM: Ei voi avata ikkunaa
VIMRUN.EXEä ei löydy muuttujasta $PATH.
Ulkoiset komennot eivät pysähdy suorituksen lopussa.
Lisätietoja komennolla  :help win32-vimrunVim - fonttivalitsinVim E458: Ei voi varata värikartan alkiota, värit voivat mennä väärinVim-varoitusVim-ikkunaVim-virheVim-virhe: ~aVim sulkeutuu koodilla %d
Vim on avointa lähdekoodia ja vapaasti jaossaVim: Napattiin %s
Vim: Virhe luettaessa syötettä, poistutaan...
Vim: Virhe: Gvimin käynnistys NetBeansistä ei onnistu
Vim: Virhe: Tämä versio Vimistä ei toimi Cygwinin terminaalissa
Vim: Pääikkuna tuhoutui odottamatta
Vim: Luetaan vakiosyötteestä...
Vim: sessiomanageri lähetti die-pyynnön
Vim: Varoitus: Syöte ei tule terminaalilta
Vim: Varoitus: Tuloste ei mene terminaalille
W10: Varoitus: Muutetaan kirjoitussuojattua tiedostoaW11: Varoitus: Tiedostoa %s on muutettu muokkauksen aloituksen jälkeenW12: Varoitus: Tiedostoa %s on muutettu ja Vimin puskurissa on muutoksia tiedostoonW13: Varoitus: Tiedosto %s on luotu muokkauksen aloituksen jälkeenW14: Varoitus: Tiedostonimiluettelon ylivuotoW15: Varoitus: Väärä rivierotin, ^M saattaa puuttuaW16: Varoitus: Tiedoston %s oikeuksia on muutettu muokkauksen aloituksen jälkeenW17: Arabialle pitää olla UTF-8:aa, aseta :set encoding=utf-8W18: Virheellinen merkki ryhmän nimessäW19: käytössä oleva augroup poistetaanW20: Vaadittu python-versio 2.x ei ole tuettu. Ohitetaan: %sW21: Vaadittu python-versio 3.x ei ole tuettu. Ohitetaan: %sW22: Ylimääräistä tekstiä :endfunction jälkeen: %sVAROITUS: tiedosto on muuttunut viime lukukerran jälkeen!VaroitusVaroitus: Ei löydetty sanalistaa %s.%s.spl tai %s.ascii.splVaroitus: Ei löydetty sanalistaa %s_%s.spl tai %s_ascii.splVaroitus: Puskuri vaihtui odottamatta (tarkista autocommands)Varoitus: Käytetään heikkoa salausmenetelmää, ks. :help 'cm'Varoitus: sekä yhdyssanamuodostus että NOBREAK käytössäVaroitus: osaa %s ei tuetaVaroitus: terminaalista puuttuu korostusAvattaessa tiedostoa Ei ylikirjoitetat kumoustiedostolla, koska ei voida lukea: %sEi ylikirjoiteta, koska tämä ei ole kumoustiedosto: %sIkkunan sijainti: X %d, Y %dSana %.*s lisätty kohteeseen %sSana %.*s poistettu kohteesta %sSana toisella rivilläKirjoita osittainen tiedostoKirjoitetaan oikaisulukutiedostoa %s...Kirjoitetaan ehdotustiedostoa %s...Kirjoitetaan kumoustiedostoa: %sKirjoitetaan viminfo-tiedostoa %sVäärä CHECKCOMPOUNDPATTERN-arvo kohteessa %s rivillä %d: %sVäärä COMPOUNDMIN-arvo kohteessa %s rivillä %d: %sVäärä COMPOUNDRULES-arvo kohteessa %s rivillä %d: %sVäärä COMPOUNDSYLMAX-arvo kohteessa %s rivillä %d: %sVäärä COMPOUNDWORDMAX-arvo kohteessa %s rivillä %d: %sXSMP:n ICE-yhteyden tarkkailu epäonnistuiXSMP SmcOpenConnection epäonnistui: %sXSMP käsittelee save-yourself-pyyntöäXSMP kadotti ICE-yhteydenXSMP avaa yhteyttäKYLLÄKyllä[MUUNNOSVIRHE rivillä %ld][CR puuttuu][Poistettu][Laite][Liian iso tiedosto][Ohje][VIRHEELLINEN OKTETTI rivillä %ld][Vajaa viimeinen rivi][Sijaintiluettelo][EI muunnettu][uusi HAKEMISTO][Uusi tiedosto][Uusi tiedosto][Uusi][Nimetön][Viimeisintä muutosta ei ole kirjoitettu]
[Muokkaamaton][Lupa kielletty][Esikatselu][Pikakorjausluettelo][LUKUVIRHEITÄ][Luku][Lukuvirheitä][Raapust][kutsut] yht. re/malloc() %lu, yht. free() %lu

[merkki erikoinen][muunnettu][salattu][dos-muoto][dos][fifo t. soketti][fifo][tiedosto ..]       muokkaa tiedostoja[pitkät rivit hajotettu][mac-muoto][mac][eiriviv.][kirjoitussuojattu][soketti][unix-muoto][unix]_Peru_Sulje_OK_Avaa_Tallennaaktiivinenadd()-argumenttijälkeen muutoksenja katso diffillä muutokset alkuperäiseen tiedostoon)yritettiin asettaa sekvenssiä jonka koko on %d sliceen jonka koko on %dyritettiin sijoittaa sekvenssiä jonka koko on enemmän kuin %d sliceenyritettiin viitata poistettuun puskuriinyritettiin viitata poistettuun välilehteenyritettiin viitata poistettuun ikkunaanpoistetaan autocommand automaattisesti: %s <puskuri=%d>autocommand %sennen muutostalohko %ld riviltä kopioitu%s1 rivin lohko kopioitu%spuskuri on virheellinen: tekijät Bram Moolenaar et al.inputrestore() suoritettu useammin kuin inputsave()kutsutaan funktiota %sei voi poistaa OutputObject-attribuuttejacharconvertin tulostetta ei voida lukeaei voi vaihtaa konsolitilaa?
ei voi luoda puskuri- tai ikkunakomentoa, olio on poistumassaei voitu poistaa riviäei voi poistaa vim.Dictionary-attribuuttejaei voi poistaa vim.List-attribuuttejaei voida hakea riviäei voitu lisätä riviärivin lisäys ei onnistuei voida muuttaa kiinnitettyä sanakirjaaei voida muokata kiinitettyä listaaei voi avata callbackia ei voi rekisteröidä: puskuri tai ikkuna on poistettucallbackia ei voi rekisteröidä: puskurin tai ikkunan viitettä ei löydyei voitu korvata riviäei voitu tallentaa kumoustietojaei voi asettaa attribuuttia %sei voi asettaa rivejäEi voi kopioida; poista joka tapauksessamuutosmuutostasulkeminenkmnt: %sjatkaa kohdassa %sei voitu ladata %sei voitu avata puskuriacs_create_connection epäonnistuics_create_connection setpgid epäonnistuics_create_connection: fdopen fr_fp epäonnistuics_create_connection: fdopen to_fp epäonnistuicscope-komennot:
cscope-yhteys %s on katkaistukursorin sijainti puskurin ulkopuolellaoletusarvona poistettu lohko 1?dictionary on lukittuei voitu vaihtaa annetulle välilehtisivulleei vaihdettu annettuun ikkunaandlerror = %sälä lopeta editoria kesken tallentamisen.tyhjiä avaimia ei voi käyttääympäristömuuttujavirhe Schemestä Vimiin konversiossavirhekäsittelinodotettiin 3-tuplea tuloksena imp.find_module()-kutsulle, ei %sodotettiin 3-tuple tuloksnea imp.find_module()-kutsulle, mutta tuplen koko onkin %dodotettiin instanssia tyypeistä bytes() tai str(), ei %sodotettiin tyyppiä int() tai jotain joka muuntuu tyyppiin int(), ei %sodotettiin instanssia tyypeistä int(), long() tai mitä tahansa joka muuntuisi tyyppiin long(), ei %ssekvenssin elementin koon pitäisi olla 2, ei %dodottettiin insanssia tyypeistä str() tai unicode(), ei %sodotettiin vim.Buffer-oliota, ei %sodotettiin vim.TabPage-oliota, saatiin %sodotettiin vim.Window-oliota, saatiin %silmaukset poistettu käytöstä käännösaikanaextend()-argumenttiei voitu lisätä kohtaa listaanavaimen %s lisääminen sanakirjaan ei onnistuhakemistoa ei voitu muuttaaei voitu löytää ikkunaa nykyiselle välilehtisivulleei voity uudelleennimetä puskuriaei voitu suorittaa funktiota %sei voitu suorittaa koodiaei voitu vaihtaa puskuriin %driviä vähemmäntiedosto
tiedosto / konteksti / rivi
filter()-argumenttilopetettuladattu %skehys ylimmällä tasolla: %dkehys on nollavapautetaan %ld riviäfunktiota %s ei olegvimext.dll-virhehashtab muuttui kesken iteraationohjepiilotettu asetuspolusta ---
indeksin pitää olla int tai slice, ei %sinsert()-argumenttisisäinen virhe: NULL-viite annettusisäinen virhe: ei voitu lisätä kohtaa listaansisäinen virhe: ei pystytty hakea vimin listan indeksiä %dsisäinen virhe: imp.find_module palautti tuplen joka sisältää nullinsisäinen virhe: huono arvotyyppisisäinen virhe: ei vim-listan indeksiä %dsisäinen virhe: ei tarpeeksi listan kohtiasisäinen virhe: tuntematon asetustyyppivirheellinen attribuutti: %svirheellinen puskurinumerovirheellinen ilmausvirheellinen merkin nimion laite (ei käytössä opendevice-asetuksen takia)on hakemistoei ole tiedostoei ole tiedosto tai kirjoitettava laiteon kirjoitussuojattu (lisää komentoon ! ohittaaksesi)näppäimistökeskeytysrivi %4ld:rivi %6d, sana %6d - %srivi %ldrivi %ld/%ld --%d %%-- sarake rivi %ld: %srivi %ld: ei voitu ladata %srivi %ld: ladataan %srivi vähemmänrivinumero arvoalueen ulkopuolellarivinumero arvoalueen ulkopuoleltalistakonstruktori ei tue avainsanaparametrejälistaindeksi arvoalueen ulkopuoleltaluettelo on lukittuuloskirjautuminenmap()-argumenttimerkin nimen pitää olla yksi merkkimerkko ei ole asetettutäsmäys %dtäsmäys %d/%dtäsmäys tiedostossaenitntään mch_get_shellsize: ei ole konsoli?
valikko Muokkaa->Yleiset asetukset->Vaihda syötetilaavalikko Muokkaa->Yleiset asetukset->Vaihda Vi-yhteensopivuuttavalikko Ohje->Orvot            lisätietoja varten          valikko Ohje->Sponsoroi/Rekisteröi lisätietoja vartenvähintään mode-rivirivi lisääriviä lisäänetbeans ei toimi tässä käyttöliittymässä
uusi kuori avattu
eiei cscope-yhteyksiä
ei tarkkaa täsmäystävälilehteä ei oleikkunaa ei oleei synkkaustaei sallittu Vimin hiekkalaatikossaei löytynyt '%s' ei löydy kohteesta: %sei toteutettunumero muutoksia aika              tallennettuluvun on oltava yhtä suuri tai suurempi kuin nollaluvun on oltava nollaa suurempipe_line_count on nollaesi-vimrc-komentorivivirhe ikkunaa vaihtaessakirjoitussuojausattribuutti: puskuritallennetaanremove()-argumenttikorvaa kohteella %s (y/n/a/q/l/^E/^Y)?reverse()-argumenttirivi %d sarake %dsuoritetaanhaku pääsi LOPPUUN, jatketaan ALUSTAhaku pääsi ALKUUN, jatketaan LOPUSTAkuori kuori palautti arvon %dsammutusslicen askel ei voi olla nollasort()-argumenttiladataan %sstack_idx pitää olla 0merkkijono ei saa sisältää rivinvaihtojasynkkaa C-tyylin kommentteihinsynkkaus aloitettu syntaksin merkkitason ohitus syntaksin merkkitason täsmäyssyntaksin piilotus poissyntaksin piilotus päälläsyntax iskeyword syntaksin oikaisuluku oletusarvollasyntaksin oikaisuluku ei-päätasollasyntaksin oikaisuluku päätasollatägi %d/%d%stäginimitulostimelle %s kohteessa %skirjoita :help cp-default<Enter> ohjetta oletuksista vartenkirjoita :help iccf<Enter>    lisätietoa varten            kirjoita :help register<Enter> lisätietoja vartenkirjoita :help sponsor<Enter>  lisätietoja vartenkirjoita :help version8<Enter> versiotietoja varten        kirjoita :help<Enter> tai <F1> ohjetta varten              kirjoita :q<Enter>            lopettaaksesi                kirjoita :set nocp<Enter>      Vimin oletuksiin            ei voitu konvertoida oliota %s vim-sanakirjaksiei voitu konvertoida tyypistä %s vim-listaksiei voi konvertoida oliota %s vim-tietorakenteeksiei voitu hakea asetuksen arvoaei voi tyhjentää yleistä asetusta %sei voi tyhjentää asetusta %s jolla ei ole yleistä arvoauniq()-argumenttituntematontuntematon asetus: tuntematon asetustuntematon vimOptionnimetöntä funktiota %s ei olearvo on liian suuri mahtumaan C:n int-tyyppiinarvo on liian pieni mahtumaan C:n int-tyyppiinversio vim-virheikkunan indeksi alueen ulkopuolellaikkuna on virheellinenperinteisellä GUIlla.Carbon-GUIlla.Cocoa-GUIlla.GTK2-GUIlla.GTK2-Gnome-GUIlla.GTK3-GUIlla.GUIlla.Photon-GUIlla.X11-Athena-GUIlla.X11-Motif-GUIlla.X11-neXtaw-GUIlla.ilman GUIta.laitteeseen kirjoittaminen pois käytöstä opendevice-asetuksellaPK�j�Z��_L<0<0 vim80/lang/menu_ja_jp.euc-jp.vimnu�[���" vi:set ts=8 sts=8 sw=8 tw=0:
"
" Menu Translations:	Japanese (EUC-JP)
" Last Translator:	MURAOKA Taro  <koron.kaoriya@gmail.com>
" Last Change:		28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
"			  vim-jp (http://vim-jp.org/)
"
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding euc-jp

" Help menu
menutrans &Help			�إ��(&H)
menutrans &Overview<Tab><F1>	��ά(&O)<Tab><F1>
menutrans &User\ Manual		�桼�����ޥ˥奢��(&U)
menutrans &How-to\ links	&How-to���
menutrans &Credits		���쥸�å�(&C)
menutrans Co&pying		������(&P)
menutrans &Sponsor/Register	���ݥ󥵡�/��Ͽ(&S)
menutrans O&rphans		�ɻ�(&R)
menutrans &Version		����������(&V)
menutrans &About		Vim�ˤĤ���(&A)

let g:menutrans_help_dialog = "�إ�פ򸡺����������ޥ�ɤ⤷����ñ�����Ϥ��Ƥ�������:\n\n����⡼�ɤΥ��ޥ�ɤˤ� i_ ���Ƭ���ղä��ޤ�. (��: i_CTRL-X)\n���ޥ�ɥ饤���Խ����ޥ�ɤˤ� c_ ���Ƭ���ղä��ޤ�. (��: c_<Del>)\n���ץ�����̾���ˤ� ' ���ղä��ޤ�. (��: 'shiftwidth')"

" File menu
menutrans &File				�ե�����(&F)
menutrans &Open\.\.\.<Tab>:e		����(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	ʬ�䤷�Ƴ���(&L)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	���֥ڡ����dz���<Tab>:tabnew
menutrans &New<Tab>:enew		������(&N)<Tab>:enew
menutrans &Close<Tab>:close		�Ĥ���(&C)<Tab>:close
menutrans &Save<Tab>:w			��¸(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	̾�����դ�����¸(&A)\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	��ʬɽ��(&D)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	�ѥå���̤�ɽ��(&B)\.\.\.
menutrans &Print			����(&P)
menutrans Sa&ve-Exit<Tab>:wqa		��¸���ƽ�λ(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			��λ(&X)<Tab>:qa

" Edit menu
menutrans &Edit				�Խ�(&E)
menutrans &Undo<Tab>u			���ä�(&U)<Tab>u
menutrans &Redo<Tab>^R			�⤦���٤��(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		�����֤�(&E)<Tab>\.
menutrans Cu&t<Tab>"+x			�ڤ���(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			���ԡ�(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		Ž���դ�(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		������(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		�����(&A)<Tab>]p
menutrans &Delete<Tab>x			�ä�(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		�������(&S)<Tab>ggVG
menutrans &Find\.\.\.			����(&F)\.\.\.
menutrans &Find<Tab>/			����(&F)<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	�ִ�(&L)\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	�ִ�(&L)<Tab>:%s
menutrans Find\ and\ Rep&lace<Tab>:s	�ִ�(&L)<Tab>:s
"menutrans Options\.\.\.			���ץ����(&O)\.\.\.
menutrans Settings\ &Window		���ꥦ����ɥ�(&W)
menutrans Startup\ &Settings		��ư�������(&S)

" Edit/Global Settings
menutrans &Global\ Settings		�������(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!
	\	�ѥ�����Ĵ����(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!
	\	�羮ʸ���������(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!
	\	�ޥå�ɽ������(&S)<Tab>:set\ sm!
menutrans &Context\ lines		���������չԿ�(&C)
menutrans &Virtual\ Edit		�����Խ�(&V)
menutrans Never				̵��
menutrans Block\ Selection		�֥�å�����
menutrans Insert\ mode			����⡼�ɻ�
menutrans Block\ and\ Insert		�֥�å�/����⡼�ɻ�
menutrans Always			��
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!
	\	���(�鿴��)�⡼�����(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!
	\	Vi�ߴ��⡼�����(&O)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		�����ѥ�(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.		�����ե�����(&G)\.\.\.
"
" GUI options
menutrans Toggle\ &Toolbar		�ġ���С�ɽ������(&T)
menutrans Toggle\ &Bottom\ Scrollbar	��������С�(��)ɽ������(&B)
menutrans Toggle\ &Left\ Scrollbar	��������С�(��)ɽ������(&L)
menutrans Toggle\ &Right\ Scrollbar	��������С�(��)ɽ������(&R)

let g:menutrans_path_dialog = "�ե�����θ����ѥ�����Ϥ��Ƥ�������:\n�ǥ��쥯�ȥ�̾�ϥ���� ( , ) �Ƕ�ڤäƤ�������."
let g:menutrans_tags_dialog = "�����ե������̾������Ϥ��Ƥ�������:\n̾���ϥ���� ( , ) �Ƕ�ڤäƤ�������."

" Edit/File Settings

" Boolean options
menutrans F&ile\ Settings		�ե��������(&I)
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!
	\	���ֹ�ɽ������(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!
	\	���й��ֹ�ɽ������(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!
	\ �ꥹ�ȥ⡼�����(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!
	\	����֤�����(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!
	\	ñ����֤�����(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!
	\	����Ÿ������(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!
	\	��ư����������(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!
	\	C������������(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			���ե��(&S)
menutrans Soft\ &Tabstop		���եȥ����������(&T)
menutrans Te&xt\ Width\.\.\.		�ƥ������(&X)\.\.\.
menutrans &File\ Format\.\.\.		���Ե�����(&F)\.\.\.

let g:menutrans_textwidth_dialog = "�ƥ����Ȥ��('textwidth')����ꤷ�Ƥ������� (0�������̵����):"
let g:menutrans_fileformat_dialog = "�ե�������Ϥκݤβ��Ե���η������Ǥ�������."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n����󥻥�(&C)"

menutrans C&olor\ Scheme		���ơ������(&O)
menutrans &Keymap			�����ޥå�(&K)
menutrans None				�ʤ�

" Programming menu
menutrans &Tools			�ġ���(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	����������(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		���(&B)<Tab>^T
menutrans Build\ &Tags\ File		�����ե������(&T)
menutrans &Make<Tab>:make		�ӥ��(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		���顼�ꥹ��(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	��å������ꥹ��(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		���Υ��顼��(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	���Υ��顼��(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	�Ť��ꥹ��(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	�������ꥹ��(&E)<Tab>:cnew
menutrans Error\ &Window		���顼������ɥ�(&W)
menutrans &Update<Tab>:cwin		����(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		����(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		�Ĥ���(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	HEX���Ѵ�(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	HEX������Ѵ�(&R)<Tab>%!xxd\ -r
menutrans Se&T\ Compiler		����ѥ������(&T)

" Tools.Spelling Menu
menutrans &Spelling			���ڥ��(&S)
menutrans &Spell\ Check\ On		���ڥ����å�ͭ��(&S)
menutrans Spell\ Check\ &Off		���ڥ����å�̵��(&O)
menutrans To\ &Next\ error<Tab>]s	���Υ��顼(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	���Υ��顼(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	��������(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	�����򷫤��֤�(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	�����\ "en"\ ����ꤹ��
menutrans Set\ language\ to\ "en_au"	�����\ "en_au"\ ����ꤹ��
menutrans Set\ language\ to\ "en_ca"	�����\ "en_ca"\ ����ꤹ��
menutrans Set\ language\ to\ "en_gb"	�����\ "en_gb"\ ����ꤹ��
menutrans Set\ language\ to\ "en_nz"	�����\ "en_nz"\ ����ꤹ��
menutrans Set\ language\ to\ "en_us"	�����\ "en_us"\ ����ꤹ��
menutrans &Find\ More\ Languages	¾�θ���򸡺�����(&F)

" Tools.Fold Menu
menutrans &Folding			�޾���(&F)
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi	ͭ��/̵������(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	��������Ԥ�ɽ��(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	��������Ԥ�����ɽ��(&W)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	�޾��ߤ��Ĥ���(&L)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	���޾��ߤ��Ĥ���(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	�޾��ߤ򳫤�(&P)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	���޾��ߤ򳫤�(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			�޾����ˡ(&H)
menutrans M&anual			��ư(&A)
menutrans I&ndent			����ǥ��(&N)
menutrans E&xpression			��ɾ��(&X)
menutrans S&yntax			���󥿥å���(&Y)
menutrans &Diff				��ʬ(&D)
menutrans Ma&rker			�ޡ�����(&R)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		�޾��ߺ�(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		�޾��ߺ�(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	���޾��ߺ�(&A)<Tab>zD
" moving around in folds
menutrans Fold\ col&umn\ width		�޾��ߥ�����(&U)

menutrans &Update		����(&U)
menutrans &Get\ Block		�֥�å����(&G)
menutrans &Put\ Block		�֥�å�Ŭ��(&P)

" Names for buffer menu.
menutrans &Buffers		�Хåե�(&B)
menutrans &Refresh\ menu	��˥塼���ɹ�(&R)
menutrans &Delete		��(&D)
menutrans &Alternate		΢�����(&A)
menutrans &Next			���ΥХåե�(&N)
menutrans &Previous		���ΥХåե�(&P)
menutrans [No\ File]		[̵��]
let g:menutrans_no_file = "[̵��]"

" Window menu
menutrans &Window			������ɥ�(&W)
menutrans &New<Tab>^Wn			������(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		ʬ��(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	΢�Хåե���ʬ��(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	��ľʬ��(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	�ե����륨�����ץ���(&X)
menutrans &Close<Tab>^Wc		�Ĥ���(&C)<Tab>^Wc
menutrans Move\ &To			��ư(&T)
menutrans &Top<Tab>^WK			��(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		��(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		��(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		��(&R)<Tab>^WL
menutrans Close\ &Other(s)<Tab>^Wo	¾���Ĥ���(&O)<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			����(&X)<Tab>^Ww
menutrans P&revious<Tab>^WW		����(&R)<Tab>^WW
menutrans &Equal\ Size<Tab>^W=	Ʊ���⤵��(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		������(&M)<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		�Ǿ����(&i)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		�������(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		�Ǿ����(&H)<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		��˥��ơ������(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		���˥��ơ������(&D)<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		�ե�������(&N)\.\.\.

" The popup menu
menutrans &Undo			���ä�(&U)
menutrans Cu&t			�ڤ���(&T)
menutrans &Copy			���ԡ�(&C)
menutrans &Paste		Ž���դ�(&P)
menutrans &Delete		��(&D)
menutrans Select\ Blockwise	���֥�å�����
menutrans Select\ &Word		��(&W)
menutrans Select\ &Sentence	ʸ����(&S)
menutrans Select\ Pa&ragraph	������(&R)
menutrans Select\ &Line		�����(&L)
menutrans Select\ &Block	�֥�å�����(&B)
menutrans Select\ &All		���٤����(&A)

" The GUI toolbar (for Win32 or GTK)
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		�ե�����򳫤�
    tmenu ToolBar.Save		���ߤΥե��������¸
    tmenu ToolBar.SaveAll	���٤ƤΥե��������¸
    tmenu ToolBar.Print		����
    tmenu ToolBar.Undo		���ä�
    tmenu ToolBar.Redo		�⤦���٤��
    tmenu ToolBar.Cut		����åץܡ��ɤ�ڤ���
    tmenu ToolBar.Copy		����åץܡ��ɤإ��ԡ�
    tmenu ToolBar.Paste		����åץܡ��ɤ���Ž���դ�
    tmenu ToolBar.Find		����...
    tmenu ToolBar.FindNext	���򸡺�
    tmenu ToolBar.FindPrev	���򸡺�
    tmenu ToolBar.Replace	�ִ�...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		����������ɥ���
      tmenu ToolBar.WinSplit	������ɥ�ʬ��
      tmenu ToolBar.WinMax	������ɥ����粽
      tmenu ToolBar.WinMin	������ɥ��Ǿ���
      tmenu ToolBar.WinClose	������ɥ����Ĥ���
    endif
    tmenu ToolBar.LoadSesn	���å�����ɹ�
    tmenu ToolBar.SaveSesn	���å������¸
    tmenu ToolBar.RunScript	Vim������ץȼ¹�
    tmenu ToolBar.Make		�ץ������Ȥ�Make
    tmenu ToolBar.Shell		������򳫤�
    tmenu ToolBar.RunCtags	tags��
    tmenu ToolBar.TagJump	����������
    tmenu ToolBar.Help		Vim�إ��
    tmenu ToolBar.FindHelp	Vim�إ�׸���
  endfun
endif

" Syntax menu
menutrans &Syntax		���󥿥å���(&S)
menutrans &Show\ filetypes\ in\ menu	�б��������˥塼��ɽ��(&S)
menutrans Set\ '&syntax'\ only	'syntax'��������(&S)
menutrans Set\ '&filetype'\ too	'filetype'�����(&F)
menutrans &Off			̵����(&O)
menutrans &Manual		��ư����(&M)
menutrans A&utomatic		��ư����(&U)
menutrans on/off\ for\ &This\ file
	\	����/�������(&T)
menutrans Co&lor\ test		���顼�ƥ���(&L)
menutrans &Highlight\ test	�ϥ��饤�ȥƥ���(&H)
menutrans &Convert\ to\ HTML	HTML�إ���С���(&C)

let &cpo = s:keepcpo
unlet s:keepcpo

" filler to avoid the line above being recognized as a modeline
" filler
PK�j�Ze]��#(#( vim80/lang/menu_uk_ua.koi8-u.vimnu�[���" Menu Translations:	Ukrainian
" Maintainer:		Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Last Change:		11 Oct 2001

"
" Please, see readme at htpp://www.vstu.edu.ua/~bohdan/vim before any
" complains, and even if you won't complain, read it anyway.
"

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding koi8-u

" Help menu
menutrans &Help			&�������
menutrans &Overview<Tab><F1>	&������\ ������æ�<Tab><F1>
menutrans &User\ Manual		&��Ҧ�������\ ���\ ���������
menutrans &How-to\ links	&��-�������?
"menutrans &GUI			&GIU
menutrans &Credits		&������
menutrans Co&pying		&�������������
menutrans O&rphans		&�������\ ������
menutrans &Version		&���Ӧ�
menutrans &About		���\ &�������

" File menu
menutrans &File				&���
menutrans &Open\.\.\.<Tab>:e	    &��������\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &���Ħ����\ צ���\.\.\.<Tab>:sp
menutrans &New<Tab>:enew	    &�����<Tab>:enew
menutrans &Close<Tab>:close	    &�������<Tab>:close
menutrans &Save<Tab>:w		    ��&��'����<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	����'����\ &��\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	��&Ҧ�����\ �\.\.\.
menutrans Split\ Patched\ &By\.\.\.	��&����\.\.\.
menutrans &Print					&��������
menutrans Sa&ve-Exit<Tab>:wqa		�������\ �\ ��&���<Tab>:wqa
menutrans E&xit<Tab>:qa			&��Ȧ�<Tab>:qa

" Edit menu
menutrans &Edit				&��������
menutrans &Undo<Tab>u			&���ͦ����<Tab>u
menutrans &Redo<Tab>^R			&���������<Tab>^R
menutrans Rep&eat<Tab>\.		�&��������<Tab>\.
menutrans Cu&t<Tab>"+x			��&Ҧ���<Tab>"+x
menutrans &Copy<Tab>"+y			&������<Tab>"+y
menutrans &Paste<Tab>"+gP		�&������<Tab>"+gP
menutrans Put\ &Before<Tab>[p		�������\ ����&����<Tab>[p
menutrans Put\ &After<Tab>]p		�������\ �&����<Tab>]p
menutrans &Select\ all<Tab>ggVG		��&����\ ���<Tab>ggVG
menutrans &Find\.\.\.			&�����\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	��&ͦ����\.\.\.
menutrans Settings\ &Window		�����\ &��������
menutrans &Global\ Settings		�����Φ\ �&��������
menutrans F&ile\ Settings		���������\ ���\ &����
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	&�����æ�\ ���˦�<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		�����\ �&����������\ צ���������<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		�����\ &��������<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	����������\ ���\ &�����<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!			������������\ ��������\ &�����æ�<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		�����������\ &צ�����<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		��������\ ���\ ����\ &C<Tab>:set\ cin!
menutrans &Shiftwidth								&����
menutrans Te&xt\ Width\.\.\.						&�����\ ������\.\.\.
menutrans &File\ Format\.\.\.			&�����\ ����\.\.\.
menutrans Soft\ &Tabstop				����æ�\ &�����æ�
menutrans C&olor\ Scheme		&�������
menutrans Select\ Fo&nt\.\.\.		������\ &�����\.\.\.


menutrans &Keymap			�����\ ��צ�����
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	��Ħ����\ &�����<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		&���Ҧ�����\ \����˦\ �\ �̦\ ̦����<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		&�������\ �����<Tab>:set\ sm!
menutrans &Context\ lines	���˦���\ &�������\ ���˦�
menutrans &Virtual\ Edit	������\ &��������\ ���\ ���

menutrans Never			�����
menutrans Block\ Selection	��¦�\ �����
menutrans Insert\ mode		�����\ ������
menutrans Block\ and\ Insert	��¦�\ �\ �����
menutrans Always		������

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	�����\ &������<Tab>:set\ im!
menutrans Search\ &Path\.\.\.	&����\ ������\.\.\.
menutrans Ta&g\ Files\.\.\.	����\ &��ͦ���\.\.\.


"
" GUI options
menutrans Toggle\ &Toolbar		�����\ &���������Ԧ�
menutrans Toggle\ &Bottom\ Scrollbar	&�����\ ̦Φ��\ �����
menutrans Toggle\ &Left\ Scrollbar	&��\ ̦Φ��\ �����
menutrans Toggle\ &Right\ Scrollbar	&���\ ̦Φ��\ �����

" Programming menu
menutrans &Tools			&�����������
menutrans &Jump\ to\ this\ tag<Tab>g^]	&�������\ ��\ ��ͦ���<Tab>g^]
menutrans Jump\ &back<Tab>^T		��&���������<Tab>^T
menutrans Build\ &Tags\ File		&��������\ ���\ ��ͦ���
" Folding
menutrans &Folding				&�������
menutrans &Enable/Disable\ folds<Tab>zi		&���������/���������\ �������<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&�����\ �����\ �\ ��������<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx			�����\ &����\ �����\ �\ ��������<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm				�������\ &¦����\ �����˦�<Tab>zm
menutrans &Close\ all\ folds<Tab>zM				�������\ &�Ӧ\ �������<Tab>zM
menutrans &Open\ all\ folds<Tab>zR				��������\ �&Ӧ\ �������<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr				��������\ �&�����\ �����˦�<Tab>zr

menutrans Create\ &Fold<Tab>zf				�&�������\ �������<Tab>zf
menutrans &Delete\ Fold<Tab>zd				&�������\ �������<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD		������&�\ �Ӧ\ �������<Tab>zD
menutrans Fold\ column\ &width				&������\ ����\ �����˦�
menutrans Fold\ Met&hod		&�����\ ��������
menutrans M&anual			&������
menutrans I&ndent			&�������
menutrans E&xpression       �&���
menutrans S&yntax			&����������
menutrans Ma&rker			��&�����

" Diff
menutrans &Diff					��&Ҧ������
menutrans &Update				&��������
menutrans &Get\ Block			&����������\ Ҧ����
menutrans &Put\ Block			&���������\ Ҧ����

" Make and stuff...
menutrans &Make<Tab>:make		&�������(make)<Tab>:make
menutrans &List\ Errors<Tab>:cl		&������\ �������<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	��&����\ ��צ�������<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&������\ ������<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&���������\ ������<Tab>:cp
menutrans &Older\ List<Tab>:cold	&���ۦ\ �������<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	&�����Φ\ �������<Tab>:cnew
menutrans Error\ &Window	    &�����\ �������
menutrans &Update<Tab>:cwin			&��������<Tab>:cwin
menutrans &Close<Tab>:cclose		&�������<Tab>:cclose
menutrans &Open<Tab>:copen			&��������<Tab>:copen

menutrans &Set\ Compiler				���������\ &��������
menutrans &Convert\ to\ HEX<Tab>:%!xxd     ���������\ �\ ۦ���������צ\ ����<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r     ���������\ �\ �צ�����\ �����<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers	&������
menutrans &Refresh\ menu &��������
menutrans Delete	&�������
menutrans &Alternate	&���������
menutrans &Next		&�̦�����
menutrans &Previous	&��������
menutrans [No\ File]	[����\ ���]

" Window menu
menutrans &Window			&�����
menutrans &New<Tab>^Wn			&����<Tab>^Wn
menutrans S&plit<Tab>^Ws		&���Ħ����<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	���Ħ����\ ���\ &����������\ ����<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	���Ħ����\ &�������<Tab>^Wv
"menutrans Split\ &Vertically<Tab>^Wv	&���Ħ����\ �������<Tab>^Wv
menutrans Split\ File\ E&xplorer		���Ħ����\ ���\ &���������\ ��̦�

menutrans &Close<Tab>^Wc		&�������<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	�������\ �Ӧ\ &��ۦ<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&�������<Tab>^Ww
menutrans P&revious<Tab>^WW		&�������Τ<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&��Ҧ�����\ ���ͦ�<Tab>^W=
menutrans &Max\ Height<Tab>^W_		��&¦���\ �����<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		��&����\ �����<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		��¦&���\ �����<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		�����&�\ �����<Tab>^W1\|
menutrans Move\ &To			&�ͦ�����
menutrans &Top<Tab>^WK			��&����<Tab>^WK
menutrans &Bottom<Tab>^WJ		��&����<Tab>^WJ
menutrans &Left\ side<Tab>^WH		�&̦��<Tab>^WH
menutrans &Right\ side<Tab>^WL		�&����<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		&���̦���\ ������<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		�&��̦���\ ����<Tab>^Wr

" The popup menu
menutrans &Undo			&���ͦ����
menutrans Cu&t			��&Ҧ���
menutrans &Copy			&������
menutrans &Paste		�&������
menutrans &Delete		��&�����
menutrans Select\ &Word		������\ &�����
menutrans Select\ &Line		������\ &�����
menutrans Select\ &Block	������\ &����
menutrans Select\ &All		������\ &���



" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		�������� ���
    tmenu ToolBar.Save		����'���� ���
    tmenu ToolBar.SaveAll		����'���� �Ӧ ����
    tmenu ToolBar.Print		��������
    tmenu ToolBar.Undo		���ͦ����
    tmenu ToolBar.Redo		���������
    tmenu ToolBar.Cut		��Ҧ���
    tmenu ToolBar.Copy		������
    tmenu ToolBar.Paste		�������
    tmenu ToolBar.Find		�����...
    tmenu ToolBar.FindNext	����� ��������
    tmenu ToolBar.FindPrev	����� ��������
    tmenu ToolBar.Replace	��ͦ����...
    tmenu ToolBar.LoadSesn	��������� ���� ���������
    tmenu ToolBar.SaveSesn	����'���� ���� ���������
    tmenu ToolBar.RunScript	������� ��� �����
    tmenu ToolBar.Make		�������� ������
    tmenu ToolBar.Shell		Shell
    tmenu ToolBar.RunCtags	�������� ��� ��ͦ���
    tmenu ToolBar.TagJump	������� �� ��ͦ���
    tmenu ToolBar.Help		�������
    tmenu ToolBar.FindHelp	����� � ������ڦ
  endfun
endif

" Syntax menu
menutrans &Syntax &��������
menutrans Set\ '&syntax'\ only	����������\ ����\ '&syntax'
menutrans Set\ '&filetype'\ too	����������\ '&filetype'\ ����
menutrans &Off			&��������
menutrans &Manual		&������
menutrans A&utomatic		&����������
menutrans on/off\ for\ &This\ file		����������\ ���\ �����\ &���
menutrans Co&lor\ test		����צ��\ &�����Ҧ�
menutrans &Highlight\ test	&����צ��\ ��Ħ�����
menutrans &Convert\ to\ HTML	��������\ &HTML

" dialog texts
let menutrans_no_file = "[����\ ���]"
let menutrans_help_dialog = "��֦�� ������ ��� ����� ��� ������:\n\n������ i_ ��� ����� ������ ������ (���. i_CTRL-X)\n������ i_ ��� ��������� ������ (���. �_<Del>)\n������ ' ��� ��������� ���� ��æ� (���. 'shiftwidth')"
let g:menutrans_path_dialog = "��֦�� ���� ������ ��̦�\n���Ħ����� ���� �������Ҧ� �����."
let g:menutrans_tags_dialog = "��֦�� ���� ��̦� ��ͦ���\n���Ħ����� ���� �����."
let g:menutrans_textwidth_dialog = "��֦�� ���� ������ ������ (0 ��� צ�ͦ�� ���������)"
let g:menutrans_fileformat_dialog = "����Ҧ�� ����� ����"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z���)i'i'/vim80/lang/menu_slovak_slovak_republic.1250.vimnu�[���" Menu Translations:	Slovak
" Translated By:	Martin Lacko <lacko@host.sk>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding cp1250

" Help menu
menutrans &Help			&Pomocn�k
menutrans &Overview<Tab><F1>	&Preh�ad<Tab><F1>
menutrans &User\ Manual		Po&u��vate�sk�\ manu�l
menutrans &How-to\ links	&Tipy
menutrans &Find\.\.\.		&N�js�\.\.\.
menutrans &Credits		Po�&akovanie
menutrans O&rphans		Si&roty
menutrans Co&pying		&Licencia
menutrans &Version		&Verzia
menutrans &About		&O\ programe

" File menu
menutrans &File				&S�bor
menutrans &Open\.\.\.<Tab>:e		&Otvori�\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Ot&vori�\ v\ novom\ okne\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		&Nov�<Tab>:enew
menutrans &Close<Tab>:close		&Zatvori�<Tab>:close
menutrans &Save<Tab>:w			&Ulo�i�<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Ulo�i�\ &ako\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	Otvor&i�\ porovnanie\ v\ novom\ okne\ s\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Otvo&ri�\ aktualizovan�\ s\.\.\.
menutrans &Print			&Tla�
menutrans Sa&ve-Exit<Tab>:wqa		U&lo�i�-Koniec<Tab>:wqa
menutrans E&xit<Tab>:qa			&Koniec<Tab>:qa

" Edit menu
menutrans &Edit				&�pravy
menutrans &Undo<Tab>u			&Sp�<Tab>u
menutrans &Redo<Tab>^R			Z&ru�i�\ sp�<Tab>^R
menutrans Rep&eat<Tab>\.		&Opakova�<Tab>\.
menutrans Cu&t<Tab>"+x			&Vystrihn��<Tab>"+x
menutrans &Copy<Tab>"+y			&Kop�rova�<Tab>"+y
menutrans &Paste<Tab>"+gP		V&lo�i�<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Vlo�i�\ &pred<Tab>[p
menutrans Put\ &After<Tab>]p		Vlo�i�\ za<Tab>]p
menutrans &Select\ all<Tab>ggVG		Vy&bra�\ v�etko<Tab>ggVG
menutrans &Delete<Tab>x			Vy&maza�<Tab>x
menutrans &Find\.\.\.			&N�js�\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	N&ahradi�\.\.\.
menutrans Settings\ &Window		Mo&�nosti
menutrans &Global\ Settings		&Glob�lne mo�nosti
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Prepn��\ paletu\ zv�raz�ovania<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	Prepn��\ &ignorovanie ve�kosti<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!	Prepn��\ &uk�za�\ zhodu<Tab>:set\ sm!
menutrans &Context\ lines		&Kontextov�\ riadky
menutrans &Virtual\ Edit		&Virtu�lne �pravy
menutrans Never				Nikdy
menutrans Block\ Selection		Blokov�\ v�ber
menutrans Insert\ mode			Re�im\ vkladania
menutrans Block\ and\ Insert		Blok\ a\ vkladanie
menutrans Always			V�dy
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	Prepn��\ re�i&m\ vkladania<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Prepn��\ vi\ kompatibilitu<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		Cesta\ &h�adania\.\.\.
menutrans Ta&g\ Files\.\.\.		Ta&gov� s�bory\.\.\.
menutrans Toggle\ &Toolbar		Prepn��\ &panel
menutrans Toggle\ &Bottom\ Scrollbar	Prepn��\ spodn�\ posuvn�k
menutrans Toggle\ &Left\ Scrollbar	Prepn��\ �av�\ posuvn�k
menutrans Toggle\ &Right\ Scrollbar	Prepn��\ prav�\ posuvn�k
menutrans F&ile\ Settings		Nastavenia\ s�boru
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Prepn��\ ��slova&nie\ riadkov<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Prepn��\ re�im\ &zoznamu<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Prepn��\ z&alamovanie\ riadkov<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Prepn��\ za&lamovanie\ slov<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Prepn��\ roz��r&en�\ tabul�tory<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Prepn��\ automatick�\ &odsadzovanie<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Prepn��\ &C-odsadzovanie<Tab>:set\ cin!
menutrans &Shiftwidth			&��rka\ �iftu
menutrans Soft\ &Tabstop		&Softv�rov�\ tabul�tor
menutrans Te&xt\ Width\.\.\.		��rka\ te&xtu\.\.\.
menutrans &File\ Format\.\.\.		&Form�t\ s�boru\.\.\.
menutrans C&olor\ Scheme		Far&ebn�\ sch�ma

" Programming menu
menutrans &Tools			&N�stroje
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Sko�i�\ na\ zna�ku<Tab>g^]
menutrans Jump\ &back<Tab>^T		Sk&o�i�\ sp�<Tab>^T
menutrans Build\ &Tags\ File		&Vytvori�\ s�bor\ zna�iek
menutrans &Folding			&Vn�ranie
menutrans &Enable/Disable\ folds<Tab>zi	Zapn��/Vypn��\ vn�rani&e<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	Zobrazi�\ kurzoro&v�\ riadok<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	Zobrazi�\ iba\ kurzorov�\ riadok<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	Zatvori�\ viac \vnoren�<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	Zatvor&i�\ v�etky\ vnorenia<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	O&tvori�\ viac\ vnoren�<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	&Otvori�\ v�etky\ vnorenia<Tab>zR
menutrans Fold\ Met&hod			Met�&da\ vn�rania
menutrans M&anual			M&anu�lne
menutrans I&ndent			Odsade&nie
menutrans E&xpression			&V�raz
menutrans S&yntax			S&yntax
menutrans &Diff				Roz&diel
menutrans Ma&rker			Zna&�kova�
menutrans Create\ &Fold<Tab>zf		Vyt&vori�\ vnorenie<Tab>zf
menutrans &Delete\ Fold<Tab>zd		V&ymaza�\ vnorenie<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	Vymaza�\ v�etky\ vnorenia<Tab>zD
menutrans Fold\ column\ &width		��rka\ &vkladan�ho\ st�pca
menutrans &Diff				&Rozdiely
menutrans &Update			Akt&ualizova�
menutrans &Get\ Block			Zob&ra�\ blok
menutrans &Put\ Block			&Vlo�i�\ blok
menutrans Error\ &Window		Chybov�\ &okno
menutrans &Update<Tab>:cwin		Akt&ualizova�<Tab>:cwin
menutrans &Open<Tab>:copen		&Otvori�<Tab>:copen
menutrans &Close<Tab>:cclose		&Zatvori�<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	&Konvertova�\ do\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	Konve&rtova�\ sp�<Tab>:%!xxd\ -r
menutrans &Make<Tab>:make		&Make<Tab>:make
menutrans &List\ Errors<Tab>:cl		V�pis\ &ch�b<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	V�p&is\ spr�v<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		�a&l�ia\ chyba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Predch�dzaj�ca\ chyba<Tab>:cp
menutrans &Older\ List<Tab>:cold	Sta&r��\ zoznam<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	Nov��\ &zoznam<Tab>:cnew
menutrans Error\ &Window<Tab>:cwin	Chybov�\ o&kno<Tab>:cwin
menutrans &Set\ Compiler		Vyberte\ k&ompil�tor
menutrans Convert\ to\ HEX<Tab>:%!xxd	Prvies�\ do\ �es&tn�stkov�ho\ form�tu<Tab>:%!xxd
menutrans Convert\ back<Tab>:%!xxd\ -r	Pr&evies�\ sp�<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers		&Vyrovn�vacia\ pam�
menutrans &Refresh\ menu	Obnovi�
menutrans &Delete		Vymaza�
menutrans &Alternate		Zmeni�
menutrans &Next			�&al�ia
menutrans &Previous		&Predch�dzaj�ca
menutrans [No File]		[�iadny\ s�bor]

" Window menu
menutrans &Window			&Okn�
menutrans &New<Tab>^Wn			&Nov�<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Rozdeli�<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Ro&zdeli�\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Rozdeli�\ &vertik�lne<Tab>^Wv
menutrans Split\ File\ E&xplorer	Otvori�\ pri&eskumn�ka
menutrans &Close<Tab>^Wc		Zatvor&i�<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zatvori�\ i&n�<Tab>^Wo
menutrans Move\ &To			Presun�&�
menutrans &Top<Tab>^WK			Na&hor<Tab>^WK
menutrans &Bottom<Tab>^WJ		Nado&l<Tab>^WJ
menutrans &Left\ side<Tab>^WH		V&�avo<Tab>^WJ
menutrans &Right\ side<Tab>^WL		Vprav&o<Tab>^WL
menutrans Ne&xt<Tab>^Ww			�&al�ie<Tab>^Ww
menutrans P&revious<Tab>^WW		&Predch�dzaj�ce<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		Rovnak�\ v��&ka<Tab>^W=
menutrans &Max\ Height<Tab>^W_		&Maxim�lna\ v��ka<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Minim�lna\ v�&�ka<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Maxim�lna\ ��rka<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Minim�lna �irka<Tab>^W1\|
menutrans Rotate\ &Up<Tab>^WR		Rotova&�\ nahor<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Rotova�\ na&dol<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		Vy&bra�\ p�smo\.\.\.

" The popup menu
menutrans &Undo			&Sp�
menutrans Cu&t			&Vystrihn��
menutrans &Copy			&Kop�rova�
menutrans &Paste		V&lo�i�
menutrans &Delete		V&ymaza�
menutrans Select\ Blockwise	Vybra�\ blokovo
menutrans Select\ &Word		Vybra�\ sl&ovo
menutrans Select\ &Line		Vybra�\ &riadok
menutrans Select\ &Block	Vybra�\ &blok
menutrans Select\ &All		Vybra�\ v�&etko

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Otvori� s�bor
    tmenu ToolBar.Save		Ulo�i� s�bor
    tmenu ToolBar.SaveAll	Ulo�i� v�etky
    tmenu ToolBar.Print		Tla�
    tmenu ToolBar.Undo		Sp�
    tmenu ToolBar.Redo		Opakova�
    tmenu ToolBar.Cut		Vystrihn��
    tmenu ToolBar.Copy		Kop�rova�
    tmenu ToolBar.Paste		Vlo�i�
    tmenu ToolBar.Find		N�js�...
    tmenu ToolBar.FindNext	N�js� �al�ie
    tmenu ToolBar.FindPrev	N�js� predch�dzaj�ce
    tmenu ToolBar.Replace	Nahradi�...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Nov� okno
      tmenu ToolBar.WinSplit	Rozdeli� okno
      tmenu ToolBar.WinMax	Maximalizova� okno
      tmenu ToolBar.WinMin	Minimalizova� okno
      tmenu ToolBar.WinVSplit	Rozdeli� okno vertik�lne
      tmenu ToolBar.WinMaxWidth	Maximalizova� ��rku okna
      tmenu ToolBar.WinMinWidth	Minimalizova� ��rku okna
      tmenu ToolBar.WinClose	Zatvori� okno
    endif
    tmenu ToolBar.LoadSesn	Na��ta� sedenie
    tmenu ToolBar.SaveSesn	Ulo�i� sedenie
    tmenu ToolBar.RunScript	Spusti� skript
    tmenu ToolBar.Make		Spusti� make
    tmenu ToolBar.Shell		Spusti� �el
    tmenu ToolBar.RunCtags	Spusti� ctags
    tmenu ToolBar.TagJump	Sko�i� na tag pod kurzorom
    tmenu ToolBar.Help		Pomocn�k
    tmenu ToolBar.FindHelp	N�js� pomocn�ka k...
  endfun
endif

" Syntax menu
menutrans &Syntax		&Syntax
menutrans Set\ '&syntax'\ only	Nastavi�\ iba\ 'syntax'
menutrans Set\ '&filetype'\ too	Nastavi�\ aj\ 'filetype'
menutrans &Off			&Vypn��
menutrans &Manual		&Ru�ne
menutrans A&utomatic		A&utomaticky
" menutrans o&n\ (this\ file)	&Zapn��\ (pre\ tento\ s�bor)
" menutrans o&ff\ (this\ file)	Vyp&n��\ (pre\ tento\ s�bor )
menutrans on/off\ for\ &This\ file	Zapn��/vypn��\ pre\ &tento\ s�bor
menutrans Co&lor\ test		Test\ &farieb
menutrans &Highlight\ test	&Test\ zv�raz�ovania
menutrans &Convert\ to\ HTML	&Previes�\ do\ HTML

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��C��vim80/lang/menu_sk_sk.1250.vimnu�[���" Menu Translations:    Slovak
" Translated By:	Martin Lacko <lacko@host.sk>
" Last Change:		2003 May 11
" This is redirection to slovak menu-translations file

source <sfile>:p:h/menu_slovak_slovak_republic.1250.vim
PK�j�ZNQ܁))vim80/lang/menu_ko_kr.euckr.vimnu�[���" Menu Translations:	Korean
" Maintainer:		SungHyun Nam <goweol@gmail.com>
" Last Change:		2012 May 01

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding euc-kr

" Help menu
menutrans &Help			����(&H)
menutrans &Overview<Tab><F1>	����(&O)<Tab><F1>
menutrans &User\ Manual		����\ �Ŵ���(&U)
menutrans &How-to\ links	�Ͽ��\ ���(&H)
menutrans &GUI			GUI(&G)
menutrans &Find\.\.\.		�(&F)\.\.\.
menutrans &Credits		����\ ��(&C)
menutrans Co&pying		���۱�(&p)
menutrans &Sponsor/Register	�Ŀ�/���(&S)
menutrans O&rphans		���(&r)
menutrans &Version		����(&V)
menutrans &About		��\ ��α׷���(&A)

" File menu
menutrans &File				���(&F)
menutrans &Open\.\.\.<Tab>:e		����(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	������\ ����(&l)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	��\ ����\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		���ο�(&N)<Tab>:enew
menutrans &Close<Tab>:close		�ݱ�(&C)<Tab>:close
menutrans &Save<Tab>:w			����(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	�ٸ�\ �̸�����\ ����(&A)\.\.\.<Tab>:sav
"menutrans Split\ &Diff\ with\.\.\.	Split\ &Diff\ with\.\.\.
"menutrans Split\ Patched\ &By\.\.\.	Split\ Patched\ &By\.\.\.
menutrans &Print			�μ�(&P)
menutrans Sa&ve-Exit<Tab>:wqa		�����ϰ�\ ������(&v)<Tab>:wqa
menutrans E&xit<Tab>:qa			������(&x)<Tab>:qa

" Edit menu
menutrans &Edit				��(&E)
menutrans &Undo<Tab>u			���(&U)<Tab>u
menutrans &Redo<Tab>^R			�ٽ�\ ����(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		��Ǯ��(&e)<Tab>\.
menutrans Cu&t<Tab>"+x			�ڸ���(&t)<Tab>"+x
menutrans &Copy<Tab>"+y			����(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		��̱�(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		�տ�\ ��̱�(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		�ڿ�\ ��̱�(&A)<Tab>]p
menutrans &Delete<Tab>x			�����(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		���\ ����(&S)<Tab>ggVG
menutrans &Find\.\.\.			�(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	ã�Ƽ�\ �ٲٱ�(&l)\.\.\.
menutrans Settings\ &Window		����\ â(&W)
menutrans Startup\ &Settings		���\ ����(&S)

" Edit/Global Settings
menutrans &Global\ Settings		����\ ����(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! ����\ ��̶��Ʈ\ ���(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! ��ҹ���\ ����\ ���(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Showmatch\ ���(&S)<Tab>:set\ sm!
menutrans &Context\ lines		���ؽ�Ʈ\ ��(&C)
menutrans &Virtual\ Edit		����\ ��(&V)
menutrans Never				���\ ��\ ��
menutrans Block\ Selection		��\ ����
menutrans Insert\ mode			���\ ���
menutrans Block\ and\ Insert		����\ ���
menutrans Always			�׻�\ ���
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! ���\ ���\ ���(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! Vi\ ȣȯ\ ���(&o)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		�\ ���(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.		����ǥ\ ���(&g)\.\.\.

" GUI options
menutrans Toggle\ &Toolbar		��������\ ���(&T)
menutrans Toggle\ &Bottom\ Scrollbar	�ٴ�\ ��ũ�ѹ�\ ���(&B)
menutrans Toggle\ &Left\ Scrollbar	����\ ��ũ�ѹ�\ ���(&L)
menutrans Toggle\ &Right\ Scrollbar	������\ ��ũ�ѹ�\ ���(&R)

" Edit/File Settings
menutrans F&ile\ Settings		���\ ����(&i)

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! ��\ ��ȣ��̱�\ ���(&N)<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! ���\ ���\ ���(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! ��\ Wrap\ ���(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!  ��������\ Wrap\ ���(&r)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et! ��\ Ȯ��\ ���(&e)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! �ڵ��ε�Ʈ\ ���(&a)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! C-���\ ���(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			���Ʈ\ �ʺ�(&S)
menutrans Soft\ &Tabstop		���Ʈ\ �ǽ���(&T)
menutrans Te&xt\ Width\.\.\.		�ؽ�Ʈ\ �ʺ�(&x)\.\.\.
menutrans &File\ Format\.\.\.		���\ ���(&F)\.\.\.
menutrans C&olor\ Scheme		�÷�\ ��Ŵ(&o)
menutrans &Keymap			��(&K)

menutrans Select\ Fo&nt\.\.\.		�۲�\ ����(&F)\.\.\.

" Programming menu
menutrans &Tools			����(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	��\ ����ǥ��\ ����(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		�ڷ�\ ����(&b)<Tab>^T
menutrans Build\ &Tags\ File		����ǥ\ ���\ �����(&T)

menutrans &Spelling			����\ �˻�(&S)
menutrans &Spell\ Check\ On		����\ �˻�\ ���(&S)
menutrans Spell\ Check\ &Off		����\ �˻�\ ��(&O)
menutrans To\ &Next\ error<Tab>]s	���\ ������(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	���\ ������(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	����\ ����(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	����\ �ݺ�(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	��\ "en"����\ ����
menutrans Set\ language\ to\ "en_au"	��\ "en_au"��\ ����
menutrans Set\ language\ to\ "en_ca"	��\ "en_ca"��\ ����
menutrans Set\ language\ to\ "en_gb"	��\ "en_gb"��\ ����
menutrans Set\ language\ to\ "en_nz"	��\ "en_nz"����\ ����
menutrans Set\ language\ to\ "en_us"	��\ "en_us"��\ ����
menutrans &Find\ More\ Languages	�ٸ�\ ���\ ã��(&F)

" Tools.Fold Menu
menutrans &Folding			����(&F)
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi	����\ ���\ ���(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	Ŀ��\ ��\ ����(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Ŀ��\ �ٸ�\ ����(&w)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	��\ ����\ ����\ �ݱ�(&l)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	���\ ����\ �ݱ�(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	��\ ����\ ����\ ����(&p)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	���\ �κ�\ ���\ ���(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			����\ ��(&h)
menutrans M&anual			����(&a)
menutrans I&ndent			�鿩����(&n)
menutrans E&xpression			ǥ���(&x)
menutrans S&yntax			���ý�(&y)
"menutrans &Diff				&Diff
menutrans Ma&rker			����ǥ(&r)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		����\ ����(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		����\ ��(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	���\ ����\ ��(&A)<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width		����\ �÷�\ �ʺ�(&w)

"menutrans &Diff				&Diff
menutrans &Update			����(&U)
menutrans &Get\ Block			��\ ��������(&G)
menutrans &Put\ Block			��\ ����ֱ�(&P)

menutrans &Make<Tab>:make		���(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		����\ ���\ ����(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	�޽��\ ���\ ����(&i)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		���\ ����(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	���\ ����(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	������\ ���(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	���ο�\ ���(&e)<Tab>:cnew
menutrans Error\ &Window		����\ â(&W)
menutrans &Update<Tab>:cwin		����(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		����(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		�ݱ�(&C)<Tab>:cclose
menutrans Se&T\ Compiler		����Ϸ�\ ����(&T)
menutrans &Convert\ to\ HEX<Tab>:%!mc\ vim:xxd	���������\ ��ȯ<Tab>:%!mc\ vim:xxd
menutrans &Convert\ to\ HEX<Tab>:%!xxd	���������\ ��ȯ(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!mc\ vim:xxd\ -r	�������\ ��ȯ(&r)<Tab>:%!mc\ vim:xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	�������\ ��ȯ(&r)<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers			����(&B)
menutrans &Refresh\ menu		���ǥ\ �ٽñ׸���(&R)
menutrans &Delete			�����(&D)
menutrans &Alternate			��ü(&A)
menutrans &Next				���(&N)
menutrans &Previous			���(&P)

" Window menu
menutrans &Window			â(&W)
menutrans &New<Tab>^Wn			��\ â(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		������(&p)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	#����\ ������(&l)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	���η�\ ������(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	���\ �ͽ��÷η�\ ������

menutrans &Close<Tab>^Wc		�ݱ�(&C)<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	�ٸ�\ â\ �ݱ�(&O)<Tab>^Wo

menutrans Move\ &To			�̵�(&T)
menutrans &Top<Tab>^WK			�����(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		�ٴ�(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		����(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		������(&R)<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		����\ ȸ��(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		�Ʒ���\ ȸ��(&D)<Tab>^Wr

menutrans &Equal\ Size<Tab>^W=		����\ ��̷�(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		�ִ�\ ��̷�(&M)<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		�ּ�\ ��̷�(&i)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		�ִ�\ ��̷�(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		�ּ�\ ��̷�(&h)<Tab>^W1\|

" The popup menu
menutrans &Undo			���(&U)
menutrans Cu&t			�ڸ���(&t)
menutrans &Copy			����(&C)
menutrans &Paste		��̱�(&P)
menutrans &Delete		�����(&D)
menutrans Select\ Blockwise	�簢�\ ����
menutrans Select\ &Word		����\ ����(&W)
menutrans Select\ &Line		��\ ����(&L)
menutrans Select\ &Block	��ȹ\ ����(&B)
menutrans Select\ &All		���\ ����(&A)

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		��� ����
    tmenu ToolBar.Save		��� ��� ����
    tmenu ToolBar.SaveAll	��� ����
    tmenu ToolBar.Print		�μ�
    tmenu ToolBar.Undo		���
    tmenu ToolBar.Redo		�ٽ� ����
    tmenu ToolBar.Cut		�ڸ���
    tmenu ToolBar.Copy		����
    tmenu ToolBar.Paste		��̱�
    tmenu ToolBar.Find		�...
    tmenu ToolBar.FindNext	��� �
    tmenu ToolBar.FindPrev	��� �
    tmenu ToolBar.Replace	�ٲٱ�
    tmenu ToolBar.LoadSesn	���� ���
    tmenu ToolBar.SaveSesn	���� ����
    tmenu ToolBar.RunScript	��ũ��Ʈ ����
    tmenu ToolBar.Make		Make
    tmenu ToolBar.Shell		��
    tmenu ToolBar.RunCtags	����ǥ �����
    tmenu ToolBar.TagJump	����ǥ�� ����
    tmenu ToolBar.Help		����
    tmenu ToolBar.FindHelp	���� �...
  endfun
endif

" Syntax menu
menutrans &Syntax		����(&S)
menutrans &Show\ filetypes\ in\ menu	���\ ���ð�����\ �׸�\ ����(&S)
menutrans Set\ '&syntax'\ only	'syntax'��\ ����(&s)
menutrans Set\ '&filetype'\ too	'filetype'��\ ����(&f)
menutrans &Off			���(&O)
menutrans &Manual		����(&M)
menutrans A&utomatic		�ڵ�(&u)
menutrans on/off\ for\ &This\ file ��\ ��ϸ�\ �ѱ�/���(&T)

menutrans Co&lor\ test		��\ ����(&l)
menutrans &Highlight\ test	Highlight\ ����(&H)
menutrans &Convert\ to\ HTML	HTML��\ ��ȯ(&C)

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z&�7t�t� vim80/lang/pl/LC_MESSAGES/vim.monu�[�����N�:�	�t��
*�8�A�'W�/���Ŝۜ"�0�E�R�+Z���"��Ğ՞5��8�T�q������;D�������Ҡ����*�E�]�t���0��.ӡ/�02�
c�q�����
��Ƣ
ۢ$�$�0� A�b�@q�D�����!&�H�"g���"��̤���@�E�`�q�������/��8�,�=J�������Ӧ�0��1'�1Y�������ѧ-��9�N�`�}���3��3��2�J�b�|���
������٩���
�$#�H�"T�Lw� Ī���;�Q�`�#m�	��������̫ݫ
����(�@�	X�b�j�r�!������լ�����$� ,�M�h���������
��ʭ6׭�+�D�!c���
����	����Үޮ�&�	�"�*<�g�=���
ͯۯ�����	�
"�
0�;�
D�O�a�s�|�5��а-�1�&B�i���������ϱ���$�6�F�
Z�e�t�������Ųײ����&�7�C�O�^�n�����
����³γ
޳���7�C�P�h�p�y�����������=��2��$�*�3�'D�-l�2��5͵� �?9�y�����+���	����-�>�T�-r���$���
�� �4�@�?W���2��!ٸ%��9!�E[�9��C۹K�Ik�H��;��6:�8q�3��<޻-�6I���%����Լ���&-�,T�#��4�� ڽ@��-<�0j�:��;־�"2�U�>f�)��>Ͽ<�K�W�#w�:��'�9��8�$Q�9v�4��;� !�>B�1��/����-�.�.=�Bl�"��2��4�*:�e�+��%��'��(��<&�Ec�.��-��$�+�<D���*��&�� ��4�C�T�f�y���������������
���
�"�8�D�S�k�����)����$�����6�1O�?������������
�#�>�Q�Xj�%�������&�?�X�r�������$����!��
�+�1�A�E�c�"����$����#��� �;�QY����������� 
�.�4N�����	��?��P��6�
C�
Q�.\���-����-��$�.D�s�.��H����O-�O}�
��C��	�)�5�!J�l�r���3��2��!��(�G� `�"��E����%�#-�-Q������&�����!�?�X�p�'����)��+��@!�-b���5������1�/L�D|���E��$�-?�7m�#�� ��:��5%�&[�"��&��$��#��!�=7�5u� ��(��7��!-�,O�|����� ��#��&�3�J�b�}���������0�$@�!e� ��(��4��,�3�O�b�x��� ������1��/�!L�%n�%��%���� ���6�?Q�&��#����
��A�%H�"n�"��9��'��(�2?�*r�!��!��)��%�!1�4S�:��&��;��;&�)b�0���������#�#<�!`�8��&��#��� �/?�"o���-��������/�*C�(n�#���������+�>G�������"�����)�E�!\�~�9��1��)�1/�%a�7����A��?�[�r���!�������0 �4Q�$��)��N��,$�&Q�Lx�������8
�C�$Y�~���,�� �� �#'�K�f�7��N���#�@�$[�!��3��,��2�%6�\�"w���#�������5�BR���0��!�� �<#�+`�����+��2��$ �E�,c���H��,��!�7�"W�z�������9�M�b�}�0��#�'��&�,F�&s�����+��2�-�(L�u�"��'��'�,�.�.E�t�#��,��W�)=�"g�,��%��� ���24�2g�2���!��%�2:�5m�'��#�)�3�$M�%r��������$�&A� h�'��*��#�'�%(�3N�!����+��*-:$h�����  6$W$|)���,�&;%V|=���,'Fn�$�#�0�."0Q�����	-4 b�7�)�$(=f�%�$���'.V'u ���� 7)0a�#��"�(	!A	c	-�	1�	6�	5
N
.i
*�
1�
9�
/*O&z+�,�+�4&<[+�*��

2
G
^
y
�
�
�
"�
�
�
,Kd}����;:N=�<�6<;x"��+�)�45T4�3��0 6WDjP�%&Ec�����!%@Wk���'��!0Ro"��1��%":]r�����/BVn�����*)6`s ����6�#)M)i&�K� :Yt����"�&#8\w+�%�7�5 Vs,����) 0Qg�����0'Xo��4�.�$.)S1};��.�** U $u � %� ,� !!0!&J!-q!&�!�! �!" ";"+U" �"�"?�")�"#69##p#2�#9�#>$8@$1y$�$)�$)�$ %)>%h%)�%*�%"�%�%#&"8&"[&)~&�&�&%�& '+-'$Y'~'�'!�'0�'('(B(]("z(!�(9�(8�($2)/W)�)�)�)+�)%�)1$*)V*�*�*'�*%�*�*&+!:+%\+'�+%�+'�+-�+2&,Y,n,$�,�,�,�,"-&-F-!f-1�-&�-�-!�-! .B.(W.�.�.+�.8�./7>/Ev/!�/�/�/(
0030#d0�0$�0�0#�0*1+1 F1g1z10�12�10�1)2+F2)r2$�2/�2�23'3)C3,m3�3�3 �3�34-*4,X4�4/�4+�4'�4!"5 D50e5�5!�5,�5�56(%6N6g60}6.�6�6�697T7t7�7*�7�73�708%I82o80�8!�8;�8R19�9*�9�9�9(:+:+G:+s:�: �:"�:%�: $;+E;"q;+�;�;.�;4<ID<)�<%�<)�<6=6?=-v=(�=/�=&�=<$>)a>*�>�>7�>??>?*]?�?�?0�?/�?!#@"E@*h@/�@;�@�@AQ7A.�A�A$�A#�A0!B#RBvB2�B6�B�B+C%KCXqC;�C;DBD!bD"�DB�D�D	E&E@E`E)E'�E�E�E'F/F	7FAFYFhF�F�F#�F	�F�F�FG.GIG.`G6�G�G�G6�G#H
;H&FH	mHwH�H�H�H�H �H%�H!$I
FIQI(gI��Ia;J�J+�Ja�JDKSKYK(`K
�K	�K%�K�K
�K�K&�K& LGL(dL�L	�L�L	�L�L�L�L�LM,M	AM2KM*~M�M�M�M�MN
&N1N	@NJNVNbNwN#�N(�N�N�N	O
O
+O6OLO2TO�O�O�O�O�O�O$�OP/6PfP'nP�P�P
�P$�P�PQQ #QDQ]QjQwQ!�Q�Q�Q(�QR'R8R;RLRXRdR�R#�R�R�R�R.�R
-S8S	NSXSxS�S�S'�S�S�S
�S
TT6TJTSTmT�T�T�T�T�TU9$U9^U�U�U�U�U
�U�U�UVV+V(IVrV�V�V�V�V
�V	�V�V�VWW+W98W
rW�W�W�W�W&�WX&XEXdX?|XQ�X	YY.YAY"YY|Y�Y�Y�Y�Y�Y
�Y�Y)Z'-ZUZuZ�ZF�Z�Z[[.[5[A[(M[v[�[�[�[�[�[�[\*\09\;j\ �\>�\]]6]1R]"�]�]�]�]�])^=/^m^(�^�^�^$�^0�^)_2_5_+K_2w_�_�_�_�_�_	
``�0`�`F�`a
a	(a
2a@a+Ua�a�a�a�a%�a0bDb(Tb}b1�b+�b*�b"c&<c9ccM�c>�c)*d5TdA�d4�d$e6&e"]e�e<�e<�e?f/Bf rf"�f�f2�f0�f/gKg\gqg�g�g�g�g�g2h)6h+`h,�h-�h �h!i#*iNigi
i�i�i�i�i
�i�i�i	�i�ijjj6jMj]jmj
}j
�j�j	�j�j�j�j	�j�j
�j
k
k	k
'k52khk|k	�k�k�k
�k�k&�k�k�kll
ll
#l1l8lGl9Ml"�l$�l"�l)�lm+m2mLmcmumym1�m
�m$�m"�mn<6nsn'�n!�n�n�n�n
o,oEoHRoC�o�o�op(p;pVp]pepkp	sp}p�p�p �p#�p-�p-,qZqlq�q�q�q�q(�q&r-r=<rzr�r%�r
�r�r8�rF6s.}sD�sM�s@?t0�t&�t'�t&u$'uLu^u$yu�u-�u�u�uv0vNvZv`v{v�v�v�v6�vw w9w
>wLw"Yw|w%�w*�w.�w8x"Gx#jx#�x�x�x�x�x/y3y
By Py qy�y
�y�y�y�y�y�yz	4z>zWz2kz�z�z�z�z$�z{
{{%{#.{1R{1�{1�{1�{|#|	,|
6|(A|j|}|�|�|�|�|
�|�|�|
�| }$}(8}'a} �}�}�}�}�}~	,~6~"H~k~~~$�~$�~�~�~�~�~
/Njz��.�.�.�.*�.Y�.��.��.�.�&D�%k��� ��:́���.�"@�)c�)����	��ʂ���
��.�=�	R�\�m�������3������
��	Ņυ'�.
�<�Q�g�8}�/�����1��0�/M�}���?��/�#�<�
[�i���0�K� `���
������Њߊ(��"�:�V�s�4��2ŋ3��4,�
a�o�����Čތ�.�/1�a�"p���G��J�9� H�$i�$��+��$ߎ+�0�K�_�Bq�%��ڏ�
���B4�Vw�(ΐS��K� b�������;Б$�-1�_�t�����+���
��1�Q�i�.��.��ߓ���/�H�W�	q�{�������ϔ�"�%�#6�LZ�/��ו�;�A�N�,`���#����ʖޖ�
���&�6�C�c�	��������%��ח�"�)�!;�
]�
h�+v�#��Ƙ"����$�9�AN��� ��!͙3�	#�-�?�
Q�%\�������&��
��+˚*��"�L9���������Ûٛ	�����)�	5�?�P�	e�"o�6��ɜ6ٜ0�!A�c�|�������ҝ ��,�J�\�p�
}�������͞����+�D�_�
x�
��������Ɵҟ���
��&�5�D�5Q�����������ǠΠҠߠ�@��:6�q�y�	����6��/ա9�=?�}���H����-�)<�f�
s�������ͣ!�4	�>�%\���������
ΤܤW��O�8^�*��&¥;�A%�Dg�B��U�IE�H��Aا=�>X�7��BϨ1�<D�!��#��ǩߩ��#�;�M�1k�/��@ͪ+�@:�/{�9��B�I(�r�#����9ì8��?6�Gv��� ʭ%�3�+E�Bq���*̮@��@8�Gy�#��J�=0�/n���.���2��J/�0z�>��=�6(�#_�)��'��/ղ&�A,�Mn�C��6�$7�\�Ht���%ڴ(�()�<R�������ǵε���
��.�=�S�
g�r�({�����Ķ�'�,�8J�	��$����ǷϷ�<�C?�
��
��	����Ƹٸ��&�[C�(��ȹ)ѹ#���?�^�y�����	��+���*�*,�W�^�o�s�#��!��ѻ!�#�4'�\�d� ��\����%�=�Z�(z� ��:Ľ���
�>&�Ne���þо1ݾ�9(�!b�.��"��/ֿ�9$�G^�����R�R#�v�B������	��.�<4�;q�#��%����$�(6�I_�"��/��*��2'�Z� r��� ����������6�*P�{�+��(��I��.5�d�5���������5�QU�!��Q���16�8h���,��=��6'�*^�(��*��$��,�%/�:U�8��#��,��:�*U�'��&������$�%)�,O�|�����"����� %�+F�'r���+��'��4�4C�,x����������,�"B�e�:����"��,��++� W�x�)������N��+I�+u�"����J��%�D�&d�;��1����9�0S�!��%��,��'��*!�8L�=��;��G��@G�4��=��,��(�#G�k���(��'��;��6,�#c�#��,��5��,�
;�8I�
����"��(��4��/�+O�#{���)�����A!�c�"����3��$���!2�T�$l���=��C��3/�2c�1��>���M"�Hp� �� ��%��&!�H�%f� ��1��<��#�*@�Vk�.��(��T�o�����C���)�D� a�/��#��*��(�*�E�?c�W����'�#@�.d�,��:��2��8.�.g���+�� ��#�!&� H� i� ��?��+��/�$G�,l�F��.��)�9�)T�5~�$��(��=�@�F]�2����#��(�&B�(i�&��&��'��?�%H�"n� ��7��,��4�L�*X�1��(������-�99�/s�-����-��)�.G�=v���=��!�$-�,R�U�-��*�*.�'Y���&����=��="�8`���&������-�02�+c�,��)��6��8�2V���"����(���*$�-O�!}�-��6��+�&0�'W�5�����6��&'�.N�0}�!��'����1�F�(f�(��-��,�2�F�a�*t�����"���A� T�u���(��,��&!�)H�,r�0��1�@�%C�i���������/� 7�X�8x�8��"�!
�4/�d���4��*�*��'9�.a���&��(���8�S�Cn�9��&��#2�*V�/��%��(�899>s=�"�70K6|8�%�.-AJo3�2�;!J]2�4�)A`v�����)1J d.� � ��6Nn���?�A6`;�>�&9X6m4�>�A	CZ	<�	�	:�	*
!H
Kj
X�
<#L"p"�����!<^ }����
+
J
!`
"�
(�
#�
�
4+`~����%
,0]r�����$?]z�%�/�.>T"t!���<�*I-h(�S�((Q%p�����-#2 Vw�*� �:�80(i'�.��&"/+R~�&��� =U3p�!��$�:7Y0�"�4�?Z:p-�0�(
"3.V6����--1+_#�)���)8<"u�>�'�(:D'4�=�EE`3�)�&.+0Z+��4�. %; a  { %� &� 6�  !@!'X!&�!+�!(�!#�!' "$H"7m"�"�"�"!�"2# C#7d#?�#(�#4$:$V$v$'�$2�$/�$0%D%Y%'p%(�%�%&�%�%#&'B&(j&#�&2�&/�&'-'!E'"g')�' �'#�'�'(5(/T()�(�('�($�()*8)"c)"�)4�)?�)*3=*Qq*&�*�*$�*.!+7P+2�+�+�+�++,0@,&q,4�,�,�,3�,13-Ae-�-(�-%�-%.8;.t.�.5�.<�.6
/D/b/+�/�/&�/+�/70R0+n0,�0*�0"�0&1;<1x1!�1,�1�1�1)252M2;d23�2!�2,�2B#3-f3,�3.�38�3,)40V4�47�43�4/5$>5:c5Y�5*�5.#6!R6$t6)�6�6)�61	7;7#[7#75�7%�70�7"081S8)�8,�89�8C9$Z9(9$�9?�9?
:.M:(|:3�:'�:C;+E;;q;�;E�;#< 7<X<*w<'�< �<0�<+=$H=#m=0�=5�=A�=!:>\>Oz>5�>;?%<?$b?3�?$�?�?H�?IG@-�@;�@.�@_*A;�AE�A+B(8B*aB5�B)�B�B
C#)C!MC$oC0�C�C%�C+	D5D<DHDbDrD�D�D�D
�D�D�DE94E!nE>�EA�EFF?(F&hF
�F%�F�F�F�F�FGG%&G*LG&wG	�G�G&�G��Gj�HI6,IbcI�I�I�I.�IJ%J'5J
]JkJ#sJ,�J(�J6�J5$KZK	oKyK	�K	�K�K�K�K"�KL*L.3L)bL*�L�L&�L�LM6MHM
WMbM	oMyM�M/�M,�MN(N9N!HNjN�N	�N6�N�N�NO#O4O;O1WO&�O8�O
�O2�O'P)=PgP5tP�P �P
�P,�PQ8QLQ_Q(yQ6�Q�Q,�QR(,RURXRpR�R"�R)�R#�RSS	5S/?S	oSyS�S'�S�S�S�S3	T=T[TkT|T�T�T�T�T%�TU!U'9UaU xU�UF�UJ�UIVcVjV{V
�V�V�V�V�V�V6W;WPW\WuW�W�W�W�W�W�WXXE)XoX
|X�X"�X�X,�X,Y,9Y,fY�Y=�YO�Y8Z>ZWZhZ%�Z�Z�Z!�Z�Z[[
0[	>[*H[(s[$�[�[!�[M\N\b\y\�\
�\�\,�\�\�\]5]>]N]l]�]�]=�]1�])!^BK^�^�^ �^2�^#_3_8_R_.r_'�_A�_`+(`T`]`!u`3�`
�`�`�`)�`@ aaa{a�a�a�a�a�a��a�bQ�b�b�b	
c
c"c,9cfc�c"�c�c1�c/dGd+Yd�d0�d3�d.e7e1OeC�ek�eB1f1tf?�fI�f50g&fg<�g%�g�gG�gGDhE�h5�h)i02ici0~i'�i�i�ijj.j(Fjoj�j�j3�j*�j,k-Kk.yk/�k+�k!l&lBlZlblyl�l�l�l�l
�l�l�l�lm!m-mKm[mnm}m�m�m�m(�m�m�m	�m�mnn$n3n
;nEFn�n�n�n�n�n
�n�n#�no
$o2o8o@oOoXogono}o:�o'�o%�o%	p)/pYphpnp�p�p�p�p3�pq(q)Cq"mq;�q�q(�q"r2rJr$fr'�r#�r�rU�rT@s�s$�s�s�s"
t0t9t@tHt
Pt[tlt�t/�t-�t7�t73uku(|u�u�u�u�u#v#%vIv?Xv�v�v+�v
�vw@%wSfw,�wD�wM,xQzx.�x/�x0+y/\y&�y�y*�y0�y !z&Bz$iz�z"�z�z
�z�z!{"{4{M{b{Az{�{%�{�{�{
|,|A|+S|;|C�|6�|$6}/[}#�}�}�}�}�}2~D~T~,e~'�~�~�~�~
�~"#1Ur��?���+�3�+B�n�	������&��2Ҁ5�2;�4n�������ȁ)ׁ���7�T�h�|�������$Ă�+�-2� `�����&��ڃ���,�L�_�*t�*��ʄӄ�����,)�#V�z�����
��9��8��43�3h�9��9ֆ9�9J�9��)��*��%2�<X���������#ш0��5&�\�	d�n�����
����ʉ։�
���� �2�8;��0�^���i��A��R���{�_��t��v�
6Ig7��;�X���j�yq"�I��
�?�#��$n�	��}&��(w���������0�U��D<�"p�G�	=�(�!��V{#�l��|���r����$Z��s*
}�G5l)�3p�xP���Qm��>T�LhY���-$8�!�q��'^u���bD���Z�#g	�v�H`GZ4��1ea`
��,����j^()w�����R	g�9����_/����eyNb��/
`	�:X���;��d������V�v����:��kxL���f84������\uM'���NB�H�?�O��%��n�q�Y��0�M���4� H4��^�B4L,�}dz��7G�Z�E���.oIy65T�\���q-�LKP%a�l��DY�P���,�L����OH���N���[%���~�T9y.u���:S���~O���x�������Qc�~�q.�z<WM���"9���,8?w]c���C���=��A������ H'��<&\����B�bp�^%5x+�Y`�k���:���e��M�~�8�5gn�:��-�%��[$�,:^��IE"�S�9IWI�P�eCr_��Q�5������i"�g�����f��x����6���]iu�>��Z���C�(uCp�����+�	#�9�Q���0���}V�������\�4F��G;G����?]�_���k��<�2�F1o�L�>K������;����w�>\�_KB���@iU��� +p�)CJ��s��z�T]����z��t�D�>~,�rv���b�t�0�2�8@-��*{o�
��;�V�J],����z�����np�b�!�/���������c~(yG��rF|cf8�&���U�[��K�t�'g'3t��3��WE����B�.��C2��o7������'aM5O�J�D�������w���ND�f�H�-O2�v�m6h��i���m�����d�*�v-�0e�MY*���8<��>���X�s��&��:���@�m�Z��1$�c�Qy�&�>a���T����*������x��'K��d�52�P���������3�0k@���R=)��EJ+\��a�s�Ek�W��u.��*���5����6F%�����a��|?�<�nF._��d��S���jh�|����r��C�
�`s����T�W�/��A����U A�2$��{:MSs���e�����]���)�.�J!����R�N�!Og$E�������1�����������}}8��� @=�n�b��JQ(�w�-1�e�L�����r�i��3�3)���;%F���7M��" ��A�F<d�f[�A����cB��x
��2�k`��
�!�+@3����#��S��?� Nh��7��1�%�op=|���+0NXf�AL��!q�[�B">�X���lW|��jD��W��hZ��y�
�-�f���P&�[[��nD~��!��Kz`V�PH�������6��#����	�X�h�����4/�ab��{��t,�R)�����T]^��#}�&�Kt���=���/�r�{��m��(��
QF�m����6��
I��U�U��S;�����U��K�@��Ijm��is�.9���u;�AV�(7�=@��1��k�?�9��"�	���/G��j����O+�XY��S6cY_&7��E�R���j)B�������w��
����1�N7�<�C|���
49�'�
l{��RlJ�*��$�/�����E\vh�����J=� �V3d���z�#�+��o�
������q������H�����l�*�?o����2
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Quit, or continue with caution.
  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in Win32s mode in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Cscope tag: %sCurrent %slanguage: "%s"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E834: Line count changed unexpectedlyE835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Lua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][blowfish][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]add() argumentafterand run diff with the original file to check for changes)attempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlererror list %d of %d; %d errorsexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sfreeing %ld linesfunction %s does not existfunction constructor does not accept keyword argumentsgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater then zerope_line_count is zeropre-vimrc command lineproblem while switching windowsread from Netbeans socketreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: pl
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2013-07-06 19:33+0200
PO-Revision-Date: 2010-08-10 18:15+0200
Last-Translator: Mikolaj Machowski <mikmach@wp.pl>
Language-Team: 
Language: pl
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Generator: Lokalize 1.0
Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);

	Ostatnie ustawienie przez 

Argumenty:


u�ycie:
         zmieniono: 
     [nie do u�ytku na tym komputerze]
         [nie nadaje si� dla tej wersji Vima]
      nazwa hosta: 
        u�ytkownik: 
        ID procesu: 
       c: znajd� funkcje wywo�uj�ce t� funkcj�
       d: znajd� funkcje wywo�ywane przez t� funkcj�
       e: znajd� ten wzorzec egrep
       f: znajd� ten plik
       g: znajd� t� definicj�
       i: znajd� pliki w��czaj�ce (#include) ten plik
       s: znajd� ten symbol C
       t: znajd� ten �a�cuch znak�w

    Nazwa       Arg. Zak.  Gotowo��  Definicja
   #   wiersz
   lub:
  # DO znacznik  OD wiersza      w pliku/tek�cie
 skok wiersz kol plik/tekst
# %s Historia (od najnowszych po najstarsze):

# Lista bufor�w:

# Zak�adki w plikach:

# Historia zak�adek w plikach (od najnowszych po najstarsze):

# Lista odniesie� (pocz�wszy od najnowszych):

# Ostatni %sWyszukiwany wzorzec:
~
# Ostatni podstawiany ci�g:
$
# Rejestry:

# zmienne globalne:

(1) Pewnie inny program obrabia ten sam plik.
    Je�li tak, b�d� ostro�ny, aby nie sko�czy� z dwoma
    r�nymi wersjami tego samego pliku po zmianach.

(Mo�esz chcie� zapisa� ten plik pod inn� nazw�

--- Autokomendy ---
--- Globalne warto�ci opcji ---
--- Lokalne warto�ci opcji ---
--- Menu ---
--- Opcje ---
--- Rejestry ---
--- Znaki ---
--- Elementy sk�adni ---
--- Elementy synchronizacji sk�adni ---
--- Kody terminala ---
--- Klawisze terminala ---
16 bitowa wersja dla MS-DOS
32 bitowa wersja dla MS-DOS
Argumenty rozpoznawane przez gvim (wersja Athena):

Argumenty rozpoznawane przez gvim (wersja GTK+):

Argumenty rozpoznawane przez gvim (wersja Motif):

Argumenty rozpoznawane przez gvim (wersja neXtaw):

Du�a wersja 
Nie mog� stworzy� potok�w

Nie mog� wykona� pow�oki 
Nie mog� wykona� pow�oki sh

Nie mog� rozdzieli� si�

Komenda zako�czona

Skompilowany 
Nie mog� uzyska� kontekstu bezpiecze�stwa dla
Nie mo�na uzyska� kontekstu bezpiecze�stwa dla
Ekstra �aty: 
Znalaz�em plik wymiany o nazwie "
Olbrzymia wersja 
Je�li podano nowy klucz szyfruj�cy, ale nie zapisano pliku tekstowego,
Je�li zapisano plik tekstowy po zmianie klucza szyfruj�cego wci�nij Enter
Zadane �aty: 
16 bitowa wersja dla MS-Windows
16/32-bit wersja GUI dla MS-Windows
32 bitowa wersja GUI dla MS-Windows
32 bitowa wersja na konsol� dla MS-Windows
64 bitowa wersja GUI dla MS-Windows
32 bitowa wersja na konsol� dla MS-Windows
wersja dla MacOS X (unix)
wersja dla MacOS X
wersja dla MacOS
Mo�e nie wykonano zmian albo Vim nie zaktualizowa� pliku wymiany.
Dalsze informacje poprzez: "vim -h"

Normalna wersja 
wersja dla OpenVMS
Ma�a wersja 
Malutka wersja 
Vim: Dosta� b��d X

OSTRZE�ENIE: Oryginalny plik mo�e zosta� utracony lub uszkodzony

gdzie wielko�� znak�w jest ignorowana dodaj na pocz�tku / by flaga by�a wielk� liter�
Mo�esz teraz chcie� usun�� plik .swp.


[bajt�w] totalne alokacje-zwolnienia %lu-%lu, w u�ytku %lu, maksymalne u�ycie %lu

zmie� wrsz. kol tekst
wprowad� nowy klucz szyfruj�cy.
zak�. wiersz kol plik/tekst
pow�oka zwr�ci�a 
synchronizuj� na elementach
aby u�y� tego samego klucza dla pliku tekstowego i wymiany     dla domy�lnych ustawie� Vima                     dla dw�ch tryb�w                         data:    posiadany przez:             [nieotwieralny]        [nieodczytywalny]         [nie wygl�da na plik wymiany Vima]         [po Vimie wersja 3.0]       nazwa pliku:      -- �aden --
      NOWSZE od pliku wymiany!
    exrc u�ytkownika: "   vimrc u�ytkownika: "    Je�li tak, to u�yj ":recover" lub "vim -r     Je�li ju� to zrobi�e�, usu� plik wymiany "    wiersz=%ld  id=%d  nazwa=%s systemowy plik menu: "  gvimrc u�ytkownika: "   W bie��cym katalogu:
   W katalogu    U�ywam podanej nazwy:
   data:    nazwa hosta:        vimrc systemu: "  # pri rodzaj znacznik  (Ju� wymienione)  2-gi plik exrc u�ytkownika: "  KOMPILACJA DEBUG  Opcje w��czone (+) lub nie (-):
  NIE ZNALEZIONO  Zako�cz lub ostro�nie kontynuuj.
  WSZYTKO    ILO��  PASUJE  NAJWOLN.    �REDNIO   NAZWA              WZORZEC  U�ywam znacznika o odmiennej wielko�ci liter!   odwet dla $VIM-a: "     gvimrc systemu: " # pid   nazwa bazy danych               przedsionek tropu
 (Przerwane) (NIE ZNALEZIONO) (zawiera poprzednio wymienione dopasowanie) (wprowadzanie) (wprowadzanie) Przewijanie (^E/^Y) (j�zyk) (wiersz skasowany)(nie wspomagane) (wklejanie) (zamiana) (zamiana) Przewijanie (^E/^Y) (dalej dzia�a) (v-zamiana) 2-gi plik vimrc u�ytkownika: " 3-ci plik vimrc u�ytkownika: " < "%.*s" Dodaj� Arabski B��D W PRZEMIANIE Dope�nianie wiersza polece� (^V^N^P) Kopia %d z %d Dope�nianie definicji (^D^N^P) Dope�nianie ze s�ownik�w (^K^N^P) NIE POWIOD�O SI� Dope�nianie nazw plik�w (^F^N^P) Hebrajski WPROWADZANIE Lokalne dope�nianie s��w kluczowych (^N^P) Dope�nianie s��w kluczowych (^N^P) Omni uzupe�nianie (^O^N^P) Dope�nianie wzorc�w trop�w (^N^P) ZAMIANA NEGATYW ZAZNACZANIE ZAZNACZANIE BLOKOWE ZAZNACZANIE LINIOWE SPACE/d/j: ekran/strona/wiersz w d�, b/u/k: do g�ry, q: zako�czPropozycja pisowni (^L^N^P) Dope�nianie znacznik�w (^]^N^P) Dope�nianie z tezaurusa (^T^N^P)Dope�nianie zdefiniowane przez u�ytkownika (^U^N^P) WIZUALNY WIZUALNY BLOKOWY WIZUALNY LINIOWY V-ZAMIANA Dope�nianie pe�nych wierszy (^L^N^P) [Zmieniony] [a] [w] ^X tryb (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) do��czono nie mo�e by� stosowany na tym komputerze.
 nie mo�e by� stosowany z t� wersj� Vima.
f-b dla $VIMRUNTIME: " zosta� uszkodzony (wielko�� strony jest mniejsza ni� najmniejsza warto��).
 w trybie Win32s w wierszu %ld; informacja pokrewny plik
znak�w nowego wiersza wierszy przed g�rn� lini� zak�adki stare pliki w %ld wierszach w 1 wierszu lub wi�cej zwr�ci�
 vim [argumenty] ze wspomaganiem OLE zapisano"
    aby unikn�� tej wiadomo�ci.
"
    aby odzyska� zmiany (zobacz ":help recovery)").
" ju� istnieje!# Ten plik viminfo zosta� wygenerowany przez Vima %s.
# Warto�� 'encoding' w czasie zapisu tego pliku
# Mo�esz go ostro�nie edytowa�!

%-5s: %s%*s (U�ycie: %s)%3d  %s %s  wiersz %ld%<%f%h%m%=Strona %N%d bufor�w skasowanowy�adowano %d bufor�wwyrzucono %d bufor�w%d powt�rzony(ch) wyraz(�w) w %s%d plik�w do edycji
jeszcze %d plik�w do edycji.  Mimo to wyj��?otworzono %d z %d%ld %s; %s #%ld  %s%ld Kolumn; %ld znak�wusuni�to %ld wierszy%ld wierszy %sed %d razy%ld wierszy %sed 1 raz%ld wiersze --%d%%--%ld wierszy zmieniono%ld wierszy przefiltrowanych%ld wierszy wci�tych %ld wiersze przeniesione%ld wierszy do wci�cia... %ld wierszy skopiowanych%ld wierszy, %ld dopasowa�dodano %ld wierszy%ld sekund temu%ld podstawie�%lld znak�w%s Autokomend dla "%s"porzucono %s%s odrzucony%s wiersz %ld%s zosta� zawieszony%s przywr�cony%s zwraca #%ld%s zwraca %sWarto�� %s r�ni si� od tej u�ytej w innym pliku .aff%s, wiersz %ld%sviminfo: %s w wierszu: &Anuluj&Anuluj&Filtr&Pomoc&OK&OK
&Zako�cz&OK
&Za�aduj Plik&Ok&Otw�rz Read-Only
&Edytuj pomimo
O&dtw�rz
&Usu�
&Zako�cz
&Porzu�&Otw�rz Read-Only
&Edytuj pomimo
O&dtw�rz
&Zako�cz
&Porzu�&Zamie�&Cofnij&Tak
&Nie&Tak
&Nie
&Zako�cz&Tak
&Nie
Zapisz &wszystkie
&Odrzu� wszystkie
&Zako�cz' nieznany. Mo�liwe typy wbudowanych terminali:'-nb' - nie mo�e by� u�yte: nie w��czone przy kompilacji
'columns' nie wynosi 80, nie mog� wykona� zewn�trznych komendopcja 'dictionary' jest pustaopcja 'history' jest zerowaopcja 'readonly' nastawiona dla "%s".
Czy chcesz go pomimo tego zapisa�?opcja 'thesaurus' jest pusta(%d z %d)%s%s: (+%ld dla BOM)(2) Sesja edycji dla pliku za�ama�a si�.
(Przerwane) (Niew�a�ciwe)(NFA) NIE MO�NA OTWORZY� %s !+			Zacznij na ko�cu pliku+-%s%3ld wierszy: +--%3ld wierszy zwini�to +<lnum>		Zacznij w wierszu <lnum>+reverse		Nie stosuj negatywu kolor�w (r�wnie�: +rv),
lub plik zosta� uszkodzony.-               czytaj tekst ze stdin--			Tylko nazwy plik�w po tym-- Wi�cej ---- Szukam...--- Zawarte pliki --Skasowano----Brak wierszy w buforze---cmd <command>		Wykonaj komend� <command> przed za�adowaniem jakiegokolwiek pliku vimrc--cmd argument-echo-wid		Gvim wypisze Window ID na wyj�cie standardowe--literal		Nie rozwijaj znak�w specjalnych--noplugin		Nie �aduj skrypt�w wtyczek--remote <pliki>	Edytuj pliki w serwerze Vima je�li mo�liwe--remote-expr <wyr>	Wykonaj <wyra�enie> w serwerze i wypisz wynik--remote-send <klawisze>	Wy�lij <klawisze> do serwera Vima i zako�cz--remote-silent <pliki> To samo, nie narzekaj je�li nie ma serwera--remote-tab[-wait][-silent] <pliki>  tak jak --remote ale u�ywa jednej karty na plik--remote-wait <pliki>	Tak jak --remote, lecz czekaj na pliki przed edycj�--remote-wait-silent <pliki>  To samo, nie narzekaj je�li nie ma serwera--role <role>	Ustaw unikatow� rol� do identyfikacji g��wnego okna--serverlist		Wymie� nazwy dost�pnych serwer�w Vima i zako�cz--servername <nazwa>		Odsy�aj do/sta� si� serwerem Vim <nazwa>--socketid <xid>	Otw�rz Vim wewn�trz innego widgetu GTK--startuptime <plik> Zapisz wiadomo�ci o d�ugo�ci startu do <plik>--version		wy�wietl informacj� o wersji i zako�cz--windowid <HWND>	Otw�rz Vima wewn�trz innego elementu win32-A			rozpocznij w trybie arabskim-C			B�d� zgodny z Vi: 'compatible'-D			Tryb odpluskwiania-E			Usprawniony tryb Ex-F			rozpocznij w trybie farsi-H			rozpocznij w trybie hebrajskim-L			To�same z -r-M			Zakaz modyfikacji tekstu-N			B�d� niezupe�nie zgodny z Vi: 'nocompatible'-O[N]		tak samo jak -o tylko dziel okno pionowo-P <tytu� rodzica>	Otw�rz Vima wewn�trz rodzicielskiej aplikacji-R			Tryb wy��cznie do odczytu (jak "view")-S <sesja>		Wczytaj plik <sesja> po za�adowaniu pierwszego pliku-T <terminal>	Ustaw typ terminala na <terminal>-U <gvimrc>		U�yj <gvimrc> zamiast jakiegokolwiek .gvimrc-V[N][nazwap]		Gadatliwy [poziom N] [zapisuj wiadomo�ci do nazwap]-W <scriptout>	Zapisuj wszystkie wprowadzane komendy do pliku <scriptout>-X			Nie ��cz z serwerem X-Z			Tryb ograniczenia (jak "rvim")-b			Tryb binarny-background <kolor>	U�ywaj <kolor> dla t�a (r�wnie�: -bg)-boldfont <font>	U�ywaj <font> dla wyt�uszczonego tekstu-borderwidth <szer>	U�yj ramki o grubo�ci <szer> (r�wnie�: -bw)-c <command>		Wykonaj komend� <command> po za�adowaniu pierwszego pliku-c argument-d			Tryb r�nic (jak "vimdiff")-dev <device>		U�ywaj <device> do I/O-display <display>	Pod��cz vima to danego X-serwera-display <display>	Za�aduj vim na <display>-display <display>	Zastartuj vim na <display> (r�wnie�: --display)-e			Tryb ex (jak "ex")-f			Nie stosuj newcli do otwierania okien-f  lub --nofork	Pierwszy plan: Nie wydzielaj przy odpalaniu GUI-font <font>		U�ywaj <font> dla normalnego tekstu (r�wnie�: -fn)-foreground <kolor>	U�ywaj <kolor> dla normalnego tekstu (r�wnie�: -fg)-g			Startuj w GUI (tak jak "gvim")-geometry <geom>	U�ywaj <geom> dla pocz�tkowych rozmiar�w (r�wnie�: -geom)-h  lub  --help	wy�wietl Pomoc (czyli t� wiadomo��) i zako�cz-i <viminfo>		U�ywaj <viminfo> zamiast .viminfo-iconic		Zacznij Vim jako ikon�-italicfont <font>	U�ywaj <font> dla pochy�ego-l			Tryb lisp-m			Modyfikacje (zapisywanie plik�w) niedozwolone-menuheight <height>	Stosuj belk� menu o wysoko�ci <height> (r�wnie�: -mh)-n			Zamiast pliku wymiany, u�ywaj tylko pami�ci-o[N]		Otw�rz N okien (domy�lnie: po jednym dla ka�dego pliku)-p[N]		Otw�rz N kart (domy�lnie: po jednej dla ka�dego pliku)-q [errorfile]  edytuj plik, zawieraj�cy pierwszy b��d-r			Wylicz pliki wymiany i zako�cz-r (z nazw� pliku)	Odtw�rz za�aman� sesj�-register		Zarejestruj tego gvima w OLE-reverse		Stosuj negatyw kolor�w (r�wnie�: -rv)-s			Cichy tryb (t�a) (tylko dla "ex")-s <scriptin>	Wczytuj komendy trybu normalnego z pliku <scriptin>-scrollbarwidth <szer>  U�ywaj przewijacza o szeroko�ci <szer> (r�wnie�: -sw)-t znacznik   edytuj plik, w kt�rym dany znacznik jest zdefiniowany-u <vimrc>		U�yj <vimrc> zamiast jakiegokolwiek .vimrc-unregister		Wyrejestruj gvima z OLE-v			Tryb vi (jak "vi")-w <scriptout>	Do��cz wszystkie wprowadzane komendy do pliku <scriptout>-x			Edytuj zakodowane pliki-xrm <resource>	Ustaw okre�lony zas�b-y			Tryb �atwy (jak "evim", bez tryb�w)wiersz / zignorowano w %s wierszu %d: %sZignorowano wiersz /encoding= po wyrazie w %s wierszu %d: %s1 bufor skasowany1 bufor wy�adowanywyrzucono 1 bufor 1 znak1 wiersz %sed %d razy1 wiersz %sed 1 raz1 wiersz --%d%%--1 wiersz zmieniono1 wiersz wci�ty 1 wiersz mniej1 wiersz przeniesiony1 wiersz skopiowano1 wiersz, 1 pasuje1 wi�cej plik do edycji.  Mimo to wyj��?1 wiersz wi�cej1 podstawienie 2-gi plik gvimrc u�ytkownika: "3-ci plik gvimrc u�ytkownika: ": Wys�anie wyra�enia nie powiod�o si�.
: Wys�anie nie powiod�o si�.
: Wys�anie nie powiod�o si�. Pr�buj� wykona� na miejscu
; pasuje <%s>%s%s  %d,  Hex %02x,  Oktal %03o<nie mog� otworzy�> <pusty>> %d, Hex %04x,  Oktal %o> %d, Hex %08x, Oktal %o??? od tego miejsca po ???KONIEC wiersze mog� by� pomieszane??? od tego miejsca po ???KONIEC wiersze mog� by� w�o�one/skasowane???BRAK BLOKU???PUSTY BLOK???KONIEC???LICZNIK WIERSZY NIEZGODNY???BRAKUJE WIERSZY???BRAKUJE WIELU WIERSZYANCHOR_BUF_SIZE zbyt niskie.Dodaj now� baz� danychDodano baz� danych cscope %sAfiks u�yty tak�e dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %sZa d�uga nazwa afiksu w %s wiersz %d: %sWszystkoWszystkie bazy danych cscope prze�adowanoWszelkie w��czane pliki odnalezionoJu� w miejscu najnowszej zmianyJu� w miejscu ostatniej zmianyJest ju� tylko jedna kartaJu� jest tylko jeden widokDo��cz plikBrak argumentu poW wierszuPr�ba ponownego otworzenia pliku skryptu: "Z powrotem na pierwotnymDano wsteczny zakres; zamiana jest mo�liwaZosta� zarejestrowanym u�ytkownikiem Vima!Biiip!Przed bajtem %ldD�Wiersze SAL i SOFO w %sPunkt kontrolny w "%s%s" wiersz %ldB��dny warunek w %s wiersz %d: %sPrzejrzyj klas�COMPOUNDSYLMAX u�yty bez SYLLABLEWywo�uj� pow�ok� do wykonania: "%s"Nie mog� znale�� pliku tymczasowego w celu przemianyZako�czNie mo�na po��czy� z NetbeansNie mo�na po��czy� z Netbeans #2Nie mog� pod��czy� do SNiFF+. Sprawd� �rodowisko (sniffemacs musi by� odnaleziony w $PATH).
Nie mog� stworzy� Nie mog� wykona� Nie mog� otworzy� NIL:
Nie mog� otworzy� pliku "%s"Nie mog� otworzy� do odczytu: "Nie mog� otworzy� dla wyj�cia skryptu: "Nie mo�na wczyta� katalogu: "%s"Nie mo�na zapisa� pliku undo w �adnym katalogu z 'undodir'Zmie� "%.*s" na:ZamknijZamknij kart�Kol %s z %s; Wiersz %ld z %ld; S�owo %ld z %ld; Bajt %ld z %ldKol %s z %s; Wiersz %ld z %ld; S�owo %ld z %ld; Znak %ld z %ld; Bajt %ld z %ldWiersz polece�Kompilacja: Kompilator: Skompresowano %d z %d w�z��w; pozostaje %d (%d%%)Kompresja drzewa s��w...Konwersja nie powiod�a si� dla wyrazu w %s wierszu %d: %sKonwersja w %s nie jest wspieranaKonwersja w %s nie jest wspierana: od %s do %sNieudana przemiana z 'charconvert'Nie zdo�a�em poprawi� wska�nik�w funkcji w DLL!Nie mog� za�adowa� vim32.dll!Nie mo�na otworzy� do zapisu tymczasowego pliku logowaniaNie mo�na otworzy� do zapisu tymczasowego pliku, pokazuj� na stderr... Znacznik cscope: %sBie��cy %sj�zyk: "%s"Definiowanie COMPOUNDFORBIDFLAG po PFX mo�e skutkowa� z�ym wynikiem w %s wiersz %dDefiniowanie COMPOUNDPERMITFLAG po PFX mo�e skutkowa� z�ym wynikiem w %s wiersz %dDiff z VimemR�ne flagi z�o�e� w kontynuowanym bloku afiksu w %s wiersz %d: %sKierunekKatalogiKatalog	*.nic
Czy naprawd� chcesz go zapisa�Zrobione!Podw�jny ; w li�cie zmiennychW d�Zignorowano powt�rzony wiersz /encoding= w %s wierszu %d: %sPowt�rzony wiersz /regions= zignorowano w %s wierszu %d: %sPowt�rzony afiks w %s wiersz %d: %sPowt�rzony znak w MAP w %s wierszu %dPowt�rzona nazwa pola: %sPowt�rzony wyraz w %s wierszu %d: %sE100: Brak innego bufora w trybie r�nicE101: Wi�cej ni� jeden bufor w trybie r�nicowania, nie wiem kt�rego u�y�E102: Nie mog� znale�� bufora "%s"E103: Bufor "%s" nie jest w trybie r�nicowaniaE104: Escape jest niedozwolone w dwugrafieE105: Zastosowano :loadkeymap w niewczytanym plikuE107: Brak nawias�w: %sE108: Nie istnieje zmienna: "%s"E109: Brak ':' po '?'E10: po \ powinno by� /, ? lub &E110: Brak ')'E111: Brak ']'E112: Brak nazwy opcji: %sE113: Nieznana opcja: %sE114: Brak cudzys�owu: %sE115: Brak cudzys�owu: %sE116: Zbyt wiele argument�w dla funkcji %sE117: Nieznana funkcja: %sE118: Zbyt wiele argument�w dla funkcji: %sE119: Za ma�o argument�w dla funkcji: %sE11: Niedozwolone w oknie wiersza polece�; <CR> wykonuje, CTRL-C opuszczaE120: U�ycie <SID> poza kontekstem skryptu: %sE121: Nieokre�lona zmienna: %sE122: Funkcja %s ju� istnieje; aby j� zamieni� u�yj !E123: Nieznana funkcja: %sE124: Brak '(': %sE125: Niedozwolony argument: %sE126: Brak :endfunctionE127: Nie mog� redefiniowa� funkcji %s: jest w u�yciuE128: Nazwa funkcji musi rozpoczyna� si� wielk� liter� lub zawiera� dwukropek: %sE129: Wymagana jest nazwa funkcjiE12: Komenda niedozwolona z exrc/vimrc w bie��cym szukaniu katalogu lub znacznikaE130: Nieznana funkcja: %sE131: Nie mog� skasowa� funkcji %s: jest w u�yciuE132: Zagnie�d�enie wywo�a� funkcji ponad 'maxfuncdepth'E133: :return poza funkcj�E134: Przeniesienie wierszy na siebie samychE135: Autokomendy *Filter* nie mog� zmienia� bie��cego buforaE136: viminfo: Zbyt wiele b��d�w; pomijam reszt� plikuE137: Plik viminfo jest niezapisywalny: %sE138: Nie mog� zapisa� pliku viminfo %s!E139: Plik jest za�adowany w innym buforzeE13: Plik istnieje (wymu� poprzez !)E140: Stosuj ! do zapisania cz�ciowo buforaE141: Brak nazwy pliku dla bufora %ldE142: Plik niezapisany: Zapis jest wy��czony opcj� 'write'E143: Autokomendy nieoczekiwanie skasowa�y nowy bufor %sE144: nienumeryczny argument dla :zE145: Komendy pow�oki s� niedozwolone w rvimE146: Wzorce regularne nie mog� by� rozgraniczane literamiE147: Nie mog� wykona� :global rekursywnieE148: Brak wzorca regularnego w :globalE149: Przykro mi, ale brak pomocy o %sE14: Niew�a�ciwy adresE150: Nie jest katalogiem: %sE152: Nie mog� otworzy� %s do zapisuE153: Nie mog� otworzy� %s do odczytuE154: Powt�rzony znacznik "%s" w pliku %s/%sE155: Nieznany znak: %sE156: Brak nazwy znakuE157: Niew�a�ciwe ID znaku: %ldE158: Niew�a�ciwa nazwa bufora: %sE159: Brak numeru znakuE15: Niew�a�ciwe wyra�enie: %sE160: Nieznana komenda znaku: %sE161: Nie znaleziono punktu kontrolnego: %sE162: Nie zapisano zmian w buforze "%s"E163: Tylko jeden plik w edycjiE164: Nie mo�na przej�� przed pierwszy plikE165: Nie mo�na przej�� za ostatni plikE166: Nie mog� otworzy� pod��czonego pliku do zapisuE167: u�yto :scriptencoding poza wczytywanym plikiemE168: u�yto :finish poza wczytywanym plikiemE169: Komenda zbyt rekursywnaE16: Niew�a�ciwy zakresE170: Brak :endforE170: Brak :endwhileE171: Brak :endifE172: Tylko pojedyncza nazwa pliku dozwolonaE173: jeszcze %ld plik�w do edycjiE173: 1 wi�cej plik do edycjiE174: Komenda ju� istnieje; aby j� przedefiniowa� stosuj !E175: Nie okre�lono atrybutuE176: Niew�a�ciwa ilo�� argument�wE177: Mno�nik nie mo�e by� podany dwukrotnieE178: Niew�a�ciwa domy�lna warto�� mno�nikaE179: -complete wymaga argumentuE17: "%s" jest katalogiemE180: Niew�a�ciwa warto�� dope�niania: %sE181: Niew�a�ciwy atrybut: %sE182: Niew�a�ciwa nazwa komendyE183: Komendy zdefiniowane przez u�ytkownika musz� rozpoczyna� si� du�� liter�E184: Nie ma takiej komendy u�ytkownika: %sE185: Nie mog� znale�� zestawu kolor�w '%s'E186: Nie ma poprzedniego kataloguE187: NieznanyE188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemuE189: "%s" istnieje (wymu� poprzez !)E18: Nieoczekiwane znaki w :letE190: Nie mog� otworzy� "%s" do zapisuE191: Argument musi by� liter� albo cudzys�owem w prz�d/ty�E192: Rekursywne zastosowanie :normal za g��bokieE193: :endfunction poza funkcj�E194: Brak nazwy zamiennego pliku do podstawienia pod '#'E195: Nie mog� otworzy� pliku viminfo do odczytuE196: Brak dwugraf�w w tej wersjiE197: Nie mog� ustawi� j�zyka na "%s"E198: cmd_pchar przekracza d�ugo�� poleceniaE199: Aktywny widok lub bufor skasowanyE19: Zak�adka ma niew�a�ciwy numer wierszaE200: Autokomendy *ReadPre zrobi�y plik nieodczytywalnymE201: Autokomendy *ReadPre nie mog� zmienia� bie��cego buforaE202: Nie mo�na otworzy� pliku utworzonego przez przemian�!E203: Autokomendy skasowa�y lub wy�adowa�y bufor przeznaczony do zapisuE204: Autokomenda zmieni�a liczb� wierszy w nieoczekiwany spos�bE205: Patchmode: nie mog� zapisa� oryginalnego plikuE206: patchmode: nie mog� stworzy� pustego oryginalnego plikuE207: Nie mog� skasowa� pliku zabezpieczeniaE208: B��d zapisywania do "%s"E209: B��d w trakcie zamykania "%s"E20: Zak�adka nienastawionaE210: B��d odczytu "%s"E211: Plik "%s" nie jest d�u�ej dost�pnyE212: Nie mog� otworzy� pliku do zapisuE213: Nie mog� przemieni� (u�yj ! by zapisa� bez przemiany)E214: Nie mog� znale�� pliku tymczasowego do zapisaniaE215: Niedopuszczalny znak po *: %sE216: Nie ma takiego wydarzenia: %sE216: Nie ma takiej grupy lub wydarzenia: %sE217: Nie mo�na wykonywa� autokomend dla wydarze� ALLE218: zbyt g��bokie zagnie�d�enie autokomendE219: Brak {.E21: Nie mog� wykona� zmian, 'modifiable' jest wy��czoneE220: Brak }.E222: Dodaj do bufora odczytuE223: rekursywne przyporz�dkowanieE224: istnieje ju� globalny skr�t dla %sE225: istnieje ju� globalne przyporz�dkowanie dla %sE226: istnieje ju� skr�t dla %sE227: istnieje ju� przyporz�dkowanie dla %sE228: makemap: Niedopuszczalny trybE229: Nie mog� odpali� GUIE22: Zbyt g��bokie zagnie�d�enie skrypt�wE230: Nie mog� czyta� z "%s"E231: Niew�a�ciwe 'guifontwide'E232: Nie mog� stworzy� BalloonEval z powiadomieniem i wywo�aniemE233: nie mog� otworzy� ekranuE234: Nieznany zestaw czcionek: %sE235: Nieznana czcionka: %sE236: Czcionka "%s" nie ma sta�ej szeroko�ci znak�wE237: Wyb�r drukarki nie powi�d� si�E238: B��d drukarki: %sE239: Niew�a�ciwy tekst znaku: %sE23: Brak pliku zamianyE240: Brak po��czenia z serwerem VimE241: Nie mog� wys�a� do %sE243: Argument nie jest wspomagany: "-%s"; U�ywaj wersji OLE.E244: Niedozwolona nazwa zestawu znak�w "%s" w nazwie czcionki "%s"E245: Niedozwolony znak '%c' w nazwie czcionki "%s"E246: Autokomenda FileChangedShell skasowa�a buforE247: brak zarejestrowanego serwera o nazwie "%s"E248: Wys�anie komendy do programu docelowego nie powiod�o si�E24: Nie ma takiego skr�tuE250: Brak czcionek dla nast�puj�cych zestaw�w znak�w w zestawie czcionek %s:E251: wcielenia instancji rejestru Vima jest �le sformowane.  Skasowano!E252: Nazwa zestawu czcionek: %sE253: Nazwa zestawu czcionek: %sE254: Nie mog� zarezerwowa� koloru %sE255: Nie mog�em wczyta� danych znaku!E256: B��D w automacie HangulE257: cstag: nie znaleziono znacznikaE258: Nie mog� wys�a� do klientaE259: brak dopasowa� dla zapytania cscope %s o %sE25: GUI nie mo�e by� u�yte: Nie w��czono podczas kompilacjiE261: nie ma po��czenia %s z cscopeE262: b��d odczytu po��czenia z cscope %ldE263: Przykro mi, ta komenda jest wy��czona, bo nie mo�na za�adowa� biblioteki PythonaE264: Python: B��d w uruchomieniu obiekt�w I/OE265: $_ musi by� reprezentacj� �a�cuchaE266: Przykro mi, ta komenda jest wy��czona, bo nie mo�na za�adowa� biblioteki Ruby.E267: nieoczekiwany returnE268: nieoczekiwany nextE269: nieoczekiwany breakE26: Hebrajski nie mo�e by� u�yty: Nie w��czono podczas kompilacji
E270: nieoczekiwane redoE271: ponowna pr�ba poza klauzul� ratunkuE272: nieobs�ugiwany wyj�tekE273: Nieznany status longjmp %dE274: Sniff: B��d podczas czytania. Roz��czenieE275: Nieznane zapytanie SNiFF+: %sE276: B��d w trakcie pod��czania do SNiFF+E277: Nie mog� czyta� odpowiedzi serweraE278: SNiFF+ niepod��czonyE279: Nie jest buforem SNiFF+E27: Farsi nie mo�e by� u�yty: Nie w��czono podczas kompilacji
E280: TCL FATALNY B��D: reflist zepsuta!? Prosz� z�o�y� raport o tym na vim-dev@vim.orgE282: Nie mog� czyta� z "%s"E283: �adna zak�adka nie pasuje do "%s"E284: Nie mog� nastawi� warto�ci ICE285: Nie mog�em stworzy� kontekstu wprowadze�E286: Nie mog�em otworzy� sposobu wprowadze�E287: OSTRZE�ENIE: Nie mog�em zlikwidowa� wywo�ania dla IME288: metoda wprowadze� nie wspomaga �adnego styluE289: metoda wprowadze� nie wspomaga mojego typu preeditE28: Brak takiej nazwy grupy pod�wietlania: %sE293: blok nie by� zablokowanyE294: B��d w trakcie czytania pliku wymianyE295: B��d odczytu pliku wymianyE296: B��d szukania w pliku wymianyE297: B��d zapisu w pliku wymianyE298: Nie otrzyma�em bloku nr 0?E298: Nie otrzyma�em bloku nr 1?E298: Nie otrzyma�em bloku nr 2?E299: wyliczenie Perla zabronione w piaskownicy bez modu�u SafeE29: Nie wprowadzono jeszcze �adnego tekstuE300: Plik wymiany ju� istnieje (atak symlink?)E301: Ojej, zgubi�em plik wymiany!!!E302: Nie mog�em zmieni� nazwy pliku wymianyE303: Nie mog� otworzy� pliku wymiany dla "%s"; odtworzenie niemo�liweE304: ml_upd_block(): Nie otrzyma�em bloku 0??E305: Nie znaleziono pliku wymiany dla %sE306: Nie mog� otworzy� %sE307: %s nie wygl�da na plik wymiany VimaE308: OSTRZE�ENIE: Oryginalny plik m�g� by� zmienionyE309: Nie mog� odczyta� bloku 1 z %sE30: Nie ma poprzedniego wiersza polece�E310: Niew�a�ciwe ID bloku 1 (mo�e %s nie jest plikiem .swp?)E311: Przerwanie odtwarzaniaE312: Wykryto b��dy podczas odtwarzania; od kt�rych wierszy zacz�� ???E313: Nie mog� zabezpieczy�, bo brak pliku wymianyE314: Nieudane zabezpieczenieE315: ml_get: niew�a�ciwy lnum: %ldE316: ml_get: nie znaleziono wiersza %ldE317: niepoprawne id bloku odniesieniaE317: niepoprawne id bloku odniesienia 2E317: niepoprawne id wska�nika bloku 3E317: niepoprawne id wska�nika bloku 4E318: Zaktualizowano zbyt wiele blok�w?E319: Przykro mi, ale ta komenda nie jest dost�pna w tej wersjiE31: Nie ma takiego przyporz�dkowaniaE320: Nie mog� znale�� wiersza %ldE321: Nie mo�na prze�adowa� "%s"E322: numer wiersza poza zakresem: %ld jest poza ko�cemE323: liczba wierszy niepoprawna w bloku %ldE324: Nie mo�na otworzy� pliku PostScript do wyj�ciaE325: UWAGAE326: Znaleziono zbyt wiele plik�w wymianyE327: Cz�� tropu punktu menu nie okre�la podmenuE328: Menu istnieje tylko w innym trybieE329: Nie ma menu "%s"E32: Brak nazwy plikuE330: Trop menu nie mo�e prowadzi� do podmenuE331: Nie wolno dodawa� punkt�w menu wprost do paska menuE332: Separator nie mo�e by� cz�ci� tropu menuE333: Trop menu musi prowadzi� do punktu menuE334: Nie znaleziono menu: %sE335: Menu nie jest zdefiniowane dla trybu %sE336: Trop menu musi prowadzi� do podmenuE337: Nie znaleziono menu - sprawd� nazwy menuE338: Przykro mi, nie ma przegl�darki plik�w w trybie konsoliE339: Zbyt d�ugi wzorzecE33: Brak poprzedniego podstawieniowego wyra�enia regularnegoE340: Wiersz staje si� zbyt d�ugiE341: Wewn�trzny b��d: lalloc(%ld, )E342: Brak pami�ci!  (rezerwacja %lu bajt�w)E343: Niew�a�ciwy trop: '**[numer]' musi by� na ko�cu tropu lub po nim musi by� '%s'.E344: Nie mog� znale�� katalogu "%s" w cdpathE345: Nie mog� znale�� pliku "%s" w tropieE346: Katalogu "%s" nie ma wi�cej w cdpathE347: Pliku "%s" nie ma wi�cej w tropieE348: Brak ci�gu pod kursoremE349: Brak identyfikatora pod kursoremE34: Brak poprzedniej komendyE350: Nie mo�na utworzy� zwini�cia przy bie��cej 'foldmethod'E351: Nie mo�na skasowa� zwini�cia przy bie��cej 'foldmethod'E352: Nie mog� skasowa� zwini�cia z bie��c� 'foldmethod'E353: Pusty rejestr %sE354: Niew�a�ciwa nazwa rejestru: '%s'E355: Nieznana opcja: %sE356: B��D get_varpE357: 'langmap': Brak pasuj�cego znaku dla %sE358: 'langmap': Dodatkowe znaki po �redniku: %sE359: Ustawianie trybu ekranu niewspomaganeE35: Brak poprzedniego wyra�enia regularnegoE360: Nie mog� wykona� pow�oki z opcj� -fE363: Wzorzec u�ywa wi�cej pami�ci ni� 'maxmempattern'E364: Wywo�anie z biblioteki nie powiod�o si� dla "%s()"E365: Drukowanie pliku PostScript nie powiod�o si�E367: Nie ma takiej grupy: "%s"E369: Niew�a�ciwy element w %s%%[]E36: Brak miejscaE370: Nie mog�em za�adowa� biblioteki %sE371: Nie znaleziono komendyE372: Zbyt wiele %%%c w ci�gu formatuj�cymE373: Nieoczekiwane %%%c w ci�gu formatuj�cymE374: Brak ] w ci�gu formatuj�cymE375: Niewspomagane %%%c w ci�gu formatuj�cymE376: Niepoprawne %%%c w prefiksie ci�gu formatuj�cegoE377: Niepoprawne %%%c w ci�gu formatuj�cymE378: 'errorformat' nie zawiera wzorcaE379: Pusta nazwa katalogu lub jej brakE37: Nie zapisano od ostatniej zmiany (wymu� przez !)E380: Na dole stosu quickfixE381: Na g�rze stosu quickfixE382: Nie mog� zapisa�, opcja 'buftype' jest ustawionaE383: Niew�a�ciwy ci�g do szukania: %sE384: szukanie dobi�o G�RY bez znalezienia: %sE385: szukanie dobi�o KO�CA bez znalezienia : %sE386: Oczekuj� '?' lub '/' po ';'E387: Wzorzec pasuje w bie��cym wierszuE388: Nie znalaz�em definicjiE389: Nie znalaz�em wzorcaE38: Zerowy argumentE390: Niedozwolony argument: %sE391: Nie ma takiego klastra sk�adni: %sE392: Nie ma takiego klastra sk�adni: %sE393: group[t]here niedozwolone w tym miejscuE394: Nie znalaz�em element�w regionu dla %sE395: argument contains niedozwolony w tym miejscuE397: Wymagana nazwa plikuE398: Brak '=': %sE399: Za ma�o argument�w: syntax region %sE39: Oczekuj� liczbyE400: Brak specyfikacji klastraE401: Brak ogranicznika wzorca: %sE402: �mieci po wzorcu: %sE403: syntax sync: wielokrotnie podane wzorce kontynuacji wierszaE404: Niedozwolone argumenty: %sE405: Brak znaku r�wno�ci: %sE406: Pusty argument: %sE407: %s jest niedozwolone w tym miejscuE408: %s musi by� pierwsze w li�cie containsE409: Nieznana nazwa grupy: %sE40: Nie mog� otworzy� pliku b��d�w %sE410: Niew�a�ciwa podkomenda :syntax : %sE411: nie znaleziono grupy pod�wietlania: %sE412: Zbyt ma�o argument�w: ":highlight link %s"E413: Zbyt wiele argument�w: ":highlight link %s"E414: grupa ma ustawienia; zignorowane pod��czenie pod�wietlaniaE415: nieoczekiwany znak r�wno�ci: %sE416: brak znaku r�wno�ci: %sE417: brak argumentu: %sE418: Niedozwolona warto��: %sE419: Kolor FG nieznanyE41: Pami�� wyczerpana!E420: Kolor BG nieznanyE421: Nazwa lub liczba koloru nierozpoznana: %sE422: za d�ugi kod terminala: %sE423: Niedozwolony argument: %sE424: Zbyt wiele r�nych atrybut�w podkre�lania w u�yciuE425: Nie mo�na przej�� przed pierwszy pasuj�cy znacznikE426: nie znaleziono znacznika: %sE427: Pasuje tylko jeden znacznikE428: Nie mo�na przej�� za ostatni pasuj�cy znacznikE429: Plik "%s" nie istniejeE42: Brak B��d�wE430: Trop szukania pliku znacznik�w obci�ty dla %s
E431: B��d formatu w pliku znacznik�w "%s"E432: Plik znacznik�w nieuporz�dkowany: %sE433: Brak pliku znacznik�wE434: Nie mog� znale�� wzorca znacznikaE435: Nie znalaz�em znacznika - tylko zgaduj�!E436: Brak opisu "%s" w termcapE437: wymagana zdolno�� "cm" terminalaE438: u_undo: niew�a�ciwe numery wierszyE439: uszkodzona lista cofaniaE43: Popsuty ci�g wzorcaE440: brak wiersza cofaniaE441: Nie ma okna podgl�duE442: Nie mog� rozdzieli� lewo-g�rnego i prawo-dolnego jednocze�nieE443: Nie mog� przekr�ci�, gdy inne okno jest rozdzieloneE444: Nie mog� zamkn�� ostatniego oknaE445: Inne okno zawiera zmianyE446: Brak nazwy pliku pod kursoremE447: Nie mog� znale�� pliku "%s" w tropieE448: Nie mo�na za�adowa� funkcji biblioteki %sE449: Odebra�em niew�a�ciwe wyra�enieE44: Zepsuty program wyra�e� regularnychE455: Nie mo�na zapisa� do wyj�ciowego pliku PostScriptuE456: Nie mo�na znale�� pliku zasob�w PostScriptu "%s.ps"E456: Nie mo�na znale�� pliku zasob�w PostScriptu "cidfont.ps"E456: Nie mo�na znale�� pliku zasob�w PostScriptu "prolog.ps"E456: Nie mog� otworzy� pliku "%s"E457: Nie mo�na odczyta� pliku zasob�w PostScriptu "%s"E459: Nie mo�na przej�� do poprzedniego kataloguE45: opcja 'readonly' jest ustawiona (wymu� poprzez !)E460: Rozdzia� zasob�w zostanie utracony (wymu� przez !)E461: Niedozwolona nazwa zmiennej: %sE462: Nie mo�na przygotowa� prze�adowania "%s"E463: Region jest chroniony, nie mog� zmieni�E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez u�ytkownikaE465: :winsize wymaga dw�ch argument�w numerycznychE466: :winpos wymaga dw�ch argument�w numerycznychE467: Dope�nianie u�ytkownika wymaga funkcji jako argumentuE468: Argument depe�niania dozwolony wy��cznie dla dope�niania u�ytkownikaE469: nieprawid�owa flaga cscopequickfix %c dla %cE46: Nie mog� zmieni� zmiennej tylko do odczytu "%s"E470: Przerwanie komendyE471: wymagany argumentE472: Komenda nie powiod�a si�E473: B��d wewn�trznyE474: Niew�a�ciwy argumentE475: Niew�a�ciwy argument: %sE476: Niew�a�ciwa komendaE477: Niedozwolone !E478: Nie panikuj!E479: Brak dopasowa�E47: B��d w trakcie czytania pliku b��d�wE480: Brak dopasowa�: %sE481: Zakres niedozwolonyE482: Nie mog� stworzy� pliku %sE483: Nie mog� pobra� nazwy pliku tymczasowegoE484: Nie mog� otworzy� pliku %sE485: Nie mog� odczyta� pliku %sE486: Nie znaleziono wzorca: %sE487: Argument musi by� dodatniE488: Nadst�pne znaczkiE48: Niedozwolone w piaskownicyE490: Nie znaleziono zwini�ciaE492: Nie jest komend� edytoraE493: Dano wsteczny zakresE494: Stosuj w lub w>>E495: brak nazwy pliku autokomend do podstawienia pod "<afile>"E496: brak numeru bufora autokomend do podstawienia pod  "<abuf>"E497: brak nazwy dopasowania autokomend pod "<amatch>"E498: brak nazwy pliku :source do postawienia pod "<sfile>"E499: Pusta nazwa pliku dla '%' lub '#', dzia�a tylko z ":p:h"E49: Niew�a�ciwa wielko�� przewini�ciaE500: Wynikiem jest pusty ci�gE501: Na ko�cu plikuE505: "%s" jest tylko do odczytu (dodaj ! aby wymusi�)E505: %s jest tylko do odczytu (dodaj ! aby wymusi�)E506: Nie mog� zapisa� do pliku zabezpieczenia (wymu� przez !)E507: B��d podczas zamykania pliku zabezpieczenia (wymu� przez !)E508: Nie mog� odczyta� pliku w celu zabezpieczenia (wymu� przez !)E509: Nie mog� stworzy� pliku zabezpieczenia (wymu� przez !)E50: Zbyt wiele \z(E510: Nie mog� zrobi� pliku zabezpieczenia (wymu� przez !)E511: netbeans ju� pod��czoneE512: Zamkni�cie si� nie powiod�oE513: B��d zapisu, przemiana si� nie powiod�a (opr�nij 'fenc' aby wymusi�)E513: B��d zapisu, przemiana si� nie powiod�a w wierszu %ld (opr�nij 'fenc' by wymusi�)E514: b��d w zapisie (mo�e system plik�w jest przepe�niony?)E515: Nie wy�adowano �adnego buforaE516: Nie skasowano �adnego buforaE517: Nie wyrzucono �adnego buforaE518: Nieznana opcjaE519: Opcja nie jest wspomaganaE51: Zbyt wiele %s(E520: Niedozwolone w modelineE521: Po = wymagany jest numerE521: Wymagana Liczba: &%s = '%s'E522: Nie znaleziono w termcapE523: Niedozwolone w tym miejscuE524: Brak dwukropkaE525: Ci�g o zerowej d�ugo�ciE526: Brak numeru po <%s>E527: Brak przecinkaE528: Musi okre�la� warto�� 'E529: Nie mog� ustawi� 'term' na pusty ci�gE52: Niesparowany \z(E530: Nie mog� zmieni� term w GUIE531: U�yj ":gui" do odpalenia GUIE533: nie mog� wybra� szerokiej czcionkiE534: Niedozwolona szeroka czcionkaE535: Niedozwolony znak po <%c>E536: wymagany przecinekE537: 'commentstring' musi by� pusty lub zawiera� %sE538: Brak wspomagania myszkiE539: Niedozwolony znak <%s>E53: Niesparowany %s%%(E540: Niedomkni�ty ci�g wyra�e�E541: zbyt wiele element�wE542: niezbalansowane grupyE543: To nie jest wa�na strona kodowaE544: Nie znaleziono pliku rozk�adu klawiszyE545: Brak dwukropkaE546: Niedozwolony trybE547: Niedozwolony obrys myszkiE548: oczekiwa�em na cyfr�E549: Niedozwolony procentE54: Niesparowany %s(E550: Brak dwukropkaE551: Niedozwolona cz��E552: oczekiwa�em na cyfr�E553: Nie ma wi�cej element�wE554: B��d sk�adni w %s{...}E555: na dole stosu znacznik�wE556: na g�rze stosu znacznik�wE557: Nie mog� otworzy� pliku termcapE558: Nie ma opisu takiego terminala w terminfoE559: Nie ma opisu takiego terminala w termcapE55: Niesparowany %s)E560: Zastosowanie: cs[cope] %sE561: nieznany typ szukania cscopeE562: Zastosowanie: cstag <ident>E563: b��d statE563: stat(%s) b��d: %dE564: %s nie jest katalogiem lub poprawn� baz� danych cscopeE566: Nie mog�em stworzy� potoku do cscopeE567: brak po��czenia z cscopeE568: nie dodano duplikatu bazy danych cscopeE570: b��d krytyczny w cs_manage_matchesE571: Przykro mi, ta komenda jest wy��czona, bo nie mo�na za�adowa� biblioteki Tcl.E572: kod wyj�cia %dE573: U�yto niew�a�ciwego id serwera: %sE574: Nieznany typ rejestru %dE579: zbyt g��bokie zagnie�d�enie :ifE580: :endif bez :ifE581: :else bez :ifE582: :elseif bez :ifE583: wielokrotne :elseE584: :elseif po :elseE585: zbyt g��bokie zagnie�d�enie :while/:forE586: :continue bez :while lub :forE587: :break bez :while lub :forE588: :endfor bez :forE588: :endwhile bez :whileE589: 'backupext' i 'patchmode' s� to�sameE590: okno podgl�du ju� istniejeE591: 'winheight' nie mo�e by� mniejsze ni� 'winminheight'E592: 'winwidth' nie mo�e by� mniejsze ni� 'winminwidth'E593: Potrzebuj� przynajmniej %d wierszyE594: Potrzebuj� przynajmniej %d kolumnE595: zawiera niewy�wietlalny lub szeroki znakE596: Niedozwolona czcionka/kiE597: nie mog� wybra� zestawu czcionekE598: Niedozwolony zestaw czcionekE599: Nieprawid�owa warto�� 'imactivatekey'E59: niedozwolony znak po %s@E600: Brak :endtryE601: zbyt g��bokie zagnie�d�enie :tryE602: :endtry bez :tryE603: :catch bez :tryE604: :catch za :finallyE605: Nie znaleziono wyj�tku: %sE606: :finally bez :tryE607: wielokrotne :finallyE608: Nie mo�na ':throw' wyj�tk�w z prefiksem 'Vim'E609: B��d cscope: %sE60: Zbyt wiele z�o�onych %s{...}E612: Zbyt wiele nazw znak�wE613: Nieznana czcionka drukarki: %sE614: vim_SelFile: nie mog� powr�ci� do bie��cego kataloguE615: vim_SelFile: nie mog� otrzyma� bie��cego kataloguE616: vim_SelFile: nie mog� otrzyma� czcionki %sE617: Nie mog� zmieni� w GTK+2 GUIE618: plik "%s" nie jest plikiem zasob�w PostScriptuE619: plik "%s" nie jest wspieranym plikiem zasob�w PostScriptuE61: Zagnie�d�one %s*E620: Nie mo�na przekonwertowa� by drukowa� kodowanie "%s"E621: "%s" nieprawid�owa wersja pliku zasob�wE622: Nie mog�em utworzy� rozwidlenia dla cscopeE623: Nie mog�em stworzy� procesu cscopeE624: Nie mog� otworzy� pliku "%s"E625: nie mog� otworzy� bazy danych cscope: %sE626: nie mog� uzyska� informacji z bazy danych cscopeE62: Zagnie�d�one %s%cE63: Niedozwolone u�ycie \_E64: %s%c po niczymE655: Za du�o dowi�za� symbolicznych (p�tla?)E658: Bufor %ld utraci� po��czenie z NetBeansE659: Nie mo�na wywo�a� Pythona rekursywnieE65: Niew�a�ciwe odwo�anie wsteczneE661: Przykro mi, brak '%s' pomocy dla %sE662: Na pocz�tku listy zmianE663: Na ko�cu listy zmianE664: lista zmian (changelist) jest pustaE665: Nie mo�na uruchomi� GUI, brak prawid�owej czcionkiE666: nie wspierany kompilator: %sE667: Fsync nie powi�d� si�E668: B��dny tryb dost�pu pliku info po��czenia NetBeans: "%s"E669: Niedrukowalny znak w nazwie grupyE66: \z( jest niedozwolone w tym miejscuE670: Mieszanka kodowa� w pliku pomocy w ramach j�zyka: %sE671: Nie mog� znale�� tytu�u okna "%s"E672: Nie mo�na otworzy� okna wewn�trz aplikacji MDIE673: Niekompatybilne kodowanie wielobajtowe i zestaw znak�w.E674: printmbcharset nie mo�e by� pusty przy kodowaniu wielobajtowym.E675: Nie okre�lono domy�lnej czcionki dla drukowania wielobajtowego.E676: Brak pasuj�cych autokomend dla bufora acwriteE677: B��d zapisywania pliku tymczasowegoE678: Niedozwolony znak po %s%%[dxouU]E679: rekursywna p�tla wczytuj�ca syncolor.vimE67: \z1 i podobne s� niedozwolone w tym miejscuE680: <buffer=%d>: niew�a�ciwy numer buforaE681: Bufor nie jest za�adowanyE682: Niew�a�ciwy wzorzec wyszukiwania lub delimiterE683: Brak nazwy pliku lub niew�a�ciwa �cie�kaE684: Indeks listy poza zakresem: %ldE685: B��d wewn�trzny: %sE686: Argument %s musi by� List�E687: Mniej cel�w ni� element�w ListyE688: Wi�cej cel�w ni� element�w ListyE689: Indeks mo�e istnie� tylko dla Listy lub S�ownikaE68: niedopuszczalny znak po \zE690: Brak "in" po :forE691: List� mog� por�wna� tylko z List�E692: Nieprawid�owa operacja dla ListyE693: Funcref mog� por�wna� tylko z FuncrefE694: Nieprawid�owa operacja dla FuncrefE695: Nie mo�na zindeksowa� FuncrefE696: Brakuj�cy przecinek w Li�cie: '%sE697: Brak zako�czenia Listy ']': %sE698: Zmienna zagnie�d�ona zbyt g��boko by zrobi� kopi�E699: Za du�o argument�wE69: Brak ] po %s%%[E700: Nieznana funkcja: %sE701: Nieprawid�owy typ dla len()E702: Funkcja por�wnywania w sort nie powiod�a si�E703: U�ycie Funcref jako LiczbyE704: Nazwa Funcref musi si� zaczyna� wielk� liter�: %sE705: Nazwa zmiennej jest w konflikcie z istniej�c� funkcj�: %sE706: Nieprawid�owy typ zmiennej dla: %sE707: Nazwa funkcji jest w konflikcie ze zmienn�: %sE708: [:] musi by� ostatnieE709: [:] wymaga warto�ci listyE70: Pusty %s%%[]E710: Lista ma wi�cej element�w ni� celE711: Lista nie ma wystarczaj�cej ilo�ci element�wE712: Argument %s musi by� List� lub S�ownikiemE713: Nie mo�na u�y� pustego klucza dla S�ownikaE714: wymagana ListaE715: wymagany S�ownikE716: Klucz nie istnieje w S�owniku: %sE717: istnieje ju� taki element S�ownikaE718: wymagana FuncrefE719: Nie mo�na u�y� [:] przy S�ownikuE71: Niedozwolony znak po %s%%E720: Brak dwukropka w S�owniku: %sE721: Powt�rzony klucz w S�owniku: "%s"E722: Brakuj�cy przecinek w S�owniku: %sE723: Brak ko�ca w S�owniku '}': %sE724: Zmienna zagnie�d�ona zbyt g��boko by pokaza�E725: Wywo�anie funkcji "dict" bez S�ownika: %sE726: Skok to zeroE727: Pocz�tek po ko�cuE728: U�ycie S�ownika jako LiczbyE729: U�ycie Funcref jako �a�cuchaE72: B��d podczas zamykania pliku wymianyE730: U�ycie Listy jako �a�cuchaE731: U�ycie S�ownika jako �a�cuchaE732: U�ycie :endfor z :whileE733: U�ycie :endwhile z :forE734: Z�y typ zmiennej dla %s=E735: S�ownik mog� por�wna� tylko ze S�ownikiemE736: Nieprawid�owa operacja dla S�ownikaE737: Klucz ju� istnieje: %sE738: Nie mog� wypisa� zmiennych dla %sE739: Nie mog� utworzy� katalogu: %sE73: stos znacznik�w jest pustyE740: Zbyt wiele argument�w dla funkcji %sE741: Warto�� jest zablokowana: %sE742: Nie mog� zmieni� warto�ci %sE743: zmienna zagnie�d�ona zbyt g��boko dla (un)lockE744: NetBeans nie zezwala na zmiany w plikach tylko do odczytuE745: U�ycie Listy jako LiczbyE746: Nazwa funkcji nie pasuje do nazwy skryptu: %sE747: Nie mog� zmieni� katalogu, bufor zosta� zmodyfikowany (dodaj ! aby wymusi�)E748: Brak poprzednio u�ytego rejestruE749: pusty buforE74: Komenda jest zbyt skomplikowanaE750: Pierwsze u�ycie ":profile start {fname}"E751: Nazwa pliku wynikowego nie mo�e by� nazw� regionuE752: Brak poprzednich podmian sprawdzania pisowniE753: Nie znaleziono: %sE754: Wspieram tylko 8 region�wE755: Nieprawid�owy region w %sE756: Sprawdzanie pisowni nie jest w��czoneE757: To nie wygl�da na plik sprawdzania pisowniE758: Obci�ty plik sprawdzania pisowniE759: Nieprawid�owy format pliku sprawdzania pisowniE75: Zbyt d�uga nazwaE760: Brak ilo�ci s��w w %sE761: B��d formatu w pliku afiks�w FOL, LOW lub UPPE762: Znak w FOL, LOW lub UPP jest poza zasi�giemE763: Znaki wyraz�w r�ni� si� mi�dzy plikami sprawdzania pisowniE764: Nie ustawiono opcji '%s'E765: 'spellfile' nie posiada wpis�w %ldE766: Za ma�o argument�w dla printf()E767: Za du�o argument�w dla printf()E768: Plik wymiany istnieje: %s (wymu� poprzez :silent!)E769: Brak ] po %s[E76: Zbyt wiele [E770: Niewspierana sekcja w pliku sprawdzania pisowniE771: Stary plik sprawdzania pisowni, wymagane uaktualnienieE772: Plik sprawdzania pisowni dla nowszej wersji VimaE773: P�tla dowi�za� dla "%s"E774: 'operatorfunc' jest pustaE775: Funkcjonalno�� eval nie jest dost�pnaE776: Brak listy lokacjiE777: Oczekiwa�em na �a�cuch lub list�E778: Ten plik nie wygl�da na plik .sug: %sE779: Stary plik .sug, konieczne jest uaktualnienie: %sE77: Zbyt wiele nazw plik�wE780: Plik .sug dla nowszej wersji Vima: %sE781: Plik .sug nie pasuje do pliku .spl: %sE782: B��d w czasie odczytu pliku .sug: %sE783: Podwojony znak we wpisie MAPE784: Nie mog� zamkn�� ostatniej kartyE785: complete() mo�e by� u�yte tylko w trybie WprowadzaniaE786: Zakres niedozwolonyE787: Nieoczekiwana zmiana buforaE788: Nie mo�na teraz edytowa� innego buforaE789: Brak ']': %sE78: Nieznana zak�adkaE790: undojoin nie jest dozwolone po undoE791: Pusty wpis keymapE792: Pusta nazwa menuE793: �aden inny bufor w trybie diff nie jest modyfikowalnyE794: Nie mog� ustawi� zmiennej w piaskownicy: "%s"E795: Nie mog� usun�� zmiennej %sE79: Nie mog� rozwin�� znak�w wieloznacznychE800: Arabski nie mo�e by� u�yty: Nie w��czono podczas kompilacji
E804: Nie mog� u�y� '%' w ZmiennoprzecinkowejE805: U�ycie Zmiennoprzecinkowej jako LiczbyE806: U�ycie Zmiennoprzecinkowej jako �a�cuchaE807: Spodziewany argument Zmiennoprzecinkowy w printf()E808: Wymagana Liczba lub ZmiennoprzecinkowaE809: #< nie jest dost�pne bez w�a�ciwo�ci +evalE80: B��d w trakcie zapisuE810: Nie mog� otworzy� lub zapisa� plik�w tymczasowychE811: Nie mo�na teraz zmienia� informacji o buforzeE812: Autokomendy zmieni�y bufor lub jego nazw�E813: Nie mo�na zamkn�� okna autocmdE814: Nie mo�na zamkn�� okna, zosta�oby tylko okno autocmdE815: Przykro mi, ta komenda jest wy��czona, biblioteka MzScheme nie mo�e by� za�adowana.E816: Nie mog� odczyta� wyj�cia pliku �atyE817: Blowfish u�ywa b��dnej kolejno�ci bajt�wE818: test sha256 nie powi�d� si�E819: test Blowfisha nie powi�d� si�E81: U�ycie <SID> poza kontekstem skryptuE820: sizeof(uint32_t) != 4E821: Plik zaszyfrowano w nieznany spos�bE822: Nie mog� otworzy� pliku undo do odczytu: %sE823: To nie jest plik undo: %sE824: Niekompatybilny plik undo: %sE825: Uszkodzony plik undo (%s): %sE826: Nie powiod�o si� odszyfrowywanie pliku undo: %sE827: Plik undo jest zaszyfrowany: %sE828: Nie mog� otworzy� do zapisu pliku undo: %sE829: B��d zapisu w pliku undo: %sE82: Nie mog� zarezerwowa� bufora; zako�czenie...E830: Nie znaleziono numeru cofni�cia %ldE831: bf_key_init() wywo�any z pustym has�emE832: Nie zaszyfrowany plik ma zaszyfrowany plik undo: %sE833: %s jest zaszyfrowany a ta wersja Vima nie wspiera szyfrowaniaE834: Konflikty warto�ci 'listchars'E834: Niespodziewana zmiana ilo�ci liniiE835: Konflikty warto�ci 'fillchars'E836: Python: nie mo�na u�ywa� :py i :py3 w czasie jednej sesjiE837: Python: nie mo�na u�ywa� :py i :py3 w czasie jednej sesjiE838: netbeans nie s� obs�ugiwane przez to GUIE839: Funkcja uzupe�niania zmieni�a oknoE83: Nie mog� zarezerwowa� bufora; u�ywam innego...E840: Funkcja uzupe�nania usun�a tekstE841: Nazwa zastrze�ona, nie mo�na jej u�y� w komendzie u�ytkownikaE842: brak numeru linii by u�y� z "<slnum>"E843: B��d w czasie uaktualniania szyfrowania pliku wymianyE844: Niew�a�ciwa warto�� ccharE845: Nie wystarczaj�ca ilo�� pami�ci, lista s��w b�dzie niekompletnaE846: Kod klucza nie jest ustawionyE847: Za du�o w��czonych sk�adniE848: Za du�o klastr�w sk�adniE849: Za du�o grup pod�wietlania i sk�adniE84: Nie znaleziono zmienionych bufor�wE850: Niew�a�ciwa nazwa rejestruE851: Nie mog�em stworzy� nowego procesu dla GUIE852: Proces potomny nie m�g� uruchomi� GUIE853: Powt�rzona nazwa argumentu: %sE854: �cie�ka za d�uga by uzupe�ni�E855: Autokomendy spowodowa�y porzucenie komendyE858: eval nie zwr�ci�o odpowiedniego obiektu pythonaE859: Nie powiod�a si� konwersja obiektu pythona do warto�ci VimaE85: Nie ma wylistowanych bufor�wE862: Nie mo�na tutaj u�y� g:E:864: \%#= mo�e by� tylko przed 0, 1 lub 2. Zostanie u�yty silnik automatycznyE865: (NFA) przedwczesny koniec wyra�enia regularnegoE866: (wyra�enie regularne NFA) Niepoprawnie umieszczone %cE867: (NFA) Nieznany operator '\%%%c'E867: (NFA) Nieznany operator '\z%c'E868: B��d przy budowwaniu NFA z klas� ekwiwalencjiE869: (NFA) Nieznany operator '\@%c'E86: Bufor "%ld" nie istniejeE870: (wyra�enie regularne NFA) B��d przy odczytywaniu limit�w powt�rze�E871: (wyra�enie regularne NFA) wielokrotne nie mo�e by� po wielokrotnym!E872: (wyra�enie regularne NFA) Zbyt du�o '('E873: (wyra�enie regularne NFA) b��d poprawnego zako�czeniaE874: (NFA) Nie mo�na zdj�� elementu ze stosu!E875: (wyra�enie regularne NFA) (w trakcie konwersji postfix do NFA), za wiele stan�w na stosieE876: (wyra�enie regularne NFA) Nie ma miejsca na ca�e NFA E878: (NFA) Nie mo�na przydzieli� pami�ci do przej�cia przez ga��zie!E879: (wyra�enie regularne NFA) Za du�o \z(E87: Nie mog� przej�� poza ostatni buforE88: Nie mog� przej�� przed pierwszy buforE89: Nie zapisano zmian w buforze %ld (wymu� przez !)E90: Nie mog� wy�adowa� ostatniego buforaE91: opcja 'shell' jest pustaE92: Nie znaleziono bufora %ldE93: Wielokrotne dopasowania dla %sE94: �aden bufor nie pasuje do %sE95: Bufor o tej nazwie ju� istniejeE96: Nie mog� zr�nicowa� wi�cej ni� %ld bufor�wE97: Nie mog� stworzy� r�nicE98: Nie mog� wczyta� wyj�cia r�nicyE99: Bie��cy bufor nie jest w trybie r�nicB��D: Edytuj PlikEdytuj plik w nowym oknieEdytuj w &VimieEdytuj w &wielu VimachEdytuj z istniej�cym Vimem - Edytuj w pojedynczym &VimieEdytuj wybrane pliki w VimieKodowanie:Koniec funkcjiKoniec wczytywanego plikuWprowad� klucz do odkodowania: Wprowad� numer pliku wymiany, kt�rego u�y� (0 by wyj��): Wprowad� ponownie ten sam klucz: Wchodz� w tryb odpluskwiania. Wprowad� "cont" aby kontynuowa�.Wchodz� w tryb Ex. Wprowad� "visual" aby przej�� do trybu Normal.B��dB��d i przerwanieB��d tworzenia procesu: Sprawd� czy gvim jest w twojej �cie�ce!Wykryto b��d podczas przetwarzania %s:Plik b��duOczekiwane zu�ycie pami�ci: %d bajt�wWyj�tekWyj�tek przechwycony: %sWyj�tek odrzucony: %sWyj�tek zako�czony: %sWyj�tek: %sWykonuj� %sOczekiwano ilo�ci MAP w %s wierszu %dOczekiwano ilo�ci REP(SAL) w %s wierszu %dOczekiwano Y lub N w %s wierszu %d: %sWyra�enieZewn�trzne poddopasowania:
FLAG po u�yciu flag w %s wiersz %d: %sNie mog� ustawi� haka �cie�ki: sys.path_hooks nie jest list�
Powiniene� teraz wykona� nast�puj�ce czynno�ci:
- doda� vim.path_hook do sys.path_hooks
- doda� vim.VIM_SPECIAL_PATH do sys.path
Nie mog� ustawi� �cie�ki: sys.path nie jest list�
Powinno si� teraz doda� vim.VIM_SPECIAL_PATH do sys.pathPlik "%s" nie istniejeZawarto�� pliku si� zmieni�a, nie mog� u�y� pliku undoPrawa pliku "%s" s� tylko do odczytu.
Mimo to by� mo�e uda si� zmieni� ten plik.
Chcesz spr�bowa�?Plik zabezpieczonoPlikiFiltrSzukanie i Zamiana (u�yj '\\' do szukania '\')Znajd� &nast�pneZnajd� nast�pneZnajd� ci�g (u�yj '\\' do szukania '\')Znajd� symbolZnajd�:Sko�czono wczytywanie pliku undo %sPierwszy powt�rzony wyraz w %s wiersz %d: %sFlaga nie jest liczb� w %s wiersz %d: %sCzcionka '%s' nie posiada znak�w jednolitej szeroko�ciSzeroko�� font%ld nie jest podw�jn� szeroko�ci� font0Szeroko�� font0: %ldFont0: %sSzeroko�� font1: %ldFont1: %sCzcionka:�miecie po argumencie opcjiUtw�rz dokumentacj� dlaWitaj u�ytkowniku Vima!Pom� biednym dzieciom w Ugandzie!Dobi�em do ko�ca akapituB��D I/OZignorowa�em %d s��w ze znakami nie ASCII w %sZignorowa�em %d s��w ze znakami nie ASCIIIgnoruj� d�ugie wiersze w pliku znacznik�wNiedopuszczalna nazwa plikuNieprawid�owa flaga w %s wiersz %d: %sNiedozwolona nazwa rejestruNiedopuszczalny pocz�tkowy znakWiersz wprowadze�Input _MethodsPrzerwaniePrzerwanie: PrzerwaneNiew�a�ciwy argument dlaNieprawid�owy opis czcionkiNieprawid�owy numer regionu w %s wierszu %d: %sNieprawid�owa warto�� FLAG w %s wierz %d: %sKlucze nie pasuj� do siebie!Zabij po��czenieKonsolidacja: Nie mo�na wczyta� biblioteki Lua.Dopasuj wielko�� literDopasuj tylko ca�e wyrazyWiadomo��Opiekun komunikat�w: Miko�aj Machowski <mikmach@wp.pl>Brak '>'Brak wiersza FOL/LOW/UPP w %sBrak wiersza SOFO%s wiersz w %sZmieniony przez Nazwa:Potrzebuj� %s w wersji %ld
Potrzebuj� Amigados w wersji 2.04 lub p�niejsz�
Potrzebuj� klucza szyfrowania dla "%s"NetBeans nie pozwala na zapis niezmodyfikowanych bufor�wNowa kartaBrak element�w sk�adni okre�lonych dla tego buforaNie znaleziono skr�tuNie okre�lono �adnych punkt�w kontrolnychBrak displayBrak terminala: Wys�anie wyra�enia nie powiod�o si�.
Brak w��czanych plik�wNie znaleziono przyporz�dkowaniaBrak zak�adekBrak dopasowania przy kursorze, szukam dalejBrak pasuj�cych autokomendBrak starych plik�wBrak pliku wymianyBrak tekstu do drukowaniaCofni�cie niemo�liwe; mimo to kontynuuj�Nie znaleziono komend zdefiniowanych przez u�ytkownikaNie u�ywanyNie wczytuj� pliku undo, inny w�a�ciciel: %sNie ma zmian do cofni�ciaLiczba s��w po kompresji d�wi�kowej: %ldOKDialog otwierania plikuOtw�rz kart�...Otw�rz kart�...Otwarcie ekranu X nie powiod�o si�Pr�ba otwarcia ekranu X trwa�a zbyt d�ugoOtwieranie ekranu X trwa�o %ld msecOryginalny plik "%s"Nadpisa� istniej�cy plik "%s"?Strona %dCz�ciowy zapis niemo�liwy dla bufor�w NetBeansPlik �ataZa d�uga �cie�ka!Trop:Wzorzec znaleziono w ka�dym wierszu: %sNie znaleziono wzorcaNie znaleziono wzorca: %sWykonuj� kompresj� d�wi�kow�...Naci�nij ENTER lub wprowad� komend� aby kontynuowa�Zadanie drukowanie przes�ane.Wydrukowano: %sWydrukowano '%s'Drukowanie odwo�aneDrukuj� stron� %d (%d%%)Zapytane o wzorzecPytanieCzytam plik afiks�w %s ...Odczytuj� plik sprawdzania pisowni...Czytam plik s�ownika %s ...Wczytywanie ze stdin...Odczytuj� plik sprawdzania pisowni "%s"Wczytuj� plik undo: %sWczytuj� plik viminfo "%s"%s%s%sOdczytuj� plik wyraz�w %s ...Odzyskiwanie zako�czone. Zawarto�� bufora jest r�wna zawarto�ci pliku.Odtwarzanie zako�czono. Powiniene� sprawdzi� czy wszystko jest w porz�dku.Pon�w wszelkie po��czeniaZamie�Zamie� &wszystkoZamie� wszystkieZamie� na:PobierzPobieraj z wszystkich projekt�wPobieraj z plikuPobieraj z projektuDzia�am w trybie zgodno�ci z ViUruchomiony bez tryb�w, wpisany tekst jest wprowadzanySNiFF+ jest obecnie Zapisz jakoDialog zapisywania plikuZapisz przekierowanieZapisz sesj�Zapisz ustawieniaZapisz widokZachowa� zmiany w "%s"?Przegl�dam s�ownik: %sPrzegl�d w��czonego pliku: %sPrzegl�dam znaczniki.Przegl�dam: %sScrollbar Widget: Nie mog�em otrzyma� rozmiar�w rysunku na przycisku.Szukany ci�gSzukanie "%s"Szukanie "%s" w "%s"Przeszukiwanie w��czonego pliku %sSzukam w pliku znacznik�w %sZobacz ":help E312" dla dalszych informacji.Zobacz ":help W11"  dla dalszych informacji.Zobacz ":help W12"  dla dalszych informacji.Zobacz ":help W16"  dla dalszych informacji.Dialog wyboru kataloguWybrano %s%ld z %ld Wierszy; %ld z %ld S��w; %ld z %ld Bajt�wWybrano %s%ld z %ld Wierszy; %ld z %ld S��w; %ld z %ld Znak�w; %ld z %ld Bajt�wWyb�rPrzesy�am do drukarki...Poka� baz� klasyPoka� klas� w hierarchiiPoka� klas� w ograniczonej hierarchiiPoka� po��czeniaPoka� dokumentacj� dlaPoka� przepisan� funkcj� cz�onow�Poka� wielko�� w punktachPoka� �r�d�o dlaPoka� ten komunikatZnaki dla %s:Wielko��:Pomijam zapis pliku undo, nic do cofni�ciaSniff: B��d w trakcie zapisu. Roz��czonyPrzykro mi, nie ma pliku pomocy "%s"Przykro mi, brak podpowiedziPrzykro mi, tylko %ld podpowiedziPrzykro mi, ta komenda jest wy��czona: nie mog�em za�adowa� biblioteki Perla.Wczytaj skrypt VimaSponsoruj rozw�j Vima!Wielko�� stosu wzrastaStyl:Podstawienie Plik wymiany "Plik wymiany "%s" istnieje, czy go nadpisa�?Plik wymiany ju� istnieje!Zaszyfrowany plik wymiany: "%s"Znalezione pliki wymiany:Karta %dOderwij to menuTest ekranu X nie powi�d� si�Dzi�ki za lot VimemTen plik zosta� stworzony na Jedyne dopasowanieTa wersja Vima nie by�a skompilowanego z opcj� r�nic (diff).Ta komenda cscope nie wspomaga podzielenia okna.
Prze��cz mi�dzy implementacj�/okre�leniemZbyt wiele argument�w "+komenda", "-c komenda" lub "--cmd komenda"Zbyt wiele flag z�o�e�Zbyt wiele argument�wZbyt wiele op�nionych prefiks�wZbyt wiele op�nionych prefiks�w i/lub flag z�o�e�Za du�o region�w w %s wiersz %d: %sG�raCa�kowita liczba s��w: %dZb�dny tekst w %s wiersz %d: %swprowad�  :quit<Enter>    zako�czenie programuWpisz numer i <Enter> (puste anuluje): Wpisz numer i <Enter> lub wybierz mysz� (pusta warto�� anuluje): Nie mog� odczyta� bloku 0 z Nie mog� zarejestrowa� nazwy serwera komendNieznaneNieznany argument opcjiNieznane flagi w %s wiersz %d: %sNieznany lub powt�rzony element w %s wierszu %d: %sBez Tytu�uW g�r�U�yj Vima w wersji 3.0.
U�ywam CUT_BUFFER0 zamiast pustego wyboruU�ywam klucza szyfruj�cego z pliku wymiany do pliku tekstowego.
U�ywam pliku wymiany "%s"VIM - UWAGAVIM - Szukaj i Zamie�...VIM - Szukaj...VIM - Vi rozbudowanyB��d VIMVIM: Nie mog� otworzy� okna!
VIMRUN.EXE nie znaleziono w twoim $PATH.
Zewn�trzne komendy nie b�d� wstrzymane po wykonaniu.
Zobacz  :help wim32-vimrun  aby otrzyma� wi�cej informacji.Vim - wyb�r czcionkiVim E458: Nie mog� zarezerwowa� mapy kolor�w, pewne kolory mog� by� nieprawid�oweVim Ostrze�enieVIM - DialogB��d VimaB��d vima: ~aVim ko�czy prac� z %d
Vim jest open source i rozprowadzany darmowoVim: Za�apa� wydarzenie %s
Vim: Za�apa� �miertelny sygna�
Vim: Za�apa� �miertelny sygna� %s
Vim: Podw�jny sygna�, wychodz�
Vim: B��d podczas wczytywania wej�cia, ko�cz�...
Vim: B��d: Nie mo�na uruchomi� gvim z NetBeans
Vim: Zako�czono.
Vim: G��wne okno nieoczekiwanie zniszczone
Vim: Wczytywanie ze stdin...
Vim: otrzymano ��danie "die" od mened�era sesji
Vim: OSTRZE�ENIE: Wej�cie nie pochodzi z terminala
Vim: OSTRZE�ENIE: Wyj�cie nie jest terminalem
Vim: zachowuj� plik...
W10: OSTRZE�ENIE: Zmiany w pliku tylko do odczytuW11: OSTRZE�ENIE: Plik "%s" zmieni� si� od czasu rozpocz�cia edycjiW12: OSTRZE�ENIE: Plik "%s" zmieni� si� od czasu rozpocz�cia edycji, bufor w Vimie r�wnie� zosta� zmienionyW13: OSTRZE�ENIE: Plik "%s" zosta� stworzony po rozpocz�ciu edycjiW14: OSTRZE�ENIE: Przepe�nienie listy nazw plik�wW15: OSTRZE�ENIE: Niew�a�ciwy separator wierszy, pewnie brak ^MW16: OSTRZE�ENIE: Tryb pliku "%s" zmieni� si� od czasu rozpocz�cia edycjiW17: Arabski wymaga UTF-8, zr�b ':set encoding=utf-8'W18: nieprawid�owy znak w nazwie grupyOSTRZE�ENIE: Plik zmieni� si� od czasu ostatniego odczytu!!!OSTRZE�ENIE: wykryto Windows 95/98/MEOSTRZE�ENIEOstrze�enie: Nie mog� znale�� listy s��w "%s.%s.spl" lub "%s.ascii.spl"Ostrze�enie: Nie mog� znale�� listy s��w "%s_%s.spl" lub "%s_ascii.spl"OSTRZE�ENIE: Nieoczekiwane wej�cie w inny bufor (sprawd� autokomendy)Ostrze�enie: okre�lono zar�wno z�o�enia jak i NOBREAKOstrze�enie: region %s nie jest wspieranyOSTRZE�ENIE: terminal nie wykonuje pod�wietlaniaPodczas otwierania pliku "Nie nadpisz� plikiem undo, nie mog� odczyta�: %sNie nadpisz�, to nie jest plik undo: %sPozycja okna: X %d, Y %dDodano s�owo do %sWyraz z innego wierszaUsuni�to s�owo z %sZapisa� cz�ciowo plik?Zapisuj� plik sprawdzania pisowni %s ...Zapisuj� plik sugestii %s ...Zapisuj� plik undo: %sZapisuj� plik viminfo "%s"Z�a warto�� CHECKCOMPOUNDPATTERN w %s wiersz %d: %sZ�a warto�� COMPOUNDMIM w %s wiersz %d: %sZ�a warto�� COMPOUNDRULES w %s wiersz %d: %sZ�a warto�� COMPOUNDSYLMAX w %s wiersz %d: %sZ�a warto�� COMPOUNDWORDMAX w %s wiersz %d: %sObserwacja po��czenia XSMP ICE nie powiod�a si�XSMP SmcOpenConnection nie powiod�o si�: %sXSMP obs�uguje ��danie samozapisuXSMP straci� po��czenie ICEXSMP otwiera po��czenieXref maXref ma odniesienia odXref odnosi si� doXref u�yte przezTAKZerowy licznik[B��D W PRZEMIANIE w linii %ld][brak CR]'[Skasowano][Urz�dzenie][Za du�y plik][Pomoc][NIEDOZWOLONY BAJT w wierszu %ld][Niekompletny ostatni wiersz][Lista lokacji][NIE przemienione][Nowy KATALOG][Nowy Plik][Nowy Plik][Nowy][Bez nazwy][Brak zapisu od czasu ostatniej zmiany]
[Nie edytowany][Nie dozwolono][Podgl�d][Lista quickfix][B��DY W ODCZYCIE][RO][B��d odczytu][Notka][blowfish][wywo�ania] wszystkich re/malloc()-�w %lu, wszystkich free()-�w %lu

[specjalny znak][przemienione][zakodowane][format dos-a][dos][fifo/socket][fifo][plik ..]       edytuj zadane pliki[d�ugie wiersze rozdzielane][format maca][mac][noeol][tylko odczyt][socket][format unixa][unix]argument add()zai wykona� diff z oryginalnym plikiem aby sprawdzi� zmiany)pr�ba odniesienia do skasowanego buforapr�ba odniesienia do skasowanej kartypr�ba odniesienia do skasowanego oknaauto-usuwanie autokomendy: %s <buffer=%d>autokomenda %sprzed%ld wierszy skopiowanychskopiowano blok 1 wierszabufor jest niewa�nyprzez Autor: Bram Moolenaar i Inni.wywo�ano inputrestore() wi�cej razy ni� inputsave()wywo�uj� %snie mog� skasowa� atrybut�w OutputObjectnie mog� odczyta� wyj�cia z 'charconvert'nie mog� zmieni� trybu konsoli ?!
nie mog� stworzy� bufora/okna komendy: obiekt jest kasowanynie mog� skasowa� wierszanie mog� usun�� atrybut�w vim.Dictionarynie mog� usun�� atrybut�w vim.Listnie mog� dosta� wierszanie mog� wprowadzi� wierszanie mog� wprowadzi�/do��czy� wierszanie mog� zmieni� zablokowanego s�ownikanie mog� zmieni� zablokowanej listynie mog� otworzy� nie mog� zarejestrowa� wstecznego wywo�ania komendy: bufor/okno ju� zosta�a skasowananie mog� zarejestrowa� wstecznego wywo�ania komendy: brak odniesienia do bufora/oknanie mog� zamieni� wierszanie mog� zachowa� informacji cofanianie mog� ustawi� atrybutu %snie mog� ustawi� wiersza(y)nie mog� skopiowa�, mimo to kasuj�1 zmianazmianyzamknijcmd: %spod��czonykontynuacja w %snie mog�em wczyta� "%s"nie mog� otworzy� buforawykonanie cs_create_connection nie powiod�o si�nie powiod�o si� setpgid cs_create_connectioncs_create_connection: fdopen dla fr_fp nie powiod�o si�cs_create_connection: fdopen dla to_fp nie powiod�o si�komendy cscope:
po��czenie %s z cscope zosta�o zamkni�tepozycja kursora poza buforemdomy�lnie jest 'blok nr 1 skasowany?s�ownik jest zablokowanynie przeszed�em do okre�lonej kartynie przeszed�em do okre�lonego oknadlerror = "%s"nie wychod� edytora, dop�ki plik nie zosta� poprawnie zapisany!puste klucze nie s� dozwolonezmienna �rodowiskowab��d przy konwersji warto�ci Scheme do Vimaobs�uga b��dulista b��d�w %d z %d; %d b��d�wczeka�em na 3-krotk� jako wynik imp.find_module(), a dosta�em %sczeka�em na 3-krotk� jako wynik imp.find_module(), a dosta�em krotk� o wielko�ci %dczeka�em na bytes() lub str(), a dosta�em %sczeka�em na int() lub co� co mo�na zmieni� na int(), ale dosta�em %sczeka�em na int(), long() lub co� co mo�na zmieni� na long(), ale dosta�em %sczeka�em na element sekwencyjny od d�ugo�ci 2, a dosta�em sekwencj� o d�ugo�ci %dczeka�em na str() lub unicode(), a dosta�em %soczekiwa�em na obiekt vim.Buffer, a dosta�em %soczekiwa�em na obiekt vim.TabPage, a dosta�em %soczekiwa�em na obiekt vim.Window, a dosta�em %swyra�enia wy��czone podczas kompilacjiargument extend()nie powiod�o si� dodanie elementu do listynie powiod�o si� dodanie klucza '%s' do s�ownikanie powiod�a si� zmiana katalogunie znaleziono okna na bie��cej karcienie powiod�a si� zmiana nazwy buforanie mog� uruchomi� funkcji %suruchomienie kodu si� nie powiod�onie przeszed�em do bufora %dmniej wierszyplik
nazwa pliku  / kontekst / wiersz
argument filter()sko�czono wczytywanie %szwalniam %ld wierszyfunkcja %s nie istniejekonstruktor funkcji nie akceptuje s��w kluczowych jako argument�wb��d gvimext.dllhashtab zmieni� si� w czasie iteracjipomocukryta opcjaw tropie ---
indeks musi by� liczb� lub wycinkiem, nie %sargument insert()b��d wewn�trzny: przekazano referencj� NULLb��d wewn�trzny: nie powiod�o si� dodanie elementu do listyb��d wewn�trzny: nie powiod�o si� pobranie z listy Vima elementu %dwewn�trzny b��d: imp.find_module zwr�ci� krotk� z NULLb��d wewn�trzny: b��dny typ warto�cib��d wewn�trzny: w li�cie Vima brak elementu %db��d wewn�trzny: nieznany typ opcjiniepoprawny atrybut: %sniew�a�ciwy numer buforaniepoprawne wyra�enieniepoprawna nazwa zak�adkijest urz�dzeniem (wy��czonym w opcji 'opendevice')jest katalogiemnie jest plikiemnie jest plikiem lub zapisywalnym przyrz�demjest tylko do odczytu (wymu� poprzez !)przerwanie klawiaturywiersz %4ld:wiersz %6d, s�owo %6d - %swiersz %ldwiersz %ld z %ld --%d%%-- kol wiersz %ld: %swiersz: %ld nie mog�em wczyta� "%s"wiersz %ld: wczytywanie "%s"1 wiersz mniejnumer wiersza poza zakresemnumer wiersza poza zakresemkonstruktor listy nie akceptuje s��w kluczowych jako argument�windeks listy poza zakresemlista jest zablokowanawylogujargument map()nazwa zak�adki musi by� pojedynczym znakiemzak�adka nie ustawionapasuje %dpasuje %d z %dmaksymalnie mch_get_shellsize: nie jest konsol�??
menu  Edytuj->Ustawienia globalne->Tryb wstawianiamenu Edytuj->Ustawienia globalne->Kompatybilno�� z Vimenu Pomoc->Sieroty        dla informacji to tym  menu Pomoc->Sponsoruj/Zarejestruj si� dla informacjiminimalnie modeline1 wiersz wi�cejwi�cej wierszynetbeans nie s� obs�ugiwane przez to GUI
uruchomiono now� pow�ok�
niebrak po��cze� z cscope
brak okre�lonego dopasowanianie ma takiej kartynie ma takiego oknabrak synchronizacjinie Niedozwolone w piaskownicy Vimanie znaleziononie znaleziono w 'runtimepath': "%s"obecnie nie zaimplementowanoliczba zmiany   kiedy              zapisanoliczba musi by� wi�ksza lub mniejsza ni� zeroliczba musi by� wi�ksza ni� zerope_line_count wynosi zerolinia polece� pre-vimrcwyst�pi� problem w czasie zmiany okienodczyt z gniazda Netbeansatrybut tylko do odczytu: buforzapisargument remove()zamie� na %s (y/n/a/q/l/^E/^Y)?argument reverse()wiersz %d kolumna %dszukanie dobi�o KO�CA; kontynuacja od G�RYszukanie dobi�o G�RY; kontynuacja od KO�CApow�oka pow�oka zwr�ci�a %dzako�czargument sort()wczytywanie "%s"stack_idx powinien by� 0ci�g nie mo�e zawiera� znak�w nowego wierszasynchronizacja komentarzy w stylu Cpocz�tek synchronizacjiznacznik %d z %d%snazwa znacznikado %s z %swprowad� :help cp-default<Enter>  dla informacji to tym  wprowad� :help iccf<Enter>        dla informacji o tym  wprowad� :help register<Enter>        dla informacjiwprowad� :help sponsor<Enter>        dla informacjiwprowad� :help version8<Enter>    dla informacji o wersjiwprowad� :help windows95<Enter>   dla informacji to tym  wprowad� :help<Enter>  lub  <F1>  pomoc na bie��co       wprowad� :q<Enter>                zako�czenie programu   wprowad� :set nocp<Enter>         warto�ci domy�lne Vim-anie mo�na konwertowa� %s do s�ownika Vimanie mo�na konwertowa� %s do struktury Vimanie mog� pobra� warto�ci opcjinie mog� wyzerowa� opcji globalnej %snie mog� wyzerowa� opcji %s, kt�ra nie ma warto�ci globalnejnieznanynieznana flaga: nieznana opcjanieznane vimOptionnie nazwana funkcja %s nie istniejewarto�� zbyt du�a by zmie�ci�a si� w typie int Cwarto�� jest zbyt ma�a by zmie�ci�a si� w typie int Cwersja b��d vimaindeks okna poza zakresemokno jest niewa�nez (klasycznym) GUI.z Carbon GUI.z Cocoa GUI.z GTK2 GUI.z GTK2-GNOME GUI.z GUI.z Photon GUI.z X11-Athena GUI.z X11-Motif GUI.z X11-neXtaw GUI.bez GUI.zapisywanie do urz�dzenia wy��czone w opcji 'opendevice'PK�j�Z�E��G�G#vim80/lang/en_GB/LC_MESSAGES/vim.monu�[���������x&y-�!�%�CHZ>�$�9;A!}#�E�	"& I7j(�!�%�#)70a�!�&�/�*/B*r(�#��%*!I0k)����$!F`,�2���5+R~���0�#)'M)u"�3��*->l�$�)��#7Wt��-� �$'A'i7�"�1�65U�.�+�;Tm:�=�<6?4v4�0� D2Pw%��   5 M b w �  � � )� &!<!O!,d!�! �!�!4�!."$I"1n";�"�"%�",#J#a# {#)�#"�#0�#-$H$h$"�$!�$+�$�$+	%'5%!]%0%�%"�%-�%)&I&"c&6�&N�&&'$3'/X'2�',�'"�'((%(EN(�(�(�(!�()!)23)$f)0�)�)F�)$*"A*d*=y*(�*M�*'.,.V,"�,&�,D�,I-@^-%�-:�-=. >.$_.F�.�.#�. 
/8./)g/!�/%�/$�/*�/1)0[0"{0'�00�0�0/1*?1(j1#�1�1%�1�1"20:2)k2�2�2�2�2$�23/3-O33}3�3�3�34,&4S4p4�4�40�4#�4("5*K5#v53�5�5*�5-6D6d6%�6)�6�6#�6737P7k7�7.�7 �7�78(!8'J88r8#�82�8796:9q9/�9+�9�9:%:?:Y::t:=�:<�:6*;5a;5�;1�; �;D <Pe<%�<�<�<=$=<=Q=f=�= �=�=)�=&>+>>>,S>�> �>�>5�>/?%;?1a?;�?�?%�?,@>@U@ o@)�@"�@0�@-A<A\A"yA"�A+�A�A,�A'+B!SB0uB�B"�B-�B)C?C"YC7|CN�C'D$+D/PD2�D,�D"�DE(EEFE�E�E�E!�E�EF5,F$bF0�F�FH�F%G#AGeG>{G(�G��Z�y�0�	�j��?��:YOiJu+����3@CQt*�P41{/�Lxb�K
g�s!���`>.ElG�d���B�)�^(U<��qc}$89���~�[v����mk�T5Aho-|pWI�w�M#���FHa��z�R��e;���VDnNX�2="�f,��%7 S]&�'r
_\6# You may edit it if you're careful!

+reverse		Don't use reverse video (also: +rv)--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote-silent <files>  Same, don't complain if there is no server--remote-wait-silent <files>  Same, don't complain if there is no server-background <color>	Use <color> for the background (also: -bg)-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-foreground <color>	Use <color> for normal text (also: -fg)Backwards range given, OK to swapCan't find temp file for conversionE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E138: Can't write viminfo file %s!E144: non-numeric argument to :zE146: Regular expressions can't be delimited by lettersE166: Can't open linked file for writingE179: argument required for -addrE179: argument required for -completeE185: Cannot find color scheme '%s'E205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE212: Can't open file for writingE214: Can't find temp file for writingE217: Can't execute autocommands for ALL eventsE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE233: cannot open displayE247: no registered server named "%s"E254: Cannot allocate color %sE255: Couldn't read in sign data!E259: no matches found for cscope query %s of %sE262: error reading cscope connection %ldE267: unexpected returnE268: unexpected nextE269: unexpected breakE270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE288: input method doesn't support any styleE289: input method doesn't support my preedit typeE293: block was not lockedE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E304: ml_upd_block0(): Didn't get block 0??E317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE363: pattern uses more memory than 'maxmempattern'E369: invalid item in %s%%[]E384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE388: Couldn't find definitionE389: Couldn't find patternE394: Didn't find region item for %sE395: contains argument not accepted hereE40: Can't open errorfile %sE411: highlight group not found: %sE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE419: FG color unknownE420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE426: tag not found: %sE434: Can't find tag patternE435: Couldn't find tag, just guessing!E437: terminal capability "cm" requiredE442: Can't split topleft and botright at the same timeE447: Can't find file "%s" in pathE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E469: invalid cscopequickfix flag %c for %cE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE493: Backwards range givenE495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E506: Can't write to backup file (add ! to override)E508: Can't read file for backup (add ! to override)E510: Can't make backup file (add ! to override)E511: netbeans already connectedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E533: can't select wide fontE536: comma requiredE541: too many itemsE542: unbalanced groupsE548: digit expectedE552: digit expectedE555: at bottom of tag stackE556: at top of tag stackE561: unknown cscope search typeE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE572: exit code %dE583: multiple :elseE595: contains unprintable or wide characterE597: can't select fontsetE59: invalid character after %s@E607: multiple :finallyE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE63: invalid use of \_E664: changelist is emptyE666: compiler not supported: %sE679: recursive loop loading syncolor.vimE684: list index out of range: %ldE698: variable nested too deep for making a copyE724: variable nested too deep for displayingE729: using Funcref as a StringE730: using List as a StringE731: using Dictionary as a StringE738: Can't list variables for %sE743: variable nested too deep for (un)lockE749: empty bufferE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE785: complete() can only be used in Insert modeE806: using Float as a StringE829: write error in undo file: %sE838: netbeans is not supported with this GUIE842: no line number to use for "<slnum>"E844: invalid cchar valueE854: path too long for completionE871: (NFA regexp) Can't have a multi follow a multi !E883: search pattern and expression register may not contain two or more linesE886: Can't rename viminfo file to %s!E890: trailing char after ']': %s]%sE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE908: using an invalid value as a StringE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE916: not a valid jobE918: buffer must be loaded: %sE922: expected a dictE935: invalid submatch number: %dE941: already started a serverKeys don't match!Messages maintainer: Bram Moolenaar <Bram@vim.org>Unrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sVIM: Can't open window!
Vim E458: Cannot allocate colormap entry, some colors may be incorrectcan't delete OutputObject attributescan't read output of 'charconvert'couldn't open bufferdon't quit the editor until the file is successfully written!netbeans is not supported with this GUI
Project-Id-Version: Vim(UK English)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-16 13:34+0100
PO-Revision-Date: 2003-02-25 11:05+0000
Last-Translator: Mike Williams <mrw@eandem.co.uk>
Language-Team: Mike Williams <mrw@eandem.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO_8859-1
Content-Transfer-Encoding: 7bit
# You may edit it if you are careful!

+reverse		Do not use reverse video (also: +rv)--literal		Do not expand wildcards--noplugin		Do not load plugin scripts--remote-silent <files>  Same, do not complain if there is no server--remote-wait-silent <files>  Same, do not complain if there is no server-background <colour>	Use <colour> for the background (also: -bg)-f			Do not use newcli to open window-f  or  --nofork	Foreground: Do not fork when starting GUI-foreground <colour>	Use <colour> for normal text (also: -fg)Backward range given, OK to swapCannot find temp file for conversionE101: More than two buffers in diff mode, do not know which one to useE102: Cannot find buffer "%s"E138: Cannot write viminfo file %s!E144: Non-numeric argument to :zE146: Regular expressions cannot be delimited by lettersE166: Cannot open linked file for writingE179: Argument required for -addrE179: Argument required for -completeE185: Cannot find colour scheme '%s'E205: Patchmode: cannot save original fileE206: Patchmode: cannot touch empty original fileE207: Cannot delete backup fileE212: Cannot open file for writingE214: Cannot find temp file for writingE217: Cannot execute autocommands for ALL eventsE223: Recursive mappingE224: Global abbreviation already exists for %sE225: Global mapping already exists for %sE226: Abbreviation already exists for %sE227: Mapping already exists for %sE233: Cannot open displayE247: No registered server named "%s"E254: Cannot allocate colour %sE255: Could not read in sign data!E259: No matches found for cscope query %s of %sE262: Error reading cscope connection %ldE267: Unexpected returnE268: Unexpected nextE269: Unexpected breakE270: Unexpected redoE271: Retry outside of rescue clauseE272: Unhandled exceptionE273: Unknown longjmp status %dE288: Input method does not support any styleE289: Input method does not support my preedit typeE293: Block was not lockedE298: Did not get block nr 0?E298: Did not get block nr 1?E298: Did not get block nr 2?E304: ml_upd_block0(): Did not get block 0??E317: Pointer block id wrongE317: Pointer block id wrong 2E317: Pointer block id wrong 3E317: Pointer block id wrong 4E322: Line number out of range: %ld past the endE323: Line count wrong in block %ldE324: Cannot open PostScript output fileE344: Cannot find directory "%s" in cdpathE345: Cannot find file "%s" in pathE363: Pattern uses more memory than 'maxmempattern'E369: Invalid item in %s%%[]E384: Search hit TOP without match for: %sE385: Search hit BOTTOM without match for: %sE388: Could not find definitionE389: Could not find patternE394: Did not find region item for %sE395: Contains argument not accepted hereE40: Cannot open errorfile %sE411: Highlight group not found: %sE415: Unexpected equal sign: %sE416: Missing equal sign: %sE417: Missing argument: %sE419: FG colour unknownE420: BG colour unknownE421: Colour name or number not recognised: %sE422: Terminal code too long: %sE426: Tag not found: %sE434: Cannot find tag patternE435: Could not find tag, just guessing!E437: Terminal capability "cm" requiredE442: Cannot split topleft and botright at the same timeE447: Cannot find file "%s" in pathE456: Cannot find PostScript resource file "%s.ps"E456: Cannot find PostScript resource file "cidfont.ps"E456: Cannot find PostScript resource file "prolog.ps"E456: Cannot open file "%s"E457: Cannot read PostScript resource file "%s"E469: Invalid cscopequickfix flag %c for %cE482: Cannot create file %sE483: Cannot get temp file nameE484: Cannot open file %sE485: Cannot read file %sE493: Backward range givenE495: No autocommand file name to substitute for "<afile>"E496: No autocommand buffer number to substitute for "<abuf>"E497: No autocommand match name to substitute for "<amatch>"E498: No :source file name to substitute for "<sfile>"E506: Cannot write to backup file (add ! to override)E508: Cannot read file for backup (add ! to override)E510: Cannot make backup file (add ! to override)E511: NetBeans already connectedE513: Write error, conversion failed (make 'fenc' empty to override)E513: Write error, conversion failed in line %ld (make 'fenc' empty to override)E514: Write error (file system full?)E533: Cannot select wide fontE536: Comma requiredE541: Too many itemsE542: Unbalanced groupsE548: Digit expectedE552: Digit expectedE555: At bottom of tag stackE556: At top of tag stackE561: Unknown cscope search typeE567: No cscope connectionsE568: Duplicate cscope database not addedE570: Fatal error in cs_manage_matchesE572: Exit code %dE583: Multiple :elseE595: Contains unprintable or wide characterE597: Cannot select fontsetE59: Invalid character after %s@E607: Multiple :finallyE614: vim_SelFile: cannot return to current directoryE615: vim_SelFile: cannot get current directoryE616: vim_SelFile: cannot get font %sE618: File "%s" is not a PostScript resource fileE619: File "%s" is not a supported PostScript resource fileE624: Cannot open file "%s"E625: Cannot open cscope database: %sE626: Cannot get cscope database informationE63: Invalid use of \_E664: Changelist is emptyE666: Compiler not supported: %sE679: Recursive loop loading syncolor.vimE684: List index out of range: %ldE698: Variable nested too deep for making a copyE724: Variable nested too deep for displayingE729: Using Funcref as a StringE730: Using List as a StringE731: Using Dictionary as a StringE738: Cannot list variables for %sE743: Variable nested too deep for (un)lockE749: Empty bufferE781: .sug file does not match .spl file: %sE782: Error while reading .sug file: %sE783: Duplicate char in MAP entryE785: Complete() can only be used in Insert modeE806: Using Float as a StringE829: Write error in undo file: %sE838: NetBeans is not supported with this GUIE842: No line number to use for "<slnum>"E844: Invalid cchar valueE854: Path too long for completionE871: (NFA regexp) Cannot have a multi follow a multi !E883: Search pattern and expression register may not contain two or more linesE886: Cannot rename viminfo file to %s!E890: Trailing char after ']': %s]%sE903: Received command with non-string argumentE904: Last argument for expr/call must be a numberE904: Third argument for call must be a listE905: Received unknown command: %sE906: Not an open channelE908: Using an invalid value as a StringE912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE916: Not a valid jobE918: Buffer must be loaded: %sE922: Expected a dictE935: Invalid submatch number: %dE941: Already started a serverKeys do not match!Messages maintainer: Mike Williams <mrw@eandem.co.uk>Unrecognised flags in %s line %d: %sUnrecognised or duplicate item in %s line %d: %sVIM: Cannot open window!
Vim E458: Cannot allocate colourmap entry, some colours may be incorrectcannot delete OutputObject attributescannot read output of 'charconvert'could not open bufferdo not quit the editor until the file is successfully written!NetBeans is not supported with this GUI
PK�j�Z��
K^^vim80/lang/menu_fr.latin1.vimnu�[���" Menu Translations:	French for ISO 8859-1 encoding

source <sfile>:p:h/menu_fr_fr.latin1.vim
PK�j�Z�� � �'vim80/lang/ja.euc-jp/LC_MESSAGES/vim.monu�[������|<
�x(�)�
:�H�Q�'g�/����ա�L�:N�����+��ʣ"��(�9�5I������դ����;ɥ��:�W�f�w�������ʦ�0��.*�/Y�0��
��ȧާ��
��
2�$=�$b��� ����@ȨD	�N�b�"����"é����@�_�z���������/Ϊ8��,7�=d�����ӫ���0�1A�1s�����Ϭ�-�3�S�h�������ǭ3߭3�G�d�|�������
ٮ����/�
G�$U�z�L�� ӯ��;$�`�o�#|�	����ðӰ�
����#�/�G�	_�i�q�y�!������ܱ���#�+� 3�T�o���������
òѲ6޲�2�K�!j���
����	����ٳ��&�	�" �*C�n�=��
ĴҴش���	�
�
'�2�
;�F�X�j�s�5��ǵ-ٵ1�&9�`�x�������ƶ۶��$�-�=�
Q�\�l���������ҷ�����+�7�F�V�h�x�
��������
ƸѸ�7�+�!8�Z�r�z�������������=��2�%�.�4�=�'N�-v�2��׺�?
�M�i�z�+����	Ļλ��-�M�$m���
����ͼ��?�D�2S�!��%��@ν9�EI�9��CɾK
�IY�H��;�6(�8_�3��<�4	�->�6l���%�����
�&�@�&P�,w�#��4�� ��@�-_�0��:��;��5�"U�x�>��)��>��<1�n�z�#��:��'��9!�[�$t�9��4��;� D�>e�1��/���-#�Q�.`�B��"��2��4(�*]���+��%��'��( �<I�E��.��-��$)�N�<g���*��&�� �41�f�w�����������������
�'�0�"8�[�g�v�������)����$�)�8�@�Y�1r�?���������0�F�a�t�X��%����+�I�b�{���������$����!�0�N�T�d�h���"��$����#�/�6�E�U�u����� ����4��.�	@�CJ�V����
��
�.�:�-S���-��$��.��6"�Y�.s�H��(���#�
<�OG�O��
��C��	9�C�O�!d�������3��2��!�(8�a� z�"��E���%!�#G�-k�������&���)�;�Y�r���'����)��+�@;�-|���5�����0�K�/f�9����E��3�-N�7|�#�� ��:��54�&j�"��&��$��#�!$�=F�5�� ��(��7�.<�,k��������� ��#�&;�b�y�����������0>�$o�!�� ��(��4�,5�b�~������� �����1,�^�!{�%��%��!��%�1�$J� o�����?��&�#.�R�
n�A|�%��"��"�9*�'d�(��2��*��!�!5�)W�%��!��4��:��&9�;`�;��)��0�3�R�n�����#��!��8��&1�#X�|� ��/��"���-�G�X�q�/��*��(��#
�1�M�h�����>�����0�"G�j�������#����9�1K�1}�)��1��%�71�i�A��?����3�!R�t�����0��4��$0�)U�N�,��&��L"�o�����8����$�(�B�#b�7��N��
�)�F�$a�!��3��,�2	�%<�b�"}���#�����;�BX���0��!� �<)�+f�����+�2�$&�K�,i���H��,��'�=�"]����������9�S�h���0��#�'��,�,L�&y�����+�2�-$�(R�{�"��'��'�,�4�.K�z�#��,��W�)C�"m�,��%��� !2:2m2��!�+2@5s'�#�)�3$S%x����
$"&G n'�*�#�'%.T3t!��+�*5-`$����
  ; \$}$�)��	,La%|�=�9R'l��$�#�0	.H	0w	�	�	�	

/
C
-Z
 �
�
7�
)�
&$>(c��%�$�$7'T|'� ���
 .
7O
0�
�
#�
�
"(>!g�-�1�65>t.�*�1�9U*u&�+�,�+ 4L<�+�*�+CXm�����"�
 7Rq�����)Ea:t=�<�6*<a�"��+�)4E5z4�3�0+ \}D�P�%&Lk�����!)Kf}����'�#6!Vx�"��1�.K"`������'<Uh|�����*1)\�� ����6#Os)�&�K�, ?`�����" &7 #^ � � +� %� 7!5F!|!�!,�!�!�!")," V"w"�"�"�"�"�"#5#0M#~#�#�#�#4�#.%$$T$)y$1�$;�$%.!%*P%{%$�%�%%�%,&.&%?&e&~&�&&�&-�&&'+' G'h'�'�'+�' �'(?()Z(�(6�(#�(2�(9,)>f)8�)1�)*).*)X* �*)�*�*)�**+"=+`+#y+"�+"�+)�+
,-,%K, q,$�,�,�,!�,0-G-`-{-�-"�-!�-9�-82./k.�.�.�.+�.%/18/)j/�/�/'�/%�/0&'0!N0%p0'�0%�0'�0-12:1m1�1$�1�1�1�1"2:2Z2!z21�2&�2�2!3!43V3(k3�3�3+�38�3347R4E�4!�4�45(50G5#x5�5$�5�5#�5*6?6Z6m60�62�60�67+97)e7$�7/�7�7�7'8)68,`8�8�8 �8�8�8-9,K9x9/�9+�9'�9!: 7:0X:�:!�:,�:�:;(;A;Z;0p;.�;�;1�;&"<:I<�<9�<�<:�<2=J=j=�=*�=�=3�=&>%?>2e>0�>!�>;�>R'?z?*�?�?�?(�?!@+=@+i@�@ �@"�@%�@ A+;A"gA+�A�A.�A4BI:B)�B)�B6�B6C-FC(tC/�C&�C<�C)1D*[D�D7�D�D�DE*-EXEvE0�E/�E!�E"F*8F/cF;�F�F�FQG.YG�G$�G#�G0�G#"HFH2eH6�H�H+�H%IXAI;�I/�I;JBJ!bJ%�J"�JN�J.K$KK&pKT�K#�K"L$3L XLyL�L#�L]�L 9MBZM'�M�M/�M2N,EN"rN�N&�N(�N%�N%ODObOEO!�O �O7P@P%VP|P'�P�P'�P	Q)Q<?Q|Q"�Q'�Q�QR+RDR(^R!�R5�R�R7�R!6S%XS/~S!�S�S�S'T6T)UT;T&�T(�TU)*U&TU{U�U'�U�U	�U�UVV+VEV#[V	V�V�V�V.�V�V.
W69WpWvW6�W#�W
�W&�W	X!X6XNXeXzX �X%�X!�X
�X�X(Y�:Ya�YGZ+`Za�Z�Z�Z[(
[
3[	>[%H[
n[y[&�[&�[�[(\+\	<\F\	W\a\
g\u\�\�\�\	�\2�\*]C]c]u]�]�]
�]�]	�]�]�]�]^#,^(P^y^�^	�^�^�^
�^�^�^2_9_E_d_~_�_�_$�_�_/�_` `'#`K`a`
x`$�`
�`�`�`�` �`aa*a7a!Maoa�a@�a(�ab'b9b<bMbYbeb�b#�b�b�b�b.�b
.c9c	OcYcyc�c�c'�c�c�c
ddd7dKdTdnd�d�d�d�d�de9%e9_e�e�e�e�e
�e�e(�e&f.f?fPf
]f	hfrf�f�f�f�f9�f
gg2gMghg&g�g�g�ghChW_h	�h�h�h�h�h
ii)"iLili�iF�i�i�ij%j,j8j(Djmj�j�j1�j�j�jk$k:kSk0bk;�k>�kl&l>l1Zl"�l�l�l�lA�l)/m=Ym�m(�m�m�m$�m0"nSn\n_n+un2�n�n�n�no%o	7oAo�Zo�oF�o;p
Gp	Rp
\pjp+p�p%�p0�pBq([q�q1�q+�q*�q&)r9PrM�r>�r)s5AsAws4�s$�s*tA>tA�t&�t6�t u<(u<eu?�u7�u/v Jv"kv�v2�v0�vw#w;wWwlw�w�w�w�w2�w)x+Fx,rx-�x �x!�x#y4yMyeyiymy�y	�y�y�y�y�y�y�yzz
$z
/z:z	@zJzhzuz	�z�z
�z�z
�z	�z5�z{{	${.{;{
A{O{&V{}{�{�{�{
�{�{
�{�{�{�{�{�{�{�{|9|BB|D�|"�|$�|"})5}_}n}u}�}�}�}�}1�}
~$~"7~Z~<y~�~'�~!�~#6Po�H�C�"�6�S�k�~�����������ǀ݀ �#�-7�-e����������(�&?�f�=u���΂%�
	�8�FP�.��DƃM�@Y�0��&˄'�&�$A�f�x�$����-Ӆ��3�J�h�t�z�������
׆���� $�E�
J�X�"e���%��*��.�8�"S�#v�%��#������#�/5�e�
t� �� ��ĉ
׉����!�.�N�	f�p���2��Њ�����$
�2�?�H�
W�e�#n�1��1ċ1��1(�Z�c�	l�
v�(��������׌���
	��
3�>�V�(j�'�� ��܍�	�)�	D�N�"`�����$��$̎���
��-�
=�K�a���������я�����5�K�Z�b�.n�.��.̐.��.*�.Y�.��.��&� 
�%.�T� o�:��˒ے���"�)6�)`���	������̓����%�	4�>�O�d�x���3���ΔX�w�	����.��/ϖ���+�NA�4��Ř
Ԙ+�"�-1�'_�����4��$�	�%�
B�P��d�A]�����֛���,�<�N�d�x�/��-��.�/�G�P�i�������
ɝ*ԝ*��*�+<�	h�Fr�K����#2�V�#s�����	��C���	!�+�
7�	B� L�.m�B��)ߠB	�L�"g�!����šEա1�1M��������0֢�'�<�T�(f�����'��2��9�Q�i�����	��
��¤ڤ�����=�LN�����ӥ;�'�9�K�i�q���
������æ
ަ����	(�2�	:�D�P�m���������	ȧҧا�
��8�>�	D�	N�X�2d�������٨���	 �*�A�M�R�(W���%��(��թ:�(�1�7�	F�P�f�
n�|�����������Ѫ,٪?�F�9X�-��'�����(�H�h�#��$��7Ѭ(	�2�F�O�"c�!������ϭ�
�!�@�Y�b�w�����	����ٮ�	��+�=�U�4k�
��#��ϯ���

���4�I�]M�P������"&�<I�1��7����H0�y�����2�����#�(�G�)f�#��,���
���
9�D�:a�
��,��%Դ.��6)�;`�?��<ܵC�V]�?��H�B=�3��:��,�A�)^�)��5����(�<�N�n�
��)��"ƹ�7�#=�Aa�*��.κ<��B:�}�����6̻%�9)�;c���!��(ɼ5�,(�=U���-��=ݽ5�6Q�"��6��4�1�&I�(p���/��Dٿ)�6H�6�&��!�.��&.�'U�)}�>��G�2.�+a�$����B��#�(5�-^�/��:�����5�T� [�|�
�������������21�d�v���������5��!�')�
Q�_�d���4��6��� �4�;�S�i�������b��(:�c�(h�0������!��!�2�?�P�+S�
�+��"��������,��%�&D�&k�"��(��
������	�)�;�V�m� ��9������?�QK�������7����-�#J�6n�&��)��A��"8�=[�Y��2��&�6�
J�ZU�Z���G�g�l�y���
��*����8��7�1S�,����,��.��G'�$o�.��"��?��!&� H�!i�.������"���!2�!T�v��� �� ��;��-,�Z�?u��������,$�:Q���I����*
�65�#l�$��B��9��+2�*^�8��*��7��'%�FM�;��(��(��,"�.O�2~�*����$��� 6�W�1v����������6� L�*m�.��)��(��,�(G�:p�2�������,�I�%c�-��'��A��!�@�+Y� ����"����$�*�G�`�>{�.��*��"�
7�HB�;��%��%��=�,Q�*~�1��-��&	�"0�(S�6|�-��9��;�(W�7��3��-��2�&M�!t�!������&��$�/D�(t�(��(��8��9(�%b���.��������1�3E�'y�)������#�$%�J�Ai�������*�"-�P�"e���$����?��4)�.^�-��>��3��4.�#c�0��7�����!&�'H� p�!��(��6��:�*N�-y�T��+��3(�R\�������B��@�Y�&x��� ��B��I�$i�'����0��0�65�:l�=��5��$�.@�(o�0��(��"��"�"8�T[�%��;��/�,B�?o�:��-��0.�*_�&��!��?��M2�.����!�'�*�,=�,j�,��'�B�%/�U�%s�*��/�,�
!�*,�>W�(��%���:�:<�.w�<��"�)�80�=i�D���)�1�N�1m�N��0�.�8N�6��*��*�%�4:�4o�4��$���:.P90�%�+9<+v,�$��1,Cp,�4�)�66N0�2�"�#:0!k!�:��2	2<0o�� ��
,&,S&�#�2��#4X"t(�(�1�4O%b-��#�'�,	.J	,y	@�	�	

8
O
f
�
(�
 �
�
4�
02c%�0� ��38F,�$�-�+
 J
$k
"�
�
�
&�
08H.�&�*�.21d!�.�;�@?Q �6�"�??L�/�.�.,5+b.�0�0�-Ml������01Gy"�"�(�  $(E&n �#��&�"'=>e=�;�>I]�"��1�/1?aK�?�;-i;"��E�O;-�$�$�$((Cl!�� � �";!Xz&�)��%5($^�%��:� ;Uu���(�
#:Yn�����&
 4 Q !n .� -� � !'!D!`!r!C�!(�!�!6",O"Q|"�"(�"#*#"I#!l##�#�#%�#)�#0 $-Q$$$(�$+�$*�$8$%6]%�%"�%0�%&$ &E&.d&%�&�&�&�&#''7'$_'%�' �',�'�' ($0(&U(1|(5�(/�(!)@6)Dw)�)*�)4**;**f* �*3�*.�*+&5+"\++�+C�+1,/2,b,2z,�,�,�,;�,,0-]-Fx-,�-%�-E.2X.-�.>�.F�.L?/8�/.�/.�//#0+S0,0&�0(�0*�0+'1S1-l12�10�16�1$52#Z2,~2 �2"�2(�2&3+?3.k3�3 �3�3�3$4*-4<X4*�4$�4$�4$
5/56D5.{59�5,�56*6$A6(f6�6,�6&�6$7&'7$N7)s7*�74�7!�7$8$D8*i8+�8(�8&�8,9,=9j9(�9�9�9!�9&:9: S: t:�:2�:;�:&";6I;Q�;$�;�;<8*<.c<(�<�</�<=(=$F=,k=�=�=L�=.>,J>*w>3�>!�>!�>>?Y?y?<�?8�?7@5;@'q@$�@$�@�@'A<*AgA;�A5�A5�A(+B.TB1�B"�B*�B4C8CSC)eC�C�C2�C6�C/D>ND2�D1�D#�DCE ZE1{E�E2�E*�E,&F7SF"�F,�F�F0�F4"G5WG'�GC�GD�G>H=^H"�H(�H(�HI.-I2\I(�I*�I-�I:J.LJ0{J.�J3�J'K47KDlKJ�K%�K%"L8HL8�L+�L(�L4M&DM8kM-�M:�M
N2'N$ZN)N�N*�N#�NO)2O)\O �O"�O3�O8�O?7P)wP�PX�P4Q+NQ)zQ(�Q,�Q(�Q#R7BR;zR%�R)�R'SW.SB�S*�SC�S%8T+^T&�T#�T9�T*U :U0[U]�U&�U+V-=V2kV,�V.�V,�Vf'W1�W=�W8�W7X,TX6�X6�X&�X Y,7Y(dY&�Y#�Y$�Y,�YM*Z*xZ2�Z9�Z [%1[2W[0�[�[+�[ \(\FE\&�\&�\.�\	]"]-9]"g],�]�]8�]^..^]^$|^.�^$�^�^ _03_$d_,�_Q�_`$'`,L`%y`'�`�`�`-�`-a6a&Ealaa�a�a�a�a�ab"b<>b${b?�bG�b(c/cC>c$�c�c�c�c�c�c	d d7d&Kd+rd'�d�d�d/�d�
et�e8f>Sfa�f�fgg$gBgOg$Xg}g �g,�g,�g$h.)hXh
khyh
�h	�h�h"�h�h%�hi#i30i+di"�i�i$�i�i�i
jj'j.j7jFjWj$nj/�j�j�j�j�j k&k>k
Uk>`k�k"�k�k�kll.&lUl:nl�l�l,�l�l$m0m2Mm�m �m �m�m6�m!)nKndn�n.�n*�n�nLo8Ro�o�o�o�o�o�o �o( p*Iptp%�p	�p0�p�p�pq&q7q"Vqyq1�q�q�q�qrr/rHrMrkr�r�r�r�r%�rs56s;ls�s�s�s�s�s�s.�s
,t7tNtgt�t�t�t�t*�tuu+#u
Ou
Zuhu)�u�u&�u%�u%v%6v\v9wvK�v�vww%w@wYwfw8nw.�w �w+�wM#xqx�x�x	�x�x�x9�x! y*By%my:�y
�y�y"�yz%3z
Yz2dz:�z<�z{&{;{-R{'�{�{�{�{P�{2+|H^|�|"�|�|�|&}8*}c}h}&k}1�}B�}~
&~1~
E~S~	e~o~��~<#	`j
y��,��/�2 �=S�,����9ڀ(�&=�'d�5��@5�)9�0c�=��J҂%�*C�En�E��*��/%�U�CZ�C��F�?)�3i�,��,ʅ��8�.O�~�"��$�����#.�R�q�=��4χ>�7C�8{���(ӈ(��%�@�\�a�f�}���
��������ɉډ�����%�*�!1�S�\�o�|���������4������'�-�=�&D�
k�v�����
��
������Ƌ
Ջ������/�>8�Bw�(��$�*�43�h�w�"|� ����Ӎ׍4�"�2�(O�#x�Q������6�I�\�v� ����MO�`�s�������ې�����'�;�)P�0z�4��4��&� E�f�����*��*��;�V�s�|���=��<�C"�:f�;��9ݔE�4]�5��4ȕ$��"� 2�*S�~�4��̖��0#�T�	d�n���������ї���+�4�;�J�6W���"��,��3�<"�_�+z�*��"љ���+�6>�u���.��&К����'�.�
N�Y�u�������6�����0�9�3F�z�
����œ՜(ޜ2�1:�1l�9��؝����%
�0�J�O�g� �� ��Ğ˞����)/�'Y�%������&؟����$/�T�e�q����� ��ؠ'�
�
�+�"I�l�	��$��#��١��� (�#I�!m�������.��.�.�.D�.s�.��.ѣ.�/� N� o���.��8ޤ
�%�*�9�N�d�&�&��ͥ
֥����(�9�I�X�m�	|���������զ=�z�~����*�Gg�lI�T��g������Z~�;����hE���5�`�p�$�jNr�T}��'���^P�W_��Z>���^w3����`UL��h���[���o
P�o0�*E��K� �y�����d��.f�<��Ubq&Y_�\����>�F�g���N�#���6���k��9_G8|�R����n��x:>(�;�X�������bj�D���S�,k|�z!�����A���j?m��a&lVSB�:�&��.�R�v� �%.@@�
���~Q��\Wu���&w[$?t*+�;��x��)�o��(y�s�t��
O]x�#���'��s�]�B�f��J����,#u&��;�����9l�3�/f�����+��\X�uW*iD�Q S����9c���h|��*�l/�@(v������9��{�������ji5%�|�Ln���E"�K�g����Z $T�T�gA~ej��
���{��u���O���}^X��O�+�fv��i��-G@�l��m�-|�p�J�_%l�~�R��"F8��NM����`�yC���zJ����,��KElt�r�4�Pl����K>eq�3��kQaK�W�!�.o�V�P]�[��/�m��X�w����)�����Y!��	4%��b��8�3�5���EyH�VjB���B�=�.�9(?�/K��X��:PZ����@	����r�7�����;b
+����#���b�o�-f�9_Vv����2��"�����
1\!	3?z�% X��CZ��)p�'�:Q^�������Y�wD>�#AH�e�x���r2T��C����h2A0�M�;�����^GL��Y_7F15��=��g5jV�x��7�s'!?�k>�v�`�������4<�D
�B6�1G�#A�a�����[��0{�dN�Z���(�F�O<�_��p�tNI�O���H������g��B*(���W��-2���Z�S���T��5A����6e�^�kt�����q����zmCsUG��'L�H���f�J~=nd)R9�9�������sr�0`i��)|M�`���,�:/L��?$�X}����z��#n�7�J�H�������Du=�������tC�'!,��� S 
Q)������H7�WgJ�������Y��
z�B�������~F��h�nCUS�o$�d�0��}L��=�m�7c��d�a��K
U���k���ew��	a�&Io�S)��}���������K����$�V�b�]J�|�0��s�����u-�c��G�wR���C%��1���1	��I=�w3�48��]�@�{��V#������|e����b����1�'�q���En��~7PWO�[�L������6�4�[�GZ^�`5R$����6r�ym� ���<��y��y�Ac�+����>/�c�F�3������=��qp0Lv�a
p�M��U=w����Q�4���]�d���d�4��0�5������N��X��2k*�Q�F��	�"R{���Oa��C�8M6�1����}��iqO��t��qn[�����a�?8�&%\�;f���hY<��Ec��q�"
{��\D���sxo�},�!��.�I�&e�i�������{,��7�����Iv:D�+:+H
���v�'k�"����Pp`��D���T]��b	���jt\{�,>��
���
?M�(I�i;�	N�x���IQ(32T���Y�]��/")^.Y�<}�e��F8m@_�u���%�[A��\x��S�rc�������������P��@��my���6/�
-*�W�-1�:���Mf���6�Ur�4"p�BN���J��E�-���h�n.��<�R��!�H�cV+$���8<���U2iz2M�d�h�������s�����u�
	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
       a: Find assignments to this symbol
       c: Find functions calling this function
       d: Find functions called by this function
       e: Find this egrep pattern
       f: Find this file
       g: Find this definition
       i: Find files #including this file
       s: Find this C symbol
       t: Find this text string

    Name        Args       Address   Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Bar lines, copied verbatim:

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Could not get security context for 
Could not set security context for 
Extra patches: 
Found a swap file by the name "
Huge version 
If you entered a new crypt key but did not write the text file,
If you wrote the text file after changing the crypt key press enter
Included patches: 
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MS-Windows 64-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
OpenVMS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
You may want to delete the .swp file now.


[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
enter the new crypt key.
mark line  col file/text
shell returned 
syncing on items
to use the same key for text file and swap file                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:        defaults file: "      -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in line %ld; info kind file
 line breaks lines before top line marks oldfiles on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %s%*s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%lld characters%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%serror list %d of %d; %d errors %sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'-nb' cannot be used: not enabled at compile time
'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(2) An edit session for this file crashed.
(Interrupted) (Invalid)(NFA) COULD NOT OPEN %s !+			Start at end of file+<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--echo-wid		Make gvim echo the Window ID on stdout--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--not-a-term		Skip warning for input/output not being a terminal--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--startuptime <file>	Write startup timing messages to <file>--ttyfail		Exit if input or output is not a terminal--version		Print version information and exit--windowid <HWND>	Open Vim inside another win32 widget-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-E			Improved Ex mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<cannot open> <empty>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot create Cannot execute Cannot open $VIMRUNTIME/rgb.txtCannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Cannot write undo file in any directory in 'undodir'Change "%.*s" to:Close tabCol %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lldCol %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld of %lldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not get security context %s for %s. Removing it!Could not load vim32.dll!Could not open temporary log file for writing Could not open temporary log file for writing, displaying on stderr ... Could not set security context %s for %sCscope tag: %sCurrent %slanguage: "%s"Debug LineDefining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDiff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate field name: %sDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital or "s:": %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursive with a rangeE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE151: No match: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -addrE179: argument required for -completeE17: "%s" is a directoryE180: Invalid address type value: %sE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme '%s'E186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to the X serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E244: Illegal quality name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %sE254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE277: Unable to read a server replyE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last changeE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: "%s" is read-only (add ! to override)E505: %s is read-only (add ! to override)E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E511: netbeans already connectedE512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E513: write error, conversion failed in line %ld (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E521: Number required: &%s = '%s'E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE630: %s(): write while not connectedE631: %s(): write failedE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE707: Function name conflicts with variable: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE740: Too many arguments for function %sE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use ":profile start {fname}"E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE797: SpellFileMissing autocommand deleted bufferE798: ID is reserved for ":match": %ldE799: Invalid ID: %ld (must be greater than or equal to 1)E79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E801: ID already taken: %ldE802: Invalid ID: %ld (must be greater than or equal to 1)E803: ID not found: %ldE804: Cannot use '%' with FloatE805: Using a Float as a NumberE806: using Float as a StringE807: Expected Float argument for printf()E808: Number or Float requiredE809: #< is not available without the +eval featureE80: Error while writingE810: Cannot read or write temp filesE811: Not allowed to change buffer information nowE812: Autocommands changed buffer or buffer nameE813: Cannot close autocmd windowE814: Cannot close window, only autocmd window would remainE815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.E816: Cannot read patch outputE817: Blowfish big/little endian use wrongE818: sha256 test failedE819: Blowfish test failedE81: Using <SID> not in a script contextE820: sizeof(uint32_t) != 4E821: File is encrypted with unknown methodE822: Cannot open undo file for reading: %sE823: Not an undo file: %sE824: Incompatible undo file: %sE825: Corrupted undo file (%s): %sE826: Undo file decryption failed: %sE827: Undo file is encrypted: %sE828: Cannot open undo file for writing: %sE829: write error in undo file: %sE82: Cannot allocate any buffer, exiting...E830: Undo number %ld not foundE831: bf_key_init() called with empty passwordE832: Non-encrypted file has encrypted undo file: %sE833: %s is encrypted and this version of Vim does not support encryptionE834: Conflicts with value of 'listchars'E835: Conflicts with value of 'fillchars'E836: This Vim cannot execute :python after using :py3E837: This Vim cannot execute :py3 after using :pythonE838: netbeans is not supported with this GUIE839: Completion function changed windowE83: Cannot allocate buffer, using other one...E840: Completion function deleted textE841: Reserved name, cannot be used for user defined commandE842: no line number to use for "<slnum>"E843: Error while updating swap file cryptE844: invalid cchar valueE845: Insufficient memory, word list will be incompleteE846: Key code not setE847: Too many syntax includesE848: Too many syntax clustersE849: Too many highlight and syntax groupsE84: No modified buffer foundE850: Invalid register nameE851: Failed to create a new process for the GUIE852: The child process failed to start the GUIE853: Duplicate argument name: %sE854: path too long for completionE855: Autocommands caused command to abortE858: Eval did not return a valid python objectE859: Failed to convert returned python object to vim valueE85: There is no listed bufferE862: Cannot use g: hereE864: \%#= can only be followed by 0, 1, or 2. The automatic engine will be used E865: (NFA) Regexp end encountered prematurelyE866: (NFA regexp) Misplaced %cE867: (NFA) Unknown operator '\%%%c'E867: (NFA) Unknown operator '\z%c'E868: Error building NFA with equivalence class!E869: (NFA) Unknown operator '\@%c'E86: Buffer %ld does not existE870: (NFA regexp) Error reading repetition limitsE871: (NFA regexp) Can't have a multi follow a multi !E872: (NFA regexp) Too many '('E873: (NFA regexp) proper termination errorE874: (NFA) Could not pop the stack !E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stackE876: (NFA regexp) Not enough space to store the whole NFA E877: (NFA regexp) Invalid character class: %ldE878: (NFA) Could not allocate memory for branch traversal!E879: (NFA regexp) Too many \z(E87: Cannot go beyond last bufferE881: Line count changed unexpectedlyE882: Uniq compare function failedE883: search pattern and expression register may not contain two or more linesE884: Function name cannot contain a colon: %sE885: Not possible to change sign %sE886: Can't rename viminfo file to %s!E887: Sorry, this command is disabled, the Python's site module could not be loaded.E888: (NFA regexp) cannot repeat %sE88: Cannot go before first bufferE890: trailing char after ']': %s]%sE891: Using a Funcref as a FloatE892: Using a String as a FloatE893: Using a List as a FloatE894: Using a Dictionary as a FloatE895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded.E898: socket() in channel_open()E89: No write since last change for buffer %ld (add ! to override)E901: gethostbyname() in channel_open()E902: Cannot connect to portE903: received command with non-string argumentE904: last argument for expr/call must be a numberE904: third argument for call must be a listE905: received unknown command: %sE906: not an open channelE907: Using a special value as a FloatE908: using an invalid value as a StringE909: Cannot index a special variableE90: Cannot unload last bufferE910: Using a Job as a NumberE911: Using a Job as a FloatE912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channelE913: Using a Channel as a NumberE914: Using a Channel as a FloatE915: in_io buffer requires in_buf or in_name to be setE916: not a valid jobE917: Cannot use a callback with %s()E918: buffer must be loaded: %sE919: Directory not found in '%s': "%s"E91: 'shell' option is emptyE920: _io file requires _name to be setE921: Invalid callback argumentE922: expected a dictE923: Second argument of function() must be a list or a dictE924: Current window was closedE925: Current quickfix was changedE926: Current location list was changedE927: Invalid action: '%s'E928: String requiredE929: Too many viminfo temp files, like %s!E92: Buffer %ld not foundE930: Cannot use :redir inside execute()E931: Buffer cannot be registeredE932: Closure function should not be at top level: %sE933: Function was deleted: %sE934: Cannot jump to a buffer that does not have a nameE935: invalid submatch number: %dE936: Cannot delete the current groupE937: Attempt to delete a buffer that is in useE938: Duplicate key in JSON: "%s"E939: Positive count requiredE93: More than one match for %sE940: Cannot lock or unlock variable %sE941: already started a serverE942: +clientserver feature not availableE943: Command table needs to be updated, run 'make cmdidxs'E944: Reverse range in character classE945: Range too large in character classE94: No matching buffer for %sE95: Buffer with this name already existsE96: Cannot diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Error fileEstimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFailed to set path hook: sys.path_hooks is not a list
You should now do the following:
- append vim.path_hook to sys.path_hooks
- append vim.VIM_SPECIAL_PATH to sys.path
Failed to set path: sys.path is not a list
You should now append vim.VIM_SPECIAL_PATH to sys.pathFile "%s" does not existFile contents changed, cannot use undo infoFile permissions of "%s" are read-only.
It may still be possible to write it.
Do you wish to try?File preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find what:Finished reading undo file %sFirst duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont%ld width is not twice that of font0Font0 width: %ldFont0: %sFont1 width: %ldFont1: %sFont:For option %sGarbage after option argumentGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIgnoring long line in tags fileIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: List or number requiredLua library cannot be loaded.Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
Need encryption key for "%s"NetBeans disallows writes of unmodified buffersNew tabNoNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No entriesNo included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo old filesNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNot enough memory to set references, garbage collection aborted!Not reading undo file, owner differs: %sNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading undo file: %sReading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. Buffer contents equals file contents.Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:Running in Vi compatible modeRunning modeless, typed text is insertedSave AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld BytesSelected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of %lld BytesSelectionSending to printer...Show connectionsShow size in PointsShow this messageSigns for %s:Size:Skipping undo file write, nothing to undoSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Substitute Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap file is encrypted: "%s"Swap files found:Switching to backtracking RE engine for pattern: Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Too many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :qa!  and press <Enter> to abandon all changes and exit VimType number and <Enter> (empty cancels): Type number and <Enter> or click with mouse (empty cancels): Unable to read block 0 from Unable to register a command server nameUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing crypt key from swap file for the text file.
Using swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Error: This version of Vim does not run in a Cygwin terminal
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameW19: Deleting augroup that is still in useW20: Required python version 2.x not supported, ignoring file: %sW21: Required python version 3.x not supported, ignoring file: %sW22: Text found after :endfunction: %sWARNING: The file has been changed since reading it!!!WarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Cannot find word list "%s_%s.spl" or "%s_ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: Using a weak encryption method; see :help 'cm'Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Will not overwrite with undo file, cannot read: %sWill not overwrite, this is not an undo file: %sWindow position: X %d, Y %dWord '%.*s' added to %sWord '%.*s' removed from %sWord from other lineWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing undo file: %sWriting viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDRULES value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionYESYes[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][Scratch][calls] total re/malloc()'s %lu, total free()'s %lu

[character special][converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]_Cancel_Close_OK_Open_Saveadd() argumentafterand run diff with the original file to check for changes)attempt to assign sequence of size %d to extended slice of size %dattempt to assign sequence of size greater than %d to extended sliceattempt to refer to deleted bufferattempt to refer to deleted tab pageattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot delete vim.Dictionary attributescannot delete vim.List attributescannot get linecannot insert linecannot insert/append linecannot modify fixed dictionarycannot modify fixed listcannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set attribute %scannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %scontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection setpgid failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dictionary is lockeddid not switch to the specified tab pagedid not switch to the specified windowdlerror = "%s"don't quit the editor until the file is successfully written!empty keys are not allowedenvironment variableerror converting Scheme values to Vimerror handlerexpected 3-tuple as imp.find_module() result, but got %sexpected 3-tuple as imp.find_module() result, but got tuple of size %dexpected bytes() or str() instance, but got %sexpected int() or something supporting coercing to int(), but got %sexpected int(), long() or something supporting coercing to long(), but got %sexpected sequence element of size 2, but got sequence of size %dexpected str() or unicode() instance, but got %sexpected vim.Buffer object, but got %sexpected vim.TabPage object, but got %sexpected vim.Window object, but got %sexpressions disabled at compile timeextend() argumentfailed to add item to listfailed to add key '%s' to dictionaryfailed to change directoryfailed to find window in the current tab pagefailed to rename bufferfailed to run function %sfailed to run the codefailed to switch to buffer %dfewer linesfile
filename / context / line
filter() argumentfinished sourcing %sframe at highest level: %dframe is zerofreeing %ld linesfunction %s does not existgvimext.dll errorhashtab changed during iterationhelphidden optionin path ---
index must be int or slice, not %sinsert() argumentinternal error: NULL reference passedinternal error: failed to add item to listinternal error: failed to get vim list item %dinternal error: imp.find_module returned tuple with NULLinternal error: invalid value typeinternal error: no vim list item %dinternal error: not enough list itemsinternal error: unknown option typeinvalid attribute: %sinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelist constructor does not accept keyword argumentslist index out of rangelist is lockedlogoffmap() argumentmark name must be a single charactermark not setmatch %dmatch %d of %dmatch in filemaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnetbeans is not supported with this GUI
new shell started
nono cscope connections
no specific matchno such tab pageno such windowno syncingnot allowed in the Vim sandboxnot found not found in '%s': "%s"not implemented yetnumber changes  when               savednumber must be greater or equal to zeronumber must be greater than zerope_line_count is zeropre-vimrc command lineproblem while switching windowsreadonly attribute: bufferrecordingremove() argumentreplace with %s (y/n/a/q/l/^E/^Y)?reverse() argumentrow %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownslice step cannot be zerosort() argumentsourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts syntax case ignoresyntax case matchsyntax conceal offsyntax conceal onsyntax iskeyword syntax spell defaultsyntax spell notoplevelsyntax spell topleveltag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunable to convert %s to vim dictionaryunable to convert %s to vim listunable to convert %s to vim structureunable to get option valueunable to unset global option %sunable to unset option %s which does not have global valueuniq() argumentunknownunknown flag: unknown optionunknown vimOptionunnamed function %s does not existvalue is too large to fit into C int typevalue is too small to fit into C int typeversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writing to device disabled with 'opendevice' optionProject-Id-Version: Vim 8.0
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-07-03 23:05+0900
PO-Revision-Date: 2017-07-12 20:45+0900
Last-Translator: MURAOKA Taro <koron.kaoriya@gmail.com>
Language-Team: vim-jp (https://github.com/vim-jp/lang-ja)
Language: Japanese
MIME-Version: 1.0
Content-Type: text/plain; charset=euc-jp
Content-Transfer-Encoding: 8-bit
Plural-Forms: nplurals=1; plural=0;

	�Ǹ�˥��åȤ���������ץ�: 

����:


����ˡ:
          �ѹ�����: 
         [���Υ���ԥ塼���Ǥϻ��ѤǤ��ޤ���]
         [����Vim�С������Ǥϻ��ѤǤ��ޤ���]
          �ۥ���̾: 
        �桼����̾: 
        �ץ���ID: 
       a: ���Υ���ܥ���Ф��������õ��
       c: ���δؿ��Ƥ�Ǥ���ؿ��õ��
       d: ���δؿ��Ƥ�Ǥ���ؿ��õ��
       e: ����egrep�ѥ������õ��
       f: ���Υե������õ��
       g: ��������õ��
       i: ���Υե������#include���Ƥ���ե������õ��
       s: ����C����ܥ��õ��
       t: ���Υƥ�����ʸ�����õ��

    ̾��        ����       ���ɥ쥹  �䴰      ��
   #   ���ֹ�
   �⤷����:
  # TO ����        FROM ��    in file/text
 jump   ��   �� �ե�����/�ƥ�����
# %s ���ܤ���� (��������Τ���Ť���Τ�):

# '|' �ǻϤޤ�ԤΡ�ʸ���̤�Υ��ԡ�:

# �Хåե��ꥹ��:

# �ե�����ޡ���:

# �ե�������ޡ�������� (��������Τ���Ť����):

# �����ץꥹ�� (��������Τ���):

# �Ǹ�� %s�����ѥ�����:
~
# �Ǹ���ִ����줿ʸ����:
$
# �쥸����:

# �����Х��ѿ�:

(1) �̤Υץ���बƱ���ե�������Խ����Ƥ��뤫�⤷��ޤ���.
    ���ξ��ˤ�, �ѹ��򤷤Ƥ��ޤ���1�ĤΥե�������Ф��ưۤʤ�2�Ĥ�
    ���󥹥��󥹤��Ǥ��Ƥ��ޤ��Τ�, �������ʤ��褦�˵���Ĥ��Ƥ�������.
    ��λ���뤫, ��դ��ʤ���³���Ƥ�������.

(�ѹ�����å����뤿���, ���Υե�������̤�̾������¸�������

--- Auto-Commands ---
--- �����Х륪�ץ������ ---
--- �����륪�ץ������ ---
--- ��˥塼 ---
--- ���ץ���� ---
--- �쥸���� ---
--- ������ ---
--- ��ʸ��� ---
--- ��ʸƱ����� ---
--- ü������� ---
--- ü����� ---
gvim�ˤ�äƲ�ᤵ�����(Athena�С������):

gvim�ˤ�äƲ�ᤵ�����(GTK+�С������):

gvim�ˤ�äƲ�ᤵ�����(Motif�С������):

gvim�ˤ�äƲ�ᤵ�����(neXtaw�С������):

Big �� 
�ѥ��פ���Ǥ��ޤ���

�������¹ԤǤ��ޤ��� 
sh �������¹ԤǤ��ޤ���

fork �Ǥ��ޤ���

���ޥ�ɤ����Ǥ��ޤ���

Compiled 
�������ƥ�����ƥ����Ȥ����Ǥ��ޤ��� 
�������ƥ�����ƥ����Ȥ����Ǥ��ޤ��� 
�ɲó�ĥ�ѥå�: 
����̾���ǥ���åץե�����򸫤Ĥ��ޤ��� "
Huge �� 
�������Ź業������Ϥ������Ȥ˥ƥ����ȥե��������¸���Ƥ��ʤ�����,
�Ź業�����Ѥ������Ȥ˥ƥ����ȥե��������¸��������, �ƥ����ȥե������
Ŭ�Ѻѥѥå�: 
MS-Windows 32 �ӥå� GUI ��
MS-Windows 32 �ӥå� ���󥽡��� ��
MS-Windows 64 �ӥå� GUI ��
MS-Windows 64 �ӥå� ���󥽡��� ��
MacOS X (unix) ��
MacOS X ��
MacOS ��
���餯�ѹ�������Ƥ��ʤ���Vim������åץե�����򹹿����Ƥ��ޤ���.
���ܺ٤ʾ����: "vim -h"

�̾� �� 
OpenVMS ��
Small �� 
Tiny �� 
Vim: X �Υ��顼�򸡽Ф��ޤ���r

�ٹ�: ���ܥե����뤬����줿���ѹ�����ޤ���

�羮ʸ����̵�뤵��������ʸ���ˤ��뤿��� / ���֤��Ƥ�������
����.swp�ե�����Ϻ����Ƥ⹽���ޤ���


[����(�Х���)] ����-����� %lu-%lu, ������ %lu, �ԡ����� %lu

�ѹ�   ��    ��  �ƥ�����
�������Ź業������Ϥ��Ƥ�������.
mark   ��   �� �ե�����/�ƥ�����
�����뤬�ͤ��֤��ޤ��� 
��Ǿ��Ʊ����
����åץե������Ʊ���Ź業����Ȥ������enter�����򲡤��Ƥ�������.                              ��Vim�Ȥ���ư��                                  �ǥ⡼��ͭ��                    ���:             ��ͭ��:          [�����ޤ���]         [�ɹ���ޤ���]         [Vim�Υ���åץե�����ǤϤʤ��褦�Ǥ�]         [from Vim version 3.0]        �ե�����̾:   �ǥե���ȥե�����: "      -- �ʤ� --
      ����åץե�������⿷�����Ǥ�!
       �桼���� exrc: "      �桼���� vimrc: "    ���ξ��ˤ� ":recover" �� "vim -r     ���ˤ����Ԥʤä��Τʤ��, ����åץե����� "    ��=%ld  ���̻�=%d  ̾��=%s    �����ƥ��˥塼: "     �桼���� gvimrc: "   ���ߤΥǥ��쥯�ȥ�:
   �ǥ��쥯�ȥ�    �ʲ���̾���������:
   ���:    �ۥ���̾:       �����ƥ� vimrc: "  # pri kind tag  (�������)    ��2�桼���� exrc: "�ǥХå��ӥ��  ��ǽ�ΰ�� ͭ��(+)/̵��(-)
  ���Ĥ���ޤ���  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN  ������ۤʤ�case�ǻ��Ѥ��ޤ�!       ��ά���� $VIM: "     �����ƥ� gvimrc: " # pid    �ǡ����١���̾                      prepend �ѥ�
 (���ޤ�ޤ���) (���Ĥ���ޤ���) (������󤷤�����ս��ޤ�) (���) (���) ��������(^E/^Y) (�Ԥ�������ޤ���) (�󥵥ݡ���) (Ž���դ�) (�ִ�) (�ִ�) �������� (^E/^Y) (�ޤ��¹���) (�����ִ�)   ��2�桼���� vimrc: "   ��3�桼���� vimrc: " < "%.*s" �ɲ��� ����ӥ� �Ѵ����顼 ���ޥ�ɥ饤���䴰 (^V^N^P) ���ԡ� %d (�� %d ��) ���䴰 (^D^N^P) �����䴰 (^K^N^P) ���� �ե�����̾�䴰 (^F^N^P) �إ֥饤 ��� �ɽꥭ������䴰 (^N^P) ��������䴰 (^N^P) ������䴰 (^O^N^P) �ѥ��ѥ������䴰 (^N^P) �ִ� ȿž ���쥯�� ������ �Իظ����� SPACE/d/j: ����/�ڡ���/�� ��, b/u/k: ��, q: ��λ  �֤꽤������ (s^N^P) �����䴰 (^]^N^P) �������饹�䴰 (^T^N^P) �桼�������䴰 (^U^N^P) �ӥ��奢�� �ӥ��奢�� �� �ӥ��奢�� �� �����ִ� ��(����)�䴰 (^L^N^P) [�ѹ�����] [a] [w] ^X �⡼�� (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) �ɲ� ���Υ���ԥ塼���Ǥϻ��ѤǤ��ޤ���.
 Vim�Τ��ΥС������Ǥϻ��ѤǤ��ޤ���.
��ά���� $VIMRUNTIME: " ��»�����Ƥ��ޤ� (�ڡ������������Ǿ��ͤ򲼲�äƤ��ޤ�).
 �� %ld; ���� �ե��������
 �Ĥβ��� ���(�ȥå׹Ԥ���) �ޡ��� ��ե����뷲 (�� %ld ����) (�� 1 ����) ������ʾ� ���ޤ���
 vim [����]  with OLE ���ݡ��� ���"
    ��ä��Ф��Υ�å����������Ǥ��ޤ�.
"
    ����Ѥ����ѹ���ꥫ�С����ޤ�(":help recovery" �򻲾�).
" �����ˤ���ޤ�!# ���� viminfo �ե������ Vim %s �ˤ�ä��������ޤ���.
# ���Υե����뤬�񤫤줿���� 'encoding' ����
# �ѹ�����ݤˤϽ�ʬ��դ��Ƥ�������!

%-5s: %s%*s (����ˡ: %s)%3d  %s %s  �� %ld%<%f%h%m%=%N �ڡ���%d �ĤΥХåե���������ޤ���%d �ĤΥХåե����������ޤ���%d �ĤΥХåե����˴�����ޤ���%d �Ĥ�ñ�줬���Ĥ���ޤ��� (%s ��)%d �ĤΥե����뤬�Խ��򹵤��Ƥ��ޤ�
�Խ����٤��ե����뤬���� %d �Ĥ���ޤ���, ��λ���ޤ���?%d �� (%d ����) �Υե�������Խ����ޤ���%ld %s; %s #%ld  %s%ld ��; %ld �� �����ޤ���%ld �Ԥ� %s �� %d ��������ޤ���%ld �Ԥ� %s �� 1 ��������ޤ���%ld �� --%d%%--%ld �Ԥ��ѹ�����ޤ���%ld �Ԥ��ե��륿�������ޤ���%ld �Ԥ򥤥�ǥ�Ȥ��ޤ��� %ld �Ԥ���ư����ޤ���%ld �Ԥ�����ǥ�Ȥ���ޤ�... %ld �Ԥ���󥯤���ޤ���%ld ��, %ld �ս곺����ޤ���%ld �� �ɲä��ޤ���%ld �÷вᤷ�Ƥ��ޤ�%ld �ս��ִ����ޤ���%lld ʸ��%s Auto commands for "%s"%s �����Ǥ���ޤ���%s ���˴�����ޤ���%s �� %ld%s �ˤ��̤�����֤������ޤ���%s ���Ƴ����ޤ���%s �� #%ld ���֤��ޤ���%s �� %s ���֤��ޤ����� %s ��¾�� .aff �ե�����ǻ��Ѥ��줿�ΤȰۤʤ�ޤ�%s, �� %ld%s ���顼��� %d of %d; %d �ĥ��顼%sviminfo: %s ����: ����󥻥�(&C)�Ѳ�����(&D)�ե��륿(&F)�إ��(&H)&OK����(&O)
����󥻥�(&C)&OK
�ե������ɹ�(&L)&Ok�ɹ����Ѥdz���(&O)
�Ȥˤ����Խ�����(&E)
��褵����(&R)
������(&D)
�����(&Q)
��ߤ���(&A)�ɹ����Ѥdz���(&O)
�Ȥˤ����Խ�����(&E)
��褵����(&R)
�����(&Q)
��ߤ���(&A)�ִ�(&R)����ɥ�(&U)�Ϥ�(&Y)
������(&N)�Ϥ�(&Y)
������(&N)
����󥻥�(&C)�Ϥ�(&Y)
������(&N)
������¸(&A)
�������(&D)
����󥻥�(&C)' ��̤�ΤǤ�. ���Ԥ�Ȥ߹���ü��ϼ��ΤȤ���Ǥ�:'-nb' �����Բ�ǽ�Ǥ�: ����ѥ�����̵���ˤ���Ƥ��ޤ�
'dictionary' ���ץ���󤬶��Ǥ����ץ���� 'history' ������Ǥ�"%s" �ˤ� 'readonly' ���ץ������ꤵ��Ƥ��ޤ�.
��񤭶����򤷤ޤ���?'thesaurus' ���ץ���󤬶��Ǥ�(%d of %d)%s%s: (+%ld for BOM)(2) ���Υե�������Խ����å���󤬥���å��夷��.
(���ޤ�ޤ���) (̵��)(NFA) ���ե����� %s �򳫤��ޤ���!+			�ե�����κǸ夫��Ϥ����+<lnum>		<lnum> �Ԥ���Ϥ����+reverse		ȿž�������Ѥ��ʤ�(Ʊ��: +rv),
�⤷���ϥե����뤬»�����Ƥ��ޤ�.-               ɸ����Ϥ���ƥ����Ȥ��ɹ���--			���Τ��Ȥˤϥե�����̾����-- ��³ ---- ������...--- ���󥯥롼�ɤ��줿�ե����� --����----�Хåե��˹Ԥ�����ޤ���----cmd <command>	vimrc����ɤ����� <command> ��¹Ԥ���--cmd ����--echo-wid		������ɥ�ID��ɸ����Ϥ˽��Ϥ���--literal		�磻��ɥ����ɤ�Ÿ�����ʤ�--noplugin		�ץ饰���󥹥���ץȤ���ɤ��ʤ�--not-a-term		����Ϥ�ü��Ǥʤ��Ȥηٹ�򥹥��åפ���--remote <files>	��ǽ�ʤ��Vim�����С��� <files> ���Խ�����--remote-expr <expr>	�����С��� <expr> ��¹Ԥ��Ʒ�̤�ɽ������--remote-send <keys>	Vim�����С��� <keys> ������ƽ�λ����--remote-silent <files>  Ʊ��, �����С���̵���Ƥ�ٹ�ʸ����Ϥ��ʤ�--remote-tab[-wait][-silent] <files>  --remote�ǥե�����1�ĤˤĤ�1�ĤΥ��֥ڡ����򳫤�--remote-wait <files>	--remote�� �ե�������Խ��������Τ��Ԥ�--remote-wait-silent <files>  Ʊ��, �����С���̵���Ƥ�ٹ�ʸ����Ϥ��ʤ�--role <role>	�ᥤ�󥦥���ɥ����̤����դ����(role)����ꤹ��--serverlist		Vim�����С�̾�ΰ����ɽ�����ƽ�λ����--servername <name>	Vim�����С� <name> �����/̾�����ꤹ��--socketid <xid>	�ۤʤ�GTK widget��Vim�򳫤�--startuptime <file>	��ư�ˤ����ä����֤ξܺ٤� <file> �ؽ��Ϥ���--ttyfail		����Ϥ�ü��Ǥʤ���н�λ����--version		�С����������ɽ������λ����--windowid <HWND>	�ۤʤ�Win32 widget�������Vim�򳫤�-A			����ӥ���⡼�ɤǵ�ư����-C			Vi�ߴ��⡼��: 'compatible'-D			�ǥХå��⡼��-E			����Ex�⡼��-F			�ڥ륷����⡼�ɤǵ�ư����-H			�إ֥饤��⡼�ɤǵ�ư����-L			-r��Ʊ��-M			�ƥ����Ȥ��Խ���Ԥʤ��ʤ��褦�ˤ���-N			Vi��ߴ��⡼��: 'nocompatible-O[N]		-o��Ʊ��������ľʬ��-P <�ƤΥ����ȥ�>	Vim��ƥ��ץꥱ����������ǵ�ư����-R			�ɹ����ѥ⡼�� ("view" ��Ʊ��)-S <session>		�ǽ�Υե��������ɸ�ե����� <session> �����-T <terminal>	ü��� <terminal> ����ꤹ��-U <gvimrc>		.gvimrc������� <gvimrc> ��Ȥ�-V[N][fname]		��������� [��٥� N] [���ե�����̾ fname]-W <scriptout>	��Ϥ��������ޥ�ɤ�ե����� <scriptout> ����¸����-X			X�����С����³���ʤ�-Z			���¥⡼�� ("rvim" ��Ʊ��)-b			�Х��ʥ�⡼��-background <color>	�طʿ��� <color> ��Ȥ�(Ʊ��: -bg)-boldfont <font>	����� <font> ��Ȥ�-borderwidth <width>	��������� <width> �ˤ���(Ʊ��: -bw)-c <command>		�ǽ�Υե��������ɸ� <command> ��¹Ԥ���-c ����-d			��ʬ�⡼�� ("vidiff" ��Ʊ��)-dev <device>		I/O�� <device> ����Ѥ���-display <display>	vim����ꤷ�� X �����С����³����-display <display>	<display> ��vim��¹Ԥ���-display <display>	<display> ��vim��¹Ԥ���(Ʊ��: --display)-e			Ex�⡼�� ("ex" ��Ʊ��)-f			������ɥ��򳫤��Τ� newcli ����Ѥ��ʤ�-f or  --nofork	�ե������饦���: GUI��Ϥ��Ȥ���fork���ʤ�-font <font>		�ƥ�����ɽ���� <font> ��Ȥ�(Ʊ��: -fn)-foreground <color>	���ʿ��� <color> ��Ȥ�(Ʊ��: -fg)-g			GUI�ǵ�ư���� ("gvim" ��Ʊ��)-geometry <geom>	�����֤� <geom> ��Ȥ�(Ʊ��: -geom)-h or  --help	�إ��(���Υ�å�����)��ɽ������λ����-i <viminfo>		.viminfo������� <viminfo> ��Ȥ�-iconic		�Ǿ����������֤�vim��ư����-italicfont <for>	���λ��� <font> ��Ȥ�-l			Lisp�⡼��-m			�ѹ� (�ե�������¸��) ��Ǥ��ʤ��褦�ˤ���-menuheight <height>	��˥塼�С��ι⤵�� <height> �ˤ���(Ʊ��: -mh)-n			����åץե��������Ѥ���������-o[N]		N �ĥ�����ɥ��򳫤�(��ά��: �ե�����ˤĤ�1��)-p[N]		N �ĥ��֥ڡ����򳫤�(��ά��: �ե�����ˤĤ�1��)-q [errorfile]  �ǽ�Υ��顼���Խ�����-r			����åץե��������󤷽�λ-r (�ե�����̾)	����å��夷�����å��������-register		����gvim��OLE�Ȥ�����Ͽ����-reverse		ȿž�������Ѥ���(Ʊ��: -rv)-s			��������(�Хå�)�⡼�� ("ex" ����)-s <scriptin>	�ե����� <scriptin> ����Ρ��ޥ륳�ޥ�ɤ��ɹ���-scrollbarwidth <width>  ��������С������ <width> �ˤ���(Ʊ��: -sw)-t ����         �����������줿�Ȥ������Խ�����-u <vimrc>		.vimrc������� <vimrc> ��Ȥ�-unregister		gvim��OLE��Ͽ������-v			Vi�⡼�� ("vi" ��Ʊ��)-w <scriptout>	��Ϥ��������ޥ�ɤ�ե����� <scriptout> ���ɲä���-x			�Ź沽���줿�ե�������Խ�����-xrm <resource>	����Υ꥽��������Ѥ���-y			���������⡼�� ("evim" ��Ʊ��, �⡼��̵)%s �� %d ���ܤ� ��ʣ���� / �Ԥ�̵�뤷�ޤ���: %s%s �� %d ���ܤ� ñ��θ�� /encoding= �Ԥ�̵�뤷�ޤ���: %s1 �ĤΥХåե���������ޤ���1 �ĤΥХåե����������ޤ���1 �ĤΥХåե����˴�����ޤ���1 ʸ��1 �Ԥ� %s �� %d ��������ޤ���1 �Ԥ� %s �� 1 ��������ޤ���1 �� --%d%%--1 �Ԥ��ѹ�����ޤ���1 �Ԥ򥤥�ǥ�Ȥ��ޤ��� 1 �� �����ޤ���1 �Ԥ���ư����ޤ���1 �Ԥ���󥯤���ޤ���1 ��, 1 �ս곺����ޤ����Խ����٤��ե����뤬 1 �Ĥ���ޤ���, ��λ���ޤ���?1 �� �ɲä��ޤ���1 �ս��ִ����ޤ���  ��2�桼���� gvimrc: "  ��3�桼���� gvimrc: ": ��������˼��Ԥ��ޤ���.
: �����˼��Ԥ��ޤ���.
: �����˼��Ԥ��ޤ���. ������Ǥμ¹Ԥ��ߤƤ��ޤ�
; ��� <%s>%s%s  %d,  16�ʿ� %02x,  8�ʿ� %03o<�����ޤ���> <��>> %d, 16�ʿ� %04x, 8�ʿ� %o> %d, 16�ʿ� %08x, 8�ʿ� %o??? �������� ???END �ޤǤιԤ��˲�����Ƥ���褦�Ǥ�??? �������� ???END �ޤǤιԤ�����������줿�褦�Ǥ�???�֥�å�������ޤ���???�֥�å������Ǥ�???END???�Կ�ְ�äƤ��ޤ�???�Ԥ������Ƥ��ޤ�???¿���ιԤ������Ƥ��ޤ�ANCHOR_BUF_SIZE �������᤮�ޤ�.���ǡ����١������ɲ�cscope�ǡ����١��� %s ���ɲ�%s �� %d ���ܤ� affix �� BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST �˻��Ѥ��Ƥ�������: %s%s (%d ����) �� affix ̾��Ĺ�᤮�ޤ�: %s�������Ƥ�cscope�ǡ����١�����ꥻ�åȤ��ޤ����ƤΥ��󥯥롼�ɤ��줿�ե����뤬���Ĥ���ޤ������˰��ֿ������ѹ��Ǥ����˰��ָŤ��ѹ��Ǥ����˥��֥ڡ�����1�Ĥ�������ޤ������˥�����ɥ���1�Ĥ�������ޤ����ɲåե������������ޤ�����������ץȥե������Ƥӳ������Ȥ��ޤ���: "�Ϥ������դ��ޤ��ϰϤ����ꤵ��ޤ���, ��ؤ��ޤ���?Vim����Ͽ�桼�����ˤʤäƤ�������!�ӡ���!ľ���� %ld �Х�����SAL�� �� SOFO�� �� %s ��ξ����ꤵ��Ƥ��ޤ��֥졼���ݥ���� "%s%s" �� %ld%s �� %d ���ܤ� ���ϲ���Ƥ��ޤ�: %sSYLLABLE �����ꤵ��ʤ� COMPOUNDSYLMAX�¹ԤΤ���˥������ƽФ���: "%s"�Ѵ���ɬ�פʰ��ե����뤬���Ĥ���ޤ�������󥻥����Ǥ��ޤ��� �¹ԤǤ��ޤ��� $VIMRUNTIME/rgb.txt�򳫤��ޤ���NIL�򳫤��ޤ���:
�ե����� "%s" �򳫤��ޤ����ɹ��ѤȤ��Ƴ����ޤ���������ץȽ����Ѥ򳫤��ޤ����ǥ��쥯�ȥ�ϼ���ޤ���: "%s"'undodir'�Υǥ��쥯�ȥ�˥���ɥ��ե������񤭹���ޤ���"%.*s" �򼡤��Ѵ�:���֥ڡ������Ĥ����� %s / %s; �� %ld of %ld; ñ�� %lld / %lld; �Х��� %lld / %lld�� %s / %s; �� %ld / %ld; ñ�� %lld / %lld; ʸ�� %lld / %lld; �Х��� %lld of %lld���ޥ�ɥ饤������ѥ���: ����ѥ���: �Ρ��� %d ��(�� %d ����) �򰵽̤��ޤ���; �Ĥ� %d (%d%%)ñ��ĥ꡼�򰵽̤��Ƥ��ޤ�...%s (%d ����) ��ñ����Ѵ��Ǥ��ޤ���Ǥ���: %s%s ����Ѵ��ϥ��ݡ��Ȥ���Ƥ��ޤ���%s ��μ����Ѵ��ϥ��ݡ��Ȥ���Ƥ��ޤ���: %s ���� %s ��'charconvert' �ˤ���Ѵ������Ԥ��ޤ���DLL����ؿ�ݥ��󥿤����Ǥ��ޤ���Ǥ����������ƥ�����ƥ����� %s �� %s �������Ǥ��ޤ���. �����ޤ�!vim32.dll ����ɤǤ��ޤ���Ǥ���NFA����ɽ�����󥸥��ѤΥ��ե��������ѤȤ��Ƴ����ޤ���NFA����ɽ�����󥸥��ѤΥ��ե��������ѤȤ��Ƴ����ޤ��󡣥���ɸ����Ϥ˽��Ϥ��ޤ����������ƥ�����ƥ����� %s �� %s �����Ǥ��ޤ���Cscope ����: %s���ߤ� %s����: "%s"�ǥХå���%s �� %d ���ܤ� PFX ���ܤθ�� COMPOUNDFORBIDFLAG �����ϸ�ä���̤���뤳�Ȥ�����ޤ�%s �� %d ���ܤ� PFX ���ܤθ�� COMPOUNDPERMITFLAG �����ϸ�ä���̤���뤳�Ȥ�����ޤ�Vim�Ǻ�ʬ��ɽ������%s �� %d ���ܤ� Ϣ³ affix �֥�å��Υե饰��ȹ礻�˰㤤������ޤ�: %s����ǥ��쥯�ȥ��ǥ��쥯�ȥ�	*.nothing
����˾�񤭤��ޤ����¹Ԥ��ޤ���!�ꥹ�ȷ����ͤ�2�İʾ�� ; �����Ф���ޤ�����%s �� %d ���ܤ� ��ʣ���� /encoding= �Ԥ�̵�뤷�ޤ���: %s%s �� %d ���ܤ� ��ʣ���� /regions= �Ԥ�̵�뤷�ޤ���: %s%s �� %d ���ܤ� ��ʣ���� affix �򸡽Ф��ޤ���: %s%s �� %d ���ܤ� MAP �˽�ʣ����ʸ��������ޤ���ʣ�����ե������̾: %s%s �� %d ���ܤ� ��ʣñ�줬���Ĥ���ޤ���: %sE100: ��ʬ�⡼�ɤǤ���¾�ΥХåե��Ϥ���ޤ���E101: ��ʬ�⡼�ɤΥХåե���2�İʾ夢��Τǡ��ɤ��Ȥ�������Ǥ��ޤ���E102: �Хåե� "%s" �����Ĥ���ޤ���E103: �Хåե� "%s" �Ϻ�ʬ�⡼�ɤǤϤ���ޤ���E104: ����Escape�ϻ��ѤǤ��ޤ���E105: :source �Ǽ���ե�����ʳ��Ǥ� :loadkeymap ��Ȥ��ޤ���E107: ���å� '(' ������ޤ���: %sE108: �����ѿ�Ϥ���ޤ���: "%s"E109: '?' �θ�� ':' ������ޤ���E10: \ �θ�� / �� ? �� & �Ǥʤ���Фʤ�ޤ���E110: ')' �����Ĥ���ޤ���E111: ']' �����Ĥ���ޤ���E112: ���ץ����̾������ޤ���: %sE113: ̤�ΤΥ��ץ����Ǥ�: %sE114: ������ (") ������ޤ���: %sE115: ������ (') ������ޤ���: %sE116: �ؿ��̵���ʰ���Ǥ�: %sE117: ̤�Τδؿ�Ǥ�: %sE118: �ؿ�ΰ���¿�᤮�ޤ�: %sE119: �ؿ�ΰ���­��ޤ���: %sE11: ���ޥ�ɥ饤��Ǥ�̵���Ǥ�; <CR>�Ǽ¹�, CTRL-C�Ǥ���E120: ������ץȰʳ���<SID>���Ȥ��ޤ���: %sE121: ̤�����ѿ�Ǥ�: %sE122: �ؿ� %s �����ѤǤ�, ��������ˤ� ! ���ɲä��Ƥ�������E123: ̤���δؿ�Ǥ�: %sE124: '(' ������ޤ���: %sE125: ����ʰ���Ǥ�: %sE126: :endfunction ������ޤ���E127: �ؿ� %s ������Ǥ��ޤ���: ������Ǥ�E128: �ؿ�̾����ʸ���� "s:" �ǻϤޤ�ʤ���Фʤ�ޤ���: %sE129: �ؿ�̾���׵ᤵ��ޤ�E12: ���ߤΥǥ��쥯�ȥ�䥿�������Ǥ�exrc/vimrc�Υ��ޥ�ɤϵ��Ĥ���ޤ���E130: ̤�Τδؿ�Ǥ�: %sE131: �ؿ� %s ����Ǥ��ޤ���: ������Ǥ�E132: �ؿ�ƽФ����ҿ� 'maxfuncdepth' ��Ķ���ޤ���E133: �ؿ�� :return ������ޤ���E134: �Ԥ򤽤켫�Ȥˤϰ�ư�Ǥ��ޤ���E135: *�ե��륿* autocommand�ϸ��ߤΥХåե����ѹ����ƤϤ����ޤ���E136: viminfo: ���顼��¿�᤮��Τ�, �ʹߤϥ����åפ��ޤ�E137: viminfo�ե����뤬��ߤǤ��ޤ���: %sE138: viminfo�ե����� %s ����¸�Ǥ��ޤ���!E139: Ʊ��̾���Υե����뤬¾�ΥХåե����ɹ��ޤ�Ƥ��ޤ�E13: �ե����뤬¸�ߤ��ޤ� (! ���ɲäǾ��)E140: �Хåե�����ʬŪ����¸����ˤ� ! ��ȤäƤ�������E141: �Хåե� %ld �ˤ�̾��������ޤ���E142: �ե��������¸����ޤ���Ǥ���: 'write' ���ץ����ˤ��̵���Ǥ�E143: autocommand��ͽ�������������Хåե� %s ������ޤ���E144: ��ǤϤʤ����� :z ���Ϥ���ޤ���E145: rvim�Ǥϥ����륳�ޥ�ɤ�Ȥ��ޤ���E146: ����ɽ����ʸ���Ƕ�ڤ뤳�Ȥ��Ǥ��ޤ���E147: :global ���ϰ��դ��ǺƵ�Ū�ˤϻȤ��ޤ���E148: global���ޥ�ɤ����ɽ�������ꤵ��Ƥ��ޤ���E149: ��ǰ�Ǥ��� %s �ˤϥإ�פ�����ޤ���E14: ̵���ʥ��ɥ쥹�Ǥ�E150: �ǥ��쥯�ȥ�ǤϤ���ޤ���: %sE151: �ޥå��Ϥ���ޤ���: %sE152: ����Ѥ� %s �򳫤��ޤ���E153: �ɹ��Ѥ� %s �򳫤��ޤ���E154: ���� "%s" ���ե����� %s/%s �˽�ʣ���Ƥ��ޤ�E155: ̤�Τ�sign�Ǥ�: %sE156: sign̾������ޤ���E157: ̵����sign���̻ҤǤ�: %ldE158: ̵���ʥХåե�̾�Ǥ�: %sE159: sign���ֹ椬����ޤ���E15: ̵���ʼ��Ǥ�: %sE160: ̤�Τ�sign���ޥ�ɤǤ�: %sE161: �֥졼���ݥ���Ȥ����Ĥ���ޤ���: %sE162: �Хåե� "%s" ���ѹ�����¸����Ƥ��ޤ���E163: �Խ�����ե������1�Ĥ�������ޤ���E164: �ǽ�Υե��������ˤϹԤ��ޤ���E165: �Ǹ�Υե������ۤ��Ƹ�ˤϹԤ��ޤ���E166: ��󥯤��줿�ե�����˽��ޤ���E167: :scriptencoding ����������ץȰʳ��ǻ��Ѥ���ޤ���E168: :finish ����������ץȰʳ��ǻ��Ѥ���ޤ���E169: ���ޥ�ɤ��Ƶ�Ū�᤮�ޤ�E16: ̵�����ϰϤǤ�E170: :endfor ������ޤ���E170: :endwhile ������ޤ���E171: :endif ������ޤ���E172: �ե�����̾�� 1 �Ĥˤ��Ƥ�������E173: �Խ����٤��ե����뤬���� %ld �Ĥ���ޤ�E173: �Խ����٤��ե����뤬 1 �Ĥ���ޤ�E174: ���ޥ�ɤ����ˤ���ޤ�: ��������ˤ� ! ���ɲä��Ƥ�������E175: °����������Ƥ��ޤ���E176: ����ο�̵���Ǥ�E177: ������Ȥ�2�Ż��ꤹ�뤳�ȤϤǤ��ޤ���E178: ������Ȥξ�ά�ͤ�̵���Ǥ�E179: -addr �ˤϰ���ɬ�פǤ�E179: -complete �ˤϰ���ɬ�פǤ�E17: "%s" �ϥǥ��쥯�ȥ�Ǥ�E180: ̵���ʥ��ɥ쥹�������ͤǤ�: %sE180: ̵�����䴰����Ǥ�: %sE181: ̵����°���Ǥ�: %sE182: ̵���ʥ��ޥ��̾�Ǥ�E183: �桼���������ޥ�ɤϱ���ʸ���ǻϤޤ�ʤ���Фʤ�ޤ���E184: ���Υ桼���������ޥ�ɤϤ���ޤ���: %sE185: ���顼�������� '%s' �����Ĥ���ޤ���E186: ���Υǥ��쥯�ȥ�Ϥ���ޤ���E187: ̤��E188: ���Υץ�åȥۡ���ˤϥ�����ɥ����֤μ����ǽ�ϼ������Ƥ��ޤ���E189: "%s" ��¸�ߤ��ޤ� (��񤹤�ˤ� ! ���ɲä��Ƥ�������)E18: ͽ������ʸ���� :let �ˤ���ޤ���E190: "%s" �����ѤȤ��Ƴ����ޤ���E191: �����1ʸ���αѻ��������� (' �� `) �Ǥʤ���Ф����ޤ���E192: :normal �κƵ���Ѥ������ʤ�᤮�ޤ���E193: �ؿ�γ��� :endfunction ������ޤ���E194: '#'���֤���������ե������̾��������ޤ���E195: viminfo�ե�������ɹ��ѤȤ��Ƴ����ޤ���E196: ���ΥС������˹��Ϥ���ޤ���E197: ����� "%s" �����Ǥ��ޤ���E198: cmd_pchar �����ޥ��Ĺ��Ķ���ޤ���E199: �����ƥ��֤ʥ�����ɥ����Хåե���������ޤ���E19: �ޡ�����̵���ʹ��ֹ椬���ꤵ��Ƥ��ޤ���E200: *ReadPre autocommand ���ե�������ɹ��ԲĤˤ��ޤ���E201: *ReadPre autocommand �ϸ��ߤΥХåե����Ѥ����ޤ���E202: �Ѵ����ե�������ɹ��ԲĤˤ��ޤ���E203: ��¸����Хåե���autocommand������������ޤ���E204: autocommand��ͽ�������ˡ�ǹԿ���ѹ����ޤ���E205: patchmode: ���ܥե��������¸�Ǥ��ޤ���E206: patchmode: ���θ��ܥե������touch�Ǥ��ޤ���E207: �Хå����åץե������ä��ޤ���E208: "%s" ������Υ��顼�Ǥ�E209: "%s" ���Ĥ����˥��顼�Ǥ�E20: �ޡ�������ꤵ��Ƥ��ޤ���E210: "%s" ���ɹ���Υ��顼�Ǥ�E211: �ե����� "%s" �ϴ���¸�ߤ��ޤ���E212: ����Ѥ˥ե�����򳫤��ޤ���E213: �Ѵ��Ǥ��ޤ��� (! ���ɲä��Ѵ���������¸)E214: ��¸�Ѱ��ե����뤬���Ĥ���ޤ���E215: * �θ�������ʸ��������ޤ���: %sE216: ���Τ褦�ʥ��٥�ȤϤ���ޤ���: %sE216: ���Τ褦�ʥ��롼�פ⤷���ϥ��٥�ȤϤ���ޤ���: %sE217: ���ƤΥ��٥�Ȥ��Ф��Ƥ�autocommand�ϼ¹ԤǤ��ޤ���E218: autocommand�����Ҥ����᤮�ޤ�E219: { ������ޤ���.E21: 'modifiable' �����դʤΤ�, �ѹ��Ǥ��ޤ���E220: } ������ޤ���.E222: �ɹ��Хåե����ɲ�E223: �Ƶ�Ū�ޥåԥ�E224: %s �Ȥ��������Х�û����Ϥϴ���¸�ߤ��ޤ�E225: %s �Ȥ��������Х�ޥåԥ󥰤ϴ���¸�ߤ��ޤ�E226: %s �Ȥ���û����Ϥϴ���¸�ߤ��ޤ�E227: %s �Ȥ����ޥåԥ󥰤ϴ���¸�ߤ��ޤ�E228: makemap: ����ʥ⡼��E229: GUI�򳫻ϤǤ��ޤ���E22: ������ץȤ����Ҥ����᤮�ޤ�E230: "%s"�����ɹ��ळ�Ȥ��Ǥ��ޤ���E231: 'guifontwide' ��̵���Ǥ�E232: ��å������ȥ�����Хå��Τ��� BalloonEval ����Ǥ��ޤ���E233: �ǥ����ץ쥤�򳫤��ޤ���E234: ̤�ΤΥե���ȥ��å�: %sE235: ̤�ΤΥե����: %sE236: �ե���� "%s" �ϸ�����ǤϤ���ޤ���E237: �ץ�󥿤����˼��Ԥ��ޤ���E238: �������顼: %sE239: ̵����sign�Υƥ����ȤǤ�: %sE23: ��ե�����Ϥ���ޤ���E240: X �����С��ؤ��³������ޤ���E241: %s ����뤳�Ȥ��Ǥ��ޤ���E243: ����ϥ��ݡ��Ȥ���ޤ���: "-%s"; OLE�Ǥ���Ѥ��Ƥ�������.E244: ʸ�����å�̾ "%s" ������Ǥ� (�ե����̾ "%s")E244: �ʼ�̾ "%s" ������Ǥ� (�ե����̾ "%s")E245: '%c' �������ʸ���Ǥ� (�ե����̾ "%s")E246: autocommand �� FileChangedShell ���Хåե�������ޤ���E247: %s �Ȥ���̾������Ͽ���줿�����С��Ϥ���ޤ���E248: ��Ū�Υץ����ؤΥ��ޥ������˼��Ԥ��ޤ���E24: ���Τ褦��û����ϤϤ���ޤ���E250: �ʲ���ʸ�����åȤΥե���Ȥ�����ޤ��� %s:E251: VIM ���Τ���Ͽ�ץ�ѥƥ�������Ǥ�. �õ�ޤ���!E252: �ե���ȥ��å�̾: %sE253: �ե���ȥ��å�̾: %sE254: %s �ο�������Ƥ��ޤ���E255: sign �Υǡ������ɹ���ޤ���Ǥ���E256: �ϥ󥰥륪���ȥޥȥ󥨥顼E257: cstag: ���������Ĥ���ޤ���E258: ���饤����Ȥ���뤳�Ȥ��Ǥ��ޤ���E259: cscope�����꡼ %s of %s �˳��������ޤ���Ǥ���E25: GUI�ϻ����Բ�ǽ�Ǥ�: ����ѥ�����̵���ˤ���Ƥ��ޤ�E261: cscope��³ %s �����Ĥ���ޤ���Ǥ���E262: cscope���³ %ld ���ɹ�����Υ��顼�Ǥ�E263: ���Υ��ޥ�ɤ�̵���Ǥ�,�����ʤ���: Python�饤�֥�����ɤǤ��ޤ���Ǥ���.E264: Python: I/O���֥������Ȥν������顼E265: $_ ��ʸ����Υ��󥹥��󥹤Ǥʤ���Фʤ�ޤ���E266: ���Υ��ޥ�ɤ�̵���Ǥ�,�����ʤ���: Ruby�饤�֥�����ɤǤ��ޤ���Ǥ���.E267: ͽ������ return �Ǥ�E268: ͽ������ next �Ǥ�E269: ͽ������ break �Ǥ�E26: �إ֥饤��ϻ����Բ�ǽ�Ǥ�: ����ѥ�����̵���ˤ���Ƥ��ޤ�
E270: ͽ������ redo �Ǥ�E271: rescue �γ��� retry �Ǥ�E272: ��갷���ʤ��ä��㳰������ޤ�E273: ̤�Τ�longjmp����: %dE277: �����С��α��������ޤ���E27: �ڥ륷����ϻ����Բ�ǽ�Ǥ�: ����ѥ�����̵���ˤ���Ƥ��ޤ�
E280: TCL ��̿Ū���顼: reflist ����!? vim-dev@vim.org ����𤷤Ƥ�������E282: "%s"�����ɹ��ळ�Ȥ��Ǥ��ޤ���E283: "%s" �˳������ޡ���������ޤ���E284: IC���ͤ����Ǥ��ޤ���E285: ����ץåȥ���ƥ����Ȥκ��˼��Ԥ��ޤ���E286: ����ץåȥ᥽�åɤΥ����ץ�˼��Ԥ��ޤ���E287: �ٹ�: IM���˲�������Хå������Ǥ��ޤ���Ǥ���E288: ����ץåȥ᥽�åɤϤɤ�ʥ�������⥵�ݡ��Ȥ��ޤ���E289: ����ץåȥ᥽�åɤ� my preedit type �򥵥ݡ��Ȥ��ޤ���E28: ���Τ褦��̾�Υϥ��饤�ȥ��롼�פϤ���ޤ���: %sE293: �֥�å�����å�����Ƥ��ޤ���E294: ����åץե������ɹ����˥��������顼�Ǥ�E295: ����åץե�������ɹ��ߥ��顼�Ǥ�E296: ����åץե������߻��˥��������顼�Ǥ�E297: ����åץե�����ν�ߥ��顼�Ǥ�E298: �֥�å� 0 �����Ǥ��ޤ���?E298: �֥�å� 1 �����Ǥ��ޤ���?E298: �֥�å� 2 �����Ǥ��ޤ���?E299: ����ɥܥå����Ǥ� Safe �⥸�塼�����Ѥ��ʤ�Perl������ץȤ϶ؤ����Ƥ��ޤ�E29: �ޤ��ƥ����Ȥ��������Ƥ��ޤ���E300: ����åץե����뤬����¸�ߤ��ޤ� (symlink�ˤ�빶��?)E301: ���ä�, ����åץե����뤬�����ޤ���!!!E302: ����åץե������̾�����Ѥ����ޤ���E303: "%s" �Υ���åץե�����򳫤��ʤ��Τǥꥫ�Х���Բ�ǽ�Ǥ�E304: ml_upd_block0(): �֥�å� 0 �����Ǥ��ޤ���Ǥ���??E305: %s �ˤϥ���åץե����뤬���Ĥ���ޤ���E306: %s �򳫤��ޤ���E307: %s ��Vim�Υ���åץե�����ǤϤʤ��褦�Ǥ�E308: �ٹ�: ���ܥե����뤬�ѹ�����Ƥ��ޤ�E309: %s ����֥�å� 1 ���ɹ���ޤ���E30: ����˥��ޥ�ɹԤ�����ޤ���E310: �֥�å� 1 ��ID���ְ�äƤ��ޤ�(%s ��.swp�ե�����Ǥʤ�?)E311: �ꥫ�Х꤬���ޤ�ޤ���E312: �ꥫ�Х�κ���˥��顼�����Ф���ޤ���; ???�ǻϤޤ�Ԥ򻲾Ȥ��Ƥ�������E313: ����åץե����뤬̵���Τǰݻ��Ǥ��ޤ���E314: �ݻ��˼��Ԥ��ޤ���E315: ml_get: ̵����lnum�Ǥ�: %ldE316: ml_get: �� %ld �򸫤Ĥ����ޤ���E317: �ݥ��󥿥֥�å���ID���ְ�äƤ��ޤ�E317: �ݥ��󥿥֥�å���ID���ְ�äƤ��ޤ� 2E317: �ݥ��󥿥֥�å���ID���ְ�äƤ��ޤ� 3E317: �ݥ��󥿥֥�å���ID���ְ�äƤ��ޤ� 4E318: �������줿�֥�å���¿�᤮�뤫��?E319: ���ΥС������ǤϤ��Υ��ޥ�ɤ���ѤǤ��ޤ���, �����ʤ���E31: ���Τ褦�ʥޥåԥ󥰤Ϥ���ޤ���E320: �� %ld �����Ĥ���ޤ���E321: "%s" �ϥ���ɤǤ��ޤ���Ǥ���E322: ���ֹ椬�ϰϳ��Ǥ�: %ld Ķ���Ƥ��ޤ�E323: �֥�å� %ld �ιԥ�����Ȥ��ְ�äƤ��ޤ�E324: PostScript�����ѤΥե�����򳫤��ޤ���E325: ���E326: ����åץե����뤬¿��Ĥ���ޤ���E327: ��˥塼�����ƥ�Υѥ�����ʬ�����֥�˥塼�ǤϤ���ޤ���E328: ��˥塼��¾�Υ⡼�ɤˤ�������ޤ�E329: "%s" �Ȥ�����˥塼�Ϥ���ޤ���E32: �ե�����̾������ޤ���E330: ��˥塼�ѥ��ϥ��֥�˥塼�����٤��ǤϤ���ޤ���E331: ��˥塼�С��ˤ�ľ�ܥ�˥塼�����ƥ���ɲäǤ��ޤ���E332: ��ڤ�ϥ�˥塼�ѥ��ΰ���ǤϤ���ޤ���E333: ��˥塼�ѥ��ϥ�˥塼�����ƥ����ʤ���Ф����ޤ���E334: ��˥塼�����Ĥ���ޤ���: %sE335: %s �ˤϥ�˥塼��������Ƥ��ޤ���E336: ��˥塼�ѥ��ϥ��֥�˥塼����ʤ���Ф����ޤ���E337: ��˥塼�����Ĥ���ޤ��� - ��˥塼̾���ǧ���Ƥ�������E338: ���󥽡���⡼�ɤǤϥե�����֥饦����Ȥ��ޤ���, �����ʤ���E339: �ѥ�����Ĺ�᤮�ޤ�E33: ����ɽ���ִ����ޤ��¹Ԥ���Ƥ��ޤ���E340: �Ԥ�Ĺ���ʤ�᤮�ޤ���E341: ����顼: lalloc(%ld,)E342: ���꤬­��ޤ���!  (%lu �Х��Ȥ����׵�)E343: ̵���ʥѥ��Ǥ�: '**[����]' ��path�κǸ夫 '%s' ��³���Ƥʤ��Ȥ����ޤ���.E344: cdpath�ˤ� "%s" �Ȥ����ե����뤬����ޤ���E345: path�ˤ� "%s" �Ȥ����ե����뤬����ޤ���E346: cdpath�ˤϤ���ʾ� "%s" �Ȥ����ե����뤬����ޤ���E347: �ѥ��ˤϤ���ʾ� "%s" �Ȥ����ե����뤬����ޤ���E348: ��������ΰ��֤ˤ�ʸ���󤬤���ޤ���E349: ��������ΰ��֤ˤϼ��̻Ҥ�����ޤ���E34: ���ޥ�ɤ��ޤ��¹Ԥ���Ƥ��ޤ���E350: ���ߤ� 'foldmethod' �Ǥ�޾��ߤ���Ǥ��ޤ���E351: ���ߤ� 'foldmethod' �Ǥ�޾��ߤ���Ǥ��ޤ���E352: ���ߤ� 'foldmethod' �Ǥ�޾��ߤ�õ�Ǥ��ޤ���E353: �쥸���� %s �ˤϲ��⤢��ޤ���E354: ̵���ʥ쥸����̾: '%s'E355: ̤�ΤΥ��ץ����Ǥ�: %sE356: get_varp ���顼E357: 'langmap': %s ���б�����ʸ��������ޤ���E358: 'langmap': ���ߥ����θ��;ʬ��ʸ��������ޤ�: %sE359: �����꡼��⡼�ɤ����ˤ��б����Ƥ��ޤ���E35: ����ɽ�����ޤ��¹Ԥ���Ƥ��ޤ���E360: -f ���ץ����ǥ������¹ԤǤ��ޤ���E363: �ѥ����� 'maxmempattern' �ʾ�Υ������Ѥ��ޤ�E364: "%s"() �Υ饤�֥��ƽФ˼��Ԥ��ޤ���E365: PostScript�ե�����ΰ����˼��Ԥ��ޤ���E367: ���Υ��롼�פϤ���ޤ���: "%s"E369: ̵���ʹ��ܤǤ�: %s%%[]E36: ������ɥ��˽�ʬ�ʹ⤵�⤷�����������ޤ���E370: �饤�֥�� %s ����ɤǤ��ޤ���Ǥ���E371: ���ޥ�ɤ�����ޤ���E372: �ե����ޥå�ʸ����� %%%c ��¿�᤮�ޤ�E373: �ե����ޥå�ʸ�����ͽ������ %%%c ������ޤ���E374: �ե����ޥå�ʸ����� ] ������ޤ���E375: �ե����ޥå�ʸ����Ǥ� %%%c �ϥ��ݡ��Ȥ���ޤ���E376: �ե����ޥå�ʸ�������֤�̵���� %%%c ������ޤ�E377: �ե����ޥå�ʸ�����̵���� %%%c ������ޤ�E378: 'errorformat' �˥ѥ����󤬻��ꤵ��Ƥ��ޤ���E379: �ǥ��쥯�ȥ�̾��̵�������Ǥ�E37: �Ǹ���ѹ�����¸����Ƥ��ޤ���E37: �Ǹ���ѹ�����¸����Ƥ��ޤ��� (! ���ɲä��ѹ����˴�)E380: quickfix �����å������Ǥ�E381: quickfix �����å����Ƭ�Ǥ�E382: 'buftype' ���ץ������ꤵ��Ƥ���Τǽ�ߤޤ���E383: ̵���ʸ���ʸ����Ǥ�: %sE384: ��ޤǸ������ޤ���������ս�Ϥ���ޤ���: %sE385: ���ޤǸ������ޤ���������ս�Ϥ���ޤ���: %sE386: ';' �Τ��Ȥˤ� '?' �� '/' �����Ԥ���Ƥ���E387: ���߹Ԥ˳��������ޤ�E388: ���򸫤Ĥ����ޤ���E389: �ѥ�����򸫤Ĥ����ޤ���E38: ������Ǥ�E390: ����ʰ���Ǥ�: %sE391: ���Τ褦�ʹ�ʸ���饹���Ϥ���ޤ���: %sE392: ���Τ褦�ʹ�ʸ���饹���Ϥ���ޤ���: %sE393: �����Ǥϥ��롼�פϵ��Ĥ���ޤ���E394: %s ���ϰ���Ǥ����Ĥ���ޤ���E395: ���ξ��Ǥϰ���contains�ϵ��Ĥ���Ƥ��ޤ���E397: �ե�����̾��ɬ�פǤ�E398: '=' ������ޤ���: %sE399: ����­��ޤ���: ��ʸ�ϰ� %sE39: ���ͤ��׵ᤵ��Ƥ��ޤ�E400: ���饹�������ꤵ��Ƥ��ޤ���E401: �ѥ������ڤ꤬���Ĥ���ޤ���: %sE402: �ѥ�����Τ��Ȥ˥��ߤ�����ޤ�: %sE403: ��ʸƱ��: Ϣ³�ԥѥ�����2�ٻ��ꤵ��ޤ���E404: ����ʰ���Ǥ�: %sE405: ��椬����ޤ���: %sE406: ���ΰ���: %sE407: %s �ϥ����Ǥϵ��Ĥ���Ƥ��ޤ���E408: %s �����ƥꥹ�Ȥ��Ƭ�Ǥʤ���Фʤ�ʤ�E409: ̤�ΤΥ��롼��̾: %sE40: ���顼�ե����� %s �򳫤��ޤ���E410: ̵���� :syntax �Υ��֥��ޥ��: %sE411: �ϥ��饤�ȥ��롼�פ����Ĥ���ޤ���: %sE412: �����ʬ�ǤϤʤ�: ":highlight link %s"E413: ����¿�᤮�ޤ�: ":highlight link %s"E414: ���롼�פ����ꤵ��Ƥ���Τǥϥ��饤�ȥ�󥯤�̵�뤵��ޤ�E415: ͽ���������Ǥ�: %sE416: ��椬����ޤ���: %sE417: �������ޤ���: %sE418: ������ͤǤ�: %sE419: ̤�Τ���ʿ��Ǥ�E41: ���꤬�Ԥ��̤Ƥޤ���!E420: ̤�Τ��طʿ��Ǥ�E421: ���顼̾���ֹ��ǧ���Ǥ��ޤ���: %sE422: ��ü�����ɤ�Ĺ�᤮�ޤ�: %sE423: ����ʰ���Ǥ�: %sE424: ¿���ΰۤʤ�ϥ��饤��°�����Ȥ��᤮�Ƥ��ޤ�E425: �ǽ�γ��������ۤ�����뤳�ȤϤǤ��ޤ���E426: ���������Ĥ���ޤ���: %sE427: ���������1�Ĥ�����������ޤ���E428: �Ǹ�γ��������ۤ��ƿʤळ�ȤϤǤ��ޤ���E429: �ե����� "%s" ������ޤ���E42: ���顼�Ϥ���ޤ���E430: �����ե�����Υѥ��� %s ��ڤ�ΤƤ��ޤ���
E431: �����ե����� "%s" �Υե����ޥåȤ˥��顼������ޤ�E432: �����ե����뤬�����Ȥ���Ƥ��ޤ���: %sE433: �����ե����뤬����ޤ���E434: �����ѥ�����򸫤Ĥ����ޤ���E435: �����򸫤Ĥ����ʤ��Τ�ñ�˿�¬���ޤ�!E436: termcap�� "%s" �Υ���ȥ꤬����ޤ���E437: ü��� "cm" ��ǽ��ɬ�פǤ�E438: u_undo: ���ֹ椬�ְ�äƤ��ޤ�E439: ����ɥ��ꥹ�Ȥ�����Ƥ��ޤ�E43: ���ʸ������»���Ƥ��ޤ�E440: ����ɥ��Ԥ�����ޤ���E441: �ץ�ӥ塼������ɥ�������ޤ���E442: ����ȱ�����Ʊ����ʬ�䤹�뤳�ȤϤǤ��ޤ���E443: ¾�Υ�����ɥ���ʬ�䤵��Ƥ����ˤϽ��Ǥ��ޤ���E444: �Ǹ�Υ�����ɥ����Ĥ��뤳�ȤϤǤ��ޤ���E445: ¾�Υ�����ɥ��ˤ��ѹ�������ޤ�E446: ��������β��˥ե�����̾������ޤ���E447: path�ˤ� "%s" �Ȥ����ե����뤬����ޤ���E448: �饤�֥��δؿ� %s ����ɤǤ��ޤ���Ǥ���E449: ̵���ʼ�������ޤ���E44: ��������ɽ���ץ����Ǥ�E455: PostScript���ϥե�����ν�ߥ��顼�Ǥ�E456: PostScript�Υ꥽�����ե����� "%s.ps" �����Ĥ���ޤ���E456: PostScript�Υ꥽�����ե����� "cidfont.ps" �����Ĥ���ޤ���E456: PostScript�Υ꥽�����ե����� "prolog.ps" �����Ĥ���ޤ���E456: �ե����� "%s" �򳫤��ޤ���E457: PostScript�Υ꥽�����ե����� "%s" ���ɹ���ޤ���E459: ���Υǥ��쥯�ȥ�����ޤ���E45: 'readonly' ���ץ������ꤵ��Ƥ��ޤ� (! ���ɲäǾ��)E460: �꥽�����ե������������뤫�⤷��ޤ��� (! ���ɲäǶ���)E461: ������ѿ�̾�Ǥ�: %sE462: "%s" �����ɤ��������Ǥ��ޤ���Ǥ���E463: �ΰ褬�ݸ��Ƥ���Τ�, �ѹ��Ǥ��ޤ���E464: �桼���������ޥ�ɤΤ����ޤ��ʻ��ѤǤ�E465: :winsize �ˤ�2�Ĥο��ͤΰ���ɬ�פǤ�E466: :winpos �ˤ�2�Ĥο��ͤΰ���ɬ�פǤ�E467: ���������䴰�ˤϰ���Ȥ��ƴؿ�ɬ�פǤ�E468: �䴰����ϥ��������䴰�Ǥ������ѤǤ��ޤ���E469: ̵���� cscopequickfix �ե饰 %c �� %c �Ǥ�E46: �ɼ�����ѿ� "%s" �ˤ��ͤ����Ǥ��ޤ���E470: ���ޥ�ɤ����Ǥ���ޤ���E471: ����ɬ�פǤ�E472: ���ޥ�ɤ����Ԥ��ޤ���E473: ����顼�Ǥ�E474: ̵���ʰ���Ǥ�E475: ̵���ʰ���Ǥ�: %sE476: ̵���ʥ��ޥ�ɤǤ�E477: ! �ϵ��Ĥ���Ƥ��ޤ���E478: ���Ƥʤ��Ǥ�������E479: ����Ϥ���ޤ���E47: ���顼�ե�������ɹ���˥��顼��ȯ�����ޤ���E480: ����Ϥ���ޤ���: %sE481: �ϰϻ���ϵ��Ĥ���Ƥ��ޤ���E482: �ե����� %s ����Ǥ��ޤ���E483: ���ե������̾�������Ǥ��ޤ���E484: �ե����� "%s" �򳫤��ޤ���E485: �ե����� %s ���ɹ���ޤ���E486: �ѥ�����ϸ��Ĥ���ޤ���Ǥ���: %sE487: ���������ͤǤʤ���Фʤ�ޤ���E488: ;ʬ��ʸ�������ˤ���ޤ�E48: ����ɥܥå����Ǥϵ�����ޤ���E490: �޾��ߤ�����ޤ���E492: ���ǥ����Υ��ޥ�ɤǤϤ���ޤ���E493: �դ��ޤ��ϰϤ����ꤵ��ޤ���E494: w �⤷���� w>> ����Ѥ��Ƥ�������E495: "<afile>"���֤�������autocommand�Υե�����̾������ޤ���E496: "<abuf>"���֤�������autocommand�Хåե��ֹ椬����ޤ���E497: "<amatch>"���֤�������autocommand�γ��̾������ޤ���E498: "<sfile>"���֤������� :source �оݥե�����̾������ޤ���E499: '%' �� '#' ��̵̾�ե�����ʤΤ� ":p:h" ��ȼ��ʤ��Ȥ���ϤǤ��ޤ���E49: ̵���ʥ��������̤Ǥ�E500: ��ʸ����Ȥ���ɾ������ޤ���E501: �ե�����ν�λ����E505: "%s" ���ɹ����ѤǤ� (������ˤ� ! ���ɲ�)E505: %s ���ɹ����ѤǤ� (������ˤ� ! ���ɲ�)E506: �Хå����åץե��������¸�Ǥ��ޤ��� (! ���ɲäǶ�����¸)E507: �Хå����åץե�������Ĥ���ݤ˥��顼��ȯ�����ޤ��� (! ���ɲäǶ���)E508: �Хå����å��ѥե�������ɹ���ޤ��� (! ���ɲäǶ����ɹ�)E509: �Хå����åץե��������ޤ��� (! ���ɲäǶ�����)E50: \z( ��¿�᤮�ޤ�E510: �Хå����åץե��������ޤ��� (! ���ɲäǶ�����)E511: NetBeans�ϴ����³���Ƥ��ޤ�E512: �Ĥ��뤳�Ȥ˼���E513: ��ߥ��顼, �Ѵ����� (��񤹤�ˤ� 'fenc' ��ˤ��Ƥ�������)E513: ��ߥ��顼, �Ѵ�����, �Կ� %ld (��񤹤�ˤ� 'fenc' ��ˤ��Ƥ�������)E514: ��ߥ��顼, (�ե����륷���ƥब���?)E515: ������줿�Хåե��Ϥ���ޤ���E516: �����줿�Хåե��Ϥ���ޤ���E517: �˴����줿�Хåե��Ϥ���ޤ���E518: ̤�ΤΥ��ץ����Ǥ�E519: ���ץ����ϥ��ݡ��Ȥ���Ƥ��ޤ���E51: %s( ��¿�᤮�ޤ�E520: modeline �Ǥϵ��Ĥ���ޤ���E521: = �θ�ˤϿ��ɬ�פǤ�E521: ���ɬ�פǤ�: &%s = '%s'E522: termcap ��˸��Ĥ���ޤ���E523: �����Ǥϵ��Ĥ���ޤ���E524: ����󤬤���ޤ���E525: ʸ�����Ĺ��������Ǥ�E526: <%s> �θ�˿������ޤ���E527: ����ޤ�����ޤ���E528: ' ���ͤ���ꤷ�ʤ���Фʤ�ޤ���E529: 'term' �ˤ϶�ʸ��������Ǥ��ޤ���E52: \z( ������äƤ��ޤ���E530: GUI�Ǥ� 'term' ���ѹ��Ǥ��ޤ���E531: GUI�򥹥����Ȥ���ˤ� ":gui" ����Ѥ��Ƥ�������E533: �磻�ɥե���Ȥ���Ǥ��ޤ���E534: ̵���ʥ磻�ɥե���ȤǤ�E535: <%c> �θ�������ʸ��������ޤ�E536: ����ޤ�ɬ�פǤ�E537: 'commentstring' �϶��Ǥ��뤫 %s ��ޤ�ɬ�פ�����ޤ�E538: �ޥ����ϥ��ݡ��Ȥ���ޤ���E539: �����ʸ���Ǥ� <%s>E53: %s%%( ������äƤ��ޤ���E540: ������λ���Ƥ��ޤ���E541: ��Ǥ�¿�᤮�ޤ�E542: ���롼�פ���礤�ޤ���E543: ̵���ʥ����ɥڡ����Ǥ�E544: �����ޥåץե����뤬���Ĥ���ޤ���E545: ����󤬤���ޤ���E546: ����ʥ⡼�ɤǤ�E547: ����� 'mouseshape' �Ǥ�E548: ���ͤ�ɬ�פǤ�E549: ����ʥѡ�����ơ����Ǥ�E54: %s( ������äƤ��ޤ���E550: ����󤬤���ޤ���E551: ����ʹ�ʸ��ǤǤ�E552: ���ͤ�ɬ�פǤ�E553: ��Ǥ��⤦����ޤ���E554: %s{...} ���ʸˡ���顼������ޤ�E555: ���������å������Ǥ�E556: ���������å����Ƭ�Ǥ�E557: termcap�ե�����򳫤��ޤ���E558: terminfo��ü�����ȥ�򸫤Ĥ����ޤ���E559: termcap��ü�����ȥ�򸫤Ĥ����ޤ���E55: %s) ������äƤ��ޤ���E560: �����ˡ: cs[cope] %sE561: ̤�Τ�cscope�������Ǥ�E562: ����ˡ: cstag <ident>E563: stat ���顼E563: stat(%s) ���顼: %dE564: %s �ϥǥ��쥯�ȥ�ڤ�ͭ����cscope�Υǡ����١����ǤϤ���ޤ���E566: cscope�ѥ��פ���Ǥ��ޤ���Ǥ���E567: cscope��³�˼��Ԥ��ޤ���E568: ��ʣ����cscope�ǡ����١������ɲä���ޤ���Ǥ���E570: cs_manage_matches ����̿Ū�ʥ��顼�Ǥ�E571: ���Υ��ޥ�ɤ�̵���Ǥ�,�����ʤ���: Tcl�饤�֥�����ɤǤ��ޤ���Ǥ���.E572: ��λ������ %dE573: ̵���ʥ����С�ID���Ȥ��ޤ���: %sE574: ̤�ΤΥ쥸������ %d �Ǥ�E579: :if �����Ҥ����᤮�ޤ�E580: :if �Τʤ� :endif ������ޤ�E581: :if �Τʤ� :else ������ޤ�E582: :if �Τʤ� :elseif ������ޤ�E583: ʣ��� :else ������ޤ�E584: :else �θ�� :elseif ������ޤ�E585: :while �� :for �����Ҥ����᤮�ޤ�E586: :while �� :for �Τʤ� :continue ������ޤ�E587: :while �� :for �Τʤ� :break ������ޤ�E588: :endfor �Τʤ� :for ������ޤ�E588: :while �Τʤ� :endwhile ������ޤ�E589: 'backupext' �� 'patchmode' ��Ʊ���Ǥ�E590: �ץ�ӥ塼������ɥ�������¸�ߤ��ޤ�E591: 'winheight' �� 'winminheight' ��꾮�����Ǥ��ޤ���E592: 'winwidth' �� 'winminwidth' ��꾮�����Ǥ��ޤ���E593: ���� %d �ιԿ�ɬ�פǤ�E594: ���� %d �Υ�������ɬ�פǤ�E595: ɽ���Ǥ��ʤ�ʸ�����磻��ʸ����ޤ�Ǥ��ޤ�E596: ̵���ʥե���ȤǤ�E597: �ե���ȥ��åȤ���Ǥ��ޤ���E598: ̵���ʥե���ȥ��åȤǤ�E599: 'imactivatekey' ����ꤵ�줿�ͤ�̵���Ǥ�E59: %s@ �θ�������ʸ��������ޤ���E600: :endtry ������ޤ���E601: :try �����Ҥ����᤮�ޤ�E602: :try �Τʤ� :endtry �Ǥ�E603: :try �Τʤ� :catch ������ޤ�E604: :finally �θ�� :catch ������ޤ�E605: �㳰����ª����ޤ���Ǥ���: %sE606: :try �Τʤ� :finally ������ޤ�E607: ʣ��� :finally ������ޤ�E608: 'Vim' �ǻϤޤ��㳰�� :throw �Ǥ��ޤ���E609: cscope���顼: %sE60: ʣ���� %s{...} ��¿�᤮�ޤ�E612: sign������¿��Ĥ���ޤ���E613: ̤�ΤΥץ�󥿥��ץ����Ǥ�: %sE614: vim_SelFile: ���ߤΥǥ��쥯�ȥ�����ޤ���E615: vim_SelFile: ���ߤΥǥ��쥯�ȥ�����Ǥ��ޤ���E616: vim_SelFile: �ե���� %s �����Ǥ��ޤ���E617: GTK+2 GUI�Ǥ��ѹ��Ǥ��ޤ���E618: �ե����� "%s" �� PostScript �꥽�����ե�����ǤϤ���ޤ���E619: �ե����� "%s" ���б����Ƥ��ʤ� PostScript �꥽�����ե�����Ǥ�E61:%s* �����ҤˤʤäƤ��ޤ�E620: �������󥳡��� "%s" ���Ѵ��Ǥ��ޤ���E621: �꥽�����ե����� "%s" �ϥС�����󤬰ۤʤ�ޤ�E622: cscope�ε�ư���(fork)�˼��Ԥ��ޤ���E623: cscope�ץ�����ư�Ǥ��ޤ���Ǥ���E624: �ե����� "%s" �򳫤��ޤ���E625: cscope�ǡ����١���: %s �򳫤����Ȥ��Ǥ��ޤ���E626: cscope�ǡ����١����ξ�������Ǥ��ޤ���E62:%s%c �����ҤˤʤäƤ��ޤ�E630: %s(): ���³���֤ǽ񤭹��ߤޤ���E631: %s(): �񤭹��ߤ˼��Ԥ��ޤ���E63: \_ ��̵���ʻ����ˡ�Ǥ�E64:%s%c �θ�ˤʤˤ⤢��ޤ���E655: ����ܥ�å���󥯤�¿�᤮�ޤ� (�۴Ĥ��Ƥ����ǽ��������ޤ�)E658: �Хåե� %ld �� NetBeans ��³�������ޤ���E659: Python ��Ƶ�Ū�˼¹Ԥ��뤳�ȤϤǤ��ޤ���E65: ����ʸ�����ȤǤ�E661: ��ǰ�Ǥ��� '%s' �Υإ�פ� %s �ˤϤ���ޤ���E662: �ѹ��ꥹ�Ȥ��ƬE663: �ѹ��ꥹ�Ȥ���E664: �ѹ��ꥹ�Ȥ����Ǥ�E665: ͭ���ʥե���Ȥ����Ĥ���ʤ��Τ�, GUI�򳫻ϤǤ��ޤ���E666: ���Υ���ѥ���ˤ��б����Ƥ��ޤ���: %sE667: fsync �˼��Ԥ��ޤ���E668: NetBeans���³����ե�����Υ��������⡼�ɤ����꤬����ޤ�: "%s"E669: ���롼��̾�˰����Բ�ǽ��ʸ��������ޤ�E66: \z( �ϥ����Ǥϵ��Ĥ���Ƥ��ޤ���E670: 1�Ĥθ���Υإ�ץե������ʣ��Υ��󥳡��ɤ����ߤ��Ƥ��ޤ�: %sE671: �����ȥ뤬 "%s" �Υ�����ɥ��ϸ��Ĥ���ޤ���E672: MDI���ץ����Ǥϥ�����ɥ��򳫤��ޤ���E673: �ߴ�����̵���ޥ��Х��ȥ��󥳡��ǥ��󥰤�ʸ�����åȤǤ�E674: �ޥ��Х��ȥ��󥳡��ǥ��󥰤Ǥ� printmbcharset ��ˤǤ��ޤ���E675: �ޥ��Х���ʸ��������뤿��Υǥե���ȥե���Ȥ����ꤵ��Ƥ��ޤ���E676: acwrite�Хåե��γ������autocommand��¸�ߤ��ޤ���E677: ���ե��������˥��顼��ȯ�����ޤ���E678: %s%%[dxouU] �θ�������ʸ��������ޤ���E679: syncolor.vim �κƵ��ƤӽФ��򸡽Ф��ޤ���E67: \z1 ����¾�ϥ����Ǥϵ��Ĥ���Ƥ��ޤ���E680: <�Хåե�=%d>: ̵���ʥХåե��ֹ�Ǥ� E681: �Хåե����ɤ߹��ޤ�ޤ���Ǥ���E682: �����ѥ����󤫶�ڤ국�椬����Ǥ�E683: �ե�����̾��̵����̵���ʥѥ�����Ǥ�E684: �ꥹ�ȤΥ���ǥå������ϰϳ��Ǥ�: %ldE685: ����顼�Ǥ�: %sE686: %s �ΰ���ϥꥹ�ȷ��Ǥʤ���Фʤ�ޤ���E687: �������åȤ��ꥹ�ȷ������Ǥ��⾯�ʤ��Ǥ�E688: �������åȤ��ꥹ�ȷ������Ǥ���¿���Ǥ�E689: �ꥹ�ȷ��ȼ��񷿰ʳ��ϥ���ǥå�������Ǥ��ޤ���E68: \z �θ�������ʸ��������ޤ���E690: :for �θ�� "in" ������ޤ���E691: �ꥹ�ȷ��ϥꥹ�ȷ��Ȥ�����ӤǤ��ޤ���E692: �ꥹ�ȷ��ˤ�̵������Ǥ�E694: �ؿ�ȷ��ˤ�̵������Ǥ�E695: �ؿ�ȷ��ϥ���ǥå����Ǥ��ޤ���E696: �ꥹ�ȷ��˥���ޤ�����ޤ���: %sE697: �ꥹ�ȷ��κǸ�� ']' ������ޤ���: %sE698: ���ԡ�����ˤ��ѿ�����Ҥ����᤮�ޤ�E699: ����¿�᤮�ޤ�E69: %s%%[ �θ�� ] ������ޤ���E700: ̤�Τδؿ�Ǥ�: %sE701: len() �ˤ�̵���ʷ��Ǥ�E702: �����Ȥ���Ӵؿ���Ԥ��ޤ���E703: �ؿ�ȷ�����ͤȤ��ư��äƤ��ޤ���E704: �ؿ�ȷ��ѿ�̾����ʸ���ǻϤޤ�ʤ���Фʤ�ޤ���: %sE705: �ѿ�̾����¸�δؿ�̾�Ⱦ��ͤ��ޤ�: %sE707: �ؿ�̾���ѿ�̾�Ⱦ��ͤ��ޤ�: %sE708: [:] �ϺǸ�Ǥʤ���Ф����ޤ���E709: [:] �ˤϥꥹ�ȷ����ͤ�ɬ�פǤ�E70: %s%%[] �����Ǥ�E710: �ꥹ�ȷ��ѿ�˥������åȤ���¿����Ǥ�����ޤ�E711: �ꥹ�ȷ��ѿ�˽�ʬ�ʿ����Ǥ�����ޤ���E712: %s �ΰ���ϥꥹ�ȷ��ޤ��ϼ��񷿤Ǥʤ���Фʤ�ޤ���E713: ���񷿤˶��Υ�����Ȥ����ȤϤǤ��ޤ���E714: �ꥹ�ȷ���ɬ�פǤ�E715: ���񷿤�ɬ�פǤ�E716: ���񷿤˥�����¸�ߤ��ޤ���: %sE717: ������˥���ȥ꤬����¸�ߤ��ޤ�E718: �ؿ�ȷ����׵ᤵ��ޤ�E719: [:] �򼭽񷿤�Ȥ߹�碌�ƤϻȤ��ޤ���E71: %s%% �θ�������ʸ��������ޤ���E720: ���񷿤˥���󤬤���ޤ���: %sE721: ���񷿤˽�ʣ����������ޤ�: "%s"E722: ���񷿤˥���ޤ�����ޤ���: %sE723: ���񷿤κǸ�� '}' ������ޤ���: %sE724: ɽ������ˤ��ѿ�����Ҥ����᤮�ޤ�E725: �����Ѵؿ�ƤФ�ޤ��������񤬤���ޤ���: %sE726: ���ȥ饤��(������)�� 0 �Ǥ�E727: ���ϰ��֤���λ���֤�ۤ��ޤ���E728: ���񷿤���ͤȤ��ư��äƤ��ޤ�E729: �ؿ�ȷ���ʸ����Ȥ��ư��äƤ��ޤ�E72: ����åץե�����Υ����������顼�Ǥ�E730: �ꥹ�ȷ���ʸ����Ȥ��ư��äƤ��ޤ�E731: ���񷿤�ʸ����Ȥ��ư��äƤ��ޤ�E732: :endfor �� :while ��Ȥ߹�碌�Ƥ��ޤ�E733: :endwhile �� :for ��Ȥ߹�碌�Ƥ��ޤ�E734: �ۤʤä������ѿ�Ǥ� %s=E735: ���񷿤ϼ��񷿤Ȥ�����ӤǤ��ޤ���E736: ���񷿤ˤ�̵������Ǥ�E737: �����ϴ���¸�ߤ��ޤ�: %sE738: %s ���ͤ���ɽ���Ǥ��ޤ���E739: �ǥ��쥯�ȥ����Ǥ��ޤ���: %sE73: ���������å������Ǥ�E740: �ؿ�ΰ���¿�᤮�ޤ�: %sE741: �ͤ���å�����Ƥ��ޤ�: %sE742: %s ���ͤ��ѹ��Ǥ��ޤ���E743: (����)��å�����ˤ��ѿ�����Ҥ����᤮�ޤ�E744: NetBeans ���ɹ����ѥե�������ѹ����뤳�Ȥ���ޤ���E745: �ꥹ�ȷ�����ͤȤ��ư��äƤ��ޤ�E746: �ؿ�̾��������ץȤΥե�����̾�Ȱ��פ��ޤ���: %sE747: �Хåե�����������Ƥ���Τ�, �ǥ��쥯�ȥ���ѹ��Ǥ��ޤ��� (! ���ɲäǾ��)E748: �ޤ��쥸��������Ѥ��Ƥ��ޤ���E749: �Хåե������Ǥ�E74: ���ޥ�ɤ�ʣ���᤮�ޤ�E750: ���� ":profile start {fname}" ��¹Ԥ��Ƥ�������E751: ���ϥե�����̾�ˤ��ϰ�̾��ޤ���ޤ���E752: ���ڥ��ִ����ޤ��¹Ԥ���Ƥ��ޤ���E753: ���Ĥ���ޤ���: %sE754: �ϰϤ� 8 �ĤޤǤ������ݡ��Ȥ���Ƥ��ޤ���E755: ̵�����ϰϤǤ�: %sE756: ���ڥ����å���̵��������Ƥ��ޤ�E757: ���ڥ�ե�����ǤϤʤ��褦�Ǥ�E758: ���ڥ�ե����뤬�ڼ���Ƥ���褦�Ǥ�E75: ̾����Ĺ�᤮�ޤ�E760: %s �ˤ�ñ������ޤ���E761: affix�ե������ FOL, LOW �⤷���� UPP �Υե����ޥåȤ˥��顼������ޤ�E762: FOL, LOW �⤷���� UPP ��ʸ�����ϰϳ��Ǥ�E763: ñ���ʸ�������ڥ�ե�����Ȱۤʤ�ޤ�E764: ���ץ���� '%s' ����ꤵ��Ƥ��ޤ���E765: 'spellfile' �ˤ� %ld �ĤΥ���ȥ�Ϥ���ޤ���E766: printf() �ΰ����Խ�ʬ�Ǥ�E767: printf() �ΰ���¿�᤮�ޤ�E768: ����åץե����뤬¸�ߤ��ޤ�: %s (:silent! ���ɲäǾ��)E769: %s[ �θ�� ] ������ޤ���E76: [ ��¿�᤮�ޤ�E770: ���ڥ�ե�����˥��ݡ��Ȥ��Ƥ��ʤ���������󤬤���ޤ�E771: �Ť����ڥ�ե�����ʤΤ�, ���åץǡ��Ȥ��Ƥ�������E772: ��꿷�����С������� Vim �ѤΥ��ڥ�ե�����Ǥ�E773: "%s" �Υ���ܥ�å���󥯤��롼�פˤʤäƤ��ޤ�E774: 'operatorfunc' ���ץ���󤬶��Ǥ�E775: ��ɾ����ǽ��̵���ˤʤäƤ��ޤ�E776: ���������ꥹ�ȤϤ���ޤ���E777: ʸ���󤫥ꥹ�Ȥ�ɬ�פǤ�E778: .sug �ե�����ǤϤʤ��褦�Ǥ�: %sE779: �Ť� .sug �ե�����ʤΤ�, ���åץǡ��Ȥ��Ƥ�������: %sE77: �ե�����̾��¿�᤮�ޤ�E780: ��꿷�����С������� Vim �Ѥ� .sug �ե�����Ǥ�: %sE781: .sug �ե����뤬 .spl �ե�����Ȱ��פ��ޤ���: %sE782: .sug �ե�������ɹ���˥��顼��ȯ�����ޤ���: %sE783: MAP ����ȥ�˽�ʣʸ����¸�ߤ��ޤ�E784: �Ǹ�Υ��֥ڡ������Ĥ��뤳�ȤϤǤ��ޤ���E785: complete() �����⡼�ɤǤ�����ѤǤ��ޤ���E786: �ϰϻ���ϵ��Ĥ���Ƥ��ޤ���E787: ͽ�������Хåե����ѹ��ѹ�����ޤ���E788: ���ߤ�¾�ΥХåե����Խ����뤳�Ȥϵ�����ޤ���E789: ']' ������ޤ���: %sE78: ̤�ΤΥޡ���E790: undo ��ľ��� undojoin �ϤǤ��ޤ���E791: ���Υ����ޥåץ���ȥ�E792: ��˥塼̾�����Ǥ�E793: ��ʬ�⡼�ɤǤ���¾�ΥХåե����ѹ��Ǥ��ޤ���E794: ����ɥܥå����Ǥ��ѿ� "%s" ���ͤ����Ǥ��ޤ���E795: �ѿ� %s ����Ǥ��ޤ���E797: autocommand �� SpellFileMissing ���Хåե�������ޤ���E798: ID �� ":match" �Τ����ͽ�󤵤�Ƥ��ޤ�: %ldE799: ̵���� ID: %ld (1 �ʾ�Ǥʤ���Фʤ�ޤ���)E79: �磻��ɥ����ɤ�Ÿ���Ǥ��ޤ���E800: ����ӥ���ϻ����Բ�ǽ�Ǥ�: ����ѥ�����̵���ˤ���Ƥ��ޤ�
E801: ID �Ϥ��Ǥ������Ǥ�: %ldE802: ̵���� ID: %ld (1 �ʾ�Ǥʤ���Фʤ�ޤ���)E803: ID �Ϥ���ޤ���: %ldE804: '%' ����ư��������Ȥ߹�碌�ƤϻȤ��ޤ���E805: ��ư����������ͤȤ��ư��äƤ��ޤ�E806: ��ư��������ʸ����Ȥ��ư��äƤ��ޤ�E807: printf() �ΰ���ˤ���ư���������Ԥ���Ƥ��ޤ�E808: ���ͤ���ư�������ɬ�פǤ�E809: #< �� +eval ��ǽ��̵������ѤǤ��ޤ���E80: �����Υ��顼E810: ���ե�������ɹ��⤷���Ͻ���Ǥ��ޤ���E811: ���ߤϥХåե�������ѹ����뤳�Ȥϵ�����ޤ���E812: autocommand���Хåե����Хåե�̾���ѹ����ޤ���E813: autocmd������ɥ����Ĥ����ޤ���E814: autocmd������ɥ������Ĥ�ʤ����ᡢ������ɥ����Ĥ����ޤ���E815: ���Υ��ޥ�ɤ�̵���Ǥ�. MzScheme �饤�֥�����ɤǤ��ޤ���.E816: patch�ν��Ϥ��ɹ���ޤ���E817: Blowfish�Ź�Υӥå�/��ȥ륨��ǥ����󤬴ְ�äƤ��ޤ�E818: sha256�Υƥ��Ȥ˼��Ԥ��ޤ���E819: Blowfish�Ź�Υƥ��Ȥ˼��Ԥ��ޤ���E81: ������ץȰʳ���<SID>���Ȥ��ޤ���E820: sizeof(uint32_t) != 4E821: �ե����뤬̤�Τ��ˡ�ǰŹ沽����Ƥ��ޤ�E822: ����ɥ��ե�������ɹ��ѤȤ��Ƴ����ޤ���: %sE823: ����ɥ��ե�����ǤϤ���ޤ���: %sE824: �ߴ�����̵������ɥ��ե�����Ǥ�: %sE825: ����ɥ��ե����뤬����Ƥ��ޤ� (%s): %sE826: �Ź沽���줿����ɥ��ե�����β��ɤ˼��Ԥ��ޤ���: %sE827: ����ɥ��ե����뤬�Ź沽����Ƥ��ޤ�: %sE828: ����Ѥ˥���ɥ��ե�����򳫤��ޤ���: %sE829: ����ɥ��ե�����ν񤭹��ߥ��顼�Ǥ�: %sE82: �Хåե���1�Ĥ���Ǥ��ʤ��Τ�, ��λ���ޤ�...E830: ����ɥ��ֹ� %ld �ϸ��Ĥ���ޤ���E831: bf_key_init() �����ѥ���ɤǸƤӽФ���ޤ���E832: ��Ź沽�ե����뤬�Ź沽���줿����ɥ��ե������ȤäƤޤ�: %sE833: %s �Ϥ��ΥС�������Vim�ǥ��ݡ��Ȥ��Ƥ��ʤ������ǰŹ沽����Ƥ��ޤ�E834: 'listchars'���ͤ�̷�⤬����ޤ�E835: 'fillchars'���ͤ�̷�⤬����ޤ�E836: ����Vim�Ǥ� :py3 ��Ȥä���� :python ��Ȥ��ޤ���E837: ����Vim�Ǥ� :python ��Ȥä���� :py3 ��Ȥ��ޤ���E838: NetBeans�Ϥ���GUI�ˤ��б����Ƥ��ޤ���E839: ��ִؿ������ɥ����ѹ����ޤ���E83: �Хåե�����Ǥ��ʤ��Τ�, ¾�Τ���Ѥ��ޤ�...E840: �䴰�ؿ�ƥ����Ȥ�����ޤ���E841: ͽ��̾�ʤΤ�, �桼���������ޥ�ɤ���ѤǤ��ޤ���E842: "<slnum>"���֤���������ֹ椬����ޤ���E843: ����åץե�����ΰŹ�򹹿���˥��顼��ȯ�����ޤ���E844: ̵����cchar���ͤǤ�E845: ���꤬­��ʤ��Τǡ�ñ��ꥹ�Ȥ��Դ����Ǥ�E846: ���������ɤ����ꤵ��Ƥ��ޤ���E847: ��ʸ�μ����(include)��¿�᤮�ޤ�E848: ��ʸ���饹����¿�᤮�ޤ�E849: �ϥ��饤�Ȥȹ�ʸ���롼�פ�¿�᤮�ޤ�E84: �ѹ����줿�Хåե��Ϥ���ޤ���E850: ̵���ʥ쥸����̾�Ǥ�E851: GUI�ѤΥץ����ε�ư�˼��Ԥ��ޤ���E852: �ҥץ�����GUI�ε�ư�˼��Ԥ��ޤ���E853: ����̾����ʣ���Ƥ��ޤ�: %sE854: �ѥ���Ĺ�᤮���䴰�Ǥ��ޤ���E855: autocommand�����ޥ�ɤ���ߤ���������ޤ���E858: ��ɾ����ͭ����python���֥������Ȥ��֤��ޤ���Ǥ���E859: �֤��줿python���֥������Ȥ�vim���ͤ��Ѵ��Ǥ��ޤ���Ǥ���E85: �ꥹ��ɽ�������Хåե��Ϥ���ޤ���E862: �����Ǥ� g: �ϻȤ��ޤ���E864: \%#= �ˤ� 0, 1 �⤷���� 2 �Τߤ�³�����ޤ�������ɽ�����󥸥�ϼ�ư���򤵤�ޤ���E865: (NFA) ���Ԥ��᤯����ɽ���ν�ü���ã���ޤ���E866: (NFA ����ɽ��) ���֤���äƤ��ޤ�: %cE867: (NFA) ̤�ΤΥ��ڥ졼���Ǥ�: '\%%%c'E867: (NFA) ̤�ΤΥ��ڥ졼���Ǥ�: '\z%c'E868: ������饹��ޤ�NFA���ۤ˼��Ԥ��ޤ���!E869: (NFA) ̤�ΤΥ��ڥ졼���Ǥ�: '\@%c'E86: �Хåե� %ld �Ϥ���ޤ���E870: (NFA ����ɽ��) �����֤�����²����ɹ���˥��顼E871: (NFA ����ɽ��) �����֤� �θ�� �����֤� �ϤǤ��ޤ���!E872: (NFA ����ɽ��) '(' ��¿�᤮�ޤ�E873: (NFA ����ɽ��) ��ü���椬����ޤ���E874: (NFA) �����å���ݥåפǤ��ޤ���!E875: (NFA ����ɽ��) (����ʸ�����NFA���Ѵ����) �����å��˻Ĥ��줿���ơ��Ȥ�¿�᤮�ޤ�E876: (NFA ����ɽ��) NFA���Τ���¸����ˤ϶������ڡ�����­��ޤ���E877: (NFA ����ɽ��) ̵����ʸ�����饹: %ldE878: (NFA) ���߲�����Υ֥��˽�ʬ�ʥ��������Ƥ��ޤ���!E879: (NFA ����ɽ��) \z( ��¿�᤮�ޤ�E87: �Ǹ�ΥХåե���ۤ��ư�ư�ϤǤ��ޤ���E881: ͽ�������ԥ�����Ȥ��Ѥ��ޤ���E882: Uniq ����Ӵؿ���Ԥ��ޤ���E883: �����ѥ�����ȼ��쥸�����ˤ�2�԰ʾ��ޤ���ޤ���E884: �ؿ�̾�ˤϥ����ϴޤ���ޤ���: %sE885: �ѹ��Ǥ��ʤ� sign �Ǥ�: %sE886: viminfo�ե������ %s ��̾���ѹ��Ǥ��ޤ���!E887: ���Υ��ޥ�ɤ�̵���Ǥ�,�����ʤ���. Python �� site �⥸�塼�����ɤǤ��ޤ���Ǥ���.E888: (NFA ����ɽ��) �����֤��ޤ��� %sE88: �ǽ�ΥХåե�����ؤϰ�ư�Ǥ��ޤ���E890: ']' �θ���;ʬ��ʸ��������ޤ�: %s]%sE891: �ؿ�ȷ�����ư�������Ȥ��ư��äƤ��ޤ���E892: ʸ�������ư�������Ȥ��ư��äƤ��ޤ�E893: �ꥹ�ȷ�����ư�������Ȥ��ư��äƤ��ޤ�E894: ���񷿤���ư�������Ȥ��ư��äƤ��ޤ�E895: ���Υ��ޥ�ɤ�̵���Ǥ�,�����ʤ���. MzScheme �� racket/base �⥸�塼�뤬���ɤǤ��ޤ���Ǥ���.E898: channel_open() ��� socket() �����Ԥ��ޤ���E89: �Хåե� %ld ���ѹ�����¸����Ƥ��ޤ��� (! ���ѹ����˴�)E901: channel_open() ��� gethostbyname() �����Ԥ��ޤ���E902: �ݡ��Ȥ��³�Ǥ��ޤ���E903: ��ʸ����ΰ���Υ��ޥ�ɤ�����ޤ���E904: expr/call �κǸ�ΰ���Ͽ�Ǥʤ���Фʤ�ޤ���E904: call ��3���ܤΰ���ϥꥹ�ȷ��Ǥʤ���Фʤ�ޤ���E905: ̤�ΤΥ��ޥ�ɤ�����ޤ���: %sE906: �����Ƥ��ʤ������ͥ�Ǥ�E907: �ü��ͤ���ư�������Ȥ��ư��äƤ��ޤ�E908: ̵�����ͤ�ʸ����Ȥ��ư��äƤ��ޤ�E909: �ü��ѿ�ϥ���ǥå����Ǥ��ޤ���E90: �Ǹ�ΥХåե��ϲ���Ǥ��ޤ���E910: ����֤���ͤȤ��ư��äƤ��ޤ�E911: ����֤���ư�������Ȥ��ư��äƤ��ޤ�E912: raw �� nl �⡼�ɤΥ����ͥ�� ch_evalexpr()/ch_sendexpr() �ϻȤ��ޤ���E913: �����ͥ����ͤȤ��ư��äƤ��ޤ���E914: �����ͥ����ư�������Ȥ��ư��äƤ��ޤ���E915: in_io �Хåե��� in_buf �� in_name ����꤬ɬ�פǤ�E916: ͭ���ʥ���֤ǤϤ���ޤ���E917: %s() �˥�����Хå��ϻȤ��ޤ���E918: �Хåե������ɤ���Ƥʤ���Фʤ�ޤ���: %sE919: �ǥ��쥯�ȥ꤬ '%s' ����ˤ���ޤ���: "%s"E91: 'shell' ���ץ���󤬶��Ǥ�E920: _io �ե������ _name ����꤬ɬ�פǤ�E921: ̵���ʥ�����Хå�����Ǥ�E922: ���񤬴��Ԥ���Ƥ��ޤ�E923: function() ���� 2 ����ϥꥹ�ȷ��ޤ��ϼ��񷿤Ǥʤ���Фʤ�ޤ���E924: ���ߤΥ�����ɥ����Ĥ����ޤ���E925: ���ߤ� quickfix ���ѹ�����ޤ���E926: ���ߤΥ��������ꥹ�Ȥ��ѹ�����ޤ���E927: ̵������Ǥ�: %sE928: ʸ����ɬ�פǤ�E929: ��viminfo�ե����뤬¿�᤮�ޤ�! ��: %sE92: �Хåե� %ld �����Ĥ���ޤ���E930: execute() ����Ǥ� :redir �ϻȤ��ޤ���E931: �Хåե�����Ͽ�Ǥ��ޤ���E932: �������㡼�ؿ�ϥȥåץ�٥�˵��ҤǤ��ޤ���: %sE933: �ؿ�Ϻ�����ޤ���: %sE934: ̾����̵���Хåե��ؤϥ����פǤ��ޤ���E935: ̵���ʥ��֥ޥå��ֹ�: %dE936: ���ߤΥ��롼�פϺ��Ǥ��ޤ���E937: ������ΥХåե�������褦�Ȼ�ߤޤ���E938: JSON�˽�ʣ����������ޤ�: "%s"E939: ���Υ�����Ȥ�ɬ�פǤ�E93: %s ��ʣ��γ��������ޤ���E940: �ѿ� %s �ϥ�å��ޤ��ϥ����å��Ǥ��ޤ���E941: �����С��Ϥ��Ǥ˳��Ϥ��Ƥ��ޤ�E942: +clientserver ��ǽ��̵���ˤʤäƤ��ޤ�E943: ���ޥ�ɥơ��֥�򹹿�����ɬ�פ�����ޤ���'make cmdidxs' ��¹Ԥ��Ƥ�������E944: ʸ�����饹���ϰϤ��դǤ�E945: ʸ�����饹���ϰϤ��礭�����ޤ�E94: %s �˳������Хåե��Ϥ���ޤ���Ǥ���E95: ����̾���ΥХåե��ϴ��ˤ���ޤ�E96: %ld �ʾ�ΥХåե���diff�Ǥ��ޤ���E97: ��ʬ����Ǥ��ޤ���E98: diff�ν��Ϥ��ɹ���ޤ���E99: ���ߤΥХåե��Ϻ�ʬ�⡼�ɤǤϤ���ޤ������顼: �ե�������Խ�������������ɥ��ǥե�������Խ����ޤ�Vim���Խ����� (&V)ʣ���Vim���Խ����� (&M)��ư�Ѥ�Vim���Խ����� - 1�Ĥ�Vim���Խ����� (&V)���򤷤��ե������Vim���Խ��������󥳡���:�ؿ�κǸ�Ǥ����ե�����κǸ�Ǥ��Ź沽�ѤΥ�������Ϥ��Ƥ�������: ���Ѥ��륹��åץե�������ֹ����Ϥ��Ƥ�������(0 �ǽ�λ): �⤦����Ʊ����������Ϥ��Ƥ�������: �ǥХå��⡼�ɤ����ޤ�. ³����ˤ� "cont" ����Ϥ��Ƥ�������.Ex�⡼�ɤ����ޤ�. �Ρ��ޥ�⡼�ɤ����ˤ�"visual"����Ϥ��Ƥ�������.���顼���顼�ȳ����ץ����κ��˼���: gvim���Ķ��ѿ�PATH��ˤ��뤫��ǧ���Ƥ�������!%s �ν����˥��顼�����Ф���ޤ���:���顼�ե�����������������: %d �Х����㳰�㳰����ª����ޤ���: %s�㳰���˴�����ޤ���: %s�㳰����«���ޤ���: %s�㳰��ȯ�����ޤ���: %s%s ��¹Ԥ��Ƥ��ޤ�%s �� %d ���ܤˤ� MAP �β��ɬ�פǤ�%s �� %d ���ܤˤ� REP(SAL) �β��ɬ�פǤ�%s �� %d ���ܤǤ� Y �� N ��ɬ�פǤ�: %s���������ʬ���:
%s ��� %d ���ܤ˥ե饰����Ż��Ѥ�����ޤ�: %s�ѥ��եå������˼��Ԥ��ޤ���: sys.path_hooks ���ꥹ�ȤǤϤ���ޤ���
�����˲�����»ܤ��Ƥ�������:
- vim.path_hooks �� sys.path_hooks ���ɲ�
- vim.VIM_SPECIAL_PATH �� sys.path ���ɲ�
�ѥ������˼��Ԥ��ޤ���: sys.path ���ꥹ�ȤǤϤ���ޤ���
������ vim.VIM_SPECIAL_PATH �� sys.path ���ɲä��Ƥ��������ե����� "%s" ������ޤ����ե���������Ƥ��Ѥ�äƤ��뤿�ᡢ����ɥ��������ѤǤ��ޤ����ե����� "%s" �Υѡ��ߥå�����ɹ����ѤǤ�.
����Ǥⶲ�餯�񤭹��ळ�Ȥϲ�ǽ�Ǥ�.
��³���ޤ���?�ե����뤬�ݻ�����ޤ��ե������ե��륿�������ִ� ('\' �򸡺�����ˤ� '\\')���򸡺�(&N)���򸡺�����ʸ���� ('\' �򸡺�����ˤ� '\\')����ʸ����:����ɥ��ե����� %s �μ���λ��ʣ�Τ����ǽ��ñ��� %s �� %d ���ܤǤ�: %s%s �� %d �Ԥ� �ե饰�����ͤǤϤ���ޤ���: %s�ե���� '%s' �ϸ�����ǤϤ���ޤ����ե����%ld ������ե����0��2�ܤǤϤ���ޤ����ե����0���: %ld�ե����0: %s�ե����1���: %ld�ե����1: %s�ե����:���ץ����: %s���ץ�����θ�˥��ߤ�����ޤ�Vim �Ȥ����󡢤䤢!������ηäޤ�ʤ��Ҷ������˱���!����κǸ�˥ҥå�����ϥ��顼��ASCIIʸ����ޤ� %d �Ĥ�ñ���̵�뤷�ޤ��� (%s ��)��ASCIIʸ����ޤ� %d �Ĥ�ñ���̵�뤷�ޤ��������ե��������Ĺ���Ԥ�̵�뤷�ޤ�����ʥե�����̾%s �� %d ���ܤ� �ե饰������Ǥ�: %s����ʥ쥸����̾������Ƭʸ���Ǥ���Ϲ�����ץåȥ᥽�å���������: ���ޤ�ޤ���̵���ʰ���Ǥ�: ̵���ʥե���Ȼ���Ǥ�%s �� %d ���� ̵���� nr �ΰ�Ǥ�: %s%s ��� %d ���ܤ� FLAG ��̵�����ͤ�����ޤ�: %s���������פ��ޤ�����³��λ�������: �ꥹ�Ȥ����ͤ�ɬ�פǤ�Lua�饤�֥�����ɤǤ��ޤ���.��ʸ��/��ʸ������̤������Τ˳�������Τ�����å�������ܸ��å��������/�ƽ�: ¼�� �Ϻ <koron.kaoriya@gmail.com>'>' �����Ĥ���ޤ���%s ���ܤ� FOL/LOW/UPP ������ޤ���SOFO%s �Ԥ� %s �ˤ���ޤ���Modified by ̾��:%s �ΥС������ %ld ��ɬ�פǤ�
Amigados�ΥС������ 2.04������ʹߤ�ɬ�פǤ�
�Ź業����ɬ�פǤ�: "%s"NetBeans��̤�ѹ��ΥХåե����񤹤뤳�Ȥϵ��Ĥ��Ƥ��ޤ����������֥ڡ������������ΥХåե��������줿��ʸ��ǤϤ���ޤ���û����Ϥϸ��Ĥ���ޤ���Ǥ����֥졼���ݥ���Ȥ�������Ƥ��ޤ����ǥ����ץ쥤�����Ĥ���ޤ����ǥ����ץ쥤������ޤ���: ��������˼��Ԥ��ޤ���.
����ȥ꤬����ޤ������󥯥롼�ɥե�����Ϥ���ޤ����ޥåԥ󥰤ϸ��Ĥ���ޤ���Ǥ����ޡ��������ꤵ��Ƥ��ޤ�����������ΰ��֤˥ޥå��Ϥ���ޤ���, ���򸡺����Ƥ��ޤ��������autocommand��¸�ߤ��ޤ����Ť��ե�����Ϥ���ޤ�������åץե����뤬����ޤ�����������ƥ����Ȥ�����ޤ�����ǽ�ʥ���ɥ��Ϥ���ޤ���: �Ȥꤢ����³���ޤ��桼���������ޥ�ɤ����Ĥ���ޤ���Ǥ����Ȥ��ޤ��������٥å����쥯��������ߤ��ޤ���! ���Ȥ������Τ˥��꤬��­���ޤ��������ʡ����ۤʤ�Τǥ���ɥ��ե�������ɤ߹��ߤޤ���: %s����ɥ��оݤ�����ޤ������������߸���ñ���: %ldOK�ե������ɹ������������֥ڡ����򳫤�...���֥ڡ����򳫤�X display �� open �˼��Ԥ��ޤ���X display �� open �������ॢ���Ȥ��ޤ���X�����С��ؤ��³�� %ld �ߥ��ä�����ޤ������ܥե����� "%s"��¸�Υե����� "%s" ���񤭤��ޤ���?%d �ڡ���NetBeans�Хåե��ΰ����񤭽Ф����ȤϤǤ��ޤ����ѥå��ե������ѥ���Ĺ�᤮�ޤ�!�ѥ�̾:�ѥ�������ƤιԤǸ��Ĥ���ޤ���: %s�ѥ�����ϸ��Ĥ���ޤ���Ǥ����ѥ�����ϸ��Ĥ���ޤ���Ǥ���: %s���������ߤ�¹���...³����ˤ�ENTER�򲡤������ޥ�ɤ���Ϥ��Ƥ���������������֤�����ޤ���.�������ޤ���: %s�������Ƥ��ޤ�: '%s'��������ߤ���ޤ���������: �ڡ��� %d (%d%%)�ѥ�����Υ����꡼���ɲ�����affix �ե����� %s ���ɹ���...���ڥ�ե��������ɹ�������ե����� %s �򥹥������...ɸ����Ϥ����ɹ�����...���ڥ�ե����� "%s" ���ɹ�������ɥ��ե������ɹ���: %sviminfo�ե����� "%s"%s%s%s ���ɹ�����ɸ����Ϥ����ɹ����� %s ...�����λ. �Хåե������Ƥϥե������Ʊ���ˤʤ�ޤ���.�ꥫ�Х꤬��λ���ޤ���. ���Ƥ��������������å����Ƥ�������.���Ƥ��³��ƽ��������ִ������ִ�(&A)�����ִ��ִ�ʸ����:Vi�ߴ��⡼�ɤ�ư�����⡼��̵�Ǽ¹���, �����פ���ʸ�����������ޤ���̾����¸�ե�������¸�������������쥯�Ȥ���¸���ޤ����å����������¸���ޤ��������¸���ޤ��ӥ塼����¸���ޤ��ѹ��� "%s" ����¸���ޤ���?����򥹥������: %s���󥯥롼�ɤ��줿�ե�����򥹥������: %s�����򥹥������.���������: %s��������С�: �������Ǥ��ޤ���Ǥ���.����ʸ����"%s" �򸡺���"%s" �� "%s" ���鸡�������󥯥롼�ɤ��줿�ե�����򥹥������ %s�����ե����� %s �򸡺����ܺ٤� ":help E312" �򻲾Ȥ��Ƥ��������ܺ٤� ":help W11" �򻲾Ȥ��Ƥ��������ܺ٤� ":help W12" �򻲾Ȥ��Ƥ��������ܺ٤� ":help W16" �򻲾Ȥ��Ƥ��������ǥ��쥯�ȥ������������ %s%ld / %ld ��; %lld / %lld ñ��; %lld / %lld �Х������� %s%ld / %ld ��; %lld / %lld ñ��; %lld / %lld ʸ��; %lld / %lld �Х��������ץ�󥿤������...��³��ɽ��������������ݥ���Ȥ�ɽ���������Υ�å�������ɽ������%s �Υ�����:������:�оݤ��ʤ��Τǥ���ɥ��ե�����ν񤭹��ߤ򥹥��åפ��ޤ���ǰ�Ǥ����إ�ץե����� "%s" �����Ĥ���ޤ�����ǰ�Ǥ���, ��������Ϥ���ޤ�����ǰ�Ǥ���, ��������� %ld �Ĥ�������ޤ������Υ��ޥ�ɤ�̵���Ǥ�, �����ʤ���: Perl�饤�֥�����ɤǤ��ޤ���Ǥ���.Vim������ץȤμ���Vim�γ�ȯ��礷�Ƥ�������!�����å��������������ޤ���������:Substitute ����åץե����� "����åץե����� "%s" ��¸�ߤ��ޤ�. ��񤭤�����ޤ���?����åץե����뤬����¸�ߤ��ޤ�!����åץե�����ϰŹ沽����Ƥ��ޤ�: "%s"����åץե����뤬ʣ��Ĥ���ޤ���:���Υѥ�����˥Хå��ȥ�å��� RE ���󥸥��Ŭ�Ѥ��ޤ�: ���֥ڡ��� %d���Υ�˥塼��ڤ���X display �Υ����å��˼��Ԥ��ޤ���Vim ��ȤäƤ���Ƥ��꤬�Ȥ����Υե�����ϼ��ξ��Ǻ���ޤ��� ͣ��γ������Vim�ˤ�diff��ǽ������ޤ���(����ѥ�������).����cscope���ޥ�ɤ�ʬ�䥦����ɥ��Ǥϥ��ݡ��Ȥ���ޤ���.
"+command", "-c command", "--cmd command" �ΰ���¿�᤮�ޤ�ʣ��ե饰��¿�᤮�ޤ��Խ�����¿�᤮�ޤ��ٱ���ֻҤ�¿�᤮�ޤ��ٱ���ֻ� ��/�⤷���� ʣ��ե饰��¿�᤮�ޤ�%s �� %d ����, �ϰϻ��꤬¿�᤮�ޤ�: %s��Ƭ��ñ���: %d%s (%d ����) ��³���ƥ�����: %s���٤Ƥ��ѹ����˴�����Vim��λ����ˤ�  :qa!  ����Ϥ� <Enter> �򲡤��Ƥ��������ֹ��<Enter>����Ϥ��Ƥ������� (���ǥ���󥻥�): �ֹ��<Enter>����Ϥ��뤫�ޥ����ǥ���å����Ƥ������� (���ǥ���󥻥�): �֥�å� 0 ���ɹ���ޤ��� ̿�᥵���С���̾������Ͽ�Ǥ��ޤ������̤�ΤΥ��ץ�����Ǥ�%s �� %d ���� ǧ����ǽ�ʥե饰�Ǥ�: %s%s �� %d ���ܤ� ǧ���Ǥ��ʤ�����ʣ�������ܤ�����ޤ�: %s̵����Vim�ΥС������3.0����Ѥ��Ƥ�������.
��������ΰ�Τ�����CUT_BUFFER0�����Ѥ���ޤ�������åץե����뤫���������Ź業����ƥ����ȥե�����˻Ȥ��ޤ�.
����åץե����� "%s" �������VIM - ���VIM - �������ִ�...VIM - ����...VIM - Vi IMprovedVIM���顼VIM: ������ɥ��򳫤��ޤ���!
VIMRUN.EXE�� $PATH ����˸��Ĥ���ޤ���.
����ޥ�ɤν�λ��˰���ߤ򤷤ޤ���.
�ܺ٤�  :help win32-vimrun  �򻲾Ȥ��Ƥ�������.Vim - �ե�������Vim E458: �����꤬�������ʤ��Τǥ���ȥ������Ƥ��ޤ���Vim�ηٹ�Vim ��������Vim ���顼Vim ���顼: ~aVim�� %d �ǽ�λ���ޤ�
Vim �ϥ����ץ󥽡����Ǥ��꼫ͳ�����۲�ǽ�Ǥ�Vim: ���٥�� %s ����
Vim: ��Ϥ��ɹ�����Υ��顼�ˤ�꽪λ���ޤ�...
Vim: ���顼: NetBeans����gvim�򥹥����ȤǤ��ޤ���
Vim: ���顼: ���ΥС�������Vim��Cygwinü��Ǥ�ư��ޤ���
Vim: �ᥤ�󥦥���ɥ����԰դ��˲�����ޤ���
Vim: ɸ����Ϥ����ɹ���...
Vim: ���å����ޥ͡����㤫�� "die" �׵������ޤ���
Vim: �ٹ�: ü��������ϤǤϤ���ޤ���
Vim: �ٹ�: ü��ؤν��ϤǤϤ���ޤ���
W10: �ٹ�: �ɹ����ѥե�������ѹ����ޤ�W11: �ٹ�: �ե����� "%s" ���Խ����ϸ���ѹ�����ޤ���W12: �ٹ�: �ե����� "%s" ���ѹ�����Vim�ΥХåե����ѹ�����ޤ���W13: �ٹ�: �ե����� "%s" ���Խ����ϸ�˺�����ޤ���W14: �ٹ�: �ե�����̾�Υꥹ�Ȥ�Ĺ�᤮�ޤ�W15: �ٹ�: �Զ�ڤ�����Ǥ�. ^M ���ʤ��ΤǤ��礦W16: �ٹ�: �ե����� "%s" �Υ⡼�ɤ��Խ����ϸ���ѹ�����ޤ���W17: ����ӥ�ʸ���ˤ�UTF-8��ɬ�פʤΤ�, ':set encoding=utf-8' ���Ƥ�������W18: ���롼��̾�������ʸ��������ޤ�W19: ������� augroup ��ä����Ȥ��Ƥ��ޤ�W20: �׵ᤵ�줿python 2.x���б����Ƥ��ޤ��󡢥ե������̵�뤷�ޤ�: %sW21: �׵ᤵ�줿python 3.x���б����Ƥ��ޤ��󡢥ե������̵�뤷�ޤ�: %sW22: :endfunction �θ��ʸ��������ޤ�: %s�ٹ�: �ɹ����˥ե�������ѹ�������ޤ���!!!�ٹ��ٹ�: ñ��ꥹ�� "%s.%s.spl" ����� "%s.ascii.spl" �ϸ��Ĥ���ޤ����ٹ�: ñ��ꥹ�� "%s_%s.spl" ����� "%s_ascii.spl" �ϸ��Ĥ���ޤ����ٹ�: ͽ������¾�Хåե��ذ�ư���ޤ��� (autocommands ��Ĵ�٤Ƥ�������)�ٹ�: �夤�Ź��ˡ��ȤäƤ��ޤ�; :help 'cm' �򻲾Ȥ��Ƥ��������ٹ�: ʣ��ե饰�� NOBREAK ��ξ��Ȥ���ꤵ��ޤ����ٹ�9: %s �Ȥ����ϰϤϥ��ݡ��Ȥ���Ƥ��ޤ����ٹ�: ���Ѥ��Ƥ���ü��ϥϥ��饤�ȤǤ��ޤ������Υե�����򳫤��Ƥ������ "����ɥ��ե�����Ȥ����ɤ߹���ʤ��ΤǾ�񤭤��ޤ���: %s����ɥ��ե�����ǤϤʤ��ΤǾ�񤭤��ޤ���: %s������ɥ�����: X %d, Y %dñ�� '%.*s' �� %s ���ɲä���ޤ���ñ�� '%.*s' �� %s ���������ޤ���¾�ιԤ�ñ���ե��������ʬŪ����¸���ޤ���?���ڥ�ե����� %s ������...��������ե����� "%s" ������...����ɥ��ե�����񤭹�����: %sviminfo�ե����� "%s" ������%s �� %d ���ܤ� CHECKCOMPOUNDPATTERN ���ͤ˸�꤬����ޤ�: %s%s �� %d ���ܤ� COMPOUNDMIN ���ͤ˸�꤬����ޤ�: %sCOMPOUNDRULES ���ͤ˸�꤬����ޤ�. �ե����� %s �� %d ����: %s%s �� %d ���ܤ� COMPOUNDSYLMAX ���ͤ˸�꤬����ޤ�: %s%s �� %d ���ܤ� COMPOUNDWORDMAX ���ͤ˸�꤬����ޤ�: %sXSMP ICE��³�����Ԥ����褦�Ǥ�XSMP SmcOpenConnection�����Ԥ��ޤ���: %sXSMP ��save-yourself�׵�������Ƥ��ޤ�XSMP ��ICE��³�򼺤��ޤ���XSMP ����³�򳫻Ϥ��Ƥ��ޤ������Ϥ�[%ld ���ܤ��Ѵ����顼][CR̵][����][�ǥХ���][�ե��������][�إ��][%ld ���ܤ�����ʥХ���][�ǽ��Ԥ��Դ���][���������ꥹ��][̤�Ѵ�][�����ǥ��쥯�ȥ�][���ե�����][���ե�����][��][̵̾][�Ǹ���ѹ�����¸����Ƥ��ޤ���]
[̤�Խ�][���¤�����ޤ���][�ץ�ӥ塼][Quickfix�ꥹ��][�ɹ����顼][���][�ɹ����顼][����][�ƽ�] �� re/malloc() ��� %lu, �� free() ��� %lu

[����饯�����ǥХ���][�Ѵ���][�Ź沽][dos�ե����ޥå�][dos][FIFO/�����å�][FIFO][�ե�����..]    ����ե�������Խ�����[Ĺ��ʬ��][mac�ե����ޥå�][mac][noeol][�ɹ�����][�����å�][unix�ե����ޥå�][unix]����󥻥�(_C)�Ĥ���(_C)_OK����(_O)��¸(_S)add() �ΰ���������ܥե�����Ȥ� diff ��¹Ԥ�����ɤ��Ǥ��礦)Ĺ�� %d �Υ��饤���� %d �γ�ĥ���饤���˳����Ƥ褦�Ȥ��ޤ���Ĺ�� %d �γ�ĥ���饤���ˡ����Ĺ�����饤��������Ƥ褦�Ȥ��ޤ��������줿�Хåե��򻲾Ȥ��褦�Ȥ��ޤ��������줿���֤򻲾Ȥ��褦�Ȥ��ޤ��������줿������ɥ��򻲾Ȥ��褦�Ȥ��ޤ���autocommand: %s <�Хåե�=%d> ����ưŪ�˺�����ޤ�autocommand %s���%ld �ԤΥ֥�å�����󥯤���ޤ���1 �ԤΥ֥�å�����󥯤���ޤ����Хåե���̵���Ǥ�by by Bram Moolenaar ¾.inputrestore() �� inputsave() ����¿���ƤФ�ޤ���%s ��¹���Ǥ�OutputObject°����ä��ޤ���'charconvert' �ν��Ϥ��ɹ���ޤ���Ǥ������󥽡���⡼�ɤ��ѹ��Ǥ��ޤ���?!
�Хåե�/������ɥ������ޥ�ɤ���Ǥ��ޤ���: ���֥������Ȥ��õ��Ƥ��ޤ����Ԥ�ä��ޤ���vim.Dictionary°���Ͼä��ޤ���vim.List °���Ͼä��ޤ����Ԥ����Ǥ��ޤ����Ԥ����Ǥ��ޤ����Ԥ���/�ɲä�Ǥ��ޤ������ꤵ�줿������ѹ��Ǥ��ޤ������ꤵ�줿�ꥹ�Ȥ��ѹ��Ǥ��ޤ��������ޤ��� ������Хå����ޥ�ɤ���Ͽ�Ǥ��ޤ���: �Хåե�/������ɥ������˾õ��ޤ���������Хå����ޥ�ɤ���Ͽ�Ǥ��ޤ���: �Хåե�/������ɥ��λ��Ȥ����Ĥ���ޤ����Ԥ��ִ��Ǥ��ޤ�������ɥ�������¸�Ǥ��ޤ���°�� %s �����Ǥ��ޤ����Ԥ����Ǥ��ޤ�����󥯤Ǥ��ޤ���; �Ȥˤ����õ��ս��ѹ����ޤ����ս��ѹ����ޤ����Ĥ������ޥ��: %s%s �μ¹Ԥ��³��Ǥ�"%s" �����ޤ����Хåե��򳫤��ޤ���cs_create_connection �μ¹Ԥ˼��Ԥ��ޤ���cs_create_connection �ؤ� setpgid �˼��Ԥ��ޤ���cs_create_connection: fr_fp �� fdopen �˼��Ԥ��ޤ���cs_create_connection: to_fp �� fdopen �˼��Ԥ��ޤ���cscope���ޥ��:
cscope��³ %s ���Ĥ����ޤ�������������֤��Хåե��γ�¦�Ǥ���ά�ͤ򼡤Τ褦����ꤷ�ޤ� '�֥�å� 1 �Ͼä��줿?����ϥ�å�����Ƥ��ޤ����ꤵ�줿���֥ڡ�����ڤ��ؤ��ޤ���Ǥ������ꤵ�줿������ɥ���ڤ��ؤ��ޤ���Ǥ���dlerror = "%s"�ե��������¸���������ޤǥ��ǥ�����λ���ʤ��Ǥ�������!���Υ����ϵ��Ĥ���Ƥ��ޤ����Ķ��ѿ�Scheme�ͤ�Vim�ؤ��Ѵ����顼���顼�ϥ�ɥ�imp.find_module() �� %s ���֤��ޤ��� (������: 3 ��ǤΥ��ץ�)imp.find_module() �� %d ��ǤΥ��ץ���֤��ޤ��� (������: 3)bytes() �⤷���� str() �Υ��󥹥��󥹤����Ԥ���Ƥ���Τ� %s �Ǥ���int() ��������Ѵ���ǽ�ʤ�Τ����Ԥ���Ƥ���Τ� %s �Ǥ���long() ��������Ѵ���ǽ�ʤ�Τ����Ԥ���Ƥ���Τ� %s �Ǥ����������󥹤���ǿ�ˤ� 2 �����Ԥ���Ƥ��ޤ����� %d �Ǥ���str() �⤷���� unicode() �Υ��󥹥��󥹤����Ԥ���Ƥ���Τ� %s �Ǥ���vim.Buffer���֥������Ȥ����Ԥ���Ƥ���Τ� %s �Ǥ���vim.TabPage���֥������Ȥ����Ԥ���Ƥ���Τ� %s �Ǥ���vim.Window���֥������Ȥ����Ԥ���Ƥ���Τ� %s �Ǥ������ϥ���ѥ�����̵���ˤ���Ƥ��ޤ�extend() �ΰ����ꥹ�Ȥؤ�����ɲä˼��Ԥ��ޤ�������˥��� '%s' ���ɲä���Τ˼��Ԥ��ޤ���������ѹ��˼��Ԥ��ޤ������ߤΥ��֤ˤϻ��ꤵ�줿������ɥ�������ޤ���Ǥ����Хåե�̾���ѹ��˼��Ԥ��ޤ����ؿ� %s �μ¹Ԥ˼��Ԥ��ޤ��������ɤμ¹Ԥ˼��Ԥ��ޤ������ꤵ�줿�Хåե� %d �ؤ�ڤ��ؤ��˼��Ԥ��ޤ����� �����ޤ����ե�����
�ե�����̾ / ʸ̮ / ��
filter() �ΰ���%s �μ���λ�ǹ��٥�Υե졼��: %d�ե졼�ब 0 �Ǥ�%ld �Ԥ������ؿ� %s ������ޤ���gvimext.dll ���顼���ƥ졼�������� hashtab ���ѹ�����ޤ����إ���������ץ�����ѥ��� ----
����ǥå����� %s �ǤϤʤ�������饤���ˤ��Ƥ�������insert() �ΰ�������顼: NULL���Ȥ��Ϥ���ޤ�������顼: �ꥹ�Ȥؤ�����ɲä˼��Ԥ��ޤ�������顼: vim�Υꥹ����� %d �μ���˼��Ԥ��ޤ�������顼: imp.find_module �� NULL ��ޤॿ�ץ���֤��ޤ�������顼: ̵�����ͷ��Ǥ�����顼: vim�Υꥹ����� %d �Ϥ���ޤ�������顼: �ꥹ�Ȥ˽�ʬ����Ǥ�����ޤ�������顼: ̤�ΤΥ��ץ���󷿤Ǥ�̵����°���Ǥ�: %s̵���ʥХåե��ֹ�Ǥ�̵���ʼ��Ǥ�̵���ʥޡ���̾�Ǥ��ϥǥХ����Ǥ� ('opendevice' ���ץ����Dz���Ǥ��ޤ�)�ϥǥ��쥯�ȥ�Ǥ��ϥե�����ǤϤ���ޤ����ϥե�����Ǥ��߲�ǽ�ǥХ����Ǥ⤢��ޤ������ɹ����ѤǤ� (������ˤ� ! ���ɲ�)�����ܡ��ɳ����� %4ld:�� %6d, ñ�� %6d - %s�� %ld�� %ld (���� %ld) --%d%%-- col �� %ld: %s�� %ld: "%s" �����ޤ����� %ld: %s ������� �����ޤ����ϰϳ��ι��ֹ�Ǥ��ϰϳ��ι��ֹ�Ǥ��ꥹ�ȤΥ��󥹥ȥ饯���ϥ�����ɰ������դ��ޤ����ꥹ���ϰϳ��Υ���ǥå����Ǥ��ꥹ�Ȥϥ�å�����Ƥ��ޤ�������map() �ΰ����ޡ���̾��1ʸ���Υ���ե��٥åȤǤʤ���Фʤ�ޤ����ޡ�������ꤵ��Ƥ��ޤ���%d ���ܤγ��%d ���ܤγ�� (����� %d ����)�ե�������Υޥå�maximal mch_get_shellsize: ���󥽡���ǤϤʤ�??
��˥塼�� �Խ�->�������->���(�鿴��)�⡼����� ��˥塼�� �Խ�->�������->Vi�ߴ��⡼�����      �ܺ٤ϥ�˥塼�� �إ��->�ɻ� �򻲾Ȥ��Ʋ�����   �ܺ٤ϥ�˥塼�� �إ��->���ݥ󥵡�/��Ͽ �򻲾Ȥ��Ʋ�����minimal �⡼�ɹ��� �ɲä��ޤ����� �ɲä��ޤ���netbeans �Ϥ���GUI�Ǥ���ѤǤ��ޤ���
�������������ư���ޤ�
�ʤ�cscope��³������ޤ���
�ޥå������Τ�����ޤ������Τ褦�ʥ��֥ڡ����Ϥ���ޤ������Τ褦�ʥ�����ɥ��Ϥ���ޤ�����Ʊ������ɥܥå����Ǥϵ�����ޤ������Ĥ���ޤ��� '%s' ����ˤϤ���ޤ���: "%s"�ޤ��������Ƥ��ޤ�������   �ѹ���   �ѹ�����           ��¸�����ͤ� 0 ������ʾ�Ǥʤ���Фʤ�ޤ������ͤ� 0 ����礭���ʤ���Фʤ�ޤ���pe_line_count ������Ǥ�vimrc���Υ��ޥ�ɥ饤��������ɥ���ڴ�������꤬ȯ�����ޤ����ɹ�����°��: �Хåե�����Ͽ��remove() �ΰ���%s ���ִ����ޤ���? (y/n/a/q/l/^E/^Y)reverse() �ΰ����� %d �� %d���ޤǸ��������ΤǾ�����ޤ���ޤǸ��������ΤDz������ޤ������� �����뤬������ %d �ǽ�λ���ޤ�������åȥ��������饤���Υ��ƥåפ� 0 �ϻ���Ǥ��ޤ���sort() �ΰ���"%s" �����stack_idx �� 0 �Ǥ���٤��Ǥ�ʸ����ˤϲ���ʸ����ޤ���ޤ���C����������Ȥ���Ʊ����Ʊ������ ��ʸ����ʸ����ʸ���ϸ��� ignore �Ǥ���ʸ����ʸ����ʸ���ϸ��� match �Ǥ���ʸ�� conceal �ϸ��� off �Ǥ���ʸ�� conceal �ϸ��� on �Ǥ���ʸ�� iskeyword ��ʸ�� spell �ϸ��� default �Ǥ���ʸ�� spell �ϸ��� notoplevel �Ǥ���ʸ�� spell �ϸ��� toplevel �Ǥ����� %d (��%d%s)����̾%s �� (%s ���)�ܺ٤ʾ����           :help cp-default<Enter>�ܺ٤ʾ����           :help iccf<Enter>      �ܺ٤ʾ����           :help register<Enter>  �ܺ٤ʾ����           :help sponsor<Enter>   �С����������       :help version8<Enter>  ����饤��إ�פ�     :help<Enter> �� <F1>   ��λ����ˤ�           :q<Enter>              Vim�侩�ͤˤ���ˤ�    :set nocp<Enter>       %s vim�μ��񷿤��Ѵ��Ǥ��ޤ���%s ��vim�Υꥹ�Ȥ��Ѵ��Ǥ��ޤ���%s ��vim�ι�¤�Τ��Ѵ��Ǥ��ޤ������ץ������ͤϼ���Ǥ��ޤ��������Х륪�ץ���� %s ������ϤǤ��ޤ��������Х���ͤ�̵�����ץ���� %s ������ϤǤ��ޤ���uniq() �ΰ������̤�ΤΥե饰: ̤�ΤΥ��ץ����Ǥ�̤�Τ� vimOption �Ǥ�̵̾�ؿ� %s ��¸�ߤ��ޤ���C����� int ���Ȥ��Ƥ��ͤ��礭�᤮�ޤ�C����� int ���Ȥ��Ƥ��ͤ������᤮�ޤ�version vim ���顼�ϰϳ��Υ�����ɥ��ֹ�Ǥ�������ɥ���̵���Ǥ�with (���饷�å�) GUI.with Carbon GUI.with Cocoa GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GTK3 GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.'opendevice' ���ץ����ˤ��ǥХ����ؤν񤭹��ߤϤǤ��ޤ���PK�j�Z�A�77vim80/lang/menu_vi_vn.vimnu�[���" Menu Translations:	Vietnamese
" Maintainer:		Phan Vinh Thinh <teppi@vnlinux.org>
" Last Change:		12 Mar 2005
" URL:			http://iatp.vspu.ac.ru/phan/vietvim/lang/menu_vi_vn.vim
"
"
" Adopted for VietVim project by Phan Vinh Thinh.
" First translation: Phan Vinh Thinh <teppi@vnlinux.org>
"
"
" Quit when menu translations have already been done.
"
if exists("did_menu_trans")
   finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Top
menutrans &File				&Tập\ tin
menutrans &Edit				&Soạn\ thảo
menutrans &Tools			Cô&ng\ cụ
menutrans &Syntax			&Cú\ pháp
menutrans &Buffers			&Bộ\ đệm
menutrans &Window			Cử&a\ sổ
menutrans &Help				Trợ\ &giúp
"
"
"
" Help menu
menutrans &Overview<Tab><F1>		&Tổng\ quan<Tab><F1>
menutrans &User\ Manual			&Hướng\ dẫn\ sử\ dụng
menutrans &How-to\ links		&Làm\ như\ thế\ nào
menutrans &Find\.\.\.			Tìm\ &kiếm\.\.\.
"--------------------
menutrans &Credits			Lời\ &cảm\ ơn
menutrans Co&pying			&Bản\ quyền
menutrans &Sponsor/Register		&Giúp\ đỡ/Đăng\ ký
menutrans O&rphans			Trẻ\ &mồ\ côi
"--------------------
menutrans &Version			&Phiên\ bản
menutrans &About			&Về\ Vim
"
"
" File menu
menutrans &Open\.\.\.<Tab>:e		&Mở\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	&Chia-Mở\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		Mớ&i<Tab>:enew
menutrans &Close<Tab>:close		Đó&ng<Tab>:close
"--------------------
menutrans &Save<Tab>:w			&Ghi\ nhớ<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Ghi\ n&hư\.\.\.<Tab>:sav
"--------------------
menutrans Split\ &Diff\ with\.\.\.	&So\ sánh\ với\.\.\.
menutrans Split\ Patched\ &By\.\.\.	So\ sánh\ đã\ vá\ lỗi\ &bởi\.\.\.
"--------------------
menutrans &Print			In\ &ra
menutrans Sa&ve-Exit<Tab>:wqa		Ghi\ nhớ\ rồi\ th&oát <Tab>:wqa
menutrans E&xit<Tab>:qa			&Thoát<Tab>:qa
"
"
" Edit menu
menutrans &Undo<Tab>u			&Hủy\ bước<Tab>u
menutrans &Redo<Tab>^R			&Làm\ lại<Tab>^R
menutrans Rep&eat<Tab>\.		Lặ&p\ lại<Tab>\.
"--------------------
menutrans Cu&t<Tab>"+x			&Cắt<Tab>"+x
menutrans &Copy<Tab>"+y			&Sao\ chép<Tab>"+y
menutrans &Paste<Tab>"+gP		&Dán<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Dán\ trướ&c<Tab>[p
menutrans Put\ &After<Tab>]p		Dán\ sa&u<Tab>]p
menutrans &Delete<Tab>x			&Xóa<Tab>x
menutrans &Select\ All<Tab>ggVG		Chọ&n\ tất\ cả<Tab>ggVG
"--------------------
menutrans &Find\.\.\.<Tab>/		&Tìm\ kiếm\.\.\.<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.     Tìm\ kiếm\ &và\ thay\ thế\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.<Tab>:%s     Tìm\ kiếm\ &và\ thay\ thế\.\.\.<Tab>:%s
menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s     Tìm\ kiếm\ &và\ thay\ thế\.\.\<Tab>:s
"--------------------
menutrans Settings\ &Window		Cửa\ &sổ\ thiết\ lập
menutrans &Global\ Settings		Thiết\ lập\ t&oàn\ cầu
menutrans F&ile\ Settings		&Thiết\ lập\ tập\ t&in
menutrans C&olor\ Scheme		Phối\ hợp\ màu\ &sắc
menutrans &Keymap			Sơ\ đồ\ &bàn\ phím
menutrans Select\ Fo&nt\.\.\.		Chọn\ &phông\ chữ\.\.\.
">>>----------------- Edit/Global settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!     &Chiếu\ sáng\ từ\ tìm\ thấy <Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		 &Không\ tính\ đến\ kiểu\ chữ<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		 Cho\ &biết\ phần\ tử\ có\ cặp<Tab>:set\ sm!
menutrans &Context\ lines				 Số\ &dòng\ quanh\ con\ trỏ
menutrans &Virtual\ Edit				 &Soạn\ thảo\ ảo
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		 Chế\ độ\ chè&n<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		 Tương\ thích\ với\ &Vi<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				 Đường\ dẫn\ tìm\ &kiếm\.\.\.
menutrans Ta&g\ Files\.\.\.				 Tập\ tin\ t&hẻ\ ghi\.\.\.
"
menutrans Toggle\ &Toolbar				 Ẩn/hiện\ th&anh\ công\ cụ
menutrans Toggle\ &Bottom\ Scrollbar		Ẩn/hiện\ thanh\ kéo\ nằ&m\ dưới
menutrans Toggle\ &Left\ Scrollbar			 Ẩn/hiện\ thanh\ ké&o\ bên\ trái
menutrans Toggle\ &Right\ Scrollbar			 Ẩn/hiện\ thanh\ kéo\ bên\ &phải
">>>->>>------------- Edit/Global settings/Virtual edit
menutrans Never						 Tắt
menutrans Block\ Selection				 Khi\ chọn\ khối
menutrans Insert\ mode					 Trong\ chế\ độ\ Chèn
menutrans Block\ and\ Insert				 Khi\ chọn\ khối\ và\ Chèn
menutrans Always					 Luôn\ luôn\ bật
">>>----------------- Edit/File settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	 Đánh\ &số\ dòng<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		 &Chế\ độ\ danh\ sách<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		 &Ngắt\ những\ dòng\ dài<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	 Ngắt\ từ\ nguyên\ &vẹn<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		 &Dấu\ trắng\ thay\ cho\ tab<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		 &Tự\ động\ thụt\ dòng<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		 T&hụt\ dòng\ kiểu\ C<Tab>:set\ cin!
">>>---
menutrans &Shiftwidth					 Chiều\ &rộng\ thụt\ dòng
menutrans Soft\ &Tabstop				 Chiều\ rộng\ T&ab
menutrans Te&xt\ Width\.\.\.				 Chiều\ rộng\ văn\ &bản\.\.\.
menutrans &File\ Format\.\.\.				 Định\ dạng\ tậ&p\ tin\.\.\.
">>>----------------- Edit/File settings/Color Scheme
menutrans default			Mặc\ định
">>>----------------- Edit/File settings/Keymap
menutrans None						Không\ dùng
menutrans arabic					Ả\ rập
menutrans czech						Séc
menutrans esperanto					Etperantô
menutrans greek						Hy\ Lạp
menutrans hebrew					Do\ thái
menutrans hebrewp					Do\ thái\ p
menutrans lithuania-baltic			Lát-vi\ Bal-tíc
menutrans magyar					Hungari
menutrans persian-iranian			Iran\ Ba\ Tư
menutrans persian					Ba\ Tư
menutrans russian-jcuken			Nga\ jcuken
menutrans russian-jcukenwin			Nga\ jcukenwin
menutrans russian-yawerty			Nga\ yawerty
menutrans serbian-latin				Xéc-bi\ La-tinh
menutrans serbian					Xéc-bi
menutrans slovak					slovak
"
"
"
" Tools menu
menutrans &Jump\ to\ this\ tag<Tab>g^]			&Nhảy\ tới\ thẻ\ ghi<Tab>g^]
menutrans Jump\ &back<Tab>^T				&Quay\ lại<Tab>^T
menutrans Build\ &Tags\ File				&Tạo\ tập\ tin\ thẻ\ ghi
"-------------------
menutrans &Folding					Nếp\ &gấp
menutrans &Diff						&Khác\ biệt (diff)
"-------------------
menutrans &Make<Tab>:make				&Biên\ dịch<Tab>:make
menutrans &List\ Errors<Tab>:cl				&Danh\ sách\ lỗi<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!			Danh\ &sách\ thông\ báo<Tab>:cl!
menutrans &Next\ Error<Tab>:cn				&Lỗi\ tiếp\ theo<Tab>:cn
menutrans &Previous\ Error<Tab>:cp			Lỗi\ t&rước<Tab>:cp
menutrans &Older\ List<Tab>:cold			Danh\ sách\ &cũ\ hơn<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew			Danh\ sách\ &mới\ hơn<Tab>:cnew
menutrans Error\ &Window				Cử&a\ sổ\ lỗi
menutrans &Set\ Compiler				C&họn\ trình\ biên\ dịch
"-------------------
menutrans &Convert\ to\ HEX<Tab>:%!xxd			Ch&uyển\ thành\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r			Chuyển\ từ\ HE&X<Tab>:%!xxd\ -r
">>>---------------- Folds
menutrans &Enable/Disable\ folds<Tab>zi			&Bật/tắt\ nếp\ gấp<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&Xem\ dòng\ có\ con\ trỏ<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		&Chỉ\ xem\ dòng\ có\ con\ trỏ<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm			Đóng\ &nhiều\ nếp\ gấp\ hơn<Tab>zm
menutrans &Close\ all\ folds<Tab>zM			Đóng\ mọi\ nếp\ &gấp<Tab>zM
menutrans &Open\ all\ folds<Tab>zR			&Mở\ mọi\ nếp\ gấp<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr			Mở\ n&hiều\ nếp\ gấp\ hơn<Tab>zr
menutrans Fold\ Met&hod					&Phương\ pháp\ gấp
menutrans Create\ &Fold<Tab>zf				&Tạo\ nếp\ gấp<Tab>zf
menutrans &Delete\ Fold<Tab>zd				Xó&a\ nếp\ gấp<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD			Xóa\ mọ&i\ nếp\ gấp<Tab>zD
menutrans Fold\ col&umn\ width				Chiều\ &rộng\ cột\ nếp\ gấp
">>>->>>----------- Tools/Folds/Fold Method
menutrans M&anual					&Thủ\ công
menutrans I&ndent					Thụt\ &dòng
menutrans E&xpression					&Biểu\ thức
menutrans S&yntax					&Cú\ pháp
menutrans Ma&rker					&Dấu\ hiệu
">>>--------------- Tools/Diff
menutrans &Update					&Cập\ nhật
menutrans &Get\ Block					&Thay\ đổi\ bộ\ đệm\ này
menutrans &Put\ Block					T&hay\ đổi\ bộ\ đệm\ khác
">>>--------------- Tools/Diff/Error window
menutrans &Update<Tab>:cwin				&Cập\ nhật<Tab>:cwin
menutrans &Close<Tab>:cclose				Đó&ng<Tab>:cclose
menutrans &Open<Tab>:copen				&Mở<Tab>:copen
"
"
" Syntax menu
"
menutrans &Show\ filetypes\ in\ menu			&Hiển\ thị\ loại\ tập\ tin\ trong\ trình\ đơn
menutrans Set\ '&syntax'\ only				&Chỉ\ thay\ đổi\ giá\ trị\ 'syntax'
menutrans Set\ '&filetype'\ too				Th&ay\ đổi\ cả\ giá\ trị\ 'filetype'
menutrans &Off						&Tắt
menutrans &Manual					&Bằng\ tay
menutrans A&utomatic					Tự\ độ&ng
menutrans on/off\ for\ &This\ file			Bật\ tắt\ &cho\ tập\ tin\ này
menutrans Co&lor\ test					&Kiểm\ tra\ màu\ sắc
menutrans &Highlight\ test				Kiểm\ tra\ chiếu\ &sáng
menutrans &Convert\ to\ HTML				&Chuyển\ thành\ HTML
">>>---------------- Syntax/AB
menutrans Apache\ config					Cấu\ hình\ Apache
menutrans Ant\ build\ file					Tập\ tin\ biên\ dịch\ Ant
menutrans Apache-style\ config				Cấu\ hình\ phong\ cách\ Apache
menutrans Arc\ Macro\ Language				Ngôn\ ngữ\ Macro\ Arc
menutrans Arch\ inventory					Kiểm\ kê\ Arch
menutrans ASP\ with\ VBScript				ASP\ với\ VBScript
menutrans ASP\ with\ Perl					ASP\ với\ Perl
menutrans BC\ calculator					Máy\ tính\ BC
menutrans BDF\ font							Phông\ chữ\ BDF
menutrans blank								không\ dùng
">>>---------------- Syntax/C
menutrans Calendar							Lịch
menutrans Cheetah\ template					Mẫu\ Cheetah
menutrans Config							Cấu\ hình
"
"
" Buffers menu
"
menutrans &Refresh\ menu				&Cập\ nhật\ trình\ đơn
menutrans Delete					&Xóa
menutrans &Alternate					Xen\ &kẽ
menutrans &Next						Tiế&p\ theo
menutrans &Previous					&Trước
menutrans [No\ File]					[Không\ có\ tập\ tin]
"
"
" Window menu
"
menutrans &New<Tab>^Wn					&Mới<Tab>^Wn
menutrans S&plit<Tab>^Ws				&Chia\ đôi<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^			Chia\ &tới\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv			Chia\ &dọc<Tab>^Wv
menutrans Split\ File\ E&xplorer			Mở\ trình\ &duyệt\ tập\ tin
"
menutrans &Close<Tab>^Wc				Đó&ng<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo			Đóng\ các\ cửa\ sổ\ &khác<Tab>^Wo
"
menutrans Move\ &To					C&huyển\ tới
menutrans Rotate\ &Up<Tab>^WR				&Lên\ trên<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr				&Xuống\ dưới<Tab>^Wr
"
menutrans &Equal\ Size<Tab>^W=				Cân\ &bằng\ kích\ thước<Tab>^W=
menutrans &Max\ Height<Tab>^W_				Chiều\ c&ao\ lớn\ nhất<Tab>^W_
menutrans M&in\ Height<Tab>^W1_				Chiều\ ca&o\ nhỏ\ nhất<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|				Chiều\ &rộng\ lớn\ nhất<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|				Chiề&u\ rộng\ nhỏ\ nhất<Tab>^W1\|
">>>----------------- Window/Move To
menutrans &Top<Tab>^WK					Đầ&u<Tab>^WK
menutrans &Bottom<Tab>^WJ				&Cuối<Tab>^WJ
menutrans &Left\ side<Tab>^WH				&Trái<Tab>^WH
menutrans &Right\ side<Tab>^WL				&Phải<Tab>^WL
"
"
" The popup menu
"
"
menutrans &Undo						&Hủy\ bước
menutrans Cu&t						&Cắt
menutrans &Copy						&Sao\ chép
menutrans &Paste					&Dán
menutrans &Delete					&Xóa
menutrans Select\ Blockwise				Chọn\ &theo\ khối
menutrans Select\ &Word					Chọ&n\ từ
menutrans Select\ &Line					Chọn\ dòn&g
menutrans Select\ &Block				Chọn\ &khối
menutrans Select\ &All					Chọn\ tất\ &cả
"
" The GUI toolbar
"
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open					Mở tập tin
    tmenu ToolBar.Save					Ghi nhớ tập tin
    tmenu ToolBar.SaveAll				Ghi nhớ tất cả
    tmenu ToolBar.Print					In ra
    tmenu ToolBar.Undo					Hủy bước
    tmenu ToolBar.Redo					Làm lại
    tmenu ToolBar.Cut					Cắt
    tmenu ToolBar.Copy					Sao chép
    tmenu ToolBar.Paste					Dán
    tmenu ToolBar.Find					Tìm kiếm
    tmenu ToolBar.FindNext				Tìm tiếp theo
    tmenu ToolBar.FindPrev				Tìm ngược lại
    tmenu ToolBar.Replace				Thay thế...
    tmenu ToolBar.LoadSesn				Nạp buổi làm việc
    tmenu ToolBar.SaveSesn				Ghi nhớ buổi làm việc
    tmenu ToolBar.RunScript				Chạy script của Vim
    tmenu ToolBar.Make					Biên dịch
    tmenu ToolBar.Shell					Shell
    tmenu ToolBar.RunCtags				Tạo tập tin thẻ ghi
    tmenu ToolBar.TagJump				Chuyển tới thẻ ghi
    tmenu ToolBar.Help					Trợ giúp
    tmenu ToolBar.FindHelp				Tìm trong trợ giúp
  endfun
endif
"
"
" Dialog texts
"
" Find in help dialog
"
let g:menutrans_help_dialog = "Hãy nhập câu lệnh hoặc từ khóa tìm kiếm:\n\nThêm i_ để tìm kiếm câu lệnh của chế độ Nhập Input (Ví dụ, i_CTRL-X)\nThêm c_ để tìm kiếm câu lệnh của chế độ soạn thảo dòng lệnh (Ví dụ, с_<Del>)\nThêm ' để tìm kiếm trợ giúp cho một tùy chọn (ví dụ, 'shiftwidth')"
"
" Searh path dialog
"
let g:menutrans_path_dialog = "Hãy chỉ ra đường dẫn để tìm kiếm tập tin.\nTên của thư mục phân cách nhau bởi dấu phẩy."
"
" Tag files dialog
"
let g:menutrans_tags_dialog = "Nhập tên tập tin thẻ ghi (phân cách bởi dấu phẩy).\n"
"
" Text width dialog
"
let g:menutrans_textwidth_dialog = "Hãy nhập chiều rộng văn bản mới.\nNhập 0 để hủy bỏ."
"
" File format dialog
"
let g:menutrans_fileformat_dialog = "Hãy chọn định dạng tập tin."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Hủy bỏ"
"
let menutrans_no_file = "[không có tập tin]"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z���+�+vim80/lang/menu_zh_cn.utf-8.vimnu�[���" Menu Translations:    Simplified Chinese
" Maintainer:           Shun Bai <baishunde@gmail.com>
" Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
" Last Change:          2014 Oct 15

" vim: ts=8 sw=8 noet

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Help menu
menutrans &Help			帮助(&H)
menutrans &Overview<Tab><F1>	纵览(&O)<Tab><F1>
menutrans &User\ Manual		用户手册(&U)
menutrans &How-to\ links	How-to\ 指引(&H)
menutrans &Find\.\.\.		查找(&F)\.\.\.
menutrans &Credits		致谢(&C)
menutrans Co&pying		版权(&P)
menutrans &Sponsor/Register	赞助/注册(&S)
menutrans O&rphans		孤儿(&R)
menutrans &Version		版本(&V)
menutrans &About		关于(&A)

" File menu
menutrans &File				文件(&F)
menutrans &Open\.\.\.<Tab>:e		打开(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割并打开(&L)\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	打开标签\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		新建(&N)<Tab>:enew
menutrans &Close<Tab>:close		关闭(&C)<Tab>:close
menutrans &Save<Tab>:w			保存(&S)<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	另存为(&A)\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	分割比较(Diff)(&D)\.\.\.
menutrans Split\ Patched\ &By\.\.\.	分割打补丁(Patch)(&B)\.\.\.
menutrans &Print			打印(&P)
menutrans Sa&ve-Exit<Tab>:wqa		保存并退出(&V)<Tab>:wqa
menutrans E&xit<Tab>:qa			退出(&X)<Tab>:qa

" Edit menu
menutrans &Edit				编辑(&E)
menutrans &Undo<Tab>u			撤销(&U)<Tab>u
menutrans &Redo<Tab>^R			重做(&R)<Tab>^R
menutrans Rep&eat<Tab>\.		重复上次操作(&E)<Tab>\.
menutrans Cu&t<Tab>"+x			剪切(&T)<Tab>"+x
menutrans &Copy<Tab>"+y			复制(&C)<Tab>"+y
menutrans &Paste<Tab>"+gP		粘贴(&P)<Tab>"+gP
menutrans Put\ &Before<Tab>[p		粘贴到光标前(&B)<Tab>[p
menutrans Put\ &After<Tab>]p		粘贴到光标后(&A)<Tab>]p
menutrans &Delete<Tab>x			删除(&D)<Tab>x
menutrans &Select\ All<Tab>ggVG		全选(&S)<Tab>ggVG
menutrans &Find\.\.\.			查找(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	查找和替换(&L)\.\.\.
menutrans &Find<Tab>/			查找(&F)<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s	查找和替换(&L)<Tab>:%s
menutrans Settings\ &Window		设定窗口(&W)
menutrans Startup\ &Settings		启动设定(&S)
menutrans &Global\ Settings		全局设定(&G)

" Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	开/关模式高亮(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		开/关忽略大小写(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		开/关显示配对(&S)<Tab>:set\ sm!
menutrans &Context\ lines			上下文行数(&C)

menutrans &Virtual\ Edit			虚拟编辑(&V)
menutrans Never					从不
menutrans Block\ Selection			块选择
menutrans Insert\ mode				插入模式
menutrans Block\ and\ Insert			块选择和插入模式
menutrans Always				总是

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	开/关插入模式(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	开/关\ Vi\ 兼容<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.			查找路径(&P)\.\.\.
menutrans Ta&g\ Files\.\.\.			Tag\ 文件(&T)\.\.\.

" GUI options
menutrans Toggle\ &Toolbar			开/关工具栏(&T)
menutrans Toggle\ &Bottom\ Scrollbar		开/关底部滚动条(&B)
menutrans Toggle\ &Left\ Scrollbar		开/关左端滚动条(&L)
menutrans Toggle\ &Right\ Scrollbar		开/关右端滚动条(&R)

" Edit/File Settings
menutrans F&ile\ Settings			文件设定(&I)

" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	开/关显示行号(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! 开/关相对行号(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		开/关\ list\ 模式(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		开/关折行(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	开/关整词折行(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		开/关扩展\ tab(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		开/关自动缩进(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		开/关\ C\ 缩进(&C)<Tab>:set\ cin!

" other options
menutrans &Shiftwidth			缩进宽度(&S)
menutrans Soft\ &Tabstop		Soft\ Tab\ 宽度(&T)
menutrans Te&xt\ Width\.\.\.		文本宽度(&X)\.\.\.
menutrans &File\ Format\.\.\.		文件格式(&F)\.\.\.
menutrans C&olor\ Scheme		配色方案(&O)
menutrans Select\ Fo&nt\.\.\.		选择字体(&N)\.\.\.
menutrans &Keymap			键盘映射(&K)

" Programming menu
menutrans &Tools			工具(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^]	跳转到这个\ tag(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T		跳转返回(&B)<Tab>^T
menutrans Build\ &Tags\ File		建立\ Tags\ 文件(&T)

" Tools.Spelling Menu
menutrans &Spelling				拼写检查(&S)
menutrans &Spell\ Check\ On			打开拼写检查(&S)
menutrans Spell\ Check\ &Off			关闭拼写检查(&O)
menutrans To\ &Next\ error<Tab>]s		上一个错误(&N)<Tab>]s
menutrans To\ &Previous\ error<Tab>[s		下一个错误(&P)<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=		修正建议(&C)<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	重复修正(&R)<Tab>:spellrepall
menutrans Set\ language\ to\ "en"		设定语言为\ "en"
menutrans Set\ language\ to\ "en_au"		设定语言为\ "en_au"
menutrans Set\ language\ to\ "en_ca"		设定语言为\ "en_ca"
menutrans Set\ language\ to\ "en_gb"		设定语言为\ "en_gb"
menutrans Set\ language\ to\ "en_nz"		设定语言为\ "en_nz"
menutrans Set\ language\ to\ "en_us"		设定语言为\ "en_us"
menutrans &Find\ More\ Languages		查找更多语言(&F)

" Tools.Fold Menu
" open close folds
menutrans &Folding				折叠(&F)
menutrans &Enable/Disable\ folds<Tab>zi		启用/禁用折叠(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv		查看此行(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	仅查看此行(&W)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm		关闭更多折叠(&L)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM		关闭所有折叠(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr		打开更多折叠(&P)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR		打开所有折叠(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod			折叠方法(&H)
menutrans M&anual			手工(&A)
menutrans I&ndent			缩进(&N)
menutrans E&xpression			表达式(&X)
menutrans S&yntax			语法(&Y)
menutrans &Diff				比较(Diff)(&D)
menutrans Ma&rker			标记(&R)
" create and delete folds
menutrans Create\ &Fold<Tab>zf		创建折叠(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd		删除折叠(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	删除所有折叠(&A)<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width		折叠栏宽度(&W)

" Tools.Diff Menu
menutrans &Diff				比较(Diff)(&D)
menutrans &Update			更新(&U)
menutrans &Get\ Block			得到块(&G)
menutrans &Put\ Block			放置块(&P)

menutrans &Make<Tab>:make		Make(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl		列出错误(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	列出消息(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		下一个错误(&N)<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	上一个错误(&P)<Tab>:cp
menutrans &Older\ List<Tab>:cold	更旧的错误列表(&O)<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	更新的错误列表(&E)<Tab>:cnew
menutrans Error\ &Window		错误窗口(&W)
menutrans &Update<Tab>:cwin		更新(&U)<Tab>:cwin
menutrans &Open<Tab>:copen		打开(&O)<Tab>:copen
menutrans &Close<Tab>:cclose		关闭(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	转换成十六进制<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	转换返回<Tab>:%!xxd\ -r
menutrans Se&T\ Compiler		设定编译器(&T)

" Names for buffer menu.
menutrans &Buffers		缓冲区(&B)
menutrans &Refresh\ menu	更新菜单(&R)
menutrans &Delete		删除(&D)
menutrans &Alternate		交替(&A)
menutrans &Next			下一个(&N)
menutrans &Previous		上一个(&P)

" Window menu
menutrans &Window			窗口(&W)
menutrans &New<Tab>^Wn			新建(&N)<Tab>^Wn
menutrans S&plit<Tab>^Ws		分割(&P)<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	分割到\ #(&L)<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	垂直分割(&V)<Tab>^Wv
menutrans Split\ File\ E&xplorer	分割文件浏览器(&X)
menutrans &Close<Tab>^Wc		关闭(&C)<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	关闭其它窗口(&O)<Tab>^Wo
menutrans Move\ &To			移动到(&T)
menutrans &Top<Tab>^WK			顶端(&T)<Tab>^WK
menutrans &Bottom<Tab>^WJ		底端(&B)<Tab>^WJ
menutrans &Left\ side<Tab>^WH		左边(&L)<Tab>^WH
menutrans &Right\ side<Tab>^WL		右边(&R)<Tab>^WL
" menutrans Ne&xt<Tab>^Ww		下一个(&X)<Tab>^Ww
" menutrans P&revious<Tab>^WW		上一个(&R)<Tab>^WW
menutrans Rotate\ &Up<Tab>^WR		向上轮换(&U)<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		向下轮换(&D)<Tab>^Wr
menutrans &Equal\ Size<Tab>^W=		等大(&E)<Tab>^W=
menutrans &Max\ Height<Tab>^W_		最大高度(&M)<Tab>^W
menutrans M&in\ Height<Tab>^W1_		最小高度(&I)<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		最大宽度(&W)<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		最小宽度(&H)<Tab>^W1\|
"
" The popup menu
menutrans &Undo			撤销(&U)
menutrans Cu&t			剪切(&T)
menutrans &Copy			复制(&C)
menutrans &Paste		粘贴(&P)
menutrans &Delete		删除(&D)
menutrans Select\ Blockwise	选择块
menutrans Select\ &Word		选择单词(&W)
menutrans Select\ &Sentence	选择句子(&S)
menutrans Select\ Pa&ragraph	选择段落(&R)
menutrans Select\ &Line		选择行(&L)
menutrans Select\ &Block	选择块(&B)
menutrans Select\ &All		全选(&A)
"
" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		打开文件
    tmenu ToolBar.Save		保存当前文件
    tmenu ToolBar.SaveAll	保存全部文件
    tmenu ToolBar.Print		打印
    tmenu ToolBar.Undo		撤销
    tmenu ToolBar.Redo		重做
    tmenu ToolBar.Cut		剪切到剪贴板
    tmenu ToolBar.Copy		复制到剪贴板
    tmenu ToolBar.Paste		从剪贴板粘贴
    tmenu ToolBar.Find		查找...
    tmenu ToolBar.FindNext	查找下一个
    tmenu ToolBar.FindPrev	查找上一个
    tmenu ToolBar.Replace	查找和替换...
    tmenu ToolBar.LoadSesn	加载会话
    tmenu ToolBar.SaveSesn	保存当前会话
    tmenu ToolBar.RunScript	运行 Vim 脚本
    tmenu ToolBar.Make		执行 Make (:make)
    tmenu ToolBar.RunCtags	在当前目录建立 tags (!ctags -R .)
    tmenu ToolBar.TagJump	跳转到光标位置的 tag
    tmenu ToolBar.Help		Vim 帮助
    tmenu ToolBar.FindHelp	查找 Vim 帮助
  endfun
endif

" Syntax menu
menutrans &Syntax			语法(&S)
menutrans &Show\ filetypes\ in\ menu	在菜单中显示文件类型(&S)
menutrans &Off				关闭(&O)
menutrans &Manual			手工(&M)
menutrans A&utomatic			自动(&U)
menutrans on/off\ for\ &This\ file	仅对这个文件开/关(&T)
menutrans Co&lor\ test			色彩测试(&L)
menutrans &Highlight\ test		高亮测试(&H)
menutrans &Convert\ to\ HTML		转换成\ HTML(&C)
menutrans Set\ '&syntax'\ only		仅设定\ 'syntax'(&S)
menutrans Set\ '&filetype'\ too		也设定\ 'filetype'(&F)

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�ZE��]]vim80/lang/menu_nl_nl.utf-8.vimnu�[���" Menu Translations:	Nederlands for UTF-8 encoding

source <sfile>:p:h/menu_nl_nl.latin1.vim
PK�j�Z�su��,�,$vim80/lang/menu_hu_hu.iso_8859-2.vimnu�[���" Menu Translations:	Hungarian (Magyar)
" Original Translation:	Zolt�n �rp�dffy
" Maintained By:	Kontra Gergely <kgergely@mcl.hu>
" Last Change:		2012 May 01
" I'm working on defining (unaccented) hotkeys for everything.
" I want to remove y and z hotkeys, because on the hungarian keymap they're at
" a differrent place.
" I also want to avoid g and j shortcuts, because you cannot see, wheter
" they're underlined or not.
" If the hotkeys are not uniq (pressing the hotkey doesn't executes the menu,
" just one menupoint is selected), or you find any other undesired behaviour,
" please report it to me.
" All kind of feedback is welcome.
"
" Igyekeztem mindenhez gyorsbillenty�t rendelni, lehet�leg nem �kezeteset.
" Tov�bbi tennival� az y �s z gyorsbillenty�k kiirt�sa, ezenk�v�l a g, j
" billenty�k irt�sa is, mivel ez ut�bbiak al�h�zott v�ltozat�t nem k�nny�
" felismerni.
" Amennyiben valahol nem egy�rtelm�k a gyorsbillenty�k (a gyorsbillenty�t
" le�tve nem hajt�dik v�gre a kiszemelt men�pont, hanem csak kiv�laszt�dik,
" vagy m�sik men�pont v�laszt�dik ki), vagy egy�b hib�t tal�lsz, k�rlek jelezd
" nekem a fenti email c�men.
" Mindennem� visszajelz�st sz�vesen fogadok.

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding iso-8859-2

" Help menu
menutrans &Help			&S�g�
menutrans &Overview<Tab><F1>	�&ttekint�s<Tab><F1>
menutrans &How-to\ links	&HOGYAN\ linkek
menutrans &User\ Manual		&K�zik�nyv
menutrans &Credits		&Szerz�k,\ k�sz�netek
menutrans Co&pying		&V�djegy
menutrans O&rphans		�rv�&k
menutrans &Find\.\.\.		Ke&res�s\.\.\.
menutrans &Version		&Verzi�
menutrans &About		&N�vjegy
" File menu
menutrans &File				&F�jl
menutrans &Open\.\.\.<Tab>:e		Meg&nyit�s\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Megnyit�s\ �j\ a&blakba\.\.\.<Tab>:sp
menutrans &New<Tab>:enew		�j\ dok&umentum<Tab>:enew
menutrans &Close<Tab>:close		Be&z�r�s<Tab>:close
menutrans &Save<Tab>:w			&Ment�s<Tab>:w
menutrans Split\ &Diff\ with\.\.\.	�ssze&hasonl�t�s\.\.\.
menutrans Split\ Patched\ &By\.\.\.	�sszehasonl�t�s\ &patch\ -el\.\.\.
menutrans Save\ &As\.\.\.<Tab>:sav	Ment�&s\ m�sk�nt\.\.\.<Tab>:w
menutrans &Print			Nyomt&at�s
menutrans Sa&ve-Exit<Tab>:wqa		Ment�s\ �s\ k&il�p�s<Tab>:wqa
menutrans E&xit<Tab>:qa			&Kil�p�s<Tab>:qa

" Edit menu
menutrans &Edit				S&zerkeszt�s
menutrans &Undo<Tab>u			&Visszavon�s<Tab>u
menutrans &Redo<Tab>^R			M�&gis<Tab>^R
menutrans Rep&eat<Tab>\.		&Ism�t<Tab>\.
menutrans Cu&t<Tab>"+x			&Kiv�g�s<Tab>"+x
menutrans &Copy<Tab>"+y			&M�sol�s<Tab>"+y
menutrans &Paste<Tab>"+gP		&Beilleszt�s<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Berak�s\ e&l�<Tab>[p
menutrans Put\ &After<Tab>]p		Berak�s\ &m�g�<Tab>]p
menutrans &Delete<Tab>x			&T�rl�s<Tab>x
menutrans &Select\ all<Tab>ggVG		A&z\ �sszes kijel�l�se<Tab>ggvG
menutrans &Find\.\.\.			Ke&res�s\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.	Keres�s\ �s\ c&sere\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	Keres�s\ �s\ c&sere<Tab>:%s
menutrans Find\ and\ Rep&lace		Keres�s\ �s\ c&sere
menutrans Find\ and\ Rep&lace<Tab>:s	Keres�s\ �s\ c&sere<Tab>:s
menutrans Settings\ &Window		&Ablak\ be�ll�t�sai
menutrans &Global\ Settings		�l&tal�nos\ be�ll�t�sok
menutrans F&ile\ Settings		&F�jl\ be�ll�t�sok
menutrans C&olor\ Scheme		&Sz�nek
menutrans &Keymap			Billent&y�zetkioszt�s

" Edit.Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Minta\ kiemel�s\ BE/KI<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	&Kis/nagybet�\ azonos/k�l�nb�z�<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!	&Z�r�jelp�r\ mutat�sa\ BE/KI<Tab>:set\ sm!
menutrans &Context\ lines		&Kurzor\ ablak\ sz�l�t�l
menutrans &Virtual\ Edit		&Virtu�lis\ szerkeszt�s
menutrans Never				&Soha
menutrans Block\ Selection		&Blokk\ kijel�l�sekor
menutrans Insert\ mode			S&z�veg\ bevitelekor
menutrans Block\ and\ Insert		Bl&okk\ kijel�l�sekor\ �s\ sz�veg\ bevitelekor
menutrans Always			&Mindig
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	&Sz�vegbeviteli\ m�d\ BE/KI<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	&Vi\ kompat�bilis\ m�d\ BE/Ki<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.		Ke&res�si\ �tvonal\.\.\.
menutrans Ta&g\ Files\.\.\.		&Tag\ f�jl\.\.\.
menutrans Toggle\ &Toolbar		&Eszk�zt�r\ BE/KI
menutrans Toggle\ &Bottom\ Scrollbar	&V�zszintes\ G�rget�s�v\ BE/KI
menutrans Toggle\ &Left\ Scrollbar	&Bal\ g�rget�s�v\ BE/KI
menutrans Toggle\ &Right\ Scrollbar	&Jobb\ g�rget�s�v\ BE/KI
menutrans None				Nincs

" Edit.File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Sorsz�&moz�s\ BE/KI<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		&Lista\ m�d\ BE/KI<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Sor&t�r�s\ BE/KI<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Sort�r�s\ s&z�v�gekn�l\ BE/KI<tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		&Tab\ kifejt�s\ BE/KI<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		&Automatikus\ beh�z�s\ BE/KI<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		&C-beh�z�s\ BE/KI<Tab>:set\ cin!
menutrans &Shiftwidth					&Beh�z�s\ m�rt�ke\ ('sw')
menutrans Soft\ &Tabstop				T&abul�l�s\ m�rt�ke\ ('sts')
menutrans Te&xt\ Width\.\.\.				&Sz�veg\ sz�less�ge\.\.\.
menutrans &File\ Format\.\.\.				&F�jlform�tum\.\.\.

" Tools menu
menutrans &Tools			&Eszk�z�k
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Ugr�s\ a\ taghoz<Tab>g^]
menutrans Jump\ &back<Tab>^T		Ugr�s\ &vissza<Tab>^T
menutrans Build\ &Tags\ File		&Tag\ f�jl\ k�sz�t�se
menutrans &Folding			&Behajt�sok
menutrans &Make<Tab>:make		&Ford�t�s<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Hib�k\ list�ja<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	�&zenetek\ list�ja<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&K�vetkez�\ &hiba<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&El�z�\ hiba<Tab>:cp
menutrans &Older\ List<Tab>:cold	&R�gebbi\ lista<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	&�jabb\ lista<Tab>:cnew
menutrans Error\ &Window		Hibaablak
menutrans &Update<Tab>:cwin		&Friss�t�s<Tab>:cwin
menutrans &Open<Tab>:copen		M&egnyit�s<Tab>:copen
menutrans &Close<Tab>:cclose		Be&z�r�s<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd	Norm�l->HEX\ n�zet<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r	HEX->Norm�l\ n�zet<Tab>:%!xxd\ -r
menutrans &Set\ Compiler		Ford�t�\ &megad�sa

" Tools.Folding
menutrans &Enable/Disable\ folds<Tab>zi	Behajt�sok\ BE&/KI<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv	&Aktu�lis\ sor\ l�tszik<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	&Csak\ aktu�lis\ sor\ l�tszik<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm	K�vetkez�\ szint\ be&z�r�sa<Tab>zm
menutrans &Close\ all\ folds<Tab>zM	�sszes\ hajt�s\ &bez�r�sa<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr	K�vetkez�\ szint\ ki&nyit�sa<Tab>zr
menutrans &Open\ all\ folds<Tab>zR	�sszes\ hajt�s\ &kinyit�sa<Tab>zR
menutrans Fold\ Met&hod			Behajt�sok\ &l�trehoz�sa
menutrans M&anual			&K�zi
menutrans I&ndent			Be&h�z�s
menutrans E&xpression			Ki&fejez�s
menutrans S&yntax			&Szintaxis
menutrans &Diff				&Diff-k�l�nbs�g
menutrans Ma&rker			&Jel�l�s
menutrans Create\ &Fold<Tab>zf		�&j\ behajt�s<Tab>zf
menutrans &Delete\ Fold<Tab>zd		Behajt�s\ &t�rl�se<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD	�ss&zes\ behajt�s\ t�rl�se<Tab>zD
menutrans Fold\ col&umn\ width		Behajt�sok\ a\ &marg�n\ x\ oszlopban

" Tools.Diff
menutrans &Update		&Friss�t�s
menutrans &Get\ Block		Block\ &BE
menutrans &Put\ Block		Block\ &KI



" Names for buffer menu.
menutrans &Buffers		&Pufferok
menutrans &Refresh\ menu	&Friss�t�s
menutrans Delete		&T�rl�s
menutrans &Alternate		&Csere
menutrans &Next			&K�vetkez�
menutrans &Previous		&El�z�

" Window menu
menutrans &Window			&Ablak
menutrans &New<Tab>^Wn			�&j<Tab>^Wn
menutrans S&plit<Tab>^Ws		&Feloszt�s<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	Feloszt�s\ &#-val<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Feloszt�s\ F�&gg�legesen<Tab>^Wv
menutrans Split\ File\ E&xplorer	�j\ &int�z�
menutrans &Close<Tab>^Wc		Be&z�r�s<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	&T�bbi\ bez�r�sa<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&K�vetkez�<Tab>^Ww
menutrans P&revious<Tab>^WW		&El�z�<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Azonos\ magass�g<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Ma&x\ magass�g<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		&Min\ magass�g<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|		Max\ &sz�less�g<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Mi&n\ sz�less�g<Tab>^W1\|
menutrans Move\ &To			&Elmozd�t�s
menutrans &Top<Tab>^WK			&Fel<Tab>^WK
menutrans &Bottom<Tab>^WJ		&Le<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Balra<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Jobbra<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		G�rd�t�s\ &felfel�<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		G�rd�t�s\ &lefel�<Tab>^Wr
menutrans Select\ Fo&nt\.\.\.		&Bet�t�pus\.\.\.

" The popup menu
menutrans &Undo			&Visszavon�s
menutrans Cu&t			&Kiv�g�s
menutrans &Copy			&M�sol�s
menutrans &Paste		&Beilleszt�s
menutrans &Delete		&T�rl�s
menutrans Select\ Blockwise	Kijel�l�s\ blo&kk�nt
menutrans Select\ &Word		S&z�\ kijel�l�se
menutrans Select\ &Line		&Sor\ kijel�l�se
menutrans Select\ &Block	B&lokk\ kijel�l�se
menutrans Select\ &All		A&z\ �sszes\ kijel�l�se

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Megnyit�s
    tmenu ToolBar.Save		Ment�s
    tmenu ToolBar.SaveAll	Mindet menti
    tmenu ToolBar.Print		Nyomtat�s
    tmenu ToolBar.Undo		Visszavon�s
    tmenu ToolBar.Redo		M�gis
    tmenu ToolBar.Cut		Kiv�g�s
    tmenu ToolBar.Copy		M�sol�s
    tmenu ToolBar.Paste		Beilleszt�s
    tmenu ToolBar.Find		Keres�s
    tmenu ToolBar.FindNext	Tov�bb keres�s
    tmenu ToolBar.FindPrev	Keres�s visszafel�
    tmenu ToolBar.Replace	Keres�s/csere
    tmenu ToolBar.LoadSesn	Munkamenet beolvas�s
    tmenu ToolBar.SaveSesn	Munkamenet ment�s
    tmenu ToolBar.RunScript	Vim program ind�t�s
    tmenu ToolBar.Make		Projekt �p�t�s
    tmenu ToolBar.Shell		Shell ind�t�s
    tmenu ToolBar.RunCtags	Tag �p�t�s
    tmenu ToolBar.TagJump	Ugr�s a kurzor alatti tagra
    tmenu ToolBar.Help		Vim s�g�
    tmenu ToolBar.FindHelp	Keres�s a Vim s�g�ban
  endfun
endif

" Syntax menu
menutrans &Syntax			Sz&intaxis
menutrans &Show\ filetypes\ in\ menu	F�jl&t�pusok\ men�
menutrans Set\ '&syntax'\ only		Csak\ '&syntax'
menutrans Set\ '&filetype'\ too		'&filetype'\ is
menutrans &Off				&Ki
menutrans &Manual			K�&zi
menutrans A&utomatic			A&utomatikus
menutrans on/off\ for\ &This\ file	&BE/KI\ enn�l\ a\ f�jln�l
menutrans Co&lor\ test			&Sz�nteszt
menutrans &Highlight\ test		Kiemel�s\ &teszt
menutrans &Convert\ to\ HTML		&HTML\ oldal\ k�sz�t�se

" dialog texts
let menutrans_no_file = "[Nincs file]"
let menutrans_help_dialog = "�rd be a k�v�nt sz�t vagy parancsot:\n\n A sz�vegbeviteli parancsok el� �rj i_-t (pl.: i_CTRL-X)\nA sorszerkesz� parancsok el� c_-t (pl.: c_<Del>)\nA v�ltoz�kat a ' jellel vedd k�r�l (pl.: 'shiftwidth')"
let g:menutrans_path_dialog = "�rd be a keresett f�jl lehets�ges el�r�si �tjait, vessz�vel elv�lasztva"
let g:menutrans_tags_dialog = "�rd be a tag f�jl lehets�ges el�r�si �tjait, vessz�vel elv�lasztva"
let g:menutrans_textwidth_dialog = "�rd be a sz�veg sz�less�g�t (0 = form�z�s kikapcsolva)"
let g:menutrans_fileformat_dialog = "V�laszd ki a f�jl form�tum�t"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z��P�bbvim80/lang/menu_zh_cn.cp936.vimnu�[���" Menu Translations:	Simplified Chinese (for Windows)

source <sfile>:p:h/menu_chinese_gb.936.vim
PK�j�Z$��)7171 vim80/lang/sv/LC_MESSAGES/vim.monu�[������,5�<j������
Ѝލ�'��/%�U�k���0��ȎՎ+ݎ	�"$�G�X�5h�����׏����,Ɛ;�/�F�d���������Ñّ��#�:�0Q�.��/��1�0�
D�R�h��
����
�� Ǔ����!&�H�"g�������Ҕ@�"�=�N�_�o�~�/��8��=��8�O�i�z�1��1�����6�-P�~�����ŗ���3�3F�$z�����Ԙ���
1�<�K�c�t���
��$��ҙ ޙ���;/�k�z�#��	����Κ֚���
��%�6�B�Z�	r�|�����!����ϛ���6�>� F�g�������ŜΜ
֜�6�(�E�^�!}���
����	̝�����&�	)�"3�*V���=��מ������
$�
2�=�
F�Q�c�u�~�5��ҟ-�1�&D�k���������Ѡ��$�8�H�
\�g�v�������ǡ١���(�9�E�Q�`�p���
��������
Тۢ�7��5�B�Z�b�k�s�y�}�����=��2ڣ
���%�'6�-^�5��¤ߤ?��8�T�e�t�	��������ͥ-��$9�^�
~���������?Ц�5�!U�%w�9��Eק9�CW�A��IݨH'�;p�0��6ݩ8�3M�-����%ɪ���6�&F�,m�#��4�� �@�-U�0��:��;�+�"K�n�>�)��>�<'�d�p�#��:��'�9�Q�$j�9��4ɯ;�� :�>[�1��/̰��-�G�.V�B��"ȱ/�2�4N�*����+̲%��'�(F�<o�E��.�-!�$O�t�<��ʴ*�&� 6�4W�������µε�����&�2�
?�M�V�"^���������̶�)��!�$*�!O�q�����"��"��ڷ�1�?>�O~�θ߸���	��0�K�^�Xw�%й�����3�L�e��������$º�!���8�>�N�R�p�"����$���#�&�-�H�Qf���Ǽ׼��� �;�[�!m���	��?��P߽0�
=�
K�.V���-��̾-�$�.>�m�����O��O��"O�
r�C��	���!���5�3:�2n�!��(� �"
�E0�v�%��#��-���)�F�&b��������������)/�+Y�@��-����5�G�]�x�D����E��;�-V�7��#�� ��:�5<�&r�"��&��$��#�!,�=N�5�� ��(��7�!D�,f������� ��#��&#�J�a�y����������0&�$W�!|� ��(��4��,�J�f�y����� ������1�F�!c�%��%��%���� �1�M�?h�&��!����

�A�%]�"��"��9��'�(+�2T�*��!��!��)��% �!F�4h�:��&��;��;;�)w�0������
�&�8�#Q�!u�8��&��#��� 3�/T�"����-�������/(�*X�(��#�������$�@�>\�������"��	�(�>�Z�!q���9��1��)�1D�%v�7����A��?0�p�����!�������06�4g�$��)��N��,:�&g�L������	�8 �Y�$o�����,�� �� �#=�a�|�7��N��M�k�����$��!��3�,:�2g�%��*��9��(%�N�"i���#������
�'�BD���0��!�� ��<�+R�~���+��2��$�7�,U���H��,���)�"I�l���������9�?�T�o�0��#��'����,8�&e�����+��2��-�(>�g�"��'��'��,�� �.7�f�#��,��W��)/�"Y�,|�%���� ��
�2&�2Y�2����!�����2,�5_�'��#��)��3�$?�%d�����������$�&3� Z�'{�*��#��'��%�3@�!t���+����*�-,�$Z���������� � (�$I�$n�)��,�����,�E�Z�%u���=�����2�K�'e�����$��#��0�.A�0p����������(�<�-S� ����7��)���$7�(\�����%��$����0�'M�u�'�� ������ '�7H�0����#��"�(7�!`���-��1�6�57�m�.��*��1�9�N�*n�&��+��,�+�4E�<z�+��*��$�<�Q�f�}��������"���0�K�j����������"�>�Z�:m�=��<�6#�<Z���"����4�5$4Z3��0�D%^�����#Ca|�����'9L!l��"��1�-Da"v�����$=Rk~�����(*G)r�� ��6.#e�)�2�&K)u �����	.	C	"]	&�	#�	�	�	+
%1
7W
5�
�
�
,.D_)u ����
'Cb~0����
49
.n
$�
)�
1�
;Z.j*��$�	%$,Jw��&�-�&5 Qr��+� �?$)d�6�#�296>p8�1�)8)b �)��)�*"Gj#�"�"�)�7%U {+�$��
!*0L}���"�!9.8h$����+%=1c)���'�%;&R!y%�'�%�'-72e��$��%"Be�!�1�&� !=!_���+�8�57TE�!��& 0G#x�$��#�*? Z{�0�2�0 = +Z )� $� /� !!'/!)W!,�!�!�! �!	" "->",l"�"/�"+�"'#!6# X#0y#�#!�#,�#$'$(9$b${$0�$.�$�$%9.%h%(�%+�%/�%&$&C&!b&"�&B�&�&	'&'@'`')''�'�'�''(/(	7(A(Y(h(�(�(#�(	�(�(�().)I).`)6�)�)�)6�)#*&;*	b*l*�*�*�*�* �*%�*!+
;+F+(\+�+�+�+�+(�+
�+	�+%�+,
*,&5,&\,�,�,)�,�,
�,�,
	---8-J-_-}-	�-2�-*�-�-.+.A.
W.b.	q.{.�.�.�.#�.(�./"/	4/
>/I/_/2g/�/�/�/�/�/�/$0/,0\0'd0�0�0
�0$�0�0�01 1:1S1`1!v1�1�1�1'�1�1�122$2A2#a2�2�2�2.�2
�2�2	3383J3'e3�3�3
�3�3�3�3�3�3424Q4g44�49�4�4	555
*585A5\5o5�5(�5�5�5�5�56
6	#6-6C6[6v6�69�6
�6�6�67#7&:7a7�7�7�7?�7Q8	h8r8�8�8"�8�8�8�89(979
I9W9']9�9�9�9F�9:0:I:^:e:(q:�:�:�:�:�:;;1;0@;;q; �;>�;
<%<=<1Y<"�<�<�<�<�<3=@=(]=�=�=�=$�=0�=>>">+8>d>y>�>�>�>	�>�>��>p?F�?�?
�?
�?	�?
�?@+@I@_@z@�@%�@0�@A(AEA1aA+�A*�A�A&B9+BMeB>�B)�B5CARC4�C$�C6�C"%DHD<PD?�D/�D �D"EAEVErE�E�E�E�E�E�E2F)GF,qF-�F �F!�F#G3GLG
dGoG�G�G�G
�G�G�G	�G�G�G�GHH2H
BHMH]H
mH
xH�H	�H�H�H�H	�H�H
�H�H
�H5
ICI	OIYIfI
lIzI&�I�I�I�I�I
�I�I
�I�I�I:J"@J"cJ)�J�J�J�J�J�J	K
K1&K
XK$cK"�K�K<�KLL*L=LWLHdLC�L�LM"M5MPMWM_MeM	mMwM�M�M �M-�M-N0NBN^N}N�N�N=�N�N
OO$-ORO^OdOO�O�O�O
�O�O�O�OPP/%PUP
dP rP �P�P
�P�P�P�PQQ>Q	VQ`QyQ�Q�Q�Q�Q�Q#�Q1�Q1R1JR1|R�R�R	�R
�R�R�R�RSS#S
2S=SBS
aS lS�S�S�S�S�S�S	T"T=T$NT$sT�T�T�T�T
�T�T�TU6UFUUU]U.iU.�U.�U.�U.%V.TV.�V.�V.�VWW.W@W	IWSWpW�W�W�W
�W�W�W�W	�WXX-XAXVX%cX3�XB�XZZ,Z
9ZGZ,_Z7�Z�Z�Z�Z/[8[D[.Q[�[%�[�[�[:�[\8\S\
s\�\��\87]:p]�]�]�]�]^^.^>^V^r^�^�^�^.�^,_-2_/`_.�_�_�_�_�_`!`7`$D`i`y`�`$�`!�`$�`!a<aTaeaTta�a�a�abb)b6=b=tbP�bcc3cFc;[c1�c�c�c�cd-(dVdvd�d�d�d�d5�d6"e*Ye�e�e�e�e
�e�ef
f,fCfTfef�f-�f
�f"�f�f	g< g]gig#yg	�g�g�g�g
�g
�g	�g�gh
+h6hSh	qh{h	�h�h#�h�h"�h�h
i(i
HiSi%[i�i�i#�i�i�i�i�i	j8jOjij�j*�j�j�j�j�j�j
k*k/k&4k
[k&fk1�k�k7�kl!l'l3lBlVl
^l	llvl
�l�l
�l�l+�l>�l#m/6m5fm+�m�m�m�mn"n;nSnkn*�n�n�n�n
�n�n�no/oBoToio�o�o�o�o�o�o�o�op
&p1p
>pIp_pop�p>�p�p�p�p	�pqqqq&q8qK<q>�q�q�q�q�q.�q1r5Qr�r�r?�r�rs&s5s	AsKsfsws�s.�s#�s(�s$t	DtNtZt
qttA�t�t7�t%!u&Gu<nuR�uG�uHFv?�vO�vMwEmw0�w;�w> x7_x3�x�x%�x
y#"yFycy'uy-�y �y9�y#&zCJz2�z7�zC�z>={|{ �{�{;�{3|?;|@{|�|�|$�|6}'C}9k}�}.�}8�}?%~<e~�~K�~B4O�8��/�@�,Z�1��4��2�*!�$L�+q�"��)��&�:�LL�2��4̂&�(�B@���/��%҃��2�K�_�u���������Ʉք�
�����'"�
J�U�b��#����4݅�%�$A�f�x�~�%��!��ӆ�4�@=�X~�ׇ
�������2�M�e�Y��$ۈ�!�'�G�`�y���
����lj"Ή��!'�I�
O�]�b������#ʊ�,
�7�>�!]�Y�ً���
�%�%C�i��� ����
Œ<͌O
�Z�
f�t�/����1ȍ��-�+E�1q�����юK�K4�����E���	���!�9�?�_�3c�2�� ʐ#��&.�JU�!��'‘#�3�B� _���#����В����0�M�*f�'��A��4��0�DO�����ƔK�,�OF���/��;ߕ#�"?�;b�9��&ؖ%��(%�/N�2~�#��E՗2�$N�(s�;��%ؘ*�� )�J�_�%y�%��&ř���?�^�z� ��!��<ך(�#=�$a�-��1��)��-�B�W�n���!��Ĝ?�"�>�%\�&��"��̝&��'�CC�2��"��ݞ��J�1Q���'��Hǟ-�(>�3g�,��'Ƞ$�&�,<�%i�1��=��(��H(�9q�*��.֢%�!+�M�m���+��&УH��/@�"p���*��4ݤ$�7�0G�x�����/��,�(�%C�i�������ަE��@�$]���)��ŧ����&1�X�8w�8��0�5�.P�9���K֩?"�#b�$����$˪�
�"*�6M�:��(��.�U�.m�(��SŬ�3�F�AZ��� ��Э�)�1�$P�$u�����@Ү^�ar�ԯ�"�,5�,b�D��,԰7�+9�3e�:��%Ա���2� J�k�����Ų<�"�0=�(n�!��>��.��"'�J�+b�0��%���+�1�IM�2��ʵ �$�,�D�^�x�"��@�����-�0K�|�%����%з1��*(�S�i�0|�9��6�0�O�&l�-��/��/�!�-9�g� ��*��XѺ**�&U�*|�(��л&��44�6i�4��ռ"��-�/@�1p�&��%ɽ&�3�-J�3x���ʾ"�%
�3�#P�!t��� ��'տ!��+�#K�Go�!��!�/��+�,G�,t�(��!�!��-�@�%]�#����'��2��0"�S�g�1|�����)���=%�c�������*�����(6�)_�6��.��9�� )�J�j���������-���'�7D�,|���&��-���
9�'G�%o� ���� ��)��#�":�]�y�����-��9��4)�&^�(�� ��&��.��%�*E�5p�1��6��5�E�-c�0��;��B�� A�/b�*��7��(��'�7F�C~�-��.���7�L�h�z������������#�9�U�&q�������"���-�K� c�����:��>��=/�5m�;����"�� �2�F9�C��G��@�M�?`���I��!�#)�#M�$q�������!�����-�E�X�n�����+������&�#C�g�!����7�����!�6�T�l�"����������	�"�>�Q�d�~��������� �/$�.T�������'�����;�!X�z�-��0��(��Q!�s�#�����������(�:�#T�&x�#������*��1"�8T�6��!��$��0�<�)V�"��+������� �8�O�k�����/���� ��&�E�:e�1��-��&�.'�8V���5��$��!��&�E�'c�.��������+�02�&c���%��!��!���3,�`���B��%���6�&T�4{�9��;��8&�6_�'��'��'�� �+/�[�)x�+��#����'�0�O�-m�����&��!��*�$J�"o���"��7���%�?�X�5t�'��<��;�&K�r�����'��2��5�,N�{���%��!����(��%�E�&e���#��.��-��-�@�&W�$~�!��"��#��!�!.�P�(n�"����%�� �!�4� L�.m�<��%��2��L2�$�����)��.��(*�S�$k���)��-���$�D�X�4r�3��1��
�%,�)R�&|�2����#�1$�.V�"����&��$�-+�1Y���.��(�%��! �"B�3e�����4���**�U�r�5��/��"�#�A3�u�/��1��4�$#�%H�n�%��$��W�&1�X�s���#��.�*�,�I�)i�����������% �F�U�f�w�9���:�>�]�a�9r�%��%���.CX _%�$���.�1=C,Jw�*��
�(�)�&C.P���	���7S,['�����
/	6@I_"|'���
��
/7:
r}����+�:	D5L��
�0��(':b�%�*�� 8;
L
Z#h'����	5	A	J	a	i	�	�	2�	�	�	

*
D
\
b
y
�
�
�
�
�
9Mjq~������(�	3=N
ao������:
	@
J
[
s
�
$�
�
�
 >4Qs����	);Hg~���%�#�O5����
�,�5=$Sx��3�9�&)FP���9�")LQ"f<�8��,Jio�+����(�6E]j|���3LJ�
�
����,�,Hg/�5�
�#�4<1q1��(�?GU?�,�.
P95� �1�"6A>F�4��#>So������.%@(f)�,�'�#2Neq���
������
%=NZmz���(�����   A% 
g u � � � � '� � � � � !!
!-!4!F:!*�!*�!2�!
"""<"T"g"k"-�"
�"&�"%�"	#F)#p#�#�#�#�#V�#Q2$�$ �$�$�$�$	�$%%%"%2%G%,`%3�%3�%�%&$&C&W&k&=x&
�&�&�&#�&'' '<'K'\'l'r'
~'�'�'�'�'1�'

((#'(,K(x(	�(�(�(�(�(�(�(
))6)O)X)h)q)�)%�)<�):�)7'*:_*�*�*�*
�*�*�*�*�*
+!+6+E+K+i+#x+�+�+�+�+�+,	!, +,L,*],+�,�,�,�,�,
�,-!-9-X-i-y-
�-9�-9�-9.9>.9x.2�.9�.9/9Y/�/�/�/�/�/�/�/00(070D0
W0e0y0�0�0�0�0	�0%�09�0����O�O�<�|:�� wk��6AL@��
��R����H���EJ
�Ar;*��Di(�3�B��@�)���M�<�:����O���%��]�����lemp��zgH�o���=G	��5?I�K�0����?a�]�#���^.yT���yJSaD�`>�LB{{�!��aG��t���&I+xo'^�\�E�U�Q�$di�@*���Y�"V�H=2�n��Z���`��K�]$�>��w E�0����*���`�$T���L8W�Qh�������$ot��p[��	R���n�o��p��Z�Yx���a����g�/�&��K�>�������%JC��7q�����s?~X��y�����SM�cj��C��dDYRz��2+���t���iA��r|��^�d��-r��vwW��yn����Ns��m*'��#�.��u`gX$����P�}QF���'T���V�rcb���"��-��.�s����.(����>�Ng;�h�&v�������v�v���F��aC/
������Sb9*kM"�L����Tj%7�m��}4s�����R�z�����Y��`�6)�,��:U�n�-6�\�?����1���jH6C��� :���+���a����2�<9���s6��pb=��L����8 ��bco���4��zI��J����
V_���JS�N7"|��3���{c^��%�������������<0^�������'�X��K	y7P1yr�j5��5�0R�)%�
�<�����.��j�g����f�f3�!B��l�e-cuJ���x��T=d}Y{�(�9��w�~�����m���`=�{�JiA�k(��>t]r�Tw�e����C,�2vq��s39�X4NF]�&0��O$��3��w��
��d��������uXmE/G&p],�����P�����������%h�����K}�������'���y/\�8��qV�L�N�575�A�!�Xl
�_4/��,^"RP8_�-��4>B���3'}�[W0F��~��h�~~���[\��G4�B��|:����
����zO��(u�-p�h��[���n~S����2Oi��&�
H�leQk����fV���n��5����E#i��rm%��H):x9�S��X�1��;�U�8G���5�b�ZQ�.��?�H2BLE��#�����f��\&RD�8[@�m��of�/e)� �1[����@��u:�Z�kF�b�7�u_0�����P6�+)�����U��C�3�h�|x��
�~KS#2"����}U#f�V��?���	�qMI���I�^��x�����j���W�1!DPK gz��Iv�t=���t�=�}Z�]U��\���k��dF��oZ�YN������B���fWGc*�!_'q*W�Mq�Y|��	O7��t8;����!_,
#c�)�ue��+�A.l
������������	��_�1�<�lQT�/\�z���<[�����������9��+��Q ������;4��eP��;��M������E����,��@U���;�a�
VgqIb����N>��`�@!d�j��kFh���v�s�-$������M�����C���?���6�,������x��D�A��nl+1(�{��|W����w��i�9G�Z	"
p�����({D			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   #   line
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last %sSearch Pattern:
~
# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Arguments recognised by gvim (neXtaw version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MS-Windows 64-bit GUI version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

Where case is ignored prepend / to make flag upper case
[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

change line  col text
mark line  col file/text
shell returned 
syncing on items                              for Vim defaults                                 for two modes                   dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (NOT FOUND) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (not supported) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " < "%.*s" Adding Arabic CONVERSION ERROR Command-line completion (^V^N^P) Copy %d of %d Definition completion (^D^N^P) Dictionary completion (^K^N^P) FAILED File name completion (^F^N^P) Hebrew INSERT Keyword Local completion (^N^P) Keyword completion (^N^P) Omni completion (^O^N^P) Path pattern completion (^N^P) REPLACE REVERSE SELECT SELECT BLOCK SELECT LINE SPACE/d/j: screen/page/line down, b/u/k: up, q: quit  Spelling suggestion (s^N^P) Tag completion (^]^N^P) Thesaurus completion (^T^N^P) User defined completion (^U^N^P) VISUAL VISUAL BLOCK VISUAL LINE VREPLACE Whole line completion (^L^N^P) [Modified] [a] [w] ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " has been damaged (page size is smaller than minimum value).
 in Win32s mode info kind file
 line breaks lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)%3d  %s %s  line %ld%<%f%h%m%=Page %N%d buffers deleted%d buffers unloaded%d buffers wiped out%d duplicate word(s) in %s%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld %s; %s #%ld  %s%ld Cols; %ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld matches%ld more lines%ld seconds ago%ld substitutions%s Auto commands for "%s"%s aborted%s discarded%s line %ld%s made pending%s resumed%s returning #%ld%s returning %s%s value differs from what is used in another .aff file%s, line %ld%sviminfo: %s in line: &Cancel&Dismiss&Filter&Help&OK&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Delete it
&Quit
&Abort&Open Read-Only
&Edit anyway
&Recover
&Quit
&Abort&Replace&Undo&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'columns' is not 80, cannot execute external commands'dictionary' option is empty'history' option is zero'readonly' option is set for "%s".
Do you wish to write anyway?'thesaurus' option is empty(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--cmd argument--columns <number>	Initial width of window in columns--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server if possible--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-silent <files>  Same, don't complain if there is no server--remote-tab <files>  As --remote but open tab page for each file--remote-wait <files>  As --remote but wait for files to have been edited--remote-wait-silent <files>  Same, don't complain if there is no server--role <role>	Set a unique role to identify the main window--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		Print version information and exit-A			start in Arabic mode-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			Start in Farsi mode-H			Start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		Like -o but split vertically-P <parent title>	Open Vim inside parent application-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N][fname]		Be verbose [level N] [log messages to fname]-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-c argument-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h  or  --help	Print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-p[N]		Open N tab pages (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)/ line ignored in %s line %d: %s/encoding= line after word ignored in %s line %d: %s1 buffer deleted1 buffer unloaded1 buffer wiped out1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 match1 more file to edit.  Quit anyway?1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ": Send expression failed.
: Send failed.
: Send failed. Trying to execute locally
; match <%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <empty><window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>> %d, Hex %04x, Octal %o> %d, Hex %08x, Octal %o??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???: Sorry, this command is disabled, the MzScheme library could not be loaded.???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAffix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %sAffix name too long in %s line %d: %sAllAll cscope databases resetAll included files were foundAlready at newest changeAlready at oldest changeAlready only one tab pageAlready only one windowAppend FileArgument missing afterAt lineAttempt to open script file again: "Back at originalBackwards range given, OK to swapBecome a registered Vim user!Beep!Before byte %ldBotBoth SAL and SOFO lines in %sBreakpoint in "%s%s" line %ldBroken condition in %s line %d: %sBrowse classCOMPOUNDSYLMAX used without SYLLABLECalling shell to execute: "%s"Can't find temp file for conversionCancelCannot connect to NetbeansCannot connect to Netbeans #2Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot execute Cannot open NIL:
Cannot open file "%s"Cannot open for reading: "Cannot open for script output: "Cannot source a directory: "%s"Change "%.*s" to:Choice number (<Enter> cancels): CloseClose tabCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCol %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ldCommand LineCompilation: Compiler: Compressed %d of %d nodes; %d (%d%%) remainingCompressing word tree...Conversion failure for word in %s line %d: %sConversion in %s not supportedConversion in %s not supported: from %s to %sConversion with 'charconvert' failedCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %sCurrent %slanguage: "%s"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %dDefining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %dDelete the .swp file afterwards.

Diff with VimDifferent combining flag in continued affix block in %s line %d: %sDirectionDirectoriesDirectory	*.nothing
Do you really want to write to itDone!Double ; in list of variablesDownDuplicate /encoding= line ignored in %s line %d: %sDuplicate /regions= line ignored in %s line %d: %sDuplicate affix in %s line %d: %sDuplicate character in MAP in %s line %dDuplicate word in %s line %d: %sE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, add ! to replace itE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE128: Function name must start with a capital or contain a colon: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Unknown function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %s/%sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endforE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE173: 1 more file to editE174: Command already exists: add ! to replace itE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for -completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (add ! to override)E18: Unexpected characters in :letE190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (add ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE216: No such group or event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE261: cscope connection %s not foundE262: error reading cscope connection %ldE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE265: $_ must be an instance of StringE266: Sorry, this command is disabled, the Ruby library could not be loaded.E267: unexpected returnE268: unexpected nextE269: unexpected breakE26: Hebrew cannot be used: Not enabled at compile time
E270: unexpected redoE271: retry outside of rescue clauseE272: unhandled exceptionE273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E299: Perl evaluation forbidden in sandbox without the Safe moduleE29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_upd_block0(): Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu "%s"E32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE363: pattern uses more memory than 'maxmempattern'E364: Library call failed for "%s()"E365: Failed to print PostScript fileE367: No such group: "%s"E369: invalid item in %s%%[]E36: Not enough roomE370: Could not load library %sE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (add ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE448: Could not load library function %sE449: Invalid expression receivedE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E459: Cannot go back to previous directoryE45: 'readonly' option is set (add ! to override)E460: The resource fork would be lost (add ! to override)E461: Illegal variable name: %sE462: Could not prepare for reloading "%s"E463: Region is guarded, cannot modifyE464: Ambiguous use of user-defined commandE465: :winsize requires two number argumentsE466: :winpos requires two number argumentsE467: Custom completion requires a function argumentE468: Completion argument only allowed for custom completionE469: invalid cscopequickfix flag %c for %cE46: Cannot change read-only variable "%s"E470: Command abortedE471: Argument requiredE472: Command failedE473: Internal errorE474: Invalid argumentE475: Invalid argument: %sE476: Invalid commandE477: No ! allowedE478: Don't panic!E479: No matchE47: Error while reading errorfileE480: No match: %sE481: No range allowedE482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE486: Pattern not found: %sE487: Argument must be positiveE488: Trailing charactersE48: Not allowed in sandboxE490: No fold foundE492: Not an editor commandE493: Backwards range givenE494: Use w or w>>E495: no autocommand file name to substitute for "<afile>"E496: no autocommand buffer number to substitute for "<abuf>"E497: no autocommand match name to substitute for "<amatch>"E498: no :source file name to substitute for "<sfile>"E499: Empty file name for '%' or '#', only works with ":p:h"E49: Invalid scroll sizeE500: Evaluates to an empty stringE501: At end-of-fileE505: E506: Can't write to backup file (add ! to override)E507: Close error for backup file (add ! to override)E508: Can't read file for backup (add ! to override)E509: Cannot create backup file (add ! to override)E50: Too many \z(E510: Can't make backup file (add ! to override)E512: Close failedE513: write error, conversion failed (make 'fenc' empty to override)E514: write error (file system full?)E515: No buffers were unloadedE516: No buffers were deletedE517: No buffers were wiped outE518: Unknown optionE519: Option not supportedE51: Too many %s(E520: Not allowed in a modelineE521: Number required after =E522: Not found in termcapE523: Not allowed hereE524: Missing colonE525: Zero length stringE526: Missing number after <%s>E527: Missing commaE528: Must specify a ' valueE529: Cannot set 'term' to empty stringE52: Unmatched \z(E530: Cannot change term in GUIE531: Use ":gui" to start the GUIE533: can't select wide fontE534: Invalid wide fontE535: Illegal character after <%c>E536: comma requiredE537: 'commentstring' must be empty or contain %sE538: No mouse supportE539: Illegal character <%s>E53: Unmatched %s%%(E540: Unclosed expression sequenceE541: too many itemsE542: unbalanced groupsE543: Not a valid codepageE544: Keymap file not foundE545: Missing colonE546: Illegal modeE547: Illegal mouseshapeE548: digit expectedE549: Illegal percentageE54: Unmatched %s(E550: Missing colonE551: Illegal componentE552: digit expectedE553: No more itemsE554: Syntax error in %s{...}E555: at bottom of tag stackE556: at top of tag stackE557: Cannot open termcap fileE558: Terminal entry not found in terminfoE559: Terminal entry not found in termcapE55: Unmatched %s)E560: Usage: cs[cope] %sE561: unknown cscope search typeE562: Usage: cstag <ident>E563: stat errorE563: stat(%s) error: %dE564: %s is not a directory or a valid cscope databaseE566: Could not create cscope pipesE567: no cscope connectionsE568: duplicate cscope database not addedE569: maximum number of cscope connections reachedE570: fatal error in cs_manage_matchesE571: Sorry, this command is disabled: the Tcl library could not be loaded.E572: exit code %dE573: Invalid server id used: %sE574: Unknown register type %dE579: :if nesting too deepE580: :endif without :ifE581: :else without :ifE582: :elseif without :ifE583: multiple :elseE584: :elseif after :elseE585: :while/:for nesting too deepE586: :continue without :while or :forE587: :break without :while or :forE588: :endfor without :forE588: :endwhile without :whileE589: 'backupext' and 'patchmode' are equalE590: A preview window already existsE591: 'winheight' cannot be smaller than 'winminheight'E592: 'winwidth' cannot be smaller than 'winminwidth'E593: Need at least %d linesE594: Need at least %d columnsE595: contains unprintable or wide characterE596: Invalid font(s)E597: can't select fontsetE598: Invalid fontsetE599: Value of 'imactivatekey' is invalidE59: invalid character after %s@E600: Missing :endtryE601: :try nesting too deepE602: :endtry without :tryE603: :catch without :tryE604: :catch after :finallyE605: Exception not caught: %sE606: :finally without :tryE607: multiple :finallyE608: Cannot :throw exceptions with 'Vim' prefixE609: Cscope error: %sE60: Too many complex %s{...}sE612: Too many signs definedE613: Unknown printer font: %sE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE617: Cannot be changed in the GTK+ 2 GUIE618: file "%s" is not a PostScript resource fileE619: file "%s" is not a supported PostScript resource fileE61: Nested %s*E620: Unable to convert to print encoding "%s"E621: "%s" resource file has wrong versionE622: Could not fork for cscopeE623: Could not spawn cscope processE624: Can't open file "%s"E625: cannot open cscope database: %sE626: cannot get cscope database informationE62: Nested %s%cE63: invalid use of \_E64: %s%c follows nothingE655: Too many symbolic links (cycle?)E658: NetBeans connection lost for buffer %ldE659: Cannot invoke Python recursivelyE65: Illegal back referenceE661: Sorry, no '%s' help for %sE662: At start of changelistE663: At end of changelistE664: changelist is emptyE665: Cannot start GUI, no valid font foundE666: compiler not supported: %sE667: Fsync failedE668: Wrong access mode for NetBeans connection info file: "%s"E669: Unprintable character in group nameE66: \z( not allowed hereE670: Mix of help file encodings within a language: %sE671: Cannot find window title "%s"E672: Unable to open window inside MDI applicationE673: Incompatible multi-byte encoding and character set.E674: printmbcharset cannot be empty with multi-byte encoding.E675: No default font specified for multi-byte printing.E676: No matching autocommands for acwrite bufferE677: Error writing temp fileE678: Invalid character after %s%%[dxouU]E679: recursive loop loading syncolor.vimE67: \z1 et al. not allowed hereE680: <buffer=%d>: invalid buffer number E681: Buffer is not loadedE682: Invalid search pattern or delimiterE683: File name missing or invalid patternE684: list index out of range: %ldE685: Internal error: %sE686: Argument of %s must be a ListE687: Less targets than List itemsE688: More targets than List itemsE689: Can only index a List or DictionaryE68: Invalid character after \zE690: Missing "in" after :forE691: Can only compare List with ListE692: Invalid operation for ListE693: Can only compare Funcref with FuncrefE694: Invalid operation for FuncrefsE695: Cannot index a FuncrefE696: Missing comma in List: %sE697: Missing end of List ']': %sE698: variable nested too deep for making a copyE699: Too many argumentsE69: Missing ] after %s%%[E700: Unknown function: %sE701: Invalid type for len()E702: Sort compare function failedE703: Using a Funcref as a NumberE704: Funcref variable name must start with a capital: %sE705: Variable name conflicts with existing function: %sE706: Variable type mismatch for: %sE708: [:] must come lastE709: [:] requires a List valueE70: Empty %s%%[]E710: List value has more items than targetE711: List value has not enough itemsE712: Argument of %s must be a List or DictionaryE713: Cannot use empty key for DictionaryE714: List requiredE715: Dictionary requiredE716: Key not present in Dictionary: %sE717: Dictionary entry already existsE718: Funcref requiredE719: Cannot use [:] with a DictionaryE71: Invalid character after %s%%E720: Missing colon in Dictionary: %sE721: Duplicate key in Dictionary: "%s"E722: Missing comma in Dictionary: %sE723: Missing end of Dictionary '}': %sE724: variable nested too deep for displayingE725: Calling dict function without Dictionary: %sE726: Stride is zeroE727: Start past endE728: Using a Dictionary as a NumberE729: using Funcref as a StringE72: Close error on swap fileE730: using List as a StringE731: using Dictionary as a StringE732: Using :endfor with :whileE733: Using :endwhile with :forE734: Wrong variable type for %s=E735: Can only compare Dictionary with DictionaryE736: Invalid operation for DictionaryE737: Key already exists: %sE738: Can't list variables for %sE739: Cannot create directory: %sE73: tag stack emptyE741: Value is locked: %sE742: Cannot change value of %sE743: variable nested too deep for (un)lockE744: NetBeans does not allow changes in read-only filesE745: Using a List as a NumberE746: Function name does not match script file name: %sE747: Cannot change directory, buffer is modified (add ! to override)E748: No previously used registerE749: empty bufferE74: Command too complexE750: First use :profile start <fname>E751: Output file name must not have region nameE752: No previous spell replacementE753: Not found: %sE754: Only up to 8 regions supportedE755: Invalid region in %sE756: Spell checking is not enabledE757: This does not look like a spell fileE758: Truncated spell fileE759: Format error in spell fileE75: Name too longE760: No word count in %sE761: Format error in affix file FOL, LOW or UPPE762: Character in FOL, LOW or UPP is out of rangeE763: Word characters differ between spell filesE764: Option '%s' is not setE765: 'spellfile' does not have %ld entriesE766: Insufficient arguments for printf()E767: Too many arguments to printf()E768: Swap file exists: %s (:silent! overrides)E769: Missing ] after %s[E76: Too many [E770: Unsupported section in spell fileE771: Old spell file, needs to be updatedE772: Spell file is for newer version of VimE773: Symlink loop for "%s"E774: 'operatorfunc' is emptyE775: Eval feature not availableE776: No location listE777: String or List expectedE778: This does not look like a .sug file: %sE779: Old .sug file, needs to be updated: %sE77: Too many file namesE780: .sug file is for newer version of Vim: %sE781: .sug file doesn't match .spl file: %sE782: error while reading .sug file: %sE783: duplicate char in MAP entryE784: Cannot close last tab pageE785: complete() can only be used in Insert modeE786: Range not allowedE787: Buffer changed unexpectedlyE788: Not allowed to edit another buffer nowE789: Missing ']': %sE78: Unknown markE790: undojoin is not allowed after undoE791: Empty keymap entryE792: Empty menu nameE793: No other buffer in diff mode is modifiableE794: Cannot set variable in the sandbox: "%s"E795: Cannot delete variable %sE79: Cannot expand wildcardsE800: Arabic cannot be used: Not enabled at compile time
E80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Buffer %ld does not existE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (add ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - Edit with single &VimEdits the selected file(s) with VimEncoding:End of functionEnd of sourced fileEnter encryption key: Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to continue.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError and interruptError creating process: Check if gvim is in your path!Error detected while processing %s:Estimated runtime memory use: %d bytesExceptionException caught: %sException discarded: %sException finished: %sException thrown: %sExecuting %sExpected MAP count in %s line %dExpected REP(SAL) count in %s line %dExpected Y or N in %s line %d: %sExpressionExternal submatches:
FLAG after using flags in %s line %d: %sFile "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find &NextFind NextFind string (use '\\' to find  a '\')Find symbolFind what:First duplicate word in %s line %d: %sFlag is not a number in %s line %d: %sFont '%s' is not fixed-widthFont SelectionFont%ld width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Font:Garbage after option argumentGenerate docu forGreetings, Vim user!Help poor children in Uganda!Hit end of paragraphI/O ERRORIgnored %d word(s) with non-ASCII characters in %sIgnored %d words with non-ASCII charactersIllegal file nameIllegal flag in %s line %d: %sIllegal register nameIllegal starting charInput LineInput _MethodsInterruptInterrupt: InterruptedInvalid argument forInvalid font specificationInvalid region nr in %s line %d: %sInvalid value for FLAG in %s line %d: %sKeys don't match!Kill a connectionLinking: Match caseMatch whole word onlyMessageMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing FOL/LOW/UPP line in %sMissing SOFO%s line in %sModified by Name:Need %s version %ld
Need Amigados version 2.04 or later
NetBeans disallows writes of unmodified buffersNew tabNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo displayNo display: Send expression failed.
No included filesNo mapping foundNo marks setNo match at cursor, finding nextNo matching autocommandsNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot UsedNothing to undoNumber of words after soundfolding: %ldOKOpen File dialogOpen Tab...Open tab...Opening the X display failedOpening the X display timed outOpening the X display took %ld msecOriginal file "%s"Overwrite existing file "%s"?Page %dPartial writes disallowed for NetBeans buffersPatch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPerforming soundfolding...Press ENTER or type command to continuePrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading affix file %s ...Reading back spell file...Reading dictionary file %s ...Reading from stdin...Reading spell file "%s"Reading viminfo file "%s"%s%s%sReading word file %s ...Recovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace &AllReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRunning in Vi compatible modeRunning modeless, typed text is insertedSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching included file %sSearching tags file %sSee ":help E312" for more information.See ":help W11" for more info.See ":help W12" for more info.See ":help W16" for more info.Select Directory dialogSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld BytesSelectionSending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow size in PointsShow source ofShow this messageSigns for %s:Size:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, no suggestionsSorry, only %ld suggestionsSorry, this command is disabled: the Perl library could not be loaded.Source Vim scriptSponsor Vim development!Stack size increasesStyle:Swap file "Swap file "%s" exists, overwrite anyway?Swap file already exists!Swap files found:Tab page %dTear off this menuTesting the X display failedThanks for flying VimThe file was created on The only matchThis Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command", "-c command" or "--cmd command" argumentsToo many compound flagsToo many edit argumentsToo many postponed prefixesToo many postponed prefixes and/or compound flagsToo many regions in %s line %d: %sTopTotal number of words: %dTrailing text in %s line %d: %sType  :quit<Enter>  to exit VimType number or click with mouse (<Enter> cancels): Unable to read block 0 from Unable to register a command server nameUndo number %ld not foundUnknownUnknown option argumentUnrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sUntitledUpUse Vim version 3.0.
Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim - Font SelectorVim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim errorVim error: ~aVim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Error: Failure to start gvim from NetBeans
Vim: Finished.
Vim: Main window unexpectedly destroyed
Vim: Reading from stdin...
Vim: Received "die" request from session manager
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedW17: Arabic requires UTF-8, do ':set encoding=utf-8'W18: Invalid character in group nameWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Cannot find word list "%s.%s.spl" or "%s.ascii.spl"Warning: Entered other buffer unexpectedly (check autocommands)Warning: both compounding and NOBREAK specifiedWarning: region %s not supportedWarning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord added to %sWord from other lineWord removed from %sWrite partial file?Writing spell file %s ...Writing suggestion file %s ...Writing viminfo file "%s"Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %sWrong COMPOUNDMIN value in %s line %d: %sWrong COMPOUNDSYLMAX value in %s line %d: %sWrong COMPOUNDWORDMAX value in %s line %d: %sXSMP ICE connection watch failedXSMP SmcOpenConnection failed: %sXSMP handling save-yourself requestXSMP lost ICE connectionXSMP opening connectionXref has aXref referred byXref refers toXref used byYESZero count[CONVERSION ERROR in line %ld][CR missing][Deleted][Device][File too big][Help][ILLEGAL BYTE in line %ld][Incomplete last line][Location List][NL found][NOT converted][New DIRECTORY][New File][New file][New][No Name][No write since last change]
[Not edited][Permission Denied][Preview][Quickfix List][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[long lines split][mac format][mac][noeol][readonly][socket][unix format][unix]afterand run diff with the original file to check for changes)
attempt to refer to deleted bufferattempt to refer to deleted windowauto-removing autocommand: %s <buffer=%d>autocommand %sbeforeblock of %ld lines yankedblock of 1 line yankedbuffer is invalidby by Bram Moolenaar et al.called inputrestore() more often than inputsave()calling %scan't delete OutputObject attributescan't read output of 'charconvert'cannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywaychangechangesclosecmd: %sconnectedcontinuing in %scould not source "%s"couldn't open buffercs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closedcursor position outside bufferdefaulting to 'deleted block 1?dlerror = "%s"don't quit the editor until the file is successfully written!environment variableerror handlererror list %d of %d; %d errorsexpressions disabled at compile timefewer linesfile
filename / context / line
finished sourcing %sfreeing %ld linesgvimext.dll errorhelphidden optionin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a device (disabled with 'opendevice' option)is a directoryis not a fileis not a file or writable deviceis read-only (add ! to override)keyboard interruptline %4ld:line %6d, word %6d - %sline %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line lessline number out of rangelinenr out of rangelogoffmark not setmatch %dmatch %d of %dmaximal mch_get_shellsize: not a console??
menu  Edit->Global Settings->Toggle Insert Mode  menu  Edit->Global Settings->Toggle Vi Compatiblemenu  Help->Orphans           for information    menu  Help->Sponsor/Register  for information    minimal modelinemore linemore linesnew shell started
nono cscope connections
no specific matchno such bufferno such windowno syncingnot not allowed in the Vim sandboxnot found not found in 'runtimepath': "%s"not implemented yetnumber changes  timepe_line_count is zeropre-vimrc command lineread from Netbeans socketreadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0string cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help register<Enter>   for information type  :help sponsor<Enter>    for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunknown flag: unknown optionunknown vimOptionversion vim errorwindow index is out of rangewindow is invalidwith (classic) GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GTK2 GUI.with GTK2-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.with X11-neXtaw GUI.without GUI.writelines() requires list of stringswriting to device disabled with 'opendevice' optionProject-Id-Version: Vim 7.1
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2007-05-09 14:27+0200
PO-Revision-Date: 2007-05-09 14:52
Last-Translator: Johan Svedberg <johan@svedberg.com>
Language-Team: Swedish <tp-sv@listor.tp-sv.se>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
			   (Oimplementerat)

	Senast satt fr�n 

Argument:


anv�ndning:
          modifierad: 
         [inte anv�ndbar p� den h�r datorn]
         [inte anv�ndbar med den h�r versionen av Vim]
         v�rdnamn: 
         anv�ndarnamn: 
        process-ID: 
    Namn        Arg Omr�de F�rdigt  Definition
   #   rad
     eller:
  # TILL tagg          FR�N LINJE  i fil/text
 hopp rad kol fil/text
# %s Historia (nyaste till �ldsta):

# Buffertlista:

# Film�rken:

# Historia f�r m�rken inne i filer (nyaste till �ldsta):

# Hopplista (nyaste f�rst):

# Senaste %sS�km�nster:
~
# Senaste ers�ttningsstr�ng:
$
# Register:

# globala variabler:

(1) Ett annat program kan redigera samma fil.
    Om s� �r fallet, var f�rsiktig s� att det inte slutar med tv�
    versioner av samma fil vid f�r�ndringar.

(2) En redigeringssession f�r den h�r filen kraschade.

(Du kanske vill spara den h�r filen under ett annat namn

--- Autokommandon ---
--- Globala flaggv�rden ---
--- Lokala flaggv�rden ---
--- Menyer ---
--- Flaggor ---
--- Register ---
--- Tecken ---
--- Syntax f�rem�l ---
--- Syntax-synkf�rem�l ---
--- Terminalkoder ---
--- Terminalnycklar ---
16-bitars MS-DOS-version
32-bitars MS-DOS-version
Argument som st�ds av gvim (Athena-version):

Argument igenk�nda av gvim (GTK+-version):

Argument som st�ds av gvim (Motif-version):

Argument igenk�nda av gvim (RISC OS-version):

Argument som st�ds av gvim (neXtaw-version):

Stor version 
Kan inte skapa r�r

Kan inte k�ra skal 
Kan inte k�ra skal sh

Kan inte grena

Kommando avslutades

Kompilerad 
Hittade en v�xlingsfil med namnet "
Enorm version 
Inkluderade patchar: 
MS-Windows 16-bitars version
MS-Windows 16/32-bitars GUI-version
MS-Windows 32-bitars GUI-version
MS-Windows 32-bitars konsollversion
MS-Windows 64-bitars GUI-version
MacOS X-version (unix)
MacOS X-version
MacOS-version
Kanske gjordes inte n�gra f�r�ndringar eller s� uppdaterade inte Vim v�xlingsfilen.
Mer info med: "vim -h"

Normal version 
RISC OS-version
Liten version 
J�tteliten version 
Vim: Fick X-error

VARNING: Orginalfilen kan vara f�rlorad eller skadad

D�r storlek ignoreras b�rja med / f�r att g�ra flagga versal
[byte] sammanlagd allok-frigjord %lu-%lu, i anv�ndning %lu, toppanv�ndning %lu

�ndring rad  kol text
m�rke rad  kol fil/text
skal returnerade 
synkning av f�rem�l                              f�r vim-standardalternativ                                 f�r tv� l�gen                   daterad:           �gd av:          [kan inte �ppnas]         [kan inte l�sas]         [ser inte ut som en Vim-v�xlingsfil]         [fr�n Vim version 3.0]         filnamn:       -- inget --
      NYARE �n v�xelfil!
      anv�ndar-exrc-fil: "     anv�ndar-vimrc-fil: "    Om s� �r fallet, anv�nd ":recover" eller "vim -r     Om du redan har gjort det, ta bort v�xlingsfilen "    Avsluta, eller forts�tt p� egen risk.
    line=%ld  id=%d  namn=%s    systemmenyfil: "    anv�ndar-gvimrc-fil: "   I aktuell katalog:
   I katalog    Anv�nder angivet namn:
   daterad:    v�rdnamn:    system-vimrc-fil: "  # pri-typ-tagg (Redan listade)  Andra anv�ndar-exrc-fil: "  FELS�KNINGSBYGGD  Funktioner inkluderade (+) eller inte (-):
 INTE HITTADE  Anv�nder tagg med annan storlek!  reserv f�r $VIM: "  system-gvimrc-fil: " # pid    databasnamn                        f�rst i s�kv�g
 (Avbruten) (INTE HITTADE) (inkluderar tidigare listad tr�ff) (infoga) (infoga) Rulla (^E/^Y) (spr�k) (rad borttagen) (st�ds inte) (klistra in) (ers�tt) (ers�tt) Rulla (^E/^Y) (k�rs fortfarande) (vers�tt) Andra anv�ndar-vimrc-fil: " Tredje anv�ndar-vimrc-fil: " < "%.*s" L�gger till Arabiska KONVERTERINGSFEL Kommandoradskomplettering (^V^N^P) Kopia %d av %d Definitionskomplettering (^D^N^P) Ordbokskomplettering (^K^N^P) MISSLYCKADES Filnamnskomplettering (^F^N^P) Hebreiska INFOGA Lokal nyckelordskomplettering (^N^P) Nyckelordskomplettering (^N^P) Omnikomplettering (^O^N^P) S�kv�gsm�nsterkomplettering (^N^P) ERS�TT OMV�ND MARKERA MARKERA BLOCK MARKERA RAD BLANKSTEG/d/j: sk�rm/sida/rad ned, b/u/k: upp, q: quit  Stavningsf�rslag (s^N^P) Taggkomplettering (^]^N^P) Tesaurkomplettering (^T^N^P) Anv�ndardefinierad komplettering (^U^N^P) VISUELL VISUELLT BLOCK VISUELL RAD VERS�TT Helradskomplettering (^L^N^P) [Modifierad] [l] [s] ^X-l�ge (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) lade till kan inte anv�ndas p� den h�r datorn.
 kan inte anv�ndas med den h�r versionen av Vim.
 reserv f�r $VIMRUNTIME: " har skadats (sid-storlek �r mindre �n minimumv�rdet).
 i Win32s-l�ge info sn�ll fil
 radbrytningar rader f�re topprad m�rken p� %ld rader p� 1 rad eller fler returnerade
 vim [argument]  med OLE-st�d skriven"
    f�r att undvika det h�r meddelandet.
"
    f�r att �terskapa f�r�ndringarna (se ":help recovery").
" existerar redan!# Den h�r viminfo-filen genererades av Vim %s.
# V�rde av 'encoding' n�r den h�r filen blev skriven
# Du f�r redigera den om du �r f�rsiktig!

%-5s: %-30s (Anv�ndning: %s)%3d  %s %s  rad %ld%<%f%h%m%=Sida %N%d buffertar borttagna%d buffertar laddades ur%d buffertar utraderade%d duplicerade ord i %s%d filer att redigera
%d filer till att redigera.  Avsluta �nd�?%d av %d redigerade%ld %s; %s #%ld  %s%ld kolumner; %ld tecken%ld f�rre rader%ld rader %sade %d g�nger%ld rader %sad 1 g�ng%ld rader --%d%%--%ld rader �ndrade%ld rader filtrerade%ld rader indenterade %ld rader flyttade%ld rader att indentera... %ld rader kopierade%ld rader, %ld tr�ffar%ld rad till%ld sekunder sedan%ld ers�ttningar%s Autokommandon f�r "%s"%s avbr�ts%s f�rkastad%s rad %ld%s gjordes avvaktande%s �terupptagen%s returnerar #%ld%s returnerar %s%s v�rde skiljer sig fr�n vad som anv�nds i en annan .aff-fil.%s, rad %ld%sviminfo: %s p� rad: &Avbryt&F�rkasta&Filter&Hj�lp&OK&OK
&Avbryt&OK
&L�s in filen&Ok&�ppna skrivskyddad
&Redigera �nd�
&�terskapa
&Ta bort den
&Avsluta
A&vbryt&�ppna skrivskyddad
&Redigera �nd�
&�terskapa
&Avsluta
A&vbryt&Ers�tt&�ngra&Ja
&Nej&Ja
&Nej
&Avbryt&Ja
&Nej
&Spara &alla
&Kasta bort alla
&Avbryt' inte k�nd. Tillg�ngliga inbyggda terminaler �r:'columns' �r inte 80, kan inte k�ra externa kommandon'dictionary'-flagga �r tom'history'-flagga �r noll'readonly' flaggan �r satt f�r "%s".
�nskar du att skriva �nd�?'thesaurus'-flagga �r tom(%d av %d)%s%s: (+%ld f�r BOM)(Avbruten) (Ogiltig)+			Starta vid slut av fil+-%s%3ld rader: +--%3ld rader vikta +<lnr>		Starta p� rad <rnr>+reverse		Anv�nd inte omv�nd video (�ven: +rv),
eller s� har filen blivit skadad.-              l�s text fr�n standard in--			Bara filnamn efter det h�r-- Mer ---- S�ker...--- Inkluderade filer --Borttagen----Inga rader i buffert----cmd <kommando>	K�r <kommando> f�re inl�sning av n�gon vimrc fil--cmd argument--columns <antal>	Inledande bredd p� f�nster i kolumner--literal		Expandera inte jokertecken--noplugin		L�s inte in insticksskript--remote <filer>	Redigera <filer> i en Vim-server om m�jligt--remote-expr <uttryck>	Evaluera <uttryck> i en Vim-server och skriv ut resultatet--remote-send <nycklar>	Skicka <nycklar> till en Vim-server och avsluta--remote-silent <filer>	Samma, klaga inte om det inte finns n�gon server--remote-tab <filer>  Som --remote men �ppna flik f�r varje fil--remote-wait <filer>	Som --remote men v�nta p� att filer har blivit redigerade--remote-wait-silent <filer>	Samma, klaga inte om det inte finns n�gon server--role <roll>	St�ll in en unik roll f�r att identifiera huvudf�nstret--rows <antal>	Inledande h�jd p� f�nster i rader--serverlist		Lista tillg�ngliga Vim-servernamn och avsluta--servername <namn>	Skicka till/f�r att bli Vim-servern <namn>--socketid <xid>	�ppna Vim innanf�r en annan GTK-widget--version		Skriv ut versionsinformation och avsluta-A			starta i arabiskt l�ge-C			Kompatibelt med Vi: 'compatible'-D			Fels�kningsl�ge-F			Starta i persiskt l�ge (Farsi)-H			Starta i hebreiskt l�ge-L			Samma som -r-M			Modifieringar i text inte till�tet-N			Inte fullt Vi-kompatibel: 'nocompatible'-O[N]		Som -o men dela vertikalt-P <f�r�lder f�nster>	�ppna Vim inuti f�r�lderapplikation-R			Skrivskyddat l�ge (som "view")-S <session>		K�r fil <session> efter inl�sning av den f�rsta filen-T <terminal>	St�ll in terminaltyp till <terminal>-U <gvimrc>		Anv�nd <gvimrc> ist�llet f�r n�gon .gvimrc-V[N][fnamn]		Var m�ngordig [niv� N] [logga meddelanden till fnamn]-W <utskript>	Skriv alla skrivna kommandon till fil <utskript>-X			Anslut inte till X server-Z			Begr�nsat l�ge (som "rvim")-b			Bin�rl�ge-background <f�rg>	Anv�nd <f�rg> f�r bakgrunden (�ven: -bg)�boldfont <typsnitt>	Anv�nd <typsnitt> f�r fet text-borderwidth <bredd>	Anv�nd en rambredd med <bredd> (�ven: -bw)-c <kommando>	K�r <kommando> efter inl�sning av den f�rsta filen-c argument-d			Diff-l�ge (som "vimdiff")-dev <enhet>		Anv�nd <enhet> f�r I/O-display <display>	Anslut vim till just denna X-server-display <display>	K�r vim p� <display>-display <display>	K�r vim p� <display> (�ven: --display)-e			Ex-l�ge (som "ex")-f			Anv�nda inte newcli f�r att �ppna f�nster-f  eller --nofork	F�rgrund: Grena inte vid start av GUI-font <typsnitt>		Anv�nd <typsnitt> f�r vanlig text (�ven: -fn)-foreground <f�rg>	Anv�nd <f�rg> f�r vanlig text (�ven: -fg)-g			K�r som GUI (som "gvim")-geometry <geom>	Anv�nd <geom> f�r inledande f�nsterplacering (�ven: -geom)-h  eller  --help	Skriv ut Hj�lp (det h�r meddelandet) och avsluta-i <viminfo>		Anv�nd <viminfo> ist�llet f�r .viminfo-iconic		Starta vim som ikon-italicfont <typsnitt>	Anv�nd <typsnitt> f�r kursiv text-l			Lisp-l�ge-m			Modifieringar (skriva filer) inte till�tet-menuheight <h�jd>	Anv�nd en menyradsh�jd med <h�jd> (�ven: -mh)-n			Ingen v�xlingsfil, anv�nd endast minnet-name <namn>		Anv�nd resurs som om vim var <namn>-o[N]		�ppna N f�nster (standard: ett f�r varje fil)-p[N]		�ppna N flikar (standard: en f�r varje fil)-q [felfil]    redigera fil med f�rsta fel-r			Lista v�xlingsfiler och avsluta-r (med filnamn)	�terskapa kraschad session-register		Registrera gvim f�r OLE-reverse		Anv�nd omv�nd video (�ven: -rv)-s			Tyst (batch) l�ge (bara f�r "ex")-s <inskript>	L�s Normall�geskommandon fr�n fil <inskript>-scrollbarwidth <bredd>  Anv�nd en rullningslistbredd p� <bredd> (�ven: -sw)-t tagg        redigera fil d�r tagg �r definierad-u <vimrc>		Anv�nd <vimrc> ist�llet f�r n�gon .vimrc-unregister		Avregistrera gvim f�r OLE-v			Vi-l�ge (som "vi")-w <utskript>	L�gg till alla skrivna kommandon till fil <utskript>-x			Redigera krypterade filer-xrm <tillg�ng>	St�ll in den angivna tillg�ngen-y			L�tt l�ge (som "evim", l�gesl�s)/-rad ignorerad i %s rad %d: %s/encoding=-rad efter ord ignorerad i %s rad %d: %s1 buffert borttagen1 buffert laddades ur1 buffert utraderad1 tecken1 rad %sade %d g�nger1 rad %sad 1 g�ng1 rad --%d%%--1 rad �ndrad1 rad indenterad 1 rad mindre1 rad flyttad1 rad kopierad1 rad, 1 tr�ff1 fil till att redigera.  Avsluta �nd�?1 rad till1 ers�ttningAndra anv�ndar-gvimrc-fil: "Tredje anv�ndar-gvimrc-fil: ": �verf�ringsuttryck misslyckades.
: �verf�ring misslyckades.
: �verf�ring misslyckades. F�rs�ker att k�ra lokalt
; tr�ff <%s>%s%s  %d,  Hex %02x,  Oktalt %03o<buffertobjekt (borttaget) vid %8lX><kan inte �ppna> <tom><f�nster %d><f�nsterobjekt (borttaget) vid %.8lX><f�nsterobjekt (ok�nt) vid %.8lX>> %d, Hex %04x,  Oktalt %o> %d, Hex %08x, Oktalt %o??? fr�n h�r till ???SLUT kan rader vara tillst�kade??? fr�n h�r till ???SLUT kan rader ha blivit infogade/borttagna???: Tyv�rr, det h�r kommandot �r inaktiverat: MzScheme-biblioteket kunde inte l�sas in.???BLOCK SAKNAS???TOMT BLOCK??SLUT???RADANTAL FEL???RADER SAKNAS???M�NGA RADER SAKNASANCHOR_BUF_SIZE f�r liten.L�gg till en ny databasLade till cscope-databas %sAffix ocks� anv�nd f�r BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST i %s rad %d: %sAffix-namn f�r l�ngt i %s rad %d: %sAllaAlla cscope-databaser �terst�lldaAlla inkluderade filer hittadesRedan vid nyaste �ndringRedan vid �ldsta �ndringRedan bara en flikRedan bara ett f�nsterL�gg till filArgument saknas efterP� radF�rs�k att �ppna skriptfil igen: "Tillbaka p� orginaletBak�tomr�de givet, OK att v�xlaBli en registrerad Vim-anv�ndare!Piip!F�re byte %ldBottB�de SAL och SOFO rader i %sBrytpunkt i "%s%s" rad %ldTrasigt villkor i %s rad %d: %sBl�ddra i klassCOMPOUNDSYLMAX anv�nd utan SYLLABLEAnropar skal att k�ra: "%s"Kan inte hitta tempor�r fil f�r konverteringAvbrytKan inte ansluta till NetbeansKan inte ansluta till Netbeans #2Kan inte ansluta till SNiFF+. Kontrollera milj� (sniffemacs m�ste kunna hittas i $PATH).
Kan inte skapa Kan inte k�ra Kan inte �ppna NIL:
Kan inte �ppna fil "%s"Kan inte �ppna f�r l�sning: "Kan inte �ppna f�r skriptutmatning: "Kan inte l�sa en katalog: "%s"�ndra "%.*s" till:V�lj siffra (<Retur> avbryter): St�ngSt�ng flikKol %s av %s; rad %ld av %ld; ord %ld av %ld; bit %ld av %ldKol %s av %s; rad %ld av %ld; ord %ld av %ld; tecken %ld av %ld; bit %ld av %ldKommandoradKompilering: Kompilator: Komprimerade %d av %d noder; %d (%d%%) �terst�rKomprimerar ordtr�d...Konvertering misslyckades f�r ord i %s rad %d: %sKonvertering i %s st�ds inteKonvertering i %s st�ds inte: fr�n %s till %sKonvertering med 'charconvert' misslyckadesKunde inte ordna upp funktionspekare till DLL:en!Kunde inte l�sa in vim32.dll!Cscope-tagg: %sAktuellt %sspr�k: "%s"Definiera COMPOUNDFORBIDFLAG efter PFX-post kan ge fel resultat i %s rad %dDefiniera COMPOUNDPERMITFLAG efter PFX-post kan ge fel resultat i %s rad %dTa bort .swp-filen efter�t.

Diff med VimAnnan kombinerande flagga i efterf�ljande affix-block i %s rad %d: %sRiktningKatalogerKatalog	*.nothing
Vill du verkligen skriva till denKlar!Double ; i listan med variablerNedDuplicerad /encoding=-rad ignorerad i %s rad %d: %sDuplicerad /regions=-rad ignorerad i %s rad %d: %sDuplicerad affix i %s rad %d: %sDuplicerat tecken i MAP i %s rad %dDuplicerat ord i %s rad %d: %sE100: Ingen annan buffert i skiljel�geE101: Fler �n tv� buffertar i skiljel�ge, vet inte vilken som ska anv�ndasE102: Kan inte hitta buffert "%s"E103: Buffert "%s" �r inte i skiljel�geE104: Escape inte till�tet i digrafE105: Anv�ndning av :loadkeymap utanf�r en k�rd filE107: Saknar hakparantes: %sE108: Ingen s�dan variabel: "%s"E109: Saknar ':' efter '?'E10: \ borde f�ljas av /, ? eller &E110: Saknar ')'E111: Saknar ']'E112: Flaggnamn saknas: %sE113: Ok�nd flagga: %sE114: Saknar citattecken: %sE115: Saknar citattecken: %sE117: Ok�nd funktion: %sE118: F�r m�nga argument till funktion: %sE119: F�r f� argument till funktion: %sE11: Felaktighet i kommandoradsf�nster; <CR> k�r, CTRL-C avslutarE120: Anv�nder inte <SID> i ett skriptsammanhang: %sE121: Odefinierad variabel: %sE122: Funktionen %s existerar redan, l�gg till ! f�r att ers�tta denE124: Saknar '(': %sE125: Otill�tet argument: %sE126: Saknar :endfunctionE128: Funktionsnamn m�ste b�rja med en versal eller inneh�lla ett kolon: %sE129: Funktionsnamn kr�vsE12: Kommando inte till�tet fr�n exrc/vimrc i aktuell katalog eller taggs�kningE130: Ok�nd funktion: %sE131: Kan inte ta bort funktion %s: Den anv�ndsE132: Djupet p� funktionsanropet �r h�gre �n 'maxfuncdepth'E133: :return inte inom en funktionE134: Flytta rader in i dem sj�lvaE135: *Filter*-Autokommandon f�r inte �ndra aktuell buffertE136: viminfo: F�r m�nga fel, hoppar �ver resten av filenE137: Viminfo-fil �r inte skrivbar: %sE138: Kan inte skriva viminfo-fil %s!E139: Filen �r inl�st i en annan buffertE13: Fil existerar (l�gg till ! f�r att tvinga)E140: Anv�nd ! f�r att skriva ofullst�ndig buffertE141: Inget filnamn f�r buffert %ldE142: Filen skrevs inte: Skrivning �r inaktiverat med 'write'-flagganE143: Autokommandon tog ov�ntat bort ny buffert %sE144: ickenumeriskt argument till :zE145: Skalkommandon inte till�tna i rvimE146: Regulj�ra uttryck kan inte vara �tskilda av bokst�verE147: Kan inte g�ra :global rekursivtE148: Regulj�rt uttryck saknas fr�n globalE149: Tyv�rr, ingen hj�lp f�r %sE14: Ogiltig addressE150: Inte en katalog: %sE152: Kan inte �ppna %s f�r skrivningE153: Kunde inte �ppna %s f�r l�sningE154: Duplicerad tagg "%s" i fil %s/%sE155: Ok�nd signatur: %sE156: Saknar signaturnamnE157: Ogiltigt signatur-ID: %ldE158: Ogiltigt buffertnamn: %sE159: Saknar signaturnummerE15: Ogiltigt uttryck: %sE160: Ok�nt signaturkommando: %sE161: Brytpunkt hittades inte: %sE162: Ingen skrivning sedan senaste �ndring f�r buffert "%s"E163: Det finns bara en fil att redigeraE164: Kan inte g� f�re f�rsta filenE165: Kan inte g� bortom sista filenE166: Kan inte �ppna l�nkad fil f�r skrivningE167: :scriptencoding anv�nds utanf�r en k�rd filE168: :finish anv�nds utanf�r en k�rd filE169: Kommando f�r rekursivtE16: Ogiltigt omr�deE170: Saknar :endforE170: Saknar :endwhileE171: Saknar :endifE172: Bara ett filnamn till�tetE173: %ld filer till att redigeraE173: 1 fil till att redigeraE174: Kommando existerar redan: l�gg till ! f�r att ers�tta detE175: Inga attribut angivnaE176: Ogiltigt antal argumentE177: Antal kan inte anges tv� g�ngerE178: Ogiltigt standardv�rde f�r antalE179: argument kr�vs f�r -completeE17: "%s" �r en katalogE180: Ogiltigt kompletteringsv�rde: %sE181: Ogiltigt attribut: %sE182: Ogiltigt kommandonamnE183: Anv�ndardefinierade kommandon m�ste b�rja med en stor bokstavE184: Inget s�dant anv�ndardefinierat kommando: %sE185: Kan inte hitta f�rgschema %sE186: Ingen tidigare katalogE187: Ok�ntE188: F�rskaffa f�nsterposition inte implementerat f�r den h�r plattformenE189: "%s" existerar (l�gg till ! f�r att tvinga)E18: Ov�ntade tecken i :letE190: Kan inte �ppna "%s" f�r skrivningE191: Argument m�ste vara en bokstav eller fram�t-/bak�tv�nt citatteckenE192: Rekursiv anv�ndning av :normal f�r djupE193: :endfunction inte inom en funktionE194: Inget alternativt filnamn att byta ut '#' medE195: Kan inte �ppna viminfo-fil f�r l�sningE196: Inga digrafer i den h�r versionenE197: Kan inte s�tta spr�k till "%s"E198: cmd_pchar bortom kommandol�ngdenE199: Aktivt f�nster eller buffert borttagenE19: Markering har ogiltigt radnummerE200: *ReadPre autokommandon gjorde filen ol�sbarE201: *ReadPre autokommandon f�r inte �ndra nuvarande buffertE202: Konvertering gjorde filen ol�sbar!E203: Autokommandon tog bort eller laddade ur buffert som skulle skrivasE204: Autokommado �ndrade antal rader p� ett ov�ntat s�ttE205: Patchl�ge: kan inte spara orginalfilE206: patchl�ge: kan inte skapa tom orginalfilE207: Kan inte ta bort s�kerhetskopiaE208: Fel vid skrivning till "%s"E209: Fel vid st�ngning av "%s"E20: Markering inte sattE210: Fel vid l�sning av "%s"E211: Filen "%s" �r inte l�ngre tillg�ngligE212: Kan inte �ppna fil f�r skrivningE213: Kan inte konvertera (l�gg till ! f�r att skriva utan konvertering)E214: Kan inte hitta tempor�r fil f�r skrivningE215: Otill�tet tecken efter *: %sE216: Ingen s�dan h�ndelse: %sE216: Ingen s�dan grupp eller h�ndelse: %sE217: Kan inte k�ra autokommandon f�r ALLA h�ndelserE218: autokommando n�stlad f�r djuptE219: Saknar {.E21: Kan inte g�ra �ndringar, 'modifiable' �r avE220: Saknar }.E222: L�gg till i l�sbuffertE223: rekursiv mappningE224: global f�rkortning existerar redan f�r %sE225: global mappning existerar redan f�r %sE226: f�rkortning existerar redan f�r %sE227: mappning existerar redan f�r %sE228: makemap: Otill�tet l�geE229: Kan inte starta GUIE22: Skript n�stlade f�r djuptE230: Kan inte l�sa fr�n "%s"E231: 'guifontwide' ogiltigE232: Kan inte skapa BalloonEval med b�de meddelande och �terkallningE233: kan inte �ppna displayE234: Ok�nd typsnittsupps�ttning: %sE235: Ok�nt typsnitt: %sE236: Typsnitt "%s" �r inte bredd-fixeradE237: Skrivarval misslyckadesE238: Skrivarfel: %sE239: Ogiltig signaturtext: %sE23: Ingen alternativ filE240: Ingen anslutning till Vim-serverE241: Kunde inte s�nda till %sE243: Argument st�ds inte: "-%s"; Anv�nds OLE-versionen.E244: Otill�tet teckenkodsnamn "%s" i typsnittsnamn "%s"E245: Otill�tet tecken '%c' i typsnittsnamn "%s"E246: FileChangedShell-autokommandot tog bort buffertE247: ingen registrerad server med namnet "%s"E248: Misslyckades att skicka kommando till m�lprogrammetE24: Ingen s�dan f�rkortningE250: Typsnitt f�r f�ljande teckenkoder saknas i typsnittsupps�ttningen %s:E251: VIM instansregisteregenskap �r d�ligt format.  Borttaget!E252: Typsnittsupps�ttningsnamn: %sE253: Typsnittsupps�ttningsnamn: %s
E254: Kan inte allokera f�rg %sE255: Kunde inte l�sa in teckendata!E256: Hangul automata FELE257: cstag: tagg hittades inteE258: Kunde inte s�nda till klientE259: inga tr�ffar funna f�r cscope-f�rfr�gan %s av %sE25: GUI kan inte anv�ndas: Inte aktiverat vid kompileringE261: cscope-anslutning %s hittades inteE262: fel vid l�sning av cscope-anslutning %ldE263: Tyv�rr, detta kommandot �r inaktiverat, Python-biblioteket kunde inte l�sas in.E264: Python: Fel vid initiering av I/O-objektE265: $_ m�ste vara en instans av StringE266: Tyv�rr, detta kommandot �r inaktiverat, Ruby-biblioteket kunde inte l�sas in.E267: ov�ntad returneringE268: ov�ntad nextE269: ov�ntad breakE26: Hebreiska kan inte anv�ndas: Inte aktiverat vid kompilering
E270: ov�ntad redoE271: retry utanf�r rescue-blockE272: ohanterat undantagE273: ok�nt longjmp-status %dE274: Sniff: Fel vid l�sning. Fr�nkoppladE275: Ok�nd SNiFF+-beg�ran: %sE276: Fel vid anslutning till SNiFF+E277: Kunde inte l�sa ett serversvarE278: SNiFF+ inte anslutenE279: Inte en SNiFF+-buffertE27: Persiska kan inte anv�ndas: Inte aktiverat vid kompilering
E280: TCL �DESDIGERT FEL: reflist trasig!? Var sn�ll och rapportera detta till vim-dev@vim.orgE281: TCL-FEL: Avslutningskoden �r inte int!? Var sn�ll och rapportera detta till vim-dev@vim.orgE282: Kan inte l�sa fr�n "%s"E283: Inga m�rken matchade "%s"E284: Kan inte st�lla in IC-v�rdenE285: Misslyckades att skapa inmatningsmilj�E286: Misslyckades att �ppna inmatningsmetodE287: Varning: Kunde inte st�lla in f�rst�rnings�terkallning till IME288: inmatningsmetod st�der inte n�gon stilE289: inmatningsmetod st�der inte min f�rredigeringstypE28: Inget s�dant framh�vningsgruppnamn: %sE290: �ver-pricken-stil kr�ver typsnittsupps�ttningE291: Din GTK+ �r �ldre �n 1.2.3. Statusomr�de inaktiveratE292: Inmatningsmetodserver k�rs inteE293: block l�stes inteE294: S�kfel i v�xelfilsl�sningE295: L�sfel i v�xelfilE296: S�kfel i v�xelfilskrivningE297: Skrivfel i v�xelfilE298: Tog inte emot block nr 0?E298: Tog inte emot block nr 1?E298: Tog inte emot block nr 2?E299: Perl-evaluering f�rbjuden i sandl�da utan Safe-modulenE29: Ingen infogad text �nE300: V�xelfil existerar redan (syml�nksattack?)E301: Hoppsan, tappat bort v�xelfilen!!!E302: Kunde inte d�pa om v�xelfilE303: Kunde inte �ppna v�xelfil f�r "%s", �terskapning om�jligE304: ml_upd_block0(): Tog inte emot block 0??E305: Ingen v�xelfil hittad f�r %sE306: Kan inte �ppna %sE307: %s ser inte ut som en Vim-v�xlingsfilE308: Varning: Orginalfilen kan ha blivit skadadE309: Kunde inte l�sa block 1 fr�n %sE30: Ingen tidigare kommandoradE310: Block 1 ID fel (%s inte en .swp-fil?)E311: �terskapning avbrutenE312: Fel uppt�ckt vid �terskapning; titta efter rader som b�rjar med ???E313: Kan inte bevara, det finns ingen v�xlingsfilE314: Bevaring misslyckadesE315: ml_get: ogiltigt lnum: %ldE316: ml_get: kan inte hitta rad %ldE317: pekarblock-id felE317: pekarblock-id fel 2E317: pekarblock-id fel 3E317: pekarblock-id fel 4E318: Uppdaterade f�r m�nga block?E319: Tyv�rr, kommandot �r inte tillg�ngligt i den h�r versionenE31: Ingen s�dan mappningE320: Kan inte hitta rad %ldE321: Kunde inte l�sa om "%s"E322: radnummer utanf�r omr�de: %ld bakom slutetE323: radantal fel i block %ldE324: Kan inte �ppna PostScript-utfilE325: LYSTRINGE326: F�r m�nga v�xlingsfiler hittadeE327: Del av menyf�rem�l s�kv�g �r inte undermenyE328: Meny existerar bara i ett annat l�geE329: Ingen meny "%s"E32: Inget filnamnE330: Menys�kv�g f�r inte leda till en undermenyE331: F�r inte l�gga till menyf�rem�l direkt till menyradE332: Avskiljare kam inte vara en del av en menys�kv�gE333: Menys�kv�g m�ste leda till ett menyf�rem�lE334: Meny hittades inte: %sE335: Meny inte definierad f�r %s l�geE336: Menys�kv�g m�ste leda till en undermenyE337: Meny hittades inte - kontrollera menynamnE338: Tyv�rr, ingen filbl�ddrare i konsoll-l�geE339: M�nster f�r l�ngtE33: Inget tidigare utbytningsregulj�ruttryckE340: Rad b�rjar bli f�r l�ngE341: Internt fel: lalloc(%ld, )E342: Slut p� minne!  (allokerar %lu byte)E343: Ogiltig s�kv�g: '**[nummer]' m�ste vara i slutet p� s�kv�gen eller f�ljas av '%s'.E344: Kan inte hitta katalog "%s" i cdpathE345: Kan inte hitta fil "%s" i s�kv�gE346: Ingen katalog "%s" hittades i cdpathE347: Ingen fil "%s" hittades i s�kv�genE348: Ingen str�ng under mark�rE349: Ingen identifierare under mark�rE34: Inget tidigare kommandoE350: Kan inte skapa veck med nuvarande 'foldmethod'E351: Kan inte ta bort veck med nuvarande 'foldmethod'E352: Kan inte ta bort veck med aktuell 'foldmethod'E353: Ingenting i register %sE354: Otill�tet registernamn: '%s'E355: Ok�nd flagga: %sE356: get_varp-FELE357: 'langmap': Matchande tecken saknas f�r %sE358: 'langmap': Extra tecken efter semikolon: %sE359: Sk�rml�ge inst�llning st�ds inteE35: Inget tidigare regulj�rt uttryckE360: Kan inte k�ra skal med -f-flaggaE363: m�nster anv�nder mer minne �n 'maxmempattern'E364: Biblioteksanrop misslyckades f�r "%s()"E365: Misslyckades med att skriva ut PostScript-filE367: Ingen s�dan grupp: "%s"E369: ogiltigt f�rem�l i %s%%[]E36: Inte tillr�ckligt med utrymmeE370: Kunde inte l�sa in bibliotek %sE371: Kommando hittades inteE372: F�r m�nga %%%c i formatstr�ngE373: Ov�ntad %%%c i formatstr�ngE374: Saknar ] i formatstr�ngE375: Ost�dd %%%c i formatstr�ngE376: Ogiltig %%%c i formatstr�ngprefixE377: Ogiltig %%%c i formatstr�ngE378: 'errorformat' inneh�ller inga m�nsterE379: Saknar eller tomt katalognamnE37: Ingen skrivning sedan senaste �ndring (l�gg till ! f�r att tvinga)E380: P� botten av quickfix-stackE381: P� toppen av quickfix-stackE382: Kan inte skriva, 'buftype'-flagga �r sattE383: Ogiltig s�kstr�ng: %sE384: s�kning n�dde TOPPEN utan tr�ff av: %sE385: s�kning n�dde BOTTEN utan tr�ff av: %sE386: F�rv�ntade '?' eller '/' efter ';'E387: Matchning �r p� aktuell radE388: Kunde inte hitta definitionE389: Kunde inte hitta m�nsterE38: Null-argumentE390: Otill�tet argument: %sE391: Inget s�dant syntax-kluster: %sE392: Inga s�dana syntaxkluster: %sE393: grupper inte till�tna h�rE394: Hittade inte regionf�rem�l f�r %sE395: inneh�ller argument som inte �r till�tna h�rE396: inneh�ll argument som inte �r till�tna h�rE397: Filnamn kr�vsE398: Saknar '=': %sE399: Inte tillr�ckliga argument: syntaxregion %sE39: Nummer v�ntatE400: Inget kluster angivetE401: M�nsteravgr�nsare hittades inte: %sE402: Skr�p efter m�nster: %sE403: syntax-synk: radforts�ttningsm�nster angivet tv� g�ngerE404: Otill�tna argument: %sE405: Saknar likamed-tecken: %sE406: Tomt argument: %sE407: %s inte till�tet h�rE408: %s m�ste vara f�rst i inneh�llslistaE409: Ok�nt gruppnamn: %sE40: Kan inte �ppna felfil %sE410: Ogiltigt :syntax-underkommando: %sE411: framh�vningsgrupp hittades inte: %sE412: Inte tillr�ckliga argument: ":highlight l�nk %s"E413: F�r m�nga argument: ":highlight l�nk %s"E414: grupp har inst�llningar, framh�vningsl�nk ignoreradE415: ov�ntat likamed-tecken: %sE416: saknar likamed-tecken: %sE417: saknar argument: %sE418: Otill�tet v�rde: %sE419: FG-f�rg ok�ndE41: Slut p� minne!E420: BG-f�rg ok�ndE421: F�rgnamn eller nummer inte igenk�nt: %sE422: terminalkod f�r l�ng: %sE423: Otill�tet argument: %sE424: F�r m�nga olika framh�vningsattribut i anv�ndningE425: Kan inte g� f�re f�rsta matchande taggE426: tagg hittades inte: %sE427: Det finns bara en matchande taggE428: Kan inte g� bortom sista matchande taggE429: Fil "%s" existerar inteE42: Inga felE430: Taggfils�kv�g trunkerades f�r %s
E431: Formateringsfel i tagg-fil "%s"E432: Tagg-fil inte sorterad: %sE433: Ingen tagg-filE434: Kan inte hitta taggm�nsterE435: Kunde inte hitta tagg, gissar bara!E436: Ingen "%s"-notering i termcapE437: terminalkapacitet "cm" kr�vsE438: u_undo: radnummer felE439: �ngra-lista trasigE43: Skadad tr�ffstr�ngE440: �ngra-rad saknasE441: Det finns inget f�rhandsvisningsf�nsterE442: Kan inte dela toppv�nster och bottenh�ger samtidigtE443: Kan inte rotera n�r ett annat f�nster �r delatE444: Kan inte st�nga senaste f�nstretE445: Andra f�nster inneh�ller �ndringarE446: Inget filnamn under mark�rE447: Kan inte hitta fil "%s" i s�kv�gE448: Kunde inte l�sa in biblioteksfunktion %sE449: Ogiltigt uttryck mottagetE44: Trasigt program f�r regulj�ra uttryckE455: Fel vid skrivning av utdata till PostScript-filE456: Kan inte hitta PostScript-k�llfilen "%s.ps"E456: Kan inte hitta PostScript-k�llfilen "cidfont.ps"E456: Kan inte hitta PostScript-k�llfilen "prolog.ps"E456: Kan inte �ppna fil "%s"E457: Kan inte l�sa PostScript-resursfil "%s"E459: Kan inte g� tillbaka till tidigare katalogE45: 'readonly' flagga �r satt (l�gg till ! f�r att tvinga)E460: Resursgrenen skulle tappas bort (l�gg till ! f�r att tvinga)E461: Otill�tet variabelnamn: %sE462: Kunde inte f�rbereda f�r att l�sa om "%s"E463: Region �r vaktad, kan inte modifieraE464: Otydlig anv�ndning av anv�ndardefinierat kommandoE465: :winsize kr�ver tv� sifferargumentE466: :winpos kr�ver tv� sifferargumentE467: Specialkomplettering kr�ver ett funktionsargumentE468: Kompletteringsargument bara till�tet f�r specialkompletteringE469: ogiltig cscopequickfix flagga %c f�r %cE46: Kan inte �ndra skrivskyddad variabel "%s"E470: Kommando avbrutetE471: Argument kr�vsE472: Kommando misslyckadesE473: Internt felE474: Ogiltigt argumentE475: Ogiltigt argument: %sE476: Ogiltigt kommandoE477: Inget ! till�tetE478: F� inte panik!E479: Ingen tr�ffE47: Fel vid l�sning av felfilE480: Ingen tr�ff: %sE481: Inget omr�de till�tetE482: Kan inte skapa fil %sE483: Kan inte h�mta tempor�rt filnamnE484: Kan inte �ppna fil %sE485: Kan inte l�sa fil %sE486: M�nster hittades inte: %sE487: Argument m�ste vara positivtE488: Eftersl�pande teckenE48: Inte till�tet i sandl�daE490: Inget veck funnetE492: Inte ett redigerarkommandoE493: Bak�tomr�de givetE494: Anv�nd w eller w>>E495: inget autokommando-filnamn att ers�tta "<afile>" medE496: inget autokommando-buffernummer att ers�tta "<abuf>" medE497: inget autokommando-tr�ffnamn att byta ut "<amatch>" medE498: inget :source-filnamn att byta ut "<sfile>" medE499: Tomt filnamn f�r '%' or '#', fungerar bara med ":p:h"E49: Ogiltig rullningsstorlekE500: Evaluerar till en tom str�ngE501: Vid filslutE505: E506: Kan inte skriva till s�kerhetskopia (l�gg till ! f�r att tvinga)E507: St�ngningsfel f�r s�kerhetskopia (l�gg till ! f�r att tvinga)E508: Kan inte l�sa fil f�r s�kerhetskopia (l�gg till ! f�r att tvinga)E509: Kan inte skapa s�kerhetskopia (l�gg till ! f�r att tvinga)E50: F�r m�nga \z(E510: Kan inte g�ra s�kerhetskopia (l�gg till ! f�r att tvinga)E512: St�ngning misslyckadesE513: skrivfel, konvertering misslyckades (g�r 'fenc' tom f�r att tvinga)E514: skrivfel (filsystem fullt?)E515: Inga buffertar blev urladdadeE516: Inga buffertar blev borttagnaE517: Inga buffertar blev utraderadeE518: Ok�nd flaggaE519: Flagga st�ds inteE51: F�r m�nga %s(E520: Inte till�tet i en l�gesradE521: Nummer kr�vs efter =E522: Inte hittat i termcapE523: Inte till�tet h�rE524: Saknar kolonE525: Noll�ngdsstr�ngE526: Saknar nummer efter <%s>E527: Saknar kommaE528: M�ste ange ett '-v�rdeE529: Kan inte s�tta 'term' till tom str�ngE52: Omatchade \z(E530: Kan inte �ndra term i GUIE531: Anv�nd ":gui" f�r att starta GUIE533: kan inte v�lja brett typsnittE534: Ogiltigt brett typsnittE535: Otill�tet tecken efter <%c>E536: komma kr�vsE537: 'commentstring' m�ste vara tom eller inneh�lla %sE538: Inget musst�dE539: Otill�tet tecken <%s>E53: Omatchade %s%%(E540: Ost�ngd uttryckssekvensE541: f�r m�nga f�rem�lE542: obalanserade grupperE543: Inte en godk�nd teckentabellE544: Keymap-fil hittades inteE545: Saknar kolonE546: Otill�tet l�geE547: Otill�ten musformE548: siffra f�rv�ntadesE549: Otill�ten procentsatsE54: Omatchade %s(E550: Saknar kolonE551: Otill�ten komponentE552: siffra f�rv�ntadesE553: Inga fler f�rem�lE554: Syntaxfel i %s{...}E555: p� botten av taggstackE556: p� toppen av taggstackE557: Kan inte �ppna termcap-filE558: Terminalnotering hittades inte i terminfoE559: Terminalnotering hittades inte i termcapE55: Omatchade %s)E560: Anv�ndning: cs[cope] %sE561: ok�nd cscope-s�ktypE562: Anv�ndning: cstag <identifierare>E563: stat-felE563: stat(%s)-fel: %dE564: %s �r inte en katalog eller en godk�nd cscope-databasE566: Kunde inte skapa cscope-r�rE567: inga cscope-anslutningarE568: dubblerad cscope-databas inte lagd tillE569: maximalt antal av cscope-anslutningar n�ttE570: �desdigert fel i cs_manage_matchesE571: Tyv�rr, detta kommando �r inaktiverat: Tcl-biblioteket kunde inte l�sas in.E572: avslutningskod %dE573: Ogiltigt server-id anv�nt: %sE574: Ok�nd registertyp %dE579: :if n�stlad f�r djuptE580: :endif utan :ifE581: :else utan :ifE582: :elseif utan :ifE583: flera :elseE584: :elseif efter :elseE585: :while/:for n�stlad f�r djuptE586: :continue utan :while eller :forE587: :break utan :while eller :forE588: :endfor utan :forE588: :endwhile utan :whileE589: 'backuptext' och 'patchmode' �r likaE590: Ett f�rhandsvisningsf�nster existerar redanE591: 'winheight' kan inte vara mindre �n 'winminheight'E592: 'winwidth' kan inte vara mindre �n 'winminwidth'E593: Beh�ver �tminstone %d raderE594: Beh�ver �tminstone %d kolumnerE595: inneh�ller outskrivbara eller breda teckenE596: Ogiltig(a) typsnittE597: kan inte v�lja typsnittsupps�ttningE598: Ogiltig typsnittsupps�ttningE599: V�rdet av 'imactivatekey' �r ogiltigtE59: ogiltigt tecken efter %s@E600: Saknar :endtryE601: :try n�stlad f�r djuptE602: :endtry utan :tryE603: :catch utan :tryE604: :catch efter :finallyE605: Undantag inte f�ngat: %sE606: :finally utan :tryE607: flera :finallyE608: Kan inte :throw undantag med 'Vim'-prefixE609: Cscope-fel: %sE60: F�r m�nga komplexa %s{...}sE612: F�r m�nga signaturer definieradeE613: Ok�nt skrivartypsnitt: %sE614: vim_SelFile: Kan inte �terv�nda till aktuell katalogE615: vim_SelFile: kan inte h�mta aktuell katalogE616: vim_SelFile: kan inte h�mta typsnitt %sE617: Kan inte bli �ndrat i GTK+ 2-GUIE618: fil "%s" �r inte en PostScript-resursfilE619: fil "%s" �r inte en PostScript-resursfil som st�dsE61: N�stlade %s*E620: Kunde inte konvertera fr�n utskriftkodning "%s"E621: "%s"-k�llfilen har fel versionE622: Kunde inte grena f�r cscopeE623: Kunde inte starta cscope-processE624: Kan inte �ppna fil "%s"E625: kan inte �ppna cscope-databas: %sE626: kan inte h�mta cscope-databasinformationE62: N�stlade %s%cE63: ogiltig anv�ndning av \_E64: %s%c f�ljer ingentingE655: F�r m�nga symboliska l�nkar (slinga?)E658: NetBeans-anslutning tappad f�r buffert %ldE659: Kan inte anropa Python rekursivtE65: Otill�ten bak�treferensE661: Tyv�rr, ingen "%s"-hj�lp f�r %sE662: Vid b�rjan av �ndringslistaE663: Vid slutet av �ndringslistaE664: �ndringslista �r tomE665: Kan inte starta GUI, ingen giltig font hittadE666: kompilator st�ds inte: %sE667: Fsync misslyckadesE668: Fel r�ttighetsl�ge f�r NetBeans-anslutningens info fil: "%s"E669: Outskrivbart tecken i gruppnamnE66: \z{ inte till�tet h�rE670: Blandning av hj�lpfilskodning inom ett spr�k: %sE671: Kan inte hitta f�nstertitel "%s"E672: Kunde inte �ppna f�nster inuti MDI-applikationE673: Inkompatibel flerbitskodning och teckenupps�ttning.E674: printmbcharset kan inte vara tom med flerbitskodning.E675: Ingen standardfont angiven f�r flerbitsutskrifter.E676: Inga matchande autokommandon f�r acwrite buffertE677: Fel vid skrivning av tempor�r filE678: Ogiltigt tecken efter %s%%[dxouU]E679: rekursiv loop laddar syncolor.vimE67: \z1 m.fl. inte till�tet h�rE680: <buffert=%d>: ogiltigt buffertnummer E681: Buffert �r inte laddadE682: Ogiltigt s�km�nster eller delimiterE683: Filnamn saknas eller ogiltigt m�nsterE684: listindex utanf�r omr�de: %ldE685: Internt fel: %sE686: Argument av %s m�ste vara en ListE687: F�rre m�l �n List-posterE688: Fler m�l �n List-posterE689: Kan bara indexera en Lista eller TabellE68: Ogiltigt tecken efter \zE690: Saknar "in" efter :forE691: Kan bara j�mf�ra Lista med ListaE692: Ogiltig operation f�r ListaE693: Kan bara j�mf�ra Funcref med FuncrefE694: Ogiltig operation f�r FuncrefsE695: Kan inte indexera en FuncrefE696: Saknar komma i Lista: %sE697: Saknar slut p� Lista ']': %sE698: variabel n�stlad f�r djupt f�r att skapa en kopiaE699: F�r m�nga argumentE69: Saknar ] efter %s%%[E700: Ok�nd funktion: %sE701: Ogiltig typ f�r len()E702: J�mf�relsefunktionen f�r sortering misslyckadesE703: Anv�nder en Funcref som en siffraE704: Variabelnamn f�r Funcref m�ste b�rja med en versal: %sE705: Variabelnamn konflikterar med existerande funktion %sE706: Variabeltyp matchar inte f�r: %sE708: [:] m�ste komma sistE709: [:] kr�ver ett List-v�rdeE70: Tom %s%%[]E710: List-v�rde har mer f�rem�l �n m�lE711: List-v�rde har inte tillr�ckligt med f�rem�lE712: Argument av %s m�ste vara en Lista eller TabellE713: Kan inte anv�nda tom nyckel f�r TabellE714: Lista kr�vsE715: Tabell kr�vsE716: Tangent finns inte i Tabell: %sE717: Tabell-post existerar redanE718: Funcref kr�vsE719: Kan inte anv�nda [:] med en TabellE71: Ogiltigt tecken efter %s%%E720: Saknar kolon i Tabell: %sE721: Duplicerad nyckel i Tabell: "%s"E722: Saknar komma i Tabell: %sE723: Saknar slut p� Tabell '}': %sE724: variabel n�stlad f�r djupt f�r att visasE725: Anropar tabell-funktion utan Tabell: %sE726: Kliv �r nollE727: Start efter slutE728: Anv�nder en Tabell som en siffraE729: anv�nder Funcref som en Str�ngE72: St�ngningsfel p� v�xlingsfilE730: anv�nder Lista som en Str�ngE731: anv�nder Tabell som en Str�ngE732: Anv�nder :endfor med :whileE733: Anv�nder :endwhile med :forE734: Fel variabeltyp f�r %s=E735: Kan bara j�mf�ra Tabell med TabellE736: Ogiltig operation f�r TabellE737: Tangenten finns redan: %sE738: Kan inte lista variabler f�r %sE739: Kan inte skapa katalog: %sE73: taggstack tomE741: V�rde �r l�st: %sE742: Kan inte �ndra v�rde av %sE743: variabel n�stlade f�r djupt f�r (un)lockE744: NetBeans till�ter inte �ndringar i skrivskyddade filerE745: Anv�nder en Lista som en siffraE746: Funktionsnamn matchar inte skriptfilnamn: %sE747: Kan inte �ndra katalog, buffert �r �ndrad (l�gg till ! f�r att tvinga)E748: Inget tidigare anv�nt registerE749: tom buffertE74: Kommando f�r komplextE750: Anv�nd :profile start <fnamn> f�rstE751: Utmatningsfilnamn f�r inte ha regionnamnE752: Ingen tidigare stavningsers�ttningE753: Hittades inte: %sE754: Bara upp till 8 regioner st�dsE755: Ogiltig region i %sE756: Stavningskontroll �r inte aktiveratE757: Det h�r ser inte ut som en stavningsfilE758: Trunkerad stavningsfilE759: Formateringsfel i stavningsfilE75: Namn f�r l�ngtE760: Inget ordantal i %sE761: Formateringsfel i affix-fil FOL, LOW eller UPPE762: Tecken i FOL, LOW eller UPP �r utanf�r omr�deE763: Ordtecken skiljer sig mellan stavningsfilerE764: Flagga '%s' �r inte sattE765: 'spellfile' har inte %ld posterE766: Otillr�ckliga argument f�r printf()E767: F�r m�nga argument till printf()E768: V�xlingsfil existerar: %s (:silent! tvingar)E769: Saknar ] efter %s[E76: F�r m�nga [E770: Ost�dd sektion i stavningsfilE771: Gammal stavningsfil, beh�ver bli uppdateradE772: Stavningsfil �r f�r nyare version av VimE773: Symbolisk l�nk-loop f�r "%s"E774: 'operatorfunc' �r tomE775: Eval-funktionen inte tillg�ngligE776: Ingen positionslistaE777: Str�ng eller Lista f�rv�ntadesE778: Det h�r ser inte ut som en .sug-fil: %sE779: Gammal .sug-fil, beh�ver bli uppdaterad: %sE77: F�r m�nga filnamnE780: .sug-fil �r f�r nyare version av Vim: %sE781: .sug-fil matchar inte .spl-fil: %sE782: fel vid l�sning av .sug-fil: %sE783: dubblerat tecken i MAP-postE784: Kan inte st�nga senaste flikE785: complete() kan bara anv�ndas i infogningsl�geE786: Omr�de otill�tetE787: Buffert �ndrades ov�ntatE788: Inte till�tet att redigera en annan buffert nuE789: Saknar ']': %sE78: Ok�nt m�rkeE790: undojoin �r inte till�tet efter undoE791: Tomt tangentbords-postE792: Tomt menynamnE793: Ingen annan buffert i skiljel�ge �r �ndringsbarE794: Kan inte s�tta variabel i sandl�dan: "%s"E795: Kan inte ta bort variabel %sE79: Kan inte expandera jokerteckenE800: Arabiska kan inte anv�ndas: Inte aktiverat vid kompilering
E80: Fel vid skrivningE81: Anv�nder inte <SID> i ett skriptsammanhangE82: Kan inte allokera n�gon buffert, avslutar...E83: Kan inte allokera buffert, anv�nder en annan...E84: Ingen modifierad buffert hittadE85: Det finns inga listade buffertarE86: Buffert %ld existerar inteE87: Kan inte g� bortom sista buffertE88: Kan inte g� f�re f�rsta buffertE89: Ingen skrivning sedan senaste �ndring f�r buffert %ld (l�gg till ! f�r att tvinga)E90: Kan inte ladda ur senaste buffertE91: 'shell' flagga �r tomE92: Buffer %ld hittades inteE93: Fler �n en tr�ff f�r %sE94: Ingen matchande buffert f�r %sE95: Buffer med det h�r namnet existerar redanE96: Kan inte skilja fler �n %ld buffertarE97: Kan inte skapa skiljareE98: Kan inte l�sa skiljeutdataE99: Aktuell buffert �r inte i skiljel�geFEL: Redigera filRedigera fil i nytt f�nsterRedigera med &VimRedigera med &flera VimsRedigera med befintlig Vim - Redigera med en &VimRedigerar markerade fil(erna) med VimTeckenkodning:Slut p� funktionSlut p� l�st filAnge krypteringsnyckel: Ange nummer p� v�xelfil att anv�nda (0 f�r att avsluta): Ange samma nyckel igen: G�r in i fels�kningsl�ge.  Skriv "cont" f�r att forts�tta.G�r in i Ex-l�ge.  Skriv "visual" f�r att g� till Normal-l�ge.FelFel och avbrytetFelskapande process: Kontrollera om gvim �r i din s�kv�g!Fel uppt�cktes vid bearbetning av %s:Ber�knat k�rtidsminne anv�nt: %d byteUndantagUndantag f�ngade: %sUndantag f�rkastade: %sUndantag f�rdiga: %sUndantag kastade: %sK�r %sF�rv�ntade MAP-antal i %s rad %dF�rv�ntade REP(SAL)-antal i %s rad %dF�rv�ntade Y eller N i %s rad %d: %sUttryckExterna undertr�ffar:
FLAG efter anv�ndning av flags i %s rad %d: %sFil "%s" existerar inteFil bevaradFilerFilterS�k & ers�tt (anv�nd '\\' f�r att hitta '\')Hitta &n�staHitta n�staS�k str�ng (anv�nd '\\' f�r att hitta '\')Hitta symbolHitta vad:F�rsta duplicerade ordet i %s rad %d: %sFlagga �r inte ett nummer i %s rad %d: %sFont '%s' �r inte fast breddTypsnittsvalTypsnitt%ld �r inte dubbelt s� bred som font0
Typsnitt0 bredd: %ld
Typsnitt0: %s
Typsnitt1 bredd: %ld

Typsnitt1: %s
Typsnitt:Skr�p efter flaggargumentGenerera docu f�rV�lkommen, Vim-anv�ndare!Hj�lp fattiga barn i Uganda!St�tte p� slutet p� stycketI/O-FELIgnorerade %d ord med icke-ASCII tecken i %sIgnorerade %d ord med icke-ASCII teckenOtill�tet filnamnOgiltig flagga i %s rad %d: %sOtill�tet registernamnOtill�tet startteckenInmatningsradInmatnings_metoderAvbrytAvbrott: AvbrutenOgiltigt argument f�rOgiltig typsnittsupps�ttningOgiltigt regionsnr i %s rad %d: %sOgiltigt v�rde f�r FLAG i %s rad %d: %sNycklar matchar inte!D�da en anslutningL�nkning: Skilj p� stora/sm� bokst�verMatcha endast hela ordMeddelandeMeddelandeansvarig: Johan Svedberg <johan@svedberg.com>Saknar '>'Saknar FOL/LOW/UPP rad i %sSaknar SOFO%s rad i %sModifierad av Namn:Beh�ver %s version %ld
Beh�ver Amigados version 2.04 eller senare
NetBeans till�ter inte skrivning av omodifierade buffertarNy flikInga syntax-f�rem�l definierade f�r den h�r buffertenIngen f�rkortning hittadesInga brytpunkter definieradeIngen displayIngen display: �verf�ringsuttryck misslyckades.
Inga inkluderade filerIngen mappning hittadesInga m�rken sattaIngen matchning vid mark�r, s�ker n�staInga matchande autokommandonIngen v�xlingsfilIngen text att skriva utIngen �ngring m�jlig; forts�tter �nd�Inga anv�ndardefinierade kommandon hittadeInte anv�ndInget att �ngraAntal ord efter ljudvikning: %ldOK�ppna fil-dialog�ppna flik...�ppna flik...�ppning av X-displayen misslyckades�ppning av X-displayen tog f�r l�ng tid�ppning av X-display tog %ld msOrginalfil "%s"Skriv �ver befintlig fil "%s"?Sida %dDelvisa skrivningar till�ts inte i NetBeans-buffertarPatchfilS�kv�gsl�ngd f�r l�ng!S�kv�g:M�nster funnet i varje rad: %sM�nster hittades inteUtf�r ljudvikning...Tryck RETUR eller skriv kommando f�r att forts�ttaSkrivarjobb skickat.Skrev ut: %sSkriver ut '%s'Utskrift avbrutenSkriver ut sida %d (%d%%)Fr�ga efter ett m�nsterFr�gaL�ser affix-fil %s ...L�ser tillbaka stavningsfil...L�ser ordboksfil %s ...L�ser fr�n standard in...L�ser stavningsfil "%s"L�ser viminfo-fil "%s"%s%s%sL�ser ordfil %s ...�terskapning klar. Du borde kontrollera om allting �r OK.Ominitiera alla anslutningarErs�ttErs�tt &allaErs�tt allaErs�tt med:H�mtaH�mta fr�n alla projektH�mta fr�n filH�mta fr�n projektK�r i Vi-kompatibelt l�geK�r l�gesl�st, skriven text blir infogadSNiFF+ �r f�r n�rvarande Spara somSpara fil-dialogSpara omdirigeringSpara sessionSpara konfigurationSpara vySpara �ndringar till "%s"?S�ker igenom ordbok: %sS�ker igenom inkluderad fil: %sS�ker igenom taggar.S�ker igenom: %sRullningslist: Kunde inte h�mta geometrin p� miniatyrbild.S�kstr�ngS�ker efter "%s"S�ker efter "%s" i "%s"S�ker igenom inkluderad fil %sS�ker tagg-fil %sSe ":help E312" f�r mer information.Se ":help W11" f�r mer info.Se ":help W12" f�r mer info.Se ":help W16" f�r mer info.V�lj katalog-dialogMarkerade %s%ld av %ld rader; %ld av %ld ord; %ld av %ld bitarMarkerade %s%ld av %ld rader; %ld av %ld ord; %ld av %ld tecken; %ld av %ld bitarValSkickar till skrivare...Visa basklass avVisa klass i hierarkiVisa klass i begr�nsad hierarkiVisa anslutningarVisa docu avVisa �sidosatt medlemsfunktionVisa storlek i punkterVisa k�lla f�rVisa detta meddelandeTecken f�r %s:Storlek:Sniff: Fel vid skrivning. Fr�nkoppladTyv�rr, hj�lpfil "%s" hittades inteTyv�rr, inga f�reslagTyv�rr, bara %ld f�reslagTyv�rr, det h�r kommandot �r inaktiverat: Perl-biblioteket kunde inte l�sas in.L�s Vim-skriptSt�d utvecklingen av Vim!Stackstorlek �karStil:V�xlingsfil "V�xlingsfil "%s" existerar, skriv �ver �nd�?V�xlingsfil existerar redan!V�xlingsfiler hittade:Flik %dTa loss den h�r menynTestning av X-displayen misslyckadesTack f�r att du flyger med VimFilen skapades p� Den enda tr�ffenDenna Vim blev inte kompilerad med diff-funktionen.Det h�r scope-kommandot st�der inte delning av f�nstret.
V�xla mellan implementation/definitionF�r m�nga "+kommando"-, "-c kommando"- eller "--cmd kommando"-argumentF�r m�nga sammansatta flaggorF�r m�nga redigeringsargumentF�r m�nga uppskjutna prefixF�r m�nga uppskjutna prefix och/eller sammansatta flaggorF�r m�nga regioner i %s rad %d: %sToppTotalt antal ord: %dEftersl�pande text i %s rad %d: %sskriv  :q<Enter>                f�r att avsluta Vim         Skriv siffra eller klicka med musen (<Retur> avbryter): Kunde inte l�sa block 0 fr�n Kunde inte registrera ett kommandoservernamn�ngra-nummer %ld hittades inteOk�ndOk�nt flaggargumentOk�nda flaggot i %s rad %d: %sOk�nd eller duplicerad post i %s rad %d: %sNamnl�sUppAnv�nd Vim version 3.0.
Anv�nd CUT_BUFFER0 ist�llet f�r tomt valAnv�nder v�xlingsfil "%s"VIM - LYSTRINGVIM - S�k och ers�tt...VIM - S�k...VIM - Vi IMprovedVIM-felVIM: Kan inte �ppna f�nster!
VIMRUN.EXE hittades inte i din $PATH.
Externa kommandon vill inte st� stilla efter f�rdigst�llning.
Se  :help win32-vimrun  f�r mer information.Vim - Typsnittsv�ljareVim E458: Kan inte allokera post i f�rgkarta, n�gra f�rger kan bli felaktigaVim-varningVim-dialogVim-dialog...Vim-felVim-fel: ~aVim avslutar med %d
Vim �r �ppen k�llkod och fri att distribueraVim: F�ngade %s-h�ndelse
Vim: F�ngade d�dlig signal
Vim: F�ngade d�dlig signal %s
Vim: Dubbelsignal, avslutar
Vim: Fel vid l�sning av inmatning, avslutar...
Vim: Fel: Misslyckades att starta gvim fr�n NetBeans
Vim: F�rdig.
Vim: Huvudf�nster ov�ntat f�rst�rt
Vim: L�ser fr�n standard in...
Vim: Tog emot "die"-beg�ran fr�n sessionshanteraren
Vim: Varning: Inmatning �r inte fr�n en terminal
Vim: Varning: Utmatning �r inte till en terminal
Vim: bevarar filer...
W10: Varning: �ndrar en skrivskyddad filW11: Varning: Filen "%s" har �ndrats sedan redigeringen b�rjadeW12: Varning: Filen "%s" har �ndrats och bufferten �ndrades i Vim ocks�W13: Varning: Filen "%s" har skapats efter redigeringen b�rjadeW14: Varning: Lista �ver filnamn fl�dar �verW15: Varning: Fel radavskiljare, ^M kan saknasW16: Varning: R�ttigheterna p� filen "%s" har �ndrats sedan redigeringen b�rjadeW17: Arabiska kr�ver UTF-8, g�r ':set encoding=utf-8'W18: Ogiltigt tecken i gruppnamnVARNING: Filen har �ndrats sedan den l�stes in!!!VARNING: Windows 95/98/ME uppt�cktVarningVarning: Kan inte hitta ordlista "%s.%s.spl" eller "%s.ascii.spl"Varning: Gick in i andra buffertar ov�ntat (kontrollera autokommandon)Varning: b�de sammans�ttning och NOBREAK specifieradVarning: region %s st�ds inteVarning: terminal kan inte framh�vaVid �ppning av fil "F�nsterposition: X %d, Y %dOrd lagd till %sOrd fr�n annan radOrd borttaget fr�n %sSkriv ofullst�ndig fil?Skriver stavningsfil %s ...Skriver f�rslagsfil %s ...Skriver viminfo-fil "%s"Fel CHECKCOMPOUNDPATTERN-v�rde i %s rad %d: %sFel COMPOUNDMIN-v�rde i %s rad %d: %sFel COMPOUNDSYLMAX-v�rde i %s rad %d: %sFel COMPOUNDWORDMAX-v�rde i %s rad %d: %sXSMP ICE-anslutning �vervakning misslyckadesXSMP SmcOpenConnection misslyckades: %sXSMP hanterar spara-sj�lv-f�rfr�ganXSMP tappade ICE-anslutningXSMP �ppnar anslutningXref har enXref refereras avXref refererar tillXref anv�nds avJANoll-l�ngd[KONVERTERINGSFEL p� rad %ld][CR saknas][Borttagen][Enhet][Fil f�r stor][Hj�lp][OTILL�TEN BIT p� rad %ld][Ofullst�ndig sistarad][Positionslista][NL hittat][INTE konverterad][Ny KATALOG][Ny fil][Ny fil][Ny][Inget Namn][Ingen skrivning sedan senaste �ndring]
[Inte redigerad][Till�telse nekas][F�rhandsvisning][Quickfix-lista][L�SFEL][EL][L�sfel][anrop] sammanlagda om/malloc()'s %lu, sammanlagda free()'s %lu

[konverterad][krypterad][dos-format][dos][fifo/uttag][fifo][fil ..]       redigera angivna fil(er)[l�nga rader delade][mac-format][mac][inget radslut][skrivskyddad][uttag][unix-format][unix]efteroch k�r diff med orginalfilen f�r att kontrollera efter f�r�ndringar)
f�rs�k att referera till borttagen buffertf�rs�k att referera till borttaget f�nstertar bort autokommando automatiskt: %s <buffert=%d>autokommando %sf�reblock om %ld rader kopieradeblock om 1 rad kopieratbuffert �r ogiltigav av Bram Moolenaar m.fl.anropade inputrestore() oftare �n inputsave()anropar %skan inte ta bort OutputObject-attributkan inte l�sa utdata av 'charconvert'kan inte �ndra konsoll-l�ge ?!
kan inte skapa buffert/f�nster-kommando: objekt h�ller p� att tas bortkan inte ta bort radkan inte h�mta radkan inte infoga radkan inte infoga/l�gga till radkan inte �ppna kan inte registera �terkallningskommando: buffert/f�nster h�ller redan p� att tas bortkan inte registrera �terkallningskommando: buffert-/f�nsterreferens hittades intekan inte ers�tta radkan inte spara �ngra-informationkan inte st�lla in rad(er)kan inte kopiera; ta bort �nd��ndring�ndringarst�ngkommando: %sanslutenforts�tter i %skunde inte l�sa "%s"kunde inte �ppna buffertcs_create_connection-exekvering misslyckadescs_create_connection: fdopen f�r fr_fp misslyckadescs_create_connection: fdopen f�r to_fp misslyckadescscope-kommandon:
cscope-anslutning %s st�ngdmark�rposition utanf�r buffertanv�nder standard 'tagit bort block 1?dlfel = "%s"avsluta inte redigeraren innan filen �r framg�ngsrikt skrivenmilj�variabelfelhanterarefellista %d av %d; %d feluttryck inaktiverat vid kompileringf�rre raderfil
filnamn / sammanhang / rad
l�ste klart %sfrig�r %ld radergvimext.dll-felhj�lpg�md flaggai s�kv�g ---
ogiltigt attributogiltigt buffertnummerogiltigt uttryckogiltigt m�rknamn�r en enhet (inaktiverad med 'opendevice'-flagga)�r en katalog�r inte en fil�r inte en fil eller skrivbar enhet�r skrivskyddad (l�gg till ! f�r att tvinga)tangentbordsavbrottrad %4ld:rad %6d, ord %6d - %srad %ldrad %ld av %ld --%d%%-- kol rad %ld: %srad %ld: kunde inte l�sa "%s"rad %ld: l�ser "%s"en rad mindreradnummer utanf�r omr�deradnummer utanf�r omr�delogga utm�rke inte satttr�ff %dtr�ff %d av %dmaximal mch_get_shellsize: inte en konsoll??
meny Redigera->Globala inst�llningar->V�xla infogningsl�ge  meny  Redigera->Globala Inst�llningar->V�xla Vi Komptaibelmeny  Hj�lp->F�r�ldral�sa           f�r information    meny  Hj�lp->St�d/Registrera           f�r information    minimal l�gesraden rad tillfler radernytt skal startat
nejinga cscope-anslutningar
ingen specifik matchningingen s�dan buffertinget s�dant f�nsteringen synkninginte inte till�tet i Vim-sandl�danhittades inte hittades inte i 'runtimepath': "%s"inte implementerat �nantal �ndringar  tidpe_line_count �r nollpre-vimrc kommandoradl�s fr�n Netbeans-uttagskrivskyddad attributspelar iners�tt med %s (y/n/a/q/l/^E/^Y)?rad %d kolumn %ds�kning n�dde BOTTEN, fors�tter vid TOPPENs�kning n�dde TOPPEN, forts�tter vid BOTTENskal skal returnerade %dst�ng avsoftspace m�ste vara ett heltall�ser "%s"stack_idx ska vara 0str�ng kan inte inneh�lla nyradersynkning av C-stil-kommentarersynkning startartagg %d av %d%staggnamntill %s p� %sskriv  :help cp-default<Enter> f�r information om det h�rskriv  :help iccf<Enter>        f�r information          skriv  :help register<Enter>    f�r information          skriv  :help sponsor<Enter>     f�r information          skriv  :help version8<Enter>    f�r versioninformation   skriv  :help windows95<Enter>  f�r info om det h�rskriv  :help<Enter> eller <F1>  f�r online-hj�lp         skriv  :q<Enter>                f�r att avsluta          skriv  :set nocp<Enter>        f�r Vim- standarder       ok�nd flagga: ok�nd flaggaok�nd vimOptionversion vim-felf�nsterindex �r utanf�r omr�def�nster �r ogiltigtmed (klassiskt) GUI.med Carbon-GUI.med Cocoa-GUI.med GTK-GUI.med GTK-GNOME-GUI.med GTK2-GUI.med GTK2-GNOME-GUI.med GUI.med Photon-GUI.med X11-Athena-GUI.med X11-Motif-GUI.med X11-neXtaw-GUI.utan GUI.writelines() kr�ver lista av str�ngarskriver till en enhet inaktiverad med 'opendevice'-flaggaPK�j�Z�؋�.vim80/lang/menu_chinese(taiwan)_taiwan.950.vimnu�[���" Menu Translations:	Traditional Chinese (for UNIX/Big5 Windows)
" Last Change:		2000 Nov 11

" $LANG  on Windows 95/98/NT is Chinese(Taiwan)_Taiwan.950
" $LANG  on Windows 2000/ME is Chinese_Taiwan.950
" Source the other one from here.
source <sfile>:p:h/menu_chinese_taiwan.950.vim
PK�j�ZϢ��"" vim80/lang/lv/LC_MESSAGES/vim.monu�[�����O�k�&�-�!%0CVH�>�$"9G;�!�#�E	I	"f	7�	(�	!�	)
06
g
!�
&�
/�
�
!,@2m���+�'#)K"u��$��
,
-C
q
'�
7�
"�
16C5z�.��4Mf4�4�0�:4U.�$��!�+'Go2�$�0�
F#$j"��=�x$~,�'�*�@#Ed9�)�IBX.�,�I�A(`:�1�#�27M"�'�3�38"W,z3�#�"�#"2F+y#�$��	"!#D$h�/��'�?$]3�8�7�'2Ex/���E!CgC�$�#48,m(��"�* /0 ` =u '� 1� 
!L'!&t!"�!�!=�!94<8'
)FM	=EG*O51
CL?(I"0%+/K-!N 3,A@.6J>$;&:B2DH7## You may edit it if you're careful!

+reverse		Don't use reverse video (also: +rv)--literal		Don't expand wildcards--noplugin		Don't load plugin scripts--remote-silent <files>  Same, don't complain if there is no server--remote-wait-silent <files>  Same, don't complain if there is no server-background <color>	Use <color> for the background (also: -bg)-f			Don't use newcli to open window-f  or  --nofork	Foreground: Don't fork when starting GUI-foreground <color>	Use <color> for normal text (also: -fg)Backwards range given, OK to swapCan't find temp file for conversionE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E138: Can't write viminfo file %s!E146: Regular expressions can't be delimited by lettersE166: Can't open linked file for writingE185: Cannot find color scheme %sE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE212: Can't open file for writingE214: Can't find temp file for writingE217: Can't execute autocommands for ALL eventsE254: Cannot allocate color %sE255: Couldn't read in sign data!E288: input method doesn't support any styleE289: input method doesn't support my preedit typeE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E304: ml_upd_block0(): Didn't get block 0??E324: Can't open PostScript output fileE344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE388: Couldn't find definitionE389: Couldn't find patternE394: Didn't find region item for %sE40: Can't open errorfile %sE419: FG color unknownE420: BG color unknownE421: Color name or number not recognized: %sE434: Can't find tag patternE435: Couldn't find tag, just guessing!E442: Can't split topleft and botright at the same timeE447: Can't find file "%s" in pathE456: Can't find PostScript resource file "%s.ps"E456: Can't find PostScript resource file "cidfont.ps"E456: Can't find PostScript resource file "prolog.ps"E456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E482: Can't create file %sE483: Can't get temp file nameE484: Can't open file %sE485: Can't read file %sE493: Backwards range givenE506: Can't write to backup file (add ! to override)E508: Can't read file for backup (add ! to override)E510: Can't make backup file (add ! to override)E533: can't select wide fontE597: can't select fontsetE614: vim_SelFile: can't return to current directoryE615: vim_SelFile: can't get current directoryE616: vim_SelFile: can't get font %sE624: Can't open file "%s"E738: Can't list variables for %sE781: .sug file doesn't match .spl file: %sE96: Can not diff more than %ld buffersKeys don't match!Messages maintainer: Bram Moolenaar <Bram@vim.org>Unrecognized flags in %s line %d: %sUnrecognized or duplicate item in %s line %d: %sVIM: Can't open window!
Vim E458: Cannot allocate colormap entry, some colors may be incorrectcan't delete OutputObject attributescan't read output of 'charconvert'couldn't open bufferdon't quit the editor until the file is successfully written!Project-Id-Version: Vim (Latvian)
Report-Msgid-Bugs-To: 
POT-Creation-Date: 2017-05-03 18:03+0100
PO-Revision-Date: 2017-05-03 18:08+0300
Last-Translator: Valdis Vītoliņš <valdis.vitolins@odo.lv>
Language-Team:  Bram Moolenaar <Bram@vim.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Language: lv
X-Generator: Poedit 1.8.7.1
# Ja rediģējat, esiet uzmanīgs!

+reverse		Nelietot reversu video (arī: +rv)--literal		Neizvērst aizstājējzīmes--noplugin		Neielādēt spraudņu skriptus--remote-silent <files>  Līdzīgi, nebrīdināt, ja nav servera--remote-wait-silent <files>  Līdzīgi, nebrīdināt, ja nav servera-background <krāsa>	Lietot <krāsa> kā fonu (arī: -bg)-f			Atverot logu, neveidot jaunu klientu-f  jeb --nofork	Priekšplānā: startējot GUI, neveidot jaunu pavedienu-foreground <krāsa>	Lietot <krāsa> normālam tekstam (arī: -fg)Diapazons pretējā secībā, OK lai apvērstuNevar atrast konvertējamo īslaicīgo failuE101: Vairāk par vienu buferi diff režīmā, nav skaidrs, kuru izmantotE102: Nevar atrast buferi "%s"E138: Nevar ierakstīt viminfo failu %s!E146: Regulārās izteiksmes nedrīkst atdalīt ar burtiemE166: Nevar atvērt rakstīšanai saistīto failuE185: Nevar atrast krāsu shēmu %sE205: Patchmode: nevar saglabāt oriģinālo failuE206: patchmode: nevar izveidot jaunu oriģinālo failuE207: nevar izdzēst kopijas failuE212: Nevar atvērt failu rakstīšanaiE214: Nevar atvērt īslaicīgo failu rakstīšanaiE217: Nevar izpildīt autokomandu VISIEM notikumiemE254: Nevar izdalīt krāsu %sE255: Nevar nolasīt zīmes datus!E288: ievades veids neatbalsta nevienu stiluE289: ievades veids neatbalsta šādu preedit veiduE298: Neizdevās iegūt bloku nr 0?E298: Neizdevās iegūt blok nr 1?E298: Neizdevās iegūt bloku nr 2?E304: ml_upd_block0(): Neizdevās iegūt bloku 0??E324: Nevar atvērt PostScript izejas failuE344: cdpath nevar atrast mapi "%s"E345: ceļā nevar atrast failu "%s"E388: neatradu definīcijuE389: neatradu šablonuE394: Neatradu vienuma %s reģionuE40: Nevar atvērt kļūdu failu %sE419: Nezināma priekšplāna krāsaE420: Nezināma fona krāsaE421: Nezināms krāsas %s nosaukums vai numursE434: Neatradu tagu parauguE435: Neatradu tagu, mēģinu uzminēt!E442: Nevar sadalīt kreiso augšu un labo apakšu vienlaicīgiE447: Failu "%s" ceļā nevar atrastE456: Nevar atrast PostScript resursu failu "%s.ps"E456: Nevar atrast PostScript resursu failu "cidfont.ps"E456: Nevar atrast PostScript resursu failu "prolog.ps"E456: Nevar atrast failu "%s"E457: Nevar nolasīt PostScript resursu failu "%s"E482: Nevar izveidot failu %sE483: Nevar iegūt īslaicīgā faila nosaukumuE484: Nevar atvērt failu %sE485: Nevar nolasīt failu %sE493: Uzdots pretējs diapazonsE506: Nevar ierakstīt rezerves failu (pievienojiet ! lai pārlabotu)E508: Nevar nolasīt rezerves failu (pievienojiet ! lai pārlabotu)E510: Nevar izveidot rezerves failu (pievienojiet ! lai pārlabotu)E533: nevar izvēlēties plato fontuE597: nevar izvēlēties fontu kopuE614: vim_SelFile: nevar atgriezties uz tekošo mapiE615: vim_SelFile: nevar iegūt tekošo mapiE616: vim_SelFile: nevar iegūt fontu %sE624: Nevar atvērt failu "%s"E738: Nevar parādīt %s mainīgosE781: .sug fails neatbilst .spl failam: %sE96: Nevar salīdzināt vairāk kā %ld buferusAtslēgas neatbilst!Messages maintainer: Valdis Vitolins <valdis.vitolins@odo.lv>Neatpazīti karodziņi %s rindā %d: %sNeatpazīts vai dublēts vienums %s rindā %d: %sVIM: Nevar atvērt logu!
Vim E458: Nevar izveidot krāsu karti, iespējams, ir kāda nepareiza krāsanevar izdzēst OutputObject vērtībasnevar nolasīt 'charconvert' izejunevar atvērt buferineizejiet no redaktora pirms fails nav veiksmīgi saglabāts!PK�j�Z��w��vim80/lang/menu_ca.utf-8.vimnu�[���" Menu translations for Catalan
"
" Maintainer:	Ernest Adrogu� <eadrogue@gmx.net>
" Last Change:	29 Dec 2003
"
source <sfile>:p:h/menu_ca_es.latin1.vim

PK�j�Z�tQ�GGvim80/lang/menu_sv.latin1.vimnu�[���" Menu Translations: Swedish

source <sfile>:p:h/menu_sv_se.latin1.vim
PK�j�Z�{ZqLL vim80/lang/menu_pl_pl.cp1250.vimnu�[���" Menu Translations:	Polish

source <sfile>:p:h/menu_polish_poland.1250.vim
PK�j�Z[1O�/�/$vim80/lang/menu_pl_pl.iso_8859-2.vimnu�[���" Menu Translations:	Polish
" Maintainer:		Mikolaj Machowski ( mikmach AT wp DOT pl )
" Initial Translation:	Marcin Dalecki <martin@dalecki.de>
" Last Change: 17 May  2010

" Quit when menu translations have already been done.
if exists("did_menu_trans")
  finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding iso-8859-2

" Help menu
menutrans &Help			Po&moc
menutrans &Overview<Tab><F1>			&Og�lnie<Tab><F1>
menutrans &User\ Manual	Podr�cznik\ &u�ytkownika
menutrans &How-to\ links	&Odno�niki\ JTZ
menutrans &Find\.\.\.	&Szukaj\.\.\.
menutrans &Credits		Po&dzi�kowania
menutrans Co&pying		&Kopiowanie
menutrans &Sponsor/Register	&Sponsorowanie/Rejestracja
menutrans O&rphans		Sie&roty
menutrans &Version		&Wersja
menutrans &About		o\ &Programie

" File menu
menutrans &File				&Plik
menutrans &Open\.\.\.<Tab>:e		&Otw�rz\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otw�rz\ z\ &podzia�em\.\.\.<Tab>:sp
menutrans &New<Tab>:enew       &Nowy<Tab>:enew
menutrans &Close<Tab>:close		&Zamknij<Tab>:close
menutrans &Save<Tab>:w			Za&pisz<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Zapisz\ &jako\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\.	Podziel\ na\ diff-a\ mi�dzy\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Podziel\ �atane\ przez\.\.\.
menutrans &Print			&Drukuj
menutrans Sa&ve-Exit<Tab>:wqa		W&yj�cie\ z\ zapisem<Tab>:wqa
menutrans E&xit<Tab>:qa			&Wyj�cie<Tab>:qa
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otw�rz\ &kart�\.\.\.<Tab>:tabnew

" Edit menu
menutrans &Edit				&Edycja
menutrans &Undo<Tab>u			&Cofnij<Tab>u
menutrans &Redo<Tab>^R			&Pon�w<Tab>^R
menutrans Rep&eat<Tab>\.		P&owt�rz<Tab>\.
menutrans Cu&t<Tab>"+x			W&ytnij<Tab>"+x
menutrans &Copy<Tab>"+y			&Kopiuj<Tab>"+y
menutrans &Paste<Tab>"+gP		&Wklej<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Wstaw\ p&rzed<Tab>[p
menutrans Put\ &After<Tab>]p		Wstaw\ p&o<Tab>]p
menutrans &Select\ All<Tab>ggVG		Z&aznacz\ ca�o��<Tab>ggVG
menutrans &Find\.\.\.			&Szukaj\.\.\.
menutrans &Find<Tab>/			&Szukaj<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	&Zamie�\.\.\.
menutrans Find\ and\ Rep&lace<Tab>:%s	&Zamie�<Tab>:%s
menutrans Find\ and\ Rep&lace		&Zamie�
menutrans Find\ and\ Rep&lace<Tab>:s	&Zamie�<Tab>:s
menutrans Options\.\.\.			Opcje\.\.\.
menutrans Settings\ &Window		Ustawienia
menutrans &Global\ Settings		Ustawienia\ &globalne
menutrans Startup\ &Settings	Ustawienia\ &startowe
menutrans F&ile\ Settings		Ustawienia\ dla\ pliku
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			&Numerowanie\ wierszy<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!					Tryb\ &listowania<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			Za&wijanie\ wierszy<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!			�amanie\ wie&rsza<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!			Rozwijani&e\ tabulator�w<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!			&Automatyczne\ wci�cia<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!			Wci�cia\ &C<Tab>:set\ cin!
menutrans &Shiftwidth				&Szeroko��\ wci�cia
menutrans Te&xt\ Width\.\.\.			D�ugo��\ linii\.\.\.
menutrans &File\ Format\.\.\.			&Format\ pliku\.\.\.
menutrans Soft\ &Tabstop				Rozmiar\ &tabulacji
menutrans C&olor\ Scheme		Zestawy\ kolor�w
menutrans &Keymap			Uk�ady\ klawiatury
menutrans None				�aden
menutrans accents			akcenty
menutrans hebrew			hebrajski
menutrans hebrewp			hebrajski\ p
menutrans russian-jcuken		rosyjski-jcuken
menutrans russian-jcukenwin		rosyjski-jcukenwin

menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Pod�wietlanie\ &wzorc�w<Tab>:set\ hls!

menutrans Toggle\ &Ignore-case<Tab>:set\ ic!	&Ignorowanie\ wielko�ci<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		&Pokazywanie\ pasuj�cych<Tab>:set\ sm!

menutrans &Context\ lines	Wiersze\ &kontekstowe
menutrans &Virtual\ Edit	Edycja\ &wirtualna

menutrans Never			Nigdy
menutrans Block\ Selection	Zaznaczanie\ blokowe
menutrans Insert\ mode		Tryb\ wprowadzania
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	Tryb\ zg&odno�ci\ z\ Vi<Tab>:set\ cp!
menutrans Block\ and\ Insert	Blokowe\ i\ wprowadzanie
menutrans Always		Zawsze

menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	Tryb\ wprowadzania<Tab>:set\ im!
menutrans Search\ &Path\.\.\.	Scie�ka\ poszukiwania\.\.\.
menutrans Ta&g\ Files\.\.\.	Pliki\ tag�w\.\.\.


"
" GUI options
menutrans Toggle\ &Toolbar		Pasek\ narz�dzi
menutrans Toggle\ &Bottom\ Scrollbar	Dolny\ przewijacz
menutrans Toggle\ &Left\ Scrollbar	&Lewy\ przewijacz
menutrans Toggle\ &Right\ Scrollbar	P&rawy\ przewijacz

" Programming menu
menutrans &Tools			&Narz�dzia
menutrans &Jump\ to\ this\ tag<Tab>g^]	&Skocz\ do\ taga<Tab>g^]
menutrans Jump\ &back<Tab>^T		Skok\ w\ &ty�<Tab>^T
menutrans Build\ &Tags\ File		&Tw�rz\ plik\ tag�w
" Spelling
menutrans &Spelling	Pi&sownia
menutrans &Spell\ Check\ On	W��cz
menutrans Spell\ Check\ &Off	Wy��cz
menutrans To\ &Next\ error<Tab>]s	Do\ &nast�pnego\ b��du<Tab>]s
menutrans To\ &Previous\ error<Tab>[s	Do\ &poprzedniego\ b��du<Tab>[s
menutrans Suggest\ &Corrections<Tab>z=	Sugestie\ poprawek<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall	Powt�r&z\ poprawk�<Tab>:spellrepall
menutrans Set\ language\ to\ "en"	Ustaw\ j�zyk\ na\ "en"
menutrans Set\ language\ to\ "en_au"	Ustaw\ j�zyk\ na\ "en_au"
menutrans Set\ language\ to\ "en_ca"	Ustaw\ j�zyk\ na\ "en_ca"
menutrans Set\ language\ to\ "en_gb"	Ustaw\ j�zyk\ na\ "en_gb"
menutrans Set\ language\ to\ "en_nz"	Ustaw\ j�zyk\ na\ "en_nz"
menutrans Set\ language\ to\ "en_us"	Ustaw\ j�zyk\ na\ "en_us"
menutrans Set\ language\ to\ "pl"	Ustaw\ j�zyk\ na\ "pl"
menutrans &Find\ More\ Languages	&Znajd�\ wi�cej\ j�zyk�w

" Folding
menutrans &Folding				&Zwijanie
menutrans &Enable/Disable\ folds<Tab>zi		&Zwi�/rozwi�<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			&Linia\ kursora<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx			&Tylko\ linia\ kursora<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm				Zwi�\ wi�cej<Tab>zm
menutrans &Close\ all\ folds<Tab>zM				Z&wi�\ wszystkie<Tab>zM
menutrans &Open\ all\ folds<Tab>zR				Rozwi�\ wszystkie<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr				R&ozwi�\ wi�cej<Tab>zr

menutrans Create\ &Fold<Tab>zf				T&w�rz\ zawini�cie<Tab>zf
menutrans &Delete\ Fold<Tab>zd				U&su�\ zawini�cie<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD				&Usu�\ wszystkie\ zawini�cia<Tab>zD
menutrans Fold\ column\ &width				Szeroko��\ kolumny\ za&wini��
menutrans Fold\ Met&hod		Me&toda\ zawijania
menutrans M&anual			&R�cznie
menutrans I&ndent			W&ci�cie
menutrans E&xpression W&yra�enie
menutrans S&yntax			S&k�adnia
menutrans Ma&rker			Zn&acznik

" Diff
menutrans &Update					&Od�wie�
menutrans &Get\ Block			&Pobierz\ blok
menutrans &Put\ Block			&Wstaw\ blok

" Make and stuff...
menutrans &Make<Tab>:make		M&ake<Tab>:make
menutrans &List\ Errors<Tab>:cl		&Poka�\ b��dy<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!	W&ylicz\ powiadomienia<Tab>:cl!
menutrans &Next\ Error<Tab>:cn		&Nast�pny\ b��d<Tab>:cn
menutrans &Previous\ Error<Tab>:cp	&Poprzedni\ b��d<Tab>:cp
menutrans &Older\ List<Tab>:cold	&Starsza\ lista<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew	N&owsza\ lista<Tab>:cnew
menutrans Error\ &Window	Okno\ b��d�&w
menutrans &Update<Tab>:cwin			Akt&ualizuj<Tab>:cwin
menutrans &Close<Tab>:cclose			&Zamknij<Tab>:cclose
menutrans &Open<Tab>:copen			&Otw�rz<Tab>:copen

menutrans Se&T\ Compiler				U&staw\ kompilator
menutrans &Convert\ to\ HEX<Tab>:%!xxd     Kody\ szesnastkowe<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r     Zwyk�y\ tekst<Tab>:%!xxd\ -r

" Names for buffer menu.
menutrans &Buffers	&Bufory
menutrans &Refresh\ menu	&Od�wie�
menutrans &Delete	&Skasuj
menutrans &Alternate	&Zmie�
menutrans &Next		&Nast�pny
menutrans &Previous	&Poprzedni
menutrans [No\ File]	[Brak\ Pliku]

" Window menu
menutrans &Window			&Widoki
menutrans &New<Tab>^Wn			&Nowy<Tab>^Wn
menutrans S&plit<Tab>^Ws		Po&dziel<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^	P&odziel\ na\ #<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv	Podziel\ pionowo<Tab>^Wv
menutrans Split\ File\ E&xplorer		Otw�rz\ mened�er\ plik�w

menutrans &Close<Tab>^Wc		&Zamknij<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo	Zamknij\ &inne<Tab>^Wo
menutrans Ne&xt<Tab>^Ww			&Nast�pny<Tab>^Ww
menutrans P&revious<Tab>^WW		&Poprzedni<Tab>^WW
menutrans &Equal\ Size<Tab>^W=		&Wyr�wnaj\ wysoko�ci<Tab>^W=
menutrans &Max\ Height<Tab>^W_		Z&maksymalizuj\ wysoko��<Tab>^W_
menutrans M&in\ Height<Tab>^W1_		Zminim&alizuj\ wysoko��<Tab>^W1_
menutrans Max\ Width<Tab>^W\|		Maksymalna\ szeroko��<Tab>^W\|
menutrans Min\ Width<Tab>^W1\|		Minimalna\ szeroko��<Tab>^W1\|
menutrans Max\ &Width<Tab>^W\|		Zmaksymalizuj\ szeroko��<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|		Zminimalizuj\ szeroko��<Tab>^W1\|
menutrans Move\ &To			&Id�\ do
menutrans &Top<Tab>^WK			&G�ra<Tab>^WK
menutrans &Bottom<Tab>^WJ		&D�<Tab>^WJ
menutrans &Left\ side<Tab>^WH		&Lewa\ strona<Tab>^WH
menutrans &Right\ side<Tab>^WL		&Prawa\ strona<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR		Obr��\ w\ &g�r�<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr		Obr��\ w\ &d�<Tab>^Wr
menutrans Split\ &Vertically<Tab>^Wv	&Podziel\ w\ poziomie<Tab>^Wv
menutrans Select\ Fo&nt\.\.\.		Wybierz\ &czcionk�\.\.\.

" The popup menu
menutrans &Undo			&Cofnij
menutrans Cu&t			W&ytnij
menutrans &Copy			&Kopiuj
menutrans &Paste		&Wklej
menutrans &Delete		&Skasuj
menutrans Select\ Blockwise	Zaznacz\ &blok
menutrans Select\ &Sentence	Zaznacz\ &zdanie
menutrans Select\ Pa&ragraph	Zaznacz\ aka&pit
menutrans Select\ &Word		Zaznacz\ &s�owo
menutrans Select\ &Line		Zaznacz\ w&iersz
menutrans Select\ &Block	Zaznacz\ &blok
menutrans Select\ &All		Zaznacz\ c&a�o��
menutrans Input\ &Methods	Wprowadza&nie

" The GUI toolbar
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open		Otw�rz plik
    tmenu ToolBar.Save		Zapisz bie��cy plik
    tmenu ToolBar.SaveAll		Zapisz wszystkie pliki
    tmenu ToolBar.Print		Drukuj
    tmenu ToolBar.Undo		Cofnij
    tmenu ToolBar.Redo		Pon�w
    tmenu ToolBar.Cut		Wytnij
    tmenu ToolBar.Copy		Skopiuj
    tmenu ToolBar.Paste		Wklej
    tmenu ToolBar.Find		Szukaj...
    tmenu ToolBar.FindNext	Szukaj nast�pnego
    tmenu ToolBar.FindPrev	Szukaj poprzedniego
    tmenu ToolBar.Replace		Szukaj i zamieniaj...
    if 0	" disabled; These are in the Windows menu
      tmenu ToolBar.New		Nowy widok
      tmenu ToolBar.WinSplit	Podziel widok
      tmenu ToolBar.WinMax		Zmaksymalizuj widok
      tmenu ToolBar.WinMin		Zminimalizuj widok
      tmenu ToolBar.WinClose	Zamknij widok
    endif
    tmenu ToolBar.LoadSesn	Za�aduj sesj�
    tmenu ToolBar.SaveSesn	Zachowaj bie��c� sesj�
    tmenu ToolBar.RunScript	Uruchom skrypt Vima
    tmenu ToolBar.Make		Wykonaj bie��cy projekt
    tmenu ToolBar.Shell		Otw�rz pow�ok�
    tmenu ToolBar.RunCtags	Tw�rz tagi w bie��cym katalogu
    tmenu ToolBar.TagJump		Skok do taga pod kursorem
    tmenu ToolBar.Help		Pomoc Vima
    tmenu ToolBar.FindHelp	Przeszukuj pomoc Vim-a
  endfun
endif

" Syntax menu
menutrans &Syntax &Sk�adnia
menutrans &Show\ filetypes\ in\ menu	Poka�\ typy\ &plik�w\ w\ menu
menutrans Set\ '&syntax'\ only	Ustaw\ tylko\ '&syntax'
menutrans Set\ '&filetype'\ too	Ustaw\ r�wnie�\ '&filetype'
menutrans &Off			&Wy��cz
menutrans &Manual		&R�cznie
menutrans A&utomatic		A&utomatyczne
menutrans on/off\ for\ &This\ file			w��cz/w&y��cz\ dla\ pliku
menutrans Co&lor\ test		Test\ &kolor�w
menutrans &Highlight\ test	&Test\ pod�wietlania
menutrans &Convert\ to\ HTML	Przetw�rz\ na\ &HTML

" dialog texts
let menutrans_no_file = "[Brak pliku]"
let menutrans_help_dialog = "Wprowad� komend� lub s�owo, aby otrzyma� pomoc o:\n\nPrzedrostek i_ oznacza komend� trybu Wprowadzania (np. i_CTRL-X)\nPrzedrostek c_ oznacza komend� edycji wiersza komend (np. c_<Del>)\nPrzedrostek ' oznacza nazw� opcji (np. 'shiftwidth')"
let g:menutrans_path_dialog = "Wprowad� �cie�k� poszukiwania plik�w.\nProsz� rozdziela� nazwy katalog�w przecinkiem."
let g:menutrans_tags_dialog = "Podaj nazwy plik�w tag�w.\nProsz� rozdziela� nazwy przecinkiem."
let g:menutrans_textwidth_dialog = "Wprowad� now� szeroko�� tekstu (0 wy��cza przewijanie): "
let g:menutrans_fileformat_dialog = "Wybierz format w kt�rym ten plik ma by� zapisany"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Anuluj"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z̘�ޡޡ vim80/lang/cs/LC_MESSAGES/vim.monu�[�����<(�\P@kAkWk
hkvkk'�k/�k�kll0/l`l+hl�l"�l�l�l5�l)mFmcmrm��m,5n;bn�n�n�n�n�no#o2oHoco{o�o�o0�o.�o/ p1Pp
�p�p�p�p
�p�p
�p q&q5qIq!dq�q"�q�q�q�q@rAr\rmr~r(�r-�r�r�rs/s=Fs�s�s�s�s�s�st-!tOtot�t�t�t�t3�t3u$Kupu�u�u�u�u�u�u
vv(v@vQvdv
|v$�v�v �v�v�v;wHw7Ww0�w#�w	�w�wxxx
(x3xMx^xjx�x�x�x�x#�x�x!�x!y2y :y[ycy!ky�y�y �y�y�y�y�y z&z	.z!8zZzfzkz+pz	�z"�z*�z�z{{"{.{E{
L{
Z{e{
n{y{�{�{�{�{5�{�{-|1=|&o|�|�|�|�|�|}}$,}Q}
a}l}x}�}�}�}�}�}�}�}~!~9~J~V~e~w~0�~�~�~�~�~+61hq'�-�%�5�+4�`�}�A��؀1�/&�V�g�v�	��������ρ-��$;�`�
����������?҂5�H�%e�6��Eƒ9�IB�0��6��8�3-�-a�%����Ʌ���&�,3�#`� ��@��-�0�E�;Z���"��ه>�))�>S�<��ψ#�:�'N�9v���$ɉ-�4�;Q� ��>��'�/�E�-b���.��B΋"�/4�2d�*��Œ+�%�'2�(Z�<��E��.�-5�$c���<��ގ*��&#�J�Y�j�|���������̏܏����
�#�,�8�G�_�w�������̐ߐ��
�$%�!J�l�{�"��"��1͑?��?�P�_�f�z�������ܒ���'�E�%]���������ғ�$���!5�W�g�y�}�����ǔ#ܔ�*�D�W�.j�.��ȕϕQ�;�-J�x����� ��֖!��/1�a�?n�����˗
ڗ
�$��.6�e����	����!����"�E�[�%x�#��-™�
�+�H�&d�������͚���'�>�)Y�+��@��-��2;�n�������/ל1�9�EV���-��7�#� C�:d�5��&՞"��&�$F�#k�!��=��5� %�(F�7o�!��,ɠ���'� A�#b�#������١��,�H�g�0��$��!ܢ ��(�4H�,}���ƣ٣� �'�/D�t�!��%��%٤$��$� =�^�z�?��&ե!���
:�AH�%��%��"֦9��'3�([�2��*��!�!�)&�%P�!v�4��:ͨ&�;/�;k�)��0ѩ�!�=�V�h�,��!��8Ъ&	�#0�T�/l�"����-Ы���.�G�/_�*��(��#��#�>�[�w�>��ҭ��%�=�"T�w�����Ȯ!߮�#�@�9X�1��)į1�% �7F�2~���A˰?
�M�d�|�!����ڱ���00�4a�!��$��(ݲN�,U�L��8ϳ�,(� U� v�#����ִ7�N(�Mw�ŵ���$�!>�3`�,��2��%�*�9E�(���"÷�#�(�G�d�����0��!� �<,�(i�����+ǹ2�$&�K�,i���H��,��'�=�"]�������ۻ��9�S�h���0��#м'��,�,L�&y�����+ͽ2��-,�(Z���"��'��'�,�<�.S���#��,ƿW�)K�"u�,��%�� �)�2B�2u�2���!���3�2H�5{�'��#��)��,'�'T�$|�%��.�����%�$=�&b� ��'��*��#��'!�%I�3o�!����+���*0�-[�$���������� 6� W�$x�$��)��,���1�,G�t���%����=��(�D�a�z�'������$��#�0?�.p�0������
�(�@�W�k�-�� ����7��)$�N�$f�(������%��$�-�L�_�'|���'�� ���$�>� V�7w�0����#��#�"C�f�-����.��1��'.�"V�y�������������5�H�X�q�����(��+��/�>�\�{�!��"��B�� �?�\�v���)��'��� �'=�e�	m�w���������#��6�C�S�g�$~�.����+��6�L�6R�#������
������� �&�(-�	V�%`���
������(����
��
"�-�B�T�i�n�%������	�������-�?�L�_�r���
����������������+�;�V�h�~�����	����2���
�
!�/�I�`�$u�������'�����,�D�]�
w�������������
������!�!7�Y�x����������������,�#L�p�����
����	������+�;�
G�U�f�~�������9���"�*�
6�D�M�h�{�	��������������
�	��2�J�e�t�9��
��������?�	N�X�q�����"���������"�
4�'B�j�E����������5�#H�$l���������2��0�;P� ��-���������((�Q�n�s�{���������������+�/�D�T�p���	�������F;���
��
����+�������7�%T�z���+��*����&�9>�Mx�>��)�5/�Ae�6��"���?	�"I�l���������
��������
�'�:�M�	Z�d�m�z�
����
��
����	��	�������	�
%�3�
8�5F�|�	������
����&����������
�!�*�
<�J�:Q�����"��"������
)�$4�"Y�|�����<����'�:�T�Ha�C������2�M�S�[�	j�t������� ��-��-�H�Z�w���������=��#�A�"`�$�� ����������	��-�2�?�Q�g�z���
�� �� ��
��	��0�=�]�u�����������,�#���0�03�7d�4��6���5�D�
S�^�
c� n��������	�"��$!�$F�k�r�����
��������,�;�C�O�.^�.��.��.�.�.I�.x���������	
�(�@�._���������
���	
��%�:�N�[�{�%��&����
�
*�5�*N�*y������.�#0, ]/~��?�0"I
lz��I,1v�#�"�,>M&g����$�"#A%e
������
%7H[&{#�'��I /j���*�/�.;L@]O�"�-Edy�-���	$!	 F	 g	7�	<�	9�	7
T
 s
�
�
�
�
�
�

'7"Gj+{�(���=SA_:��	�

&
6

?
J
f
w
"�
"�
�
�
�
&�
%<
b$p
��*�"���%.5$Q	v	�#�
���,�	�!�!#>b
t����
���-2J}5�9�/�-Hcy ���C�6HTdp/�.��-�,Jf����
��2.C.r���E�M
Xa)r*�4�/�?,l%�A��JHZ
����#��
#%-Iw5�)��&!39U)��&�<�C<<�D�$;'Hc5�,�$4F#f�&�/�#�(IB1�7��>Q'o�5�5�6 7M '� *� .� *!;2!n!-�!2�!:�!6)".`"6�""�":�""$#/G#w#&�#6�#@�#7&$8^$A�$/�$(	% 2%+S%+%7�%D�%6(&4_&�&�&@�&"')6'3`'�'�'�'�'
�'(,
(+:(f(+v(�(�(�(�(	
))-)"9)"\) )#�)�)�)*#*B* `*1�* �*�*	�*�* +*0+0[+
�+�+�+�+�+�+�+,+,A,\,"`,%�,�,6�,
�,--7-
M-[-$d-�-�-%�-�-�-�-#�-!."1.T.(m.$�.7�.�./8 />Y/�/�/X�/07 0X0g0{0#�0�0�0!�0?1R1Ag1�1�1
�1	�1�1%�12&/2V2n2~2�2�2�2�2�2*�2G�2B3$a3$�3,�3�3�3
4,4'C4k44�4�4�4�4$�45*75)b5I�5,�56<#6`6~6�6�60�63�6 /7OP7�7.�72�7 8,:8>g8;�8+�8%9&49.[9.�9(�9>�9<!:^:,~:1�:$�:.;(1;Z;m; �; �;&�;�;<<9<X<x<�<!�<*�<.�<'*=(R=.{=8�=0�=!>6>I>_>,r>,�>7�>"?'?)D?)n?-�?�?!�?�?@C3@1w@$�@�@
�@3�@-.A\A"|AC�A'�ABI*B,tB-�B"�B(�B$C!@C<bC>�C&�CND>TD,�D?�D!E"EAE_EsE(�E$�E6�E/FCFcF<F2�F�F1�F0G&?G!fG�G.�G/�G%H&'HNHmH!�H�H-�HE�H3IOI lI�I�I"�I�I�IJ3J(RJ{J�J�J7�J7K)8K0bK0�K/�K/�K$L?CLI�L�L�LM'"M"JMmM�M�M6�M;�M#3N&WN!~NO�N0�NQ!OGsO�O&�O"P#P CPdP|PC�PX�P_2Q�Q"�Q�Q,�Q*R=ER+�R2�R%�R%S?.S#nS�S;�S)�SAT/ST�T�T�T"�TL�T+DU(pU-�U)�U+�UV-4V.bV�V$�V7�VWK"W3nW�W%�W$�W!	X#+X#OX#sX'�X2�X�X
Y*Y8HY$�Y1�Y�Y&�Y5Z)AZ%kZ�Z-�Z3�Z.[0;[l['�[,�[5�[?\P\$l\#�\"�\8�\i]({]%�]5�]3^%4^+Z^�^7�^7�^5_H_(d_�_�_-�_2�_3`$O`)t`D�`)�`+
a)9a)ca�a�a�a/�a5b%EbFkb6�b.�b+c+Dc.pc�c�c0�c%d-2d+`d"�d!�d�d�dee';e'ce+�e"�e3�e3fBf`f.tf�f!�f#�f�fCg\g{g�g�g,�g�g$h+<h+hh1�h2�hC�h=iZiti�i�i�i�i/j)1j[jJzj/�j�jk0+k\krk �k'�k'�k�kl$*l)Ol&yl%�l�l&�l
m"$m4Gm1|m!�m�m-�m%nCn;an�n3�n:�n2,o&_o*�o"�o�o	�o�o,�o'pCpap}p�p�p$�p�p'q+*q+Vq'�q�q"�q'�q&r8;r&tr�r�r#�r%�r%s5Csys$�s'�s�s�s�st&t=t[tst;�t�t�t�t#uH8u!�u3�u@�uv@v_v(xv�v�v�v�v�v�v�v/w2w,>wkw	xw�w�w-�w�w�w�wxx(xCx_xhx3�x�x�x	�x�xyy1yKy[yly�y�y
�y
�y�y	�y�y�y
z
!z/z<zNzkz'z�z�z�z	�z�z,{	/{9{I{U{i{�{(�{$�{"�{
|9|T|&q|�|�|�|�|}};}Y}e}$u}�}�}�}�}�}4~46~k~�~�~�~�~�~�~�~ -6%d������ �-�<�O�
g�u�����������܀5��#0�T�]�
j�u�������
Ё!ށ���9�
M�[�
l�z�����ɂڂ;�%�;�G�Z�9u�����΃���'�B�S�"i�����
��"��-�J�\�w�����Ņ݅-�."�Q�m�����6��!܆0��/�/O��������+҇����
&�4�
R�`�g�������)̈���!�<�L�
^�i�o��P��I�
R�]�j�:���ӊ!��'1�
Y�#g�+��,���&�3'�M[�1��0ی6�?C�6��%���M�+7�c�z�������ݎ������%�<�
L�
W�
b�
m�{�
����
��
��Ϗ֏��
��(�
1�?�D�5V�����������Ր'�
��4�A�G�S�e�m�
����'��‘Ց�
�(�>�@�^�"g�����’ے1��*�=�Q�d���H��Jؓ#�&8�_�t���
��������۔��%�5@�5v�����ٕ��$�3�9E�)�#��!͖1�!!�C�K�j���������ŗҗ�����
$�02�,c�����	����
ܘ#��)�A�H�^�g�
s�&~�"��
șә�D�;/�<k�K���	��3�E�Y�]�)i��� ��˛���!�(�-<�-j�������$Ĝ����*.�!Y�{���
��
��ŝ<ڝ6�6N�8��*��3�9�W�j���
������	��+ȟ#�3�L�!c�������Ϡߠ����5�K�-c�'��$���O��
v�(]@��![tw#3G���R�U��O�c����C,������DS���"�w�X)�M��}�y	i�
c�j����A0����K��v�����J���l5��Q��I&O������$:_9<+����ro����	&����36��{��J�@;o���|�}=���m�L��dH_��/��q�B�����Y��"��f�4P�o�x�;f�2@��*@r�����C	�J�{y�g�����sq��t8�U$5d��NS���7He��Iu�aR_��!-�Z%}j�}l�Qg����.&wH�[��`�]K	V��[���k����W'+X�G����>���bQX,���D#�^
�2v��`�%>x8Q������(��d��{��������e��)g���4���y9�,>1#��/���w�f��j
4���3LG���k�(�X��6��b�>��ym|
XI��h-�K�CU��/��hc�`�7����+�5w���o�7�h^������9\���*S3�TOK�I���a\i7S/��(Z�B������0~�m�V�F���DmR���U���S7�l�VnJ�;����]���d=�%q��~x�����8�-��_0?�M��F:����R�3��A4���n:1����z��V]���%���n���F_D
T����]��.��2z�C��D����z$����1}��;�?8��E���6JeZ��a�\�Q�{a��I���A��i����N����G���M����^�|N#���n��? \=�,��2e�P'�T�"l5�4qhW��~ ;�~F�������m�l
��i:��
-.���y'���L!����<�z�s<Bi�U������|������kL0�P�����^�O�&��?�WENp.�W�1Y��t����j��d�������:���c��MH=us��g�)���`�
��'��Z��b�����x���?��p���!�[6��YM�F^���������pYo�2(5�����[�#E��<����T��=��'�����r,�������f�-��� cBu�+\K��*P1����e�����v�H�krG+��p�a���E�N�R�"t����E!bh9|CxA����%b�L�T�{��g@��V��9��Y��q�u��r���&6�"�W�s/>�A�z<
�0kf��*	~�B���n����� u���8tP�������.Z���s��v$����`$������j� ���)�����*�p)			  (Unimplemented)

	Last set from 

Arguments:


usage:
          modified: 
         [not usable on this computer]
         [not usable with this version of Vim]
         host name: 
         user name: 
        process ID: 
    Name        Args Range Complete  Definition
   or:
  # TO tag         FROM line  in file/text
 jump line  col file/text
# %s History (newest to oldest):

# Buffer list:

# File marks:

# History of marks within files (newest to oldest):

# Jumplist (newest first):

# Last Substitute String:
$
# Registers:

# global variables:

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.

(2) An edit session for this file crashed.

(You might want to write out this file under another name

--- Auto-Commands ---
--- Global option values ---
--- Local option values ---
--- Menus ---
--- Options ---
--- Registers ---
--- Signs ---
--- Syntax items ---
--- Syntax sync items ---
--- Terminal codes ---
--- Terminal keys ---
16-bit MS-DOS version
32-bit MS-DOS version
Arguments recognised by gvim (Athena version):

Arguments recognised by gvim (GTK+ version):

Arguments recognised by gvim (Motif version):

Arguments recognised by gvim (RISC OS version):

Big version 
Cannot create pipes

Cannot execute shell 
Cannot execute shell sh

Cannot fork

Command terminated

Compiled 
Found a swap file by the name "
Huge version 
Included patches: 
MS-Windows 16-bit version
MS-Windows 16/32-bit GUI version
MS-Windows 32-bit GUI version
MS-Windows 32-bit console version
MacOS X (unix) version
MacOS X version
MacOS version
Maybe no changes were made or Vim did not update the swap file.
More info with: "vim -h"

Normal version 
RISC OS version
Send failed.

Send failed. Trying to execute locally

Sending message to terminate child process.

Small version 
Tiny version 
Vim: Got X error

WARNING: Original file may be lost or damaged

[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu

mark line  col file/text
shell returned 
syncing on items             dated:           owned by:          [cannot be opened]         [cannot be read]         [does not look like a Vim swap file]         [from Vim version 3.0]         file name:       -- none --
      NEWER than swap file!
      user exrc file: "     user vimrc file: "    If this is the case, use ":recover" or "vim -r     If you did this already, delete the swap file "    Quit, or continue with caution.
    line=%ld  id=%d  name=%s    system menu file: "    user gvimrc file: "   #   line   In current directory:
   In directory    Using specified name:
   dated:    host name:    system vimrc file: "  # pri kind tag  (Already listed)  2nd user exrc file: "  DEBUG BUILD  Features included (+) or not (-):
  NOT FOUND  Using tag with different case!  fall-back for $VIM: "  system gvimrc file: " # pid    database name                       prepend path
 (Interrupted) (RET/BS: line, SPACE/b: page, d/u: half page, q: quit) (RET: line, SPACE: page, d: half page, q: quit) (includes previously listed match) (insert) (insert) Scroll (^E/^Y) (lang) (line deleted) (paste) (replace) (replace) Scroll (^E/^Y) (still running) (vreplace) 2nd user vimrc file: " 3rd user vimrc file: " Adding BLOCK CONVERSION ERROR Command-line completion (^V/^N/^P) Copy %d of %d Definition completion (^D/^N/^P) Dictionary completion (^K/^N/^P) FAILED File name completion (^F/^N/^P) Hebrew INSERT Keyword Local completion (^N/^P) Keyword completion (^N/^P) LINE Path pattern completion (^N/^P) REPLACE REVERSE SELECT Tag completion (^]/^N/^P) Thesaurus completion (^T/^N/^P) VISUAL VREPLACE Whole line completion (^L/^N/^P) [Modified] [a] [w] ^X mode (^E/^Y/^L/^]/^F/^I/^K/^D/^V/^N/^P) appended cannot be used on this computer.
 cannot be used with this version of Vim.
 f-b for $VIMRUNTIME: " in Win32s mode info kind file
 lines before top line marks on %ld lines on 1 line or more returned
 vim [arguments]  with OLE support written"
"
    to avoid this message.
"
    to recover the changes (see ":help recovery").
" already exists!# This viminfo file was generated by Vim %s.
# Value of 'encoding' when this file was written
# You may edit it if you're careful!

%-5s: %-30s (Usage: %s)
%2d %-5ld  %-34s  <none>
%3d  %s %s  line %ld%d buffers deleted%d buffers unloaded%d buffers wiped out%d files to edit
%d more files to edit.  Quit anyway?%d of %d edited%ld Cols; %ld changes%ld characters%ld fewer lines%ld lines %sed %d times%ld lines %sed 1 time%ld lines --%d%%--%ld lines changed%ld lines filtered%ld lines indented %ld lines moved%ld lines to indent... %ld lines yanked%ld lines, %ld more lines%ld substitutions%s Auto commands for "%s"%s is not a directory or a valid cscope database%s returning "%s"%s returning #%ld&OK
&Cancel&OK
&Load File&Ok&Open Read-Only
&Edit anyway
&Recover
&Quit&Open Read-Only
&Edit anyway
&Recover
&Quit
&Delete it&Yes
&No&Yes
&No
&Cancel&Yes
&No
Save &All
&Discard All
&Cancel' not known. Available builtin terminals are:'backupext' and 'patchmode' are equal'columns' is not 80, cannot execute external commands'commentstring' must be empty or contain %s'dictionary' option is empty'history' option is zero'readonly' option is set for "%.*s".
Do you wish to write anyway?'thesaurus' option is empty'winheight' cannot be smaller than 'winminheight''winwidth' cannot be smaller than 'winminwidth'(%d of %d)%s%s: (+%ld for BOM)(Interrupted) (Invalid)+			Start at end of file+-%s%3ld lines: +--%3ld lines folded +<lnum>		Start at line <lnum>+reverse		Don't use reverse video (also: +rv),
or the file has been damaged.-               read text from stdin--			Only file names after this-- More ---- Searching...--- Included files --Deleted----No lines in buffer----cmd <command>	Execute <command> before loading any vimrc file--columns <number>	Initial width of window in columns--help		Show Gnome arguments--noplugin		Don't load plugin scripts--remote <files>	Edit <files> in a Vim server and exit--remote-expr <expr>	Evaluate <expr> in a Vim server and print result--remote-send <keys>	Send <keys> to a Vim server and exit--remote-wait <files>  As --remote but wait for files to have been edited--rows <number>	Initial height of window in rows--serverlist		List available Vim server names and exit--servername <name>	Send to/become the Vim server <name>--socketid <xid>	Open Vim inside another GTK widget--version		print version information and exit-C			Compatible with Vi: 'compatible'-D			Debugging mode-F			start in Farsi mode-H			start in Hebrew mode-L			Same as -r-M			Modifications in text not allowed-N			Not fully Vi compatible: 'nocompatible'-O[N]		like -o but split vertically-R			Readonly mode (like "view")-S <session>		Source file <session> after loading the first file-T <terminal>	Set terminal type to <terminal>-U <gvimrc>		Use <gvimrc> instead of any .gvimrc-V[N]		Verbose level-W <scriptout>	Write all typed commands to file <scriptout>-X			Do not connect to X server-Z			Restricted mode (like "rvim")-b			Binary mode-background <color>	Use <color> for the background (also: -bg)-boldfont <font>	Use <font> for bold text-borderwidth <width>	Use a border width of <width> (also: -bw)-c <command>		Execute <command> after loading the first file-d			Diff mode (like "vimdiff")-dev <device>		Use <device> for I/O-display <display>	Connect vim to this particular X-server-display <display>	Run vim on <display>-display <display>	Run vim on <display> (also: --display)-e			Ex mode (like "ex")-f			Don't use newcli to open window-f			Foreground: Don't fork when starting GUI-font <font>		Use <font> for normal text (also: -fn)-foreground <color>	Use <color> for normal text (also: -fg)-g			Run using GUI (like "gvim")-geometry <geom>	Use <geom> for initial geometry (also: -geom)-h			print Help (this message) and exit-i <viminfo>		Use <viminfo> instead of .viminfo-iconic		Start vim iconified-italicfont <font>	Use <font> for italic text-l			Lisp mode-m			Modifications (writing files) not allowed-menuheight <height>	Use a menu bar height of <height> (also: -mh)-n			No swap file, use memory only-name <name>		Use resource as if vim was <name>-o[N]		Open N windows (default: one for each file)-q [errorfile]  edit file with first error-r			List swap files and exit-r (with file name)	Recover crashed session-register		Register this gvim for OLE-reverse		Use reverse video (also: -rv)-s			Silent (batch) mode (only for "ex")-s <scriptin>	Read Normal mode commands from file <scriptin>-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)-t tag          edit file where tag is defined-u <vimrc>		Use <vimrc> instead of any .vimrc-unregister		Unregister gvim for OLE-v			Vi mode (like "vi")-w <scriptout>	Append all typed commands to file <scriptout>-x			Edit encrypted files-xrm <resource>	Set the specified resource-y			Easy mode (like "evim", modeless)...(truncated)1 buffer deleted1 buffer unloaded1 buffer wiped out1 change1 character1 line %sed %d times1 line %sed 1 time1 line --%d%%--1 line changed1 line indented 1 line less1 line moved1 line yanked1 line, 1 more line1 substitution2nd user gvimrc file: "3rd user gvimrc file: ":break without :while:continue without :while:else without :if:elseif without :if:endif without :if:endwhile without :while:if nesting too deep:while nesting too deep<%s>%s%s  %d,  Hex %02x,  Octal %03o<buffer object (deleted) at %8lX><cannot open> <window %d><window object (deleted) at %.8lX><window object (unknown) at %.8lX>??? from here until ???END lines may be messed up??? from here until ???END lines may have been inserted/deleted???BLOCK MISSING???EMPTY BLOCK???END???LINE COUNT WRONG???LINES MISSING???MANY LINES MISSINGA preview window already existsANCHOR_BUF_SIZE too small.Add a new databaseAdded cscope database %sAllAll cscope databases resetAll included files were foundAlready only one windowAmbiguous use of user-defined commandAppend FileArgument missing afterArgument must be positiveArgument requiredAt end-of-fileAt lineAttempt to open script file again: "Back at originalBackwards range givenBackwards range given, OK to swapBefore byte %ldBinary tag searchBotBreakpoint in "%s%s" line %ldBrowse classCalling shell to execute: "%s"Can't create file %sCan't find temp file for conversionCan't get temp file nameCan't make backup file (use ! to override)Can't open file %sCan't read file %sCan't read file for backup (use ! to override)Can't write to backup file (use ! to override)CancelCannot change term in GUICannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).
Cannot create Cannot create backup file (use ! to override)Cannot execute Cannot open NIL:
Cannot open for reading: "Cannot open for script output: "Cannot open termcap fileCannot set 'term' to empty stringCannot source a directory: "%s"Close error for backup file (use ! to override)Close failedCol %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ldCommand LineCommand abortedCommand failedCompilation: Compiler: Conversion with 'charconvert' failedCould not create cscope pipesCould not fix up function pointers to the DLL!Could not load vim32.dll!Cscope tag: %s
Current %slanguage: "%s"DirectionDirectoriesDo you really want to write to itDon't panic!DownE100: No other buffer in diff modeE101: More than two buffers in diff mode, don't know which one to useE102: Can't find buffer "%s"E103: Buffer "%s" is not in diff modeE104: Escape not allowed in digraphE105: Using :loadkeymap not in a sourced fileE106: Unknown variable: "%s"E107: Missing parentheses: %sE108: No such variable: "%s"E109: Missing ':' after '?'E10: \ should be followed by /, ? or &E110: Missing ')'E111: Missing ']'E112: Option name missing: %sE113: Unknown option: %sE114: Missing quote: %sE115: Missing quote: %sE116: Invalid arguments for function %sE117: Unknown function: %sE118: Too many arguments for function: %sE119: Not enough arguments for function: %sE11: Invalid in command-line window; <CR> executes, CTRL-C quitsE120: Using <SID> not in a script context: %sE121: Undefined variable: %sE122: Function %s already exists, use ! to replaceE123: Undefined function: %sE124: Missing '(': %sE125: Illegal argument: %sE126: Missing :endfunctionE127: Cannot redefine function %s: It is in useE128: Function name must start with a capital: %sE129: Function name requiredE12: Command not allowed from exrc/vimrc in current dir or tag searchE130: Undefined function: %sE131: Cannot delete function %s: It is in useE132: Function call depth is higher than 'maxfuncdepth'E133: :return not inside a functionE134: Move lines into themselvesE135: *Filter* Autocommands must not change current bufferE136: viminfo: Too many errors, skipping rest of fileE137: Viminfo file is not writable: %sE138: Can't write viminfo file %s!E139: File is loaded in another bufferE13: File exists (add ! to override)E140: Use ! to write partial bufferE141: No file name for buffer %ldE142: File not written: Writing is disabled by 'write' optionE143: Autocommands unexpectedly deleted new buffer %sE144: non-numeric argument to :zE145: Shell commands not allowed in rvimE146: Regular expressions can't be delimited by lettersE147: Cannot do :global recursiveE148: Regular expression missing from globalE149: Sorry, no help for %sE14: Invalid addressE150: Not a directory: %sE152: Cannot open %s for writingE153: Unable to open %s for readingE154: Duplicate tag "%s" in file %sE155: Unknown sign: %sE156: Missing sign nameE157: Invalid sign ID: %ldE158: Invalid buffer name: %sE159: Missing sign numberE15: Invalid expression: %sE160: Unknown sign command: %sE161: Breakpoint not found: %sE162: No write since last change for buffer "%s"E163: There is only one file to editE164: Cannot go before first fileE165: Cannot go beyond last fileE166: Can't open linked file for writingE167: :scriptencoding used outside of a sourced fileE168: :finish used outside of a sourced fileE169: Command too recursiveE16: Invalid rangeE170: Missing :endwhileE171: Missing :endifE172: Only one file name allowedE173: %ld more files to editE174: Command already exists: use ! to redefineE175: No attribute specifiedE176: Invalid number of argumentsE177: Count cannot be specified twiceE178: Invalid default value for countE179: argument required for completeE17: "%s" is a directoryE180: Invalid complete value: %sE181: Invalid attribute: %sE182: Invalid command nameE183: User defined commands must start with an uppercase letterE184: No such user-defined command: %sE185: Cannot find color scheme %sE186: No previous directoryE187: UnknownE188: Obtaining window position not implemented for this platformE189: "%s" exists (use ! to override)E18: Unexpected characters before '='E190: Cannot open "%s" for writingE191: Argument must be a letter or forward/backward quoteE192: Recursive use of :normal too deepE193: :endfunction not inside a functionE194: No alternate file name to substitute for '#'E195: Cannot open viminfo file for readingE196: No digraphs in this versionE197: Cannot set language to "%s"E198: cmd_pchar beyond the command lengthE199: Active window or buffer deletedE19: Mark has invalid line numberE200: *ReadPre autocommands made the file unreadableE201: *ReadPre autocommands must not change current bufferE202: Conversion made file unreadable!E203: Autocommands deleted or unloaded buffer to be writtenE204: Autocommand changed number of lines in unexpected wayE205: Patchmode: can't save original fileE206: patchmode: can't touch empty original fileE207: Can't delete backup fileE208: Error writing to "%s"E209: Error closing "%s"E20: Mark not setE210: Error reading "%s"E211: Warning: File "%s" no longer availableE212: Can't open file for writingE213: Cannot convert (use ! to write without conversion)E214: Can't find temp file for writingE215: Illegal character after *: %sE216: No such event: %sE217: Can't execute autocommands for ALL eventsE218: autocommand nesting too deepE219: Missing {.E21: Cannot make changes, 'modifiable' is offE220: Missing }.E221: 'commentstring' is emptyE222: Add to read bufferE223: recursive mappingE224: global abbreviation already exists for %sE225: global mapping already exists for %sE226: abbreviation already exists for %sE227: mapping already exists for %sE228: makemap: Illegal modeE229: Cannot start the GUIE22: Scripts nested too deepE230: Cannot read from "%s"E231: 'guifontwide' invalidE232: Cannot create BalloonEval with both message and callbackE233: cannot open displayE234: Unknown fontset: %sE235: Can't load Zap font '%s'E235: Can't use font %sE235: Unknown font: %sE236: Font "%s" is not fixed-widthE237: Printer selection failedE238: Print error: %sE239: Invalid sign text: %sE23: No alternate fileE240: No connection to Vim serverE241: Unable to send to %sE242: Color name not recognized: %sE242: Missing color: %sE243: Argument not supported: "-%s"; Use the OLE version.E244: Illegal charset name "%s" in font name "%s"E245: Illegal char '%c' in font name "%s"E246: FileChangedShell autocommand deleted bufferE247: no registered server named "%s"E248: Failed to send command to the destination programE249: couldn't read VIM instance registry propertyE24: No such abbreviationE250: Fonts for the following charsets are missing in fontset %s:E251: VIM instance registry property is badly formed.  Deleted!E252: Fontset name: %sE253: Fontset name: %s
E254: Cannot allocate color %sE255: Couldn't read in sign data!E255: Too many signs definedE256: Hangul automata ERRORE257: cstag: tag not foundE258: Unable to send to clientE259: no matches found for cscope query %s of %sE25: GUI cannot be used: Not enabled at compile timeE260: cscope connection not foundE261: cscope connection %s not foundE262: error reading cscope connection %dE263: Sorry, this command is disabled, the Python library could not be loaded.E264: Python: Error initialising I/O objectsE266: Sorry, this command is disabled, the Ruby library could not be loaded.E26: Hebrew cannot be used: Not enabled at compile time
E273: unknown longjmp status %dE274: Sniff: Error during read. DisconnectedE275: Unknown SNiFF+ request: %sE276: Error connecting to SNiFF+E277: Unable to read a server replyE278: SNiFF+ not connectedE279: Not a SNiFF+ bufferE27: Farsi cannot be used: Not enabled at compile time
E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.orgE281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.orgE282: Cannot read from "%s"E283: No marks matching "%s"E284: Cannot set IC valuesE285: Failed to create input contextE286: Failed to open input methodE287: Warning: Could not set destroy callback to IME288: input method doesn't support any styleE289: input method doesn't support my preedit typeE28: No such highlight group name: %sE290: over-the-spot style requires fontsetE291: Your GTK+ is older than 1.2.3. Status area disabledE292: Input Method Server is not runningE293: block was not lockedE294: Seek error in swap file readE295: Read error in swap fileE296: Seek error in swap file writeE297: Write error in swap fileE298: Didn't get block nr 0?E298: Didn't get block nr 1?E298: Didn't get block nr 2?E29: No inserted text yetE300: Swap file already exists (symlink attack?)E301: Oops, lost the swap file!!!E302: Could not rename swap fileE303: Unable to open swap file for "%s", recovery impossibleE304: ml_timestamp: Didn't get block 0??E305: No swap file found for %sE306: Cannot open %sE307: %s does not look like a Vim swap fileE308: Warning: Original file may have been changedE309: Unable to read block 1 from %sE30: No previous command lineE310: Block 1 ID wrong (%s not a .swp file?)E311: Recovery InterruptedE312: Errors detected while recovering; look for lines starting with ???E313: Cannot preserve, there is no swap fileE314: Preserve failedE315: ml_get: invalid lnum: %ldE316: ml_get: cannot find line %ldE317: pointer block id wrongE317: pointer block id wrong 2E317: pointer block id wrong 3E317: pointer block id wrong 4E318: Updated too many blocks?E319: Sorry, the command is not available in this versionE31: No such mappingE320: Cannot find line %ldE321: Could not reload "%s"E322: line number out of range: %ld past the endE323: line count wrong in block %ldE324: Can't open PostScript output fileE325: ATTENTIONE326: Too many swap files foundE327: Part of menu-item path is not sub-menuE328: Menu only exists in another modeE329: No menu of that nameE32: No file nameE330: Menu path must not lead to a sub-menuE331: Must not add menu items directly to menu barE332: Separator cannot be part of a menu pathE333: Menu path must lead to a menu itemE334: Menu not found: %sE335: Menu not defined for %s modeE336: Menu path must lead to a sub-menuE337: Menu not found - check menu namesE338: Sorry, no file browser in console modeE339: Pattern too longE33: No previous substitute regular expressionE340: Line is becoming too longE341: Internal error: lalloc(%ld, )E342: Out of memory!  (allocating %lu bytes)E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'.E344: Can't find directory "%s" in cdpathE345: Can't find file "%s" in pathE346: No more directory "%s" found in cdpathE347: No more file "%s" found in pathE348: No string under cursorE349: No identifier under cursorE34: No previous commandE350: Cannot create fold with current 'foldmethod'E351: Cannot delete fold with current 'foldmethod'E352: Cannot erase folds with current 'foldmethod'E353: Nothing in register %sE354: Invalid register name: '%s'E355: Unknown option: %sE356: get_varp ERRORE357: 'langmap': Matching character missing for %sE358: 'langmap': Extra characters after semicolon: %sE359: Screen mode setting not supportedE35: No previous regular expressionE360: Cannot execute shell with -f optionE361: Crash intercepted; regexp too complex?E363: pattern caused out-of-stack errorE364: Library call failed for "%s()"E365: Failed to print PostScript fileE366: Invalid 'osfiletype' option - using TextE367: No such group: "%s"E36: Not enough roomE371: Command not foundE372: Too many %%%c in format stringE373: Unexpected %%%c in format stringE374: Missing ] in format stringE375: Unsupported %%%c in format stringE376: Invalid %%%c in format string prefixE377: Invalid %%%c in format stringE378: 'errorformat' contains no patternE379: Missing or empty directory nameE37: No write since last change (use ! to override)E380: At bottom of quickfix stackE381: At top of quickfix stackE382: Cannot write, 'buftype' option is setE383: Invalid search string: %sE384: search hit TOP without match for: %sE385: search hit BOTTOM without match for: %sE386: Expected '?' or '/'  after ';'E387: Match is on current lineE388: Couldn't find definitionE389: Couldn't find patternE38: Null argumentE390: Illegal argument: %sE391: No such syntax cluster: %sE392: No such syntax cluster: %sE393: group[t]here not accepted hereE394: Didn't find region item for %sE395: contains argument not accepted hereE396: containedin argument not accepted hereE397: Filename requiredE398: Missing '=': %sE399: Not enough arguments: syntax region %sE39: Number expectedE400: No cluster specifiedE401: Pattern delimiter not found: %sE402: Garbage after pattern: %sE403: syntax sync: line continuations pattern specified twiceE404: Illegal arguments: %sE405: Missing equal sign: %sE406: Empty argument: %sE407: %s not allowed hereE408: %s must be first in contains listE409: Unknown group name: %sE40: Can't open errorfile %sE410: Invalid :syntax subcommand: %sE411: highlight group not found: %sE412: Not enough arguments: ":highlight link %s"E413: Too many arguments: ":highlight link %s"E414: group has settings, highlight link ignoredE415: unexpected equal sign: %sE416: missing equal sign: %sE417: missing argument: %sE418: Illegal value: %sE419: FG color unknownE41: Out of memory!E420: BG color unknownE421: Color name or number not recognized: %sE422: terminal code too long: %sE423: Illegal argument: %sE424: Too many different highlighting attributes in useE425: Cannot go before first matching tagE426: tag not found: %sE427: There is only one matching tagE428: Cannot go beyond last matching tagE429: File "%s" does not existE42: No ErrorsE430: Tag file path truncated for %s
E431: Format error in tags file "%s"E432: Tags file not sorted: %sE433: No tags fileE434: Can't find tag patternE435: Couldn't find tag, just guessing!E436: No "%s" entry in termcapE437: terminal capability "cm" requiredE438: u_undo: line numbers wrongE439: undo list corruptE43: Damaged match stringE440: undo line missingE441: There is no preview windowE442: Can't split topleft and botright at the same timeE443: Cannot rotate when another window is splitE444: Cannot close last windowE445: Other window contains changesE446: No file name under cursorE447: Can't find file "%s" in pathE44: Corrupted regexp programE455: Error writing to PostScript output fileE456: Can't open file "%s"E457: Can't read PostScript resource file "%s"E45: 'readonly' option is set (use ! to override)E46: Cannot set read-only variable "%s"E47: Error while reading errorfileE48: Not allowed in sandboxE49: Invalid scroll sizeE61: Nested %s*E62: Nested %s%cE64: %s%c follows nothingE72: Close error on swap fileE73: tag stack emptyE74: Command too complexE75: Name too longE76: Too many [E77: Too many file namesE78: Unknown markE79: Cannot expand wildcardsE80: Error while writingE81: Using <SID> not in a script contextE82: Cannot allocate any buffer, exiting...E83: Cannot allocate buffer, using other one...E84: No modified buffer foundE85: There is no listed bufferE86: Cannot go to buffer %ldE87: Cannot go beyond last bufferE88: Cannot go before first bufferE89: No write since last change for buffer %ld (use ! to override)E90: Cannot unload last bufferE91: 'shell' option is emptyE92: Buffer %ld not foundE93: More than one match for %sE94: No matching buffer for %sE95: Buffer with this name already existsE96: Can not diff more than %ld buffersE97: Cannot create diffsE98: Cannot read diff outputE99: Current buffer is not in diff modeERROR: Edit FileEdit File in new windowEdit with &VimEdit with &multiple VimsEdit with existing Vim - &Edit with single &VimEdits the selected file(s) with VimEmpty file name for '%' or '#', only works with ":p:h"End of functionEnd of sourced fileEnter encryption key: Enter nr of choice (<CR> to abort): Enter number of swap file to use (0 to quit): Enter same key again: Entering Debug mode.  Type "cont" to leave.Entering Ex mode.  Type "visual" to go to Normal mode.ErrorError creating process: Check if gvim is in your path!Error detected while processing %s:Evaluates to an empty stringExecuting %sExpressionExternal submatches:
File "%s" does not existFile preservedFilesFilterFind & Replace (use '\\' to find  a '\')Find NextFind string (use '\\' to find  a '\')Find symbolFind what:Font '%s' is not fixed-widthFont SelectionFont%d width is not twice that of font0
Font0 width: %ld
Font0: %s
Font1 width: %ld

Font1: %s
Garbage after optionGenerate docu forGreetings, Vim user!HelpHelp poor children in Uganda!Hit ENTER or type command to continueHit ENTER to continueHit end of paragraphI/O ERRORIllegal character <%s>Illegal character after <%c>Illegal componentIllegal file nameIllegal modeIllegal mouseshapeIllegal percentageIllegal register nameIllegal starting charInput LineInternal errorInterrupt: InterruptedInvalid argumentInvalid argument forInvalid argument: %sInvalid commandInvalid font(s)Invalid fontsetInvalid server id used: %sInvalid wide fontKeymap file not foundKeys don't match!Kill a connectionLinear tag searchLinking: Match exact word onlyMessages maintainer: Bram Moolenaar <Bram@vim.org>Missing '>'Missing colonMissing commaMissing number after <%s>Must specify a ' valueNeed %s version %ld
Need Amigados version 2.04 or later
Need at least %d columnsNeed at least %d linesNo ! allowedNo Syntax items defined for this bufferNo abbreviation foundNo breakpoints definedNo buffers were deletedNo buffers were unloadedNo buffers were wiped outNo fold foundNo included filesNo mapping foundNo marks setNo matchNo match: %sNo matching autocommandsNo more itemsNo mouse supportNo range allowedNo swap fileNo text to be printedNo undo possible; continue anywayNo user-defined commands foundNot a valid codepageNot allowed hereNot allowed in a modelineNot an editor commandNot found in termcapNumber required after =OKOpen File dialogOpening the X display failedOpening the X display timed outOpening the X display took %ld msecOption not supportedOriginal file "%s"Overwrite existing file "%.*s"?Patch filePath length too long!Pathname:Pattern found in every line: %sPattern not foundPattern not found: %sPrint job sent.Printed: %sPrinting '%s'Printing abortedPrinting page %d (%d%%)Query for a patternQuestionReading from stdin...Reading viminfo file "%s"%s%s%sRecovery completed. You should check if everything is OK.Reinit all connectionsReplaceReplace AllReplace with:RetrieveRetrieve from all projectsRetrieve from fileRetrieve from projectRun MacroRunning in Vi compatible modeSNiFF+ is currently Save AsSave File dialogSave RedirectionSave SessionSave SetupSave ViewSave changes to "%.*s"?Scanning dictionary: %sScanning included file: %sScanning tags.Scanning: %sScrollbar Widget: Could not get geometry of thumb pixmap.Search StringSearching for "%s"Searching for "%s" in "%s"Searching tags file %sSelected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld BytesSelectionSend expression failed.
Sending to printer...Show base class ofShow class in hierarchyShow class in restricted hierarchyShow connectionsShow docu ofShow overridden member functionShow source ofShow this messageSigns for %s:Sniff: Error during write. DisconnectedSorry, help file "%s" not foundSorry, this command is disabled: the Tcl library could not be loaded.Stack size increasesSwap file "Swap file already exists!Swap files found:Syntax error in %s{...}Tear off this menuTerminal entry not found in termcapTerminal entry not found in terminfoTesting the X display failedThanks for flying VimThe file was created on The only matchThe resource fork will be lost (use ! to override)This Vim was not compiled with the diff feature.This cscope command does not support splitting the window.
Toggle implementation/definitionToo many "+command" or "-c command" argumentsToo many edit argumentsTopTrailing charactersUnable to read block 0 from Unable to register a command server nameUnclosed expression sequenceUndoUnknownUnknown optionUnknown register type %dUntitledUpUsage: cstag <ident>Use ":gui" to start the GUIUse Vim version 3.0.
Use w or w>>Used CUT_BUFFER0 instead of empty selectionUsing swap file "%s"VIM - ATTENTIONVIM - Search and Replace...VIM - Search...VIM - Vi IMprovedVIM ErrorVIM: Can't open window!
VIMRUN.EXE not found in your $PATH.
External commands will not pause after completion.
See  :help win32-vimrun  for more information.Vim E458: Cannot allocate colormap entry, some colors may be incorrectVim WarningVim dialogVim dialog...Vim exiting with %d
Vim is open source and freely distributableVim: Caught %s event
Vim: Caught deadly signal
Vim: Caught deadly signal %s
Vim: Double signal, exiting
Vim: Error reading input, exiting...
Vim: Finished.
Vim: Reading from stdin...
Vim: Warning: Input is not from a terminal
Vim: Warning: Output is not to a terminal
Vim: preserving files...
W10: Warning: Changing a readonly fileW11: Warning: File "%s" has changed since editing startedW12: Warning: File "%s" has changed and the buffer was changed in Vim as wellW13: Warning: File "%s" has been created after editing startedW14: Warning: List of file names overflowW15: Warning: Wrong line separator, ^M may be missingW16: Warning: Mode of file "%s" has changed since editing startedWARNING: The file has been changed since reading it!!!WARNING: Windows 95/98/ME detectedWarningWarning: Entered other buffer unexpectedly (check autocommands)Warning: terminal cannot highlightWhile opening file "Window position: X %d, Y %dWord from other lineWrite partial file?Writing viminfo file "%s"Xref has aXref referred byXref refers toXref used byYESZero countZero length string[CONVERSION ERROR][CR missing][Deleted][Device][Error List][Incomplete last line][NL found][NOT converted][New File][New file][New][No File][No file][No write since last change]
[Not edited][Permission Denied][Preview][READ ERRORS][RO][Read errors][calls] total re/malloc()'s %lu, total free()'s %lu

[converted][crypted][dos format][dos][fifo/socket][fifo][file ..]       edit specified file(s)[help][long lines split][mac format][mac][noeol][readonly][socket][string too long][unix format][unix]and run diff with the original file to check for changes)
at bottom of tag stackat top of tag stackattempt to refer to deleted bufferattempt to refer to deleted windowautocommand %sby by Bram Moolenaar et al.calling %scan't delete OutputObject attributescan't read output of 'charconvert'can't select fontsetcan't select wide fontcannot change console mode ?!
cannot create buffer/window command: object is being deletedcannot delete linecannot get linecannot insert linecannot insert/append linecannot open cannot register callback command: buffer/window is already being deletedcannot register callback command: buffer/window reference not foundcannot replace linecannot save undo informationcannot set line(s)cannot yank; delete anywayclosecmd: %scomma requiredconnectedcontains unprintable charactercontinuing in %scould not source "%s"couldn't malloc
cs_create_connection exec failedcs_create_connection: fdopen for fr_fp failedcs_create_connection: fdopen for to_fp failedcscope commands:
cscope connection %s closed
cscope connection closedcursor position outside bufferdefaulting to 'deleted block 1?digit expecteddon't quit the editor until the file is successfully written!duplicate cscope database not addederror list %d of %d; %d errorserror reading cscope connection %dexpressions disabled at compile timefatal error in cs_manage_matchesfile
filename / context / line
finished sourcing %sfreeing %ld linesfunction gvimext.dll errorhelpin path ---
invalid attributeinvalid buffer numberinvalid expressioninvalid mark nameis a directoryis not a fileis not a file or writable deviceis read-only (use ! to override)keyboard interruptline %4ld:line %ldline %ld of %ld --%d%%-- col line %ld: %sline %ld: could not source "%s"line %ld: sourcing "%s"line number out of rangelogoffmark not setmatch %dmatch %d of %dmaximal maximum number of cscope connections reachedmch_get_shellsize: not a console??
minimal new shell started
nono :source file name to substitute for "<sfile>"no autocommand buffer number to substitute for "<abuf>"no autocommand file name to substitute for "<afile>"no autocommand match name to substitute for "<amatch>"no cscope connectionsno cscope connections
no such bufferno such windowno syncingnot not found not found in 'runtimepath': "%s"not implemented yetpe_line_count is zeropre-vimrc command linereadonly attributerecordingreplace with %s (y/n/a/q/l/^E/^Y)?row %d column %dsearch hit BOTTOM, continuing at TOPsearch hit TOP, continuing at BOTTOMshell shell returned %dshutdownsoftspace must be an integersourcing "%s"stack_idx should be 0stat(%s) error: %dstring cannot contain newlinessyncing on C-style commentssyncing starts tag %d of %d%stagnameto %s on %stoo many itemstype  :help cp-default<Enter> for info on thistype  :help iccf<Enter>       for information type  :help version8<Enter>   for version infotype  :help windows95<Enter>  for info on thistype  :help<Enter>  or  <F1>  for on-line helptype  :q<Enter>               to exit         type  :set nocp<Enter>        for Vim defaultsunbalanced groupsunknown cscope search typeunknown flag: unknown optionunknown vimOptionversion vim errorvim_SelFile: can't get current directoryvim_SelFile: can't get font %svim_SelFile: can't return to current directoryviminfo: %s in line: with (classic) GUI.with BeOS GUI.with Carbon GUI.with Cocoa GUI.with GTK GUI.with GTK-GNOME GUI.with GUI.with Photon GUI.with X11-Athena GUI.with X11-Motif GUI.without GUI.write error (file system full?)write error, conversion failedwritelines() requires list of stringsProject-Id-Version: vim-6.0
POT-Creation-Date: 2001-10-08 08:27-0700
PO-Revision-Date: 2002-02-06 22:29+0100
Last-Translator: Ji�� Pavlovsk� <jpavlovsky@mbox.vol.cz>
Language-Team: Czech <cs@li.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
			  (nen� implementov�no)

	Naposledy nastavena z 

Argumenty:


pou�it�:
          datum zm�ny: 
         [nepou�iteln� na tomto po��ta�i]
         [nepou�iteln� s touto verz� Vim]
         n�zev po��ta�e: 
         u�ivatelsk� jm�no: 
        ID procesu : 
    Jm�no       Args Rozsah �plnost  Definice
   nebo
  # C�L tag        START ��dek  v souboru/textu
 skok ��dek sloupec soubor/text
# Historie %s (po��naje nejnov�j�� polo�kou):

# Seznam buffer�:

# Souborov� zna�ky:

# Historie zna�ek v souborech (po��naje nejnov�j�� polo�kou):

# Seznam skok� (po��naje nejnov�j�� polo�kou):

# Posledn� nahrazuj�c� �et�zec:
$
# Registry:

# glob�ln� prom�nn�:

(1) Soubor m��e b�t editov�n jin�m programem.
    Je-li tomu tak, pak si dejte pozor, aby jste po ulo�en� zm�n
    nem�li dv� r�zn� verze t�ho� souboru.

(2) Editace tohoto souboru byla p�eru�ena ne�ekan�m ukon�en�m programu.

(Zva�te ulo�en� tohoto souboru pod jin�m n�zvem

--- Automatick� p��kazy ---
--- Nastaven� glob�ln�ch voleb ---
--- Nastaven� lok�ln�ch voleb ---
--- Nab�dky ---
--- Volby ---
--- Registry ---
--- Znaky ---
--- P�edm�ty syntaxe ---
--- Polo�ky synchronizace syntaxe ---
--- K�dy termin�lu ---
--- Kl�vesy termin�lu ---
16 bitov� MS-DOS verze
32 bitov� verze pro MS Windows
P�ep�na�e pro gvim (Athena verzi):

P�ep�na�e pro gvim (GTK+ verzi):

P�ep�na�e pro gvim (Motif verzi):

P�ep�na�e pro gvim (RISC OS verzi):

velk� verze 
Nelze vytvo�it roury

nelze spustit shell 
Nelze spustit sh shell

Vol�n� fork selhalo

P��kaz ukon�en

p�elo�il 
Nalezen odkl�dac� soubor se jm�nem "
maxim�ln� verze
Pou�it� z�platy: 
16 bitov� verze pro MS Windows
16/32 bitov� GUI verze pro MS Windows
32 bitov� GUI verze pro MS Windows
32 bitov� verze pro MS Windows konzolu
MacOS X (unix) verze
MacOS X verze
MacOS verze
Mo�n� nedo�lo k ��dn�m zm�n�m, nebo Vim neaktualizoval odkl�dac� soubor.
Podrobn�j�� informace z�sk�te pomoc� "vim -h"

norm�ln� verze
RISC OS verze
P�ed�n� v�razu selhalo.

P�ed�n� selhalo. Zkou��m prov�st lok�ln�

Pos�l�m sign�l k ukon�en� synovsk�ho procesu.

mal� verze 
minim�ln� verze
Vim: chyba X11

VAROV�N�: Obsah p�vodn�ho souboru m��e b�t ztracen �i po�kozen

[bajt�] celkem uvoln�no-alokov�no %lu-%lu, vyu�ito %lu, maxim�ln� vyu�it� %lu

zna�ka ��dek  sloupec soubor/text
 n�vratov� hodnota shellu 
synchronizuji p�edm�ty             datum vytvo�en�:           vlastn�k:          [nelze otev��t]         [nelze p�e��st]         [nevypad� jako odkl�dac� soubor Vim]         [od Vim verze 3.0]         n�zev souboru:       -- ��dn� --
      NOV�J�� ne� odkl�dac� soubor!
      u�ivatelsk� exrc soubor: "     u�ivatelsk� vimrc soubor: "    Je-li tomu tak, pak pou�ijte ":recover" �i "vim -r     Pokud jste tak ji� u�inil, tak sma�te odkl�dac� soubor "    Ukon�ete program, nebo opatrn� pokra�ujte v editaci.
    ��dek=%ld id=%d jm�no=%s    syst�mov� soubor s menu: "    u�ivatelsk� gvimrc soubor: "   #   ��dek   V aktu�ln�m adres�i:
   V adres�i    Se zadan�m n�zvem:
   datum vytvo�en�:    n�zev po��ta�e:    syst�mov� vimrc soubor: "  # pri typ tag  (Ji� vyps�no)  druh� u�ivatelsk� exrc soubor: "  PODPORA LAD�N� Vlastnosti zahrnut� (+) a nezahrnut� (-):
 NENALEZENY  Pou��v�m tag s p�smeny jin� velikosti!  implicitn� hodnota $VIM:"  syst�mov� gvimrc soubor: " # pid    n�zev datab�ze                      p�edpona cesty
(P�eru�eno) (RET/BS: ��dek, MEZERN�K/b: str�nka, d/u: 0.5 str�nky, q: konec) (RET: ��dek, MEZERN�K: str�nka, d: 0.5 str�nky, q: konec) (v�etn� ji� vypsan�ch shod) (insert) (insert) Rolov�n� (^E/^Y) (lang) (��dek smaz�n) (paste) (replace) (replace) Rolov�n� (^E/^Y) (st�le aktivn�) (vreplace) druh� u�ivatelsk� vimrc soubor: " t�et� u�ivatelsk� vimrc soubor: "P�id�v�m BLOK CHYBA P�EVODU Dopl�ov�n� p��kazov� ��dky (^I/^N/^P) Kopie %d z %d Dopl�ov�n� definic (^D/^N/^P) Dopl�ov�n� podle slovn�ku (^K/^N/^P) se nezda�ilo Dopl�ov�n� n�zv� soubor� (^F/^N/^P) hebrejsk� INSERT Lok�ln� dopl�ov�n� kl��ov�ch slov (^N/^P) Dopl�ov�n� kl��ov�ch slov (^N/^P) �DEK Dopl�ov�n� vzoru cest (^N/^P) REPLACE REVERSE SHODY Dopl�ov�n� tag� (^I/^N/^P) Dopl�ov�n� podle tezauru (^T/^N/^P) VIZU�LN� VREPLACE Dopl�ov�n� cel�ch ��dk� (^L/^N/^P) [Zm�n�n�] [p] [u] ^X re�im (^E/^Y/^L/^]/^F/^I/^K/^D/^V/^N/^P) p�ipojen nelze pou��t na tomto po��ta�i.
 nelze pou��t s touto verz� Vim.
  implicitn� hodnota $VIMRUNTIME: " ve Win32s re�imu informace typ soubor
 ��dk� p�ed za��tkem zna�ky na %ld ��dc�ch na jednom ��dku nebo v�ce n�vratov� hodnota shellu
vim [p�ep�na�e]  s OLE podporou ulo�en"
"
    a tato zpr�va se ji� nebude objevovat.
"
    pro odstran�n� zm�n (viz ":help recovery)".
" ji� existuje!# Tento viminfo soubor byl vytvo�en editorem Vim %s.
# Hodnota volby 'encoding' v dob� ulo�en� tohoto souboru
# Pokud budete opatrn�, m��ete jej upravovat.

%-5s: %-30s (Pou�it�: %s)
%2d %-5ld  %-34s  <��dn�>
%3d  %s %s  ��dek %ldPo�et smazan�ch buffer�: %dPo�et deaktivovan�ch buffer�: %dPo�et zahozen�ch buffer�: %dpo�et soubor� pro editaci: %d
Je�t� zb�vaj� soubory k editaci (%d). Chcete p�esto ukon�it editor?%d z %d editov�no��dk�: %ld;po�et zm�n: %ld%ld znak�, po�et smazan�ch ��dk�: %ldPo�et ��dk�: %ld (posunut�ch pomoc� %s %d-kr�t)Po�et ��dk�: %ld (posunut�ch jednou pomoc� %s)��dk�: %ld --%d%%--po�et ��dek se zm�n�nou velikost� p�smen: %ldPo�et filtrovan�ch ��dk�: %ldpo�et odsazen�ch ��dk�: %ldPo�et p�esunut�ch ��dk�: %ldpo�et ��dk� k odsazen�: %ldpo�et zkop�rovan�ch ��dk�: %ld%ld ��dk�, po�et nov�ch ��dk�: %ld%ld nahrazen�%s automatick� p��kazy pro "%s"%s nen� ani adres�em ani spr�vnou cscope datab�z�dokon�eno prov�d�n� %s. N�vratov� hodnota "%s"dokon�eno prov�d�n� %s. N�vratov� hodnota #%ld&OK
&Zru�it&OK
&Nahr�t soubor&Ok&Otev��t pouze pro �ten�
&Pokra�ovat v editaci
O&bnovit soubor
&Konec&Otev��t pouze pro �ten�
&Pokra�ovat v editaci
O&bnovit soubor
&Konec
&Smazat&Ano
&Ne&Ano
&Ne
&Zru�it&Ano
&Ne
&Ulo�it v�e
Zahodit &v�e
&Zru�it' nen� zn�m. Dostupn� vestav�n� termin�ly:volby 'backupext' a 'patchmode' maj� stejnou hodnotu'columns' nen� 80, nelze spustit extern� p��kazvolba `commentstring` mus� b�t bu� pr�zdn� nebo nastaven� na %svolba 'dictionary' je pr�zdn�'volba 'history' je nastavena na nuluPro "%.*s" je nastavena volba 'readonly'.
P�ejete si ji potla�it?volba 'thesaurus' je pr�zdn�hodnota volby 'winheight' nesm� b�t men�� ne� hodnota volby 'winminheight'hodnota volby 'winwidth' nesm� b�t men�� ne� hodnota volby 'winminwidth'(%d/%d)%s%s: (+%ld pro BOM)(P�eru�eno) (Chybn�)+			Nastav� kurzor na konec souboru+-%s%3ld ��dk�:po�et ��dk� v z�hybu: %3ld+<��dek>		Nastav� kurzor na <��dek>+reverse		Nepou�ije reverzn� barvy (tak� +rv),
nebo byl soubor po�kozen.-                    ��st text ze standardn�ho vstupu--			Mohou n�sledovat pouze n�zvy soubor�-- Pokra�ov�n� ---- Hled�m...--- Vlo�en� soubory--Vymaz�no----Buffer neobsahuje ��dn� ��dek----cmd <p��kaz>	Po nahr�n� prvn�ho souboru vykon� <p��kaz>--columns <po�et>	<po�et> sloupc� na okno--help		Vyp�e Gnome p�ep�na�e--noplugin		Nenahraje 'plugin' skripty--remote <soubory>	Edituje <soubory> na Vim serveru a skon��--remote-expr <v�raz>	Provede <v�raz> na serveru a zobraz� v�sledek--remote-send <kl�vesy>	P�ed� <kl�vesy> Vim serveru a skon��--remote-wait <soubory> Jako --remote, ale �ek� na soubory k editaci--rows <po�et>	<po�et> ��dk� na okno--serverlist		Vyp�e seznam dostupn�ch Vim server� a skon��--servername <jm�no>	Za�le serveru <jm�no>/stane se Vim serverem <jm�no>--socketid <xid>	Otev�e Vim uvnit� jin�ho GTK widgetu--version		vyp�e informace o verzi a skon��-C			Kompatabiln� s Vi: 'compatible'-D			Lad�c� re�im-F			nastartuje ve Farsi re�imu-H			nastartuje v hebrejsk�m re�imu-L			Stejn� jako -r-M			Zm�ny (ukl�d�n� soubor�) zak�z�ny-N			Kompatibilita s Vi vypnuta: 'nocompatible'-O[N]		Jako -o but split vertically-R			Re�im pouze_pro_�ten� (jako "view")-S <sezen�>		Po nahr�n� prvn�ho souboru vykon� p��kazy v souboru <sezen�>-T <termin�l>	Nastav� typ termin�lu na <termin�l>-U <gvimrc>		Pou�ije <gvimrc> m�sto jak�hokoliv .gvimrc-V[N]		�rove� v�pisu hl�ek-W <skript>		Ulo�� v�echny napsan� p��kazy do souboru <skript>-X			Nep�ipoj� se k X serveru-Z			Omezen� re�im (stejn� jako "rvim")-b			Bin�rn� re�im-background <barva>	Nastav� <barvu> pozad� (tak� -bg)-boldfont <p�smo>	Nastav� <p�smo> pro zv�razn�n� text-borderwidth <��ka>	Nastav� <��ku> okraj� (tak� -bw)-c <p��kaz>		Po nahr�n� prvn�ho souboru vykon� <p��kaz>-d			Diff re�im (stejn� jako "vimdiff")-dev <za��zen�>		Pou��t <za��zen�> pro I/O-display <display>	Spust� vim na dan� X-server-display <display>	Spust� vim na <display>-display <display>	Spust� vim na <display> (tak� --display)-v			Ex m�d (stejn� jako "ex")-f			Nebude pou��vat newcli pro otev�en� okna-f			Pop�ed�: p�i startu GUI se neodd�l� od shellu-font <p�smo>		Nastav� <p�smo> norm�ln�ho textu (tak� -fn)-foreground <barva>	Nastav� <barvu> pop�ed� (tak� -fg)-g			spustit v GUI re�imu (stejn� jako "gvim")-geometry <geometrie>	Nastav� <geometrii> (tak� -geom)-h			Vyp�e tuto n�pov�du a skon��-i <viminfo>		Pou�ije <viminfo> m�sto jak�hokoliv .viminfo-iconic		Spust� vim minimalizovan�-italicfont <p�smo>	Nastav� <p�smo> pro kurz�vu-l			Lisp re�im-m			Zm�ny (ukl�d�n� soubor�) zak�z�ny-menuheight <v��ka>	Nastav� <v��ku> nab�dky (tak� -mh)-n			Nebude vytv�et odkl�dac� soubor, bude pou��vat pouze pam�-name <n�zev>		Pou�ije resource jako by vim m�l <n�zev>-o[N]		Otev�e N oken (implicitn� jedno pro ka�d� soubor)-q [chybov� soubor]  editovat soubor na m�st� v�skytu prvn� chyby-r			Vyp�e seznam odkl�dac�ch soubor� a skon��-r n�zev souboru	Obnov� p�eru�en� sezen�-register		p�ihl�sit gvim na OLE-reverse		Pou�ije reverzn� barvy (tak� -rv)-s			Tich� (d�vkov�) re�im (pouze pro "ex")-s <skript>		Na�te p��kazy norm�ln�ho m�du ze <skriptu>-scrollbarwidth <��ku> Nastav� <��ku> posunovac� li�ty (tak�: -sw)-t TAG          editovat soubor na m�st� definice TAGU-u <vimrc>		Pou�ije <vimrc> m�sto jak�hokoliv .vimrc-register		odhl�sit gvim z OLE-v			Vi m�d (stejn� jako "vi")-w <skript>		P�ipoj� v�echny napsan� p��kazy do souboru <skript>-x			Editace za�ifrovan�ch soubor�-xrm <resource>	Nastav� zadan� <resource>-v			Snadn� re�im (stejn� jako "evim", ��dn� m�dy )...(kr�ceno)Po�et smazan�ch buffer�: 1Po�et deaktivovan�ch buffer�: 1Po�et zahozen�ch buffer�: 1po�et zm�n: 11 znakPo�et ��dk� posunut�ch pomoc� %s %d-kr�t : 1po�et ��dk� posunut�ch jednou pomoc� %s : 1��dk�: --%d%%--po�et ��dek se zm�n�nou velikost� p�smen: 1po�et ��dk� k odsazen�: 1po�et smazan�ch ��dk�: 1po�et p�esunut�ch ��dk�: 1po�et zkop�rovan�ch ��dk�: 11 ��dek, po�et nov�ch ��dk�: 11 nahrazen�druh� u�ivatelsk� gvimrc soubor: "t�et� u�ivatelsk� gvimrc soubor: ":break bez odpov�daj�c�ho :while:continue bez odpov�daj�c�ho :while:else bez odpov�daj�c�ho :if:elseif bez odpov�daj�c�ho :if:endif bez odpov�daj�c�ho :if:endwhile bez odpov�daj�c�ho :whilevno�en� :if je p��li� hlubok�vno�en� :while je p��li� hlubok�<%s>%s%s  %d,  �estn�ctkov� %02x,  osmi�kov� %03o<buffer objekt (smaz�n) na %8lX><nelze otev��t> <okno %d><objekt okna (smaz�n) na %.8lX><objekt okna (nezn�m�) na %.8lX>od ??? po ???END mohou b�t ��dky pom�chan�od ??? po ???END mohou b�t vlo�en�/smazan� ��dky???CHYB� BLOK???PR�ZDN� BLOK???KONEC???CHYBN� PO�ET �DK�???CHYB�J�C� �DKY???CHYB� MNOHO �DK�Okno n�hledu ji� existujeANCHOR_BUF_SIZE je p��li� mal�.P�idat novou datab�ziP�id�na cscope datab�ze %sV�eV�echny cscope datab�ze resetov�nyV�echny vlo�en� soubory byly nalezenyJi� existuje pouze jedno oknoNejednozna�n� pou�it� u�ivatelsky definovan�ho p��kazuUlo�it souborChyb� argument poArgument mus� b�t kladn�Je vy�adov�n argumentKonec souboruNa ��dkuPokus o op�tovn� otev�en� skriptu: "V�choz� podobaZad�n zp�tn� rozsahZad�n zp�tn� rozsah. Prohodit hraniceP�ed bajtem %ldBin�rn� hled�n� taguKonecBod p�eru�en� v "%s%s" na ��dku %ldProhl�et classSpou�t�m p��kaz "%s" pomoc� shelluNelze vytvo�it soubor %sNelze nal�zt do�asn� soubor pro konverziNelze z�skat n�zev do�asn�ho souboruNelze vytvo�it z�lo�n� soubor (pou�ijte ! pro vynucen�)Nelze otev��t soubor %sNelze ��st soubor %sNelze na��st soubor pro z�lohu (pou�ijte ! pro vynucen�)Nelze zapisovat do z�lo�n�ho souboru (pou�ijte ! pro vynucen�)Zru�itV GUI nelze m�nit termNelze se p�ipojit k SNiFF+. Zkontrolujte prom�nn� (sniffemacs mus� b�t)uvedena v $PATH.
 Nelze vytvo�it Nelze vytvo�it z�lo�n� soubor (pou�ijte ! pro vynucen�)Nelze spustit Nelze otev��t NIL:
Nelze otev��t pro z�pis: "Nelze otev��t pro v�stup skriptu: "Nelze otev��t termcapvolba 'term' nem��e b�t pr�zdn�nelze interpretovat adres�: "%s"Chyba p�i uzav�r�n� z�lo�n�ho souboru (pou�ijte ! pro vynucen�)Vol�n� close selhaloSloupec %s z %s; ��dek %ld z %ld; Slovo %ld z %ld; Byte %ld z %ldp��kazov� ��dkyP��kaz p�eru�enP��kaz selhalP�eklad: P�eklada�: Konverze s 'charconvert' se nezda�ilanelze vytvo�it cscope rouryNelze nastavit ukazatele funkc� na DLLNelze na��st vim32.dll!Cscope tag: %s
Aktu�ln� %sjazyk: "%s"Sm�rAdres�eChcete jej opravdu ulo�itNepanika�te!Dol�E100: To byl posledn� buffer v diff re�imuE101: V diff re�imu jsou v�ce ne� dva buffery. Nev�m, kter� m�m pou��t.E102: Nelze nal�zt buffer "%s"E103: Buffer "%s" nen� v diff re�imuE104: digraph nesm� obsahovat EscapeE105: :loadkeymap mimo interpretovan� souborE106: Nezn�m� prom�nn�: "%s"E107: Chyb� z�vorky: %sE108: Prom�nn� "%s" neexistujeE109: Po '?' chyb� ':'E10: po \ by m�l n�sledovat /. ? nebo &E110: Chyb�j�c� ')'E111: Chyb�j�c� ']'E112: Chyb� jm�no volby: %sE113: Nezn�m� volba: %sE114: Chyb� uvozovky: %sE115: Chyb� uvozovky: %sE116: Chybn� argumenty pro funkci %sE117: Nezn�m� funkce: %sE118: P��li� mnoho argument� pro funkci %sE119: P��li� m�lo argument� pro funkci %sE11: Chyba v okn� p��kazov� ��dky; <CR> pro spu�t�n�, CTRL-C pro ukon�en�E120: Pou�it� <SID> mimo kontext skriptu: %sE121: Nedefinovan� prom�nn�: %sE122: Funkce %s ji� existuje. Pou�ijte ! pro jej� nahrazen�.E123: Nedefinovan� funkce: %sE124: Chyb� '(': %sE125: Nep��pustn� argument: %sE126: Chyb� :endfunctionE127: Nelze p�edefinovat funkci %s: je pou��v�naE128: N�zev funkce mus� za��nat velk�m p�smenem: %sE129: Je vy�adov�no jm�no funkceE12: P��kaz nen� z exrc/vimrc v aktu�ln�m adres�i �i p�i hled�n� tagu povolen.E130: Nedefinovan� funkce: %sE131: Nelze smazat funkci %s: je ji� pou��v�naE132: Zano�en� funkce je hlub�� ne� 'maxfuncdepth'E133: :return mimo funkciE134: Nelze p�esunout ��dky na p�vodn� m�stoE135: Automatick� p��kazy *Filter* nesm� m�nit aktu�ln� bufferE136: viminfo: p��li� mnoho chyb, p�eskakuji zbytek souboruE137: do viminfo souboru %s nelze zapisovatE138: Nelze ulo�it viminfo soubor %s!E139: Soubor je nahr�n v jin�m bufferuE13: Soubor existuje (pou�ijte ! pro vynucen�)E140: Pou�ijte ! pro ulo�en� ne�pln�ho bufferuE141: ��dn� n�zev souboru pro buffer %ldE142: Soubor nebyl ulo�en: Ukl�d�n� je zak�z�no volbou 'write'E143: Automatick� p��kazy neo�ek�van� smazaly nov� buffer %sE144: ne��seln� argument pro :zE145: rvim nepovoluje pou�it� p��kaz� shelluE146: Regul�rn� v�razy nesm� b�t odd�leny p�smenyE147: :global nelze volat rekurzivn�E148: U p��kazu 'global' chyb� regul�rn� v�razE149: Lituji, pro %s nen� ��dn� n�pov�daE14: Chybn� adresaE150: %s nen� adres�emE152: Nelze otev��t %s pro z�pisE153: Nelze otev��t %s pro z�pisE154: Duplicitn� tag "%s" v souboru %sE155: Nezn�m� volba: %sE156: Chyb� jm�no volbyE157: Chybn� ID volby: %ldE158: chybn� jm�no bufferu: %sE159: Chyb� identifik�tor volbyE15: Chybn� v�raz: %sE160: Nezn�m� volba p��kazu: %sE161: Bod p�eru�en� nenalezen: %sE162: Buffer "%s" obsahuje neulo�en� zm�nyE163: Pro editaci byl zad�n pouze jeden souborE164: P�ed prvn� soubor nelze p�esko�itE165: Za posledn� soubor nelze p�esko�itE166: Nelze otev��t p�ipojen� soubor pro z�pisE167: :scriptencoding pou�ito mimo interpretovan� souborE168: :finish pou�ito mimo interpretovan� souborE169: P��kaz je p��li� rekurzivn�E16: Chybn� rozsahE170: Chyb� :endwhileE171: Chyb� :endifE172: P��pustn� je pouze jeden n�zev souboruE173: Je�t� zb�vaj� soubory k editaci (%ld).E174: P��kaz ji� existuje: pou�ijte ! pro p�edefinov�n�E175: Nebyly zad�ny ��dn� atributyE176: Chybn� po�et argument�E177: Opakov�n� nem��e b�t zad�no dvakr�tE178: Chybn� implicitn� hodnota pro po�etE179: chybn� implicitn� hodnota pro opakov�n�E17: "%s" je adres�emE180: Chybn� hodnota dopln�n�: %sE181: Chybn� atribut: %sE182: Chybn� jm�no p��kazuE183: U�ivatelsky definovan� p��kazy mus� za��nat velik�m p�smenem.E184: U�ivatelsky definovan� p��kaz %s neexistujeE185: Nelze nal�zt barevn� sch�ma %sE186: ��dn� p�edchoz� adres�E187: Nezn�m�E188: Na t�to platform� nelze um�st�n� okna zjistitE189: "%s" existuje (pou�ijte ! pro vynucen�)E18: Neo�ek�van� znaky p�ed '='E190: Nelze otev��t "%s" pro z�pisE191: Argumentem m��e b�t pouze p�smeno nebo prav� �i lev� apostrofE192: Vno�en� :normal je p��li� hlubok�E193: :endfunction mimo funkciE194: ��dn� alternativn� n�zev souboru, kter�m by bylo mo�n� nahradit '#'E195: Nelze otev��t pro �ten� viminfo souborE196: V t�to verzi nejsou sp�e�ky podporov�nyE197: Nelze nastavit jazyk na "%s"E198: cmd_pchar p�ekra�uje d�lku p��kazuE199: Smaz�no aktivn� okno �i bufferE19: Zna�ka m� chybn� ��slo ��dkuE200: *ReadPre automatick� p��kazy u�inily soubor ne�iteln�mE201: *ReadPre automatick� p��kazy nesm� m�nit aktu�ln� bufferE202: Po konverzi je soubor ne�iteln�!E203: Automatick� p��kazy smazaly �i deaktivovaly buffer, kter� m�l b�t ulo�enE204: Automatick� p��kaz ne�ekan�m zp�sobem zm�nil po�et ��dk�E205: patchmode: nelze ulo�it p�vodn� souborE206: patchmode: nelze zapisovat do pr�zdn�ho p�vodn�ho souboruE207: Nelze smazat z�lo�n� souborE208: Chyba p�i z�pisu do "%s"E209: Chyb p�i uzav�r�n� "%s"E20: nen� nastavenaE210: Chyba p�i �ten� "%s"E211: wa1: soubor "%s" ji� nen� dostupn�E212: Nelze otev��t soubor pro z�pisE213: Nelze p�ev�st (pou�ijte ! pro z�pis bez p�evodu)E214: Nelze naj�t do�asn� temp soubor pro z�pisE215: Nep��pustn� znak po *: %sE216: Ud�lost %s neexistujeE217: Automatick� p��kazy nelze spustit pro V�ECHNY ud�lostiE218: vno�en� automatick�ho p��kazu p��li� hlubok�E219: Chyb� {.E21: Nelze m�nit, je nastavena volba 'modifiable'E220: Chyb� }.E221: volba 'commentstring' je pr�zdn�E222: P�idat do bufferu pro �ten�E223: rekurzivn� mapov�n�E224: pro %s ji� glob�ln� zkratka ji� existujeE225: pro %s ji� glob�ln� mapov�n� ji� existujeE226: pro %s ji� zkratka ji� existujeE227: pro %s ji� mapov�n� ji� existujeE228: makemap: nep��pustn� m�dE229: Nelze spustit GUIE22: Skript vno�en p��li� hlubokoE230: Nelze ��st z "%s"E231: volba 'guifontwide' je chybn� nastavenaE232: BalloonEval nelze vytvo�it se zpr�vou a z�rove� zp�tn�m vol�n�mE233: nelze otev��t displayE234: Nezn�m� sada p�sem: %sE235: Nelze na��st Zap font '%s'E235: Nelze pou��t font %sE235: Nezn�m� p�smo: %sE236: P�smo "%s" nem� pevnou ��kuE237: Nelze zvolit tisk�rnuE238: Chyba tisku: %sE239: Neplatn� text volby: %sE23: ��dn� alternativn� souborE240: Neexistuje p�ipojen� k Vim serveruE241: Nelze p�edat do %sE242: Nezn�m� jm�no barvy: %sE242: Chyb� barva: %sE243: Argument nepodporov�n: "-%s"; Pou�ijte OLE verzi.E244: Nep��pustn� jm�no znakov� sady "%s" ve fontu "%s"E245: Nep��pustn� znak '%c' ve fontu "%s"E246: FileChangedShell autocommand zru�il bufferE247: Neexistuje registrovan� server jm�nem "%s"E248: Selhalo zasl�n� p��kazu ur�en�mu programuE249: nelze ��st VIM instanci registry propertyE24: Takov� zkratka neexistujeE250: p�sma pro n�sleduj�c� znakov� sady chyb� v sad� p�sem %s:E251: VIM instance registry property byla �patn� vytvo�enaa byla smaz�na!E252: n�zev sady p�sem: %sE253: n�zev sady p�sem: %s
E254: nelze alokovat barvu %sE255: Chyba -- nelze p�e��st sign data!E255: Nastaveno p��li� mnoho volebE256: CYBA Hangul automatuE257: cstag: tag nenalezenE258: Nelze p�edat klientoviE259: cscope hled�n� %s vzorku %s nena�lo ��dnou shoduE25: Nelze pou��t GUI: nebylo zapnuto p�i p�ekladu programuE260: connection spojen� nenalezenoE261: connection spojen� %s nenalezenoE262: p�i �ten� cscope spojen� %dE263: Lituji, tento p��kaz je deaktivov�n; knihovnu jazyka Python nelze nahr�t.E264: Python: chyba p�i inicializaci I/O objekt�E266: Lituji, ale tento p��kaz je deaktivov�n; knihovnu jazyka Ruby nelze nahr�t.E26: nelze pou��t hebrejsk� re�im:  nebyl zapnut p�i p�ekladu programu
E273: nezn�m� longjmp stav %dE274: Sniff: Chyba p�i �ten�. OdpojenoE275: Nezn�m� po�adavek SNiFF+: %sE276: Chybn� p�ipojen� k SNiFF+E277: Nelze ��st odpov�� serveruE278: SNiFF+ nep�ipojenE279: Nen� SNiFF+ bufferE27: Nelze pou��t farsi re�im:  nebyl zapnut p�i p�ekladu programu
E280: TCL FATAL ERROR: reflist po�kozen!? Oznamte, pros�m, tuto chybu na vim-dev@vim.orgE281: TCL CHYBA: n�vratov� k�d nen� cel� ��slo!? Oznamte, pros�m, tuto chybu na vim-dev@vim.orgE282: Nelze ��st z "%s"E283: "%s" nevyhovuj� ��dn� zna�kyE284: Nelze nastavit IC hodnotyE285: Nepoda�ilo se vytvo�it vstupn� kontextE286: Nepoda�ilo se otev��t vstupn� metoduE287: Varov�n�: likvida�n� zp�tn� vol�n� nelze nastavit na IME288: vstupn� metoda nepodporuje ��dn� stylE289: vstupn� metoda nepodporuje m�j 'preedit' typE28: Skupina zv�razn�n� %s neexistujeE290: Nadbodov� styl vy�aduje fontsetE291: M�te GTK+ verze star�� ne� 1.2.3. Stavov� plocha vypnuta.E292: Server vstupn�ch metod neb��E293: blok nebyl zamknutE294: Chyba posunu ukazov�tka p�i �ten� odkl�dac�ho souboruE295: Chyba p�i �ten� odkl�dac�ho souboruE296: Chyba posunu ukazov�tka p�i ukl�d�n� do odkl�dac�ho souboruE297: Chyba p�i ukl�d�n� do odkl�dac�ho souboruE298: Nelze z�skat blok 0?E298: Nelze z�skat blok 1?E298: nelze z�skat blok 2?E29: Zat�m nen� ��dn� vlo�en� textE300: Odkl�dac� soubor ji� existuje! (N�kdo hackujep�es nastra�en� symlink?)E301: J�je, odkl�dac� soubor byl ztracen!!!E302: Nelze p�ejmenovat odkl�dac� souborE303: Nelze otev��t odkl�dac� soubor pro "%s"E304: ml_timestamp: nelze z�skat blok 0??E305: Odkl�dac� soubor pro %s nebyl nalezenE306: Nelze otev��t %sE307: %s se nezd� b�t odkl�dac�m souborem VimE308: Varov�n�: P�vodn� soubor mohl b�t zm�n�nE309: Nelze ��st blok 1 z %sE30: ��dn� p�edchoz� p��kazov� ��dkaE310: ID bloku 1 je chybn� (je %s odkl�dac�m souborem?)E311: Obnova p�eru�enaE312: V pr�b�hu obnovy do�lo k chyb�m; zkontrolujte ��dky za��naj�c� na ???E313: Nelze zachovat - odkl�dac� soubor neexistuje.E314: Uchov�n� se nezda�iloE315: ml_get: chybn� ��slo ��dku: %ldE316: ml_get: nelze nal�zt ��dek %ldE317: chybn� id ukazatele na blokE317: chybn� id ukazatele na blok 2E317: chybn� id ukazatele na blok 3E317: chybn� id ukazatele na blok 4E318: Aktualizov�no p��li� mnoho blok�?E319: P��kaz nen� t�to verzi bohu�el implementov�nE31: ��dn� takov� mapov�n�E320: Nelze nal�zt ��dek %ldE321: Nelze znovuotev��t "%s"E322: po�et ��dk� mimo rozsah: %ld > celkov� po�et ��dk�E323: chybn� po�et ��dk� v bloku %ldE324: Nelze otev��t v�stupn� PostScriptov� souborE325: POZORE326: P��li� mnoho odkl�dac�ch soubor�E327: ��sti cesty k p�edm�tu nab�dky nen� podnab�dkouE328: Nab�dka existuje pouze v jin�m m�duE329: Nab�dka tohoto jm�na neexistujeE32: ��dn� n�zev souboruE330: Cesta nab�dkou nesm� v�st do podnab�dkyE331: Polo�ky nab�dky nelze p�id�vat p��mo na li�tuE332: Odd�lova� nesm� b�t ��st� cesty nab�dkouE333: Cesta nab�dkou mus� v�st k polo�ce nab�dkyE334: Vzor nenalezen: %sE335: V %s m�du nen� nab�dka definov�naE336: Cesta nab�dkou mus� v�st do podnab�dkyE337: Nab�dka nenalezena - zkontrolujte n�zvy nab�dekE338: Lituji, ale konzolov� verze nepodporuje prohl�e� soubor�E339: Vzor je p��li� dlouh�E33: ��dn� p�edchoz� regul�rn� v�razE340: ��dek se st�v� p��li� dlouh�mE341: Vnit�n� chyba: lalloc(%ld, )E342: Nedostatek pam�ti! (pot�ebuji alokovat bajt�: %lu)E343: Chybn� cesta: '**[��slo] mus� b�t bu� na konci cesty, nebo mus� b�t n�sledov�no'%s. Viz :help path.E344: Adres� "%s" nelze v cdpath nal�ztE345: Soubor "%s" nelze v path nal�ztE346: ��dn� dal�� adres� "%s" nebyl v cdpath nalezenE347: ��dn� dal�� soubor "%s" nebyl v cest� nalezenE348: pod kurzorem nen� ��dn� �et�zecE349: pod kurzorem nen� ��dn� identifik�torE34: ��dn� p�edchoz� p��kazE350: pomoc� aktu�ln� 'foldmethod' nelze vytvo�it z�hybE351: pomoc� aktu�ln� 'foldmethod' nelze vytvo�it z�hybE352: pomoc� aktu�ln� 'foldmethod' nelze mazat z�hybyE353: Registr %s je pr�zdn�E354: '%s' nen� p��pustn� jm�no registruE355: Nezn�m� volba: %sE356: get_varp CHYBAE357: 'langmap': pro %s chyb� vyhovuj�c� znakE358: 'langmap': nadbyte�n� znaky po st�edn�ku: %sE359: Nastavov�n� re�imu obrazovky nen� podporov�noE35: ��dn� p�edchoz� regul�rn� v�razE360: Nelze spustit shell s parametrem -fE361: Zachyceno p�ete�en� z�sobn�ku: p��li� slo�it� regul�rn� v�raz?E363: vzorek zp�sobil p�ete�en� z�sobn�kuE364: Vol�n� knihovn� funkce "%s()" selhaloE365: Selhal tisk PostScriptov�ho souboruE366: Neplatn� 'osfiletype' - pou�it TextE367: Skupina "%s" neexistujeE36: Nedostatek m�staE371: P��kaz nen� k dispoziciE372: P��li� mnoho %%%c ve form�tovac�m �et�zciE373: Neo�ek�van� v�skyt %%%c ve form�tovac�m �et�zciE374: Ve form�tovac�m �et�zci chyb� ]E375: %%%c Nepodporovan� form�tov� specifikace ve form�tovac�m �et�zciE376: Nep��pustn� %%%c v prefixu form�tovac�ho �et�zceE377: Nep��pustn� %%%c ve form�tovac�m �et�zciE378: 'errorformat' neobsahuje ��dn� vzorekE379: Chyb�j�c� nebo pr�zdn� n�zev adres�eE37: Neulo�en� zm�ny (pou�ijte ! pro vynucen�)E380: Konec quickfix seznamuE381: Za��tek quickfix seznamuE382: Nelze ulo�it, je nastavena volba 'buftype'E383: Nep��pustn� hledan� �et�zec: %sE384: hledan� dos�hlo za��tku bez nalezen� %sE385: hledan� dos�hlo konce bez nalezen� %sE386: Po ';' o�ek�v�m '?' nebo '/'E387: Shoda je na aktu�ln�m ��dkuE388: Nelze nal�zt definiciE389: Nelze nal�zt vzorekE38: Nulov� argumentE390: nep��pustn� argument: %sE391: Syntaktick� sestava %s neexistujeE392: Syntaktick� sestava %s neexistujeE393: group[t]here nesm� b�t na tomto m�st�E394: Pro %s chyb� polo�ka regionuE395: obsahuje argumenty, kter� zde nejsou povolenyE396: obsahuje argumenty, kter� zde nejsou povolenyE397: Vy�adov�n n�zev souboruE398: Chyb� '=': %sE399: P��li� m�lo argument�: oblast syntaxe %sE39: O�ek�v�no ��sloE400: Nebyla zad�na ��dn� sestavaE401: Odd�lova� vzorku %s nenalezenE402: Chyba za vzorkem %sE403: synchronizace syntaxe: vzorek pokra�ov�n� ��dk� zad�n dvakr�tE404: nep��pustn� argument: %sE405: Chyb� rovn�tko: %sE406: Pr�zdn� argument: %sE407: %s zde nen� povolenoE408: %s mus� b�t prvn� v 'contains' seznamuE409: Nezn�m� n�zev skupiny: %sE40: Nelze otev��t chybov� soubor %sE410: chybn� pod�azen� p��kaz :syntax : %s E411: skupina zv�razn�n� %s nebyla nalezenaE412: P��li� m�lo argument�: ":highlight link %s"E413: P��li� mnoho argument�: ":highlight link %s"E414: skupina je nastavena, odkaz na zv�raz�ovac� skupinu ignorov�nE415: ne�ekan� rovn�tko : %sE416: chybn� rovn�tko: %sE417: chyb� argument: %sE418: nep��pustn� hodnota: %sE419: barva pop�ed� nen� zn�m�E41: Nedostatek pam�ti!E420: barva pop�ed� nen� zn�m�E421: n�zev �i ��slo barvy %s nebylo rozpozn�noE422: termin�lov� k�d %s je p��li� dlouh�E423: nep��pustn� argument: %sE424: Je pou��v�no p��li� velk� mno�stv� odli�n�ch zv�raz�ovac�ch atribut�E425: P�ed prvn� vyhovuj�c� tag nelze p�esko�itE426: tag %s nenalezenE427: Vyhovuje pouze jeden tagE428: Za posledn� vyhovuj�c� tag nelze p�esko�itE429: "%s" neexistujeE42: ��dn� chybyE430: Soubor tag� %s byl o�ez�n
E431: Chyba form�tu v souboru tag� "%s"E432: Obsah soubor tag� %s nen� se�azenE433: ��dn� soubor tag�E434: Nelze naj�t vzorek tag�E435: Tag nelze nal�zt, pouze h�d�m!E436: Termcap neobsahuje polo�ku pro "%s"E437: Termin�l mus� m�t schopnost "cm"E438: u_undo: ��sla ��dk� jsou chybn�E439: z�znam o zm�n�ch po�kozenE43: Po�kozen� �et�zec pro vyhled�v�n�E440: chyb� undo ��dekE441: Nen� ��dn� preview okno nen�E442: Okno nelze rozd�lit z�rove� topleft a botrightE443: Nelze rotovat, pokud je jin� okno rozd�lenoE444: Posledn� okno nelze uzav��tE445: Jin� okno obsahuje zm�nyE446: Pod kurzorem se nenach�z� n�zev souboruE447: Soubor "%s" nelze v path nal�ztE44: po�kozen� regexp programE455: Nelze zapisovat do v�stupn�ho PostScriptov�ho souboruE456: Nelze otev��t soubor "%s"E457: Nelze ��st zdrojov� PostScriptov� soubor "%s"E45: 'nastavena volba 'readonly' (pou�ijte ! pro vynucen�)E46: Nelze nastavit pouze_pro_�ten� prom�nnou "%s"E47: Chyba p�i �ten� chybov�ho souboruE48: Nen� v bezpe�nostn� schr�nce povolenoE49: Chybn� hodnota volby 'scroll'E61: %s*E62: %s%cE64: %s%c nic nen�E72: Chyba p�i uzav�r�n� odkl�dac�ho souboruE73: seznam tag� je pr�zdn�E74: P��kaz je p��li� slo�it�E75: N�zev je p��li� dlouh�E76: p��li� mnoho [E77: P��li� mnoho n�zv� soubor�E78: Nezn�m� zna�kaE79: Nelze expandovat �ol�kov� znakyE80: Chyba p�i ukl�d�n�E81: Pou�it� <SID> mimo kontext skriptuE82: Nelze alokovat ��dn� buffer, kon��m...E83: Nelze alokovat buffer, pou�iji jin�...E84: Nebyl nalezen ��dn� zm�n�n� bufferE85: Seznam buffer� je pr�zdn�E86: Nelze p�esko�it na buffer %ldE87: Za posledn� buffer nelze p�esko�itE88: P�ed prvn� buffer nelze p�esko�itE89: Zm�ny v bufferu %ld nebyly ulo�eny (! pro vynucen�)E90: Posledn� buffer nelze deaktivovatE91: volba 'shell' je pr�zdn�E92: Buffer %ld nenalezenE93: Vzoru %s vyhovuje v�ce buffer�E94: Vzoru %s nevyhovuje ��dn� bufferE95: Buffer tohoto jm�na ji� existujeE96: Nelze p�ekro�it maxim�ln� po�et %ld diff buffer�E97: Nelze vytvo�it diffyE98: Nelze ��st v�stup programu diffE99: Aktu�ln� buffer nen� v diff re�imuCHYBA: Editovat souborEditovat soubor v nov�m okn�Editace &Vim -emEditace &multiple VimyEditace existuj�c�m Vimem - &Editace jedn�m $Vim -emEditace vybran�ch soubor� VimemPr�zdn� n�zev souboru pro '%' �i '#' funguje pouze s ":p:h"Konec funkceKonec interpretovan�ho souboruZadejte �ifrovac� kl��: Zadejte ��slo (<CR> pro ukon�en�): Zadejte ��slo odkl�dac�ho souboru, kter� se m� pou��t (0 pro ukon�en�): Zadejte je�t� jednou tent�� kl��:Spou�t�m lad�c� re�im. Pro ukon�en� napi�te "cont".Spou�t�m Ex m�d. Napi�te "visual" pro n�vrat do norm�ln�ho m�du.ChybaChyba p�i spou�t�n� procesu: Zkontrolujte zdali je gvim v $PATH!Chyba p�i zpracov�n� %s:V�sledkem vyhodnocen� je pr�zdn� �et�zecspou�t�m %sv�raz�Vn�j�� pod�azen� shody:
Soubor "%s" neexistujeSoubor zachov�nSouboryFiltrNaj�t & Nahradit (pou�ijte '\\' k nalezen� '\')Naj�t dal��Naj�t �et�zec (pou�ijte '\\' k nalezen� '\')Naj�t symbolVyhledat:P�smo '%s' nem� pevnou ��kuV�b�r p�sma��ka p�sma%d nen� dvojn�soblem ��ky p�sma0
��ka p�sma0: %ld
P�smo0: %s
��ka p�sma1: %ld

P�smo1: %s
Chyby za volbouGenerov�na dokumentace proBlahop�eji, u�ivateli Vimu!N�pov�daPomozte chud�m d�tem v Ugand�!Pro pokra�ov�n� stiskn�te ENTER nebo zadejte p��kazpokra�ov�n� stiskem ENTERKonec odstavceI/O CHYBANep��pustn� znak <%s>Nep��pustn� znak po <%c>nep��pustn� sou��stnep��pustn� n�zev souborunep��pustn� m�dChybn� tvar my�inep��pustn� procentonep��pustn� n�zev registruNep��pustn� po��te�n� znakvstupn� ��dkyVnit�n� chybaP�eru�en�: P�eru�enoChybn� argumentChybn� argument proChybn� argument: %sChybn� p��kazChybn� p�smachybn� sada p�semPou�it chybn� id serveru: %sChybn� �irok� p�smoSoubor s mapou kl�vesnice nebyl nalezenKl��e se neshoduj�Ukon�it spojen�Line�rn� hled�n� taguLinkuji: hledat pouze cel� slovaSpr�vce zpr�v: Bram Moolenaar <Bram@vim.org>Chyb� '>'Chyb� dvojte�kaChyb� ��rkaPo <%s> chyb� ��sloJe nutn� zadat hodnotu 'Vy�aduje %s verze %ld
Vy�aduje Amigados verze 2.04 nebo vy���
minim�ln� pot�ebn� po�et sloupc�: %dminim�ln� pot�ebn� po�et ��dk�: %d! nen� povolenoPro tento buffer nejsou definov�ny ��dn� p�edm�ty syntaxe��dn� zkratka nebyl nalezenaNebyly definov�nu ��dn� body p�eru�en���dn� buffer nebyl smaz�n��dn� buffer nebyl deaktivov�n��dn� buffer nebyl zahozen��dn� z�hyb nebyl nalezen��dn� vlo�en� soubory��dn� mapov�n� nebylo nalezenoNejsou nastaveny ��dn� zna�ky��dn� shoda��dn� shoda: %s��dn� vyhovuj�c� automatick� p��kazy��dn� dal�� polo�kyBez podpory my�iRozsah nen� povolen��dn� odkl�dac� soubor��dn� text k vyti�t�n�odstran�n� zm�n nen� mo�n�; chcete p�esto pokra�ovatNebyly nalezeny ��dn� u�ivatelsky definovan� p��kazyChybn� k�dov� str�nkaToto zde nen� povolenoNen� v modeline povolenoNen� p��kazem editoruNenalezen v termcapuPo = je vy�adov�no ��sloOKDialog pro otev�r�n� soubor�Otev�en� X displeje se nezda�iloVypr�el �as p�i �ek�n� na otev�en� X displejeDoba otev�r�n� X displeje (v ms): %ldVolba nen� podporov�naP�vodn� soubor "%s"P�epsat soubor "%.*s"?Soubor se z�platouN�zev (v path) je p��li� dlouh�N�zev cesty:Vzor nalezen na ka�d�m ��dku: %sVzor nenalezenVzor nenalezen: %sTiskov� �loha odesl�na.Vyti�t�no: %sVyti�t�no '%s'Tisk zru�enTisknu stranu %d (%d%%)Hled�n� vzorkuOt�zka�tu ze standardn�ho vstupu...�tu viminfo soubor "%s"%s%s%sObnova dokon�ena. Zkontrolujte, zda je v�e v po��dku.Znovu inicializovat v�echna spojen�NahraditNahradit v�eNov� text:Znovuz�sk�noZnovz�sk�no ze v�ech projekt�Znovuz�sk�no ze souboruZnovuz�sk�no z projektuSpustit makroB��m v re�imu kompatibility s ViSNiFF+ je pr�v� Ulo�it jakoDialog pro ukl�d�n� soubor�Ulo�it p�esm�rov�n�Ulo�it sezen�Ulo�it nastaven�Ulo�it pohledUlo�it zm�ny do "%.*s"?Prohled�v�m slovn�k %sProhled�v�m vlo�en� soubory: %sProhled�v�m tagyProhled�v�m %sP��pravek posunovac� li�ty: nelze zjistit geometrii obr�zkuvyhled�van�ch �et�zc�Hled�m "%s"Hled�m "%s" v "%s"Prohled�v�m soubor tag� %sVybr�no %s%ld z %ld ��dk�; %ld z %ld slov; %ld z %ld Byt�V�b�rP�ed�n� v�razu selhalo.
Odes�l�m na tisk�rnu...Zobrazen� base class zZobrazen� class v hierarchiiZobrazen� class v restricted hierarchiiZobrazit spojen�Zobrazen� documentaceZobrazen� overridden member funkceZobrazen� zdrojeZobrazit tuto zpr�vuZnaky pro %s:Sniff: Chyba p�i z�pisu. Odpojeno.Lituji, soubor "%s" s n�pov�dou nebyl nalezenLituji, ale tento p��kaz je deaktivov�n; knihovnu jazyka Tcl nelze nahr�t.N�r�st velikosti z�sobn�kuOdkl�dac� soubor "Odkl�dac� soubor ji� existuje!Nalezen� odkl�dac� soubory:Chyba syntaxe v %s{...}Odtrhnout tuto nab�dkuTermcap neobsahuje polo�ku pro tento termin�lTerminfo neobsahuje polo�ku pro tento termin�lTest X displeje se nezda�ilD�kuji za pou�it� VimSoubor byl vytvo�en Jedin� shoda'Resource fork' bude ztracen (pou�ijte ! pro vynucen�)VIM nebyl p�elo�en s volbou +diffTento cscope p��kaz nepodporuje rozd�len� okna.
Prohozen� implementace/definiceP��li� mnoho "+p��kaz" �i "-c p��kaz" argument�P��li� mnoho edit argument�Za��tekNadbyte�n� znaky na konciNelze ��st blok 0 z Nen� mo�n� zaznamenat jm�no command serveruneuzav�en� sekvence v�raz�Zp�tNezn�m�Nezn�m� volba%d nen� zn�m�m typem registruNepojmenov�noNahoruPou�it�: cstag <odsazen�>Pou�ijte "gui" pro spu�t�n� GUIPou�ijte Vim verze 3.0.
Pou�ijte w �i w>>M�sto pr�dn� schr�nky pou�ito CUT_BUFFER0Pou��v�m odkl�dac� soubor "%s"VIM - POZORVIM - Nal�zt a nahradit...VIM - Nal�zt...VIM - Vi IMprovedChyba VIMuVIM: Nelze otev��t nov� okno!
VIMRUN.EXE se nevyskytuje ve Va�� $PATH.
Extern� p��kazy nebudou
See  :help win32-vimrun  for more information.Vim E458: nelze alokovat polo�ku barevn� mapy. N�kter� barvy mohou b�t nespr�vn�Varov�n�Vim dialogVim dialog..Vim bude ukon�en %d
Vim je voln� �i�iteln� program s otev�en�m zdrojov�m k�demVim: Zachycen %s sign�l
Vim: Zachycen smrteln� sign�l
Vim: Zachycen smrteln� sign�l %s
VIm: dvojit� sign�l, kon��m
Vim: chyba p�i �ten� vstupu, kon��m...
Vim: ukon�en
Vim: �tu ze standardn�ho vstupu...
Vim: Varov�n�: vstup nepoch�z� z termin�lu
Vim: Varov�n�: v�stup nesm�uje na termin�l
Vim: zachov�v�m soubory...
W10: wc1: m�n�m soubor pouze_pro_�ten�W11: wc2: soubor "%s" byl po po��tku editace zm�n�nW12: Varov�n�: soubor "%s" byl po po��tku editace zm�n�n a buffer ve Vim tak�W13: wc4: po po��tku editace vytvo�en soubor "%s"W14: Varov�n�: p�ete�en� seznamu s n�zvy soubor�W15: Varov�n�: chybn� odd�lova� ��dk�. Mo�n� chyb� ^M.W16: Varov�n�: M�d souboru "%s" byl zm�n�n od zapo�nut� editaceVAROV�N�: od jeho na�ten� byl obsah souboru zm�n�n!!!!VAROV�N�: detekov�ny Windows 95/98/MEVarov�n�Varov�n�: Ne�ekan� vstup do jin�ho bufferu (zkontrolujte automatick� p��kazy)Varov�n�: termin�l nepodporuje zv�raz�ov�n�P�i otev�r�n� souboru"Um�st�n� okna: X %d, Y %dSlovo z jin�ho ��dkuUlo�it ne�pln� soubor?Ukl�d�m viminfo souboru "%s"Xref m�Xref odkazoval naXref odkazuje naXref pou�itANONulov� po�et�et�zec o nulov� d�lce[CHYBA P�EVODU][chyb� CR][Vymaz�no][za��zen�][seznam chyb][ne�pln� posledn� ��dek][nalezeno NL][nezkonvertov�n][nov� soubor][Nov� soubor][Nov�][��dn� soubor][��dn� soubor][Neulo�en� zm�ny]
[Needitovan�][p��stup odm�tnut][n�hled][CHYBY �TEN�][RO][Chyby p�i �ten�][vol�n�] celkem re/malloc(): %lu, celkem free() %lu

[zkonvertov�n][za�ifrov�n][dos form�t][dos][pojmenovan� roura/soket][pojmenovan� roura][SOUBOR] ..          editovat SOUBOR(y)[n�pov�da][dlouh� ��dky zalomeny][mac form�t][mac][��dn� eol][Pouze pro �ten�][soket][p��li� dlouh� �et�zec][unix form�t][unix]a kontrolu zm�n pomoc� programu diff.)
konec seznamu tag�za��tek seznamu tag�pokus o odkaz na smazan� bufferpokus o odkaz na smazan� oknoAutomatick� p��kaz %s Autor: Bram Moolenaar a dal��vol�m %snelze smazat atributy OutputObjectnelze ��st v�stup 'charconvert'nelze vybrat sadu p�semnelze vybrat �irok� fontNelze zm�nit m�d konzole ?!
nelze vytvo�it p��kaz bufferu/okna: objekt smaz�nnelze smazat ��deknelze p�e��st ��deknelze vlo�it ��deknelze vlo�it/p�ipojit ��deknelze otev��t nelze zaregistrovat p��kaz zp�tn�ho vol�n�: buffer/okno ji� bylo smaz�nonelze zaregistrovat p��kaz zp�tn�ho vol�n�: odkaz na buffer/okno nenalezennelze nahradit ��deknelze ulo�it informace pro p��kaz undonelze nastavit ��dkynelze kop�rovat; p�esto smaz�nozav��tp��kaz: %sje nutn� ��rkap�ipojenobsahuje netisknuteln� znakypokra�uji v %snelze interpretovat "%s"vol�n� malloc selhalo
spu�t�n� cs_create_connection selhalocs_create_connection: vol�n� fdopen pro fr_fp selhalocs_create_connection: vol�n� fdopen pro to_fp selhalop��kazy cscope:
cscope spojen� %s uzav�eno
closed spojen� uzav�enoum�st�n� kurzoru mimo bufferimplicitn� termin�l 'smaz�n blok 1?o�ek�v�na ��sliceneukon�ujte editor d��ve, ne� bude soubor �sp�n� ulo�en!duplicitn� cscope datab�ze nebyla p�id�naseznam chyb %d z %d; po�et chyb: %dchyba p�i �ten� cscope spojen� %dpodpora v�raz� byla vypnuta p�i p�ekladu programuosudov� chyba v cs_manage_matchessoubor
n�zev souboru/ kontext/ ��dek
dokon�ena interpretace %spo�et uvol�ovan�ch ��dk�: %ldfunkce chyba gvimext.dlln�pov�dav cest� ---
chybn� atributchybn� n�zev bufferuChybn� v�razchybn� jm�no zna�kyje adres�emnen� souboremnen� souborem ani za��zen�m na n� lze zapisovatje pouze pro �ten� (pou�ijte ! pro vynucen�)p�eru�en� z kl�vesnice��dek %4ld:��dek %ld��dek %ld/%ld --%d%%-- sloupec��dek %ld: %s��dek %ld: nelze interpretovat "%s"��dek %ld: interpretuji %s��slo ��dku mimo rozsahlogoffzna�ka nen� nastavenashoda %dshoda %d/%dmaxim�ln� dosa�en maxim�ln� po�et cscope spojen�mch_get_shellsize: neni konzole??
minim�ln� spu�t�n nov� shell
ne��dn� interpretovan� soubor, kter�m by bylo mo�n� nahradit "<sfile>"��dn� ��slo bufferu, kter�m by bylo mo�n� nahradit "<abuf>"��dn� n�zev souboru, kter�m by bylo mo�n� nahradit "<afile>"��dn� shoda automatick�ch p��kaz�, kterou by bylo mo�n� nahradit "<amatch>"��dn� cscope spojen���dn� cscope spojen�
��dn� takov� buffer��dn� takov� okno��dn� synchronizacene  nenalezenysoubor "%s" nebyl nalezen v 'runtimepath'nen� je�t� podporov�nope_line_count m� nulovou hodnotupre-vimrc p��kazov� ��dekatribut pouze_pro_�ten�nahr�v�mnahradit za %s (y/n/a/q/l/^E/^Y)?��dek %d sloupec %dhled�n� dos�hlo konce, pokra�ov�n� od za��tkuhled�n� dos�hlo za��tku, pokra�ov�n� od konceshell n�vratov� hodnota shellu %dshutdownsoftspace mus� b�t kladn� cel� ��slointerpretuji "%s"stack_idx by m�lo m�t hodnotu 3stat(%s) chyba: %d�et�zec nesm� obsahovat znaky nov�ho ��dkusynchronizuji koment�e v C stylusynchronizace za��n� tag %d z celkov�ho po�tu %d%sjm�no tagudo %s v %sp��li� mnoho polo�ekpodrobn�j�� informace z�sk�te pomoc� :help cp-default<Enter>podrobn�j�� informace z�sk�te pomoc� :help iccf<Enter>zadejte :help version8<Enter>  pro informace o verzi 6zadejte :help windows95<Enter> pro podrobn�j�� informacezadejte :help<Enter>  �i <F1> pro n�pov�duzadejte :q<Enter>             pro ukon�en� programuzadejte :set nocp<Enter>     pro implicitn� nastaven� Vimnevyv�en� skupinynezn�m� typ cscope hled�n�nezn�m� p��znak: nezn�m� volbanezn�m� vimOptionverze chyba vimvim_SelFile: nelze zjistit aktu�ln� adres�vim_SelFile: p�smo %s nen� dostupn�vim_SelFile: nelze se vr�tit do aktu�ln�ho adres�eviminfo: %s na ��dku: s (clasick�m) grafick�m rozhran�ms rozhran�m BeOSs grafick�m rozhran�m Carbons grafick�m rozhran�m Cocoas rozhran�m GTKs rozhran�m GTK-GNOMEs grafick�m rozhran�ms rozhran�m PhotonS rozhran�m X11-Athenas rozhran�m X11-Motifbez grafick�ho rozhran�chyba p�i ukl�d�n� (je voln� m�sto na disku?)chyba p�i z�pisu, konverze se nezda�ilawritelines() vy�aduje seznam �et�zc�PK�j�Z�U�jAjAvim80/lang/menu_ru_ru.vimnu�[���" Menu Translations:	Russian
" Maintainer:		Sergey Alyoshin <alyoshin.s@gmail.com>
" Previous Maintainer:	vassily ragosin <vrr[at]users.sourceforge.net>
" Last Change:		29 May 2013
" URL:			cvs://cvs.sf.net:/cvsroot/ruvim/extras/menu/menu_ru_ru.vim
"
" $Id: menu_ru_ru.vim,v 1.1 2004/06/13 16:09:10 vimboss Exp $
"
" Adopted for RuVim project by Vassily Ragosin.
" First translation: Tim Alexeevsky <realtim [at] mail.ru>,
" based on ukrainian translation by Bohdan Vlasyuk <bohdan@vstu.edu.ua>
"
"
" Quit when menu translations have already been done.
"
if exists("did_menu_trans")
   finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim

scriptencoding utf-8

" Top
menutrans &File				&Файл
menutrans &Edit				П&равка
menutrans &Tools			&Инструменты
menutrans &Syntax			&Синтаксис
menutrans &Buffers			&Буферы
menutrans &Window			&Окно
menutrans &Help				С&правка
"
"
"
" Help menu
menutrans &Overview<Tab><F1>		&Обзор<Tab><F1>
menutrans &User\ Manual			Руково&дство\ пользователя
menutrans &How-to\ links		&Как\ это\ сделать\.\.\.
menutrans &Find\.\.\.			&Поиск
"--------------------
menutrans &Credits			&Благодарности
menutrans Co&pying			&Распространение
menutrans &Sponsor/Register		Помо&щь/Регистрация
menutrans O&rphans			&Сироты
"--------------------
menutrans &Version			&Информация\ о\ программе
menutrans &About			&Заставка
"
"
" File menu
menutrans &Open\.\.\.<Tab>:e		&Открыть\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp	По&делить\ окно\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew	Открыть\ в&кладку\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew		&Новый<Tab>:enew
menutrans &Close<Tab>:close		&Закрыть<Tab>:close
"--------------------
menutrans &Save<Tab>:w			&Сохранить<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav	Сохранить\ &как\.\.\.<Tab>:sav
"--------------------
menutrans Split\ &Diff\ with\.\.\.	Ср&авнить\ с\.\.\.
menutrans Split\ Patched\ &By\.\.\.	Сравнить\ с\ применением\ зап&латки\.\.\.
"--------------------
menutrans &Print			На&печатать
menutrans Sa&ve-Exit<Tab>:wqa		Вы&ход\ с\ сохранением<Tab>:wqa
menutrans E&xit<Tab>:qa			&Выход<Tab>:qa
"
"
" Edit menu
menutrans &Undo<Tab>u			О&тменить<Tab>u
menutrans &Redo<Tab>^R			В&ернуть<Tab>^R
menutrans Rep&eat<Tab>\.		Повторит&ь<Tab>\.
"--------------------
menutrans Cu&t<Tab>"+x			&Вырезать<Tab>"+x
menutrans &Copy<Tab>"+y			&Копировать<Tab>"+y
menutrans &Paste<Tab>"+gP		Вк&леить<Tab>"+gP
menutrans Put\ &Before<Tab>[p		Вклеить\ пере&д<Tab>[p
menutrans Put\ &After<Tab>]p		Вклеить\ по&сле<Tab>]p
menutrans &Delete<Tab>x			&Удалить<Tab>x
menutrans &Select\ All<Tab>ggVG		В&ыделить\ всё<Tab>ggVG
"--------------------
" Athena GUI only
menutrans &Find<Tab>/			&Поиск<Tab>/
menutrans Find\ and\ Rep&lace<Tab>:%s	Поиск\ и\ &замена<Tab>:%s
" End Athena GUI only
menutrans &Find\.\.\.<Tab>/		&Поиск\.\.\.<Tab>/
menutrans Find\ and\ Rep&lace\.\.\.	Поиск\ и\ &замена\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.<Tab>:%s	Поиск\ и\ &замена\.\.\.<Tab>:%s
menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s	Поиск\ и\ &замена\.\.\.<Tab>:s
"--------------------
menutrans Settings\ &Window		Окно\ настройки\ &опций
menutrans Startup\ &Settings		Настройки\ запус&ка
menutrans &Global\ Settings		&Глобальные\ настройки
menutrans F&ile\ Settings		Настройки\ &файлов
menutrans C&olor\ Scheme		&Цветовая\ схема
menutrans &Keymap			Раскладка\ кл&авиатуры
menutrans Select\ Fo&nt\.\.\.		Выбор\ &шрифта\.\.\.
">>>----------------- Edit/Global settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Подсветка\ &найденных\ соответствий<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		&Регистронезависимый\ поиск<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Показывать\ парные\ &элементы<Tab>:set\ sm!
menutrans &Context\ lines				Стр&ок\ вокруг\ курсора
menutrans &Virtual\ Edit				Вир&туальное\ редактирование
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Режим\ &Вставки<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		&Совместимость\ с\ Vi<Tab>:set\ cp!
menutrans Search\ &Path\.\.\.				&Путь\ для\ поиска\ файлов\.\.\.
menutrans Ta&g\ Files\.\.\.				Файлы\ &меток\.\.\.
"
menutrans Toggle\ &Toolbar				&Инструментальная\ панель
menutrans Toggle\ &Bottom\ Scrollbar			Полоса\ прокрутки\ вни&зу
menutrans Toggle\ &Left\ Scrollbar			Полоса\ прокрутки\ с&лева
menutrans Toggle\ &Right\ Scrollbar			Полоса\ прокрутки\ спр&ава
">>>->>>------------- Edit/Global settings/Virtual edit
menutrans Never						Выключено
menutrans Block\ Selection				При\ выделении\ блока
menutrans Insert\ mode					В\ режиме\ Вставки
menutrans Block\ and\ Insert				При\ выделении\ блока\ и\ в\ режиме\ Вставки
menutrans Always					Включено\ всегда
">>>----------------- Edit/File settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	&Нумерация\ строк<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!	Относите&льная\ нумерация\ строк<Tab>:set\ nru!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Отобра&жение\ невидимых\ символов<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		&Перенос\ длинных\ строк<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Перенос\ &целых\ слов<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!		Про&белы\ вместо\ табуляции<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Автоматическое\ форматирование\ &отступов<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Форматирование\ отступов\ в\ &стиле\ C<Tab>:set\ cin!
">>>---
menutrans &Shiftwidth					Вели&чина\ отступа
menutrans Soft\ &Tabstop				Ширина\ &табуляции
menutrans Te&xt\ Width\.\.\.				&Ширина\ текста\.\.\.
menutrans &File\ Format\.\.\.				&Формат\ файла\.\.\.
"
"
"
" Tools menu
menutrans &Jump\ to\ this\ tag<Tab>g^]			&Переход\ к\ метке<Tab>g^]
menutrans Jump\ &back<Tab>^T				&Вернуться\ назад<Tab>^T
menutrans Build\ &Tags\ File				Создать\ &файл\ меток
"-------------------
menutrans &Folding					Работа\ со\ &складками
menutrans &Spelling					Пр&авописание
menutrans &Diff						&Отличия\ (diff)
"-------------------
menutrans &Make<Tab>:make				Ко&мпиляция<Tab>:make
menutrans &List\ Errors<Tab>:cl				Список\ о&шибок<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl!			Список\ все&х\ ошибок\ и\ предупреждений<Tab>:cl!
menutrans &Next\ Error<Tab>:cn				Следу&ющая\ ошибка<Tab>:cn
menutrans &Previous\ Error<Tab>:cp			П&редыдущая\ ошибка<Tab>:cp
menutrans &Older\ List<Tab>:cold			Более\ стар&ый\ список\ ошибок<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew			Более\ све&жий\ список\ ошибок<Tab>:cnew
menutrans Error\ &Window				Ок&но\ ошибок
menutrans Se&T\ Compiler				Выбор\ &компилятора
"-------------------
menutrans &Convert\ to\ HEX<Tab>:%!xxd			П&еревести\ в\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r			Перевести\ и&з\ HEX<Tab>:%!xxd\ -r
">>>---------------- Tools/Spelling
menutrans &Spell\ Check\ On				&Вкл\ проверку\ правописания
menutrans Spell\ Check\ &Off				Вы&кл\ проверку\ правописания
menutrans To\ &Next\ error<Tab>]s			&Следующая\ ошибка
menutrans To\ &Previous\ error<Tab>[s			&Предыдущая\ ошибка
menutrans Suggest\ &Corrections<Tab>z=			Предложить\ исп&равления
menutrans &Repeat\ correction<Tab>:spellrepall		Пов&торить\ исправление\ для\ всех
"-------------------
menutrans Set\ language\ to\ "en"			Установить\ язык\ "en"
menutrans Set\ language\ to\ "en_au"			Установить\ язык\ "en_au"
menutrans Set\ language\ to\ "en_ca"			Установить\ язык\ "en_ca"
menutrans Set\ language\ to\ "en_gb"			Установить\ язык\ "en_gb"
menutrans Set\ language\ to\ "en_nz"			Установить\ язык\ "en_nz"
menutrans Set\ language\ to\ "en_us"			Установить\ язык\ "en_us"
menutrans &Find\ More\ Languages			&Найти\ больше\ языков
let g:menutrans_set_lang_to =				'Установить язык'
">>>---------------- Folds
menutrans &Enable/Disable\ folds<Tab>zi			Вкл/выкл\ &складки<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv			Открыть\ строку\ с\ &курсором<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Открыть\ &только\ строку\ с\ курсором<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm			Закрыть\ &больше\ складок<Tab>zm
menutrans &Close\ all\ folds<Tab>zM			Закрыть\ &все\ складки<Tab>zM
menutrans &Open\ all\ folds<Tab>zR			Откр&ыть\ все\ складки<Tab>zR
menutrans O&pen\ more\ folds<Tab>zr			Отк&рыть\ больше\ складок<Tab>zr
menutrans Fold\ Met&hod					&Метод\ складок
menutrans Create\ &Fold<Tab>zf				Со&здать\ складку<Tab>zf
menutrans &Delete\ Fold<Tab>zd				У&далить\ складку<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD			Удалить\ вс&е\ складки<Tab>zD
menutrans Fold\ col&umn\ width				&Ширина\ колонки\ складок
">>>->>>----------- Tools/Folds/Fold Method
menutrans M&anual					Вру&чную
menutrans I&ndent					О&тступ
menutrans E&xpression					&Выражение
menutrans S&yntax					&Синтаксис
menutrans Ma&rker					&Маркеры
">>>--------------- Tools/Diff
menutrans &Update					О&бновить
menutrans &Get\ Block					Изменить\ &этот\ буфер
menutrans &Put\ Block					Изменить\ &другой\ буфер
">>>--------------- Tools/Diff/Error window
menutrans &Update<Tab>:cwin				О&бновить<Tab>:cwin
menutrans &Close<Tab>:cclose				&Закрыть<Tab>:cclose
menutrans &Open<Tab>:copen				&Открыть<Tab>:copen
"
"
" Syntax menu
"
menutrans &Show\ filetypes\ in\ menu			Показать\ меню\ для\ выбора\ типа\ &файла
menutrans Set\ '&syntax'\ only				&Изменять\ только\ значение\ 'syntax'
menutrans Set\ '&filetype'\ too				Изменять\ &также\ значение\ 'filetype'
menutrans &Off						&Отключить
menutrans &Manual					Вру&чную
menutrans A&utomatic					&Автоматически
menutrans on/off\ for\ &This\ file			Вкл/выкл\ для\ &этого\ файла
menutrans Co&lor\ test					Проверка\ &цветов
menutrans &Highlight\ test				Проверка\ под&светки
menutrans &Convert\ to\ HTML				С&делать\ HTML\ с\ подсветкой
"
"
" Buffers menu
"
menutrans &Refresh\ menu				О&бновить\ меню
menutrans Delete					У&далить
menutrans &Alternate					&Соседний
menutrans &Next						С&ледующий
menutrans &Previous					&Предыдущий
menutrans [No\ File]					[Нет\ файла]
"
"
" Window menu
"
menutrans &New<Tab>^Wn					&Новое\ окно<Tab>^Wn
menutrans S&plit<Tab>^Ws				&Разделить\ окно<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^			Открыть\ &соседний\ файл\ в\ новом\ окне<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv			Разделить\ по\ &вертикали<Tab>^Wv
menutrans Split\ File\ E&xplorer			Открыть\ проводник\ по\ &файловой\ системе
"
menutrans &Close<Tab>^Wc				&Закрыть\ это\ окно<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo			Закрыть\ &остальные\ окна<Tab>^Wo
"
menutrans Move\ &To					&Переместить
menutrans Rotate\ &Up<Tab>^WR				Сдвинуть\ ввер&х<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr				Сдвинуть\ в&низ<Tab>^Wr
"
menutrans &Equal\ Size<Tab>^W=				О&динаковый\ размер<Tab>^W=
menutrans &Max\ Height<Tab>^W_				Максимальная\ в&ысота<Tab>^W_
menutrans M&in\ Height<Tab>^W1_				Минимальная\ высо&та<Tab>^W1_
menutrans Max\ &Width<Tab>^W\|				Максимальная\ &ширина<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\|				Минимал&ьная\ ширина<Tab>^W1\|
">>>----------------- Window/Move To
menutrans &Top<Tab>^WK					В&верх<Tab>^WK
menutrans &Bottom<Tab>^WJ				В&низ<Tab>^WJ
menutrans &Left\ side<Tab>^WH				В&лево<Tab>^WH
menutrans &Right\ side<Tab>^WL				В&право<Tab>^WL
"
"
" The popup menu
"
"
menutrans &Undo						О&тменить
menutrans Cu&t						&Вырезать
menutrans &Copy						&Копировать
menutrans &Paste					Вк&леить
menutrans &Delete					&Удалить
menutrans Select\ Blockwise				Блоковое\ выделение
menutrans Select\ &Word					Выделить\ &слово
menutrans Select\ &Line					Выделить\ ст&року
menutrans Select\ &Block				Выделить\ &блок
menutrans Select\ &All					В&ыделить\ &всё
"
" The GUI toolbar
"
if has("toolbar")
  if exists("*Do_toolbar_tmenu")
    delfun Do_toolbar_tmenu
  endif
  fun Do_toolbar_tmenu()
    tmenu ToolBar.Open					Открыть файл
    tmenu ToolBar.Save					Сохранить файл
    tmenu ToolBar.SaveAll				Сохранить все файлы
    tmenu ToolBar.Print					Напечатать
    tmenu ToolBar.Undo					Отменить
    tmenu ToolBar.Redo					Вернуть
    tmenu ToolBar.Cut					Вырезать
    tmenu ToolBar.Copy					Копировать
    tmenu ToolBar.Paste					Вклеить
    tmenu ToolBar.Find					Поиск...
    tmenu ToolBar.FindNext				Поиск следующего соответствия
    tmenu ToolBar.FindPrev				Поиск предыдущего соответствия
    tmenu ToolBar.Replace				Заменить...
    tmenu ToolBar.LoadSesn				Загрузить сеанс редактирования
    tmenu ToolBar.SaveSesn				Сохранить сеанс редактирования
    tmenu ToolBar.RunScript				Выполнить сценарий Vim
    tmenu ToolBar.Make					Компиляция
    tmenu ToolBar.Shell					Оболочка
    tmenu ToolBar.RunCtags				Создать файл меток
    tmenu ToolBar.TagJump				Перейти к метке
    tmenu ToolBar.Help					Справка
    tmenu ToolBar.FindHelp				Найти справку
  endfun
endif
"
"
" Dialog texts
"
" Find in help dialog
"
let g:menutrans_help_dialog = "Введите команду или слово для поиска:\n\nДобавьте i_ для поиска команд режима Вставки (например, i_CTRL-X)\nДобавьте c_ для поиска команд Обычного режима (например, с_<Del>)\nДобавьте ' для поиска справки по опции (например, 'shiftwidth')"
"
" Searh path dialog
"
let g:menutrans_path_dialog = "Укажите путь для поиска файлов.\nИмена каталогов разделяются запятыми."
"
" Tag files dialog
"
let g:menutrans_tags_dialog = "Введите имена файлов меток (через запятую).\n"
"
" Text width dialog
"
let g:menutrans_textwidth_dialog = "Введите ширину текста для форматирования.\nДля отмены форматирования введите 0."
"
" File format dialog
"
let g:menutrans_fileformat_dialog = "Выберите формат файла."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nО&тмена"
"
let menutrans_no_file = "[Нет файла]"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Zg�%�ZZvim80/lang/menu_sv_se.utf-8.vimnu�[���" Menu Translations: Swedish for UTF-8 encoding

source <sfile>:p:h/menu_sv_se.latin1.vim
PK�j�Z���ZZvim80/lang/menu_es_es.utf-8.vimnu�[���" Menu Translations:	Spanish for UTF-8 encoding

source <sfile>:p:h/menu_es_es.latin1.vim
PK�j�Zu�ڄZZvim80/keymap/sinhala.vimnu�[���" Vim Keymap file for Sinhala (Sri Lanka)
"
source <sfile>:p:h/sinhala-phonetic_utf-8.vim
PK�j�Z�u���	�	"vim80/keymap/belarusian-jcuken.vimnu�[���" Vim Keymap file for Belarusian characters, layout 'jcuken', classical variant
" Useful mainly with UTF-8, but may work with other encodings.

" Derived From: russian-jcuken.vim
" Maintainer:   Aliaksei Nestserau <aliaksei@screencustoms.com>
" Last Changed: 2012 Jul 23

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "by"

loadkeymap
~	Ё	CYRILLIC CAPITAL LETTER IO
`	ё	CYRILLIC SMALL LETTER IO
F	А	CYRILLIC CAPITAL LETTER A
<	Б	CYRILLIC CAPITAL LETTER BE
D	В	CYRILLIC CAPITAL LETTER VE
U	Г	CYRILLIC CAPITAL LETTER GHE
L	Д	CYRILLIC CAPITAL LETTER DE
T	Е	CYRILLIC CAPITAL LETTER IE
:	Ж	CYRILLIC CAPITAL LETTER ZHE
P	З	CYRILLIC CAPITAL LETTER ZE
B	І	CYRILLIC CAPITAL LETTER I
Q	Й	CYRILLIC CAPITAL LETTER SHORT I
R	К	CYRILLIC CAPITAL LETTER KA
K	Л	CYRILLIC CAPITAL LETTER EL
V	М	CYRILLIC CAPITAL LETTER EM
Y	Н	CYRILLIC CAPITAL LETTER EN
J	О	CYRILLIC CAPITAL LETTER O
G	П	CYRILLIC CAPITAL LETTER PE
H	Р	CYRILLIC CAPITAL LETTER ER
C	С	CYRILLIC CAPITAL LETTER ES
N	Т	CYRILLIC CAPITAL LETTER TE
E	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
{	Х	CYRILLIC CAPITAL LETTER HA
W	Ц	CYRILLIC CAPITAL LETTER TSE
X	Ч	CYRILLIC CAPITAL LETTER CHE
I	Ш	CYRILLIC CAPITAL LETTER SHA
O	Ў	CYRILLIC CAPITAL LETTER ASYLLABIC U
}	'	APOSTROPHE
S	Ы	CYRILLIC CAPITAL LETTER YERU
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
\"	Э	CYRILLIC CAPITAL LETTER E
>	Ю	CYRILLIC CAPITAL LETTER YU
Z	Я	CYRILLIC CAPITAL LETTER YA
f	а	CYRILLIC SMALL LETTER A
,	б	CYRILLIC SMALL LETTER BE
d	в	CYRILLIC SMALL LETTER VE
u	г	CYRILLIC SMALL LETTER GHE
l	д	CYRILLIC SMALL LETTER DE
t	е	CYRILLIC SMALL LETTER IE
;	ж	CYRILLIC SMALL LETTER ZHE
p	з	CYRILLIC SMALL LETTER ZE
b	і	CYRILLIC SMALL LETTER I
q	й	CYRILLIC SMALL LETTER SHORT I
r	к	CYRILLIC SMALL LETTER KA
k	л	CYRILLIC SMALL LETTER EL
v	м	CYRILLIC SMALL LETTER EM
y	н	CYRILLIC SMALL LETTER EN
j	о	CYRILLIC SMALL LETTER O
g	п	CYRILLIC SMALL LETTER PE
h	р	CYRILLIC SMALL LETTER ER
c	с	CYRILLIC SMALL LETTER ES
n	т	CYRILLIC SMALL LETTER TE
e	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
[	х	CYRILLIC SMALL LETTER HA
w	ц	CYRILLIC SMALL LETTER TSE
x	ч	CYRILLIC SMALL LETTER CHE
i	ш	CYRILLIC SMALL LETTER SHA
o	ў	CYRILLIC SMALL LETTER ASYLLABIC U
]	'	APOSTROPHE
s	ы	CYRILLIC SMALL LETTER YERU
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
'	э	CYRILLIC SMALL LETTER E
.	ю	CYRILLIC SMALL LETTER YU
z	я	CYRILLIC SMALL LETTER YA
@	"
#	'
$	*
%	:
^	,
&	.
*	;
PK�j�Z6��;GGvim80/keymap/thaana.vimnu�[���if &enc == 'utf-8'
	source <sfile>:p:h/thaana-phonetic_utf-8.vim
endif
PK�j�Z���z��vim80/keymap/hebrew_cp1255.vimnu�[���" add in the vowel points, known as 'niqud', which are present in
" CP1255: Note: there are several 'standards' for placement of the vowel
" points, and I ignored all of them.  Since we can input English by simply
" pressing Ctrl-^ and eliminating this map, I saw no reason to try to use
" exotic key locations.  If you don't like it, that's just too bad :-)
let b:keymap_name = "heb"
loadkeymap
a	<char-249>	" ש - shin
b	<char-240>	" נ - nun
c	<char-225>	" ב - bet
d	<char-226>	" ג - gimel
e	<char-247>	" ק - qof
f	<char-235>	" כ - kaf
g	<char-242>	" ע - ayin
h	<char-233>	" י - yod
i	<char-239>	" ן - final nun
j	<char-231>	" ח - het
k	<char-236>	" ל - lamed
l	<char-234>	" ך - final kaf
m	<char-246>	" צ - tsadi
n	<char-238>	" מ - mem
o	<char-237>	" ם - final mem
p	<char-244>	" פ - pe
q	/		" / - slash
r	<char-248>	" ר - resh
s	<char-227>	" ד - dalet
t	<char-224>	" א - alef
u	<char-229>	" ו - vav
v	<char-228>	" ה - he
w	'		" ' - single-quote
x	<char-241>	" ס - samekh
y	<char-232>	" ט - tet
z	<char-230>	" ז - zayin
,	<char-250>	" ת - tav
.	<char-245>	" ץ - final tsadi
;	<char-243>	" ף - final pe
'	,		" , - comma
/	.		" . - period
`	;		" ; - semicolon
" vowels:
A:	<Char-192>	" sheva
HE	<Char-193>	" hataf segol
HA	<Char-194>	" hataf patah
HO	<Char-195>	" hataf qamats
I	<Char-196>	" hiriq
AY	<Char-197>	" tsere
E	<Char-198>	" segol
AA	<Char-199>	" patah
AO	<Char-200>	" qamats
O	<Char-201>	" holam
U	<Char-203>	" qubuts
D	<Char-204>	" dagesh
]T	<Char-205>	" meteg
]Q	<Char-206>	" maqaf
]R      <ּChar-207>	" rafe
]p      <Char-208>      " paseq
SR	<Char-209>	" shin-dot
SL	<Char-210>	" sin-dot
]P	<Char-211>	" sof-pasuq
VV	<Char-212>    " double-vav
VY	<Char-213>    " vav-yod
YY	<Char-214>    " yod-yod
PK�j�Z��n��vim80/keymap/accents.vimnu�[���" Vim Keymap file for latin1 accents through dead characters
" Maintainer: Bram Moolenaar
" Last Change: 2006 Mar 29

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding latin1

" Use this short name in the status line.
let b:keymap_name = "acc"

loadkeymap
`A	�
'A	�
�A	�
^A	�
~A	�
:A	�
'C	�
�C	�
`E	�
'E	�
�E	�
^E	�
`I	�
'I	�
�I	�
^I	�
~N	�
`O	�
'O	�
�O	�
^O	�
~O	�
:O	�
`U	�
'U	�
�U	�
^U	�
:U	�
'Y	�
�Y	�
`a	�
'a	�
�a	�
^a	�
~a	�
:a	�
'c	�
�c	�
`e	�
'e	�
�e	�
^e	�
`i	�
'i	�
�i	�
^i	�
~n	�
`o	�
'o	�
�o	�
^o	�
~o	�
:o	�
`u	�
'u	�
�u	�
^u	�
:u	�
'y	�
�y	�
''	'
��	�
``	`
^^	^
~~	~
::	:
PK�j�Z�N���
�
!vim80/keymap/ukrainian-dvorak.vimnu�[���" Vim Keymap file for ukrainian characters, layout 'dvorak',
" MS Windows variant
" Derived from ukrainian-jcuken.vim by Anatoli Sakhnik <sakhnik@gmail.com>
" Useful mainly with utf-8 but may work with other encodings

" Maintainer:   Serhiy Boiko <cris.kiev@gmail.com>
" Last Changed: 2007 Jun 29

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "uk"

loadkeymap
~	~	CYRILLIC CAPITAL LETTER IO
`	'	CYRILLIC SMALL LETTER IO
U	А	CYRILLIC CAPITAL LETTER A
W	Б	CYRILLIC CAPITAL LETTER BE
E	В	CYRILLIC CAPITAL LETTER VE
G	Г	CYRILLIC CAPITAL LETTER GHE
N	Д	CYRILLIC CAPITAL LETTER DE
Y	Е	CYRILLIC CAPITAL LETTER IE
S	Ж	CYRILLIC CAPITAL LETTER ZHE
L	З	CYRILLIC CAPITAL LETTER ZE
X	И	CYRILLIC CAPITAL LETTER I
\"	Й	CYRILLIC CAPITAL LETTER SHORT I
P	К	CYRILLIC CAPITAL LETTER KA
T	Л	CYRILLIC CAPITAL LETTER EL
K	М	CYRILLIC CAPITAL LETTER EM
F	Н	CYRILLIC CAPITAL LETTER EN
H	О	CYRILLIC CAPITAL LETTER O
I	П	CYRILLIC CAPITAL LETTER PE
D	Р	CYRILLIC CAPITAL LETTER ER
J	С	CYRILLIC CAPITAL LETTER ES
B	Т	CYRILLIC CAPITAL LETTER TE
>	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
?	Х	CYRILLIC CAPITAL LETTER HA
<	Ц	CYRILLIC CAPITAL LETTER TSE
Q	Ч	CYRILLIC CAPITAL LETTER CHE
C	Ш	CYRILLIC CAPITAL LETTER SHA
R	Щ	CYRILLIC CAPITAL LETTER SHCHA
+	Ї	CYRILLIC CAPITAL LETTER YI
O	І	CYRILLIC CAPITAL LETTER BYELORUSSION-UKRAINIAN I
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
_	Є	CYRILLIC CAPITAL LETTER UKRAINIAN IE
V	Ю	CYRILLIC CAPITAL LETTER YU
:	Я	CYRILLIC CAPITAL LETTER YA
|	Ґ	CYRILLIC CAPITAL LETTER GHE WITH UPTURN
u	а	CYRILLIC SMALL LETTER A
w	б	CYRILLIC SMALL LETTER BE
e	в	CYRILLIC SMALL LETTER VE
g	г	CYRILLIC SMALL LETTER GHE
n	д	CYRILLIC SMALL LETTER DE
y	е	CYRILLIC SMALL LETTER IE
s	ж	CYRILLIC SMALL LETTER ZHE
l	з	CYRILLIC SMALL LETTER ZE
x	и	CYRILLIC SMALL LETTER I
'	й	CYRILLIC SMALL LETTER SHORT I
p	к	CYRILLIC SMALL LETTER KA
t	л	CYRILLIC SMALL LETTER EL
k	м	CYRILLIC SMALL LETTER EM
f	н	CYRILLIC SMALL LETTER EN
h	о	CYRILLIC SMALL LETTER O
i	п	CYRILLIC SMALL LETTER PE
d	р	CYRILLIC SMALL LETTER ER
j	с	CYRILLIC SMALL LETTER ES
b	т	CYRILLIC SMALL LETTER TE
.	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
/	х	CYRILLIC SMALL LETTER HA
,	ц	CYRILLIC SMALL LETTER TSE
q	ч	CYRILLIC SMALL LETTER CHE
c	ш	CYRILLIC SMALL LETTER SHA
r	щ	CYRILLIC SMALL LETTER SHCHA
=	ї	CYRILLIC SMALL LETTER YI
o	і	CYRILLIC SMALL LETTER BYELORUSSION-UKRAINIAN I
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
-	є	CYRILLIC SMALL LETTER UKRAINIAN IE
v	ю	CYRILLIC SMALL LETTER YU
;	я	CYRILLIC SMALL LETTER YA
\\	ґ	CYRILLIC SMALL LETTER GHE WITH UPTURN
@	"
#	№	NUMERO SIGN
$	;
^	:
&	?
z	.
Z	,
[   -
]   =
PK�j�Z�+�M

 vim80/keymap/mongolian_utf-8.vimnu�[���" Maintainer:   Natsagdorj Shagdar <natsag2000@yahoo.com>
" Last Changed: 2007 Jun 26

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "mn"

loadkeymap
C	Ё	CYRILLIC CAPITAL LETTER IO
c	ё	CYRILLIC SMALL LETTER IO
G	А	CYRILLIC CAPITAL LETTER A
D	Б	CYRILLIC CAPITAL LETTER BE
>	В	CYRILLIC CAPITAL LETTER VE
U	Г	CYRILLIC CAPITAL LETTER GHE
:	Д	CYRILLIC CAPITAL LETTER DE
_	Е	CYRILLIC CAPITAL LETTER IE
R	Ж	CYRILLIC CAPITAL LETTER ZHE
P	З	CYRILLIC CAPITAL LETTER ZE
N	И	CYRILLIC CAPITAL LETTER I
A	Й	CYRILLIC CAPITAL LETTER SHORT I
{	К	CYRILLIC CAPITAL LETTER KA
L	Л	CYRILLIC CAPITAL LETTER EL
B	М	CYRILLIC CAPITAL LETTER EM
Y	Н	CYRILLIC CAPITAL LETTER EN
K	О	CYRILLIC CAPITAL LETTER O
\"	П	CYRILLIC CAPITAL LETTER PE
J	Р	CYRILLIC CAPITAL LETTER ER
V	С	CYRILLIC CAPITAL LETTER ES
M	Т	CYRILLIC CAPITAL LETTER TE
E	У	CYRILLIC CAPITAL LETTER U
Q	Ф	CYRILLIC CAPITAL LETTER EF
H	Х	CYRILLIC CAPITAL LETTER HA
W	Ц	CYRILLIC CAPITAL LETTER TSE
X	Ч	CYRILLIC CAPITAL LETTER CHE
I	Ш	CYRILLIC CAPITAL LETTER SHA
+	Щ	CYRILLIC CAPITAL LETTER SHCHA
}	Ъ	CYRILLIC CAPITAL LETTER HARD SIGN
S	Ы	CYRILLIC CAPITAL LETTER YERU
<	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
T	Э	CYRILLIC CAPITAL LETTER E
?	Ю	CYRILLIC CAPITAL LETTER YU
Z	Я	CYRILLIC CAPITAL LETTER YA
g	а	CYRILLIC SMALL LETTER A
d	б	CYRILLIC SMALL LETTER BE
.	в	CYRILLIC SMALL LETTER VE
u	г	CYRILLIC SMALL LETTER GHE
;	д	CYRILLIC SMALL LETTER DE
-	е	CYRILLIC SMALL LETTER IE
r	ж	CYRILLIC SMALL LETTER ZHE
p	з	CYRILLIC SMALL LETTER ZE
n	и	CYRILLIC SMALL LETTER I
a	й	CYRILLIC SMALL LETTER SHORT I
[	к	CYRILLIC SMALL LETTER KA
l	л	CYRILLIC SMALL LETTER EL
b	м	CYRILLIC SMALL LETTER EM
y	н	CYRILLIC SMALL LETTER EN
k	о	CYRILLIC SMALL LETTER O
'	п	CYRILLIC SMALL LETTER PE
j	р	CYRILLIC SMALL LETTER ER
v	с	CYRILLIC SMALL LETTER ES
m	т	CYRILLIC SMALL LETTER TE
e	у	CYRILLIC SMALL LETTER U
q	ф	CYRILLIC SMALL LETTER EF
h	х	CYRILLIC SMALL LETTER HA
w	ц	CYRILLIC SMALL LETTER TSE
x	ч	CYRILLIC SMALL LETTER CHE
i	ш	CYRILLIC SMALL LETTER SHA
=	щ	CYRILLIC SMALL LETTER SHCHA
]	ъ	CYRILLIC SMALL LETTER HARD SIGN
s	ы	CYRILLIC SMALL LETTER YERU
,	ь	CYRILLIC SMALL LETTER SOFT SIGN
t	э	CYRILLIC SMALL LETTER E
/	ю	CYRILLIC SMALL LETTER YU
z	я	CYRILLIC SMALL LETTER YA
f	ө	CYRILLIC SMALL LETTER Oе
F	Ө	CYRILLIC SMALL LETTER Oе
o	ү	CYRILLIC SMALL LETTER Ге
O	Ү	CYRILLIC SMALL LETTER Oе
`	=
1	№	NUMERO SIGN
2	-
3	"
4	T
5	:
7	?
6	.
8	,
9	(
0	)
!	1
@	2
#	3
$	4
%	5
^	6
&	7
*	8
(	9
)	0
PK�j�Zm��AA'vim80/keymap/sinhala-phonetic_utf-8.vimnu�[���" Vim Keymap file for Sinhala (Sri Lanka) (2003-11-02)
" Maintainer  : Harshula Jayasuriya <harshula@gmail.com>
" Last Updated: 2007-06-30
" This is a phonetic static mapping for a standard US-English keyboard
" (qwerty)
" http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html

" Copy the keymap to ~/.vim/keymap/
" Start gvim
" Need to disable the menu so that you can use the 'alt' key.
"   set guioptions-=m
" Select the new keymap
"   set keymap=sinhala-phonetic_utf-8

let b:keymap_name = "sinhala"

loadkeymap
<A-n>	<char-0x0d82>	"  ං - anusvaraya (anusvara)
H	<char-0x0d83>	"  ඃ - visargaya (visarga)
a	<char-0x0d85>	" අ - ayanna (a)
A	<char-0x0d86>	" ආ - aayanna (aa)
w	<char-0x0d87>	" ඇ - aeyanna (ae)
W	<char-0x0d88>	" ඈ - aeeyanna (aee)
i	<char-0x0d89>	" ඉ - iyanna (i)
I	<char-0x0d8a>	" ඊ - iiyanna (ii)
u	<char-0x0d8b>	" උ - uyanna (u)
U	<char-0x0d8c>	" ඌ - uuyanna (uu)
q	<char-0x0d8d>	" ඍ - iruyanna (iru)
Q	<char-0x0d8e>	" ඎ - iruuyanna (iruu)
<A-k>	<char-0x0d8f>	" ඏ - iluyanna (ilu)
<A-K>	<char-0x0d90>	" ඐ - iluuyanna (iluu)
e	<char-0x0d91>	" එ - eyanna (e)
E	<char-0x0d92>	" ඒ - eeyanna (ee)
<A-F>	<char-0x0d93>	" ඓ - aiyanna (ai)
o	<char-0x0d94>	" ඔ - oyanna (o)
O	<char-0x0d95>	" ඕ - ooyanna (oo)
<A-H>	<char-0x0d96>	" ඖ - auyanna (au)
k	<char-0x0d9a>	" ක - alpapraana kayanna (ka)
K	<char-0x0d9b>	" ඛ - mahaapraana kayanna (kha)
g	<char-0x0d9c>	" ග - alpapraana gayanna (ga)
G	<char-0x0d9d>	" ඝ - mahaapraana gayanna (gha)
<A-N>	<char-0x0d9e>	" ඞ - kantaja naasikyaya (nga)
<A-g>	<char-0x0d9f>	" ඟ - sanyaka gayanna (nnga)
c	<char-0x0da0>	" ච - alpapraana cayanna (ca)
C	<char-0x0da1>	" ඡ - mahaapraana cayanna (cha)
j	<char-0x0da2>	" ජ - alpapraana jayanna (ja)
J	<char-0x0da3>	" ඣ - mahaapraana jayanna (jha)
z	<char-0x0da4>	" ඤ - taaluja naasikyaya (nya)
Z	<char-0x0da5>	" ඥ - taaluja sanyooga naasikyaya (jnya)
<A-j>	<char-0x0da6>	" ඦ - sanyaka jayanna (nyja)
<A-t>	<char-0x0da7>	" ට - alpapraana ttayanna (tta)
<A-T>	<char-0x0da8>	" ඨ - mahaapraana ttayanna (ttha)
<A-d>	<char-0x0da9>	" ඩ - alpapraana ddayanna (dda)
<A-D>	<char-0x0daa>	" ඪ - mahaapraana ddayanna (ddha)
N	<char-0x0dab>	" ණ - muurdhaja nayanna (nna)
X	<char-0x0dac>	" ඬ - sanyaka ddayanna (nndda)
t	<char-0x0dad>	" ත - alpapraana tayanna (ta)
T	<char-0x0dae>	" ථ - mahaapraana tayanna (tha)
d	<char-0x0daf>	" ද - alpapraana dayanna (da)
D	<char-0x0db0>	" ධ - mahaapraana dayanna (dha)
n	<char-0x0db1>	" න - dantaja nayanna (na)
x	<char-0x0db3>	" ඳ - sanyaka dayanna (nda)
p	<char-0x0db4>	" ප - alpapraana payanna (pa)
P	<char-0x0db5>	" ඵ - mahaapraana payanna (pha)
b	<char-0x0db6>	" බ - alpapraana bayanna (ba)
B	<char-0x0db7>	" භ - mahaapraana bayanna (bha)
m	<char-0x0db8>	" ම - mayanna (ma)
M	<char-0x0db9>	" ඹ - amba bayanna (mba)
y	<char-0x0dba>	" ය - yayanna (ya)
r	<char-0x0dbb>	" ර - rayanna (ra)
l	<char-0x0dbd>	" ල - dantaja layanna (la)
v	<char-0x0dc0>	" ව - vayanna (va)
S	<char-0x0dc1>	" ශ - taaluja sayanna (sha)
<A-s>	<char-0x0dc2>	" ෂ - muurdhaja sayanna (ssa)
s	<char-0x0dc3>	" ස - dantaja sayanna (sa)
h	<char-0x0dc4>	" හ - hayanna (ha)
L	<char-0x0dc5>	" ළ - muurdhaja layanna (lla)
f	<char-0x0dc6>	" ෆ - fayanna (fa)
<A-a>	<char-0x0dca>	"  ් - al-lakuna
<A-A>	<char-0x0dcf>	"  ා - aela-pilla (aa)
<A-w>	<char-0x0dd0>	"  ැ - ketti aeda-pilla (ae)
<A-W>	<char-0x0dd1>	"  ෑ - diga aeda-pilla (aae)
<A-i>	<char-0x0dd2>	"  ි - ketti is-pilla (i)
<A-I>	<char-0x0dd3>	"  ී - diga is-pilla (ii)
<A-u>	<char-0x0dd4>	"  ු - ketti paa-pilla (u)
<A-U>	<char-0x0dd6>	"  ූ - diga paa-pilla (uu)
<A-q>	<char-0x0dd8>	"  ෘ - gaetta-pilla (r)
<A-e>	<char-0x0dd9>	"  ෙ - kombuva (e)
<A-E>	<char-0x0dda>	"  ේ - diga kombuva (ee)
<A-f>	<char-0x0ddb>	"  ෛ - kombu deka (ai)
<A-o>	<char-0x0ddc>	"  ො - kombuva haa aela-pilla (o)
<A-O>	<char-0x0ddd>	"  ෝ - kombuva haa diga aela-pilla (oo)
<A-h>	<char-0x0dde>	"  ෞ - kombuva haa gayanukitta (au)
<A-l>	<char-0x0ddf>	"  ෟ - gayanukitta (l)
<A-Q>	<char-0x0df2>	"  ෲ - diga gaetta-pilla (rr)
<A-L>	<char-0x0df3>	"  ෳ - diga gayanukitta (ll)
<A-.>	<char-0x0df4>	" ෴ - kunddaliya (punctuation)

R	<char-0x0dca><char-0x200d><char-0x0dbb>	"  ්‍ර - rakaaranshaya
Y	<char-0x0dca><char-0x200d><char-0x0dba>	"  ්‍ය - yansaya
<A-r>	<char-0x0dbb><char-0x0dca><char-0x200d>	" ර්‍ - repaya

<A-,>	<char-0x0dca><char-0x200d>	" join - conjunct letters cons 0DCA ZWJ cons
<A-/>	<char-0x200d><char-0x0dca>	" touch - cons ZWJ 0DCA cons

<C-space>	<char-0x00a0>	" - no-break space. <S-space> didn't work.
<A-space>	<char-0x200c>	" - ZWNJ. <A-space> doesn't work!
PK�j�Z_��44vim80/keymap/czech_utf-8.vimnu�[���" Maintainer: Štěpán Němec <stepnem@gmail.com>
" Last Changed: Fri 25 Jun 2010 22:08:43 CEST

let b:keymap_name = "czech"

loadkey
0	é
9	í
8	á
7	ý
6	ž
5	ř
4	č
3	š
2	ě
1	+
`	;
)	0
(	9
*	8
&	7
^	6
%	5
$	4
#	3
@	2
!	1
]	)
}	(
[	ú
{	/
'	§
\"	!
;	ů
:	"
/	-
?	_
>	:
<	?
|	'
~u	ů
~U	Ů
\\a	ä
\\e	ë
\\i	ï
\\o	ö
\\u	ü
\\z	ÿ
\\A	Ä
\\E	Ë
\\I	Ï
\\O	Ö
\\U	Ü
\\Z	Ÿ
=a	á
=e	é
=i	í
=o	ó
=u	ú
=z	ý
=A	Á
=E	É
=I	Í
=O	Ó
=U	Ú
=Z	Ý
+c	č
+d	ď
+e	ě
+n	ň
+r	ř
+s	š
+t	ť
+y	ž
+C	Č
+D	Ď
+E	Ě
+N	Ň
+R	Ř
+S	Š
+T	Ť
+Y	Ž
y	z
Y	Z
z	y
Z	Y
PK�j�Z��p#vim80/keymap/hebrewp_iso-8859-8.vimnu�[���" Vim Keymap file for hebrew
" Maintainer  : Ron Aaron <ron@ronware.org>
" Last Updated: Sun 10 Feb 2002 11:50:56
" This is my version of a phonetic Hebrew

" Use this short name in the status line.
let b:keymap_name = "hebp"

loadkeymap
K	<char-234>	" final kaf
M	<char-237>	" final mem
N	<char-239>	" final nun
P	<char-243>	" final pe
T	<char-232>	" tet
X	<char-245>	" final tsadi
a	<char-224>	" alef
b	<char-225>	" bet
d	<char-227>	" dalet
g	<char-226>	" gimel
h	<char-228>	" he
j	<char-231>	" het
k	<char-235>	" kaf
l	<char-236>	" lamed
m	<char-238>	" mem
n	<char-240>	" nun
s	<char-241>	" samekh
p	<char-244>	" pe
q	<char-247>	" qof
r	<char-248>	" resh
t	<char-250>	" tav
u	<char-242>	" ayin
v	<char-229>	" vav
w	<char-249>	" shin
x	<char-246>	" tsadi
y	<char-233>	" yod
z	<char-230>	" zayin
PK�j�Z����
�
!vim80/keymap/ukrainian-jcuken.vimnu�[���" Vim Keymap file for ukrainian characters, layout 'jcuken', classical variant
" (compatible with XFree86 'uk' keymap)
" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Useful mainly with utf-8 but may work with other encodings

" Maintainer:   Anatoli Sakhnik <sakhnik@gmail.com>
" Last Changed: 2007 Nov 11

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "uk"

loadkeymap
~	~
`	'
F	А	CYRILLIC CAPITAL LETTER A
<	Б	CYRILLIC CAPITAL LETTER BE
D	В	CYRILLIC CAPITAL LETTER VE
U	Г	CYRILLIC CAPITAL LETTER GHE
L	Д	CYRILLIC CAPITAL LETTER DE
T	Е	CYRILLIC CAPITAL LETTER IE
:	Ж	CYRILLIC CAPITAL LETTER ZHE
P	З	CYRILLIC CAPITAL LETTER ZE
B	И	CYRILLIC CAPITAL LETTER I
Q	Й	CYRILLIC CAPITAL LETTER SHORT I
R	К	CYRILLIC CAPITAL LETTER KA
K	Л	CYRILLIC CAPITAL LETTER EL
V	М	CYRILLIC CAPITAL LETTER EM
Y	Н	CYRILLIC CAPITAL LETTER EN
J	О	CYRILLIC CAPITAL LETTER O
G	П	CYRILLIC CAPITAL LETTER PE
H	Р	CYRILLIC CAPITAL LETTER ER
C	С	CYRILLIC CAPITAL LETTER ES
N	Т	CYRILLIC CAPITAL LETTER TE
E	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
{	Х	CYRILLIC CAPITAL LETTER HA
W	Ц	CYRILLIC CAPITAL LETTER TSE
X	Ч	CYRILLIC CAPITAL LETTER CHE
I	Ш	CYRILLIC CAPITAL LETTER SHA
O	Щ	CYRILLIC CAPITAL LETTER SHCHA
}	Ї	CYRILLIC CAPITAL LETTER YI
S	І	CYRILLIC CAPITAL LETTER BYELORUSSION-UKRAINIAN I
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
\"	Є	CYRILLIC CAPITAL LETTER UKRAINIAN IE
>	Ю	CYRILLIC CAPITAL LETTER YU
Z	Я	CYRILLIC CAPITAL LETTER YA
|	Ґ	CYRILLIC CAPITAL LETTER GHE WITH UPTURN
f	а	CYRILLIC SMALL LETTER A
,	б	CYRILLIC SMALL LETTER BE
d	в	CYRILLIC SMALL LETTER VE
u	г	CYRILLIC SMALL LETTER GHE
l	д	CYRILLIC SMALL LETTER DE
t	е	CYRILLIC SMALL LETTER IE
;	ж	CYRILLIC SMALL LETTER ZHE
p	з	CYRILLIC SMALL LETTER ZE
b	и	CYRILLIC SMALL LETTER I
q	й	CYRILLIC SMALL LETTER SHORT I
r	к	CYRILLIC SMALL LETTER KA
k	л	CYRILLIC SMALL LETTER EL
v	м	CYRILLIC SMALL LETTER EM
y	н	CYRILLIC SMALL LETTER EN
j	о	CYRILLIC SMALL LETTER O
g	п	CYRILLIC SMALL LETTER PE
h	р	CYRILLIC SMALL LETTER ER
c	с	CYRILLIC SMALL LETTER ES
n	т	CYRILLIC SMALL LETTER TE
e	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
[	х	CYRILLIC SMALL LETTER HA
w	ц	CYRILLIC SMALL LETTER TSE
x	ч	CYRILLIC SMALL LETTER CHE
i	ш	CYRILLIC SMALL LETTER SHA
o	щ	CYRILLIC SMALL LETTER SHCHA
]	ї	CYRILLIC SMALL LETTER YI
s	і	CYRILLIC SMALL LETTER BYELORUSSION-UKRAINIAN I
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
'	є	CYRILLIC SMALL LETTER UKRAINIAN IE
.	ю	CYRILLIC SMALL LETTER YU
z	я	CYRILLIC SMALL LETTER YA
\\	ґ	CYRILLIC SMALL LETTER GHE WITH UPTURN
@	"
#	'
$	*
%	:
^	,
&	.
*	;
~       ~
~~      <char-0x301>        Stress
PK�j�Z��d##vim80/keymap/czech.vimnu�[���source <sfile>:p:h/czech_utf-8.vim
PK�j�Z��vim80/keymap/pinyin.vimnu�[���" Vim Keymap file for Hanyu Pinyin tone marks through numbers.
" Maintainer: Fredrik Roubert <fredrik@roubert.name>
" Last Changed: February 15, 2004

" All characters are given literally.
scriptencoding utf-8

" Use this short name in the status line.
let b:keymap_name = "py"

loadkeymap
a0	a
a1	ā
a2	á
a3	ǎ
a4	à
a5	a
e0	e
e1	ē
e2	é
e3	ě
e4	è
e5	e
i0	i
i1	ī
i2	í
i3	ǐ
i4	ì
i5	i
o0	o
o1	ō
o2	ó
o3	ǒ
o4	ò
o5	o
u0	u
u1	ū
u2	ú
u3	ǔ
u4	ù
u5	u
ü0	ü
ü1	ǖ
ü2	ǘ
ü3	ǚ
ü4	ǜ
ü5	ü
v0	ü
v1	ǖ
v2	ǘ
v3	ǚ
v4	ǜ
v5	ü

PK�j�Z[�0}}'vim80/keymap/armenian-eastern_utf-8.vimnu�[���" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps

let b:keymap_name = "hy"

loadkeymap

" Capital letters
A   Ա
B   Բ
C   Գ
D   Դ
Y   Ե
Z   Զ
E   Է
U   Ը
:   Թ
+   Ժ
I   Ի
L   Լ
Q   Խ
?   Ծ
K   Կ
H   Հ
@   Ձ
>   Ղ
J   Ճ
M   Մ
#   Յ
N   Ն
<   Շ
O   Ո
{   Չ
P   Պ
}   Ջ
_   Ռ
S   Ս
V   Վ
T   Տ
R   Ր
X   Ց
W   Ւ
\"  Փ
G   Ք
)   Օ
F   Ֆ

" Lowercase letters
a   ա
b   բ
c   գ
d   դ
y   ե
z   զ
e   է
u   ը
;   թ
=   ժ
i   ի
l   լ
q   խ
/   ծ
k   կ
h   հ
2   ձ
.   ղ
j   ճ
m   մ
3   յ
n   ն
,   շ
o   ո
[   չ
p   պ
]   ջ
-   ռ
s   ս
v   վ
t   տ
r   ր
x   ց
w   ւ
'   փ
g   ք
0   օ
f   ֆ

&   և

" Punctuation
`   ՝
~   ՜
1   ։
4   ՛
5   ,
6   -
7   .
8   «
9   »
*   (
(   )
\\  '
|   ՞

" Numbers
!   1
$   3
%   4
^   9
PK�j�Z�c�	�	 vim80/keymap/russian-yawerty.vimnu�[���" Vim Keymap file for russian characters, phonetic layout 'yawerty'
" Useful mainly with utf-8 but may work with other encodings

" Maintainer:   Igor Goldenberg <igogold@gmail.com>
" Last Changed: 2007 Aug 15

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "ru"

loadkeymap
A	А	CYRILLIC CAPITAL LETTER A
B	Б	CYRILLIC CAPITAL LETTER BE
W	В	CYRILLIC CAPITAL LETTER VE
G	Г	CYRILLIC CAPITAL LETTER GHE
D	Д	CYRILLIC CAPITAL LETTER DE
E	Е	CYRILLIC CAPITAL LETTER IE
$	Ё	CYRILLIC CAPITAL LETTER IO
V	Ж	CYRILLIC CAPITAL LETTER ZHE
Z	З	CYRILLIC CAPITAL LETTER ZE
I	И	CYRILLIC CAPITAL LETTER I
J	Й	CYRILLIC CAPITAL LETTER SHORT I
K	К	CYRILLIC CAPITAL LETTER KA
L	Л	CYRILLIC CAPITAL LETTER EL
M	М	CYRILLIC CAPITAL LETTER EM
N	Н	CYRILLIC CAPITAL LETTER EN
O	О	CYRILLIC CAPITAL LETTER O
P	П	CYRILLIC CAPITAL LETTER PE
R	Р	CYRILLIC CAPITAL LETTER ER
S	С	CYRILLIC CAPITAL LETTER ES
T	Т	CYRILLIC CAPITAL LETTER TE
U	У	CYRILLIC CAPITAL LETTER U
F	Ф	CYRILLIC CAPITAL LETTER EF
H	Х	CYRILLIC CAPITAL LETTER HA
C	Ц	CYRILLIC CAPITAL LETTER TSE
+	Ч	CYRILLIC CAPITAL LETTER CHE
{	Ш	CYRILLIC CAPITAL LETTER SHA
}	Щ	CYRILLIC CAPITAL LETTER SHCHA
^	Ъ	CYRILLIC CAPITAL LETTER HARD SIGN
Y	Ы	CYRILLIC CAPITAL LETTER YERU
X	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
|	Э	CYRILLIC CAPITAL LETTER E
~	Ю	CYRILLIC CAPITAL LETTER YU
Q	Я	CYRILLIC CAPITAL LETTER YA
a	а	CYRILLIC SMALL LETTER A
b	б	CYRILLIC SMALL LETTER BE
w	в	CYRILLIC SMALL LETTER VE
g	г	CYRILLIC SMALL LETTER GHE
d	д	CYRILLIC SMALL LETTER DE
e	е	CYRILLIC SMALL LETTER IE
#	ё	CYRILLIC SMALL LETTER IO
v	ж	CYRILLIC SMALL LETTER ZHE
z	з	CYRILLIC SMALL LETTER ZE
i	и	CYRILLIC SMALL LETTER I
j	й	CYRILLIC SMALL LETTER SHORT I
k	к	CYRILLIC SMALL LETTER KA
l	л	CYRILLIC SMALL LETTER EL
m	м	CYRILLIC SMALL LETTER EM
n	н	CYRILLIC SMALL LETTER EN
o	о	CYRILLIC SMALL LETTER O
p	п	CYRILLIC SMALL LETTER PE
r	р	CYRILLIC SMALL LETTER ER
s	с	CYRILLIC SMALL LETTER ES
t	т	CYRILLIC SMALL LETTER TE
u	у	CYRILLIC SMALL LETTER U
f	ф	CYRILLIC SMALL LETTER EF
h	х	CYRILLIC SMALL LETTER HA
c	ц	CYRILLIC SMALL LETTER TSE
=	ч	CYRILLIC SMALL LETTER CHE
[	ш	CYRILLIC SMALL LETTER SHA
]	щ	CYRILLIC SMALL LETTER SHCHA
%	ъ	CYRILLIC SMALL LETTER HARD SIGN
y	ы	CYRILLIC SMALL LETTER YERU
x	ь	CYRILLIC SMALL LETTER SOFT SIGN
\\	э	CYRILLIC SMALL LETTER E
`	ю	CYRILLIC SMALL LETTER YU
q	я	CYRILLIC SMALL LETTER YA
PK�j�Z�顰;
;
vim80/keymap/arabic_utf-8.vimnu�[���" Vim Keymap file for Arabic
" Maintainer   : Arabic Support group <support-at-arabeyes.org>
" Created by   : Nadim Shaikli <nadim-at-arabeyes.org>
" Last Updated : 2003 Apr 26
" This is for a standard Microsoft Arabic keyboard layout.

" Use this short name in the status line.
let b:keymap_name = "arab"

loadkeymap
q	<char-0x0636>			" (1590)	- DAD
w	<char-0x0635>			" (1589)	- SAD
e	<char-0x062b>			" (1579)	- THEH
r	<char-0x0642>			" (1602)	- QAF
t	<char-0x0641>			" (1601)	- FEH
y	<char-0x063a>			" (1594)	- GHAIN
u	<char-0x0639>			" (1593)	- AIN
i	<char-0x0647>			" (1607)	- HEH
o	<char-0x062e>			" (1582)	- KHAH
p	<char-0x062d>			" (1581)	- HAH
[	<char-0x062c>			" (1580)	- JEEM
]	<char-0x062f>			" (1583)	- DAL
a	<char-0x0634>			" (1588)	- SHEEN
s	<char-0x0633>			" (1587)	- SEEN
d	<char-0x064a>			" (1610)	- YEH
f	<char-0x0628>			" (1576)	- BEH
g	<char-0x0644>			" (1604)	- LAM
h	<char-0x0627>			" (1575)	- ALEF
j	<char-0x062a>			" (1578)	- TEH
k	<char-0x0646>			" (1606)	- NOON
l	<char-0x0645>			" (1605)	- MEEM
;	<char-0x0643>			" (1603)	- KAF
'	<char-0x0637>			" (1591)	- TAH
z	<char-0x0626>			" (1574)	- YEH with HAMZA ABOVE
x	<char-0x0621>			" (1569)	- HAMZA
c	<char-0x0624>			" (1572)	- WAW with HAMZA ABOVE
v	<char-0x0631>			" (1585)	- REH
b	<char-0x0644><char-0x0627>	" (1604/1575)	- LAA (lam alef)
n	<char-0x0649>			" (1609)	- ALEF MAKSURA
m	<char-0x0629>			" (1577)	- TEH MARBUTA
,	<char-0x0648>			" (1608)	- WAW
.	<char-0x0632>			" (1586)	- ZAIN
/	<char-0x0638>			" (1592)	- ZAH
0	<char-0x0660>			" (1632)	- Arabic 0
1	<char-0x0661>			" (1633)	- Arabic 1
2	<char-0x0662>			" (1634)	- Arabic 2
3	<char-0x0663>			" (1635)	- Arabic 3
4	<char-0x0664>			" (1636)	- Arabic 4
5	<char-0x0665>			" (1637)	- Arabic 5
6	<char-0x0666>			" (1638)	- Arabic 6
7	<char-0x0667>			" (1639)	- Arabic 7
8	<char-0x0668>			" (1640)	- Arabic 8
9	<char-0x0669>			" (1641)	- Arabic 9
`	<char-0x0630>			" (1584)	- THAL
~	<char-0x0651>			" (1617)	- Tanween -- SHADDA
Q	<char-0x064e>			" (1614)	- Tanween -- FATHA
W	<char-0x064b>			" (1611)	- Tanween -- FATHATAN
E	<char-0x064f>			" (1615)	- Tanween -- DAMMA
R	<char-0x064c>			" (1612)	- Tanween -- DAMMATAN
T	<char-0x0644><char-0x0625>	" (1604/1573)	- LAA  with HAMZA BELOW
Y	<char-0x0625>			" (1573)	- ALEF with HAMZA BELOW
U	<char-0x0060>			" (96)		- ASCII -- `
I	<char-0x00f7>			" (247)		- ASCII suppl -- div
O	<char-0x00d7>			" (215)		- ASCII suppl -- mul
P	<char-0x061b>			" (1563)	- Arabic Semicolon
{	<char-0x003c>			" (60)		- ASCII -- <
}	<char-0x003e>			" (62)		- ASCII -- >
A	<char-0x0650>			" (1616)	- Tanween -- KASRA
S	<char-0x064d>			" (1613)	- Tanween -- KASRATAN
D	<char-0x005b>			" (91)		- ASCII -- [
F	<char-0x005d>			" (93)		- ASCII -- ]
G	<char-0x0644><char-0x0623>	" (1604/1571)	- LAA  with HAMZA ABOVE
H	<char-0x0623>			" (1571)	- ALEF with HAMZA ABOVE
J	<char-0x0640>			" (1600)	- TATWEEL
K	<char-0x060c>			" (1548)	- Arabic Comma
L	<char-0x002f>			" (47)		- ASCII -- /
Z	<char-0x007e>			" (126)		- ASCII -- ~
X	<char-0x0652>			" (1618)	- Tanween -- SUKUN
C	<char-0x007b>			" (123)		- ASCII -- {
V	<char-0x007d>			" (125)		- ASCII -- }
B	<char-0x0644><char-0x0622>	" (1604/1570)	- LAA  with MADDA ABOVE
N	<char-0x0622>			" (1570)	- ALEF with MADDA ABOVE
M	<char-0x0027>			" (39)		- ASCII -- '
<	<char-0x002c>			" (44)		- ASCII -- ,
>	<char-0x002e>			" (46)		- ASCII -- .
?	<char-0x061f>			" (1567)	- Arabic Question Mark
PK�j�Z�9#&eevim80/keymap/bulgarian-bds.vimnu�[���" Vim keymap file for Bulgarian and Russian characters, "bds" layout.
" Most of it can be used with both utf-8 and cp1251 file encodings, except
" the accented characters which can only be stored in utf-8.
" This file itself is in utf-8.

" Maintainer: Boyko Bantchev <boykobb@gmail.com>
" URI: http://www.math.bas.bg/bantchev/vim/bulgarian-bds.vim
" Last Changed: 2010 May 4

" This keymap corresponds to what is called Bulgarian standard typewriter
" keyboard layout, or "БДС".
"
" Note that, in addition to the Bulgarian alphabet, the BDS layout prescribes
" the presence of the following characters:
"     —  The Russian letters ы (small), and Э and э (capital and small).
"     —  The latin capital letters I and V – used to type Roman numerals
"        without having to leave Cyrillic mode.
"
" Some punctuation characters present in ascii are mapped in BDS to keys
" different from the ones they occupy in the QWERTY layout, because the latter
" keys are used to type other characters.
"
" In this keymap, also defined (besides BDS) are:
"     —  The Russian letters Ё and ё (capital and small), as well as the
"        Russian capital letter Ы (see above for the small counterpart).
"        This way, using the bulgarian-bds keymap, one can access both
"        the Bulgarian and the Russian alphabets.
"     —  The quotation marks „ “ ” ‘ ’ (used in the Bulgarian and English
"        quotation styles), as well as « » (Russian quotation style).
"     —  The characters §, №, – (en-dash), — (em-dash), …, •, ·, ±, °, ¬,
"        ¤, €, ‰, †, ‡, and ¶.
"
" The keymap also defines key combinations for grave and acute accents.
" (Grave accent is used in Bulgarian, acute in Russian, but both accents
" apply to other languages as well.)
"
" For details of what key or key combination maps to what character, please
" see below the map itself.
"
" See also http://www.math.bas.bg/bantchev/vim/kbdbul.html (in Bulgarian).

scriptencoding utf-8

let b:keymap_name = "bds"

loadkeymap
D       А       CYRILLIC CAPITAL LETTER A
?       Б       CYRILLIC CAPITAL LETTER BE
L       В       CYRILLIC CAPITAL LETTER VE
H       Г       CYRILLIC CAPITAL LETTER GHE
O       Д       CYRILLIC CAPITAL LETTER DE
E       Е       CYRILLIC CAPITAL LETTER IE
E::     Ё       CYRILLIC CAPITAL LETTER IO
G       Ж       CYRILLIC CAPITAL LETTER ZHE
P       З       CYRILLIC CAPITAL LETTER ZE
R       И       CYRILLIC CAPITAL LETTER I
X       Й       CYRILLIC CAPITAL LETTER SHORT I
U       К       CYRILLIC CAPITAL LETTER KA
>       Л       CYRILLIC CAPITAL LETTER EL
:       М       CYRILLIC CAPITAL LETTER EM
K       Н       CYRILLIC CAPITAL LETTER EN
F       О       CYRILLIC CAPITAL LETTER O
M       П       CYRILLIC CAPITAL LETTER PE
<       Р       CYRILLIC CAPITAL LETTER ER
I       С       CYRILLIC CAPITAL LETTER ES
J       Т       CYRILLIC CAPITAL LETTER TE
W       У       CYRILLIC CAPITAL LETTER U
B       Ф       CYRILLIC CAPITAL LETTER EF
N       Х       CYRILLIC CAPITAL LETTER HA
{       Ц       CYRILLIC CAPITAL LETTER TSE
\"      Ч       CYRILLIC CAPITAL LETTER CHE
T       Ш       CYRILLIC CAPITAL LETTER SHA
Y       Щ       CYRILLIC CAPITAL LETTER SHCHA
C       Ъ       CYRILLIC CAPITAL LETTER HARD SIGN
CX      Ы       CYRILLIC CAPITAL LETTER YERU
A       Ь       CYRILLIC CAPITAL LETTER SOFT SIGN
V       Э       CYRILLIC CAPITAL LETTER REVERSED E
Z       Ю       CYRILLIC CAPITAL LETTER YU
S       Я       CYRILLIC CAPITAL LETTER YA
d       а       CYRILLIC SMALL LETTER A
\/      б       CYRILLIC SMALL LETTER BE
l       в       CYRILLIC SMALL LETTER VE
h       г       CYRILLIC SMALL LETTER GHE
o       д       CYRILLIC SMALL LETTER DE
e       е       CYRILLIC SMALL LETTER IE
e::     ё       CYRILLIC SMALL LETTER IO
g       ж       CYRILLIC SMALL LETTER ZHE
p       з       CYRILLIC SMALL LETTER ZE
r       и       CYRILLIC SMALL LETTER I
x       й       CYRILLIC SMALL LETTER SHORT I
u       к       CYRILLIC SMALL LETTER KA
\.      л       CYRILLIC SMALL LETTER EL
;       м       CYRILLIC SMALL LETTER EM
k       н       CYRILLIC SMALL LETTER EN
f       о       CYRILLIC SMALL LETTER O
m       п       CYRILLIC SMALL LETTER PE
,       р       CYRILLIC SMALL LETTER ER
i       с       CYRILLIC SMALL LETTER ES
j       т       CYRILLIC SMALL LETTER TE
w       у       CYRILLIC SMALL LETTER U
b       ф       CYRILLIC SMALL LETTER EF
n       х       CYRILLIC SMALL LETTER HA
[       ц       CYRILLIC SMALL LETTER TSE
'       ч       CYRILLIC SMALL LETTER CHE
t       ш       CYRILLIC SMALL LETTER SHA
y       щ       CYRILLIC SMALL LETTER SHCHA
c       ъ       CYRILLIC SMALL LETTER HARD SIGN
Q       ы       CYRILLIC SMALL LETTER YERU
a       ь       CYRILLIC SMALL LETTER SOFT SIGN
v       э       CYRILLIC SMALL LETTER REVERSED E
z       ю       CYRILLIC SMALL LETTER YU
s       я       CYRILLIC SMALL LETTER YA
_       I       LATIN CAPITAL LETTER I
+       V       LATIN CAPITAL LETTER V
$       "       QUOTATION MARK
\\      (       LEFT PARENTHESIS
|       )       RIGHT PARENTHESIS
#       +       PLUS SIGN
q       ,       COMMA
(       -       HYPHEN-MINUS
=       .       FULL STOP (PERIOD)
*       /       SOLIDUS (SLASH)
&       :       COLON
]       ;       SEMICOLON
^       =       EQUALS SIGN
@       ?       QUESTION MARK
}       §       SECTION SIGN (PARAGRAPH SIGN)
)       №       NUMERO SIGN
--      –       EN DASH
---     —       EM DASH
..      …       HORIZONTAL ELLIPSIS
``      “       LEFT DOUBLE QUOTATION MARK
''      ”       RIGHT DOUBLE QUOTATION MARK
,,      „       DOUBLE LOW-9 QUOTATION MARK
`.      ‘       LEFT SINGLE QUOTATION MARK
'.      ’       RIGHT SINGLE QUOTATION MARK
<<      «       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
>>      »       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
**      •       BULLET
,.      ·       MIDDLE DOT      
+-      ±       PLUS-MINUS SIGN
^o      °       DEGREE SIGN
~~      ¬       NOT SIGN
@@      ¤       CURRENCY SIGN
$$      €       EURO SIGN
%%      ‰       PER MILLE SIGN
+|      †       DAGGER
++      ‡       DOUBLE DAGGER
||      ¶       PILCROW SIGN

" Accented characters cannot map onto cp1251 – use utf-8 file encoding.
" To apply an accent to a letter, type the corresponding key combination
" to the immediate right of that letter.
^`      <char-0x300>    COMBINING GRAVE ACCENT
^'      <char-0x301>    COMBINING ACUTE ACCENT
PK�j�Z��½MM'vim80/keymap/vietnamese-telex_utf-8.vimnu�[���" Vim Keymap file for Vietnamese through Telex method
" Maintainer: Raphael McSinyx <vn.mcsinyx@gmail.com>
" Last Change: 2016-06-13

scriptencoding utf-8

let b:keymap_name = "vi"

loadkeymap

A\\	A
AF	À
AS	Á
AR	Ả
AX	Ã
AJ	Ạ

AW	Ă
AW\\	Ă
AWF	Ằ
AWS	Ắ
AWR	Ẳ
AWX	Ẵ
AWJ	Ặ

AA	Â
AA\\	Â
AAF	Ầ
AAS	Ấ
AAR	Ẩ
AAX	Ẫ
AAJ	Ậ

D\\	D
DD	Đ

E	E
E\\	E
EF	È
ES	É
ER	Ẻ
EX	Ẽ
EJ	Ẹ

EE	Ê
EE\\	Ê
EEF	Ề
EES	Ế
EER	Ể
EEX	Ễ
EEJ	Ệ

I\\	I
IF	Ì
IS	Í
IR	Ỉ
IX	Ĩ
IJ	Ị

O\\	O
OF	Ò
OS	Ó
OR	Ỏ
OX	Õ
OJ	Ọ

OO	Ô
OO\\	Ô
OOF	Ồ
OOS	Ố
OOR	Ổ
OOX	Ỗ
OOJ	Ộ

OW	Ơ
OW\\	Ơ
OWF	Ờ
OWS	Ớ
OWR	Ở
OWX	Ỡ
OWJ	Ợ

U\\	U
UF	Ù
US	Ú
UR	Ủ
UX	Ũ
UJ	Ụ

UW	Ư
UW\\	Ư
UWF	Ừ
UWS	Ứ
UWR	Ử
UWX	Ữ
UWJ	Ự

Y\\	Y
YF	Ỳ
YS	Ý
YR	Ỷ
YX	Ỹ
YJ	Ỵ

a\\	a
af	à
as	á
ar	ả
ax	ã
aj	ạ

aw	ă
aw\\	ă
awf	ằ
aws	ắ
awr	ẳ
awx	ẵ
awj	ặ

aa	â
aa\\	â
aaf	ầ
aas	ấ
aar	ẩ
aax	ẫ
aaj	ậ

d\\	d
dd	đ

e\\	e
ef	è
es	é
er	ẻ
ex	ẽ
ej	ẹ

ee	ê
ee\\	ê
eef	ề
ees	ế
eer	ể
eex	ễ
eej	ệ

i\\	i
if	ì
is	í
ir	ỉ
ix	ĩ
ij	ị

o\\	o
of	ò
os	ó
or	ỏ
ox	õ
oj	ọ

oo	ô
oo\\	ô
oof	ồ
oos	ố
oor	ổ
oox	ỗ
ooj	ộ

ow	ơ
ow\\	ơ
owf	ờ
ows	ớ
owr	ở
owx	ỡ
owj	ợ

u\\	u
uf	ù
us	ú
ur	ủ
ux	ũ
uj	ụ

uw	ư
uw\\	ư
uwf	ừ
uws	ứ
uwr	ử
uwx	ữ
uwj	ự

y\\	y
yf	ỳ
ys	ý
yr	ỷ
yx	ỹ
yj	ỵ
PK�j�Z�|k��&vim80/keymap/persian-iranian_utf-8.vimnu�[���" Vim Keymap file for Persian Standard Keyboard Layout
" Maintainers: Behnam 'ZWNJ' Esfahbod <behnam@zwnj.org>,
"	       Amir Hedayaty <hedayaty@gmail.com>
" Last Change: 2006 Apr 21

scriptencoding utf-8

" Use this short name in the status line.
let b:keymap_name = "per"

loadkeymap
`	‍
1	۱
2	۲
3	۳
4	۴
5	۵
6	۶
7	۷
8	۸
9	۹
0	۰
-	-
=	=

q	ض
w	ص
e	ث
r	ق
t	ف
y	غ
u	ع
i	ه
o	خ
p	ح
[	ج
]	چ

a	ش
s	س
d	ی
f	ب
g	ل
h	ا
j	ت
k	ن
l	م
;	ک
'	گ

z	ظ
x	ط
c	ز
v	ر
b	ذ
n	د
m	پ
,	و
.	.
/	/
\\	\\

~	÷
!	!
@	٬
#	٫
$	﷼
%	٪
^	×
&	،
*	*
(	)
)	(
_	ـ
+	+

Q	ْ
W	ٌ
E	ٍ
R	ً
T	ُ
Y	ِ
U	َ
I	ّ
O	]
P	[
{	}
}	{

A	ؤ
S	ئ
D	ي
F	إ
G	أ
H	آ
J	ة
K	»
L	«
:	:
\"	؛

Z	ك
X	ٓ
C	ژ
V	ٰ
B	‌
N	ٔ
M	ء
<	>
>	<
?	؟
|	|

PK�j�ZdS�m�
�
&vim80/keymap/russian-jcukenwintype.vimnu�[���" Vim Keymap file for russian characters, layout 'jcuken', MS Windows variant
" (slightly incompatible with XFree86 'ru' keymap - makes use of NUMERO SIGN)
" Useful mainly with utf-8 but may work with other encodings

" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Typewriter variant of standart russian layout
" Maintainer:   Denis Proskurin <danwerspb@gmail.com>
" Last Changed: 2015 May 15

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.

scriptencoding utf-8

let b:keymap_name = "ru"

loadkeymap
~	+	CYRILLIC CAPITAL LETTER IO
`	|	CYRILLIC SMALL LETTER IO	
F	А	CYRILLIC CAPITAL LETTER A
<	Б	CYRILLIC CAPITAL LETTER BE
D	В	CYRILLIC CAPITAL LETTER VE
U	Г	CYRILLIC CAPITAL LETTER GHE
L	Д	CYRILLIC CAPITAL LETTER DE
T	Е	CYRILLIC CAPITAL LETTER IE
:	Ж	CYRILLIC CAPITAL LETTER ZHE
P	З	CYRILLIC CAPITAL LETTER ZE
B	И	CYRILLIC CAPITAL LETTER I
Q	Й	CYRILLIC CAPITAL LETTER SHORT I
R	К	CYRILLIC CAPITAL LETTER KA
K	Л	CYRILLIC CAPITAL LETTER EL
V	М	CYRILLIC CAPITAL LETTER EM
Y	Н	CYRILLIC CAPITAL LETTER EN
J	О	CYRILLIC CAPITAL LETTER O
G	П	CYRILLIC CAPITAL LETTER PE
H	Р	CYRILLIC CAPITAL LETTER ER
C	С	CYRILLIC CAPITAL LETTER ES
N	Т	CYRILLIC CAPITAL LETTER TE
E	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
{	Х	CYRILLIC CAPITAL LETTER HA
W	Ц	CYRILLIC CAPITAL LETTER TSE
X	Ч	CYRILLIC CAPITAL LETTER CHE
I	Ш	CYRILLIC CAPITAL LETTER SHA
O	Щ	CYRILLIC CAPITAL LETTER SHCHA
}	Ъ	CYRILLIC CAPITAL LETTER HARD SIGN
S	Ы	CYRILLIC CAPITAL LETTER YERU
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
\"	Э	CYRILLIC CAPITAL LETTER E
>	Ю	CYRILLIC CAPITAL LETTER YU
Z	Я	CYRILLIC CAPITAL LETTER YA
f	а	CYRILLIC SMALL LETTER A
,	б	CYRILLIC SMALL LETTER BE
d	в	CYRILLIC SMALL LETTER VE
u	г	CYRILLIC SMALL LETTER GHE
l	д	CYRILLIC SMALL LETTER DE
t	е	CYRILLIC SMALL LETTER IE
;	ж	CYRILLIC SMALL LETTER ZHE
p	з	CYRILLIC SMALL LETTER ZE
b	и	CYRILLIC SMALL LETTER I
q	й	CYRILLIC SMALL LETTER SHORT I
r	к	CYRILLIC SMALL LETTER KA
k	л	CYRILLIC SMALL LETTER EL
v	м	CYRILLIC SMALL LETTER EM
y	н	CYRILLIC SMALL LETTER EN
j	о	CYRILLIC SMALL LETTER O
g	п	CYRILLIC SMALL LETTER PE
h	р	CYRILLIC SMALL LETTER ER
c	с	CYRILLIC SMALL LETTER ES
n	т	CYRILLIC SMALL LETTER TE
e	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
[	х	CYRILLIC SMALL LETTER HA
w	ц	CYRILLIC SMALL LETTER TSE
x	ч	CYRILLIC SMALL LETTER CHE
i	ш	CYRILLIC SMALL LETTER SHA
o	щ	CYRILLIC SMALL LETTER SHCHA
]	ъ	CYRILLIC SMALL LETTER HARD SIGN
s	ы	CYRILLIC SMALL LETTER YERU
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
'	э	CYRILLIC SMALL LETTER E
.	ю	CYRILLIC SMALL LETTER YU
z	я	CYRILLIC SMALL LETTER YA
@	"
#	№	NUMERO SIGN
$	;
^	:
&	?
/	ё
?	Ё
1	№
2	-
3	/
4	"
5	:
6	,
7	.
8	_
9	?
0	%
-	!
=	;
\\	)
\|	(
PK�j�Z8��vim80/keymap/serbian_utf-8.vimnu�[���" Vim Keymap file for Serbian characters, classical variant, UTF-8 encoding
"
" Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.edu>
" URL:		    http://www.cs.cmu.edu/~aleksa/personal/vim/keymap/serbian-UTF-8.vim
" Last Changed: 2002 Mar 29

scriptencoding UTF-8

let b:keymap_name = "serbian-UTF-8"

loadkeymap
Q	Љ
W	Њ
E	Е
R	Р
T	Т
Y	З
U	У
I	И
O	О
P	П
{	Ш
}	Ђ
q	љ
w	њ
e	е
r	р
t	т
y	з
u	у
i	и
o	о
p	п
[	ш
]	ђ
A	А
S	С
D	Д
F	Ф
G	Г
H	Х
J	Ј
K	К
L	Л
:	Ч
\"	Ћ
\|	Ж
a	а
s	с
d	д
f	ф
g	г
h	х
j	ј
k	к
l	л
;	ч
'	ћ
\\	ж
"Z	З
X	Џ
C	Ц
V	В
B	Б
N	Н
M	М
"z	з
x	џ
c	ц
v	в
b	б
n	н
m	м

<	;
>	:
/	-
_	?
,,	„
''	”

E$	<char-0x20AC>	" EURO SIGN
--	<char-0x2013>	" endash
---	<char-0x2014>	" emdash

" @	"
" #	'
" $	*
" %	:
" ^	,
" &amp;	.
" *	;

PK�j�Z�<H+"
"
vim80/keymap/russian-dvorak.vimnu�[���" Vim Keymap file for russian characters, layout 'dvorak', MS Windows variant
" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Useful mainly with utf-8 but may work with other encodings

" Maintainer:   Serhiy Boiko <cris.kiev@gmail.com>
" Last Changed: 2007 Jun 29

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "ru"

loadkeymap
~	Ё	CYRILLIC CAPITAL LETTER IO
`	ё	CYRILLIC SMALL LETTER IO
U	А	CYRILLIC CAPITAL LETTER A
W	Б	CYRILLIC CAPITAL LETTER BE
E	В	CYRILLIC CAPITAL LETTER VE
G	Г	CYRILLIC CAPITAL LETTER GHE
N	Д	CYRILLIC CAPITAL LETTER DE
Y	Е	CYRILLIC CAPITAL LETTER IE
S	Ж	CYRILLIC CAPITAL LETTER ZHE
L	З	CYRILLIC CAPITAL LETTER ZE
X	И	CYRILLIC CAPITAL LETTER I
\"	Й	CYRILLIC CAPITAL LETTER SHORT I
P	К	CYRILLIC CAPITAL LETTER KA
T	Л	CYRILLIC CAPITAL LETTER EL
K	М	CYRILLIC CAPITAL LETTER EM
F	Н	CYRILLIC CAPITAL LETTER EN
H	О	CYRILLIC CAPITAL LETTER O
I	П	CYRILLIC CAPITAL LETTER PE
D	Р	CYRILLIC CAPITAL LETTER ER
J	С	CYRILLIC CAPITAL LETTER ES
B	Т	CYRILLIC CAPITAL LETTER TE
>	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
?	Х	CYRILLIC CAPITAL LETTER HA
<	Ц	CYRILLIC CAPITAL LETTER TSE
Q	Ч	CYRILLIC CAPITAL LETTER CHE
C	Ш	CYRILLIC CAPITAL LETTER SHA
R	Щ	CYRILLIC CAPITAL LETTER SHCHA
+	Ъ	CYRILLIC CAPITAL LETTER HARD SIGN
O	Ы	CYRILLIC CAPITAL LETTER YERU
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
_	Э	CYRILLIC CAPITAL LETTER E
V	Ю	CYRILLIC CAPITAL LETTER YU
:	Я	CYRILLIC CAPITAL LETTER YA
u	а	CYRILLIC SMALL LETTER A
w	б	CYRILLIC SMALL LETTER BE
e	в	CYRILLIC SMALL LETTER VE
g	г	CYRILLIC SMALL LETTER GHE
n	д	CYRILLIC SMALL LETTER DE
y	е	CYRILLIC SMALL LETTER IE
s	ж	CYRILLIC SMALL LETTER ZHE
l	з	CYRILLIC SMALL LETTER ZE
x	и	CYRILLIC SMALL LETTER I
'	й	CYRILLIC SMALL LETTER SHORT I
p	к	CYRILLIC SMALL LETTER KA
t	л	CYRILLIC SMALL LETTER EL
k	м	CYRILLIC SMALL LETTER EM
f	н	CYRILLIC SMALL LETTER EN
h	о	CYRILLIC SMALL LETTER O
i	п	CYRILLIC SMALL LETTER PE
d	р	CYRILLIC SMALL LETTER ER
j	с	CYRILLIC SMALL LETTER ES
b	т	CYRILLIC SMALL LETTER TE
.	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
/	х	CYRILLIC SMALL LETTER HA
,	ц	CYRILLIC SMALL LETTER TSE
q	ч	CYRILLIC SMALL LETTER CHE
c	ш	CYRILLIC SMALL LETTER SHA
r	щ	CYRILLIC SMALL LETTER SHCHA
=	ъ	CYRILLIC SMALL LETTER HARD SIGN
o	ы	CYRILLIC SMALL LETTER YERU
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
-	э	CYRILLIC SMALL LETTER E
v	ю	CYRILLIC SMALL LETTER YU
;	я	CYRILLIC SMALL LETTER YA
@	"
#	№	NUMERO SIGN
$	;
^	:
&	?
z	.
Z	,
[   -
]   =
PK�j�Z�I
��"vim80/keymap/hebrew_iso-8859-8.vimnu�[���" Vim Keymap file for hebrew
" Maintainer  : Ron Aaron <ron@ronware.org>
" Last Updated: Wed 28 Feb 2001 21:28:51
" This is the standard Israeli keyboard layout

" Use this short name in the status line.
let b:keymap_name = "heb"

loadkeymap
a	<char-249>	" � - shin
b	<char-240>	" � - nun
c	<char-225>	" � - bet
d	<char-226>	" � - gimel
e	<char-247>	" � - qof
f	<char-235>	" � - kaf
g	<char-242>	" � - ayin
h	<char-233>	" � - yod
i	<char-239>	" � - final nun
j	<char-231>	" � - het
k	<char-236>	" � - lamed
l	<char-234>	" � - final kaf
m	<char-246>	" � - tsadi
n	<char-238>	" � - mem
o	<char-237>	" � - final mem
p	<char-244>	" � - pe
q	/		" / - slash
r	<char-248>	" � - resh
s	<char-227>	" � - dalet
t	<char-224>	" � - alef
u	<char-229>	" � - vav
v	<char-228>	" � - he
w	'		" ' - single-quote
x	<char-241>	" � - samekh
y	<char-232>	" � - tet
z	<char-230>	" � - zayin
,	<char-250>	" � - tav
.	<char-245>	" � - final tsadi
;	<char-243>	" � - final pe
'	,		" , - comma
/	.		" . - period
`	;		" ; - semicolon
PK�j�Z>כ##vim80/keymap/hebrewp_cp1255.vimnu�[���" codepage 1255 on Windows is equal to ISO 8859-8 but it
" adds in the vowel points, known as 'niqud', which are present in
" CP1255: Note: there are several 'standards' for placement of the vowel
" points, and I ignored all of them.  Since we can input English by simply
" pressing Ctrl-^ and eliminating this map, I saw no reason to try to use
" exotic key locations.  If you don't like it, that's just too bad :-)
let b:keymap_name = "hebp"
loadkeymap
K	<char-234>	" final kaf
M	<char-237>	" final mem
N	<char-239>	" final nun
P	<char-243>	" final pe
T	<char-232>	" tet
X	<char-245>	" final tsadi
a	<char-224>	" alef
b	<char-225>	" bet
d	<char-227>	" dalet
g	<char-226>	" gimel
h	<char-228>	" he
j	<char-231>	" het
k	<char-235>	" kaf
l	<char-236>	" lamed
m	<char-238>	" mem
n	<char-240>	" nun
s	<char-241>	" samekh
p	<char-244>	" pe
q	<char-247>	" qof
r	<char-248>	" resh
t	<char-250>	" tav
u	<char-242>	" ayin
v	<char-229>	" vav
w	<char-249>	" shin
x	<char-246>	" tsadi
y	<char-233>	" yod
z	<char-230>	" zayin
" vowels:
A:    <Char-192>  " sheva
HE	<Char-193>	" hataf segol
HA	<Char-194>	" hataf patah
HO	<Char-195>	" hataf qamats
I	<Char-196>	" hiriq
AY	<Char-197>	" tsere
E	<Char-198>	" segol
AA	<Char-199>	" patah
AO	<Char-200>	" qamats
O	<Char-201>	" holam
U	<Char-203>	" qubuts
D	<Char-204>	" dagesh
]T	<Char-205>	" meteg
]Q	<Char-206>	" maqaf
]R      <�Char-207>	" rafe
]p      <Char-208>      " paseq
SR	<Char-209>	" shin-dot
SL	<Char-210>	" sin-dot
]P	<Char-211>	" sof-pasuq
VV	<Char-212>    " double-vav
VY	<Char-213>    " vav-yod
YY	<Char-214>    " yod-yod
PK�j�Z�\�׻�vim80/keymap/README.txtnu�[���keymap files for Vim

One of these files is loaded when the 'keymap' option is set.

The name of the file consists of these parts:

	{language}[-{layout}][_{encoding}].vim

{language}	Name of the language (e.g., "hebrew", "greek")

{layout}	Optional: name of the keyboard layout (e.g., "spanish",
		"russian3").  When omitted the layout of the standard
		US-english keyboard is assumed.

{encoding}	Optional: character encoding for which this keymap works.
		When omitted the "normal" encoding for the language is
		assumed.
		Use the value the 'encoding' option: lower case only, use '-'
		instead of '_'.

Each file starts with a header, naming the maintainer and the date when it was
last changed.  If you find a problem in a keymap file, check if you have the
most recent version.  If necessary, report a problem to the maintainer.

The format of the keymap lines below "loadkeymap" is explained in the Vim help
files, see ":help keymap-file-format".
PK�j�Z�
gj��(vim80/keymap/oldturkic-yenisei_utf-8.vimnu�[���" Maintainer:   Oliver Corff <oliver.corff@yemail.de>
" Last Changed: 2018 Feb 12

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "oto"
highlight lCursor guibg=red guifg=NONE

" map F8 to toggle keymap (Ctrl-^ not present on keyboard)
noremap  <F8> :let &iminsert = ! &iminsert<CR>
lnoremap <F8> <C-^>
noremap! <F8> <C-^>

loadkeymap
A	𐰁	10C01	OLD TURKIC LETTER YENISEI A
01	𐰁	10C01	OLD TURKIC LETTER YENISEI A
AE	𐰂	10C02	OLD TURKIC LETTER YENISEI AE
02	𐰂	10C02	OLD TURKIC LETTER YENISEI AE
I	𐰄	10C04	OLD TURKIC LETTER YENISEI I
04	𐰄	10C04	OLD TURKIC LETTER YENISEI I
E	𐰅	10C05	OLD TURKIC LETTER YENISEI E
05	𐰅	10C05	OLD TURKIC LETTER YENISEI E
OE	𐰈	10C08	OLD TURKIC LETTER YENISEI OE
UE	𐰈	10C08	OLD TURKIC LETTER YENISEI OE
08	𐰈	10C08	OLD TURKIC LETTER YENISEI OE
ab	𐰊	10C0A	OLD TURKIC LETTER YENISEI AB
b1	𐰊	10C0A	OLD TURKIC LETTER YENISEI AB
0a	𐰊	10C0A	OLD TURKIC LETTER YENISEI AB
aeb	𐰌	10C0C	OLD TURKIC LETTER YENISEI AEB
eb	𐰌	10C0C	OLD TURKIC LETTER YENISEI AEB
b2	𐰌	10C0C	OLD TURKIC LETTER YENISEI AEB
0c	𐰌	10C0C	OLD TURKIC LETTER YENISEI AEB
ag	𐰎	10C0E	OLD TURKIC LETTER YENISEI AG
g1	𐰎	10C0E	OLD TURKIC LETTER YENISEI AG
0e	𐰎	10C0E	OLD TURKIC LETTER YENISEI AG
aeg	𐰐	10C10	OLD TURKIC LETTER YENISEI AEG
eg	𐰐	10C10	OLD TURKIC LETTER YENISEI AEG
g2	𐰐	10C10	OLD TURKIC LETTER YENISEI AEG
10	𐰐	10C10	OLD TURKIC LETTER YENISEI AEG
ad	𐰒	10C12	OLD TURKIC LETTER YENISEI AD
d1	𐰒	10C12	OLD TURKIC LETTER YENISEI AD
12	𐰒	10C12	OLD TURKIC LETTER YENISEI AD
ez	𐰕	10C15	OLD TURKIC LETTER YENISEI EZ
z	𐰕	10C15	OLD TURKIC LETTER YENISEI EZ
15	𐰕	10C15	OLD TURKIC LETTER YENISEI EZ
ay	𐰗	10C17	OLD TURKIC LETTER YENISEI AY
y1	𐰗	10C17	OLD TURKIC LETTER YENISEI AY
17	𐰗	10C17	OLD TURKIC LETTER YENISEI AY
aey	𐰙	10C19	OLD TURKIC LETTER YENISEI AEY
ey	𐰙	10C19	OLD TURKIC LETTER YENISEI AEY
y2	𐰙	10C19	OLD TURKIC LETTER YENISEI AEY
19	𐰙	10C19	OLD TURKIC LETTER YENISEI AEY
aek	𐰛	10C1B	OLD TURKIC LETTER YENISEI AEK
ak	𐰛	10C1B	OLD TURKIC LETTER YENISEI AEK
k	𐰛	10C1B	OLD TURKIC LETTER YENISEI AEK
1b	𐰛	10C1B	OLD TURKIC LETTER YENISEI AEK
oek	𐰝	10C1D	OLD TURKIC LETTER YENISEI OEK
ök	𐰝	10C1D	OLD TURKIC LETTER YENISEI OEK
uek	𐰝	10C1D	OLD TURKIC LETTER YENISEI OEK
ük	𐰝	10C1D	OLD TURKIC LETTER YENISEI OEK
1d	𐰝	10C1D	OLD TURKIC LETTER YENISEI OEK
al	𐰟	10C1F	OLD TURKIC LETTER YENISEI AL
l	𐰟	10C1F	OLD TURKIC LETTER YENISEI AL
l1	𐰟	10C1F	OLD TURKIC LETTER YENISEI AL
1f	𐰟	10C1F	OLD TURKIC LETTER YENISEI AL
aen	𐰥	10C25	OLD TURKIC LETTER YENISEI AEN
en	𐰥	10C25	OLD TURKIC LETTER YENISEI AEN
n2	𐰥	10C25	OLD TURKIC LETTER YENISEI AEN
25	𐰥	10C25	OLD TURKIC LETTER YENISEI AEN
ent	𐰧	10C27	OLD TURKIC LETTER YENISEI ENT
nt	𐰧	10C27	OLD TURKIC LETTER YENISEI ENT
27	𐰧	10C27	OLD TURKIC LETTER YENISEI ENT
enc	𐰩	10C29	OLD TURKIC LETTER YENISEI ENC
nc	𐰩	10C29	OLD TURKIC LETTER YENISEI ENC
29	𐰩	10C29	OLD TURKIC LETTER YENISEI ENC
eny	𐰫	10C2B	OLD TURKIC LETTER YENISEI ENY
ny	𐰫	10C2B	OLD TURKIC LETTER YENISEI ENY
2b	𐰫	10C2B	OLD TURKIC LETTER YENISEI ENY
ang	𐰬	10C2C	OLD TURKIC LETTER YENISEI ANG
ng	𐰬	10C2C	OLD TURKIC LETTER YENISEI ANG
2c	𐰬	10C2C	OLD TURKIC LETTER YENISEI ANG
aeng	𐰮	10C2E	OLD TURKIC LETTER YENISEI AENG
eng	𐰮	10C2E	OLD TURKIC LETTER YENISEI AENG
2e	𐰮	10C2E	OLD TURKIC LETTER YENISEI AENG
ec	𐰳	10C33	OLD TURKIC LETTER YENISEI EC
c	𐰳	10C33	OLD TURKIC LETTER YENISEI EC
33	𐰳	10C33	OLD TURKIC LETTER YENISEI EC
aq	𐰵	10C35	OLD TURKIC LETTER YENISEI AQ
q	𐰵	10C35	OLD TURKIC LETTER YENISEI AQ
35	𐰵	10C35	OLD TURKIC LETTER YENISEI AQ
iq	𐰷	10C37	OLD TURKIC LETTER YENISEI IQ
yq	𐰷	10C37	OLD TURKIC LETTER YENISEI IQ
37	𐰷	10C37	OLD TURKIC LETTER YENISEI IQ
oq	𐰹	10C39	OLD TURKIC LETTER YENISEI OQ
uq	𐰹	10C39	OLD TURKIC LETTER YENISEI OQ
39	𐰹	10C39	OLD TURKIC LETTER YENISEI OQ
ar	𐰻	10C3B	OLD TURKIC LETTER YENISEI AR
r	𐰻	10C3B	OLD TURKIC LETTER YENISEI AR
r1	𐰻	10C3B	OLD TURKIC LETTER YENISEI AR
3b	𐰻	10C3B	OLD TURKIC LETTER YENISEI AR
ash	𐱀	10C40	OLD TURKIC LETTER YENISEI ASH
sh1	𐱀	10C40	OLD TURKIC LETTER YENISEI ASH
40	𐱀	10C40	OLD TURKIC LETTER YENISEI ASH
esh	𐱂	10C42	OLD TURKIC LETTER YENISEI ESH
sh2	𐱂	10C42	OLD TURKIC LETTER YENISEI ESH
42	𐱂	10C42	OLD TURKIC LETTER YENISEI ESH
at	𐱄	10C44	OLD TURKIC LETTER YENISEI AT
t1	𐱄	10C44	OLD TURKIC LETTER YENISEI AT
44	𐱄	10C44	OLD TURKIC LETTER YENISEI AT
aet	𐱆	10C46	OLD TURKIC LETTER YENISEI AET
et	𐱆	10C46	OLD TURKIC LETTER YENISEI AET
t2	𐱆	10C46	OLD TURKIC LETTER YENISEI AET
46	𐱆	10C46	OLD TURKIC LETTER YENISEI AET
PK�j�Z���s++vim80/keymap/serbian-latin.vimnu�[���source <sfile>:p:h/serbian-latin_utf-8.vim
PK�j�Z@ABT\\$vim80/keymap/polish-slash_cp1250.vimnu�[���" Polish letters keymap for cp1250
" Maintainer:	HS6_06	<hs6_06@o2.pl>
" Last Changed:	2005 Jan 12
" Current version: 1.0.2
" History: see polish-slash.vim

" This keymap adds the special Polish letters
" to an existing Latin keyboard.
" All chars as usual except:
" Polish:
"   instead of AltGr+{acelnosxz} you ve to use "/" followed by {acelnosxz}

" short keymap name for statusline
let b:keymap_name = "PL-slash-WIN"

scriptencoding latin1

loadkeymap

" Polish letters
/a	<Char-185>	" LATIN SMALL LETTER A WITH OGONEK
/c	<Char-230>	" LATIN SMALL LETTER C WITH ACUTE
/e	<Char-234>	" LATIN SMALL LETTER E WITH OGONEK
/l	<Char-179>	" LATIN SMALL LETTER L WITH STROKE
/n	<Char-241>	" LATIN SMALL LETTER N WITH ACUTE
/o	<Char-243>	" LATIN SMALL LETTER O WITH ACUTE
/s	<Char-156>	" LATIN SMALL LETTER S WITH ACUTE
/x	<Char-159>	" LATIN SMALL LETTER Z WITH ACUTE
/z	<Char-191>	" LATIN SMALL LETTER Z WITH DOT ABOVE

/A	<Char-165>	" LATIN CAPITAL LETTER A WITH OGONEK
/C	<Char-198>	" LATIN CAPITAL LETTER C WITH ACUTE
/E	<Char-202>	" LATIN CAPITAL LETTER E WITH OGONEK
/L	<Char-163>	" LATIN CAPITAL LETTER L WITH STROKE
/N	<Char-209>	" LATIN CAPITAL LETTER N WITH ACUTE
/O	<Char-211>	" LATIN CAPITAL LETTER O WITH ACUTE
/S	<Char-140>	" LATIN CAPITAL LETTER S WITH ACUTE
/X	<Char-143>	" LATIN CAPITAL LETTER Z WITH ACUTE
/Z	<Char-175>	" LATIN CAPITAL LETTER Z WITH DOT ABOVE

PK�j�Z��'���vim80/keymap/kazakh-jcuken.vimnu�[���" Vim Keymap file for kazakh characters, layout 'jcuken', classical variant

" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Maintainer:   Darkhan Kubigenov <darkhanu@gmail.com>
" Last Changed: 2016 Oct 25

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "kk"

loadkeymap
~	)	CYRILLIC CAPITAL LETTER IO
`	(	CYRILLIC SMALL LETTER IO
F	А	CYRILLIC CAPITAL LETTER A
<	Б	CYRILLIC CAPITAL LETTER BE
D	В	CYRILLIC CAPITAL LETTER VE
U	Г	CYRILLIC CAPITAL LETTER GHE
L	Д	CYRILLIC CAPITAL LETTER DE
T	Е	CYRILLIC CAPITAL LETTER IE
:	Ж	CYRILLIC CAPITAL LETTER ZHE
P	З	CYRILLIC CAPITAL LETTER ZE
B	И	CYRILLIC CAPITAL LETTER I
Q	Й	CYRILLIC CAPITAL LETTER SHORT I
R	К	CYRILLIC CAPITAL LETTER KA
K	Л	CYRILLIC CAPITAL LETTER EL
V	М	CYRILLIC CAPITAL LETTER EM
Y	Н	CYRILLIC CAPITAL LETTER EN
J	О	CYRILLIC CAPITAL LETTER O
G	П	CYRILLIC CAPITAL LETTER PE
H	Р	CYRILLIC CAPITAL LETTER ER
C	С	CYRILLIC CAPITAL LETTER ES
N	Т	CYRILLIC CAPITAL LETTER TE
E	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
{	Х	CYRILLIC CAPITAL LETTER HA
W	Ц	CYRILLIC CAPITAL LETTER TSE
X	Ч	CYRILLIC CAPITAL LETTER CHE
I	Ш	CYRILLIC CAPITAL LETTER SHA
O	Щ	CYRILLIC CAPITAL LETTER SHCHA
}	Ъ	CYRILLIC CAPITAL LETTER HARD SIGN
S	Ы	CYRILLIC CAPITAL LETTER YERU
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
\"	Э	CYRILLIC CAPITAL LETTER E
>	Ю	CYRILLIC CAPITAL LETTER YU
Z	Я	CYRILLIC CAPITAL LETTER YA
f	а	CYRILLIC SMALL LETTER A
,	б	CYRILLIC SMALL LETTER BE
d	в	CYRILLIC SMALL LETTER VE
u	г	CYRILLIC SMALL LETTER GHE
l	д	CYRILLIC SMALL LETTER DE
t	е	CYRILLIC SMALL LETTER IE
;	ж	CYRILLIC SMALL LETTER ZHE
p	з	CYRILLIC SMALL LETTER ZE
b	и	CYRILLIC SMALL LETTER I
q	й	CYRILLIC SMALL LETTER SHORT I
r	к	CYRILLIC SMALL LETTER KA
k	л	CYRILLIC SMALL LETTER EL
v	м	CYRILLIC SMALL LETTER EM
y	н	CYRILLIC SMALL LETTER EN
j	о	CYRILLIC SMALL LETTER O
g	п	CYRILLIC SMALL LETTER PE
h	р	CYRILLIC SMALL LETTER ER
c	с	CYRILLIC SMALL LETTER ES
n	т	CYRILLIC SMALL LETTER TE
e	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
[	х	CYRILLIC SMALL LETTER HA
w	ц	CYRILLIC SMALL LETTER TSE
x	ч	CYRILLIC SMALL LETTER CHE
i	ш	CYRILLIC SMALL LETTER SHA
o	щ	CYRILLIC SMALL LETTER SHCHA
]	ъ	CYRILLIC SMALL LETTER HARD SIGN
s	ы	CYRILLIC SMALL LETTER YERU
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
'	э	CYRILLIC SMALL LETTER E
.	ю	CYRILLIC SMALL LETTER YU
z	я	CYRILLIC SMALL LETTER YA
@	Ә	CYRILLIC CAPITAL LETTER SCHWA
#	І	CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
$	Ң	CYRILLIC CAPITAL LETTER EN WITH DESCENDER
%	Ғ	CYRILLIC CAPITAL LETTER GHE WITH STROKE
^	;
&	:
*	Ү	CYRILLIC CAPITAL LETTER STRAIGHT U
(	Ұ	CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
)	Қ	CYRILLIC CAPITAL LETTER KA WITH DESCENDER
_	Ө	CYRILLIC CAPITAL LETTER BARRED O
+	Һ	CYRILLIC CAPITAL LETTER SHHA
1	"
2	ә	CYRILLIC SMALL LETTER SCHWA
3	і	CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
4	ң	CYRILLIC SMALL LETTER EN WITH DESCENDER
5	ғ	CYRILLIC SMALL LETTER GHE WITH STROKE
6	,
7	.
8	ү	CYRILLIC SMALL LETTER STRAIGHT U
9	ұ	CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
0	қ	CYRILLIC SMALL LETTER KA WITH DESCENDER
-	ө	CYRILLIC SMALL LETTER BARRED O
=	һ	CYRILLIC SMALL LETTER SHHA
PK�j�Z��}��vim80/keymap/polish-slash.vimnu�[���" Polish letters under VIM >= 6
" Maintainer:   HS6_06 <hs6_06@o2.pl>
" Last changed: 2005 Jan 12
" Current version: 1.0.2
" History:
"  2005.01.12 1.0.2 keymap_name shortened, added Current version, History
"  2005.01.10 1.0.1 un*x line ends for all files
"  2005.01.09 1.0.0 Initial release

let encoding = &enc
if encoding == 'latin1'
    if has("unix")
	let encoding = 'iso-8859-2'
    else
	let encoding = 'cp1250'
    endif
endif

if encoding == 'utf-8'
	source <sfile>:p:h/polish-slash_utf-8.vim
elseif encoding == 'cp1250'
	source <sfile>:p:h/polish-slash_cp1250.vim
elseif encoding == 'iso-8859-2'
	source <sfile>:p:h/polish-slash_iso-8859-2.vim
else
	source <sfile>:p:h/polish-slash_cp852.vim
endif
PK�j�Z�V��vim80/keymap/greek_cp1253.vimnu�[���" Vim Keymap file for greek
" Maintainer: Grigorios Magklis <maglis@cs.rochester.edu>
" Patched for MS-Windows CP1253: Panagiotis Louridas <louridas@acm.org>
" Last Updated: Fri 13 Feb 2004 13:01:33
"
" This keyboard layout allows all Greek symbols to be typed,
" including accented capitals, diaeresis & accent on the same
" vowel, and the Greek semicolon sign.
"
" accent			";" + letter
" diaeresis			":" + letter
" diaeresis + accent		";" + ":" (or ":" + ";") + letter
" semicolon			"q"
" colon				"Q"
" greek semicolon		"W"
" sigma at end of word		"w"
" greek left double-quote	"<" twice
" greek right double-quote	">" twice

" Use this short name in the status line.
let b:keymap_name = "greek"

loadkeymap
" capital
A	<char-193>	" �
B	<char-194>	" �
G	<char-195>	" �
D	<char-196>	" �
E	<char-197>	" �
Z	<char-198>	" �
H	<char-199>	" �
U	<char-200>	" �
I	<char-201>	" �
K	<char-202>	" �
L	<char-203>	" �
M	<char-204>	" �
N	<char-205>	" �
J	<char-206>	" �
O	<char-207>	" �
P	<char-208>	" �
R	<char-209>	" �
S	<char-211>	" �
T	<char-212>	" �
Y	<char-213>	" �
F	<char-214>	" �
X	<char-215>	" �
C	<char-216>	" �
V	<char-217>	" �

" small
a	<char-225>	" �
b	<char-226>	" �
g	<char-227>	" �
d	<char-228>	" �
e	<char-229>	" �
z	<char-230>	" �
h	<char-231>	" �
u	<char-232>	" �
i	<char-233>	" �
k	<char-234>	" �
l	<char-235>	" �
m	<char-236>	" �
n	<char-237>	" �
j	<char-238>	" �
o	<char-239>	" �
p	<char-240>	" �
r	<char-241>	" �
w	<char-242>	" �
s	<char-243>	" �
t	<char-244>	" �
y	<char-245>	" �
f	<char-246>	" �
x	<char-247>	" �
c	<char-248>	" �
v	<char-249>	" �

" accented capital
;A	<char-162>	" �
;E	<char-184>	" �
;H	<char-185>	" �
;I	<char-186>	" �
;Y	<char-190>	" �
;O	<char-188>	" �
;V	<char-191>	" �
"
:I	<char-218>	" �
:Y	<char-219>	" �

" accented small
;a	<char-220>	" �
;e	<char-221>	" �
;h	<char-222>	" �
;i	<char-223>	" �
;y	<char-253>	" �
;o	<char-252>	" �
;v	<char-254>	" �
"
:i	<char-250>	" �
:y	<char-251>	" �
"
;:i	<char-192>	" �
:;i	<char-192>	" �
;:y	<char-224>	" �
:;y	<char-224>	" �

" symbols
q	;		" ;
Q	:		" :
W	<char-183>	" �
;	<char-180>	" �
:	<char-168>	" �
;:	<char-181>	" �
:;	<char-181>	" �

" quotes
<<	<char-171>	" �
>>	<char-187>	" �
" <char-161>	" �
" <char-162>	" �
PK�j�Z�m,,vim80/keymap/slovak_utf-8.vimnu�[���" Maintainer:	Peter Valach <pvalach@gmx.net>
" Last Changed: 2002 Nov 5
" URL:		http://www.pv2c.sk/free/sk_vimkeymap/

let b:keymap_name = "sk"

loadkeymap
" Z a Y - ak chcete slovensku qwerty, zakomentujte tieto styri riadky
y z
z y
Y Z
Z Y

" Horny riadok
` ;
1 +
! 1
2 ľ
@ 2
3 š
# 3
4 č
$ 4
5 ť
% 5
6 ž
^ 6
7 ý
& 7
8 á
* 8
9 í
( 9
0 é
) 0
- =
_ %

" Klavesy okolo Enteru :)
[ ú
{ /
] ä
} (
\\ ň
<Bar> )
; ô
: "
' §
\" !
", , ;-)
< ?
". . ;-)
> :
/ -
? _

" Dlzne
=a á
=A Á
=e é
=E É
=i í
=I Í
=l ĺ
=L Ĺ
=o ó
=O Ó
=r ŕ
=R Ŕ
=u ú
=U Ú
=z ý
=Z Ý
" pre pripad omylu :) alebo slovenskej QWERTY
=y ý
=Y Ý

" Makcene
+a ä
+A Ä
+c č
+C Č
+d ď
+D Ď
+l ľ
+L Ľ
+n ň
+N Ň
+o ô
+O Ô
+s š
+S Š
+t ť
+T Ť
+y ž
+Y Ž
" pre pripad omylu :) alebo slovenskej QWERTY
+z ž
+Z Ž

PK�j�ZT��`

"vim80/keymap/russian-jcukenwin.vimnu�[���" Vim Keymap file for russian characters, layout 'jcuken', MS Windows variant
" (slightly incompatible with XFree86 'ru' keymap - makes use of NUMERO SIGN)
" Useful mainly with utf-8 but may work with other encodings

" Maintainer:   Artem Chuprina <ran@ran.pp.ru>
" Last Changed: 2001 Jun 23

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "ru"

loadkeymap
~	Ё	CYRILLIC CAPITAL LETTER IO
`	ё	CYRILLIC SMALL LETTER IO
F	А	CYRILLIC CAPITAL LETTER A
<	Б	CYRILLIC CAPITAL LETTER BE
D	В	CYRILLIC CAPITAL LETTER VE
U	Г	CYRILLIC CAPITAL LETTER GHE
L	Д	CYRILLIC CAPITAL LETTER DE
T	Е	CYRILLIC CAPITAL LETTER IE
:	Ж	CYRILLIC CAPITAL LETTER ZHE
P	З	CYRILLIC CAPITAL LETTER ZE
B	И	CYRILLIC CAPITAL LETTER I
Q	Й	CYRILLIC CAPITAL LETTER SHORT I
R	К	CYRILLIC CAPITAL LETTER KA
K	Л	CYRILLIC CAPITAL LETTER EL
V	М	CYRILLIC CAPITAL LETTER EM
Y	Н	CYRILLIC CAPITAL LETTER EN
J	О	CYRILLIC CAPITAL LETTER O
G	П	CYRILLIC CAPITAL LETTER PE
H	Р	CYRILLIC CAPITAL LETTER ER
C	С	CYRILLIC CAPITAL LETTER ES
N	Т	CYRILLIC CAPITAL LETTER TE
E	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
{	Х	CYRILLIC CAPITAL LETTER HA
W	Ц	CYRILLIC CAPITAL LETTER TSE
X	Ч	CYRILLIC CAPITAL LETTER CHE
I	Ш	CYRILLIC CAPITAL LETTER SHA
O	Щ	CYRILLIC CAPITAL LETTER SHCHA
}	Ъ	CYRILLIC CAPITAL LETTER HARD SIGN
S	Ы	CYRILLIC CAPITAL LETTER YERU
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
\"	Э	CYRILLIC CAPITAL LETTER E
>	Ю	CYRILLIC CAPITAL LETTER YU
Z	Я	CYRILLIC CAPITAL LETTER YA
f	а	CYRILLIC SMALL LETTER A
,	б	CYRILLIC SMALL LETTER BE
d	в	CYRILLIC SMALL LETTER VE
u	г	CYRILLIC SMALL LETTER GHE
l	д	CYRILLIC SMALL LETTER DE
t	е	CYRILLIC SMALL LETTER IE
;	ж	CYRILLIC SMALL LETTER ZHE
p	з	CYRILLIC SMALL LETTER ZE
b	и	CYRILLIC SMALL LETTER I
q	й	CYRILLIC SMALL LETTER SHORT I
r	к	CYRILLIC SMALL LETTER KA
k	л	CYRILLIC SMALL LETTER EL
v	м	CYRILLIC SMALL LETTER EM
y	н	CYRILLIC SMALL LETTER EN
j	о	CYRILLIC SMALL LETTER O
g	п	CYRILLIC SMALL LETTER PE
h	р	CYRILLIC SMALL LETTER ER
c	с	CYRILLIC SMALL LETTER ES
n	т	CYRILLIC SMALL LETTER TE
e	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
[	х	CYRILLIC SMALL LETTER HA
w	ц	CYRILLIC SMALL LETTER TSE
x	ч	CYRILLIC SMALL LETTER CHE
i	ш	CYRILLIC SMALL LETTER SHA
o	щ	CYRILLIC SMALL LETTER SHCHA
]	ъ	CYRILLIC SMALL LETTER HARD SIGN
s	ы	CYRILLIC SMALL LETTER YERU
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
'	э	CYRILLIC SMALL LETTER E
.	ю	CYRILLIC SMALL LETTER YU
z	я	CYRILLIC SMALL LETTER YA
@	"
#	№	NUMERO SIGN
$	;
^	:
&	?
/	.
?	,
PK�j�Z~"���vim80/keymap/serbian_cp1250.vimnu�[���" Vim Keymap file for Serbian characters, classical variant, cp1250 encoding
"
" Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.edu>
" URL:		    http://galeb.etf.bg.ac.yu/~alexa/vim/keymap/serbian-cp1250.vim
" Last Changed: 2002 Mar 29

scriptencoding cp1250

let b:keymap_name = "serbian-cp1250"

loadkeymap
Y	Z
{	�
}	�
y	z
[	�
]	�
:   �
\"	�
\|	�
;	�
'	�
\\	�
"Z	Y
"z	y
<	;
>	:
/	-
_	?
,,	�
''	�

" @	"
" #	'
" $	*
" %	:
" ^	,
" &amp;	.
" *	;

PK�j�Z��(L\\(vim80/keymap/polish-slash_iso-8859-2.vimnu�[���" Polish letters keymap for iso-8859-2
" Maintainer:	HS6_06	<hs6_06@o2.pl>
" Last Changed:	2005 Jan 12
" Current version: 1.0.2
" History: polish-slash.vim

" This keymap adds the special Polish letters
" to an existing Latin keyboard.
" All chars as usual except:
" Polish:
"   instead of AltGr+{acelnosxz} you ve to use "/" followed by {acelnosxz}

" short keymap name for statusline
let b:keymap_name = "PL-slash-ISO"

scriptencoding latin1

loadkeymap

" Polish letters
/a	<Char-177>	" LATIN SMALL LETTER A WITH OGONEK
/c	<Char-230>	" LATIN SMALL LETTER C WITH ACUTE
/e	<Char-234>	" LATIN SMALL LETTER E WITH OGONEK
/l	<Char-179>	" LATIN SMALL LETTER L WITH STROKE
/n	<Char-241>	" LATIN SMALL LETTER N WITH ACUTE
/o	<Char-243>	" LATIN SMALL LETTER O WITH ACUTE
/s	<Char-182>	" LATIN SMALL LETTER S WITH ACUTE
/x	<Char-188>	" LATIN SMALL LETTER Z WITH ACUTE
/z	<Char-191>	" LATIN SMALL LETTER Z WITH DOT ABOVE

/A	<Char-161>	" LATIN CAPITAL LETTER A WITH OGONEK
/C	<Char-198>	" LATIN CAPITAL LETTER C WITH ACUTE
/E	<Char-202>	" LATIN CAPITAL LETTER E WITH OGONEK
/L	<Char-163>	" LATIN CAPITAL LETTER L WITH STROKE
/N	<Char-209>	" LATIN CAPITAL LETTER N WITH ACUTE
/O	<Char-211>	" LATIN CAPITAL LETTER O WITH ACUTE
/S	<Char-166>	" LATIN CAPITAL LETTER S WITH ACUTE
/X	<Char-172>	" LATIN CAPITAL LETTER Z WITH ACUTE
/Z	<Char-175>	" LATIN CAPITAL LETTER Z WITH DOT ABOVE

PK�j�Z<��7#7#vim80/keymap/kana.vimnu�[���" This script was originally created by Rory McCann <ebelular at gmail dot com>.
" Dan Kenigsberg noticed some deficiencies and suggested this one instead.
"
" Maintainer: Rory McCann <ebelular at gmail dot com>
" Modified by: Edward L. Fox <edyfox at gmail dot com>
" Last Change: 2006 Apr 30
"
"
"
"  Kana.kmap (Japanese Phonograms)
"
"  Converted from Gaspar Sinai's yudit 2.7.6
"  GNU (C) Gaspar Sinai <gsinai@yudit.org>
"
"  WARNING
"  -------
"  This version of Kana.kmap is different from the one that has been used
"  with yudit-2.7.2 or earlier.  The main difference is that this kmap is
"  arranged in such a way that it complies with an authorized Japanese
"  transliteration.  As a result, backward compatibility is not guaranteed.
"
"  NOTE
"  ----
"  1.	In general, the transliteration is based on Japanese Government's
"	Cabinet	Notification 1 (Dec. 9, 1954).
"
"	Summary:
"
"	(1) To transliterate Japanese language, Table 1 should be used
"	   primarily.
"	(2) Table 2 may be used only when existing conventions such as
"	   international relationship should be respected.
"	(3) Other transliteration is acceptable only when neither Table 1
"	    nor Table 2 gives any specification of the sound in question
"
"	For details, refer to
"
"	    http://xembho.tripod.com/siryo/naikaku_kokuzi.html
"
"  2.	The specification instructed by the Cabinet Notification is rather
"	inadequate even for daily use.  At the present time there are thus
"	many unauthorized but widely accepted conventions used together with
"	the authorized transliteration.  This kmap contains some of them for
"	user's convenience (cf. Hiragana 3 and Katakana 3).
"
"  3.	For the unicode mapping relevant to this kmap, refer to	3075--30F5 of
"
"	    http://www.macchiato.com/unicode/charts.html
"
"  HISTORY
"  -------
"  2005-01-11	<danken@cs.technion.ac.il>
"	* Converted to Vim format.
"  2003-01-22	<kazunobu.kuriyama@nifty.com>
"
"	* Submitted to gsinai@yudit.org
"
" ============================================================================

scriptencoding utf-8

" ----------------------------------------------------------------------------
"  Kigou (Punctuation etc.)
" ----------------------------------------------------------------------------

let b:keymap_name = "kana"

loadkeymap
"0x20  0x3000
, 、
. 。
,, 〃


xx 〆
@ 〇
< 〈
> 〉
<< 《
>> 》
{ 「
} 」
{{ 『
}} 』
[.( 【
).] 】


[ 〔
] 〕
[( 〖
)] 〗


[[ 〚
]] 〛


.. ・
- ー


" ----------------------------------------------------------------------------
"  Hiragana 1 --- Table 1, Cabinet Notification No. 1 (Dec. 9, 1954)
" ----------------------------------------------------------------------------
a あ
i い
u う
e え
o お

ka か
ki き
ku く
ke け
ko こ

sa さ
si し
su す
se せ
so そ

ta た
ti ち
tu つ
te て
to と

na な
ni に
nu ぬ
ne ね
no の

ha は
hi ひ
hu ふ
he へ
ho ほ

ma ま
mi み
mu む
me め
mo も

ya や
yu ゆ
yo よ

ra ら
ri り
ru る
re れ
ro ろ

wa わ

ga が
gi ぎ
gu ぐ
ge げ
go ご

za ざ
zi じ
zu ず
ze ぜ
zo ぞ

da だ
de で
do ど

ba ば
bi び
bu ぶ
be べ
bo ぼ

pa ぱ
pi ぴ
pu ぷ
pe ぺ
po ぽ

kya きゃ
kyu きゅ
kyo きょ

sya しゃ
syu しゅ
syo しょ

tya ちゃ
tyu ちゅ
tyo ちょ

nya にゃ
nyu にゅ
nyo にょ

hya ひゃ
hyu ひゅ
hyo ひょ

mya みゃ
myu みゅ
myo みょ

rya りゃ
ryu りゅ
ryo りょ

gya ぎゃ
gyu ぎゅ
gyo ぎょ

zya じゃ
zyu じゅ
zyo じょ

bya びゃ
byu びゅ
byo びょ

pya ぴゃ
pyu ぴゅ
pyo ぴょ

n ん
n' ん


" ----------------------------------------------------------------------------
"  Hiragana 2 --- Table 2, Cabinet Notification No. 1 (Dec. 9, 1954)
" ----------------------------------------------------------------------------
sha しゃ
shi し
shu しゅ
sho しょ

tsu つ

cha ちゃ
chi ち
chu ちゅ
cho ちょ

fu ふ

ja じゃ
ji じ
ju じゅ
jo じょ

di ぢ
du づ
dya ぢゃ
dyu ぢゅ
dyo ぢょ

kwa くゎ
gwa ぐゎ

wo を


" ----------------------------------------------------------------------------
"  Hiragana 3 --- Conventional transliterations
" ----------------------------------------------------------------------------

" Small Hiragana: The prefix X is never pronounced.  It is used as something
" like an escape character.
xa ぁ
xi ぃ
xu ぅ
xe ぇ
xo ぉ

xtu っ

xya ゃ
xyu ゅ
xyo ょ

xwa ゎ

" Historic `wi' and `we'
wi ゐ
we ゑ

" Preceded by a small `tu'
kka っか
kki っき
kku っく
kke っけ
kko っこ

ssa っさ
ssi っし
ssu っす
sse っせ
sso っそ

tta った
tti っち
ttu っつ
tte って
tto っと

hha っは
hhi っひ
hhu っふ
hhe っへ
hho っほ

mma っま
mmi っみ
mmu っむ
mme っめ
mmo っも

yya っや
yyu っゆ
yyo っよ

rra っら
rri っり
rru っる
rre っれ
rro っろ

wwa っわ

gga っが
ggi っぎ
ggu っぐ
gge っげ
ggo っご

zza っざ
zzi っじ
zzu っず
zze っぜ
zzo っぞ

dda っだ
ddi っぢ
ddu っづ
dde っで
ddo っど

bba っば
bbi っび
bbu っぶ
bbe っべ
bbo っぼ

ppa っぱ
ppi っぴ
ppu っぷ
ppe っぺ
ppo っぽ

" Proceded by a small `tu' and followed by a small 'ya', 'yu' or 'yo'
kkya っきゃ
kkyu っきゅ
kkyo っきょ

ssya っしゃ
ssyu っしゅ
ssyo っしょ

ttya っちゃ
ttyu っちゅ
ttyo っちょ

hhya っひゃ
hhyu っひゅ
hhyo っひょ

mmya っみゃ
mmyu っみゅ
mmyo っみょ

rrya っりゃ
rryu っりゅ
rryo っりょ

ggya っぎゃ
ggyu っぎゅ
ggyo っぎょ

zzya っじゃ
zzyu っじゅ
zzyo っじょ

bbya っびゃ
bbyu っびゅ
bbyo っびょ

ppya っぴゃ
ppyu っぴゅ
ppyo っぴょ


" ----------------------------------------------------------------------------
"  Katakana 1 --- Table 1, Cabinet Notification No. 1 (Dec. 9, 1954)
" ----------------------------------------------------------------------------
A ア
I イ
U ウ
E エ
O オ

KA カ
KI キ
KU ク
KE ケ
KO コ

SA サ
SI シ
SU ス
SE セ
SO ソ

TA タ
TI チ
TU ツ
TE テ
TO ト

NA ナ
NI ニ
NU ヌ
NE ネ
NO ノ

HA ハ
HI ヒ
HU フ
HE ヘ
HO ホ

MA マ
MI ミ
MU ム
ME メ
MO モ

YA ヤ
YU ユ
YO ヨ

RA ラ
RI リ
RU ル
RE レ
RO ロ

WA ワ

GA ガ
GI ギ
GU グ
GE ゲ
GO ゴ

ZA ザ
ZI ジ
ZU ズ
ZE ゼ
ZO ゾ

DA ダ
DE デ
DO ド

BA バ
BI ビ
BU ブ
BE ベ
BO ボ

PA パ
PI ピ
PU プ
PE ペ
PO ポ

KYA キャ
KYU キュ
KYO キョ

SYA シャ
SYU シュ
SYO ショ

TYA チャ
TYU チュ
TYO チョ

NYA ニャ
NYU ニュ
NYO ニョ

HYA ヒャ
HYU ヒュ
HYO ヒョ

MYA ミャ
MYU ミュ
MYO ミョ

RYA リャ
RYU リュ
RYO リョ

GYA ギャ
GYU ギュ
GYO ギョ

ZYA ジャ
ZYU ジュ
ZYO ジョ

BYA ビャ
BYU ビュ
BYO ビョ

PYA ピャ
PYU ピュ
PYO ピョ

N ン
N' ン


" ----------------------------------------------------------------------------
"  Katakana 2 --- Table 2, Cabinet Notification No. 1 (Dec. 9, 1954)
" ----------------------------------------------------------------------------
SHA シャ
SHI シ
SHU シュ
SHO ショ

TSU ツ

CHA チャ
CHI チ
CHU チュ
CHO チョ

FU フ

JA ジャ
JI ジ
JU ジュ
JO ジョ

DI ヂ
DU ヅ
DYA ヂャ
DYU ヂュ
DYO ヂョ

KWA クヮ
GWA グヮ

WO ヲ


" ----------------------------------------------------------------------------
"  Katakana 3 --- Conventional transliterations
" ----------------------------------------------------------------------------

" Small Katakana: The prefix X is never pronounced.  It is used as something
" like an escape character.
XA ァ
XI ィ
XU ゥ
XE ェ
XO ォ

XTU ッ

XYA ャ
XYU ュ
XYO ョ

XWA ヮ

" Used only for counting someone or something
XKA ヵ
XKE ヶ

" Historic `wi' and `we'
WI ヰ
WE ヱ

" Used for the sound `v' of European languages
VA ヴァ
VI ヴィ
VU ヴ
VE ヴェ
VO ヴォ

VYU ヴュ

" Preceded by a small `tu'
KKA ッカ
KKI ッキ
KKU ック
KKE ッケ
KKO ッコ

SSA ッサ
SSI ッシ
SSU ッス
SSE ッセ
SSO ッソ

TTA ッタ
TTI ッチ
TTU ッツ
TTE ッテ
TTO ット

HHA ッハ
HHI ッヒ
HHU ッフ
HHE ッヘ
HHO ッホ

MMA ッマ
MMI ッミ
MMU ッム
MME ッメ
MMO ッモ

YYA ッヤ
YYU ッユ
YYO ッヨ

RRA ッラ
RRI ッリ
RRU ッル
RRE ッレ
RRO ッロ

WWA ッワ

GGA ッガ
GGI ッギ
GGU ッグ
GGE ッゲ
GGO ッゴ

ZZA ッザ
ZZI ッジ
ZZU ッズ
ZZE ッゼ
ZZO ッゾ

DDA ッダ
DDI ッヂ
DDU ッヅ
DDE ッデ
DDO ッド

BBA ッバ
BBI ッビ
BBU ッブ
BBE ッベ
BBO ッボ

PPA ッパ
PPI ッピ
PPU ップ
PPE ッペ
PPO ッポ

" Proceded by a small `tu' and followed by a small 'ya', 'yu' or 'yo'
KKYA ッキャ
KKYU ッキュ
KKYO ッキョ

SSYA ッシャ
SSYU ッシュ
SSYO ッショ

TTYA ッチャ
TTYU ッチュ
TTYO ッチョ

HHYA ッヒャ
HHYU ッヒュ
HHYO ッヒョ

MMYA ッミャ
MMYU ッミュ
MMYO ッミョ

RRYA ッリャ
RRYU ッリュ
RRYO ッリョ

GGYA ッギャ
GGYU ッギュ
GGYO ッギョ

ZZYA ッジャ
ZZYU ッジュ
ZZYO ッジョ

BBYA ッビャ
BBYU ッビュ
BBYO ッビョ

PPYA ッピャ
PPYU ッピュ
PPYO ッピョ


PK�j�Z0I/���"vim80/keymap/lithuanian-baltic.vimnu�[���" Vim Keymap file for lithuanian characters, phonetic layout 'Baltic'
" Useful mainly with utf-8 but may work with other encodings

" Maintainer:   Alex Jakushev <Alex.Jakushev@kemek.lt>
" Last Changed: 2002 Apr 12

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "lt"

loadkeymap
!	Ą	LITHUANIAN CAPITAL A NOSINE
@	Č	LITHUANIAN CAPITAL CH
#	Ę	LITHUANIAN CAPITAL E NOSINE
$	Ė	LITHUANIAN CAPITAL E SU TASKU
%	Į	LITHUANIAN CAPITAL I NOSINE
^	Š	LITHUANIAN CAPITAL SH
&	Ų	LITHUANIAN CAPITAL U NOSINE
*	Ū	LITHUANIAN CAPITAL U SU BRUKSNIU
+	Ž	LITHUANIAN CAPITAL ZH
1	ą	LITHUANIAN LOWERCASE A NOSINE
2	č	LITHUANIAN LOWERCASE CH
3	ę	LITHUANIAN LOWERCASE E NOSINE
4	ė	LITHUANIAN LOWERCASE E SU TASKU
5	į	LITHUANIAN LOWERCASE I NOSINE
6	š	LITHUANIAN LOWERCASE SH
7	ų	LITHUANIAN LOWERCASE U NOSINE
8	ū	LITHUANIAN LOWERCASE U SU BRUKSNIU
=	ž	LITHUANIAN LOWERCASE ZH
PK�j�ZU9���$vim80/keymap/croatian_iso-8859-2.vimnu�[���" Vim Keymap file for Croatian characters, classical variant, iso-8859-2 encoding
" 
" Maintainer:   Paul B. Mahol <onemda@gmail.com>
" Last Changed: 2007 Oct 14

scriptencoding iso-8859-2

let b:keymap_name = "croatian-iso-8859-2"
" Uncomment line below if you prefer short name
"let b:keymap_name = "hr-iso-8859-2"

loadkeymap
" swap y and z, not important
z	y
Z	Y
y	z
Y	Z

" s<
[	�
" S<
{	�
" D/
}	�
" d/
]	�
" c<
;	�
" c'
'	�
" C<
:	�
" C'
"	�
" z<
\	�
" Z<
|	�
�	|
�	@
�	\
�	�
�	�
�	�
�	�
�	�
�	�
�	�
�	{
�	}
�	[
�	]
@	"
^	&
&	/
*	(
(	)
)	=
_	?
-	'
=	+
+	*
/	-
<	;
>	:
?	_
�	~
�	�
�	�
�	�
�	^
�	�
�	�
�	`
�	�
�	�
�	�

" you still want to be able to type <, >
�	<
�	>

`	�
�	�
PK�j�Z��C�''vim80/keymap/esperanto.vimnu�[���source <sfile>:p:h/esperanto_utf-8.vim
PK�j�Z�Lfbbvim80/keymap/croatian_utf-8.vimnu�[���" Vim Keymap file for Croatian characters, classical variant, UTF-8 encoding
" 
" Maintainer:   Paul B. Mahol <onemda@gmail.com>
" Last Changed: 2007 Oct 14

scriptencoding UTF-8

let b:keymap_name = "croatian-UTF-8"
" Uncomment line below if you prefer short name
"let b:keymap_name = "hr-UTF-8"

loadkeymap
z	y
Z	Y
y	z
Y	Z
[	š
{	Š
]	đ
}	Đ
;	č
:	Č
'	ć
"	Ć
\	ž
|	Ž
@	"
^	&
&	/
*	(
(	)
)	=
_	?
+	*
=	+
-	'
æ	[
ç	]
â	{
î	}
<	;
>	:
/	-
?	_
ö	@
ñ	\
÷	|
å	€
¬	<
®	>
±	~
²	ˇ
³	^
´	˘
µ	°
·	`
¹	´
í	§
Û	÷
Ü	¤
Ý	×
§	ß
ì	ł
Ì	Ł
°	˝
`	¸
½	¸
­	¨
PK�j�ZP��EEvim80/keymap/hebrewp.vimnu�[���let encoding = &enc
if encoding == 'latin1'
    if has("unix")
	let encoding = 'iso-8859-8'
    else
	let encoding = 'cp1255'
    endif
endif

if encoding == 'utf-8'
	source <sfile>:p:h/hebrewp_utf-8.vim
elseif encoding == 'cp1255'
	source <sfile>:p:h/hebrewp_cp1255.vim
else
	source <sfile>:p:h/hebrewp_iso-8859-8.vim
endif
PK�j�ZK���&vim80/keymap/thaana-phonetic_utf-8.vimnu�[���" thaana keymap 
" Maintainer: Ibrahim fayaz <p h a y a x at gmail dot com>
" please set enc to utf-8
" thaana phonetic keyboard is used as a reference
" http://www.mcst.gov.mv/News_and_Events/xpfonts.htm
" changelog: 18th Feb 2006 - came up the initial idea of writing the keymap..
"            13th May 2006 - made some few corrections regarding < and >..

let b:keymap_name= "thaana"

" THAANA NORMAL LETTERS
loadkeymap
h	<char-0x0780> "letter haa
S	<char-0x0781> "shaviani
n	<char-0x0782> "noonu
r	<char-0x0783> "raa
b	<char-0x0784> "baa
L	<char-0x0785> "lhaviani
k	<char-0x0786> "kaafu
w	<char-0x0787> "alifu  
v	<char-0x0788> "vaavu
m	<char-0x0789> "meemu
f	<char-0x078A> "faafu
d	<char-0x078B> "dhaalu
t	<char-0x078C> "thaa
l	<char-0x078D> "laamu
g	<char-0x078E> "gaafu
N	<char-0x078F> "gnaviani
s	<char-0x0790> "seenu
D	<char-0x0791> "daviani
z	<char-0x0792> "zaviani
T	<char-0x0793> "taviani
y	<char-0x0794> "yaa
p	<char-0x0795> "paviani
j	<char-0x0796> "javiani
c	<char-0x0797> "chaviani

"THAANA DOTTED LETTERS
X	<char-0x0798> "TTAA   (thaa mathee thin thiki)
H	<char-0x0799> "HHAA   (haa thiree ehthiki)
K	<char-0x079A> "KHAA   (haa mathee ehthiki)
J	<char-0x079B> "THAALU (dhaa mathee ehthiki)
R	<char-0x079C> "ZAA    (raa mathee ehthiki)
C	<char-0x079D> "SHEENU (seenu mathee thinthiki)
M	<char-0x079E> "SAADHU (seenu thiree ehthiki)
B	<char-0x079F> "DHAADHU(seenu mathee ehthiki)
Y	<char-0x07A0> "TO     (thaa thiree ehthiki)
Z	<char-0x07A1> "ZO     (thaa mathee ehthiki)
W 	<char-0x07A2> "AINU   (alifu thiree ehthiki)
G	<char-0x07A3> "GHAINU (alifu mathee ehthiki)
Q	<char-0x07A4> "QAAFU  (gaafu mathee dhethkiki)
V	<char-0x07A5> "VAAVU  (vaavu mathee ehthiki)

"THAANA FILI (combining characters)
a	<char-0x07A6> "abafili
A	<char-0x07A7> "aabaafili
i	<char-0x07A8> "ibifili
I	<char-0x07A9> "eebeefili
u	<char-0x07AA> "ubufili
U	<char-0x07AB> "ooboofili
e	<char-0x07AC> "ebefili
E	<char-0x07AD> "ebeyfili
o	<char-0x07AE> "obofili
O	<char-0x07AF> "oaboafili
q	<char-0x07B0> "sukun

"OTHER THAANA RELATED
F	<char-0xFDF2> "arabic ligature allah isolated form
?	<char-0x061F> "arabic question mark 
"~	<char-0xFDFD> "arabic -bismillah ahrahman araheem- not in phonetic keyboard, thats why commented 
[	<char-0x005D> "english open bracket is thaana closing bracket 
]	<char-0x005B> "english close bracket = thaana open bracket
{	<char-0x007B> "braces reversed
}	<char-0x007D>
x	<char-0x00D7> " x for multiplication sign.. 
P	<char-0x00F7> " division symbol mapped to 'p'
>	<char-0x003C>
<	<char-0x003E>
<M-v>	<char-0x200D> "zwj - ZERO WIDTH JOINER      i dont know how to use these yet..
<M-b>	<char-0x200C> "zwnj - ZERO WIDTH NON JOINER
<M-n>	<char-0x200E> "lrm - LEFT TO RIGHT MARK
<M-m> 	<char-0x200F> "rlm - RIGHT TO LEFT MARK
;	<char-0x061B> "arabic semicolon
,	<char-0x060C> "arabic coma
<M-;>	;
<M-,>	,
PK�j�ZT$��vim80/keymap/canfr-win.vimnu�[���" Vim Keymap file for the normalized Canadian multilingual keyboard
" CAN/CSA Z243.200-92 using the latin1 encoding.
" This mapping is limited in scope, as it assumes that the AltGr
" key works as it typically does in a Windows system with a multilingual
" English keyboard.  It probably won't work with the US keyboard on US
" English versions of Windows, because those don't provide the AltGr keys.
" The mapping was tested with Win2k and WinXP.

" Maintainer: Eric Joanis <joanis@cs.toronto.edu>
" Last Change: 2004 Jan 13

" 2003 Dec 04
" Initial Revision

" 2004 Jan 13
" Added the upper case accented characters, forgotten in the initial version.

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding latin1

" Use this short name in the status line.
let b:keymap_name = "canfr"

loadkeymap
<	'
>	"
/	�
?	�
'	�
\"	�
\\	�
|	�
[a	�
[e	�
[i	�
[o	�
[u	�
[A	�
[E	�
[I	�
[O	�
[U	�
[[	^
{a	�
{e	�
{i	�
{o	�
{u	�
{y	�
{A	�
{E	�
{I	�
{O	�
{U	�
]	�
}	�
`	/
~	\\
^	?
�	�
�	�
�	<
�	>
�	�
�a	�
�e	�
�i	�
�o	�
�u	�
�A	�
�E	�
�I	�
�O	�
�U	�
��	`
�a	�
�o	�
�n	�
�s	�
�A	�
�O	�
�N	�
�S	�
��	~
�	|
�	{
�	}
�	[
�	]
�	�
PK�j�Z}�|q��#vim80/keymap/serbian_iso-8859-2.vimnu�[���" Vim Keymap file for Serbian characters, classical variant, iso-8859-2 encoding
"
" Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.edu>
" URL:		    http://www.cs.cmu.edu/~aleksa/personal/vim/keymap/serbian-iso-8859-2.vim
" Last Changed: 2002 Mar 29

scriptencoding iso-8859-2

let b:keymap_name = "serbian-iso-8859-2"

loadkeymap
Y	Z
{	�
}	�
y	z
[	�
]	�
:   �
\"	�
\|	�
;	�
'	�
\\	�
"Z	Y
"z	y
<	;
>	:
/	-
_	?
,,	?
''	?

" @	"
" #	'
" $	*
" %	:
" ^	,
" &amp;	.
" *	;

PK�j�Z%�V�TT!vim80/keymap/greek_iso-8859-7.vimnu�[���" Vim Keymap file for greek
" Maintainer: Grigorios Magklis <maglis@cs.rochester.edu>
" Last Updated: Tue 10 Jul 2001 16:50:50
"
" This keyboard layout allows all Greek symbols to be typed,
" including accented capitals, diaeresis & accent on the same
" vowel, and the Greek semicolon sign.
"
" accent			";" + letter
" diaeresis			":" + letter
" diaeresis + accent		";" + ":" (or ":" + ";") + letter
" semicolon			"q"
" colon				"Q"
" greek semicolon		"W"
" sigma at end of word		"w"
" greek left double-quote	"<" twice
" greek right double-quote	">" twice

" Use this short name in the status line.
let b:keymap_name = "greek"

loadkeymap
" capital
A	<char-193>	" �
B	<char-194>	" �
G	<char-195>	" �
D	<char-196>	" �
E	<char-197>	" �
Z	<char-198>	" �
H	<char-199>	" �
U	<char-200>	" �
I	<char-201>	" �
K	<char-202>	" �
L	<char-203>	" �
M	<char-204>	" �
N	<char-205>	" �
J	<char-206>	" �
O	<char-207>	" �
P	<char-208>	" �
R	<char-209>	" �
S	<char-211>	" �
T	<char-212>	" �
Y	<char-213>	" �
F	<char-214>	" �
X	<char-215>	" �
C	<char-216>	" �
V	<char-217>	" �

" small
a	<char-225>	" �
b	<char-226>	" �
g	<char-227>	" �
d	<char-228>	" �
e	<char-229>	" �
z	<char-230>	" �
h	<char-231>	" �
u	<char-232>	" �
i	<char-233>	" �
k	<char-234>	" �
l	<char-235>	" �
m	<char-236>	" �
n	<char-237>	" �
j	<char-238>	" �
o	<char-239>	" �
p	<char-240>	" �
r	<char-241>	" �
w	<char-242>	" �
s	<char-243>	" �
t	<char-244>	" �
y	<char-245>	" �
f	<char-246>	" �
x	<char-247>	" �
c	<char-248>	" �
v	<char-249>	" �

" accented capital
;A	<char-182>	" �
;E	<char-184>	" �
;H	<char-185>	" �
;I	<char-186>	" �
;Y	<char-190>	" �
;O	<char-188>	" �
;V	<char-191>	" �
"
:I	<char-218>	" �
:Y	<char-219>	" �

" accented small
;a	<char-220>	" �
;e	<char-221>	" �
;h	<char-222>	" �
;i	<char-223>	" �
;y	<char-253>	" �
;o	<char-252>	" �
;v	<char-254>	" �
"
:i	<char-250>	" �
:y	<char-251>	" �
"
;:i	<char-192>	" �
:;i	<char-192>	" �
;:y	<char-224>	" �
:;y	<char-224>	" �

" symbols
q	;		" ;
Q	:		" :
W	<char-183>	" �
;	<char-180>	" �
:	<char-168>	" �
;:	<char-181>	" �
:;	<char-181>	" �

" quotes
<<	<char-171>	" �
>>	<char-187>	" �
" <char-161>	" �
" <char-162>	" �
PK�j�Zi*���vim80/keymap/dvorak.vimnu�[���" Maintainer:   Ashish SHUKLA <wahjava@members.fsf.org>
" Last Changed: 2009 Jul 04
"
" All characters are ASCII, conversion to another encoding (e.g., UTF-8)
" should work.

let b:keymap_name = "en-dv"

loadkeymap
q	'
w	,
e	.
r	p
t	y
y	f
u	g
i	c
o	r
p	l
[	/
]	=
\\	\\
a	a
s	o
d	e
f	u
g	i
h	d
j	h
k	t
l	n
;	s
'	-
z	;
x	q
c	j
v	k
b	x
n	b
m	m
,	w
.	v
/	z
Z	:
X	Q
C	J
V	K
B	X
N	B
M	M
<	W
>	V
?	Z
A	A
S	O
D	E
F	U
G	I
H	D
J	H
K	T
L	N
:	S
\"	_
Q	"
W	<
E	>
R	P
T	Y
Y	F
U	G
I	C
O	R
P	L
{	?
}	+
|	|
-	[
_	{
=	]
+	}

PK�j�ZrL
9�
�
"vim80/keymap/russian-jcukenmac.vimnu�[���" Vim Keymap file for russian characters, layout 'jcuken', Mac variant

" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Maintainer:   Anton Fonarev <avfonarev@gmail.com>
" Last Changed: 2016 August 17

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.

scriptencoding utf-8

let b:keymap_name = "ru"

loadkeymap

\|  Ё   CYRILLIC CAPITAL LETTER IO
\\  ё   CYRILLIC SMALL LETTER IO

F   А   CYRILLIC CAPITAL LETTER A
<   Б   CYRILLIC CAPITAL LETTER BE
D   В   CYRILLIC CAPITAL LETTER VE
U   Г   CYRILLIC CAPITAL LETTER GHE
L   Д   CYRILLIC CAPITAL LETTER DE
T   Е   CYRILLIC CAPITAL LETTER IE
:   Ж   CYRILLIC CAPITAL LETTER ZHE
P   З   CYRILLIC CAPITAL LETTER ZE
B   И   CYRILLIC CAPITAL LETTER I
Q   Й   CYRILLIC CAPITAL LETTER SHORT I
R   К   CYRILLIC CAPITAL LETTER KA
K   Л   CYRILLIC CAPITAL LETTER EL
V   М   CYRILLIC CAPITAL LETTER EM
Y   Н   CYRILLIC CAPITAL LETTER EN
J   О   CYRILLIC CAPITAL LETTER O
G   П   CYRILLIC CAPITAL LETTER PE
H   Р   CYRILLIC CAPITAL LETTER ER
C   С   CYRILLIC CAPITAL LETTER ES
N   Т   CYRILLIC CAPITAL LETTER TE
E   У   CYRILLIC CAPITAL LETTER U
A   Ф   CYRILLIC CAPITAL LETTER EF
{   Х   CYRILLIC CAPITAL LETTER HA
W   Ц   CYRILLIC CAPITAL LETTER TSE
X   Ч   CYRILLIC CAPITAL LETTER CHE
I   Ш   CYRILLIC CAPITAL LETTER SHA
O   Щ   CYRILLIC CAPITAL LETTER SHCHA
}   Ъ   CYRILLIC CAPITAL LETTER HARD SIGN
S   Ы   CYRILLIC CAPITAL LETTER YERU
M   Ь   CYRILLIC CAPITAL LETTER SOFT SIGN
\"  Э   CYRILLIC CAPITAL LETTER E
>   Ю   CYRILLIC CAPITAL LETTER YU
Z   Я   CYRILLIC CAPITAL LETTER YA
f   а   CYRILLIC SMALL LETTER A
,   б   CYRILLIC SMALL LETTER BE
d   в   CYRILLIC SMALL LETTER VE
u   г   CYRILLIC SMALL LETTER GHE
l   д   CYRILLIC SMALL LETTER DE
t   е   CYRILLIC SMALL LETTER IE
;   ж   CYRILLIC SMALL LETTER ZHE
p   з   CYRILLIC SMALL LETTER ZE
b   и   CYRILLIC SMALL LETTER I
q   й   CYRILLIC SMALL LETTER SHORT I
r   к   CYRILLIC SMALL LETTER KA
k   л   CYRILLIC SMALL LETTER EL
v   м   CYRILLIC SMALL LETTER EM
y   н   CYRILLIC SMALL LETTER EN
j   о   CYRILLIC SMALL LETTER O
g   п   CYRILLIC SMALL LETTER PE
h   р   CYRILLIC SMALL LETTER ER
c   с   CYRILLIC SMALL LETTER ES
n   т   CYRILLIC SMALL LETTER TE
e   у   CYRILLIC SMALL LETTER U
a   ф   CYRILLIC SMALL LETTER EF
[   х   CYRILLIC SMALL LETTER HA
w   ц   CYRILLIC SMALL LETTER TSE
x   ч   CYRILLIC SMALL LETTER CHE
i   ш   CYRILLIC SMALL LETTER SHA
o   щ   CYRILLIC SMALL LETTER SHCHA
]   ъ   CYRILLIC SMALL LETTER HARD SIGN
s   ы   CYRILLIC SMALL LETTER YERU
m   ь   CYRILLIC SMALL LETTER SOFT SIGN
'   э   CYRILLIC SMALL LETTER E
.   ю   CYRILLIC SMALL LETTER YU
z   я   CYRILLIC SMALL LETTER YA

§   >
±   <
@   "
#   №
$   %
%   :
^   ,
&   .
*   ;
`   ]
~   [
PK�j�Z��4BBvim80/keymap/slovak.vimnu�[���let encoding = &enc
if encoding == 'latin1'
    if has("unix")
	let encoding = 'iso-8859-2'
    else
	let encoding = 'cp1250'
    endif
endif

if encoding == 'utf-8'
	source <sfile>:p:h/slovak_utf-8.vim
elseif encoding == 'cp1250'
	source <sfile>:p:h/slovak_cp1250.vim
else
	source <sfile>:p:h/slovak_iso-8859-2.vim
endif
PK�j�Z8.ԾKK%vim80/keymap/vietnamese-vni_utf-8.vimnu�[���" Vim Keymap file for Vietnamese through VNI method
" Maintainer: Raphael McSinyx <vn.mcsinyx@gmail.com>
" Last Change: 2016-06-13

scriptencoding utf-8

let b:keymap_name = "vi"

loadkeymap

A\\	A
A1	Á
A2	À
A3	Ả
A4	Ã
A5	Ạ

A8	Ă
A8\\	Ă
A81	Ắ
A82	Ằ
A83	Ẳ
A84	Ẵ
A85	Ặ

A6	Â
A6\\	Â
A61	Ấ
A62	Ầ
A63	Ẩ
A64	Ẫ
A65	Ậ

D	D
D\\	D
D9	Đ

E\\	E
E1	É
E2	È
E3	Ẻ
E4	Ẽ
E5	Ẹ

E6	Ê
E6\\	Ê
E61	Ế
E62	Ề
E63	Ể
E64	Ễ
E65	Ệ

I\\	I
I1	Í
I2	Ì
I3	Ỉ
I4	Ĩ
I5	Ị

O\\	O
O1	Ó
O2	Ò
O3	Ỏ
O4	Õ
O5	Ọ

O6	Ô
O6\\	Ô
O61	Ố
O62	Ồ
O63	Ổ
O64	Ỗ
O65	Ộ

O7	Ơ
O7\\	Ơ
O71	Ớ
O72	Ờ
O73	Ở
O74	Ỡ
O75	Ợ

U\\	U
U1	Ú
U2	Ù
U3	Ủ
U4	Ũ
U5	Ụ

U7	Ư
U7\\	Ư
U71	Ứ
U72	Ừ
U73	Ử
U74	Ữ
U75	Ự

Y\\	Y
Y1	Ý
Y2	Ỳ
Y3	Ỷ
Y4	Ỹ
Y5	Ỵ

a\\	a
a1	á
a2	à
a3	ả
a4	ã
a5	ạ

a8	ă
a8\\	ă
a81	ắ
a82	ằ
a83	ẳ
a84	ẵ
a85	ặ

a6	â
a6\\	â
a61	ấ
a62	ầ
a63	ẩ
a64	ẫ
a65	ậ

d\\	d
d9	đ

e\\	e
e1	é
e2	è
e3	ẻ
e4	ẽ
e5	ẹ

e6	ê
e6\\	ê
e61	ế
e62	ề
e63	ể
e64	ễ
e65	ệ

i\\	i
i1	í
i2	ì
i3	ỉ
i4	ĩ
i5	ị

o\\	o
o1	ó
o2	ò
o3	ỏ
o4	õ
o5	ọ

o6	ô
o6\\	ô
o61	ố
o62	ồ
o63	ổ
o64	ỗ
o65	ộ

o7	ơ
o7\\	ơ
o71	ớ
o72	ờ
o73	ở
o74	ỡ
o75	ợ

u\\	u
u1	ú
u2	ù
u3	ủ
u4	ũ
u5	ụ

u7	ư
u7\\	ư
u71	ứ
u72	ừ
u73	ử
u74	ữ
u75	ự

y\\	y
y1	ý
y2	ỳ
y3	ỷ
y4	ỹ
y5	ỵ
PK�j�Z��Ʃ��&vim80/keymap/vietnamese-viqr_utf-8.vimnu�[���" Vim Keymap file for vietnamese through the usual viqr method
" Maintainer: Samuel Thibault <samuel.thibault@ens-lyon.org>
" Last Change: 2006 Jun 17

scriptencoding utf-8

let b:keymap_name = "vietnamese"

loadkeymap
a	a
A	A
a`	à
A`	À
a?	ả
A?	Ả
a~	ã
A~	Ã
a'	á
A'	Á
a.	ạ
A.	Ạ
a(	ă
A(	Ă
a(`	ằ
A(`	Ằ
a(?	ẳ
A(?	Ẳ
a(~	ẵ
A(~	Ẵ
a('	ắ
A('	Ắ
a(.	ặ
A(.	Ặ
a^	â
A^	Â
a^`	ầ
A^`	Ầ
a^?	ẩ
A^?	Ẩ
a^~	ẫ
A^~	Ẫ
a^'	ấ
A^'	Ấ
a^.	ậ
A^.	Ậ
d	d
D	D
dd	đ
Dd	Đ
DD	Đ
e	e
E	E
e`	è
E`	È
e?	ẻ
E?	Ẻ
e~	ẽ
E~	Ẽ
e'	é
E'	É
e.	ẹ
E.	Ẹ
e^	ê
E^	Ê
e^`	ề
E^`	Ề
e^?	ể
E^?	Ể
e^~	ễ
E^~	Ễ
e^'	ế
E^'	Ế
e^.	ệ
E^.	Ệ
i	i
I	I
i`	ì
I`	Ì
i?	ỉ
I?	Ỉ
i~	ĩ
I~	Ĩ
i'	í
I'	Í
i.	ị
I.	Ị
o	o
O	O
o`	ò
O`	Ò
o?	ỏ
O?	Ỏ
o~	õ
O~	Õ
o'	ó
O'	Ó
o.	ọ
O.	Ọ
o^	ô
O^	Ô
o^`	ồ
O^`	Ồ
o^?	ổ
O^?	Ổ
o^~	ỗ
O^~	Ỗ
o^'	ố
O^'	Ố
o^.	ộ
O^.	Ộ
o+	ơ
O+	Ơ
o+`	ờ
O+`	Ờ
o+?	ở
O+?	Ở
o+~	ỡ
O+~	Ỡ
o+'	ớ
O+'	Ớ
o+.	ợ
O+.	Ợ
u	u
U	U
u`	ù
U`	Ù
u?	ủ
U?	Ủ
u~	ũ
U~	Ũ
u'	ú
U'	Ú
u.	ụ
U.	Ụ
u+	ư
U+	Ư
u+`	ừ
U+`	Ừ
u+?	ử
U+?	Ử
u+~	ữ
U+~	Ữ
u+'	ứ
U+'	Ứ
u+.	ự
U+.	Ự
y	y
Y	Y
y`	ỳ
Y`	Ỳ
y?	ỷ
Y?	Ỷ
y~	ỹ
Y~	Ỹ
y'	ý
Y'	Ý
y.	ỵ
Y.	Ỵ
\\d	d
\\D	D
PK�j�Z`�t�,,$vim80/keymap/serbian-latin_utf-8.vimnu�[���" Vim Keymap file for Serbian characters, classical variant, UTF-8 encoding
"
" Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.edu>
" URL:		    http://www.cs.cmu.edu/~aleksa/personal/vim/keymap/serbian-latin-UTF-8.vim
" Last Changed: 2002 Mar 29

scriptencoding UTF-8

let b:keymap_name = "serbian-UTF-8"

loadkeymap
Y	Z
{	Š
}	Đ
y	z
[	š
]	đ
:   Č
\"	Ć
\|	Ž
;	č
'	ć
\\	ž
"Z	Y
"z	y
<	;
>	:
/	-
_	?
,,	„
''	”

E$	<char-0x20AC>	" EURO SIGN
--	<char-0x2013>	" endash
---	<char-0x2014>	" emdash

" @	"
" #	'
" $	*
" %	:
" ^	,
" &amp;	.
" *	;

PK�j�Z!J�R��vim80/keymap/serbian.vimnu�[���let encoding = &enc
if encoding == 'latin1'
    if has("unix")
	let encoding = 'iso-8859-2'
    else
	let encoding = 'cp1250'
    endif
endif

if encoding == 'utf-8'
	source <sfile>:p:h/serbian_utf-8.vim
elseif encoding == 'cp1250'
	source <sfile>:p:h/serbian_cp1250.vim
elseif encoding == 'cp1251'
	source <sfile>:p:h/serbian_cp1251.vim
elseif encoding == 'iso-8859-2'
	source <sfile>:p:h/serbian_iso-8859-2.vim
else
	source <sfile>:p:h/serbian_iso-8859-5.vim
endif
PK�j�Z��TTvim80/keymap/croatian.vimnu�[���let s:encoding = &enc
if s:encoding == 'latin1'
    if has("unix")
	let s:encoding = 'iso-8859-2'
    else
	let s:encoding = 'cp1250'
    endif
endif

if s:encoding == 'utf-8'
	source <sfile>:p:h/croatian_utf-8.vim
elseif s:encoding == 'cp1250'
	source <sfile>:p:h/croatian_cp1250.vim
else
	source <sfile>:p:h/croatian_iso-8859-2.vim
endif
PK�j�Z&�#��'vim80/keymap/oldturkic-orkhon_utf-8.vimnu�[���" Maintainer:   Oliver Corff <oliver.corff@email.de>
" Last Changed: 2018 Feb 12

scriptencoding utf-8

" oto = Old Turkic, Orkhon
let b:keymap_name = "oto"
highlight lCursor guibg=red guifg=NONE

" map F8 to toggle keymap (Ctrl-^ not present on keyboard)
noremap  <F8> :let &iminsert = ! &iminsert<CR>
lnoremap <F8> <C-^>
noremap! <F8> <C-^>

loadkeymap
A	𐰀	10C00	OLD TURKIC LETTER ORKHON A
00	𐰀	10C00	OLD TURKIC LETTER ORKHON A
I	𐰃	10C03	OLD TURKIC LETTER ORKHON I
03	𐰃	10C03	OLD TURKIC LETTER ORKHON I
O	𐰆	10C06	OLD TURKIC LETTER ORKHON O
U	𐰆	10C06	OLD TURKIC LETTER ORKHON O
06	𐰆	10C06	OLD TURKIC LETTER ORKHON O
OE	𐰇	10C07	OLD TURKIC LETTER ORKHON OE
UE	𐰇	10C07	OLD TURKIC LETTER ORKHON OE
07	𐰇	10C07	OLD TURKIC LETTER ORKHON OE
ab	𐰉	10C09	OLD TURKIC LETTER ORKHON AB
b1	𐰉	10C09	OLD TURKIC LETTER ORKHON AB
09	𐰉	10C09	OLD TURKIC LETTER ORKHON AB
aeb	𐰋	10C0B	OLD TURKIC LETTER ORKHON AEB
eb	𐰋	10C0B	OLD TURKIC LETTER ORKHON AEB
b2	𐰋	10C0B	OLD TURKIC LETTER ORKHON AEB
0b	𐰋	10C0B	OLD TURKIC LETTER ORKHON AEB
ag	𐰍	10C0D	OLD TURKIC LETTER ORKHON AG
g1	𐰍	10C0D	OLD TURKIC LETTER ORKHON AG
0d	𐰍	10C0D	OLD TURKIC LETTER ORKHON AG
aeg	𐰏	10C0F	OLD TURKIC LETTER ORKHON AEG
eg	𐰏	10C0F	OLD TURKIC LETTER ORKHON AEG
g2	𐰏	10C0F	OLD TURKIC LETTER ORKHON AEG
0f	𐰏	10C0F	OLD TURKIC LETTER ORKHON AEG
ad	𐰑	10C11	OLD TURKIC LETTER ORKHON AD
d1	𐰑	10C11	OLD TURKIC LETTER ORKHON AD
11	𐰑	10C11	OLD TURKIC LETTER ORKHON AD
aed	𐰓	10C13	OLD TURKIC LETTER ORKHON AED
ed	𐰓	10C13	OLD TURKIC LETTER ORKHON AED
d2	𐰓	10C13	OLD TURKIC LETTER ORKHON AED
13	𐰓	10C13	OLD TURKIC LETTER ORKHON AED
ez	𐰔	10C14	OLD TURKIC LETTER ORKHON EZ
z	𐰔	10C14	OLD TURKIC LETTER ORKHON EZ
14	𐰔	10C14	OLD TURKIC LETTER ORKHON EZ
ay	𐰖	10C16	OLD TURKIC LETTER ORKHON AY
y1	𐰖	10C16	OLD TURKIC LETTER ORKHON AY
16	𐰖	10C16	OLD TURKIC LETTER ORKHON AY
aey	𐰘	10C18	OLD TURKIC LETTER ORKHON AEY
ey	𐰘	10C18	OLD TURKIC LETTER ORKHON AEY
y2	𐰘	10C18	OLD TURKIC LETTER ORKHON AEY
18	𐰘	10C18	OLD TURKIC LETTER ORKHON AEY
aek	𐰚	10C1A	OLD TURKIC LETTER ORKHON AEK
k	𐰚	10C1A	OLD TURKIC LETTER ORKHON AEK
1a	𐰚	10C1A	OLD TURKIC LETTER ORKHON AEK
oek	𐰜	10C1C	OLD TURKIC LETTER ORKHON OEK
q	𐰜	10C1C	OLD TURKIC LETTER ORKHON OEK
1c	𐰜	10C1C	OLD TURKIC LETTER ORKHON OEK
al	𐰞	10C1E	OLD TURKIC LETTER ORKHON AL
l1	𐰞	10C1E	OLD TURKIC LETTER ORKHON AL
1e	𐰞	10C1E	OLD TURKIC LETTER ORKHON AL
ael	𐰠	10C20	OLD TURKIC LETTER ORKHON AEL
el	𐰠	10C20	OLD TURKIC LETTER ORKHON AEL
l2	𐰠	10C20	OLD TURKIC LETTER ORKHON AEL
20	𐰠	10C20	OLD TURKIC LETTER ORKHON AEL
elt	𐰡	10C21	OLD TURKIC LETTER ORKHON ELT
lt	𐰡	10C21	OLD TURKIC LETTER ORKHON ELT
21	𐰡	10C21	OLD TURKIC LETTER ORKHON ELT
em	𐰢	10C22	OLD TURKIC LETTER ORKHON EM
m	𐰢	10C22	OLD TURKIC LETTER ORKHON EM
22	𐰢	10C22	OLD TURKIC LETTER ORKHON EM
an	𐰣	10C23	OLD TURKIC LETTER ORKHON AN
n1	𐰣	10C23	OLD TURKIC LETTER ORKHON AN
23	𐰣	10C23	OLD TURKIC LETTER ORKHON AN
en	𐰤	10C24	OLD TURKIC LETTER ORKHON AEN
n2	𐰤	10C24	OLD TURKIC LETTER ORKHON AEN
24	𐰤	10C24	OLD TURKIC LETTER ORKHON AEN
ent	𐰦	10C26	OLD TURKIC LETTER ORKHON ENT
nt	𐰦	10C26	OLD TURKIC LETTER ORKHON ENT
26	𐰦	10C26	OLD TURKIC LETTER ORKHON ENT
enc	𐰨	10C28	OLD TURKIC LETTER ORKHON ENC
nc	𐰨	10C28	OLD TURKIC LETTER ORKHON ENC
28	𐰨	10C28	OLD TURKIC LETTER ORKHON ENC
eny	𐰪	10C2A	OLD TURKIC LETTER ORKHON ENY
ny	𐰪	10C2A	OLD TURKIC LETTER ORKHON ENY
2a	𐰪	10C2A	OLD TURKIC LETTER ORKHON ENY
eng	𐰭	10C2D	OLD TURKIC LETTER ORKHON ENG
ng	𐰭	10C2D	OLD TURKIC LETTER ORKHON ENG
2d	𐰭	10C2D	OLD TURKIC LETTER ORKHON ENG
ep	𐰯	10C2F	OLD TURKIC LETTER ORKHON EP
p	𐰯	10C2F	OLD TURKIC LETTER ORKHON EP
2f	𐰯	10C2F	OLD TURKIC LETTER ORKHON EP
op	𐰰	10C30	OLD TURKIC LETTER ORKHON OP
up	𐰰	10C30	OLD TURKIC LETTER ORKHON OP
30	𐰰	10C30	OLD TURKIC LETTER ORKHON OP
ic	𐰱	10C31	OLD TURKIC LETTER ORKHON IC
31	𐰱	10C31	OLD TURKIC LETTER ORKHON IC
ec	𐰲	10C32	OLD TURKIC LETTER ORKHON EC
32	𐰲	10C32	OLD TURKIC LETTER ORKHON EC
aq	𐰴	10C34	OLD TURKIC LETTER ORKHON AQ
34	𐰴	10C34	OLD TURKIC LETTER ORKHON AQ
iq	𐰶	10C36	OLD TURKIC LETTER ORKHON IQ
yq	𐰶	10C36	OLD TURKIC LETTER ORKHON IQ
36	𐰶	10C36	OLD TURKIC LETTER ORKHON IQ
oq	𐰸	10C38	OLD TURKIC LETTER ORKHON OQ
uq	𐰸	10C38	OLD TURKIC LETTER ORKHON OQ
38	𐰸	10C38	OLD TURKIC LETTER ORKHON OQ
ar	𐰺	10C3A	OLD TURKIC LETTER ORKHON AR
r1	𐰺	10C3A	OLD TURKIC LETTER ORKHON AR
3a	𐰺	10C3A	OLD TURKIC LETTER ORKHON AR
aer	𐰼	10C3C	OLD TURKIC LETTER ORKHON AER
er	𐰼	10C3C	OLD TURKIC LETTER ORKHON AER
r2	𐰼	10C3C	OLD TURKIC LETTER ORKHON AER
3c	𐰼	10C3C	OLD TURKIC LETTER ORKHON AER
as	𐰽	10C3D	OLD TURKIC LETTER ORKHON AS
s1	𐰽	10C3D	OLD TURKIC LETTER ORKHON AS
3d	𐰽	10C3D	OLD TURKIC LETTER ORKHON AS
aes	𐰾	10C3E	OLD TURKIC LETTER ORKHON AES
es	𐰾	10C3E	OLD TURKIC LETTER ORKHON AES
s2	𐰾	10C3E	OLD TURKIC LETTER ORKHON AES
3e	𐰾	10C3E	OLD TURKIC LETTER ORKHON AES
ash	𐰿	10C3F	OLD TURKIC LETTER ORKHON ASH
sh1	𐰿	10C3F	OLD TURKIC LETTER ORKHON ASH
3f	𐰿	10C3F	OLD TURKIC LETTER ORKHON ASH
esh	𐱁	10C41	OLD TURKIC LETTER ORKHON ESH
sh2	𐱁	10C41	OLD TURKIC LETTER ORKHON ESH
41	𐱁	10C41	OLD TURKIC LETTER ORKHON ESH
at	𐱃	10C43	OLD TURKIC LETTER ORKHON AT
t1	𐱃	10C43	OLD TURKIC LETTER ORKHON AT
43	𐱃	10C43	OLD TURKIC LETTER ORKHON AT
aet	𐱅	10C45	OLD TURKIC LETTER ORKHON AET
et	𐱅	10C45	OLD TURKIC LETTER ORKHON AET
t2	𐱅	10C45	OLD TURKIC LETTER ORKHON AET
45	𐱅	10C45	OLD TURKIC LETTER ORKHON AET
ot	𐱇	10C47	OLD TURKIC LETTER ORKHON OT
ut	𐱇	10C47	OLD TURKIC LETTER ORKHON OT
47	𐱇	10C47	OLD TURKIC LETTER ORKHON OT
bash	𐱈	10C48	OLD TURKIC LETTER ORKHON BASH
48	𐱈	10C48	OLD TURKIC LETTER ORKHON BASH
PK�j�Z���vim80/keymap/serbian_cp1251.vimnu�[���" Vim Keymap file for Serbian characters, classical variant, win cp1251
" encoding
"
" Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.edu>
" URL:		    http://www.cs.cmu.edu/~aleksa/personal/vim/keymap/serbian-cp1251.vim
" Last Changed: 2002 Mar 29

scriptencoding cp1251

let b:keymap_name = "serbian-cp1251"

loadkeymap
Q	�
W	�
E	�
R	�
T	�
Y	�
U	�
I	�
O	�
P	�
{	�
}	�
q	�
w	�
e	�
r	�
t	�
y	�
u	�
i	�
o	�
p	�
[	�
]	�
A	�
S	�
D	�
F	�
G	�
H	�
J	�
K	�
L	�
:	�
\"	�
\|	�
a	�
s	�
d	�
f	�
g	�
h	�
j	�
k	�
l	�
;	�
'	�
\\	�
"Z	�
X	�
C	�
V	�
B	�
N	�
M	�
"z	�
x	�
c	�
v	�
b	�
n	�
m	�

<	;
>	:
/	-
_	?
,,	�
''	�

" @	"
" #	'
" $	*
" %	:
" ^	,
" &amp;	.
" *	;

PK�j�Z�R����#vim80/keymap/serbian_iso-8859-5.vimnu�[���" Vim Keymap file for Serbian characters, classical variant, iso-8859-5 encoding
"
" Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.edu>
" URL:		    http://www.cs.cmu.edu/~aleksa/personal/vim/keymap/serbian-iso-8859-5.vim
" Last Changed: 2002 Mar 29

scriptencoding iso-8859-5

let b:keymap_name = "serbian-iso-8859-5"

loadkeymap
Q	�
W	�
E	�
R	�
T	�
Y	�
U	�
I	�
O	�
P	�
{	�
}	�
q	�
w	�
e	�
r	�
t	�
y	�
u	�
i	�
o	�
p	�
[	�
]	�
A	�
S	�
D	�
F	�
G	�
H	�
J	�
K	�
L	�
:	�
\"	�
\|	�
a	�
s	�
d	�
f	�
g	�
h	�
j	�
k	�
l	�
;	�
'	�
\\	�
"Z	�
X	�
C	�
V	�
B	�
N	�
M	�
"z	�
x	�
c	�
v	�
b	�
n	�
m	�

<	;
>	:
/	-
_	?
,,	?
''	?

" @	"
" #	'
" $	*
" %	:
" ^	,
" &	.
" *	;

PK�j�Z��d�[[#vim80/keymap/polish-slash_cp852.vimnu�[���" Polish letters keymap for cp852
" Maintainer:	HS6_06	<hs6_06@o2.pl>
" Last Changed:	2005 Jan 12
" Current version: 1.0.2
" History: see polish-slash.vim

" This keymap adds the special Polish letters
" to an existing Latin keyboard.
" All chars as usual except:
" Polish:
"   instead of AltGr+{acelnosxz} you ve to use "/" followed by {acelnosxz}

" short keymap name for statusline
let b:keymap_name = "PL-slash-DOS"

scriptencoding latin1

loadkeymap

" Polish letters
/a	<Char-165>	" LATIN SMALL LETTER A WITH OGONEK
/c	<Char-134>	" LATIN SMALL LETTER C WITH ACUTE
/e	<Char-169>	" LATIN SMALL LETTER E WITH OGONEK
/l	<Char-136>	" LATIN SMALL LETTER L WITH STROKE
/n	<Char-228>	" LATIN SMALL LETTER N WITH ACUTE
/o	<Char-162>	" LATIN SMALL LETTER O WITH ACUTE
/s	<Char-152>	" LATIN SMALL LETTER S WITH ACUTE
/x	<Char-171>	" LATIN SMALL LETTER Z WITH ACUTE
/z	<Char-190>	" LATIN SMALL LETTER Z WITH DOT ABOVE

/A	<Char-164>	" LATIN CAPITAL LETTER A WITH OGONEK
/C	<Char-143>	" LATIN CAPITAL LETTER C WITH ACUTE
/E	<Char-168>	" LATIN CAPITAL LETTER E WITH OGONEK
/L	<Char-157>	" LATIN CAPITAL LETTER L WITH STROKE
/N	<Char-227>	" LATIN CAPITAL LETTER N WITH ACUTE
/O	<Char-224>	" LATIN CAPITAL LETTER O WITH ACUTE
/S	<Char-151>	" LATIN CAPITAL LETTER S WITH ACUTE
/X	<Char-141>	" LATIN CAPITAL LETTER Z WITH ACUTE
/Z	<Char-189>	" LATIN CAPITAL LETTER Z WITH DOT ABOVE

PK�j�ZU�F�9�9vim80/keymap/tamil_tscii.vimnu�[���" Keymap file for the editing Tamil language files in TSCII encoding.
"
" Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
" Last updated: 2006 June 17
"
" You will need a fixed width TSCII font to use this encoding.  The
" Avarangal TSCII fixed width font (TSC_AvarangalFxd) is used to test
" this keymap.
"
" Visit http://www.tscii.org for more information about the TSCII
" encoding.
"
let b:keymap_name = "tamil_tscii"

loadkeymap

" Uyir (Vowels) letters
a      <char-171>
aa     <char-172>
A      <char-172>
i      <char-173>
ii     <char-174>
I      <char-174>
u      <char-175>
uu     <char-176>
U      <char-176>
e      <char-177>
ee     <char-178>
E      <char-178>
ai     <char-179>
o      <char-180>
oo     <char-181>
O      <char-181>
au     <char-182>
q      <char-183>

" mey (Consonants) letters
k      <char-236>
ka     <char-184>
kaa    <char-184><char-161>
kA     <char-184><char-161>
ki     <char-184><char-162>
kii    <char-184><char-163>
kI     <char-184><char-163>
ku     <char-204>
kuu    <char-220>
kU     <char-220>
ke     <char-166><char-184>
kee    <char-167><char-184>
kE     <char-167><char-184>
kai    <char-168><char-184>
ko     <char-166><char-184><char-161>
koo    <char-167><char-184><char-161>
kO     <char-167><char-184><char-161>
kau    <char-166><char-184><char-199>

g      <char-236>
ga     <char-184>
gaa    <char-184><char-161>
gA     <char-184><char-161>
gi     <char-184><char-162>
gii    <char-184><char-163>
gI     <char-184><char-163>
gu     <char-204>
guu    <char-220>
gU     <char-220>
ge     <char-166><char-184>
gee    <char-167><char-184>
gE     <char-167><char-184>
gai    <char-168><char-184>
go     <char-166><char-184><char-161>
goo    <char-167><char-184><char-161>
gO     <char-167><char-184><char-161>
gau    <char-166><char-184><char-199>

ng     <char-237>
nga    <char-185>
ngaa   <char-185><char-161>
ngA    <char-185><char-161>
ngi    <char-185><char-162>
ngii   <char-185><char-163>
ngI    <char-185><char-163>
ngu    <char-153>
nguu   <char-155>
ngU    <char-155>
nge    <char-166><char-185>
ngee   <char-167><char-185>
ngE    <char-167><char-185>
ngai   <char-168><char-185>
ngo    <char-166><char-185><char-161>
ngoo   <char-167><char-185><char-161>
ngO    <char-167><char-185><char-161>
ngau   <char-166><char-185><char-199>

ch     <char-238>
cha    <char-186>
chaa   <char-186><char-161>
chA    <char-186><char-161>
chi    <char-186><char-162>
chii   <char-186><char-163>
chI    <char-186><char-163>
chu    <char-204>
chuu   <char-221>
chU    <char-221>
che    <char-166><char-186>
chee   <char-167><char-186>
chE    <char-167><char-186>
chai   <char-168><char-186>
cho    <char-166><char-186><char-161>
choo   <char-167><char-186><char-161>
chO    <char-167><char-186><char-161>
chau   <char-166><char-186><char-199>

s      <char-238>
sa     <char-186>
saa    <char-186><char-161>
sA     <char-186><char-161>
si     <char-186><char-162>
sii    <char-186><char-163>
sI     <char-186><char-163>
su     <char-205>
suu    <char-221>
sU     <char-221>
se     <char-166><char-186>
see    <char-167><char-186>
sE     <char-167><char-186>
sai    <char-168><char-186>
so     <char-166><char-186><char-161>
soo    <char-167><char-186><char-161>
sO     <char-167><char-186><char-161>
sau    <char-166><char-186><char-199>

nj     <char-239>
nja    <char-187>
njaa   <char-187><char-161>
njA    <char-187><char-161>
nji    <char-187><char-162>
njii   <char-187><char-163>
njI    <char-187><char-163>
nju    <char-154>
njuu   <char-156>
njU    <char-156>
nje    <char-166><char-187>
njee   <char-167><char-187>
njE    <char-167><char-187>
njai   <char-168><char-187>
njo    <char-166><char-187><char-161>
njoo   <char-167><char-187><char-161>
njO    <char-167><char-187><char-161>
njau   <char-166><char-187><char-199>

t      <char-240>
ta     <char-188>
taa    <char-188><char-161>
tA     <char-188><char-161>
ti     <char-202>
tii    <char-203>
tI     <char-203>
tu     <char-206>
tuu    <char-222>
tU     <char-222>
te     <char-166><char-188>
tee    <char-167><char-188>
tE     <char-167><char-188>
tai    <char-168><char-188>
to     <char-166><char-188><char-161>
too    <char-167><char-188><char-161>
tO     <char-167><char-188><char-161>
tau    <char-166><char-188><char-199>

d      <char-240>
da     <char-188>
daa    <char-188><char-161>
dA     <char-188><char-161>
di     <char-202>
dii    <char-203>
dI     <char-203>
du     <char-206>
duu    <char-222>
dU     <char-222>
de     <char-166><char-188>
dee    <char-167><char-188>
dE     <char-167><char-188>
dai    <char-168><char-188>
do     <char-166><char-188><char-161>
doo    <char-167><char-188><char-161>
dO     <char-167><char-188><char-161>
dau    <char-166><char-188><char-199>

N      <char-241>
Na     <char-189>
Naa    <char-189><char-161>
NA     <char-189><char-161>
Ni     <char-189><char-162>
Nii    <char-189><char-163>
NI     <char-189><char-163>
Nu     <char-207>
Nuu    <char-223>
NU     <char-223>
Ne     <char-166><char-189>
Nee    <char-167><char-189>
NE     <char-167><char-189>
Nai    <char-168><char-189>
No     <char-166><char-189><char-161>
Noo    <char-167><char-189><char-161>
NO     <char-167><char-189><char-161>
Nau    <char-166><char-189><char-199>

th     <char-242>
tha    <char-190>
thaa   <char-190><char-161>
thA    <char-190><char-161>
thi    <char-190><char-162>
thii   <char-190><char-163>
thI    <char-190><char-163>
thu    <char-208>
thuu   <char-224>
thU    <char-224>
the    <char-166><char-190>
thee   <char-167><char-190>
thE    <char-167><char-190>
thai   <char-168><char-190>
tho    <char-166><char-190><char-161>
thoo   <char-167><char-190><char-161>
thO    <char-167><char-190><char-161>
thau   <char-166><char-190><char-199>

w      <char-243>
wa     <char-191>
waa    <char-191><char-161>
wA     <char-191><char-161>
wi     <char-191><char-162>
wii    <char-191><char-163>
wI     <char-191><char-163>
wu     <char-209>
wuu    <char-225>
wU     <char-225>
we     <char-166><char-191>
wee    <char-167><char-191>
wE     <char-167><char-191>
wai    <char-168><char-191>
wo     <char-166><char-191><char-161>
woo    <char-167><char-191><char-161>
wO     <char-167><char-191><char-161>
wau    <char-166><char-191><char-199>

n-     <char-243>
n-a    <char-191>
n-aa   <char-191><char-161>
n-A    <char-191><char-161>
n-i    <char-191><char-162>
n-ii   <char-191><char-163>
n-I    <char-191><char-163>
n-u    <char-209>
n-uu   <char-225>
n-U    <char-225>
n-e    <char-166><char-191>
n-ee   <char-167><char-191>
n-E    <char-167><char-191>
n-ai   <char-168><char-191>
n-o    <char-166><char-191><char-161>
n-oo   <char-167><char-191><char-161>
n-O    <char-167><char-191><char-161>
n-au   <char-166><char-191><char-199>

p      <char-244>
pa     <char-192>
paa    <char-192><char-161>
pA     <char-192><char-161>
pi     <char-192><char-162>
pii    <char-192><char-163>
pI     <char-192><char-163>
pu     <char-210>
puu    <char-226>
pU     <char-226>
pe     <char-166><char-192>
pee    <char-167><char-192>
pE     <char-167><char-192>
pai    <char-168><char-192>
po     <char-166><char-192><char-161>
poo    <char-167><char-192><char-161>
pO     <char-167><char-192><char-161>
pau    <char-166><char-192><char-199>

b      <char-244>
ba     <char-192>
baa    <char-192><char-161>
bA     <char-192><char-161>
bi     <char-192><char-162>
bii    <char-192><char-163>
bI     <char-192><char-163>
bu     <char-210>
buu    <char-226>
bU     <char-226>
be     <char-166><char-192>
bee    <char-167><char-192>
bE     <char-167><char-192>
bai    <char-168><char-192>
bo     <char-166><char-192><char-161>
boo    <char-167><char-192><char-161>
bO     <char-167><char-192><char-161>
bau    <char-166><char-192><char-199>

m      <char-245>
ma     <char-193>
maa    <char-193><char-161>
mA     <char-193><char-161>
mi     <char-193><char-162>
mii    <char-193><char-163>
mI     <char-193><char-163>
mu     <char-211>
muu    <char-227>
mU     <char-227>
me     <char-166><char-193>
mee    <char-167><char-193>
mE     <char-167><char-193>
mai    <char-168><char-193>
mo     <char-166><char-193><char-161>
moo    <char-167><char-193><char-161>
mO     <char-167><char-193><char-161>
mau    <char-166><char-193><char-199>

y      <char-246>
ya     <char-194>
yaa    <char-194><char-161>
yA     <char-194><char-161>
yi     <char-194><char-162>
yii    <char-194><char-163>
yI     <char-194><char-163>
yu     <char-212>
yuu    <char-228>
yU     <char-228>
ye     <char-166><char-194>
yee    <char-167><char-194>
yE     <char-167><char-194>
yai    <char-168><char-194>
yo     <char-166><char-194><char-161>
yoo    <char-167><char-194><char-161>
yO     <char-167><char-194><char-161>
yau    <char-166><char-194><char-199>

r      <char-247>
ra     <char-195>
raa    <char-195><char-161>
rA     <char-195><char-161>
ri     <char-195><char-162>
rii    <char-195><char-163>
rI     <char-195><char-163>
ru     <char-213>
ruu    <char-229>
rU     <char-229>
re     <char-166><char-195>
ree    <char-167><char-195>
rE     <char-167><char-195>
rai    <char-168><char-195>
ro     <char-166><char-195><char-161>
roo    <char-167><char-195><char-161>
rO     <char-167><char-195><char-161>
rau    <char-166><char-195><char-199>

l      <char-248>
la     <char-196>
laa    <char-196><char-161>
lA     <char-196><char-161>
li     <char-196><char-162>
lii    <char-196><char-163>
lI     <char-196><char-163>
lu     <char-214>
luu    <char-230>
lU     <char-230>
le     <char-166><char-196>
lee    <char-167><char-196>
lE     <char-167><char-196>
lai    <char-168><char-196>
lo     <char-166><char-196><char-161>
loo    <char-167><char-196><char-161>
lO     <char-167><char-196><char-161>
lau    <char-166><char-196><char-199>

v      <char-249>
va     <char-197>
vaa    <char-197><char-161>
vA     <char-197><char-161>
vi     <char-197><char-162>
vii    <char-197><char-163>
vI     <char-197><char-163>
vu     <char-215>
vuu    <char-231>
vU     <char-231>
ve     <char-166><char-197>
vee    <char-167><char-197>
vE     <char-167><char-197>
vai    <char-168><char-197>
vo     <char-166><char-197><char-161>
voo    <char-167><char-197><char-161>
vO     <char-167><char-197><char-161>
vau    <char-166><char-197><char-199>

z      <char-250>
za     <char-198>
zaa    <char-198><char-161>
zA     <char-198><char-161>
zi     <char-198><char-162>
zii    <char-198><char-163>
zI     <char-198><char-163>
zu     <char-216>
zuu    <char-232>
zU     <char-232>
ze     <char-166><char-198>
zee    <char-167><char-198>
zE     <char-167><char-198>
zai    <char-168><char-198>
zo     <char-166><char-198><char-161>
zoo    <char-167><char-198><char-161>
zO     <char-167><char-198><char-161>
zau    <char-166><char-198><char-199>

L      <char-251>
La     <char-199>
Laa    <char-199><char-161>
LA     <char-199><char-161>
Li     <char-199><char-162>
Lii    <char-199><char-163>
LI     <char-199><char-163>
Lu     <char-217>
Luu    <char-233>
LU     <char-233>
Le     <char-166><char-199>
Lee    <char-167><char-199>
LE     <char-167><char-199>
Lai    <char-168><char-199>
Lo     <char-166><char-199><char-161>
Loo    <char-167><char-199><char-161>
LO     <char-167><char-199><char-161>
Lau    <char-166><char-199><char-199>

R      <char-252>
Ra     <char-200>
Raa    <char-200><char-161>
RA     <char-200><char-161>
Ri     <char-200><char-162>
Rii    <char-200><char-163>
RI     <char-200><char-163>
Ru     <char-218>
Ruu    <char-234>
RU     <char-234>
Re     <char-166><char-200>
Ree    <char-167><char-200>
RE     <char-167><char-200>
Rai    <char-168><char-200>
Ro     <char-166><char-200><char-161>
Roo    <char-167><char-200><char-161>
RO     <char-167><char-200><char-161>
Rau    <char-166><char-200><char-199>

n      <char-253>
na     <char-201>
naa    <char-201><char-161>
nA     <char-201><char-161>
ni     <char-201><char-162>
nii    <char-201><char-163>
nI     <char-201><char-163>
nu     <char-219>
nuu    <char-235>
nU     <char-235>
ne     <char-166><char-201>
nee    <char-167><char-201>
nE     <char-167><char-201>
nai    <char-168><char-201>
no     <char-166><char-201><char-161>
noo    <char-167><char-201><char-161>
nO     <char-167><char-201><char-161>
nau    <char-166><char-201><char-199>

" Grantha letters
j      <char-136>
ja     <char-131>
jaa    <char-131><char-161>
jA     <char-131><char-161>
ji     <char-131><char-162>
jii    <char-131><char-163>
jI     <char-131><char-163>
ju     <char-131><char-164>
juu    <char-131><char-164>
jU     <char-131><char-165>
je     <char-166><char-131>
jee    <char-167><char-131>
jE     <char-167><char-131>
jai    <char-168><char-131>
jo     <char-166><char-131><char-161>
joo    <char-167><char-131><char-161>
jO     <char-167><char-131><char-161>
jau    <char-166><char-131><char-199>

sh     <char-137>
sha    <char-132>
shaa   <char-132><char-161>
shA    <char-132><char-161>
shi    <char-132><char-162>
shii   <char-132><char-163>
shI    <char-132><char-163>
shu    <char-131><char-164>
shuu   <char-131><char-164>
shU    <char-131><char-165>
she    <char-166><char-132>
shee   <char-167><char-132>
shE    <char-167><char-132>
shai   <char-168><char-132>
sho    <char-166><char-132><char-161>
shoo   <char-167><char-132><char-161>
shO    <char-167><char-132><char-161>
shau   <char-166><char-132><char-199>

S      <char-138>
Sa     <char-133>
Saa    <char-133><char-161>
SA     <char-133><char-161>
Si     <char-133><char-162>
Sii    <char-133><char-163>
SI     <char-133><char-163>
Su     <char-133><char-164>
Suu    <char-133><char-165>
SU     <char-133><char-165>
Se     <char-166><char-133>
See    <char-167><char-133>
SE     <char-167><char-133>
Sai    <char-168><char-133>
So     <char-166><char-133><char-161>
Soo    <char-167><char-133><char-161>
SO     <char-167><char-133><char-161>
Sau    <char-166><char-133><char-199>

h      <char-139>
ha     <char-134>
haa    <char-134><char-161>
hA     <char-134><char-161>
hi     <char-134><char-162>
hii    <char-134><char-163>
hI     <char-134><char-163>
hu     <char-134><char-164>
huu    <char-134><char-165>
hU     <char-134><char-165>
he     <char-166><char-134>
hee    <char-167><char-134>
hE     <char-167><char-134>
hai    <char-168><char-134>
ho     <char-166><char-134><char-161>
hoo    <char-167><char-134><char-161>
hO     <char-167><char-134><char-161>
hau    <char-166><char-134><char-199>

x      <char-140>
xa     <char-135>
xaa    <char-135><char-161>
xA     <char-135><char-161>
xi     <char-135><char-162>
xii    <char-135><char-163>
xI     <char-135><char-163>
xu     <char-135><char-164>
xuu    <char-135><char-165>
xU     <char-135><char-165>
xe     <char-166><char-135>
xee    <char-167><char-135>
xE     <char-167><char-135>
xai    <char-168><char-135>
xo     <char-166><char-135><char-161>
xoo    <char-167><char-135><char-161>
xO     <char-167><char-135><char-161>
xau    <char-166><char-135><char-199>

sri     <char-130>

PK�j�Z!�-��#vim80/keymap/polish-slash_utf-8.vimnu�[���" Polish letters keymap for utf-8
" Maintainer:	HS6_06	<hs6_06@o2.pl>
" Last Changed:	2005 Jan 12
" Current version: 1.0.2
" History: see polish-slash.vim

" This keymap adds the special Polish letters
" to an existing Latin keyboard.
" All chars as usual except:
" Polish:
"   instead of AltGr+{acelnosxz} you ve to use "/" followed by {acelnosxz}

" short keymap name for statusline
let b:keymap_name = "PL-slash-UTF"

scriptencoding latin1

loadkeymap

" Polish letters
/a	<Char-0x0105>	" LATIN SMALL LETTER A WITH OGONEK
/c	<Char-0x0107>	" LATIN SMALL LETTER C WITH ACUTE
/e	<Char-0x0119>	" LATIN SMALL LETTER E WITH OGONEK
/l	<Char-0x0142>	" LATIN SMALL LETTER L WITH STROKE
/n	<Char-0x0144>	" LATIN SMALL LETTER N WITH ACUTE
/o	<Char-0x00f3>	" LATIN SMALL LETTER O WITH ACUTE
/s	<Char-0x015b>	" LATIN SMALL LETTER S WITH ACUTE
/x	<Char-0x017a>	" LATIN SMALL LETTER Z WITH ACUTE
/z	<Char-0x017c>	" LATIN SMALL LETTER Z WITH DOT ABOVE

/A	<Char-0x0104>	" LATIN CAPITAL LETTER A WITH OGONEK
/C	<Char-0x0106>	" LATIN CAPITAL LETTER C WITH ACUTE
/E	<Char-0x0118>	" LATIN CAPITAL LETTER E WITH OGONEK
/L	<Char-0x0141>	" LATIN CAPITAL LETTER L WITH STROKE
/N	<Char-0x0143>	" LATIN CAPITAL LETTER N WITH ACUTE
/O	<Char-0x00d3>	" LATIN CAPITAL LETTER O WITH ACUTE
/S	<Char-0x015a>	" LATIN CAPITAL LETTER S WITH ACUTE
/X	<Char-0x0179>	" LATIN CAPITAL LETTER Z WITH ACUTE
/Z	<Char-0x017b>	" LATIN CAPITAL LETTER Z WITH DOT ABOVE

PK�j�Z�?�h�	�	vim80/keymap/russian-jcuken.vimnu�[���" Vim Keymap file for russian characters, layout 'jcuken', classical variant
" (compatible with XFree86 'ru' keymap)
" Useful mainly with utf-8 but may work with other encodings

" Maintainer:   Artem Chuprina <ran@ran.pp.ru>
" Last Changed: 2001 Jun 23

" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8

let b:keymap_name = "ru"

loadkeymap
~	Ё	CYRILLIC CAPITAL LETTER IO
`	ё	CYRILLIC SMALL LETTER IO
F	А	CYRILLIC CAPITAL LETTER A
<	Б	CYRILLIC CAPITAL LETTER BE
D	В	CYRILLIC CAPITAL LETTER VE
U	Г	CYRILLIC CAPITAL LETTER GHE
L	Д	CYRILLIC CAPITAL LETTER DE
T	Е	CYRILLIC CAPITAL LETTER IE
:	Ж	CYRILLIC CAPITAL LETTER ZHE
P	З	CYRILLIC CAPITAL LETTER ZE
B	И	CYRILLIC CAPITAL LETTER I
Q	Й	CYRILLIC CAPITAL LETTER SHORT I
R	К	CYRILLIC CAPITAL LETTER KA
K	Л	CYRILLIC CAPITAL LETTER EL
V	М	CYRILLIC CAPITAL LETTER EM
Y	Н	CYRILLIC CAPITAL LETTER EN
J	О	CYRILLIC CAPITAL LETTER O
G	П	CYRILLIC CAPITAL LETTER PE
H	Р	CYRILLIC CAPITAL LETTER ER
C	С	CYRILLIC CAPITAL LETTER ES
N	Т	CYRILLIC CAPITAL LETTER TE
E	У	CYRILLIC CAPITAL LETTER U
A	Ф	CYRILLIC CAPITAL LETTER EF
{	Х	CYRILLIC CAPITAL LETTER HA
W	Ц	CYRILLIC CAPITAL LETTER TSE
X	Ч	CYRILLIC CAPITAL LETTER CHE
I	Ш	CYRILLIC CAPITAL LETTER SHA
O	Щ	CYRILLIC CAPITAL LETTER SHCHA
}	Ъ	CYRILLIC CAPITAL LETTER HARD SIGN
S	Ы	CYRILLIC CAPITAL LETTER YERU
M	Ь	CYRILLIC CAPITAL LETTER SOFT SIGN
\"	Э	CYRILLIC CAPITAL LETTER E
>	Ю	CYRILLIC CAPITAL LETTER YU
Z	Я	CYRILLIC CAPITAL LETTER YA
f	а	CYRILLIC SMALL LETTER A
,	б	CYRILLIC SMALL LETTER BE
d	в	CYRILLIC SMALL LETTER VE
u	г	CYRILLIC SMALL LETTER GHE
l	д	CYRILLIC SMALL LETTER DE
t	е	CYRILLIC SMALL LETTER IE
;	ж	CYRILLIC SMALL LETTER ZHE
p	з	CYRILLIC SMALL LETTER ZE
b	и	CYRILLIC SMALL LETTER I
q	й	CYRILLIC SMALL LETTER SHORT I
r	к	CYRILLIC SMALL LETTER KA
k	л	CYRILLIC SMALL LETTER EL
v	м	CYRILLIC SMALL LETTER EM
y	н	CYRILLIC SMALL LETTER EN
j	о	CYRILLIC SMALL LETTER O
g	п	CYRILLIC SMALL LETTER PE
h	р	CYRILLIC SMALL LETTER ER
c	с	CYRILLIC SMALL LETTER ES
n	т	CYRILLIC SMALL LETTER TE
e	у	CYRILLIC SMALL LETTER U
a	ф	CYRILLIC SMALL LETTER EF
[	х	CYRILLIC SMALL LETTER HA
w	ц	CYRILLIC SMALL LETTER TSE
x	ч	CYRILLIC SMALL LETTER CHE
i	ш	CYRILLIC SMALL LETTER SHA
o	щ	CYRILLIC SMALL LETTER SHCHA
]	ъ	CYRILLIC SMALL LETTER HARD SIGN
s	ы	CYRILLIC SMALL LETTER YERU
m	ь	CYRILLIC SMALL LETTER SOFT SIGN
'	э	CYRILLIC SMALL LETTER E
.	ю	CYRILLIC SMALL LETTER YU
z	я	CYRILLIC SMALL LETTER YA
@	"
#	'
$	*
%	:
^	,
&	.
*	;
PK�j�Zgm���vim80/keymap/greek.vimnu�[���" Assume 'encoding' is set to "latin1" while actually cp1253 or iso-8859-7 is
" being used
if has("win16") || has("win32") || has("win32unix")
  source <sfile>:p:h/greek_cp1253.vim
else
  source <sfile>:p:h/greek_iso-8859-7.vim
endif
PK�j�Z�&���vim80/keymap/hebrew_utf-8.vimnu�[���" Vim Keymap file for hebrew
" Maintainer  : Ron Aaron <ron@ronware.org>
" Last Updated: Wed 28 Feb 2001 21:28:51
" This is the standard Israeli keyboard layout with (my nonstandard locations
" for) niqud, for utf:

" Use this short name in the status line.
let b:keymap_name = "heb"
loadkeymap
a	<char-0x5e9>	" ש - shin
b	<char-0x5e0>	" נ - nun
c	<char-0x5d1>	" ב - bet
d	<char-0x5d2>	" ג - gimel
e	<char-0x5e7>	" ק - qof
f	<char-0x5db>	" כ - kaf
g	<char-0x5e2>	" ע - ayin
h	<char-0x5d9>	" י - yod
i	<char-0x5df>	" ן - final nun
j	<char-0x5d7>	" ח - het
k	<char-0x5dc>	" ל - lamed
l	<char-0x5da>	" ך - final kaf
m	<char-0x5e6>	" צ - tsadi
n	<char-0x5de>	" מ - mem
o	<char-0x5dd>	" ם - final mem
p	<char-0x5e4>	" פ - pe
q	/		" / - slash
r	<char-0x5e8>	" ר - resh
s	<char-0x5d3>	" ד - dalet
t	<char-0x5d0>	" א - alef
u	<char-0x5d5>	" ו - vav
v	<char-0x5d4>	" ה - he
w	'		" ' - single-quote
x	<char-0x5e1>	" ס - samekh
y	<char-0x5d8>	" ט - tet
z	<char-0x5d6>	" ז - zayin
,	<char-0x5ea>	" ת - tav
.	<char-0x5e5>	" ץ - final tsadi
;	<char-0x5e3>	" ף - final pe
'	,		" , - comma
/	.		" . - period
`	;		" ; - semicolon
A:	<Char-0x5b0>	" sheva
HE	<Char-0x5b1>	" hataf segol
HA	<Char-0x5b2>	" hataf patah
HO	<Char-0x5b3>	" hataf qamats
I	<Char-0x5b4>	" hiriq
AY	<Char-0x5b5>	" tsere
E	<Char-0x5b6>	" segol
AA	<Char-0x5b7>	" patah
AO	<Char-0x5b8>	" qamats
O	<Char-0x5b9>	" holam
U	<Char-0x5bb>	" qubuts
D	<Char-0x5bc>	" dagesh
]T	<Char-0x5bd>	" meteg
]Q	<Char-0x5be>	" maqaf
]R      <Char-0x5bf>	" rafe
]p      <Char-0x5c0>    " paseq
SR	<Char-0x5c1>	" shin-dot
SL	<Char-0x5c2>	" sin-dot
]P	<Char-0x5c3>	" sof-pasuq
VV	<Char-0x5f0>    " double-vav
VY	<Char-0x5f1>    " vav-yod
YY	<Char-0x5f2>    " yod-yod
" cantillation:
C:	<Char-0x591>	" etnahta
Cs <Char-0x592>   " segol
CS <Char-0x593>   " shalshelet
Cz <Char-0x594>   " zaqef qatan
CZ <Char-0x595>   " zaqef gadol
Ct <Char-0x596>   " tipeha
Cr <Char-0x597>   " revia
Cq <Char-0x598>   " zarqa
Cp <Char-0x599>   " pashta
C! <Char-0x59a>   " yetiv
Cv <Char-0x59b>   " tevir
Cg <Char-0x59c>   " geresh
C* <Char-0x59d>   " geresh qadim
CG <Char-0x59e>   " gershayim
CP <Char-0x59f>   " qarnei-parah
Cy <Char-0x5aa>   " yerach-ben-yomo
Co <Char-0x5ab>  " ole
Ci <Char-0x5ac>  " iluy
Cd <Char-0x5ad>  " dehi
Cn <Char-0x5ae>  " zinor
CC <Char-0x5af>  " masora circle
X` <Char-0xfb20>  " Alternative `ayin
X' <Char-0xfb21>  " Alternative 'alef
X-d <Char-0xfb22>  " Alternative dalet
X-h <Char-0xfb23>  " Alternative he
X-k <Char-0xfb24>  " Alternative kaf
X-l <Char-0xfb25>  " Alternative lamed
X-m <Char-0xfb26>  " Alternative mem-sofit
X-r <Char-0xfb27>  " Alternative resh
X-t <Char-0xfb28>  " Alternative tav
X-+ <Char-0xfb29>  " Alternative plus
XW <Char-0xfb2a>  " shin+shin-dot
Xw <Char-0xfb2b>  " shin+sin-dot
X..W <Char-0xfb2c>  " shin+shin-dot+dagesh
X..w <Char-0xfb2d>  " shin+sin-dot+dagesh
XA <Char-0xfb2e>  " alef+patah
XO <Char-0xfb2f>  " alef+qamats
XI <Char-0xfb30>  " alef+hiriq (mapiq)
X.b <Char-0xfb31>  " bet+dagesh
X.g <Char-0xfb32>  " gimel+dagesh
X.d <Char-0xfb33>  " dalet+dagesh
X.h <Char-0xfb34>  " he+dagesh
Xu <Char-0xfb35>  " vav+dagesh
X.z <Char-0xfb36>  " zayin+dagesh
X.T <Char-0xfb38>  " tet+dagesh
X.y <Char-0xfb39>  " yud+dagesh
X.K <Char-0xfb3a>  " kaf sofit+dagesh
X.k <Char-0xfb3b>  " kaf+dagesh
X.l <Char-0xfb3c>  " lamed+dagesh
X.m <Char-0xfb3e>  " mem+dagesh
X.n <Char-0xfb40>  " nun+dagesh
X.s <Char-0xfb41>  " samech+dagesh
X.P <Char-0xfb43>  " pe sofit+dagesh
X.p <Char-0xfb44>  " pe+dagesh
X.x <Char-0xfb46>  " tsadi+dagesh
X.q <Char-0xfb47>  " qof+dagesh
X.r <Char-0xfb48>  " resh+dagesh
X.w <Char-0xfb49>  " shin+dagesh
X.t <Char-0xfb4a>  " tav+dagesh
Xo <Char-0xfb4b>  " vav+holam
XRb <Char-0xfb4c>  " bet+rafe
XRk <Char-0xfb4d>  " kaf+rafe
XRp <Char-0xfb4e>  " pe+rafe
Xal <Char-0xfb4f>  " alef-lamed
PK�j�Z��T((( vim80/keymap/croatian_cp1250.vimnu�[���" Vim Keymap file for Croatian characters, classical variant, cp1250 encoding
" 
" Maintainer:   Paul B. Mahol <onemda@gmail.com>
" Last Changed: 2007 Oct 15

scriptencoding cp1250

let b:keymap_name = "croatian-cp1250"
" Uncomment line below if you prefer short name
"let b:keymap_name = "hr-cp1250"

loadkeymap
z	y
Z	Y
y	z
Y	Z
[	�
{	�
]	�
}	�
;	�
:	�
'	�
"	�
\	�
|	�
/	-
?	_
>	:
<	;
�	<
�	>
�	{
�	}
�	[
�	]
�	\
�	|
=	+
+	*
-	'
_	?
@	"
^	&
&	/
*	(
(	)
)	=
�	~
�	@
�	^
�	�
�	�
�	�
�	�
�	�
�	�
�	�
�	�
�	`
�	�
�	�
�	�
�	�
�	�
PK�j�Z>���33vim80/keymap/hebrewp_utf-8.vimnu�[���" Vim Keymap file for hebrew
" Maintainer  : Ron Aaron <ron@ronware.org>
" Last Updated: Thu 08 Mar 2001 13:49:01
" This is my version of a phonetic Hebrew

" Use this short name in the status line.
let b:keymap_name = "hebp"
loadkeymap
w	<char-0x5e9>	" � - shin
n	<char-0x5e0>	" � - nun
b	<char-0x5d1>	" � - bet
g	<char-0x5d2>	" � - gimel
q	<char-0x5e7>	" � - qof
k	<char-0x5db>	" � - kaf
g	<char-0x5e2>	" � - ayin
y	<char-0x5d9>	" � - yod
N	<char-0x5df>	" � - final nun
j	<char-0x5d7>	" � - het
l	<char-0x5dc>	" � - lamed
K	<char-0x5da>	" � - final kaf
x	<char-0x5e6>	" � - tsadi
m	<char-0x5de>	" � - mem
M	<char-0x5dd>	" � - final mem
p	<char-0x5e4>	" � - pe
r	<char-0x5e8>	" � - resh
d	<char-0x5d3>	" � - dalet
a	<char-0x5d0>	" � - alef
v	<char-0x5d5>	" � - vav
h	<char-0x5d4>	" � - he
s	<char-0x5e1>	" � - samekh
T	<char-0x5d8>	" � - tet
z	<char-0x5d6>	" � - zayin
t	<char-0x5ea>	" � - tav
X	<char-0x5e5>	" � - final tsadi
P	<char-0x5e3>	" � - final pe
A:	<Char-0x5b0>	" sheva
HE	<Char-0x5b1>	" hataf segol
HA	<Char-0x5b2>	" hataf patah
HO	<Char-0x5b3>	" hataf qamats
I	<Char-0x5b4>	" hiriq
AY	<Char-0x5b5>	" tsere
E	<Char-0x5b6>	" segol
AA	<Char-0x5b7>	" patah
AO	<Char-0x5b8>	" qamats
O	<Char-0x5b9>	" holam
U	<Char-0x5bb>	" qubuts
D	<Char-0x5bc>	" dagesh
]T	<Char-0x5bd>	" meteg
]Q	<Char-0x5be>	" maqaf
]R      <�Char-0x5bf>	" rafe
]p      <Char-0x5c0>    " paseq
SR	<Char-0x5c1>	" shin-dot
SL	<Char-0x5c2>	" sin-dot
]P	<Char-0x5c3>	" sof-pasuq
VV	<Char-0x5f0>    " double-vav
VY	<Char-0x5f1>    " vav-yod
YY	<Char-0x5f2>    " yod-yod
" cantillation:
C:	<Char-0x591>	" etnahta
Cs <Char-0x592>   " segol
CS <Char-0x593>   " shalshelet
Cz <Char-0x594>   " zaqef qatan
CZ <Char-0x595>   " zaqef gadol
Ct <Char-0x596>   " tipeha
Cr <Char-0x597>   " revia
Cq <Char-0x598>   " zarqa
Cp <Char-0x599>   " pashta
C! <Char-0x59a>   " yetiv
Cv <Char-0x59b>   " tevir
Cg <Char-0x59c>   " geresh
C* <Char-0x59d>   " geresh qadim
CG <Char-0x59e>   " gershayim
CP <Char-0x59f>   " qarnei-parah
Cy <Char-0x5aa>   " yerach-ben-yomo
Co <Char-0x5ab>  " ole
Ci <Char-0x5ac>  " iluy
Cd <Char-0x5ad>  " dehi
Cn <Char-0x5ae>  " zinor
CC <Char-0x5af>  " masora circle
X` <Char-0xfb20>  " Alternative `ayin
X' <Char-0xfb21>  " Alternative 'alef
X-d <Char-0xfb22>  " Alternative dalet
X-h <Char-0xfb23>  " Alternative he
X-k <Char-0xfb24>  " Alternative kaf
X-l <Char-0xfb25>  " Alternative lamed
X-m <Char-0xfb26>  " Alternative mem-sofit
X-r <Char-0xfb27>  " Alternative resh
X-t <Char-0xfb28>  " Alternative tav
X-+ <Char-0xfb29>  " Alternative plus
XW <Char-0xfb2a>  " shin+shin-dot
Xw <Char-0xfb2b>  " shin+sin-dot
X..W <Char-0xfb2c>  " shin+shin-dot+dagesh
X..w <Char-0xfb2d>  " shin+sin-dot+dagesh
XA <Char-0xfb2e>  " alef+patah
XO <Char-0xfb2f>  " alef+qamats
XI <Char-0xfb30>  " alef+hiriq (mapiq)
X.b <Char-0xfb31>  " bet+dagesh
X.g <Char-0xfb32>  " gimel+dagesh
X.d <Char-0xfb33>  " dalet+dagesh
X.h <Char-0xfb34>  " he+dagesh
Xu <Char-0xfb35>  " vav+dagesh
X.z <Char-0xfb36>  " zayin+dagesh
X.T <Char-0xfb38>  " tet+dagesh
X.y <Char-0xfb39>  " yud+dagesh
X.K <Char-0xfb3a>  " kaf sofit+dagesh
X.k <Char-0xfb3b>  " kaf+dagesh
X.l <Char-0xfb3c>  " lamed+dagesh
X.m <Char-0xfb3e>  " mem+dagesh
X.n <Char-0xfb40>  " nun+dagesh
X.s <Char-0xfb41>  " samech+dagesh
X.P <Char-0xfb43>  " pe sofit+dagesh
X.p <Char-0xfb44>  " pe+dagesh
X.x <Char-0xfb46>  " tsadi+dagesh
X.q <Char-0xfb47>  " qof+dagesh
X.r <Char-0xfb48>  " resh+dagesh
X.w <Char-0xfb49>  " shin+dagesh
X.t <Char-0xfb4a>  " tav+dagesh
Xo <Char-0xfb4b>  " vav+holam
XRb <Char-0xfb4c>  " bet+rafe
XRk <Char-0xfb4d>  " kaf+rafe
XRp <Char-0xfb4e>  " pe+rafe
Xal <Char-0xfb4f>  " alef-lamed
PK�j�Z��9�BBvim80/keymap/hebrew.vimnu�[���let encoding = &enc
if encoding == 'latin1'
    if has("unix")
	let encoding = 'iso-8859-8'
    else
	let encoding = 'cp1255'
    endif
endif

if encoding == 'utf-8'
	source <sfile>:p:h/hebrew_utf-8.vim
elseif encoding == 'cp1255'
	source <sfile>:p:h/hebrew_cp1255.vim
else
	source <sfile>:p:h/hebrew_iso-8859-8.vim
endif
PK�j�Z-�}}'vim80/keymap/armenian-western_utf-8.vimnu�[���" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps

let b:keymap_name = "hy"

loadkeymap

" Capital letters
A   Ա
P   Բ
C   Գ
T   Դ
Y   Ե
Z   Զ
E   Է
U   Ը
:   Թ
+   Ժ
I   Ի
L   Լ
Q   Խ
?   Ծ
G   Կ
H   Հ
@   Ձ
>   Ղ
J   Ճ
M   Մ
#   Յ
N   Ն
<   Շ
O   Ո
{   Չ
B   Պ
}   Ջ
_   Ռ
S   Ս
W   Վ
D   Տ
R   Ր
X   Ց
V   Ւ
\"  Փ
K   Ք
)   Օ
F   Ֆ

" Lowercase letters
a   ա
p   բ
c   գ
t   դ
y   ե
z   զ
e   է
u   ը
;   թ
=   ժ
i   ի
l   լ
q   խ
/   ծ
g   կ
h   հ
2   ձ
.   ղ
j   ճ
m   մ
3   յ
n   ն
,   շ
o   ո
[   չ
b   պ
]   ջ
-   ռ
s   ս
w   վ
d   տ
r   ր
x   ց
v   ւ
'   փ
k   ք
0   օ
f   ֆ

&   և

" Punctuation
`   ՝
~   ՜
1   ։
4   ՛
5   ,
6   -
7   .
8   «
9   »
*   (
(   )
\\  '
|   ՞

" Numbers
!   1
$   3
%   4
^   9
PK�j�Z>�{��vim80/keymap/greek_cp737.vimnu�[���" Vim Keymap file for greek DOS cp737
" Maintainer: Panagiotis Louridas <louridas@acm.org>
" Last Updated: Thu Mar 23 14:05:45 EET 2006

" This keyboard layout allows all Greek symbols to be typed,
" including accented capitals and diaeresis. It does not
" include diaeresis and accent on the same vowel, nor
" the greek quotes, as these were not included in the codepage.
" It includes the Greek semicolon sign.

"
" accent			";" + letter
" diaeresis			":" + letter
" diaeresis + accent		";" + ":" (or ":" + ";") + letter
" semicolon			"q"
" colon				"Q"
" greek semicolon		"W"
" sigma at end of word		"w"

" Use this short name in the status line.
let b:keymap_name = "greek"

loadkeymap
" capital
A	<char-128>	" �
B	<char-129>	" �
G	<char-130>	" �
D	<char-131>	" �
E	<char-132>	" �
Z	<char-133>	" �
H	<char-134>	" �
U	<char-135>	" �
I	<char-136>	" �
K	<char-137>	" �
L	<char-138>	" �
M	<char-139>	" �
N	<char-140>	" �
J	<char-141>	" �
O	<char-142>	" �
P	<char-143>	" �
R	<char-144>	" �
S	<char-145>	" �
T	<char-146>	" �
Y	<char-147>	" �
F	<char-148>	" �
X	<char-149>	" �
C	<char-150>	" �
V	<char-151>	" �

" small
a	<char-152>	" �
b	<char-153>	" �
g	<char-154>	" �
d	<char-155>	" �
e	<char-156>	" �
z	<char-157>	" �
h	<char-158>	" �
u	<char-159>	" �
i	<char-160>	" �
k	<char-161>	" �
l	<char-162>	" �
m	<char-163>	" �
n	<char-164>	" �
j	<char-165>	" �
o	<char-166>	" �
p	<char-167>	" �
r	<char-168>	" �
s	<char-169>	" �
w	<char-170>	" �
t	<char-171>	" �
y	<char-172>	" �
f	<char-173>	" �
x	<char-174>	" �
c	<char-175>	" �
v	<char-224>	" �

" accented capital
;A	<char-234>	" �
;E	<char-235>	" �
;H	<char-236>	" �
;I	<char-237>	" �
;O	<char-238>	" �
;Y	<char-239>	" �
;V	<char-240>	" �
"
:I	<char-244>	" �
:Y	<char-245>	" �

" accented small
;a	<char-225>	" �
;e	<char-226>	" �
;h	<char-227>	" �
;i	<char-229>	" �
;o	<char-230>	" �
;y	<char-231>	" �
;v	<char-233>	" �
"
:i	<char-228>	" �
:y	<char-232>	" �
"
" symbols
q	;		" ;
Q	:		" :
W	<char-250>	" �
PK�j�Z�qK=��vim80/keymap/slovak_cp1250.vimnu�[���" Maintainer:	Peter Valach <pvalach@gmx.net>
" Last Changed: 2002 Feb 3
" URL:		http://www.pv2c.sk/free/sk_vimkeymap/

let b:keymap_name = "sk"

loadkeymap
" Z a Y - ak chcete slovensku qwerty, zakomentujte tieto styri riadky
y z
z y
Y Z
Z Y

" Horny riadok
` ;
1 +
! 1
2 �
@ 2
3 �
# 3
4 �
$ 4
5 �
% 5
6 �
^ 6
7 �
& 7
8 �
* 8
9 �
( 9
0 �
) 0
- =
_ %

" Klavesy okolo Enteru :)
[ �
{ /
] �
} (
\\ �
<Bar> )
; �
: "
' �
\" !
", , ;-)
< ?
". . ;-)
> :
/ -
? _

" Dlzne
=a �
=A �
=e �
=E �
=i �
=I �
=l �
=L �
=o �
=O �
=r �
=R �
=u �
=U �
=z �
=Z �
" pre pripad omylu :) alebo slovenskej QWERTY
=y �
=Y �

" Makcene
+a �
+A �
+c �
+C �
+d �
+D �
+l �
+L �
+n �
+N �
+o �
+O �
+s �
+S �
+t �
+T �
+y �
+Y �
" pre pripad omylu :) alebo slovenskej QWERTY
+z �
+Z �

PK�j�Z��f�fvim80/keymap/greek_utf-8.vimnu�[���" Vim Keymap file for greek
" Maintainer: Panagiotis Louridas <louridas@acm.org>
" Last Updated: Thu Mar 23 23:45:02 EET 2006

" This file was corrected for Vim after the version adapted for Vim 6 from
" the yudit distribution by Robert Goulding <goulding@princeton.edu>
"
" The monotonic part of this kmap was made by Constantine Stathopoulos
" <cstath@irismedia.gr>.
" The polytonic part was made by <birger.langkjer@image.dk> 04/11-1999,
" Aarhus, Denmark.
" It was modified and completed by A. Tsolomitis <atsol@aegean.gr>
" The licence allows modifications but redistribution of modifications
" should be with another name.

" The keymap now conforms with the
" LaTeX's-Babel Standard by A. Syropoulos <apostolo@ocean1.ee.duth.gr>

" The conventions are as follows:
" EURO SIGN is E$ (0x20AC),
" Drachma sign is D$ (0x20AF)

" RIGHT an LEFT QUOTATION MARKS (0x00BB), (0x00AB),
" follow the kikbd conventions (;< abd ;>) AND << and >>

" Apostrofos is corrected in order to agree with the Greek grammar rules
" of Triantafilidis who requires the PSILI (or Koronis) symbol for an
" apostrophe.

" The Greek ANO TELEIA (0x0387), follows again the kikbd conventions as
" well as the Emacs conventions. So it is produced by both ;. and W

" All greek accents are added so they can be produced by scholars
" without having to combine them with letters (usufull for grammarians
" in particular) (especially for dasia and psiln we use ' for psili
" (that is apostrophe) and ;' for dasia. This is done in order to
" preserve the posibility to write a plain < or >.

" Ypogegrammeni is | following the character (the originally proposed
" i after the character is problematic: can't write easily ai or vi) :

" > dasia " an oxia or baria *always* should follow dasia
" < psili " an oxia or baria *always* should follow psili
" ; tonos
" / oxia
" ` varia
" ~ perispomeni
" : dialytika
" :; or ;: dialytika oxia
" :` or `: dialytika baria
" || a single ypogegrammeni
" vowel followed by | gives ypogegrammeni to the vowel
" -vowel gives vowel with macron
" ^vowel gives vowel with braxy
" -- endash
" --- emdash
" ;b ;p ;f ;u ;r ;k give alternative forms
" && give the Greek kai symbol
" #Q and #q give archaic Qoppa and qoppa
" ;U is capital Theta symbol
" !e and !E are lunate epsilon and Epsilon
" #ST stigma
" #SP sampi
" #G digamma
" #Q qoppa
" ;# avw tovos (for numerals)
" ;## katw tovos (for numerals)


" All accents are supported. Even rho with < and > and Rho with <
" Also :~i and :~u and macron and braxy a,i,u and their capitals.
let b:keymap_name = "grk"
loadkeymap
" PUNCTUATION MARKS - SYMBOLS (GREEK SPECIFIC)
"
E$	<char-0x20AC>  " EURO SIGN
>>	<char-0x00BB>  " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK [GREEK
		       " EISAGOGIKA/OMOIOMATIKA - DEFINITION
		       " MISSING FROM UNICODE]
;>	<char-0x00BB>  "
<<	<char-0x00AB>  " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK [GREEK
		       " EISAGOGIKA - DEFINITION MISSING FROM UNICODE]
;<	<char-0x00AB> "
Q	<char-0x003A>   " COLON [GREEK EPEXIGIMATIKA OR ANO & KATO TELEIA -
			" DEFINITION MISSING FROM UNICODE]
q	<char-0x037E>   " GREEK QUESTION MARK (EROTIMATIKO)
;.	<char-0x0387>	" GREEK ANO TELEIA (KDE/kikbd/Xinput standard)
W	<char-0x0387>   " GREEK ANO TELEIA (Emacs standard)
'	<char-0x1FBD>   " GREEK APOSTROFOS
--	<char-0x2013>	" endash
---	<char-0x2014>	" emdash
"
" GREEK DIACRITICS
"
:	<char-0x00A8>   " DIAERESIS [GREEK DIALYTIKA - DEFINITION MISSING FROM
			" UNICODE]
;	<char-0x0384>   " GREEK TONOS
:;	<char-0x0385>	" GREEK DIALYTIKA Oxia
;:	<char-0x0385>	" GREEK DIALYTIKA Oxia
:`	<char-0x1FED>	" GREEK DIALYTIKA VARIA
`:	<char-0x1FED>	" GREEK DIALYTIKA VARIA
/	<char-0x1FFD>	" GREEK OXIA
`	<char-0x1FEF>   " GREEK VARIA
~	<char-0x1FC0>   " PERISPOMENI
>`	<char-0x1FCD>	" PSILI VARIA
<`	<char-0x1FDD>	" DASIA VARIA
>;	<char-0x1FCE>	" PSILI OXIA
<;	<char-0x1FDE>	" DASIA OXIA
<~	<char-0x1FDF>	" DASIA PERISPOMENI
>~	<char-0x1FCF>	" PSILI PERISPOMENI
"For plain psili use apostrophe
;'	<char-0x1FFE>	" (Plain) dasia
"
"
"
" GREEK LETTERS
"
A	<char-0x0391>   " GREEK CAPITAL LETTER ALPHA
B	<char-0x0392>   " GREEK CAPITAL LETTER BETA
G	<char-0x0393>   " GREEK CAPITAL LETTER GAMMA
D	<char-0x0394>   " GREEK CAPITAL LETTER DELTA
E	<char-0x0395>   " GREEK CAPITAL LETTER EPSILON
Z	<char-0x0396>   " GREEK CAPITAL LETTER ZETA
H	<char-0x0397>   " GREEK CAPITAL LETTER ETA
U	<char-0x0398>   " GREEK CAPITAL LETTER THETA
I	<char-0x0399>   " GREEK CAPITAL LETTER IOTA
K	<char-0x039A>   " GREEK CAPITAL LETTER KAPPA
L	<char-0x039B>   " GREEK CAPITAL LETTER LAMDA
M	<char-0x039C>   " GREEK CAPITAL LETTER MU
N	<char-0x039D>   " GREEK CAPITAL LETTER NU
J	<char-0x039E>   " GREEK CAPITAL LETTER XI
O	<char-0x039F>   " GREEK CAPITAL LETTER OMIKRON
P	<char-0x03A0>   " GREEK CAPITAL LETTER PI
R	<char-0x03A1>   " GREEK CAPITAL LETTER RHO
S	<char-0x03A3>   " GREEK CAPITAL LETTER SIGMA
T	<char-0x03A4>   " GREEK CAPITAL LETTER TAU
Y	<char-0x03A5>   " GREEK CAPITAL LETTER UPSILON
F	<char-0x03A6>   " GREEK CAPITAL LETTER PHI
X	<char-0x03A7>   " GREEK CAPITAL LETTER CHI
C	<char-0x03A8>   " GREEK CAPITAL LETTER PSI
V	<char-0x03A9>   " GREEK CAPITAL LETTER OMEGA
a	<char-0x03B1>   " GREEK SMALL LETTER ALPHA
b	<char-0x03B2>   " GREEK SMALL LETTER BETA
g	<char-0x03B3>   " GREEK SMALL LETTER GAMMA
d	<char-0x03B4>   " GREEK SMALL LETTER DELTA
e	<char-0x03B5>   " GREEK SMALL LETTER EPSILON
z	<char-0x03B6>   " GREEK SMALL LETTER ZETA
h	<char-0x03B7>   " GREEK SMALL LETTER ETA
u	<char-0x03B8>   " GREEK SMALL LETTER THETA
i	<char-0x03B9>   " GREEK SMALL LETTER IOTA
k	<char-0x03BA>   " GREEK SMALL LETTER KAPPA
l	<char-0x03BB>   " GREEK SMALL LETTER LAMDA
m	<char-0x03BC>   " GREEK SMALL LETTER MU
n	<char-0x03BD>   " GREEK SMALL LETTER NU
j	<char-0x03BE>   " GREEK SMALL LETTER XI
o	<char-0x03BF>   " GREEK SMALL LETTER OMICRON
p	<char-0x03C0>   " GREEK SMALL LETTER PI
r	<char-0x03C1>   " GREEK SMALL LETTER RHO
w	<char-0x03C2>   " GREEK SMALL LETTER FINAL SIGMA
s	<char-0x03C3>   " GREEK SMALL LETTER SIGMA
t	<char-0x03C4>   " GREEK SMALL LETTER TAU
y	<char-0x03C5>   " GREEK SMALL LETTER UPSILON
f	<char-0x03C6>   " GREEK SMALL LETTER PHI
x	<char-0x03C7>   " GREEK SMALL LETTER CHI
c	<char-0x03C8>   " GREEK SMALL LETTER PSI
v	<char-0x03C9>   " GREEK SMALL LETTER OMEGA
"
"COMBINED GREEK LETTERS WITH DIACRITICS
"
;A	<char-0x0386>  " GREEK CAPITAL LETTER ALPHA WITH TONOS
;E	<char-0x0388>  " GREEK CAPITAL LETTER EPSILON WITH TONOS
;H	<char-0x0389>  " GREEK CAPITAL LETTER ETA WITH TONOS
;I	<char-0x038A>  " GREEK CAPITAL LETTER IOTA WITH TONOS
;O	<char-0x038C>  " GREEK CAPITAL LETTER OMICRON WITH TONOS
;Y	<char-0x038E>  " GREEK CAPITAL LETTER UPSILON WITH TONOS
;V	<char-0x038F>  " GREEK CAPITAL LETTER OMEGA WITH TONOS
:;i	<char-0x0390>  " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
;:i	<char-0x0390>  " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
:`i	<char-0x1FD2>  " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND baria
`:i	<char-0x1FD2>  " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND baria
:I	<char-0x03AA>  " GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
:Y	<char-0x03AB>  " GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
;a	<char-0x03AC>  " GREEK SMALL LETTER ALPHA WITH TONOS
;e	<char-0x03AD>  " GREEK SMALL LETTER EPSILON WITH TONOS
;h	<char-0x03AE>  " GREEK SMALL LETTER ETA WITH TONOS
;i	<char-0x03AF>  " GREEK SMALL LETTER IOTA WITH TONOS
:;y	<char-0x03B0>  " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
;:y	<char-0x03B0>  " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
:`y	<char-0x1FE2>  " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND baria
`:y	<char-0x1FE2>  " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND baria
:i	<char-0x03CA>  " GREEK SMALL LETTER IOTA WITH DIALYTIKA
:y	<char-0x03CB>  " GREEK SMALL LETTER UPSILON WITH DIALYTIKA
;o	<char-0x03CC>  " GREEK SMALL LETTER OMICRON WITH TONOS
;y	<char-0x03CD>  " GREEK SMALL LETTER UPSILON WITH TONOS
;v	<char-0x03CE>  " GREEK SMALL LETTER OMEGA WITH TONOS

"
" This area covers 0x1F00-0x1FFF
"
"
" letters with Varia:
"
`A	<char-0x1FBA>  " GREEK CAPITAL LETTER ALPHA WITH VARIA
`E	<char-0x1FC8>  " GREEK CAPITAL LETTER ALPHA WITH VARIA
`H	<char-0x1FCA>  " GREEK CAPITAL LETTER ETA WITH VARIA
`I	<char-0x1FDA>  " GREEK CAPITAL LETTER IOTA WITH VARIA
`O	<char-0x1FF8>  " GREEK CAPITAL LETTER ALPHA WITH VARIA
`Y	<char-0x1FEA>  " GREEK CAPITAL LETTER ALPHA WITH VARIA
`V	<char-0x1FFA>  " GREEK CAPITAL LETTER OMEGA WITH VARIA
`a	<char-0x1F70>  " GREEK SMALL LETTER ALPHA WITH VARIA
`e	<char-0x1F72>  " GREEK SMALL LETTER ALPHA WITH VARIA
`h	<char-0x1F74>  " GREEK SMALL LETTER ETA WITH VARIA
`i	<char-0x1F76>  " GREEK SMALL LETTER IOTA WITH VARIA
`o	<char-0x1F78>  " GREEK SMALL LETTER ALPHA WITH VARIA
`y	<char-0x1F7A>  " GREEK SMALL LETTER ALPHA WITH VARIA
`v	<char-0x1F7C>  " GREEK SMALL LETTER OMEGA WITH VARIA
"
" letters with Oxia:
"
/A	<char-0x1FBB>  " GREEK CAPITAL LETTER ALPHA WITH OXIA
/E	<char-0x1FC9>  " GREEK CAPITAL LETTER EPSILON WITH OXIA
/H	<char-0x1FCB>  " GREEK CAPITAL LETTER ETA WITH OXIA
/I	<char-0x1FDB>  " GREEK CAPITAL LETTER IOTA WITH OXIA
/O	<char-0x1FF9>  " GREEK CAPITAL LETTER OMICRON WITH OXIA
/Y	<char-0x1FEB>  " GREEK CAPITAL LETTER UPSILON WITH OXIA
/V	<char-0x1FFB>  " GREEK CAPITAL LETTER OMEGA WITH OXIA
/a	<char-0x1F71>  " GREEK SMALL LETTER ALPHA WITH OXIA
/e	<char-0x1F73>  " GREEK SMALL LETTER EPSILON WITH OXIA
/h	<char-0x1F75>  " GREEK SMALL LETTER ETA WITH OXIA
/i	<char-0x1F77>  " GREEK SMALL LETTER IOTA WITH OXIA
/o	<char-0x1F79>  " GREEK SMALL LETTER OMICRON WITH OXIA
/y	<char-0x1F7B>  " GREEK SMALL LETTER UPSILON WITH OXIA
/v	<char-0x1F7D>  " GREEK SMALL LETTER OMEGA WITH OXIA
"
" letters with Psili:
"
>A	<char-0x1F08>  " GREEK CAPITAL LETTER ALPHA WITH PSILI
>E	<char-0x1F18>  " GREEK CAPITAL LETTER EPSILON WITH PSILI
>H	<char-0x1F28>  " GREEK CAPITAL LETTER ETA WITH PSILI
>I	<char-0x1F38>  " GREEK CAPITAL LETTER IOTA WITH PSILI
>O	<char-0x1F48>  " GREEK CAPITAL LETTER OMICRON WITH PSILI
>Y	<char-0x1F58>  " GREEK CAPITAL LETTER UPSILON WITH PSILI
>V	<char-0x1F68>  " GREEK CAPITAL LETTER OMEGA WITH PSILI
>a	<char-0x1F00>  " GREEK SMALL LETTER ALPHA WITH PSILI
>e	<char-0x1F10>  " GREEK SMALL LETTER EPSILON WITH PSILI
>h	<char-0x1F20>  " GREEK SMALL LETTER ETA WITH PSILI
>i	<char-0x1F30>  " GREEK SMALL LETTER IOTA WITH PSILI
>o	<char-0x1F40>  " GREEK SMALL LETTER OMICRON WITH PSILI
>y	<char-0x1F50>  " GREEK SMALL LETTER UPSILON WITH PSILI
>v	<char-0x1F60>  " GREEK SMALL LETTER OMEGA WITH PSILI

"
" Letters with Dasia:
"
<A	<char-0x1F09>  " GREEK CAPITAL LETTER ALPHA WITH DASIA
<E	<char-0x1F19>  " GREEK CAPITAL LETTER EPSILON WITH DASIA
<H	<char-0x1F29>  " GREEK CAPITAL LETTER ETA WITH DASIA
<I	<char-0x1F39>  " GREEK CAPITAL LETTER IOTA WITH DASIA
<O	<char-0x1F49>  " GREEK CAPITAL LETTER OMICRON WITH DASIA
<Y	<char-0x1F59>  " GREEK CAPITAL LETTER UPSILON WITH DASIA
<V	<char-0x1F69>  " GREEK CAPITAL LETTER OMEGA WITH DASIA
<a	<char-0x1F01>  " GREEK SMALL LETTER ALPHA WITH DASIA
<e	<char-0x1F11>  " GREEK SMALL LETTER EPSILON WITH DASIA
<h	<char-0x1F21>  " GREEK SMALL LETTER ETA WITH DASIA
<i	<char-0x1F31>  " GREEK SMALL LETTER IOTA WITH DASIA
<o	<char-0x1F41>  " GREEK SMALL LETTER OMICRON WITH DASIA
<y	<char-0x1F51>  " GREEK SMALL LETTER UPSILON WITH DASIA
<v	<char-0x1F61>  " GREEK SMALL LETTER OMEGA WITH DASIA
"
" letters with Psili and Varia:
"
>`A	<char-0x1F0A>  " GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
>`E	<char-0x1F1A>  " GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
>`H	<char-0x1F2A>  " GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
>`I	<char-0x1F3A>  " GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
>`O	<char-0x1F4A>  " GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
>`Y	<char-0x1F5A>  " GREEK CAPITAL LETTER UPSILON WITH PSILI AND VARIA
>`V	<char-0x1F6A>  " GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
>`a	<char-0x1F02>  " GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
>`e	<char-0x1F12>  " GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
>`h	<char-0x1F22>  " GREEK SMALL LETTER ETA WITH PSILI AND VARIA
>`i	<char-0x1F32>  " GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
>`o	<char-0x1F42>  " GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
>`y	<char-0x1F52>  " GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
>`v	<char-0x1F62>  " GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
"
" Letters with Dasia and Varia:
"
<`A	<char-0x1F0B>  " GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
<`E	<char-0x1F1B>  " GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
<`H	<char-0x1F2B>  " GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
<`I	<char-0x1F3B>  " GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
<`O	<char-0x1F4B>  " GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
<`Y	<char-0x1F5B>  " GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
<`V	<char-0x1F6B>  " GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
<`a	<char-0x1F03>  " GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
<`e	<char-0x1F13>  " GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
<`h	<char-0x1F23>  " GREEK SMALL LETTER ETA WITH DASIA AND VARIA
<`i	<char-0x1F33>  " GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
<`o	<char-0x1F43>  " GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
<`y	<char-0x1F53>  " GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
<`v	<char-0x1F63>  " GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
"
" letters with Psili and Oxia:
"
>;A	<char-0x1F0C>  " GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
>;E	<char-0x1F1C>  " GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
>;H	<char-0x1F2C>  " GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
>;I	<char-0x1F3C>  " GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
>;O	<char-0x1F4C>  " GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
>;Y	<char-0x1F5C>  " GREEK CAPITAL LETTER UPSILON WITH PSILI AND OXIA
>;V	<char-0x1F6C>  " GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
>;a	<char-0x1F04>  " GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
>;e	<char-0x1F14>  " GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
>;h	<char-0x1F24>  " GREEK SMALL LETTER ETA WITH PSILI AND OXIA
>;i	<char-0x1F34>  " GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
>;o	<char-0x1F44>  " GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
>;y	<char-0x1F54>  " GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
>;v	<char-0x1F64>  " GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
"
" Letters with Dasia and Oxia:
"
<;A	<char-0x1F0D>  " GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
<;E	<char-0x1F1D>  " GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
<;H	<char-0x1F2D>  " GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
<;I	<char-0x1F3D>  " GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
<;O	<char-0x1F4D>  " GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
<;Y	<char-0x1F5D>  " GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
<;V	<char-0x1F6D>  " GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
<;a	<char-0x1F05>  " GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
<;e	<char-0x1F15>  " GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
<;h	<char-0x1F25>  " GREEK SMALL LETTER ETA WITH DASIA AND OXIA
<;i	<char-0x1F35>  " GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
<;o	<char-0x1F45>  " GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
<;y	<char-0x1F55>  " GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
<;v	<char-0x1F65>  " GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
"
" letters with Psili and Perispomeni:
"
>~A	<char-0x1F0E>  " GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
>~E	<char-0x1F1E>  " GREEK CAPITAL LETTER EPSILON WITH PSILI AND PERISPOMENI
>~H	<char-0x1F2E>  " GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
>~I	<char-0x1F3E>  " GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
>~O	<char-0x1F4E>  " GREEK CAPITAL LETTER OMICRON WITH PSILI AND PERISPOMENI
>~Y	<char-0x1F5E>  " GREEK CAPITAL LETTER UPSILON WITH PSILI AND PERISPOMENI
>~V	<char-0x1F6E>  " GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
>~a	<char-0x1F06>  " GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
>~e	<char-0x1F16>  " GREEK SMALL LETTER EPSILON WITH PSILI AND PERISPOMENI
>~h	<char-0x1F26>  " GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
>~i	<char-0x1F36>  " GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
>~o	<char-0x1F46>  " GREEK SMALL LETTER OMICRON WITH PSILI AND PERISPOMENI
>~y	<char-0x1F56>  " GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
>~v	<char-0x1F66>  " GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
"
" Letters with Dasia and Perispomeni:
"
<~A	<char-0x1F0F>  " GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
<~E	<char-0x1F1F>  " GREEK CAPITAL LETTER EPSILON WITH DASIA AND PERISPOMENI
<~H	<char-0x1F2F>  " GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
<~I	<char-0x1F3F>  " GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
<~O	<char-0x1F4F>  " GREEK CAPITAL LETTER OMICRON WITH DASIA AND PERISPOMENI
<~Y	<char-0x1F5F>  " GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
<~V	<char-0x1F6F>  " GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
<~a	<char-0x1F07>  " GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
<~e	<char-0x1F17>  " GREEK SMALL LETTER EPSILON WITH DASIA AND PERISPOMENI
<~h	<char-0x1F27>  " GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
<~i	<char-0x1F37>  " GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
<~o	<char-0x1F47>  " GREEK SMALL LETTER OMICRON WITH DASIA AND PERISPOMENI
<~y	<char-0x1F57>  " GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
<~v	<char-0x1F67>  " GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
"
"
"
" letters with Ypogegrammeni/Prosgegrammeni:
"
A|	<char-0x1FBC>  " GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
H|	<char-0x1FCC>  " GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
V|	<char-0x1FFC>  " GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
a|	<char-0x1FB3>  " GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
h|	<char-0x1FC3>  " GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
v|	<char-0x1FF3>  " GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
"
"
"
" letters with Psili and Ypogegrammeni/Prosgegrammeni:
"
>A|	<char-0x1F88>  " GREEK CAPITAL LETTER ALPHA WITH PSILI AND
		       " PROSGEGRAMMENI
>H|	<char-0x1F98>  " GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
>V|	<char-0x1FA8>  " GREEK CAPITAL LETTER OMEGA WITH PSILI AND
		       " PROSGEGRAMMENI
>a|	<char-0x1F80>  " GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
>h|	<char-0x1F90>  " GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
>v|	<char-0x1FA0>  " GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
"
"
"
" letters with Dasia and Ypogegrammeni/Prosgegrammeni:
"
<A|	<char-0x1F89>  " GREEK CAPITAL LETTER ALPHA WITH DASIA AND
		       " PROSGEGRAMMENI
<H|	<char-0x1F99>  " GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
<V|	<char-0x1FA9>  " GREEK CAPITAL LETTER OMEGA WITH DASIA AND
		       " PROSGEGRAMMENI
<a|	<char-0x1F81>  " GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
<h|	<char-0x1F91>  " GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
<v|	<char-0x1FA1>  " GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
"
"
"
" letters with Psili and Varia and Ypogegrammeni/Prosgegrammeni:
"
>`A|	<char-0x1F8A>  " GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND
		       " PROSGEGRAMMENI
>`H|	<char-0x1F9A>  " GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND
		       " PROSGEGRAMMENI
>`V|	<char-0x1FAA>  " GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND
		       " PROSGEGRAMMENI
>`a|	<char-0x1F82>  " GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND
		       " YPOGEGRAMMENI
>`h|	<char-0x1F92>  " GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND
		       " YPOGEGRAMMENI
>`v|	<char-0x1FA2>  " GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND
		       " YPOGEGRAMMENI
"
"
"
" letters with Dasia and Varia and Ypogegrammeni/Prosgegrammeni:
"
<`A|	<char-0x1F8B>  " GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND
		       " PROSGEGRAMMENI
<`H|	<char-0x1F9B>  " GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND
		       " PROSGEGRAMMENI
<`V|	<char-0x1FAB>  " GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND
		       " PROSGEGRAMMENI
<`a|	<char-0x1F83>  " GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND
		       " YPOGEGRAMMENI
<`h|	<char-0x1F93>  " GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND
		       " YPOGEGRAMMENI
<`v|	<char-0x1FA3>  " GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND
		       " YPOGEGRAMMENI
"
" letters with Psili and Oxia and Ypogegrammeni/Prosgegrammeni:
"
"
"
>;A|	<char-0x1F8C>  " GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND
		       " PROSGEGRAMMENI
>;H|	<char-0x1F9C>  " GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND
		       " PROSGEGRAMMENI
>;V|	<char-0x1FAC>  " GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND
		       " PROSGEGRAMMENI
>;a|	<char-0x1F84>  " GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND
		       " YPOGEGRAMMENI
>;h|	<char-0x1F94>  " GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND
		       " YPOGEGRAMMENI
>;v|	<char-0x1FA4>  " GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND
		       " YPOGEGRAMMENI
"
" letters with Dasia and Oxia and Ypogegrammeni/Prosgegrammeni:
"
"
"
<;A|	<char-0x1F8D>  " GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND
		       " PROSGEGRAMMENI
<;H|	<char-0x1F9D>  " GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND
		       " PROSGEGRAMMENI
<;V|	<char-0x1FAD>  " GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND
		       " PROSGEGRAMMENI
<;a|	<char-0x1F85>  " GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND
		       " YPOGEGRAMMENI
<;h|	<char-0x1F95>  " GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND
		       " YPOGEGRAMMENI
<;v|	<char-0x1FA5>  " GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND
		       " YPOGEGRAMMENI
"
" letters with Psili and Perispomeni and Ypogegrammeni/Prosgegrammeni:
"
"
"
>~A|	<char-0x1F8E>  " GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
		       " AND PROSGEGRAMMENI
>~H|	<char-0x1F9E>  " GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
		       " PERISPOMENI PROSGEGRAMMENI
>~V|	<char-0x1FAE>  " GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
		       " AND PROSGEGRAMMENI
>~a|	<char-0x1F86>  " GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
		       " AND YPOGEGRAMMENI
>~h|	<char-0x1F96>  " GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND
		       " YPOGEGRAMMENI
>~v|	<char-0x1FA6>  " GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
		       " AND YPOGEGRAMMENI
"
" letters with Dasia and Perispomeni and Ypogegrammeni/Prosgegrammeni:
"
"
"
<~A|	<char-0x1F8F>  " GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
		       " AND PROSGEGRAMMENI
<~H|	<char-0x1F9F>  " GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
		       " AND PROSGEGRAMMENI
<~V|	<char-0x1FAF>  " GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
		       " AND PROSGEGRAMMENI
<~a|	<char-0x1F87>  " GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
		       " AND YPOGEGRAMMENI
<~h|	<char-0x1F97>  " GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND
		       " YPOGEGRAMMENI
<~v|	<char-0x1FA7>  " GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
		       " AND YPOGEGRAMMENI
"
" letters with Perispomeni:
"
"
"
~a	<char-0x1FB6>  " GREEK SMALL LETTER ALPHA WITH PERISPOMENI
~h	<char-0x1FC6>  " GREEK SMALL LETTER ETA WITH PERISPOMENI
~i	<char-0x1FD6>  " GREEK SMALL LETTER IOTA WITH PERISPOMENI
~y	<char-0x1FE6>  " GREEK SMALL LETTER UPSILON WITH PERISPOMENI
~v	<char-0x1FF6>  " GREEK SMALL LETTER OMEGA WITH PERISPOMENI
"
" letters with Perispomeni and Ypogegrammeni:
"
"
"
~a|	<char-0x1FB7> " GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND
		      " YPOGEGRAMMENI
~h|	<char-0x1FC7> " GREEK SMALL LETTER ETA WITH PERISPOMENI AND
		      " YPOGEGRAMMENI
~v|	<char-0x1FF7> " GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND
		      " YPOGEGRAMMENI
"
"
" letters with Varia and Ypogegrammeni:
"
"
"
`a|	<char-0x1FB2>  " GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
`h|	<char-0x1FC2>  " GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
`v|	<char-0x1FF2>  " GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
"
" letters with Oxia and Ypogegrammeni:
"
"
"
;a|	<char-0x1FB4>  " GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
;h|	<char-0x1FC4>  " GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
;v|	<char-0x1FF4>  " GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
"
"
" Combining/Nonspacing comma above (0x0313) instead of Psili:
"
>,	<char-0x0313>   " COMBINING COMMA ABOVE
"
" Combining/Nonspacing reversed comma above (0x0314) instead of Dasia:
"
<,	<char-0x0314>   " COMBINING REVERSED COMMA ABOVE
"
"
" Greek Quotes if your keyboard supports them
�	<char-0x201C>    " QUOTEDBLLEFT
�	<char-0x201D>    " QUOTEDBLRIGHT
"
"
"


" APPENDIX A - Additional characters
"
"
;#	<char-0x0374>  " GREEK NUMERAL SIGN
;##	<char-0x0375>  " GREEK LOWER NUMERAL SIGN
||	<char-0x037A>  " GREEK YPOGEGRAMMENI
;b	<char-0x03D0>  " GREEK BETA SYMBOL
;u	<char-0x03D1>  " GREEK THETA SYMBOL
"	<char-0x03D2>  " GREEK UPSILON WITH HOOK SYMBOL
"	<char-0x03D3>  " GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
"	<char-0x03D4>  " GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
;f	<char-0x03D5>  " GREEK PHI SYMBOL
;p	<char-0x03D6>  " GREEK PI SYMBOL
#ST	<char-0x03DA>  " GREEK LETTER STIGMA
#G	<char-0x03DC>  " GREEK LETTER DIGAMMA
#Q	<char-0x03DE>  " GREEK LETTER KOPPA
#SP	<char-0x03E0>  " GREEK LETTER SAMPI
;k	<char-0x03F0>  " GREEK KAPPA SYMBOL
;r	<char-0x03F1>  " GREEK RHO SYMBOL
"	<char-0x03F2>  " GREEK LUNATE SIGMA SYMBOL
"	<char-0x03F3>  " GREEK LETTER YOT

:~	<char-0x1FC1>   "dialytika peripswmevn
~:	<char-0x1FC1>   "dialytika peripswmevn

:~i	<char-0x1FD7>  "iota dialytika perispomeni
~:i	<char-0x1FD7>  "iota dialytika perispomeni

:~y	<char-0x1FE7>  "upsilon dialytika perispomeni
~:y	<char-0x1FE7>  "upsilon dialytika perispomeni

-a	<char-0x1FB1>   "alpha macron
-i	<char-0x1FD1>   "iota macron
-y	<char-0x1FE1>   "upsilon macron
-A	<char-0x1FB9>   "Alpha macron
-I	<char-0x1FD9>   "Iota macron
-Y	<char-0x1FE9>   "Upsilon macron
^a	<char-0x1FB0>   "alpha braxy
^i	<char-0x1FD0>   "iota braxy
^y	<char-0x1FE0>   "upsilon braxy
^A	<char-0x1FB8>   "alpha braxy
^I	<char-0x1FD8>   "iota braxy
^Y	<char-0x1FE8>   "upsilon braxy
>r	<char-0x1FE4>   "rho psili
<r	<char-0x1FE5>   "rho dasia

<R	<char-0x1FEC>   "Rho dasia

" More Symbols
&&	<char-0x03D7> "Greek kai
D$	<char-0x20AF> "Drachma symbol
#Q	<char-0x03D8> "Archaic Qoppa
#q	<char-0x03D9> "Archaic qoppa
;U	<char-0x03F4> "Capital Theta symbol
"!e	<char-0x03F5> "Lunate epsilon
"!E	<char-0x03F6> "Lunate Epsilon
PK�j�Zw��_	_	 vim80/keymap/esperanto_utf-8.vimnu�[���" Esperanto keymap for utf-8
" Maintainer:	A.J.Mechelynck	<antoine.mechelynck@skynet.be>
" Last Changed:	Sat 2003 Mar 15 05:23

" This keymap adds the special consonants of Esperanto to an existing Latin
" keyboard.
"
" All keys same as usual, except:
" ^ followed by any of CcGgHhJjSs adds a circumflex on top of the letter
" � and � replaces the grave accent by a breve
" any of CcGgHhJjSsUu followed by X or x maps to consonant with ^ or Uu with
" breve.

" short keymap name for statusline
let b:keymap_name = "Eo"

" make cursor bright green when keymap is active
"highlight lCursor guifg=NONE guibg=#00E000

" The following digraphs are already defined
" digraph C> 0x0108 c> 0x0109	G> 0x011C g> 0x011D	H> 0x0124 h> 0x0125
" digraph J> 0x0134 j> 0x0135	S> 0x015C s> 0x015D	U( 0x016C u( 0x016D

scriptencoding latin1

loadkeymap

^C	<Char-0x0108>	" (264)	UPPERCASE C WITH CIRCUMFLEX
^c	<Char-0x0109>	" (265) LOWERCASE c WITH CIRCUMFLEX
^G	<Char-0x011C>	" (284) UPPERCASE G WITH CIRCUMFLEX
^g	<Char-0x011D>	" (285) LOWERCASE g WITH CIRCUMFLEX
^H	<Char-0x0124>	" (292) UPPERCASE H WITH CIRCUMFLEX
^h	<Char-0x0125>	" (293) LOWERCASE h WITH CIRCUMFLEX
^J	<Char-0x0134>	" (308) UPPERCASE J WITH CIRCUMFLEX
^j	<Char-0x0135>	" (309) LOWERCASE j WITH CIRCUMFLEX
^S	<Char-0x015C>	" (348) UPPERCASE S WITH CIRCUMFLEX
^s	<Char-0x015D>	" (349) LOWERCASE s WITH CIRCUMFLEX
�	<Char-0x016C>	" (364) UPPERCASE U WITH BREVE
�	<Char-0x016D>	" (365) LOWERCASE u WITH BREVE

CX	<Char-0x0108>	" (264)	UPPERCASE C WITH CIRCUMFLEX
Cx	<Char-0x0108>	" (264)	UPPERCASE C WITH CIRCUMFLEX
cx	<Char-0x0109>	" (265) LOWERCASE c WITH CIRCUMFLEX
GX	<Char-0x011C>	" (284) UPPERCASE G WITH CIRCUMFLEX
Gx	<Char-0x011C>	" (284) UPPERCASE G WITH CIRCUMFLEX
gx	<Char-0x011D>	" (285) LOWERCASE g WITH CIRCUMFLEX
HX	<Char-0x0124>	" (292) UPPERCASE H WITH CIRCUMFLEX
Hx	<Char-0x0124>	" (292) UPPERCASE H WITH CIRCUMFLEX
hx	<Char-0x0125>	" (293) LOWERCASE h WITH CIRCUMFLEX
JX	<Char-0x0134>	" (308) UPPERCASE J WITH CIRCUMFLEX
Jx	<Char-0x0134>	" (308) UPPERCASE J WITH CIRCUMFLEX
jx	<Char-0x0135>	" (309) LOWERCASE j WITH CIRCUMFLEX
SX	<Char-0x015C>	" (348) UPPERCASE S WITH CIRCUMFLEX
Sx	<Char-0x015C>	" (348) UPPERCASE S WITH CIRCUMFLEX
sx	<Char-0x015D>	" (349) LOWERCASE s WITH CIRCUMFLEX
UX	<Char-0x016C>	" (364) UPPERCASE U WITH BREVE
Ux	<Char-0x016C>	" (364) UPPERCASE U WITH BREVE
ux	<Char-0x016D>	" (365) LOWERCASE u WITH BREVE
PK�j�Z���mmvim80/keymap/arabic.vimnu�[���" Assume 'encoding' is set to "latin1" while actually iso-8859-6 is used
source <sfile>:p:h/arabic_utf-8.vim
PK�j�Z�jp�FFvim80/keymap/magyar_utf-8.vimnu�[���" Maintainer:   Laszlo Zavaleta <zavaleta@smartchat.net.au>
" Last Changed: 2003 Aug 08
" it has all the accents and a few of the character alterations

let b:keymap = "magyar"

loadkey
`	í
~	Í
!	'
@	"
#	+
$	!
^	/
&	=
*	(
(	)
0	ö
)	Ö
-	ü
_	Ü
=	ó
+	Ó
\\	ű
|	Ű
[	ő
{	Ő
]	ú
}	Ú
;	é
:	É
'	á
\"	Á
/	-
<	?
>	:
?	_
PK�j�Z�fV��"vim80/keymap/slovak_iso-8859-2.vimnu�[���" Maintainer:	Peter Valach <pvalach@gmx.net>
" Last Changed: 2002 Feb 3
" URL:		http://www.pv2c.sk/free/sk_vimkeymap/

let b:keymap_name = "sk"

loadkeymap
" Z a Y - ak chcete slovensku qwerty, zakomentujte tieto styri riadky
y z
z y
Y Z
Z Y

" Horny riadok
` ;
1 +
! 1
2 �
@ 2
3 �
# 3
4 �
$ 4
5 �
% 5
6 �
^ 6
7 �
& 7
8 �
* 8
9 �
( 9
0 �
) 0
- =
_ %

" Klavesy okolo Enteru :)
[ �
{ /
] �
} (
\\ �
<Bar> )
; �
: "
' �
\" !
", , ;-)
< ?
". . ;-)
> :
/ -
? _

" Dlzne
=a �
=A �
=e �
=E �
=i �
=I �
=l �
=L �
=o �
=O �
=r �
=R �
=u �
=U �
=z �
=Z �
" pre pripad omylu :) alebo slovenskej QWERTY
=y �
=Y �

" Makcene
+a �
+A �
+c �
+C �
+d �
+D �
+l �
+L �
+n �
+N �
+o �
+O �
+s �
+S �
+t �
+T �
+y �
+Y �
" pre pripad omylu :) alebo slovenskej QWERTY
+z �
+Z �

PK�j�Z�����vim80/keymap/persian.vimnu�[���let encoding = &enc
if encoding == ''
	let encoding = 'utf-8'
endif

if encoding == 'utf-8'
	source <sfile>:p:h/persian-iranian_utf-8.vim
endif
PK�j�Z)�q��#vim80/keymap/bulgarian-phonetic.vimnu�[���" Vim keymap file for Bulgarian and Russian characters, "phonetic" layout.
" Most of it can be used with both utf-8 and cp1251 file encodings, except
" the accented vowels which can only be stored in utf-8.
" This file itself is in utf-8.

" Maintainer:   Boyko Bantchev <boykobb@gmail.com>
" URI: http://www.math.bas.bg/bantchev/vim/bulgarian-phonetic.vim
" Last Changed: 2010 May 4

" This keymap corresponds to what is called "phonetic layout" in Bulgaria:
" Cyrillic letters tend to be mapped to their Latin homophones wherever
" there are ones.  Most keys corresponding to punctuation characters are
" left unmapped, so they retain their usual (QWERTY) meanings when typing
" Cyrillic.
"
" In addition to the Bulgarian alphabet, the keymap makes accessible the
" following characters:
"     —  The letters Ё and ё, Э and э, and Ы and ы (in pairs of capital and
"        small).  These are the letters in the Russian alphabet that are not
"        present in Bulgarian, so using the bulgarian-phonetic keymap one can
"        type in Russian, too.
"     —  The quotation marks „ “ ” ‘ ’ (used in the Bulgarian and English
"        quotation styles), as well as « » (Russian quotation style).
"     —  The characters §, №, – (en-dash), — (em-dash), …, •, ·, ±, °, ¬,
"        ¤, €, ‰, †, ‡, and ¶.
"
" The keymap also defines key combinations for grave and acute accents.
" (Grave accent is used in Bulgarian, acute in Russian, but both accents
" apply to other languages as well.)
"
" For details of what key or key combination maps to what character, please
" see below the map itself.
"
" See also http://www.math.bas.bg/bantchev/vim/kbdbul.html (in Bulgarian).

scriptencoding utf-8

let b:keymap_name = "pho"

loadkeymap
A       А       CYRILLIC CAPITAL LETTER A
B       Б       CYRILLIC CAPITAL LETTER BE
W       В       CYRILLIC CAPITAL LETTER VE
G       Г       CYRILLIC CAPITAL LETTER GHE
D       Д       CYRILLIC CAPITAL LETTER DE
E       Е       CYRILLIC CAPITAL LETTER IE
E::     Ё       CYRILLIC CAPITAL LETTER IO
V       Ж       CYRILLIC CAPITAL LETTER ZHE
Z       З       CYRILLIC CAPITAL LETTER ZE
I       И       CYRILLIC CAPITAL LETTER I
J       Й       CYRILLIC CAPITAL LETTER SHORT I
K       К       CYRILLIC CAPITAL LETTER KA
L       Л       CYRILLIC CAPITAL LETTER EL
M       М       CYRILLIC CAPITAL LETTER EM
N       Н       CYRILLIC CAPITAL LETTER EN
O       О       CYRILLIC CAPITAL LETTER O
P       П       CYRILLIC CAPITAL LETTER PE
R       Р       CYRILLIC CAPITAL LETTER ER
S       С       CYRILLIC CAPITAL LETTER ES
T       Т       CYRILLIC CAPITAL LETTER TE
U       У       CYRILLIC CAPITAL LETTER U
F       Ф       CYRILLIC CAPITAL LETTER EF
H       Х       CYRILLIC CAPITAL LETTER HA
C       Ц       CYRILLIC CAPITAL LETTER TSE
~       Ч       CYRILLIC CAPITAL LETTER CHE
{       Ш       CYRILLIC CAPITAL LETTER SHA
}       Щ       CYRILLIC CAPITAL LETTER SHCHA
Y       Ъ       CYRILLIC CAPITAL LETTER HARD SIGN
YI      Ы       CYRILLIC CAPITAL LETTER YERU
X       Ь       CYRILLIC CAPITAL LETTER SOFT SIGN
YE      Э       CYRILLIC CAPITAL LETTER REVERSED E
|       Ю       CYRILLIC CAPITAL LETTER YU
Q       Я       CYRILLIC CAPITAL LETTER YA
a       а       CYRILLIC SMALL LETTER A
b       б       CYRILLIC SMALL LETTER BE
w       в       CYRILLIC SMALL LETTER VE
g       г       CYRILLIC SMALL LETTER GHE
d       д       CYRILLIC SMALL LETTER DE
e       е       CYRILLIC SMALL LETTER IE
e::     ё       CYRILLIC SMALL LETTER IO
v       ж       CYRILLIC SMALL LETTER ZHE
z       з       CYRILLIC SMALL LETTER ZE
i       и       CYRILLIC SMALL LETTER I
j       й       CYRILLIC SMALL LETTER SHORT I
k       к       CYRILLIC SMALL LETTER KA
l       л       CYRILLIC SMALL LETTER EL
m       м       CYRILLIC SMALL LETTER EM
n       н       CYRILLIC SMALL LETTER EN
o       о       CYRILLIC SMALL LETTER O
p       п       CYRILLIC SMALL LETTER PE
r       р       CYRILLIC SMALL LETTER ER
s       с       CYRILLIC SMALL LETTER ES
t       т       CYRILLIC SMALL LETTER TE
u       у       CYRILLIC SMALL LETTER U
f       ф       CYRILLIC SMALL LETTER EF
h       х       CYRILLIC SMALL LETTER HA
c       ц       CYRILLIC SMALL LETTER TSE
`       ч       CYRILLIC SMALL LETTER CHE
[       ш       CYRILLIC SMALL LETTER SHA
]       щ       CYRILLIC SMALL LETTER SHCHA
y       ъ       CYRILLIC SMALL LETTER HARD SIGN
yi      ы       CYRILLIC SMALL LETTER YERU
x       ь       CYRILLIC SMALL LETTER SOFT SIGN
ye      э       CYRILLIC SMALL LETTER REVERSED E
\\      ю       CYRILLIC SMALL LETTER YU
q       я       CYRILLIC SMALL LETTER YA
!!      §       SECTION SIGN (PARAGRAPH SIGN)
##      №       NUMERO SIGN
--      –       EN DASH
---     —       EM DASH
..      …       HORIZONTAL ELLIPSIS
``      “       LEFT DOUBLE QUOTATION  MARK
''      ”       RIGHT DOUBLE QUOTATION MARK
,,      „       DOUBLE LOW-9 QUOTATION MARK
`.      ‘       LEFT SINGLE QUOTATION MARK
'.      ’       RIGHT SINGLE QUOTATION MARK
<<      «       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
>>      »       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
**      •       BULLET
,.      ·       MIDDLE DOT      
+-      ±       PLUS-MINUS SIGN
^o      °       DEGREE SIGN
~~      ¬       NOT SIGN
@@      ¤       CURRENCY SIGN
$$      €       EURO SIGN
%%      ‰       PER MILLE SIGN
+|      †       DAGGER
++      ‡       DOUBLE DAGGER
||      ¶       PILCROW SIGN

" Accented characters cannot map onto cp1251 – use utf-8 file encoding.
" To apply an accent to a letter, type the corresponding key combination
" to the immediate right of that letter.
^`      <char-0x300>    COMBINING GRAVE ACCENT
^'      <char-0x301>    COMBINING ACUTE ACCENT
PK�j�Z��٭�'�'$vim80/autoload/netrwFileHandlers.vimnu�[���" netrwFileHandlers: contains various extension-based file handlers for
"                    netrw's browsers' x command ("eXecute launcher")
" Author:	Charles E. Campbell
" Date:		May 03, 2013
" Version:	11b	ASTRO-ONLY
" Copyright:    Copyright (C) 1999-2012 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               netrwFileHandlers.vim is provided *as is* and comes with no
"               warranty of any kind, either expressed or implied. In no
"               event will the copyright holder be liable for any damages
"               resulting from the use of this software.
"
" Rom 6:23 (WEB) For the wages of sin is death, but the free gift of God {{{1
"                is eternal life in Christ Jesus our Lord.

" ---------------------------------------------------------------------
" Load Once: {{{1
if exists("g:loaded_netrwFileHandlers") || &cp
 finish
endif
let g:loaded_netrwFileHandlers= "v11b"
if v:version < 702
 echohl WarningMsg
 echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
 echohl Normal
 finish
endif
let s:keepcpo= &cpo
set cpo&vim

" ---------------------------------------------------------------------
" netrwFileHandlers#Invoke: {{{1
fun! netrwFileHandlers#Invoke(exten,fname)
"  call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
  let exten= a:exten
  " list of supported special characters.  Consider rcs,v --- that can be
  " supported with a NFH_rcsCOMMAv() handler
  if exten =~ '[@:,$!=\-+%?;~]'
   let specials= {
\   '@' : 'AT',
\   ':' : 'COLON',
\   ',' : 'COMMA',
\   '$' : 'DOLLAR',
\   '!' : 'EXCLAMATION',
\   '=' : 'EQUAL',
\   '-' : 'MINUS',
\   '+' : 'PLUS',
\   '%' : 'PERCENT',
\   '?' : 'QUESTION',
\   ';' : 'SEMICOLON',
\   '~' : 'TILDE'}
   let exten= substitute(a:exten,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
"   call Decho('fname<'.fname.'> done with dictionary')
  endif

  if a:exten != "" && exists("*NFH_".exten)
   " support user NFH_*() functions
"   call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
   exe "let ret= NFH_".exten.'("'.a:fname.'")'
  elseif a:exten != "" && exists("*s:NFH_".exten)
   " use builtin-NFH_*() functions
"   call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
   exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")'
  endif

"  call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
  return 0
endfun

" ---------------------------------------------------------------------
" s:NFH_html: handles html when the user hits "x" when the {{{1
"                        cursor is atop a *.html file
fun! s:NFH_html(pagefile)
"  call Dfunc("s:NFH_html(".a:pagefile.")")

  let page= substitute(a:pagefile,'^','file://','')

  if executable("mozilla")
"   call Decho("executing !mozilla ".page)
   exe "!mozilla ".shellescape(page,1)
  elseif executable("netscape")
"   call Decho("executing !netscape ".page)
   exe "!netscape ".shellescape(page,1)
  else
"   call Dret("s:NFH_html 0")
   return 0
  endif

"  call Dret("s:NFH_html 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_htm: handles html when the user hits "x" when the {{{1
"                        cursor is atop a *.htm file
fun! s:NFH_htm(pagefile)
"  call Dfunc("s:NFH_htm(".a:pagefile.")")

  let page= substitute(a:pagefile,'^','file://','')

  if executable("mozilla")
"   call Decho("executing !mozilla ".page)
   exe "!mozilla ".shellescape(page,1)
  elseif executable("netscape")
"   call Decho("executing !netscape ".page)
   exe "!netscape ".shellescape(page,1)
  else
"   call Dret("s:NFH_htm 0")
   return 0
  endif

"  call Dret("s:NFH_htm 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_jpg: {{{1
fun! s:NFH_jpg(jpgfile)
"  call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")

  if executable("gimp")
   exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
  elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
"   call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
   exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
  else
"   call Dret("s:NFH_jpg 0")
   return 0
  endif

"  call Dret("s:NFH_jpg 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_gif: {{{1
fun! s:NFH_gif(giffile)
"  call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")

  if executable("gimp")
   exe "silent! !gimp -s ".shellescape(a:giffile,1)
  elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
  else
"   call Dret("s:NFH_gif 0")
   return 0
  endif

"  call Dret("s:NFH_gif 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_png: {{{1
fun! s:NFH_png(pngfile)
"  call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")

  if executable("gimp")
   exe "silent! !gimp -s ".shellescape(a:pngfile,1)
  elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
  else
"   call Dret("s:NFH_png 0")
   return 0
  endif

"  call Dret("s:NFH_png 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_pnm: {{{1
fun! s:NFH_pnm(pnmfile)
"  call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")

  if executable("gimp")
   exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
  elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
  else
"   call Dret("s:NFH_pnm 0")
   return 0
  endif

"  call Dret("s:NFH_pnm 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_bmp: visualize bmp files {{{1
fun! s:NFH_bmp(bmpfile)
"  call Dfunc("s:NFH_bmp(bmpfile<".a:bmpfile.">)")

  if executable("gimp")
   exe "silent! !gimp -s ".a:bmpfile
  elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
  else
"   call Dret("s:NFH_bmp 0")
   return 0
  endif

"  call Dret("s:NFH_bmp 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_pdf: visualize pdf files {{{1
fun! s:NFH_pdf(pdf)
"  call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
  if executable("gs")
   exe 'silent! !gs '.shellescape(a:pdf,1)
  elseif executable("pdftotext")
   exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
  else
"  call Dret("s:NFH_pdf 0")
   return 0
  endif

"  call Dret("s:NFH_pdf 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_doc: visualize doc files {{{1
fun! s:NFH_doc(doc)
"  call Dfunc("s:NFH_doc(doc<".a:doc.">)")

  if executable("oowriter")
   exe 'silent! !oowriter '.shellescape(a:doc,1)
   redraw!
  else
"  call Dret("s:NFH_doc 0")
   return 0
  endif

"  call Dret("s:NFH_doc 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_sxw: visualize sxw files {{{1
fun! s:NFH_sxw(sxw)
"  call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")

  if executable("oowriter")
   exe 'silent! !oowriter '.shellescape(a:sxw,1)
   redraw!
  else
"   call Dret("s:NFH_sxw 0")
   return 0
  endif

"  call Dret("s:NFH_sxw 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_xls: visualize xls files {{{1
fun! s:NFH_xls(xls)
"  call Dfunc("s:NFH_xls(xls<".a:xls.">)")

  if executable("oocalc")
   exe 'silent! !oocalc '.shellescape(a:xls,1)
   redraw!
  else
"  call Dret("s:NFH_xls 0")
   return 0
  endif

"  call Dret("s:NFH_xls 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_ps: handles PostScript files {{{1
fun! s:NFH_ps(ps)
"  call Dfunc("s:NFH_ps(ps<".a:ps.">)")
  if executable("gs")
"   call Decho("exe silent! !gs ".a:ps)
   exe "silent! !gs ".shellescape(a:ps,1)
   redraw!
  elseif executable("ghostscript")
"   call Decho("exe silent! !ghostscript ".a:ps)
   exe "silent! !ghostscript ".shellescape(a:ps,1)
   redraw!
  elseif executable("gswin32")
"   call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
   exe "silent! !gswin32 ".shellescape(a:ps,1)
   redraw!
  else
"   call Dret("s:NFH_ps 0")
   return 0
  endif

"  call Dret("s:NFH_ps 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_eps: handles encapsulated PostScript files {{{1
fun! s:NFH_eps(eps)
"  call Dfunc("s:NFH_eps()")
  if executable("gs")
   exe "silent! !gs ".shellescape(a:eps,1)
   redraw!
  elseif executable("ghostscript")
   exe "silent! !ghostscript ".shellescape(a:eps,1)
   redraw!
  elseif executable("ghostscript")
   exe "silent! !ghostscript ".shellescape(a:eps,1)
   redraw!
  elseif executable("gswin32")
   exe "silent! !gswin32 ".shellescape(a:eps,1)
   redraw!
  else
"   call Dret("s:NFH_eps 0")
   return 0
  endif
"  call Dret("s:NFH_eps 0")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_fig: handles xfig files {{{1
fun! s:NFH_fig(fig)
"  call Dfunc("s:NFH_fig()")
  if executable("xfig")
   exe "silent! !xfig ".a:fig
   redraw!
  else
"   call Dret("s:NFH_fig 0")
   return 0
  endif

"  call Dret("s:NFH_fig 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NFH_obj: handles tgif's obj files {{{1
fun! s:NFH_obj(obj)
"  call Dfunc("s:NFH_obj()")
  if has("unix") && executable("tgif")
   exe "silent! !tgif ".a:obj
   redraw!
  else
"   call Dret("s:NFH_obj 0")
   return 0
  endif

"  call Dret("s:NFH_obj 1")
  return 1
endfun

let &cpo= s:keepcpo
unlet s:keepcpo
" ---------------------------------------------------------------------
"  Modelines: {{{1
"  vim: fdm=marker
PK�j�Z~0/{[:[:vim80/autoload/xmlcomplete.vimnu�[���" Vim completion script
" Language:	XML
" Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change:	2013 Jun 29
" Version: 1.9
"
" Changelog:
" 1.9 - 2007 Aug 15
" 		- fix closing of namespaced tags (Johannes Weiss)
" 1.8 - 2006 Jul 18
"       - allow for closing of xml tags even when data file isn't available

" This function will create Dictionary with users namespace strings and values
" canonical (system) names of data files.  Names should be lowercase,
" descriptive to avoid any future conflicts. For example 'xhtml10s' should be
" name for data of XHTML 1.0 Strict and 'xhtml10t' for XHTML 1.0 Transitional
" User interface will be provided by XMLns command defined in ftplugin/xml.vim
" Currently supported canonicals are:
" xhtml10s - XHTML 1.0 Strict
" xsl      - XSL
function! xmlcomplete#CreateConnection(canonical, ...) " {{{

	" When only one argument provided treat name as default namespace (without
	" 'prefix:').
	if exists("a:1")
		let users = a:1
	else
		let users = 'DEFAULT'
	endif

	" Source data file. Due to suspected errors in autoload do it with
	" :runtime.
	" TODO: make it properly (using autoload, that is) later
	exe "runtime autoload/xml/".a:canonical.".vim"

	" Remove all traces of unexisting files to return [] when trying
	" omnicomplete something
	" TODO: give warning about non-existing canonicals - should it be?
	if !exists("g:xmldata_".a:canonical)
		unlet! g:xmldata_connection
		return 0
	endif

	" We need to initialize Dictionary to add key-value pair
	if !exists("g:xmldata_connection")
		let g:xmldata_connection = {}
	endif

	let g:xmldata_connection[users] = a:canonical

endfunction
" }}}

function! xmlcomplete#CreateEntConnection(...) " {{{
	if a:0 > 0
		let g:xmldata_entconnect = a:1
	else
		let g:xmldata_entconnect = 'DEFAULT'
	endif
endfunction
" }}}

function! xmlcomplete#CompleteTags(findstart, base)
  if a:findstart
    " locate the start of the word
	let curline = line('.')
    let line = getline('.')
    let start = col('.') - 1
	let compl_begin = col('.') - 2

    while start >= 0 && line[start - 1] =~ '\(\k\|[:.-]\)'
		let start -= 1
    endwhile

	if start >= 0 && line[start - 1] =~ '&'
		let b:entitiescompl = 1
		let b:compl_context = ''
		return start
	endif

	let b:compl_context = getline('.')[0:(compl_begin)]
	if b:compl_context !~ '<[^>]*$'
		" Look like we may have broken tag. Check previous lines. Up to
		" 10?
		let i = 1
		while 1
			let context_line = getline(curline-i)
			if context_line =~ '<[^>]*$'
				" Yep, this is this line
				let context_lines = getline(curline-i, curline-1) + [b:compl_context]
				let b:compl_context = join(context_lines, ' ')
				break
			elseif context_line =~ '>[^<]*$' || i == curline
				" Normal tag line, no need for completion at all
				" OR reached first line without tag at all
				let b:compl_context = ''
				break
			endif
			let i += 1
		endwhile
		" Make sure we don't have counter
		unlet! i
	endif
	let b:compl_context = matchstr(b:compl_context, '.*\zs<.*')

	" Make sure we will have only current namespace
	unlet! b:xml_namespace
	let b:xml_namespace = matchstr(b:compl_context, '^<\zs\k*\ze:')
	if b:xml_namespace == ''
		let b:xml_namespace = 'DEFAULT'
	endif

    return start

  else
	" Initialize base return lists
    let res = []
    let res2 = []
	" a:base is very short - we need context
	if len(b:compl_context) == 0  && !exists("b:entitiescompl")
		return []
	endif
	let context = matchstr(b:compl_context, '^<\zs.*')
	unlet! b:compl_context
	" There is no connection of namespace and data file.
	if !exists("g:xmldata_connection") || g:xmldata_connection == {}
		" There is still possibility we may do something - eg. close tag
		let b:unaryTagsStack = "base meta link hr br param img area input col"
		if context =~ '^\/'
			let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
			return [opentag.">"]
		else
			return []
		endif
	endif

	" Make entities completion
	if exists("b:entitiescompl")
		unlet! b:entitiescompl

		if !exists("g:xmldata_entconnect") || g:xmldata_entconnect == 'DEFAULT'
			let values =  g:xmldata{'_'.g:xmldata_connection['DEFAULT']}['vimxmlentities']
		else
			let values =  g:xmldata{'_'.g:xmldata_entconnect}['vimxmlentities']
		endif

		" Get only lines with entity declarations but throw out
		" parameter-entities - they may be completed in future
		let entdecl = filter(getline(1, "$"), 'v:val =~ "<!ENTITY\\s\\+[^%]"')

		if len(entdecl) > 0
			let intent = map(copy(entdecl), 'matchstr(v:val, "<!ENTITY\\s\\+\\zs\\(\\k\\|[.-:]\\)\\+\\ze")')
			let values = intent + values
		endif

		if len(a:base) == 1
			for m in values
				if m =~ '^'.a:base
					call add(res, m.';')
				endif
			endfor
			return res
		else
			for m in values
				if m =~? '^'.a:base
					call add(res, m.';')
				elseif m =~? a:base
					call add(res2, m.';')
				endif
			endfor

			return res + res2
		endif

	endif
	if context =~ '>'
		" Generally if context contains > it means we are outside of tag and
		" should abandon action
		return []
	endif

    " find tags matching with "a:base"
	" If a:base contains white space it is attribute.
	" It could be also value of attribute...
	" We have to get first word to offer
	" proper completions
	if context == ''
		let tag = ''
	else
		let tag = split(context)[0]
	endif
	" Get rid of namespace
	let tag = substitute(tag, '^'.b:xml_namespace.':', '', '')


	" Get last word, it should be attr name
	let attr = matchstr(context, '.*\s\zs.*')
	" Possible situations where any prediction would be difficult:
	" 1. Events attributes
	if context =~ '\s'

		" If attr contains =\s*[\"'] we catched value of attribute
		if attr =~ "=\s*[\"']" || attr =~ "=\s*$"
			" Let do attribute specific completion
			let attrname = matchstr(attr, '.*\ze\s*=')
			let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")

			if tag =~ '^[?!]'
				" Return nothing if we are inside of ! or ? tag
				return []
			else
				if has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, tag) && has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1], attrname)
					let values = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][attrname]
				else
					return []
				endif
			endif

			if len(values) == 0
				return []
			endif

			" We need special version of sbase
			let attrbase = matchstr(context, ".*[\"']")
			let attrquote = matchstr(attrbase, '.$')
			if attrquote !~ "['\"]"
				let attrquoteopen = '"'
				let attrquote = '"'
			else
				let attrquoteopen = ''
			endif

			for m in values
				" This if is needed to not offer all completions as-is
				" alphabetically but sort them. Those beginning with entered
				" part will be as first choices
				if m =~ '^'.entered_value
					call add(res, attrquoteopen . m . attrquote.' ')
				elseif m =~ entered_value
					call add(res2, attrquoteopen . m . attrquote.' ')
				endif
			endfor

			return res + res2

		endif

		if tag =~ '?xml'
			" Two possible arguments for <?xml> plus variation
			let attrs = ['encoding', 'version="1.0"', 'version']
		elseif tag =~ '^!'
			" Don't make completion at all
			"
			return []
		else
            if !has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, tag)
				" Abandon when data file isn't complete
 				return []
 			endif
			let attrs = keys(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1])
		endif

		for m in sort(attrs)
			if m =~ '^'.attr
				call add(res, m)
			elseif m =~ attr
				call add(res2, m)
			endif
		endfor
		let menu = res + res2
		let final_menu = []
		if has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, 'vimxmlattrinfo')
			for i in range(len(menu))
				let item = menu[i]
				if has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}['vimxmlattrinfo'], item)
					let m_menu = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}['vimxmlattrinfo'][item][0]
					let m_info = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}['vimxmlattrinfo'][item][1]
				else
					let m_menu = ''
					let m_info = ''
				endif
				if tag !~ '^[?!]' && len(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][item]) > 0 && g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][item][0] =~ '^\(BOOL\|'.item.'\)$'
					let item = item
				else
					let item .= '="'
				endif
				let final_menu += [{'word':item, 'menu':m_menu, 'info':m_info}]
			endfor
		else
			for i in range(len(menu))
				let item = menu[i]
				if tag !~ '^[?!]' && len(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][item]) > 0 && g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][item][0] =~ '^\(BOOL\|'.item.'\)$'
					let item = item
				else
					let item .= '="'
				endif
				let final_menu += [item]
			endfor
		endif
		return final_menu

	endif
	" Close tag
	let b:unaryTagsStack = "base meta link hr br param img area input col"
	if context =~ '^\/'
		let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
		return [opentag.">"]
	endif

	" Complete elements of XML structure
	" TODO: #REQUIRED, #IMPLIED, #FIXED, #PCDATA - but these should be detected like
	" entities - in first run
	" keywords: CDATA, ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS
	" are hardly recognizable but keep it in reserve
	" also: EMPTY ANY SYSTEM PUBLIC DATA
	if context =~ '^!'
		let tags = ['!ELEMENT', '!DOCTYPE', '!ATTLIST', '!ENTITY', '!NOTATION', '![CDATA[', '![INCLUDE[', '![IGNORE[']

		for m in tags
			if m =~ '^'.context
				let m = substitute(m, '^!\[\?', '', '')
				call add(res, m)
			elseif m =~ context
				let m = substitute(m, '^!\[\?', '', '')
				call add(res2, m)
			endif
		endfor

		return res + res2

	endif

	" Complete text declaration
	if context =~ '^?'
		let tags = ['?xml']

		for m in tags
			if m =~ '^'.context
				call add(res, substitute(m, '^?', '', ''))
			elseif m =~ context
				call add(res, substitute(m, '^?', '', ''))
			endif
		endfor

		return res + res2

	endif

	" Deal with tag completion.
	let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
	let opentag = substitute(opentag, '^\k*:', '', '')
	if opentag == ''
		"return []
	    let tags = keys(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]})
		call filter(tags, 'v:val !~ "^vimxml"')
	else
		if !has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, opentag)
			" Abandon when data file isn't complete
			return []
		endif
		let tags = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[opentag][0]
	endif

	let context = substitute(context, '^\k*:', '', '')

	for m in tags
		if m =~ '^'.context
			call add(res, m)
		elseif m =~ context
			call add(res2, m)
		endif
	endfor
	let menu = res + res2
	if b:xml_namespace == 'DEFAULT'
		let xml_namespace = ''
	else
		let xml_namespace = b:xml_namespace.':'
	endif
	if has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, 'vimxmltaginfo')
		let final_menu = []
		for i in range(len(menu))
			let item = menu[i]
			if has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}['vimxmltaginfo'], item)
				let m_menu = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}['vimxmltaginfo'][item][0]
				let m_info = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}['vimxmltaginfo'][item][1]
			else
				let m_menu = ''
				let m_info = ''
			endif
			let final_menu += [{'word':xml_namespace.item, 'menu':m_menu, 'info':m_info}]
		endfor
	else
		let final_menu = map(menu, 'xml_namespace.v:val')
	endif

	return final_menu

  endif
endfunction

" MM: This is severely reduced closetag.vim used with kind permission of Steven
"     Mueller
"     Changes: strip all comments; delete error messages; add checking for
"     namespace
" Author: Steven Mueller <diffusor@ugcs.caltech.edu>
" Last Modified: Tue May 24 13:29:48 PDT 2005 
" Version: 0.9.1

function! xmlcomplete#GetLastOpenTag(unaryTagsStack)
	let linenum=line('.')
	let lineend=col('.') - 1 " start: cursor position
	let first=1              " flag for first line searched
	let b:TagStack=''        " main stack of tags
	let startInComment=s:InComment()

	if exists("b:xml_namespace")
		if b:xml_namespace == 'DEFAULT'
			let tagpat='</\=\(\k\|[.:-]\)\+\|/>'
		else
			let tagpat='</\='.b:xml_namespace.':\(\k\|[.-]\)\+\|/>'
		endif
	else
		let tagpat='</\=\(\k\|[.:-]\)\+\|/>'
	endif
	while (linenum>0)
		let line=getline(linenum)
		if first
			let line=strpart(line,0,lineend)
		else
			let lineend=strlen(line)
		endif
		let b:lineTagStack=''
		let mpos=0
		let b:TagCol=0
		while (mpos > -1)
			let mpos=matchend(line,tagpat)
			if mpos > -1
				let b:TagCol=b:TagCol+mpos
				let tag=matchstr(line,tagpat)

				if exists('b:closetag_disable_synID') || startInComment==s:InCommentAt(linenum, b:TagCol)
					let b:TagLine=linenum
					call s:Push(matchstr(tag,'[^<>]\+'),'b:lineTagStack')
				endif
				let lineend=lineend-mpos
				let line=strpart(line,mpos,lineend)
			endif
		endwhile
		while (!s:EmptystackP('b:lineTagStack'))
			let tag=s:Pop('b:lineTagStack')
			if match(tag, '^/') == 0		"found end tag
				call s:Push(tag,'b:TagStack')
			elseif s:EmptystackP('b:TagStack') && !s:Instack(tag, a:unaryTagsStack)	"found unclosed tag
				return tag
			else
				let endtag=s:Peekstack('b:TagStack')
				if endtag == '/'.tag || endtag == '/'
					call s:Pop('b:TagStack')	"found a open/close tag pair
				elseif !s:Instack(tag, a:unaryTagsStack) "we have a mismatch error
					return ''
				endif
			endif
		endwhile
		let linenum=linenum-1 | let first=0
	endwhile
return ''
endfunction

function! s:InComment()
	return synIDattr(synID(line('.'), col('.'), 0), 'name') =~ 'Comment\|String'
endfunction

function! s:InCommentAt(line, col)
	return synIDattr(synID(a:line, a:col, 0), 'name') =~ 'Comment\|String'
endfunction

function! s:SetKeywords()
	let s:IsKeywordBak=&l:iskeyword
	let &l:iskeyword='33-255'
endfunction

function! s:RestoreKeywords()
	let &l:iskeyword=s:IsKeywordBak
endfunction

function! s:Push(el, sname)
	if !s:EmptystackP(a:sname)
		exe 'let '.a:sname."=a:el.' '.".a:sname
	else
		exe 'let '.a:sname.'=a:el'
	endif
endfunction

function! s:EmptystackP(sname)
	exe 'let stack='.a:sname
	if match(stack,'^ *$') == 0
		return 1
	else
		return 0
	endif
endfunction

function! s:Instack(el, sname)
	exe 'let stack='.a:sname
	call s:SetKeywords()
	let m=match(stack, '\<'.a:el.'\>')
	call s:RestoreKeywords()
	if m < 0
		return 0
	else
		return 1
	endif
endfunction

function! s:Peekstack(sname)
	call s:SetKeywords()
	exe 'let stack='.a:sname
	let top=matchstr(stack, '\<.\{-1,}\>')
	call s:RestoreKeywords()
	return top
endfunction

function! s:Pop(sname)
	if s:EmptystackP(a:sname)
		return ''
	endif
	exe 'let stack='.a:sname
	call s:SetKeywords()
	let loc=matchend(stack,'\<.\{-1,}\>')
	exe 'let '.a:sname.'=strpart(stack, loc+1, strlen(stack))'
	let top=strpart(stack, match(stack, '\<'), loc)
	call s:RestoreKeywords()
	return top
endfunction

function! s:Clearstack(sname)
	exe 'let '.a:sname."=''"
endfunction
" vim:set foldmethod=marker:
PK�j�Z(� �IIvim80/autoload/spellfile.vimnu�[���" Vim script to download a missing spell file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2012 Jan 08

if !exists('g:spellfile_URL')
  " Prefer using http:// when netrw should be able to use it, since
  " more firewalls let this through.
  if executable("curl") || executable("wget") || executable("fetch")
    let g:spellfile_URL = 'http://ftp.vim.org/pub/vim/runtime/spell'
  else
    let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
  endif
endif
let s:spellfile_URL = ''    " Start with nothing so that s:donedict is reset.

" This function is used for the spellfile plugin.
function! spellfile#LoadFile(lang)
  " If the netrw plugin isn't loaded we silently skip everything.
  if !exists(":Nread")
    if &verbose
      echomsg 'spellfile#LoadFile(): Nread command is not available.'
    endif
    return
  endif

  " If the URL changes we try all files again.
  if s:spellfile_URL != g:spellfile_URL
    let s:donedict = {}
    let s:spellfile_URL = g:spellfile_URL
  endif

  " I will say this only once!
  if has_key(s:donedict, a:lang . &enc)
    if &verbose
      echomsg 'spellfile#LoadFile(): Tried this language/encoding before.'
    endif
    return
  endif
  let s:donedict[a:lang . &enc] = 1

  " Find spell directories we can write in.
  let [dirlist, dirchoices] = spellfile#GetDirChoices()
  if len(dirlist) == 0
    let dir_to_create = spellfile#WritableSpellDir()
    if &verbose || dir_to_create != ''
      echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
    endif
    if dir_to_create != ''
      if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1
	" After creating the directory it should show up in the list.
	call mkdir(dir_to_create, "p")
	let [dirlist, dirchoices] = spellfile#GetDirChoices()
      endif
    endif
    if len(dirlist) == 0
      return
    endif
  endif

  let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
  let msg .= "\nDo you want me to try downloading it?"
  if confirm(msg, "&Yes\n&No", 2) == 1
    let enc = &encoding
    if enc == 'iso-8859-15'
      let enc = 'latin1'
    endif
    let fname = a:lang . '.' . enc . '.spl'

    " Split the window, read the file into a new buffer.
    " Remember the buffer number, we check it below.
    new
    let newbufnr = winbufnr(0)
    setlocal bin fenc=
    echo 'Downloading ' . fname . '...'
    call spellfile#Nread(fname)
    if getline(2) !~ 'VIMspell'
      " Didn't work, perhaps there is an ASCII one.
      " Careful: Nread() may have opened a new window for the error message,
      " we need to go back to our own buffer and window.
      if newbufnr != winbufnr(0)
	let winnr = bufwinnr(newbufnr)
	if winnr == -1
	  " Our buffer has vanished!?  Open a new window.
	  echomsg "download buffer disappeared, opening a new one"
	  new
	  setlocal bin fenc=
	else
	  exe winnr . "wincmd w"
	endif
      endif
      if newbufnr == winbufnr(0)
	" We are back the old buffer, remove any (half-finished) download.
        g/^/d
      else
	let newbufnr = winbufnr(0)
      endif

      let fname = a:lang . '.ascii.spl'
      echo 'Could not find it, trying ' . fname . '...'
      call spellfile#Nread(fname)
      if getline(2) !~ 'VIMspell'
	echo 'Sorry, downloading failed'
	exe newbufnr . "bwipe!"
	return
      endif
    endif

    " Delete the empty first line and mark the file unmodified.
    1d
    set nomod

    let msg = "In which directory do you want to write the file:"
    for i in range(len(dirlist))
      let msg .= "\n" . (i + 1) . '. ' . dirlist[i]
    endfor
    let dirchoice = confirm(msg, dirchoices) - 2
    if dirchoice >= 0
      if exists('*fnameescape')
	let dirname = fnameescape(dirlist[dirchoice])
      else
	let dirname = escape(dirlist[dirchoice], ' ')
      endif
      setlocal fenc=
      exe "write " . dirname . '/' . fname

      " Also download the .sug file, if the user wants to.
      let msg = "Do you want me to try getting the .sug file?\n"
      let msg .= "This will improve making suggestions for spelling mistakes,\n"
      let msg .= "but it uses quite a bit of memory."
      if confirm(msg, "&No\n&Yes") == 2
	g/^/d
	let fname = substitute(fname, '\.spl$', '.sug', '')
	echo 'Downloading ' . fname . '...'
	call spellfile#Nread(fname)
	if getline(2) =~ 'VIMsug'
	  1d
	  exe "write " . dirname . '/' . fname
	  set nomod
	else
	  echo 'Sorry, downloading failed'
	  " Go back to our own buffer/window, Nread() may have taken us to
	  " another window.
	  if newbufnr != winbufnr(0)
	    let winnr = bufwinnr(newbufnr)
	    if winnr != -1
	      exe winnr . "wincmd w"
	    endif
	  endif
	  if newbufnr == winbufnr(0)
	    set nomod
	  endif
	endif
      endif
    endif

    " Wipe out the buffer we used.
    exe newbufnr . "bwipe"
  endif
endfunc

" Read "fname" from the server.
function! spellfile#Nread(fname)
  " We do our own error handling, don't want a window for it.
  if exists("g:netrw_use_errorwindow")
    let save_ew = g:netrw_use_errorwindow
  endif
  let g:netrw_use_errorwindow=0

  if g:spellfile_URL =~ '^ftp://'
    " for an ftp server use a default login and password to avoid a prompt
    let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '')
    let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '')
    exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"'
  else
    exe 'Nread ' g:spellfile_URL . '/' . a:fname
  endif

  if exists("save_ew")
    let g:netrw_use_errorwindow = save_ew
  else
    unlet g:netrw_use_errorwindow
  endif
endfunc

" Get a list of writable spell directories and choices for confirm().
function! spellfile#GetDirChoices()
  let dirlist = []
  let dirchoices = '&Cancel'
  for dir in split(globpath(&rtp, 'spell'), "\n")
    if filewritable(dir) == 2
      call add(dirlist, dir)
      let dirchoices .= "\n&" . len(dirlist)
    endif
  endfor
  return [dirlist, dirchoices]
endfunc

function! spellfile#WritableSpellDir()
  if has("unix")
    " For Unix always use the $HOME/.vim directory
    return $HOME . "/.vim/spell"
  endif
  for dir in split(&rtp, ',')
    if filewritable(dir) == 2
      return dir . "/spell"
    endif
  endfor
  return ''
endfunction
PK�j�Z{;(˔i�i%vim80/autoload/javascriptcomplete.vimnu�[���" Vim completion script
" Language:	Java Script
" Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change:	2017 Mar 04

function! javascriptcomplete#CompleteJS(findstart, base)
  if a:findstart
	" locate the start of the word
	let line = getline('.')
	let start = col('.') - 1
	let curline = line('.')
	let compl_begin = col('.') - 2
	" Bit risky but JS is rather limited language and local chars shouldn't
	" fint way into names
	while start >= 0 && line[start - 1] =~ '\k'
		let start -= 1
	endwhile
	let b:compl_context = getline('.')[0:compl_begin]
	return start
  else
	" Initialize base return lists
	let res = []
	let res2 = []
	" a:base is very short - we need context
	" Shortcontext is context without a:base, useful for checking if we are
	" looking for objects and for what objects we are looking for
	let context = b:compl_context
	let shortcontext = substitute(context, a:base.'$', '', '')
	unlet! b:compl_context

	if exists("b:jsrange")
		let file = getline(b:jsrange[0],b:jsrange[1])
		unlet! b:jsrange

		if len(b:js_extfiles) > 0
			let file = b:js_extfiles + file
		endif

	else
		let file = getline(1, '$')
	endif


	" Completion of properties, methods, etc. {{{
	if shortcontext =~ '\.$'
		" Complete methods and properties for objects
		" DOM separate
		let doms = ['style.']
		" Arrays
		let arrayprop = ['constructor', 'index', 'input', 'length', 'prototype']
		let arraymeth = ['concat', 'join', 'pop', 'push', 'reverse', 'shift',
					\ 'splice', 'sort', 'toSource', 'toString', 'unshift', 'valueOf',
					\ 'watch', 'unwatch']
		call map(arraymeth, 'v:val."("')
		let arrays = arrayprop + arraymeth

		" Boolean - complete subset of array values
		" properties - constructor, prototype
		" methods    - toSource, toString, valueOf

		" Date
		" properties - constructor, prototype
		let datemeth = ['getDate', 'getDay', 'getFullYear', 'getHours', 'getMilliseconds',
					\ 'getMinutes', 'getMonth', 'getSeconds', 'getTime', 'getTimezoneOffset',
					\ 'getUTCDate', 'getUTCDay', 'getUTCFullYear', 'getUTCHours', 'getUTCMilliseconds',
					\ 'getUTCMinutes', 'getUTCMonth', 'getUTCSeconds',
					\ 'getYear', 'parse', 'parse',
					\ 'setDate', 'setDay', 'setFullYear', 'setHours', 'setMilliseconds',
					\ 'setMinutes', 'setMonth', 'setSeconds',
					\ 'setUTCDate', 'setUTCDay', 'setUTCFullYear', 'setUTCHours', 'setUTCMilliseconds',
					\ 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds', 'setYear', 'setTime',
					\ 'toGMTString', 'toLocaleString', 'toLocaleDateString', 'toLocaleTimeString',
					\ 'toSource', 'toString', 'toUTCString', 'UTC', 'valueOf', 'watch', 'unwatch']
		call map(datemeth, 'v:val."("')
		let dates = datemeth

		" Function
		let funcprop = ['arguments', 'arguments.callee', 'arguments.caller', 'arguments.length',
					\ 'arity', 'constructor', 'length', 'prototype']
		let funcmeth = ['apply', 'call', 'toSource', 'toString', 'valueOf']
		call map(funcmeth, 'v:val."("')
		let funcs = funcprop + funcmeth

		" Math
		let mathprop = ['E', 'LN2', 'LN10', 'LOG2E', 'LOG10E', 'PI', 'SQRT1_2', 'SQRT']
		let mathmeth = ['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor',
					\ 'log', 'max', 'min', 'pow', 'random', 'round', 'sin', 'sqrt', 'tan',
					\ 'watch', 'unwatch']
		call map(mathmeth, 'v:val."("')
		let maths = mathprop + mathmeth

		" Number
		let numbprop = ['MAX_VALUE', 'MIN_VALUE', 'NaN', 'NEGATIVE_INFINITY', 'POSITIVE_INFINITY', 
					\ 'constructor', 'prototype']
		let numbmeth = ['toExponential', 'toFixed', 'toPrecision', 'toSource', 'toString', 'valueOf',
					\ 'watch', 'unwatch']
		call map(numbmeth, 'v:val."("')
		let numbs = numbprop + numbmeth

		" Object
		let objeprop = ['constructor', 'prototype']
		let objemeth = ['eval', 'toSource', 'toString', 'unwatch', 'watch', 'valueOf']
		call map(objemeth, 'v:val."("')
		let objes = objeprop + objemeth

		" RegExp
		let regeprop = ['constructor', 'global', 'ignoreCase', 'lastIndex', 'multiline', 'source', 'prototype']
		let regemeth = ['exec', 'test', 'toSource', 'toString', 'watch', 'unwatch']
		call map(regemeth, 'v:val."("')
		let reges = regeprop + regemeth

		" String
		let striprop = ['constructor', 'length', 'prototype']
		let strimeth = ['anchor', 'big', 'blink', 'bold', 'charAt', 'charCodeAt', 'concat',
					\ 'fixed', 'fontcolor', 'fontsize', 'fromCharCode', 'indexOf', 'italics',
					\ 'lastIndexOf', 'link', 'match', 'replace', 'search', 'slice', 'small',
					\ 'split', 'strike', 'sub', 'substr', 'substring', 'sup', 'toLowerCase',
					\ 'toSource', 'toString', 'toUpperCase', 'watch', 'unwatch']
		call map(strimeth, 'v:val."("')
		let stris = striprop + strimeth

		" User created properties
		let user_props1 = filter(copy(file), 'v:val =~ "this\\.\\k"')
		let juser_props1 = join(user_props1, ' ')
		let user_props1 = split(juser_props1, '\zethis\.')
		unlet! juser_props1
		call map(user_props1, 'matchstr(v:val, "this\\.\\zs\\k\\+\\ze")')

		let user_props2 = filter(copy(file), 'v:val =~ "\\.prototype\\.\\k"')
		let juser_props2 = join(user_props2, ' ')
		let user_props2 = split(juser_props2, '\zeprototype\.')
		unlet! juser_props2
		call map(user_props2, 'matchstr(v:val, "prototype\\.\\zs\\k\\+\\ze")')
		let user_props = user_props1 + user_props2

		" HTML DOM properties
		" Anchors - anchor.
		let anchprop = ['accessKey', 'charset', 'coords', 'href', 'hreflang', 'id', 'innerHTML',
					\ 'name', 'rel', 'rev', 'shape', 'tabIndex', 'target', 'type', 'onBlur', 'onFocus']
		let anchmeth = ['blur', 'focus']
		call map(anchmeth, 'v:val."("')
		let anths = anchprop + anchmeth
		" Area - area.
		let areaprop = ['accessKey', 'alt', 'coords', 'hash', 'host', 'hostname', 'href', 'id',
					\ 'noHref', 'pathname', 'port', 'protocol', 'search', 'shape', 'tabIndex', 'target']
		let areameth = ['onClick', 'onDblClick', 'onMouseOut', 'onMouseOver']
		call map(areameth, 'v:val."("')
		let areas = areaprop + areameth
		" Base - base.
		let baseprop = ['href', 'id', 'target']
		let bases = baseprop
		" Body - body.
		let bodyprop = ['aLink', 'background', 'gbColor', 'id', 'link', 'scrollLeft', 'scrollTop',
					\ 'text', 'vLink']
		let bodys = bodyprop
		" Document - document.
		let docuprop = ['anchors', 'applets', 'childNodes', 'embeds', 'forms', 'images', 'links', 'stylesheets',
					\ 'body', 'cookie', 'documentElement', 'domain', 'lastModified', 'referrer', 'title', 'URL']
		let documeth = ['close', 'createAttribute', 'createElement', 'createTextNode', 'focus', 'getElementById',
					\ 'getElementsByName', 'getElementsByTagName', 'open', 'write', 'writeln',
					\ 'onClick', 'onDblClick', 'onFocus', 'onKeyDown', 'onKeyPress', 'onKeyUp',
					\ 'onMouseDown', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onResize']
		call map(documeth, 'v:val."("')
		let docuxprop = ['attributes', 'childNodes', 'doctype', 'documentElement', 'firstChild',
					\ 'implementation', 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType',
					\ 'nodeValue', 'ownerDocument', 'parentNode', 'previousSibling']
		let docuxmeth = ['createAttribute', 'createCDATASection',
					\ 'createComment', 'createDocument', 'createDocumentFragment',
					\ 'createElement', 'createEntityReference', 'createProcessingInstruction',
					\ 'createTextNode']
		call map(docuxmeth, 'v:val."("')
		let docus = docuprop + docuxprop + documeth + docuxmeth
		" Form - form.
		let formprop = ['elements', 'acceptCharset', 'action', 'encoding', 'enctype', 'id', 'length',
					\ 'method', 'name', 'tabIndex', 'target']
		let formmeth = ['reset', 'submit', 'onReset', 'onSubmit']
		call map(formmeth, 'v:val."("')
		let forms = formprop + formmeth
		" Frame - frame.
		let framprop = ['contentDocument', 'frameBorder', 'id', 'longDesc', 'marginHeight', 'marginWidth',
					\ 'name', 'noResize', 'scrolling', 'src']
		let frammeth = ['blur', 'focus']
		call map(frammeth, 'v:val."("')
		let frams = framprop + frammeth
		" Frameset - frameset.
		let fsetprop = ['cols', 'id', 'rows']
		let fsetmeth = ['blur', 'focus']
		call map(fsetmeth, 'v:val."("')
		let fsets = fsetprop + fsetmeth
		" History - history.
		let histprop = ['length']
		let histmeth = ['back', 'forward', 'go']
		call map(histmeth, 'v:val."("')
		let hists = histprop + histmeth
		" Iframe - iframe.
		let ifraprop = ['align', 'frameBorder', 'height', 'id', 'longDesc', 'marginHeight', 'marginWidth',
					\ 'name', 'scrolling', 'src', 'width']
		let ifras = ifraprop
		" Image - image.
		let imagprop = ['align', 'alt', 'border', 'complete', 'height', 'hspace', 'id', 'isMap', 'longDesc',
					\ 'lowSrc', 'name', 'src', 'useMap', 'vspace', 'width']
		let imagmeth = ['onAbort', 'onError', 'onLoad']
		call map(imagmeth, 'v:val."("')
		let imags = histprop + imagmeth
		" Button - accessible only by other properties
		let buttprop = ['accessKey', 'disabled', 'form', 'id', 'name', 'tabIndex', 'type', 'value']
		let buttmeth = ['blur', 'click', 'focus', 'onBlur', 'onClick', 'onFocus', 'onMouseDown', 'onMouseUp']
		call map(buttmeth, 'v:val."("')
		let butts = buttprop + buttmeth
		" Checkbox - accessible only by other properties
		let checprop = ['accept', 'accessKey', 'align', 'alt', 'checked', 'defaultChecked', 
					\ 'disabled', 'form', 'id', 'name', 'tabIndex', 'type', 'value'] 
		let checmeth = ['blur', 'click', 'focus', 'onBlur', 'onClick', 'onFocus', 'onMouseDown', 'onMouseUp']
		call map(checmeth, 'v:val."("')
		let checs = checprop + checmeth
		" File upload - accessible only by other properties
		let fileprop = ['accept', 'accessKey', 'align', 'alt', 'defaultValue', 
					\ 'disabled', 'form', 'id', 'name', 'tabIndex', 'type', 'value'] 
		let filemeth = ['blur', 'focus', 'onBlur', 'onClick', 'onFocus', 'onMouseDown', 'onMouseUp']
		call map(filemeth, 'v:val."("')
		let files = fileprop + filemeth
		" Hidden - accessible only by other properties
		let hiddprop = ['defaultValue', 'form', 'id', 'name', 'type', 'value'] 
		let hidds = hiddprop
		" Password - accessible only by other properties
		let passprop = ['accept', 'accessKey', 'defaultValue', 
					\ 'disabled', 'form', 'id', 'maxLength', 'name', 'readOnly', 'size', 'tabIndex', 
					\ 'type', 'value'] 
		let passmeth = ['blur', 'click', 'focus', 'select', 'onBlur', 'onFocus', 'onKeyDown', 
					\ 'onKeyPress', 'onKeyUp']
		call map(passmeth, 'v:val."("')
		let passs = passprop + passmeth
		" Radio - accessible only by other properties
		let radiprop = ['accept', 'accessKey', 'align', 'alt', 'checked', 'defaultChecked', 
					\ 'disabled', 'form', 'id', 'name', 'tabIndex', 'type', 'value'] 
		let radimeth = ['blur', 'click', 'focus', 'select', 'onBlur', 'onFocus']
		call map(radimeth, 'v:val."("')
		let radis = radiprop + radimeth
		" Reset - accessible only by other properties
		let reseprop = ['accept', 'accessKey', 'align', 'alt', 'defaultValue', 
					\ 'disabled', 'form', 'id', 'name', 'size', 'tabIndex', 'type', 'value'] 
		let resemeth = ['blur', 'click', 'focus', 'select', 'onBlur', 'onFocus']
		call map(resemeth, 'v:val."("')
		let reses = reseprop + resemeth
		" Submit - accessible only by other properties
		let submprop = ['accept', 'accessKey', 'align', 'alt', 'defaultValue', 
					\ 'disabled', 'form', 'id', 'name', 'size', 'tabIndex', 'type', 'value'] 
		let submmeth = ['blur', 'click', 'focus', 'select', 'onClick', 'onSelectStart']
		call map(submmeth, 'v:val."("')
		let subms = submprop + submmeth
		" Text - accessible only by other properties
		let textprop = ['accept', 'accessKey', 'align', 'alt', 'defaultValue', 
					\ 'disabled', 'form', 'id', 'maxLength', 'name', 'readOnly', 
					\ 'size', 'tabIndex', 'type', 'value'] 
		let textmeth = ['blur', 'focus', 'select', 'onBlur', 'onChange', 'onFocus', 'onKeyDown',
					\ 'onKeyPress', 'onKeyUp', 'onSelect']
		call map(textmeth, 'v:val."("')
		let texts = textprop + textmeth
		" Link - link.
		let linkprop = ['charset', 'disabled', 'href', 'hreflang', 'id', 'media',
					\ 'rel', 'rev', 'target', 'type']
		let linkmeth = ['onLoad']
		call map(linkmeth, 'v:val."("')
		let links = linkprop + linkmeth
		" Location - location.
		let locaprop = ['href', 'hash', 'host', 'hostname', 'pathname', 'port', 'protocol',
					\ 'search']
		let locameth = ['assign', 'reload', 'replace']
		call map(locameth, 'v:val."("')
		let locas = locaprop + locameth
		" Meta - meta.
		let metaprop = ['charset', 'content', 'disabled', 'httpEquiv', 'name', 'scheme']
		let metas = metaprop
		" Navigator - navigator.
		let naviprop = ['plugins', 'appCodeName', 'appName', 'appVersion', 'cookieEnabled',
					\ 'platform', 'userAgent']
		let navimeth = ['javaEnabled', 'taintEnabled']
		call map(navimeth, 'v:val."("')
		let navis = naviprop + navimeth
		" Object - object.
		let objeprop = ['align', 'archive', 'border', 'code', 'codeBase', 'codeType', 'data',
					\ 'declare', 'form', 'height', 'hspace', 'id', 'name', 'standby', 'tabIndex',
					\ 'type', 'useMap', 'vspace', 'width']
		let objes = objeprop
		" Option - accessible only by other properties
		let optiprop = ['defaultSelected', 
					\ 'disabled', 'form', 'id', 'index', 'label', 'selected', 'text', 'value']
		let optis = optiprop
		" Screen - screen.
		let screprop = ['availHeight', 'availWidth', 'colorDepth', 'height', 'width']
		let scres = screprop
		" Select - accessible only by other properties
		let seleprop = ['options', 'disabled', 'form', 'id', 'length', 'multiple', 'name', 
					\ 'selectedIndex', 'size', 'tabIndex', 'type', 'value'] 
		let selemeth = ['blur', 'focus', 'remove', 'onBlur', 'onChange', 'onFocus']
		call map(selemeth, 'v:val."("')
		let seles = seleprop + selemeth
		" Style - style.
		let stylprop = ['background', 'backgroundAttachment', 'backgroundColor', 'backgroundImage',
					\ 'backgroundPosition', 'backgroundRepeat',
					\ 'border', 'borderBottom', 'borderLeft', 'borderRight', 'borderTop',
					\ 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor',
					\ 'borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle',
					\ 'borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth',
					\ 'borderColor', 'borderStyle', 'borderWidth', 'margin', 'marginBottom',
					\ 'marginLeft', 'marginRight', 'marginTop', 'outline', 'outlineStyle', 'outlineWidth',
					\ 'outlineColor', 'outlineStyle', 'outlineWidth', 'padding', 'paddingBottom',
					\ 'paddingLeft', 'paddingRight', 'paddingTop',
					\ 'clear', 'clip', 'clipBottom', 'clipLeft', 'clipRight', 'clipTop', 'content',
					\ 'counterIncrement', 'counterReset', 'cssFloat', 'cursor', 'direction',
					\ 'display', 'markerOffset', 'marks', 'maxHeight', 'maxWidth', 'minHeight',
					\ 'minWidth', 'overflow', 'overflowX', 'overflowY', 'verticalAlign', 'visibility',
					\ 'width',
					\ 'listStyle', 'listStyleImage', 'listStylePosition', 'listStyleType',
					\ 'cssText', 'bottom', 'height', 'left', 'position', 'right', 'top', 'width', 'zindex',
					\ 'orphans', 'widows', 'page', 'pageBreakAfter', 'pageBreakBefore', 'pageBreakInside',
					\ 'borderCollapse', 'borderSpacing', 'captionSide', 'emptyCells', 'tableLayout',
					\ 'color', 'font', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch',
					\ 'fontStyle', 'fontVariant', 'fontWeight', 'letterSpacing', 'lineHeight', 'quotes',
					\ 'textAlign', 'textIndent', 'textShadow', 'textTransform', 'textUnderlinePosition',
					\ 'unicodeBidi', 'whiteSpace', 'wordSpacing']
		let styls = stylprop
		" Table - table.
		let tablprop = ['rows', 'tBodies', 'align', 'bgColor', 'border', 'caption', 'cellPadding',
					\ 'cellSpacing', 'frame', 'height', 'rules', 'summary', 'tFoot', 'tHead', 'width']
		let tablmeth = ['createCaption', 'createTFoot', 'createTHead', 'deleteCaption', 'deleteRow',
					\ 'deleteTFoot', 'deleteTHead', 'insertRow']
		call map(tablmeth, 'v:val."("')
		let tabls = tablprop + tablmeth
		" Table data - TableData.
		let tdatprop = ['abbr', 'align', 'axis', 'bgColor', 'cellIndex', 'ch', 'chOff',
					\ 'colSpan', 'headers', 'noWrap', 'rowSpan', 'scope', 'vAlign', 'width']
		let tdats = tdatprop
		" Table row - TableRow.
		let trowprop = ['cells', 'align', 'bgColor', 'ch', 'chOff', 'rowIndex', 'sectionRowIndex',
					\ 'vAlign']
		let trowmeth = ['deleteCell', 'insertCell']
		call map(trowmeth, 'v:val."("')
		let trows = trowprop + trowmeth
		" Textarea - accessible only by other properties
		let tareprop = ['accessKey', 'cols', 'defaultValue', 
					\ 'disabled', 'form', 'id', 'name', 'readOnly', 'rows', 
					\ 'tabIndex', 'type', 'value', 'selectionStart', 'selectionEnd'] 
		let taremeth = ['blur', 'focus', 'select', 'onBlur', 'onChange', 'onFocus']
		call map(taremeth, 'v:val."("')
		let tares = tareprop + taremeth
		" Window - window.
		let windprop = ['frames', 'closed', 'defaultStatus', 'encodeURI', 'event', 'history',
					\ 'length', 'location', 'name', 'onload', 'opener', 'parent', 'screen', 'self',
					\ 'status', 'top', 'XMLHttpRequest', 'ActiveXObject']
		let windmeth = ['alert', 'blur', 'clearInterval', 'clearTimeout', 'close', 'confirm', 'focus',
					\ 'moveBy', 'moveTo', 'open', 'print', 'prompt', 'scrollBy', 'scrollTo', 'setInterval',
					\ 'setTimeout']
		call map(windmeth, 'v:val."("')
		let winds = windprop + windmeth
		" XMLHttpRequest - access by new xxx()
		let xmlhprop = ['onreadystatechange', 'readyState', 'responseText', 'responseXML',
					\ 'status', 'statusText', 'parseError']
		let xmlhmeth = ['abort', 'getAllResponseHeaders', 'getResponseHeaders', 'open',
					\ 'send', 'setRequestHeader']
		call map(xmlhmeth, 'v:val."("')
		let xmlhs = xmlhprop + xmlhmeth

		" XML DOM
		" Attributes - element.attributes[x].
		let xdomattrprop = ['name', 'specified', 'value']
		" Element - anyelement.
		let xdomelemprop = ['attributes', 'childNodes', 'firstChild', 'lastChild', 
					\ 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue',
					\ 'ownerDocument', 'parentNode', 'prefix', 'previousSibling', 'tagName']
		let xdomelemmeth = ['appendChild', 'cloneNode', 'getAttribute', 'getAttributeNode',
					\ 'getElementsByTagName', 'hasChildNodes', 'insertBefore', 'normalize',
					\ 'removeAttribute', 'removeAttributeNode', 'removeChild', 'replaceChild',
					\ 'setAttribute', 'setAttributeNode']
		call map(xdomelemmeth, 'v:val."("')
		let xdomelems = xdomelemprop + xdomelemmeth
		" Node - anynode.
		let xdomnodeprop = ['attributes', 'childNodes', 'firstChild', 'lastChild', 
					\ 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue',
					\ 'ownerDocument', 'parentNode', 'prefix', 'previousSibling']
		let xdomnodemeth = ['appendChild', 'cloneNode',
					\ 'hasChildNodes', 'insertBefore', 'removeChild', 'replaceChild']
		call map(xdomnodemeth, 'v:val."("')
		let xdomnodes = xdomnodeprop + xdomnodemeth
		" NodeList 
		let xdomnliss = ['length', 'item(']
		" Error - parseError.
		let xdomerror = ['errorCode', 'reason', 'line', 'linepos', 'srcText', 'url', 'filepos']

		" Find object type declaration to reduce number of suggestions. {{{
		" 1. Get object name
		" 2. Find object declaration line
		" 3. General declaration follows "= new Type" syntax, additional else
		"    for regexp "= /re/"
		" 4. Make correction for Microsoft.XMLHTTP ActiveXObject
		" 5. Repeat for external files
		let object = matchstr(shortcontext, '\zs\k\+\ze\(\[.\{-}\]\)\?\.$')
		if len(object) > 0
			let decl_line = search(object.'.\{-}=\s*new\s*', 'bn')
			if decl_line > 0
				let object_type = matchstr(getline(decl_line), object.'.\{-}=\s*new\s*\zs\k\+\ze')
				if object_type == 'ActiveXObject' && matchstr(getline(decl_line), object.'.\{-}=\s*new\s*ActiveXObject\s*(.Microsoft\.XMLHTTP.)') != ''
						let object_type = 'XMLHttpRequest'
				endif
			else
				let decl_line = search('var\s*'.object.'\s*=\s*\/', 'bn')
				if decl_line > 0
					let object_type = 'RegExp'
				endif
			endif
			" We didn't find var declaration in current file but we may have
			" something in external files.
			if decl_line == 0 && exists("b:js_extfiles")
				let dext_line = filter(copy(b:js_extfiles), 'v:val =~ "'.object.'.\\{-}=\\s*new\\s*"')
				if len(dext_line) > 0
					let object_type = matchstr(dext_line[-1], object.'.\{-}=\s*new\s*\zs\k\+\ze')
					if object_type == 'ActiveXObject' && matchstr(dext_line[-1], object.'.\{-}=\s*new\s*ActiveXObject\s*(.Microsoft\.XMLHTTP.)') != ''
							let object_type = 'XMLHttpRequest'
					endif
				else
					let dext_line = filter(copy(b:js_extfiles), 'v:val =~ "var\s*'.object.'\\s*=\\s*\\/"')
					if len(dext_line) > 0
						let object_type = 'RegExp'
					endif
				endif
			endif
		endif
		" }}}

		if !exists('object_type')
			let object_type = ''
		endif

		if object_type == 'Date'
			let values = dates
		elseif object_type == 'Image'
			let values = imags
		elseif object_type == 'Array'
			let values = arrays
		elseif object_type == 'Boolean'
			" TODO: a bit more than real boolean
			let values = arrays
		elseif object_type == 'XMLHttpRequest'
			let values = xmlhs
		elseif object_type == 'String'
			let values = stris
		elseif object_type == 'RegExp'
			let values = reges
		elseif object_type == 'Math'
			let values = maths
		endif

		if !exists('values')
		" List of properties
		if shortcontext =~ 'Math\.$'
			let values = maths
		elseif shortcontext =~ 'anchors\(\[.\{-}\]\)\?\.$'
			let values = anths
		elseif shortcontext =~ 'area\.$'
			let values = areas
		elseif shortcontext =~ 'base\.$'
			let values = bases
		elseif shortcontext =~ 'body\.$'
			let values = bodys
		elseif shortcontext =~ 'document\.$'
			let values = docus
		elseif shortcontext =~ 'forms\(\[.\{-}\]\)\?\.$'
			let values = forms
		elseif shortcontext =~ 'frameset\.$'
			let values = fsets
		elseif shortcontext =~ 'history\.$'
			let values = hists
		elseif shortcontext =~ 'iframe\.$'
			let values = ifras
		elseif shortcontext =~ 'images\(\[.\{-}\]\)\?\.$'
			let values = imags
		elseif shortcontext =~ 'links\(\[.\{-}\]\)\?\.$'
			let values = links
		elseif shortcontext =~ 'location\.$'
			let values = locas
		elseif shortcontext =~ 'meta\.$'
			let values = metas
		elseif shortcontext =~ 'navigator\.$'
			let values = navis
		elseif shortcontext =~ 'object\.$'
			let values = objes
		elseif shortcontext =~ 'screen\.$'
			let values = scres
		elseif shortcontext =~ 'style\.$'
			let values = styls
		elseif shortcontext =~ 'table\.$'
			let values = tabls
		elseif shortcontext =~ 'TableData\.$'
			let values = tdats
		elseif shortcontext =~ 'TableRow\.$'
			let values = trows
		elseif shortcontext =~ 'window\.$'
			let values = winds
		elseif shortcontext =~ 'parseError\.$'
			let values = xdomerror
		elseif shortcontext =~ 'attributes\[\d\+\]\.$'
			let values = xdomattrprop
		else
			let values = user_props + arrays + dates + funcs + maths + numbs + objes + reges + stris
			let values += doms + anths + areas + bases + bodys + docus + forms + frams + fsets + hists
			let values += ifras + imags + links + locas + metas + navis + objes + scres
			let values += tabls + trows + tares + winds
			let values += xdomnodes + xdomnliss + xdomelems
		endif
		endif

		for m in values
			if m =~? '^'.a:base
				call add(res, m)
			elseif m =~? a:base
				call add(res2, m)
			endif
		endfor

		unlet! values
		return res + res2

	endif
	" }}}

	" Get variables data.
	let variables = filter(copy(file), 'v:val =~ "var\\s"')
	call map(variables, 'matchstr(v:val, ".\\{-}var\\s\\+\\zs.*\\ze")')
	call map(variables, 'substitute(v:val, ";\\|$", ",", "g")')
	let vars = []
	" This loop (and next one) is necessary to get variable names from
	" constructs like: var var1, var2, var3 = "something";
	for i in range(len(variables))
		let comma_separated = split(variables[i], ',\s*')
		call map(comma_separated, 'matchstr(v:val, "\\k\\+")')
		let vars += comma_separated
	endfor

	let variables = sort(vars)
	unlet! vars

	" Add "no var" variables.
	let undeclared_variables = filter(copy(file), 'v:val =~ "^\\s*\\k\\+\\s*="')
	let u_vars = []
	for i in range(len(undeclared_variables))
		let  split_equal = split(undeclared_variables[i], '\s*=')
		call map(split_equal, 'matchstr(v:val, "\\k\\+$")')
		let u_vars += split_equal
	endfor

	let variables += sort(u_vars)
	unlet! u_vars

	" Get functions
	let functions = filter(copy(file), 'v:val =~ "^\\s*function\\s"')
	let arguments = copy(functions)
	call map(functions, 'matchstr(v:val, "^\\s*function\\s\\+\\zs\\k\\+")')
	call map(functions, 'v:val."("')
	let functions = sort(functions)

	" Create table to keep arguments for additional 'menu' info
	let b:js_menuinfo = {}
	for i in arguments
		let g:ia = i
		let f_elements = matchlist(i, 'function\s\+\(\k\+\)\s*(\(.\{-}\))')
		if len(f_elements) >= 3
			let b:js_menuinfo[f_elements[1].'('] = f_elements[2]
		endif
	endfor

	" Get functions arguments
	call map(arguments, 'matchstr(v:val, "function.\\{-}(\\zs.\\{-}\\ze)")')
	let jargs = join(arguments, ',')
	let jargs = substitute(jargs, '\s', '', 'g')
	let arguments = split(jargs, ',')
	let arguments = sort(arguments)

	" Built-in functions
	let builtin = ['alert(', 'confirm(']

	" Top-level HTML DOM objects
	let htmldom = ['document', 'anchor', 'area', 'base', 'body', 'document', 'event', 'form', 'frame', 'frameset', 'history', 'iframe', 'image', 'input', 'link', 'location', 'meta', 'navigator', 'object', 'option', 'screen', 'select', 'table', 'tableData', 'tableHeader', 'tableRow', 'textarea', 'window']
	call map(htmldom, 'v:val."."')

	" Top-level properties
	let properties = ['decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent',
				\ 'eval', 'Infinity', 'isFinite', 'isNaN', 'NaN', 'Number', 'parseFloat',
				\ 'parseInt', 'String', 'undefined', 'escape', 'unescape']

	" Keywords
	let keywords = ["Array", "Boolean", "Date", "Function", "Math", "Number", "Object", "RegExp", "String", "XMLHttpRequest", "ActiveXObject", "abstract", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "debugger", "default", "delete", "do", "double ", "else", "enum", "export", "extends", "false", "final", "finally", "float", "for", "function", "goto", "if", "implements", "import", "in ", "instanceof", "int", "interface", "long", "native", "new", "null", "package", "private", "protected", "public", "return", "short", "static", "super ", "switch", "synchronized", "this", "throw", "throws", "transient", "true", "try", "typeof", "var", "void", "volatile", "while", "with"]

	let values = variables + functions + htmldom + arguments + builtin + properties + keywords

	for m in values
		if m =~? '^'.a:base
			call add(res, m)
		elseif m =~? a:base
			call add(res2, m)
		endif
	endfor

	let menu = res + res2
	let final_menu = []
	for i in range(len(menu))
		let item = menu[i]
		if item =~ '($'
			let kind = 'f'
			if has_key(b:js_menuinfo, item)
				let m_info = b:js_menuinfo[item]
			else
				let m_info = ''
			endif
		else
			let kind = 'v'
			let m_info = ''
		endif
		let final_menu += [{'word':item, 'menu':m_info, 'kind':kind}]
	endfor
	let g:fm = final_menu
	return final_menu

endfunction

" vim:set foldmethod=marker:
PK�j�Z�����vim80/autoload/gnat.vimnu�[���"------------------------------------------------------------------------------
"  Description: Vim Ada/GNAT compiler file
"     Language: Ada (GNAT)
"          $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
"    Copyright: Copyright (C) 2006 Martin Krischik
"   Maintainer:	Martin Krischi <krischik@users.sourceforge.net>k
"		Ned Okie <nokie@radford.edu>
"      $Author: krischik $
"        $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
"      History: 24.05.2006 MK Unified Headers
"		16.07.2006 MK Ada-Mode as vim-ball
"		05.08.2006 MK Add session support
"               15.10.2006 MK Bram's suggestion for runtime integration
"               05.11.2006 MK Bram suggested not to use include protection for
"                             autoload
"		05.11.2006 MK Bram suggested to save on spaces
"		19.09.2007 NO use project file only when there is a project
"    Help Page: compiler-gnat
"------------------------------------------------------------------------------

if version < 700
    finish
endif

function gnat#Make () dict					     " {{{1
   let &l:makeprg	 = self.Get_Command('Make')
   let &l:errorformat = self.Error_Format
   wall
   make
   copen
   set wrap
   wincmd W
endfunction gnat#Make						     " }}}1

function gnat#Pretty () dict					     " {{{1
   execute "!" . self.Get_Command('Pretty')
endfunction gnat#Make						     " }}}1

function gnat#Find () dict					     " {{{1
   execute "!" . self.Get_Command('Find')
endfunction gnat#Find						     " }}}1

function gnat#Tags () dict					     " {{{1
   execute "!" . self.Get_Command('Tags')
   edit tags
   call gnat#Insert_Tags_Header ()
   update
   quit
endfunction gnat#Tags						     " }}}1

function gnat#Set_Project_File (...) dict			     " {{{1
   if a:0 > 0
      let self.Project_File = a:1

      if ! filereadable (self.Project_File)
	 let self.Project_File = findfile (
	    \ fnamemodify (self.Project_File, ':r'),
	    \ $ADA_PROJECT_PATH,
	    \ 1)
      endif
   elseif strlen (self.Project_File) > 0
      let self.Project_File = browse (0, 'GNAT Project File?', '', self.Project_File)
   elseif expand ("%:e") == 'gpr'
      let self.Project_File = browse (0, 'GNAT Project File?', '', expand ("%:e"))
   else
      let self.Project_File = browse (0, 'GNAT Project File?', '', 'default.gpr')
   endif

   if strlen (v:this_session) > 0
      execute 'mksession! ' . v:this_session
   endif

   "if strlen (self.Project_File) > 0
      "if has("vms")
	 "call ada#Switch_Session (
	    "\ expand('~')[0:-2] . ".vimfiles.session]gnat_" .
	    "\ fnamemodify (self.Project_File, ":t:r") . ".vim")
      "else
	 "call ada#Switch_Session (
	    "\ expand('~') . "/vimfiles/session/gnat_" .
	    "\ fnamemodify (self.Project_File, ":t:r") . ".vim")
      "endif
   "else
      "call ada#Switch_Session ('')
   "endif

   return
endfunction gnat#Set_Project_File				     " }}}1

function gnat#Get_Command (Command) dict			     " {{{1
   let l:Command = eval ('self.' . a:Command . '_Command')
   return eval (l:Command)
endfunction gnat#Get_Command					     " }}}1

function gnat#Set_Session (...) dict				     " {{{1
   if argc() == 1 && fnamemodify (argv(0), ':e') == 'gpr'
      call self.Set_Project_File (argv(0))
   elseif  strlen (v:servername) > 0
      call self.Set_Project_File (v:servername . '.gpr')
   endif
endfunction gnat#Set_Session					     " }}}1

function gnat#New ()						     " {{{1
   let l:Retval = {
      \ 'Make'	      : function ('gnat#Make'),
      \ 'Pretty'	      : function ('gnat#Pretty'),
      \ 'Find'	      : function ('gnat#Find'),
      \ 'Tags'	      : function ('gnat#Tags'),
      \ 'Set_Project_File' : function ('gnat#Set_Project_File'),
      \ 'Set_Session'      : function ('gnat#Set_Session'),
      \ 'Get_Command'      : function ('gnat#Get_Command'),
      \ 'Project_File'     : '',
      \ 'Make_Command'     : '"gnat make -P " . self.Project_File . "  -F -gnatef  "',
      \ 'Pretty_Command'   : '"gnat pretty -P " . self.Project_File . " "',
      \ 'Find_Program'     : '"gnat find -P " . self.Project_File . " -F "',
      \ 'Tags_Command'     : '"gnat xref -P " . self.Project_File . " -v  *.AD*"',
      \ 'Error_Format'     : '%f:%l:%c: %trror: %m,'   .
			   \ '%f:%l:%c: %tarning: %m,' .
			   \ '%f:%l:%c: (%ttyle) %m'}

   return l:Retval
endfunction gnat#New						  " }}}1

function gnat#Insert_Tags_Header ()				  " {{{1
   1insert
!_TAG_FILE_FORMAT       1	 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED       1	 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    AdaCore	 /info@adacore.com/
!_TAG_PROGRAM_NAME      gnatxref //
!_TAG_PROGRAM_URL       http://www.adacore.com  /official site/
!_TAG_PROGRAM_VERSION   5.05w   //
.
   return
endfunction gnat#Insert_Tags_Header				  " }}}1

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006  Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z�d���vim80/autoload/paste.vimnu�[���" Vim support file to help with paste mappings and menus
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Aug 30

" Define the string to use for items that are present both in Edit, Popup and
" Toolbar menu.  Also used in mswin.vim and macmap.vim.

" Pasting blockwise and linewise selections is not possible in Insert and
" Visual mode without the +virtualedit feature.  They are pasted as if they
" were characterwise instead.  Add to that some tricks to leave the cursor in
" the right position, also for "gi".
if has("virtualedit")
  let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
  let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
  let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"

  func! paste#Paste()
    let ove = &ve
    set ve=all
    normal! `^
    if @+ != ''
      normal! "+gP
    endif
    let c = col(".")
    normal! i
    if col(".") < c	" compensate for i<ESC> moving the cursor left
      normal! l
    endif
    let &ve = ove
  endfunc
else
  let paste#paste_cmd = {'n': "\"=@+.'xy'<CR>gPFx\"_2x"}
  let paste#paste_cmd['v'] = '"-c<Esc>gix<Esc>' . paste#paste_cmd['n'] . '"_x'
  let paste#paste_cmd['i'] = 'x<Esc>' . paste#paste_cmd['n'] . '"_s'
endif
PK�j�Zb���!a!avim80/autoload/getscript.vimnu�[���" ---------------------------------------------------------------------
" getscript.vim
"  Author:	Charles E. Campbell
"  Date:	Jan 21, 2014
"  Version:	36
"  Installing:	:help glvs-install
"  Usage:	:help glvs
"
" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim
"redraw!|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" ---------------------------------------------------------------------
" Initialization:	{{{1
" if you're sourcing this file, surely you can't be
" expecting vim to be in its vi-compatible mode!
if exists("g:loaded_getscript")
 finish
endif
let g:loaded_getscript= "v36"
if &cp
 echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
 finish
endif
if v:version < 702
 echohl WarningMsg
 echo "***warning*** this version of getscript needs vim 7.2"
 echohl Normal
 finish
endif
let s:keepcpo = &cpo
set cpo&vim
"DechoTabOn

" ---------------------------
" Global Variables: {{{1
" ---------------------------
" Cygwin Detection ------- {{{2
if !exists("g:getscript_cygwin")
 if has("win32") || has("win95") || has("win64") || has("win16")
  if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
   let g:getscript_cygwin= 1
  else
   let g:getscript_cygwin= 0
  endif
 else
  let g:getscript_cygwin= 0
 endif
endif

" wget vs curl {{{2
if !exists("g:GetLatestVimScripts_wget")
 if executable("wget")
  let g:GetLatestVimScripts_wget= "wget"
 elseif executable("curl")
  let g:GetLatestVimScripts_wget= "curl"
 else
  let g:GetLatestVimScripts_wget    = 'echo "GetLatestVimScripts needs wget or curl"'
  let g:GetLatestVimScripts_options = ""
 endif
endif

" options that wget and curl require:
if !exists("g:GetLatestVimScripts_options")
 if g:GetLatestVimScripts_wget == "wget"
  let g:GetLatestVimScripts_options= "-q -O"
 elseif g:GetLatestVimScripts_wget == "curl"
  let g:GetLatestVimScripts_options= "-s -O"
 else
  let g:GetLatestVimScripts_options= ""
 endif
endif

" by default, allow autoinstall lines to work
if !exists("g:GetLatestVimScripts_allowautoinstall")
 let g:GetLatestVimScripts_allowautoinstall= 1
endif

" set up default scriptaddr address
if !exists("g:GetLatestVimScripts_scriptaddr")
 let g:GetLatestVimScripts_scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='
endif

"" For debugging:
"let g:GetLatestVimScripts_wget    = "echo"
"let g:GetLatestVimScripts_options = "options"

" ---------------------------------------------------------------------
" Check If AutoInstall Capable: {{{1
let s:autoinstall= ""
if g:GetLatestVimScripts_allowautoinstall

 if (has("win32") || has("gui_win32") || has("gui_win32s") || has("win16") || has("win64") || has("win32unix") || has("win95")) && &shell != "bash"
  " windows (but not cygwin/bash)
  let s:dotvim= "vimfiles"
  if !exists("g:GetLatestVimScripts_mv")
   let g:GetLatestVimScripts_mv= "ren"
  endif

 else
  " unix
  let s:dotvim= ".vim"
  if !exists("g:GetLatestVimScripts_mv")
   let g:GetLatestVimScripts_mv= "mv"
  endif
 endif

 if exists("g:GetLatestVimScripts_autoinstalldir") && isdirectory(g:GetLatestVimScripts_autoinstalldir)
  let s:autoinstall= g:GetLatestVimScripts_autoinstalldir"
 elseif exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
  let s:autoinstall= $HOME."/".s:dotvim
 endif
" call Decho("s:autoinstall<".s:autoinstall.">")
"else "Decho
" call Decho("g:GetLatestVimScripts_allowautoinstall=".g:GetLatestVimScripts_allowautoinstall.": :AutoInstall: disabled")
endif

" ---------------------------------------------------------------------
"  Public Interface: {{{1
com!        -nargs=0 GetLatestVimScripts call getscript#GetLatestVimScripts()
com!        -nargs=0 GetScript           call getscript#GetLatestVimScripts()
silent! com -nargs=0 GLVS                call getscript#GetLatestVimScripts()

" ---------------------------------------------------------------------
" GetLatestVimScripts: this function gets the latest versions of {{{1
"                      scripts based on the list in
"   (first dir in runtimepath)/GetLatest/GetLatestVimScripts.dat
fun! getscript#GetLatestVimScripts()
"  call Dfunc("GetLatestVimScripts() autoinstall<".s:autoinstall.">")

" insure that wget is executable
  if executable(g:GetLatestVimScripts_wget) != 1
   echoerr "GetLatestVimScripts needs ".g:GetLatestVimScripts_wget." which apparently is not available on your system"
"   call Dret("GetLatestVimScripts : wget not executable/availble")
   return
  endif

  " insure that fnameescape() is available
  if !exists("*fnameescape")
   echoerr "GetLatestVimScripts needs fnameescape() (provided by 7.1.299 or later)"
   return
  endif

  " Find the .../GetLatest subdirectory under the runtimepath
  for datadir in split(&rtp,',') + ['']
   if isdirectory(datadir."/GetLatest")
"    call Decho("found directory<".datadir.">")
    let datadir= datadir . "/GetLatest"
    break
   endif
   if filereadable(datadir."GetLatestVimScripts.dat")
"    call Decho("found ".datadir."/GetLatestVimScripts.dat")
    break
   endif
  endfor

  " Sanity checks: readability and writability
  if datadir == ""
   echoerr 'Missing "GetLatest/" on your runtimepath - see :help glvs-dist-install'
"   call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
   return
  endif
  if filewritable(datadir) != 2
   echoerr "(getLatestVimScripts) Your ".datadir." isn't writable"
"   call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
   return
  endif
  let datafile= datadir."/GetLatestVimScripts.dat"
  if !filereadable(datafile)
   echoerr "Your data file<".datafile."> isn't readable"
"   call Dret("GetLatestVimScripts : non-readable datafile<".datafile.">")
   return
  endif
  if !filewritable(datafile)
   echoerr "Your data file<".datafile."> isn't writable"
"   call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
   return
  endif
  " --------------------
  " Passed sanity checks
  " --------------------

"  call Decho("datadir  <".datadir.">")
"  call Decho("datafile <".datafile.">")

  " don't let any event handlers interfere (like winmanager's, taglist's, etc)
  let eikeep  = &ei
  let hlskeep = &hls
  let acdkeep = &acd
  set ei=all hls&vim noacd

  " Edit the datafile (ie. GetLatestVimScripts.dat):
  " 1. record current directory (origdir),
  " 2. change directory to datadir,
  " 3. split window
  " 4. edit datafile
  let origdir= getcwd()
"  call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge')))
  exe "cd ".fnameescape(substitute(datadir,'\','/','ge'))
  split
"  call Decho("exe  e ".fnameescape(substitute(datafile,'\','/','ge')))
  exe "e ".fnameescape(substitute(datafile,'\','/','ge'))
  res 1000
  let s:downloads = 0
  let s:downerrors= 0

  " Check on dependencies mentioned in plugins
"  call Decho(" ")
"  call Decho("searching plugins for GetLatestVimScripts dependencies")
  let lastline    = line("$")
"  call Decho("lastline#".lastline)
  let firstdir    = substitute(&rtp,',.*$','','')
  let plugins     = split(globpath(firstdir,"plugin/**/*.vim"),'\n')
  let plugins     = plugins + split(globpath(firstdir,"AsNeeded/**/*.vim"),'\n')
  let foundscript = 0

  " this loop updates the GetLatestVimScripts.dat file
  " with dependencies explicitly mentioned in the plugins
  " via   GetLatestVimScripts: ... lines
  " It reads the plugin script at the end of the GetLatestVimScripts.dat
  " file, examines it, and then removes it.
  for plugin in plugins
"   call Decho(" ")
"   call Decho("plugin<".plugin.">")

   " read plugin in
   " evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it
   $
"   call Decho(".dependency checking<".plugin."> line$=".line("$"))
"   call Decho("..exe silent r ".fnameescape(plugin))
   exe "silent r ".fnameescape(plugin)
   exe "silent bwipe ".bufnr("#")

   while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
    let depscript   = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
    let depscriptid = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\(\d\+\)\s\+.*$','\1','')
    let llp1        = lastline+1
"    call Decho("..depscript<".depscript.">")

    " found a "GetLatestVimScripts: # #" line in the script;
    " check if it's already in the datafile by searching backwards from llp1,
    " the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
    " for the script-id with no wrapping allowed.
    let curline     = line(".")
    let noai_script = substitute(depscript,'\s*:AutoInstall:\s*','','e')
    exe llp1
    let srchline    = search('^\s*'.depscriptid.'\s\+\d\+\s\+.*$','bW')
    if srchline == 0
     " this second search is taken when, for example, a   0 0 scriptname  is to be skipped over
     let srchline= search('\<'.noai_script.'\>','bW')
    endif
"    call Decho("..noai_script<".noai_script."> depscriptid#".depscriptid." srchline#".srchline." curline#".line(".")." lastline#".lastline)

    if srchline == 0
     " found a new script to permanently include in the datafile
     let keep_rega   = @a
     let @a          = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
     echomsg "Appending <".@a."> to ".datafile." for ".depscript
"     call Decho("..Appending <".@a."> to ".datafile." for ".depscript)
     exe lastline."put a"
     let @a          = keep_rega
     let lastline    = llp1
     let curline     = curline     + 1
     let foundscript = foundscript + 1
"    else	" Decho
"     call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
    endif

    let curline = curline + 1
    exe curline
   endwhile

   " llp1: last line plus one
   let llp1= lastline + 1
"   call Decho(".deleting lines: ".llp1.",$d")
   exe "silent! ".llp1.",$d"
  endfor
"  call Decho("--- end dependency checking loop ---  foundscript=".foundscript)
"  call Decho(" ")
"  call Dredir("BUFFER TEST (GetLatestVimScripts 1)","ls!")

  if foundscript == 0
   setlocal nomod
  endif

  " --------------------------------------------------------------------
  " Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
  " --------------------------------------------------------------------
"  call Decho("begin: checking out-of-date scripts using datafile<".datafile.">")
  setlocal lz
  1
"  /^-----/,$g/^\s*\d/call Decho(getline("."))
  1
  /^-----/,$g/^\s*\d/call s:GetOneScript()
"  call Decho("--- end out-of-date checking --- ")

  " Final report (an echomsg)
  try
   silent! ?^-------?
  catch /^Vim\%((\a\+)\)\=:E114/
"   call Dret("GetLatestVimScripts : nothing done!")
   return
  endtry
  exe "norm! kz\<CR>"
  redraw!
  let s:msg = ""
  if s:downloads == 1
  let s:msg = "Downloaded one updated script to <".datadir.">"
  elseif s:downloads == 2
   let s:msg= "Downloaded two updated scripts to <".datadir.">"
  elseif s:downloads > 1
   let s:msg= "Downloaded ".s:downloads." updated scripts to <".datadir.">"
  else
   let s:msg= "Everything was already current"
  endif
  if s:downerrors > 0
   let s:msg= s:msg." (".s:downerrors." downloading errors)"
  endif
  echomsg s:msg
  " save the file
  if &mod
   silent! w!
  endif
  q!

  " restore events and current directory
  exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
  let &ei  = eikeep
  let &hls = hlskeep
  let &acd = acdkeep
  setlocal nolz
"  call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!")
"  call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
endfun

" ---------------------------------------------------------------------
"  GetOneScript: (Get Latest Vim Script) this function operates {{{1
"    on the current line, interpreting two numbers and text as
"    ScriptID, SourceID, and Filename.
"    It downloads any scripts that have newer versions from vim.sourceforge.net.
fun! s:GetOneScript(...)
"   call Dfunc("GetOneScript()")

 " set options to allow progress to be shown on screen
  let rega= @a
  let t_ti= &t_ti
  let t_te= &t_te
  let rs  = &rs
  set t_ti= t_te= nors

 " put current line on top-of-screen and interpret it into
 " a      script identifer  : used to obtain webpage
 "        source identifier : used to identify current version
 " and an associated comment: used to report on what's being considered
  if a:0 >= 3
   let scriptid = a:1
   let srcid    = a:2
   let fname    = a:3
   let cmmnt    = ""
"   call Decho("scriptid<".scriptid.">")
"   call Decho("srcid   <".srcid.">")
"   call Decho("fname   <".fname.">")
  else
   let curline  = getline(".")
   if curline =~ '^\s*#'
    let @a= rega
"    call Dret("GetOneScript : skipping a pure comment line")
    return
   endif
   let parsepat = '^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(.\{-}\)\(\s*#.*\)\=$'
   try
    let scriptid = substitute(curline,parsepat,'\1','e')
   catch /^Vim\%((\a\+)\)\=:E486/
    let scriptid= 0
   endtry
   try
    let srcid    = substitute(curline,parsepat,'\2','e')
   catch /^Vim\%((\a\+)\)\=:E486/
    let srcid= 0
   endtry
   try
    let fname= substitute(curline,parsepat,'\3','e')
   catch /^Vim\%((\a\+)\)\=:E486/
    let fname= ""
   endtry
   try
    let cmmnt= substitute(curline,parsepat,'\4','e')
   catch /^Vim\%((\a\+)\)\=:E486/
    let cmmnt= ""
   endtry
"   call Decho("curline <".curline.">")
"   call Decho("parsepat<".parsepat.">")
"   call Decho("scriptid<".scriptid.">")
"   call Decho("srcid   <".srcid.">")
"   call Decho("fname   <".fname.">")
  endif

  " plugin author protection from downloading his/her own scripts atop their latest work
  if scriptid == 0 || srcid == 0
   " When looking for :AutoInstall: lines, skip scripts that have   0 0 scriptname
   let @a= rega
"   call Dret("GetOneScript : skipping a scriptid==srcid==0 line")
   return
  endif

  let doautoinstall= 0
  if fname =~ ":AutoInstall:"
"   call Decho("case AutoInstall: fname<".fname.">")
   let aicmmnt= substitute(fname,'\s\+:AutoInstall:\s\+',' ','')
"   call Decho("aicmmnt<".aicmmnt."> s:autoinstall=".s:autoinstall)
   if s:autoinstall != ""
    let doautoinstall = g:GetLatestVimScripts_allowautoinstall
   endif
  else
   let aicmmnt= fname
  endif
"  call Decho("aicmmnt<".aicmmnt.">: doautoinstall=".doautoinstall)

  exe "norm z\<CR>"
  redraw!
"  call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
  echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid

  " grab a copy of the plugin's vim.sourceforge.net webpage
  let scriptaddr = g:GetLatestVimScripts_scriptaddr.scriptid
  let tmpfile    = tempname()
  let v:errmsg   = ""

  " make up to three tries at downloading the description
  let itry= 1
  while itry <= 3
"   call Decho(".try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
   if has("win32") || has("win16") || has("win95")
"    call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)."|bw!")
    new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw!
   else
"    call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr))
    exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)
   endif
   if itry == 1
    exe "silent vsplit ".fnameescape(tmpfile)
   else
    silent! e %
   endif
   setlocal bh=wipe
  
   " find the latest source-id in the plugin's webpage
   silent! 1
   let findpkg= search('Click on the package to download','W')
   if findpkg > 0
    break
   endif
   let itry= itry + 1
  endwhile
"  call Decho(" --- end downloading tries while loop --- itry=".itry)

  " testing: did finding "Click on the package..." fail?
  if findpkg == 0 || itry >= 4
   silent q!
   call delete(tmpfile)
  " restore options
   let &t_ti        = t_ti
   let &t_te        = t_te
   let &rs          = rs
   let s:downerrors = s:downerrors + 1
"   call Decho("***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">")
   echomsg "***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">"
"   call Dret("GetOneScript : srch for /Click on the package/ failed")
   let @a= rega
   return
  endif
"  call Decho('found "Click on the package to download"')

  let findsrcid= search('src_id=','W')
  if findsrcid == 0
   silent q!
   call delete(tmpfile)
  " restore options
   let &t_ti        = t_ti
   let &t_te        = t_te
   let &rs          = rs
   let s:downerrors = s:downerrors + 1
"   call Decho("***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">")
   echomsg "***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">"
   let @a= rega
"  call Dret("GetOneScript : srch for /src_id/ failed")
   return
  endif
"  call Decho('found "src_id=" in description page')

  let srcidpat   = '^\s*<td class.*src_id=\(\d\+\)">\([^<]\+\)<.*$'
  let latestsrcid= substitute(getline("."),srcidpat,'\1','')
  let sname      = substitute(getline("."),srcidpat,'\2','') " script name actually downloaded
"  call Decho("srcidpat<".srcidpat."> latestsrcid<".latestsrcid."> sname<".sname.">")
  silent q!
  call delete(tmpfile)

  " convert the strings-of-numbers into numbers
  let srcid       = srcid       + 0
  let latestsrcid = latestsrcid + 0
"  call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">")

  " has the plugin's most-recent srcid increased, which indicates that it has been updated
  if latestsrcid > srcid
"   call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">")

   let s:downloads= s:downloads + 1
   if sname == bufname("%")
    " GetLatestVimScript has to be careful about downloading itself
    let sname= "NEW_".sname
   endif

   " -----------------------------------------------------------------------------
   " the plugin has been updated since we last obtained it, so download a new copy
   " -----------------------------------------------------------------------------
"   call Decho(".downloading new <".sname.">")
   echomsg ".downloading new <".sname.">"
   if has("win32") || has("win16") || has("win95")
"    call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
    new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)|q
   else
"    call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='))
    exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=').latestsrcid
   endif

   " --------------------------------------------------------------------------
   " AutoInstall: only if doautoinstall has been requested by the plugin itself
   " --------------------------------------------------------------------------
"   call Decho("checking if plugin requested autoinstall: doautoinstall=".doautoinstall)
   if doautoinstall
"    call Decho(" ")
"    call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
    if filereadable(sname)
"     call Decho("<".sname."> is readable")
"     call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall))
     exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)
     let curdir    = fnameescape(substitute(getcwd(),'\','/','ge'))
     let installdir= curdir."/Installed"
     if !isdirectory(installdir)
      call mkdir(installdir)
     endif
"     call Decho("curdir<".curdir."> installdir<".installdir.">")
"     call Decho("exe cd ".fnameescape(s:autoinstall))
     exe "cd ".fnameescape(s:autoinstall)

     " determine target directory for moves
     let firstdir= substitute(&rtp,',.*$','','')
     let pname   = substitute(sname,'\..*','.vim','')
"     call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?")
     if filereadable(firstdir.'/AsNeeded/'.pname)
      let tgtdir= "AsNeeded"
     else
      let tgtdir= "plugin"
     endif
"     call Decho("tgtdir<".tgtdir.">  pname<".pname.">")
     
     " decompress
     if sname =~ '\.bz2$'
"      call Decho("decompress: attempt to bunzip2 ".sname)
      exe "sil !bunzip2 ".shellescape(sname)
      let sname= substitute(sname,'\.bz2$','','')
"      call Decho("decompress: new sname<".sname."> after bunzip2")
     elseif sname =~ '\.gz$'
"      call Decho("decompress: attempt to gunzip ".sname)
      exe "sil !gunzip ".shellescape(sname)
      let sname= substitute(sname,'\.gz$','','')
"      call Decho("decompress: new sname<".sname."> after gunzip")
     elseif sname =~ '\.xz$'
"      call Decho("decompress: attempt to unxz ".sname)
      exe "sil !unxz ".shellescape(sname)
      let sname= substitute(sname,'\.xz$','','')
"      call Decho("decompress: new sname<".sname."> after unxz")
     else
"      call Decho("no decompression needed")
     endif
     
     " distribute archive(.zip, .tar, .vba, ...) contents
     if sname =~ '\.zip$'
"      call Decho("dearchive: attempt to unzip ".sname)
      exe "silent !unzip -o ".shellescape(sname)
     elseif sname =~ '\.tar$'
"      call Decho("dearchive: attempt to untar ".sname)
      exe "silent !tar -xvf ".shellescape(sname)
     elseif sname =~ '\.tgz$'
"      call Decho("dearchive: attempt to untar+gunzip ".sname)
      exe "silent !tar -zxvf ".shellescape(sname)
     elseif sname =~ '\.taz$'
"      call Decho("dearchive: attempt to untar+uncompress ".sname)
      exe "silent !tar -Zxvf ".shellescape(sname)
     elseif sname =~ '\.tbz$'
"      call Decho("dearchive: attempt to untar+bunzip2 ".sname)
      exe "silent !tar -jxvf ".shellescape(sname)
     elseif sname =~ '\.txz$'
"      call Decho("dearchive: attempt to untar+xz ".sname)
      exe "silent !tar -Jxvf ".shellescape(sname)
     elseif sname =~ '\.vba$'
"      call Decho("dearchive: attempt to handle a vimball: ".sname)
      silent 1split
      if exists("g:vimball_home")
       let oldvimballhome= g:vimball_home
      endif
      let g:vimball_home= s:autoinstall
      exe "silent e ".fnameescape(sname)
      silent so %
      silent q
      if exists("oldvimballhome")
       let g:vimball_home= oldvimballhome
      else
       unlet g:vimball_home
      endif
     else
"      call Decho("no dearchiving needed")
     endif
     
     " ---------------------------------------------
     " move plugin to plugin/ or AsNeeded/ directory
     " ---------------------------------------------
     if sname =~ '.vim$'
"      call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir)
      exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
     else
"      call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
      exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
     endif
     if tgtdir != "plugin"
"      call Decho("exe silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir)
      exe "silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir
     endif
     
     " helptags step
     let docdir= substitute(&rtp,',.*','','e')."/doc"
"     call Decho("helptags: docdir<".docdir.">")
     exe "helptags ".fnameescape(docdir)
     exe "cd ".fnameescape(curdir)
    endif
    if fname !~ ':AutoInstall:'
     let modline=scriptid." ".latestsrcid." :AutoInstall: ".fname.cmmnt
    else
     let modline=scriptid." ".latestsrcid." ".fname.cmmnt
    endif
   else
    let modline=scriptid." ".latestsrcid." ".fname.cmmnt
   endif

   " update the data in the <GetLatestVimScripts.dat> file
   call setline(line("."),modline)
"   call Decho("update data in ".expand("%")."#".line(".").": modline<".modline.">")
"  else " Decho
"   call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."], no need to update")
  endif

 " restore options
  let &t_ti = t_ti
  let &t_te = t_te
  let &rs   = rs
  let @a    = rega
"  call Dredir("BUFFER TEST (GetOneScript)","ls!")

"  call Dret("GetOneScript")
endfun

" ---------------------------------------------------------------------
" Restore Options: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo

" ---------------------------------------------------------------------
"  Modelines: {{{1
" vim: ts=8 sts=2 fdm=marker nowrap
PK�j�Z�!��JJvim80/autoload/dist/ft.vimnu�[���" Vim functions for file type detection
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Dec 05

" These functions are moved here from runtime/filetype.vim to make startup
" faster.

" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim

func dist#ft#Check_inp()
  if getline(1) =~ '^\*'
    setf abaqus
  else
    let n = 1
    if line("$") > 500
      let nmax = 500
    else
      let nmax = line("$")
    endif
    while n <= nmax
      if getline(n) =~? "^header surface data"
	setf trasys
	break
      endif
      let n = n + 1
    endwhile
  endif
endfunc

" This function checks for the kind of assembly that is wanted by the user, or
" can be detected from the first five lines of the file.
func dist#ft#FTasm()
  " make sure b:asmsyntax exists
  if !exists("b:asmsyntax")
    let b:asmsyntax = ""
  endif

  if b:asmsyntax == ""
    call dist#ft#FTasmsyntax()
  endif

  " if b:asmsyntax still isn't set, default to asmsyntax or GNU
  if b:asmsyntax == ""
    if exists("g:asmsyntax")
      let b:asmsyntax = g:asmsyntax
    else
      let b:asmsyntax = "asm"
    endif
  endif

  exe "setf " . fnameescape(b:asmsyntax)
endfunc

func dist#ft#FTasmsyntax()
  " see if file contains any asmsyntax=foo overrides. If so, change
  " b:asmsyntax appropriately
  let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
	\" ".getline(5)." "
  let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
  if match != ''
    let b:asmsyntax = match
  elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
    let b:asmsyntax = "vmasm"
  endif
endfunc

" Check if one of the first five lines contains "VB_Name".  In that case it is
" probably a Visual Basic file.  Otherwise it's assumed to be "alt" filetype.
func dist#ft#FTVB(alt)
  if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
    setf vb
  else
    exe "setf " . a:alt
  endif
endfunc

func dist#ft#FTbtm()
  if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
    setf dosbatch
  else
    setf btm
  endif
endfunc

func dist#ft#BindzoneCheck(default)
  if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
    setf bindzone
  elseif a:default != ''
    exe 'setf ' . a:default
  endif
endfunc

func dist#ft#FTlpc()
  if exists("g:lpc_syntax_for_c")
    let lnum = 1
    while lnum <= 12
      if getline(lnum) =~# '^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)'
	setf lpc
	return
      endif
      let lnum = lnum + 1
    endwhile
  endif
  setf c
endfunc

func dist#ft#FTheader()
  if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
    if exists("g:c_syntax_for_h")
      setf objc
    else
      setf objcpp
    endif
  elseif exists("g:c_syntax_for_h")
    setf c
  elseif exists("g:ch_syntax_for_h")
    setf ch
  else
    setf cpp
  endif
endfunc

" This function checks if one of the first ten lines start with a '@'.  In
" that case it is probably a change file.
" If the first line starts with # or ! it's probably a ch file.
" If a line has "main", "include", "//" ir "/*" it's probably ch.
" Otherwise CHILL is assumed.
func dist#ft#FTchange()
  let lnum = 1
  while lnum <= 10
    if getline(lnum)[0] == '@'
      setf change
      return
    endif
    if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!')
      setf ch
      return
    endif
    if getline(lnum) =~ "MODULE"
      setf chill
      return
    endif
    if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
      setf ch
      return
    endif
    let lnum = lnum + 1
  endwhile
  setf chill
endfunc

func dist#ft#FTent()
  " This function checks for valid cl syntax in the first five lines.
  " Look for either an opening comment, '#', or a block start, '{".
  " If not found, assume SGML.
  let lnum = 1
  while lnum < 6
    let line = getline(lnum)
    if line =~ '^\s*[#{]'
      setf cl
      return
    elseif line !~ '^\s*$'
      " Not a blank line, not a comment, and not a block start,
      " so doesn't look like valid cl code.
      break
    endif
    let lnum = lnum + 1
  endw
  setf dtd
endfunc

func dist#ft#EuphoriaCheck()
  if exists('g:filetype_euphoria')
    exe 'setf ' . g:filetype_euphoria
  else
    setf euphoria3
  endif
endfunc

func dist#ft#DtraceCheck()
  let lines = getline(1, min([line("$"), 100]))
  if match(lines, '^module\>\|^import\>') > -1
    " D files often start with a module and/or import statement.
    setf d
  elseif match(lines, '^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1
    setf dtrace
  else
    setf d
  endif
endfunc

func dist#ft#FTe()
  if exists('g:filetype_euphoria')
    exe 'setf ' . g:filetype_euphoria
  else
    let n = 1
    while n < 100 && n < line("$")
      if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
	setf specman
	return
      endif
      let n = n + 1
    endwhile
    setf eiffel
  endif
endfunc

" Distinguish between HTML, XHTML and Django
func dist#ft#FThtml()
  let n = 1
  while n < 10 && n < line("$")
    if getline(n) =~ '\<DTD\s\+XHTML\s'
      setf xhtml
      return
    endif
    if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
      setf htmldjango
      return
    endif
    let n = n + 1
  endwhile
  setf html
endfunc

" Distinguish between standard IDL and MS-IDL
func dist#ft#FTidl()
  let n = 1
  while n < 50 && n < line("$")
    if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
      setf msidl
      return
    endif
    let n = n + 1
  endwhile
  setf idl
endfunc

" Distinguish between "default" and Cproto prototype file. */
func dist#ft#ProtoCheck(default)
  " Cproto files have a comment in the first line and a function prototype in
  " the second line, it always ends in ";".  Indent files may also have
  " comments, thus we can't match comments to see the difference.
  " IDL files can have a single ';' in the second line, require at least one
  " chacter before the ';'.
  if getline(2) =~ '.;$'
    setf cpp
  else
    exe 'setf ' . a:default
  endif
endfunc

func dist#ft#FTm()
  let n = 1
  let saw_comment = 0 " Whether we've seen a multiline comment leader.
  while n < 100
    let line = getline(n)
    if line =~ '^\s*/\*'
      " /* ... */ is a comment in Objective C and Murphi, so we can't conclude
      " it's either of them yet, but track this as a hint in case we don't see
      " anything more definitive.
      let saw_comment = 1
    endif
    if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
      setf objc
      return
    endif
    if line =~ '^\s*%'
      setf matlab
      return
    endif
    if line =~ '^\s*(\*'
      setf mma
      return
    endif
    if line =~ '^\c\s*\(\(type\|var\)\>\|--\)'
      setf murphi
      return
    endif
    let n = n + 1
  endwhile

  if saw_comment
    " We didn't see anything definitive, but this looks like either Objective C
    " or Murphi based on the comment leader. Assume the former as it is more
    " common.
    setf objc
  elseif exists("g:filetype_m")
    " Use user specified default filetype for .m
    exe "setf " . g:filetype_m
  else
    " Default is matlab
    setf matlab
  endif
endfunc

func dist#ft#FTmms()
  let n = 1
  while n < 10
    let line = getline(n)
    if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
      setf mmix
      return
    endif
    if line =~ '^\s*#'
      setf make
      return
    endif
    let n = n + 1
  endwhile
  setf mmix
endfunc

" This function checks if one of the first five lines start with a dot.  In
" that case it is probably an nroff file: 'filetype' is set and 1 is returned.
func dist#ft#FTnroff()
  if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] . getline(5)[0] =~ '\.'
    setf nroff
    return 1
  endif
  return 0
endfunc

func dist#ft#FTmm()
  let n = 1
  while n < 10
    let line = getline(n)
    if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
      setf objcpp
      return
    endif
    let n = n + 1
  endwhile
  setf nroff
endfunc

func dist#ft#FTpl()
  if exists("g:filetype_pl")
    exe "setf " . g:filetype_pl
  else
    " recognize Prolog by specific text in the first non-empty line
    " require a blank after the '%' because Perl uses "%list" and "%translate"
    let l = getline(nextnonblank(1))
    if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
      setf prolog
    else
      setf perl
    endif
  endif
endfunc

func dist#ft#FTinc()
  if exists("g:filetype_inc")
    exe "setf " . g:filetype_inc
  else
    let lines = getline(1).getline(2).getline(3)
    if lines =~? "perlscript"
      setf aspperl
    elseif lines =~ "<%"
      setf aspvbs
    elseif lines =~ "<?"
      setf php
    else
      call dist#ft#FTasmsyntax()
      if exists("b:asmsyntax")
	exe "setf " . fnameescape(b:asmsyntax)
      else
	setf pov
      endif
    endif
  endif
endfunc

func dist#ft#FTprogress_cweb()
  if exists("g:filetype_w")
    exe "setf " . g:filetype_w
    return
  endif
  if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE'
    setf progress
  else
    setf cweb
  endif
endfunc

func dist#ft#FTprogress_asm()
  if exists("g:filetype_i")
    exe "setf " . g:filetype_i
    return
  endif
  " This function checks for an assembly comment the first ten lines.
  " If not found, assume Progress.
  let lnum = 1
  while lnum <= 10 && lnum < line('$')
    let line = getline(lnum)
    if line =~ '^\s*;' || line =~ '^\*'
      call dist#ft#FTasm()
      return
    elseif line !~ '^\s*$' || line =~ '^/\*'
      " Not an empty line: Doesn't look like valid assembly code.
      " Or it looks like a Progress /* comment
      break
    endif
    let lnum = lnum + 1
  endw
  setf progress
endfunc

func dist#ft#FTprogress_pascal()
  if exists("g:filetype_p")
    exe "setf " . g:filetype_p
    return
  endif
  " This function checks for valid Pascal syntax in the first ten lines.
  " Look for either an opening comment or a program start.
  " If not found, assume Progress.
  let lnum = 1
  while lnum <= 10 && lnum < line('$')
    let line = getline(lnum)
    if line =~ '^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
	\ || line =~ '^\s*{' || line =~ '^\s*(\*'
      setf pascal
      return
    elseif line !~ '^\s*$' || line =~ '^/\*'
      " Not an empty line: Doesn't look like valid Pascal code.
      " Or it looks like a Progress /* comment
      break
    endif
    let lnum = lnum + 1
  endw
  setf progress
endfunc

func dist#ft#FTr()
  let max = line("$") > 50 ? 50 : line("$")

  for n in range(1, max)
    " Rebol is easy to recognize, check for that first
    if getline(n) =~? '\<REBOL\>'
      setf rebol
      return
    endif
  endfor

  for n in range(1, max)
    " R has # comments
    if getline(n) =~ '^\s*#'
      setf r
      return
    endif
    " Rexx has /* comments */
    if getline(n) =~ '^\s*/\*'
      setf rexx
      return
    endif
  endfor

  " Nothing recognized, use user default or assume Rexx
  if exists("g:filetype_r")
    exe "setf " . g:filetype_r
  else
    " Rexx used to be the default, but R appears to be much more popular.
    setf r
  endif
endfunc

func dist#ft#McSetf()
  " Rely on the file to start with a comment.
  " MS message text files use ';', Sendmail files use '#' or 'dnl'
  for lnum in range(1, min([line("$"), 20]))
    let line = getline(lnum)
    if line =~ '^\s*\(#\|dnl\)'
      setf m4  " Sendmail .mc file
      return
    elseif line =~ '^\s*;'
      setf msmessages  " MS Message text file
      return
    endif
  endfor
  setf m4  " Default: Sendmail .mc file
endfunc

" Called from filetype.vim and scripts.vim.
func dist#ft#SetFileTypeSH(name)
  if expand("<amatch>") =~ g:ft_ignore_pat
    return
  endif
  if a:name =~ '\<csh\>'
    " Some .sh scripts contain #!/bin/csh.
    call dist#ft#SetFileTypeShell("csh")
    return
  elseif a:name =~ '\<tcsh\>'
    " Some .sh scripts contain #!/bin/tcsh.
    call dist#ft#SetFileTypeShell("tcsh")
    return
  elseif a:name =~ '\<zsh\>'
    " Some .sh scripts contain #!/bin/zsh.
    call dist#ft#SetFileTypeShell("zsh")
    return
  elseif a:name =~ '\<ksh\>'
    let b:is_kornshell = 1
    if exists("b:is_bash")
      unlet b:is_bash
    endif
    if exists("b:is_sh")
      unlet b:is_sh
    endif
  elseif exists("g:bash_is_sh") || a:name =~ '\<bash\>' || a:name =~ '\<bash2\>'
    let b:is_bash = 1
    if exists("b:is_kornshell")
      unlet b:is_kornshell
    endif
    if exists("b:is_sh")
      unlet b:is_sh
    endif
  elseif a:name =~ '\<sh\>'
    let b:is_sh = 1
    if exists("b:is_kornshell")
      unlet b:is_kornshell
    endif
    if exists("b:is_bash")
      unlet b:is_bash
    endif
  endif
  call dist#ft#SetFileTypeShell("sh")
endfunc

" For shell-like file types, check for an "exec" command hidden in a comment,
" as used for Tcl.
" Also called from scripts.vim, thus can't be local to this script.
func dist#ft#SetFileTypeShell(name)
  if expand("<amatch>") =~ g:ft_ignore_pat
    return
  endif
  let l = 2
  while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
    " Skip empty and comment lines.
    let l = l + 1
  endwhile
  if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
    " Found an "exec" line after a comment with continuation
    let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
    if n =~ '\<tclsh\|\<wish'
      setf tcl
      return
    endif
  endif
  exe "setf " . a:name
endfunc

func dist#ft#CSH()
  if exists("g:filetype_csh")
    call dist#ft#SetFileTypeShell(g:filetype_csh)
  elseif &shell =~ "tcsh"
    call dist#ft#SetFileTypeShell("tcsh")
  else
    call dist#ft#SetFileTypeShell("csh")
  endif
endfunc

let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
func dist#ft#FTRules()
  let path = expand('<amatch>:p')
  if path =~ '^/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
    setf udevrules
    return
  endif
  if path =~ '^/etc/ufw/'
    setf conf  " Better than hog
    return
  endif
  if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d'
    setf javascript
    return
  endif
  try
    let config_lines = readfile('/etc/udev/udev.conf')
  catch /^Vim\%((\a\+)\)\=:E484/
    setf hog
    return
  endtry
  let dir = expand('<amatch>:p:h')
  for line in config_lines
    if line =~ s:ft_rules_udev_rules_pattern
      let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
      if dir == udev_rules
	setf udevrules
      endif
      break
    endif
  endfor
  setf hog
endfunc

func dist#ft#SQL()
  if exists("g:filetype_sql")
    exe "setf " . g:filetype_sql
  else
    setf sql
  endif
endfunc

" If the file has an extension of 't' and is in a directory 't' or 'xt' then
" it is almost certainly a Perl test file.
" If the first line starts with '#' and contains 'perl' it's probably a Perl
" file.
" (Slow test) If a file contains a 'use' statement then it is almost certainly
" a Perl file.
func dist#ft#FTperl()
  let dirname = expand("%:p:h:t")
  if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
    setf perl
    return 1
  endif
  if getline(1)[0] == '#' && getline(1) =~ 'perl'
    setf perl
    return 1
  endif
  let save_cursor = getpos('.')
  call cursor(1,1)
  let has_use = search('^use\s\s*\k', 'c', 30)
  call setpos('.', save_cursor)
  if has_use
    setf perl
    return 1
  endif
  return 0
endfunc

" Choose context, plaintex, or tex (LaTeX) based on these rules:
" 1. Check the first line of the file for "%&<format>".
" 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
" 3. Default to "latex" or to g:tex_flavor, can be set in user's vimrc.
func dist#ft#FTtex()
  let firstline = getline(1)
  if firstline =~ '^%&\s*\a\+'
    let format = tolower(matchstr(firstline, '\a\+'))
    let format = substitute(format, 'pdf', '', '')
    if format == 'tex'
      let format = 'latex'
    elseif format == 'plaintex'
      let format = 'plain'
    endif
  elseif expand('%') =~ 'tex/context/.*/.*.tex'
    let format = 'context'
  else
    " Default value, may be changed later:
    let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
    " Save position, go to the top of the file, find first non-comment line.
    let save_cursor = getpos('.')
    call cursor(1,1)
    let firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
    if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword.
      let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>'
      let cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>'
      let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)',
			      \ 'cnp', firstNC + 1000)
      if kwline == 1	" lpat matched
	let format = 'latex'
      elseif kwline == 2	" cpat matched
	let format = 'context'
      endif		" If neither matched, keep default set above.
      " let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000)
      " let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000)
      " if cline > 0
      "   let format = 'context'
      " endif
      " if lline > 0 && (cline == 0 || cline > lline)
      "   let format = 'tex'
      " endif
    endif " firstNC
    call setpos('.', save_cursor)
  endif " firstline =~ '^%&\s*\a\+'

  " Translation from formats to file types.  TODO:  add AMSTeX, RevTex, others?
  if format == 'plain'
    setf plaintex
  elseif format == 'context'
    setf context
  else " probably LaTeX
    setf tex
  endif
  return
endfunc

func dist#ft#FTxml()
  let n = 1
  while n < 100 && n < line("$")
    let line = getline(n)
    " DocBook 4 or DocBook 5.
    let is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
    let is_docbook5 = line =~ ' xmlns="http://docbook.org/ns/docbook"'
    if is_docbook4 || is_docbook5
      let b:docbk_type = "xml"
      if is_docbook5
	let b:docbk_ver = 5
      else
	let b:docbk_ver = 4
      endif
      setf docbk
      return
    endif
    if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"'
      setf xbl
      return
    endif
    let n += 1
  endwhile
  setf xml
endfunc

func dist#ft#FTy()
  let n = 1
  while n < 100 && n < line("$")
    let line = getline(n)
    if line =~ '^\s*%'
      setf yacc
      return
    endif
    if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
      setf racc
      return
    endif
    let n = n + 1
  endwhile
  setf yacc
endfunc

func dist#ft#Redif()
  let lnum = 1
  while lnum <= 5 && lnum < line('$')
    if getline(lnum) =~ "^\ctemplate-type:"
      setf redif
      return
    endif
    let lnum = lnum + 1
  endwhile
endfunc


" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��CTCT"vim80/autoload/python3complete.vimnu�[���"python3complete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
" Last Updated: 18 Jun 2009 (small fix 2015 Sep 14 from Debian)
"
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
"
" Changes
" TODO:
" 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation
" Complete basic syntax along with import statements
"   i.e. "import url<c-x,c-o>"
" Continue parsing on invalid line??
"
" v 0.9
"   * Fixed docstring parsing for classes and functions
"   * Fixed parsing of *args and **kwargs type arguments
"   * Better function param parsing to handle things like tuples and
"     lambda defaults args
"
" v 0.8
"   * Fixed an issue where the FIRST assignment was always used instead of
"   using a subsequent assignment for a variable
"   * Fixed a scoping issue when working inside a parameterless function
"
"
" v 0.7
"   * Fixed function list sorting (_ and __ at the bottom)
"   * Removed newline removal from docs.  It appears vim handles these better in
"   recent patches
"
" v 0.6:
"   * Fixed argument completion
"   * Removed the 'kind' completions, as they are better indicated
"   with real syntax
"   * Added tuple assignment parsing (whoops, that was forgotten)
"   * Fixed import handling when flattening scope
"
" v 0.5:
" Yeah, I skipped a version number - 0.4 was never public.
"  It was a bugfix version on top of 0.3.  This is a complete
"  rewrite.
"

if !has('python3')
    echo "Error: Required vim compiled with +python3"
    finish
endif

function! python3complete#Complete(findstart, base)
    "findstart = 1 when we need to get the text length
    if a:findstart == 1
        let line = getline('.')
        let idx = col('.')
        while idx > 0
            let idx -= 1
            let c = line[idx]
            if c =~ '\w'
                continue
            elseif ! c =~ '\.'
                let idx = -1
                break
            else
                break
            endif
        endwhile

        return idx
    "findstart = 0 when we need to return the list of completions
    else
        "vim no longer moves the cursor upon completion... fix that
        let line = getline('.')
        let idx = col('.')
        let cword = ''
        while idx > 0
            let idx -= 1
            let c = line[idx]
            if c =~ '\w' || c =~ '\.'
                let cword = c . cword
                continue
            elseif strlen(cword) > 0 || idx == 0
                break
            endif
        endwhile
        execute "py3 vimpy3complete('" . cword . "', '" . a:base . "')"
        return g:python3complete_completions
    endif
endfunction

function! s:DefPython()
py3 << PYTHONEOF
import sys, tokenize, io, types
from token import NAME, DEDENT, NEWLINE, STRING

debugstmts=[]
def dbg(s): debugstmts.append(s)
def showdbg():
    for d in debugstmts: print("DBG: %s " % d)

def vimpy3complete(context,match):
    global debugstmts
    debugstmts = []
    try:
        import vim
        cmpl = Completer()
        cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')"))
        all = cmpl.get_completions(context,match)
        all.sort(key=lambda x:x['abbr'].replace('_','z'))
        dictstr = '['
        # have to do this for double quoting
        for cmpl in all:
            dictstr += '{'
            for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x])
            dictstr += '"icase":0},'
        if dictstr[-1] == ',': dictstr = dictstr[:-1]
        dictstr += ']'
        #dbg("dict: %s" % dictstr)
        vim.command("silent let g:python3complete_completions = %s" % dictstr)
        #dbg("Completion dict:\n%s" % all)
    except vim.error:
        dbg("VIM Error: %s" % vim.error)

class Completer(object):
    def __init__(self):
       self.compldict = {}
       self.parser = PyParser()

    def evalsource(self,text,line=0):
        sc = self.parser.parse(text,line)
        src = sc.get_code()
        dbg("source: %s" % src)
        try: exec(src,self.compldict)
        except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
        for l in sc.locals:
            try: exec(l,self.compldict)
            except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))

    def _cleanstr(self,doc):
        return doc.replace('"',' ').replace("'",' ')

    def get_arguments(self,func_obj):
        def _ctor(class_ob):
            try: return class_ob.__init__
            except AttributeError:
                for base in class_ob.__bases__:
                    rc = _ctor(base)
                    if rc is not None: return rc
            return None

        arg_offset = 1
        if type(func_obj) == type: func_obj = _ctor(func_obj)
        elif type(func_obj) == types.MethodType: arg_offset = 1
        else: arg_offset = 0

        arg_text=''
        if type(func_obj) in [types.FunctionType, types.LambdaType,types.MethodType]:
            try:
                cd = func_obj.__code__
                real_args = cd.co_varnames[arg_offset:cd.co_argcount]
                defaults = func_obj.__defaults__ or []
                defaults = ["=%s" % name for name in defaults]
                defaults = [""] * (len(real_args)-len(defaults)) + defaults
                items = [a+d for a,d in zip(real_args,defaults)]
                if func_obj.__code__.co_flags & 0x4:
                    items.append("...")
                if func_obj.__code__.co_flags & 0x8:
                    items.append("***")
                arg_text = (','.join(items)) + ')'
            except:
                dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
                pass
        if len(arg_text) == 0:
            # The doc string sometimes contains the function signature
            #  this works for alot of C modules that are part of the
            #  standard library
            doc = func_obj.__doc__
            if doc:
                doc = doc.lstrip()
                pos = doc.find('\n')
                if pos > 0:
                    sigline = doc[:pos]
                    lidx = sigline.find('(')
                    ridx = sigline.find(')')
                    if lidx > 0 and ridx > 0:
                        arg_text = sigline[lidx+1:ridx] + ')'
        if len(arg_text) == 0: arg_text = ')'
        return arg_text

    def get_completions(self,context,match):
        #dbg("get_completions('%s','%s')" % (context,match))
        stmt = ''
        if context: stmt += str(context)
        if match: stmt += str(match)
        try:
            result = None
            all = {}
            ridx = stmt.rfind('.')
            if len(stmt) > 0 and stmt[-1] == '(':
                result = eval(_sanitize(stmt[:-1]), self.compldict)
                doc = result.__doc__
                if doc is None: doc = ''
                args = self.get_arguments(result)
                return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
            elif ridx == -1:
                match = stmt
                all = self.compldict
            else:
                match = stmt[ridx+1:]
                stmt = _sanitize(stmt[:ridx])
                result = eval(stmt, self.compldict)
                all = dir(result)

            dbg("completing: stmt:%s" % stmt)
            completions = []

            try: maindoc = result.__doc__
            except: maindoc = ' '
            if maindoc is None: maindoc = ' '
            for m in all:
                if m == "_PyCmplNoType": continue #this is internal
                try:
                    dbg('possible completion: %s' % m)
                    if m.find(match) == 0:
                        if result is None: inst = all[m]
                        else: inst = getattr(result,m)
                        try: doc = inst.__doc__
                        except: doc = maindoc
                        typestr = str(inst)
                        if doc is None or doc == '': doc = maindoc

                        wrd = m[len(match):]
                        c = {'word':wrd, 'abbr':m,  'info':self._cleanstr(doc)}
                        if "function" in typestr:
                            c['word'] += '('
                            c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
                        elif "method" in typestr:
                            c['word'] += '('
                            c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
                        elif "module" in typestr:
                            c['word'] += '.'
                        elif "type" in typestr:
                            c['word'] += '('
                            c['abbr'] += '('
                        completions.append(c)
                except:
                    i = sys.exc_info()
                    dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
            return completions
        except:
            i = sys.exc_info()
            dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
            return []

class Scope(object):
    def __init__(self,name,indent,docstr=''):
        self.subscopes = []
        self.docstr = docstr
        self.locals = []
        self.parent = None
        self.name = name
        self.indent = indent

    def add(self,sub):
        #print('push scope: [%s@%s]' % (sub.name,sub.indent))
        sub.parent = self
        self.subscopes.append(sub)
        return sub

    def doc(self,str):
        """ Clean up a docstring """
        d = str.replace('\n',' ')
        d = d.replace('\t',' ')
        while d.find('  ') > -1: d = d.replace('  ',' ')
        while d[0] in '"\'\t ': d = d[1:]
        while d[-1] in '"\'\t ': d = d[:-1]
        dbg("Scope(%s)::docstr = %s" % (self,d))
        self.docstr = d

    def local(self,loc):
        self._checkexisting(loc)
        self.locals.append(loc)

    def copy_decl(self,indent=0):
        """ Copy a scope's declaration only, at the specified indent level - not local variables """
        return Scope(self.name,indent,self.docstr)

    def _checkexisting(self,test):
        "Convienance function... keep out duplicates"
        if test.find('=') > -1:
            var = test.split('=')[0].strip()
            for l in self.locals:
                if l.find('=') > -1 and var == l.split('=')[0].strip():
                    self.locals.remove(l)

    def get_code(self):
        str = ""
        if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
        for l in self.locals:
            if l.startswith('import'): str += l+'\n'
        str += 'class _PyCmplNoType:\n    def __getattr__(self,name):\n        return None\n'
        for sub in self.subscopes:
            str += sub.get_code()
        for l in self.locals:
            if not l.startswith('import'): str += l+'\n'

        return str

    def pop(self,indent):
        #print('pop scope: [%s] to [%s]' % (self.indent,indent))
        outer = self
        while outer.parent != None and outer.indent >= indent:
            outer = outer.parent
        return outer

    def currentindent(self):
        #print('parse current indent: %s' % self.indent)
        return '    '*self.indent

    def childindent(self):
        #print('parse child indent: [%s]' % (self.indent+1))
        return '    '*(self.indent+1)

class Class(Scope):
    def __init__(self, name, supers, indent, docstr=''):
        Scope.__init__(self,name,indent, docstr)
        self.supers = supers
    def copy_decl(self,indent=0):
        c = Class(self.name,self.supers,indent, self.docstr)
        for s in self.subscopes:
            c.add(s.copy_decl(indent+1))
        return c
    def get_code(self):
        str = '%sclass %s' % (self.currentindent(),self.name)
        if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers)
        str += ':\n'
        if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
        if len(self.subscopes) > 0:
            for s in self.subscopes: str += s.get_code()
        else:
            str += '%spass\n' % self.childindent()
        return str


class Function(Scope):
    def __init__(self, name, params, indent, docstr=''):
        Scope.__init__(self,name,indent, docstr)
        self.params = params
    def copy_decl(self,indent=0):
        return Function(self.name,self.params,indent, self.docstr)
    def get_code(self):
        str = "%sdef %s(%s):\n" % \
            (self.currentindent(),self.name,','.join(self.params))
        if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
        str += "%spass\n" % self.childindent()
        return str

class PyParser:
    def __init__(self):
        self.top = Scope('global',0)
        self.scope = self.top
        self.parserline = 0

    def _parsedotname(self,pre=None):
        #returns (dottedname, nexttoken)
        name = []
        if pre is None:
            tokentype, token, indent = self.donext()
            if tokentype != NAME and token != '*':
                return ('', token)
        else: token = pre
        name.append(token)
        while True:
            tokentype, token, indent = self.donext()
            if token != '.': break
            tokentype, token, indent = self.donext()
            if tokentype != NAME: break
            name.append(token)
        return (".".join(name), token)

    def _parseimportlist(self):
        imports = []
        while True:
            name, token = self._parsedotname()
            if not name: break
            name2 = ''
            if token == 'as': name2, token = self._parsedotname()
            imports.append((name, name2))
            while token != "," and "\n" not in token:
                tokentype, token, indent = self.donext()
            if token != ",": break
        return imports

    def _parenparse(self):
        name = ''
        names = []
        level = 1
        while True:
            tokentype, token, indent = self.donext()
            if token in (')', ',') and level == 1:
                if '=' not in name: name = name.replace(' ', '')
                names.append(name.strip())
                name = ''
            if token == '(':
                level += 1
                name += "("
            elif token == ')':
                level -= 1
                if level == 0: break
                else: name += ")"
            elif token == ',' and level == 1:
                pass
            else:
                name += "%s " % str(token)
        return names

    def _parsefunction(self,indent):
        self.scope=self.scope.pop(indent)
        tokentype, fname, ind = self.donext()
        if tokentype != NAME: return None

        tokentype, open, ind = self.donext()
        if open != '(': return None
        params=self._parenparse()

        tokentype, colon, ind = self.donext()
        if colon != ':': return None

        return Function(fname,params,indent)

    def _parseclass(self,indent):
        self.scope=self.scope.pop(indent)
        tokentype, cname, ind = self.donext()
        if tokentype != NAME: return None

        super = []
        tokentype, thenext, ind = self.donext()
        if thenext == '(':
            super=self._parenparse()
        elif thenext != ':': return None

        return Class(cname,super,indent)

    def _parseassignment(self):
        assign=''
        tokentype, token, indent = self.donext()
        if tokentype == tokenize.STRING or token == 'str':  
            return '""'
        elif token == '(' or token == 'tuple':
            return '()'
        elif token == '[' or token == 'list':
            return '[]'
        elif token == '{' or token == 'dict':
            return '{}'
        elif tokentype == tokenize.NUMBER:
            return '0'
        elif token == 'open' or token == 'file':
            return 'file'
        elif token == 'None':
            return '_PyCmplNoType()'
        elif token == 'type':
            return 'type(_PyCmplNoType)' #only for method resolution
        else:
            assign += token
            level = 0
            while True:
                tokentype, token, indent = self.donext()
                if token in ('(','{','['):
                    level += 1
                elif token in (']','}',')'):
                    level -= 1
                    if level == 0: break
                elif level == 0:
                    if token in (';','\n'): break
                    assign += token
        return "%s" % assign

    def donext(self):
        type, token, (lineno, indent), end, self.parserline = next(self.gen)
        if lineno == self.curline:
            #print('line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name))
            self.currentscope = self.scope
        return (type, token, indent)

    def _adjustvisibility(self):
        newscope = Scope('result',0)
        scp = self.currentscope
        while scp != None:
            if type(scp) == Function:
                slice = 0
                #Handle 'self' params
                if scp.parent != None and type(scp.parent) == Class:
                    slice = 1
                    newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
                for p in scp.params[slice:]:
                    i = p.find('=')
                    if len(p) == 0: continue
                    pvar = ''
                    ptype = ''
                    if i == -1:
                        pvar = p
                        ptype = '_PyCmplNoType()'
                    else:
                        pvar = p[:i]
                        ptype = _sanitize(p[i+1:])
                    if pvar.startswith('**'):
                        pvar = pvar[2:]
                        ptype = '{}'
                    elif pvar.startswith('*'):
                        pvar = pvar[1:]
                        ptype = '[]'

                    newscope.local('%s = %s' % (pvar,ptype))

            for s in scp.subscopes:
                ns = s.copy_decl(0)
                newscope.add(ns)
            for l in scp.locals: newscope.local(l)
            scp = scp.parent

        self.currentscope = newscope
        return self.currentscope

    #p.parse(vim.current.buffer[:],vim.eval("line('.')"))
    def parse(self,text,curline=0):
        self.curline = int(curline)
        buf = io.StringIO(''.join(text) + '\n')
        self.gen = tokenize.generate_tokens(buf.readline)
        self.currentscope = self.scope

        try:
            freshscope=True
            while True:
                tokentype, token, indent = self.donext()
                #dbg( 'main: token=[%s] indent=[%s]' % (token,indent))

                if tokentype == DEDENT or token == "pass":
                    self.scope = self.scope.pop(indent)
                elif token == 'def':
                    func = self._parsefunction(indent)
                    if func is None:
                        print("function: syntax error...")
                        continue
                    dbg("new scope: function")
                    freshscope = True
                    self.scope = self.scope.add(func)
                elif token == 'class':
                    cls = self._parseclass(indent)
                    if cls is None:
                        print("class: syntax error...")
                        continue
                    freshscope = True
                    dbg("new scope: class")
                    self.scope = self.scope.add(cls)
                    
                elif token == 'import':
                    imports = self._parseimportlist()
                    for mod, alias in imports:
                        loc = "import %s" % mod
                        if len(alias) > 0: loc += " as %s" % alias
                        self.scope.local(loc)
                    freshscope = False
                elif token == 'from':
                    mod, token = self._parsedotname()
                    if not mod or token != "import":
                        print("from: syntax error...")
                        continue
                    names = self._parseimportlist()
                    for name, alias in names:
                        loc = "from %s import %s" % (mod,name)
                        if len(alias) > 0: loc += " as %s" % alias
                        self.scope.local(loc)
                    freshscope = False
                elif tokentype == STRING:
                    if freshscope: self.scope.doc(token)
                elif tokentype == NAME:
                    name,token = self._parsedotname(token) 
                    if token == '=':
                        stmt = self._parseassignment()
                        dbg("parseassignment: %s = %s" % (name, stmt))
                        if stmt != None:
                            self.scope.local("%s = %s" % (name,stmt))
                    freshscope = False
        except StopIteration: #thrown on EOF
            pass
        except:
            dbg("parse error: %s, %s @ %s" %
                (sys.exc_info()[0], sys.exc_info()[1], self.parserline))
        return self._adjustvisibility()

def _sanitize(str):
    val = ''
    level = 0
    for c in str:
        if c in ('(','{','['):
            level += 1
        elif c in (']','}',')'):
            level -= 1
        elif level == 0:
            val += c
    return val

sys.path.extend(['.','..'])
PYTHONEOF
endfunction

call s:DefPython()
PK�j�Z@X�VVvim80/autoload/context.vimnu�[���" Language:           ConTeXt typesetting engine
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision:    2016 Oct 21

let s:keepcpo= &cpo
set cpo&vim

" Helper functions {{{
function! s:context_echo(message, mode)
  redraw
  echo "\r"
  execute 'echohl' a:mode
  echomsg '[ConTeXt]' a:message
  echohl None
endf

function! s:sh()
  return has('win32') || has('win64') || has('win16') || has('win95')
        \ ? ['cmd.exe', '/C']
        \ : ['/bin/sh', '-c']
endfunction

" For backward compatibility
if exists('*win_getid')

  function! s:win_getid()
    return win_getid()
  endf

  function! s:win_id2win(winid)
    return win_id2win(a:winid)
  endf

else

  function! s:win_getid()
    return winnr()
  endf

  function! s:win_id2win(winnr)
    return a:winnr
  endf

endif
" }}}

" ConTeXt jobs {{{
if has('job')

  let g:context_jobs = []

  " Print the status of ConTeXt jobs
  function! context#job_status()
    let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
    let l:n = len(l:jobs)
    call s:context_echo(
          \ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n)
          \ .' job'.(l:n == 1 ? '' : 's').' running'
          \ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'),
          \ 'ModeMsg')
  endfunction

  " Stop all ConTeXt jobs
  function! context#stop_jobs()
    let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
    for job in l:jobs
      call job_stop(job)
    endfor
    sleep 1
    let l:tmp = []
    for job in l:jobs
      if job_status(job) == "run"
        call add(l:tmp, job)
      endif
    endfor
    let g:context_jobs = l:tmp
    if empty(g:context_jobs)
      call s:context_echo('Done. No jobs running.', 'ModeMsg')
    else
      call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
    endif
  endfunction

  function! context#callback(path, job, status)
    if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case
      call remove(g:context_jobs, index(g:context_jobs, a:job))
    endif
    call s:callback(a:path, a:job, a:status)
  endfunction

  function! context#close_cb(channel)
    call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback
  endfunction

  function! s:typeset(path)
    call add(g:context_jobs,
          \ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), {
          \   'close_cb' : 'context#close_cb',
          \   'exit_cb'  : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
          \                         [a:path]),
          \   'in_io'    : 'null'
          \ }))
  endfunction

else " No jobs

  function! context#job_status()
    call s:context_echo('Not implemented', 'WarningMsg')
  endfunction!

  function! context#stop_jobs()
    call s:context_echo('Not implemented', 'WarningMsg')
  endfunction

  function! context#callback(path, job, status)
    call s:callback(a:path, a:job, a:status)
  endfunction

  function! s:typeset(path)
    execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))
    call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
          \ [a:path, 0, v:shell_error])
  endfunction

endif " has('job')

function! s:callback(path, job, status) abort
  if a:status < 0 " Assume the job was terminated
    return
  endif
  " Get info about the current window
  let l:winid = s:win_getid()             " Save window id
  let l:efm = &l:errorformat              " Save local errorformat
  let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
  " Set errorformat to parse ConTeXt errors
  execute 'setl efm=' . escape(b:context_errorformat, ' ')
  try " Set cwd to expand error file correctly
    execute 'lcd' fnameescape(fnamemodify(a:path, ':h'))
  catch /.*/
    execute 'setl efm=' . escape(l:efm, ' ')
    throw v:exception
  endtry
  try
    execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log')
    botright cwindow
  finally " Restore cwd and errorformat
    execute s:win_id2win(l:winid) . 'wincmd w'
    execute 'lcd ' . fnameescape(l:cwd)
    execute 'setl efm=' . escape(l:efm, ' ')
  endtry
  if a:status == 0
    call s:context_echo('Success!', 'ModeMsg')
  else
    call s:context_echo('There are errors. ', 'ErrorMsg')
  endif
endfunction

function! context#command()
  return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
        \ . ' --script context --autogenerate --nonstopmode'
        \ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
        \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
endfunction

" Accepts an optional path (useful for big projects, when the file you are
" editing is not the project's root document). If no argument is given, uses
" the path of the current buffer.
function! context#typeset(...) abort
  let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p")
  let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
  call s:context_echo('Typesetting...',  'ModeMsg')
  execute 'lcd' fnameescape(fnamemodify(l:path, ":h"))
  try
    call s:typeset(l:path)
  finally " Restore local working directory
    execute 'lcd ' . fnameescape(l:cwd)
  endtry
endfunction!
"}}}

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: sw=2 fdm=marker
PK�j�Z�f��vim80/autoload/decada.vimnu�[���"------------------------------------------------------------------------------
"  Description: Vim Ada/Dec Ada compiler file
"     Language: Ada (Dec Ada)
"          $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
"    Copyright: Copyright (C) 2006 Martin Krischik
"   Maintainer:	Martin Krischik <krischik@users.sourceforge.net>
"      $Author: krischik $
"        $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6      
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
"      History: 21.07.2006 MK New Dec Ada
"               15.10.2006 MK Bram's suggestion for runtime integration
"               05.11.2006 MK Bram suggested not to use include protection for
"                             autoload
"		05.11.2006 MK Bram suggested to save on spaces
"    Help Page: compiler-decada
"------------------------------------------------------------------------------

if version < 700
   finish
endif

function decada#Unit_Name () dict				     " {{{1
    "	Convert filename into acs unit:
    "	    1:  remove the file extenstion.
    "	    2:  replace all double '_' or '-' with an dot (which denotes a separate)
    "	    3:  remove a trailing '_' (wich denotes a specification)
    return substitute (substitute (expand ("%:t:r"), '__\|-', ".", "g"), '_$', "", '')
endfunction decada#Unit_Name					     " }}}1

function decada#Make () dict					     " {{{1
    let l:make_prg   = substitute (g:self.Make_Command, '%<', self.Unit_Name(), '')
    let &errorformat = g:self.Error_Format
    let &makeprg     = l:make_prg
    wall
    make
    copen
    set wrap
    wincmd W
endfunction decada#Build					     " }}}1

function decada#Set_Session (...) dict				     " {{{1
   if a:0 > 0
      call ada#Switch_Session (a:1)
   elseif argc() == 0 && strlen (v:servername) > 0
      call ada#Switch_Session (
	 \ expand('~')[0:-2] . ".vimfiles.session]decada_" .
	 \ v:servername . ".vim")
   endif
   return
endfunction decada#Set_Session					     " }}}1

function decada#New ()						     " }}}1
   let Retval = {
      \ 'Make'		: function ('decada#Make'),
      \ 'Unit_Name'	: function ('decada#Unit_Name'),
      \ 'Set_Session'   : function ('decada#Set_Session'),
      \ 'Project_Dir'   : '',
      \ 'Make_Command'  : 'ACS COMPILE /Wait /Log /NoPreLoad /Optimize=Development /Debug %<',
      \ 'Error_Format'  : '%+A%%ADAC-%t-%m,%C  %#%m,%Zat line number %l in file %f,' .
			\ '%+I%%ada-I-%m,%C  %#%m,%Zat line number %l in file %f'}

   return Retval 
endfunction decada#New						     " }}}1

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006  Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z�)�````vim80/autoload/phpcomplete.vimnu�[���" Vim completion script
" Language:	PHP
" Maintainer:	Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change:  2016 Oct 10
"
"	OPTIONS:
"
"		let g:phpcomplete_relax_static_constraint = 1/0  [default 0]
"			Enables completion for non-static methods when completing for static context (::).
"			This generates E_STRICT level warning, but php calls these methods nontheless.
"
"		let g:phpcomplete_complete_for_unknown_classes = 1/0 [default 0]
"			Enables completion of variables and functions in "everything under the sun" fashion
"			when completing for an instance or static class context but the code can't tell the class
"			or locate the file that it lives in.
"			The completion list generated this way is only filtered by the completion base
"			and generally not much more accurate then simple keyword completion.
"
"		let g:phpcomplete_search_tags_for_variables = 1/0 [default 0]
"			Enables use of tags when the plugin tries to find variables.
"			When enabled the plugin will search for the variables in the tag files with kind 'v',
"			lines like $some_var = new Foo; but these usually yield highly inaccurate results and
"			can	be fairly slow.
"
"		let g:phpcomplete_min_num_of_chars_for_namespace_completion = n [default 1]
"			This option controls the number of characters the user needs to type before
"			the tags will be searched for namespaces and classes in typed out namespaces in
"			"use ..." context. Setting this to 0 is not recommended because that means the code
"			have to scan every tag, and vim's taglist() function runs extremly slow with a
"			"match everything" pattern.
"
"		let g:phpcomplete_parse_docblock_comments = 1/0 [default 0]
"			When enabled the preview window's content will include information
"			extracted from docblock comments of the completions.
"			Enabling this option will add return types to the completion menu for functions too.
"
"		let g:phpcomplete_cache_taglists = 1/0 [default 1]
"			When enabled the taglist() lookups will be cached and subsequent searches
"			for the same pattern will not check the tagfiles any more, thus making the
"			lookups faster. Cache expiration is based on the mtimes of the tag files.
"
"	TODO:
"	- Switching to HTML (XML?) completion (SQL) inside of phpStrings
"	- allow also for XML completion <- better do html_flavor for HTML
"	  completion
"	- outside of <?php?> getting parent tag may cause problems. Heh, even in
"	  perfect conditions GetLastOpenTag doesn't cooperate... Inside of
"	  phpStrings this can be even a bonus but outside of <?php?> it is not the
"	  best situation

if !exists('g:phpcomplete_relax_static_constraint')
	let g:phpcomplete_relax_static_constraint = 0
endif

if !exists('g:phpcomplete_complete_for_unknown_classes')
	let g:phpcomplete_complete_for_unknown_classes = 0
endif

if !exists('g:phpcomplete_search_tags_for_variables')
	let g:phpcomplete_search_tags_for_variables = 0
endif

if !exists('g:phpcomplete_min_num_of_chars_for_namespace_completion')
	let g:phpcomplete_min_num_of_chars_for_namespace_completion = 1
endif

if !exists('g:phpcomplete_parse_docblock_comments')
	let g:phpcomplete_parse_docblock_comments = 0
endif

if !exists('g:phpcomplete_cache_taglists')
	let g:phpcomplete_cache_taglists = 1
endif

if !exists('s:cache_classstructures')
	let s:cache_classstructures = {}
endif

if !exists('s:cache_tags')
	let s:cache_tags = {}
endif

if !exists('s:cache_tags_checksum')
	let s:cache_tags_checksum = ''
endif

let s:script_path = fnamemodify(resolve(expand('<sfile>:p')), ':h')

function! phpcomplete#CompletePHP(findstart, base) " {{{
	if a:findstart
		unlet! b:php_menu
		" Check if we are inside of PHP markup
		let pos = getpos('.')
		let phpbegin = searchpairpos('<?', '', '?>', 'bWn',
				\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')
		let phpend = searchpairpos('<?', '', '?>', 'Wn',
				\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')

		if phpbegin == [0,0] && phpend == [0,0]
			" We are outside of any PHP markup. Complete HTML
			let htmlbegin = htmlcomplete#CompleteTags(1, '')
			let cursor_col = pos[2]
			let base = getline('.')[htmlbegin : cursor_col]
			let b:php_menu = htmlcomplete#CompleteTags(0, base)
			return htmlbegin
		else
			" locate the start of the word
			let line = getline('.')
			let start = col('.') - 1
			let compl_begin = col('.') - 2
			while start >= 0 && line[start - 1] =~ '[\\a-zA-Z_0-9\x7f-\xff$]'
				let start -= 1
			endwhile
			let b:phpbegin = phpbegin
			let b:compl_context = phpcomplete#GetCurrentInstruction(line('.'), max([0, col('.') - 2]), phpbegin)

			return start
			" We can be also inside of phpString with HTML tags. Deal with
			" it later (time, not lines).
		endif
	endif


	" If exists b:php_menu it means completion was already constructed we
	" don't need to do anything more
	if exists("b:php_menu")
		return b:php_menu
	endif

	if !exists('g:php_builtin_functions')
		call phpcomplete#LoadData()
	endif

	" a:base is very short - we need context
	if exists("b:compl_context")
		let context = b:compl_context
		unlet! b:compl_context
		" chop of the "base" from the end of the current instruction
		if a:base != ""
			let context = substitute(context, '\s*[$a-zA-Z_0-9\x7f-\xff]*$', '', '')
		end
	else
		let context = ''
	end

	try
		let winheight = winheight(0)
		let winnr = winnr()

		let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(getline(0, line('.')))

		if context =~? '^use\s' || context ==? 'use'
			return phpcomplete#CompleteUse(a:base)
		endif

		if context =~ '\(->\|::\)$'
			" {{{
			" Get name of the class
			let classname = phpcomplete#GetClassName(line('.'), context, current_namespace, imports)

			" Get location of class definition, we have to iterate through all
			if classname != ''
				if classname =~ '\'
					" split the last \ segment as a classname, everything else is the namespace
					let classname_parts = split(classname, '\')
					let namespace = join(classname_parts[0:-2], '\')
					let classname = classname_parts[-1]
				else
					let namespace = '\'
				endif
				let classlocation = phpcomplete#GetClassLocation(classname, namespace)
			else
				let classlocation = ''
			endif

			if classlocation != ''
				if classlocation == 'VIMPHP_BUILTINOBJECT' && has_key(g:php_builtin_classes, tolower(classname))
					return phpcomplete#CompleteBuiltInClass(context, classname, a:base)
				endif

				if filereadable(classlocation)
					let classfile = readfile(classlocation)
					let classcontent = ''
					let classcontent .= "\n".phpcomplete#GetClassContents(classlocation, classname)
					let sccontent = split(classcontent, "\n")
					let visibility = expand('%:p') == fnamemodify(classlocation, ':p') ? 'private' : 'public'

					return phpcomplete#CompleteUserClass(context, a:base, sccontent, visibility)
				endif
			endif

			return phpcomplete#CompleteUnknownClass(a:base, context)
			" }}}
		elseif context =~? 'implements'
			return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
		elseif context =~? 'instanceof'
			return phpcomplete#CompleteClassName(a:base, ['c', 'n'], current_namespace, imports)
		elseif context =~? 'extends\s\+.\+$' && a:base == ''
			return ['implements']
		elseif context =~? 'extends'
			let kinds = context =~? 'class\s' ? ['c'] : ['i']
			return phpcomplete#CompleteClassName(a:base, kinds, current_namespace, imports)
		elseif context =~? 'class [a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
			" special case when you've typed the class keyword and the name too, only extends and implements allowed there
			return filter(['extends', 'implements'], 'stridx(v:val, a:base) == 0')
		elseif context =~? 'new'
			return phpcomplete#CompleteClassName(a:base, ['c'], current_namespace, imports)
		endif

		if a:base =~ '^\$'
			return phpcomplete#CompleteVariable(a:base)
		else
			return phpcomplete#CompleteGeneral(a:base, current_namespace, imports)
		endif
	finally
		silent! exec winnr.'resize '.winheight
	endtry
endfunction
" }}}

function! phpcomplete#CompleteUse(base) " {{{
	" completes builtin class names regadless of g:phpcomplete_min_num_of_chars_for_namespace_completion
	" completes namespaces from tags
	"   * requires patched ctags
	" completes classnames from tags within the already typed out namespace using the "namespace" field of tags
	"   * requires patched ctags

	let res = []

	" class and namespace names are always considered absoltute in use ... expressions, leading slash is not recommended
	" by the php manual, so we gonna get rid of that
	if a:base =~? '^\'
		let base = substitute(a:base, '^\', '', '')
	else
		let base = a:base
	endif

	let namespace_match_pattern  = substitute(base, '\\', '\\\\', 'g')
	let classname_match_pattern = matchstr(base, '[^\\]\+$')
	let namespace_for_class = substitute(substitute(namespace_match_pattern, '\\\\', '\\', 'g'), '\\*'.classname_match_pattern.'$', '', '')

	if len(namespace_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion
		if len(classname_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion
			let tags = phpcomplete#GetTaglist('^\('.namespace_match_pattern.'\|'.classname_match_pattern.'\)')
		else
			let tags = phpcomplete#GetTaglist('^'.namespace_match_pattern)
		endif

		let patched_ctags_detected = 0
		let namespaced_matches = []
		let no_namespace_matches = []
		for tag in tags
			if has_key(tag, 'namespace')
				let patched_ctags_detected = 1
			endif

			if tag.kind ==? 'n' && tag.name =~? '^'.namespace_match_pattern
				let patched_ctags_detected = 1
				call add(namespaced_matches, {'word': tag.name, 'kind': 'n', 'menu': tag.filename, 'info': tag.filename })
			elseif has_key(tag, 'namespace') && (tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't') && tag.namespace ==? namespace_for_class
				call add(namespaced_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
			elseif (tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't')
				call add(no_namespace_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
			endif
		endfor
		" if it seems that the tags file have namespace informations we can safely throw
		" away namespaceless tag matches since we can be sure they are invalid
		if patched_ctags_detected
			no_namespace_matches = []
		endif
		let res += namespaced_matches + no_namespace_matches
	endif

	if base !~ '\'
		let builtin_classnames = filter(keys(copy(g:php_builtin_classnames)), 'v:val =~? "^'.classname_match_pattern.'"')
		for classname in builtin_classnames
			call add(res, {'word': g:php_builtin_classes[tolower(classname)].name, 'kind': 'c'})
		endfor
		let builtin_interfacenames = filter(keys(copy(g:php_builtin_interfacenames)), 'v:val =~? "^'.classname_match_pattern.'"')
		for interfacename in builtin_interfacenames
			call add(res, {'word': g:php_builtin_interfaces[tolower(interfacename)].name, 'kind': 'i'})
		endfor
	endif

	for comp in res
		let comp.word = substitute(comp.word, '^\\', '', '')
	endfor

	return res
endfunction
" }}}

function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
	" Complete everything
	"  + functions,  DONE
	"  + keywords of language DONE
	"  + defines (constant definitions), DONE
	"  + extend keywords for predefined constants, DONE
	"  + classes (after new), DONE
	"  + limit choice after -> and :: to funcs and vars DONE

	" Internal solution for finding functions in current file.

	if a:base =~? '^\'
		let leading_slash = '\'
	else
		let leading_slash = ''
	endif

	let file = getline(1, '$')
	call filter(file,
				\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
	let jfile = join(file, ' ')
	let int_values = split(jfile, 'function\s\+')
	let int_functions = {}
	for i in int_values
		let f_name = matchstr(i,
					\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
		if f_name =~? '^'.substitute(a:base, '\\', '\\\\', 'g')
			let f_args = matchstr(i,
						\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|$\)')
			let int_functions[f_name.'('] = f_args.')'
		endif
	endfor

	" Internal solution for finding constants in current file
	let file = getline(1, '$')
	call filter(file, 'v:val =~ "define\\s*("')
	let jfile = join(file, ' ')
	let int_values = split(jfile, 'define\s*(\s*')
	let int_constants = {}
	for i in int_values
		let c_name = matchstr(i, '\(["'']\)\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze\1')
		if c_name != '' && c_name =~# '^'.substitute(a:base, '\\', '\\\\', 'g')
			let int_constants[leading_slash.c_name] = ''
		endif
	endfor

	" Prepare list of functions from tags file
	let ext_functions  = {}
	let ext_constants  = {}
	let ext_classes    = {}
	let ext_traits     = {}
	let ext_interfaces = {}
	let ext_namespaces = {}

	let base = substitute(a:base, '^\\', '', '')
	let [tag_match_pattern, namespace_for_tag] = phpcomplete#ExpandClassName(a:base, a:current_namespace, a:imports)
	let namespace_match_pattern  = substitute((namespace_for_tag == '' ? '' : namespace_for_tag.'\').tag_match_pattern, '\\', '\\\\', 'g')

	let tags = []
	if len(namespace_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion && len(tag_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion && tag_match_pattern != namespace_match_pattern
		let tags = phpcomplete#GetTaglist('\c^\('.tag_match_pattern.'\|'.namespace_match_pattern.'\)')
	elseif len(namespace_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion
		let tags = phpcomplete#GetTaglist('\c^'.namespace_match_pattern)
	elseif len(tag_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion
		let tags = phpcomplete#GetTaglist('\c^'.tag_match_pattern)
	endif

	for tag in tags
		if !has_key(tag, 'namespace') || tag.namespace ==? a:current_namespace || tag.namespace ==? namespace_for_tag
			if has_key(tag, 'namespace')
				let full_name = tag.namespace.'\'.tag.name " absolute namespaced name (without leading '\')

				let base_parts = split(a:base, '\')
				if len(base_parts) > 1
					let namespace_part = join(base_parts[0:-2], '\')
				else
					let namespace_part = ''
				endif
				let relative_name = (namespace_part == '' ? '' : namespace_part.'\').tag.name
			endif

			if tag.kind ==? 'n' && tag.name =~? '^'.namespace_match_pattern
				let info = tag.name.' - '.tag.filename
				" patched ctag provides absolute namespace names as tag name, namespace tags dont have namespace fields
				let full_name = tag.name

				let base_parts = split(a:base, '\')
				let full_name_parts = split(full_name, '\')
				if len(base_parts) > 1
					" the first segment could be a renamed import, take the first segment from the user provided input
					" so if it's a sub namespace of a renamed namespace, just use the typed in segments in place of the absolute path
					" for example:
					"     you have a namespace NS1\SUBNS as SUB
					"     you have a sub-sub-namespace NS1\SUBNS\SUBSUB
					"     typed in SUB\SU
					"     the tags will return NS1\SUBNS\SUBSUB
					"     the completion should be: SUB\SUBSUB by replacing the NS1\SUBSN to SUB as in the import
					if has_key(a:imports, base_parts[0]) && a:imports[base_parts[0]].kind == 'n'
						let import = a:imports[base_parts[0]]
						let relative_name = substitute(full_name, '^'.substitute(import.name, '\\', '\\\\', 'g'), base_parts[0], '')
					else
						let relative_name = strpart(full_name, stridx(full_name, a:base))
					endif
				else
					let relative_name = strpart(full_name, stridx(full_name, a:base))
				endif

				if leading_slash == ''
					let ext_namespaces[relative_name.'\'] = info
				else
					let ext_namespaces['\'.full_name.'\'] = info
				endif
			elseif tag.kind ==? 'f' && !has_key(tag, 'class') " class related functions (methods) completed elsewhere, only works with patched ctags
				if has_key(tag, 'signature')
					let prototype = tag.signature[1:-2] " drop the ()s around the string
				else
					let prototype = matchstr(tag.cmd,
								\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
				endif
				let info = prototype.') - '.tag.filename

				if !has_key(tag, 'namespace')
					let ext_functions[tag.name.'('] = info
				else
					if tag.namespace ==? namespace_for_tag
						if leading_slash == ''
							let ext_functions[relative_name.'('] = info
						else
							let ext_functions['\'.full_name.'('] = info
						endif
					endif
				endif
			elseif tag.kind ==? 'd'
				let info = ' - '.tag.filename
				if !has_key(tag, 'namespace')
					let ext_constants[tag.name] = info
				else
					if tag.namespace ==? namespace_for_tag
						if leading_slash == ''
							let ext_constants[relative_name] = info
						else
							let ext_constants['\'.full_name] = info
						endif
					endif
				endif
			elseif tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't'
				let info = ' - '.tag.filename

				let key = ''
				if !has_key(tag, 'namespace')
					let key = tag.name
				else
					if tag.namespace ==? namespace_for_tag
						if leading_slash == ''
							let key = relative_name
						else
							let key = '\'.full_name
						endif
					endif
				endif

				if key != ''
					if tag.kind ==? 'c'
						let ext_classes[key] = info
					elseif tag.kind ==? 'i'
						let ext_interfaces[key] = info
					elseif tag.kind ==? 't'
						let ext_traits[key] = info
					endif
				endif
			endif
		endif
	endfor

	let builtin_constants  = {}
	let builtin_classnames = {}
	let builtin_interfaces = {}
	let builtin_functions  = {}
	let builtin_keywords   = {}
	let base = substitute(a:base, '^\', '', '')
	if a:current_namespace == '\' || (a:base =~ '^\\' && a:base =~ '^\\[^\\]*$')

		" Add builtin class names
		for [classname, info] in items(g:php_builtin_classnames)
			if classname =~? '^'.base
				let builtin_classnames[leading_slash.g:php_builtin_classes[tolower(classname)].name] = info
			endif
		endfor
		for [interfacename, info] in items(g:php_builtin_interfacenames)
			if interfacename =~? '^'.base
				let builtin_interfaces[leading_slash.g:php_builtin_interfaces[tolower(interfacename)].name] = info
			endif
		endfor
	endif

	" Prepare list of constants from built-in constants
	for [constant, info] in items(g:php_constants)
		if constant =~# '^'.base
			let builtin_constants[leading_slash.constant] = info
		endif
	endfor

	if leading_slash == '' " keywords should not be completed when base starts with '\'
		" Treat keywords as constants
		for [constant, info] in items(g:php_keywords)
			if constant =~? '^'.a:base
				let builtin_keywords[constant] = info
			endif
		endfor
	endif

	for [function_name, info] in items(g:php_builtin_functions)
		if function_name =~? '^'.base
			let builtin_functions[leading_slash.function_name] = info
		endif
	endfor

	" All constants
	call extend(int_constants, ext_constants)

	" All functions
	call extend(int_functions, ext_functions)
	call extend(int_functions, builtin_functions)

	for [imported_name, import] in items(a:imports)
		if imported_name =~? '^'.base
			if import.kind ==? 'c'
				if import.builtin
					let builtin_classnames[imported_name] = ' '.import.name
				else
					let ext_classes[imported_name] = ' '.import.name.' - '.import.filename
				endif
			elseif import.kind ==? 'i'
				if import.builtin
					let builtin_interfaces[imported_name] = ' '.import.name
				else
					let ext_interfaces[imported_name] = ' '.import.name.' - '.import.filename
				endif
			elseif import.kind ==? 't'
				let ext_traits[imported_name] = ' '.import.name.' - '.import.filename
			endif

			" no builtin interfaces
			if import.kind == 'n'
				let ext_namespaces[imported_name.'\'] = ' '.import.name.' - '.import.filename
			endif
		end
	endfor

	let all_values = {}

	" Add functions found in this file
	call extend(all_values, int_functions)

	" Add namespaces from tags
	call extend(all_values, ext_namespaces)

	" Add constants from the current file
	call extend(all_values, int_constants)

	" Add built-in constants
	call extend(all_values, builtin_constants)

	" Add external classes
	call extend(all_values, ext_classes)

	" Add external interfaces
	call extend(all_values, ext_interfaces)

	" Add external traits
	call extend(all_values, ext_traits)

	" Add built-in classes
	call extend(all_values, builtin_classnames)

	" Add built-in interfaces
	call extend(all_values, builtin_interfaces)

	" Add php keywords
	call extend(all_values, builtin_keywords)

	let final_list = []
	let int_list = sort(keys(all_values))
	for i in int_list
		if has_key(ext_namespaces, i)
			let final_list += [{'word':i, 'kind':'n', 'menu': ext_namespaces[i], 'info': ext_namespaces[i]}]
		elseif has_key(int_functions, i)
			let final_list +=
						\ [{'word':i,
						\	'info':i.int_functions[i],
						\	'menu':int_functions[i],
						\	'kind':'f'}]
		elseif has_key(ext_classes, i) || has_key(builtin_classnames, i)
			let info = has_key(ext_classes, i) ? ext_classes[i] : builtin_classnames[i].' - builtin'
			let final_list += [{'word':i, 'kind': 'c', 'menu': info, 'info': i.info}]
		elseif has_key(ext_interfaces, i) || has_key(builtin_interfaces, i)
			let info = has_key(ext_interfaces, i) ? ext_interfaces[i] : builtin_interfaces[i].' - builtin'
			let final_list += [{'word':i, 'kind': 'i', 'menu': info, 'info': i.info}]
		elseif has_key(ext_traits, i)
			let final_list += [{'word':i, 'kind': 't', 'menu': ext_traits[i], 'info': ext_traits[i]}]
		elseif has_key(int_constants, i) || has_key(builtin_constants, i)
			let info = has_key(int_constants, i) ? int_constants[i] : ' - builtin'
			let final_list += [{'word':i, 'kind': 'd', 'menu': info, 'info': i.info}]
		else
			let final_list += [{'word':i}]
		endif
	endfor

	return final_list
endfunction
" }}}

function! phpcomplete#CompleteUnknownClass(base, context) " {{{
	let res = []

	if g:phpcomplete_complete_for_unknown_classes != 1
		return []
	endif

	if a:base =~ '^\$'
		let adddollar = '$'
	else
		let adddollar = ''
	endif

	let file = getline(1, '$')

	" Internal solution for finding object properties in current file.
	if a:context =~ '::'
		let variables = filter(deepcopy(file),
					\ 'v:val =~ "^\\s*\\(static\\|static\\s\\+\\(public\\|var\\)\\|\\(public\\|var\\)\\s\\+static\\)\\s\\+\\$"')
	elseif a:context =~ '->'
		let variables = filter(deepcopy(file),
					\ 'v:val =~ "^\\s*\\(public\\|var\\)\\s\\+\\$"')
	endif
	let jvars = join(variables, ' ')
	let svars = split(jvars, '\$')
	let int_vars = {}
	for i in svars
		let c_var = matchstr(i,
					\ '^\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
		if c_var != ''
			let int_vars[adddollar.c_var] = ''
		endif
	endfor

	" Internal solution for finding functions in current file.
	call filter(deepcopy(file),
			\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
	let jfile = join(file, ' ')
	let int_values = split(jfile, 'function\s\+')
	let int_functions = {}
	for i in int_values
		let f_name = matchstr(i,
				\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
		let f_args = matchstr(i,
				\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|$\)')

		let int_functions[f_name.'('] = f_args.')'
	endfor

	" collect external functions from tags
	let ext_functions = {}
	let tags = phpcomplete#GetTaglist('^'.substitute(a:base, '^\$', '', ''))
	for tag in tags
		if tag.kind ==? 'f'
			let item = tag.name
			if has_key(tag, 'signature')
				let prototype = tag.signature[1:-2]
			else
				let prototype = matchstr(tag.cmd,
						\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
			endif
			let ext_functions[item.'('] = prototype.') - '.tag['filename']
		endif
	endfor

	" All functions to one hash for later reference when deciding kind
	call extend(int_functions, ext_functions)

	let all_values = {}
	call extend(all_values, int_functions)
	call extend(all_values, int_vars) " external variables are already in
	call extend(all_values, g:php_builtin_object_functions)

	for m in sort(keys(all_values))
		if m =~ '\(^\|::\)'.a:base
			call add(res, m)
		endif
	endfor

	let start_list = res

	let final_list = []
	for i in start_list
		if has_key(int_vars, i)
			let class = ' '
			if all_values[i] != ''
				let class = i.' class '
			endif
			let final_list += [{'word':i, 'info':class.all_values[i], 'kind':'v'}]
		else
			let final_list +=
					\ [{'word':substitute(i, '.*::', '', ''),
					\	'info':i.all_values[i],
					\	'menu':all_values[i],
					\	'kind':'f'}]
		endif
	endfor
	return final_list
endfunction
" }}}

function! phpcomplete#CompleteVariable(base) " {{{
	let res = []

	" Internal solution for current file.
	let file = getline(1, '$')
	let jfile = join(file, ' ')
	let int_vals = split(jfile, '\ze\$')
	let int_vars = {}
	for i in int_vals
		if i =~? '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
			let val = matchstr(i,
						\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
		else
			let val = matchstr(i,
						\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
		endif
		if val != ''
			let int_vars[val] = ''
		endif
	endfor

	call extend(int_vars, g:php_builtin_vars)

	" ctags has support for PHP, use tags file for external variables
	if  g:phpcomplete_search_tags_for_variables
		let ext_vars = {}
		let tags = phpcomplete#GetTaglist('\C^'.substitute(a:base, '^\$', '', ''))
		for tag in tags
			if tag.kind ==? 'v'
				let item = tag.name
				let m_menu = ''
				if tag.cmd =~? tag['name'].'\s*=\s*new\s\+'
					let m_menu = matchstr(tag.cmd,
								\ '\c=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
				endif
				let ext_vars['$'.item] = m_menu
			endif
		endfor
		call extend(int_vars, ext_vars)
	endif

	for m in sort(keys(int_vars))
		if m =~# '^\'.a:base
			call add(res, m)
		endif
	endfor

	let int_list = res

	let int_dict = []
	for i in int_list
		if int_vars[i] != ''
			let class = ' '
			if int_vars[i] != ''
				let class = i.' class '
			endif
			let int_dict += [{'word':i, 'info':class.int_vars[i], 'menu':int_vars[i], 'kind':'v'}]
		else
			let int_dict += [{'word':i, 'kind':'v'}]
		endif
	endfor

	return int_dict
endfunction
" }}}

function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports) " {{{
	let kinds = sort(a:kinds)
	" Complete class name
	let res = []
	if a:base =~? '^\'
		let leading_slash = '\'
		let base = substitute(a:base, '^\', '', '')
	else
		let leading_slash = ''
		let base = a:base
	endif

	" Internal solution for finding classes in current file.
	let file = getline(1, '$')
	let filterstr = ''

	if kinds == ['c', 'i']
		let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
	elseif kinds == ['c', 'n']
		let filterstr = 'v:val =~? "\\(class\\|namespace\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
	elseif kinds == ['c']
		let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
	elseif kinds == ['i']
		let filterstr = 'v:val =~? "interface\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
	endif

	call filter(file, filterstr)

	for line in file
		let c_name = matchstr(line, '\c\(class\|interface\)\s*\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
		let kind = (line =~? '^\s*class' ? 'c' : 'i')
		if c_name != '' && c_name =~? '^'.base
			call add(res, {'word': c_name, 'kind': kind})
		endif
	endfor

	" resolve the typed in part with namespaces (if theres a \ in it)
	let [tag_match_pattern, namespace_for_class] = phpcomplete#ExpandClassName(a:base, a:current_namespace, a:imports)

	let tags = []
	if len(tag_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion
		let tags = phpcomplete#GetTaglist('^\c'.tag_match_pattern)
	endif

	if len(tags)
		let base_parts = split(a:base, '\')
		if len(base_parts) > 1
			let namespace_part = join(base_parts[0:-2], '\').'\'
		else
			let namespace_part = ''
		endif
		let no_namespace_matches = []
		let namespaced_matches = []
		let seen_namespaced_tag = 0
		for tag in tags
			if has_key(tag, 'namespace')
				let seen_namespaced_tag = 1
			endif
			let relative_name = namespace_part.tag.name
			" match base without the namespace part for namespaced base but not namespaced tags, for tagfiles with old ctags
			if !has_key(tag, 'namespace') && index(kinds, tag.kind) != -1 && stridx(tolower(tag.name), tolower(base[len(namespace_part):])) == 0
				call add(no_namespace_matches, {'word': leading_slash.relative_name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
			endif
			if has_key(tag, 'namespace') && index(kinds, tag.kind) != -1 && tag.namespace ==? namespace_for_class
				let full_name = tag.namespace.'\'.tag.name " absolute namespaced name (without leading '\')
				call add(namespaced_matches, {'word': leading_slash == '\' ? leading_slash.full_name : relative_name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
			endif
		endfor
		" if there was a tag with namespace field, assume tag files with namespace support, so the matches
		" without a namespace field are in the global namespace so if there were namespace in the base
		" we should not add them to the matches
		if seen_namespaced_tag && namespace_part != ''
			let no_namespace_matches = []
		endif
		let res += no_namespace_matches + namespaced_matches
	endif

	" look for built in classnames and interfaces
	let base_parts = split(base, '\')
	if a:current_namespace == '\' || (leading_slash == '\' && len(base_parts) < 2)
		if index(kinds, 'c') != -1
			let builtin_classnames = filter(keys(copy(g:php_builtin_classnames)), 'v:val =~? "^'.substitute(a:base, '\\', '', 'g').'"')
			for classname in builtin_classnames
				let menu = ''
				" if we have a constructor for this class, add parameters as to the info
				if has_key(g:php_builtin_classes[tolower(classname)].methods, '__construct')
					let menu = g:php_builtin_classes[tolower(classname)]['methods']['__construct']['signature']
				endif
				call add(res, {'word': leading_slash.g:php_builtin_classes[tolower(classname)].name, 'kind': 'c', 'menu': menu})
			endfor
		endif

		if index(kinds, 'i') != -1
			let builtin_interfaces = filter(keys(copy(g:php_builtin_interfaces)), 'v:val =~? "^'.substitute(a:base, '\\', '', 'g').'"')
			for interfacename in builtin_interfaces
				call add(res, {'word': leading_slash.g:php_builtin_interfaces[interfacename]['name'], 'kind': 'i', 'menu': ''})
			endfor
		endif
	endif

	" add matching imported things
	for [imported_name, import] in items(a:imports)
		if imported_name =~? '^'.base && index(kinds, import.kind) != -1
			let menu = import.name.(import.builtin ? ' - builtin' : '')
			call add(res, {'word': imported_name, 'kind': import.kind, 'menu': menu})
		endif
	endfor

	let res = sort(res, 'phpcomplete#CompareCompletionRow')
	return res
endfunction
" }}}

function! phpcomplete#CompareCompletionRow(i1, i2) " {{{
	return a:i1.word == a:i2.word ? 0 : a:i1.word > a:i2.word ? 1 : -1
endfunction
" }}}

function! s:getNextCharWithPos(filelines, current_pos) " {{{
	let line_no   = a:current_pos[0]
	let col_no    = a:current_pos[1]
	let last_line = a:filelines[len(a:filelines) - 1]
	let end_pos   = [len(a:filelines) - 1, strlen(last_line) - 1]
	if line_no > end_pos[0] || line_no == end_pos[0] && col_no > end_pos[1]
		return ['EOF', 'EOF']
	endif

	" we've not reached the end of the current line break
	if col_no + 1 < strlen(a:filelines[line_no])
		let col_no += 1
	else
		" we've reached the end of the current line, jump to the next
		" non-blank line (blank lines have no position where we can read from,
		" not even a whitespace. The newline char does not positionable by vim
		let line_no += 1
		while strlen(a:filelines[line_no]) == 0
			let line_no += 1
		endwhile

		let col_no = 0
	endif

	" return 'EOF' string to signal end of file, normal results only one char
	" in length
	if line_no == end_pos[0] && col_no > end_pos[1]
		return ['EOF', 'EOF']
	endif

	return [[line_no, col_no], a:filelines[line_no][col_no]]
endfunction " }}}

function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibited_modifiers) " {{{
	" if theres no modifier, and no modifier is allowed and no modifier is required
	if len(a:modifiers) == 0 && len(a:required_modifiers) == 0
		return 1
	else
		" check if every requred modifier is present
		for required_modifier in a:required_modifiers
			if index(a:modifiers, required_modifier) == -1
				return 0
			endif
		endfor

		for modifier in a:modifiers
			" if the modifier is prohibited it's a no match
			if index(a:prohibited_modifiers, modifier) != -1
				return 0
			endif
		endfor

		" anything that is not explicitly required or prohibited is allowed
		return 1
	endif
endfunction
" }}}

function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) " {{{
	let final_list = []
	let res  = []

	let required_modifiers = []
	let prohibited_modifiers = []

	if a:visibility == 'public'
		let prohibited_modifiers += ['private', 'protected']
	endif

	" limit based on context to static or normal methods
	let static_con = ''
	if a:context =~ '::$' && a:context !~? 'parent::$'
		if g:phpcomplete_relax_static_constraint != 1
			let required_modifiers += ['static']
		endif
	elseif a:context =~ '->$'
		let prohibited_modifiers += ['static']
	endif

	let all_function = filter(deepcopy(a:sccontent),
				\ 'v:val =~ "^\\s*\\(public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)*function"')

	let functions = []
	for i in all_function
		let modifiers = split(matchstr(tolower(i), '\zs.\+\zefunction'), '\s\+')
		if phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibited_modifiers) == 1
			call add(functions, i)
		endif
	endfor

	let c_functions = {}
	let c_doc = {}
	for i in functions
		let f_name = matchstr(i,
					\ 'function\s*&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
		let f_args = matchstr(i,
					\ 'function\s*&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|\_$\)')
		if f_name != '' && stridx(f_name, '__') != 0
			let c_functions[f_name.'('] = f_args
			if g:phpcomplete_parse_docblock_comments
				let c_doc[f_name.'('] = phpcomplete#GetDocBlock(a:sccontent, 'function\s*&\?\<'.f_name.'\>')
			endif
		endif
	endfor

	" limit based on context to static or normal attributes
	if a:context =~ '::$' && a:context !~? 'parent::$'
		" variables must have static to be accessed as static unlike functions
		let required_modifiers += ['static']
	endif
	let all_variable = filter(deepcopy(a:sccontent),
					\ 'v:val =~ "\\(^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$\\|^\\s*\\(\\/\\|\\*\\)*\\s*@property\\s\\+\\S\\+\\s\\S\\{-}\\s*$\\)"')

	let variables = []
	for i in all_variable
		let modifiers = split(matchstr(tolower(i), '\zs.\+\ze\$'), '\s\+')
		if phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibited_modifiers) == 1
			call add(variables, i)
		endif
	endfor

	let static_vars = split(join(variables, ' '), '\$')
	let c_variables = {}

	let var_index = 0
	for i in static_vars
		let c_var = matchstr(i,
					\ '^\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
		if c_var != ''
			if a:context =~ '::$'
				let c_var = '$'.c_var
			endif
			let c_variables[c_var] = ''
			if g:phpcomplete_parse_docblock_comments && len(get(variables, var_index)) > 0
				let c_doc[c_var] = phpcomplete#GetDocBlock(a:sccontent, variables[var_index])
			endif
			let var_index += 1
		endif
	endfor

	let constants = filter(deepcopy(a:sccontent),
				\ 'v:val =~ "^\\s*const\\s\\+"')

	let jcons = join(constants, ' ')
	let scons = split(jcons, 'const')

	let c_constants = {}
	let const_index = 0
	for i in scons
		let c_con = matchstr(i,
					\ '^\s*\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
		if c_con != ''
			let c_constants[c_con] = ''
			if g:phpcomplete_parse_docblock_comments && len(get(constants, const_index)) > 0
				let c_doc[c_con] = phpcomplete#GetDocBlock(a:sccontent, constants[const_index])
			endif
			let const_index += 1
		endif
	endfor

	let all_values = {}
	call extend(all_values, c_functions)
	call extend(all_values, c_variables)
	call extend(all_values, c_constants)

	for m in sort(keys(all_values))
		if stridx(m, a:base) == 0
			call add(res, m)
		endif
	endfor

	let start_list = res

	let final_list = []
	for i in start_list
		let docblock = phpcomplete#ParseDocBlock(get(c_doc, i, ''))
		if has_key(c_variables, i)
			let final_list +=
						\ [{'word': i,
						\	'info':phpcomplete#FormatDocBlock(docblock),
						\	'menu':get(docblock.var, 'type', ''),
						\	'kind':'v'}]
		elseif has_key(c_constants, i)
			let info = phpcomplete#FormatDocBlock(docblock)
			if info != ''
				let info = "\n".info
			endif
			let final_list +=
						\ [{'word':i,
						\	'info':i.info,
						\	'menu':all_values[i],
						\	'kind':'d'}]
		else
			let return_type = get(docblock.return, 'type', '')
			if return_type != ''
				let return_type = ' | '.return_type
			endif
			let info = phpcomplete#FormatDocBlock(docblock)
			if info != ''
				let info = "\n".info
			endif
			let final_list +=
						\ [{'word':substitute(i, '.*::', '', ''),
						\	'info':i.all_values[i].')'.info,
						\	'menu':all_values[i].')'.return_type,
						\	'kind':'f'}]
		endif
	endfor

	return final_list
endfunction
" }}}

function! phpcomplete#CompleteBuiltInClass(context, classname, base) " {{{
	let class_info = g:php_builtin_classes[tolower(a:classname)]
	let res = []
	if a:context =~ '->$' " complete for everything instance related
		" methods
		for [method_name, method_info] in items(class_info.methods)
			if stridx(method_name, '__') != 0 && (a:base == '' || method_name =~? '^'.a:base)
				call add(res, {'word':method_name.'(', 'kind': 'f', 'menu': method_info.signature, 'info': method_info.signature })
			endif
		endfor
		" properties
		for [property_name, property_info] in items(class_info.properties)
			if a:base == '' || property_name =~? '^'.a:base
				call add(res, {'word':property_name, 'kind': 'v', 'menu': property_info.type, 'info': property_info.type })
			endif
		endfor
	elseif a:context =~ '::$' " complete for everything static
		" methods
		for [method_name, method_info] in items(class_info.static_methods)
			if a:base == '' || method_name =~? '^'.a:base
				call add(res, {'word':method_name.'(', 'kind': 'f', 'menu': method_info.signature, 'info': method_info.signature })
			endif
		endfor
		" properties
		for [property_name, property_info] in items(class_info.static_properties)
			if a:base == '' || property_name =~? '^'.a:base
				call add(res, {'word':property_name, 'kind': 'v', 'menu': property_info.type, 'info': property_info.type })
			endif
		endfor
		" constants
		for [constant_name, constant_info] in items(class_info.constants)
			if a:base == '' || constant_name =~? '^'.a:base
				call add(res, {'word':constant_name, 'kind': 'd', 'menu': constant_info, 'info': constant_info})
			endif
		endfor
	endif
	return res
endfunction
" }}}

function! phpcomplete#GetTaglist(pattern) " {{{
	let cache_checksum = ''
	if g:phpcomplete_cache_taglists == 1
		" build a string with  format of "<tagfile>:<mtime>$<tagfile2>:<mtime2>..."
		" to validate that the tags are not changed since the time we saved the results in cache
		for tagfile in sort(tagfiles())
			let cache_checksum .= fnamemodify(tagfile, ':p').':'.getftime(tagfile).'$'
		endfor

		if s:cache_tags_checksum != cache_checksum
			" tag file(s) changed
			" since we don't know where individual tags coming from when calling taglist() we zap the whole cache
			" no way to clear only the entries originating from the changed tag file
			let s:cache_tags = {}
		endif

		if has_key(s:cache_tags, a:pattern)
			return s:cache_tags[a:pattern]
		endif
	endif

	let tags = taglist(a:pattern)
	for tag in tags
		for prop in keys(tag)
			if prop == 'cmd' || prop == 'static' || prop == 'kind' || prop == 'builtin'
				continue
			endif
			let tag[prop] = substitute(tag[prop], '\\\\', '\\', 'g')
		endfor
	endfor
	let s:cache_tags[a:pattern] = tags
	let has_key = has_key(s:cache_tags, a:pattern)
	let s:cache_tags_checksum = cache_checksum
	return tags
endfunction
" }}}

function! phpcomplete#GetCurrentInstruction(line_number, col_number, phpbegin) " {{{
	" locate the current instruction (up until the previous non comment or string ";" or php region start (<?php or <?) without newlines
	let col_number = a:col_number
	let line_number = a:line_number
	let line = getline(a:line_number)
	let current_char = -1
	let instruction = ''
	let parent_depth = 0
	let bracket_depth = 0
	let stop_chars = [
				\ '!', '@', '%', '^', '&',
				\ '*', '/', '-', '+', '=',
				\ ':', '>', '<', '.', '?',
				\ ';', '(', '|', '['
				\ ]

	let phpbegin_length = len(matchstr(getline(a:phpbegin[0]), '\zs<?\(php\)\?\ze'))
	let phpbegin_end = [a:phpbegin[0], a:phpbegin[1] - 1 + phpbegin_length]

	" will hold the first place where a coma could have ended the match
	let first_coma_break_pos = -1
	let next_char = len(line) < col_number ? line[col_number + 1] : ''

	while !(line_number == 1 && col_number == 1)
		if current_char != -1
			let next_char = current_char
		endif

		let current_char = line[col_number]
		let synIDName = synIDattr(synID(line_number, col_number + 1, 0), 'name')

		if col_number - 1 == -1
			let prev_line_number = line_number - 1
			let prev_line = getline(line_number - 1)
			let prev_col_number = strlen(prev_line)
		else
			let prev_line_number = line_number
			let prev_col_number = col_number - 1
			let prev_line = line
		endif
		let prev_char = prev_line[prev_col_number]

		" skip comments
		if synIDName =~? 'comment\|phpDocTags'
			let current_char = ''
		endif

		" break on the last char of the "and" and "or" operators
		if synIDName == 'phpOperator' && (current_char == 'r' || current_char == 'd')
			break
		endif

		" break on statements as "return" or "throws"
		if synIDName == 'phpStatement' || synIDName == 'phpException'
			break
		endif

		" if the current char should be considered
		if current_char != '' && parent_depth >= 0 && bracket_depth >= 0 && synIDName !~? 'comment\|string'
			" break if we are on a "naked" stop_char (operators, colon, openparent...)
			if index(stop_chars, current_char) != -1
				let do_break = 1
				" dont break if it does look like a "->"
				if (prev_char == '-' && current_char == '>') || (current_char == '-' && next_char == '>')
					let do_break = 0
				endif
				" dont break if it does look like a "::"
				if (prev_char == ':' && current_char == ':') || (current_char == ':' && next_char == ':')
					let do_break = 0
				endif

				if do_break
					break
				endif
			endif

			" save the coma position for later use if theres a "naked" , possibly separating a parameter and it is not in a parented part
			if first_coma_break_pos == -1 && current_char == ','
				let first_coma_break_pos = len(instruction)
			endif
		endif

		" count nested darenthesis and brackets so we can tell if we need to break on a ';' or not (think of for (;;) loops)
		if synIDName =~? 'phpBraceFunc\|phpParent\|Delimiter'
			if current_char == '('
				let parent_depth += 1
			elseif current_char == ')'
				let parent_depth -= 1

			elseif current_char == '['
				let bracket_depth += 1
			elseif current_char == ']'
				let bracket_depth -= 1
			endif
		endif

		" stop collecting chars if we see a function start { (think of first line in a function)
		if (current_char == '{' || current_char == '}') && synIDName =~? 'phpBraceFunc\|phpParent\|Delimiter'
			break
		endif

		" break if we are reached the php block start (<?php or <?)
		if [line_number, col_number] == phpbegin_end
			break
		endif

		let instruction = current_char.instruction

		" step a char or a line back if we are on the first column of the line already
		let col_number -= 1
		if col_number == -1
			let line_number -= 1
			let line = getline(line_number)
			let col_number = strlen(line)
		endif
	endwhile

	" strip leading whitespace
	let instruction = substitute(instruction, '^\s\+', '', '')

	" there were a "naked" coma in the instruction
	if first_coma_break_pos != -1
		if instruction !~? '^use' && instruction !~? '^class' " use ... statements and class delcarations should not be broken up by comas
			let pos = (-1 * first_coma_break_pos) + 1
			let instruction = instruction[pos :]
		endif
	endif

	" HACK to remove one line conditionals from code like "if ($foo) echo 'bar'"
	" what the plugin really need is a proper php tokenizer
	if instruction =~? '\c^\(if\|while\|foreach\|for\)\s*('
		" clear everything up until the first (
		let instruction = substitute(instruction, '^\(if\|while\|foreach\|for\)\s*(\s*', '', '')

		" lets iterate trough the instruction until we can find the pair for the opening (
		let i = 0
		let depth = 1
		while i < len(instruction)
			if instruction[i] == '('
				let depth += 1
			endif
			if instruction[i] == ')'
				let depth -= 1
			endif
			if depth == 0
				break
			end
			let i += 1
		endwhile
		let instruction = instruction[i + 1 : len(instruction)]
	endif

	" trim whitespace from the ends
	let instruction = substitute(instruction, '\v^(^\s+)|(\s+)$', '', 'g')

	return instruction
endfunction " }}}

function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, imports, methodstack) " {{{
	" Tries to get the classname and namespace for a chained method call like:
	"	$this->foo()->bar()->baz()->

	let classname_candidate = a:classname_candidate
	let class_candidate_namespace = a:class_candidate_namespace
	let methodstack = a:methodstack
	let unknown_result = ['', '']
	let prev_method_is_array = (methodstack[0] =~ '\v^[^([]+\[' ? 1 : 0)
	let classname_candidate_is_array = (classname_candidate =~ '\[\]$' ? 1 : 0)

	if prev_method_is_array
		if classname_candidate_is_array
			let classname_candidate = substitute(classname_candidate, '\[\]$', '', '')
		else
			return unknown_result
		endif
	endif

	if (len(methodstack) == 1)
		let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, a:imports)
		return [classname_candidate, class_candidate_namespace]
	else
		call remove(methodstack, 0)
		let method_is_array = (methodstack[0] =~ '\v^[^[]+\[' ? 1 : 0)
		let method = matchstr(methodstack[0], '\v^\$*\zs[^[(]+\ze')

		let classlocation = phpcomplete#GetClassLocation(classname_candidate, class_candidate_namespace)

		if classlocation == 'VIMPHP_BUILTINOBJECT' && has_key(g:php_builtin_classes, tolower(classname_candidate))
			let class_info = g:php_builtin_classes[tolower(classname_candidate)]
			if has_key(class_info['methods'], method)
				return phpcomplete#GetCallChainReturnType(class_info['methods'][method].return_type, '\', a:imports, methodstack)
			endif
			if has_key(class_info['properties'], method)
				return phpcomplete#GetCallChainReturnType(class_info['properties'][method].type, '\', a:imports, methodstack)
			endif
			if has_key(class_info['static_methods'], method)
				return phpcomplete#GetCallChainReturnType(class_info['static_methods'][method].return_type, '\', a:imports, methodstack)
			endif
			if has_key(class_info['static_properties'], method)
				return phpcomplete#GetCallChainReturnType(class_info['static_properties'][method].type, '\', a:imports, methodstack)
			endif

			return unknown_result

		elseif classlocation != '' && filereadable(classlocation)
			" Read the next method from the stack and extract only the name

			let classcontents = phpcomplete#GetCachedClassContents(classlocation, classname_candidate)

			" Get Structured information of all classes and subclasses including namespace and includes
			" try to find the method's return type in docblock comment
			for classstructure in classcontents
				let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
				let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
				if doc_str != ''
					break
				endif
			endfor
			if doc_str != ''
				let docblock = phpcomplete#ParseDocBlock(doc_str)
				if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
					let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''

					if type == ''
						for property in docblock.properties
							if property.description =~? method
								let type = property.type
								break
							endif
						endfor
					endif

					" there's a namespace in the type, threat the type as FQCN
					if type =~ '\\'
						let parts = split(substitute(type, '^\\', '', ''), '\')
						let class_candidate_namespace = join(parts[0:-2], '\')
						let classname_candidate = parts[-1]
						" check for renamed namepsace in imports
						if has_key(classstructure.imports, class_candidate_namespace)
							let class_candidate_namespace = classstructure.imports[class_candidate_namespace].name
						endif
					else
						" no namespace in the type, threat it as a relative classname
						let returnclass = type
						if has_key(classstructure.imports, returnclass)
							if has_key(classstructure.imports[returnclass], 'namespace')
								let fullnamespace = classstructure.imports[returnclass].namespace
							else
								let fullnamespace = class_candidate_namespace
							endif
						else
							let fullnamespace = class_candidate_namespace
						endif
						" make @return self, static, $this the same way
						" (not exactly what php means by these)
						if returnclass == 'self' || returnclass == 'static' || returnclass == '$this' || returnclass == 'self[]' || returnclass == 'static[]' || returnclass == '$this[]'
							if returnclass =~ '\[\]$'
								let classname_candidate = a:classname_candidate.'[]'
							else
								let classname_candidate = a:classname_candidate
							endif
							let class_candidate_namespace = a:class_candidate_namespace
						else
							let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(returnclass, fullnamespace, a:imports)
						endif
					endif

					return phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, a:imports, methodstack)
				endif
			endif

			return unknown_result
		else
			return unknown_result
		endif
	endif
endfunction " }}}

function! phpcomplete#GetMethodStack(line) " {{{
	let methodstack = []
	let i = 0
	let end = len(a:line)

	let current_part = ''

	let parent_depth = 0
	let in_string = 0
	let string_start = ''

	let next_char = ''

	while i	< end
		let current_char = a:line[i]
		let next_char = i + 1 < end ? a:line[i + 1] : ''
		let prev_char = i >= 1 ? a:line[i - 1] : ''
		let prev_prev_char = i >= 2 ? a:line[i - 2] : ''

		if in_string == 0 && parent_depth == 0 && ((current_char == '-' && next_char == '>') || (current_char == ':' && next_char == ':'))
			call add(methodstack, current_part)
			let current_part = ''
			let i += 2
			continue
		endif

		" if it's looks like a string
		if current_char == "'" || current_char == '"'
			" and it is not escaped
			if prev_char != '\' || (prev_char == '\' && prev_prev_char == '\')
				" and we are in a string already
				if in_string
					" and that string started with this char too
					if current_char == string_start
						" clear the string mark
						let in_string = 0
					endif
				else " ... and we are not in a string
					" set the string mark
					let in_string = 1
					let string_start = current_char
				endif
			endif
		endif

		if !in_string && a:line[i] == '('
			let parent_depth += 1
		endif
		if !in_string && a:line[i] == ')'
			let parent_depth -= 1
		endif

		let current_part .= current_char
		let i += 1
	endwhile

	" add the last remaining part, this can be an empty string and this is expected
	" the empty string represents the completion base (which happen to be an empty string)
	if current_part != ''
		call add(methodstack, current_part)
	endif

	return methodstack
endfunction
" }}}

function! phpcomplete#GetClassName(start_line, context, current_namespace, imports) " {{{
	" Get class name
	" Class name can be detected in few ways:
	" @var $myVar class
	" @var class $myVar
	" in the same line (php 5.4 (new Class)-> syntax)
	" line above
	" or line in tags file

	let class_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
	let function_name_pattern = '[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*'
	let function_invocation_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*('
	let variable_name_pattern = '\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

	let classname_candidate = ''
	let class_candidate_namespace = a:current_namespace
	let class_candidate_imports = a:imports
	let methodstack = phpcomplete#GetMethodStack(a:context)

	if a:context =~? '\$this->' || a:context =~? '\(self\|static\)::' || a:context =~? 'parent::'
		let i = 1
		while i < a:start_line
			let line = getline(a:start_line - i)

			" Don't complete self:: or $this if outside of a class
			" (assumes correct indenting)
			if line =~ '^}'
				return ''
			endif

			if line =~? '\v^\s*(abstract\s+|final\s+)*\s*class\s'
				let class_name = matchstr(line, '\cclass\s\+\zs'.class_name_pattern.'\ze')
				let extended_class = matchstr(line, '\cclass\s\+'.class_name_pattern.'\s\+extends\s\+\zs'.class_name_pattern.'\ze')

				let classname_candidate = a:context =~? 'parent::' ? extended_class : class_name
				if classname_candidate != ''
					let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
					" return absolute classname, without leading \
					return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
				endif
			endif

			let i += 1
		endwhile
	elseif a:context =~? '(\s*new\s\+'.class_name_pattern.'\s*)->'
		let classname_candidate = matchstr(a:context, '\cnew\s\+\zs'.class_name_pattern.'\ze')
		let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
		" return absolute classname, without leading \
		return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
	elseif get(methodstack, 0) =~# function_invocation_pattern
		let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern)
		let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace)
		if function_file == ''
			let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
		endif

		if function_file == 'VIMPHP_BUILTINFUNCTION'
			" built in function, grab the return type from the info string
			let return_type = matchstr(g:php_builtin_functions[function_name.'('], '\v\|\s+\zs.+$')
			let classname_candidate = return_type
			let class_candidate_namespace = '\'
		elseif function_file != '' && filereadable(function_file)
			let file_lines = readfile(function_file)
			let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
			let docblock = phpcomplete#ParseDocBlock(docblock_str)
			if has_key(docblock.return, 'type')
				let classname_candidate = docblock.return.type
				let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
				" try to expand the classname of the returned type with the context got from the function's source file

				let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
			endif
		endif
		if classname_candidate != ''
			let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
			" return absolute classname, without leading \
			return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
		endif
	else
		" extract the variable name from the context
		let object = methodstack[0]
		let object_is_array = (object =~ '\v^[^[]+\[' ? 1 : 0)
		let object = matchstr(object, variable_name_pattern)

		let function_boundary = phpcomplete#GetCurrentFunctionBoundaries()
		let search_end_line = max([1, function_boundary[0][0]])
		" -1 makes us ignore the current line (where the completion was invoked
		let lines = reverse(getline(search_end_line, a:start_line - 1))

		" check Constant lookup
		let constant_object = matchstr(a:context, '\zs'.class_name_pattern.'\ze::')
		if constant_object != ''
			let classname_candidate = constant_object
		endif

		if classname_candidate == ''
			" scan the file backwards from current line for explicit type declaration (@var $variable Classname)
			for line in lines
				" in file lookup for /* @var $foo Class */
				if line =~# '@var\s\+'.object.'\s\+'.class_name_pattern
					let classname_candidate = matchstr(line, '@var\s\+'.object.'\s\+\zs'.class_name_pattern.'\(\[\]\)\?')
					let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
					break
				endif
				" in file lookup for /* @var Class $foo */
				if line =~# '@var\s\+'.class_name_pattern.'\s\+'.object
					let classname_candidate = matchstr(line, '@var\s\+\zs'.class_name_pattern.'\(\[\]\)\?\ze'.'\s\+'.object)
					let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
					break
				endif
			endfor
		endif

		if classname_candidate != ''
			let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
			" return absolute classname, without leading \
			return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
		endif
		" scan the file backwards from the current line
		let i = 1
		for line in lines " {{{
			" do in-file lookup of $var = new Class
			if line =~# '^\s*'.object.'\s*=\s*new\s\+'.class_name_pattern && !object_is_array
				let classname_candidate = matchstr(line, object.'\c\s*=\s*new\s*\zs'.class_name_pattern.'\ze')
				let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
				break
			endif

			" in-file lookup for Class::getInstance()
			if line =~# '^\s*'.object.'\s*=&\?\s*'.class_name_pattern.'\s*::\s*getInstance' && !object_is_array
				let classname_candidate = matchstr(line, object.'\s*=&\?\s*\zs'.class_name_pattern.'\ze\s*::\s*getInstance')
				let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
				break
			endif

			" do in-file lookup for static method invocation of a built-in class, like: $d = DateTime::createFromFormat()
			if line =~# '^\s*'.object.'\s*=&\?\s*'.class_name_pattern.'\s*::\s*$\?[a-zA-Z_0-9\x7f-\xff]\+'
				let classname  = matchstr(line, '^\s*'.object.'\s*=&\?\s*\zs'.class_name_pattern.'\ze\s*::')
				if has_key(a:imports, classname) && a:imports[classname].kind == 'c'
					let classname = a:imports[classname].name
				endif
				if has_key(g:php_builtin_classes, tolower(classname))
					let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*'))
					let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname, '\', {}, sub_methodstack)
					return classname_candidate
				else
					" try to get the class name from the static method's docblock
					let [classname, namespace_for_class] = phpcomplete#ExpandClassName(classname, a:current_namespace, a:imports)
					let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*'))
					let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(
						\ classname,
						\ namespace_for_class,
						\ a:imports,
						\ sub_methodstack)

					return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
				endif
			endif

			" function declaration line
			if line =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*('
				let function_lines = join(reverse(copy(lines)), " ")
				" search for type hinted arguments
				if function_lines =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*(.\{-}'.class_name_pattern.'\s\+'.object && !object_is_array
					let f_args = matchstr(function_lines, '\cfunction\(\s\+'.function_name_pattern.'\)\?\s*(\zs.\{-}\ze)')
					let args = split(f_args, '\s*\zs,\ze\s*')
					for arg in args
						if arg =~# object.'\(,\|$\)'
							let classname_candidate = matchstr(arg, '\s*\zs'.class_name_pattern.'\ze\s\+'.object)
							let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
							break
						endif
					endfor
					if classname_candidate != ''
						break
					endif
				endif

				" search for docblock for the function
				let match_line = substitute(line, '\\', '\\\\', 'g')
				let sccontent = getline(0, a:start_line - i)
				let doc_str = phpcomplete#GetDocBlock(sccontent, match_line)
				if doc_str != ''
					let docblock = phpcomplete#ParseDocBlock(doc_str)
					for param in docblock.params
						if param.name =~? object
							let classname_candidate = matchstr(param.type, class_name_pattern.'\(\[\]\)\?')
							let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
							break
						endif
					endfor
					if classname_candidate != ''
						break
					endif
				endif
			endif

			" assignment for the variable in question with a variable on the right hand side
			if line =~# '^\s*'.object.'\s*=&\?\s\+\(clone\)\?\s*'.variable_name_pattern

				" try to find the next non-comment or string ";" char
				let start_col = match(line, '^\s*'.object.'\C\s*=\zs&\?\s\+\(clone\)\?\s*'.variable_name_pattern)
				let filelines = reverse(copy(lines))
				let [pos, char] = s:getNextCharWithPos(filelines, [len(filelines) - i, start_col])
				let chars_read = 1
				let last_pos = pos
				" function_boundary == 0 if we are not in a function
				let real_lines_offset = len(function_boundary) == 1 ? 1 : function_boundary[0][0]
				" read while end of the file
				while char != 'EOF' && chars_read < 1000
					let last_pos = pos
					let [pos, char] = s:getNextCharWithPos(filelines, pos)
					let chars_read += 1
					" we got a candidate
					if char == ';'
						" pos values is relative to the function's lines,
						" line 0 need to be offsetted with the line number
						" where te function was started to get the line number
						" in real buffer terms
						let synIDName = synIDattr(synID(real_lines_offset + pos[0], pos[1] + 1, 0), 'name')
						" it's not a comment or string, end search
						if synIDName !~? 'comment\|string'
							break
						endif
					endif
				endwhile

				let prev_context = phpcomplete#GetCurrentInstruction(real_lines_offset + last_pos[0], last_pos[1], b:phpbegin)
				if prev_context == ''
					" cannot get previous context give up
					return
				endif
				let prev_class = phpcomplete#GetClassName(a:start_line - i, prev_context, a:current_namespace, a:imports)

				if stridx(prev_class, '\') != -1
					let classname_parts = split(prev_class, '\\\+')
					let classname_candidate = classname_parts[-1]
					let class_candidate_namespace = join(classname_parts[0:-2], '\')
				else
					let classname_candidate = prev_class
					let class_candidate_namespace = '\'
				endif
				break
			endif

			" assignment for the variable in question with a function on the right hand side
			if line =~# '^\s*'.object.'\s*=&\?\s*'.function_invocation_pattern
				" try to find the next non-comment or string ";" char
				let start_col = match(line, '\C^\s*'.object.'\s*=\zs&\?\s*'.function_invocation_pattern)
				let filelines = reverse(copy(lines))
				let [pos, char] = s:getNextCharWithPos(filelines, [len(filelines) - i, start_col])
				let chars_read = 1
				let last_pos = pos
				" function_boundary == 0 if we are not in a function
				let real_lines_offset = len(function_boundary) == 1 ? 1 : function_boundary[0][0]
				" read while end of the file
				while char != 'EOF' && chars_read < 1000
					let last_pos = pos
					let [pos, char] = s:getNextCharWithPos(filelines, pos)
					let chars_read += 1
					" we got a candidate
					if char == ';'
						" pos values is relative to the function's lines,
						" line 0 need to be offsetted with the line number
						" where te function was started to get the line number
						" in real buffer terms
						let synIDName = synIDattr(synID(real_lines_offset + pos[0], pos[1] + 1, 0), 'name')
						" it's not a comment or string, end search
						if synIDName !~? 'comment\|string'
							break
						endif
					endif
				endwhile

				let prev_context = phpcomplete#GetCurrentInstruction(real_lines_offset + last_pos[0], last_pos[1], b:phpbegin)
				if prev_context == ''
					" cannot get previous context give up
					return
				endif

				let function_name = matchstr(prev_context, '^'.function_invocation_pattern.'\ze')
				let function_name = matchstr(function_name, '^\zs.\+\ze\s*($') " strip the trailing (
				let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports)

				let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace)
				if function_file == ''
					let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
				endif

				if function_file == 'VIMPHP_BUILTINFUNCTION'
					" built in function, grab the return type from the info string
					let return_type = matchstr(g:php_builtin_functions[function_name.'('], '\v\|\s+\zs.+$')
					let classname_candidate = return_type
					let class_candidate_namespace = '\'
					break
				elseif function_file != '' && filereadable(function_file)
					let file_lines = readfile(function_file)
					let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
					let docblock = phpcomplete#ParseDocBlock(docblock_str)
					if has_key(docblock.return, 'type')
						let classname_candidate = docblock.return.type
						let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
						" try to expand the classname of the returned type with the context got from the function's source file
						let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
						break
					endif
				endif
			endif

			" foreach with the variable in question
			if line =~? 'foreach\s*(.\{-}\s\+'.object.'\s*)'
				let sub_context = matchstr(line, 'foreach\s*(\s*\zs.\{-}\ze\s\+as')
				let prev_class = phpcomplete#GetClassName(a:start_line - i, sub_context, a:current_namespace, a:imports)

				" the iterated expression should return an array type
				if prev_class =~ '\[\]$'
					let prev_class = matchstr(prev_class, '\v^[^[]+')
				else
					return
				endif

				if stridx(prev_class, '\') != -1
					let classname_parts = split(prev_class, '\\\+')
					let classname_candidate = classname_parts[-1]
					let class_candidate_namespace = join(classname_parts[0:-2], '\')
				else
					let classname_candidate = prev_class
					let class_candidate_namespace = '\'
				endif
				break
			endif

			" catch clause with the variable in question
			if line =~? 'catch\s*(\zs'.class_name_pattern.'\ze\s\+'.object
				let classname = matchstr(line, 'catch\s*(\zs'.class_name_pattern.'\ze\s\+'.object)
				if stridx(classname, '\') != -1
					let classname_parts = split(classname, '\\\+')
					let classname_candidate = classname_parts[-1]
					let class_candidate_namespace = join(classname_parts[0:-2], '\')
				else
					let classname_candidate = classname
					let class_candidate_namespace = '\'
				endif
				break
			endif

			let i += 1
		endfor " }}}

		if classname_candidate != ''
			let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
			" return absolute classname, without leading \
			return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
		endif

		" OK, first way failed, now check tags file(s)
		" This method is useless when local variables are not indexed by ctags and
		" pretty inaccurate even if it is
		if g:phpcomplete_search_tags_for_variables
			let tags = phpcomplete#GetTaglist('^'.substitute(object, '^\$', '', ''))
			if len(tags) == 0
				return
			else
				for tag in tags
					if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze'
						let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze')
						" unescape the classname, it would have "\" doubled since it is an ex command
						let classname = substitute(classname, '\\\(\_.\)', '\1', 'g')
						return classname
					endif
				endfor
			endif
		endif
	endif
endfunction
" }}}

function! phpcomplete#GetClassLocation(classname, namespace) " {{{
	" Check classname may be name of built in object
	if has_key(g:php_builtin_classes, tolower(a:classname)) && (a:namespace == '' || a:namespace == '\')
		return 'VIMPHP_BUILTINOBJECT'
	endif
	if has_key(g:php_builtin_interfaces, tolower(a:classname)) && (a:namespace == '' || a:namespace == '\')
		return 'VIMPHP_BUILTINOBJECT'
	endif

	if a:namespace == '' || a:namespace == '\'
		let search_namespace = '\'
	else
		let search_namespace = tolower(a:namespace)
	endif
	let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(getline(0, line('.')))

	" do in-file lookup for class definition
	let i = 1
	while i < line('.')
		let line = getline(line('.')-i)
		if line =~? '^\s*\(abstract\s\+\|final\s\+\)*\s*\(class\|interface\|trait\)\s*'.a:classname.'\(\s\+\|$\|{\)' && tolower(current_namespace) == search_namespace
			return expand('%:p')
		else
			let i += 1
			continue
		endif
	endwhile

	" Get class location from tags
	let no_namespace_candidate = ''
	let tags = phpcomplete#GetTaglist('^'.a:classname.'$')
	for tag in tags
		" We'll allow interfaces and traits to be handled classes since you
		" can't have colliding names with different kinds anyway
		if tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't'
			if !has_key(tag, 'namespace')
				let no_namespace_candidate = tag.filename
			else
				if search_namespace == tolower(tag.namespace)
					return tag.filename
				endif
			endif
		endif
	endfor
	if no_namespace_candidate != ''
		return no_namespace_candidate
	endif

	return ''
endfunction
" }}}

function! phpcomplete#GetFunctionLocation(function_name, namespace) " {{{
	" builtin functions doesn't need explicit \ in front of them even in namespaces,
	" aliased built-in function names are not handled
	if has_key(g:php_builtin_functions, a:function_name.'(')
		return 'VIMPHP_BUILTINFUNCTION'
	endif


	" do in-file lookup for function definition
	let i = 1
	let buffer_lines = getline(1, line('$'))
	for line in buffer_lines
		if line =~? '^\s*function\s\+&\?'.a:function_name.'\s*('
			return expand('%:p')
		endif
	endfor


	if a:namespace == '' || a:namespace == '\'
		let search_namespace = '\'
	else
		let search_namespace = tolower(a:namespace)
	endif
	let no_namespace_candidate = ''
	let tags = phpcomplete#GetTaglist('\c^'.a:function_name.'$')

	for tag in tags
		if tag.kind == 'f'
			if !has_key(tag, 'namespace')
				let no_namespace_candidate = tag.filename
			else
				if search_namespace == tolower(tag.namespace)
					return tag.filename
				endif
			endif
		endif
	endfor
	if no_namespace_candidate != ''
		return no_namespace_candidate
	endif

	return ''
endfunction
" }}}

function! phpcomplete#GetCachedClassContents(classlocation, class_name) " {{{
	let full_file_path = fnamemodify(a:classlocation, ':p')
	let cache_key = full_file_path.'#'.a:class_name.'#'.getftime(full_file_path)

	" try to read from the cache first
	if has_key(s:cache_classstructures, cache_key)
		let classcontents = s:cache_classstructures[cache_key]
		" cached class contents can contain content from multiple files (superclasses) so we have to
		" validate cached result's validness by the filemtimes used to create the cached value
		let valid = 1
		for classstructure in classcontents
			if getftime(classstructure.file) != classstructure.mtime
				let valid = 0
				" we could break here, but the time required for checking probably worth
				" the the memory we can free by checking every file in the cached hirearchy
				call phpcomplete#ClearCachedClassContents(classstructure.file)
			endif
		endfor

		if valid
			" cache hit, we found an entry for this file + class pair and every
			" file in the response is also valid
			return classcontents
		else
			" clear the outdated cached value from the cache store
			call remove(s:cache_classstructures, cache_key)
			call phpcomplete#ClearCachedClassContents(full_file_path)

			" fall trough for the read from files path
		endif
	else
		call phpcomplete#ClearCachedClassContents(full_file_path)
	endif

	" cache miss, fetch the content from the files itself
	let classfile = readfile(a:classlocation)
	let classcontents = phpcomplete#GetClassContentsStructure(full_file_path, classfile, a:class_name)
	let s:cache_classstructures[cache_key] = classcontents

	return classcontents
endfunction " }}}

function! phpcomplete#ClearCachedClassContents(full_file_path) " {{{
	for [cache_key, cached_value] in items(s:cache_classstructures)
		if stridx(cache_key, a:full_file_path.'#') == 0
			call remove(s:cache_classstructures, cache_key)
		endif
	endfor
endfunction " }}}

function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_name) " {{{
	" returns dictionary containing content, namespace and imports for the class and all parent classes.
	" Example:
	" [
	"	{
	"		class: 'foo',
	"		content: '... class foo extends bar ... ',
	"		namespace: 'NS\Foo',
	"		imports : { ... },
	"		file: '/foo.php',
	"		mtime: 42,
	"	},
	"	{
	"		class: 'bar',
	"		content: '... class bar extends baz ... ',
	"		namespace: 'NS\Bar',
	"		imports : { ... }
	"		file: '/bar.php',
	"		mtime: 42,
	"	},
	"	...
	" ]
	"
	let full_file_path = fnamemodify(a:file_path, ':p')
	let class_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
	let cfile = join(a:file_lines, "\n")
	let result = []
	" We use new buffer and (later) normal! because
	" this is the most efficient way. The other way
	" is to go through the looong string looking for
	" matching {}

	" remember the window we started at
	let phpcomplete_original_window = winnr()

	silent! below 1new
	silent! 0put =cfile
	call search('\c\(class\|interface\|trait\)\_s\+'.a:class_name.'\(\>\|$\)')
	let cfline = line('.')
	call search('{')
	let endline = line('.')

	let content = join(getline(cfline, endline), "\n")
	" Catch extends
	if content =~? 'extends'
		let extends_string = matchstr(content, '\(class\|interface\)\_s\+'.a:class_name.'\_.\+extends\_s\+\zs\('.class_name_pattern.'\(,\|\_s\)*\)\+\ze\(extends\|{\)')
		let extended_classes = map(split(extends_string, '\(,\|\_s\)\+'), 'substitute(v:val, "\\_s\\+", "", "g")')
	else
		let extended_classes = ''
	endif

	" Catch implements
	if content =~? 'implements'
		let implements_string = matchstr(content, 'class\_s\+'.a:class_name.'\_.\+implements\_s\+\zs\('.class_name_pattern.'\(,\|\_s\)*\)\+\ze')
		let implemented_interfaces = map(split(implements_string, '\(,\|\_s\)\+'), 'substitute(v:val, "\\_s\\+", "", "g")')
	else
		let implemented_interfaces = []
	endif
	call searchpair('{', '', '}', 'W')
	let class_closing_bracket_line = line('.')

	" Include class docblock
	let doc_line = cfline - 1
	if getline(doc_line) =~? '^\s*\*/'
		while doc_line != 0
			if getline(doc_line) =~? '^\s*/\*\*'
				let cfline = doc_line
				break
			endif
			let doc_line -= 1
		endwhile
	endif

	let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")

	let used_traits = []
	" move back to the line next to the class's definition
	call cursor(endline + 1, 1)
	let keep_searching = 1
	while keep_searching != 0
		" try to grab "use..." keywords
		let [lnum, col] = searchpos('\c^\s\+use\s\+'.class_name_pattern, 'cW', class_closing_bracket_line)
		let syn_name = synIDattr(synID(lnum, col, 0), "name")
		if syn_name =~? 'string\|comment'
			call cursor(lnum + 1, 1)
			continue
		endif

		let trait_line = getline(lnum)
		if trait_line !~? ';'
			" try to find the next line containing ';'
			let l = lnum
			let search_line = trait_line

			" add lines from the file until theres no ';' in them
			while search_line !~? ';' && l > 0
				" file lines are reversed so we need to go backwards
				let l += 1
				let search_line = getline(l)
				let trait_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g')
			endwhile
		endif
		let use_expression = matchstr(trait_line, '^\s*use\s\+\zs.\{-}\ze;')
		let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")')
		let used_traits += map(use_parts, 'substitute(v:val, "\\s", "", "g")')
		call cursor(lnum + 1, 1)

		if [lnum, col] == [0, 0]
			let keep_searching = 0
		endif
	endwhile

	silent! bw! %

	let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(a:file_lines[0:cfline])
	" go back to original window
	exe phpcomplete_original_window.'wincmd w'
	call add(result, {
				\ 'class': a:class_name,
				\ 'content': classcontent,
				\ 'namespace': current_namespace,
				\ 'imports': imports,
				\ 'file': full_file_path,
				\ 'mtime': getftime(full_file_path),
				\ })

	let all_extends = used_traits
	if len(extended_classes) > 0
		call extend(all_extends, extended_classes)
	endif
	if len(implemented_interfaces) > 0
		call extend(all_extends, implemented_interfaces)
	endif
	if len(all_extends) > 0
		for class in all_extends
			let [class, namespace] = phpcomplete#ExpandClassName(class, current_namespace, imports)
			if namespace == ''
				let namespace = '\'
			endif
			let classlocation = phpcomplete#GetClassLocation(class, namespace)
			if classlocation == "VIMPHP_BUILTINOBJECT"
				if has_key(g:php_builtin_classes, tolower(class))
					let result += [phpcomplete#GenerateBuiltinClassStub('class', g:php_builtin_classes[tolower(class)])]
				endif
				if has_key(g:php_builtin_interfaces, tolower(class))
					let result += [phpcomplete#GenerateBuiltinClassStub('interface', g:php_builtin_interfaces[tolower(class)])]
				endif
			elseif classlocation != '' && filereadable(classlocation)
				let full_file_path = fnamemodify(classlocation, ':p')
				let result += phpcomplete#GetClassContentsStructure(full_file_path, readfile(full_file_path), class)
			elseif tolower(current_namespace) == tolower(namespace) && match(join(a:file_lines, "\n"), '\c\(class\|interface\|trait\)\_s\+'.class.'\(\>\|$\)') != -1
				" try to find the declaration in the same file.
				let result += phpcomplete#GetClassContentsStructure(full_file_path, a:file_lines, class)
			endif
		endfor
	endif

	return result
endfunction
" }}}

function! phpcomplete#GetClassContents(classlocation, class_name) " {{{
	let classcontents = phpcomplete#GetCachedClassContents(a:classlocation, a:class_name)
	let result = []
	for classstructure in classcontents
		call add(result, classstructure.content)
	endfor
	return join(result, "\n")
endfunction
" }}}

function! phpcomplete#GenerateBuiltinClassStub(type, class_info) " {{{
	let re = a:type.' '.a:class_info['name']." {"
	if has_key(a:class_info, 'constants')
		for [name, initializer] in items(a:class_info.constants)
			let re .= "\n\tconst ".name." = ".initializer.";"
		endfor
	endif
	if has_key(a:class_info, 'properties')
		for [name, info] in items(a:class_info.properties)
			let re .= "\n\t// @var $".name." ".info.type
			let re .= "\n\tpublic $".name.";"
		endfor
	endif
	if has_key(a:class_info, 'static_properties')
		for [name, info] in items(a:class_info.static_properties)
			let re .= "\n\t// @var ".name." ".info.type
			let re .= "\n\tpublic static ".name." = ".info.initializer.";"
		endfor
	endif
	if has_key(a:class_info, 'methods')
		for [name, info] in items(a:class_info.methods)
			if name =~ '^__'
				continue
			endif
			let re .= "\n\t/**"
			let re .= "\n\t * ".name
			let re .= "\n\t *"
			let re .= "\n\t * @return ".info.return_type
			let re .= "\n\t */"
			let re .= "\n\tpublic function ".name."(".info.signature."){"
			let re .= "\n\t}"
		endfor
	endif
	if has_key(a:class_info, 'static_methods')
		for [name, info] in items(a:class_info.static_methods)
			let re .= "\n\t/**"
			let re .= "\n\t * ".name
			let re .= "\n\t *"
			let re .= "\n\t * @return ".info.return_type
			let re .= "\n\t */"
			let re .= "\n\tpublic static function ".name."(".info.signature."){"
			let re .= "\n\t}"
		endfor
	endif
	let re .= "\n}"

	return { a:type : a:class_info['name'],
				\ 'content': re,
				\ 'namespace': '',
				\ 'imports': {},
				\ 'file': 'VIMPHP_BUILTINOBJECT',
				\ 'mtime': 0,
				\ }
endfunction " }}}

function! phpcomplete#GetDocBlock(sccontent, search) " {{{
	let i = 0
	let l = 0
	let comment_start = -1
	let comment_end = -1
	let sccontent_len = len(a:sccontent)

	while (i < sccontent_len)
		let line = a:sccontent[i]
		" search for a function declaration
		if line =~? a:search
			if line =~? '@property'
				let doc_line = i
				while doc_line != sccontent_len - 1
					if a:sccontent[doc_line] =~? '^\s*\*/'
						let l = doc_line
						break
					endif
					let doc_line += 1
				endwhile
			else
				let l = i - 1
			endif
			" start backward search for the comment block
			while l != 0
				let line = a:sccontent[l]
				" if it's a one line docblock like comment and we can just return it right away
				if line =~? '^\s*\/\*\*.\+\*\/\s*$'
					return substitute(line, '\v^\s*(\/\*\*\s*)|(\s*\*\/)\s*$', '', 'g')
				"... or if comment end found save line position and end search
				elseif line =~? '^\s*\*/'
					let comment_end = l
					break
				" ... or the line doesn't blank (only whitespace or nothing) end search
				elseif line !~? '^\s*$'
					break
				endif
				let l -= 1
			endwhile
			" no comment found
			if comment_end == -1
				return ''
			end

			while l >= 0
				let line = a:sccontent[l]
				if line =~? '^\s*/\*\*'
					let comment_start = l
					break
				endif
				let l -= 1
			endwhile

			" no docblock comment start found
			if comment_start == -1
				return ''
			end

			let comment_start += 1 " we dont need the /**
			let comment_end   -= 1 " we dont need the */

			" remove leading whitespace and '*'s
			let docblock = join(map(copy(a:sccontent[comment_start :comment_end]), 'substitute(v:val, "^\\s*\\*\\s*", "", "")'), "\n")
			return docblock
		endif
		let i += 1
	endwhile
	return ''
endfunction
" }}}

function! phpcomplete#ParseDocBlock(docblock) " {{{
	let res = {
		\ 'description': '',
		\ 'params': [],
		\ 'return': {},
		\ 'throws': [],
		\ 'var': {},
		\ 'properties': [],
		\ }

	let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@type\|@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
	let docblock_lines = split(a:docblock, "\n")

	let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"')
	for param_line in param_lines
		let parts = matchlist(param_line, '@param\s\+\(\S\+\)\s\+\(\S\+\)\s*\(.*\)')
		if len(parts) > 0
			call add(res.params, {
						\ 'line': parts[0],
						\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 1, '')),
						\ 'name': get(parts, 2, ''),
						\ 'description': get(parts, 3, '')})
		endif
	endfor

	let return_line = filter(copy(docblock_lines), 'v:val =~? "^@return"')
	if len(return_line) > 0
		let return_parts = matchlist(return_line[0], '@return\s\+\(\S\+\)\s*\(.*\)')
		let res['return'] = {
					\ 'line': return_parts[0],
					\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(return_parts, 1, '')),
					\ 'description': get(return_parts, 2, '')}
	endif

	let exception_lines = filter(copy(docblock_lines), 'v:val =~? "^\\(@throws\\|@exception\\)"')
	for exception_line in exception_lines
		let parts = matchlist(exception_line, '^\(@throws\|@exception\)\s\+\(\S\+\)\s*\(.*\)')
		if len(parts) > 0
			call add(res.throws, {
						\ 'line': parts[0],
						\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')),
						\ 'description': get(parts, 3, '')})
		endif
	endfor

	let var_line = filter(copy(docblock_lines), 'v:val =~? "^\\(@var\\|@type\\)"')
	if len(var_line) > 0
		let var_parts = matchlist(var_line[0], '\(@var\|@type\)\s\+\(\S\+\)\s*\(.*\)')
		let res['var'] = {
					\ 'line': var_parts[0],
					\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 2, '')),
					\ 'description': get(var_parts, 3, '')}
	endif

	let property_lines = filter(copy(docblock_lines), 'v:val =~? "^@property"')
	for property_line in property_lines
		let parts = matchlist(property_line, '\(@property\)\s\+\(\S\+\)\s*\(.*\)')
		if len(parts) > 0
			call add(res.properties, {
						\ 'line': parts[0],
						\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')),
						\ 'description': get(parts, 3, '')})
		endif
	endfor

	return res
endfunction
" }}}

function! phpcomplete#GetTypeFromDocBlockParam(docblock_type) " {{{
	if a:docblock_type !~ '|'
		return a:docblock_type
	endif

	let primitive_types = [
				\ 'string', 'float', 'double', 'int',
				\ 'scalar', 'array', 'bool', 'void', 'mixed',
				\ 'null', 'callable', 'resource', 'object']

	" add array of primitives to the list too, like string[]
	let primitive_types += map(copy(primitive_types), 'v:val."[]"')
	let types = split(a:docblock_type, '|')
	for type in types
		if index(primitive_types, type) == -1
			return type
		endif
	endfor

	" only primitive types found, return the first one
	return types[0]

endfunction
" }}}

function! phpcomplete#FormatDocBlock(info) " {{{
	let res = ''
	if len(a:info.description)
		let res .= "Description:\n".join(map(split(a:info['description'], "\n"), '"\t".v:val'), "\n")."\n"
	endif

	if len(a:info.params)
		let res .= "\nArguments:\n"
		for arginfo in a:info.params
			let res .= "\t".arginfo['name'].' '.arginfo['type']
			if len(arginfo.description) > 0
				let res .= ': '.arginfo['description']
			endif
			let res .= "\n"
		endfor
	endif

	if has_key(a:info.return, 'type')
		let res .= "\nReturn:\n\t".a:info['return']['type']
		if len(a:info.return.description) > 0
			let res .= ": ".a:info['return']['description']
		endif
		let res .= "\n"
	endif

	if len(a:info.throws)
		let res .= "\nThrows:\n"
		for excinfo in a:info.throws
			let res .= "\t".excinfo['type']
			if len(excinfo['description']) > 0
				let res .= ": ".excinfo['description']
			endif
			let res .= "\n"
		endfor
	endif

	if has_key(a:info.var, 'type')
		let res .= "Type:\n\t".a:info['var']['type']."\n"
		if len(a:info['var']['description']) > 0
			let res .= ': '.a:info['var']['description']
		endif
	endif

	return res
endfunction!
" }}}

function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
	let original_window = winnr()

	silent! below 1new
	silent! 0put =a:file_lines
	normal! G

	" clear out classes, functions and other blocks
	while 1
		let block_start_pos = searchpos('\c\(class\|trait\|function\|interface\)\s\+\_.\{-}\zs{', 'Web')
		if block_start_pos == [0, 0]
			break
		endif
		let block_end_pos = searchpairpos('{', '', '}\|\%$', 'W', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')

		if block_end_pos != [0, 0]
			" end of the block found, just delete it
			silent! exec block_start_pos[0].','.block_end_pos[0].'d _'
		else
			" block pair not found, use block start as beginning and the end
			" of the buffer instead
			silent! exec block_start_pos[0].',$d _'
		endif
	endwhile
	normal! G

	" grab the remains
	let file_lines = reverse(getline(1, line('.') - 1))

	silent! bw! %
	exe original_window.'wincmd w'

	let namespace_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
	let i = 0
	let file_length = len(file_lines)
	let imports = {}
	let current_namespace = '\'

	while i < file_length
		let line = file_lines[i]

		if line =~? '^\(<?php\)\?\s*namespace\s*'.namespace_name_pattern
			let current_namespace = matchstr(line, '\c^\(<?php\)\?\s*namespace\s*\zs'.namespace_name_pattern.'\ze')
			break
		endif

		if line =~? '^\s*use\>'
			if line =~? ';'
				let use_line = line
			else
				" try to find the next line containing ';'
				let l = i
				let search_line = line
				let use_line = line

				" add lines from the file until theres no ';' in them
				while search_line !~? ';' && l > 0
					" file lines are reversed so we need to go backwards
					let l -= 1
					let search_line = file_lines[l]
					let use_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g')
				endwhile
			endif
			let use_expression = matchstr(use_line, '^\c\s*use\s\+\zs.\{-}\ze;')
			let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")')
			for part in use_parts
				if part =~? '\s\+as\s\+'
					let [object, name] = split(part, '\s\+as\s\+\c')
					let object = substitute(object, '^\\', '', '')
					let name   = substitute(name, '^\\', '', '')
				else
					let object = part
					let name = part
					let object = substitute(object, '^\\', '', '')
					let name   = substitute(name, '^\\', '', '')
					if name =~? '\\'
						let	name = matchstr(name, '\\\zs[^\\]\+\ze$')
					endif
				endif

				" leading slash is not required use imports are always absolute
				let imports[name] = {'name': object, 'kind': ''}
			endfor

			" find kind flags from tags or built in methods for the objects we extracted
			" they can be either classes, interfaces or namespaces, no other thing is importable in php
			for [key, import] in items(imports)
				" if theres a \ in the name we have it's definetly not a built in thing, look for tags
				if import.name =~ '\\'
					let patched_ctags_detected = 0
					let [classname, namespace_for_classes] = phpcomplete#ExpandClassName(import.name, '\', {})
					let namespace_name_candidate = substitute(import.name, '\\', '\\\\', 'g')
					" can be a namespace name as is, or can be a tagname at the end with a namespace
					let tags = phpcomplete#GetTaglist('^\('.namespace_name_candidate.'\|'.classname.'\)$')
					if len(tags) > 0
						for tag in tags
							" if there's a namespace with the name of the import
							if tag.kind == 'n' && tag.name == import.name
								call extend(import, tag)
								let import['builtin'] = 0
								let patched_ctags_detected = 1
								break
							endif
							" if the name matches with the extracted classname and namespace
							if (tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't') && tag.name == classname
								if has_key(tag, 'namespace')
									let patched_ctags_detected = 1
									if tag.namespace == namespace_for_classes
										call extend(import, tag)
										let import['builtin'] = 0
										break
									endif
								elseif !exists('no_namespace_candidate')
									" save the first namespacless match to be used if no better
									" candidate found later on
									let tag.namespace = namespace_for_classes
									let no_namespace_candidate = tag
								endif
							endif
						endfor
						" there were a namespacless class name match, if we think that the
						" tags are not generated with patched ctags we will take it as a match
						if exists('no_namespace_candidate') && !patched_ctags_detected
							call extend(import, no_namespace_candidate)
							let import['builtin'] = 0
						endif
					else
						" if no tags are found, extract the namespace from the name
						let ns = matchstr(import.name, '\c\zs[a-zA-Z0-9\\]\+\ze\\' . name)
						if len(ns) > 0
							let import['name'] = name
							let import['namespace'] = ns
							let import['builtin'] = 0
						endif
					endif
				else
					" if no \ in the name, it can be a built in class
					if has_key(g:php_builtin_classnames, tolower(import.name))
						let import['kind'] = 'c'
						let import['builtin'] = 1
					elseif has_key(g:php_builtin_interfacenames, tolower(import.name))
						let import['kind'] = 'i'
						let import['builtin'] = 1
					else
						" or can be a tag with exactly matchign name
						let tags = phpcomplete#GetTaglist('^'.import['name'].'$')
						for tag in tags
							" search for the first matchin namespace, class, interface with no namespace
							if !has_key(tag, 'namespace') && (tag.kind == 'n' || tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't')
								call extend(import, tag)
								let import['builtin'] = 0
								break
							endif
						endfor
					endif
				endif
				if exists('no_namespace_candidate')
					unlet no_namespace_candidate
				endif
			endfor
		endif
		let i += 1
	endwhile
	let sorted_imports = {}
	for name in sort(keys(imports))
		let sorted_imports[name] = imports[name]
	endfor
	return [current_namespace, sorted_imports]
endfunction
" }}}

function! phpcomplete#GetCurrentFunctionBoundaries() " {{{
	let old_cursor_pos = [line('.'), col('.')]
	let current_line_no = old_cursor_pos[0]
	let function_pattern = '\c\(.*\%#\)\@!\_^\s*\zs\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\_.\{-}(\_.\{-})\_.\{-}{'

	let func_start_pos = searchpos(function_pattern, 'Wbc')
	if func_start_pos == [0, 0]
		call cursor(old_cursor_pos[0], old_cursor_pos[1])
		return 0
	endif

	" get the line where the function declaration actually started
	call search('\cfunction\_.\{-}(\_.\{-})\_.\{-}{', 'Wce')

	" get the position of the function block's closing "}"
	let func_end_pos = searchpairpos('{', '', '}', 'W')
	if func_end_pos == [0, 0]
		" there is a function start but no end found, assume that we are in a
		" function but the user did not typed the closing "}" yet and the
		" function runs to the end of the file
		let func_end_pos = [line('$'), len(getline(line('$')))]
	endif

	" Decho func_start_pos[0].' <= '.current_line_no.' && '.current_line_no.' <= '.func_end_pos[0]
	if func_start_pos[0] <= current_line_no && current_line_no <= func_end_pos[0]
		call cursor(old_cursor_pos[0], old_cursor_pos[1])
		return [func_start_pos, func_end_pos]
	endif

	call cursor(old_cursor_pos[0], old_cursor_pos[1])
	return 0
endfunction
" }}}

function! phpcomplete#ExpandClassName(classname, current_namespace, imports) " {{{
	" if there's an imported class, just use that class's information
	if has_key(a:imports, a:classname) && (a:imports[a:classname].kind == 'c' || a:imports[a:classname].kind == 'i' || a:imports[a:classname].kind == 't')
		let namespace = has_key(a:imports[a:classname], 'namespace') ? a:imports[a:classname].namespace : ''
		return [a:imports[a:classname].name, namespace]
	endif

	" try to find relative namespace in imports, imported names takes precedence over
	" current namespace when resolving relative namespaced class names
	if a:classname !~ '^\' && a:classname =~ '\\'
		let classname_parts = split(a:classname, '\\\+')
		if has_key(a:imports, classname_parts[0]) && a:imports[classname_parts[0]].kind == 'n'
			let classname_parts[0] = a:imports[classname_parts[0]].name
			let namespace = join(classname_parts[0:-2], '\')
			let classname = classname_parts[-1]
			return [classname, namespace]
		endif
	endif

	" no imported class or namespace matched, expand with the current namespace
	let namespace = ''
	let classname = a:classname
	" if the classname have namespaces in in or we are in a namespace
	if a:classname =~ '\\' || (a:current_namespace != '\' && a:current_namespace != '')
		" add current namespace to the a:classname
		if a:classname !~ '^\'
			let classname = a:current_namespace.'\'.substitute(a:classname, '^\\', '', '')
		else
			" remove leading \, tag files doesn't have those
			let classname = substitute(a:classname, '^\\', '', '')
		endif
		" split classname to classname and namespace
		let classname_parts = split(classname, '\\\+')
		if len(classname_parts) > 1
			let namespace = join(classname_parts[0:-2], '\')
			let classname = classname_parts[-1]
		endif
	endif
	return [classname, namespace]
endfunction
" }}}

function! phpcomplete#LoadData() " {{{
" Keywords/reserved words, all other special things
" Later it is possible to add some help to values, or type of defined variable
let g:php_keywords={'PHP_SELF':'','argv':'','argc':'','GATEWAY_INTERFACE':'','SERVER_ADDR':'','SERVER_NAME':'','SERVER_SOFTWARE':'','SERVER_PROTOCOL':'','REQUEST_METHOD':'','REQUEST_TIME':'','QUERY_STRING':'','DOCUMENT_ROOT':'','HTTP_ACCEPT':'','HTTP_ACCEPT_CHARSET':'','HTTP_ACCEPT_ENCODING':'','HTTP_ACCEPT_LANGUAGE':'','HTTP_CONNECTION':'','HTTP_POST':'','HTTP_REFERER':'','HTTP_USER_AGENT':'','HTTPS':'','REMOTE_ADDR':'','REMOTE_HOST':'','REMOTE_PORT':'','SCRIPT_FILENAME':'','SERVER_ADMIN':'','SERVER_PORT':'','SERVER_SIGNATURE':'','PATH_TRANSLATED':'','SCRIPT_NAME':'','REQUEST_URI':'','PHP_AUTH_DIGEST':'','PHP_AUTH_USER':'','PHP_AUTH_PW':'','AUTH_TYPE':'','and':'','or':'','xor':'','__FILE__':'','exception':'','__LINE__':'','as':'','break':'','case':'','class':'','const':'','continue':'','declare':'','default':'','do':'','echo':'','else':'','elseif':'','enddeclare':'','endfor':'','endforeach':'','endif':'','endswitch':'','endwhile':'','extends':'','for':'','foreach':'','function':'','global':'','if':'','new':'','static':'','switch':'','use':'','var':'','while':'','final':'','php_user_filter':'','interface':'','implements':'','public':'','private':'','protected':'','abstract':'','clone':'','try':'','catch':'','throw':'','cfunction':'','old_function':'','this':'','INI_USER': '','INI_PERDIR': '','INI_SYSTEM': '','INI_ALL': '','ABDAY_1': '','ABDAY_2': '','ABDAY_3': '','ABDAY_4': '','ABDAY_5': '','ABDAY_6': '','ABDAY_7': '','DAY_1': '','DAY_2': '','DAY_3': '','DAY_4': '','DAY_5': '','DAY_6': '','DAY_7': '','ABMON_1': '','ABMON_2': '','ABMON_3': '','ABMON_4': '','ABMON_5': '','ABMON_6': '','ABMON_7': '','ABMON_8': '','ABMON_9': '','ABMON_10': '','ABMON_11': '','ABMON_12': '','MON_1': '','MON_2': '','MON_3': '','MON_4': '','MON_5': '','MON_6': '','MON_7': '','MON_8': '','MON_9': '','MON_10': '','MON_11': '','MON_12': '','AM_STR': '','D_T_FMT': '','ALT_DIGITS': '',}
" One giant hash of all built-in function, class, interface and constant grouped by extension
let php_builtin = {'functions':{},'classes':{},'interfaces':{},'constants':{},}
let php_builtin['functions']['math']={'abs(':'mixed $number | number','acos(':'float $arg | float','acosh(':'float $arg | float','asin(':'float $arg | float','asinh(':'float $arg | float','atan(':'float $arg | float','atan2(':'float $y, float $x | float','atanh(':'float $arg | float','base_convert(':'string $number, int $frombase, int $tobase | string','bindec(':'string $binary_string | number','ceil(':'float $value | float','cos(':'float $arg | float','cosh(':'float $arg | float','decbin(':'int $number | string','dechex(':'int $number | string','decoct(':'int $number | string','deg2rad(':'float $number | float','exp(':'float $arg | float','expm1(':'float $arg | float','floor(':'float $value | float','fmod(':'float $x, float $y | float','getrandmax(':'void | int','hexdec(':'string $hex_string | number','hypot(':'float $x, float $y | float','is_finite(':'float $val | bool','is_infinite(':'float $val | bool','is_nan(':'float $val | bool','lcg_value(':'void | float','log(':'float $arg [, float $base = M_E] | float','log10(':'float $arg | float','log1p(':'float $number | float','max(':'array $values | mixed','min(':'array $values | mixed','mt_getrandmax(':'void | int','mt_rand(':'void | int','mt_srand(':'[ int $seed] | void','octdec(':'string $octal_string | number','pi(':'void | float','pow(':'number $base, number $exp | number','rad2deg(':'float $number | float','rand(':'void | int','round(':'float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP]] | float','sin(':'float $arg | float','sinh(':'float $arg | float','sqrt(':'float $arg | float','srand(':'[ int $seed] | void','tan(':'float $arg | float','tanh(':'float $arg | float',}
let php_builtin['functions']['strings']={'addcslashes(':'string $str, string $charlist | string','addslashes(':'string $str | string','bin2hex(':'string $str | string','chop(':'chop — Alias of rtrim()','chr(':'int $ascii | string','chunk_split(':'string $body [, int $chunklen = 76 [, string $end = "\r\n"]] | string','convert_cyr_string(':'string $str, string $from, string $to | string','convert_uudecode(':'string $data | string','convert_uuencode(':'string $data | string','count_chars(':'string $string [, int $mode = 0] | mixed','crc32(':'string $str | int','crypt(':'string $str [, string $salt] | string','echo(':'string $arg1 [, string $...] | void','explode(':'string $delimiter, string $string [, int $limit] | array','fprintf(':'resource $handle, string $format [, mixed $args [, mixed $...]] | int','get_html_translation_table(':'[ int $table = HTML_SPECIALCHARS [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ''UTF-8'']]] | array','hebrev(':'string $hebrew_text [, int $max_chars_per_line = 0] | string','hebrevc(':'string $hebrew_text [, int $max_chars_per_line = 0] | string','hex2bin(':'string $data | string','html_entity_decode(':'string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ''UTF-8'']] | string','htmlentities(':'string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ''UTF-8'' [, bool $double_encode = true]]] | string','htmlspecialchars_decode(':'string $string [, int $flags = ENT_COMPAT | ENT_HTML401] | string','htmlspecialchars(':'string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ''UTF-8'' [, bool $double_encode = true]]] | string','implode(':'string $glue, array $pieces | string','join(':'join — Alias of implode()','lcfirst(':'string $str | string','levenshtein(':'string $str1, string $str2 | int','localeconv(':'void | array','ltrim(':'string $str [, string $character_mask] | string','md5_file(':'string $filename [, bool $raw_output = false] | string','md5(':'string $str [, bool $raw_output = false] | string','metaphone(':'string $str [, int $phonemes = 0] | string','money_format(':'string $format, float $number | string','nl_langinfo(':'int $item | string','nl2br(':'string $string [, bool $is_xhtml = true] | string','number_format(':'float $number [, int $decimals = 0] | string','ord(':'string $string | int','parse_str(':'string $str [, array &$arr] | void','print(':'string $arg | int','printf(':'string $format [, mixed $args [, mixed $...]] | int','quoted_printable_decode(':'string $str | string','quoted_printable_encode(':'string $str | string','quotemeta(':'string $str | string','rtrim(':'string $str [, string $character_mask] | string','setlocale(':'int $category, string $locale [, string $...] | string','sha1_file(':'string $filename [, bool $raw_output = false] | string','sha1(':'string $str [, bool $raw_output = false] | string','similar_text(':'string $first, string $second [, float &$percent] | int','soundex(':'string $str | string','sprintf(':'string $format [, mixed $args [, mixed $...]] | string','sscanf(':'string $str, string $format [, mixed &$...] | mixed','str_getcsv(':'string $input [, string $delimiter = '','' [, string $enclosure = ''"'' [, string $escape = ''\\'']]] | array','str_ireplace(':'mixed $search, mixed $replace, mixed $subject [, int &$count] | mixed','str_pad(':'string $input, int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT]] | string','str_repeat(':'string $input, int $multiplier | string','str_replace(':'mixed $search, mixed $replace, mixed $subject [, int &$count] | mixed','str_rot13(':'string $str | string','str_shuffle(':'string $str | string','str_split(':'string $string [, int $split_length = 1] | array','str_word_count(':'string $string [, int $format = 0 [, string $charlist]] | mixed','strcasecmp(':'string $str1, string $str2 | int','strchr(':'strchr — Alias of strstr()','strcmp(':'string $str1, string $str2 | int','strcoll(':'string $str1, string $str2 | int','strcspn(':'string $str1, string $str2 [, int $start [, int $length]] | int','strip_tags(':'string $str [, string $allowable_tags] | string','stripcslashes(':'string $str | string','stripos(':'string $haystack, string $needle [, int $offset = 0] | int','stripslashes(':'string $str | string','stristr(':'string $haystack, mixed $needle [, bool $before_needle = false] | string','strlen(':'string $string | int','strnatcasecmp(':'string $str1, string $str2 | int','strnatcmp(':'string $str1, string $str2 | int','strncasecmp(':'string $str1, string $str2, int $len | int','strncmp(':'string $str1, string $str2, int $len | int','strpbrk(':'string $haystack, string $char_list | string','strpos(':'string $haystack, mixed $needle [, int $offset = 0] | mixed','strrchr(':'string $haystack, mixed $needle | string','strrev(':'string $string | string','strripos(':'string $haystack, string $needle [, int $offset = 0] | int','strrpos(':'string $haystack, string $needle [, int $offset = 0] | int','strspn(':'string $subject, string $mask [, int $start [, int $length]] | int','strstr(':'string $haystack, mixed $needle [, bool $before_needle = false] | string','strtok(':'string $str, string $token | string','strtolower(':'string $str | string','strtoupper(':'string $string | string','strtr(':'string $str, string $from, string $to | string','substr_compare(':'string $main_str, string $str, int $offset [, int $length [, bool $case_insensitivity = false]] | int','substr_count(':'string $haystack, string $needle [, int $offset = 0 [, int $length]] | int','substr_replace(':'mixed $string, mixed $replacement, mixed $start [, mixed $length] | mixed','substr(':'string $string, int $start [, int $length] | string','trim(':'string $str [, string $character_mask = " \t\n\r\0\x0B"] | string','ucfirst(':'string $str | string','ucwords(':'string $str | string','vfprintf(':'resource $handle, string $format, array $args | int','vprintf(':'string $format, array $args | int','vsprintf(':'string $format, array $args | string','wordwrap(':'string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = false]]] | string',}
let php_builtin['functions']['apache']={'apache_child_terminate(':'void | bool','apache_get_modules(':'void | array','apache_get_version(':'void | string','apache_getenv(':'string $variable [, bool $walk_to_top = false] | string','apache_lookup_uri(':'string $filename | object','apache_note(':'string $note_name [, string $note_value = ""] | string','apache_request_headers(':'void | array','apache_reset_timeout(':'void | bool','apache_response_headers(':'void | array','apache_setenv(':'string $variable, string $value [, bool $walk_to_top = false] | bool','getallheaders(':'void | array','virtual(':'string $filename | bool',}
let php_builtin['functions']['arrays']={'array_change_key_case(':'array $array [, int $case = CASE_LOWER] | array','array_chunk(':'array $array, int $size [, bool $preserve_keys = false] | array','array_column(':'array $array, mixed $column_key [, mixed $index_key = null] | array','array_combine(':'array $keys, array $values | array','array_count_values(':'array $array | array','array_diff_assoc(':'array $array1, array $array2 [, array $...] | array','array_diff_key(':'array $array1, array $array2 [, array $...] | array','array_diff_uassoc(':'array $array1, array $array2 [, array $... [, callable $key_compare_func]] | array','array_diff_ukey(':'array $array1, array $array2 [, array $... [, callable $key_compare_func]] | array','array_diff(':'array $array1, array $array2 [, array $...] | array','array_fill_keys(':'array $keys, mixed $value | array','array_fill(':'int $start_index, int $num, mixed $value | array','array_filter(':'array $array [, callable $callback] | array','array_flip(':'array $array | array','array_intersect_assoc(':'array $array1, array $array2 [, array $...] | array','array_intersect_key(':'array $array1, array $array2 [, array $...] | array','array_intersect_uassoc(':'array $array1, array $array2 [, array $... [, callable $key_compare_func]] | array','array_intersect_ukey(':'array $array1, array $array2 [, array $... [, callable $key_compare_func]] | array','array_intersect(':'array $array1, array $array2 [, array $...] | array','array_key_exists(':'mixed $key, array $array | bool','array_keys(':'array $array [, mixed $search_value [, bool $strict = false]] | array','array_map(':'callable $callback, array $array1 [, array $...] | array','array_merge_recursive(':'array $array1 [, array $...] | array','array_merge(':'array $array1 [, array $...] | array','array_multisort(':'array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $...]]] | bool','array_pad(':'array $array, int $size, mixed $value | array','array_pop(':'array &$array | mixed','array_product(':'array $array | number','array_push(':'array &$array, mixed $value1 [, mixed $...] | int','array_rand(':'array $array [, int $num = 1] | mixed','array_reduce(':'array $array, callable $callback [, mixed $initial = NULL] | mixed','array_replace_recursive(':'array $array1, array $array2 [, array $...] | array','array_replace(':'array $array1, array $array2 [, array $...] | array','array_reverse(':'array $array [, bool $preserve_keys = false] | array','array_search(':'mixed $needle, array $haystack [, bool $strict = false] | mixed','array_shift(':'array &$array | mixed','array_slice(':'array $array, int $offset [, int $length = NULL [, bool $preserve_keys = false]] | array','array_splice(':'array &$input, int $offset [, int $length [, mixed $replacement = array()]] | array','array_sum(':'array $array | number','array_udiff_assoc(':'array $array1, array $array2 [, array $... [, callable $value_compare_func]] | array','array_udiff_uassoc(':'array $array1, array $array2 [, array $... [, callable $value_compare_func [, callable $key_compare_func]]] | array','array_udiff(':'array $array1, array $array2 [, array $... [, callable $value_compare_func]] | array','array_uintersect_assoc(':'array $array1, array $array2 [, array $... [, callable $value_compare_func]] | array','array_uintersect_uassoc(':'array $array1, array $array2 [, array $... [, callable $value_compare_func [, callable $key_compare_func]]] | array','array_uintersect(':'array $array1, array $array2 [, array $... [, callable $value_compare_func]] | array','array_unique(':'array $array [, int $sort_flags = SORT_STRING] | array','array_unshift(':'array &$array, mixed $value1 [, mixed $...] | int','array_values(':'array $array | array','array_walk_recursive(':'array &$array, callable $callback [, mixed $userdata = NULL] | bool','array_walk(':'array &$array, callable $callback [, mixed $userdata = NULL] | bool','array(':'[ mixed $...] | array','arsort(':'array &$array [, int $sort_flags = SORT_REGULAR] | bool','asort(':'array &$array [, int $sort_flags = SORT_REGULAR] | bool','compact(':'mixed $varname1 [, mixed $...] | array','count(':'mixed $array_or_countable [, int $mode = COUNT_NORMAL] | int','current(':'array &$array | mixed','each(':'array &$array | array','end(':'array &$array | mixed','extract(':'array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL]] | int','in_array(':'mixed $needle, array $haystack [, bool $strict = FALSE] | bool','key_exists(':'key_exists — Alias of array_key_exists()','key(':'array &$array | mixed','krsort(':'array &$array [, int $sort_flags = SORT_REGULAR] | bool','ksort(':'array &$array [, int $sort_flags = SORT_REGULAR] | bool','list(':'mixed $var1 [, mixed $...] | array','natcasesort(':'array &$array | bool','natsort(':'array &$array | bool','next(':'array &$array | mixed','pos(':'pos — Alias of current()','prev(':'array &$array | mixed','range(':'mixed $start, mixed $end [, number $step = 1] | array','reset(':'array &$array | mixed','rsort(':'array &$array [, int $sort_flags = SORT_REGULAR] | bool','shuffle(':'array &$array | bool','sizeof(':'sizeof — Alias of count()','sort(':'array &$array [, int $sort_flags = SORT_REGULAR] | bool','uasort(':'array &$array, callable $value_compare_func | bool','uksort(':'array &$array, callable $key_compare_func | bool','usort(':'array &$array, callable $value_compare_func | bool',}
let php_builtin['functions']['php_options_info']={'assert_options(':'int $what [, mixed $value] | mixed','assert(':'mixed $assertion [, string $description] | bool','cli_get_process_title(':'void | string','cli_set_process_title(':'string $title | bool','dl(':'string $library | bool','extension_loaded(':'string $name | bool','gc_collect_cycles(':'void | int','gc_disable(':'void | void','gc_enable(':'void | void','gc_enabled(':'void | bool','get_cfg_var(':'string $option | string','get_current_user(':'void | string','get_defined_constants(':'[ bool $categorize = false] | array','get_extension_funcs(':'string $module_name | array','get_include_path(':'void | string','get_included_files(':'void | array','get_loaded_extensions(':'[ bool $zend_extensions = false] | array','get_magic_quotes_gpc(':'void | bool','get_magic_quotes_runtime(':'void | bool','get_required_files(':'get_required_files — Alias of get_included_files()','getenv(':'string $varname | string','getlastmod(':'void | int','getmygid(':'void | int','getmyinode(':'void | int','getmypid(':'void | int','getmyuid(':'void | int','getopt(':'string $options [, array $longopts] | array','getrusage(':'[ int $who = 0] | array','ini_alter(':'ini_alter — Alias of ini_set()','ini_get_all(':'[ string $extension [, bool $details = true]] | array','ini_get(':'string $varname | string','ini_restore(':'string $varname | void','ini_set(':'string $varname, string $newvalue | string','magic_quotes_runtime(':'magic_quotes_runtime — Alias of set_magic_quotes_runtime()','memory_get_peak_usage(':'[ bool $real_usage = false] | int','memory_get_usage(':'[ bool $real_usage = false] | int','php_ini_loaded_file(':'void | string','php_ini_scanned_files(':'void | string','php_logo_guid(':'void | string','php_sapi_name(':'void | string','php_uname(':'[ string $mode = "a"] | string','phpcredits(':'[ int $flag = CREDITS_ALL] | bool','phpinfo(':'[ int $what = INFO_ALL] | bool','phpversion(':'[ string $extension] | string','putenv(':'string $setting | bool','restore_include_path(':'void | void','set_include_path(':'string $new_include_path | string','set_magic_quotes_runtime(':'bool $new_setting | bool','set_time_limit(':'int $seconds | void','sys_get_temp_dir(':'void | string','version_compare(':'string $version1, string $version2 [, string $operator] | mixed','zend_logo_guid(':'void | string','zend_thread_id(':'void | int','zend_version(':'void | string',}
let php_builtin['functions']['classes_objects']={'__autoload(':'string $class | void','call_user_method_array(':'string $method_name, object &$obj, array $params | mixed','call_user_method(':'string $method_name, object &$obj [, mixed $parameter [, mixed $...]] | mixed','class_alias(':'string $original, string $alias [, bool $autoload = TRUE] | bool','class_exists(':'string $class_name [, bool $autoload = true] | bool','get_called_class(':'void | string','get_class_methods(':'mixed $class_name | array','get_class_vars(':'string $class_name | array','get_class(':'[ object $object = NULL] | string','get_declared_classes(':'void | array','get_declared_interfaces(':'void | array','get_declared_traits(':'void | array','get_object_vars(':'object $object | array','get_parent_class(':'[ mixed $object] | string','interface_exists(':'string $interface_name [, bool $autoload = true] | bool','is_a(':'object $object, string $class_name [, bool $allow_string = FALSE] | bool','is_subclass_of(':'mixed $object, string $class_name [, bool $allow_string = TRUE] | bool','method_exists(':'mixed $object, string $method_name | bool','property_exists(':'mixed $class, string $property | bool','trait_exists(':'string $traitname [, bool $autoload] | bool',}
let php_builtin['functions']['urls']={'base64_decode(':'string $data [, bool $strict = false] | string','base64_encode(':'string $data | string','get_headers(':'string $url [, int $format = 0] | array','get_meta_tags(':'string $filename [, bool $use_include_path = false] | array','http_build_query(':'mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738]]] | string','parse_url(':'string $url [, int $component = -1] | mixed','rawurldecode(':'string $str | string','rawurlencode(':'string $str | string','urldecode(':'string $str | string','urlencode(':'string $str | string',}
let php_builtin['functions']['filesystem']={'basename(':'string $path [, string $suffix] | string','chgrp(':'string $filename, mixed $group | bool','chmod(':'string $filename, int $mode | bool','chown(':'string $filename, mixed $user | bool','clearstatcache(':'[ bool $clear_realpath_cache = false [, string $filename]] | void','copy(':'string $source, string $dest [, resource $context] | bool','dirname(':'string $path | string','disk_free_space(':'string $directory | float','disk_total_space(':'string $directory | float','diskfreespace(':'diskfreespace — Alias of disk_free_space()','fclose(':'resource $handle | bool','feof(':'resource $handle | bool','fflush(':'resource $handle | bool','fgetc(':'resource $handle | string','fgetcsv(':'resource $handle [, int $length = 0 [, string $delimiter = '','' [, string $enclosure = ''"'' [, string $escape = ''\\'']]]] | array','fgets(':'resource $handle [, int $length] | string','fgetss(':'resource $handle [, int $length [, string $allowable_tags]] | string','file_exists(':'string $filename | bool','file_get_contents(':'string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen]]]] | string','file_put_contents(':'string $filename, mixed $data [, int $flags = 0 [, resource $context]] | int','file(':'string $filename [, int $flags = 0 [, resource $context]] | array','fileatime(':'string $filename | int','filectime(':'string $filename | int','filegroup(':'string $filename | int','fileinode(':'string $filename | int','filemtime(':'string $filename | int','fileowner(':'string $filename | int','fileperms(':'string $filename | int','filesize(':'string $filename | int','filetype(':'string $filename | string','flock(':'resource $handle, int $operation [, int &$wouldblock] | bool','fnmatch(':'string $pattern, string $string [, int $flags = 0] | bool','fopen(':'string $filename, string $mode [, bool $use_include_path = false [, resource $context]] | resource','fpassthru(':'resource $handle | int','fputcsv(':'resource $handle, array $fields [, string $delimiter = '','' [, string $enclosure = ''"'']] | int','fputs(':'fputs — Alias of fwrite()','fread(':'resource $handle, int $length | string','fscanf(':'resource $handle, string $format [, mixed &$...] | mixed','fseek(':'resource $handle, int $offset [, int $whence = SEEK_SET] | int','fstat(':'resource $handle | array','ftell(':'resource $handle | int','ftruncate(':'resource $handle, int $size | bool','fwrite(':'resource $handle, string $string [, int $length] | int','glob(':'string $pattern [, int $flags = 0] | array','is_dir(':'string $filename | bool','is_executable(':'string $filename | bool','is_file(':'string $filename | bool','is_link(':'string $filename | bool','is_readable(':'string $filename | bool','is_uploaded_file(':'string $filename | bool','is_writable(':'string $filename | bool','is_writeable(':'is_writeable — Alias of is_writable()','lchgrp(':'string $filename, mixed $group | bool','lchown(':'string $filename, mixed $user | bool','link(':'string $target, string $link | bool','linkinfo(':'string $path | int','lstat(':'string $filename | array','mkdir(':'string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context]]] | bool','move_uploaded_file(':'string $filename, string $destination | bool','parse_ini_file(':'string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL]] | array','parse_ini_string(':'string $ini [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL]] | array','pathinfo(':'string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME] | mixed','pclose(':'resource $handle | int','popen(':'string $command, string $mode | resource','readfile(':'string $filename [, bool $use_include_path = false [, resource $context]] | int','readlink(':'string $path | string','realpath_cache_get(':'void | array','realpath_cache_size(':'void | int','realpath(':'string $path | string','rename(':'string $oldname, string $newname [, resource $context] | bool','rewind(':'resource $handle | bool','rmdir(':'string $dirname [, resource $context] | bool','set_file_buffer(':'set_file_buffer — Alias of stream_set_write_buffer()','stat(':'string $filename | array','symlink(':'string $target, string $link | bool','tempnam(':'string $dir, string $prefix | string','tmpfile(':'void | resource','touch(':'string $filename [, int $time = time() [, int $atime]] | bool','umask(':'[ int $mask] | int','unlink(':'string $filename [, resource $context] | bool',}
let php_builtin['functions']['variable_handling']={'boolval(':'mixed $var | boolean','debug_zval_dump(':'mixed $variable [, mixed $...] | void','doubleval(':'doubleval — Alias of floatval()','empty(':'mixed $var | bool','floatval(':'mixed $var | float','get_defined_vars(':'void | array','get_resource_type(':'resource $handle | string','gettype(':'mixed $var | string','import_request_variables(':'string $types [, string $prefix] | bool','intval(':'mixed $var [, int $base = 10] | int','is_array(':'mixed $var | bool','is_bool(':'mixed $var | bool','is_callable(':'callable $name [, bool $syntax_only = false [, string &$callable_name]] | bool','is_double(':'is_double — Alias of is_float()','is_float(':'mixed $var | bool','is_int(':'mixed $var | bool','is_integer(':'is_integer — Alias of is_int()','is_long(':'is_long — Alias of is_int()','is_null(':'mixed $var | bool','is_numeric(':'mixed $var | bool','is_object(':'mixed $var | bool','is_real(':'is_real — Alias of is_float()','is_resource(':'mixed $var | bool','is_scalar(':'mixed $var | bool','is_string(':'mixed $var | bool','isset(':'mixed $var [, mixed $...] | bool','print_r(':'mixed $expression [, bool $return = false] | mixed','serialize(':'mixed $value | string','settype(':'mixed &$var, string $type | bool','strval(':'mixed $var | string','unserialize(':'string $str | mixed','unset(':'mixed $var [, mixed $...] | void','var_dump(':'mixed $expression [, mixed $...] | void','var_export(':'mixed $expression [, bool $return = false] | mixed',}
let php_builtin['functions']['calendar']={'cal_days_in_month(':'int $calendar, int $month, int $year | int','cal_from_jd(':'int $jd, int $calendar | array','cal_info(':'[ int $calendar = -1] | array','cal_to_jd(':'int $calendar, int $month, int $day, int $year | int','easter_date(':'[ int $year] | int','easter_days(':'[ int $year [, int $method = CAL_EASTER_DEFAULT]] | int','frenchtojd(':'int $month, int $day, int $year | int','gregoriantojd(':'int $month, int $day, int $year | int','jddayofweek(':'int $julianday [, int $mode = CAL_DOW_DAYNO] | mixed','jdmonthname(':'int $julianday, int $mode | string','jdtofrench(':'int $juliandaycount | string','jdtogregorian(':'int $julianday | string','jdtojewish(':'int $juliandaycount [, bool $hebrew = false [, int $fl = 0]] | string','jdtojulian(':'int $julianday | string','jdtounix(':'int $jday | int','jewishtojd(':'int $month, int $day, int $year | int','juliantojd(':'int $month, int $day, int $year | int','unixtojd(':'[ int $timestamp = time()] | int',}
let php_builtin['functions']['function_handling']={'call_user_func_array(':'callable $callback, array $param_arr | mixed','call_user_func(':'callable $callback [, mixed $parameter [, mixed $...]] | mixed','create_function(':'string $args, string $code | string','forward_static_call_array(':'callable $function, array $parameters | mixed','forward_static_call(':'callable $function [, mixed $parameter [, mixed $...]] | mixed','func_get_arg(':'int $arg_num | mixed','func_get_args(':'void | array','func_num_args(':'void | int','function_exists(':'string $function_name | bool','get_defined_functions(':'void | array','register_shutdown_function(':'callable $callback [, mixed $parameter [, mixed $...]] | void','register_tick_function(':'callable $function [, mixed $arg [, mixed $...]] | bool','unregister_tick_function(':'string $function_name | void',}
let php_builtin['functions']['directories']={'chdir(':'string $directory | bool','chroot(':'string $directory | bool','closedir(':'[ resource $dir_handle] | void','dir(':'string $directory [, resource $context] | Directory','getcwd(':'void | string','opendir(':'string $path [, resource $context] | resource','readdir(':'[ resource $dir_handle] | string','rewinddir(':'[ resource $dir_handle] | void','scandir(':'string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context]] | array',}
let php_builtin['functions']['date_time']={'checkdate(':'int $month, int $day, int $year | bool','date_default_timezone_get(':'void | string','date_default_timezone_set(':'string $timezone_identifier | bool','date_parse_from_format(':'string $format, string $date | array','date_parse(':'string $date | array','date_sun_info(':'int $time, float $latitude, float $longitude | array','date_sunrise(':'int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunrise_zenith") [, float $gmt_offset = 0]]]]] | mixed','date_sunset(':'int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunset_zenith") [, float $gmt_offset = 0]]]]] | mixed','date(':'string $format [, int $timestamp = time()] | string','getdate(':'[ int $timestamp = time()] | array','gettimeofday(':'[ bool $return_float = false] | mixed','gmdate(':'string $format [, int $timestamp = time()] | string','gmmktime(':'[ int $hour = gmdate("H") [, int $minute = gmdate("i") [, int $second = gmdate("s") [, int $month = gmdate("n") [, int $day = gmdate("j") [, int $year = gmdate("Y") [, int $is_dst = -1]]]]]]] | int','gmstrftime(':'string $format [, int $timestamp = time()] | string','idate(':'string $format [, int $timestamp = time()] | int','localtime(':'[ int $timestamp = time() [, bool $is_associative = false]] | array','microtime(':'[ bool $get_as_float = false] | mixed','mktime(':'[ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1]]]]]]] | int','strftime(':'string $format [, int $timestamp = time()] | string','strptime(':'string $date, string $format | array','strtotime(':'string $time [, int $now = time()] | int','time(':'void | int','timezone_name_from_abbr(':'string $abbr [, int $gmtOffset = -1 [, int $isdst = -1]] | string','timezone_version_get(':'void | string',}
let php_builtin['functions']['network']={'checkdnsrr(':'string $host [, string $type = "MX"] | bool','closelog(':'void | bool','define_syslog_variables(':'void | void','dns_get_record(':'string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false]]]] | array','fsockopen(':'string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout")]]]] | resource','gethostbyaddr(':'string $ip_address | string','gethostbyname(':'string $hostname | string','gethostbynamel(':'string $hostname | array','gethostname(':'void | string','getmxrr(':'string $hostname, array &$mxhosts [, array &$weight] | bool','getprotobyname(':'string $name | int','getprotobynumber(':'int $number | string','getservbyname(':'string $service, string $protocol | int','getservbyport(':'int $port, string $protocol | string','header_register_callback(':'callable $callback | bool','header_remove(':'[ string $name] | void','header(':'string $string [, bool $replace = true [, int $http_response_code]] | void','headers_list(':'void | array','headers_sent(':'[ string &$file [, int &$line]] | bool','http_response_code(':'[ int $response_code] | int','inet_ntop(':'string $in_addr | string','inet_pton(':'string $address | string','ip2long(':'string $ip_address | int','long2ip(':'string $proper_address | string','openlog(':'string $ident, int $option, int $facility | bool','pfsockopen(':'string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout")]]]] | resource','setcookie(':'string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false]]]]]] | bool','setrawcookie(':'string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false]]]]]] | bool','socket_get_status(':'socket_get_status — Alias of stream_get_meta_data()','socket_set_blocking(':'socket_set_blocking — Alias of stream_set_blocking()','socket_set_timeout(':'socket_set_timeout — Alias of stream_set_timeout()','syslog(':'int $priority, string $message | bool',}
let php_builtin['functions']['spl']={'class_implements(':'mixed $class [, bool $autoload = true] | array','class_parents(':'mixed $class [, bool $autoload = true] | array','class_uses(':'mixed $class [, bool $autoload = true] | array','iterator_apply(':'Traversable $iterator, callable $function [, array $args] | int','iterator_count(':'Traversable $iterator | int','iterator_to_array(':'Traversable $iterator [, bool $use_keys = true] | array','spl_autoload_call(':'string $class_name | void','spl_autoload_extensions(':'[ string $file_extensions] | string','spl_autoload_functions(':'void | array','spl_autoload_register(':'[ callable $autoload_function [, bool $throw = true [, bool $prepend = false]]] | bool','spl_autoload_unregister(':'mixed $autoload_function | bool','spl_autoload(':'string $class_name [, string $file_extensions = spl_autoload_extensions()] | void','spl_classes(':'void | array','spl_object_hash(':'object $obj | string',}
let php_builtin['functions']['misc']={'connection_aborted(':'void | int','connection_status(':'void | int','connection_timeout(':'void | int','constant(':'string $name | mixed','define(':'string $name, mixed $value [, bool $case_insensitive = false] | bool','defined(':'string $name | bool','eval(':'string $code | mixed','exit(':'[ string $status] | void','get_browser(':'[ string $user_agent [, bool $return_array = false]] | mixed','__halt_compiler(':'void | void','highlight_file(':'string $filename [, bool $return = false] | mixed','highlight_string(':'string $str [, bool $return = false] | mixed','ignore_user_abort(':'[ string $value] | int','pack(':'string $format [, mixed $args [, mixed $...]] | string','php_check_syntax(':'string $filename [, string &$error_message] | bool','php_strip_whitespace(':'string $filename | string','show_source(':'show_source — Alias of highlight_file()','sleep(':'int $seconds | int','sys_getloadavg(':'void | array','time_nanosleep(':'int $seconds, int $nanoseconds | mixed','time_sleep_until(':'float $timestamp | bool','uniqid(':'[ string $prefix = "" [, bool $more_entropy = false]] | string','unpack(':'string $format, string $data | array','usleep(':'int $micro_seconds | void',}
let php_builtin['functions']['curl']={'curl_close(':'resource $ch | void','curl_copy_handle(':'resource $ch | resource','curl_errno(':'resource $ch | int','curl_error(':'resource $ch | string','curl_escape(':'resource $ch, string $str | string','curl_exec(':'resource $ch | mixed','curl_getinfo(':'resource $ch [, int $opt = 0] | mixed','curl_init(':'[ string $url = NULL] | resource','curl_multi_add_handle(':'resource $mh, resource $ch | int','curl_multi_close(':'resource $mh | void','curl_multi_exec(':'resource $mh, int &$still_running | int','curl_multi_getcontent(':'resource $ch | string','curl_multi_info_read(':'resource $mh [, int &$msgs_in_queue = NULL] | array','curl_multi_init(':'void | resource','curl_multi_remove_handle(':'resource $mh, resource $ch | int','curl_multi_select(':'resource $mh [, float $timeout = 1.0] | int','curl_multi_setopt(':'resource $mh, int $option, mixed $value | bool','curl_multi_strerror(':'int $errornum | string','curl_pause(':'resource $ch, int $bitmask | int','curl_reset(':'resource $ch | void','curl_setopt_array(':'resource $ch, array $options | bool','curl_setopt(':'resource $ch, int $option, mixed $value | bool','curl_share_close(':'resource $sh | void','curl_share_init(':'void | resource','curl_share_setopt(':'resource $sh, int $option, string $value | bool','curl_strerror(':'int $errornum | string','curl_unescape(':'resource $ch, string $str | string','curl_version(':'[ int $age = CURLVERSION_NOW] | array',}
let php_builtin['functions']['error_handling']={'debug_backtrace(':'[ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0]] | array','debug_print_backtrace(':'[ int $options = 0 [, int $limit = 0]] | void','error_get_last(':'void | array','error_log(':'string $message [, int $message_type = 0 [, string $destination [, string $extra_headers]]] | bool','error_reporting(':'[ int $level] | int','restore_error_handler(':'void | bool','restore_exception_handler(':'void | bool','set_error_handler(':'callable $error_handler [, int $error_types = E_ALL | E_STRICT] | mixed','set_exception_handler(':'callable $exception_handler | callable','trigger_error(':'string $error_msg [, int $error_type = E_USER_NOTICE] | bool',}
let php_builtin['functions']['dom']={'dom_import_simplexml(':'SimpleXMLElement $node | DOMElement',}
let php_builtin['functions']['program_execution']={'escapeshellarg(':'string $arg | string','escapeshellcmd(':'string $command | string','exec(':'string $command [, array &$output [, int &$return_var]] | string','passthru(':'string $command [, int &$return_var] | void','proc_close(':'resource $process | int','proc_get_status(':'resource $process | array','proc_nice(':'int $increment | bool','proc_open(':'string $cmd, array $descriptorspec, array &$pipes [, string $cwd [, array $env [, array $other_options]]] | resource','proc_terminate(':'resource $process [, int $signal = 15] | bool','shell_exec(':'string $cmd | string','system(':'string $command [, int &$return_var] | string',}
let php_builtin['functions']['mail']={'ezmlm_hash(':'string $addr | int','mail(':'string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] | bool',}
let php_builtin['functions']['fastcgi_process_manager']={'fastcgi_finish_request(':'void | boolean',}
let php_builtin['functions']['filter']={'filter_has_var(':'int $type, string $variable_name | bool','filter_id(':'string $filtername | int','filter_input_array(':'int $type [, mixed $definition [, bool $add_empty = true]] | mixed','filter_input(':'int $type, string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options]] | mixed','filter_list(':'void | array','filter_var_array(':'array $data [, mixed $definition [, bool $add_empty = true]] | mixed','filter_var(':'mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options]] | mixed',}
let php_builtin['functions']['fileinfo']={'finfo_buffer(':'resource $finfo [, string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL]]] | string','finfo_close(':'resource $finfo | bool','finfo_file(':'resource $finfo [, string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL]]] | string','finfo_open(':'[ int $options = FILEINFO_NONE [, string $magic_file = NULL]] | resource','finfo_set_flags(':'resource $finfo, int $options | bool','mime_content_type(':'string $filename | string',}
let php_builtin['functions']['output_control']={'flush(':'void | void','ob_clean(':'void | void','ob_end_clean(':'void | bool','ob_end_flush(':'void | bool','ob_flush(':'void | void','ob_get_clean(':'void | string','ob_get_contents(':'void | string','ob_get_flush(':'void | string','ob_get_length(':'void | int','ob_get_level(':'void | int','ob_get_status(':'[ bool $full_status = FALSE] | array','ob_gzhandler(':'string $buffer, int $mode | string','ob_implicit_flush(':'[ int $flag = true] | void','ob_list_handlers(':'void | array','ob_start(':'[ callable $output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS]]] | bool','output_add_rewrite_var(':'string $name, string $value | bool','output_reset_rewrite_vars(':'void | bool',}
let php_builtin['functions']['gd']={'gd_info(':'void | array','getimagesize(':'string $filename [, array &$imageinfo] | array','getimagesizefromstring(':'string $imagedata [, array &$imageinfo] | array','image_type_to_extension(':'int $imagetype [, bool $include_dot = TRUE] | string','image_type_to_mime_type(':'int $imagetype | string','image2wbmp(':'resource $image [, string $filename [, int $threshold]] | bool','imageaffine(':'resource $image, array $affine [, array $clip] | resource','imageaffinematrixconcat(':'array $m1, array $m2 | array','imageaffinematrixget(':'int $type [, mixed $options] | array','imagealphablending(':'resource $image, bool $blendmode | bool','imageantialias(':'resource $image, bool $enabled | bool','imagearc(':'resource $image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color | bool','imagechar(':'resource $image, int $font, int $x, int $y, string $c, int $color | bool','imagecharup(':'resource $image, int $font, int $x, int $y, string $c, int $color | bool','imagecolorallocate(':'resource $image, int $red, int $green, int $blue | int','imagecolorallocatealpha(':'resource $image, int $red, int $green, int $blue, int $alpha | int','imagecolorat(':'resource $image, int $x, int $y | int','imagecolorclosest(':'resource $image, int $red, int $green, int $blue | int','imagecolorclosestalpha(':'resource $image, int $red, int $green, int $blue, int $alpha | int','imagecolorclosesthwb(':'resource $image, int $red, int $green, int $blue | int','imagecolordeallocate(':'resource $image, int $color | bool','imagecolorexact(':'resource $image, int $red, int $green, int $blue | int','imagecolorexactalpha(':'resource $image, int $red, int $green, int $blue, int $alpha | int','imagecolormatch(':'resource $image1, resource $image2 | bool','imagecolorresolve(':'resource $image, int $red, int $green, int $blue | int','imagecolorresolvealpha(':'resource $image, int $red, int $green, int $blue, int $alpha | int','imagecolorset(':'resource $image, int $index, int $red, int $green, int $blue [, int $alpha = 0] | void','imagecolorsforindex(':'resource $image, int $index | array','imagecolorstotal(':'resource $image | int','imagecolortransparent(':'resource $image [, int $color] | int','imageconvolution(':'resource $image, array $matrix, float $div, float $offset | bool','imagecopy(':'resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h | bool','imagecopymerge(':'resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct | bool','imagecopymergegray(':'resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct | bool','imagecopyresampled(':'resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h | bool','imagecopyresized(':'resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h | bool','imagecreate(':'int $width, int $height | resource','imagecreatefromgd(':'string $filename | resource','imagecreatefromgd2(':'string $filename | resource','imagecreatefromgd2part(':'string $filename, int $srcX, int $srcY, int $width, int $height | resource','imagecreatefromgif(':'string $filename | resource','imagecreatefromjpeg(':'string $filename | resource','imagecreatefrompng(':'string $filename | resource','imagecreatefromstring(':'string $image | resource','imagecreatefromwbmp(':'string $filename | resource','imagecreatefromwebp(':'string $filename | resource','imagecreatefromxbm(':'string $filename | resource','imagecreatefromxpm(':'string $filename | resource','imagecreatetruecolor(':'int $width, int $height | resource','imagecrop(':'resource $image, array $rect | resource','imagecropauto(':'resource $image [, int $mode = -1 [, float $threshold = .5 [, int $color = -1]]] | resource','imagedashedline(':'resource $image, int $x1, int $y1, int $x2, int $y2, int $color | bool','imagedestroy(':'resource $image | bool','imageellipse(':'resource $image, int $cx, int $cy, int $width, int $height, int $color | bool','imagefill(':'resource $image, int $x, int $y, int $color | bool','imagefilledarc(':'resource $image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color, int $style | bool','imagefilledellipse(':'resource $image, int $cx, int $cy, int $width, int $height, int $color | bool','imagefilledpolygon(':'resource $image, array $points, int $num_points, int $color | bool','imagefilledrectangle(':'resource $image, int $x1, int $y1, int $x2, int $y2, int $color | bool','imagefilltoborder(':'resource $image, int $x, int $y, int $border, int $color | bool','imagefilter(':'resource $image, int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4]]]] | bool','imageflip(':'resource $image, int $mode | bool','imagefontheight(':'int $font | int','imagefontwidth(':'int $font | int','imageftbbox(':'float $size, float $angle, string $fontfile, string $text [, array $extrainfo] | array','imagefttext(':'resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text [, array $extrainfo] | array','imagegammacorrect(':'resource $image, float $inputgamma, float $outputgamma | bool','imagegd(':'resource $image [, string $filename] | bool','imagegd2(':'resource $image [, string $filename [, int $chunk_size [, int $type = IMG_GD2_RAW]]] | bool','imagegif(':'resource $image [, string $filename] | bool','imagegrabscreen(':'void | resource','imagegrabwindow(':'int $window_handle [, int $client_area = 0] | resource','imageinterlace(':'resource $image [, int $interlace = 0] | int','imageistruecolor(':'resource $image | bool','imagejpeg(':'resource $image [, string $filename [, int $quality]] | bool','imagelayereffect(':'resource $image, int $effect | bool','imageline(':'resource $image, int $x1, int $y1, int $x2, int $y2, int $color | bool','imageloadfont(':'string $file | int','imagepalettecopy(':'resource $destination, resource $source | void','imagepalettetotruecolor(':'resource $src | bool','imagepng(':'resource $image [, string $filename [, int $quality [, int $filters]]] | bool','imagepolygon(':'resource $image, array $points, int $num_points, int $color | bool','imagepsbbox(':'string $text, resource $font, int $size | array','imagepsencodefont(':'resource $font_index, string $encodingfile | bool','imagepsextendfont(':'resource $font_index, float $extend | bool','imagepsfreefont(':'resource $font_index | bool','imagepsloadfont(':'string $filename | resource','imagepsslantfont(':'resource $font_index, float $slant | bool','imagepstext(':'resource $image, string $text, resource $font_index, int $size, int $foreground, int $background, int $x, int $y [, int $space = 0 [, int $tightness = 0 [, float $angle = 0.0 [, int $antialias_steps = 4]]]] | array','imagerectangle(':'resource $image, int $x1, int $y1, int $x2, int $y2, int $color | bool','imagerotate(':'resource $image, float $angle, int $bgd_color [, int $ignore_transparent = 0] | resource','imagesavealpha(':'resource $image, bool $saveflag | bool','imagescale(':'resource $image, int $new_width [, int $new_height = -1 [, int $mode = IMG_BILINEAR_FIXED]] | resource','imagesetbrush(':'resource $image, resource $brush | bool','imagesetinterpolation(':'resource $image [, int $method = IMG_BILINEAR_FIXED] | bool','imagesetpixel(':'resource $image, int $x, int $y, int $color | bool','imagesetstyle(':'resource $image, array $style | bool','imagesetthickness(':'resource $image, int $thickness | bool','imagesettile(':'resource $image, resource $tile | bool','imagestring(':'resource $image, int $font, int $x, int $y, string $string, int $color | bool','imagestringup(':'resource $image, int $font, int $x, int $y, string $string, int $color | bool','imagesx(':'resource $image | int','imagesy(':'resource $image | int','imagetruecolortopalette(':'resource $image, bool $dither, int $ncolors | bool','imagettfbbox(':'float $size, float $angle, string $fontfile, string $text | array','imagettftext(':'resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text | array','imagetypes(':'void | int','imagewbmp(':'resource $image [, string $filename [, int $foreground]] | bool','imagewebp(':'resource $image, string $filename | bool','imagexbm(':'resource $image, string $filename [, int $foreground] | bool','iptcembed(':'string $iptcdata, string $jpeg_file_name [, int $spool] | mixed','iptcparse(':'string $iptcblock | array','jpeg2wbmp(':'string $jpegname, string $wbmpname, int $dest_height, int $dest_width, int $threshold | bool','png2wbmp(':'string $pngname, string $wbmpname, int $dest_height, int $dest_width, int $threshold | bool',}
let php_builtin['functions']['iconv']={'iconv_get_encoding(':'[ string $type = "all"] | mixed','iconv_mime_decode_headers(':'string $encoded_headers [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding")]] | array','iconv_mime_decode(':'string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding")]] | string','iconv_mime_encode(':'string $field_name, string $field_value [, array $preferences = NULL] | string','iconv_set_encoding(':'string $type, string $charset | bool','iconv_strlen(':'string $str [, string $charset = ini_get("iconv.internal_encoding")] | int','iconv_strpos(':'string $haystack, string $needle [, int $offset = 0 [, string $charset = ini_get("iconv.internal_encoding")]] | int','iconv_strrpos(':'string $haystack, string $needle [, string $charset = ini_get("iconv.internal_encoding")] | int','iconv_substr(':'string $str, int $offset [, int $length = iconv_strlen($str, $charset) [, string $charset = ini_get("iconv.internal_encoding")]] | string','iconv(':'string $in_charset, string $out_charset, string $str | string','ob_iconv_handler(':'string $contents, int $status | string',}
let php_builtin['functions']['json']={'json_decode(':'string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0]]] | mixed','json_encode(':'mixed $value [, int $options = 0 [, int $depth = 512]] | string','json_last_error_msg(':'void | string','json_last_error(':'void | int',}
let php_builtin['functions']['libxml']={'libxml_clear_errors(':'void | void','libxml_disable_entity_loader(':'[ bool $disable = true] | bool','libxml_get_errors(':'void | array','libxml_get_last_error(':'void | LibXMLError','libxml_set_external_entity_loader(':'callable $resolver_function | void','libxml_set_streams_context(':'resource $streams_context | void','libxml_use_internal_errors(':'[ bool $use_errors = false] | bool',}
let php_builtin['functions']['multibyte_string']={'mb_check_encoding(':'[ string $var = NULL [, string $encoding = mb_internal_encoding()]] | bool','mb_convert_case(':'string $str, int $mode [, string $encoding = mb_internal_encoding()] | string','mb_convert_encoding(':'string $str, string $to_encoding [, mixed $from_encoding = mb_internal_encoding()] | string','mb_convert_kana(':'string $str [, string $option = "KV" [, string $encoding = mb_internal_encoding()]] | string','mb_convert_variables(':'string $to_encoding, mixed $from_encoding, mixed &$vars [, mixed &$...] | string','mb_decode_mimeheader(':'string $str | string','mb_decode_numericentity(':'string $str, array $convmap [, string $encoding = mb_internal_encoding()] | string','mb_detect_encoding(':'string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false]] | string','mb_detect_order(':'[ mixed $encoding_list = mb_detect_order()] | mixed','mb_encode_mimeheader(':'string $str [, string $charset = mb_internal_encoding() [, string $transfer_encoding = "B" [, string $linefeed = "\r\n" [, int $indent = 0]]]] | string','mb_encode_numericentity(':'string $str, array $convmap [, string $encoding = mb_internal_encoding() [, bool $is_hex = FALSE]] | string','mb_encoding_aliases(':'string $encoding | array','mb_ereg_match(':'string $pattern, string $string [, string $option = "msr"] | bool','mb_ereg_replace_callback(':'string $pattern, callable $callback, string $string [, string $option = "msr"] | string','mb_ereg_replace(':'string $pattern, string $replacement, string $string [, string $option = "msr"] | string','mb_ereg_search_getpos(':'void | int','mb_ereg_search_getregs(':'void | array','mb_ereg_search_init(':'string $string [, string $pattern [, string $option = "msr"]] | bool','mb_ereg_search_pos(':'[ string $pattern [, string $option = "ms"]] | array','mb_ereg_search_regs(':'[ string $pattern [, string $option = "ms"]] | array','mb_ereg_search_setpos(':'int $position | bool','mb_ereg_search(':'[ string $pattern [, string $option = "ms"]] | bool','mb_ereg(':'string $pattern, string $string [, array $regs] | int','mb_eregi_replace(':'string $pattern, string $replace, string $string [, string $option = "msri"] | string','mb_eregi(':'string $pattern, string $string [, array $regs] | int','mb_get_info(':'[ string $type = "all"] | mixed','mb_http_input(':'[ string $type = ""] | mixed','mb_http_output(':'[ string $encoding = mb_http_output()] | mixed','mb_internal_encoding(':'[ string $encoding = mb_internal_encoding()] | mixed','mb_language(':'[ string $language = mb_language()] | mixed','mb_list_encodings(':'void | array','mb_output_handler(':'string $contents, int $status | string','mb_parse_str(':'string $encoded_string [, array &$result] | bool','mb_preferred_mime_name(':'string $encoding | string','mb_regex_encoding(':'[ string $encoding = mb_regex_encoding()] | mixed','mb_regex_set_options(':'[ string $options = mb_regex_set_options()] | string','mb_send_mail(':'string $to, string $subject, string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL]] | bool','mb_split(':'string $pattern, string $string [, int $limit = -1] | array','mb_strcut(':'string $str, int $start [, int $length = NULL [, string $encoding = mb_internal_encoding()]] | string','mb_strimwidth(':'string $str, int $start, int $width [, string $trimmarker = "" [, string $encoding = mb_internal_encoding()]] | string','mb_stripos(':'string $haystack, string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding()]] | int','mb_stristr(':'string $haystack, string $needle [, bool $before_needle = false [, string $encoding = mb_internal_encoding()]] | string','mb_strlen(':'string $str [, string $encoding = mb_internal_encoding()] | mixed','mb_strpos(':'string $haystack, string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding()]] | int','mb_strrchr(':'string $haystack, string $needle [, bool $part = false [, string $encoding = mb_internal_encoding()]] | string','mb_strrichr(':'string $haystack, string $needle [, bool $part = false [, string $encoding = mb_internal_encoding()]] | string','mb_strripos(':'string $haystack, string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding()]] | int','mb_strrpos(':'string $haystack, string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding()]] | int','mb_strstr(':'string $haystack, string $needle [, bool $before_needle = false [, string $encoding = mb_internal_encoding()]] | string','mb_strtolower(':'string $str [, string $encoding = mb_internal_encoding()] | string','mb_strtoupper(':'string $str [, string $encoding = mb_internal_encoding()] | string','mb_strwidth(':'string $str [, string $encoding = mb_internal_encoding()] | int','mb_substitute_character(':'[ mixed $substrchar = mb_substitute_character()] | mixed','mb_substr_count(':'string $haystack, string $needle [, string $encoding = mb_internal_encoding()] | int','mb_substr(':'string $str, int $start [, int $length = NULL [, string $encoding = mb_internal_encoding()]] | string',}
let php_builtin['functions']['mssql']={'mssql_bind(':'resource $stmt, string $param_name, mixed &$var, int $type [, bool $is_output = false [, bool $is_null = false [, int $maxlen = -1]]] | bool','mssql_close(':'[ resource $link_identifier] | bool','mssql_connect(':'[ string $servername [, string $username [, string $password [, bool $new_link = false]]]] | resource','mssql_data_seek(':'resource $result_identifier, int $row_number | bool','mssql_execute(':'resource $stmt [, bool $skip_results = false] | mixed','mssql_fetch_array(':'resource $result [, int $result_type = MSSQL_BOTH] | array','mssql_fetch_assoc(':'resource $result_id | array','mssql_fetch_batch(':'resource $result | int','mssql_fetch_field(':'resource $result [, int $field_offset = -1] | object','mssql_fetch_object(':'resource $result | object','mssql_fetch_row(':'resource $result | array','mssql_field_length(':'resource $result [, int $offset = -1] | int','mssql_field_name(':'resource $result [, int $offset = -1] | string','mssql_field_seek(':'resource $result, int $field_offset | bool','mssql_field_type(':'resource $result [, int $offset = -1] | string','mssql_free_result(':'resource $result | bool','mssql_free_statement(':'resource $stmt | bool','mssql_get_last_message(':'void | string','mssql_guid_string(':'string $binary [, bool $short_format = false] | string','mssql_init(':'string $sp_name [, resource $link_identifier] | resource','mssql_min_error_severity(':'int $severity | void','mssql_min_message_severity(':'int $severity | void','mssql_next_result(':'resource $result_id | bool','mssql_num_fields(':'resource $result | int','mssql_num_rows(':'resource $result | int','mssql_pconnect(':'[ string $servername [, string $username [, string $password [, bool $new_link = false]]]] | resource','mssql_query(':'string $query [, resource $link_identifier [, int $batch_size = 0]] | mixed','mssql_result(':'resource $result, int $row, mixed $field | string','mssql_rows_affected(':'resource $link_identifier | int','mssql_select_db(':'string $database_name [, resource $link_identifier] | bool',}
let php_builtin['functions']['mysql']={'mysql_affected_rows(':'[ resource $link_identifier = NULL] | int','mysql_client_encoding(':'[ resource $link_identifier = NULL] | string','mysql_close(':'[ resource $link_identifier = NULL] | bool','mysql_connect(':'[ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0]]]]] | resource','mysql_create_db(':'string $database_name [, resource $link_identifier = NULL] | bool','mysql_data_seek(':'resource $result, int $row_number | bool','mysql_db_name(':'resource $result, int $row [, mixed $field = NULL] | string','mysql_db_query(':'string $database, string $query [, resource $link_identifier = NULL] | resource','mysql_drop_db(':'string $database_name [, resource $link_identifier = NULL] | bool','mysql_errno(':'[ resource $link_identifier = NULL] | int','mysql_error(':'[ resource $link_identifier = NULL] | string','mysql_escape_string(':'string $unescaped_string | string','mysql_fetch_array(':'resource $result [, int $result_type = MYSQL_BOTH] | array','mysql_fetch_assoc(':'resource $result | array','mysql_fetch_field(':'resource $result [, int $field_offset = 0] | object','mysql_fetch_lengths(':'resource $result | array','mysql_fetch_object(':'resource $result [, string $class_name [, array $params]] | object','mysql_fetch_row(':'resource $result | array','mysql_field_flags(':'resource $result, int $field_offset | string','mysql_field_len(':'resource $result, int $field_offset | int','mysql_field_name(':'resource $result, int $field_offset | string','mysql_field_seek(':'resource $result, int $field_offset | bool','mysql_field_table(':'resource $result, int $field_offset | string','mysql_field_type(':'resource $result, int $field_offset | string','mysql_free_result(':'resource $result | bool','mysql_get_client_info(':'void | string','mysql_get_host_info(':'[ resource $link_identifier = NULL] | string','mysql_get_proto_info(':'[ resource $link_identifier = NULL] | int','mysql_get_server_info(':'[ resource $link_identifier = NULL] | string','mysql_info(':'[ resource $link_identifier = NULL] | string','mysql_insert_id(':'[ resource $link_identifier = NULL] | int','mysql_list_dbs(':'[ resource $link_identifier = NULL] | resource','mysql_list_fields(':'string $database_name, string $table_name [, resource $link_identifier = NULL] | resource','mysql_list_processes(':'[ resource $link_identifier = NULL] | resource','mysql_list_tables(':'string $database [, resource $link_identifier = NULL] | resource','mysql_num_fields(':'resource $result | int','mysql_num_rows(':'resource $result | int','mysql_pconnect(':'[ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, int $client_flags = 0]]]] | resource','mysql_ping(':'[ resource $link_identifier = NULL] | bool','mysql_query(':'string $query [, resource $link_identifier = NULL] | mixed','mysql_real_escape_string(':'string $unescaped_string [, resource $link_identifier = NULL] | string','mysql_result(':'resource $result, int $row [, mixed $field = 0] | string','mysql_select_db(':'string $database_name [, resource $link_identifier = NULL] | bool','mysql_set_charset(':'string $charset [, resource $link_identifier = NULL] | bool','mysql_stat(':'[ resource $link_identifier = NULL] | string','mysql_tablename(':'resource $result, int $i | string','mysql_thread_id(':'[ resource $link_identifier = NULL] | int','mysql_unbuffered_query(':'string $query [, resource $link_identifier = NULL] | resource',}
let php_builtin['functions']['mysqli']={'mysqli_disable_reads_from_master(':'mysqli $link | bool','mysqli_disable_rpl_parse(':'mysqli $link | bool','mysqli_enable_reads_from_master(':'mysqli $link | bool','mysqli_enable_rpl_parse(':'mysqli $link | bool','mysqli_get_cache_stats(':'void | array','mysqli_master_query(':'mysqli $link, string $query | bool','mysqli_rpl_parse_enabled(':'mysqli $link | int','mysqli_rpl_probe(':'mysqli $link | bool','mysqli_slave_query(':'mysqli $link, string $query | bool',}
let php_builtin['functions']['password_hashing']={'password_get_info(':'string $hash | array','password_hash(':'string $password, integer $algo [, array $options] | string','password_needs_rehash(':'string $hash, string $algo [, string $options] | boolean','password_verify(':'string $password, string $hash | boolean',}
let php_builtin['functions']['postgresql']={'pg_affected_rows(':'resource $result | int','pg_cancel_query(':'resource $connection | bool','pg_client_encoding(':'[ resource $connection] | string','pg_close(':'[ resource $connection] | bool','pg_connect(':'string $connection_string [, int $connect_type] | resource','pg_connection_busy(':'resource $connection | bool','pg_connection_reset(':'resource $connection | bool','pg_connection_status(':'resource $connection | int','pg_convert(':'resource $connection, string $table_name, array $assoc_array [, int $options = 0] | array','pg_copy_from(':'resource $connection, string $table_name, array $rows [, string $delimiter [, string $null_as]] | bool','pg_copy_to(':'resource $connection, string $table_name [, string $delimiter [, string $null_as]] | array','pg_dbname(':'[ resource $connection] | string','pg_delete(':'resource $connection, string $table_name, array $assoc_array [, int $options = PGSQL_DML_EXEC] | mixed','pg_end_copy(':'[ resource $connection] | bool','pg_escape_bytea(':'[ resource $connection [, string $data]] | string','pg_escape_identifier(':'[ resource $connection [, string $data]] | string','pg_escape_literal(':'[ resource $connection [, string $data]] | string','pg_escape_string(':'[ resource $connection [, string $data]] | string','pg_execute(':'[ resource $connection [, string $stmtname [, array $params]]] | resource','pg_fetch_all_columns(':'resource $result [, int $column = 0] | array','pg_fetch_all(':'resource $result | array','pg_fetch_array(':'resource $result [, int $row [, int $result_type = PGSQL_BOTH]] | array','pg_fetch_assoc(':'resource $result [, int $row] | array','pg_fetch_object(':'resource $result [, int $row [, int $result_type = PGSQL_ASSOC]] | object','pg_fetch_result(':'resource $result, int $row, mixed $field | string','pg_fetch_row(':'resource $result [, int $row] | array','pg_field_is_null(':'resource $result, int $row, mixed $field | int','pg_field_name(':'resource $result, int $field_number | string','pg_field_num(':'resource $result, string $field_name | int','pg_field_prtlen(':'resource $result, int $row_number, mixed $field_name_or_number | int','pg_field_size(':'resource $result, int $field_number | int','pg_field_table(':'resource $result, int $field_number [, bool $oid_only = false] | mixed','pg_field_type_oid(':'resource $result, int $field_number | int','pg_field_type(':'resource $result, int $field_number | string','pg_free_result(':'resource $result | bool','pg_get_notify(':'resource $connection [, int $result_type] | array','pg_get_pid(':'resource $connection | int','pg_get_result(':'[ resource $connection] | resource','pg_host(':'[ resource $connection] | string','pg_insert(':'resource $connection, string $table_name, array $assoc_array [, int $options = PGSQL_DML_EXEC] | mixed','pg_last_error(':'[ resource $connection] | string','pg_last_notice(':'resource $connection | string','pg_last_oid(':'resource $result | string','pg_lo_close(':'resource $large_object | bool','pg_lo_create(':'[ resource $connection [, mixed $object_id]] | int','pg_lo_export(':'[ resource $connection [, int $oid [, string $pathname]]] | bool','pg_lo_import(':'[ resource $connection [, string $pathname [, mixed $object_id]]] | int','pg_lo_open(':'resource $connection, int $oid, string $mode | resource','pg_lo_read_all(':'resource $large_object | int','pg_lo_read(':'resource $large_object [, int $len = 8192] | string','pg_lo_seek(':'resource $large_object, int $offset [, int $whence = PGSQL_SEEK_CUR] | bool','pg_lo_tell(':'resource $large_object | int','pg_lo_truncate(':'resource $large_object, int $size | bool','pg_lo_unlink(':'resource $connection, int $oid | bool','pg_lo_write(':'resource $large_object, string $data [, int $len] | int','pg_meta_data(':'resource $connection, string $table_name [, bool $extended] | array','pg_num_fields(':'resource $result | int','pg_num_rows(':'resource $result | int','pg_options(':'[ resource $connection] | string','pg_parameter_status(':'[ resource $connection [, string $param_name]] | string','pg_pconnect(':'string $connection_string [, int $connect_type] | resource','pg_ping(':'[ resource $connection] | bool','pg_port(':'[ resource $connection] | int','pg_prepare(':'[ resource $connection [, string $stmtname [, string $query]]] | resource','pg_put_line(':'[ resource $connection [, string $data]] | bool','pg_query_params(':'[ resource $connection [, string $query [, array $params]]] | resource','pg_query(':'[ resource $connection [, string $query]] | resource','pg_result_error_field(':'resource $result, int $fieldcode | string','pg_result_error(':'resource $result | string','pg_result_seek(':'resource $result, int $offset | bool','pg_result_status(':'resource $result [, int $type = PGSQL_STATUS_LONG] | mixed','pg_select(':'resource $connection, string $table_name, array $assoc_array [, int $options = PGSQL_DML_EXEC] | mixed','pg_send_execute(':'resource $connection, string $stmtname, array $params | bool','pg_send_prepare(':'resource $connection, string $stmtname, string $query | bool','pg_send_query_params(':'resource $connection, string $query, array $params | bool','pg_send_query(':'resource $connection, string $query | bool','pg_set_client_encoding(':'[ resource $connection [, string $encoding]] | int','pg_set_error_verbosity(':'[ resource $connection [, int $verbosity]] | int','pg_trace(':'string $pathname [, string $mode = "w" [, resource $connection]] | bool','pg_transaction_status(':'resource $connection | int','pg_tty(':'[ resource $connection] | string','pg_unescape_bytea(':'string $data | string','pg_untrace(':'[ resource $connection] | bool','pg_update(':'resource $connection, string $table_name, array $data, array $condition [, int $options = PGSQL_DML_EXEC] | mixed','pg_version(':'[ resource $connection] | array',}
let php_builtin['functions']['pcre']={'preg_filter(':'mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int &$count]] | mixed','preg_grep(':'string $pattern, array $input [, int $flags = 0] | array','preg_last_error(':'void | int','preg_match_all(':'string $pattern, string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0]]] | int','preg_match(':'string $pattern, string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0]]] | int','preg_quote(':'string $str [, string $delimiter = NULL] | string','preg_replace_callback(':'mixed $pattern, callable $callback, mixed $subject [, int $limit = -1 [, int &$count]] | mixed','preg_replace(':'mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int &$count]] | mixed','preg_split(':'string $pattern, string $subject [, int $limit = -1 [, int $flags = 0]] | array',}
let php_builtin['functions']['sessions']={'session_cache_expire(':'[ string $new_cache_expire] | int','session_cache_limiter(':'[ string $cache_limiter] | string','session_commit(':'session_commit — Alias of session_write_close()','session_decode(':'string $data | bool','session_destroy(':'void | bool','session_encode(':'void | string','session_get_cookie_params(':'void | array','session_id(':'[ string $id] | string','session_is_registered(':'string $name | bool','session_module_name(':'[ string $module] | string','session_name(':'[ string $name] | string','session_regenerate_id(':'[ bool $delete_old_session = false] | bool','session_register_shutdown(':'void | void','session_register(':'mixed $name [, mixed $...] | bool','session_save_path(':'[ string $path] | string','session_set_cookie_params(':'int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false]]]] | void','session_set_save_handler(':'callable $open, callable $close, callable $read, callable $write, callable $destroy, callable $gc | bool','session_start(':'void | bool','session_status(':'void | int','session_unregister(':'string $name | bool','session_unset(':'void | void','session_write_close(':'void | void',}
let php_builtin['functions']['streams']={'set_socket_blocking(':'set_socket_blocking — Alias of stream_set_blocking()','stream_bucket_append(':'resource $brigade, resource $bucket | void','stream_bucket_make_writeable(':'resource $brigade | object','stream_bucket_new(':'resource $stream, string $buffer | object','stream_bucket_prepend(':'resource $brigade, resource $bucket | void','stream_context_create(':'[ array $options [, array $params]] | resource','stream_context_get_default(':'[ array $options] | resource','stream_context_get_options(':'resource $stream_or_context | array','stream_context_get_params(':'resource $stream_or_context | array','stream_context_set_default(':'array $options | resource','stream_context_set_option(':'resource $stream_or_context, string $wrapper, string $option, mixed $value | bool','stream_context_set_params(':'resource $stream_or_context, array $params | bool','stream_copy_to_stream(':'resource $source, resource $dest [, int $maxlength = -1 [, int $offset = 0]] | int','stream_encoding(':'resource $stream [, string $encoding] | bool','stream_filter_append(':'resource $stream, string $filtername [, int $read_write [, mixed $params]] | resource','stream_filter_prepend(':'resource $stream, string $filtername [, int $read_write [, mixed $params]] | resource','stream_filter_register(':'string $filtername, string $classname | bool','stream_filter_remove(':'resource $stream_filter | bool','stream_get_contents(':'resource $handle [, int $maxlength = -1 [, int $offset = -1]] | string','stream_get_filters(':'void | array','stream_get_line(':'resource $handle, int $length [, string $ending] | string','stream_get_meta_data(':'resource $stream | array','stream_get_transports(':'void | array','stream_get_wrappers(':'void | array','stream_is_local(':'mixed $stream_or_url | bool','stream_notification_callback(':'int $notification_code, int $severity, string $message, int $message_code, int $bytes_transferred, int $bytes_max | void','stream_resolve_include_path(':'string $filename | string','stream_select(':'array &$read, array &$write, array &$except, int $tv_sec [, int $tv_usec = 0] | int','stream_set_blocking(':'resource $stream, int $mode | bool','stream_set_chunk_size(':'resource $fp, int $chunk_size | int','stream_set_read_buffer(':'resource $stream, int $buffer | int','stream_set_timeout(':'resource $stream, int $seconds [, int $microseconds = 0] | bool','stream_set_write_buffer(':'resource $stream, int $buffer | int','stream_socket_accept(':'resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername]] | resource','stream_socket_client(':'string $remote_socket [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context]]]]] | resource','stream_socket_enable_crypto(':'resource $stream, bool $enable [, int $crypto_type [, resource $session_stream]] | mixed','stream_socket_get_name(':'resource $handle, bool $want_peer | string','stream_socket_pair(':'int $domain, int $type, int $protocol | array','stream_socket_recvfrom(':'resource $socket, int $length [, int $flags = 0 [, string &$address]] | string','stream_socket_sendto(':'resource $socket, string $data [, int $flags = 0 [, string $address]] | int','stream_socket_server(':'string $local_socket [, int &$errno [, string &$errstr [, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context]]]] | resource','stream_socket_shutdown(':'resource $stream, int $how | bool','stream_supports_lock(':'resource $stream | bool','stream_wrapper_register(':'string $protocol, string $classname [, int $flags = 0] | bool','stream_wrapper_restore(':'string $protocol | bool','stream_wrapper_unregister(':'string $protocol | bool',}
let php_builtin['functions']['simplexml']={'simplexml_import_dom(':'DOMNode $node [, string $class_name = "SimpleXMLElement"] | SimpleXMLElement','simplexml_load_file(':'string $filename [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false]]]] | SimpleXMLElement','simplexml_load_string(':'string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false]]]] | SimpleXMLElement',}
let php_builtin['functions']['xmlwriter']={'xmlwriter_end_attribute(':'resource $xmlwriter | bool','xmlwriter_end_cdata(':'resource $xmlwriter | bool','xmlwriter_end_comment(':'resource $xmlwriter | bool','xmlwriter_end_document(':'resource $xmlwriter | bool','xmlwriter_end_dtd_attlist(':'resource $xmlwriter | bool','xmlwriter_end_dtd_element(':'resource $xmlwriter | bool','xmlwriter_end_dtd_entity(':'resource $xmlwriter | bool','xmlwriter_end_dtd(':'resource $xmlwriter | bool','xmlwriter_end_element(':'resource $xmlwriter | bool','xmlwriter_end_pi(':'resource $xmlwriter | bool','xmlwriter_flush(':'resource $xmlwriter [, bool $empty = true] | mixed','xmlwriter_full_end_element(':'resource $xmlwriter | bool','xmlwriter_open_memory(':'void | resource','xmlwriter_open_uri(':'string $uri | resource','xmlwriter_output_memory(':'resource $xmlwriter [, bool $flush = true] | string','xmlwriter_set_indent_string(':'resource $xmlwriter, string $indentString | bool','xmlwriter_set_indent(':'resource $xmlwriter, bool $indent | bool','xmlwriter_start_attribute_ns(':'resource $xmlwriter, string $prefix, string $name, string $uri | bool','xmlwriter_start_attribute(':'resource $xmlwriter, string $name | bool','xmlwriter_start_cdata(':'resource $xmlwriter | bool','xmlwriter_start_comment(':'resource $xmlwriter | bool','xmlwriter_start_document(':'resource $xmlwriter [, string $version = 1.0 [, string $encoding = NULL [, string $standalone]]] | bool','xmlwriter_start_dtd_attlist(':'resource $xmlwriter, string $name | bool','xmlwriter_start_dtd_element(':'resource $xmlwriter, string $qualifiedName | bool','xmlwriter_start_dtd_entity(':'resource $xmlwriter, string $name, bool $isparam | bool','xmlwriter_start_dtd(':'resource $xmlwriter, string $qualifiedName [, string $publicId [, string $systemId]] | bool','xmlwriter_start_element_ns(':'resource $xmlwriter, string $prefix, string $name, string $uri | bool','xmlwriter_start_element(':'resource $xmlwriter, string $name | bool','xmlwriter_start_pi(':'resource $xmlwriter, string $target | bool','xmlwriter_text(':'resource $xmlwriter, string $content | bool','xmlwriter_write_attribute_ns(':'resource $xmlwriter, string $prefix, string $name, string $uri, string $content | bool','xmlwriter_write_attribute(':'resource $xmlwriter, string $name, string $value | bool','xmlwriter_write_cdata(':'resource $xmlwriter, string $content | bool','xmlwriter_write_comment(':'resource $xmlwriter, string $content | bool','xmlwriter_write_dtd_attlist(':'resource $xmlwriter, string $name, string $content | bool','xmlwriter_write_dtd_element(':'resource $xmlwriter, string $name, string $content | bool','xmlwriter_write_dtd_entity(':'resource $xmlwriter, string $name, string $content, bool $pe, string $pubid, string $sysid, string $ndataid | bool','xmlwriter_write_dtd(':'resource $xmlwriter, string $name [, string $publicId [, string $systemId [, string $subset]]] | bool','xmlwriter_write_element_ns(':'resource $xmlwriter, string $prefix, string $name, string $uri [, string $content] | bool','xmlwriter_write_element(':'resource $xmlwriter, string $name [, string $content] | bool','xmlwriter_write_pi(':'resource $xmlwriter, string $target, string $content | bool','xmlwriter_write_raw(':'resource $xmlwriter, string $content | bool',}
let php_builtin['functions']['zip']={'zip_close(':'resource $zip | void','zip_entry_close(':'resource $zip_entry | bool','zip_entry_compressedsize(':'resource $zip_entry | int','zip_entry_compressionmethod(':'resource $zip_entry | string','zip_entry_filesize(':'resource $zip_entry | int','zip_entry_name(':'resource $zip_entry | string','zip_entry_open(':'resource $zip, resource $zip_entry [, string $mode] | bool','zip_entry_read(':'resource $zip_entry [, int $length = 1024] | string','zip_open(':'string $filename | resource','zip_read(':'resource $zip | resource',}
let php_builtin['classes']['spl']={'appenditerator':{'name':'AppendIterator','methods':{'__construct':{'signature':'Traversable $iterator','return_type':''},'append':{'signature':'Iterator $iterator | void','return_type':'void'},'current':{'signature':'void | mixed','return_type':'mixed'},'getArrayIterator':{'signature':'void | void','return_type':'void'},'getInnerIterator':{'signature':'void | Traversable','return_type':'Traversable'},'getIteratorIndex':{'signature':'void | int','return_type':'int'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'arrayiterator':{'name':'ArrayIterator','methods':{'append':{'signature':'mixed $value | void','return_type':'void'},'asort':{'signature':'void | void','return_type':'void'},'__construct':{'signature':'[ mixed $array = array() [, int $flags = 0]]','return_type':''},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'getArrayCopy':{'signature':'void | array','return_type':'array'},'getFlags':{'signature':'void | void','return_type':'void'},'key':{'signature':'void | mixed','return_type':'mixed'},'ksort':{'signature':'void | void','return_type':'void'},'natcasesort':{'signature':'void | void','return_type':'void'},'natsort':{'signature':'void | void','return_type':'void'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'string $index | void','return_type':'void'},'offsetGet':{'signature':'string $index | mixed','return_type':'mixed'},'offsetSet':{'signature':'string $index, string $newval | void','return_type':'void'},'offsetUnset':{'signature':'string $index | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'seek':{'signature':'int $position | void','return_type':'void'},'serialize':{'signature':'void | string','return_type':'string'},'setFlags':{'signature':'string $flags | void','return_type':'void'},'uasort':{'signature':'string $cmp_function | void','return_type':'void'},'uksort':{'signature':'string $cmp_function | void','return_type':'void'},'unserialize':{'signature':'string $serialized | string','return_type':'string'},'valid':{'signature':'void | bool','return_type':'bool'},},},'arrayobject':{'name':'ArrayObject','constants':{'STD_PROP_LIST':'1','ARRAY_AS_PROPS':'2',},'methods':{'__construct':{'signature':'[ mixed $input = [] [, int $flags = 0 [, string $iterator_class = "ArrayIterator"]]]','return_type':''},'append':{'signature':'mixed $value | void','return_type':'void'},'asort':{'signature':'void | void','return_type':'void'},'count':{'signature':'void | int','return_type':'int'},'exchangeArray':{'signature':'mixed $input | array','return_type':'array'},'getArrayCopy':{'signature':'void | array','return_type':'array'},'getFlags':{'signature':'void | int','return_type':'int'},'getIterator':{'signature':'void | ArrayIterator','return_type':'ArrayIterator'},'getIteratorClass':{'signature':'void | string','return_type':'string'},'ksort':{'signature':'void | void','return_type':'void'},'natcasesort':{'signature':'void | void','return_type':'void'},'natsort':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'mixed $index | bool','return_type':'bool'},'offsetGet':{'signature':'mixed $index | mixed','return_type':'mixed'},'offsetSet':{'signature':'mixed $index, mixed $newval | void','return_type':'void'},'offsetUnset':{'signature':'mixed $index | void','return_type':'void'},'serialize':{'signature':'void | void','return_type':'void'},'setFlags':{'signature':'int $flags | void','return_type':'void'},'setIteratorClass':{'signature':'string $iterator_class | void','return_type':'void'},'uasort':{'signature':'callable $cmp_function | void','return_type':'void'},'uksort':{'signature':'callable $cmp_function | void','return_type':'void'},'unserialize':{'signature':'string $serialized | void','return_type':'void'},},},'badfunctioncallexception':{'name':'BadFunctionCallException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'badmethodcallexception':{'name':'BadMethodCallException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'cachingiterator':{'name':'CachingIterator','constants':{'CALL_TOSTRING':'1','CATCH_GET_CHILD':'16','TOSTRING_USE_KEY':'2','TOSTRING_USE_CURRENT':'4','TOSTRING_USE_INNER':'8','FULL_CACHE':'256',},'methods':{'__construct':{'signature':'Iterator $iterator [, string $flags = self::CALL_TOSTRING]','return_type':''},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | void','return_type':'void'},'getCache':{'signature':'void | void','return_type':'void'},'getFlags':{'signature':'void | void','return_type':'void'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'hasNext':{'signature':'void | void','return_type':'void'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'string $index | void','return_type':'void'},'offsetGet':{'signature':'string $index | void','return_type':'void'},'offsetSet':{'signature':'string $index, string $newval | void','return_type':'void'},'offsetUnset':{'signature':'string $index | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setFlags':{'signature':'bitmask $flags | void','return_type':'void'},'__toString':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | void','return_type':'void'},},},'callbackfilteriterator':{'name':'CallbackFilterIterator','methods':{'__construct':{'signature':'Iterator $iterator','return_type':''},'accept':{'signature':'void | bool','return_type':'bool'},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'directoryiterator':{'name':'DirectoryIterator','methods':{'__construct':{'signature':'string $path','return_type':''},'current':{'signature':'void | DirectoryIterator','return_type':'DirectoryIterator'},'getATime':{'signature':'void | int','return_type':'int'},'getBasename':{'signature':'[ string $suffix] | string','return_type':'string'},'getCTime':{'signature':'void | int','return_type':'int'},'getExtension':{'signature':'void | string','return_type':'string'},'getFilename':{'signature':'void | string','return_type':'string'},'getGroup':{'signature':'void | int','return_type':'int'},'getInode':{'signature':'void | int','return_type':'int'},'getMTime':{'signature':'void | int','return_type':'int'},'getOwner':{'signature':'void | int','return_type':'int'},'getPath':{'signature':'void | string','return_type':'string'},'getPathname':{'signature':'void | string','return_type':'string'},'getPerms':{'signature':'void | int','return_type':'int'},'getSize':{'signature':'void | int','return_type':'int'},'getType':{'signature':'void | string','return_type':'string'},'isDir':{'signature':'void | bool','return_type':'bool'},'isDot':{'signature':'void | bool','return_type':'bool'},'isExecutable':{'signature':'void | bool','return_type':'bool'},'isFile':{'signature':'void | bool','return_type':'bool'},'isLink':{'signature':'void | bool','return_type':'bool'},'isReadable':{'signature':'void | bool','return_type':'bool'},'isWritable':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | string','return_type':'string'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'seek':{'signature':'int $position | void','return_type':'void'},'__toString':{'signature':'void | string','return_type':'string'},'valid':{'signature':'void | bool','return_type':'bool'},},},'domainexception':{'name':'DomainException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'emptyiterator':{'name':'EmptyIterator','methods':{'current':{'signature':'void | void','return_type':'void'},'key':{'signature':'void | void','return_type':'void'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | void','return_type':'void'},},},'filesystemiterator':{'name':'FilesystemIterator','constants':{'CURRENT_AS_PATHNAME':'32','CURRENT_AS_FILEINFO':'0','CURRENT_AS_SELF':'16','CURRENT_MODE_MASK':'240','KEY_AS_PATHNAME':'0','KEY_AS_FILENAME':'256','FOLLOW_SYMLINKS':'512','KEY_MODE_MASK':'3840','NEW_CURRENT_AND_KEY':'256','SKIP_DOTS':'4096','UNIX_PATHS':'8192',},'methods':{'__construct':{'signature':'string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS]','return_type':''},'current':{'signature':'void | DirectoryIterator','return_type':'DirectoryIterator'},'getFlags':{'signature':'void | int','return_type':'int'},'key':{'signature':'void | string','return_type':'string'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setFlags':{'signature':'[ int $flags] | void','return_type':'void'},'getATime':{'signature':'void | int','return_type':'int'},'getBasename':{'signature':'[ string $suffix] | string','return_type':'string'},'getCTime':{'signature':'void | int','return_type':'int'},'getExtension':{'signature':'void | string','return_type':'string'},'getFilename':{'signature':'void | string','return_type':'string'},'getGroup':{'signature':'void | int','return_type':'int'},'getInode':{'signature':'void | int','return_type':'int'},'getMTime':{'signature':'void | int','return_type':'int'},'getOwner':{'signature':'void | int','return_type':'int'},'getPath':{'signature':'void | string','return_type':'string'},'getPathname':{'signature':'void | string','return_type':'string'},'getPerms':{'signature':'void | int','return_type':'int'},'getSize':{'signature':'void | int','return_type':'int'},'getType':{'signature':'void | string','return_type':'string'},'isDir':{'signature':'void | bool','return_type':'bool'},'isDot':{'signature':'void | bool','return_type':'bool'},'isExecutable':{'signature':'void | bool','return_type':'bool'},'isFile':{'signature':'void | bool','return_type':'bool'},'isLink':{'signature':'void | bool','return_type':'bool'},'isReadable':{'signature':'void | bool','return_type':'bool'},'isWritable':{'signature':'void | bool','return_type':'bool'},'seek':{'signature':'int $position | void','return_type':'void'},'__toString':{'signature':'void | string','return_type':'string'},'valid':{'signature':'void | bool','return_type':'bool'},},},'filteriterator':{'name':'FilterIterator','methods':{'accept':{'signature':'void | bool','return_type':'bool'},'__construct':{'signature':'Iterator $iterator','return_type':''},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'globiterator':{'name':'GlobIterator','methods':{'__construct':{'signature':'string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS]','return_type':''},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'getFlags':{'signature':'void | int','return_type':'int'},'key':{'signature':'void | string','return_type':'string'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setFlags':{'signature':'[ int $flags] | void','return_type':'void'},},},'infiniteiterator':{'name':'InfiniteIterator','methods':{'__construct':{'signature':'Traversable $iterator','return_type':''},'next':{'signature':'void | void','return_type':'void'},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Traversable','return_type':'Traversable'},'key':{'signature':'void | scalar','return_type':'scalar'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'invalidargumentexception':{'name':'InvalidArgumentException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'iteratoriterator':{'name':'IteratorIterator','methods':{'__construct':{'signature':'Traversable $iterator','return_type':''},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Traversable','return_type':'Traversable'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'lengthexception':{'name':'LengthException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'limititerator':{'name':'LimitIterator','methods':{'__construct':{'signature':'Iterator $iterator [, int $offset = 0 [, int $count = -1]]','return_type':''},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'getPosition':{'signature':'void | int','return_type':'int'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'seek':{'signature':'int $position | int','return_type':'int'},'valid':{'signature':'void | bool','return_type':'bool'},},},'logicexception':{'name':'LogicException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'multipleiterator':{'name':'MultipleIterator','constants':{'MIT_NEED_ANY':'0','MIT_NEED_ALL':'1','MIT_KEYS_NUMERIC':'0','MIT_KEYS_ASSOC':'2',},'methods':{'__construct':{'signature':'[ int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC]','return_type':''},'attachIterator':{'signature':'Iterator $iterator [, string $infos] | void','return_type':'void'},'containsIterator':{'signature':'Iterator $iterator | void','return_type':'void'},'countIterators':{'signature':'void | void','return_type':'void'},'current':{'signature':'void | array','return_type':'array'},'detachIterator':{'signature':'Iterator $iterator | void','return_type':'void'},'getFlags':{'signature':'void | void','return_type':'void'},'key':{'signature':'void | array','return_type':'array'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setFlags':{'signature':'int $flags | void','return_type':'void'},'valid':{'signature':'void | void','return_type':'void'},},},'norewinditerator':{'name':'NoRewindIterator','methods':{'__construct':{'signature':'Traversable $iterator','return_type':''},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Traversable','return_type':'Traversable'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'outofboundsexception':{'name':'OutOfBoundsException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'outofrangeexception':{'name':'OutOfRangeException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'overflowexception':{'name':'OverflowException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'parentiterator':{'name':'ParentIterator','methods':{'accept':{'signature':'void | bool','return_type':'bool'},'__construct':{'signature':'RecursiveIterator $iterator','return_type':''},'getChildren':{'signature':'void | ParentIterator','return_type':'ParentIterator'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},},},'rangeexception':{'name':'RangeException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'recursivearrayiterator':{'name':'RecursiveArrayIterator','methods':{'getChildren':{'signature':'void | RecursiveArrayIterator','return_type':'RecursiveArrayIterator'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'append':{'signature':'mixed $value | void','return_type':'void'},'asort':{'signature':'void | void','return_type':'void'},'__construct':{'signature':'[ mixed $array = array() [, int $flags = 0]]','return_type':''},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'getArrayCopy':{'signature':'void | array','return_type':'array'},'getFlags':{'signature':'void | void','return_type':'void'},'key':{'signature':'void | mixed','return_type':'mixed'},'ksort':{'signature':'void | void','return_type':'void'},'natcasesort':{'signature':'void | void','return_type':'void'},'natsort':{'signature':'void | void','return_type':'void'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'string $index | void','return_type':'void'},'offsetGet':{'signature':'string $index | mixed','return_type':'mixed'},'offsetSet':{'signature':'string $index, string $newval | void','return_type':'void'},'offsetUnset':{'signature':'string $index | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'seek':{'signature':'int $position | void','return_type':'void'},'serialize':{'signature':'void | string','return_type':'string'},'setFlags':{'signature':'string $flags | void','return_type':'void'},'uasort':{'signature':'string $cmp_function | void','return_type':'void'},'uksort':{'signature':'string $cmp_function | void','return_type':'void'},'unserialize':{'signature':'string $serialized | string','return_type':'string'},'valid':{'signature':'void | bool','return_type':'bool'},},},'recursivecachingiterator':{'name':'RecursiveCachingIterator','methods':{'__construct':{'signature':'Iterator $iterator [, string $flags = self::CALL_TOSTRING]','return_type':''},'getChildren':{'signature':'void | RecursiveCachingIterator','return_type':'RecursiveCachingIterator'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | void','return_type':'void'},'getCache':{'signature':'void | void','return_type':'void'},'getFlags':{'signature':'void | void','return_type':'void'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'hasNext':{'signature':'void | void','return_type':'void'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'string $index | void','return_type':'void'},'offsetGet':{'signature':'string $index | void','return_type':'void'},'offsetSet':{'signature':'string $index, string $newval | void','return_type':'void'},'offsetUnset':{'signature':'string $index | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setFlags':{'signature':'bitmask $flags | void','return_type':'void'},'__toString':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | void','return_type':'void'},},},'recursivecallbackfilteriterator':{'name':'RecursiveCallbackFilterIterator','methods':{'__construct':{'signature':'RecursiveIterator $iterator, string $callback','return_type':''},'getChildren':{'signature':'void | RecursiveCallbackFilterIterator','return_type':'RecursiveCallbackFilterIterator'},'hasChildren':{'signature':'void | void','return_type':'void'},'accept':{'signature':'void | string','return_type':'string'},},},'recursivedirectoryiterator':{'name':'RecursiveDirectoryIterator','methods':{'__construct':{'signature':'string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS]','return_type':''},'getChildren':{'signature':'void | mixed','return_type':'mixed'},'getSubPath':{'signature':'void | string','return_type':'string'},'getSubPathname':{'signature':'void | string','return_type':'string'},'hasChildren':{'signature':'[ bool $allow_links = false] | bool','return_type':'bool'},'key':{'signature':'void | string','return_type':'string'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'current':{'signature':'void | mixed','return_type':'mixed'},'getFlags':{'signature':'void | int','return_type':'int'},'setFlags':{'signature':'[ int $flags] | void','return_type':'void'},},},'recursivefilteriterator':{'name':'RecursiveFilterIterator','methods':{'__construct':{'signature':'Iterator $iterator','return_type':''},'getChildren':{'signature':'void | void','return_type':'void'},'hasChildren':{'signature':'void | void','return_type':'void'},'accept':{'signature':'void | bool','return_type':'bool'},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'recursiveiteratoriterator':{'name':'RecursiveIteratorIterator','constants':{'LEAVES_ONLY':'0','SELF_FIRST':'1','CHILD_FIRST':'2','CATCH_GET_CHILD':'16',},'methods':{'beginChildren':{'signature':'void | void','return_type':'void'},'beginIteration':{'signature':'void | void','return_type':'void'},'callGetChildren':{'signature':'void | RecursiveIterator','return_type':'RecursiveIterator'},'callHasChildren':{'signature':'void | bool','return_type':'bool'},'__construct':{'signature':'Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0]]','return_type':''},'current':{'signature':'void | mixed','return_type':'mixed'},'endChildren':{'signature':'void | void','return_type':'void'},'endIteration':{'signature':'void | void','return_type':'void'},'getDepth':{'signature':'void | int','return_type':'int'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'getMaxDepth':{'signature':'void | mixed','return_type':'mixed'},'getSubIterator':{'signature':'[ int $level] | RecursiveIterator','return_type':'RecursiveIterator'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'nextElement':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setMaxDepth':{'signature':'[ string $max_depth = -1] | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'recursiveregexiterator':{'name':'RecursiveRegexIterator','methods':{'__construct':{'signature':'RecursiveIterator $iterator, string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0]]]','return_type':''},'getChildren':{'signature':'void | RecursiveIterator','return_type':'RecursiveIterator'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'accept':{'signature':'void | bool','return_type':'bool'},'getFlags':{'signature':'void | int','return_type':'int'},'getMode':{'signature':'void | int','return_type':'int'},'getPregFlags':{'signature':'void | int','return_type':'int'},'getRegex':{'signature':'void | string','return_type':'string'},'setFlags':{'signature':'int $flags | void','return_type':'void'},'setMode':{'signature':'int $mode | void','return_type':'void'},'setPregFlags':{'signature':'int $preg_flags | void','return_type':'void'},},},'recursivetreeiterator':{'name':'RecursiveTreeIterator','constants':{'BYPASS_CURRENT':'4','BYPASS_KEY':'8','PREFIX_LEFT':'0','PREFIX_MID_HAS_NEXT':'1','PREFIX_MID_LAST':'2','PREFIX_END_HAS_NEXT':'3','PREFIX_END_LAST':'4','PREFIX_RIGHT':'5',},'methods':{'beginChildren':{'signature':'void | void','return_type':'void'},'beginIteration':{'signature':'void | void','return_type':'void'},'callGetChildren':{'signature':'void | RecursiveIterator','return_type':'RecursiveIterator'},'callHasChildren':{'signature':'void | bool','return_type':'bool'},'__construct':{'signature':'Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0]]','return_type':''},'current':{'signature':'void | mixed','return_type':'mixed'},'endChildren':{'signature':'void | void','return_type':'void'},'endIteration':{'signature':'void | void','return_type':'void'},'getEntry':{'signature':'void | string','return_type':'string'},'getPostfix':{'signature':'void | void','return_type':'void'},'getPrefix':{'signature':'void | string','return_type':'string'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'nextElement':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setPrefixPart':{'signature':'int $part, string $value | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},'getDepth':{'signature':'void | int','return_type':'int'},'getInnerIterator':{'signature':'void | iterator','return_type':'iterator'},'getMaxDepth':{'signature':'void | mixed','return_type':'mixed'},'getSubIterator':{'signature':'[ int $level] | RecursiveIterator','return_type':'RecursiveIterator'},'setMaxDepth':{'signature':'[ string $max_depth = -1] | void','return_type':'void'},},},'regexiterator':{'name':'RegexIterator','constants':{'MATCH':'0','GET_MATCH':'1','ALL_MATCHES':'2','SPLIT':'3','REPLACE':'4','USE_KEY':'1',},'methods':{'__construct':{'signature':'Iterator $iterator','return_type':''},'accept':{'signature':'void | bool','return_type':'bool'},'getFlags':{'signature':'void | int','return_type':'int'},'getMode':{'signature':'void | int','return_type':'int'},'getPregFlags':{'signature':'void | int','return_type':'int'},'getRegex':{'signature':'void | string','return_type':'string'},'setFlags':{'signature':'int $flags | void','return_type':'void'},'setMode':{'signature':'int $mode | void','return_type':'void'},'setPregFlags':{'signature':'int $preg_flags | void','return_type':'void'},'current':{'signature':'void | mixed','return_type':'mixed'},'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'runtimeexception':{'name':'RuntimeException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'spldoublylinkedlist':{'name':'SplDoublyLinkedList','methods':{'__construct':{'signature':'void','return_type':''},'bottom':{'signature':'void | mixed','return_type':'mixed'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'getIteratorMode':{'signature':'void | int','return_type':'int'},'isEmpty':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'mixed $index | bool','return_type':'bool'},'offsetGet':{'signature':'mixed $index | mixed','return_type':'mixed'},'offsetSet':{'signature':'mixed $index, mixed $newval | void','return_type':'void'},'offsetUnset':{'signature':'mixed $index | void','return_type':'void'},'pop':{'signature':'void | mixed','return_type':'mixed'},'prev':{'signature':'void | void','return_type':'void'},'push':{'signature':'mixed $value | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'serialize':{'signature':'void | string','return_type':'string'},'setIteratorMode':{'signature':'int $mode | void','return_type':'void'},'shift':{'signature':'void | mixed','return_type':'mixed'},'top':{'signature':'void | mixed','return_type':'mixed'},'unserialize':{'signature':'string $serialized | void','return_type':'void'},'unshift':{'signature':'mixed $value | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'splfileinfo':{'name':'SplFileInfo','methods':{'__construct':{'signature':'string $file_name','return_type':''},'getATime':{'signature':'void | int','return_type':'int'},'getBasename':{'signature':'[ string $suffix] | string','return_type':'string'},'getCTime':{'signature':'void | int','return_type':'int'},'getExtension':{'signature':'void | string','return_type':'string'},'getFileInfo':{'signature':'[ string $class_name] | SplFileInfo','return_type':'SplFileInfo'},'getFilename':{'signature':'void | string','return_type':'string'},'getGroup':{'signature':'void | int','return_type':'int'},'getInode':{'signature':'void | int','return_type':'int'},'getLinkTarget':{'signature':'void | string','return_type':'string'},'getMTime':{'signature':'void | int','return_type':'int'},'getOwner':{'signature':'void | int','return_type':'int'},'getPath':{'signature':'void | string','return_type':'string'},'getPathInfo':{'signature':'[ string $class_name] | SplFileInfo','return_type':'SplFileInfo'},'getPathname':{'signature':'void | string','return_type':'string'},'getPerms':{'signature':'void | int','return_type':'int'},'getRealPath':{'signature':'void | string','return_type':'string'},'getSize':{'signature':'void | int','return_type':'int'},'getType':{'signature':'void | string','return_type':'string'},'isDir':{'signature':'void | bool','return_type':'bool'},'isExecutable':{'signature':'void | bool','return_type':'bool'},'isFile':{'signature':'void | bool','return_type':'bool'},'isLink':{'signature':'void | bool','return_type':'bool'},'isReadable':{'signature':'void | bool','return_type':'bool'},'isWritable':{'signature':'void | bool','return_type':'bool'},'openFile':{'signature':'[ string $open_mode = r [, bool $use_include_path = false [, resource $context = NULL]]] | SplFileObject','return_type':'SplFileObject'},'setFileClass':{'signature':'[ string $class_name] | void','return_type':'void'},'setInfoClass':{'signature':'[ string $class_name] | void','return_type':'void'},'__toString':{'signature':'void | void','return_type':'void'},},},'splfileobject':{'name':'SplFileObject','constants':{'DROP_NEW_LINE':'1','READ_AHEAD':'2','SKIP_EMPTY':'4','READ_CSV':'8',},'methods':{'__construct':{'signature':'string $file_name','return_type':''},'current':{'signature':'void | string|array','return_type':'string|array'},'eof':{'signature':'void | bool','return_type':'bool'},'fflush':{'signature':'void | bool','return_type':'bool'},'fgetc':{'signature':'void | string','return_type':'string'},'fgetcsv':{'signature':'[ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\"]]] | array','return_type':'array'},'fgets':{'signature':'void | string','return_type':'string'},'fgetss':{'signature':'[ string $allowable_tags] | string','return_type':'string'},'flock':{'signature':'int $operation [, int &$wouldblock] | bool','return_type':'bool'},'fpassthru':{'signature':'void | int','return_type':'int'},'fputcsv':{'signature':'array $fields [, string $delimiter = '','' [, string $enclosure = ''"'']] | int','return_type':'int'},'fscanf':{'signature':'string $format [, mixed &$...] | mixed','return_type':'mixed'},'fseek':{'signature':'int $offset [, int $whence = SEEK_SET] | int','return_type':'int'},'fstat':{'signature':'void | array','return_type':'array'},'ftell':{'signature':'void | int','return_type':'int'},'ftruncate':{'signature':'int $size | bool','return_type':'bool'},'fwrite':{'signature':'string $str [, int $length] | int','return_type':'int'},'getChildren':{'signature':'void | void','return_type':'void'},'getCsvControl':{'signature':'void | array','return_type':'array'},'getFlags':{'signature':'void | int','return_type':'int'},'getMaxLineLen':{'signature':'void | int','return_type':'int'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | int','return_type':'int'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'seek':{'signature':'int $line_pos | void','return_type':'void'},'setCsvControl':{'signature':'[ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\"]]] | void','return_type':'void'},'setFlags':{'signature':'int $flags | void','return_type':'void'},'setMaxLineLen':{'signature':'int $max_len | void','return_type':'void'},'__toString':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},'getATime':{'signature':'void | int','return_type':'int'},'getBasename':{'signature':'[ string $suffix] | string','return_type':'string'},'getCTime':{'signature':'void | int','return_type':'int'},'getExtension':{'signature':'void | string','return_type':'string'},'getFileInfo':{'signature':'[ string $class_name] | SplFileInfo','return_type':'SplFileInfo'},'getFilename':{'signature':'void | string','return_type':'string'},'getGroup':{'signature':'void | int','return_type':'int'},'getInode':{'signature':'void | int','return_type':'int'},'getLinkTarget':{'signature':'void | string','return_type':'string'},'getMTime':{'signature':'void | int','return_type':'int'},'getOwner':{'signature':'void | int','return_type':'int'},'getPath':{'signature':'void | string','return_type':'string'},'getPathInfo':{'signature':'[ string $class_name] | SplFileInfo','return_type':'SplFileInfo'},'getPathname':{'signature':'void | string','return_type':'string'},'getPerms':{'signature':'void | int','return_type':'int'},'getRealPath':{'signature':'void | string','return_type':'string'},'getSize':{'signature':'void | int','return_type':'int'},'getType':{'signature':'void | string','return_type':'string'},'isDir':{'signature':'void | bool','return_type':'bool'},'isExecutable':{'signature':'void | bool','return_type':'bool'},'isFile':{'signature':'void | bool','return_type':'bool'},'isLink':{'signature':'void | bool','return_type':'bool'},'isReadable':{'signature':'void | bool','return_type':'bool'},'isWritable':{'signature':'void | bool','return_type':'bool'},'openFile':{'signature':'[ string $open_mode = r [, bool $use_include_path = false [, resource $context = NULL]]] | SplFileObject','return_type':'SplFileObject'},'setFileClass':{'signature':'[ string $class_name] | void','return_type':'void'},'setInfoClass':{'signature':'[ string $class_name] | void','return_type':'void'},},},'splfixedarray':{'name':'SplFixedArray','methods':{'__construct':{'signature':'[ int $size = 0]','return_type':''},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'getSize':{'signature':'void | int','return_type':'int'},'key':{'signature':'void | int','return_type':'int'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'int $index | bool','return_type':'bool'},'offsetGet':{'signature':'int $index | mixed','return_type':'mixed'},'offsetSet':{'signature':'int $index, mixed $newval | void','return_type':'void'},'offsetUnset':{'signature':'int $index | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setSize':{'signature':'int $size | int','return_type':'int'},'toArray':{'signature':'void | array','return_type':'array'},'valid':{'signature':'void | bool','return_type':'bool'},'__wakeup':{'signature':'void | void','return_type':'void'},},'static_methods':{'fromArray':{'signature':'array $array [, bool $save_indexes = true] | SplFixedArray','return_type':'SplFixedArray'},},},'splheap':{'name':'SplHeap','methods':{'__construct':{'signature':'void','return_type':''},'compare':{'signature':'mixed $value1, mixed $value2 | int','return_type':'int'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'extract':{'signature':'void | mixed','return_type':'mixed'},'insert':{'signature':'mixed $value | void','return_type':'void'},'isEmpty':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'recoverFromCorruption':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'top':{'signature':'void | mixed','return_type':'mixed'},'valid':{'signature':'void | bool','return_type':'bool'},},},'splmaxheap':{'name':'SplMaxHeap','methods':{'compare':{'signature':'mixed $value1, mixed $value2 | int','return_type':'int'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'extract':{'signature':'void | mixed','return_type':'mixed'},'insert':{'signature':'mixed $value | void','return_type':'void'},'isEmpty':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'recoverFromCorruption':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'top':{'signature':'void | mixed','return_type':'mixed'},'valid':{'signature':'void | bool','return_type':'bool'},},},'splminheap':{'name':'SplMinHeap','methods':{'compare':{'signature':'mixed $value1, mixed $value2 | int','return_type':'int'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'extract':{'signature':'void | mixed','return_type':'mixed'},'insert':{'signature':'mixed $value | void','return_type':'void'},'isEmpty':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'recoverFromCorruption':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'top':{'signature':'void | mixed','return_type':'mixed'},'valid':{'signature':'void | bool','return_type':'bool'},},},'splobjectstorage':{'name':'SplObjectStorage','methods':{'addAll':{'signature':'SplObjectStorage $storage | void','return_type':'void'},'attach':{'signature':'object $object [, mixed $data = NULL] | void','return_type':'void'},'contains':{'signature':'object $object | bool','return_type':'bool'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | object','return_type':'object'},'detach':{'signature':'object $object | void','return_type':'void'},'getHash':{'signature':'object $object | string','return_type':'string'},'getInfo':{'signature':'void | mixed','return_type':'mixed'},'key':{'signature':'void | int','return_type':'int'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'object $object | bool','return_type':'bool'},'offsetGet':{'signature':'object $object | mixed','return_type':'mixed'},'offsetSet':{'signature':'object $object [, mixed $data = NULL] | void','return_type':'void'},'offsetUnset':{'signature':'object $object | void','return_type':'void'},'removeAll':{'signature':'SplObjectStorage $storage | void','return_type':'void'},'removeAllExcept':{'signature':'SplObjectStorage $storage | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'serialize':{'signature':'void | string','return_type':'string'},'setInfo':{'signature':'mixed $data | void','return_type':'void'},'unserialize':{'signature':'string $serialized | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'splpriorityqueue':{'name':'SplPriorityQueue','methods':{'__construct':{'signature':'void','return_type':''},'compare':{'signature':'mixed $priority1, mixed $priority2 | int','return_type':'int'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'extract':{'signature':'void | mixed','return_type':'mixed'},'insert':{'signature':'mixed $value, mixed $priority | void','return_type':'void'},'isEmpty':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'recoverFromCorruption':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'setExtractFlags':{'signature':'int $flags | void','return_type':'void'},'top':{'signature':'void | mixed','return_type':'mixed'},'valid':{'signature':'void | bool','return_type':'bool'},},},'splqueue':{'name':'SplQueue','methods':{'__construct':{'signature':'void','return_type':''},'dequeue':{'signature':'void | mixed','return_type':'mixed'},'enqueue':{'signature':'mixed $value | void','return_type':'void'},'setIteratorMode':{'signature':'int $mode | void','return_type':'void'},'bottom':{'signature':'void | mixed','return_type':'mixed'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'getIteratorMode':{'signature':'void | int','return_type':'int'},'isEmpty':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'mixed $index | bool','return_type':'bool'},'offsetGet':{'signature':'mixed $index | mixed','return_type':'mixed'},'offsetSet':{'signature':'mixed $index, mixed $newval | void','return_type':'void'},'offsetUnset':{'signature':'mixed $index | void','return_type':'void'},'pop':{'signature':'void | mixed','return_type':'mixed'},'prev':{'signature':'void | void','return_type':'void'},'push':{'signature':'mixed $value | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'serialize':{'signature':'void | string','return_type':'string'},'shift':{'signature':'void | mixed','return_type':'mixed'},'top':{'signature':'void | mixed','return_type':'mixed'},'unserialize':{'signature':'string $serialized | void','return_type':'void'},'unshift':{'signature':'mixed $value | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'splstack':{'name':'SplStack','methods':{'__construct':{'signature':'void','return_type':''},'setIteratorMode':{'signature':'int $mode | void','return_type':'void'},'bottom':{'signature':'void | mixed','return_type':'mixed'},'count':{'signature':'void | int','return_type':'int'},'current':{'signature':'void | mixed','return_type':'mixed'},'getIteratorMode':{'signature':'void | int','return_type':'int'},'isEmpty':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'offsetExists':{'signature':'mixed $index | bool','return_type':'bool'},'offsetGet':{'signature':'mixed $index | mixed','return_type':'mixed'},'offsetSet':{'signature':'mixed $index, mixed $newval | void','return_type':'void'},'offsetUnset':{'signature':'mixed $index | void','return_type':'void'},'pop':{'signature':'void | mixed','return_type':'mixed'},'prev':{'signature':'void | void','return_type':'void'},'push':{'signature':'mixed $value | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'serialize':{'signature':'void | string','return_type':'string'},'shift':{'signature':'void | mixed','return_type':'mixed'},'top':{'signature':'void | mixed','return_type':'mixed'},'unserialize':{'signature':'string $serialized | void','return_type':'void'},'unshift':{'signature':'mixed $value | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'spltempfileobject':{'name':'SplTempFileObject','methods':{'__construct':{'signature':'string $filename [, string $open_mode = "r" [, bool $use_include_path = false [, resource $context]]]','return_type':''},'current':{'signature':'void | string|array','return_type':'string|array'},'eof':{'signature':'void | bool','return_type':'bool'},'fflush':{'signature':'void | bool','return_type':'bool'},'fgetc':{'signature':'void | string','return_type':'string'},'fgetcsv':{'signature':'[ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\"]]] | array','return_type':'array'},'fgets':{'signature':'void | string','return_type':'string'},'fgetss':{'signature':'[ string $allowable_tags] | string','return_type':'string'},'flock':{'signature':'int $operation [, int &$wouldblock] | bool','return_type':'bool'},'fpassthru':{'signature':'void | int','return_type':'int'},'fputcsv':{'signature':'array $fields [, string $delimiter = '','' [, string $enclosure = ''"'']] | int','return_type':'int'},'fscanf':{'signature':'string $format [, mixed &$...] | mixed','return_type':'mixed'},'fseek':{'signature':'int $offset [, int $whence = SEEK_SET] | int','return_type':'int'},'fstat':{'signature':'void | array','return_type':'array'},'ftell':{'signature':'void | int','return_type':'int'},'ftruncate':{'signature':'int $size | bool','return_type':'bool'},'fwrite':{'signature':'string $str [, int $length] | int','return_type':'int'},'getChildren':{'signature':'void | void','return_type':'void'},'getCsvControl':{'signature':'void | array','return_type':'array'},'getFlags':{'signature':'void | int','return_type':'int'},'getMaxLineLen':{'signature':'void | int','return_type':'int'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | int','return_type':'int'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'seek':{'signature':'int $line_pos | void','return_type':'void'},'setCsvControl':{'signature':'[ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\"]]] | void','return_type':'void'},'setFlags':{'signature':'int $flags | void','return_type':'void'},'setMaxLineLen':{'signature':'int $max_len | void','return_type':'void'},'__toString':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},},},'underflowexception':{'name':'UnderflowException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'unexpectedvalueexception':{'name':'UnexpectedValueException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},}
let php_builtin['classes']['predefined_interfaces_and_classes']={'closure':{'name':'Closure','methods':{'__construct':{'signature':'void','return_type':''},'bindTo':{'signature':'object $newthis [, mixed $newscope = ''static''] | Closure','return_type':'Closure'},},'static_methods':{'bind':{'signature':'Closure $closure, object $newthis [, mixed $newscope = ''static''] | Closure','return_type':'Closure'},},},'generator':{'name':'Generator','methods':{'current':{'signature':'void | mixed','return_type':'mixed'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'send':{'signature':'mixed $value | mixed','return_type':'mixed'},'throw':{'signature':'Exception $exception | mixed','return_type':'mixed'},'valid':{'signature':'void | bool','return_type':'bool'},'__wakeup':{'signature':'void | void','return_type':'void'},},},}
let php_builtin['classes']['curl']={'curlfile':{'name':'CURLFile','properties': {'name':{'initializer':'','type':''},'mime':{'initializer':'','type':''},'postname':{'initializer':'','type':''},},'methods':{'__construct':{'signature':'string $filename [, string $mimetype [, string $postname]]','return_type':''},'getFilename':{'signature':'void | string','return_type':'string'},'getMimeType':{'signature':'void | string','return_type':'string'},'getPostFilename':{'signature':'void | string','return_type':'string'},'setMimeType':{'signature':'string $mime | void','return_type':'void'},'setPostFilename':{'signature':'string $postname | void','return_type':'void'},'__wakeup':{'signature':'void | void','return_type':'void'},},},}
let php_builtin['classes']['date_time']={'dateinterval':{'name':'DateInterval','properties': {'y':{'initializer':'','type':'integer'},'m':{'initializer':'','type':'integer'},'d':{'initializer':'','type':'integer'},'h':{'initializer':'','type':'integer'},'i':{'initializer':'','type':'integer'},'s':{'initializer':'','type':'integer'},'invert':{'initializer':'','type':'integer'},'days':{'initializer':'','type':'mixed'},},'methods':{'__construct':{'signature':'string $interval_spec','return_type':''},'format':{'signature':'string $format | string','return_type':'string'},},'static_methods':{'createFromDateString':{'signature':'string $time | DateInterval','return_type':'DateInterval'},},},'dateperiod':{'name':'DatePeriod','constants':{'EXCLUDE_START_DATE':'1',},'methods':{'__construct':{'signature':'string $isostr [, int $options]','return_type':''},},},'datetime':{'name':'DateTime','constants':{'ATOM':'"Y-m-d\TH:i:sP"','COOKIE':'"l, d-M-y H:i:s T"','ISO8601':'"Y-m-d\TH:i:sO"','RFC822':'"D, d M y H:i:s O"','RFC850':'"l, d-M-y H:i:s T"','RFC1036':'"D, d M y H:i:s O"','RFC1123':'"D, d M Y H:i:s O"','RFC2822':'"D, d M Y H:i:s O"','RFC3339':'"Y-m-d\TH:i:sP"','RSS':'"D, d M Y H:i:s O"','W3C':'"Y-m-d\TH:i:sP"',},'methods':{'__construct':{'signature':'[ string $time = "now" [, DateTimeZone $timezone = NULL]]','return_type':''},'add':{'signature':'DateInterval $interval | DateTime','return_type':'DateTime'},'modify':{'signature':'string $modify | DateTime','return_type':'DateTime'},'setDate':{'signature':'int $year, int $month, int $day | DateTime','return_type':'DateTime'},'setISODate':{'signature':'int $year, int $week [, int $day = 1] | DateTime','return_type':'DateTime'},'setTime':{'signature':'int $hour, int $minute [, int $second = 0] | DateTime','return_type':'DateTime'},'setTimestamp':{'signature':'int $unixtimestamp | DateTime','return_type':'DateTime'},'setTimezone':{'signature':'DateTimeZone $timezone | DateTime','return_type':'DateTime'},'sub':{'signature':'DateInterval $interval | DateTime','return_type':'DateTime'},'diff':{'signature':'DateTimeInterface $datetime2 [, bool $absolute = false] | DateInterval','return_type':'DateInterval'},'format':{'signature':'string $format | string','return_type':'string'},'getOffset':{'signature':'void | int','return_type':'int'},'getTimestamp':{'signature':'void | int','return_type':'int'},'getTimezone':{'signature':'void | DateTimeZone','return_type':'DateTimeZone'},'__wakeup':{'signature':'void','return_type':''},},'static_methods':{'createFromFormat':{'signature':'string $format, string $time [, DateTimeZone $timezone] | DateTime','return_type':'DateTime'},'getLastErrors':{'signature':'void | array','return_type':'array'},'__set_state':{'signature':'array $array | DateTime','return_type':'DateTime'},},},'datetimeimmutable':{'name':'DateTimeImmutable','methods':{'__construct':{'signature':'[ string $time = "now" [, DateTimeZone $timezone = NULL]]','return_type':''},'add':{'signature':'DateInterval $interval | DateTimeImmutable','return_type':'DateTimeImmutable'},'modify':{'signature':'string $modify | DateTimeImmutable','return_type':'DateTimeImmutable'},'setDate':{'signature':'int $year, int $month, int $day | DateTimeImmutable','return_type':'DateTimeImmutable'},'setISODate':{'signature':'int $year, int $week [, int $day = 1] | DateTimeImmutable','return_type':'DateTimeImmutable'},'setTime':{'signature':'int $hour, int $minute [, int $second = 0] | DateTimeImmutable','return_type':'DateTimeImmutable'},'setTimestamp':{'signature':'int $unixtimestamp | DateTimeImmutable','return_type':'DateTimeImmutable'},'setTimezone':{'signature':'DateTimeZone $timezone | DateTimeImmutable','return_type':'DateTimeImmutable'},'sub':{'signature':'DateInterval $interval | DateTimeImmutable','return_type':'DateTimeImmutable'},'diff':{'signature':'DateTimeInterface $datetime2 [, bool $absolute = false] | DateInterval','return_type':'DateInterval'},'format':{'signature':'string $format | string','return_type':'string'},'getOffset':{'signature':'void | int','return_type':'int'},'getTimestamp':{'signature':'void | int','return_type':'int'},'getTimezone':{'signature':'void | DateTimeZone','return_type':'DateTimeZone'},'__wakeup':{'signature':'void','return_type':''},},'static_methods':{'createFromFormat':{'signature':'string $format, string $time [, DateTimeZone $timezone] | DateTimeImmutable','return_type':'DateTimeImmutable'},'getLastErrors':{'signature':'void | array','return_type':'array'},'__set_state':{'signature':'array $array | DateTimeImmutable','return_type':'DateTimeImmutable'},},},'datetimezone':{'name':'DateTimeZone','constants':{'AFRICA':'1','AMERICA':'2','ANTARCTICA':'4','ARCTIC':'8','ASIA':'16','ATLANTIC':'32','AUSTRALIA':'64','EUROPE':'128','INDIAN':'256','PACIFIC':'512','UTC':'1024','ALL':'2047','ALL_WITH_BC':'4095','PER_COUNTRY':'4096',},'methods':{'__construct':{'signature':'string $timezone','return_type':''},'getLocation':{'signature':'void | array','return_type':'array'},'getName':{'signature':'void | string','return_type':'string'},'getOffset':{'signature':'DateTime $datetime | int','return_type':'int'},'getTransitions':{'signature':'[ int $timestamp_begin [, int $timestamp_end]] | array','return_type':'array'},},'static_methods':{'listAbbreviations':{'signature':'void | array','return_type':'array'},'listIdentifiers':{'signature':'[ int $what = DateTimeZone::ALL [, string $country = NULL]] | array','return_type':'array'},},},}
let php_builtin['classes']['directories']={'directory':{'name':'Directory','properties': {'path':{'initializer':'','type':'string'},'handle':{'initializer':'','type':'resource'},},'methods':{'close':{'signature':'[ resource $dir_handle] | void','return_type':'void'},'read':{'signature':'[ resource $dir_handle] | string','return_type':'string'},'rewind':{'signature':'[ resource $dir_handle] | void','return_type':'void'},},},}
let php_builtin['classes']['dom']={'domattr':{'name':'DOMAttr','properties': {'name':{'initializer':'','type':'string'},'ownerElement':{'initializer':'','type':'DOMElement'},'schemaTypeInfo':{'initializer':'','type':'bool'},'specified':{'initializer':'','type':'bool'},'value':{'initializer':'','type':'string'},},'methods':{'__construct':{'signature':'string $name [, string $value]','return_type':''},'isId':{'signature':'void | bool','return_type':'bool'},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domcdatasection':{'name':'DOMCdataSection','methods':{'__construct':{'signature':'string $value','return_type':''},'isWhitespaceInElementContent':{'signature':'void | bool','return_type':'bool'},'splitText':{'signature':'int $offset | DOMText','return_type':'DOMText'},},},'domcharacterdata':{'name':'DOMCharacterData','properties': {'data':{'initializer':'','type':'string'},'length':{'initializer':'','type':'int'},},'methods':{'appendData':{'signature':'string $data | void','return_type':'void'},'deleteData':{'signature':'int $offset, int $count | void','return_type':'void'},'insertData':{'signature':'int $offset, string $data | void','return_type':'void'},'replaceData':{'signature':'int $offset, int $count, string $data | void','return_type':'void'},'substringData':{'signature':'int $offset, int $count | string','return_type':'string'},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domcomment':{'name':'DOMComment','methods':{'__construct':{'signature':'[ string $value]','return_type':''},'appendData':{'signature':'string $data | void','return_type':'void'},'deleteData':{'signature':'int $offset, int $count | void','return_type':'void'},'insertData':{'signature':'int $offset, string $data | void','return_type':'void'},'replaceData':{'signature':'int $offset, int $count, string $data | void','return_type':'void'},'substringData':{'signature':'int $offset, int $count | string','return_type':'string'},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domdocument':{'name':'DOMDocument','properties': {'actualEncoding':{'initializer':'','type':'string'},'config':{'initializer':'','type':'DOMConfiguration'},'doctype':{'initializer':'','type':'DOMDocumentType'},'documentElement':{'initializer':'','type':'DOMElement'},'documentURI':{'initializer':'','type':'string'},'encoding':{'initializer':'','type':'string'},'formatOutput':{'initializer':'','type':'bool'},'implementation':{'initializer':'','type':'DOMImplementation'},'preserveWhiteSpace':{'initializer':'true','type':'bool'},'recover':{'initializer':'','type':'bool'},'resolveExternals':{'initializer':'','type':'bool'},'standalone':{'initializer':'','type':'bool'},'strictErrorChecking':{'initializer':'true','type':'bool'},'substituteEntities':{'initializer':'','type':'bool'},'validateOnParse':{'initializer':'false','type':'bool'},'version':{'initializer':'','type':'string'},'xmlEncoding':{'initializer':'','type':'string'},'xmlStandalone':{'initializer':'','type':'bool'},'xmlVersion':{'initializer':'','type':'string'},},'methods':{'__construct':{'signature':'[ string $version [, string $encoding]]','return_type':''},'createAttribute':{'signature':'string $name | DOMAttr','return_type':'DOMAttr'},'createAttributeNS':{'signature':'string $namespaceURI, string $qualifiedName | DOMAttr','return_type':'DOMAttr'},'createCDATASection':{'signature':'string $data | DOMCDATASection','return_type':'DOMCDATASection'},'createComment':{'signature':'string $data | DOMComment','return_type':'DOMComment'},'createDocumentFragment':{'signature':'void | DOMDocumentFragment','return_type':'DOMDocumentFragment'},'createElement':{'signature':'string $name [, string $value] | DOMElement','return_type':'DOMElement'},'createElementNS':{'signature':'string $namespaceURI, string $qualifiedName [, string $value] | DOMElement','return_type':'DOMElement'},'createEntityReference':{'signature':'string $name | DOMEntityReference','return_type':'DOMEntityReference'},'createProcessingInstruction':{'signature':'string $target [, string $data] | DOMProcessingInstruction','return_type':'DOMProcessingInstruction'},'createTextNode':{'signature':'string $content | DOMText','return_type':'DOMText'},'getElementById':{'signature':'string $elementId | DOMElement','return_type':'DOMElement'},'getElementsByTagName':{'signature':'string $name | DOMNodeList','return_type':'DOMNodeList'},'getElementsByTagNameNS':{'signature':'string $namespaceURI, string $localName | DOMNodeList','return_type':'DOMNodeList'},'importNode':{'signature':'DOMNode $importedNode [, bool $deep] | DOMNode','return_type':'DOMNode'},'load':{'signature':'string $filename [, int $options = 0] | mixed','return_type':'mixed'},'loadHTML':{'signature':'string $source [, int $options = 0] | bool','return_type':'bool'},'loadHTMLFile':{'signature':'string $filename [, int $options = 0] | bool','return_type':'bool'},'loadXML':{'signature':'string $source [, int $options = 0] | mixed','return_type':'mixed'},'normalizeDocument':{'signature':'void | void','return_type':'void'},'registerNodeClass':{'signature':'string $baseclass, string $extendedclass | bool','return_type':'bool'},'relaxNGValidate':{'signature':'string $filename | bool','return_type':'bool'},'relaxNGValidateSource':{'signature':'string $source | bool','return_type':'bool'},'save':{'signature':'string $filename [, int $options] | int','return_type':'int'},'saveHTML':{'signature':'[ DOMNode $node = NULL] | string','return_type':'string'},'saveHTMLFile':{'signature':'string $filename | int','return_type':'int'},'saveXML':{'signature':'[ DOMNode $node [, int $options]] | string','return_type':'string'},'schemaValidate':{'signature':'string $filename [, int $flags] | bool','return_type':'bool'},'schemaValidateSource':{'signature':'string $source [, int $flags] | bool','return_type':'bool'},'validate':{'signature':'void | bool','return_type':'bool'},'xinclude':{'signature':'[ int $options] | int','return_type':'int'},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domdocumentfragment':{'name':'DOMDocumentFragment','methods':{'appendXML':{'signature':'string $data | bool','return_type':'bool'},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domdocumenttype':{'name':'DOMDocumentType','properties': {'publicId':{'initializer':'','type':'string'},'systemId':{'initializer':'','type':'string'},'name':{'initializer':'','type':'string'},'entities':{'initializer':'','type':'DOMNamedNodeMap'},'notations':{'initializer':'','type':'DOMNamedNodeMap'},'internalSubset':{'initializer':'','type':'string'},},'methods':{'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domelement':{'name':'DOMElement','properties': {'schemaTypeInfo':{'initializer':'','type':'bool'},'tagName':{'initializer':'','type':'string'},},'methods':{'__construct':{'signature':'string $name [, string $value [, string $namespaceURI]]','return_type':''},'getAttribute':{'signature':'string $name | string','return_type':'string'},'getAttributeNode':{'signature':'string $name | DOMAttr','return_type':'DOMAttr'},'getAttributeNodeNS':{'signature':'string $namespaceURI, string $localName | DOMAttr','return_type':'DOMAttr'},'getAttributeNS':{'signature':'string $namespaceURI, string $localName | string','return_type':'string'},'getElementsByTagName':{'signature':'string $name | DOMNodeList','return_type':'DOMNodeList'},'getElementsByTagNameNS':{'signature':'string $namespaceURI, string $localName | DOMNodeList','return_type':'DOMNodeList'},'hasAttribute':{'signature':'string $name | bool','return_type':'bool'},'hasAttributeNS':{'signature':'string $namespaceURI, string $localName | bool','return_type':'bool'},'removeAttribute':{'signature':'string $name | bool','return_type':'bool'},'removeAttributeNode':{'signature':'DOMAttr $oldnode | bool','return_type':'bool'},'removeAttributeNS':{'signature':'string $namespaceURI, string $localName | bool','return_type':'bool'},'setAttribute':{'signature':'string $name, string $value | DOMAttr','return_type':'DOMAttr'},'setAttributeNode':{'signature':'DOMAttr $attr | DOMAttr','return_type':'DOMAttr'},'setAttributeNodeNS':{'signature':'DOMAttr $attr | DOMAttr','return_type':'DOMAttr'},'setAttributeNS':{'signature':'string $namespaceURI, string $qualifiedName, string $value | void','return_type':'void'},'setIdAttribute':{'signature':'string $name, bool $isId | void','return_type':'void'},'setIdAttributeNode':{'signature':'DOMAttr $attr, bool $isId | void','return_type':'void'},'setIdAttributeNS':{'signature':'string $namespaceURI, string $localName, bool $isId | void','return_type':'void'},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domentity':{'name':'DOMEntity','properties': {'publicId':{'initializer':'','type':'string'},'systemId':{'initializer':'','type':'string'},'notationName':{'initializer':'','type':'string'},'actualEncoding':{'initializer':'','type':'string'},'encoding':{'initializer':'','type':'string'},'version':{'initializer':'','type':'string'},},'methods':{'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domentityreference':{'name':'DOMEntityReference','methods':{'__construct':{'signature':'string $name','return_type':''},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domexception':{'name':'DOMException','properties': {'code':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'domimplementation':{'name':'DOMImplementation','methods':{'__construct':{'signature':'void','return_type':''},'createDocument':{'signature':'[ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL]]] | DOMDocument','return_type':'DOMDocument'},'createDocumentType':{'signature':'[ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL]]] | DOMDocumentType','return_type':'DOMDocumentType'},'hasFeature':{'signature':'string $feature, string $version | bool','return_type':'bool'},},},'domnamednodemap':{'name':'DOMNamedNodeMap','properties': {'length':{'initializer':'','type':'int'},},'methods':{'getNamedItem':{'signature':'string $name | DOMNode','return_type':'DOMNode'},'getNamedItemNS':{'signature':'string $namespaceURI, string $localName | DOMNode','return_type':'DOMNode'},'item':{'signature':'int $index | DOMNode','return_type':'DOMNode'},},},'domnode':{'name':'DOMNode','properties': {'nodeName':{'initializer':'','type':'string'},'nodeValue':{'initializer':'','type':'string'},'nodeType':{'initializer':'','type':'int'},'parentNode':{'initializer':'','type':'DOMNode'},'childNodes':{'initializer':'','type':'DOMNodeList'},'firstChild':{'initializer':'','type':'DOMNode'},'lastChild':{'initializer':'','type':'DOMNode'},'previousSibling':{'initializer':'','type':'DOMNode'},'nextSibling':{'initializer':'','type':'DOMNode'},'attributes':{'initializer':'','type':'DOMNamedNodeMap'},'ownerDocument':{'initializer':'','type':'DOMDocument'},'namespaceURI':{'initializer':'','type':'string'},'prefix':{'initializer':'','type':'string'},'localName':{'initializer':'','type':'string'},'baseURI':{'initializer':'','type':'string'},'textContent':{'initializer':'','type':'string'},},'methods':{'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domnodelist':{'name':'DOMNodeList','properties': {'length':{'initializer':'','type':'int'},},'methods':{'item':{'signature':'int $index | DOMNode','return_type':'DOMNode'},},},'domnotation':{'name':'DOMNotation','properties': {'publicId':{'initializer':'','type':'string'},'systemId':{'initializer':'','type':'string'},},'methods':{'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domprocessinginstruction':{'name':'DOMProcessingInstruction','properties': {'target':{'initializer':'','type':'string'},'data':{'initializer':'','type':'string'},},'methods':{'__construct':{'signature':'string $name [, string $value]','return_type':''},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domtext':{'name':'DOMText','properties': {'wholeText':{'initializer':'','type':'string'},},'methods':{'__construct':{'signature':'[ string $value]','return_type':''},'isWhitespaceInElementContent':{'signature':'void | bool','return_type':'bool'},'splitText':{'signature':'int $offset | DOMText','return_type':'DOMText'},'appendChild':{'signature':'DOMNode $newnode | DOMNode','return_type':'DOMNode'},'C14N':{'signature':'[ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | string','return_type':'string'},'C14NFile':{'signature':'string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes]]]] | int','return_type':'int'},'cloneNode':{'signature':'[ bool $deep] | DOMNode','return_type':'DOMNode'},'getLineNo':{'signature':'void | int','return_type':'int'},'getNodePath':{'signature':'void | string','return_type':'string'},'hasAttributes':{'signature':'void | bool','return_type':'bool'},'hasChildNodes':{'signature':'void | bool','return_type':'bool'},'insertBefore':{'signature':'DOMNode $newnode [, DOMNode $refnode] | DOMNode','return_type':'DOMNode'},'isDefaultNamespace':{'signature':'string $namespaceURI | bool','return_type':'bool'},'isSameNode':{'signature':'DOMNode $node | bool','return_type':'bool'},'isSupported':{'signature':'string $feature, string $version | bool','return_type':'bool'},'lookupNamespaceURI':{'signature':'string $prefix | string','return_type':'string'},'lookupPrefix':{'signature':'string $namespaceURI | string','return_type':'string'},'normalize':{'signature':'void | void','return_type':'void'},'removeChild':{'signature':'DOMNode $oldnode | DOMNode','return_type':'DOMNode'},'replaceChild':{'signature':'DOMNode $newnode, DOMNode $oldnode | DOMNode','return_type':'DOMNode'},},},'domxpath':{'name':'DOMXPath','properties': {'document':{'initializer':'','type':'DOMDocument'},},'methods':{'__construct':{'signature':'DOMDocument $doc','return_type':''},'evaluate':{'signature':'string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true]] | mixed','return_type':'mixed'},'query':{'signature':'string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true]] | DOMNodeList','return_type':'DOMNodeList'},'registerNamespace':{'signature':'string $prefix, string $namespaceURI | bool','return_type':'bool'},'registerPhpFunctions':{'signature':'[ mixed $restrict] | void','return_type':'void'},},},}
let php_builtin['classes']['predefined_exceptions']={'errorexception':{'name':'ErrorException','properties': {'severity':{'initializer':'','type':'int'},'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'__construct':{'signature':'[ string $message = "" [, int $code = 0 [, int $severity = 1 [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL]]]]]]','return_type':''},'getSeverity':{'signature':'void | int','return_type':'int'},'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'exception':{'name':'Exception','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'__construct':{'signature':'[ string $message = "" [, int $code = 0 [, Exception $previous = NULL]]]','return_type':''},'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},}
let php_builtin['classes']['libxml']={'libxmlerror':{'name':'libXMLError','properties': {'level':{'initializer':'','type':'int'},'code':{'initializer':'','type':'int'},'column':{'initializer':'','type':'int'},'message':{'initializer':'','type':'string'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},},}
let php_builtin['classes']['mysqli']={'mysqli_driver':{'name':'mysqli_driver','properties': {'client_info':{'initializer':'','type':'string'},'client_version':{'initializer':'','type':'string'},'driver_version':{'initializer':'','type':'string'},'embedded':{'initializer':'','type':'string'},'reconnect':{'initializer':'','type':'bool'},'report_mode':{'initializer':'','type':'int'},},'methods':{'embedded_server_end':{'signature':'void | void','return_type':'void'},'embedded_server_start':{'signature':'bool $start, array $arguments, array $groups | bool','return_type':'bool'},},},'mysqli_result':{'name':'mysqli_result','properties': {'current_field':{'initializer':'','type':'int'},'field_count':{'initializer':'','type':'int'},'lengths':{'initializer':'','type':'array'},'num_rows':{'initializer':'','type':'int'},},'methods':{'data_seek':{'signature':'int $offset | bool','return_type':'bool'},'fetch_all':{'signature':'[ int $resulttype = MYSQLI_NUM] | mixed','return_type':'mixed'},'fetch_array':{'signature':'[ int $resulttype = MYSQLI_BOTH] | mixed','return_type':'mixed'},'fetch_assoc':{'signature':'void | array','return_type':'array'},'fetch_field_direct':{'signature':'int $fieldnr | object','return_type':'object'},'fetch_field':{'signature':'void | object','return_type':'object'},'fetch_fields':{'signature':'void | array','return_type':'array'},'fetch_object':{'signature':'[ string $class_name [, array $params]] | object','return_type':'object'},'fetch_row':{'signature':'void | mixed','return_type':'mixed'},'field_seek':{'signature':'int $fieldnr | bool','return_type':'bool'},'free':{'signature':'void | void','return_type':'void'},},},'mysqli_sql_exception':{'name':'mysqli_sql_exception','properties': {'sqlstate':{'initializer':'','type':'string'},'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},},'mysqli_stmt':{'name':'mysqli_stmt','properties': {'affected_rows':{'initializer':'','type':'int'},'errno':{'initializer':'','type':'int'},'error_list':{'initializer':'','type':'array'},'error':{'initializer':'','type':'string'},'field_count':{'initializer':'','type':'int'},'insert_id':{'initializer':'','type':'int'},'num_rows':{'initializer':'','type':'int'},'param_count':{'initializer':'','type':'int'},'sqlstate':{'initializer':'','type':'string'},},'methods':{'attr_get':{'signature':'int $attr | int','return_type':'int'},'attr_set':{'signature':'int $attr, int $mode | bool','return_type':'bool'},'bind_param':{'signature':'string $types, mixed &$var1 [, mixed &$...] | bool','return_type':'bool'},'bind_result':{'signature':'mixed &$var1 [, mixed &$...] | bool','return_type':'bool'},'close':{'signature':'void | bool','return_type':'bool'},'data_seek':{'signature':'int $offset | void','return_type':'void'},'execute':{'signature':'void | bool','return_type':'bool'},'fetch':{'signature':'void | bool','return_type':'bool'},'free_result':{'signature':'void | void','return_type':'void'},'get_result':{'signature':'void | mysqli_result','return_type':'mysqli_result'},'get_warnings':{'signature':'mysqli_stmt $stmt | object','return_type':'object'},'prepare':{'signature':'string $query | mixed','return_type':'mixed'},'reset':{'signature':'void | bool','return_type':'bool'},'result_metadata':{'signature':'void | mysqli_result','return_type':'mysqli_result'},'send_long_data':{'signature':'int $param_nr, string $data | bool','return_type':'bool'},'store_result':{'signature':'void | bool','return_type':'bool'},},},'mysqli_warning':{'name':'mysqli_warning','properties': {'message':{'initializer':'','type':''},'sqlstate':{'initializer':'','type':''},'errno':{'initializer':'','type':''},},'methods':{'__construct':{'signature':'void','return_type':''},'next':{'signature':'void | void','return_type':'void'},},},'mysqli':{'name':'mysqli','properties': {'affected_rows':{'initializer':'','type':'int'},'client_info':{'initializer':'','type':'string'},'client_version':{'initializer':'','type':'int'},'connect_errno':{'initializer':'','type':'string'},'connect_error':{'initializer':'','type':'string'},'errno':{'initializer':'','type':'int'},'error_list':{'initializer':'','type':'array'},'error':{'initializer':'','type':'string'},'field_count':{'initializer':'','type':'int'},'host_info':{'initializer':'','type':'string'},'protocol_version':{'initializer':'','type':'string'},'server_info':{'initializer':'','type':'string'},'server_version':{'initializer':'','type':'int'},'info':{'initializer':'','type':'string'},'insert_id':{'initializer':'','type':'mixed'},'sqlstate':{'initializer':'','type':'string'},'thread_id':{'initializer':'','type':'int'},'warning_count':{'initializer':'','type':'int'},},'methods':{'__construct':{'signature':'[ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket")]]]]]]','return_type':''},'autocommit':{'signature':'bool $mode | bool','return_type':'bool'},'change_user':{'signature':'string $user, string $password, string $database | bool','return_type':'bool'},'character_set_name':{'signature':'void | string','return_type':'string'},'close':{'signature':'void | bool','return_type':'bool'},'commit':{'signature':'[ int $flags [, string $name]] | bool','return_type':'bool'},'debug':{'signature':'string $message | bool','return_type':'bool'},'dump_debug_info':{'signature':'void | bool','return_type':'bool'},'get_charset':{'signature':'void | object','return_type':'object'},'get_client_info':{'signature':'void | string','return_type':'string'},'get_connection_stats':{'signature':'void | bool','return_type':'bool'},'get_warnings':{'signature':'void | mysqli_warning','return_type':'mysqli_warning'},'init':{'signature':'void | mysqli','return_type':'mysqli'},'kill':{'signature':'int $processid | bool','return_type':'bool'},'more_results':{'signature':'void | bool','return_type':'bool'},'multi_query':{'signature':'string $query | bool','return_type':'bool'},'next_result':{'signature':'void | bool','return_type':'bool'},'options':{'signature':'int $option, mixed $value | bool','return_type':'bool'},'ping':{'signature':'void | bool','return_type':'bool'},'prepare':{'signature':'string $query | mysqli_stmt','return_type':'mysqli_stmt'},'query':{'signature':'string $query [, int $resultmode = MYSQLI_STORE_RESULT] | mixed','return_type':'mixed'},'real_connect':{'signature':'[ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags]]]]]]] | bool','return_type':'bool'},'escape_string':{'signature':'string $escapestr | string','return_type':'string'},'real_query':{'signature':'string $query | bool','return_type':'bool'},'reap_async_query':{'signature':'void | mysqli_result','return_type':'mysqli_result'},'refresh':{'signature':'int $options | bool','return_type':'bool'},'rollback':{'signature':'[ int $flags [, string $name]] | bool','return_type':'bool'},'rpl_query_type':{'signature':'string $query | int','return_type':'int'},'select_db':{'signature':'string $dbname | bool','return_type':'bool'},'send_query':{'signature':'string $query | bool','return_type':'bool'},'set_charset':{'signature':'string $charset | bool','return_type':'bool'},'set_local_infile_handler':{'signature':'mysqli $link, callable $read_func | bool','return_type':'bool'},'ssl_set':{'signature':'string $key, string $cert, string $ca, string $capath, string $cipher | bool','return_type':'bool'},'stat':{'signature':'void | string','return_type':'string'},'stmt_init':{'signature':'void | mysqli_stmt','return_type':'mysqli_stmt'},'store_result':{'signature':'void | mysqli_result','return_type':'mysqli_result'},'use_result':{'signature':'void | mysqli_result','return_type':'mysqli_result'},},'static_methods':{'poll':{'signature':'array &$read, array &$error, array &$reject, int $sec [, int $usec] | int','return_type':'int'},},},}
let php_builtin['classes']['pdo']={'pdo':{'name':'PDO','constants':{'FETCH_ORI_ABS':'','ATTR_PERSISTENT':'','CLASS_CONSTANT':'','ATTR_DEFAULT_FETCH_MODE':'','FETCH_PROPS_LATE':'','FETCH_KEY_PAIR':'','FB_ATTR_DATE_FORMAT':'','FB_ATTR_TIME_FORMAT':'','FB_ATTR_TIMESTAMP_FORMAT':'','MYSQL_ATTR_READ_DEFAULT_FILE':'','MYSQL_ATTR_READ_DEFAULT_GROUP':'','ATTR_AUTOCOMMIT':'','FOURD_ATTR_CHARSET':'','FOURD_ATTR_PREFERRED_IMAGE_TYPES':'','PARAM_LOB':'','PARAM_BOOL':'','PARAM_NULL':'','PARAM_INT':'','PARAM_STR':'','PARAM_STMT':'','PARAM_INPUT_OUTPUT':'','FETCH_LAZY':'','FETCH_ASSOC':'','FETCH_NAMED':'','FETCH_NUM':'','FETCH_BOTH':'','FETCH_OBJ':'','FETCH_BOUND':'','FETCH_COLUMN':'','FETCH_CLASS':'','FETCH_INTO':'','FETCH_FUNC':'','FETCH_GROUP':'','FETCH_UNIQUE':'','FETCH_CLASSTYPE':'','FETCH_SERIALIZE':'','ATTR_PREFETCH':'','ATTR_TIMEOUT':'','ATTR_ERRMODE':'','ATTR_SERVER_VERSION':'','ATTR_CLIENT_VERSION':'','ATTR_SERVER_INFO':'','ATTR_CONNECTION_STATUS':'','ATTR_CASE':'','ATTR_CURSOR_NAME':'','ATTR_CURSOR':'','CURSOR_FWDONLY':'','CURSOR_SCROLL':'','ATTR_DRIVER_NAME':'','ATTR_ORACLE_NULLS':'','ATTR_STATEMENT_CLASS':'','ATTR_FETCH_CATALOG_NAMES':'','ATTR_FETCH_TABLE_NAMES':'','ATTR_STRINGIFY_FETCHES':'','ATTR_MAX_COLUMN_LEN':'','ATTR_EMULATE_PREPARES':'','ERRMODE_SILENT':'','ERRMODE_WARNING':'','ERRMODE_EXCEPTION':'','CASE_NATURAL':'','CASE_LOWER':'','CASE_UPPER':'','NULL_NATURAL':'','NULL_EMPTY_STRING':'','NULL_TO_STRING':'','FETCH_ORI_NEXT':'','FETCH_ORI_PRIOR':'','FETCH_ORI_FIRST':'','FETCH_ORI_LAST':'','FETCH_ORI_REL':'','ERR_NONE':'','PARAM_EVT_ALLOC':'','PARAM_EVT_FREE':'','PARAM_EVT_EXEC_PRE':'','PARAM_EVT_EXEC_POST':'','PARAM_EVT_FETCH_PRE':'','PARAM_EVT_FETCH_POST':'','PARAM_EVT_NORMALIZE':'','MYSQL_ATTR_INIT_COMMAND':'','MYSQL_ATTR_USE_BUFFERED_QUERY':'','MYSQL_ATTR_LOCAL_INFILE':'','MYSQL_ATTR_MAX_BUFFER_SIZE':'','MYSQL_ATTR_DIRECT_QUERY':'','MYSQL_ATTR_FOUND_ROWS':'','MYSQL_ATTR_IGNORE_SPACE':'','MYSQL_ATTR_COMPRESS':'','MYSQL_ATTR_SSL_CA':'','MYSQL_ATTR_SSL_CAPATH':'','MYSQL_ATTR_SSL_CERT':'','MYSQL_ATTR_SSL_CIPHER':'','MYSQL_ATTR_SSL_KEY':'','SQLSRV_TXN_READ_UNCOMMITTED':'','SQLSRV_TXN_READ_COMMITTED':'','SQLSRV_TXN_REPEATABLE_READ':'','SQLSRV_TXN_SNAPSHOT':'','SQLSRV_TXN_SERIALIZABLE':'','SQLSRV_ENCODING_BINARY':'','SQLSRV_ENCODING_SYSTEM':'','SQLSRV_ENCODING_UTF8':'','SQLSRV_ENCODING_DEFAULT':'','SQLSRV_ATTR_QUERY_TIMEOUT':'','SQLSRV_ATTR_DIRECT_QUERY':'',},'methods':{'__construct':{'signature':'string $dsn [, string $username [, string $password [, array $driver_options]]]','return_type':''},'beginTransaction':{'signature':'void | bool','return_type':'bool'},'commit':{'signature':'void | bool','return_type':'bool'},'errorCode':{'signature':'void | mixed','return_type':'mixed'},'errorInfo':{'signature':'void | array','return_type':'array'},'exec':{'signature':'string $statement | int','return_type':'int'},'getAttribute':{'signature':'int $attribute | mixed','return_type':'mixed'},'inTransaction':{'signature':'void | bool','return_type':'bool'},'lastInsertId':{'signature':'[ string $name = NULL] | string','return_type':'string'},'prepare':{'signature':'string $statement [, array $driver_options = array()] | PDOStatement','return_type':'PDOStatement'},'query':{'signature':'string $statement | PDOStatement','return_type':'PDOStatement'},'quote':{'signature':'string $string [, int $parameter_type = PDO::PARAM_STR] | string','return_type':'string'},'rollBack':{'signature':'void | bool','return_type':'bool'},'setAttribute':{'signature':'int $attribute, mixed $value | bool','return_type':'bool'},},'static_methods':{'getAvailableDrivers':{'signature':'void | array','return_type':'array'},},},'pdoexception':{'name':'PDOException','properties': {'errorInfo':{'initializer':'','type':'array'},'code':{'initializer':'','type':'int'},'message':{'initializer':'','type':'string'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'pdostatement':{'name':'PDOStatement','properties': {'queryString':{'initializer':'','type':'string'},},'methods':{'bindColumn':{'signature':'mixed $column, mixed &$param [, int $type [, int $maxlen [, mixed $driverdata]]] | bool','return_type':'bool'},'bindParam':{'signature':'mixed $parameter, mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options]]] | bool','return_type':'bool'},'bindValue':{'signature':'mixed $parameter, mixed $value [, int $data_type = PDO::PARAM_STR] | bool','return_type':'bool'},'closeCursor':{'signature':'void | bool','return_type':'bool'},'columnCount':{'signature':'void | int','return_type':'int'},'debugDumpParams':{'signature':'void | void','return_type':'void'},'errorCode':{'signature':'void | string','return_type':'string'},'errorInfo':{'signature':'void | array','return_type':'array'},'execute':{'signature':'[ array $input_parameters] | bool','return_type':'bool'},'fetch':{'signature':'[ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0]]] | mixed','return_type':'mixed'},'fetchAll':{'signature':'[ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array()]]] | array','return_type':'array'},'fetchColumn':{'signature':'[ int $column_number = 0] | string','return_type':'string'},'fetchObject':{'signature':'[ string $class_name = "stdClass" [, array $ctor_args]] | mixed','return_type':'mixed'},'getAttribute':{'signature':'int $attribute | mixed','return_type':'mixed'},'getColumnMeta':{'signature':'int $column | array','return_type':'array'},'nextRowset':{'signature':'void | bool','return_type':'bool'},'rowCount':{'signature':'void | int','return_type':'int'},'setAttribute':{'signature':'int $attribute, mixed $value | bool','return_type':'bool'},'setFetchMode':{'signature':'int $mode | bool','return_type':'bool'},},},}
let php_builtin['classes']['phar']={'phar':{'name':'Phar','methods':{'addEmptyDir':{'signature':'string $dirname | void','return_type':'void'},'addFile':{'signature':'string $file [, string $localname] | void','return_type':'void'},'addFromString':{'signature':'string $localname, string $contents | void','return_type':'void'},'buildFromDirectory':{'signature':'string $base_dir [, string $regex] | array','return_type':'array'},'buildFromIterator':{'signature':'Iterator $iter [, string $base_directory] | array','return_type':'array'},'compress':{'signature':'int $compression [, string $extension] | object','return_type':'object'},'compressAllFilesBZIP2':{'signature':'void | bool','return_type':'bool'},'compressAllFilesGZ':{'signature':'void | bool','return_type':'bool'},'compressFiles':{'signature':'int $compression | void','return_type':'void'},'__construct':{'signature':'string $fname [, int $flags [, string $alias]]','return_type':''},'convertToData':{'signature':'[ int $format = 9021976 [, int $compression = 9021976 [, string $extension]]] | PharData','return_type':'PharData'},'convertToExecutable':{'signature':'[ int $format = 9021976 [, int $compression = 9021976 [, string $extension]]] | Phar','return_type':'Phar'},'copy':{'signature':'string $oldfile, string $newfile | bool','return_type':'bool'},'count':{'signature':'void | int','return_type':'int'},'decompress':{'signature':'[ string $extension] | object','return_type':'object'},'decompressFiles':{'signature':'void | bool','return_type':'bool'},'delMetadata':{'signature':'void | bool','return_type':'bool'},'delete':{'signature':'string $entry | bool','return_type':'bool'},'extractTo':{'signature':'string $pathto [, string|array $files [, bool $overwrite = false]] | bool','return_type':'bool'},'getMetadata':{'signature':'void | mixed','return_type':'mixed'},'getModified':{'signature':'void | bool','return_type':'bool'},'getSignature':{'signature':'void | array','return_type':'array'},'getStub':{'signature':'void | string','return_type':'string'},'getVersion':{'signature':'void | string','return_type':'string'},'hasMetadata':{'signature':'void | bool','return_type':'bool'},'isBuffering':{'signature':'void | bool','return_type':'bool'},'isCompressed':{'signature':'void | mixed','return_type':'mixed'},'isFileFormat':{'signature':'int $format | bool','return_type':'bool'},'isWritable':{'signature':'void | bool','return_type':'bool'},'offsetExists':{'signature':'string $offset | bool','return_type':'bool'},'offsetGet':{'signature':'string $offset | int','return_type':'int'},'offsetSet':{'signature':'string $offset, string $value | void','return_type':'void'},'offsetUnset':{'signature':'string $offset | bool','return_type':'bool'},'setAlias':{'signature':'string $alias | bool','return_type':'bool'},'setDefaultStub':{'signature':'[ string $index [, string $webindex]] | bool','return_type':'bool'},'setMetadata':{'signature':'mixed $metadata | void','return_type':'void'},'setSignatureAlgorithm':{'signature':'int $sigtype [, string $privatekey] | void','return_type':'void'},'setStub':{'signature':'string $stub [, int $len = -1] | bool','return_type':'bool'},'startBuffering':{'signature':'void | void','return_type':'void'},'stopBuffering':{'signature':'void | void','return_type':'void'},'uncompressAllFiles':{'signature':'void | bool','return_type':'bool'},},'static_methods':{'apiVersion':{'signature':'void | string','return_type':'string'},'canCompress':{'signature':'[ int $type = 0] | bool','return_type':'bool'},'canWrite':{'signature':'void | bool','return_type':'bool'},'createDefaultStub':{'signature':'[ string $indexfile [, string $webindexfile]] | string','return_type':'string'},'getSupportedCompression':{'signature':'void | array','return_type':'array'},'getSupportedSignatures':{'signature':'void | array','return_type':'array'},'interceptFileFuncs':{'signature':'void | void','return_type':'void'},'isValidPharFilename':{'signature':'string $filename [, bool $executable = true] | bool','return_type':'bool'},'loadPhar':{'signature':'string $filename [, string $alias] | bool','return_type':'bool'},'mapPhar':{'signature':'[ string $alias [, int $dataoffset = 0]] | bool','return_type':'bool'},'mount':{'signature':'string $pharpath, string $externalpath | void','return_type':'void'},'mungServer':{'signature':'array $munglist | void','return_type':'void'},'running':{'signature':'[ bool $retphar = true] | string','return_type':'string'},'unlinkArchive':{'signature':'string $archive | bool','return_type':'bool'},'webPhar':{'signature':'[ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites]]]]] | void','return_type':'void'},},},'phardata':{'name':'PharData','methods':{'addEmptyDir':{'signature':'string $dirname | void','return_type':'void'},'addFile':{'signature':'string $file [, string $localname] | void','return_type':'void'},'addFromString':{'signature':'string $localname, string $contents | void','return_type':'void'},'buildFromDirectory':{'signature':'string $base_dir [, string $regex] | array','return_type':'array'},'buildFromIterator':{'signature':'Iterator $iter [, string $base_directory] | array','return_type':'array'},'compress':{'signature':'int $compression [, string $extension] | object','return_type':'object'},'compressFiles':{'signature':'int $compression | void','return_type':'void'},'__construct':{'signature':'string $fname [, int $flags [, string $alias]]','return_type':''},'convertToData':{'signature':'[ int $format = 9021976 [, int $compression = 9021976 [, string $extension]]] | PharData','return_type':'PharData'},'convertToExecutable':{'signature':'[ int $format = 9021976 [, int $compression = 9021976 [, string $extension]]] | Phar','return_type':'Phar'},'copy':{'signature':'string $oldfile, string $newfile | bool','return_type':'bool'},'decompress':{'signature':'[ string $extension] | object','return_type':'object'},'decompressFiles':{'signature':'void | bool','return_type':'bool'},'delMetadata':{'signature':'void | bool','return_type':'bool'},'delete':{'signature':'string $entry | bool','return_type':'bool'},'extractTo':{'signature':'string $pathto [, string|array $files [, bool $overwrite = false]] | bool','return_type':'bool'},'isWritable':{'signature':'void | bool','return_type':'bool'},'offsetSet':{'signature':'string $offset, string $value | void','return_type':'void'},'offsetUnset':{'signature':'string $offset | bool','return_type':'bool'},'setAlias':{'signature':'string $alias | bool','return_type':'bool'},'setDefaultStub':{'signature':'[ string $index [, string $webindex]] | bool','return_type':'bool'},'setMetadata':{'signature':'mixed $metadata | void','return_type':'void'},'setSignatureAlgorithm':{'signature':'int $sigtype [, string $privatekey] | void','return_type':'void'},'setStub':{'signature':'string $stub [, int $len = -1] | bool','return_type':'bool'},'compressAllFilesBZIP2':{'signature':'void | bool','return_type':'bool'},'compressAllFilesGZ':{'signature':'void | bool','return_type':'bool'},'count':{'signature':'void | int','return_type':'int'},'getMetadata':{'signature':'void | mixed','return_type':'mixed'},'getModified':{'signature':'void | bool','return_type':'bool'},'getSignature':{'signature':'void | array','return_type':'array'},'getStub':{'signature':'void | string','return_type':'string'},'getVersion':{'signature':'void | string','return_type':'string'},'hasMetadata':{'signature':'void | bool','return_type':'bool'},'isBuffering':{'signature':'void | bool','return_type':'bool'},'isCompressed':{'signature':'void | mixed','return_type':'mixed'},'isFileFormat':{'signature':'int $format | bool','return_type':'bool'},'offsetExists':{'signature':'string $offset | bool','return_type':'bool'},'offsetGet':{'signature':'string $offset | int','return_type':'int'},'startBuffering':{'signature':'void | void','return_type':'void'},'stopBuffering':{'signature':'void | void','return_type':'void'},'uncompressAllFiles':{'signature':'void | bool','return_type':'bool'},},'static_methods':{'apiVersion':{'signature':'void | string','return_type':'string'},'canCompress':{'signature':'[ int $type = 0] | bool','return_type':'bool'},'canWrite':{'signature':'void | bool','return_type':'bool'},'createDefaultStub':{'signature':'[ string $indexfile [, string $webindexfile]] | string','return_type':'string'},'getSupportedCompression':{'signature':'void | array','return_type':'array'},'getSupportedSignatures':{'signature':'void | array','return_type':'array'},'interceptFileFuncs':{'signature':'void | void','return_type':'void'},'isValidPharFilename':{'signature':'string $filename [, bool $executable = true] | bool','return_type':'bool'},'loadPhar':{'signature':'string $filename [, string $alias] | bool','return_type':'bool'},'mapPhar':{'signature':'[ string $alias [, int $dataoffset = 0]] | bool','return_type':'bool'},'mount':{'signature':'string $pharpath, string $externalpath | void','return_type':'void'},'mungServer':{'signature':'array $munglist | void','return_type':'void'},'running':{'signature':'[ bool $retphar = true] | string','return_type':'string'},'unlinkArchive':{'signature':'string $archive | bool','return_type':'bool'},'webPhar':{'signature':'[ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites]]]]] | void','return_type':'void'},},},'pharexception':{'name':'PharException','properties': {'message':{'initializer':'','type':'string'},'code':{'initializer':'','type':'int'},'file':{'initializer':'','type':'string'},'line':{'initializer':'','type':'int'},},'methods':{'getMessage':{'signature':'void | string','return_type':'string'},'getPrevious':{'signature':'void | Exception','return_type':'Exception'},'getCode':{'signature':'void | mixed','return_type':'mixed'},'getFile':{'signature':'void | string','return_type':'string'},'getLine':{'signature':'void | int','return_type':'int'},'getTrace':{'signature':'void | array','return_type':'array'},'getTraceAsString':{'signature':'void | string','return_type':'string'},'__toString':{'signature':'void | string','return_type':'string'},'__clone':{'signature':'void | void','return_type':'void'},},},'pharfileinfo':{'name':'PharFileInfo','methods':{'chmod':{'signature':'int $permissions | void','return_type':'void'},'compress':{'signature':'int $compression | bool','return_type':'bool'},'__construct':{'signature':'string $entry','return_type':''},'decompress':{'signature':'void | bool','return_type':'bool'},'delMetadata':{'signature':'void | bool','return_type':'bool'},'getCRC32':{'signature':'void | int','return_type':'int'},'getCompressedSize':{'signature':'void | int','return_type':'int'},'getMetadata':{'signature':'void | mixed','return_type':'mixed'},'getPharFlags':{'signature':'void | int','return_type':'int'},'hasMetadata':{'signature':'void | bool','return_type':'bool'},'isCRCChecked':{'signature':'void | bool','return_type':'bool'},'isCompressed':{'signature':'[ int $compression_type = 9021976] | bool','return_type':'bool'},'isCompressedBZIP2':{'signature':'void | bool','return_type':'bool'},'isCompressedGZ':{'signature':'void | bool','return_type':'bool'},'setCompressedBZIP2':{'signature':'void | bool','return_type':'bool'},'setCompressedGZ':{'signature':'void | bool','return_type':'bool'},'setMetadata':{'signature':'mixed $metadata | void','return_type':'void'},'setUncompressed':{'signature':'void | bool','return_type':'bool'},},},}
let php_builtin['classes']['streams']={'php_user_filter':{'name':'php_user_filter','properties': {'filtername':{'initializer':'','type':''},'params':{'initializer':'','type':''},},'methods':{'filter':{'signature':'resource $in, resource $out, int &$consumed, bool $closing | int','return_type':'int'},'onClose':{'signature':'void | void','return_type':'void'},'onCreate':{'signature':'void | bool','return_type':'bool'},},},}
let php_builtin['classes']['sessions']={'sessionhandler':{'name':'SessionHandler','methods':{'close':{'signature':'void | bool','return_type':'bool'},'destroy':{'signature':'string $session_id | bool','return_type':'bool'},'gc':{'signature':'int $maxlifetime | bool','return_type':'bool'},'open':{'signature':'string $save_path, string $session_id | bool','return_type':'bool'},'read':{'signature':'string $session_id | string','return_type':'string'},'write':{'signature':'string $session_id, string $session_data | bool','return_type':'bool'},},},'sessionhandlerinterface':{'name':'SessionHandlerInterface','methods':{'close':{'signature':'void | bool','return_type':'bool'},'destroy':{'signature':'string $session_id | bool','return_type':'bool'},'gc':{'signature':'string $maxlifetime | bool','return_type':'bool'},'open':{'signature':'string $save_path, string $name | bool','return_type':'bool'},'read':{'signature':'string $session_id | string','return_type':'string'},'write':{'signature':'string $session_id, string $session_data | bool','return_type':'bool'},},},}
let php_builtin['classes']['simplexml']={'simplexmlelement':{'name':'SimpleXMLElement','methods':{'__construct':{'signature':'string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false]]]]','return_type':''},'addAttribute':{'signature':'string $name [, string $value [, string $namespace]] | void','return_type':'void'},'addChild':{'signature':'string $name [, string $value [, string $namespace]] | SimpleXMLElement','return_type':'SimpleXMLElement'},'asXML':{'signature':'[ string $filename] | mixed','return_type':'mixed'},'attributes':{'signature':'[ string $ns = NULL [, bool $is_prefix = false]] | SimpleXMLElement','return_type':'SimpleXMLElement'},'children':{'signature':'[ string $ns [, bool $is_prefix = false]] | SimpleXMLElement','return_type':'SimpleXMLElement'},'count':{'signature':'void | int','return_type':'int'},'getDocNamespaces':{'signature':'[ bool $recursive = false [, bool $from_root = true]] | array','return_type':'array'},'getName':{'signature':'void | string','return_type':'string'},'getNamespaces':{'signature':'[ bool $recursive = false] | array','return_type':'array'},'registerXPathNamespace':{'signature':'string $prefix, string $ns | bool','return_type':'bool'},'__toString':{'signature':'void | string','return_type':'string'},'xpath':{'signature':'string $path | array','return_type':'array'},},},'simplexmliterator':{'name':'SimpleXMLIterator','methods':{'current':{'signature':'void | mixed','return_type':'mixed'},'getChildren':{'signature':'void | SimpleXMLIterator','return_type':'SimpleXMLIterator'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'key':{'signature':'void | mixed','return_type':'mixed'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | bool','return_type':'bool'},'__construct':{'signature':'string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false]]]]','return_type':''},'addAttribute':{'signature':'string $name [, string $value [, string $namespace]] | void','return_type':'void'},'addChild':{'signature':'string $name [, string $value [, string $namespace]] | SimpleXMLElement','return_type':'SimpleXMLElement'},'asXML':{'signature':'[ string $filename] | mixed','return_type':'mixed'},'attributes':{'signature':'[ string $ns = NULL [, bool $is_prefix = false]] | SimpleXMLElement','return_type':'SimpleXMLElement'},'children':{'signature':'[ string $ns [, bool $is_prefix = false]] | SimpleXMLElement','return_type':'SimpleXMLElement'},'count':{'signature':'void | int','return_type':'int'},'getDocNamespaces':{'signature':'[ bool $recursive = false [, bool $from_root = true]] | array','return_type':'array'},'getName':{'signature':'void | string','return_type':'string'},'getNamespaces':{'signature':'[ bool $recursive = false] | array','return_type':'array'},'registerXPathNamespace':{'signature':'string $prefix, string $ns | bool','return_type':'bool'},'__toString':{'signature':'void | string','return_type':'string'},'xpath':{'signature':'string $path | array','return_type':'array'},},},}
let php_builtin['classes']['spl_types']={'splbool':{'name':'SplBool','constants':{'__default':'false','false':'false','true':'true',},'methods':{'getConstList':{'signature':'[ bool $include_default = false] | array','return_type':'array'},},},'splenum':{'name':'SplEnum','constants':{'__default':'null',},'methods':{'getConstList':{'signature':'[ bool $include_default = false] | array','return_type':'array'},'__construct':{'signature':'[ mixed $initial_value [, bool $strict]]','return_type':''},},},'splfloat':{'name':'SplFloat','constants':{'__default':'0',},'methods':{'__construct':{'signature':'[ mixed $initial_value [, bool $strict]]','return_type':''},},},'splint':{'name':'SplInt','constants':{'__default':'0',},'methods':{'__construct':{'signature':'[ mixed $initial_value [, bool $strict]]','return_type':''},},},'splstring':{'name':'SplString','constants':{'__default':'0',},'methods':{'__construct':{'signature':'[ mixed $initial_value [, bool $strict]]','return_type':''},},},'spltype':{'name':'SplType','constants':{'__default':'null',},'methods':{'__construct':{'signature':'[ mixed $initial_value [, bool $strict]]','return_type':''},},},}
let php_builtin['classes']['xmlreader']={'xmlreader':{'name':'XMLReader','constants':{'NONE':'0','ELEMENT':'1','ATTRIBUTE':'2','TEXT':'3','CDATA':'4','ENTITY_REF':'5','ENTITY':'6','PI':'7','COMMENT':'8','DOC':'9','DOC_TYPE':'10','DOC_FRAGMENT':'11','NOTATION':'12','WHITESPACE':'13','SIGNIFICANT_WHITESPACE':'14','END_ELEMENT':'15','END_ENTITY':'16','XML_DECLARATION':'17','LOADDTD':'1','DEFAULTATTRS':'2','VALIDATE':'3','SUBST_ENTITIES':'4',},'properties': {'attributeCount':{'initializer':'','type':'int'},'baseURI':{'initializer':'','type':'string'},'depth':{'initializer':'','type':'int'},'hasAttributes':{'initializer':'','type':'bool'},'hasValue':{'initializer':'','type':'bool'},'isDefault':{'initializer':'','type':'bool'},'isEmptyElement':{'initializer':'','type':'bool'},'localName':{'initializer':'','type':'string'},'name':{'initializer':'','type':'string'},'namespaceURI':{'initializer':'','type':'string'},'nodeType':{'initializer':'','type':'int'},'prefix':{'initializer':'','type':'string'},'value':{'initializer':'','type':'string'},'xmlLang':{'initializer':'','type':'string'},},'methods':{'close':{'signature':'void | bool','return_type':'bool'},'expand':{'signature':'[ DOMNode $basenode] | DOMNode','return_type':'DOMNode'},'getAttribute':{'signature':'string $name | string','return_type':'string'},'getAttributeNo':{'signature':'int $index | string','return_type':'string'},'getAttributeNs':{'signature':'string $localName, string $namespaceURI | string','return_type':'string'},'getParserProperty':{'signature':'int $property | bool','return_type':'bool'},'isValid':{'signature':'void | bool','return_type':'bool'},'lookupNamespace':{'signature':'string $prefix | bool','return_type':'bool'},'moveToAttribute':{'signature':'string $name | bool','return_type':'bool'},'moveToAttributeNo':{'signature':'int $index | bool','return_type':'bool'},'moveToAttributeNs':{'signature':'string $localName, string $namespaceURI | bool','return_type':'bool'},'moveToElement':{'signature':'void | bool','return_type':'bool'},'moveToFirstAttribute':{'signature':'void | bool','return_type':'bool'},'moveToNextAttribute':{'signature':'void | bool','return_type':'bool'},'next':{'signature':'[ string $localname] | bool','return_type':'bool'},'open':{'signature':'string $URI [, string $encoding [, int $options = 0]] | bool','return_type':'bool'},'read':{'signature':'void | bool','return_type':'bool'},'readInnerXML':{'signature':'void | string','return_type':'string'},'readOuterXML':{'signature':'void | string','return_type':'string'},'readString':{'signature':'void | string','return_type':'string'},'setParserProperty':{'signature':'int $property, bool $value | bool','return_type':'bool'},'setRelaxNGSchema':{'signature':'string $filename | bool','return_type':'bool'},'setRelaxNGSchemaSource':{'signature':'string $source | bool','return_type':'bool'},'setSchema':{'signature':'string $filename | bool','return_type':'bool'},'xml':{'signature':'string $source [, string $encoding [, int $options = 0]] | bool','return_type':'bool'},},},}
let php_builtin['classes']['xmlwriter'] = {'xmlwriter':{'name':'XMLWriter','methods':{'endAttribute':{'signature':'void | bool','return_type':'bool'},'endCData':{'signature':'void | bool','return_type':'bool'},'endComment':{'signature':'void | bool','return_type':'bool'},'endDocument':{'signature':'void | bool','return_type':'bool'},'endDTDAttlist':{'signature':'void | bool','return_type':'bool'},'endDTDElement':{'signature':'void | bool','return_type':'bool'},'endDTDEntity':{'signature':'void | bool','return_type':'bool'},'endDTD':{'signature':'void | bool','return_type':'bool'},'endElement':{'signature':'void | bool','return_type':'bool'},'endPI':{'signature':'void | bool','return_type':'bool'},'flush':{'signature':'[bool $empty = true] | bool','return_type':'bool'},'fullEndElement':{'signature':'void | bool','return_type':'bool'},'openMemory':{'signature':'void | bool','return_type':'bool'},'openURI':{'signature':'string $uri | bool','return_type':'bool'},'outputMemory':{'signature':'[bool $flush = true] | bool','return_type':'bool'},'setIndentString':{'signature':'string $indentString | bool','return_type':'bool'},'setIndent':{'signature':'bool $indent | bool','return_type':'bool'},'startAttributeNS':{'signature':'string $prefix, string $name, string $uri | bool','return_type':'bool'},'startAttribute':{'signature':'string $name | bool','return_type':'bool'},'startCData':{'signature':'void | bool','return_type':'bool'},'startComment':{'signature':'void | bool','return_type':'bool'},'startDocument':{'signature':'[string $version = 1.0 [, string $encoding = NULL [, string $standalone ]]] | bool','return_type':'bool'},'startDTDAttlist':{'signature':'string $name | bool','return_type':'bool'},'startDTDElement':{'signature':'string $qualifiedName | bool','return_type':'bool'},'startDTDEntity':{'signature':'string $name, bool $isparam | bool','return_type':'bool'},'startDTD':{'signature':'string $qualifiedName [, string $publicId [, string $systemId ]] | bool','return_type':'bool'},'startElementNS':{'signature':'string $prefix, string $name, string $uri | bool','return_type':'bool'},'startElement':{'signature':'string $name | bool','return_type':'bool'},'startPI':{'signature':'string $target | bool','return_type':'bool'},'text':{'signature':'string $content | bool','return_type':'bool'},'writeAttributeNS':{'signature':'string $prefix, string $name, string $uri, string $content | bool','return_type':'bool'},'writeAttribute':{'signature':'string $name, string $value | bool','return_type':'bool'},'writeCData':{'signature':'string $content | bool','return_type':'bool'},'writeComment':{'signature':'string $content | bool','return_type':'bool'},'writeDTDAttlist':{'signature':'string $name, string $content | bool','return_type':'bool'},'writeDTDElement':{'signature':'string $name, string $content | bool','return_type':'bool'},'writeDTDEntity':{'signature':'string $name, string $content, bool $pe, string $pubid, string $sysid, string $ndataid | bool','return_type':'bool'},'writeDTD':{'signature':'string $name [, string $publicId [, string $systemId [, string $subset ]]] | bool','return_type':'bool'},'writeElementNS':{'signature':'string $prefix, string $name, string $uri [, string $content ] | bool','return_type':'bool'},'writeElement':{'signature':'string $name [, string $content ] | bool','return_type':'bool'},'writePI':{'signature':'string $target, string $content | bool','return_type':'bool'},'writeRaw':{'signature':'string $content | bool','return_type':'bool'},},},}
let php_builtin['classes']['zip']={'ziparchive':{'name':'ZipArchive','properties': {'status':{'initializer':'','type':'int'},'statusSys':{'initializer':'','type':'int'},'numFiles':{'initializer':'','type':'int'},'filename':{'initializer':'','type':'string'},'comment':{'initializer':'','type':'string'},},'methods':{'addEmptyDir':{'signature':'string $dirname | bool','return_type':'bool'},'addFile':{'signature':'string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0]]] | bool','return_type':'bool'},'addFromString':{'signature':'string $localname, string $contents | bool','return_type':'bool'},'addGlob':{'signature':'string $pattern [, int $flags = 0 [, array $options = array()]] | bool','return_type':'bool'},'addPattern':{'signature':'string $pattern [, string $path = ''.'' [, array $options = array()]] | bool','return_type':'bool'},'close':{'signature':'void | bool','return_type':'bool'},'deleteIndex':{'signature':'int $index | bool','return_type':'bool'},'deleteName':{'signature':'string $name | bool','return_type':'bool'},'extractTo':{'signature':'string $destination [, mixed $entries] | bool','return_type':'bool'},'getArchiveComment':{'signature':'[ int $flags] | string','return_type':'string'},'getCommentIndex':{'signature':'int $index [, int $flags] | string','return_type':'string'},'getCommentName':{'signature':'string $name [, int $flags] | string','return_type':'string'},'getFromIndex':{'signature':'int $index [, int $length = 0 [, int $flags]] | string','return_type':'string'},'getFromName':{'signature':'string $name [, int $length = 0 [, int $flags]] | string','return_type':'string'},'getNameIndex':{'signature':'int $index [, int $flags] | string','return_type':'string'},'getStatusString':{'signature':'void | string','return_type':'string'},'getStream':{'signature':'string $name | resource','return_type':'resource'},'locateName':{'signature':'string $name [, int $flags] | int','return_type':'int'},'open':{'signature':'string $filename [, int $flags] | mixed','return_type':'mixed'},'renameIndex':{'signature':'int $index, string $newname | bool','return_type':'bool'},'renameName':{'signature':'string $name, string $newname | bool','return_type':'bool'},'setArchiveComment':{'signature':'string $comment | bool','return_type':'bool'},'setCommentIndex':{'signature':'int $index, string $comment | bool','return_type':'bool'},'setCommentName':{'signature':'string $name, string $comment | bool','return_type':'bool'},'statIndex':{'signature':'int $index [, int $flags] | array','return_type':'array'},'statName':{'signature':'string $name [, int $flags] | array','return_type':'array'},'unchangeAll':{'signature':'void | bool','return_type':'bool'},'unchangeArchive':{'signature':'void | bool','return_type':'bool'},'unchangeIndex':{'signature':'int $index | bool','return_type':'bool'},'unchangeName':{'signature':'string $name | bool','return_type':'bool'},},},}
let php_builtin['interfaces']['predefined_interfaces_and_classes']={'arrayaccess':{'name':'ArrayAccess','methods':{'offsetExists':{'signature':'mixed $offset | boolean','return_type':'boolean'},'offsetGet':{'signature':'mixed $offset | mixed','return_type':'mixed'},'offsetSet':{'signature':'mixed $offset, mixed $value | void','return_type':'void'},'offsetUnset':{'signature':'mixed $offset | void','return_type':'void'},},},'iterator':{'name':'Iterator','methods':{'current':{'signature':'void | mixed','return_type':'mixed'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | boolean','return_type':'boolean'},},},'iteratoraggregate':{'name':'IteratorAggregate','methods':{'getIterator':{'signature':'void | Traversable','return_type':'Traversable'},},},'serializable':{'name':'Serializable','methods':{'serialize':{'signature':'void | string','return_type':'string'},'unserialize':{'signature':'string $serialized | void','return_type':'void'},},},'traversable':{'name':'Traversable',},}
let php_builtin['interfaces']['spl']={'countable':{'name':'Countable','methods':{'count':{'signature':'void | int','return_type':'int'},},},'outeriterator':{'name':'OuterIterator','methods':{'getInnerIterator':{'signature':'void | Iterator','return_type':'Iterator'},'current':{'signature':'void | mixed','return_type':'mixed'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | boolean','return_type':'boolean'},},},'recursiveiterator':{'name':'RecursiveIterator','methods':{'getChildren':{'signature':'void | RecursiveIterator','return_type':'RecursiveIterator'},'hasChildren':{'signature':'void | bool','return_type':'bool'},'current':{'signature':'void | mixed','return_type':'mixed'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | boolean','return_type':'boolean'},},},'seekableiterator':{'name':'SeekableIterator','methods':{'seek':{'signature':'int $position | void','return_type':'void'},'current':{'signature':'void | mixed','return_type':'mixed'},'key':{'signature':'void | scalar','return_type':'scalar'},'next':{'signature':'void | void','return_type':'void'},'rewind':{'signature':'void | void','return_type':'void'},'valid':{'signature':'void | boolean','return_type':'boolean'},},},'splobserver':{'name':'SplObserver','methods':{'update':{'signature':'SplSubject $subject | void','return_type':'void'},},},'splsubject':{'name':'SplSubject','methods':{'attach':{'signature':'SplObserver $observer | void','return_type':'void'},'detach':{'signature':'SplObserver $observer | void','return_type':'void'},'notify':{'signature':'void | void','return_type':'void'},},},}
let php_builtin['interfaces']['date_time']={'datetimeinterface':{'name':'DateTimeInterface','methods':{'diff':{'signature':'DateTimeInterface $datetime2 [, bool $absolute = false] | DateInterval','return_type':'DateInterval'},'format':{'signature':'string $format | string','return_type':'string'},'getOffset':{'signature':'void | int','return_type':'int'},'getTimestamp':{'signature':'void | int','return_type':'int'},'getTimezone':{'signature':'void | DateTimeZone','return_type':'DateTimeZone'},'__wakeup':{'signature':'void','return_type':''},},},}
let php_builtin['interfaces']['json']={'jsonserializable':{'name':'JsonSerializable','methods':{'jsonSerialize':{'signature':'void | mixed','return_type':'mixed'},},},}
let php_builtin['constants']['common']={'TRUE':'','FALSE':'','NULL':'','E_NOTICE':'','E_DEPRECATED':'','E_RECOVERABLE_ERROR':'','E_ALL':'','E_STRICT':'','E_WARNING':'','E_ERROR':'','E_PARSE':'','E_CORE_ERROR':'','E_CORE_WARNING':'','E_COMPILE_ERROR':'','E_COMPILE_WARNING':'','E_USER_ERROR':'','E_USER_WARNING':'','E_USER_NOTICE':'','E_USER_DEPRECATED':'','__COMPILER_HALT_OFFSET__':'','__FILE__':'','__LINE__':'','__DIR__':'','__FUNCTION__':'','__CLASS__':'','__TRAIT__':'','__METHOD__':'','__NAMESPACE__':'',}
let php_builtin['constants']['arrays']={'CASE_LOWER':'','CASE_UPPER':'','SORT_ASC':'','SORT_DESC':'','SORT_REGULAR':'','SORT_NUMERIC':'','SORT_STRING':'','SORT_LOCALE_STRING':'','SORT_NATURAL':'','SORT_FLAG_CASE':'','COUNT_NORMAL':'','COUNT_RECURSIVE':'','EXTR_OVERWRITE':'','EXTR_SKIP':'','EXTR_PREFIX_SAME':'','EXTR_PREFIX_ALL':'','EXTR_PREFIX_INVALID':'','EXTR_PREFIX_IF_EXISTS':'','EXTR_IF_EXISTS':'','EXTR_REFS':'',}
let php_builtin['constants']['calendar']={'CAL_GREGORIAN':'','CAL_JULIAN':'','CAL_JEWISH':'','CAL_FRENCH':'','CAL_NUM_CALS':'','CAL_DOW_DAYNO':'','CAL_DOW_SHORT':'','CAL_DOW_LONG':'','CAL_MONTH_GREGORIAN_SHORT':'','CAL_MONTH_GREGORIAN_LONG':'','CAL_MONTH_JULIAN_SHORT':'','CAL_MONTH_JULIAN_LONG':'','CAL_MONTH_JEWISH':'','CAL_MONTH_FRENCH':'','CAL_EASTER_DEFAULT':'','CAL_EASTER_ROMAN':'','CAL_EASTER_ALWAYS_GREGORIAN':'','CAL_EASTER_ALWAYS_JULIAN':'','CAL_JEWISH_ADD_ALAFIM_GERESH':'','CAL_JEWISH_ADD_ALAFIM':'','CAL_JEWISH_ADD_GERESHAYIM':'',}
let php_builtin['constants']['curl']={'CURLOPT_POSTFIELDS':'','CURLOPT_CAINFO':'','CURLOPT_AUTOREFERER':'','CURLOPT_COOKIESESSION':'','CURLOPT_DNS_USE_GLOBAL_CACHE':'','CURLOPT_DNS_CACHE_TIMEOUT':'','CURLOPT_FTP_SSL':'','CURLFTPSSL_TRY':'','CURLFTPSSL_ALL':'','CURLFTPSSL_CONTROL':'','CURLFTPSSL_NONE':'','CURLOPT_PRIVATE':'','CURLOPT_FTPSSLAUTH':'','CURLOPT_PORT':'','CURLOPT_FILE':'','CURLOPT_INFILE':'','CURLOPT_INFILESIZE':'','CURLOPT_URL':'','CURLOPT_PROXY':'','CURLOPT_VERBOSE':'','CURLOPT_HEADER':'','CURLOPT_HTTPHEADER':'','CURLOPT_NOPROGRESS':'','CURLOPT_NOBODY':'','CURLOPT_FAILONERROR':'','CURLOPT_UPLOAD':'','CURLOPT_POST':'','CURLOPT_FTPLISTONLY':'','CURLOPT_FTPAPPEND':'','CURLOPT_FTP_CREATE_MISSING_DIRS':'','CURLOPT_NETRC':'','CURLOPT_FOLLOWLOCATION':'','CURLOPT_FTPASCII':'','CURLOPT_PUT':'','CURLOPT_MUTE':'','CURLOPT_USERPWD':'','CURLOPT_PROXYUSERPWD':'','CURLOPT_RANGE':'','CURLOPT_TIMEOUT':'','CURLOPT_TIMEOUT_MS':'','CURLOPT_TCP_NODELAY':'','CURLOPT_PROGRESSFUNCTION':'','CURLOPT_REFERER':'','CURLOPT_USERAGENT':'','CURLOPT_FTPPORT':'','CURLOPT_FTP_USE_EPSV':'','CURLOPT_LOW_SPEED_LIMIT':'','CURLOPT_LOW_SPEED_TIME':'','CURLOPT_RESUME_FROM':'','CURLOPT_COOKIE':'','CURLOPT_SSLCERT':'','CURLOPT_SSLCERTPASSWD':'','CURLOPT_WRITEHEADER':'','CURLOPT_SSL_VERIFYHOST':'','CURLOPT_COOKIEFILE':'','CURLOPT_SSLVERSION':'','CURLOPT_TIMECONDITION':'','CURLOPT_TIMEVALUE':'','CURLOPT_CUSTOMREQUEST':'','CURLOPT_STDERR':'','CURLOPT_TRANSFERTEXT':'','CURLOPT_RETURNTRANSFER':'','CURLOPT_QUOTE':'','CURLOPT_POSTQUOTE':'','CURLOPT_INTERFACE':'','CURLOPT_KRB4LEVEL':'','CURLOPT_HTTPPROXYTUNNEL':'','CURLOPT_FILETIME':'','CURLOPT_WRITEFUNCTION':'','CURLOPT_READFUNCTION':'','CURLOPT_PASSWDFUNCTION':'','CURLOPT_HEADERFUNCTION':'','CURLOPT_MAXREDIRS':'','CURLOPT_MAXCONNECTS':'','CURLOPT_CLOSEPOLICY':'','CURLOPT_FRESH_CONNECT':'','CURLOPT_FORBID_REUSE':'','CURLOPT_RANDOM_FILE':'','CURLOPT_EGDSOCKET':'','CURLOPT_CONNECTTIMEOUT':'','CURLOPT_CONNECTTIMEOUT_MS':'','CURLOPT_SSL_VERIFYPEER':'','CURLOPT_CAPATH':'','CURLOPT_COOKIEJAR':'','CURLOPT_SSL_CIPHER_LIST':'','CURLOPT_BINARYTRANSFER':'','CURLOPT_NOSIGNAL':'','CURLOPT_PROXYTYPE':'','CURLOPT_BUFFERSIZE':'','CURLOPT_HTTPGET':'','CURLOPT_HTTP_VERSION':'','CURLOPT_SSLKEY':'','CURLOPT_SSLKEYTYPE':'','CURLOPT_SSLKEYPASSWD':'','CURLOPT_SSLENGINE':'','CURLOPT_SSLENGINE_DEFAULT':'','CURLOPT_SSLCERTTYPE':'','CURLOPT_CRLF':'','CURLOPT_ENCODING':'','CURLOPT_PROXYPORT':'','CURLOPT_UNRESTRICTED_AUTH':'','CURLOPT_FTP_USE_EPRT':'','CURLOPT_HTTP200ALIASES':'','CURLOPT_HTTPAUTH':'','CURLAUTH_BASIC':'','CURLAUTH_DIGEST':'','CURLAUTH_GSSNEGOTIATE':'','CURLAUTH_NTLM':'','CURLAUTH_ANY':'','CURLAUTH_ANYSAFE':'','CURLOPT_PROXYAUTH':'','CURLOPT_MAX_RECV_SPEED_LARGE':'','CURLOPT_MAX_SEND_SPEED_LARGE':'','CURLCLOSEPOLICY_LEAST_RECENTLY_USED':'','CURLCLOSEPOLICY_LEAST_TRAFFIC':'','CURLCLOSEPOLICY_SLOWEST':'','CURLCLOSEPOLICY_CALLBACK':'','CURLCLOSEPOLICY_OLDEST':'','CURLINFO_PRIVATE':'','CURLINFO_EFFECTIVE_URL':'','CURLINFO_HTTP_CODE':'','CURLINFO_HEADER_OUT':'','CURLINFO_HEADER_SIZE':'','CURLINFO_REQUEST_SIZE':'','CURLINFO_TOTAL_TIME':'','CURLINFO_NAMELOOKUP_TIME':'','CURLINFO_CONNECT_TIME':'','CURLINFO_PRETRANSFER_TIME':'','CURLINFO_SIZE_UPLOAD':'','CURLINFO_SIZE_DOWNLOAD':'','CURLINFO_SPEED_DOWNLOAD':'','CURLINFO_SPEED_UPLOAD':'','CURLINFO_FILETIME':'','CURLINFO_SSL_VERIFYRESULT':'','CURLINFO_CONTENT_LENGTH_DOWNLOAD':'','CURLINFO_CONTENT_LENGTH_UPLOAD':'','CURLINFO_STARTTRANSFER_TIME':'','CURLINFO_CONTENT_TYPE':'','CURLINFO_REDIRECT_TIME':'','CURLINFO_REDIRECT_COUNT':'','CURL_TIMECOND_IFMODSINCE':'','CURL_TIMECOND_IFUNMODSINCE':'','CURL_TIMECOND_LASTMOD':'','CURL_VERSION_IPV6':'','CURL_VERSION_KERBEROS4':'','CURL_VERSION_SSL':'','CURL_VERSION_LIBZ':'','CURLVERSION_NOW':'','CURLE_OK':'','CURLE_UNSUPPORTED_PROTOCOL':'','CURLE_FAILED_INIT':'','CURLE_URL_MALFORMAT':'','CURLE_URL_MALFORMAT_USER':'','CURLE_COULDNT_RESOLVE_PROXY':'','CURLE_COULDNT_RESOLVE_HOST':'','CURLE_COULDNT_CONNECT':'','CURLE_FTP_WEIRD_SERVER_REPLY':'','CURLE_FTP_ACCESS_DENIED':'','CURLE_FTP_USER_PASSWORD_INCORRECT':'','CURLE_FTP_WEIRD_PASS_REPLY':'','CURLE_FTP_WEIRD_USER_REPLY':'','CURLE_FTP_WEIRD_PASV_REPLY':'','CURLE_FTP_WEIRD_227_FORMAT':'','CURLE_FTP_CANT_GET_HOST':'','CURLE_FTP_CANT_RECONNECT':'','CURLE_FTP_COULDNT_SET_BINARY':'','CURLE_PARTIAL_FILE':'','CURLE_FTP_COULDNT_RETR_FILE':'','CURLE_FTP_WRITE_ERROR':'','CURLE_FTP_QUOTE_ERROR':'','CURLE_HTTP_NOT_FOUND':'','CURLE_WRITE_ERROR':'','CURLE_MALFORMAT_USER':'','CURLE_FTP_COULDNT_STOR_FILE':'','CURLE_READ_ERROR':'','CURLE_OUT_OF_MEMORY':'','CURLE_OPERATION_TIMEOUTED':'','CURLE_FTP_COULDNT_SET_ASCII':'','CURLE_FTP_PORT_FAILED':'','CURLE_FTP_COULDNT_USE_REST':'','CURLE_FTP_COULDNT_GET_SIZE':'','CURLE_HTTP_RANGE_ERROR':'','CURLE_HTTP_POST_ERROR':'','CURLE_SSL_CONNECT_ERROR':'','CURLE_FTP_BAD_DOWNLOAD_RESUME':'','CURLE_FILE_COULDNT_READ_FILE':'','CURLE_LDAP_CANNOT_BIND':'','CURLE_LDAP_SEARCH_FAILED':'','CURLE_LIBRARY_NOT_FOUND':'','CURLE_FUNCTION_NOT_FOUND':'','CURLE_ABORTED_BY_CALLBACK':'','CURLE_BAD_FUNCTION_ARGUMENT':'','CURLE_BAD_CALLING_ORDER':'','CURLE_HTTP_PORT_FAILED':'','CURLE_BAD_PASSWORD_ENTERED':'','CURLE_TOO_MANY_REDIRECTS':'','CURLE_UNKNOWN_TELNET_OPTION':'','CURLE_TELNET_OPTION_SYNTAX':'','CURLE_OBSOLETE':'','CURLE_SSL_PEER_CERTIFICATE':'','CURLE_GOT_NOTHING':'','CURLE_SSL_ENGINE_NOTFOUND':'','CURLE_SSL_ENGINE_SETFAILED':'','CURLE_SEND_ERROR':'','CURLE_RECV_ERROR':'','CURLE_SHARE_IN_USE':'','CURLE_SSL_CERTPROBLEM':'','CURLE_SSL_CIPHER':'','CURLE_SSL_CACERT':'','CURLE_BAD_CONTENT_ENCODING':'','CURLE_LDAP_INVALID_URL':'','CURLE_FILESIZE_EXCEEDED':'','CURLE_FTP_SSL_FAILED':'','CURLFTPAUTH_DEFAULT':'','CURLFTPAUTH_SSL':'','CURLFTPAUTH_TLS':'','CURLPROXY_HTTP':'','CURLPROXY_SOCKS5':'','CURL_NETRC_OPTIONAL':'','CURL_NETRC_IGNORED':'','CURL_NETRC_REQUIRED':'','CURL_HTTP_VERSION_NONE':'','CURL_HTTP_VERSION_1_0':'','CURL_HTTP_VERSION_1_1':'','CURLM_CALL_MULTI_PERFORM':'','CURLM_OK':'','CURLM_BAD_HANDLE':'','CURLM_BAD_EASY_HANDLE':'','CURLM_OUT_OF_MEMORY':'','CURLM_INTERNAL_ERROR':'','CURLMSG_DONE':'','CURLOPT_KEYPASSWD':'','CURLOPT_SSH_AUTH_TYPES':'','CURLOPT_SSH_HOST_PUBLIC_KEY_MD5':'','CURLOPT_SSH_PRIVATE_KEYFILE':'','CURLOPT_SSH_PUBLIC_KEYFILE':'','CURLMOPT_PIPELINING':'','CURLMOPT_MAXCONNECTS':'','CURLSSH_AUTH_ANY':'','CURLSSH_AUTH_DEFAULT':'','CURLSSH_AUTH_HOST':'','CURLSSH_AUTH_KEYBOARD':'','CURLSSH_AUTH_NONE':'','CURLSSH_AUTH_PASSWORD':'','CURLSSH_AUTH_PUBLICKEY':'','CURL_WRAPPERS_ENABLED':'','CURLPAUSE_ALL':'','CURLPAUSE_CONT':'','CURLPAUSE_RECV':'','CURLPAUSE_RECV_CONT':'','CURLPAUSE_SEND':'','CURLPAUSE_SEND_CONT':'','CURLM_XXX':'','CURLOPT_CERTINFO':'','CURLOPT_CONNECT_ONLY':'','CURLINFO_':'','CURLOPT_PROTOCOLS':'','CURLOPT_REDIR_PROTOCOLS':'','CURLOPT_IPRESOLVE':'','CURL_IPRESOLVE_WHATEVER':'','CURL_IPRESOLVE_V4':'','CURL_IPRESOLVE_V6':'','CURLOPT_SHARE':'','CURLSHOPT_SHARE':'','CURLSHOPT_UNSHARE':'','CURL_LOCK_DATA_COOKIE':'','CURL_LOCK_DATA_DNS':'','CURL_LOCK_DATA_SSL_SESSION':'',}
let php_builtin['constants']['date_time']={'DATE_ATOM':'','DATE_COOKIE':'','DATE_ISO8601':'','DATE_RFC822':'','DATE_RFC850':'','DATE_RFC1036':'','DATE_RFC1123':'','DATE_RFC2822':'','DATE_RFC3339':'','DATE_RSS':'','DATE_W3C':'','SUNFUNCS_RET_TIMESTAMP':'','SUNFUNCS_RET_STRING':'','SUNFUNCS_RET_DOUBLE':'','LC_TIME':'',}
let php_builtin['constants']['libxml']={'LIBXML_ERR_WARNING':'','LIBXML_ERR_ERROR':'','LIBXML_ERR_FATAL':'','LIBXML_NONET':'','LIBXML_COMPACT':'','LIBXML_DTDATTR':'','LIBXML_DTDLOAD':'','LIBXML_DTDVALID':'','LIBXML_HTML_NOIMPLIED':'','LIBXML_HTML_NODEFDTD':'','LIBXML_NOBLANKS':'','LIBXML_NOCDATA':'','LIBXML_NOEMPTYTAG':'','LIBXML_NOENT':'','LIBXML_NOERROR':'','LIBXML_NOWARNING':'','LIBXML_NOXMLDECL':'','LIBXML_NSCLEAN':'','LIBXML_PARSEHUGE':'','LIBXML_PEDANTIC':'','LIBXML_XINCLUDE':'','LIBXML_ERR_NONE':'','LIBXML_VERSION':'','LIBXML_DOTTED_VERSION':'','LIBXML_SCHEMA_CREATE':'',}
let php_builtin['constants']['mysqli']={'MYSQLI_REPORT_OFF':'','MYSQLI_REPORT_ALL':'','MYSQLI_REPORT_STRICT':'','MYSQLI_REPORT_ERROR':'','MYSQLI_REPORT_INDEX':'','MYSQLI_ASSOC':'','MYSQLI_NUM':'','MYSQLI_BOTH':'','PHP_INT_MAX':'','MYSQLI_READ_DEFAULT_GROUP':'','MYSQLI_READ_DEFAULT_FILE':'','MYSQLI_OPT_CONNECT_TIMEOUT':'','MYSQLI_OPT_LOCAL_INFILE':'','MYSQLI_INIT_COMMAND':'','MYSQLI_CLIENT_SSL':'','MYSQLI_CLIENT_COMPRESS':'','MYSQLI_CLIENT_INTERACTIVE':'','MYSQLI_CLIENT_IGNORE_SPACE':'','MYSQLI_CLIENT_NO_SCHEMA':'','MYSQLI_CLIENT_MULTI_QUERIES':'','MYSQLI_STORE_RESULT':'','MYSQLI_USE_RESULT':'','MYSQLI_NOT_NULL_FLAG':'','MYSQLI_PRI_KEY_FLAG':'','MYSQLI_UNIQUE_KEY_FLAG':'','MYSQLI_MULTIPLE_KEY_FLAG':'','MYSQLI_BLOB_FLAG':'','MYSQLI_UNSIGNED_FLAG':'','MYSQLI_ZEROFILL_FLAG':'','MYSQLI_AUTO_INCREMENT_FLAG':'','MYSQLI_TIMESTAMP_FLAG':'','MYSQLI_SET_FLAG':'','MYSQLI_NUM_FLAG':'','MYSQLI_PART_KEY_FLAG':'','MYSQLI_GROUP_FLAG':'','MYSQLI_TYPE_DECIMAL':'','MYSQLI_TYPE_NEWDECIMAL':'','MYSQLI_TYPE_BIT':'','MYSQLI_TYPE_TINY':'','MYSQLI_TYPE_SHORT':'','MYSQLI_TYPE_LONG':'','MYSQLI_TYPE_FLOAT':'','MYSQLI_TYPE_DOUBLE':'','MYSQLI_TYPE_NULL':'','MYSQLI_TYPE_TIMESTAMP':'','MYSQLI_TYPE_LONGLONG':'','MYSQLI_TYPE_INT24':'','MYSQLI_TYPE_DATE':'','MYSQLI_TYPE_TIME':'','MYSQLI_TYPE_DATETIME':'','MYSQLI_TYPE_YEAR':'','MYSQLI_TYPE_NEWDATE':'','MYSQLI_TYPE_INTERVAL':'','MYSQLI_TYPE_ENUM':'','MYSQLI_TYPE_SET':'','MYSQLI_TYPE_TINY_BLOB':'','MYSQLI_TYPE_MEDIUM_BLOB':'','MYSQLI_TYPE_LONG_BLOB':'','MYSQLI_TYPE_BLOB':'','MYSQLI_TYPE_VAR_STRING':'','MYSQLI_TYPE_STRING':'','MYSQLI_TYPE_CHAR':'','MYSQLI_TYPE_GEOMETRY':'','MYSQLI_NEED_DATA':'','MYSQLI_NO_DATA':'','MYSQLI_DATA_TRUNCATED':'','MYSQLI_ENUM_FLAG':'','MYSQLI_BINARY_FLAG':'','MYSQLI_CURSOR_TYPE_FOR_UPDATE':'','MYSQLI_CURSOR_TYPE_NO_CURSOR':'','MYSQLI_CURSOR_TYPE_READ_ONLY':'','MYSQLI_CURSOR_TYPE_SCROLLABLE':'','MYSQLI_STMT_ATTR_CURSOR_TYPE':'','MYSQLI_STMT_ATTR_PREFETCH_ROWS':'','MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH':'','MYSQLI_SET_CHARSET_NAME':'','MYSQLI_DEBUG_TRACE_ENABLED':'','MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED':'','MYSQLI_SERVER_QUERY_NO_INDEX_USED':'','MYSQLI_REFRESH_GRANT':'','MYSQLI_REFRESH_LOG':'','MYSQLI_REFRESH_TABLES':'','MYSQLI_REFRESH_HOSTS':'','MYSQLI_REFRESH_STATUS':'','MYSQLI_REFRESH_THREADS':'','MYSQLI_REFRESH_SLAVE':'','MYSQLI_REFRESH_MASTER':'','MYSQLI_TRANS_COR_AND_CHAIN':'','MYSQLI_TRANS_COR_AND_NO_CHAIN':'','MYSQLI_TRANS_COR_RELEASE':'','MYSQLI_TRANS_COR_NO_RELEASE':'','MYSQL_READ_DEFAULT_FILE':'','MYSQLI_SERVER_PUBLIC_KEY':'','MYSQLI_NO_CHANGE_USER_ON_PCONNECT':'','MYSQLI_ASYNC':'','MYSQLI_OPT_INT_AND_FLOAT_NATIVE':'','MYSQLI_CLIENT_FOUND_ROWS':'','MULTI_STATEMENT':'','MYSQLI_RPL_MASTER':'','MYSQLI_RPL_SLAVE':'','MYSQLI_RPL_ADMIN':'',}
let php_builtin['constants']['spl']={'READ_AHEAD':'','MIT_NEED_ALL':'','MIT_KEYS_ASSOC':'','CALL_TOSTRING':'','CATCH_GET_CHILD':'','RIT_LEAVES_ONLY':'','LOCK_SH':'','LOCK_EX':'','LOCK_UN':'','LOCK_NB':'','SEEK_SET':'','SEEK_CUR':'','SEEK_END':'','PHP_INT_MAX':'',}
let php_builtin['constants']['unknow']={'PHP_INI_ALL':'','PHP_INI_PERDIR':'','PHP_INI_SYSTEM':'','PHP_INI_USER':'','COUNTER_FLAG_PERSIST':'','COUNTER_FLAG_SAVE':'','COUNTER_FLAG_NO_OVERWRITE':'','COUNTER_META_NAME':'','COUNTER_META_IS_PERISTENT':'','COUNTER_RESET_NEVER':'','COUNTER_RESET_PER_LOAD':'','COUNTER_RESET_PER_REQUEST':'','PDO_PLACEHOLDER_NAMED':'','PDO_PLACEHOLDER_POSITIONAL':'','PDO_PLACEHOLDER_NONE':'','PDO_CASE_NATURAL':'','PDO_CASE_UPPER':'','PDO_CASE_LOWER':'','PDO_ATTR_CASE':'','PHP_COUNTER_API':'','PHPAPI':'','COMPILE_DL_COUNTER':'','ZEND_GET_MODULE':'','HAVE_COUNTER':'','COUNTER_G':'','TSRMLS_DC':'','TSRMLS_FETCH':'','STANDARD_MODULE_HEADER':'','STANDARD_MODULE_HEADER_EX':'','STANDARD_MODULE_PROPERTIES':'','STANDARD_MODULE_PROPERTIES_EX':'','ZEND_MODULE_API_NO':'','ZEND_DEBUG':'','USING_ZTS':'','NO_VERSION_YET':'','NO_MODULE_GLOBALS':'','PHP_MODULE_GLOBALS':'','IGNORE_PATH':'','USE_PATH':'','IGNORE_URL':'','IGNORE_URL_WIN':'','ENFORCE_SAFE_MODE':'','REPORT_ERRORS':'','STREAM_MUST_SEEK':'','STREAM_WILL_CAST':'',}
let php_builtin['constants']['directories']={'DIRECTORY_SEPARATOR':'','PATH_SEPARATOR':'','SCANDIR_SORT_ASCENDING':'','SCANDIR_SORT_DESCENDING':'','SCANDIR_SORT_NONE':'',}
let php_builtin['constants']['dom']={'XML_ELEMENT_NODE':'','XML_ATTRIBUTE_NODE':'','XML_TEXT_NODE':'','XML_CDATA_SECTION_NODE':'','XML_ENTITY_REF_NODE':'','XML_ENTITY_NODE':'','XML_PI_NODE':'','XML_COMMENT_NODE':'','XML_DOCUMENT_NODE':'','XML_DOCUMENT_TYPE_NODE':'','XML_DOCUMENT_FRAG_NODE':'','XML_NOTATION_NODE':'','XML_HTML_DOCUMENT_NODE':'','XML_DTD_NODE':'','XML_ELEMENT_DECL_NODE':'','XML_ATTRIBUTE_DECL_NODE':'','XML_ENTITY_DECL_NODE':'','XML_NAMESPACE_DECL_NODE':'','XML_ATTRIBUTE_CDATA':'','XML_ATTRIBUTE_ID':'','XML_ATTRIBUTE_IDREF':'','XML_ATTRIBUTE_IDREFS':'','XML_ATTRIBUTE_ENTITY':'','XML_ATTRIBUTE_NMTOKEN':'','XML_ATTRIBUTE_NMTOKENS':'','XML_ATTRIBUTE_ENUMERATION':'','XML_ATTRIBUTE_NOTATION':'','DOM_PHP_ERR':'','DOM_INDEX_SIZE_ERR':'','DOMSTRING_SIZE_ERR':'','DOM_HIERARCHY_REQUEST_ERR':'','DOM_WRONG_DOCUMENT_ERR':'','DOM_INVALID_CHARACTER_ERR':'','DOM_NO_DATA_ALLOWED_ERR':'','DOM_NO_MODIFICATION_ALLOWED_ERR':'','DOM_NOT_FOUND_ERR':'','DOM_NOT_SUPPORTED_ERR':'','DOM_INUSE_ATTRIBUTE_ERR':'','DOM_INVALID_STATE_ERR':'','DOM_SYNTAX_ERR':'','DOM_INVALID_MODIFICATION_ERR':'','DOM_NAMESPACE_ERR':'','DOM_INVALID_ACCESS_ERR':'','DOM_VALIDATION_ERR':'','DOM_NOT_FOUND_ERROR':'','DOM_NOT_FOUND':'',}
let php_builtin['constants']['command_line_usage']={'PHP_SAPI':'','STDIN':'','STDOUT':'','STDERR':'',}
let php_builtin['constants']['handling_file_uploads']={'UPLOAD_ERR_OK':'','UPLOAD_ERR_INI_SIZE':'','UPLOAD_ERR_FORM_SIZE':'','UPLOAD_ERR_PARTIAL':'','UPLOAD_ERR_NO_FILE':'','UPLOAD_ERR_NO_TMP_DIR':'','UPLOAD_ERR_CANT_WRITE':'','UPLOAD_ERR_EXTENSION':'',}
let php_builtin['constants']['fileinfo']={'FILEINFO_NONE':'','FILEINFO_SYMLINK':'','FILEINFO_MIME_TYPE':'','FILEINFO_MIME_ENCODING':'','FILEINFO_MIME':'','FILEINFO_COMPRESS':'','FILEINFO_DEVICES':'','FILEINFO_CONTINUE':'','FILEINFO_PRESERVE_ATIME':'','FILEINFO_RAW':'',}
let php_builtin['constants']['filesystem']={'SEEK_SET':'','SEEK_CUR':'','SEEK_END':'','LOCK_SH':'','LOCK_EX':'','LOCK_UN':'','LOCK_NB':'','GLOB_BRACE':'','GLOB_ONLYDIR':'','GLOB_MARK':'','GLOB_NOSORT':'','GLOB_NOCHECK':'','GLOB_NOESCAPE':'','GLOB_AVAILABLE_FLAGS':'','PATHINFO_DIRNAME':'','PATHINFO_BASENAME':'','PATHINFO_EXTENSION':'','PATHINFO_FILENAME':'','FILE_USE_INCLUDE_PATH':'','FILE_NO_DEFAULT_CONTEXT':'','FILE_APPEND':'','FILE_IGNORE_NEW_LINES':'','FILE_SKIP_EMPTY_LINES':'','FILE_BINARY':'','FILE_TEXT':'','INI_SCANNER_NORMAL':'','INI_SCANNER_RAW':'','FNM_NOESCAPE':'','FNM_PATHNAME':'','FNM_PERIOD':'','FNM_CASEFOLD':'','GLOB_ERR':'',}
let php_builtin['constants']['filter']={'FILTER_FLAG_NO_ENCODE_QUOTES':'','INPUT_POST':'','INPUT_GET':'','INPUT_COOKIE':'','INPUT_ENV':'','INPUT_SERVER':'','INPUT_SESSION':'','INPUT_REQUEST':'','FILTER_FLAG_NONE':'','FILTER_REQUIRE_SCALAR':'','FILTER_REQUIRE_ARRAY':'','FILTER_FORCE_ARRAY':'','FILTER_NULL_ON_FAILURE':'','FILTER_VALIDATE_INT':'','FILTER_VALIDATE_BOOLEAN':'','FILTER_VALIDATE_FLOAT':'','FILTER_VALIDATE_REGEXP':'','FILTER_VALIDATE_URL':'','FILTER_VALIDATE_EMAIL':'','FILTER_VALIDATE_IP':'','FILTER_DEFAULT':'','FILTER_UNSAFE_RAW':'','FILTER_SANITIZE_STRING':'','FILTER_SANITIZE_STRIPPED':'','FILTER_SANITIZE_ENCODED':'','FILTER_SANITIZE_SPECIAL_CHARS':'','FILTER_SANITIZE_EMAIL':'','FILTER_SANITIZE_URL':'','FILTER_SANITIZE_NUMBER_INT':'','FILTER_SANITIZE_NUMBER_FLOAT':'','FILTER_SANITIZE_MAGIC_QUOTES':'','FILTER_CALLBACK':'','FILTER_FLAG_ALLOW_OCTAL':'','FILTER_FLAG_ALLOW_HEX':'','FILTER_FLAG_STRIP_LOW':'','FILTER_FLAG_STRIP_HIGH':'','FILTER_FLAG_ENCODE_LOW':'','FILTER_FLAG_ENCODE_HIGH':'','FILTER_FLAG_ENCODE_AMP':'','FILTER_FLAG_EMPTY_STRING_NULL':'','FILTER_FLAG_ALLOW_FRACTION':'','FILTER_FLAG_ALLOW_THOUSAND':'','FILTER_FLAG_ALLOW_SCIENTIFIC':'','FILTER_FLAG_PATH_REQUIRED':'','FILTER_FLAG_QUERY_REQUIRED':'','FILTER_FLAG_IPV4':'','FILTER_FLAG_IPV6':'','FILTER_FLAG_NO_RES_RANGE':'','FILTER_FLAG_NO_PRIV_RANGE':'','FILTER_SANITIZE_RAW':'','FILTER_SANITIZE_FULL_SPECIAL_CHARS':'','ENT_QUOTES':'',}
let php_builtin['constants']['php_options_info']={'ASSERT_CALLBACK':'','RUSAGE_CHILDREN':'','PHP_SAPI':'','PHP_OS':'','CREDITS_DOCS':'','CREDITS_GENERAL':'','CREDITS_GROUP':'','CREDITS_MODULES':'','CREDITS_FULLPAGE':'','PHP_VERSION_ID':'','PHP_VERSION':'','PATH_SEPARATOR':'','CREDITS_SAPI':'','CREDITS_QA':'','CREDITS_ALL':'','INFO_GENERAL':'','INFO_CREDITS':'','INFO_CONFIGURATION':'','INFO_MODULES':'','INFO_ENVIRONMENT':'','INFO_VARIABLES':'','INFO_LICENSE':'','INFO_ALL':'','ASSERT_ACTIVE':'','ASSERT_BAIL':'','ASSERT_WARNING':'','ASSERT_QUIET_EVAL':'','PHP_WINDOWS_VERSION_MAJOR':'','PHP_WINDOWS_VERSION_MINOR':'','PHP_WINDOWS_VERSION_BUILD':'','PHP_WINDOWS_VERSION_PLATFORM':'','PHP_WINDOWS_VERSION_SP_MAJOR':'','PHP_WINDOWS_VERSION_SP_MINOR':'','PHP_WINDOWS_VERSION_SUITEMASK':'','PHP_WINDOWS_VERSION_PRODUCTTYPE':'','PHP_WINDOWS_NT_DOMAIN_CONTROLLER':'','PHP_WINDOWS_NT_SERVER':'','PHP_WINDOWS_NT_WORKSTATION':'',}
let php_builtin['constants']['strings']={'CRYPT_SALT_LENGTH':'','CRYPT_STD_DES':'','CRYPT_EXT_DES':'','CRYPT_MD5':'','CRYPT_BLOWFISH':'','CRYPT_SHA256':'','CRYPT_SHA512':'','HTML_ENTITIES':'','HTML_SPECIALCHARS':'','ENT_COMPAT':'','ENT_QUOTES':'','ENT_NOQUOTES':'','ENT_HTML401':'','ENT_XML1':'','ENT_XHTML':'','ENT_HTML5':'','ENT_IGNORE':'','ENT_SUBSTITUTE':'','ENT_DISALLOWED':'','CHAR_MAX':'','LC_MONETARY':'','AM_STR':'','PM_STR':'','D_T_FMT':'','D_FMT':'','T_FMT':'','T_FMT_AMPM':'','ERA':'','ERA_YEAR':'','ERA_D_T_FMT':'','ERA_D_FMT':'','ERA_T_FMT':'','INT_CURR_SYMBOL':'','CURRENCY_SYMBOL':'','CRNCYSTR':'','MON_DECIMAL_POINT':'','MON_THOUSANDS_SEP':'','MON_GROUPING':'','POSITIVE_SIGN':'','NEGATIVE_SIGN':'','INT_FRAC_DIGITS':'','FRAC_DIGITS':'','P_CS_PRECEDES':'','P_SEP_BY_SPACE':'','N_CS_PRECEDES':'','N_SEP_BY_SPACE':'','P_SIGN_POSN':'','N_SIGN_POSN':'','DECIMAL_POINT':'','RADIXCHAR':'','THOUSANDS_SEP':'','THOUSEP':'','GROUPING':'','YESEXPR':'','NOEXPR':'','YESSTR':'','NOSTR':'','CODESET':'','LC_ALL':'','LC_COLLATE':'','LC_CTYPE':'','LC_NUMERIC':'','LC_TIME':'','LC_MESSAGES':'','PHP_INT_MAX':'','STR_PAD_RIGHT':'','STR_PAD_LEFT':'','STR_PAD_BOTH':'',}
let php_builtin['constants']['error_handling']={'DEBUG_BACKTRACE_PROVIDE_OBJECT':'','DEBUG_BACKTRACE_IGNORE_ARGS':'',}
let php_builtin['constants']['math']={'PHP_INT_MAX':'','M_PI':'','PHP_ROUND_HALF_UP':'','PHP_ROUND_HALF_DOWN':'','PHP_ROUND_HALF_EVEN':'','PHP_ROUND_HALF_ODD':'','M_E':'','M_LOG2E':'','M_LOG10E':'','M_LN2':'','M_LN10':'','M_PI_2':'','M_PI_4':'','M_1_PI':'','M_2_PI':'','M_SQRTPI':'','M_2_SQRTPI':'','M_SQRT2':'','M_SQRT3':'','M_SQRT1_2':'','M_LNPI':'','M_EULER':'','NAN':'','INF':'',}
let php_builtin['constants']['network']={'LOG_EMERG':'','LOG_ALERT':'','LOG_CRIT':'','LOG_ERR':'','LOG_WARNING':'','LOG_NOTICE':'','LOG_INFO':'','LOG_DEBUG':'','LOG_KERN':'','LOG_USER':'','LOG_MAIL':'','LOG_DAEMON':'','LOG_AUTH':'','LOG_SYSLOG':'','LOG_LPR':'','LOG_NEWS':'','LOG_CRON':'','LOG_AUTHPRIV':'','LOG_LOCAL0':'','LOG_LOCAL1':'','LOG_LOCAL2':'','LOG_LOCAL3':'','LOG_LOCAL4':'','LOG_LOCAL5':'','LOG_LOCAL6':'','LOG_LOCAL7':'','LOG_PID':'','LOG_CONS':'','LOG_ODELAY':'','LOG_NDELAY':'','LOG_NOWAIT':'','LOG_PERROR':'','DNS_A':'','DNS_CNAME':'','DNS_HINFO':'','DNS_MX':'','DNS_NS':'','DNS_PTR':'','DNS_SOA':'','DNS_TXT':'','DNS_AAAA':'','DNS_SRV':'','DNS_NAPTR':'','DNS_A6':'','DNS_ALL':'','DNS_ANY':'','SID':'','LOG_UUCP':'',}
let php_builtin['constants']['urls']={'PHP_QUERY_RFC1738':'','PHP_QUERY_RFC3986':'','PHP_URL_SCHEME':'','PHP_URL_HOST':'','PHP_URL_PORT':'','PHP_URL_USER':'','PHP_URL_PASS':'','PHP_URL_PATH':'','PHP_URL_QUERY':'','PHP_URL_FRAGMENT':'',}
let php_builtin['constants']['gd']={'IMAGETYPE_GIF':'','IMAGETYPE_JPEG':'','IMAGETYPE_PNG':'','IMAGETYPE_SWF':'','IMAGETYPE_PSD':'','IMAGETYPE_BMP':'','IMAGETYPE_TIFF_II':'','IMAGETYPE_TIFF_MM':'','IMAGETYPE_JPC':'','IMAGETYPE_JP2':'','IMAGETYPE_JPX':'','IMAGETYPE_JB2':'','IMAGETYPE_SWC':'','IMAGETYPE_IFF':'','IMAGETYPE_WBMP':'','IMAGETYPE_XBM':'','IMAGETYPE_ICO':'','IMG_CROP_THRESHOLD':'','IMG_ARC_PIE':'','IMG_ARC_CHORD':'','IMG_ARC_NOFILL':'','IMG_ARC_EDGED':'','IMG_FILTER_NEGATE':'','IMG_FILTER_GRAYSCALE':'','IMG_FILTER_BRIGHTNESS':'','IMG_FILTER_CONTRAST':'','IMG_FILTER_COLORIZE':'','IMG_FILTER_EDGEDETECT':'','IMG_FILTER_EMBOSS':'','IMG_FILTER_GAUSSIAN_BLUR':'','IMG_FILTER_SELECTIVE_BLUR':'','IMG_FILTER_MEAN_REMOVAL':'','IMG_FILTER_SMOOTH':'','IMG_FILTER_PIXELATE':'','IMG_FLIP_HORIZONTAL':'','IMG_FLIP_VERTICAL':'','IMG_FLIP_BOTH':'','IMG_GD2_RAW':'','IMG_GD2_COMPRESSED':'','IMG_EFFECT_REPLACE':'','IMG_EFFECT_ALPHABLEND':'','IMG_EFFECT_NORMAL':'','IMG_EFFECT_OVERLAY':'','PNG_NO_FILTER':'','PNG_ALL_FILTERS':'','IMG_NEAREST_NEIGHBOUR':'','IMG_BILINEAR_FIXED':'','IMG_BICUBIC':'','IMG_BICUBIC_FIXED':'','IMG_COLOR_BRUSHED':'','IMG_COLOR_STYLEDBRUSHED':'','IMG_BELL':'','IMG_BESSEL':'','IMG_BLACKMAN':'','IMG_BOX':'','IMG_BSPLINE':'','IMG_CATMULLROM':'','IMG_GAUSSIAN':'','IMG_GENERALIZED_CUBIC':'','IMG_HERMITE':'','IMG_HAMMING':'','IMG_HANNING':'','IMG_MITCHELL':'','IMG_POWER':'','IMG_QUADRATIC':'','IMG_SINC':'','IMG_WEIGHTED4':'','IMG_TRIANGLE':'','IMG_COLOR_STYLED':'','IMG_COLOR_TRANSPARENT':'','IMG_COLOR_TILED':'','IMG_GIF':'','IMG_JPG':'','IMG_PNG':'','IMG_WBMP':'','IMG_XPM':'','GD_VERSION':'','GD_MAJOR_VERSION':'','GD_MINOR_VERSION':'','GD_RELEASE_VERSION':'','GD_EXTRA_VERSION':'','GD_BUNDLED':'','IMG_JPEG':'','IMG_ARC_ROUNDED':'','IMAGETYPE_JPEG2000':'','PNG_FILTER_NONE':'','PNG_FILTER_SUB':'','PNG_FILTER_UP':'','PNG_FILTER_AVG':'','PNG_FILTER_PAETH':'',}
let php_builtin['constants']['json']={'JSON_BIGINT_AS_STRING':'','JSON_HEX_QUOT':'','JSON_HEX_TAG':'','JSON_HEX_AMP':'','JSON_HEX_APOS':'','JSON_NUMERIC_CHECK':'','JSON_PRETTY_PRINT':'','JSON_UNESCAPED_SLASHES':'','JSON_FORCE_OBJECT':'','JSON_UNESCAPED_UNICODE':'','JSON_ERROR_NONE':'','JSON_ERROR_DEPTH':'','JSON_ERROR_STATE_MISMATCH':'','JSON_ERROR_CTRL_CHAR':'','JSON_ERROR_SYNTAX':'','JSON_ERROR_UTF8':'','JSON_ERROR_RECURSION':'','JSON_ERROR_INF_OR_NAN':'','NAN':'','INF':'','JSON_ERROR_UNSUPPORTED_TYPE':'','JSON_PARTIAL_OUTPUT_ON_ERROR':'',}
let php_builtin['constants']['multibyte_string']={'MB_CASE_UPPER':'','MB_CASE_LOWER':'','MB_CASE_TITLE':'','MB_OVERLOAD_MAIL':'','MB_OVERLOAD_STRING':'','MB_OVERLOAD_REGEX':'',}
let php_builtin['constants']['mssql']={'SQLTEXT':'','SQLVARCHAR':'','SQLCHAR':'','SQLINT1':'','SQLINT2':'','SQLINT4':'','SQLBIT':'','SQLFLT4':'','SQLFLT8':'','SQLFLTN':'','MSSQL_ASSOC':'','MSSQL_NUM':'','MSSQL_BOTH':'',}
let php_builtin['constants']['mysql']={'MYSQL_CLIENT_SSL':'','MYSQL_CLIENT_COMPRESS':'','MYSQL_CLIENT_IGNORE_SPACE':'','MYSQL_CLIENT_INTERACTIVE':'','MYSQL_ASSOC':'','MYSQL_NUM':'','MYSQL_BOTH':'','MYSQL_PORT':'',}
let php_builtin['constants']['output_control']={'PHP_OUTPUT_HANDLER_STDFLAGS':'','PHP_OUTPUT_HANDLER_CLEANABLE':'','PHP_OUTPUT_HANDLER_FLUSHABLE':'','PHP_OUTPUT_HANDLER_REMOVABLE':'','PHP_OUTPUT_HANDLER_START':'','PHP_OUTPUT_HANDLER_WRITE':'','PHP_OUTPUT_HANDLER_FLUSH':'','PHP_OUTPUT_HANDLER_CLEAN':'','PHP_OUTPUT_HANDLER_FINAL':'','PHP_OUTPUT_HANDLER_CONT':'','PHP_OUTPUT_HANDLER_END':'',}
let php_builtin['constants']['password_hashing']={'PASSWORD_DEFAULT':'','PASSWORD_BCRYPT':'','CRYPT_BLOWFISH':'',}
let php_builtin['constants']['postgresql']={'PGSQL_CONNECT_FORCE_NEW':'','PGSQL_CONNECTION_OK':'','PGSQL_CONNECTION_BAD':'','PGSQL_CONV_IGNORE_DEFAULT':'','PGSQL_CONV_FORCE_NULL':'','PGSQL_CONV_IGNORE_NOT_NULL':'','PGSQL_DML_NO_CONV':'','PGSQL_DML_ESCAPE':'','PGSQL_DML_EXEC':'','PGSQL_DML_ASYNC':'','PGSQL_DML_STRING':'','PGSQL_ASSOC':'','PGSQL_NUM':'','PGSQL_BOTH':'','PGSQL_CONV_OPTS':'','INV_READ':'','INV_WRITE':'','INV_ARCHIVE':'','PGSQL_SEEK_SET':'','PGSQL_SEEK_CUR':'','PGSQL_SEEK_END':'','PGSQL_DIAG_SEVERITY':'','PGSQL_DIAG_SQLSTATE':'','PGSQL_DIAG_MESSAGE_PRIMARY':'','PGSQL_DIAG_MESSAGE_DETAIL':'','PGSQL_DIAG_MESSAGE_HINT':'','PGSQL_DIAG_STATEMENT_POSITION':'','PGSQL_DIAG_INTERNAL_POSITION':'','PGSQL_DIAG_INTERNAL_QUERY':'','PGSQL_DIAG_CONTEXT':'','PGSQL_DIAG_SOURCE_FILE':'','PGSQL_DIAG_SOURCE_LINE':'','PGSQL_DIAG_SOURCE_FUNCTION':'','PGSQL_STATUS_LONG':'','PGSQL_STATUS_STRING':'','PGSQL_EMPTY_QUERY':'','PGSQL_COMMAND_OK':'','PGSQL_TUPLES_OK':'','PGSQL_COPY_OUT':'','PGSQL_COPY_IN':'','PGSQL_BAD_RESPONSE':'','PGSQL_NONFATAL_ERROR':'','PGSQL_FATAL_ERROR':'','PGSQL_ERRORS_TERSE':'','PGSQL_ERRORS_DEFAULT':'','PGSQL_ERRORS_VERBOSE':'','PGSQL_TRANSACTION_IDLE':'','PGSQL_TRANSACTION_ACTIVE':'','PGSQL_TRANSACTION_INTRANS':'','PGSQL_TRANSACTION_INERROR':'','PGSQL_TRANSACTION_UNKNOWN':'','PG_DIAG_STATEMENT_POSITION':'','PG_DIAG_INTERNAL_QUERY':'',}
let php_builtin['constants']['pcre']={'PREG_GREP_INVERT':'','PREG_NO_ERROR':'','PREG_INTERNAL_ERROR':'','PREG_BACKTRACK_LIMIT_ERROR':'','PREG_RECURSION_LIMIT_ERROR':'','PREG_BAD_UTF8_ERROR':'','PREG_BAD_UTF8_OFFSET_ERROR':'','PREG_PATTERN_ORDER':'','PREG_SET_ORDER':'','PREG_OFFSET_CAPTURE':'','PREG_SPLIT_NO_EMPTY':'','PREG_SPLIT_DELIM_CAPTURE':'','PREG_SPLIT_OFFSET_CAPTURE':'','PCRE_VERSION':'',}
let php_builtin['constants']['program_execution']={'STDIN':'',}
let php_builtin['constants']['sessions']={'SID':'','PHP_SESSION_DISABLED':'','PHP_SESSION_NONE':'','PHP_SESSION_ACTIVE':'','UPLOAD_ERR_EXTENSION':'',}
let php_builtin['constants']['variable_handling']={'PHP_INT_MAX':'',}
let php_builtin['constants']['misc']={'WAIT_IO_COMPLETION':'','CONNECTION_ABORTED':'','CONNECTION_NORMAL':'','CONNECTION_TIMEOUT':'',}
let php_builtin['constants']['streams']={'STREAM_FILTER_READ':'','STREAM_FILTER_WRITE':'','STREAM_FILTER_ALL':'','PHP_INT_MAX':'','STREAM_CLIENT_CONNECT':'','STREAM_CLIENT_ASYNC_CONNECT':'','STREAM_CLIENT_PERSISTENT':'','STREAM_CRYPTO_METHOD_TLS_CLIENT':'','STREAM_CRYPTO_METHOD_TLS_SERVER':'','STREAM_PF_INET':'','STREAM_PF_INET6':'','STREAM_PF_UNIX':'','STREAM_SOCK_DGRAM':'','STREAM_SOCK_RAW':'','STREAM_SOCK_RDM':'','STREAM_SOCK_SEQPACKET':'','STREAM_SOCK_STREAM':'','STREAM_IPPROTO_ICMP':'','STREAM_IPPROTO_IP':'','STREAM_IPPROTO_RAW':'','STREAM_IPPROTO_TCP':'','STREAM_IPPROTO_UDP':'','STREAM_OOB':'','STREAM_PEEK':'','AF_INET':'','STREAM_SERVER_BIND':'','STREAM_SHUT_RD':'','STREAM_SHUT_WR':'','STREAM_SHUT_RDWR':'','STREAM_IS_URL':'','PSFS_PASS_ON':'','PSFS_FEED_ME':'','PSFS_ERR_FATAL':'','PSFS_FLAG_NORMAL':'','PSFS_FLAG_FLUSH_INC':'','PSFS_FLAG_FLUSH_CLOSE':'','STREAM_USE_PATH':'','STREAM_REPORT_ERRORS':'','STREAM_SERVER_LISTEN':'','STREAM_NOTIFY_RESOLVE':'','STREAM_NOTIFY_CONNECT':'','STREAM_NOTIFY_AUTH_REQUIRED':'','STREAM_NOTIFY_SEVERITY_ERR':'','STREAM_NOTIFY_MIME_TYPE_IS':'','STREAM_NOTIFY_FILE_SIZE_IS':'','STREAM_NOTIFY_REDIRECTED':'','STREAM_NOTIFY_PROGRESS':'','STREAM_NOTIFY_COMPLETED':'','STREAM_NOTIFY_FAILURE':'','STREAM_NOTIFY_AUTH_RESULT':'','STREAM_NOTIFY_SEVERITY_INFO':'','STREAM_NOTIFY_SEVERITY_WARN':'','STREAM_CAST_FOR_SELECT':'','STREAM_CAST_AS_STREAM':'','STREAM_META_TOUCH':'','STREAM_META_OWNER':'','STREAM_META_OWNER_NAME':'','STREAM_META_GROUP':'','STREAM_META_GROUP_NAME':'','STREAM_META_ACCESS':'','STREAM_MKDIR_RECURSIVE':'','LOCK_EX':'','LOCK_UN':'','LOCK_SH':'','LOCK_NB':'','SEEK_SET':'','SEEK_CUR':'','SEEK_END':'','STREAM_OPTION_BLOCKING':'','STREAM_OPTION_READ_TIMEOUT':'','STREAM_OPTION_WRITE_BUFFER':'','STREAM_BUFFER_NONE':'','STREAM_BUFFER_FULL':'',}
let php_builtin['constants']['iconv']={'ICONV_IMPL':'','ICONV_VERSION':'','ICONV_MIME_DECODE_STRICT':'','ICONV_MIME_DECODE_CONTINUE_ON_ERROR':'',}
let php_builtin['constants']['phpini_directives']={'PATH_SEPARATOR':'','PHP_INI_SYSTEM':'',}
let php_builtin['constants']['types']={'NAN':'','PHP_INT_SIZE':'','PHP_INT_MAX':'',}
let php_builtin['constants']['pdo']={'PDO_PARAM_BOOL':'',}
let php_builtin['constants']['list_of_reserved_words']={'PHP_VERSION':'','PHP_MAJOR_VERSION':'','PHP_MINOR_VERSION':'','PHP_RELEASE_VERSION':'','PHP_VERSION_ID':'','PHP_EXTRA_VERSION':'','PHP_ZTS':'','PHP_DEBUG':'','PHP_MAXPATHLEN':'','PHP_OS':'','PHP_SAPI':'','PHP_EOL':'','PHP_INT_MAX':'','PHP_INT_SIZE':'','DEFAULT_INCLUDE_PATH':'','PEAR_INSTALL_DIR':'','PEAR_EXTENSION_DIR':'','PHP_EXTENSION_DIR':'','PHP_PREFIX':'','PHP_BINDIR':'','PHP_BINARY':'','PHP_MANDIR':'','PHP_LIBDIR':'','PHP_DATADIR':'','PHP_SYSCONFDIR':'','PHP_LOCALSTATEDIR':'','PHP_CONFIG_FILE_PATH':'','PHP_CONFIG_FILE_SCAN_DIR':'','PHP_SHLIB_SUFFIX':'',}
let php_builtin['constants']['php_type_comparison_tables']={'NAN':'',}

" Built in functions
let g:php_builtin_functions = {}
for [ext, data] in items(php_builtin['functions'])
	call extend(g:php_builtin_functions, data)
endfor

" Built in classs
let g:php_builtin_classes = {}
for [ext, data] in items(php_builtin['classes'])
	call extend(g:php_builtin_classes, data)
endfor

" Built in interfaces
let g:php_builtin_interfaces = {}
for [ext, data] in items(php_builtin['interfaces'])
	call extend(g:php_builtin_interfaces, data)
endfor

" Built in constants
let g:php_constants = {}
for [ext, data] in items(php_builtin['constants'])
	call extend(g:php_constants, data)
endfor

" When the classname not found or found but the tags dosen't contain that
" class we will try to complate any method of any builtin class. To speed up
" that lookup we compile a 'ClassName::MethodName':'info' dictionary from the
" builtin class informations
let g:php_builtin_object_functions = {}

" When completing for 'everyting imaginable' (no class context, not a
" variable) we need a list of built-in classes in a format of {'classname':''}
" for performance reasons we precompile this too
let g:php_builtin_classnames = {}

" In order to reduce file size, empty keys are omitted from class structures.
" To make the structure of in-memory hashes normalized we will add them in runtime
let required_class_hash_keys = ['constants', 'properties', 'static_properties', 'methods', 'static_methods']

for [classname, class_info] in items(g:php_builtin_classes)
	for property_name in required_class_hash_keys
		if !has_key(class_info, property_name)
			let class_info[property_name] = {}
		endif
	endfor

	let g:php_builtin_classnames[classname] = ''
	for [method_name, method_info] in items(class_info.methods)
		let g:php_builtin_object_functions[classname.'::'.method_name.'('] = method_info.signature
	endfor
	for [method_name, method_info] in items(class_info.static_methods)
		let g:php_builtin_object_functions[classname.'::'.method_name.'('] = method_info.signature
	endfor
endfor

let g:php_builtin_interfacenames = {}
for [interfacename, info] in items(g:php_builtin_interfaces)
	for property_name in required_class_hash_keys
		if !has_key(class_info, property_name)
			let class_info[property_name] = {}
		endif
	endfor

	let g:php_builtin_interfacenames[interfacename] = ''
	for [method_name, method_info] in items(class_info.methods)
		let g:php_builtin_object_functions[interfacename.'::'.method_name.'('] = method_info.signature
	endfor
	for [method_name, method_info] in items(class_info.static_methods)
		let g:php_builtin_object_functions[interfacename.'::'.method_name.'('] = method_info.signature
	endfor
endfor


" Add control structures (they are outside regular pattern of PHP functions)
let php_control = {
			\ 'include(': 'string filename | resource',
			\ 'include_once(': 'string filename | resource',
			\ 'require(': 'string filename | resource',
			\ 'require_once(': 'string filename | resource',
			\ }
call extend(g:php_builtin_functions, php_control)


" Built-in variables " {{{
let g:php_builtin_vars ={
			\ '$GLOBALS':'',
			\ '$_SERVER':'',
			\ '$_GET':'',
			\ '$_POST':'',
			\ '$_COOKIE':'',
			\ '$_FILES':'',
			\ '$_ENV':'',
			\ '$_REQUEST':'',
			\ '$_SESSION':'',
			\ '$HTTP_SERVER_VARS':'',
			\ '$HTTP_ENV_VARS':'',
			\ '$HTTP_COOKIE_VARS':'',
			\ '$HTTP_GET_VARS':'',
			\ '$HTTP_POST_VARS':'',
			\ '$HTTP_POST_FILES':'',
			\ '$HTTP_SESSION_VARS':'',
			\ '$php_errormsg':'',
			\ '$this':'',
			\ }
" }}}
endfunction
" }}}

" vim: foldmethod=marker:noexpandtab:ts=8:sts=4
PK�j�Zi�T/9/9vim80/autoload/zip.vimnu�[���" zip.vim: Handles browsing zipfiles
"            AUTOLOAD PORTION
" Date:		Sep 13, 2016
" Version:	28
" Maintainer:	Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License:	Vim License  (see vim's :help license)
" Copyright:    Copyright (C) 2005-2013 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               zip.vim and zipPlugin.vim are provided *as is* and comes with
"               no warranty of any kind, either expressed or implied. By using
"               this plugin, you agree that in no event will the copyright
"               holder be liable for any damages resulting from the use
"               of this software.
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()

" ---------------------------------------------------------------------
" Load Once: {{{1
if &cp || exists("g:loaded_zip")
 finish
endif
let g:loaded_zip= "v28"
if v:version < 702
 echohl WarningMsg
 echo "***warning*** this version of zip needs vim 7.2 or later"
 echohl Normal
 finish
endif
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn

let s:zipfile_escape = ' ?&;\'
let s:ERROR          = 2
let s:WARNING        = 1
let s:NOTE           = 0

" ---------------------------------------------------------------------
"  Global Values: {{{1
if !exists("g:zip_shq")
 if &shq != ""
  let g:zip_shq= &shq
 elseif has("unix")
  let g:zip_shq= "'"
 else
  let g:zip_shq= '"'
 endif
endif
if !exists("g:zip_zipcmd")
 let g:zip_zipcmd= "zip"
endif
if !exists("g:zip_unzipcmd")
 let g:zip_unzipcmd= "unzip"
endif
if !exists("g:zip_extractcmd")
 let g:zip_extractcmd= g:zip_unzipcmd
endif

" ----------------
"  Functions: {{{1
" ----------------

" ---------------------------------------------------------------------
" zip#Browse: {{{2
fun! zip#Browse(zipfile)
"  call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
  " sanity check: ensure that the zipfile has "PK" as its first two letters
  "               (zipped files have a leading PK as a "magic cookie")
  if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
   exe "noautocmd e ".fnameescape(a:zipfile)
"   call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
   return
"  else        " Decho
"   call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file")
  endif

  let repkeep= &report
  set report=10

  " sanity checks
  if !exists("*fnameescape")
   if &verbose > 1
    echoerr "the zip plugin is not available (your vim doens't support fnameescape())"
   endif
   return
  endif
  if !executable(g:zip_unzipcmd)
   redraw!
   echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   let &report= repkeep
"   call Dret("zip#Browse")
   return
  endif
  if !filereadable(a:zipfile)
   if a:zipfile !~# '^\a\+://'
    " if it's an url, don't complain, let url-handlers such as vim do its thing
    redraw!
    echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
"    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   endif
   let &report= repkeep
"   call Dret("zip#Browse : file<".a:zipfile."> not readable")
   return
  endif
"  call Decho("passed sanity checks")
  if &ma != 1
   set ma
  endif
  let b:zipfile= a:zipfile

  setlocal noswapfile
  setlocal buftype=nofile
  setlocal bufhidden=hide
  setlocal nobuflisted
  setlocal nowrap
  set ft=tar

  " give header
  call append(0, ['" zip.vim version '.g:loaded_zip,
 \                '" Browsing zipfile '.a:zipfile,
 \                '" Select a file with cursor and press ENTER'])
  keepj $

"  call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
  exe "keepj sil! r! ".g:zip_unzipcmd." -Z -1 -- ".s:Escape(a:zipfile,1)
  if v:shell_error != 0
   redraw!
   echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   keepj sil! %d
   let eikeep= &ei
   set ei=BufReadCmd,FileReadCmd
   exe "keepj r ".fnameescape(a:zipfile)
   let &ei= eikeep
   keepj 1d
"   call Dret("zip#Browse")
   return
  endif

  " Maps associated with zip plugin
  setlocal noma nomod ro
  noremap <silent> <buffer> <cr>	:call <SID>ZipBrowseSelect()<cr>
  noremap <silent> <buffer> x		:call zip#Extract()<cr>

  let &report= repkeep
"  call Dret("zip#Browse")
endfun

" ---------------------------------------------------------------------
" ZipBrowseSelect: {{{2
fun! s:ZipBrowseSelect()
"  call Dfunc("ZipBrowseSelect() zipfile<".b:zipfile."> curfile<".expand("%").">")
  let repkeep= &report
  set report=10
  let fname= getline(".")

  " sanity check
  if fname =~ '^"'
   let &report= repkeep
"   call Dret("ZipBrowseSelect")
   return
  endif
  if fname =~ '/$'
   redraw!
   echohl Error | echo "***error*** (zip#Browse) Please specify a file, not a directory" | echohl None
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   let &report= repkeep
"   call Dret("ZipBrowseSelect")
   return
  endif

"  call Decho("fname<".fname.">")

  " get zipfile to the new-window
  let zipfile = b:zipfile
  let curfile= expand("%")
"  call Decho("zipfile<".zipfile.">")
"  call Decho("curfile<".curfile.">")

  new
  if !exists("g:zip_nomax") || g:zip_nomax == 0
   wincmd _
  endif
  let s:zipfile_{winnr()}= curfile
"  call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
  exe "e ".fnameescape("zipfile:".zipfile.'::'.fname)
  filetype detect

  let &report= repkeep
"  call Dret("ZipBrowseSelect : s:zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
endfun

" ---------------------------------------------------------------------
" zip#Read: {{{2
fun! zip#Read(fname,mode)
"  call Dfunc("zip#Read(fname<".a:fname.">,mode=".a:mode.")")
  let repkeep= &report
  set report=10

  if has("unix")
   let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
   let fname   = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
  else
   let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
   let fname   = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
   let fname   = substitute(fname, '[', '[[]', 'g')
  endif
"  call Decho("zipfile<".zipfile.">")
"  call Decho("fname  <".fname.">")
  " sanity check
  if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','',''))
   redraw!
   echohl Error | echo "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program" | echohl None
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   let &report= repkeep
"   call Dret("zip#Write")
   return
  endif

  " the following code does much the same thing as
  "   exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
  " but allows zipfile:... entries in quickfix lists
  let temp = tempname()
"  call Decho("using temp file<".temp.">")
  let fn   = expand('%:p')
  exe "sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp
"  call Decho("exe sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp)
  sil exe 'keepalt file '.temp
  sil keepj e!
  sil exe 'keepalt file '.fnameescape(fn)
  call delete(temp)

  filetype detect

  " cleanup
  "  keepj 0d   " used to be needed for the ...r! ... method
  set nomod

  let &report= repkeep
"  call Dret("zip#Read")
endfun

" ---------------------------------------------------------------------
" zip#Write: {{{2
fun! zip#Write(fname)
"  call Dfunc("zip#Write(fname<".a:fname.">) zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
  let repkeep= &report
  set report=10

  " sanity checks
  if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
   redraw!
   echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program" | echohl None
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   let &report= repkeep
"   call Dret("zip#Write")
   return
  endif
  if !exists("*mkdir")
   redraw!
   echohl Error | echo "***error*** (zip#Write) sorry, mkdir() doesn't work on your system" | echohl None
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   let &report= repkeep
"   call Dret("zip#Write")
   return
  endif

  let curdir= getcwd()
  let tmpdir= tempname()
"  call Decho("orig tempname<".tmpdir.">")
  if tmpdir =~ '\.'
   let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
  endif
"  call Decho("tmpdir<".tmpdir.">")
  call mkdir(tmpdir,"p")

  " attempt to change to the indicated directory
  if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot cd to temporary directory")
   let &report= repkeep
"   call Dret("zip#Write")
   return
  endif
"  call Decho("current directory now: ".getcwd())

  " place temporary files under .../_ZIPVIM_/
  if isdirectory("_ZIPVIM_")
   call s:Rmdir("_ZIPVIM_")
  endif
  call mkdir("_ZIPVIM_")
  cd _ZIPVIM_
"  call Decho("current directory now: ".getcwd())

  if has("unix")
   let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
   let fname   = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
  else
   let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
   let fname   = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
  endif
"  call Decho("zipfile<".zipfile.">")
"  call Decho("fname  <".fname.">")

  if fname =~ '/'
   let dirpath = substitute(fname,'/[^/]\+$','','e')
   if has("win32unix") && executable("cygpath")
    let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
   endif
"   call Decho("mkdir(dirpath<".dirpath.">,p)")
   call mkdir(dirpath,"p")
  endif
  if zipfile !~ '/'
   let zipfile= curdir.'/'.zipfile
  endif
"  call Decho("zipfile<".zipfile."> fname<".fname.">")

  exe "w! ".fnameescape(fname)
  if has("win32unix") && executable("cygpath")
   let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
  endif

  if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
    let fname = substitute(fname, '[', '[[]', 'g')
  endif

"  call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
  call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
  if v:shell_error != 0
   redraw!
   echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()

  elseif s:zipfile_{winnr()} =~ '^\a\+://'
   " support writing zipfiles across a network
   let netzipfile= s:zipfile_{winnr()}
"   call Decho("handle writing <".zipfile."> across network as <".netzipfile.">")
   1split|enew
   let binkeep= &binary
   let eikeep = &ei
   set binary ei=all
   exe "e! ".fnameescape(zipfile)
   call netrw#NetWrite(netzipfile)
   let &ei     = eikeep
   let &binary = binkeep
   q!
   unlet s:zipfile_{winnr()}
  endif
  
  " cleanup and restore current directory
  cd ..
  call s:Rmdir("_ZIPVIM_")
  call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
  call s:Rmdir(tmpdir)
  setlocal nomod

  let &report= repkeep
"  call Dret("zip#Write")
endfun

" ---------------------------------------------------------------------
" zip#Extract: extract a file from a zip archive {{{2
fun! zip#Extract()
"  call Dfunc("zip#Extract()")

  let repkeep= &report
  set report=10
  let fname= getline(".")
"  call Decho("fname<".fname.">")

  " sanity check
  if fname =~ '^"'
   let &report= repkeep
"   call Dret("zip#Extract")
   return
  endif
  if fname =~ '/$'
   redraw!
   echohl Error | echo "***error*** (zip#Extract) Please specify a file, not a directory" | echohl None
   let &report= repkeep
"   call Dret("zip#Extract")
   return
  endif

  " extract the file mentioned under the cursor
"  call Decho("system(".g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell).")")
  call system(g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell))
"  call Decho("zipfile<".b:zipfile.">")
  if v:shell_error != 0
   echohl Error | echo "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!" | echohl NONE
  elseif !filereadable(fname)
   echohl Error | echo "***error*** attempted to extract ".fname." but it doesn't appear to be present!"
  else
   echo "***note*** successfully extracted ".fname
  endif

  " restore option
  let &report= repkeep

"  call Dret("zip#Extract")
endfun

" ---------------------------------------------------------------------
" s:Escape: {{{2
fun! s:Escape(fname,isfilt)
"  call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")")
  if exists("*shellescape")
   if a:isfilt
    let qnameq= shellescape(a:fname,1)
   else
    let qnameq= shellescape(a:fname)
   endif
  else
   let qnameq= g:zip_shq.escape(a:fname,g:zip_shq).g:zip_shq
  endif
"  call Dret("QuoteFileDir <".qnameq.">")
  return qnameq
endfun

" ---------------------------------------------------------------------
" ChgDir: {{{2
fun! s:ChgDir(newdir,errlvl,errmsg)
"  call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl."  errmsg<".a:errmsg.">)")

  try
   exe "cd ".fnameescape(a:newdir)
  catch /^Vim\%((\a\+)\)\=:E344/
   redraw!
   if a:errlvl == s:NOTE
    echo "***note*** ".a:errmsg
   elseif a:errlvl == s:WARNING
    echohl WarningMsg | echo "***warning*** ".a:errmsg | echohl NONE
   elseif a:errlvl == s:ERROR
    echohl Error | echo "***error*** ".a:errmsg | echohl NONE
   endif
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
"   call Dret("ChgDir 1")
   return 1
  endtry

"  call Dret("ChgDir 0")
  return 0
endfun

" ---------------------------------------------------------------------
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
"  call Dfunc("Rmdir(fname<".a:fname.">)")
  if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
   call system("rmdir /S/Q ".s:Escape(a:fname,0))
  else
   call system("/bin/rm -rf ".s:Escape(a:fname,0))
  endif
"  call Dret("Rmdir")
endfun

" ------------------------------------------------------------------------
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 fdm=marker
PK�j�ZGm2vim80/autoload/README.txtnu�[���The autoload directory is for standard Vim autoload scripts.

These are functions used by plugins and for general use.  They will be loaded
automatically when the function is invoked.  See ":help autoload".

gzip.vim	for editing compressed files
netrw*.vim	browsing (remote) directories and editing remote files
tar.vim		browsing tar files
zip.vim		browsing zip files
paste.vim	common code for mswin.vim, menu.vim and macmap.vim
spellfile.vim	downloading of a missing spell file

Omni completion files:
ccomplete.vim		C
csscomplete.vim		HTML / CSS
htmlcomplete.vim	HTML
javascriptcomplete.vim  Javascript
phpcomplete.vim		PHP
pythoncomplete.vim	Python
rubycomplete.vim	Ruby
syntaxcomplete.vim	from syntax highlighting
xmlcomplete.vim		XML (uses files in the xml directory)
PK�j�Zҩ�__vim80/autoload/vimball.vimnu�[���" vimball.vim : construct a file containing both paths and files
" Author:	Charles E. Campbell
" Date:		Apr 11, 2016
" Version:	37
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2011 by Charles E. Campbell
"            The VIM LICENSE applies to Vimball.vim, and Vimball.txt
"            (see |copyright|) except use "Vimball" instead of "Vim".
"            No warranty, express or implied.
"  *** ***   Use At-Your-Own-Risk!   *** ***

" ---------------------------------------------------------------------
"  Load Once: {{{1
if &cp || exists("g:loaded_vimball")
 finish
endif
let g:loaded_vimball = "v37"
if v:version < 702
 echohl WarningMsg
 echo "***warning*** this version of vimball needs vim 7.2"
 echohl Normal
 finish
endif
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn

" =====================================================================
" Constants: {{{1
if !exists("s:USAGE")
 let s:USAGE   = 0
 let s:WARNING = 1
 let s:ERROR   = 2

 " determine if cygwin is in use or not
 if !exists("g:netrw_cygwin")
  if has("win32") || has("win95") || has("win64") || has("win16")
   if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
    let g:netrw_cygwin= 1
   else
    let g:netrw_cygwin= 0
   endif
  else
   let g:netrw_cygwin= 0
  endif
 endif

 " set up g:vimball_mkdir if the mkdir() call isn't defined
 if !exists("*mkdir")
  if exists("g:netrw_local_mkdir")
   let g:vimball_mkdir= g:netrw_local_mkdir
  elseif executable("mkdir")
   let g:vimball_mkdir= "mkdir"
  elseif executable("makedir")
   let g:vimball_mkdir= "makedir"
  endif
  if !exists(g:vimball_mkdir)
   call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
  endif
 endif
endif

" =====================================================================
"  Functions: {{{1

" ---------------------------------------------------------------------
" vimball#MkVimball: creates a vimball given a list of paths to files {{{2
" Input:
"     line1,line2: a range of lines containing paths to files to be included in the vimball
"     writelevel : if true, force a write to filename.vmb, even if it exists
"                  (usually accomplished with :MkVimball! ...
"     filename   : base name of file to be created (ie. filename.vmb)
" Output: a filename.vmb using vimball format:
"     path
"     filesize
"     [file]
"     path
"     filesize
"     [file]
fun! vimball#MkVimball(line1,line2,writelevel,...) range
"  call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0)
  if a:1 =~ '\.vim$' || a:1 =~ '\.txt$'
   let vbname= substitute(a:1,'\.\a\{3}$','.vmb','')
  else
   let vbname= a:1
  endif
  if vbname !~ '\.vmb$'
   let vbname= vbname.'.vmb'
  endif
"  call Decho("vbname<".vbname.">")
  if !a:writelevel && a:1 =~ '[\/]'
   call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist")
"   call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
   return
  endif
  if !a:writelevel && filereadable(vbname)
   call vimball#ShowMesg(s:ERROR,"(MkVimball) file<".vbname."> exists; use ! to insist")
"   call Dret("MkVimball : file<".vbname."> already exists; use ! to insist")
   return
  endif

  " user option bypass
  call vimball#SaveSettings()

  if a:0 >= 2
   " allow user to specify where to get the files
   let home= expand(a:2)
  else
   " use first existing directory from rtp
   let home= vimball#VimballHome()
  endif

  " save current directory
  let curdir = getcwd()
  call s:ChgDir(home)

  " record current tab, initialize while loop index
  let curtabnr = tabpagenr()
  let linenr   = a:line1
"  call Decho("curtabnr=".curtabnr)

  while linenr <= a:line2
   let svfile  = getline(linenr)
"   call Decho("svfile<".svfile.">")
 
   if !filereadable(svfile)
    call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">")
	call s:ChgDir(curdir)
	call vimball#RestoreSettings()
"    call Dret("MkVimball")
    return
   endif
 
   " create/switch to mkvimball tab
   if !exists("vbtabnr")
    tabnew
    sil! file Vimball
    let vbtabnr= tabpagenr()
   else
    exe "tabn ".vbtabnr
   endif
 
   let lastline= line("$") + 1
   if lastline == 2 && getline("$") == ""
	call setline(1,'" Vimball Archiver by Charles E. Campbell')
	call setline(2,'UseVimball')
	call setline(3,'finish')
	let lastline= line("$") + 1
   endif
   call setline(lastline  ,substitute(svfile,'$','	[[[1',''))
   call setline(lastline+1,0)

   " write the file from the tab
"   call Decho("exe $r ".fnameescape(svfile))
   exe "$r ".fnameescape(svfile)

   call setline(lastline+1,line("$") - lastline - 1)
"   call Decho("lastline=".lastline." line$=".line("$"))

  " restore to normal tab
   exe "tabn ".curtabnr
   let linenr= linenr + 1
  endwhile

  " write the vimball
  exe "tabn ".vbtabnr
  call s:ChgDir(curdir)
  setlocal ff=unix
  if a:writelevel
"   call Decho("exe w! ".fnameescape(vbname))
   exe "w! ".fnameescape(vbname)
  else
"   call Decho("exe w ".fnameescape(vbname))
   exe "w ".fnameescape(vbname)
  endif
"  call Decho("Vimball<".vbname."> created")
  echo "Vimball<".vbname."> created"

  " remove the evidence
  setlocal nomod bh=wipe
  exe "tabn ".curtabnr
  exe "tabc! ".vbtabnr

  " restore options
  call vimball#RestoreSettings()

"  call Dret("MkVimball")
endfun

" ---------------------------------------------------------------------
" vimball#Vimball: extract and distribute contents from a vimball {{{2
"                  (invoked the the UseVimball command embedded in 
"                  vimballs' prologue)
fun! vimball#Vimball(really,...)
"  call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)

  if v:version < 701 || (v:version == 701 && !exists('*fnameescape'))
   echoerr "your vim is missing the fnameescape() function (pls upgrade to vim 7.2 or later)"
"   call Dret("vimball#Vimball : needs 7.1 with patch 299 or later")
   return
  endif

  if getline(1) !~ '^" Vimball Archiver'
   echoerr "(Vimball) The current file does not appear to be a Vimball!"
"   call Dret("vimball#Vimball")
   return
  endif

  " set up standard settings
  call vimball#SaveSettings()
  let curtabnr    = tabpagenr()
  let vimballfile = expand("%:tr")

  " set up vimball tab
"  call Decho("setting up vimball tab")
  tabnew
  sil! file Vimball
  let vbtabnr= tabpagenr()
  let didhelp= ""

  " go to vim plugin home
  if a:0 > 0
   " let user specify the directory where the vimball is to be unpacked.
   " If, however, the user did not specify a full path, set the home to be below the current directory
   let home= expand(a:1)
   if has("win32") || has("win95") || has("win64") || has("win16")
	if home !~ '^\a:[/\\]'
	 let home= getcwd().'/'.a:1
	endif
   elseif home !~ '^/'
	let home= getcwd().'/'.a:1
   endif
  else
   let home= vimball#VimballHome()
  endif
"  call Decho("home<".home.">")

  " save current directory and remove older same-named vimball, if any
  let curdir = getcwd()
"  call Decho("home<".home.">")
"  call Decho("curdir<".curdir.">")

  call s:ChgDir(home)
  let s:ok_unablefind= 1
  call vimball#RmVimball(vimballfile)
  unlet s:ok_unablefind

  let linenr  = 4
  let filecnt = 0

  " give title to listing of (extracted) files from Vimball Archive
  if a:really
   echohl Title     | echomsg "Vimball Archive"         | echohl None
  else             
   echohl Title     | echomsg "Vimball Archive Listing" | echohl None
   echohl Statement | echomsg "files would be placed under: ".home | echohl None
  endif

  " apportion vimball contents to various files
"  call Decho("exe tabn ".curtabnr)
  exe "tabn ".curtabnr
"  call Decho("linenr=".linenr." line$=".line("$"))
  while 1 < linenr && linenr < line("$")
   let fname   = substitute(getline(linenr),'\t\[\[\[1$','','')
   let fname   = substitute(fname,'\\','/','g')
   let fsize   = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
   let fenc    = substitute(getline(linenr+1),'^\d\+\s*\(\S\{-}\)$','\1','')
   let filecnt = filecnt + 1
"   call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt. " fenc=".fenc)

   if a:really
    echomsg "extracted <".fname.">: ".fsize." lines"
   else
    echomsg "would extract <".fname.">: ".fsize." lines"
   endif
"   call Decho("using L#".linenr.": will extract file<".fname.">")
"   call Decho("using L#".(linenr+1).": fsize=".fsize)

   " Allow AsNeeded/ directory to take place of plugin/ directory
   " when AsNeeded/filename is filereadable or was present in VimballRecord
   if fname =~ '\<plugin/'
   	let anfname= substitute(fname,'\<plugin/','AsNeeded/','')
	if filereadable(anfname) || (exists("s:VBRstring") && s:VBRstring =~# anfname)
"	 call Decho("using anfname<".anfname."> instead of <".fname.">")
	 let fname= anfname
	endif
   endif

   " make directories if they don't exist yet
   if a:really
"    call Decho("making directories if they don't exist yet (fname<".fname.">)")
    let fnamebuf= substitute(fname,'\\','/','g')
	let dirpath = substitute(home,'\\','/','g')
"	call Decho("init: fnamebuf<".fnamebuf.">")
"	call Decho("init: dirpath <".dirpath.">")
    while fnamebuf =~ '/'
     let dirname  = dirpath."/".substitute(fnamebuf,'/.*$','','')
	 let dirpath  = dirname
     let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
"	 call Decho("dirname<".dirname.">")
"	 call Decho("dirpath<".dirpath.">")
     if !isdirectory(dirname)
"      call Decho("making <".dirname.">")
      if exists("g:vimball_mkdir")
	   call system(g:vimball_mkdir." ".shellescape(dirname))
      else
       call mkdir(dirname)
      endif
	  call s:RecordInVar(home,"rmdir('".dirname."')")
     endif
    endwhile
   endif
   call s:ChgDir(home)

   " grab specified qty of lines and place into "a" buffer
   " (skip over path/filename and qty-lines)
   let linenr   = linenr + 2
   let lastline = linenr + fsize - 1
"   call Decho("exe ".linenr.",".lastline."yank a")
   " no point in handling a zero-length file
   if lastline >= linenr
    exe "silent ".linenr.",".lastline."yank a"

    " copy "a" buffer into tab
"   call Decho('copy "a buffer into tab#'.vbtabnr)
    exe "tabn ".vbtabnr
    setlocal ma
    sil! %d
    silent put a
    1
    sil! d

    " write tab to file
    if a:really
     let fnamepath= home."/".fname
"    call Decho("exe w! ".fnameescape(fnamepath))
	if fenc != ""
	 exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
	else
	 exe "silent w! ".fnameescape(fnamepath)
	endif
	echo "wrote ".fnameescape(fnamepath)
	call s:RecordInVar(home,"call delete('".fnamepath."')")
    endif

    " return to tab with vimball
"   call Decho("exe tabn ".curtabnr)
    exe "tabn ".curtabnr

    " set up help if it's a doc/*.txt file
"   call Decho("didhelp<".didhelp."> fname<".fname.">")
    if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
    	let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
"	call Decho("didhelp<".didhelp.">")
    endif
   endif

   " update for next file
"   call Decho("update linenr= [linenr=".linenr."] + [fsize=".fsize."] = ".(linenr+fsize))
   let linenr= linenr + fsize
  endwhile

  " set up help
"  call Decho("about to set up help: didhelp<".didhelp.">")
  if didhelp != ""
   let htpath= home."/".didhelp
"   call Decho("exe helptags ".htpath)
   exe "helptags ".fnameescape(htpath)
   echo "did helptags"
  endif

  " make sure a "Press ENTER..." prompt appears to keep the messages showing!
  while filecnt <= &ch
   echomsg " "
   let filecnt= filecnt + 1
  endwhile

  " record actions in <.VimballRecord>
  call s:RecordInFile(home)

  " restore events, delete tab and buffer
  exe "sil! tabn ".vbtabnr
  setlocal nomod bh=wipe
  exe "sil! tabn ".curtabnr
  exe "sil! tabc! ".vbtabnr
  call vimball#RestoreSettings()
  call s:ChgDir(curdir)

"  call Dret("vimball#Vimball")
endfun

" ---------------------------------------------------------------------
" vimball#RmVimball: remove any files, remove any directories made by any {{{2
"               previous vimball extraction based on a file of the current
"               name.
"  Usage:  RmVimball  (assume current file is a vimball; remove)
"          RmVimball vimballname
fun! vimball#RmVimball(...)
"  call Dfunc("vimball#RmVimball() a:0=".a:0)
  if exists("g:vimball_norecord")
"   call Dret("vimball#RmVimball : (g:vimball_norecord)")
   return
  endif

  if a:0 == 0
   let curfile= expand("%:tr")
"   call Decho("case a:0=0: curfile<".curfile."> (used expand(%:tr))")
  else
   if a:1 =~ '[\/]'
    call vimball#ShowMesg(s:USAGE,"RmVimball vimballname [path]")
"    call Dret("vimball#RmVimball : suspect a:1<".a:1.">")
    return
   endif
   let curfile= a:1
"   call Decho("case a:0=".a:0.": curfile<".curfile.">")
  endif
  if curfile =~ '\.vmb$'
   let curfile= substitute(curfile,'\.vmb','','')
  elseif curfile =~ '\.vba$'
   let curfile= substitute(curfile,'\.vba','','')
  endif
  if a:0 >= 2
   let home= expand(a:2)
  else
   let home= vimball#VimballHome()
  endif
  let curdir = getcwd()
"  call Decho("home   <".home.">")
"  call Decho("curfile<".curfile.">")
"  call Decho("curdir <".curdir.">")

  call s:ChgDir(home)
  if filereadable(".VimballRecord")
"   call Decho(".VimballRecord is readable")
"   call Decho("curfile<".curfile.">")
   keepalt keepjumps 1split 
   sil! keepalt keepjumps e .VimballRecord
   let keepsrch= @/
"   call Decho('search for ^\M'.curfile.'.\m: ')
"   call Decho('search for ^\M'.curfile.'.\m{vba|vmb}: ')
"   call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.{vba|vmb}: ')
   if search('^\M'.curfile."\m: ".'cw')
	let foundit= 1
   elseif search('^\M'.curfile.".\mvmb: ",'cw')
	let foundit= 2
   elseif search('^\M'.curfile.'\m[-0-9.]*\.vmb: ','cw')
	let foundit= 2
   elseif search('^\M'.curfile.".\mvba: ",'cw')
	let foundit= 1
   elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
	let foundit= 1
   else
    let foundit = 0
   endif
   if foundit
	if foundit == 1
	 let exestring  = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
	else
	 let exestring  = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vmb: ','','')
	endif
    let s:VBRstring= substitute(exestring,'call delete(','','g')
    let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
"	call Decho("exe ".exestring)
	sil! keepalt keepjumps exe exestring
	sil! keepalt keepjumps d
	let exestring= strlen(substitute(exestring,'call delete(.\{-})|\=',"D","g"))
"	call Decho("exestring<".exestring.">")
	echomsg "removed ".exestring." files"
   else
    let s:VBRstring= ''
	let curfile    = substitute(curfile,'\.vmb','','')
"    call Decho("unable to find <".curfile."> in .VimballRecord")
	if !exists("s:ok_unablefind")
     call vimball#ShowMesg(s:WARNING,"(RmVimball) unable to find <".curfile."> in .VimballRecord")
	endif
   endif
   sil! keepalt keepjumps g/^\s*$/d
   sil! keepalt keepjumps wq!
   let @/= keepsrch
  endif
  call s:ChgDir(curdir)

"  call Dret("vimball#RmVimball")
endfun

" ---------------------------------------------------------------------
" vimball#Decompress: attempts to automatically decompress vimballs {{{2
fun! vimball#Decompress(fname,...)
"  call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0)

  " decompression:
  if     expand("%") =~ '.*\.gz'  && executable("gunzip")
   " handle *.gz with gunzip
   silent exe "!gunzip ".shellescape(a:fname)
   if v:shell_error != 0
	call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
   endif
   let fname= substitute(a:fname,'\.gz$','','')
   exe "e ".escape(fname,' \')
   if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif

  elseif expand("%") =~ '.*\.gz' && executable("gzip")
   " handle *.gz with gzip -d
   silent exe "!gzip -d ".shellescape(a:fname)
   if v:shell_error != 0
	call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
   endif
   let fname= substitute(a:fname,'\.gz$','','')
   exe "e ".escape(fname,' \')
   if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif

  elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
   " handle *.bz2 with bunzip2
   silent exe "!bunzip2 ".shellescape(a:fname)
   if v:shell_error != 0
	call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
   endif
   let fname= substitute(a:fname,'\.bz2$','','')
   exe "e ".escape(fname,' \')
   if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif

  elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
   " handle *.bz2 with bzip2 -d
   silent exe "!bzip2 -d ".shellescape(a:fname)
   if v:shell_error != 0
	call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
   endif
   let fname= substitute(a:fname,'\.bz2$','','')
   exe "e ".escape(fname,' \')
   if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif

  elseif expand("%") =~ '.*\.zip' && executable("unzip")
   " handle *.zip with unzip
   silent exe "!unzip ".shellescape(a:fname)
   if v:shell_error != 0
	call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
   endif
   let fname= substitute(a:fname,'\.zip$','','')
   exe "e ".escape(fname,' \')
   if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
  endif

  if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif

"  call Dret("Decompress")
endfun

" ---------------------------------------------------------------------
" vimball#ShowMesg: {{{2
fun! vimball#ShowMesg(level,msg)
"  call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")

  let rulerkeep   = &ruler
  let showcmdkeep = &showcmd
  set noruler noshowcmd
  redraw!

  if &fo =~# '[ta]'
   echomsg "***vimball*** ".a:msg
  else
   if a:level == s:WARNING || a:level == s:USAGE
    echohl WarningMsg
   elseif a:level == s:ERROR
    echohl Error
   endif
   echomsg "***vimball*** ".a:msg
   echohl None
  endif

  if a:level != s:USAGE
   call inputsave()|let ok= input("Press <cr> to continue")|call inputrestore()
  endif

  let &ruler   = rulerkeep
  let &showcmd = showcmdkeep

"  call Dret("vimball#ShowMesg")
endfun
" =====================================================================
" s:ChgDir: change directory (in spite of Windoze) {{{2
fun! s:ChgDir(newdir)
"  call Dfunc("ChgDir(newdir<".a:newdir.">)")
  if (has("win32") || has("win95") || has("win64") || has("win16"))
   try
    exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
   catch  /^Vim\%((\a\+)\)\=:E/
    call mkdir(fnameescape(substitute(a:newdir,'/','\\','g')))
    exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
   endtry
  else
   try
    exe 'silent cd '.fnameescape(a:newdir)
   catch  /^Vim\%((\a\+)\)\=:E/
    call mkdir(fnameescape(a:newdir))
    exe 'silent cd '.fnameescape(a:newdir)
   endtry
  endif
"  call Dret("ChgDir : curdir<".getcwd().">")
endfun

" ---------------------------------------------------------------------
" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2
fun! s:RecordInVar(home,cmd)
"  call Dfunc("RecordInVar(home<".a:home."> cmd<".a:cmd.">)")
  if a:cmd =~ '^rmdir'
"   if !exists("s:recorddir")
"    let s:recorddir= substitute(a:cmd,'^rmdir',"call s:Rmdir",'')
"   else
"    let s:recorddir= s:recorddir."|".substitute(a:cmd,'^rmdir',"call s:Rmdir",'')
"   endif
  elseif !exists("s:recordfile")
   let s:recordfile= a:cmd
  else
   let s:recordfile= s:recordfile."|".a:cmd
  endif
"  call Dret("RecordInVar : s:recordfile<".(exists("s:recordfile")? s:recordfile : "")."> s:recorddir<".(exists("s:recorddir")? s:recorddir : "").">")
endfun

" ---------------------------------------------------------------------
" s:RecordInFile: {{{2
fun! s:RecordInFile(home)
"  call Dfunc("s:RecordInFile()")
  if exists("g:vimball_norecord")
"   call Dret("s:RecordInFile : g:vimball_norecord")
   return
  endif

  if exists("s:recordfile") || exists("s:recorddir")
   let curdir= getcwd()
   call s:ChgDir(a:home)
   keepalt keepjumps 1split 

   let cmd= expand("%:tr").": "
"   call Decho("cmd<".cmd.">")

   sil! keepalt keepjumps e .VimballRecord
   setlocal ma
   $
   if exists("s:recordfile") && exists("s:recorddir")
   	let cmd= cmd.s:recordfile."|".s:recorddir
   elseif exists("s:recorddir")
   	let cmd= cmd.s:recorddir
   elseif exists("s:recordfile")
   	let cmd= cmd.s:recordfile
   else
"    call Dret("s:RecordInFile : neither recordfile nor recorddir exist")
	return
   endif
"   call Decho("cmd<".cmd.">")

   " put command into buffer, write .VimballRecord `file
   keepalt keepjumps put=cmd
   sil! keepalt keepjumps g/^\s*$/d
   sil! keepalt keepjumps wq!
   call s:ChgDir(curdir)

   if exists("s:recorddir")
"	call Decho("unlet s:recorddir<".s:recorddir.">")
   	unlet s:recorddir
   endif
   if exists("s:recordfile")
"	call Decho("unlet s:recordfile<".s:recordfile.">")
   	unlet s:recordfile
   endif
  else
"   call Decho("s:record[file|dir] doesn't exist")
  endif

"  call Dret("s:RecordInFile")
endfun

" ---------------------------------------------------------------------
" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2
fun! vimball#VimballHome()
"  call Dfunc("vimball#VimballHome()")
  if exists("g:vimball_home")
   let home= g:vimball_home
  else
   " go to vim plugin home
   for home in split(&rtp,',') + ['']
    if isdirectory(home) && filewritable(home) | break | endif
	let basehome= substitute(home,'[/\\]\.vim$','','')
    if isdirectory(basehome) && filewritable(basehome)
	 let home= basehome."/.vim"
	 break
	endif
   endfor
   if home == ""
    " just pick the first directory
    let home= substitute(&rtp,',.*$','','')
   endif
   if (has("win32") || has("win95") || has("win64") || has("win16"))
    let home= substitute(home,'/','\\','g')
   endif
  endif
  " insure that the home directory exists
"  call Decho("picked home<".home.">")
  if !isdirectory(home)
   if exists("g:vimball_mkdir")
"	call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
"    call Decho("system(".g:vimball_mkdir." ".shellescape(home).")")
    call system(g:vimball_mkdir." ".shellescape(home))
   else
"	call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
    call mkdir(home)
   endif
  endif
"  call Dret("vimball#VimballHome <".home.">")
  return home
endfun

" ---------------------------------------------------------------------
" vimball#SaveSettings: {{{2
fun! vimball#SaveSettings()
"  call Dfunc("SaveSettings()")
  let s:makeep  = getpos("'a")
  let s:regakeep= @a
  if exists("+acd")
   let s:acdkeep = &acd
  endif
  let s:eikeep  = &ei
  let s:fenkeep = &l:fen
  let s:hidkeep = &hidden
  let s:ickeep  = &ic
  let s:lzkeep  = &lz
  let s:pmkeep  = &pm
  let s:repkeep = &report
  let s:vekeep  = &ve
  let s:ffkeep  = &l:ff
  let s:swfkeep = &l:swf
  if exists("+acd")
   setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
  else
   setlocal ei=all ve=all       nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
  endif
  " vimballs should be in unix format
  setlocal ff=unix
"  call Dret("SaveSettings")
endfun

" ---------------------------------------------------------------------
" vimball#RestoreSettings: {{{2
fun! vimball#RestoreSettings()
"  call Dfunc("RestoreSettings()")
  let @a      = s:regakeep
  if exists("+acd")
   let &acd   = s:acdkeep
  endif
  let &l:fen  = s:fenkeep
  let &hidden = s:hidkeep
  let &ic     = s:ickeep
  let &lz     = s:lzkeep
  let &pm     = s:pmkeep
  let &report = s:repkeep
  let &ve     = s:vekeep
  let &ei     = s:eikeep
  let &l:ff   = s:ffkeep
  if s:makeep[0] != 0
   " restore mark a
"   call Decho("restore mark-a: makeep=".string(makeep))
   call setpos("'a",s:makeep)
  endif
  if exists("+acd")
   unlet s:acdkeep
  endif
  unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep s:ffkeep
"  call Dret("RestoreSettings")
endfun

let &cpo = s:keepcpo
unlet s:keepcpo

" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker
PK�j�Z���
�'�' vim80/autoload/netrwSettings.vimnu�[���" netrwSettings.vim: makes netrw settings simpler
" Date:		Dec 30, 2014
" Maintainer:	Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
" Version:	15
" Copyright:    Copyright (C) 1999-2007 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               netrwSettings.vim is provided *as is* and comes with no
"               warranty of any kind, either expressed or implied. By using
"               this plugin, you agree that in no event will the copyright
"               holder be liable for any damages resulting from the use
"               of this software.
"
" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
"                synagogues, preaching the gospel of the kingdom, and healing
"                every disease and every sickness among the people.
" Load Once: {{{1
if exists("g:loaded_netrwSettings") || &cp
  finish
endif
let g:loaded_netrwSettings = "v15"
if v:version < 700
 echohl WarningMsg
 echo "***warning*** this version of netrwSettings needs vim 7.0"
 echohl Normal
 finish
endif

" ---------------------------------------------------------------------
" NetrwSettings: {{{1
fun! netrwSettings#NetrwSettings()
  " this call is here largely just to insure that netrw has been loaded
  call netrw#SavePosn()
  if !exists("g:loaded_netrw")
   echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
   return
  endif

  above wincmd s
  enew
  setlocal noswapfile bh=wipe
  set ft=vim
  file Netrw\ Settings

  " these variables have the following default effects when they don't
  " exist (ie. have not been set by the user in his/her .vimrc)
  if !exists("g:netrw_liststyle")
   let g:netrw_liststyle= 0
   let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
  endif
  if !exists("g:netrw_silent")
   let g:netrw_silent= 0
  endif
  if !exists("g:netrw_use_nt_rcp")
   let g:netrw_use_nt_rcp= 0
  endif
  if !exists("g:netrw_ftp")
   let g:netrw_ftp= 0
  endif
  if !exists("g:netrw_ignorenetrc")
   let g:netrw_ignorenetrc= 0
  endif

  put ='+ ---------------------------------------------'
  put ='+  NetrwSettings:  by Charles E. Campbell'
  put ='+ Press <F1> with cursor atop any line for help'
  put ='+ ---------------------------------------------'
  let s:netrw_settings_stop= line(".")

  put =''
  put ='+ Netrw Protocol Commands'
  put = 'let g:netrw_dav_cmd           = '.g:netrw_dav_cmd
  put = 'let g:netrw_fetch_cmd         = '.g:netrw_fetch_cmd
  put = 'let g:netrw_ftp_cmd           = '.g:netrw_ftp_cmd
  put = 'let g:netrw_http_cmd          = '.g:netrw_http_cmd
  put = 'let g:netrw_rcp_cmd           = '.g:netrw_rcp_cmd
  put = 'let g:netrw_rsync_cmd         = '.g:netrw_rsync_cmd
  put = 'let g:netrw_scp_cmd           = '.g:netrw_scp_cmd
  put = 'let g:netrw_sftp_cmd          = '.g:netrw_sftp_cmd
  put = 'let g:netrw_ssh_cmd           = '.g:netrw_ssh_cmd
  let s:netrw_protocol_stop= line(".")
  put = ''

  put ='+Netrw Transfer Control'
  put = 'let g:netrw_cygwin            = '.g:netrw_cygwin
  put = 'let g:netrw_ftp               = '.g:netrw_ftp
  put = 'let g:netrw_ftpmode           = '.g:netrw_ftpmode
  put = 'let g:netrw_ignorenetrc       = '.g:netrw_ignorenetrc
  put = 'let g:netrw_sshport           = '.g:netrw_sshport
  put = 'let g:netrw_silent            = '.g:netrw_silent
  put = 'let g:netrw_use_nt_rcp        = '.g:netrw_use_nt_rcp
  put = 'let g:netrw_win95ftp          = '.g:netrw_win95ftp
  let s:netrw_xfer_stop= line(".")
  put =''
  put ='+ Netrw Messages'
  put ='let g:netrw_use_errorwindow    = '.g:netrw_use_errorwindow

  put = ''
  put ='+ Netrw Browser Control'
  if exists("g:netrw_altfile")
   put = 'let g:netrw_altfile   = '.g:netrw_altfile
  else
   put = 'let g:netrw_altfile   = 0'
  endif
  put = 'let g:netrw_alto              = '.g:netrw_alto
  put = 'let g:netrw_altv              = '.g:netrw_altv
  put = 'let g:netrw_banner            = '.g:netrw_banner
  if exists("g:netrw_bannerbackslash")
   put = 'let g:netrw_bannerbackslash   = '.g:netrw_bannerbackslash
  else
   put = '\" let g:netrw_bannerbackslash   = (not defined)'
  endif
  put = 'let g:netrw_browse_split      = '.g:netrw_browse_split
  if exists("g:netrw_browsex_viewer")
   put = 'let g:netrw_browsex_viewer   = '.g:netrw_browsex_viewer
  else
   put = '\" let g:netrw_browsex_viewer   = (not defined)'
  endif
  put = 'let g:netrw_compress          = '.g:netrw_compress
  if exists("g:Netrw_corehandler")
   put = 'let g:Netrw_corehandler      = '.g:Netrw_corehandler
  else
   put = '\" let g:Netrw_corehandler      = (not defined)'
  endif
  put = 'let g:netrw_ctags             = '.g:netrw_ctags
  put = 'let g:netrw_cursor            = '.g:netrw_cursor
  let decompressline= line("$")
  put = 'let g:netrw_decompress        = '.string(g:netrw_decompress)
  if exists("g:netrw_dynamic_maxfilenamelen")
   put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
  else
   put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
  endif
  put = 'let g:netrw_dirhistmax        = '.g:netrw_dirhistmax
  put = 'let g:netrw_errorlvl          = '.g:netrw_errorlvl
  put = 'let g:netrw_fastbrowse        = '.g:netrw_fastbrowse
  let fnameescline= line("$")
  put = 'let g:netrw_fname_escape      = '.string(g:netrw_fname_escape)
  put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
  put = 'let g:netrw_ftp_list_cmd      = '.g:netrw_ftp_list_cmd
  put = 'let g:netrw_ftp_sizelist_cmd  = '.g:netrw_ftp_sizelist_cmd
  put = 'let g:netrw_ftp_timelist_cmd  = '.g:netrw_ftp_timelist_cmd
  let globescline= line("$")
  put = 'let g:netrw_glob_escape       = '.string(g:netrw_glob_escape)
  put = 'let g:netrw_hide              = '.g:netrw_hide
  if exists("g:netrw_home")
   put = 'let g:netrw_home              = '.g:netrw_home
  else
   put = '\" let g:netrw_home              = (not defined)'
  endif
  put = 'let g:netrw_keepdir           = '.g:netrw_keepdir
  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
  put = 'let g:netrw_list_hide         = '.g:netrw_list_hide
  put = 'let g:netrw_liststyle         = '.g:netrw_liststyle
  put = 'let g:netrw_localcopycmd      = '.g:netrw_localcopycmd
  put = 'let g:netrw_localmkdir        = '.g:netrw_localmkdir
  put = 'let g:netrw_localmovecmd      = '.g:netrw_localmovecmd
  put = 'let g:netrw_localrmdir        = '.g:netrw_localrmdir
  put = 'let g:netrw_maxfilenamelen    = '.g:netrw_maxfilenamelen
  put = 'let g:netrw_menu              = '.g:netrw_menu
  put = 'let g:netrw_mousemaps         = '.g:netrw_mousemaps
  put = 'let g:netrw_mkdir_cmd         = '.g:netrw_mkdir_cmd
  if exists("g:netrw_nobeval")
   put = 'let g:netrw_nobeval           = '.g:netrw_nobeval
  else
   put = '\" let g:netrw_nobeval           = (not defined)'
  endif
  put = 'let g:netrw_remote_mkdir      = '.g:netrw_remote_mkdir
  put = 'let g:netrw_preview           = '.g:netrw_preview
  put = 'let g:netrw_rename_cmd        = '.g:netrw_rename_cmd
  put = 'let g:netrw_retmap            = '.g:netrw_retmap
  put = 'let g:netrw_rm_cmd            = '.g:netrw_rm_cmd
  put = 'let g:netrw_rmdir_cmd         = '.g:netrw_rmdir_cmd
  put = 'let g:netrw_rmf_cmd           = '.g:netrw_rmf_cmd
  put = 'let g:netrw_sort_by           = '.g:netrw_sort_by
  put = 'let g:netrw_sort_direction    = '.g:netrw_sort_direction
  put = 'let g:netrw_sort_options      = '.g:netrw_sort_options
  put = 'let g:netrw_sort_sequence     = '.g:netrw_sort_sequence
  put = 'let g:netrw_servername        = '.g:netrw_servername
  put = 'let g:netrw_special_syntax    = '.g:netrw_special_syntax
  put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
  put = 'let g:netrw_ssh_cmd           = '.g:netrw_ssh_cmd
  put = 'let g:netrw_scpport           = '.g:netrw_scpport
  put = 'let g:netrw_sepchr            = '.g:netrw_sepchr
  put = 'let g:netrw_sshport           = '.g:netrw_sshport
  put = 'let g:netrw_timefmt           = '.g:netrw_timefmt
  let tmpfileescline= line("$")
  put ='let g:netrw_tmpfile_escape...'
  put = 'let g:netrw_use_noswf         = '.g:netrw_use_noswf
  put = 'let g:netrw_xstrlen           = '.g:netrw_xstrlen
  put = 'let g:netrw_winsize           = '.g:netrw_winsize

  put =''
  put ='+ For help, place cursor on line and press <F1>'

  1d
  silent %s/^+/"/e
  res 99
  silent %s/= \([^0-9].*\)$/= '\1'/e
  silent %s/= $/= ''/e
  1

  call setline(decompressline,"let g:netrw_decompress        = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
  call setline(fnameescline,  "let g:netrw_fname_escape      = '".escape(g:netrw_fname_escape,"'")."'")
  call setline(globescline,   "let g:netrw_glob_escape       = '".escape(g:netrw_glob_escape,"'")."'")
  call setline(tmpfileescline,"let g:netrw_tmpfile_escape    = '".escape(g:netrw_tmpfile_escape,"'")."'")

  set nomod

  nmap <buffer> <silent> <F1>                       :call NetrwSettingHelp()<cr>
  nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
  let tmpfile= tempname()
  exe 'au BufWriteCmd	Netrw\ Settings	silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
endfun

" ---------------------------------------------------------------------
" NetrwSettingHelp: {{{2
fun! NetrwSettingHelp()
"  call Dfunc("NetrwSettingHelp()")
  let curline = getline(".")
  if curline =~ '='
   let varhelp = substitute(curline,'^\s*let ','','e')
   let varhelp = substitute(varhelp,'\s*=.*$','','e')
"   call Decho("trying help ".varhelp)
   try
    exe "he ".varhelp
   catch /^Vim\%((\a\+)\)\=:E149/
   	echo "***sorry*** no help available for <".varhelp.">"
   endtry
  elseif line(".") < s:netrw_settings_stop
   he netrw-settings
  elseif line(".") < s:netrw_protocol_stop
   he netrw-externapp
  elseif line(".") < s:netrw_xfer_stop
   he netrw-variables
  else
   he netrw-browse-var
  endif
"  call Dret("NetrwSettingHelp")
endfun

" ---------------------------------------------------------------------
" Modelines: {{{1
" vim:ts=8 fdm=marker
PK�j�Z�I(]GGvim80/autoload/xml/xsl.vimnu�[���" Author: Mikolaj Machowski, Thomas Bartel
" Last change: 2007 May 8
let g:xmldata_xsl = {
	\ 'apply-imports' : [[], {}],
    \ 'apply-templates' : [['sort', 'with-param'], {'select' : [], 'mode' : []}],
    \ 'attribute' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'namespace' : []}],
    \ 'attribute-set' : [['attribute'], {'name' : [], 'use-attribute-sets' : []}],
    \ 'call-template' : [['with-param'], {'name' : []}],
    \ 'choose' : [['when', 'otherwise'], {}],
    \ 'comment' : [[], {}],
    \ 'copy' : [[], {'use-attribute-sets' : []}],
    \ 'copy-of' : [[], {'select' : []}],
    \ 'decimal-format' : [[], {'name' : [], 'decimal-separator' : [], 'grouping-separator' : [], 'infinity' : [], 'minus-sign' : [], 'NaN' : [], 'percent' : [], 'per-mille' : [], 'zero-digit' : [], 'digit' : [], 'pattern-separator' : []}],
    \ 'element' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'namespace' : [], 'use-attribute-sets' : []}],
    \ 'fallback' : [[], {}],
    \ 'for-each' : [['sort'], {'select' : []}],
    \ 'if' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'test' : []}],
    \ 'import' : [[], {'href' : []}],
    \ 'include' : [[], {'href' : []}],
    \ 'key' : [[], {'name' : [], 'match' : [], 'use' : []}],
    \ 'message' : [[], {'terminate' : ['yes', 'no']}],
    \ 'namespace-alias' : [[], {'stylesheet-prefix' : ['#default'], 'result-prefix' : ['#default']}],
    \ 'number' : [[], {'level' : ['single', 'multiple', 'any'], 'count' : [], 'from' : [], 'value' : [], 'format' : [], 'lang' : [], 'letter-value' : ['alphabetic', 'traditional'], 'grouping-separator' : [], 'grouping-size' : []}],
    \ 'otherwise' : [[], {}],
    \ 'output' : [[], {'method' : ['xml', 'html', 'text'], 'version' : [], 'encoding' : [], 'omit-xml-declaration' : ['yes', 'no'], 'standalone' : ['yes', 'no'], 'doctype-public' : [], 'doctype-system' : [], 'cdata-section-elements' : [], 'indent' : ['yes', 'no'], 'media-type' : []}],
    \ 'param' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'select' : []}],
    \ 'preserve-space' : [[], {'elements' : []}],
    \ 'processing-instructionruction' : [[], {'name' : []}],
    \ 'sort' : [[], {'select' : [], 'lang' : [], 'data-type' : ['text', 'number'], 'order' : ['ascending', 'descending'], 'case-order' : ['upper-first', 'lower-first']}],
    \ 'strip-space' : [[], {'elements' : []}],
    \ 'stylesheet' : [['import', 'attribute-set', 'decimal-format', 'include', 'key', 'namespace-alias', 'output', 'param', 'preserve-space', 'strip-space', 'template'], {'id' : [], 'extension-element-prefixes' : [], 'version' : []}],
    \ 'template' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'match' : [], 'name' : [], 'priority' : [], 'mode' : []}],
    \ 'text' : [[], {'disable-output-escaping' : ['yes', 'no']}],
    \ 'transform' : [['import', 'attribute-set', 'decimal-format', 'include', 'key', 'namespace-alias', 'output', 'param', 'preserve-space', 'strip-space', 'template'], {'id' : [], 'extension-element-prefixes' : [], 'exclude-result-prefixes' : [], 'version' : []}],
    \ 'value-of' : [[], {'select' : [], 'disable-output-escaping' : ['yes', 'no']}],
    \ 'variable' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'select' : []}],
    \ 'when' : [[], {'test' : []}],
    \ 'with-param' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'select' : []}]}
PK�j�Z�P�j�j�vim80/autoload/xml/html401f.vimnu�[���let g:xmldata_html401t = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'p'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'applet': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'nohref': ['BOOL'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'b': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'target': [], 'href': []}
\ ],
\ 'basefont': [
\ [],
\ { 'size': [], 'face': [], 'color': [], 'id': []}
\ ],
\ 'bdo': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'big': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del'],
\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'hr', 'table', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'center': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dir': [
\ ['li'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'font': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'POST'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h2': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h3': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h4': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h5': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h6': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'head': [
\ ['title', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'noshade': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'html': [
\ ['head', 'frameset'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'frameset': [
\ ['frameset', 'frame', 'noframes'],
\ { 'rows': [], 'cols': [], 'id': [], 'style': [], 'onunload': [], 'onload': [], 'class': [], 'title': []}
\ ],
\ 'frame': [
\ [],
\ { 'scrolling': ['auto', 'yes', 'no', 'auto'], 'noresize': ['BOOL'], 'marginwidth': [], 'id': [], 'marginheight': [], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'i': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'iframe': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'ismap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'tabindex': [], 'accept': [], 'alt': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'isindex': [
\ [],
\ { 'id': [], 'lang': [], 'prompt': [], 'class': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': []}
\ ],
\ 'kbd': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'label': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'legend': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'menu': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'noframes': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'REF', 'OBJECT']}
\ ],
\ 'pre': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'br', 'script', 'map', 'q', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'width': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'q': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 's': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'samp': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'script': [
\ [],
\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['BOOL'], 'language': []}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'span': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strike': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strong': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'style': [
\ [],
\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'sub': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'sup': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'lang': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'tt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'u': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'var': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'basefont': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'isindex': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z�>���G�Gvim80/autoload/xml/html32.vimnu�[���let g:xmldata_html32 = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Aring', 'Atilde', 'Auml', 'Ccedil', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Euml', 'Iacute', 'Icirc', 'Igrave', 'Iuml', 'Ntilde', 'Oacute', 'Ocirc', 'Ograve', 'Oslash', 'Otilde', 'Ouml', 'THORN', 'Uacute', 'Ucirc', 'Ugrave', 'Uuml', 'Yacute', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'amp', 'aring', 'atilde', 'auml', 'brvbar', 'ccedil', 'cedil', 'cent', 'copy', 'curren', 'deg', 'divide', 'eacute', 'ecirc', 'egrave', 'eth', 'euml', 'frac12', 'frac14', 'frac34', 'gt', 'iacute', 'icirc', 'iexcl', 'igrave', 'iquest', 'iuml', 'laquo', 'lt', 'macr', 'micro', 'middot', 'nbsp', 'not', 'ntilde', 'oacute', 'ocirc', 'ograve', 'ordf', 'ordm', 'oslash', 'otilde', 'ouml', 'para', 'plusmn', 'pound', 'raquo', 'reg', 'sect', 'shy', 'sup1', 'sup2', 'sup3', 'szlig', 'thorn', 'times', 'uacute', 'ucirc', 'ugrave', 'uml', 'uuml', 'yacute', 'yen', 'yuml'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'rel': [], 'href': [], 'name': [], 'rev': [], 'title': []}
\ ],
\ 'address': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p'],
\ { }
\ ],
\ 'applet': [
\ ['param', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'width': [], 'vspace': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'height': [], 'hspace': [], 'codebase': [], 'code': []}
\ ],
\ 'area': [
\ [],
\ { 'alt': [], 'coords': [], 'nohref': ['BOOL'], 'href': [], 'shape': ['rect', 'circle', 'poly']}
\ ],
\ 'b': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'base': [
\ [],
\ { 'href': []}
\ ],
\ 'basefont': [
\ [],
\ { 'size': []}
\ ],
\ 'big': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'blockquote': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table', 'address'],
\ { }
\ ],
\ 'body': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table', 'address'],
\ { 'link': [], 'vlink': [], 'background': [], 'alink': [], 'bgcolor': [], 'text': []}
\ ],
\ 'br': [
\ [],
\ { 'clear': ['none', 'left', 'all', 'right', 'none']}
\ ],
\ 'caption': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['top', 'bottom']}
\ ],
\ 'center': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table', 'address'],
\ { }
\ ],
\ 'cite': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'code': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'dd': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table'],
\ { }
\ ],
\ 'dfn': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'dir': [
\ ['li'],
\ { 'compact': ['BOOL']}
\ ],
\ 'div': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table', 'address'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'compact': ['BOOL']}
\ ],
\ 'dt': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'em': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'font': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'size': [], 'color': []}
\ ],
\ 'form': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'isindex', 'hr', 'table', 'address'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'action': [], 'method': ['GET', 'POST']}
\ ],
\ 'h1': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'h2': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'h3': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'h4': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'h5': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'h6': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'head': [
\ ['title', 'isindex', 'base', 'script', 'style', 'meta', 'link'],
\ { }
\ ],
\ 'hr': [
\ [],
\ { 'width': [], 'align': ['left', 'right', 'center'], 'size': [], 'noshade': ['BOOL']}
\ ],
\ 'html': [
\ ['head', 'body', 'plaintext'],
\ { 'version': ['-//W3C//DTD HTML 3.2 Final//EN']}
\ ],
\ 'i': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'vspace': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'usemap': [], 'ismap': ['BOOL'], 'src': [], 'height': [], 'border': [], 'hspace': []}
\ ],
\ 'input': [
\ [],
\ { 'maxlength': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'size': [], 'checked': ['BOOL'], 'type': ['TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE']}
\ ],
\ 'isindex': [
\ [],
\ { 'prompt': []}
\ ],
\ 'kbd': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'li': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table'],
\ { 'value': [], 'type': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'href': [], 'rev': [], 'title': []}
\ ],
\ 'listing': [
\ [],
\ { }
\ ],
\ 'map': [
\ ['area'],
\ { 'name': []}
\ ],
\ 'menu': [
\ ['li'],
\ { 'compact': ['BOOL']}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'name': [], 'content': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'compact': ['BOOL'], 'type': [], 'start': []}
\ ],
\ 'option': [
\ [''],
\ { 'value': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'align': ['left', 'center', 'right']}
\ ],
\ 'param': [
\ [],
\ { 'value': [], 'name': []}
\ ],
\ 'plaintext': [
\ [],
\ { }
\ ],
\ 'pre': [
\ ['tt', 'i', 'b', 'u', 'strike', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'applet', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { 'width': ['#implied']}
\ ],
\ 'samp': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'script': [
\ [],
\ { }
\ ],
\ 'select': [
\ ['option'],
\ { 'name': [], 'size': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'strike': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'strong': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'style': [
\ [],
\ { }
\ ],
\ 'sub': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'sup': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'table': [
\ ['caption', 'tr'],
\ { 'width': [], 'align': ['left', 'center', 'right'], 'border': [], 'cellspacing': [], 'cellpadding': []}
\ ],
\ 'td': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table', 'address'],
\ { 'width': [], 'align': ['left', 'center', 'right'], 'nowrap': ['BOOL'], 'valign': ['top', 'middle', 'bottom'], 'height': [], 'rowspan': ['1'], 'colspan': ['1']}
\ ],
\ 'textarea': [
\ [''],
\ { 'name': [], 'rows': [], 'cols': []}
\ ],
\ 'th': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea', 'p', 'ul', 'ol', 'dir', 'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote', 'form', 'isindex', 'hr', 'table', 'address'],
\ { 'width': [], 'align': ['left', 'center', 'right'], 'nowrap': ['BOOL'], 'valign': ['top', 'middle', 'bottom'], 'height': [], 'rowspan': ['1'], 'colspan': ['1']}
\ ],
\ 'title': [
\ [''],
\ { }
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'align': ['left', 'center', 'right'], 'valign': ['top', 'middle', 'bottom']}
\ ],
\ 'tt': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'u': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'ul': [
\ ['li'],
\ { 'compact': ['BOOL'], 'type': ['disc', 'square', 'circle']}
\ ],
\ 'var': [
\ ['tt', 'i', 'b', 'u', 'strike', 'big', 'small', 'sub', 'sup', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'a', 'img', 'applet', 'font', 'basefont', 'br', 'script', 'map', 'input', 'select', 'textarea'],
\ { }
\ ],
\ 'xmp': [
\ [],
\ { }
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'basefont': ['/>', ''],
\ 'br': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'isindex': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z�#�
�
�vim80/autoload/xml/html40f.vimnu�[���let g:xmldata_html40t = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'p'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'applet': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'nohref': ['BOOL'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'b': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'target': [], 'href': []}
\ ],
\ 'basefont': [
\ [],
\ { 'size': [], 'face': [], 'color': [], 'id': []}
\ ],
\ 'bdo': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'big': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del'],
\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'hr', 'table', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'center': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dir': [
\ ['li'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'font': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'POST'], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h2': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h3': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h4': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h5': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h6': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'head': [
\ ['title', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'width': [], 'ondblclick': [], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'noshade': ['BOOL'], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'html': [
\ ['head', 'frameset'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'frameset': [
\ ['frameset', 'frame', 'noframes'],
\ { 'rows': [], 'cols': [], 'id': [], 'style': [], 'onunload': [], 'onload': [], 'class': [], 'title': []}
\ ],
\ 'frame': [
\ [],
\ { 'scrolling': ['auto', 'yes', 'no', 'auto'], 'noresize': ['BOOL'], 'marginwidth': [], 'id': [], 'marginheight': [], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'i': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'iframe': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'alt': [], 'tabindex': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'isindex': [
\ [],
\ { 'id': [], 'lang': [], 'prompt': [], 'class': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': []}
\ ],
\ 'kbd': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'label': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'legend': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'menu': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'noframes': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'REF', 'OBJECT']}
\ ],
\ 'pre': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'br', 'script', 'map', 'q', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'width': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'q': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 's': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'samp': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'script': [
\ [],
\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['BOOL'], 'language': []}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'span': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strike': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strong': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'style': [
\ [],
\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'sub': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'sup': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'lang': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'tt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'u': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'var': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'basefont': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'isindex': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z��^���vim80/autoload/xml/xhtml11.vimnu�[���let g:xmldata_xhtml11 = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'coords': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'onclick': [], 'class': [], 'title': []}
\ ],
\ 'acronym': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'area': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'nohref': ['BOOL'], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'b': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'href': []}
\ ],
\ 'bdo': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'id': [], 'style': [], 'xml:lang': [], 'class': [], 'title': []}
\ ],
\ 'big': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'br': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'ins', 'del', 'script', 'noscript', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'img', 'map', 'object'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'form': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'ins', 'del', 'script', 'noscript', 'fieldset'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'enctype': ['application/x-www-form-urlencoded'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'method': ['get', 'post'], 'onmouseover': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h2': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h3': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h4': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h5': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h6': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'head': [
\ ['script', 'style', 'meta', 'link', 'object', 'title', 'script', 'style', 'meta', 'link', 'object', 'base', 'script', 'style', 'meta', 'link', 'object', 'base', 'script', 'style', 'meta', 'link', 'object', 'title', 'script', 'style', 'meta', 'link', 'object'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'profile': [''], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'html': [
\ ['head', 'body'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'version': ['-//W3C//DTD XHTML 1.1//EN'], 'xml:lang': []}
\ ],
\ 'i': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'ismap': ['BOOL']}
\ ],
\ 'input': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onkeyup': [], 'onmouseup': [], 'id': [], 'maxlength': [], 'onmouseover': [], 'alt': [], 'tabindex': [], 'accept': [], 'value': [], 'src': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'type': ['text', 'password', 'checkbox', 'radio', 'submit', 'reset', 'file', 'hidden', 'image', 'button'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'ins': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'kbd': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'label': [
\ ['input', 'select', 'textarea', 'button', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'bdo', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'a', 'img', 'map', 'object', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'accesskey': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'for': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'legend': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'accesskey': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'li': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'link': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'rel': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'charset': [], 'xml:lang': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': []}
\ ],
\ 'map': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'ins', 'del', 'script', 'noscript', 'area'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'meta': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'http-equiv': [], 'content': [], 'dir': ['ltr', 'rtl'], 'name': [], 'scheme': [], 'xml:lang': []}
\ ],
\ 'noscript': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'object': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript', 'param'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'archive': [], 'standby': [], 'tabindex': [], 'classid': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'data': [], 'xml:lang': [], 'height': [], 'codetype': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': []}
\ ],
\ 'option': [
\ [''],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'value': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'param': [
\ [],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'id': [], 'value': [], 'name': [], 'valuetype': ['data', 'ref', 'object'], 'type': []}
\ ],
\ 'pre': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'bdo', 'a', 'script', 'map'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:space': ['preserve'], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'q': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'rb': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'rbc': [
\ ['rb'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'rp': [
\ [''],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'rt': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'rtc': [
\ ['rt'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'ruby': [
\ ['rb', 'rt', 'rp', 'rt', 'rp', 'rbc', 'rtc'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'samp': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'script': [
\ [''],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'defer': ['BOOL'], 'src': [], 'charset': [], 'xml:space': ['preserve'], 'type': ['text/javascript']}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'span': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'strong': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'style': [
\ [''],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'media': [], 'xml:lang': [], 'xml:space': ['preserve'], 'title': [], 'type': ['text/css']}
\ ],
\ 'sub': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'sup': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody', 'tr'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'width': [], 'ondblclick': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'summary': [], 'onmouseup': [], 'cellspacing': [], 'id': [], 'onmouseover': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'border': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'td': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'headers': [], 'ondblclick': [], 'axis': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'rowspan': ['1'], 'colspan': ['1'], 'onmouseup': [], 'id': [], 'charoff': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'rows': [], 'dir': ['ltr', 'rtl'], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'th': [
\ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dl', 'p', 'div', 'pre', 'blockquote', 'address', 'hr', 'table', 'form', 'fieldset', 'br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'headers': [], 'ondblclick': [], 'axis': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'rowspan': ['1'], 'colspan': ['1'], 'onmouseup': [], 'id': [], 'charoff': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'title': [
\ [''],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'tt': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'var': [
\ ['br', 'span', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'tt', 'i', 'b', 'big', 'small', 'sub', 'sup', 'bdo', 'a', 'img', 'map', 'object', 'input', 'select', 'textarea', 'label', 'button', 'ruby', 'ins', 'del', 'script', 'noscript'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z��B�B�vim80/autoload/xml/html401s.vimnu�[���let g:xmldata_html401s = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'name': [], 'style': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'nohref': ['BOOL'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'b': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'href': []}
\ ],
\ 'bdo': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'big': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'script', 'ins', 'del'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'hr', 'table', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'hr', 'table', 'fieldset', 'address', 'script'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'POST'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h2': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h3': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h4': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h5': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h6': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'head': [
\ ['title', 'base', 'script', 'style', 'meta', 'link', 'object'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'html': [
\ ['head', 'body'],
\ { 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'i': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'alt': [], 'lang': [], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'height': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'ismap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'alt': [], 'tabindex': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'kbd': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'label': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'legend': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'archive': [], 'standby': [], 'tabindex': [], 'classid': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'codetype': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'REF', 'OBJECT']}
\ ],
\ 'pre': [
\ ['tt', 'i', 'b', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'br', 'script', 'map', 'q', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'q': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'samp': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'script': [
\ [],
\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['BOOL']}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'span': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strong': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'style': [
\ [],
\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'sub': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'sup': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'lang': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'tt': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'var': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z�S�����vim80/autoload/xml/html401t.vimnu�[���let g:xmldata_html401t = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'p'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'applet': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'nohref': ['BOOL'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'b': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'target': [], 'href': []}
\ ],
\ 'basefont': [
\ [],
\ { 'size': [], 'face': [], 'color': [], 'id': []}
\ ],
\ 'bdo': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'big': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del'],
\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'hr', 'table', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'center': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dir': [
\ ['li'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'font': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'POST'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h2': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h3': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h4': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h5': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h6': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'head': [
\ ['title', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'noshade': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'html': [
\ ['head', 'body'],
\ { 'dir': ['ltr', 'rtl'], 'lang': [], 'version': ['-//W3C//DTD HTML 4.01 Transitional//EN']}
\ ],
\ 'i': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'iframe': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'ismap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'tabindex': [], 'accept': [], 'alt': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'isindex': [
\ [],
\ { 'id': [], 'lang': [], 'prompt': [], 'class': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': []}
\ ],
\ 'kbd': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'label': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'legend': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'menu': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'noframes': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'REF', 'OBJECT']}
\ ],
\ 'pre': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'br', 'script', 'map', 'q', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'width': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'q': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 's': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'samp': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'script': [
\ [],
\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['BOOL'], 'language': []}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'span': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strike': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strong': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'style': [
\ [],
\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'sub': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'sup': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'lang': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'tt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'u': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'var': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'basefont': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'isindex': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z�1u���vim80/autoload/xml/xsd.vimnu�[���" Author: Thomas Barthel
" Last change: 2007 May 8
let g:xmldata_xsd = {
	\ 'schema': [
		\ [ 'include', 'import', 'redefine', 'annotation', 'simpleType', 'complexType', 'element', 'attribute', 'attributeGroup', 'group', 'notation', 'annotation'],
		\ { 'targetNamespace' : [], 'version' : [], 'xmlns' : [], 'finalDefault' : [], 'blockDefault' : [], 'id' : [], 'elementFormDefault' : [], 'attributeFormDefault' : [], 'xml:lang' : [] }],
	\ 'redefine' : [
		\ ['annotation', 'simpleType', 'complexType', 'attributeGroup', 'group'],
		\ {'schemaLocation' : [], 'id' : []} ],
	\ 'include' : [
		\ ['annotation'],
		\ {'namespace' : [], 'id' : []} ],
	\ 'import' : [
		\ ['annotation'],
		\ {'namespace' : [], 'schemaLocation' : [], 'id' : []} ],
	\ 'complexType' : [
		\ ['annotation', 'simpleContent', 'complexContent', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
		\ {'name' : [], 'id' : [], 'abstract' : [], 'final' : [], 'block' : [], 'mixed' : []} ],
	\ 'complexContent' : [
		\ ['annotation', 'restriction', 'extension'],
		\ {'mixed' : [], 'id' : [] } ],
	\ 'simpleType' : [
		\ ['annotation', 'restriction', 'list', 'union'],
		\ {'name' : [], 'final' : [], 'id' : []} ],
	\ 'simpleContent' : [
		\ ['annotation', 'restriction', 'extension'],
		\ {'id' : []} ],
	\ 'element' : [
		\ ['annotation', 'complexType', 'simpleType', 'unique', 'key', 'keyref'],
		\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'minOccurs' : [], 'maxOccurs' : [], 'nillable' : [], 'substitutionGroup' : [], 'abstract' : [], 'final' : [], 'block' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
	\ 'attribute' : [
		\ ['annotation', 'simpleType'],
		\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'use' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
	\ 'group' : [
		\ ['annotation', 'all', 'choice', 'sequence'],
		\ {'name' : [], 'ref' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
	\ 'choice' : [
		\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
		\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
	\ 'sequence' : [
		\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
		\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
	\ 'all' : [
		\ ['annotation', 'element'],
		\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
	\ 'any' : [
		\ ['annotation'],
		\ {'namespace' : [], 'processContents' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
	\ 'unique' : [
		\ ['annotation', 'selector', 'field'],
		\ {'name' : [],  'id' : []} ],
	\ 'key' : [
		\ ['annotation', 'selector', 'field'],
		\ {'name' : [],  'id' : []} ],
	\ 'keyref' : [
		\ ['annotation', 'selector', 'field'],
		\ {'name' : [], 'refer' : [], 'id' : []} ],
	\ 'selector' : [
		\ ['annotation'],
		\ {'xpath' : [],  'id' : []} ],
	\ 'field' : [
		\ ['annotation'],
		\ {'xpath' : [],  'id' : []} ],
	\ 'restriction' : [
		\ ['annotation', 'simpleType', 'minExclusive', 'maxExclusive', 'minInclusive', 'maxInclusive', 'totalDigits', 'fractionDigits', 'length', 'minLength', 'maxLength', 'enumeration', 'whiteSpace', 'pattern'],
		\ {'base' : [], 'id' : []} ],
	\ 'minExclusive' : [
		\ ['annotation'],
		\ {'value' : [], 'id' : [], 'fixed' : []}],
	\ 'maxExclusive' : [
		\ ['annotation'],
		\ {'value' : [], 'id' : [], 'fixed' : []}],
	\ 'minInclusive' : [
		\ ['annotation'],
		\ {'value' : [], 'id' : [], 'fixed' : []}],
	\ 'maxInclusive' : [
		\ ['annotation'],
		\ {'value' : [], 'id' : [], 'fixed' : []}],
	\ 'totalDigits' : [		
	    \ ['annotation'],
		\ {'value' : [], 'id' : [], 'fixed' : []}],
	\ 'fractionDigits' : [
		\ ['annotation'],
		\ {'value' : [], 'id' : [], 'fixed' : []}],
     \ 'length' : [
     	\ ['annotation'],
     	\ {'value' : [], 'id' : [], 'fixed' : []}],
     \ 'minLength' : [
     	\ ['annotation'],
     	\ {'value' : [], 'id' : [], 'fixed' : []}],
     \ 'maxLength' : [
     	\ ['annotation'],
     	\ {'value' : [], 'id' : [], 'fixed' : []}],
     \ 'enumeration' : [
     	\ ['annotation'],
     	\ {'value' : [], 'id' : []}],
     \ 'whiteSpace' : [
     	\ ['annotation'],
     	\ {'value' : [], 'id' : [], 'fixed' : []}],
     \ 'pattern' : [
     	\ ['annotation'],
     	\ {'value' : [], 'id' : []}],
     \ 'extension' : [
     	\ ['annotation', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
		\ {'base' : [], 'id' : []} ],
	 \ 'attributeGroup' : [
	 	\ ['annotation', 'attribute', 'attributeGroup', 'anyAttribute'],
	 	\ {'name' : [], 'id' : [], 'ref' : []} ],
	 \ 'anyAttribute' : [
	 	\ ['annotation'],
	 	\ {'namespace' : [], 'processContents' : [], 'id' : []} ],
	 \ 'list' : [
		\ ['annotation', 'simpleType'],
		\ {'itemType' : [], 'id' : []} ],
	 \ 'union' : [
	 	\ ['annotation', 'simpleType'],
	 	\ {'id' : [], 'memberTypes' : []} ],
	 \ 'notation' : [
	 	\ ['annotation'],
	 	\ {'name' : [], 'id' : [], 'public' : [], 'system' : []} ],
	 \ 'annotation' : [
	 	\ ['appinfo', 'documentation'],
	 	\ {} ],
	 \ 'appinfo' : [
	 	\ [],
	 	\ {'source' : [], 'id' : []} ],
	 \ 'documentation' : [
		\ [],
		\ {'source' : [], 'id' : [], 'xml' : []} ]
	\ }
PK�j�Z-�����vim80/autoload/xml/html40s.vimnu�[���let g:xmldata_html40s = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'name': [], 'style': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'nohref': ['BOOL'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'b': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'href': []}
\ ],
\ 'bdo': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'big': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'script', 'ins', 'del'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'hr', 'table', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'hr', 'table', 'fieldset', 'address', 'script'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'POST'], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h2': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h3': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h4': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h5': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h6': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'head': [
\ ['title', 'base', 'script', 'style', 'meta', 'link', 'object'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'html': [
\ ['head', 'body'],
\ { 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'i': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'alt': [], 'lang': [], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'alt': [], 'tabindex': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'kbd': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'label': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'legend': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'archive': [], 'standby': [], 'tabindex': [], 'classid': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'codetype': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'REF', 'OBJECT']}
\ ],
\ 'pre': [
\ ['tt', 'i', 'b', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'br', 'script', 'map', 'q', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'q': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'samp': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'script': [
\ [],
\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['BOOL']}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'span': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strong': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'style': [
\ [],
\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'sub': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'sup': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'lang': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'tt': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'var': [
\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z1S\�����vim80/autoload/xml/xhtml10s.vimnu�[���let g:xmldata_xhtml10s = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'accesskey': [], 'rel': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'name': [], 'style': [], 'charset': [], 'xml:lang': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'nohref': ['BOOL'], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'alt': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'b': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'href': [], 'id': []}
\ ],
\ 'bdo': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'big': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'table', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'noscript', 'ins', 'del', 'script'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'value': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'noscript', 'ins', 'del', 'script'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['get', 'post'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h2': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h3': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h4': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h5': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'h6': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'head': [
\ ['script', 'style', 'meta', 'link', 'object', 'title', 'script', 'style', 'meta', 'link', 'object', 'base', 'script', 'style', 'meta', 'link', 'object', 'base', 'script', 'style', 'meta', 'link', 'object', 'title', 'script', 'style', 'meta', 'link', 'object'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'html': [
\ ['head', 'body'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'i': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'alt': [], 'lang': [], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['text', 'password', 'checkbox', 'radio', 'submit', 'reset', 'file', 'hidden', 'image', 'button'], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'size': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'tabindex': [], 'alt': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'kbd': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'label': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'legend': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'noscript', 'ins', 'del', 'script', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'onclick': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmouseout': [], 'onmousemove': [], 'xml:lang': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'id': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'archive': [], 'standby': [], 'tabindex': [], 'classid': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'codetype': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['data', 'ref', 'object']}
\ ],
\ 'pre': [
\ ['a', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'br', 'span', 'bdo', 'map', 'ins', 'del', 'script', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'xml:space': ['preserve'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'q': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'samp': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'script': [
\ [''],
\ { 'id': [], 'src': [], 'charset': [], 'xml:space': ['preserve'], 'type': ['text/javascript'], 'defer': ['BOOL']}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'span': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'strong': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'style': [
\ [''],
\ { 'media': [], 'id': [], 'lang': [], 'xml:space': ['preserve'], 'title': [], 'type': ['text/css'], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'sub': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'sup': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody', 'tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'pre', 'hr', 'blockquote', 'address', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'id': [], 'lang': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'tt': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'var': [
\ ['a', 'br', 'span', 'bdo', 'map', 'object', 'img', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z�ӄ0��vim80/autoload/xml/xhtml10t.vimnu�[���let g:xmldata_xhtml10t = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'accesskey': [], 'rel': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'xml:lang': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script', 'p'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'applet': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'nohref': ['BOOL'], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'alt': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'b': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'target': [], 'href': [], 'id': []}
\ ],
\ 'basefont': [
\ [],
\ { 'size': [], 'face': [], 'color': [], 'id': []}
\ ],
\ 'bdo': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'big': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'xml:lang': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'table', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'noscript', 'ins', 'del', 'script'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'value': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'center': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dir': [
\ ['li'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'font': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'xml:lang': [], 'title': [], 'class': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['get', 'post'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h2': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h3': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h4': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h5': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h6': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'head': [
\ ['script', 'style', 'meta', 'link', 'object', 'isindex', 'title', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'title', 'script', 'style', 'meta', 'link', 'object', 'isindex'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'noshade': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'html': [
\ ['head', 'body'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'i': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'iframe': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['text', 'password', 'checkbox', 'radio', 'submit', 'reset', 'file', 'hidden', 'image', 'button'], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'size': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'tabindex': [], 'alt': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'isindex': [
\ [],
\ { 'id': [], 'lang': [], 'prompt': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'xml:lang': []}
\ ],
\ 'kbd': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'label': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'legend': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'noscript', 'ins', 'del', 'script', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'onclick': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmouseout': [], 'onmousemove': [], 'xml:lang': []}
\ ],
\ 'menu': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'id': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'noframes': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'xml:lang': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['data', 'ref', 'object']}
\ ],
\ 'pre': [
\ ['a', 'br', 'span', 'bdo', 'tt', 'i', 'b', 'u', 's', 'strike', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'xml:space': ['preserve'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'q': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 's': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'samp': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'script': [
\ [''],
\ { 'id': [], 'src': [], 'charset': [], 'xml:space': ['preserve'], 'type': ['text/javascript'], 'defer': ['BOOL'], 'language': []}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'span': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'strike': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'strong': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'style': [
\ [''],
\ { 'media': [], 'id': [], 'lang': [], 'xml:space': ['preserve'], 'title': [], 'type': ['text/css'], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'sub': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'sup': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody', 'tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'id': [], 'lang': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'tt': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'u': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'var': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'basefont': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'isindex': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�ZU��~]�]�vim80/autoload/xml/html40t.vimnu�[���let g:xmldata_html40t = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'p'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'applet': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'nohref': ['BOOL'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'b': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'target': [], 'href': []}
\ ],
\ 'basefont': [
\ [],
\ { 'size': [], 'face': [], 'color': [], 'id': []}
\ ],
\ 'bdo': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'big': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del'],
\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'hr', 'table', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'center': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dir': [
\ ['li'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'font': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'POST'], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h1': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h2': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h3': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h4': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h5': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h6': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'head': [
\ ['title', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'width': [], 'ondblclick': [], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'noshade': ['BOOL'], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'html': [
\ ['head', 'body'],
\ { 'dir': ['ltr', 'rtl'], 'lang': [], 'version': ['-//W3C//DTD HTML 4.0 Transitional//EN']}
\ ],
\ 'i': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'iframe': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'alt': [], 'tabindex': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'isindex': [
\ [],
\ { 'id': [], 'lang': [], 'prompt': [], 'class': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': []}
\ ],
\ 'kbd': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'label': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'legend': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'menu': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'noframes': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'REF', 'OBJECT']}
\ ],
\ 'pre': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'br', 'script', 'map', 'q', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'width': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'q': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 's': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'samp': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'script': [
\ [],
\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['BOOL'], 'language': []}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'span': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strike': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'strong': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'style': [
\ [],
\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'sub': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'sup': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'lang': [], 'dir': ['ltr', 'rtl']}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
\ ],
\ 'tt': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'u': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
\ ],
\ 'var': [
\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'basefont': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'isindex': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z@BHJ����vim80/autoload/xml/xhtml10f.vimnu�[���let g:xmldata_xhtml10f = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'],
\ 'a': [
\ ['br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'accesskey': [], 'rel': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'xml:lang': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'abbr': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'acronym': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'address': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script', 'p'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'applet': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
\ ],
\ 'area': [
\ [],
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'nohref': ['BOOL'], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'alt': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'shape': ['rect', 'circle', 'poly', 'default']}
\ ],
\ 'b': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'base': [
\ [],
\ { 'target': [], 'href': [], 'id': []}
\ ],
\ 'basefont': [
\ [],
\ { 'size': [], 'face': [], 'color': [], 'id': []}
\ ],
\ 'bdo': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'big': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'blockquote': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'body': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'xml:lang': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'br': [
\ [],
\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
\ ],
\ 'button': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'table', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'noscript', 'ins', 'del', 'script'],
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'value': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
\ ],
\ 'caption': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'center': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'cite': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'code': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'col': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'colgroup': [
\ ['col'],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dd': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'del': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dfn': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dir': [
\ ['li'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'div': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'dl': [
\ ['dt', 'dd'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'dt': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'em': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'fieldset': [
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'font': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'xml:lang': [], 'title': [], 'class': []}
\ ],
\ 'form': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['get', 'post'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'frame': [
\ [],
\ { 'scrolling': ['auto', 'yes', 'no', 'auto'], 'noresize': ['BOOL'], 'marginwidth': [], 'id': [], 'marginheight': [], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'frameset': [
\ ['frameset', 'frame', 'noframes'],
\ { 'rows': [], 'cols': [], 'id': [], 'style': [], 'onunload': [], 'onload': [], 'class': [], 'title': []}
\ ],
\ 'h1': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h2': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h3': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h4': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h5': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'h6': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'head': [
\ ['script', 'style', 'meta', 'link', 'object', 'isindex', 'title', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'title', 'script', 'style', 'meta', 'link', 'object', 'isindex'],
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'hr': [
\ [],
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'noshade': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'html': [
\ ['head', 'frameset'],
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
\ ],
\ 'i': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
\ ],
\ 'iframe': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '0'], 'title': [], 'class': []}
\ ],
\ 'img': [
\ [],
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
\ ],
\ 'input': [
\ [],
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['text', 'password', 'checkbox', 'radio', 'submit', 'reset', 'file', 'hidden', 'image', 'button'], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'size': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'tabindex': [], 'alt': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'ins': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'isindex': [
\ [],
\ { 'id': [], 'lang': [], 'prompt': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'xml:lang': []}
\ ],
\ 'kbd': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'label': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'legend': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'li': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'link': [
\ [],
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'map': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'noscript', 'ins', 'del', 'script', 'area'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'onclick': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmouseout': [], 'onmousemove': [], 'xml:lang': []}
\ ],
\ 'menu': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'meta': [
\ [],
\ { 'http-equiv': [], 'content': [], 'id': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'noframes': [
\ ['body'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'noscript': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'object': [
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'xml:lang': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
\ ],
\ 'ol': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'optgroup': [
\ ['option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'option': [
\ [''],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'selected': ['BOOL']}
\ ],
\ 'p': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'param': [
\ [],
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['data', 'ref', 'object']}
\ ],
\ 'pre': [
\ ['a', 'br', 'span', 'bdo', 'tt', 'i', 'b', 'u', 's', 'strike', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'xml:space': ['preserve'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'q': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 's': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'samp': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'script': [
\ [''],
\ { 'id': [], 'src': [], 'charset': [], 'xml:space': ['preserve'], 'type': ['text/javascript'], 'defer': ['BOOL'], 'language': []}
\ ],
\ 'select': [
\ ['optgroup', 'option'],
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'multiple': ['BOOL']}
\ ],
\ 'small': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'span': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'strike': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'strong': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'style': [
\ [''],
\ { 'media': [], 'id': [], 'lang': [], 'xml:space': ['preserve'], 'title': [], 'type': ['text/css'], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'sub': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'sup': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'table': [
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody', 'tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'border': [], 'cellpadding': []}
\ ],
\ 'tbody': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'td': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'char': []}
\ ],
\ 'textarea': [
\ [''],
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'tfoot': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'th': [
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'char': []}
\ ],
\ 'thead': [
\ ['tr'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'title': [
\ [''],
\ { 'id': [], 'lang': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
\ ],
\ 'tr': [
\ ['th', 'td'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
\ ],
\ 'tt': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'u': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'ul': [
\ ['li'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
\ ],
\ 'var': [
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
\ ],
\ 'vimxmlattrinfo' : {
\ 'accept' : ['ContentType', ''],
\ 'accesskey' : ['Character', ''],
\ 'action' : ['*URI', ''],
\ 'align' : ['String', ''],
\ 'alt' : ['*Text', ''],
\ 'archive' : ['UriList', ''],
\ 'axis' : ['CDATA', ''],
\ 'border' : ['Pixels', ''],
\ 'cellpadding' : ['Length', ''],
\ 'cellspacing' : ['Length', ''],
\ 'char' : ['Character', ''],
\ 'charoff' : ['Length', ''],
\ 'charset' : ['LangCode', ''],
\ 'checked' : ['Bool', ''],
\ 'class' : ['CDATA', ''],
\ 'codetype' : ['ContentType', ''],
\ 'cols' : ['*Number', ''],
\ 'colspan' : ['Number', ''],
\ 'content' : ['*CDATA', ''],
\ 'coords' : ['Coords', ''],
\ 'data' : ['URI', ''],
\ 'datetime' : ['DateTime', ''],
\ 'declare' : ['Bool', ''],
\ 'defer' : ['Bool', ''],
\ 'dir' : ['String', ''],
\ 'disabled' : ['Bool', ''],
\ 'enctype' : ['ContentType', ''],
\ 'for' : ['ID', ''],
\ 'headers' : ['IDREFS', ''],
\ 'height' : ['Number', ''],
\ 'href' : ['*URI', ''],
\ 'hreflang' : ['LangCode', ''],
\ 'id' : ['ID', ''],
\ 'ismap' : ['Bool', ''],
\ 'label' : ['*Text', ''],
\ 'lang' : ['LangCode', ''],
\ 'longdesc' : ['URI', ''],
\ 'maxlength' : ['Number', ''],
\ 'media' : ['MediaDesc', ''],
\ 'method' : ['String', ''],
\ 'multiple' : ['Bool', ''],
\ 'name' : ['CDATA', ''],
\ 'nohref' : ['Bool', ''],
\ 'onblur' : ['Script', ''],
\ 'onchange' : ['Script', ''],
\ 'onclick' : ['Script', ''],
\ 'ondblclick' : ['Script', ''],
\ 'onfocus' : ['Script', ''],
\ 'onkeydown' : ['Script', ''],
\ 'onkeypress' : ['Script', ''],
\ 'onkeyup' : ['Script', ''],
\ 'onload' : ['Script', ''],
\ 'onmousedown' : ['Script', ''],
\ 'onmousemove' : ['Script', ''],
\ 'onmouseout' : ['Script', ''],
\ 'onmouseover' : ['Script', ''],
\ 'onmouseup' : ['Script', ''],
\ 'onreset' : ['Script', ''],
\ 'onselect' : ['Script', ''],
\ 'onsubmit' : ['Script', ''],
\ 'onunload' : ['Script', ''],
\ 'profile' : ['URI', ''],
\ 'readonly' : ['Bool', ''],
\ 'rel' : ['LinkTypes', ''],
\ 'rev' : ['LinkTypes', ''],
\ 'rows' : ['*Number', ''],
\ 'rules' : ['String', ''],
\ 'scheme' : ['CDATA', ''],
\ 'selected' : ['Bool', ''],
\ 'shape' : ['Shape', ''],
\ 'size' : ['CDATA', ''],
\ 'span' : ['Number', ''],
\ 'src' : ['*URI', ''],
\ 'standby' : ['Text', ''],
\ 'style' : ['StyleSheet', ''],
\ 'summary' : ['*Text', ''],
\ 'tabindex' : ['Number', ''],
\ 'title' : ['Text', ''],
\ 'type' : ['*ContentType', ''],
\ 'usemap' : ['URI', ''],
\ 'valign' : ['String', ''],
\ 'valuetype' : ['String', ''],
\ 'width' : ['Number', ''],
\ 'xmlns' : ['URI', '']
\ },
\ 'vimxmltaginfo': {
\ 'area': ['/>', ''],
\ 'base': ['/>', ''],
\ 'basefont': ['/>', ''],
\ 'br': ['/>', ''],
\ 'col': ['/>', ''],
\ 'frame': ['/>', ''],
\ 'hr': ['/>', ''],
\ 'img': ['/>', ''],
\ 'input': ['/>', ''],
\ 'isindex': ['/>', ''],
\ 'link': ['/>', ''],
\ 'meta': ['/>', ''],
\ 'param': ['/>', ''],
\ }
\ }
PK�j�Z*�

vim80/autoload/gzip.vimnu�[���" Vim autoload file for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Sep 28

" These functions are used by the gzip plugin.

" Function to check that executing "cmd [-f]" works.
" The result is cached in s:have_"cmd" for speed.
fun s:check(cmd)
  let name = substitute(a:cmd, '\(\S*\).*', '\1', '')
  if !exists("s:have_" . name)
    let e = executable(name)
    if e < 0
      let r = system(name . " --version")
      let e = (r !~ "not found" && r != "")
    endif
    exe "let s:have_" . name . "=" . e
  endif
  exe "return s:have_" . name
endfun

" Set b:gzip_comp_arg to the gzip argument to be used for compression, based on
" the flags in the compressed file.
" The only compression methods that can be detected are max speed (-1) and max
" compression (-9).
fun s:set_compression(line)
  " get the Compression Method
  let l:cm = char2nr(a:line[2])
  " if it's 8 (DEFLATE), we can check for the compression level
  if l:cm == 8
    " get the eXtra FLags
    let l:xfl = char2nr(a:line[8])
    " max compression
    if l:xfl == 2
      let b:gzip_comp_arg = "-9"
    " min compression
    elseif l:xfl == 4
      let b:gzip_comp_arg = "-1"
    endif
  endif
endfun


" After reading compressed file: Uncompress text in buffer with "cmd"
fun gzip#read(cmd)
  " don't do anything if the cmd is not supported
  if !s:check(a:cmd)
    return
  endif

  " for gzip check current compression level and set b:gzip_comp_arg.
  silent! unlet b:gzip_comp_arg
  if a:cmd[0] == 'g'
    call s:set_compression(getline(1))
  endif

  " make 'patchmode' empty, we don't want a copy of the written file
  let pm_save = &pm
  set pm=
  " remove 'a' and 'A' from 'cpo' to avoid the alternate file changes
  let cpo_save = &cpo
  set cpo-=a cpo-=A
  " set 'modifiable'
  let ma_save = &ma
  setlocal ma
  " set 'write'
  let write_save = &write
  set write
  " Reset 'foldenable', otherwise line numbers get adjusted.
  if has("folding")
    let fen_save = &fen
    setlocal nofen
  endif

  " when filtering the whole buffer, it will become empty
  let empty = line("'[") == 1 && line("']") == line("$")
  let tmp = tempname()
  let tmpe = tmp . "." . expand("<afile>:e")
  if exists('*fnameescape')
    let tmp_esc = fnameescape(tmp)
    let tmpe_esc = fnameescape(tmpe)
  else
    let tmp_esc = escape(tmp, ' ')
    let tmpe_esc = escape(tmpe, ' ')
  endif
  " write the just read lines to a temp file "'[,']w tmp.gz"
  execute "silent '[,']w " . tmpe_esc
  " uncompress the temp file: call system("gzip -dn tmp.gz")
  call system(a:cmd . " " . s:escape(tmpe))
  if !filereadable(tmp)
    " uncompress didn't work!  Keep the compressed file then.
    echoerr "Error: Could not read uncompressed file"
    let ok = 0
  else
    let ok = 1
    " delete the compressed lines; remember the line number
    let l = line("'[") - 1
    if exists(":lockmarks")
      lockmarks '[,']d _
    else
      '[,']d _
    endif
    " read in the uncompressed lines "'[-1r tmp"
    " Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options.
    setlocal nobin
    if exists(":lockmarks")
      if empty
	execute "silent lockmarks " . l . "r ++edit " . tmp_esc
      else
	execute "silent lockmarks " . l . "r " . tmp_esc
      endif
    else
      execute "silent " . l . "r " . tmp_esc
    endif

    " if buffer became empty, delete trailing blank line
    if empty
      silent $delete _
      1
    endif
    " delete the temp file and the used buffers
    call delete(tmp)
    silent! exe "bwipe " . tmp_esc
    silent! exe "bwipe " . tmpe_esc
  endif
  " Store the OK flag, so that we can use it when writing.
  let b:uncompressOk = ok

  " Restore saved option values.
  let &pm = pm_save
  let &cpo = cpo_save
  let &l:ma = ma_save
  let &write = write_save
  if has("folding")
    let &l:fen = fen_save
  endif

  " When uncompressed the whole buffer, do autocommands
  if ok && empty
    if exists('*fnameescape')
      let fname = fnameescape(expand("%:r"))
    else
      let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
    endif
    if &verbose >= 8
      execute "doau BufReadPost " . fname
    else
      execute "silent! doau BufReadPost " . fname
    endif
  endif
endfun

" After writing compressed file: Compress written file with "cmd"
fun gzip#write(cmd)
  if exists('b:uncompressOk') && !b:uncompressOk
    echomsg "Not compressing file because uncompress failed; reset b:uncompressOk to compress anyway"
  " don't do anything if the cmd is not supported
  elseif s:check(a:cmd)
    " Rename the file before compressing it.
    let nm = resolve(expand("<afile>"))
    let nmt = s:tempname(nm)
    if rename(nm, nmt) == 0
      if exists("b:gzip_comp_arg")
	call system(a:cmd . " " . b:gzip_comp_arg . " -- " . s:escape(nmt))
      else
	call system(a:cmd . " -- " . s:escape(nmt))
      endif
      call rename(nmt . "." . expand("<afile>:e"), nm)
    endif
  endif
endfun

" Before appending to compressed file: Uncompress file with "cmd"
fun gzip#appre(cmd)
  " don't do anything if the cmd is not supported
  if s:check(a:cmd)
    let nm = expand("<afile>")

    " for gzip check current compression level and set b:gzip_comp_arg.
    silent! unlet b:gzip_comp_arg
    if a:cmd[0] == 'g'
      call s:set_compression(readfile(nm, "b", 1)[0])
    endif

    " Rename to a weird name to avoid the risk of overwriting another file
    let nmt = expand("<afile>:p:h") . "/X~=@l9q5"
    let nmte = nmt . "." . expand("<afile>:e")
    if rename(nm, nmte) == 0
      if &patchmode != "" && getfsize(nm . &patchmode) == -1
	" Create patchmode file by creating the decompressed file new
	call system(a:cmd . " -c -- " . s:escape(nmte) . " > " . s:escape(nmt))
	call rename(nmte, nm . &patchmode)
      else
	call system(a:cmd . " -- " . s:escape(nmte))
      endif
      call rename(nmt, nm)
    endif
  endif
endfun

" find a file name for the file to be compressed.  Use "name" without an
" extension if possible.  Otherwise use a weird name to avoid overwriting an
" existing file.
fun s:tempname(name)
  let fn = fnamemodify(a:name, ":r")
  if !filereadable(fn) && !isdirectory(fn)
    return fn
  endif
  return fnamemodify(a:name, ":p:h") . "/X~=@l9q5"
endfun

fun s:escape(name)
  " shellescape() was added by patch 7.0.111
  if exists("*shellescape")
    return shellescape(a:name)
  endif
  return "'" . a:name . "'"
endfun

" vim: set sw=2 :
PK�j�Z��Sw����vim80/autoload/csscomplete.vimnu�[���" Vim completion script
" Language: CSS
"           Based on MDN CSS Reference at 2016 Jan <https://developer.mozilla.org/en-US/docs/Web/CSS/Reference>
"           plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2016 Jan 11

let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")


function! csscomplete#CompleteCSS(findstart, base)

  if a:findstart
    " We need whole line to proper checking
    let line = getline('.')
    let start = col('.') - 1
    let compl_begin = col('.') - 2
    while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
      let start -= 1
    endwhile
    let b:after = line[compl_begin :]
    let b:compl_context = line[0:compl_begin]
    return start
  endif

  " There are few chars important for context:
  " ^ ; : { } /* */
  " Where ^ is start of line and /* */ are comment borders
  " Depending on their relative position to cursor we will know what should
  " be completed. 
  " 1. if nearest are ^ or { or ; current word is property
  " 2. if : it is value (with exception of pseudo things)
  " 3. if } we are outside of css definitions
  " 4. for comments ignoring is be the easiest but assume they are the same
  "    as 1. 
  " 5. if @ complete at-rule
  " 6. if ! complete important
  if exists("b:compl_context")
    let line = b:compl_context
    let after = b:after
    unlet! b:compl_context
  else
    let line = a:base
  endif

  let res = []
  let res2 = []
  let borders = {}

  " Check last occurrence of sequence

  let openbrace  = strridx(line, '{')
  let closebrace = strridx(line, '}')
  let colon      = strridx(line, ':')
  let semicolon  = strridx(line, ';')
  let opencomm   = strridx(line, '/*')
  let closecomm  = strridx(line, '*/')
  let style      = strridx(line, 'style\s*=')
  let atrule     = strridx(line, '@')
  let exclam     = strridx(line, '!')

  if openbrace > -1
    let borders[openbrace] = "openbrace"
  endif
  if closebrace > -1
    let borders[closebrace] = "closebrace"
  endif
  if colon > -1
    let borders[colon] = "colon"
  endif
  if semicolon > -1
    let borders[semicolon] = "semicolon"
  endif
  if opencomm > -1
    let borders[opencomm] = "opencomm"
  endif
  if closecomm > -1
    let borders[closecomm] = "closecomm"
  endif
  if style > -1
    let borders[style] = "style"
  endif
  if atrule > -1
    let borders[atrule] = "atrule"
  endif
  if exclam > -1
    let borders[exclam] = "exclam"
  endif


  if len(borders) == 0 || borders[max(keys(borders))] =~ '^\%(openbrace\|semicolon\|opencomm\|closecomm\|style\)$'
    " Complete properties


    let entered_property = matchstr(line, '.\{-}\zs[a-zA-Z-]*$')

    for m in s:values
      if m =~? '^'.entered_property
        call add(res, m . ':')
      elseif m =~? entered_property
        call add(res2, m . ':')
      endif
    endfor

    return res + res2

  elseif borders[max(keys(borders))] == 'colon'
    " Get name of property
    let prop = tolower(matchstr(line, '\zs[a-zA-Z-]*\ze\s*:[^:]\{-}$'))

    let wide_keywords = ["initial", "inherit", "unset"]
    let color_values = ["transparent", "rgb(", "rgba(", "hsl(", "hsla(", "#"]
    let border_style_values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
    let border_width_values = ["thin", "thick", "medium"]
    let list_style_type_values = ["decimal", "decimal-leading-zero", "arabic-indic", "armenian", "upper-armenian", "lower-armenian", "bengali", "cambodian", "khmer", "cjk-decimal", "devanagari", "georgian", "gujarati", "gurmukhi", "hebrew", "kannada", "lao", "malayalam", "mongolian", "myanmar", "oriya", "persian", "lower-roman", "upper-roman", "tamil", "telugu", "thai", "tibetan", "lower-alpha", "lower-latin", "upper-alpha", "upper-latin", "cjk-earthly-branch", "cjk-heavenly-stem", "lower-greek", "hiragana", "hiragana-iroha", "katakana", "katakana-iroha", "disc", "circle", "square", "disclosure-open", "disclosure-closed"]
    let timing_functions = ["cubic-bezier(", "steps(", "linear", "ease", "ease-in", "ease-in-out", "ease-out", "step-start", "step-end"]

    if prop == 'all'
      let values = []
    elseif prop == 'additive-symbols'
      let values = []
    elseif prop == 'align-content'
      let values = ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"]
    elseif prop == 'align-items'
      let values = ["flex-start", "flex-end", "center", "baseline", "stretch"]
    elseif prop == 'align-self'
      let values = ["auto", "flex-start", "flex-end", "center", "baseline", "stretch"]
    elseif prop == 'animation'
      let values = timing_functions + ["normal", "reverse", "alternate", "alternate-reverse"] + ["none", "forwards", "backwards", "both"] + ["running", "paused"]
    elseif prop == 'animation-delay'
      let values = []
    elseif prop == 'animation-direction'
      let values = ["normal", "reverse", "alternate", "alternate-reverse"]
    elseif prop == 'animation-duration'
      let values = []
    elseif prop == 'animation-fill-mode'
      let values = ["none", "forwards", "backwards", "both"]
    elseif prop == 'animation-iteration-count'
      let values = []
    elseif prop == 'animation-name'
      let values = []
    elseif prop == 'animation-play-state'
      let values = ["running", "paused"]
    elseif prop == 'animation-timing-function'
      let values = timing_functions
    elseif prop == 'background-attachment'
      let values = ["scroll", "fixed"]
    elseif prop == 'background-color'
      let values = color_values
    elseif prop == 'background-image'
      let values = ["url(", "none"]
    elseif prop == 'background-position'
      let vals = matchstr(line, '.*:\s*\zs.*')
      if vals =~ '^\%([a-zA-Z]\+\)\?$'
        let values = ["top", "center", "bottom"]
      elseif vals =~ '^[a-zA-Z]\+\s\+\%([a-zA-Z]\+\)\?$'
        let values = ["left", "center", "right"]
      else
        return []
      endif
    elseif prop == 'background-repeat'
      let values = ["repeat", "repeat-x", "repeat-y", "no-repeat"]
    elseif prop == 'background-size'
      let values = ["auto", "contain", "cover"]
    elseif prop == 'background'
      let values = ["scroll", "fixed"] + color_values + ["url(", "none"] + ["top", "center", "bottom", "left", "right"] + ["repeat", "repeat-x", "repeat-y", "no-repeat"] + ["auto", "contain", "cover"]
    elseif prop =~ 'border\%(-top\|-right\|-bottom\|-left\|-block-start\|-block-end\)\?$'
      let vals = matchstr(line, '.*:\s*\zs.*')
      if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
        let values = border_width_values
      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
        let values = border_style_values
      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
        let values = color_values
      else
        return []
      endif
    elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-color'
      let values = color_values
    elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-style'
      let values = border_style_values
    elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-width'
      let values = border_width_values
    elseif prop == 'border-color'
      let values = color_values
    elseif prop == 'border-style'
      let values = border_style_values
    elseif prop == 'border-width'
      let values = border_width_values
    elseif prop == 'bottom'
      let values = ["auto"]
    elseif prop == 'box-decoration-break'
      let values = ["slice", "clone"]
    elseif prop == 'box-shadow'
      let values = ["inset"]
    elseif prop == 'box-sizing'
      let values = ["border-box", "content-box"]
    elseif prop =~ 'break-\%(before\|after\)'
      let values = ["auto", "always", "avoid", "left", "right", "page", "column", "region", "recto", "verso", "avoid-page", "avoid-column", "avoid-region"]
    elseif prop == 'break-inside'
      let values = ["auto", "avoid", "avoid-page", "avoid-column", "avoid-region"]
    elseif prop == 'caption-side'
      let values = ["top", "bottom"]
    elseif prop == 'clear'
      let values = ["none", "left", "right", "both"]
    elseif prop == 'clip'
      let values = ["auto", "rect("]
    elseif prop == 'clip-path'
      let values = ["fill-box", "stroke-box", "view-box", "none"]
    elseif prop == 'color'
      let values = color_values
    elseif prop == 'columns'
      let values = []
    elseif prop == 'column-count'
      let values = ['auto']
    elseif prop == 'column-fill'
      let values = ['auto', 'balance']
    elseif prop == 'column-rule-color'
      let values = color_values
    elseif prop == 'column-rule-style'
      let values = border_style_values
    elseif prop == 'column-rule-width'
      let values = border_width_values
    elseif prop == 'column-rule'
      let vals = matchstr(line, '.*:\s*\zs.*')
      if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
        let values = border_width_values
      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
        let values = border_style_values
      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
        let values = color_values
      else
        return []
      endif
    elseif prop == 'column-span'
      let values = ["none", "all"]
    elseif prop == 'column-width'
      let values = ["auto"]
    elseif prop == 'content'
      let values = ["normal", "attr(", "open-quote", "close-quote", "no-open-quote", "no-close-quote"]
    elseif prop =~ 'counter-\%(increment\|reset\)$'
      let values = ["none"]
    elseif prop =~ 'cue\%(-after\|-before\)\=$'
      let values = ["url("]
    elseif prop == 'cursor'
      let values = ["url(", "auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help", "progress"]
    elseif prop == 'direction'
      let values = ["ltr", "rtl"]
    elseif prop == 'display'
      let values = ["inline", "block", "list-item", "inline-list-item", "run-in", "inline-block", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none", "flex", "inline-flex", "grid", "inline-grid", "ruby", "ruby-base", "ruby-text", "ruby-base-container", "ruby-text-container", "contents"]
    elseif prop == 'elevation'
      let values = ["below", "level", "above", "higher", "lower"]
    elseif prop == 'empty-cells'
      let values = ["show", "hide"]
    elseif prop == 'fallback'
      let values = list_style_type_values
    elseif prop == 'filter'
      let values = ["blur(", "brightness(", "contrast(", "drop-shadow(", "grayscale(", "hue-rotate(", "invert(", "opacity(", "sepia(", "saturate("]
    elseif prop == 'flex-basis'
      let values = ["auto", "content"]
    elseif prop == 'flex-flow'
      let values = ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"]
    elseif prop == 'flex-grow'
      let values = []
    elseif prop == 'flex-shrink'
      let values = []
    elseif prop == 'flex-wrap'
      let values = ["nowrap", "wrap", "wrap-reverse"]
    elseif prop == 'flex'
      let values = ["nowrap", "wrap", "wrap-reverse"] + ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"] + ["auto", "content"]
    elseif prop == 'float'
      let values = ["left", "right", "none"]
    elseif prop == 'font-family'
      let values = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]
    elseif prop == 'font-feature-settings'
      let values = ["normal", '"aalt"', '"abvf"', '"abvm"', '"abvs"', '"afrc"', '"akhn"', '"blwf"', '"blwm"', '"blws"', '"calt"', '"case"', '"ccmp"', '"cfar"', '"cjct"', '"clig"', '"cpct"', '"cpsp"', '"cswh"', '"curs"', '"cv', '"c2pc"', '"c2sc"', '"dist"', '"dlig"', '"dnom"', '"dtls"', '"expt"', '"falt"', '"fin2"', '"fin3"', '"fina"', '"flac"', '"frac"', '"fwid"', '"half"', '"haln"', '"halt"', '"hist"', '"hkna"', '"hlig"', '"hngl"', '"hojo"', '"hwid"', '"init"', '"isol"', '"ital"', '"jalt"', '"jp78"', '"jp83"', '"jp90"', '"jp04"', '"kern"', '"lfbd"', '"liga"', '"ljmo"', '"lnum"', '"locl"', '"ltra"', '"ltrm"', '"mark"', '"med2"', '"medi"', '"mgrk"', '"mkmk"', '"mset"', '"nalt"', '"nlck"', '"nukt"', '"numr"', '"onum"', '"opbd"', '"ordn"', '"ornm"', '"palt"', '"pcap"', '"pkna"', '"pnum"', '"pref"', '"pres"', '"pstf"', '"psts"', '"pwid"', '"qwid"', '"rand"', '"rclt"', '"rkrf"', '"rlig"', '"rphf"', '"rtbd"', '"rtla"', '"rtlm"', '"ruby"', '"salt"', '"sinf"', '"size"', '"smcp"', '"smpl"', '"ss01"', '"ss02"', '"ss03"', '"ss04"', '"ss05"', '"ss06"', '"ss07"', '"ss08"', '"ss09"', '"ss10"', '"ss11"', '"ss12"', '"ss13"', '"ss14"', '"ss15"', '"ss16"', '"ss17"', '"ss18"', '"ss19"', '"ss20"', '"ssty"', '"stch"', '"subs"', '"sups"', '"swsh"', '"titl"', '"tjmo"', '"tnam"', '"tnum"', '"trad"', '"twid"', '"unic"', '"valt"', '"vatu"', '"vert"', '"vhal"', '"vjmo"', '"vkna"', '"vkrn"', '"vpal"', '"vrt2"', '"zero"']
    elseif prop == 'font-kerning'
      let values = ["auto", "normal", "none"]
    elseif prop == 'font-language-override'
      let values = ["normal"]
    elseif prop == 'font-size'
      let values = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"]
    elseif prop == 'font-size-adjust'
      let values = []
    elseif prop == 'font-stretch'
      let values = ["normal", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"]
    elseif prop == 'font-style'
      let values = ["normal", "italic", "oblique"]
    elseif prop == 'font-synthesis'
      let values = ["none", "weight", "style"]
    elseif prop == 'font-variant-alternates'
      let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("]
    elseif prop == 'font-variant-caps'
      let values = ["normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"]
    elseif prop == 'font-variant-asian'
      let values = ["normal", "ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"]
    elseif prop == 'font-variant-ligatures'
      let values = ["normal", "none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"]
    elseif prop == 'font-variant-numeric'
      let values = ["normal", "ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"]
    elseif prop == 'font-variant-position'
      let values = ["normal", "sub", "super"]
    elseif prop == 'font-variant'
      let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("] + ["small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"] + ["ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"] + ["none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"] + ["ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"] + ["sub", "super"]
    elseif prop == 'font-weight'
      let values = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"]
    elseif prop == 'font'
      let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"]
    elseif prop =~ '^\%(height\|width\)$'
      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
    elseif prop =~ '^\%(left\|rigth\)$'
      let values = ["auto"]
    elseif prop == 'image-rendering'
      let values = ["auto", "crisp-edges", "pixelated"]
    elseif prop == 'image-orientation'
      let values = ["from-image", "flip"]
    elseif prop == 'ime-mode'
      let values = ["auto", "normal", "active", "inactive", "disabled"]
    elseif prop == 'inline-size'
      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
    elseif prop == 'isolation'
      let values = ["auto", "isolate"]
    elseif prop == 'justify-content'
      let values = ["flex-start", "flex-end", "center", "space-between", "space-around"]
    elseif prop == 'letter-spacing'
      let values = ["normal"]
    elseif prop == 'line-break'
      let values = ["auto", "loose", "normal", "strict"]
    elseif prop == 'line-height'
      let values = ["normal"]
    elseif prop == 'list-style-image'
      let values = ["url(", "none"]
    elseif prop == 'list-style-position'
      let values = ["inside", "outside"]
    elseif prop == 'list-style-type'
      let values = list_style_type_values
    elseif prop == 'list-style'
      let values = list_style_type_values + ["inside", "outside"] + ["url(", "none"]
    elseif prop == 'margin'
      let values = ["auto"]
    elseif prop =~ 'margin-\%(right\|left\|top\|bottom\|block-start\|block-end\|inline-start\|inline-end\)$'
      let values = ["auto"]
    elseif prop == 'marks'
      let values = ["crop", "cross", "none"]
    elseif prop == 'mask'
      let values = ["url("]
    elseif prop == 'mask-type'
      let values = ["luminance", "alpha"]
    elseif prop == '\%(max\|min\)-\%(block\|inline\)-size'
      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
    elseif prop == '\%(max\|min\)-\%(height\|width\)'
      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
    elseif prop == '\%(max\|min\)-zoom'
      let values = ["auto"]
    elseif prop == 'mix-blend-mode'
      let values = ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"]
    elseif prop == 'opacity'
      let values = []
    elseif prop == 'orientation'
      let values = ["auto", "portrait", "landscape"]
    elseif prop == 'orphans'
      let values = []
    elseif prop == 'outline-offset'
      let values = []
    elseif prop == 'outline-color'
      let values = color_values
    elseif prop == 'outline-style'
      let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
    elseif prop == 'outline-width'
      let values = ["thin", "thick", "medium"]
    elseif prop == 'outline'
      let vals = matchstr(line, '.*:\s*\zs.*')
      if vals =~ '^\%([a-zA-Z0-9,()#]\+\)\?$'
        let values = color_values
      elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+\%([a-zA-Z]\+\)\?$'
        let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
      elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
        let values = ["thin", "thick", "medium"]
      else
        return []
      endif
    elseif prop == 'overflow-wrap'
      let values = ["normal", "break-word"]
    elseif prop =~ 'overflow\%(-x\|-y\)\='
      let values = ["visible", "hidden", "scroll", "auto"]
    elseif prop == 'pad'
      let values = []
    elseif prop == 'padding'
      let values = []
    elseif prop =~ 'padding-\%(top\|right\|bottom\|left\|inline-start\|inline-end\|block-start\|block-end\)$'
      let values = []
    elseif prop =~ 'page-break-\%(after\|before\)$'
      let values = ["auto", "always", "avoid", "left", "right", "recto", "verso"]
    elseif prop == 'page-break-inside'
      let values = ["auto", "avoid"]
    elseif prop =~ 'pause\%(-after\|-before\)\=$'
      let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"]
    elseif prop == 'perspective'
      let values = ["none"]
    elseif prop == 'perspective-origin'
      let values = ["top", "bottom", "left", "center", " right"]
    elseif prop == 'pointer-events'
      let values = ["auto", "none", "visiblePainted", "visibleFill", "visibleStroke", "visible", "painted", "fill", "stroke", "all"]
    elseif prop == 'position'
      let values = ["static", "relative", "absolute", "fixed", "sticky"]
    elseif prop == 'prefix'
      let values = []
    elseif prop == 'quotes'
      let values = ["none"]
    elseif prop == 'range'
      let values = ["auto", "infinite"]
    elseif prop == 'resize'
      let values = ["none", "both", "horizontal", "vertical"]
    elseif prop =~ 'rest\%(-after\|-before\)\=$'
      let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"]
    elseif prop == 'ruby-align'
      let values = ["start", "center", "space-between", "space-around"]
    elseif prop == 'ruby-merge'
      let values = ["separate", "collapse", "auto"]
    elseif prop == 'ruby-position'
      let values = ["over", "under", "inter-character"]
    elseif prop == 'scroll-behavior'
      let values = ["auto", "smooth"]
    elseif prop == 'scroll-snap-coordinate'
      let values = ["none"]
    elseif prop == 'scroll-snap-destination'
      return []
    elseif prop == 'scroll-snap-points-\%(x\|y\)$'
      let values = ["none", "repeat("]
    elseif prop == 'scroll-snap-type\%(-x\|-y\)\=$'
      let values = ["none", "mandatory", "proximity"]
    elseif prop == 'shape-image-threshold'
      let values = []
    elseif prop == 'shape-margin'
      let values = []
    elseif prop == 'shape-outside'
      let values = ["margin-box", "border-box", "padding-box", "content-box", 'inset(', 'circle(', 'ellipse(', 'polygon(', 'url(']
    elseif prop == 'speak'
      let values = ["auto", "none", "normal"]
    elseif prop == 'speak-as'
      let values = ["auto", "normal", "spell-out", "digits"]
    elseif prop == 'src'
      let values = ["url("]
    elseif prop == 'suffix'
      let values = []
    elseif prop == 'symbols'
      let values = []
    elseif prop == 'system'
      let vals = matchstr(line, '.*:\s*\zs.*')
      if vals =~ '^extends'
        let values = list_style_type_values
      else
        let values = ["cyclic", "numeric", "alphabetic", "symbolic", "additive", "fixed", "extends"]
      endif
    elseif prop == 'table-layout'
      let values = ["auto", "fixed"]
    elseif prop == 'tab-size'
      let values = []
    elseif prop == 'text-align'
      let values = ["start", "end", "left", "right", "center", "justify", "match-parent"]
    elseif prop == 'text-align-last'
      let values = ["auto", "start", "end", "left", "right", "center", "justify"]
    elseif prop == 'text-combine-upright'
      let values = ["none", "all", "digits"]
    elseif prop == 'text-decoration-line'
      let values = ["none", "underline", "overline", "line-through", "blink"]
    elseif prop == 'text-decoration-color'
      let values = color_values
    elseif prop == 'text-decoration-style'
      let values = ["solid", "double", "dotted", "dashed", "wavy"]
    elseif prop == 'text-decoration'
      let values = ["none", "underline", "overline", "line-through", "blink"] + ["solid", "double", "dotted", "dashed", "wavy"] + color_values
    elseif prop == 'text-emphasis-color'
      let values = color_values
    elseif prop == 'text-emphasis-position'
      let values = ["over", "under", "left", "right"]
    elseif prop == 'text-emphasis-style'
      let values = ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"]
    elseif prop == 'text-emphasis'
      let values = color_values + ["over", "under", "left", "right"] + ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"]
    elseif prop == 'text-indent'
      let values = ["hanging", "each-line"]
    elseif prop == 'text-orientation'
      let values = ["mixed", "upright", "sideways", "sideways-right", "use-glyph-orientation"]
    elseif prop == 'text-overflow'
      let values = ["clip", "ellipsis"]
    elseif prop == 'text-rendering'
      let values = ["auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"]
    elseif prop == 'text-shadow'
      let values = color_values
    elseif prop == 'text-transform'
      let values = ["capitalize", "uppercase", "lowercase", "full-width", "none"]
    elseif prop == 'text-underline-position'
      let values = ["auto", "under", "left", "right"]
    elseif prop == 'touch-action'
      let values = ["auto", "none", "pan-x", "pan-y", "manipulation", "pan-left", "pan-right", "pan-top", "pan-down"]
    elseif prop == 'transform'
      let values = ["matrix(", "translate(", "translateX(", "translateY(", "scale(", "scaleX(", "scaleY(", "rotate(", "skew(", "skewX(", "skewY(", "matrix3d(", "translate3d(", "translateZ(", "scale3d(", "scaleZ(", "rotate3d(", "rotateX(", "rotateY(", "rotateZ(", "perspective("]
    elseif prop == 'transform-box'
      let values = ["border-box", "fill-box", "view-box"]
    elseif prop == 'transform-origin'
      let values = ["left", "center", "right", "top", "bottom"]
    elseif prop == 'transform-style'
      let values = ["flat", "preserve-3d"]
    elseif prop == 'top'
      let values = ["auto"]
    elseif prop == 'transition-property'
      let values = ["all", "none"] + s:values
    elseif prop == 'transition-duration'
      let values = []
    elseif prop == 'transition-delay'
      let values = []
    elseif prop == 'transition-timing-function'
      let values = timing_functions
    elseif prop == 'transition'
      let values = ["all", "none"] + s:values + timing_functions
    elseif prop == 'unicode-bidi'
      let values = ["normal", "embed", "isolate", "bidi-override", "isolate-override", "plaintext"]
    elseif prop == 'unicode-range'
      let values = ["U+"]
    elseif prop == 'user-zoom'
      let values = ["zoom", "fixed"]
    elseif prop == 'vertical-align'
      let values = ["baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom"]
    elseif prop == 'visibility'
      let values = ["visible", "hidden", "collapse"]
    elseif prop == 'voice-volume'
      let values = ["silent", "x-soft", "soft", "medium", "loud", "x-loud"]
    elseif prop == 'voice-balance'
      let values = ["left", "center", "right", "leftwards", "rightwards"]
    elseif prop == 'voice-family'
      let values = []
    elseif prop == 'voice-rate'
      let values = ["normal", "x-slow", "slow", "medium", "fast", "x-fast"]
    elseif prop == 'voice-pitch'
      let values = ["absolute", "x-low", "low", "medium", "high", "x-high"]
    elseif prop == 'voice-range'
      let values = ["absolute", "x-low", "low", "medium", "high", "x-high"]
    elseif prop == 'voice-stress'
      let values = ["normal", "strong", "moderate", "none", "reduced "]
    elseif prop == 'voice-duration'
      let values = ["auto"]
    elseif prop == 'white-space'
      let values = ["normal", "pre", "nowrap", "pre-wrap", "pre-line"]
    elseif prop == 'widows'
      let values = []
    elseif prop == 'will-change'
      let values = ["auto", "scroll-position", "contents"] + s:values
    elseif prop == 'word-break'
      let values = ["normal", "break-all", "keep-all"]
    elseif prop == 'word-spacing'
      let values = ["normal"]
    elseif prop == 'word-wrap'
      let values = ["normal", "break-word"]
    elseif prop == 'writing-mode'
      let values = ["horizontal-tb", "vertical-rl", "vertical-lr", "sideways-rl", "sideways-lr"]
    elseif prop == 'z-index'
      let values = ["auto"]
    elseif prop == 'zoom'
      let values = ["auto"]
    else
      " If no property match it is possible we are outside of {} and
      " trying to complete pseudo-(class|element)
      let element = tolower(matchstr(line, '\zs[a-zA-Z1-6]*\ze:[^:[:space:]]\{-}$'))
      if stridx('a,abbr,address,area,article,aside,audio,b,base,bdi,bdo,bgsound,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,div,dl,dt,element,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,isindex,kbd,keygen,label,legend,li,link,main,map,mark,menu,menuitem,meta,meter,nav,nobr,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,pre,progress,q,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,span,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,u,ul,var,video,wbr', ','.element.',') > -1
        let values = ["active", "any", "checked", "default", "dir(", "disabled", "empty", "enabled", "first", "first-child", "first-of-type", "fullscreen", "focus", "hover", "indeterminate", "in-range", "invalid", "lang(", "last-child", "last-of-type", "left", "link", "not(", "nth-child(", "nth-last-child(", "nth-last-of-type(", "nth-of-type(", "only-child", "only-of-type", "optional", "out-of-range", "read-only", "read-write", "required", "right", "root", "scope", "target", "valid", "visited", "first-line", "first-letter", "before", "after", "selection", "backdrop"]
      else
        return []
      endif
    endif

    let values = wide_keywords + values
    " Complete values
    let entered_value = matchstr(line, '.\{-}\zs[a-zA-Z0-9#,.(_-]*$')

    for m in values
      if m =~? '^'.entered_value
        call add(res, m)
      elseif m =~? entered_value
        call add(res2, m)
      endif
    endfor

    return res + res2

  elseif borders[max(keys(borders))] == 'closebrace'

    return []

  elseif borders[max(keys(borders))] == 'exclam'

    " Complete values
    let entered_imp = matchstr(line, '.\{-}!\s*\zs[a-zA-Z ]*$')

    let values = ["important"]

    for m in values
      if m =~? '^'.entered_imp
        call add(res, m)
      endif
    endfor

    return res

  elseif borders[max(keys(borders))] == 'atrule'

    let afterat = matchstr(line, '.*@\zs.*')

    if afterat =~ '\s'

      let atrulename = matchstr(line, '.*@\zs[a-zA-Z-]\+\ze')

      if atrulename == 'media'
        let entered_atruleafter = matchstr(line, '.*@media\s\+\zs.*$')

        if entered_atruleafter =~ "([^)]*$"
          let entered_atruleafter = matchstr(entered_atruleafter, '(\s*\zs[^)]*$')
          let values = ["max-width", "min-width", "width", "max-height", "min-height", "height", "max-aspect-ration", "min-aspect-ration", "aspect-ratio", "orientation", "max-resolution", "min-resolution", "resolution", "scan", "grid", "update-frequency", "overflow-block", "overflow-inline", "max-color", "min-color", "color", "max-color-index", "min-color-index", "color-index", "monochrome", "inverted-colors", "pointer", "hover", "any-pointer", "any-hover", "light-level", "scripting"]
        else
          let values = ["screen", "print", "speech", "all", "not", "and", "("]
        endif

      elseif atrulename == 'supports'
        let entered_atruleafter = matchstr(line, '.*@supports\s\+\zs.*$')

        if entered_atruleafter =~ "([^)]*$"
          let entered_atruleafter = matchstr(entered_atruleafter, '(\s*\zs.*$')
          let values = s:values
        else
          let values = ["("]
        endif

      elseif atrulename == 'charset'
        let entered_atruleafter = matchstr(line, '.*@charset\s\+\zs.*$')
        let values = [
          \ '"UTF-8";', '"ANSI_X3.4-1968";', '"ISO_8859-1:1987";', '"ISO_8859-2:1987";', '"ISO_8859-3:1988";', '"ISO_8859-4:1988";', '"ISO_8859-5:1988";', 
          \ '"ISO_8859-6:1987";', '"ISO_8859-7:1987";', '"ISO_8859-8:1988";', '"ISO_8859-9:1989";', '"ISO-8859-10";', '"ISO_6937-2-add";', '"JIS_X0201";', 
          \ '"JIS_Encoding";', '"Shift_JIS";', '"Extended_UNIX_Code_Packed_Format_for_Japanese";', '"Extended_UNIX_Code_Fixed_Width_for_Japanese";',
          \ '"BS_4730";', '"SEN_850200_C";', '"IT";', '"ES";', '"DIN_66003";', '"NS_4551-1";', '"NF_Z_62-010";', '"ISO-10646-UTF-1";', '"ISO_646.basic:1983";',
          \ '"INVARIANT";', '"ISO_646.irv:1983";', '"NATS-SEFI";', '"NATS-SEFI-ADD";', '"NATS-DANO";', '"NATS-DANO-ADD";', '"SEN_850200_B";', '"KS_C_5601-1987";',
          \ '"ISO-2022-KR";', '"EUC-KR";', '"ISO-2022-JP";', '"ISO-2022-JP-2";', '"JIS_C6220-1969-jp";', '"JIS_C6220-1969-ro";', '"PT";', '"greek7-old";', 
          \ '"latin-greek";', '"NF_Z_62-010_(1973)";', '"Latin-greek-1";', '"ISO_5427";', '"JIS_C6226-1978";', '"BS_viewdata";', '"INIS";', '"INIS-8";', 
          \ '"INIS-cyrillic";', '"ISO_5427:1981";', '"ISO_5428:1980";', '"GB_1988-80";', '"GB_2312-80";', '"NS_4551-2";', '"videotex-suppl";', '"PT2";', 
          \ '"ES2";', '"MSZ_7795.3";', '"JIS_C6226-1983";', '"greek7";', '"ASMO_449";', '"iso-ir-90";', '"JIS_C6229-1984-a";', '"JIS_C6229-1984-b";', 
          \ '"JIS_C6229-1984-b-add";', '"JIS_C6229-1984-hand";', '"JIS_C6229-1984-hand-add";', '"JIS_C6229-1984-kana";', '"ISO_2033-1983";', 
          \ '"ANSI_X3.110-1983";', '"T.61-7bit";', '"T.61-8bit";', '"ECMA-cyrillic";', '"CSA_Z243.4-1985-1";', '"CSA_Z243.4-1985-2";', '"CSA_Z243.4-1985-gr";', 
          \ '"ISO_8859-6-E";', '"ISO_8859-6-I";', '"T.101-G2";', '"ISO_8859-8-E";', '"ISO_8859-8-I";', '"CSN_369103";', '"JUS_I.B1.002";', '"IEC_P27-1";', 
          \ '"JUS_I.B1.003-serb";', '"JUS_I.B1.003-mac";', '"greek-ccitt";', '"NC_NC00-10:81";', '"ISO_6937-2-25";', '"GOST_19768-74";', '"ISO_8859-supp";', 
          \ '"ISO_10367-box";', '"latin-lap";', '"JIS_X0212-1990";', '"DS_2089";', '"us-dk";', '"dk-us";', '"KSC5636";', '"UNICODE-1-1-UTF-7";', '"ISO-2022-CN";', 
          \ '"ISO-2022-CN-EXT";', '"ISO-8859-13";', '"ISO-8859-14";', '"ISO-8859-15";', '"ISO-8859-16";', '"GBK";', '"GB18030";', '"OSD_EBCDIC_DF04_15";', 
          \ '"OSD_EBCDIC_DF03_IRV";', '"OSD_EBCDIC_DF04_1";', '"ISO-11548-1";', '"KZ-1048";', '"ISO-10646-UCS-2";', '"ISO-10646-UCS-4";', '"ISO-10646-UCS-Basic";',
          \ '"ISO-10646-Unicode-Latin1";', '"ISO-10646-J-1";', '"ISO-Unicode-IBM-1261";', '"ISO-Unicode-IBM-1268";', '"ISO-Unicode-IBM-1276";', 
          \ '"ISO-Unicode-IBM-1264";', '"ISO-Unicode-IBM-1265";', '"UNICODE-1-1";', '"SCSU";', '"UTF-7";', '"UTF-16BE";', '"UTF-16LE";', '"UTF-16";', '"CESU-8";', 
          \ '"UTF-32";', '"UTF-32BE";', '"UTF-32LE";', '"BOCU-1";', '"ISO-8859-1-Windows-3.0-Latin-1";', '"ISO-8859-1-Windows-3.1-Latin-1";', 
          \ '"ISO-8859-2-Windows-Latin-2";', '"ISO-8859-9-Windows-Latin-5";', '"hp-roman8";', '"Adobe-Standard-Encoding";', '"Ventura-US";', 
          \ '"Ventura-International";', '"DEC-MCS";', '"IBM850";', '"PC8-Danish-Norwegian";', '"IBM862";', '"PC8-Turkish";', '"IBM-Symbols";', '"IBM-Thai";', 
          \ '"HP-Legal";', '"HP-Pi-font";', '"HP-Math8";', '"Adobe-Symbol-Encoding";', '"HP-DeskTop";', '"Ventura-Math";', '"Microsoft-Publishing";', 
          \ '"Windows-31J";', '"GB2312";', '"Big5";', '"macintosh";', '"IBM037";', '"IBM038";', '"IBM273";', '"IBM274";', '"IBM275";', '"IBM277";', '"IBM278";', 
          \ '"IBM280";', '"IBM281";', '"IBM284";', '"IBM285";', '"IBM290";', '"IBM297";', '"IBM420";', '"IBM423";', '"IBM424";', '"IBM437";', '"IBM500";', '"IBM851";', 
          \ '"IBM852";', '"IBM855";', '"IBM857";', '"IBM860";', '"IBM861";', '"IBM863";', '"IBM864";', '"IBM865";', '"IBM868";', '"IBM869";', '"IBM870";', '"IBM871";', 
          \ '"IBM880";', '"IBM891";', '"IBM903";', '"IBM904";', '"IBM905";', '"IBM918";', '"IBM1026";', '"EBCDIC-AT-DE";', '"EBCDIC-AT-DE-A";', '"EBCDIC-CA-FR";', 
          \ '"EBCDIC-DK-NO";', '"EBCDIC-DK-NO-A";', '"EBCDIC-FI-SE";', '"EBCDIC-FI-SE-A";', '"EBCDIC-FR";', '"EBCDIC-IT";', '"EBCDIC-PT";', '"EBCDIC-ES";', 
          \ '"EBCDIC-ES-A";', '"EBCDIC-ES-S";', '"EBCDIC-UK";', '"EBCDIC-US";', '"UNKNOWN-8BIT";', '"MNEMONIC";', '"MNEM";', '"VISCII";', '"VIQR";', '"KOI8-R";', 
          \ '"HZ-GB-2312";', '"IBM866";', '"IBM775";', '"KOI8-U";', '"IBM00858";', '"IBM00924";', '"IBM01140";', '"IBM01141";', '"IBM01142";', '"IBM01143";', 
          \ '"IBM01144";', '"IBM01145";', '"IBM01146";', '"IBM01147";', '"IBM01148";', '"IBM01149";', '"Big5-HKSCS";', '"IBM1047";', '"PTCP154";', '"Amiga-1251";', 
          \ '"KOI7-switched";', '"BRF";', '"TSCII";', '"windows-1250";', '"windows-1251";', '"windows-1252";', '"windows-1253";', '"windows-1254";', '"windows-1255";', 
          \ '"windows-1256";', '"windows-1257";', '"windows-1258";', '"TIS-620";']

      elseif atrulename == 'namespace'
        let entered_atruleafter = matchstr(line, '.*@namespace\s\+\zs.*$')
        let values = ["url("]

      elseif atrulename == 'document'
        let entered_atruleafter = matchstr(line, '.*@document\s\+\zs.*$')
        let values = ["url(", "url-prefix(", "domain(", "regexp("]

      elseif atrulename == 'import'
        let entered_atruleafter = matchstr(line, '.*@import\s\+\zs.*$')

        if entered_atruleafter =~ "^[\"']"
          let filestart = matchstr(entered_atruleafter, '^.\zs.*')
          let files = split(glob(filestart.'*'), '\n')
          let values = map(copy(files), '"\"".v:val')

        elseif entered_atruleafter =~ "^url("
          let filestart = matchstr(entered_atruleafter, "^url([\"']\\?\\zs.*")
          let files = split(glob(filestart.'*'), '\n')
          let values = map(copy(files), '"url(".v:val')

        else
          let values = ['"', 'url(']

        endif

      else
        return []

      endif

      for m in values
        if m =~? '^'.entered_atruleafter
          if entered_atruleafter =~? '^"' && m =~? '^"'
            let m = m[1:]
          endif
          if b:after =~? '"' && stridx(m, '"') > -1
            let m = m[0:stridx(m, '"')-1]
          endif 
          call add(res, m)
        elseif m =~? entered_atruleafter
          if m =~? '^"'
            let m = m[1:]
          endif
          call add(res2, m)
        endif
      endfor

      return res + res2

    endif

    let values = ["charset", "page", "media", "import", "font-face", "namespace", "supports", "keyframes", "viewport", "document"]

    let entered_atrule = matchstr(line, '.*@\zs[a-zA-Z-]*$')

    for m in values
      if m =~? '^'.entered_atrule
        call add(res, m .' ')
      elseif m =~? entered_atrule
        call add(res2, m .' ')
      endif
    endfor

    return res + res2

  endif

  return []

endfunction
PK�j�Z>�9JVJVvim80/autoload/tar.vimnu�[���" tar.vim: Handles browsing tarfiles
"            AUTOLOAD PORTION
" Date:			Apr 17, 2013
" Version:		29
" Maintainer:	Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License:		Vim License  (see vim's :help license)
"
"	Contains many ideas from Michael Toren's <tar.vim>
"
" Copyright:    Copyright (C) 2005-2011 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               tar.vim and tarPlugin.vim are provided *as is* and comes
"               with no warranty of any kind, either expressed or implied.
"               By using this plugin, you agree that in no event will the
"               copyright holder be liable for any damages resulting from
"               the use of this software.
"     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" ---------------------------------------------------------------------
" Load Once: {{{1
if &cp || exists("g:loaded_tar")
 finish
endif
let g:loaded_tar= "v29"
if v:version < 702
 echohl WarningMsg
 echo "***warning*** this version of tar needs vim 7.2"
 echohl Normal
 finish
endif
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn
"call Decho("loading autoload/tar.vim")

" ---------------------------------------------------------------------
"  Default Settings: {{{1
if !exists("g:tar_browseoptions")
 let g:tar_browseoptions= "Ptf"
endif
if !exists("g:tar_readoptions")
 let g:tar_readoptions= "OPxf"
endif
if !exists("g:tar_cmd")
 let g:tar_cmd= "tar"
endif
if !exists("g:tar_writeoptions")
 let g:tar_writeoptions= "uf"
endif
if !exists("g:netrw_cygwin")
 if has("win32") || has("win95") || has("win64") || has("win16")
  if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
   let g:netrw_cygwin= 1
  else
   let g:netrw_cygwin= 0
  endif
 else
  let g:netrw_cygwin= 0
 endif
endif
if !exists("g:tar_copycmd")
 if !exists("g:netrw_localcopycmd")
  if has("win32") || has("win95") || has("win64") || has("win16")
   if g:netrw_cygwin
    let g:netrw_localcopycmd= "cp"
   else
    let g:netrw_localcopycmd= "copy"
   endif
  elseif has("unix") || has("macunix")
   let g:netrw_localcopycmd= "cp"
  else
   let g:netrw_localcopycmd= ""
  endif
 endif
 let g:tar_copycmd= g:netrw_localcopycmd
endif
if !exists("g:tar_extractcmd")
 let g:tar_extractcmd= "tar -xf"
endif

" set up shell quoting character
if !exists("g:tar_shq")
 if exists("+shq") && exists("&shq") && &shq != ""
  let g:tar_shq= &shq
 elseif has("win32") || has("win95") || has("win64") || has("win16")
  if exists("g:netrw_cygwin") && g:netrw_cygwin
   let g:tar_shq= "'"
  else
   let g:tar_shq= '"'
  endif
 else
  let g:tar_shq= "'"
 endif
" call Decho("g:tar_shq<".g:tar_shq.">")
endif

" ----------------
"  Functions: {{{1
" ----------------

" ---------------------------------------------------------------------
" tar#Browse: {{{2
fun! tar#Browse(tarfile)
"  call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
  let repkeep= &report
  set report=10

  " sanity checks
  if !executable(g:tar_cmd)
   redraw!
   echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
   let &report= repkeep
"   call Dret("tar#Browse")
   return
  endif
  if !filereadable(a:tarfile)
"   call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
   if a:tarfile !~# '^\a\+://'
    " if it's an url, don't complain, let url-handlers such as vim do its thing
    redraw!
    echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
   endif
   let &report= repkeep
"   call Dret("tar#Browse : file<".a:tarfile."> not readable")
   return
  endif
  if &ma != 1
   set ma
  endif
  let b:tarfile= a:tarfile

  setlocal noswapfile
  setlocal buftype=nofile
  setlocal bufhidden=hide
  setlocal nobuflisted
  setlocal nowrap
  set ft=tar

  " give header
"  call Decho("printing header")
  let lastline= line("$")
  call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
  call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
  call setline(lastline+3,'" Select a file with cursor and press ENTER')
  keepj $put =''
  keepj sil! 0d
  keepj $

  let tarfile= a:tarfile
  if has("win32unix") && executable("cygpath")
   " assuming cygwin
   let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
  endif
  let curlast= line("$")
  if tarfile =~# '\.\(gz\|tgz\)$'
"   call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
   exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
  elseif tarfile =~# '\.lrp'
"   call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
   exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
  elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
"   call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
   exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
  elseif tarfile =~# '\.\(lzma\|tlz\)$'
"   call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
   exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
  elseif tarfile =~# '\.\(xz\|txz\)$'
"   call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
   exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
  else
   if tarfile =~ '^\s*-'
    " A file name starting with a dash is taken as an option.  Prepend ./ to avoid that.
    let tarfile = substitute(tarfile, '-', './-', '')
   endif
"   call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
   exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
  endif
  if v:shell_error != 0
   redraw!
   echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
"   call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
   return
  endif
  if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
   redraw!
   echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
   keepj sil! %d
   let eikeep= &ei
   set ei=BufReadCmd,FileReadCmd
   exe "r ".fnameescape(a:tarfile)
   let &ei= eikeep
   keepj sil! 1d
"   call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
   return
  endif

  setlocal noma nomod ro
  noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>

  let &report= repkeep
"  call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
endfun

" ---------------------------------------------------------------------
" TarBrowseSelect: {{{2
fun! s:TarBrowseSelect()
"  call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
  let repkeep= &report
  set report=10
  let fname= getline(".")
"  call Decho("fname<".fname.">")

  if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
   redraw!
   echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
"   call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
   return
  endif

  " sanity check
  if fname =~ '^"'
   let &report= repkeep
"   call Dret("TarBrowseSelect")
   return
  endif

  " about to make a new window, need to use b:tarfile
  let tarfile= b:tarfile
  let curfile= expand("%")
  if has("win32unix") && executable("cygpath")
   " assuming cygwin
   let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
  endif

  new
  if !exists("g:tar_nomax") || g:tar_nomax == 0
   wincmd _
  endif
  let s:tblfile_{winnr()}= curfile
  call tar#Read("tarfile:".tarfile.'::'.fname,1)
  filetype detect
  set nomod
  exe 'com! -buffer -nargs=? -complete=file TarDiff	:call tar#Diff(<q-args>,"'.fnameescape(fname).'")'

  let &report= repkeep
"  call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
endfun

" ---------------------------------------------------------------------
" tar#Read: {{{2
fun! tar#Read(fname,mode)
"  call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
  let repkeep= &report
  set report=10
  let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
  let fname   = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
  if has("win32unix") && executable("cygpath")
   " assuming cygwin
   let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
  endif
"  call Decho("tarfile<".tarfile.">")
"  call Decho("fname<".fname.">")

  if  fname =~ '\.bz2$' && executable("bzcat")
   let decmp= "|bzcat"
   let doro = 1
  elseif      fname =~ '\.gz$'  && executable("zcat")
   let decmp= "|zcat"
   let doro = 1
  elseif  fname =~ '\.lzma$' && executable("lzcat")
   let decmp= "|lzcat"
   let doro = 1
  elseif  fname =~ '\.xz$' && executable("xzcat")
   let decmp= "|xzcat"
   let doro = 1
  else
   let decmp=""
   let doro = 0
   if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
    setlocal bin
   endif
  endif

  if exists("g:tar_secure")
   let tar_secure= " -- "
  else
   let tar_secure= " "
  endif
  if tarfile =~# '\.bz2$'
"   call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
   exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
  elseif tarfile =~# '\.\(gz\|tgz\)$'
"   call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
   exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
  elseif tarfile =~# '\.lrp$'
"   call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
   exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
  elseif tarfile =~# '\.lzma$'
"   call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
   exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
  elseif tarfile =~# '\.\(xz\|txz\)$'
"   call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
   exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
  else
   if tarfile =~ '^\s*-'
    " A file name starting with a dash is taken as an option.  Prepend ./ to avoid that.
    let tarfile = substitute(tarfile, '-', './-', '')
   endif
"   call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
   exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
  endif

  if doro
   " because the reverse process of compressing changed files back into the tarball is not currently supported
   setlocal ro
  endif

  let b:tarfile= a:fname
  exe "file tarfile::".fnameescape(fname)

  " cleanup
  keepj sil! 0d
  set nomod

  let &report= repkeep
"  call Dret("tar#Read : b:tarfile<".b:tarfile.">")
endfun

" ---------------------------------------------------------------------
" tar#Write: {{{2
fun! tar#Write(fname)
"  call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
  let repkeep= &report
  set report=10

  if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
   redraw!
   echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
"   call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
   return
  endif

  " sanity checks
  if !executable(g:tar_cmd)
   redraw!
   echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
   let &report= repkeep
"   call Dret("tar#Write")
   return
  endif
  if !exists("*mkdir")
   redraw!
   echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
   let &report= repkeep
"   call Dret("tar#Write")
   return
  endif

  let curdir= getcwd()
  let tmpdir= tempname()
"  call Decho("orig tempname<".tmpdir.">")
  if tmpdir =~ '\.'
   let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
  endif
"  call Decho("tmpdir<".tmpdir.">")
  call mkdir(tmpdir,"p")

  " attempt to change to the indicated directory
  try
   exe "cd ".fnameescape(tmpdir)
  catch /^Vim\%((\a\+)\)\=:E344/
   redraw!
   echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
   let &report= repkeep
"   call Dret("tar#Write")
   return
  endtry
"  call Decho("current directory now: ".getcwd())

  " place temporary files under .../_ZIPVIM_/
  if isdirectory("_ZIPVIM_")
   call s:Rmdir("_ZIPVIM_")
  endif
  call mkdir("_ZIPVIM_")
  cd _ZIPVIM_
"  call Decho("current directory now: ".getcwd())

  let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
  let fname   = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')

  " handle compressed archives
  if tarfile =~# '\.bz2'
   call system("bzip2 -d -- ".shellescape(tarfile,0))
   let tarfile = substitute(tarfile,'\.bz2','','e')
   let compress= "bzip2 -- ".shellescape(tarfile,0)
"   call Decho("compress<".compress.">")
  elseif tarfile =~# '\.gz'
   call system("gzip -d -- ".shellescape(tarfile,0))
   let tarfile = substitute(tarfile,'\.gz','','e')
   let compress= "gzip -- ".shellescape(tarfile,0)
"   call Decho("compress<".compress.">")
  elseif tarfile =~# '\.tgz'
   call system("gzip -d -- ".shellescape(tarfile,0))
   let tarfile = substitute(tarfile,'\.tgz','.tar','e')
   let compress= "gzip -- ".shellescape(tarfile,0)
   let tgz     = 1
"   call Decho("compress<".compress.">")
  elseif tarfile =~# '\.xz'
   call system("xz -d -- ".shellescape(tarfile,0))
   let tarfile = substitute(tarfile,'\.xz','','e')
   let compress= "xz -- ".shellescape(tarfile,0)
"   call Decho("compress<".compress.">")
  elseif tarfile =~# '\.lzma'
   call system("lzma -d -- ".shellescape(tarfile,0))
   let tarfile = substitute(tarfile,'\.lzma','','e')
   let compress= "lzma -- ".shellescape(tarfile,0)
"   call Decho("compress<".compress.">")
  endif
"  call Decho("tarfile<".tarfile.">")

  if v:shell_error != 0
   redraw!
   echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
  else

"   call Decho("tarfile<".tarfile."> fname<".fname.">")
 
   if fname =~ '/'
    let dirpath = substitute(fname,'/[^/]\+$','','e')
    if has("win32unix") && executable("cygpath")
     let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
    endif
    call mkdir(dirpath,"p")
   endif
   if tarfile !~ '/'
    let tarfile= curdir.'/'.tarfile
   endif
   if tarfile =~ '^\s*-'
    " A file name starting with a dash may be taken as an option.  Prepend ./ to avoid that.
    let tarfile = substitute(tarfile, '-', './-', '')
   endif
"   call Decho("tarfile<".tarfile."> fname<".fname.">")
 
   if exists("g:tar_secure")
    let tar_secure= " -- "
   else
    let tar_secure= " "
   endif
   exe "w! ".fnameescape(fname)
   if has("win32unix") && executable("cygpath")
    let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
   endif
 
   " delete old file from tarfile
"   call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
   call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
   if v:shell_error != 0
    redraw!
    echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
   else
 
    " update tarfile with new file 
"    call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
    call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
    if v:shell_error != 0
     redraw!
     echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
    elseif exists("compress")
"     call Decho("call system(".compress.")")
     call system(compress)
     if exists("tgz")
"      call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")")
      call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e'))
     endif
    endif
   endif

   " support writing tarfiles across a network
   if s:tblfile_{winnr()} =~ '^\a\+://'
"    call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
    let tblfile= s:tblfile_{winnr()}
    1split|enew
    let binkeep= &l:binary
    let eikeep = &ei
    set binary ei=all
    exe "e! ".fnameescape(tarfile)
    call netrw#NetWrite(tblfile)
    let &ei       = eikeep
    let &l:binary = binkeep
    q!
    unlet s:tblfile_{winnr()}
   endif
  endif
  
  " cleanup and restore current directory
  cd ..
  call s:Rmdir("_ZIPVIM_")
  exe "cd ".fnameescape(curdir)
  setlocal nomod

  let &report= repkeep
"  call Dret("tar#Write")
endfun

" ---------------------------------------------------------------------
" tar#Diff: {{{2
fun! tar#Diff(userfname,fname)
"  call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")")
  let fname= a:fname
  if a:userfname != ""
   let fname= a:userfname
  endif
  if filereadable(fname)
   " sets current file (from tarball) for diff'ing
   " splits window vertically
   " opens original file, sets it for diff'ing
   " sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
   diffthis
   wincmd v
   exe "e ".fnameescape(fname)
   diffthis
  else
   redraw!
   echo "***warning*** unable to read file<".fname.">"
  endif
"  call Dret("tar#Diff")
endfun

" ---------------------------------------------------------------------
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
"  call Dfunc("Rmdir(fname<".a:fname.">)")
  if has("unix")
   call system("/bin/rm -rf -- ".shellescape(a:fname,0))
  elseif has("win32") || has("win95") || has("win64") || has("win16")
   if &shell =~? "sh$"
    call system("/bin/rm -rf -- ".shellescape(a:fname,0))
   else
    call system("del /S ".shellescape(a:fname,0))
   endif
  endif
"  call Dret("Rmdir")
endfun

" ---------------------------------------------------------------------
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
fun! tar#Vimuntar(...)
"  call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
  let tarball = expand("%")
"  call Decho("tarball<".tarball.">")
  let tarbase = substitute(tarball,'\..*$','','')
"  call Decho("tarbase<".tarbase.">")
  let tarhome = expand("%:p")
  if has("win32") || has("win95") || has("win64") || has("win16")
   let tarhome= substitute(tarhome,'\\','/','g')
  endif
  let tarhome= substitute(tarhome,'/[^/]*$','','')
"  call Decho("tarhome<".tarhome.">")
  let tartail = expand("%:t")
"  call Decho("tartail<".tartail.">")
  let curdir  = getcwd()
"  call Decho("curdir <".curdir.">")
  " set up vimhome
  if a:0 > 0 && a:1 != ""
   let vimhome= a:1
  else
   let vimhome= vimball#VimballHome()
  endif
"  call Decho("vimhome<".vimhome.">")

"  call Decho("curdir<".curdir."> vimhome<".vimhome.">")
  if simplify(curdir) != simplify(vimhome)
   " copy (possibly compressed) tarball to .vim/vimfiles
"   call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
   call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
"   call Decho("exe cd ".fnameescape(vimhome))
   exe "cd ".fnameescape(vimhome)
  endif
"  call Decho("getcwd<".getcwd().">")

  " if necessary, decompress the tarball; then, extract it
  if tartail =~ '\.tgz'
   if executable("gunzip")
    silent exe "!gunzip ".shellescape(tartail)
   elseif executable("gzip")
    silent exe "!gzip -d ".shellescape(tartail)
   else
    echoerr "unable to decompress<".tartail."> on this sytem"
    if simplify(curdir) != simplify(tarhome)
     " remove decompressed tarball, restore directory
"     call Decho("delete(".tartail.".tar)")
     call delete(tartail.".tar")
"     call Decho("exe cd ".fnameescape(curdir))
     exe "cd ".fnameescape(curdir)
    endif
"    call Dret("tar#Vimuntar")
    return
   endif
  else
   call vimball#Decompress(tartail,0)
  endif
  let extractcmd= netrw#WinPath(g:tar_extractcmd)
"  call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
  call system(extractcmd." ".shellescape(tarbase.".tar"))

  " set up help
  if filereadable("doc/".tarbase.".txt")
"   call Decho("exe helptags ".getcwd()."/doc")
   exe "helptags ".getcwd()."/doc"
  endif

  if simplify(tarhome) != simplify(vimhome)
   " remove decompressed tarball, restore directory
   call delete(vimhome."/".tarbase.".tar")
   exe "cd ".fnameescape(curdir)
  endif

"  call Dret("tar#Vimuntar")
endfun

" =====================================================================
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 fdm=marker
PK�j�Z�1V�B�Bvim80/autoload/ccomplete.vimnu�[���" Vim completion script
" Language:	C
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2012 Jun 20

let s:cpo_save = &cpo
set cpo&vim

" This function is used for the 'omnifunc' option.
function! ccomplete#Complete(findstart, base)
  if a:findstart
    " Locate the start of the item, including ".", "->" and "[...]".
    let line = getline('.')
    let start = col('.') - 1
    let lastword = -1
    while start > 0
      if line[start - 1] =~ '\w'
	let start -= 1
      elseif line[start - 1] =~ '\.'
	if lastword == -1
	  let lastword = start
	endif
	let start -= 1
      elseif start > 1 && line[start - 2] == '-' && line[start - 1] == '>'
	if lastword == -1
	  let lastword = start
	endif
	let start -= 2
      elseif line[start - 1] == ']'
	" Skip over [...].
	let n = 0
	let start -= 1
	while start > 0
	  let start -= 1
	  if line[start] == '['
	    if n == 0
	      break
	    endif
	    let n -= 1
	  elseif line[start] == ']'  " nested []
	    let n += 1
	  endif
	endwhile
      else
	break
      endif
    endwhile

    " Return the column of the last word, which is going to be changed.
    " Remember the text that comes before it in s:prepended.
    if lastword == -1
      let s:prepended = ''
      return start
    endif
    let s:prepended = strpart(line, start, lastword - start)
    return lastword
  endif

  " Return list of matches.

  let base = s:prepended . a:base

  " Don't do anything for an empty base, would result in all the tags in the
  " tags file.
  if base == ''
    return []
  endif

  " init cache for vimgrep to empty
  let s:grepCache = {}

  " Split item in words, keep empty word after "." or "->".
  " "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc.
  " We can't use split, because we need to skip nested [...].
  let items = []
  let s = 0
  while 1
    let e = match(base, '\.\|->\|\[', s)
    if e < 0
      if s == 0 || base[s - 1] != ']'
	call add(items, strpart(base, s))
      endif
      break
    endif
    if s == 0 || base[s - 1] != ']'
      call add(items, strpart(base, s, e - s))
    endif
    if base[e] == '.'
      let s = e + 1	" skip over '.'
    elseif base[e] == '-'
      let s = e + 2	" skip over '->'
    else
      " Skip over [...].
      let n = 0
      let s = e
      let e += 1
      while e < len(base)
	if base[e] == ']'
	  if n == 0
	    break
	  endif
	  let n -= 1
	elseif base[e] == '['  " nested [...]
	  let n += 1
	endif
	let e += 1
      endwhile
      let e += 1
      call add(items, strpart(base, s, e - s))
      let s = e
    endif
  endwhile

  " Find the variable items[0].
  " 1. in current function (like with "gd")
  " 2. in tags file(s) (like with ":tag")
  " 3. in current file (like with "gD")
  let res = []
  if searchdecl(items[0], 0, 1) == 0
    " Found, now figure out the type.
    " TODO: join previous line if it makes sense
    let line = getline('.')
    let col = col('.')
    if stridx(strpart(line, 0, col), ';') != -1
      " Handle multiple declarations on the same line.
      let col2 = col - 1
      while line[col2] != ';'
	let col2 -= 1
      endwhile
      let line = strpart(line, col2 + 1)
      let col -= col2
    endif
    if stridx(strpart(line, 0, col), ',') != -1
      " Handle multiple declarations on the same line in a function
      " declaration.
      let col2 = col - 1
      while line[col2] != ','
	let col2 -= 1
      endwhile
      if strpart(line, col2 + 1, col - col2 - 1) =~ ' *[^ ][^ ]*  *[^ ]'
	let line = strpart(line, col2 + 1)
	let col -= col2
      endif
    endif
    if len(items) == 1
      " Completing one word and it's a local variable: May add '[', '.' or
      " '->'.
      let match = items[0]
      let kind = 'v'
      if match(line, '\<' . match . '\s*\[') > 0
	let match .= '['
      else
	let res = s:Nextitem(strpart(line, 0, col), [''], 0, 1)
	if len(res) > 0
	  " There are members, thus add "." or "->".
	  if match(line, '\*[ \t(]*' . match . '\>') > 0
	    let match .= '->'
	  else
	    let match .= '.'
	  endif
	endif
      endif
      let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
    else
      " Completing "var.", "var.something", etc.
      let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
    endif
  endif

  if len(items) == 1
    " Only one part, no "." or "->": complete from tags file.
    let tags = taglist('^' . base)

    " Remove members, these can't appear without something in front.
    call filter(tags, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')

    " Remove static matches in other files.
    call filter(tags, '!has_key(v:val, "static") || !v:val["static"] || bufnr("%") == bufnr(v:val["filename"])')

    call extend(res, map(tags, 's:Tag2item(v:val)'))
  endif

  if len(res) == 0
    " Find the variable in the tags file(s)
    let diclist = taglist('^' . items[0] . '$')

    " Remove members, these can't appear without something in front.
    call filter(diclist, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')

    let res = []
    for i in range(len(diclist))
      " New ctags has the "typeref" field.  Patched version has "typename".
      if has_key(diclist[i], 'typename')
	call extend(res, s:StructMembers(diclist[i]['typename'], items[1:], 1))
      elseif has_key(diclist[i], 'typeref')
	call extend(res, s:StructMembers(diclist[i]['typeref'], items[1:], 1))
      endif

      " For a variable use the command, which must be a search pattern that
      " shows the declaration of the variable.
      if diclist[i]['kind'] == 'v'
	let line = diclist[i]['cmd']
	if line[0] == '/' && line[1] == '^'
	  let col = match(line, '\<' . items[0] . '\>')
	  call extend(res, s:Nextitem(strpart(line, 2, col - 2), items[1:], 0, 1))
	endif
      endif
    endfor
  endif

  if len(res) == 0 && searchdecl(items[0], 1) == 0
    " Found, now figure out the type.
    " TODO: join previous line if it makes sense
    let line = getline('.')
    let col = col('.')
    let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
  endif

  " If the last item(s) are [...] they need to be added to the matches.
  let last = len(items) - 1
  let brackets = ''
  while last >= 0
    if items[last][0] != '['
      break
    endif
    let brackets = items[last] . brackets
    let last -= 1
  endwhile

  return map(res, 's:Tagline2item(v:val, brackets)')
endfunc

function! s:GetAddition(line, match, memarg, bracket)
  " Guess if the item is an array.
  if a:bracket && match(a:line, a:match . '\s*\[') > 0
    return '['
  endif

  " Check if the item has members.
  if len(s:SearchMembers(a:memarg, [''], 0)) > 0
    " If there is a '*' before the name use "->".
    if match(a:line, '\*[ \t(]*' . a:match . '\>') > 0
      return '->'
    else
      return '.'
    endif
  endif
  return ''
endfunction

" Turn the tag info "val" into an item for completion.
" "val" is is an item in the list returned by taglist().
" If it is a variable we may add "." or "->".  Don't do it for other types,
" such as a typedef, by not including the info that s:GetAddition() uses.
function! s:Tag2item(val)
  let res = {'match': a:val['name']}

  let res['extra'] = s:Tagcmd2extra(a:val['cmd'], a:val['name'], a:val['filename'])

  let s = s:Dict2info(a:val)
  if s != ''
    let res['info'] = s
  endif

  let res['tagline'] = ''
  if has_key(a:val, "kind")
    let kind = a:val['kind']
    let res['kind'] = kind
    if kind == 'v'
      let res['tagline'] = "\t" . a:val['cmd']
      let res['dict'] = a:val
    elseif kind == 'f'
      let res['match'] = a:val['name'] . '('
    endif
  endif

  return res
endfunction

" Use all the items in dictionary for the "info" entry.
function! s:Dict2info(dict)
  let info = ''
  for k in sort(keys(a:dict))
    let info  .= k . repeat(' ', 10 - len(k))
    if k == 'cmd'
      let info .= substitute(matchstr(a:dict['cmd'], '/^\s*\zs.*\ze$/'), '\\\(.\)', '\1', 'g')
    else
      let info .= a:dict[k]
    endif
    let info .= "\n"
  endfor
  return info
endfunc

" Parse a tag line and return a dictionary with items like taglist()
function! s:ParseTagline(line)
  let l = split(a:line, "\t")
  let d = {}
  if len(l) >= 3
    let d['name'] = l[0]
    let d['filename'] = l[1]
    let d['cmd'] = l[2]
    let n = 2
    if l[2] =~ '^/'
      " Find end of cmd, it may contain Tabs.
      while n < len(l) && l[n] !~ '/;"$'
	let n += 1
	let d['cmd'] .= "  " . l[n]
      endwhile
    endif
    for i in range(n + 1, len(l) - 1)
      if l[i] == 'file:'
	let d['static'] = 1
      elseif l[i] !~ ':'
	let d['kind'] = l[i]
      else
	let d[matchstr(l[i], '[^:]*')] = matchstr(l[i], ':\zs.*')
      endif
    endfor
  endif

  return d
endfunction

" Turn a match item "val" into an item for completion.
" "val['match']" is the matching item.
" "val['tagline']" is the tagline in which the last part was found.
function! s:Tagline2item(val, brackets)
  let line = a:val['tagline']
  let add = s:GetAddition(line, a:val['match'], [a:val], a:brackets == '')
  let res = {'word': a:val['match'] . a:brackets . add }

  if has_key(a:val, 'info')
    " Use info from Tag2item().
    let res['info'] = a:val['info']
  else
    " Parse the tag line and add each part to the "info" entry.
    let s = s:Dict2info(s:ParseTagline(line))
    if s != ''
      let res['info'] = s
    endif
  endif

  if has_key(a:val, 'kind')
    let res['kind'] = a:val['kind']
  elseif add == '('
    let res['kind'] = 'f'
  else
    let s = matchstr(line, '\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
    if s != ''
      let res['kind'] = s
    endif
  endif

  if has_key(a:val, 'extra')
    let res['menu'] = a:val['extra']
    return res
  endif

  " Isolate the command after the tag and filename.
  let s = matchstr(line, '[^\t]*\t[^\t]*\t\zs\(/^.*$/\|[^\t]*\)\ze\(;"\t\|\t\|$\)')
  if s != ''
    let res['menu'] = s:Tagcmd2extra(s, a:val['match'], matchstr(line, '[^\t]*\t\zs[^\t]*\ze\t'))
  endif
  return res
endfunction

" Turn a command from a tag line to something that is useful in the menu
function! s:Tagcmd2extra(cmd, name, fname)
  if a:cmd =~ '^/^'
    " The command is a search command, useful to see what it is.
    let x = matchstr(a:cmd, '^/^\s*\zs.*\ze$/')
    let x = substitute(x, '\<' . a:name . '\>', '@@', '')
    let x = substitute(x, '\\\(.\)', '\1', 'g')
    let x = x . ' - ' . a:fname
  elseif a:cmd =~ '^\d*$'
    " The command is a line number, the file name is more useful.
    let x = a:fname . ' - ' . a:cmd
  else
    " Not recognized, use command and file name.
    let x = a:cmd . ' - ' . a:fname
  endif
  return x
endfunction

" Find composing type in "lead" and match items[0] with it.
" Repeat this recursively for items[1], if it's there.
" When resolving typedefs "depth" is used to avoid infinite recursion.
" Return the list of matches.
function! s:Nextitem(lead, items, depth, all)

  " Use the text up to the variable name and split it in tokens.
  let tokens = split(a:lead, '\s\+\|\<')

  " Try to recognize the type of the variable.  This is rough guessing...
  let res = []
  for tidx in range(len(tokens))

    " Skip tokens starting with a non-ID character.
    if tokens[tidx] !~ '^\h'
      continue
    endif

    " Recognize "struct foobar" and "union foobar".
    " Also do "class foobar" when it's C++ after all (doesn't work very well
    " though).
    if (tokens[tidx] == 'struct' || tokens[tidx] == 'union' || tokens[tidx] == 'class') && tidx + 1 < len(tokens)
      let res = s:StructMembers(tokens[tidx] . ':' . tokens[tidx + 1], a:items, a:all)
      break
    endif

    " TODO: add more reserved words
    if index(['int', 'short', 'char', 'float', 'double', 'static', 'unsigned', 'extern'], tokens[tidx]) >= 0
      continue
    endif

    " Use the tags file to find out if this is a typedef.
    let diclist = taglist('^' . tokens[tidx] . '$')
    for tagidx in range(len(diclist))
      let item = diclist[tagidx]

      " New ctags has the "typeref" field.  Patched version has "typename".
      if has_key(item, 'typeref')
	call extend(res, s:StructMembers(item['typeref'], a:items, a:all))
	continue
      endif
      if has_key(item, 'typename')
	call extend(res, s:StructMembers(item['typename'], a:items, a:all))
	continue
      endif

      " Only handle typedefs here.
      if item['kind'] != 't'
	continue
      endif

      " Skip matches local to another file.
      if has_key(item, 'static') && item['static'] && bufnr('%') != bufnr(item['filename'])
	continue
      endif

      " For old ctags we recognize "typedef struct aaa" and
      " "typedef union bbb" in the tags file command.
      let cmd = item['cmd']
      let ei = matchend(cmd, 'typedef\s\+')
      if ei > 1
	let cmdtokens = split(strpart(cmd, ei), '\s\+\|\<')
	if len(cmdtokens) > 1
	  if cmdtokens[0] == 'struct' || cmdtokens[0] == 'union' || cmdtokens[0] == 'class'
	    let name = ''
	    " Use the first identifier after the "struct" or "union"
	    for ti in range(len(cmdtokens) - 1)
	      if cmdtokens[ti] =~ '^\w'
		let name = cmdtokens[ti]
		break
	      endif
	    endfor
	    if name != ''
	      call extend(res, s:StructMembers(cmdtokens[0] . ':' . name, a:items, a:all))
	    endif
	  elseif a:depth < 10
	    " Could be "typedef other_T some_T".
	    call extend(res, s:Nextitem(cmdtokens[0], a:items, a:depth + 1, a:all))
	  endif
	endif
      endif
    endfor
    if len(res) > 0
      break
    endif
  endfor

  return res
endfunction


" Search for members of structure "typename" in tags files.
" Return a list with resulting matches.
" Each match is a dictionary with "match" and "tagline" entries.
" When "all" is non-zero find all, otherwise just return 1 if there is any
" member.
function! s:StructMembers(typename, items, all)
  " Todo: What about local structures?
  let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
  if fnames == ''
    return []
  endif

  let typename = a:typename
  let qflist = []
  let cached = 0
  if a:all == 0
    let n = '1'	" stop at first found match
    if has_key(s:grepCache, a:typename)
      let qflist = s:grepCache[a:typename]
      let cached = 1
    endif
  else
    let n = ''
  endif
  if !cached
    while 1
      exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames

      let qflist = getqflist()
      if len(qflist) > 0 || match(typename, "::") < 0
	break
      endif
      " No match for "struct:context::name", remove "context::" and try again.
      let typename = substitute(typename, ':[^:]*::', ':', '')
    endwhile

    if a:all == 0
      " Store the result to be able to use it again later.
      let s:grepCache[a:typename] = qflist
    endif
  endif

  " Put matching members in matches[].
  let matches = []
  for l in qflist
    let memb = matchstr(l['text'], '[^\t]*')
    if memb =~ '^' . a:items[0]
      " Skip matches local to another file.
      if match(l['text'], "\tfile:") < 0 || bufnr('%') == bufnr(matchstr(l['text'], '\t\zs[^\t]*'))
	let item = {'match': memb, 'tagline': l['text']}

	" Add the kind of item.
	let s = matchstr(l['text'], '\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
	if s != ''
	  let item['kind'] = s
	  if s == 'f'
	    let item['match'] = memb . '('
	  endif
	endif

	call add(matches, item)
      endif
    endif
  endfor

  if len(matches) > 0
    " Skip over [...] items
    let idx = 1
    while 1
      if idx >= len(a:items)
	return matches		" No further items, return the result.
      endif
      if a:items[idx][0] != '['
	break
      endif
      let idx += 1
    endwhile

    " More items following.  For each of the possible members find the
    " matching following members.
    return s:SearchMembers(matches, a:items[idx :], a:all)
  endif

  " Failed to find anything.
  return []
endfunction

" For matching members, find matches for following items.
" When "all" is non-zero find all, otherwise just return 1 if there is any
" member.
function! s:SearchMembers(matches, items, all)
  let res = []
  for i in range(len(a:matches))
    let typename = ''
    if has_key(a:matches[i], 'dict')
      if has_key(a:matches[i].dict, 'typename')
	let typename = a:matches[i].dict['typename']
      elseif has_key(a:matches[i].dict, 'typeref')
	let typename = a:matches[i].dict['typeref']
      endif
      let line = "\t" . a:matches[i].dict['cmd']
    else
      let line = a:matches[i]['tagline']
      let e = matchend(line, '\ttypename:')
      if e < 0
	let e = matchend(line, '\ttyperef:')
      endif
      if e > 0
	" Use typename field
	let typename = matchstr(line, '[^\t]*', e)
      endif
    endif

    if typename != ''
      call extend(res, s:StructMembers(typename, a:items, a:all))
    else
      " Use the search command (the declaration itself).
      let s = match(line, '\t\zs/^')
      if s > 0
	let e = match(line, '\<' . a:matches[i]['match'] . '\>', s)
	if e > 0
	  call extend(res, s:Nextitem(strpart(line, s, e - s), a:items, 0, a:all))
	endif
      endif
    endif
    if a:all == 0 && len(res) > 0
      break
    endif
  endfor
  return res
endfunc

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z>KX)_)_vim80/autoload/rubycomplete.vimnu�[���" Vim completion script
" Language:             Ruby
" Maintainer:           Mark Guzman <segfault@hasno.info>
" URL:                  https://github.com/vim-ruby/vim-ruby
" Release Coordinator:  Doug Kearns <dougkearns@gmail.com>
" Maintainer Version:   0.8.1
" ----------------------------------------------------------------------------
"
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
" ----------------------------------------------------------------------------

" {{{ requirement checks

function! s:ErrMsg(msg)
    echohl ErrorMsg
    echo a:msg
    echohl None
endfunction

if !has('ruby')
    call s:ErrMsg( "Error: Rubycomplete requires vim compiled with +ruby" )
    call s:ErrMsg( "Error: falling back to syntax completion" )
    " lets fall back to syntax completion
    setlocal omnifunc=syntaxcomplete#Complete
    finish
endif

if version < 700
    call s:ErrMsg( "Error: Required vim >= 7.0" )
    finish
endif
" }}} requirement checks

" {{{ configuration failsafe initialization
if !exists("g:rubycomplete_rails")
    let g:rubycomplete_rails = 0
endif

if !exists("g:rubycomplete_classes_in_global")
    let g:rubycomplete_classes_in_global = 0
endif

if !exists("g:rubycomplete_buffer_loading")
    let g:rubycomplete_buffer_loading = 0
endif

if !exists("g:rubycomplete_include_object")
    let g:rubycomplete_include_object = 0
endif

if !exists("g:rubycomplete_include_objectspace")
    let g:rubycomplete_include_objectspace = 0
endif
" }}} configuration failsafe initialization

" {{{ vim-side support functions
let s:rubycomplete_debug = 0

function! s:dprint(msg)
    if s:rubycomplete_debug == 1
        echom a:msg
    endif
endfunction

function! s:GetBufferRubyModule(name, ...)
    if a:0 == 1
        let [snum,enum] = s:GetBufferRubyEntity(a:name, "module", a:1)
    else
        let [snum,enum] = s:GetBufferRubyEntity(a:name, "module")
    endif
    return snum . '..' . enum
endfunction

function! s:GetBufferRubyClass(name, ...)
    if a:0 >= 1
        let [snum,enum] = s:GetBufferRubyEntity(a:name, "class", a:1)
    else
        let [snum,enum] = s:GetBufferRubyEntity(a:name, "class")
    endif
    return snum . '..' . enum
endfunction

function! s:GetBufferRubySingletonMethods(name)
endfunction

function! s:GetBufferRubyEntity( name, type, ... )
    let lastpos = getpos(".")
    let lastline = lastpos
    if (a:0 >= 1)
        let lastline = [ 0, a:1, 0, 0 ]
        call cursor( a:1, 0 )
    endif

    let stopline = 1

    let crex = '^\s*\<' . a:type . '\>\s*\<' . escape(a:name, '*') . '\>\s*\(<\s*.*\s*\)\?'
    let [lnum,lcol] = searchpos( crex, 'w' )
    "let [lnum,lcol] = searchpairpos( crex . '\zs', '', '\(end\|}\)', 'w' )

    if lnum == 0 && lcol == 0
        call cursor(lastpos[1], lastpos[2])
        return [0,0]
    endif

    let curpos = getpos(".")
    let [enum,ecol] = searchpairpos( crex, '', '\(end\|}\)', 'wr' )
    call cursor(lastpos[1], lastpos[2])

    if lnum > enum
        return [0,0]
    endif
    " we found a the class def
    return [lnum,enum]
endfunction

function! s:IsInClassDef()
    return s:IsPosInClassDef( line('.') )
endfunction

function! s:IsPosInClassDef(pos)
    let [snum,enum] = s:GetBufferRubyEntity( '.*', "class" )
    let ret = 'nil'

    if snum < a:pos && a:pos < enum
        let ret = snum . '..' . enum
    endif

    return ret
endfunction

function! s:GetRubyVarType(v)
    let stopline = 1
    let vtp = ''
    let pos = getpos('.')
    let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$'
    let [lnum,lcol] = searchpos(sstr,'nb',stopline)
    if lnum != 0 && lcol != 0
        call setpos('.',pos)
        let str = getline(lnum)
        let vtp = substitute(str,sstr,'\1','')
        return vtp
    endif
    call setpos('.',pos)
    let ctors = '\(now\|new\|open\|get_instance'
    if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1
        let ctors = ctors.'\|find\|create'
    else
    endif
    let ctors = ctors.'\)'

    let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
    let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
    let [lnum,lcol] = searchpos(sstr,'nb',stopline)
    if lnum != 0 && lcol != 0
        let str = matchstr(getline(lnum),fstr,lcol)
        let str = substitute(str,'^=\s*','','')

        call setpos('.',pos)
        if str == '"' || str == '''' || stridx(tolower(str), '%q[') != -1
            return 'String'
        elseif str == '[' || stridx(str, '%w[') != -1
            return 'Array'
        elseif str == '{'
            return 'Hash'
        elseif str == '/' || str == '%r{'
            return 'Regexp'
        elseif strlen(str) >= 4 && stridx(str,'..') != -1
            return 'Range'
        elseif stridx(str, 'lambda') != -1 || str == '&'
            return 'Proc'
        elseif strlen(str) > 4
            let l = stridx(str,'.')
            return str[0:l-1]
        end
        return ''
    endif
    call setpos('.',pos)
    return ''
endfunction

"}}} vim-side support functions

"{{{ vim-side completion function
function! rubycomplete#Init()
    execute "ruby VimRubyCompletion.preload_rails"
endfunction

function! rubycomplete#Complete(findstart, base)
     "findstart = 1 when we need to get the text length
    if a:findstart
        let line = getline('.')
        let idx = col('.')
        while idx > 0
            let idx -= 1
            let c = line[idx-1]
            if c =~ '\w'
                continue
            elseif ! c =~ '\.'
                let idx = -1
                break
            else
                break
            endif
        endwhile

        return idx
    "findstart = 0 when we need to return the list of completions
    else
        let g:rubycomplete_completions = []
        execute "ruby VimRubyCompletion.get_completions('" . a:base . "')"
        return g:rubycomplete_completions
    endif
endfunction
"}}} vim-side completion function

"{{{ ruby-side code
function! s:DefRuby()
ruby << RUBYEOF
# {{{ ruby completion

begin
    require 'rubygems' # let's assume this is safe...?
rescue Exception
    #ignore?
end
class VimRubyCompletion
# {{{ constants
  @@debug = false
  @@ReservedWords = [
        "BEGIN", "END",
        "alias", "and",
        "begin", "break",
        "case", "class",
        "def", "defined", "do",
        "else", "elsif", "end", "ensure",
        "false", "for",
        "if", "in",
        "module",
        "next", "nil", "not",
        "or",
        "redo", "rescue", "retry", "return",
        "self", "super",
        "then", "true",
        "undef", "unless", "until",
        "when", "while",
        "yield",
      ]

  @@Operators = [ "%", "&", "*", "**", "+",  "-",  "/",
        "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", ">>",
        "[]", "[]=", "^", ]
# }}} constants

# {{{ buffer analysis magic
  def load_requires
    buf = VIM::Buffer.current
    enum = buf.line_number
    nums = Range.new( 1, enum )
    nums.each do |x|
      ln = buf[x]
      begin
        eval( "require %s" % $1 ) if /.*require\s*(.*)$/.match( ln )
      rescue Exception
        #ignore?
      end
    end
  end

  def load_gems
    fpath = VIM::evaluate("get(g:, 'rubycomplete_gemfile_path', 'Gemfile')")
    return unless File.file?(fpath) && File.readable?(fpath)
    want_bundler = VIM::evaluate("get(g:, 'rubycomplete_use_bundler')")
    parse_file = !want_bundler
    begin
      require 'bundler'
      Bundler.setup
      Bundler.require
    rescue Exception
      parse_file = true
    end
    if parse_file
      File.new(fpath).each_line do |line|
        begin
          require $1 if /\s*gem\s*['"]([^'"]+)/.match(line)
        rescue Exception
        end
      end
    end
  end

  def load_buffer_class(name)
    dprint "load_buffer_class(%s) START" % name
    classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")')
    return if classdef == nil

    pare = /^\s*class\s*(.*)\s*<\s*(.*)\s*\n/.match( classdef )
    load_buffer_class( $2 ) if pare != nil  && $2 != name # load parent class if needed

    mixre = /.*\n\s*(include|prepend)\s*(.*)\s*\n/.match( classdef )
    load_buffer_module( $2 ) if mixre != nil && $2 != name # load mixins if needed

    begin
      eval classdef
    rescue Exception
      VIM::evaluate( "s:ErrMsg( 'Problem loading class \"%s\", was it already completed?' )" % name )
    end
    dprint "load_buffer_class(%s) END" % name
  end

  def load_buffer_module(name)
    dprint "load_buffer_module(%s) START" % name
    classdef = get_buffer_entity(name, 's:GetBufferRubyModule("%s")')
    return if classdef == nil

    begin
      eval classdef
    rescue Exception
      VIM::evaluate( "s:ErrMsg( 'Problem loading module \"%s\", was it already completed?' )" % name )
    end
    dprint "load_buffer_module(%s) END" % name
  end

  def get_buffer_entity(name, vimfun)
    loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
    return nil if loading_allowed.to_i.zero?
    return nil if /(\"|\')+/.match( name )
    buf = VIM::Buffer.current
    nums = eval( VIM::evaluate( vimfun % name ) )
    return nil if nums == nil
    return nil if nums.min == nums.max && nums.min == 0

    dprint "get_buffer_entity START"
    visited = []
    clscnt = 0
    bufname = VIM::Buffer.current.name
    classdef = ""
    cur_line = VIM::Buffer.current.line_number
    while (nums != nil && !(nums.min == 0 && nums.max == 0) )
      dprint "visited: %s" % visited.to_s
      break if visited.index( nums )
      visited << nums

      nums.each do |x|
        if x != cur_line
          next if x == 0
          ln = buf[x]
          if /^\s*(module|class|def|include)\s+/.match(ln)
            clscnt += 1 if $1 == "class"
            #dprint "\$1$1
            classdef += "%s\n" % ln
            classdef += "end\n" if /def\s+/.match(ln)
            dprint ln
          end
        end
      end

      nm = "%s(::.*)*\", %s, \"" % [ name, nums.last ]
      nums = eval( VIM::evaluate( vimfun % nm ) )
      dprint "nm: \"%s\"" % nm
      dprint "vimfun: %s" % (vimfun % nm)
      dprint "got nums: %s" % nums.to_s
    end
    if classdef.length > 1
        classdef += "end\n"*clscnt
        # classdef = "class %s\n%s\nend\n" % [ bufname.gsub( /\/|\\/, "_" ), classdef ]
    end

    dprint "get_buffer_entity END"
    dprint "classdef====start"
    lns = classdef.split( "\n" )
    lns.each { |x| dprint x }
    dprint "classdef====end"
    return classdef
  end

  def get_var_type( receiver )
    if /(\"|\')+/.match( receiver )
      "String"
    else
      VIM::evaluate("s:GetRubyVarType('%s')" % receiver)
    end
  end

  def dprint( txt )
    print txt if @@debug
  end

  def escape_vim_singlequote_string(str)
    str.to_s.gsub(/'/,"\\'")
  end

  def get_buffer_entity_list( type )
    # this will be a little expensive.
    loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
    allow_aggressive_load = VIM::evaluate("exists('g:rubycomplete_classes_in_global') && g:rubycomplete_classes_in_global")
    return [] if allow_aggressive_load.to_i.zero? || loading_allowed.to_i.zero?

    buf = VIM::Buffer.current
    eob = buf.length
    ret = []
    rg = 1..eob
    re = eval( "/^\s*%s\s*([A-Za-z0-9_:-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*/" % type )

    rg.each do |x|
      if re.match( buf[x] )
        next if type == "def" && eval( VIM::evaluate("s:IsPosInClassDef(%s)" % x) ) != nil
        ret.push $1
      end
    end

    return ret
  end

  def get_buffer_modules
    return get_buffer_entity_list( "modules" )
  end

  def get_buffer_methods
    return get_buffer_entity_list( "def" )
  end

  def get_buffer_classes
    return get_buffer_entity_list( "class" )
  end


  def load_rails
    allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
    return if allow_rails.to_i.zero?

    buf_path = VIM::evaluate('expand("%:p")')
    file_name = VIM::evaluate('expand("%:t")')
    vim_dir = VIM::evaluate('getcwd()')
    file_dir = buf_path.gsub( file_name, '' )
    file_dir.gsub!( /\\/, "/" )
    vim_dir.gsub!( /\\/, "/" )
    vim_dir << "/"
    dirs = [ vim_dir, file_dir ]
    sdirs = [ "", "./", "../", "../../", "../../../", "../../../../" ]
    rails_base = nil

    dirs.each do |dir|
      sdirs.each do |sub|
        trail = "%s%s" % [ dir, sub ]
        tcfg = "%sconfig" % trail

        if File.exists?( tcfg )
          rails_base = trail
          break
        end
      end
      break if rails_base
    end

    return if rails_base == nil
    $:.push rails_base unless $:.index( rails_base )

    rails_config = rails_base + "config/"
    rails_lib = rails_base + "lib/"
    $:.push rails_config unless $:.index( rails_config )
    $:.push rails_lib unless $:.index( rails_lib )

    bootfile = rails_config + "boot.rb"
    envfile = rails_config + "environment.rb"
    if File.exists?( bootfile ) && File.exists?( envfile )
      begin
        require bootfile
        require envfile
        begin
          require 'console_app'
          require 'console_with_helpers'
        rescue Exception
          dprint "Rails 1.1+ Error %s" % $!
          # assume 1.0
        end
        #eval( "Rails::Initializer.run" ) #not necessary?
        VIM::command('let s:rubycomplete_rails_loaded = 1')
        dprint "rails loaded"
      rescue Exception
        dprint "Rails Error %s" % $!
        VIM::evaluate( "s:ErrMsg('Error loading rails environment')" )
      end
    end
  end

  def get_rails_helpers
    allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
    rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded')
    return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero?

    buf_path = VIM::evaluate('expand("%:p")')
    buf_path.gsub!( /\\/, "/" )
    path_elm = buf_path.split( "/" )
    dprint "buf_path: %s" % buf_path
    types = [ "app", "db", "lib", "test", "components", "script" ]

    i = nil
    ret = []
    type = nil
    types.each do |t|
      i = path_elm.index( t )
      break if i
    end
    type = path_elm[i]
    type.downcase!

    dprint "type: %s" % type
    case type
      when "app"
        i += 1
        subtype = path_elm[i]
        subtype.downcase!

        dprint "subtype: %s" % subtype
        case subtype
          when "views"
            ret += ActionView::Base.instance_methods
            ret += ActionView::Base.methods
          when "controllers"
            ret += ActionController::Base.instance_methods
            ret += ActionController::Base.methods
          when "models"
            ret += ActiveRecord::Base.instance_methods
            ret += ActiveRecord::Base.methods
        end

      when "db"
        ret += ActiveRecord::ConnectionAdapters::SchemaStatements.instance_methods
        ret += ActiveRecord::ConnectionAdapters::SchemaStatements.methods
    end


    return ret
  end

  def add_rails_columns( cls )
    allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
    rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded')
    return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero?

    begin
        eval( "#{cls}.establish_connection" )
        return [] unless eval( "#{cls}.ancestors.include?(ActiveRecord::Base).to_s" )
        col = eval( "#{cls}.column_names" )
        return col if col
    rescue
        dprint "add_rails_columns err: (cls: %s) %s" % [ cls, $! ]
        return []
    end
    return []
  end

  def clean_sel(sel, msg)
    ret = sel.reject{|x|x.nil?}.uniq
    ret = ret.grep(/^#{Regexp.quote(msg)}/) if msg != nil
    ret
  end

  def get_rails_view_methods
    allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
    rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded')
    return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero?

    buf_path = VIM::evaluate('expand("%:p")')
    buf_path.gsub!( /\\/, "/" )
    pelm = buf_path.split( "/" )
    idx = pelm.index( "views" )

    return [] unless idx
    idx += 1

    clspl = pelm[idx].camelize.pluralize
    cls = clspl.singularize

    ret = []
    begin
      ret += eval( "#{cls}.instance_methods" )
      ret += eval( "#{clspl}Helper.instance_methods" )
    rescue Exception
      dprint "Error: Unable to load rails view helpers for %s: %s" % [ cls, $! ]
    end

    return ret
  end
# }}} buffer analysis magic

# {{{ main completion code
  def self.preload_rails
    a = VimRubyCompletion.new
    require 'Thread'
    Thread.new(a) do |b|
      begin
      b.load_rails
      rescue
      end
    end
    a.load_rails
  rescue
  end

  def self.get_completions(base)
    b = VimRubyCompletion.new
    b.get_completions base
  end

  def get_completions(base)
    loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
    if loading_allowed.to_i == 1
      load_requires
      load_rails
    end

    want_gems = VIM::evaluate("get(g:, 'rubycomplete_load_gemfile')")
    load_gems unless want_gems.to_i.zero?
    

    input = VIM::Buffer.current.line
    cpos = VIM::Window.current.cursor[1] - 1
    input = input[0..cpos]
    input += base
    input.sub!(/.*[ \t\n\"\\'`><=;|&{(]/, '') # Readline.basic_word_break_characters
    input.sub!(/self\./, '')
    input.sub!(/.*((\.\.[\[(]?)|([\[(]))/, '')

    dprint 'input %s' % input
    message = nil
    receiver = nil
    methods = []
    variables = []
    classes = []
    constants = []

    case input
      when /^(\/[^\/]*\/)\.([^.]*)$/ # Regexp
        receiver = $1
        message = Regexp.quote($2)
        methods = Regexp.instance_methods(true)

      when /^([^\]]*\])\.([^.]*)$/ # Array
        receiver = $1
        message = Regexp.quote($2)
        methods = Array.instance_methods(true)

      when /^([^\}]*\})\.([^.]*)$/ # Proc or Hash
        receiver = $1
        message = Regexp.quote($2)
        methods = Proc.instance_methods(true) | Hash.instance_methods(true)

      when /^(:[^:.]*)$/ # Symbol
        dprint "symbol"
        if Symbol.respond_to?(:all_symbols)
          receiver = $1
          message = $1.sub( /:/, '' )
          methods = Symbol.all_symbols.collect{|s| s.id2name}
          methods.delete_if { |c| c.match( /'/ ) }
        end

      when /^::([A-Z][^:\.\(]*)$/ # Absolute Constant or class methods
        dprint "const or cls"
        receiver = $1
        methods = Object.constants
        methods.grep(/^#{receiver}/).collect{|e| "::" + e}

      when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
        receiver = $1
        message = Regexp.quote($4)
        dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ]
        load_buffer_class( receiver )
        begin
          classes = eval("#{receiver}.constants")
          #methods = eval("#{receiver}.methods")
        rescue Exception
          dprint "exception: %s" % $!
          methods = []
        end
        methods.grep(/^#{message}/).collect{|e| receiver + "::" + e}

      when /^(:[^:.]+)\.([^.]*)$/ # Symbol
        dprint "symbol"
        receiver = $1
        message = Regexp.quote($2)
        methods = Symbol.instance_methods(true)

      when /^([0-9_]+(\.[0-9_]+)?(e[0-9]+)?)\.([^.]*)$/ # Numeric
        dprint "numeric"
        receiver = $1
        message = Regexp.quote($4)
        begin
          methods = eval(receiver).methods
        rescue Exception
          methods = []
        end

      when /^(\$[^.]*)$/ #global
        dprint "global"
        methods = global_variables.grep(Regexp.new(Regexp.quote($1)))

      when /^((\.?[^.]+)+?)\.([^.]*)$/ # variable
        dprint "variable"
        receiver = $1
        message = Regexp.quote($3)
        load_buffer_class( receiver )

        cv = eval("self.class.constants")
        vartype = get_var_type( receiver )
        dprint "vartype: %s" % vartype

        invalid_vartype = ['', "gets"]
        if !invalid_vartype.include?(vartype)
          load_buffer_class( vartype )

          begin
            methods = eval("#{vartype}.instance_methods")
            variables = eval("#{vartype}.instance_variables")
          rescue Exception
            dprint "load_buffer_class err: %s" % $!
          end
        elsif (cv).include?(receiver)
          # foo.func and foo is local var.
          methods = eval("#{receiver}.methods")
          vartype = receiver
        elsif /^[A-Z]/ =~ receiver and /\./ !~ receiver
          vartype = receiver
          # Foo::Bar.func
          begin
            methods = eval("#{receiver}.methods")
          rescue Exception
          end
        else
          # func1.func2
          ObjectSpace.each_object(Module){|m|
            next if m.name != "IRB::Context" and
              /^(IRB|SLex|RubyLex|RubyToken)/ =~ m.name
            methods.concat m.instance_methods(false)
          }
        end
        variables += add_rails_columns( "#{vartype}" ) if vartype && !invalid_vartype.include?(vartype)

      when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/
        message = $1
        methods = Range.instance_methods(true)

      when /^\.([^.]*)$/ # unknown(maybe String)
        message = Regexp.quote($1)
        methods = String.instance_methods(true)

    else
      dprint "default/other"
      inclass = eval( VIM::evaluate("s:IsInClassDef()") )

      if inclass != nil
        dprint "inclass"
        classdef = "%s\n" % VIM::Buffer.current[ inclass.min ]
        found = /^\s*class\s*([A-Za-z0-9_-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*\n$/.match( classdef )

        if found != nil
          receiver = $1
          message = input
          load_buffer_class( receiver )
          begin
            methods = eval( "#{receiver}.instance_methods" )
            variables += add_rails_columns( "#{receiver}" )
          rescue Exception
            found = nil
          end
        end
      end

      if inclass == nil || found == nil
        dprint "inclass == nil"
        methods = get_buffer_methods
        methods += get_rails_view_methods

        cls_const = Class.constants
        constants = cls_const.select { |c| /^[A-Z_-]+$/.match( c ) }
        classes = eval("self.class.constants") - constants
        classes += get_buffer_classes
        classes += get_buffer_modules

        include_objectspace = VIM::evaluate("exists('g:rubycomplete_include_objectspace') && g:rubycomplete_include_objectspace")
        ObjectSpace.each_object(Class) { |cls| classes << cls.to_s } if include_objectspace == "1"
        message = receiver = input
      end

      methods += get_rails_helpers
      methods += Kernel.public_methods
    end


    include_object = VIM::evaluate("exists('g:rubycomplete_include_object') && g:rubycomplete_include_object")
    methods = clean_sel( methods, message )
    methods = (methods-Object.instance_methods) if include_object == "0"
    rbcmeth = (VimRubyCompletion.instance_methods-Object.instance_methods) # lets remove those rubycomplete methods
    methods = (methods-rbcmeth)

    variables = clean_sel( variables, message )
    classes = clean_sel( classes, message ) - ["VimRubyCompletion"]
    constants = clean_sel( constants, message )

    valid = []
    valid += methods.collect { |m| { :name => m.to_s, :type => 'm' } }
    valid += variables.collect { |v| { :name => v.to_s, :type => 'v' } }
    valid += classes.collect { |c| { :name => c.to_s, :type => 't' } }
    valid += constants.collect { |d| { :name => d.to_s, :type => 'd' } }
    valid.sort! { |x,y| x[:name] <=> y[:name] }

    outp = ""

    rg = 0..valid.length
    rg.step(150) do |x|
      stpos = 0+x
      enpos = 150+x
      valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ].map{|x|escape_vim_singlequote_string(x)} }
      outp.sub!(/,$/, '')

      VIM::command("call extend(g:rubycomplete_completions, [%s])" % outp)
      outp = ""
    end
  end
# }}} main completion code

end # VimRubyCompletion
# }}} ruby completion
RUBYEOF
endfunction

let s:rubycomplete_rails_loaded = 0

call s:DefRuby()
"}}} ruby-side code


" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl:
PK�j�Z�:���vim80/autoload/rustfmt.vimnu�[���" Author: Stephen Sugden <stephen@stephensugden.com>
"
" Adapted from https://github.com/fatih/vim-go
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim

if !exists("g:rustfmt_autosave")
	let g:rustfmt_autosave = 0
endif

if !exists("g:rustfmt_command")
	let g:rustfmt_command = "rustfmt"
endif

if !exists("g:rustfmt_options")
	let g:rustfmt_options = ""
endif

if !exists("g:rustfmt_fail_silently")
	let g:rustfmt_fail_silently = 0
endif

let s:got_fmt_error = 0

function! s:RustfmtCommandRange(filename, line1, line2)
	let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
	return printf("%s %s --write-mode=overwrite --file-lines '[%s]'", g:rustfmt_command, g:rustfmt_options, json_encode(l:arg))
endfunction

function! s:RustfmtCommand(filename)
	return g:rustfmt_command . " --write-mode=overwrite " . g:rustfmt_options . " " . shellescape(a:filename)
endfunction

function! s:RunRustfmt(command, curw, tmpname)
	if exists("*systemlist")
		let out = systemlist(a:command)
	else
		let out = split(system(a:command), '\r\?\n')
	endif

	if v:shell_error == 0 || v:shell_error == 3
		" remove undo point caused via BufWritePre
		try | silent undojoin | catch | endtry

		" Replace current file with temp file, then reload buffer
		call rename(a:tmpname, expand('%'))
		silent edit!
		let &syntax = &syntax

		" only clear location list if it was previously filled to prevent
		" clobbering other additions
		if s:got_fmt_error
			let s:got_fmt_error = 0
			call setloclist(0, [])
			lwindow
		endif
	elseif g:rustfmt_fail_silently == 0
		" otherwise get the errors and put them in the location list
		let errors = []

		for line in out
			" src/lib.rs:13:5: 13:10 error: expected `,`, or `}`, found `value`
			let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\):\s*\(\d\+:\d\+\s*\)\?\s*error: \(.*\)')
			if !empty(tokens)
				call add(errors, {"filename": @%,
						 \"lnum":     tokens[2],
						 \"col":      tokens[3],
						 \"text":     tokens[5]})
			endif
		endfor

		if empty(errors)
			% | " Couldn't detect rustfmt error format, output errors
		endif

		if !empty(errors)
			call setloclist(0, errors, 'r')
			echohl Error | echomsg "rustfmt returned error" | echohl None
		endif

		let s:got_fmt_error = 1
		lwindow
		" We didn't use the temp file, so clean up
		call delete(a:tmpname)
	endif

	call winrestview(a:curw)
endfunction

function! rustfmt#FormatRange(line1, line2)
	let l:curw = winsaveview()
	let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
	call writefile(getline(1, '$'), l:tmpname)

	let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)

	call s:RunRustfmt(command, l:curw, l:tmpname)
endfunction

function! rustfmt#Format()
	let l:curw = winsaveview()
	let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
	call writefile(getline(1, '$'), l:tmpname)

	let command = s:RustfmtCommand(l:tmpname)

	call s:RunRustfmt(command, l:curw, l:tmpname)
endfunction
PK�j�Z�Ua�M}M}vim80/autoload/tohtml.vimnu�[���" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2013 Sep 03
"
" Additional contributors:
"
"	      Original by Bram Moolenaar <Bram@vim.org>
"	      Diff2HTML() added by Christian Brabandt <cb@256bit.org>
"
"	      See Mercurial change logs for more!

" this file uses line continuations
let s:cpo_sav = &cpo
set cpo&vim

" Automatically find charsets from all encodings supported natively by Vim. With
" the 8bit- and 2byte- prefixes, Vim can actually support more encodings than
" this. Let the user specify these however since they won't be supported on
" every system.
"
" Note, not all of Vim's supported encodings have a charset to use.
"
" Names in this list are from:
"   http://www.iana.org/assignments/character-sets
" g:tohtml#encoding_to_charset: {{{
let g:tohtml#encoding_to_charset = {
      \ 'latin1' : 'ISO-8859-1',
      \ 'iso-8859-2' : 'ISO-8859-2',
      \ 'iso-8859-3' : 'ISO-8859-3',
      \ 'iso-8859-4' : 'ISO-8859-4',
      \ 'iso-8859-5' : 'ISO-8859-5',
      \ 'iso-8859-6' : 'ISO-8859-6',
      \ 'iso-8859-7' : 'ISO-8859-7',
      \ 'iso-8859-8' : 'ISO-8859-8',
      \ 'iso-8859-9' : 'ISO-8859-9',
      \ 'iso-8859-10' : '',
      \ 'iso-8859-13' : 'ISO-8859-13',
      \ 'iso-8859-14' : '',
      \ 'iso-8859-15' : 'ISO-8859-15',
      \ 'koi8-r' : 'KOI8-R',
      \ 'koi8-u' : 'KOI8-U',
      \ 'macroman' : 'macintosh',
      \ 'cp437' : '',
      \ 'cp775' : '',
      \ 'cp850' : '',
      \ 'cp852' : '',
      \ 'cp855' : '',
      \ 'cp857' : '',
      \ 'cp860' : '',
      \ 'cp861' : '',
      \ 'cp862' : '',
      \ 'cp863' : '',
      \ 'cp865' : '',
      \ 'cp866' : 'IBM866',
      \ 'cp869' : '',
      \ 'cp874' : '',
      \ 'cp1250' : 'windows-1250',
      \ 'cp1251' : 'windows-1251',
      \ 'cp1253' : 'windows-1253',
      \ 'cp1254' : 'windows-1254',
      \ 'cp1255' : 'windows-1255',
      \ 'cp1256' : 'windows-1256',
      \ 'cp1257' : 'windows-1257',
      \ 'cp1258' : 'windows-1258',
      \ 'euc-jp' : 'EUC-JP',
      \ 'sjis' : 'Shift_JIS',
      \ 'cp932' : 'Shift_JIS',
      \ 'cp949' : '',
      \ 'euc-kr' : 'EUC-KR',
      \ 'cp936' : 'GBK',
      \ 'euc-cn' : 'GB2312',
      \ 'big5' : 'Big5',
      \ 'cp950' : 'Big5',
      \ 'utf-8' : 'UTF-8',
      \ 'ucs-2' : 'UTF-8',
      \ 'ucs-2le' : 'UTF-8',
      \ 'utf-16' : 'UTF-8',
      \ 'utf-16le' : 'UTF-8',
      \ 'ucs-4' : 'UTF-8',
      \ 'ucs-4le' : 'UTF-8',
      \ }
lockvar g:tohtml#encoding_to_charset
" Notes:
"   1. All UCS/UTF are converted to UTF-8 because it is much better supported
"   2. Any blank spaces are there because Vim supports it but at least one major
"      web browser does not according to http://wiki.whatwg.org/wiki/Web_Encodings.
" }}}

" Only automatically find encodings supported natively by Vim, let the user
" specify the encoding if it's not natively supported. This function is only
" used when the user specifies the charset, they better know what they are
" doing!
"
" Names in this list are from:
"   http://www.iana.org/assignments/character-sets
" g:tohtml#charset_to_encoding: {{{
let g:tohtml#charset_to_encoding = {
      \ 'iso_8859-1:1987' : 'latin1',
      \ 'iso-ir-100' : 'latin1',
      \ 'iso_8859-1' : 'latin1',
      \ 'iso-8859-1' : 'latin1',
      \ 'latin1' : 'latin1',
      \ 'l1' : 'latin1',
      \ 'ibm819' : 'latin1',
      \ 'cp819' : 'latin1',
      \ 'csisolatin1' : 'latin1',
      \ 'iso_8859-2:1987' : 'iso-8859-2',
      \ 'iso-ir-101' : 'iso-8859-2',
      \ 'iso_8859-2' : 'iso-8859-2',
      \ 'iso-8859-2' : 'iso-8859-2',
      \ 'latin2' : 'iso-8859-2',
      \ 'l2' : 'iso-8859-2',
      \ 'csisolatin2' : 'iso-8859-2',
      \ 'iso_8859-3:1988' : 'iso-8859-3',
      \ 'iso-ir-109' : 'iso-8859-3',
      \ 'iso_8859-3' : 'iso-8859-3',
      \ 'iso-8859-3' : 'iso-8859-3',
      \ 'latin3' : 'iso-8859-3',
      \ 'l3' : 'iso-8859-3',
      \ 'csisolatin3' : 'iso-8859-3',
      \ 'iso_8859-4:1988' : 'iso-8859-4',
      \ 'iso-ir-110' : 'iso-8859-4',
      \ 'iso_8859-4' : 'iso-8859-4',
      \ 'iso-8859-4' : 'iso-8859-4',
      \ 'latin4' : 'iso-8859-4',
      \ 'l4' : 'iso-8859-4',
      \ 'csisolatin4' : 'iso-8859-4',
      \ 'iso_8859-5:1988' : 'iso-8859-5',
      \ 'iso-ir-144' : 'iso-8859-5',
      \ 'iso_8859-5' : 'iso-8859-5',
      \ 'iso-8859-5' : 'iso-8859-5',
      \ 'cyrillic' : 'iso-8859-5',
      \ 'csisolatincyrillic' : 'iso-8859-5',
      \ 'iso_8859-6:1987' : 'iso-8859-6',
      \ 'iso-ir-127' : 'iso-8859-6',
      \ 'iso_8859-6' : 'iso-8859-6',
      \ 'iso-8859-6' : 'iso-8859-6',
      \ 'ecma-114' : 'iso-8859-6',
      \ 'asmo-708' : 'iso-8859-6',
      \ 'arabic' : 'iso-8859-6',
      \ 'csisolatinarabic' : 'iso-8859-6',
      \ 'iso_8859-7:1987' : 'iso-8859-7',
      \ 'iso-ir-126' : 'iso-8859-7',
      \ 'iso_8859-7' : 'iso-8859-7',
      \ 'iso-8859-7' : 'iso-8859-7',
      \ 'elot_928' : 'iso-8859-7',
      \ 'ecma-118' : 'iso-8859-7',
      \ 'greek' : 'iso-8859-7',
      \ 'greek8' : 'iso-8859-7',
      \ 'csisolatingreek' : 'iso-8859-7',
      \ 'iso_8859-8:1988' : 'iso-8859-8',
      \ 'iso-ir-138' : 'iso-8859-8',
      \ 'iso_8859-8' : 'iso-8859-8',
      \ 'iso-8859-8' : 'iso-8859-8',
      \ 'hebrew' : 'iso-8859-8',
      \ 'csisolatinhebrew' : 'iso-8859-8',
      \ 'iso_8859-9:1989' : 'iso-8859-9',
      \ 'iso-ir-148' : 'iso-8859-9',
      \ 'iso_8859-9' : 'iso-8859-9',
      \ 'iso-8859-9' : 'iso-8859-9',
      \ 'latin5' : 'iso-8859-9',
      \ 'l5' : 'iso-8859-9',
      \ 'csisolatin5' : 'iso-8859-9',
      \ 'iso-8859-10' : 'iso-8859-10',
      \ 'iso-ir-157' : 'iso-8859-10',
      \ 'l6' : 'iso-8859-10',
      \ 'iso_8859-10:1992' : 'iso-8859-10',
      \ 'csisolatin6' : 'iso-8859-10',
      \ 'latin6' : 'iso-8859-10',
      \ 'iso-8859-13' : 'iso-8859-13',
      \ 'iso-8859-14' : 'iso-8859-14',
      \ 'iso-ir-199' : 'iso-8859-14',
      \ 'iso_8859-14:1998' : 'iso-8859-14',
      \ 'iso_8859-14' : 'iso-8859-14',
      \ 'latin8' : 'iso-8859-14',
      \ 'iso-celtic' : 'iso-8859-14',
      \ 'l8' : 'iso-8859-14',
      \ 'iso-8859-15' : 'iso-8859-15',
      \ 'iso_8859-15' : 'iso-8859-15',
      \ 'latin-9' : 'iso-8859-15',
      \ 'koi8-r' : 'koi8-r',
      \ 'cskoi8r' : 'koi8-r',
      \ 'koi8-u' : 'koi8-u',
      \ 'macintosh' : 'macroman',
      \ 'mac' : 'macroman',
      \ 'csmacintosh' : 'macroman',
      \ 'ibm437' : 'cp437',
      \ 'cp437' : 'cp437',
      \ '437' : 'cp437',
      \ 'cspc8codepage437' : 'cp437',
      \ 'ibm775' : 'cp775',
      \ 'cp775' : 'cp775',
      \ 'cspc775baltic' : 'cp775',
      \ 'ibm850' : 'cp850',
      \ 'cp850' : 'cp850',
      \ '850' : 'cp850',
      \ 'cspc850multilingual' : 'cp850',
      \ 'ibm852' : 'cp852',
      \ 'cp852' : 'cp852',
      \ '852' : 'cp852',
      \ 'cspcp852' : 'cp852',
      \ 'ibm855' : 'cp855',
      \ 'cp855' : 'cp855',
      \ '855' : 'cp855',
      \ 'csibm855' : 'cp855',
      \ 'ibm857' : 'cp857',
      \ 'cp857' : 'cp857',
      \ '857' : 'cp857',
      \ 'csibm857' : 'cp857',
      \ 'ibm860' : 'cp860',
      \ 'cp860' : 'cp860',
      \ '860' : 'cp860',
      \ 'csibm860' : 'cp860',
      \ 'ibm861' : 'cp861',
      \ 'cp861' : 'cp861',
      \ '861' : 'cp861',
      \ 'cp-is' : 'cp861',
      \ 'csibm861' : 'cp861',
      \ 'ibm862' : 'cp862',
      \ 'cp862' : 'cp862',
      \ '862' : 'cp862',
      \ 'cspc862latinhebrew' : 'cp862',
      \ 'ibm863' : 'cp863',
      \ 'cp863' : 'cp863',
      \ '863' : 'cp863',
      \ 'csibm863' : 'cp863',
      \ 'ibm865' : 'cp865',
      \ 'cp865' : 'cp865',
      \ '865' : 'cp865',
      \ 'csibm865' : 'cp865',
      \ 'ibm866' : 'cp866',
      \ 'cp866' : 'cp866',
      \ '866' : 'cp866',
      \ 'csibm866' : 'cp866',
      \ 'ibm869' : 'cp869',
      \ 'cp869' : 'cp869',
      \ '869' : 'cp869',
      \ 'cp-gr' : 'cp869',
      \ 'csibm869' : 'cp869',
      \ 'windows-1250' : 'cp1250',
      \ 'windows-1251' : 'cp1251',
      \ 'windows-1253' : 'cp1253',
      \ 'windows-1254' : 'cp1254',
      \ 'windows-1255' : 'cp1255',
      \ 'windows-1256' : 'cp1256',
      \ 'windows-1257' : 'cp1257',
      \ 'windows-1258' : 'cp1258',
      \ 'extended_unix_code_packed_format_for_japanese' : 'euc-jp',
      \ 'cseucpkdfmtjapanese' : 'euc-jp',
      \ 'euc-jp' : 'euc-jp',
      \ 'shift_jis' : 'sjis',
      \ 'ms_kanji' : 'sjis',
      \ 'sjis' : 'sjis',
      \ 'csshiftjis' : 'sjis',
      \ 'ibm-thai' : 'cp874',
      \ 'csibmthai' : 'cp874',
      \ 'ks_c_5601-1987' : 'cp949',
      \ 'iso-ir-149' : 'cp949',
      \ 'ks_c_5601-1989' : 'cp949',
      \ 'ksc_5601' : 'cp949',
      \ 'korean' : 'cp949',
      \ 'csksc56011987' : 'cp949',
      \ 'euc-kr' : 'euc-kr',
      \ 'cseuckr' : 'euc-kr',
      \ 'gbk' : 'cp936',
      \ 'cp936' : 'cp936',
      \ 'ms936' : 'cp936',
      \ 'windows-936' : 'cp936',
      \ 'gb_2312-80' : 'euc-cn',
      \ 'iso-ir-58' : 'euc-cn',
      \ 'chinese' : 'euc-cn',
      \ 'csiso58gb231280' : 'euc-cn',
      \ 'big5' : 'big5',
      \ 'csbig5' : 'big5',
      \ 'utf-8' : 'utf-8',
      \ 'iso-10646-ucs-2' : 'ucs-2',
      \ 'csunicode' : 'ucs-2',
      \ 'utf-16' : 'utf-16',
      \ 'utf-16be' : 'utf-16',
      \ 'utf-16le' : 'utf-16le',
      \ 'utf-32' : 'ucs-4',
      \ 'utf-32be' : 'ucs-4',
      \ 'utf-32le' : 'ucs-4le',
      \ 'iso-10646-ucs-4' : 'ucs-4',
      \ 'csucs4' : 'ucs-4'
      \ }
lockvar g:tohtml#charset_to_encoding
"}}}

func! tohtml#Convert2HTML(line1, line2) "{{{
  let s:settings = tohtml#GetUserSettings()

  if !&diff || s:settings.diff_one_file "{{{
    if a:line2 >= a:line1
      let g:html_start_line = a:line1
      let g:html_end_line = a:line2
    else
      let g:html_start_line = a:line2
      let g:html_end_line = a:line1
    endif
    runtime syntax/2html.vim "}}}
  else "{{{
    let win_list = []
    let buf_list = []
    windo if &diff | call add(win_list, winbufnr(0)) | endif
    let s:settings.whole_filler = 1
    let g:html_diff_win_num = 0
    for window in win_list
      " switch to the next buffer to convert
      exe ":" . bufwinnr(window) . "wincmd w"

      " figure out whether current charset and encoding will work, if not
      " default to UTF-8
      if !exists('g:html_use_encoding') &&
	    \ (((&l:fileencoding=='' || (&l:buftype!='' && &l:buftype!=?'help'))
	    \      && &encoding!=?s:settings.vim_encoding)
	    \ || &l:fileencoding!='' && &l:fileencoding!=?s:settings.vim_encoding)
	echohl WarningMsg
	echomsg "TOhtml: mismatched file encodings in Diff buffers, using UTF-8"
	echohl None
	let s:settings.vim_encoding = 'utf-8'
	let s:settings.encoding = 'UTF-8'
      endif

      " set up for diff-mode conversion
      let g:html_start_line = 1
      let g:html_end_line = line('$')
      let g:html_diff_win_num += 1

      " convert this file
      runtime syntax/2html.vim

      " remember the HTML buffer for later combination
      call add(buf_list, bufnr('%'))
    endfor
    unlet g:html_diff_win_num
    call tohtml#Diff2HTML(win_list, buf_list)
  endif "}}}

  unlet g:html_start_line
  unlet g:html_end_line
  unlet s:settings
endfunc "}}}

func! tohtml#Diff2HTML(win_list, buf_list) "{{{
  let xml_line = ""
  let tag_close = '>'

  let s:old_paste = &paste
  set paste
  let s:old_magic = &magic
  set magic

  if s:settings.use_xhtml
    if s:settings.encoding != ""
      let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
    else
      let xml_line = "<?xml version=\"1.0\"?>"
    endif
    let tag_close = ' />'
  endif

  let style = [s:settings.use_xhtml ? "" : '-->']
  let body_line = ''

  let html = []
  if s:settings.use_xhtml
    call add(html, xml_line)
  endif
  if s:settings.use_xhtml
    call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
    call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
  elseif s:settings.use_css && !s:settings.no_pre
    call add(html, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">")
    call add(html, '<html>')
  else
    call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
    call add(html, '  "http://www.w3.org/TR/html4/loose.dtd">')
    call add(html, '<html>')
  endif
  call add(html, '<head>')

  " include encoding as close to the top as possible, but only if not already
  " contained in XML information
  if s:settings.encoding != "" && !s:settings.use_xhtml
    call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
  endif

  call add(html, '<title>diff</title>')
  call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
  call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
  call add(html, '<meta name="settings" content="'.
	\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
	\ ',prevent_copy='.s:settings.prevent_copy.
	\ '"'.tag_close)
  call add(html, '<meta name="colorscheme" content="'.
	\ (exists('g:colors_name')
	\ ? g:colors_name
	\ : 'none'). '"'.tag_close)

  call add(html, '</head>')
  let body_line_num = len(html)
  if !empty(s:settings.prevent_copy)
    call add(html, "<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>")
    call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
    call add(html, "<div id='oneCharWidth'>0</div>")
    call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
    call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
  else
    call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
  endif
  call add(html, "<table border='1' width='100%' id='vimCodeElement".s:settings.id_suffix."'>")

  call add(html, '<tr>')
  for buf in a:win_list
    call add(html, '<th>'.bufname(buf).'</th>')
  endfor
  call add(html, '</tr><tr>')

  let diff_style_start = 0
  let insert_index = 0

  for buf in a:buf_list
    let temp = []
    exe bufwinnr(buf) . 'wincmd w'

    " If text is folded because of user foldmethod settings, etc. we don't want
    " to act on everything in a fold by mistake.
    setlocal nofoldenable

    " When not using CSS or when using xhtml, the <body> line can be important.
    " Assume it will be the same for all buffers and grab it from the first
    " buffer. Similarly, need to grab the body end line as well.
    if body_line == ''
      1
      call search('<body')
      let body_line = getline('.')
      $
      call search('</body>', 'b')
      let s:body_end_line = getline('.')
    endif

    " Grab the style information. Some of this will be duplicated so only insert
    " it if it's not already there. {{{
    1
    let style_start = search('^<style type="text/css">')
    1
    let style_end = search('^</style>')
    if style_start > 0 && style_end > 0
      let buf_styles = getline(style_start + 1, style_end - 1)
      for a_style in buf_styles
	if index(style, a_style) == -1
	  if diff_style_start == 0
	    if a_style =~ '\<Diff\(Change\|Text\|Add\|Delete\)'
	      let diff_style_start = len(style)-1
	    endif
	  endif
	  call insert(style, a_style, insert_index)
	  let insert_index += 1
	endif
      endfor
    endif " }}}

    " everything new will get added before the diff styles so diff highlight
    " properly overrides normal highlight
    if diff_style_start != 0
      let insert_index = diff_style_start
    endif

    " Delete those parts that are not needed so we can include the rest into the
    " resulting table.
    1,/^<body.*\%(\n<!--.*-->\_s\+.*id='oneCharWidth'.*\_s\+.*id='oneInputWidth'.*\_s\+.*id='oneEmWidth'\)\?\zs/d_
    $
    ?</body>?,$d_
    let temp = getline(1,'$')
    " clean out id on the main content container because we already set it on
    " the table
    let temp[0] = substitute(temp[0], " id='vimCodeElement[^']*'", "", "")
    " undo deletion of start and end part
    " so we can later save the file as valid html
    " TODO: restore using grabbed lines if undolevel is 1?
    normal! 2u
    if s:settings.use_css
      call add(html, '<td valign="top"><div>')
    elseif s:settings.use_xhtml
      call add(html, '<td nowrap="nowrap" valign="top"><div>')
    else
      call add(html, '<td nowrap valign="top"><div>')
    endif
    let html += temp
    call add(html, '</div></td>')

    " Close this buffer
    " TODO: the comment above says we're going to allow saving the file
    " later...but here we discard it?
    quit!
  endfor

  let html[body_line_num] = body_line

  call add(html, '</tr>')
  call add(html, '</table>')
  call add(html, s:body_end_line)
  call add(html, '</html>')

  " The generated HTML is admittedly ugly and takes a LONG time to fold.
  " Make sure the user doesn't do syntax folding when loading a generated file,
  " using a modeline.
  call add(html, '<!-- vim: set foldmethod=manual : -->')

  let i = 1
  let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
  " Find an unused file name if current file name is already in use
  while filereadable(name)
    let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
    let i += 1
  endwhile
  exe "topleft new " . name
  setlocal modifiable

  " just in case some user autocmd creates content in the new buffer, make sure
  " it is empty before proceeding
  %d

  " set the fileencoding to match the charset we'll be using
  let &l:fileencoding=s:settings.vim_encoding

  " According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
  " order mark is highly recommend on the web when using multibyte encodings. But,
  " it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
  " determine when it is actually inserted.
  if s:settings.vim_encoding == 'utf-8'
    setlocal nobomb
  else
    setlocal bomb
  endif

  call append(0, html)

  if len(style) > 0
    1
    let style_start = search('^</head>')-1

    " add required javascript in reverse order so we can just call append again
    " and again without adjusting {{{

    " insert script closing tag
    call append(style_start, [
	  \ '',
	  \ s:settings.use_xhtml ? '//]]>' : '-->',
	  \ "</script>"
	  \ ])

    " insert script which corrects the size of small input elements in
    " prevent_copy mode. See 2html.vim for details on why this is needed and how
    " it works.
    if !empty(s:settings.prevent_copy)
      call append(style_start, [
	    \ '',
	    \ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
	    \ 'function FixCharWidth() {',
	    \ '  /* get the hidden element which gives the width of a single character */',
	    \ '  var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
	    \ '  /* get all input elements, we''ll filter on class later */',
	    \ '  var inputTags = document.getElementsByTagName("input");',
	    \ '  var ratio = 5;',
	    \ '  var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
	    \ '  var emWidth = document.getElementById("oneEmWidth").clientWidth;',
	    \ '  if (inputWidth > goodWidth) {',
	    \ '    while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
	    \ '      ratio += 5;',
	    \ '    }',
	    \ '    document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;',
	    \ '  }',
	    \ '}'
	    \ ])
    endif
    "
    " insert javascript to get IDs from line numbers, and to open a fold before
    " jumping to any lines contained therein
    call append(style_start, [
	  \ "  /* Always jump to new location even if the line was hidden inside a fold, or",
	  \ "   * we corrected the raw number to a line ID.",
	  \ "   */",
	  \ "  if (lineElem) {",
	  \ "    lineElem.scrollIntoView(true);",
	  \ "  }",
	  \ "  return true;",
	  \ "}",
	  \ "if ('onhashchange' in window) {",
	  \ "  window.onhashchange = JumpToLine;",
	  \ "}"
	  \ ])
    if s:settings.dynamic_folds
      call append(style_start, [
	    \ "",
	    \ "  /* navigate upwards in the DOM tree to open all folds containing the line */",
	    \ "  var node = lineElem;",
	    \ "  while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
	    \ "  {",
	    \ "    if (node.className == 'closed-fold')",
	    \ "    {",
	    \ "      /* toggle open the fold ID (remove window ID) */",
	    \ "      toggleFold(node.id.substr(4));",
	    \ "    }",
	    \ "    node = node.parentNode;",
	    \ "  }",
	    \ ])
    endif
    call append(style_start, [
	  \ "",
	  \ "/* function to open any folds containing a jumped-to line before jumping to it */",
	  \ "function JumpToLine()",
	  \ "{",
	  \ "  var lineNum;",
	  \ "  lineNum = window.location.hash;",
	  \ "  lineNum = lineNum.substr(1); /* strip off '#' */",
	  \ "",
	  \ "  if (lineNum.indexOf('L') == -1) {",
	  \ "    lineNum = 'L'+lineNum;",
	  \ "  }",
	  \ "  if (lineNum.indexOf('W') == -1) {",
	  \ "    lineNum = 'W1'+lineNum;",
	  \ "  }",
	  \ "  lineElem = document.getElementById(lineNum);"
	  \ ])

    " Insert javascript to toggle matching folds open and closed in all windows,
    " if dynamic folding is active.
    if s:settings.dynamic_folds
      call append(style_start, [
	    \  "  function toggleFold(objID)",
	    \  "  {",
	    \  "    for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
	    \  "    {",
	    \  "      var fold;",
	    \  '      fold = document.getElementById("win"+win_num+objID);',
	    \  "      if(fold.className == 'closed-fold')",
	    \  "      {",
	    \  "        fold.className = 'open-fold';",
	    \  "      }",
	    \  "      else if (fold.className == 'open-fold')",
	    \  "      {",
	    \  "        fold.className = 'closed-fold';",
	    \  "      }",
	    \  "    }",
	    \  "  }",
	    \ ])
    endif

    " insert script tag; javascript is always needed for the line number
    " normalization for URL hashes
    call append(style_start, [
	  \ "<script type='text/javascript'>",
	  \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])

    " Insert styles from all the generated html documents and additional styles
    " for the table-based layout of the side-by-side diff. The diff should take
    " up the full browser window (but not more), and be static in size,
    " horizontally scrollable when the lines are too long. Otherwise, the diff
    " is pretty useless for really long lines. {{{
    if s:settings.use_css
      call append(style_start,
	    \ ['<style type="text/css">']+
	    \ style+
	    \ [ s:settings.use_xhtml ? '' : '<!--',
	    \   'table { table-layout: fixed; }',
	    \   'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
	    \   'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
	    \   'td div { overflow: auto; }',
	    \   s:settings.use_xhtml ? '' : '-->',
	    \   '</style>'
	    \])
    endif "}}}
  endif

  let &paste = s:old_paste
  let &magic = s:old_magic
endfunc "}}}

" Gets a single user option and sets it in the passed-in Dict, or gives it the
" default value if the option doesn't actually exist.
func! tohtml#GetOption(settings, option, default) "{{{
  if exists('g:html_'.a:option)
    let a:settings[a:option] = g:html_{a:option}
  else
    let a:settings[a:option] = a:default
  endif
endfunc "}}}

" returns a Dict containing the values of all user options for 2html, including
" default values for those not given an explicit value by the user. Discards the
" html_ prefix of the option for nicer looking code.
func! tohtml#GetUserSettings() "{{{
  if exists('s:settings')
    " just restore the known options if we've already retrieved them
    return s:settings
  else
    " otherwise figure out which options are set
    let user_settings = {}

    " Define the correct option if the old option name exists and we haven't
    " already defined the correct one. Maybe I'll put out a warnig message about
    " this sometime and remove the old option entirely at some even later time,
    " but for now just silently accept the old option.
    if exists('g:use_xhtml') && !exists("g:html_use_xhtml")
      let g:html_use_xhtml = g:use_xhtml
    endif

    " get current option settings with appropriate defaults {{{
    call tohtml#GetOption(user_settings,    'no_progress', !has("statusline") )
    call tohtml#GetOption(user_settings,  'diff_one_file', 0 )
    call tohtml#GetOption(user_settings,   'number_lines', &number )
    call tohtml#GetOption(user_settings,       'pre_wrap', &wrap )
    call tohtml#GetOption(user_settings,        'use_css', 1 )
    call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
    call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
    call tohtml#GetOption(user_settings,  'dynamic_folds', 0 )
    call tohtml#GetOption(user_settings,  'no_foldcolumn', user_settings.ignore_folding)
    call tohtml#GetOption(user_settings,   'hover_unfold', 0 )
    call tohtml#GetOption(user_settings,         'no_pre', 0 )
    call tohtml#GetOption(user_settings,     'no_invalid', 0 )
    call tohtml#GetOption(user_settings,   'whole_filler', 0 )
    call tohtml#GetOption(user_settings,      'use_xhtml', 0 )
    call tohtml#GetOption(user_settings,       'line_ids', user_settings.number_lines )
    " }}}
    
    " override those settings that need it {{{

    " hover opening implies dynamic folding
    if user_settings.hover_unfold
      let user_settings.dynamic_folds = 1
    endif

    " ignore folding overrides dynamic folding
    if user_settings.ignore_folding && user_settings.dynamic_folds
      let user_settings.dynamic_folds = 0
      let user_settings.hover_unfold = 0
    endif

    " dynamic folding with no foldcolumn implies hover opens
    if user_settings.dynamic_folds && user_settings.no_foldcolumn
      let user_settings.hover_unfold = 1
    endif

    " dynamic folding implies css
    if user_settings.dynamic_folds
      let user_settings.use_css = 1
    else
      let user_settings.no_foldcolumn = 1 " won't do anything but for consistency and for the test suite
    endif

    " if we're not using CSS we cannot use a pre section because <font> tags
    " aren't allowed inside a <pre> block
    if !user_settings.use_css
      let user_settings.no_pre = 1
    endif

    " pre_wrap doesn't do anything if not using pre or not using CSS
    if user_settings.no_pre || !user_settings.use_css
      let user_settings.pre_wrap=0
    endif
    "}}}

    " set up expand_tabs option after all the overrides so we know the
    " appropriate defaults {{{
    if user_settings.no_pre == 0
      call tohtml#GetOption(user_settings,
	    \ 'expand_tabs',
	    \ &expandtab || &ts != 8 || user_settings.number_lines ||
	    \   (user_settings.dynamic_folds && !user_settings.no_foldcolumn))
    else
      let user_settings.expand_tabs = 1
    endif
    " }}}

    " textual options
    if exists("g:html_use_encoding") "{{{
      " user specified the desired MIME charset, figure out proper
      " 'fileencoding' from it or warn the user if we cannot
      let user_settings.encoding = g:html_use_encoding
      let user_settings.vim_encoding = tohtml#EncodingFromCharset(g:html_use_encoding)
      if user_settings.vim_encoding == ''
	echohl WarningMsg
	echomsg "TOhtml: file encoding for"
	      \ g:html_use_encoding
	      \ "unknown, please set 'fileencoding'"
	echohl None
      endif
    else
      " Figure out proper MIME charset from 'fileencoding' if possible
      if &l:fileencoding != '' 
	" If the buffer is not a "normal" type, the 'fileencoding' value may not
	" be trusted; since the buffer should not be written the fileencoding is
	" not intended to be used.
	if &l:buftype=='' || &l:buftype==?'help'
	  let user_settings.vim_encoding = &l:fileencoding
	  call tohtml#CharsetFromEncoding(user_settings)
	else
	  let user_settings.encoding = '' " trigger detection using &encoding
	endif
      endif

      " else from 'encoding' if possible
      if &l:fileencoding == '' || user_settings.encoding == ''
	let user_settings.vim_encoding = &encoding
	call tohtml#CharsetFromEncoding(user_settings)
      endif

      " else default to UTF-8 and warn user
      if user_settings.encoding == ''
	let user_settings.vim_encoding = 'utf-8'
	let user_settings.encoding = 'UTF-8'
	echohl WarningMsg
	echomsg "TOhtml: couldn't determine MIME charset, using UTF-8"
	echohl None
      endif
    endif "}}}

    " Default to making nothing uncopyable, because we default to
    " not-standards way of doing things, and also because Microsoft Word and
    " others paste the <input> elements anyway.
    "
    " html_prevent_copy only has an effect when using CSS.
    "
    " All options:
    "	  f - fold column
    "	  n - line numbers (also within fold text)
    "	  t - fold text
    "	  d - diff filler
    "	  c - concealed text (reserved future)
    "	  l - listchars (reserved possible future)
    "	  s - signs (reserved possible future)
    "
    " Normal text is always selectable.
    let user_settings.prevent_copy = ""
    if user_settings.use_css
      if exists("g:html_prevent_copy")
	if user_settings.dynamic_folds && !user_settings.no_foldcolumn && g:html_prevent_copy =~# 'f'
	  let user_settings.prevent_copy .= 'f'
	endif
	if user_settings.number_lines && g:html_prevent_copy =~# 'n'
	  let user_settings.prevent_copy .= 'n'
	endif
	if &diff && g:html_prevent_copy =~# 'd'
	  let user_settings.prevent_copy .= 'd'
	endif
	if !user_settings.ignore_folding && g:html_prevent_copy =~# 't'
	  let user_settings.prevent_copy .= 't'
	endif
      else
	let user_settings.prevent_copy = ""
      endif
    endif
    if empty(user_settings.prevent_copy)
      let user_settings.no_invalid = 0
    endif

    if exists('g:html_id_expr')
      let user_settings.id_suffix = eval(g:html_id_expr)
      if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$'
	echohl WarningMsg
	echomsg '2html: g:html_id_expr evaluated to invalid string for HTML id attributes'
	echomsg '2html: Omitting user-specified suffix'
	echohl None
	sleep 3
	let user_settings.id_suffix=""
      endif
    else
      let user_settings.id_suffix=""
    endif

    " TODO: font

    return user_settings
  endif
endfunc "}}}

" get the proper HTML charset name from a Vim encoding option.
function! tohtml#CharsetFromEncoding(settings) "{{{
  let l:vim_encoding = a:settings.vim_encoding
  if exists('g:html_charset_override') && has_key(g:html_charset_override, l:vim_encoding)
    let a:settings.encoding = g:html_charset_override[l:vim_encoding]
  else
    if l:vim_encoding =~ '^8bit\|^2byte'
      " 8bit- and 2byte- prefixes are to indicate encodings available on the
      " system that Vim will convert with iconv(), look up just the encoding name,
      " not Vim's prefix.
      let l:vim_encoding = substitute(l:vim_encoding, '^8bit-\|^2byte-', '', '')
    endif
    if has_key(g:tohtml#encoding_to_charset, l:vim_encoding)
      let a:settings.encoding = g:tohtml#encoding_to_charset[l:vim_encoding]
    else
      let a:settings.encoding = ""
    endif
  endif
  if a:settings.encoding != ""
    let l:vim_encoding = tohtml#EncodingFromCharset(a:settings.encoding)
    if l:vim_encoding != ""
      " if the Vim encoding to HTML encoding conversion is set up (by default or
      " by the user) to convert to a different encoding, we need to also change
      " the Vim encoding of the new buffer
      let a:settings.vim_encoding = l:vim_encoding
    endif
  endif
endfun "}}}

" Get the proper Vim encoding option setting from an HTML charset name.
function! tohtml#EncodingFromCharset(encoding) "{{{
  if exists('g:html_encoding_override') && has_key(g:html_encoding_override, a:encoding)
    return g:html_encoding_override[a:encoding]
  elseif has_key(g:tohtml#charset_to_encoding, tolower(a:encoding))
    return g:tohtml#charset_to_encoding[tolower(a:encoding)]
  else
    return ""
  endif
endfun "}}}

let &cpo = s:cpo_sav
unlet s:cpo_sav

" Make sure any patches will probably use consistent indent
"   vim: ts=8 sw=2 sts=2 noet fdm=marker
PK�j�Zw��f&z&z!vim80/autoload/syntaxcomplete.vimnu�[���" Vim completion script
" Language:    All languages, uses existing syntax highlighting rules
" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
" Version:     13.0
" Last Change: 2013 May 14
" Usage:       For detailed help, ":help ft-syntax-omni"

" History
"
" Version 13.0
"   - Extended the option omni_syntax_group_include_{filetype}
"     to accept a comma separated list of regex's rather than
"     string.  For example, for the javascript filetype you could
"     use:
"        let g:omni_syntax_group_include_javascript = 'javascript\w\+,jquery\w\+'
"   - Some syntax files (perl.vim) use the match // syntax as a mechanism
"     to identify keywords.  This update attempts to parse the
"     match syntax and pull out syntax items which are at least
"     3 words or more.
"
" Version 12.0
"   - It is possible to have '-' as part of iskeyword, when
"     checking for character ranges, tighten up the regex.
"     E688: More targets than List items.
"
" Version 11.0
"   - Corrected which characters required escaping during
"     substitution calls.
"
" 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
"   - Updated SyntaxCSyntaxGroupItems()
"         - Some additional syntax items were also allowed
"           on nextgroup= lines which were ignored by default.
"           Now these lines are processed independently.
"
" Version 7.0
"   - Updated syntaxcomplete#OmniSyntaxList()
"         - Looking up the syntax groups defined from a syntax file
"           looked for only 1 format of {filetype}GroupName, but some
"           syntax writers use this format as well:
"               {b:current_syntax}GroupName
"   -       OmniSyntaxList() will now check for both if the first
"           method does not find a match.
"
" Version 6.0
"   - Added syntaxcomplete#OmniSyntaxList()
"         - Allows other plugins to use this for their own
"           purposes.
"         - It will return a List of all syntax items for the
"           syntax group name passed in.
"         - XPTemplate for SQL will use this function via the
"           sqlcomplete plugin to populate a Choose box.
"
" Version 5.0
"   - Updated SyntaxCSyntaxGroupItems()
"         - When processing a list of syntax groups, the final group
"           was missed in function SyntaxCSyntaxGroupItems.
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
if exists('+omnifunc')
    " Do not set the option if already set since this
    " results in an E117 warning.
    if &omnifunc == ""
        setlocal omnifunc=syntaxcomplete#Complete
    endif
endif

if exists('g:loaded_syntax_completion')
    finish
endif
let g:loaded_syntax_completion = 130

" Turn on support for line continuations when creating the script
let s:cpo_save = &cpo
set cpo&vim

" Set ignorecase to the ftplugin standard
" This is the default setting, but if you define a buffer local
" variable you can override this on a per filetype.
if !exists('g:omni_syntax_ignorecase')
    let g:omni_syntax_ignorecase = &ignorecase
endif

" Indicates whether we should use the iskeyword option to determine
" how to split words.
" This is the default setting, but if you define a buffer local
" variable you can override this on a per filetype.
if !exists('g:omni_syntax_use_iskeyword')
    let g:omni_syntax_use_iskeyword = 1
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
" this many characters in length.
" This is the default setting, but if you define a buffer local
" variable you can override this on a per filetype.
if !exists('g:omni_syntax_minimum_length')
    let g:omni_syntax_minimum_length = 0
endif

" This script will build a completion list based on the syntax
" elements defined by the files in $VIMRUNTIME/syntax.
" let s:syn_remove_words = 'match,matchgroup=,contains,'.
let s:syn_remove_words = 'matchgroup=,contains,'.
            \ 'links to,start=,end='
            " \ 'links to,start=,end=,nextgroup='

let s:cache_name = []
let s:cache_list = []
let s:prepended  = ''

" This function is used for the 'omnifunc' option.
function! syntaxcomplete#Complete(findstart, base)

    " Only display items in the completion window that are at least
    " this many characters in length
    if !exists('b:omni_syntax_ignorecase')
        if exists('g:omni_syntax_ignorecase')
            let b:omni_syntax_ignorecase = g:omni_syntax_ignorecase
        else
            let b:omni_syntax_ignorecase = &ignorecase
        endif
    endif

    if a:findstart
        " Locate the start of the item, including "."
        let line = getline('.')
        let start = col('.') - 1
        let lastword = -1
        while start > 0
            " if line[start - 1] =~ '\S'
            "     let start -= 1
            " elseif line[start - 1] =~ '\.'
            if line[start - 1] =~ '\k'
                let start -= 1
                let lastword = a:findstart
            else
                break
            endif
        endwhile

        " Return the column of the last word, which is going to be changed.
        " Remember the text that comes before it in s:prepended.
        if lastword == -1
            let s:prepended = ''
            return start
        endif
        let s:prepended = strpart(line, start, (col('.') - 1) - start)
        return start
    endif

    " let base = s:prepended . a:base
    let base = s:prepended

    let filetype = substitute(&filetype, '\.', '_', 'g')
    let list_idx = index(s:cache_name, filetype, 0, &ignorecase)
    if list_idx > -1
        let compl_list = s:cache_list[list_idx]
    else
        let compl_list   = OmniSyntaxList()
        let s:cache_name = add( s:cache_name,  filetype )
        let s:cache_list = add( s:cache_list,  compl_list )
    endif

    " Return list of matches.

    if base != ''
        " let compstr    = join(compl_list, ' ')
        " let expr       = (b:omni_syntax_ignorecase==0?'\C':'').'\<\%('.base.'\)\@!\w\+\s*'
        " let compstr    = substitute(compstr, expr, '', 'g')
        " let compl_list = split(compstr, '\s\+')

        " Filter the list based on the first few characters the user
        " entered
        let expr = 'v:val '.(g:omni_syntax_ignorecase==1?'=~?':'=~#')." '^".escape(base, '\\/.*$^~[]').".*'"
        let compl_list = filter(deepcopy(compl_list), expr)
    endif

    return compl_list
endfunc

function! syntaxcomplete#OmniSyntaxList(...)
    if a:0 > 0
        let parms = []
        if 3 == type(a:1)
            let parms = a:1
        elseif 1 == type(a:1)
            let parms = split(a:1, ',')
        endif
        return OmniSyntaxList( parms )
    else
        return OmniSyntaxList()
    endif
endfunc

function! OmniSyntaxList(...)
    let list_parms = []
    if a:0 > 0
        if 3 == type(a:1)
            let list_parms = a:1
        elseif 1 == type(a:1)
            let list_parms = split(a:1, ',')
        endif
    endif

    " Default to returning a dictionary, if use_dictionary is set to 0
    " a list will be returned.
    " let use_dictionary = 1
    " if a:0 > 0 && a:1 != ''
    "     let use_dictionary = a:1
    " endif

    " Only display items in the completion window that are at least
    " this many characters in length
    if !exists('b:omni_syntax_use_iskeyword')
        if exists('g:omni_syntax_use_iskeyword')
            let b:omni_syntax_use_iskeyword = g:omni_syntax_use_iskeyword
        else
            let b:omni_syntax_use_iskeyword = 1
        endif
    endif

    " Only display items in the completion window that are at least
    " this many characters in length
    if !exists('b:omni_syntax_minimum_length')
        if exists('g:omni_syntax_minimum_length')
            let b:omni_syntax_minimum_length = g:omni_syntax_minimum_length
        else
            let b:omni_syntax_minimum_length = 0
        endif
    endif

    let saveL = @l
    let filetype = substitute(&filetype, '\.', '_', 'g')

    if empty(list_parms)
        " Default the include group to include the requested syntax group
        let syntax_group_include_{filetype} = ''
        " Check if there are any overrides specified for this filetype
        if exists('g:omni_syntax_group_include_'.filetype)
            let syntax_group_include_{filetype} =
                        \ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
            let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
            if syntax_group_include_{filetype} =~ '\w'
                let syntax_group_include_{filetype} =
                            \ substitute( syntax_group_include_{filetype},
                            \ '\s*,\s*', '\\|', 'g'
                            \ )
            endif
        endif
    else
        " A specific list was provided, use it
    endif

    " Loop through all the syntax groupnames, and build a
    " syntax file which contains these names.  This can
    " work generically for any filetype that does not already
    " have a plugin defined.
    " This ASSUMES the syntax groupname BEGINS with the name
    " of the filetype.  From my casual viewing of the vim7\syntax
    " directory this is true for almost all syntax definitions.
    " As an example, the SQL syntax groups have this pattern:
    "     sqlType
    "     sqlOperators
    "     sqlKeyword ...
    if !empty(list_parms) && empty(substitute(join(list_parms), '[a-zA-Z ]', '', 'g'))
        " If list_parms only includes word characters, use it to limit
        " the syntax elements.
        " If using regex syntax list will fail to find those items, so
        " simply grab the who syntax list.
        redir @l
        silent! exec 'syntax list '.join(list_parms)
        redir END
    else
        redir @l
        silent! exec 'syntax list'
        redir END
    endif

    let syntax_full = "\n".@l
    let @l = saveL

    if syntax_full =~ 'E28'
                \ || syntax_full =~ 'E411'
                \ || syntax_full =~ 'E415'
                \ || syntax_full =~ 'No Syntax items'
        return []
    endif

    let filetype = substitute(&filetype, '\.', '_', 'g')

    let list_exclude_groups = []
    if a:0 > 0
        " Do nothing since we have specific a specific list of groups
    else
        " Default the exclude group to nothing
        let syntax_group_exclude_{filetype} = ''
        " Check if there are any overrides specified for this filetype
        if exists('g:omni_syntax_group_exclude_'.filetype)
            let syntax_group_exclude_{filetype} =
                        \ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
            let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
            if syntax_group_exclude_{filetype} =~ '\w'
                let syntax_group_exclude_{filetype} =
                            \ substitute( syntax_group_exclude_{filetype},
                            \ '\s*,\s*', '\\|', 'g'
                            \ )
            endif
        endif
    endif

    if empty(list_parms)
        let list_parms = [&filetype.'\w\+']
    endif

    let syn_list = ''
    let index    = 0
    for group_regex in list_parms
        " Sometimes filetypes can be composite names, like c.doxygen
        " Loop through each individual part looking for the syntax
        " items specific to each individual filetype.
        " let ftindex  = 0
        " let ftindex  = match(syntax_full, group_regex, ftindex)

        " while ftindex > -1
            " let ft_part_name = matchstr( syntax_full, '\w\+', ftindex )

            " Syntax rules can contain items for more than just the current
            " filetype.  They can contain additional items added by the user
            " via autocmds or their vimrc.
            " Some syntax files can be combined (html, php, jsp).
            " We want only items that begin with the filetype we are interested in.
            let next_group_regex = '\n' .
                        \ '\zs'.group_regex.'\ze'.
                        \ '\s\+xxx\s\+'
            let index    = match(syntax_full, next_group_regex, index)

            " For the matched group name, strip off any of the regex special
            " characters and see if we get a match with the current syntax
            if index == -1 && exists('b:current_syntax') && substitute(group_regex, '[^a-zA-Z ]\+.*', '', 'g') !~ '^'.b:current_syntax
                " There appears to be two standards when writing syntax files.
                " Either items begin as:
                "     syn keyword {filetype}Keyword         values ...
                "     let b:current_syntax = "sql"
                "     let b:current_syntax = "sqlanywhere"
                " Or
                "     syn keyword {syntax_filename}Keyword  values ...
                "     let b:current_syntax = "mysql"
                " So, we will make the format of finding the syntax group names
                " a bit more flexible and look for both if the first fails to
                " find a match.
                let next_group_regex = '\n' .
                            \ '\zs'.b:current_syntax.'\w\+\ze'.
                            \ '\s\+xxx\s\+'
                let index    = 0
                let index    = match(syntax_full, next_group_regex, index)
            endif

            while index > -1
                let group_name = matchstr( syntax_full, '\w\+', index )

                let get_syn_list = 1
                for exclude_group_name in list_exclude_groups
                    if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
                        let get_syn_list = 0
                    endif
                endfor

                " This code is no longer needed in version 6.0 since we have
                " augmented the syntax list command to only retrieve the syntax
                " groups we are interested in.
                "
                " if get_syn_list == 1
                "     if syntax_group_include_{filetype} != ''
                "         if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
                "             let get_syn_list = 0
                "         endif
                "     endif
                " endif

                if get_syn_list == 1
                    " Pass in the full syntax listing, plus the group name we
                    " are interested in.
                    let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
                    let syn_list = syn_list . extra_syn_list . "\n"
                endif

                let index = index + strlen(group_name)
                let index = match(syntax_full, next_group_regex, index)
            endwhile

            " let ftindex  = ftindex + len(ft_part_name)
            " let ftindex  = match( syntax_full, group_regex, ftindex )
        " endwhile
    endfor

"   " Sometimes filetypes can be composite names, like c.doxygen
"   " Loop through each individual part looking for the syntax
"   " items specific to each individual filetype.
"   let syn_list = ''
"   let ftindex  = 0
"   let ftindex  = match(&filetype, '\w\+', ftindex)

"   while ftindex > -1
"       let ft_part_name = matchstr( &filetype, '\w\+', ftindex )

"       " Syntax rules can contain items for more than just the current
"       " filetype.  They can contain additional items added by the user
"       " via autocmds or their vimrc.
"       " Some syntax files can be combined (html, php, jsp).
"       " We want only items that begin with the filetype we are interested in.
"       let next_group_regex = '\n' .
"                   \ '\zs'.ft_part_name.'\w\+\ze'.
"                   \ '\s\+xxx\s\+'
"       let index    = 0
"       let index    = match(syntax_full, next_group_regex, index)

"       if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
"           " There appears to be two standards when writing syntax files.
"           " Either items begin as:
"           "     syn keyword {filetype}Keyword         values ...
"           "     let b:current_syntax = "sql"
"           "     let b:current_syntax = "sqlanywhere"
"           " Or
"           "     syn keyword {syntax_filename}Keyword  values ...
"           "     let b:current_syntax = "mysql"
"           " So, we will make the format of finding the syntax group names
"           " a bit more flexible and look for both if the first fails to
"           " find a match.
"           let next_group_regex = '\n' .
"                       \ '\zs'.b:current_syntax.'\w\+\ze'.
"                       \ '\s\+xxx\s\+'
"           let index    = 0
"           let index    = match(syntax_full, next_group_regex, index)
"       endif

"       while index > -1
"           let group_name = matchstr( syntax_full, '\w\+', index )

"           let get_syn_list = 1
"           for exclude_group_name in list_exclude_groups
"               if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
"                   let get_syn_list = 0
"               endif
"           endfor

"           " This code is no longer needed in version 6.0 since we have
"           " augmented the syntax list command to only retrieve the syntax
"           " groups we are interested in.
"           "
"           " if get_syn_list == 1
"           "     if syntax_group_include_{filetype} != ''
"           "         if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
"           "             let get_syn_list = 0
"           "         endif
"           "     endif
"           " endif

"           if get_syn_list == 1
"               " Pass in the full syntax listing, plus the group name we
"               " are interested in.
"               let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
"               let syn_list = syn_list . extra_syn_list . "\n"
"           endif

"           let index = index + strlen(group_name)
"           let index = match(syntax_full, next_group_regex, index)
"       endwhile

"       let ftindex  = ftindex + len(ft_part_name)
"       let ftindex  = match( &filetype, '\w\+', ftindex )
"   endwhile

    " Convert the string to a List and sort it.
    let compl_list = sort(split(syn_list))

    if &filetype == 'vim'
        let short_compl_list = []
        for i in range(len(compl_list))
            if i == len(compl_list)-1
                let next = i
            else
                let next = i + 1
            endif
            if  compl_list[next] !~ '^'.compl_list[i].'.$'
                let short_compl_list += [compl_list[i]]
            endif
        endfor

        return short_compl_list
    else
        return compl_list
    endif
endfunction

function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )

    let syn_list = ""

    " From the full syntax listing, strip out the portion for the
    " request group.
    " Query:
    "     \n           - must begin with a newline
    "     a:group_name - the group name we are interested in
    "     \s\+xxx\s\+  - group names are always followed by xxx
    "     \zs          - start the match
    "     .\{-}        - everything ...
    "     \ze          - end the match
    "     \(           - start a group or 2 potential matches
    "     \n\w         - at the first newline starting with a character
    "     \|           - 2nd potential match
    "     \%$          - matches end of the file or string
    "     \)           - end a group
    let syntax_group = matchstr(a:syntax_full,
                \ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
                \ )

    if syntax_group != ""
        " let syn_list = substitute( @l, '^.*xxx\s*\%(contained\s*\)\?', "", '' )
        " let syn_list = substitute( @l, '^.*xxx\s*', "", '' )

        " We only want the words for the lines begining with
        " containedin, but there could be other items.

        " Tried to remove all lines that do not begin with contained
        " but this does not work in all cases since you can have
        "    contained nextgroup=...
        " So this will strip off the ending of lines with known
        " keywords.
        let syn_list = substitute(
                    \    syntax_group, '\<\('.
                    \    substitute(
                    \      escape(s:syn_remove_words, '\\/.*$^~[]')
                    \      , ',', '\\|', 'g'
                    \    ).
                    \    '\).\{-}\%($\|'."\n".'\)'
                    \    , "\n", 'g'
                    \  )

        " Attempt to deal with lines using the match syntax
        " javaScriptDocTags xxx match /@\(param\|argument\|requires\|file\)\>/
        " Though it can use any types of regex, so this plugin will attempt
        " to restrict it
        " 1.  Only use \( or \%( constructs remove all else
        " 2   Remove and []s
        " 3.  Account for match //constructs
        "                       \%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?
        " 4.  Hope for the best
        "
        "
        let syn_list_old = syn_list
        while syn_list =~ '\<match\>\s\+\/'
            if syn_list =~ 'perlElseIfError'
                let syn_list = syn_list
            endif
            " Check if the match has words at least 3 characters long
            if syn_list =~ '\<match \/\zs.\{-}\<\w\{3,}\>.\{-}\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
                " Remove everything after / and before the first \(
                let syn_list = substitute( syn_list, '\<match \/\zs.\{-}\ze\\%\?(.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
                " Remove everything after \) and up to the ending /
                let syn_list = substitute( syn_list, '\<match \/.\{-}\\)\zs.\{-}\ze\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )

                " Remove any character classes
                " let syn_list = substitute( syn_list, '\<match /\zs.\{-}\[[^]]*\].\{-}\ze\/ ', '', 'g' )
                let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\[[^]]*\]\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?', '', 'g' )
                " Remove any words < 3 characters
                let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\<\w\{1,2}\>\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
                " Remove all non-word characters
                " let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' )
                " let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' )
                " Do this by using the outer substitue() call to gather all
                " text between the match /.../ tags.
                " The inner substitute() call operates on the text selected
                " and replaces all non-word characters.
                let syn_list = substitute( syn_list, '\<match \/\zs\(.\{-}\)\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
                            \ , '\=substitute(submatch(1), "\\W\\+", " ", "g")'
                            \ , 'g' )
                " Remove the match / / syntax
                let syn_list = substitute( syn_list, '\<match \/\(.\{-}\)\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '\1', 'g' )
            else
                " No words long enough, remove the match
                " Remove the match syntax
                " let syn_list = substitute( syn_list, '\<match \/[^\/]*\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
                let syn_list = substitute( syn_list, '\<match \/\%(.\{-}\)\?\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
            endif
            if syn_list =~ '\<match\>\s\+\/'
                " Problem removing the match / / tags
                let syn_list = ''
            endif
        endwhile


        " Now strip off the newline + blank space + contained.
        " Also include lines with nextgroup=@someName skip_key_words syntax_element
                    " \    syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
                    " \    syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
        let syn_list = substitute(
                    \    syn_list, '\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
                    \    , "", 'g'
                    \ )

        " This can leave lines like this
        "     =@vimMenuList  skipwhite onoremenu
        " Strip the special option keywords first
        "     :h :syn-skipwhite*
        let syn_list = substitute(
                    \    syn_list, '\<\(skipwhite\|skipnl\|skipempty\)\>'
                    \    , "", 'g'
                    \ )

        " Now remove the remainder of the nextgroup=@someName lines
        let syn_list = substitute(
                    \    syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
                    \    , "", 'g'
                    \ )

        if b:omni_syntax_use_iskeyword == 0
            " There are a number of items which have non-word characters in
            " them, *'T_F1'*.  vim.vim is one such file.
            " This will replace non-word characters with spaces.
            let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
        else
            if g:omni_syntax_use_iskeyword_numeric == 1
                " iskeyword can contain value like this
                " 38,42,43,45,47-58,60-62,64-90,97-122,_,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
                " Numeric values convert to their ASCII equivalent using the
                " nr2char() function.
                "     &       38
                "     *       42
                "     +       43
                "     -       45
                "     ^       94
                " Iterate through all numeric specifications and convert those
                " to their ascii equivalent ensuring the character is printable.
                " If so, add it to the list.
                let accepted_chars = ''
                for item in split(&iskeyword, ',')
                    if item =~ '\d-\d'
                        " 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
                " Looks like the wrong chars are escaped.  In a collection,
                "      :h /[]
                "      only `]', `\', `-' and `^' are special:
                " let accepted_chars = escape(accepted_chars, '\\/.*$^~[]' )
                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
                " Looks like the wrong chars are escaped.  In a collection,
                "      :h /[]
                "      only `]', `\', `-' and `^' are special:
                " let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
                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

        if b:omni_syntax_minimum_length > 0
            " If the user specified a minimum length, enforce it
            let syn_list = substitute(' '.syn_list.' ', ' \S\{,'.b:omni_syntax_minimum_length.'}\ze ', ' ', 'g')
        endif
    else
        let syn_list = ''
    endif

    return syn_list
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
PK�j�ZM�pː�"vim80/autoload/contextcomplete.vimnu�[���" Language:           ConTeXt typesetting engine
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision:    2016 Oct 15

let s:keepcpo= &cpo
set cpo&vim

" Complete keywords in MetaPost blocks
function! contextcomplete#Complete(findstart, base)
  if a:findstart == 1
    if len(synstack(line('.'), 1)) > 0 &&
          \ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic'
      return syntaxcomplete#Complete(a:findstart, a:base)
    else
      return -3
    endif
  else
    return syntaxcomplete#Complete(a:findstart, a:base)
  endif
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: sw=2 fdm=marker
PK�j�Z��#���vim80/autoload/sqlcomplete.vimnu�[���" Vim OMNI completion script for SQL
" Language:    SQL
" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
" Version:     16.0
" Last Change: 2017 Oct 15
" Homepage:    http://www.vim.org/scripts/script.php?script_id=1572
" Usage:       For detailed help
"              ":help sql.txt"
"              or ":help ft-sql-omni"
"              or read $VIMRUNTIME/doc/sql.txt

" History
"
" TODO
"     - Jonas Enberg - if no table is found when using column completion
"       look backwards to a FROM clause and find the first table
"       and complete it.
"
" Version 16.0 (Dec 2015)
"     - NF: If reseting the cache and table, procedure or view completion
"           had been used via dbext, have dbext delete or recreate the 
"           dictionary so that new objects are picked up for the 
"           next completion.
"
" Version 15.0 (May 2013)
"     - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
"           to use regular expressions to pick up extended syntax group names.
"           This requires an updated SyntaxComplete plugin version 13.0.
"           If the required versions have not been installed, previous
"           behaviour will not be impacted.
"
" Version 14.0 (Dec 2012)
"     - BF: Added check for cpo
"
" Version 13.0 (Dec 2012)
"     - NF: When completing column lists or drilling into a table
"           and g:omni_sql_include_owner is enabled, the
"           only the table name would be replaced with the column
"           list instead of the table name and owner (if specified).
"     - NF: When completing column lists using table aliases
"           and g:omni_sql_include_owner is enabled, account
"           for the owner name when looking up the table
"           list instead of the table name and owner (if specified).
"     - BF: When completing column lists or drilling into a table
"           and g:omni_sql_include_owner is enabled, the
"           column list could often not be found for the table.
"     - BF: When OMNI popped up, possibly the wrong word
"           would be replaced for column and column list options.
"
" Version 12.0 (Feb 2012)
"     - Partial column name completion did not work when a table
"       name or table alias was provided (Jonas Enberg).
"     - Improved the handling of column completion.  First we match any
"       columns from a previous completion.  If not matches are found, we
"       consider the partial name to be a table or table alias for the
"       query and attempt to match on it.
"
" Version 11.0 (Jan 2012)
"     Added g:omni_sql_default_compl_type variable
"         - You can specify which type of completion to default to
"           when pressing <C-X><C-O>.  The entire list of available
"           choices can be found in the calls to sqlcomplete#Map in:
"               ftplugin/sql.vim
"
" Version 10.0
"     Updated PreCacheSyntax()
"         - Now returns a List of the syntax items it finds.
"           This allows other plugins / scripts to use this list for their own
"           purposes.  In this case XPTemplate can use them for a Choose list.
"         - Verifies the parameters are the correct type and displays a
"           warning if not.
"         - Verifies the parameters are the correct type and displays a
"           warning if not.
"     Updated SQLCWarningMsg()
"         - Prepends warning message with SQLComplete so you know who issued
"           the warning.
"     Updated SQLCErrorMsg()
"         - Prepends error message with SQLComplete so you know who issued
"           the error.
"
" Version 9.0 (May 2010)
"     This change removes some of the support for tables with spaces in their
"     names in order to simplify the regexes used to pull out query table
"     aliases for more robust table name and column name code completion.
"     Full support for "table names with spaces" can be added in again
"     after 7.3.
"
" Version 8.0
"     Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
"     when drilling in and out of a column list for a table.
"
" Version 7.0 (Jan 2010)
"     Better handling of object names
"
" Version 6.0 (Apr 2008)
"     Supports object names with spaces "my table name"
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
if exists('&omnifunc')
    " Do not set the option if already set since this
    " results in an E117 warning.
    if &omnifunc == ""
        setlocal omnifunc=sqlcomplete#Complete
    endif
endif

if exists('g:loaded_sql_completion')
    finish
endif
let g:loaded_sql_completion = 160
let s:keepcpo= &cpo
set cpo&vim

" Maintains filename of dictionary
let s:sql_file_table        = ""
let s:sql_file_procedure    = ""
let s:sql_file_view         = ""

" Define various arrays to be used for caching
let s:tbl_name              = []
let s:tbl_alias             = []
let s:tbl_cols              = []
let s:syn_list              = []
let s:syn_value             = []

" Used in conjunction with the syntaxcomplete plugin
let s:save_inc              = ""
let s:save_exc              = ""
if !exists('g:omni_syntax_group_include_sql')
    let g:omni_syntax_group_include_sql = ''
endif
if !exists('g:omni_syntax_group_exclude_sql')
    let g:omni_syntax_group_exclude_sql = ''
endif
let s:save_inc = g:omni_syntax_group_include_sql
let s:save_exc = g:omni_syntax_group_exclude_sql

" Used with the column list
let s:save_prev_table       = ""

" Default the option to verify table alias
if !exists('g:omni_sql_use_tbl_alias')
    let g:omni_sql_use_tbl_alias = 'a'
endif
" Default syntax items to precache
if !exists('g:omni_sql_precache_syntax_groups')
    let g:omni_sql_precache_syntax_groups = [
                \ 'syntax\w*',
                \ 'sqlKeyword\w*',
                \ 'sqlFunction\w*',
                \ 'sqlOption\w*',
                \ 'sqlType\w*',
                \ 'sqlStatement\w*'
                \ ]
endif
" Set ignorecase to the ftplugin standard
if !exists('g:omni_sql_ignorecase')
    let g:omni_sql_ignorecase = &ignorecase
endif
" During table completion, should the table list also
" include the owner name
if !exists('g:omni_sql_include_owner')
    let g:omni_sql_include_owner = 0
    if exists('g:loaded_dbext')
        if g:loaded_dbext >= 300
            " New to dbext 3.00, by default the table lists include the owner
            " name of the table.  This is used when determining how much of
            " whatever has been typed should be replaced as part of the
            " code replacement.
            let g:omni_sql_include_owner = 1
        endif
    endif
endif
" Default type of completion used when <C-X><C-O> is pressed
if !exists('g:omni_sql_default_compl_type')
    let g:omni_sql_default_compl_type = 'table'
endif

" This function is used for the 'omnifunc' option.
" It is called twice by omni and it is responsible
" for returning the completion list of items.
" But it must also determine context of what to complete
" and what to "replace" with the completion.
" The a:base, is replaced directly with what the user
" chooses from the choices.
" The s:prepend provides context for the completion.
function! sqlcomplete#Complete(findstart, base)

    " Default to table name completion
    let compl_type = 'table'
    " Allow maps to specify what type of object completion they want
    if exists('b:sql_compl_type')
        let compl_type = b:sql_compl_type
    endif
    let begindot = 0

    " First pass through this function determines how much of the line should
    " be replaced by whatever is chosen from the completion list
    if a:findstart
        " Locate the start of the item, including "."
        let line     = getline('.')
        let start    = col('.') - 1
        let lastword = -1
        " Check if the first character is a ".", for column completion
        if line[start - 1] == '.'
            let begindot = 1
        endif
        while start > 0
            " Additional code was required to handle objects which
            " can contain spaces like "my table name".
            if line[start - 1] !~ '\(\w\|\.\)'
                " If the previous character is not a period or word character
                break
            " elseif line[start - 1] =~ '\(\w\|\s\+\)'
            "     let start -= 1
            elseif line[start - 1] =~ '\w'
                " If the previous character is word character continue back
                let start -= 1
            elseif line[start - 1] =~ '\.' &&
                        \ compl_type =~ 'column\|table\|view\|procedure'
                " If the previous character is a period and we are completing
                " an object which can be specified with a period like this:
                "     table_name.column_name
                "     owner_name.table_name

                " If lastword has already been set for column completion
                " break from the loop, since we do not also want to pickup
                " a table name if it was also supplied.
                " Unless g:omni_sql_include_owner == 1, then we can
                " include the ownername.
                if lastword != -1 && compl_type == 'column'
                            \ && g:omni_sql_include_owner == 0
                    break
                endif
                " If column completion was specified stop at the "." if
                " a . was specified, otherwise, replace all the way up
                " to the owner name (if included).
                if lastword == -1 && compl_type == 'column' && begindot == 1
                    let lastword = start
                endif
                " If omni_sql_include_owner = 0, do not include the table
                " name as part of the substitution, so break here
                if lastword == -1 &&
                            \ compl_type =~ '\<\(table\|view\|procedure\|column\|column_csv\)\>' &&
                            \ g:omni_sql_include_owner == 0
                    let lastword = start
                    break
                endif
                let start -= 1
            else
                break
            endif
        endwhile

        " Return the column of the last word, which is going to be changed.
        " Remember the text that comes before it in s:prepended.
        if lastword == -1
            let s:prepended = ''
            return start
        endif
        let s:prepended = strpart(line, start, lastword - start)
        return lastword
    endif

    " Second pass through this function will determine what data to put inside
    " of the completion list
    " s:prepended is set by the first pass
    let base = s:prepended . a:base

    " Default the completion list to an empty list
    let compl_list = []

    " Default to table name completion
    let compl_type = g:omni_sql_default_compl_type
    " Allow maps to specify what type of object completion they want
    if exists('b:sql_compl_type')
        let compl_type = b:sql_compl_type
        unlet b:sql_compl_type
    endif

    if compl_type == 'tableReset'
        let compl_type = 'table'
        let base = ''
    endif

    if compl_type == 'table' ||
                \ compl_type == 'procedure' ||
                \ compl_type == 'view'

        " This type of completion relies upon the dbext.vim plugin
        if s:SQLCCheck4dbext() == -1
            return []
        endif

        " Allow the user to override the dbext plugin to specify whether
        " the owner/creator should be included in the list
        if g:loaded_dbext >= 300
            let saveSetting = DB_listOption('dict_show_owner')
            exec 'DBSetOption dict_show_owner='.(g:omni_sql_include_owner==1?'1':'0')
        endif

        let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
        " Same call below, no need to do it twice
        " if s:sql_file_{compl_type} == ""
        "     let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
        " endif
        let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
        if s:sql_file_{compl_type} != ""
            if filereadable(s:sql_file_{compl_type})
                let compl_list = readfile(s:sql_file_{compl_type})
            endif
        endif

        if g:loaded_dbext > 300
            exec 'DBSetOption dict_show_owner='.saveSetting
        endif
    elseif compl_type =~? 'column'

        " This type of completion relies upon the dbext.vim plugin
        if s:SQLCCheck4dbext() == -1
            return []
        endif

        if base == ""
            " The last time we displayed a column list we stored
            " the table name.  If the user selects a column list
            " without a table name of alias present, assume they want
            " the previous column list displayed.
            let base = s:save_prev_table
        endif

        let owner  = ''
        let column = ''

        if base =~ '\.'
            " Check if the owner/creator has been specified
            let owner  = matchstr( base, '^\zs.*\ze\..*\..*' )
            let table  = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
            let column = matchstr( base, '.*\.\zs.*' )

            if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
                let owner  = table
                let table  = column
                let column = ''
            endif

            " It is pretty well impossible to determine if the user
            " has entered:
            "    owner.table
            "    table.column_prefix
            " So there are a couple of things we can do to mitigate
            " this issue.
            "    1.  Check if the dbext plugin has the option turned
            "        on to even allow owners
            "    2.  Based on 1, if the user is showing a table list
            "        and the DrillIntoTable (using <Right>) then
            "        this will be owner.table.  In this case, we can
            "        check to see the table.column exists in the
            "        cached table list.  If it does, then we have
            "        determined the user has actually chosen
            "        owner.table, not table.column_prefix.
            let found = -1
            if g:omni_sql_include_owner == 1 && owner == ''
                if filereadable(s:sql_file_table)
                    let tbl_list = readfile(s:sql_file_table)
                    let found    = index( tbl_list, ((table != '')?(table.'.'):'').column)
                endif
            endif
            " If the table.column was found in the table list, we can safely assume
            " the owner was not provided and shift the items appropriately.
            " OR
            " If the user has indicated not to use table owners at all and
            " the base ends in a '.' we know they are not providing a column
            " name, so we can shift the items appropriately.
            " if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
            "     let owner  = table
            "     let table  = column
            "     let column = ''
            " endif
        else
            " If no "." was provided and the user asked for
            " column level completion, first attempt the match
            " on any previous column lists.  If the user asked
            " for a list of columns comma separated, continue as usual.
            if compl_type == 'column' && s:save_prev_table != ''
                " The last time we displayed a column list we stored
                " the table name.  If the user selects a column list
                " without a table name of alias present, assume they want
                " the previous column list displayed.
                let table     = s:save_prev_table
                let list_type = ''

                let compl_list  = s:SQLCGetColumns(table, list_type)
                if ! empty(compl_list)
                    " If no column prefix has been provided and the table
                    " name was provided, append it to each of the items
                    " returned.
                    let compl_list = filter(deepcopy(compl_list), 'v:val=~"^'.base.'"' )

                    " If not empty, we have a match on columns
                    " return the list
                    if ! empty(compl_list)
                        return compl_list
                    endif
                endif
            endif
            " Since no columns were found to match the base supplied
            " assume the user is trying to complete the column list
            " for a table (and or an alias to a table).
            let table  = base
        endif

        " Get anything after the . and consider this the table name
        " If an owner has been specified, then we must consider the
        " base to be a partial column name
        " let base  = matchstr( base, '^\(.*\.\)\?\zs.*' )

        if table != ""
            let s:save_prev_table = base
            let list_type         = ''

            if compl_type == 'column_csv'
                " Return one array element, with a comma separated
                " list of values instead of multiple array entries
                " for each column in the table.
                let list_type     = 'csv'
            endif

            " If we are including the OWNER for the objects, then for
            " table completion, if we have it, it should be included
            " as there can be the same table names in a database yet
            " with different owner names.
            if g:omni_sql_include_owner == 1 && owner != '' && table != ''
                let compl_list  = s:SQLCGetColumns(owner.'.'.table, list_type)
            else
                let compl_list  = s:SQLCGetColumns(table, list_type)
            endif

            if column != ''
                " If no column prefix has been provided and the table
                " name was provided, append it to each of the items
                " returned.
                let compl_list = map(compl_list, 'table.".".v:val')
                if owner != ''
                    " If an owner has been provided append it to each of the
                    " items returned.
                    let compl_list = map(compl_list, 'owner.".".v:val')
                endif
            else
                let base = ''
            endif

            if compl_type == 'column_csv'
                " Join the column array into 1 single element array
                " but make the columns column separated
                let compl_list        = [join(compl_list, ', ')]
            endif
        endif
    elseif compl_type == 'resetCache'
        " Reset all cached items
        let s:tbl_name           = []
        let s:tbl_alias          = []
        let s:tbl_cols           = []
        let s:syn_list           = []
        let s:syn_value          = []

        if s:sql_file_table != ""
            if g:loaded_dbext >= 2300
                call DB_DictionaryDelete("table")
            else
                DBCompleteTables!
            endif
        endif
        if s:sql_file_procedure != ""
            if g:loaded_dbext >= 2300
                call DB_DictionaryDelete("procedure")
            else
                DBCompleteProcedures!
            endif
        endif
        if s:sql_file_view != ""
            if g:loaded_dbext >= 2300
                call DB_DictionaryDelete("view")
            else
                DBCompleteViews!
            endif
        endif

        let s:sql_file_table     = ""
        let s:sql_file_procedure = ""
        let s:sql_file_view      = ""

        let msg = "All SQL cached items have been removed."
        call s:SQLCWarningMsg(msg)
        " Leave time for the user to read the error message
        :sleep 2
    else
        let compl_list = s:SQLCGetSyntaxList(compl_type)
    endif

    if base != ''
        " Filter the list based on the first few characters the user entered.
        " Check if the text matches at the beginning
        "         \\(^.base.'\\)
        " or
        " Match to a owner.table or alias.column type match
        "         ^\\(\\w\\+\\.\\)\\?'.base.'\\)
        " or
        " Handle names with spaces "my table name"
        "         "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
        "
        let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
        " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\)"'
        " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
        " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
        let compl_list = filter(deepcopy(compl_list), expr)

        if empty(compl_list) && compl_type == 'table' && base =~ '\.$'
            " It is possible we could be looking for column name completion
            " and the user simply hit C-X C-O to lets try it as well
            " since we had no hits with the tables.
            " If the base ends with a . it is hard to know if we are
            " completing table names or column names.
            let list_type = ''

            let compl_list  = s:SQLCGetColumns(base, list_type)
        endif
    endif

    if exists('b:sql_compl_savefunc') && b:sql_compl_savefunc != ""
        let &omnifunc = b:sql_compl_savefunc
    endif

    if empty(compl_list)
        call s:SQLCWarningMsg( 'Could not find type['.compl_type.'] using prepend[.'.s:prepended.'] base['.a:base.']' )
    endif

    return compl_list
endfunc

function! sqlcomplete#PreCacheSyntax(...)
    let syn_group_arr = []
    let syn_items     = []

    if a:0 > 0
        if type(a:1) != 3
            call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
            return ''
        endif
        let syn_group_arr = a:1
    else
        let syn_group_arr = g:omni_sql_precache_syntax_groups
    endif
    " For each group specified in the list, precache all
    " the sytnax items.
    if !empty(syn_group_arr)
        for group_name in syn_group_arr
            let syn_items = extend( syn_items, s:SQLCGetSyntaxList(group_name) )
        endfor
    endif

    return syn_items
endfunction

function! sqlcomplete#ResetCacheSyntax(...)
    let syn_group_arr = []

    if a:0 > 0
        if type(a:1) != 3
            call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
            return ''
        endif
        let syn_group_arr = a:1
    else
        let syn_group_arr = g:omni_sql_precache_syntax_groups
    endif
    " For each group specified in the list, precache all
    " the sytnax items.
    if !empty(syn_group_arr)
        for group_name in syn_group_arr
            let list_idx = index(s:syn_list, group_name, 0, &ignorecase)
            if list_idx > -1
                " Remove from list of groups
                call remove( s:syn_list, list_idx )
                " Remove from list of keywords
                call remove( s:syn_value, list_idx )
            endif
        endfor
    endif
endfunction

function! sqlcomplete#Map(type)
    " Tell the SQL plugin what you want to complete
    let b:sql_compl_type=a:type
    " Record previous omnifunc, if the SQL completion
    " is being used in conjunction with other filetype
    " completion plugins
    if &omnifunc != "" && &omnifunc != 'sqlcomplete#Complete'
        " Record the previous omnifunc, the plugin
        " will automatically set this back so that it
        " does not interfere with other ftplugins settings
        let b:sql_compl_savefunc=&omnifunc
    endif
    " Set the OMNI func for the SQL completion plugin
    let &omnifunc='sqlcomplete#Complete'
endfunction

function! sqlcomplete#DrillIntoTable()
    " If the omni popup window is visible
    if pumvisible()
        call sqlcomplete#Map('column')
        " C-Y, makes the currently highlighted entry active
        " and trigger the omni popup to be redisplayed
        call feedkeys("\<C-Y>\<C-X>\<C-O>", 'n')
    else
	" If the popup is not visible, simple perform the normal
	" key behaviour.
	" Must use exec since they key must be preceeded by "\"
	" or feedkeys will simply push each character of the string
	" rather than the "key press".
        exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
    endif
    return ""
endfunction

function! sqlcomplete#DrillOutOfColumns()
    " If the omni popup window is visible
    if pumvisible()
        call sqlcomplete#Map('tableReset')
        " Trigger the omni popup to be redisplayed
        call feedkeys("\<C-X>\<C-O>")
    else
	" If the popup is not visible, simple perform the normal
	" key behaviour.
	" Must use exec since they key must be preceeded by "\"
	" or feedkeys will simply push each character of the string
	" rather than the "key press".
        exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
    endif
    return ""
endfunction

function! s:SQLCWarningMsg(msg)
    echohl WarningMsg
    echomsg 'SQLComplete:'.a:msg
    echohl None
endfunction

function! s:SQLCErrorMsg(msg)
    echohl ErrorMsg
    echomsg 'SQLComplete:'.a:msg
    echohl None
endfunction

function! s:SQLCGetSyntaxList(syn_group)
    let syn_group  = a:syn_group
    let compl_list = []

    " Check if we have already cached the syntax list
    let list_idx = index(s:syn_list, syn_group, 0, &ignorecase)
    if list_idx > -1
        " Return previously cached value
        let compl_list = s:syn_value[list_idx]
    else
        let s:save_inc = g:omni_syntax_group_include_sql
        let s:save_exc = g:omni_syntax_group_exclude_sql
        let g:omni_syntax_group_include_sql = ''
        let g:omni_syntax_group_exclude_sql = ''

        " Request the syntax list items from the
        " syntax completion plugin
        if syn_group == 'syntax'
            " Handle this special case.  This allows the user
            " to indicate they want all the syntax items available,
            " so do not specify a specific include list.
            let syn_value                       = syntaxcomplete#OmniSyntaxList()
        else
            " The user has specified a specific syntax group
            let g:omni_syntax_group_include_sql = syn_group
            let syn_value                       = syntaxcomplete#OmniSyntaxList(syn_group)
        endif
        let g:omni_syntax_group_include_sql = s:save_inc
        let g:omni_syntax_group_exclude_sql = s:save_exc
        " Cache these values for later use
        let s:syn_list  = add( s:syn_list,  syn_group )
        let s:syn_value = add( s:syn_value, syn_value )
        let compl_list  = syn_value
    endif

    return compl_list
endfunction

function! s:SQLCCheck4dbext()
    if !exists('g:loaded_dbext')
        let msg = "The dbext plugin must be loaded for dynamic SQL completion"
        call s:SQLCErrorMsg(msg)
        " Leave time for the user to read the error message
        :sleep 2
        return -1
    elseif g:loaded_dbext < 600
        let msg = "The dbext plugin must be at least version 5.30 " .
                    \ " for dynamic SQL completion"
        call s:SQLCErrorMsg(msg)
        " Leave time for the user to read the error message
        :sleep 2
        return -1
    endif
    return 1
endfunction

function! s:SQLCAddAlias(table_name, table_alias, cols)
    " Strip off the owner if included
    let table_name  = matchstr(a:table_name, '\%(.\{-}\.\)\?\zs\(.*\)' )
    let table_alias = a:table_alias
    let cols        = a:cols

    if g:omni_sql_use_tbl_alias != 'n'
        if table_alias == ''
            if 'da' =~? g:omni_sql_use_tbl_alias
                if table_name =~ '_'
                    " Treat _ as separators since people often use these
                    " for word separators
                    let save_keyword = &iskeyword
                    setlocal iskeyword-=_

                    " Get the first letter of each word
                    " [[:alpha:]] is used instead of \w
                    " to catch extended accented characters
                    "
                    let table_alias = substitute(
                                \ table_name,
                                \ '\<[[:alpha:]]\+\>_\?',
                                \ '\=strpart(submatch(0), 0, 1)',
                                \ 'g'
                                \ )
                    " Restore original value
                    let &iskeyword = save_keyword
                elseif table_name =~ '\u\U'
                    let table_alias = substitute(
                                \ table_name, '\(\u\)\U*', '\1', 'g')
                else
                    let table_alias = strpart(table_name, 0, 1)
                endif
            endif
        endif
        if table_alias != ''
            " Following a word character, make sure there is a . and no spaces
            let table_alias = substitute(table_alias, '\w\zs\.\?\s*$', '.', '')
            if 'a' =~? g:omni_sql_use_tbl_alias && a:table_alias == ''
                let table_alias = inputdialog("Enter table alias:", table_alias)
            endif
        endif
        if table_alias != ''
            let cols = substitute(cols, '\<\w', table_alias.'&', 'g')
        endif
    endif

    return cols
endfunction

function! s:SQLCGetObjectOwner(object)
    " The owner regex matches a word at the start of the string which is
    " followed by a dot, but doesn't include the dot in the result.
    " ^           - from beginning of line
    " \("\|\[\)\? - ignore any quotes
    " \zs         - start the match now
    " .\{-}       - get owner name
    " \ze         - end the match
    " \("\|\[\)\? - ignore any quotes
    " \.          - must by followed by a .
    " let owner = matchstr( a:object, '^\s*\zs.*\ze\.' )
    let owner = matchstr( a:object, '^\("\|\[\)\?\zs\.\{-}\ze\("\|\]\)\?\.' )
    return owner
endfunction

function! s:SQLCGetColumns(table_name, list_type)
    if a:table_name =~ '\.'
        " Check if the owner/creator has been specified
        let owner  = matchstr( a:table_name, '^\zs.*\ze\..*\..*' )
        let table  = matchstr( a:table_name, '^\(.*\.\)\?\zs.*\ze\..*' )
        let column = matchstr( a:table_name, '.*\.\zs.*' )

        if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
            let owner  = table
            let table  = column
            let column = ''
        endif
    else
        let owner  = ''
        let table  = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
        let column = ''
    endif

    " Check if the table name was provided as part of the column name
    " let table_name   = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
    let table_name   = table
    let table_cols   = []
    let table_alias  = ''
    let move_to_top  = 1

    let table_name   = substitute(table_name, '\s*\(.\{-}\)\s*$', '\1', 'g')

    " If the table name was given as:
    "     where c.
    let table_name   = substitute(table_name, '^\c\(WHERE\|AND\|OR\)\s\+', '', '')
    if g:loaded_dbext >= 300
        let saveSettingAlias = DB_listOption('use_tbl_alias')
        exec 'DBSetOption use_tbl_alias=n'
    endif

    let table_name_stripped = substitute(table_name, '["\[\]]*', '', 'g')

    " Check if we have already cached the column list for this table
    " by its name
    let list_idx = index(s:tbl_name, table_name_stripped, 0, &ignorecase)
    if list_idx > -1
        let table_cols = split(s:tbl_cols[list_idx], '\n')
    else
        " Check if we have already cached the column list for this table
        " by its alias, assuming the table_name provided was actually
        " the alias for the table instead
        "     select *
        "       from area a
        "      where a.
        let list_idx = index(s:tbl_alias, table_name_stripped, 0, &ignorecase)
        if list_idx > -1
            let table_alias = table_name_stripped
            let table_name  = s:tbl_name[list_idx]
            let table_cols  = split(s:tbl_cols[list_idx], '\n')
        endif
    endif

    " If we have not found a cached copy of the table
    " And the table ends in a "." or we are looking for a column list
    " if list_idx == -1 && (a:table_name =~ '\.' || b:sql_compl_type =~ 'column')
    " if list_idx == -1 && (a:table_name =~ '\.' || a:list_type =~ 'csv')
    if list_idx == -1
         let saveY      = @y
         let saveSearch = @/
         let saveWScan  = &wrapscan
         let curline    = line(".")
         let curcol     = col(".")

         " Do not let searchs wrap
         setlocal nowrapscan
         " If . was entered, look at the word just before the .
         " We are looking for something like this:
         "    select *
         "      from customer c
         "     where c.
         " So when . is pressed, we need to find 'c'
         "

         " Search backwards to the beginning of the statement
         " and do NOT wrap
         " exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy'
         exec 'silent! normal! ?\<\c\(select\|update\|delete\|;\)\>'."\n"

         " Start characterwise visual mode
         " Advance right one character
         " Search forward until one of the following:
         "     1.  Another select/update/delete statement
         "     2.  A ; at the end of a line (the delimiter)
         "     3.  The end of the file (incase no delimiter)
         " Yank the visually selected text into the "y register.
         exec 'silent! normal! vl/\c\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'

         let query = @y
         let query = substitute(query, "\n", ' ', 'g')
         let found = 0

         " if query =~? '^\c\(select\)'
         if query =~? '^\(select\|update\|delete\)'
             let found = 1
             "  \(\(\<\w\+\>\)\.\)\?   -
             " '\c\(from\|join\|,\).\{-}'  - Starting at the from clause (case insensitive)
             " '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
             " '\<\w\+\>\ze' - Get the table name
             " '\s\+\<'.table_name.'\>' - Followed by the alias
             " '\s*\.\@!.*'  - Cannot be followed by a .
             " '\(\<where\>\|$\)' - Must be followed by a WHERE clause
             " '.*'  - Exclude the rest of the line in the match
             " let table_name_new = matchstr(@y,
             "             \ '\c\(from\|join\|,\).\{-}'.
             "             \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
             "             \ '\("\|\[\)\?.\{-}\("\|\]\)\?\ze'.
             "             \ '\s\+\%(as\s\+\)\?\<'.
             "             \ matchstr(table_name, '.\{-}\ze\.\?$').
             "             \ '\>'.
             "             \ '\s*\.\@!.*'.
             "             \ '\(\<where\>\|$\)'.
             "             \ '.*'
             "             \ )
             "
             "
             " ''\c\(\<from\>\|\<join\>\|,\)\s*'  - Starting at the from clause (case insensitive)
             " '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?' - Get the owner name (optional)
             " '\("\|\[\)\?\w\+\("\|\]\)\?\ze' - Get the table name
             " '\s\+\%(as\s\+\)\?\<'.matchstr(table_name, '.\{-}\ze\.\?$').'\>' - Followed by the alias
             " '\s*\.\@!.*'  - Cannot be followed by a .
             " '\(\<where\>\|$\)' - Must be followed by a WHERE clause
             " '.*'  - Exclude the rest of the line in the match
             let table_name_new = matchstr(@y,
                         \ '\c\(\<from\>\|\<join\>\|,\)\s*'.
                         \ '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?'.
                         \ '\("\|\[\)\?\w\+\("\|\]\)\?\ze'.
                         \ '\s\+\%(as\s\+\)\?\<'.
                         \ matchstr(table_name, '.\{-}\ze\.\?$').
                         \ '\>'.
                         \ '\s*\.\@!.*'.
                         \ '\(\<where\>\|$\)'.
                         \ '.*'
                         \ )

             if table_name_new != ''
                 let table_alias = table_name
                 if g:omni_sql_include_owner == 1
                    let table_name  = matchstr( table_name_new, '^\zs\(.\{-}\.\)\?\(.\{-}\.\)\?.*\ze' )
                 else
                     " let table_name  = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
                    let table_name  = matchstr( table_name_new, '^\(.\{-}\.\)\?\zs\(.\{-}\.\)\?.*\ze' )
                 endif

                 let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
                 if list_idx > -1
                     let table_cols  = split(s:tbl_cols[list_idx])
                     let s:tbl_name[list_idx]  = table_name
                     let s:tbl_alias[list_idx] = table_alias
                 else
                     let list_idx = index(s:tbl_alias, table_name, 0, &ignorecase)
                     if list_idx > -1
                         let table_cols = split(s:tbl_cols[list_idx])
                         let s:tbl_name[list_idx]  = table_name
                         let s:tbl_alias[list_idx] = table_alias
                     endif
                 endif

             endif
         else
             " Simply assume it is a table name provided with a . on the end
             let found = 1
         endif

         let @y        = saveY
         let @/        = saveSearch
         let &wrapscan = saveWScan

         " Return to previous location
         call cursor(curline, curcol)

         if found == 0
             if g:loaded_dbext > 300
                 exec 'DBSetOption use_tbl_alias='.saveSettingAlias
             endif

             " Not a SQL statement, do not display a list
             return []
         endif
    endif

    if empty(table_cols)
        " Specify silent mode, no messages to the user (tbl, 1)
        " Specify do not comma separate (tbl, 1, 1)
        " let table_cols_str = DB_getListColumn(table_name, 1, 1)
        let table_cols_str = DB_getListColumn((owner!=''?owner.'.':'').table_name, 1, 1)

        if table_cols_str != ""
            let s:tbl_name  = add( s:tbl_name,  table_name )
            let s:tbl_alias = add( s:tbl_alias, table_alias )
            let s:tbl_cols  = add( s:tbl_cols,  table_cols_str )
            let table_cols  = split(table_cols_str, '\n')
        endif

    endif

    if g:loaded_dbext > 300
        exec 'DBSetOption use_tbl_alias='.saveSettingAlias
    endif

    " If the user has asked for a comma separate list of column
    " values, ask the user if they want to prepend each column
    " with a tablename alias.
    if a:list_type == 'csv' && !empty(table_cols)
        let cols       = join(table_cols, ', ')
        let cols       = s:SQLCAddAlias(table_name, table_alias, cols)
        let table_cols = [cols]
    endif

    return table_cols
endfunction
"  Restore:
let &cpo= s:keepcpo
unlet s:keepcpo
" vim: ts=4 fdm=marker
PK�j�Zl�2N�(�(vim80/autoload/rust.vimnu�[���" Author: Kevin Ballard
" Description: Helper functions for Rust commands/mappings
" Last Modified: May 27, 2014
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim

" Jump {{{1

function! rust#Jump(mode, function) range
	let cnt = v:count1
	normal! m'
	if a:mode ==# 'v'
		norm! gv
	endif
	let foldenable = &foldenable
	set nofoldenable
	while cnt > 0
		execute "call <SID>Jump_" . a:function . "()"
		let cnt = cnt - 1
	endwhile
	let &foldenable = foldenable
endfunction

function! s:Jump_Back()
	call search('{', 'b')
	keepjumps normal! w99[{
endfunction

function! s:Jump_Forward()
	normal! j0
	call search('{', 'b')
	keepjumps normal! w99[{%
	call search('{')
endfunction

" Run {{{1

function! rust#Run(bang, args)
	let args = s:ShellTokenize(a:args)
	if a:bang
		let idx = index(l:args, '--')
		if idx != -1
			let rustc_args = idx == 0 ? [] : l:args[:idx-1]
			let args = l:args[idx+1:]
		else
			let rustc_args = l:args
			let args = []
		endif
	else
		let rustc_args = []
	endif

	let b:rust_last_rustc_args = l:rustc_args
	let b:rust_last_args = l:args

	call s:WithPath(function("s:Run"), rustc_args, args)
endfunction

function! s:Run(dict, rustc_args, args)
	let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
	if has('win32')
		let exepath .= '.exe'
	endif

	let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
	let rustc_args = [relpath, '-o', exepath] + a:rustc_args

	let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"

	let pwd = a:dict.istemp ? a:dict.tmpdir : ''
	let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
	if output != ''
		echohl WarningMsg
		echo output
		echohl None
	endif
	if !v:shell_error
		exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
	endif
endfunction

" Expand {{{1

function! rust#Expand(bang, args)
	let args = s:ShellTokenize(a:args)
	if a:bang && !empty(l:args)
		let pretty = remove(l:args, 0)
	else
		let pretty = "expanded"
	endif
	call s:WithPath(function("s:Expand"), pretty, args)
endfunction

function! s:Expand(dict, pretty, args)
	try
		let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"

		if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
			let flag = '--xpretty'
		else
			let flag = '--pretty'
		endif
		let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
		let args = [relpath, '-Z', 'unstable-options', l:flag, a:pretty] + a:args
		let pwd = a:dict.istemp ? a:dict.tmpdir : ''
		let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
		if v:shell_error
			echohl WarningMsg
			echo output
			echohl None
		else
			new
			silent put =output
			1
			d
			setl filetype=rust
			setl buftype=nofile
			setl bufhidden=hide
			setl noswapfile
			" give the buffer a nice name
			let suffix = 1
			let basename = fnamemodify(a:dict.path, ':t:r')
			while 1
				let bufname = basename
				if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
				let bufname .= '.pretty.rs'
				if bufexists(bufname)
					let suffix += 1
					continue
				endif
				exe 'silent noautocmd keepalt file' fnameescape(bufname)
				break
			endwhile
		endif
	endtry
endfunction

function! rust#CompleteExpand(lead, line, pos)
	if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
		" first argument and it has a !
		let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
		if !empty(a:lead)
			call filter(list, "v:val[:len(a:lead)-1] == a:lead")
		endif
		return list
	endif

	return glob(escape(a:lead, "*?[") . '*', 0, 1)
endfunction

" Emit {{{1

function! rust#Emit(type, args)
	let args = s:ShellTokenize(a:args)
	call s:WithPath(function("s:Emit"), a:type, args)
endfunction

function! s:Emit(dict, type, args)
	try
		let output_path = a:dict.tmpdir.'/output'

		let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"

		let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
		let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
		let pwd = a:dict.istemp ? a:dict.tmpdir : ''
		let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
		if output != ''
			echohl WarningMsg
			echo output
			echohl None
		endif
		if !v:shell_error
			new
			exe 'silent keepalt read' fnameescape(output_path)
			1
			d
			if a:type == "llvm-ir"
				setl filetype=llvm
				let extension = 'll'
			elseif a:type == "asm"
				setl filetype=asm
				let extension = 's'
			endif
			setl buftype=nofile
			setl bufhidden=hide
			setl noswapfile
			if exists('l:extension')
				" give the buffer a nice name
				let suffix = 1
				let basename = fnamemodify(a:dict.path, ':t:r')
				while 1
					let bufname = basename
					if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
					let bufname .= '.'.extension
					if bufexists(bufname)
						let suffix += 1
						continue
					endif
					exe 'silent noautocmd keepalt file' fnameescape(bufname)
					break
				endwhile
			endif
		endif
	endtry
endfunction

" Utility functions {{{1

" Invokes func(dict, ...)
" Where {dict} is a dictionary with the following keys:
"   'path' - The path to the file
"   'tmpdir' - The path to a temporary directory that will be deleted when the
"              function returns.
"   'istemp' - 1 if the path is a file inside of {dict.tmpdir} or 0 otherwise.
" If {istemp} is 1 then an additional key is provided:
"   'tmpdir_relpath' - The {path} relative to the {tmpdir}.
"
" {dict.path} may be a path to a file inside of {dict.tmpdir} or it may be the
" existing path of the current buffer. If the path is inside of {dict.tmpdir}
" then it is guaranteed to have a '.rs' extension.
function! s:WithPath(func, ...)
	let buf = bufnr('')
	let saved = {}
	let dict = {}
	try
		let saved.write = &write
		set write
		let dict.path = expand('%')
		let pathisempty = empty(dict.path)

		" Always create a tmpdir in case the wrapped command wants it
		let dict.tmpdir = tempname()
		call mkdir(dict.tmpdir)

		if pathisempty || !saved.write
			let dict.istemp = 1
			" if we're doing this because of nowrite, preserve the filename
			if !pathisempty
				let filename = expand('%:t:r').".rs"
			else
				let filename = 'unnamed.rs'
			endif
			let dict.tmpdir_relpath = filename
			let dict.path = dict.tmpdir.'/'.filename

			let saved.mod = &mod
			set nomod

			silent exe 'keepalt write! ' . fnameescape(dict.path)
			if pathisempty
				silent keepalt 0file
			endif
		else
			let dict.istemp = 0
			update
		endif

		call call(a:func, [dict] + a:000)
	finally
		if bufexists(buf)
			for [opt, value] in items(saved)
				silent call setbufvar(buf, '&'.opt, value)
				unlet value " avoid variable type mismatches
			endfor
		endif
		if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
	endtry
endfunction

function! rust#AppendCmdLine(text)
	call setcmdpos(getcmdpos())
	let cmd = getcmdline() . a:text
	return cmd
endfunction

" Tokenize the string according to sh parsing rules
function! s:ShellTokenize(text)
	" states:
	" 0: start of word
	" 1: unquoted
	" 2: unquoted backslash
	" 3: double-quote
	" 4: double-quoted backslash
	" 5: single-quote
	let l:state = 0
	let l:current = ''
	let l:args = []
	for c in split(a:text, '\zs')
		if l:state == 0 || l:state == 1 " unquoted
			if l:c ==# ' '
				if l:state == 0 | continue | endif
				call add(l:args, l:current)
				let l:current = ''
				let l:state = 0
			elseif l:c ==# '\'
				let l:state = 2
			elseif l:c ==# '"'
				let l:state = 3
			elseif l:c ==# "'"
				let l:state = 5
			else
				let l:current .= l:c
				let l:state = 1
			endif
		elseif l:state == 2 " unquoted backslash
			if l:c !=# "\n" " can it even be \n?
				let l:current .= l:c
			endif
			let l:state = 1
		elseif l:state == 3 " double-quote
			if l:c ==# '\'
				let l:state = 4
			elseif l:c ==# '"'
				let l:state = 1
			else
				let l:current .= l:c
			endif
		elseif l:state == 4 " double-quoted backslash
			if stridx('$`"\', l:c) >= 0
				let l:current .= l:c
			elseif l:c ==# "\n" " is this even possible?
				" skip it
			else
				let l:current .= '\'.l:c
			endif
			let l:state = 3
		elseif l:state == 5 " single-quoted
			if l:c == "'"
				let l:state = 1
			else
				let l:current .= l:c
			endif
		endif
	endfor
	if l:state != 0
		call add(l:args, l:current)
	endif
	return l:args
endfunction

function! s:RmDir(path)
	" sanity check; make sure it's not empty, /, or $HOME
	if empty(a:path)
		echoerr 'Attempted to delete empty path'
		return 0
	elseif a:path == '/' || a:path == $HOME
		echoerr 'Attempted to delete protected path: ' . a:path
		return 0
	endif
	return system("rm -rf " . shellescape(a:path))
endfunction

" Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd.
" If {pwd} is the empty string then it doesn't change the cwd.
function! s:system(pwd, cmd)
	let cmd = a:cmd
	if !empty(a:pwd)
		let cmd = 'cd ' . shellescape(a:pwd) . ' && ' . cmd
	endif
	return system(cmd)
endfunction

" Playpen Support {{{1
" Parts of gist.vim by Yasuhiro Matsumoto <mattn.jp@gmail.com> reused
" gist.vim available under the BSD license, available at
" http://github.com/mattn/gist-vim
function! s:has_webapi()
    if !exists("*webapi#http#post")
	try
	    call webapi#http#post()
	catch
	endtry
    endif
    return exists("*webapi#http#post")
endfunction

function! rust#Play(count, line1, line2, ...) abort
    redraw

    let l:rust_playpen_url = get(g:, 'rust_playpen_url', 'https://play.rust-lang.org/')
    let l:rust_shortener_url = get(g:, 'rust_shortener_url', 'https://is.gd/')

    if !s:has_webapi()
	echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
	return
    endif

    let bufname = bufname('%')
    if a:count < 1
	let content = join(getline(a:line1, a:line2), "\n")
    else
	let save_regcont = @"
	let save_regtype = getregtype('"')
	silent! normal! gvy
	let content = @"
	call setreg('"', save_regcont, save_regtype)
    endif

    let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)

    if strlen(body) > 5000
	echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
	return
    endif

    let payload = "format=simple&url=".webapi#http#encodeURI(body)
    let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
    let url = res.content

    redraw | echomsg 'Done: '.url
endfunction

" }}}1

" vim: set noet sw=8 ts=8:
PK�j�Z��0���vim80/autoload/netrw.vimnu�[���" netrw.vim: Handles file transfer and remote directory listing across
"            AUTOLOAD SECTION
" Date:		Apr 20, 2016
" Version:	156
" Maintainer:	Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright:    Copyright (C) 2016 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
"               *as is* and come with no warranty of any kind, either
"               expressed or implied. By using this plugin, you agree that
"               in no event will the copyright holder be liable for any damages
"               resulting from the use of this software.
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
"
"  But be doers of the Word, and not only hearers, deluding your own selves {{{1
"  (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
" Load Once: {{{1
if &cp || exists("g:loaded_netrw")
  finish
endif
" netrw requires vim having patch 213; netrw will benefit from vim's having patch#656, too
if v:version < 704 || !has("patch213")
 if !exists("s:needpatch213")
  unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch 213"
 endif
 let s:needpatch213= 1
 finish
endif
let g:loaded_netrw = "v156"
if !exists("s:NOTE")
 let s:NOTE    = 0
 let s:WARNING = 1
 let s:ERROR   = 2
endif

let s:keepcpo= &cpo
setl cpo&vim
"let g:dechofuncname= 1
"DechoRemOn
"call Decho("doing autoload/netrw.vim version ".g:loaded_netrw,'~'.expand("<slnum>"))

" ======================
"  Netrw Variables: {{{1
" ======================

" ---------------------------------------------------------------------
" netrw#ErrorMsg: {{{2
"   0=note     = s:NOTE
"   1=warning  = s:WARNING
"   2=error    = s:ERROR
"   Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number)
"          netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number)
"          (this function can optionally take a list of messages)
"  Jan 19, 2016 : max errnum currently is 103
fun! netrw#ErrorMsg(level,msg,errnum)
"  call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)

  if a:level < g:netrw_errorlvl
"   call Dret("netrw#ErrorMsg : suppressing level=".a:level." since g:netrw_errorlvl=".g:netrw_errorlvl)
   return
  endif

  if a:level == 1
   let level= "**warning** (netrw) "
  elseif a:level == 2
   let level= "**error** (netrw) "
  else
   let level= "**note** (netrw) "
  endif
"  call Decho("level=".level,'~'.expand("<slnum>"))

  if g:netrw_use_errorwindow
   " (default) netrw creates a one-line window to show error/warning
   " messages (reliably displayed)

   " record current window number
   let s:winBeforeErr= winnr()
"   call Decho("s:winBeforeErr=".s:winBeforeErr,'~'.expand("<slnum>"))

   " getting messages out reliably is just plain difficult!
   " This attempt splits the current window, creating a one line window.
   if bufexists("NetrwMessage") && bufwinnr("NetrwMessage") > 0
"    call Decho("write to NetrwMessage buffer",'~'.expand("<slnum>"))
    exe bufwinnr("NetrwMessage")."wincmd w"
"    call Decho("setl ma noro",'~'.expand("<slnum>"))
    setl ma noro
    if type(a:msg) == 3
     for msg in a:msg
      NetrwKeepj call setline(line("$")+1,level.msg)
     endfor
    else
     NetrwKeepj call setline(line("$")+1,level.a:msg)
    endif
    NetrwKeepj $
   else
"    call Decho("create a NetrwMessage buffer window",'~'.expand("<slnum>"))
    bo 1split
    sil! call s:NetrwEnew()
    sil! NetrwKeepj call s:NetrwSafeOptions()
    setl bt=nofile
    NetrwKeepj file NetrwMessage
"    call Decho("setl ma noro",'~'.expand("<slnum>"))
    setl ma noro
    if type(a:msg) == 3
     for msg in a:msg
      NetrwKeepj call setline(line("$")+1,level.msg)
     endfor
    else
     NetrwKeepj call setline(line("$"),level.a:msg)
    endif
    NetrwKeepj $
   endif
"   call Decho("wrote msg<".level.a:msg."> to NetrwMessage win#".winnr(),'~'.expand("<slnum>"))
   if &fo !~ '[ta]'
    syn clear
    syn match netrwMesgNote	"^\*\*note\*\*"
    syn match netrwMesgWarning	"^\*\*warning\*\*"
    syn match netrwMesgError	"^\*\*error\*\*"
    hi link netrwMesgWarning WarningMsg
    hi link netrwMesgError   Error
   endif
"   call Decho("setl noma ro bh=wipe",'~'.expand("<slnum>"))
   setl ro nomod noma bh=wipe

  else
   " (optional) netrw will show messages using echomsg.  Even if the
   " message doesn't appear, at least it'll be recallable via :messages
"   redraw!
   if a:level == s:WARNING
    echohl WarningMsg
   elseif a:level == s:ERROR
    echohl Error
   endif

   if type(a:msg) == 3
     for msg in a:msg
      unsilent echomsg level.msg
     endfor
   else
    unsilent echomsg level.a:msg
   endif

"   call Decho("echomsg ***netrw*** ".a:msg,'~'.expand("<slnum>"))
   echohl None
  endif

"  call Dret("netrw#ErrorMsg")
endfun

" ---------------------------------------------------------------------
" s:NetrwInit: initializes variables if they haven't been defined {{{2
"            Loosely,  varname = value.
fun s:NetrwInit(varname,value)
" call Decho("varname<".a:varname."> value=".a:value,'~'.expand("<slnum>"))
  if !exists(a:varname)
   if type(a:value) == 0
    exe "let ".a:varname."=".a:value
   elseif type(a:value) == 1 && a:value =~ '^[{[]'
    exe "let ".a:varname."=".a:value
   elseif type(a:value) == 1
    exe "let ".a:varname."="."'".a:value."'"
   else
    exe "let ".a:varname."=".a:value
   endif
  endif
endfun

" ---------------------------------------------------------------------
"  Netrw Constants: {{{2
call s:NetrwInit("g:netrw_dirhist_cnt",0)
if !exists("s:LONGLIST")
 call s:NetrwInit("s:THINLIST",0)
 call s:NetrwInit("s:LONGLIST",1)
 call s:NetrwInit("s:WIDELIST",2)
 call s:NetrwInit("s:TREELIST",3)
 call s:NetrwInit("s:MAXLIST" ,4)
endif

" ---------------------------------------------------------------------
" Default values for netrw's global protocol variables {{{2
call s:NetrwInit("g:netrw_use_errorwindow",1)

if !exists("g:netrw_dav_cmd")
 if executable("cadaver")
  let g:netrw_dav_cmd	= "cadaver"
 elseif executable("curl")
  let g:netrw_dav_cmd	= "curl"
 else
  let g:netrw_dav_cmd   = ""
 endif
endif
if !exists("g:netrw_fetch_cmd")
 if executable("fetch")
  let g:netrw_fetch_cmd	= "fetch -o"
 else
  let g:netrw_fetch_cmd	= ""
 endif
endif
if !exists("g:netrw_file_cmd")
 if executable("elinks")
  call s:NetrwInit("g:netrw_file_cmd","elinks")
 elseif executable("links")
  call s:NetrwInit("g:netrw_file_cmd","links")
 endif
endif
if !exists("g:netrw_ftp_cmd")
  let g:netrw_ftp_cmd	= "ftp"
endif
let s:netrw_ftp_cmd= g:netrw_ftp_cmd
if !exists("g:netrw_ftp_options")
 let g:netrw_ftp_options= "-i -n"
endif
if !exists("g:netrw_http_cmd")
 if executable("elinks")
  let g:netrw_http_cmd = "elinks"
  call s:NetrwInit("g:netrw_http_xcmd","-source >")
 elseif executable("links")
  let g:netrw_http_cmd = "links"
  call s:NetrwInit("g:netrw_http_xcmd","-source >")
 elseif executable("curl")
  let g:netrw_http_cmd	= "curl"
  call s:NetrwInit("g:netrw_http_xcmd","-o")
 elseif executable("wget")
  let g:netrw_http_cmd	= "wget"
  call s:NetrwInit("g:netrw_http_xcmd","-q -O")
 elseif executable("fetch")
  let g:netrw_http_cmd	= "fetch"
  call s:NetrwInit("g:netrw_http_xcmd","-o")
 else
  let g:netrw_http_cmd	= ""
 endif
endif
call s:NetrwInit("g:netrw_http_put_cmd","curl -T")
call s:NetrwInit("g:netrw_keepj","keepj")
call s:NetrwInit("g:netrw_rcp_cmd"  , "rcp")
call s:NetrwInit("g:netrw_rsync_cmd", "rsync")
if !exists("g:netrw_scp_cmd")
 if executable("scp")
  call s:NetrwInit("g:netrw_scp_cmd" , "scp -q")
 elseif executable("pscp")
  if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable('c:\private.ppk')
   call s:NetrwInit("g:netrw_scp_cmd", 'pscp -i c:\private.ppk')
  else
   call s:NetrwInit("g:netrw_scp_cmd", 'pscp -q')
  endif
 else
  call s:NetrwInit("g:netrw_scp_cmd" , "scp -q")
 endif
endif

call s:NetrwInit("g:netrw_sftp_cmd" , "sftp")
call s:NetrwInit("g:netrw_ssh_cmd"  , "ssh")

if (has("win32") || has("win95") || has("win64") || has("win16"))
  \ && exists("g:netrw_use_nt_rcp")
  \ && g:netrw_use_nt_rcp
  \ && executable( $SystemRoot .'/system32/rcp.exe')
 let s:netrw_has_nt_rcp = 1
 let s:netrw_rcpmode    = '-b'
else
 let s:netrw_has_nt_rcp = 0
 let s:netrw_rcpmode    = ''
endif

" ---------------------------------------------------------------------
" Default values for netrw's global variables {{{2
" Cygwin Detection ------- {{{3
if !exists("g:netrw_cygwin")
 if has("win32") || has("win95") || has("win64") || has("win16")
  if  has("win32unix") && &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
   let g:netrw_cygwin= 1
  else
   let g:netrw_cygwin= 0
  endif
 else
  let g:netrw_cygwin= 0
 endif
endif
" Default values - a-c ---------- {{{3
call s:NetrwInit("g:netrw_alto"        , &sb)
call s:NetrwInit("g:netrw_altv"        , &spr)
call s:NetrwInit("g:netrw_banner"      , 1)
call s:NetrwInit("g:netrw_browse_split", 0)
call s:NetrwInit("g:netrw_bufsettings" , "noma nomod nonu nobl nowrap ro nornu")
call s:NetrwInit("g:netrw_chgwin"      , -1)
call s:NetrwInit("g:netrw_compress"    , "gzip")
call s:NetrwInit("g:netrw_ctags"       , "ctags")
if exists("g:netrw_cursorline") && !exists("g:netrw_cursor")
 call netrw#ErrorMsg(s:NOTE,'g:netrw_cursorline is deprecated; use g:netrw_cursor instead',77)
 let g:netrw_cursor= g:netrw_cursorline
endif
call s:NetrwInit("g:netrw_cursor"      , 2)
let s:netrw_usercul = &cursorline
let s:netrw_usercuc = &cursorcolumn
call s:NetrwInit("g:netrw_cygdrive","/cygdrive")
" Default values - d-g ---------- {{{3
call s:NetrwInit("s:didstarstar",0)
call s:NetrwInit("g:netrw_dirhist_cnt"      , 0)
call s:NetrwInit("g:netrw_decompress"       , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf", ".xz" : "unxz" }')
call s:NetrwInit("g:netrw_dirhistmax"       , 10)
call s:NetrwInit("g:netrw_errorlvl"  , s:NOTE)
call s:NetrwInit("g:netrw_fastbrowse"       , 1)
call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$')
if !exists("g:netrw_ftp_list_cmd")
 if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)
  let g:netrw_ftp_list_cmd     = "ls -lF"
  let g:netrw_ftp_timelist_cmd = "ls -tlF"
  let g:netrw_ftp_sizelist_cmd = "ls -slF"
 else
  let g:netrw_ftp_list_cmd     = "dir"
  let g:netrw_ftp_timelist_cmd = "dir"
  let g:netrw_ftp_sizelist_cmd = "dir"
 endif
endif
call s:NetrwInit("g:netrw_ftpmode",'binary')
" Default values - h-lh ---------- {{{3
call s:NetrwInit("g:netrw_hide",1)
if !exists("g:netrw_ignorenetrc")
 if &shell =~ '\c\<\%(cmd\|4nt\)\.exe$'
  let g:netrw_ignorenetrc= 1
 else
  let g:netrw_ignorenetrc= 0
 endif
endif
call s:NetrwInit("g:netrw_keepdir",1)
if !exists("g:netrw_list_cmd")
 if g:netrw_scp_cmd =~ '^pscp' && executable("pscp")
  if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable("c:\\private.ppk")
   " provide a pscp-based listing command
   let g:netrw_scp_cmd ="pscp -i C:\\private.ppk"
  endif
  if exists("g:netrw_list_cmd_options")
   let g:netrw_list_cmd= g:netrw_scp_cmd." -ls USEPORT HOSTNAME: ".g:netrw_list_cmd_options
  else
   let g:netrw_list_cmd= g:netrw_scp_cmd." -ls USEPORT HOSTNAME:"
  endif
 elseif executable(g:netrw_ssh_cmd)
  " provide a scp-based default listing command
  if exists("g:netrw_list_cmd_options")
   let g:netrw_list_cmd= g:netrw_ssh_cmd." USEPORT HOSTNAME ls -FLa ".g:netrw_list_cmd_options
  else
   let g:netrw_list_cmd= g:netrw_ssh_cmd." USEPORT HOSTNAME ls -FLa"
  endif
 else
"  call Decho(g:netrw_ssh_cmd." is not executable",'~'.expand("<slnum>"))
  let g:netrw_list_cmd= ""
 endif
endif
call s:NetrwInit("g:netrw_list_hide","")
" Default values - lh-lz ---------- {{{3
if exists("g:netrw_local_copycmd")
 let g:netrw_localcopycmd= g:netrw_local_copycmd
 call netrw#ErrorMsg(s:NOTE,"g:netrw_local_copycmd is deprecated in favor of g:netrw_localcopycmd",84)
endif
if !exists("g:netrw_localcmdshell")
 let g:netrw_localcmdshell= ""
endif
if !exists("g:netrw_localcopycmd")
 if has("win32") || has("win95") || has("win64") || has("win16")
  if g:netrw_cygwin
   let g:netrw_localcopycmd= "cp"
  else
   let g:netrw_localcopycmd= expand("$COMSPEC")." /c copy"
  endif
 elseif has("unix") || has("macunix")
  let g:netrw_localcopycmd= "cp"
 else
  let g:netrw_localcopycmd= ""
 endif
endif
if !exists("g:netrw_localcopydircmd")
 if has("win32") || has("win95") || has("win64") || has("win16")
  if g:netrw_cygwin
   let g:netrw_localcopydircmd= "cp -R"
  else
   let g:netrw_localcopycmd= expand("$COMSPEC")." /c xcopy /e /c /h /i /k"
  endif
 elseif has("unix") || has("macunix")
  let g:netrw_localcopydircmd= "cp -R"
 else
  let g:netrw_localcopycmd= ""
 endif
endif
if exists("g:netrw_local_mkdir")
 let g:netrw_localmkdir= g:netrw_local_mkdir
 call netrw#ErrorMsg(s:NOTE,"g:netrw_local_mkdir is deprecated in favor of g:netrw_localmkdir",87)
endif
if has("win32") || has("win95") || has("win64") || has("win16")
  if g:netrw_cygwin
   call s:NetrwInit("g:netrw_localmkdir","mkdir")
  else
   let g:netrw_localmkdir= expand("$COMSPEC")." /c mkdir"
  endif
else
 call s:NetrwInit("g:netrw_localmkdir","mkdir")
endif
call s:NetrwInit("g:netrw_remote_mkdir","mkdir")
if exists("g:netrw_local_movecmd")
 let g:netrw_localmovecmd= g:netrw_local_movecmd
 call netrw#ErrorMsg(s:NOTE,"g:netrw_local_movecmd is deprecated in favor of g:netrw_localmovecmd",88)
endif
if !exists("g:netrw_localmovecmd")
 if has("win32") || has("win95") || has("win64") || has("win16")
  if g:netrw_cygwin
   let g:netrw_localmovecmd= "mv"
  else
   let g:netrw_localmovecmd= expand("$COMSPEC")." /c move"
  endif
 elseif has("unix") || has("macunix")
  let g:netrw_localmovecmd= "mv"
 else
  let g:netrw_localmovecmd= ""
 endif
endif
if v:version < 704 || !has("patch1109")
 if exists("g:netrw_local_rmdir")
  let g:netrw_localrmdir= g:netrw_local_rmdir
  call netrw#ErrorMsg(s:NOTE,"g:netrw_local_rmdir is deprecated in favor of g:netrw_localrmdir",86)
 endif
 if has("win32") || has("win95") || has("win64") || has("win16")
   if g:netrw_cygwin
    call s:NetrwInit("g:netrw_localrmdir","rmdir")
   else
    let g:netrw_localrmdir= expand("$COMSPEC")." /c rmdir"
   endif
 else
  call s:NetrwInit("g:netrw_localrmdir","rmdir")
 endif
endif
call s:NetrwInit("g:netrw_liststyle"  , s:THINLIST)
" sanity checks
if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST
 let g:netrw_liststyle= s:THINLIST
endif
if g:netrw_liststyle == s:LONGLIST && g:netrw_scp_cmd !~ '^pscp'
 let g:netrw_list_cmd= g:netrw_list_cmd." -l"
endif
" Default values - m-r ---------- {{{3
call s:NetrwInit("g:netrw_markfileesc"   , '*./[\~')
call s:NetrwInit("g:netrw_maxfilenamelen", 32)
call s:NetrwInit("g:netrw_menu"          , 1)
call s:NetrwInit("g:netrw_mkdir_cmd"     , g:netrw_ssh_cmd." USEPORT HOSTNAME mkdir")
call s:NetrwInit("g:netrw_mousemaps"     , (exists("+mouse") && &mouse =~# '[anh]'))
call s:NetrwInit("g:netrw_retmap"        , 0)
if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)
 call s:NetrwInit("g:netrw_chgperm"       , "chmod PERM FILENAME")
elseif has("win32") || has("win95") || has("win64") || has("win16")
 call s:NetrwInit("g:netrw_chgperm"       , "cacls FILENAME /e /p PERM")
else
 call s:NetrwInit("g:netrw_chgperm"       , "chmod PERM FILENAME")
endif
call s:NetrwInit("g:netrw_preview"       , 0)
call s:NetrwInit("g:netrw_scpport"       , "-P")
call s:NetrwInit("g:netrw_servername"    , "NETRWSERVER")
call s:NetrwInit("g:netrw_sshport"       , "-p")
call s:NetrwInit("g:netrw_rename_cmd"    , g:netrw_ssh_cmd." USEPORT HOSTNAME mv")
call s:NetrwInit("g:netrw_rm_cmd"        , g:netrw_ssh_cmd." USEPORT HOSTNAME rm")
call s:NetrwInit("g:netrw_rmdir_cmd"     , g:netrw_ssh_cmd." USEPORT HOSTNAME rmdir")
call s:NetrwInit("g:netrw_rmf_cmd"       , g:netrw_ssh_cmd." USEPORT HOSTNAME rm -f ")
" Default values - q-s ---------- {{{3
call s:NetrwInit("g:netrw_quickhelp",0)
let s:QuickHelp= ["-:go up dir  D:delete  R:rename  s:sort-by  x:special",
   \              "(create new)  %:file  d:directory",
   \              "(windows split&open) o:horz  v:vert  p:preview",
   \              "i:style  qf:file info  O:obtain  r:reverse",
   \              "(marks)  mf:mark file  mt:set target  mm:move  mc:copy",
   \              "(bookmarks)  mb:make  mB:delete  qb:list  gb:go to",
   \              "(history)  qb:list  u:go up  U:go down",
   \              "(targets)  mt:target Tb:use bookmark  Th:use history"]
" g:netrw_sepchr: picking a character that doesn't appear in filenames that can be used to separate priority from filename
call s:NetrwInit("g:netrw_sepchr"        , (&enc == "euc-jp")? "\<Char-0x01>" : "\<Char-0xff>")
if !exists("g:netrw_keepj") || g:netrw_keepj == "keepj"
 call s:NetrwInit("s:netrw_silentxfer"    , (exists("g:netrw_silent") && g:netrw_silent != 0)? "sil keepj " : "keepj ")
else
 call s:NetrwInit("s:netrw_silentxfer"    , (exists("g:netrw_silent") && g:netrw_silent != 0)? "sil " : " ")
endif
call s:NetrwInit("g:netrw_sort_by"       , "name") " alternatives: date                                      , size
call s:NetrwInit("g:netrw_sort_options"  , "")
call s:NetrwInit("g:netrw_sort_direction", "normal") " alternative: reverse  (z y x ...)
if !exists("g:netrw_sort_sequence")
 if has("unix")
  let g:netrw_sort_sequence= '[\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$'
 else
  let g:netrw_sort_sequence= '[\/]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$'
 endif
endif
call s:NetrwInit("g:netrw_special_syntax"   , 0)
call s:NetrwInit("g:netrw_ssh_browse_reject", '^total\s\+\d\+$')
call s:NetrwInit("g:netrw_suppress_gx_mesg",  1)
call s:NetrwInit("g:netrw_use_noswf"        , 1)
call s:NetrwInit("g:netrw_sizestyle"        ,"b")
" Default values - t-w ---------- {{{3
call s:NetrwInit("g:netrw_timefmt","%c")
if !exists("g:netrw_xstrlen")
 if exists("g:Align_xstrlen")
  let g:netrw_xstrlen= g:Align_xstrlen
 elseif exists("g:drawit_xstrlen")
  let g:netrw_xstrlen= g:drawit_xstrlen
 elseif &enc == "latin1" || !has("multi_byte")
  let g:netrw_xstrlen= 0
 else
  let g:netrw_xstrlen= 1
 endif
endif
call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.")
call s:NetrwInit("g:netrw_win95ftp",1)
call s:NetrwInit("g:netrw_winsize",50)
call s:NetrwInit("g:netrw_wiw",1)
if g:netrw_winsize > 100|let g:netrw_winsize= 100|endif
" ---------------------------------------------------------------------
" Default values for netrw's script variables: {{{2
call s:NetrwInit("g:netrw_fname_escape",' ?&;%')
if has("win32") || has("win95") || has("win64") || has("win16")
 call s:NetrwInit("g:netrw_glob_escape",'*?`{[]$')
else
 call s:NetrwInit("g:netrw_glob_escape",'*[]?`{~$\')
endif
call s:NetrwInit("g:netrw_menu_escape",'.&? \')
call s:NetrwInit("g:netrw_tmpfile_escape",' &;')
call s:NetrwInit("s:netrw_map_escape","<|\n\r\\\<C-V>\"")
if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
 let s:treedepthstring= "│ "
else
 let s:treedepthstring= "| "
endif
call s:NetrwInit("s:netrw_nbcd",'{}')

" BufEnter event ignored by decho when following variable is true
"  Has a side effect that doau BufReadPost doesn't work, so
"  files read by network transfer aren't appropriately highlighted.
"let g:decho_bufenter = 1	"Decho

" ======================
"  Netrw Initialization: {{{1
" ======================
if v:version >= 700 && has("balloon_eval") && !exists("s:initbeval") && !exists("g:netrw_nobeval") && has("syntax") && exists("g:syntax_on")
" call Decho("installed beval events",'~'.expand("<slnum>"))
 let &l:bexpr = "netrw#BalloonHelp()"
 au FileType netrw	setl beval
 au WinLeave *		if &ft == "netrw" && exists("s:initbeval")|let &beval= s:initbeval|endif
 au VimEnter * 		let s:initbeval= &beval
"else " Decho
" if v:version < 700           | call Decho("did not install beval events: v:version=".v:version." < 700","~".expand("<slnum>"))     | endif
" if !has("balloon_eval")      | call Decho("did not install beval events: does not have balloon_eval","~".expand("<slnum>"))        | endif
" if exists("s:initbeval")     | call Decho("did not install beval events: s:initbeval exists","~".expand("<slnum>"))                | endif
" if exists("g:netrw_nobeval") | call Decho("did not install beval events: g:netrw_nobeval exists","~".expand("<slnum>"))            | endif
" if !has("syntax")            | call Decho("did not install beval events: does not have syntax highlighting","~".expand("<slnum>")) | endif
" if exists("g:syntax_on")     | call Decho("did not install beval events: g:syntax_on exists","~".expand("<slnum>"))                | endif
endif
au WinEnter *	if &ft == "netrw"|call s:NetrwInsureWinVars()|endif

if g:netrw_keepj =~# "keepj"
 com! -nargs=*	NetrwKeepj	keepj <args>
else
 let g:netrw_keepj= ""
 com! -nargs=*	NetrwKeepj	<args>
endif

" ==============================
"  Netrw Utility Functions: {{{1
" ==============================

" ---------------------------------------------------------------------
" netrw#BalloonHelp: {{{2
if v:version >= 700 && has("balloon_eval") && has("syntax") && exists("g:syntax_on") && !exists("g:netrw_nobeval")
" call Decho("loading netrw#BalloonHelp()",'~'.expand("<slnum>"))
 fun! netrw#BalloonHelp()
   if &ft != "netrw"
    return ""
   endif
   if !exists("w:netrw_bannercnt") || v:beval_lnum >= w:netrw_bannercnt || (exists("g:netrw_nobeval") && g:netrw_nobeval)
    let mesg= ""
   elseif     v:beval_text == "Netrw" || v:beval_text == "Directory" || v:beval_text == "Listing"
    let mesg = "i: thin-long-wide-tree  gh: quick hide/unhide of dot-files   qf: quick file info  %:open new file"
   elseif     getline(v:beval_lnum) =~ '^"\s*/'
    let mesg = "<cr>: edit/enter   o: edit/enter in horiz window   t: edit/enter in new tab   v:edit/enter in vert window"
   elseif     v:beval_text == "Sorted" || v:beval_text == "by"
    let mesg = 's: sort by name, time, file size, extension   r: reverse sorting order   mt: mark target'
   elseif v:beval_text == "Sort"   || v:beval_text == "sequence"
    let mesg = "S: edit sorting sequence"
   elseif v:beval_text == "Hiding" || v:beval_text == "Showing"
    let mesg = "a: hiding-showing-all   ctrl-h: editing hiding list   mh: hide/show by suffix"
   elseif v:beval_text == "Quick" || v:beval_text == "Help"
    let mesg = "Help: press <F1>"
   elseif v:beval_text == "Copy/Move" || v:beval_text == "Tgt"
    let mesg = "mt: mark target   mc: copy marked file to target   mm: move marked file to target"
   else
    let mesg= ""
   endif
   return mesg
 endfun
"else " Decho
" if v:version < 700            |call Decho("did not load netrw#BalloonHelp(): vim version ".v:version." < 700 -","~".expand("<slnum>"))|endif
" if !has("balloon_eval")       |call Decho("did not load netrw#BalloonHelp(): does not have balloon eval","~".expand("<slnum>"))       |endif
" if !has("syntax")             |call Decho("did not load netrw#BalloonHelp(): syntax disabled","~".expand("<slnum>"))                  |endif
" if !exists("g:syntax_on")     |call Decho("did not load netrw#BalloonHelp(): g:syntax_on n/a","~".expand("<slnum>"))                  |endif
" if  exists("g:netrw_nobeval") |call Decho("did not load netrw#BalloonHelp(): g:netrw_nobeval exists","~".expand("<slnum>"))           |endif
endif

" ------------------------------------------------------------------------
" netrw#Explore: launch the local browser in the directory of the current file {{{2
"          indx:  == -1: Nexplore
"                 == -2: Pexplore
"                 ==  +: this is overloaded:
"                      * If Nexplore/Pexplore is in use, then this refers to the
"                        indx'th item in the w:netrw_explore_list[] of items which
"                        matched the */pattern **/pattern *//pattern **//pattern
"                      * If Hexplore or Vexplore, then this will override
"                        g:netrw_winsize to specify the qty of rows or columns the
"                        newly split window should have.
"          dosplit==0: the window will be split iff the current file has been modified and hidden not set
"          dosplit==1: the window will be split before running the local browser
"          style == 0: Explore     style == 1: Explore!
"                == 2: Hexplore    style == 3: Hexplore!
"                == 4: Vexplore    style == 5: Vexplore!
"                == 6: Texplore
fun! netrw#Explore(indx,dosplit,style,...)
"  call Dfunc("netrw#Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.",a:1<".a:1.">) &modified=".&modified." modifiable=".&modifiable." a:0=".a:0." win#".winnr()." buf#".bufnr("%")." ft=".&ft)
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
  if !exists("b:netrw_curdir")
   let b:netrw_curdir= getcwd()
"   call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)",'~'.expand("<slnum>"))
  endif

  " record current file for Rexplore's benefit
  if &ft != "netrw"
   let w:netrw_rexfile= expand("%:p")
  endif

  " record current directory
  let curdir     = simplify(b:netrw_curdir)
  let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e')
  if !exists("g:netrw_cygwin") && (has("win32") || has("win95") || has("win64") || has("win16"))
   let curdir= substitute(curdir,'\','/','g')
  endif
"  call Decho("curdir<".curdir.">  curfiledir<".curfiledir.">",'~'.expand("<slnum>"))

  " using completion, directories with spaces in their names (thanks, Bill Gates, for a truly dumb idea)
  " will end up with backslashes here.  Solution: strip off backslashes that precede white space and
  " try Explore again.
  if a:0 > 0
"   call Decho('considering retry: a:1<'.a:1.'>: '.
     \ ((a:1 =~ "\\\s")?                   'has backslash whitespace' : 'does not have backslash whitespace').', '.
     \ ((filereadable(s:NetrwFile(a:1)))?  'is readable'              : 'is not readable').', '.
     \ ((isdirectory(s:NetrwFile(a:1))))?  'is a directory'           : 'is not a directory',
     \ '~'.expand("<slnum>"))
   if a:1 =~ "\\\s" && !filereadable(s:NetrwFile(a:1)) && !isdirectory(s:NetrwFile(a:1))
"    call Decho("re-trying Explore with <".substitute(a:1,'\\\(\s\)','\1','g').">",'~'.expand("<slnum>"))
    call netrw#Explore(a:indx,a:dosplit,a:style,substitute(a:1,'\\\(\s\)','\1','g'))
"    call Dret("netrw#Explore : returning from retry")
    return
"   else " Decho
"    call Decho("retry not needed",'~'.expand("<slnum>"))
   endif
  endif

  " save registers
  if has("clipboard")
   sil! let keepregstar = @*
   sil! let keepregplus = @+
  endif
  sil! let keepregslash= @/

  " if   dosplit
  " -or- file has been modified AND file not hidden when abandoned
  " -or- Texplore used
  if a:dosplit || (&modified && &hidden == 0 && &bufhidden != "hide") || a:style == 6
"   call Decho("case dosplit=".a:dosplit." modified=".&modified." a:style=".a:style.": dosplit or file has been modified",'~'.expand("<slnum>"))
   call s:SaveWinVars()
   let winsz= g:netrw_winsize
   if a:indx > 0
    let winsz= a:indx
   endif

   if a:style == 0      " Explore, Sexplore
"    call Decho("style=0: Explore or Sexplore",'~'.expand("<slnum>"))
    let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz
    if winsz == 0|let winsz= ""|endif
    exe "noswapfile ".winsz."wincmd s"
"    call Decho("exe noswapfile ".winsz."wincmd s",'~'.expand("<slnum>"))

   elseif a:style == 1  "Explore!, Sexplore!
"    call Decho("style=1: Explore! or Sexplore!",'~'.expand("<slnum>"))
    let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz
    if winsz == 0|let winsz= ""|endif
    exe "keepalt noswapfile ".winsz."wincmd v"
"    call Decho("exe keepalt noswapfile ".winsz."wincmd v",'~'.expand("<slnum>"))

   elseif a:style == 2  " Hexplore
"    call Decho("style=2: Hexplore",'~'.expand("<slnum>"))
    let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz
    if winsz == 0|let winsz= ""|endif
    exe "keepalt noswapfile bel ".winsz."wincmd s"
"    call Decho("exe keepalt noswapfile bel ".winsz."wincmd s",'~'.expand("<slnum>"))

   elseif a:style == 3  " Hexplore!
"    call Decho("style=3: Hexplore!",'~'.expand("<slnum>"))
    let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz
    if winsz == 0|let winsz= ""|endif
    exe "keepalt noswapfile abo ".winsz."wincmd s"
"    call Decho("exe keepalt noswapfile abo ".winsz."wincmd s",'~'.expand("<slnum>"))

   elseif a:style == 4  " Vexplore
"    call Decho("style=4: Vexplore",'~'.expand("<slnum>"))
    let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz
    if winsz == 0|let winsz= ""|endif
    exe "keepalt noswapfile lefta ".winsz."wincmd v"
"    call Decho("exe keepalt noswapfile lefta ".winsz."wincmd v",'~'.expand("<slnum>"))

   elseif a:style == 5  " Vexplore!
"    call Decho("style=5: Vexplore!",'~'.expand("<slnum>"))
    let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz
    if winsz == 0|let winsz= ""|endif
    exe "keepalt noswapfile rightb ".winsz."wincmd v"
"    call Decho("exe keepalt noswapfile rightb ".winsz."wincmd v",'~'.expand("<slnum>"))

   elseif a:style == 6  " Texplore
    call s:SaveBufVars()
"    call Decho("style  = 6: Texplore",'~'.expand("<slnum>"))
    exe "keepalt tabnew ".fnameescape(curdir)
"    call Decho("exe keepalt tabnew ".fnameescape(curdir),'~'.expand("<slnum>"))
    call s:RestoreBufVars()
   endif
   call s:RestoreWinVars()
"  else " Decho
"   call Decho("case a:dosplit=".a:dosplit." AND modified=".&modified." AND a:style=".a:style." is not 6",'~'.expand("<slnum>"))
  endif
  NetrwKeepj norm! 0

  if a:0 > 0
"   call Decho("case [a:0=".a:0."] > 0: a:1<".a:1.">",'~'.expand("<slnum>"))
   if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin))
"    call Decho("..case a:1<".a:1.">: starts with ~ and unix or cygwin",'~'.expand("<slnum>"))
    let dirname= simplify(substitute(a:1,'\~',expand("$HOME"),''))
"    call Decho("..using dirname<".dirname.">  (case: ~ && unix||cygwin)",'~'.expand("<slnum>"))
   elseif a:1 == '.'
"    call Decho("..case a:1<".a:1.">: matches .",'~'.expand("<slnum>"))
    let dirname= simplify(exists("b:netrw_curdir")? b:netrw_curdir : getcwd())
    if dirname !~ '/$'
     let dirname= dirname."/"
    endif
"    call Decho("..using dirname<".dirname.">  (case: ".(exists("b:netrw_curdir")? "b:netrw_curdir" : "getcwd()").")",'~'.expand("<slnum>"))
   elseif a:1 =~ '\$'
"    call Decho("..case a:1<".a:1.">: matches ending $",'~'.expand("<slnum>"))
    let dirname= simplify(expand(a:1))
"    call Decho("..using user-specified dirname<".dirname."> with $env-var",'~'.expand("<slnum>"))
   elseif a:1 !~ '^\*\{1,2}/' && a:1 !~ '^\a\{3,}://'
"    call Decho("..case a:1<".a:1.">: other, not pattern or filepattern",'~'.expand("<slnum>"))
    let dirname= simplify(a:1)
"    call Decho("..using user-specified dirname<".dirname.">",'~'.expand("<slnum>"))
   else
"    call Decho("..case a:1: pattern or filepattern",'~'.expand("<slnum>"))
    let dirname= a:1
   endif
  else
   " clear explore
"   call Decho("case a:0=".a:0.": clearing Explore list",'~'.expand("<slnum>"))
   call s:NetrwClearExplore()
"   call Dret("netrw#Explore : cleared list")
   return
  endif

"  call Decho("dirname<".dirname.">",'~'.expand("<slnum>"))
  if dirname =~ '\.\./\=$'
   let dirname= simplify(fnamemodify(dirname,':p:h'))
  elseif dirname =~ '\.\.' || dirname == '.'
   let dirname= simplify(fnamemodify(dirname,':p'))
  endif
"  call Decho("dirname<".dirname.">  (after simplify)",'~'.expand("<slnum>"))

  if dirname =~ '^\*//'
   " starpat=1: Explore *//pattern   (current directory only search for files containing pattern)
"   call Decho("case starpat=1: Explore *//pattern",'~'.expand("<slnum>"))
   let pattern= substitute(dirname,'^\*//\(.*\)$','\1','')
   let starpat= 1
"   call Decho("..Explore *//pat: (starpat=".starpat.") dirname<".dirname."> -> pattern<".pattern.">",'~'.expand("<slnum>"))
   if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif

  elseif dirname =~ '^\*\*//'
   " starpat=2: Explore **//pattern  (recursive descent search for files containing pattern)
"   call Decho("case starpat=2: Explore **//pattern",'~'.expand("<slnum>"))
   let pattern= substitute(dirname,'^\*\*//','','')
   let starpat= 2
"   call Decho("..Explore **//pat: (starpat=".starpat.") dirname<".dirname."> -> pattern<".pattern.">",'~'.expand("<slnum>"))

  elseif dirname =~ '/\*\*/'
   " handle .../**/.../filepat
"   call Decho("case starpat=4: Explore .../**/.../filepat",'~'.expand("<slnum>"))
   let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','')
   if prefixdir =~ '^/' || (prefixdir =~ '^\a:/' && (has("win32") || has("win95") || has("win64") || has("win16")))
    let b:netrw_curdir = prefixdir
   else
    let b:netrw_curdir= getcwd().'/'.prefixdir
   endif
   let dirname= substitute(dirname,'^.\{-}\(\*\*/.*\)$','\1','')
   let starpat= 4
"   call Decho("..pwd<".getcwd()."> dirname<".dirname.">",'~'.expand("<slnum>"))
"   call Decho("..case Explore ../**/../filepat (starpat=".starpat.")",'~'.expand("<slnum>"))

  elseif dirname =~ '^\*/'
   " case starpat=3: Explore */filepat   (search in current directory for filenames matching filepat)
   let starpat= 3
"   call Decho("case starpat=3: Explore */filepat (starpat=".starpat.")",'~'.expand("<slnum>"))

  elseif dirname=~ '^\*\*/'
   " starpat=4: Explore **/filepat  (recursive descent search for filenames matching filepat)
   let starpat= 4
"   call Decho("case starpat=4: Explore **/filepat (starpat=".starpat.")",'~'.expand("<slnum>"))

  else
   let starpat= 0
"   call Decho("case starpat=0: default",'~'.expand("<slnum>"))
  endif

  if starpat == 0 && a:indx >= 0
   " [Explore Hexplore Vexplore Sexplore] [dirname]
"   call Decho("case starpat==0 && a:indx=".a:indx.": dirname<".dirname.">, handles Explore Hexplore Vexplore Sexplore",'~'.expand("<slnum>"))
   if dirname == ""
    let dirname= curfiledir
"    call Decho("..empty dirname, using current file's directory<".dirname.">",'~'.expand("<slnum>"))
   endif
   if dirname =~# '^scp://' || dirname =~ '^ftp://'
    call netrw#Nread(2,dirname)
   else
    if dirname == ""
     let dirname= getcwd()
    elseif (has("win32") || has("win95") || has("win64") || has("win16")) && !g:netrw_cygwin
     " Windows : check for a drive specifier, or else for a remote share name ('\\Foo' or '//Foo',
     " depending on whether backslashes have been converted to forward slashes by earlier code).
     if dirname !~ '^[a-zA-Z]:' && dirname !~ '^\\\\\w\+' && dirname !~ '^//\w\+'
      let dirname= b:netrw_curdir."/".dirname
     endif
    elseif dirname !~ '^/'
     let dirname= b:netrw_curdir."/".dirname
    endif
"    call Decho("..calling LocalBrowseCheck(dirname<".dirname.">)",'~'.expand("<slnum>"))
    call netrw#LocalBrowseCheck(dirname)
"    call Decho(" modified=".&modified." modifiable=".&modifiable." readonly=".&readonly,'~'.expand("<slnum>"))
"    call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
   endif
   if exists("w:netrw_bannercnt")
    " done to handle P08-Ingelrest. :Explore will _Always_ go to the line just after the banner.
    " If one wants to return the same place in the netrw window, use :Rex instead.
    exe w:netrw_bannercnt
   endif

"   call Decho("curdir<".curdir.">",'~'.expand("<slnum>"))
   " ---------------------------------------------------------------------
   " Jan 24, 2013: not sure why the following was present.  See P08-Ingelrest
"   if has("win32") || has("win95") || has("win64") || has("win16")
"    NetrwKeepj call search('\<'.substitute(curdir,'^.*[/\\]','','e').'\>','cW')
"   else
"    NetrwKeepj call search('\<'.substitute(curdir,'^.*/','','e').'\>','cW')
"   endif
   " ---------------------------------------------------------------------

  " starpat=1: Explore *//pattern  (current directory only search for files containing pattern)
  " starpat=2: Explore **//pattern (recursive descent search for files containing pattern)
  " starpat=3: Explore */filepat   (search in current directory for filenames matching filepat)
  " starpat=4: Explore **/filepat  (recursive descent search for filenames matching filepat)
  elseif a:indx <= 0
   " Nexplore, Pexplore, Explore: handle starpat
"   call Decho("case a:indx<=0: Nexplore, Pexplore, <s-down>, <s-up> starpat=".starpat." a:indx=".a:indx,'~'.expand("<slnum>"))
   if !mapcheck("<s-up>","n") && !mapcheck("<s-down>","n") && exists("b:netrw_curdir")
"    call Decho("..set up <s-up> and <s-down> maps",'~'.expand("<slnum>"))
    let s:didstarstar= 1
    nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
    nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
   endif

   if has("path_extra")
"    call Decho("..starpat=".starpat.": has +path_extra",'~'.expand("<slnum>"))
    if !exists("w:netrw_explore_indx")
     let w:netrw_explore_indx= 0
    endif

    let indx = a:indx
"    call Decho("..starpat=".starpat.": set indx= [a:indx=".indx."]",'~'.expand("<slnum>"))

    if indx == -1
     " Nexplore
"     call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>"))
     if !exists("w:netrw_explore_list") " sanity check
      NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
      if has("clipboard")
       sil! let @* = keepregstar
       sil! let @+ = keepregstar
      endif
      sil! let @/ = keepregslash
"      call Dret("netrw#Explore")
      return
     endif
     let indx= w:netrw_explore_indx
     if indx < 0                        | let indx= 0                           | endif
     if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif
     let curfile= w:netrw_explore_list[indx]
"     call Decho("....indx=".indx." curfile<".curfile.">",'~'.expand("<slnum>"))
     while indx < w:netrw_explore_listlen && curfile == w:netrw_explore_list[indx]
      let indx= indx + 1
"      call Decho("....indx=".indx." (Nexplore while loop)",'~'.expand("<slnum>"))
     endwhile
     if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif
"     call Decho("....Nexplore: indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx,'~'.expand("<slnum>"))

    elseif indx == -2
     " Pexplore
"     call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>"))
     if !exists("w:netrw_explore_list") " sanity check
      NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
      if has("clipboard")
       sil! let @* = keepregstar
       sil! let @+ = keepregstar
      endif
      sil! let @/ = keepregslash
"      call Dret("netrw#Explore")
      return
     endif
     let indx= w:netrw_explore_indx
     if indx < 0                        | let indx= 0                           | endif
     if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif
     let curfile= w:netrw_explore_list[indx]
"     call Decho("....indx=".indx." curfile<".curfile.">",'~'.expand("<slnum>"))
     while indx >= 0 && curfile == w:netrw_explore_list[indx]
      let indx= indx - 1
"      call Decho("....indx=".indx." (Pexplore while loop)",'~'.expand("<slnum>"))
     endwhile
     if indx < 0                        | let indx= 0                           | endif
"     call Decho("....Pexplore: indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx,'~'.expand("<slnum>"))

    else
     " Explore -- initialize
     " build list of files to Explore with Nexplore/Pexplore
"     call Decho("..starpat=".starpat.": case Explore: initialize (indx=".indx.")",'~'.expand("<slnum>"))
     NetrwKeepj keepalt call s:NetrwClearExplore()
     let w:netrw_explore_indx= 0
     if !exists("b:netrw_curdir")
      let b:netrw_curdir= getcwd()
     endif
"     call Decho("....starpat=".starpat.": b:netrw_curdir<".b:netrw_curdir.">",'~'.expand("<slnum>"))

     " switch on starpat to build the w:netrw_explore_list of files
     if starpat == 1
      " starpat=1: Explore *//pattern  (current directory only search for files containing pattern)
"      call Decho("..case starpat=".starpat.": build *//pattern list  (curdir-only srch for files containing pattern)  &hls=".&hls,'~'.expand("<slnum>"))
"      call Decho("....pattern<".pattern.">",'~'.expand("<slnum>"))
      try
       exe "NetrwKeepj noautocmd vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*"
      catch /^Vim\%((\a\+)\)\=:E480/
       keepalt call netrw#ErrorMsg(s:WARNING,"no match with pattern<".pattern.">",76)
"       call Dret("netrw#Explore : unable to find pattern<".pattern.">")
       return
      endtry
      let w:netrw_explore_list = s:NetrwExploreListUniq(map(getqflist(),'bufname(v:val.bufnr)'))
      if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif

     elseif starpat == 2
      " starpat=2: Explore **//pattern (recursive descent search for files containing pattern)
"      call Decho("..case starpat=".starpat.": build **//pattern list  (recursive descent files containing pattern)",'~'.expand("<slnum>"))
"      call Decho("....pattern<".pattern.">",'~'.expand("<slnum>"))
      try
       exe "sil NetrwKeepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*"
      catch /^Vim\%((\a\+)\)\=:E480/
       keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45)
       if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
       if has("clipboard")
        sil! let @* = keepregstar
        sil! let @+ = keepregstar
       endif
       sil! let @/ = keepregslash
"       call Dret("netrw#Explore : no files matched pattern")
       return
      endtry
      let s:netrw_curdir       = b:netrw_curdir
      let w:netrw_explore_list = getqflist()
      let w:netrw_explore_list = s:NetrwExploreListUniq(map(w:netrw_explore_list,'s:netrw_curdir."/".bufname(v:val.bufnr)'))
      if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif

     elseif starpat == 3
      " starpat=3: Explore */filepat   (search in current directory for filenames matching filepat)
"      call Decho("..case starpat=".starpat.": build */filepat list  (curdir-only srch filenames matching filepat)  &hls=".&hls,'~'.expand("<slnum>"))
      let filepat= substitute(dirname,'^\*/','','')
      let filepat= substitute(filepat,'^[%#<]','\\&','')
"      call Decho("....b:netrw_curdir<".b:netrw_curdir.">",'~'.expand("<slnum>"))
"      call Decho("....filepat<".filepat.">",'~'.expand("<slnum>"))
      let w:netrw_explore_list= s:NetrwExploreListUniq(split(expand(b:netrw_curdir."/".filepat),'\n'))
      if &hls | let keepregslash= s:ExplorePatHls(filepat) | endif

     elseif starpat == 4
      " starpat=4: Explore **/filepat  (recursive descent search for filenames matching filepat)
"      call Decho("..case starpat=".starpat.": build **/filepat list  (recursive descent srch filenames matching filepat)  &hls=".&hls,'~'.expand("<slnum>"))
      let w:netrw_explore_list= s:NetrwExploreListUniq(split(expand(b:netrw_curdir."/".dirname),'\n'))
      if &hls | let keepregslash= s:ExplorePatHls(dirname) | endif
     endif " switch on starpat to build w:netrw_explore_list

     let w:netrw_explore_listlen = len(w:netrw_explore_list)
"     call Decho("....w:netrw_explore_list<".string(w:netrw_explore_list).">",'~'.expand("<slnum>"))
"     call Decho("....w:netrw_explore_listlen=".w:netrw_explore_listlen,'~'.expand("<slnum>"))

     if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/')
      keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
      if has("clipboard")
       sil! let @* = keepregstar
       sil! let @+ = keepregstar
      endif
      sil! let @/ = keepregslash
"      call Dret("netrw#Explore : no files matched")
      return
     endif
    endif  " if indx ... endif

    " NetrwStatusLine support - for exploring support
    let w:netrw_explore_indx= indx
"    call Decho("....w:netrw_explore_list<".join(w:netrw_explore_list,',')."> len=".w:netrw_explore_listlen,'~'.expand("<slnum>"))

    " wrap the indx around, but issue a note
    if indx >= w:netrw_explore_listlen || indx < 0
"     call Decho("....wrap indx (indx=".indx." listlen=".w:netrw_explore_listlen.")",'~'.expand("<slnum>"))
     let indx                = (indx < 0)? ( w:netrw_explore_listlen - 1 ) : 0
     let w:netrw_explore_indx= indx
     keepalt NetrwKeepj call netrw#ErrorMsg(s:NOTE,"no more files match Explore pattern",43)
    endif

    exe "let dirfile= w:netrw_explore_list[".indx."]"
"    call Decho("....dirfile=w:netrw_explore_list[indx=".indx."]= <".dirfile.">",'~'.expand("<slnum>"))
    let newdir= substitute(dirfile,'/[^/]*$','','e')
"    call Decho("....newdir<".newdir.">",'~'.expand("<slnum>"))

"    call Decho("....calling LocalBrowseCheck(newdir<".newdir.">)",'~'.expand("<slnum>"))
    call netrw#LocalBrowseCheck(newdir)
    if !exists("w:netrw_liststyle")
     let w:netrw_liststyle= g:netrw_liststyle
    endif
    if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:LONGLIST
     keepalt NetrwKeepj call search('^'.substitute(dirfile,"^.*/","","").'\>',"W")
    else
     keepalt NetrwKeepj call search('\<'.substitute(dirfile,"^.*/","","").'\>',"w")
    endif
    let w:netrw_explore_mtchcnt = indx + 1
    let w:netrw_explore_bufnr   = bufnr("%")
    let w:netrw_explore_line    = line(".")
    keepalt NetrwKeepj call s:SetupNetrwStatusLine('%f %h%m%r%=%9*%{NetrwStatusLine()}')
"    call Decho("....explore: mtchcnt=".w:netrw_explore_mtchcnt." bufnr=".w:netrw_explore_bufnr." line#".w:netrw_explore_line,'~'.expand("<slnum>"))

   else
"    call Decho("..your vim does not have +path_extra",'~'.expand("<slnum>"))
    if !exists("g:netrw_quiet")
     keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44)
    endif
    if has("clipboard")
     sil! let @* = keepregstar
     sil! let @+ = keepregstar
    endif
    sil! let @/ = keepregslash
"    call Dret("netrw#Explore : missing +path_extra")
    return
   endif

  else
"   call Decho("..default case: Explore newdir<".dirname.">",'~'.expand("<slnum>"))
   if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && dirname =~ '/'
    sil! unlet w:netrw_treedict
    sil! unlet w:netrw_treetop
   endif
   let newdir= dirname
   if !exists("b:netrw_curdir")
    NetrwKeepj call netrw#LocalBrowseCheck(getcwd())
   else
    NetrwKeepj call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,newdir))
   endif
  endif

  " visual display of **/ **// */ Exploration files
"  call Decho("w:netrw_explore_indx=".(exists("w:netrw_explore_indx")? w:netrw_explore_indx : "doesn't exist"),'~'.expand("<slnum>"))
"  call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "n/a").">",'~'.expand("<slnum>"))
  if exists("w:netrw_explore_indx") && exists("b:netrw_curdir")
"   call Decho("s:explore_prvdir<".(exists("s:explore_prvdir")? s:explore_prvdir : "-doesn't exist-"),'~'.expand("<slnum>"))
   if !exists("s:explore_prvdir") || s:explore_prvdir != b:netrw_curdir
    " only update match list when current directory isn't the same as before
"    call Decho("only update match list when current directory not the same as before",'~'.expand("<slnum>"))
    let s:explore_prvdir = b:netrw_curdir
    let s:explore_match  = ""
    let dirlen           = strlen(b:netrw_curdir)
    if b:netrw_curdir !~ '/$'
     let dirlen= dirlen + 1
    endif
    let prvfname= ""
    for fname in w:netrw_explore_list
"     call Decho("fname<".fname.">",'~'.expand("<slnum>"))
     if fname =~ '^'.b:netrw_curdir
      if s:explore_match == ""
       let s:explore_match= '\<'.escape(strpart(fname,dirlen),g:netrw_markfileesc).'\>'
      else
       let s:explore_match= s:explore_match.'\|\<'.escape(strpart(fname,dirlen),g:netrw_markfileesc).'\>'
      endif
     elseif fname !~ '^/' && fname != prvfname
      if s:explore_match == ""
       let s:explore_match= '\<'.escape(fname,g:netrw_markfileesc).'\>'
      else
       let s:explore_match= s:explore_match.'\|\<'.escape(fname,g:netrw_markfileesc).'\>'
      endif
     endif
     let prvfname= fname
    endfor
"    call Decho("explore_match<".s:explore_match.">",'~'.expand("<slnum>"))
    exe "2match netrwMarkFile /".s:explore_match."/"
   endif
   echo "<s-up>==Pexplore  <s-down>==Nexplore"
  else
   2match none
   if exists("s:explore_match")  | unlet s:explore_match  | endif
   if exists("s:explore_prvdir") | unlet s:explore_prvdir | endif
   echo " "
"   call Decho("cleared explore match list",'~'.expand("<slnum>"))
  endif

  " since Explore may be used to initialize netrw's browser,
  " there's no danger of a late FocusGained event on initialization.
  " Consequently, set s:netrw_events to 2.
  let s:netrw_events= 2
  if has("clipboard")
   sil! let @* = keepregstar
   sil! let @+ = keepregstar
  endif
  sil! let @/ = keepregslash
"  call Dret("netrw#Explore : @/<".@/.">")
endfun

" ---------------------------------------------------------------------
" netrw#Lexplore: toggle Explorer window, keeping it on the left of the current tab {{{2
fun! netrw#Lexplore(count,rightside,...)
"  call Dfunc("netrw#Lexplore(count=".a:count."rightside=".a:rightside.",...) a:0=".a:0." ft=".&ft)
  let curwin= winnr()

  if a:0 > 0 && a:1 != ""
   " if a netrw window is already on the left-side of the tab
   " and a directory has been specified, explore with that
   " directory.
   let a1 = expand(a:1)
"   call Decho("a:1<".a:1.">  curwin#".curwin,'~'.expand("<slnum>"))
   exe "1wincmd w"
   if &ft == "netrw"
"    call Decho("exe Explore ".fnameescape(a:1),'~'.expand("<slnum>"))
    exe "Explore ".fnameescape(a1)
    exe curwin."wincmd w"
    if exists("t:netrw_lexposn")
"     call Decho("forgetting t:netrw_lexposn",'~'.expand("<slnum>"))
     unlet t:netrw_lexposn
    endif
"    call Dret("netrw#Lexplore")
    return
   endif
   exe curwin."wincmd w"
  else
   let a1= ""
  endif

  if exists("t:netrw_lexbufnr")
   " check if t:netrw_lexbufnr refers to a netrw window
   let lexwinnr = bufwinnr(t:netrw_lexbufnr)
  else
   let lexwinnr= 0
  endif

  if lexwinnr > 0
   " close down netrw explorer window
"  call Decho("t:netrw_lexbufnr#".t:netrw_lexbufnr.": close down netrw window",'~'.expand("<slnum>"))
   exe lexwinnr."wincmd w"
   let g:netrw_winsize = -winwidth(0)
   let t:netrw_lexposn = winsaveview()
"   call Decho("saving posn to t:netrw_lexposn<".string(t:netrw_lexposn).">",'~'.expand("<slnum>"))
"   call Decho("saving t:netrw_lexposn",'~'.expand("<slnum>"))
   close
   if lexwinnr < curwin
    let curwin= curwin - 1
   endif
   exe curwin."wincmd w"
   unlet t:netrw_lexbufnr

  else
   " open netrw explorer window
"   call Decho("t:netrw_lexbufnr<n/a>: open netrw explorer window",'~'.expand("<slnum>"))
   exe "1wincmd w"
   let keep_altv    = g:netrw_altv
   let g:netrw_altv = 0
   if a:count != 0
    let netrw_winsize   = g:netrw_winsize
    let g:netrw_winsize = a:count
   endif
   let curfile= expand("%")
"   call Decho("curfile<".curfile.">",'~'.expand("<slnum>"))
   exe (a:rightside? "botright" : "topleft")." vertical ".((g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize) . " new"
   if a:0 > 0 && a1 != ""
"    call Decho("case 1: Explore ".a1,'~'.expand("<slnum>"))
    exe "Explore ".fnameescape(a1)
   elseif curfile =~ '^\a\{3,}://'
"    call Decho("case 2: Explore ".substitute(curfile,'[^/\\]*$','',''),'~'.expand("<slnum>"))
    exe "Explore ".substitute(curfile,'[^/\\]*$','','')
   else
"    call Decho("case 3: Explore .",'~'.expand("<slnum>"))
    Explore .
   endif
   if a:count != 0
    let g:netrw_winsize = netrw_winsize
   endif
   setlocal winfixwidth
   let g:netrw_altv     = keep_altv
   let t:netrw_lexbufnr = bufnr("%")
   if exists("t:netrw_lexposn")
"    call Decho("restoring to t:netrw_lexposn",'~'.expand("<slnum>"))
"    call Decho("restoring posn to t:netrw_lexposn<".string(t:netrw_lexposn).">",'~'.expand("<slnum>"))
    call winrestview(t:netrw_lexposn)
    unlet t:netrw_lexposn
   endif
  endif

  " set up default window for editing via <cr>
  if exists("g:netrw_chgwin") && g:netrw_chgwin == -1
   if a:rightside
    let g:netrw_chgwin= 1
   else
    let g:netrw_chgwin= 2
   endif
  endif

"  call Dret("netrw#Lexplore")
endfun

" ---------------------------------------------------------------------
" netrw#Clean: remove netrw {{{2
" supports :NetrwClean  -- remove netrw from first directory on runtimepath
"          :NetrwClean! -- remove netrw from all directories on runtimepath
fun! netrw#Clean(sys)
"  call Dfunc("netrw#Clean(sys=".a:sys.")")

  if a:sys
   let choice= confirm("Remove personal and system copies of netrw?","&Yes\n&No")
  else
   let choice= confirm("Remove personal copy of netrw?","&Yes\n&No")
  endif
"  call Decho("choice=".choice,'~'.expand("<slnum>"))
  let diddel= 0
  let diddir= ""

  if choice == 1
   for dir in split(&rtp,',')
    if filereadable(dir."/plugin/netrwPlugin.vim")
"     call Decho("removing netrw-related files from ".dir,'~'.expand("<slnum>"))
     if s:NetrwDelete(dir."/plugin/netrwPlugin.vim")        |call netrw#ErrorMsg(1,"unable to remove ".dir."/plugin/netrwPlugin.vim",55)        |endif
     if s:NetrwDelete(dir."/autoload/netrwFileHandlers.vim")|call netrw#ErrorMsg(1,"unable to remove ".dir."/autoload/netrwFileHandlers.vim",55)|endif
     if s:NetrwDelete(dir."/autoload/netrwSettings.vim")    |call netrw#ErrorMsg(1,"unable to remove ".dir."/autoload/netrwSettings.vim",55)    |endif
     if s:NetrwDelete(dir."/autoload/netrw.vim")            |call netrw#ErrorMsg(1,"unable to remove ".dir."/autoload/netrw.vim",55)            |endif
     if s:NetrwDelete(dir."/syntax/netrw.vim")              |call netrw#ErrorMsg(1,"unable to remove ".dir."/syntax/netrw.vim",55)              |endif
     if s:NetrwDelete(dir."/syntax/netrwlist.vim")          |call netrw#ErrorMsg(1,"unable to remove ".dir."/syntax/netrwlist.vim",55)          |endif
     let diddir= dir
     let diddel= diddel + 1
     if !a:sys|break|endif
    endif
   endfor
  endif

   echohl WarningMsg
  if diddel == 0
   echomsg "netrw is either not installed or not removable"
  elseif diddel == 1
   echomsg "removed one copy of netrw from <".diddir.">"
  else
   echomsg "removed ".diddel." copies of netrw"
  endif
   echohl None

"  call Dret("netrw#Clean")
endfun

" ---------------------------------------------------------------------
" netrw#MakeTgt: make a target out of the directory name provided {{{2
fun! netrw#MakeTgt(dname)
"  call Dfunc("netrw#MakeTgt(dname<".a:dname.">)")
   " simplify the target (eg. /abc/def/../ghi -> /abc/ghi)
  let svpos               = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let s:netrwmftgt_islocal= (a:dname !~ '^\a\{3,}://')
"  call Decho("s:netrwmftgt_islocal=".s:netrwmftgt_islocal,'~'.expand("<slnum>"))
  if s:netrwmftgt_islocal
   let netrwmftgt= simplify(a:dname)
  else
   let netrwmftgt= a:dname
  endif
  if exists("s:netrwmftgt") && netrwmftgt == s:netrwmftgt
   " re-selected target, so just clear it
   unlet s:netrwmftgt s:netrwmftgt_islocal
  else
   let s:netrwmftgt= netrwmftgt
  endif
  if g:netrw_fastbrowse <= 1
   call s:NetrwRefresh((b:netrw_curdir !~ '\a\{3,}://'),b:netrw_curdir)
  endif
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))"
  call winrestview(svpos)
"  call Dret("netrw#MakeTgt")
endfun

" ---------------------------------------------------------------------
" netrw#Obtain: {{{2
"   netrw#Obtain(islocal,fname[,tgtdirectory])
"     islocal=0  obtain from remote source
"            =1  obtain from local source
"     fname  :   a filename or a list of filenames
"     tgtdir :   optional place where files are to go  (not present, uses getcwd())
fun! netrw#Obtain(islocal,fname,...)
"  call Dfunc("netrw#Obtain(islocal=".a:islocal." fname<".((type(a:fname) == 1)? a:fname : string(a:fname)).">) a:0=".a:0)
  " NetrwStatusLine support - for obtaining support

  if type(a:fname) == 1
   let fnamelist= [ a:fname ]
  elseif type(a:fname) == 3
   let fnamelist= a:fname
  else
   call netrw#ErrorMsg(s:ERROR,"attempting to use NetrwObtain on something not a filename or a list",62)
"   call Dret("netrw#Obtain")
   return
  endif
"  call Decho("fnamelist<".string(fnamelist).">",'~'.expand("<slnum>"))
  if a:0 > 0
   let tgtdir= a:1
  else
   let tgtdir= getcwd()
  endif
"  call Decho("tgtdir<".tgtdir.">",'~'.expand("<slnum>"))

  if exists("b:netrw_islocal") && b:netrw_islocal
   " obtain a file from local b:netrw_curdir to (local) tgtdir
"   call Decho("obtain a file from local ".b:netrw_curdir." to ".tgtdir,'~'.expand("<slnum>"))
   if exists("b:netrw_curdir") && getcwd() != b:netrw_curdir
    let topath= s:ComposePath(tgtdir,"")
    if (has("win32") || has("win95") || has("win64") || has("win16"))
     " transfer files one at time
"     call Decho("transfer files one at a time",'~'.expand("<slnum>"))
     for fname in fnamelist
"      call Decho("system(".g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath).")",'~'.expand("<slnum>"))
      call system(g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath))
      if v:shell_error != 0
       call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localcopycmd<".g:netrw_localcopycmd."> to something that works",80)
"       call Dret("s:NetrwObtain 0 : failed: ".g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath))
       return
      endif
     endfor
    else
     " transfer files with one command
"     call Decho("transfer files with one command",'~'.expand("<slnum>"))
     let filelist= join(map(deepcopy(fnamelist),"s:ShellEscape(v:val)"))
"     call Decho("system(".g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath).")",'~'.expand("<slnum>"))
     call system(g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath))
     if v:shell_error != 0
      call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localcopycmd<".g:netrw_localcopycmd."> to something that works",80)
"      call Dret("s:NetrwObtain 0 : failed: ".g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath))
      return
     endif
    endif
   elseif !exists("b:netrw_curdir")
    call netrw#ErrorMsg(s:ERROR,"local browsing directory doesn't exist!",36)
   else
    call netrw#ErrorMsg(s:WARNING,"local browsing directory and current directory are identical",37)
   endif

  else
   " obtain files from remote b:netrw_curdir to local tgtdir
"   call Decho("obtain a file from remote ".b:netrw_curdir." to ".tgtdir,'~'.expand("<slnum>"))
   if type(a:fname) == 1
    call s:SetupNetrwStatusLine('%f %h%m%r%=%9*Obtaining '.a:fname)
   endif
   call s:NetrwMethod(b:netrw_curdir)

   if b:netrw_method == 4
    " obtain file using scp
"    call Decho("obtain via scp (method#4)",'~'.expand("<slnum>"))
    if exists("g:netrw_port") && g:netrw_port != ""
     let useport= " ".g:netrw_scpport." ".g:netrw_port
    else
     let useport= ""
    endif
    if b:netrw_fname =~ '/'
     let path= substitute(b:netrw_fname,'^\(.*/\).\{-}$','\1','')
    else
     let path= ""
    endif
    let filelist= join(map(deepcopy(fnamelist),'s:ShellEscape(g:netrw_machine.":".path.v:val,1)'))
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.s:ShellEscape(useport,1)." ".filelist." ".s:ShellEscape(tgtdir,1))

   elseif b:netrw_method == 2
    " obtain file using ftp + .netrc
"     call Decho("obtain via ftp+.netrc (method #2)",'~'.expand("<slnum>"))
     call s:SaveBufVars()|sil NetrwKeepj new|call s:RestoreBufVars()
     let tmpbufnr= bufnr("%")
     setl ff=unix
     if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
      NetrwKeepj put =g:netrw_ftpmode
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif

     if exists("b:netrw_fname") && b:netrw_fname != ""
      call setline(line("$")+1,'cd "'.b:netrw_fname.'"')
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif

     if exists("g:netrw_ftpextracmd")
      NetrwKeepj put =g:netrw_ftpextracmd
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif
     for fname in fnamelist
      call setline(line("$")+1,'get "'.fname.'"')
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endfor
     if exists("g:netrw_port") && g:netrw_port != ""
      call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1)." ".s:ShellEscape(g:netrw_port,1))
     else
      call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1))
     endif
     " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
     if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
      let debugkeep= &debug
      setl debug=msg
      call netrw#ErrorMsg(s:ERROR,getline(1),4)
      let &debug= debugkeep
     endif

   elseif b:netrw_method == 3
    " obtain with ftp + machine, id, passwd, and fname (ie. no .netrc)
"    call Decho("obtain via ftp+mipf (method #3)",'~'.expand("<slnum>"))
    call s:SaveBufVars()|sil NetrwKeepj new|call s:RestoreBufVars()
    let tmpbufnr= bufnr("%")
    setl ff=unix

    if exists("g:netrw_port") && g:netrw_port != ""
     NetrwKeepj put ='open '.g:netrw_machine.' '.g:netrw_port
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    else
     NetrwKeepj put ='open '.g:netrw_machine
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    endif

    if exists("g:netrw_uid") && g:netrw_uid != ""
     if exists("g:netrw_ftp") && g:netrw_ftp == 1
      NetrwKeepj put =g:netrw_uid
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
      if exists("s:netrw_passwd") && s:netrw_passwd != ""
       NetrwKeepj put ='\"'.s:netrw_passwd.'\"'
      endif
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     elseif exists("s:netrw_passwd")
      NetrwKeepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"'
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif
    endif

    if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
     NetrwKeepj put =g:netrw_ftpmode
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    endif

    if exists("b:netrw_fname") && b:netrw_fname != ""
     NetrwKeepj call setline(line("$")+1,'cd "'.b:netrw_fname.'"')
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    endif

    if exists("g:netrw_ftpextracmd")
     NetrwKeepj put =g:netrw_ftpextracmd
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    endif

    if exists("g:netrw_ftpextracmd")
     NetrwKeepj put =g:netrw_ftpextracmd
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    endif
    for fname in fnamelist
     NetrwKeepj call setline(line("$")+1,'get "'.fname.'"')
    endfor
"    call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))

    " perform ftp:
    " -i       : turns off interactive prompting from ftp
    " -n  unix : DON'T use <.netrc>, even though it exists
    " -n  win32: quit being obnoxious about password
    NetrwKeepj norm! 1Gdd
    call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    if getline(1) !~ "^$"
"     call Decho("error<".getline(1).">",'~'.expand("<slnum>"))
     if !exists("g:netrw_quiet")
      NetrwKeepj call netrw#ErrorMsg(s:ERROR,getline(1),5)
     endif
    endif

   elseif b:netrw_method == 9
    " obtain file using sftp
"    call Decho("obtain via sftp (method #9)",'~'.expand("<slnum>"))
    if a:fname =~ '/'
     let localfile= substitute(a:fname,'^.*/','','')
    else
     let localfile= a:fname
    endif
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_sftp_cmd." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1).s:ShellEscape(localfile)." ".s:ShellEscape(tgtdir))

   elseif !exists("b:netrw_method") || b:netrw_method < 0
    " probably a badly formed url; protocol not recognized
"    call Dret("netrw#Obtain : unsupported method")
    return

   else
    " protocol recognized but not supported for Obtain (yet?)
    if !exists("g:netrw_quiet")
     NetrwKeepj call netrw#ErrorMsg(s:ERROR,"current protocol not supported for obtaining file",97)
    endif
"    call Dret("netrw#Obtain : current protocol not supported for obtaining file")
    return
   endif

   " restore status line
   if type(a:fname) == 1 && exists("s:netrw_users_stl")
    NetrwKeepj call s:SetupNetrwStatusLine(s:netrw_users_stl)
   endif

  endif

  " cleanup
  if exists("tmpbufnr")
   if bufnr("%") != tmpbufnr
    exe tmpbufnr."bw!"
   else
    q!
   endif
  endif

"  call Dret("netrw#Obtain")
endfun

" ---------------------------------------------------------------------
" netrw#Nread: save position, call netrw#NetRead(), and restore position {{{2
fun! netrw#Nread(mode,fname)
"  call Dfunc("netrw#Nread(mode=".a:mode." fname<".a:fname.">)")
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call netrw#NetRead(a:mode,a:fname)
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call winrestview(svpos)

  if exists("w:netrw_liststyle") && w:netrw_liststyle != s:TREELIST
   if exists("w:netrw_bannercnt")
    " start with cursor just after the banner
    exe w:netrw_bannercnt
   endif
  endif
"  call Dret("netrw#Nread")
endfun

" ------------------------------------------------------------------------
" s:NetrwOptionRestore: restore options (based on prior s:NetrwOptionSave) {{{2
fun! s:NetrwOptionRestore(vt)
"  call Dfunc("s:NetrwOptionRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$"))
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
  if !exists("{a:vt}netrw_optionsave")
   call s:RestorePosn(s:netrw_nbcd)
"   call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
"   call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"   call Dret("s:NetrwOptionRestore : ".a:vt."netrw_optionsave doesn't exist")
   return
  endif
  unlet {a:vt}netrw_optionsave

  if exists("+acd")
   if exists("{a:vt}netrw_acdkeep")
"    call Decho("g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd,'~'.expand("<slnum>"))
    let curdir = getcwd()
    let &l:acd = {a:vt}netrw_acdkeep
    unlet {a:vt}netrw_acdkeep
    if &l:acd
     call s:NetrwLcd(curdir)
    endif
   endif
  endif
  if exists("{a:vt}netrw_aikeep")   |let &l:ai     = {a:vt}netrw_aikeep      |unlet {a:vt}netrw_aikeep   |endif
  if exists("{a:vt}netrw_awkeep")   |let &l:aw     = {a:vt}netrw_awkeep      |unlet {a:vt}netrw_awkeep   |endif
  if exists("{a:vt}netrw_blkeep")   |let &l:bl     = {a:vt}netrw_blkeep      |unlet {a:vt}netrw_blkeep   |endif
  if exists("{a:vt}netrw_btkeep")   |let &l:bt     = {a:vt}netrw_btkeep      |unlet {a:vt}netrw_btkeep   |endif
  if exists("{a:vt}netrw_bombkeep") |let &l:bomb   = {a:vt}netrw_bombkeep    |unlet {a:vt}netrw_bombkeep |endif
  if exists("{a:vt}netrw_cedit")    |let &cedit    = {a:vt}netrw_cedit       |unlet {a:vt}netrw_cedit    |endif
  if exists("{a:vt}netrw_cikeep")   |let &l:ci     = {a:vt}netrw_cikeep      |unlet {a:vt}netrw_cikeep   |endif
  if exists("{a:vt}netrw_cinkeep")  |let &l:cin    = {a:vt}netrw_cinkeep     |unlet {a:vt}netrw_cinkeep  |endif
  if exists("{a:vt}netrw_cinokeep") |let &l:cino   = {a:vt}netrw_cinokeep    |unlet {a:vt}netrw_cinokeep |endif
  if exists("{a:vt}netrw_comkeep")  |let &l:com    = {a:vt}netrw_comkeep     |unlet {a:vt}netrw_comkeep  |endif
  if exists("{a:vt}netrw_cpokeep")  |let &l:cpo    = {a:vt}netrw_cpokeep     |unlet {a:vt}netrw_cpokeep  |endif
  if exists("{a:vt}netrw_diffkeep") |let &l:diff   = {a:vt}netrw_diffkeep    |unlet {a:vt}netrw_diffkeep |endif
  if exists("{a:vt}netrw_fenkeep")  |let &l:fen    = {a:vt}netrw_fenkeep     |unlet {a:vt}netrw_fenkeep  |endif
  if exists("g:netrw_ffkep") && g:netrw_ffkeep
   if exists("{a:vt}netrw_ffkeep")   |let &l:ff     = {a:vt}netrw_ffkeep      |unlet {a:vt}netrw_ffkeep   |endif
  endif
  if exists("{a:vt}netrw_fokeep")   |let &l:fo     = {a:vt}netrw_fokeep      |unlet {a:vt}netrw_fokeep   |endif
  if exists("{a:vt}netrw_gdkeep")   |let &l:gd     = {a:vt}netrw_gdkeep      |unlet {a:vt}netrw_gdkeep   |endif
  if exists("{a:vt}netrw_hidkeep")  |let &l:hidden = {a:vt}netrw_hidkeep     |unlet {a:vt}netrw_hidkeep  |endif
  if exists("{a:vt}netrw_imkeep")   |let &l:im     = {a:vt}netrw_imkeep      |unlet {a:vt}netrw_imkeep   |endif
  if exists("{a:vt}netrw_iskkeep")  |let &l:isk    = {a:vt}netrw_iskkeep     |unlet {a:vt}netrw_iskkeep  |endif
  if exists("{a:vt}netrw_lskeep")   |let &l:ls     = {a:vt}netrw_lskeep      |unlet {a:vt}netrw_lskeep   |endif
  if exists("{a:vt}netrw_makeep")   |let &l:ma     = {a:vt}netrw_makeep      |unlet {a:vt}netrw_makeep   |endif
  if exists("{a:vt}netrw_magickeep")|let &l:magic  = {a:vt}netrw_magickeep   |unlet {a:vt}netrw_magickeep|endif
  if exists("{a:vt}netrw_modkeep")  |let &l:mod    = {a:vt}netrw_modkeep     |unlet {a:vt}netrw_modkeep  |endif
  if exists("{a:vt}netrw_nukeep")   |let &l:nu     = {a:vt}netrw_nukeep      |unlet {a:vt}netrw_nukeep   |endif
  if exists("{a:vt}netrw_rnukeep")  |let &l:rnu    = {a:vt}netrw_rnukeep     |unlet {a:vt}netrw_rnukeep  |endif
  if exists("{a:vt}netrw_repkeep")  |let &l:report = {a:vt}netrw_repkeep     |unlet {a:vt}netrw_repkeep  |endif
  if exists("{a:vt}netrw_rokeep")   |let &l:ro     = {a:vt}netrw_rokeep      |unlet {a:vt}netrw_rokeep   |endif
  if exists("{a:vt}netrw_selkeep")  |let &l:sel    = {a:vt}netrw_selkeep     |unlet {a:vt}netrw_selkeep  |endif
  if exists("{a:vt}netrw_spellkeep")|let &l:spell  = {a:vt}netrw_spellkeep   |unlet {a:vt}netrw_spellkeep|endif
  if has("clipboard")
   if exists("{a:vt}netrw_starkeep") |let @*        = {a:vt}netrw_starkeep    |unlet {a:vt}netrw_starkeep |endif
  endif
  " Problem: start with liststyle=0; press <i> : result, following line resets l:ts.
"  if exists("{a:vt}netrw_tskeep")   |let &l:ts     = {a:vt}netrw_tskeep      |unlet {a:vt}netrw_tskeep   |endif
  if exists("{a:vt}netrw_twkeep")   |let &l:tw     = {a:vt}netrw_twkeep      |unlet {a:vt}netrw_twkeep   |endif
  if exists("{a:vt}netrw_wigkeep")  |let &l:wig    = {a:vt}netrw_wigkeep     |unlet {a:vt}netrw_wigkeep  |endif
  if exists("{a:vt}netrw_wrapkeep") |let &l:wrap   = {a:vt}netrw_wrapkeep    |unlet {a:vt}netrw_wrapkeep |endif
  if exists("{a:vt}netrw_writekeep")|let &l:write  = {a:vt}netrw_writekeep   |unlet {a:vt}netrw_writekeep|endif
  if exists("s:yykeep")             |let  @@       = s:yykeep                |unlet s:yykeep             |endif
  if exists("{a:vt}netrw_swfkeep")
   if &directory == ""
    " user hasn't specified a swapfile directory;
    " netrw will temporarily set the swapfile directory
    " to the current directory as returned by getcwd().
    let &l:directory= getcwd()
    sil! let &l:swf = {a:vt}netrw_swfkeep
    setl directory=
    unlet {a:vt}netrw_swfkeep
   elseif &l:swf != {a:vt}netrw_swfkeep
    if !g:netrw_use_noswf
     " following line causes a Press ENTER in windows -- can't seem to work around it!!!
     sil! let &l:swf= {a:vt}netrw_swfkeep
    endif
    unlet {a:vt}netrw_swfkeep
   endif
  endif
  if exists("{a:vt}netrw_dirkeep") && isdirectory(s:NetrwFile({a:vt}netrw_dirkeep)) && g:netrw_keepdir
   let dirkeep = substitute({a:vt}netrw_dirkeep,'\\','/','g')
   if exists("{a:vt}netrw_dirkeep")
    call s:NetrwLcd(dirkeep)
    unlet {a:vt}netrw_dirkeep
   endif
  endif
  if has("clipboard")
   if exists("{a:vt}netrw_regstar") |sil! let @*= {a:vt}netrw_regstar |unlet {a:vt}netrw_regstar |endif
  endif
  if exists("{a:vt}netrw_regslash")|sil! let @/= {a:vt}netrw_regslash|unlet {a:vt}netrw_regslash|endif
  call s:RestorePosn(s:netrw_nbcd)

"  call Decho("g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd,'~'.expand("<slnum>"))
"  call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist"),'~'.expand("<slnum>"))
"  call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"  call Decho("diff=".&l:diff." win#".winnr()." w:netrw_diffkeep=".(exists("w:netrw_diffkeep")? w:netrw_diffkeep : "doesn't exist"),'~'.expand("<slnum>"))
"  call Decho("ts=".&l:ts,'~'.expand("<slnum>"))
  " Moved the filetype detect here from NetrwGetFile() because remote files
  " were having their filetype detect-generated settings overwritten by
  " NetrwOptionRestore.
  if &ft != "netrw"
"   call Decho("filetype detect  (ft=".&ft.")",'~'.expand("<slnum>"))
   filetype detect
  endif
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
"  call Dret("s:NetrwOptionRestore : tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> modified=".&modified." modifiable=".&modifiable." readonly=".&readonly)
endfun

" ---------------------------------------------------------------------
" s:NetrwOptionSave: save options prior to setting to "netrw-buffer-standard" form {{{2
"             Options get restored by s:NetrwOptionRestore()
"  06/08/07 : removed call to NetrwSafeOptions(), either placed
"             immediately after NetrwOptionSave() calls in NetRead
"             and NetWrite, or after the s:NetrwEnew() call in
"             NetrwBrowse.
"             vt: normally its "w:" or "s:" (a variable type)
fun! s:NetrwOptionSave(vt)
"  call Dfunc("s:NetrwOptionSave(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%")).">"." winnr($)=".winnr("$")." mod=".&mod." ma=".&ma)
"  call Decho(a:vt."netrw_optionsave".(exists("{a:vt}netrw_optionsave")? ("=".{a:vt}netrw_optionsave) : " doesn't exist"),'~'.expand("<slnum>"))
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))

  if !exists("{a:vt}netrw_optionsave")
   let {a:vt}netrw_optionsave= 1
  else
"   call Dret("s:NetrwOptionSave : options already saved")
   return
  endif
"  call Decho("prior to save: fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist")." diff=".&l:diff,'~'.expand("<slnum>"))

  " Save current settings and current directory
"  call Decho("saving current settings and current directory",'~'.expand("<slnum>"))
  let s:yykeep          = @@
  if exists("&l:acd")|let {a:vt}netrw_acdkeep  = &l:acd|endif
  let {a:vt}netrw_aikeep    = &l:ai
  let {a:vt}netrw_awkeep    = &l:aw
  let {a:vt}netrw_bhkeep    = &l:bh
  let {a:vt}netrw_blkeep    = &l:bl
  let {a:vt}netrw_btkeep    = &l:bt
  let {a:vt}netrw_bombkeep  = &l:bomb
  let {a:vt}netrw_cedit     = &cedit
  let {a:vt}netrw_cikeep    = &l:ci
  let {a:vt}netrw_cinkeep   = &l:cin
  let {a:vt}netrw_cinokeep  = &l:cino
  let {a:vt}netrw_comkeep   = &l:com
  let {a:vt}netrw_cpokeep   = &l:cpo
  let {a:vt}netrw_diffkeep  = &l:diff
  let {a:vt}netrw_fenkeep   = &l:fen
  if !exists("g:netrw_ffkeep") || g:netrw_ffkeep
   let {a:vt}netrw_ffkeep    = &l:ff
  endif
  let {a:vt}netrw_fokeep    = &l:fo           " formatoptions
  let {a:vt}netrw_gdkeep    = &l:gd           " gdefault
  let {a:vt}netrw_hidkeep   = &l:hidden
  let {a:vt}netrw_imkeep    = &l:im
  let {a:vt}netrw_iskkeep   = &l:isk
  let {a:vt}netrw_lskeep    = &l:ls
  let {a:vt}netrw_makeep    = &l:ma
  let {a:vt}netrw_magickeep = &l:magic
  let {a:vt}netrw_modkeep   = &l:mod
  let {a:vt}netrw_nukeep    = &l:nu
  let {a:vt}netrw_rnukeep   = &l:rnu
  let {a:vt}netrw_repkeep   = &l:report
  let {a:vt}netrw_rokeep    = &l:ro
  let {a:vt}netrw_selkeep   = &l:sel
  let {a:vt}netrw_spellkeep = &l:spell
  if !g:netrw_use_noswf
   let {a:vt}netrw_swfkeep  = &l:swf
  endif
  if has("clipboard")
   let {a:vt}netrw_starkeep = @*
  endif
  let {a:vt}netrw_tskeep    = &l:ts
  let {a:vt}netrw_twkeep    = &l:tw           " textwidth
  let {a:vt}netrw_wigkeep   = &l:wig          " wildignore
  let {a:vt}netrw_wrapkeep  = &l:wrap
  let {a:vt}netrw_writekeep = &l:write

  " save a few selected netrw-related variables
"  call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>"))
  if g:netrw_keepdir
   let {a:vt}netrw_dirkeep  = getcwd()
  endif
  if has("clipboard")
   if &go =~# 'a' | sil! let {a:vt}netrw_regstar = @* | endif
  endif
  sil! let {a:vt}netrw_regslash= @/

"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
"  call Dret("s:NetrwOptionSave : tab#".tabpagenr()." win#".winnr())
endfun

" ------------------------------------------------------------------------
" s:NetrwSafeOptions: sets options to help netrw do its job {{{2
"                     Use  s:NetrwSaveOptions() to save user settings
"                     Use  s:NetrwOptionRestore() to restore user settings
fun! s:NetrwSafeOptions()
"  call Dfunc("s:NetrwSafeOptions() win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%"))."> winnr($)=".winnr("$"))
"  call Decho("win#".winnr()."'s ft=".&ft,'~'.expand("<slnum>"))
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
  if exists("+acd") | setl noacd | endif
  setl noai
  setl noaw
  setl nobl
  setl nobomb
  setl bt=nofile
  setl noci
  setl nocin
  setl bh=hide
  setl cino=
  setl com=
  setl cpo-=a
  setl cpo-=A
  setl fo=nroql2
  setl nohid
  setl noim
  setl isk+=@ isk+=* isk+=/
  setl magic
  if g:netrw_use_noswf
   setl noswf
  endif
  setl report=10000
  setl sel=inclusive
  setl nospell
  setl tw=0
  setl wig=
  setl cedit&
  call s:NetrwCursor()

  " allow the user to override safe options
"  call Decho("ft<".&ft."> ei=".&ei,'~'.expand("<slnum>"))
  if &ft == "netrw"
"   call Decho("do any netrw FileType autocmds (doau FileType netrw)",'~'.expand("<slnum>"))
   sil! keepalt NetrwKeepj doau FileType netrw
  endif

"  call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist")." bh=".&l:bh." bt<".&bt.">",'~'.expand("<slnum>"))
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"  call Dret("s:NetrwSafeOptions")
endfun

" ---------------------------------------------------------------------
" NetrwStatusLine: {{{2
fun! NetrwStatusLine()

" vvv NetrwStatusLine() debugging vvv
"  let g:stlmsg=""
"  if !exists("w:netrw_explore_bufnr")
"   let g:stlmsg="!X<explore_bufnr>"
"  elseif w:netrw_explore_bufnr != bufnr("%")
"   let g:stlmsg="explore_bufnr!=".bufnr("%")
"  endif
"  if !exists("w:netrw_explore_line")
"   let g:stlmsg=" !X<explore_line>"
"  elseif w:netrw_explore_line != line(".")
"   let g:stlmsg=" explore_line!={line(.)<".line(".").">"
"  endif
"  if !exists("w:netrw_explore_list")
"   let g:stlmsg=" !X<explore_list>"
"  endif
" ^^^ NetrwStatusLine() debugging ^^^

  if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
   " restore user's status line
   let &stl        = s:netrw_users_stl
   let &laststatus = s:netrw_users_ls
   if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
   if exists("w:netrw_explore_line") |unlet w:netrw_explore_line |endif
   return ""
  else
   return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
  endif
endfun

" ---------------------------------------------------------------------
"  Netrw Transfer Functions: {{{1
" ===============================

" ------------------------------------------------------------------------
" netrw#NetRead: responsible for reading a file over the net {{{2
"   mode: =0 read remote file and insert before current line
"         =1 read remote file and insert after current line
"         =2 replace with remote file
"         =3 obtain file, but leave in temporary format
fun! netrw#NetRead(mode,...)
"  call Dfunc("netrw#NetRead(mode=".a:mode.",...) a:0=".a:0." ".g:loaded_netrw.((a:0 > 0)? " a:1<".a:1.">" : ""))

  " NetRead: save options {{{3
  call s:NetrwOptionSave("w:")
  call s:NetrwSafeOptions()
  call s:RestoreCursorline()
  " NetrwSafeOptions sets a buffer up for a netrw listing, which includes buflisting off.
  " However, this setting is not wanted for a remote editing session.  The buffer should be "nofile", still.
  setl bl
"  call Decho("(netrw#NetRead) buf#".bufnr("%")."<".bufname("%")."> bl=".&bl." bt=".&bt." bh=".&bh,'~'.expand("<slnum>"))

  " NetRead: interpret mode into a readcmd {{{3
  if     a:mode == 0 " read remote file before current line
   let readcmd = "0r"
  elseif a:mode == 1 " read file after current line
   let readcmd = "r"
  elseif a:mode == 2 " replace with remote file
   let readcmd = "%r"
  elseif a:mode == 3 " skip read of file (leave as temporary)
   let readcmd = "t"
  else
   exe a:mode
   let readcmd = "r"
  endif
  let ichoice = (a:0 == 0)? 0 : 1
"  call Decho("readcmd<".readcmd."> ichoice=".ichoice,'~'.expand("<slnum>"))

  " NetRead: get temporary filename {{{3
  let tmpfile= s:GetTempfile("")
  if tmpfile == ""
"   call Dret("netrw#NetRead : unable to get a tempfile!")
   return
  endif

  while ichoice <= a:0

   " attempt to repeat with previous host-file-etc
   if exists("b:netrw_lastfile") && a:0 == 0
"    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">",'~'.expand("<slnum>"))
    let choice = b:netrw_lastfile
    let ichoice= ichoice + 1

   else
    exe "let choice= a:" . ichoice
"    call Decho("no lastfile: choice<" . choice . ">",'~'.expand("<slnum>"))

    if match(choice,"?") == 0
     " give help
     echomsg 'NetRead Usage:'
     echomsg ':Nread machine:path                         uses rcp'
     echomsg ':Nread "machine path"                       uses ftp   with <.netrc>'
     echomsg ':Nread "machine id password path"           uses ftp'
     echomsg ':Nread dav://machine[:port]/path            uses cadaver'
     echomsg ':Nread fetch://machine/path                 uses fetch'
     echomsg ':Nread ftp://[user@]machine[:port]/path     uses ftp   autodetects <.netrc>'
     echomsg ':Nread http://[user@]machine/path           uses http  wget'
     echomsg ':Nread file:///path           		  uses elinks'
     echomsg ':Nread https://[user@]machine/path          uses http  wget'
     echomsg ':Nread rcp://[user@]machine/path            uses rcp'
     echomsg ':Nread rsync://machine[:port]/path          uses rsync'
     echomsg ':Nread scp://[user@]machine[[:#]port]/path  uses scp'
     echomsg ':Nread sftp://[user@]machine[[:#]port]/path uses sftp'
     sleep 4
     break

    elseif match(choice,'^"') != -1
     " Reconstruct Choice if choice starts with '"'
"     call Decho("reconstructing choice",'~'.expand("<slnum>"))
     if match(choice,'"$') != -1
      " case "..."
      let choice= strpart(choice,1,strlen(choice)-2)
     else
       "  case "... ... ..."
      let choice      = strpart(choice,1,strlen(choice)-1)
      let wholechoice = ""

      while match(choice,'"$') == -1
       let wholechoice = wholechoice . " " . choice
       let ichoice     = ichoice + 1
       if ichoice > a:0
       	if !exists("g:netrw_quiet")
	 call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",3)
	endif
"        call Dret("netrw#NetRead :2 getcwd<".getcwd().">")
        return
       endif
       let choice= a:{ichoice}
      endwhile
      let choice= strpart(wholechoice,1,strlen(wholechoice)-1) . " " . strpart(choice,0,strlen(choice)-1)
     endif
    endif
   endif

"   call Decho("choice<" . choice . ">",'~'.expand("<slnum>"))
   let ichoice= ichoice + 1

   " NetRead: Determine method of read (ftp, rcp, etc) {{{3
   call s:NetrwMethod(choice)
   if !exists("b:netrw_method") || b:netrw_method < 0
"    call Dfunc("netrw#NetRead : unsupported method")
    return
   endif
   let tmpfile= s:GetTempfile(b:netrw_fname) " apply correct suffix

   " Check whether or not NetrwBrowse() should be handling this request
"   call Decho("checking if NetrwBrowse() should handle choice<".choice."> with netrw_list_cmd<".g:netrw_list_cmd.">",'~'.expand("<slnum>"))
   if choice =~ "^.*[\/]$" && b:netrw_method != 5 && choice !~ '^https\=://'
"    call Decho("yes, choice matches '^.*[\/]$'",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwBrowse(0,choice)
"    call Dret("netrw#NetRead :3 getcwd<".getcwd().">")
    return
   endif

   " ============
   " NetRead: Perform Protocol-Based Read {{{3
   " ===========================
   if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
    echo "(netrw) Processing your read request..."
   endif

   ".........................................
   " NetRead: (rcp)  NetRead Method #1 {{{3
   if  b:netrw_method == 1 " read with rcp
"    call Decho("read via rcp (method #1)",'~'.expand("<slnum>"))
   " ER: nothing done with g:netrw_uid yet?
   " ER: on Win2K" rcp machine[.user]:file tmpfile
   " ER: when machine contains '.' adding .user is required (use $USERNAME)
   " ER: the tmpfile is full path: rcp sees C:\... as host C
   if s:netrw_has_nt_rcp == 1
    if exists("g:netrw_uid") &&	( g:netrw_uid != "" )
     let uid_machine = g:netrw_machine .'.'. g:netrw_uid
    else
     " Any way needed it machine contains a '.'
     let uid_machine = g:netrw_machine .'.'. $USERNAME
    endif
   else
    if exists("g:netrw_uid") &&	( g:netrw_uid != "" )
     let uid_machine = g:netrw_uid .'@'. g:netrw_machine
    else
     let uid_machine = g:netrw_machine
    endif
   endif
   call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".s:ShellEscape(uid_machine.":".b:netrw_fname,1)." ".s:ShellEscape(tmpfile,1))
   let result           = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
   let b:netrw_lastfile = choice

   ".........................................
   " NetRead: (ftp + <.netrc>)  NetRead Method #2 {{{3
   elseif b:netrw_method  == 2		" read with ftp + <.netrc>
"     call Decho("read via ftp+.netrc (method #2)",'~'.expand("<slnum>"))
     let netrw_fname= b:netrw_fname
     NetrwKeepj call s:SaveBufVars()|new|NetrwKeepj call s:RestoreBufVars()
     let filtbuf= bufnr("%")
     setl ff=unix
     NetrwKeepj put =g:netrw_ftpmode
"     call Decho("filter input: ".getline(line("$")),'~'.expand("<slnum>"))
     if exists("g:netrw_ftpextracmd")
      NetrwKeepj put =g:netrw_ftpextracmd
"      call Decho("filter input: ".getline(line("$")),'~'.expand("<slnum>"))
     endif
     call setline(line("$")+1,'get "'.netrw_fname.'" '.tmpfile)
"     call Decho("filter input: ".getline(line("$")),'~'.expand("<slnum>"))
     if exists("g:netrw_port") && g:netrw_port != ""
      call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1)." ".s:ShellEscape(g:netrw_port,1))
     else
      call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1))
     endif
     " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
     if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
      let debugkeep = &debug
      setl debug=msg
      NetrwKeepj call netrw#ErrorMsg(s:ERROR,getline(1),4)
      let &debug    = debugkeep
     endif
     call s:SaveBufVars()
     keepj bd!
     if bufname("%") == "" && getline("$") == "" && line('$') == 1
      " needed when one sources a file in a nolbl setting window via ftp
      q!
     endif
     call s:RestoreBufVars()
     let result           = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
     let b:netrw_lastfile = choice

   ".........................................
   " NetRead: (ftp + machine,id,passwd,filename)  NetRead Method #3 {{{3
   elseif b:netrw_method == 3		" read with ftp + machine, id, passwd, and fname
    " Construct execution string (four lines) which will be passed through filter
"    call Decho("read via ftp+mipf (method #3)",'~'.expand("<slnum>"))
    let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
    NetrwKeepj call s:SaveBufVars()|new|NetrwKeepj call s:RestoreBufVars()
    let filtbuf= bufnr("%")
    setl ff=unix
    if exists("g:netrw_port") && g:netrw_port != ""
     NetrwKeepj put ='open '.g:netrw_machine.' '.g:netrw_port
"     call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    else
     NetrwKeepj put ='open '.g:netrw_machine
"     call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    endif

    if exists("g:netrw_uid") && g:netrw_uid != ""
     if exists("g:netrw_ftp") && g:netrw_ftp == 1
      NetrwKeepj put =g:netrw_uid
"       call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
      if exists("s:netrw_passwd")
       NetrwKeepj put ='\"'.s:netrw_passwd.'\"'
      endif
"      call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
     elseif exists("s:netrw_passwd")
      NetrwKeepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"'
"      call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
     endif
    endif

    if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
     NetrwKeepj put =g:netrw_ftpmode
"     call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    endif
    if exists("g:netrw_ftpextracmd")
     NetrwKeepj put =g:netrw_ftpextracmd
"     call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    endif
    NetrwKeepj put ='get \"'.netrw_fname.'\" '.tmpfile
"    call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))

    " perform ftp:
    " -i       : turns off interactive prompting from ftp
    " -n  unix : DON'T use <.netrc>, even though it exists
    " -n  win32: quit being obnoxious about password
    NetrwKeepj norm! 1Gdd
    call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    if getline(1) !~ "^$"
"     call Decho("error<".getline(1).">",'~'.expand("<slnum>"))
     if !exists("g:netrw_quiet")
      call netrw#ErrorMsg(s:ERROR,getline(1),5)
     endif
    endif
    call s:SaveBufVars()|keepj bd!|call s:RestoreBufVars()
    let result           = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice

   ".........................................
   " NetRead: (scp) NetRead Method #4 {{{3
   elseif     b:netrw_method  == 4	" read with scp
"    call Decho("read via scp (method #4)",'~'.expand("<slnum>"))
    if exists("g:netrw_port") && g:netrw_port != ""
     let useport= " ".g:netrw_scpport." ".g:netrw_port
    else
     let useport= ""
    endif
    " 'C' in 'C:\path\to\file' is handled as hostname on windows.
    " This is workaround to avoid mis-handle windows local-path:
    if g:netrw_scp_cmd =~ '^scp' && (has("win32") || has("win95") || has("win64") || has("win16"))
      let tmpfile_get = substitute(tr(tmpfile, '\', '/'), '^\(\a\):[/\\]\(.*\)$', '/\1/\2', '')
    else
      let tmpfile_get = tmpfile
    endif
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1)." ".s:ShellEscape(tmpfile_get,1))
    let result           = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice

   ".........................................
   " NetRead: (http) NetRead Method #5 (wget) {{{3
   elseif     b:netrw_method  == 5
"    call Decho("read via http (method #5)",'~'.expand("<slnum>"))
    if g:netrw_http_cmd == ""
     if !exists("g:netrw_quiet")
      call netrw#ErrorMsg(s:ERROR,"neither the wget nor the fetch command is available",6)
     endif
"     call Dret("netrw#NetRead :4 getcwd<".getcwd().">")
     return
    endif

    if match(b:netrw_fname,"#") == -1 || exists("g:netrw_http_xcmd")
     " using g:netrw_http_cmd (usually elinks, links, curl, wget, or fetch)
"     call Decho('using '.g:netrw_http_cmd.' (# not in b:netrw_fname<'.b:netrw_fname.">)",'~'.expand("<slnum>"))
     if exists("g:netrw_http_xcmd")
      call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_http_cmd." ".s:ShellEscape(b:netrw_http."://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".s:ShellEscape(tmpfile,1))
     else
      call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_http_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(b:netrw_http."://".g:netrw_machine.b:netrw_fname,1))
     endif
     let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)

    else
     " wget/curl/fetch plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
"     call Decho("wget/curl plus jump (# in b:netrw_fname<".b:netrw_fname.">)",'~'.expand("<slnum>"))
     let netrw_html= substitute(b:netrw_fname,"#.*$","","")
     let netrw_tag = substitute(b:netrw_fname,"^.*#","","")
"     call Decho("netrw_html<".netrw_html.">",'~'.expand("<slnum>"))
"     call Decho("netrw_tag <".netrw_tag.">",'~'.expand("<slnum>"))
     call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_http_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(b:netrw_http."://".g:netrw_machine.netrw_html,1))
     let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
"     call Decho('<\s*a\s*name=\s*"'.netrw_tag.'"/','~'.expand("<slnum>"))
     exe 'NetrwKeepj norm! 1G/<\s*a\s*name=\s*"'.netrw_tag.'"/'."\<CR>"
    endif
    let b:netrw_lastfile = choice
"    call Decho("setl ro",'~'.expand("<slnum>"))
    setl ro nomod

   ".........................................
   " NetRead: (dav) NetRead Method #6 {{{3
   elseif     b:netrw_method  == 6
"    call Decho("read via cadaver (method #6)",'~'.expand("<slnum>"))

    if !executable(g:netrw_dav_cmd)
     call netrw#ErrorMsg(s:ERROR,g:netrw_dav_cmd." is not executable",73)
"     call Dret("netrw#NetRead : ".g:netrw_dav_cmd." not executable")
     return
    endif
    if g:netrw_dav_cmd =~ "curl"
     call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_dav_cmd." ".s:ShellEscape("dav://".g:netrw_machine.b:netrw_fname,1)." ".s:ShellEscape(tmpfile,1))
    else
     " Construct execution string (four lines) which will be passed through filter
     let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
     new
     setl ff=unix
     if exists("g:netrw_port") && g:netrw_port != ""
      NetrwKeepj put ='open '.g:netrw_machine.' '.g:netrw_port
     else
      NetrwKeepj put ='open '.g:netrw_machine
     endif
     if exists("g:netrw_uid") && exists("s:netrw_passwd") && g:netrw_uid != ""
      NetrwKeepj put ='user '.g:netrw_uid.' '.s:netrw_passwd
     endif
     NetrwKeepj put ='get '.netrw_fname.' '.tmpfile
     NetrwKeepj put ='quit'

     " perform cadaver operation:
     NetrwKeepj norm! 1Gdd
     call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
     keepj bd!
    endif
    let result           = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice

   ".........................................
   " NetRead: (rsync) NetRead Method #7 {{{3
   elseif     b:netrw_method  == 7
"    call Decho("read via rsync (method #7)",'~'.expand("<slnum>"))
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rsync_cmd." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1)." ".s:ShellEscape(tmpfile,1))
    let result		 = s:NetrwGetFile(readcmd,tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice

   ".........................................
   " NetRead: (fetch) NetRead Method #8 {{{3
   "    fetch://[user@]host[:http]/path
   elseif     b:netrw_method  == 8
"    call Decho("read via fetch (method #8)",'~'.expand("<slnum>"))
    if g:netrw_fetch_cmd == ""
     if !exists("g:netrw_quiet")
      NetrwKeepj call netrw#ErrorMsg(s:ERROR,"fetch command not available",7)
     endif
"     call Dret("NetRead")
     return
    endif
    if exists("g:netrw_option") && g:netrw_option =~ ":https\="
     let netrw_option= "http"
    else
     let netrw_option= "ftp"
    endif
"    call Decho("read via fetch for ".netrw_option,'~'.expand("<slnum>"))

    if exists("g:netrw_uid") && g:netrw_uid != "" && exists("s:netrw_passwd") && s:netrw_passwd != ""
     call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_fetch_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(netrw_option."://".g:netrw_uid.':'.s:netrw_passwd.'@'.g:netrw_machine."/".b:netrw_fname,1))
    else
     call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_fetch_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(netrw_option."://".g:netrw_machine."/".b:netrw_fname,1))
    endif

    let result		= s:NetrwGetFile(readcmd,tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
"    call Decho("setl ro",'~'.expand("<slnum>"))
    setl ro nomod

   ".........................................
   " NetRead: (sftp) NetRead Method #9 {{{3
   elseif     b:netrw_method  == 9
"    call Decho("read via sftp (method #9)",'~'.expand("<slnum>"))
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_sftp_cmd." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1)." ".tmpfile)
    let result		= s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice

   ".........................................
   " NetRead: (file) NetRead Method #10 {{{3
  elseif      b:netrw_method == 10 && exists("g:netrw_file_cmd")
"   "    call Decho("read via ".b:netrw_file_cmd." (method #10)",'~'.expand("<slnum>"))
   call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_file_cmd." ".s:ShellEscape(b:netrw_fname,1)." ".tmpfile)
   let result		= s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
   let b:netrw_lastfile = choice

   ".........................................
   " NetRead: Complain {{{3
   else
    call netrw#ErrorMsg(s:WARNING,"unable to comply with your request<" . choice . ">",8)
   endif
  endwhile

  " NetRead: cleanup {{{3
  if exists("b:netrw_method")
"   call Decho("cleanup b:netrw_method and b:netrw_fname",'~'.expand("<slnum>"))
   unlet b:netrw_method
   unlet b:netrw_fname
  endif
  if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't' && tmpfile !~ '.tar.xz$' && tmpfile !~ '.txz'
"   call Decho("cleanup by deleting tmpfile<".tmpfile.">",'~'.expand("<slnum>"))
   NetrwKeepj call s:NetrwDelete(tmpfile)
  endif
  NetrwKeepj call s:NetrwOptionRestore("w:")

"  call Dret("netrw#NetRead :5 getcwd<".getcwd().">")
endfun

" ------------------------------------------------------------------------
" netrw#NetWrite: responsible for writing a file over the net {{{2
fun! netrw#NetWrite(...) range
"  call Dfunc("netrw#NetWrite(a:0=".a:0.") ".g:loaded_netrw)

  " NetWrite: option handling {{{3
  let mod= 0
  call s:NetrwOptionSave("w:")
  call s:NetrwSafeOptions()

  " NetWrite: Get Temporary Filename {{{3
  let tmpfile= s:GetTempfile("")
  if tmpfile == ""
"   call Dret("netrw#NetWrite : unable to get a tempfile!")
   return
  endif

  if a:0 == 0
   let ichoice = 0
  else
   let ichoice = 1
  endif

  let curbufname= expand("%")
"  call Decho("curbufname<".curbufname.">",'~'.expand("<slnum>"))
  if &binary
   " For binary writes, always write entire file.
   " (line numbers don't really make sense for that).
   " Also supports the writing of tar and zip files.
"   call Decho("(write entire file) sil exe w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile),'~'.expand("<slnum>"))
   exe "sil NetrwKeepj w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile)
  elseif g:netrw_cygwin
   " write (selected portion of) file to temporary
   let cygtmpfile= substitute(tmpfile,g:netrw_cygdrive.'/\(.\)','\1:','')
"   call Decho("(write selected portion) sil exe ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(cygtmpfile),'~'.expand("<slnum>"))
   exe "sil NetrwKeepj ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(cygtmpfile)
  else
   " write (selected portion of) file to temporary
"   call Decho("(write selected portion) sil exe ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile),'~'.expand("<slnum>"))
   exe "sil NetrwKeepj ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile)
  endif

  if curbufname == ""
   " when the file is [No Name], and one attempts to Nwrite it, the buffer takes
   " on the temporary file's name.  Deletion of the temporary file during
   " cleanup then causes an error message.
   0file!
  endif

  " NetWrite: while choice loop: {{{3
  while ichoice <= a:0

   " Process arguments: {{{4
   " attempt to repeat with previous host-file-etc
   if exists("b:netrw_lastfile") && a:0 == 0
"    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">",'~'.expand("<slnum>"))
    let choice = b:netrw_lastfile
    let ichoice= ichoice + 1
   else
    exe "let choice= a:" . ichoice

    " Reconstruct Choice when choice starts with '"'
    if match(choice,"?") == 0
     echomsg 'NetWrite Usage:"'
     echomsg ':Nwrite machine:path                        uses rcp'
     echomsg ':Nwrite "machine path"                      uses ftp with <.netrc>'
     echomsg ':Nwrite "machine id password path"          uses ftp'
     echomsg ':Nwrite dav://[user@]machine/path           uses cadaver'
     echomsg ':Nwrite fetch://[user@]machine/path         uses fetch'
     echomsg ':Nwrite ftp://machine[#port]/path           uses ftp  (autodetects <.netrc>)'
     echomsg ':Nwrite rcp://machine/path                  uses rcp'
     echomsg ':Nwrite rsync://[user@]machine/path         uses rsync'
     echomsg ':Nwrite scp://[user@]machine[[:#]port]/path uses scp'
     echomsg ':Nwrite sftp://[user@]machine/path          uses sftp'
     sleep 4
     break

    elseif match(choice,"^\"") != -1
     if match(choice,"\"$") != -1
       " case "..."
      let choice=strpart(choice,1,strlen(choice)-2)
     else
      "  case "... ... ..."
      let choice      = strpart(choice,1,strlen(choice)-1)
      let wholechoice = ""

      while match(choice,"\"$") == -1
       let wholechoice= wholechoice . " " . choice
       let ichoice    = ichoice + 1
       if choice > a:0
       	if !exists("g:netrw_quiet")
	 call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",13)
	endif
"        call Dret("netrw#NetWrite")
        return
       endif
       let choice= a:{ichoice}
      endwhile
      let choice= strpart(wholechoice,1,strlen(wholechoice)-1) . " " . strpart(choice,0,strlen(choice)-1)
     endif
    endif
   endif
   let ichoice= ichoice + 1
"   call Decho("choice<" . choice . "> ichoice=".ichoice,'~'.expand("<slnum>"))

   " Determine method of write (ftp, rcp, etc) {{{4
   NetrwKeepj call s:NetrwMethod(choice)
   if !exists("b:netrw_method") || b:netrw_method < 0
"    call Dfunc("netrw#NetWrite : unsupported method")
    return
   endif

   " =============
   " NetWrite: Perform Protocol-Based Write {{{3
   " ============================
   if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
    echo "(netrw) Processing your write request..."
"    call Decho("(netrw) Processing your write request...",'~'.expand("<slnum>"))
   endif

   ".........................................
   " NetWrite: (rcp) NetWrite Method #1 {{{3
   if  b:netrw_method == 1
"    call Decho("write via rcp (method #1)",'~'.expand("<slnum>"))
    if s:netrw_has_nt_rcp == 1
     if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
      let uid_machine = g:netrw_machine .'.'. g:netrw_uid
     else
      let uid_machine = g:netrw_machine .'.'. $USERNAME
     endif
    else
     if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
      let uid_machine = g:netrw_uid .'@'. g:netrw_machine
     else
      let uid_machine = g:netrw_machine
     endif
    endif
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(uid_machine.":".b:netrw_fname,1))
    let b:netrw_lastfile = choice

   ".........................................
   " NetWrite: (ftp + <.netrc>) NetWrite Method #2 {{{3
   elseif b:netrw_method == 2
"    call Decho("write via ftp+.netrc (method #2)",'~'.expand("<slnum>"))
    let netrw_fname = b:netrw_fname

    " formerly just a "new...bd!", that changed the window sizes when equalalways.  Using enew workaround instead
    let bhkeep      = &l:bh
    let curbuf      = bufnr("%")
    setl bh=hide
    keepj keepalt enew

"    call Decho("filter input window#".winnr(),'~'.expand("<slnum>"))
    setl ff=unix
    NetrwKeepj put =g:netrw_ftpmode
"    call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    if exists("g:netrw_ftpextracmd")
     NetrwKeepj put =g:netrw_ftpextracmd
"     call Decho("filter input: ".getline("$"),'~'.expand("<slnum>"))
    endif
    NetrwKeepj call setline(line("$")+1,'put "'.tmpfile.'" "'.netrw_fname.'"')
"    call Decho("filter input: ".getline("$"),'~'.expand("<slnum>"))
    if exists("g:netrw_port") && g:netrw_port != ""
     call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1)." ".s:ShellEscape(g:netrw_port,1))
    else
"     call Decho("filter input window#".winnr(),'~'.expand("<slnum>"))
     call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1))
    endif
    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    if getline(1) !~ "^$"
     if !exists("g:netrw_quiet")
      NetrwKeepj call netrw#ErrorMsg(s:ERROR,getline(1),14)
     endif
     let mod=1
    endif

    " remove enew buffer (quietly)
    let filtbuf= bufnr("%")
    exe curbuf."b!"
    let &l:bh            = bhkeep
    exe filtbuf."bw!"

    let b:netrw_lastfile = choice

   ".........................................
   " NetWrite: (ftp + machine, id, passwd, filename) NetWrite Method #3 {{{3
   elseif b:netrw_method == 3
    " Construct execution string (three or more lines) which will be passed through filter
"    call Decho("read via ftp+mipf (method #3)",'~'.expand("<slnum>"))
    let netrw_fname = b:netrw_fname
    let bhkeep      = &l:bh

    " formerly just a "new...bd!", that changed the window sizes when equalalways.  Using enew workaround instead
    let curbuf      = bufnr("%")
    setl bh=hide
    keepj keepalt enew
    setl ff=unix

    if exists("g:netrw_port") && g:netrw_port != ""
     NetrwKeepj put ='open '.g:netrw_machine.' '.g:netrw_port
"     call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    else
     NetrwKeepj put ='open '.g:netrw_machine
"     call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    endif
    if exists("g:netrw_uid") && g:netrw_uid != ""
     if exists("g:netrw_ftp") && g:netrw_ftp == 1
      NetrwKeepj put =g:netrw_uid
"      call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
      if exists("s:netrw_passwd") && s:netrw_passwd != ""
       NetrwKeepj put ='\"'.s:netrw_passwd.'\"'
      endif
"      call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
     elseif exists("s:netrw_passwd") && s:netrw_passwd != ""
      NetrwKeepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"'
"      call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
     endif
    endif
    NetrwKeepj put =g:netrw_ftpmode
"    call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
    if exists("g:netrw_ftpextracmd")
     NetrwKeepj put =g:netrw_ftpextracmd
"     call Decho("filter input: ".getline("$"),'~'.expand("<slnum>"))
    endif
    NetrwKeepj put ='put \"'.tmpfile.'\" \"'.netrw_fname.'\"'
"    call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    " save choice/id/password for future use
    let b:netrw_lastfile = choice

    " perform ftp:
    " -i       : turns off interactive prompting from ftp
    " -n  unix : DON'T use <.netrc>, even though it exists
    " -n  win32: quit being obnoxious about password
    NetrwKeepj norm! 1Gdd
    call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    if getline(1) !~ "^$"
     if  !exists("g:netrw_quiet")
      call netrw#ErrorMsg(s:ERROR,getline(1),15)
     endif
     let mod=1
    endif

    " remove enew buffer (quietly)
    let filtbuf= bufnr("%")
    exe curbuf."b!"
    let &l:bh= bhkeep
    exe filtbuf."bw!"

   ".........................................
   " NetWrite: (scp) NetWrite Method #4 {{{3
   elseif     b:netrw_method == 4
"    call Decho("write via scp (method #4)",'~'.expand("<slnum>"))
    if exists("g:netrw_port") && g:netrw_port != ""
     let useport= " ".g:netrw_scpport." ".fnameescape(g:netrw_port)
    else
     let useport= ""
    endif
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1))
    let b:netrw_lastfile = choice

   ".........................................
   " NetWrite: (http) NetWrite Method #5 {{{3
   elseif     b:netrw_method == 5
"    call Decho("write via http (method #5)",'~'.expand("<slnum>"))
    let curl= substitute(g:netrw_http_put_cmd,'\s\+.*$',"","")
    if executable(curl)
     let url= g:netrw_choice
     call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_http_put_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(url,1) )
    elseif !exists("g:netrw_quiet")
     call netrw#ErrorMsg(s:ERROR,"can't write to http using <".g:netrw_http_put_cmd".">".",16)
    endif

   ".........................................
   " NetWrite: (dav) NetWrite Method #6 (cadaver) {{{3
   elseif     b:netrw_method == 6
"    call Decho("write via cadaver (method #6)",'~'.expand("<slnum>"))

    " Construct execution string (four lines) which will be passed through filter
    let netrw_fname = escape(b:netrw_fname,g:netrw_fname_escape)
    let bhkeep      = &l:bh

    " formerly just a "new...bd!", that changed the window sizes when equalalways.  Using enew workaround instead
    let curbuf      = bufnr("%")
    setl bh=hide
    keepj keepalt enew

    setl ff=unix
    if exists("g:netrw_port") && g:netrw_port != ""
     NetrwKeepj put ='open '.g:netrw_machine.' '.g:netrw_port
    else
     NetrwKeepj put ='open '.g:netrw_machine
    endif
    if exists("g:netrw_uid") && exists("s:netrw_passwd") && g:netrw_uid != ""
     NetrwKeepj put ='user '.g:netrw_uid.' '.s:netrw_passwd
    endif
    NetrwKeepj put ='put '.tmpfile.' '.netrw_fname

    " perform cadaver operation:
    NetrwKeepj norm! 1Gdd
    call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)

    " remove enew buffer (quietly)
    let filtbuf= bufnr("%")
    exe curbuf."b!"
    let &l:bh            = bhkeep
    exe filtbuf."bw!"

    let b:netrw_lastfile = choice

   ".........................................
   " NetWrite: (rsync) NetWrite Method #7 {{{3
   elseif     b:netrw_method == 7
"    call Decho("write via rsync (method #7)",'~'.expand("<slnum>"))
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rsync_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1))
    let b:netrw_lastfile = choice

   ".........................................
   " NetWrite: (sftp) NetWrite Method #9 {{{3
   elseif     b:netrw_method == 9
"    call Decho("write via sftp (method #9)",'~'.expand("<slnum>"))
    let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
    if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
     let uid_machine = g:netrw_uid .'@'. g:netrw_machine
    else
     let uid_machine = g:netrw_machine
    endif

    " formerly just a "new...bd!", that changed the window sizes when equalalways.  Using enew workaround instead
    let bhkeep = &l:bh
    let curbuf = bufnr("%")
    setl bh=hide
    keepj keepalt enew

    setl ff=unix
    call setline(1,'put "'.escape(tmpfile,'\').'" '.netrw_fname)
"    call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
    let sftpcmd= substitute(g:netrw_sftp_cmd,"%TEMPFILE%",escape(tmpfile,'\'),"g")
    call s:NetrwExe(s:netrw_silentxfer."%!".sftpcmd.' '.s:ShellEscape(uid_machine,1))
    let filtbuf= bufnr("%")
    exe curbuf."b!"
    let &l:bh            = bhkeep
    exe filtbuf."bw!"
    let b:netrw_lastfile = choice

   ".........................................
   " NetWrite: Complain {{{3
   else
    call netrw#ErrorMsg(s:WARNING,"unable to comply with your request<" . choice . ">",17)
    let leavemod= 1
   endif
  endwhile

  " NetWrite: Cleanup: {{{3
"  call Decho("cleanup",'~'.expand("<slnum>"))
  if s:FileReadable(tmpfile)
"   call Decho("tmpfile<".tmpfile."> readable, will now delete it",'~'.expand("<slnum>"))
   call s:NetrwDelete(tmpfile)
  endif
  call s:NetrwOptionRestore("w:")

  if a:firstline == 1 && a:lastline == line("$")
   " restore modifiability; usually equivalent to set nomod
   let &mod= mod
"   call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
  elseif !exists("leavemod")
   " indicate that the buffer has not been modified since last written
"   call Decho("set nomod",'~'.expand("<slnum>"))
   setl nomod
"   call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
  endif

"  call Dret("netrw#NetWrite")
endfun

" ---------------------------------------------------------------------
" netrw#NetSource: source a remotely hosted vim script {{{2
" uses NetRead to get a copy of the file into a temporarily file,
"              then sources that file,
"              then removes that file.
fun! netrw#NetSource(...)
"  call Dfunc("netrw#NetSource() a:0=".a:0)
  if a:0 > 0 && a:1 == '?'
   " give help
   echomsg 'NetSource Usage:'
   echomsg ':Nsource dav://machine[:port]/path            uses cadaver'
   echomsg ':Nsource fetch://machine/path                 uses fetch'
   echomsg ':Nsource ftp://[user@]machine[:port]/path     uses ftp   autodetects <.netrc>'
   echomsg ':Nsource http[s]://[user@]machine/path        uses http  wget'
   echomsg ':Nsource rcp://[user@]machine/path            uses rcp'
   echomsg ':Nsource rsync://machine[:port]/path          uses rsync'
   echomsg ':Nsource scp://[user@]machine[[:#]port]/path  uses scp'
   echomsg ':Nsource sftp://[user@]machine[[:#]port]/path uses sftp'
   sleep 4
  else
   let i= 1
   while i <= a:0
    call netrw#NetRead(3,a:{i})
"    call Decho("s:netread_tmpfile<".s:netrw_tmpfile.">",'~'.expand("<slnum>"))
    if s:FileReadable(s:netrw_tmpfile)
"     call Decho("exe so ".fnameescape(s:netrw_tmpfile),'~'.expand("<slnum>"))
     exe "so ".fnameescape(s:netrw_tmpfile)
"     call Decho("delete(".s:netrw_tmpfile.")",'~'.expand("<slnum>"))
     if delete(s:netrw_tmpfile)
      call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".s:netrw_tmpfile.">!",103)
     endif
     unlet s:netrw_tmpfile
    else
     call netrw#ErrorMsg(s:ERROR,"unable to source <".a:{i}.">!",48)
    endif
    let i= i + 1
   endwhile
  endif
"  call Dret("netrw#NetSource")
endfun

" ---------------------------------------------------------------------
" netrw#SetTreetop: resets the tree top to the current directory/specified directory {{{2
"                   (implements the :Ntree command)
fun! netrw#SetTreetop(...)
"  call Dfunc("netrw#SetTreetop(".((a:0 > 0)? a:1 : "").") a:0=".a:0)

  " clear out the current tree
  if exists("w:netrw_treetop")
"   call Decho("clearing out current tree",'~'.expand("<slnum>"))
   let inittreetop= w:netrw_treetop
   unlet w:netrw_treetop
  endif
  if exists("w:netrw_treedict")
"   call Decho("freeing w:netrw_treedict",'~'.expand("<slnum>"))
   unlet w:netrw_treedict
  endif

  if a:1 == "" && exists("inittreetop")
   let treedir= s:NetrwTreePath(inittreetop)
"   call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
  else
   if isdirectory(s:NetrwFile(a:1))
"    call Decho("a:1<".a:1."> is a directory",'~'.expand("<slnum>"))
    let treedir= a:1
   elseif exists("b:netrw_curdir") && (isdirectory(s:NetrwFile(b:netrw_curdir."/".a:1)) || a:1 =~ '^\a\{3,}://')
    let treedir= b:netrw_curdir."/".a:1
"    call Decho("a:1<".a:1."> is NOT a directory, trying treedir<".treedir.">",'~'.expand("<slnum>"))
   else
    " normally the cursor is left in the message window.
    " However, here this results in the directory being listed in the message window, which is not wanted.
    let netrwbuf= bufnr("%")
    call netrw#ErrorMsg(s:ERROR,"sorry, ".a:1." doesn't seem to be a directory!",95)
    exe bufwinnr(netrwbuf)."wincmd w"
    let treedir= "."
   endif
  endif
"  call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
  let islocal= expand("%") !~ '^\a\{3,}://'
"  call Decho("islocal=".islocal,'~'.expand("<slnum>"))
  if islocal
   call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(islocal,treedir))
  else
   call s:NetrwBrowse(islocal,s:NetrwBrowseChgDir(islocal,treedir))
  endif
"  call Dret("netrw#SetTreetop")
endfun

" ===========================================
" s:NetrwGetFile: Function to read temporary file "tfile" with command "readcmd". {{{2
"    readcmd == %r : replace buffer with newly read file
"            == 0r : read file at top of buffer
"            == r  : read file after current line
"            == t  : leave file in temporary form (ie. don't read into buffer)
fun! s:NetrwGetFile(readcmd, tfile, method)
"  call Dfunc("NetrwGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")

  " readcmd=='t': simply do nothing
  if a:readcmd == 't'
"   call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"   call Dret("NetrwGetFile : skip read of <".a:tfile.">")
   return
  endif

  " get name of remote filename (ie. url and all)
  let rfile= bufname("%")
"  call Decho("rfile<".rfile.">",'~'.expand("<slnum>"))

  if exists("*NetReadFixup")
   " for the use of NetReadFixup (not otherwise used internally)
   let line2= line("$")
  endif

  if a:readcmd[0] == '%'
  " get file into buffer
"   call Decho("get file into buffer",'~'.expand("<slnum>"))

   " rename the current buffer to the temp file (ie. tfile)
   if g:netrw_cygwin
    let tfile= substitute(a:tfile,g:netrw_cygdrive.'/\(.\)','\1:','')
   else
    let tfile= a:tfile
   endif
"   call Decho("exe sil! keepalt file ".fnameescape(tfile),'~'.expand("<slnum>"))
   exe "sil! keepalt file ".fnameescape(tfile)

   " edit temporary file (ie. read the temporary file in)
   if     rfile =~ '\.zip$'
"    call Decho("handling remote zip file with zip#Browse(tfile<".tfile.">)",'~'.expand("<slnum>"))
    call zip#Browse(tfile)
   elseif rfile =~ '\.tar$'
"    call Decho("handling remote tar file with tar#Browse(tfile<".tfile.">)",'~'.expand("<slnum>"))
    call tar#Browse(tfile)
   elseif rfile =~ '\.tar\.gz$'
"    call Decho("handling remote gzip-compressed tar file",'~'.expand("<slnum>"))
    call tar#Browse(tfile)
   elseif rfile =~ '\.tar\.bz2$'
"    call Decho("handling remote bz2-compressed tar file",'~'.expand("<slnum>"))
    call tar#Browse(tfile)
   elseif rfile =~ '\.tar\.xz$'
"    call Decho("handling remote xz-compressed tar file",'~'.expand("<slnum>"))
    call tar#Browse(tfile)
   elseif rfile =~ '\.txz$'
"    call Decho("handling remote xz-compressed tar file (.txz)",'~'.expand("<slnum>"))
    call tar#Browse(tfile)
   else
"    call Decho("edit temporary file",'~'.expand("<slnum>"))
    NetrwKeepj e!
   endif

   " rename buffer back to remote filename
"   call Decho("exe sil! keepalt file ".fnameescape(rfile),'~'.expand("<slnum>"))
   exe "sil! NetrwKeepj keepalt file ".fnameescape(rfile)

   " Detect filetype of local version of remote file.
   " Note that isk must not include a "/" for scripts.vim
   " to process this detection correctly.
"   call Decho("detect filetype of local version of remote file",'~'.expand("<slnum>"))
   let iskkeep= &l:isk
   setl isk-=/
   let &l:isk= iskkeep
"   call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!")
   let line1 = 1
   let line2 = line("$")

  elseif !&ma
   " attempting to read a file after the current line in the file, but the buffer is not modifiable
   NetrwKeepj call netrw#ErrorMsg(s:WARNING,"attempt to read<".a:tfile."> into a non-modifiable buffer!",94)
"   call Dret("NetrwGetFile : attempt to read<".a:tfile."> into a non-modifiable buffer!")
   return

  elseif s:FileReadable(a:tfile)
   " read file after current line
"   call Decho("read file<".a:tfile."> after current line",'~'.expand("<slnum>"))
   let curline = line(".")
   let lastline= line("$")
"   call Decho("exe<".a:readcmd." ".fnameescape(v:cmdarg)." ".fnameescape(a:tfile).">  line#".curline,'~'.expand("<slnum>"))
   exe "NetrwKeepj ".a:readcmd." ".fnameescape(v:cmdarg)." ".fnameescape(a:tfile)
   let line1= curline + 1
   let line2= line("$") - lastline + 1

  else
   " not readable
"   call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"   call Decho("tfile<".a:tfile."> not readable",'~'.expand("<slnum>"))
   NetrwKeepj call netrw#ErrorMsg(s:WARNING,"file <".a:tfile."> not readable",9)
"   call Dret("NetrwGetFile : tfile<".a:tfile."> not readable")
   return
  endif

  " User-provided (ie. optional) fix-it-up command
  if exists("*NetReadFixup")
"   call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")",'~'.expand("<slnum>"))
   NetrwKeepj call NetReadFixup(a:method, line1, line2)
"  else " Decho
"   call Decho("NetReadFixup() not called, doesn't exist  (line1=".line1." line2=".line2.")",'~'.expand("<slnum>"))
  endif

  if has("gui") && has("menu") && has("gui_running") && &go =~# 'm' && g:netrw_menu
   " update the Buffers menu
   NetrwKeepj call s:UpdateBuffersMenu()
  endif

"  call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> tfile<".a:tfile."> readable=".s:FileReadable(a:tfile),'~'.expand("<slnum>"))

 " make sure file is being displayed
"  redraw!

"  call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"  call Dret("NetrwGetFile")
endfun

" ------------------------------------------------------------------------
" s:NetrwMethod:  determine method of transfer {{{2
" Input:
"   choice = url   [protocol:]//[userid@]hostname[:port]/[path-to-file]
" Output:
"  b:netrw_method= 1: rcp
"                  2: ftp + <.netrc>
"	           3: ftp + machine, id, password, and [path]filename
"	           4: scp
"	           5: http[s] (wget)
"	           6: dav
"	           7: rsync
"	           8: fetch
"	           9: sftp
"	          10: file
"  g:netrw_machine= hostname
"  b:netrw_fname  = filename
"  g:netrw_port   = optional port number (for ftp)
"  g:netrw_choice = copy of input url (choice)
fun! s:NetrwMethod(choice)
"   call Dfunc("NetrwMethod(a:choice<".a:choice.">)")

   " sanity check: choice should have at least three slashes in it
   if strlen(substitute(a:choice,'[^/]','','g')) < 3
    call netrw#ErrorMsg(s:ERROR,"not a netrw-style url; netrw uses protocol://[user@]hostname[:port]/[path])",78)
    let b:netrw_method = -1
"    call Dret("NetrwMethod : incorrect url format<".a:choice.">")
    return
   endif

   " record current g:netrw_machine, if any
   " curmachine used if protocol == ftp and no .netrc
   if exists("g:netrw_machine")
    let curmachine= g:netrw_machine
"    call Decho("curmachine<".curmachine.">",'~'.expand("<slnum>"))
   else
    let curmachine= "N O T A HOST"
   endif
   if exists("g:netrw_port")
    let netrw_port= g:netrw_port
   endif

   " insure that netrw_ftp_cmd starts off every method determination
   " with the current g:netrw_ftp_cmd
   let s:netrw_ftp_cmd= g:netrw_ftp_cmd

  " initialization
  let b:netrw_method  = 0
  let g:netrw_machine = ""
  let b:netrw_fname   = ""
  let g:netrw_port    = ""
  let g:netrw_choice  = a:choice

  " Patterns:
  " mipf     : a:machine a:id password filename	     Use ftp
  " mf	    : a:machine filename		     Use ftp + <.netrc> or g:netrw_uid s:netrw_passwd
  " ftpurm   : ftp://[user@]host[[#:]port]/filename  Use ftp + <.netrc> or g:netrw_uid s:netrw_passwd
  " rcpurm   : rcp://[user@]host/filename	     Use rcp
  " rcphf    : [user@]host:filename		     Use rcp
  " scpurm   : scp://[user@]host[[#:]port]/filename  Use scp
  " httpurm  : http[s]://[user@]host/filename	     Use wget
  " davurm   : dav[s]://host[:port]/path             Use cadaver/curl
  " rsyncurm : rsync://host[:port]/path              Use rsync
  " fetchurm : fetch://[user@]host[:http]/filename   Use fetch (defaults to ftp, override for http)
  " sftpurm  : sftp://[user@]host/filename  Use scp
  " fileurm  : file://[user@]host/filename	     Use elinks or links
  let mipf     = '^\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)$'
  let mf       = '^\(\S\+\)\s\+\(\S\+\)$'
  let ftpurm   = '^ftp://\(\([^/]*\)@\)\=\([^/#:]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
  let rcpurm   = '^rcp://\%(\([^/]*\)@\)\=\([^/]\{-}\)/\(.*\)$'
  let rcphf    = '^\(\(\h\w*\)@\)\=\(\h\w*\):\([^@]\+\)$'
  let scpurm   = '^scp://\([^/#:]\+\)\%([#:]\(\d\+\)\)\=/\(.*\)$'
  let httpurm  = '^https\=://\([^/]\{-}\)\(/.*\)\=$'
  let davurm   = '^davs\=://\([^/]\+\)/\(.*/\)\([-_.~[:alnum:]]\+\)$'
  let rsyncurm = '^rsync://\([^/]\{-}\)/\(.*\)\=$'
  let fetchurm = '^fetch://\(\([^/]*\)@\)\=\([^/#:]\{-}\)\(:http\)\=/\(.*\)$'
  let sftpurm  = '^sftp://\([^/]\{-}\)/\(.*\)\=$'
  let fileurm  = '^file\=://\(.*\)$'

"  call Decho("determine method:",'~'.expand("<slnum>"))
  " Determine Method
  " Method#1: rcp://user@hostname/...path-to-file {{{3
  if match(a:choice,rcpurm) == 0
"   call Decho("rcp://...",'~'.expand("<slnum>"))
   let b:netrw_method  = 1
   let userid          = substitute(a:choice,rcpurm,'\1',"")
   let g:netrw_machine = substitute(a:choice,rcpurm,'\2',"")
   let b:netrw_fname   = substitute(a:choice,rcpurm,'\3',"")
   if userid != ""
    let g:netrw_uid= userid
   endif

  " Method#4: scp://user@hostname/...path-to-file {{{3
  elseif match(a:choice,scpurm) == 0
"   call Decho("scp://...",'~'.expand("<slnum>"))
   let b:netrw_method  = 4
   let g:netrw_machine = substitute(a:choice,scpurm,'\1',"")
   let g:netrw_port    = substitute(a:choice,scpurm,'\2',"")
   let b:netrw_fname   = substitute(a:choice,scpurm,'\3',"")

  " Method#5: http[s]://user@hostname/...path-to-file {{{3
  elseif match(a:choice,httpurm) == 0
"   call Decho("http[s]://...",'~'.expand("<slnum>"))
   let b:netrw_method = 5
   let g:netrw_machine= substitute(a:choice,httpurm,'\1',"")
   let b:netrw_fname  = substitute(a:choice,httpurm,'\2',"")
   let b:netrw_http   = (a:choice =~ '^https:')? "https" : "http"

  " Method#6: dav://hostname[:port]/..path-to-file.. {{{3
  elseif match(a:choice,davurm) == 0
"   call Decho("dav://...",'~'.expand("<slnum>"))
   let b:netrw_method= 6
   if a:choice =~ 'davs:'
    let g:netrw_machine= 'https://'.substitute(a:choice,davurm,'\1/\2',"")
   else
    let g:netrw_machine= 'http://'.substitute(a:choice,davurm,'\1/\2',"")
   endif
   let b:netrw_fname  = substitute(a:choice,davurm,'\3',"")

   " Method#7: rsync://user@hostname/...path-to-file {{{3
  elseif match(a:choice,rsyncurm) == 0
"   call Decho("rsync://...",'~'.expand("<slnum>"))
   let b:netrw_method = 7
   let g:netrw_machine= substitute(a:choice,rsyncurm,'\1',"")
   let b:netrw_fname  = substitute(a:choice,rsyncurm,'\2',"")

   " Methods 2,3: ftp://[user@]hostname[[:#]port]/...path-to-file {{{3
  elseif match(a:choice,ftpurm) == 0
"   call Decho("ftp://...",'~'.expand("<slnum>"))
   let userid	      = substitute(a:choice,ftpurm,'\2',"")
   let g:netrw_machine= substitute(a:choice,ftpurm,'\3',"")
   let g:netrw_port   = substitute(a:choice,ftpurm,'\4',"")
   let b:netrw_fname  = substitute(a:choice,ftpurm,'\5',"")
"   call Decho("g:netrw_machine<".g:netrw_machine.">",'~'.expand("<slnum>"))
   if userid != ""
    let g:netrw_uid= userid
   endif

   if curmachine != g:netrw_machine
    if exists("s:netwr_hup[".g:netrw_machine."]")
     call NetUserPass("ftp:".g:netrw_machine)
    elseif exists("s:netrw_passwd")
     " if there's a change in hostname, require password re-entry
     unlet s:netrw_passwd
    endif
    if exists("netrw_port")
     unlet netrw_port
    endif
   endif

   if exists("g:netrw_uid") && exists("s:netrw_passwd")
    let b:netrw_method = 3
   else
    let host= substitute(g:netrw_machine,'\..*$','','')
    if exists("s:netrw_hup[host]")
     call NetUserPass("ftp:".host)

    elseif (has("win32") || has("win95") || has("win64") || has("win16")) && s:netrw_ftp_cmd =~# '-[sS]:'
"     call Decho("has -s: : s:netrw_ftp_cmd<".s:netrw_ftp_cmd.">",'~'.expand("<slnum>"))
"     call Decho("          g:netrw_ftp_cmd<".g:netrw_ftp_cmd.">",'~'.expand("<slnum>"))
     if g:netrw_ftp_cmd =~# '-[sS]:\S*MACHINE\>'
      let s:netrw_ftp_cmd= substitute(g:netrw_ftp_cmd,'\<MACHINE\>',g:netrw_machine,'')
"      call Decho("s:netrw_ftp_cmd<".s:netrw_ftp_cmd.">",'~'.expand("<slnum>"))
     endif
     let b:netrw_method= 2
    elseif s:FileReadable(expand("$HOME/.netrc")) && !g:netrw_ignorenetrc
"     call Decho("using <".expand("$HOME/.netrc")."> (readable)",'~'.expand("<slnum>"))
     let b:netrw_method= 2
    else
     if !exists("g:netrw_uid") || g:netrw_uid == ""
      call NetUserPass()
     elseif !exists("s:netrw_passwd") || s:netrw_passwd == ""
      call NetUserPass(g:netrw_uid)
    " else just use current g:netrw_uid and s:netrw_passwd
     endif
     let b:netrw_method= 3
    endif
   endif

  " Method#8: fetch {{{3
  elseif match(a:choice,fetchurm) == 0
"   call Decho("fetch://...",'~'.expand("<slnum>"))
   let b:netrw_method = 8
   let g:netrw_userid = substitute(a:choice,fetchurm,'\2',"")
   let g:netrw_machine= substitute(a:choice,fetchurm,'\3',"")
   let b:netrw_option = substitute(a:choice,fetchurm,'\4',"")
   let b:netrw_fname  = substitute(a:choice,fetchurm,'\5',"")

   " Method#3: Issue an ftp : "machine id password [path/]filename" {{{3
  elseif match(a:choice,mipf) == 0
"   call Decho("(ftp) host id pass file",'~'.expand("<slnum>"))
   let b:netrw_method  = 3
   let g:netrw_machine = substitute(a:choice,mipf,'\1',"")
   let g:netrw_uid     = substitute(a:choice,mipf,'\2',"")
   let s:netrw_passwd  = substitute(a:choice,mipf,'\3',"")
   let b:netrw_fname   = substitute(a:choice,mipf,'\4',"")
   call NetUserPass(g:netrw_machine,g:netrw_uid,s:netrw_passwd)

  " Method#3: Issue an ftp: "hostname [path/]filename" {{{3
  elseif match(a:choice,mf) == 0
"   call Decho("(ftp) host file",'~'.expand("<slnum>"))
   if exists("g:netrw_uid") && exists("s:netrw_passwd")
    let b:netrw_method  = 3
    let g:netrw_machine = substitute(a:choice,mf,'\1',"")
    let b:netrw_fname   = substitute(a:choice,mf,'\2',"")

   elseif s:FileReadable(expand("$HOME/.netrc"))
    let b:netrw_method  = 2
    let g:netrw_machine = substitute(a:choice,mf,'\1',"")
    let b:netrw_fname   = substitute(a:choice,mf,'\2',"")
   endif

  " Method#9: sftp://user@hostname/...path-to-file {{{3
  elseif match(a:choice,sftpurm) == 0
"   call Decho("sftp://...",'~'.expand("<slnum>"))
   let b:netrw_method = 9
   let g:netrw_machine= substitute(a:choice,sftpurm,'\1',"")
   let b:netrw_fname  = substitute(a:choice,sftpurm,'\2',"")

  " Method#1: Issue an rcp: hostname:filename"  (this one should be last) {{{3
  elseif match(a:choice,rcphf) == 0
"   call Decho("(rcp) [user@]host:file) rcphf<".rcphf.">",'~'.expand("<slnum>"))
   let b:netrw_method  = 1
   let userid          = substitute(a:choice,rcphf,'\2',"")
   let g:netrw_machine = substitute(a:choice,rcphf,'\3',"")
   let b:netrw_fname   = substitute(a:choice,rcphf,'\4',"")
"   call Decho('\1<'.substitute(a:choice,rcphf,'\1',"").">",'~'.expand("<slnum>"))
"   call Decho('\2<'.substitute(a:choice,rcphf,'\2',"").">",'~'.expand("<slnum>"))
"   call Decho('\3<'.substitute(a:choice,rcphf,'\3',"").">",'~'.expand("<slnum>"))
"   call Decho('\4<'.substitute(a:choice,rcphf,'\4',"").">",'~'.expand("<slnum>"))
   if userid != ""
    let g:netrw_uid= userid
   endif

   " Method#10: file://user@hostname/...path-to-file {{{3
  elseif match(a:choice,fileurm) == 0 && exists("g:netrw_file_cmd")
"   call Decho("http[s]://...",'~'.expand("<slnum>"))
   let b:netrw_method = 10
   let b:netrw_fname  = substitute(a:choice,fileurm,'\1',"")
"   call Decho('\1<'.substitute(a:choice,fileurm,'\1',"").">",'~'.expand("<slnum>"))

  " Cannot Determine Method {{{3
  else
   if !exists("g:netrw_quiet")
    call netrw#ErrorMsg(s:WARNING,"cannot determine method (format: protocol://[user@]hostname[:port]/[path])",45)
   endif
   let b:netrw_method  = -1
  endif
  "}}}3

  if g:netrw_port != ""
   " remove any leading [:#] from port number
   let g:netrw_port = substitute(g:netrw_port,'[#:]\+','','')
  elseif exists("netrw_port")
   " retain port number as implicit for subsequent ftp operations
   let g:netrw_port= netrw_port
  endif

"  call Decho("a:choice       <".a:choice.">",'~'.expand("<slnum>"))
"  call Decho("b:netrw_method <".b:netrw_method.">",'~'.expand("<slnum>"))
"  call Decho("g:netrw_machine<".g:netrw_machine.">",'~'.expand("<slnum>"))
"  call Decho("g:netrw_port   <".g:netrw_port.">",'~'.expand("<slnum>"))
"  if exists("g:netrw_uid")		"Decho
"   call Decho("g:netrw_uid    <".g:netrw_uid.">",'~'.expand("<slnum>"))
"  endif					"Decho
"  if exists("s:netrw_passwd")		"Decho
"   call Decho("s:netrw_passwd <".s:netrw_passwd.">",'~'.expand("<slnum>"))
"  endif					"Decho
"  call Decho("b:netrw_fname  <".b:netrw_fname.">",'~'.expand("<slnum>"))
"  call Dret("NetrwMethod : b:netrw_method=".b:netrw_method." g:netrw_port=".g:netrw_port)
endfun

" ------------------------------------------------------------------------
" NetReadFixup: this sort of function is typically written by the user {{{2
"               to handle extra junk that their system's ftp dumps
"               into the transfer.  This function is provided as an
"               example and as a fix for a Windows 95 problem: in my
"               experience, win95's ftp always dumped four blank lines
"               at the end of the transfer.
if has("win95") && exists("g:netrw_win95ftp") && g:netrw_win95ftp
 fun! NetReadFixup(method, line1, line2)
"   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")

   " sanity checks -- attempt to convert inputs to integers
   let method = a:method + 0
   let line1  = a:line1 + 0
   let line2  = a:line2 + 0
   if type(method) != 0 || type(line1) != 0 || type(line2) != 0 || method < 0 || line1 <= 0 || line2 <= 0
"    call Dret("NetReadFixup")
    return
   endif

   if method == 3   " ftp (no <.netrc>)
    let fourblanklines= line2 - 3
    if fourblanklines >= line1
     exe "sil NetrwKeepj ".fourblanklines.",".line2."g/^\s*$/d"
     call histdel("/",-1)
    endif
   endif

"   call Dret("NetReadFixup")
 endfun
endif

" ---------------------------------------------------------------------
" NetUserPass: set username and password for subsequent ftp transfer {{{2
"   Usage:  :call NetUserPass()		               -- will prompt for userid and password
"	    :call NetUserPass("uid")	               -- will prompt for password
"	    :call NetUserPass("uid","password")        -- sets global userid and password
"	    :call NetUserPass("ftp:host")              -- looks up userid and password using hup dictionary
"	    :call NetUserPass("host","uid","password") -- sets hup dictionary with host, userid, password
fun! NetUserPass(...)

" call Dfunc("NetUserPass() a:0=".a:0)

 if !exists('s:netrw_hup')
  let s:netrw_hup= {}
 endif

 if a:0 == 0
  " case: no input arguments

  " change host and username if not previously entered; get new password
  if !exists("g:netrw_machine")
   let g:netrw_machine= input('Enter hostname: ')
  endif
  if !exists("g:netrw_uid") || g:netrw_uid == ""
   " get username (user-id) via prompt
   let g:netrw_uid= input('Enter username: ')
  endif
  " get password via prompting
  let s:netrw_passwd= inputsecret("Enter Password: ")

  " set up hup database
  let host = substitute(g:netrw_machine,'\..*$','','')
  if !exists('s:netrw_hup[host]')
   let s:netrw_hup[host]= {}
  endif
  let s:netrw_hup[host].uid    = g:netrw_uid
  let s:netrw_hup[host].passwd = s:netrw_passwd

 elseif a:0 == 1
  " case: one input argument

  if a:1 =~ '^ftp:'
   " get host from ftp:... url
   " access userid and password from hup (host-user-passwd) dictionary
"   call Decho("case a:0=1: a:1<".a:1."> (get host from ftp:... url)",'~'.expand("<slnum>"))
   let host = substitute(a:1,'^ftp:','','')
   let host = substitute(host,'\..*','','')
   if exists("s:netrw_hup[host]")
    let g:netrw_uid    = s:netrw_hup[host].uid
    let s:netrw_passwd = s:netrw_hup[host].passwd
"    call Decho("get s:netrw_hup[".host."].uid   <".s:netrw_hup[host].uid.">",'~'.expand("<slnum>"))
"    call Decho("get s:netrw_hup[".host."].passwd<".s:netrw_hup[host].passwd.">",'~'.expand("<slnum>"))
   else
    let g:netrw_uid    = input("Enter UserId: ")
    let s:netrw_passwd = inputsecret("Enter Password: ")
   endif

  else
   " case: one input argument, not an url.  Using it as a new user-id.
"   call Decho("case a:0=1: a:1<".a:1."> (get host from input argument, not an url)",'~'.expand("<slnum>"))
   if exists("g:netrw_machine")
    if g:netrw_machine =~ '[0-9.]\+'
     let host= g:netrw_machine
    else
     let host= substitute(g:netrw_machine,'\..*$','','')
    endif
   else
    let g:netrw_machine= input('Enter hostname: ')
   endif
   let g:netrw_uid = a:1
"   call Decho("set g:netrw_uid= <".g:netrw_uid.">",'~'.expand("<slnum>"))
   if exists("g:netrw_passwd")
    " ask for password if one not previously entered
    let s:netrw_passwd= g:netrw_passwd
   else
    let s:netrw_passwd = inputsecret("Enter Password: ")
   endif
  endif

"  call Decho("host<".host.">",'~'.expand("<slnum>"))
  if exists("host")
   if !exists('s:netrw_hup[host]')
    let s:netrw_hup[host]= {}
   endif
   let s:netrw_hup[host].uid    = g:netrw_uid
   let s:netrw_hup[host].passwd = s:netrw_passwd
  endif

 elseif a:0 == 2
  let g:netrw_uid    = a:1
  let s:netrw_passwd = a:2

 elseif a:0 == 3
  " enter hostname, user-id, and password into the hup dictionary
  let host = substitute(a:1,'^\a\+:','','')
  let host = substitute(host,'\..*$','','')
  if !exists('s:netrw_hup[host]')
   let s:netrw_hup[host]= {}
  endif
  let s:netrw_hup[host].uid    = a:2
  let s:netrw_hup[host].passwd = a:3
  let g:netrw_uid              = s:netrw_hup[host].uid
  let s:netrw_passwd           = s:netrw_hup[host].passwd
"  call Decho("set s:netrw_hup[".host."].uid   <".s:netrw_hup[host].uid.">",'~'.expand("<slnum>"))
"  call Decho("set s:netrw_hup[".host."].passwd<".s:netrw_hup[host].passwd.">",'~'.expand("<slnum>"))
 endif

" call Dret("NetUserPass : uid<".g:netrw_uid."> passwd<".s:netrw_passwd.">")
endfun

" ===========================================
"  Shared Browsing Support:    {{{1
" ===========================================

" ---------------------------------------------------------------------
" s:ExplorePatHls: converts an Explore pattern into a regular expression search pattern {{{2
fun! s:ExplorePatHls(pattern)
"  call Dfunc("s:ExplorePatHls(pattern<".a:pattern.">)")
  let repat= substitute(a:pattern,'^**/\{1,2}','','')
"  call Decho("repat<".repat.">",'~'.expand("<slnum>"))
  let repat= escape(repat,'][.\')
"  call Decho("repat<".repat.">",'~'.expand("<slnum>"))
  let repat= '\<'.substitute(repat,'\*','\\(\\S\\+ \\)*\\S\\+','g').'\>'
"  call Dret("s:ExplorePatHls repat<".repat.">")
  return repat
endfun

" ---------------------------------------------------------------------
"  s:NetrwBookHistHandler: {{{2
"    0: (user: <mb>)   bookmark current directory
"    1: (user: <gb>)   change to the bookmarked directory
"    2: (user: <qb>)   list bookmarks
"    3: (browsing)     records current directory history
"    4: (user: <u>)    go up   (previous) directory, using history
"    5: (user: <U>)    go down (next)     directory, using history
"    6: (user: <mB>)   delete bookmark
fun! s:NetrwBookHistHandler(chg,curdir)
"  call Dfunc("s:NetrwBookHistHandler(chg=".a:chg." curdir<".a:curdir.">) cnt=".v:count." histcnt=".g:netrw_dirhist_cnt." histmax=".g:netrw_dirhistmax)
  if !exists("g:netrw_dirhistmax") || g:netrw_dirhistmax <= 0
"   "  call Dret("s:NetrwBookHistHandler - suppressed due to g:netrw_dirhistmax")
   return
  endif

  let ykeep    = @@
  let curbufnr = bufnr("%")

  if a:chg == 0
   " bookmark the current directory
"   call Decho("(user: <b>) bookmark the current directory",'~'.expand("<slnum>"))
   if exists("s:netrwmarkfilelist_{curbufnr}")
    call s:NetrwBookmark(0)
    echo "bookmarked marked files"
   else
    call s:MakeBookmark(a:curdir)
    echo "bookmarked the current directory"
   endif

  elseif a:chg == 1
   " change to the bookmarked directory
"   call Decho("(user: <".v:count."gb>) change to the bookmarked directory",'~'.expand("<slnum>"))
   if exists("g:netrw_bookmarklist[v:count-1]")
"    call Decho("(user: <".v:count."gb>) bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
    exe "NetrwKeepj e ".fnameescape(g:netrw_bookmarklist[v:count-1])
   else
    echomsg "Sorry, bookmark#".v:count." doesn't exist!"
   endif

  elseif a:chg == 2
"   redraw!
   let didwork= 0
   " list user's bookmarks
"   call Decho("(user: <q>) list user's bookmarks",'~'.expand("<slnum>"))
   if exists("g:netrw_bookmarklist")
"    call Decho('list '.len(g:netrw_bookmarklist).' bookmarks','~'.expand("<slnum>"))
    let cnt= 1
    for bmd in g:netrw_bookmarklist
"     call Decho("Netrw Bookmark#".cnt.": ".g:netrw_bookmarklist[cnt-1],'~'.expand("<slnum>"))
     echo printf("Netrw Bookmark#%-2d: %s",cnt,g:netrw_bookmarklist[cnt-1])
     let didwork = 1
     let cnt     = cnt + 1
    endfor
   endif

   " list directory history
   let cnt     = g:netrw_dirhist_cnt
   let first   = 1
   let histcnt = 0
   if g:netrw_dirhistmax > 0
    while ( first || cnt != g:netrw_dirhist_cnt )
"    call Decho("first=".first." cnt=".cnt." dirhist_cnt=".g:netrw_dirhist_cnt,'~'.expand("<slnum>"))
     if exists("g:netrw_dirhist_{cnt}")
"     call Decho("Netrw  History#".histcnt.": ".g:netrw_dirhist_{cnt},'~'.expand("<slnum>"))
      echo printf("Netrw  History#%-2d: %s",histcnt,g:netrw_dirhist_{cnt})
      let didwork= 1
     endif
     let histcnt = histcnt + 1
     let first   = 0
     let cnt     = ( cnt - 1 ) % g:netrw_dirhistmax
     if cnt < 0
      let cnt= cnt + g:netrw_dirhistmax
     endif
    endwhile
   else
    let g:netrw_dirhist_cnt= 0
   endif
   if didwork
    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   endif

  elseif a:chg == 3
   " saves most recently visited directories (when they differ)
"   call Decho("(browsing) record curdir history",'~'.expand("<slnum>"))
   if !exists("g:netrw_dirhist_cnt") || !exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}") || g:netrw_dirhist_{g:netrw_dirhist_cnt} != a:curdir
    if g:netrw_dirhistmax > 0
     let g:netrw_dirhist_cnt                   = ( g:netrw_dirhist_cnt + 1 ) % g:netrw_dirhistmax
     let g:netrw_dirhist_{g:netrw_dirhist_cnt} = a:curdir
    endif
"    call Decho("save dirhist#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">",'~'.expand("<slnum>"))
   endif

  elseif a:chg == 4
   " u: change to the previous directory stored on the history list
"   call Decho("(user: <u>) chg to prev dir from history",'~'.expand("<slnum>"))
   if g:netrw_dirhistmax > 0
    let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt - v:count1 ) % g:netrw_dirhistmax
    if g:netrw_dirhist_cnt < 0
     let g:netrw_dirhist_cnt= g:netrw_dirhist_cnt + g:netrw_dirhistmax
    endif
   else
    let g:netrw_dirhist_cnt= 0
   endif
   if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}")
"    call Decho("changedir u#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">",'~'.expand("<slnum>"))
    if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")
     setl ma noro
"     call Decho("setl ma noro",'~'.expand("<slnum>"))
     sil! NetrwKeepj %d _
     setl nomod
"     call Decho("setl nomod",'~'.expand("<slnum>"))
"     call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
    endif
"    call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}),'~'.expand("<slnum>"))
    exe "NetrwKeepj e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})
   else
    if g:netrw_dirhistmax > 0
     let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt + v:count1 ) % g:netrw_dirhistmax
    else
     let g:netrw_dirhist_cnt= 0
    endif
    echo "Sorry, no predecessor directory exists yet"
   endif

  elseif a:chg == 5
   " U: change to the subsequent directory stored on the history list
"   call Decho("(user: <U>) chg to next dir from history",'~'.expand("<slnum>"))
   if g:netrw_dirhistmax > 0
    let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt + 1 ) % g:netrw_dirhistmax
    if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}")
"    call Decho("changedir U#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">",'~'.expand("<slnum>"))
     if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")
"      call Decho("setl ma noro",'~'.expand("<slnum>"))
      setl ma noro
      sil! NetrwKeepj %d _
"      call Decho("removed all lines from buffer (%d)",'~'.expand("<slnum>"))
"      call Decho("setl nomod",'~'.expand("<slnum>"))
      setl nomod
"      call Decho("(set nomod)  ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
     endif
"    call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}),'~'.expand("<slnum>"))
     exe "NetrwKeepj e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})
    else
     let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt - 1 ) % g:netrw_dirhistmax
     if g:netrw_dirhist_cnt < 0
      let g:netrw_dirhist_cnt= g:netrw_dirhist_cnt + g:netrw_dirhistmax
     endif
     echo "Sorry, no successor directory exists yet"
    endif
   else
    let g:netrw_dirhist_cnt= 0
    echo "Sorry, no successor directory exists yet (g:netrw_dirhistmax is ".g:netrw_dirhistmax.")"
   endif

  elseif a:chg == 6
"   call Decho("(user: <mB>) delete bookmark'd directory",'~'.expand("<slnum>"))
   if exists("s:netrwmarkfilelist_{curbufnr}")
    call s:NetrwBookmark(1)
    echo "removed marked files from bookmarks"
   else
    " delete the v:count'th bookmark
    let iremove = v:count
    let dremove = g:netrw_bookmarklist[iremove - 1]
"    call Decho("delete bookmark#".iremove."<".g:netrw_bookmarklist[iremove - 1].">",'~'.expand("<slnum>"))
    call s:MergeBookmarks()
"    call Decho("remove g:netrw_bookmarklist[".(iremove-1)."]<".g:netrw_bookmarklist[(iremove-1)].">",'~'.expand("<slnum>"))
    NetrwKeepj call remove(g:netrw_bookmarklist,iremove-1)
    echo "removed ".dremove." from g:netrw_bookmarklist"
"    call Decho("g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
   endif
"   call Decho("resulting g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
  endif
  call s:NetrwBookmarkMenu()
  call s:NetrwTgtMenu()
  let @@= ykeep
"  call Dret("s:NetrwBookHistHandler")
endfun

" ---------------------------------------------------------------------
" s:NetrwBookHistRead: this function reads bookmarks and history {{{2
"  Will source the history file (.netrwhist) only if the g:netrw_disthistmax is > 0.
"                      Sister function: s:NetrwBookHistSave()
fun! s:NetrwBookHistRead()
"  call Dfunc("s:NetrwBookHistRead()")
  if !exists("g:netrw_dirhistmax") || g:netrw_dirhistmax <= 0
"   "  call Dret("s:NetrwBookHistRead - suppressed due to g:netrw_dirhistmax")
   return
  endif
  let ykeep= @@
  if !exists("s:netrw_initbookhist")
   let home    = s:NetrwHome()
   let savefile= home."/.netrwbook"
   if filereadable(s:NetrwFile(savefile))
"    call Decho("sourcing .netrwbook",'~'.expand("<slnum>"))
    exe "keepalt NetrwKeepj so ".savefile
   endif
   if g:netrw_dirhistmax > 0
    let savefile= home."/.netrwhist"
    if filereadable(s:NetrwFile(savefile))
"    call Decho("sourcing .netrwhist",'~'.expand("<slnum>"))
     exe "keepalt NetrwKeepj so ".savefile
    endif
    let s:netrw_initbookhist= 1
    au VimLeave * call s:NetrwBookHistSave()
   endif
  endif
  let @@= ykeep
"  call Dret("s:NetrwBookHistRead")
endfun

" ---------------------------------------------------------------------
" s:NetrwBookHistSave: this function saves bookmarks and history {{{2
"                      Sister function: s:NetrwBookHistRead()
"                      I used to do this via viminfo but that appears to
"                      be unreliable for long-term storage
"                      If g:netrw_dirhistmax is <= 0, no history or bookmarks
"                      will be saved.
fun! s:NetrwBookHistSave()
"  call Dfunc("s:NetrwBookHistSave() dirhistmax=".g:netrw_dirhistmax)
  if !exists("g:netrw_dirhistmax") || g:netrw_dirhistmax <= 0
"   call Dret("s:NetrwBookHistSave : dirhistmax=".g:netrw_dirhistmax)
   return
  endif

  let savefile= s:NetrwHome()."/.netrwhist"
  1split
  call s:NetrwEnew()
  if g:netrw_use_noswf
   setl cino= com= cpo-=a cpo-=A fo=nroql2 tw=0 report=10000 noswf
  else
   setl cino= com= cpo-=a cpo-=A fo=nroql2 tw=0 report=10000
  endif
  setl nocin noai noci magic nospell nohid wig= noaw
  setl ma noro write
  if exists("+acd") | setl noacd | endif
  sil! NetrwKeepj keepalt %d _

  " save .netrwhist -- no attempt to merge
  sil! keepalt file .netrwhist
  call setline(1,"let g:netrw_dirhistmax  =".g:netrw_dirhistmax)
  call setline(2,"let g:netrw_dirhist_cnt =".g:netrw_dirhist_cnt)
  let lastline = line("$")
  let cnt      = 1
  while cnt <= g:netrw_dirhist_cnt
   call setline((cnt+lastline),'let g:netrw_dirhist_'.cnt."='".g:netrw_dirhist_{cnt}."'")
   let cnt= cnt + 1
  endwhile
  exe "sil! w! ".savefile

  sil NetrwKeepj %d _
  if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != []
   " merge and write .netrwbook
   let savefile= s:NetrwHome()."/.netrwbook"

   if filereadable(s:NetrwFile(savefile))
    let booklist= deepcopy(g:netrw_bookmarklist)
    exe "sil NetrwKeepj keepalt so ".savefile
    for bdm in booklist
     if index(g:netrw_bookmarklist,bdm) == -1
      call add(g:netrw_bookmarklist,bdm)
     endif
    endfor
    call sort(g:netrw_bookmarklist)
   endif

   " construct and save .netrwbook
   call setline(1,"let g:netrw_bookmarklist= ".string(g:netrw_bookmarklist))
   exe "sil! w! ".savefile
  endif
  let bgone= bufnr("%")
  q!
  exe "keepalt ".bgone."bwipe!"

"  call Dret("s:NetrwBookHistSave")
endfun

" ---------------------------------------------------------------------
" s:NetrwBrowse: This function uses the command in g:netrw_list_cmd to provide a {{{2
"  list of the contents of a local or remote directory.  It is assumed that the
"  g:netrw_list_cmd has a string, USEPORT HOSTNAME, that needs to be substituted
"  with the requested remote hostname first.
"    Often called via:  Explore/e dirname/etc -> netrw#LocalBrowseCheck() -> s:NetrwBrowse()
fun! s:NetrwBrowse(islocal,dirname)
  if !exists("w:netrw_liststyle")|let w:netrw_liststyle= g:netrw_liststyle|endif
"  call Dfunc("s:NetrwBrowse(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".w:netrw_liststyle." ".g:loaded_netrw." buf#".bufnr("%")."<".bufname("%")."> win#".winnr())
"  call Decho("modified=".&modified." modifiable=".&modifiable." readonly=".&readonly,'~'.expand("<slnum>"))
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"  call Dredir("ls!")

  " save alternate-file's filename if w:netrw_rexlocal doesn't exist
  " This is useful when one edits a local file, then :e ., then :Rex
  if a:islocal && !exists("w:netrw_rexfile") && bufname("#") != ""
   let w:netrw_rexfile= bufname("#")
"   call Decho("setting w:netrw_rexfile<".w:netrw_rexfile."> win#".winnr(),'~'.expand("<slnum>"))
  endif

  " s:NetrwBrowse : initialize history {{{3
  if !exists("s:netrw_initbookhist")
   NetrwKeepj call s:NetrwBookHistRead()
  endif

  " s:NetrwBrowse : simplify the dirname (especially for ".."s in dirnames) {{{3
  if a:dirname !~ '^\a\{3,}://'
   let dirname= simplify(a:dirname)
  else
   let dirname= a:dirname
  endif

  if exists("s:netrw_skipbrowse")
   unlet s:netrw_skipbrowse
"   call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." filename<".expand("%")."> win#".winnr()." ft<".&ft.">",'~'.expand("<slnum>"))
"   call Dret("s:NetrwBrowse : s:netrw_skipbrowse existed")
   return
  endif

  " s:NetrwBrowse : sanity checks: {{{3
  if !exists("*shellescape")
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"netrw can't run -- your vim is missing shellescape()",69)
"   call Dret("s:NetrwBrowse : missing shellescape()")
   return
  endif
  if !exists("*fnameescape")
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"netrw can't run -- your vim is missing fnameescape()",70)
"   call Dret("s:NetrwBrowse : missing fnameescape()")
   return
  endif

  " s:NetrwBrowse : save options: {{{3
  call s:NetrwOptionSave("w:")

  " s:NetrwBrowse : re-instate any marked files {{{3
  if exists("s:netrwmarkfilelist_{bufnr('%')}")
"   call Decho("clearing marked files",'~'.expand("<slnum>"))
   exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/"
  endif

  if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep
   " s:NetrwBrowse : set up "safe" options for local directory/file {{{3
"   call Decho("handle w:netrw_acdkeep:",'~'.expand("<slnum>"))
"   call Decho("NetrwKeepj lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")",'~'.expand("<slnum>"))
   call s:NetrwLcd(dirname)
   call s:NetrwSafeOptions()
"   call Decho("getcwd<".getcwd().">",'~'.expand("<slnum>"))

  elseif !a:islocal && dirname !~ '[\/]$' && dirname !~ '^"'
   " s:NetrwBrowse :  remote regular file handler {{{3
"   call Decho("handle remote regular file: dirname<".dirname.">",'~'.expand("<slnum>"))
   if bufname(dirname) != ""
"    call Decho("edit buf#".bufname(dirname)." in win#".winnr(),'~'.expand("<slnum>"))
    exe "NetrwKeepj b ".bufname(dirname)
   else
    " attempt transfer of remote regular file
"    call Decho("attempt transfer as regular file<".dirname.">",'~'.expand("<slnum>"))

    " remove any filetype indicator from end of dirname, except for the
    " "this is a directory" indicator (/).
    " There shouldn't be one of those here, anyway.
    let path= substitute(dirname,'[*=@|]\r\=$','','e')
"    call Decho("new path<".path.">",'~'.expand("<slnum>"))
    call s:RemotePathAnalysis(dirname)

    " s:NetrwBrowse : remote-read the requested file into current buffer {{{3
    call s:NetrwEnew(dirname)
    call s:NetrwSafeOptions()
    setl ma noro
"    call Decho("setl ma noro",'~'.expand("<slnum>"))
    let b:netrw_curdir = dirname
    let url            = s:method."://".((s:user == "")? "" : s:user."@").s:machine.(s:port ? ":".s:port : "")."/".s:path
"    call Decho("exe sil! keepalt file ".fnameescape(url)." (bt=".&bt.")",'~'.expand("<slnum>"))
    exe "sil! NetrwKeepj keepalt file ".fnameescape(url)
    exe "sil! NetrwKeepj keepalt doau BufReadPre ".fnameescape(s:fname)
    sil call netrw#NetRead(2,url)
    " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error
"    call Decho("url<".url.">",'~'.expand("<slnum>"))
"    call Decho("s:path<".s:path.">",'~'.expand("<slnum>"))
"    call Decho("s:fname<".s:fname.">",'~'.expand("<slnum>"))
    if s:path =~ '.bz2'
     exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(substitute(s:fname,'\.bz2$','',''))
    elseif s:path =~ '.gz'
     exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(substitute(s:fname,'\.gz$','',''))
    elseif s:path =~ '.gz'
     exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(substitute(s:fname,'\.txz$','',''))
    else
     exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(s:fname)
    endif
   endif

   " s:NetrwBrowse : save certain window-oriented variables into buffer-oriented variables {{{3
   call s:SetBufWinVars()
   call s:NetrwOptionRestore("w:")
"   call Decho("setl ma nomod",'~'.expand("<slnum>"))
   setl ma nomod noro
"   call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))

"   call Dret("s:NetrwBrowse : file<".s:fname.">")
   return
  endif

  " use buffer-oriented WinVars if buffer variables exist but associated window variables don't {{{3
  call s:UseBufWinVars()

  " set up some variables {{{3
  let b:netrw_browser_active = 1
  let dirname                = dirname
  let s:last_sort_by         = g:netrw_sort_by

  " set up menu {{{3
  NetrwKeepj call s:NetrwMenu(1)

  " get/set-up buffer {{{3
"  call Decho("saving position across a buffer refresh",'~'.expand("<slnum>"))
  let svpos  = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let reusing= s:NetrwGetBuffer(a:islocal,dirname)

  " maintain markfile highlighting
  if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != ""
"   call Decho("bufnr(%)=".bufnr('%'),'~'.expand("<slnum>"))
"   call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/",'~'.expand("<slnum>"))
   exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/"
  else
"   call Decho("2match none",'~'.expand("<slnum>"))
   2match none
  endif
  if reusing && line("$") > 1
   call s:NetrwOptionRestore("w:")
"   call Decho("setl noma nomod nowrap",'~'.expand("<slnum>"))
   setl noma nomod nowrap
"   call Decho("(set noma nomod nowrap)  ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"   call Dret("s:NetrwBrowse : re-using not-cleared buffer")
   return
  endif

  " set b:netrw_curdir to the new directory name {{{3
"  call Decho("set b:netrw_curdir to the new directory name<".dirname."> (buf#".bufnr("%").")",'~'.expand("<slnum>"))
  let b:netrw_curdir= dirname
  if b:netrw_curdir =~ '[/\\]$'
   let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
  endif
  if b:netrw_curdir =~ '\a:$' && (has("win32") || has("win95") || has("win64") || has("win16"))
   let b:netrw_curdir= b:netrw_curdir."/"
  endif
  if b:netrw_curdir == ''
   if has("amiga")
    " On the Amiga, the empty string connotes the current directory
    let b:netrw_curdir= getcwd()
   else
    " under unix, when the root directory is encountered, the result
    " from the preceding substitute is an empty string.
    let b:netrw_curdir= '/'
   endif
  endif
  if !a:islocal && b:netrw_curdir !~ '/$'
   let b:netrw_curdir= b:netrw_curdir.'/'
  endif
"  call Decho("b:netrw_curdir<".b:netrw_curdir.">",'~'.expand("<slnum>"))

  " ------------
  " (local only) {{{3
  " ------------
  if a:islocal
"   call Decho("local only:",'~'.expand("<slnum>"))

   " Set up ShellCmdPost handling.  Append current buffer to browselist
   call s:LocalFastBrowser()

  " handle g:netrw_keepdir: set vim's current directory to netrw's notion of the current directory {{{3
   if !g:netrw_keepdir
"    call Decho("handle g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd,'~'.expand("<slnum>"))
"    call Decho("l:acd".(exists("&l:acd")? "=".&l:acd : " doesn't exist"),'~'.expand("<slnum>"))
    if !exists("&l:acd") || !&l:acd
     call s:NetrwLcd(b:netrw_curdir)
    endif
   endif

  " --------------------------------
  " remote handling: {{{3
  " --------------------------------
  else
"   call Decho("remote only:",'~'.expand("<slnum>"))

   " analyze dirname and g:netrw_list_cmd {{{3
"   call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "doesn't exist")."> dirname<".dirname.">",'~'.expand("<slnum>"))
   if dirname =~# "^NetrwTreeListing\>"
    let dirname= b:netrw_curdir
"    call Decho("(dirname was <NetrwTreeListing>) dirname<".dirname.">",'~'.expand("<slnum>"))
   elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")
    let dirname= substitute(b:netrw_curdir,'\\','/','g')
    if dirname !~ '/$'
     let dirname= dirname.'/'
    endif
    let b:netrw_curdir = dirname
"    call Decho("(liststyle is TREELIST) dirname<".dirname.">",'~'.expand("<slnum>"))
   else
    let dirname = substitute(dirname,'\\','/','g')
"    call Decho("(normal) dirname<".dirname.">",'~'.expand("<slnum>"))
   endif

   let dirpat  = '^\(\w\{-}\)://\(\w\+@\)\=\([^/]\+\)/\(.*\)$'
   if dirname !~ dirpat
    if !exists("g:netrw_quiet")
     NetrwKeepj call netrw#ErrorMsg(s:ERROR,"netrw doesn't understand your dirname<".dirname.">",20)
    endif
    NetrwKeepj call s:NetrwOptionRestore("w:")
"    call Decho("setl noma nomod nowrap",'~'.expand("<slnum>"))
    setl noma nomod nowrap
"    call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"    call Dret("s:NetrwBrowse : badly formatted dirname<".dirname.">")
    return
   endif
   let b:netrw_curdir= dirname
"   call Decho("b:netrw_curdir<".b:netrw_curdir."> (remote)",'~'.expand("<slnum>"))
  endif  " (additional remote handling)

  " -----------------------
  " Directory Listing: {{{3
  " -----------------------
  NetrwKeepj call s:NetrwMaps(a:islocal)
  NetrwKeepj call s:NetrwCommands(a:islocal)
  NetrwKeepj call s:PerformListing(a:islocal)

  " restore option(s)
  call s:NetrwOptionRestore("w:")
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))

  " If there is a rexposn: restore position with rexposn
  " Otherwise            : set rexposn
  if exists("s:rexposn_".bufnr("%"))
"   call Decho("restoring posn to s:rexposn_".bufnr('%')."<".string(s:rexposn_{bufnr('%')}).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(s:rexposn_{bufnr('%')})
   if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt
    NetrwKeepj exe w:netrw_bannercnt
   endif
  else
   NetrwKeepj call s:SetRexDir(a:islocal,b:netrw_curdir)
  endif
  if v:version >= 700 && has("balloon_eval") && &beval == 0 && &l:bexpr == "" && !exists("g:netrw_nobeval")
   let &l:bexpr= "netrw#BalloonHelp()"
"   call Decho("set up balloon help: l:bexpr=".&l:bexpr,'~'.expand("<slnum>"))
   setl beval
  endif

  " restore position
  if reusing
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   call winrestview(svpos)
  endif

  " The s:LocalBrowseRefresh() function is called by an autocmd
  " installed by s:LocalFastBrowser() when g:netrw_fastbrowse <= 1 (ie. slow, medium speed).
  " However, s:NetrwBrowse() causes the FocusGained event to fire the firstt time.
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"  call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"  call Dret("s:NetrwBrowse : did PerformListing  ft<".&ft.">")
  return
endfun

" ---------------------------------------------------------------------
" s:NetrwFile: because of g:netrw_keepdir, isdirectory(), type(), etc may or {{{2
" may not apply correctly; ie. netrw's idea of the current directory may
" differ from vim's.  This function insures that netrw's idea of the current
" directory is used.
fun! s:NetrwFile(fname)
"  call Dfunc("s:NetrwFile(fname<".a:fname.">) win#".winnr())
"  call Decho("g:netrw_keepdir  =".(exists("g:netrw_keepdir")?   g:netrw_keepdir   : 'n/a'),'~'.expand("<slnum>"))
"  call Decho("g:netrw_cygwin   =".(exists("g:netrw_cygwin")?    g:netrw_cygwin    : 'n/a'),'~'.expand("<slnum>"))
"  call Decho("g:netrw_liststyle=".(exists("g:netrw_liststyle")? g:netrw_liststyle : 'n/a'),'~'.expand("<slnum>"))
"  call Decho("w:netrw_liststyle=".(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a'),'~'.expand("<slnum>"))

  " clean up any leading treedepthstring
  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
   let fname= substitute(a:fname,'^'.s:treedepthstring.'\+','','')
"   call Decho("clean up any leading treedepthstring: fname<".fname.">",'~'.expand("<slnum>"))
  else
   let fname= a:fname
  endif

  if g:netrw_keepdir
   " vim's idea of the current directory possibly may differ from netrw's
   if !exists("b:netrw_curdir")
    let b:netrw_curdir= getcwd()
   endif

   if !exists("g:netrw_cygwin") && (has("win32") || has("win95") || has("win64") || has("win16"))
    if fname =~ '^\' || fname =~ '^\a:\'
     " windows, but full path given
     let ret= fname
"     call Decho("windows+full path: isdirectory(".fname.")",'~'.expand("<slnum>"))
    else
     " windows, relative path given
     let ret= s:ComposePath(b:netrw_curdir,fname)
"     call Decho("windows+rltv path: isdirectory(".fname.")",'~'.expand("<slnum>"))
    endif

   elseif fname =~ '^/'
    " not windows, full path given
    let ret= fname
"    call Decho("unix+full path: isdirectory(".fname.")",'~'.expand("<slnum>"))
   else
    " not windows, relative path given
    let ret= s:ComposePath(b:netrw_curdir,fname)
"    call Decho("unix+rltv path: isdirectory(".fname.")",'~'.expand("<slnum>"))
   endif
  else
   " vim and netrw agree on the current directory
   let ret= fname
"   call Decho("vim and netrw agree on current directory (g:netrw_keepdir=".g:netrw_keepdir.")",'~'.expand("<slnum>"))
"   call Decho("vim   directory: ".getcwd(),'~'.expand("<slnum>"))
"   call Decho("netrw directory: ".(exists("b:netrw_curdir")? b:netrw_curdir : 'n/a'),'~'.expand("<slnum>"))
  endif

"  call Dret("s:NetrwFile ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" s:NetrwFileInfo: supports qf (query for file information) {{{2
fun! s:NetrwFileInfo(islocal,fname)
"  call Dfunc("s:NetrwFileInfo(islocal=".a:islocal." fname<".a:fname.">) b:netrw_curdir<".b:netrw_curdir.">")
  let ykeep= @@
  if a:islocal
   let lsopt= "-lsad"
   if g:netrw_sizestyle =~# 'H'
    let lsopt= "-lsadh"
   elseif g:netrw_sizestyle =~# 'h'
    let lsopt= "-lsadh --si"
   endif
   if (has("unix") || has("macunix")) && executable("/bin/ls")

    if getline(".") == "../"
     echo system("/bin/ls ".lsopt." ".s:ShellEscape(".."))
"     call Decho("#1: echo system(/bin/ls -lsad ".s:ShellEscape(..).")",'~'.expand("<slnum>"))

    elseif w:netrw_liststyle == s:TREELIST && getline(".") !~ '^'.s:treedepthstring
     echo system("/bin/ls ".lsopt." ".s:ShellEscape(b:netrw_curdir))
"     call Decho("#2: echo system(/bin/ls -lsad ".s:ShellEscape(b:netrw_curdir).")",'~'.expand("<slnum>"))

    elseif exists("b:netrw_curdir")
      echo system("/bin/ls ".lsopt." ".s:ShellEscape(s:ComposePath(b:netrw_curdir,a:fname)))
"      call Decho("#3: echo system(/bin/ls -lsad ".s:ShellEscape(b:netrw_curdir.a:fname).")",'~'.expand("<slnum>"))

    else
"     call Decho('using ls '.a:fname." using cwd<".getcwd().">",'~'.expand("<slnum>"))
     echo system("/bin/ls ".lsopt." ".s:ShellEscape(s:NetrwFile(a:fname)))
"     call Decho("#5: echo system(/bin/ls -lsad ".s:ShellEscape(a:fname).")",'~'.expand("<slnum>"))
    endif
   else
    " use vim functions to return information about file below cursor
"    call Decho("using vim functions to query for file info",'~'.expand("<slnum>"))
    if !isdirectory(s:NetrwFile(a:fname)) && !filereadable(s:NetrwFile(a:fname)) && a:fname =~ '[*@/]'
     let fname= substitute(a:fname,".$","","")
    else
     let fname= a:fname
    endif
    let t  = getftime(s:NetrwFile(fname))
    let sz = getfsize(s:NetrwFile(fname))
    if g:netrw_sizestyle =~# "[hH]"
     let sz= s:NetrwHumanReadable(sz)
    endif
    echo a:fname.":  ".sz."  ".strftime(g:netrw_timefmt,getftime(s:NetrwFile(fname)))
"    call Decho("fname.":  ".sz."  ".strftime(g:netrw_timefmt,getftime(fname)),'~'.expand("<slnum>"))
   endif
  else
   echo "sorry, \"qf\" not supported yet for remote files"
  endif
  let @@= ykeep
"  call Dret("s:NetrwFileInfo")
endfun

" ---------------------------------------------------------------------
" s:NetrwFullPath: returns the full path to a directory and/or file {{{2
fun! s:NetrwFullPath(filename)
"  " call Dfunc("s:NetrwFullPath(filename<".a:filename.">)")
  let filename= a:filename
  if filename !~ '^/'
   let filename= resolve(getcwd().'/'.filename)
  endif
  if filename != "/" && filename =~ '/$'
   let filename= substitute(filename,'/$','','')
  endif
"  " call Dret("s:NetrwFullPath <".filename.">")
  return filename
endfun

" ---------------------------------------------------------------------
" s:NetrwGetBuffer: {{{2
"   returns 0=cleared buffer
"           1=re-used buffer (buffer not cleared)
fun! s:NetrwGetBuffer(islocal,dirname)
"  call Dfunc("s:NetrwGetBuffer(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".g:netrw_liststyle)
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"  call Decho("netrwbuf dictionary=".string(s:netrwbuf),'~'.expand("<slnum>"))
  let dirname= a:dirname

  " re-use buffer if possible {{{3
"  call Decho("--re-use a buffer if possible--",'~'.expand("<slnum>"))
  if !exists("s:netrwbuf")
   let s:netrwbuf= {}
  endif
  if has_key(s:netrwbuf,s:NetrwFullPath(dirname))
   let bufnum= s:netrwbuf[s:NetrwFullPath(dirname)]
"   call Decho("lookup netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."]=".bufnum)
   if !bufexists(bufnum)
    call remove(s:netrwbuf,s:NetrwFullPath(dirname))
    let bufnum= -1
   endif
  else
"   call Decho("lookup netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."] not a key")
   let bufnum= -1
  endif

  " get enew buffer and name it -or- re-use buffer {{{3
  if bufnum < 0      " get enew buffer and name it
"   call Decho("--get enew buffer and name it  (bufnum#".bufnum."<0 OR bufexists(".bufnum.")=".bufexists(bufnum)."==0)",'~'.expand("<slnum>"))
   call s:NetrwEnew(dirname)
"   call Decho("  got enew buffer#".bufnr("%")." (altbuf<".expand("#").">)",'~'.expand("<slnum>"))
   " name the buffer
   if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
    " Got enew buffer; transform into a NetrwTreeListing
"    call Decho("--transform enew buffer#".bufnr("%")." into a NetrwTreeListing --",'~'.expand("<slnum>"))
    if !exists("s:netrw_treelistnum")
     let s:netrw_treelistnum= 1
    else
     let s:netrw_treelistnum= s:netrw_treelistnum + 1
    endif
    let w:netrw_treebufnr= bufnr("%")
"    call Decho("  exe sil! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum),'~'.expand("<slnum>"))
    exe 'sil! keepalt file NetrwTreeListing\ '.fnameescape(s:netrw_treelistnum)
    if g:netrw_use_noswf
     setl nobl bt=nofile noswf
    else
     setl nobl bt=nofile
    endif
    nnoremap <silent> <buffer> [[       :sil call <SID>TreeListMove('[[')<cr>
    nnoremap <silent> <buffer> ]]       :sil call <SID>TreeListMove(']]')<cr>
    nnoremap <silent> <buffer> []       :sil call <SID>TreeListMove('[]')<cr>
    nnoremap <silent> <buffer> ][       :sil call <SID>TreeListMove('][')<cr>
"    call Decho("  tree listing#".s:netrw_treelistnum." bufnr=".w:netrw_treebufnr,'~'.expand("<slnum>"))
   else
"    let v:errmsg   = "" " Decho
    let escdirname = fnameescape(dirname)
"    call Decho("  errmsg<".v:errmsg."> bufnr(escdirname<".escdirname.">)=".bufnr(escdirname)." bufname()<".bufname(bufnr(escdirname)).">",'~'.expand("<slnum>"))
"    call Decho('  exe sil! keepalt file '.escdirname,'~'.expand("<slnum>"))
"    let v:errmsg= "" " Decho
    exe 'sil! keepj keepalt file '.escdirname
"    call Decho("  errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">",'~'.expand("<slnum>"))
    " enter the new buffer into the s:netrwbuf dictionary
    let s:netrwbuf[s:NetrwFullPath(dirname)]= bufnr("%")
"    call Decho("update netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."]=".bufnr("%"),'~'.expand("<slnum>"))
"    call Decho("netrwbuf dictionary=".string(s:netrwbuf),'~'.expand("<slnum>"))
   endif
"   call Decho("  named enew buffer#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>"))

  else " Re-use the buffer
"   call Decho("--re-use buffer#".bufnum." (bufnum#".bufnum.">=0 AND bufexists(".bufnum.")=".bufexists(bufnum)."!=0)",'~'.expand("<slnum>"))
   let eikeep= &ei
   setl ei=all
   if getline(2) =~# '^" Netrw Directory Listing'
"    call Decho("  getline(2)<".getline(2).'> matches "Netrw Directory Listing" : using keepalt b '.bufnum,'~'.expand("<slnum>"))
    exe "sil! NetrwKeepj noswapfile keepalt b ".bufnum
   else
"    call Decho("  getline(2)<".getline(2).'> does not match "Netrw Directory Listing" : using b '.bufnum,'~'.expand("<slnum>"))
    exe "sil! NetrwKeepj noswapfile keepalt b ".bufnum
   endif
"   call Decho("  line($)=".line("$"),'~'.expand("<slnum>"))
   if bufname("%") == '.'
"    call Decho("exe sil! keepalt file ".fnameescape(getcwd()),'~'.expand("<slnum>"))
    exe "sil! NetrwKeepj keepalt file ".fnameescape(getcwd())
   endif
   let &ei= eikeep

   if line("$") <= 1 && getline(1) == ""
    " empty buffer
    NetrwKeepj call s:NetrwListSettings(a:islocal)
"    call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"    call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"    call Dret("s:NetrwGetBuffer 0<buffer empty> : re-using buffer#".bufnr("%").", but its empty, so refresh it")
    return 0

   elseif g:netrw_fastbrowse == 0 || (a:islocal && g:netrw_fastbrowse == 1)
"    call Decho("g:netrw_fastbrowse=".g:netrw_fastbrowse." a:islocal=".a:islocal.": clear buffer",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwListSettings(a:islocal)
    sil NetrwKeepj %d _
"    call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"    call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"    call Dret("s:NetrwGetBuffer 0<cleared buffer> : re-using buffer#".bufnr("%").", but refreshing due to g:netrw_fastbrowse=".g:netrw_fastbrowse)
    return 0

   elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
"    call Decho("--re-use tree listing--",'~'.expand("<slnum>"))
"    call Decho("  clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>"))
    sil NetrwKeepj %d _
    NetrwKeepj call s:NetrwListSettings(a:islocal)
"    call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"    call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"    call Dret("s:NetrwGetBuffer 0<cleared buffer> : re-using buffer#".bufnr("%").", but treelist mode always needs a refresh")
    return 0

   else
"    call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"    call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"    call Dret("s:NetrwGetBuffer 1<buffer not cleared>")
    return 1
   endif
  endif

  " do netrw settings: make this buffer not-a-file, modifiable, not line-numbered, etc {{{3
  "     fastbrowse  Local  Remote   Hiding a buffer implies it may be re-used (fast)
  "  slow   0         D      D      Deleting a buffer implies it will not be re-used (slow)
  "  med    1         D      H
  "  fast   2         H      H
"  call Decho("--do netrw settings: make this buffer#".bufnr("%")." not-a-file, modifiable, not line-numbered, etc--",'~'.expand("<slnum>"))
  let fname= expand("%")
  NetrwKeepj call s:NetrwListSettings(a:islocal)
"  call Decho("exe sil! keepalt file ".fnameescape(fname),'~'.expand("<slnum>"))
  exe "sil! NetrwKeepj keepalt file ".fnameescape(fname)

  " delete all lines from buffer {{{3
"  call Decho("--delete all lines from buffer--",'~'.expand("<slnum>"))
"  call Decho("  clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>"))
  sil! keepalt NetrwKeepj %d _

"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"  call Dret("s:NetrwGetBuffer 0<cleared buffer>")
  return 0
endfun

" ---------------------------------------------------------------------
" s:NetrwGetcwd: get the current directory. {{{2
"   Change backslashes to forward slashes, if any.
"   If doesc is true, escape certain troublesome characters
fun! s:NetrwGetcwd(doesc)
"  call Dfunc("NetrwGetcwd(doesc=".a:doesc.")")
  let curdir= substitute(getcwd(),'\\','/','ge')
  if curdir !~ '[\/]$'
   let curdir= curdir.'/'
  endif
  if a:doesc
   let curdir= fnameescape(curdir)
  endif
"  call Dret("NetrwGetcwd <".curdir.">")
  return curdir
endfun

" ---------------------------------------------------------------------
"  s:NetrwGetWord: it gets the directory/file named under the cursor {{{2
fun! s:NetrwGetWord()
"  call Dfunc("s:NetrwGetWord() liststyle=".s:ShowStyle()." virtcol=".virtcol("."))
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
  let keepsol= &l:sol
  setl nosol

  call s:UseBufWinVars()

  " insure that w:netrw_liststyle is set up
  if !exists("w:netrw_liststyle")
   if exists("g:netrw_liststyle")
    let w:netrw_liststyle= g:netrw_liststyle
   else
    let w:netrw_liststyle= s:THINLIST
   endif
"   call Decho("w:netrw_liststyle=".w:netrw_liststyle,'~'.expand("<slnum>"))
  endif

  if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt
   " Active Banner support
"   call Decho("active banner handling",'~'.expand("<slnum>"))
   NetrwKeepj norm! 0
   let dirname= "./"
   let curline= getline('.')

   if curline =~# '"\s*Sorted by\s'
    NetrwKeepj norm s
    let s:netrw_skipbrowse= 1
    echo 'Pressing "s" also works'

   elseif curline =~# '"\s*Sort sequence:'
    let s:netrw_skipbrowse= 1
    echo 'Press "S" to edit sorting sequence'

   elseif curline =~# '"\s*Quick Help:'
    NetrwKeepj norm ?
    let s:netrw_skipbrowse= 1

   elseif curline =~# '"\s*\%(Hiding\|Showing\):'
    NetrwKeepj norm a
    let s:netrw_skipbrowse= 1
    echo 'Pressing "a" also works'

   elseif line("$") > w:netrw_bannercnt
    exe 'sil NetrwKeepj '.w:netrw_bannercnt
   endif

  elseif w:netrw_liststyle == s:THINLIST
"   call Decho("thin column handling",'~'.expand("<slnum>"))
   NetrwKeepj norm! 0
   let dirname= substitute(getline('.'),'\t -->.*$','','')

  elseif w:netrw_liststyle == s:LONGLIST
"   call Decho("long column handling",'~'.expand("<slnum>"))
   NetrwKeepj norm! 0
   let dirname= substitute(getline('.'),'^\(\%(\S\+ \)*\S\+\).\{-}$','\1','e')

  elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
"   call Decho("treelist handling",'~'.expand("<slnum>"))
   let dirname= substitute(getline('.'),'^\('.s:treedepthstring.'\)*','','e')
   let dirname= substitute(dirname,'\t -->.*$','','')

  else
"   call Decho("obtain word from wide listing",'~'.expand("<slnum>"))
   let dirname= getline('.')

   if !exists("b:netrw_cpf")
    let b:netrw_cpf= 0
    exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
    call histdel("/",-1)
"   "call Decho("computed cpf=".b:netrw_cpf,'~'.expand("<slnum>"))
   endif

"   call Decho("buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>"))
   let filestart = (virtcol(".")/b:netrw_cpf)*b:netrw_cpf
"   call Decho("filestart= ([virtcol=".virtcol(".")."]/[b:netrw_cpf=".b:netrw_cpf."])*b:netrw_cpf=".filestart."  bannercnt=".w:netrw_bannercnt,'~'.expand("<slnum>"))
"   call Decho("1: dirname<".dirname.">",'~'.expand("<slnum>"))
   if filestart == 0
    NetrwKeepj norm! 0ma
   else
    call cursor(line("."),filestart+1)
    NetrwKeepj norm! ma
   endif
   let rega= @a
   let eofname= filestart + b:netrw_cpf + 1
   if eofname <= col("$")
    call cursor(line("."),filestart+b:netrw_cpf+1)
    NetrwKeepj norm! "ay`a
   else
    NetrwKeepj norm! "ay$
   endif
   let dirname = @a
   let @a      = rega
"   call Decho("2: dirname<".dirname.">",'~'.expand("<slnum>"))
   let dirname= substitute(dirname,'\s\+$','','e')
"   call Decho("3: dirname<".dirname.">",'~'.expand("<slnum>"))
  endif

  " symlinks are indicated by a trailing "@".  Remove it before further processing.
  let dirname= substitute(dirname,"@$","","")

  " executables are indicated by a trailing "*".  Remove it before further processing.
  let dirname= substitute(dirname,"\*$","","")

  let &l:sol= keepsol

"  call Dret("s:NetrwGetWord <".dirname.">")
  return dirname
endfun

" ---------------------------------------------------------------------
" s:NetrwListSettings: make standard settings for a netrw listing {{{2
fun! s:NetrwListSettings(islocal)
"  call Dfunc("s:NetrwListSettings(islocal=".a:islocal.")")
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
  let fname= bufname("%")
"  "  call Decho("(NetrwListSettings) setl bt=nofile nobl ma nonu nowrap noro nornu",'~'.expand("<slnum>"))
  setl bt=nofile nobl ma nonu nowrap noro nornu
"  call Decho("(NetrwListSettings) exe sil! keepalt file ".fnameescape(fname),'~'.expand("<slnum>"))
  exe "sil! keepalt file ".fnameescape(fname)
  if g:netrw_use_noswf
   setl noswf
  endif
"  call Dredir("ls!")
"  call Decho("(NetrwListSettings) exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>"))
  exe "setl ts=".(g:netrw_maxfilenamelen+1)
  setl isk+=.,~,-
  if g:netrw_fastbrowse > a:islocal
   setl bh=hide
  else
   setl bh=delete
  endif
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"  call Dret("s:NetrwListSettings")
endfun

" ---------------------------------------------------------------------
"  s:NetrwListStyle: {{{2
"  islocal=0: remote browsing
"         =1: local browsing
fun! s:NetrwListStyle(islocal)
"  call Dfunc("NetrwListStyle(islocal=".a:islocal.") w:netrw_liststyle=".w:netrw_liststyle)

  let ykeep             = @@
  let fname             = s:NetrwGetWord()
  if !exists("w:netrw_liststyle")|let w:netrw_liststyle= g:netrw_liststyle|endif
  let svpos            = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let w:netrw_liststyle = (w:netrw_liststyle + 1) % s:MAXLIST
"  call Decho("fname<".fname.">",'~'.expand("<slnum>"))
"  call Decho("chgd w:netrw_liststyle to ".w:netrw_liststyle,'~'.expand("<slnum>"))
"  call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "doesn't exist").">",'~'.expand("<slnum>"))

  if w:netrw_liststyle == s:THINLIST
   " use one column listing
"   call Decho("use one column list",'~'.expand("<slnum>"))
   let g:netrw_list_cmd = substitute(g:netrw_list_cmd,' -l','','ge')

  elseif w:netrw_liststyle == s:LONGLIST
   " use long list
"   call Decho("use long list",'~'.expand("<slnum>"))
   let g:netrw_list_cmd = g:netrw_list_cmd." -l"

  elseif w:netrw_liststyle == s:WIDELIST
   " give wide list
"   call Decho("use wide list",'~'.expand("<slnum>"))
   let g:netrw_list_cmd = substitute(g:netrw_list_cmd,' -l','','ge')

  elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
"   call Decho("use tree list",'~'.expand("<slnum>"))
   let g:netrw_list_cmd = substitute(g:netrw_list_cmd,' -l','','ge')

  else
   NetrwKeepj call netrw#ErrorMsg(s:WARNING,"bad value for g:netrw_liststyle (=".w:netrw_liststyle.")",46)
   let g:netrw_liststyle = s:THINLIST
   let w:netrw_liststyle = g:netrw_liststyle
   let g:netrw_list_cmd  = substitute(g:netrw_list_cmd,' -l','','ge')
  endif
  setl ma noro
"  call Decho("setl ma noro",'~'.expand("<slnum>"))

  " clear buffer - this will cause NetrwBrowse/LocalBrowseCheck to do a refresh
"  call Decho("clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>"))
  sil! NetrwKeepj %d _
  " following prevents tree listing buffer from being marked "modified"
"  call Decho("setl nomod",'~'.expand("<slnum>"))
  setl nomod
"  call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))

  " refresh the listing
"  call Decho("refresh the listing",'~'.expand("<slnum>"))
  NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
  NetrwKeepj call s:NetrwCursor()

  " restore position; keep cursor on the filename
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)
  let @@= ykeep

"  call Dret("NetrwListStyle".(exists("w:netrw_liststyle")? ' : w:netrw_liststyle='.w:netrw_liststyle : ""))
endfun

" ---------------------------------------------------------------------
" s:NetrwBannerCtrl: toggles the display of the banner {{{2
fun! s:NetrwBannerCtrl(islocal)
"  call Dfunc("s:NetrwBannerCtrl(islocal=".a:islocal.") g:netrw_banner=".g:netrw_banner)

  let ykeep= @@
  " toggle the banner (enable/suppress)
  let g:netrw_banner= !g:netrw_banner

  " refresh the listing
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))

  " keep cursor on the filename
  let fname= s:NetrwGetWord()
  sil NetrwKeepj $
  let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc')
"  call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A'),'~'.expand("<slnum>"))
  if result <= 0 && exists("w:netrw_bannercnt")
   exe "NetrwKeepj ".w:netrw_bannercnt
  endif
  let @@= ykeep
"  call Dret("s:NetrwBannerCtrl : g:netrw_banner=".g:netrw_banner)
endfun

" ---------------------------------------------------------------------
" s:NetrwBookmark: supports :NetrwMB[!] [file]s                 {{{2
"
"  No bang: enters files/directories into Netrw's bookmark system
"   No argument and in netrw buffer:
"     if there are marked files: bookmark marked files
"     otherwise                : bookmark file/directory under cursor
"   No argument and not in netrw buffer: bookmarks current open file
"   Has arguments: globs them individually and bookmarks them
"
"  With bang: deletes files/directories from Netrw's bookmark system
fun! s:NetrwBookmark(del,...)
"  call Dfunc("s:NetrwBookmark(del=".a:del.",...) a:0=".a:0)
  if a:0 == 0
   if &ft == "netrw"
    let curbufnr = bufnr("%")

    if exists("s:netrwmarkfilelist_{curbufnr}")
     " for every filename in the marked list
"     call Decho("bookmark every filename in marked list",'~'.expand("<slnum>"))
     let svpos  = winsaveview()
"     call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
     let islocal= expand("%") !~ '^\a\{3,}://'
     for fname in s:netrwmarkfilelist_{curbufnr}
      if a:del|call s:DeleteBookmark(fname)|else|call s:MakeBookmark(fname)|endif
     endfor
     let curdir  = exists("b:netrw_curdir")? b:netrw_curdir : getcwd()
     call s:NetrwUnmarkList(curbufnr,curdir)
     NetrwKeepj call s:NetrwRefresh(islocal,s:NetrwBrowseChgDir(islocal,'./'))
"     call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
     NetrwKeepj call winrestview(svpos)
    else
     let fname= s:NetrwGetWord()
     if a:del|call s:DeleteBookmark(fname)|else|call s:MakeBookmark(fname)|endif
    endif

   else
    " bookmark currently open file
"    call Decho("bookmark currently open file",'~'.expand("<slnum>"))
    let fname= expand("%")
    if a:del|call s:DeleteBookmark(fname)|else|call s:MakeBookmark(fname)|endif
   endif

  else
   " bookmark specified files
   "  attempts to infer if working remote or local
   "  by deciding if the current file begins with an url
   "  Globbing cannot be done remotely.
   let islocal= expand("%") !~ '^\a\{3,}://'
"   call Decho("bookmark specified file".((a:0>1)? "s" : ""),'~'.expand("<slnum>"))
   let i = 1
   while i <= a:0
    if islocal
     if v:version > 704 || (v:version == 704 && has("patch656"))
      let mbfiles= glob(fnameescape(a:{i}),0,1,1)
     else
      let mbfiles= glob(fnameescape(a:{i}),0,1)
     endif
    else
     let mbfiles= [a:{i}]
    endif
"    call Decho("mbfiles".string(mbfiles),'~'.expand("<slnum>"))
    for mbfile in mbfiles
"     call Decho("mbfile<".mbfile.">",'~'.expand("<slnum>"))
     if a:del|call s:DeleteBookmark(mbfile)|else|call s:MakeBookmark(mbfile)|endif
    endfor
    let i= i + 1
   endwhile
  endif

  " update the menu
  call s:NetrwBookmarkMenu()

"  call Dret("s:NetrwBookmark")
endfun

" ---------------------------------------------------------------------
" s:NetrwBookmarkMenu: Uses menu priorities {{{2
"                      .2.[cnt] for bookmarks, and
"                      .3.[cnt] for history
"                      (see s:NetrwMenu())
fun! s:NetrwBookmarkMenu()
  if !exists("s:netrw_menucnt")
   return
  endif
"  call Dfunc("NetrwBookmarkMenu()  histcnt=".g:netrw_dirhist_cnt." menucnt=".s:netrw_menucnt)

  " the following test assures that gvim is running, has menus available, and has menus enabled.
  if has("gui") && has("menu") && has("gui_running") && &go =~# 'm' && g:netrw_menu
   if exists("g:NetrwTopLvlMenu")
"    call Decho("removing ".g:NetrwTopLvlMenu."Bookmarks menu item(s)",'~'.expand("<slnum>"))
    exe 'sil! unmenu '.g:NetrwTopLvlMenu.'Bookmarks'
    exe 'sil! unmenu '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete'
   endif
   if !exists("s:netrw_initbookhist")
    call s:NetrwBookHistRead()
   endif

   " show bookmarked places
   if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != [] && g:netrw_dirhistmax > 0
    let cnt= 1
    for bmd in g:netrw_bookmarklist
"     call Decho('sil! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmark.'.bmd.'	:e '.bmd,'~'.expand("<slnum>"))
     let bmd= escape(bmd,g:netrw_menu_escape)

     " show bookmarks for goto menu
     exe 'sil! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks.'.bmd.'	:e '.bmd."\<cr>"

     " show bookmarks for deletion menu
     exe 'sil! menu '.g:NetrwMenuPriority.".8.2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete.'.bmd.'	'.cnt."mB"
     let cnt= cnt + 1
    endfor

   endif

   " show directory browsing history
   if g:netrw_dirhistmax > 0
    let cnt     = g:netrw_dirhist_cnt
    let first   = 1
    let histcnt = 0
    while ( first || cnt != g:netrw_dirhist_cnt )
     let histcnt  = histcnt + 1
     let priority = g:netrw_dirhist_cnt + histcnt
     if exists("g:netrw_dirhist_{cnt}")
      let histdir= escape(g:netrw_dirhist_{cnt},g:netrw_menu_escape)
"     call Decho('sil! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.'	:e '.histdir,'~'.expand("<slnum>"))
      exe 'sil! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.'	:e '.histdir."\<cr>"
     endif
     let first = 0
     let cnt   = ( cnt - 1 ) % g:netrw_dirhistmax
     if cnt < 0
      let cnt= cnt + g:netrw_dirhistmax
     endif
    endwhile
   endif

  endif
"  call Dret("NetrwBookmarkMenu")
endfun

" ---------------------------------------------------------------------
"  s:NetrwBrowseChgDir: constructs a new directory based on the current {{{2
"                       directory and a new directory name.  Also, if the
"                       "new directory name" is actually a file,
"                       NetrwBrowseChgDir() edits the file.
fun! s:NetrwBrowseChgDir(islocal,newdir,...)
"  call Dfunc("s:NetrwBrowseChgDir(islocal=".a:islocal."> newdir<".a:newdir.">) a:0=".a:0." curpos<".string(getpos("."))."> b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "").">")
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))

  let ykeep= @@
  if !exists("b:netrw_curdir")
   " Don't try to change-directory: this can happen, for example, when netrw#ErrorMsg has been called
   " and the current window is the NetrwMessage window.
   let @@= ykeep
"   call Decho("b:netrw_curdir doesn't exist!",'~'.expand("<slnum>"))
"   call Decho("getcwd<".getcwd().">",'~'.expand("<slnum>"))
"   call Dredir("ls!")
"   call Dret("s:NetrwBrowseChgDir")
   return
  endif
"  call Decho("b:netrw_curdir<".b:netrw_curdir.">")

  " NetrwBrowseChgDir: save options and initialize {{{3
"  call Decho("saving options",'~'.expand("<slnum>"))
  call s:SavePosn(s:netrw_nbcd)
  NetrwKeepj call s:NetrwOptionSave("s:")
  NetrwKeepj call s:NetrwSafeOptions()
  if (has("win32") || has("win95") || has("win64") || has("win16"))
   let dirname = substitute(b:netrw_curdir,'\\','/','ge')
  else
   let dirname = b:netrw_curdir
  endif
  let newdir    = a:newdir
  let dolockout = 0
  let dorestore = 1
"  call Decho("dirname<".dirname.">",'~'.expand("<slnum>"))

  " ignore <cr>s when done in the banner
"  call Decho('ignore [return]s when done in banner (g:netrw_banner='.g:netrw_banner.")",'~'.expand("<slnum>"))
  if g:netrw_banner
"   call Decho("w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'n/a')." line(.)#".line('.')." line($)#".line("#"),'~'.expand("<slnum>"))
   if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt && line("$") >= w:netrw_bannercnt
    if getline(".") =~# 'Quick Help'
"     call Decho("#1: quickhelp=".g:netrw_quickhelp." ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
     let g:netrw_quickhelp= (g:netrw_quickhelp + 1)%len(s:QuickHelp)
"     call Decho("#2: quickhelp=".g:netrw_quickhelp." ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
     setl ma noro nowrap
     NetrwKeepj call setline(line('.'),'"   Quick Help: <F1>:help  '.s:QuickHelp[g:netrw_quickhelp])
     setl noma nomod nowrap
     call s:RestorePosn(s:netrw_nbcd)
     NetrwKeepj call s:NetrwOptionRestore("s:")
"     call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
    endif
   endif
"  else " Decho
"   call Decho("(s:NetrwBrowseChgdir) g:netrw_banner=".g:netrw_banner." (no banner)",'~'.expand("<slnum>"))
  endif

  " set up o/s-dependent directory recognition pattern
  if has("amiga")
   let dirpat= '[\/:]$'
  else
   let dirpat= '[\/]$'
  endif
"  call Decho("set up o/s-dependent directory recognition pattern: dirname<".dirname.">  dirpat<".dirpat.">",'~'.expand("<slnum>"))

  if dirname !~ dirpat
   " apparently vim is "recognizing" that it is in a directory and
   " is removing the trailing "/".  Bad idea, so let's put it back.
   let dirname= dirname.'/'
"   call Decho("adjusting dirname<".dirname.'>  (put trailing "/" back)','~'.expand("<slnum>"))
  endif

"  call Decho("[newdir<".newdir."> ".((newdir =~ dirpat)? "=~" : "!~")." dirpat<".dirpat.">] && [islocal=".a:islocal."] && [newdir is ".(isdirectory(s:NetrwFile(newdir))? "" : "not ")."a directory]",'~'.expand("<slnum>"))
  if newdir !~ dirpat && !(a:islocal && isdirectory(s:NetrwFile(s:ComposePath(dirname,newdir))))
   " ------------------------------
   " NetrwBrowseChgDir: edit a file {{{3
   " ------------------------------
"   call Decho('edit-a-file: case "handling a file": newdir<'.newdir.'> !~ dirpat<'.dirpat.">",'~'.expand("<slnum>"))

   " save position for benefit of Rexplore
   let s:rexposn_{bufnr("%")}= winsaveview()
"   call Decho("edit-a-file: saving posn to s:rexposn_".bufnr("%")."<".string(s:rexposn_{bufnr("%")}).">",'~'.expand("<slnum>"))
"   call Decho("edit-a-file: win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> ft=".&ft,'~'.expand("<slnum>"))
"   call Decho("edit-a-file: w:netrw_liststyle=".(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a')." w:netrw_treedict:".(exists("w:netrw_treedict")? "exists" : 'n/a')." newdir<".newdir.">",'~'.expand("<slnum>"))

   if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") && newdir !~ '^\(/\|\a:\)'
"    call Decho("edit-a-file: handle tree listing: w:netrw_treedict<".(exists("w:netrw_treedict")? string(w:netrw_treedict) : 'n/a').">",'~'.expand("<slnum>"))
"    call Decho("edit-a-file: newdir<".newdir.">",'~'.expand("<slnum>"))
    let dirname= s:NetrwTreeDir(a:islocal)
    if dirname =~ '/$'
     let dirname= dirname.newdir
    else
     let dirname= dirname."/".newdir
    endif
"    call Decho("edit-a-file: dirname<".dirname.">",'~'.expand("<slnum>"))
"    call Decho("edit-a-file: tree listing",'~'.expand("<slnum>"))
   elseif newdir =~ '^\(/\|\a:\)'
"    call Decho("edit-a-file: handle an url or path starting with /: <".newdir.">",'~'.expand("<slnum>"))
    let dirname= newdir
   else
    let dirname= s:ComposePath(dirname,newdir)
   endif
"   call Decho("edit-a-file: handling a file: dirname<".dirname."> (a:0=".a:0.")",'~'.expand("<slnum>"))
   " this lets netrw#BrowseX avoid the edit
   if a:0 < 1
"    call Decho("edit-a-file: (a:0=".a:0."<1) set up windows for editing<".fnameescape(dirname).">  didsplit=".(exists("s:didsplit")? s:didsplit : "doesn't exist"),'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwOptionRestore("s:")
    let curdir= b:netrw_curdir
    if !exists("s:didsplit")
"     call Decho("edit-a-file: s:didsplit does not exist; g:netrw_browse_split=".string(g:netrw_browse_split)." win#".winnr(),'~'.expand("<slnum>"))
     if type(g:netrw_browse_split) == 3
      " open file in server
      " Note that g:netrw_browse_split is a List: [servername,tabnr,winnr]
"      call Decho("edit-a-file: open file in server",'~'.expand("<slnum>"))
      call s:NetrwServerEdit(a:islocal,dirname)
"      call Dret("s:NetrwBrowseChgDir")
      return
     elseif g:netrw_browse_split == 1
      " horizontally splitting the window first
"      call Decho("edit-a-file: horizontally splitting window prior to edit",'~'.expand("<slnum>"))
      keepalt new
      if !&ea
       keepalt wincmd _
      endif
      call s:SetRexDir(a:islocal,curdir)
     elseif g:netrw_browse_split == 2
      " vertically splitting the window first
"      call Decho("edit-a-file: vertically splitting window prior to edit",'~'.expand("<slnum>"))
      keepalt rightb vert new
      if !&ea
       keepalt wincmd |
      endif
      call s:SetRexDir(a:islocal,curdir)
     elseif g:netrw_browse_split == 3
      " open file in new tab
"      call Decho("edit-a-file: opening new tab prior to edit",'~'.expand("<slnum>"))
      keepalt tabnew
      if !exists("b:netrw_curdir")
       let b:netrw_curdir= getcwd()
      endif
      call s:SetRexDir(a:islocal,curdir)
     elseif g:netrw_browse_split == 4
      " act like "P" (ie. open previous window)
"      call Decho("edit-a-file: use previous window for edit",'~'.expand("<slnum>"))
      if s:NetrwPrevWinOpen(2) == 3
       let @@= ykeep
"       call Dret("s:NetrwBrowseChgDir")
       return
      endif
      call s:SetRexDir(a:islocal,curdir)
     else
      " handling a file, didn't split, so remove menu
"      call Decho("edit-a-file: handling a file+didn't split, so remove menu",'~'.expand("<slnum>"))
      call s:NetrwMenu(0)
      " optional change to window
      if g:netrw_chgwin >= 1
"       call Decho("edit-a-file: changing window to #".g:netrw_chgwin,'~'.expand("<slnum>"))
       if winnr("$")+1 == g:netrw_chgwin
	" if g:netrw_chgwin is set to one more than the last window, then
	" vertically split the last window to make that window available.
	let curwin= winnr()
	exe "NetrwKeepj keepalt ".winnr("$")."wincmd w"
	vs
	exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd ".curwin
       endif
       exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd w"
      endif
      call s:SetRexDir(a:islocal,curdir)
     endif
    endif

    " the point where netrw actually edits the (local) file
    " if its local only: LocalBrowseCheck() doesn't edit a file, but NetrwBrowse() will
    " no keepalt to support  :e #  to return to a directory listing
    if a:islocal
"     call Decho("edit-a-file: edit local file: exe e! ".fnameescape(dirname),'~'.expand("<slnum>"))
     " some like c-^ to return to the last edited file
     " others like c-^ to return to the netrw buffer
     if exists("g:netrw_altfile") && g:netrw_altfile
      exe "NetrwKeepj keepalt e! ".fnameescape(dirname)
     else
      exe "NetrwKeepj e! ".fnameescape(dirname)
     endif
"     call Decho("edit-a-file: after e! ".dirname.": hidden=".&hidden." bufhidden<".&bufhidden."> mod=".&mod,'~'.expand("<slnum>"))
     call s:NetrwCursor()
     if &hidden || &bufhidden == "hide"
      " file came from vim's hidden storage.  Don't "restore" options with it.
      let dorestore= 0
     endif
    else
"     call Decho("edit-a-file: remote file: NetrwBrowse will edit it",'~'.expand("<slnum>"))
    endif
    let dolockout= 1

    " handle g:Netrw_funcref -- call external-to-netrw functions
    "   This code will handle g:Netrw_funcref as an individual function reference
    "   or as a list of function references.  It will ignore anything that's not
    "   a function reference.  See  :help Funcref  for information about function references.
    if exists("g:Netrw_funcref")
"     call Decho("edit-a-file: handle optional Funcrefs",'~'.expand("<slnum>"))
     if type(g:Netrw_funcref) == 2
"      call Decho("edit-a-file: handling a g:Netrw_funcref",'~'.expand("<slnum>"))
      NetrwKeepj call g:Netrw_funcref()
     elseif type(g:Netrw_funcref) == 3
"      call Decho("edit-a-file: handling a list of g:Netrw_funcrefs",'~'.expand("<slnum>"))
      for Fncref in g:Netrw_funcref
       if type(FncRef) == 2
        NetrwKeepj call FncRef()
       endif
      endfor
     endif
    endif
   endif

  elseif newdir =~ '^/'
   " ----------------------------------------------------
   " NetrwBrowseChgDir: just go to the new directory spec {{{3
   " ----------------------------------------------------
"   call Decho('goto-newdir: case "just go to new directory spec": newdir<'.newdir.'>','~'.expand("<slnum>"))
   let dirname = newdir
   NetrwKeepj call s:SetRexDir(a:islocal,dirname)
   NetrwKeepj call s:NetrwOptionRestore("s:")
   norm! m`

  elseif newdir == './'
   " ---------------------------------------------
   " NetrwBrowseChgDir: refresh the directory list {{{3
   " ---------------------------------------------
"   call Decho('refresh-dirlist: case "refresh directory listing": newdir == "./"','~'.expand("<slnum>"))
   NetrwKeepj call s:SetRexDir(a:islocal,dirname)
   norm! m`

  elseif newdir == '../'
   " --------------------------------------
   " NetrwBrowseChgDir: go up one directory {{{3
   " --------------------------------------
"   call Decho('go-up: case "go up one directory": newdir == "../"','~'.expand("<slnum>"))

   if w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
    " force a refresh
"    call Decho("go-up: clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>"))
"    call Decho("go-up: setl noro ma",'~'.expand("<slnum>"))
    setl noro ma
    NetrwKeepj %d _
   endif

   if has("amiga")
    " amiga
"    call Decho('go-up: case "go up one directory": newdir == "../" and amiga','~'.expand("<slnum>"))
    if a:islocal
     let dirname= substitute(dirname,'^\(.*[/:]\)\([^/]\+$\)','\1','')
     let dirname= substitute(dirname,'/$','','')
    else
     let dirname= substitute(dirname,'^\(.*[/:]\)\([^/]\+/$\)','\1','')
    endif
"    call Decho("go-up: amiga: dirname<".dirname."> (go up one dir)",'~'.expand("<slnum>"))

   elseif !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
    " windows
    if a:islocal
     let dirname= substitute(dirname,'^\(.*\)/\([^/]\+\)/$','\1','')
     if dirname == ""
      let dirname= '/'
     endif
    else
     let dirname= substitute(dirname,'^\(\a\{3,}://.\{-}/\{1,2}\)\(.\{-}\)\([^/]\+\)/$','\1\2','')
    endif
    if dirname =~ '^\a:$'
     let dirname= dirname.'/'
    endif
"    call Decho("go-up: windows: dirname<".dirname."> (go up one dir)",'~'.expand("<slnum>"))

   else
    " unix or cygwin
"    call Decho('go-up: case "go up one directory": newdir == "../" and unix or cygwin','~'.expand("<slnum>"))
    if a:islocal
     let dirname= substitute(dirname,'^\(.*\)/\([^/]\+\)/$','\1','')
     if dirname == ""
      let dirname= '/'
     endif
    else
     let dirname= substitute(dirname,'^\(\a\{3,}://.\{-}/\{1,2}\)\(.\{-}\)\([^/]\+\)/$','\1\2','')
    endif
"    call Decho("go-up: unix: dirname<".dirname."> (go up one dir)",'~'.expand("<slnum>"))
   endif
   NetrwKeepj call s:SetRexDir(a:islocal,dirname)
   norm m`

  elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
   " --------------------------------------
   " NetrwBrowseChgDir: Handle Tree Listing {{{3
   " --------------------------------------
"   call Decho('tree-list: case liststyle is TREELIST and w:netrw_treedict exists','~'.expand("<slnum>"))
   " force a refresh (for TREELIST, NetrwTreeDir() will force the refresh)
"   call Decho("tree-list: setl noro ma",'~'.expand("<slnum>"))
   setl noro ma
   if !(exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir"))
"    call Decho("tree-list: clear buffer<".expand("%")."> with :%d  (force refresh)",'~'.expand("<slnum>"))
    NetrwKeepj %d _
   endif
   let treedir      = s:NetrwTreeDir(a:islocal)
"   call Decho("tree-list: treedir<".treedir.">",'~'.expand("<slnum>"))
   let s:treecurpos = winsaveview()
   let haskey       = 0
"   call Decho("tree-list: w:netrw_treedict<".string(w:netrw_treedict).">",'~'.expand("<slnum>"))

   " search treedict for tree dir as-is
"   call Decho("tree-list: search treedict for tree dir as-is",'~'.expand("<slnum>"))
   if has_key(w:netrw_treedict,treedir)
"    call Decho('tree-list: ....searched for treedir<'.treedir.'> : found it!','~'.expand("<slnum>"))
    let haskey= 1
   else
"    call Decho('tree-list: ....searched for treedir<'.treedir.'> : not found','~'.expand("<slnum>"))
   endif

   " search treedict for treedir with a [/@] appended
"   call Decho("tree-list: search treedict for treedir with a [/@] appended",'~'.expand("<slnum>"))
   if !haskey && treedir !~ '[/@]$'
    if has_key(w:netrw_treedict,treedir."/")
     let treedir= treedir."/"
"     call Decho('tree-list: ....searched.for treedir<'.treedir.'> found it!','~'.expand("<slnum>"))
     let haskey = 1
    else
"     call Decho('tree-list: ....searched for treedir<'.treedir.'/> : not found','~'.expand("<slnum>"))
    endif
   endif

   " search treedict for treedir with any trailing / elided
"   call Decho("tree-list: search treedict for treedir with any trailing / elided",'~'.expand("<slnum>"))
   if !haskey && treedir =~ '/$'
    let treedir= substitute(treedir,'/$','','')
    if has_key(w:netrw_treedict,treedir)
"     call Decho('tree-list: ....searched.for treedir<'.treedir.'> found it!','~'.expand("<slnum>"))
     let haskey = 1
    else
"     call Decho('tree-list: ....searched for treedir<'.treedir.'> : not found','~'.expand("<slnum>"))
    endif
   endif

"   call Decho("haskey=".haskey,'~'.expand("<slnum>"))
   if haskey
    " close tree listing for selected subdirectory
"    call Decho("tree-list: closing selected subdirectory<".dirname.">",'~'.expand("<slnum>"))
    call remove(w:netrw_treedict,treedir)
"    call Decho("tree-list: removed     entry<".treedir."> from treedict",'~'.expand("<slnum>"))
"    call Decho("tree-list: yielding treedict<".string(w:netrw_treedict).">",'~'.expand("<slnum>"))
    let dirname= w:netrw_treetop
   else
    " go down one directory
    let dirname= substitute(treedir,'/*$','/','')
"    call Decho("tree-list: go down one dir: treedir<".treedir.">",'~'.expand("<slnum>"))
"    call Decho("tree-list: ...            : dirname<".dirname.">",'~'.expand("<slnum>"))
   endif
   NetrwKeepj call s:SetRexDir(a:islocal,dirname)
"   call Decho("setting s:treeforceredraw to true",'~'.expand("<slnum>"))
   let s:treeforceredraw = 1

  else
   " ----------------------------------------
   " NetrwBrowseChgDir: Go down one directory {{{3
   " ----------------------------------------
   let dirname    = s:ComposePath(dirname,newdir)
"   call Decho("go down one dir: dirname<".dirname."> newdir<".newdir.">",'~'.expand("<slnum>"))
   NetrwKeepj call s:SetRexDir(a:islocal,dirname)
   norm m`
  endif

 " --------------------------------------
 " NetrwBrowseChgDir: Restore and Cleanup {{{3
 " --------------------------------------
  if dorestore
   " dorestore is zero'd when a local file was hidden or bufhidden;
   " in such a case, we want to keep whatever settings it may have.
"   call Decho("doing option restore (dorestore=".dorestore.")",'~'.expand("<slnum>"))
   NetrwKeepj call s:NetrwOptionRestore("s:")
"  else " Decho
"   call Decho("skipping option restore (dorestore==0): hidden=".&hidden." bufhidden=".&bufhidden." mod=".&mod,'~'.expand("<slnum>"))
  endif
  call s:RestorePosn(s:netrw_nbcd)
  if dolockout && dorestore
"   call Decho("restore: filewritable(dirname<".dirname.">)=".filewritable(dirname),'~'.expand("<slnum>"))
   if filewritable(dirname)
"    call Decho("restore: doing modification lockout settings: ma nomod noro",'~'.expand("<slnum>"))
"    call Decho("restore: setl ma nomod noro",'~'.expand("<slnum>"))
    setl ma noro nomod
"    call Decho("restore: ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
   else
"    call Decho("restore: doing modification lockout settings: ma nomod ro",'~'.expand("<slnum>"))
"    call Decho("restore: setl ma nomod noro",'~'.expand("<slnum>"))
    setl ma ro nomod
"    call Decho("restore: ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
   endif
  endif
  let @@= ykeep

"  call Dret("s:NetrwBrowseChgDir <".dirname."> : curpos<".string(getpos(".")).">")
  return dirname
endfun

" ---------------------------------------------------------------------
" s:NetrwBrowseUpDir: implements the "-" mappings {{{2
"    for thin, long, and wide: cursor placed just after banner
"    for tree, keeps cursor on current filename
fun! s:NetrwBrowseUpDir(islocal)
"  call Dfunc("s:NetrwBrowseUpDir(islocal=".a:islocal.")")
  if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt-1
   " this test needed because occasionally this function seems to be incorrectly called
   " when multiple leftmouse clicks are taken when atop the one line help in the banner.
   " I'm allowing the very bottom line to permit a "-" exit so that one may escape empty
   " directories.
"   call Dret("s:NetrwBrowseUpDir : cursor not in file area")
   return
  endif

  if !exists("w:netrw_liststyle") || w:netrw_liststyle != s:TREELIST
   call s:SavePosn(s:netrw_nbcd)
  endif

  norm! 0
  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
"   call Decho("case: treestyle",'~'.expand("<slnum>"))
   let curline= getline(".")
   let swwline= winline() - 1
   if exists("w:netrw_treetop")
    let b:netrw_curdir= w:netrw_treetop
   endif
   let curdir= b:netrw_curdir
   if a:islocal
    call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,'../'))
   else
    call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,'../'))
   endif
   if !search('\c^'.s:treedepthstring.curline,'cw')
    if !search('\c^'.curline,'cw')
     sil! NetrwKeepj 1
    endif
   endif
   exe "sil! NetrwKeepj norm! z\<cr>"
   while winline() < swwline
    let curwinline= winline()
    exe "sil! NetrwKeepj norm! \<c-y>"
    if curwinline == winline()
     break
    endif
   endwhile
  else
"   call Decho("case: not treestyle",'~'.expand("<slnum>"))
   if exists("b:netrw_curdir")
    let curdir= b:netrw_curdir
   else
    let curdir= expand(getcwd())
   endif
   if a:islocal
    call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,'../'))
   else
    call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,'../'))
   endif
   if has_key(s:netrw_nbcd,bufnr("%"))
    call s:RestorePosn(s:netrw_nbcd)
   elseif exists("w:netrw_bannercnt")
"    call Decho("moving to line#".w:netrw_bannercnt,'~'.expand("<slnum>"))
    exe w:netrw_bannercnt
   else
    1
   endif
  endif
  let curdir= substitute(curdir,'^.*[\/]','','')
  call search('\<'.curdir.'\>','wc')
"  call Dret("s:NetrwBrowseUpDir")
endfun

" ---------------------------------------------------------------------
" netrw#BrowseX:  (implements "x") executes a special "viewer" script or program for the {{{2
"              given filename; typically this means given their extension.
"              0=local, 1=remote
fun! netrw#BrowseX(fname,remote)
"  call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")")

  " if its really just a directory, then do a "gf" instead
  if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && fname =~ '/$' && fname !~ '^https\=:')
   norm! gf
"   call Dret("netrw#BrowseX : did gf instead")
  endif


  let ykeep      = @@
  let screenposn = winsaveview()
"  call Decho("saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))

  " need to save and restore aw setting as gx can invoke this function from non-netrw buffers
  let awkeep     = &aw
  set noaw

  " special core dump handler
  if a:fname =~ '/core\(\.\d\+\)\=$'
   if exists("g:Netrw_corehandler")
    if type(g:Netrw_corehandler) == 2
     " g:Netrw_corehandler is a function reference (see :help Funcref)
"     call Decho("g:Netrw_corehandler is a funcref",'~'.expand("<slnum>"))
     call g:Netrw_corehandler(s:NetrwFile(a:fname))
    elseif type(g:Netrw_corehandler) == 3
     " g:Netrw_corehandler is a List of function references (see :help Funcref)
"     call Decho("g:Netrw_corehandler is a List",'~'.expand("<slnum>"))
     for Fncref in g:Netrw_corehandler
      if type(FncRef) == 2
       call FncRef(a:fname)
      endif
     endfor
    endif
"    call Decho("restoring posn to screenposn<".string(screenposn).">,'~'.expand("<slnum>"))"
    call winrestview(screenposn)
    let @@= ykeep
    let &aw= awkeep
"    call Dret("netrw#BrowseX : coredump handler invoked")
    return
   endif
  endif

  " set up the filename
  " (lower case the extension, make a local copy of a remote file)
  let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e')
  if has("win32") || has("win95") || has("win64") || has("win16")
   let exten= substitute(exten,'^.*$','\L&\E','')
  endif
"  call Decho("exten<".exten.">",'~'.expand("<slnum>"))

  if a:remote == 1
   " create a local copy
"   call Decho("remote: a:remote=".a:remote.": create a local copy of <".a:fname.">",'~'.expand("<slnum>"))
   setl bh=delete
   call netrw#NetRead(3,a:fname)
   " attempt to rename tempfile
   let basename= substitute(a:fname,'^\(.*\)/\(.*\)\.\([^.]*\)$','\2','')
   let newname = substitute(s:netrw_tmpfile,'^\(.*\)/\(.*\)\.\([^.]*\)$','\1/'.basename.'.\3','')
"   call Decho("basename<".basename.">",'~'.expand("<slnum>"))
"   call Decho("newname <".newname.">",'~'.expand("<slnum>"))
   if rename(s:netrw_tmpfile,newname) == 0
    " renaming succeeded
    let fname= newname
   else
    " renaming failed
    let fname= s:netrw_tmpfile
   endif
  else
"   call Decho("local: a:remote=".a:remote.": handling local copy of <".a:fname.">",'~'.expand("<slnum>"))
   let fname= a:fname
   " special ~ handler for local
   if fname =~ '^\~' && expand("$HOME") != ""
"    call Decho('invoking special ~ handler','~'.expand("<slnum>"))
    let fname= s:NetrwFile(substitute(fname,'^\~',expand("$HOME"),''))
   endif
  endif
"  call Decho("fname<".fname.">",'~'.expand("<slnum>"))
"  call Decho("exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten),'~'.expand("<slnum>"))

  " set up redirection (avoids browser messages)
  " by default, g:netrw_suppress_gx_mesg is true
  if g:netrw_suppress_gx_mesg
   if &srr =~ "%s"
    if (has("win32") || has("win95") || has("win64") || has("win16"))
     let redir= substitute(&srr,"%s","nul","")
    else
     let redir= substitute(&srr,"%s","/dev/null","")
    endif
   elseif (has("win32") || has("win95") || has("win64") || has("win16"))
    let redir= &srr . "nul"
   else
    let redir= &srr . "/dev/null"
   endif
  endif
"  call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>"))

  " extract any viewing options.  Assumes that they're set apart by quotes.
"  call Decho("extract any viewing options",'~'.expand("<slnum>"))
  if exists("g:netrw_browsex_viewer")
"   call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
   if g:netrw_browsex_viewer =~ '\s'
    let viewer  = substitute(g:netrw_browsex_viewer,'\s.*$','','')
    let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." "
    let oviewer = ''
    let cnt     = 1
    while !executable(viewer) && viewer != oviewer
     let viewer  = substitute(g:netrw_browsex_viewer,'^\(\(^\S\+\s\+\)\{'.cnt.'}\S\+\)\(.*\)$','\1','')
     let viewopt = substitute(g:netrw_browsex_viewer,'^\(\(^\S\+\s\+\)\{'.cnt.'}\S\+\)\(.*\)$','\3','')." "
     let cnt     = cnt + 1
     let oviewer = viewer
"     call Decho("!exe: viewer<".viewer.">  viewopt<".viewopt.">",'~'.expand("<slnum>"))
    endwhile
   else
    let viewer  = g:netrw_browsex_viewer
    let viewopt = ""
   endif
"   call Decho("viewer<".viewer.">  viewopt<".viewopt.">",'~'.expand("<slnum>"))
  endif

  " execute the file handler
"  call Decho("execute the file handler (if any)",'~'.expand("<slnum>"))
  if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-'
"   call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
   let ret= netrwFileHandlers#Invoke(exten,fname)

  elseif exists("g:netrw_browsex_viewer") && executable(viewer)
"   call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
   call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir)
   let ret= v:shell_error

  elseif has("win32") || has("win64")
"   call Decho("windows",'~'.expand("<slnum>"))
   if executable("start")
    call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
   elseif executable("rundll32")
    call s:NetrwExe('sil! !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
   else
    call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
   endif
   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   let ret= v:shell_error

  elseif has("win32unix")
   let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g')
"   call Decho("cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>"))
   if executable("start")
    call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
   elseif executable("rundll32")
    call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
   elseif executable("cygstart")
    call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1))
   else
    call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
   endif
   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
   let ret= v:shell_error

  elseif has("unix") && executable("kfmclient") && s:CheckIfKde()
"   call Decho("unix and kfmclient",'~'.expand("<slnum>"))
   call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir)
   let ret= v:shell_error

  elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid")
"   call Decho("unix, exo-open, xdg-open",'~'.expand("<slnum>"))
   call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir)
   let ret= v:shell_error

  elseif has("unix") && executable("xdg-open")
"   call Decho("unix and xdg-open",'~'.expand("<slnum>"))
   call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir)
   let ret= v:shell_error

  elseif has("macunix") && executable("open")
"   call Decho("macunix and open",'~'.expand("<slnum>"))
   call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir)
   let ret= v:shell_error

  else
   " netrwFileHandlers#Invoke() always returns 0
   let ret= netrwFileHandlers#Invoke(exten,fname)
  endif

  " if unsuccessful, attempt netrwFileHandlers#Invoke()
  if ret
   let ret= netrwFileHandlers#Invoke(exten,fname)
  endif

  " restoring redraw! after external file handlers
  redraw!

  " cleanup: remove temporary file,
  "          delete current buffer if success with handler,
  "          return to prior buffer (directory listing)
  "          Feb 12, 2008: had to de-activiate removal of
  "          temporary file because it wasn't getting seen.
"  if a:remote == 1 && fname != a:fname
""   call Decho("deleting temporary file<".fname.">",'~'.expand("<slnum>"))
"   call s:NetrwDelete(fname)
"  endif

  if a:remote == 1
   setl bh=delete bt=nofile
   if g:netrw_use_noswf
    setl noswf
   endif
   exe "sil! NetrwKeepj norm! \<c-o>"
"   redraw!
  endif
"  call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
  call winrestview(screenposn)
  let @@ = ykeep
  let &aw= awkeep

"  call Dret("netrw#BrowseX")
endfun

" ---------------------------------------------------------------------
" netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2
fun! netrw#BrowseXVis()
"  call Dfunc("netrw#BrowseXVis()")
  let atkeep = @@
  norm! gvy
"  call Decho("@@<".@@.">",'~'.expand("<slnum>"))
  call netrw#BrowseX(@@,netrw#CheckIfRemote())
  let @@     = atkeep
"  call Dret("netrw#BrowseXVis")
endfun

" ---------------------------------------------------------------------
" netrw#CheckIfRemote: returns 1 if current file looks like an url, 0 else {{{2
fun! netrw#CheckIfRemote()
"  call Dfunc("netrw#CheckIfRemote()")
  if expand("%") =~ '^\a\{3,}://'
"   call Dret("netrw#CheckIfRemote 1")
   return 1
  else
"   call Dret("netrw#CheckIfRemote 0")
   return 0
  endif
endfun

" ---------------------------------------------------------------------
" s:NetrwChgPerm: (implements "gp") change file permission {{{2
fun! s:NetrwChgPerm(islocal,curdir)
"  call Dfunc("s:NetrwChgPerm(islocal=".a:islocal." curdir<".a:curdir.">)")
  let ykeep  = @@
  call inputsave()
  let newperm= input("Enter new permission: ")
  call inputrestore()
  let chgperm= substitute(g:netrw_chgperm,'\<FILENAME\>',s:ShellEscape(expand("<cfile>")),'')
  let chgperm= substitute(chgperm,'\<PERM\>',s:ShellEscape(newperm),'')
"  call Decho("chgperm<".chgperm.">",'~'.expand("<slnum>"))
  call system(chgperm)
  if v:shell_error != 0
   NetrwKeepj call netrw#ErrorMsg(1,"changing permission on file<".expand("<cfile>")."> seems to have failed",75)
  endif
  if a:islocal
   NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
  endif
  let @@= ykeep
"  call Dret("s:NetrwChgPerm")
endfun

" ---------------------------------------------------------------------
" s:CheckIfKde: checks if kdeinit is running {{{2
"    Returns 0: kdeinit not running
"            1: kdeinit is  running
fun! s:CheckIfKde()
"  call Dfunc("s:CheckIfKde()")
  " seems kde systems often have gnome-open due to dependencies, even though
  " gnome-open's subsidiary display tools are largely absent.  Kde systems
  " usually have "kdeinit" running, though...  (tnx Mikolaj Machowski)
  if !exists("s:haskdeinit")
   if has("unix") && executable("ps") && !has("win32unix")
    let s:haskdeinit= system("ps -e") =~ '\<kdeinit'
    if v:shell_error
     let s:haskdeinit = 0
    endif
   else
    let s:haskdeinit= 0
   endif
"   call Decho("setting s:haskdeinit=".s:haskdeinit,'~'.expand("<slnum>"))
  endif

"  call Dret("s:CheckIfKde ".s:haskdeinit)
  return s:haskdeinit
endfun

" ---------------------------------------------------------------------
" s:NetrwClearExplore: clear explore variables (if any) {{{2
fun! s:NetrwClearExplore()
"  call Dfunc("s:NetrwClearExplore()")
  2match none
  if exists("s:explore_match")        |unlet s:explore_match        |endif
  if exists("s:explore_indx")         |unlet s:explore_indx         |endif
  if exists("s:netrw_explore_prvdir") |unlet s:netrw_explore_prvdir |endif
  if exists("s:dirstarstar")          |unlet s:dirstarstar          |endif
  if exists("s:explore_prvdir")       |unlet s:explore_prvdir       |endif
  if exists("w:netrw_explore_indx")   |unlet w:netrw_explore_indx   |endif
  if exists("w:netrw_explore_listlen")|unlet w:netrw_explore_listlen|endif
  if exists("w:netrw_explore_list")   |unlet w:netrw_explore_list   |endif
  if exists("w:netrw_explore_bufnr")  |unlet w:netrw_explore_bufnr  |endif
"   redraw!
  echo " "
  echo " "
"  call Dret("s:NetrwClearExplore")
endfun

" ---------------------------------------------------------------------
" s:NetrwExploreListUniq: {{{2
fun! s:NetrwExploreListUniq(explist)
"  call Dfunc("s:NetrwExploreListUniq(explist<".string(a:explist).">)")

  " this assumes that the list is already sorted
  let newexplist= []
  for member in a:explist
   if !exists("uniqmember") || member != uniqmember
    let uniqmember = member
    let newexplist = newexplist + [ member ]
   endif
  endfor

"  call Dret("s:NetrwExploreListUniq newexplist<".string(newexplist).">")
  return newexplist
endfun

" ---------------------------------------------------------------------
" s:NetrwForceChgDir: (gd support) Force treatment as a directory {{{2
fun! s:NetrwForceChgDir(islocal,newdir)
"  call Dfunc("s:NetrwForceChgDir(islocal=".a:islocal." newdir<".a:newdir.">)")
  let ykeep= @@
  if a:newdir !~ '/$'
   " ok, looks like force is needed to get directory-style treatment
   if a:newdir =~ '@$'
    let newdir= substitute(a:newdir,'@$','/','')
   elseif a:newdir =~ '[*=|\\]$'
    let newdir= substitute(a:newdir,'.$','/','')
   else
    let newdir= a:newdir.'/'
   endif
"   call Decho("adjusting newdir<".newdir."> due to gd",'~'.expand("<slnum>"))
  else
   " should already be getting treatment as a directory
   let newdir= a:newdir
  endif
  let newdir= s:NetrwBrowseChgDir(a:islocal,newdir)
  call s:NetrwBrowse(a:islocal,newdir)
  let @@= ykeep
"  call Dret("s:NetrwForceChgDir")
endfun

" ---------------------------------------------------------------------
" s:NetrwGlob: does glob() if local, remote listing otherwise {{{2
"     direntry: this is the name of the directory.  Will be fnameescape'd to prevent wildcard handling by glob()
"     expr    : this is the expression to follow the directory.  Will use s:ComposePath()
"     pare    =1: remove the current directory from the resulting glob() filelist
"             =0: leave  the current directory   in the resulting glob() filelist
fun! s:NetrwGlob(direntry,expr,pare)
"  call Dfunc("s:NetrwGlob(direntry<".a:direntry."> expr<".a:expr."> pare=".a:pare.")")
  if netrw#CheckIfRemote()
   keepalt 1sp
   keepalt enew
   let keep_liststyle    = w:netrw_liststyle
   let w:netrw_liststyle = s:THINLIST
   if s:NetrwRemoteListing() == 0
    keepj keepalt %s@/@@
    let filelist= getline(1,$)
    q!
   else
    " remote listing error -- leave treedict unchanged
    let filelist= w:netrw_treedict[a:direntry]
   endif
   let w:netrw_liststyle= keep_liststyle
  elseif v:version > 704 || (v:version == 704 && has("patch656"))
   let filelist= glob(s:ComposePath(fnameescape(a:direntry),a:expr),0,1,1)
   if a:pare
    let filelist= map(filelist,'substitute(v:val, "^.*/", "", "")')
   endif
  else
   let filelist= glob(s:ComposePath(fnameescape(a:direntry),a:expr),0,1)
   if a:pare
    let filelist= map(filelist,'substitute(v:val, "^.*/", "", "")')
   endif
  endif
"  call Dret("s:NetrwGlob ".string(filelist))
  return filelist
endfun

" ---------------------------------------------------------------------
" s:NetrwForceFile: (gf support) Force treatment as a file {{{2
fun! s:NetrwForceFile(islocal,newfile)
"  call Dfunc("s:NetrwForceFile(islocal=".a:islocal." newdir<".a:newfile.">)")
  if a:newfile =~ '[/@*=|\\]$'
   let newfile= substitute(a:newfile,'.$','','')
  else
   let newfile= a:newfile
  endif
  if a:islocal
   call s:NetrwBrowseChgDir(a:islocal,newfile)
  else
   call s:NetrwBrowse(a:islocal,s:NetrwBrowseChgDir(a:islocal,newfile))
  endif
"  call Dret("s:NetrwForceFile")
endfun

" ---------------------------------------------------------------------
" s:NetrwHide: this function is invoked by the "a" map for browsing {{{2
"          and switches the hiding mode.  The actual hiding is done by
"          s:NetrwListHide().
"             g:netrw_hide= 0: show all
"                           1: show not-hidden files
"                           2: show hidden files only
fun! s:NetrwHide(islocal)
"  call Dfunc("NetrwHide(islocal=".a:islocal.") g:netrw_hide=".g:netrw_hide)
  let ykeep= @@
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))

  if exists("s:netrwmarkfilelist_{bufnr('%')}")
"   call Decho("((g:netrw_hide == 1)? "unhide" : "hide")." files in markfilelist<".string(s:netrwmarkfilelist_{bufnr("%")}).">",'~'.expand("<slnum>"))
"   call Decho("g:netrw_list_hide<".g:netrw_list_hide.">",'~'.expand("<slnum>"))

   " hide the files in the markfile list
   for fname in s:netrwmarkfilelist_{bufnr("%")}
"    call Decho("match(g:netrw_list_hide<".g:netrw_list_hide.'> fname<\<'.fname.'\>>)='.match(g:netrw_list_hide,'\<'.fname.'\>')." l:isk=".&l:isk,'~'.expand("<slnum>"))
    if match(g:netrw_list_hide,'\<'.fname.'\>') != -1
     " remove fname from hiding list
     let g:netrw_list_hide= substitute(g:netrw_list_hide,'..\<'.escape(fname,g:netrw_fname_escape).'\>..','','')
     let g:netrw_list_hide= substitute(g:netrw_list_hide,',,',',','g')
     let g:netrw_list_hide= substitute(g:netrw_list_hide,'^,\|,$','','')
"     call Decho("unhide: g:netrw_list_hide<".g:netrw_list_hide.">",'~'.expand("<slnum>"))
    else
     " append fname to hiding list
     if exists("g:netrw_list_hide") && g:netrw_list_hide != ""
      let g:netrw_list_hide= g:netrw_list_hide.',\<'.escape(fname,g:netrw_fname_escape).'\>'
     else
      let g:netrw_list_hide= '\<'.escape(fname,g:netrw_fname_escape).'\>'
     endif
"     call Decho("hide: g:netrw_list_hide<".g:netrw_list_hide.">",'~'.expand("<slnum>"))
    endif
   endfor
   NetrwKeepj call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
   let g:netrw_hide= 1

  else

   " switch between show-all/show-not-hidden/show-hidden
   let g:netrw_hide=(g:netrw_hide+1)%3
   exe "NetrwKeepj norm! 0"
   if g:netrw_hide && g:netrw_list_hide == ""
    NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your hiding list is empty!",49)
    let @@= ykeep
"    call Dret("NetrwHide")
    return
   endif
  endif

  NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)
  let @@= ykeep
"  call Dret("NetrwHide")
endfun

" ---------------------------------------------------------------------
" s:NetrwHideEdit: allows user to edit the file/directory hiding list {{{2
fun! s:NetrwHideEdit(islocal)
"  call Dfunc("NetrwHideEdit(islocal=".a:islocal.")")

  let ykeep= @@
  " save current cursor position
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))

  " get new hiding list from user
  call inputsave()
  let newhide= input("Edit Hiding List: ",g:netrw_list_hide)
  call inputrestore()
  let g:netrw_list_hide= newhide
"  call Decho("new g:netrw_list_hide<".g:netrw_list_hide.">",'~'.expand("<slnum>"))

  " refresh the listing
  sil NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,"./"))

  " restore cursor position
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call winrestview(svpos)
  let @@= ykeep

"  call Dret("NetrwHideEdit")
endfun

" ---------------------------------------------------------------------
" s:NetrwHidden: invoked by "gh" {{{2
fun! s:NetrwHidden(islocal)
"  call Dfunc("s:NetrwHidden()")
  let ykeep= @@
  "  save current position
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))

  if g:netrw_list_hide =~ '\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+'
   " remove pattern from hiding list
   let g:netrw_list_hide= substitute(g:netrw_list_hide,'\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+','','')
  elseif s:Strlen(g:netrw_list_hide) >= 1
   let g:netrw_list_hide= g:netrw_list_hide . ',\(^\|\s\s\)\zs\.\S\+'
  else
   let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
  endif

  " refresh screen and return to saved position
  NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)
  let @@= ykeep
"  call Dret("s:NetrwHidden")
endfun

" ---------------------------------------------------------------------
"  s:NetrwHome: this function determines a "home" for saving bookmarks and history {{{2
fun! s:NetrwHome()
  if exists("g:netrw_home")
   let home= g:netrw_home
  else
   " go to vim plugin home
   for home in split(&rtp,',') + ['']
    if isdirectory(s:NetrwFile(home)) && filewritable(s:NetrwFile(home)) | break | endif
     let basehome= substitute(home,'[/\\]\.vim$','','')
     if isdirectory(s:NetrwFile(basehome)) && filewritable(s:NetrwFile(basehome))
     let home= basehome."/.vim"
     break
    endif
   endfor
   if home == ""
    " just pick the first directory
    let home= substitute(&rtp,',.*$','','')
   endif
   if (has("win32") || has("win95") || has("win64") || has("win16"))
    let home= substitute(home,'/','\\','g')
   endif
  endif
  " insure that the home directory exists
  if g:netrw_dirhistmax > 0 && !isdirectory(s:NetrwFile(home))
   if exists("g:netrw_mkdir")
    call system(g:netrw_mkdir." ".s:ShellEscape(s:NetrwFile(home)))
   else
    call mkdir(home)
   endif
  endif
  let g:netrw_home= home
  return home
endfun

" ---------------------------------------------------------------------
" s:NetrwLeftmouse: handles the <leftmouse> when in a netrw browsing window {{{2
fun! s:NetrwLeftmouse(islocal)
  if exists("s:netrwdrag")
   return
  endif
"  call Dfunc("s:NetrwLeftmouse(islocal=".a:islocal.")")

  let ykeep= @@
  " check if the status bar was clicked on instead of a file/directory name
  while getchar(0) != 0
   "clear the input stream
  endwhile
  call feedkeys("\<LeftMouse>")
  let c          = getchar()
  let mouse_lnum = v:mouse_lnum
  let wlastline  = line('w$')
  let lastline   = line('$')
"  call Decho("v:mouse_lnum=".mouse_lnum." line(w$)=".wlastline." line($)=".lastline." v:mouse_win=".v:mouse_win." winnr#".winnr(),'~'.expand("<slnum>"))
"  call Decho("v:mouse_col =".v:mouse_col."     col=".col(".")."  wincol =".wincol()." winwidth   =".winwidth(0),'~'.expand("<slnum>"))
  if mouse_lnum >= wlastline + 1 || v:mouse_win != winnr()
   " appears to be a status bar leftmouse click
   let @@= ykeep
"   call Dret("s:NetrwLeftmouse : detected a status bar leftmouse click")
   return
  endif
   " Dec 04, 2013: following test prevents leftmouse selection/deselection of directories and files in treelist mode
   " Windows are separated by vertical separator bars - but the mouse seems to be doing what it should when dragging that bar
   " without this test when its disabled.
   " May 26, 2014: edit file, :Lex, resize window -- causes refresh.  Reinstated a modified test.  See if problems develop.
"   call Decho("v:mouse_col=".v:mouse_col." col#".col('.')." virtcol#".virtcol('.')." col($)#".col("$")." virtcol($)#".virtcol("$"),'~'.expand("<slnum>"))
   if v:mouse_col > virtcol('.')
    let @@= ykeep
"    call Dret("s:NetrwLeftmouse : detected a vertical separator bar leftmouse click")
    return
   endif

  if a:islocal
   if exists("b:netrw_curdir")
    NetrwKeepj call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,s:NetrwGetWord()))
   endif
  else
   if exists("b:netrw_curdir")
    NetrwKeepj call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,s:NetrwGetWord()))
   endif
  endif
  let @@= ykeep
"  call Dret("s:NetrwLeftmouse")
endfun

" ---------------------------------------------------------------------
" s:NetrwCLeftmouse: used to select a file/directory for a target {{{2
fun! s:NetrwCLeftmouse(islocal)
"  call Dfunc("s:NetrwCLeftmouse(islocal=".a:islocal.")")
  call s:NetrwMarkFileTgt(a:islocal)
"  call Dret("s:NetrwCLeftmouse")
endfun

" ---------------------------------------------------------------------
" s:NetrwServerEdit: edit file in a server gvim, usually NETRWSERVER  (implements <c-r>){{{2
"   a:islocal=0 : <c-r> not used, remote
"   a:islocal=1 : <c-r> no  used, local
"   a:islocal=2 : <c-r>     used, remote
"   a:islocal=3 : <c-r>     used, local
fun! s:NetrwServerEdit(islocal,fname)
"  call Dfunc("s:NetrwServerEdit(islocal=".a:islocal.",fname<".a:fname.">)")
  let islocal = a:islocal%2      " =0: remote           =1: local
  let ctrlr   = a:islocal >= 2   " =0: <c-r> not used   =1: <c-r> used
"  call Decho("islocal=".islocal." ctrlr=".ctrlr,'~'.expand("<slnum>"))

  if (islocal && isdirectory(s:NetrwFile(a:fname))) || (!islocal && a:fname =~ '/$')
   " handle directories in the local window -- not in the remote vim server
   " user must have closed the NETRWSERVER window.  Treat as normal editing from netrw.
"   call Decho("handling directory in client window",'~'.expand("<slnum>"))
   let g:netrw_browse_split= 0
   if exists("s:netrw_browse_split") && exists("s:netrw_browse_split_".winnr())
    let g:netrw_browse_split= s:netrw_browse_split_{winnr()}
    unlet s:netrw_browse_split_{winnr()}
   endif
   call s:NetrwBrowse(islocal,s:NetrwBrowseChgDir(islocal,a:fname))
"   call Dret("s:NetrwServerEdit")
   return
  endif

"  call Decho("handling file in server window",'~'.expand("<slnum>"))
  if has("clientserver") && executable("gvim")
"   call Decho("has clientserver and gvim",'~'.expand("<slnum>"))

    if exists("g:netrw_browse_split") && type(g:netrw_browse_split) == 3
"     call Decho("g:netrw_browse_split=".string(g:netrw_browse_split),'~'.expand("<slnum>"))
     let srvrname = g:netrw_browse_split[0]
     let tabnum   = g:netrw_browse_split[1]
     let winnum   = g:netrw_browse_split[2]

     if serverlist() !~ '\<'.srvrname.'\>'
"      call Decho("server not available; ctrlr=".ctrlr,'~'.expand("<slnum>"))

      if !ctrlr
       " user must have closed the server window and the user did not use <c-r>, but
       " used something like <cr>.
"       call Decho("user must have closed server AND did not use ctrl-r",'~'.expand("<slnum>"))
       if exists("g:netrw_browse_split")
	unlet g:netrw_browse_split
       endif
       let g:netrw_browse_split= 0
       if exists("s:netrw_browse_split_".winnr())
        let g:netrw_browse_split= s:netrw_browse_split_{winnr()}
       endif
       call s:NetrwBrowseChgDir(islocal,a:fname)
"       call Dret("s:NetrwServerEdit")
       return

      elseif has("win32") && executable("start")
       " start up remote netrw server under windows
"       call Decho("starting up gvim server<".srvrname."> for windows",'~'.expand("<slnum>"))
       call system("start gvim --servername ".srvrname)

      else
       " start up remote netrw server under linux
"       call Decho("starting up gvim server<".srvrname.">",'~'.expand("<slnum>"))
       call system("gvim --servername ".srvrname)
      endif
     endif

"     call Decho("srvrname<".srvrname."> tabnum=".tabnum." winnum=".winnum." server-editing<".a:fname.">",'~'.expand("<slnum>"))
     call remote_send(srvrname,":tabn ".tabnum."\<cr>")
     call remote_send(srvrname,":".winnum."wincmd w\<cr>")
     call remote_send(srvrname,":e ".fnameescape(s:NetrwFile(a:fname))."\<cr>")

    else

     if serverlist() !~ '\<'.g:netrw_servername.'\>'

      if !ctrlr
"       call Decho("server<".g:netrw_servername."> not available and ctrl-r not used",'~'.expand("<slnum>"))
       if exists("g:netrw_browse_split")
	unlet g:netrw_browse_split
       endif
       let g:netrw_browse_split= 0
       call s:NetrwBrowse(islocal,s:NetrwBrowseChgDir(islocal,a:fname))
"       call Dret("s:NetrwServerEdit")
       return

      else
"       call Decho("server<".g:netrw_servername."> not available but ctrl-r used",'~'.expand("<slnum>"))
       if has("win32") && executable("start")
        " start up remote netrw server under windows
"        call Decho("starting up gvim server<".g:netrw_servername."> for windows",'~'.expand("<slnum>"))
        call system("start gvim --servername ".g:netrw_servername)
       else
        " start up remote netrw server under linux
"        call Decho("starting up gvim server<".g:netrw_servername.">",'~'.expand("<slnum>"))
        call system("gvim --servername ".g:netrw_servername)
       endif
      endif
     endif

     while 1
      try
"       call Decho("remote-send: e ".a:fname,'~'.expand("<slnum>"))
       call remote_send(g:netrw_servername,":e ".fnameescape(s:NetrwFile(a:fname))."\<cr>")
       break
      catch /^Vim\%((\a\+)\)\=:E241/
       sleep 200m
      endtry
     endwhile

     if exists("g:netrw_browse_split")
      if type(g:netrw_browse_split) != 3
        let s:netrw_browse_split_{winnr()}= g:netrw_browse_split
       endif
      unlet g:netrw_browse_split
     endif
     let g:netrw_browse_split= [g:netrw_servername,1,1]
    endif

   else
    call netrw#ErrorMsg(s:ERROR,"you need a gui-capable vim and client-server to use <ctrl-r>",98)
   endif

"  call Dret("s:NetrwServerEdit")
endfun

" ---------------------------------------------------------------------
" s:NetrwSLeftmouse: marks the file under the cursor.  May be dragged to select additional files {{{2
fun! s:NetrwSLeftmouse(islocal)
"  call Dfunc("s:NetrwSLeftmouse(islocal=".a:islocal.")")

  let s:ngw= s:NetrwGetWord()
  call s:NetrwMarkFile(a:islocal,s:ngw)

"  call Dret("s:NetrwSLeftmouse")
endfun

" ---------------------------------------------------------------------
" s:NetrwSLeftdrag: invoked via a shift-leftmouse and dragging {{{2
"                   Used to mark multiple files.
fun! s:NetrwSLeftdrag(islocal)
"  call Dfunc("s:NetrwSLeftdrag(islocal=".a:islocal.")")
  if !exists("s:netrwdrag")
   let s:netrwdrag = winnr()
   if a:islocal
    nno <silent> <s-leftrelease> <leftmouse>:<c-u>call <SID>NetrwSLeftrelease(1)<cr>
   else
    nno <silent> <s-leftrelease> <leftmouse>:<c-u>call <SID>NetrwSLeftrelease(0)<cr>
   endif
  endif
  let ngw = s:NetrwGetWord()
  if !exists("s:ngw") || s:ngw != ngw
   call s:NetrwMarkFile(a:islocal,ngw)
  endif
  let s:ngw= ngw
"  call Dret("s:NetrwSLeftdrag : s:netrwdrag=".s:netrwdrag." buf#".bufnr("%"))
endfun

" ---------------------------------------------------------------------
" s:NetrwSLeftrelease: terminates shift-leftmouse dragging {{{2
fun! s:NetrwSLeftrelease(islocal)
"  call Dfunc("s:NetrwSLeftrelease(islocal=".a:islocal.") s:netrwdrag=".s:netrwdrag." buf#".bufnr("%"))
  if exists("s:netrwdrag")
   nunmap <s-leftrelease>
   let ngw = s:NetrwGetWord()
   if !exists("s:ngw") || s:ngw != ngw
    call s:NetrwMarkFile(a:islocal,ngw)
   endif
   if exists("s:ngw")
    unlet s:ngw
   endif
   unlet s:netrwdrag
  endif
"  call Dret("s:NetrwSLeftrelease")
endfun

" ---------------------------------------------------------------------
" s:NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2
" separated patterns given in g:netrw_list_hide
fun! s:NetrwListHide()
"  call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">")
  let ykeep= @@

  " find a character not in the "hide" string to use as a separator for :g and :v commands
  " How-it-works: take the hiding command, convert it into a range.  Duplicate
  " characters don't matter.  Remove all such characters from the '/~...90'
  " string.  Use the first character left as a separator character.
  let listhide= g:netrw_list_hide
  let sep     = strpart(substitute('/~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1)
"  call Decho("sep=".sep,'~'.expand("<slnum>"))

  while listhide != ""
   if listhide =~ ','
    let hide     = substitute(listhide,',.*$','','e')
    let listhide = substitute(listhide,'^.\{-},\(.*\)$','\1','e')
   else
    let hide     = listhide
    let listhide = ""
   endif

   " Prune the list by hiding any files which match
   if g:netrw_hide == 1
"    call Decho("hiding<".hide."> listhide<".listhide.">",'~'.expand("<slnum>"))
    exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d'
   elseif g:netrw_hide == 2
"    call Decho("showing<".hide."> listhide<".listhide.">",'~'.expand("<slnum>"))
    exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'s@^@ /-KEEP-/ @'
   endif
  endwhile
  if g:netrw_hide == 2
   exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$v@^ /-KEEP-/ @d'
   exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s@^\%( /-KEEP-/ \)\+@@e'
  endif

  " remove any blank lines that have somehow remained.
  " This seems to happen under Windows.
  exe 'sil! NetrwKeepj 1,$g@^\s*$@d'

  let @@= ykeep
"  call Dret("s:NetrwListHide")
endfun

" ---------------------------------------------------------------------
" s:NetrwMakeDir: this function makes a directory (both local and remote) {{{2
"                 implements the "d" mapping.
fun! s:NetrwMakeDir(usrhost)
"  call Dfunc("s:NetrwMakeDir(usrhost<".a:usrhost.">)")

  let ykeep= @@
  " get name of new directory from user.  A bare <CR> will skip.
  " if its currently a directory, also request will be skipped, but with
  " a message.
  call inputsave()
  let newdirname= input("Please give directory name: ")
  call inputrestore()
"  call Decho("newdirname<".newdirname.">",'~'.expand("<slnum>"))

  if newdirname == ""
   let @@= ykeep
"   call Dret("s:NetrwMakeDir : user aborted with bare <cr>")
   return
  endif

  if a:usrhost == ""
"   call Decho("local mkdir",'~'.expand("<slnum>"))

   " Local mkdir:
   " sanity checks
   let fullnewdir= b:netrw_curdir.'/'.newdirname
"   call Decho("fullnewdir<".fullnewdir.">",'~'.expand("<slnum>"))
   if isdirectory(s:NetrwFile(fullnewdir))
    if !exists("g:netrw_quiet")
     NetrwKeepj call netrw#ErrorMsg(s:WARNING,"<".newdirname."> is already a directory!",24)
    endif
    let @@= ykeep
"    call Dret("s:NetrwMakeDir : directory<".newdirname."> exists previously")
    return
   endif
   if s:FileReadable(fullnewdir)
    if !exists("g:netrw_quiet")
     NetrwKeepj call netrw#ErrorMsg(s:WARNING,"<".newdirname."> is already a file!",25)
    endif
    let @@= ykeep
"    call Dret("s:NetrwMakeDir : file<".newdirname."> exists previously")
    return
   endif

   " requested new local directory is neither a pre-existing file or
   " directory, so make it!
   if exists("*mkdir")
    if has("unix")
     call mkdir(fullnewdir,"p",xor(0777, system("umask")))
    else
     call mkdir(fullnewdir,"p")
    endif
   else
    let netrw_origdir= s:NetrwGetcwd(1)
    call s:NetrwLcd(b:netrw_curdir)
"    call Decho("netrw_origdir<".netrw_origdir.">: lcd b:netrw_curdir<".fnameescape(b:netrw_curdir).">",'~'.expand("<slnum>"))
    call s:NetrwExe("sil! !".g:netrw_localmkdir.' '.s:ShellEscape(newdirname,1))
    if v:shell_error != 0
     let @@= ykeep
     call netrw#ErrorMsg(s:ERROR,"consider setting g:netrw_localmkdir<".g:netrw_localmkdir."> to something that works",80)
"     call Dret("s:NetrwMakeDir : failed: sil! !".g:netrw_localmkdir.' '.s:ShellEscape(newdirname,1))
     return
    endif
    if !g:netrw_keepdir
"     call Decho("restoring netrw_origdir since g:netrw_keepdir=".g:netrw_keepdir,'~'.expand("<slnum>"))
     call s:NetrwLcd(netrw_origdir)
    endif
   endif

   if v:shell_error == 0
    " refresh listing
"    call Decho("refresh listing",'~'.expand("<slnum>"))
    let svpos= winsaveview()
"    call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
    call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./'))
"    call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
    call winrestview(svpos)
   elseif !exists("g:netrw_quiet")
    call netrw#ErrorMsg(s:ERROR,"unable to make directory<".newdirname.">",26)
   endif
"   redraw!

  elseif !exists("b:netrw_method") || b:netrw_method == 4
   " Remote mkdir:  using ssh
"   call Decho("remote mkdir",'~'.expand("<slnum>"))
   let mkdircmd  = s:MakeSshCmd(g:netrw_mkdir_cmd)
   let newdirname= substitute(b:netrw_curdir,'^\%(.\{-}/\)\{3}\(.*\)$','\1','').newdirname
   call s:NetrwExe("sil! !".mkdircmd." ".s:ShellEscape(newdirname,1))
   if v:shell_error == 0
    " refresh listing
    let svpos= winsaveview()
"    call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwRefresh(0,s:NetrwBrowseChgDir(0,'./'))
"    call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
    NetrwKeepj call winrestview(svpos)
   elseif !exists("g:netrw_quiet")
    NetrwKeepj call netrw#ErrorMsg(s:ERROR,"unable to make directory<".newdirname.">",27)
   endif
"   redraw!

  elseif b:netrw_method == 2
   " Remote mkdir:  using ftp+.netrc
   let svpos= winsaveview()
"   call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
"   call Decho("b:netrw_curdir<".b:netrw_curdir.">",'~'.expand("<slnum>"))
   if exists("b:netrw_fname")
"    call Decho("b:netrw_fname<".b:netrw_fname.">",'~'.expand("<slnum>"))
    let remotepath= b:netrw_fname
   else
    let remotepath= ""
   endif
   call s:NetrwRemoteFtpCmd(remotepath,g:netrw_remote_mkdir.' "'.newdirname.'"')
   NetrwKeepj call s:NetrwRefresh(0,s:NetrwBrowseChgDir(0,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)

  elseif b:netrw_method == 3
   " Remote mkdir: using ftp + machine, id, passwd, and fname (ie. no .netrc)
   let svpos= winsaveview()
"   call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
"   call Decho("b:netrw_curdir<".b:netrw_curdir.">",'~'.expand("<slnum>"))
   if exists("b:netrw_fname")
"    call Decho("b:netrw_fname<".b:netrw_fname.">",'~'.expand("<slnum>"))
    let remotepath= b:netrw_fname
   else
    let remotepath= ""
   endif
   call s:NetrwRemoteFtpCmd(remotepath,g:netrw_remote_mkdir.' "'.newdirname.'"')
   NetrwKeepj call s:NetrwRefresh(0,s:NetrwBrowseChgDir(0,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)
  endif

  let @@= ykeep
"  call Dret("s:NetrwMakeDir")
endfun

" ---------------------------------------------------------------------
" s:TreeSqueezeDir: allows a shift-cr (gvim only) to squeeze the current tree-listing directory {{{2
fun! s:TreeSqueezeDir(islocal)
"  call Dfunc("s:TreeSqueezeDir(islocal=".a:islocal.")")
  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
   " its a tree-listing style
   let curdepth = substitute(getline('.'),'^\(\%('.s:treedepthstring.'\)*\)[^'.s:treedepthstring.'].\{-}$','\1','e')
   let stopline = (exists("w:netrw_bannercnt")? (w:netrw_bannercnt + 1) : 1)
   let depth    = strchars(substitute(curdepth,' ','','g'))
   let srch     = -1
"   call Decho("curdepth<".curdepth.'>','~'.expand("<slnum>"))
"   call Decho("depth   =".depth,'~'.expand("<slnum>"))
"   call Decho("stopline#".stopline,'~'.expand("<slnum>"))
"   call Decho("curline#".line(".")."<".getline('.').'>','~'.expand("<slnum>"))
   if depth >= 2
    NetrwKeepj norm! 0
    let curdepthm1= substitute(curdepth,'^'.s:treedepthstring,'','')
    let srch      = search('^'.curdepthm1.'\%('.s:treedepthstring.'\)\@!','bW',stopline)
"    call Decho("curdepthm1<".curdepthm1.'>','~'.expand("<slnum>"))
"    call Decho("case depth>=2: srch<".srch.'>','~'.expand("<slnum>"))
   elseif depth == 1
    NetrwKeepj norm! 0
    let treedepthchr= substitute(s:treedepthstring,' ','','')
    let srch        = search('^[^'.treedepthchr.']','bW',stopline)
"    call Decho("case depth==1: srch<".srch.'>','~'.expand("<slnum>"))
   endif
   if srch > 0
"    call Decho("squeezing at line#".line(".").": ".getline('.'),'~'.expand("<slnum>"))
    call s:NetrwBrowse(a:islocal,s:NetrwBrowseChgDir(a:islocal,s:NetrwGetWord()))
    exe srch
   endif
  endif
"  call Dret("s:TreeSqueezeDir")
endfun

" ---------------------------------------------------------------------
" s:NetrwMaps: {{{2
fun! s:NetrwMaps(islocal)
"  call Dfunc("s:NetrwMaps(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">")

  if g:netrw_mousemaps && g:netrw_retmap
"   call Decho("set up Rexplore 2-leftmouse",'~'.expand("<slnum>"))
   if !hasmapto("<Plug>NetrwReturn")
    if maparg("<2-leftmouse>","n") == "" || maparg("<2-leftmouse>","n") =~ '^-$'
"     call Decho("making map for 2-leftmouse",'~'.expand("<slnum>"))
     nmap <unique> <silent> <2-leftmouse>	<Plug>NetrwReturn
    elseif maparg("<c-leftmouse>","n") == ""
"     call Decho("making map for c-leftmouse",'~'.expand("<slnum>"))
     nmap <unique> <silent> <c-leftmouse>	<Plug>NetrwReturn
    endif
   endif
   nno <silent> <Plug>NetrwReturn	:Rexplore<cr>
"   call Decho("made <Plug>NetrwReturn map",'~'.expand("<slnum>"))
  endif

  if a:islocal
"   call Decho("make local maps",'~'.expand("<slnum>"))
   " local normal-mode maps
   nnoremap <buffer> <silent> <nowait> a	:<c-u>call <SID>NetrwHide(1)<cr>
   nnoremap <buffer> <silent> <nowait> -	:<c-u>call <SID>NetrwBrowseUpDir(1)<cr>
   nnoremap <buffer> <silent> <nowait> %	:<c-u>call <SID>NetrwOpenFile(1)<cr>
   nnoremap <buffer> <silent> <nowait> c	:<c-u>call <SID>NetrwLcd(b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> C	:<c-u>call <SID>NetrwSetChgwin()<cr>
   nnoremap <buffer> <silent> <nowait> <cr>	:<c-u>call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr>
   nnoremap <buffer> <silent> <nowait> <c-r>	:<c-u>call <SID>NetrwServerEdit(3,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> d	:<c-u>call <SID>NetrwMakeDir("")<cr>
   nnoremap <buffer> <silent> <nowait> gb	:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> gd	:<c-u>call <SID>NetrwForceChgDir(1,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> gf	:<c-u>call <SID>NetrwForceFile(1,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> gh	:<c-u>call <SID>NetrwHidden(1)<cr>
   nnoremap <buffer> <silent> <nowait> gn	:<c-u>call netrw#SetTreetop(<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> gp	:<c-u>call <SID>NetrwChgPerm(1,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> I	:<c-u>call <SID>NetrwBannerCtrl(1)<cr>
   nnoremap <buffer> <silent> <nowait> i	:<c-u>call <SID>NetrwListStyle(1)<cr>
   nnoremap <buffer> <silent> <nowait> ma	:<c-u>call <SID>NetrwMarkFileArgList(1,0)<cr>
   nnoremap <buffer> <silent> <nowait> mA	:<c-u>call <SID>NetrwMarkFileArgList(1,1)<cr>
   nnoremap <buffer> <silent> <nowait> mb	:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> mB	:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> mc	:<c-u>call <SID>NetrwMarkFileCopy(1)<cr>
   nnoremap <buffer> <silent> <nowait> md	:<c-u>call <SID>NetrwMarkFileDiff(1)<cr>
   nnoremap <buffer> <silent> <nowait> me	:<c-u>call <SID>NetrwMarkFileEdit(1)<cr>
   nnoremap <buffer> <silent> <nowait> mf	:<c-u>call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> mF	:<c-u>call <SID>NetrwUnmarkList(bufnr("%"),b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> mg	:<c-u>call <SID>NetrwMarkFileGrep(1)<cr>
   nnoremap <buffer> <silent> <nowait> mh	:<c-u>call <SID>NetrwMarkHideSfx(1)<cr>
   nnoremap <buffer> <silent> <nowait> mm	:<c-u>call <SID>NetrwMarkFileMove(1)<cr>
   nnoremap <buffer> <silent> <nowait> mp	:<c-u>call <SID>NetrwMarkFilePrint(1)<cr>
   nnoremap <buffer> <silent> <nowait> mr	:<c-u>call <SID>NetrwMarkFileRegexp(1)<cr>
   nnoremap <buffer> <silent> <nowait> ms	:<c-u>call <SID>NetrwMarkFileSource(1)<cr>
   nnoremap <buffer> <silent> <nowait> mT	:<c-u>call <SID>NetrwMarkFileTag(1)<cr>
   nnoremap <buffer> <silent> <nowait> mt	:<c-u>call <SID>NetrwMarkFileTgt(1)<cr>
   nnoremap <buffer> <silent> <nowait> mu	:<c-u>call <SID>NetrwUnMarkFile(1)<cr>
   nnoremap <buffer> <silent> <nowait> mv	:<c-u>call <SID>NetrwMarkFileVimCmd(1)<cr>
   nnoremap <buffer> <silent> <nowait> mx	:<c-u>call <SID>NetrwMarkFileExe(1,0)<cr>
   nnoremap <buffer> <silent> <nowait> mX	:<c-u>call <SID>NetrwMarkFileExe(1,1)<cr>
   nnoremap <buffer> <silent> <nowait> mz	:<c-u>call <SID>NetrwMarkFileCompress(1)<cr>
   nnoremap <buffer> <silent> <nowait> O	:<c-u>call <SID>NetrwObtain(1)<cr>
   nnoremap <buffer> <silent> <nowait> o	:call <SID>NetrwSplit(3)<cr>
   nnoremap <buffer> <silent> <nowait> p	:<c-u>call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr>
   nnoremap <buffer> <silent> <nowait> P	:<c-u>call <SID>NetrwPrevWinOpen(1)<cr>
   nnoremap <buffer> <silent> <nowait> qb	:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> qf	:<c-u>call <SID>NetrwFileInfo(1,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> qF	:<c-u>call <SID>NetrwMarkFileQFEL(1,getqflist())<cr>
   nnoremap <buffer> <silent> <nowait> qL	:<c-u>call <SID>NetrwMarkFileQFEL(1,getloclist(v:count))<cr>
   nnoremap <buffer> <silent> <nowait> r	:<c-u>let g:netrw_sort_direction= (g:netrw_sort_direction =~# 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,'./'))<cr>
   nnoremap <buffer> <silent> <nowait> s	:call <SID>NetrwSortStyle(1)<cr>
   nnoremap <buffer> <silent> <nowait> S	:<c-u>call <SID>NetSortSequence(1)<cr>
   nnoremap <buffer> <silent> <nowait> Tb	:<c-u>call <SID>NetrwSetTgt(1,'b',v:count1)<cr>
   nnoremap <buffer> <silent> <nowait> t	:call <SID>NetrwSplit(4)<cr>
   nnoremap <buffer> <silent> <nowait> Th	:<c-u>call <SID>NetrwSetTgt(1,'h',v:count)<cr>
   nnoremap <buffer> <silent> <nowait> u	:<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr>
   nnoremap <buffer> <silent> <nowait> U	:<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr>
   nnoremap <buffer> <silent> <nowait> v	:call <SID>NetrwSplit(5)<cr>
   nnoremap <buffer> <silent> <nowait> x	:<c-u>call netrw#BrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr>
   nnoremap <buffer> <silent> <nowait> X	:<c-u>call <SID>NetrwLocalExecute(expand("<cword>"))"<cr>
"   " local insert-mode maps
"   inoremap <buffer> <silent> <nowait> a	<c-o>:call <SID>NetrwHide(1)<cr>
"   inoremap <buffer> <silent> <nowait> c	<c-o>:exe "NetrwKeepj lcd ".fnameescape(b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> c	<c-o>:call <SID>NetrwLcd(b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> C	<c-o>:call <SID>NetrwSetChgwin()<cr>
"   inoremap <buffer> <silent> <nowait> %	<c-o>:call <SID>NetrwOpenFile(1)<cr>
"   inoremap <buffer> <silent> <nowait> -	<c-o>:call <SID>NetrwBrowseUpDir(1)<cr>
"   inoremap <buffer> <silent> <nowait> <cr>	<c-o>:call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr>
"   inoremap <buffer> <silent> <nowait> d	<c-o>:call <SID>NetrwMakeDir("")<cr>
"   inoremap <buffer> <silent> <nowait> gb	<c-o>:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> gh	<c-o>:<c-u>call <SID>NetrwHidden(1)<cr>
"   nnoremap <buffer> <silent> <nowait> gn	:<c-u>call netrw#SetTreetop(<SID>NetrwGetWord())<cr>
"   inoremap <buffer> <silent> <nowait> gp	<c-o>:<c-u>call <SID>NetrwChgPerm(1,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> I	<c-o>:call <SID>NetrwBannerCtrl(1)<cr>
"   inoremap <buffer> <silent> <nowait> i	<c-o>:call <SID>NetrwListStyle(1)<cr>
"   inoremap <buffer> <silent> <nowait> mb	<c-o>:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> mB	<c-o>:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> mc	<c-o>:<c-u>call <SID>NetrwMarkFileCopy(1)<cr>
"   inoremap <buffer> <silent> <nowait> md	<c-o>:<c-u>call <SID>NetrwMarkFileDiff(1)<cr>
"   inoremap <buffer> <silent> <nowait> me	<c-o>:<c-u>call <SID>NetrwMarkFileEdit(1)<cr>
"   inoremap <buffer> <silent> <nowait> mf	<c-o>:<c-u>call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr>
"   inoremap <buffer> <silent> <nowait> mg	<c-o>:<c-u>call <SID>NetrwMarkFileGrep(1)<cr>
"   inoremap <buffer> <silent> <nowait> mh	<c-o>:<c-u>call <SID>NetrwMarkHideSfx(1)<cr>
"   inoremap <buffer> <silent> <nowait> mm	<c-o>:<c-u>call <SID>NetrwMarkFileMove(1)<cr>
"   inoremap <buffer> <silent> <nowait> mp	<c-o>:<c-u>call <SID>NetrwMarkFilePrint(1)<cr>
"   inoremap <buffer> <silent> <nowait> mr	<c-o>:<c-u>call <SID>NetrwMarkFileRegexp(1)<cr>
"   inoremap <buffer> <silent> <nowait> ms	<c-o>:<c-u>call <SID>NetrwMarkFileSource(1)<cr>
"   inoremap <buffer> <silent> <nowait> mT	<c-o>:<c-u>call <SID>NetrwMarkFileTag(1)<cr>
"   inoremap <buffer> <silent> <nowait> mt	<c-o>:<c-u>call <SID>NetrwMarkFileTgt(1)<cr>
"   inoremap <buffer> <silent> <nowait> mu	<c-o>:<c-u>call <SID>NetrwUnMarkFile(1)<cr>
"   inoremap <buffer> <silent> <nowait> mv	<c-o>:<c-u>call <SID>NetrwMarkFileVimCmd(1)<cr>
"   inoremap <buffer> <silent> <nowait> mx	<c-o>:<c-u>call <SID>NetrwMarkFileExe(1,0)<cr>
"   inoremap <buffer> <silent> <nowait> mX	<c-o>:<c-u>call <SID>NetrwMarkFileExe(1,1)<cr>
"   inoremap <buffer> <silent> <nowait> mz	<c-o>:<c-u>call <SID>NetrwMarkFileCompress(1)<cr>
"   inoremap <buffer> <silent> <nowait> O	<c-o>:call <SID>NetrwObtain(1)<cr>
"   inoremap <buffer> <silent> <nowait> o	<c-o>:call <SID>NetrwSplit(3)<cr>
"   inoremap <buffer> <silent> <nowait> p	<c-o>:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr>
"   inoremap <buffer> <silent> <nowait> P	<c-o>:call <SID>NetrwPrevWinOpen(1)<cr>
"   inoremap <buffer> <silent> <nowait> qb	<c-o>:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> qf	<c-o>:<c-u>call <SID>NetrwFileInfo(1,<SID>NetrwGetWord())<cr>
"   inoremap <buffer> <silent> <nowait> qF	:<c-u>call <SID>NetrwMarkFileQFEL(1,getqflist())<cr>
"   inoremap <buffer> <silent> <nowait> qL	:<c-u>call <SID>NetrwMarkFileQFEL(1,getloclist(v:count))<cr>
"   inoremap <buffer> <silent> <nowait> r	<c-o>:let g:netrw_sort_direction= (g:netrw_sort_direction =~# 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,'./'))<cr>
"   inoremap <buffer> <silent> <nowait> s	<c-o>:call <SID>NetrwSortStyle(1)<cr>
"   inoremap <buffer> <silent> <nowait> S	<c-o>:call <SID>NetSortSequence(1)<cr>
"   inoremap <buffer> <silent> <nowait> t	<c-o>:call <SID>NetrwSplit(4)<cr>
"   inoremap <buffer> <silent> <nowait> Tb	<c-o>:<c-u>call <SID>NetrwSetTgt(1,'b',v:count1)<cr>
"   inoremap <buffer> <silent> <nowait> Th	<c-o>:<c-u>call <SID>NetrwSetTgt(1,'h',v:count)<cr>
"   inoremap <buffer> <silent> <nowait> u	<c-o>:<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr>
"   inoremap <buffer> <silent> <nowait> U	<c-o>:<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr>
"   inoremap <buffer> <silent> <nowait> v	<c-o>:call <SID>NetrwSplit(5)<cr>
"   inoremap <buffer> <silent> <nowait> x	<c-o>:call netrw#BrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr>
   if !hasmapto('<Plug>NetrwHideEdit')
    nmap <buffer> <unique> <c-h> <Plug>NetrwHideEdit
"    imap <buffer> <unique> <c-h> <c-o><Plug>NetrwHideEdit
   endif
   nnoremap <buffer> <silent> <Plug>NetrwHideEdit		:call <SID>NetrwHideEdit(1)<cr>
   if !hasmapto('<Plug>NetrwRefresh')
    nmap <buffer> <unique> <c-l> <Plug>NetrwRefresh
"    imap <buffer> <unique> <c-l> <c-o><Plug>NetrwRefresh
   endif
   nnoremap <buffer> <silent> <Plug>NetrwRefresh		<c-l>:call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,(w:netrw_liststyle == 3)? w:netrw_treetop : './'))<cr>
   if s:didstarstar || !mapcheck("<s-down>","n")
    nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
"    inoremap <buffer> <silent> <s-down>	<c-o>:Nexplore<cr>
   endif
   if s:didstarstar || !mapcheck("<s-up>","n")
    nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
"    inoremap <buffer> <silent> <s-up>	<c-o>:Pexplore<cr>
   endif
   if !hasmapto('<Plug>NetrwTreeSqueeze')
    nmap <buffer> <silent> <nowait> <s-cr>			<Plug>NetrwTreeSqueeze
"    imap <buffer> <silent> <nowait> <s-cr>			<c-o><Plug>NetrwTreeSqueeze
   endif
   nnoremap <buffer> <silent> <Plug>NetrwTreeSqueeze		:call <SID>TreeSqueezeDir(1)<cr>
   let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape)
   if g:netrw_mousemaps == 1
    nmap <buffer> <leftmouse>   				<Plug>NetrwLeftmouse
    nno  <buffer> <silent>		<Plug>NetrwLeftmouse	<leftmouse>:call <SID>NetrwLeftmouse(1)<cr>
    nmap <buffer> <c-leftmouse>		<Plug>NetrwCLeftmouse
    nno  <buffer> <silent>		<Plug>NetrwCLeftmouse	<leftmouse>:call <SID>NetrwCLeftmouse(1)<cr>
    nmap <buffer> <middlemouse>		<Plug>NetrwMiddlemouse
    nno  <buffer> <silent>		<Plug>NetrwMiddlemouse	<leftmouse>:call <SID>NetrwPrevWinOpen(1)<cr>
    nmap <buffer> <s-leftmouse>		<Plug>NetrwSLeftmouse
    nno  <buffer> <silent>		<Plug>NetrwSLeftmouse 	<leftmouse>:call <SID>NetrwSLeftmouse(1)<cr>
    nmap <buffer> <s-leftdrag>		<Plug>NetrwSLeftdrag
    nno  <buffer> <silent>		<Plug>NetrwSLeftdrag	<leftmouse>:call <SID>NetrwSLeftdrag(1)<cr>
    nmap <buffer> <2-leftmouse>		<Plug>Netrw2Leftmouse
    nmap <buffer> <silent>		<Plug>Netrw2Leftmouse	-
    imap <buffer> <leftmouse>		<Plug>ILeftmouse
"    ino  <buffer> <silent>		<Plug>ILeftmouse	<c-o><leftmouse><c-o>:call <SID>NetrwLeftmouse(1)<cr>
    imap <buffer> <middlemouse>		<Plug>IMiddlemouse
"    ino  <buffer> <silent>		<Plug>IMiddlemouse	<c-o><leftmouse><c-o>:call <SID>NetrwPrevWinOpen(1)<cr>
"    imap <buffer> <s-leftmouse>		<Plug>ISLeftmouse
"    ino  <buffer> <silent>		<Plug>ISLeftmouse	<c-o><leftmouse><c-o>:call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr>
    exe 'nnoremap <buffer> <silent> <rightmouse>  <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
    exe 'vnoremap <buffer> <silent> <rightmouse>  <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
"    exe 'inoremap <buffer> <silent> <rightmouse>  <c-o><leftmouse><c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
   endif
   exe 'nnoremap <buffer> <silent> <nowait> <del>	:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
   exe 'nnoremap <buffer> <silent> <nowait> D		:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
   exe 'nnoremap <buffer> <silent> <nowait> R		:call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>'
   exe 'nnoremap <buffer> <silent> <nowait> d		:call <SID>NetrwMakeDir("")<cr>'
   exe 'vnoremap <buffer> <silent> <nowait> <del>	:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
   exe 'vnoremap <buffer> <silent> <nowait> D		:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
   exe 'vnoremap <buffer> <silent> <nowait> R		:call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> <del>	<c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> D		<c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> R		<c-o>:call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> d		<c-o>:call <SID>NetrwMakeDir("")<cr>'
   nnoremap <buffer> <F1>			:he netrw-quickhelp<cr>

   " support user-specified maps
   call netrw#UserMaps(1)

  else " remote
"   call Decho("make remote maps",'~'.expand("<slnum>"))
   call s:RemotePathAnalysis(b:netrw_curdir)
   " remote normal-mode maps
   nnoremap <buffer> <silent> <nowait> a	:<c-u>call <SID>NetrwHide(0)<cr>
   nnoremap <buffer> <silent> <nowait> -	:<c-u>call <SID>NetrwBrowseUpDir(0)<cr>
   nnoremap <buffer> <silent> <nowait> %	:<c-u>call <SID>NetrwOpenFile(0)<cr>
   nnoremap <buffer> <silent> <nowait> C	:<c-u>call <SID>NetrwSetChgwin()<cr>
   nnoremap <buffer> <silent> <nowait> <c-l>	:<c-u>call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
   nnoremap <buffer> <silent> <nowait> <cr>	:<c-u>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()))<cr>
   nnoremap <buffer> <silent> <nowait> <c-r>	:<c-u>call <SID>NetrwServerEdit(2,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> gb	:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> gd	:<c-u>call <SID>NetrwForceChgDir(0,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> gf	:<c-u>call <SID>NetrwForceFile(0,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> gh	:<c-u>call <SID>NetrwHidden(0)<cr>
   nnoremap <buffer> <silent> <nowait> gp	:<c-u>call <SID>NetrwChgPerm(0,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> I	:<c-u>call <SID>NetrwBannerCtrl(1)<cr>
   nnoremap <buffer> <silent> <nowait> i	:<c-u>call <SID>NetrwListStyle(0)<cr>
   nnoremap <buffer> <silent> <nowait> ma	:<c-u>call <SID>NetrwMarkFileArgList(0,0)<cr>
   nnoremap <buffer> <silent> <nowait> mA	:<c-u>call <SID>NetrwMarkFileArgList(0,1)<cr>
   nnoremap <buffer> <silent> <nowait> mb	:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> mB	:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> mc	:<c-u>call <SID>NetrwMarkFileCopy(0)<cr>
   nnoremap <buffer> <silent> <nowait> md	:<c-u>call <SID>NetrwMarkFileDiff(0)<cr>
   nnoremap <buffer> <silent> <nowait> me	:<c-u>call <SID>NetrwMarkFileEdit(0)<cr>
   nnoremap <buffer> <silent> <nowait> mf	:<c-u>call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> mF	:<c-u>call <SID>NetrwUnmarkList(bufnr("%"),b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> mg	:<c-u>call <SID>NetrwMarkFileGrep(0)<cr>
   nnoremap <buffer> <silent> <nowait> mh	:<c-u>call <SID>NetrwMarkHideSfx(0)<cr>
   nnoremap <buffer> <silent> <nowait> mm	:<c-u>call <SID>NetrwMarkFileMove(0)<cr>
   nnoremap <buffer> <silent> <nowait> mp	:<c-u>call <SID>NetrwMarkFilePrint(0)<cr>
   nnoremap <buffer> <silent> <nowait> mr	:<c-u>call <SID>NetrwMarkFileRegexp(0)<cr>
   nnoremap <buffer> <silent> <nowait> ms	:<c-u>call <SID>NetrwMarkFileSource(0)<cr>
   nnoremap <buffer> <silent> <nowait> mT	:<c-u>call <SID>NetrwMarkFileTag(0)<cr>
   nnoremap <buffer> <silent> <nowait> mt	:<c-u>call <SID>NetrwMarkFileTgt(0)<cr>
   nnoremap <buffer> <silent> <nowait> mu	:<c-u>call <SID>NetrwUnMarkFile(0)<cr>
   nnoremap <buffer> <silent> <nowait> mv	:<c-u>call <SID>NetrwMarkFileVimCmd(0)<cr>
   nnoremap <buffer> <silent> <nowait> mx	:<c-u>call <SID>NetrwMarkFileExe(0,0)<cr>
   nnoremap <buffer> <silent> <nowait> mX	:<c-u>call <SID>NetrwMarkFileExe(0,1)<cr>
   nnoremap <buffer> <silent> <nowait> mz	:<c-u>call <SID>NetrwMarkFileCompress(0)<cr>
   nnoremap <buffer> <silent> <nowait> O	:<c-u>call <SID>NetrwObtain(0)<cr>
   nnoremap <buffer> <silent> <nowait> o	:call <SID>NetrwSplit(0)<cr>
   nnoremap <buffer> <silent> <nowait> p	:<c-u>call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr>
   nnoremap <buffer> <silent> <nowait> P	:<c-u>call <SID>NetrwPrevWinOpen(0)<cr>
   nnoremap <buffer> <silent> <nowait> qb	:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> qf	:<c-u>call <SID>NetrwFileInfo(0,<SID>NetrwGetWord())<cr>
   nnoremap <buffer> <silent> <nowait> qF	:<c-u>call <SID>NetrwMarkFileQFEL(0,getqflist())<cr>
   nnoremap <buffer> <silent> <nowait> qL	:<c-u>call <SID>NetrwMarkFileQFEL(0,getloclist(v:count))<cr>
   nnoremap <buffer> <silent> <nowait> r	:<c-u>let g:netrw_sort_direction= (g:netrw_sort_direction =~# 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
   nnoremap <buffer> <silent> <nowait> s	:call <SID>NetrwSortStyle(0)<cr>
   nnoremap <buffer> <silent> <nowait> S	:<c-u>call <SID>NetSortSequence(0)<cr>
   nnoremap <buffer> <silent> <nowait> Tb	:<c-u>call <SID>NetrwSetTgt(0,'b',v:count1)<cr>
   nnoremap <buffer> <silent> <nowait> t	:call <SID>NetrwSplit(1)<cr>
   nnoremap <buffer> <silent> <nowait> Th	:<c-u>call <SID>NetrwSetTgt(0,'h',v:count)<cr>
   nnoremap <buffer> <silent> <nowait> u	:<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> U	:<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr>
   nnoremap <buffer> <silent> <nowait> v	:call <SID>NetrwSplit(2)<cr>
   nnoremap <buffer> <silent> <nowait> x	:<c-u>call netrw#BrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr>
"   " remote insert-mode maps
"   inoremap <buffer> <silent> <nowait> <cr>	<c-o>:call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()))<cr>
"   inoremap <buffer> <silent> <nowait> <c-l>	<c-o>:call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
"   inoremap <buffer> <silent> <nowait> <s-cr>	<c-o>:call <SID>TreeSqueezeDir(0)<cr>
"   inoremap <buffer> <silent> <nowait> -		<c-o>:call <SID>NetrwBrowseUpDir(0)<cr>
"   inoremap <buffer> <silent> <nowait> a		<c-o>:call <SID>NetrwHide(0)<cr>
"   inoremap <buffer> <silent> <nowait> mb	<c-o>:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> mc	<c-o>:<c-u>call <SID>NetrwMarkFileCopy(0)<cr>
"   inoremap <buffer> <silent> <nowait> md	<c-o>:<c-u>call <SID>NetrwMarkFileDiff(0)<cr>
"   inoremap <buffer> <silent> <nowait> me	<c-o>:<c-u>call <SID>NetrwMarkFileEdit(0)<cr>
"   inoremap <buffer> <silent> <nowait> mf	<c-o>:<c-u>call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr>
"   inoremap <buffer> <silent> <nowait> mg	<c-o>:<c-u>call <SID>NetrwMarkFileGrep(0)<cr>
"   inoremap <buffer> <silent> <nowait> mh	<c-o>:<c-u>call <SID>NetrwMarkHideSfx(0)<cr>
"   inoremap <buffer> <silent> <nowait> mm	<c-o>:<c-u>call <SID>NetrwMarkFileMove(0)<cr>
"   inoremap <buffer> <silent> <nowait> mp	<c-o>:<c-u>call <SID>NetrwMarkFilePrint(0)<cr>
"   inoremap <buffer> <silent> <nowait> mr	<c-o>:<c-u>call <SID>NetrwMarkFileRegexp(0)<cr>
"   inoremap <buffer> <silent> <nowait> ms	<c-o>:<c-u>call <SID>NetrwMarkFileSource(0)<cr>
"   inoremap <buffer> <silent> <nowait> mt	<c-o>:<c-u>call <SID>NetrwMarkFileTgt(0)<cr>
"   inoremap <buffer> <silent> <nowait> mT	<c-o>:<c-u>call <SID>NetrwMarkFileTag(0)<cr>
"   inoremap <buffer> <silent> <nowait> mu	<c-o>:<c-u>call <SID>NetrwUnMarkFile(0)<cr>
"   nnoremap <buffer> <silent> <nowait> mv	:<c-u>call <SID>NetrwMarkFileVimCmd(1)<cr>
"   inoremap <buffer> <silent> <nowait> mx	<c-o>:<c-u>call <SID>NetrwMarkFileExe(0,0)<cr>
"   inoremap <buffer> <silent> <nowait> mX	<c-o>:<c-u>call <SID>NetrwMarkFileExe(0,1)<cr>
"   inoremap <buffer> <silent> <nowait> mv	<c-o>:<c-u>call <SID>NetrwMarkFileVimCmd(0)<cr>
"   inoremap <buffer> <silent> <nowait> mz	<c-o>:<c-u>call <SID>NetrwMarkFileCompress(0)<cr>
"   inoremap <buffer> <silent> <nowait> gb	<c-o>:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> gh	<c-o>:<c-u>call <SID>NetrwHidden(0)<cr>
"   inoremap <buffer> <silent> <nowait> gp	<c-o>:<c-u>call <SID>NetrwChgPerm(0,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> C		<c-o>:call <SID>NetrwSetChgwin()<cr>
"   inoremap <buffer> <silent> <nowait> i		<c-o>:call <SID>NetrwListStyle(0)<cr>
"   inoremap <buffer> <silent> <nowait> I		<c-o>:call <SID>NetrwBannerCtrl(1)<cr>
"   inoremap <buffer> <silent> <nowait> o		<c-o>:call <SID>NetrwSplit(0)<cr>
"   inoremap <buffer> <silent> <nowait> O		<c-o>:call <SID>NetrwObtain(0)<cr>
"   inoremap <buffer> <silent> <nowait> p		<c-o>:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr>
"   inoremap <buffer> <silent> <nowait> P		<c-o>:call <SID>NetrwPrevWinOpen(0)<cr>
"   inoremap <buffer> <silent> <nowait> qb	<c-o>:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> mB	<c-o>:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> qf	<c-o>:<c-u>call <SID>NetrwFileInfo(0,<SID>NetrwGetWord())<cr>
"   inoremap <buffer> <silent> <nowait> qF	:<c-u>call <SID>NetrwMarkFileQFEL(0,getqflist())<cr>
"   inoremap <buffer> <silent> <nowait> qL	:<c-u>call <SID>NetrwMarkFileQFEL(0,getloclist(v:count))<cr>
"   inoremap <buffer> <silent> <nowait> r		<c-o>:let g:netrw_sort_direction= (g:netrw_sort_direction =~# 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
"   inoremap <buffer> <silent> <nowait> s		<c-o>:call <SID>NetrwSortStyle(0)<cr>
"   inoremap <buffer> <silent> <nowait> S		<c-o>:call <SID>NetSortSequence(0)<cr>
"   inoremap <buffer> <silent> <nowait> t		<c-o>:call <SID>NetrwSplit(1)<cr>
"   inoremap <buffer> <silent> <nowait> Tb	<c-o>:<c-u>call <SID>NetrwSetTgt('b',v:count1)<cr>
"   inoremap <buffer> <silent> <nowait> Th	<c-o>:<c-u>call <SID>NetrwSetTgt('h',v:count)<cr>
"   inoremap <buffer> <silent> <nowait> u		<c-o>:<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> U		<c-o>:<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr>
"   inoremap <buffer> <silent> <nowait> v		<c-o>:call <SID>NetrwSplit(2)<cr>
"   inoremap <buffer> <silent> <nowait> x		<c-o>:call netrw#BrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr>
"   inoremap <buffer> <silent> <nowait> %		<c-o>:call <SID>NetrwOpenFile(0)<cr>
   if !hasmapto('<Plug>NetrwHideEdit')
    nmap <buffer> <c-h> <Plug>NetrwHideEdit
"    imap <buffer> <c-h> <Plug>NetrwHideEdit
   endif
   nnoremap <buffer> <silent> <Plug>NetrwHideEdit	:call <SID>NetrwHideEdit(0)<cr>
   if !hasmapto('<Plug>NetrwRefresh')
    nmap <buffer> <c-l> <Plug>NetrwRefresh
"    imap <buffer> <c-l> <Plug>NetrwRefresh
   endif
   if !hasmapto('<Plug>NetrwTreeSqueeze')
    nmap <buffer> <silent> <nowait> <s-cr>	<Plug>NetrwTreeSqueeze
"    imap <buffer> <silent> <nowait> <s-cr>	<c-o><Plug>NetrwTreeSqueeze
   endif
   nnoremap <buffer> <silent> <Plug>NetrwTreeSqueeze	:call <SID>TreeSqueezeDir(0)<cr>

   let mapsafepath     = escape(s:path, s:netrw_map_escape)
   let mapsafeusermach = escape(((s:user == "")? "" : s:user."@").s:machine, s:netrw_map_escape)

   nnoremap <buffer> <silent> <Plug>NetrwRefresh	:call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
   if g:netrw_mousemaps == 1
    nmap <buffer> <leftmouse>		<Plug>NetrwLeftmouse
    nno  <buffer> <silent>		<Plug>NetrwLeftmouse	<leftmouse>:call <SID>NetrwLeftmouse(0)<cr>
    nmap <buffer> <c-leftmouse>		<Plug>NetrwCLeftmouse
    nno  <buffer> <silent>		<Plug>NetrwCLeftmouse	<leftmouse>:call <SID>NetrwCLeftmouse(0)<cr>
    nmap <buffer> <s-leftmouse>		<Plug>NetrwSLeftmouse
    nno  <buffer> <silent>		<Plug>NetrwSLeftmouse 	<leftmouse>:call <SID>NetrwSLeftmouse(0)<cr>
    nmap <buffer> <s-leftdrag>		<Plug>NetrwSLeftdrag
    nno  <buffer> <silent>		<Plug>NetrwSLeftdrag	<leftmouse>:call <SID>NetrwSLeftdrag(0)<cr>
    nmap <middlemouse>			<Plug>NetrwMiddlemouse
    nno  <buffer> <silent>		<middlemouse>		<Plug>NetrwMiddlemouse <leftmouse>:call <SID>NetrwPrevWinOpen(0)<cr>
    nmap <buffer> <2-leftmouse>		<Plug>Netrw2Leftmouse
    nmap <buffer> <silent>		<Plug>Netrw2Leftmouse	-
    imap <buffer> <leftmouse>		<Plug>ILeftmouse
"    ino  <buffer> <silent>		<Plug>ILeftmouse	<c-o><leftmouse><c-o>:call <SID>NetrwLeftmouse(0)<cr>
    imap <buffer> <middlemouse>		<Plug>IMiddlemouse
"    ino  <buffer> <silent>		<Plug>IMiddlemouse	<c-o><leftmouse><c-o>:call <SID>NetrwPrevWinOpen(0)<cr>
    imap <buffer> <s-leftmouse>		<Plug>ISLeftmouse
"    ino  <buffer> <silent>		<Plug>ISLeftmouse	<c-o><leftmouse><c-o>:call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr>
    exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
    exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
"    exe 'inoremap <buffer> <silent> <rightmouse> <c-o><leftmouse><c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
   endif
   exe 'nnoremap <buffer> <silent> <nowait> <del>	:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
   exe 'nnoremap <buffer> <silent> <nowait> d		:call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>'
   exe 'nnoremap <buffer> <silent> <nowait> D		:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
   exe 'nnoremap <buffer> <silent> <nowait> R		:call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
   exe 'vnoremap <buffer> <silent> <nowait> <del>	:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
   exe 'vnoremap <buffer> <silent> <nowait> D		:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
   exe 'vnoremap <buffer> <silent> <nowait> R		:call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> <del>	<c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> d		<c-o>:call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> D		<c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
"   exe 'inoremap <buffer> <silent> <nowait> R		<c-o>:call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
   nnoremap <buffer> <F1>			:he netrw-quickhelp<cr>
"   inoremap <buffer> <F1>			<c-o>:he netrw-quickhelp<cr>

   " support user-specified maps
   call netrw#UserMaps(0)
  endif

"  call Dret("s:NetrwMaps")
endfun

" ---------------------------------------------------------------------
" s:NetrwCommands: set up commands 				{{{2
"  If -buffer, the command is only available from within netrw buffers
"  Otherwise, the command is available from any window, so long as netrw
"  has been used at least once in the session.
fun! s:NetrwCommands(islocal)
"  call Dfunc("s:NetrwCommands(islocal=".a:islocal.")")

  com! -nargs=* -complete=file -bang	NetrwMB	call s:NetrwBookmark(<bang>0,<f-args>)
  com! -nargs=*			    	NetrwC	call s:NetrwSetChgwin(<q-args>)
  com! Rexplore if exists("w:netrw_rexlocal")|call s:NetrwRexplore(w:netrw_rexlocal,exists("w:netrw_rexdir")? w:netrw_rexdir : ".")|else|call netrw#ErrorMsg(s:WARNING,"win#".winnr()." not a former netrw window",79)|endif
  if a:islocal
   com! -buffer -nargs=+ -complete=file	MF	call s:NetrwMarkFiles(1,<f-args>)
  else
   com! -buffer -nargs=+ -complete=file	MF	call s:NetrwMarkFiles(0,<f-args>)
  endif
  com! -buffer -nargs=? -complete=file	MT	call s:NetrwMarkTarget(<q-args>)

"  call Dret("s:NetrwCommands")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFiles: apply s:NetrwMarkFile() to named file(s) {{{2
"                   glob()ing only works with local files
fun! s:NetrwMarkFiles(islocal,...)
"  call Dfunc("s:NetrwMarkFiles(islocal=".a:islocal."...) a:0=".a:0)
  let curdir = s:NetrwGetCurdir(a:islocal)
  let i      = 1
  while i <= a:0
   if a:islocal
    if v:version > 704 || (v:version == 704 && has("patch656"))
     let mffiles= glob(fnameescape(a:{i}),0,1,1)
    else
     let mffiles= glob(fnameescape(a:{i}),0,1)
    endif
   else
    let mffiles= [a:{i}]
   endif
"   call Decho("mffiles".string(mffiles),'~'.expand("<slnum>"))
   for mffile in mffiles
"    call Decho("mffile<".mffile.">",'~'.expand("<slnum>"))
    call s:NetrwMarkFile(a:islocal,mffile)
   endfor
   let i= i + 1
  endwhile
"  call Dret("s:NetrwMarkFiles")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkTarget: implements :MT (mark target) {{{2
fun! s:NetrwMarkTarget(...)
"  call Dfunc("s:NetrwMarkTarget() a:0=".a:0)
  if a:0 == 0 || (a:0 == 1 && a:1 == "")
   let curdir = s:NetrwGetCurdir(1)
   let tgt    = b:netrw_curdir
  else
   let curdir = s:NetrwGetCurdir((a:1 =~ '^\a\{3,}://')? 0 : 1)
   let tgt    = a:1
  endif
"  call Decho("tgt<".tgt.">",'~'.expand("<slnum>"))
  let s:netrwmftgt         = tgt
  let s:netrwmftgt_islocal = tgt !~ '^\a\{3,}://'
  let curislocal           = b:netrw_curdir !~ '^\a\{3,}://'
  let svpos                = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call s:NetrwRefresh(curislocal,s:NetrwBrowseChgDir(curislocal,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call winrestview(svpos)
"  call Dret("s:NetrwMarkTarget")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFile: (invoked by mf) This function is used to both {{{2
"                  mark and unmark files.  If a markfile list exists,
"                  then the rename and delete functions will use it instead
"                  of whatever may happen to be under the cursor at that
"                  moment.  When the mouse and gui are available,
"                  shift-leftmouse may also be used to mark files.
"
"  Creates two lists
"    s:netrwmarkfilelist    -- holds complete paths to all marked files
"    s:netrwmarkfilelist_#  -- holds list of marked files in current-buffer's directory (#==bufnr())
"
"  Creates a marked file match string
"    s:netrwmarfilemtch_#   -- used with 2match to display marked files
"
"  Creates a buffer version of islocal
"    b:netrw_islocal
fun! s:NetrwMarkFile(islocal,fname)
"  call Dfunc("s:NetrwMarkFile(islocal=".a:islocal." fname<".a:fname.">)")
"  call Decho("bufnr(%)=".bufnr("%").": ".bufname("%"),'~'.expand("<slnum>"))

  " sanity check
  if empty(a:fname)
"   call Dret("s:NetrwMarkFile : emtpy fname")
   return
  endif
  let curdir = s:NetrwGetCurdir(a:islocal)

  let ykeep   = @@
  let curbufnr= bufnr("%")
  if a:fname =~ '^\a'
   let leader= '\<'
  else
   let leader= ''
  endif
  if a:fname =~ '\a$'
   let trailer = '\>[@=|\/\*]\=\ze\%(  \|\t\|$\)'
  else
   let trailer = '[@=|\/\*]\=\ze\%(  \|\t\|$\)'
  endif

  if exists("s:netrwmarkfilelist_".curbufnr)
   " markfile list pre-exists
"   call Decho("case s:netrwmarkfilelist_".curbufnr." already exists",'~'.expand("<slnum>"))
"   call Decho("starting s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}).">",'~'.expand("<slnum>"))
"   call Decho("starting s:netrwmarkfilemtch_".curbufnr."<".s:netrwmarkfilemtch_{curbufnr}.">",'~'.expand("<slnum>"))
   let b:netrw_islocal= a:islocal

   if index(s:netrwmarkfilelist_{curbufnr},a:fname) == -1
    " append filename to buffer's markfilelist
"    call Decho("append filename<".a:fname."> to local markfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}).">",'~'.expand("<slnum>"))
    call add(s:netrwmarkfilelist_{curbufnr},a:fname)
    let s:netrwmarkfilemtch_{curbufnr}= s:netrwmarkfilemtch_{curbufnr}.'\|'.leader.escape(a:fname,g:netrw_markfileesc).trailer

   else
    " remove filename from buffer's markfilelist
"    call Decho("remove filename<".a:fname."> from local markfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}).">",'~'.expand("<slnum>"))
    call filter(s:netrwmarkfilelist_{curbufnr},'v:val != a:fname')
    if s:netrwmarkfilelist_{curbufnr} == []
     " local markfilelist is empty; remove it entirely
"     call Decho("markfile list now empty",'~'.expand("<slnum>"))
     call s:NetrwUnmarkList(curbufnr,curdir)
    else
     " rebuild match list to display markings correctly
"     call Decho("rebuild s:netrwmarkfilemtch_".curbufnr,'~'.expand("<slnum>"))
     let s:netrwmarkfilemtch_{curbufnr}= ""
     let first                         = 1
     for fname in s:netrwmarkfilelist_{curbufnr}
      if first
       let s:netrwmarkfilemtch_{curbufnr}= s:netrwmarkfilemtch_{curbufnr}.leader.escape(fname,g:netrw_markfileesc).trailer
      else
       let s:netrwmarkfilemtch_{curbufnr}= s:netrwmarkfilemtch_{curbufnr}.'\|'.leader.escape(fname,g:netrw_markfileesc).trailer
      endif
      let first= 0
     endfor
"     call Decho("ending s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}).">",'~'.expand("<slnum>"))
    endif
   endif

  else
   " initialize new markfilelist
"   call Decho("case: initialize new markfilelist",'~'.expand("<slnum>"))

"   call Decho("add fname<".a:fname."> to new markfilelist_".curbufnr,'~'.expand("<slnum>"))
   let s:netrwmarkfilelist_{curbufnr}= []
   call add(s:netrwmarkfilelist_{curbufnr},substitute(a:fname,'[|@]$','',''))
"   call Decho("ending s:netrwmarkfilelist_{curbufnr}<".string(s:netrwmarkfilelist_{curbufnr}).">",'~'.expand("<slnum>"))

   " build initial markfile matching pattern
   if a:fname =~ '/$'
    let s:netrwmarkfilemtch_{curbufnr}= leader.escape(a:fname,g:netrw_markfileesc)
   else
    let s:netrwmarkfilemtch_{curbufnr}= leader.escape(a:fname,g:netrw_markfileesc).trailer
   endif
"   call Decho("ending s:netrwmarkfilemtch_".curbufnr."<".s:netrwmarkfilemtch_{curbufnr}.">",'~'.expand("<slnum>"))
  endif

  " handle global markfilelist
  if exists("s:netrwmarkfilelist")
   let dname= s:ComposePath(b:netrw_curdir,a:fname)
   if index(s:netrwmarkfilelist,dname) == -1
    " append new filename to global markfilelist
    call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname))
"    call Decho("append filename<".a:fname."> to global markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
   else
    " remove new filename from global markfilelist
"    call Decho("filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>"))
    call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"')
"    call Decho("ending s:netrwmarkfilelist  <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
    if s:netrwmarkfilelist == []
     unlet s:netrwmarkfilelist
    endif
   endif
  else
   " initialize new global-directory markfilelist
   let s:netrwmarkfilelist= []
   call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname))
"   call Decho("init s:netrwmarkfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
  endif

  " set up 2match'ing to netrwmarkfilemtch_# list
  if exists("s:netrwmarkfilemtch_{curbufnr}") && s:netrwmarkfilemtch_{curbufnr} != ""
"   call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{curbufnr}."/",'~'.expand("<slnum>"))
   if exists("g:did_drchip_netrwlist_syntax")
    exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{curbufnr}."/"
   endif
  else
"   call Decho("2match none",'~'.expand("<slnum>"))
   2match none
  endif
  let @@= ykeep
"  call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist").">")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileArgList: ma: move the marked file list to the argument list (tomflist=0) {{{2
"                         mA: move the argument list to marked file list     (tomflist=1)
"                            Uses the global marked file list
fun! s:NetrwMarkFileArgList(islocal,tomflist)
"  call Dfunc("s:NetrwMarkFileArgList(islocal=".a:islocal.",tomflist=".a:tomflist.")")

  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")

  if a:tomflist
   " mA: move argument list to marked file list
   while argc()
    let fname= argv(0)
"    call Decho("exe argdel ".fname,'~'.expand("<slnum>"))
    exe "argdel ".fnameescape(fname)
    call s:NetrwMarkFile(a:islocal,fname)
   endwhile

  else
   " ma: move marked file list to argument list
   if exists("s:netrwmarkfilelist")

    " for every filename in the marked list
    for fname in s:netrwmarkfilelist
"     call Decho("exe argadd ".fname,'~'.expand("<slnum>"))
     exe "argadd ".fnameescape(fname)
    endfor	" for every file in the marked list

    " unmark list and refresh
    call s:NetrwUnmarkList(curbufnr,curdir)
    NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"    call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
    NetrwKeepj call winrestview(svpos)
   endif
  endif

"  call Dret("s:NetrwMarkFileArgList")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileCompress: (invoked by mz) This function is used to {{{2
"                          compress/decompress files using the programs
"                          in g:netrw_compress and g:netrw_uncompress,
"                          using g:netrw_compress_suffix to know which to
"                          do.  By default:
"                            g:netrw_compress        = "gzip"
"                            g:netrw_decompress      = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf", ".xz" : "unxz"}
fun! s:NetrwMarkFileCompress(islocal)
"  call Dfunc("s:NetrwMarkFileCompress(islocal=".a:islocal.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileCompress")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

  if exists("s:netrwmarkfilelist_{curbufnr}") && exists("g:netrw_compress") && exists("g:netrw_decompress")

   " for every filename in the marked list
   for fname in s:netrwmarkfilelist_{curbufnr}
    let sfx= substitute(fname,'^.\{-}\(\.\a\+\)$','\1','')
"    call Decho("extracted sfx<".sfx.">",'~'.expand("<slnum>"))
    if exists("g:netrw_decompress['".sfx."']")
     " fname has a suffix indicating that its compressed; apply associated decompression routine
     let exe= g:netrw_decompress[sfx]
"     call Decho("fname<".fname."> is compressed so decompress with <".exe.">",'~'.expand("<slnum>"))
     let exe= netrw#WinPath(exe)
     if a:islocal
      if g:netrw_keepdir
       let fname= s:ShellEscape(s:ComposePath(curdir,fname))
      endif
     else
      let fname= s:ShellEscape(b:netrw_curdir.fname,1)
     endif
     if executable(exe)
      if a:islocal
       call system(exe." ".fname)
      else
       NetrwKeepj call s:RemoteSystem(exe." ".fname)
      endif
     else
      NetrwKeepj call netrw#ErrorMsg(s:WARNING,"unable to apply<".exe."> to file<".fname.">",50)
     endif
    endif
    unlet sfx

    if exists("exe")
     unlet exe
    elseif a:islocal
     " fname not a compressed file, so compress it
     call system(netrw#WinPath(g:netrw_compress)." ".s:ShellEscape(s:ComposePath(b:netrw_curdir,fname)))
    else
     " fname not a compressed file, so compress it
     NetrwKeepj call s:RemoteSystem(netrw#WinPath(g:netrw_compress)." ".s:ShellEscape(fname))
    endif
   endfor	" for every file in the marked list

   call s:NetrwUnmarkList(curbufnr,curdir)
   NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)
  endif
"  call Dret("s:NetrwMarkFileCompress")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileCopy: (invoked by mc) copy marked files to target {{{2
"                      If no marked files, then set up directory as the
"                      target.  Currently does not support copying entire
"                      directories.  Uses the local-buffer marked file list.
"                      Returns 1=success  (used by NetrwMarkFileMove())
"                              0=failure
fun! s:NetrwMarkFileCopy(islocal,...)
"  call Dfunc("s:NetrwMarkFileCopy(islocal=".a:islocal.") target<".(exists("s:netrwmftgt")? s:netrwmftgt : '---')."> a:0=".a:0)

  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")
  if b:netrw_curdir !~ '/$'
   if !exists("b:netrw_curdir")
    let b:netrw_curdir= curdir
   endif
   let b:netrw_curdir= b:netrw_curdir."/"
  endif

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileCopy")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

  if !exists("s:netrwmftgt")
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"your marked file target is empty! (:help netrw-mt)",67)
"   call Dret("s:NetrwMarkFileCopy 0")
   return 0
  endif
"  call Decho("sanity chk passed: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))

  if a:islocal &&  s:netrwmftgt_islocal
   " Copy marked files, local directory to local directory
"   call Decho("copy from local to local",'~'.expand("<slnum>"))
   if !executable(g:netrw_localcopycmd) && g:netrw_localcopycmd !~ '^'.expand("$COMSPEC").'\s'
    call netrw#ErrorMsg(s:ERROR,"g:netrw_localcopycmd<".g:netrw_localcopycmd."> not executable on your system, aborting",91)
"    call Dfunc("s:NetrwMarkFileMove : g:netrw_localcopycmd<".g:netrw_localcopycmd."> n/a!")
    return
   endif

   " copy marked files while within the same directory (ie. allow renaming)
   if simplify(s:netrwmftgt) == simplify(b:netrw_curdir)
    if len(s:netrwmarkfilelist_{bufnr('%')}) == 1
     " only one marked file
"     call Decho("case: only one marked file",'~'.expand("<slnum>"))
     let args    = s:ShellEscape(b:netrw_curdir.s:netrwmarkfilelist_{bufnr('%')}[0])
     let oldname = s:netrwmarkfilelist_{bufnr('%')}[0]
    elseif a:0 == 1
"     call Decho("case: handling one input argument",'~'.expand("<slnum>"))
     " this happens when the next case was used to recursively call s:NetrwMarkFileCopy()
     let args    = s:ShellEscape(b:netrw_curdir.a:1)
     let oldname = a:1
    else
     " copy multiple marked files inside the same directory
"     call Decho("case: handling a multiple marked files",'~'.expand("<slnum>"))
     let s:recursive= 1
     for oldname in s:netrwmarkfilelist_{bufnr("%")}
      let ret= s:NetrwMarkFileCopy(a:islocal,oldname)
      if ret == 0
       break
      endif
     endfor
     unlet s:recursive
     call s:NetrwUnmarkList(curbufnr,curdir)
"     call Dret("s:NetrwMarkFileCopy ".ret)
     return ret
    endif

    call inputsave()
    let newname= input("Copy ".oldname." to : ",oldname,"file")
    call inputrestore()
    if newname == ""
"     call Dret("s:NetrwMarkFileCopy 0")
     return 0
    endif
    let args= s:ShellEscape(oldname)
    let tgt = s:ShellEscape(s:netrwmftgt.'/'.newname)
   else
    let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"s:ShellEscape(b:netrw_curdir.\"/\".v:val)"))
    let tgt = s:ShellEscape(s:netrwmftgt)
   endif
   if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
    let args= substitute(args,'/','\\','g')
    let tgt = substitute(tgt, '/','\\','g')
   endif
   if args =~ "'" |let args= substitute(args,"'\\(.*\\)'",'\1','')|endif
   if tgt  =~ "'" |let tgt = substitute(tgt ,"'\\(.*\\)'",'\1','')|endif
   if args =~ '//'|let args= substitute(args,'//','/','g')|endif
   if tgt  =~ '//'|let tgt = substitute(tgt ,'//','/','g')|endif
"   call Decho("args   <".args.">",'~'.expand("<slnum>"))
"   call Decho("tgt    <".tgt.">",'~'.expand("<slnum>"))
   if isdirectory(s:NetrwFile(args))
"    call Decho("args<".args."> is a directory",'~'.expand("<slnum>"))
    let copycmd= g:netrw_localcopydircmd
"    call Decho("using copydircmd<".copycmd.">",'~'.expand("<slnum>"))
    if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
     " window's xcopy doesn't copy a directory to a target properly.  Instead, it copies a directory's
     " contents to a target.  One must append the source directory name to the target to get xcopy to
     " do the right thing.
     let tgt= tgt.'\'.substitute(a:1,'^.*[\\/]','','')
"     call Decho("modified tgt for xcopy",'~'.expand("<slnum>"))
    endif
   else
    let copycmd= g:netrw_localcopycmd
   endif
   if g:netrw_localcopycmd =~ '\s'
    let copycmd     = substitute(copycmd,'\s.*$','','')
    let copycmdargs = substitute(copycmd,'^.\{-}\(\s.*\)$','\1','')
    let copycmd     = netrw#WinPath(copycmd).copycmdargs
   else
    let copycmd = netrw#WinPath(copycmd)
   endif
"   call Decho("args   <".args.">",'~'.expand("<slnum>"))
"   call Decho("tgt    <".tgt.">",'~'.expand("<slnum>"))
"   call Decho("copycmd<".copycmd.">",'~'.expand("<slnum>"))
"   call Decho("system(".copycmd." '".args."' '".tgt."')",'~'.expand("<slnum>"))
   call system(copycmd." '".args."' '".tgt."'")
   if v:shell_error != 0
    if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir
     call netrw#ErrorMsg(s:ERROR,"copy failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-c)",101)
    else
     call netrw#ErrorMsg(s:ERROR,"tried using g:netrw_localcopycmd<".g:netrw_localcopycmd.">; it doesn't work!",80)
    endif
"    call Dret("s:NetrwMarkFileCopy 0 : failed: system(".g:netrw_localcopycmd." ".args." ".s:ShellEscape(s:netrwmftgt))
    return 0
   endif

  elseif  a:islocal && !s:netrwmftgt_islocal
   " Copy marked files, local directory to remote directory
"   call Decho("copy from local to remote",'~'.expand("<slnum>"))
   NetrwKeepj call s:NetrwUpload(s:netrwmarkfilelist_{bufnr('%')},s:netrwmftgt)

  elseif !a:islocal &&  s:netrwmftgt_islocal
   " Copy marked files, remote directory to local directory
"   call Decho("copy from remote to local",'~'.expand("<slnum>"))
   NetrwKeepj call netrw#Obtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},s:netrwmftgt)

  elseif !a:islocal && !s:netrwmftgt_islocal
   " Copy marked files, remote directory to remote directory
"   call Decho("copy from remote to remote",'~'.expand("<slnum>"))
   let curdir = getcwd()
   let tmpdir = s:GetTempfile("")
   if tmpdir !~ '/'
    let tmpdir= curdir."/".tmpdir
   endif
   if exists("*mkdir")
    call mkdir(tmpdir)
   else
    call s:NetrwExe("sil! !".g:netrw_localmkdir.' '.s:ShellEscape(tmpdir,1))
    if v:shell_error != 0
     call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localmkdir<".g:netrw_localmkdir."> to something that works",80)
"     call Dret("s:NetrwMarkFileCopy : failed: sil! !".g:netrw_localmkdir.' '.s:ShellEscape(tmpdir,1) )
     return
    endif
   endif
   if isdirectory(s:NetrwFile(tmpdir))
    call s:NetrwLcd(tmpdir)
    NetrwKeepj call netrw#Obtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir)
    let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")')
    NetrwKeepj call s:NetrwUpload(localfiles,s:netrwmftgt)
    if getcwd() == tmpdir
     for fname in s:netrwmarkfilelist_{bufnr('%')}
      NetrwKeepj call s:NetrwDelete(fname)
     endfor
     call s:NetrwLcd(curdir)
     if v:version < 704 || !has("patch1109")
      call s:NetrwExe("sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1))
      if v:shell_error != 0
       call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localrmdir<".g:netrw_localrmdir."> to something that works",80)
" "      call Dret("s:NetrwMarkFileCopy : failed: sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1) )
       return
      endif
     else
      if delete(tmpdir,"d")
       call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
      endif
     endif
    else
     call s:NetrwLcd(curdir)
    endif
   endif
  endif

  " -------
  " cleanup
  " -------
"  call Decho("cleanup",'~'.expand("<slnum>"))
  " remove markings from local buffer
  call s:NetrwUnmarkList(curbufnr,curdir)                   " remove markings from local buffer
"  call Decho(" g:netrw_fastbrowse  =".g:netrw_fastbrowse,'~'.expand("<slnum>"))
"  call Decho(" s:netrwmftgt        =".s:netrwmftgt,'~'.expand("<slnum>"))
"  call Decho(" s:netrwmftgt_islocal=".s:netrwmftgt_islocal,'~'.expand("<slnum>"))
"  call Decho(" curdir              =".curdir,'~'.expand("<slnum>"))
"  call Decho(" a:islocal           =".a:islocal,'~'.expand("<slnum>"))
"  call Decho(" curbufnr            =".curbufnr,'~'.expand("<slnum>"))
  if exists("s:recursive")
"   call Decho(" s:recursive         =".s:recursive,'~'.expand("<slnum>"))
  else
"   call Decho(" s:recursive         =n/a",'~'.expand("<slnum>"))
  endif
  " see s:LocalFastBrowser() for g:netrw_fastbrowse interpretation (refreshing done for both slow and medium)
  if g:netrw_fastbrowse <= 1
   NetrwKeepj call s:LocalBrowseRefresh()
  else
   " refresh local and targets for fast browsing
   if !exists("s:recursive")
    " remove markings from local buffer
"    call Decho(" remove markings from local buffer",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwUnmarkList(curbufnr,curdir)
   endif

   " refresh buffers
   if s:netrwmftgt_islocal
"    call Decho(" refresh s:netrwmftgt=".s:netrwmftgt,'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwRefreshDir(s:netrwmftgt_islocal,s:netrwmftgt)
   endif
   if a:islocal && s:netrwmftgt != curdir
"    call Decho(" refresh curdir=".curdir,'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwRefreshDir(a:islocal,curdir)
   endif
  endif

"  call Dret("s:NetrwMarkFileCopy 1")
  return 1
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileDiff: (invoked by md) This function is used to {{{2
"                      invoke vim's diff mode on the marked files.
"                      Either two or three files can be so handled.
"                      Uses the global marked file list.
fun! s:NetrwMarkFileDiff(islocal)
"  call Dfunc("s:NetrwMarkFileDiff(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">")
  let curbufnr= bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileDiff")
   return
  endif
  let curdir= s:NetrwGetCurdir(a:islocal)
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

  if exists("s:netrwmarkfilelist_{".curbufnr."}")
   let cnt    = 0
   for fname in s:netrwmarkfilelist
    let cnt= cnt + 1
    if cnt == 1
"     call Decho("diffthis: fname<".fname.">",'~'.expand("<slnum>"))
     exe "NetrwKeepj e ".fnameescape(fname)
     diffthis
    elseif cnt == 2 || cnt == 3
     vsplit
     wincmd l
"     call Decho("diffthis: ".fname,'~'.expand("<slnum>"))
     exe "NetrwKeepj e ".fnameescape(fname)
     diffthis
    else
     break
    endif
   endfor
   call s:NetrwUnmarkList(curbufnr,curdir)
  endif

"  call Dret("s:NetrwMarkFileDiff")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileEdit: (invoked by me) put marked files on arg list and start editing them {{{2
"                       Uses global markfilelist
fun! s:NetrwMarkFileEdit(islocal)
"  call Dfunc("s:NetrwMarkFileEdit(islocal=".a:islocal.")")

  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileEdit")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

  if exists("s:netrwmarkfilelist_{curbufnr}")
   call s:SetRexDir(a:islocal,curdir)
   let flist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
   " unmark markedfile list
"   call s:NetrwUnmarkList(curbufnr,curdir)
   call s:NetrwUnmarkAll()
"   call Decho("exe sil args ".flist,'~'.expand("<slnum>"))
   exe "sil args ".flist
  endif
  echo "(use :bn, :bp to navigate files; :Rex to return)"

"  call Dret("s:NetrwMarkFileEdit")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileQFEL: convert a quickfix-error or location list into a marked file list {{{2
fun! s:NetrwMarkFileQFEL(islocal,qfel)
"  call Dfunc("s:NetrwMarkFileQFEL(islocal=".a:islocal.",qfel)")
  call s:NetrwUnmarkAll()
  let curbufnr= bufnr("%")

  if !empty(a:qfel)
   for entry in a:qfel
    let bufnmbr= entry["bufnr"]
"    call Decho("bufname(".bufnmbr.")<".bufname(bufnmbr)."> line#".entry["lnum"]." text=".entry["text"],'~'.expand("<slnum>"))
    if !exists("s:netrwmarkfilelist_{curbufnr}")
"     call Decho("case: no marked file list",'~'.expand("<slnum>"))
     call s:NetrwMarkFile(a:islocal,bufname(bufnmbr))
    elseif index(s:netrwmarkfilelist_{curbufnr},bufname(bufnmbr)) == -1
     " s:NetrwMarkFile will remove duplicate entries from the marked file list.
     " So, this test lets two or more hits on the same pattern to be ignored.
"     call Decho("case: ".bufname(bufnmbr)." not currently in marked file list",'~'.expand("<slnum>"))
     call s:NetrwMarkFile(a:islocal,bufname(bufnmbr))
    else
"     call Decho("case: ".bufname(bufnmbr)." already in marked file list",'~'.expand("<slnum>"))
    endif
   endfor
   echo "(use me to edit marked files)"
  else
   call netrw#ErrorMsg(s:WARNING,"can't convert quickfix error list; its empty!",92)
  endif

"  call Dret("s:NetrwMarkFileQFEL")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileExe: (invoked by mx and mX) execute arbitrary system command on marked files {{{2
"                     mx enbloc=0: Uses the local marked-file list, applies command to each file individually
"                     mX enbloc=1: Uses the global marked-file list, applies command to entire list
fun! s:NetrwMarkFileExe(islocal,enbloc)
"  call Dfunc("s:NetrwMarkFileExe(islocal=".a:islocal.",enbloc=".a:enbloc.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")

  if a:enbloc == 0
   " individually apply command to files, one at a time
    " sanity check
    if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
     NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"     call Dret("s:NetrwMarkFileExe")
     return
    endif
"    call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

    if exists("s:netrwmarkfilelist_{curbufnr}")
     " get the command
     call inputsave()
     let cmd= input("Enter command: ","","file")
     call inputrestore()
"     call Decho("cmd<".cmd.">",'~'.expand("<slnum>"))
     if cmd == ""
"      call Dret("s:NetrwMarkFileExe : early exit, empty command")
      return
     endif

     " apply command to marked files, individually.  Substitute: filename -> %
     " If no %, then append a space and the filename to the command
     for fname in s:netrwmarkfilelist_{curbufnr}
      if a:islocal
       if g:netrw_keepdir
	let fname= s:ShellEscape(netrw#WinPath(s:ComposePath(curdir,fname)))
       endif
      else
       let fname= s:ShellEscape(netrw#WinPath(b:netrw_curdir.fname))
      endif
      if cmd =~ '%'
       let xcmd= substitute(cmd,'%',fname,'g')
      else
       let xcmd= cmd.' '.fname
      endif
      if a:islocal
"       call Decho("local: xcmd<".xcmd.">",'~'.expand("<slnum>"))
       let ret= system(xcmd)
      else
"       call Decho("remote: xcmd<".xcmd.">",'~'.expand("<slnum>"))
       let ret= s:RemoteSystem(xcmd)
      endif
      if v:shell_error < 0
       NetrwKeepj call netrw#ErrorMsg(s:ERROR,"command<".xcmd."> failed, aborting",54)
       break
      else
       echo ret
      endif
     endfor

   " unmark marked file list
   call s:NetrwUnmarkList(curbufnr,curdir)

   " refresh the listing
   NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)
  else
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"no files marked!",59)
  endif

 else " apply command to global list of files, en bloc

  call inputsave()
  let cmd= input("Enter command: ","","file")
  call inputrestore()
"  call Decho("cmd<".cmd.">",'~'.expand("<slnum>"))
  if cmd == ""
"   call Dret("s:NetrwMarkFileExe : early exit, empty command")
   return
  endif
  if cmd =~ '%'
   let cmd= substitute(cmd,'%',join(map(s:netrwmarkfilelist,'s:ShellEscape(v:val)'),' '),'g')
  else
   let cmd= cmd.' '.join(map(s:netrwmarkfilelist,'s:ShellEscape(v:val)'),' ')
  endif
  if a:islocal
   call system(cmd)
   if v:shell_error < 0
    NetrwKeepj call netrw#ErrorMsg(s:ERROR,"command<".xcmd."> failed, aborting",54)
   endif
  else
   let ret= s:RemoteSystem(cmd)
  endif
  call s:NetrwUnmarkAll()

  " refresh the listing
  NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)

 endif

"  call Dret("s:NetrwMarkFileExe")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkHideSfx: (invoked by mh) (un)hide files having same suffix
"                  as the marked file(s) (toggles suffix presence)
"                  Uses the local marked file list.
fun! s:NetrwMarkHideSfx(islocal)
"  call Dfunc("s:NetrwMarkHideSfx(islocal=".a:islocal.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curbufnr = bufnr("%")

  " s:netrwmarkfilelist_{curbufnr}: the List of marked files
  if exists("s:netrwmarkfilelist_{curbufnr}")

   for fname in s:netrwmarkfilelist_{curbufnr}
"     call Decho("s:NetrwMarkFileCopy: fname<".fname.">",'~'.expand("<slnum>"))
     " construct suffix pattern
     if fname =~ '\.'
      let sfxpat= "^.*".substitute(fname,'^.*\(\.[^. ]\+\)$','\1','')
     else
      let sfxpat= '^\%(\%(\.\)\@!.\)*$'
     endif
     " determine if its in the hiding list or not
     let inhidelist= 0
     if g:netrw_list_hide != ""
      let itemnum = 0
      let hidelist= split(g:netrw_list_hide,',')
      for hidepat in hidelist
       if sfxpat == hidepat
        let inhidelist= 1
        break
       endif
       let itemnum= itemnum + 1
      endfor
     endif
"     call Decho("fname<".fname."> inhidelist=".inhidelist." sfxpat<".sfxpat.">",'~'.expand("<slnum>"))
     if inhidelist
      " remove sfxpat from list
      call remove(hidelist,itemnum)
      let g:netrw_list_hide= join(hidelist,",")
     elseif g:netrw_list_hide != ""
      " append sfxpat to non-empty list
      let g:netrw_list_hide= g:netrw_list_hide.",".sfxpat
     else
      " set hiding list to sfxpat
      let g:netrw_list_hide= sfxpat
     endif
    endfor

   " refresh the listing
   NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)
  else
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"no files marked!",59)
  endif

"  call Dret("s:NetrwMarkHideSfx")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileVimCmd: (invoked by mv) execute arbitrary vim command on marked files, one at a time {{{2
"                     Uses the local marked-file list.
fun! s:NetrwMarkFileVimCmd(islocal)
"  call Dfunc("s:NetrwMarkFileVimCmd(islocal=".a:islocal.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileVimCmd")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

  if exists("s:netrwmarkfilelist_{curbufnr}")
   " get the command
   call inputsave()
   let cmd= input("Enter vim command: ","","file")
   call inputrestore()
"   call Decho("cmd<".cmd.">",'~'.expand("<slnum>"))
   if cmd == ""
"    "   call Dret("s:NetrwMarkFileVimCmd : early exit, empty command")
    return
   endif

   " apply command to marked files.  Substitute: filename -> %
   " If no %, then append a space and the filename to the command
   for fname in s:netrwmarkfilelist_{curbufnr}
"    call Decho("fname<".fname.">",'~'.expand("<slnum>"))
    if a:islocal
     1split
     exe "sil! NetrwKeepj keepalt e ".fnameescape(fname)
"     call Decho("local<".fname.">: exe ".cmd,'~'.expand("<slnum>"))
     exe cmd
     exe "sil! keepalt wq!"
    else
"     call Decho("remote<".fname.">: exe ".cmd." : NOT SUPPORTED YET",'~'.expand("<slnum>"))
     echo "sorry, \"mv\" not supported yet for remote files"
    endif
   endfor

   " unmark marked file list
   call s:NetrwUnmarkList(curbufnr,curdir)

   " refresh the listing
   NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)
  else
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"no files marked!",59)
  endif

"  call Dret("s:NetrwMarkFileVimCmd")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkHideSfx: (invoked by mh) (un)hide files having same suffix
"                  as the marked file(s) (toggles suffix presence)
"                  Uses the local marked file list.
fun! s:NetrwMarkHideSfx(islocal)
"  call Dfunc("s:NetrwMarkHideSfx(islocal=".a:islocal.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curbufnr = bufnr("%")

  " s:netrwmarkfilelist_{curbufnr}: the List of marked files
  if exists("s:netrwmarkfilelist_{curbufnr}")

   for fname in s:netrwmarkfilelist_{curbufnr}
"     call Decho("s:NetrwMarkFileCopy: fname<".fname.">",'~'.expand("<slnum>"))
     " construct suffix pattern
     if fname =~ '\.'
      let sfxpat= "^.*".substitute(fname,'^.*\(\.[^. ]\+\)$','\1','')
     else
      let sfxpat= '^\%(\%(\.\)\@!.\)*$'
     endif
     " determine if its in the hiding list or not
     let inhidelist= 0
     if g:netrw_list_hide != ""
      let itemnum = 0
      let hidelist= split(g:netrw_list_hide,',')
      for hidepat in hidelist
       if sfxpat == hidepat
        let inhidelist= 1
        break
       endif
       let itemnum= itemnum + 1
      endfor
     endif
"     call Decho("fname<".fname."> inhidelist=".inhidelist." sfxpat<".sfxpat.">",'~'.expand("<slnum>"))
     if inhidelist
      " remove sfxpat from list
      call remove(hidelist,itemnum)
      let g:netrw_list_hide= join(hidelist,",")
     elseif g:netrw_list_hide != ""
      " append sfxpat to non-empty list
      let g:netrw_list_hide= g:netrw_list_hide.",".sfxpat
     else
      " set hiding list to sfxpat
      let g:netrw_list_hide= sfxpat
     endif
    endfor

   " refresh the listing
   NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)
  else
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"no files marked!",59)
  endif

"  call Dret("s:NetrwMarkHideSfx")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileGrep: (invoked by mg) This function applies vimgrep to marked files {{{2
"                     Uses the global markfilelist
fun! s:NetrwMarkFileGrep(islocal)
"  call Dfunc("s:NetrwMarkFileGrep(islocal=".a:islocal.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curbufnr = bufnr("%")
  let curdir   = s:NetrwGetCurdir(a:islocal)

  if exists("s:netrwmarkfilelist")
"  call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
   let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
   call s:NetrwUnmarkAll()
  else
"   call Decho('no marked files, using "*"','~'.expand("<slnum>"))
   let netrwmarkfilelist= "*"
  endif

  " ask user for pattern
  call inputsave()
  let pat= input("Enter pattern: ","")
  call inputrestore()
  let patbang = ""
  if pat =~ '^!'
   let patbang = "!"
   let pat     = strpart(pat,2)
  endif
  if pat =~ '^\i'
   let pat    = escape(pat,'/')
   let pat    = '/'.pat.'/'
  else
   let nonisi = pat[0]
  endif

  " use vimgrep for both local and remote
"  call Decho("exe vimgrep".patbang." ".pat." ".netrwmarkfilelist,'~'.expand("<slnum>"))
  try
   exe "NetrwKeepj noautocmd vimgrep".patbang." ".pat." ".netrwmarkfilelist
  catch /^Vim\%((\a\+)\)\=:E480/
   NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no match with pattern<".pat.">",76)
"   call Dret("s:NetrwMarkFileGrep : unable to find pattern<".pat.">")
   return
  endtry
  echo "(use :cn, :cp to navigate, :Rex to return)"

  2match none
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)

  if exists("nonisi")
   " original, user-supplied pattern did not begin with a character from isident
"   call Decho("looking for trailing nonisi<".nonisi."> followed by a j, gj, or jg",'~'.expand("<slnum>"))
   if pat =~# nonisi.'j$\|'.nonisi.'gj$\|'.nonisi.'jg$'
    call s:NetrwMarkFileQFEL(a:islocal,getqflist())
   endif
  endif

"  call Dret("s:NetrwMarkFileGrep")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileMove: (invoked by mm) execute arbitrary command on marked files, one at a time {{{2
"                      uses the global marked file list
"                      s:netrwmfloc= 0: target directory is remote
"                                  = 1: target directory is local
fun! s:NetrwMarkFileMove(islocal)
"  call Dfunc("s:NetrwMarkFileMove(islocal=".a:islocal.")")
  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileMove")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

  if !exists("s:netrwmftgt")
   NetrwKeepj call netrw#ErrorMsg(2,"your marked file target is empty! (:help netrw-mt)",67)
"   call Dret("s:NetrwMarkFileCopy 0")
   return 0
  endif
"  call Decho("sanity chk passed: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))

  if      a:islocal &&  s:netrwmftgt_islocal
   " move: local -> local
"   call Decho("move from local to local",'~'.expand("<slnum>"))
"   call Decho("local to local move",'~'.expand("<slnum>"))
   if !executable(g:netrw_localmovecmd) && g:netrw_localmovecmd !~ '^'.expand("$COMSPEC").'\s'
    call netrw#ErrorMsg(s:ERROR,"g:netrw_localmovecmd<".g:netrw_localmovecmd."> not executable on your system, aborting",90)
"    call Dfunc("s:NetrwMarkFileMove : g:netrw_localmovecmd<".g:netrw_localmovecmd."> n/a!")
    return
   endif
   let tgt         = s:ShellEscape(s:netrwmftgt)
"   call Decho("tgt<".tgt.">",'~'.expand("<slnum>"))
   if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
    let tgt         = substitute(tgt, '/','\\','g')
"    call Decho("windows exception: tgt<".tgt.">",'~'.expand("<slnum>"))
    if g:netrw_localmovecmd =~ '\s'
     let movecmd     = substitute(g:netrw_localmovecmd,'\s.*$','','')
     let movecmdargs = substitute(g:netrw_localmovecmd,'^.\{-}\(\s.*\)$','\1','')
     let movecmd     = netrw#WinPath(movecmd).movecmdargs
"     call Decho("windows exception: movecmd<".movecmd."> (#1: had a space)",'~'.expand("<slnum>"))
    else
     let movecmd = netrw#WinPath(movecmd)
"     call Decho("windows exception: movecmd<".movecmd."> (#2: no space)",'~'.expand("<slnum>"))
    endif
   else
    let movecmd = netrw#WinPath(g:netrw_localmovecmd)
"    call Decho("movecmd<".movecmd."> (#3 linux or cygwin)",'~'.expand("<slnum>"))
   endif
   for fname in s:netrwmarkfilelist_{bufnr("%")}
    if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
     let fname= substitute(fname,'/','\\','g')
    endif
"    call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("<slnum>"))
    let ret= system(movecmd." ".s:ShellEscape(fname)." ".tgt)
    if v:shell_error != 0
     if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir
      call netrw#ErrorMsg(s:ERROR,"move failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-c)",100)
     else
      call netrw#ErrorMsg(s:ERROR,"tried using g:netrw_localmovecmd<".g:netrw_localmovecmd.">; it doesn't work!",54)
     endif
     break
    endif
   endfor

  elseif  a:islocal && !s:netrwmftgt_islocal
   " move: local -> remote
"   call Decho("move from local to remote",'~'.expand("<slnum>"))
"   call Decho("copy",'~'.expand("<slnum>"))
   let mflist= s:netrwmarkfilelist_{bufnr("%")}
   NetrwKeepj call s:NetrwMarkFileCopy(a:islocal)
"   call Decho("remove",'~'.expand("<slnum>"))
   for fname in mflist
    let barefname = substitute(fname,'^\(.*/\)\(.\{-}\)$','\2','')
    let ok        = s:NetrwLocalRmFile(b:netrw_curdir,barefname,1)
   endfor
   unlet mflist

  elseif !a:islocal &&  s:netrwmftgt_islocal
   " move: remote -> local
"   call Decho("move from remote to local",'~'.expand("<slnum>"))
"   call Decho("copy",'~'.expand("<slnum>"))
   let mflist= s:netrwmarkfilelist_{bufnr("%")}
   NetrwKeepj call s:NetrwMarkFileCopy(a:islocal)
"   call Decho("remove",'~'.expand("<slnum>"))
   for fname in mflist
    let barefname = substitute(fname,'^\(.*/\)\(.\{-}\)$','\2','')
    let ok        = s:NetrwRemoteRmFile(b:netrw_curdir,barefname,1)
   endfor
   unlet mflist

  elseif !a:islocal && !s:netrwmftgt_islocal
   " move: remote -> remote
"   call Decho("move from remote to remote",'~'.expand("<slnum>"))
"   call Decho("copy",'~'.expand("<slnum>"))
   let mflist= s:netrwmarkfilelist_{bufnr("%")}
   NetrwKeepj call s:NetrwMarkFileCopy(a:islocal)
"   call Decho("remove",'~'.expand("<slnum>"))
   for fname in mflist
    let barefname = substitute(fname,'^\(.*/\)\(.\{-}\)$','\2','')
    let ok        = s:NetrwRemoteRmFile(b:netrw_curdir,barefname,1)
   endfor
   unlet mflist
  endif

  " -------
  " cleanup
  " -------
"  call Decho("cleanup",'~'.expand("<slnum>"))

  " remove markings from local buffer
  call s:NetrwUnmarkList(curbufnr,curdir)                   " remove markings from local buffer

  " refresh buffers
  if !s:netrwmftgt_islocal
"   call Decho("refresh netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))
   NetrwKeepj call s:NetrwRefreshDir(s:netrwmftgt_islocal,s:netrwmftgt)
  endif
  if a:islocal
"   call Decho("refresh b:netrw_curdir<".b:netrw_curdir.">",'~'.expand("<slnum>"))
   NetrwKeepj call s:NetrwRefreshDir(a:islocal,b:netrw_curdir)
  endif
  if g:netrw_fastbrowse <= 1
"   call Decho("since g:netrw_fastbrowse=".g:netrw_fastbrowse.", perform shell cmd refresh",'~'.expand("<slnum>"))
   NetrwKeepj call s:LocalBrowseRefresh()
  endif

"  call Dret("s:NetrwMarkFileMove")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFilePrint: (invoked by mp) This function prints marked files {{{2
"                       using the hardcopy command.  Local marked-file list only.
fun! s:NetrwMarkFilePrint(islocal)
"  call Dfunc("s:NetrwMarkFilePrint(islocal=".a:islocal.")")
  let curbufnr= bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFilePrint")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))
  let curdir= s:NetrwGetCurdir(a:islocal)

  if exists("s:netrwmarkfilelist_{curbufnr}")
   let netrwmarkfilelist = s:netrwmarkfilelist_{curbufnr}
   call s:NetrwUnmarkList(curbufnr,curdir)
   for fname in netrwmarkfilelist
    if a:islocal
     if g:netrw_keepdir
      let fname= s:ComposePath(curdir,fname)
     endif
    else
     let fname= curdir.fname
    endif
    1split
    " the autocmds will handle both local and remote files
"    call Decho("exe sil e ".escape(fname,' '),'~'.expand("<slnum>"))
    exe "sil NetrwKeepj e ".fnameescape(fname)
"    call Decho("hardcopy",'~'.expand("<slnum>"))
    hardcopy
    q
   endfor
   2match none
  endif
"  call Dret("s:NetrwMarkFilePrint")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileRegexp: (invoked by mr) This function is used to mark {{{2
"                        files when given a regexp (for which a prompt is
"                        issued) (matches to name of files).
fun! s:NetrwMarkFileRegexp(islocal)
"  call Dfunc("s:NetrwMarkFileRegexp(islocal=".a:islocal.")")

  " get the regular expression
  call inputsave()
  let regexp= input("Enter regexp: ","","file")
  call inputrestore()

  if a:islocal
   let curdir= s:NetrwGetCurdir(a:islocal)
   " get the matching list of files using local glob()
"   call Decho("handle local regexp",'~'.expand("<slnum>"))
   let dirname = escape(b:netrw_curdir,g:netrw_glob_escape)
   if v:version > 704 || (v:version == 704 && has("patch656"))
    let files   = glob(s:ComposePath(dirname,regexp),0,0,1)
   else
    let files   = glob(s:ComposePath(dirname,regexp),0,0)
   endif
"   call Decho("files<".files.">",'~'.expand("<slnum>"))
   let filelist= split(files,"\n")

  " mark the list of files
  for fname in filelist
"   call Decho("fname<".fname.">",'~'.expand("<slnum>"))
   NetrwKeepj call s:NetrwMarkFile(a:islocal,substitute(fname,'^.*/','',''))
  endfor

  else
"   call Decho("handle remote regexp",'~'.expand("<slnum>"))

   " convert displayed listing into a filelist
   let eikeep = &ei
   let areg   = @a
   sil NetrwKeepj %y a
   setl ei=all ma
"   call Decho("setl ei=all ma",'~'.expand("<slnum>"))
   1split
   NetrwKeepj call s:NetrwEnew()
   NetrwKeepj call s:NetrwSafeOptions()
   sil NetrwKeepj norm! "ap
   NetrwKeepj 2
   let bannercnt= search('^" =====','W')
   exe "sil NetrwKeepj 1,".bannercnt."d"
   setl bt=nofile
   if     g:netrw_liststyle == s:LONGLIST
    sil NetrwKeepj %s/\s\{2,}\S.*$//e
    call histdel("/",-1)
   elseif g:netrw_liststyle == s:WIDELIST
    sil NetrwKeepj %s/\s\{2,}/\r/ge
    call histdel("/",-1)
   elseif g:netrw_liststyle == s:TREELIST
    exe 'sil NetrwKeepj %s/^'.s:treedepthstring.' //e'
    sil! NetrwKeepj g/^ .*$/d
    call histdel("/",-1)
    call histdel("/",-1)
   endif
   " convert regexp into the more usual glob-style format
   let regexp= substitute(regexp,'\*','.*','g')
"   call Decho("regexp<".regexp.">",'~'.expand("<slnum>"))
   exe "sil! NetrwKeepj v/".escape(regexp,'/')."/d"
   call histdel("/",-1)
   let filelist= getline(1,line("$"))
   q!
   for filename in filelist
    NetrwKeepj call s:NetrwMarkFile(a:islocal,substitute(filename,'^.*/','',''))
   endfor
   unlet filelist
   let @a  = areg
   let &ei = eikeep
  endif
  echo "  (use me to edit marked files)"

"  call Dret("s:NetrwMarkFileRegexp")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileSource: (invoked by ms) This function sources marked files {{{2
"                        Uses the local marked file list.
fun! s:NetrwMarkFileSource(islocal)
"  call Dfunc("s:NetrwMarkFileSource(islocal=".a:islocal.")")
  let curbufnr= bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileSource")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))
  let curdir= s:NetrwGetCurdir(a:islocal)

  if exists("s:netrwmarkfilelist_{curbufnr}")
   let netrwmarkfilelist = s:netrwmarkfilelist_{bufnr("%")}
   call s:NetrwUnmarkList(curbufnr,curdir)
   for fname in netrwmarkfilelist
    if a:islocal
     if g:netrw_keepdir
      let fname= s:ComposePath(curdir,fname)
     endif
    else
     let fname= curdir.fname
    endif
    " the autocmds will handle sourcing both local and remote files
"    call Decho("exe so ".fnameescape(fname),'~'.expand("<slnum>"))
    exe "so ".fnameescape(fname)
   endfor
   2match none
  endif
"  call Dret("s:NetrwMarkFileSource")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileTag: (invoked by mT) This function applies g:netrw_ctags to marked files {{{2
"                     Uses the global markfilelist
fun! s:NetrwMarkFileTag(islocal)
"  call Dfunc("s:NetrwMarkFileTag(islocal=".a:islocal.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curdir   = s:NetrwGetCurdir(a:islocal)
  let curbufnr = bufnr("%")

  " sanity check
  if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
   NetrwKeepj call netrw#ErrorMsg(2,"there are no marked files in this window (:help netrw-mf)",66)
"   call Dret("s:NetrwMarkFileTag")
   return
  endif
"  call Decho("sanity chk passed: s:netrwmarkfilelist_".curbufnr."<".string(s:netrwmarkfilelist_{curbufnr}),'~'.expand("<slnum>"))

  if exists("s:netrwmarkfilelist")
"   call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
   let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "s:ShellEscape(v:val,".!a:islocal.")"))
   call s:NetrwUnmarkAll()

   if a:islocal
    if executable(g:netrw_ctags)
"     call Decho("call system(".g:netrw_ctags." ".netrwmarkfilelist.")",'~'.expand("<slnum>"))
     call system(g:netrw_ctags." ".netrwmarkfilelist)
    else
     call netrw#ErrorMsg(s:ERROR,"g:netrw_ctags<".g:netrw_ctags."> is not executable!",51)
    endif
   else
    let cmd   = s:RemoteSystem(g:netrw_ctags." ".netrwmarkfilelist)
    call netrw#Obtain(a:islocal,"tags")
    let curdir= b:netrw_curdir
    1split
    NetrwKeepj e tags
    let path= substitute(curdir,'^\(.*\)/[^/]*$','\1/','')
"    call Decho("curdir<".curdir."> path<".path.">",'~'.expand("<slnum>"))
    exe 'NetrwKeepj %s/\t\(\S\+\)\t/\t'.escape(path,"/\n\r\\").'\1\t/e'
    call histdel("/",-1)
    wq!
   endif
   2match none
   call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   call winrestview(svpos)
  endif

"  call Dret("s:NetrwMarkFileTag")
endfun

" ---------------------------------------------------------------------
" s:NetrwMarkFileTgt:  (invoked by mt) This function sets up a marked file target {{{2
"   Sets up two variables,
"     s:netrwmftgt         : holds the target directory
"     s:netrwmftgt_islocal : 0=target directory is remote
"                            1=target directory is local
fun! s:NetrwMarkFileTgt(islocal)
" call Dfunc("s:NetrwMarkFileTgt(islocal=".a:islocal.")")
  let svpos  = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curdir = s:NetrwGetCurdir(a:islocal)
  let hadtgt = exists("s:netrwmftgt")
  if !exists("w:netrw_bannercnt")
   let w:netrw_bannercnt= b:netrw_bannercnt
  endif

  " set up target
  if line(".") < w:netrw_bannercnt
"   call Decho("set up target: line(.) < w:netrw_bannercnt=".w:netrw_bannercnt,'~'.expand("<slnum>"))
   " if cursor in banner region, use b:netrw_curdir for the target unless its already the target
   if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal") && s:netrwmftgt == b:netrw_curdir
"    call Decho("cursor in banner region, and target already is <".b:netrw_curdir.">: removing target",'~'.expand("<slnum>"))
    unlet s:netrwmftgt s:netrwmftgt_islocal
    if g:netrw_fastbrowse <= 1
     call s:LocalBrowseRefresh()
    endif
    call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"    call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
    call winrestview(svpos)
"    call Dret("s:NetrwMarkFileTgt : removed target")
    return
   else
    let s:netrwmftgt= b:netrw_curdir
"    call Decho("inbanner: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))
   endif

  else
   " get word under cursor.
   "  * If directory, use it for the target.
   "  * If file, use b:netrw_curdir for the target
"   call Decho("get word under cursor",'~'.expand("<slnum>"))
   let curword= s:NetrwGetWord()
   let tgtdir = s:ComposePath(curdir,curword)
   if a:islocal && isdirectory(s:NetrwFile(tgtdir))
    let s:netrwmftgt = tgtdir
"    call Decho("local isdir: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))
   elseif !a:islocal && tgtdir =~ '/$'
    let s:netrwmftgt = tgtdir
"    call Decho("remote isdir: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))
   else
    let s:netrwmftgt = curdir
"    call Decho("isfile: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))
   endif
  endif
  if a:islocal
   " simplify the target (eg. /abc/def/../ghi -> /abc/ghi)
   let s:netrwmftgt= simplify(s:netrwmftgt)
"   call Decho("simplify: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>"))
  endif
  if g:netrw_cygwin
   let s:netrwmftgt= substitute(system("cygpath ".s:ShellEscape(s:netrwmftgt)),'\n$','','')
   let s:netrwmftgt= substitute(s:netrwmftgt,'\n$','','')
  endif
  let s:netrwmftgt_islocal= a:islocal

  " need to do refresh so that the banner will be updated
  "  s:LocalBrowseRefresh handles all local-browsing buffers when not fast browsing
  if g:netrw_fastbrowse <= 1
"   call Decho("g:netrw_fastbrowse=".g:netrw_fastbrowse.", so refreshing all local netrw buffers",'~'.expand("<slnum>"))
   call s:LocalBrowseRefresh()
  endif
"  call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
   call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,w:netrw_treetop))
  else
   call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
  endif
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call winrestview(svpos)
  if !hadtgt
   sil! NetrwKeepj norm! j
  endif

"  call Decho("getmatches=".string(getmatches()),'~'.expand("<slnum>"))
"  call Decho("s:netrwmarkfilelist=".(exists("s:netrwmarkfilelist")? string(s:netrwmarkfilelist) : 'n/a'),'~'.expand("<slnum>"))
"  call Dret("s:NetrwMarkFileTgt : netrwmftgt<".(exists("s:netrwmftgt")? s:netrwmftgt : "").">")
endfun

" ---------------------------------------------------------------------
" s:NetrwGetCurdir: gets current directory and sets up b:netrw_curdir if necessary {{{2
fun! s:NetrwGetCurdir(islocal)
"  call Dfunc("s:NetrwGetCurdir(islocal=".a:islocal.")")

  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
   let b:netrw_curdir = s:NetrwTreePath(w:netrw_treetop)
"   call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used s:NetrwTreeDir)",'~'.expand("<slnum>"))
  elseif !exists("b:netrw_curdir")
   let b:netrw_curdir= getcwd()
"   call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)",'~'.expand("<slnum>"))
  endif

"  call Decho("b:netrw_curdir<".b:netrw_curdir."> ".((b:netrw_curdir !~ '\<\a\{3,}://')? "does not match" : "matches")." url pattern",'~'.expand("<slnum>"))
  if b:netrw_curdir !~ '\<\a\{3,}://'
   let curdir= b:netrw_curdir
"   call Decho("g:netrw_keepdir=".g:netrw_keepdir,'~'.expand("<slnum>"))
   if g:netrw_keepdir == 0
    call s:NetrwLcd(curdir)
   endif
  endif

"  call Dret("s:NetrwGetCurdir <".curdir.">")
  return b:netrw_curdir
endfun

" ---------------------------------------------------------------------
" s:NetrwOpenFile: query user for a filename and open it {{{2
fun! s:NetrwOpenFile(islocal)
"  call Dfunc("s:NetrwOpenFile(islocal=".a:islocal.")")
  let ykeep= @@
  call inputsave()
  let fname= input("Enter filename: ")
  call inputrestore()
  if fname !~ '[/\\]'
   if exists("b:netrw_curdir")
    if exists("g:netrw_quiet")
     let netrw_quiet_keep = g:netrw_quiet
    endif
    let g:netrw_quiet = 1
    " save position for benefit of Rexplore
    let s:rexposn_{bufnr("%")}= winsaveview()
"    call Decho("saving posn to s:rexposn_".bufnr("%")."<".string(s:rexposn_{bufnr("%")}).">",'~'.expand("<slnum>"))
    if b:netrw_curdir =~ '/$'
     exe "NetrwKeepj e ".fnameescape(b:netrw_curdir.fname)
    else
     exe "e ".fnameescape(b:netrw_curdir."/".fname)
    endif
    if exists("netrw_quiet_keep")
     let g:netrw_quiet= netrw_quiet_keep
    else
     unlet g:netrw_quiet
    endif
   endif
  else
   exe "NetrwKeepj e ".fnameescape(fname)
  endif
  let @@= ykeep
"  call Dret("s:NetrwOpenFile")
endfun

" ---------------------------------------------------------------------
" netrw#Shrink: shrinks/expands a netrw or Lexplorer window {{{2
"               For the mapping to this function be made via
"               netrwPlugin, you'll need to have had
"               g:netrw_usetab set to non-zero.
fun! netrw#Shrink()
"  call Dfunc("netrw#Shrink() ft<".&ft."> winwidth=".winwidth(0)." lexbuf#".((exists("t:netrw_lexbufnr"))? t:netrw_lexbufnr : 'n/a'))
  let curwin  = winnr()
  let wiwkeep = &wiw
  set wiw=1

  if &ft == "netrw"
   if winwidth(0) > g:netrw_wiw
    let t:netrw_winwidth= winwidth(0)
    exe "vert resize ".g:netrw_wiw
    wincmd l
    if winnr() == curwin
     wincmd h
    endif
"    call Decho("vert resize 0",'~'.expand("<slnum>"))
   else
    exe "vert resize ".t:netrw_winwidth
"    call Decho("vert resize ".t:netrw_winwidth,'~'.expand("<slnum>"))
   endif

  elseif exists("t:netrw_lexbufnr")
   exe bufwinnr(t:netrw_lexbufnr)."wincmd w"
   if     winwidth(bufwinnr(t:netrw_lexbufnr)) >  g:netrw_wiw
    let t:netrw_winwidth= winwidth(0)
    exe "vert resize ".g:netrw_wiw
    wincmd l
    if winnr() == curwin
     wincmd h
    endif
"    call Decho("vert resize 0",'~'.expand("<slnum>"))
   elseif winwidth(bufwinnr(t:netrw_lexbufnr)) >= 0
    exe "vert resize ".t:netrw_winwidth
"    call Decho("vert resize ".t:netrw_winwidth,'~'.expand("<slnum>"))
   else 
    call netrw#Lexplore(0,0)
   endif

  else
   call netrw#Lexplore(0,0)
  endif
  let wiw= wiwkeep

"  call Dret("netrw#Shrink")
endfun

" ---------------------------------------------------------------------
" s:NetSortSequence: allows user to edit the sorting sequence {{{2
fun! s:NetSortSequence(islocal)
"  call Dfunc("NetSortSequence(islocal=".a:islocal.")")

  let ykeep= @@
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  call inputsave()
  let newsortseq= input("Edit Sorting Sequence: ",g:netrw_sort_sequence)
  call inputrestore()

  " refresh the listing
  let g:netrw_sort_sequence= newsortseq
  NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)
  let @@= ykeep

"  call Dret("NetSortSequence")
endfun

" ---------------------------------------------------------------------
" s:NetrwUnmarkList: delete local marked file list and remove their contents from the global marked-file list {{{2
"   User access provided by the <mF> mapping. (see :help netrw-mF)
"   Used by many MarkFile functions.
fun! s:NetrwUnmarkList(curbufnr,curdir)
"  call Dfunc("s:NetrwUnmarkList(curbufnr=".a:curbufnr." curdir<".a:curdir.">)")

  "  remove all files in local marked-file list from global list
  if exists("s:netrwmarkfilelist")
   for mfile in s:netrwmarkfilelist_{a:curbufnr}
    let dfile = s:ComposePath(a:curdir,mfile)       " prepend directory to mfile
    let idx   = index(s:netrwmarkfilelist,dfile)    " get index in list of dfile
    call remove(s:netrwmarkfilelist,idx)            " remove from global list
   endfor
   if s:netrwmarkfilelist == []
    unlet s:netrwmarkfilelist
   endif

   " getting rid of the local marked-file lists is easy
   unlet s:netrwmarkfilelist_{a:curbufnr}
  endif
  if exists("s:netrwmarkfilemtch_{a:curbufnr}")
   unlet s:netrwmarkfilemtch_{a:curbufnr}
  endif
  2match none
"  call Dret("s:NetrwUnmarkList")
endfun

" ---------------------------------------------------------------------
" s:NetrwUnmarkAll: remove the global marked file list and all local ones {{{2
fun! s:NetrwUnmarkAll()
"  call Dfunc("s:NetrwUnmarkAll()")
  if exists("s:netrwmarkfilelist")
   unlet s:netrwmarkfilelist
  endif
  sil call s:NetrwUnmarkAll2()
  2match none
"  call Dret("s:NetrwUnmarkAll")
endfun

" ---------------------------------------------------------------------
" s:NetrwUnmarkAll2: unmark all files from all buffers {{{2
fun! s:NetrwUnmarkAll2()
"  call Dfunc("s:NetrwUnmarkAll2()")
  redir => netrwmarkfilelist_let
  let
  redir END
  let netrwmarkfilelist_list= split(netrwmarkfilelist_let,'\n')          " convert let string into a let list
  call filter(netrwmarkfilelist_list,"v:val =~ '^s:netrwmarkfilelist_'") " retain only those vars that start as s:netrwmarkfilelist_
  call map(netrwmarkfilelist_list,"substitute(v:val,'\\s.*$','','')")    " remove what the entries are equal to
  for flist in netrwmarkfilelist_list
   let curbufnr= substitute(flist,'s:netrwmarkfilelist_','','')
   unlet s:netrwmarkfilelist_{curbufnr}
   unlet s:netrwmarkfilemtch_{curbufnr}
  endfor
"  call Dret("s:NetrwUnmarkAll2")
endfun

" ---------------------------------------------------------------------
" s:NetrwUnMarkFile: called via mu map; unmarks *all* marked files, both global and buffer-local {{{2
"
" Marked files are in two types of lists:
"    s:netrwmarkfilelist    -- holds complete paths to all marked files
"    s:netrwmarkfilelist_#  -- holds list of marked files in current-buffer's directory (#==bufnr())
"
" Marked files suitable for use with 2match are in:
"    s:netrwmarkfilemtch_#   -- used with 2match to display marked files
fun! s:NetrwUnMarkFile(islocal)
"  call Dfunc("s:NetrwUnMarkFile(islocal=".a:islocal.")")
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let curbufnr = bufnr("%")

  " unmark marked file list
  " (although I expect s:NetrwUpload() to do it, I'm just making sure)
  if exists("s:netrwmarkfilelist")
"   "   call Decho("unlet'ing: s:netrwmarkfilelist",'~'.expand("<slnum>"))
   unlet s:netrwmarkfilelist
  endif

  let ibuf= 1
  while ibuf < bufnr("$")
   if exists("s:netrwmarkfilelist_".ibuf)
    unlet s:netrwmarkfilelist_{ibuf}
    unlet s:netrwmarkfilemtch_{ibuf}
   endif
   let ibuf = ibuf + 1
  endwhile
  2match none

"  call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
call winrestview(svpos)
"  call Dret("s:NetrwUnMarkFile")
endfun

" ---------------------------------------------------------------------
" s:NetrwMenu: generates the menu for gvim and netrw {{{2
fun! s:NetrwMenu(domenu)

  if !exists("g:NetrwMenuPriority")
   let g:NetrwMenuPriority= 80
  endif

  if has("menu") && has("gui_running") && &go =~# 'm' && g:netrw_menu
"   call Dfunc("NetrwMenu(domenu=".a:domenu.")")

   if !exists("s:netrw_menu_enabled") && a:domenu
"    call Decho("initialize menu",'~'.expand("<slnum>"))
    let s:netrw_menu_enabled= 1
    exe 'sil! menu '.g:NetrwMenuPriority.'.1      '.g:NetrwTopLvlMenu.'Help<tab><F1>	<F1>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.5      '.g:NetrwTopLvlMenu.'-Sep1-	:'
    exe 'sil! menu '.g:NetrwMenuPriority.'.6      '.g:NetrwTopLvlMenu.'Go\ Up\ Directory<tab>-	-'
    exe 'sil! menu '.g:NetrwMenuPriority.'.7      '.g:NetrwTopLvlMenu.'Apply\ Special\ Viewer<tab>x	x'
    if g:netrw_dirhistmax > 0
     exe 'sil! menu '.g:NetrwMenuPriority.'.8.1   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Current\ Directory<tab>mb	mb'
     exe 'sil! menu '.g:NetrwMenuPriority.'.8.4   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Prev\ Dir\ (History)<tab>u	u'
     exe 'sil! menu '.g:NetrwMenuPriority.'.8.5   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Next\ Dir\ (History)<tab>U	U'
     exe 'sil! menu '.g:NetrwMenuPriority.'.8.6   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.List<tab>qb	qb'
    else
     exe 'sil! menu '.g:NetrwMenuPriority.'.8     '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History	:echo "(disabled)"'."\<cr>"
    endif
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.1    '.g:NetrwTopLvlMenu.'Browsing\ Control.Horizontal\ Split<tab>o	o'
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.2    '.g:NetrwTopLvlMenu.'Browsing\ Control.Vertical\ Split<tab>v	v'
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.3    '.g:NetrwTopLvlMenu.'Browsing\ Control.New\ Tab<tab>t	t'
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.4    '.g:NetrwTopLvlMenu.'Browsing\ Control.Preview<tab>p	p'
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.5    '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ File\ Hiding\ List<tab><ctrl-h>'."	\<c-h>'"
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.6    '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ Sorting\ Sequence<tab>S	S'
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.7    '.g:NetrwTopLvlMenu.'Browsing\ Control.Quick\ Hide/Unhide\ Dot\ Files<tab>'."gh	gh"
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.8    '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l>	\<c-l>"
    exe 'sil! menu '.g:NetrwMenuPriority.'.9.9    '.g:NetrwTopLvlMenu.'Browsing\ Control.Settings/Options<tab>:NetrwSettings	'.":NetrwSettings\<cr>"
    exe 'sil! menu '.g:NetrwMenuPriority.'.10     '.g:NetrwTopLvlMenu.'Delete\ File/Directory<tab>D	D'
    exe 'sil! menu '.g:NetrwMenuPriority.'.11.1   '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Create\ New\ File<tab>%	%'
    exe 'sil! menu '.g:NetrwMenuPriority.'.11.1   '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Current\ Window<tab><cr>	'."\<cr>"
    exe 'sil! menu '.g:NetrwMenuPriority.'.11.2   '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Preview\ File/Directory<tab>p	p'
    exe 'sil! menu '.g:NetrwMenuPriority.'.11.3   '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Previous\ Window<tab>P	P'
    exe 'sil! menu '.g:NetrwMenuPriority.'.11.4   '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Window<tab>o	o'
    exe 'sil! menu '.g:NetrwMenuPriority.'.11.5   '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Tab<tab>t	t'
    exe 'sil! menu '.g:NetrwMenuPriority.'.11.5   '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Vertical\ Window<tab>v	v'
    exe 'sil! menu '.g:NetrwMenuPriority.'.12.1   '.g:NetrwTopLvlMenu.'Explore.Directory\ Name	:Explore '
    exe 'sil! menu '.g:NetrwMenuPriority.'.12.2   '.g:NetrwTopLvlMenu.'Explore.Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */	:Explore */'
    exe 'sil! menu '.g:NetrwMenuPriority.'.12.2   '.g:NetrwTopLvlMenu.'Explore.Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/	:Explore **/'
    exe 'sil! menu '.g:NetrwMenuPriority.'.12.3   '.g:NetrwTopLvlMenu.'Explore.Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *//	:Explore *//'
    exe 'sil! menu '.g:NetrwMenuPriority.'.12.4   '.g:NetrwTopLvlMenu.'Explore.Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **//	:Explore **//'
    exe 'sil! menu '.g:NetrwMenuPriority.'.12.4   '.g:NetrwTopLvlMenu.'Explore.Next\ Match<tab>:Nexplore	:Nexplore<cr>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.12.4   '.g:NetrwTopLvlMenu.'Explore.Prev\ Match<tab>:Pexplore	:Pexplore<cr>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.13     '.g:NetrwTopLvlMenu.'Make\ Subdirectory<tab>d	d'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.1   '.g:NetrwTopLvlMenu.'Marked\ Files.Mark\ File<tab>mf	mf'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.2   '.g:NetrwTopLvlMenu.'Marked\ Files.Mark\ Files\ by\ Regexp<tab>mr	mr'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.3   '.g:NetrwTopLvlMenu.'Marked\ Files.Hide-Show-List\ Control<tab>a	a'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.4   '.g:NetrwTopLvlMenu.'Marked\ Files.Copy\ To\ Target<tab>mc	mc'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.5   '.g:NetrwTopLvlMenu.'Marked\ Files.Delete<tab>D	D'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.6   '.g:NetrwTopLvlMenu.'Marked\ Files.Diff<tab>md	md'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.7   '.g:NetrwTopLvlMenu.'Marked\ Files.Edit<tab>me	me'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.8   '.g:NetrwTopLvlMenu.'Marked\ Files.Exe\ Cmd<tab>mx	mx'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.9   '.g:NetrwTopLvlMenu.'Marked\ Files.Move\ To\ Target<tab>mm	mm'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.10  '.g:NetrwTopLvlMenu.'Marked\ Files.Obtain<tab>O	O'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.11  '.g:NetrwTopLvlMenu.'Marked\ Files.Print<tab>mp	mp'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.12  '.g:NetrwTopLvlMenu.'Marked\ Files.Replace<tab>R	R'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.13  '.g:NetrwTopLvlMenu.'Marked\ Files.Set\ Target<tab>mt	mt'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.14  '.g:NetrwTopLvlMenu.'Marked\ Files.Tag<tab>mT	mT'
    exe 'sil! menu '.g:NetrwMenuPriority.'.14.15  '.g:NetrwTopLvlMenu.'Marked\ Files.Zip/Unzip/Compress/Uncompress<tab>mz	mz'
    exe 'sil! menu '.g:NetrwMenuPriority.'.15     '.g:NetrwTopLvlMenu.'Obtain\ File<tab>O	O'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.1.1 '.g:NetrwTopLvlMenu.'Style.Listing.thin<tab>i	:let w:netrw_liststyle=0<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.1.1 '.g:NetrwTopLvlMenu.'Style.Listing.long<tab>i	:let w:netrw_liststyle=1<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.1.1 '.g:NetrwTopLvlMenu.'Style.Listing.wide<tab>i	:let w:netrw_liststyle=2<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.1.1 '.g:NetrwTopLvlMenu.'Style.Listing.tree<tab>i	:let w:netrw_liststyle=3<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.2.1 '.g:NetrwTopLvlMenu.'Style.Normal-Hide-Show.Show\ All<tab>a	:let g:netrw_hide=0<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.2.3 '.g:NetrwTopLvlMenu.'Style.Normal-Hide-Show.Normal<tab>a	:let g:netrw_hide=1<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.2.2 '.g:NetrwTopLvlMenu.'Style.Normal-Hide-Show.Hidden\ Only<tab>a	:let g:netrw_hide=2<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.3   '.g:NetrwTopLvlMenu.'Style.Reverse\ Sorting\ Order<tab>'."r	r"
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.4.1 '.g:NetrwTopLvlMenu.'Style.Sorting\ Method.Name<tab>s       :let g:netrw_sort_by="name"<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.4.2 '.g:NetrwTopLvlMenu.'Style.Sorting\ Method.Time<tab>s       :let g:netrw_sort_by="time"<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.4.3 '.g:NetrwTopLvlMenu.'Style.Sorting\ Method.Size<tab>s       :let g:netrw_sort_by="size"<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.16.4.3 '.g:NetrwTopLvlMenu.'Style.Sorting\ Method.Exten<tab>s      :let g:netrw_sort_by="exten"<cr><c-L>'
    exe 'sil! menu '.g:NetrwMenuPriority.'.17     '.g:NetrwTopLvlMenu.'Rename\ File/Directory<tab>R	R'
    exe 'sil! menu '.g:NetrwMenuPriority.'.18     '.g:NetrwTopLvlMenu.'Set\ Current\ Directory<tab>c	c'
    let s:netrw_menucnt= 28
    call s:NetrwBookmarkMenu() " provide some history!  uses priorities 2,3, reserves 4, 8.2.x
    call s:NetrwTgtMenu()      " let bookmarks and history be easy targets

   elseif !a:domenu
    let s:netrwcnt = 0
    let curwin     = winnr()
    windo if getline(2) =~# "Netrw" | let s:netrwcnt= s:netrwcnt + 1 | endif
    exe curwin."wincmd w"

    if s:netrwcnt <= 1
"     call Decho("clear menus",'~'.expand("<slnum>"))
     exe 'sil! unmenu '.g:NetrwTopLvlMenu
"     call Decho('exe sil! unmenu '.g:NetrwTopLvlMenu.'*','~'.expand("<slnum>"))
     sil! unlet s:netrw_menu_enabled
    endif
   endif
"   call Dret("NetrwMenu")
   return
  endif

endfun

" ---------------------------------------------------------------------
" s:NetrwObtain: obtain file under cursor or from markfile list {{{2
"                Used by the O maps (as <SID>NetrwObtain())
fun! s:NetrwObtain(islocal)
"  call Dfunc("NetrwObtain(islocal=".a:islocal.")")

  let ykeep= @@
  if exists("s:netrwmarkfilelist_{bufnr('%')}")
   let islocal= s:netrwmarkfilelist_{bufnr('%')}[1] !~ '^\a\{3,}://'
   call netrw#Obtain(islocal,s:netrwmarkfilelist_{bufnr('%')})
   call s:NetrwUnmarkList(bufnr('%'),b:netrw_curdir)
  else
   call netrw#Obtain(a:islocal,expand("<cWORD>"))
  endif
  let @@= ykeep

"  call Dret("NetrwObtain")
endfun

" ---------------------------------------------------------------------
" s:NetrwPrevWinOpen: open file/directory in previous window.  {{{2
"   If there's only one window, then the window will first be split.
"   Returns:
"     choice = 0 : didn't have to choose
"     choice = 1 : saved modified file in window first
"     choice = 2 : didn't save modified file, opened window
"     choice = 3 : cancel open
fun! s:NetrwPrevWinOpen(islocal)
"  call Dfunc("s:NetrwPrevWinOpen(islocal=".a:islocal.")")

  let ykeep= @@
  " grab a copy of the b:netrw_curdir to pass it along to newly split windows
  let curdir = b:netrw_curdir

  " get last window number and the word currently under the cursor
  let origwin   = winnr()
  let lastwinnr = winnr("$")
  let curword   = s:NetrwGetWord()
  let choice    = 0
  let s:treedir = s:NetrwTreeDir(a:islocal)
  let curdir    = s:treedir
"  call Decho("winnr($)#".lastwinnr." curword<".curword.">",'~'.expand("<slnum>"))

  let didsplit = 0
  if lastwinnr == 1
   " if only one window, open a new one first
"   call Decho("only one window, so open a new one (g:netrw_alto=".g:netrw_alto.")",'~'.expand("<slnum>"))
   if g:netrw_preview
    " vertically split preview window
    let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winheight(0))/100 : -g:netrw_winsize
"    call Decho("exe ".(g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s",'~'.expand("<slnum>"))
    exe (g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s"
   else
    " horizontally split preview window
    let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize
"    call Decho("exe ".(g:netrw_alto? "bel " : "abo ").winsz."wincmd s",'~'.expand("<slnum>"))
    exe (g:netrw_alto? "bel " : "abo ").winsz."wincmd s"
   endif
   let didsplit = 1
"   call Decho("did split",'~'.expand("<slnum>"))

  else
   NetrwKeepj call s:SaveBufVars()
   let eikeep= &ei
   setl ei=all
   wincmd p
"   call Decho("wincmd p  (now in win#".winnr().") curdir<".curdir.">",'~'.expand("<slnum>"))

   " prevwinnr: the window number of the "prev" window
   " prevbufnr: the buffer number of the buffer in the "prev" window
   " bnrcnt   : the qty of windows open on the "prev" buffer
   let prevwinnr   = winnr()
   let prevbufnr   = bufnr("%")
   let prevbufname = bufname("%")
   let prevmod     = &mod
   let bnrcnt      = 0
   NetrwKeepj call s:RestoreBufVars()
"   call Decho("after wincmd p: win#".winnr()." win($)#".winnr("$")." origwin#".origwin." &mod=".&mod." bufname(%)<".bufname("%")."> prevbufnr=".prevbufnr,'~'.expand("<slnum>"))

   " if the previous window's buffer has been changed (ie. its modified flag is set),
   " and it doesn't appear in any other extant window, then ask the
   " user if s/he wants to abandon modifications therein.
   if prevmod
"    call Decho("detected that prev window's buffer has been modified: prevbufnr=".prevbufnr." winnr()#".winnr(),'~'.expand("<slnum>"))
    windo if winbufnr(0) == prevbufnr | let bnrcnt=bnrcnt+1 | endif
"    call Decho("prevbufnr=".prevbufnr." bnrcnt=".bnrcnt." buftype=".&bt." winnr()=".winnr()." prevwinnr#".prevwinnr,'~'.expand("<slnum>"))
    exe prevwinnr."wincmd w"

    if bnrcnt == 1 && &hidden == 0
     " only one copy of the modified buffer in a window, and
     " hidden not set, so overwriting will lose the modified file.  Ask first...
     let choice = confirm("Save modified buffer<".prevbufname."> first?","&Yes\n&No\n&Cancel")
"     call Decho("(NetrwPrevWinOpen) prevbufname<".prevbufname."> choice=".choice." current-winnr#".winnr(),'~'.expand("<slnum>"))
     let &ei= eikeep

     if choice == 1
      " Yes -- write file & then browse
      let v:errmsg= ""
      sil w
      if v:errmsg != ""
       call netrw#ErrorMsg(s:ERROR,"unable to write <".(exists("prevbufname")? prevbufname : 'n/a').">!",30)
       exe origwin."wincmd w"
       let &ei = eikeep
       let @@  = ykeep
"       call Dret("s:NetrwPrevWinOpen ".choice." : unable to write <".prevbufname.">")
       return choice
      endif

     elseif choice == 2
      " No -- don't worry about changed file, just browse anyway
"      call Decho("don't worry about chgd file, just browse anyway (winnr($)#".winnr("$").")",'~'.expand("<slnum>"))
      echomsg "**note** changes to ".prevbufname." abandoned"

     else
      " Cancel -- don't do this
"      call Decho("cancel, don't browse, switch to win#".origwin,'~'.expand("<slnum>"))
      exe origwin."wincmd w"
      let &ei= eikeep
      let @@ = ykeep
"      call Dret("s:NetrwPrevWinOpen ".choice." : cancelled")
      return choice
     endif
    endif
   endif
   let &ei= eikeep
  endif

  " restore b:netrw_curdir (window split/enew may have lost it)
  let b:netrw_curdir= curdir
  if a:islocal < 2
   if a:islocal
    call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(a:islocal,curword))
   else
    call s:NetrwBrowse(a:islocal,s:NetrwBrowseChgDir(a:islocal,curword))
   endif
  endif
  let @@= ykeep
"  call Dret("s:NetrwPrevWinOpen ".choice)
  return choice
endfun

" ---------------------------------------------------------------------
" s:NetrwUpload: load fname to tgt (used by NetrwMarkFileCopy()) {{{2
"                Always assumed to be local -> remote
"                call s:NetrwUpload(filename, target)
"                call s:NetrwUpload(filename, target, fromdirectory)
fun! s:NetrwUpload(fname,tgt,...)
"  call Dfunc("s:NetrwUpload(fname<".((type(a:fname) == 1)? a:fname : string(a:fname))."> tgt<".a:tgt.">) a:0=".a:0)

  if a:tgt =~ '^\a\{3,}://'
   let tgtdir= substitute(a:tgt,'^\a\{3,}://[^/]\+/\(.\{-}\)$','\1','')
  else
   let tgtdir= substitute(a:tgt,'^\(.*\)/[^/]*$','\1','')
  endif
"  call Decho("tgtdir<".tgtdir.">",'~'.expand("<slnum>"))

  if a:0 > 0
   let fromdir= a:1
  else
   let fromdir= getcwd()
  endif
"  call Decho("fromdir<".fromdir.">",'~'.expand("<slnum>"))

  if type(a:fname) == 1
   " handle uploading a single file using NetWrite
"   call Decho("handle uploading a single file via NetWrite",'~'.expand("<slnum>"))
   1split
"   call Decho("exe e ".fnameescape(s:NetrwFile(a:fname)),'~'.expand("<slnum>"))
   exe "NetrwKeepj e ".fnameescape(s:NetrwFile(a:fname))
"   call Decho("now locally editing<".expand("%").">, has ".line("$")." lines",'~'.expand("<slnum>"))
   if a:tgt =~ '/$'
    let wfname= substitute(a:fname,'^.*/','','')
"    call Decho("exe w! ".fnameescape(wfname),'~'.expand("<slnum>"))
    exe "w! ".fnameescape(a:tgt.wfname)
   else
"    call Decho("writing local->remote: exe w ".fnameescape(a:tgt),'~'.expand("<slnum>"))
    exe "w ".fnameescape(a:tgt)
"    call Decho("done writing local->remote",'~'.expand("<slnum>"))
   endif
   q!

  elseif type(a:fname) == 3
   " handle uploading a list of files via scp
"   call Decho("handle uploading a list of files via scp",'~'.expand("<slnum>"))
   let curdir= getcwd()
   if a:tgt =~ '^scp:'
    call s:NetrwLcd(fromdir)
    let filelist= deepcopy(s:netrwmarkfilelist_{bufnr('%')})
    let args    = join(map(filelist,"s:ShellEscape(v:val, 1)"))
    if exists("g:netrw_port") && g:netrw_port != ""
     let useport= " ".g:netrw_scpport." ".g:netrw_port
    else
     let useport= ""
    endif
    let machine = substitute(a:tgt,'^scp://\([^/:]\+\).*$','\1','')
    let tgt     = substitute(a:tgt,'^scp://[^/]\+/\(.*\)$','\1','')
    call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.s:ShellEscape(useport,1)." ".args." ".s:ShellEscape(machine.":".tgt,1))
    call s:NetrwLcd(curdir)

   elseif a:tgt =~ '^ftp:'
    call s:NetrwMethod(a:tgt)

    if b:netrw_method == 2
     " handle uploading a list of files via ftp+.netrc
     let netrw_fname = b:netrw_fname
     sil NetrwKeepj new
"     call Decho("filter input window#".winnr(),'~'.expand("<slnum>"))

     NetrwKeepj put =g:netrw_ftpmode
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))

     if exists("g:netrw_ftpextracmd")
      NetrwKeepj put =g:netrw_ftpextracmd
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif

     NetrwKeepj call setline(line("$")+1,'lcd "'.fromdir.'"')
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))

     if tgtdir == ""
      let tgtdir= '/'
     endif
     NetrwKeepj call setline(line("$")+1,'cd "'.tgtdir.'"')
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))

     for fname in a:fname
      NetrwKeepj call setline(line("$")+1,'put "'.s:NetrwFile(fname).'"')
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endfor

     if exists("g:netrw_port") && g:netrw_port != ""
      call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1)." ".s:ShellEscape(g:netrw_port,1))
     else
"      call Decho("filter input window#".winnr(),'~'.expand("<slnum>"))
      call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1))
     endif
     " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
     sil NetrwKeepj g/Local directory now/d
     call histdel("/",-1)
     if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
      call netrw#ErrorMsg(s:ERROR,getline(1),14)
     else
      bw!|q
     endif

    elseif b:netrw_method == 3
     " upload with ftp + machine, id, passwd, and fname (ie. no .netrc)
     let netrw_fname= b:netrw_fname
     NetrwKeepj call s:SaveBufVars()|sil NetrwKeepj new|NetrwKeepj call s:RestoreBufVars()
     let tmpbufnr= bufnr("%")
     setl ff=unix

     if exists("g:netrw_port") && g:netrw_port != ""
      NetrwKeepj put ='open '.g:netrw_machine.' '.g:netrw_port
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     else
      NetrwKeepj put ='open '.g:netrw_machine
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif

     if exists("g:netrw_uid") && g:netrw_uid != ""
      if exists("g:netrw_ftp") && g:netrw_ftp == 1
       NetrwKeepj put =g:netrw_uid
"       call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
       if exists("s:netrw_passwd")
        NetrwKeepj call setline(line("$")+1,'"'.s:netrw_passwd.'"')
       endif
"       call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
      elseif exists("s:netrw_passwd")
       NetrwKeepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"'
"       call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
      endif
     endif

     NetrwKeepj call setline(line("$")+1,'lcd "'.fromdir.'"')
"     call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))

     if exists("b:netrw_fname") && b:netrw_fname != ""
      NetrwKeepj call setline(line("$")+1,'cd "'.b:netrw_fname.'"')
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif

     if exists("g:netrw_ftpextracmd")
      NetrwKeepj put =g:netrw_ftpextracmd
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endif

     for fname in a:fname
      NetrwKeepj call setline(line("$")+1,'put "'.fname.'"')
"      call Decho("filter input: ".getline('$'),'~'.expand("<slnum>"))
     endfor

     " perform ftp:
     " -i       : turns off interactive prompting from ftp
     " -n  unix : DON'T use <.netrc>, even though it exists
     " -n  win32: quit being obnoxious about password
     NetrwKeepj norm! 1Gdd
     call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
     " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
     sil NetrwKeepj g/Local directory now/d
     call histdel("/",-1)
     if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
      let debugkeep= &debug
      setl debug=msg
      call netrw#ErrorMsg(s:ERROR,getline(1),15)
      let &debug = debugkeep
      let mod    = 1
     else
      bw!|q
     endif
    elseif !exists("b:netrw_method") || b:netrw_method < 0
"     call Dfunc("netrw#NetrwUpload : unsupported method")
     return
    endif
   else
    call netrw#ErrorMsg(s:ERROR,"can't obtain files with protocol from<".a:tgt.">",63)
   endif
  endif

"  call Dret("s:NetrwUpload")
endfun

" ---------------------------------------------------------------------
" s:NetrwPreview: {{{2
fun! s:NetrwPreview(path) range
"  call Dfunc("NetrwPreview(path<".a:path.">)")
  let ykeep= @@
  NetrwKeepj call s:NetrwOptionSave("s:")
  NetrwKeepj call s:NetrwSafeOptions()
  if has("quickfix")
   if !isdirectory(s:NetrwFile(a:path))
    if g:netrw_preview && !g:netrw_alto
     let pvhkeep = &pvh
     let winsz   = (g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize
     let &pvh    = winwidth(0) - winsz
    endif
    exe (g:netrw_alto? "top " : "bot ").(g:netrw_preview? "vert " : "")."pedit ".fnameescape(a:path)
    if exists("pvhkeep")
     let &pvh= pvhkeep
    endif
   elseif !exists("g:netrw_quiet")
    NetrwKeepj call netrw#ErrorMsg(s:WARNING,"sorry, cannot preview a directory such as <".a:path.">",38)
   endif
  elseif !exists("g:netrw_quiet")
   NetrwKeepj call netrw#ErrorMsg(s:WARNING,"sorry, to preview your vim needs the quickfix feature compiled in",39)
  endif
  NetrwKeepj call s:NetrwOptionRestore("s:")
  let @@= ykeep
"  call Dret("NetrwPreview")
endfun

" ---------------------------------------------------------------------
" s:NetrwRefresh: {{{2
fun! s:NetrwRefresh(islocal,dirname)
"  call Dfunc("s:NetrwRefresh(islocal<".a:islocal.">,dirname=".a:dirname.") hide=".g:netrw_hide." sortdir=".g:netrw_sort_direction)
  " at the current time (Mar 19, 2007) all calls to NetrwRefresh() call NetrwBrowseChgDir() first.
  setl ma noro
"  call Decho("setl ma noro",'~'.expand("<slnum>"))
"  call Decho("clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>"))
  let ykeep      = @@

  " save the cursor position before refresh.
  let screenposn = winsaveview()
"  call Decho("saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))

"  call Decho("win#".winnr().": ".winheight(0)."x".winwidth(0)." curfile<".expand("%").">",'~'.expand("<slnum>"))
"  call Decho("clearing buffer prior to refresh",'~'.expand("<slnum>"))
  sil! NetrwKeepj %d _
  if a:islocal
   NetrwKeepj call netrw#LocalBrowseCheck(a:dirname)
  else
   NetrwKeepj call s:NetrwBrowse(a:islocal,a:dirname)
  endif

  " restore position
"  call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(screenposn)

  " restore file marks
  if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != ""
"   call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/",'~'.expand("<slnum>"))
   exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/"
  else
"   call Decho("2match none  (bufnr(%)=".bufnr("%")."<".bufname("%").">)",'~'.expand("<slnum>"))
   2match none
  endif

"  restore
  let @@= ykeep
"  call Dret("s:NetrwRefresh")
endfun

" ---------------------------------------------------------------------
" s:NetrwRefreshDir: refreshes a directory by name {{{2
"                    Called by NetrwMarkFileCopy()
"                    Interfaces to s:NetrwRefresh() and s:LocalBrowseRefresh()
fun! s:NetrwRefreshDir(islocal,dirname)
"  call Dfunc("s:NetrwRefreshDir(islocal=".a:islocal." dirname<".a:dirname.">) g:netrw_fastbrowse=".g:netrw_fastbrowse)
  if g:netrw_fastbrowse == 0
   " slowest mode (keep buffers refreshed, local or remote)
"   call Decho("slowest mode: keep buffers refreshed, local or remote",'~'.expand("<slnum>"))
   let tgtwin= bufwinnr(a:dirname)
"   call Decho("tgtwin= bufwinnr(".a:dirname.")=".tgtwin,'~'.expand("<slnum>"))

   if tgtwin > 0
    " tgtwin is being displayed, so refresh it
    let curwin= winnr()
"    call Decho("refresh tgtwin#".tgtwin." (curwin#".curwin.")",'~'.expand("<slnum>"))
    exe tgtwin."wincmd w"
    NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
    exe curwin."wincmd w"

   elseif bufnr(a:dirname) > 0
    let bn= bufnr(a:dirname)
"    call Decho("bd bufnr(".a:dirname.")=".bn,'~'.expand("<slnum>"))
    exe "sil keepj bd ".bn
   endif

  elseif g:netrw_fastbrowse <= 1
"   call Decho("medium-speed mode: refresh local buffers only",'~'.expand("<slnum>"))
   NetrwKeepj call s:LocalBrowseRefresh()
  endif
"  call Dret("s:NetrwRefreshDir")
endfun

" ---------------------------------------------------------------------
" s:NetrwSetChgwin: set g:netrw_chgwin; a <cr> will use the specified
" window number to do its editing in.
" Supports   [count]C  where the count, if present, is used to specify
" a window to use for editing via the <cr> mapping.
fun! s:NetrwSetChgwin(...)
"  call Dfunc("s:NetrwSetChgwin() v:count=".v:count)
  if a:0 > 0
"   call Decho("a:1<".a:1.">",'~'.expand("<slnum>"))
   if a:1 == ""    " :NetrwC win#
    let g:netrw_chgwin= winnr()
   else              " :NetrwC
    let g:netrw_chgwin= a:1
   endif
  elseif v:count > 0 " [count]C
   let g:netrw_chgwin= v:count
  else               " C
   let g:netrw_chgwin= winnr()
  endif
  echo "editing window now set to window#".g:netrw_chgwin
"  call Dret("s:NetrwSetChgwin : g:netrw_chgwin=".g:netrw_chgwin)
endfun

" ---------------------------------------------------------------------
" s:NetrwSetSort: sets up the sort based on the g:netrw_sort_sequence {{{2
"          What this function does is to compute a priority for the patterns
"          in the g:netrw_sort_sequence.  It applies a substitute to any
"          "files" that satisfy each pattern, putting the priority / in
"          front.  An "*" pattern handles the default priority.
fun! s:NetrwSetSort()
"  call Dfunc("SetSort() bannercnt=".w:netrw_bannercnt)
  let ykeep= @@
  if w:netrw_liststyle == s:LONGLIST
   let seqlist  = substitute(g:netrw_sort_sequence,'\$','\\%(\t\\|\$\\)','ge')
  else
   let seqlist  = g:netrw_sort_sequence
  endif
  " sanity check -- insure that * appears somewhere
  if seqlist == ""
   let seqlist= '*'
  elseif seqlist !~ '\*'
   let seqlist= seqlist.',*'
  endif
  let priority = 1
  while seqlist != ""
   if seqlist =~ ','
    let seq     = substitute(seqlist,',.*$','','e')
    let seqlist = substitute(seqlist,'^.\{-},\(.*\)$','\1','e')
   else
    let seq     = seqlist
    let seqlist = ""
   endif
   if priority < 10
    let spriority= "00".priority.g:netrw_sepchr
   elseif priority < 100
    let spriority= "0".priority.g:netrw_sepchr
   else
    let spriority= priority.g:netrw_sepchr
   endif
"   call Decho("priority=".priority." spriority<".spriority."> seq<".seq."> seqlist<".seqlist.">",'~'.expand("<slnum>"))

   " sanity check
   if w:netrw_bannercnt > line("$")
    " apparently no files were left after a Hiding pattern was used
"    call Dret("SetSort : no files left after hiding")
    return
   endif
   if seq == '*'
    let starpriority= spriority
   else
    exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/'.seq.'/s/^/'.spriority.'/'
    call histdel("/",-1)
    " sometimes multiple sorting patterns will match the same file or directory.
    " The following substitute is intended to remove the excess matches.
    exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^\d\{3}'.g:netrw_sepchr.'\d\{3}\//s/^\d\{3}'.g:netrw_sepchr.'\(\d\{3}\/\).\@=/\1/e'
    NetrwKeepj call histdel("/",-1)
   endif
   let priority = priority + 1
  endwhile
  if exists("starpriority")
   exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$v/^\d\{3}'.g:netrw_sepchr.'/s/^/'.starpriority.'/e'
   NetrwKeepj call histdel("/",-1)
  endif

  " Following line associated with priority -- items that satisfy a priority
  " pattern get prefixed by ###/ which permits easy sorting by priority.
  " Sometimes files can satisfy multiple priority patterns -- only the latest
  " priority pattern needs to be retained.  So, at this point, these excess
  " priority prefixes need to be removed, but not directories that happen to
  " be just digits themselves.
  exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$s/^\(\d\{3}'.g:netrw_sepchr.'\)\%(\d\{3}'.g:netrw_sepchr.'\)\+\ze./\1/e'
  NetrwKeepj call histdel("/",-1)
  let @@= ykeep

"  call Dret("SetSort")
endfun

" ---------------------------------------------------------------------
" s:NetrwSetTgt: sets the target to the specified choice index {{{2
"    Implements [count]Tb  (bookhist<b>)
"               [count]Th  (bookhist<h>)
"               See :help netrw-qb for how to make the choice.
fun! s:NetrwSetTgt(islocal,bookhist,choice)
"  call Dfunc("s:NetrwSetTgt(islocal=".a:islocal." bookhist<".a:bookhist."> choice#".a:choice.")")

  if     a:bookhist == 'b'
   " supports choosing a bookmark as a target using a qb-generated list
   let choice= a:choice - 1
   if exists("g:netrw_bookmarklist[".choice."]")
    call netrw#MakeTgt(g:netrw_bookmarklist[choice])
   else
    echomsg "Sorry, bookmark#".a:choice." doesn't exist!"
   endif

  elseif a:bookhist == 'h'
   " supports choosing a history stack entry as a target using a qb-generated list
   let choice= (a:choice % g:netrw_dirhistmax) + 1
   if exists("g:netrw_dirhist_".choice)
    let histentry = g:netrw_dirhist_{choice}
    call netrw#MakeTgt(histentry)
   else
    echomsg "Sorry, history#".a:choice." not available!"
   endif
  endif

  " refresh the display
  if !exists("b:netrw_curdir")
   let b:netrw_curdir= getcwd()
  endif
  call s:NetrwRefresh(a:islocal,b:netrw_curdir)

"  call Dret("s:NetrwSetTgt")
endfun

" =====================================================================
" s:NetrwSortStyle: change sorting style (name - time - size) and refresh display {{{2
fun! s:NetrwSortStyle(islocal)
"  call Dfunc("s:NetrwSortStyle(islocal=".a:islocal.") netrw_sort_by<".g:netrw_sort_by.">")
  NetrwKeepj call s:NetrwSaveWordPosn()
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))

  let g:netrw_sort_by= (g:netrw_sort_by =~# '^n')? 'time' : (g:netrw_sort_by =~# '^t')? 'size' : (g:netrw_sort_by =~# '^siz')? 'exten' : 'name'
  NetrwKeepj norm! 0
  NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)

"  call Dret("s:NetrwSortStyle : netrw_sort_by<".g:netrw_sort_by.">")
endfun

" ---------------------------------------------------------------------
" s:NetrwSplit: mode {{{2
"           =0 : net   and o
"           =1 : net   and t
"           =2 : net   and v
"           =3 : local and o
"           =4 : local and t
"           =5 : local and v
fun! s:NetrwSplit(mode)
"  call Dfunc("s:NetrwSplit(mode=".a:mode.") alto=".g:netrw_alto." altv=".g:netrw_altv)

  let ykeep= @@
  call s:SaveWinVars()

  if a:mode == 0
   " remote and o
   let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winheight(0))/100 : -g:netrw_winsize
   if winsz == 0|let winsz= ""|endif
"   call Decho("exe ".(g:netrw_alto? "bel " : "abo ").winsz."wincmd s",'~'.expand("<slnum>"))
   exe (g:netrw_alto? "bel " : "abo ").winsz."wincmd s"
   let s:didsplit= 1
   NetrwKeepj call s:RestoreWinVars()
   NetrwKeepj call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,s:NetrwGetWord()))
   unlet s:didsplit

  elseif a:mode == 1
   " remote and t
   let newdir  = s:NetrwBrowseChgDir(0,s:NetrwGetWord())
"   call Decho("tabnew",'~'.expand("<slnum>"))
   tabnew
   let s:didsplit= 1
   NetrwKeepj call s:RestoreWinVars()
   NetrwKeepj call s:NetrwBrowse(0,newdir)
   unlet s:didsplit

  elseif a:mode == 2
   " remote and v
   let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize
   if winsz == 0|let winsz= ""|endif
"   call Decho("exe ".(g:netrw_altv? "rightb " : "lefta ").winsz."wincmd v",'~'.expand("<slnum>"))
   exe (g:netrw_altv? "rightb " : "lefta ").winsz."wincmd v"
   let s:didsplit= 1
   NetrwKeepj call s:RestoreWinVars()
   NetrwKeepj call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,s:NetrwGetWord()))
   unlet s:didsplit

  elseif a:mode == 3
   " local and o
   let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winheight(0))/100 : -g:netrw_winsize
   if winsz == 0|let winsz= ""|endif
"   call Decho("exe ".(g:netrw_alto? "bel " : "abo ").winsz."wincmd s",'~'.expand("<slnum>"))
   exe (g:netrw_alto? "bel " : "abo ").winsz."wincmd s"
   let s:didsplit= 1
   NetrwKeepj call s:RestoreWinVars()
   NetrwKeepj call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,s:NetrwGetWord()))
   unlet s:didsplit

  elseif a:mode == 4
   " local and t
   let cursorword  = s:NetrwGetWord()
   let eikeep      = &ei
   let netrw_winnr = winnr()
   let netrw_line  = line(".")
   let netrw_col   = virtcol(".")
   NetrwKeepj norm! H0
   let netrw_hline = line(".")
   setl ei=all
   exe "NetrwKeepj norm! ".netrw_hline."G0z\<CR>"
   exe "NetrwKeepj norm! ".netrw_line."G0".netrw_col."\<bar>"
   let &ei          = eikeep
   let netrw_curdir = s:NetrwTreeDir(0)
"   call Decho("tabnew",'~'.expand("<slnum>"))
   tabnew
   let b:netrw_curdir = netrw_curdir
   let s:didsplit     = 1
   NetrwKeepj call s:RestoreWinVars()
   NetrwKeepj call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,cursorword))
   if &ft == "netrw"
    setl ei=all
    exe "NetrwKeepj norm! ".netrw_hline."G0z\<CR>"
    exe "NetrwKeepj norm! ".netrw_line."G0".netrw_col."\<bar>"
    let &ei= eikeep
   endif
   unlet s:didsplit

  elseif a:mode == 5
   " local and v
   let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize
   if winsz == 0|let winsz= ""|endif
"   call Decho("exe ".(g:netrw_altv? "rightb " : "lefta ").winsz."wincmd v",'~'.expand("<slnum>"))
   exe (g:netrw_altv? "rightb " : "lefta ").winsz."wincmd v"
   let s:didsplit= 1
   NetrwKeepj call s:RestoreWinVars()
   NetrwKeepj call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,s:NetrwGetWord()))
   unlet s:didsplit

  else
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"(NetrwSplit) unsupported mode=".a:mode,45)
  endif

  let @@= ykeep
"  call Dret("s:NetrwSplit")
endfun

" ---------------------------------------------------------------------
" s:NetrwTgtMenu: {{{2
fun! s:NetrwTgtMenu()
  if !exists("s:netrw_menucnt")
   return
  endif
"  call Dfunc("s:NetrwTgtMenu()")

  " the following test assures that gvim is running, has menus available, and has menus enabled.
  if has("gui") && has("menu") && has("gui_running") && &go =~# 'm' && g:netrw_menu
   if exists("g:NetrwTopLvlMenu")
"    call Decho("removing ".g:NetrwTopLvlMenu."Bookmarks menu item(s)",'~'.expand("<slnum>"))
    exe 'sil! unmenu '.g:NetrwTopLvlMenu.'Targets'
   endif
   if !exists("s:netrw_initbookhist")
    call s:NetrwBookHistRead()
   endif

   " try to cull duplicate entries
   let tgtdict={}

   " target bookmarked places
   if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != [] && g:netrw_dirhistmax > 0
"    call Decho("installing bookmarks as easy targets",'~'.expand("<slnum>"))
    let cnt= 1
    for bmd in g:netrw_bookmarklist
     if has_key(tgtdict,bmd)
      let cnt= cnt + 1
      continue
     endif
     let tgtdict[bmd]= cnt
     let ebmd= escape(bmd,g:netrw_menu_escape)
     " show bookmarks for goto menu
"     call Decho("menu: Targets: ".bmd,'~'.expand("<slnum>"))
     exe 'sil! menu <silent> '.g:NetrwMenuPriority.".19.1.".cnt." ".g:NetrwTopLvlMenu.'Targets.'.ebmd."	:call netrw#MakeTgt('".bmd."')\<cr>"
     let cnt= cnt + 1
    endfor
   endif

   " target directory browsing history
   if exists("g:netrw_dirhistmax") && g:netrw_dirhistmax > 0
"    call Decho("installing history as easy targets (histmax=".g:netrw_dirhistmax.")",'~'.expand("<slnum>"))
    let histcnt = 1
    while histcnt <= g:netrw_dirhistmax
     let priority = g:netrw_dirhist_cnt + histcnt
     if exists("g:netrw_dirhist_{histcnt}")
      let histentry  = g:netrw_dirhist_{histcnt}
      if has_key(tgtdict,histentry)
       let histcnt = histcnt + 1
       continue
      endif
      let tgtdict[histentry] = histcnt
      let ehistentry         = escape(histentry,g:netrw_menu_escape)
"      call Decho("menu: Targets: ".histentry,'~'.expand("<slnum>"))
      exe 'sil! menu <silent> '.g:NetrwMenuPriority.".19.2.".priority." ".g:NetrwTopLvlMenu.'Targets.'.ehistentry."	:call netrw#MakeTgt('".histentry."')\<cr>"
     endif
     let histcnt = histcnt + 1
    endwhile
   endif
  endif
"  call Dret("s:NetrwTgtMenu")
endfun

" ---------------------------------------------------------------------
" s:NetrwTreeDir: determine tree directory given current cursor position {{{2
" (full path directory with trailing slash returned)
fun! s:NetrwTreeDir(islocal)
"  call Dfunc("s:NetrwTreeDir(islocal=".a:islocal.") getline(".line(".").")"."<".getline('.')."> b:netrw_curdir<".b:netrw_curdir."> tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> ft=".&ft)
"  call Decho("g:netrw_keepdir  =".(exists("g:netrw_keepdir")?   g:netrw_keepdir   : 'n/a'),'~'.expand("<slnum>"))
"  call Decho("w:netrw_liststyle=".(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a'),'~'.expand("<slnum>"))
"  call Decho("w:netrw_treetop  =".(exists("w:netrw_treetop")?   w:netrw_treetop   : 'n/a'),'~'.expand("<slnum>"))

  if exists("s:treedir")
   " s:NetrwPrevWinOpen opens a "previous" window -- and thus needs to and does call s:NetrwTreeDir early
   let treedir= s:treedir
   unlet s:treedir
"   call Dret("s:NetrwTreeDir ".treedir)
   return treedir
  endif

  if !exists("b:netrw_curdir") || b:netrw_curdir == ""
   let b:netrw_curdir= getcwd()
  endif
  let treedir = b:netrw_curdir
"  call Decho("set initial treedir<".treedir.">",'~'.expand("<slnum>"))

  let s:treecurpos= winsaveview()
"  call Decho("saving posn to s:treecurpos<".string(s:treecurpos).">",'~'.expand("<slnum>"))

  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
"   call Decho("w:netrw_liststyle is TREELIST:",'~'.expand("<slnum>"))
"   call Decho("line#".line(".")." getline(.)<".getline('.')."> treecurpos<".string(s:treecurpos).">",'~'.expand("<slnum>"))

   " extract tree directory if on a line specifying a subdirectory (ie. ends with "/")
   let curline= substitute(getline('.'),"\t -->.*$",'','')
   if curline =~ '/$'
"    call Decho("extract tree subdirectory from current line",'~'.expand("<slnum>"))
    let treedir= substitute(getline('.'),'^\%('.s:treedepthstring.'\)*\([^'.s:treedepthstring.'].\{-}\)$','\1','e')
"    call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
   elseif curline =~ '@$'
"    call Decho("handle symbolic link from current line",'~'.expand("<slnum>"))
    let treedir= resolve(substitute(substitute(getline('.'),'@.*$','','e'),'^|*\s*','','e'))
"    call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
   else
"    call Decho("do not extract tree subdirectory from current line and set treedir to empty",'~'.expand("<slnum>"))
    let treedir= ""
   endif

   " detect user attempting to close treeroot
"   call Decho("check if user is attempting to close treeroot",'~'.expand("<slnum>"))
"   call Decho(".win#".winnr()." buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>"))
"   call Decho(".getline(".line(".").")<".getline('.').'> '.((getline('.') =~# '^'.s:treedepthstring)? '=~#' : '!~').' ^'.s:treedepthstring,'~'.expand("<slnum>"))
   if curline !~ '^'.s:treedepthstring && getline('.') != '..'
"    call Decho(".user may have attempted to close treeroot",'~'.expand("<slnum>"))
    " now force a refresh
"    call Decho(".force refresh: clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>"))
    sil! NetrwKeepj %d _
"    call Dret("s:NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".(exists("s:treecurpos")? string(s:treecurpos) : 'n/a').">")
    return b:netrw_curdir
"   else " Decho
"    call Decho(".user not attempting to close treeroot",'~'.expand("<slnum>"))
   endif

"   call Decho("islocal=".a:islocal." curline<".curline.">",'~'.expand("<slnum>"))
   let potentialdir= s:NetrwFile(substitute(curline,'^'.s:treedepthstring.'\+ \(.*\)@$','\1',''))
"   call Decho("potentialdir<".potentialdir."> isdir=".isdirectory(potentialdir),'~'.expand("<slnum>"))

   " COMBAK: a symbolic link may point anywhere -- so it will be used to start a new treetop
"   if a:islocal && curline =~ '@$' && isdirectory(s:NetrwFile(potentialdir))
"    let newdir          = w:netrw_treetop.'/'.potentialdir
" "   call Decho("apply NetrwTreePath to newdir<".newdir.">",'~'.expand("<slnum>"))
"    let treedir         = s:NetrwTreePath(newdir)
"    let w:netrw_treetop = newdir
" "   call Decho("newdir <".newdir.">",'~'.expand("<slnum>"))
"   else
"    call Decho("apply NetrwTreePath to treetop<".w:netrw_treetop.">",'~'.expand("<slnum>"))
    let treedir = s:NetrwTreePath(w:netrw_treetop)
"   endif
  endif

  " sanity maintenance: keep those //s away...
  let treedir= substitute(treedir,'//$','/','')
"  call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))

"  call Dret("s:NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".(exists("s:treecurpos")? string(s:treecurpos) : 'n/a').">")
  return treedir
endfun

" ---------------------------------------------------------------------
" s:NetrwTreeDisplay: recursive tree display {{{2
fun! s:NetrwTreeDisplay(dir,depth)
"  call Dfunc("NetrwTreeDisplay(dir<".a:dir."> depth<".a:depth.">)")

  " insure that there are no folds
  setl nofen

  " install ../ and shortdir
  if a:depth == ""
   call setline(line("$")+1,'../')
"   call Decho("setline#".line("$")." ../ (depth is zero)",'~'.expand("<slnum>"))
  endif
  if a:dir =~ '^\a\{3,}://'
   if a:dir == w:netrw_treetop
    let shortdir= a:dir
   else
    let shortdir= substitute(a:dir,'^.*/\([^/]\+\)/$','\1/','e')
   endif
   call setline(line("$")+1,a:depth.shortdir)
  else
   let shortdir= substitute(a:dir,'^.*/','','e')
   call setline(line("$")+1,a:depth.shortdir.'/')
  endif
"  call Decho("setline#".line("$")." shortdir<".a:depth.shortdir.">",'~'.expand("<slnum>"))

  " append a / to dir if its missing one
  let dir= a:dir

  " display subtrees (if any)
  let depth= s:treedepthstring.a:depth
"  call Decho("display subtrees with depth<".depth."> and current leaves",'~'.expand("<slnum>"))

"  call Decho("for every entry in w:netrw_treedict[".dir."]=".string(w:netrw_treedict[dir]),'~'.expand("<slnum>"))
  for entry in w:netrw_treedict[dir]
   if dir =~ '/$'
    let direntry= substitute(dir.entry,'[@/]$','','e')
   else
    let direntry= substitute(dir.'/'.entry,'[@/]$','','e')
   endif
"   call Decho("dir<".dir."> entry<".entry."> direntry<".direntry.">",'~'.expand("<slnum>"))
   if entry =~ '/$' && has_key(w:netrw_treedict,direntry)
"    call Decho("<".direntry."> is a key in treedict - display subtree for it",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwTreeDisplay(direntry,depth)
   elseif entry =~ '/$' && has_key(w:netrw_treedict,direntry.'/')
"    call Decho("<".direntry."/> is a key in treedict - display subtree for it",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwTreeDisplay(direntry.'/',depth)
   elseif entry =~ '@$' && has_key(w:netrw_treedict,direntry.'@')
"    call Decho("<".direntry."/> is a key in treedict - display subtree for it",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwTreeDisplay(direntry.'/',depth)
   else
"    call Decho("<".entry."> is not a key in treedict (no subtree)",'~'.expand("<slnum>"))
    sil! NetrwKeepj call setline(line("$")+1,depth.entry)
   endif
  endfor

"  call Dret("NetrwTreeDisplay")
endfun

" ---------------------------------------------------------------------
" s:NetrwRefreshTreeDict: updates the contents information for a tree (w:netrw_treedict) {{{2
fun! s:NetrwRefreshTreeDict(dir)
"  call Dfunc("s:NetrwRefreshTreeDict(dir<".a:dir.">)")
  for entry in w:netrw_treedict[a:dir]
   let direntry= substitute(a:dir.'/'.entry,'[@/]$','','e')
"   call Decho("a:dir<".a:dir."> entry<".entry."> direntry<".direntry.">",'~'.expand("<slnum>"))

   if entry =~ '/$' && has_key(w:netrw_treedict,direntry)
"    call Decho("<".direntry."> is a key in treedict - display subtree for it",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwRefreshTreeDict(direntry)
    let liststar                   = s:NetrwGlob(direntry,'*',1)
    let listdotstar                = s:NetrwGlob(direntry,'.*',1)
    let w:netrw_treedict[direntry] = liststar + listdotstar
"    call Decho("updating w:netrw_treedict[".direntry.']='.string(w:netrw_treedict[direntry]),'~'.expand("<slnum>"))

   elseif entry =~ '/$' && has_key(w:netrw_treedict,direntry.'/')
"    call Decho("<".direntry."/> is a key in treedict - display subtree for it",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwRefreshTreeDict(direntry.'/')
    let liststar   = s:NetrwGlob(direntry.'/','*',1)
    let listdotstar= s:NetrwGlob(direntry.'/','.*',1)
    let w:netrw_treedict[direntry]= liststar + listdotstar
"    call Decho("updating w:netrw_treedict[".direntry.']='.string(w:netrw_treedict[direntry]),'~'.expand("<slnum>"))

   elseif entry =~ '@$' && has_key(w:netrw_treedict,direntry.'@')
"    call Decho("<".direntry."/> is a key in treedict - display subtree for it",'~'.expand("<slnum>"))
    NetrwKeepj call s:NetrwRefreshTreeDict(direntry.'/')
    let liststar   = s:NetrwGlob(direntry.'/','*',1)
    let listdotstar= s:NetrwGlob(direntry.'/','.*',1)
"    call Decho("updating w:netrw_treedict[".direntry.']='.string(w:netrw_treedict[direntry]),'~'.expand("<slnum>"))

   else
"    call Decho('not updating w:netrw_treedict['.direntry.'] with entry<'.entry.'> (no subtree)',,'~'.expand("<slnum>"))
   endif
  endfor
"  call Dret("s:NetrwRefreshTreeDict")
endfun

" ---------------------------------------------------------------------
" s:NetrwTreeListing: displays tree listing from treetop on down, using NetrwTreeDisplay() {{{2
"                     Called by s:PerformListing()
fun! s:NetrwTreeListing(dirname)
  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
"   call Dfunc("NetrwTreeListing() bufname<".expand("%").">")
"   call Decho("curdir<".a:dirname.">",'~'.expand("<slnum>"))
"   call Decho("win#".winnr().": w:netrw_treetop ".(exists("w:netrw_treetop")? "exists" : "doesn't exist")." w:netrw_treedict ".(exists("w:netrw_treedict")? "exists" : "doesn't exit"),'~'.expand("<slnum>"))
"   call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))

   " update the treetop
"   call Decho("update the treetop",'~'.expand("<slnum>"))
   if !exists("w:netrw_treetop")
    let w:netrw_treetop= a:dirname
"    call Decho("w:netrw_treetop<".w:netrw_treetop."> (reusing)",'~'.expand("<slnum>"))
   elseif (w:netrw_treetop =~ ('^'.a:dirname) && s:Strlen(a:dirname) < s:Strlen(w:netrw_treetop)) || a:dirname !~ ('^'.w:netrw_treetop)
    let w:netrw_treetop= a:dirname
"    call Decho("w:netrw_treetop<".w:netrw_treetop."> (went up)",'~'.expand("<slnum>"))
   endif

   if !exists("w:netrw_treedict")
    " insure that we have a treedict, albeit empty
"    call Decho("initializing w:netrw_treedict to empty",'~'.expand("<slnum>"))
    let w:netrw_treedict= {}
   endif

   " update the dictionary for the current directory
"   call Decho("updating: w:netrw_treedict[".a:dirname.'] -> [directory listing]','~'.expand("<slnum>"))
"   call Decho("w:netrw_bannercnt=".w:netrw_bannercnt." line($)=".line("$"),'~'.expand("<slnum>"))
   exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$g@^\.\.\=/$@d _'
   let w:netrw_treedict[a:dirname]= getline(w:netrw_bannercnt,line("$"))
"   call Decho("w:treedict[".a:dirname."]= ".string(w:netrw_treedict[a:dirname]),'~'.expand("<slnum>"))
   exe "sil! NetrwKeepj ".w:netrw_bannercnt.",$d _"

   " if past banner, record word
   if exists("w:netrw_bannercnt") && line(".") > w:netrw_bannercnt
    let fname= expand("<cword>")
   else
    let fname= ""
   endif
"   call Decho("fname<".fname.">",'~'.expand("<slnum>"))
"   call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))

   " display from treetop on down
   NetrwKeepj call s:NetrwTreeDisplay(w:netrw_treetop,"")
"   call Decho("s:NetrwTreeDisplay) setl noma nomod ro",'~'.expand("<slnum>"))

   " remove any blank line remaining as line#1 (happens in treelisting mode with banner suppressed)
   while getline(1) =~ '^\s*$' && byte2line(1) > 0
"    call Decho("deleting blank line",'~'.expand("<slnum>"))
    1d
   endwhile

   exe "setl ".g:netrw_bufsettings

"   call Dret("NetrwTreeListing : bufname<".expand("%").">")
   return
  endif
endfun

" ---------------------------------------------------------------------
" s:NetrwTreePath: returns path to current file in tree listing {{{2
"                  Normally, treetop is w:netrw_treetop, but a
"                  user of the function ( netrw#SetTreetop() )
"                  wipes that out prior to calling this function
fun! s:NetrwTreePath(treetop)
"  call Dfunc("s:NetrwTreePath() line#".line(".")."<".getline(".").">")
  let svpos = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let depth = substitute(getline('.'),'^\(\%('.s:treedepthstring.'\)*\)[^'.s:treedepthstring.'].\{-}$','\1','e')
"  call Decho("depth<".depth."> 1st subst",'~'.expand("<slnum>"))
  let depth = substitute(depth,'^'.s:treedepthstring,'','')
"  call Decho("depth<".depth."> 2nd subst (first depth removed)",'~'.expand("<slnum>"))
  let curline= getline('.')
"  call Decho("curline<".curline.'>','~'.expand("<slnum>"))
  if curline =~ '/$'
"   call Decho("extract tree directory from current line",'~'.expand("<slnum>"))
   let treedir= substitute(curline,'^\%('.s:treedepthstring.'\)*\([^'.s:treedepthstring.'].\{-}\)$','\1','e')
"   call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
  elseif curline =~ '@\s\+-->'
"   call Decho("extract tree directory using symbolic link",'~'.expand("<slnum>"))
   let treedir= substitute(curline,'^\%('.s:treedepthstring.'\)*\([^'.s:treedepthstring.'].\{-}\)$','\1','e')
   let treedir= substitute(treedir,'@\s\+-->.*$','','e')
"   call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
  else
"   call Decho("do not extract tree directory from current line and set treedir to empty",'~'.expand("<slnum>"))
   let treedir= ""
  endif
  " construct treedir by searching backwards at correct depth
"  call Decho("construct treedir by searching backwards for correct depth",'~'.expand("<slnum>"))
"  call Decho("initial      treedir<".treedir."> depth<".depth.">",'~'.expand("<slnum>"))
  while depth != "" && search('^'.depth.'[^'.s:treedepthstring.'].\{-}/$','bW')
   let dirname= substitute(getline('.'),'^\('.s:treedepthstring.'\)*','','e')
   let treedir= dirname.treedir
   let depth  = substitute(depth,'^'.s:treedepthstring,'','')
"   call Decho("constructing treedir<".treedir.">: dirname<".dirname."> while depth<".depth.">",'~'.expand("<slnum>"))
  endwhile
  if a:treetop =~ '/$'
   let treedir= a:treetop.treedir
  else
   let treedir= a:treetop.'/'.treedir
  endif
  let treedir= substitute(treedir,'//$','/','')
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))"
  call winrestview(svpos)
"  call Dret("s:NetrwTreePath <".treedir.">")
  return treedir
endfun

" ---------------------------------------------------------------------
" s:NetrwWideListing: {{{2
fun! s:NetrwWideListing()

  if w:netrw_liststyle == s:WIDELIST
"   call Dfunc("NetrwWideListing() w:netrw_liststyle=".w:netrw_liststyle.' fo='.&fo.' l:fo='.&l:fo)
   " look for longest filename (cpf=characters per filename)
   " cpf: characters per filename
   " fpl: filenames per line
   " fpc: filenames per column
   setl ma noro
"   call Decho("setl ma noro",'~'.expand("<slnum>"))
   let b:netrw_cpf= 0
   if line("$") >= w:netrw_bannercnt
    exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
    NetrwKeepj call histdel("/",-1)
   else
"    call Dret("NetrwWideListing")
    return
   endif
   let b:netrw_cpf= b:netrw_cpf + 2
"   call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>"))

   " determine qty files per line (fpl)
   let w:netrw_fpl= winwidth(0)/b:netrw_cpf
   if w:netrw_fpl <= 0
    let w:netrw_fpl= 1
   endif
"   call Decho("fpl= [winwidth=".winwidth(0)."]/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl,'~'.expand("<slnum>"))

   " make wide display
   "   fpc: files per column of wide listing
   exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$s/^.*$/\=escape(printf("%-'.b:netrw_cpf.'S",submatch(0)),"\\")/'
   NetrwKeepj call histdel("/",-1)
   let fpc         = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl
   let newcolstart = w:netrw_bannercnt + fpc
   let newcolend   = newcolstart + fpc - 1
"   call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>"))
   if has("clipboard")
    sil! let keepregstar = @*
    sil! let keepregplus = @+
   endif
   while line("$") >= newcolstart
    if newcolend > line("$") | let newcolend= line("$") | endif
    let newcolqty= newcolend - newcolstart
    exe newcolstart
    if newcolqty == 0
     exe "sil! NetrwKeepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p"
    else
     exe "sil! NetrwKeepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p'
    endif
    exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _'
    exe 'sil! NetrwKeepj '.w:netrw_bannercnt
   endwhile
   if has("clipboard")
    sil! let @*= keepregstar
    sil! let @+= keepregplus
   endif
   exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e'
   NetrwKeepj call histdel("/",-1)
   exe 'nno <buffer> <silent> w	:call search(''^.\\|\s\s\zs\S'',''W'')'."\<cr>"
   exe 'nno <buffer> <silent> b	:call search(''^.\\|\s\s\zs\S'',''bW'')'."\<cr>"
"   call Decho("NetrwWideListing) setl noma nomod ro",'~'.expand("<slnum>"))
   exe "setl ".g:netrw_bufsettings
"   call Decho("(NetrwWideListing) ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"   call Dret("NetrwWideListing")
   return
  else
   if hasmapto("w","n")
    sil! nunmap <buffer> w
   endif
   if hasmapto("b","n")
    sil! nunmap <buffer> b
   endif
  endif

endfun

" ---------------------------------------------------------------------
" s:PerformListing: {{{2
fun! s:PerformListing(islocal)
"  call Dfunc("s:PerformListing(islocal=".a:islocal.")")
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol()." line($)=".line("$"),'~'.expand("<slnum>"))
"  call Decho("settings: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (enter)",'~'.expand("<slnum>"))

  " set up syntax highlighting {{{3
"  call Decho("--set up syntax highlighting (ie. setl ft=netrw)",'~'.expand("<slnum>"))
  sil! setl ft=netrw

  NetrwKeepj call s:NetrwSafeOptions()
  setl noro ma
"  call Decho("setl noro ma bh=".&bh,'~'.expand("<slnum>"))

"  if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1	" Decho
"   call Decho("(netrw) Processing your browsing request...",'~'.expand("<slnum>"))
"  endif								" Decho

"  call Decho('w:netrw_liststyle='.(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a'),'~'.expand("<slnum>"))
  if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
   " force a refresh for tree listings
"   call Decho("force refresh for treelisting: clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>"))
   sil! NetrwKeepj %d _
  endif

  " save current directory on directory history list
  NetrwKeepj call s:NetrwBookHistHandler(3,b:netrw_curdir)

  " Set up the banner {{{3
  if g:netrw_banner
"   call Decho("--set up banner",'~'.expand("<slnum>"))
   NetrwKeepj call setline(1,'" ============================================================================')
   if exists("g:netrw_pchk")
    " this undocumented option allows pchk to run with different versions of netrw without causing spurious
    " failure detections.
    NetrwKeepj call setline(2,'" Netrw Directory Listing')
   else
    NetrwKeepj call setline(2,'" Netrw Directory Listing                                        (netrw '.g:loaded_netrw.')')
   endif
   if exists("g:netrw_pchk")
    let curdir= substitute(b:netrw_curdir,expand("$HOME"),'~','')
   else
    let curdir= b:netrw_curdir
   endif
   if exists("g:netrw_bannerbackslash") && g:netrw_bannerbackslash
    NetrwKeepj call setline(3,'"   '.substitute(curdir,'/','\\','g'))
   else
    NetrwKeepj call setline(3,'"   '.curdir)
   endif
   let w:netrw_bannercnt= 3
   NetrwKeepj exe "sil! NetrwKeepj ".w:netrw_bannercnt
  else
"   call Decho("--no banner",'~'.expand("<slnum>"))
   NetrwKeepj 1
   let w:netrw_bannercnt= 1
  endif
"  call Decho("w:netrw_bannercnt=".w:netrw_bannercnt." win#".winnr(),'~'.expand("<slnum>"))
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol()." line($)=".line("$"),'~'.expand("<slnum>"))

  let sortby= g:netrw_sort_by
  if g:netrw_sort_direction =~# "^r"
   let sortby= sortby." reversed"
  endif

  " Sorted by... {{{3
  if g:netrw_banner
"   call Decho("--handle specified sorting: g:netrw_sort_by<".g:netrw_sort_by.">",'~'.expand("<slnum>"))
   if g:netrw_sort_by =~# "^n"
"   call Decho("directories will be sorted by name",'~'.expand("<slnum>"))
    " sorted by name
    NetrwKeepj put ='\"   Sorted by      '.sortby
    NetrwKeepj put ='\"   Sort sequence: '.g:netrw_sort_sequence
    let w:netrw_bannercnt= w:netrw_bannercnt + 2
   else
"   call Decho("directories will be sorted by size or time",'~'.expand("<slnum>"))
    " sorted by size or date
    NetrwKeepj put ='\"   Sorted by '.sortby
    let w:netrw_bannercnt= w:netrw_bannercnt + 1
   endif
   exe "sil! NetrwKeepj ".w:netrw_bannercnt
"  else " Decho
"   call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
  endif

  " show copy/move target, if any
  if g:netrw_banner
   if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal")
"    call Decho("--show copy/move target<".s:netrwmftgt.">",'~'.expand("<slnum>"))
    NetrwKeepj put =''
    if s:netrwmftgt_islocal
     sil! NetrwKeepj call setline(line("."),'"   Copy/Move Tgt: '.s:netrwmftgt.' (local)')
    else
     sil! NetrwKeepj call setline(line("."),'"   Copy/Move Tgt: '.s:netrwmftgt.' (remote)')
    endif
    let w:netrw_bannercnt= w:netrw_bannercnt + 1
   else
"    call Decho("s:netrwmftgt does not exist, don't make Copy/Move Tgt",'~'.expand("<slnum>"))
   endif
   exe "sil! NetrwKeepj ".w:netrw_bannercnt
  endif

  " Hiding...  -or-  Showing... {{{3
  if g:netrw_banner
"   call Decho("--handle hiding/showing (g:netrw_hide=".g:netrw_list_hide." g:netrw_list_hide<".g:netrw_list_hide.">)",'~'.expand("<slnum>"))
   if g:netrw_list_hide != "" && g:netrw_hide
    if g:netrw_hide == 1
     NetrwKeepj put ='\"   Hiding:        '.g:netrw_list_hide
    else
     NetrwKeepj put ='\"   Showing:       '.g:netrw_list_hide
    endif
    let w:netrw_bannercnt= w:netrw_bannercnt + 1
   endif
   exe "NetrwKeepj ".w:netrw_bannercnt

"   call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
   let quickhelp   = g:netrw_quickhelp%len(s:QuickHelp)
"   call Decho("quickhelp   =".quickhelp,'~'.expand("<slnum>"))
   NetrwKeepj put ='\"   Quick Help: <F1>:help  '.s:QuickHelp[quickhelp]
"   call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
   NetrwKeepj put ='\" =============================================================================='
   let w:netrw_bannercnt= w:netrw_bannercnt + 2
"  else " Decho
"   call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
  endif

  " bannercnt should index the line just after the banner
  if g:netrw_banner
   let w:netrw_bannercnt= w:netrw_bannercnt + 1
   exe "sil! NetrwKeepj ".w:netrw_bannercnt
"   call Decho("--w:netrw_bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$"),'~'.expand("<slnum>"))
"  else " Decho
"   call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
  endif

  " get list of files
"  call Decho("--Get list of files - islocal=".a:islocal,'~'.expand("<slnum>"))
  if a:islocal
   NetrwKeepj call s:LocalListing()
  else " remote
   NetrwKeepj let badresult= s:NetrwRemoteListing()
   if badresult
"    call Decho("w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'n/a')." win#".winnr()." buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>"))
"    call Dret("s:PerformListing : error detected by NetrwRemoteListing")
    return
   endif
  endif

  " manipulate the directory listing (hide, sort) {{{3
  if !exists("w:netrw_bannercnt")
   let w:netrw_bannercnt= 0
  endif
"  call Decho("--manipulate directory listing (hide, sort)",'~'.expand("<slnum>"))
"  call Decho("g:netrw_banner=".g:netrw_banner." w:netrw_bannercnt=".w:netrw_bannercnt." (banner complete)",'~'.expand("<slnum>"))
"  call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))

  if !g:netrw_banner || line("$") >= w:netrw_bannercnt
"   call Decho("manipulate directory listing (hide)",'~'.expand("<slnum>"))
"   call Decho("g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">",'~'.expand("<slnum>"))
   if g:netrw_hide && g:netrw_list_hide != ""
    NetrwKeepj call s:NetrwListHide()
   endif
   if !g:netrw_banner || line("$") >= w:netrw_bannercnt
"    call Decho("manipulate directory listing (sort) : g:netrw_sort_by<".g:netrw_sort_by.">",'~'.expand("<slnum>"))

    if g:netrw_sort_by =~# "^n"
     " sort by name
     NetrwKeepj call s:NetrwSetSort()

     if !g:netrw_banner || w:netrw_bannercnt < line("$")
"      call Decho("g:netrw_sort_direction=".g:netrw_sort_direction." (bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
      if g:netrw_sort_direction =~# 'n'
       " normal direction sorting
       exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options
      else
       " reverse direction sorting
       exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
      endif
     endif
     " remove priority pattern prefix
"     call Decho("remove priority pattern prefix",'~'.expand("<slnum>"))
     exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
     NetrwKeepj call histdel("/",-1)

    elseif g:netrw_sort_by =~# "^ext"
     " sort by extension
     exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g+/+s/^/001'.g:netrw_sepchr.'/'
     NetrwKeepj call histdel("/",-1)
     exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$v+[./]+s/^/002'.g:netrw_sepchr.'/'
     NetrwKeepj call histdel("/",-1)
     exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$v+['.g:netrw_sepchr.'/]+s/^\(.*\.\)\(.\{-\}\)$/\2'.g:netrw_sepchr.'&/e'
     NetrwKeepj call histdel("/",-1)
     if !g:netrw_banner || w:netrw_bannercnt < line("$")
"      call Decho("g:netrw_sort_direction=".g:netrw_sort_direction." (bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
      if g:netrw_sort_direction =~# 'n'
       " normal direction sorting
       exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options
      else
       " reverse direction sorting
       exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
      endif
     endif
     exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^.\{-}'.g:netrw_sepchr.'//e'
     NetrwKeepj call histdel("/",-1)

    elseif a:islocal
     if !g:netrw_banner || w:netrw_bannercnt < line("$")
"      call Decho("g:netrw_sort_direction=".g:netrw_sort_direction,'~'.expand("<slnum>"))
      if g:netrw_sort_direction =~# 'n'
"       call Decho('exe sil NetrwKeepj '.w:netrw_bannercnt.',$sort','~'.expand("<slnum>"))
       exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options
      else
"       call Decho('exe sil NetrwKeepj '.w:netrw_bannercnt.',$sort!','~'.expand("<slnum>"))
       exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
      endif
     exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
     NetrwKeepj call histdel("/",-1)
     endif
    endif

   elseif g:netrw_sort_direction =~# 'r'
"    call Decho('(s:PerformListing) reverse the sorted listing','~'.expand("<slnum>"))
    if !g:netrw_banner || w:netrw_bannercnt < line('$')
     exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt
     call histdel("/",-1)
    endif
   endif
  endif
"  call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))

  " convert to wide/tree listing {{{3
"  call Decho("--modify display if wide/tree listing style",'~'.expand("<slnum>"))
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#1)",'~'.expand("<slnum>"))
  NetrwKeepj call s:NetrwWideListing()
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#2)",'~'.expand("<slnum>"))
  NetrwKeepj call s:NetrwTreeListing(b:netrw_curdir)
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#3)",'~'.expand("<slnum>"))

  " resolve symbolic links if local and (thin or tree)
  if a:islocal && (w:netrw_liststyle == s:THINLIST || (exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST))
"   call Decho("--resolve symbolic links if local and thin|tree",'~'.expand("<slnum>"))
   g/@$/call s:ShowLink()
  endif

  if exists("w:netrw_bannercnt") && (line("$") >= w:netrw_bannercnt || !g:netrw_banner)
   " place cursor on the top-left corner of the file listing
"   call Decho("--place cursor on top-left corner of file listing",'~'.expand("<slnum>"))
   exe 'sil! '.w:netrw_bannercnt
   sil! NetrwKeepj norm! 0
"   call Decho("  tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol()." line($)=".line("$"),'~'.expand("<slnum>"))
  else
"   call Decho("--did NOT place cursor on top-left corner",'~'.expand("<slnum>"))
"   call Decho("  w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'n/a'),'~'.expand("<slnum>"))
"   call Decho("  line($)=".line("$"),'~'.expand("<slnum>"))
"   call Decho("  g:netrw_banner=".(exists("g:netrw_banner")? g:netrw_banner : 'n/a'),'~'.expand("<slnum>"))
  endif

  " record previous current directory
  let w:netrw_prvdir= b:netrw_curdir
"  call Decho("--record netrw_prvdir<".w:netrw_prvdir.">",'~'.expand("<slnum>"))

  " save certain window-oriented variables into buffer-oriented variables {{{3
"  call Decho("--save some window-oriented variables into buffer oriented variables",'~'.expand("<slnum>"))
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#4)",'~'.expand("<slnum>"))
  NetrwKeepj call s:SetBufWinVars()
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#5)",'~'.expand("<slnum>"))
  NetrwKeepj call s:NetrwOptionRestore("w:")
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#6)",'~'.expand("<slnum>"))

  " set display to netrw display settings
"  call Decho("--set display to netrw display settings (".g:netrw_bufsettings.")",'~'.expand("<slnum>"))
  exe "setl ".g:netrw_bufsettings
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#7)",'~'.expand("<slnum>"))
  if g:netrw_liststyle == s:LONGLIST
"   call Decho("exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>"))
   exe "setl ts=".(g:netrw_maxfilenamelen+1)
  endif

  if exists("s:treecurpos")
"   call Decho("s:treecurpos exists; restore posn",'~'.expand("<slnum>"))
"   call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#8)",'~'.expand("<slnum>"))
"   call Decho("restoring posn to s:treecurpos<".string(s:treecurpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(s:treecurpos)
   unlet s:treecurpos
  endif

"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (return)",'~'.expand("<slnum>"))
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol()." line($)=".line("$"),'~'.expand("<slnum>"))
"  call Dret("s:PerformListing : curpos<".string(getpos(".")).">")
endfun

" ---------------------------------------------------------------------
" s:SetupNetrwStatusLine: {{{2
fun! s:SetupNetrwStatusLine(statline)
"  call Dfunc("SetupNetrwStatusLine(statline<".a:statline.">)")

  if !exists("s:netrw_setup_statline")
   let s:netrw_setup_statline= 1
"   call Decho("do first-time status line setup",'~'.expand("<slnum>"))

   if !exists("s:netrw_users_stl")
    let s:netrw_users_stl= &stl
   endif
   if !exists("s:netrw_users_ls")
    let s:netrw_users_ls= &laststatus
   endif

   " set up User9 highlighting as needed
   let keepa= @a
   redir @a
   try
    hi User9
   catch /^Vim\%((\a\{3,})\)\=:E411/
    if &bg == "dark"
     hi User9 ctermfg=yellow ctermbg=blue guifg=yellow guibg=blue
    else
     hi User9 ctermbg=yellow ctermfg=blue guibg=yellow guifg=blue
    endif
   endtry
   redir END
   let @a= keepa
  endif

  " set up status line (may use User9 highlighting)
  " insure that windows have a statusline
  " make sure statusline is displayed
  let &stl=a:statline
  setl laststatus=2
"  call Decho("stl=".&stl,'~'.expand("<slnum>"))
  redraw

"  call Dret("SetupNetrwStatusLine : stl=".&stl)
endfun

" ---------------------------------------------------------------------
"  Remote Directory Browsing Support:    {{{1
" ===========================================

" ---------------------------------------------------------------------
" s:NetrwRemoteFtpCmd: unfortunately, not all ftp servers honor options for ls {{{2
"  This function assumes that a long listing will be received.  Size, time,
"  and reverse sorts will be requested of the server but not otherwise
"  enforced here.
fun! s:NetrwRemoteFtpCmd(path,listcmd)
"  call Dfunc("NetrwRemoteFtpCmd(path<".a:path."> listcmd<".a:listcmd.">) w:netrw_method=".(exists("w:netrw_method")? w:netrw_method : (exists("b:netrw_method")? b:netrw_method : "???")))
"  call Decho("line($)=".line("$")." win#".winnr()." w:netrw_bannercnt=".w:netrw_bannercnt,'~'.expand("<slnum>"))
  " sanity check: {{{3
  if !exists("w:netrw_method")
   if exists("b:netrw_method")
    let w:netrw_method= b:netrw_method
   else
    call netrw#ErrorMsg(2,"(s:NetrwRemoteFtpCmd) internal netrw error",93)
"    call Dret("NetrwRemoteFtpCmd")
    return
   endif
  endif

  " WinXX ftp uses unix style input, so set ff to unix	" {{{3
  let ffkeep= &ff
  setl ma ff=unix noro
"  call Decho("setl ma ff=unix noro",'~'.expand("<slnum>"))

  " clear off any older non-banner lines	" {{{3
  " note that w:netrw_bannercnt indexes the line after the banner
"  call Decho('exe sil! NetrwKeepj '.w:netrw_bannercnt.",$d _  (clear off old non-banner lines)",'~'.expand("<slnum>"))
  exe "sil! NetrwKeepj ".w:netrw_bannercnt.",$d _"

  ".........................................
  if w:netrw_method == 2 || w:netrw_method == 5	" {{{3
   " ftp + <.netrc>:  Method #2
   if a:path != ""
    NetrwKeepj put ='cd \"'.a:path.'\"'
   endif
   if exists("g:netrw_ftpextracmd")
    NetrwKeepj put =g:netrw_ftpextracmd
"    call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
   endif
   NetrwKeepj call setline(line("$")+1,a:listcmd)
"   exe "NetrwKeepj ".w:netrw_bannercnt.',$g/^./call Decho("ftp#".line(".").": ".getline("."),''~''.expand("<slnum>"))'
   if exists("g:netrw_port") && g:netrw_port != ""
"    call Decho("exe ".s:netrw_silentxfer.w:netrw_bannercnt.",$!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1)." ".s:ShellEscape(g:netrw_port,1),'~'.expand("<slnum>"))
    exe s:netrw_silentxfer." NetrwKeepj ".w:netrw_bannercnt.",$!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1)." ".s:ShellEscape(g:netrw_port,1)
   else
"    call Decho("exe ".s:netrw_silentxfer.w:netrw_bannercnt.",$!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1),'~'.expand("<slnum>"))
    exe s:netrw_silentxfer." NetrwKeepj ".w:netrw_bannercnt.",$!".s:netrw_ftp_cmd." -i ".s:ShellEscape(g:netrw_machine,1)
   endif

  ".........................................
  elseif w:netrw_method == 3	" {{{3
   " ftp + machine,id,passwd,filename:  Method #3
    setl ff=unix
    if exists("g:netrw_port") && g:netrw_port != ""
     NetrwKeepj put ='open '.g:netrw_machine.' '.g:netrw_port
    else
     NetrwKeepj put ='open '.g:netrw_machine
    endif

    " handle userid and password
    let host= substitute(g:netrw_machine,'\..*$','','')
"    call Decho("host<".host.">",'~'.expand("<slnum>"))
    if exists("s:netrw_hup") && exists("s:netrw_hup[host]")
     call NetUserPass("ftp:".host)
    endif
    if exists("g:netrw_uid") && g:netrw_uid != ""
     if exists("g:netrw_ftp") && g:netrw_ftp == 1
      NetrwKeepj put =g:netrw_uid
      if exists("s:netrw_passwd") && s:netrw_passwd != ""
       NetrwKeepj put ='\"'.s:netrw_passwd.'\"'
      endif
     elseif exists("s:netrw_passwd")
      NetrwKeepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"'
     endif
    endif

   if a:path != ""
    NetrwKeepj put ='cd \"'.a:path.'\"'
   endif
   if exists("g:netrw_ftpextracmd")
    NetrwKeepj put =g:netrw_ftpextracmd
"    call Decho("filter input: ".getline('.'),'~'.expand("<slnum>"))
   endif
   NetrwKeepj call setline(line("$")+1,a:listcmd)

   " perform ftp:
   " -i       : turns off interactive prompting from ftp
   " -n  unix : DON'T use <.netrc>, even though it exists
   " -n  win32: quit being obnoxious about password
   if exists("w:netrw_bannercnt")
"    exe w:netrw_bannercnt.',$g/^./call Decho("ftp#".line(".").": ".getline("."),''~''.expand("<slnum>"))'
    call s:NetrwExe(s:netrw_silentxfer.w:netrw_bannercnt.",$!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
"   else " Decho
"    call Decho("WARNING: w:netrw_bannercnt doesn't exist!",'~'.expand("<slnum>"))
"    g/^./call Decho("SKIPPING ftp#".line(".").": ".getline("."),'~'.expand("<slnum>"))
   endif

  ".........................................
  elseif w:netrw_method == 9	" {{{3
   " sftp username@machine: Method #9
   " s:netrw_sftp_cmd
   setl ff=unix

   " restore settings
   let &ff= ffkeep
"   call Dret("NetrwRemoteFtpCmd")
   return

  ".........................................
  else	" {{{3
   NetrwKeepj call netrw#ErrorMsg(s:WARNING,"unable to comply with your request<" . bufname("%") . ">",23)
  endif

  " cleanup for Windows " {{{3
  if has("win32") || has("win95") || has("win64") || has("win16")
   sil! NetrwKeepj %s/\r$//e
   NetrwKeepj call histdel("/",-1)
  endif
  if a:listcmd == "dir"
   " infer directory/link based on the file permission string
   sil! NetrwKeepj g/d\%([-r][-w][-x]\)\{3}/NetrwKeepj s@$@/@e
   sil! NetrwKeepj g/l\%([-r][-w][-x]\)\{3}/NetrwKeepj s/$/@/e
   NetrwKeepj call histdel("/",-1)
   NetrwKeepj call histdel("/",-1)
   if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || (exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST)
    exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/^\%(\S\+\s\+\)\{8}//e'
    NetrwKeepj call histdel("/",-1)
   endif
  endif

  " ftp's listing doesn't seem to include ./ or ../ " {{{3
  if !search('^\.\/$\|\s\.\/$','wn')
   exe 'NetrwKeepj '.w:netrw_bannercnt
   NetrwKeepj put ='./'
  endif
  if !search('^\.\.\/$\|\s\.\.\/$','wn')
   exe 'NetrwKeepj '.w:netrw_bannercnt
   NetrwKeepj put ='../'
  endif

  " restore settings " {{{3
  let &ff= ffkeep
"  call Dret("NetrwRemoteFtpCmd")
endfun

" ---------------------------------------------------------------------
" s:NetrwRemoteListing: {{{2
fun! s:NetrwRemoteListing()
"  call Dfunc("s:NetrwRemoteListing() b:netrw_curdir<".b:netrw_curdir.">) win#".winnr())

  if !exists("w:netrw_bannercnt") && exists("s:bannercnt")
   let w:netrw_bannercnt= s:bannercnt
  endif
  if !exists("w:netrw_bannercnt") && exists("b:bannercnt")
   let w:netrw_bannercnt= s:bannercnt
  endif

  call s:RemotePathAnalysis(b:netrw_curdir)

  " sanity check:
  if exists("b:netrw_method") && b:netrw_method =~ '[235]'
"   call Decho("b:netrw_method=".b:netrw_method,'~'.expand("<slnum>"))
   if !executable("ftp")
"    call Decho("ftp is not executable",'~'.expand("<slnum>"))
    if !exists("g:netrw_quiet")
     call netrw#ErrorMsg(s:ERROR,"this system doesn't support remote directory listing via ftp",18)
    endif
    call s:NetrwOptionRestore("w:")
"    call Dret("s:NetrwRemoteListing -1")
    return -1
   endif

  elseif !exists("g:netrw_list_cmd") || g:netrw_list_cmd == ''
"   call Decho("g:netrw_list_cmd<",(exists("g:netrw_list_cmd")? 'n/a' : "-empty-").">",'~'.expand("<slnum>"))
   if !exists("g:netrw_quiet")
    if g:netrw_list_cmd == ""
     NetrwKeepj call netrw#ErrorMsg(s:ERROR,"your g:netrw_list_cmd is empty; perhaps ".g:netrw_ssh_cmd." is not executable on your system",47)
    else
     NetrwKeepj call netrw#ErrorMsg(s:ERROR,"this system doesn't support remote directory listing via ".g:netrw_list_cmd,19)
    endif
   endif

   NetrwKeepj call s:NetrwOptionRestore("w:")
"   call Dret("s:NetrwRemoteListing -1")
   return -1
  endif  " (remote handling sanity check)
"  call Decho("passed remote listing sanity checks",'~'.expand("<slnum>"))

  if exists("b:netrw_method")
"   call Decho("setting w:netrw_method to b:netrw_method<".b:netrw_method.">",'~'.expand("<slnum>"))
   let w:netrw_method= b:netrw_method
  endif

  if s:method == "ftp"
   " use ftp to get remote file listing {{{3
"   call Decho("use ftp to get remote file listing",'~'.expand("<slnum>"))
   let s:method  = "ftp"
   let listcmd = g:netrw_ftp_list_cmd
   if g:netrw_sort_by =~# '^t'
    let listcmd= g:netrw_ftp_timelist_cmd
   elseif g:netrw_sort_by =~# '^s'
    let listcmd= g:netrw_ftp_sizelist_cmd
   endif
"   call Decho("listcmd<".listcmd."> (using g:netrw_ftp_list_cmd)",'~'.expand("<slnum>"))
   call s:NetrwRemoteFtpCmd(s:path,listcmd)
"   exe "sil! keepalt NetrwKeepj ".w:netrw_bannercnt.',$g/^./call Decho("raw listing: ".getline("."),''~''.expand("<slnum>"))'

   " report on missing file or directory messages
   if search('[Nn]o such file or directory\|Failed to change directory')
    let mesg= getline(".")
    if exists("w:netrw_bannercnt")
     setl ma
     exe w:netrw_bannercnt.",$d _"
     setl noma
    endif
    NetrwKeepj call s:NetrwOptionRestore("w:")
    call netrw#ErrorMsg(s:WARNING,mesg,96)
"    call Dret("s:NetrwRemoteListing : -1")
    return -1
   endif

   if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || (exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST)
    " shorten the listing
"    call Decho("generate short listing",'~'.expand("<slnum>"))
    exe "sil! keepalt NetrwKeepj ".w:netrw_bannercnt

    " cleanup
    if g:netrw_ftp_browse_reject != ""
     exe "sil! keepalt NetrwKeepj g/".g:netrw_ftp_browse_reject."/NetrwKeepj d"
     NetrwKeepj call histdel("/",-1)
    endif
    sil! NetrwKeepj %s/\r$//e
    NetrwKeepj call histdel("/",-1)

    " if there's no ../ listed, then put ../ in
    let line1= line(".")
    exe "sil! NetrwKeepj ".w:netrw_bannercnt
    let line2= search('\.\.\/\%(\s\|$\)','cnW')
"    call Decho("search(".'\.\.\/\%(\s\|$\)'."','cnW')=".line2."  w:netrw_bannercnt=".w:netrw_bannercnt,'~'.expand("<slnum>"))
    if line2 == 0
"     call Decho("netrw is putting ../ into listing",'~'.expand("<slnum>"))
     sil! NetrwKeepj put='../'
    endif
    exe "sil! NetrwKeepj ".line1
    sil! NetrwKeepj norm! 0

"    call Decho("line1=".line1." line2=".line2." line(.)=".line("."),'~'.expand("<slnum>"))
    if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup
"     call Decho("M$ ftp cleanup",'~'.expand("<slnum>"))
     exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+//'
     NetrwKeepj call histdel("/",-1)
    else " normal ftp cleanup
"     call Decho("normal ftp cleanup",'~'.expand("<slnum>"))
     exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
     exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
     exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
     NetrwKeepj call histdel("/",-1)
     NetrwKeepj call histdel("/",-1)
     NetrwKeepj call histdel("/",-1)
    endif
   endif

   else
   " use ssh to get remote file listing {{{3
"   call Decho("use ssh to get remote file listing: s:path<".s:path.">",'~'.expand("<slnum>"))
   let listcmd= s:MakeSshCmd(g:netrw_list_cmd)
"   call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)",'~'.expand("<slnum>"))
   if g:netrw_scp_cmd =~ '^pscp'
"    call Decho("1: exe r! ".s:ShellEscape(listcmd.s:path, 1),'~'.expand("<slnum>"))
    exe "NetrwKeepj r! ".listcmd.s:ShellEscape(s:path, 1)
    " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like
    sil! NetrwKeepj g/^Listing directory/NetrwKeepj d
    sil! NetrwKeepj g/^d[-rwx][-rwx][-rwx]/NetrwKeepj s+$+/+e
    sil! NetrwKeepj g/^l[-rwx][-rwx][-rwx]/NetrwKeepj s+$+@+e
    NetrwKeepj call histdel("/",-1)
    NetrwKeepj call histdel("/",-1)
    NetrwKeepj call histdel("/",-1)
    if g:netrw_liststyle != s:LONGLIST
     sil! NetrwKeepj g/^[dlsp-][-rwx][-rwx][-rwx]/NetrwKeepj s/^.*\s\(\S\+\)$/\1/e
     NetrwKeepj call histdel("/",-1)
    endif
   else
    if s:path == ""
"     call Decho("2: exe r! ".listcmd,'~'.expand("<slnum>"))
     exe "NetrwKeepj keepalt r! ".listcmd
    else
"     call Decho("3: exe r! ".listcmd.' '.s:ShellEscape(fnameescape(s:path),1),'~'.expand("<slnum>"))
     exe "NetrwKeepj keepalt r! ".listcmd.' '.s:ShellEscape(fnameescape(s:path),1)
"     call Decho("listcmd<".listcmd."> path<".s:path.">",'~'.expand("<slnum>"))
    endif
   endif

   " cleanup
   if g:netrw_ssh_browse_reject != ""
"    call Decho("cleanup: exe sil! g/".g:netrw_ssh_browse_reject."/NetrwKeepj d",'~'.expand("<slnum>"))
    exe "sil! g/".g:netrw_ssh_browse_reject."/NetrwKeepj d"
    NetrwKeepj call histdel("/",-1)
   endif
  endif

  if w:netrw_liststyle == s:LONGLIST
   " do a long listing; these substitutions need to be done prior to sorting {{{3
"   call Decho("fix long listing:",'~'.expand("<slnum>"))

   if s:method == "ftp"
    " cleanup
    exe "sil! NetrwKeepj ".w:netrw_bannercnt
    while getline('.') =~# g:netrw_ftp_browse_reject
     sil! NetrwKeepj d
    endwhile
    " if there's no ../ listed, then put ../ in
    let line1= line(".")
    sil! NetrwKeepj 1
    sil! NetrwKeepj call search('^\.\.\/\%(\s\|$\)','W')
    let line2= line(".")
    if line2 == 0
     if b:netrw_curdir != '/'
      exe 'sil! NetrwKeepj '.w:netrw_bannercnt."put='../'"
     endif
    endif
    exe "sil! NetrwKeepj ".line1
    sil! NetrwKeepj norm! 0
   endif

   if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup
"    call Decho("M$ ftp site listing cleanup",'~'.expand("<slnum>"))
    exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\(\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+\)\(\w.*\)$/\2\t\1/'
   elseif exists("w:netrw_bannercnt") && w:netrw_bannercnt <= line("$")
"    call Decho("normal ftp site listing cleanup: bannercnt=".w:netrw_bannercnt." line($)=".line("$"),'~'.expand("<slnum>"))
    exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$s/ -> .*$//e'
    exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2 \t\1/e'
    exe 'sil NetrwKeepj '.w:netrw_bannercnt
    NetrwKeepj call histdel("/",-1)
    NetrwKeepj call histdel("/",-1)
    NetrwKeepj call histdel("/",-1)
   endif
  endif

"  if exists("w:netrw_bannercnt") && w:netrw_bannercnt <= line("$") " Decho
"   exe "NetrwKeepj ".w:netrw_bannercnt.',$g/^./call Decho("listing: ".getline("."),''~''.expand("<slnum>"))'
"  endif " Decho

"  call Dret("s:NetrwRemoteListing 0")
  return 0
endfun

" ---------------------------------------------------------------------
" s:NetrwRemoteRm: remove/delete a remote file or directory {{{2
fun! s:NetrwRemoteRm(usrhost,path) range
"  call Dfunc("s:NetrwRemoteRm(usrhost<".a:usrhost."> path<".a:path.">) virtcol=".virtcol("."))
"  call Decho("firstline=".a:firstline." lastline=".a:lastline,'~'.expand("<slnum>"))
  let svpos= winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))

  let all= 0
  if exists("s:netrwmarkfilelist_{bufnr('%')}")
   " remove all marked files
"   call Decho("remove all marked files with bufnr#".bufnr("%"),'~'.expand("<slnum>"))
   for fname in s:netrwmarkfilelist_{bufnr("%")}
    let ok= s:NetrwRemoteRmFile(a:path,fname,all)
    if ok =~# 'q\%[uit]'
     break
    elseif ok =~# 'a\%[ll]'
     let all= 1
    endif
   endfor
   call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)

  else
   " remove files specified by range
"   call Decho("remove files specified by range",'~'.expand("<slnum>"))

   " preparation for removing multiple files/directories
   let keepsol = &l:sol
   setl nosol
   let ctr    = a:firstline

   " remove multiple files and directories
   while ctr <= a:lastline
    exe "NetrwKeepj ".ctr
    let ok= s:NetrwRemoteRmFile(a:path,s:NetrwGetWord(),all)
    if ok =~# 'q\%[uit]'
     break
    elseif ok =~# 'a\%[ll]'
     let all= 1
    endif
    let ctr= ctr + 1
   endwhile
   let &l:sol = keepsol
  endif

  " refresh the (remote) directory listing
"  call Decho("refresh remote directory listing",'~'.expand("<slnum>"))
  NetrwKeepj call s:NetrwRefresh(0,s:NetrwBrowseChgDir(0,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)

"  call Dret("s:NetrwRemoteRm")
endfun

" ---------------------------------------------------------------------
" s:NetrwRemoteRmFile: {{{2
fun! s:NetrwRemoteRmFile(path,rmfile,all)
"  call Dfunc("s:NetrwRemoteRmFile(path<".a:path."> rmfile<".a:rmfile.">) all=".a:all)

  let all= a:all
  let ok = ""

  if a:rmfile !~ '^"' && (a:rmfile =~ '@$' || a:rmfile !~ '[\/]$')
   " attempt to remove file
"    call Decho("attempt to remove file (all=".all.")",'~'.expand("<slnum>"))
   if !all
    echohl Statement
"    call Decho("case all=0:",'~'.expand("<slnum>"))
    call inputsave()
    let ok= input("Confirm deletion of file<".a:rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
    call inputrestore()
    echohl NONE
    if ok == ""
     let ok="no"
    endif
    let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
    if ok =~# 'a\%[ll]'
     let all= 1
    endif
   endif

   if all || ok =~# 'y\%[es]' || ok == ""
"    call Decho("case all=".all." or ok<".ok.">".(exists("w:netrw_method")? ': netrw_method='.w:netrw_method : ""),'~'.expand("<slnum>"))
    if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
"     call Decho("case ftp:",'~'.expand("<slnum>"))
     let path= a:path
     if path =~ '^\a\{3,}://'
      let path= substitute(path,'^\a\{3,}://[^/]\+/','','')
     endif
     sil! NetrwKeepj .,$d _
     call s:NetrwRemoteFtpCmd(path,"delete ".'"'.a:rmfile.'"')
    else
"     call Decho("case ssh: g:netrw_rm_cmd<".g:netrw_rm_cmd.">",'~'.expand("<slnum>"))
     let netrw_rm_cmd= s:MakeSshCmd(g:netrw_rm_cmd)
"     call Decho("netrw_rm_cmd<".netrw_rm_cmd.">",'~'.expand("<slnum>"))
     if !exists("b:netrw_curdir")
      NetrwKeepj call netrw#ErrorMsg(s:ERROR,"for some reason b:netrw_curdir doesn't exist!",53)
      let ok="q"
     else
      let remotedir= substitute(b:netrw_curdir,'^.*//[^/]\+/\(.*\)$','\1','')
"      call Decho("netrw_rm_cmd<".netrw_rm_cmd.">",'~'.expand("<slnum>"))
"      call Decho("remotedir<".remotedir.">",'~'.expand("<slnum>"))
"      call Decho("rmfile<".a:rmfile.">",'~'.expand("<slnum>"))
      if remotedir != ""
       let netrw_rm_cmd= netrw_rm_cmd." ".s:ShellEscape(fnameescape(remotedir.a:rmfile))
      else
       let netrw_rm_cmd= netrw_rm_cmd." ".s:ShellEscape(fnameescape(a:rmfile))
      endif
"      call Decho("call system(".netrw_rm_cmd.")",'~'.expand("<slnum>"))
      let ret= system(netrw_rm_cmd)
      if v:shell_error != 0
       if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir
        call netrw#ErrorMsg(s:ERROR,"remove failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-c)",102)
       else
        call netrw#ErrorMsg(s:WARNING,"cmd<".netrw_rm_cmd."> failed",60)
       endif
      elseif ret != 0
       call netrw#ErrorMsg(s:WARNING,"cmd<".netrw_rm_cmd."> failed",60)
      endif
"      call Decho("returned=".ret." errcode=".v:shell_error,'~'.expand("<slnum>"))
     endif
    endif
   elseif ok =~# 'q\%[uit]'
"    call Decho("ok==".ok,'~'.expand("<slnum>"))
   endif

  else
   " attempt to remove directory
"    call Decho("attempt to remove directory",'~'.expand("<slnum>"))
   if !all
    call inputsave()
    let ok= input("Confirm deletion of directory<".a:rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
    call inputrestore()
    if ok == ""
     let ok="no"
    endif
    let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
    if ok =~# 'a\%[ll]'
     let all= 1
    endif
   endif

   if all || ok =~# 'y\%[es]' || ok == ""
    if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
     NetrwKeepj call s:NetrwRemoteFtpCmd(a:path,"rmdir ".a:rmfile)
    else
     let rmfile          = substitute(a:path.a:rmfile,'/$','','')
     let netrw_rmdir_cmd = s:MakeSshCmd(netrw#WinPath(g:netrw_rmdir_cmd)).' '.s:ShellEscape(netrw#WinPath(rmfile))
"      call Decho("attempt to remove dir: system(".netrw_rmdir_cmd.")",'~'.expand("<slnum>"))
     let ret= system(netrw_rmdir_cmd)
"      call Decho("returned=".ret." errcode=".v:shell_error,'~'.expand("<slnum>"))

     if v:shell_error != 0
"      call Decho("v:shell_error not 0",'~'.expand("<slnum>"))
      let netrw_rmf_cmd= s:MakeSshCmd(netrw#WinPath(g:netrw_rmf_cmd)).' '.s:ShellEscape(netrw#WinPath(substitute(rmfile,'[\/]$','','e')))
"      call Decho("2nd attempt to remove dir: system(".netrw_rmf_cmd.")",'~'.expand("<slnum>"))
      let ret= system(netrw_rmf_cmd)
"      call Decho("returned=".ret." errcode=".v:shell_error,'~'.expand("<slnum>"))

      if v:shell_error != 0 && !exists("g:netrw_quiet")
      	NetrwKeepj call netrw#ErrorMsg(s:ERROR,"unable to remove directory<".rmfile."> -- is it empty?",22)
      endif
     endif
    endif

   elseif ok =~# 'q\%[uit]'
"    call Decho("ok==".ok,'~'.expand("<slnum>"))
   endif
  endif

"  call Dret("s:NetrwRemoteRmFile ".ok)
  return ok
endfun

" ---------------------------------------------------------------------
" s:NetrwRemoteRename: rename a remote file or directory {{{2
fun! s:NetrwRemoteRename(usrhost,path) range
"  call Dfunc("NetrwRemoteRename(usrhost<".a:usrhost."> path<".a:path.">)")

  " preparation for removing multiple files/directories
  let svpos      = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  let ctr        = a:firstline
  let rename_cmd = s:MakeSshCmd(g:netrw_rename_cmd)

  " rename files given by the markfilelist
  if exists("s:netrwmarkfilelist_{bufnr('%')}")
   for oldname in s:netrwmarkfilelist_{bufnr("%")}
"    call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
    if exists("subfrom")
     let newname= substitute(oldname,subfrom,subto,'')
"     call Decho("subfrom<".subfrom."> subto<".subto."> newname<".newname.">",'~'.expand("<slnum>"))
    else
     call inputsave()
     let newname= input("Moving ".oldname." to : ",oldname)
     call inputrestore()
     if newname =~ '^s/'
      let subfrom = substitute(newname,'^s/\([^/]*\)/.*/$','\1','')
      let subto   = substitute(newname,'^s/[^/]*/\(.*\)/$','\1','')
      let newname = substitute(oldname,subfrom,subto,'')
"      call Decho("subfrom<".subfrom."> subto<".subto."> newname<".newname.">",'~'.expand("<slnum>"))
     endif
    endif

    if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
     NetrwKeepj call s:NetrwRemoteFtpCmd(a:path,"rename ".oldname." ".newname)
    else
     let oldname= s:ShellEscape(a:path.oldname)
     let newname= s:ShellEscape(a:path.newname)
"     call Decho("system(netrw#WinPath(".rename_cmd.") ".oldname.' '.newname.")",'~'.expand("<slnum>"))
     let ret    = system(netrw#WinPath(rename_cmd).' '.oldname.' '.newname)
    endif

   endfor
   call s:NetrwUnMarkFile(1)

  else

  " attempt to rename files/directories
   let keepsol= &l:sol
   setl nosol
   while ctr <= a:lastline
    exe "NetrwKeepj ".ctr

    let oldname= s:NetrwGetWord()
"   call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))

    call inputsave()
    let newname= input("Moving ".oldname." to : ",oldname)
    call inputrestore()

    if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
     call s:NetrwRemoteFtpCmd(a:path,"rename ".oldname." ".newname)
    else
     let oldname= s:ShellEscape(a:path.oldname)
     let newname= s:ShellEscape(a:path.newname)
"     call Decho("system(netrw#WinPath(".rename_cmd.") ".oldname.' '.newname.")",'~'.expand("<slnum>"))
     let ret    = system(netrw#WinPath(rename_cmd).' '.oldname.' '.newname)
    endif

    let ctr= ctr + 1
   endwhile
   let &l:sol= keepsol
  endif

  " refresh the directory
  NetrwKeepj call s:NetrwRefresh(0,s:NetrwBrowseChgDir(0,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)

"  call Dret("NetrwRemoteRename")
endfun

" ---------------------------------------------------------------------
"  Local Directory Browsing Support:    {{{1
" ==========================================

" ---------------------------------------------------------------------
" netrw#FileUrlRead: handles reading file://* files {{{2
"   Should accept:   file://localhost/etc/fstab
"                    file:///etc/fstab
"                    file:///c:/WINDOWS/clock.avi
"                    file:///c|/WINDOWS/clock.avi
"                    file://localhost/c:/WINDOWS/clock.avi
"                    file://localhost/c|/WINDOWS/clock.avi
"                    file://c:/foo.txt
"                    file:///c:/foo.txt
" and %XX (where X is [0-9a-fA-F] is converted into a character with the given hexadecimal value
fun! netrw#FileUrlRead(fname)
"  call Dfunc("netrw#FileUrlRead(fname<".a:fname.">)")
  let fname = a:fname
  if fname =~ '^file://localhost/'
"   call Decho('converting file://localhost/   -to-  file:///','~'.expand("<slnum>"))
   let fname= substitute(fname,'^file://localhost/','file:///','')
"   call Decho("fname<".fname.">",'~'.expand("<slnum>"))
  endif
  if (has("win32") || has("win95") || has("win64") || has("win16"))
   if fname  =~ '^file:///\=\a[|:]/'
"    call Decho('converting file:///\a|/   -to-  file://\a:/','~'.expand("<slnum>"))
    let fname = substitute(fname,'^file:///\=\(\a\)[|:]/','file://\1:/','')
"    call Decho("fname<".fname.">",'~'.expand("<slnum>"))
   endif
  endif
  let fname2396 = netrw#RFC2396(fname)
  let fname2396e= fnameescape(fname2396)
  let plainfname= substitute(fname2396,'file://\(.*\)','\1',"")
  if (has("win32") || has("win95") || has("win64") || has("win16"))
"   call Decho("windows exception for plainfname",'~'.expand("<slnum>"))
   if plainfname =~ '^/\+\a:'
"    call Decho('removing leading "/"s','~'.expand("<slnum>"))
    let plainfname= substitute(plainfname,'^/\+\(\a:\)','\1','')
   endif
  endif
"  call Decho("fname2396<".fname2396.">",'~'.expand("<slnum>"))
"  call Decho("plainfname<".plainfname.">",'~'.expand("<slnum>"))
  exe "sil doau BufReadPre ".fname2396e
  exe 'NetrwKeepj r '.plainfname
  exe 'sil! bdelete '.plainfname
  exe 'keepalt file! '.plainfname
  NetrwKeepj 1d
"  call Decho("setl nomod",'~'.expand("<slnum>"))
  setl nomod
"  call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"  call Dret("netrw#FileUrlRead")
  exe "sil doau BufReadPost ".fname2396e
endfun

" ---------------------------------------------------------------------
" netrw#LocalBrowseCheck: {{{2
fun! netrw#LocalBrowseCheck(dirname)
  " This function is called by netrwPlugin.vim's s:LocalBrowse(), s:NetrwRexplore(), and by <cr> when atop listed file/directory
  " unfortunate interaction -- split window debugging can't be
  " used here, must use D-echoRemOn or D-echoTabOn -- the BufEnter
  " event triggers another call to LocalBrowseCheck() when attempts
  " to write to the DBG buffer are made.
  " The &ft == "netrw" test was installed because the BufEnter event
  " would hit when re-entering netrw windows, creating unexpected
  " refreshes (and would do so in the middle of NetrwSaveOptions(), too)
"  call Dfunc("netrw#LocalBrowseCheck(dirname<".a:dirname.">")
"  call Decho("isdir<".a:dirname."> =".isdirectory(s:NetrwFile(a:dirname)).((exists("s:treeforceredraw")? " treeforceredraw" : "")).'~'.expand("<slnum>"))
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"  call Dredir("ls!","ls!")
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"  call Decho("current buffer#".bufnr("%")."<".bufname("%")."> ft=".&ft,'~'.expand("<slnum>"))

  let ykeep= @@
  if isdirectory(s:NetrwFile(a:dirname))
"   call Decho("is-directory ft<".&ft."> b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : " doesn't exist")."> dirname<".a:dirname.">"." line($)=".line("$")." ft<".&ft."> g:netrw_fastbrowse=".g:netrw_fastbrowse,'~'.expand("<slnum>"))

   if &ft != "netrw" || (exists("b:netrw_curdir") && b:netrw_curdir != a:dirname) || g:netrw_fastbrowse <= 1
"    call Decho("case 1 : ft=".&ft,'~'.expand("<slnum>"))
"    call Decho("s:rexposn_".bufnr("%")."<".bufname("%")."> ".(exists("s:rexposn_".bufnr("%"))? "exists" : "does not exist"),'~'.expand("<slnum>"))
    sil! NetrwKeepj keepalt call s:NetrwBrowse(1,a:dirname)

   elseif &ft == "netrw" && line("$") == 1
"    call Decho("case 2 (ft≡netrw && line($)≡1)",'~'.expand("<slnum>"))
    sil! NetrwKeepj keepalt call s:NetrwBrowse(1,a:dirname)

   elseif exists("s:treeforceredraw")
"    call Decho("case 3 (treeforceredraw)",'~'.expand("<slnum>"))
    unlet s:treeforceredraw
    sil! NetrwKeepj keepalt call s:NetrwBrowse(1,a:dirname)
   endif
"   call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
"   call Dret("netrw#LocalBrowseCheck")
   return
  endif

  " following code wipes out currently unused netrw buffers
  "       IF g:netrw_fastbrowse is zero (ie. slow browsing selected)
  "   AND IF the listing style is not a tree listing
  if exists("g:netrw_fastbrowse") && g:netrw_fastbrowse == 0 && g:netrw_liststyle != s:TREELIST
"   call Decho("wiping out currently unused netrw buffers",'~'.expand("<slnum>"))
   let ibuf    = 1
   let buflast = bufnr("$")
   while ibuf <= buflast
    if bufwinnr(ibuf) == -1 && isdirectory(s:NetrwFile(bufname(ibuf)))
     exe "sil! keepj keepalt ".ibuf."bw!"
    endif
    let ibuf= ibuf + 1
   endwhile
  endif
  let @@= ykeep
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
  " not a directory, ignore it
"  call Dret("netrw#LocalBrowseCheck : not a directory, ignoring it; dirname<".a:dirname.">")
endfun

" ---------------------------------------------------------------------
" s:LocalBrowseRefresh: this function is called after a user has {{{2
" performed any shell command.  The idea is to cause all local-browsing
" buffers to be refreshed after a user has executed some shell command,
" on the chance that s/he removed/created a file/directory with it.
fun! s:LocalBrowseRefresh()
"  call Dfunc("s:LocalBrowseRefresh() tabpagenr($)=".tabpagenr("$"))
"  call Decho("s:netrw_browselist =".(exists("s:netrw_browselist")?  string(s:netrw_browselist)  : '<n/a>'),'~'.expand("<slnum>"))
"  call Decho("w:netrw_bannercnt  =".(exists("w:netrw_bannercnt")?   string(w:netrw_bannercnt)   : '<n/a>'),'~'.expand("<slnum>"))

  " determine which buffers currently reside in a tab
  if !exists("s:netrw_browselist")
"   call Dret("s:LocalBrowseRefresh : browselist is empty")
   return
  endif
  if !exists("w:netrw_bannercnt")
"   call Dret("s:LocalBrowseRefresh : don't refresh when focus not on netrw window")
   return
  endif
  if exists("s:netrw_events") && s:netrw_events == 1
   " s:LocalFastBrowser gets called (indirectly) from a
   let s:netrw_events= 2
"   call Dret("s:LocalBrowseRefresh : avoid initial double refresh")
   return
  endif
  let itab       = 1
  let buftablist = []
  let ykeep      = @@
  while itab <= tabpagenr("$")
   let buftablist = buftablist + tabpagebuflist()
   let itab       = itab + 1
   tabn
  endwhile
"  call Decho("buftablist".string(buftablist),'~'.expand("<slnum>"))
"  call Decho("s:netrw_browselist<".(exists("s:netrw_browselist")? string(s:netrw_browselist) : "").">",'~'.expand("<slnum>"))
  "  GO through all buffers on netrw_browselist (ie. just local-netrw buffers):
  "   | refresh any netrw window
  "   | wipe out any non-displaying netrw buffer
  let curwin = winnr()
  let ibl    = 0
  for ibuf in s:netrw_browselist
"   call Decho("bufwinnr(".ibuf.") index(buftablist,".ibuf.")=".index(buftablist,ibuf),'~'.expand("<slnum>"))
   if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1
    " wipe out any non-displaying netrw buffer
"    call Decho("wiping  buf#".ibuf,"<".bufname(ibuf).">",'~'.expand("<slnum>"))
    exe "sil! keepj bd ".fnameescape(ibuf)
    call remove(s:netrw_browselist,ibl)
"    call Decho("browselist=".string(s:netrw_browselist),'~'.expand("<slnum>"))
    continue
   elseif index(tabpagebuflist(),ibuf) != -1
    " refresh any netrw buffer
"    call Decho("refresh buf#".ibuf.'-> win#'.bufwinnr(ibuf),'~'.expand("<slnum>"))
    exe bufwinnr(ibuf)."wincmd w"
    if getline(".") =~# 'Quick Help'
     " decrement g:netrw_quickhelp to prevent refresh from changing g:netrw_quickhelp
     " (counteracts s:NetrwBrowseChgDir()'s incrementing)
     let g:netrw_quickhelp= g:netrw_quickhelp - 1
    endif
"    call Decho("#3: quickhelp=".g:netrw_quickhelp,'~'.expand("<slnum>"))
    if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
     NetrwKeepj call s:NetrwRefreshTreeDict(w:netrw_treetop)
    endif
    NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./'))
   endif
   let ibl= ibl + 1
"   call Decho("bottom of s:netrw_browselist for loop: ibl=".ibl,'~'.expand("<slnum>"))
  endfor
"  call Decho("restore window: exe ".curwin."wincmd w",'~'.expand("<slnum>"))
  exe curwin."wincmd w"
  let @@= ykeep

"  call Dret("s:LocalBrowseRefresh")
endfun

" ---------------------------------------------------------------------
" s:LocalFastBrowser: handles setting up/taking down fast browsing for the local browser {{{2
"
"     g:netrw_    Directory Is
"     fastbrowse  Local  Remote
"  slow   0         D      D      D=Deleting a buffer implies it will not be re-used (slow)
"  med    1         D      H      H=Hiding a buffer implies it may be re-used        (fast)
"  fast   2         H      H
"
"  Deleting a buffer means that it will be re-loaded when examined, hence "slow".
"  Hiding   a buffer means that it will be re-used   when examined, hence "fast".
"                       (re-using a buffer may not be as accurate)
"
"  s:netrw_events : doesn't exist, s:LocalFastBrowser() will install autocmds whena med or fast browsing
"                   =1: autocmds installed, but ignore next FocusGained event to avoid initial double-refresh of listing.
"                       BufEnter may be first event, then a FocusGained event.  Ignore the first FocusGained event.
"                       If :Explore used: it sets s:netrw_events to 2, so no FocusGained events are ignored.
"                   =2: autocmds installed (doesn't ignore any FocusGained events)
fun! s:LocalFastBrowser()
"  call Dfunc("LocalFastBrowser() g:netrw_fastbrowse=".g:netrw_fastbrowse)
"  call Decho("s:netrw_events        ".(exists("s:netrw_events")? "exists"    : 'n/a'),'~'.expand("<slnum>"))
"  call Decho("autocmd: ShellCmdPost ".(exists("#ShellCmdPost")?  "installed" : "not installed"),'~'.expand("<slnum>"))
"  call Decho("autocmd: FocusGained  ".(exists("#FocusGained")?   "installed" : "not installed"),'~'.expand("<slnum>"))

  " initialize browselist, a list of buffer numbers that the local browser has used
  if !exists("s:netrw_browselist")
"   call Decho("initialize s:netrw_browselist",'~'.expand("<slnum>"))
   let s:netrw_browselist= []
  endif

  " append current buffer to fastbrowse list
  if empty(s:netrw_browselist) || bufnr("%") > s:netrw_browselist[-1]
"   call Decho("appendng current buffer to browselist",'~'.expand("<slnum>"))
   call add(s:netrw_browselist,bufnr("%"))
"   call Decho("browselist=".string(s:netrw_browselist),'~'.expand("<slnum>"))
  endif

  " enable autocmd events to handle refreshing/removing local browser buffers
  "    If local browse buffer is currently showing: refresh it
  "    If local browse buffer is currently hidden : wipe it
  "    g:netrw_fastbrowse=0 : slow   speed, never re-use directory listing
  "                      =1 : medium speed, re-use directory listing for remote only
  "                      =2 : fast   speed, always re-use directory listing when possible
  if g:netrw_fastbrowse <= 1 && !exists("#ShellCmdPost") && !exists("s:netrw_events")
   let s:netrw_events= 1
   augroup AuNetrwEvent
    au!
    if (has("win32") || has("win95") || has("win64") || has("win16"))
"     call Decho("installing autocmd: ShellCmdPost",'~'.expand("<slnum>"))
     au ShellCmdPost			*	call s:LocalBrowseRefresh()
    else
"     call Decho("installing autocmds: ShellCmdPost FocusGained",'~'.expand("<slnum>"))
     au ShellCmdPost,FocusGained	*	call s:LocalBrowseRefresh()
    endif
   augroup END

  " user must have changed fastbrowse to its fast setting, so remove
  " the associated autocmd events
  elseif g:netrw_fastbrowse > 1 && exists("#ShellCmdPost") && exists("s:netrw_events")
"   call Decho("remove AuNetrwEvent autcmd group",'~'.expand("<slnum>"))
   unlet s:netrw_events
   augroup AuNetrwEvent
    au!
   augroup END
   augroup! AuNetrwEvent
  endif

"  call Dret("LocalFastBrowser : browselist<".string(s:netrw_browselist).">")
endfun

" ---------------------------------------------------------------------
"  s:LocalListing: does the job of "ls" for local directories {{{2
fun! s:LocalListing()
"  call Dfunc("s:LocalListing()")
"  call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"  call Decho("modified=".&modified." modifiable=".&modifiable." readonly=".&readonly,'~'.expand("<slnum>"))
"  call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))

"  if exists("b:netrw_curdir") |call Decho('b:netrw_curdir<'.b:netrw_curdir.">")  |else|call Decho("b:netrw_curdir doesn't exist",'~'.expand("<slnum>")) |endif
"  if exists("g:netrw_sort_by")|call Decho('g:netrw_sort_by<'.g:netrw_sort_by.">")|else|call Decho("g:netrw_sort_by doesn't exist",'~'.expand("<slnum>"))|endif
"  call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))

  " get the list of files contained in the current directory
  let dirname    = b:netrw_curdir
  let dirnamelen = strlen(b:netrw_curdir)
  let filelist   = s:NetrwGlob(dirname,"*",0)
  let filelist   = filelist + s:NetrwGlob(dirname,".*",0)
"  call Decho("filelist=".string(filelist),'~'.expand("<slnum>"))

  if g:netrw_cygwin == 0 && (has("win32") || has("win95") || has("win64") || has("win16"))
"   call Decho("filelist=".string(filelist),'~'.expand("<slnum>"))
  elseif index(filelist,'..') == -1 && b:netrw_curdir !~ '/'
    " include ../ in the glob() entry if its missing
"   call Decho("forcibly including on \"..\"",'~'.expand("<slnum>"))
   let filelist= filelist+[s:ComposePath(b:netrw_curdir,"../")]
"   call Decho("filelist=".string(filelist),'~'.expand("<slnum>"))
  endif

"  call Decho("before while: dirname   <".dirname.">",'~'.expand("<slnum>"))
"  call Decho("before while: dirnamelen<".dirnamelen.">",'~'.expand("<slnum>"))
"  call Decho("before while: filelist  =".string(filelist),'~'.expand("<slnum>"))

  if get(g:, 'netrw_dynamic_maxfilenamelen', 0)
   let filelistcopy           = map(deepcopy(filelist),'fnamemodify(v:val, ":t")')
   let g:netrw_maxfilenamelen = max(map(filelistcopy,'len(v:val)')) + 1
"   call Decho("dynamic_maxfilenamelen: filenames             =".string(filelistcopy),'~'.expand("<slnum>"))
"   call Decho("dynamic_maxfilenamelen: g:netrw_maxfilenamelen=".g:netrw_maxfilenamelen,'~'.expand("<slnum>"))
  endif
"  call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))

  for filename in filelist
"   call Decho(" ",'~'.expand("<slnum>"))
"   call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>"))

   if getftype(filename) == "link"
    " indicate a symbolic link
"    call Decho("indicate <".filename."> is a symbolic link with trailing @",'~'.expand("<slnum>"))
    let pfile= filename."@"

   elseif getftype(filename) == "socket"
    " indicate a socket
"    call Decho("indicate <".filename."> is a socket with trailing =",'~'.expand("<slnum>"))
    let pfile= filename."="

   elseif getftype(filename) == "fifo"
    " indicate a fifo
"    call Decho("indicate <".filename."> is a fifo with trailing |",'~'.expand("<slnum>"))
    let pfile= filename."|"

   elseif isdirectory(s:NetrwFile(filename))
    " indicate a directory
"    call Decho("indicate <".filename."> is a directory with trailing /",'~'.expand("<slnum>"))
    let pfile= filename."/"

   elseif exists("b:netrw_curdir") && b:netrw_curdir !~ '^.*://' && !isdirectory(s:NetrwFile(filename))
    if (has("win32") || has("win95") || has("win64") || has("win16"))
     if filename =~ '\.[eE][xX][eE]$' || filename =~ '\.[cC][oO][mM]$' || filename =~ '\.[bB][aA][tT]$'
      " indicate an executable
"      call Decho("indicate <".filename."> is executable with trailing *",'~'.expand("<slnum>"))
      let pfile= filename."*"
     else
      " normal file
      let pfile= filename
     endif
    elseif executable(filename)
     " indicate an executable
"     call Decho("indicate <".filename."> is executable with trailing *",'~'.expand("<slnum>"))
     let pfile= filename."*"
    else
     " normal file
     let pfile= filename
    endif

   else
    " normal file
    let pfile= filename
   endif
"   call Decho("pfile<".pfile."> (after *@/ appending)",'~'.expand("<slnum>"))

   if pfile =~ '//$'
    let pfile= substitute(pfile,'//$','/','e')
"    call Decho("change // to /: pfile<".pfile.">",'~'.expand("<slnum>"))
   endif
   let pfile= strpart(pfile,dirnamelen)
   let pfile= substitute(pfile,'^[/\\]','','e')
"   call Decho("filename<".filename.">",'~'.expand("<slnum>"))
"   call Decho("pfile   <".pfile.">",'~'.expand("<slnum>"))

   if w:netrw_liststyle == s:LONGLIST
    let sz   = getfsize(filename)
    if g:netrw_sizestyle =~# "[hH]"
     let sz= s:NetrwHumanReadable(sz)
    endif
    let fsz  = strpart("               ",1,15-strlen(sz)).sz
    let pfile= pfile."\t".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
"    call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
   endif

   if     g:netrw_sort_by =~# "^t"
    " sort by time (handles time up to 1 quintillion seconds, US)
"    call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
    let t  = getftime(filename)
    let ft = strpart("000000000000000000",1,18-strlen(t)).t
"    call Decho("exe NetrwKeepj put ='".ft.'/'.filename."'",'~'.expand("<slnum>"))
    let ftpfile= ft.'/'.pfile
    sil! NetrwKeepj put=ftpfile

   elseif g:netrw_sort_by =~ "^s"
    " sort by size (handles file sizes up to 1 quintillion bytes, US)
"    call Decho("getfsize(".filename.")=".getfsize(filename),'~'.expand("<slnum>"))
    let sz   = getfsize(filename)
    if g:netrw_sizestyle =~# "[hH]"
     let sz= s:NetrwHumanReadable(sz)
    endif
    let fsz  = strpart("000000000000000000",1,18-strlen(sz)).sz
"    call Decho("exe NetrwKeepj put ='".fsz.'/'.filename."'",'~'.expand("<slnum>"))
    let fszpfile= fsz.'/'.pfile
    sil! NetrwKeepj put =fszpfile

   else
    " sort by name
"    call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>"))
    sil! NetrwKeepj put=pfile
   endif
  endfor

  " cleanup any windows mess at end-of-line
  sil! NetrwKeepj g/^$/d
  sil! NetrwKeepj %s/\r$//e
  call histdel("/",-1)
"  call Decho("exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>"))
  exe "setl ts=".(g:netrw_maxfilenamelen+1)

"  call Dret("s:LocalListing")
endfun

" ---------------------------------------------------------------------
" s:NetrwLocalExecute: uses system() to execute command under cursor ("X" command support) {{{2
fun! s:NetrwLocalExecute(cmd)
"  call Dfunc("s:NetrwLocalExecute(cmd<".a:cmd.">)")
  let ykeep= @@
  " sanity check
  if !executable(a:cmd)
   call netrw#ErrorMsg(s:ERROR,"the file<".a:cmd."> is not executable!",89)
   let @@= ykeep
"   call Dret("s:NetrwLocalExecute")
   return
  endif

  let optargs= input(":!".a:cmd,"","file")
"  call Decho("optargs<".optargs.">",'~'.expand("<slnum>"))
  let result= system(a:cmd.optargs)
"  call Decho("result,'~'.expand("<slnum>"))

  " strip any ansi escape sequences off
  let result = substitute(result,"\e\\[[0-9;]*m","","g")

  " show user the result(s)
  echomsg result
  let @@= ykeep

"  call Dret("s:NetrwLocalExecute")
endfun

" ---------------------------------------------------------------------
" s:NetrwLocalRename: rename a local file or directory {{{2
fun! s:NetrwLocalRename(path) range
"  call Dfunc("NetrwLocalRename(path<".a:path.">)")

  " preparation for removing multiple files/directories
  let ykeep    = @@
  let ctr      = a:firstline
  let svpos    = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))

  " rename files given by the markfilelist
  if exists("s:netrwmarkfilelist_{bufnr('%')}")
   for oldname in s:netrwmarkfilelist_{bufnr("%")}
"    call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
    if exists("subfrom")
     let newname= substitute(oldname,subfrom,subto,'')
"     call Decho("subfrom<".subfrom."> subto<".subto."> newname<".newname.">",'~'.expand("<slnum>"))
    else
     call inputsave()
     let newname= input("Moving ".oldname." to : ",oldname,"file")
     call inputrestore()
     if newname =~ ''
      " two ctrl-x's : ignore all of string preceding the ctrl-x's
      let newname = substitute(newname,'^.*','','')
     elseif newname =~ ''
      " one ctrl-x : ignore portion of string preceding ctrl-x but after last /
      let newname = substitute(newname,'[^/]*','','')
     endif
     if newname =~ '^s/'
      let subfrom = substitute(newname,'^s/\([^/]*\)/.*/$','\1','')
      let subto   = substitute(newname,'^s/[^/]*/\(.*\)/$','\1','')
"      call Decho("subfrom<".subfrom."> subto<".subto."> newname<".newname.">",'~'.expand("<slnum>"))
      let newname = substitute(oldname,subfrom,subto,'')
     endif
    endif
    call rename(oldname,newname)
   endfor
   call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)

  else

   " attempt to rename files/directories
   while ctr <= a:lastline
    exe "NetrwKeepj ".ctr

    " sanity checks
    if line(".") < w:netrw_bannercnt
     let ctr= ctr + 1
     continue
    endif
    let curword= s:NetrwGetWord()
    if curword == "./" || curword == "../"
     let ctr= ctr + 1
     continue
    endif

    NetrwKeepj norm! 0
    let oldname= s:ComposePath(a:path,curword)
"   call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))

    call inputsave()
    let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
    call inputrestore()

    call rename(oldname,newname)
"   call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>"))

    let ctr= ctr + 1
   endwhile
  endif

  " refresh the directory
"  call Decho("refresh the directory listing",'~'.expand("<slnum>"))
  NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./'))
"  call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
  NetrwKeepj call winrestview(svpos)
  let @@= ykeep

"  call Dret("NetrwLocalRename")
endfun

" ---------------------------------------------------------------------
" s:NetrwLocalRm: {{{2
fun! s:NetrwLocalRm(path) range
"  call Dfunc("s:NetrwLocalRm(path<".a:path.">)")
"  call Decho("firstline=".a:firstline." lastline=".a:lastline,'~'.expand("<slnum>"))

  " preparation for removing multiple files/directories
  let ykeep = @@
  let ret   = 0
  let all   = 0
  let svpos = winsaveview()
"  call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))

  if exists("s:netrwmarkfilelist_{bufnr('%')}")
   " remove all marked files
"   call Decho("remove all marked files",'~'.expand("<slnum>"))
   for fname in s:netrwmarkfilelist_{bufnr("%")}
    let ok= s:NetrwLocalRmFile(a:path,fname,all)
    if ok =~# 'q\%[uit]' || ok == "no"
     break
    elseif ok =~# 'a\%[ll]'
     let all= 1
    endif
   endfor
   call s:NetrwUnMarkFile(1)

  else
  " remove (multiple) files and directories
"   call Decho("remove files in range [".a:firstline.",".a:lastline."]",'~'.expand("<slnum>"))

   let keepsol= &l:sol
   setl nosol
   let ctr = a:firstline
   while ctr <= a:lastline
    exe "NetrwKeepj ".ctr

    " sanity checks
    if line(".") < w:netrw_bannercnt
     let ctr= ctr + 1
     continue
    endif
    let curword= s:NetrwGetWord()
    if curword == "./" || curword == "../"
     let ctr= ctr + 1
     continue
    endif
    let ok= s:NetrwLocalRmFile(a:path,curword,all)
    if ok =~# 'q\%[uit]' || ok == "no"
     break
    elseif ok =~# 'a\%[ll]'
     let all= 1
    endif
    let ctr= ctr + 1
   endwhile
   let &l:sol= keepsol
  endif

  " refresh the directory
"  call Decho("bufname<".bufname("%").">",'~'.expand("<slnum>"))
  if bufname("%") != "NetrwMessage"
   NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./'))
"   call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(svpos)
  endif
  let @@= ykeep

"  call Dret("s:NetrwLocalRm")
endfun

" ---------------------------------------------------------------------
" s:NetrwLocalRmFile: remove file fname given the path {{{2
"                     Give confirmation prompt unless all==1
fun! s:NetrwLocalRmFile(path,fname,all)
"  call Dfunc("s:NetrwLocalRmFile(path<".a:path."> fname<".a:fname."> all=".a:all)

  let all= a:all
  let ok = ""
  NetrwKeepj norm! 0
  let rmfile= s:NetrwFile(s:ComposePath(a:path,a:fname))
"  call Decho("rmfile<".rmfile.">",'~'.expand("<slnum>"))

  if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '[\/]$')
   " attempt to remove file
"   call Decho("attempt to remove file<".rmfile.">",'~'.expand("<slnum>"))
   if !all
    echohl Statement
    call inputsave()
    let ok= input("Confirm deletion of file<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
    call inputrestore()
    echohl NONE
    if ok == ""
     let ok="no"
    endif
"    call Decho("response: ok<".ok.">",'~'.expand("<slnum>"))
    let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
"    call Decho("response: ok<".ok."> (after sub)",'~'.expand("<slnum>"))
    if ok =~# 'a\%[ll]'
     let all= 1
    endif
   endif

   if all || ok =~# 'y\%[es]' || ok == ""
    let ret= s:NetrwDelete(rmfile)
"    call Decho("errcode=".v:shell_error." ret=".ret,'~'.expand("<slnum>"))
   endif

  else
   " attempt to remove directory
   if !all
    echohl Statement
    call inputsave()
    let ok= input("Confirm deletion of directory<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
    call inputrestore()
    let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
    if ok == ""
     let ok="no"
    endif
    if ok =~# 'a\%[ll]'
     let all= 1
    endif
   endif
   let rmfile= substitute(rmfile,'[\/]$','','e')

   if all || ok =~# 'y\%[es]' || ok == ""
    if v:version < 704 || !has("patch1109")
" "    call Decho("1st attempt: system(netrw#WinPath(".g:netrw_localrmdir.') '.s:ShellEscape(rmfile).')','~'.expand("<slnum>"))
     call system(netrw#WinPath(g:netrw_localrmdir).' '.s:ShellEscape(rmfile))
" "    call Decho("v:shell_error=".v:shell_error,'~'.expand("<slnum>"))

     if v:shell_error != 0
" "     call Decho("2nd attempt to remove directory<".rmfile.">",'~'.expand("<slnum>"))
      let errcode= s:NetrwDelete(rmfile)
" "     call Decho("errcode=".errcode,'~'.expand("<slnum>"))

      if errcode != 0
       if has("unix")
" "       call Decho("3rd attempt to remove directory<".rmfile.">",'~'.expand("<slnum>"))
	call system("rm ".s:ShellEscape(rmfile))
	if v:shell_error != 0 && !exists("g:netrw_quiet")
	 call netrw#ErrorMsg(s:ERROR,"unable to remove directory<".rmfile."> -- is it empty?",34)
	 let ok="no"
	endif
       elseif !exists("g:netrw_quiet")
	call netrw#ErrorMsg(s:ERROR,"unable to remove directory<".rmfile."> -- is it empty?",35)
	let ok="no"
       endif
      endif
     endif
    else
     if delete(rmfile,"d")
      call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".rmfile.">!",103)
     endif
    endif
   endif
  endif

"  call Dret("s:NetrwLocalRmFile ".ok)
  return ok
endfun

" ---------------------------------------------------------------------
" Support Functions: {{{1

" ---------------------------------------------------------------------
" s:WinNames: COMBAK {{{2
fun! s:WinNames(id)
  let curwin= winnr()
  1wincmd w
"  call Decho("--- Windows By Name --- #".a:id)
"  windo call Decho("win#".winnr()."<".expand("%").">")
"  call Decho("--- --- --- --- --- ---")
  exe curwin."wincmd w"
endfun

" ---------------------------------------------------------------------
" netrw#Access: intended to provide access to variable values for netrw's test suite {{{2
"   0: marked file list of current buffer
"   1: marked file target
fun! netrw#Access(ilist)
  if     a:ilist == 0
   if exists("s:netrwmarkfilelist_".bufnr('%'))
    return s:netrwmarkfilelist_{bufnr('%')}
   else
    return "no-list-buf#".bufnr('%')
   endif
  elseif a:ilist == 1
   return s:netrwmftgt
endfun

" ---------------------------------------------------------------------
" netrw#Call: allows user-specified mappings to call internal netrw functions {{{2
fun! netrw#Call(funcname,...)
"  call Dfunc("netrw#Call(funcname<".a:funcname.">,".string(a:000).")")
  if a:0 > 0
   exe "call s:".a:funcname."(".string(a:000).")"
  else
   exe "call s:".a:funcname."()"
  endif
"  call Dret("netrw#Call")
endfun

" ---------------------------------------------------------------------
" netrw#Expose: allows UserMaps and pchk to look at otherwise script-local variables {{{2
"               I expect this function to be used in
"                 :PChkAssert netrw#Expose("netrwmarkfilelist")
"               for example.
fun! netrw#Expose(varname)
"   call Dfunc("netrw#Expose(varname<".a:varname.">)")
  if exists("s:".a:varname)
   exe "let retval= s:".a:varname
   if exists("g:netrw_pchk")
    if type(retval) == 3
     let retval = copy(retval)
     let i      = 0
     while i < len(retval)
      let retval[i]= substitute(retval[i],expand("$HOME"),'~','')
      let i        = i + 1
     endwhile
    endif
"     call Dret("netrw#Expose ".string(retval))
    return string(retval)
   endif
  else
   let retval= "n/a"
  endif

"  call Dret("netrw#Expose ".string(retval))
  return retval
endfun

" ---------------------------------------------------------------------
" netrw#Modify: allows UserMaps to set (modify) script-local variables {{{2
fun! netrw#Modify(varname,newvalue)
"  call Dfunc("netrw#Modify(varname<".a:varname.">,newvalue<".string(a:newvalue).">)")
  exe "let s:".a:varname."= ".string(a:newvalue)
"  call Dret("netrw#Modify")
endfun

" ---------------------------------------------------------------------
"  netrw#RFC2396: converts %xx into characters {{{2
fun! netrw#RFC2396(fname)
"  call Dfunc("netrw#RFC2396(fname<".a:fname.">)")
  let fname = escape(substitute(a:fname,'%\(\x\x\)','\=nr2char("0x".submatch(1))','ge')," \t")
"  call Dret("netrw#RFC2396 ".fname)
  return fname
endfun

" ---------------------------------------------------------------------
" netrw#UserMaps: supports user-specified maps {{{2
"                 see :help function()
"
"                 g:Netrw_UserMaps is a List with members such as:
"                       [[keymap sequence, function reference],...]
"
"                 The referenced function may return a string,
"                 	refresh : refresh the display
"                 	-other- : this string will be executed
"                 or it may return a List of strings.
"
"                 Each keymap-sequence will be set up with a nnoremap
"                 to invoke netrw#UserMaps(islocal).
"                 Related functions:
"                   netrw#Expose(varname)          -- see s:varname variables
"                   netrw#Modify(varname,newvalue) -- modify value of s:varname variable
"                   netrw#Call(funcname,...)       -- call internal netrw function with optional arguments
fun! netrw#UserMaps(islocal)
"  call Dfunc("netrw#UserMaps(islocal=".a:islocal.")")
"  call Decho("g:Netrw_UserMaps ".(exists("g:Netrw_UserMaps")? "exists" : "does NOT exist"),'~'.expand("<slnum>"))

   " set up usermaplist
   if exists("g:Netrw_UserMaps") && type(g:Netrw_UserMaps) == 3
"    call Decho("g:Netrw_UserMaps has type 3<List>",'~'.expand("<slnum>"))
    for umap in g:Netrw_UserMaps
"     call Decho("type(umap[0]<".string(umap[0]).">)=".type(umap[0])." (should be 1=string)",'~'.expand("<slnum>"))
"     call Decho("type(umap[1])=".type(umap[1])." (should be 1=string)",'~'.expand("<slnum>"))
     " if umap[0] is a string and umap[1] is a string holding a function name
     if type(umap[0]) == 1 && type(umap[1]) == 1
"      call Decho("nno <buffer> <silent> ".umap[0]." :call s:UserMaps(".a:islocal.",".string(umap[1]).")<cr>",'~'.expand("<slnum>"))
      exe "nno <buffer> <silent> ".umap[0]." :call <SID>UserMaps(".a:islocal.",'".umap[1]."')<cr>"
      else
       call netrw#ErrorMsg(s:WARNING,"ignoring usermap <".string(umap[0])."> -- not a [string,funcref] entry",99)
     endif
    endfor
   endif
"  call Dret("netrw#UserMaps")
endfun

" ---------------------------------------------------------------------
" netrw#WinPath: tries to insure that the path is windows-acceptable, whether cygwin is used or not {{{2
fun! netrw#WinPath(path)
"  call Dfunc("netrw#WinPath(path<".a:path.">)")
  if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && (has("win32") || has("win95") || has("win64") || has("win16"))
   " remove cygdrive prefix, if present
   let path = substitute(a:path,g:netrw_cygdrive.'/\(.\)','\1:','')
   " remove trailing slash (Win95)
   let path = substitute(path, '\(\\\|/\)$', '', 'g')
   " remove escaped spaces
   let path = substitute(path, '\ ', ' ', 'g')
   " convert slashes to backslashes
   let path = substitute(path, '/', '\', 'g')
  else
   let path= a:path
  endif
"  call Dret("netrw#WinPath <".path.">")
  return path
endfun

" ---------------------------------------------------------------------
"  s:ComposePath: Appends a new part to a path taking different systems into consideration {{{2
fun! s:ComposePath(base,subdir)
"  call Dfunc("s:ComposePath(base<".a:base."> subdir<".a:subdir.">)")

  if has("amiga")
"   call Decho("amiga",'~'.expand("<slnum>"))
   let ec = a:base[s:Strlen(a:base)-1]
   if ec != '/' && ec != ':'
    let ret = a:base."/" . a:subdir
   else
    let ret = a:base.a:subdir
   endif

  elseif a:subdir =~ '^\a:[/\\][^/\\]' && (has("win32") || has("win95") || has("win64") || has("win16"))
"   call Decho("windows",'~'.expand("<slnum>"))
   let ret= a:subdir

  elseif a:base =~ '^\a:[/\\][^/\\]' && (has("win32") || has("win95") || has("win64") || has("win16"))
"   call Decho("windows",'~'.expand("<slnum>"))
   if a:base =~ '[/\\]$'
    let ret= a:base.a:subdir
   else
    let ret= a:base.'/'.a:subdir
   endif

  elseif a:base =~ '^\a\{3,}://'
"   call Decho("remote linux/macos",'~'.expand("<slnum>"))
   let urlbase = substitute(a:base,'^\(\a\+://.\{-}/\)\(.*\)$','\1','')
   let curpath = substitute(a:base,'^\(\a\+://.\{-}/\)\(.*\)$','\2','')
   if a:subdir == '../'
    if curpath =~ '[^/]/[^/]\+/$'
     let curpath= substitute(curpath,'[^/]\+/$','','')
    else
     let curpath=""
    endif
    let ret= urlbase.curpath
   else
    let ret= urlbase.curpath.a:subdir
   endif
"   call Decho("urlbase<".urlbase.">",'~'.expand("<slnum>"))
"   call Decho("curpath<".curpath.">",'~'.expand("<slnum>"))
"   call Decho("ret<".ret.">",'~'.expand("<slnum>"))

  else
"   call Decho("local linux/macos",'~'.expand("<slnum>"))
   let ret = substitute(a:base."/".a:subdir,"//","/","g")
   if a:base =~ '^//'
    " keeping initial '//' for the benefit of network share listing support
    let ret= '/'.ret
   endif
   let ret= simplify(ret)
  endif

"  call Dret("s:ComposePath ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" s:DeleteBookmark: deletes a file/directory from Netrw's bookmark system {{{2
"   Related Functions: s:MakeBookmark() s:NetrwBookHistHandler() s:NetrwBookmark()
fun! s:DeleteBookmark(fname)
"  call Dfunc("s:DeleteBookmark(fname<".a:fname.">)")
  call s:MergeBookmarks()

  if exists("g:netrw_bookmarklist")
   let indx= index(g:netrw_bookmarklist,a:fname)
   if indx == -1
    let indx= 0
    while indx < len(g:netrw_bookmarklist)
     if g:netrw_bookmarklist[indx] =~ a:fname
      call remove(g:netrw_bookmarklist,indx)
      let indx= indx - 1
     endif
     let indx= indx + 1
    endwhile
   else
    " remove exact match
    call remove(g:netrw_bookmarklist,indx)
   endif
  endif

"  call Dret("s:DeleteBookmark")
endfun

" ---------------------------------------------------------------------
" s:FileReadable: o/s independent filereadable {{{2
fun! s:FileReadable(fname)
"  call Dfunc("s:FileReadable(fname<".a:fname.">)")

  if g:netrw_cygwin
   let ret= filereadable(s:NetrwFile(substitute(a:fname,g:netrw_cygdrive.'/\(.\)','\1:/','')))
  else
   let ret= filereadable(s:NetrwFile(a:fname))
  endif

"  call Dret("s:FileReadable ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
"  s:GetTempfile: gets a tempname that'll work for various o/s's {{{2
"                 Places correct suffix on end of temporary filename,
"                 using the suffix provided with fname
fun! s:GetTempfile(fname)
"  call Dfunc("s:GetTempfile(fname<".a:fname.">)")

  if !exists("b:netrw_tmpfile")
   " get a brand new temporary filename
   let tmpfile= tempname()
"   call Decho("tmpfile<".tmpfile."> : from tempname()",'~'.expand("<slnum>"))

   let tmpfile= substitute(tmpfile,'\','/','ge')
"   call Decho("tmpfile<".tmpfile."> : chgd any \\ -> /",'~'.expand("<slnum>"))

   " sanity check -- does the temporary file's directory exist?
   if !isdirectory(s:NetrwFile(substitute(tmpfile,'[^/]\+$','','e')))
"    call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
    NetrwKeepj call netrw#ErrorMsg(s:ERROR,"your <".substitute(tmpfile,'[^/]\+$','','e')."> directory is missing!",2)
"    call Dret("s:GetTempfile getcwd<".getcwd().">")
    return ""
   endif

   " let netrw#NetSource() know about the tmpfile
   let s:netrw_tmpfile= tmpfile " used by netrw#NetSource() and netrw#BrowseX()
"   call Decho("tmpfile<".tmpfile."> s:netrw_tmpfile<".s:netrw_tmpfile.">",'~'.expand("<slnum>"))

   " o/s dependencies
   if g:netrw_cygwin != 0
    let tmpfile = substitute(tmpfile,'^\(\a\):',g:netrw_cygdrive.'/\1','e')
   elseif has("win32") || has("win95") || has("win64") || has("win16")
    if !exists("+shellslash") || !&ssl
     let tmpfile = substitute(tmpfile,'/','\','g')
    endif
   else
    let tmpfile = tmpfile
   endif
   let b:netrw_tmpfile= tmpfile
"   call Decho("o/s dependent fixed tempname<".tmpfile.">",'~'.expand("<slnum>"))
  else
   " re-use temporary filename
   let tmpfile= b:netrw_tmpfile
"   call Decho("tmpfile<".tmpfile."> re-using",'~'.expand("<slnum>"))
  endif

  " use fname's suffix for the temporary file
  if a:fname != ""
   if a:fname =~ '\.[^./]\+$'
"    call Decho("using fname<".a:fname.">'s suffix",'~'.expand("<slnum>"))
    if a:fname =~ '\.tar\.gz$' || a:fname =~ '\.tar\.bz2$' || a:fname =~ '\.tar\.xz$'
     let suffix = ".tar".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
    elseif a:fname =~ '.txz$'
     let suffix = ".txz".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
    else
     let suffix = substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
    endif
"    call Decho("suffix<".suffix.">",'~'.expand("<slnum>"))
    let tmpfile= substitute(tmpfile,'\.tmp$','','e')
"    call Decho("chgd tmpfile<".tmpfile."> (removed any .tmp suffix)",'~'.expand("<slnum>"))
    let tmpfile .= suffix
"    call Decho("chgd tmpfile<".tmpfile."> (added ".suffix." suffix) netrw_fname<".b:netrw_fname.">",'~'.expand("<slnum>"))
    let s:netrw_tmpfile= tmpfile " supports netrw#NetSource()
   endif
  endif

"  call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
"  call Dret("s:GetTempfile <".tmpfile.">")
  return tmpfile
endfun

" ---------------------------------------------------------------------
" s:MakeSshCmd: transforms input command using USEPORT HOSTNAME into {{{2
"               a correct command for use with a system() call
fun! s:MakeSshCmd(sshcmd)
"  call Dfunc("s:MakeSshCmd(sshcmd<".a:sshcmd.">) user<".s:user."> machine<".s:machine.">")
  if s:user == ""
   let sshcmd = substitute(a:sshcmd,'\<HOSTNAME\>',s:machine,'')
  else
   let sshcmd = substitute(a:sshcmd,'\<HOSTNAME\>',s:user."@".s:machine,'')
  endif
  if exists("g:netrw_port") && g:netrw_port != ""
   let sshcmd= substitute(sshcmd,"USEPORT",g:netrw_sshport.' '.g:netrw_port,'')
  elseif exists("s:port") && s:port != ""
   let sshcmd= substitute(sshcmd,"USEPORT",g:netrw_sshport.' '.s:port,'')
  else
   let sshcmd= substitute(sshcmd,"USEPORT ",'','')
  endif
"  call Dret("s:MakeSshCmd <".sshcmd.">")
  return sshcmd
endfun

" ---------------------------------------------------------------------
" s:MakeBookmark: enters a bookmark into Netrw's bookmark system   {{{2
fun! s:MakeBookmark(fname)
"  call Dfunc("s:MakeBookmark(fname<".a:fname.">)")

  if !exists("g:netrw_bookmarklist")
   let g:netrw_bookmarklist= []
  endif

  if index(g:netrw_bookmarklist,a:fname) == -1
   " curdir not currently in g:netrw_bookmarklist, so include it
   if isdirectory(s:NetrwFile(a:fname)) && a:fname !~ '/$'
    call add(g:netrw_bookmarklist,a:fname.'/')
   elseif a:fname !~ '/'
    call add(g:netrw_bookmarklist,getcwd()."/".a:fname)
   else
    call add(g:netrw_bookmarklist,a:fname)
   endif
   call sort(g:netrw_bookmarklist)
  endif

"  call Dret("s:MakeBookmark")
endfun

" ---------------------------------------------------------------------
" s:MergeBookmarks: merge current bookmarks with saved bookmarks {{{2
fun! s:MergeBookmarks()
"  call Dfunc("s:MergeBookmarks() : merge current bookmarks into .netrwbook")
  " get bookmarks from .netrwbook file
  let savefile= s:NetrwHome()."/.netrwbook"
  if filereadable(s:NetrwFile(savefile))
"   call Decho("merge bookmarks (active and file)",'~'.expand("<slnum>"))
   NetrwKeepj call s:NetrwBookHistSave()
"   call Decho("bookmark delete savefile<".savefile.">",'~'.expand("<slnum>"))
   NetrwKeepj call delete(savefile)
  endif
"  call Dret("s:MergeBookmarks")
endfun

" ---------------------------------------------------------------------
" s:NetrwBMShow: {{{2
fun! s:NetrwBMShow()
"  call Dfunc("s:NetrwBMShow()")
  redir => bmshowraw
   menu
  redir END
  let bmshowlist = split(bmshowraw,'\n')
  if bmshowlist != []
   let bmshowfuncs= filter(bmshowlist,'v:val =~# "<SNR>\\d\\+_BMShow()"')
   if bmshowfuncs != []
    let bmshowfunc = substitute(bmshowfuncs[0],'^.*:\(call.*BMShow()\).*$','\1','')
    if bmshowfunc =~# '^call.*BMShow()'
     exe "sil! NetrwKeepj ".bmshowfunc
    endif
   endif
  endif
"  call Dret("s:NetrwBMShow : bmshowfunc<".(exists("bmshowfunc")? bmshowfunc : 'n/a').">")
endfun

" ---------------------------------------------------------------------
" s:NetrwCursor: responsible for setting cursorline/cursorcolumn based upon g:netrw_cursor {{{2
fun! s:NetrwCursor()
  if !exists("w:netrw_liststyle")
   let w:netrw_liststyle= g:netrw_liststyle
  endif
"  call Dfunc("s:NetrwCursor() ft<".&ft."> liststyle=".w:netrw_liststyle." g:netrw_cursor=".g:netrw_cursor." s:netrw_usercuc=".s:netrw_usercuc." s:netrw_usercul=".s:netrw_usercul)

  if &ft != "netrw"
   " if the current window isn't a netrw directory listing window, then use user cursorline/column
   " settings.  Affects when netrw is used to read/write a file using scp/ftp/etc.
"   call Decho("case ft!=netrw: use user cul,cuc",'~'.expand("<slnum>"))
   let &l:cursorline   = s:netrw_usercul
   let &l:cursorcolumn = s:netrw_usercuc

  elseif g:netrw_cursor == 4
   " all styles: cursorline, cursorcolumn
"   call Decho("case g:netrw_cursor==4: setl cul cuc",'~'.expand("<slnum>"))
   setl cursorline
   setl cursorcolumn

  elseif g:netrw_cursor == 3
   " thin-long-tree: cursorline, user's cursorcolumn
   " wide          : cursorline, cursorcolumn
   if w:netrw_liststyle == s:WIDELIST
"    call Decho("case g:netrw_cursor==3 and wide: setl cul cuc",'~'.expand("<slnum>"))
    setl cursorline
    setl cursorcolumn
   else
"    call Decho("case g:netrw_cursor==3 and not wide: setl cul (use user's cuc)",'~'.expand("<slnum>"))
    setl cursorline
    let &l:cursorcolumn   = s:netrw_usercuc
   endif

  elseif g:netrw_cursor == 2
   " thin-long-tree: cursorline, user's cursorcolumn
   " wide          : cursorline, user's cursorcolumn
"   call Decho("case g:netrw_cursor==2: setl cuc (use user's cul)",'~'.expand("<slnum>"))
   let &l:cursorcolumn = s:netrw_usercuc
   setl cursorline

  elseif g:netrw_cursor == 1
   " thin-long-tree: user's cursorline, user's cursorcolumn
   " wide          : cursorline,        user's cursorcolumn
   let &l:cursorcolumn = s:netrw_usercuc
   if w:netrw_liststyle == s:WIDELIST
"    call Decho("case g:netrw_cursor==2 and wide: setl cul (use user's cuc)",'~'.expand("<slnum>"))
    setl cursorline
   else
"    call Decho("case g:netrw_cursor==2 and not wide: (use user's cul,cuc)",'~'.expand("<slnum>"))
    let &l:cursorline   = s:netrw_usercul
   endif

  else
   " all styles: user's cursorline, user's cursorcolumn
"   call Decho("default: (use user's cul,cuc)",'~'.expand("<slnum>"))
   let &l:cursorline   = s:netrw_usercul
   let &l:cursorcolumn = s:netrw_usercuc
  endif

"  call Dret("s:NetrwCursor : l:cursorline=".&l:cursorline." l:cursorcolumn=".&l:cursorcolumn)
endfun

" ---------------------------------------------------------------------
" s:RestoreCursorline: restores cursorline/cursorcolumn to original user settings {{{2
fun! s:RestoreCursorline()
"  call Dfunc("s:RestoreCursorline() currently, cul=".&l:cursorline." cuc=".&l:cursorcolumn." win#".winnr()." buf#".bufnr("%"))
  if exists("s:netrw_usercul")
   let &l:cursorline   = s:netrw_usercul
  endif
  if exists("s:netrw_usercuc")
   let &l:cursorcolumn = s:netrw_usercuc
  endif
"  call Dret("s:RestoreCursorline : restored cul=".&l:cursorline." cuc=".&l:cursorcolumn)
endfun

" ---------------------------------------------------------------------
" s:NetrwDelete: Deletes a file. {{{2
"           Uses Steve Hall's idea to insure that Windows paths stay
"           acceptable.  No effect on Unix paths.
"  Examples of use:  let result= s:NetrwDelete(path)
fun! s:NetrwDelete(path)
"  call Dfunc("s:NetrwDelete(path<".a:path.">)")

  let path = netrw#WinPath(a:path)
  if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
   if exists("+shellslash")
    let sskeep= &shellslash
    setl noshellslash
    let result      = delete(path)
    let &shellslash = sskeep
   else
"    call Decho("exe let result= ".a:cmd."('".path."')",'~'.expand("<slnum>"))
    let result= delete(path)
   endif
  else
"   call Decho("let result= delete(".path.")",'~'.expand("<slnum>"))
   let result= delete(path)
  endif
  if result < 0
   NetrwKeepj call netrw#ErrorMsg(s:WARNING,"delete(".path.") failed!",71)
  endif

"  call Dret("s:NetrwDelete ".result)
  return result
endfun

" ---------------------------------------------------------------------
" s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2
fun! s:NetrwEnew(...)
"  call Dfunc("s:NetrwEnew() a:0=".a:0." bufnr($)=".bufnr("$"))
"  call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>"))

  " grab a function-local-variable copy of buffer variables
"  call Decho("make function-local copy of netrw variables",'~'.expand("<slnum>"))
  if exists("b:netrw_bannercnt")      |let netrw_bannercnt       = b:netrw_bannercnt      |endif
  if exists("b:netrw_browser_active") |let netrw_browser_active  = b:netrw_browser_active |endif
  if exists("b:netrw_cpf")            |let netrw_cpf             = b:netrw_cpf            |endif
  if exists("b:netrw_curdir")         |let netrw_curdir          = b:netrw_curdir         |endif
  if exists("b:netrw_explore_bufnr")  |let netrw_explore_bufnr   = b:netrw_explore_bufnr  |endif
  if exists("b:netrw_explore_indx")   |let netrw_explore_indx    = b:netrw_explore_indx   |endif
  if exists("b:netrw_explore_line")   |let netrw_explore_line    = b:netrw_explore_line   |endif
  if exists("b:netrw_explore_list")   |let netrw_explore_list    = b:netrw_explore_list   |endif
  if exists("b:netrw_explore_listlen")|let netrw_explore_listlen = b:netrw_explore_listlen|endif
  if exists("b:netrw_explore_mtchcnt")|let netrw_explore_mtchcnt = b:netrw_explore_mtchcnt|endif
  if exists("b:netrw_fname")          |let netrw_fname           = b:netrw_fname          |endif
  if exists("b:netrw_lastfile")       |let netrw_lastfile        = b:netrw_lastfile       |endif
  if exists("b:netrw_liststyle")      |let netrw_liststyle       = b:netrw_liststyle      |endif
  if exists("b:netrw_method")         |let netrw_method          = b:netrw_method         |endif
  if exists("b:netrw_option")         |let netrw_option          = b:netrw_option         |endif
  if exists("b:netrw_prvdir")         |let netrw_prvdir          = b:netrw_prvdir         |endif

  NetrwKeepj call s:NetrwOptionRestore("w:")
"  call Decho("generate a buffer with NetrwKeepj keepalt enew!",'~'.expand("<slnum>"))
  " when tree listing uses file TreeListing... a new buffer is made.
  " Want the old buffer to be unlisted.
  " COMBAK: this causes a problem, see P43
"  setl nobl
  let netrw_keepdiff= &l:diff
  noswapfile NetrwKeepj keepalt enew!
  let &l:diff= netrw_keepdiff
"  call Decho("bufnr($)=".bufnr("$")."<".bufname(bufnr("$"))."> winnr($)=".winnr("$"),'~'.expand("<slnum>"))
  NetrwKeepj call s:NetrwOptionSave("w:")

  " copy function-local-variables to buffer variable equivalents
"  call Decho("copy function-local variables back to buffer netrw variables",'~'.expand("<slnum>"))
  if exists("netrw_bannercnt")      |let b:netrw_bannercnt       = netrw_bannercnt      |endif
  if exists("netrw_browser_active") |let b:netrw_browser_active  = netrw_browser_active |endif
  if exists("netrw_cpf")            |let b:netrw_cpf             = netrw_cpf            |endif
  if exists("netrw_curdir")         |let b:netrw_curdir          = netrw_curdir         |endif
  if exists("netrw_explore_bufnr")  |let b:netrw_explore_bufnr   = netrw_explore_bufnr  |endif
  if exists("netrw_explore_indx")   |let b:netrw_explore_indx    = netrw_explore_indx   |endif
  if exists("netrw_explore_line")   |let b:netrw_explore_line    = netrw_explore_line   |endif
  if exists("netrw_explore_list")   |let b:netrw_explore_list    = netrw_explore_list   |endif
  if exists("netrw_explore_listlen")|let b:netrw_explore_listlen = netrw_explore_listlen|endif
  if exists("netrw_explore_mtchcnt")|let b:netrw_explore_mtchcnt = netrw_explore_mtchcnt|endif
  if exists("netrw_fname")          |let b:netrw_fname           = netrw_fname          |endif
  if exists("netrw_lastfile")       |let b:netrw_lastfile        = netrw_lastfile       |endif
  if exists("netrw_liststyle")      |let b:netrw_liststyle       = netrw_liststyle      |endif
  if exists("netrw_method")         |let b:netrw_method          = netrw_method         |endif
  if exists("netrw_option")         |let b:netrw_option          = netrw_option         |endif
  if exists("netrw_prvdir")         |let b:netrw_prvdir          = netrw_prvdir         |endif

  if a:0 > 0
   let b:netrw_curdir= a:1
   if b:netrw_curdir =~ '/$'
    if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
     setl nobl
     file NetrwTreeListing
     setl nobl bt=nowrite bh=hide
     nno <silent> <buffer> [	:sil call <SID>TreeListMove('[')<cr>
     nno <silent> <buffer> ]	:sil call <SID>TreeListMove(']')<cr>
    else
     exe "sil! keepalt file ".fnameescape(b:netrw_curdir)
    endif
   endif
  endif

"  call Dret("s:NetrwEnew : buf#".bufnr("%")."<".bufname("%")."> expand(%)<".expand("%")."> expand(#)<".expand("#")."> bh=".&bh." win#".winnr()." winnr($)#".winnr("$"))
endfun

" ---------------------------------------------------------------------
" s:NetrwExe: executes a string using "!" {{{2
fun! s:NetrwExe(cmd)
"  call Dfunc("s:NetrwExe(a:cmd)")
  if has("win32") && &shell !~? 'cmd' && !g:netrw_cygwin
    let savedShell=[&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash]
    set shell& shellcmdflag& shellxquote& shellxescape&
    set shellquote& shellpipe& shellredir& shellslash&
    exe a:cmd
    let [&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash] = savedShell
  else
   exe a:cmd
  endif
"  call Dret("s:NetrwExe")
endfun

" ---------------------------------------------------------------------
" s:NetrwInsureWinVars: insure that a netrw buffer has its w: variables in spite of a wincmd v or s {{{2
fun! s:NetrwInsureWinVars()
  if !exists("w:netrw_liststyle")
"   call Dfunc("s:NetrwInsureWinVars() win#".winnr())
   let curbuf = bufnr("%")
   let curwin = winnr()
   let iwin   = 1
   while iwin <= winnr("$")
    exe iwin."wincmd w"
    if winnr() != curwin && bufnr("%") == curbuf && exists("w:netrw_liststyle")
     " looks like ctrl-w_s or ctrl-w_v was used to split a netrw buffer
     let winvars= w:
     break
    endif
    let iwin= iwin + 1
   endwhile
   exe "keepalt ".curwin."wincmd w"
   if exists("winvars")
"    call Decho("copying w#".iwin." window variables to w#".curwin,'~'.expand("<slnum>"))
    for k in keys(winvars)
     let w:{k}= winvars[k]
    endfor
   endif
"   call Dret("s:NetrwInsureWinVars win#".winnr())
  endif
endfun

" ---------------------------------------------------------------------
" s:NetrwLcd: handles changing the (local) directory {{{2
fun! s:NetrwLcd(newdir)
"  call Dfunc("s:NetrwLcd(newdir<".a:newdir.">)")

  try
   exe 'NetrwKeepj sil lcd '.fnameescape(a:newdir)
  catch /^Vim\%((\a\+)\)\=:E344/
     " Vim's lcd fails with E344 when attempting to go above the 'root' of a Windows share.
     " Therefore, detect if a Windows share is present, and if E344 occurs, just settle at
     " 'root' (ie. '\').  The share name may start with either backslashes ('\\Foo') or
     " forward slashes ('//Foo'), depending on whether backslashes have been converted to
     " forward slashes by earlier code; so check for both.
     if (has("win32") || has("win95") || has("win64") || has("win16")) && !g:netrw_cygwin
       if a:newdir =~ '^\\\\\w\+' || a:newdir =~ '^//\w\+'
         let dirname = '\'
	 exe 'NetrwKeepj sil lcd '.fnameescape(dirname)
       endif
     endif
  catch /^Vim\%((\a\+)\)\=:E472/
   call netrw#ErrorMsg(s:ERROR,"unable to change directory to <".a:newdir."> (permissions?)",61)
   if exists("w:netrw_prvdir")
    let a:newdir= w:netrw_prvdir
   else
    call s:NetrwOptionRestore("w:")
"    call Decho("setl noma nomod nowrap",'~'.expand("<slnum>"))
    exe "setl ".g:netrw_bufsettings
"    call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
    let a:newdir= dirname
"    call Dret("s:NetrwBrowse : reusing buffer#".(exists("bufnum")? bufnum : 'N/A')."<".dirname."> getcwd<".getcwd().">")
    return
   endif
  endtry

"  call Dret("s:NetrwLcd")
endfun

" ------------------------------------------------------------------------
" s:NetrwSaveWordPosn: used to keep cursor on same word after refresh, {{{2
" changed sorting, etc.  Also see s:NetrwRestoreWordPosn().
fun! s:NetrwSaveWordPosn()
"  call Dfunc("NetrwSaveWordPosn()")
  let s:netrw_saveword= '^'.fnameescape(getline('.')).'$'
"  call Dret("NetrwSaveWordPosn : saveword<".s:netrw_saveword.">")
endfun

" ---------------------------------------------------------------------
" s:NetrwHumanReadable: takes a number and makes it "human readable" {{{2
"                       1000 -> 1K, 1000000 -> 1M, 1000000000 -> 1G
fun! s:NetrwHumanReadable(sz)
"  call Dfunc("s:NetrwHumanReadable(sz=".a:sz.") type=".type(a:sz)." style=".g:netrw_sizestyle )

  if g:netrw_sizestyle == 'h'
   if a:sz >= 1000000000 
    let sz = printf("%.1f",a:sz/1000000000.0)."g"
   elseif a:sz >= 10000000
    let sz = printf("%d",a:sz/1000000)."m"
   elseif a:sz >= 1000000
    let sz = printf("%.1f",a:sz/1000000.0)."m"
   elseif a:sz >= 10000
    let sz = printf("%d",a:sz/1000)."k"
   elseif a:sz >= 1000
    let sz = printf("%.1f",a:sz/1000.0)."k"
   else
    let sz= a:sz
   endif

  elseif g:netrw_sizestyle == 'H'
   if a:sz >= 1073741824
    let sz = printf("%.1f",a:sz/1073741824.0)."G"
   elseif a:sz >= 10485760
    let sz = printf("%d",a:sz/1048576)."M"
   elseif a:sz >= 1048576
    let sz = printf("%.1f",a:sz/1048576.0)."M"
   elseif a:sz >= 10240
    let sz = printf("%d",a:sz/1024)."K"
   elseif a:sz >= 1024
    let sz = printf("%.1f",a:sz/1024.0)."K"
   else
    let sz= a:sz
   endif

  else
   let sz= a:sz
  endif

"  call Dret("s:NetrwHumanReadable ".sz)
  return sz
endfun

" ---------------------------------------------------------------------
" s:NetrwRestoreWordPosn: used to keep cursor on same word after refresh, {{{2
"  changed sorting, etc.  Also see s:NetrwSaveWordPosn().
fun! s:NetrwRestoreWordPosn()
"  call Dfunc("NetrwRestoreWordPosn()")
  sil! call search(s:netrw_saveword,'w')
"  call Dret("NetrwRestoreWordPosn")
endfun

" ---------------------------------------------------------------------
" s:RestoreBufVars: {{{2
fun! s:RestoreBufVars()
"  call Dfunc("s:RestoreBufVars()")

  if exists("s:netrw_curdir")        |let b:netrw_curdir         = s:netrw_curdir        |endif
  if exists("s:netrw_lastfile")      |let b:netrw_lastfile       = s:netrw_lastfile      |endif
  if exists("s:netrw_method")        |let b:netrw_method         = s:netrw_method        |endif
  if exists("s:netrw_fname")         |let b:netrw_fname          = s:netrw_fname         |endif
  if exists("s:netrw_machine")       |let b:netrw_machine        = s:netrw_machine       |endif
  if exists("s:netrw_browser_active")|let b:netrw_browser_active = s:netrw_browser_active|endif

"  call Dret("s:RestoreBufVars")
endfun

" ---------------------------------------------------------------------
" s:RemotePathAnalysis: {{{2
fun! s:RemotePathAnalysis(dirname)
"  call Dfunc("s:RemotePathAnalysis(a:dirname<".a:dirname.">)")

  "                method   ://    user  @      machine      :port            /path
  let dirpat  = '^\(\w\{-}\)://\(\(\w\+\)@\)\=\([^/:#]\+\)\%([:#]\(\d\+\)\)\=/\(.*\)$'
  let s:method  = substitute(a:dirname,dirpat,'\1','')
  let s:user    = substitute(a:dirname,dirpat,'\3','')
  let s:machine = substitute(a:dirname,dirpat,'\4','')
  let s:port    = substitute(a:dirname,dirpat,'\5','')
  let s:path    = substitute(a:dirname,dirpat,'\6','')
  let s:fname   = substitute(s:path,'^.*/\ze.','','')
  if s:machine =~ '@'
   let dirpat    = '^\(.*\)@\(.\{-}\)$'
   let s:user    = s:user.'@'.substitute(s:machine,dirpat,'\1','')
   let s:machine = substitute(s:machine,dirpat,'\2','')
  endif

"  call Decho("set up s:method <".s:method .">",'~'.expand("<slnum>"))
"  call Decho("set up s:user   <".s:user   .">",'~'.expand("<slnum>"))
"  call Decho("set up s:machine<".s:machine.">",'~'.expand("<slnum>"))
"  call Decho("set up s:port   <".s:port.">",'~'.expand("<slnum>"))
"  call Decho("set up s:path   <".s:path   .">",'~'.expand("<slnum>"))
"  call Decho("set up s:fname  <".s:fname  .">",'~'.expand("<slnum>"))

"  call Dret("s:RemotePathAnalysis")
endfun

" ---------------------------------------------------------------------
" s:RemoteSystem: runs a command on a remote host using ssh {{{2
"                 Returns status
" Runs system() on
"    [cd REMOTEDIRPATH;] a:cmd
" Note that it doesn't do s:ShellEscape(a:cmd)!
fun! s:RemoteSystem(cmd)
"  call Dfunc("s:RemoteSystem(cmd<".a:cmd.">)")
  if !executable(g:netrw_ssh_cmd)
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"g:netrw_ssh_cmd<".g:netrw_ssh_cmd."> is not executable!",52)
  elseif !exists("b:netrw_curdir")
   NetrwKeepj call netrw#ErrorMsg(s:ERROR,"for some reason b:netrw_curdir doesn't exist!",53)
  else
   let cmd      = s:MakeSshCmd(g:netrw_ssh_cmd." USEPORT HOSTNAME")
   let remotedir= substitute(b:netrw_curdir,'^.*//[^/]\+/\(.*\)$','\1','')
   if remotedir != ""
    let cmd= cmd.' cd '.s:ShellEscape(remotedir).";"
   else
    let cmd= cmd.' '
   endif
   let cmd= cmd.a:cmd
"   call Decho("call system(".cmd.")",'~'.expand("<slnum>"))
   let ret= system(cmd)
  endif
"  call Dret("s:RemoteSystem ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" s:RestoreWinVars: (used by Explore() and NetrwSplit()) {{{2
fun! s:RestoreWinVars()
"  call Dfunc("s:RestoreWinVars()")
  if exists("s:bannercnt")      |let w:netrw_bannercnt       = s:bannercnt      |unlet s:bannercnt      |endif
  if exists("s:col")            |let w:netrw_col             = s:col            |unlet s:col            |endif
  if exists("s:curdir")         |let w:netrw_curdir          = s:curdir         |unlet s:curdir         |endif
  if exists("s:explore_bufnr")  |let w:netrw_explore_bufnr   = s:explore_bufnr  |unlet s:explore_bufnr  |endif
  if exists("s:explore_indx")   |let w:netrw_explore_indx    = s:explore_indx   |unlet s:explore_indx   |endif
  if exists("s:explore_line")   |let w:netrw_explore_line    = s:explore_line   |unlet s:explore_line   |endif
  if exists("s:explore_listlen")|let w:netrw_explore_listlen = s:explore_listlen|unlet s:explore_listlen|endif
  if exists("s:explore_list")   |let w:netrw_explore_list    = s:explore_list   |unlet s:explore_list   |endif
  if exists("s:explore_mtchcnt")|let w:netrw_explore_mtchcnt = s:explore_mtchcnt|unlet s:explore_mtchcnt|endif
  if exists("s:fpl")            |let w:netrw_fpl             = s:fpl            |unlet s:fpl            |endif
  if exists("s:hline")          |let w:netrw_hline           = s:hline          |unlet s:hline          |endif
  if exists("s:line")           |let w:netrw_line            = s:line           |unlet s:line           |endif
  if exists("s:liststyle")      |let w:netrw_liststyle       = s:liststyle      |unlet s:liststyle      |endif
  if exists("s:method")         |let w:netrw_method          = s:method         |unlet s:method         |endif
  if exists("s:prvdir")         |let w:netrw_prvdir          = s:prvdir         |unlet s:prvdir         |endif
  if exists("s:treedict")       |let w:netrw_treedict        = s:treedict       |unlet s:treedict       |endif
  if exists("s:treetop")        |let w:netrw_treetop         = s:treetop        |unlet s:treetop        |endif
  if exists("s:winnr")          |let w:netrw_winnr           = s:winnr          |unlet s:winnr          |endif
"  call Dret("s:RestoreWinVars")
endfun

" ---------------------------------------------------------------------
" s:Rexplore: implements returning from a buffer to a netrw directory {{{2
"
"             s:SetRexDir() sets up <2-leftmouse> maps (if g:netrw_retmap
"             is true) and a command, :Rexplore, which call this function.
"
"             s:netrw_nbcd is set up by s:NetrwBrowseChgDir()
"
"             s:rexposn_BUFNR used to save/restore cursor position
fun! s:NetrwRexplore(islocal,dirname)
  if exists("s:netrwdrag")
   return
  endif
"  call Dfunc("s:NetrwRexplore() w:netrw_rexlocal=".w:netrw_rexlocal." w:netrw_rexdir<".w:netrw_rexdir."> win#".winnr())
"  call Decho("currently in bufname<".bufname("%").">",'~'.expand("<slnum>"))
"  call Decho("ft=".&ft." win#".winnr()." w:netrw_rexfile<".(exists("w:netrw_rexfile")? w:netrw_rexfile : 'n/a').">",'~'.expand("<slnum>"))

  if &ft == "netrw" && exists("w:netrw_rexfile") && w:netrw_rexfile != ""
   " a :Rex while in a netrw buffer means: edit the file in w:netrw_rexfile
"   call Decho("in netrw buffer, will edit file<".w:netrw_rexfile.">",'~'.expand("<slnum>"))
   exe "NetrwKeepj e ".w:netrw_rexfile
   unlet w:netrw_rexfile
"   call Dret("s:NetrwRexplore returning from netrw to buf#".bufnr("%")."<".bufname("%").">  (ft=".&ft.")")
   return
"  else " Decho
"   call Decho("treating as not-netrw-buffer: ft=".&ft.((&ft == "netrw")? " == netrw" : "!= netrw"),'~'.expand("<slnum>"))
"   call Decho("treating as not-netrw-buffer: w:netrw_rexfile<".((exists("w:netrw_rexfile"))? w:netrw_rexfile : 'n/a').">",'~'.expand("<slnum>"))
  endif

  " ---------------------------
  " :Rex issued while in a file
  " ---------------------------

  " record current file so :Rex can return to it from netrw
  let w:netrw_rexfile= expand("%")
"  call Decho("set w:netrw_rexfile<".w:netrw_rexfile.">  (win#".winnr().")",'~'.expand("<slnum>"))

  if !exists("w:netrw_rexlocal")
"   call Dret("s:NetrwRexplore w:netrw_rexlocal doesn't exist (".&ft." win#".winnr().")")
   return
  endif
"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
  if w:netrw_rexlocal
   NetrwKeepj call netrw#LocalBrowseCheck(w:netrw_rexdir)
  else
   NetrwKeepj call s:NetrwBrowse(0,w:netrw_rexdir)
  endif
  if exists("s:initbeval")
   setl beval
  endif
  if exists("s:rexposn_".bufnr("%"))
"   call Decho("restore posn, then unlet s:rexposn_".bufnr('%')."<".bufname("%").">",'~'.expand("<slnum>"))
   " restore position in directory listing
"   call Decho("restoring posn to s:rexposn_".bufnr('%')."<".string(s:rexposn_{bufnr('%')}).">",'~'.expand("<slnum>"))
   NetrwKeepj call winrestview(s:rexposn_{bufnr('%')})
   if exists("s:rexposn_".bufnr('%'))
    unlet s:rexposn_{bufnr('%')}
   endif
  else
"   call Decho("s:rexposn_".bufnr('%')."<".bufname("%")."> doesn't exist",'~'.expand("<slnum>"))
  endif

  if exists("s:explore_match")
   exe "2match netrwMarkFile /".s:explore_match."/"
  endif

"  call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
"  call Dret("s:NetrwRexplore : ft=".&ft)
endfun

" ---------------------------------------------------------------------
" s:SaveBufVars: save selected b: variables to s: variables {{{2
"                use s:RestoreBufVars() to restore b: variables from s: variables
fun! s:SaveBufVars()
"  call Dfunc("s:SaveBufVars() buf#".bufnr("%"))

  if exists("b:netrw_curdir")        |let s:netrw_curdir         = b:netrw_curdir        |endif
  if exists("b:netrw_lastfile")      |let s:netrw_lastfile       = b:netrw_lastfile      |endif
  if exists("b:netrw_method")        |let s:netrw_method         = b:netrw_method        |endif
  if exists("b:netrw_fname")         |let s:netrw_fname          = b:netrw_fname         |endif
  if exists("b:netrw_machine")       |let s:netrw_machine        = b:netrw_machine       |endif
  if exists("b:netrw_browser_active")|let s:netrw_browser_active = b:netrw_browser_active|endif

"  call Dret("s:SaveBufVars")
endfun

" ---------------------------------------------------------------------
" s:SavePosn: saves position associated with current buffer into a dictionary {{{2
fun! s:SavePosn(posndict)
"  call Dfunc("s:SavePosn(posndict) curbuf#".bufnr("%")."<".bufname("%").">")

  let a:posndict[bufnr("%")]= winsaveview()
"  call Decho("saving posn: posndict[".bufnr("%")."]=".string(winsaveview()),'~'.expand("<slnum>"))

"  call Dret("s:SavePosn posndict")
  return a:posndict
endfun

" ---------------------------------------------------------------------
" s:RestorePosn: restores position associated with current buffer using dictionary {{{2
fun! s:RestorePosn(posndict)
"  call Dfunc("s:RestorePosn(posndict) curbuf#".bufnr("%")."<".bufname("%").">")
  if has_key(a:posndict,bufnr("%"))
   call winrestview(a:posndict[bufnr("%")])
"   call Decho("restoring posn: posndict[".bufnr("%")."]=".string(a:posndict[bufnr("%")]),'~'.expand("<slnum>"))
  endif
"  call Dret("s:RestorePosn")
endfun

" ---------------------------------------------------------------------
" s:SaveWinVars: (used by Explore() and NetrwSplit()) {{{2
fun! s:SaveWinVars()
"  call Dfunc("s:SaveWinVars() win#".winnr())
  if exists("w:netrw_bannercnt")      |let s:bannercnt       = w:netrw_bannercnt      |endif
  if exists("w:netrw_col")            |let s:col             = w:netrw_col            |endif
  if exists("w:netrw_curdir")         |let s:curdir          = w:netrw_curdir         |endif
  if exists("w:netrw_explore_bufnr")  |let s:explore_bufnr   = w:netrw_explore_bufnr  |endif
  if exists("w:netrw_explore_indx")   |let s:explore_indx    = w:netrw_explore_indx   |endif
  if exists("w:netrw_explore_line")   |let s:explore_line    = w:netrw_explore_line   |endif
  if exists("w:netrw_explore_listlen")|let s:explore_listlen = w:netrw_explore_listlen|endif
  if exists("w:netrw_explore_list")   |let s:explore_list    = w:netrw_explore_list   |endif
  if exists("w:netrw_explore_mtchcnt")|let s:explore_mtchcnt = w:netrw_explore_mtchcnt|endif
  if exists("w:netrw_fpl")            |let s:fpl             = w:netrw_fpl            |endif
  if exists("w:netrw_hline")          |let s:hline           = w:netrw_hline          |endif
  if exists("w:netrw_line")           |let s:line            = w:netrw_line           |endif
  if exists("w:netrw_liststyle")      |let s:liststyle       = w:netrw_liststyle      |endif
  if exists("w:netrw_method")         |let s:method          = w:netrw_method         |endif
  if exists("w:netrw_prvdir")         |let s:prvdir          = w:netrw_prvdir         |endif
  if exists("w:netrw_treedict")       |let s:treedict        = w:netrw_treedict       |endif
  if exists("w:netrw_treetop")        |let s:treetop         = w:netrw_treetop        |endif
  if exists("w:netrw_winnr")          |let s:winnr           = w:netrw_winnr          |endif
"  call Dret("s:SaveWinVars")
endfun

" ---------------------------------------------------------------------
" s:SetBufWinVars: (used by NetrwBrowse() and LocalBrowseCheck()) {{{2
"   To allow separate windows to have their own activities, such as
"   Explore **/pattern, several variables have been made window-oriented.
"   However, when the user splits a browser window (ex: ctrl-w s), these
"   variables are not inherited by the new window.  SetBufWinVars() and
"   UseBufWinVars() get around that.
fun! s:SetBufWinVars()
"  call Dfunc("s:SetBufWinVars() win#".winnr())
  if exists("w:netrw_liststyle")      |let b:netrw_liststyle      = w:netrw_liststyle      |endif
  if exists("w:netrw_bannercnt")      |let b:netrw_bannercnt      = w:netrw_bannercnt      |endif
  if exists("w:netrw_method")         |let b:netrw_method         = w:netrw_method         |endif
  if exists("w:netrw_prvdir")         |let b:netrw_prvdir         = w:netrw_prvdir         |endif
  if exists("w:netrw_explore_indx")   |let b:netrw_explore_indx   = w:netrw_explore_indx   |endif
  if exists("w:netrw_explore_listlen")|let b:netrw_explore_listlen= w:netrw_explore_listlen|endif
  if exists("w:netrw_explore_mtchcnt")|let b:netrw_explore_mtchcnt= w:netrw_explore_mtchcnt|endif
  if exists("w:netrw_explore_bufnr")  |let b:netrw_explore_bufnr  = w:netrw_explore_bufnr  |endif
  if exists("w:netrw_explore_line")   |let b:netrw_explore_line   = w:netrw_explore_line   |endif
  if exists("w:netrw_explore_list")   |let b:netrw_explore_list   = w:netrw_explore_list   |endif
"  call Dret("s:SetBufWinVars")
endfun

" ---------------------------------------------------------------------
" s:SetRexDir: set directory for :Rexplore {{{2
fun! s:SetRexDir(islocal,dirname)
"  call Dfunc("s:SetRexDir(islocal=".a:islocal." dirname<".a:dirname.">) win#".winnr())
  let w:netrw_rexdir         = a:dirname
  let w:netrw_rexlocal       = a:islocal
  let s:rexposn_{bufnr("%")} = winsaveview()
"  call Decho("setting w:netrw_rexdir  =".w:netrw_rexdir,'~'.expand("<slnum>"))
"  call Decho("setting w:netrw_rexlocal=".w:netrw_rexlocal,'~'.expand("<slnum>"))
"  call Decho("saving posn to s:rexposn_".bufnr("%")."<".string(s:rexposn_{bufnr("%")}).">",'~'.expand("<slnum>"))
"  call Decho("setting s:rexposn_".bufnr("%")."<".bufname("%")."> to ".string(winsaveview()),'~'.expand("<slnum>"))
"  call Dret("s:SetRexDir : win#".winnr()." ".(a:islocal? "local" : "remote")." dir: ".a:dirname)
endfun

" ---------------------------------------------------------------------
" s:ShowLink: used to modify thin and tree listings to show links {{{2
fun! s:ShowLink()
" "  call Dfunc("s:ShowLink()")
" "  call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "doesn't exist").">",'~'.expand("<slnum>"))
" "  call Decho(printf("line#%4d: %s",line("."),getline(".")),'~'.expand("<slnum>"))
  if exists("b:netrw_curdir")
   norm! $?\a
   let fname   = b:netrw_curdir.'/'.s:NetrwGetWord()
   let resname = resolve(fname)
" "   call Decho("fname         <".fname.">",'~'.expand("<slnum>"))
" "   call Decho("resname       <".resname.">",'~'.expand("<slnum>"))
" "   call Decho("b:netrw_curdir<".b:netrw_curdir.">",'~'.expand("<slnum>"))
   if resname =~ '^\M'.b:netrw_curdir.'/'
    let dirlen  = strlen(b:netrw_curdir)
    let resname = strpart(resname,dirlen+1)
" "    call Decho("resname<".resname.">  (b:netrw_curdir elided)",'~'.expand("<slnum>"))
   endif
   let modline = getline(".")."\t --> ".resname
" "   call Decho("fname  <".fname.">",'~'.expand("<slnum>"))
" "   call Decho("modline<".modline.">",'~'.expand("<slnum>"))
   setl noro ma
   call setline(".",modline)
   setl ro noma nomod
  endif
" "  call Dret("s:ShowLink".((exists("fname")? ' : '.fname : 'n/a')))
endfun

" ---------------------------------------------------------------------
" s:ShowStyle: {{{2
fun! s:ShowStyle()
  if !exists("w:netrw_liststyle")
   let liststyle= g:netrw_liststyle
  else
   let liststyle= w:netrw_liststyle
  endif
  if     liststyle == s:THINLIST
   return s:THINLIST.":thin"
  elseif liststyle == s:LONGLIST
   return s:LONGLIST.":long"
  elseif liststyle == s:WIDELIST
   return s:WIDELIST.":wide"
  elseif liststyle == s:TREELIST
   return s:TREELIST.":tree"
  else
   return 'n/a'
  endif
endfun

" ---------------------------------------------------------------------
" s:Strlen: this function returns the length of a string, even if its using multi-byte characters. {{{2
"           Solution from Nicolai Weibull, vim docs (:help strlen()),
"           Tony Mechelynck, and my own invention.
fun! s:Strlen(x)
"  "" call Dfunc("s:Strlen(x<".a:x."> g:Align_xstrlen=".g:Align_xstrlen.")")

  if v:version >= 703 && exists("*strdisplaywidth")
   let ret= strdisplaywidth(a:x)

  elseif type(g:Align_xstrlen) == 1
   " allow user to specify a function to compute the string length  (ie. let g:Align_xstrlen="mystrlenfunc")
   exe "let ret= ".g:Align_xstrlen."('".substitute(a:x,"'","''","g")."')"

  elseif g:Align_xstrlen == 1
   " number of codepoints (Latin a + combining circumflex is two codepoints)
   " (comment from TM, solution from NW)
   let ret= strlen(substitute(a:x,'.','c','g'))

  elseif g:Align_xstrlen == 2
   " number of spacing codepoints (Latin a + combining circumflex is one spacing
   " codepoint; a hard tab is one; wide and narrow CJK are one each; etc.)
   " (comment from TM, solution from TM)
   let ret=strlen(substitute(a:x, '.\Z', 'x', 'g'))

  elseif g:Align_xstrlen == 3
   " virtual length (counting, for instance, tabs as anything between 1 and
   " 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately
   " preceded by lam, one otherwise, etc.)
   " (comment from TM, solution from me)
   let modkeep= &l:mod
   exe "norm! o\<esc>"
   call setline(line("."),a:x)
   let ret= virtcol("$") - 1
   d
   NetrwKeepj norm! k
   let &l:mod= modkeep

  else
   " at least give a decent default
    let ret= strlen(a:x)
  endif
"  "" call Dret("s:Strlen ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" s:ShellEscape: shellescape(), or special windows handling {{{2
fun! s:ShellEscape(s, ...)
  if (has('win32') || has('win64')) && $SHELL == '' && &shellslash
    return printf('"%s"', substitute(a:s, '"', '""', 'g'))
  endif 
  let f = a:0 > 0 ? a:1 : 0
  return shellescape(a:s, f)
endfun

" ---------------------------------------------------------------------
" s:TreeListMove: supports [[, ]], [], and ][ in tree mode {{{2
fun! s:TreeListMove(dir)
"  call Dfunc("s:TreeListMove(dir<".a:dir.">)")
  let curline      = getline('.')
  let prvline      = (line(".") > 1)?         getline(line(".")-1) : ''
  let nxtline      = (line(".") < line("$"))? getline(line(".")+1) : ''
  let curindent    = substitute(getline('.'),'^\(\%('.s:treedepthstring.'\)*\)[^'.s:treedepthstring.'].\{-}$','\1','e')
  let indentm1     = substitute(curindent,'^'.s:treedepthstring,'','')
  let treedepthchr = substitute(s:treedepthstring,' ','','g')
  let stopline     = exists("w:netrw_bannercnt")? w:netrw_bannercnt : 1
"  call Decho("prvline  <".prvline."> #".(line(".")-1), '~'.expand("<slnum>"))
"  call Decho("curline  <".curline."> #".line(".")    , '~'.expand("<slnum>"))
"  call Decho("nxtline  <".nxtline."> #".(line(".")+1), '~'.expand("<slnum>"))
"  call Decho("curindent<".curindent.">"              , '~'.expand("<slnum>"))
"  call Decho("indentm1 <".indentm1.">"               , '~'.expand("<slnum>"))
  "  COMBAK : need to handle when on a directory
  "  COMBAK : need to handle ]] and ][.  In general, needs work!!!
  if curline !~ '/$'
   if     a:dir == '[[' && prvline != ''
    NetrwKeepj norm! 0
    let nl = search('^'.indentm1.'\%('.s:treedepthstring.'\)\@!','bWe',stopline) " search backwards
"    call Decho("regfile srch back: ".nl,'~'.expand("<slnum>"))
   elseif a:dir == '[]' && nxtline != ''
    NetrwKeepj norm! 0
"    call Decho('srchpat<'.'^\%('.curindent.'\)\@!'.'>','~'.expand("<slnum>"))
    let nl = search('^\%('.curindent.'\)\@!','We') " search forwards
    if nl != 0
     NetrwKeepj norm! k
    else
     NetrwKeepj norm! G
    endif
"    call Decho("regfile srch fwd: ".nl,'~'.expand("<slnum>"))
   endif
  endif

"  call Dret("s:TreeListMove")
endfun

" ---------------------------------------------------------------------
" s:UpdateBuffersMenu: does emenu Buffers.Refresh (but due to locale, the menu item may not be called that) {{{2
"                      The Buffers.Refresh menu calls s:BMShow(); unfortunately, that means that that function
"                      can't be called except via emenu.  But due to locale, that menu line may not be called
"                      Buffers.Refresh; hence, s:NetrwBMShow() utilizes a "cheat" to call that function anyway.
fun! s:UpdateBuffersMenu()
"  call Dfunc("s:UpdateBuffersMenu()")
  if has("gui") && has("menu") && has("gui_running") && &go =~# 'm' && g:netrw_menu
   try
    sil emenu Buffers.Refresh\ menu
   catch /^Vim\%((\a\+)\)\=:E/
    let v:errmsg= ""
    sil NetrwKeepj call s:NetrwBMShow()
   endtry
  endif
"  call Dret("s:UpdateBuffersMenu")
endfun

" ---------------------------------------------------------------------
" s:UseBufWinVars: (used by NetrwBrowse() and LocalBrowseCheck() {{{2
"              Matching function to s:SetBufWinVars()
fun! s:UseBufWinVars()
"  call Dfunc("s:UseBufWinVars()")
  if exists("b:netrw_liststyle")       && !exists("w:netrw_liststyle")      |let w:netrw_liststyle       = b:netrw_liststyle      |endif
  if exists("b:netrw_bannercnt")       && !exists("w:netrw_bannercnt")      |let w:netrw_bannercnt       = b:netrw_bannercnt      |endif
  if exists("b:netrw_method")          && !exists("w:netrw_method")         |let w:netrw_method          = b:netrw_method         |endif
  if exists("b:netrw_prvdir")          && !exists("w:netrw_prvdir")         |let w:netrw_prvdir          = b:netrw_prvdir         |endif
  if exists("b:netrw_explore_indx")    && !exists("w:netrw_explore_indx")   |let w:netrw_explore_indx    = b:netrw_explore_indx   |endif
  if exists("b:netrw_explore_listlen") && !exists("w:netrw_explore_listlen")|let w:netrw_explore_listlen = b:netrw_explore_listlen|endif
  if exists("b:netrw_explore_mtchcnt") && !exists("w:netrw_explore_mtchcnt")|let w:netrw_explore_mtchcnt = b:netrw_explore_mtchcnt|endif
  if exists("b:netrw_explore_bufnr")   && !exists("w:netrw_explore_bufnr")  |let w:netrw_explore_bufnr   = b:netrw_explore_bufnr  |endif
  if exists("b:netrw_explore_line")    && !exists("w:netrw_explore_line")   |let w:netrw_explore_line    = b:netrw_explore_line   |endif
  if exists("b:netrw_explore_list")    && !exists("w:netrw_explore_list")   |let w:netrw_explore_list    = b:netrw_explore_list   |endif
"  call Dret("s:UseBufWinVars")
endfun

" ---------------------------------------------------------------------
" s:UserMaps: supports user-defined UserMaps {{{2
"               * calls a user-supplied funcref(islocal,curdir)
"               * interprets result
"             See netrw#UserMaps()
fun! s:UserMaps(islocal,funcname)
"  call Dfunc("s:UserMaps(islocal=".a:islocal.",funcname<".a:funcname.">)")

  if !exists("b:netrw_curdir")
   let b:netrw_curdir= getcwd()
  endif
  let Funcref = function(a:funcname)
  let result  = Funcref(a:islocal)

  if     type(result) == 1
   " if result from user's funcref is a string...
"   call Decho("result string from user funcref<".result.">",'~'.expand("<slnum>"))
   if result == "refresh"
"    call Decho("refreshing display",'~'.expand("<slnum>"))
    call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
   elseif result != ""
"    call Decho("executing result<".result.">",'~'.expand("<slnum>"))
    exe result
   endif

  elseif type(result) == 3
   " if result from user's funcref is a List...
"   call Decho("result List from user funcref<".string(result).">",'~'.expand("<slnum>"))
   for action in result
    if action == "refresh"
"     call Decho("refreshing display",'~'.expand("<slnum>"))
     call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
    elseif action != ""
"     call Decho("executing action<".action.">",'~'.expand("<slnum>"))
     exe action
    endif
   endfor
  endif

"  call Dret("s:UserMaps")
endfun

" ---------------------------------------------------------------------
" Settings Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo

" ------------------------------------------------------------------------
" Modelines: {{{1
" vim:ts=8 fdm=marker
PK�j�Z/~W'X'Xvim80/autoload/ada.vimnu�[���"------------------------------------------------------------------------------
"  Description: Perform Ada specific completion & tagging.
"     Language: Ada (2005)
"	   $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
"   Maintainer: Mathias Brousset <mathiasb17@gmail.com>
"		Martin Krischik <krischik@users.sourceforge.net>
"		Taylor Venable <taylor@metasyntax.net>
"		Neil Bird <neil@fnxweb.com>
"		Ned Okie <nokie@radford.edu>
"      $Author: krischik $
"	 $Date: 2017-01-31 20:20:05 +0200 (Mon, 01 Jan 2017) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
"      History: 24.05.2006 MK Unified Headers
"		26.05.2006 MK ' should not be in iskeyword.
"		16.07.2006 MK Ada-Mode as vim-ball
"		02.10.2006 MK Better folding.
"		15.10.2006 MK Bram's suggestion for runtime integration
"		05.11.2006 MK Bram suggested not to use include protection for
"			      autoload
"		05.11.2006 MK Bram suggested to save on spaces
"		08.07.2007 TV fix mapleader problems.
"	        09.05.2007 MK Session just won't work no matter how much
"			      tweaking is done
"		19.09.2007 NO still some mapleader problems
"		31.01.2017 MB fix more mapleader problems
"    Help Page: ft-ada-functions
"------------------------------------------------------------------------------

if version < 700
   finish
endif 
let s:keepcpo= &cpo
set cpo&vim

" Section: Constants {{{1
"
let g:ada#DotWordRegex	   = '\a\w*\(\_s*\.\_s*\a\w*\)*'
let g:ada#WordRegex	   = '\a\w*'
let g:ada#Comment	   = "\\v^(\"[^\"]*\"|'.'|[^\"']){-}\\zs\\s*--.*"
let g:ada#Keywords	   = []

" Section: g:ada#Keywords {{{1
"
" Section: add Ada keywords {{{2
"
for Item in ['abort', 'else', 'new', 'return', 'abs', 'elsif', 'not', 'reverse', 'abstract', 'end', 'null', 'accept', 'entry', 'select', 'access', 'exception', 'of', 'separate', 'aliased', 'exit', 'or', 'subtype', 'all', 'others', 'synchronized', 'and', 'for', 'out', 'array', 'function', 'overriding', 'tagged', 'at', 'task', 'generic', 'package', 'terminate', 'begin', 'goto', 'pragma', 'then', 'body', 'private', 'type', 'if', 'procedure', 'case', 'in', 'protected', 'until', 'constant', 'interface', 'use', 'is', 'raise', 'declare', 'range', 'when', 'delay', 'limited', 'record', 'while', 'delta', 'loop', 'rem', 'with', 'digits', 'renames', 'do', 'mod', 'requeue', 'xor']
    let g:ada#Keywords += [{
	    \ 'word':  Item,
	    \ 'menu':  'keyword',
	    \ 'info':  'Ada keyword.',
	    \ 'kind':  'k',
	    \ 'icase': 1}]
endfor

" Section: GNAT Project Files {{{3
"
if exists ('g:ada_with_gnat_project_files')
    for Item in ['project']
       let g:ada#Keywords += [{
	       \ 'word':  Item,
	       \ 'menu':  'keyword',
	       \ 'info':  'GNAT projectfile keyword.',
	       \ 'kind':  'k',
	       \ 'icase': 1}]
    endfor
endif

" Section: add	standart exception {{{2
"
for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error']
    let g:ada#Keywords += [{
	    \ 'word':  Item,
	    \ 'menu':  'exception',
	    \ 'info':  'Ada standart exception.',
	    \ 'kind':  'x',
	    \ 'icase': 1}]
endfor

" Section: add	GNAT exception {{{3
"
if exists ('g:ada_gnat_extensions')
    for Item in ['Assert_Failure']
	let g:ada#Keywords += [{
		\ 'word':  Item,
		\ 'menu':  'exception',
		\ 'info':  'GNAT exception.',
		\ 'kind':  'x',
		\ 'icase': 1}]
    endfor
endif

" Section: add Ada buildin types {{{2
"
for Item in ['Boolean', 'Integer', 'Natural', 'Positive', 'Float', 'Character', 'Wide_Character', 'Wide_Wide_Character', 'String', 'Wide_String', 'Wide_Wide_String', 'Duration']
    let g:ada#Keywords += [{
	    \ 'word':  Item,
	    \ 'menu':  'type',
	    \ 'info':  'Ada buildin type.',
	    \ 'kind':  't',
	    \ 'icase': 1}]
endfor

" Section: add GNAT buildin types {{{3
"
if exists ('g:ada_gnat_extensions')
    for Item in ['Short_Integer', 'Short_Short_Integer', 'Long_Integer', 'Long_Long_Integer', 'Short_Float', 'Short_Short_Float', 'Long_Float', 'Long_Long_Float']
	let g:ada#Keywords += [{
		\ 'word':  Item,
		\ 'menu':  'type',
		\ 'info':  'GNAT buildin type.',
		\ 'kind':  't',
		\ 'icase': 1}]
    endfor
endif

" Section: add Ada Attributes {{{2
"
for Item in ['''Access', '''Address', '''Adjacent', '''Aft', '''Alignment', '''Base', '''Bit_Order', '''Body_Version', '''Callable', '''Caller', '''Ceiling', '''Class', '''Component_Size', '''Compose', '''Constrained', '''Copy_Sign', '''Count', '''Definite', '''Delta', '''Denorm', '''Digits', '''Emax', '''Exponent', '''External_Tag', '''Epsilon', '''First', '''First_Bit', '''Floor', '''Fore', '''Fraction', '''Identity', '''Image', '''Input', '''Large', '''Last', '''Last_Bit', '''Leading_Part', '''Length', '''Machine', '''Machine_Emax', '''Machine_Emin', '''Machine_Mantissa', '''Machine_Overflows', '''Machine_Radix', '''Machine_Rounding', '''Machine_Rounds', '''Mantissa', '''Max', '''Max_Size_In_Storage_Elements', '''Min', '''Mod', '''Model', '''Model_Emin', '''Model_Epsilon', '''Model_Mantissa', '''Model_Small', '''Modulus', '''Output', '''Partition_ID', '''Pos', '''Position', '''Pred', '''Priority', '''Range', '''Read', '''Remainder', '''Round', '''Rounding', '''Safe_Emax', '''Safe_First', '''Safe_Large', '''Safe_Last', '''Safe_Small', '''Scale', '''Scaling', '''Signed_Zeros', '''Size', '''Small', '''Storage_Pool', '''Storage_Size', '''Stream_Size', '''Succ', '''Tag', '''Terminated', '''Truncation', '''Unbiased_Rounding', '''Unchecked_Access', '''Val', '''Valid', '''Value', '''Version', '''Wide_Image', '''Wide_Value', '''Wide_Wide_Image', '''Wide_Wide_Value', '''Wide_Wide_Width', '''Wide_Width', '''Width', '''Write']
    let g:ada#Keywords += [{
	    \ 'word':  Item,
	    \ 'menu':  'attribute',
	    \ 'info':  'Ada attribute.',
	    \ 'kind':  'a',
	    \ 'icase': 1}]
endfor

" Section: add GNAT Attributes {{{3
"
if exists ('g:ada_gnat_extensions')
    for Item in ['''Abort_Signal', '''Address_Size', '''Asm_Input', '''Asm_Output', '''AST_Entry', '''Bit', '''Bit_Position', '''Code_Address', '''Default_Bit_Order', '''Elaborated', '''Elab_Body', '''Elab_Spec', '''Emax', '''Enum_Rep', '''Epsilon', '''Fixed_Value', '''Has_Access_Values', '''Has_Discriminants', '''Img', '''Integer_Value', '''Machine_Size', '''Max_Interrupt_Priority', '''Max_Priority', '''Maximum_Alignment', '''Mechanism_Code', '''Null_Parameter', '''Object_Size', '''Passed_By_Reference', '''Range_Length', '''Storage_Unit', '''Target_Name', '''Tick', '''To_Address', '''Type_Class', '''UET_Address', '''Unconstrained_Array', '''Universal_Literal_String', '''Unrestricted_Access', '''VADS_Size', '''Value_Size', '''Wchar_T_Size', '''Word_Size']
    let g:ada#Keywords += [{
	    \ 'word':  Item,
	    \ 'menu':  'attribute',
	    \ 'info':  'GNAT attribute.',
	    \ 'kind':  'a',
	    \ 'icase': 1}]
    endfor
endif

" Section: add Ada Pragmas {{{2
"
for Item in ['All_Calls_Remote', 'Assert', 'Assertion_Policy', 'Asynchronous', 'Atomic', 'Atomic_Components', 'Attach_Handler', 'Controlled', 'Convention', 'Detect_Blocking', 'Discard_Names', 'Elaborate', 'Elaborate_All', 'Elaborate_Body', 'Export', 'Import', 'Inline', 'Inspection_Point', 'Interface (Obsolescent)', 'Interrupt_Handler', 'Interrupt_Priority', 'Linker_Options', 'List', 'Locking_Policy', 'Memory_Size (Obsolescent)', 'No_Return', 'Normalize_Scalars', 'Optimize', 'Pack', 'Page', 'Partition_Elaboration_Policy', 'Preelaborable_Initialization', 'Preelaborate', 'Priority', 'Priority_Specific_Dispatching', 'Profile', 'Pure', 'Queueing_Policy', 'Relative_Deadline', 'Remote_Call_Interface', 'Remote_Types', 'Restrictions', 'Reviewable', 'Shared (Obsolescent)', 'Shared_Passive', 'Storage_Size', 'Storage_Unit (Obsolescent)', 'Suppress', 'System_Name (Obsolescent)', 'Task_Dispatching_Policy', 'Unchecked_Union', 'Unsuppress', 'Volatile', 'Volatile_Components']
    let g:ada#Keywords += [{
	    \ 'word':  Item,
	    \ 'menu':  'pragma',
	    \ 'info':  'Ada pragma.',
	    \ 'kind':  'p',
	    \ 'icase': 1}]
endfor

" Section: add GNAT Pragmas {{{3
"
if exists ('g:ada_gnat_extensions')
    for Item in ['Abort_Defer', 'Ada_83', 'Ada_95', 'Ada_05', 'Annotate', 'Ast_Entry', 'C_Pass_By_Copy', 'Comment', 'Common_Object', 'Compile_Time_Warning', 'Complex_Representation', 'Component_Alignment', 'Convention_Identifier', 'CPP_Class', 'CPP_Constructor', 'CPP_Virtual', 'CPP_Vtable', 'Debug', 'Elaboration_Checks', 'Eliminate', 'Export_Exception', 'Export_Function', 'Export_Object', 'Export_Procedure', 'Export_Value', 'Export_Valued_Procedure', 'Extend_System', 'External', 'External_Name_Casing', 'Finalize_Storage_Only', 'Float_Representation', 'Ident', 'Import_Exception', 'Import_Function', 'Import_Object', 'Import_Procedure', 'Import_Valued_Procedure', 'Initialize_Scalars', 'Inline_Always', 'Inline_Generic', 'Interface_Name', 'Interrupt_State', 'Keep_Names', 'License', 'Link_With', 'Linker_Alias', 'Linker_Section', 'Long_Float', 'Machine_Attribute', 'Main_Storage', 'Obsolescent', 'Passive', 'Polling', 'Profile_Warnings', 'Propagate_Exceptions', 'Psect_Object', 'Pure_Function', 'Restriction_Warnings', 'Source_File_Name', 'Source_File_Name_Project', 'Source_Reference', 'Stream_Convert', 'Style_Checks', 'Subtitle', 'Suppress_All', 'Suppress_Exception_Locations', 'Suppress_Initialization', 'Task_Info', 'Task_Name', 'Task_Storage', 'Thread_Body', 'Time_Slice', 'Title', 'Unimplemented_Unit', 'Universal_Data', 'Unreferenced', 'Unreserve_All_Interrupts', 'Use_VADS_Size', 'Validity_Checks', 'Warnings', 'Weak_External']
	let g:ada#Keywords += [{
		\ 'word':  Item,
		\ 'menu':  'pragma',
		\ 'info':  'GNAT pragma.',
		\ 'kind':  'p',
		\ 'icase': 1}]
    endfor
endif
" 1}}}

" Section: g:ada#Ctags_Kinds {{{1
"
let g:ada#Ctags_Kinds = {
   \ 'P': ["packspec",	  "package specifications"],
   \ 'p': ["package",	  "packages"],
   \ 'T': ["typespec",	  "type specifications"],
   \ 't': ["type",	  "types"],
   \ 'U': ["subspec",	  "subtype specifications"],
   \ 'u': ["subtype",	  "subtypes"],
   \ 'c': ["component",   "record type components"],
   \ 'l': ["literal",	  "enum type literals"],
   \ 'V': ["varspec",	  "variable specifications"],
   \ 'v': ["variable",	  "variables"],
   \ 'f': ["formal",	  "generic formal parameters"],
   \ 'n': ["constant",	  "constants"],
   \ 'x': ["exception",   "user defined exceptions"],
   \ 'R': ["subprogspec", "subprogram specifications"],
   \ 'r': ["subprogram",  "subprograms"],
   \ 'K': ["taskspec",	  "task specifications"],
   \ 'k': ["task",	  "tasks"],
   \ 'O': ["protectspec", "protected data specifications"],
   \ 'o': ["protected",   "protected data"],
   \ 'E': ["entryspec",   "task/protected data entry specifications"],
   \ 'e': ["entry",	  "task/protected data entries"],
   \ 'b': ["label",	  "labels"],
   \ 'i': ["identifier",  "loop/declare identifiers"],
   \ 'a': ["autovar",	  "automatic variables"],
   \ 'y': ["annon",	  "loops and blocks with no identifier"]}

" Section: ada#Word (...) {{{1
"
" Extract current Ada word across multiple lines
" AdaWord ([line, column])\
"
function ada#Word (...)
   if a:0 > 1
      let l:Line_Nr    = a:1
      let l:Column_Nr  = a:2 - 1
   else
      let l:Line_Nr    = line('.')
      let l:Column_Nr  = col('.') - 1
   endif

   let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )

   " Cope with tag searching for items in comments; if we are, don't loop
   " backards looking for previous lines
   if l:Column_Nr > strlen(l:Line)
      " We were in a comment
      let l:Line = getline(l:Line_Nr)
      let l:Search_Prev_Lines = 0
   else
      let l:Search_Prev_Lines = 1
   endif

   " Go backwards until we find a match (Ada ID) that *doesn't* include our
   " location - i.e., the previous ID. This is because the current 'correct'
   " match will toggle matching/not matching as we traverse characters
   " backwards. Thus, we have to find the previous unrelated match, exclude
   " it, then use the next full match (ours).
   " Remember to convert vim column 'l:Column_Nr' [1..n] to string offset [0..(n-1)]
   " ... but start, here, one after the required char.
   let l:New_Column = l:Column_Nr + 1
   while 1
      let l:New_Column = l:New_Column - 1
      if l:New_Column < 0
	 " Have to include previous l:Line from file
	 let l:Line_Nr = l:Line_Nr - 1
	 if l:Line_Nr < 1  ||  !l:Search_Prev_Lines
	    " Start of file or matching in a comment
	    let l:Line_Nr     = 1
	    let l:New_Column  = 0
	    let l:Our_Match   = match (l:Line, g:ada#WordRegex )
	    break
	 endif
	 " Get previous l:Line, and prepend it to our search string
	 let l:New_Line    = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
	 let l:New_Column  = strlen (l:New_Line) - 1
	 let l:Column_Nr   = l:Column_Nr + l:New_Column
	 let l:Line	   = l:New_Line . l:Line
      endif
      " Check to see if this is a match excluding 'us'
      let l:Match_End = l:New_Column +
		      \ matchend (strpart (l:Line,l:New_Column), g:ada#WordRegex ) - 1
      if l:Match_End >= l:New_Column  &&
       \ l:Match_End < l:Column_Nr
	 " Yes
	 let l:Our_Match = l:Match_End+1 +
			 \ match (strpart (l:Line,l:Match_End+1), g:ada#WordRegex )
	 break
      endif
   endwhile

   " Got anything?
   if l:Our_Match < 0
      return ''
   else
      let l:Line = strpart (l:Line, l:Our_Match)
   endif

   " Now simply add further lines until the match gets no bigger
   let l:Match_String = matchstr (l:Line, g:ada#WordRegex)
   let l:Last_Line    = line ('$')
   let l:Line_Nr      = line ('.') + 1
   while l:Line_Nr <= l:Last_Line
      let l:Last_Match = l:Match_String
      let l:Line = l:Line .
	 \ substitute (getline (l:Line_Nr), g:ada#Comment, '', '')
      let l:Match_String = matchstr (l:Line, g:ada#WordRegex)
      if l:Match_String == l:Last_Match
	 break
      endif
   endwhile

   " Strip whitespace & return
   return substitute (l:Match_String, '\s\+', '', 'g')
endfunction ada#Word

" Section: ada#List_Tag (...) {{{1
"
"  List tags in quickfix window
"
function ada#List_Tag (...)
   if a:0 > 1
      let l:Tag_Word = ada#Word (a:1, a:2)
   elseif a:0 > 0
      let l:Tag_Word = a:1
   else
      let l:Tag_Word = ada#Word ()
   endif

   echo "Searching for" l:Tag_Word

   let l:Pattern = '^' . l:Tag_Word . '$'
   let l:Tag_List = taglist (l:Pattern)
   let l:Error_List = []
   "
   " add symbols
   "
   for Tag_Item in l:Tag_List
      if l:Tag_Item['kind'] == ''
	 let l:Tag_Item['kind'] = 's'
      endif

      let l:Error_List += [
	 \ l:Tag_Item['filename'] . '|' .
	 \ l:Tag_Item['cmd']	  . '|' .
	 \ l:Tag_Item['kind']	  . "\t" .
	 \ l:Tag_Item['name'] ]
   endfor
   set errorformat=%f\|%l\|%m
   cexpr l:Error_List
   cwindow
endfunction ada#List_Tag

" Section: ada#Jump_Tag (Word, Mode) {{{1
"
" Word tag - include '.' and if Ada make uppercase
"
function ada#Jump_Tag (Word, Mode)
   if a:Word == ''
      " Get current word
      let l:Word = ada#Word()
      if l:Word == ''
	 throw "NOT_FOUND: no identifier found."
      endif
   else
      let l:Word = a:Word
   endif

   echo "Searching for " . l:Word

   try
      execute a:Mode l:Word
   catch /.*:E426:.*/
      let ignorecase = &ignorecase
      set ignorecase
      execute a:Mode l:Word
      let &ignorecase = ignorecase
   endtry

   return
endfunction ada#Jump_Tag

" Section: ada#Insert_Backspace () {{{1
"
" Backspace at end of line after auto-inserted commentstring '-- ' wipes it
"
function ada#Insert_Backspace ()
   let l:Line = getline ('.')
   if col ('.') > strlen (l:Line) &&
    \ match (l:Line, '-- $') != -1 &&
    \ match (&comments,'--') != -1
      return "\<bs>\<bs>\<bs>"
   else
      return "\<bs>"
   endif

   return
endfunction ada#InsertBackspace

" Section: Insert Completions {{{1
"
" Section: ada#User_Complete(findstart, base) {{{2
"
" This function is used for the 'complete' option.
"
function! ada#User_Complete(findstart, base)
   if a:findstart == 1
      "
      " locate the start of the word
      "
      let line = getline ('.')
      let start = col ('.') - 1
      while start > 0 && line[start - 1] =~ '\i\|'''
	 let start -= 1
      endwhile
      return start
   else
      "
      " look up matches
      "
      let l:Pattern = '^' . a:base . '.*$'
      "
      " add keywords
      "
      for Tag_Item in g:ada#Keywords
	 if l:Tag_Item['word'] =~? l:Pattern
	    if complete_add (l:Tag_Item) == 0
	       return []
	    endif
	    if complete_check ()
	       return []
	    endif
	 endif
      endfor
      return []
   endif
endfunction ada#User_Complete

" Section: ada#Completion (cmd) {{{2
"
" Word completion (^N/^R/^X^]) - force '.' inclusion
function ada#Completion (cmd)
   set iskeyword+=46
   return a:cmd . "\<C-R>=ada#Completion_End ()\<CR>"
endfunction ada#Completion

" Section: ada#Completion_End () {{{2
"
function ada#Completion_End ()
   set iskeyword-=46
   return ''
endfunction ada#Completion_End

" Section: ada#Create_Tags {{{1
"
function ada#Create_Tags (option)
   if a:option == 'file'
      let l:Filename = fnamemodify (bufname ('%'), ':p')
   elseif a:option == 'dir'
      let l:Filename =
	 \ fnamemodify (bufname ('%'), ':p:h') . "*.ada " .
	 \ fnamemodify (bufname ('%'), ':p:h') . "*.adb " .
	 \ fnamemodify (bufname ('%'), ':p:h') . "*.ads"
   else
      let l:Filename = a:option
   endif
   execute '!ctags --excmd=number ' . l:Filename
endfunction ada#Create_Tags

" Section: ada#Switch_Session {{{1
"
function ada#Switch_Session (New_Session)
   " 
   " you should not save to much date into the seession since they will
   " be sourced
   "
   let l:sessionoptions=&sessionoptions

   try
      set sessionoptions=buffers,curdir,folds,globals,resize,slash,tabpages,tabpages,unix,winpos,winsize

      if a:New_Session != v:this_session
	 "
	 "  We actually got a new session - otherwise there
	 "  is nothing to do.
	 "
	 if strlen (v:this_session) > 0
	    execute 'mksession! ' . v:this_session
	 endif

	 let v:this_session = a:New_Session

	 "if filereadable (v:this_session)
	    "execute 'source ' . v:this_session
	 "endif

	 augroup ada_session
	    autocmd!
	    autocmd VimLeavePre * execute 'mksession! ' . v:this_session
	 augroup END
	 
	 "if exists ("g:Tlist_Auto_Open") && g:Tlist_Auto_Open
	    "TlistOpen
	 "endif

      endif
   finally
      let &sessionoptions=l:sessionoptions
   endtry

   return
endfunction ada#Switch_Session	

" Section: GNAT Pretty Printer folding {{{1
"
if exists('g:ada_folding') && g:ada_folding[0] == 'g'
   "
   " Lines consisting only of ')' ';' are due to a gnat pretty bug and
   " have the same level as the line above (can't happen in the first
   " line).
   "
   let s:Fold_Collate = '^\([;)]*$\|'

   "
   " some lone statements are folded with the line above
   "
   if stridx (g:ada_folding, 'i') >= 0
      let s:Fold_Collate .= '\s\+\<is\>$\|'
   endif
   if stridx (g:ada_folding, 'b') >= 0
      let s:Fold_Collate .= '\s\+\<begin\>$\|'
   endif
   if stridx (g:ada_folding, 'p') >= 0
      let s:Fold_Collate .= '\s\+\<private\>$\|'
   endif
   if stridx (g:ada_folding, 'x') >= 0
      let s:Fold_Collate .= '\s\+\<exception\>$\|'
   endif

   " We also handle empty lines and
   " comments here.
   let s:Fold_Collate .= '--\)'

   function ada#Pretty_Print_Folding (Line)			     " {{{2
      let l:Text = getline (a:Line)

      if l:Text =~ s:Fold_Collate
	 "
	 "  fold with line above
	 "
	 let l:Level = "="
      elseif l:Text =~ '^\s\+('
	 "
	 " gnat outdents a line which stards with a ( by one characters so
	 " that parameters which follow are aligned.
	 "
	 let l:Level = (indent (a:Line) + 1) / &shiftwidth
      else
	 let l:Level = indent (a:Line) / &shiftwidth
      endif

      return l:Level
   endfunction ada#Pretty_Print_Folding				     " }}}2
endif

" Section: Options and Menus {{{1
"
" Section: ada#Switch_Syntax_Options {{{2
"
function ada#Switch_Syntax_Option (option)
   syntax off
   if exists ('g:ada_' . a:option)
      unlet g:ada_{a:option}
      echo  a:option . 'now off'
   else
      let g:ada_{a:option}=1
      echo  a:option . 'now on'
   endif
   syntax on
endfunction ada#Switch_Syntax_Option

" Section: ada#Map_Menu {{{2
"
function ada#Map_Menu (Text, Keys, Command)
   if a:Keys[0] == ':'
      execute
	\ "50amenu " .
	\ "Ada."     . escape(a:Text, ' ') .
	\ "<Tab>"    . a:Keys .
	\ " :"	     . a:Command . "<CR>"
      execute
	\ "command -buffer " .
	\ a:Keys[1:] .
	\" :" . a:Command . "<CR>"
   elseif a:Keys[0] == '<'
      execute
	\ "50amenu " .
	\ "Ada."     . escape(a:Text, ' ') .
	\ "<Tab>"    . a:Keys .
	\ " :"	     . a:Command . "<CR>"
      execute
	\ "nnoremap <buffer> "	 .
	\ a:Keys		 .
	\" :" . a:Command . "<CR>"
      execute
	\ "inoremap <buffer> "	 .
	\ a:Keys		 .
	\" <C-O>:" . a:Command . "<CR>"
   else
      if exists("g:mapleader")
         let l:leader = g:mapleader
      else
         let l:leader = '\'
      endif
      execute
	\ "50amenu " .
	\ "Ada."  . escape(a:Text, ' ') .
	\ "<Tab>" . escape(l:leader . "a" . a:Keys , '\') .
	\ " :"	  . a:Command . "<CR>"
      execute
	\ "nnoremap <buffer>" .
	\ " <Leader>a" . a:Keys .
	\" :" . a:Command
      execute
	\ "inoremap <buffer>" .
	\ " <Leader>a" . a:Keys .
	\" <C-O>:" . a:Command
   endif
   return
endfunction

" Section: ada#Map_Popup {{{2
"
function ada#Map_Popup (Text, Keys, Command)
   if exists("g:mapleader")
      let l:leader = g:mapleader
   else
      let l:leader = '\'
   endif
   execute
     \ "50amenu " .
     \ "PopUp."   . escape(a:Text, ' ') .
     \ "<Tab>"	  . escape(l:leader . "a" . a:Keys , '\') .
     \ " :"	  . a:Command . "<CR>"

   call ada#Map_Menu (a:Text, a:Keys, a:Command)
   return
endfunction ada#Map_Popup

" }}}1

lockvar  g:ada#WordRegex
lockvar  g:ada#DotWordRegex
lockvar  g:ada#Comment
lockvar! g:ada#Keywords
lockvar! g:ada#Ctags_Kinds

let &cpo = s:keepcpo
unlet s:keepcpo

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006	Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z �&]]"vim80/autoload/clojurecomplete.vimnu�[���" Vim completion script
" Language:     Clojure
" Maintainer:   Sung Pae <self@sungpae.com>
" URL:          https://github.com/guns/vim-clojure-static
" License:      Same as Vim
" Last Change:  18 July 2016

" -*- COMPLETION WORDS -*-
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
" Clojure version 1.8.0
let s:words = ["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-readably*","*read-eval*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods",".","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc!","assoc","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","booleans","bound-fn","bound-fn*","bound?","butlast","byte","byte-array","bytes","case","cast","cat","catch","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj!","conj","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","def","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj!","disj","dissoc!","dissoc","distinct","distinct?","do","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","finally","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","identical?","identity","if","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","init-proxy","instance?","int","int-array","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","monitor-enter","monitor-exit","munge","name","namespace","namespace-munge","neg?","new","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop!","pop","pop-thread-bindings","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","quot","quote","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","recur","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seque","sequence","sequential?","set!","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","throw","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","try","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","use","val","vals","var","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"]

" Simple word completion for special forms and public vars in clojure.core
function! clojurecomplete#Complete(findstart, base)
	if a:findstart
		return searchpos('\<', 'bnW', line('.'))[1] - 1
	else
		return { 'words': filter(copy(s:words), 'v:val =~# "\\V\\^' . a:base . '"') }
	endif
endfunction

" vim:sts=8:sw=8:ts=8:noet
PK�j�ZZs�RVV!vim80/autoload/pythoncomplete.vimnu�[���"pythoncomplete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
" Last Updated: 18 Jun 2009
"
" Changes
" TODO:
" 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation
" Complete basic syntax along with import statements
"   i.e. "import url<c-x,c-o>"
" Continue parsing on invalid line??
"
" v 0.9
"   * Fixed docstring parsing for classes and functions
"   * Fixed parsing of *args and **kwargs type arguments
"   * Better function param parsing to handle things like tuples and
"     lambda defaults args
"
" v 0.8
"   * Fixed an issue where the FIRST assignment was always used instead of
"   using a subsequent assignment for a variable
"   * Fixed a scoping issue when working inside a parameterless function
"
"
" v 0.7
"   * Fixed function list sorting (_ and __ at the bottom)
"   * Removed newline removal from docs.  It appears vim handles these better in
"   recent patches
"
" v 0.6:
"   * Fixed argument completion
"   * Removed the 'kind' completions, as they are better indicated
"   with real syntax
"   * Added tuple assignment parsing (whoops, that was forgotten)
"   * Fixed import handling when flattening scope
"
" v 0.5:
" Yeah, I skipped a version number - 0.4 was never public.
"  It was a bugfix version on top of 0.3.  This is a complete
"  rewrite.
"

if !has('python')
    echo "Error: Required vim compiled with +python"
    finish
endif

function! pythoncomplete#Complete(findstart, base)
    "findstart = 1 when we need to get the text length
    if a:findstart == 1
        let line = getline('.')
        let idx = col('.')
        while idx > 0
            let idx -= 1
            let c = line[idx]
            if c =~ '\w'
                continue
            elseif ! c =~ '\.'
                let idx = -1
                break
            else
                break
            endif
        endwhile

        return idx
    "findstart = 0 when we need to return the list of completions
    else
        "vim no longer moves the cursor upon completion... fix that
        let line = getline('.')
        let idx = col('.')
        let cword = ''
        while idx > 0
            let idx -= 1
            let c = line[idx]
            if c =~ '\w' || c =~ '\.'
                let cword = c . cword
                continue
            elseif strlen(cword) > 0 || idx == 0
                break
            endif
        endwhile
        execute "python vimcomplete('" . cword . "', '" . a:base . "')"
        return g:pythoncomplete_completions
    endif
endfunction

function! s:DefPython()
python << PYTHONEOF
import sys, tokenize, cStringIO, types
from token import NAME, DEDENT, NEWLINE, STRING

debugstmts=[]
def dbg(s): debugstmts.append(s)
def showdbg():
    for d in debugstmts: print "DBG: %s " % d

def vimcomplete(context,match):
    global debugstmts
    debugstmts = []
    try:
        import vim
        def complsort(x,y):
            try:
                xa = x['abbr']
                ya = y['abbr']
                if xa[0] == '_':
                    if xa[1] == '_' and ya[0:2] == '__':
                        return xa > ya
                    elif ya[0:2] == '__':
                        return -1
                    elif y[0] == '_':
                        return xa > ya
                    else:
                        return 1
                elif ya[0] == '_':
                    return -1
                else:
                   return xa > ya
            except:
                return 0
        cmpl = Completer()
        cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')"))
        all = cmpl.get_completions(context,match)
        all.sort(complsort)
        dictstr = '['
        # have to do this for double quoting
        for cmpl in all:
            dictstr += '{'
            for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x])
            dictstr += '"icase":0},'
        if dictstr[-1] == ',': dictstr = dictstr[:-1]
        dictstr += ']'
        #dbg("dict: %s" % dictstr)
        vim.command("silent let g:pythoncomplete_completions = %s" % dictstr)
        #dbg("Completion dict:\n%s" % all)
    except vim.error:
        dbg("VIM Error: %s" % vim.error)

class Completer(object):
    def __init__(self):
       self.compldict = {}
       self.parser = PyParser()

    def evalsource(self,text,line=0):
        sc = self.parser.parse(text,line)
        src = sc.get_code()
        dbg("source: %s" % src)
        try: exec(src) in self.compldict
        except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
        for l in sc.locals:
            try: exec(l) in self.compldict
            except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))

    def _cleanstr(self,doc):
        return doc.replace('"',' ').replace("'",' ')

    def get_arguments(self,func_obj):
        def _ctor(obj):
            try: return class_ob.__init__.im_func
            except AttributeError:
                for base in class_ob.__bases__:
                    rc = _find_constructor(base)
                    if rc is not None: return rc
            return None

        arg_offset = 1
        if type(func_obj) == types.ClassType: func_obj = _ctor(func_obj)
        elif type(func_obj) == types.MethodType: func_obj = func_obj.im_func
        else: arg_offset = 0
        
        arg_text=''
        if type(func_obj) in [types.FunctionType, types.LambdaType]:
            try:
                cd = func_obj.func_code
                real_args = cd.co_varnames[arg_offset:cd.co_argcount]
                defaults = func_obj.func_defaults or ''
                defaults = map(lambda name: "=%s" % name, defaults)
                defaults = [""] * (len(real_args)-len(defaults)) + defaults
                items = map(lambda a,d: a+d, real_args, defaults)
                if func_obj.func_code.co_flags & 0x4:
                    items.append("...")
                if func_obj.func_code.co_flags & 0x8:
                    items.append("***")
                arg_text = (','.join(items)) + ')'

            except:
                dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
                pass
        if len(arg_text) == 0:
            # The doc string sometimes contains the function signature
            #  this works for alot of C modules that are part of the
            #  standard library
            doc = func_obj.__doc__
            if doc:
                doc = doc.lstrip()
                pos = doc.find('\n')
                if pos > 0:
                    sigline = doc[:pos]
                    lidx = sigline.find('(')
                    ridx = sigline.find(')')
                    if lidx > 0 and ridx > 0:
                        arg_text = sigline[lidx+1:ridx] + ')'
        if len(arg_text) == 0: arg_text = ')'
        return arg_text

    def get_completions(self,context,match):
        dbg("get_completions('%s','%s')" % (context,match))
        stmt = ''
        if context: stmt += str(context)
        if match: stmt += str(match)
        try:
            result = None
            all = {}
            ridx = stmt.rfind('.')
            if len(stmt) > 0 and stmt[-1] == '(':
                result = eval(_sanitize(stmt[:-1]), self.compldict)
                doc = result.__doc__
                if doc is None: doc = ''
                args = self.get_arguments(result)
                return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
            elif ridx == -1:
                match = stmt
                all = self.compldict
            else:
                match = stmt[ridx+1:]
                stmt = _sanitize(stmt[:ridx])
                result = eval(stmt, self.compldict)
                all = dir(result)

            dbg("completing: stmt:%s" % stmt)
            completions = []

            try: maindoc = result.__doc__
            except: maindoc = ' '
            if maindoc is None: maindoc = ' '
            for m in all:
                if m == "_PyCmplNoType": continue #this is internal
                try:
                    dbg('possible completion: %s' % m)
                    if m.find(match) == 0:
                        if result is None: inst = all[m]
                        else: inst = getattr(result,m)
                        try: doc = inst.__doc__
                        except: doc = maindoc
                        typestr = str(inst)
                        if doc is None or doc == '': doc = maindoc

                        wrd = m[len(match):]
                        c = {'word':wrd, 'abbr':m,  'info':self._cleanstr(doc)}
                        if "function" in typestr:
                            c['word'] += '('
                            c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
                        elif "method" in typestr:
                            c['word'] += '('
                            c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
                        elif "module" in typestr:
                            c['word'] += '.'
                        elif "class" in typestr:
                            c['word'] += '('
                            c['abbr'] += '('
                        completions.append(c)
                except:
                    i = sys.exc_info()
                    dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
            return completions
        except:
            i = sys.exc_info()
            dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
            return []

class Scope(object):
    def __init__(self,name,indent,docstr=''):
        self.subscopes = []
        self.docstr = docstr
        self.locals = []
        self.parent = None
        self.name = name
        self.indent = indent

    def add(self,sub):
        #print 'push scope: [%s@%s]' % (sub.name,sub.indent)
        sub.parent = self
        self.subscopes.append(sub)
        return sub

    def doc(self,str):
        """ Clean up a docstring """
        d = str.replace('\n',' ')
        d = d.replace('\t',' ')
        while d.find('  ') > -1: d = d.replace('  ',' ')
        while d[0] in '"\'\t ': d = d[1:]
        while d[-1] in '"\'\t ': d = d[:-1]
        dbg("Scope(%s)::docstr = %s" % (self,d))
        self.docstr = d

    def local(self,loc):
        self._checkexisting(loc)
        self.locals.append(loc)

    def copy_decl(self,indent=0):
        """ Copy a scope's declaration only, at the specified indent level - not local variables """
        return Scope(self.name,indent,self.docstr)

    def _checkexisting(self,test):
        "Convienance function... keep out duplicates"
        if test.find('=') > -1:
            var = test.split('=')[0].strip()
            for l in self.locals:
                if l.find('=') > -1 and var == l.split('=')[0].strip():
                    self.locals.remove(l)

    def get_code(self):
        str = ""
        if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
        for l in self.locals:
            if l.startswith('import'): str += l+'\n'
        str += 'class _PyCmplNoType:\n    def __getattr__(self,name):\n        return None\n'
        for sub in self.subscopes:
            str += sub.get_code()
        for l in self.locals:
            if not l.startswith('import'): str += l+'\n'

        return str

    def pop(self,indent):
        #print 'pop scope: [%s] to [%s]' % (self.indent,indent)
        outer = self
        while outer.parent != None and outer.indent >= indent:
            outer = outer.parent
        return outer

    def currentindent(self):
        #print 'parse current indent: %s' % self.indent
        return '    '*self.indent

    def childindent(self):
        #print 'parse child indent: [%s]' % (self.indent+1)
        return '    '*(self.indent+1)

class Class(Scope):
    def __init__(self, name, supers, indent, docstr=''):
        Scope.__init__(self,name,indent, docstr)
        self.supers = supers
    def copy_decl(self,indent=0):
        c = Class(self.name,self.supers,indent, self.docstr)
        for s in self.subscopes:
            c.add(s.copy_decl(indent+1))
        return c
    def get_code(self):
        str = '%sclass %s' % (self.currentindent(),self.name)
        if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers)
        str += ':\n'
        if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
        if len(self.subscopes) > 0:
            for s in self.subscopes: str += s.get_code()
        else:
            str += '%spass\n' % self.childindent()
        return str


class Function(Scope):
    def __init__(self, name, params, indent, docstr=''):
        Scope.__init__(self,name,indent, docstr)
        self.params = params
    def copy_decl(self,indent=0):
        return Function(self.name,self.params,indent, self.docstr)
    def get_code(self):
        str = "%sdef %s(%s):\n" % \
            (self.currentindent(),self.name,','.join(self.params))
        if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
        str += "%spass\n" % self.childindent()
        return str

class PyParser:
    def __init__(self):
        self.top = Scope('global',0)
        self.scope = self.top
        self.parserline = 0

    def _parsedotname(self,pre=None):
        #returns (dottedname, nexttoken)
        name = []
        if pre is None:
            tokentype, token, indent = self.next()
            if tokentype != NAME and token != '*':
                return ('', token)
        else: token = pre
        name.append(token)
        while True:
            tokentype, token, indent = self.next()
            if token != '.': break
            tokentype, token, indent = self.next()
            if tokentype != NAME: break
            name.append(token)
        return (".".join(name), token)

    def _parseimportlist(self):
        imports = []
        while True:
            name, token = self._parsedotname()
            if not name: break
            name2 = ''
            if token == 'as': name2, token = self._parsedotname()
            imports.append((name, name2))
            while token != "," and "\n" not in token:
                tokentype, token, indent = self.next()
            if token != ",": break
        return imports

    def _parenparse(self):
        name = ''
        names = []
        level = 1
        while True:
            tokentype, token, indent = self.next()
            if token in (')', ',') and level == 1:
                if '=' not in name: name = name.replace(' ', '')
                names.append(name.strip())
                name = ''
            if token == '(':
                level += 1
                name += "("
            elif token == ')':
                level -= 1
                if level == 0: break
                else: name += ")"
            elif token == ',' and level == 1:
                pass
            else:
                name += "%s " % str(token)
        return names

    def _parsefunction(self,indent):
        self.scope=self.scope.pop(indent)
        tokentype, fname, ind = self.next()
        if tokentype != NAME: return None

        tokentype, open, ind = self.next()
        if open != '(': return None
        params=self._parenparse()

        tokentype, colon, ind = self.next()
        if colon != ':': return None

        return Function(fname,params,indent)

    def _parseclass(self,indent):
        self.scope=self.scope.pop(indent)
        tokentype, cname, ind = self.next()
        if tokentype != NAME: return None

        super = []
        tokentype, next, ind = self.next()
        if next == '(':
            super=self._parenparse()
        elif next != ':': return None

        return Class(cname,super,indent)

    def _parseassignment(self):
        assign=''
        tokentype, token, indent = self.next()
        if tokentype == tokenize.STRING or token == 'str':  
            return '""'
        elif token == '(' or token == 'tuple':
            return '()'
        elif token == '[' or token == 'list':
            return '[]'
        elif token == '{' or token == 'dict':
            return '{}'
        elif tokentype == tokenize.NUMBER:
            return '0'
        elif token == 'open' or token == 'file':
            return 'file'
        elif token == 'None':
            return '_PyCmplNoType()'
        elif token == 'type':
            return 'type(_PyCmplNoType)' #only for method resolution
        else:
            assign += token
            level = 0
            while True:
                tokentype, token, indent = self.next()
                if token in ('(','{','['):
                    level += 1
                elif token in (']','}',')'):
                    level -= 1
                    if level == 0: break
                elif level == 0:
                    if token in (';','\n'): break
                    assign += token
        return "%s" % assign

    def next(self):
        type, token, (lineno, indent), end, self.parserline = self.gen.next()
        if lineno == self.curline:
            #print 'line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name)
            self.currentscope = self.scope
        return (type, token, indent)

    def _adjustvisibility(self):
        newscope = Scope('result',0)
        scp = self.currentscope
        while scp != None:
            if type(scp) == Function:
                slice = 0
                #Handle 'self' params
                if scp.parent != None and type(scp.parent) == Class:
                    slice = 1
                    newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
                for p in scp.params[slice:]:
                    i = p.find('=')
                    if len(p) == 0: continue
                    pvar = ''
                    ptype = ''
                    if i == -1:
                        pvar = p
                        ptype = '_PyCmplNoType()'
                    else:
                        pvar = p[:i]
                        ptype = _sanitize(p[i+1:])
                    if pvar.startswith('**'):
                        pvar = pvar[2:]
                        ptype = '{}'
                    elif pvar.startswith('*'):
                        pvar = pvar[1:]
                        ptype = '[]'

                    newscope.local('%s = %s' % (pvar,ptype))

            for s in scp.subscopes:
                ns = s.copy_decl(0)
                newscope.add(ns)
            for l in scp.locals: newscope.local(l)
            scp = scp.parent

        self.currentscope = newscope
        return self.currentscope

    #p.parse(vim.current.buffer[:],vim.eval("line('.')"))
    def parse(self,text,curline=0):
        self.curline = int(curline)
        buf = cStringIO.StringIO(''.join(text) + '\n')
        self.gen = tokenize.generate_tokens(buf.readline)
        self.currentscope = self.scope

        try:
            freshscope=True
            while True:
                tokentype, token, indent = self.next()
                #dbg( 'main: token=[%s] indent=[%s]' % (token,indent))

                if tokentype == DEDENT or token == "pass":
                    self.scope = self.scope.pop(indent)
                elif token == 'def':
                    func = self._parsefunction(indent)
                    if func is None:
                        print "function: syntax error..."
                        continue
                    dbg("new scope: function")
                    freshscope = True
                    self.scope = self.scope.add(func)
                elif token == 'class':
                    cls = self._parseclass(indent)
                    if cls is None:
                        print "class: syntax error..."
                        continue
                    freshscope = True
                    dbg("new scope: class")
                    self.scope = self.scope.add(cls)
                    
                elif token == 'import':
                    imports = self._parseimportlist()
                    for mod, alias in imports:
                        loc = "import %s" % mod
                        if len(alias) > 0: loc += " as %s" % alias
                        self.scope.local(loc)
                    freshscope = False
                elif token == 'from':
                    mod, token = self._parsedotname()
                    if not mod or token != "import":
                        print "from: syntax error..."
                        continue
                    names = self._parseimportlist()
                    for name, alias in names:
                        loc = "from %s import %s" % (mod,name)
                        if len(alias) > 0: loc += " as %s" % alias
                        self.scope.local(loc)
                    freshscope = False
                elif tokentype == STRING:
                    if freshscope: self.scope.doc(token)
                elif tokentype == NAME:
                    name,token = self._parsedotname(token) 
                    if token == '=':
                        stmt = self._parseassignment()
                        dbg("parseassignment: %s = %s" % (name, stmt))
                        if stmt != None:
                            self.scope.local("%s = %s" % (name,stmt))
                    freshscope = False
        except StopIteration: #thrown on EOF
            pass
        except:
            dbg("parse error: %s, %s @ %s" %
                (sys.exc_info()[0], sys.exc_info()[1], self.parserline))
        return self._adjustvisibility()

def _sanitize(str):
    val = ''
    level = 0
    for c in str:
        if c in ('(','{','['):
            level += 1
        elif c in (']','}',')'):
            level -= 1
        elif level == 0:
            val += c
    return val

sys.path.extend(['.','..'])
PYTHONEOF
endfunction

call s:DefPython()
" vim: set et ts=4:
PK�j�Z��
UUvim80/autoload/adacomplete.vimnu�[���"------------------------------------------------------------------------------
"  Description: Vim Ada omnicompletion file
"     Language:	Ada (2005)
"	   $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $
"   Maintainer:	Martin Krischik
"      $Author: krischik $
"	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
"      History: 24.05.2006 MK Unified Headers
"		26.05.2006 MK improved search for begin of word.
"		16.07.2006 MK Ada-Mode as vim-ball
"		15.10.2006 MK Bram's suggestion for runtime integration
"		05.11.2006 MK Bram suggested not to use include protection for
"			      autoload
"		05.11.2006 MK Bram suggested agaist using setlocal omnifunc 
"		05.11.2006 MK Bram suggested to save on spaces
"    Help Page: ft-ada-omni
"------------------------------------------------------------------------------

if version < 700
   finish
endif

" Section: adacomplete#Complete () {{{1
"
" This function is used for the 'omnifunc' option.
"
function! adacomplete#Complete (findstart, base)
   if a:findstart == 1
      return ada#User_Complete (a:findstart, a:base)
   else
      "
      " look up matches
      "
      if exists ("g:ada_omni_with_keywords")
	 call ada#User_Complete (a:findstart, a:base)
      endif
      "
      "  search tag file for matches
      "
      let l:Pattern  = '^' . a:base . '.*$'
      let l:Tag_List = taglist (l:Pattern)
      "
      " add symbols
      "
      for Tag_Item in l:Tag_List
	 if l:Tag_Item['kind'] == ''
	    "
	    " Tag created by gnat xref
	    "
	    let l:Match_Item = {
	       \ 'word':  l:Tag_Item['name'],
	       \ 'menu':  l:Tag_Item['filename'],
	       \ 'info':  "Symbol from file " . l:Tag_Item['filename'] . " line " . l:Tag_Item['cmd'],
	       \ 'kind':  's',
	       \ 'icase': 1}
	 else
	    "
	    " Tag created by ctags
	    "
	    let l:Info	= 'Symbol		 : ' . l:Tag_Item['name']  . "\n"
	    let l:Info .= 'Of type		 : ' . g:ada#Ctags_Kinds[l:Tag_Item['kind']][1]  . "\n"
	    let l:Info .= 'Defined in File	 : ' . l:Tag_Item['filename'] . "\n"

	    if has_key( l:Tag_Item, 'package')
	       let l:Info .= 'Package		    : ' . l:Tag_Item['package'] . "\n"
	       let l:Menu  = l:Tag_Item['package']
	    elseif has_key( l:Tag_Item, 'separate')
	       let l:Info .= 'Separate from Package : ' . l:Tag_Item['separate'] . "\n"
	       let l:Menu  = l:Tag_Item['separate']
	    elseif has_key( l:Tag_Item, 'packspec')
	       let l:Info .= 'Package Specification : ' . l:Tag_Item['packspec'] . "\n"
	       let l:Menu  = l:Tag_Item['packspec']
	    elseif has_key( l:Tag_Item, 'type')
	       let l:Info .= 'Datetype		    : ' . l:Tag_Item['type'] . "\n"
	       let l:Menu  = l:Tag_Item['type']
	    else
	       let l:Menu  = l:Tag_Item['filename']
	    endif

	    let l:Match_Item = {
	       \ 'word':  l:Tag_Item['name'],
	       \ 'menu':  l:Menu,
	       \ 'info':  l:Info,
	       \ 'kind':  l:Tag_Item['kind'],
	       \ 'icase': 1}
	 endif
	 if complete_add (l:Match_Item) == 0
	    return []
	 endif
	 if complete_check ()
	    return []
	 endif
      endfor
      return []
   endif
endfunction adacomplete#Complete

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006	Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z�[jcjcvim80/autoload/htmlcomplete.vimnu�[���" Vim completion script
" Language:	HTML and XHTML
" Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change:	2014 Jun 20

" Distinguish between HTML versions.
" To use with other HTML versions add another "elseif" condition to match
" proper DOCTYPE.
function! htmlcomplete#DetectOmniFlavor()
  if &filetype == 'xhtml'
    let b:html_omni_flavor = 'xhtml10s'
  else
    let b:html_omni_flavor = 'html401t'
  endif
  let i = 1
  let line = ""
  while i < 10 && i < line("$")
    let line = getline(i)
    if line =~ '<!DOCTYPE.*\<DTD '
      break
    endif
    let i += 1
  endwhile
  if line =~ '<!DOCTYPE.*\<DTD '  " doctype line found above
    if line =~ ' HTML 3\.2'
      let b:html_omni_flavor = 'html32'
    elseif line =~ ' XHTML 1\.1'
      let b:html_omni_flavor = 'xhtml11'
    else    " two-step detection with strict/frameset/transitional
      if line =~ ' XHTML 1\.0'
	let b:html_omni_flavor = 'xhtml10'
      elseif line =~ ' HTML 4\.01'
	let b:html_omni_flavor = 'html401'
      elseif line =~ ' HTML 4.0\>'
	let b:html_omni_flavor = 'html40'
      endif
      if line =~ '\<Transitional\>'
	let b:html_omni_flavor .= 't'
      elseif line =~ '\<Frameset\>'
	let b:html_omni_flavor .= 'f'
      else
	let b:html_omni_flavor .= 's'
      endif
    endif
  endif
endfunction

function! htmlcomplete#CompleteTags(findstart, base)
  if a:findstart
    " locate the start of the word
    let line = getline('.')
    let start = col('.') - 1
	let curline = line('.')
	let compl_begin = col('.') - 2
    while start >= 0 && line[start - 1] =~ '\(\k\|[!:.-]\)'
		let start -= 1
    endwhile
	" Handling of entities {{{
	if start >= 0 && line[start - 1] =~ '&'
		let b:entitiescompl = 1
		let b:compl_context = ''
		return start
	endif
	" }}}
	" Handling of <style> tag {{{
	let stylestart = searchpair('<style\>', '', '<\/style\>', "bnW")
	let styleend   = searchpair('<style\>', '', '<\/style\>', "nW")
	if stylestart != 0 && styleend != 0
		if stylestart <= curline && styleend >= curline
			let start = col('.') - 1
			let b:csscompl = 1
			while start >= 0 && line[start - 1] =~ '\(\k\|-\)'
				let start -= 1
			endwhile
		endif
	endif
	" }}}
	" Handling of <script> tag {{{
	let scriptstart = searchpair('<script\>', '', '<\/script\>', "bnW")
	let scriptend   = searchpair('<script\>', '', '<\/script\>', "nW")
	if scriptstart != 0 && scriptend != 0
		if scriptstart <= curline && scriptend >= curline
			let start = col('.') - 1
			let b:jscompl = 1
			let b:jsrange = [scriptstart, scriptend]
			while start >= 0 && line[start - 1] =~ '\k'
				let start -= 1
			endwhile
			" We are inside of <script> tag. But we should also get contents
			" of all linked external files and (secondary, less probably) other <script> tags
			" This logic could possible be done in separate function - may be
			" reused in events scripting (also with option could be reused for
			" CSS
			let b:js_extfiles = []
			let l = line('.')
			let c = col('.')
			call cursor(1,1)
			while search('<\@<=script\>', 'W') && line('.') <= l
				if synIDattr(synID(line('.'),col('.')-1,0),"name") !~? 'comment'
					let sname = matchstr(getline('.'), '<script[^>]*src\s*=\s*\([''"]\)\zs.\{-}\ze\1')
					if filereadable(sname)
						let b:js_extfiles += readfile(sname)
					endif
				endif
			endwhile
			call cursor(1,1)
			let js_scripttags = []
			while search('<script\>', 'W') && line('.') < l
				if matchstr(getline('.'), '<script[^>]*src') == ''
					let js_scripttag = getline(line('.'), search('</script>', 'W'))
					let js_scripttags += js_scripttag
				endif
			endwhile
			let b:js_extfiles += js_scripttags
			call cursor(l,c)
			unlet! l c
		endif
	endif
	" }}}
	if !exists("b:csscompl") && !exists("b:jscompl")
		let b:compl_context = getline('.')[0:(compl_begin)]
		if b:compl_context !~ '<[^>]*$'
			" Look like we may have broken tag. Check previous lines.
			let i = 1
			while 1
				let context_line = getline(curline-i)
				if context_line =~ '<[^>]*$'
					" Yep, this is this line
					let context_lines = getline(curline-i, curline-1) + [b:compl_context]
					let b:compl_context = join(context_lines, ' ')
					break
				elseif context_line =~ '>[^<]*$' || i == curline
					" We are in normal tag line, no need for completion at all
					" OR reached first line without tag at all
					let b:compl_context = ''
					break
				endif
				let i += 1
			endwhile
			" Make sure we don't have counter
			unlet! i
		endif
		let b:compl_context = matchstr(b:compl_context, '.*\zs<.*')

		" Return proper start for on-events. Without that beginning of
		" completion will be badly reported
		if b:compl_context =~? 'on[a-z]*\s*=\s*\(''[^'']*\|"[^"]*\)$'
			let start = col('.') - 1
			while start >= 0 && line[start - 1] =~ '\k'
				let start -= 1
			endwhile
		endif
		" If b:compl_context begins with <? we are inside of PHP code. It
		" wasn't closed so PHP completion passed it to HTML
		if &filetype =~? 'php' && b:compl_context =~ '^<?'
			let b:phpcompl = 1
			let start = col('.') - 1
			while start >= 0 && line[start - 1] =~ '[a-zA-Z_0-9\x7f-\xff$]'
				let start -= 1
			endwhile
		endif
	else
		let b:compl_context = getline('.')[0:compl_begin]
	endif
    return start
  else
	" Initialize base return lists
    let res = []
    let res2 = []
	" a:base is very short - we need context
	let context = b:compl_context
	" Check if we should do CSS completion inside of <style> tag
	" or JS completion inside of <script> tag or PHP completion in case of <?
	" tag AND &ft==php
	if exists("b:csscompl")
		unlet! b:csscompl
		let context = b:compl_context
		unlet! b:compl_context
		return csscomplete#CompleteCSS(0, context)
	elseif exists("b:jscompl")
		unlet! b:jscompl
		return javascriptcomplete#CompleteJS(0, a:base)
	elseif exists("b:phpcompl")
		unlet! b:phpcompl
		let context = b:compl_context
		return phpcomplete#CompletePHP(0, a:base)
	else
		if len(b:compl_context) == 0 && !exists("b:entitiescompl")
			return []
		endif
		let context = matchstr(b:compl_context, '.\zs.*')
	endif
	unlet! b:compl_context
	" Entities completion {{{
	if exists("b:entitiescompl")
		unlet! b:entitiescompl

		if !exists("b:html_doctype")
			call htmlcomplete#CheckDoctype()
		endif
		if !exists("b:html_omni")
			"runtime! autoload/xml/xhtml10s.vim
			call htmlcomplete#LoadData()
		endif

	    let entities =  b:html_omni['vimxmlentities']

		if len(a:base) == 1
			for m in entities
				if m =~ '^'.a:base
					call add(res, m.';')
				endif
			endfor
			return res
		else
			for m in entities
				if m =~? '^'.a:base
					call add(res, m.';')
				elseif m =~? a:base
					call add(res2, m.';')
				endif
			endfor

			return res + res2
		endif


	endif
	" }}}
	if context =~ '>'
		" Generally if context contains > it means we are outside of tag and
		" should abandon action - with one exception: <style> span { bo
		if context =~ 'style[^>]\{-}>[^<]\{-}$'
			return csscomplete#CompleteCSS(0, context)
		elseif context =~ 'script[^>]\{-}>[^<]\{-}$'
			let b:jsrange = [line('.'), search('<\/script\>', 'nW')]
			return javascriptcomplete#CompleteJS(0, context)
		else
			return []
		endif
	endif

	" If context contains > it means we are already outside of tag and we
	" should abandon action
	" If context contains white space it is attribute.
	" It can be also value of attribute.
	" We have to get first word to offer proper completions
	if context == ''
		let tag = ''
	else
		let tag = split(context)[0]
		" Detect if tag is uppercase to return in proper case,
		" we need to make it lowercase for processing
		if tag =~ '^[A-Z]*$'
			let uppercase_tag = 1
			let tag = tolower(tag)
		else
			let uppercase_tag = 0
		endif
	endif
	" Get last word, it should be attr name
	let attr = matchstr(context, '.*\s\zs.*')
	" Possible situations where any prediction would be difficult:
	" 1. Events attributes
	if context =~ '\s'
		" Sort out style, class, and on* cases
		if context =~? "\\(on[a-z]*\\|id\\|style\\|class\\)\\s*=\\s*[\"']"
			" Id, class completion {{{
			if context =~? "\\(id\\|class\\)\\s*=\\s*[\"'][a-zA-Z0-9_ -]*$"
				if context =~? "class\\s*=\\s*[\"'][a-zA-Z0-9_ -]*$"
					let search_for = "class"
				elseif context =~? "id\\s*=\\s*[\"'][a-zA-Z0-9_ -]*$"
					let search_for = "id"
				endif
				" Handle class name completion
				" 1. Find lines of <link stylesheet>
				" 1a. Check file for @import
				" 2. Extract filename(s?) of stylesheet,
				call cursor(1,1)
				let head = getline(search('<head\>'), search('<\/head>'))
				let headjoined = join(copy(head), ' ')
				if headjoined =~ '<style'
					" Remove possibly confusing CSS operators
					let stylehead = substitute(headjoined, '+>\*[,', ' ', 'g')
					if search_for == 'class'
						let styleheadlines = split(stylehead)
						let headclasslines = filter(copy(styleheadlines), "v:val =~ '\\([a-zA-Z0-9:]\\+\\)\\?\\.[a-zA-Z0-9_-]\\+'")
					else
						let stylesheet = split(headjoined, '[{}]')
						" Get all lines which fit id syntax
						let classlines = filter(copy(stylesheet), "v:val =~ '#[a-zA-Z0-9_-]\\+'")
						" Filter out possible color definitions
						call filter(classlines, "v:val !~ ':\\s*#[a-zA-Z0-9_-]\\+'")
						" Filter out complex border definitions
						call filter(classlines, "v:val !~ '\\(none\\|hidden\\|dotted\\|dashed\\|solid\\|double\\|groove\\|ridge\\|inset\\|outset\\)\\s*#[a-zA-Z0-9_-]\\+'")
						let templines = join(classlines, ' ')
						let headclasslines = split(templines)
						call filter(headclasslines, "v:val =~ '#[a-zA-Z0-9_-]\\+'")
					endif
					let internal = 1
				else
					let internal = 0
				endif
				let styletable = []
				let secimportfiles = []
				let filestable = filter(copy(head), "v:val =~ '\\(@import\\|link.*stylesheet\\)'")
				for line in filestable
					if line =~ "@import"
						let styletable += [matchstr(line, "import\\s\\+\\(url(\\)\\?[\"']\\?\\zs\\f\\+\\ze")]
					elseif line =~ "<link"
						let styletable += [matchstr(line, "href\\s*=\\s*[\"']\\zs\\f\\+\\ze")]
					endif
				endfor
				for file in styletable
					if filereadable(file)
						let stylesheet = readfile(file)
						let secimport = filter(copy(stylesheet), "v:val =~ '@import'")
						if len(secimport) > 0
							for line in secimport
								let secfile = matchstr(line, "import\\s\\+\\(url(\\)\\?[\"']\\?\\zs\\f\\+\\ze")
								let secfile = fnamemodify(file, ":p:h").'/'.secfile
								let secimportfiles += [secfile]
							endfor
						endif
					endif
				endfor
				let cssfiles = styletable + secimportfiles
				let classes = []
				for file in cssfiles
				  	let classlines = []
					if filereadable(file)
						let stylesheet = readfile(file)
						let stylefile = join(stylesheet, ' ')
						let stylefile = substitute(stylefile, '+>\*[,', ' ', 'g')
						if search_for == 'class'
							let stylesheet = split(stylefile)
							let classlines = filter(copy(stylesheet), "v:val =~ '\\([a-zA-Z0-9:]\\+\\)\\?\\.[a-zA-Z0-9_-]\\+'")
						else
							let stylesheet = split(stylefile, '[{}]')
							" Get all lines which fit id syntax
							let classlines = filter(copy(stylesheet), "v:val =~ '#[a-zA-Z0-9_-]\\+'")
							" Filter out possible color definitions
							call filter(classlines, "v:val !~ ':\\s*#[a-zA-Z0-9_-]\\+'")
							" Filter out complex border definitions
							call filter(classlines, "v:val !~ '\\(none\\|hidden\\|dotted\\|dashed\\|solid\\|double\\|groove\\|ridge\\|inset\\|outset\\)\\s*#[a-zA-Z0-9_-]\\+'")
							let templines = join(classlines, ' ')
							let stylelines = split(templines)
							let classlines = filter(stylelines, "v:val =~ '#[a-zA-Z0-9_-]\\+'")

						endif
					endif
					" We gathered classes definitions from all external files
					let classes += classlines
				endfor
				if internal == 1
					let classes += headclasslines
				endif

				if search_for == 'class'
					let elements = {}
					for element in classes
						if element =~ '^\.'
							let class = matchstr(element, '^\.\zs[a-zA-Z][a-zA-Z0-9_-]*\ze')
							let class = substitute(class, ':.*', '', '')
							if has_key(elements, 'common')
								let elements['common'] .= ' '.class
							else
								let elements['common'] = class
							endif
						else
							let class = matchstr(element, '[a-zA-Z1-6]*\.\zs[a-zA-Z][a-zA-Z0-9_-]*\ze')
							let tagname = tolower(matchstr(element, '[a-zA-Z1-6]*\ze.'))
							if tagname != ''
								if has_key(elements, tagname)
									let elements[tagname] .= ' '.class
								else
									let elements[tagname] = class
								endif
							endif
						endif
					endfor

					if has_key(elements, tag) && has_key(elements, 'common')
						let values = split(elements[tag]." ".elements['common'])
					elseif has_key(elements, tag) && !has_key(elements, 'common')
						let values = split(elements[tag])
					elseif !has_key(elements, tag) && has_key(elements, 'common')
						let values = split(elements['common'])
					else
						return []
					endif

				elseif search_for == 'id'
					" Find used IDs
					" 1. Catch whole file
					let filelines = getline(1, line('$'))
					" 2. Find lines with possible id
					let used_id_lines = filter(filelines, 'v:val =~ "id\\s*=\\s*[\"''][a-zA-Z0-9_-]\\+"')
					" 3a. Join all filtered lines
					let id_string = join(used_id_lines, ' ')
					" 3b. And split them to be sure each id is in separate item
					let id_list = split(id_string, 'id\s*=\s*')
					" 4. Extract id values
					let used_id = map(id_list, 'matchstr(v:val, "[\"'']\\zs[a-zA-Z0-9_-]\\+\\ze")')
					let joined_used_id = ','.join(used_id, ',').','

					let allvalues = map(classes, 'matchstr(v:val, ".*#\\zs[a-zA-Z0-9_-]\\+")')

					let values = []

					for element in classes
						if joined_used_id !~ ','.element.','
							let values += [element]
						endif

					endfor

				endif

				" We need special version of sbase
				let classbase = matchstr(context, ".*[\"']")
				let classquote = matchstr(classbase, '.$')

				let entered_class = matchstr(attr, ".*=\\s*[\"']\\zs.*")

				for m in sort(values)
					if m =~? '^'.entered_class
						call add(res, m . classquote)
					elseif m =~? entered_class
						call add(res2, m . classquote)
					endif
				endfor

				return res + res2

			elseif context =~? "style\\s*=\\s*[\"'][^\"']*$"
				return csscomplete#CompleteCSS(0, context)

			endif
			" }}}
			" Complete on-events {{{
			if context =~? 'on[a-z]*\s*=\s*\(''[^'']*\|"[^"]*\)$'
				" We have to:
				" 1. Find external files
				let b:js_extfiles = []
				let l = line('.')
				let c = col('.')
				call cursor(1,1)
				while search('<\@<=script\>', 'W') && line('.') <= l
					if synIDattr(synID(line('.'),col('.')-1,0),"name") !~? 'comment'
						let sname = matchstr(getline('.'), '<script[^>]*src\s*=\s*\([''"]\)\zs.\{-}\ze\1')
						if filereadable(sname)
							let b:js_extfiles += readfile(sname)
						endif
					endif
				endwhile
				" 2. Find at least one <script> tag
				call cursor(1,1)
				let js_scripttags = []
				while search('<script\>', 'W') && line('.') < l
					if matchstr(getline('.'), '<script[^>]*src') == ''
						let js_scripttag = getline(line('.'), search('</script>', 'W'))
						let js_scripttags += js_scripttag
					endif
				endwhile
				let b:js_extfiles += js_scripttags

				" 3. Proper call for javascriptcomplete#CompleteJS
				call cursor(l,c)
				let js_context = matchstr(a:base, '\k\+$')
				let js_shortcontext = substitute(a:base, js_context.'$', '', '')
				let b:compl_context = context
				let b:jsrange = [l, l]
				unlet! l c
				return javascriptcomplete#CompleteJS(0, js_context)

			endif

			" }}}
			let stripbase = matchstr(context, ".*\\(on[a-zA-Z]*\\|style\\|class\\)\\s*=\\s*[\"']\\zs.*")
			" Now we have context stripped from all chars up to style/class.
			" It may fail with some strange style value combinations.
			if stripbase !~ "[\"']"
				return []
			endif
		endif
		" Value of attribute completion {{{
		" If attr contains =\s*[\"'] we catched value of attribute
		if attr =~ "=\s*[\"']" || attr =~ "=\s*$"
			" Let do attribute specific completion
			let attrname = matchstr(attr, '.*\ze\s*=')
			let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")
			let values = []
			" Load data {{{
			if !exists("b:html_doctype")
				call htmlcomplete#CheckDoctype()
			endif
			if !exists("b:html_omni")
				"runtime! autoload/xml/xhtml10s.vim
				call htmlcomplete#LoadData()
			endif
			" }}}
			if attrname == 'href'
				" Now we are looking for local anchors defined by name or id
				if entered_value =~ '^#'
					let file = join(getline(1, line('$')), ' ')
					" Split it be sure there will be one id/name element in
					" item, it will be also first word [a-zA-Z0-9_-] in element
					let oneelement = split(file, "\\(meta \\)\\@<!\\(name\\|id\\)\\s*=\\s*[\"']")
					for i in oneelement
						let values += ['#'.matchstr(i, "^[a-zA-Z][a-zA-Z0-9%_-]*")]
					endfor
				endif
			else
				if has_key(b:html_omni, tag) && has_key(b:html_omni[tag][1], attrname)
					let values = b:html_omni[tag][1][attrname]
				else
					return []
				endif
			endif

			if len(values) == 0
				return []
			endif

			" We need special version of sbase
			let attrbase = matchstr(context, ".*[\"']")
			let attrquote = matchstr(attrbase, '.$')
			if attrquote !~ "['\"]"
				let attrquoteopen = '"'
				let attrquote = '"'
			else
				let attrquoteopen = ''
			endif

			for m in values
				" This if is needed to not offer all completions as-is
				" alphabetically but sort them. Those beginning with entered
				" part will be as first choices
				if m =~ '^'.entered_value
					call add(res, attrquoteopen . m . attrquote)
				elseif m =~ entered_value
					call add(res2, attrquoteopen . m . attrquote)
				endif
			endfor

			return res + res2

		endif
		" }}}
		" Attribute completion {{{
		" Shorten context to not include last word
		let sbase = matchstr(context, '.*\ze\s.*')

		" Load data {{{
		if !exists("b:html_doctype")
			call htmlcomplete#CheckDoctype()
		endif
		if !exists("b:html_omni")
			call htmlcomplete#LoadData()
		endif
		" }}}

		if has_key(b:html_omni, tag)
			let attrs = keys(b:html_omni[tag][1])
		else
			return []
		endif

		for m in sort(attrs)
			if m =~ '^'.attr
				call add(res, m)
			elseif m =~ attr
				call add(res2, m)
			endif
		endfor
		let menu = res + res2
		if has_key(b:html_omni, 'vimxmlattrinfo')
			let final_menu = []
			for i in range(len(menu))
				let item = menu[i]
				if has_key(b:html_omni['vimxmlattrinfo'], item)
					let m_menu = b:html_omni['vimxmlattrinfo'][item][0]
					let m_info = b:html_omni['vimxmlattrinfo'][item][1]
				else
					let m_menu = ''
					let m_info = ''
				endif
				if len(b:html_omni[tag][1][item]) > 0 && b:html_omni[tag][1][item][0] =~ '^\(BOOL\|'.item.'\)$'
					let item = item
					let m_menu = 'Bool'
				else
					let item .= '="'
				endif
				let final_menu += [{'word':item, 'menu':m_menu, 'info':m_info}]
			endfor
		else
			let final_menu = []
			for i in range(len(menu))
				let item = menu[i]
				if len(b:html_omni[tag][1][item]) > 0 && b:html_omni[tag][1][item][0] =~ '^\(BOOL\|'.item.'\)$'
					let item = item
				else
					let item .= '="'
				endif
				let final_menu += [item]
			endfor
			return final_menu

		endif
		return final_menu

	endif
	" }}}
	" Close tag {{{
	let b:unaryTagsStack = "base meta link hr br param img area input col"
	if context =~ '^\/'
		if context =~ '^\/.'
			return []
		else
			let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
			return [opentag.">"]
		endif
	endif
	" }}}
	" Load data {{{
	if !exists("b:html_doctype")
		call htmlcomplete#CheckDoctype()
	endif
	if !exists("b:html_omni")
		"runtime! autoload/xml/xhtml10s.vim
		call htmlcomplete#LoadData()
	endif
	" }}}
	" Tag completion {{{
	" Deal with tag completion.
	let opentag = tolower(xmlcomplete#GetLastOpenTag("b:unaryTagsStack"))
	" MM: TODO: GLOT works always the same but with some weird situation it
	" behaves as intended in HTML but screws in PHP
	if opentag == '' || &filetype == 'php' && !has_key(b:html_omni, opentag)
		" Hack for sometimes failing GetLastOpenTag.
		" As far as I tested fail isn't GLOT fault but problem
		" of invalid document - not properly closed tags and other mish-mash.
		" Also when document is empty. Return list of *all* tags.
	    let tags = keys(b:html_omni)
		call filter(tags, 'v:val !~ "^vimxml"')
	else
		if has_key(b:html_omni, opentag)
			let tags = b:html_omni[opentag][0]
		else
			return []
		endif
	endif
	" }}}

	if exists("uppercase_tag") && uppercase_tag == 1
		let context = tolower(context)
	endif
	" Handle XML keywords: DOCTYPE
	if opentag == ''
		let tags += [
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
				\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/1999/xhtml">'
				\ ]
	endif

	for m in sort(tags)
		if m =~ '^'.context
			call add(res, m)
		elseif m =~ context
			call add(res2, m)
		endif
	endfor
	let menu = res + res2
	if has_key(b:html_omni, 'vimxmltaginfo')
		let final_menu = []
		for i in range(len(menu))
			let item = menu[i]
			if has_key(b:html_omni['vimxmltaginfo'], item)
				let m_menu = b:html_omni['vimxmltaginfo'][item][0]
				let m_info = b:html_omni['vimxmltaginfo'][item][1]
			else
				let m_menu = ''
				let m_info = ''
			endif
			if &filetype == 'html' && exists("uppercase_tag") && uppercase_tag == 1 && item !~ 'DOCTYPE'
				let item = toupper(item)
			endif
			if item =~ 'DOCTYPE'
				let abbr = 'DOCTYPE '.matchstr(item, 'DTD \zsX\?HTML .\{-}\ze\/\/')
			else
				let abbr = item
			endif
			let final_menu += [{'abbr':abbr, 'word':item, 'menu':m_menu, 'info':m_info}]
		endfor
	else
		let final_menu = menu
	endif
	return final_menu

	" }}}
  endif
endfunction

function! htmlcomplete#LoadData() " {{{
	if !exists("b:html_omni_flavor")
		if &filetype == 'html'
			let b:html_omni_flavor = 'html401t'
		else
			let b:html_omni_flavor = 'xhtml10s'
		endif
	endif
	" With that if we still have bloated memory but create new buffer
	" variables only by linking to existing g:variable, not sourcing whole
	" file.
	if exists('g:xmldata_'.b:html_omni_flavor)
		exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
	else
		exe 'runtime! autoload/xml/'.b:html_omni_flavor.'.vim'
		exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
	endif
endfunction
" }}}
function! htmlcomplete#CheckDoctype() " {{{
	if exists('b:html_omni_flavor')
		let old_flavor = b:html_omni_flavor
	else
		let old_flavor = ''
	endif
	let i = 1
	while i < 10 && i < line("$")
		let line = getline(i)
		if line =~ '<!DOCTYPE.*\<DTD HTML 3\.2'
			let b:html_omni_flavor = 'html32'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Transitional'
			let b:html_omni_flavor = 'html40t'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Frameset'
			let b:html_omni_flavor = 'html40f'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0'
			let b:html_omni_flavor = 'html40s'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Transitional'
			let b:html_omni_flavor = 'html401t'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Frameset'
			let b:html_omni_flavor = 'html401f'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01'
			let b:html_omni_flavor = 'html401s'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Transitional'
			let b:html_omni_flavor = 'xhtml10t'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Frameset'
			let b:html_omni_flavor = 'xhtml10f'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Strict'
			let b:html_omni_flavor = 'xhtml10s'
			let b:html_doctype = 1
			break
		elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.1'
			let b:html_omni_flavor = 'xhtml11'
			let b:html_doctype = 1
			break
		endif
		let i += 1
	endwhile
	if !exists("b:html_doctype")
		return
	else
		" Tie g:xmldata with b:html_omni this way we need to sourca data file only
		" once, not every time per buffer.
		if old_flavor == b:html_omni_flavor
			return
		else
			if exists('g:xmldata_'.b:html_omni_flavor)
				exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
			else
				exe 'runtime! autoload/xml/'.b:html_omni_flavor.'.vim'
				exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
			endif
			return
		endif
	endif
endfunction
" }}}
" vim:set foldmethod=marker:
PK�j�Z�@�//"vim80/autoload/netrw_gitignore.vimnu�[���" netrw_gitignore#Hide: gitignore-based hiding
"  Function returns a string of comma separated patterns convenient for
"  assignment to `g:netrw_list_hide` option.
"  Function can take additional filenames as arguments, example:
"  netrw_gitignore#Hide('custom_gitignore1', 'custom_gitignore2')
"
" Usage examples:
"  let g:netrw_list_hide = netrw_gitignore#Hide()
"  let g:netrw_list_hide = netrw_gitignore#Hide() . 'more,hide,patterns'
"
" Copyright:    Copyright (C) 2013 Bruno Sutic {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               netrw_gitignore.vim is provided *as is* and comes with no
"               warranty of any kind, either expressed or implied. By using
"               this plugin, you agree that in no event will the copyright
"               holder be liable for any damages resulting from the use
"               of this software.
function! netrw_gitignore#Hide(...)
  let additional_files = a:000

  let default_files = ['.gitignore', '.git/info/exclude']

  " get existing global/system gitignore files
  let global_gitignore = expand(substitute(system("git config --global core.excludesfile"), '\n', '', 'g'))
  if global_gitignore !=# ''
    let default_files = add(default_files, global_gitignore)
  endif
  let system_gitignore = expand(substitute(system("git config --system core.excludesfile"), '\n', '', 'g'))
  if system_gitignore !=# ''
    let default_files = add(default_files, system_gitignore)
  endif

  " append additional files if given as function arguments
  if additional_files !=# []
    let files = extend(default_files, additional_files)
  else
    let files = default_files
  endif

  " keep only existing/readable files
  let gitignore_files = []
  for file in files
    if filereadable(file)
      let gitignore_files = add(gitignore_files, file)
    endif
  endfor

  " get contents of gitignore patterns from those files
  let gitignore_lines = []
  for file in gitignore_files
    for line in readfile(file)
      " filter empty lines and comments
      if line !~# '^#' && line !~# '^$'
        let gitignore_lines = add(gitignore_lines, line)
      endif
    endfor
  endfor

  " convert gitignore patterns to Netrw/Vim regex patterns
  let escaped_lines = []
  for line in gitignore_lines
    let escaped = line
    let escaped = substitute(escaped, '\*\*', '*', 'g')
    let escaped = substitute(escaped, '\.', '\\.', 'g')
    let escaped = substitute(escaped, '\$', '\\$', 'g')
    let escaped = substitute(escaped, '*', '.*', 'g')
    " correction: dot, dollar and asterisks chars shouldn't be escaped when
    " within regex matching groups.
    let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\.', '\.', 'g')
    let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\$', '\$', 'g')
    let escaped = substitute(escaped, '\(\[[^]]*\)\zs\.\*', '*', 'g')
    let escaped_lines = add(escaped_lines, escaped)
  endfor

  return join(escaped_lines, ',')
endfunction
PK�j�Z^�r̷�vim80/print/iso-8859-3.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-3
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-3[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Hbar /breve /sterling /currency /.notdef /Hcircumflex /section
/dieresis /Idot /Scedilla /Gbreve /Jcircumflex /hyphen /.notdef /Zdotaccent
/degree /hbar /twosuperior /threesuperior /acute /mu /hcircumflex /periodcentered
/cedilla /dotlessi /scedilla /gbreve /jcircumflex /onehalf /.notdef /zdotaccent
/Agrave /Aacute /Acircumflex /.notdef /Adieresis /Cdotaccent /Ccircumflex /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/.notdef /Ntilde /Ograve /Oacute /Ocircumflex /Gdotaccent /Odieresis /multiply
/Gcircumflex /Ugrave /Uacute /Ucircumflex /Udieresis /Ubreve /Scircumflex /germandbls
/agrave /aacute /acircumflex /.notdef /adieresis /cdotaccent /ccircumflex /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/.notdef /ntilde /ograve /oacute /ocircumflex /gdotaccent /odieresis /divide
/gcircumflex /ugrave /uacute /ucircumflex /udieresis /ubreve /scircumflex /dotaccent]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�e��vim80/print/cp1252.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cp1252
%%Version: 1.0 0
%%EndComments
/VIM-cp1252[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/Euro /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /Zcaron /.notdef
/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright /oe /.notdef /zcaron /Ydieresis
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z2Q;�PPvim80/print/iso-8859-10.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-10
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-10[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Aogonek /Emacron /Gcedilla /Imacron /Itilde /Kcedilla /section
/Lcedilla /Dcroat /Scaron /Tbar /Zcaron /endash /Umacron /Eng
/degree /aogonek /emacron /gcedilla /imacron /itilde /kcedilla /periodcentered
/lcedilla /dcroat /scaron /tbar /zcaron /emdash /umacron /eng
/Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek
/Ccaron /Eacute /Eogonek /Edieresis /Edot /Iacute /Icircumflex /Idieresis
/Eth /Ncedilla /Omacron /Oacute /Ocircumflex /Otilde /Odieresis /Utilde
/Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
/amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek
/ccaron /eacute /eogonek /edieresis /edot /iacute /icircumflex /idieresis
/eth /ncedilla /omacron /oacute /ocircumflex /otilde /odieresis /utilde
/oslash /uogonek /uacute /ucircumflex /udieresis /yacute /thorn /kgreenlandic]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�W)R??vim80/print/iso-8859-8.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-8
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-8[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /.notdef /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /multiply /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /divide /guillemotright /onequarter /onehalf /threequarters /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /underscoredbl
/alef /bet /gimel /dalet /he /vav /zayin /het
/tet /yod /finalkaf /kaf /lamed /finalmem /mem /finalnun
/nun /samekh /ayin /finalpe /pe /finaltsadi /tsadi /qof
/resh /shin /tav /.notdef /.notdef /.notdef /.notdef /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z4� ��vim80/print/jis_roman.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-jis_roman
%%Version: 1.0 0
%%EndComments
% Different to ASCII at code points 92 and 126
/VIM-jis_roman[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /yen /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /overline /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�5b���vim80/print/cns_roman.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cns_roman
%%Version: 1.0 0
%%EndComments
% Different to ASCII at code point 126
/VIM-cns_roman[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /overline /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z3�
���vim80/print/prolog.psnu�[���%!PS-Adobe-3.0 Resource-ProcSet
%%Title: VIM-Prolog
%%Version: 1.4 1
%%EndComments
% Editing of this file is NOT RECOMMENDED.  You run a very good risk of causing
% all PostScript printing from VIM failing if you do.  PostScript is not called
% a write-only language for nothing!
/packedarray where not{userdict begin/setpacking/pop load def/currentpacking
false def end}{pop}ifelse/CP currentpacking def true setpacking
/bd{bind def}bind def/ld{load def}bd/ed{exch def}bd/d/def ld
/db{dict begin}bd/cde{currentdict end}bd
/T true d/F false d
/SO null d/sv{/SO save d}bd/re{SO restore}bd
/L2 systemdict/languagelevel 2 copy known{get exec}{pop pop 1}ifelse 2 ge d
/m/moveto ld/s/show ld /ms{m s}bd /g/setgray ld/r/setrgbcolor ld/sp{showpage}bd
/gs/gsave ld/gr/grestore ld/cp/currentpoint ld
/ul{gs UW setlinewidth cp UO add 2 copy newpath m 3 1 roll add exch lineto
stroke gr}bd
/bg{gs r cp BO add 4 -2 roll rectfill gr}bd
/sl{90 rotate 0 exch translate}bd
L2{
/sspd{mark exch{setpagedevice}stopped cleartomark}bd
/nc{1 db/NumCopies ed cde sspd}bd
/sps{3 db/Orientation ed[3 1 roll]/PageSize ed/ImagingBBox null d cde sspd}bd
/dt{2 db/Tumble ed/Duplex ed cde sspd}bd
/c{1 db/Collate ed cde sspd}bd
}{
/nc{/#copies ed}bd
/sps{statusdict/setpage get exec}bd
/dt{statusdict/settumble 2 copy known{get exec}{pop pop pop}ifelse
statusdict/setduplexmode 2 copy known{get exec}{pop pop pop}ifelse}bd
/c{pop}bd
}ifelse
/ffs{findfont exch scalefont d}bd/sf{setfont}bd
/ref{1 db findfont dup maxlength dict/NFD ed{exch dup/FID ne{exch NFD 3 1 roll
put}{pop pop}ifelse}forall/Encoding findresource dup length 256 eq{NFD/Encoding
3 -1 roll put}{pop}ifelse NFD dup/FontType get 3 ne{/CharStrings}{/CharProcs}
ifelse 2 copy known{2 copy get dup maxlength dict copy[/questiondown/space]{2
copy known{2 copy get 2 index/.notdef 3 -1 roll put pop exit}if pop}forall put
}{pop pop}ifelse dup NFD/FontName 3 -1 roll put NFD definefont pop end}bd
CP setpacking
(\004)cvn{}bd
% vim:ff=unix:
%%EOF
PK�j�Z"~�$��vim80/print/cp1257.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cp1257
%%Version: 1.0 0
%%EndComments
/VIM-cp1257[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl
/.notdef /perthousand /.notdef /guilsinglleft /.notdef /.notdef /.notdef /.notdef
/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/.notdef /trademark /.notdef /guilsinglright /.notdef /.notdef /.notdef /.notdef
/space /caron /breve /sterling /currency /.notdef /brokenbar /section
/dieresis /copyright /Rcedilla /guillemotleft /logicalnot /hyphen /registered /AE
/degree /plusminus /ogonek /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /rcedilla /guillemotright /onequarter /onehalf /threequarters /ae
/Aogonek /Iogonek /Amacron /Cacute /Adieresis /Aring /Eogonek /Emacron
/Ccaron /Eacute /Zacute /Edot /Gcedilla /Kcedilla /Imacron /Lcedilla
/Scaron /Nacute /Ncedilla /Oacute /Omacron /Otilde /Odieresis /multiply
/Uogonek /Lslash /Sacute /Umacron /Udieresis /Zdotaccent /Zcaron /germandbls
/aogonek /iogonek /amacron /cacute /adieresis /aring /eogonek /emacron
/ccaron /eacute /zacute /edot /gcedilla /kcedilla /imacron /lcedilla
/scaron /nacute /ncedilla /oacute /omacron /otilde /odieresis /divide
/uogonek /lslash /sacute /umacron /udieresis /zdotaccent /zcaron /dotaccent]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�ZL8�6��vim80/print/latin1.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-latin1
%%Version: 1.0 0
%%EndComments
/VIM-latin1[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Zg��r		vim80/print/iso-8859-5.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-5
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-5[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /afii10023 /afii10051 /afii10052 /afii10053 /afii10054 /afii10055 /afii10056
/afii10057 /afii10058 /afii10059 /afii10060 /afii10061 /.notdef /afii10062 /afii10145
/afii10017 /afii10018 /afii10019 /afii10020 /afii10021 /afii10022 /afii10024 /afii10025
/afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032 /afii10033
/afii10034 /afii10035 /afii10036 /afii10037 /afii10038 /afii10039 /afii10040 /afii10041
/afii10042 /afii10043 /afii10044 /afii10045 /afii10046 /afii10047 /afii10048 /afii10049
/afii10065 /afii10066 /afii10067 /afii10068 /afii10069 /afii10070 /afii10072 /afii10073
/afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080 /afii10081
/afii10082 /afii10083 /afii10084 /afii10085 /afii10086 /afii10087 /afii10088 /afii10089
/afii10090 /afii10091 /afii10092 /afii10093 /afii10094 /afii10095 /afii10096 /afii10097
/afii61352 /afii10071 /afii10099 /afii10100 /afii10101 /afii10102 /afii10103 /afii10104
/afii10105 /afii10106 /afii10107 /afii10108 /afii10109 /section /afii10110 /afii10193]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�;~ō�vim80/print/iso-8859-14.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-14
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-14[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /uni1E02 /uni1E03 /sterling /Cdotaccent /cdotaccent /uni1E0A /section
/Wgrave /copyright /Wacute /uni1E0B /Ygrave /hyphen /registered /Ydieresis
/uni1E1E /uni1E1F /Gdotaccent /gdotaccent /uni1E40 /uni1E41 /paragraph /uni1E56
/wgrave /uni1E57 /wacute /uni1E60 /ygrave /Wdieresis /wdieresis /uni1E61
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Wcircumflex /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /uni1E6A
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Ycircumflex /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/wcircumflex /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /uni1E6B
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /ycircumflex /ydieresis]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�ZoP��llvim80/print/iso-8859-2.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-2
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-2[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section
/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent
/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron
/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent
/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
/Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls
/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
/dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z>���TTvim80/print/iso-8859-4.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-4
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-4[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Aogonek /kgreenlandic /Rcedilla /currency /Itilde /Lcedilla /section
/dieresis /Scaron /Emacron /Gcedilla /Tbar /.notdef /Zcaron /macron
/degree /aogonek /ogonek /rcedilla /acute /itilde /lcedilla /caron
/cedilla /scaron /emacron /gcedilla /tbar /Eng /zcaron /eng
/Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek
/Ccaron /Eacute /Eogonek /Edieresis /Edot /Iacute /Icircumflex /Imacron
/Dcroat /Ncedilla /Omacron /Kcedilla /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Utilde /Umacron /germandbls
/amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek
/ccaron /eacute /eogonek /edieresis /edot /iacute /icircumflex /imacron
/dcroat /ncedilla /omacron /kcedilla /ocircumflex /otilde /odieresis /divide
/oslash /uogonek /uacute /ucircumflex /udieresis /utilde /umacron /dotaccent]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�Y,���vim80/print/ascii.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-ascii
%%Version: 1.0 0
%%EndComments
/VIM-ascii[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�J��vim80/print/ks_roman.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-ks_roman
%%Version: 1.0 0
%%EndComments
% Different to ASCII at code points 96 and 126
/VIM-ks_roman[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /won /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /overline /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�Ґ�YYvim80/print/cp1255.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cp1255
%%Version: 1.0 0
%%EndComments
/VIM-cp1255[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /.notdef /guilsinglleft /.notdef /.notdef /.notdef /.notdef
/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/tilde /trademark /.notdef /guilsinglright /.notdef /.notdef /.notdef /.notdef
/space /.notdef /cent /sterling /newsheqelsign /yen /brokenbar /section
/dieresis /copyright /.notdef /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/.notdef /onesuperior /.notdef /guillemotright /onequarter /onehalf /threequarters /.notdef
/sheva /hatafsegol /hatafpatah /hatafqamats /hiriq /tsere /segol /patah
/qamats /holam /.notdef /qubuts /dagesh /meteg /maqaf /rafe
/paseq /shindot /sindot /sofpasuq /doublevav /vavyod /doubleyod /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/alef /bet /gimel /dalet /he /vav /zayin /het
/tet /yod /finalkaf /kaf /lamed /finalmem /mem /finalnun
/nun /samekh /ayin /finalpe /pe /finaltsadi /tsadi /qof
/resh /shin /tav /.notdef /.notdef /.notdef /.notdef /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�ZU�}
N	N	vim80/print/cp1251.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cp1251
%%Version: 1.0 0
%%EndComments
/VIM-cp1251[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/afii10051 /afii10052 /quotesinglbase /afii10100 /quotedblbase /ellipsis /dagger /daggerdbl
/Euro /perthousand /afii10058 /guilsinglleft /afii10059 /afii10061 /afii10060 /afii10145
/afii10099 /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/.notdef /trademark /afii10106 /guilsinglright /afii10107 /afii10109 /afii10108 /afii10193
/space /afii10062 /afii10110 /afii10057 /currency /afii10050 /brokenbar /section
/afii10023 /copyright /afii10053 /guillemotleft /logicalnot /hyphen /registered /afii10056
/degree /plusminus /afii10055 /afii10103 /afii10098 /mu /paragraph /periodcentered
/afii10071 /afii61352 /afii10101 /guillemotright /afii10105 /afii10054 /afii10102 /afii10104
/afii10017 /afii10018 /afii10019 /afii10020 /afii10021 /afii10022 /afii10024 /afii10025
/afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032 /afii10033
/afii10034 /afii10035 /afii10036 /afii10037 /afii10038 /afii10039 /afii10040 /afii10041
/afii10042 /afii10043 /afii10044 /afii10045 /afii10046 /afii10047 /afii10048 /afii10049
/afii10065 /afii10066 /afii10067 /afii10068 /afii10069 /afii10070 /afii10072 /afii10073
/afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080 /afii10081
/afii10082 /afii10083 /afii10084 /afii10085 /afii10086 /afii10087 /afii10088 /afii10089
/afii10090 /afii10091 /afii10092 /afii10093 /afii10094 /afii10095 /afii10096 /afii10097]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�U����vim80/print/dec-mcs.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-dec-mcs
%%Version: 1.0 0
%%EndComments
/VIM-dec-mcs[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /exclamdown /cent /sterling /.notdef /yen /.notdef /section
/currency /copyright /ordfeminine /guillemotleft /.notdef /.notdef /.notdef /.notdef
/degree /plusminus /twosuperior /threesuperior /.notdef /mu /paragraph /periodcentered
/.notdef /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /.notdef /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/.notdef /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Ydieresis /.notdef /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/.notdef /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
/oslash /ugrave /uacute /ucircumflex /udieresis /ydieresis /.notdef /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�|F'��vim80/print/mac-roman.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-mac-roman
%%Version: 1.0 0
%%EndComments
/VIM-mac-roman[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute
/agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave
/ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute
/ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis
/dagger /degree /cent /sterling /section /bullet /paragraph /germandbls
/registered /copyright /trademark /acute /dieresis /notequal /AE /Oslash
/infinity /plusminus /lessequal /greaterequal /yen /mu /partialdiff /summation
/Pi /pi /integral /ordfeminine /ordmasculine /Omega /ae /oslash
/questiondown /exclamdown /logicalnot /radical /florin /approxequal /delta /guillemotleft
/guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe
/endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /lozenge
/ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl
/daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute
/Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex
/heart /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde
/macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z��]]vim80/print/iso-8859-7.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-7
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-7[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /quotereversed /quoteright /sterling /.notdef /.notdef /brokenbar /section
/dieresis /copyright /.notdef /guillemotleft /logicalnot /.notdef /.notdef /emdash
/degree /plusminus /twosuperior /threesuperior /tonos /dieresistonos /Alphatonos /periodcentered
/Epsilontonos /Etatonos /Iotatonos /guillemotright /Omicrontonos /onehalf /Upsilontonos /Omegatonos
/iotadieresistonos /Alpha /Beta /Gamma /Delta /Epsilon /Zeta /Eta
/Theta /Iota /Kappa /Lambda /Mu /Nu /Xi /Omicron
/Pi /Rho /.notdef /Sigma /Tau /Upsilon /Phi /Chi
/Psi /Omega /Iotadieresis /Upsilondieresis /alphatonos /epsilontonos /etatonos /iotatonos
/upsilondieresistonos /alpha /beta /gamma /delta /epsilon /zeta /eta
/theta /iota /kappa /lambda /mu /nu /xi /omicron
/pi /rho /sigma1 /sigma /tau /upsilon /phi /chi
/psi /omega /iotadieresis /upsilondieresis /omicrontonos /upsilontonos /omegatonos /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�ZJ�����vim80/print/cp1254.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cp1254
%%Version: 1.0 0
%%EndComments
/VIM-cp1254[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/Euro /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /Zcaron /.notdef
/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright /oe /.notdef /zcaron /Ydieresis
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Gbreve /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Idotaccent /Scedilla /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/gbreve /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /dotlessi /scedilla /ydieresis]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�I�,��vim80/print/iso-8859-15.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-15
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-15[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclamdown /cent /sterling /Euro /yen /Scaron /section
/scaron /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /Zcaron /mu /paragraph /periodcentered
/zcaron /onesuperior /ordmasculine /guillemotright /OE /oe /Ydieresis /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z��i		vim80/print/koi8-u.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-koi8-u
%%Version: 1.0 0
%%EndComments
/VIM-koi8-u[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/SF100000 /SF110000 /SF010000 /SF030000 /SF020000 /SF040000 /SF080000 /SF090000
/SF060000 /SF070000 /SF050000 /upblock /dnblock /block /lfblock /rtblock
/ltshade /shade /dkshade /integraltp /filledbox /bullet /radical /approxequal
/lessequal /greaterequal /space /integralbt /degree /twosuperior /periodcentered /divide
/SF430000 /SF240000 /SF510000 /afii10071 /afii10101 /SF390000 /afii10103 /afii10104
/SF250000 /SF500000 /SF490000 /SF380000 /SF280000 /afii10098 /SF260000 /SF360000
/SF370000 /SF420000 /SF190000 /afii10023 /afii10053 /SF230000 /afii10055 /afii10056
/SF410000 /SF450000 /SF460000 /SF400000 /SF540000 /afii10050 /SF440000 /copyright
/afii10096 /afii10065 /afii10066 /afii10088 /afii10069 /afii10070 /afii10086 /afii10068
/afii10087 /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080
/afii10081 /afii10097 /afii10082 /afii10083 /afii10084 /afii10085 /afii10072 /afii10067
/afii10094 /afii10093 /afii10073 /afii10090 /afii10095 /afii10091 /afii10089 /afii10092
/afii10048 /afii10017 /afii10018 /afii10040 /afii10021 /afii10022 /afii10038 /afii10020
/afii10039 /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032
/afii10033 /afii10049 /afii10034 /afii10035 /afii10036 /afii10037 /afii10024 /afii10019
/afii10046 /afii10045 /afii10025 /afii10042 /afii10047 /afii10043 /afii10041 /afii10044]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�e�܊�vim80/print/iso-8859-13.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-13
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-13[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /quotedblright /cent /sterling /currency /quotedblbase /brokenbar /section
/Oslash /copyright /Rcedilla /guillemotleft /logicalnot /hyphen /registered /AE
/degree /plusminus /twosuperior /threesuperior /quotedblleft /mu /paragraph /periodcentered
/oslash /onesuperior /rcedilla /guillemotright /onequarter /onehalf /threequarters /ae
/Aogonek /Iogonek /Amacron /Cacute /Adieresis /Aring /Eogonek /Emacron
/Ccaron /Eacute /Zacute /Edot /Gcedilla /Kcedilla /Imacron /Lcedilla
/Scaron /Nacute /Ncedilla /Oacute /Omacron /Otilde /Odieresis /multiply
/Uogonek /Lslash /Sacute /Umacron /Udieresis /Zdotaccent /Zcaron /germandbls
/aogonek /iogonek /amacron /cacute /adieresis /aring /eogonek /emacron
/ccaron /eacute /zacute /edot /gcedilla /kcedilla /imacron /lcedilla
/scaron /nacute /ncedilla /oacute /omacron /otilde /odieresis /divide
/uogonek /lslash /sacute /umacron /udieresis /zdotaccent /zcaron /quoteright]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�}�_MMvim80/print/ebcdic-uk.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-ebcdic-uk
%%Version: 1.0 0
%%EndComments
/VIM-ebcdic-uk[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /dollar /period /less /parenleft /plus /bar
/ampersand /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /exclam /sterling /asterisk /parenright /semicolon /logicalnot
/minus /slash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /brokenbar /comma /percent /underscore /greater /question
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /quotereversed /colon /numbersign /at /quoteright /equal /quotedbl
/.notdef /a /b /c /d /e /f /g
/h /i /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /j /k /l /m /n /o /p
/q /r /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /macron /s /t /u /v /w /x
/y /z /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/braceleft /A /B /C /D /E /F /G
/H /I /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/braceright /J /K /L /M /N /O /P
/Q /R /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/backslash /.notdef /S /T /U /V /W /X
/Y /Z /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/zero /one /two /three /four /five /six /seven
/eight /nine /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z2��vim80/print/gb_roman.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-gb_roman
%%Version: 1.0 0
%%EndComments
% Different to ASCII at code points 36 and 126
/VIM-gb_roman[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /yuan /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /overline /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Zx�r�{{vim80/print/hp-roman8.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-hp-roman8
%%Version: 1.0 0
%%EndComments
/VIM-hp-roman8[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Agrave /Acircumflex /Egrave /Ecircumflex /Edieresis /Icircumflex /Idieresis
/acute /grave /circumflex /dieresis /tilde /Ugrave /Ucircumflex /lira
/macron /Yacute /yacute /degree /Ccedilla /ccedilla /Ntilde /ntilde
/exclamdown /questiondown /currency /sterling /yen /section /florin /cent
/acircumflex /ecircumflex /ocircumflex /ucircumflex /aacute /eacute /oacute /uacute
/agrave /egrave /ograve /ugrave /adieresis /edieresis /odieresis /udieresis
/Aring /icircumflex /Oslash /AE /aring /iacute /oslash /ae
/Adieresis /igrave /Odieresis /Udieresis /Eacute /idieresis /germandbls /Ocircumflex
/Aacute /Atilde /atilde /Eth /eth /Iacute /Igrave /Oacute
/Ograve /Otilde /otilde /Scaron /scaron /Uacute /Ydieresis /ydieresis
/Thorn /thorn /periodcentered /mu /paragraph /threequarters /hyphen /onequarter
/onehalf /ordfeminine /ordmasculine /guillemotleft /filledbox /guillemotright /plusminus /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Zгc���vim80/print/iso-8859-9.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-9
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-9[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Gbreve /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Idotaccent /Scedilla /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/gbreve /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /dotlessi /scedilla /ydieresis]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�~q		vim80/print/koi8-r.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-koi8-r
%%Version: 1.0 0
%%EndComments
/VIM-koi8-r[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/SF100000 /SF110000 /SF010000 /SF030000 /SF020000 /SF040000 /SF080000 /SF090000
/SF060000 /SF070000 /SF050000 /upblock /dnblock /block /lfblock /rtblock
/ltshade /shade /dkshade /integraltp /filledbox /bullet /radical /approxequal
/lessequal /greaterequal /space /integralbt /degree /twosuperior /periodcentered /divide
/SF430000 /SF240000 /SF510000 /afii10071 /SF520000 /SF390000 /SF220000 /SF210000
/SF250000 /SF500000 /SF490000 /SF380000 /SF280000 /SF270000 /SF260000 /SF360000
/SF370000 /SF420000 /SF190000 /afii10023 /SF200000 /SF230000 /SF470000 /SF480000
/SF410000 /SF450000 /SF460000 /SF400000 /SF540000 /SF530000 /SF440000 /copyright
/afii10096 /afii10065 /afii10066 /afii10088 /afii10069 /afii10070 /afii10086 /afii10068
/afii10087 /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080
/afii10081 /afii10097 /afii10082 /afii10083 /afii10084 /afii10085 /afii10072 /afii10067
/afii10094 /afii10093 /afii10073 /afii10090 /afii10095 /afii10091 /afii10089 /afii10092
/afii10048 /afii10017 /afii10018 /afii10040 /afii10021 /afii10022 /afii10038 /afii10020
/afii10039 /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032
/afii10033 /afii10049 /afii10034 /afii10035 /afii10036 /afii10037 /afii10024 /afii10019
/afii10046 /afii10045 /afii10025 /afii10042 /afii10047 /afii10043 /afii10041 /afii10044]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z	���==vim80/print/cidfont.psnu�[���%!PS-Adobe-3.0 Resource-ProcSet
%%Title: VIM-CIDFont
%%Version: 1.0 0
%%EndComments
% Editing of this file is NOT RECOMMENDED.  You run a very good risk of causing
% all PostScript printing from VIM failing if you do.  PostScript is not called
% a write-only language for nothing!
/CP currentpacking d T setpacking
/SB 256 string d
/CIDN? systemdict/composefont known d /GS? systemdict/.makeoperator known d
CIDN?{
GS?{/vim_findresource{2 copy resourcestatus not{1 index SB cvs runlibfile}{
pop pop}ifelse findresource}bd/vim_composefont{0 get/CIDFont vim_findresource
exch/CMap vim_findresource exch[exch]composefont pop}bd}{/vim_findresource
/findresource ld/vim_composefont{composefont pop}bd}ifelse
}{
/vim_fontname{0 get SB cvs length dup SB exch(-)putinterval 1 add dup SB exch
dup 256 exch sub getinterval 3 -1 roll exch cvs length add SB exch 0 exch
getinterval cvn}bd/vim_composefont{vim_fontname findfont d}bd
} ifelse
/cfs{exch scalefont d}bd
/sffs{findfont 3 1 roll 1 index mul exch 2 index/FontMatrix get matrix copy
scale makefont d}bd
CP setpacking
% vim:ff=unix:
%%EOF
PK�j�Z�!-���vim80/print/cp1250.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cp1250
%%Version: 1.0 0
%%EndComments
/VIM-cp1250[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /tilde /.notdef
/Euro /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl
/.notdef /perthousand /Scaron /guilsinglleft /Sacute /Tcaron /Zcaron /Zacute
/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/.notdef /trademark /scaron /guilsinglright /sacute /tcaron /zcaron /zacute
/space /caron /breve /Lslash /currency /Aogonek /brokenbar /section
/dieresis /copyright /Scedilla /guillemotleft /logicalnot /hyphen /registered /Zdotaccent
/degree /plusminus /ogonek /lslash /acute /mu /paragraph /periodcentered
/cedilla /aogonek /scedilla /guillemotright /Lcaron /hungarumlaut /lcaron /zdotaccent
/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
/Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls
/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
/dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Zuݱ9RRvim80/print/iso-8859-11.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-iso-8859-11
%%Version: 1.0 0
%%EndComments
/VIM-iso-8859-11[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /uni0E01 /uni0E02 /uni0E03 /uni0E04 /uni0E05 /uni0E06 /uni0E07
/uni0E08 /uni0E09 /uni0E0A /uni0E0B /uni0E0C /uni0E0D /uni0E0E /uni0E0F
/uni0E10 /uni0E11 /uni0E12 /uni0E13 /uni0E14 /uni0E15 /uni0E16 /uni0E17
/uni0E18 /uni0E19 /uni0E1A /uni0E1B /uni0E1C /uni0E1D /uni0E1E /uni0E1F
/uni0E20 /uni0E21 /uni0E22 /uni0E23 /uni0E24 /uni0E25 /uni0E26 /uni0E27
/uni0E28 /uni0E29 /uni0E2A /uni0E2B /uni0E2C /uni0E2D /uni0E2E /uni0E2F
/uni0E30 /uni0E31 /uni0E32 /uni0E33 /uni0E34 /uni0E35 /uni0E36 /uni0E37
/uni0E38 /uni0E39 /uni0E3A /.notdef /space /.notdef /.notdef /uni0E3F
/uni0E40 /uni0E41 /uni0E42 /uni0E43 /uni0E44 /uni0E45 /uni0E46 /uni0E47
/uni0E48 /uni0E49 /uni0E4A /uni0E4B /uni0E4C /uni0E4D /uni0E4E /uni0E4F
/uni0E50 /uni0E51 /uni0E52 /uni0E53 /uni0E54 /uni0E55 /uni0E56 /uni0E57
 /uni0E58 /uni0E59 /uni0E5A /.notdef /.notdef /.notdef /.notdef /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�	�yyvim80/print/cp1253.psnu�[���%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cp1253
%%Version: 1.0 0
%%EndComments
/VIM-cp1253[
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
/.notdef /perthousand /.notdef /guilsinglleft /.notdef /.notdef /.notdef /.notdef
/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/.notdef /trademark /.notdef /guilsinglright /.notdef /.notdef /.notdef /.notdef
/space /dieresistonos /Alphatonos /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /emdash
/degree /plusminus /twosuperior /threesuperior /tonos /mu /paragraph /periodcentered
/Epsilontonos /Etatonos /Iotatonos /guillemotright /Omicrontonos /onehalf /Upsilontonos /Omegatonos
/iotadieresistonos /Alpha /Beta /Gamma /Delta /Epsilon /Zeta /Eta
/Theta /Iota /Kappa /Lambda /Mu /Nu /Xi /Omicron
/Pi /Rho /.notdef /Sigma /Tau /Upsilon /Phi /Chi
/Psi /Omega /Iotadieresis /Upsilondieresis /alphatonos /epsilontonos /etatonos /iotatonos
/upsilondieresistonos /alpha /beta /gamma /delta /epsilon /zeta /eta
/theta /iota /kappa /lambda /mu /nu /xi /omicron
/pi /rho /sigma1 /sigma /tau /upsilon /phi /chi
/psi /omega /iotadieresis /upsilondieresis /omicrontonos /upsilontonos /omegatonos /.notdef]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF
PK�j�Z�`-FG
G
vim80/mswin.vimnu�[���" Set options and add mapping such that Vim behaves a lot like MS-Windows
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2017 Oct 28

" bail out if this isn't wanted (mrsvim.vim uses this).
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
  finish
endif

" set the 'cpoptions' to its Vim default
if 1	" only do this when compiled with expression evaluation
  let s:save_cpo = &cpoptions
endif
set cpo&vim

" set 'selection', 'selectmode', 'mousemodel' and 'keymodel' for MS-Windows
behave mswin

" backspace and cursor keys wrap to previous/next line
set backspace=indent,eol,start whichwrap+=<,>,[,]

" backspace in Visual mode deletes selection
vnoremap <BS> d

if has("clipboard")
    " CTRL-X and SHIFT-Del are Cut
    vnoremap <C-X> "+x
    vnoremap <S-Del> "+x

    " CTRL-C and CTRL-Insert are Copy
    vnoremap <C-C> "+y
    vnoremap <C-Insert> "+y

    " CTRL-V and SHIFT-Insert are Paste
    map <C-V>		"+gP
    map <S-Insert>		"+gP

    cmap <C-V>		<C-R>+
    cmap <S-Insert>		<C-R>+
endif

" Pasting blockwise and linewise selections is not possible in Insert and
" Visual mode without the +virtualedit feature.  They are pasted as if they
" were characterwise instead.
" Uses the paste.vim autoload script.
" Use CTRL-G u to have CTRL-Z only undo the paste.

if 1
    exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i']
    exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v']
endif

imap <S-Insert>		<C-V>
vmap <S-Insert>		<C-V>

" Use CTRL-Q to do what CTRL-V used to do
noremap <C-Q>		<C-V>

" Use CTRL-S for saving, also in Insert mode
noremap <C-S>		:update<CR>
vnoremap <C-S>		<C-C>:update<CR>
inoremap <C-S>		<C-O>:update<CR>

" For CTRL-V to work autoselect must be off.
" On Unix we have two selections, autoselect can be used.
if !has("unix")
  set guioptions-=a
endif

" CTRL-Z is Undo; not in cmdline though
noremap <C-Z> u
inoremap <C-Z> <C-O>u

" CTRL-Y is Redo (although not repeat); not in cmdline though
noremap <C-Y> <C-R>
inoremap <C-Y> <C-O><C-R>

" Alt-Space is System menu
if has("gui")
  noremap <M-Space> :simalt ~<CR>
  inoremap <M-Space> <C-O>:simalt ~<CR>
  cnoremap <M-Space> <C-C>:simalt ~<CR>
endif

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

" CTRL-Tab is Next window
noremap <C-Tab> <C-W>w
inoremap <C-Tab> <C-O><C-W>w
cnoremap <C-Tab> <C-C><C-W>w
onoremap <C-Tab> <C-C><C-W>w

" CTRL-F4 is Close window
noremap <C-F4> <C-W>c
inoremap <C-F4> <C-O><C-W>c
cnoremap <C-F4> <C-C><C-W>c
onoremap <C-F4> <C-C><C-W>c

if has("gui")
  " CTRL-F is the search dialog
  noremap  <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/"
  inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/"
  cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/"

  " CTRL-H is the replace dialog,
  " but in console, it might be backspace, so don't map it there
  nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>"
  inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>"
  cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>"
endif

" restore 'cpoptions'
set cpo&
if 1
  let &cpoptions = s:save_cpo
  unlet s:save_cpo
endif
PK�j�Z+�[�%�%�vim80/menu.vimnu�[���" Vim support file to define the default menus
" You can also use this as a start for your own set of menus.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Nov 09

" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.

" Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise
" <CR> would not be recognized.  See ":help 'cpoptions'".
let s:cpo_save = &cpo
set cpo&vim

" Avoid installing the menus twice
if !exists("did_install_default_menus")
let did_install_default_menus = 1


if exists("v:lang") || &langmenu != ""
  " Try to find a menu translation file for the current language.
  if &langmenu != ""
    if &langmenu =~ "none"
      let s:lang = ""
    else
      let s:lang = &langmenu
    endif
  else
    let s:lang = v:lang
  endif
  " A language name must be at least two characters, don't accept "C"
  if strlen(s:lang) > 1
    " When the language does not include the charset add 'encoding'
    if s:lang =~ '^\a\a$\|^\a\a_\a\a$'
      let s:lang = s:lang . '.' . &enc
    endif

    " We always use a lowercase name.
    " Change "iso-8859" to "iso_8859" and "iso8859" to "iso_8859", some
    " systems appear to use this.
    " Change spaces to underscores.
    let s:lang = substitute(tolower(s:lang), '\.iso-', ".iso_", "")
    let s:lang = substitute(s:lang, '\.iso8859', ".iso_8859", "")
    let s:lang = substitute(s:lang, " ", "_", "g")
    " Remove "@euro", otherwise "LC_ALL=de_DE@euro gvim" will show English menus
    let s:lang = substitute(s:lang, "@euro", "", "")
    " Change "iso_8859-1" and "iso_8859-15" to "latin1", we always use the
    " same menu file for them.
    let s:lang = substitute(s:lang, 'iso_8859-15\=$', "latin1", "")
    menutrans clear
    exe "runtime! lang/menu_" . s:lang . ".vim"

    if !exists("did_menu_trans")
      " There is no exact match, try matching with a wildcard added
      " (e.g. find menu_de_de.iso_8859-1.vim if s:lang == de_DE).
      let s:lang = substitute(s:lang, '\.[^.]*', "", "")
      exe "runtime! lang/menu_" . s:lang . "[^a-z]*vim"

      if !exists("did_menu_trans") && strlen($LANG) > 1 && s:lang !~ '^en_us'
	" On windows locale names are complicated, try using $LANG, it might
	" have been set by set_init_1().  But don't do this for "en" or "en_us".
	" But don't match "slovak" when $LANG is "sl".
	exe "runtime! lang/menu_" . tolower($LANG) . "[^a-z]*vim"
      endif
    endif
  endif
endif


" Help menu
an 9999.10 &Help.&Overview<Tab><F1>	:help<CR>
an 9999.20 &Help.&User\ Manual		:help usr_toc<CR>
an 9999.30 &Help.&How-To\ Links		:help how-to<CR>
an <silent> 9999.40 &Help.&Find\.\.\.	:call <SID>Helpfind()<CR>
an 9999.45 &Help.-sep1-			<Nop>
an 9999.50 &Help.&Credits		:help credits<CR>
an 9999.60 &Help.Co&pying		:help copying<CR>
an 9999.70 &Help.&Sponsor/Register	:help sponsor<CR>
an 9999.70 &Help.O&rphans		:help kcc<CR>
an 9999.75 &Help.-sep2-			<Nop>
an 9999.80 &Help.&Version		:version<CR>
an 9999.90 &Help.&About			:intro<CR>

fun! s:Helpfind()
  if !exists("g:menutrans_help_dialog")
    let g:menutrans_help_dialog = "Enter a command or word to find help on:\n\nPrepend i_ for Input mode commands (e.g.: i_CTRL-X)\nPrepend c_ for command-line editing commands (e.g.: c_<Del>)\nPrepend ' for an option name (e.g.: 'shiftwidth')"
  endif
  let h = inputdialog(g:menutrans_help_dialog)
  if h != ""
    let v:errmsg = ""
    silent! exe "help " . h
    if v:errmsg != ""
      echo v:errmsg
    endif
  endif
endfun

" File menu
an 10.310 &File.&Open\.\.\.<Tab>:e		:browse confirm e<CR>
an 10.320 &File.Sp&lit-Open\.\.\.<Tab>:sp	:browse sp<CR>
an 10.320 &File.Open\ Tab\.\.\.<Tab>:tabnew	:browse tabnew<CR>
an 10.325 &File.&New<Tab>:enew			:confirm enew<CR>
an <silent> 10.330 &File.&Close<Tab>:close
	\ :if winheight(2) < 0 && tabpagewinnr(2) == 0 <Bar>
	\   confirm enew <Bar>
	\ else <Bar>
	\   confirm close <Bar>
	\ endif<CR>
an 10.335 &File.-SEP1-				<Nop>
an <silent> 10.340 &File.&Save<Tab>:w		:if expand("%") == ""<Bar>browse confirm w<Bar>else<Bar>confirm w<Bar>endif<CR>
an 10.350 &File.Save\ &As\.\.\.<Tab>:sav	:browse confirm saveas<CR>

if has("diff")
  an 10.400 &File.-SEP2-			<Nop>
  an 10.410 &File.Split\ &Diff\ With\.\.\.	:browse vert diffsplit<CR>
  an 10.420 &File.Split\ Patched\ &By\.\.\.	:browse vert diffpatch<CR>
endif

if has("printer")
  an 10.500 &File.-SEP3-			<Nop>
  an 10.510 &File.&Print			:hardcopy<CR>
  vunmenu   &File.&Print
  vnoremenu &File.&Print			:hardcopy<CR>
elseif has("unix")
  an 10.500 &File.-SEP3-			<Nop>
  an 10.510 &File.&Print			:w !lpr<CR>
  vunmenu   &File.&Print
  vnoremenu &File.&Print			:w !lpr<CR>
endif
an 10.600 &File.-SEP4-				<Nop>
an 10.610 &File.Sa&ve-Exit<Tab>:wqa		:confirm wqa<CR>
an 10.620 &File.E&xit<Tab>:qa			:confirm qa<CR>

func! <SID>SelectAll()
  exe "norm! gg" . (&slm == "" ? "VG" : "gH\<C-O>G")
endfunc

func! s:FnameEscape(fname)
  if exists('*fnameescape')
    return fnameescape(a:fname)
  endif
  return escape(a:fname, " \t\n*?[{`$\\%#'\"|!<")
endfunc

" Edit menu
an 20.310 &Edit.&Undo<Tab>u			u
an 20.320 &Edit.&Redo<Tab>^R			<C-R>
an 20.330 &Edit.Rep&eat<Tab>\.			.

an 20.335 &Edit.-SEP1-				<Nop>
vnoremenu 20.340 &Edit.Cu&t<Tab>"+x		"+x
vnoremenu 20.350 &Edit.&Copy<Tab>"+y		"+y
cnoremenu 20.350 &Edit.&Copy<Tab>"+y		<C-Y>
nnoremenu 20.360 &Edit.&Paste<Tab>"+gP		"+gP
cnoremenu	 &Edit.&Paste<Tab>"+gP		<C-R>+
exe 'vnoremenu <script> &Edit.&Paste<Tab>"+gP	' . paste#paste_cmd['v']
exe 'inoremenu <script> &Edit.&Paste<Tab>"+gP	' . paste#paste_cmd['i']
nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p	[p
inoremenu	 &Edit.Put\ &Before<Tab>[p	<C-O>[p
nnoremenu 20.380 &Edit.Put\ &After<Tab>]p	]p
inoremenu	 &Edit.Put\ &After<Tab>]p	<C-O>]p
if has("win32")
  vnoremenu 20.390 &Edit.&Delete<Tab>x		x
endif
noremenu  <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG	:<C-U>call <SID>SelectAll()<CR>
inoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG	<C-O>:call <SID>SelectAll()<CR>
cnoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG	<C-U>call <SID>SelectAll()<CR>

an 20.405	 &Edit.-SEP2-				<Nop>
if has("win32") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
  an 20.410	 &Edit.&Find\.\.\.			:promptfind<CR>
  vunmenu	 &Edit.&Find\.\.\.
  vnoremenu <silent>	 &Edit.&Find\.\.\.		y:promptfind <C-R>=<SID>FixFText()<CR><CR>
  an 20.420	 &Edit.Find\ and\ Rep&lace\.\.\.	:promptrepl<CR>
  vunmenu	 &Edit.Find\ and\ Rep&lace\.\.\.
  vnoremenu <silent>	 &Edit.Find\ and\ Rep&lace\.\.\. y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
else
  an 20.410	 &Edit.&Find<Tab>/			/
  an 20.420	 &Edit.Find\ and\ Rep&lace<Tab>:%s	:%s/
  vunmenu	 &Edit.Find\ and\ Rep&lace<Tab>:%s
  vnoremenu	 &Edit.Find\ and\ Rep&lace<Tab>:s	:s/
endif

an 20.425	 &Edit.-SEP3-				<Nop>
an 20.430	 &Edit.Settings\ &Window		:options<CR>
an 20.435	 &Edit.Startup\ &Settings		:call <SID>EditVimrc()<CR>

fun! s:EditVimrc()
  if $MYVIMRC != ''
    let fname = $MYVIMRC
  elseif has("win32")
    if $HOME != ''
      let fname = $HOME . "/_vimrc"
    else
      let fname = $VIM . "/_vimrc"
    endif
  elseif has("amiga")
    let fname = "s:.vimrc"
  else
    let fname = $HOME . "/.vimrc"
  endif
  let fname = s:FnameEscape(fname)
  if &mod
    exe "split " . fname
  else
    exe "edit " . fname
  endif
endfun

fun! s:FixFText()
  " Fix text in nameless register to be used with :promptfind.
  return substitute(@", "[\r\n]", '\\n', 'g')
endfun

" Edit/Global Settings
an 20.440.100 &Edit.&Global\ Settings.Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	:set hls! hls?<CR>
an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Ignoring\ Case<Tab>:set\ ic!	:set ic! ic?<CR>
an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!	:set sm! sm?<CR>

an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 1\  :set so=1<CR>
an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 2\  :set so=2<CR>
an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 3\  :set so=3<CR>
an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 4\  :set so=4<CR>
an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 5\  :set so=5<CR>
an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 7\  :set so=7<CR>
an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 10\  :set so=10<CR>
an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 100\  :set so=100<CR>

an 20.440.130.40 &Edit.&Global\ Settings.&Virtual\ Edit.Never :set ve=<CR>
an 20.440.130.50 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ Selection :set ve=block<CR>
an 20.440.130.60 &Edit.&Global\ Settings.&Virtual\ Edit.Insert\ Mode :set ve=insert<CR>
an 20.440.130.70 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ and\ Insert :set ve=block,insert<CR>
an 20.440.130.80 &Edit.&Global\ Settings.&Virtual\ Edit.Always :set ve=all<CR>
an 20.440.140 &Edit.&Global\ Settings.Toggle\ Insert\ &Mode<Tab>:set\ im!	:set im!<CR>
an 20.440.145 &Edit.&Global\ Settings.Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!	:set cp!<CR>
an <silent> 20.440.150 &Edit.&Global\ Settings.Search\ &Path\.\.\.  :call <SID>SearchP()<CR>
an <silent> 20.440.160 &Edit.&Global\ Settings.Ta&g\ Files\.\.\.  :call <SID>TagFiles()<CR>
"
" GUI options
an 20.440.300 &Edit.&Global\ Settings.-SEP1-				<Nop>
an <silent> 20.440.310 &Edit.&Global\ Settings.Toggle\ &Toolbar		:call <SID>ToggleGuiOption("T")<CR>
an <silent> 20.440.320 &Edit.&Global\ Settings.Toggle\ &Bottom\ Scrollbar :call <SID>ToggleGuiOption("b")<CR>
an <silent> 20.440.330 &Edit.&Global\ Settings.Toggle\ &Left\ Scrollbar	:call <SID>ToggleGuiOption("l")<CR>
an <silent> 20.440.340 &Edit.&Global\ Settings.Toggle\ &Right\ Scrollbar :call <SID>ToggleGuiOption("r")<CR>

fun! s:SearchP()
  if !exists("g:menutrans_path_dialog")
    let g:menutrans_path_dialog = "Enter search path for files.\nSeparate directory names with a comma."
  endif
  let n = inputdialog(g:menutrans_path_dialog, substitute(&path, '\\ ', ' ', 'g'))
  if n != ""
    let &path = substitute(n, ' ', '\\ ', 'g')
  endif
endfun

fun! s:TagFiles()
  if !exists("g:menutrans_tags_dialog")
    let g:menutrans_tags_dialog = "Enter names of tag files.\nSeparate the names with a comma."
  endif
  let n = inputdialog(g:menutrans_tags_dialog, substitute(&tags, '\\ ', ' ', 'g'))
  if n != ""
    let &tags = substitute(n, ' ', '\\ ', 'g')
  endif
endfun

fun! s:ToggleGuiOption(option)
    " If a:option is already set in guioptions, then we want to remove it
    if match(&guioptions, "\\C" . a:option) > -1
	exec "set go-=" . a:option
    else
	exec "set go+=" . a:option
    endif
endfun

" Edit/File Settings

" Boolean options
an 20.440.100 &Edit.F&ile\ Settings.Toggle\ Line\ &Numbering<Tab>:set\ nu!	:set nu! nu?<CR>
an 20.440.105 &Edit.F&ile\ Settings.Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!	:set rnu! rnu?<CR>
an 20.440.110 &Edit.F&ile\ Settings.Toggle\ &List\ Mode<Tab>:set\ list!	:set list! list?<CR>
an 20.440.120 &Edit.F&ile\ Settings.Toggle\ Line\ &Wrapping<Tab>:set\ wrap!	:set wrap! wrap?<CR>
an 20.440.130 &Edit.F&ile\ Settings.Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!	:set lbr! lbr?<CR>
an 20.440.160 &Edit.F&ile\ Settings.Toggle\ Tab\ &Expanding<Tab>:set\ et!	:set et! et?<CR>
an 20.440.170 &Edit.F&ile\ Settings.Toggle\ &Auto\ Indenting<Tab>:set\ ai!	:set ai! ai?<CR>
an 20.440.180 &Edit.F&ile\ Settings.Toggle\ &C-Style\ Indenting<Tab>:set\ cin!	:set cin! cin?<CR>

" other options
an 20.440.600 &Edit.F&ile\ Settings.-SEP2-		<Nop>
an 20.440.610.20 &Edit.F&ile\ Settings.&Shiftwidth.2	:set sw=2 sw?<CR>
an 20.440.610.30 &Edit.F&ile\ Settings.&Shiftwidth.3	:set sw=3 sw?<CR>
an 20.440.610.40 &Edit.F&ile\ Settings.&Shiftwidth.4	:set sw=4 sw?<CR>
an 20.440.610.50 &Edit.F&ile\ Settings.&Shiftwidth.5	:set sw=5 sw?<CR>
an 20.440.610.60 &Edit.F&ile\ Settings.&Shiftwidth.6	:set sw=6 sw?<CR>
an 20.440.610.80 &Edit.F&ile\ Settings.&Shiftwidth.8	:set sw=8 sw?<CR>

an 20.440.620.20 &Edit.F&ile\ Settings.Soft\ &Tabstop.2	:set sts=2 sts?<CR>
an 20.440.620.30 &Edit.F&ile\ Settings.Soft\ &Tabstop.3	:set sts=3 sts?<CR>
an 20.440.620.40 &Edit.F&ile\ Settings.Soft\ &Tabstop.4	:set sts=4 sts?<CR>
an 20.440.620.50 &Edit.F&ile\ Settings.Soft\ &Tabstop.5	:set sts=5 sts?<CR>
an 20.440.620.60 &Edit.F&ile\ Settings.Soft\ &Tabstop.6	:set sts=6 sts?<CR>
an 20.440.620.80 &Edit.F&ile\ Settings.Soft\ &Tabstop.8	:set sts=8 sts?<CR>

an <silent> 20.440.630 &Edit.F&ile\ Settings.Te&xt\ Width\.\.\.  :call <SID>TextWidth()<CR>
an <silent> 20.440.640 &Edit.F&ile\ Settings.&File\ Format\.\.\.  :call <SID>FileFormat()<CR>
fun! s:TextWidth()
  if !exists("g:menutrans_textwidth_dialog")
    let g:menutrans_textwidth_dialog = "Enter new text width (0 to disable formatting): "
  endif
  let n = inputdialog(g:menutrans_textwidth_dialog, &tw)
  if n != ""
    " Remove leading zeros to avoid it being used as an octal number.
    " But keep a zero by itself.
    let tw = substitute(n, "^0*", "", "")
    let &tw = tw == '' ? 0 : tw
  endif
endfun

fun! s:FileFormat()
  if !exists("g:menutrans_fileformat_dialog")
    let g:menutrans_fileformat_dialog = "Select format for writing the file"
  endif
  if !exists("g:menutrans_fileformat_choices")
    let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Cancel"
  endif
  if &ff == "dos"
    let def = 2
  elseif &ff == "mac"
    let def = 3
  else
    let def = 1
  endif
  let n = confirm(g:menutrans_fileformat_dialog, g:menutrans_fileformat_choices, def, "Question")
  if n == 1
    set ff=unix
  elseif n == 2
    set ff=dos
  elseif n == 3
    set ff=mac
  endif
endfun

let s:did_setup_color_schemes = 0

" Setup the Edit.Color Scheme submenu
func! s:SetupColorSchemes() abort
  if s:did_setup_color_schemes
    return
  endif
  let s:did_setup_color_schemes = 1

  let n = globpath(&runtimepath, "colors/*.vim", 1, 1)

  " Ignore case for VMS and windows, sort on name
  let names = sort(map(n, 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)

  " define all the submenu entries
  let idx = 100
  for name in names
    exe "an 20.450." . idx . ' &Edit.C&olor\ Scheme.' . name . " :colors " . name . "<CR>"
    let idx = idx + 10
  endfor
  silent! aunmenu &Edit.Show\ C&olor\ Schemes\ in\ Menu
endfun
if exists("do_no_lazyload_menus")
  call s:SetupColorSchemes()
else
  an <silent> 20.450 &Edit.Show\ C&olor\ Schemes\ in\ Menu :call <SID>SetupColorSchemes()<CR>
endif


" Setup the Edit.Keymap submenu
if has("keymap")
  let s:did_setup_keymaps = 0

  func! s:SetupKeymaps() abort
    if s:did_setup_keymaps
      return
    endif
    let s:did_setup_keymaps = 1

    let n = globpath(&runtimepath, "keymap/*.vim", 1, 1)
    if !empty(n)
      let idx = 100
      an 20.460.90 &Edit.&Keymap.None :set keymap=<CR>
      for name in n
	" Ignore case for VMS and windows
	let name = substitute(name, '\c.*[/\\:\]]\([^/\\:_]*\)\(_[0-9a-zA-Z-]*\)\=\.vim', '\1', '')
	exe "an 20.460." . idx . ' &Edit.&Keymap.' . name . " :set keymap=" . name . "<CR>"
	let idx = idx + 10
      endfor
    endif
    silent! aunmenu &Edit.Show\ &Keymaps\ in\ Menu
  endfun
  if exists("do_no_lazyload_menus")
    call s:SetupKeymaps()
  else
    an <silent> 20.460 &Edit.Show\ &Keymaps\ in\ Menu :call <SID>SetupKeymaps()<CR>
  endif
endif
if has("win32") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
  an 20.470 &Edit.Select\ Fo&nt\.\.\.	:set guifont=*<CR>
endif

" Programming menu
if !exists("g:ctags_command")
  if has("vms")
    let g:ctags_command = "mc vim:ctags *.*"
  else
    let g:ctags_command = "ctags -R ."
  endif
endif

an 40.300 &Tools.&Jump\ to\ This\ Tag<Tab>g^]	g<C-]>
vunmenu &Tools.&Jump\ to\ This\ Tag<Tab>g^]
vnoremenu &Tools.&Jump\ to\ This\ Tag<Tab>g^]	g<C-]>
an 40.310 &Tools.Jump\ &Back<Tab>^T		<C-T>
an 40.320 &Tools.Build\ &Tags\ File		:exe "!" . g:ctags_command<CR>

if has("folding") || has("spell")
  an 40.330 &Tools.-SEP1-						<Nop>
endif

" Tools.Spelling Menu
if has("spell")
  an 40.335.110 &Tools.&Spelling.&Spell\ Check\ On		:set spell<CR>
  an 40.335.120 &Tools.&Spelling.Spell\ Check\ &Off		:set nospell<CR>
  an 40.335.130 &Tools.&Spelling.To\ &Next\ Error<Tab>]s	]s
  an 40.335.130 &Tools.&Spelling.To\ &Previous\ Error<Tab>[s	[s
  an 40.335.140 &Tools.&Spelling.Suggest\ &Corrections<Tab>z=	z=
  an 40.335.150 &Tools.&Spelling.&Repeat\ Correction<Tab>:spellrepall	:spellrepall<CR>
  an 40.335.200 &Tools.&Spelling.-SEP1-				<Nop>
  an 40.335.210 &Tools.&Spelling.Set\ Language\ to\ "en"	:set spl=en spell<CR>
  an 40.335.220 &Tools.&Spelling.Set\ Language\ to\ "en_au"	:set spl=en_au spell<CR>
  an 40.335.230 &Tools.&Spelling.Set\ Language\ to\ "en_ca"	:set spl=en_ca spell<CR>
  an 40.335.240 &Tools.&Spelling.Set\ Language\ to\ "en_gb"	:set spl=en_gb spell<CR>
  an 40.335.250 &Tools.&Spelling.Set\ Language\ to\ "en_nz"	:set spl=en_nz spell<CR>
  an 40.335.260 &Tools.&Spelling.Set\ Language\ to\ "en_us"	:set spl=en_us spell<CR>
  an <silent> 40.335.270 &Tools.&Spelling.&Find\ More\ Languages	:call <SID>SpellLang()<CR>

  let s:undo_spellang = ['aun &Tools.&Spelling.&Find\ More\ Languages']
  func! s:SpellLang()
    for cmd in s:undo_spellang
      exe "silent! " . cmd
    endfor
    let s:undo_spellang = []

    if &enc == "iso-8859-15"
      let enc = "latin1"
    else
      let enc = &enc
    endif

    if !exists("g:menutrans_set_lang_to")
      let g:menutrans_set_lang_to = 'Set Language to'
    endif

    let found = 0
    let s = globpath(&runtimepath, "spell/*." . enc . ".spl", 1, 1)
    if !empty(s)
      let n = 300
      for f in s
	let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
	if nm != "en" && nm !~ '/'
          let _nm = nm
	  let found += 1
	  let menuname = '&Tools.&Spelling.' . escape(g:menutrans_set_lang_to, "\\. \t|") . '\ "' . nm . '"'
	  exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
	  let s:undo_spellang += ['aun ' . menuname]
	endif
	let n += 10
      endfor
    endif
    if found == 0
      echomsg "Could not find other spell files"
    elseif found == 1
      echomsg "Found spell file " . _nm
    else
      echomsg "Found " . found . " more spell files"
    endif
    " Need to redo this when 'encoding' is changed.
    augroup spellmenu
    au! EncodingChanged * call <SID>SpellLang()
    augroup END
  endfun

endif

" Tools.Fold Menu
if has("folding")
  " open close folds
  an 40.340.110 &Tools.&Folding.&Enable/Disable\ Folds<Tab>zi		zi
  an 40.340.120 &Tools.&Folding.&View\ Cursor\ Line<Tab>zv		zv
  an 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ Only<Tab>zMzx	zMzx
  inoremenu 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ Only<Tab>zMzx  <C-O>zM<C-O>zx
  an 40.340.130 &Tools.&Folding.C&lose\ More\ Folds<Tab>zm		zm
  an 40.340.140 &Tools.&Folding.&Close\ All\ Folds<Tab>zM		zM
  an 40.340.150 &Tools.&Folding.O&pen\ More\ Folds<Tab>zr		zr
  an 40.340.160 &Tools.&Folding.&Open\ All\ Folds<Tab>zR		zR
  " fold method
  an 40.340.200 &Tools.&Folding.-SEP1-			<Nop>
  an 40.340.210 &Tools.&Folding.Fold\ Met&hod.M&anual	:set fdm=manual<CR>
  an 40.340.210 &Tools.&Folding.Fold\ Met&hod.I&ndent	:set fdm=indent<CR>
  an 40.340.210 &Tools.&Folding.Fold\ Met&hod.E&xpression :set fdm=expr<CR>
  an 40.340.210 &Tools.&Folding.Fold\ Met&hod.S&yntax	:set fdm=syntax<CR>
  an 40.340.210 &Tools.&Folding.Fold\ Met&hod.&Diff	:set fdm=diff<CR>
  an 40.340.210 &Tools.&Folding.Fold\ Met&hod.Ma&rker	:set fdm=marker<CR>
  " create and delete folds
  vnoremenu 40.340.220 &Tools.&Folding.Create\ &Fold<Tab>zf	zf
  an 40.340.230 &Tools.&Folding.&Delete\ Fold<Tab>zd		zd
  an 40.340.240 &Tools.&Folding.Delete\ &All\ Folds<Tab>zD	zD
  " moving around in folds
  an 40.340.300 &Tools.&Folding.-SEP2-				<Nop>
  an 40.340.310.10 &Tools.&Folding.Fold\ Col&umn\ Width.\ &0\ 	:set fdc=0<CR>
  an 40.340.310.20 &Tools.&Folding.Fold\ Col&umn\ Width.\ &2\ 	:set fdc=2<CR>
  an 40.340.310.30 &Tools.&Folding.Fold\ Col&umn\ Width.\ &3\ 	:set fdc=3<CR>
  an 40.340.310.40 &Tools.&Folding.Fold\ Col&umn\ Width.\ &4\ 	:set fdc=4<CR>
  an 40.340.310.50 &Tools.&Folding.Fold\ Col&umn\ Width.\ &5\ 	:set fdc=5<CR>
  an 40.340.310.60 &Tools.&Folding.Fold\ Col&umn\ Width.\ &6\ 	:set fdc=6<CR>
  an 40.340.310.70 &Tools.&Folding.Fold\ Col&umn\ Width.\ &7\ 	:set fdc=7<CR>
  an 40.340.310.80 &Tools.&Folding.Fold\ Col&umn\ Width.\ &8\ 	:set fdc=8<CR>
endif  " has folding

if has("diff")
  an 40.350.100 &Tools.&Diff.&Update		:diffupdate<CR>
  an 40.350.110 &Tools.&Diff.&Get\ Block	:diffget<CR>
  vunmenu &Tools.&Diff.&Get\ Block
  vnoremenu &Tools.&Diff.&Get\ Block		:diffget<CR>
  an 40.350.120 &Tools.&Diff.&Put\ Block	:diffput<CR>
  vunmenu &Tools.&Diff.&Put\ Block
  vnoremenu &Tools.&Diff.&Put\ Block		:diffput<CR>
endif

an 40.358 &Tools.-SEP2-					<Nop>
an 40.360 &Tools.&Make<Tab>:make			:make<CR>
an 40.370 &Tools.&List\ Errors<Tab>:cl			:cl<CR>
an 40.380 &Tools.L&ist\ Messages<Tab>:cl!		:cl!<CR>
an 40.390 &Tools.&Next\ Error<Tab>:cn			:cn<CR>
an 40.400 &Tools.&Previous\ Error<Tab>:cp		:cp<CR>
an 40.410 &Tools.&Older\ List<Tab>:cold			:colder<CR>
an 40.420 &Tools.N&ewer\ List<Tab>:cnew			:cnewer<CR>
an 40.430.50 &Tools.Error\ &Window.&Update<Tab>:cwin	:cwin<CR>
an 40.430.60 &Tools.Error\ &Window.&Open<Tab>:copen	:copen<CR>
an 40.430.70 &Tools.Error\ &Window.&Close<Tab>:cclose	:cclose<CR>

an 40.520 &Tools.-SEP3-					<Nop>
an <silent> 40.530 &Tools.&Convert\ to\ HEX<Tab>:%!xxd
	\ :call <SID>XxdConv()<CR>
an <silent> 40.540 &Tools.Conve&rt\ Back<Tab>:%!xxd\ -r
	\ :call <SID>XxdBack()<CR>

" Use a function to do the conversion, so that it also works with 'insertmode'
" set.
func! s:XxdConv()
  let mod = &mod
  if has("vms")
    %!mc vim:xxd
  else
    call s:XxdFind()
    exe '%!"' . g:xxdprogram . '"'
  endif
  if getline(1) =~ "^0000000:"		" only if it worked
    set ft=xxd
  endif
  let &mod = mod
endfun

func! s:XxdBack()
  let mod = &mod
  if has("vms")
    %!mc vim:xxd -r
  else
    call s:XxdFind()
    exe '%!"' . g:xxdprogram . '" -r'
  endif
  set ft=
  doautocmd filetypedetect BufReadPost
  let &mod = mod
endfun

func! s:XxdFind()
  if !exists("g:xxdprogram")
    " On the PC xxd may not be in the path but in the install directory
    if has("win32") && !executable("xxd")
      let g:xxdprogram = $VIMRUNTIME . (&shellslash ? '/' : '\') . "xxd.exe"
    else
      let g:xxdprogram = "xxd"
    endif
  endif
endfun

let s:did_setup_compilers = 0

" Setup the Tools.Compiler submenu
func! s:SetupCompilers() abort
  if s:did_setup_compilers
    return
  endif
  let s:did_setup_compilers = 1

  let n = globpath(&runtimepath, "compiler/*.vim", 1, 1)
  let idx = 100
  for name in n
    " Ignore case for VMS and windows
    let name = substitute(name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
    exe "an 30.440." . idx . ' &Tools.Se&t\ Compiler.' . name . " :compiler " . name . "<CR>"
    let idx = idx + 10
  endfor
  silent! aunmenu &Tools.Show\ Compiler\ Se&ttings\ in\ Menu
endfun
if exists("do_no_lazyload_menus")
  call s:SetupCompilers()
else
  an <silent> 30.440 &Tools.Show\ Compiler\ Se&ttings\ in\ Menu :call <SID>SetupCompilers()<CR>
endif

" Load ColorScheme, Compiler Setting and Keymap menus when idle.
if !exists("do_no_lazyload_menus")
  func! s:SetupLazyloadMenus()
    call s:SetupColorSchemes()
    call s:SetupCompilers()
    if has("keymap")
      call s:SetupKeymaps()
    endif
  endfunc
  augroup SetupLazyloadMenus
    au!
    au CursorHold,CursorHoldI * call <SID>SetupLazyloadMenus() | au! SetupLazyloadMenus
  augroup END
endif


if !exists("no_buffers_menu")

" Buffer list menu -- Setup functions & actions

" wait with building the menu until after loading 'session' files. Makes
" startup faster.
let s:bmenu_wait = 1

if !exists("bmenu_priority")
  let bmenu_priority = 60
endif

func! s:BMAdd()
  if s:bmenu_wait == 0
    " when adding too many buffers, redraw in short format
    if s:bmenu_count == &menuitems && s:bmenu_short == 0
      call s:BMShow()
    else
      call <SID>BMFilename(expand("<afile>"), expand("<abuf>"))
      let s:bmenu_count = s:bmenu_count + 1
    endif
  endif
endfunc

func! s:BMRemove()
  if s:bmenu_wait == 0
    let name = expand("<afile>")
    if isdirectory(name)
      return
    endif
    let munge = <SID>BMMunge(name, expand("<abuf>"))

    if s:bmenu_short == 0
      exe 'silent! aun &Buffers.' . munge
    else
      exe 'silent! aun &Buffers.' . <SID>BMHash2(munge) . munge
    endif
    let s:bmenu_count = s:bmenu_count - 1
  endif
endfunc

" Create the buffer menu (delete an existing one first).
func! s:BMShow(...)
  let s:bmenu_wait = 1
  let s:bmenu_short = 1
  let s:bmenu_count = 0
  "
  " get new priority, if exists
  if a:0 == 1
    let g:bmenu_priority = a:1
  endif

  " remove old menu, if exists; keep one entry to avoid a torn off menu to
  " disappear.
  silent! unmenu &Buffers
  exe 'noremenu ' . g:bmenu_priority . ".1 &Buffers.Dummy l"
  silent! unmenu! &Buffers

  " create new menu; set 'cpo' to include the <CR>
  let cpo_save = &cpo
  set cpo&vim
  exe 'an <silent> ' . g:bmenu_priority . ".2 &Buffers.&Refresh\\ menu :call <SID>BMShow()<CR>"
  exe 'an ' . g:bmenu_priority . ".4 &Buffers.&Delete :confirm bd<CR>"
  exe 'an ' . g:bmenu_priority . ".6 &Buffers.&Alternate :confirm b #<CR>"
  exe 'an ' . g:bmenu_priority . ".7 &Buffers.&Next :confirm bnext<CR>"
  exe 'an ' . g:bmenu_priority . ".8 &Buffers.&Previous :confirm bprev<CR>"
  exe 'an ' . g:bmenu_priority . ".9 &Buffers.-SEP- :"
  let &cpo = cpo_save
  unmenu &Buffers.Dummy

  " figure out how many buffers there are
  let buf = 1
  while buf <= bufnr('$')
    if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
      let s:bmenu_count = s:bmenu_count + 1
    endif
    let buf = buf + 1
  endwhile
  if s:bmenu_count <= &menuitems
    let s:bmenu_short = 0
  endif

  " iterate through buffer list, adding each buffer to the menu:
  let buf = 1
  while buf <= bufnr('$')
    if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
      call <SID>BMFilename(bufname(buf), buf)
    endif
    let buf = buf + 1
  endwhile
  let s:bmenu_wait = 0
  aug buffer_list
  au!
  au BufCreate,BufFilePost * call <SID>BMAdd()
  au BufDelete,BufFilePre * call <SID>BMRemove()
  aug END
endfunc

func! s:BMHash(name)
  " Make name all upper case, so that chars are between 32 and 96
  let nm = substitute(a:name, ".*", '\U\0', "")
  if has("ebcdic")
    " HACK: Replace all non alphabetics with 'Z'
    "       Just to make it work for now.
    let nm = substitute(nm, "[^A-Z]", 'Z', "g")
    let sp = char2nr('A') - 1
  else
    let sp = char2nr(' ')
  endif
  " convert first six chars into a number for sorting:
  return (char2nr(nm[0]) - sp) * 0x800000 + (char2nr(nm[1]) - sp) * 0x20000 + (char2nr(nm[2]) - sp) * 0x1000 + (char2nr(nm[3]) - sp) * 0x80 + (char2nr(nm[4]) - sp) * 0x20 + (char2nr(nm[5]) - sp)
endfunc

func! s:BMHash2(name)
  let nm = substitute(a:name, ".", '\L\0', "")
  " Not exactly right for EBCDIC...
  if nm[0] < 'a' || nm[0] > 'z'
    return '&others.'
  elseif nm[0] <= 'd'
    return '&abcd.'
  elseif nm[0] <= 'h'
    return '&efgh.'
  elseif nm[0] <= 'l'
    return '&ijkl.'
  elseif nm[0] <= 'p'
    return '&mnop.'
  elseif nm[0] <= 't'
    return '&qrst.'
  else
    return '&u-z.'
  endif
endfunc

" insert a buffer name into the buffer menu:
func! s:BMFilename(name, num)
  if isdirectory(a:name)
    return
  endif
  let munge = <SID>BMMunge(a:name, a:num)
  let hash = <SID>BMHash(munge)
  if s:bmenu_short == 0
    let name = 'an ' . g:bmenu_priority . '.' . hash . ' &Buffers.' . munge
  else
    let name = 'an ' . g:bmenu_priority . '.' . hash . '.' . hash . ' &Buffers.' . <SID>BMHash2(munge) . munge
  endif
  " set 'cpo' to include the <CR>
  let cpo_save = &cpo
  set cpo&vim
  exe name . ' :confirm b' . a:num . '<CR>'
  let &cpo = cpo_save
endfunc

" Truncate a long path to fit it in a menu item.
if !exists("g:bmenu_max_pathlen")
  let g:bmenu_max_pathlen = 35
endif
func! s:BMTruncName(fname)
  let name = a:fname
  if g:bmenu_max_pathlen < 5
    let name = ""
  else
    let len = strlen(name)
    if len > g:bmenu_max_pathlen
      let amountl = (g:bmenu_max_pathlen / 2) - 2
      let amountr = g:bmenu_max_pathlen - amountl - 3
      let pattern = '^\(.\{,' . amountl . '}\).\{-}\(.\{,' . amountr . '}\)$'
      let left = substitute(name, pattern, '\1', '')
      let right = substitute(name, pattern, '\2', '')
      if strlen(left) + strlen(right) < len
	let name = left . '...' . right
      endif
    endif
  endif
  return name
endfunc

func! s:BMMunge(fname, bnum)
  let name = a:fname
  if name == ''
    if !exists("g:menutrans_no_file")
      let g:menutrans_no_file = "[No file]"
    endif
    let name = g:menutrans_no_file
  else
    let name = fnamemodify(name, ':p:~')
  endif
  " detach file name and separate it out:
  let name2 = fnamemodify(name, ':t')
  if a:bnum >= 0
    let name2 = name2 . ' (' . a:bnum . ')'
  endif
  let name = name2 . "\t" . <SID>BMTruncName(fnamemodify(name,':h'))
  let name = escape(name, "\\. \t|")
  let name = substitute(name, "&", "&&", "g")
  let name = substitute(name, "\n", "^@", "g")
  return name
endfunc

" When just starting Vim, load the buffer menu later
if has("vim_starting")
  augroup LoadBufferMenu
    au! VimEnter * if !exists("no_buffers_menu") | call <SID>BMShow() | endif
    au  VimEnter * au! LoadBufferMenu
  augroup END
else
  call <SID>BMShow()
endif

endif " !exists("no_buffers_menu")

" Window menu
an 70.300 &Window.&New<Tab>^Wn			<C-W>n
an 70.310 &Window.S&plit<Tab>^Ws		<C-W>s
an 70.320 &Window.Sp&lit\ To\ #<Tab>^W^^	<C-W><C-^>
an 70.330 &Window.Split\ &Vertically<Tab>^Wv	<C-W>v
if has("vertsplit")
  an <silent> 70.332 &Window.Split\ File\ E&xplorer	:call MenuExplOpen()<CR>
  if !exists("*MenuExplOpen")
    fun MenuExplOpen()
      if @% == ""
	20vsp .
      else
	exe "20vsp " . s:FnameEscape(expand("%:p:h"))
      endif
    endfun
  endif
endif
an 70.335 &Window.-SEP1-				<Nop>
an 70.340 &Window.&Close<Tab>^Wc			:confirm close<CR>
an 70.345 &Window.Close\ &Other(s)<Tab>^Wo		:confirm only<CR>
an 70.350 &Window.-SEP2-				<Nop>
an 70.355 &Window.Move\ &To.&Top<Tab>^WK		<C-W>K
an 70.355 &Window.Move\ &To.&Bottom<Tab>^WJ		<C-W>J
an 70.355 &Window.Move\ &To.&Left\ Side<Tab>^WH		<C-W>H
an 70.355 &Window.Move\ &To.&Right\ Side<Tab>^WL	<C-W>L
an 70.360 &Window.Rotate\ &Up<Tab>^WR			<C-W>R
an 70.362 &Window.Rotate\ &Down<Tab>^Wr			<C-W>r
an 70.365 &Window.-SEP3-				<Nop>
an 70.370 &Window.&Equal\ Size<Tab>^W=			<C-W>=
an 70.380 &Window.&Max\ Height<Tab>^W_			<C-W>_
an 70.390 &Window.M&in\ Height<Tab>^W1_			<C-W>1_
an 70.400 &Window.Max\ &Width<Tab>^W\|			<C-W>\|
an 70.410 &Window.Min\ Widt&h<Tab>^W1\|			<C-W>1\|

" The popup menu
an 1.10 PopUp.&Undo			u
an 1.15 PopUp.-SEP1-			<Nop>
vnoremenu 1.20 PopUp.Cu&t		"+x
vnoremenu 1.30 PopUp.&Copy		"+y
cnoremenu 1.30 PopUp.&Copy		<C-Y>
nnoremenu 1.40 PopUp.&Paste		"+gP
cnoremenu 1.40 PopUp.&Paste		<C-R>+
exe 'vnoremenu <script> 1.40 PopUp.&Paste	' . paste#paste_cmd['v']
exe 'inoremenu <script> 1.40 PopUp.&Paste	' . paste#paste_cmd['i']
vnoremenu 1.50 PopUp.&Delete		x
an 1.55 PopUp.-SEP2-			<Nop>
vnoremenu 1.60 PopUp.Select\ Blockwise	<C-V>

nnoremenu 1.70 PopUp.Select\ &Word	vaw
onoremenu 1.70 PopUp.Select\ &Word	aw
vnoremenu 1.70 PopUp.Select\ &Word	<C-C>vaw
inoremenu 1.70 PopUp.Select\ &Word	<C-O>vaw
cnoremenu 1.70 PopUp.Select\ &Word	<C-C>vaw

nnoremenu 1.73 PopUp.Select\ &Sentence	vas
onoremenu 1.73 PopUp.Select\ &Sentence	as
vnoremenu 1.73 PopUp.Select\ &Sentence	<C-C>vas
inoremenu 1.73 PopUp.Select\ &Sentence	<C-O>vas
cnoremenu 1.73 PopUp.Select\ &Sentence	<C-C>vas

nnoremenu 1.77 PopUp.Select\ Pa&ragraph	vap
onoremenu 1.77 PopUp.Select\ Pa&ragraph	ap
vnoremenu 1.77 PopUp.Select\ Pa&ragraph	<C-C>vap
inoremenu 1.77 PopUp.Select\ Pa&ragraph	<C-O>vap
cnoremenu 1.77 PopUp.Select\ Pa&ragraph	<C-C>vap

nnoremenu 1.80 PopUp.Select\ &Line	V
onoremenu 1.80 PopUp.Select\ &Line	<C-C>V
vnoremenu 1.80 PopUp.Select\ &Line	<C-C>V
inoremenu 1.80 PopUp.Select\ &Line	<C-O>V
cnoremenu 1.80 PopUp.Select\ &Line	<C-C>V

nnoremenu 1.90 PopUp.Select\ &Block	<C-V>
onoremenu 1.90 PopUp.Select\ &Block	<C-C><C-V>
vnoremenu 1.90 PopUp.Select\ &Block	<C-C><C-V>
inoremenu 1.90 PopUp.Select\ &Block	<C-O><C-V>
cnoremenu 1.90 PopUp.Select\ &Block	<C-C><C-V>

noremenu  <script> <silent> 1.100 PopUp.Select\ &All	:<C-U>call <SID>SelectAll()<CR>
inoremenu <script> <silent> 1.100 PopUp.Select\ &All	<C-O>:call <SID>SelectAll()<CR>
cnoremenu <script> <silent> 1.100 PopUp.Select\ &All	<C-U>call <SID>SelectAll()<CR>

if has("spell")
  " Spell suggestions in the popup menu.  Note that this will slow down the
  " appearance of the menu!
  func! <SID>SpellPopup()
    if exists("s:changeitem") && s:changeitem != ''
      call <SID>SpellDel()
    endif

    " Return quickly if spell checking is not enabled.
    if !&spell || &spelllang == ''
      return
    endif

    let curcol = col('.')
    let [w, a] = spellbadword()
    if col('.') > curcol		" don't use word after the cursor
      let w = ''
    endif
    if w != ''
      if a == 'caps'
	let s:suglist = [substitute(w, '.*', '\u&', '')]
      else
	let s:suglist = spellsuggest(w, 10)
      endif
      if len(s:suglist) > 0
	let s:changeitem = 'Change\ "' . escape(w, ' .'). '"\ to'
	let s:fromword = w
	let pri = 1
	" set 'cpo' to include the <CR>
	let cpo_save = &cpo
	set cpo&vim
	for sug in s:suglist
	  exe 'anoremenu 1.5.' . pri . ' PopUp.' . s:changeitem . '.' . escape(sug, ' .')
		\ . ' :call <SID>SpellReplace(' . pri . ')<CR>'
	  let pri += 1
	endfor

	let s:additem = 'Add\ "' . escape(w, ' .') . '"\ to\ Word\ List'
	exe 'anoremenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'

	let s:ignoreitem = 'Ignore\ "' . escape(w, ' .') . '"'
	exe 'anoremenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'

	anoremenu 1.8 PopUp.-SpellSep- :
	let &cpo = cpo_save
      endif
    endif
    call cursor(0, curcol)	" put the cursor back where it was
  endfunc

  func! <SID>SpellReplace(n)
    let l = getline('.')
    " Move the cursor to the start of the word.
    call spellbadword()
    call setline('.', strpart(l, 0, col('.') - 1) . s:suglist[a:n - 1]
	  \ . strpart(l, col('.') + len(s:fromword) - 1))
  endfunc

  func! <SID>SpellDel()
    exe "aunmenu PopUp." . s:changeitem
    exe "aunmenu PopUp." . s:additem
    exe "aunmenu PopUp." . s:ignoreitem
    aunmenu PopUp.-SpellSep-
    let s:changeitem = ''
  endfun

  augroup SpellPopupMenu
    au! MenuPopup * call <SID>SpellPopup()
  augroup END
endif

" The GUI toolbar (for MS-Windows and GTK)
if has("toolbar")
  an 1.10 ToolBar.Open			:browse confirm e<CR>
  an <silent> 1.20 ToolBar.Save		:if expand("%") == ""<Bar>browse confirm w<Bar>else<Bar>confirm w<Bar>endif<CR>
  an 1.30 ToolBar.SaveAll		:browse confirm wa<CR>

  if has("printer")
    an 1.40   ToolBar.Print		:hardcopy<CR>
    vunmenu   ToolBar.Print
    vnoremenu ToolBar.Print		:hardcopy<CR>
  elseif has("unix")
    an 1.40   ToolBar.Print		:w !lpr<CR>
    vunmenu   ToolBar.Print
    vnoremenu ToolBar.Print		:w !lpr<CR>
  endif

  an 1.45 ToolBar.-sep1-		<Nop>
  an 1.50 ToolBar.Undo			u
  an 1.60 ToolBar.Redo			<C-R>

  an 1.65 ToolBar.-sep2-		<Nop>
  vnoremenu 1.70 ToolBar.Cut		"+x
  vnoremenu 1.80 ToolBar.Copy		"+y
  cnoremenu 1.80 ToolBar.Copy		<C-Y>
  nnoremenu 1.90 ToolBar.Paste		"+gP
  cnoremenu	 ToolBar.Paste		<C-R>+
  exe 'vnoremenu <script>	 ToolBar.Paste	' . paste#paste_cmd['v']
  exe 'inoremenu <script>	 ToolBar.Paste	' . paste#paste_cmd['i']

  if !has("gui_athena")
    an 1.95   ToolBar.-sep3-		<Nop>
    an 1.100  ToolBar.Replace		:promptrepl<CR>
    vunmenu   ToolBar.Replace
    vnoremenu ToolBar.Replace		y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
    an 1.110  ToolBar.FindNext		n
    an 1.120  ToolBar.FindPrev		N
  endif

  an 1.215 ToolBar.-sep5-		<Nop>
  an <silent> 1.220 ToolBar.LoadSesn	:call <SID>LoadVimSesn()<CR>
  an <silent> 1.230 ToolBar.SaveSesn	:call <SID>SaveVimSesn()<CR>
  an 1.240 ToolBar.RunScript		:browse so<CR>

  an 1.245 ToolBar.-sep6-		<Nop>
  an 1.250 ToolBar.Make			:make<CR>
  an 1.270 ToolBar.RunCtags		:exe "!" . g:ctags_command<CR>
  an 1.280 ToolBar.TagJump		g<C-]>

  an 1.295 ToolBar.-sep7-		<Nop>
  an 1.300 ToolBar.Help			:help<CR>
  an <silent> 1.310 ToolBar.FindHelp	:call <SID>Helpfind()<CR>

" Only set the tooltips here if not done in a language menu file
if exists("*Do_toolbar_tmenu")
  call Do_toolbar_tmenu()
else
  let did_toolbar_tmenu = 1
  tmenu ToolBar.Open		Open file
  tmenu ToolBar.Save		Save current file
  tmenu ToolBar.SaveAll		Save all files
  tmenu ToolBar.Print		Print
  tmenu ToolBar.Undo		Undo
  tmenu ToolBar.Redo		Redo
  tmenu ToolBar.Cut		Cut to clipboard
  tmenu ToolBar.Copy		Copy to clipboard
  tmenu ToolBar.Paste		Paste from Clipboard
  if !has("gui_athena")
    tmenu ToolBar.Replace	Find / Replace...
    tmenu ToolBar.FindNext	Find Next
    tmenu ToolBar.FindPrev	Find Previous
  endif
  tmenu ToolBar.LoadSesn	Choose a session to load
  tmenu ToolBar.SaveSesn	Save current session
  tmenu ToolBar.RunScript	Choose a Vim Script to run
  tmenu ToolBar.Make		Make current project (:make)
  tmenu ToolBar.RunCtags	Build tags in current directory tree (!ctags -R .)
  tmenu ToolBar.TagJump		Jump to tag under cursor
  tmenu ToolBar.Help		Vim Help
  tmenu ToolBar.FindHelp	Search Vim Help
endif

" Select a session to load; default to current session name if present
fun! s:LoadVimSesn()
  if strlen(v:this_session) > 0
    let name = s:FnameEscape(v:this_session)
  else
    let name = "Session.vim"
  endif
  execute "browse so " . name
endfun

" Select a session to save; default to current session name if present
fun! s:SaveVimSesn()
  if strlen(v:this_session) == 0
    let v:this_session = "Session.vim"
  endif
  execute "browse mksession! " . s:FnameEscape(v:this_session)
endfun

endif

endif " !exists("did_install_default_menus")

" Define these items always, so that syntax can be switched on when it wasn't.
" But skip them when the Syntax menu was disabled by the user.
if !exists("did_install_syntax_menu")
  an 50.212 &Syntax.&Manual		:syn manual<CR>
  an 50.214 &Syntax.A&utomatic		:syn on<CR>
  an <silent> 50.216 &Syntax.On/Off\ for\ &This\ File :call <SID>SynOnOff()<CR>
  if !exists("*s:SynOnOff")
    fun s:SynOnOff()
      if has("syntax_items")
	syn clear
      else
	if !exists("g:syntax_on")
	  syn manual
	endif
	set syn=ON
      endif
    endfun
  endif
endif


" Install the Syntax menu only when filetype.vim has been loaded or when
" manual syntax highlighting is enabled.
" Avoid installing the Syntax menu twice.
if (exists("did_load_filetypes") || exists("syntax_on"))
	\ && !exists("did_install_syntax_menu")
  let did_install_syntax_menu = 1

" Skip setting up the individual syntax selection menus unless
" do_syntax_sel_menu is defined (it takes quite a bit of time).
if exists("do_syntax_sel_menu")
  runtime! synmenu.vim
else
  an <silent> 50.10 &Syntax.&Show\ File\ Types\ in\ Menu	:let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ File\ Types\ in\ Menu<CR>
  an 50.195 &Syntax.-SEP1-		<Nop>
endif

an 50.210 &Syntax.&Off			:syn off<CR>
an 50.700 &Syntax.-SEP3-		<Nop>
an 50.710 &Syntax.Co&lor\ Test		:sp $VIMRUNTIME/syntax/colortest.vim<Bar>so %<CR>
an 50.720 &Syntax.&Highlight\ Test	:runtime syntax/hitest.vim<CR>
an 50.730 &Syntax.&Convert\ to\ HTML	:runtime syntax/2html.vim<CR>

endif " !exists("did_install_syntax_menu")

" Restore the previous value of 'cpoptions'.
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: set sw=2 :
PK�j�Z붵��vim80/bugreport.vimnu�[���:" Use this script to create the file "bugreport.txt", which contains
:" information about the environment of a possible bug in Vim.
:"
:" Maintainer:	Bram Moolenaar <Bram@vim.org>
:" Last change:	2005 Jun 12
:"
:" To use inside Vim:
:"	:so $VIMRUNTIME/bugreport.vim
:" Or, from the command line:
:"	vim -s $VIMRUNTIME/bugreport.vim
:"
:" The "if 1" lines are to avoid error messages when expression evaluation is
:" not compiled in.
:"
:if 1
:  let more_save = &more
:endif
:set nomore
:if has("unix")
:  !echo "uname -a" >bugreport.txt
:  !uname -a >>bugreport.txt
:endif
:redir >>bugreport.txt
:version
:if 1
:  func <SID>CheckDir(n)
:    if isdirectory(a:n)
:      echo 'directory "' . a:n . '" exists'
:    else
:      echo 'directory "' . a:n . '" does NOT exist'
:    endif
:  endfun
:  func <SID>CheckFile(n)
:    if filereadable(a:n)
:      echo '"' . a:n . '" is readable'
:    else
:      echo '"' . a:n . '" is NOT readable'
:    endif
:  endfun
:  echo "--- Directories and Files ---"
:  echo '$VIM = "' . $VIM . '"'
:  call <SID>CheckDir($VIM)
:  echo '$VIMRUNTIME = "' . $VIMRUNTIME . '"'
:  call <SID>CheckDir($VIMRUNTIME)
:  call <SID>CheckFile(&helpfile)
:  call <SID>CheckFile(fnamemodify(&helpfile, ":h") . "/tags")
:  call <SID>CheckFile($VIMRUNTIME . "/menu.vim")
:  call <SID>CheckFile($VIMRUNTIME . "/filetype.vim")
:  call <SID>CheckFile($VIMRUNTIME . "/syntax/synload.vim")
:  delfun <SID>CheckDir
:  delfun <SID>CheckFile
:  echo "--- Scripts sourced ---"
:  scriptnames
:endif
:set all
:set termcap
:if has("autocmd")
:  au
:endif
:if 1
:  echo "--- Normal/Visual mode mappings ---"
:endif
:map
:if 1
:  echo "--- Insert/Command-line mode mappings ---"
:endif
:map!
:if 1
:  echo "--- Abbreviations ---"
:endif
:ab
:if 1
:  echo "--- Highlighting ---"
:endif
:highlight
:if 1
:  echo "--- Variables ---"
:endif
:if 1
:  let
:endif
:redir END
:set more&
:if 1
:  let &more = more_save
:  unlet more_save
:endif
:e bugreport.txt
PK�j�Z�'$��vim80/ftplugin.vimnu�[���" Vim support file to switch on loading plugins for file types
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2006 Apr 30

if exists("did_load_ftplugin")
  finish
endif
let did_load_ftplugin = 1

augroup filetypeplugin
  au FileType * call s:LoadFTPlugin()

  func! s:LoadFTPlugin()
    if exists("b:undo_ftplugin")
      exe b:undo_ftplugin
      unlet! b:undo_ftplugin b:did_ftplugin
    endif

    let s = expand("<amatch>")
    if s != ""
      if &cpo =~# "S" && exists("b:did_ftplugin")
	" In compatible mode options are reset to the global values, need to
	" set the local values also when a plugin was already used.
	unlet b:did_ftplugin
      endif

      " When there is a dot it is used to separate filetype names.  Thus for
      " "aaa.bbb" load "aaa" and then "bbb".
      for name in split(s, '\.')
	exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim'
      endfor
    endif
  endfunc
augroup END
PK�j�Z�o��o�o�vim80/synmenu.vimnu�[���" Vim support file to define the syntax selection menu
" This file is normally sourced from menu.vim.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Oct 28

" Define the SetSyn function, used for the Syntax menu entries.
" Set 'filetype' and also 'syntax' if it is manually selected.
fun! SetSyn(name)
  if a:name == "fvwm1"
    let use_fvwm_1 = 1
    let use_fvwm_2 = 0
    let name = "fvwm"
  elseif a:name == "fvwm2"
    let use_fvwm_2 = 1
    let use_fvwm_1 = 0
    let name = "fvwm"
  else
    let name = a:name
  endif
  if !exists("s:syntax_menu_synonly")
    exe "set ft=" . name
    if exists("g:syntax_manual")
      exe "set syn=" . name
    endif
  else
    exe "set syn=" . name
  endif
endfun

" <> notation is used here, remove '<' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim

" The following menu items are generated by makemenu.vim.
" The Start Of The Syntax Menu

an 50.10.100 &Syntax.AB.A2ps\ config :cal SetSyn("a2ps")<CR>
an 50.10.110 &Syntax.AB.Aap :cal SetSyn("aap")<CR>
an 50.10.120 &Syntax.AB.ABAP/4 :cal SetSyn("abap")<CR>
an 50.10.130 &Syntax.AB.Abaqus :cal SetSyn("abaqus")<CR>
an 50.10.140 &Syntax.AB.ABC\ music\ notation :cal SetSyn("abc")<CR>
an 50.10.150 &Syntax.AB.ABEL :cal SetSyn("abel")<CR>
an 50.10.160 &Syntax.AB.AceDB\ model :cal SetSyn("acedb")<CR>
an 50.10.170 &Syntax.AB.Ada :cal SetSyn("ada")<CR>
an 50.10.180 &Syntax.AB.AfLex :cal SetSyn("aflex")<CR>
an 50.10.190 &Syntax.AB.ALSA\ config :cal SetSyn("alsaconf")<CR>
an 50.10.200 &Syntax.AB.Altera\ AHDL :cal SetSyn("ahdl")<CR>
an 50.10.210 &Syntax.AB.Amiga\ DOS :cal SetSyn("amiga")<CR>
an 50.10.220 &Syntax.AB.AMPL :cal SetSyn("ampl")<CR>
an 50.10.230 &Syntax.AB.Ant\ build\ file :cal SetSyn("ant")<CR>
an 50.10.240 &Syntax.AB.ANTLR :cal SetSyn("antlr")<CR>
an 50.10.250 &Syntax.AB.Apache\ config :cal SetSyn("apache")<CR>
an 50.10.260 &Syntax.AB.Apache-style\ config :cal SetSyn("apachestyle")<CR>
an 50.10.270 &Syntax.AB.Applix\ ELF :cal SetSyn("elf")<CR>
an 50.10.280 &Syntax.AB.APT\ config :cal SetSyn("aptconf")<CR>
an 50.10.290 &Syntax.AB.Arc\ Macro\ Language :cal SetSyn("aml")<CR>
an 50.10.300 &Syntax.AB.Arch\ inventory :cal SetSyn("arch")<CR>
an 50.10.310 &Syntax.AB.ART :cal SetSyn("art")<CR>
an 50.10.320 &Syntax.AB.Ascii\ Doc :cal SetSyn("asciidoc")<CR>
an 50.10.330 &Syntax.AB.ASP\ with\ VBScript :cal SetSyn("aspvbs")<CR>
an 50.10.340 &Syntax.AB.ASP\ with\ Perl :cal SetSyn("aspperl")<CR>
an 50.10.350 &Syntax.AB.Assembly.680x0 :cal SetSyn("asm68k")<CR>
an 50.10.360 &Syntax.AB.Assembly.Flat :cal SetSyn("fasm")<CR>
an 50.10.370 &Syntax.AB.Assembly.GNU :cal SetSyn("asm")<CR>
an 50.10.380 &Syntax.AB.Assembly.GNU\ H-8300 :cal SetSyn("asmh8300")<CR>
an 50.10.390 &Syntax.AB.Assembly.Intel\ IA-64 :cal SetSyn("ia64")<CR>
an 50.10.400 &Syntax.AB.Assembly.Microsoft :cal SetSyn("masm")<CR>
an 50.10.410 &Syntax.AB.Assembly.Netwide :cal SetSyn("nasm")<CR>
an 50.10.420 &Syntax.AB.Assembly.PIC :cal SetSyn("pic")<CR>
an 50.10.430 &Syntax.AB.Assembly.Turbo :cal SetSyn("tasm")<CR>
an 50.10.440 &Syntax.AB.Assembly.VAX\ Macro\ Assembly :cal SetSyn("vmasm")<CR>
an 50.10.450 &Syntax.AB.Assembly.Z-80 :cal SetSyn("z8a")<CR>
an 50.10.460 &Syntax.AB.Assembly.xa\ 6502\ cross\ assember :cal SetSyn("a65")<CR>
an 50.10.470 &Syntax.AB.ASN\.1 :cal SetSyn("asn")<CR>
an 50.10.480 &Syntax.AB.Asterisk\ config :cal SetSyn("asterisk")<CR>
an 50.10.490 &Syntax.AB.Asterisk\ voicemail\ config :cal SetSyn("asteriskvm")<CR>
an 50.10.500 &Syntax.AB.Atlas :cal SetSyn("atlas")<CR>
an 50.10.510 &Syntax.AB.AutoHotKey :cal SetSyn("autohotkey")<CR>
an 50.10.520 &Syntax.AB.AutoIt :cal SetSyn("autoit")<CR>
an 50.10.530 &Syntax.AB.Automake :cal SetSyn("automake")<CR>
an 50.10.540 &Syntax.AB.Avenue :cal SetSyn("ave")<CR>
an 50.10.550 &Syntax.AB.Awk :cal SetSyn("awk")<CR>
an 50.10.560 &Syntax.AB.AYacc :cal SetSyn("ayacc")<CR>
an 50.10.580 &Syntax.AB.B :cal SetSyn("b")<CR>
an 50.10.590 &Syntax.AB.Baan :cal SetSyn("baan")<CR>
an 50.10.600 &Syntax.AB.Basic.FreeBasic :cal SetSyn("freebasic")<CR>
an 50.10.610 &Syntax.AB.Basic.IBasic :cal SetSyn("ibasic")<CR>
an 50.10.620 &Syntax.AB.Basic.QBasic :cal SetSyn("basic")<CR>
an 50.10.630 &Syntax.AB.Basic.Visual\ Basic :cal SetSyn("vb")<CR>
an 50.10.640 &Syntax.AB.Bazaar\ commit\ file :cal SetSyn("bzr")<CR>
an 50.10.650 &Syntax.AB.BC\ calculator :cal SetSyn("bc")<CR>
an 50.10.660 &Syntax.AB.BDF\ font :cal SetSyn("bdf")<CR>
an 50.10.670 &Syntax.AB.BibTeX.Bibliography\ database :cal SetSyn("bib")<CR>
an 50.10.680 &Syntax.AB.BibTeX.Bibliography\ Style :cal SetSyn("bst")<CR>
an 50.10.690 &Syntax.AB.BIND.BIND\ config :cal SetSyn("named")<CR>
an 50.10.700 &Syntax.AB.BIND.BIND\ zone :cal SetSyn("bindzone")<CR>
an 50.10.710 &Syntax.AB.Blank :cal SetSyn("blank")<CR>
an 50.20.100 &Syntax.C.C :cal SetSyn("c")<CR>
an 50.20.110 &Syntax.C.C++ :cal SetSyn("cpp")<CR>
an 50.20.120 &Syntax.C.C# :cal SetSyn("cs")<CR>
an 50.20.130 &Syntax.C.Cabal\ Haskell\ build\ file :cal SetSyn("cabal")<CR>
an 50.20.140 &Syntax.C.Calendar :cal SetSyn("calendar")<CR>
an 50.20.150 &Syntax.C.Cascading\ Style\ Sheets :cal SetSyn("css")<CR>
an 50.20.160 &Syntax.C.CDL :cal SetSyn("cdl")<CR>
an 50.20.170 &Syntax.C.Cdrdao\ TOC :cal SetSyn("cdrtoc")<CR>
an 50.20.180 &Syntax.C.Cdrdao\ config :cal SetSyn("cdrdaoconf")<CR>
an 50.20.190 &Syntax.C.Century\ Term :cal SetSyn("cterm")<CR>
an 50.20.200 &Syntax.C.CH\ script :cal SetSyn("ch")<CR>
an 50.20.210 &Syntax.C.ChaiScript :cal SetSyn("chaiscript")<CR>
an 50.20.220 &Syntax.C.ChangeLog :cal SetSyn("changelog")<CR>
an 50.20.230 &Syntax.C.Cheetah\ template :cal SetSyn("cheetah")<CR>
an 50.20.240 &Syntax.C.CHILL :cal SetSyn("chill")<CR>
an 50.20.250 &Syntax.C.ChordPro :cal SetSyn("chordpro")<CR>
an 50.20.260 &Syntax.C.Clean :cal SetSyn("clean")<CR>
an 50.20.270 &Syntax.C.Clever :cal SetSyn("cl")<CR>
an 50.20.280 &Syntax.C.Clipper :cal SetSyn("clipper")<CR>
an 50.20.290 &Syntax.C.Clojure :cal SetSyn("clojure")<CR>
an 50.20.300 &Syntax.C.Cmake :cal SetSyn("cmake")<CR>
an 50.20.310 &Syntax.C.Cmusrc :cal SetSyn("cmusrc")<CR>
an 50.20.320 &Syntax.C.Cobol :cal SetSyn("cobol")<CR>
an 50.20.330 &Syntax.C.Coco/R :cal SetSyn("coco")<CR>
an 50.20.340 &Syntax.C.Cold\ Fusion :cal SetSyn("cf")<CR>
an 50.20.350 &Syntax.C.Conary\ Recipe :cal SetSyn("conaryrecipe")<CR>
an 50.20.360 &Syntax.C.Config.Cfg\ Config\ file :cal SetSyn("cfg")<CR>
an 50.20.370 &Syntax.C.Config.Configure\.in :cal SetSyn("config")<CR>
an 50.20.380 &Syntax.C.Config.Generic\ Config\ file :cal SetSyn("conf")<CR>
an 50.20.390 &Syntax.C.CRM114 :cal SetSyn("crm")<CR>
an 50.20.400 &Syntax.C.Crontab :cal SetSyn("crontab")<CR>
an 50.20.410 &Syntax.C.CSDL :cal SetSyn("csdl")<CR>
an 50.20.420 &Syntax.C.CSP :cal SetSyn("csp")<CR>
an 50.20.430 &Syntax.C.Ctrl-H :cal SetSyn("ctrlh")<CR>
an 50.20.440 &Syntax.C.Cucumber :cal SetSyn("cucumber")<CR>
an 50.20.450 &Syntax.C.CUDA :cal SetSyn("cuda")<CR>
an 50.20.460 &Syntax.C.CUPL.CUPL :cal SetSyn("cupl")<CR>
an 50.20.470 &Syntax.C.CUPL.Simulation :cal SetSyn("cuplsim")<CR>
an 50.20.480 &Syntax.C.CVS.commit\ file :cal SetSyn("cvs")<CR>
an 50.20.490 &Syntax.C.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
an 50.20.500 &Syntax.C.Cyn++ :cal SetSyn("cynpp")<CR>
an 50.20.510 &Syntax.C.Cynlib :cal SetSyn("cynlib")<CR>
an 50.30.100 &Syntax.DE.D :cal SetSyn("d")<CR>
an 50.30.110 &Syntax.DE.Datascript :cal SetSyn("datascript")<CR>
an 50.30.120 &Syntax.DE.Debian.Debian\ ChangeLog :cal SetSyn("debchangelog")<CR>
an 50.30.130 &Syntax.DE.Debian.Debian\ Control :cal SetSyn("debcontrol")<CR>
an 50.30.140 &Syntax.DE.Debian.Debian\ Sources\.list :cal SetSyn("debsources")<CR>
an 50.30.150 &Syntax.DE.Denyhosts :cal SetSyn("denyhosts")<CR>
an 50.30.160 &Syntax.DE.Desktop :cal SetSyn("desktop")<CR>
an 50.30.170 &Syntax.DE.Dict\ config :cal SetSyn("dictconf")<CR>
an 50.30.180 &Syntax.DE.Dictd\ config :cal SetSyn("dictdconf")<CR>
an 50.30.190 &Syntax.DE.Diff :cal SetSyn("diff")<CR>
an 50.30.200 &Syntax.DE.Digital\ Command\ Lang :cal SetSyn("dcl")<CR>
an 50.30.210 &Syntax.DE.Dircolors :cal SetSyn("dircolors")<CR>
an 50.30.220 &Syntax.DE.Django\ template :cal SetSyn("django")<CR>
an 50.30.230 &Syntax.DE.DNS/BIND\ zone :cal SetSyn("bindzone")<CR>
an 50.30.240 &Syntax.DE.Dnsmasq\ config :cal SetSyn("dnsmasq")<CR>
an 50.30.250 &Syntax.DE.DocBook.auto-detect :cal SetSyn("docbk")<CR>
an 50.30.260 &Syntax.DE.DocBook.SGML :cal SetSyn("docbksgml")<CR>
an 50.30.270 &Syntax.DE.DocBook.XML :cal SetSyn("docbkxml")<CR>
an 50.30.280 &Syntax.DE.Dot :cal SetSyn("dot")<CR>
an 50.30.290 &Syntax.DE.Doxygen.C\ with\ doxygen :cal SetSyn("c.doxygen")<CR>
an 50.30.300 &Syntax.DE.Doxygen.C++\ with\ doxygen :cal SetSyn("cpp.doxygen")<CR>
an 50.30.310 &Syntax.DE.Doxygen.IDL\ with\ doxygen :cal SetSyn("idl.doxygen")<CR>
an 50.30.320 &Syntax.DE.Doxygen.Java\ with\ doxygen :cal SetSyn("java.doxygen")<CR>
an 50.30.330 &Syntax.DE.Doxygen.DataScript\ with\ doxygen :cal SetSyn("datascript.doxygen")<CR>
an 50.30.340 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
an 50.30.350 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
an 50.30.360 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>
an 50.30.370 &Syntax.DE.DTML\ (Zope) :cal SetSyn("dtml")<CR>
an 50.30.380 &Syntax.DE.DTrace :cal SetSyn("dtrace")<CR>
an 50.30.390 &Syntax.DE.Dts/dtsi :cal SetSyn("dts")<CR>
an 50.30.400 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
an 50.30.410 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
an 50.30.420 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
an 50.30.440 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
an 50.30.450 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
an 50.30.460 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
an 50.30.470 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
an 50.30.480 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
an 50.30.490 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
an 50.30.500 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
an 50.30.510 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
an 50.30.520 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
an 50.30.530 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
an 50.30.540 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
an 50.30.550 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
an 50.30.560 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
an 50.30.570 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
an 50.30.580 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
an 50.40.100 &Syntax.FG.Falcon :cal SetSyn("falcon")<CR>
an 50.40.110 &Syntax.FG.Fantom :cal SetSyn("fan")<CR>
an 50.40.120 &Syntax.FG.Fetchmail :cal SetSyn("fetchmail")<CR>
an 50.40.130 &Syntax.FG.FlexWiki :cal SetSyn("flexwiki")<CR>
an 50.40.140 &Syntax.FG.Focus\ Executable :cal SetSyn("focexec")<CR>
an 50.40.150 &Syntax.FG.Focus\ Master :cal SetSyn("master")<CR>
an 50.40.160 &Syntax.FG.FORM :cal SetSyn("form")<CR>
an 50.40.170 &Syntax.FG.Forth :cal SetSyn("forth")<CR>
an 50.40.180 &Syntax.FG.Fortran :cal SetSyn("fortran")<CR>
an 50.40.190 &Syntax.FG.FoxPro :cal SetSyn("foxpro")<CR>
an 50.40.200 &Syntax.FG.FrameScript :cal SetSyn("framescript")<CR>
an 50.40.210 &Syntax.FG.Fstab :cal SetSyn("fstab")<CR>
an 50.40.220 &Syntax.FG.Fvwm.Fvwm\ configuration :cal SetSyn("fvwm1")<CR>
an 50.40.230 &Syntax.FG.Fvwm.Fvwm2\ configuration :cal SetSyn("fvwm2")<CR>
an 50.40.240 &Syntax.FG.Fvwm.Fvwm2\ configuration\ with\ M4 :cal SetSyn("fvwm2m4")<CR>
an 50.40.260 &Syntax.FG.GDB\ command\ file :cal SetSyn("gdb")<CR>
an 50.40.270 &Syntax.FG.GDMO :cal SetSyn("gdmo")<CR>
an 50.40.280 &Syntax.FG.Gedcom :cal SetSyn("gedcom")<CR>
an 50.40.290 &Syntax.FG.Git.Output :cal SetSyn("git")<CR>
an 50.40.300 &Syntax.FG.Git.Commit :cal SetSyn("gitcommit")<CR>
an 50.40.310 &Syntax.FG.Git.Config :cal SetSyn("gitconfig")<CR>
an 50.40.320 &Syntax.FG.Git.Rebase :cal SetSyn("gitrebase")<CR>
an 50.40.330 &Syntax.FG.Git.Send\ Email :cal SetSyn("gitsendemail")<CR>
an 50.40.340 &Syntax.FG.Gitolite :cal SetSyn("gitolite")<CR>
an 50.40.350 &Syntax.FG.Gkrellmrc :cal SetSyn("gkrellmrc")<CR>
an 50.40.360 &Syntax.FG.Gnash :cal SetSyn("gnash")<CR>
an 50.40.370 &Syntax.FG.GP :cal SetSyn("gp")<CR>
an 50.40.380 &Syntax.FG.GPG :cal SetSyn("gpg")<CR>
an 50.40.390 &Syntax.FG.Grof :cal SetSyn("gprof")<CR>
an 50.40.400 &Syntax.FG.Group\ file :cal SetSyn("group")<CR>
an 50.40.410 &Syntax.FG.Grub :cal SetSyn("grub")<CR>
an 50.40.420 &Syntax.FG.GNU\ Server\ Pages :cal SetSyn("gsp")<CR>
an 50.40.430 &Syntax.FG.GNUplot :cal SetSyn("gnuplot")<CR>
an 50.40.440 &Syntax.FG.GrADS\ scripts :cal SetSyn("grads")<CR>
an 50.40.450 &Syntax.FG.Gretl :cal SetSyn("gretl")<CR>
an 50.40.460 &Syntax.FG.Groff :cal SetSyn("groff")<CR>
an 50.40.470 &Syntax.FG.Groovy :cal SetSyn("groovy")<CR>
an 50.40.480 &Syntax.FG.GTKrc :cal SetSyn("gtkrc")<CR>
an 50.50.100 &Syntax.HIJK.Haml :cal SetSyn("haml")<CR>
an 50.50.110 &Syntax.HIJK.Hamster :cal SetSyn("hamster")<CR>
an 50.50.120 &Syntax.HIJK.Haskell.Haskell :cal SetSyn("haskell")<CR>
an 50.50.130 &Syntax.HIJK.Haskell.Haskell-c2hs :cal SetSyn("chaskell")<CR>
an 50.50.140 &Syntax.HIJK.Haskell.Haskell-literate :cal SetSyn("lhaskell")<CR>
an 50.50.150 &Syntax.HIJK.HASTE :cal SetSyn("haste")<CR>
an 50.50.160 &Syntax.HIJK.HASTE\ preproc :cal SetSyn("hastepreproc")<CR>
an 50.50.170 &Syntax.HIJK.Hercules :cal SetSyn("hercules")<CR>
an 50.50.180 &Syntax.HIJK.Hex\ dump.XXD :cal SetSyn("xxd")<CR>
an 50.50.190 &Syntax.HIJK.Hex\ dump.Intel\ MCS51 :cal SetSyn("hex")<CR>
an 50.50.200 &Syntax.HIJK.Hg\ commit :cal SetSyn("hgcommit")<CR>
an 50.50.210 &Syntax.HIJK.HTML.HTML :cal SetSyn("html")<CR>
an 50.50.220 &Syntax.HIJK.HTML.HTML\ with\ M4 :cal SetSyn("htmlm4")<CR>
an 50.50.230 &Syntax.HIJK.HTML.HTML\ with\ Ruby\ (eRuby) :cal SetSyn("eruby")<CR>
an 50.50.240 &Syntax.HIJK.HTML.Cheetah\ HTML\ template :cal SetSyn("htmlcheetah")<CR>
an 50.50.250 &Syntax.HIJK.HTML.Django\ HTML\ template :cal SetSyn("htmldjango")<CR>
an 50.50.260 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR>
an 50.50.270 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR>
an 50.50.280 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR>
an 50.50.290 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR>
an 50.50.300 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR>
an 50.50.320 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR>
an 50.50.330 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR>
an 50.50.340 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR>
an 50.50.350 &Syntax.HIJK.IDL\Microsoft\ IDL :cal SetSyn("msidl")<CR>
an 50.50.360 &Syntax.HIJK.Indent\ profile :cal SetSyn("indent")<CR>
an 50.50.370 &Syntax.HIJK.Inform :cal SetSyn("inform")<CR>
an 50.50.380 &Syntax.HIJK.Informix\ 4GL :cal SetSyn("fgl")<CR>
an 50.50.390 &Syntax.HIJK.Initng :cal SetSyn("initng")<CR>
an 50.50.400 &Syntax.HIJK.Inittab :cal SetSyn("inittab")<CR>
an 50.50.410 &Syntax.HIJK.Inno\ setup :cal SetSyn("iss")<CR>
an 50.50.420 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ dat :cal SetSyn("upstreamdat")<CR>
an 50.50.430 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ log :cal SetSyn("upstreamlog")<CR>
an 50.50.440 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ Install\ log :cal SetSyn("upstreaminstalllog")<CR>
an 50.50.450 &Syntax.HIJK.Innovation\ Data\ Processing.Usserver\ log :cal SetSyn("usserverlog")<CR>
an 50.50.460 &Syntax.HIJK.Innovation\ Data\ Processing.USW2KAgt\ log :cal SetSyn("usw2kagtlog")<CR>
an 50.50.470 &Syntax.HIJK.InstallShield\ script :cal SetSyn("ishd")<CR>
an 50.50.480 &Syntax.HIJK.Interactive\ Data\ Lang :cal SetSyn("idlang")<CR>
an 50.50.490 &Syntax.HIJK.IPfilter :cal SetSyn("ipfilter")<CR>
an 50.50.510 &Syntax.HIJK.JAL :cal SetSyn("jal")<CR>
an 50.50.520 &Syntax.HIJK.JAM :cal SetSyn("jam")<CR>
an 50.50.530 &Syntax.HIJK.Jargon :cal SetSyn("jargon")<CR>
an 50.50.540 &Syntax.HIJK.Java.Java :cal SetSyn("java")<CR>
an 50.50.550 &Syntax.HIJK.Java.JavaCC :cal SetSyn("javacc")<CR>
an 50.50.560 &Syntax.HIJK.Java.Java\ Server\ Pages :cal SetSyn("jsp")<CR>
an 50.50.570 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
an 50.50.580 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
an 50.50.590 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
an 50.50.600 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
an 50.50.610 &Syntax.HIJK.Jovial :cal SetSyn("jovial")<CR>
an 50.50.630 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
an 50.50.640 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
an 50.50.650 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
an 50.50.660 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
an 50.60.100 &Syntax.L.Lace :cal SetSyn("lace")<CR>
an 50.60.110 &Syntax.L.LamdaProlog :cal SetSyn("lprolog")<CR>
an 50.60.120 &Syntax.L.Latte :cal SetSyn("latte")<CR>
an 50.60.130 &Syntax.L.Ld\ script :cal SetSyn("ld")<CR>
an 50.60.140 &Syntax.L.LDAP.LDIF :cal SetSyn("ldif")<CR>
an 50.60.150 &Syntax.L.LDAP.Configuration :cal SetSyn("ldapconf")<CR>
an 50.60.160 &Syntax.L.Lex :cal SetSyn("lex")<CR>
an 50.60.170 &Syntax.L.LFTP\ config :cal SetSyn("lftp")<CR>
an 50.60.180 &Syntax.L.Libao :cal SetSyn("libao")<CR>
an 50.60.190 &Syntax.L.LifeLines\ script :cal SetSyn("lifelines")<CR>
an 50.60.200 &Syntax.L.Lilo :cal SetSyn("lilo")<CR>
an 50.60.210 &Syntax.L.Limits\ config :cal SetSyn("limits")<CR>
an 50.60.220 &Syntax.L.Linden\ scripting :cal SetSyn("lsl")<CR>
an 50.60.230 &Syntax.L.Liquid :cal SetSyn("liquid")<CR>
an 50.60.240 &Syntax.L.Lisp :cal SetSyn("lisp")<CR>
an 50.60.250 &Syntax.L.Lite :cal SetSyn("lite")<CR>
an 50.60.260 &Syntax.L.LiteStep\ RC :cal SetSyn("litestep")<CR>
an 50.60.270 &Syntax.L.Locale\ Input :cal SetSyn("fdcc")<CR>
an 50.60.280 &Syntax.L.Login\.access :cal SetSyn("loginaccess")<CR>
an 50.60.290 &Syntax.L.Login\.defs :cal SetSyn("logindefs")<CR>
an 50.60.300 &Syntax.L.Logtalk :cal SetSyn("logtalk")<CR>
an 50.60.310 &Syntax.L.LOTOS :cal SetSyn("lotos")<CR>
an 50.60.320 &Syntax.L.LotusScript :cal SetSyn("lscript")<CR>
an 50.60.330 &Syntax.L.Lout :cal SetSyn("lout")<CR>
an 50.60.340 &Syntax.L.LPC :cal SetSyn("lpc")<CR>
an 50.60.350 &Syntax.L.Lua :cal SetSyn("lua")<CR>
an 50.60.360 &Syntax.L.Lynx\ Style :cal SetSyn("lss")<CR>
an 50.60.370 &Syntax.L.Lynx\ config :cal SetSyn("lynx")<CR>
an 50.70.100 &Syntax.M.M4 :cal SetSyn("m4")<CR>
an 50.70.110 &Syntax.M.MaGic\ Point :cal SetSyn("mgp")<CR>
an 50.70.120 &Syntax.M.Mail :cal SetSyn("mail")<CR>
an 50.70.130 &Syntax.M.Mail\ aliases :cal SetSyn("mailaliases")<CR>
an 50.70.140 &Syntax.M.Mailcap :cal SetSyn("mailcap")<CR>
an 50.70.150 &Syntax.M.Mallard :cal SetSyn("mallard")<CR>
an 50.70.160 &Syntax.M.Makefile :cal SetSyn("make")<CR>
an 50.70.170 &Syntax.M.MakeIndex :cal SetSyn("ist")<CR>
an 50.70.180 &Syntax.M.Man\ page :cal SetSyn("man")<CR>
an 50.70.190 &Syntax.M.Man\.conf :cal SetSyn("manconf")<CR>
an 50.70.200 &Syntax.M.Maple\ V :cal SetSyn("maple")<CR>
an 50.70.210 &Syntax.M.Markdown :cal SetSyn("markdown")<CR>
an 50.70.220 &Syntax.M.Mason :cal SetSyn("mason")<CR>
an 50.70.230 &Syntax.M.Mathematica :cal SetSyn("mma")<CR>
an 50.70.240 &Syntax.M.Matlab :cal SetSyn("matlab")<CR>
an 50.70.250 &Syntax.M.Maxima :cal SetSyn("maxima")<CR>
an 50.70.260 &Syntax.M.MEL\ (for\ Maya) :cal SetSyn("mel")<CR>
an 50.70.270 &Syntax.M.Messages\ (/var/log) :cal SetSyn("messages")<CR>
an 50.70.280 &Syntax.M.Metafont :cal SetSyn("mf")<CR>
an 50.70.290 &Syntax.M.MetaPost :cal SetSyn("mp")<CR>
an 50.70.300 &Syntax.M.MGL :cal SetSyn("mgl")<CR>
an 50.70.310 &Syntax.M.MMIX :cal SetSyn("mmix")<CR>
an 50.70.320 &Syntax.M.Modconf :cal SetSyn("modconf")<CR>
an 50.70.330 &Syntax.M.Model :cal SetSyn("model")<CR>
an 50.70.340 &Syntax.M.Modsim\ III :cal SetSyn("modsim3")<CR>
an 50.70.350 &Syntax.M.Modula\ 2 :cal SetSyn("modula2")<CR>
an 50.70.360 &Syntax.M.Modula\ 3 :cal SetSyn("modula3")<CR>
an 50.70.370 &Syntax.M.Monk :cal SetSyn("monk")<CR>
an 50.70.380 &Syntax.M.Mplayer\ config :cal SetSyn("mplayerconf")<CR>
an 50.70.390 &Syntax.M.MOO :cal SetSyn("moo")<CR>
an 50.70.400 &Syntax.M.Mrxvtrc :cal SetSyn("mrxvtrc")<CR>
an 50.70.410 &Syntax.M.MS-DOS/Windows.4DOS\ \.bat\ file :cal SetSyn("btm")<CR>
an 50.70.420 &Syntax.M.MS-DOS/Windows.\.bat\/\.cmd\ file :cal SetSyn("dosbatch")<CR>
an 50.70.430 &Syntax.M.MS-DOS/Windows.\.ini\ file :cal SetSyn("dosini")<CR>
an 50.70.440 &Syntax.M.MS-DOS/Windows.Message\ text :cal SetSyn("msmessages")<CR>
an 50.70.450 &Syntax.M.MS-DOS/Windows.Module\ Definition :cal SetSyn("def")<CR>
an 50.70.460 &Syntax.M.MS-DOS/Windows.Registry :cal SetSyn("registry")<CR>
an 50.70.470 &Syntax.M.MS-DOS/Windows.Resource\ file :cal SetSyn("rc")<CR>
an 50.70.480 &Syntax.M.Msql :cal SetSyn("msql")<CR>
an 50.70.490 &Syntax.M.MuPAD :cal SetSyn("mupad")<CR>
an 50.70.500 &Syntax.M.MUSHcode :cal SetSyn("mush")<CR>
an 50.70.510 &Syntax.M.Muttrc :cal SetSyn("muttrc")<CR>
an 50.80.100 &Syntax.NO.Nanorc :cal SetSyn("nanorc")<CR>
an 50.80.110 &Syntax.NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
an 50.80.120 &Syntax.NO.Natural :cal SetSyn("natural")<CR>
an 50.80.130 &Syntax.NO.Neomuttrc :cal SetSyn("neomuttrc")<CR>
an 50.80.140 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
an 50.80.150 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
an 50.80.160 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
an 50.80.170 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
an 50.80.180 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
an 50.80.190 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
an 50.80.200 &Syntax.NO.Obj\ 3D\ wavefront :cal SetSyn("obj")<CR>
an 50.80.210 &Syntax.NO.Objective\ C :cal SetSyn("objc")<CR>
an 50.80.220 &Syntax.NO.Objective\ C++ :cal SetSyn("objcpp")<CR>
an 50.80.230 &Syntax.NO.OCAML :cal SetSyn("ocaml")<CR>
an 50.80.240 &Syntax.NO.Occam :cal SetSyn("occam")<CR>
an 50.80.250 &Syntax.NO.Omnimark :cal SetSyn("omnimark")<CR>
an 50.80.260 &Syntax.NO.OpenROAD :cal SetSyn("openroad")<CR>
an 50.80.270 &Syntax.NO.Open\ Psion\ Lang :cal SetSyn("opl")<CR>
an 50.80.280 &Syntax.NO.Oracle\ config :cal SetSyn("ora")<CR>
an 50.90.100 &Syntax.PQ.Packet\ filter\ conf :cal SetSyn("pf")<CR>
an 50.90.110 &Syntax.PQ.Palm\ resource\ compiler :cal SetSyn("pilrc")<CR>
an 50.90.120 &Syntax.PQ.Pam\ config :cal SetSyn("pamconf")<CR>
an 50.90.130 &Syntax.PQ.PApp :cal SetSyn("papp")<CR>
an 50.90.140 &Syntax.PQ.Pascal :cal SetSyn("pascal")<CR>
an 50.90.150 &Syntax.PQ.Password\ file :cal SetSyn("passwd")<CR>
an 50.90.160 &Syntax.PQ.PCCTS :cal SetSyn("pccts")<CR>
an 50.90.170 &Syntax.PQ.PDF :cal SetSyn("pdf")<CR>
an 50.90.180 &Syntax.PQ.Perl.Perl :cal SetSyn("perl")<CR>
an 50.90.190 &Syntax.PQ.Perl.Perl\ 6 :cal SetSyn("perl6")<CR>
an 50.90.200 &Syntax.PQ.Perl.Perl\ POD :cal SetSyn("pod")<CR>
an 50.90.210 &Syntax.PQ.Perl.Perl\ XS :cal SetSyn("xs")<CR>
an 50.90.220 &Syntax.PQ.Perl.Template\ toolkit :cal SetSyn("tt2")<CR>
an 50.90.230 &Syntax.PQ.Perl.Template\ toolkit\ Html :cal SetSyn("tt2html")<CR>
an 50.90.240 &Syntax.PQ.Perl.Template\ toolkit\ JS :cal SetSyn("tt2js")<CR>
an 50.90.250 &Syntax.PQ.PHP.PHP\ 3-4 :cal SetSyn("php")<CR>
an 50.90.260 &Syntax.PQ.PHP.Phtml\ (PHP\ 2) :cal SetSyn("phtml")<CR>
an 50.90.270 &Syntax.PQ.Pike :cal SetSyn("pike")<CR>
an 50.90.280 &Syntax.PQ.Pine\ RC :cal SetSyn("pine")<CR>
an 50.90.290 &Syntax.PQ.Pinfo\ RC :cal SetSyn("pinfo")<CR>
an 50.90.300 &Syntax.PQ.PL/M :cal SetSyn("plm")<CR>
an 50.90.310 &Syntax.PQ.PL/SQL :cal SetSyn("plsql")<CR>
an 50.90.320 &Syntax.PQ.Pli :cal SetSyn("pli")<CR>
an 50.90.330 &Syntax.PQ.PLP :cal SetSyn("plp")<CR>
an 50.90.340 &Syntax.PQ.PO\ (GNU\ gettext) :cal SetSyn("po")<CR>
an 50.90.350 &Syntax.PQ.Postfix\ main\ config :cal SetSyn("pfmain")<CR>
an 50.90.360 &Syntax.PQ.PostScript.PostScript :cal SetSyn("postscr")<CR>
an 50.90.370 &Syntax.PQ.PostScript.PostScript\ Printer\ Description :cal SetSyn("ppd")<CR>
an 50.90.380 &Syntax.PQ.Povray.Povray\ scene\ descr :cal SetSyn("pov")<CR>
an 50.90.390 &Syntax.PQ.Povray.Povray\ configuration :cal SetSyn("povini")<CR>
an 50.90.400 &Syntax.PQ.PPWizard :cal SetSyn("ppwiz")<CR>
an 50.90.410 &Syntax.PQ.Prescribe\ (Kyocera) :cal SetSyn("prescribe")<CR>
an 50.90.420 &Syntax.PQ.Printcap :cal SetSyn("pcap")<CR>
an 50.90.430 &Syntax.PQ.Privoxy :cal SetSyn("privoxy")<CR>
an 50.90.440 &Syntax.PQ.Procmail :cal SetSyn("procmail")<CR>
an 50.90.450 &Syntax.PQ.Product\ Spec\ File :cal SetSyn("psf")<CR>
an 50.90.460 &Syntax.PQ.Progress :cal SetSyn("progress")<CR>
an 50.90.470 &Syntax.PQ.Prolog :cal SetSyn("prolog")<CR>
an 50.90.480 &Syntax.PQ.ProMeLa :cal SetSyn("promela")<CR>
an 50.90.490 &Syntax.PQ.Proto :cal SetSyn("proto")<CR>
an 50.90.500 &Syntax.PQ.Protocols :cal SetSyn("protocols")<CR>
an 50.90.510 &Syntax.PQ.Purify\ log :cal SetSyn("purifylog")<CR>
an 50.90.520 &Syntax.PQ.Pyrex :cal SetSyn("pyrex")<CR>
an 50.90.530 &Syntax.PQ.Python :cal SetSyn("python")<CR>
an 50.90.550 &Syntax.PQ.Quake :cal SetSyn("quake")<CR>
an 50.90.560 &Syntax.PQ.Quickfix\ window :cal SetSyn("qf")<CR>
an 50.100.100 &Syntax.R.R.R :cal SetSyn("r")<CR>
an 50.100.110 &Syntax.R.R.R\ help :cal SetSyn("rhelp")<CR>
an 50.100.120 &Syntax.R.R.R\ noweb :cal SetSyn("rnoweb")<CR>
an 50.100.130 &Syntax.R.Racc\ input :cal SetSyn("racc")<CR>
an 50.100.140 &Syntax.R.Radiance :cal SetSyn("radiance")<CR>
an 50.100.150 &Syntax.R.Ratpoison :cal SetSyn("ratpoison")<CR>
an 50.100.160 &Syntax.R.RCS.RCS\ log\ output :cal SetSyn("rcslog")<CR>
an 50.100.170 &Syntax.R.RCS.RCS\ file :cal SetSyn("rcs")<CR>
an 50.100.180 &Syntax.R.Readline\ config :cal SetSyn("readline")<CR>
an 50.100.190 &Syntax.R.Rebol :cal SetSyn("rebol")<CR>
an 50.100.200 &Syntax.R.ReDIF :cal SetSyn("redif")<CR>
an 50.100.210 &Syntax.R.Relax\ NG :cal SetSyn("rng")<CR>
an 50.100.220 &Syntax.R.Remind :cal SetSyn("remind")<CR>
an 50.100.230 &Syntax.R.Relax\ NG\ compact :cal SetSyn("rnc")<CR>
an 50.100.240 &Syntax.R.Renderman.Renderman\ Shader\ Lang :cal SetSyn("sl")<CR>
an 50.100.250 &Syntax.R.Renderman.Renderman\ Interface\ Bytestream :cal SetSyn("rib")<CR>
an 50.100.260 &Syntax.R.Resolv\.conf :cal SetSyn("resolv")<CR>
an 50.100.270 &Syntax.R.Reva\ Forth :cal SetSyn("reva")<CR>
an 50.100.280 &Syntax.R.Rexx :cal SetSyn("rexx")<CR>
an 50.100.290 &Syntax.R.Robots\.txt :cal SetSyn("robots")<CR>
an 50.100.300 &Syntax.R.RockLinux\ package\ desc\. :cal SetSyn("desc")<CR>
an 50.100.310 &Syntax.R.Rpcgen :cal SetSyn("rpcgen")<CR>
an 50.100.320 &Syntax.R.RPL/2 :cal SetSyn("rpl")<CR>
an 50.100.330 &Syntax.R.ReStructuredText :cal SetSyn("rst")<CR>
an 50.100.340 &Syntax.R.RTF :cal SetSyn("rtf")<CR>
an 50.100.350 &Syntax.R.Ruby :cal SetSyn("ruby")<CR>
an 50.110.100 &Syntax.S-Sm.S-Lang :cal SetSyn("slang")<CR>
an 50.110.110 &Syntax.S-Sm.Samba\ config :cal SetSyn("samba")<CR>
an 50.110.120 &Syntax.S-Sm.SAS :cal SetSyn("sas")<CR>
an 50.110.130 &Syntax.S-Sm.Sass :cal SetSyn("sass")<CR>
an 50.110.140 &Syntax.S-Sm.Sather :cal SetSyn("sather")<CR>
an 50.110.150 &Syntax.S-Sm.Scheme :cal SetSyn("scheme")<CR>
an 50.110.160 &Syntax.S-Sm.Scilab :cal SetSyn("scilab")<CR>
an 50.110.170 &Syntax.S-Sm.Screen\ RC :cal SetSyn("screen")<CR>
an 50.110.180 &Syntax.S-Sm.SCSS :cal SetSyn("scss")<CR>
an 50.110.190 &Syntax.S-Sm.SDC\ Synopsys\ Design\ Constraints :cal SetSyn("sdc")<CR>
an 50.110.200 &Syntax.S-Sm.SDL :cal SetSyn("sdl")<CR>
an 50.110.210 &Syntax.S-Sm.Sed :cal SetSyn("sed")<CR>
an 50.110.220 &Syntax.S-Sm.Sendmail\.cf :cal SetSyn("sm")<CR>
an 50.110.230 &Syntax.S-Sm.Send-pr :cal SetSyn("sendpr")<CR>
an 50.110.240 &Syntax.S-Sm.Sensors\.conf :cal SetSyn("sensors")<CR>
an 50.110.250 &Syntax.S-Sm.Service\ Location\ config :cal SetSyn("slpconf")<CR>
an 50.110.260 &Syntax.S-Sm.Service\ Location\ registration :cal SetSyn("slpreg")<CR>
an 50.110.270 &Syntax.S-Sm.Service\ Location\ SPI :cal SetSyn("slpspi")<CR>
an 50.110.280 &Syntax.S-Sm.Services :cal SetSyn("services")<CR>
an 50.110.290 &Syntax.S-Sm.Setserial\ config :cal SetSyn("setserial")<CR>
an 50.110.300 &Syntax.S-Sm.SGML.SGML\ catalog :cal SetSyn("catalog")<CR>
an 50.110.310 &Syntax.S-Sm.SGML.SGML\ DTD :cal SetSyn("sgml")<CR>
an 50.110.320 &Syntax.S-Sm.SGML.SGML\ Declaration :cal SetSyn("sgmldecl")<CR>
an 50.110.330 &Syntax.S-Sm.SGML.SGML-linuxdoc :cal SetSyn("sgmllnx")<CR>
an 50.110.340 &Syntax.S-Sm.Shell\ script.sh\ and\ ksh :cal SetSyn("sh")<CR>
an 50.110.350 &Syntax.S-Sm.Shell\ script.csh :cal SetSyn("csh")<CR>
an 50.110.360 &Syntax.S-Sm.Shell\ script.tcsh :cal SetSyn("tcsh")<CR>
an 50.110.370 &Syntax.S-Sm.Shell\ script.zsh :cal SetSyn("zsh")<CR>
an 50.110.380 &Syntax.S-Sm.SiCAD :cal SetSyn("sicad")<CR>
an 50.110.390 &Syntax.S-Sm.Sieve :cal SetSyn("sieve")<CR>
an 50.110.400 &Syntax.S-Sm.Simula :cal SetSyn("simula")<CR>
an 50.110.410 &Syntax.S-Sm.Sinda.Sinda\ compare :cal SetSyn("sindacmp")<CR>
an 50.110.420 &Syntax.S-Sm.Sinda.Sinda\ input :cal SetSyn("sinda")<CR>
an 50.110.430 &Syntax.S-Sm.Sinda.Sinda\ output :cal SetSyn("sindaout")<CR>
an 50.110.440 &Syntax.S-Sm.SiSU :cal SetSyn("sisu")<CR>
an 50.110.450 &Syntax.S-Sm.SKILL.SKILL :cal SetSyn("skill")<CR>
an 50.110.460 &Syntax.S-Sm.SKILL.SKILL\ for\ Diva :cal SetSyn("diva")<CR>
an 50.110.470 &Syntax.S-Sm.Slice :cal SetSyn("slice")<CR>
an 50.110.480 &Syntax.S-Sm.SLRN.Slrn\ rc :cal SetSyn("slrnrc")<CR>
an 50.110.490 &Syntax.S-Sm.SLRN.Slrn\ score :cal SetSyn("slrnsc")<CR>
an 50.110.500 &Syntax.S-Sm.SmallTalk :cal SetSyn("st")<CR>
an 50.110.510 &Syntax.S-Sm.Smarty\ Templates :cal SetSyn("smarty")<CR>
an 50.110.520 &Syntax.S-Sm.SMIL :cal SetSyn("smil")<CR>
an 50.110.530 &Syntax.S-Sm.SMITH :cal SetSyn("smith")<CR>
an 50.120.100 &Syntax.Sn-Sy.SNMP\ MIB :cal SetSyn("mib")<CR>
an 50.120.110 &Syntax.Sn-Sy.SNNS.SNNS\ network :cal SetSyn("snnsnet")<CR>
an 50.120.120 &Syntax.Sn-Sy.SNNS.SNNS\ pattern :cal SetSyn("snnspat")<CR>
an 50.120.130 &Syntax.Sn-Sy.SNNS.SNNS\ result :cal SetSyn("snnsres")<CR>
an 50.120.140 &Syntax.Sn-Sy.Snobol4 :cal SetSyn("snobol4")<CR>
an 50.120.150 &Syntax.Sn-Sy.Snort\ Configuration :cal SetSyn("hog")<CR>
an 50.120.160 &Syntax.Sn-Sy.SPEC\ (Linux\ RPM) :cal SetSyn("spec")<CR>
an 50.120.170 &Syntax.Sn-Sy.Specman :cal SetSyn("specman")<CR>
an 50.120.180 &Syntax.Sn-Sy.Spice :cal SetSyn("spice")<CR>
an 50.120.190 &Syntax.Sn-Sy.Spyce :cal SetSyn("spyce")<CR>
an 50.120.200 &Syntax.Sn-Sy.Speedup :cal SetSyn("spup")<CR>
an 50.120.210 &Syntax.Sn-Sy.Splint :cal SetSyn("splint")<CR>
an 50.120.220 &Syntax.Sn-Sy.Squid\ config :cal SetSyn("squid")<CR>
an 50.120.230 &Syntax.Sn-Sy.SQL.SAP\ HANA :cal SetSyn("sqlhana")<CR>
an 50.120.240 &Syntax.Sn-Sy.SQL.ESQL-C :cal SetSyn("esqlc")<CR>
an 50.120.250 &Syntax.Sn-Sy.SQL.MySQL :cal SetSyn("mysql")<CR>
an 50.120.260 &Syntax.Sn-Sy.SQL.PL/SQL :cal SetSyn("plsql")<CR>
an 50.120.270 &Syntax.Sn-Sy.SQL.SQL\ Anywhere :cal SetSyn("sqlanywhere")<CR>
an 50.120.280 &Syntax.Sn-Sy.SQL.SQL\ (automatic) :cal SetSyn("sql")<CR>
an 50.120.290 &Syntax.Sn-Sy.SQL.SQL\ (Oracle) :cal SetSyn("sqloracle")<CR>
an 50.120.300 &Syntax.Sn-Sy.SQL.SQL\ Forms :cal SetSyn("sqlforms")<CR>
an 50.120.310 &Syntax.Sn-Sy.SQL.SQLJ :cal SetSyn("sqlj")<CR>
an 50.120.320 &Syntax.Sn-Sy.SQL.SQL-Informix :cal SetSyn("sqlinformix")<CR>
an 50.120.330 &Syntax.Sn-Sy.SQR :cal SetSyn("sqr")<CR>
an 50.120.340 &Syntax.Sn-Sy.Ssh.ssh_config :cal SetSyn("sshconfig")<CR>
an 50.120.350 &Syntax.Sn-Sy.Ssh.sshd_config :cal SetSyn("sshdconfig")<CR>
an 50.120.360 &Syntax.Sn-Sy.Standard\ ML :cal SetSyn("sml")<CR>
an 50.120.370 &Syntax.Sn-Sy.Stata.SMCL :cal SetSyn("smcl")<CR>
an 50.120.380 &Syntax.Sn-Sy.Stata.Stata :cal SetSyn("stata")<CR>
an 50.120.390 &Syntax.Sn-Sy.Stored\ Procedures :cal SetSyn("stp")<CR>
an 50.120.400 &Syntax.Sn-Sy.Strace :cal SetSyn("strace")<CR>
an 50.120.410 &Syntax.Sn-Sy.Streaming\ descriptor\ file :cal SetSyn("sd")<CR>
an 50.120.420 &Syntax.Sn-Sy.Subversion\ commit :cal SetSyn("svn")<CR>
an 50.120.430 &Syntax.Sn-Sy.Sudoers :cal SetSyn("sudoers")<CR>
an 50.120.440 &Syntax.Sn-Sy.SVG :cal SetSyn("svg")<CR>
an 50.120.450 &Syntax.Sn-Sy.Symbian\ meta-makefile :cal SetSyn("mmp")<CR>
an 50.120.460 &Syntax.Sn-Sy.Sysctl\.conf :cal SetSyn("sysctl")<CR>
an 50.130.100 &Syntax.T.TADS :cal SetSyn("tads")<CR>
an 50.130.110 &Syntax.T.Tags :cal SetSyn("tags")<CR>
an 50.130.120 &Syntax.T.TAK.TAK\ compare :cal SetSyn("takcmp")<CR>
an 50.130.130 &Syntax.T.TAK.TAK\ input :cal SetSyn("tak")<CR>
an 50.130.140 &Syntax.T.TAK.TAK\ output :cal SetSyn("takout")<CR>
an 50.130.150 &Syntax.T.Tar\ listing :cal SetSyn("tar")<CR>
an 50.130.160 &Syntax.T.Task\ data :cal SetSyn("taskdata")<CR>
an 50.130.170 &Syntax.T.Task\ 42\ edit :cal SetSyn("taskedit")<CR>
an 50.130.180 &Syntax.T.Tcl/Tk :cal SetSyn("tcl")<CR>
an 50.130.190 &Syntax.T.TealInfo :cal SetSyn("tli")<CR>
an 50.130.200 &Syntax.T.Telix\ Salt :cal SetSyn("tsalt")<CR>
an 50.130.210 &Syntax.T.Termcap/Printcap :cal SetSyn("ptcap")<CR>
an 50.130.220 &Syntax.T.Terminfo :cal SetSyn("terminfo")<CR>
an 50.130.230 &Syntax.T.TeX.TeX/LaTeX :cal SetSyn("tex")<CR>
an 50.130.240 &Syntax.T.TeX.plain\ TeX :cal SetSyn("plaintex")<CR>
an 50.130.250 &Syntax.T.TeX.Initex :cal SetSyn("initex")<CR>
an 50.130.260 &Syntax.T.TeX.ConTeXt :cal SetSyn("context")<CR>
an 50.130.270 &Syntax.T.TeX.TeX\ configuration :cal SetSyn("texmf")<CR>
an 50.130.280 &Syntax.T.TeX.Texinfo :cal SetSyn("texinfo")<CR>
an 50.130.290 &Syntax.T.TF\ mud\ client :cal SetSyn("tf")<CR>
an 50.130.300 &Syntax.T.Tidy\ configuration :cal SetSyn("tidy")<CR>
an 50.130.310 &Syntax.T.Tilde :cal SetSyn("tilde")<CR>
an 50.130.320 &Syntax.T.TPP :cal SetSyn("tpp")<CR>
an 50.130.330 &Syntax.T.Trasys\ input :cal SetSyn("trasys")<CR>
an 50.130.340 &Syntax.T.Treetop :cal SetSyn("treetop")<CR>
an 50.130.350 &Syntax.T.Trustees :cal SetSyn("trustees")<CR>
an 50.130.360 &Syntax.T.TSS.Command\ Line :cal SetSyn("tsscl")<CR>
an 50.130.370 &Syntax.T.TSS.Geometry :cal SetSyn("tssgm")<CR>
an 50.130.380 &Syntax.T.TSS.Optics :cal SetSyn("tssop")<CR>
an 50.140.100 &Syntax.UV.Udev\ config :cal SetSyn("udevconf")<CR>
an 50.140.110 &Syntax.UV.Udev\ permissions :cal SetSyn("udevperm")<CR>
an 50.140.120 &Syntax.UV.Udev\ rules :cal SetSyn("udevrules")<CR>
an 50.140.130 &Syntax.UV.UIT/UIL :cal SetSyn("uil")<CR>
an 50.140.140 &Syntax.UV.UnrealScript :cal SetSyn("uc")<CR>
an 50.140.150 &Syntax.UV.Updatedb\.conf :cal SetSyn("updatedb")<CR>
an 50.140.160 &Syntax.UV.Upstart :cal SetSyn("upstart")<CR>
an 50.140.180 &Syntax.UV.Valgrind :cal SetSyn("valgrind")<CR>
an 50.140.190 &Syntax.UV.Vera :cal SetSyn("vera")<CR>
an 50.140.200 &Syntax.UV.Verilog-AMS\ HDL :cal SetSyn("verilogams")<CR>
an 50.140.210 &Syntax.UV.Verilog\ HDL :cal SetSyn("verilog")<CR>
an 50.140.220 &Syntax.UV.Vgrindefs :cal SetSyn("vgrindefs")<CR>
an 50.140.230 &Syntax.UV.VHDL :cal SetSyn("vhdl")<CR>
an 50.140.240 &Syntax.UV.Vim.Vim\ help\ file :cal SetSyn("help")<CR>
an 50.140.250 &Syntax.UV.Vim.Vim\ script :cal SetSyn("vim")<CR>
an 50.140.260 &Syntax.UV.Vim.Viminfo\ file :cal SetSyn("viminfo")<CR>
an 50.140.270 &Syntax.UV.Virata\ config :cal SetSyn("virata")<CR>
an 50.140.280 &Syntax.UV.Visual\ Basic :cal SetSyn("vb")<CR>
an 50.140.290 &Syntax.UV.VOS\ CM\ macro :cal SetSyn("voscm")<CR>
an 50.140.300 &Syntax.UV.VRML :cal SetSyn("vrml")<CR>
an 50.140.310 &Syntax.UV.VSE\ JCL :cal SetSyn("vsejcl")<CR>
an 50.150.100 &Syntax.WXYZ.WEB.CWEB :cal SetSyn("cweb")<CR>
an 50.150.110 &Syntax.WXYZ.WEB.WEB :cal SetSyn("web")<CR>
an 50.150.120 &Syntax.WXYZ.WEB.WEB\ Changes :cal SetSyn("change")<CR>
an 50.150.130 &Syntax.WXYZ.Webmacro :cal SetSyn("webmacro")<CR>
an 50.150.140 &Syntax.WXYZ.Website\ MetaLanguage :cal SetSyn("wml")<CR>
an 50.150.160 &Syntax.WXYZ.wDiff :cal SetSyn("wdiff")<CR>
an 50.150.180 &Syntax.WXYZ.Wget\ config :cal SetSyn("wget")<CR>
an 50.150.190 &Syntax.WXYZ.Whitespace\ (add) :cal SetSyn("whitespace")<CR>
an 50.150.200 &Syntax.WXYZ.WildPackets\ EtherPeek\ Decoder :cal SetSyn("dcd")<CR>
an 50.150.210 &Syntax.WXYZ.WinBatch/Webbatch :cal SetSyn("winbatch")<CR>
an 50.150.220 &Syntax.WXYZ.Windows\ Scripting\ Host :cal SetSyn("wsh")<CR>
an 50.150.230 &Syntax.WXYZ.WSML :cal SetSyn("wsml")<CR>
an 50.150.240 &Syntax.WXYZ.WvDial :cal SetSyn("wvdial")<CR>
an 50.150.260 &Syntax.WXYZ.X\ Keyboard\ Extension :cal SetSyn("xkb")<CR>
an 50.150.270 &Syntax.WXYZ.X\ Pixmap :cal SetSyn("xpm")<CR>
an 50.150.280 &Syntax.WXYZ.X\ Pixmap\ (2) :cal SetSyn("xpm2")<CR>
an 50.150.290 &Syntax.WXYZ.X\ resources :cal SetSyn("xdefaults")<CR>
an 50.150.300 &Syntax.WXYZ.XBL :cal SetSyn("xbl")<CR>
an 50.150.310 &Syntax.WXYZ.Xinetd\.conf :cal SetSyn("xinetd")<CR>
an 50.150.320 &Syntax.WXYZ.Xmodmap :cal SetSyn("xmodmap")<CR>
an 50.150.330 &Syntax.WXYZ.Xmath :cal SetSyn("xmath")<CR>
an 50.150.340 &Syntax.WXYZ.XML :cal SetSyn("xml")<CR>
an 50.150.350 &Syntax.WXYZ.XML\ Schema\ (XSD) :cal SetSyn("xsd")<CR>
an 50.150.360 &Syntax.WXYZ.XQuery :cal SetSyn("xquery")<CR>
an 50.150.370 &Syntax.WXYZ.Xslt :cal SetSyn("xslt")<CR>
an 50.150.380 &Syntax.WXYZ.XFree86\ Config :cal SetSyn("xf86conf")<CR>
an 50.150.400 &Syntax.WXYZ.YAML :cal SetSyn("yaml")<CR>
an 50.150.410 &Syntax.WXYZ.Yacc :cal SetSyn("yacc")<CR>
an 50.150.430 &Syntax.WXYZ.Zimbu :cal SetSyn("zimbu")<CR>

" The End Of The Syntax Menu


an 50.195 &Syntax.-SEP1-			<Nop>

an <silent> 50.200 &Syntax.Set\ '&syntax'\ Only :call <SID>Setsynonly()<CR>
fun! s:Setsynonly()
  let s:syntax_menu_synonly = 1
endfun
an <silent> 50.202 &Syntax.Set\ '&filetype'\ Too :call <SID>Nosynonly()<CR>
fun! s:Nosynonly()
  if exists("s:syntax_menu_synonly")
    unlet s:syntax_menu_synonly
  endif
endfun

" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���H�H�vim80/optwin.vimnu�[���" These commands create the option window.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2018 Feb 27

" If there already is an option window, jump to that one.
let buf = bufnr('option-window')
if buf >= 0
  let winids = win_findbuf(buf)
  if len(winids) > 0
    if win_gotoid(winids[0]) == 1
      finish
    endif
  endif
endif

" Make sure the '<' flag is not included in 'cpoptions', otherwise <CR> would
" not be recognized.  See ":help 'cpoptions'".
let s:cpo_save = &cpo
set cpo&vim

" function to be called when <CR> is hit in the option-window
fun! <SID>CR()

  " If on a continued comment line, go back to the first comment line
  let lnum = search("^[^\t]", 'bWcn')
  let line = getline(lnum)

  " <CR> on a "set" line executes the option line
  if match(line, "^ \tset ") >= 0

    " For a local option: go to the previous window
    " If this is a help window, go to the window below it
    let thiswin = winnr()
    let local = <SID>Find(lnum)
    if local >= 0
      exe line
      call <SID>Update(lnum, line, local, thiswin)
    endif

  " <CR> on a "option" line shows help for that option
  elseif match(line, "^[a-z]") >= 0
    let name = substitute(line, '\([^\t]*\).*', '\1', "")
    exe "help '" . name . "'"

  " <CR> on an index line jumps to the group
  elseif match(line, '^ \=[0-9]') >= 0
    exe "norm! /" . line . "\<CR>zt"
  endif
endfun

" function to be called when <Space> is hit in the option-window
fun! <SID>Space()

  let lnum = line(".")
  let line = getline(lnum)

  " <Space> on a "set" line refreshes the option line
  if match(line, "^ \tset ") >= 0

    " For a local option: go to the previous window
    " If this is a help window, go to the window below it
    let thiswin = winnr()
    let local = <SID>Find(lnum)
    if local >= 0
      call <SID>Update(lnum, line, local, thiswin)
    endif

  endif
endfun

" find the window in which the option applies
" returns 0 for global option, 1 for local option, -1 for error
fun! <SID>Find(lnum)
    if getline(a:lnum - 1) =~ "(local to"
      let local = 1
      let thiswin = winnr()
      wincmd p
      if exists("b:current_syntax") && b:current_syntax == "help"
	wincmd j
	if winnr() == thiswin
	  wincmd j
	endif
      endif
    else
      let local = 0
    endif
    if local && (winnr() == thiswin || (exists("b:current_syntax")
	\ && b:current_syntax == "help"))
      echo "Don't know in which window"
      let local = -1
    endif
    return local
endfun

" Update a "set" line in the option window
fun! <SID>Update(lnum, line, local, thiswin)
  " get the new value of the option and update the option window line
  if match(a:line, "=") >= 0
    let name = substitute(a:line, '^ \tset \([^=]*\)=.*', '\1', "")
  else
    let name = substitute(a:line, '^ \tset \(no\)\=\([a-z]*\).*', '\2', "")
  endif
  if name == "pt" && &pt =~ "\x80"
    let val = <SID>PTvalue()
  else
    let val = escape(eval('&' . name), " \t\\\"|")
  endif
  if a:local
    exe a:thiswin . "wincmd w"
  endif
  if match(a:line, "=") >= 0 || (val != "0" && val != "1")
    call setline(a:lnum, " \tset " . name . "=" . val)
  else
    if val
      call setline(a:lnum, " \tset " . name . "\tno" . name)
    else
      call setline(a:lnum, " \tset no" . name . "\t" . name)
    endif
  endif
  set nomodified
endfun

" Reset 'title' and 'icon' to make it work faster.
" Reset 'undolevels' to avoid undo'ing until the buffer is empty.
let s:old_title = &title
let s:old_icon = &icon
let s:old_sc = &sc
let s:old_ru = &ru
let s:old_ul = &ul
set notitle noicon nosc noru ul=-1

" If the current window is a help window, try finding a non-help window.
" Relies on syntax highlighting to be switched on.
let s:thiswin = winnr()
while exists("b:current_syntax") && b:current_syntax == "help"
  wincmd w
  if s:thiswin == winnr()
    break
  endif
endwhile

" Open the window.  $OPTWIN_CMD is set to "tab" for ":tab options".
exe $OPTWIN_CMD . ' new option-window'
setlocal ts=15 tw=0 noro buftype=nofile

" Insert help and a "set" command for each option.
call append(0, '" Each "set" line shows the current value of an option (on the left).')
call append(1, '" Hit <CR> on a "set" line to execute it.')
call append(2, '"            A boolean option will be toggled.')
call append(3, '"            For other options you can edit the value before hitting <CR>.')
call append(4, '" Hit <CR> on a help line to open a help window on this option.')
call append(5, '" Hit <CR> on an index line to jump there.')
call append(6, '" Hit <Space> on a "set" line to refresh it.')

" These functions are called often below.  Keep them fast!

" Init a local binary option
fun! <SID>BinOptionL(name)
  let val = getwinvar(winnr('#'), '&' . a:name)
  call append("$", substitute(substitute(" \tset " . val . a:name . "\t" .
	\!val . a:name, "0", "no", ""), "1", "", ""))
endfun

" Init a global binary option
fun! <SID>BinOptionG(name, val)
  call append("$", substitute(substitute(" \tset " . a:val . a:name . "\t" .
	\!a:val . a:name, "0", "no", ""), "1", "", ""))
endfun

" Init a local string option
fun! <SID>OptionL(name)
  let val = escape(getwinvar(winnr('#'), '&' . a:name), " \t\\\"|")
  call append("$", " \tset " . a:name . "=" . val)
endfun

" Init a global string option
fun! <SID>OptionG(name, val)
  call append("$", " \tset " . a:name . "=" . escape(a:val, " \t\\\"|"))
endfun

let s:idx = 1
let s:lnum = line("$")
call append("$", "")

fun! <SID>Header(text)
  let line = s:idx . " " . a:text
  if s:idx < 10
    let line = " " . line
  endif
  call append("$", "")
  call append("$", line)
  call append("$", "")
  call append(s:lnum, line)
  let s:idx = s:idx + 1
  let s:lnum = s:lnum + 1
endfun

" Get the value of 'pastetoggle'.  It could be a special key.
fun! <SID>PTvalue()
  redir @a
  silent set pt
  redir END
  return substitute(@a, '[^=]*=\(.*\)', '\1', "")
endfun

" Restore the previous value of 'cpoptions' here, it's used below.
let &cpo = s:cpo_save

" List of all options, organized by function.
" The text should be sufficient to know what the option is used for.

call <SID>Header("important")
call append("$", "compatible\tbehave very Vi compatible (not advisable)")
call <SID>BinOptionG("cp", &cp)
call append("$", "cpoptions\tlist of flags to specify Vi compatibility")
call <SID>OptionG("cpo", &cpo)
call append("$", "insertmode\tuse Insert mode as the default mode")
call <SID>BinOptionG("im", &im)
call append("$", "paste\tpaste mode, insert typed text literally")
call <SID>BinOptionG("paste", &paste)
call append("$", "pastetoggle\tkey sequence to toggle paste mode")
if &pt =~ "\x80"
  call append("$", " \tset pt=" . <SID>PTvalue())
else
  call <SID>OptionG("pt", &pt)
endif
call append("$", "runtimepath\tlist of directories used for runtime files and plugins")
call <SID>OptionG("rtp", &rtp)
call append("$", "packpath\tlist of directories used for plugin packages")
call <SID>OptionG("pp", &pp)
call append("$", "helpfile\tname of the main help file")
call <SID>OptionG("hf", &hf)


call <SID>Header("moving around, searching and patterns")
call append("$", "whichwrap\tlist of flags specifying which commands wrap to another line")
call append("$", "\t(local to window)")
call <SID>OptionL("ww")
call append("$", "startofline\tmany jump commands move the cursor to the first non-blank")
call append("$", "\tcharacter of a line")
call <SID>BinOptionG("sol", &sol)
call append("$", "paragraphs\tnroff macro names that separate paragraphs")
call <SID>OptionG("para", &para)
call append("$", "sections\tnroff macro names that separate sections")
call <SID>OptionG("sect", &sect)
call append("$", "path\tlist of directory names used for file searching")
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("pa", &pa)
call append("$", "cdpath\tlist of directory names used for :cd")
call <SID>OptionG("cd", &cd)
if exists("+autochdir")
  call append("$", "autochdir\tchange to directory of file in buffer")
  call <SID>BinOptionG("acd", &acd)
endif
call append("$", "wrapscan\tsearch commands wrap around the end of the buffer")
call <SID>BinOptionG("ws", &ws)
call append("$", "incsearch\tshow match for partly typed search command")
call <SID>BinOptionG("is", &is)
call append("$", "magic\tchange the way backslashes are used in search patterns")
call <SID>BinOptionG("magic", &magic)
call append("$", "regexpengine\tselect the default regexp engine used")
call <SID>OptionG("re", &re)
call append("$", "ignorecase\tignore case when using a search pattern")
call <SID>BinOptionG("ic", &ic)
call append("$", "smartcase\toverride 'ignorecase' when pattern has upper case characters")
call <SID>BinOptionG("scs", &scs)
call append("$", "casemap\twhat method to use for changing case of letters")
call <SID>OptionG("cmp", &cmp)
call append("$", "maxmempattern\tmaximum amount of memory in Kbyte used for pattern matching")
call append("$", " \tset mmp=" . &mmp)
call append("$", "define\tpattern for a macro definition line")
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("def", &def)
if has("find_in_path")
  call append("$", "include\tpattern for an include-file line")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("inc")
  call append("$", "includeexpr\texpression used to transform an include line to a file name")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("inex")
endif


call <SID>Header("tags")
call append("$", "tagbsearch\tuse binary searching in tags files")
call <SID>BinOptionG("tbs", &tbs)
call append("$", "taglength\tnumber of significant characters in a tag name or zero")
call append("$", " \tset tl=" . &tl)
call append("$", "tags\tlist of file names to search for tags")
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("tag", &tag)
call append("$", "tagcase\thow to handle case when searching in tags files:")
call append("$", "\t\"followic\" to follow 'ignorecase', \"ignore\" or \"match\"")
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("tc", &tc)
call append("$", "tagrelative\tfile names in a tags file are relative to the tags file")
call <SID>BinOptionG("tr", &tr)
call append("$", "tagstack\ta :tag command will use the tagstack")
call <SID>BinOptionG("tgst", &tgst)
call append("$", "showfulltag\twhen completing tags in Insert mode show more info")
call <SID>BinOptionG("sft", &sft)
if has("cscope")
  call append("$", "cscopeprg\tcommand for executing cscope")
  call <SID>OptionG("csprg", &csprg)
  call append("$", "cscopetag\tuse cscope for tag commands")
  call <SID>BinOptionG("cst", &cst)
  call append("$", "cscopetagorder\t0 or 1; the order in which \":cstag\" performs a search")
  call append("$", " \tset csto=" . &csto)
  call append("$", "cscopeverbose\tgive messages when adding a cscope database")
  call <SID>BinOptionG("csverb", &csverb)
  call append("$", "cscopepathcomp\thow many components of the path to show")
  call append("$", " \tset cspc=" . &cspc)
  call append("$", "cscopequickfix\twhen to open a quickfix window for cscope")
  call <SID>OptionG("csqf", &csqf)
  call append("$", "cscoperelative\tfile names in a cscope file are relative to that file")
  call <SID>BinOptionG("csre", &csre)
endif


call <SID>Header("displaying text")
call append("$", "scroll\tnumber of lines to scroll for CTRL-U and CTRL-D")
call append("$", "\t(local to window)")
call <SID>OptionL("scr")
call append("$", "scrolloff\tnumber of screen lines to show around the cursor")
call append("$", " \tset so=" . &so)
call append("$", "wrap\tlong lines wrap")
call <SID>BinOptionG("wrap", &wrap)
call append("$", "linebreak\twrap long lines at a character in 'breakat'")
call append("$", "\t(local to window)")
call <SID>BinOptionL("lbr")
call append("$", "breakindent\tpreserve indentation in wrapped text")
call append("$", "\t(local to window)")
call <SID>BinOptionL("bri")
call append("$", "breakindentopt\tadjust breakindent behaviour")
call append("$", "\t(local to window)")
call <SID>OptionL("briopt")
call append("$", "breakat\twhich characters might cause a line break")
call <SID>OptionG("brk", &brk)
call append("$", "showbreak\tstring to put before wrapped screen lines")
call <SID>OptionG("sbr", &sbr)
call append("$", "sidescroll\tminimal number of columns to scroll horizontally")
call append("$", " \tset ss=" . &ss)
call append("$", "sidescrolloff\tminimal number of columns to keep left and right of the cursor")
call append("$", " \tset siso=" . &siso)
call append("$", "display\tinclude \"lastline\" to show the last line even if it doesn't fit")
call append("$", "\tinclude \"uhex\" to show unprintable characters as a hex number")
call <SID>OptionG("dy", &dy)
call append("$", "fillchars\tcharacters to use for the status line, folds and filler lines")
call <SID>OptionG("fcs", &fcs)
call append("$", "cmdheight\tnumber of lines used for the command-line")
call append("$", " \tset ch=" . &ch)
call append("$", "columns\twidth of the display")
call append("$", " \tset co=" . &co)
call append("$", "lines\tnumber of lines in the display")
call append("$", " \tset lines=" . &lines)
call append("$", "window\tnumber of lines to scroll for CTRL-F and CTRL-B")
call append("$", " \tset window=" . &window)
call append("$", "lazyredraw\tdon't redraw while executing macros")
call <SID>BinOptionG("lz", &lz)
if has("reltime")
  call append("$", "redrawtime\ttimeout for 'hlsearch' and :match highlighting in msec")
  call append("$", " \tset rdt=" . &rdt)
endif
call append("$", "writedelay\tdelay in msec for each char written to the display")
call append("$", "\t(for debugging)")
call append("$", " \tset wd=" . &wd)
call append("$", "list\tshow <Tab> as ^I and end-of-line as $")
call append("$", "\t(local to window)")
call <SID>BinOptionL("list")
call append("$", "listchars\tlist of strings used for list mode")
call <SID>OptionG("lcs", &lcs)
call append("$", "number\tshow the line number for each line")
call append("$", "\t(local to window)")
call <SID>BinOptionL("nu")
call append("$", "relativenumber\tshow the relative line number for each line")
call append("$", "\t(local to window)")
call <SID>BinOptionL("rnu")
if has("linebreak")
  call append("$", "numberwidth\tnumber of columns to use for the line number")
  call append("$", "\t(local to window)")
  call <SID>OptionL("nuw")
endif
if has("conceal")
  call append("$", "conceallevel\tcontrols whether concealable text is hidden")
  call append("$", "\t(local to window)")
  call <SID>OptionL("cole")
  call append("$", "concealcursor\tmodes in which text in the cursor line can be concealed")
  call append("$", "\t(local to window)")
  call <SID>OptionL("cocu")
endif


call <SID>Header("syntax, highlighting and spelling")
call append("$", "background\t\"dark\" or \"light\"; the background color brightness")
call <SID>OptionG("bg", &bg)
if has("autocmd")
  call append("$", "filetype\ttype of file; triggers the FileType event when set")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("ft")
endif
if has("syntax")
  call append("$", "syntax\tname of syntax highlighting used")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("syn")
  call append("$", "synmaxcol\tmaximum column to look for syntax items")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("smc")
endif
call append("$", "highlight\twhich highlighting to use for various occasions")
call <SID>OptionG("hl", &hl)
call append("$", "hlsearch\thighlight all matches for the last used search pattern")
call <SID>BinOptionG("hls", &hls)
if has("termguicolors")
  call append("$", "termguicolors\tuse GUI colors for the terminal")
  call <SID>BinOptionG("tgc", &tgc)
endif
if has("syntax")
  call append("$", "cursorcolumn\thighlight the screen column of the cursor")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("cuc")
  call append("$", "cursorline\thighlight the screen line of the cursor")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("cul")
  call append("$", "colorcolumn\tcolumns to highlight")
  call append("$", "\t(local to window)")
  call <SID>OptionL("cc")
  call append("$", "spell\thighlight spelling mistakes")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("spell")
  call append("$", "spelllang\tlist of accepted languages")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("spl")
  call append("$", "spellfile\tfile that \"zg\" adds good words to")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("spf")
  call append("$", "spellcapcheck\tpattern to locate the end of a sentence")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("spc")
  call append("$", "spellsuggest\tmethods used to suggest corrections")
  call <SID>OptionG("sps", &sps)
  call append("$", "mkspellmem\tamount of memory used by :mkspell before compressing")
  call <SID>OptionG("msm", &msm)
endif


call <SID>Header("multiple windows")
call append("$", "laststatus\t0, 1 or 2; when to use a status line for the last window")
call append("$", " \tset ls=" . &ls)
if has("statusline")
  call append("$", "statusline\talternate format to be used for a status line")
  call <SID>OptionG("stl", &stl)
endif
call append("$", "equalalways\tmake all windows the same size when adding/removing windows")
call <SID>BinOptionG("ea", &ea)
if has("vertsplit")
  call append("$", "eadirection\tin which direction 'equalalways' works: \"ver\", \"hor\" or \"both\"")
  call <SID>OptionG("ead", &ead)
endif
call append("$", "winheight\tminimal number of lines used for the current window")
call append("$", " \tset wh=" . &wh)
call append("$", "winminheight\tminimal number of lines used for any window")
call append("$", " \tset wmh=" . &wmh)
call append("$", "winfixheight\tkeep the height of the window")
call append("$", "\t(local to window)")
call <SID>BinOptionL("wfh")
if has("vertsplit")
call append("$", "winfixwidth\tkeep the width of the window")
call append("$", "\t(local to window)")
call <SID>BinOptionL("wfw")
  call append("$", "winwidth\tminimal number of columns used for the current window")
  call append("$", " \tset wiw=" . &wiw)
  call append("$", "winminwidth\tminimal number of columns used for any window")
  call append("$", " \tset wmw=" . &wmw)
endif
call append("$", "helpheight\tinitial height of the help window")
call append("$", " \tset hh=" . &hh)
if has("quickfix")
  call append("$", "previewheight\tdefault height for the preview window")
  call append("$", " \tset pvh=" . &pvh)
  call append("$", "previewwindow\tidentifies the preview window")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("pvw")
endif
call append("$", "hidden\tdon't unload a buffer when no longer shown in a window")
call <SID>BinOptionG("hid", &hid)
call append("$", "switchbuf\t\"useopen\" and/or \"split\"; which window to use when jumping")
call append("$", "\tto a buffer")
call <SID>OptionG("swb", &swb)
call append("$", "splitbelow\ta new window is put below the current one")
call <SID>BinOptionG("sb", &sb)
if has("vertsplit")
  call append("$", "splitright\ta new window is put right of the current one")
  call <SID>BinOptionG("spr", &spr)
endif
if has("scrollbind")
  call append("$", "scrollbind\tthis window scrolls together with other bound windows")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("scb")
  call append("$", "scrollopt\t\"ver\", \"hor\" and/or \"jump\"; list of options for 'scrollbind'")
  call <SID>OptionG("sbo", &sbo)
endif
if has("cursorbind")
  call append("$", "cursorbind\tthis window's cursor moves together with other bound windows")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("crb")
endif
if has("terminal")
  call append("$", "termwinsize\tsize of a terminal window")
  call append("$", "\t(local to window)")
  call <SID>OptionL("tws")
  call append("$", "termwinkey\tkey that precedes Vim commands in a terminal window")
  call append("$", "\t(local to window)")
  call <SID>OptionL("twk")
  call append("$", "termwinscroll\tmax number of lines to keep for scrollback in a terminal window")
  call append("$", "\t(local to window)")
  call <SID>OptionL("twsl")
  if exists("&winptydll")
    call append("$", "winptydll\tname of the winpty dynamic library")
    call <SID>OptionG("winptydll", &winptydll)
  endif
endif


call <SID>Header("multiple tab pages")
call append("$", "showtabline\t0, 1 or 2; when to use a tab pages line")
call append("$", " \tset stal=" . &stal)
call append("$", "tabpagemax\tmaximum number of tab pages to open for -p and \"tab all\"")
call append("$", " \tset tpm=" . &tpm)
call append("$", "tabline\tcustom tab pages line")
call <SID>OptionG("tal", &tal)
if has("gui")
  call append("$", "guitablabel\tcustom tab page label for the GUI")
  call <SID>OptionG("gtl", &gtl)
  call append("$", "guitabtooltip\tcustom tab page tooltip for the GUI")
  call <SID>OptionG("gtt", &gtt)
endif


call <SID>Header("terminal")
call append("$", "term\tname of the used terminal")
call <SID>OptionG("term", &term)
call append("$", "ttytype\talias for 'term'")
call <SID>OptionG("tty", &tty)
call append("$", "ttybuiltin\tcheck built-in termcaps first")
call <SID>BinOptionG("tbi", &tbi)
call append("$", "ttyfast\tterminal connection is fast")
call <SID>BinOptionG("tf", &tf)
call append("$", "weirdinvert\tterminal that requires extra redrawing")
call <SID>BinOptionG("wiv", &wiv)
call append("$", "esckeys\trecognize keys that start with <Esc> in Insert mode")
call <SID>BinOptionG("ek", &ek)
call append("$", "scrolljump\tminimal number of lines to scroll at a time")
call append("$", " \tset sj=" . &sj)
call append("$", "ttyscroll\tmaximum number of lines to use scrolling instead of redrawing")
call append("$", " \tset tsl=" . &tsl)
if has("gui") || has("win32")
  call append("$", "guicursor\tspecifies what the cursor looks like in different modes")
  call <SID>OptionG("gcr", &gcr)
endif
if has("title")
  let &title = s:old_title
  call append("$", "title\tshow info in the window title")
  call <SID>BinOptionG("title", &title)
  set notitle
  call append("$", "titlelen\tpercentage of 'columns' used for the window title")
  call append("$", " \tset titlelen=" . &titlelen)
  call append("$", "titlestring\twhen not empty, string to be used for the window title")
  call <SID>OptionG("titlestring", &titlestring)
  call append("$", "titleold\tstring to restore the title to when exiting Vim")
  call <SID>OptionG("titleold", &titleold)
  let &icon = s:old_icon
  call append("$", "icon\tset the text of the icon for this window")
  call <SID>BinOptionG("icon", &icon)
  set noicon
  call append("$", "iconstring\twhen not empty, text for the icon of this window")
  call <SID>OptionG("iconstring", &iconstring)
endif
if has("win32")
  call append("$", "restorescreen\trestore the screen contents when exiting Vim")
  call <SID>BinOptionG("rs", &rs)
endif


call <SID>Header("using the mouse")
call append("$", "mouse\tlist of flags for using the mouse")
call <SID>OptionG("mouse", &mouse)
if has("gui")
  call append("$", "mousefocus\tthe window with the mouse pointer becomes the current one")
  call <SID>BinOptionG("mousef", &mousef)
  call append("$", "mousehide\thide the mouse pointer while typing")
  call <SID>BinOptionG("mh", &mh)
endif
call append("$", "mousemodel\t\"extend\", \"popup\" or \"popup_setpos\"; what the right")
call append("$", "\tmouse button is used for")
call <SID>OptionG("mousem", &mousem)
call append("$", "mousetime\tmaximum time in msec to recognize a double-click")
call append("$", " \tset mouset=" . &mouset)
call append("$", "ttymouse\t\"xterm\", \"xterm2\", \"dec\" or \"netterm\"; type of mouse")
call <SID>OptionG("ttym", &ttym)
if has("mouseshape")
  call append("$", "mouseshape\twhat the mouse pointer looks like in different modes")
  call <SID>OptionG("mouses", &mouses)
endif


if has("gui")
  call <SID>Header("GUI")
  call append("$", "guifont\tlist of font names to be used in the GUI")
  call <SID>OptionG("gfn", &gfn)
  if has("xfontset")
    call append("$", "guifontset\tpair of fonts to be used, for multibyte editing")
    call <SID>OptionG("gfs", &gfs)
  endif
  call append("$", "guifontwide\tlist of font names to be used for double-wide characters")
  call <SID>OptionG("gfw", &gfw)
  if has("mac")
    call append("$", "antialias\tuse smooth, antialiased fonts")
    call <SID>BinOptionG("anti", &anti)
  endif
  call append("$", "guioptions\tlist of flags that specify how the GUI works")
  call <SID>OptionG("go", &go)
  if has("gui_gtk")
    call append("$", "toolbar\t\"icons\", \"text\" and/or \"tooltips\"; how to show the toolbar")
    call <SID>OptionG("tb", &tb)
    if has("gui_gtk2")
      call append("$", "toolbariconsize\tsize of toolbar icons")
      call <SID>OptionG("tbis", &tbis)
    endif
    call append("$", "guiheadroom\troom (in pixels) left above/below the window")
    call append("$", " \tset ghr=" . &ghr)
  endif
  if has("directx")
    call append("$", "renderoptions\toptions for text rendering")
    call <SID>OptionG("rop", &rop)
  endif
  call append("$", "guipty\tuse a pseudo-tty for I/O to external commands")
  call <SID>BinOptionG("guipty", &guipty)
  if has("browse")
    call append("$", "browsedir\t\"last\", \"buffer\" or \"current\": which directory used for the file browser")
    call <SID>OptionG("bsdir", &bsdir)
  endif
  if has("multi_lang")
    call append("$", "langmenu\tlanguage to be used for the menus")
    call <SID>OptionG("langmenu", &lm)
  endif
  call append("$", "menuitems\tmaximum number of items in one menu")
  call append("$", " \tset mis=" . &mis)
  if has("winaltkeys")
    call append("$", "winaltkeys\t\"no\", \"yes\" or \"menu\"; how to use the ALT key")
    call <SID>OptionG("wak", &wak)
  endif
  call append("$", "linespace\tnumber of pixel lines to use between characters")
  call append("$", " \tset lsp=" . &lsp)
  if has("balloon_eval") || has("balloon_eval_term")
    call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up")
    call append("$", " \tset bdlay=" . &bdlay)
    if has("balloon_eval")
      call append("$", "ballooneval\tuse balloon evaluation in the GUI")
      call <SID>BinOptionG("beval", &beval)
    endif
    if has("balloon_eval_term")
      call append("$", "balloonevalterm\tuse balloon evaluation in the terminal")
      call <SID>BinOptionG("bevalterm", &beval)
    endif
    if has("eval")
      call append("$", "balloonexpr\texpression to show in balloon eval")
      call append("$", " \tset bexpr=" . &bexpr)
    endif
  endif
  if exists("+macatsui")
    call append("$", "macatsui\tuse ATSUI text drawing; disable to avoid display problems")
    call <SID>OptionG("macatsui", &macatsui)
  endif
endif

if has("printer")
  call <SID>Header("printing")
  call append("$", "printoptions\tlist of items that control the format of :hardcopy output")
  call <SID>OptionG("popt", &popt)
  call append("$", "printdevice\tname of the printer to be used for :hardcopy")
  call <SID>OptionG("pdev", &pdev)
  if has("postscript")
    call append("$", "printexpr\texpression used to print the PostScript file for :hardcopy")
    call <SID>OptionG("pexpr", &pexpr)
  endif
  call append("$", "printfont\tname of the font to be used for :hardcopy")
  call <SID>OptionG("pfn", &pfn)
  call append("$", "printheader\tformat of the header used for :hardcopy")
  call <SID>OptionG("pheader", &pheader)
  if has("postscript")
    call append("$", "printencoding\tencoding used to print the PostScript file for :hardcopy")
    call <SID>OptionG("penc", &penc)
  endif
  if has("multi_byte")
    call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy")
    call <SID>OptionG("pmbcs", &pmbcs)
    call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy")
    call <SID>OptionG("pmbfn", &pmbfn)
  endif
endif

call <SID>Header("messages and info")
call append("$", "terse\tadd 's' flag in 'shortmess' (don't show search message)")
call <SID>BinOptionG("terse", &terse)
call append("$", "shortmess\tlist of flags to make messages shorter")
call <SID>OptionG("shm", &shm)
call append("$", "showcmd\tshow (partial) command keys in the status line")
let &sc = s:old_sc
call <SID>BinOptionG("sc", &sc)
set nosc
call append("$", "showmode\tdisplay the current mode in the status line")
call <SID>BinOptionG("smd", &smd)
call append("$", "ruler\tshow cursor position below each window")
let &ru = s:old_ru
call <SID>BinOptionG("ru", &ru)
set noru
if has("statusline")
  call append("$", "rulerformat\talternate format to be used for the ruler")
  call <SID>OptionG("ruf", &ruf)
endif
call append("$", "report\tthreshold for reporting number of changed lines")
call append("$", " \tset report=" . &report)
call append("$", "verbose\tthe higher the more messages are given")
call append("$", " \tset vbs=" . &vbs)
call append("$", "verbosefile\tfile to write messages in")
call <SID>OptionG("vfile", &vfile)
call append("$", "more\tpause listings when the screen is full")
call <SID>BinOptionG("more", &more)
if has("dialog_con") || has("dialog_gui")
  call append("$", "confirm\tstart a dialog when a command fails")
  call <SID>BinOptionG("cf", &cf)
endif
call append("$", "errorbells\tring the bell for error messages")
call <SID>BinOptionG("eb", &eb)
call append("$", "visualbell\tuse a visual bell instead of beeping")
call <SID>BinOptionG("vb", &vb)
call append("$", "belloff\tdo not ring the bell for these reasons")
call <SID>OptionG("belloff", &belloff)
if has("multi_lang")
  call append("$", "helplang\tlist of preferred languages for finding help")
  call <SID>OptionG("hlg", &hlg)
endif


call <SID>Header("selecting text")
call append("$", "selection\t\"old\", \"inclusive\" or \"exclusive\"; how selecting text behaves")
call <SID>OptionG("sel", &sel)
call append("$", "selectmode\t\"mouse\", \"key\" and/or \"cmd\"; when to start Select mode")
call append("$", "\tinstead of Visual mode")
call <SID>OptionG("slm", &slm)
if has("clipboard")
  call append("$", "clipboard\t\"unnamed\" to use the * register like unnamed register")
  call append("$", "\t\"autoselect\" to always put selected text on the clipboard")
  call <SID>OptionG("cb", &cb)
endif
call append("$", "keymodel\t\"startsel\" and/or \"stopsel\"; what special keys can do")
call <SID>OptionG("km", &km)


call <SID>Header("editing text")
call append("$", "undolevels\tmaximum number of changes that can be undone")
call append("$", "\t(global or local to buffer)")
call append("$", " \tset ul=" . s:old_ul)
call append("$", "undofile\tautomatically save and restore undo history")
call <SID>BinOptionG("udf", &udf)
call append("$", "undodir\tlist of directories for undo files")
call <SID>OptionG("udir", &udir)
call append("$", "undoreload\tmaximum number lines to save for undo on a buffer reload")
call append("$", " \tset ur=" . &ur)
call append("$", "modified\tchanges have been made and not written to a file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("mod")
call append("$", "readonly\tbuffer is not to be written")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("ro")
call append("$", "modifiable\tchanges to the text are not possible")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("ma")
call append("$", "textwidth\tline length above which to break a line")
call append("$", "\t(local to buffer)")
call <SID>OptionL("tw")
call append("$", "wrapmargin\tmargin from the right in which to break a line")
call append("$", "\t(local to buffer)")
call <SID>OptionL("wm")
call append("$", "backspace\tspecifies what <BS>, CTRL-W, etc. can do in Insert mode")
call append("$", " \tset bs=" . &bs)
call append("$", "comments\tdefinition of what comment lines look like")
call append("$", "\t(local to buffer)")
call <SID>OptionL("com")
call append("$", "formatoptions\tlist of flags that tell how automatic formatting works")
call append("$", "\t(local to buffer)")
call <SID>OptionL("fo")
call append("$", "formatlistpat\tpattern to recognize a numbered list")
call append("$", "\t(local to buffer)")
call <SID>OptionL("flp")
if has("eval")
  call append("$", "formatexpr\texpression used for \"gq\" to format lines")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("fex")
endif
if has("insert_expand")
  call append("$", "complete\tspecifies how Insert mode completion works for CTRL-N and CTRL-P")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("cpt")
  call append("$", "completeopt\twhether to use a popup menu for Insert mode completion")
  call <SID>OptionG("cot", &cot)
  call append("$", "pumheight\tmaximum height of the popup menu")
  call <SID>OptionG("ph", &ph)
  call append("$", "pumwidth\tminimum width of the popup menu")
  call <SID>OptionG("pw", &pw)
  call append("$", "completefunc\tuser defined function for Insert mode completion")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("cfu")
  call append("$", "omnifunc\tfunction for filetype-specific Insert mode completion")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("ofu")
  call append("$", "dictionary\tlist of dictionary files for keyword completion")
  call append("$", "\t(global or local to buffer)")
  call <SID>OptionG("dict", &dict)
  call append("$", "thesaurus\tlist of thesaurus files for keyword completion")
  call append("$", "\t(global or local to buffer)")
  call <SID>OptionG("tsr", &tsr)
endif
call append("$", "infercase\tadjust case of a keyword completion match")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("inf")
if has("digraphs")
  call append("$", "digraph\tenable entering digraphs with c1 <BS> c2")
  call <SID>BinOptionG("dg", &dg)
endif
call append("$", "tildeop\tthe \"~\" command behaves like an operator")
call <SID>BinOptionG("top", &top)
call append("$", "operatorfunc\tfunction called for the\"g@\"  operator")
call <SID>OptionG("opfunc", &opfunc)
call append("$", "showmatch\twhen inserting a bracket, briefly jump to its match")
call <SID>BinOptionG("sm", &sm)
call append("$", "matchtime\ttenth of a second to show a match for 'showmatch'")
call append("$", " \tset mat=" . &mat)
call append("$", "matchpairs\tlist of pairs that match for the \"%\" command")
call append("$", "\t(local to buffer)")
call <SID>OptionL("mps")
call append("$", "joinspaces\tuse two spaces after '.' when joining a line")
call <SID>BinOptionG("js", &js)
call append("$", "nrformats\t\"alpha\", \"octal\" and/or \"hex\"; number formats recognized for")
call append("$", "\tCTRL-A and CTRL-X commands")
call append("$", "\t(local to buffer)")
call <SID>OptionL("nf")


call <SID>Header("tabs and indenting")
call append("$", "tabstop\tnumber of spaces a <Tab> in the text stands for")
call append("$", "\t(local to buffer)")
call <SID>OptionL("ts")
call append("$", "shiftwidth\tnumber of spaces used for each step of (auto)indent")
call append("$", "\t(local to buffer)")
call <SID>OptionL("sw")
call append("$", "smarttab\ta <Tab> in an indent inserts 'shiftwidth' spaces")
call <SID>BinOptionG("sta", &sta)
call append("$", "softtabstop\tif non-zero, number of spaces to insert for a <Tab>")
call append("$", "\t(local to buffer)")
call <SID>OptionL("sts")
call append("$", "shiftround\tround to 'shiftwidth' for \"<<\" and \">>\"")
call <SID>BinOptionG("sr", &sr)
call append("$", "expandtab\texpand <Tab> to spaces in Insert mode")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("et")
call append("$", "autoindent\tautomatically set the indent of a new line")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("ai")
if has("smartindent")
  call append("$", "smartindent\tdo clever autoindenting")
  call append("$", "\t(local to buffer)")
  call <SID>BinOptionL("si")
endif
if has("cindent")
  call append("$", "cindent\tenable specific indenting for C code")
  call append("$", "\t(local to buffer)")
  call <SID>BinOptionL("cin")
  call append("$", "cinoptions\toptions for C-indenting")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("cino")
  call append("$", "cinkeys\tkeys that trigger C-indenting in Insert mode")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("cink")
  call append("$", "cinwords\tlist of words that cause more C-indent")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("cinw")
  call append("$", "indentexpr\texpression used to obtain the indent of a line")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("inde")
  call append("$", "indentkeys\tkeys that trigger indenting with 'indentexpr' in Insert mode")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("indk")
endif
call append("$", "copyindent\tcopy whitespace for indenting from previous line")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("ci")
call append("$", "preserveindent\tpreserve kind of whitespace when changing indent")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("pi")
if has("lispindent")
  call append("$", "lisp\tenable lisp mode")
  call append("$", "\t(local to buffer)")
  call <SID>BinOptionL("lisp")
  call append("$", "lispwords\twords that change how lisp indenting works")
  call <SID>OptionL("lw")
endif


if has("folding")
  call <SID>Header("folding")
  call append("$", "foldenable\tset to display all folds open")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("fen")
  call append("$", "foldlevel\tfolds with a level higher than this number will be closed")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fdl")
  call append("$", "foldlevelstart\tvalue for 'foldlevel' when starting to edit a file")
  call append("$", " \tset fdls=" . &fdls)
  call append("$", "foldcolumn\twidth of the column used to indicate folds")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fdc")
  call append("$", "foldtext\texpression used to display the text of a closed fold")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fdt")
  call append("$", "foldclose\tset to \"all\" to close a fold when the cursor leaves it")
  call <SID>OptionG("fcl", &fcl)
  call append("$", "foldopen\tspecifies for which commands a fold will be opened")
  call <SID>OptionG("fdo", &fdo)
  call append("$", "foldminlines\tminimum number of screen lines for a fold to be closed")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fml")
  call append("$", "commentstring\ttemplate for comments; used to put the marker in")
  call <SID>OptionL("cms")
  call append("$", "foldmethod\tfolding type: \"manual\", \"indent\", \"expr\", \"marker\" or \"syntax\"")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fdm")
  call append("$", "foldexpr\texpression used when 'foldmethod' is \"expr\"")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fde")
  call append("$", "foldignore\tused to ignore lines when 'foldmethod' is \"indent\"")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fdi")
  call append("$", "foldmarker\tmarkers used when 'foldmethod' is \"marker\"")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fmr")
  call append("$", "foldnestmax\tmaximum fold depth for when 'foldmethod' is \"indent\" or \"syntax\"")
  call append("$", "\t(local to window)")
  call <SID>OptionL("fdn")
endif


if has("diff")
  call <SID>Header("diff mode")
  call append("$", "diff\tuse diff mode for the current window")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("diff")
  call append("$", "diffopt\toptions for using diff mode")
  call <SID>OptionG("dip", &dip)
  call append("$", "diffexpr\texpression used to obtain a diff file")
  call <SID>OptionG("dex", &dex)
  call append("$", "patchexpr\texpression used to patch a file")
  call <SID>OptionG("pex", &pex)
endif


call <SID>Header("mapping")
call append("$", "maxmapdepth\tmaximum depth of mapping")
call append("$", " \tset mmd=" . &mmd)
call append("$", "remap\trecognize mappings in mapped keys")
call <SID>BinOptionG("remap", &remap)
call append("$", "timeout\tallow timing out halfway into a mapping")
call <SID>BinOptionG("to", &to)
call append("$", "ttimeout\tallow timing out halfway into a key code")
call <SID>BinOptionG("ttimeout", &ttimeout)
call append("$", "timeoutlen\ttime in msec for 'timeout'")
call append("$", " \tset tm=" . &tm)
call append("$", "ttimeoutlen\ttime in msec for 'ttimeout'")
call append("$", " \tset ttm=" . &ttm)


call <SID>Header("reading and writing files")
call append("$", "modeline\tenable using settings from modelines when reading a file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("ml")
call append("$", "modelines\tnumber of lines to check for modelines")
call append("$", " \tset mls=" . &mls)
call append("$", "binary\tbinary file editing")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bin")
call append("$", "endofline\tlast line in the file has an end-of-line")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("eol")
call append("$", "fixendofline\tfixes missing end-of-line at end of text file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("fixeol")
if has("multi_byte")
  call append("$", "bomb\tprepend a Byte Order Mark to the file")
  call append("$", "\t(local to buffer)")
  call <SID>BinOptionL("bomb")
endif
call append("$", "fileformat\tend-of-line format: \"dos\", \"unix\" or \"mac\"")
call append("$", "\t(local to buffer)")
call <SID>OptionL("ff")
call append("$", "fileformats\tlist of file formats to look for when editing a file")
call <SID>OptionG("ffs", &ffs)
call append("$", "textmode\tobsolete, use 'fileformat'")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("tx")
call append("$", "textauto\tobsolete, use 'fileformats'")
call <SID>BinOptionG("ta", &ta)
call append("$", "write\twriting files is allowed")
call <SID>BinOptionG("write", &write)
call append("$", "writebackup\twrite a backup file before overwriting a file")
call <SID>BinOptionG("wb", &wb)
call append("$", "backup\tkeep a backup after overwriting a file")
call <SID>BinOptionG("bk", &bk)
call append("$", "backupskip\tpatterns that specify for which files a backup is not made")
call append("$", " \tset bsk=" . &bsk)
call append("$", "backupcopy\twhether to make the backup as a copy or rename the existing file")
call append("$", "\t(global or local to buffer)")
call append("$", " \tset bkc=" . &bkc)
call append("$", "backupdir\tlist of directories to put backup files in")
call <SID>OptionG("bdir", &bdir)
call append("$", "backupext\tfile name extension for the backup file")
call <SID>OptionG("bex", &bex)
call append("$", "autowrite\tautomatically write a file when leaving a modified buffer")
call <SID>BinOptionG("aw", &aw)
call append("$", "autowriteall\tas 'autowrite', but works with more commands")
call <SID>BinOptionG("awa", &awa)
call append("$", "writeany\talways write without asking for confirmation")
call <SID>BinOptionG("wa", &wa)
call append("$", "autoread\tautomatically read a file when it was modified outside of Vim")
call append("$", "\t(global or local to buffer)")
call <SID>BinOptionG("ar", &ar)
call append("$", "patchmode\tkeep oldest version of a file; specifies file name extension")
call <SID>OptionG("pm", &pm)
call append("$", "fsync\tforcibly sync the file to disk after writing it")
call <SID>BinOptionG("fs", &fs)
call append("$", "shortname\tuse 8.3 file names")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("sn")
call append("$", "cryptmethod\tencryption method for file writing: zip or blowfish")
call append("$", "\t(local to buffer)")
call <SID>OptionL("cm")


call <SID>Header("the swap file")
call append("$", "directory\tlist of directories for the swap file")
call <SID>OptionG("dir", &dir)
call append("$", "swapfile\tuse a swap file for this buffer")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("swf")
call append("$", "swapsync\t\"sync\", \"fsync\" or empty; how to flush a swap file to disk")
call <SID>OptionG("sws", &sws)
call append("$", "updatecount\tnumber of characters typed to cause a swap file update")
call append("$", " \tset uc=" . &uc)
call append("$", "updatetime\ttime in msec after which the swap file will be updated")
call append("$", " \tset ut=" . &ut)
call append("$", "maxmem\tmaximum amount of memory in Kbyte used for one buffer")
call append("$", " \tset mm=" . &mm)
call append("$", "maxmemtot\tmaximum amount of memory in Kbyte used for all buffers")
call append("$", " \tset mmt=" . &mmt)


call <SID>Header("command line editing")
call append("$", "history\thow many command lines are remembered ")
call append("$", " \tset hi=" . &hi)
call append("$", "wildchar\tkey that triggers command-line expansion")
call append("$", " \tset wc=" . &wc)
call append("$", "wildcharm\tlike 'wildchar' but can also be used in a mapping")
call append("$", " \tset wcm=" . &wcm)
call append("$", "wildmode\tspecifies how command line completion works")
call <SID>OptionG("wim", &wim)
if has("wildoptions")
  call append("$", "wildoptions\tempty or \"tagfile\" to list file name of matching tags")
  call <SID>OptionG("wop", &wop)
endif
call append("$", "suffixes\tlist of file name extensions that have a lower priority")
call <SID>OptionG("su", &su)
if has("file_in_path")
  call append("$", "suffixesadd\tlist of file name extensions added when searching for a file")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("sua")
endif
if has("wildignore")
  call append("$", "wildignore\tlist of patterns to ignore files for file name completion")
  call <SID>OptionG("wig", &wig)
endif
call append("$", "fileignorecase\tignore case when using file names")
call <SID>BinOptionG("fic", &fic)
call append("$", "wildignorecase\tignore case when completing file names")
call <SID>BinOptionG("wic", &wic)
if has("wildmenu")
  call append("$", "wildmenu\tcommand-line completion shows a list of matches")
  call <SID>BinOptionG("wmnu", &wmnu)
endif
if has("vertsplit")
  call append("$", "cedit\tkey used to open the command-line window")
  call <SID>OptionG("cedit", &cedit)
  call append("$", "cmdwinheight\theight of the command-line window")
  call <SID>OptionG("cwh", &cwh)
endif


call <SID>Header("executing external commands")
call append("$", "shell\tname of the shell program used for external commands")
call <SID>OptionG("sh", &sh)
if has("amiga")
  call append("$", "shelltype\twhen to use the shell or directly execute a command")
  call append("$", " \tset st=" . &st)
endif
call append("$", "shellquote\tcharacter(s) to enclose a shell command in")
call <SID>OptionG("shq", &shq)
call append("$", "shellxquote\tlike 'shellquote' but include the redirection")
call <SID>OptionG("sxq", &sxq)
call append("$", "shellxescape\tcharacters to escape when 'shellxquote' is (")
call <SID>OptionG("sxe", &sxe)
call append("$", "shellcmdflag\targument for 'shell' to execute a command")
call <SID>OptionG("shcf", &shcf)
call append("$", "shellredir\tused to redirect command output to a file")
call <SID>OptionG("srr", &srr)
call append("$", "shelltemp\tuse a temp file for shell commands instead of using a pipe")
call <SID>BinOptionG("stmp", &stmp)
call append("$", "equalprg\tprogram used for \"=\" command")
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("ep", &ep)
call append("$", "formatprg\tprogram used to format lines with \"gq\" command")
call <SID>OptionG("fp", &fp)
call append("$", "keywordprg\tprogram used for the \"K\" command")
call <SID>OptionG("kp", &kp)
call append("$", "warn\twarn when using a shell command and a buffer has changes")
call <SID>BinOptionG("warn", &warn)


if has("quickfix")
  call <SID>Header("running make and jumping to errors")
  call append("$", "errorfile\tname of the file that contains error messages")
  call <SID>OptionG("ef", &ef)
  call append("$", "errorformat\tlist of formats for error messages")
  call append("$", "\t(global or local to buffer)")
  call <SID>OptionG("efm", &efm)
  call append("$", "makeprg\tprogram used for the \":make\" command")
  call append("$", "\t(global or local to buffer)")
  call <SID>OptionG("mp", &mp)
  call append("$", "shellpipe\tstring used to put the output of \":make\" in the error file")
  call <SID>OptionG("sp", &sp)
  call append("$", "makeef\tname of the errorfile for the 'makeprg' command")
  call <SID>OptionG("mef", &mef)
  call append("$", "grepprg\tprogram used for the \":grep\" command")
  call append("$", "\t(global or local to buffer)")
  call <SID>OptionG("gp", &gp)
  call append("$", "grepformat\tlist of formats for output of 'grepprg'")
  call <SID>OptionG("gfm", &gfm)
  call append("$", "makeencoding\tencoding of the \":make\" and \":grep\" output")
  call append("$", "\t(global or local to buffer)")
  call <SID>OptionG("menc", &menc)
endif


if has("win32") || has("osfiletype")
  call <SID>Header("system specific")
  if has("osfiletype")
    call append("$", "osfiletype\tOS-specific information about the type of file")
    call append("$", "\t(local to buffer)")
    call <SID>OptionL("oft")
  endif
  if has("win32")
    call append("$", "shellslash\tuse forward slashes in file names; for Unix-like shells")
    call <SID>BinOptionG("ssl", &ssl)
  endif
endif


call <SID>Header("language specific")
call append("$", "isfname\tspecifies the characters in a file name")
call <SID>OptionG("isf", &isf)
call append("$", "isident\tspecifies the characters in an identifier")
call <SID>OptionG("isi", &isi)
call append("$", "iskeyword\tspecifies the characters in a keyword")
call append("$", "\t(local to buffer)")
call <SID>OptionL("isk")
call append("$", "isprint\tspecifies printable characters")
call <SID>OptionG("isp", &isp)
if has("textobjects")
  call append("$", "quoteescape\tspecifies escape characters in a string")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("qe")
endif
if has("rightleft")
  call append("$", "rightleft\tdisplay the buffer right-to-left")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("rl")
  call append("$", "rightleftcmd\twhen to edit the command-line right-to-left")
  call append("$", "\t(local to window)")
  call <SID>OptionL("rlc")
  call append("$", "revins\tinsert characters backwards")
  call <SID>BinOptionG("ri", &ri)
  call append("$", "allowrevins\tallow CTRL-_ in Insert and Command-line mode to toggle 'revins'")
  call <SID>BinOptionG("ari", &ari)
  call append("$", "aleph\tthe ASCII code for the first letter of the Hebrew alphabet")
  call append("$", " \tset al=" . &al)
  call append("$", "hkmap\tuse Hebrew keyboard mapping")
  call <SID>BinOptionG("hk", &hk)
  call append("$", "hkmapp\tuse phonetic Hebrew keyboard mapping")
  call <SID>BinOptionG("hkp", &hkp)
endif
if has("farsi")
  call append("$", "altkeymap\tuse Farsi as the second language when 'revins' is set")
  call <SID>BinOptionG("akm", &akm)
  call append("$", "fkmap\tuse Farsi keyboard mapping")
  call <SID>BinOptionG("fk", &fk)
endif
if has("arabic")
  call append("$", "arabic\tprepare for editing Arabic text")
  call append("$", "\t(local to window)")
  call <SID>BinOptionL("arab")
  call append("$", "arabicshape\tperform shaping of Arabic characters")
  call <SID>BinOptionG("arshape", &arshape)
  call append("$", "termbidi\tterminal will perform bidi handling")
  call <SID>BinOptionG("tbidi", &tbidi)
endif
if has("keymap")
  call append("$", "keymap\tname of a keyboard mapping")
  call <SID>OptionL("kmp")
endif
if has("langmap")
  call append("$", "langmap\tlist of characters that are translated in Normal mode")
  call <SID>OptionG("lmap", &lmap)
  call append("$", "langremap\tapply 'langmap' to mapped characters")
  call <SID>BinOptionG("lrm", &lrm)
endif
if has("xim")
  call append("$", "imdisable\twhen set never use IM; overrules following IM options")
  call <SID>BinOptionG("imd", &imd)
endif
call append("$", "iminsert\tin Insert mode: 1: use :lmap; 2: use IM; 0: neither")
call append("$", "\t(local to window)")
call <SID>OptionL("imi")
call append("$", "imstyle\tinput method style, 0: on-the-spot, 1: over-the-spot")
call <SID>OptionG("imst", &imst)
call append("$", "imsearch\tentering a search pattern: 1: use :lmap; 2: use IM; 0: neither")
call append("$", "\t(local to window)")
call <SID>OptionL("ims")
if has("xim")
  call append("$", "imcmdline\twhen set always use IM when starting to edit a command line")
  call <SID>BinOptionG("imc", &imc)
  call append("$", "imstatusfunc\tfunction to obtain IME status")
  call <SID>OptionG("imsf", &imsf)
  call append("$", "imactivatefunc\tfunction to enable/disable IME")
  call <SID>OptionG("imaf", &imaf)
endif


if has("multi_byte")
  call <SID>Header("multi-byte characters")
  call append("$", "encoding\tcharacter encoding used in Vim: \"latin1\", \"utf-8\"")
  call append("$", "\t\"euc-jp\", \"big5\", etc.")
  call <SID>OptionG("enc", &enc)
  call append("$", "fileencoding\tcharacter encoding for the current file")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("fenc")
  call append("$", "fileencodings\tautomatically detected character encodings")
  call <SID>OptionG("fencs", &fencs)
  call append("$", "termencoding\tcharacter encoding used by the terminal")
  call <SID>OptionG("tenc", &tenc)
  call append("$", "charconvert\texpression used for character encoding conversion")
  call <SID>OptionG("ccv", &ccv)
  call append("$", "delcombine\tdelete combining (composing) characters on their own")
  call <SID>BinOptionG("deco", &deco)
  call append("$", "maxcombine\tmaximum number of combining (composing) characters displayed")
  call <SID>OptionG("mco", &mco)
  if has("xim") && has("gui_gtk")
    call append("$", "imactivatekey\tkey that activates the X input method")
    call <SID>OptionG("imak", &imak)
  endif
  call append("$", "ambiwidth\twidth of ambiguous width characters")
  call <SID>OptionG("ambw", &ambw)
  call append("$", "emoji\temoji characters are full width")
  call <SID>BinOptionG("emo", &emo)
endif


call <SID>Header("various")
if has("virtualedit")
  call append("$", "virtualedit\twhen to use virtual editing: \"block\", \"insert\" and/or \"all\"")
  call <SID>OptionG("ve", &ve)
endif
if has("autocmd")
  call append("$", "eventignore\tlist of autocommand events which are to be ignored")
  call <SID>OptionG("ei", &ei)
endif
call append("$", "loadplugins\tload plugin scripts when starting up")
call <SID>BinOptionG("lpl", &lpl)
call append("$", "exrc\tenable reading .vimrc/.exrc/.gvimrc in the current directory")
call <SID>BinOptionG("ex", &ex)
call append("$", "secure\tsafer working with script files in the current directory")
call <SID>BinOptionG("secure", &secure)
call append("$", "gdefault\tuse the 'g' flag for \":substitute\"")
call <SID>BinOptionG("gd", &gd)
call append("$", "edcompatible\t'g' and 'c' flags of \":substitute\" toggle")
call <SID>BinOptionG("ed", &ed)
if exists("+opendevice")
  call append("$", "opendevice\tallow reading/writing devices")
  call <SID>BinOptionG("odev", &odev)
endif
if exists("+maxfuncdepth")
  call append("$", "maxfuncdepth\tmaximum depth of function calls")
  call append("$", " \tset mfd=" . &mfd)
endif
if has("mksession")
  call append("$", "sessionoptions\tlist of words that specifies what to put in a session file")
  call <SID>OptionG("ssop", &ssop)
  call append("$", "viewoptions\tlist of words that specifies what to save for :mkview")
  call <SID>OptionG("vop", &vop)
  call append("$", "viewdir\tdirectory where to store files with :mkview")
  call <SID>OptionG("vdir", &vdir)
endif
if has("viminfo")
  call append("$", "viminfo\tlist that specifies what to write in the viminfo file")
  call <SID>OptionG("vi", &vi)
  call append("$", "viminfofile\tfile name used for the viminfo file")
  call <SID>OptionG("vif", &vif)
endif
if has("quickfix")
  call append("$", "bufhidden\twhat happens with a buffer when it's no longer in a window")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("bh")
  call append("$", "buftype\t\"\", \"nofile\", \"nowrite\" or \"quickfix\": type of buffer")
  call append("$", "\t(local to buffer)")
  call <SID>OptionL("bt")
endif
call append("$", "buflisted\twhether the buffer shows up in the buffer list")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bl")
call append("$", "debug\tset to \"msg\" to see all error messages")
call append("$", " \tset debug=" . &debug)
if has("signs")
  call append("$", "signcolumn\twhether to show the signcolumn")
  call append("$", "\t(local to window)")
  call <SID>OptionL("scl")
endif
if has("mzscheme")
  call append("$", "mzquantum\tinterval in milliseconds between polls for MzScheme threads")
  call append("$", " \tset mzq=" . &mzq)
endif
if exists("&luadll")
  call append("$", "luadll\tname of the Lua dynamic library")
  call <SID>OptionG("luadll", &luadll)
endif
if exists("&perldll")
  call append("$", "perldll\tname of the Perl dynamic library")
  call <SID>OptionG("perldll", &perldll)
endif
if has('pythonx')
  call append("$", "pyxversion\twhether to use Python 2 or 3")
  call append("$", " \tset pyx=" . &wd)
endif
if exists("&pythondll")
  call append("$", "pythondll\tname of the Python 2 dynamic library")
  call <SID>OptionG("pythondll", &pythondll)
endif
if exists("&pythonhome")
  call append("$", "pythonhome\tname of the Python 2 home directory")
  call <SID>OptionG("pythonhome", &pythonhome)
endif
if exists("&pythonthreedll")
  call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
  call <SID>OptionG("pythonthreedll", &pythonthreedll)
endif
if exists("&pythonthreehome")
  call append("$", "pythonthreehome\tname of the Python 3 home directory")
  call <SID>OptionG("pythonthreehome", &pythonthreehome)
endif
if exists("&rubydll")
  call append("$", "rubydll\tname of the Ruby dynamic library")
  call <SID>OptionG("rubydll", &rubydll)
endif
if exists("&tcldll")
  call append("$", "tcldll\tname of the Tcl dynamic library")
  call <SID>OptionG("tcldll", &tcldll)
endif
if exists("&mzschemedll")
  call append("$", "mzschemedll\tname of the Tcl dynamic library")
  call <SID>OptionG("mzschemedll", &mzschemedll)
  call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library")
  call <SID>OptionG("mzschemegcdll", &mzschemegcdll)
endif

set cpo&vim

" go to first line
1

" reset 'modified', so that ":q" can be used to close the window
setlocal nomodified

if has("syntax")
  " Use Vim highlighting, with some additional stuff
  setlocal ft=vim
  syn match optwinHeader "^ \=[0-9].*"
  syn match optwinName "^[a-z]*\t" nextgroup=optwinComment
  syn match optwinComment ".*" contained
  syn match optwinComment "^\t.*"
  if !exists("did_optwin_syntax_inits")
    let did_optwin_syntax_inits = 1
    hi link optwinHeader Title
    hi link optwinName Identifier
    hi link optwinComment Comment
  endif
endif

" Install autocommands to enable mappings in option-window
noremap <silent> <buffer> <CR> <C-\><C-N>:call <SID>CR()<CR>
inoremap <silent> <buffer> <CR> <Esc>:call <SID>CR()<CR>
noremap <silent> <buffer> <Space> :call <SID>Space()<CR>

" Make the buffer be deleted when the window is closed.
setlocal buftype=nofile bufhidden=delete noswapfile

augroup optwin
  au! BufUnload,BufHidden option-window nested
	\ call <SID>unload() | delfun <SID>unload
augroup END

fun! <SID>unload()
  delfun <SID>CR
  delfun <SID>Space
  delfun <SID>Find
  delfun <SID>Update
  delfun <SID>OptionL
  delfun <SID>OptionG
  delfun <SID>BinOptionL
  delfun <SID>BinOptionG
  delfun <SID>Header
  au! optwin
endfun

" Restore the previous value of 'title' and 'icon'.
let &title = s:old_title
let &icon = s:old_icon
let &ru = s:old_ru
let &sc = s:old_sc
let &cpo = s:cpo_save
let &ul = s:old_ul
unlet s:old_title s:old_icon s:old_ru s:old_sc s:cpo_save s:idx s:lnum s:old_ul

" vim: ts=8 sw=2 sts=2
PK�j�Z[  �vim80/defaults.vimnu�[���" The default vimrc file.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2017 Jun 13
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
" Individual settings can be reverted with ":set option&".
" Other commands can be reverted as mentioned below.

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Bail out if something that ran earlier, e.g. a system wide vimrc, does not
" want Vim to use these default values.
if exists('skip_defaults_vim')
  finish
endif

" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
" Avoid side effects when it was already reset.
if &compatible
  set nocompatible
endif

" When the +eval feature is missing, the set command above will be skipped.
" Use a trick to reset compatible only when the +eval feature is missing.
silent! while 0
  set nocompatible
silent! endwhile

" Allow backspacing over everything in insert mode.
set backspace=indent,eol,start

set history=200		" keep 200 lines of command line history
set ruler		" show the cursor position all the time
set showcmd		" display incomplete commands
set wildmenu		" display completion matches in a status line

set ttimeout		" time out for key codes
set ttimeoutlen=100	" wait up to 100ms after Esc for special key

" Show @@@ in the last line if it is truncated.
set display=truncate

" Show a few lines of context around the cursor.  Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5

" Do incremental searching when it's possible to timeout.
if has('reltime')
  set incsearch
endif

" Do not recognize octal numbers for Ctrl-A and Ctrl-X, most users find it
" confusing.
set nrformats-=octal

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries.
if has('win32')
  set guioptions-=t
endif

" Don't use Ex mode, use Q for formatting.
" Revert with ":unmap Q".
map Q gq

" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
" Revert with ":iunmap <C-U>".
inoremap <C-U> <C-G>u<C-U>

" Switch syntax highlighting on when the terminal has colors or when using the
" GUI (which always has colors).
if &t_Co > 2 || has("gui_running")
  " Revert with ":syntax off".
  syntax on

  " I like highlighting strings inside C comments.
  " Revert with ":unlet c_comment_strings".
  let c_comment_strings=1
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  " Revert with ":filetype off".
  filetype plugin indent on

  " Put these in an autocmd group, so that you can revert them with:
  " ":augroup vimStartup | au! | augroup END"
  augroup vimStartup
    au!

    " When editing a file, always jump to the last known cursor position.
    " Don't do it when the position is invalid, when inside an event handler
    " (happens when dropping a file on gvim) and for a commit message (it's
    " likely a different one than last time).
    autocmd BufReadPost *
      \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
      \ |   exe "normal! g`\""
      \ | endif

  augroup END

endif " has("autocmd")

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
" Revert with: ":delcommand DiffOrig".
if !exists(":DiffOrig")
  command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
		  \ | wincmd p | diffthis
endif

if has('langmap') && exists('+langremap')
  " Prevent that the langmap option applies to characters that result from a
  " mapping.  If set (default), this may break plugins (but it's backward
  " compatible).
  set nolangremap
endif
PK�j�Z-#4))vim80/indent/vb.vimnu�[���" Vim indent file
" Language:	VisualBasic (ft=vb) / Basic (ft=basic) / SaxBasic (ft=vb)
" Author:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Fri, 18 Jun 2004 07:22:42 CEST
"		Small update 2010 Jul 28 by Maxim Kim

if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=VbGetIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+==~else,=~elseif,=~end,=~wend,=~case,=~next,=~select,=~loop,<:>

let b:undo_indent = "set ai< indentexpr< indentkeys<"

" Only define the function once.
if exists("*VbGetIndent")
    finish
endif

fun! VbGetIndent(lnum)
    " labels and preprocessor get zero indent immediately
    let this_line = getline(a:lnum)
    let LABELS_OR_PREPROC = '^\s*\(\<\k\+\>:\s*$\|#.*\)'
    if this_line =~? LABELS_OR_PREPROC
	return 0
    endif

    " Find a non-blank line above the current line.
    " Skip over labels and preprocessor directives.
    let lnum = a:lnum
    while lnum > 0
	let lnum = prevnonblank(lnum - 1)
	let previous_line = getline(lnum)
	if previous_line !~? LABELS_OR_PREPROC
	    break
	endif
    endwhile

    " Hit the start of the file, use zero indent.
    if lnum == 0
	return 0
    endif

    let ind = indent(lnum)

    " Add
    if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
	let ind = ind + shiftwidth()
    endif

    " Subtract
    if this_line =~? '^\s*\<end\>\s\+\<select\>'
	if previous_line !~? '^\s*\<select\>'
	    let ind = ind - 2 * shiftwidth()
	else
	    " this case is for an empty 'select' -- 'end select'
	    " (w/o any case statements) like:
	    "
	    " select case readwrite
	    " end select
	    let ind = ind - shiftwidth()
	endif
    elseif this_line =~? '^\s*\<\(end\|else\|elseif\|until\|loop\|next\|wend\)\>'
	let ind = ind - shiftwidth()
    elseif this_line =~? '^\s*\<\(case\|default\)\>'
	if previous_line !~? '^\s*\<select\>'
	    let ind = ind - shiftwidth()
	endif
    endif

    return ind
endfun

" vim:sw=4
PK�j�Z�^ԮFFvim80/indent/pyrex.vimnu�[���" Vim indent file
" Language:	Pyrex
" Maintainer:	Marco Barisione <marco.bari@people.it>
" URL:		http://marcobari.altervista.org/pyrex_vim.html
" Last Change:	2005 Jun 24

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Use Python formatting rules
runtime! indent/python.vim
PK�j�Z3�-���vim80/indent/eiffel.vimnu�[���" Vim indent file
" Language:	Eiffel
" Maintainer:	Jocelyn Fiat <jfiat@eiffel.com>
" Previous-Maintainer:	David Clarke <gadicath@dishevelled.net>
" Contributions from: Takuya Fujiwara
" Contributions from: Thilo Six
" $Date: 2017/03/08 06:00:00 $
" $Revision: 1.4 $
" URL: https://github.com/eiffelhub/vim-eiffel

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetEiffelIndent()
setlocal nolisp
setlocal nosmartindent
setlocal nocindent
setlocal autoindent
setlocal comments=:--
setlocal indentkeys+==end,=else,=ensure,=require,=check,=loop,=until
setlocal indentkeys+==creation,=feature,=inherit,=class,=is,=redefine,=rename,=variant
setlocal indentkeys+==invariant,=do,=local,=export

let b:undo_indent = "setl smartindent< indentkeys< indentexpr< autoindent< comments< "

" Define some stuff
" keywords grouped by indenting
let s:trust_user_indent = '\(+\)\(\s*\(--\).*\)\=$'
let s:relative_indent = '^\s*\(deferred\|class\|feature\|creation\|inherit\|loop\|from\|across\|until\|if\|else\|elseif\|ensure\|require\|check\|do\|local\|invariant\|variant\|rename\|redefine\|do\|export\)\>'
let s:outdent = '^\s*\(else\|invariant\|variant\|do\|require\|until\|loop\|local\)\>'
let s:no_indent = '^\s*\(class\|feature\|creation\|inherit\)\>'
let s:single_dent = '^[^-]\+[[:alnum:]]\+ is\(\s*\(--\).*\)\=$'
let s:inheritance_dent = '\s*\(redefine\|rename\|export\)\>'


" Only define the function once.
if exists("*GetEiffelIndent")
  finish
endif

let s:keepcpo= &cpo
set cpo&vim

function GetEiffelIndent()

  " Eiffel Class indenting
  "
  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif

  " trust the user's indenting
  if getline(lnum) =~ s:trust_user_indent
    return -1
  endif

  " Add a 'shiftwidth' after lines that start with an indent word
  let ind = indent(lnum)
  if getline(lnum) =~ s:relative_indent
    let ind = ind + shiftwidth()
  endif

  " Indent to single indent
  if getline(v:lnum) =~ s:single_dent && getline(v:lnum) !~ s:relative_indent
	   \ && getline(v:lnum) !~ '\s*\<\(and\|or\|implies\)\>'
     let ind = shiftwidth()
  endif

  " Indent to double indent
  if getline(v:lnum) =~ s:inheritance_dent
     let ind = 2 * shiftwidth()
  endif

  " Indent line after the first line of the function definition
  if getline(lnum) =~ s:single_dent
     let ind = ind + shiftwidth()
  endif

  " The following should always be at the start of a line, no indenting
  if getline(v:lnum) =~ s:no_indent
     let ind = 0
  endif

  " Subtract a 'shiftwidth', if this isn't the first thing after the 'is'
  " or first thing after the 'do'
  if getline(v:lnum) =~ s:outdent && getline(v:lnum - 1) !~ s:single_dent
	\ && getline(v:lnum - 1) !~ '^\s*do\>'
    let ind = ind - shiftwidth()
  endif

  " Subtract a shiftwidth for end statements
  if getline(v:lnum) =~ '^\s*end\>'
    let ind = ind - shiftwidth()
  endif

  " set indent of zero end statements that are at an indent of 3, this should
  " only ever be the class's end.
  if getline(v:lnum) =~ '^\s*end\>' && ind == shiftwidth()
    let ind = 0
  endif

  return ind
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:sw=2
PK�j�Z�.�ŝ�vim80/indent/cdl.vimnu�[���" Description:	Comshare Dimension Definition Language (CDL)
" Author:	Raul Segura Acevedo <raulseguraaceved@netscape.net>
" Last Change:	Fri Nov 30 13:35:48  2001 CST

if exists("b:did_indent")
    "finish
endif
let b:did_indent = 1

setlocal indentexpr=CdlGetIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+==~else,=~endif,=~then,;,),=

" Only define the function once.
if exists("*CdlGetIndent")
    "finish
endif

" find out if an "...=..." expresion is an assignment (or a conditional)
" it scans 'line' first, and then the previos lines
fun! CdlAsignment(lnum, line)
  let f = -1
  let lnum = a:lnum
  let line = a:line
  while lnum > 0 && f == -1
    " line without members [a] of [b]:[c]...
    let inicio = 0
    while 1
      " keywords that help to decide
      let inicio = matchend(line, '\c\<\(expr\|\a*if\|and\|or\|not\|else\|then\|memberis\|\k\+of\)\>\|[<>;]', inicio)
      if inicio < 0
	break
      endif
      " it's formula if there's a ';', 'elsE', 'theN', 'enDif' or 'expr'
      " conditional if there's a '<', '>', 'elseif', 'if', 'and', 'or', 'not',
      " 'memberis', 'childrenof' and other \k\+of funcions
      let f = line[inicio-1] =~? '[en;]' || strpart(line, inicio-4, 4) =~? 'ndif\|expr'
    endw
    let lnum = prevnonblank(lnum-1)
    let line = substitute(getline(lnum), '\c\(\[[^]]*]\(\s*of\s*\|:\)*\)\+', ' ', 'g')
  endw
  " if we hit the start of the file then f = -1, return 1 (formula)
  return f != 0
endf

fun! CdlGetIndent(lnum)
  let thisline = getline(a:lnum)
  if match(thisline, '^\s*\(\k\+\|\[[^]]*]\)\s*\(,\|;\s*$\)') >= 0
    " it's an attributes line
    return shiftwidth()
  elseif match(thisline, '^\c\s*\([{}]\|\/[*/]\|dimension\|schedule\|group\|hierarchy\|class\)') >= 0
    " it's a header or '{' or '}' or a comment
    return 0
  end

  let lnum = prevnonblank(a:lnum-1)
  " Hit the start of the file, use zero indent.
  if lnum == 0
    return 0
  endif

  " PREVIOUS LINE
  let ind = indent(lnum)
  let line = getline(lnum)
  let f = -1 " wether a '=' is a conditional or a asignment, -1 means we don't know yet
  " one 'closing' element at the beginning of the line has already reduced the
  "   indent, but 'else', 'elseif' & 'then' increment it for the next line
  " '=' at the beginning has already de right indent (increased for asignments)
  let inicio = matchend(line, '^\c\s*\(else\a*\|then\|endif\|/[*/]\|[);={]\)')
  if inicio > 0
    let c = line[inicio-1]
    " ')' and '=' don't change indent and are useless to set 'f'
    if c == '{'
      return shiftwidth()
    elseif c != ')' && c != '='
      let f = 1 " all but 'elseif' are followed by a formula
      if c ==? 'n' || c ==? 'e' " 'then', 'else'
	let ind = ind + shiftwidth()
      elseif strpart(line, inicio-6, 6) ==? 'elseif' " elseif, set f to conditional
	let ind = ind + shiftwidth()
	let f = 0
      end
    end
  end

  " remove members [a] of [b]:[c]... (inicio remainds valid)
  let line = substitute(line, '\c\(\[[^]]*]\(\s*of\s*\|:\)*\)\+', ' ', 'g')
  while 1
    " search for the next interesting element
    let inicio=matchend(line, '\c\<if\|endif\|[()=;]', inicio)
    if inicio < 0
      break
    end

    let c = line[inicio-1]
    " 'expr(...)' containing the formula
    if strpart(line, inicio-5, 5) ==? 'expr('
      let ind = 0
      let f = 1
    elseif c == ')' || c== ';' || strpart(line, inicio-5, 5) ==? 'endif'
      let ind = ind - shiftwidth()
    elseif c == '(' || c ==? 'f' " '(' or 'if'
      let ind = ind + shiftwidth()
    else " c == '='
      " if it is an asignment increase indent
      if f == -1 " we don't know yet, find out
	let f = CdlAsignment(lnum, strpart(line, 0, inicio))
      end
      if f == 1 " formula increase it
	let ind = ind + shiftwidth()
      end
    end
  endw

  " CURRENT LINE, if it starts with a closing element, decrease indent
  " or if it starts with '=' (asignment), increase indent
  if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0
    let ind = ind - shiftwidth()
  elseif match(thisline, '^\s*=') >= 0
    if f == -1 " we don't know yet if is an asignment, find out
      let f = CdlAsignment(lnum, "")
    end
    if f == 1 " formula increase it
      let ind = ind + shiftwidth()
    end
  end

  return ind
endfun
PK�j�Z��p���vim80/indent/readline.vimnu�[���" Vim indent file
" Language:             readline configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetReadlineIndent()
setlocal indentkeys=!^F,o,O,=$else,=$endif
setlocal nosmartindent

if exists("*GetReadlineIndent")
  finish
endif

function GetReadlineIndent()
  let lnum = prevnonblank(v:lnum - 1)
  if lnum == 0
    return 0
  endif

  let ind = indent(lnum)

  if getline(lnum) =~ '^\s*$\(if\|else\)\>'
    let ind = ind + shiftwidth()
  endif

  if getline(v:lnum) =~ '^\s*$\(else\|endif\)\>'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction
PK�j�Z󐹑��vim80/indent/dtrace.vimnu�[���" Vim indent file
" Language: D script as described in "Solaris Dynamic Tracing Guide",
"           http://docs.sun.com/app/docs/doc/817-6223
" Last Change: 2008/03/20
" Version: 1.2
" Maintainer: Nicolas Weber <nicolasweber@gmx.de>

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

" Built-in C indenting works nicely for dtrace.
setlocal cindent

let b:undo_indent = "setl cin<"
PK�j�Z(ξ�Q6Q6vim80/indent/r.vimnu�[���" Vim indent file
" Language:	R
" Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage:     https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Thu Feb 18, 2016  06:32AM


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetRIndent()

" Only define the function once.
if exists("*GetRIndent")
  finish
endif

" Options to make the indentation more similar to Emacs/ESS:
if !exists("g:r_indent_align_args")
  let g:r_indent_align_args = 1
endif
if !exists("g:r_indent_ess_comments")
  let g:r_indent_ess_comments = 0
endif
if !exists("g:r_indent_comment_column")
  let g:r_indent_comment_column = 40
endif
if ! exists("g:r_indent_ess_compatible")
  let g:r_indent_ess_compatible = 0
endif
if ! exists("g:r_indent_op_pattern")
  let g:r_indent_op_pattern = '\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$'
endif

function s:RDelete_quotes(line)
  let i = 0
  let j = 0
  let line1 = ""
  let llen = strlen(a:line)
  while i < llen
    if a:line[i] == '"'
      let i += 1
      let line1 = line1 . 's'
      while !(a:line[i] == '"' && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
        let i += 1
      endwhile
      if a:line[i] == '"'
        let i += 1
      endif
    else
      if a:line[i] == "'"
        let i += 1
        let line1 = line1 . 's'
        while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
          let i += 1
        endwhile
        if a:line[i] == "'"
          let i += 1
        endif
      else
        if a:line[i] == "`"
          let i += 1
          let line1 = line1 . 's'
          while a:line[i] != "`" && i < llen
            let i += 1
          endwhile
          if a:line[i] == "`"
            let i += 1
          endif
        endif
      endif
    endif
    if i == llen
      break
    endif
    let line1 = line1 . a:line[i]
    let j += 1
    let i += 1
  endwhile
  return line1
endfunction

" Convert foo(bar()) int foo()
function s:RDelete_parens(line)
  if s:Get_paren_balance(a:line, "(", ")") != 0
    return a:line
  endif
  let i = 0
  let j = 0
  let line1 = ""
  let llen = strlen(a:line)
  while i < llen
    let line1 = line1 . a:line[i]
    if a:line[i] == '('
      let nop = 1
      while nop > 0 && i < llen
        let i += 1
        if a:line[i] == ')'
          let nop -= 1
        else
          if a:line[i] == '('
            let nop += 1
          endif
        endif
      endwhile
      let line1 = line1 . a:line[i]
    endif
    let i += 1
  endwhile
  return line1
endfunction

function! s:Get_paren_balance(line, o, c)
  let line2 = substitute(a:line, a:o, "", "g")
  let openp = strlen(a:line) - strlen(line2)
  let line3 = substitute(line2, a:c, "", "g")
  let closep = strlen(line2) - strlen(line3)
  return openp - closep
endfunction

function! s:Get_matching_brace(linenr, o, c, delbrace)
  let line = SanitizeRLine(getline(a:linenr))
  if a:delbrace == 1
    let line = substitute(line, '{$', "", "")
  endif
  let pb = s:Get_paren_balance(line, a:o, a:c)
  let i = a:linenr
  while pb != 0 && i > 1
    let i -= 1
    let pb += s:Get_paren_balance(SanitizeRLine(getline(i)), a:o, a:c)
  endwhile
  return i
endfunction

" This function is buggy because there 'if's without 'else'
" It must be rewritten relying more on indentation
function! s:Get_matching_if(linenr, delif)
  let line = SanitizeRLine(getline(a:linenr))
  if a:delif
    let line = substitute(line, "if", "", "g")
  endif
  let elsenr = 0
  let i = a:linenr
  let ifhere = 0
  while i > 0
    let line2 = substitute(line, '\<else\>', "xxx", "g")
    let elsenr += strlen(line) - strlen(line2)
    if line =~ '.*\s*if\s*()' || line =~ '.*\s*if\s*()'
      let elsenr -= 1
      if elsenr == 0
        let ifhere = i
        break
      endif
    endif
    let i -= 1
    let line = SanitizeRLine(getline(i))
  endwhile
  if ifhere
    return ifhere
  else
    return a:linenr
  endif
endfunction

function! s:Get_last_paren_idx(line, o, c, pb)
  let blc = a:pb
  let line = substitute(a:line, '\t', s:curtabstop, "g")
  let theidx = -1
  let llen = strlen(line)
  let idx = 0
  while idx < llen
    if line[idx] == a:o
      let blc -= 1
      if blc == 0
        let theidx = idx
      endif
    else
      if line[idx] == a:c
        let blc += 1
      endif
    endif
    let idx += 1
  endwhile
  return theidx + 1
endfunction

" Get previous relevant line. Search back until getting a line that isn't
" comment or blank
function s:Get_prev_line(lineno)
  let lnum = a:lineno - 1
  let data = getline( lnum )
  while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$')
    let lnum = lnum - 1
    let data = getline( lnum )
  endwhile
  return lnum
endfunction

" This function is also used by r-plugin/common_global.vim
" Delete from '#' to the end of the line, unless the '#' is inside a string.
function SanitizeRLine(line)
  let newline = s:RDelete_quotes(a:line)
  let newline = s:RDelete_parens(newline)
  let newline = substitute(newline, '#.*', "", "")
  let newline = substitute(newline, '\s*$', "", "")
  if &filetype == "rhelp" && newline =~ '^\\method{.*}{.*}(.*'
    let newline = substitute(newline, '^\\method{\(.*\)}{.*}', '\1', "")
  endif
  return newline
endfunction

function GetRIndent()

  let clnum = line(".")    " current line

  let cline = getline(clnum)
  if cline =~ '^\s*#'
    if g:r_indent_ess_comments == 1
      if cline =~ '^\s*###'
        return 0
      endif
      if cline !~ '^\s*##'
        return g:r_indent_comment_column
      endif
    endif
  endif

  let cline = SanitizeRLine(cline)

  if cline =~ '^\s*}' || cline =~ '^\s*}\s*)$'
    let indline = s:Get_matching_brace(clnum, '{', '}', 1)
    if indline > 0 && indline != clnum
      let iline = SanitizeRLine(getline(indline))
      if s:Get_paren_balance(iline, "(", ")") == 0 || iline =~ '(\s*{$'
        return indent(indline)
      else
        let indline = s:Get_matching_brace(indline, '(', ')', 1)
        return indent(indline)
      endif
    endif
  endif

  " Find the first non blank line above the current line
  let lnum = s:Get_prev_line(clnum)
  " Hit the start of the file, use zero indent.
  if lnum == 0
    return 0
  endif

  let line = SanitizeRLine(getline(lnum))

  if &filetype == "rhelp"
    if cline =~ '^\\dontshow{' || cline =~ '^\\dontrun{' || cline =~ '^\\donttest{' || cline =~ '^\\testonly{'
      return 0
    endif
    if line =~ '^\\examples{' || line =~ '^\\usage{' || line =~ '^\\dontshow{' || line =~ '^\\dontrun{' || line =~ '^\\donttest{' || line =~ '^\\testonly{'
      return 0
    endif
  endif

  if &filetype == "rnoweb" && line =~ "^<<.*>>="
    return 0
  endif

  if cline =~ '^\s*{' && s:Get_paren_balance(cline, '{', '}') > 0
    if g:r_indent_ess_compatible && line =~ ')$'
      let nlnum = lnum
      let nline = line
      while s:Get_paren_balance(nline, '(', ')') < 0
        let nlnum = s:Get_prev_line(nlnum)
        let nline = SanitizeRLine(getline(nlnum)) . nline
      endwhile
      if nline =~ '^\s*function\s*(' && indent(nlnum) == shiftwidth()
        return 0
      endif
    endif
    if s:Get_paren_balance(line, "(", ")") == 0
      return indent(lnum)
    endif
  endif

  " line is an incomplete command:
  if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$' || line =~ '->$'
    return indent(lnum) + shiftwidth()
  endif

  " Deal with () and []

  let pb = s:Get_paren_balance(line, '(', ')')

  if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$'))
    return indent(lnum) + shiftwidth()
  endif

  let s:curtabstop = repeat(' ', &tabstop)

  if g:r_indent_align_args == 1
    if pb > 0 && line =~ '{$'
      return s:Get_last_paren_idx(line, '(', ')', pb) + shiftwidth()
    endif

    let bb = s:Get_paren_balance(line, '[', ']')

    if pb > 0
      if &filetype == "rhelp"
        let ind = s:Get_last_paren_idx(line, '(', ')', pb)
      else
        let ind = s:Get_last_paren_idx(getline(lnum), '(', ')', pb)
      endif
      return ind
    endif

    if pb < 0 && line =~ '.*[,&|\-\*+<>]$'
      let lnum = s:Get_prev_line(lnum)
      while pb < 1 && lnum > 0
        let line = SanitizeRLine(getline(lnum))
        let line = substitute(line, '\t', s:curtabstop, "g")
        let ind = strlen(line)
        while ind > 0
          if line[ind] == ')'
            let pb -= 1
          else
            if line[ind] == '('
              let pb += 1
            endif
          endif
          if pb == 1
            return ind + 1
          endif
          let ind -= 1
        endwhile
        let lnum -= 1
      endwhile
      return 0
    endif

    if bb > 0
      let ind = s:Get_last_paren_idx(getline(lnum), '[', ']', bb)
      return ind
    endif
  endif

  let post_block = 0
  if line =~ '}$' && s:Get_paren_balance(line, '{', '}') < 0
    let lnum = s:Get_matching_brace(lnum, '{', '}', 0)
    let line = SanitizeRLine(getline(lnum))
    if lnum > 0 && line =~ '^\s*{'
      let lnum = s:Get_prev_line(lnum)
      let line = SanitizeRLine(getline(lnum))
    endif
    let pb = s:Get_paren_balance(line, '(', ')')
    let post_block = 1
  endif

  " Indent after operator pattern
  let olnum = s:Get_prev_line(lnum)
  let oline = getline(olnum)
  if olnum > 0
    if line =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
      if oline =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
        return indent(lnum)
      else
        return indent(lnum) + shiftwidth()
      endif
    else
      if oline =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
        return indent(lnum) - shiftwidth()
      endif
    endif
  endif

  let post_fun = 0
  if pb < 0 && line !~ ')\s*[,&|\-\*+<>]$'
    let post_fun = 1
    while pb < 0 && lnum > 0
      let lnum -= 1
      let linepiece = SanitizeRLine(getline(lnum))
      let pb += s:Get_paren_balance(linepiece, "(", ")")
      let line = linepiece . line
    endwhile
    if line =~ '{$' && post_block == 0
      return indent(lnum) + shiftwidth()
    endif

    " Now we can do some tests again
    if cline =~ '^\s*{'
      return indent(lnum)
    endif
    if post_block == 0
      let newl = SanitizeRLine(line)
      if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$'
        return indent(lnum) + shiftwidth()
      endif
    endif
  endif

  if cline =~ '^\s*else'
    if line =~ '<-\s*if\s*()'
      return indent(lnum) + shiftwidth()
    else
      if line =~ '\<if\s*()'
        return indent(lnum)
      else
        return indent(lnum) - shiftwidth()
      endif
    endif
  endif

  let bb = s:Get_paren_balance(line, '[', ']')
  if bb < 0 && line =~ '.*]'
    while bb < 0 && lnum > 0
      let lnum -= 1
      let linepiece = SanitizeRLine(getline(lnum))
      let bb += s:Get_paren_balance(linepiece, "[", "]")
      let line = linepiece . line
    endwhile
    let line = s:RDelete_parens(line)
  endif

  let plnum = s:Get_prev_line(lnum)
  let ppost_else = 0
  if plnum > 0
    let pline = SanitizeRLine(getline(plnum))
    let ppost_block = 0
    if pline =~ '}$'
      let ppost_block = 1
      let plnum = s:Get_matching_brace(plnum, '{', '}', 0)
      let pline = SanitizeRLine(getline(plnum))
      if pline =~ '^\s*{$' && plnum > 0
        let plnum = s:Get_prev_line(plnum)
        let pline = SanitizeRLine(getline(plnum))
      endif
    endif

    if pline =~ 'else$'
      let ppost_else = 1
      let plnum = s:Get_matching_if(plnum, 0)
      let pline = SanitizeRLine(getline(plnum))
    endif

    if pline =~ '^\s*else\s*if\s*('
      let pplnum = s:Get_prev_line(plnum)
      let ppline = SanitizeRLine(getline(pplnum))
      while ppline =~ '^\s*else\s*if\s*(' || ppline =~ '^\s*if\s*()\s*\S$'
        let plnum = pplnum
        let pline = ppline
        let pplnum = s:Get_prev_line(plnum)
        let ppline = SanitizeRLine(getline(pplnum))
      endwhile
      while ppline =~ '\<\(if\|while\|for\|function\)\s*()$' || ppline =~ '\<else$' || ppline =~ '<-$'
        let plnum = pplnum
        let pline = ppline
        let pplnum = s:Get_prev_line(plnum)
        let ppline = SanitizeRLine(getline(pplnum))
      endwhile
    endif

    let ppb = s:Get_paren_balance(pline, '(', ')')
    if ppb < 0 && (pline =~ ')\s*{$' || pline =~ ')$')
      while ppb < 0 && plnum > 0
        let plnum -= 1
        let linepiece = SanitizeRLine(getline(plnum))
        let ppb += s:Get_paren_balance(linepiece, "(", ")")
        let pline = linepiece . pline
      endwhile
      let pline = s:RDelete_parens(pline)
    endif
  endif

  let ind = indent(lnum)

  if g:r_indent_align_args == 0 && pb != 0
    let ind += pb * shiftwidth()
    return ind
  endif

  if g:r_indent_align_args == 0 && bb != 0
    let ind += bb * shiftwidth()
    return ind
  endif

  if plnum > 0
    let pind = indent(plnum)
  else
    let pind = 0
  endif

  if ind == pind || (ind == (pind  + shiftwidth()) && pline =~ '{$' && ppost_else == 0)
    return ind
  endif

  let pline = getline(plnum)
  let pbb = s:Get_paren_balance(pline, '[', ']')

  while pind < ind && plnum > 0 && ppb == 0 && pbb == 0
    let ind = pind
    let plnum = s:Get_prev_line(plnum)
    let pline = getline(plnum)
    let ppb = s:Get_paren_balance(pline, '(', ')')
    let pbb = s:Get_paren_balance(pline, '[', ']')
    while pline =~ '^\s*else'
      let plnum = s:Get_matching_if(plnum, 1)
      let pline = getline(plnum)
      let ppb = s:Get_paren_balance(pline, '(', ')')
      let pbb = s:Get_paren_balance(pline, '[', ']')
    endwhile
    let pind = indent(plnum)
    if ind == (pind  + shiftwidth()) && pline =~ '{$'
      return ind
    endif
  endwhile

  return ind

endfunction

" vim: sw=2
PK�j�Z��TTvim80/indent/idlang.vimnu�[���" IDL (Interactive Data Language) indent file.
" Language: IDL (ft=idlang)
" Last change:	2017 Jun 13
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

setlocal indentkeys=o,O,0=endif,0=ENDIF,0=endelse,0=ENDELSE,0=endwhile,0=ENDWHILE,0=endfor,0=ENDFOR,0=endrep,0=ENDREP

setlocal indentexpr=GetIdlangIndent(v:lnum)

" Only define the function once.
if exists("*GetIdlangIndent")
   finish
endif

function GetIdlangIndent(lnum)
   " First non-empty line above the current line.
   let pnum = prevnonblank(v:lnum-1)
   " v:lnum is the first non-empty line -- zero indent.
   if pnum == 0
      return 0
   endif
   " Second non-empty line above the current line.
   let pnum2 = prevnonblank(pnum-1)

   " Current indent.
   let curind = indent(pnum)

   " Indenting of continued lines.
   if getline(pnum) =~ '\$\s*\(;.*\)\=$'
      if getline(pnum2) !~ '\$\s*\(;.*\)\=$'
	 let curind = curind+shiftwidth()
      endif
   else
      if getline(pnum2) =~ '\$\s*\(;.*\)\=$'
	 let curind = curind-shiftwidth()
      endif
   endif

   " Indenting blocks of statements.
   if getline(v:lnum) =~? '^\s*\(endif\|endelse\|endwhile\|endfor\|endrep\)\>'
      if getline(pnum) =~? 'begin\>'
      elseif indent(v:lnum) > curind-shiftwidth()
	 let curind = curind-shiftwidth()
      else
	 return -1
      endif
   elseif getline(pnum) =~? 'begin\>'
      if indent(v:lnum) < curind+shiftwidth()
	 let curind = curind+shiftwidth()
      else
	 return -1
      endif
   endif
   return curind
endfunction

PK�j�Z���aavim80/indent/lisp.vimnu�[���" Vim indent file
" Language:	Lisp
" Maintainer:    Sergey Khorev <sergey.khorev@gmail.com>
" URL:		 http://sites.google.com/site/khorser/opensource/vim
" Last Change:	2012 Jan 10

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

setlocal ai nosi

let b:undo_indent = "setl ai< si<"
PK�j�Z�3���vim80/indent/nsis.vimnu�[���" Vim indent file
" Language:		NSIS script
" Maintainer:		Ken Takata
" URL:			https://github.com/k-takata/vim-nsis
" Last Change:		2018-01-21
" Filenames:		*.nsi
" License:		VIM License

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal nosmartindent
setlocal noautoindent
setlocal indentexpr=GetNsisIndent(v:lnum)
setlocal indentkeys=!^F,o,O
setlocal indentkeys+==~${Else,=~${EndIf,=~${EndUnless,=~${AndIf,=~${AndUnless,=~${OrIf,=~${OrUnless,=~${Case,=~${Default,=~${EndSelect,=~${EndSwith,=~${Loop,=~${Next,=~${MementoSectionEnd,=~FunctionEnd,=~SectionEnd,=~SectionGroupEnd,=~PageExEnd,0=~!macroend,0=~!if,0=~!else,0=~!endif

if exists("*GetNsisIndent")
  finish
endif

function! GetNsisIndent(lnum)
  " If this line is explicitly joined: If the previous line was also joined,
  " line it up with that one, otherwise add two 'shiftwidth'
  if getline(a:lnum - 1) =~ '\\$'
    if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
      return indent(a:lnum - 1)
    endif
    return indent(a:lnum - 1) + shiftwidth() * 2
  endif

  " Grab the current line, stripping comments.
  let l:thisl = substitute(getline(a:lnum), '[;#].*$', '', '')
  " Check if this line is a conditional preprocessor line.
  let l:preproc = l:thisl =~? '^\s*!\%(if\|else\|endif\)'

  " Grab the previous line, stripping comments.
  " Skip preprocessor lines and continued lines.
  let l:prevlnum = a:lnum
  while 1
    let l:prevlnum = prevnonblank(l:prevlnum - 1)
    if l:prevlnum == 0
      " top of file
      return 0
    endif
    let l:prevl = substitute(getline(l:prevlnum), '[;#].*$', '', '')
    let l:prevpreproc = l:prevl =~? '^\s*!\%(if\|else\|endif\)'
    if l:preproc == l:prevpreproc && getline(l:prevlnum - 1) !~? '\\$'
      break
    endif
  endwhile
  let l:previ = indent(l:prevlnum)
  let l:ind = l:previ

  if l:preproc
    " conditional preprocessor
    if l:prevl =~? '^\s*!\%(if\%(\%(macro\)\?n\?def\)\?\|else\)\>'
      let l:ind += shiftwidth()
    endif
    if l:thisl =~? '^\s*!\%(else\|endif\)\?\>'
      let l:ind -= shiftwidth()
    endif
    return l:ind
  endif

  if l:prevl =~? '^\s*\%(\${\%(If\|IfNot\|Unless\|ElseIf\|ElseIfNot\|ElseUnless\|Else\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Select\|Case\|Case[2-5]\|CaseElse\|Default\|Switch\|Do\|DoWhile\|DoUntil\|For\|ForEach\|MementoSection\)}\|Function\>\|Section\>\|SectionGroup\|PageEx\>\|!macro\>\)'
    " previous line opened a block
    let l:ind += shiftwidth()
  endif
  if l:thisl =~? '^\s*\%(\${\%(ElseIf\|ElseIfNot\|ElseUnless\|Else\|EndIf\|EndUnless\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Loop\|LoopWhile\|LoopUntil\|Next\|MementoSectionEnd\)\>}\?\|FunctionEnd\>\|SectionEnd\>\|SectionGroupEnd\|PageExEnd\>\|!macroend\>\)'
    " this line closed a block
    let l:ind -= shiftwidth()
  elseif l:thisl =~? '^\s*\${\%(Case\|Case[2-5]\|CaseElse\|Default\)\>}\?'
    if l:prevl !~? '^\s*\${\%(Select\|Switch\)}'
      let l:ind -= shiftwidth()
    endif
  elseif l:thisl =~? '^\s*\${\%(EndSelect\|EndSwitch\)\>}\?'
    " this line closed a block
    if l:prevl =~? '^\s*\${\%(Select\|Switch\)}'
      let l:ind -= shiftwidth()
    else
      let l:ind -= shiftwidth() * 2
    endif
  endif

  return l:ind
endfunction

" vim: ts=8 sw=2 sts=2
PK�j�ZW�L���vim80/indent/ch.vimnu�[���" Vim indent file
" Language:	Ch
" Maintainer:	SoftIntegration, Inc. <info@softintegration.com>
" URL:		http://www.softintegration.com/download/vim/indent/ch.vim
" Last change:	2006 Apr 30
"		Created based on cpp.vim
"
" Ch is a C/C++ interpreter with many high level extensions


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

" Ch indenting is built-in, thus this is very simple
setlocal cindent
PK�j�Z�yԱ��vim80/indent/haml.vimnu�[���" Vim indent file
" Language:	Haml
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2017 Jun 13

if exists("b:did_indent")
  finish
endif
runtime! indent/ruby.vim
unlet! b:did_indent
let b:did_indent = 1

setlocal autoindent sw=2 et
setlocal indentexpr=GetHamlIndent()
setlocal indentkeys=o,O,*<Return>,},],0),!^F,=end,=else,=elsif,=rescue,=ensure,=when

" Only define the function once.
if exists("*GetHamlIndent")
  finish
endif

let s:attributes = '\%({.\{-\}}\|\[.\{-\}\]\)'
let s:tag = '\%([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*'

if !exists('g:haml_self_closing_tags')
  let g:haml_self_closing_tags = 'base|link|meta|br|hr|img|input'
endif

function! GetHamlIndent()
  let lnum = prevnonblank(v:lnum-1)
  if lnum == 0
    return 0
  endif
  let line = substitute(getline(lnum),'\s\+$','','')
  let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','')
  let lastcol = strlen(line)
  let line = substitute(line,'^\s\+','','')
  let indent = indent(lnum)
  let cindent = indent(v:lnum)
  let sw = shiftwidth()
  if cline =~# '\v^-\s*%(elsif|else|when)>'
    let indent = cindent < indent ? cindent : indent - sw
  endif
  let increase = indent + sw
  if indent == indent(lnum)
    let indent = cindent <= indent ? -1 : increase
  endif

  let group = synIDattr(synID(lnum,lastcol,1),'name')

  if line =~ '^!!!'
    return indent
  elseif line =~ '^/\%(\[[^]]*\]\)\=$'
    return increase
  elseif group == 'hamlFilter'
    return increase
  elseif line =~ '^'.s:tag.'[&!]\=[=~-]\s*\%(\%(if\|else\|elsif\|unless\|case\|when\|while\|until\|for\|begin\|module\|class\|def\)\>\%(.*\<end\>\)\@!\|.*do\%(\s*|[^|]*|\)\=\s*$\)'
    return increase
  elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$'
    return increase
  elseif line == '-#'
    return increase
  elseif group =~? '\v^(hamlSelfCloser)$' || line =~? '^%\v%('.g:haml_self_closing_tags.')>'
    return indent
  elseif group =~? '\v^%(hamlTag|hamlAttributesDelimiter|hamlObjectDelimiter|hamlClass|hamlId|htmlTagName|htmlSpecialTagName)$'
    return increase
  elseif synIDattr(synID(v:lnum,1,1),'name') ==? 'hamlRubyFilter'
    return GetRubyIndent()
  else
    return indent
  endif
endfunction

" vim:set sw=2:
PK�j�Zn'�j�W�Wvim80/indent/php.vimnu�[���" Vim indent file
" Language:	PHP
" Author:	John Wellesz <John.wellesz (AT) teaser (DOT) fr>
" URL:		http://www.2072productions.com/vim/indent/php.vim
" Home:		https://github.com/2072/PHP-Indenting-for-VIm
" Last Change:	2017 Jun 13
" Version:	1.62
"
"
"	Type :help php-indent for available options
"
"	A fully commented version of this file is available on github
"
"
"  If you find a bug, please open a ticket on github.org
"  ( https://github.com/2072/PHP-Indenting-for-VIm/issues ) with an example of
"  code that breaks the algorithm.
"

" NOTE: This script must be used with PHP syntax ON and with the php syntax
"	script by Lutz Eymers (http://www.isp.de/data/php.vim ) or with the
"	script by Peter Hodge (http://www.vim.org/scripts/script.php?script_id=1571 )
"	the later is bunbdled by default with Vim 7.
"
"
"	In the case you have syntax errors in your script such as HereDoc end
"	identifiers not at col 1 you'll have to indent your file 2 times (This
"	script will automatically put HereDoc end identifiers at col 1 if
"	they are followed by a ';').
"

" NOTE: If you are editing files in Unix file format and that (by accident)
"	there are '\r' before new lines, this script won't be able to proceed
"	correctly and will make many mistakes because it won't be able to match
"	'\s*$' correctly.
"	So you have to remove those useless characters first with a command like:
"
"	:%s /\r$//g
"
"	or simply 'let' the option PHP_removeCRwhenUnix to 1 and the script will
"	silently remove them when VIM load this script (at each bufread).



if exists("b:did_indent")
    finish
endif
let b:did_indent = 1


let g:php_sync_method = 0


if exists("PHP_default_indenting")
    let b:PHP_default_indenting = PHP_default_indenting * shiftwidth()
else
    let b:PHP_default_indenting = 0
endif

if exists("PHP_outdentSLComments")
    let b:PHP_outdentSLComments = PHP_outdentSLComments * shiftwidth()
else
    let b:PHP_outdentSLComments = 0
endif

if exists("PHP_BracesAtCodeLevel")
    let b:PHP_BracesAtCodeLevel = PHP_BracesAtCodeLevel
else
    let b:PHP_BracesAtCodeLevel = 0
endif


if exists("PHP_autoformatcomment")
    let b:PHP_autoformatcomment = PHP_autoformatcomment
else
    let b:PHP_autoformatcomment = 1
endif

if exists("PHP_outdentphpescape")
    let b:PHP_outdentphpescape = PHP_outdentphpescape
else
    let b:PHP_outdentphpescape = 1
endif


if exists("PHP_vintage_case_default_indent") && PHP_vintage_case_default_indent
    let b:PHP_vintage_case_default_indent = 1
else
    let b:PHP_vintage_case_default_indent = 0
endif



let b:PHP_lastindented = 0
let b:PHP_indentbeforelast = 0
let b:PHP_indentinghuge = 0
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
let b:PHP_LastIndentedWasComment = 0
let b:PHP_InsideMultilineComment = 0
let b:InPHPcode = 0
let b:InPHPcode_checked = 0
let b:InPHPcode_and_script = 0
let b:InPHPcode_tofind = ""
let b:PHP_oldchangetick = b:changedtick
let b:UserIsTypingComment = 0
let b:optionsset = 0

setlocal nosmartindent
setlocal noautoindent
setlocal nocindent
setlocal nolisp

setlocal indentexpr=GetPhpIndent()
setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,*<Return>,=?>,=<?,=*/



let s:searchpairflags = 'bWr'

if &fileformat == "unix" && exists("PHP_removeCRwhenUnix") && PHP_removeCRwhenUnix
    silent! %s/\r$//g
endif

if exists("*GetPhpIndent")
    call ResetPhpOptions()
    finish
endif


let s:PHP_validVariable = '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|die\|else\)'
let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|\%(}\s*\)\?else\>\|do\>\|while\>\|switch\>\|case\>\|default\>\|for\%(each\)\=\>\|declare\>\|class\>\|trait\>\|use\>\|interface\>\|abstract\>\|final\>\|try\>\|\%(}\s*\)\=catch\>\|\%(}\s*\)\=finally\>\)'
let s:functionDecl = '\<function\>\%(\s\+'.s:PHP_validVariable.'\)\=\s*(.*'
let s:endline = '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$'
let s:unstated = '\%(^\s*'.s:blockstart.'.*)\|\%(//.*\)\@<!\<e'.'lse\>\)'.s:endline


let s:terminated = '\%(\%(;\%(\s*\%(?>\|}\)\)\=\|<<<\s*[''"]\=\a\w*[''"]\=$\|^\s*}\|^\s*'.s:PHP_validVariable.':\)'.s:endline.'\)'
let s:PHP_startindenttag = '<?\%(.*?>\)\@!\|<script[^>]*>\%(.*<\/script>\)\@!'
let s:structureHead = '^\s*\%(' . s:blockstart . '\)\|'. s:functionDecl . s:endline . '\|\<new\s\+class\>'



let s:escapeDebugStops = 0
function! DebugPrintReturn(scriptLine)

    if ! s:escapeDebugStops
	echo "debug:" . a:scriptLine
	let c = getchar()
	if c == "\<Del>"
	    let s:escapeDebugStops = 1
	end
    endif

endfunction

function! GetLastRealCodeLNum(startline) " {{{

    let lnum = a:startline

    if b:GetLastRealCodeLNum_ADD && b:GetLastRealCodeLNum_ADD == lnum + 1
	let lnum = b:GetLastRealCodeLNum_ADD
    endif

    while lnum > 1
	let lnum = prevnonblank(lnum)
	let lastline = getline(lnum)

	if b:InPHPcode_and_script && lastline =~ '?>\s*$'
	    let lnum = lnum - 1
	elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$'
	    let lnum = lnum - 1
	elseif lastline =~ '^\s*\%(//\|#\|/\*.*\*/\s*$\)'
	    let lnum = lnum - 1
	elseif lastline =~ '\*/\s*$'
	    call cursor(lnum, 1)
	    if lastline !~ '^\*/'
		call search('\*/', 'W')
	    endif
	    let lnum = searchpair('/\*', '', '\*/', s:searchpairflags, 'Skippmatch2()')

	    let lastline = getline(lnum)
	    if lastline =~ '^\s*/\*'
		let lnum = lnum - 1
	    else
		break
	    endif


	elseif lastline =~? '\%(//\s*\|?>.*\)\@<!<?\%(php\)\=\s*$\|^\s*<script\>'

	    while lastline !~ '\(<?.*\)\@<!?>' && lnum > 1
		let lnum = lnum - 1
		let lastline = getline(lnum)
	    endwhile
	    if lastline =~ '^\s*?>'
		let lnum = lnum - 1
	    else
		break
	    endif


	elseif lastline =~? '^\a\w*;\=$' && lastline !~? s:notPhpHereDoc
	    let tofind=substitute( lastline, '\(\a\w*\);\=', '<<<\\s*[''"]\\=\1[''"]\\=$', '')
	    while getline(lnum) !~? tofind && lnum > 1
		let lnum = lnum - 1
	    endwhile
	elseif lastline =~ '^[^''"`]*[''"`][;,]'.s:endline

	    let tofind=substitute( lastline, '^.*\([''"`]\)[;,].*$', '^[^\1]\\+[\1]$\\|^[^\1]\\+[=([]\\s*[\1]', '')
	    let trylnum = lnum
	    while getline(trylnum) !~? tofind && trylnum > 1
		let trylnum = trylnum - 1
	    endwhile

	    if trylnum == 1
		break
	    else
		if lastline =~ ';'.s:endline
		    while getline(trylnum) !~? s:terminated && getline(trylnum) !~? '{'.s:endline && trylnum > 1
			let trylnum = prevnonblank(trylnum - 1)
		    endwhile


		    if trylnum == 1
			break
		    end
		end
		let lnum = trylnum
	    end
	else
	    break
	endif
    endwhile

    if lnum==1 && getline(lnum) !~ '<?'
	let lnum=0
    endif

    if b:InPHPcode_and_script && 1 > b:InPHPcode
	let b:InPHPcode_and_script = 0
    endif

    return lnum
endfunction " }}}

function! Skippmatch2()

    let line = getline(".")

    if line =~ "\\([\"']\\).*/\\*.*\\1" || line =~ '\%(//\|#\).*/\*'
	return 1
    else
	return 0
    endif
endfun

function! Skippmatch()	" {{{
    let synname = synIDattr(synID(line("."), col("."), 0), "name")
    if synname == "Delimiter" || synname == "phpRegionDelimiter" || synname =~# "^phpParent" || synname == "phpArrayParens" || synname =~# '^php\%(Block\|Brace\)' || synname == "javaScriptBraces" || synname =~# '^php\%(Doc\)\?Comment' && b:UserIsTypingComment
	return 0
    else
	return 1
    endif
endfun " }}}

function! FindOpenBracket(lnum, blockStarter) " {{{
    call cursor(a:lnum, 1)
    let line = searchpair('{', '', '}', 'bW', 'Skippmatch()')

    if a:blockStarter == 1
	while line > 1
	    let linec = getline(line)

	    if linec =~ s:terminated || linec =~ s:structureHead
		break
	    endif

	    let line = GetLastRealCodeLNum(line - 1)
	endwhile
    endif

    return line
endfun " }}}

let s:blockChars = {'{':1, '[': 1, '(': 1, ')':-1, ']':-1, '}':-1}
function! BalanceDirection (str)

    let balance = 0

    for c in split(a:str, '\zs')
	if has_key(s:blockChars, c)
	    let balance += s:blockChars[c]
	endif
    endfor

    return balance
endfun

function! FindTheIfOfAnElse (lnum, StopAfterFirstPrevElse) " {{{

    if getline(a:lnum) =~# '^\s*}\s*else\%(if\)\=\>'
	let beforeelse = a:lnum
    else
	let beforeelse = GetLastRealCodeLNum(a:lnum - 1)
    endif

    if !s:level
	let s:iftoskip = 0
    endif

    if getline(beforeelse) =~# '^\s*\%(}\s*\)\=else\%(\s*if\)\@!\>'
	let s:iftoskip = s:iftoskip + 1
    endif

    if getline(beforeelse) =~ '^\s*}'
	let beforeelse = FindOpenBracket(beforeelse, 0)

	if getline(beforeelse) =~ '^\s*{'
	    let beforeelse = GetLastRealCodeLNum(beforeelse - 1)
	endif
    endif


    if !s:iftoskip && a:StopAfterFirstPrevElse && getline(beforeelse) =~# '^\s*\%([}]\s*\)\=else\%(if\)\=\>'
	return beforeelse
    endif

    if getline(beforeelse) !~# '^\s*if\>' && beforeelse>1 || s:iftoskip && beforeelse>1

	if s:iftoskip && getline(beforeelse) =~# '^\s*if\>'
	    let s:iftoskip = s:iftoskip - 1
	endif

	let s:level =  s:level + 1
	let beforeelse = FindTheIfOfAnElse(beforeelse, a:StopAfterFirstPrevElse)
    endif

    return beforeelse

endfunction " }}}

let s:defaultORcase = '^\s*\%(default\|case\).*:'

function! FindTheSwitchIndent (lnum) " {{{

    let test = GetLastRealCodeLNum(a:lnum - 1)

    if test <= 1
	return indent(1) - shiftwidth() * b:PHP_vintage_case_default_indent
    end

    while getline(test) =~ '^\s*}' && test > 1
	let test = GetLastRealCodeLNum(FindOpenBracket(test, 0) - 1)

	if getline(test) =~ '^\s*switch\>'
	    let test = GetLastRealCodeLNum(test - 1)
	endif
    endwhile

    if getline(test) =~# '^\s*switch\>'
	return indent(test)
    elseif getline(test) =~# s:defaultORcase
	return indent(test) - shiftwidth() * b:PHP_vintage_case_default_indent
    else
	return FindTheSwitchIndent(test)
    endif

endfunction "}}}

let s:SynPHPMatchGroups = {'phpParent':1, 'Delimiter':1, 'Define':1, 'Storageclass':1, 'StorageClass':1, 'Structure':1, 'Exception':1}
function! IslinePHP (lnum, tofind) " {{{
    let cline = getline(a:lnum)

    if a:tofind==""
	let tofind = "^\\s*[\"'`]*\\s*\\zs\\S"
    else
	let tofind = a:tofind
    endif

    let tofind = tofind . '\c'

    let coltotest = match (cline, tofind) + 1

    let synname = synIDattr(synID(a:lnum, coltotest, 0), "name")

    if synname == 'phpStringSingle' || synname == 'phpStringDouble' || synname == 'phpBacktick'
	if cline !~ '^\s*[''"`]'
	    return "SpecStringEntrails"
	else
	    return synname
	end
    end

    if get(s:SynPHPMatchGroups, synname) || synname =~ '^php' ||  synname =~? '^javaScript'
	return synname
    else
	return ""
    endif
endfunction " }}}

let s:autoresetoptions = 0
if ! s:autoresetoptions
    let s:autoresetoptions = 1
endif

function! ResetPhpOptions()
    if ! b:optionsset && &filetype =~ "php"
	if b:PHP_autoformatcomment

	    setlocal comments=s1:/*,mb:*,ex:*/,://,:#

	    setlocal formatoptions-=t
	    setlocal formatoptions+=q
	    setlocal formatoptions+=r
	    setlocal formatoptions+=o
	    setlocal formatoptions+=c
	    setlocal formatoptions+=b
	endif
	let b:optionsset = 1
    endif
endfunc

call ResetPhpOptions()

function! GetPhpIndent()

    let b:GetLastRealCodeLNum_ADD = 0

    let UserIsEditing=0
    if	b:PHP_oldchangetick != b:changedtick
	let b:PHP_oldchangetick = b:changedtick
	let UserIsEditing=1
    endif

    if b:PHP_default_indenting
	let b:PHP_default_indenting = g:PHP_default_indenting * shiftwidth()
    endif

    let cline = getline(v:lnum)

    if !b:PHP_indentinghuge && b:PHP_lastindented > b:PHP_indentbeforelast
	if b:PHP_indentbeforelast
	    let b:PHP_indentinghuge = 1
	endif
	let b:PHP_indentbeforelast = b:PHP_lastindented
    endif

    if b:InPHPcode_checked && prevnonblank(v:lnum - 1) != b:PHP_lastindented
	if b:PHP_indentinghuge
	    let b:PHP_indentinghuge = 0
	    let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
	endif
	let real_PHP_lastindented = v:lnum
	let b:PHP_LastIndentedWasComment=0
	let b:PHP_InsideMultilineComment=0
	let b:PHP_indentbeforelast = 0

	let b:InPHPcode = 0
	let b:InPHPcode_checked = 0
	let b:InPHPcode_and_script = 0
	let b:InPHPcode_tofind = ""

    elseif v:lnum > b:PHP_lastindented
	let real_PHP_lastindented = b:PHP_lastindented
    else
	let real_PHP_lastindented = v:lnum
    endif

    let b:PHP_lastindented = v:lnum


    if !b:InPHPcode_checked " {{{ One time check
	let b:InPHPcode_checked = 1
	let b:UserIsTypingComment = 0

	let synname = ""
	if cline !~ '<?.*?>'
	    let synname = IslinePHP (prevnonblank(v:lnum), "")
	endif

	if synname!=""
	    if synname == "SpecStringEntrails"
		let b:InPHPcode = -1 " thumb down
		let b:InPHPcode_tofind = ""
	    elseif synname != "phpHereDoc" && synname != "phpHereDocDelimiter"
		let b:InPHPcode = 1
		let b:InPHPcode_tofind = ""

		if synname =~# '^php\%(Doc\)\?Comment'
		    let b:UserIsTypingComment = 1
		    let b:InPHPcode_checked = 0
		endif

		if synname =~? '^javaScript'
		    let b:InPHPcode_and_script = 1
		endif

	    else
		let b:InPHPcode = 0

		let lnum = v:lnum - 1
		while getline(lnum) !~? '<<<\s*[''"]\=\a\w*[''"]\=$' && lnum > 1
		    let lnum = lnum - 1
		endwhile

		let b:InPHPcode_tofind = substitute( getline(lnum), '^.*<<<\s*[''"]\=\(\a\w*\)[''"]\=$', '^\\s*\1;\\=$', '')
	    endif
	else
	    let b:InPHPcode = 0
	    let b:InPHPcode_tofind = s:PHP_startindenttag
	endif
    endif "!b:InPHPcode_checked }}}


    " Test if we are indenting PHP code {{{
    let lnum = prevnonblank(v:lnum - 1)
    let last_line = getline(lnum)
    let endline= s:endline

    if b:InPHPcode_tofind!=""
	if cline =~? b:InPHPcode_tofind
	    let b:InPHPcode_tofind = ""
	    let b:UserIsTypingComment = 0

	    if b:InPHPcode == -1
		let b:InPHPcode = 1
		return -1
	    end

	    let b:InPHPcode = 1

	    if cline =~ '\*/'
		call cursor(v:lnum, 1)
		if cline !~ '^\*/'
		    call search('\*/', 'W')
		endif
		let lnum = searchpair('/\*', '', '\*/', s:searchpairflags, 'Skippmatch2()')

		let b:PHP_CurrentIndentLevel = b:PHP_default_indenting

		let b:PHP_LastIndentedWasComment = 0

		if cline =~ '^\s*\*/'
		    return indent(lnum) + 1
		else
		    return indent(lnum)
		endif

	    elseif cline =~? '<script\>'
		let b:InPHPcode_and_script = 1
		let b:GetLastRealCodeLNum_ADD = v:lnum
	    endif
	endif
    endif

    if 1 == b:InPHPcode

	if !b:InPHPcode_and_script && last_line =~ '\%(<?.*\)\@<!?>\%(.*<?\)\@!' && IslinePHP(lnum, '?>')=~"Delimiter"
	    if cline !~? s:PHP_startindenttag
		let b:InPHPcode = 0
		let b:InPHPcode_tofind = s:PHP_startindenttag
	    elseif cline =~? '<script\>'
		let b:InPHPcode_and_script = 1
	    endif

	elseif last_line =~ '^[^''"`]\+[''"`]$' " a string identifier with nothing after it and no other string identifier before
	    let b:InPHPcode = -1
	    let b:InPHPcode_tofind = substitute( last_line, '^.*\([''"`]\).*$', '^[^\1]*\1[;,]$', '')
	elseif last_line =~? '<<<\s*[''"]\=\a\w*[''"]\=$'
	    let b:InPHPcode = 0
	    let b:InPHPcode_tofind = substitute( last_line, '^.*<<<\s*[''"]\=\(\a\w*\)[''"]\=$', '^\\s*\1;\\=$', '')

	elseif !UserIsEditing && cline =~ '^\s*/\*\%(.*\*/\)\@!' && getline(v:lnum + 1) !~ '^\s*\*'
	    let b:InPHPcode = 0
	    let b:InPHPcode_tofind = '\*/'

	elseif cline =~? '^\s*</script>'
	    let b:InPHPcode = 0
	    let b:InPHPcode_tofind = s:PHP_startindenttag
	endif
    endif " }}}


    if 1 > b:InPHPcode && !b:InPHPcode_and_script
	return -1
    endif

    " Indent successive // or # comment the same way the first is {{{
    let addSpecial = 0
    if cline =~ '^\s*\%(//\|#\|/\*.*\*/\s*$\)'
	let addSpecial = b:PHP_outdentSLComments
	if b:PHP_LastIndentedWasComment == 1
	    return indent(real_PHP_lastindented)
	endif
	let b:PHP_LastIndentedWasComment = 1
    else
	let b:PHP_LastIndentedWasComment = 0
    endif " }}}

    " Indent multiline /* comments correctly {{{

    if b:PHP_InsideMultilineComment || b:UserIsTypingComment
	if cline =~ '^\s*\*\%(\/\)\@!'
	    if last_line =~ '^\s*/\*'
		return indent(lnum) + 1
	    else
		return indent(lnum)
	    endif
	else
	    let b:PHP_InsideMultilineComment = 0
	endif
    endif

    if !b:PHP_InsideMultilineComment && cline =~ '^\s*/\*\%(.*\*/\)\@!'
	if getline(v:lnum + 1) !~ '^\s*\*'
	    return -1
	endif
	let b:PHP_InsideMultilineComment = 1
    endif " }}}


    " Things always indented at col 1 (PHP delimiter: <?, ?>, Heredoc end) {{{
    if cline =~# '^\s*<?' && cline !~ '?>' && b:PHP_outdentphpescape
	return 0
    endif

    if	cline =~ '^\s*?>' && cline !~# '<?' && b:PHP_outdentphpescape
	return 0
    endif

    if cline =~? '^\s*\a\w*;$\|^\a\w*$\|^\s*[''"`][;,]' && cline !~? s:notPhpHereDoc
	return 0
    endif " }}}

    let s:level = 0

    let lnum = GetLastRealCodeLNum(v:lnum - 1)

    let last_line = getline(lnum)
    let ind = indent(lnum)

    if ind==0 && b:PHP_default_indenting
	let ind = b:PHP_default_indenting
    endif

    if lnum == 0
	return b:PHP_default_indenting + addSpecial
    endif


    if cline =~ '^\s*}\%(}}\)\@!'
	let ind = indent(FindOpenBracket(v:lnum, 1))
	let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
	return ind
    endif

    if cline =~ '^\s*\*/'
	call cursor(v:lnum, 1)
	if cline !~ '^\*/'
	    call search('\*/', 'W')
	endif
	let lnum = searchpair('/\*', '', '\*/', s:searchpairflags, 'Skippmatch2()')

	let b:PHP_CurrentIndentLevel = b:PHP_default_indenting

	if cline =~ '^\s*\*/'
	    return indent(lnum) + 1
	else
	    return indent(lnum)
	endif
    endif


    if last_line =~ '[;}]'.endline && last_line !~ '^[)\]]' && last_line !~# s:defaultORcase
	if ind==b:PHP_default_indenting
	    return b:PHP_default_indenting + addSpecial
	elseif b:PHP_indentinghuge && ind==b:PHP_CurrentIndentLevel && cline !~# '^\s*\%(else\|\%(case\|default\).*:\|[})];\=\)' && last_line !~# '^\s*\%(\%(}\s*\)\=else\)' && getline(GetLastRealCodeLNum(lnum - 1))=~';'.endline
	    return b:PHP_CurrentIndentLevel + addSpecial
	endif
    endif

    let LastLineClosed = 0

    let terminated = s:terminated

    let unstated  = s:unstated


    if ind != b:PHP_default_indenting && cline =~# '^\s*else\%(if\)\=\>'
	let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
	return indent(FindTheIfOfAnElse(v:lnum, 1))
    elseif cline =~# s:defaultORcase
	return FindTheSwitchIndent(v:lnum) + shiftwidth() * b:PHP_vintage_case_default_indent
    elseif cline =~ '^\s*)\=\s*{'
	let previous_line = last_line
	let last_line_num = lnum

	while last_line_num > 1

	    if previous_line =~ terminated || previous_line =~ s:structureHead

		let ind = indent(last_line_num)

		if  b:PHP_BracesAtCodeLevel
		    let ind = ind + shiftwidth()
		endif

		return ind
	    endif

	    let last_line_num = GetLastRealCodeLNum(last_line_num - 1)
	    let previous_line = getline(last_line_num)
	endwhile

    elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
	let ind = ind + shiftwidth() " we indent one level further when the preceding line is not stated
	return ind + addSpecial

    elseif (ind != b:PHP_default_indenting || last_line =~ '^[)\]]' ) && last_line =~ terminated
	let previous_line = last_line
	let last_line_num = lnum
	let LastLineClosed = 1

	let isSingleLineBlock = 0
	while 1
	    if ! isSingleLineBlock && previous_line =~ '^\s*}\|;\s*}'.endline " XXX

		call cursor(last_line_num, 1)
		if previous_line !~ '^}'
		    call search('}\|;\s*}'.endline, 'W')
		end
		let oldLastLine = last_line_num
		let last_line_num = searchpair('{', '', '}', 'bW', 'Skippmatch()')

		if getline(last_line_num) =~ '^\s*{'
		    let last_line_num = GetLastRealCodeLNum(last_line_num - 1)
		elseif oldLastLine == last_line_num
		    let isSingleLineBlock = 1
		    continue
		endif

		let previous_line = getline(last_line_num)

		continue
	    else
		let isSingleLineBlock = 0

		if getline(last_line_num) =~# '^\s*else\%(if\)\=\>'
		    let last_line_num = FindTheIfOfAnElse(last_line_num, 0)
		    continue
		endif


		let last_match = last_line_num

		let one_ahead_indent = indent(last_line_num)
		let last_line_num = GetLastRealCodeLNum(last_line_num - 1)
		let two_ahead_indent = indent(last_line_num)
		let after_previous_line = previous_line
		let previous_line = getline(last_line_num)


		if previous_line =~# s:defaultORcase.'\|{'.endline
		    break
		endif

		if after_previous_line=~# '^\s*'.s:blockstart.'.*)'.endline && previous_line =~# '[;}]'.endline
		    break
		endif

		if one_ahead_indent == two_ahead_indent || last_line_num < 1
		    if previous_line =~# '\%(;\|^\s*}\)'.endline || last_line_num < 1
			break
		    endif
		endif
	    endif
	endwhile

	if indent(last_match) != ind
	    let ind = indent(last_match)
	    let b:PHP_CurrentIndentLevel = b:PHP_default_indenting

	    return ind + addSpecial
	endif
    endif

    if (last_line !~ '^\s*}\%(}}\)\@!')
	let plinnum = GetLastRealCodeLNum(lnum - 1)
    else
	let plinnum = GetLastRealCodeLNum(FindOpenBracket(lnum, 1) - 1)
    endif

    let AntepenultimateLine = getline(plinnum)

    let last_line = substitute(last_line,"\\(//\\|#\\)\\(\\(\\([^\"']*\\([\"']\\)[^\"']*\\5\\)\\+[^\"']*$\\)\\|\\([^\"']*$\\)\\)",'','')


    if ind == b:PHP_default_indenting
	if last_line =~ terminated && last_line !~# s:defaultORcase
	    let LastLineClosed = 1
	endif
    endif

    if !LastLineClosed


	if last_line =~# '[{(\[]'.endline || last_line =~? '\h\w*\s*(.*,$' && AntepenultimateLine !~ '[,(\[]'.endline && BalanceDirection(last_line) > 0

	    let dontIndent = 0
	    if last_line =~ '\S\+\s*{'.endline && last_line !~ '^\s*[)\]]\+\s*{'.endline && last_line !~ s:structureHead
		let dontIndent = 1
	    endif

	    if !dontIndent && (!b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{')
		let ind = ind + shiftwidth()
	    endif

	    if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
		let b:PHP_CurrentIndentLevel = ind

		return ind + addSpecial
	    endif

	elseif last_line =~ '\S\+\s*),'.endline && BalanceDirection(last_line) < 0
	    call cursor(lnum, 1)
	    call search('),'.endline, 'W') " line never begins with ) so no need for 'c' flag
	    let openedparent = searchpair('(', '', ')', 'bW', 'Skippmatch()')
	    if openedparent != lnum
		let ind = indent(openedparent)
	    endif

	elseif last_line =~ '^\s*'.s:blockstart
	    let ind = ind + shiftwidth()


	elseif AntepenultimateLine =~ '{'.endline && AntepenultimateLine !~? '^\s*use\>' || AntepenultimateLine =~ terminated || AntepenultimateLine =~# s:defaultORcase
	    let ind = ind + shiftwidth()
	endif

    endif

    if cline =~  '^\s*[)\]];\='
	let ind = ind - shiftwidth()
    endif

    let b:PHP_CurrentIndentLevel = ind
    return ind + addSpecial
endfunction
PK�j�ZcV&�IIvim80/indent/cpp.vimnu�[���" Vim indent file
" Language:	C++
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2008 Nov 29

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

" C++ indenting is built-in, thus this is very simple
setlocal cindent

let b:undo_indent = "setl cin<"
PK�j�Z��x�vim80/indent/j.vimnu�[���" Vim indent file
" Language:	J
" Maintainer:	David Bürgin <676c7473@gmail.com>
" URL:		https://github.com/glts/vim-j
" Last Change:	2015-01-11

if exists('b:did_indent')
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetJIndent()
setlocal indentkeys-=0{,0},:,0#
setlocal indentkeys+=0),0<:>,=case.,=catch.,=catchd.,=catcht.,=do.,=else.,=elseif.,=end.,=fcase.

let b:undo_indent = 'setlocal indentkeys< indentexpr<'

if exists('*GetJIndent')
  finish
endif

" If g:j_indent_definitions is true, the bodies of explicit definitions of
" adverbs, conjunctions, and verbs will be indented. Default is false (0).
if !exists('g:j_indent_definitions')
  let g:j_indent_definitions = 0
endif

function GetJIndent() abort
  let l:prevlnum = prevnonblank(v:lnum - 1)
  if l:prevlnum == 0
    return 0
  endif
  let l:indent = indent(l:prevlnum)
  let l:prevline = getline(l:prevlnum)
  if l:prevline =~# '^\s*\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|fcase\|for\%(_\a\k*\)\=\|if\|select\|try\|whil\%(e\|st\)\)\.\%(\%(\<end\.\)\@!.\)*$'
    " Increase indentation after an initial control word that starts or
    " continues a block and is not terminated by "end."
    let l:indent += shiftwidth()
  elseif g:j_indent_definitions && (l:prevline =~# '\<\%([1-4]\|13\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\>' || l:prevline =~# '^\s*:\s*$')
    " Increase indentation in explicit definitions of adverbs, conjunctions,
    " and verbs
    let l:indent += shiftwidth()
  endif
  " Decrease indentation in lines that start with either control words that
  " continue or end a block, or the special items ")" and ":"
  if getline(v:lnum) =~# '^\s*\%()\|:\|\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|end\|fcase\)\.\)'
    let l:indent -= shiftwidth()
  endif
  return l:indent
endfunction
PK�j�Z~����vim80/indent/automake.vimnu�[���" Vim indent file
" Language:    	    automake
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:did_indent")
  finish
endif

" same as makefile indenting for now.
runtime! indent/make.vim
PK�j�Z�F�

vim80/indent/tf.vimnu�[���" Vim indent file
" Language:     tf (TinyFugue)
" Maintainer:   Christian J. Robinson <heptite@gmail.com>
" URL:          http://www.vim.org/scripts/script.php?script_id=174
" Last Change:  2017 Feb 25 

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetTFIndent()
setlocal indentkeys-=0{,0} indentkeys-=0# indentkeys-=:
setlocal indentkeys+==/endif,=/then,=/else,=/done,0;

" Only define the function once:
if exists("*GetTFIndent")
  finish
endif

function GetTFIndent()
	" Find a non-blank line above the current line:
	let lnum = prevnonblank(v:lnum - 1)

	" No indent for the start of the file:
	if lnum == 0
		return 0
	endif

	let ind = indent(lnum)
	let line = getline(lnum)

	" No indentation if the previous line didn't end with "\":
	" (Could be annoying, but it lets you know if you made a mistake.)
	if line !~ '\\$'
		return 0
	endif

	if line =~ '\(/def.*\\\|/for.*\(%;\s*\)\@\<!\\\)$'
		let ind = ind + shiftwidth()
	elseif line =~ '\(/if\|/else\|/then\)'
		if line !~ '/endif'
			let ind = ind + shiftwidth()
		endif
	elseif line =~ '/while'
		if line !~ '/done'
			let ind = ind + shiftwidth()
		endif
	endif

	let line = getline(v:lnum)

	if line =~ '\(/else\|/endif\|/then\)'
		if line !~ '/if'
			let ind = ind - shiftwidth()
		endif
	elseif line =~ '/done'
		if line !~ '/while'
			let ind = ind - shiftwidth()
		endif
	endif

	" Comments at the beginning of a line:
	if line =~ '^\s*;'
		let ind = 0
	endif


	return ind

endfunction
PK�j�Z6L�V+�+�vim80/indent/erlang.vimnu�[���" Vim indent file
" Language:     Erlang (http://www.erlang.org)
" Author:       Csaba Hoch <csaba.hoch@gmail.com>
" Contributors: Edwin Fine <efine145_nospam01 at usa dot net>
"               Pawel 'kTT' Salata <rockplayer.pl@gmail.com>
"               Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
" Last Update:  2013-Jul-21
" License:      Vim license
" URL:          https://github.com/hcs42/vim-erlang

" Note About Usage:
"   This indentation script works best with the Erlang syntax file created by
"   Kreąimir Marľić (Kresimir Marzic) and maintained by Csaba Hoch.

" Notes About Implementation:
"
" - LTI = Line to indent.
" - The index of the first line is 1, but the index of the first column is 0.


" Initialization {{{1
" ==============

" Only load this indent file when no other was loaded
" Vim 7 or later is needed
if exists("b:did_indent") || version < 700
  finish
else
  let b:did_indent = 1
endif

setlocal indentexpr=ErlangIndent()
setlocal indentkeys+=0=end,0=of,0=catch,0=after,0=when,0=),0=],0=},0=>>

" Only define the functions once
if exists("*ErlangIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Logging library {{{1
" ===============

" Purpose:
"   Logs the given string using the ErlangIndentLog function if it exists.
" Parameters:
"   s: string
function! s:Log(s)
  if exists("*ErlangIndentLog")
    call ErlangIndentLog(a:s)
  endif
endfunction

" Line tokenizer library {{{1
" ======================

" Indtokens are "indentation tokens".

" Purpose:
"   Calculate the new virtual column after the given segment of a line.
" Parameters:
"   line: string
"   first_index: integer -- the index of the first character of the segment
"   last_index: integer -- the index of the last character of the segment
"   vcol: integer -- the virtual column of the first character of the token
"   tabstop: integer -- the value of the 'tabstop' option to be used
" Returns:
"   vcol: integer
" Example:
"   " index:    0 12 34567
"   " vcol:     0 45 89
"   s:CalcVCol("\t'\tx', b", 1, 4, 4)  -> 10
function! s:CalcVCol(line, first_index, last_index, vcol, tabstop)

  " We copy the relevent segment of the line, otherwise if the line were
  " e.g. `"\t", term` then the else branch below would consume the `", term`
  " part at once.
  let line = a:line[a:first_index : a:last_index]

  let i = 0
  let last_index = a:last_index - a:first_index
  let vcol = a:vcol

  while 0 <= i && i <= last_index

    if line[i] ==# "\t"
      " Example (when tabstop == 4):
      "
      " vcol + tab -> next_vcol
      " 0 + tab -> 4
      " 1 + tab -> 4
      " 2 + tab -> 4
      " 3 + tab -> 4
      " 4 + tab -> 8
      "
      " next_i - i == the number of tabs
      let next_i = matchend(line, '\t*', i + 1)
      let vcol = (vcol / a:tabstop + (next_i - i)) * a:tabstop
      call s:Log('new vcol after tab: '. vcol)
    else
      let next_i = matchend(line, '[^\t]*', i + 1)
      let vcol += next_i - i
      call s:Log('new vcol after other: '. vcol)
    endif
    let i = next_i
  endwhile

  return vcol
endfunction

" Purpose:
"   Go through the whole line and return the tokens in the line.
" Parameters:
"   line: string -- the line to be examined
"   string_continuation: bool
"   atom_continuation: bool
" Returns:
"   indtokens = [indtoken]
"   indtoken = [token, vcol, col]
"   token = string (examples: 'begin', '<variable>', '}')
"   vcol = integer (the virtual column of the first character of the token)
"   col = integer
function! s:GetTokensFromLine(line, string_continuation, atom_continuation,
                             \tabstop)

  let linelen = strlen(a:line) " The length of the line
  let i = 0 " The index of the current character in the line
  let vcol = 0 " The virtual column of the current character
  let indtokens = []

  if a:string_continuation
    let i = matchend(a:line, '^\%([^"\\]\|\\.\)*"', 0)
    if i ==# -1
      call s:Log('    Whole line is string continuation -> ignore')
      return []
    else
      let vcol = s:CalcVCol(a:line, 0, i - 1, 0, a:tabstop)
      call add(indtokens, ['<string_end>', vcol, i])
    endif
  elseif a:atom_continuation
    let i = matchend(a:line, "^\\%([^'\\\\]\\|\\\\.\\)*'", 0)
    if i ==# -1
      call s:Log('    Whole line is quoted atom continuation -> ignore')
      return []
    else
      let vcol = s:CalcVCol(a:line, 0, i - 1, 0, a:tabstop)
      call add(indtokens, ['<quoted_atom_end>', vcol, i])
    endif
  endif

  while 0 <= i && i < linelen

    let next_vcol = ''

    " Spaces
    if a:line[i] ==# ' '
      let next_i = matchend(a:line, ' *', i + 1)

    " Tabs
    elseif a:line[i] ==# "\t"
      let next_i = matchend(a:line, '\t*', i + 1)

      " See example in s:CalcVCol
      let next_vcol = (vcol / a:tabstop + (next_i - i)) * a:tabstop

    " Comment
    elseif a:line[i] ==# '%'
      let next_i = linelen

    " String token: "..."
    elseif a:line[i] ==# '"'
      let next_i = matchend(a:line, '\%([^"\\]\|\\.\)*"', i + 1)
      if next_i ==# -1
        call add(indtokens, ['<string_start>', vcol, i])
      else
        let next_vcol = s:CalcVCol(a:line, i, next_i - 1, vcol, a:tabstop)
        call add(indtokens, ['<string>', vcol, i])
      endif

    " Quoted atom token: '...'
    elseif a:line[i] ==# "'"
      let next_i = matchend(a:line, "\\%([^'\\\\]\\|\\\\.\\)*'", i + 1)
      if next_i ==# -1
        call add(indtokens, ['<quoted_atom_start>', vcol, i])
      else
        let next_vcol = s:CalcVCol(a:line, i, next_i - 1, vcol, a:tabstop)
        call add(indtokens, ['<quoted_atom>', vcol, i])
      endif

    " Keyword or atom or variable token or number
    elseif a:line[i] =~# '[a-zA-Z_@0-9]'
      let next_i = matchend(a:line,
                           \'[[:alnum:]_@:]*\%(\s*#\s*[[:alnum:]_@:]*\)\=',
                           \i + 1)
      call add(indtokens, [a:line[(i):(next_i - 1)], vcol, i])

    " Character token: $<char> (as in: $a)
    elseif a:line[i] ==# '$'
      call add(indtokens, ['$.', vcol, i])
      let next_i = i + 2

    " Dot token: .
    elseif a:line[i] ==# '.'

      let next_i = i + 1

      if i + 1 ==# linelen || a:line[i + 1] =~# '[[:blank:]%]'
        " End of clause token: . (as in: f() -> ok.)
        call add(indtokens, ['<end_of_clause>', vcol, i])

      else
        " Possibilities:
        " - Dot token in float: . (as in: 3.14)
        " - Dot token in record: . (as in: #myrec.myfield)
        call add(indtokens, ['.', vcol, i])
      endif

    " Equal sign
    elseif a:line[i] ==# '='
      " This is handled separately so that "=<<" will be parsed as
      " ['=', '<<'] instead of ['=<', '<']. Although Erlang parses it
      " currently in the latter way, that may be fixed some day.
      call add(indtokens, [a:line[i], vcol, i])
      let next_i = i + 1

    " Three-character tokens
    elseif i + 1 < linelen &&
         \ index(['=:=', '=/='], a:line[i : i + 1]) != -1
      call add(indtokens, [a:line[i : i + 1], vcol, i])
      let next_i = i + 2

    " Two-character tokens
    elseif i + 1 < linelen &&
         \ index(['->', '<<', '>>', '||', '==', '/=', '=<', '>=', '++', '--',
         \        '::'],
         \       a:line[i : i + 1]) != -1
      call add(indtokens, [a:line[i : i + 1], vcol, i])
      let next_i = i + 2

    " Other character: , ; < > ( ) [ ] { } # + - * / : ? = ! |
    else
      call add(indtokens, [a:line[i], vcol, i])
      let next_i = i + 1

    endif

    if next_vcol ==# ''
      let vcol += next_i - i
    else
      let vcol = next_vcol
    endif

    let i = next_i

  endwhile

  return indtokens

endfunction

" TODO: doc, handle "not found" case
function! s:GetIndtokenAtCol(indtokens, col)
  let i = 0
  while i < len(a:indtokens)
    if a:indtokens[i][2] ==# a:col
      return [1, i]
    elseif a:indtokens[i][2] > a:col
      return [0, s:IndentError('No token at col ' . a:col . ', ' .
                              \'indtokens = ' . string(a:indtokens),
                              \'', '')]
    endif
    let i += 1
  endwhile
  return [0, s:IndentError('No token at col ' . a:col . ', ' .
                           \'indtokens = ' . string(a:indtokens),
                           \'', '')]
endfunction

" Stack library {{{1
" =============

" Purpose:
"   Push a token onto the parser's stack.
" Parameters:
"   stack: [token]
"   token: string
function! s:Push(stack, token)
  call s:Log('    Stack Push: "' . a:token . '" into ' . string(a:stack))
  call insert(a:stack, a:token)
endfunction

" Purpose:
"   Pop a token from the parser's stack.
" Parameters:
"   stack: [token]
"   token: string
" Returns:
"   token: string -- the removed element
function! s:Pop(stack)
  let head = remove(a:stack, 0)
  call s:Log('    Stack Pop: "' . head . '" from ' . string(a:stack))
  return head
endfunction

" Library for accessing and storing tokenized lines {{{1
" =================================================

" The Erlang token cache: an `lnum -> indtokens` dictionary that stores the
" tokenized lines.
let s:all_tokens = {}
let s:file_name = ''
let s:last_changedtick = -1

" Purpose:
"   Clear the Erlang token cache if we have a different file or the file has
"   been changed since the last indentation.
function! s:ClearTokenCacheIfNeeded()
  let file_name = expand('%:p')
  if file_name != s:file_name ||
   \ b:changedtick != s:last_changedtick
    let s:file_name = file_name
    let s:last_changedtick = b:changedtick
    let s:all_tokens = {}
  endif
endfunction

" Purpose:
"   Return the tokens of line `lnum`, if that line is not empty. If it is
"   empty, find the first non-empty line in the given `direction` and return
"   the tokens of that line.
" Parameters:
"   lnum: integer
"   direction: 'up' | 'down'
" Returns:
"   result: [] -- the result is an empty list if we hit the beginning or end
"                  of the file
"           | [lnum, indtokens]
"   lnum: integer -- the index of the non-empty line that was found and
"                    tokenized
"   indtokens: [indtoken] -- the tokens of line `lnum`
function! s:TokenizeLine(lnum, direction)

  call s:Log('Tokenizing starts from line ' . a:lnum)
  if a:direction ==# 'up'
    let lnum = prevnonblank(a:lnum)
  else " a:direction ==# 'down'
    let lnum = nextnonblank(a:lnum)
  endif

  " We hit the beginning or end of the file
  if lnum ==# 0
    let indtokens = []
    call s:Log('  We hit the beginning or end of the file.')

    " The line has already been parsed
  elseif has_key(s:all_tokens, lnum)
    let indtokens = s:all_tokens[lnum]
    call s:Log('Cached line ' . lnum . ': ' . getline(lnum))
    call s:Log("  Tokens in the line:\n    - " . join(indtokens, "\n    - "))

    " The line should be parsed now
  else

    " Parse the line
    let line = getline(lnum)
    let string_continuation = s:IsLineStringContinuation(lnum)
    let atom_continuation = s:IsLineAtomContinuation(lnum)
    let indtokens = s:GetTokensFromLine(line, string_continuation,
                                       \atom_continuation, &tabstop)
    let s:all_tokens[lnum] = indtokens
    call s:Log('Tokenizing line ' . lnum . ': ' . line)
    call s:Log("  Tokens in the line:\n    - " . join(indtokens, "\n    - "))

  endif

  return [lnum, indtokens]
endfunction

" Purpose:
"   As a helper function for PrevIndToken and NextIndToken, the FindIndToken
"   function finds the first line with at least one token in the given
"   direction.
" Parameters:
"   lnum: integer
"   direction: 'up' | 'down'
" Returns:
"   result: [] -- the result is an empty list if we hit the beginning or end
"                  of the file
"           | indtoken
function! s:FindIndToken(lnum, dir)
  let lnum = a:lnum
  while 1
    let lnum += (a:dir ==# 'up' ? -1 : 1)
    let [lnum, indtokens] = s:TokenizeLine(lnum, a:dir)
    if lnum ==# 0
      " We hit the beginning or end of the file
      return []
    elseif !empty(indtokens)
      return indtokens[a:dir ==# 'up' ? -1 : 0]
    endif
  endwhile
endfunction

" Purpose:
"   Find the token that directly precedes the given token.
" Parameters:
"   lnum: integer -- the line of the given token
"   i: the index of the given token within line `lnum`
" Returns:
"   result = [] -- the result is an empty list if the given token is the first
"                  token of the file
"          | indtoken
function! s:PrevIndToken(lnum, i)
  call s:Log('    PrevIndToken called: lnum=' . a:lnum . ', i =' . a:i)

  " If the current line has a previous token, return that
  if a:i > 0
    return s:all_tokens[a:lnum][a:i - 1]
  else
    return s:FindIndToken(a:lnum, 'up')
  endif
endfunction

" Purpose:
"   Find the token that directly succeeds the given token.
" Parameters:
"   lnum: integer -- the line of the given token
"   i: the index of the given token within line `lnum`
" Returns:
"   result = [] -- the result is an empty list if the given token is the last
"                  token of the file
"          | indtoken
function! s:NextIndToken(lnum, i)
  call s:Log('    NextIndToken called: lnum=' . a:lnum . ', i =' . a:i)

  " If the current line has a next token, return that
  if len(s:all_tokens[a:lnum]) > a:i + 1
    return s:all_tokens[a:lnum][a:i + 1]
  else
    return s:FindIndToken(a:lnum, 'down')
  endif
endfunction

" ErlangCalcIndent helper functions {{{1
" =================================

" Purpose:
"   This function is called when the parser encounters a syntax error.
"
"   If we encounter a syntax error, we return
"   g:erlang_unexpected_token_indent, which is -1 by default. This means that
"   the indentation of the LTI will not be changed.
" Parameter:
"   msg: string
"   token: string
"   stack: [token]
" Returns:
"   indent: integer
function! s:IndentError(msg, token, stack)
  call s:Log('Indent error: ' . a:msg . ' -> return')
  call s:Log('  Token = ' . a:token . ', ' .
            \'  stack = ' . string(a:stack))
  return g:erlang_unexpected_token_indent
endfunction

" Purpose:
"   This function is called when the parser encounters an unexpected token,
"   and the parser will return the number given back by UnexpectedToken.
"
"   If we encounter an unexpected token, we return
"   g:erlang_unexpected_token_indent, which is -1 by default. This means that
"   the indentation of the LTI will not be changed.
" Parameter:
"   token: string
"   stack: [token]
" Returns:
"   indent: integer
function! s:UnexpectedToken(token, stack)
  call s:Log('    Unexpected token ' . a:token . ', stack = ' .
            \string(a:stack) . ' -> return')
  return g:erlang_unexpected_token_indent
endfunction

if !exists('g:erlang_unexpected_token_indent')
  let g:erlang_unexpected_token_indent = -1
endif

" Purpose:
"   Return whether the given line starts with a string continuation.
" Parameter:
"   lnum: integer
" Returns:
"   result: bool
" Example:
"   f() ->           % IsLineStringContinuation = false
"       "This is a   % IsLineStringContinuation = false
"       multiline    % IsLineStringContinuation = true
"       string".     % IsLineStringContinuation = true
function! s:IsLineStringContinuation(lnum)
  if has('syntax_items')
    return synIDattr(synID(a:lnum, 1, 0), 'name') =~# '^erlangString'
  else
    return 0
  endif
endfunction

" Purpose:
"   Return whether the given line starts with an atom continuation.
" Parameter:
"   lnum: integer
" Returns:
"   result: bool
" Example:
"   'function with   % IsLineAtomContinuation = true, but should be false
"   weird name'() -> % IsLineAtomContinuation = true
"       ok.          % IsLineAtomContinuation = false
function! s:IsLineAtomContinuation(lnum)
  if has('syntax_items')
    return synIDattr(synID(a:lnum, 1, 0), 'name') =~# '^erlangQuotedAtom'
  else
    return 0
  endif
endfunction

" Purpose:
"   Return whether the 'catch' token (which should be the `i`th token in line
"   `lnum`) is standalone or part of a try-catch block, based on the preceding
"   token.
" Parameters:
"   lnum: integer
"   i: integer
" Return:
"   is_standalone: bool
function! s:IsCatchStandalone(lnum, i)
  call s:Log('    IsCatchStandalone called: lnum=' . a:lnum . ', i=' . a:i)
  let prev_indtoken = s:PrevIndToken(a:lnum, a:i)

  " If we hit the beginning of the file, it is not a catch in a try block
  if prev_indtoken == []
    return 1
  endif

  let prev_token = prev_indtoken[0]

  if prev_token =~# '[A-Z_@0-9]'
    let is_standalone = 0
  elseif prev_token =~# '[a-z]'
    if index(['after', 'and', 'andalso', 'band', 'begin', 'bnot', 'bor', 'bsl',
            \ 'bsr', 'bxor', 'case', 'catch', 'div', 'not', 'or', 'orelse',
            \ 'rem', 'try', 'xor'], prev_token) != -1
      " If catch is after these keywords, it is standalone
      let is_standalone = 1
    else
      " If catch is after another keyword (e.g. 'end') or an atom, it is
      " part of try-catch.
      "
      " Keywords:
      " - may precede 'catch': end
      " - may not precede 'catch': fun if of receive when
      " - unused: cond let query
      let is_standalone = 0
    endif
  elseif index([')', ']', '}', '<string>', '<string_end>', '<quoted_atom>',
              \ '<quoted_atom_end>', '$.'], prev_token) != -1
    let is_standalone = 0
  else
    " This 'else' branch includes the following tokens:
    "   -> == /= =< < >= > =:= =/= + - * / ++ -- :: < > ; ( [ { ? = ! . |
    let is_standalone = 1
  endif

  call s:Log('   "catch" preceded by "' . prev_token  . '" -> catch ' .
            \(is_standalone ? 'is standalone' : 'belongs to try-catch'))
  return is_standalone

endfunction

" Purpose:
"   This function is called when a begin-type element ('begin', 'case',
"   '[', '<<', etc.) is found. It asks the caller to return if the stack
" Parameters:
"   stack: [token]
"   token: string
"   curr_vcol: integer
"   stored_vcol: integer
"   sw: integer -- number of spaces to be used after the begin element as
"                  indentation
" Returns:
"   result: [should_return, indent]
"   should_return: bool -- if true, the caller should return `indent` to Vim
"   indent -- integer
function! s:BeginElementFoundIfEmpty(stack, token, curr_vcol, stored_vcol, sw)
  if empty(a:stack)
    if a:stored_vcol ==# -1
      call s:Log('    "' . a:token . '" directly preceeds LTI -> return')
      return [1, a:curr_vcol + a:sw]
    else
      call s:Log('    "' . a:token .
                \'" token (whose expression includes LTI) found -> return')
      return [1, a:stored_vcol]
    endif
  else
    return [0, 0]
  endif
endfunction

" Purpose:
"   This function is called when a begin-type element ('begin', 'case', '[',
"   '<<', etc.) is found, and in some cases when 'after' and 'when' is found.
"   It asks the caller to return if the stack is already empty.
" Parameters:
"   stack: [token]
"   token: string
"   curr_vcol: integer
"   stored_vcol: integer
"   end_token: end token that belongs to the begin element found (e.g. if the
"              begin element is 'begin', the end token is 'end')
"   sw: integer -- number of spaces to be used after the begin element as
"                  indentation
" Returns:
"   result: [should_return, indent]
"   should_return: bool -- if true, the caller should return `indent` to Vim
"   indent -- integer
function! s:BeginElementFound(stack, token, curr_vcol, stored_vcol, end_token, sw)

  " Return 'return' if the stack is empty
  let [ret, res] = s:BeginElementFoundIfEmpty(a:stack, a:token, a:curr_vcol,
                                             \a:stored_vcol, a:sw)
  if ret | return [ret, res] | endif

  if a:stack[0] ==# a:end_token
    call s:Log('    "' . a:token . '" pops "' . a:end_token . '"')
    call s:Pop(a:stack)
    if !empty(a:stack) && a:stack[0] ==# 'align_to_begin_element'
      call s:Pop(a:stack)
      if empty(a:stack)
        return [1, a:curr_vcol]
      else
        return [1, s:UnexpectedToken(a:token, a:stack)]
      endif
    else
      return [0, 0]
    endif
  else
    return [1, s:UnexpectedToken(a:token, a:stack)]
  endif
endfunction

" Purpose:
"   This function is called when we hit the beginning of a file or an
"   end-of-clause token -- i.e. when we found the beginning of the current
"   clause.
"
"   If the stack contains an '->' or 'when', this means that we can return
"   now, since we were looking for the beginning of the clause.
" Parameters:
"   stack: [token]
"   token: string
"   stored_vcol: integer
" Returns:
"   result: [should_return, indent]
"   should_return: bool -- if true, the caller should return `indent` to Vim
"   indent -- integer
function! s:BeginningOfClauseFound(stack, token, stored_vcol)
  if !empty(a:stack) && a:stack[0] ==# 'when'
    call s:Log('    BeginningOfClauseFound: "when" found in stack')
    call s:Pop(a:stack)
    if empty(a:stack)
      call s:Log('    Stack is ["when"], so LTI is in a guard -> return')
      return [1, a:stored_vcol + shiftwidth() + 2]
    else
      return [1, s:UnexpectedToken(a:token, a:stack)]
    endif
  elseif !empty(a:stack) && a:stack[0] ==# '->'
    call s:Log('    BeginningOfClauseFound: "->" found in stack')
    call s:Pop(a:stack)
    if empty(a:stack)
      call s:Log('    Stack is ["->"], so LTI is in function body -> return')
      return [1, a:stored_vcol + shiftwidth()]
    elseif a:stack[0] ==# ';'
      call s:Pop(a:stack)
      if empty(a:stack)
        call s:Log('    Stack is ["->", ";"], so LTI is in a function head ' .
                  \'-> return')
        return [0, a:stored_vcol]
      else
        return [1, s:UnexpectedToken(a:token, a:stack)]
      endif
    else
      return [1, s:UnexpectedToken(a:token, a:stack)]
    endif
  else
    return [0, 0]
  endif
endfunction

let g:erlang_indent_searchpair_timeout = 2000

" TODO
function! s:SearchPair(lnum, curr_col, start, middle, end)
  call cursor(a:lnum, a:curr_col + 1)
  let [lnum_new, col1_new] = 
      \searchpairpos(a:start, a:middle, a:end, 'bW',
                    \'synIDattr(synID(line("."), col("."), 0), "name") ' .
                    \'=~? "string\\|quotedatom\\|todo\\|comment\\|' . 
                    \'erlangmodifier"',
                    \0, g:erlang_indent_searchpair_timeout)
  return [lnum_new, col1_new - 1]
endfunction

function! s:SearchEndPair(lnum, curr_col)
  return s:SearchPair(
         \ a:lnum, a:curr_col,
         \ '\C\<\%(case\|try\|begin\|receive\|if\)\>\|' .
         \ '\<fun\>\%(\s\|\n\|%.*$\)*(',
         \ '',
         \ '\<end\>')
endfunction

" ErlangCalcIndent {{{1
" ================

" Purpose:
"   Calculate the indentation of the given line.
" Parameters:
"   lnum: integer -- index of the line for which the indentation should be
"                    calculated
"   stack: [token] -- initial stack
" Return:
"   indent: integer -- if -1, that means "don't change the indentation";
"                      otherwise it means "indent the line with `indent`
"                      number of spaces or equivalent tabs"
function! s:ErlangCalcIndent(lnum, stack)
  let res = s:ErlangCalcIndent2(a:lnum, a:stack)
  call s:Log("ErlangCalcIndent returned: " . res)
  return res
endfunction

function! s:ErlangCalcIndent2(lnum, stack)

  let lnum = a:lnum
  let stored_vcol = -1 " Virtual column of the first character of the token that
                   " we currently think we might align to.
  let mode = 'normal'
  let stack = a:stack
  let semicolon_abscol = ''

  " Walk through the lines of the buffer backwards (starting from the
  " previous line) until we can decide how to indent the current line.
  while 1

    let [lnum, indtokens] = s:TokenizeLine(lnum, 'up')

    " Hit the start of the file
    if lnum ==# 0
      let [ret, res] = s:BeginningOfClauseFound(stack, 'beginning_of_file',
                                               \stored_vcol)
      if ret | return res | endif

      return 0
    endif

    let i = len(indtokens) - 1
    let last_token_of_line = 1

    while i >= 0

      let [token, curr_vcol, curr_col] = indtokens[i]
      call s:Log('  Analyzing the following token: ' . string(indtokens[i]))

      if len(stack) > 256 " TODO: magic number
        return s:IndentError('Stack too long', token, stack)
      endif

      if token ==# '<end_of_clause>'
        let [ret, res] = s:BeginningOfClauseFound(stack, token, stored_vcol)
        if ret | return res | endif

        if stored_vcol ==# -1
          call s:Log('    End of clause directly preceeds LTI -> return')
          return 0
        else
          call s:Log('    End of clause (but not end of line) -> return')
          return stored_vcol
        endif

      elseif stack == ['prev_term_plus']
        if token =~# '[a-zA-Z_@]' ||
         \ token ==# '<string>' || token ==# '<string_start>' ||
         \ token ==# '<quoted_atom>' || token ==# '<quoted_atom_start>'
          call s:Log('    previous token found: curr_vcol + plus = ' .
                    \curr_vcol . " + " . plus)
          return curr_vcol + plus
        endif

      elseif token ==# 'begin'
        let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
                                            \stored_vcol, 'end', shiftwidth())
        if ret | return res | endif

      " case EXPR of BRANCHES end
      " try EXPR catch BRANCHES end
      " try EXPR after BODY end
      " try EXPR catch BRANCHES after BODY end
      " try EXPR of BRANCHES catch BRANCHES end
      " try EXPR of BRANCHES after BODY end
      " try EXPR of BRANCHES catch BRANCHES after BODY end
      " receive BRANCHES end
      " receive BRANCHES after BRANCHES end

      " This branch is not Emacs-compatible
      elseif (index(['of', 'receive', 'after', 'if'], token) != -1 ||
           \  (token ==# 'catch' && !s:IsCatchStandalone(lnum, i))) &&
           \ !last_token_of_line &&
           \ (empty(stack) || stack ==# ['when'] || stack ==# ['->'] ||
           \  stack ==# ['->', ';'])

        " If we are after of/receive, but these are not the last
        " tokens of the line, we want to indent like this:
        "
        "   % stack == []
        "   receive stored_vcol,
        "           LTI
        "
        "   % stack == ['->', ';']
        "   receive stored_vcol ->
        "               B;
        "           LTI
        "
        "   % stack == ['->']
        "   receive stored_vcol ->
        "               LTI
        "
        "   % stack == ['when']
        "   receive stored_vcol when
        "               LTI

        " stack = []  =>  LTI is a condition
        " stack = ['->']  =>  LTI is a branch
        " stack = ['->', ';']  =>  LTI is a condition
        " stack = ['when']  =>  LTI is a guard
        if empty(stack) || stack == ['->', ';']
          call s:Log('    LTI is in a condition after ' .
                    \'"of/receive/after/if/catch" -> return')
          return stored_vcol
        elseif stack == ['->']
          call s:Log('    LTI is in a branch after ' .
                    \'"of/receive/after/if/catch" -> return')
          return stored_vcol + shiftwidth()
        elseif stack == ['when']
          call s:Log('    LTI is in a guard after ' .
                    \'"of/receive/after/if/catch" -> return')
          return stored_vcol + shiftwidth()
        else
          return s:UnexpectedToken(token, stack)
        endif

      elseif index(['case', 'if', 'try', 'receive'], token) != -1

        " stack = []  =>  LTI is a condition
        " stack = ['->']  =>  LTI is a branch
        " stack = ['->', ';']  =>  LTI is a condition
        " stack = ['when']  =>  LTI is in a guard
        if empty(stack)
          " pass
        elseif (token ==# 'case' && stack[0] ==# 'of') ||
             \ (token ==# 'if') ||
             \ (token ==# 'try' && (stack[0] ==# 'of' ||
             \                     stack[0] ==# 'catch' ||
             \                     stack[0] ==# 'after')) ||
             \ (token ==# 'receive')

          " From the indentation point of view, the keyword
          " (of/catch/after/end) before the LTI is what counts, so
          " when we reached these tokens, and the stack already had
          " a catch/after/end, we didn't modify it.
          "
          " This way when we reach case/try/receive (i.e. now),
          " there is at most one of/catch/after/end token in the
          " stack.
          if token ==# 'case' || token ==# 'try' ||
           \ (token ==# 'receive' && stack[0] ==# 'after')
            call s:Pop(stack)
          endif

          if empty(stack)
            call s:Log('    LTI is in a condition; matching ' .
                      \'"case/if/try/receive" found')
            let stored_vcol = curr_vcol + shiftwidth()
          elseif stack[0] ==# 'align_to_begin_element'
            call s:Pop(stack)
            let stored_vcol = curr_vcol
          elseif len(stack) > 1 && stack[0] ==# '->' && stack[1] ==# ';'
            call s:Log('    LTI is in a condition; matching ' .
                      \'"case/if/try/receive" found')
            call s:Pop(stack)
            call s:Pop(stack)
            let stored_vcol = curr_vcol + shiftwidth()
          elseif stack[0] ==# '->'
            call s:Log('    LTI is in a branch; matching ' .
                      \'"case/if/try/receive" found')
            call s:Pop(stack)
            let stored_vcol = curr_vcol + 2 * shiftwidth()
          elseif stack[0] ==# 'when'
            call s:Log('    LTI is in a guard; matching ' .
                      \'"case/if/try/receive" found')
            call s:Pop(stack)
            let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
          endif

        endif

        let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
                                            \stored_vcol, 'end', shiftwidth())
        if ret | return res | endif

      elseif token ==# 'fun'
        let next_indtoken = s:NextIndToken(lnum, i)
        call s:Log('    Next indtoken = ' . string(next_indtoken))

        if !empty(next_indtoken) && next_indtoken[0] ==# '('
          " We have an anonymous function definition
          " (e.g. "fun () -> ok end")

          " stack = []  =>  LTI is a condition
          " stack = ['->']  =>  LTI is a branch
          " stack = ['->', ';']  =>  LTI is a condition
          " stack = ['when']  =>  LTI is in a guard
          if empty(stack)
            call s:Log('    LTI is in a condition; matching "fun" found')
            let stored_vcol = curr_vcol + shiftwidth()
          elseif len(stack) > 1 && stack[0] ==# '->' && stack[1] ==# ';'
            call s:Log('    LTI is in a condition; matching "fun" found')
            call s:Pop(stack)
            call s:Pop(stack)
          elseif stack[0] ==# '->'
            call s:Log('    LTI is in a branch; matching "fun" found')
            call s:Pop(stack)
            let stored_vcol = curr_vcol + 2 * shiftwidth()
          elseif stack[0] ==# 'when'
            call s:Log('    LTI is in a guard; matching "fun" found')
            call s:Pop(stack)
            let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
          endif

          let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
                                              \stored_vcol, 'end', shiftwidth())
          if ret | return res | endif
        else
          " Pass: we have a function reference (e.g. "fun f/0")
        endif

      elseif token ==# '['
        " Emacs compatibility
        let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
                                            \stored_vcol, ']', 1)
        if ret | return res | endif

      elseif token ==# '<<'
        " Emacs compatibility
        let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
                                            \stored_vcol, '>>', 2)
        if ret | return res | endif

      elseif token ==# '(' || token ==# '{'

        let end_token = (token ==# '(' ? ')' :
                        \token ==# '{' ? '}' : 'error')

        if empty(stack)
          " We found the opening paren whose block contains the LTI.
          let mode = 'inside'
        elseif stack[0] ==# end_token
          call s:Log('    "' . token . '" pops "' . end_token . '"')
          call s:Pop(stack)

          if !empty(stack) && stack[0] ==# 'align_to_begin_element'
            " We found the opening paren whose closing paren
            " starts LTI
            let mode = 'align_to_begin_element'
          else
            " We found the opening pair for a closing paren that
            " was already in the stack.
            let mode = 'outside'
          endif
        else
          return s:UnexpectedToken(token, stack)
        endif

        if mode ==# 'inside' || mode ==# 'align_to_begin_element'

          if last_token_of_line && i != 0
            " Examples: {{{
            "
            " mode == 'inside':
            "
            "     my_func(
            "       LTI
            "
            "     [Variable, {
            "        LTI
            "
            " mode == 'align_to_begin_element':
            "
            "     my_func(
            "       Params
            "      ) % LTI
            "
            "     [Variable, {
            "        Terms
            "       } % LTI
            " }}}
            let stack = ['prev_term_plus']
            let plus = (mode ==# 'inside' ? 2 : 1)
            call s:Log('    "' . token .
                      \'" token found at end of line -> find previous token')
          elseif mode ==# 'align_to_begin_element'
            " Examples: {{{
            "
            " mode == 'align_to_begin_element' && !last_token_of_line
            "
            "     my_func(stored_vcol
            "            ) % LTI
            "
            "     [Variable, {stored_vcol
            "                } % LTI
            "
            " mode == 'align_to_begin_element' && i == 0
            "
            "     (
            "       stored_vcol
            "     ) % LTI
            "
            "     {
            "       stored_vcol
            "     } % LTI
            " }}}
            call s:Log('    "' . token . '" token (whose closing token ' .
                      \'starts LTI) found -> return')
            return curr_vcol
          elseif stored_vcol ==# -1
            " Examples: {{{
            "
            " mode == 'inside' && stored_vcol == -1 && !last_token_of_line
            "
            "     my_func(
            "             LTI
            "     [Variable, {
            "                 LTI
            "
            " mode == 'inside' && stored_vcol == -1 && i == 0
            "
            "     (
            "      LTI
            "
            "     {
            "      LTI
            " }}}
            call s:Log('    "' . token .
                      \'" token (which directly precedes LTI) found -> return')
            return curr_vcol + 1
          else
            " Examples: {{{
            "
            " mode == 'inside' && stored_vcol != -1 && !last_token_of_line
            "
            "     my_func(stored_vcol,
            "             LTI
            "
            "     [Variable, {stored_vcol,
            "                 LTI
            "
            " mode == 'inside' && stored_vcol != -1 && i == 0
            "
            "     (stored_vcol,
            "      LTI
            "
            "     {stored_vcol,
            "      LTI
            " }}}
            call s:Log('    "' . token .
                      \'" token (whose block contains LTI) found -> return')
            return stored_vcol
          endif
        endif

      elseif index(['end', ')', ']', '}', '>>'], token) != -1

        " If we can be sure that there is synchronization in the Erlang
        " syntax, we use searchpair to make the script quicker. Otherwise we
        " just push the token onto the stack and keep parsing.
    
        " No synchronization -> no searchpair optimization
        if !exists('b:erlang_syntax_synced')
          call s:Push(stack, token)

        " We don't have searchpair optimization for '>>'
        elseif token ==# '>>'
          call s:Push(stack, token)

        elseif token ==# 'end'
          let [lnum_new, col_new] = s:SearchEndPair(lnum, curr_col)

          if lnum_new ==# 0
            return s:IndentError('Matching token for "end" not found',
                                \token, stack)
          else
            if lnum_new != lnum
              call s:Log('    Tokenize for "end" <<<<')
              let [lnum, indtokens] = s:TokenizeLine(lnum_new, 'up')
              call s:Log('    >>>> Tokenize for "end"')
            endif

            let [success, i] = s:GetIndtokenAtCol(indtokens, col_new)
            if !success | return i | endif
            let [token, curr_vcol, curr_col] = indtokens[i]
            call s:Log('    Match for "end" in line ' . lnum_new . ': ' .
                      \string(indtokens[i]))
          endif

        else " token is one of the following: ')', ']', '}'

          call s:Push(stack, token)

          " We have to escape '[', because this string will be interpreted as a
          " regexp
          let open_paren = (token ==# ')' ? '(' :
                           \token ==# ']' ? '\[' :
                           \               '{')

          let [lnum_new, col_new] = s:SearchPair(lnum, curr_col,
                                                \open_paren, '', token)

          if lnum_new ==# 0
            return s:IndentError('Matching token not found',
                                \token, stack)
          else
            if lnum_new != lnum
              call s:Log('    Tokenize the opening paren <<<<')
              let [lnum, indtokens] = s:TokenizeLine(lnum_new, 'up')
              call s:Log('    >>>>')
            endif

            let [success, i] = s:GetIndtokenAtCol(indtokens, col_new)
            if !success | return i | endif
            let [token, curr_vcol, curr_col] = indtokens[i]
            call s:Log('    Match in line ' . lnum_new . ': ' .
                      \string(indtokens[i]))

            " Go back to the beginning of the loop and handle the opening paren
            continue
          endif
        endif

      elseif token ==# ';'

        if empty(stack)
          call s:Push(stack, ';')
        elseif index([';', '->', 'when', 'end', 'after', 'catch'],
                    \stack[0]) != -1
          " Pass:
          "
          " - If the stack top is another ';', then one ';' is
          "   enough.
          " - If the stack top is an '->' or a 'when', then we
          "   should keep that, because they signify the type of the
          "   LTI (branch, condition or guard).
          " - From the indentation point of view, the keyword
          "   (of/catch/after/end) before the LTI is what counts, so
          "   if the stack already has a catch/after/end, we don't
          "   modify it. This way when we reach case/try/receive,
          "   there will be at most one of/catch/after/end token in
          "   the stack.
        else
          return s:UnexpectedToken(token, stack)
        endif

      elseif token ==# '->'

        if empty(stack) && !last_token_of_line
          call s:Log('    LTI is in expression after arrow -> return')
          return stored_vcol
        elseif empty(stack) || stack[0] ==# ';' || stack[0] ==# 'end'
          " stack = [';']  -> LTI is either a branch or in a guard
          " stack = ['->']  ->  LTI is a condition
          " stack = ['->', ';']  -> LTI is a branch
          call s:Push(stack, '->')
        elseif index(['->', 'when', 'end', 'after', 'catch'], stack[0]) != -1
          " Pass:
          "
          " - If the stack top is another '->', then one '->' is
          "   enough.
          " - If the stack top is a 'when', then we should keep
          "   that, because this signifies that LTI is a in a guard.
          " - From the indentation point of view, the keyword
          "   (of/catch/after/end) before the LTI is what counts, so
          "   if the stack already has a catch/after/end, we don't
          "   modify it. This way when we reach case/try/receive,
          "   there will be at most one of/catch/after/end token in
          "   the stack.
        else
          return s:UnexpectedToken(token, stack)
        endif

      elseif token ==# 'when'

        " Pop all ';' from the top of the stack
        while !empty(stack) && stack[0] ==# ';'
          call s:Pop(stack)
        endwhile

        if empty(stack)
          if semicolon_abscol != ''
            let stored_vcol = semicolon_abscol
          endif
          if !last_token_of_line
            " Example:
            "   when A,
            "        LTI
            let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
                                                       \stored_vcol, shiftwidth())
            if ret | return res | endif
          else
            " Example:
            "   when
            "       LTI
            call s:Push(stack, token)
          endif
        elseif index(['->', 'when', 'end', 'after', 'catch'], stack[0]) != -1
          " Pass:
          " - If the stack top is another 'when', then one 'when' is
          "   enough.
          " - If the stack top is an '->' or a 'when', then we
          "   should keep that, because they signify the type of the
          "   LTI (branch, condition or guard).
          " - From the indentation point of view, the keyword
          "   (of/catch/after/end) before the LTI is what counts, so
          "   if the stack already has a catch/after/end, we don't
          "   modify it. This way when we reach case/try/receive,
          "   there will be at most one of/catch/after/end token in
          "   the stack.
        else
          return s:UnexpectedToken(token, stack)
        endif

      elseif token ==# 'of' || token ==# 'after' ||
           \ (token ==# 'catch' && !s:IsCatchStandalone(lnum, i))

        if token ==# 'after'
          " If LTI is between an 'after' and the corresponding
          " 'end', then let's return
          let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
                                                     \stored_vcol, shiftwidth())
          if ret | return res | endif
        endif

        if empty(stack) || stack[0] ==# '->' || stack[0] ==# 'when'
          call s:Push(stack, token)
        elseif stack[0] ==# 'catch' || stack[0] ==# 'after' || stack[0] ==# 'end'
          " Pass: From the indentation point of view, the keyword
          " (of/catch/after/end) before the LTI is what counts, so
          " if the stack already has a catch/after/end, we don't
          " modify it. This way when we reach case/try/receive,
          " there will be at most one of/catch/after/end token in
          " the stack.
        else
          return s:UnexpectedToken(token, stack)
        endif

      elseif token ==# '||' && empty(stack) && !last_token_of_line

        call s:Log('    LTI is in expression after "||" -> return')
        return stored_vcol

      else
        call s:Log('    Misc token, stack unchanged = ' . string(stack))

      endif

      if empty(stack) || stack[0] ==# '->' || stack[0] ==# 'when'
        let stored_vcol = curr_vcol
        let semicolon_abscol = ''
        call s:Log('    Misc token when the stack is empty or has "->" ' .
                  \'-> setting stored_vcol to ' . stored_vcol)
      elseif stack[0] ==# ';'
        let semicolon_abscol = curr_vcol
        call s:Log('    Setting semicolon-stored_vcol to ' . stored_vcol)
      endif

      let i -= 1
      call s:Log('    Token processed. stored_vcol=' . stored_vcol)

      let last_token_of_line = 0

    endwhile " iteration on tokens in a line

    call s:Log('  Line analyzed. stored_vcol=' . stored_vcol)

    if empty(stack) && stored_vcol != -1 &&
     \ (!empty(indtokens) && indtokens[0][0] != '<string_end>' &&
     \                       indtokens[0][0] != '<quoted_atom_end>')
      call s:Log('    Empty stack at the beginning of the line -> return')
      return stored_vcol
    endif

    let lnum -= 1

  endwhile " iteration on lines

endfunction

" ErlangIndent function {{{1
" =====================

function! ErlangIndent()

  call s:ClearTokenCacheIfNeeded()

  let currline = getline(v:lnum)
  call s:Log('Indenting line ' . v:lnum . ': ' . currline)

  if s:IsLineStringContinuation(v:lnum) || s:IsLineAtomContinuation(v:lnum)
    call s:Log('String or atom continuation found -> ' .
              \'leaving indentation unchanged')
    return -1
  endif

  let ml = matchlist(currline,
                    \'^\(\s*\)\(\%(end\|of\|catch\|after\)\>\|[)\]}]\|>>\)')

  " If the line has a special beginning, but not a standalone catch
  if !empty(ml) && !(ml[2] ==# 'catch' && s:IsCatchStandalone(v:lnum, 0))

    let curr_col = len(ml[1])

    " If we can be sure that there is synchronization in the Erlang
    " syntax, we use searchpair to make the script quicker.
    if ml[2] ==# 'end' && exists('b:erlang_syntax_synced')

      let [lnum, col] = s:SearchEndPair(v:lnum, curr_col)

      if lnum ==# 0
        return s:IndentError('Matching token for "end" not found',
                            \'end', [])
      else
        call s:Log('    Tokenize for "end" <<<<')
        let [lnum, indtokens] = s:TokenizeLine(lnum, 'up')
        call s:Log('    >>>> Tokenize for "end"')

        let [success, i] = s:GetIndtokenAtCol(indtokens, col)
        if !success | return i | endif
        let [token, curr_vcol, curr_col] = indtokens[i]
        call s:Log('    Match for "end" in line ' . lnum . ': ' .
                   \string(indtokens[i]))
        return curr_vcol
      endif

    else

      call s:Log("  Line type = 'end'")
      let new_col = s:ErlangCalcIndent(v:lnum - 1,
                                      \[ml[2], 'align_to_begin_element'])
    endif
  else
    call s:Log("  Line type = 'normal'")

    let new_col = s:ErlangCalcIndent(v:lnum - 1, [])
    if currline =~# '^\s*when\>'
      let new_col += 2
    endif
  endif

  if new_col < -1
    call s:Log('WARNING: returning new_col == ' . new_col)
    return g:erlang_unexpected_token_indent
  endif

  return new_col

endfunction

" Cleanup {{{1
" =======

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: sw=2 et fdm=marker
PK�j�ZmS�!!vim80/indent/xml.vimnu�[���" Language:	xml
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	2017 Jun 13
" Notes:	1) does not indent pure non-xml code (e.g. embedded scripts)
"		2) will be confused by unbalanced tags in comments
"		or CDATA sections.
"		2009-05-26 patch by Nikolai Weibull
" TODO: 	implement pre-like tags, see xml_indent_open / xml_indent_close

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1
let s:keepcpo= &cpo
set cpo&vim

" [-- local settings (must come before aborting the script) --]
setlocal indentexpr=XmlIndentGet(v:lnum,1)
setlocal indentkeys=o,O,*<Return>,<>>,<<>,/,{,}

if !exists('b:xml_indent_open')
    let b:xml_indent_open = '.\{-}<\a'
    " pre tag, e.g. <address>
    " let b:xml_indent_open = '.\{-}<[/]\@!\(address\)\@!'
endif

if !exists('b:xml_indent_close')
    let b:xml_indent_close = '.\{-}</'
    " end pre tag, e.g. </address>
    " let b:xml_indent_close = '.\{-}</\(address\)\@!'
endif

let &cpo = s:keepcpo
unlet s:keepcpo

" [-- finish, if the function already exists --]
if exists('*XmlIndentGet')
  finish
endif

let s:keepcpo= &cpo
set cpo&vim

fun! <SID>XmlIndentWithPattern(line, pat)
    let s = substitute('x'.a:line, a:pat, "\1", 'g')
    return strlen(substitute(s, "[^\1].*$", '', ''))
endfun

" [-- check if it's xml --]
fun! <SID>XmlIndentSynCheck(lnum)
    if '' != &syntax
	let syn1 = synIDattr(synID(a:lnum, 1, 1), 'name')
	let syn2 = synIDattr(synID(a:lnum, strlen(getline(a:lnum)) - 1, 1), 'name')
	if '' != syn1 && syn1 !~ 'xml' && '' != syn2 && syn2 !~ 'xml'
	    " don't indent pure non-xml code
	    return 0
	elseif syn1 =~ '^xmlComment' && syn2 =~ '^xmlComment'
	    " indent comments specially
	    return -1
	endif
    endif
    return 1
endfun

" [-- return the sum of indents of a:lnum --]
fun! <SID>XmlIndentSum(lnum, style, add)
    let line = getline(a:lnum)
    if a:style == match(line, '^\s*</')
	return (shiftwidth() *
	\  (<SID>XmlIndentWithPattern(line, b:xml_indent_open)
	\ - <SID>XmlIndentWithPattern(line, b:xml_indent_close)
	\ - <SID>XmlIndentWithPattern(line, '.\{-}/>'))) + a:add
    else
	return a:add
    endif
endfun

fun! XmlIndentGet(lnum, use_syntax_check)
    " Find a non-empty line above the current line.
    let lnum = prevnonblank(a:lnum - 1)

    " Hit the start of the file, use zero indent.
    if lnum == 0
	return 0
    endif

    if a:use_syntax_check
	let check_lnum = <SID>XmlIndentSynCheck(lnum)
	let check_alnum = <SID>XmlIndentSynCheck(a:lnum)
	if 0 == check_lnum || 0 == check_alnum
	    return indent(a:lnum)
	elseif -1 == check_lnum || -1 == check_alnum
	    return -1
	endif
    endif

    let ind = <SID>XmlIndentSum(lnum, -1, indent(lnum))
    let ind = <SID>XmlIndentSum(a:lnum, 0, ind)

    return ind
endfun

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:ts=8
PK�j�Z(���
�
vim80/indent/eruby.vimnu�[���" Vim indent file
" Language:		eRuby
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

if exists("b:did_indent")
  finish
endif

runtime! indent/ruby.vim
unlet! b:did_indent
setlocal indentexpr=

if exists("b:eruby_subtype")
  exe "runtime! indent/".b:eruby_subtype.".vim"
else
  runtime! indent/html.vim
endif
unlet! b:did_indent

" Force HTML indent to not keep state.
let b:html_indent_usestate = 0

if &l:indentexpr == ''
  if &l:cindent
    let &l:indentexpr = 'cindent(v:lnum)'
  else
    let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))'
  endif
endif
let b:eruby_subtype_indentexpr = &l:indentexpr

let b:did_indent = 1

setlocal indentexpr=GetErubyIndent()
setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=else,=elsif,=rescue,=ensure,=when

" Only define the function once.
if exists("*GetErubyIndent")
  finish
endif

" this file uses line continuations
let s:cpo_sav = &cpo
set cpo&vim

function! GetErubyIndent(...)
  " The value of a single shift-width
  let sw = shiftwidth()

  if a:0 && a:1 == '.'
    let v:lnum = line('.')
  elseif a:0 && a:1 =~ '^\d'
    let v:lnum = a:1
  endif
  let vcol = col('.')
  call cursor(v:lnum,1)
  let inruby = searchpair('<%','','%>','W')
  call cursor(v:lnum,vcol)
  if inruby && getline(v:lnum) !~ '^<%\|^\s*[-=]\=%>'
    let ind = GetRubyIndent(v:lnum)
  else
    exe "let ind = ".b:eruby_subtype_indentexpr

    " Workaround for Andy Wokula's HTML indent. This should be removed after
    " some time, since the newest version is fixed in a different way.
    if b:eruby_subtype_indentexpr =~# '^HtmlIndent('
	  \ && exists('b:indent')
	  \ && type(b:indent) == type({})
	  \ && has_key(b:indent, 'lnum')
      " Force HTML indent to not keep state
      let b:indent.lnum = -1
    endif
  endif
  let lnum = prevnonblank(v:lnum-1)
  let line = getline(lnum)
  let cline = getline(v:lnum)
  if cline =~# '^\s*<%[-=]\=\s*\%(}\|end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%([-=]\=%>\|$\)'
    let ind = ind - sw
  endif
  if line =~# '\S\s*<%[-=]\=\s*\%(}\|end\).\{-\}\s*\%([-=]\=%>\|$\)'
    let ind = ind - sw
  endif
  if line =~# '\%({\|\<do\)\%(\s*|[^|]*|\)\=\s*[-=]\=%>'
    let ind = ind + sw
  elseif line =~# '<%[-=]\=\s*\%(module\|class\|def\|if\|for\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue\)\>.*%>'
    let ind = ind + sw
  endif
  if line =~# '^\s*<%[=#-]\=\s*$' && cline !~# '^\s*end\>'
    let ind = ind + sw
  endif
  if line !~# '^\s*<%' && line =~# '%>\s*$' && line !~# '^\s*end\>'
    let ind = ind - sw
  endif
  if cline =~# '^\s*[-=]\=%>\s*$'
    let ind = ind - sw
  endif
  return ind
endfunction

let &cpo = s:cpo_sav
unlet! s:cpo_sav

" vim:set sw=2 sts=2 ts=8 noet:
PK�j�ZW��,rrvim80/indent/chaiscript.vimnu�[���" Vim indent file
" Language:     ChaiScript
" Maintainer:	Jason Turner <lefticus 'at' gmail com>

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetChaiScriptIndent()
setlocal autoindent

" Only define the function once.
if exists("*GetChaiScriptIndent")
  finish
endif

function! GetChaiScriptIndent()
  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " Hit the start of the file, use zero indent.
  if lnum == 0
    return 0
  endif

  " Add a 'shiftwidth' after lines that start a block:
  " lines containing a {
  let ind = indent(lnum)
  let flag = 0
  let prevline = getline(lnum)
  if prevline =~ '^.*{.*'
    let ind = ind + shiftwidth()
    let flag = 1
  endif

  " Subtract a 'shiftwidth' after lines containing a { followed by a }
  " to keep it balanced
  if flag == 1 && prevline =~ '.*{.*}.*'
    let ind = ind - shiftwidth()
  endif

  " Subtract a 'shiftwidth' on lines ending with }
  if getline(v:lnum) =~ '^\s*\%(}\)'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction
PK�j�Z���].].vim80/indent/dtd.vimnu�[���" Vim indent file
" Language:    	    DTD (Document Type Definition for XML)
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-07-08

let s:cpo_save = &cpo
set cpo&vim

setlocal indentexpr=GetDTDIndent()
setlocal indentkeys=!^F,o,O,>
setlocal nosmartindent

if exists("*GetDTDIndent")
  finish
endif

" TODO: Needs to be adjusted to stop at [, <, and ].
let s:token_pattern = '^[^[:space:]]\+'

function s:lex1(input, start, ...)
  let pattern = a:0 > 0 ? a:1 : s:token_pattern
  let start = matchend(a:input, '^\_s*', a:start)
  if start == -1
    return ["", a:start]
  endif
  let end = matchend(a:input, pattern, start)
  if end == -1
    return ["", a:start]
  endif
  let token = strpart(a:input, start, end - start)
  return [token, end]
endfunction

function s:lex(input, start, ...)
  let pattern = a:0 > 0 ? a:1 : s:token_pattern
  let info = s:lex1(a:input, a:start, pattern)
  while info[0] == '--'
    let info = s:lex1(a:input, info[1], pattern)
    while info[0] != "" && info[0] != '--'
      let info = s:lex1(a:input, info[1], pattern)
    endwhile
    if info[0] == ""
      return info
    endif
    let info = s:lex1(a:input, info[1], pattern)
  endwhile
  return info
endfunction

function s:indent_to_innermost_parentheses(line, end)
  let token = '('
  let end = a:end
  let parentheses = [end - 1]
  while token != ""
    let [token, end] = s:lex(a:line, end, '^\%([(),|]\|[A-Za-z0-9_-]\+\|#P\=CDATA\|%[A-Za-z0-9_-]\+;\)[?*+]\=')
    if token[0] == '('
      call add(parentheses, end - 1)
    elseif token[0] == ')'
      if len(parentheses) == 1
        return [-1, end]
      endif
      call remove(parentheses, -1)
    endif
  endwhile
  return [parentheses[-1] - strridx(a:line, "\n", parentheses[-1]), end]
endfunction

" TODO: Line and end could be script global (think OO members).
function GetDTDIndent()
  if v:lnum == 1
    return 0
  endif
  
  " Begin by searching back for a <! that isn’t inside a comment.
  " From here, depending on what follows immediately after, parse to
  " where we’re at to determine what to do.
  if search('<!', 'bceW') == 0
    return indent(v:lnum - 1)
  endif
  let lnum = line('.')
  let col = col('.')
  let indent = indent('.')
  let line = lnum == v:lnum ? getline(lnum) : join(getline(lnum, v:lnum - 1), "\n")

  let [declaration, end] = s:lex1(line, col)
  if declaration == ""
    return indent + shiftwidth()
  elseif declaration == '--'
    " We’re looking at a comment.  Now, simply determine if the comment is
    " terminated or not.  If it isn’t, let Vim take care of that using
    " 'comments' and 'autoindent'. Otherwise, indent to the first lines level.
    while declaration != ""
      let [declaration, end] = s:lex(line, end)
      if declaration == "-->"
        return indent
      endif
    endwhile
    return -1
  elseif declaration == 'ELEMENT'
    " Check for element name.  If none exists, indent one level.
    let [name, end] = s:lex(line, end)
    if name == ""
      return indent + shiftwidth()
    endif

    " Check for token following element name.  This can be a specification of
    " whether the start or end tag may be omitted.  If nothing is found, indent
    " one level.
    let [token, end] = s:lex(line, end, '^\%([-O(]\|ANY\|EMPTY\)')
    let n = 0
    while token =~ '[-O]' && n < 2
      let [token, end] = s:lex(line, end, '^\%([-O(]\|ANY\|EMPTY\)')
      let n += 1
    endwhile
    if token == ""
      return indent + shiftwidth()
    endif

    " Next comes the content model.  If the token we’ve found isn’t a
    " parenthesis it must be either ANY, EMPTY or some random junk.  Either
    " way, we’re done indenting this element, so set it to that of the first
    " line so that the terminating “>” winds up having the same indention.
    if token != '('
      return indent
    endif

    " Now go through the content model.  We need to keep track of the nesting
    " of parentheses.  As soon as we hit 0 we’re done.  If that happens we must
    " have a complete content model.  Thus set indention to be the same as that
    " of the first line so that the terminating “>” winds up having the same
    " indention.  Otherwise, we’ll indent to the innermost parentheses not yet
    " matched.
    let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end)
    if indent_of_innermost != -1
      return indent_of_innermost
    endif

    " Finally, look for any additions and/or exceptions to the content model.
    " This is defined by a “+” or “-” followed by another content model
    " declaration.
    " TODO: Can the “-” be separated by whitespace from the “(”?
    let seen = { '+(': 0, '-(': 0 }
    while 1
      let [additions_exceptions, end] = s:lex(line, end, '^[+-](')
      if additions_exceptions != '+(' && additions_exceptions != '-('
        let [token, end] = s:lex(line, end)
        if token == '>'
          return indent
        endif
        " TODO: Should use s:lex here on getline(v:lnum) and check for >.
        return getline(v:lnum) =~ '^\s*>' || count(values(seen), 0) == 0 ? indent : (indent + shiftwidth())
      endif

      " If we’ve seen an addition or exception already and this is of the same
      " kind, the user is writing a broken DTD.  Time to bail.
      if seen[additions_exceptions]
        return indent
      endif
      let seen[additions_exceptions] = 1

      let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end)
      if indent_of_innermost != -1
        return indent_of_innermost
      endif
    endwhile
  elseif declaration == 'ATTLIST'
    " Check for element name.  If none exists, indent one level.
    let [name, end] = s:lex(line, end)
    if name == ""
      return indent + shiftwidth()
    endif

    " Check for any number of attributes.
    while 1
      " Check for attribute name.  If none exists, indent one level, unless the
      " current line is a lone “>”, in which case we indent to the same level
      " as the first line.  Otherwise, if the attribute name is “>”, we have
      " actually hit the end of the attribute list, in which case we indent to
      " the same level as the first line.
      let [name, end] = s:lex(line, end)
      if name == ""
        " TODO: Should use s:lex here on getline(v:lnum) and check for >.
        return getline(v:lnum) =~ '^\s*>' ? indent : (indent + shiftwidth())
      elseif name == ">"
        return indent
      endif

      " Check for attribute value declaration.  If none exists, indent two
      " levels.  Otherwise, if it’s an enumerated value, check for nested
      " parentheses and indent to the innermost one if we don’t reach the end
      " of the listc.  Otherwise, just continue with looking for the default
      " attribute value.
      " TODO: Do validation of keywords
      " (CDATA|NMTOKEN|NMTOKENS|ID|IDREF|IDREFS|ENTITY|ENTITIES)?
      let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)')
      if value == ""
        return indent + shiftwidth() * 2
      elseif value == 'NOTATION'
        " If this is a enumerated value based on notations, read another token
        " for the actual value.  If it doesn’t exist, indent three levels.
        " TODO: If validating according to above, value must be equal to '('.
        let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)')
        if value == ""
          return indent + shiftwidth() * 3
        endif
      endif

      if value == '('
        let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end)
        if indent_of_innermost != -1
          return indent_of_innermost
        endif
      endif

      " Finally look for the attribute’s default value.  If non exists, indent
      " two levels.
      let [default, end] = s:lex(line, end, '^\%("\_[^"]*"\|#\(REQUIRED\|IMPLIED\|FIXED\)\)')
      if default == ""
        return indent + shiftwidth() * 2
      elseif default == '#FIXED'
        " We need to look for the fixed value.  If non exists, indent three
        " levels.
        let [default, end] = s:lex(line, end, '^"\_[^"]*"')
        if default == ""
          return indent + shiftwidth() * 3
        endif
      endif
    endwhile
  elseif declaration == 'ENTITY'
    " Check for entity name.  If none exists, indent one level.  Otherwise, if
    " the name actually turns out to be a percent sign, “%”, this is a
    " parameter entity.  Read another token to determine the entity name and,
    " again, if none exists, indent one level.
    let [name, end] = s:lex(line, end)
    if name == ""
      return indent + shiftwidth()
    elseif name == '%'
      let [name, end] = s:lex(line, end)
      if name == ""
        return indent + shiftwidth()
      endif
    endif

    " Now check for the entity value.  If none exists, indent one level.  If it
    " does exist, indent to same level as first line, as we’re now done with
    " this entity.
    "
    " The entity value can be a string in single or double quotes (no escapes
    " to worry about, as entities are used instead).  However, it can also be
    " that this is an external unparsed entity.  In that case we have to look
    " further for (possibly) a public ID and an URI followed by the NDATA
    " keyword and the actual notation name.  For the public ID and URI, indent
    " two levels, if they don’t exist.  If the NDATA keyword doesn’t exist,
    " indent one level.  Otherwise, if the actual notation name doesn’t exist,
    " indent two level.  If it does, indent to same level as first line, as
    " we’re now done with this entity.
    let [value, end] = s:lex(line, end)
    if value == ""
      return indent + shiftwidth()
    elseif value == 'SYSTEM' || value == 'PUBLIC'
      let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
      if quoted_string == ""
        return indent + shiftwidth() * 2
      endif

      if value == 'PUBLIC'
        let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
        if quoted_string == ""
          return indent + shiftwidth() * 2
        endif
      endif

      let [ndata, end] = s:lex(line, end)
      if ndata == ""
        return indent + shiftwidth()
      endif

      let [name, end] = s:lex(line, end)
      return name == "" ? (indent + shiftwidth() * 2) : indent
    else
      return indent
    endif
  elseif declaration == 'NOTATION'
    " Check for notation name.  If none exists, indent one level.
    let [name, end] = s:lex(line, end)
    if name == ""
      return indent + shiftwidth()
    endif

    " Now check for the external ID.  If none exists, indent one level.
    let [id, end] = s:lex(line, end)
    if id == ""
      return indent + shiftwidth()
    elseif id == 'SYSTEM' || id == 'PUBLIC'
      let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
      if quoted_string == ""
        return indent + shiftwidth() * 2
      endif

      if id == 'PUBLIC'
        let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\|>\)')
        if quoted_string == ""
          " TODO: Should use s:lex here on getline(v:lnum) and check for >.
          return getline(v:lnum) =~ '^\s*>' ? indent : (indent + shiftwidth() * 2)
        elseif quoted_string == '>'
          return indent
        endif
      endif
    endif

    return indent
  endif

  " TODO: Processing directives could be indented I suppose.  But perhaps it’s
  " just as well to let the user decide how to indent them (perhaps extending
  " this function to include proper support for whatever processing directive
  " language they want to use).

  " Conditional sections are simply passed along to let Vim decide what to do
  " (and hence the user).
  return -1
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���5ZZvim80/indent/bib.vimnu�[���" Vim indent file
" Language:      BibTeX
" Maintainer:    Dorai Sitaram <ds26@gte.com>
" URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
" Last Change:   2005 Mar 28

" Only do this when not done yet for this buffer
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal cindent

let b:undo_indent = "setl cin<"
PK�j�Z�<���vim80/indent/vim.vimnu�[���" Vim indent file
" Language:	Vim script
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2016 Jun 27

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetVimIndent()
setlocal indentkeys+==end,=else,=cat,=fina,=END,0\\

let b:undo_indent = "setl indentkeys< indentexpr<"

" Only define the function once.
if exists("*GetVimIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

function GetVimIndent()
  let ignorecase_save = &ignorecase
  try
    let &ignorecase = 0
    return GetVimIndentIntern()
  finally
    let &ignorecase = ignorecase_save
  endtry
endfunc

function GetVimIndentIntern()
  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " If the current line doesn't start with '\' and below a line that starts
  " with '\', use the indent of the line above it.
  let cur_text = getline(v:lnum)
  if cur_text !~ '^\s*\\'
    while lnum > 0 && getline(lnum) =~ '^\s*\\'
      let lnum = lnum - 1
    endwhile
  endif

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif
  let prev_text = getline(lnum)

  " Add a 'shiftwidth' after :if, :while, :try, :catch, :finally, :function
  " and :else.  Add it three times for a line that starts with '\' after
  " a line that doesn't (or g:vim_indent_cont if it exists).
  let ind = indent(lnum)
  if cur_text =~ '^\s*\\' && v:lnum > 1 && prev_text !~ '^\s*\\'
    if exists("g:vim_indent_cont")
      let ind = ind + g:vim_indent_cont
    else
      let ind = ind + shiftwidth() * 3
    endif
  elseif prev_text =~ '^\s*aug\%[roup]\s\+' && prev_text !~ '^\s*aug\%[roup]\s\+[eE][nN][dD]\>'
    let ind = ind + shiftwidth()
  else
    " A line starting with :au does not increment/decrement indent.
    if prev_text !~ '^\s*au\%[tocmd]'
      let i = match(prev_text, '\(^\||\)\s*\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>')
      if i >= 0
	let ind += shiftwidth()
	if strpart(prev_text, i, 1) == '|' && has('syntax_items')
	      \ && synIDattr(synID(lnum, i, 1), "name") =~ '\(Comment\|String\)$'
	  let ind -= shiftwidth()
	endif
      endif
    endif
  endif

  " If the previous line contains an "end" after a pipe, but not in an ":au"
  " command.  And not when there is a backslash before the pipe.
  " And when syntax HL is enabled avoid a match inside a string.
  let i = match(prev_text, '[^\\]|\s*\(ene\@!\)')
  if i > 0 && prev_text !~ '^\s*au\%[tocmd]'
    if !has('syntax_items') || synIDattr(synID(lnum, i + 2, 1), "name") !~ '\(Comment\|String\)$'
      let ind = ind - shiftwidth()
    endif
  endif


  " Subtract a 'shiftwidth' on a :endif, :endwhile, :catch, :finally, :endtry,
  " :endfun, :else and :augroup END.
  if cur_text =~ '^\s*\(ene\@!\|cat\|fina\|el\|aug\%[roup]\s\+[eE][nN][dD]\)'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:sw=2
PK�j�Z��A��vim80/indent/sass.vimnu�[���" Vim indent file
" Language:	Sass
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2017 Jun 13

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent sw=2 et
setlocal indentexpr=GetSassIndent()
setlocal indentkeys=o,O,*<Return>,<:>,!^F

" Only define the function once.
if exists("*GetSassIndent")
  finish
endif

let s:property = '^\s*:\|^\s*[[:alnum:]#{}-]\+\%(:\|\s*=\)'
let s:extend = '^\s*\%(@extend\|@include\|+\)'

function! GetSassIndent()
  let lnum = prevnonblank(v:lnum-1)
  let line = substitute(getline(lnum),'\s\+$','','')
  let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','')
  let lastcol = strlen(line)
  let line = substitute(line,'^\s\+','','')
  let indent = indent(lnum)
  let cindent = indent(v:lnum)
  if line !~ s:property && line !~ s:extend && cline =~ s:property
    return indent + shiftwidth()
  else
    return -1
  endif
endfunction

" vim:set sw=2:
PK�j�Zw�]��
�
vim80/indent/perl6.vimnu�[���" Vim indent file
" Language:      Perl 6
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2017 Jun 13
" Contributors:  Andy Lester <andy@petdance.com>
"                Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
" Adapted from indent/perl.vim by Rafael Garcia-Suarez <rgarciasuarez@free.fr>

" Suggestions and improvements by :
"   Aaron J. Sherman (use syntax for hints)
"   Artem Chuprina (play nice with folding)
" TODO:
" This file still relies on stuff from the Perl 5 syntax file, which Perl 6
" does not use.
"
" Things that are not or not properly indented (yet) :
" - Continued statements
"     print "foo",
"       "bar";
"     print "foo"
"       if bar();
" - Multiline regular expressions (m//x)
" (The following probably needs modifying the perl syntax file)
" - qw() lists
" - Heredocs with terminators that don't match \I\i*

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

" Is syntax highlighting active ?
let b:indent_use_syntax = has("syntax")

setlocal indentexpr=GetPerl6Indent()

" we reset it first because the Perl 5 indent file might have been loaded due
" to a .pl/pm file extension, and indent files don't clean up afterwards
setlocal indentkeys&

setlocal indentkeys+=0=,0),0],0>,0»,0=or,0=and
if !b:indent_use_syntax
    setlocal indentkeys+=0=EO
endif

let s:cpo_save = &cpo
set cpo-=C

function! GetPerl6Indent()

    " Get the line to be indented
    let cline = getline(v:lnum)

    " Indent POD markers to column 0
    if cline =~ '^\s*=\L\@!'
        return 0
    endif

    " Don't reindent coments on first column
    if cline =~ '^#'
        return 0
    endif

    " Get current syntax item at the line's first char
    let csynid = ''
    if b:indent_use_syntax
        let csynid = synIDattr(synID(v:lnum,1,0),"name")
    endif

    " Don't reindent POD and heredocs
    if csynid =~ "^p6Pod"
        return indent(v:lnum)
    endif


    " Now get the indent of the previous perl line.

    " Find a non-blank line above the current line.
    let lnum = prevnonblank(v:lnum - 1)
    " Hit the start of the file, use zero indent.
    if lnum == 0
        return 0
    endif
    let line = getline(lnum)
    let ind = indent(lnum)
    " Skip heredocs, POD, and comments on 1st column
    if b:indent_use_syntax
        let skippin = 2
        while skippin
            let synid = synIDattr(synID(lnum,1,0),"name")
            if (synid =~ "^p6Pod" || synid =~ "p6Comment")
                let lnum = prevnonblank(lnum - 1)
                if lnum == 0
                    return 0
                endif
                let line = getline(lnum)
                let ind = indent(lnum)
                let skippin = 1
            else
                let skippin = 0
            endif
        endwhile
    endif

        if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$'
            let ind = ind + shiftwidth()
        endif
        if cline =~ '^\s*[)}\]»>]'
            let ind = ind - shiftwidth()
        endif

    " Indent lines that begin with 'or' or 'and'
    if cline =~ '^\s*\(or\|and\)\>'
        if line !~ '^\s*\(or\|and\)\>'
            let ind = ind + shiftwidth()
        endif
    elseif line =~ '^\s*\(or\|and\)\>'
        let ind = ind - shiftwidth()
    endif

    return ind

endfunction

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:ts=8:sts=4:sw=4:expandtab:ft=vim
PK�j�Z�R��vim80/indent/bst.vimnu�[���" Vim indent file
" Language:	bst
" Author:	Tim Pope <vimNOSPAM@tpope.info>
" $Id: bst.vim,v 1.1 2007/05/05 18:11:12 vimboss Exp $

if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

setlocal expandtab
setlocal indentexpr=GetBstIndent(v:lnum)
"setlocal smartindent
setlocal cinkeys&
setlocal cinkeys-=0#
setlocal indentkeys&
"setlocal indentkeys+=0%

" Only define the function once.
if exists("*GetBstIndent")
    finish
endif

function! s:prevgood(lnum)
    " Find a non-blank line above the current line.
    " Skip over comments.
    let lnum = a:lnum
    while lnum > 0
        let lnum = prevnonblank(lnum - 1)
        if getline(lnum) !~ '^\s*%.*$'
            break
        endif
    endwhile
    return lnum
endfunction

function! s:strip(lnum)
    let line = getline(a:lnum)
    let line = substitute(line,'"[^"]*"','""','g')
    let line = substitute(line,'%.*','','')
    let line = substitute(line,'^\s\+','','')
    return line
endfunction

function! s:count(string,char)
    let str = substitute(a:string,'[^'.a:char.']','','g')
    return strlen(str)
endfunction

function! GetBstIndent(lnum) abort
    if a:lnum == 1
        return 0
    endif
    let lnum = s:prevgood(a:lnum)
    if lnum <= 0
        return indent(a:lnum - 1)
    endif
    let line = s:strip(lnum)
    let cline = s:strip(a:lnum)
    if cline =~ '^}' && exists("b:current_syntax")
        call cursor(a:lnum,indent(a:lnum))
        if searchpair('{','','}','bW',"synIDattr(synID(line('.'),col('.'),1),'name') =~? 'comment\\|string'")
            if col('.')+1 == col('$')
                return indent('.')
            else
                return virtcol('.')-1
            endif
        endif
    endif
    let fakeline = substitute(line,'^}','','').matchstr(cline,'^}')
    let ind = indent(lnum)
    let ind = ind + shiftwidth() * s:count(line,'{')
    let ind = ind - shiftwidth() * s:count(fakeline,'}')
    return ind
endfunction
PK�j�ZN47Vvim80/indent/fortran.vimnu�[���" Vim indent file
" Language:	Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version:	47
" Last Change:	2016 Oct. 29
" Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage:	For instructions, do :help fortran-indent from Vim
" Credits:
"  Useful suggestions were made, in chronological order, by:
"  Albert Oliver Serra, Takuya Fujiwara and Philipp Edelmann.

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

let s:cposet=&cpoptions
set cpoptions&vim

setlocal indentkeys+==~end,=~case,=~if,=~else,=~do,=~where,=~elsewhere,=~select
setlocal indentkeys+==~endif,=~enddo,=~endwhere,=~endselect,=~elseif
setlocal indentkeys+==~type,=~interface,=~forall,=~associate,=~block,=~enum
setlocal indentkeys+==~endforall,=~endassociate,=~endblock,=~endenum
if exists("b:fortran_indent_more") || exists("g:fortran_indent_more")
  setlocal indentkeys+==~function,=~subroutine,=~module,=~contains,=~program
  setlocal indentkeys+==~endfunction,=~endsubroutine,=~endmodule
  setlocal indentkeys+==~endprogram
endif

" Determine whether this is a fixed or free format source file
" if this hasn't been done yet using the priority:
" buffer-local value
" > global value
" > file extension as in Intel ifort, gcc (gfortran), NAG, Pathscale, and Cray compilers
if !exists("b:fortran_fixed_source")
  if exists("fortran_free_source")
    " User guarantees free source form
    let b:fortran_fixed_source = 0
  elseif exists("fortran_fixed_source")
    " User guarantees fixed source form
    let b:fortran_fixed_source = 1
  elseif expand("%:e") ==? "f\<90\|95\|03\|08\>"
    " Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers
    let b:fortran_fixed_source = 0
  elseif expand("%:e") ==? "f\|f77\|for"
    " Fixed-form file extension defaults
    let b:fortran_fixed_source = 1
  else
    " Modern fortran still allows both fixed and free source form
    " Assume fixed source form unless signs of free source form
    " are detected in the first five columns of the first s:lmax lines.
    " Detection becomes more accurate and time-consuming if more lines
    " are checked. Increase the limit below if you keep lots of comments at
    " the very top of each file and you have a fast computer.
    let s:lmax = 500
    if ( s:lmax > line("$") )
      let s:lmax = line("$")
    endif
    let b:fortran_fixed_source = 1
    let s:ln=1
    while s:ln <= s:lmax
      let s:test = strpart(getline(s:ln),0,5)
      if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t'
	let b:fortran_fixed_source = 0
	break
      endif
      let s:ln = s:ln + 1
    endwhile
  endif
endif

" Define the appropriate indent function but only once
if (b:fortran_fixed_source == 1)
  setlocal indentexpr=FortranGetFixedIndent()
  if exists("*FortranGetFixedIndent")
    finish
  endif
else
  setlocal indentexpr=FortranGetFreeIndent()
  if exists("*FortranGetFreeIndent")
    finish
  endif
endif

function FortranGetIndent(lnum)
  let ind = indent(a:lnum)
  let prevline=getline(a:lnum)
  " Strip tail comment
  let prevstat=substitute(prevline, '!.*$', '', '')
  let prev2line=getline(a:lnum-1)
  let prev2stat=substitute(prev2line, '!.*$', '', '')

  "Indent do loops only if they are all guaranteed to be of do/end do type
  if exists("b:fortran_do_enddo") || exists("g:fortran_do_enddo")
    if prevstat =~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*do\>'
      let ind = ind + shiftwidth()
    endif
    if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*end\s*do\>'
      let ind = ind - shiftwidth()
    endif
  endif

  "Add a shiftwidth to statements following if, else, else if, case, class,
  "where, else where, forall, type, interface and associate statements
  if prevstat =~? '^\s*\(case\|class\|else\|else\s*if\|else\s*where\)\>'
	\ ||prevstat=~? '^\s*\(type\|interface\|associate\|enum\)\>'
	\ ||prevstat=~?'^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*\(forall\|where\|block\)\>'
	\ ||prevstat=~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*if\>'
     let ind = ind + shiftwidth()
    " Remove unwanted indent after logical and arithmetic ifs
    if prevstat =~? '\<if\>' && prevstat !~? '\<then\>'
      let ind = ind - shiftwidth()
    endif
    " Remove unwanted indent after type( statements
    if prevstat =~? '^\s*type\s*('
      let ind = ind - shiftwidth()
    endif
  endif

  "Indent program units unless instructed otherwise
  if !exists("b:fortran_indent_less") && !exists("g:fortran_indent_less")
    let prefix='\(\(pure\|impure\|elemental\|recursive\)\s\+\)\{,2}'
    let type='\(\(integer\|real\|double\s\+precision\|complex\|logical'
          \.'\|character\|type\|class\)\s*\S*\s\+\)\='
    if prevstat =~? '^\s*\(contains\|submodule\|program\)\>'
            \ ||prevstat =~? '^\s*'.'module\>\(\s*\procedure\)\@!'
            \ ||prevstat =~? '^\s*'.prefix.'subroutine\>'
            \ ||prevstat =~? '^\s*'.prefix.type.'function\>'
            \ ||prevstat =~? '^\s*'.type.prefix.'function\>'
      let ind = ind + shiftwidth()
    endif
    if getline(v:lnum) =~? '^\s*contains\>'
          \ ||getline(v:lnum)=~? '^\s*end\s*'
          \ .'\(function\|subroutine\|module\|submodule\|program\)\>'
      let ind = ind - shiftwidth()
    endif
  endif

  "Subtract a shiftwidth from else, else if, elsewhere, case, class, end if,
  " end where, end select, end forall, end interface, end associate,
  " end enum, end type, end block and end type statements
  if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*'
        \. '\(else\|else\s*if\|else\s*where\|case\|class\|'
        \. 'end\s*\(if\|where\|select\|interface\|'
        \. 'type\|forall\|associate\|enum\|block\)\)\>'
    let ind = ind - shiftwidth()
    " Fix indent for case statement immediately after select
    if prevstat =~? '\<select\s\+\(case\|type\)\>'
      let ind = ind + shiftwidth()
    endif
  endif

  "First continuation line
  if prevstat =~ '&\s*$' && prev2stat !~ '&\s*$'
    let ind = ind + shiftwidth()
  endif
  "Line after last continuation line
  if prevstat !~ '&\s*$' && prev2stat =~ '&\s*$' && prevstat !~? '\<then\>'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction

function FortranGetFreeIndent()
  "Find the previous non-blank line
  let lnum = prevnonblank(v:lnum - 1)

  "Use zero indent at the top of the file
  if lnum == 0
    return 0
  endif

  let ind=FortranGetIndent(lnum)
  return ind
endfunction

function FortranGetFixedIndent()
  let currline=getline(v:lnum)
  "Don't indent comments, continuation lines and labelled lines
  if strpart(currline,0,6) =~ '[^ \t]'
    let ind = indent(v:lnum)
    return ind
  endif

  "Find the previous line which is not blank, not a comment,
  "not a continuation line, and does not have a label
  let lnum = v:lnum - 1
  while lnum > 0
    let prevline=getline(lnum)
    if (prevline =~ "^[C*!]") || (prevline =~ "^\s*$")
	\ || (strpart(prevline,5,1) !~ "[ 0]")
      " Skip comments, blank lines and continuation lines
      let lnum = lnum - 1
    else
      let test=strpart(prevline,0,5)
      if test =~ "[0-9]"
	" Skip lines with statement numbers
	let lnum = lnum - 1
      else
	break
      endif
    endif
  endwhile

  "First line must begin at column 7
  if lnum == 0
    return 6
  endif

  let ind=FortranGetIndent(lnum)
  return ind
endfunction

let &cpoptions=s:cposet
unlet s:cposet

" vim:sw=2 tw=130
PK�j�Z|�g\00vim80/indent/framescript.vimnu�[���" Vim indent file
" Language:             FrameScript
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-19

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetFrameScriptIndent()
setlocal indentkeys=!^F,o,O,0=~Else,0=~EndIf,0=~EndLoop,0=~EndSub
setlocal nosmartindent

if exists("*GetFrameScriptIndent")
  finish
endif

function GetFrameScriptIndent()
  let lnum = prevnonblank(v:lnum - 1)

  if lnum == 0
    return 0
  endif

  if getline(v:lnum) =~ '^\s*\*'
    return cindent(v:lnum)
  endif

  let ind = indent(lnum)

  if getline(lnum) =~? '^\s*\%(If\|Loop\|Sub\)'
    let ind = ind + shiftwidth()
  endif

  if getline(v:lnum) =~? '^\s*\%(Else\|End\%(If\|Loop\|Sub\)\)'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction
PK�j�ZC>�vim80/indent/pascal.vimnu�[���" Vim indent file
" Language:    Pascal
" Maintainer:  Neil Carter <n.carter@swansea.ac.uk>
" Created:     2004 Jul 13
" Last Change: 2017 Jun 13
"
" This is version 2.0, a complete rewrite.
"
" For further documentation, see http://psy.swansea.ac.uk/staff/carter/vim/


if exists("b:did_indent")
	finish
endif
let b:did_indent = 1

setlocal indentexpr=GetPascalIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+==end;,==const,==type,==var,==begin,==repeat,==until,==for
setlocal indentkeys+==program,==function,==procedure,==object,==private
setlocal indentkeys+==record,==if,==else,==case

if exists("*GetPascalIndent")
	finish
endif


function! s:GetPrevNonCommentLineNum( line_num )

	" Skip lines starting with a comment
	let SKIP_LINES = '^\s*\(\((\*\)\|\(\*\ \)\|\(\*)\)\|{\|}\)'

	let nline = a:line_num
	while nline > 0
		let nline = prevnonblank(nline-1)
		if getline(nline) !~? SKIP_LINES
			break
		endif
	endwhile

	return nline
endfunction


function! s:PurifyCode( line_num )
	" Strip any trailing comments and whitespace
	let pureline = 'TODO'
	return pureline
endfunction


function! GetPascalIndent( line_num )

	" Line 0 always goes at column 0
	if a:line_num == 0
		return 0
	endif

	let this_codeline = getline( a:line_num )


	" SAME INDENT

	" Middle of a three-part comment
	if this_codeline =~ '^\s*\*'
		return indent( a:line_num - 1)
	endif


	" COLUMN 1 ALWAYS

	" Last line of the program
	if this_codeline =~ '^\s*end\.'
		return 0
	endif

	" Compiler directives, allowing "(*" and "{"
	"if this_codeline =~ '^\s*\({\|(\*\)$\(IFDEF\|IFNDEF\|ELSE\|ENDIF\)'
	if this_codeline =~ '^\s*\({\|(\*\)\$'
		return 0
	endif

	" section headers
	if this_codeline =~ '^\s*\(program\|procedure\|function\|type\)\>'
		return 0
	endif

	" Subroutine separators, lines ending with "const" or "var"
	if this_codeline =~ '^\s*\((\*\ _\+\ \*)\|\(const\|var\)\)$'
		return 0
	endif


	" OTHERWISE, WE NEED TO LOOK FURTHER BACK...

	let prev_codeline_num = s:GetPrevNonCommentLineNum( a:line_num )
	let prev_codeline = getline( prev_codeline_num )
	let indnt = indent( prev_codeline_num )


	" INCREASE INDENT

	" If the PREVIOUS LINE ended in these items, always indent
	if prev_codeline =~ '\<\(type\|const\|var\)$'
		return indnt + shiftwidth()
	endif

	if prev_codeline =~ '\<repeat$'
		if this_codeline !~ '^\s*until\>'
			return indnt + shiftwidth()
		else
			return indnt
		endif
	endif

	if prev_codeline =~ '\<\(begin\|record\)$'
		if this_codeline !~ '^\s*end\>'
			return indnt + shiftwidth()
		else
			return indnt
		endif
	endif

	" If the PREVIOUS LINE ended with these items, indent if not
	" followed by "begin"
	if prev_codeline =~ '\<\(\|else\|then\|do\)$' || prev_codeline =~ ':$'
		if this_codeline !~ '^\s*begin\>'
			return indnt + shiftwidth()
		else
			" If it does start with "begin" then keep the same indent
			"return indnt + shiftwidth()
			return indnt
		endif
	endif

	" Inside a parameter list (i.e. a "(" without a ")"). ???? Considers
	" only the line before the current one. TODO: Get it working for
	" parameter lists longer than two lines.
	if prev_codeline =~ '([^)]\+$'
		return indnt + shiftwidth()
	endif


	" DECREASE INDENT

	" Lines starting with "else", but not following line ending with
	" "end".
	if this_codeline =~ '^\s*else\>' && prev_codeline !~ '\<end$'
		return indnt - shiftwidth()
	endif

	" Lines after a single-statement branch/loop.
	" Two lines before ended in "then", "else", or "do"
	" Previous line didn't end in "begin"
	let prev2_codeline_num = s:GetPrevNonCommentLineNum( prev_codeline_num )
	let prev2_codeline = getline( prev2_codeline_num )
	if prev2_codeline =~ '\<\(then\|else\|do\)$' && prev_codeline !~ '\<begin$'
		" If the next code line after a single statement branch/loop
		" starts with "end", "except" or "finally", we need an
		" additional unindentation.
		if this_codeline =~ '^\s*\(end;\|except\|finally\|\)$'
			" Note that we don't return from here.
			return indnt - 2 * shiftwidth()
		endif
		return indnt - shiftwidth()
	endif

	" Lines starting with "until" or "end". This rule must be overridden
	" by the one for "end" after a single-statement branch/loop. In
	" other words that rule should come before this one.
	if this_codeline =~ '^\s*\(end\|until\)\>'
		return indnt - shiftwidth()
	endif


	" MISCELLANEOUS THINGS TO CATCH

	" Most "begin"s will have been handled by now. Any remaining
	" "begin"s on their own line should go in column 1.
	if this_codeline =~ '^\s*begin$'
		return 0
	endif


" ____________________________________________________________________
" Object/Borland Pascal/Delphi Extensions
"
" Note that extended-pascal is handled here, unless it is simpler to
" handle them in the standard-pascal section above.


	" COLUMN 1 ALWAYS

	" section headers at start of line.
	if this_codeline =~ '^\s*\(interface\|implementation\|uses\|unit\)\>'
		return 0
	endif


	" INDENT ONCE

	" If the PREVIOUS LINE ended in these items, always indent.
	if prev_codeline =~ '^\s*\(unit\|uses\|try\|except\|finally\|private\|protected\|public\|published\)$'
		return indnt + shiftwidth()
	endif

	" ???? Indent "procedure" and "functions" if they appear within an
	" class/object definition. But that means overriding standard-pascal
	" rule where these words always go in column 1.


	" UNINDENT ONCE

	if this_codeline =~ '^\s*\(except\|finally\)$'
		return indnt - shiftwidth()
	endif

	if this_codeline =~ '^\s*\(private\|protected\|public\|published\)$'
		return indnt - shiftwidth()
	endif


" ____________________________________________________________________

	" If nothing changed, return same indent.
	return indnt
endfunction

PK�j�Z
A���vim80/indent/context.vimnu�[���" ConTeXt indent file
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change:  2016 Oct 15

if exists("b:did_indent")
  finish
endif

if !get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
  finish
endif

" Load MetaPost indentation script
runtime! indent/mp.vim

let s:keepcpo= &cpo
set cpo&vim

setlocal indentexpr=GetConTeXtIndent()

let b:undo_indent = "setl indentexpr<"

function! GetConTeXtIndent()
  " Use MetaPost rules inside MetaPost graphic environments
  if len(synstack(v:lnum, 1)) > 0 &&
        \ synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic'
    return GetMetaPostIndent()
  endif
  return -1
endfunc

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:sw=2
PK�j�Z�b 		vim80/indent/aap.vimnu�[���" Vim indent file
" Language:	Aap recipe
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2005 Jun 24

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Works mostly like Python.
runtime! indent/python.vim
PK�j�Z~=

vim80/indent/xhtml.vimnu�[���" Vim indent file
" Language:	XHTML
" Maintainer:	Bram Moolenaar <Bram@vim.org> (for now)
" Last Change:	2005 Jun 24

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Handled like HTML for now.
runtime! indent/html.vim
PK�j�Z;�y�#�#vim80/indent/ocaml.vimnu�[���" Vim indent file
" Language:     OCaml
" Maintainers:  Jean-Francois Yuen   <jfyuen@happycoders.org>
"               Mike Leary           <leary@nwlink.com>
"               Markus Mottl         <markus.mottl@gmail.com>
" URL:          http://www.ocaml.info/vim/indent/ocaml.vim
" Last Change:  2017 Jun 13
"               2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
"               2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
"               2013 June   - commented textwidth (Marc Weber)
"
" Marc Weber's comment: This file may contain a lot of (very custom) stuff
" which eventually should be moved somewhere else ..

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
 finish
endif
let b:did_indent = 1

setlocal expandtab
setlocal indentexpr=GetOCamlIndent()
setlocal indentkeys+=0=and,0=class,0=constraint,0=done,0=else,0=end,0=exception,0=external,0=if,0=in,0=include,0=inherit,0=initializer,0=let,0=method,0=open,0=then,0=type,0=val,0=with,0;;,0>\],0\|\],0>},0\|,0},0\],0)
setlocal nolisp
setlocal nosmartindent

" At least Marc Weber and Markus Mottl do not like this:
" setlocal textwidth=80

" Comment formatting
if !exists("no_ocaml_comments")
 if (has("comments"))
   setlocal comments=sr:(*,mb:*,ex:*)
   setlocal fo=cqort
 endif
endif

" Only define the function once.
if exists("*GetOCamlIndent")
 finish
endif

" Define some patterns:
let s:beflet = '^\s*\(initializer\|method\|try\)\|\(\<\(begin\|do\|else\|in\|then\|try\)\|->\|<-\|=\|;\|(\)\s*$'
let s:letpat = '^\s*\(let\|type\|module\|class\|open\|exception\|val\|include\|external\)\>'
let s:letlim = '\(\<\(sig\|struct\)\|;;\)\s*$'
let s:lim = '^\s*\(exception\|external\|include\|let\|module\|open\|type\|val\)\>'
let s:module = '\<\%(begin\|sig\|struct\|object\)\>'
let s:obj = '^\s*\(constraint\|inherit\|initializer\|method\|val\)\>\|\<\(object\|object\s*(.*)\)\s*$'
let s:type = '^\s*\%(class\|let\|type\)\>.*='

" Skipping pattern, for comments
function! s:GetLineWithoutFullComment(lnum)
 let lnum = prevnonblank(a:lnum - 1)
 let lline = substitute(getline(lnum), '(\*.*\*)\s*$', '', '')
 while lline =~ '^\s*$' && lnum > 0
   let lnum = prevnonblank(lnum - 1)
   let lline = substitute(getline(lnum), '(\*.*\*)\s*$', '', '')
 endwhile
 return lnum
endfunction

" Indent for ';;' to match multiple 'let'
function! s:GetInd(lnum, pat, lim)
 let llet = search(a:pat, 'bW')
 let old = indent(a:lnum)
 while llet > 0
   let old = indent(llet)
   let nb = s:GetLineWithoutFullComment(llet)
   if getline(nb) =~ a:lim
     return old
   endif
   let llet = search(a:pat, 'bW')
 endwhile
 return old
endfunction

" Indent pairs
function! s:FindPair(pstart, pmid, pend)
 call search(a:pend, 'bW')
 return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"'))
endfunction

" Indent 'let'
function! s:FindLet(pstart, pmid, pend)
 call search(a:pend, 'bW')
 return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\<in\\s*$" || getline(prevnonblank(".") - 1) =~ s:beflet'))
endfunction

function! GetOCamlIndent()
 " Find a non-commented line above the current line.
 let lnum = s:GetLineWithoutFullComment(v:lnum)

 " At the start of the file use zero indent.
 if lnum == 0
   return 0
 endif

 let ind = indent(lnum)
 let lline = substitute(getline(lnum), '(\*.*\*)\s*$', '', '')

 " Return double 'shiftwidth' after lines matching:
 if lline =~ '^\s*|.*->\s*$'
   return ind + 2 * shiftwidth()
 endif

 let line = getline(v:lnum)

 " Indent if current line begins with 'end':
 if line =~ '^\s*end\>'
   return s:FindPair(s:module, '','\<end\>')

 " Indent if current line begins with 'done' for 'do':
 elseif line =~ '^\s*done\>'
   return s:FindPair('\<do\>', '','\<done\>')

 " Indent if current line begins with '}' or '>}':
 elseif line =~ '^\s*\(\|>\)}'
   return s:FindPair('{', '','}')

 " Indent if current line begins with ']', '|]' or '>]':
 elseif line =~ '^\s*\(\||\|>\)\]'
   return s:FindPair('\[', '','\]')

 " Indent if current line begins with ')':
 elseif line =~ '^\s*)'
   return s:FindPair('(', '',')')

 " Indent if current line begins with 'let':
 elseif line =~ '^\s*let\>'
   if lline !~ s:lim . '\|' . s:letlim . '\|' . s:beflet
     return s:FindLet(s:type, '','\<let\s*$')
   endif

 " Indent if current line begins with 'class' or 'type':
 elseif line =~ '^\s*\(class\|type\)\>'
   if lline !~ s:lim . '\|\<and\s*$\|' . s:letlim
     return s:FindLet(s:type, '','\<\(class\|type\)\s*$')
   endif

 " Indent for pattern matching:
 elseif line =~ '^\s*|'
   if lline !~ '^\s*\(|[^\]]\|\(match\|type\|with\)\>\)\|\<\(function\|parser\|private\|with\)\s*$'
     call search('|', 'bW')
     return indent(searchpair('^\s*\(match\|type\)\>\|\<\(function\|parser\|private\|with\)\s*$', '', '^\s*|', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") !~ "^\\s*|.*->"'))
   endif

 " Indent if current line begins with ';;':
 elseif line =~ '^\s*;;'
   if lline !~ ';;\s*$'
     return s:GetInd(v:lnum, s:letpat, s:letlim)
   endif

 " Indent if current line begins with 'in':
 elseif line =~ '^\s*in\>'
   if lline !~ '^\s*\(let\|and\)\>'
     return s:FindPair('\<let\>', '', '\<in\>')
   endif

 " Indent if current line begins with 'else':
 elseif line =~ '^\s*else\>'
   if lline !~ '^\s*\(if\|then\)\>'
     return s:FindPair('\<if\>', '', '\<else\>')
   endif

 " Indent if current line begins with 'then':
 elseif line =~ '^\s*then\>'
   if lline !~ '^\s*\(if\|else\)\>'
     return s:FindPair('\<if\>', '', '\<then\>')
   endif

 " Indent if current line begins with 'and':
 elseif line =~ '^\s*and\>'
   if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
     return ind - shiftwidth()
   endif

 " Indent if current line begins with 'with':
 elseif line =~ '^\s*with\>'
   if lline !~ '^\s*\(match\|try\)\>'
     return s:FindPair('\<\%(match\|try\)\>', '','\<with\>')
   endif

 " Indent if current line begins with 'exception', 'external', 'include' or
 " 'open':
 elseif line =~ '^\s*\(exception\|external\|include\|open\)\>'
   if lline !~ s:lim . '\|' . s:letlim
     call search(line)
     return indent(search('^\s*\(\(exception\|external\|include\|open\|type\)\>\|val\>.*:\)', 'bW'))
   endif

 " Indent if current line begins with 'val':
 elseif line =~ '^\s*val\>'
   if lline !~ '^\s*\(exception\|external\|include\|open\)\>\|' . s:obj . '\|' . s:letlim
     return indent(search('^\s*\(\(exception\|include\|initializer\|method\|open\|type\|val\)\>\|external\>.*:\)', 'bW'))
   endif

 " Indent if current line begins with 'constraint', 'inherit', 'initializer'
 " or 'method':
 elseif line =~ '^\s*\(constraint\|inherit\|initializer\|method\)\>'
   if lline !~ s:obj
     return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + shiftwidth()
   endif

 endif

 " Add a 'shiftwidth' after lines ending with:
 if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
   let ind = ind + shiftwidth()

 " Back to normal indent after lines ending with ';;':
 elseif lline =~ ';;\s*$' && lline !~ '^\s*;;'
   let ind = s:GetInd(v:lnum, s:letpat, s:letlim)

 " Back to normal indent after lines ending with 'end':
 elseif lline =~ '\<end\s*$'
   let ind = s:FindPair(s:module, '','\<end\>')

 " Back to normal indent after lines ending with 'in':
 elseif lline =~ '\<in\s*$' && lline !~ '^\s*in\>'
   let ind = s:FindPair('\<let\>', '', '\<in\>')

 " Back to normal indent after lines ending with 'done':
 elseif lline =~ '\<done\s*$'
   let ind = s:FindPair('\<do\>', '','\<done\>')

 " Back to normal indent after lines ending with '}' or '>}':
 elseif lline =~ '\(\|>\)}\s*$'
   let ind = s:FindPair('{', '','}')

 " Back to normal indent after lines ending with ']', '|]' or '>]':
 elseif lline =~ '\(\||\|>\)\]\s*$'
   let ind = s:FindPair('\[', '','\]')

 " Back to normal indent after comments:
 elseif lline =~ '\*)\s*$'
   call search('\*)', 'bW')
   let ind = indent(searchpair('(\*', '', '\*)', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"'))

 " Back to normal indent after lines ending with ')':
 elseif lline =~ ')\s*$'
   let ind = s:FindPair('(', '',')')

 " If this is a multiline comment then align '*':
 elseif lline =~ '^\s*(\*' && line =~ '^\s*\*'
   let ind = ind + 1

 else
 " Don't change indentation of this line
 " for new lines (indent==0) use indentation of previous line

 " This is for preventing removing indentation of these args:
 "   let f x =
 "     let y = x + 1 in
 "     Printf.printf
 "       "o"           << here
 "       "oeuth"       << don't touch indentation

   let i = indent(v:lnum)
   return i == 0 ? ind : i

 endif

 " Subtract a 'shiftwidth' after lines matching 'match ... with parser':
 if lline =~ '\<match\>.*\<with\>\s*\<parser\s*$'
   let ind = ind - shiftwidth()
 endif

 return ind

endfunction

" vim:sw=2
PK�j�Z�-+��vim80/indent/matlab.vimnu�[���" Matlab indent file
" Language:	Matlab
" Maintainer:	Christophe Poucet <christophe.poucet@pandora.be>
" Last Change:	6 January, 2001

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

" Some preliminary setting
setlocal indentkeys=!,o,O=end,=case,=else,=elseif,=otherwise,=catch


setlocal indentexpr=GetMatlabIndent(v:lnum)

" Only define the function once.
if exists("*GetMatlabIndent")
  finish
endif

function GetMatlabIndent(lnum)
  " Give up if this line is explicitly joined.
  if getline(a:lnum - 1) =~ '\\$'
    return -1
  endif

  " Search backwards for the first non-empty line.
  let plnum = a:lnum - 1
  while plnum > 0 && getline(plnum) =~ '^\s*$'
    let plnum = plnum - 1
  endwhile

  if plnum == 0
    " This is the first non-empty line, use zero indent.
    return 0
  endif

  let curind = indent(plnum)

  " If the current line is a stop-block statement...
  if getline(v:lnum) =~ '^\s*\(end\|else\|elseif\|case\|otherwise\|catch\)\>'
    " See if this line does not follow the line right after an openblock
    if getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
    " See if the user has already dedented
    elseif indent(v:lnum) > curind - shiftwidth()
      " If not, recommend one dedent
	let curind = curind - shiftwidth()
    else
      " Otherwise, trust the user
      return -1
    endif
"  endif

  " If the previous line opened a block
  elseif getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
    " See if the user has already indented
    if indent(v:lnum) < curind + shiftwidth()
      "If not, recommend indent
      let curind = curind + shiftwidth()
    else
      " Otherwise, trust the user
      return -1
    endif
  endif



  " If we got to here, it means that the user takes the standardversion, so we return it
  return curind
endfunction

" vim:sw=2
PK�j�Z��Q��vim80/indent/java.vimnu�[���" Vim indent file
" Language:	Java
" Previous Maintainer: Toby Allsopp <toby.allsopp@peace.com>
" Current Maintainer: Hong Xu <hong@topbug.net>
" Homepage: http://www.vim.org/scripts/script.php?script_id=3899
"           https://github.com/xuhdev/indent-java.vim
" Last Change:	2016 Mar 7
" Version: 1.1
" License: Same as Vim.
" Copyright (c) 2012-2016 Hong Xu
" Before 2012, this file was maintained by Toby Allsopp.

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

" Indent Java anonymous classes correctly.
setlocal cindent cinoptions& cinoptions+=j1

" The "extends" and "implements" lines start off with the wrong indent.
setlocal indentkeys& indentkeys+=0=extends indentkeys+=0=implements

" Set the function to do the work.
setlocal indentexpr=GetJavaIndent()

let b:undo_indent = "set cin< cino< indentkeys< indentexpr<"

" Only define the function once.
if exists("*GetJavaIndent")
  finish
endif

let s:keepcpo= &cpo
set cpo&vim

function! SkipJavaBlanksAndComments(startline)
  let lnum = a:startline
  while lnum > 1
    let lnum = prevnonblank(lnum)
    if getline(lnum) =~ '\*/\s*$'
      while getline(lnum) !~ '/\*' && lnum > 1
        let lnum = lnum - 1
      endwhile
      if getline(lnum) =~ '^\s*/\*'
        let lnum = lnum - 1
      else
        break
      endif
    elseif getline(lnum) =~ '^\s*//'
      let lnum = lnum - 1
    else
      break
    endif
  endwhile
  return lnum
endfunction

function GetJavaIndent()

  " Java is just like C; use the built-in C indenting and then correct a few
  " specific cases.
  let theIndent = cindent(v:lnum)

  " If we're in the middle of a comment then just trust cindent
  if getline(v:lnum) =~ '^\s*\*'
    return theIndent
  endif

  " find start of previous line, in case it was a continuation line
  let lnum = SkipJavaBlanksAndComments(v:lnum - 1)

  " If the previous line starts with '@', we should have the same indent as
  " the previous one
  if getline(lnum) =~ '^\s*@.*$'
    return indent(lnum)
  endif

  let prev = lnum
  while prev > 1
    let next_prev = SkipJavaBlanksAndComments(prev - 1)
    if getline(next_prev) !~ ',\s*$'
      break
    endif
    let prev = next_prev
  endwhile

  " Try to align "throws" lines for methods and "extends" and "implements" for
  " classes.
  if getline(v:lnum) =~ '^\s*\(throws\|extends\|implements\)\>'
        \ && getline(lnum) !~ '^\s*\(throws\|extends\|implements\)\>'
    let theIndent = theIndent + shiftwidth()
  endif

  " correct for continuation lines of "throws", "implements" and "extends"
  let cont_kw = matchstr(getline(prev),
        \ '^\s*\zs\(throws\|implements\|extends\)\>\ze.*,\s*$')
  if strlen(cont_kw) > 0
    let amount = strlen(cont_kw) + 1
    if getline(lnum) !~ ',\s*$'
      let theIndent = theIndent - (amount + shiftwidth())
      if theIndent < 0
        let theIndent = 0
      endif
    elseif prev == lnum
      let theIndent = theIndent + amount
      if cont_kw ==# 'throws'
        let theIndent = theIndent + shiftwidth()
      endif
    endif
  elseif getline(prev) =~ '^\s*\(throws\|implements\|extends\)\>'
        \ && (getline(prev) =~ '{\s*$'
        \  || getline(v:lnum) =~ '^\s*{\s*$')
    let theIndent = theIndent - shiftwidth()
  endif

  " When the line starts with a }, try aligning it with the matching {,
  " skipping over "throws", "extends" and "implements" clauses.
  if getline(v:lnum) =~ '^\s*}\s*\(//.*\|/\*.*\)\=$'
    call cursor(v:lnum, 1)
    silent normal! %
    let lnum = line('.')
    if lnum < v:lnum
      while lnum > 1
        let next_lnum = SkipJavaBlanksAndComments(lnum - 1)
        if getline(lnum) !~ '^\s*\(throws\|extends\|implements\)\>'
              \ && getline(next_lnum) !~ ',\s*$'
          break
        endif
        let lnum = prevnonblank(next_lnum)
      endwhile
      return indent(lnum)
    endif
  endif

  " Below a line starting with "}" never indent more.  Needed for a method
  " below a method with an indented "throws" clause.
  let lnum = SkipJavaBlanksAndComments(v:lnum - 1)
  if getline(lnum) =~ '^\s*}\s*\(//.*\|/\*.*\)\=$' && indent(lnum) < theIndent
    let theIndent = indent(lnum)
  endif

  return theIndent
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo

" vi: sw=2 et
PK�j�Z\��PPvim80/indent/docbk.vimnu�[���" Vim indent file
" Language:    	    DocBook Documentation Format
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:did_indent")
  finish
endif

" Same as XML indenting for now.
runtime! indent/xml.vim

if exists('*XmlIndentGet')
  setlocal indentexpr=XmlIndentGet(v:lnum,0)
endif
PK�j�Z�=�``vim80/indent/zimbu.vimnu�[���" Vim indent file
" Language:	Zimbu
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2016 Jan 25

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

setlocal ai nolisp nocin
setlocal indentexpr=GetZimbuIndent(v:lnum)
setlocal indentkeys=0{,0},!^F,o,O,0=ELSE,0=ELSEIF,0=CASE,0=DEFAULT,0=FINALLY

" We impose recommended defaults: no Tabs, 'shiftwidth' = 2
setlocal sw=2 et

let b:undo_indent = "setl et< sw< ai< indentkeys< indentexpr="

" Only define the function once.
if exists("*GetZimbuIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Come here when loading the script the first time.

let s:maxoff = 50	" maximum number of lines to look backwards for ()

func GetZimbuIndent(lnum)
  let prevLnum = prevnonblank(a:lnum - 1)
  if prevLnum == 0
    " This is the first non-empty line, use zero indent.
    return 0
  endif

  " Taken from Python indenting:
  " If the previous line is inside parenthesis, use the indent of the starting
  " line.
  " Trick: use the non-existing "dummy" variable to break out of the loop when
  " going too far back.
  call cursor(prevLnum, 1)
  let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
	  \ "line('.') < " . (prevLnum - s:maxoff) . " ? dummy :"
	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
	  \ . " =~ '\\(Comment\\|String\\|Char\\)$'")
  if parlnum > 0
    let plindent = indent(parlnum)
    let plnumstart = parlnum
  else
    let plindent = indent(prevLnum)
    let plnumstart = prevLnum
  endif


  " When inside parenthesis: If at the first line below the parenthesis add
  " two 'shiftwidth', otherwise same as previous line.
  " i = (a
  "       + b
  "       + c)
  call cursor(a:lnum, 1)
  let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
	  \ . " =~ '\\(Comment\\|String\\|Char\\)$'")
  if p > 0
    if p == prevLnum
      " When the start is inside parenthesis, only indent one 'shiftwidth'.
      let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
	  \ . " =~ '\\(Comment\\|String\\|Char\\)$'")
      if pp > 0
	return indent(prevLnum) + shiftwidth()
      endif
      return indent(prevLnum) + shiftwidth() * 2
    endif
    if plnumstart == p
      return indent(prevLnum)
    endif
    return plindent
  endif

  let prevline = getline(prevLnum)
  let thisline = getline(a:lnum)

  " If this line is not a comment and the previous one is then move the
  " previous line further back.
  if thisline !~ '^\s*#'
    while prevline =~ '^\s*#'
      let prevLnum = prevnonblank(prevLnum - 1)
      if prevLnum == 0
	" Only comment lines before this, no indent
	return 0
      endif
      let prevline = getline(prevLnum)
      let plindent = indent(prevLnum)
    endwhile
  endif

  if prevline =~ '^\s*\(IF\|\|ELSEIF\|ELSE\|GENERATE_IF\|\|GENERATE_ELSEIF\|GENERATE_ELSE\|WHILE\|REPEAT\|TRY\|CATCH\|FINALLY\|FOR\|DO\|SWITCH\|CASE\|DEFAULT\|FUNC\|VIRTUAL\|ABSTRACT\|DEFINE\|REPLACE\|FINAL\|PROC\|MAIN\|NEW\|ENUM\|CLASS\|INTERFACE\|BITS\|MODULE\|SHARED\)\>'
    let plindent += shiftwidth()
  endif
  if thisline =~ '^\s*\(}\|ELSEIF\>\|ELSE\>\|CATCH\|FINALLY\|GENERATE_ELSEIF\>\|GENERATE_ELSE\>\|UNTIL\>\)'
    let plindent -= shiftwidth()
  endif
  if thisline =~ '^\s*\(CASE\>\|DEFAULT\>\)' && prevline !~ '^\s*SWITCH\>'
    let plindent -= shiftwidth()
  endif

  " line up continued comment that started after some code
  "   String something   # comment comment
  "                      # comment
  if a:lnum == prevLnum + 1 && thisline =~ '^\s*#' && prevline !~ '^\s*#'
    let n = match(prevline, '#')
    if n > 1
      let plindent = n
    endif
  endif

  return plindent
endfunc

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z|1���vim80/indent/xinetd.vimnu�[���" Vim indent file
" Language:             xinetd.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetXinetdIndent()
setlocal indentkeys=0{,0},!^F,o,O
setlocal nosmartindent

if exists("*GetXinetdIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

function s:count_braces(lnum, count_open)
  let n_open = 0
  let n_close = 0
  let line = getline(a:lnum)
  let pattern = '[{}]'
  let i = match(line, pattern)
  while i != -1
    if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'ld\%(Comment\|String\)'
      if line[i] == '{'
        let n_open += 1
      elseif line[i] == '}'
        if n_open > 0
          let n_open -= 1
        else
          let n_close += 1
        endif
      endif
    endif
    let i = match(line, pattern, i + 1)
  endwhile
  return a:count_open ? n_open : n_close
endfunction

function GetXinetdIndent()
  let pnum = prevnonblank(v:lnum - 1)
  if pnum == 0
    return 0
  endif

  return indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()
        \ - s:count_braces(v:lnum, 0) * shiftwidth()
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z.�uddvim80/indent/hog.vimnu�[���" Vim indent file
" Language:     hog (Snort.conf)
" Maintainer:   Victor Roemer, <vroemer@badsec.org>
" Last Change:  Mar 7, 2013

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1
let b:undo_indent = 'setlocal smartindent< indentexpr< indentkeys<'

setlocal nosmartindent
setlocal indentexpr=GetHogIndent()
setlocal indentkeys+=!^F,o,O,0#

" Only define the function once.
if exists("*GetHogIndent")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

let s:syn_blocks = '\<SnortRuleTypeBody\>'

function s:IsInBlock(lnum)
    return synIDattr(synID(a:lnum, 1, 1), 'name') =~ s:syn_blocks 
endfunction

function GetHogIndent()
    let prevlnum = prevnonblank(v:lnum-1)

    " Comment blocks have identical indent
    if getline(v:lnum) =~ '^\s*#' && getline(prevlnum) =~ '^\s*#'
            return indent(prevlnum)
    endif

    " Ignore comment lines when calculating indent
    while getline(prevlnum) =~ '^\s*#'
        let prevlnum = prevnonblank(prevlnum-1)
        if !prevlnum
            return previndent
        endif
    endwhile

    " Continuation of a line that wasn't indented
    let prevline = getline(prevlnum)
    if prevline =~ '^\k\+.*\\\s*$'
        return shiftwidth() 
    endif

    " Continuation of a line that was indented
    if prevline =~ '\k\+.*\\\s*$'
        return indent(prevlnum)
    endif

    " Indent the next line if previous line contained a start of a block
    " definition ('{' or '(').
    if prevline =~ '^\k\+[^#]*{}\@!\s*$' " TODO || prevline =~ '^\k\+[^#]*()\@!\s*$'
        return shiftwidth()
    endif

    " Match inside of a block
    if s:IsInBlock(v:lnum)
        if prevline =~ "^\k\+.*$"
            return shiftwidth()
        else
            return indent(prevlnum)
        endif
    endif

    return 0 
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��1���vim80/indent/html.vimnu�[���" Vim indent script for HTML
" Header: "{{{
" Maintainer:	Bram Moolenaar
" Original Author: Andy Wokula <anwoku@yahoo.de>
" Last Change:	2018 Mar 28
" Version:	1.0
" Description:	HTML indent script with cached state for faster indenting on a
"		range of lines.
"		Supports template systems through hooks.
"		Supports Closure stylesheets.
"
" Credits:
"	indent/html.vim (2006 Jun 05) from J. Zellner
"	indent/css.vim (2006 Dec 20) from N. Weibull
"
" History:
" 2014 June	(v1.0) overhaul (Bram)
" 2012 Oct 21	(v0.9) added support for shiftwidth()
" 2011 Sep 09	(v0.8) added HTML5 tags (thx to J. Zuckerman)
" 2008 Apr 28	(v0.6) revised customization
" 2008 Mar 09	(v0.5) fixed 'indk' issue (thx to C.J. Robinson)
"}}}

" Init Folklore, check user settings (2nd time ++)
if exists("b:did_indent") "{{{
  finish
endif

" Load the Javascript indent script first, it defines GetJavascriptIndent().
" Undo the rest.
" Load base python indent.
if !exists('*GetJavascriptIndent')
  runtime! indent/javascript.vim
endif
let b:did_indent = 1

setlocal indentexpr=HtmlIndent()
setlocal indentkeys=o,O,<Return>,<>>,{,},!^F

" Needed for % to work when finding start/end of a tag.
setlocal matchpairs+=<:>

let b:undo_indent = "setlocal inde< indk<"

" b:hi_indent keeps state to speed up indenting consecutive lines.
let b:hi_indent = {"lnum": -1}

"""""" Code below this is loaded only once. """""
if exists("*HtmlIndent") && !exists('g:force_reload_html')
  call HtmlIndent_CheckUserSettings()
  finish
endif

" Allow for line continuation below.
let s:cpo_save = &cpo
set cpo-=C
"}}}

" Pattern to match the name of a tag, including custom elements.
let s:tagname = '\w\+\(-\w\+\)*'

" Check and process settings from b:html_indent and g:html_indent... variables.
" Prefer using buffer-local settings over global settings, so that there can
" be defaults for all HTML files and exceptions for specific types of HTML
" files.
func! HtmlIndent_CheckUserSettings()
  "{{{
  let inctags = ''
  if exists("b:html_indent_inctags")
    let inctags = b:html_indent_inctags
  elseif exists("g:html_indent_inctags")
    let inctags = g:html_indent_inctags
  endif
  let b:hi_tags = {}
  if len(inctags) > 0
    call s:AddITags(b:hi_tags, split(inctags, ","))
  endif

  let autotags = ''
  if exists("b:html_indent_autotags")
    let autotags = b:html_indent_autotags
  elseif exists("g:html_indent_autotags")
    let autotags = g:html_indent_autotags
  endif
  let b:hi_removed_tags = {}
  if len(autotags) > 0
    call s:RemoveITags(b:hi_removed_tags, split(autotags, ","))
  endif

  " Syntax names indicating being inside a string of an attribute value.
  let string_names = []
  if exists("b:html_indent_string_names")
    let string_names = b:html_indent_string_names
  elseif exists("g:html_indent_string_names")
    let string_names = g:html_indent_string_names
  endif
  let b:hi_insideStringNames = ['htmlString']
  if len(string_names) > 0
    for s in string_names
      call add(b:hi_insideStringNames, s)
    endfor
  endif

  " Syntax names indicating being inside a tag.
  let tag_names = []
  if exists("b:html_indent_tag_names")
    let tag_names = b:html_indent_tag_names
  elseif exists("g:html_indent_tag_names")
    let tag_names = g:html_indent_tag_names
  endif
  let b:hi_insideTagNames = ['htmlTag', 'htmlScriptTag']
  if len(tag_names) > 0
    for s in tag_names
      call add(b:hi_insideTagNames, s)
    endfor
  endif

  let indone = {"zero": 0
              \,"auto": "indent(prevnonblank(v:lnum-1))"
              \,"inc": "b:hi_indent.blocktagind + shiftwidth()"}

  let script1 = ''
  if exists("b:html_indent_script1")
    let script1 = b:html_indent_script1
  elseif exists("g:html_indent_script1")
    let script1 = g:html_indent_script1
  endif
  if len(script1) > 0
    let b:hi_js1indent = get(indone, script1, indone.zero)
  else
    let b:hi_js1indent = 0
  endif

  let style1 = ''
  if exists("b:html_indent_style1")
    let style1 = b:html_indent_style1
  elseif exists("g:html_indent_style1")
    let style1 = g:html_indent_style1
  endif
  if len(style1) > 0
    let b:hi_css1indent = get(indone, style1, indone.zero)
  else
    let b:hi_css1indent = 0
  endif

  if !exists('b:html_indent_line_limit')
    if exists('g:html_indent_line_limit')
      let b:html_indent_line_limit = g:html_indent_line_limit
    else
      let b:html_indent_line_limit = 200
    endif
  endif
endfunc "}}}

" Init Script Vars
"{{{
let b:hi_lasttick = 0
let b:hi_newstate = {}
let s:countonly = 0
 "}}}

" Fill the s:indent_tags dict with known tags.
" The key is "tagname" or "/tagname".  {{{
" The value is:
" 1   opening tag
" 2   "pre"
" 3   "script"
" 4   "style"
" 5   comment start
" 6   conditional comment start
" -1  closing tag
" -2  "/pre"
" -3  "/script"
" -4  "/style"
" -5  comment end
" -6  conditional comment end
let s:indent_tags = {}
let s:endtags = [0,0,0,0,0,0,0]   " long enough for the highest index
"}}}

" Add a list of tag names for a pair of <tag> </tag> to "tags".
func! s:AddITags(tags, taglist)
  "{{{
  for itag in a:taglist
    let a:tags[itag] = 1
    let a:tags['/' . itag] = -1
  endfor
endfunc "}}}

" Take a list of tag name pairs that are not to be used as tag pairs.
func! s:RemoveITags(tags, taglist)
  "{{{
  for itag in a:taglist
    let a:tags[itag] = 1
    let a:tags['/' . itag] = 1
  endfor
endfunc "}}}

" Add a block tag, that is a tag with a different kind of indenting.
func! s:AddBlockTag(tag, id, ...)
  "{{{
  if !(a:id >= 2 && a:id < len(s:endtags))
    echoerr 'AddBlockTag ' . a:id
    return
  endif
  let s:indent_tags[a:tag] = a:id
  if a:0 == 0
    let s:indent_tags['/' . a:tag] = -a:id
    let s:endtags[a:id] = "</" . a:tag . ">"
  else
    let s:indent_tags[a:1] = -a:id
    let s:endtags[a:id] = a:1
  endif
endfunc "}}}

" Add known tag pairs.
" Self-closing tags and tags that are sometimes {{{
" self-closing (e.g., <p>) are not here (when encountering </p> we can find
" the matching <p>, but not the other way around).  Known self-closing tags:
" 'p', 'img', 'source'.
" Old HTML tags:
call s:AddITags(s:indent_tags, [
    \ 'a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big',
    \ 'blockquote', 'body', 'button', 'caption', 'center', 'cite', 'code',
    \ 'colgroup', 'del', 'dfn', 'dir', 'div', 'dl', 'em', 'fieldset', 'font',
    \ 'form', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'html',
    \ 'i', 'iframe', 'ins', 'kbd', 'label', 'legend', 'li',
    \ 'map', 'menu', 'noframes', 'noscript', 'object', 'ol',
    \ 'optgroup', 'q', 's', 'samp', 'select', 'small', 'span', 'strong', 'sub',
    \ 'sup', 'table', 'textarea', 'title', 'tt', 'u', 'ul', 'var', 'th', 'td',
    \ 'tr', 'tbody', 'tfoot', 'thead'])

" New HTML5 elements:
call s:AddITags(s:indent_tags, [
    \ 'area', 'article', 'aside', 'audio', 'bdi', 'canvas',
    \ 'command', 'data', 'datalist', 'details', 'embed', 'figcaption',
    \ 'figure', 'footer', 'header', 'keygen', 'main', 'mark', 'meter',
    \ 'nav', 'output', 'picture', 'progress', 'rp', 'rt', 'ruby', 'section',
    \ 'summary', 'svg', 'time', 'track', 'video', 'wbr'])

" Tags added for web components:
call s:AddITags(s:indent_tags, [
    \ 'content', 'shadow', 'template'])
"}}}

" Add Block Tags: these contain alien content
"{{{
call s:AddBlockTag('pre', 2)
call s:AddBlockTag('script', 3)
call s:AddBlockTag('style', 4)
call s:AddBlockTag('<!--', 5, '-->')
call s:AddBlockTag('<!--[', 6, '![endif]-->')
"}}}

" Return non-zero when "tagname" is an opening tag, not being a block tag, for
" which there should be a closing tag.  Can be used by scripts that include
" HTML indenting.
func! HtmlIndent_IsOpenTag(tagname)
  "{{{
  if get(s:indent_tags, a:tagname) == 1
    return 1
  endif
  return get(b:hi_tags, a:tagname) == 1
endfunc "}}}

" Get the value for "tagname", taking care of buffer-local tags.
func! s:get_tag(tagname)
  "{{{
  let i = get(s:indent_tags, a:tagname)
  if (i == 1 || i == -1) && get(b:hi_removed_tags, a:tagname) != 0
    return 0
  endif
  if i == 0
    let i = get(b:hi_tags, a:tagname)
  endif
  return i
endfunc "}}}

" Count the number of start and end tags in "text".
func! s:CountITags(text)
  "{{{
  " Store the result in s:curind and s:nextrel.
  let s:curind = 0  " relative indent steps for current line [unit &sw]:
  let s:nextrel = 0  " relative indent steps for next line [unit &sw]:
  let s:block = 0		" assume starting outside of a block
  let s:countonly = 1	" don't change state
  call substitute(a:text, '<\zs/\=' . s:tagname . '\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
  let s:countonly = 0
endfunc "}}}

" Count the number of start and end tags in text.
func! s:CountTagsAndState(text)
  "{{{
  " Store the result in s:curind and s:nextrel.  Update b:hi_newstate.block.
  let s:curind = 0  " relative indent steps for current line [unit &sw]:
  let s:nextrel = 0  " relative indent steps for next line [unit &sw]:

  let s:block = b:hi_newstate.block
  let tmp = substitute(a:text, '<\zs/\=' . s:tagname . '\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
  if s:block == 3
    let b:hi_newstate.scripttype = s:GetScriptType(matchstr(tmp, '\C.*<SCRIPT\>\zs[^>]*'))
  endif
  let b:hi_newstate.block = s:block
endfunc "}}}

" Used by s:CountITags() and s:CountTagsAndState().
func! s:CheckTag(itag)
  "{{{
  " Returns an empty string or "SCRIPT".
  " a:itag can be "tag" or "/tag" or "<!--" or "-->"
  if (s:CheckCustomTag(a:itag))
    return ""
  endif
  let ind = s:get_tag(a:itag)
  if ind == -1
    " closing tag
    if s:block != 0
      " ignore itag within a block
      return ""
    endif
    if s:nextrel == 0
      let s:curind -= 1
    else
      let s:nextrel -= 1
    endif
  elseif ind == 1
    " opening tag
    if s:block != 0
      return ""
    endif
    let s:nextrel += 1
  elseif ind != 0
    " block-tag (opening or closing)
    return s:CheckBlockTag(a:itag, ind)
  " else ind==0 (other tag found): keep indent
  endif
  return ""
endfunc "}}}

" Used by s:CheckTag(). Returns an empty string or "SCRIPT".
func! s:CheckBlockTag(blocktag, ind)
  "{{{
  if a:ind > 0
    " a block starts here
    if s:block != 0
      " already in a block (nesting) - ignore
      " especially ignore comments after other blocktags
      return ""
    endif
    let s:block = a:ind		" block type
    if s:countonly
      return ""
    endif
    let b:hi_newstate.blocklnr = v:lnum
    " save allover indent for the endtag
    let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * shiftwidth()
    if a:ind == 3
      return "SCRIPT"    " all except this must be lowercase
      " line is to be checked again for the type attribute
    endif
  else
    let s:block = 0
    " we get here if starting and closing a block-tag on the same line
  endif
  return ""
endfunc "}}}

" Used by s:CheckTag().
func! s:CheckCustomTag(ctag)
  "{{{
  " Returns 1 if ctag is the tag for a custom element, 0 otherwise.
  " a:ctag can be "tag" or "/tag" or "<!--" or "-->"
  let pattern = '\%\(\w\+-\)\+\w\+'
  if match(a:ctag, pattern) == -1
    return 0
  endif
  if matchstr(a:ctag, '\/\ze.\+') == "/"
    " closing tag
    if s:block != 0
      " ignore ctag within a block
      return 1
    endif
    if s:nextrel == 0
      let s:curind -= 1
    else
      let s:nextrel -= 1
    endif
  else
    " opening tag
    if s:block != 0
      return 1
    endif
    let s:nextrel += 1
  endif
  return 1
endfunc "}}}

" Return the <script> type: either "javascript" or ""
func! s:GetScriptType(str)
  "{{{
  if a:str == "" || a:str =~ "java"
    return "javascript"
  else
    return ""
  endif
endfunc "}}}

" Look back in the file, starting at a:lnum - 1, to compute a state for the
" start of line a:lnum.  Return the new state.
func! s:FreshState(lnum)
  "{{{
  " A state is to know ALL relevant details about the
  " lines 1..a:lnum-1, initial calculating (here!) can be slow, but updating is
  " fast (incremental).
  " TODO: this should be split up in detecting the block type and computing the
  " indent for the block type, so that when we do not know the indent we do
  " not need to clear the whole state and re-detect the block type again.
  " State:
  "	lnum		last indented line == prevnonblank(a:lnum - 1)
  "	block = 0	a:lnum located within special tag: 0:none, 2:<pre>,
  "			3:<script>, 4:<style>, 5:<!--, 6:<!--[
  "	baseindent	use this indent for line a:lnum as a start - kind of
  "			autoindent (if block==0)
  "	scripttype = ''	type attribute of a script tag (if block==3)
  "	blocktagind	indent for current opening (get) and closing (set)
  "			blocktag (if block!=0)
  "	blocklnr	lnum of starting blocktag (if block!=0)
  "	inattr		line {lnum} starts with attributes of a tag
  let state = {}
  let state.lnum = prevnonblank(a:lnum - 1)
  let state.scripttype = ""
  let state.blocktagind = -1
  let state.block = 0
  let state.baseindent = 0
  let state.blocklnr = 0
  let state.inattr = 0

  if state.lnum == 0
    return state
  endif

  " Heuristic:
  " remember startline state.lnum
  " look back for <pre, </pre, <script, </script, <style, </style tags
  " remember stopline
  " if opening tag found,
  "	assume a:lnum within block
  " else
  "	look back in result range (stopline, startline) for comment
  "	    \ delimiters (<!--, -->)
  "	if comment opener found,
  "	    assume a:lnum within comment
  "	else
  "	    assume usual html for a:lnum
  "	    if a:lnum-1 has a closing comment
  "		look back to get indent of comment opener
  " FI

  " look back for a blocktag
  let stopline2 = v:lnum + 1
  if has_key(b:hi_indent, 'block') && b:hi_indent.block > 5
    let [stopline2, stopcol2] = searchpos('<!--', 'bnW')
  endif
  let [stopline, stopcol] = searchpos('\c<\zs\/\=\%(pre\>\|script\>\|style\>\)', "bnW")
  if stopline > 0 && stopline < stopline2
    " ugly ... why isn't there searchstr()
    let tagline = tolower(getline(stopline))
    let blocktag = matchstr(tagline, '\/\=\%(pre\>\|script\>\|style\>\)', stopcol - 1)
    if blocktag[0] != "/"
      " opening tag found, assume a:lnum within block
      let state.block = s:indent_tags[blocktag]
      if state.block == 3
        let state.scripttype = s:GetScriptType(matchstr(tagline, '\>[^>]*', stopcol))
      endif
      let state.blocklnr = stopline
      " check preceding tags in the line:
      call s:CountITags(tagline[: stopcol-2])
      let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * shiftwidth()
      return state
    elseif stopline == state.lnum
      " handle special case: previous line (= state.lnum) contains a
      " closing blocktag which is preceded by line-noise;
      " blocktag == "/..."
      let swendtag = match(tagline, '^\s*</') >= 0
      if !swendtag
        let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bnW")
        call s:CountITags(tolower(getline(bline)[: bcol-2]))
        let state.baseindent = indent(bline) + (s:curind + s:nextrel) * shiftwidth()
        return state
      endif
    endif
  endif
  if stopline > stopline2
    let stopline = stopline2
    let stopcol = stopcol2
  endif

  " else look back for comment
  let [comlnum, comcol, found] = searchpos('\(<!--\[\)\|\(<!--\)\|-->', 'bpnW', stopline)
  if found == 2 || found == 3
    " comment opener found, assume a:lnum within comment
    let state.block = (found == 3 ? 5 : 6)
    let state.blocklnr = comlnum
    " check preceding tags in the line:
    call s:CountITags(tolower(getline(comlnum)[: comcol-2]))
    if found == 2
      let state.baseindent = b:hi_indent.baseindent
    endif
    let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
    return state
  endif

  " else within usual HTML
  let text = tolower(getline(state.lnum))

  " Check a:lnum-1 for closing comment (we need indent from the opening line).
  " Not when other tags follow (might be --> inside a string).
  let comcol = stridx(text, '-->')
  if comcol >= 0 && match(text, '[<>]', comcol) <= 0
    call cursor(state.lnum, comcol + 1)
    let [comlnum, comcol] = searchpos('<!--', 'bW')
    if comlnum == state.lnum
      let text = text[: comcol-2]
    else
      let text = tolower(getline(comlnum)[: comcol-2])
    endif
    call s:CountITags(text)
    let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
    " TODO check tags that follow "-->"
    return state
  endif

  " Check if the previous line starts with end tag.
  let swendtag = match(text, '^\s*</') >= 0

  " If previous line ended in a closing tag, line up with the opening tag.
  if !swendtag && text =~ '</' . s:tagname . '\s*>\s*$'
    call cursor(state.lnum, 99999)
    normal! F<
    let start_lnum = HtmlIndent_FindStartTag()
    if start_lnum > 0
      let state.baseindent = indent(start_lnum)
      if col('.') > 2
        " check for tags before the matching opening tag.
        let text = getline(start_lnum)
        let swendtag = match(text, '^\s*</') >= 0
        call s:CountITags(text[: col('.') - 2])
        let state.baseindent += s:nextrel * shiftwidth()
        if !swendtag
          let state.baseindent += s:curind * shiftwidth()
        endif
      endif
      return state
    endif
  endif

  " Else: no comments. Skip backwards to find the tag we're inside.
  let [state.lnum, found] = HtmlIndent_FindTagStart(state.lnum)
  " Check if that line starts with end tag.
  let text = getline(state.lnum)
  let swendtag = match(text, '^\s*</') >= 0
  call s:CountITags(tolower(text))
  let state.baseindent = indent(state.lnum) + s:nextrel * shiftwidth()
  if !swendtag
    let state.baseindent += s:curind * shiftwidth()
  endif
  return state
endfunc "}}}

" Indent inside a <pre> block: Keep indent as-is.
func! s:Alien2()
  "{{{
  return -1
endfunc "}}}

" Return the indent inside a <script> block for javascript.
func! s:Alien3()
  "{{{
  let lnum = prevnonblank(v:lnum - 1)
  while lnum > 1 && getline(lnum) =~ '^\s*/[/*]'
    " Skip over comments to avoid that cindent() aligns with the <script> tag
    let lnum = prevnonblank(lnum - 1)
  endwhile
  if lnum == b:hi_indent.blocklnr
    " indent for the first line after <script>
    return eval(b:hi_js1indent)
  endif
  if b:hi_indent.scripttype == "javascript"
    return GetJavascriptIndent()
  else
    return -1
  endif
endfunc "}}}

" Return the indent inside a <style> block.
func! s:Alien4()
  "{{{
  if prevnonblank(v:lnum-1) == b:hi_indent.blocklnr
    " indent for first content line
    return eval(b:hi_css1indent)
  endif
  return s:CSSIndent()
endfunc "}}}

" Indending inside a <style> block.  Returns the indent.
func! s:CSSIndent()
  "{{{
  " This handles standard CSS and also Closure stylesheets where special lines
  " start with @.
  " When the line starts with '*' or the previous line starts with "/*"
  " and does not end in "*/", use C indenting to format the comment.
  " Adopted $VIMRUNTIME/indent/css.vim
  let curtext = getline(v:lnum)
  if curtext =~ '^\s*[*]'
        \ || (v:lnum > 1 && getline(v:lnum - 1) =~ '\s*/\*'
        \     && getline(v:lnum - 1) !~ '\*/\s*$')
    return cindent(v:lnum)
  endif

  let min_lnum = b:hi_indent.blocklnr
  let prev_lnum = s:CssPrevNonComment(v:lnum - 1, min_lnum)
  let [prev_lnum, found] = HtmlIndent_FindTagStart(prev_lnum)
  if prev_lnum <= min_lnum
    " Just below the <style> tag, indent for first content line after comments.
    return eval(b:hi_css1indent)
  endif

  " If the current line starts with "}" align with it's match.
  if curtext =~ '^\s*}'
    call cursor(v:lnum, 1)
    try
      normal! %
      " Found the matching "{", align with it after skipping unfinished lines.
      let align_lnum = s:CssFirstUnfinished(line('.'), min_lnum)
      return indent(align_lnum)
    catch
      " can't find it, try something else, but it's most likely going to be
      " wrong
    endtry
  endif

  " add indent after {
  let brace_counts = HtmlIndent_CountBraces(prev_lnum)
  let extra = brace_counts.c_open * shiftwidth()

  let prev_text = getline(prev_lnum)
  let below_end_brace = prev_text =~ '}\s*$'

  " Search back to align with the first line that's unfinished.
  let align_lnum = s:CssFirstUnfinished(prev_lnum, min_lnum)

  " Handle continuation lines if aligning with previous line and not after a
  " "}".
  if extra == 0 && align_lnum == prev_lnum && !below_end_brace
    let prev_hasfield = prev_text =~ '^\s*[a-zA-Z0-9-]\+:'
    let prev_special = prev_text =~ '^\s*\(/\*\|@\)'
    if curtext =~ '^\s*\(/\*\|@\)'
      " if the current line is not a comment or starts with @ (used by template
      " systems) reduce indent if previous line is a continuation line
      if !prev_hasfield && !prev_special
        let extra = -shiftwidth()
      endif
    else
      let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:'
      let prev_unfinished = s:CssUnfinished(prev_text)
      if !cur_hasfield && (prev_hasfield || prev_unfinished)
        " Continuation line has extra indent if the previous line was not a
        " continuation line.
        let extra = shiftwidth()
        " Align with @if
        if prev_text =~ '^\s*@if '
          let extra = 4
        endif
      elseif cur_hasfield && !prev_hasfield && !prev_special
        " less indent below a continuation line
        let extra = -shiftwidth()
      endif
    endif
  endif

  if below_end_brace
    " find matching {, if that line starts with @ it's not the start of a rule
    " but something else from a template system
    call cursor(prev_lnum, 1)
    call search('}\s*$')
    try
      normal! %
      " Found the matching "{", align with it.
      let align_lnum = s:CssFirstUnfinished(line('.'), min_lnum)
      let special = getline(align_lnum) =~ '^\s*@'
    catch
      let special = 0
    endtry
    if special
      " do not reduce indent below @{ ... }
      if extra < 0
        let extra += shiftwidth()
      endif
    else
      let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * shiftwidth()
    endif
  endif

  " if no extra indent yet...
  if extra == 0
    if brace_counts.p_open > brace_counts.p_close
      " previous line has more ( than ): add a shiftwidth
      let extra = shiftwidth()
    elseif brace_counts.p_open < brace_counts.p_close
      " previous line has more ) than (: subtract a shiftwidth
      let extra = -shiftwidth()
    endif
  endif

  return indent(align_lnum) + extra
endfunc "}}}

" Inside <style>: Whether a line is unfinished.
func! s:CssUnfinished(text)
  "{{{
  return a:text =~ '\s\(||\|&&\|:\)\s*$'
endfunc "}}}

" Search back for the first unfinished line above "lnum".
func! s:CssFirstUnfinished(lnum, min_lnum)
  "{{{
  let align_lnum = a:lnum
  while align_lnum > a:min_lnum && s:CssUnfinished(getline(align_lnum - 1))
    let align_lnum -= 1
  endwhile
  return align_lnum
endfunc "}}}

" Find the non-empty line at or before "lnum" that is not a comment.
func! s:CssPrevNonComment(lnum, stopline)
  "{{{
  " caller starts from a line a:lnum + 1 that is not a comment
  let lnum = prevnonblank(a:lnum)
  while 1
    let ccol = match(getline(lnum), '\*/')
    if ccol < 0
      " No comment end thus it's something else.
      return lnum
    endif
    call cursor(lnum, ccol + 1)
    " Search back for the /* that starts the comment
    let lnum = search('/\*', 'bW', a:stopline)
    if indent(".") == virtcol(".") - 1
      " The  found /* is at the start of the line. Now go back to the line
      " above it and again check if it is a comment.
      let lnum = prevnonblank(lnum - 1)
    else
      " /* is after something else, thus it's not a comment line.
      return lnum
    endif
  endwhile
endfunc "}}}

" Check the number of {} and () in line "lnum". Return a dict with the counts.
func! HtmlIndent_CountBraces(lnum)
  "{{{
  let brs = substitute(getline(a:lnum), '[''"].\{-}[''"]\|/\*.\{-}\*/\|/\*.*$\|[^{}()]', '', 'g')
  let c_open = 0
  let c_close = 0
  let p_open = 0
  let p_close = 0
  for brace in split(brs, '\zs')
    if brace == "{"
      let c_open += 1
    elseif brace == "}"
      if c_open > 0
        let c_open -= 1
      else
        let c_close += 1
      endif
    elseif brace == '('
      let p_open += 1
    elseif brace == ')'
      if p_open > 0
        let p_open -= 1
      else
        let p_close += 1
      endif
    endif
  endfor
  return {'c_open': c_open,
        \ 'c_close': c_close,
        \ 'p_open': p_open,
        \ 'p_close': p_close}
endfunc "}}}

" Return the indent for a comment: <!-- -->
func! s:Alien5()
  "{{{
  let curtext = getline(v:lnum)
  if curtext =~ '^\s*\zs-->'
    " current line starts with end of comment, line up with comment start.
    call cursor(v:lnum, 0)
    let lnum = search('<!--', 'b')
    if lnum > 0
      " TODO: what if <!-- is not at the start of the line?
      return indent(lnum)
    endif

    " Strange, can't find it.
    return -1
  endif

  let prevlnum = prevnonblank(v:lnum - 1)
  let prevtext = getline(prevlnum)
  let idx = match(prevtext, '^\s*\zs<!--')
  if idx >= 0
    " just below comment start, add a shiftwidth
    return idx + shiftwidth()
  endif

  " Some files add 4 spaces just below a TODO line.  It's difficult to detect
  " the end of the TODO, so let's not do that.

  " Align with the previous non-blank line.
  return indent(prevlnum)
endfunc "}}}

" Return the indent for conditional comment: <!--[ ![endif]-->
func! s:Alien6()
  "{{{
  let curtext = getline(v:lnum)
  if curtext =~ '\s*\zs<!\[endif\]-->'
    " current line starts with end of comment, line up with comment start.
    let lnum = search('<!--', 'bn')
    if lnum > 0
      return indent(lnum)
    endif
  endif
  return b:hi_indent.baseindent + shiftwidth()
endfunc "}}}

" When the "lnum" line ends in ">" find the line containing the matching "<".
func! HtmlIndent_FindTagStart(lnum)
  "{{{
  " Avoids using the indent of a continuation line.
  " Moves the cursor.
  " Return two values:
  " - the matching line number or "lnum".
  " - a flag indicating whether we found the end of a tag.
  " This method is global so that HTML-like indenters can use it.
  " To avoid matching " > " or " < " inside a string require that the opening
  " "<" is followed by a word character and the closing ">" comes after a
  " non-white character.
  let idx = match(getline(a:lnum), '\S>\s*$')
  if idx > 0
    call cursor(a:lnum, idx)
    let lnum = searchpair('<\w', '' , '\S>', 'bW', '', max([a:lnum - b:html_indent_line_limit, 0]))
    if lnum > 0
      return [lnum, 1]
    endif
  endif
  return [a:lnum, 0]
endfunc "}}}

" Find the unclosed start tag from the current cursor position.
func! HtmlIndent_FindStartTag()
  "{{{
  " The cursor must be on or before a closing tag.
  " If found, positions the cursor at the match and returns the line number.
  " Otherwise returns 0.
  let tagname = matchstr(getline('.')[col('.') - 1:], '</\zs' . s:tagname . '\ze')
  let start_lnum = searchpair('<' . tagname . '\>', '', '</' . tagname . '\>', 'bW')
  if start_lnum > 0
    return start_lnum
  endif
  return 0
endfunc "}}}

" Moves the cursor from a "<" to the matching ">".
func! HtmlIndent_FindTagEnd()
  "{{{
  " Call this with the cursor on the "<" of a start tag.
  " This will move the cursor to the ">" of the matching end tag or, when it's
  " a self-closing tag, to the matching ">".
  " Limited to look up to b:html_indent_line_limit lines away.
  let text = getline('.')
  let tagname = matchstr(text, s:tagname . '\|!--', col('.'))
  if tagname == '!--'
    call search('--\zs>')
  elseif s:get_tag('/' . tagname) != 0
    " tag with a closing tag, find matching "</tag>"
    call searchpair('<' . tagname, '', '</' . tagname . '\zs>', 'W', '', line('.') + b:html_indent_line_limit)
  else
    " self-closing tag, find the ">"
    call search('\S\zs>')
  endif
endfunc "}}}

" Indenting inside a start tag. Return the correct indent or -1 if unknown.
func! s:InsideTag(foundHtmlString)
  "{{{
  if a:foundHtmlString
    " Inside an attribute string.
    " Align with the previous line or use an external function.
    let lnum = v:lnum - 1
    if lnum > 1
      if exists('b:html_indent_tag_string_func')
        return b:html_indent_tag_string_func(lnum)
      endif
      return indent(lnum)
    endif
  endif

  " Should be another attribute: " attr="val".  Align with the previous
  " attribute start.
  let lnum = v:lnum
  while lnum > 1
    let lnum -= 1
    let text = getline(lnum)
    " Find a match with one of these, align with "attr":
    "       attr=
    "  <tag attr=
    "  text<tag attr=
    "  <tag>text</tag>text<tag attr=
    " For long lines search for the first match, finding the last match
    " gets very slow.
    if len(text) < 300
      let idx = match(text, '.*\s\zs[_a-zA-Z0-9-]\+="')
    else
      let idx = match(text, '\s\zs[_a-zA-Z0-9-]\+="')
    endif
    if idx == -1
      " try <tag attr
      let idx = match(text, '<' . s:tagname . '\s\+\zs\w')
    endif
    if idx == -1
      " after just <tag indent one level more
      let idx = match(text, '<' . s:tagname . '$')
      if idx >= 0
	call cursor(lnum, idx)
	return virtcol('.') + shiftwidth()
      endif
    endif
    if idx > 0
      " Found the attribute to align with.
      call cursor(lnum, idx)
      return virtcol('.')
    endif
  endwhile
  return -1
endfunc "}}}

" THE MAIN INDENT FUNCTION. Return the amount of indent for v:lnum.
func! HtmlIndent()
  "{{{
  if prevnonblank(v:lnum - 1) < 1
    " First non-blank line has no indent.
    return 0
  endif

  let curtext = tolower(getline(v:lnum))
  let indentunit = shiftwidth()

  let b:hi_newstate = {}
  let b:hi_newstate.lnum = v:lnum

  " When syntax HL is enabled, detect we are inside a tag.  Indenting inside
  " a tag works very differently. Do not do this when the line starts with
  " "<", it gets the "htmlTag" ID but we are not inside a tag then.
  if curtext !~ '^\s*<'
    normal! ^
    let stack = synstack(v:lnum, col('.'))  " assumes there are no tabs
    let foundHtmlString = 0
    for synid in reverse(stack)
      let name = synIDattr(synid, "name")
      if index(b:hi_insideStringNames, name) >= 0
        let foundHtmlString = 1
      elseif index(b:hi_insideTagNames, name) >= 0
        " Yes, we are inside a tag.
        let indent = s:InsideTag(foundHtmlString)
        if indent >= 0
          " Do not keep the state. TODO: could keep the block type.
          let b:hi_indent.lnum = 0
          return indent
        endif
      endif
    endfor
  endif

  " does the line start with a closing tag?
  let swendtag = match(curtext, '^\s*</') >= 0

  if prevnonblank(v:lnum - 1) == b:hi_indent.lnum && b:hi_lasttick == b:changedtick - 1
    " use state (continue from previous line)
  else
    " start over (know nothing)
    let b:hi_indent = s:FreshState(v:lnum)
  endif

  if b:hi_indent.block >= 2
    " within block
    let endtag = s:endtags[b:hi_indent.block]
    let blockend = stridx(curtext, endtag)
    if blockend >= 0
      " block ends here
      let b:hi_newstate.block = 0
      " calc indent for REST OF LINE (may start more blocks):
      call s:CountTagsAndState(strpart(curtext, blockend + strlen(endtag)))
      if swendtag && b:hi_indent.block != 5
        let indent = b:hi_indent.blocktagind + s:curind * indentunit
        let b:hi_newstate.baseindent = indent + s:nextrel * indentunit
      else
        let indent = s:Alien{b:hi_indent.block}()
        let b:hi_newstate.baseindent = b:hi_indent.blocktagind + s:nextrel * indentunit
      endif
    else
      " block continues
      " indent this line with alien method
      let indent = s:Alien{b:hi_indent.block}()
    endif
  else
    " not within a block - within usual html
    let b:hi_newstate.block = b:hi_indent.block
    if swendtag
      " The current line starts with an end tag, align with its start tag.
      call cursor(v:lnum, 1)
      let start_lnum = HtmlIndent_FindStartTag()
      if start_lnum > 0
        " check for the line starting with something inside a tag:
        " <sometag               <- align here
        "    attr=val><open>     not here
        let text = getline(start_lnum)
        let angle = matchstr(text, '[<>]')
        if angle == '>'
          call cursor(start_lnum, 1)
          normal! f>%
          let start_lnum = line('.')
          let text = getline(start_lnum)
        endif

        let indent = indent(start_lnum)
        if col('.') > 2
          let swendtag = match(text, '^\s*</') >= 0
          call s:CountITags(text[: col('.') - 2])
          let indent += s:nextrel * shiftwidth()
          if !swendtag
            let indent += s:curind * shiftwidth()
          endif
        endif
      else
        " not sure what to do
        let indent = b:hi_indent.baseindent
      endif
      let b:hi_newstate.baseindent = indent
    else
      call s:CountTagsAndState(curtext)
      let indent = b:hi_indent.baseindent
      let b:hi_newstate.baseindent = indent + (s:curind + s:nextrel) * indentunit
    endif
  endif

  let b:hi_lasttick = b:changedtick
  call extend(b:hi_indent, b:hi_newstate, "force")
  return indent
endfunc "}}}

" Check user settings when loading this script the first time.
call HtmlIndent_CheckUserSettings()

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: fdm=marker ts=8 sw=2 tw=78
PK�j�Z,�<ggvim80/indent/README.txtnu�[���This directory contains files to automatically compute the indent for a
type of file.

If you want to add your own indent file for your personal use, read the docs
at ":help indent-expression".  Looking at the existing files should give you
inspiration.

If you make a new indent file which would be useful for others, please send it
to Bram@vim.org.  Include instructions for detecting the file type for this
language, by file name extension or by checking a few lines in the file.
And please stick to the rules below.

If you have remarks about an existing file, send them to the maintainer of
that file.  Only when you get no response send a message to Bram@vim.org.

If you are the maintainer of an indent file and make improvements, e-mail the
new version to Bram@vim.org.


Rules for making an indent file:

You should use this check for "b:did_indent":

	" Only load this indent file when no other was loaded yet.
	if exists("b:did_indent")
	  finish
	endif
	let b:did_indent = 1

Always use ":setlocal" to set 'indentexpr'.  This avoids it being carried over
to other buffers.

To trigger the indenting after typing a word like "endif", add the word to the
'cinkeys' option with "+=".

You normally set 'indentexpr' to evaluate a function and then define that
function.  That function only needs to be defined once for as long as Vim is
running.  Add a test if the function exists and use ":finish", like this:
	if exists("*GetMyIndent")
	  finish
	endif

The user may have several options set unlike you, try to write the file such
that it works with any option settings.  Also be aware of certain features not
being compiled in.
PK�j�Z�CX
vim80/indent/ld.vimnu�[���" Vim indent file
" Language:             ld(1) script
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetLDIndent()
setlocal indentkeys=0{,0},!^F,o,O
setlocal nosmartindent

if exists("*GetLDIndent")
  finish
endif

function s:prevnonblanknoncomment(lnum)
  let lnum = a:lnum
  while lnum > 1
    let lnum = prevnonblank(lnum)
    let line = getline(lnum)
    if line =~ '\*/'
      while lnum > 1 && line !~ '/\*'
        let lnum -= 1
      endwhile
      if line =~ '^\s*/\*'
        let lnum -= 1
      else
        break
      endif
    else
      break
    endif
  endwhile
  return lnum
endfunction

function s:count_braces(lnum, count_open)
  let n_open = 0
  let n_close = 0
  let line = getline(a:lnum)
  let pattern = '[{}]'
  let i = match(line, pattern)
  while i != -1
    if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'ld\%(Comment\|String\)'
      if line[i] == '{'
        let n_open += 1
      elseif line[i] == '}'
        if n_open > 0
          let n_open -= 1
        else
          let n_close += 1
        endif
      endif
    endif
    let i = match(line, pattern, i + 1)
  endwhile
  return a:count_open ? n_open : n_close
endfunction

function GetLDIndent()
  let line = getline(v:lnum)
  if line =~ '^\s*\*'
    return cindent(v:lnum)
  elseif line =~ '^\s*}'
    return indent(v:lnum) - shiftwidth()
  endif

  let pnum = s:prevnonblanknoncomment(v:lnum - 1)
  if pnum == 0
    return 0
  endif

  let ind = indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()

  let pline = getline(pnum)
  if pline =~ '}\s*$'
    let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * shiftwidth()
  endif

  return ind
endfunction
PK�j�Z�7;>>vim80/indent/rnoweb.vimnu�[���" Vim indent file
" Language:	Rnoweb
" Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage:     https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Fri Apr 15, 2016  10:58PM


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
runtime indent/tex.vim

function! s:NoTeXIndent()
  return indent(line("."))
endfunction

if &indentexpr == "" || &indentexpr == "GetRnowebIndent()"
  let s:TeXIndent = function("s:NoTeXIndent")
else
  let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
endif

unlet b:did_indent
runtime indent/r.vim
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
let b:did_indent = 1

setlocal indentkeys=0{,0},!^F,o,O,e,},=\bibitem,=\item
setlocal indentexpr=GetRnowebIndent()

if exists("*GetRnowebIndent")
  finish
endif

function GetRnowebIndent()
  let curline = getline(".")
  if curline =~ '^<<.*>>=$' || curline =~ '^\s*@$'
    return 0
  endif
  if search("^<<", "bncW") > search("^@", "bncW")
    return s:RIndent()
  endif
  return s:TeXIndent()
endfunction

" vim: sw=2
PK�j�Z�|���vim80/indent/lua.vimnu�[���" Vim indent file
" Language:	Lua script
" Maintainer:	Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
" First Author:	Max Ischenko <mfi 'at' ukr.net>
" Last Change:	2017 Jun 13

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetLuaIndent()

" To make Vim call GetLuaIndent() when it finds '\s*end' or '\s*until'
" on the current line ('else' is default and includes 'elseif').
setlocal indentkeys+=0=end,0=until

setlocal autoindent

" Only define the function once.
if exists("*GetLuaIndent")
  finish
endif

function! GetLuaIndent()
  " Find a non-blank line above the current line.
  let prevlnum = prevnonblank(v:lnum - 1)

  " Hit the start of the file, use zero indent.
  if prevlnum == 0
    return 0
  endif

  " Add a 'shiftwidth' after lines that start a block:
  " 'function', 'if', 'for', 'while', 'repeat', 'else', 'elseif', '{'
  let ind = indent(prevlnum)
  let prevline = getline(prevlnum)
  let midx = match(prevline, '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\|then\>\)')
  if midx == -1
    let midx = match(prevline, '{\s*$')
    if midx == -1
      let midx = match(prevline, '\<function\>\s*\%(\k\|[.:]\)\{-}\s*(')
    endif
  endif

  if midx != -1
    " Add 'shiftwidth' if what we found previously is not in a comment and
    " an "end" or "until" is not present on the same line.
    if synIDattr(synID(prevlnum, midx + 1, 1), "name") != "luaComment" && prevline !~ '\<end\>\|\<until\>'
      let ind = ind + shiftwidth()
    endif
  endif

  " Subtract a 'shiftwidth' on end, else, elseif, until and '}'
  " This is the part that requires 'indentkeys'.
  let midx = match(getline(v:lnum), '^\s*\%(end\>\|else\>\|elseif\>\|until\>\|}\)')
  if midx != -1 && synIDattr(synID(v:lnum, midx + 1, 1), "name") != "luaComment"
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction
PK�j�Z��e�	�	vim80/indent/bzl.vimnu�[���" Vim indent file
" Language:	Bazel (http://bazel.io)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-bzl)
" Last Change:	2017 Jun 13

if exists('b:did_indent')
  finish
endif

" Load base python indent.
if !exists('*GetPythonIndent')
  runtime! indent/python.vim
endif

let b:did_indent = 1

" Only enable bzl google indent if python google indent is enabled.
if !get(g:, 'no_google_python_indent')
  setlocal indentexpr=GetBzlIndent(v:lnum)
endif

if exists('*GetBzlIndent')
  finish
endif

let s:save_cpo = &cpo
set cpo-=C

" Maximum number of lines to look backwards.
let s:maxoff = 50

""
" Determine the correct indent level given an {lnum} in the current buffer.
function GetBzlIndent(lnum) abort
  let l:use_recursive_indent = !get(g:, 'no_google_python_recursive_indent')
  if l:use_recursive_indent
    " Backup and override indent setting variables.
    if exists('g:pyindent_nested_paren')
      let l:pyindent_nested_paren = g:pyindent_nested_paren
    endif
    if exists('g:pyindent_open_paren')
      let l:pyindent_open_paren = g:pyindent_open_paren
    endif
    let g:pyindent_nested_paren = 'shiftwidth() * 2'
    let g:pyindent_open_paren = 'shiftwidth() * 2'
  endif

  let l:indent = -1

  " Indent inside parens.
  " Align with the open paren unless it is at the end of the line.
  " E.g.
  "   open_paren_not_at_EOL(100,
  "                         (200,
  "                          300),
  "                         400)
  "   open_paren_at_EOL(
  "       100, 200, 300, 400)
  call cursor(a:lnum, 1)
  let [l:par_line, l:par_col] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW',
      \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" .
      \ " synIDattr(synID(line('.'), col('.'), 1), 'name')" .
      \ " =~ '\\(Comment\\|String\\)$'")
  if l:par_line > 0
    call cursor(l:par_line, 1)
    if l:par_col != col('$') - 1
      let l:indent = l:par_col
    endif
  endif

  " Delegate the rest to the original function.
  if l:indent == -1
    let l:indent = GetPythonIndent(a:lnum)
  endif

  if l:use_recursive_indent
    " Restore global variables.
    if exists('l:pyindent_nested_paren')
      let g:pyindent_nested_paren = l:pyindent_nested_paren
    else
      unlet g:pyindent_nested_paren
    endif
    if exists('l:pyindent_open_paren')
      let g:pyindent_open_paren = l:pyindent_open_paren
    else
      unlet g:pyindent_open_paren
    endif
  endif

  return l:indent
endfunction

let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z�Ѽvim80/indent/rhelp.vimnu�[���" Vim indent file
" Language:	R Documentation (Help), *.Rd
" Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage:     https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Tue Apr 07, 2015  04:38PM


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
runtime indent/r.vim
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
let b:did_indent = 1

setlocal noautoindent
setlocal nocindent
setlocal nosmartindent
setlocal nolisp
setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetCorrectRHelpIndent()

" Only define the functions once.
if exists("*GetRHelpIndent")
  finish
endif

function s:SanitizeRHelpLine(line)
  let newline = substitute(a:line, '\\\\', "x", "g")
  let newline = substitute(newline, '\\{', "x", "g")
  let newline = substitute(newline, '\\}', "x", "g")
  let newline = substitute(newline, '\\%', "x", "g")
  let newline = substitute(newline, '%.*', "", "")
  let newline = substitute(newline, '\s*$', "", "")
  return newline
endfunction

function GetRHelpIndent()

  let clnum = line(".")    " current line
  if clnum == 1
    return 0
  endif
  let cline = getline(clnum)

  if cline =~ '^\s*}\s*$'
    let i = clnum
    let bb = -1
    while bb != 0 && i > 1
      let i -= 1
      let line = s:SanitizeRHelpLine(getline(i))
      let line2 = substitute(line, "{", "", "g")
      let openb = strlen(line) - strlen(line2)
      let line3 = substitute(line2, "}", "", "g")
      let closeb = strlen(line2) - strlen(line3)
      let bb += openb - closeb
    endwhile
    return indent(i)
  endif

  if cline =~ '^\s*#ifdef\>' || cline =~ '^\s*#endif\>'
    return 0
  endif

  let lnum = clnum - 1
  let line = getline(lnum)
  if line =~ '^\s*#ifdef\>' || line =~ '^\s*#endif\>'
    let lnum -= 1
    let line = getline(lnum)
  endif
  while lnum > 1 && (line =~ '^\s*$' || line =~ '^#ifdef' || line =~ '^#endif')
    let lnum -= 1
    let line = getline(lnum)
  endwhile
  if lnum == 1
    return 0
  endif
  let line = s:SanitizeRHelpLine(line)
  let line2 = substitute(line, "{", "", "g")
  let openb = strlen(line) - strlen(line2)
  let line3 = substitute(line2, "}", "", "g")
  let closeb = strlen(line2) - strlen(line3)
  let bb = openb - closeb

  let ind = indent(lnum) + (bb * shiftwidth())

  if line =~ '^\s*}\s*$'
    let ind = indent(lnum)
  endif

  if ind < 0
    return 0
  endif

  return ind
endfunction

function GetCorrectRHelpIndent()
  let lastsection = search('^\\[a-z]*{', "bncW")
  let secname = getline(lastsection)
  if secname =~ '^\\usage{' || secname =~ '^\\examples{' || secname =~ '^\\dontshow{' || secname =~ '^\\dontrun{' || secname =~ '^\\donttest{' || secname =~ '^\\testonly{' || secname =~ '^\\method{.*}{.*}('
    return s:RIndent()
  else
    return GetRHelpIndent()
  endif
endfunction

" vim: sw=2
PK�j�ZR�Ko9,9,vim80/indent/mp.vimnu�[���" MetaPost indent file
" Language:           MetaPost
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Eugene Minkovskii <emin@mccme.ru>
" Last Change:        2016 Oct 2, 4:13pm
" Version: 0.2

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetMetaPostIndent()
setlocal indentkeys+==end,=else,=fi,=fill,0),0]

let b:undo_indent = "setl indentkeys< indentexpr<"

" Only define the function once.
if exists("*GetMetaPostIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

function GetMetaPostIndent()
  let ignorecase_save = &ignorecase
  try
    let &ignorecase = 0
    return GetMetaPostIndentIntern()
  finally
    let &ignorecase = ignorecase_save
  endtry
endfunc

" Regexps {{{
" Note: the next three variables are made global so that a user may add
" further keywords.
"
" Example:
"
"    Put these in ~/.vim/after/indent/mp.vim
"
"    let g:mp_open_tag .= '\|\<begintest\>'
"    let g:mp_close_tag .= '\|\<endtest\>'

" Expressions starting indented blocks
let g:mp_open_tag = ''
      \ . '\<if\>'
      \ . '\|\<else\%[if]\>'
      \ . '\|\<for\%(\|ever\|suffixes\)\>'
      \ . '\|\<begingroup\>'
      \ . '\|\<\%(\|var\|primary\|secondary\|tertiary\)def\>'
      \ . '\|^\s*\<begin\%(fig\|graph\|glyph\|char\|logochar\)\>'
      \ . '\|[([{]'

" Expressions ending indented blocks
let g:mp_close_tag = ''
      \ . '\<fi\>'
      \ . '\|\<else\%[if]\>'
      \ . '\|\<end\%(\|for\|group\|def\|fig\|char\|glyph\|graph\)\>'
      \ . '\|[)\]}]'

" Statements that may span multiple lines and are ended by a semicolon. To
" keep this list short, statements that are unlikely to be very long or are
" not very common (e.g., keywords like `interim` or `showtoken`) are not
" included.
"
" The regex for assignments and equations (the last branch) is tricky, because
" it must not match things like `for i :=`, `if a=b`, `def...=`, etc... It is
" not perfect, but it works reasonably well.
let g:mp_statement = ''
      \ . '\<\%(\|un\|cut\)draw\>'
      \ . '\|\<\%(\|un\)fill\%[draw]\>'
      \ . '\|\<draw\%(dbl\)\=arrow\>'
      \ . '\|\<clip\>'
      \ . '\|\<addto\>'
      \ . '\|\<save\>'
      \ . '\|\<setbounds\>'
      \ . '\|\<message\>'
      \ . '\|\<errmessage\>'
      \ . '\|\<errhelp\>'
      \ . '\|\<fontmapline\>'
      \ . '\|\<pickup\>'
      \ . '\|\<show\>'
      \ . '\|\<special\>'
      \ . '\|\<write\>'
      \ . '\|\%(^\|;\)\%([^;=]*\%('.g:mp_open_tag.'\)\)\@!.\{-}:\=='

" A line ends with zero or more spaces, possibly followed by a comment.
let s:eol = '\s*\%($\|%\)'
" }}}

" Auxiliary functions {{{
" Returns 1 if (0-based) position immediately preceding `pos` in `line` is
" inside a string or a comment; returns 0 otherwise.

" This is the function that is called more often when indenting, so it is
" critical that it is efficient. The method we use is significantly faster
" than using syntax attributes, and more general (it does not require
" syntax_items). It is also faster than using a single regex matching an even
" number of quotes. It helps that MetaPost strings cannot span more than one
" line and cannot contain escaped quotes.
function! s:CommentOrString(line, pos)
  let in_string = 0
  let q = stridx(a:line, '"')
  let c = stridx(a:line, '%')
  while q >= 0 && q < a:pos
    if c >= 0 && c < q
      if in_string " Find next percent symbol
        let c = stridx(a:line, '%', q + 1)
      else " Inside comment
        return 1
      endif
    endif
    let in_string = 1 - in_string
    let q = stridx(a:line, '"', q + 1) " Find next quote
  endwhile
  return in_string || (c >= 0 && c <= a:pos)
endfunction

" Find the first non-comment non-blank line before the current line.
function! s:PrevNonBlankNonComment(lnum)
  let l:lnum = prevnonblank(a:lnum - 1)
  while getline(l:lnum) =~# '^\s*%'
    let l:lnum = prevnonblank(l:lnum - 1)
  endwhile
  return l:lnum
endfunction

" Returns true if the last tag appearing in the line is an open tag; returns
" false otherwise.
function! s:LastTagIsOpen(line)
  let o = s:LastValidMatchEnd(a:line, g:mp_open_tag, 0)
  if o == - 1 | return v:false | endif
  return s:LastValidMatchEnd(a:line, g:mp_close_tag, o) < 0
endfunction

" A simple, efficient and quite effective heuristics is used to test whether
" a line should cause the next line to be indented: count the "opening tags"
" (if, for, def, ...) in the line, count the "closing tags" (endif, endfor,
" ...) in the line, and compute the difference. We call the result the
" "weight" of the line. If the weight is positive, then the next line should
" most likely be indented. Note that `else` and `elseif` are both opening and
" closing tags, so they "cancel out" in almost all cases, the only exception
" being a leading `else[if]`, which is counted as an opening tag, but not as
" a closing tag (so that, for instance, a line containing a single `else:`
" will have weight equal to one, not zero). We do not treat a trailing
" `else[if]` in any special way, because lines ending with an open tag are
" dealt with separately before this function is called (see
" GetMetaPostIndentIntern()).
"
" Example:
"
"     forsuffixes $=a,b: if x.$ = y.$ : draw else: fill fi
"       % This line will be indented because |{forsuffixes,if,else}| > |{else,fi}| (3 > 2)
"     endfor

function! s:Weight(line)
  let [o, i] = [0, s:ValidMatchEnd(a:line, g:mp_open_tag, 0)]
  while i > 0
    let o += 1
    let i = s:ValidMatchEnd(a:line, g:mp_open_tag, i)
  endwhile
  let [c, i] = [0, matchend(a:line, '^\s*\<else\%[if]\>')] " Skip a leading else[if]
  let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
  while i > 0
    let c += 1
    let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
  endwhile
  return o - c
endfunction

" Similar to matchend(), but skips strings and comments.
" line: a String
function! s:ValidMatchEnd(line, pat, start)
  let i = matchend(a:line, a:pat, a:start)
  while i > 0 && s:CommentOrString(a:line, i)
    let i = matchend(a:line, a:pat, i)
  endwhile
  return i
endfunction

" Like s:ValidMatchEnd(), but returns the end position of the last (i.e.,
" rightmost) match.
function! s:LastValidMatchEnd(line, pat, start)
  let last_found = -1
  let i = matchend(a:line, a:pat, a:start)
  while i > 0
    if !s:CommentOrString(a:line, i)
      let last_found = i
    endif
    let i = matchend(a:line, a:pat, i)
  endwhile
  return last_found
endfunction

function! s:DecreaseIndentOnClosingTag(curr_indent)
  let cur_text = getline(v:lnum)
  if cur_text =~# '^\s*\%('.g:mp_close_tag.'\)'
    return max([a:curr_indent - shiftwidth(), 0])
  endif
  return a:curr_indent
endfunction
" }}}

" Main function {{{
"
" Note: Every rule of indentation in MetaPost is very subjective. We might get
" creative, but things get murky very soon (there are too many corner cases).
" So, we provide a means for the user to decide what to do when this script
" doesn't get it. We use a simple idea: use '%>', '%<' and '%=' to explicitly
" control indentation. The '<' and '>' symbols may be repeated many times
" (e.g., '%>>' will cause the next line to be indented twice).
"
" By using '%>...', '%<...' and '%=', the indentation the user wants is
" preserved by commands like gg=G, even if it does not follow the rules of
" this script.
"
" Example:
"
"    def foo =
"        makepen(
"            subpath(T-n,t) of r  %>
"                shifted .5down   %>
"                    --subpath(t,T) of r shifted .5up -- cycle   %<<<
"        )
"        withcolor black
"    enddef
"
" The default indentation of the previous example would be:
"
"    def foo =
"        makepen(
"            subpath(T-n,t) of r
"            shifted .5down
"            --subpath(t,T) of r shifted .5up -- cycle
"        )
"        withcolor black
"    enddef
"
" Personally, I prefer the latter, but anyway...
function! GetMetaPostIndentIntern()
  " Do not touch indentation inside verbatimtex/btex.. etex blocks.
  if synIDattr(synID(v:lnum, 1, 1), "name") =~# '^mpTeXinsert$\|^tex\|^Delimiter'
    return -1
  endif

  " This is the reference line relative to which the current line is indented
  " (but see below).
  let lnum = s:PrevNonBlankNonComment(v:lnum)

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif

  let prev_text = getline(lnum)

  " User-defined overrides take precedence over anything else.
  " See above for an example.
  let j = match(prev_text, '%[<>=]')
  if j > 0
    let i = strlen(matchstr(prev_text, '%>\+', j)) - 1
    if i > 0
      return indent(lnum) + i * shiftwidth()
    endif

    let i = strlen(matchstr(prev_text, '%<\+', j)) - 1
    if i > 0
      return max([indent(lnum) - i * shiftwidth(), 0])
    endif

    if match(prev_text, '%=', j)
      return indent(lnum)
    endif
  endif

  " If the reference line ends with an open tag, indent.
  "
  " Example:
  "
  " if c:
  "     0
  " else:
  "     1
  " fi if c2: % Note that this line has weight equal to zero.
  "     ...   % This line will be indented
  if s:LastTagIsOpen(prev_text)
    return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
  endif

  " Lines with a positive weight are unbalanced and should likely be indented.
  "
  " Example:
  "
  " def f = enddef for i = 1 upto 5: if x[i] > 0: 1 else: 2 fi
  "     ... % This line will be indented (because of the unterminated `for`)
  if s:Weight(prev_text) > 0
    return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
  endif

  " Unterminated statements cause indentation to kick in.
  "
  " Example:
  "
  " draw unitsquare
  "     withcolor black; % This line is indented because of `draw`.
  " x := a + b + c
  "     + d + e;         % This line is indented because of `:=`.
  "
  let i = s:LastValidMatchEnd(prev_text, g:mp_statement, 0)
  if i >= 0 " Does the line contain a statement?
    if s:ValidMatchEnd(prev_text, ';', i) < 0 " Is the statement unterminated?
      return indent(lnum) + shiftwidth()
    else
      return s:DecreaseIndentOnClosingTag(indent(lnum))
    endif
  endif

  " Deal with the special case of a statement spanning multiple lines. If the
  " current reference line L ends with a semicolon, search backwards for
  " another semicolon or a statement keyword. If the latter is found first,
  " its line is used as the reference line for indenting the current line
  " instead of L.
  "
  "  Example:
  "
  "  if cond:
  "    draw if a: z0 else: z1 fi
  "        shifted S
  "        scaled T;      % L
  "
  "    for i = 1 upto 3:  % <-- Current line: this gets the same indent as `draw ...`
  "
  " NOTE: we get here only if L does not contain a statement (among those
  " listed in g:mp_statement).
  if s:ValidMatchEnd(prev_text, ';'.s:eol, 0) >= 0 " L ends with a semicolon
    let stm_lnum = s:PrevNonBlankNonComment(lnum)
    while stm_lnum > 0
      let prev_text = getline(stm_lnum)
      let sc_pos = s:LastValidMatchEnd(prev_text, ';', 0)
      let stm_pos = s:ValidMatchEnd(prev_text, g:mp_statement, sc_pos)
      if stm_pos > sc_pos
        let lnum = stm_lnum
        break
      elseif sc_pos > stm_pos
        break
      endif
      let stm_lnum = s:PrevNonBlankNonComment(stm_lnum)
    endwhile
  endif

  return s:DecreaseIndentOnClosingTag(indent(lnum))
endfunction
" }}}

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:sw=2:fdm=marker
PK�j�Z�0�P��vim80/indent/verilog.vimnu�[���" Language:     Verilog HDL
" Maintainer:	Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
" Last Change:	2017 Aug 25 by Chih-Tsun Huang
" URL:		    http://www.cs.nthu.edu.tw/~cthuang/vim/indent/verilog.vim
"
" Credits:
"   Suggestions for improvement, bug reports by
"     Takuya Fujiwara <tyru.exe@gmail.com>
"     Thilo Six <debian@Xk2c.de>
"     Leo Butlero <lbutler@brocade.com>
"
" Buffer Variables:
"     b:verilog_indent_modules : indenting after the declaration
"				 of module blocks
"     b:verilog_indent_width   : indenting width
"     b:verilog_indent_verbose : verbose to each indenting
"

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetVerilogIndent()
setlocal indentkeys=!^F,o,O,0),=begin,=end,=join,=endcase
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
setlocal indentkeys+==endconfig,=endgenerate,=endprimitive,=endtable
setlocal indentkeys+==`else,=`elsif,=`endif

" Only define the function once.
if exists("*GetVerilogIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

function GetVerilogIndent()

  if exists('b:verilog_indent_width')
    let offset = b:verilog_indent_width
  else
    let offset = shiftwidth()
  endif
  if exists('b:verilog_indent_modules')
    let indent_modules = offset
  else
    let indent_modules = 0
  endif

  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif

  let lnum2 = prevnonblank(lnum - 1)
  let curr_line  = getline(v:lnum)
  let last_line  = getline(lnum)
  let last_line2 = getline(lnum2)
  let ind  = indent(lnum)
  let ind2 = indent(lnum - 1)
  let offset_comment1 = 1
  " Define the condition of an open statement
  "   Exclude the match of //, /* or */
  let vlog_openstat = '\(\<or\>\|\([*/]\)\@<![*(,{><+-/%^&|!=?:]\([*/]\)\@!\)'
  " Define the condition when the statement ends with a one-line comment
  let vlog_comment = '\(//.*\|/\*.*\*/\s*\)'
  if exists('b:verilog_indent_verbose')
    let vverb_str = 'INDENT VERBOSE:'
    let vverb = 1
  else
    let vverb = 0
  endif

  " Indent accoding to last line
  " End of multiple-line comment
  if last_line =~ '\*/\s*$' && last_line !~ '/\*.\{-}\*/'
    let ind = ind - offset_comment1
    if vverb
      echo vverb_str "De-indent after a multiple-line comment."
    endif

  " Indent after if/else/for/case/always/initial/specify/fork blocks
  " Note: We exclude '`if' or '`else' and consider 'end else' 
  "       'end if' is redundant here
  elseif last_line =~ '^\s*\(end\)\=\s*`\@<!\<\(if\|else\)\>' ||
    \ last_line =~ '^\s*\<\(for\|case\%[[zx]]\)\>' ||
    \ last_line =~ '^\s*\<\(always\|initial\)\>' ||
    \ last_line =~ '^\s*\<\(specify\|fork\)\>'
    if last_line !~ '\(;\|\<end\>\)\s*' . vlog_comment . '*$' ||
      \ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . vlog_comment . '*$'
      let ind = ind + offset
      if vverb | echo vverb_str "Indent after a block statement." | endif
    endif
  " Indent after function/task/config/generate/primitive/table blocks
  elseif last_line =~ '^\s*\<\(function\|task\|config\|generate\|primitive\|table\)\>'
    if last_line !~ '\<end\>\s*' . vlog_comment . '*$' ||
      \ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . vlog_comment . '*$'
      let ind = ind + offset
      if vverb
	echo vverb_str "Indent after function/task block statement."
      endif
    endif

  " Indent after module/function/task/specify/fork blocks
  elseif last_line =~ '^\s*\<module\>'
    let ind = ind + indent_modules
    if vverb && indent_modules
      echo vverb_str "Indent after module statement."
    endif
    if last_line =~ '[(,]\s*' . vlog_comment . '*$' &&
      \ last_line !~ '\(//\|/\*\).*[(,]\s*' . vlog_comment . '*$'
      let ind = ind + offset
      if vverb
	echo vverb_str "Indent after a multiple-line module statement."
      endif
    endif

  " Indent after a 'begin' statement
  elseif last_line =~ '\(\<begin\>\)\(\s*:\s*\w\+\)*' . vlog_comment . '*$' &&
    \ last_line !~ '\(//\|/\*\).*\(\<begin\>\)' &&
    \ ( last_line2 !~ vlog_openstat . '\s*' . vlog_comment . '*$' ||
    \ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . vlog_comment . '*$' )
    let ind = ind + offset
    if vverb | echo vverb_str "Indent after begin statement." | endif

  " De-indent for the end of one-line block
  elseif ( last_line !~ '\<begin\>' ||
    \ last_line =~ '\(//\|/\*\).*\<begin\>' ) &&
    \ last_line2 =~ '\<\(`\@<!if\|`\@<!else\|for\|always\|initial\)\>.*' .
      \ vlog_comment . '*$' &&
    \ last_line2 !~
      \ '\(//\|/\*\).*\<\(`\@<!if\|`\@<!else\|for\|always\|initial\)\>' &&
    \ last_line2 !~ vlog_openstat . '\s*' . vlog_comment . '*$' &&
    \ ( last_line2 !~ '\<begin\>' ||
    \ last_line2 =~ '\(//\|/\*\).*\<begin\>' )
    let ind = ind - offset
    if vverb
      echo vverb_str "De-indent after the end of one-line statement."
    endif

    " Multiple-line statement (including case statement)
    " Open statement
    "   Ident the first open line
    elseif  last_line =~ vlog_openstat . '\s*' . vlog_comment . '*$' &&
      \ last_line !~ '\(//\|/\*\).*' . vlog_openstat . '\s*$' &&
      \ last_line2 !~ vlog_openstat . '\s*' . vlog_comment . '*$'
      let ind = ind + offset
      if vverb | echo vverb_str "Indent after an open statement." | endif

    " Close statement
    "   De-indent for an optional close parenthesis and a semicolon, and only
    "   if there exists precedent non-whitespace char
    elseif last_line =~ ')*\s*;\s*' . vlog_comment . '*$' &&
      \ last_line !~ '^\s*)*\s*;\s*' . vlog_comment . '*$' &&
      \ last_line !~ '\(//\|/\*\).*\S)*\s*;\s*' . vlog_comment . '*$' &&
      \ ( last_line2 =~ vlog_openstat . '\s*' . vlog_comment . '*$' &&
      \ last_line2 !~ ';\s*//.*$') &&
      \ last_line2 !~ '^\s*' . vlog_comment . '$'
      let ind = ind - offset
      if vverb | echo vverb_str "De-indent after a close statement." | endif

  " `ifdef or `ifndef or `elsif or `else
  elseif last_line =~ '^\s*`\<\(ifn\?def\|elsif\|else\)\>'
    let ind = ind + offset
    if vverb
      echo vverb_str "Indent after a `ifdef or `ifndef or `elsif or `else statement."
    endif

  endif

  " Re-indent current line

  " De-indent on the end of the block
  " join/end/endcase/endfunction/endtask/endspecify
  if curr_line =~ '^\s*\<\(join\|end\|endcase\)\>' ||
    \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>' ||
    \ curr_line =~ '^\s*\<\(endconfig\|endgenerate\|endprimitive\|endtable\)\>'
    let ind = ind - offset
    if vverb | echo vverb_str "De-indent the end of a block." | endif
  elseif curr_line =~ '^\s*\<endmodule\>'
    let ind = ind - indent_modules
    if vverb && indent_modules
      echo vverb_str "De-indent the end of a module."
    endif

  " De-indent on a stand-alone 'begin'
  elseif curr_line =~ '^\s*\<begin\>'
    if last_line !~ '^\s*\<\(function\|task\|specify\|module\|config\|generate\|primitive\|table\)\>' &&
      \ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . vlog_comment . '*$' &&
      \ ( last_line =~
	\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\)\>' ||
      \ last_line =~ ')\s*' . vlog_comment . '*$' ||
      \ last_line =~ vlog_openstat . '\s*' . vlog_comment . '*$' )
      let ind = ind - offset
      if vverb
	echo vverb_str "De-indent a stand alone begin statement."
      endif
    endif

  " De-indent after the end of multiple-line statement
  elseif curr_line =~ '^\s*)' &&
    \ ( last_line =~ vlog_openstat . '\s*' . vlog_comment . '*$' ||
    \ last_line !~ vlog_openstat . '\s*' . vlog_comment . '*$' &&
    \ last_line2 =~ vlog_openstat . '\s*' . vlog_comment . '*$' )
    let ind = ind - offset
    if vverb
      echo vverb_str "De-indent the end of a multiple statement."
    endif

  " De-indent `elsif or `else or `endif
  elseif curr_line =~ '^\s*`\<\(elsif\|else\|endif\)\>'
    let ind = ind - offset
    if vverb | echo vverb_str "De-indent `elsif or `else or `endif statement." | endif

  endif

  " Return the indention
  return ind
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:sw=2
PK�j�Z�-�J9J9vim80/indent/vhdl.vimnu�[���" VHDL indent ('93 syntax)
" Language:    VHDL
" Maintainer:  Gerald Lai <laigera+vim?gmail.com>
" Version:     1.62
" Last Change: 2017 Oct 17
" URL:         http://www.vim.org/scripts/script.php?script_id=1450

" only load this indent file when no other was loaded
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

" setup indent options for local VHDL buffer
setlocal indentexpr=GetVHDLindent()
setlocal indentkeys=!^F,o,O,0(,0)
setlocal indentkeys+==~begin,=~end\ ,=~end\	,=~is,=~select,=~when
setlocal indentkeys+==~if,=~then,=~elsif,=~else
setlocal indentkeys+==~case,=~loop,=~for,=~generate,=~record,=~units,=~process,=~block,=~function,=~component,=~procedure
setlocal indentkeys+==~architecture,=~configuration,=~entity,=~package

" constants
" not a comment
let s:NC = '\%(--.*\)\@<!'
" end of string
let s:ES = '\s*\%(--.*\)\=$'
" no "end" keyword in front
let s:NE = '\%(\<end\s\+\)\@<!'

" option to disable alignment of generic/port mappings
if !exists("g:vhdl_indent_genportmap")
  let g:vhdl_indent_genportmap = 1
endif

" option to disable alignment of right-hand side assignment "<=" statements
if !exists("g:vhdl_indent_rhsassign")
  let g:vhdl_indent_rhsassign = 1
endif

" only define indent function once
if exists("*GetVHDLindent")
  finish
endif

function GetVHDLindent()
  " store current line & string
  let curn = v:lnum
  let curs = getline(curn)

  " find previous line that is not a comment
  let prevn = prevnonblank(curn - 1)
  let prevs = getline(prevn)
  while prevn > 0 && prevs =~ '^\s*--'
    let prevn = prevnonblank(prevn - 1)
    let prevs = getline(prevn)
  endwhile
  let prevs_noi = substitute(prevs, '^\s*', '', '')

  " default indent starts as previous non-comment line's indent
  let ind = prevn > 0 ? indent(prevn) : 0
  " backup default
  let ind2 = ind

  " indent:   special; kill string so it would not affect other filters
  " keywords: "report" + string
  " where:    anywhere in current or previous line
  let s0 = s:NC.'\<report\>\s*".*"'
  if curs =~? s0
    let curs = ""
  endif
  if prevs =~? s0
    let prevs = ""
  endif

  " indent:   previous line's comment position, otherwise follow next non-comment line if possible
  " keyword:  "--"
  " where:    start of current line
  if curs =~ '^\s*--'
    let pn = curn - 1
    let ps = getline(pn)
    if curs =~ '^\s*--\s' && ps =~ '--'
      return indent(pn) + stridx(substitute(ps, '^\s*', '', ''), '--')
    else
      " find nextnonblank line that is not a comment
      let nn = nextnonblank(curn + 1)
      let ns = getline(nn)
      while nn > 0 && ns =~ '^\s*--'
        let nn = nextnonblank(nn + 1)
        let ns = getline(nn)
      endwhile
      let n = indent(nn)
      return n != -1 ? n : ind
    endif
  endif

  " ****************************************************************************************
  " indent:   align generic variables & port names
  " keywords: "procedure" + name, "generic", "map", "port" + "(", provided current line is part of mapping
  " where:    anywhere in previous 2 lines
  " find following previous non-comment line
  let pn = prevnonblank(prevn - 1)
  let ps = getline(pn)
  while pn > 0 && ps =~ '^\s*--'
    let pn = prevnonblank(pn - 1)
    let ps = getline(pn)
  endwhile
  if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\((.*)\)*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\s\+\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
    " align closing ")" with opening "("
    if curs =~ '^\s*)'
      return ind2 + stridx(prevs_noi, '(')
    endif
    let m = matchend(prevs_noi, '(\s*\ze\w')
    if m != -1
      return ind2 + m
    else
      if g:vhdl_indent_genportmap
        return ind2 + stridx(prevs_noi, '(') + shiftwidth()
      else
        return ind2 + shiftwidth()
      endif
    endif
  endif

  " indent:   align conditional/select statement
  " keywords: variable + "<=" without ";" ending
  " where:    start of previous line
  if prevs =~? '^\s*\S\+\s*<=[^;]*'.s:ES
    if g:vhdl_indent_rhsassign
      return ind2 + matchend(prevs_noi, '<=\s*\ze.')
    else
      return ind2 + shiftwidth()
    endif
  endif

  " indent:   backtrace previous non-comment lines for next smaller or equal size indent
  " keywords: "end" + "record", "units"
  " where:    start of previous line
  " keyword:  ")"
  " where:    start of previous line
  " keyword:  without "<=" + ";" ending
  " where:    anywhere in previous line
  " keyword:  "=>" + ")" ending, provided current line does not begin with ")"
  " where:    anywhere in previous line
  " _note_:   indent allowed to leave this filter
  let m = 0
  if prevs =~? '^\s*end\s\+\%(record\|units\)\>'
    let m = 3
  elseif prevs =~ '^\s*)'
    let m = 1
  elseif prevs =~ s:NC.'\%(<=.*\)\@<!;'.s:ES || (curs !~ '^\s*)' && prevs =~ s:NC.'=>.*'.s:NC.')'.s:ES)
    let m = 2
  endif

  if m > 0
    let pn = prevnonblank(prevn - 1)
    let ps = getline(pn)
    while pn > 0
      let t = indent(pn)
      if ps !~ '^\s*--' && (t < ind || (t == ind && m == 3))
        " make sure one of these is true
        " keywords: variable + "<=" without ";" ending
        " where:    start of previous non-comment line
        " keywords: "procedure", "generic", "map", "port"
        " where:    anywhere in previous non-comment line
        " keyword:  "("
        " where:    start of previous non-comment line
        if m < 3 && ps !~? '^\s*\S\+\s*<=[^;]*'.s:ES
          if ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)\>' || ps =~ '^\s*('
            let ind = t
          endif
          break
        endif
        let ind = t
        if m > 1
          " find following previous non-comment line
          let ppn = prevnonblank(pn - 1)
          let pps = getline(ppn)
          while ppn > 0 && pps =~ '^\s*--'
            let ppn = prevnonblank(ppn - 1)
            let pps = getline(ppn)
          endwhile
          " indent:   follow
          " keyword:  "select"
          " where:    end of following previous non-comment line
          " keyword:  "type"
          " where:    start of following previous non-comment line
          if m == 2
            let s1 = s:NC.'\<select'.s:ES
            if ps !~? s1 && pps =~? s1
              let ind = indent(ppn)
            endif
          elseif m == 3
            let s1 = '^\s*type\>'
            if ps !~? s1 && pps =~? s1
              let ind = indent(ppn)
            endif
          endif
        endif
        break
      endif
      let pn = prevnonblank(pn - 1)
      let ps = getline(pn)
    endwhile
  endif

  " indent:   follow indent of previous opening statement, otherwise -sw
  " keyword:  "begin"
  " where:    anywhere in current line
  if curs =~? s:NC.'\<begin\>'
    " find previous opening statement of
    " keywords: "architecture", "block", "entity", "function", "generate", "procedure", "process"
    let s2 = s:NC.s:NE.'\<\%(architecture\|block\|entity\|function\|generate\|procedure\|process\)\>'

    let pn = prevnonblank(curn - 1)
    let ps = getline(pn)
    while pn > 0 && (ps =~ '^\s*--' || ps !~? s2)
      let pn = prevnonblank(pn - 1)
      let ps = getline(pn)

      if (ps =~? s:NC.'\<begin\>')
        return indent(pn) - shiftwidth()
      endif
    endwhile

    if (pn == 0)
      return ind - shiftwidth()
    else
      return indent(pn)
    endif
  endif

  " indent:   +sw if previous line is previous opening statement
  " keywords: "record", "units"
  " where:    anywhere in current line
  if curs =~? s:NC.s:NE.'\<\%(record\|units\)\>'
    " find previous opening statement of
    " keyword: "type"
    let s3 = s:NC.s:NE.'\<type\>'
    if curs !~? s3.'.*'.s:NC.'\<\%(record\|units\)\>.*'.s:ES && prevs =~? s3
      let ind = ind + shiftwidth()
    endif
    return ind
  endif

  " ****************************************************************************************
  " indent:   0
  " keywords: "architecture", "configuration", "entity", "library", "package"
  " where:    start of current line
  if curs =~? '^\s*\%(architecture\|configuration\|entity\|library\|package\)\>'
    return 0
  endif

  " indent:   maintain indent of previous opening statement
  " keyword:  "is"
  " where:    start of current line
  " find previous opening statement of
  " keywords: "architecture", "block", "configuration", "entity", "function", "package", "procedure", "process", "type"
  if curs =~? '^\s*\<is\>' && prevs =~? s:NC.s:NE.'\<\%(architecture\|block\|configuration\|entity\|function\|package\|procedure\|process\|type\)\>'
    return ind2
  endif

  " indent:   maintain indent of previous opening statement
  " keyword:  "then"
  " where:    start of current line
  " find previous opening statement of
  " keywords: "elsif", "if"
  if curs =~? '^\s*\<then\>' && prevs =~? s:NC.'\%(\<elsif\>\|'.s:NE.'\<if\>\)'
    return ind2
  endif

  " indent:   maintain indent of previous opening statement
  " keyword:  "generate"
  " where:    start of current line
  " find previous opening statement of
  " keywords: "for", "if"
  if curs =~? '^\s*\<generate\>' && prevs =~? s:NC.s:NE.'\%(\%(\<wait\s\+\)\@<!\<for\|\<if\)\>'
    return ind2
  endif

  " indent:   +sw
  " keywords: "block", "process"
  " removed:  "begin", "case", "elsif", "if", "loop", "record", "units", "while"
  " where:    anywhere in previous line
  if prevs =~? s:NC.s:NE.'\<\%(block\|process\)\>'
    return ind + shiftwidth()
  endif

  " indent:   +sw
  " keywords: "architecture", "configuration", "entity", "package"
  " removed:  "component", "for", "when", "with"
  " where:    start of previous line
  if prevs =~? '^\s*\%(architecture\|configuration\|entity\|package\)\>'
    return ind + shiftwidth()
  endif

  " indent:   +sw
  " keyword:  "select"
  " removed:  "generate", "is", "=>"
  " where:    end of previous line
  if prevs =~? s:NC.'\<select'.s:ES
    return ind + shiftwidth()
  endif

  " indent:   +sw
  " keyword:  "begin", "loop", "record", "units"
  " where:    anywhere in previous line
  " keyword:  "component", "else", "for"
  " where:    start of previous line
  " keyword:  "generate", "is", "then", "=>"
  " where:    end of previous line
  " _note_:   indent allowed to leave this filter
  if prevs =~? s:NC.'\%(\<begin\>\|'.s:NE.'\<\%(loop\|record\|units\)\>\)' || prevs =~? '^\s*\%(component\|else\|for\)\>' || prevs =~? s:NC.'\%('.s:NE.'\<generate\|\<\%(is\|then\)\|=>\)'.s:ES
    let ind = ind + shiftwidth()
  endif

  " ****************************************************************************************
  " indent:   -sw
  " keywords: "when", provided previous line does not begin with "when", does not end with "is"
  " where:    start of current line
  let s4 = '^\s*when\>'
  if curs =~? s4
    if prevs =~? s:NC.'\<is'.s:ES
      return ind
    elseif prevs !~? s4
      return ind - shiftwidth()
    else
      return ind2
    endif
  endif

  " indent:   -sw
  " keywords: "else", "elsif", "end" + "block", "for", "function", "generate", "if", "loop", "procedure", "process", "record", "units"
  " where:    start of current line
  let s5 = 'block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units'
  if curs =~? '^\s*\%(else\|elsif\|end\s\+\%('.s5.'\)\)\>'
    if prevs =~? '^\s*\%(elsif\|'.s5.'\)'
      return ind
    else
      return ind - shiftwidth()
    endif
  endif

  " indent:   backtrace previous non-comment lines
  " keyword:  "end" + "case", "component"
  " where:    start of current line
  let m = 0
  if curs =~? '^\s*end\s\+case\>'
    let m = 1
  elseif curs =~? '^\s*end\s\+component\>'
    let m = 2
  endif

  if m > 0
    " find following previous non-comment line
    let pn = prevn
    let ps = getline(pn)
    while pn > 0
      if ps !~ '^\s*--'
        "indent:   -2sw
        "keywords: "end" + "case"
        "where:    start of previous non-comment line
        "indent:   -sw
        "keywords: "when"
        "where:    start of previous non-comment line
        "indent:   follow
        "keywords: "case"
        "where:    start of previous non-comment line
        if m == 1
          if ps =~? '^\s*end\s\+case\>'
            return indent(pn) - 2 * shiftwidth()
          elseif ps =~? '^\s*when\>'
            return indent(pn) - shiftwidth()
          elseif ps =~? '^\s*case\>'
            return indent(pn)
          endif
        "indent:   follow
        "keyword:  "component"
        "where:    start of previous non-comment line
        elseif m == 2
          if ps =~? '^\s*component\>'
            return indent(pn)
          endif
        endif
      endif
      let pn = prevnonblank(pn - 1)
      let ps = getline(pn)
    endwhile
    return ind - shiftwidth()
  endif

  " indent:   -sw
  " keyword:  ")"
  " where:    start of current line
  if curs =~ '^\s*)'
    return ind - shiftwidth()
  endif

  " indent:   0
  " keywords: "end" + "architecture", "configuration", "entity", "package"
  " where:    start of current line
  if curs =~? '^\s*end\s\+\%(architecture\|configuration\|entity\|package\)\>'
    return 0
  endif

  " indent:   -sw
  " keywords: "end" + identifier, ";"
  " where:    start of current line
  "if curs =~? '^\s*end\s\+\w\+\>'
  if curs =~? '^\s*end\%(\s\|;'.s:ES.'\)'
    return ind - shiftwidth()
  endif

  " ****************************************************************************************
  " indent:   maintain indent of previous opening statement
  " keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
  " where:    start of current line
  if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
    return ind2
  endif

  " ****************************************************************************************
  " indent:     maintain indent of previous opening statement, corner case which
  "             does not end in ;, but is part of a mapping
  " keywords:   without "procedure", "generic", "map", "port" + ":" but not ":=", never + ;$ and
  "             prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
  " where:      start of current line
  if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
    if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
      return ind2
    endif
  endif

  " return leftover filtered indent
  return ind
endfunction
PK�j�ZP��
��vim80/indent/xf86conf.vimnu�[���" Vim indent file
" Language:             XFree86 Configuration File
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetXF86ConfIndent()
setlocal indentkeys=!^F,o,O,=End
setlocal nosmartindent

if exists("*GetXF86ConfIndent")
  finish
endif

function GetXF86ConfIndent()
  let lnum = prevnonblank(v:lnum - 1)

  if lnum == 0
    return 0
  endif

  let ind = indent(lnum)

  if getline(lnum) =~? '^\s*\(Sub\)\=Section\>'
    let ind = ind + shiftwidth()
  endif

  if getline(v:lnum) =~? '^\s*End\(Sub\)\=Section\>'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction
PK�j�Z
�)�mmvim80/indent/objc.vimnu�[���"   Vim indent file
"   Language:	    Objective-C
"   Maintainer:	    Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com>
"   Last Change:    2004 May 16
"


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1
setlocal cindent

" Set the function to do the work.
setlocal indentexpr=GetObjCIndent()

" To make a colon (:) suggest an indentation other than a goto/swich label,
setlocal indentkeys-=:
setlocal indentkeys+=<:>

" Only define the function once.
if exists("*GetObjCIndent")
    finish
endif

function s:GetWidth(line, regexp)
    let end = matchend(a:line, a:regexp)
    let width = 0
    let i = 0
    while i < end
	if a:line[i] != "\t"
	    let width = width + 1
	else
	    let width = width + &ts - (width % &ts)
	endif
	let i = i + 1
    endwhile
    return width
endfunction

function s:LeadingWhiteSpace(line)
    let end = strlen(a:line)
    let width = 0
    let i = 0
    while i < end
	let char = a:line[i]
	if char != " " && char != "\t"
	    break
	endif
	if char != "\t"
	    let width = width + 1
	else
	    let width = width + &ts - (width % &ts)
	endif
	let i = i + 1
    endwhile
    return width
endfunction


function GetObjCIndent()
    let theIndent = cindent(v:lnum)

    let prev_line = getline(v:lnum - 1)
    let cur_line = getline(v:lnum)

    if prev_line !~# ":" || cur_line !~# ":"
	return theIndent
    endif

    if prev_line !~# ";"
	let prev_colon_pos = s:GetWidth(prev_line, ":")
	let delta = s:GetWidth(cur_line, ":") - s:LeadingWhiteSpace(cur_line)
	let theIndent = prev_colon_pos - delta
    endif

    return theIndent
endfunction
PK�j�ZvD�J]]vim80/indent/tcl.vimnu�[���" Vim indent file
" Language:	    Tcl
" Maintainer:	    Nikolai Weibull <now@bitwi.se>
" Latest Revision:  2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetTclIndent()
setlocal indentkeys=0{,0},!^F,o,O,0]
setlocal nosmartindent

if exists("*GetTclIndent")
  finish
endif

function s:prevnonblanknoncomment(lnum)
  let lnum = prevnonblank(a:lnum)
  while lnum > 0
    let line = getline(lnum)
    if line !~ '^\s*\(#\|$\)'
      break
    endif
    let lnum = prevnonblank(lnum - 1)
  endwhile
  return lnum
endfunction

function s:count_braces(lnum, count_open)
  let n_open = 0
  let n_close = 0
  let line = getline(a:lnum)
  let pattern = '[{}]'
  let i = match(line, pattern)
  while i != -1
    if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'tcl\%(Comment\|String\)'
      if line[i] == '{'
        let n_open += 1
      elseif line[i] == '}'
        if n_open > 0
          let n_open -= 1
        else
          let n_close += 1
        endif
      endif
    endif
    let i = match(line, pattern, i + 1)
  endwhile
  return a:count_open ? n_open : n_close
endfunction

function GetTclIndent()
  let line = getline(v:lnum)
  if line =~ '^\s*\*'
    return cindent(v:lnum)
  elseif line =~ '^\s*}'
    return indent(v:lnum) - shiftwidth()
  endif

  let pnum = s:prevnonblanknoncomment(v:lnum - 1)
  if pnum == 0
    return 0
  endif

  let ind = indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()

  let pline = getline(pnum)
  if pline =~ '}\s*$'
    let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * shiftwidth()
  endif

  return ind
endfunction
PK�j�Z�c���vim80/indent/less.vimnu�[���" Vim indent file
" Language:	less
" Maintainer:	Alessandro Vioni <jenoma@gmail.com>
" URL: https://github.com/genoma/vim-less
" Last Change:	2014 November 24

if exists("b:did_indent")
  finish
endif

runtime! indent/css.vim

" vim:set sw=2:
PK�j�Z	ٹ�QQvim80/indent/dictconf.vimnu�[���" Vim indent file
" Language:             dict(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
setlocal nosmartindent
inoremap <buffer> # X#
PK�j�Z�m$��vim80/indent/config.vimnu�[���" Vim indent file
" Language:             Autoconf configure.{ac,in} file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20
" TODO:                 how about nested [()]'s in one line
"                   what's wrong with '\\\@!'?

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

runtime! indent/sh.vim          " will set b:did_indent

setlocal indentexpr=GetConfigIndent()
setlocal indentkeys=!^F,o,O,=then,=do,=else,=elif,=esac,=fi,=fin,=fil,=done
setlocal nosmartindent

" Only define the function once.
if exists("*GetConfigIndent")
  finish
endif

" get the offset (indent) of the end of the match of 'regexp' in 'line'
function s:GetOffsetOf(line, regexp)
  let end = matchend(a:line, a:regexp)
  let width = 0
  let i = 0
  while i < end
    if a:line[i] != "\t"
      let width = width + 1
    else
      let width = width + &ts - (width % &ts)
    endif
    let i = i + 1
  endwhile
  return width
endfunction

function GetConfigIndent()
  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " Hit the start of the file, use zero indent.
  if lnum == 0
    return 0
  endif

  " where to put this
  let ind = GetShIndent()
  let line = getline(lnum)

  " if previous line has unmatched, unescaped opening parentheses,
  " indent to its position. TODO: not failsafe if multiple ('s
  if line =~ '\\\@<!([^)]*$'
    let ind = s:GetOffsetOf(line, '\\\@!(')
  endif

  " if previous line has unmatched opening bracket,
  " indent to its position. TODO: same as above
  if line =~ '\[[^]]*$'
    let ind = s:GetOffsetOf(line, '\[')
  endif

  " if previous line had an unmatched closing parantheses,
  " indent to the matching opening parantheses
  if line =~ '[^(]\+\\\@<!)$'
    call search(')', 'bW')
    let lnum = searchpair('\\\@<!(', '', ')', 'bWn')
    let ind = indent(lnum)
  endif

  " if previous line had an unmatched closing bracket,
  " indent to the matching opening bracket
  if line =~ '[^[]\+]$'
    call search(']', 'bW')
    let lnum = searchpair('\[', '', ']', 'bWn')
    let ind = indent(lnum)
  endif

  return ind
endfunction
PK�j�Z�Bɓ��vim80/indent/systemd.vimnu�[���" Vim indent file
" Language:  systemd.unit(5)

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Looks a lot like dosini files.
runtime! indent/dosini.vim
PK�j�Z�n�qvim80/indent/occam.vimnu�[���" Vim indent file
" Language:	occam
" Maintainer:	Mario Schweigler <ms44@kent.ac.uk>
" Last Change:	23 April 2003

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

"{{{  Settings
" Set the occam indent function
setlocal indentexpr=GetOccamIndent()
" Indent after new line and after initial colon
setlocal indentkeys=o,O,0=:
"}}}

" Only define the function once
if exists("*GetOccamIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

"{{{  Indent definitions
" Define carriage return indent
let s:FirstLevelIndent = '^\C\s*\(IF\|ALT\|PRI\s\+ALT\|PAR\|SEQ\|PRI\s\+PAR\|WHILE\|VALOF\|CLAIM\|FORKING\)\>\|\(--.*\)\@<!\(\<PROC\>\|??\|\<CASE\>\s*\(--.*\)\=\_$\)'
let s:FirstLevelNonColonEndIndent = '^\C\s*PROTOCOL\>\|\(--.*\)\@<!\<\(\(CHAN\|DATA\)\s\+TYPE\|FUNCTION\)\>'
let s:SecondLevelIndent = '^\C\s*\(IF\|ALT\|PRI\s\+ALT\)\>\|\(--.*\)\@<!?\s*\<CASE\>\s*\(--.*\)\=\_$'
let s:SecondLevelNonColonEndIndent = '\(--.*\)\@<!\<\(CHAN\|DATA\)\s\+TYPE\>'

" Define colon indent
let s:ColonIndent = '\(--.*\)\@<!\<PROC\>'
let s:ColonNonColonEndIndent = '^\C\s*PROTOCOL\>\|\(--.*\)\@<!\<\(\(CHAN\|DATA\)\s\+TYPE\|FUNCTION\)\>'

let s:ColonEnd = '\(--.*\)\@<!:\s*\(--.*\)\=$'
let s:ColonStart = '^\s*:\s*\(--.*\)\=$'

" Define comment
let s:CommentLine = '^\s*--'
"}}}

"{{{  function GetOccamIndent()
" Auxiliary function to get the correct indent for a line of occam code
function GetOccamIndent()

  " Ensure magic is on
  let save_magic = &magic
  setlocal magic

  " Get reference line number
  let linenum = prevnonblank(v:lnum - 1)
  while linenum > 0 && getline(linenum) =~ s:CommentLine
    let linenum = prevnonblank(linenum - 1)
  endwhile

  " Get current indent
  let curindent = indent(linenum)

  " Get current line
  let line = getline(linenum)

  " Get previous line number
  let prevlinenum = prevnonblank(linenum - 1)
  while prevlinenum > 0 && getline(prevlinenum) =~ s:CommentLine
    let prevlinenum = prevnonblank(prevlinenum - 1)
  endwhile

  " Get previous line
  let prevline = getline(prevlinenum)

  " Colon indent
  if getline(v:lnum) =~ s:ColonStart

    let found = 0

    while found < 1

      if line =~ s:ColonStart
	let found = found - 1
      elseif line =~ s:ColonIndent || (line =~ s:ColonNonColonEndIndent && line !~ s:ColonEnd)
	let found = found + 1
      endif

      if found < 1
	let linenum = prevnonblank(linenum - 1)
	if linenum > 0
	  let line = getline(linenum)
	else
	  let found = 1
	endif
      endif

    endwhile

    if linenum > 0
      let curindent = indent(linenum)
    else
      let colonline = getline(v:lnum)
      let tabstr = ''
      while strlen(tabstr) < &tabstop
	let tabstr = ' ' . tabstr
      endwhile
      let colonline = substitute(colonline, '\t', tabstr, 'g')
      let curindent = match(colonline, ':')
    endif

    " Restore magic
    if !save_magic|setlocal nomagic|endif

    return curindent
  endif

  if getline(v:lnum) =~ '^\s*:'
    let colonline = getline(v:lnum)
    let tabstr = ''
    while strlen(tabstr) < &tabstop
      let tabstr = ' ' . tabstr
    endwhile
    let colonline = substitute(colonline, '\t', tabstr, 'g')
    let curindent = match(colonline, ':')

    " Restore magic
    if !save_magic|setlocal nomagic|endif

    return curindent
  endif

  " Carriage return indenat
  if line =~ s:FirstLevelIndent || (line =~ s:FirstLevelNonColonEndIndent && line !~ s:ColonEnd)
	\ || (line !~ s:ColonStart && (prevline =~ s:SecondLevelIndent
	\ || (prevline =~ s:SecondLevelNonColonEndIndent && prevline !~ s:ColonEnd)))
    let curindent = curindent + shiftwidth()

    " Restore magic
    if !save_magic|setlocal nomagic|endif

    return curindent
  endif

  " Commented line
  if getline(prevnonblank(v:lnum - 1)) =~ s:CommentLine

    " Restore magic
    if !save_magic|setlocal nomagic|endif

    return indent(prevnonblank(v:lnum - 1))
  endif

  " Look for previous second level IF / ALT / PRI ALT
  let found = 0

  while !found

    if indent(prevlinenum) == curindent - shiftwidth()
      let found = 1
    endif

    if !found
      let prevlinenum = prevnonblank(prevlinenum - 1)
      while prevlinenum > 0 && getline(prevlinenum) =~ s:CommentLine
	let prevlinenum = prevnonblank(prevlinenum - 1)
      endwhile
      if prevlinenum == 0
	let found = 1
      endif
    endif

  endwhile

  if prevlinenum > 0
    if getline(prevlinenum) =~ s:SecondLevelIndent
      let curindent = curindent + shiftwidth()
    endif
  endif

  " Restore magic
  if !save_magic|setlocal nomagic|endif

  return curindent

endfunction
"}}}

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�M�f��vim80/indent/jsp.vimnu�[���" Vim filetype indent file
" Language:    JSP files
" Maintainer:  David Fishburn <fishburn@ianywhere.com>
" Version:     1.0
" Last Change: Wed Nov 08 2006 11:08:05 AM

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif

" If there has been no specific JSP indent script created, 
" use the default html indent script which will handle
" html, javascript and most of the JSP constructs.
runtime! indent/html.vim


PK�j�Z��ppvim80/indent/python.vimnu�[���" Vim indent file
" Language:		Python
" Maintainer:		Bram Moolenaar <Bram@vim.org>
" Original Author:	David Bustos <bustos@caltech.edu>
" Last Change:		2013 Jul 9

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

" Some preliminary settings
setlocal nolisp		" Make sure lisp indenting doesn't supersede us
setlocal autoindent	" indentexpr isn't much help otherwise

setlocal indentexpr=GetPythonIndent(v:lnum)
setlocal indentkeys+=<:>,=elif,=except

" Only define the function once.
if exists("*GetPythonIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

" Come here when loading the script the first time.

let s:maxoff = 50	" maximum number of lines to look backwards for ()

function GetPythonIndent(lnum)

  " If this line is explicitly joined: If the previous line was also joined,
  " line it up with that one, otherwise add two 'shiftwidth'
  if getline(a:lnum - 1) =~ '\\$'
    if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
      return indent(a:lnum - 1)
    endif
    return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (shiftwidth() * 2))
  endif

  " If the start of the line is in a string don't change the indent.
  if has('syntax_items')
	\ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
    return -1
  endif

  " Search backwards for the previous non-empty line.
  let plnum = prevnonblank(v:lnum - 1)

  if plnum == 0
    " This is the first non-empty line, use zero indent.
    return 0
  endif

  " If the previous line is inside parenthesis, use the indent of the starting
  " line.
  " Trick: use the non-existing "dummy" variable to break out of the loop when
  " going too far back.
  call cursor(plnum, 1)
  let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
	  \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'")
  if parlnum > 0
    let plindent = indent(parlnum)
    let plnumstart = parlnum
  else
    let plindent = indent(plnum)
    let plnumstart = plnum
  endif


  " When inside parenthesis: If at the first line below the parenthesis add
  " two 'shiftwidth', otherwise same as previous line.
  " i = (a
  "       + b
  "       + c)
  call cursor(a:lnum, 1)
  let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'")
  if p > 0
    if p == plnum
      " When the start is inside parenthesis, only indent one 'shiftwidth'.
      let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'")
      if pp > 0
	return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
      endif
      return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
    endif
    if plnumstart == p
      return indent(plnum)
    endif
    return plindent
  endif


  " Get the line and remove a trailing comment.
  " Use syntax highlighting attributes when possible.
  let pline = getline(plnum)
  let pline_len = strlen(pline)
  if has('syntax_items')
    " If the last character in the line is a comment, do a binary search for
    " the start of the comment.  synID() is slow, a linear search would take
    " too long on a long line.
    if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$"
      let min = 1
      let max = pline_len
      while min < max
	let col = (min + max) / 2
	if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$"
	  let max = col
	else
	  let min = col + 1
	endif
      endwhile
      let pline = strpart(pline, 0, min - 1)
    endif
  else
    let col = 0
    while col < pline_len
      if pline[col] == '#'
	let pline = strpart(pline, 0, col)
	break
      endif
      let col = col + 1
    endwhile
  endif

  " If the previous line ended with a colon, indent this line
  if pline =~ ':\s*$'
    return plindent + shiftwidth()
  endif

  " If the previous line was a stop-execution statement...
  if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\)\>'
    " See if the user has already dedented
    if indent(a:lnum) > indent(plnum) - shiftwidth()
      " If not, recommend one dedent
      return indent(plnum) - shiftwidth()
    endif
    " Otherwise, trust the user
    return -1
  endif

  " If the current line begins with a keyword that lines up with "try"
  if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
    let lnum = a:lnum - 1
    while lnum >= 1
      if getline(lnum) =~ '^\s*\(try\|except\)\>'
	let ind = indent(lnum)
	if ind >= indent(a:lnum)
	  return -1	" indent is already less than this
	endif
	return ind	" line up with previous try or except
      endif
      let lnum = lnum - 1
    endwhile
    return -1		" no matching "try"!
  endif

  " If the current line begins with a header keyword, dedent
  if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'

    " Unless the previous line was a one-liner
    if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>'
      return plindent
    endif

    " Or the user has already dedented
    if indent(a:lnum) <= plindent - shiftwidth()
      return -1
    endif

    return plindent - shiftwidth()
  endif

  " When after a () construct we probably want to go back to the start line.
  " a = (b
  "       + c)
  " here
  if parlnum > 0
    return plindent
  endif

  return -1

endfunction

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:sw=2
PK�j�ZO���(�(vim80/indent/clojure.vimnu�[���" Vim indent file
" Language:     Clojure
" Author:       Meikel Brandmeyer <mb@kotka.de>
" URL:          http://kotka.de/projects/clojure/vimclojure.html
"
" Maintainer:   Sung Pae <self@sungpae.com>
" URL:          https://github.com/guns/vim-clojure-static
" License:      Same as Vim
" Last Change:  18 July 2016

if exists("b:did_indent")
	finish
endif
let b:did_indent = 1

let s:save_cpo = &cpo
set cpo&vim

let b:undo_indent = 'setlocal autoindent< smartindent< expandtab< softtabstop< shiftwidth< indentexpr< indentkeys<'

setlocal noautoindent nosmartindent
setlocal softtabstop=2 shiftwidth=2 expandtab
setlocal indentkeys=!,o,O

if exists("*searchpairpos")

	if !exists('g:clojure_maxlines')
		let g:clojure_maxlines = 100
	endif

	if !exists('g:clojure_fuzzy_indent')
		let g:clojure_fuzzy_indent = 1
	endif

	if !exists('g:clojure_fuzzy_indent_patterns')
		let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
	endif

	if !exists('g:clojure_fuzzy_indent_blacklist')
		let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
	endif

	if !exists('g:clojure_special_indent_words')
		let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
	endif

	if !exists('g:clojure_align_multiline_strings')
		let g:clojure_align_multiline_strings = 0
	endif

	if !exists('g:clojure_align_subforms')
		let g:clojure_align_subforms = 0
	endif

	function! s:syn_id_name()
		return synIDattr(synID(line("."), col("."), 0), "name")
	endfunction

	function! s:ignored_region()
		return s:syn_id_name() =~? '\vstring|regex|comment|character'
	endfunction

	function! s:current_char()
		return getline('.')[col('.')-1]
	endfunction

	function! s:current_word()
		return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
	endfunction

	function! s:is_paren()
		return s:current_char() =~# '\v[\(\)\[\]\{\}]' && !s:ignored_region()
	endfunction

	" Returns 1 if string matches a pattern in 'patterns', which may be a
	" list of patterns, or a comma-delimited string of implicitly anchored
	" patterns.
	function! s:match_one(patterns, string)
		let list = type(a:patterns) == type([])
		           \ ? a:patterns
		           \ : map(split(a:patterns, ','), '"^" . v:val . "$"')
		for pat in list
			if a:string =~# pat | return 1 | endif
		endfor
	endfunction

	function! s:match_pairs(open, close, stopat)
		" Stop only on vector and map [ resp. {. Ignore the ones in strings and
		" comments.
		if a:stopat == 0
			let stopat = max([line(".") - g:clojure_maxlines, 0])
		else
			let stopat = a:stopat
		endif

		let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:is_paren()", stopat)
		return [pos[0], col(pos)]
	endfunction

	function! s:clojure_check_for_string_worker()
		" Check whether there is the last character of the previous line is
		" highlighted as a string. If so, we check whether it's a ". In this
		" case we have to check also the previous character. The " might be the
		" closing one. In case the we are still in the string, we search for the
		" opening ". If this is not found we take the indent of the line.
		let nb = prevnonblank(v:lnum - 1)

		if nb == 0
			return -1
		endif

		call cursor(nb, 0)
		call cursor(0, col("$") - 1)
		if s:syn_id_name() !~? "string"
			return -1
		endif

		" This will not work for a " in the first column...
		if s:current_char() == '"'
			call cursor(0, col("$") - 2)
			if s:syn_id_name() !~? "string"
				return -1
			endif
			if s:current_char() != '\\'
				return -1
			endif
			call cursor(0, col("$") - 1)
		endif

		let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')

		if p != [0, 0]
			return p[1] - 1
		endif

		return indent(".")
	endfunction

	function! s:check_for_string()
		let pos = getpos('.')
		try
			let val = s:clojure_check_for_string_worker()
		finally
			call setpos('.', pos)
		endtry
		return val
	endfunction

	function! s:strip_namespace_and_macro_chars(word)
		return substitute(a:word, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
	endfunction

	function! s:clojure_is_method_special_case_worker(position)
		" Find the next enclosing form.
		call search('\S', 'Wb')

		" Special case: we are at a '(('.
		if s:current_char() == '('
			return 0
		endif
		call cursor(a:position)

		let next_paren = s:match_pairs('(', ')', 0)

		" Special case: we are now at toplevel.
		if next_paren == [0, 0]
			return 0
		endif
		call cursor(next_paren)

		call search('\S', 'W')
		let w = s:strip_namespace_and_macro_chars(s:current_word())
		if g:clojure_special_indent_words =~# '\V\<' . w . '\>'
			return 1
		endif

		return 0
	endfunction

	function! s:is_method_special_case(position)
		let pos = getpos('.')
		try
			let val = s:clojure_is_method_special_case_worker(a:position)
		finally
			call setpos('.', pos)
		endtry
		return val
	endfunction

	" Check if form is a reader conditional, that is, it is prefixed by #?
	" or @#?
	function! s:is_reader_conditional_special_case(position)
		if getline(a:position[0])[a:position[1] - 3 : a:position[1] - 2] == "#?"
			return 1
		endif

		return 0
	endfunction

	" Returns 1 for opening brackets, -1 for _anything else_.
	function! s:bracket_type(char)
		return stridx('([{', a:char) > -1 ? 1 : -1
	endfunction

	" Returns: [opening-bracket-lnum, indent]
	function! s:clojure_indent_pos()
		" Get rid of special case.
		if line(".") == 1
			return [0, 0]
		endif

		" We have to apply some heuristics here to figure out, whether to use
		" normal lisp indenting or not.
		let i = s:check_for_string()
		if i > -1
			return [0, i + !!g:clojure_align_multiline_strings]
		endif

		call cursor(0, 1)

		" Find the next enclosing [ or {. We can limit the second search
		" to the line, where the [ was found. If no [ was there this is
		" zero and we search for an enclosing {.
		let paren = s:match_pairs('(', ')', 0)
		let bracket = s:match_pairs('\[', '\]', paren[0])
		let curly = s:match_pairs('{', '}', bracket[0])

		" In case the curly brace is on a line later then the [ or - in
		" case they are on the same line - in a higher column, we take the
		" curly indent.
		if curly[0] > bracket[0] || curly[1] > bracket[1]
			if curly[0] > paren[0] || curly[1] > paren[1]
				return curly
			endif
		endif

		" If the curly was not chosen, we take the bracket indent - if
		" there was one.
		if bracket[0] > paren[0] || bracket[1] > paren[1]
			return bracket
		endif

		" There are neither { nor [ nor (, ie. we are at the toplevel.
		if paren == [0, 0]
			return paren
		endif

		" Now we have to reimplement lispindent. This is surprisingly easy, as
		" soon as one has access to syntax items.
		"
		" - Check whether we are in a special position after a word in
		"   g:clojure_special_indent_words. These are special cases.
		" - Get the next keyword after the (.
		" - If its first character is also a (, we have another sexp and align
		"   one column to the right of the unmatched (.
		" - In case it is in lispwords, we indent the next line to the column of
		"   the ( + sw.
		" - If not, we check whether it is last word in the line. In that case
		"   we again use ( + sw for indent.
		" - In any other case we use the column of the end of the word + 2.
		call cursor(paren)

		if s:is_method_special_case(paren)
			return [paren[0], paren[1] + shiftwidth() - 1]
		endif

		if s:is_reader_conditional_special_case(paren)
			return paren
		endif

		" In case we are at the last character, we use the paren position.
		if col("$") - 1 == paren[1]
			return paren
		endif

		" In case after the paren is a whitespace, we search for the next word.
		call cursor(0, col('.') + 1)
		if s:current_char() == ' '
			call search('\v\S', 'W')
		endif

		" If we moved to another line, there is no word after the (. We
		" use the ( position for indent.
		if line(".") > paren[0]
			return paren
		endif

		" We still have to check, whether the keyword starts with a (, [ or {.
		" In that case we use the ( position for indent.
		let w = s:current_word()
		if s:bracket_type(w[0]) == 1
			return paren
		endif

		" Test words without namespace qualifiers and leading reader macro
		" metacharacters.
		"
		" e.g. clojure.core/defn and #'defn should both indent like defn.
		let ww = s:strip_namespace_and_macro_chars(w)

		if &lispwords =~# '\V\<' . ww . '\>'
			return [paren[0], paren[1] + shiftwidth() - 1]
		endif

		if g:clojure_fuzzy_indent
			\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
			\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
			return [paren[0], paren[1] + shiftwidth() - 1]
		endif

		call search('\v\_s', 'cW')
		call search('\v\S', 'W')
		if paren[0] < line(".")
			return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : shiftwidth() - 1)]
		endif

		call search('\v\S', 'bW')
		return [line('.'), col('.') + 1]
	endfunction

	function! GetClojureIndent()
		let lnum = line('.')
		let orig_lnum = lnum
		let orig_col = col('.')
		let [opening_lnum, indent] = s:clojure_indent_pos()

		" Account for multibyte characters
		if opening_lnum > 0
			let indent -= indent - virtcol([opening_lnum, indent])
		endif

		" Return if there are no previous lines to inherit from
		if opening_lnum < 1 || opening_lnum >= lnum - 1
			call cursor(orig_lnum, orig_col)
			return indent
		endif

		let bracket_count = 0

		" Take the indent of the first previous non-white line that is
		" at the same sexp level. cf. src/misc1.c:get_lisp_indent()
		while 1
			let lnum = prevnonblank(lnum - 1)
			let col = 1

			if lnum <= opening_lnum
				break
			endif

			call cursor(lnum, col)

			" Handle bracket counting edge case
			if s:is_paren()
				let bracket_count += s:bracket_type(s:current_char())
			endif

			while 1
				if search('\v[(\[{}\])]', '', lnum) < 1
					break
				elseif !s:ignored_region()
					let bracket_count += s:bracket_type(s:current_char())
				endif
			endwhile

			if bracket_count == 0
				" Check if this is part of a multiline string
				call cursor(lnum, 1)
				if s:syn_id_name() !~? '\vstring|regex'
					call cursor(orig_lnum, orig_col)
					return indent(lnum)
				endif
			endif
		endwhile

		call cursor(orig_lnum, orig_col)
		return indent
	endfunction

	setlocal indentexpr=GetClojureIndent()

else

	" In case we have searchpairpos not available we fall back to
	" normal lisp indenting.
	setlocal indentexpr=
	setlocal lisp
	let b:undo_indent .= '| setlocal lisp<'

endif

let &cpo = s:save_cpo
unlet! s:save_cpo

" vim:sts=8:sw=8:ts=8:noet
PK�j�ZL�*__vim80/indent/awk.vimnu�[���"  vim: set sw=3 sts=3:

" Awk indent script. It can handle multi-line statements and expressions.
" It works up to the point where the distinction between correct/incorrect
" and personal taste gets fuzzy. Drop me an e-mail for bug reports and
" reasonable style suggestions.
"
" Bugs:
" =====
" - Some syntax errors may cause erratic indentation.
" - Same for very unusual but syntacticly correct use of { }
" - In some cases it's confused by the use of ( and { in strings constants
" - This version likes the closing brace of a multiline pattern-action be on
"   character position 1 before the following pattern-action combination is
"   formatted

" Author:
" =======
" Erik Janssen, ejanssen@itmatters.nl
"
" History:
" ========
" 26-04-2002 Got initial version working reasonably well
" 29-04-2002 Fixed problems in function headers and max line width
"	     Added support for two-line if's without curly braces
" Fixed hang: 2011 Aug 31

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif

let b:did_indent = 1

setlocal indentexpr=GetAwkIndent()
" Mmm, copied from the tcl indent program. Is this okay?
setlocal indentkeys-=:,0#

" Only define the function once.
if exists("*GetAwkIndent")
    finish
endif

" This function contains a lot of exit points. It checks for simple cases
" first to get out of the function as soon as possible, thereby reducing the
" number of possibilities later on in the difficult parts

function! GetAwkIndent()

   " Find previous line and get it's indentation
   let prev_lineno = s:Get_prev_line( v:lnum )
   if prev_lineno == 0
      return 0
   endif
   let prev_data = getline( prev_lineno )
   let ind = indent( prev_lineno )

   " Increase indent if the previous line contains an opening brace. Search
   " for this brace the hard way to prevent errors if the previous line is a
   " 'pattern { action }' (simple check match on /{/ increases the indent then)

   if s:Get_brace_balance( prev_data, '{', '}' ) > 0
      return ind + shiftwidth()
   endif

   let brace_balance = s:Get_brace_balance( prev_data, '(', ')' )

   " If prev line has positive brace_balance and starts with a word (keyword
   " or function name), align the current line on the first '(' of the prev
   " line

   if brace_balance > 0 && s:Starts_with_word( prev_data )
      return s:Safe_indent( ind, s:First_word_len(prev_data), getline(v:lnum))
   endif

   " If this line starts with an open brace bail out now before the line
   " continuation checks.

   if getline( v:lnum ) =~ '^\s*{'
      return ind
   endif

   " If prev line seems to be part of multiline statement:
   " 1. Prev line is first line of a multiline statement
   "    -> attempt to indent on first ' ' or '(' of prev line, just like we
   "       indented the positive brace balance case above
   " 2. Prev line is not first line of a multiline statement
   "    -> copy indent of prev line

   let continue_mode = s:Seems_continuing( prev_data )
   if continue_mode > 0
     if s:Seems_continuing( getline(s:Get_prev_line( prev_lineno )) )
       " Case 2
       return ind
     else
       " Case 1
       if continue_mode == 1
	  " Need continuation due to comma, backslash, etc
	  return s:Safe_indent( ind, s:First_word_len(prev_data), getline(v:lnum))
       else
	 " if/for/while without '{'
	 return ind + shiftwidth()
       endif
     endif
   endif

   " If the previous line doesn't need continuation on the current line we are
   " on the start of a new statement.  We have to make sure we align with the
   " previous statement instead of just the previous line. This is a bit
   " complicated because the previous statement might be multi-line.
   "
   " The start of a multiline statement can be found by:
   "
   " 1 If the previous line contains closing braces and has negative brace
   "   balance, search backwards until cumulative brace balance becomes zero,
   "   take indent of that line
   " 2 If the line before the previous needs continuation search backward
   "   until that's not the case anymore. Take indent of one line down.

   " Case 1
   if prev_data =~ ')' && brace_balance < 0
      while brace_balance != 0 && prev_lineno > 0
	 let prev_lineno = s:Get_prev_line( prev_lineno )
	 let prev_data = getline( prev_lineno )
	 let brace_balance=brace_balance+s:Get_brace_balance(prev_data,'(',')' )
      endwhile
      let ind = indent( prev_lineno )
   else
      " Case 2
      if s:Seems_continuing( getline( prev_lineno - 1 ) )
	 let prev_lineno = prev_lineno - 2
	 let prev_data = getline( prev_lineno )
	 while prev_lineno > 0 && (s:Seems_continuing( prev_data ) > 0)
	    let prev_lineno = s:Get_prev_line( prev_lineno )
	    let prev_data = getline( prev_lineno )
	 endwhile
	 let ind = indent( prev_lineno + 1 )
      endif
   endif

   " Decrease indent if this line contains a '}'.
   if getline(v:lnum) =~ '^\s*}'
      let ind = ind - shiftwidth()
   endif

   return ind
endfunction

" Find the open and close braces in this line and return how many more open-
" than close braces there are. It's also used to determine cumulative balance
" across multiple lines.

function! s:Get_brace_balance( line, b_open, b_close )
   let line2 = substitute( a:line, a:b_open, "", "g" )
   let openb = strlen( a:line ) - strlen( line2 )
   let line3 = substitute( line2, a:b_close, "", "g" )
   let closeb = strlen( line2 ) - strlen( line3 )
   return openb - closeb
endfunction

" Find out whether the line starts with a word (i.e. keyword or function
" call). Might need enhancements here.

function! s:Starts_with_word( line )
  if a:line =~ '^\s*[a-zA-Z_0-9]\+\s*('
     return 1
  endif
  return 0
endfunction

" Find the length of the first word in a line. This is used to be able to
" align a line relative to the 'print ' or 'if (' on the previous line in case
" such a statement spans multiple lines.
" Precondition: only to be used on lines where 'Starts_with_word' returns 1.

function! s:First_word_len( line )
   let white_end = matchend( a:line, '^\s*' )
   if match( a:line, '^\s*func' ) != -1
     let word_end = matchend( a:line, '[a-z]\+\s\+[a-zA-Z_0-9]\+[ (]*' )
   else
     let word_end = matchend( a:line, '[a-zA-Z_0-9]\+[ (]*' )
   endif
   return word_end - white_end
endfunction

" Determine if 'line' completes a statement or is continued on the next line.
" This one is far from complete and accepts illegal code. Not important for
" indenting, however.

function! s:Seems_continuing( line )
  " Unfinished lines
  if a:line =~ '\(--\|++\)\s*$'
    return 0
  endif
  if a:line =~ '[\\,\|\&\+\-\*\%\^]\s*$'
    return 1
  endif
  " if/for/while (cond) eol
  if a:line =~ '^\s*\(if\|while\|for\)\s*(.*)\s*$' || a:line =~ '^\s*else\s*'
      return 2
   endif
  return 0
endfunction

" Get previous relevant line. Search back until a line is that is no
" comment or blank and return the line number

function! s:Get_prev_line( lineno )
   let lnum = a:lineno - 1
   let data = getline( lnum )
   while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$')
      let lnum = lnum - 1
      let data = getline( lnum )
   endwhile
   return lnum
endfunction

" This function checks whether an indented line exceeds a maximum linewidth
" (hardcoded 80). If so and it is possible to stay within 80 positions (or
" limit num of characters beyond linewidth) by decreasing the indent (keeping
" it > base_indent), do so.

function! s:Safe_indent( base, wordlen, this_line )
   let line_base = matchend( a:this_line, '^\s*' )
   let line_len = strlen( a:this_line ) - line_base
   let indent = a:base
   if (indent + a:wordlen + line_len) > 80
     " Simple implementation good enough for the time being
     let indent = indent + 3
   endif
   return indent + a:wordlen
endfunction
PK�j�Z�uUUvim80/indent/ishd.vimnu�[���" Description:	InstallShield indenter
" Author:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Tue, 27 Apr 2004 14:54:59 CEST

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetIshdIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+==else,=elseif,=endif,=end,=begin,<:>
" setlocal indentkeys-=0#

let b:undo_indent = "setl ai< indentexpr< indentkeys<"

" Only define the function once.
if exists("*GetIshdIndent")
    finish
endif

fun! GetIshdIndent(lnum)
    " labels and preprocessor get zero indent immediately
    let this_line = getline(a:lnum)
    let LABELS_OR_PREPROC = '^\s*\(\<\k\+\>:\s*$\|#.*\)'
    let LABELS_OR_PREPROC_EXCEPT = '^\s*\<default\+\>:'
    if this_line =~ LABELS_OR_PREPROC && this_line !~ LABELS_OR_PREPROC_EXCEPT
	return 0
    endif

    " Find a non-blank line above the current line.
    " Skip over labels and preprocessor directives.
    let lnum = a:lnum
    while lnum > 0
	let lnum = prevnonblank(lnum - 1)
	let previous_line = getline(lnum)
	if previous_line !~ LABELS_OR_PREPROC || previous_line =~ LABELS_OR_PREPROC_EXCEPT
	    break
	endif
    endwhile

    " Hit the start of the file, use zero indent.
    if lnum == 0
	return 0
    endif

    let ind = indent(lnum)

    " Add
    if previous_line =~ '^\s*\<\(function\|begin\|switch\|case\|default\|if.\{-}then\|else\|elseif\|while\|repeat\)\>'
	let ind = ind + shiftwidth()
    endif

    " Subtract
    if this_line =~ '^\s*\<endswitch\>'
	let ind = ind - 2 * shiftwidth()
    elseif this_line =~ '^\s*\<\(begin\|end\|endif\|endwhile\|else\|elseif\|until\)\>'
	let ind = ind - shiftwidth()
    elseif this_line =~ '^\s*\<\(case\|default\)\>'
	if previous_line !~ '^\s*\<switch\>'
	    let ind = ind - shiftwidth()
	endif
    endif

    return ind
endfun
PK�j�Z)<kkvim80/indent/liquid.vimnu�[���" Vim indent file
" Language:     Liquid
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2017 Jun 13

if exists('b:did_indent')
  finish
endif

set indentexpr=
if exists('b:liquid_subtype')
  exe 'runtime! indent/'.b:liquid_subtype.'.vim'
else
  runtime! indent/html.vim
endif
unlet! b:did_indent

if &l:indentexpr == ''
  if &l:cindent
    let &l:indentexpr = 'cindent(v:lnum)'
  else
    let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))'
  endif
endif
let b:liquid_subtype_indentexpr = &l:indentexpr

let b:did_indent = 1

setlocal indentexpr=GetLiquidIndent()
setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=endif,=endunless,=endifchanged,=endcase,=endfor,=endtablerow,=endcapture,=else,=elsif,=when,=empty

" Only define the function once.
if exists('*GetLiquidIndent')
  finish
endif

function! s:count(string,pattern)
  let string = substitute(a:string,'\C'.a:pattern,"\n",'g')
  return strlen(substitute(string,"[^\n]",'','g'))
endfunction

function! GetLiquidIndent(...)
  if a:0 && a:1 == '.'
    let v:lnum = line('.')
  elseif a:0 && a:1 =~ '^\d'
    let v:lnum = a:1
  endif
  let vcol = col('.')
  call cursor(v:lnum,1)
  exe "let ind = ".b:liquid_subtype_indentexpr
  let lnum = prevnonblank(v:lnum-1)
  let line = getline(lnum)
  let cline = getline(v:lnum)
  let line  = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
  let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
  let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
  let sw = shiftwidth()
  let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
  let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
  let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
  let ind -= sw * s:count(cline,'{%\s*end\w*$')
  return ind
endfunction
PK�j�Z轮C{
{
vim80/indent/cmake.vimnu�[���" Vim indent file
" Language:     CMake (ft=cmake)
" Author:       Andy Cedilnik <andy.cedilnik@kitware.com>
" Maintainer:   Dimitri Merejkowsky <d.merej@gmail.com>
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Last Change:  2017 Sep 24
"
" Licence:      The CMake license applies to this file. See
"               https://cmake.org/licensing
"               This implies that distribution with Vim is allowed

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=CMakeGetIndent(v:lnum)
setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE(

" Only define the function once.
if exists("*CMakeGetIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

fun! CMakeGetIndent(lnum)
  let this_line = getline(a:lnum)

  " Find a non-blank line above the current line.
  let lnum = a:lnum
  let lnum = prevnonblank(lnum - 1)
  let previous_line = getline(lnum)

  " Hit the start of the file, use zero indent.
  if lnum == 0
    return 0
  endif

  let ind = indent(lnum)

  let or = '\|'
  " Regular expressions used by line indentation function.
  let cmake_regex_comment = '#.*'
  let cmake_regex_identifier = '[A-Za-z][A-Za-z0-9_]*'
  let cmake_regex_quoted = '"\([^"\\]\|\\.\)*"'
  let cmake_regex_arguments = '\(' . cmake_regex_quoted .
                    \       or . '\$(' . cmake_regex_identifier . ')' .
                    \       or . '[^()\\#"]' . or . '\\.' . '\)*'

  let cmake_indent_comment_line = '^\s*' . cmake_regex_comment
  let cmake_indent_blank_regex = '^\s*$'
  let cmake_indent_open_regex = '^\s*' . cmake_regex_identifier .
                    \           '\s*(' . cmake_regex_arguments .
                    \           '\(' . cmake_regex_comment . '\)\?$'

  let cmake_indent_close_regex = '^' . cmake_regex_arguments .
                    \            ')\s*' .
                    \            '\(' . cmake_regex_comment . '\)\?$'

  let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|ELSEIF\|WHILE\|FUNCTION\)\s*('
  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\|ENDFUNCTION\)\s*('

  " Add
  if previous_line =~? cmake_indent_comment_line " Handle comments
    let ind = ind
  else
    if previous_line =~? cmake_indent_begin_regex
      let ind = ind + shiftwidth()
    endif
    if previous_line =~? cmake_indent_open_regex
      let ind = ind + shiftwidth()
    endif
  endif

  " Subtract
  if this_line =~? cmake_indent_end_regex
    let ind = ind - shiftwidth()
  endif
  if previous_line =~? cmake_indent_close_regex
    let ind = ind - shiftwidth()
  endif

  return ind
endfun

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�3�RRvim80/indent/dictdconf.vimnu�[���" Vim indent file
" Language:             dictd(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
setlocal nosmartindent
inoremap <buffer> # X#
PK�j�Z-�+�``vim80/indent/yaml.vimnu�[���" Vim indent file
" Language:         YAML
" Maintainer:       Nikolai Pavlov <zyx.vim@gmail.com>
" Last Change:	    2017 Jun 13

" Only load this indent file when no other was loaded.
if exists('b:did_indent')
  finish
endif

let s:save_cpo = &cpo
set cpo&vim

let b:did_indent = 1

setlocal indentexpr=GetYAMLIndent(v:lnum)
setlocal indentkeys=!^F,o,O,0#,0},0],<:>,0-
setlocal nosmartindent

let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'

" Only define the function once.
if exists('*GetYAMLIndent')
    finish
endif

function s:FindPrevLessIndentedLine(lnum, ...)
    let prevlnum = prevnonblank(a:lnum-1)
    let curindent = a:0 ? a:1 : indent(a:lnum)
    while           prevlnum
                \&&  indent(prevlnum) >=  curindent
                \&& getline(prevlnum) =~# '^\s*#'
        let prevlnum = prevnonblank(prevlnum-1)
    endwhile
    return prevlnum
endfunction

function s:FindPrevLEIndentedLineMatchingRegex(lnum, regex)
    let plilnum = s:FindPrevLessIndentedLine(a:lnum, indent(a:lnum)+1)
    while plilnum && getline(plilnum) !~# a:regex
        let plilnum = s:FindPrevLessIndentedLine(plilnum)
    endwhile
    return plilnum
endfunction

let s:mapkeyregex='\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\'''.
                \                 '|\"%([^"\\]|\\.)*\"'.
                \                 '|%(%(\:\ )@!.)*)\:%(\ |$)'
let s:liststartregex='\v^\s*%(\-%(\ |$))'

let s:c_ns_anchor_char = '\v%([\n\r\uFEFF \t,[\]{}]@!\p)'
let s:c_ns_anchor_name = s:c_ns_anchor_char.'+'
let s:c_ns_anchor_property =  '\v\&'.s:c_ns_anchor_name

let s:ns_word_char = '\v[[:alnum:]_\-]'
let s:ns_tag_char  = '\v%(%\x\x|'.s:ns_word_char.'|[#/;?:@&=+$.~*''()])'
let s:c_named_tag_handle     = '\v\!'.s:ns_word_char.'+\!'
let s:c_secondary_tag_handle = '\v\!\!'
let s:c_primary_tag_handle   = '\v\!'
let s:c_tag_handle = '\v%('.s:c_named_tag_handle.
            \            '|'.s:c_secondary_tag_handle.
            \            '|'.s:c_primary_tag_handle.')'
let s:c_ns_shorthand_tag = '\v'.s:c_tag_handle . s:ns_tag_char.'+'
let s:c_non_specific_tag = '\v\!'
let s:ns_uri_char  = '\v%(%\x\x|'.s:ns_word_char.'\v|[#/;?:@&=+$,.!~*''()[\]])'
let s:c_verbatim_tag = '\v\!\<'.s:ns_uri_char.'+\>'
let s:c_ns_tag_property = '\v'.s:c_verbatim_tag.
            \               '\v|'.s:c_ns_shorthand_tag.
            \               '\v|'.s:c_non_specific_tag

let s:block_scalar_header = '\v[|>]%([+-]?[1-9]|[1-9]?[+-])?'

function GetYAMLIndent(lnum)
    if a:lnum == 1 || !prevnonblank(a:lnum-1)
        return 0
    endif

    let prevlnum = prevnonblank(a:lnum-1)
    let previndent = indent(prevlnum)

    let line = getline(a:lnum)
    if line =~# '^\s*#' && getline(a:lnum-1) =~# '^\s*#'
        " Comment blocks should have identical indent
        return previndent
    elseif line =~# '^\s*[\]}]'
        " Lines containing only closing braces should have previous indent
        return indent(s:FindPrevLessIndentedLine(a:lnum))
    endif

    " Ignore comment lines when calculating indent
    while getline(prevlnum) =~# '^\s*#'
        let prevlnum = prevnonblank(prevlnum-1)
        if !prevlnum
            return previndent
        endif
    endwhile

    let prevline = getline(prevlnum)
    let previndent = indent(prevlnum)

    " Any examples below assume that shiftwidth=2
    if prevline =~# '\v[{[:]$|[:-]\ [|>][+\-]?%(\s+\#.*|\s*)$'
        " Mapping key:
        "     nested mapping: ...
        "
        " - {
        "     key: [
        "         list value
        "     ]
        " }
        "
        " - |-
        "     Block scalar without indentation indicator
        return previndent+shiftwidth()
    elseif prevline =~# '\v[:-]\ [|>]%(\d+[+\-]?|[+\-]?\d+)%(\#.*|\s*)$'
        " - |+2
        "   block scalar with indentation indicator
        "#^^ indent+2, not indent+shiftwidth
        return previndent + str2nr(matchstr(prevline,
                    \'\v([:-]\ [|>])@<=[+\-]?\d+%([+\-]?%(\s+\#.*|\s*)$)@='))
    elseif prevline =~# '\v\"%([^"\\]|\\.)*\\$'
        "    "Multiline string \
        "     with escaped end"
        let qidx = match(prevline, '\v\"%([^"\\]|\\.)*\\')
        return virtcol([prevlnum, qidx+1])
    elseif line =~# s:liststartregex
        " List line should have indent equal to previous list line unless it was 
        " caught by one of the previous rules
        return indent(s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
                    \                                       s:liststartregex))
    elseif line =~# s:mapkeyregex
        " Same for line containing mapping key
        let prevmapline = s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
                    \                                           s:mapkeyregex)
        if getline(prevmapline) =~# '^\s*- '
            return indent(prevmapline) + 2
        else
            return indent(prevmapline)
        endif
    elseif prevline =~# '^\s*- '
        " - List with
        "   multiline scalar
        return previndent+2
    elseif prevline =~# s:mapkeyregex . '\v\s*%(%('.s:c_ns_tag_property.
                \                              '\v|'.s:c_ns_anchor_property.
                \                              '\v|'.s:block_scalar_header.
                \                             '\v)%(\s+|\s*%(\#.*)?$))*'
        " Mapping with: value
        "     that is multiline scalar
        return previndent+shiftwidth()
    endif
    return previndent
endfunction

let &cpo = s:save_cpo
PK�j�Z�#r

vim80/indent/yacc.vimnu�[���" Vim indent file
" Language:             YACC input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

let b:did_indent = 1

setlocal indentexpr=GetYaccIndent()
setlocal indentkeys=!^F,o,O
setlocal nosmartindent

" Only define the function once.
if exists("*GetYaccIndent")
  finish
endif

function GetYaccIndent()
  if v:lnum == 1
    return 0
  endif

  let ind = indent(v:lnum - 1)
  let line = getline(v:lnum - 1)

  if line == ''
    let ind = 0
  elseif line =~ '^\w\+\s*:'
    let ind = ind + matchend(line, '^\w\+\s*')
  elseif line =~ '^\s*;'
    let ind = 0
  else
    let ind = indent(v:lnum)
  endif

  return ind
endfunction
PK�j�Z�id
��vim80/indent/prolog.vimnu�[���"  vim: set sw=4 sts=4:
"  Maintainer	: Gergely Kontra <kgergely@mcl.hu>
"  Revised on	: 2002.02.18. 23:34:05
"  Language	: Prolog

" TODO:
"   checking with respect to syntax highlighting
"   ignoring multiline comments
"   detecting multiline strings

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif

let b:did_indent = 1

setlocal indentexpr=GetPrologIndent()
setlocal indentkeys-=:,0#
setlocal indentkeys+=0%,-,0;,>,0)

" Only define the function once.
"if exists("*GetPrologIndent")
"    finish
"endif

function! GetPrologIndent()
    " Find a non-blank line above the current line.
    let pnum = prevnonblank(v:lnum - 1)
    " Hit the start of the file, use zero indent.
    if pnum == 0
       return 0
    endif
    let line = getline(v:lnum)
    let pline = getline(pnum)

    let ind = indent(pnum)
    " Previous line was comment -> use previous line's indent
    if pline =~ '^\s*%'
	retu ind
    endif
    " Check for clause head on previous line
    if pline =~ ':-\s*\(%.*\)\?$'
	let ind = ind + shiftwidth()
    " Check for end of clause on previous line
    elseif pline =~ '\.\s*\(%.*\)\?$'
	let ind = ind - shiftwidth()
    endif
    " Check for opening conditional on previous line
    if pline =~ '^\s*\([(;]\|->\)'
	let ind = ind + shiftwidth()
    endif
    " Check for closing an unclosed paren, or middle ; or ->
    if line =~ '^\s*\([);]\|->\)'
	let ind = ind - shiftwidth()
    endif
    return ind
endfunction
PK�j�Z���vim80/indent/xsd.vimnu�[���" Vim indent file
" Language: 	.xsd files (XML Schema)
" Maintainer:	Nobody
" Last Change:	2005 Jun 09

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Use XML formatting rules
runtime! indent/xml.vim

PK�j�Zl�=IIvim80/indent/gitconfig.vimnu�[���" Vim indent file
" Language:	git config file
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2017 Jun 13

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetGitconfigIndent()
setlocal indentkeys=o,O,*<Return>,0[,],0;,0#,=,!^F

let b:undo_indent = 'setl ai< inde< indk<'

" Only define the function once.
if exists("*GetGitconfigIndent")
  finish
endif

function! GetGitconfigIndent()
  let sw    = shiftwidth()
  let line  = getline(prevnonblank(v:lnum-1))
  let cline = getline(v:lnum)
  if line =~  '\\\@<!\%(\\\\\)*\\$'
    " odd number of slashes, in a line continuation
    return 2 * sw
  elseif cline =~ '^\s*\['
    return 0
  elseif cline =~ '^\s*\a'
    return sw
  elseif cline == ''       && line =~ '^\['
    return sw
  else
    return -1
  endif
endfunction
PK�j�Z/u��
�
vim80/indent/sdl.vimnu�[���" Vim indent file
" Language:	SDL
" Maintainer:	Michael Piefel <entwurf@piefel.de>
" Last Change:	10 December 2011

" Shamelessly stolen from the Vim-Script indent file

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetSDLIndent()
setlocal indentkeys+==~end,=~state,*<Return>

" Only define the function once.
if exists("*GetSDLIndent")
"  finish
endif

let s:cpo_save = &cpo
set cpo&vim

function! GetSDLIndent()
  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif

  let ind = indent(lnum)
  let virtuality = '^\s*\(\(virtual\|redefined\|finalized\)\s\+\)\=\s*'

  " Add a single space to comments which use asterisks
  if getline(lnum) =~ '^\s*\*'
    let ind = ind - 1
  endif
  if getline(v:lnum) =~ '^\s*\*'
    let ind = ind + 1
  endif

  " Add a 'shiftwidth' after states, different blocks, decision (and alternatives), inputs
  if (getline(lnum) =~? '^\s*\(start\|state\|system\|package\|connection\|channel\|alternative\|macro\|operator\|newtype\|select\|substructure\|decision\|generator\|refinement\|service\|method\|exceptionhandler\|asntype\|syntype\|value\|(.*):\|\(priority\s\+\)\=input\|provided\)'
    \ || getline(lnum) =~? virtuality . '\(process\|procedure\|block\|object\)')
    \ && getline(lnum) !~? 'end[[:alpha:]]\+;$'
    let ind = ind + shiftwidth()
  endif

  " Subtract a 'shiftwidth' after states
  if getline(lnum) =~? '^\s*\(stop\|return\>\|nextstate\)'
    let ind = ind - shiftwidth()
  endif

  " Subtract a 'shiftwidth' on on end (uncompleted line)
  if getline(v:lnum) =~? '^\s*end\>'
    let ind = ind - shiftwidth()
  endif

  " Put each alternatives where the corresponding decision was
  if getline(v:lnum) =~? '^\s*\((.*)\|else\):'
    normal k
    let ind = indent(searchpair('^\s*decision', '', '^\s*enddecision', 'bW',
      \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "sdlString"'))
  endif

  " Put each state where the preceding state was
  if getline(v:lnum) =~? '^\s*state\>'
    let ind = indent(search('^\s*start', 'bW'))
  endif

  " Systems and packages are always in column 0
  if getline(v:lnum) =~? '^\s*\(\(end\)\=system\|\(end\)\=package\)'
    return 0
  endif

  " Put each end* where the corresponding begin was
  if getline(v:lnum) =~? '^\s*end[[:alpha:]]'
    normal k
    let partner=matchstr(getline(v:lnum), '\(' . virtuality . 'end\)\@<=[[:alpha:]]\+')
    let ind = indent(searchpair(virtuality . partner, '', '^\s*end' . partner, 'bW',
      \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "sdlString"'))
  endif

  return ind
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:sw=2
PK�j�Z���܉�vim80/indent/go.vimnu�[���" Vim indent file
" Language:	Go
" Maintainer:	David Barnett (https://github.com/google/vim-ft-go)
" Last Change:	2017 Jun 13
"
" TODO:
" - function invocations split across lines
" - general line splits (line ends in an operator)

if exists('b:did_indent')
  finish
endif
let b:did_indent = 1

" C indentation is too far off useful, mainly due to Go's := operator.
" Let's just define our own.
setlocal nolisp
setlocal autoindent
setlocal indentexpr=GoIndent(v:lnum)
setlocal indentkeys+=<:>,0=},0=)

if exists('*GoIndent')
  finish
endif

function! GoIndent(lnum)
  let l:prevlnum = prevnonblank(a:lnum-1)
  if l:prevlnum == 0
    " top of file
    return 0
  endif

  " grab the previous and current line, stripping comments.
  let l:prevl = substitute(getline(l:prevlnum), '//.*$', '', '')
  let l:thisl = substitute(getline(a:lnum), '//.*$', '', '')
  let l:previ = indent(l:prevlnum)

  let l:ind = l:previ

  if l:prevl =~ '[({]\s*$'
    " previous line opened a block
    let l:ind += shiftwidth()
  endif
  if l:prevl =~# '^\s*\(case .*\|default\):$'
    " previous line is part of a switch statement
    let l:ind += shiftwidth()
  endif
  " TODO: handle if the previous line is a label.

  if l:thisl =~ '^\s*[)}]'
    " this line closed a block
    let l:ind -= shiftwidth()
  endif

  " Colons are tricky.
  " We want to outdent if it's part of a switch ("case foo:" or "default:").
  " We ignore trying to deal with jump labels because (a) they're rare, and
  " (b) they're hard to disambiguate from a composite literal key.
  if l:thisl =~# '^\s*\(case .*\|default\):$'
    let l:ind -= shiftwidth()
  endif

  return l:ind
endfunction

" vim: sw=2 sts=2 et
PK�j�Z�=vim80/indent/changelog.vimnu�[���" Vim indent file
" Language:	generic Changelog file
" Maintainer:	noone
" Last Change:	2005 Mar 29

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

setlocal ai

let b:undo_indent = "setl ai<"
PK�j�ZY�X��vim80/indent/mma.vimnu�[���" Vim indent file
" Language:     Mathematica
" Author:       steve layland <layland@wolfram.com>
" Last Change:  Sat May  10 18:56:22 CDT 2005
" Source:       http://vim.sourceforge.net/scripts/script.php?script_id=1274
"               http://members.wolfram.com/layland/vim/indent/mma.vim
"
" NOTE:
" Empty .m files will automatically be presumed to be Matlab files
" unless you have the following in your .vimrc:
"
"       let filetype_m="mma"
"
" Credits:
" o steve hacked this out of a random indent file in the Vim 6.1
"   distribution that he no longer remembers...sh.vim?  Thanks!

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

setlocal indentexpr=GetMmaIndent()
setlocal indentkeys+=0[,0],0(,0)
setlocal nosi "turn off smart indent so we don't over analyze } blocks

if exists("*GetMmaIndent")
    finish
endif

function GetMmaIndent()

    " Hit the start of the file, use zero indent.
    if v:lnum == 0
        return 0
    endif

     " Find a non-blank line above the current line.
    let lnum = prevnonblank(v:lnum - 1)

    " use indenting as a base
    let ind = indent(v:lnum)
    let lnum = v:lnum

    " if previous line has an unmatched bracket, or ( indent.
    " doesn't do multiple parens/blocks/etc...

    " also, indent only if this line if this line isn't starting a new
    " block... TODO - fix this with indentkeys?
    if getline(v:lnum-1) =~ '\\\@<!\%(\[[^\]]*\|([^)]*\|{[^}]*\)$' && getline(v:lnum) !~ '\s\+[\[({]'
        let ind = ind+shiftwidth()
    endif

    " if this line had unmatched closing block,
    " indent to the matching opening block
    if getline(v:lnum) =~ '[^[]*]\s*$'
        " move to the closing bracket
        call search(']','bW')
        " and find it's partner's indent
        let ind = indent(searchpair('\[','',']','bWn'))
    " same for ( blocks
    elseif getline(v:lnum) =~ '[^(]*)$'
        call search(')','bW')
        let ind = indent(searchpair('(','',')','bWn'))

    " and finally, close { blocks if si ain't already set
    elseif getline(v:lnum) =~ '[^{]*}'
        call search('}','bW')
        let ind = indent(searchpair('{','','}','bWn'))
    endif

    return ind
endfunction

PK�j�ZI��.EEvim80/indent/c.vimnu�[���" Vim indent file
" Language:	C
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2005 Mar 27

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

" C indenting is built-in, thus this is very simple
setlocal cindent

let b:undo_indent = "setl cin<"
PK�j�Z���h�
�
vim80/indent/dylan.vimnu�[���" Vim indent file
" Language:	Dylan
" Version:	0.01
" Last Change:	2017 Jun 13
" Maintainer:	Brent A. Fulgham <bfulgham@debian.org>

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentkeys+==~begin,=~block,=~case,=~cleanup,=~define,=~end,=~else,=~elseif,=~exception,=~for,=~finally,=~if,=~otherwise,=~select,=~unless,=~while

" Define the appropriate indent function but only once
setlocal indentexpr=DylanGetIndent()
if exists("*DylanGetIndent")
  finish
endif

function DylanGetIndent()
  " Get the line to be indented
  let cline = getline(v:lnum)

  " Don't reindent comments on first column
  if cline =~ '^/\[/\*]'
    return 0
  endif

  "Find the previous non-blank line
  let lnum = prevnonblank(v:lnum - 1)
  "Use zero indent at the top of the file
  if lnum == 0
    return 0
  endif

  let prevline=getline(lnum)
  let ind = indent(lnum)
  let chg = 0

  " If previous line was a comment, use its indent
  if prevline =~ '^\s*//'
    return ind
  endif

  " If previous line was a 'define', indent
  if prevline =~? '\(^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)\|\s*\S*\s*=>$\)'
    let chg = shiftwidth()
  " local methods indent the shift-width, plus 6 for the 'local'
  elseif prevline =~? '^\s*local'
    let chg = shiftwidth() + 6
  " If previous line was a let with no closing semicolon, indent
  elseif prevline =~? '^\s*let.*[^;]\s*$'
    let chg = shiftwidth()
  " If previous line opened a parenthesis, and did not close it, indent
  elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
    return = match( prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
  "elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
  elseif prevline =~ '^[^(]*)\s*$'
    " This line closes a parenthesis.  Find opening
    let curr_line = prevnonblank(lnum - 1)
    while curr_line >= 0
      let str = getline(curr_line)
      if str !~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
	let curr_line = prevnonblank(curr_line - 1)
      else
	break
      endif
    endwhile
    if curr_line < 0
      return -1
    endif
    let ind = indent(curr_line)
    " Although we found the closing parenthesis, make sure this
    " line doesn't start with an indentable command:
    let curr_str = getline(curr_line)
    if curr_str =~? '^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)'
      let chg = shiftwidth()
    endif
  endif

  " If a line starts with end, un-indent (even if we just indented!)
  if cline =~? '^\s*\(cleanup\|end\|else\|elseif\|exception\|finally\|otherwise\)'
    let chg = chg - shiftwidth()
  endif

  return ind + chg
endfunction

" vim:sw=2 tw=130
PK�j�Z&~���vim80/indent/rrst.vimnu�[���" Vim indent file
" Language:	Rrst
" Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage:     https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Tue Apr 07, 2015  04:38PM


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
runtime indent/r.vim
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
let b:did_indent = 1

setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetRrstIndent()

if exists("*GetRrstIndent")
  finish
endif

function GetRstIndent()
  let pline = getline(v:lnum - 1)
  let cline = getline(v:lnum)
  if prevnonblank(v:lnum - 1) < v:lnum - 1 || cline =~ '^\s*[-\+\*]\s' || cline =~ '^\s*\d\+\.\s\+'
    return indent(v:lnum)
  elseif pline =~ '^\s*[-\+\*]\s'
    return indent(v:lnum - 1) + 2
  elseif pline =~ '^\s*\d\+\.\s\+'
    return indent(v:lnum - 1) + 3
  endif
  return indent(prevnonblank(v:lnum - 1))
endfunction

function GetRrstIndent()
  if getline(".") =~ '^\.\. {r .*}$' || getline(".") =~ '^\.\. \.\.$'
    return 0
  endif
  if search('^\.\. {r', "bncW") > search('^\.\. \.\.$', "bncW")
    return s:RIndent()
  else
    return GetRstIndent()
  endif
endfunction

" vim: sw=2
PK�j�Z=Bvim80/indent/sas.vimnu�[���" Vim indent file
" Language:     SAS
" Maintainer:   Zhen-Huan Hu <wildkeny@gmail.com>
" Version:      3.0.1
" Last Change:  Mar 13, 2017

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetSASIndent()
setlocal indentkeys+=;,=~data,=~proc,=~macro

if exists("*GetSASIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Regex that captures the start of a data/proc section
let s:section_str = '\v%(^|;)\s*%(data|proc)>'
" Regex that captures the end of a run-processing section
let s:section_run = '\v%(^|;)\s*run\s*;'
" Regex that captures the end of a data/proc section
let s:section_end = '\v%(^|;)\s*%(quit|enddata)\s*;'

" Regex that captures the start of a control block (anything inside a section)
let s:block_str = '\v<%(do>%([^;]+<%(to|over)>[^;]+)=|%(define|layout|method|select)>[^;]+|begingraph)\s*;'
" Regex that captures the end of a control block (anything inside a section)
let s:block_end = '\v<%(end|endlayout|endgraph)\s*;'

" Regex that captures the start of a macro
let s:macro_str = '\v%(^|;)\s*\%macro>'
" Regex that captures the end of a macro
let s:macro_end = '\v%(^|;)\s*\%mend\s*;'

" Regex that defines the end of the program
let s:program_end = '\v%(^|;)\s*endsas\s*;'

" List of procs supporting run-processing
let s:run_processing_procs = [
      \ 'catalog', 'chart', 'datasets', 'document', 'ds2', 'plot', 'sql',
      \ 'gareabar', 'gbarline', 'gchart', 'gkpi', 'gmap', 'gplot', 'gradar', 'greplay', 'gslide', 'gtile',
      \ 'anova', 'arima', 'catmod', 'factex', 'glm', 'model', 'optex', 'plan', 'reg',
      \ 'iml',
      \ ]

" Find the line number of previous keyword defined by the regex
function! s:PrevMatch(lnum, regex)
  let prev_lnum = prevnonblank(a:lnum - 1)
  while prev_lnum > 0
    let prev_line = getline(prev_lnum)
    if prev_line =~ a:regex
      break
    else
      let prev_lnum = prevnonblank(prev_lnum - 1)
    endif
  endwhile
  return prev_lnum
endfunction

" Main function
function! GetSASIndent()
  let prev_lnum = prevnonblank(v:lnum - 1)
  if prev_lnum ==# 0
    " Leave the indentation of the first line unchanged
    return indent(1)
  else
    let prev_line = getline(prev_lnum)
    " Previous non-blank line contains the start of a macro/section/block
    " while not the end of a macro/section/block (at the same line)
    if (prev_line =~ s:section_str && prev_line !~ s:section_run && prev_line !~ s:section_end) ||
          \ (prev_line =~ s:block_str && prev_line !~ s:block_end) ||
          \ (prev_line =~ s:macro_str && prev_line !~ s:macro_end)
      let ind = indent(prev_lnum) + &sts
    elseif prev_line =~ s:section_run && prev_line !~ s:section_end
      let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
      let prev_section_end_lnum = max([
            \ s:PrevMatch(v:lnum, s:section_end),
            \ s:PrevMatch(v:lnum, s:macro_end  ),
            \ s:PrevMatch(v:lnum, s:program_end)])
      " Check if the section supports run-processing
      if prev_section_end_lnum < prev_section_str_lnum &&
            \ getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
            \ join(s:run_processing_procs, '|') . ')>'
        let ind = indent(prev_lnum) + &sts
      else
        let ind = indent(prev_lnum)
      endif
    else
      let ind = indent(prev_lnum)
    endif
  endif
  " Re-adjustments based on the inputs of the current line
  let curr_line = getline(v:lnum)
  if curr_line =~ s:program_end
    " End of the program
    " Same indentation as the first non-blank line
    return indent(nextnonblank(1))
  elseif curr_line =~ s:macro_end
    " Current line is the end of a macro
    " Match the indentation of the start of the macro
    return indent(s:PrevMatch(v:lnum, s:macro_str))
  elseif curr_line =~ s:block_end && curr_line !~ s:block_str
    " Re-adjust if current line is the end of a block
    " while not the beginning of a block (at the same line)
    " Returning the indent of previous block start directly
    " would not work due to nesting
    let ind = ind - &sts
  elseif curr_line =~ s:section_str || curr_line =~ s:section_run || curr_line =~ s:section_end
    " Re-adjust if current line is the start/end of a section
    " since the end of a section could be inexplicit
    let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
    " Check if the previous section supports run-processing
    if getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
          \ join(s:run_processing_procs, '|') . ')>'
      let prev_section_end_lnum = max([
            \ s:PrevMatch(v:lnum, s:section_end),
            \ s:PrevMatch(v:lnum, s:macro_end  ),
            \ s:PrevMatch(v:lnum, s:program_end)])
    else
      let prev_section_end_lnum = max([
            \ s:PrevMatch(v:lnum, s:section_end),
            \ s:PrevMatch(v:lnum, s:section_run),
            \ s:PrevMatch(v:lnum, s:macro_end  ),
            \ s:PrevMatch(v:lnum, s:program_end)])
    endif
    if prev_section_end_lnum < prev_section_str_lnum
      let ind = ind - &sts
    endif
  endif
  return ind
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�9�{{vim80/indent/vroom.vimnu�[���" Vim indent file
" Language:	Vroom (vim testing and executable documentation)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-vroom)
" Last Change:	2014 Jul 23

if exists('b:did_indent')
  finish
endif
let b:did_indent = 1

let s:cpo_save = &cpo
set cpo-=C


let b:undo_indent = 'setlocal autoindent<'

setlocal autoindent


let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���11vim80/indent/cuda.vimnu�[���" Vim indent file
" Language:	CUDA
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2008 Nov 29

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

" It's just like C indenting
setlocal cindent

let b:undo_indent = "setl cin<"
PK�j�Z��o!�6�6vim80/indent/falcon.vimnu�[���" Vim indent file
" Language: Falcon
" Maintainer: Steven Oliver <oliver.steven@gmail.com>
" Website: https://steveno@github.com/steveno/falconpl-vim.git
" Credits: This is, to a great extent, a copy n' paste of ruby.vim.

" 1. Setup {{{1
" ============

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

setlocal nosmartindent

" Setup indent function and when to use it
setlocal indentexpr=FalconGetIndent(v:lnum)
setlocal indentkeys=0{,0},0),0],!^F,o,O,e
setlocal indentkeys+==~case,=~catch,=~default,=~elif,=~else,=~end,=~\"

" Define the appropriate indent function but only once
if exists("*FalconGetIndent")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

" 2. Variables {{{1
" ============

" Regex of syntax group names that are strings AND comments
let s:syng_strcom = '\<falcon\%(String\|StringEscape\|Comment\)\>'

" Regex of syntax group names that are strings
let s:syng_string = '\<falcon\%(String\|StringEscape\)\>'

" Regex that defines blocks.
"
" Note that there's a slight problem with this regex and s:continuation_regex.
" Code like this will be matched by both:
"
"   method_call do |(a, b)|
"
" The reason is that the pipe matches a hanging "|" operator.
"
let s:block_regex =
      \ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|\s*(*\s*\%([*@&]\=\h\w*,\=\s*\)\%(,\s*(*\s*[*@&]\=\h\w*\s*)*\s*\)*|\)\=\s*\%(#.*\)\=$'

let s:block_continuation_regex = '^\s*[^])}\t ].*'.s:block_regex

" Regex that defines continuation lines.
" TODO: this needs to deal with if ...: and so on
let s:continuation_regex =
      \ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'

" Regex that defines bracket continuations
let s:bracket_continuation_regex = '%\@<!\%([({[]\)\s*\%(#.*\)\=$'

" Regex that defines continuation lines, not including (, {, or [.
let s:non_bracket_continuation_regex = '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'

" Keywords to indent on
let s:falcon_indent_keywords = '^\s*\(case\|catch\|class\|enum\|default\|elif\|else' .
    \ '\|for\|function\|if.*"[^"]*:.*"\|if \(\(:\)\@!.\)*$\|loop\|object\|select' .
    \ '\|switch\|try\|while\|\w*\s*=\s*\w*([$\)'

" Keywords to deindent on
let s:falcon_deindent_keywords = '^\s*\(case\|catch\|default\|elif\|else\|end\)'

" 3. Functions {{{1
" ============

" Check if the character at lnum:col is inside a string, comment, or is ascii.
function s:IsInStringOrComment(lnum, col)
    return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_strcom
endfunction

" Check if the character at lnum:col is inside a string.
function s:IsInString(lnum, col)
    return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_string
endfunction

" Check if the character at lnum:col is inside a string delimiter
function s:IsInStringDelimiter(lnum, col)
    return synIDattr(synID(a:lnum, a:col, 1), 'name') == 'falconStringDelimiter'
endfunction

" Find line above 'lnum' that isn't empty, in a comment, or in a string.
function s:PrevNonBlankNonString(lnum)
    let in_block = 0
    let lnum = prevnonblank(a:lnum)
    while lnum > 0
	" Go in and out of blocks comments as necessary.
	" If the line isn't empty (with opt. comment) or in a string, end search.
	let line = getline(lnum)
	if line =~ '^=begin'
	    if in_block
		let in_block = 0
	    else
		break
	    endif
	elseif !in_block && line =~ '^=end'
	    let in_block = 1
	elseif !in_block && line !~ '^\s*#.*$' && !(s:IsInStringOrComment(lnum, 1)
		    \ && s:IsInStringOrComment(lnum, strlen(line)))
	    break
	endif
	let lnum = prevnonblank(lnum - 1)
    endwhile
    return lnum
endfunction

" Find line above 'lnum' that started the continuation 'lnum' may be part of.
function s:GetMSL(lnum)
    " Start on the line we're at and use its indent.
    let msl = a:lnum
    let msl_body = getline(msl)
    let lnum = s:PrevNonBlankNonString(a:lnum - 1)
    while lnum > 0
	" If we have a continuation line, or we're in a string, use line as MSL.
	" Otherwise, terminate search as we have found our MSL already.
	let line = getline(lnum)
	
	if s:Match(line, s:non_bracket_continuation_regex) &&
          	\ s:Match(msl, s:non_bracket_continuation_regex)
	    " If the current line is a non-bracket continuation and so is the
	    " previous one, keep its indent and continue looking for an MSL.
	    "    
	    " Example:
	    "   method_call one,
	    "       two,
	    "           three
	    "           
	    let msl = lnum
	elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
		    \ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
	    " If the current line is a bracket continuation or a block-starter, but
	    " the previous is a non-bracket one, respect the previous' indentation,
	    " and stop here.
	    " 
	    " Example:
	    "   method_call one,
	    "       two {
	    "           three
	    "
	    return lnum
	elseif s:Match(lnum, s:bracket_continuation_regex) &&
		    \ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
	    " If both lines are bracket continuations (the current may also be a
	    " block-starter), use the current one's and stop here
	    "
	    " Example:
	    "   method_call(
	    "       other_method_call(
	    "             foo
	    return msl
	elseif s:Match(lnum, s:block_regex) &&
		    \ !s:Match(msl, s:continuation_regex) &&
		    \ !s:Match(msl, s:block_continuation_regex)
	    " If the previous line is a block-starter and the current one is
	    " mostly ordinary, use the current one as the MSL.
	    " 
	    " Example:
	    "   method_call do
	    "       something
	    "           something_else
	    return msl
	else
	    let col = match(line, s:continuation_regex) + 1
	    if (col > 0 && !s:IsInStringOrComment(lnum, col))
			\ || s:IsInString(lnum, strlen(line))
		let msl = lnum
	    else
		break
	    endif
	endif
	
	let msl_body = getline(msl)
	let lnum = s:PrevNonBlankNonString(lnum - 1)
    endwhile
    return msl
endfunction

" Check if line 'lnum' has more opening brackets than closing ones.
function s:ExtraBrackets(lnum)
    let opening = {'parentheses': [], 'braces': [], 'brackets': []}
    let closing = {'parentheses': [], 'braces': [], 'brackets': []}

    let line = getline(a:lnum)
    let pos  = match(line, '[][(){}]', 0)

    " Save any encountered opening brackets, and remove them once a matching
    " closing one has been found. If a closing bracket shows up that doesn't
    " close anything, save it for later.
    while pos != -1
	if !s:IsInStringOrComment(a:lnum, pos + 1)
	    if line[pos] == '('
		call add(opening.parentheses, {'type': '(', 'pos': pos})
	    elseif line[pos] == ')'
		if empty(opening.parentheses)
		    call add(closing.parentheses, {'type': ')', 'pos': pos})
		else
		    let opening.parentheses = opening.parentheses[0:-2]
		endif
	    elseif line[pos] == '{'
		call add(opening.braces, {'type': '{', 'pos': pos})
	    elseif line[pos] == '}'
		if empty(opening.braces)
		    call add(closing.braces, {'type': '}', 'pos': pos})
		else
		    let opening.braces = opening.braces[0:-2]
		endif
	    elseif line[pos] == '['
		call add(opening.brackets, {'type': '[', 'pos': pos})
	    elseif line[pos] == ']'
		if empty(opening.brackets)
		    call add(closing.brackets, {'type': ']', 'pos': pos})
		else
		    let opening.brackets = opening.brackets[0:-2]
		endif
	    endif
	endif
	
	let pos = match(line, '[][(){}]', pos + 1)
    endwhile

    " Find the rightmost brackets, since they're the ones that are important in
    " both opening and closing cases
    let rightmost_opening = {'type': '(', 'pos': -1}
    let rightmost_closing = {'type': ')', 'pos': -1}

    for opening in opening.parentheses + opening.braces + opening.brackets
	if opening.pos > rightmost_opening.pos
	    let rightmost_opening = opening
	endif
    endfor

    for closing in closing.parentheses + closing.braces + closing.brackets
	if closing.pos > rightmost_closing.pos
	    let rightmost_closing = closing
	endif
    endfor

    return [rightmost_opening, rightmost_closing]
endfunction

function s:Match(lnum, regex)
    let col = match(getline(a:lnum), '\C'.a:regex) + 1
    return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
endfunction

function s:MatchLast(lnum, regex)
    let line = getline(a:lnum)
    let col = match(line, '.*\zs' . a:regex)
    while col != -1 && s:IsInStringOrComment(a:lnum, col)
	let line = strpart(line, 0, col)
	let col = match(line, '.*' . a:regex)
    endwhile
    return col + 1
endfunction

" 4. FalconGetIndent Routine {{{1
" ============

function FalconGetIndent(...)
    " For the current line, use the first argument if given, else v:lnum
    let clnum = a:0 ? a:1 : v:lnum

    " Use zero indent at the top of the file
    if clnum == 0
        return 0
    endif

    let line = getline(clnum)
    let ind = -1

    " If we got a closing bracket on an empty line, find its match and indent
    " according to it.  For parentheses we indent to its column - 1, for the
    " others we indent to the containing line's MSL's level.  Return -1 if fail.
    let col = matchend(line, '^\s*[]})]')
    if col > 0 && !s:IsInStringOrComment(clnum, col)
	call cursor(clnum, col)
	let bs = strpart('(){}[]', stridx(')}]', line[col - 1]) * 2, 2)
	if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
	    if line[col-1]==')' && col('.') != col('$') - 1
		let ind = virtcol('.') - 1
	    else
		let ind = indent(s:GetMSL(line('.')))
	    endif
	endif
	return ind
    endif

    " If we have a deindenting keyword, find its match and indent to its level.
    " TODO: this is messy
    if s:Match(clnum, s:falcon_deindent_keywords)
	call cursor(clnum, 1)
	if searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
		    \ s:end_skip_expr) > 0
	    let msl  = s:GetMSL(line('.'))
	    let line = getline(line('.'))

	    if strpart(line, 0, col('.') - 1) =~ '=\s*$' &&
			\ strpart(line, col('.') - 1, 2) !~ 'do'
		let ind = virtcol('.') - 1
	    elseif getline(msl) =~ '=\s*\(#.*\)\=$'
		let ind = indent(line('.'))
	    else
		let ind = indent(msl)
	    endif
	endif
	return ind
    endif

    " If we are in a multi-line string or line-comment, don't do anything to it.
    if s:IsInString(clnum, matchend(line, '^\s*') + 1)
	return indent('.')
    endif

    " Find a non-blank, non-multi-line string line above the current line.
    let lnum = s:PrevNonBlankNonString(clnum - 1)

    " If the line is empty and inside a string, use the previous line.
    if line =~ '^\s*$' && lnum != prevnonblank(clnum - 1)
	return indent(prevnonblank(clnum))
    endif

    " At the start of the file use zero indent.
    if lnum == 0
	return 0
    endif

    " Set up variables for the previous line.
    let line = getline(lnum)
    let ind = indent(lnum)

    " If the previous line ended with a block opening, add a level of indent.
    if s:Match(lnum, s:block_regex)
	return indent(s:GetMSL(lnum)) + shiftwidth()
    endif

    " If it contained hanging closing brackets, find the rightmost one, find its
    " match and indent according to that.
    if line =~ '[[({]' || line =~ '[])}]\s*\%(#.*\)\=$'
	let [opening, closing] = s:ExtraBrackets(lnum)

	if opening.pos != -1
	    if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
		if col('.') + 1 == col('$')
		    return ind + shiftwidth()
		else
		    return virtcol('.')
		endif
	    else
		let nonspace = matchend(line, '\S', opening.pos + 1) - 1
		return nonspace > 0 ? nonspace : ind + shiftwidth()
	    endif
	elseif closing.pos != -1
	    call cursor(lnum, closing.pos + 1)
	    normal! %

	    if s:Match(line('.'), s:falcon_indent_keywords)
		return indent('.') + shiftwidth()
	    else
		return indent('.')
	    endif
	else
	    call cursor(clnum, vcol)
	end
    endif

    " If the previous line ended with an "end", match that "end"s beginning's
    " indent.
    let col = s:Match(lnum, '\%(^\|[^.:@$]\)\<end\>\s*\%(#.*\)\=$')
    if col > 0
	call cursor(lnum, col)
	if searchpair(s:end_start_regex, '', s:end_end_regex, 'bW',
		    \ s:end_skip_expr) > 0
	    let n = line('.')
	    let ind = indent('.')
	    let msl = s:GetMSL(n)
	    if msl != n
		let ind = indent(msl)
	    end
	    return ind
	endif
    end

    let col = s:Match(lnum, s:falcon_indent_keywords)
    if col > 0
	call cursor(lnum, col)
	let ind = virtcol('.') - 1 + shiftwidth()
	" TODO: make this better (we need to count them) (or, if a searchpair
	" fails, we know that something is lacking an end and thus we indent a
	" level
	if s:Match(lnum, s:end_end_regex)
	    let ind = indent('.')
	endif
	return ind
    endif

    " Set up variables to use and search for MSL to the previous line.
    let p_lnum = lnum
    let lnum = s:GetMSL(lnum)

    " If the previous line wasn't a MSL and is continuation return its indent.
    " TODO: the || s:IsInString() thing worries me a bit.
    if p_lnum != lnum
	if s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
	    return ind
	endif
    endif

    " Set up more variables, now that we know we wasn't continuation bound.
    let line = getline(lnum)
    let msl_ind = indent(lnum)

    " If the MSL line had an indenting keyword in it, add a level of indent.
    " TODO: this does not take into account contrived things such as
    " module Foo; class Bar; end
    if s:Match(lnum, s:falcon_indent_keywords)
	let ind = msl_ind + shiftwidth()
	if s:Match(lnum, s:end_end_regex)
	    let ind = ind - shiftwidth()
	endif
	return ind
    endif

    " If the previous line ended with [*+/.,-=], but wasn't a block ending or a
    " closing bracket, indent one extra level.
    if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
	if lnum == p_lnum
	    let ind = msl_ind + shiftwidth()
	else
	    let ind = msl_ind
	endif
	return ind
    endif

  return ind
endfunction

" }}}1

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: set sw=4 sts=4 et tw=80 :
PK�j�Zt���4�4vim80/indent/tex.vimnu�[���" Vim indent file
" Language:     LaTeX
" Maintainer:   Yichao Zhou <broken.zhou AT gmail.com>
" Created:      Sat, 16 Feb 2002 16:50:19 +0100
" Version: 1.0.0
"   Please email me if you found something I can do.  Comments, bug report and
"   feature request are welcome.

" Last Update:  {{{
"               25th Sep 2002, by LH :
"               (*) better support for the option
"               (*) use some regex instead of several '||'.
"               Oct 9th, 2003, by JT:
"               (*) don't change indentation of lines starting with '%'
"               2005/06/15, Moshe Kaminsky <kaminsky AT math.huji.ac.il>
"               (*) New variables:
"                   g:tex_items, g:tex_itemize_env, g:tex_noindent_env
"               2011/3/6, by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Don't change indentation of lines starting with '%'
"                   I don't see any code with '%' and it doesn't work properly
"                   so I add some code.
"               (*) New features: Add smartindent-like indent for "{}" and  "[]".
"               (*) New variables: g:tex_indent_brace
"               2011/9/25, by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Bug fix: smartindent-like indent for "[]"
"               (*) New features: Align with "&".
"               (*) New variable: g:tex_indent_and.
"               2011/10/23 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Bug fix: improve the smartindent-like indent for "{}" and
"               "[]".
"               2012/02/27 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Bug fix: support default folding marker.
"               (*) Indent with "&" is not very handy.  Make it not enable by
"               default.
"               2012/03/06 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Modify "&" behavior and make it default again.  Now "&"
"               won't align when there are more then one "&" in the previous
"               line.
"               (*) Add indent "\left(" and "\right)"
"               (*) Trust user when in "verbatim" and "lstlisting"
"               2012/03/11 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Modify "&" so that only indent when current line start with
"                   "&".
"               2012/03/12 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Modify indentkeys.
"               2012/03/18 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Add &cpo
"               2013/05/02 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Fix problem about GetTeXIndent checker. Thank Albert Netymk
"                   for reporting this.
"               2014/06/23 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Remove the feature g:tex_indent_and because it is buggy.
"               (*) If there is not any obvious indentation hints, we do not
"                   alert our user's current indentation.
"               (*) g:tex_indent_brace now only works if the open brace is the
"                   last character of that line.
"               2014/08/03 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Indent current line if last line has larger indentation
"               2016/11/08 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Fix problems for \[ and \].  Thanks Bruno for reporting.
"               2017/04/30 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Fix a bug between g:tex_noindent_env and g:tex_indent_items
"                   Now g:tex_noindent_env='document\|verbatim\|itemize' (Emacs
"                   style) is supported.  Thanks Miles Wheeler for reporting.
"               2018/02/07 by Yichao Zhou <broken.zhou AT gmail.com>
"               (*) Make indentation more smart in the normal mode
"
" }}}

" Document: {{{
"
" To set the following options (ok, currently it's just one), add a line like
"   let g:tex_indent_items = 1
" to your ~/.vimrc.
"
" * g:tex_indent_brace
"
"   If this variable is unset or non-zero, it will use smartindent-like style
"   for "{}" and "[]".  Now this only works if the open brace is the last
"   character of that line.
"
"         % Example 1
"         \usetikzlibrary{
"           external
"         }
"
"         % Example 2
"         \tikzexternalize[
"           prefix=tikz]
"
" * g:tex_indent_items
"
"   If this variable is set, item-environments are indented like Emacs does
"   it, i.e., continuation lines are indented with a shiftwidth.
"
"              set                      unset
"   ------------------------------------------------------
"       \begin{itemize}            \begin{itemize}
"         \item blablabla            \item blablabla
"           bla bla bla              bla bla bla
"         \item blablabla            \item blablabla
"           bla bla bla              bla bla bla
"       \end{itemize}              \end{itemize}
"
"
" * g:tex_items
"
"   A list of tokens to be considered as commands for the beginning of an item
"   command. The tokens should be separated with '\|'. The initial '\' should
"   be escaped. The default is '\\bibitem\|\\item'.
"
" * g:tex_itemize_env
"
"   A list of environment names, separated with '\|', where the items (item
"   commands matching g:tex_items) may appear. The default is
"   'itemize\|description\|enumerate\|thebibliography'.
"
" * g:tex_noindent_env
"
"   A list of environment names. separated with '\|', where no indentation is
"   required. The default is 'document\|verbatim'.
" }}}

" Only define the function once
if exists("b:did_indent")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Define global variable {{{

let b:did_indent = 1

if !exists("g:tex_indent_items")
    let g:tex_indent_items = 1
endif
if !exists("g:tex_indent_brace")
    let g:tex_indent_brace = 1
endif
if !exists("g:tex_max_scan_line")
    let g:tex_max_scan_line = 60
endif
if g:tex_indent_items
    if !exists("g:tex_itemize_env")
        let g:tex_itemize_env = 'itemize\|description\|enumerate\|thebibliography'
    endif
    if !exists('g:tex_items')
        let g:tex_items = '\\bibitem\|\\item'
    endif
else
    let g:tex_items = ''
endif

if !exists("g:tex_noindent_env")
    let g:tex_noindent_env = 'document\|verbatim\|lstlisting'
endif "}}}

" VIM Setting " {{{
setlocal autoindent
setlocal nosmartindent
setlocal indentexpr=GetTeXIndent()
setlocal indentkeys&
exec 'setlocal indentkeys+=[,(,{,),},],\&' . substitute(g:tex_items, '^\|\(\\|\)', ',=', 'g')
let g:tex_items = '^\s*' . substitute(g:tex_items, '^\(\^\\s\*\)*', '', '')
" }}}

function! GetTeXIndent() " {{{
    " Find a non-blank line above the current line.
    let lnum = prevnonblank(v:lnum - 1)
    let cnum = v:lnum

    " Comment line is not what we need.
    while lnum != 0 && getline(lnum) =~ '^\s*%'
        let lnum = prevnonblank(lnum - 1)
    endwhile

    " At the start of the file use zero indent.
    if lnum == 0
        return 0
    endif

    let line = substitute(getline(lnum), '\s*%.*', '','g')     " last line
    let cline = substitute(getline(v:lnum), '\s*%.*', '', 'g') " current line

    "  We are in verbatim, so do what our user what.
    if synIDattr(synID(v:lnum, indent(v:lnum), 1), "name") == "texZone"
        if empty(cline)
            return indent(lnum)
        else
            return indent(v:lnum)
        end
    endif

    if lnum == 0
        return 0
    endif

    let ind = indent(lnum)
    let stay = 1

    " New code for comment: retain the indent of current line
    if cline =~ '^\s*%'
        return indent(v:lnum)
    endif

    " Add a 'shiftwidth' after beginning of environments.
    " Don't add it for \begin{document} and \begin{verbatim}
    " if line =~ '^\s*\\begin{\(.*\)}'  && line !~ 'verbatim'
    " LH modification : \begin does not always start a line
    " ZYC modification : \end after \begin won't cause wrong indent anymore
    if line =~ '\\begin{.*}' 
        if line !~ g:tex_noindent_env
            let ind = ind + shiftwidth()
            let stay = 0
        endif

        if g:tex_indent_items
            " Add another sw for item-environments
            if line =~ g:tex_itemize_env
                let ind = ind + shiftwidth()
                let stay = 0
            endif
        endif
    endif

    if cline =~ '\\end{.*}'
        let retn = s:GetEndIndentation(v:lnum)
        if retn != -1
            return retn
        endif
    end
    " Subtract a 'shiftwidth' when an environment ends
    if cline =~ '\\end{.*}'
                \ && cline !~ g:tex_noindent_env
                \ && cline !~ '\\begin{.*}.*\\end{.*}'
        if g:tex_indent_items
            " Remove another sw for item-environments
            if cline =~ g:tex_itemize_env
                let ind = ind - shiftwidth()
                let stay = 0
            endif
        endif

        let ind = ind - shiftwidth()
        let stay = 0
    endif

    if g:tex_indent_brace
        if line =~ '[[{]$'
            let ind += shiftwidth()
            let stay = 0
        endif

        if cline =~ '^\s*\\\?[\]}]' && s:CheckPairedIsLastCharacter(v:lnum, indent(v:lnum))
            let ind -= shiftwidth()
            let stay = 0
        endif

        if line !~ '^\s*\\\?[\]}]'
            for i in range(indent(lnum)+1, strlen(line)-1)
                let char = line[i]
                if char == ']' || char == '}'
                    if s:CheckPairedIsLastCharacter(lnum, i)
                        let ind -= shiftwidth()
                        let stay = 0
                    endif
                endif
            endfor
        endif
    endif

    " Special treatment for 'item'
    " ----------------------------

    if g:tex_indent_items
        " '\item' or '\bibitem' itself:
        if cline =~ g:tex_items
            let ind = ind - shiftwidth()
            let stay = 0
        endif
        " lines following to '\item' are intented once again:
        if line =~ g:tex_items
            let ind = ind + shiftwidth()
            let stay = 0
        endif
    endif

    if stay && mode() == 'i'
        " If there is no obvious indentation hint, and indentation is triggered
        " in insert mode, we trust our user.
        if empty(cline)
            return ind
        else
            return max([indent(v:lnum), s:GetLastBeginIndentation(v:lnum)])
        endif
    else
        return ind
    endif
endfunction "}}}

function! s:GetLastBeginIndentation(lnum) " {{{
    let matchend = 1
    for lnum in range(a:lnum-1, max([a:lnum - g:tex_max_scan_line, 1]), -1)
        let line = getline(lnum)
        if line =~ '\\end{.*}'
            let matchend += 1
        endif
        if line =~ '\\begin{.*}'
            let matchend -= 1
        endif
        if matchend == 0
            if line =~ g:tex_noindent_env
                return indent(lnum)
            endif
            if line =~ g:tex_itemize_env
                return indent(lnum) + 2 * shiftwidth()
            endif
            return indent(lnum) + shiftwidth()
        endif
    endfor
    return -1
endfunction

function! s:GetEndIndentation(lnum) " {{{
    if getline(a:lnum) =~ '\\begin{.*}.*\\end{.*}'
        return -1
    endif

    let min_indent = 100
    let matchend = 1
    for lnum in range(a:lnum-1, max([a:lnum-g:tex_max_scan_line, 1]), -1)
        let line = getline(lnum)
        if line =~ '\\end{.*}'
            let matchend += 1
        endif
        if line =~ '\\begin{.*}'
            let matchend -= 1
        endif
        if matchend == 0
            return indent(lnum)
        endif
        if !empty(line)
            let min_indent = min([min_indent, indent(lnum)])
        endif
    endfor
    return min_indent - shiftwidth()
endfunction

" Most of the code is from matchparen.vim
function! s:CheckPairedIsLastCharacter(lnum, col) "{{{
    let c_lnum = a:lnum
    let c_col = a:col+1

    let line = getline(c_lnum)
    if line[c_col-1] == '\'
        let c_col = c_col + 1
    endif
    let c = line[c_col-1]

    let plist = split(&matchpairs, '.\zs[:,]')
    let i = index(plist, c)
    if i < 0
        return 0
    endif

    " Figure out the arguments for searchpairpos().
    if i % 2 == 0
        let s_flags = 'nW'
        let c2 = plist[i + 1]
    else
        let s_flags = 'nbW'
        let c2 = c
        let c = plist[i - 1]
    endif
    if c == '['
        let c = '\['
        let c2 = '\]'
    endif

    " Find the match.  When it was just before the cursor move it there for a
    " moment.
    let save_cursor = winsaveview()
    call cursor(c_lnum, c_col)

    " When not in a string or comment ignore matches inside them.
    " We match "escape" for special items, such as lispEscapeSpecial.
    let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
                \ '=~?  "string\\|character\\|singlequote\\|escape\\|comment"'
    execute 'if' s_skip '| let s_skip = 0 | endif'

    let stopline = max([0, c_lnum - g:tex_max_scan_line])

    " Limit the search time to 300 msec to avoid a hang on very long lines.
    " This fails when a timeout is not supported.
    try
        let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 100)
    catch /E118/
    endtry

    call winrestview(save_cursor)

    if m_lnum > 0
        let line = getline(m_lnum)
        return strlen(line) == m_col
    endif

    return 0
endfunction "}}}

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: set sw=4 textwidth=80:
PK�j�Z��XGGvim80/indent/cs.vimnu�[���" Vim indent file
" Language:	C#
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Fri, 15 Mar 2002 07:53:54 CET

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

" C# is like indenting C
setlocal cindent

let b:undo_indent = "setl cin<"
PK�j�Z�/��vim80/indent/tcsh.vimnu�[���" Vim indent file
" Language:		C-shell (tcsh)
" Maintainer:		GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
" Last Modified:	Sat 10 Dec 2011 09:23:00 AM EST

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif

let b:did_indent = 1

setlocal indentexpr=TcshGetIndent()
setlocal indentkeys+=e,0=end,0=endsw indentkeys-=0{,0},0),:,0#

" Only define the function once.
if exists("*TcshGetIndent")
    finish
endif

function TcshGetIndent()
    " Find a non-blank line above the current line.
    let lnum = prevnonblank(v:lnum - 1)

    " Hit the start of the file, use zero indent.
    if lnum == 0
	return 0
    endif

    " Add indent if previous line begins with while or foreach
    " OR line ends with case <str>:, default:, else, then or \
    let ind = indent(lnum)
    let line = getline(lnum)
    if line =~ '\v^\s*%(while|foreach)>|^\s*%(case\s.*:|default:|else)\s*$|%(<then|\\)$'
	let ind = ind + shiftwidth()
    endif

    if line =~ '\v^\s*breaksw>'
	let ind = ind - shiftwidth()
    endif

    " Subtract indent if current line has on end, endif, case commands
    let line = getline(v:lnum)
    if line =~ '\v^\s*%(else|end|endif)\s*$'
	let ind = ind - shiftwidth()
    endif

    return ind
endfunction
PK�j�Z����vim80/indent/gitolite.vimnu�[���" Vim indent file
" Language:	gitolite configuration
" URL:		https://github.com/sitaramc/gitolite/blob/master/contrib/vim/indent/gitolite.vim
"	(https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
" Maintainer:	Sitaram Chamarty <sitaramc@gmail.com>
" (former Maintainer:	Teemu Matilainen <teemu.matilainen@iki.fi>)
" Last Change:	2017 Oct 05

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetGitoliteIndent()
setlocal indentkeys=o,O,*<Return>,!^F,=repo,\",=

" Only define the function once.
if exists("*GetGitoliteIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

function! GetGitoliteIndent()
  let prevln = prevnonblank(v:lnum-1)
  let pline = getline(prevln)
  let cline = getline(v:lnum)

  if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]'
    return shiftwidth()
  elseif cline =~ '^\s*config\s'
    return shiftwidth()
  elseif cline =~ '^\s*option\s'
    return shiftwidth()
  elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
    return shiftwidth()
  elseif cline =~ '^\s*#'
    return indent(prevln)
  elseif cline =~ '^\s*$'
    return -1
  else
    return 0
  endif
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZX<�3q q vim80/indent/cobol.vimnu�[���" Vim indent file
" Language:	cobol
" Author:	Tim Pope <vimNOSPAM@tpope.info>
" $Id: cobol.vim,v 1.1 2007/05/05 18:08:19 vimboss Exp $

if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

setlocal expandtab
setlocal indentexpr=GetCobolIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+=0<*>,0/,0$,0=01,=~division,=~section,0=~end,0=~then,0=~else,0=~when,*<Return>,.

" Only define the function once.
if exists("*GetCobolIndent")
    finish
endif

let s:skip = 'getline(".") =~ "^.\\{6\\}[*/$-]\\|\"[^\"]*\""'

function! s:prevgood(lnum)
    " Find a non-blank line above the current line.
    " Skip over comments.
    let lnum = a:lnum
    while lnum > 0
        let lnum = prevnonblank(lnum - 1)
        let line = getline(lnum)
        if line !~? '^\s*[*/$-]' && line !~? '^.\{6\}[*/$CD-]'
            break
        endif
    endwhile
    return lnum
endfunction

function! s:stripped(lnum)
    return substitute(strpart(getline(a:lnum),0,72),'^\s*','','')
endfunction

function! s:optionalblock(lnum,ind,blocks,clauses)
    let ind = a:ind
    let clauses = '\c\<\%(\<NOT\s\+\)\@<!\%(NOT\s\+\)\=\%('.a:clauses.'\)'
    let begin = '\c-\@<!\<\%('.a:blocks.'\)\>'
    let beginfull = begin.'\ze.*\%(\n\%(\s*\%([*/$-].*\)\=\n\)*\)\=\s*\%('.clauses.'\)'
    let end   = '\c\<end-\%('.a:blocks.'\)\>\|\%(\.\%( \|$\)\)\@='
    let cline = s:stripped(a:lnum)
    let line  = s:stripped(s:prevgood(a:lnum))
    if cline =~? clauses "&& line !~? '^search\>'
        call cursor(a:lnum,1)
        let lastclause = searchpair(beginfull,clauses,end,'bWr',s:skip)
        if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin
            let ind = indent(lastclause)
        elseif lastclause > 0
            let ind = indent(lastclause) + shiftwidth()
            "let ind = ind + shiftwidth()
        endif
    elseif line =~? clauses && cline !~? end
        let ind = ind + shiftwidth()
    endif
    return ind
endfunction

function! GetCobolIndent(lnum) abort
    let minshft = 6
    let ashft = minshft + 1
    let bshft = ashft + 4
    " (Obsolete) numbered lines
    if getline(a:lnum) =~? '^\s*\d\{6\}\%($\|[ */$CD-]\)'
        return 0
    endif
    let cline = s:stripped(a:lnum)
    " Comments, etc. must start in the 7th column
    if cline =~? '^[*/$-]'
        return minshft
    elseif cline =~# '^[CD]' && indent(a:lnum) == minshft
        return minshft
    endif
    " Divisions, sections, and file descriptions start in area A
    if cline =~? '\<\(DIVISION\|SECTION\)\%($\|\.\)' || cline =~? '^[FS]D\>'
        return ashft
    endif
    " Fields
    if cline =~? '^0*\(1\|77\)\>'
        return ashft
    endif
    if cline =~? '^\d\+\>'
        let cnum = matchstr(cline,'^\d\+\>')
        let default = 0
        let step = -1
        while step < 2
        let lnum = a:lnum
        while lnum > 0 && lnum < line('$') && lnum > a:lnum - 500 && lnum < a:lnum + 500
            let lnum = step > 0 ? nextnonblank(lnum + step) : prevnonblank(lnum + step)
            let line = getline(lnum)
            let lindent = indent(lnum)
            if line =~? '^\s*\d\+\>'
                let num = matchstr(line,'^\s*\zs\d\+\>')
                if 0+cnum == num
                    return lindent
                elseif 0+cnum > num && default < lindent + shiftwidth()
                    let default = lindent + shiftwidth()
                endif
            elseif lindent < bshft && lindent >= ashft
                break
            endif
        endwhile
        let step = step + 2
        endwhile
        return default ? default : bshft
    endif
    let lnum = s:prevgood(a:lnum)
    " Hit the start of the file, use "zero" indent.
    if lnum == 0
        return ashft
    endif
    " Initial spaces are ignored
    let line = s:stripped(lnum)
    let ind = indent(lnum)
    " Paragraphs.  There may be some false positives.
    if cline =~? '^\(\a[A-Z0-9-]*[A-Z0-9]\|\d[A-Z0-9-]*\a\)\.' "\s*$'
        if cline !~? '^EXIT\s*\.' && line =~? '\.\s*$'
            return ashft
        endif
    endif
    " Paragraphs in the identification division.
    "if cline =~? '^\(PROGRAM-ID\|AUTHOR\|INSTALLATION\|' .
                "\ 'DATE-WRITTEN\|DATE-COMPILED\|SECURITY\)\>'
        "return ashft
    "endif
    if line =~? '\.$'
        " XXX
        return bshft
    endif
    if line =~? '^PERFORM\>'
        let perfline = substitute(line, '\c^PERFORM\s*', "", "")
        if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$'
            let ind = ind + shiftwidth()
        elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$'
            let ind = ind + shiftwidth()
        endif
    endif
    if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>'
        let ind = ind + shiftwidth()
    endif
    let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR')
    let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION')
    if cline !~? '^AT\s\+END\>' || line !~? '^SEARCH\>'
        let ind = s:optionalblock(a:lnum,ind,'DELETE\|REWRITE\|START\|WRITE\|READ','INVALID\s\+KEY\|AT\s\+END\|NO\s\+DATA\|AT\s\+END-OF-PAGE')
    endif
    if cline =~? '^WHEN\>'
        call cursor(a:lnum,1)
        " We also search for READ so that contained AT ENDs are skipped
        let lastclause = searchpair('\c-\@<!\<\%(SEARCH\|EVALUATE\|READ\)\>','\c\<\%(WHEN\|AT\s\+END\)\>','\c\<END-\%(SEARCH\|EVALUATE\|READ\)\>','bW',s:skip)
        let g:foo = s:stripped(lastclause)
        if s:stripped(lastclause) =~? '\c\<\%(WHEN\|AT\s\+END\)\>'
            "&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>'
            let ind = indent(lastclause)
        elseif lastclause > 0
            let ind = indent(lastclause) + shiftwidth()
        endif
    elseif line =~? '^WHEN\>'
        let ind = ind + shiftwidth()
    endif
    "I'm not sure why I had this
    "if line =~? '^ELSE\>-\@!' && line !~? '\.$'
        "let ind = indent(s:prevgood(lnum))
    "endif
    if cline =~? '^\(END\)\>-\@!'
        " On lines with just END, 'guess' a simple shift left
        let ind = ind - shiftwidth()
    elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!'
        call cursor(a:lnum,indent(a:lnum))
        let match = searchpair('\c-\@<!\<IF\>','\c-\@<!\%(THEN\|ELSE\)\>','\c-\@<!\<END-IF\>\zs','bnW',s:skip)
        if match > 0
            let ind = indent(match)
        endif
    elseif cline =~? '^END-[A-Z]'
        let beginword = matchstr(cline,'\c\<END-\zs[A-Z0-9-]\+')
        let endword = 'END-'.beginword
        let first = 0
        let suffix = '.*\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*'
        if beginword =~? '^\%(ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT\)$'
            let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+SIZE\s\+ERROR'
            let g:beginword = beginword
            let first = 1
        elseif beginword =~? '^\%(STRING\|UNSTRING\)$'
            let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+OVERFLOW'
            let first = 1
        elseif beginword =~? '^\%(ACCEPT\|DISPLAY\)$'
            let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+EXCEPTION'
            let first = 1
        elseif beginword ==? 'CALL'
            let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+\%(EXCEPTION\|OVERFLOW\)'
            let first = 1
        elseif beginword =~? '^\%(DELETE\|REWRITE\|START\|READ\|WRITE\)$'
            let first = 1
            let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=\(INVALID\s\+KEY'
            if beginword =~? '^READ'
                let first = 0
                let beginword = beginword . '\|AT\s\+END\|NO\s\+DATA'
            elseif beginword =~? '^WRITE'
                let beginword = beginword . '\|AT\s\+END-OF-PAGE'
            endif
            let beginword = beginword . '\)'
        endif
        call cursor(a:lnum,indent(a:lnum))
        let match = searchpair('\c-\@<!\<'.beginword.'\>','','\c\<'.endword.'\>\zs','bnW'.(first? 'r' : ''),s:skip)
        if match > 0
            let ind = indent(match)
        elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>'
            let ind = ind - shiftwidth()
        endif
    endif
    return ind < bshft ? bshft : ind
endfunction
PK�j�ZFi�bbvim80/indent/rust.vimnu�[���" Vim indent file
" Language:         Rust
" Author:           Chris Morgan <me@chrismorgan.info>
" Last Change:      2017 Jun 13
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
	finish
endif
let b:did_indent = 1

setlocal cindent
setlocal cinoptions=L0,(0,Ws,J1,j1
setlocal cinkeys=0{,0},!^F,o,O,0[,0]
" Don't think cinwords will actually do anything at all... never mind
setlocal cinwords=for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,extern

" Some preliminary settings
setlocal nolisp		" Make sure lisp indenting doesn't supersede us
setlocal autoindent	" indentexpr isn't much help otherwise
" Also do indentkeys, otherwise # gets shoved to column 0 :-/
setlocal indentkeys=0{,0},!^F,o,O,0[,0]

setlocal indentexpr=GetRustIndent(v:lnum)

" Only define the function once.
if exists("*GetRustIndent")
	finish
endif

let s:save_cpo = &cpo
set cpo&vim

" Come here when loading the script the first time.

function! s:get_line_trimmed(lnum)
	" Get the line and remove a trailing comment.
	" Use syntax highlighting attributes when possible.
	" NOTE: this is not accurate; /* */ or a line continuation could trick it
	let line = getline(a:lnum)
	let line_len = strlen(line)
	if has('syntax_items')
		" If the last character in the line is a comment, do a binary search for
		" the start of the comment.  synID() is slow, a linear search would take
		" too long on a long line.
		if synIDattr(synID(a:lnum, line_len, 1), "name") =~ 'Comment\|Todo'
			let min = 1
			let max = line_len
			while min < max
				let col = (min + max) / 2
				if synIDattr(synID(a:lnum, col, 1), "name") =~ 'Comment\|Todo'
					let max = col
				else
					let min = col + 1
				endif
			endwhile
			let line = strpart(line, 0, min - 1)
		endif
		return substitute(line, "\s*$", "", "")
	else
		" Sorry, this is not complete, nor fully correct (e.g. string "//").
		" Such is life.
		return substitute(line, "\s*//.*$", "", "")
	endif
endfunction

function! s:is_string_comment(lnum, col)
	if has('syntax_items')
		for id in synstack(a:lnum, a:col)
			let synname = synIDattr(id, "name")
			if synname == "rustString" || synname =~ "^rustComment"
				return 1
			endif
		endfor
	else
		" without syntax, let's not even try
		return 0
	endif
endfunction

function GetRustIndent(lnum)

	" Starting assumption: cindent (called at the end) will do it right
	" normally. We just want to fix up a few cases.

	let line = getline(a:lnum)

	if has('syntax_items')
		let synname = synIDattr(synID(a:lnum, 1, 1), "name")
		if synname == "rustString"
			" If the start of the line is in a string, don't change the indent
			return -1
		elseif synname =~ '\(Comment\|Todo\)'
					\ && line !~ '^\s*/\*'  " not /* opening line
			if synname =~ "CommentML" " multi-line
				if line !~ '^\s*\*' && getline(a:lnum - 1) =~ '^\s*/\*'
					" This is (hopefully) the line after a /*, and it has no
					" leader, so the correct indentation is that of the
					" previous line.
					return GetRustIndent(a:lnum - 1)
				endif
			endif
			" If it's in a comment, let cindent take care of it now. This is
			" for cases like "/*" where the next line should start " * ", not
			" "* " as the code below would otherwise cause for module scope
			" Fun fact: "  /*\n*\n*/" takes two calls to get right!
			return cindent(a:lnum)
		endif
	endif

	" cindent gets second and subsequent match patterns/struct members wrong,
	" as it treats the comma as indicating an unfinished statement::
	"
	" match a {
	"     b => c,
	"         d => e,
	"         f => g,
	" };

	" Search backwards for the previous non-empty line.
	let prevlinenum = prevnonblank(a:lnum - 1)
	let prevline = s:get_line_trimmed(prevlinenum)
	while prevlinenum > 1 && prevline !~ '[^[:blank:]]'
		let prevlinenum = prevnonblank(prevlinenum - 1)
		let prevline = s:get_line_trimmed(prevlinenum)
	endwhile

	" Handle where clauses nicely: subsequent values should line up nicely.
	if prevline[len(prevline) - 1] == ","
				\ && prevline =~# '^\s*where\s'
		return indent(prevlinenum) + 6
	endif

	if prevline[len(prevline) - 1] == ","
				\ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]'
				\ && prevline !~ '^\s*fn\s'
				\ && prevline !~ '([^()]\+,$'
				\ && s:get_line_trimmed(a:lnum) !~ '^\s*\S\+\s*=>'
		" Oh ho! The previous line ended in a comma! I bet cindent will try to
		" take this too far... For now, let's normally use the previous line's
		" indent.

		" One case where this doesn't work out is where *this* line contains
		" square or curly brackets; then we normally *do* want to be indenting
		" further.
		"
		" Another case where we don't want to is one like a function
		" definition with arguments spread over multiple lines:
		"
		" fn foo(baz: Baz,
		"        baz: Baz) // <-- cindent gets this right by itself
		"
		" Another case is similar to the previous, except calling a function
		" instead of defining it, or any conditional expression that leaves
		" an open paren:
		"
		" foo(baz,
		"     baz);
		"
		" if baz && (foo ||
		"            bar) {
		"
		" Another case is when the current line is a new match arm.
		"
		" There are probably other cases where we don't want to do this as
		" well. Add them as needed.
		return indent(prevlinenum)
	endif

	if !has("patch-7.4.355")
		" cindent before 7.4.355 doesn't do the module scope well at all; e.g.::
		"
		" static FOO : &'static [bool] = [
		" true,
		"	 false,
		"	 false,
		"	 true,
		"	 ];
		"
		"	 uh oh, next statement is indented further!

		" Note that this does *not* apply the line continuation pattern properly;
		" that's too hard to do correctly for my liking at present, so I'll just
		" start with these two main cases (square brackets and not returning to
		" column zero)

		call cursor(a:lnum, 1)
		if searchpair('{\|(', '', '}\|)', 'nbW',
					\ 's:is_string_comment(line("."), col("."))') == 0
			if searchpair('\[', '', '\]', 'nbW',
						\ 's:is_string_comment(line("."), col("."))') == 0
				" Global scope, should be zero
				return 0
			else
				" At the module scope, inside square brackets only
				"if getline(a:lnum)[0] == ']' || search('\[', '', '\]', 'nW') == a:lnum
				if line =~ "^\\s*]"
					" It's the closing line, dedent it
					return 0
				else
					return shiftwidth()
				endif
			endif
		endif
	endif

	" Fall back on cindent, which does it mostly right
	return cindent(a:lnum)
endfunction

let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z閴
vim80/indent/perl.vimnu�[���" Vim indent file
" Language:      Perl 5
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2017-01-04

" Suggestions and improvements by :
"   Aaron J. Sherman (use syntax for hints)
"   Artem Chuprina (play nice with folding)

" TODO things that are not or not properly indented (yet) :
" - Continued statements
"     print "foo",
"       "bar";
"     print "foo"
"       if bar();
" - Multiline regular expressions (m//x)
" (The following probably needs modifying the perl syntax file)
" - qw() lists
" - Heredocs with terminators that don't match \I\i*

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

" Is syntax highlighting active ?
let b:indent_use_syntax = has("syntax")

setlocal indentexpr=GetPerlIndent()
setlocal indentkeys+=0=,0),0],0=or,0=and
if !b:indent_use_syntax
    setlocal indentkeys+=0=EO
endif

let s:cpo_save = &cpo
set cpo-=C

function! GetPerlIndent()

    " Get the line to be indented
    let cline = getline(v:lnum)

    " Indent POD markers to column 0
    if cline =~ '^\s*=\L\@!'
        return 0
    endif

    " Get current syntax item at the line's first char
    let csynid = ''
    if b:indent_use_syntax
        let csynid = synIDattr(synID(v:lnum,1,0),"name")
    endif

    " Don't reindent POD and heredocs
    if csynid == "perlPOD" || csynid == "perlHereDoc" || csynid =~ "^pod"
        return indent(v:lnum)
    endif

    " Indent end-of-heredocs markers to column 0
    if b:indent_use_syntax
        " Assumes that an end-of-heredoc marker matches \I\i* to avoid
        " confusion with other types of strings
        if csynid == "perlStringStartEnd" && cline =~ '^\I\i*$'
            return 0
        endif
    else
        " Without syntax hints, assume that end-of-heredocs markers begin with EO
        if cline =~ '^\s*EO'
            return 0
        endif
    endif

    " Now get the indent of the previous perl line.

    " Find a non-blank line above the current line.
    let lnum = prevnonblank(v:lnum - 1)
    " Hit the start of the file, use zero indent.
    if lnum == 0
        return 0
    endif
    let line = getline(lnum)
    let ind = indent(lnum)
    " Skip heredocs, POD, and comments on 1st column
    if b:indent_use_syntax
        let skippin = 2
        while skippin
            let synid = synIDattr(synID(lnum,1,0),"name")
            if (synid == "perlStringStartEnd" && line =~ '^\I\i*$')
                        \ || (skippin != 2 && synid == "perlPOD")
                        \ || (skippin != 2 && synid == "perlHereDoc")
                        \ || synid == "perlComment"
                        \ || synid =~ "^pod"
                let lnum = prevnonblank(lnum - 1)
                if lnum == 0
                    return 0
                endif
                let line = getline(lnum)
                let ind = indent(lnum)
                let skippin = 1
            else
                let skippin = 0
            endif
        endwhile
    else
        if line =~ "^EO"
            let lnum = search("<<[\"']\\=EO", "bW")
            let line = getline(lnum)
            let ind = indent(lnum)
        endif
    endif

    " Indent blocks enclosed by {}, (), or []
    if b:indent_use_syntax
        " Find a real opening brace
        " NOTE: Unlike Perl character classes, we do NOT need to escape the
        " closing brackets with a backslash.  Doing so just puts a backslash
        " in the character class and causes sorrow.  Instead, put the closing
        " bracket as the first character in the class.
        let braceclass = '[][(){}]'
        let bracepos = match(line, braceclass, matchend(line, '^\s*[])}]'))
        while bracepos != -1
            let synid = synIDattr(synID(lnum, bracepos + 1, 0), "name")
            " If the brace is highlighted in one of those groups, indent it.
            " 'perlHereDoc' is here only to handle the case '&foo(<<EOF)'.
            if synid == ""
                        \ || synid == "perlMatchStartEnd"
                        \ || synid == "perlHereDoc"
                        \ || synid == "perlBraces"
                        \ || synid == "perlStatementIndirObj"
                        \ || synid =~ "^perlFiledescStatement"
                        \ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
                let brace = strpart(line, bracepos, 1)
                if brace == '(' || brace == '{' || brace == '['
                    let ind = ind + shiftwidth()
                else
                    let ind = ind - shiftwidth()
                endif
            endif
            let bracepos = match(line, braceclass, bracepos + 1)
        endwhile
        let bracepos = matchend(cline, '^\s*[])}]')
        if bracepos != -1
            let synid = synIDattr(synID(v:lnum, bracepos, 0), "name")
            if synid == ""
                        \ || synid == "perlMatchStartEnd"
                        \ || synid == "perlBraces"
                        \ || synid == "perlStatementIndirObj"
                        \ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
                let ind = ind - shiftwidth()
            endif
        endif
    else
        if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
            let ind = ind + shiftwidth()
        endif
        if cline =~ '^\s*[])}]'
            let ind = ind - shiftwidth()
        endif
    endif

    " Indent lines that begin with 'or' or 'and'
    if cline =~ '^\s*\(or\|and\)\>'
        if line !~ '^\s*\(or\|and\)\>'
            let ind = ind + shiftwidth()
        endif
    elseif line =~ '^\s*\(or\|and\)\>'
        let ind = ind - shiftwidth()
    endif

    return ind

endfunction

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:ts=8:sts=4:sw=4:expandtab:ft=vim
PK�j�Z�˺Y�Yvim80/indent/ruby.vimnu�[���" Vim indent file
" Language:		Ruby
" Maintainer:		Nikolai Weibull <now at bitwi.se>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

" 0. Initialization {{{1
" =================

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

if !exists('g:ruby_indent_access_modifier_style')
  " Possible values: "normal", "indent", "outdent"
  let g:ruby_indent_access_modifier_style = 'normal'
endif

if !exists('g:ruby_indent_block_style')
  " Possible values: "expression", "do"
  let g:ruby_indent_block_style = 'expression'
endif

setlocal nosmartindent

" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetRubyIndent(v:lnum)
setlocal indentkeys=0{,0},0),0],!^F,o,O,e,:,.
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end
setlocal indentkeys+==private,=protected,=public

" Only define the function once.
if exists("*GetRubyIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" 1. Variables {{{1
" ============

" Regex of syntax group names that are or delimit strings/symbols or are comments.
let s:syng_strcom = '\<ruby\%(Regexp\|RegexpDelimiter\|RegexpEscape' .
      \ '\|Symbol\|String\|StringDelimiter\|StringEscape\|ASCIICode' .
      \ '\|Interpolation\|InterpolationDelimiter\|NoInterpolation\|Comment\|Documentation\)\>'

" Regex of syntax group names that are strings.
let s:syng_string =
      \ '\<ruby\%(String\|Interpolation\|NoInterpolation\|StringEscape\)\>'

" Regex of syntax group names that are strings or documentation.
let s:syng_stringdoc =
      \'\<ruby\%(String\|Interpolation\|NoInterpolation\|StringEscape\|Documentation\)\>'

" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr =
      \ "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"

" Regex used for words that, at the start of a line, add a level of indent.
let s:ruby_indent_keywords =
      \ '^\s*\zs\<\%(module\|class\|if\|for' .
      \   '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue' .
      \   '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
      \ '\|\%([=,*/%+-]\|<<\|>>\|:\s\)\s*\zs' .
      \    '\<\%(if\|for\|while\|until\|case\|unless\|begin\):\@!\>'

" Regex used for words that, at the start of a line, remove a level of indent.
let s:ruby_deindent_keywords =
      \ '^\s*\zs\<\%(ensure\|else\|rescue\|elsif\|when\|end\):\@!\>'

" Regex that defines the start-match for the 'end' keyword.
"let s:end_start_regex = '\%(^\|[^.]\)\<\%(module\|class\|def\|if\|for\|while\|until\|case\|unless\|begin\|do\)\>'
" TODO: the do here should be restricted somewhat (only at end of line)?
let s:end_start_regex =
      \ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
      \ '\<\%(module\|class\|if\|for\|while\|until\|case\|unless\|begin' .
      \   '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
      \ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'

" Regex that defines the middle-match for the 'end' keyword.
let s:end_middle_regex = '\<\%(ensure\|else\|\%(\%(^\|;\)\s*\)\@<=\<rescue:\@!\>\|when\|elsif\):\@!\>'

" Regex that defines the end-match for the 'end' keyword.
let s:end_end_regex = '\%(^\|[^.:@$]\)\@<=\<end:\@!\>'

" Expression used for searchpair() call for finding match for 'end' keyword.
let s:end_skip_expr = s:skip_expr .
      \ ' || (expand("<cword>") == "do"' .
      \ ' && getline(".") =~ "^\\s*\\<\\(while\\|until\\|for\\):\\@!\\>")'

" Regex that defines continuation lines, not including (, {, or [.
let s:non_bracket_continuation_regex =
      \ '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'

" Regex that defines continuation lines.
let s:continuation_regex =
      \ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'

" Regex that defines continuable keywords
let s:continuable_regex =
      \ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
      \ '\<\%(if\|for\|while\|until\|unless\):\@!\>'

" Regex that defines bracket continuations
let s:bracket_continuation_regex = '%\@<!\%([({[]\)\s*\%(#.*\)\=$'

" Regex that defines dot continuations
let s:dot_continuation_regex = '%\@<!\.\s*\%(#.*\)\=$'

" Regex that defines backslash continuations
let s:backslash_continuation_regex = '%\@<!\\\s*$'

" Regex that defines end of bracket continuation followed by another continuation
let s:bracket_switch_continuation_regex = '^\([^(]\+\zs).\+\)\+'.s:continuation_regex

" Regex that defines the first part of a splat pattern
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'

" Regex that describes all indent access modifiers
let s:access_modifier_regex = '\C^\s*\%(public\|protected\|private\)\s*\%(#.*\)\=$'

" Regex that describes the indent access modifiers (excludes public)
let s:indent_access_modifier_regex = '\C^\s*\%(protected\|private\)\s*\%(#.*\)\=$'

" Regex that defines blocks.
"
" Note that there's a slight problem with this regex and s:continuation_regex.
" Code like this will be matched by both:
"
"   method_call do |(a, b)|
"
" The reason is that the pipe matches a hanging "|" operator.
"
let s:block_regex =
      \ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|[^|]*|\)\=\s*\%(#.*\)\=$'

let s:block_continuation_regex = '^\s*[^])}\t ].*'.s:block_regex

" Regex that describes a leading operator (only a method call's dot for now)
let s:leading_operator_regex = '^\s*[.]'

" 2. Auxiliary Functions {{{1
" ======================

" Check if the character at lnum:col is inside a string, comment, or is ascii.
function s:IsInStringOrComment(lnum, col)
  return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_strcom
endfunction

" Check if the character at lnum:col is inside a string.
function s:IsInString(lnum, col)
  return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_string
endfunction

" Check if the character at lnum:col is inside a string or documentation.
function s:IsInStringOrDocumentation(lnum, col)
  return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_stringdoc
endfunction

" Check if the character at lnum:col is inside a string delimiter
function s:IsInStringDelimiter(lnum, col)
  return synIDattr(synID(a:lnum, a:col, 1), 'name') == 'rubyStringDelimiter'
endfunction

" Find line above 'lnum' that isn't empty, in a comment, or in a string.
function s:PrevNonBlankNonString(lnum)
  let in_block = 0
  let lnum = prevnonblank(a:lnum)
  while lnum > 0
    " Go in and out of blocks comments as necessary.
    " If the line isn't empty (with opt. comment) or in a string, end search.
    let line = getline(lnum)
    if line =~ '^=begin'
      if in_block
        let in_block = 0
      else
        break
      endif
    elseif !in_block && line =~ '^=end'
      let in_block = 1
    elseif !in_block && line !~ '^\s*#.*$' && !(s:IsInStringOrComment(lnum, 1)
          \ && s:IsInStringOrComment(lnum, strlen(line)))
      break
    endif
    let lnum = prevnonblank(lnum - 1)
  endwhile
  return lnum
endfunction

" Find line above 'lnum' that started the continuation 'lnum' may be part of.
function s:GetMSL(lnum)
  " Start on the line we're at and use its indent.
  let msl = a:lnum
  let msl_body = getline(msl)
  let lnum = s:PrevNonBlankNonString(a:lnum - 1)
  while lnum > 0
    " If we have a continuation line, or we're in a string, use line as MSL.
    " Otherwise, terminate search as we have found our MSL already.
    let line = getline(lnum)

    if !s:Match(msl, s:backslash_continuation_regex) &&
          \ s:Match(lnum, s:backslash_continuation_regex)
      " If the current line doesn't end in a backslash, but the previous one
      " does, look for that line's msl
      "
      " Example:
      "   foo = "bar" \
      "     "baz"
      "
      let msl = lnum
    elseif s:Match(msl, s:leading_operator_regex)
      " If the current line starts with a leading operator, keep its indent
      " and keep looking for an MSL.
      let msl = lnum
    elseif s:Match(lnum, s:splat_regex)
      " If the above line looks like the "*" of a splat, use the current one's
      " indentation.
      "
      " Example:
      "   Hash[*
      "     method_call do
      "       something
      "
      return msl
    elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
          \ s:Match(msl, s:non_bracket_continuation_regex)
      " If the current line is a non-bracket continuation and so is the
      " previous one, keep its indent and continue looking for an MSL.
      "
      " Example:
      "   method_call one,
      "     two,
      "     three
      "
      let msl = lnum
    elseif s:Match(lnum, s:dot_continuation_regex) &&
          \ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
      " If the current line is a bracket continuation or a block-starter, but
      " the previous is a dot, keep going to see if the previous line is the
      " start of another continuation.
      "
      " Example:
      "   parent.
      "     method_call {
      "     three
      "
      let msl = lnum
    elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
          \ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
      " If the current line is a bracket continuation or a block-starter, but
      " the previous is a non-bracket one, respect the previous' indentation,
      " and stop here.
      "
      " Example:
      "   method_call one,
      "     two {
      "     three
      "
      return lnum
    elseif s:Match(lnum, s:bracket_continuation_regex) &&
          \ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
      " If both lines are bracket continuations (the current may also be a
      " block-starter), use the current one's and stop here
      "
      " Example:
      "   method_call(
      "     other_method_call(
      "       foo
      return msl
    elseif s:Match(lnum, s:block_regex) &&
          \ !s:Match(msl, s:continuation_regex) &&
          \ !s:Match(msl, s:block_continuation_regex)
      " If the previous line is a block-starter and the current one is
      " mostly ordinary, use the current one as the MSL.
      "
      " Example:
      "   method_call do
      "     something
      "     something_else
      return msl
    else
      let col = match(line, s:continuation_regex) + 1
      if (col > 0 && !s:IsInStringOrComment(lnum, col))
            \ || s:IsInString(lnum, strlen(line))
        let msl = lnum
      else
        break
      endif
    endif

    let msl_body = getline(msl)
    let lnum = s:PrevNonBlankNonString(lnum - 1)
  endwhile
  return msl
endfunction

" Check if line 'lnum' has more opening brackets than closing ones.
function s:ExtraBrackets(lnum)
  let opening = {'parentheses': [], 'braces': [], 'brackets': []}
  let closing = {'parentheses': [], 'braces': [], 'brackets': []}

  let line = getline(a:lnum)
  let pos  = match(line, '[][(){}]', 0)

  " Save any encountered opening brackets, and remove them once a matching
  " closing one has been found. If a closing bracket shows up that doesn't
  " close anything, save it for later.
  while pos != -1
    if !s:IsInStringOrComment(a:lnum, pos + 1)
      if line[pos] == '('
        call add(opening.parentheses, {'type': '(', 'pos': pos})
      elseif line[pos] == ')'
        if empty(opening.parentheses)
          call add(closing.parentheses, {'type': ')', 'pos': pos})
        else
          let opening.parentheses = opening.parentheses[0:-2]
        endif
      elseif line[pos] == '{'
        call add(opening.braces, {'type': '{', 'pos': pos})
      elseif line[pos] == '}'
        if empty(opening.braces)
          call add(closing.braces, {'type': '}', 'pos': pos})
        else
          let opening.braces = opening.braces[0:-2]
        endif
      elseif line[pos] == '['
        call add(opening.brackets, {'type': '[', 'pos': pos})
      elseif line[pos] == ']'
        if empty(opening.brackets)
          call add(closing.brackets, {'type': ']', 'pos': pos})
        else
          let opening.brackets = opening.brackets[0:-2]
        endif
      endif
    endif

    let pos = match(line, '[][(){}]', pos + 1)
  endwhile

  " Find the rightmost brackets, since they're the ones that are important in
  " both opening and closing cases
  let rightmost_opening = {'type': '(', 'pos': -1}
  let rightmost_closing = {'type': ')', 'pos': -1}

  for opening in opening.parentheses + opening.braces + opening.brackets
    if opening.pos > rightmost_opening.pos
      let rightmost_opening = opening
    endif
  endfor

  for closing in closing.parentheses + closing.braces + closing.brackets
    if closing.pos > rightmost_closing.pos
      let rightmost_closing = closing
    endif
  endfor

  return [rightmost_opening, rightmost_closing]
endfunction

function s:Match(lnum, regex)
  let line   = getline(a:lnum)
  let offset = match(line, '\C'.a:regex)
  let col    = offset + 1

  while offset > -1 && s:IsInStringOrComment(a:lnum, col)
    let offset = match(line, '\C'.a:regex, offset + 1)
    let col = offset + 1
  endwhile

  if offset > -1
    return col
  else
    return 0
  endif
endfunction

" Locates the containing class/module's definition line, ignoring nested classes
" along the way.
"
function! s:FindContainingClass()
  let saved_position = getpos('.')

  while searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
        \ s:end_skip_expr) > 0
    if expand('<cword>') =~# '\<class\|module\>'
      let found_lnum = line('.')
      call setpos('.', saved_position)
      return found_lnum
    endif
  endwhile

  call setpos('.', saved_position)
  return 0
endfunction

" 3. GetRubyIndent Function {{{1
" =========================

function GetRubyIndent(...)
  " 3.1. Setup {{{2
  " ----------

  " The value of a single shift-width
  let sw = shiftwidth()

  " For the current line, use the first argument if given, else v:lnum
  let clnum = a:0 ? a:1 : v:lnum

  " Set up variables for restoring position in file.  Could use clnum here.
  let vcol = col('.')

  " 3.2. Work on the current line {{{2
  " -----------------------------

  " Get the current line.
  let line = getline(clnum)
  let ind = -1

  " If this line is an access modifier keyword, align according to the closest
  " class declaration.
  if g:ruby_indent_access_modifier_style == 'indent'
    if s:Match(clnum, s:access_modifier_regex)
      let class_line = s:FindContainingClass()
      if class_line > 0
        return indent(class_line) + sw
      endif
    endif
  elseif g:ruby_indent_access_modifier_style == 'outdent'
    if s:Match(clnum, s:access_modifier_regex)
      let class_line = s:FindContainingClass()
      if class_line > 0
        return indent(class_line)
      endif
    endif
  endif

  " If we got a closing bracket on an empty line, find its match and indent
  " according to it.  For parentheses we indent to its column - 1, for the
  " others we indent to the containing line's MSL's level.  Return -1 if fail.
  let col = matchend(line, '^\s*[]})]')
  if col > 0 && !s:IsInStringOrComment(clnum, col)
    call cursor(clnum, col)
    let bs = strpart('(){}[]', stridx(')}]', line[col - 1]) * 2, 2)
    if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
      if line[col-1]==')' && col('.') != col('$') - 1
        let ind = virtcol('.') - 1
      elseif g:ruby_indent_block_style == 'do'
        let ind = indent(line('.'))
      else " g:ruby_indent_block_style == 'expression'
        let ind = indent(s:GetMSL(line('.')))
      endif
    endif
    return ind
  endif

  " If we have a =begin or =end set indent to first column.
  if match(line, '^\s*\%(=begin\|=end\)$') != -1
    return 0
  endif

  " If we have a deindenting keyword, find its match and indent to its level.
  " TODO: this is messy
  if s:Match(clnum, s:ruby_deindent_keywords)
    call cursor(clnum, 1)
    if searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
          \ s:end_skip_expr) > 0
      let msl  = s:GetMSL(line('.'))
      let line = getline(line('.'))

      if strpart(line, 0, col('.') - 1) =~ '=\s*$' &&
            \ strpart(line, col('.') - 1, 2) !~ 'do'
        " assignment to case/begin/etc, on the same line, hanging indent
        let ind = virtcol('.') - 1
      elseif g:ruby_indent_block_style == 'do'
        " align to line of the "do", not to the MSL
        let ind = indent(line('.'))
      elseif getline(msl) =~ '=\s*\(#.*\)\=$'
        " in the case of assignment to the MSL, align to the starting line,
        " not to the MSL
        let ind = indent(line('.'))
      else
        " align to the MSL
        let ind = indent(msl)
      endif
    endif
    return ind
  endif

  " If we are in a multi-line string or line-comment, don't do anything to it.
  if s:IsInStringOrDocumentation(clnum, matchend(line, '^\s*') + 1)
    return indent('.')
  endif

  " If we are at the closing delimiter of a "<<" heredoc-style string, set the
  " indent to 0.
  if line =~ '^\k\+\s*$'
        \ && s:IsInStringDelimiter(clnum, 1)
        \ && search('\V<<'.line, 'nbW') > 0
    return 0
  endif

  " If the current line starts with a leading operator, add a level of indent.
  if s:Match(clnum, s:leading_operator_regex)
    return indent(s:GetMSL(clnum)) + sw
  endif

  " 3.3. Work on the previous line. {{{2
  " -------------------------------

  " Find a non-blank, non-multi-line string line above the current line.
  let lnum = s:PrevNonBlankNonString(clnum - 1)

  " If the line is empty and inside a string, use the previous line.
  if line =~ '^\s*$' && lnum != prevnonblank(clnum - 1)
    return indent(prevnonblank(clnum))
  endif

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif

  " Set up variables for the previous line.
  let line = getline(lnum)
  let ind = indent(lnum)

  if g:ruby_indent_access_modifier_style == 'indent'
    " If the previous line was a private/protected keyword, add a
    " level of indent.
    if s:Match(lnum, s:indent_access_modifier_regex)
      return indent(lnum) + sw
    endif
  elseif g:ruby_indent_access_modifier_style == 'outdent'
    " If the previous line was a private/protected/public keyword, add
    " a level of indent, since the keyword has been out-dented.
    if s:Match(lnum, s:access_modifier_regex)
      return indent(lnum) + sw
    endif
  endif

  if s:Match(lnum, s:continuable_regex) && s:Match(lnum, s:continuation_regex)
    return indent(s:GetMSL(lnum)) + sw + sw
  endif

  " If the previous line ended with a block opening, add a level of indent.
  if s:Match(lnum, s:block_regex)
    let msl = s:GetMSL(lnum)

    if g:ruby_indent_block_style == 'do'
      " don't align to the msl, align to the "do"
      let ind = indent(lnum) + sw
    elseif getline(msl) =~ '=\s*\(#.*\)\=$'
      " in the case of assignment to the msl, align to the starting line,
      " not to the msl
      let ind = indent(lnum) + sw
    else
      let ind = indent(msl) + sw
    endif
    return ind
  endif

  " If the previous line started with a leading operator, use its MSL's level
  " of indent
  if s:Match(lnum, s:leading_operator_regex)
    return indent(s:GetMSL(lnum))
  endif

  " If the previous line ended with the "*" of a splat, add a level of indent
  if line =~ s:splat_regex
    return indent(lnum) + sw
  endif

  " If the previous line contained unclosed opening brackets and we are still
  " in them, find the rightmost one and add indent depending on the bracket
  " type.
  "
  " If it contained hanging closing brackets, find the rightmost one, find its
  " match and indent according to that.
  if line =~ '[[({]' || line =~ '[])}]\s*\%(#.*\)\=$'
    let [opening, closing] = s:ExtraBrackets(lnum)

    if opening.pos != -1
      if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
        if col('.') + 1 == col('$')
          return ind + sw
        else
          return virtcol('.')
        endif
      else
        let nonspace = matchend(line, '\S', opening.pos + 1) - 1
        return nonspace > 0 ? nonspace : ind + sw
      endif
    elseif closing.pos != -1
      call cursor(lnum, closing.pos + 1)
      normal! %

      if s:Match(line('.'), s:ruby_indent_keywords)
        return indent('.') + sw
      else
        return indent(s:GetMSL(line('.')))
      endif
    else
      call cursor(clnum, vcol)
    end
  endif

  " If the previous line ended with an "end", match that "end"s beginning's
  " indent.
  let col = s:Match(lnum, '\%(^\|[^.:@$]\)\<end\>\s*\%(#.*\)\=$')
  if col > 0
    call cursor(lnum, col)
    if searchpair(s:end_start_regex, '', s:end_end_regex, 'bW',
          \ s:end_skip_expr) > 0
      let n = line('.')
      let ind = indent('.')
      let msl = s:GetMSL(n)
      if msl != n
        let ind = indent(msl)
      end
      return ind
    endif
  end

  let col = s:Match(lnum, s:ruby_indent_keywords)
  if col > 0
    call cursor(lnum, col)
    let ind = virtcol('.') - 1 + sw
    " TODO: make this better (we need to count them) (or, if a searchpair
    " fails, we know that something is lacking an end and thus we indent a
    " level
    if s:Match(lnum, s:end_end_regex)
      let ind = indent('.')
    endif
    return ind
  endif

  " 3.4. Work on the MSL line. {{{2
  " --------------------------

  " Set up variables to use and search for MSL to the previous line.
  let p_lnum = lnum
  let lnum = s:GetMSL(lnum)

  " If the previous line wasn't a MSL.
  if p_lnum != lnum
    " If previous line ends bracket and begins non-bracket continuation decrease indent by 1.
    if s:Match(p_lnum, s:bracket_switch_continuation_regex)
      return ind - 1
    " If previous line is a continuation return its indent.
    " TODO: the || s:IsInString() thing worries me a bit.
    elseif s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
      return ind
    endif
  endif

  " Set up more variables, now that we know we wasn't continuation bound.
  let line = getline(lnum)
  let msl_ind = indent(lnum)

  " If the MSL line had an indenting keyword in it, add a level of indent.
  " TODO: this does not take into account contrived things such as
  " module Foo; class Bar; end
  if s:Match(lnum, s:ruby_indent_keywords)
    let ind = msl_ind + sw
    if s:Match(lnum, s:end_end_regex)
      let ind = ind - sw
    endif
    return ind
  endif

  " If the previous line ended with [*+/.,-=], but wasn't a block ending or a
  " closing bracket, indent one extra level.
  if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
    if lnum == p_lnum
      let ind = msl_ind + sw
    else
      let ind = msl_ind
    endif
    return ind
  endif

  " }}}2

  return ind
endfunction

" }}}1

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:set sw=2 sts=2 ts=8 et:
PK�j�Z+�u�EEvim80/indent/json.vimnu�[���" Vim indent file
" Language:		JSON
" Mantainer:		Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
" Last Change:          2017 Jun 13
"   https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c
" Original Author:	Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json
" Acknowledgement:      Based off of vim-javascript maintained by Darrick Wiebe 
"                       http://www.vim.org/scripts/script.php?script_id=2765

" 0. Initialization {{{1
" =================

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal nosmartindent

" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJSONIndent()
setlocal indentkeys=0{,0},0),0[,0],!^F,o,O,e

" Only define the function once.
if exists("*GetJSONIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" 1. Variables {{{1
" ============

let s:line_term = '\s*\%(\%(\/\/\).*\)\=$'
" Regex that defines blocks.
let s:block_regex = '\%({\)\s*\%(|\%([*@]\=\h\w*,\=\s*\)\%(,\s*[*@]\=\h\w*\)*|\)\=' . s:line_term

" 2. Auxiliary Functions {{{1
" ======================

" Check if the character at lnum:col is inside a string.
function s:IsInString(lnum, col)
  return synIDattr(synID(a:lnum, a:col, 1), 'name') == 'jsonString'
endfunction

" Find line above 'lnum' that isn't empty, or in a string.
function s:PrevNonBlankNonString(lnum)
  let lnum = prevnonblank(a:lnum)
  while lnum > 0
    " If the line isn't empty or in a string, end search.
    let line = getline(lnum)
    if !(s:IsInString(lnum, 1) && s:IsInString(lnum, strlen(line)))
      break
    endif
    let lnum = prevnonblank(lnum - 1)
  endwhile
  return lnum
endfunction

" Check if line 'lnum' has more opening brackets than closing ones.
function s:LineHasOpeningBrackets(lnum)
  let open_0 = 0
  let open_2 = 0
  let open_4 = 0
  let line = getline(a:lnum)
  let pos = match(line, '[][(){}]', 0)
  while pos != -1
    let idx = stridx('(){}[]', line[pos])
    if idx % 2 == 0
      let open_{idx} = open_{idx} + 1
    else
      let open_{idx - 1} = open_{idx - 1} - 1
    endif
    let pos = match(line, '[][(){}]', pos + 1)
  endwhile
  return (open_0 > 0) . (open_2 > 0) . (open_4 > 0)
endfunction

function s:Match(lnum, regex)
  let col = match(getline(a:lnum), a:regex) + 1
  return col > 0 && !s:IsInString(a:lnum, col) ? col : 0
endfunction

" 3. GetJSONIndent Function {{{1
" =========================

function GetJSONIndent()
  " 3.1. Setup {{{2
  " ----------

  " Set up variables for restoring position in file.  Could use v:lnum here.
  let vcol = col('.')

  " 3.2. Work on the current line {{{2
  " -----------------------------

  " Get the current line.
  let line = getline(v:lnum)
  let ind = -1

  " If we got a closing bracket on an empty line, find its match and indent
  " according to it.
  let col = matchend(line, '^\s*[]}]')

  if col > 0 && !s:IsInString(v:lnum, col)
    call cursor(v:lnum, col)
    let bs = strpart('{}[]', stridx('}]', line[col - 1]) * 2, 2)

    let pairstart = escape(bs[0], '[')
    let pairend = escape(bs[1], ']')
    let pairline = searchpair(pairstart, '', pairend, 'bW')

    if pairline > 0 
      let ind = indent(pairline)
    else
      let ind = virtcol('.') - 1
    endif

    return ind
  endif

  " If we are in a multi-line string, don't do anything to it.
  if s:IsInString(v:lnum, matchend(line, '^\s*') + 1)
    return indent('.')
  endif

  " 3.3. Work on the previous line. {{{2
  " -------------------------------

  let lnum = prevnonblank(v:lnum - 1)

  if lnum == 0
    return 0
  endif

  " Set up variables for current line.
  let line = getline(lnum)
  let ind = indent(lnum)

  " If the previous line ended with a block opening, add a level of indent.
  " if s:Match(lnum, s:block_regex)
    " return indent(lnum) + shiftwidth()
  " endif

  " If the previous line contained an opening bracket, and we are still in it,
  " add indent depending on the bracket type.
  if line =~ '[[({]'
    let counts = s:LineHasOpeningBrackets(lnum)
    if counts[0] == '1' || counts[1] == '1' || counts[2] == '1'
      return ind + shiftwidth()
    else
      call cursor(v:lnum, vcol)
    end
  endif

  " }}}2

  return ind
endfunction

" }}}1

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:set sw=2 sts=2 ts=8 noet:
PK�j�ZK_���+�+vim80/indent/ada.vimnu�[���"------------------------------------------------------------------------------
"  Description: Vim Ada indent file
"     Language: Ada (2005)
"	   $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
"    Copyright: Copyright (C) 2006 Martin Krischik
"   Maintainer: Martin Krischik <krischik@users.sourceforge.net>
"		Neil Bird <neil@fnxweb.com>
"		Ned Okie <nokie@radford.edu>
"      $Author: krischik $
"	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/indent/ada.vim $
"      History: 24.05.2006 MK Unified Headers
"		16.07.2006 MK Ada-Mode as vim-ball
"		15.10.2006 MK Bram's suggestion for runtime integration
"		05.11.2006 MK Bram suggested to save on spaces
"		19.09.2007 NO g: missing before ada#Comment
"    Help Page: ft-vim-indent
"------------------------------------------------------------------------------
" ToDo:
"  Verify handling of multi-line exprs. and recovery upon the final ';'.
"  Correctly find comments given '"' and "" ==> " syntax.
"  Combine the two large block-indent functions into one?
"------------------------------------------------------------------------------

" Only load this indent file when no other was loaded.
if exists("b:did_indent") || version < 700
   finish
endif

let b:did_indent = 45

setlocal indentexpr=GetAdaIndent()
setlocal indentkeys-=0{,0}
setlocal indentkeys+=0=~then,0=~end,0=~elsif,0=~when,0=~exception,0=~begin,0=~is,0=~record

" Only define the functions once.
if exists("*GetAdaIndent")
   finish
endif
let s:keepcpo= &cpo
set cpo&vim

if exists("g:ada_with_gnat_project_files")
   let s:AdaBlockStart = '^\s*\(if\>\|while\>\|else\>\|elsif\>\|loop\>\|for\>.*\<\(loop\|use\)\>\|declare\>\|begin\>\|type\>.*\<is\>[^;]*$\|\(type\>.*\)\=\<record\>\|procedure\>\|function\>\|accept\>\|do\>\|task\>\|package\>\|project\>\|then\>\|when\>\|is\>\)'
else
   let s:AdaBlockStart = '^\s*\(if\>\|while\>\|else\>\|elsif\>\|loop\>\|for\>.*\<\(loop\|use\)\>\|declare\>\|begin\>\|type\>.*\<is\>[^;]*$\|\(type\>.*\)\=\<record\>\|procedure\>\|function\>\|accept\>\|do\>\|task\>\|package\>\|then\>\|when\>\|is\>\)'
endif

" Section: s:MainBlockIndent {{{1
"
" Try to find indent of the block we're in
" prev_indent = the previous line's indent
" prev_lnum   = previous line (to start looking on)
" blockstart  = expr. that indicates a possible start of this block
" stop_at     = if non-null, if a matching line is found, gives up!
" No recursive previous block analysis: simply look for a valid line
" with a lesser or equal indent than we currently (on prev_lnum) have.
" This shouldn't work as well as it appears to with lines that are currently
" nowhere near the correct indent (e.g., start of line)!
" Seems to work OK as it 'starts' with the indent of the /previous/ line.
function s:MainBlockIndent (prev_indent, prev_lnum, blockstart, stop_at)
   let lnum = a:prev_lnum
   let line = substitute( getline(lnum), g:ada#Comment, '', '' )
   while lnum > 1
      if a:stop_at != ''  &&  line =~ '^\s*' . a:stop_at  &&  indent(lnum) < a:prev_indent
	 return a:prev_indent
      elseif line =~ '^\s*' . a:blockstart
	 let ind = indent(lnum)
	 if ind < a:prev_indent
	    return ind
	 endif
      endif

      let lnum = prevnonblank(lnum - 1)
      " Get previous non-blank/non-comment-only line
      while 1
	 let line = substitute( getline(lnum), g:ada#Comment, '', '' )
	 if line !~ '^\s*$' && line !~ '^\s*#'
	    break
	 endif
	 let lnum = prevnonblank(lnum - 1)
	 if lnum <= 0
	    return a:prev_indent
	 endif
      endwhile
   endwhile
   " Fallback - just move back one
   return a:prev_indent - shiftwidth()
endfunction MainBlockIndent

" Section: s:EndBlockIndent {{{1
"
" Try to find indent of the block we're in (and about to complete),
" including handling of nested blocks. Works on the 'end' of a block.
" prev_indent = the previous line's indent
" prev_lnum   = previous line (to start looking on)
" blockstart  = expr. that indicates a possible start of this block
" blockend    = expr. that indicates a possible end of this block
function s:EndBlockIndent( prev_indent, prev_lnum, blockstart, blockend )
   let lnum = a:prev_lnum
   let line = getline(lnum)
   let ends = 0
   while lnum > 1
      if getline(lnum) =~ '^\s*' . a:blockstart
	 let ind = indent(lnum)
	 if ends <= 0
	    if ind < a:prev_indent
	       return ind
	    endif
	 else
	    let ends = ends - 1
	 endif
      elseif getline(lnum) =~ '^\s*' . a:blockend
	 let ends = ends + 1
      endif

      let lnum = prevnonblank(lnum - 1)
      " Get previous non-blank/non-comment-only line
      while 1
	 let line = getline(lnum)
	 let line = substitute( line, g:ada#Comment, '', '' )
	 if line !~ '^\s*$'
	    break
	 endif
	 let lnum = prevnonblank(lnum - 1)
	 if lnum <= 0
	    return a:prev_indent
	 endif
      endwhile
   endwhile
   " Fallback - just move back one
   return a:prev_indent - shiftwidth()
endfunction EndBlockIndent

" Section: s:StatementIndent {{{1
"
" Return indent of previous statement-start
" (after we've indented due to multi-line statements).
" This time, we start searching on the line *before* the one given (which is
" the end of a statement - we want the previous beginning).
function s:StatementIndent( current_indent, prev_lnum )
   let lnum  = a:prev_lnum
   while lnum > 0
      let prev_lnum = lnum
      let lnum = prevnonblank(lnum - 1)
      " Get previous non-blank/non-comment-only line
      while 1
	 let line = substitute( getline(lnum), g:ada#Comment, '', '' )

	 if line !~ '^\s*$' && line !~ '^\s*#'
	    break
	 endif
	 let lnum = prevnonblank(lnum - 1)
	 if lnum <= 0
	    return a:current_indent
	 endif
      endwhile
      " Leave indent alone if our ';' line is part of a ';'-delineated
      " aggregate (e.g., procedure args.) or first line after a block start.
      if line =~ s:AdaBlockStart || line =~ '(\s*$'
	 return a:current_indent
      endif
      if line !~ '[.=(]\s*$'
	 let ind = indent(prev_lnum)
	 if ind < a:current_indent
	    return ind
	 endif
      endif
   endwhile
   " Fallback - just use current one
   return a:current_indent
endfunction StatementIndent


" Section: GetAdaIndent {{{1
"
" Find correct indent of a new line based upon what went before
"
function GetAdaIndent()
   " Find a non-blank line above the current line.
   let lnum = prevnonblank(v:lnum - 1)
   let ind = indent(lnum)
   let package_line = 0

   " Get previous non-blank/non-comment-only/non-cpp line
   while 1
      let line = substitute( getline(lnum), g:ada#Comment, '', '' )
      if line !~ '^\s*$' && line !~ '^\s*#'
	 break
      endif
      let lnum = prevnonblank(lnum - 1)
      if lnum <= 0
	 return ind
      endif
   endwhile

   " Get default indent (from prev. line)
   let ind = indent(lnum)
   let initind = ind

   " Now check what's on the previous line
   if line =~ s:AdaBlockStart  ||  line =~ '(\s*$'
      " Check for false matches to AdaBlockStart
      let false_match = 0
      if line =~ '^\s*\(procedure\|function\|package\)\>.*\<is\s*new\>'
	 " Generic instantiation
	 let false_match = 1
      elseif line =~ ')\s*;\s*$'  ||  line =~ '^\([^(]*([^)]*)\)*[^(]*;\s*$'
	 " forward declaration
	 let false_match = 1
      endif
      " Move indent in
      if ! false_match
	 let ind = ind + shiftwidth()
      endif
   elseif line =~ '^\s*\(case\|exception\)\>'
      " Move indent in twice (next 'when' will move back)
      let ind = ind + 2 * shiftwidth()
   elseif line =~ '^\s*end\s*record\>'
      " Move indent back to tallying 'type' preceeding the 'record'.
      " Allow indent to be equal to 'end record's.
      let ind = s:MainBlockIndent( ind+shiftwidth(), lnum, 'type\>', '' )
   elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
      " Revert to indent of line that started this parenthesis pair
      exe lnum
      exe 'normal! $F)%'
      if getline('.') =~ '^\s*('
	 " Dire layout - use previous indent (could check for g:ada#Comment here)
	 let ind = indent( prevnonblank( line('.')-1 ) )
      else
	 let ind = indent('.')
      endif
      exe v:lnum
   elseif line =~ '[.=(]\s*$'
      " A statement continuation - move in one
      let ind = ind + shiftwidth()
   elseif line =~ '^\s*new\>'
      " Multiple line generic instantiation ('package blah is\nnew thingy')
      let ind = s:StatementIndent( ind - shiftwidth(), lnum )
   elseif line =~ ';\s*$'
      " Statement end (but not 'end' ) - try to find current statement-start indent
      let ind = s:StatementIndent( ind, lnum )
   endif

   " Check for potential argument list on next line
   let continuation = (line =~ '[A-Za-z0-9_]\s*$')


   " Check current line; search for simplistic matching start-of-block
   let line = getline(v:lnum)
   if line =~ '^\s*#'
      " Start of line for ada-pp
      let ind = 0
   elseif continuation && line =~ '^\s*('
      " Don't do this if we've already indented due to the previous line
      if ind == initind
	 let ind = ind + shiftwidth()
      endif
   elseif line =~ '^\s*\(begin\|is\)\>'
      let ind = s:MainBlockIndent( ind, lnum, '\(procedure\|function\|declare\|package\|task\)\>', 'begin\>' )
   elseif line =~ '^\s*record\>'
      let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + shiftwidth()
   elseif line =~ '^\s*\(else\|elsif\)\>'
      let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
   elseif line =~ '^\s*when\>'
      " Align 'when' one /in/ from matching block start
      let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + shiftwidth()
   elseif line =~ '^\s*end\>\s*\<if\>'
      " End of if statements
      let ind = s:EndBlockIndent( ind, lnum, 'if\>', 'end\>\s*\<if\>' )
   elseif line =~ '^\s*end\>\s*\<loop\>'
      " End of loops
      let ind = s:EndBlockIndent( ind, lnum, '\(\(while\|for\)\>.*\)\?\<loop\>', 'end\>\s*\<loop\>' )
   elseif line =~ '^\s*end\>\s*\<record\>'
      " End of records
      let ind = s:EndBlockIndent( ind, lnum, '\(type\>.*\)\=\<record\>', 'end\>\s*\<record\>' )
   elseif line =~ '^\s*end\>\s*\<procedure\>'
      " End of procedures
      let ind = s:EndBlockIndent( ind, lnum, 'procedure\>.*\<is\>', 'end\>\s*\<procedure\>' )
   elseif line =~ '^\s*end\>\s*\<case\>'
      " End of case statement
      let ind = s:EndBlockIndent( ind, lnum, 'case\>.*\<is\>', 'end\>\s*\<case\>' )
   elseif line =~ '^\s*end\>'
      " General case for end
      let ind = s:MainBlockIndent( ind, lnum, '\(if\|while\|for\|loop\|accept\|begin\|record\|case\|exception\|package\)\>', '' )
   elseif line =~ '^\s*exception\>'
      let ind = s:MainBlockIndent( ind, lnum, 'begin\>', '' )
   elseif line =~ '^\s*then\>'
      let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
   endif

   return ind
endfunction GetAdaIndent

let &cpo = s:keepcpo
unlet s:keepcpo

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006	Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z��X�n3n3vim80/indent/sqlanywhere.vimnu�[���" Vim indent file
" Language:    SQL
" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2017 Jun 13
" Version:     3.0
" Download:    http://vim.sourceforge.net/script.php?script_id=495

" Notes:
"    Indenting keywords are based on Oracle and Sybase Adaptive Server
"    Anywhere (ASA).  Test indenting was done with ASA stored procedures and
"    fuctions and Oracle packages which contain stored procedures and
"    functions.
"    This has not been tested against Microsoft SQL Server or
"    Sybase Adaptive Server Enterprise (ASE) which use the Transact-SQL
"    syntax.  That syntax does not have end tags for IF's, which makes
"    indenting more difficult.
"
" Known Issues:
"    The Oracle MERGE statement does not have an end tag associated with
"    it, this can leave the indent hanging to the right one too many.
"
" History:
"    3.0 (Dec 2012)
"        Added cpo check
"
"    2.0
"        Added the FOR keyword to SQLBlockStart to handle (Alec Tica):
"            for i in 1..100 loop
"              |<-- I expect to have indentation here
"            end loop;
"

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent     = 1
let b:current_indent = "sqlanywhere"

setlocal indentkeys-=0{
setlocal indentkeys-=0}
setlocal indentkeys-=:
setlocal indentkeys-=0#
setlocal indentkeys-=e

" This indicates formatting should take place when one of these
" expressions is used.  These expressions would normally be something
" you would type at the BEGINNING of a line
" SQL is generally case insensitive, so this files assumes that
" These keywords are something that would trigger an indent LEFT, not
" an indent right, since the SQLBlockStart is used for those keywords
setlocal indentkeys+==~end,=~else,=~elseif,=~elsif,0=~when,0=)

" GetSQLIndent is executed whenever one of the expressions
" in the indentkeys is typed
setlocal indentexpr=GetSQLIndent()

" Only define the functions once.
if exists("*GetSQLIndent")
    finish
endif
let s:keepcpo= &cpo
set cpo&vim

" List of all the statements that start a new block.
" These are typically words that start a line.
" IS is excluded, since it is difficult to determine when the
" ending block is (especially for procedures/functions).
let s:SQLBlockStart = '^\s*\%('.
                \ 'if\|else\|elseif\|elsif\|'.
                \ 'while\|loop\|do\|for\|'.
                \ 'begin\|'.
                \ 'case\|when\|merge\|exception'.
                \ '\)\>'
let s:SQLBlockEnd = '^\s*\(end\)\>'

" The indent level is also based on unmatched paranethesis
" If a line has an extra "(" increase the indent
" If a line has an extra ")" decrease the indent
function! s:CountUnbalancedParan( line, paran_to_check )
    let l = a:line
    let lp = substitute(l, '[^(]', '', 'g')
    let l = a:line
    let rp = substitute(l, '[^)]', '', 'g')

    if a:paran_to_check =~ ')'
        " echom 'CountUnbalancedParan ) returning: ' .
        " \ (strlen(rp) - strlen(lp))
        return (strlen(rp) - strlen(lp))
    elseif a:paran_to_check =~ '('
        " echom 'CountUnbalancedParan ( returning: ' .
        " \ (strlen(lp) - strlen(rp))
        return (strlen(lp) - strlen(rp))
    else
        " echom 'CountUnbalancedParan unknown paran to check: ' .
        " \ a:paran_to_check
        return 0
    endif
endfunction

" Unindent commands based on previous indent level
function! s:CheckToIgnoreRightParan( prev_lnum, num_levels )
    let lnum = a:prev_lnum
    let line = getline(lnum)
    let ends = 0
    let num_right_paran = a:num_levels
    let ignore_paran = 0
    let vircol = 1

    while num_right_paran > 0
        silent! exec 'norm! '.lnum."G\<bar>".vircol."\<bar>"
        let right_paran = search( ')', 'W' )
        if right_paran != lnum
            " This should not happen since there should be at least
            " num_right_paran matches for this line
            break
        endif
        let vircol      = virtcol(".")

        " if getline(".") =~ '^)'
        let matching_paran = searchpair('(', '', ')', 'bW',
                    \ 's:IsColComment(line("."), col("."))')

        if matching_paran < 1
            " No match found
            " echom 'CTIRP - no match found, ignoring'
            break
        endif

        if matching_paran == lnum
            " This was not an unmatched parantenses, start the search again
            " again after this column
            " echom 'CTIRP - same line match, ignoring'
            continue
        endif

        " echom 'CTIRP - match: ' . line(".") . '  ' . getline(".")

        if getline(matching_paran) =~? '\(if\|while\)\>'
            " echom 'CTIRP - if/while ignored: ' . line(".") . '  ' . getline(".")
            let ignore_paran = ignore_paran + 1
        endif

        " One match found, decrease and check for further matches
        let num_right_paran = num_right_paran - 1

    endwhile

    " Fallback - just move back one
    " return a:prev_indent - shiftwidth()
    return ignore_paran
endfunction

" Based on the keyword provided, loop through previous non empty
" non comment lines to find the statement that initated the keyword.
" Return its indent level
"    CASE ..
"    WHEN ...
" Should return indent level of CASE
"    EXCEPTION ..
"    WHEN ...
"         something;
"    WHEN ...
" Should return indent level of exception.
function! s:GetStmtStarterIndent( keyword, curr_lnum )
    let lnum  = a:curr_lnum

    " Default - reduce indent by 1
    let ind = indent(a:curr_lnum) - shiftwidth()

    if a:keyword =~? 'end'
        exec 'normal! ^'
        let stmts = '^\s*\%('.
                    \ '\<begin\>\|' .
                    \ '\%(\%(\<end\s\+\)\@<!\<loop\>\)\|' .
                    \ '\%(\%(\<end\s\+\)\@<!\<case\>\)\|' .
                    \ '\%(\%(\<end\s\+\)\@<!\<for\>\)\|' .
                    \ '\%(\%(\<end\s\+\)\@<!\<if\>\)'.
                    \ '\)'
        let matching_lnum = searchpair(stmts, '', '\<end\>\zs', 'bW',
                    \ 's:IsColComment(line("."), col(".")) == 1')
        exec 'normal! $'
        if matching_lnum > 0 && matching_lnum < a:curr_lnum
            let ind = indent(matching_lnum)
        endif
    elseif a:keyword =~? 'when'
        exec 'normal! ^'
        let matching_lnum = searchpair(
                    \ '\%(\<end\s\+\)\@<!\<case\>\|\<exception\>\|\<merge\>',
                    \ '',
                    \ '\%(\%(\<when\s\+others\>\)\|\%(\<end\s\+case\>\)\)',
                    \ 'bW',
                    \ 's:IsColComment(line("."), col(".")) == 1')
        exec 'normal! $'
        if matching_lnum > 0 && matching_lnum < a:curr_lnum
            let ind = indent(matching_lnum)
        else
            let ind = indent(a:curr_lnum)
        endif
    endif

    return ind
endfunction


" Check if the line is a comment
function! s:IsLineComment(lnum)
    let rc = synIDattr(
                \ synID(a:lnum,
                \     match(getline(a:lnum), '\S')+1, 0)
                \ , "name")
                \ =~? "comment"

    return rc
endfunction


" Check if the column is a comment
function! s:IsColComment(lnum, cnum)
    let rc = synIDattr(synID(a:lnum, a:cnum, 0), "name")
                \           =~? "comment"

    return rc
endfunction


" Instead of returning a column position, return
" an appropriate value as a factor of shiftwidth.
function! s:ModuloIndent(ind)
    let ind = a:ind

    if ind > 0
        let modulo = ind % shiftwidth()

        if modulo > 0
            let ind = ind - modulo
        endif
    endif

    return ind
endfunction


" Find correct indent of a new line based upon the previous line
function! GetSQLIndent()
    let lnum = v:lnum
    let ind = indent(lnum)

    " If the current line is a comment, leave the indent as is
    " Comment out this additional check since it affects the
    " indenting of =, and will not reindent comments as it should
    " if s:IsLineComment(lnum) == 1
    "     return ind
    " endif

    " Get previous non-blank line
    let prevlnum = prevnonblank(lnum - 1)
    if prevlnum <= 0
        return ind
    endif

    if s:IsLineComment(prevlnum) == 1
        if getline(v:lnum) =~ '^\s*\*'
            let ind = s:ModuloIndent(indent(prevlnum))
            return ind + 1
        endif
        " If the previous line is a comment, then return -1
        " to tell Vim to use the formatoptions setting to determine
        " the indent to use
        " But only if the next line is blank.  This would be true if
        " the user is typing, but it would not be true if the user
        " is reindenting the file
        if getline(v:lnum) =~ '^\s*$'
            return -1
        endif
    endif

    " echom 'PREVIOUS INDENT: ' . indent(prevlnum) . '  LINE: ' . getline(prevlnum)

    " This is the line you just hit return on, it is not the current line
    " which is new and empty
    " Based on this line, we can determine how much to indent the new
    " line

    " Get default indent (from prev. line)
    let ind      = indent(prevlnum)
    let prevline = getline(prevlnum)

    " Now check what's on the previous line to determine if the indent
    " should be changed, for example IF, BEGIN, should increase the indent
    " where END IF, END, should decrease the indent.
    if prevline =~? s:SQLBlockStart
        " Move indent in
        let ind = ind + shiftwidth()
        " echom 'prevl - SQLBlockStart - indent ' . ind . '  line: ' . prevline
    elseif prevline =~ '[()]'
        if prevline =~ '('
            let num_unmatched_left = s:CountUnbalancedParan( prevline, '(' )
        else
            let num_unmatched_left = 0
        endif
        if prevline =~ ')'
            let num_unmatched_right  = s:CountUnbalancedParan( prevline, ')' )
        else
            let num_unmatched_right  = 0
            " let num_unmatched_right  = s:CountUnbalancedParan( prevline, ')' )
        endif
        if num_unmatched_left > 0
            " There is a open left paranethesis
            " increase indent
            let ind = ind + ( shiftwidth() * num_unmatched_left )
        elseif num_unmatched_right > 0
            " if it is an unbalanced paranethesis only unindent if
            " it was part of a command (ie create table(..)  )
            " instead of part of an if (ie if (....) then) which should
            " maintain the indent level
            let ignore = s:CheckToIgnoreRightParan( prevlnum, num_unmatched_right )
            " echom 'prevl - ) unbalanced - CTIRP - ignore: ' . ignore

            if prevline =~ '^\s*)'
                let ignore = ignore + 1
                " echom 'prevl - begins ) unbalanced ignore: ' . ignore
            endif

            if (num_unmatched_right - ignore) > 0
                let ind = ind - ( shiftwidth() * (num_unmatched_right - ignore) )
            endif

        endif
    endif


    " echom 'CURRENT INDENT: ' . ind . '  LINE: '  . getline(v:lnum)

    " This is a new blank line since we just typed a carriage return
    " Check current line; search for simplistic matching start-of-block
    let line = getline(v:lnum)

    if line =~? '^\s*els'
        " Any line when you type else will automatically back up one
        " ident level  (ie else, elseif, elsif)
        let ind = ind - shiftwidth()
        " echom 'curr - else - indent ' . ind
    elseif line =~? '^\s*end\>'
        let ind = s:GetStmtStarterIndent('end', v:lnum)
        " General case for end
        " let ind = ind - shiftwidth()
        " echom 'curr - end - indent ' . ind
    elseif line =~? '^\s*when\>'
        let ind = s:GetStmtStarterIndent('when', v:lnum)
        " If the WHEN clause is used with a MERGE or EXCEPTION
        " clause, do not change the indent level, since these
        " statements do not have a corresponding END statement.
        " if stmt_starter =~? 'case'
        "    let ind = ind - shiftwidth()
        " endif
        " elseif line =~ '^\s*)\s*;\?\s*$'
        " elseif line =~ '^\s*)'
    elseif line =~ '^\s*)'
        let num_unmatched_right  = s:CountUnbalancedParan( line, ')' )
        let ignore = s:CheckToIgnoreRightParan( v:lnum, num_unmatched_right )
        " If the line ends in a ), then reduce the indent
        " This catches items like:
        " CREATE TABLE T1(
        "    c1 int,
        "    c2 int
        "    );
        " But we do not want to unindent a line like:
        " IF ( c1 = 1
        " AND  c2 = 3 ) THEN
        " let num_unmatched_right  = s:CountUnbalancedParan( line, ')' )
        " if num_unmatched_right > 0
        " elseif strpart( line, strlen(line)-1, 1 ) =~ ')'
        " let ind = ind - shiftwidth()
        if line =~ '^\s*)'
            " let ignore = ignore + 1
            " echom 'curr - begins ) unbalanced ignore: ' . ignore
        endif

        if (num_unmatched_right - ignore) > 0
            let ind = ind - ( shiftwidth() * (num_unmatched_right - ignore) )
        endif
        " endif
    endif

    " echom 'final - indent ' . ind
    return s:ModuloIndent(ind)
endfunction

"  Restore:
let &cpo= s:keepcpo
unlet s:keepcpo
" vim: ts=4 fdm=marker sw=4
PK�j�Z��'���vim80/indent/rmd.vimnu�[���" Vim indent file
" Language:	Rmd
" Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage:     https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Tue Apr 07, 2015  04:38PM


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
runtime indent/r.vim
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
let b:did_indent = 1

setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetRmdIndent()

if exists("*GetRmdIndent")
  finish
endif

function GetMdIndent()
  let pline = getline(v:lnum - 1)
  let cline = getline(v:lnum)
  if prevnonblank(v:lnum - 1) < v:lnum - 1 || cline =~ '^\s*[-\+\*]\s' || cline =~ '^\s*\d\+\.\s\+'
    return indent(v:lnum)
  elseif pline =~ '^\s*[-\+\*]\s'
    return indent(v:lnum - 1) + 2
  elseif pline =~ '^\s*\d\+\.\s\+'
    return indent(v:lnum - 1) + 3
  endif
  return indent(prevnonblank(v:lnum - 1))
endfunction

function GetRmdIndent()
  if getline(".") =~ '^[ \t]*```{r .*}$' || getline(".") =~ '^[ \t]*```$'
    return 0
  endif
  if search('^[ \t]*```{r', "bncW") > search('^[ \t]*```$', "bncW")
    return s:RIndent()
  else
    return GetMdIndent()
  endif
endfunction

" vim: sw=2
PK�j�ZX�TTvim80/indent/sh.vimnu�[���" Vim indent file
" Language:            Shell Script
" Maintainer:          Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author:     Nikolai Weibull <now@bitwi.se>
" Latest Revision:     2017-08-08
" License:             Vim (see :h license)
" Repository:          https://github.com/chrisbra/vim-sh-indent
" Changelog:
"          20170808: - better indent of line continuation
"          20170502: - get rid of buffer-shiftwidth function
"          20160912: - preserve indentation of here-doc blocks
"          20160627: - detect heredocs correctly
"          20160213: - detect function definition correctly
"          20160202: - use shiftwidth() function
"          20151215: - set b:undo_indent variable
"          20150728: - add foreach detection for zsh

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetShIndent()
setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,0=end,),0=;;,0=;&
setlocal indentkeys+=0=fin,0=fil,0=fip,0=fir,0=fix
setlocal indentkeys-=:,0#
setlocal nosmartindent

let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'

if exists("*GetShIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

let s:sh_indent_defaults = {
      \ 'default': function('shiftwidth'),
      \ 'continuation-line': function('shiftwidth'),
      \ 'case-labels': function('shiftwidth'),
      \ 'case-statements': function('shiftwidth'),
      \ 'case-breaks': 0 }

function! s:indent_value(option)
  let Value = exists('b:sh_indent_options')
            \ && has_key(b:sh_indent_options, a:option) ?
            \ b:sh_indent_options[a:option] :
            \ s:sh_indent_defaults[a:option]
  if type(Value) == type(function('type'))
    return Value()
  endif
  return Value
endfunction

function! GetShIndent()
  let lnum = prevnonblank(v:lnum - 1)
  if lnum == 0
    return 0
  endif

  let pnum = prevnonblank(lnum - 1)

  let ind = indent(lnum)
  let line = getline(lnum)
  if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>'
    if line !~ '\<\%(fi\|esac\|done\|end\)\>\s*\%(#.*\)\=$'
      let ind += s:indent_value('default')
    endif
  elseif s:is_case_label(line, pnum)
    if !s:is_case_ended(line)
      let ind += s:indent_value('case-statements')
    endif
  elseif line =~ '^\s*\<\k\+\>\s*()\s*{' || line =~ '^\s*{' || line =~ '^\s*function\s*\w\S\+\s*\%(()\)\?\s*{'
    if line !~ '}\s*\%(#.*\)\=$'
      let ind += s:indent_value('default')
    endif
  elseif s:is_continuation_line(line)
    if pnum == 0 || !s:is_continuation_line(getline(pnum))
      let ind += s:indent_value('continuation-line')
    endif
  elseif pnum != 0 && s:is_continuation_line(getline(pnum))
    let ind = indent(s:find_continued_lnum(pnum))
  endif

  let pine = line
  let line = getline(v:lnum)
  if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\|end\)\>' || line =~ '^\s*}'
    let ind -= s:indent_value('default')
  elseif line =~ '^\s*esac\>' && s:is_case_empty(getline(v:lnum - 1))
    let ind -= s:indent_value('default')
  elseif line =~ '^\s*esac\>'
    let ind -= (s:is_case_label(pine, lnum) && s:is_case_ended(pine) ?
             \ 0 : s:indent_value('case-statements')) +
             \ s:indent_value('case-labels')
    if s:is_case_break(pine)
      let ind += s:indent_value('case-breaks')
    endif
  elseif s:is_case_label(line, lnum)
    if s:is_case(pine)
      let ind = indent(lnum) + s:indent_value('case-labels')
    else
      let ind -= (s:is_case_label(pine, lnum) && s:is_case_ended(pine) ?
                  \ 0 : s:indent_value('case-statements')) -
                  \ s:indent_value('case-breaks')
    endif
  elseif s:is_case_break(line)
    let ind -= s:indent_value('case-breaks')
  elseif s:is_here_doc(line)
    let ind = 0
  " statements, executed within a here document. Keep the current indent
  elseif match(map(synstack(v:lnum, 1), 'synIDattr(v:val, "name")'), '\c\mheredoc') > -1
    return indent(v:lnum)
  endif

  return ind
endfunction

function! s:is_continuation_line(line)
  return a:line =~ '\%(\%(^\|[^\\]\)\\\|&&\|||\||\)' .
                 \ '\s*\({\s*\)\=\(#.*\)\=$'
endfunction

function! s:find_continued_lnum(lnum)
  let i = a:lnum
  while i > 1 && s:is_continuation_line(getline(i - 1))
    let i -= 1
  endwhile
  return i
endfunction

function! s:is_case_label(line, pnum)
  if a:line !~ '^\s*(\=.*)'
    return 0
  endif

  if a:pnum > 0
    let pine = getline(a:pnum)
    if !(s:is_case(pine) || s:is_case_ended(pine))
      return 0
    endif
  endif

  let suffix = substitute(a:line, '^\s*(\=', "", "")
  let nesting = 0
  let i = 0
  let n = strlen(suffix)
  while i < n
    let c = suffix[i]
    let i += 1
    if c == '\\'
      let i += 1
    elseif c == '('
      let nesting += 1
    elseif c == ')'
      if nesting == 0
        return 1
      endif
      let nesting -= 1
    endif
  endwhile
  return 0
endfunction

function! s:is_case(line)
  return a:line =~ '^\s*case\>'
endfunction

function! s:is_case_break(line)
  return a:line =~ '^\s*;[;&]'
endfunction

function! s:is_here_doc(line)
    if a:line =~ '^\w\+$'
	let here_pat = '<<-\?'. s:escape(a:line). '\$'
	return search(here_pat, 'bnW') > 0
    endif
    return 0
endfunction

function! s:is_case_ended(line)
  return s:is_case_break(a:line) || a:line =~ ';[;&]\s*\%(#.*\)\=$'
endfunction

function! s:is_case_empty(line)
  if a:line =~ '^\s*$' || a:line =~ '^\s*#'
    return s:is_case_empty(getline(v:lnum - 1))
  else
    return a:line =~ '^\s*case\>'
  endif
endfunction

function! s:escape(pattern)
    return '\V'. escape(a:pattern, '\\')
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z3G�F44vim80/indent/mail.vimnu�[���" Vim indent file
" Language:	Mail
" Maintainer:	Bram Moolenaar
" Last Change:	2009 Jun 03

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

" What works best is auto-indenting, disable other indenting.
" For formatting see the ftplugin.
setlocal autoindent nosmartindent nocindent indentexpr=
PK�j�Z9�f))vim80/indent/xslt.vimnu�[���" Vim indent file
" Language:    XSLT .xslt files
" Maintainer:  David Fishburn <fishburn@ianywhere.com>
" Last Change: Wed May 14 2003 8:48:41 PM

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Use XML formatting rules
runtime! indent/xml.vim

PK�j�Z��s��vim80/indent/css.vimnu�[���" Vim indent file
" Language:	    CSS
" Maintainer:	    Nikolai Weibull <now@bitwi.se>
" Latest Revision:  2012-05-30
"		    Use of shiftwidth() added by Oleg Zubchenko.	

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetCSSIndent()
setlocal indentkeys=0{,0},!^F,o,O
setlocal nosmartindent

let b:undo_indent = "setl smartindent< indentkeys< indentexpr<"

if exists("*GetCSSIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

function s:prevnonblanknoncomment(lnum)
  let lnum = a:lnum
  while lnum > 1
    let lnum = prevnonblank(lnum)
    let line = getline(lnum)
    if line =~ '\*/'
      while lnum > 1 && line !~ '/\*'
        let lnum -= 1
      endwhile
      if line =~ '^\s*/\*'
        let lnum -= 1
      else
        break
      endif
    else
      break
    endif
  endwhile
  return lnum
endfunction

function s:count_braces(lnum, count_open)
  let n_open = 0
  let n_close = 0
  let line = getline(a:lnum)
  let pattern = '[{}]'
  let i = match(line, pattern)
  while i != -1
    if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'css\%(Comment\|StringQ\{1,2}\)'
      if line[i] == '{'
        let n_open += 1
      elseif line[i] == '}'
        if n_open > 0
          let n_open -= 1
        else
          let n_close += 1
        endif
      endif
    endif
    let i = match(line, pattern, i + 1)
  endwhile
  return a:count_open ? n_open : n_close
endfunction

function GetCSSIndent()
  let line = getline(v:lnum)
  if line =~ '^\s*\*'
    return cindent(v:lnum)
  endif

  let pnum = s:prevnonblanknoncomment(v:lnum - 1)
  if pnum == 0
    return 0
  endif

  return indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()
        \ - s:count_braces(v:lnum, 0) * shiftwidth()
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�ZV����vim80/indent/tilde.vimnu�[���"Description: Indent scheme for the tilde weblanguage
"Author: Tobias Rundstr�m <tobi@tobi.nu>
"URL: http://tilde.tildesoftware.net
"Last Change: May  8 09:15:09 CEST 2002

if exists ("b:did_indent")
	finish
endif

let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetTildeIndent(v:lnum)
setlocal indentkeys=o,O,)

if exists("*GetTildeIndent")
	finish
endif

function GetTildeIndent(lnum)
	let plnum = prevnonblank(v:lnum-1)

	if plnum == 0
		return 0
	endif

	if getline(v:lnum) =~ '^\s*\~\(endif\|else\|elseif\|end\)\>'
		return indent(v:lnum) - shiftwidth()
	endif

	if getline(plnum) =~ '^\s*\~\(if\|foreach\|foreach_row\|xml_loop\|file_loop\|file_write\|file_append\|imap_loopsections\|imap_index\|imap_list\|ldap_search\|post_loopall\|post_loop\|file_loop\|sql_loop_num\|sql_dbmsselect\|search\|sql_loop\|post\|for\|function_define\|silent\|while\|setvalbig\|mail_create\|systempipe\|mail_send\|dual\|elseif\|else\)\>'
		return indent(plnum) + shiftwidth()
	else
		return -1
	endif
endfunction
PK�j�Z"S�UUvim80/indent/teraterm.vimnu�[���" Vim indent file
" Language:	Tera Term Language (TTL)
"		Based on Tera Term Version 4.92
" Maintainer:	Ken Takata
" URL:		https://github.com/k-takata/vim-teraterm
" Last Change:	2017 Jun 13
" Filenames:	*.ttl
" License:	VIM License

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal nosmartindent
setlocal noautoindent
setlocal indentexpr=GetTeraTermIndent(v:lnum)
setlocal indentkeys=!^F,o,O,e
setlocal indentkeys+==elseif,=endif,=loop,=next,=enduntil,=endwhile

if exists("*GetTeraTermIndent")
  finish
endif

function! GetTeraTermIndent(lnum)
  let l:prevlnum = prevnonblank(a:lnum-1)
  if l:prevlnum == 0
    " top of file
    return 0
  endif

  " grab the previous and current line, stripping comments.
  let l:prevl = substitute(getline(l:prevlnum), ';.*$', '', '')
  let l:thisl = substitute(getline(a:lnum), ';.*$', '', '')
  let l:previ = indent(l:prevlnum)

  let l:ind = l:previ

  if l:prevl =~ '^\s*if\>.*\<then\>'
    " previous line opened a block
    let l:ind += shiftwidth()
  endif
  if l:prevl =~ '^\s*\%(elseif\|else\|do\|until\|while\|for\)\>'
    " previous line opened a block
    let l:ind += shiftwidth()
  endif
  if l:thisl =~ '^\s*\%(elseif\|else\|endif\|enduntil\|endwhile\|loop\|next\)\>'
    " this line closed a block
    let l:ind -= shiftwidth()
  endif

  return l:ind
endfunction

" vim: ts=8 sw=2 sts=2
PK�j�Z2R��vim80/indent/htmldjango.vimnu�[���" Vim indent file
" Language:	Django HTML template
" Maintainer:	Dave Hodder <dmh@dmh.org.uk>
" Last Change:	2007 Jan 25

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Use HTML formatting rules.
runtime! indent/html.vim
PK�j�Z1t�D<<vim80/indent/javascript.vimnu�[���" Vim indent file
" Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
" Last Change: December 4, 2017

" Only load this indent file when no other was loaded.
if exists('b:did_indent')
  finish
endif
let b:did_indent = 1

" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
setlocal autoindent nolisp nosmartindent
setlocal indentkeys+=0],0)
" Testable with something like:
" vim  -eNs "+filetype plugin indent on" "+syntax on" "+set ft=javascript" \
"       "+norm! gg=G" '+%print' '+:q!' testfile.js \
"       | diff -uBZ testfile.js -

let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'

" Only define the function once.
if exists('*GetJavascriptIndent')
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" indent correctly if inside <script>
" vim/vim@690afe1 for the switch from cindent
" overridden with b:html_indent_script1
call extend(g:,{'html_indent_script1': 'inc'},'keep')

" Regex of syntax group names that are or delimit string or are comments.
let s:bvars = {
      \ 'syng_strcom': 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!',
      \ 'syng_str': 'string\|template\|special' }
" template strings may want to be excluded when editing graphql:
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'

function s:GetVars()
  call extend(b:,extend(s:bvars,{'js_cache': [0,0,0]}),'keep')
endfunction

" Get shiftwidth value
if exists('*shiftwidth')
  function s:sw()
    return shiftwidth()
  endfunction
else
  function s:sw()
    return &l:shiftwidth ? &l:shiftwidth : &l:tabstop
  endfunction
endif

" Performance for forwards search(): start search at pos rather than masking
" matches before pos.
let s:z = has('patch-7.4.984') ? 'z' : ''

" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom"
let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'"

let s:rel = has('reltime')
" searchpair() wrapper
if s:rel
  function s:GetPair(start,end,flags,skip)
    return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
  endfunction
else
  function s:GetPair(start,end,flags,skip)
    return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1)
  endfunction
endif

function s:SynAt(l,c)
  let byte = line2byte(a:l) + a:c - 1
  let pos = index(s:synid_cache[0], byte)
  if pos == -1
    let s:synid_cache[:] += [[byte], [synIDattr(synID(a:l, a:c, 0), 'name')]]
  endif
  return s:synid_cache[1][pos]
endfunction

function s:ParseCino(f)
  let [divider, n, cstr] = [0] + matchlist(&cino,
        \ '\%(.*,\)\=\%(\%d'.char2nr(a:f).'\(-\)\=\([.s0-9]*\)\)\=')[1:2]
  for c in split(cstr,'\zs')
    if c == '.' && !divider
      let divider = 1
    elseif c ==# 's'
      if n !~ '\d'
        return n . s:sw() + 0
      endif
      let n = str2nr(n) * s:sw()
      break
    else
      let [n, divider] .= [c, 0]
    endif
  endfor
  return str2nr(n) / max([str2nr(divider),1])
endfunction

" Optimized {skip} expr, only callable from the search loop which
" GetJavascriptIndent does to find the containing [[{(] (side-effects)
function s:SkipFunc()
  if s:top_col == 1
    throw 'out of bounds'
  elseif s:check_in
    if eval(s:skip_expr)
      return 1
    endif
    let s:check_in = 0
  elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
    if eval(s:skip_expr)
      return 1
    endif
  elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
    if eval(s:skip_expr)
      let s:check_in = 1
      return 1
    endif
  else
    let s:synid_cache[:] += [[line2byte('.') + col('.') - 1], ['']]
  endif
  let [s:looksyn, s:top_col] = getpos('.')[1:2]
endfunction

function s:AlternatePair()
  let [pat, l:for] = ['[][(){};]', 2]
  while s:SearchLoop(pat,'bW','s:SkipFunc()')
    if s:LookingAt() == ';'
      if !l:for
        if s:GetPair('{','}','bW','s:SkipFunc()')
          return
        endif
        break
      else
        let [pat, l:for] = ['[{}();]', l:for - 1]
      endif
    else
      let idx = stridx('])}',s:LookingAt())
      if idx == -1
        return
      elseif !s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
        break
      endif
    endif
  endwhile
  throw 'out of bounds'
endfunction

function s:Nat(int)
  return a:int * (a:int > 0)
endfunction

function s:LookingAt()
  return getline('.')[col('.')-1]
endfunction

function s:Token()
  return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
endfunction

function s:PreviousToken(...)
  let [l:pos, tok] = [getpos('.'), '']
  if search('\m\k\{1,}\|\S','ebW')
    if getline('.')[col('.')-2:col('.')-1] == '*/'
      if eval(s:in_comm) && !s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
        call setpos('.',l:pos)
      else
        let tok = s:Token()
      endif
    else
      let two = a:0 || line('.') != l:pos[1] ? strridx(getline('.')[:col('.')],'//') + 1 : 0
      if two && eval(s:in_comm)
        call cursor(0,two)
        let tok = s:PreviousToken(1)
        if tok is ''
          call setpos('.',l:pos)
        endif
      else
        let tok = s:Token()
      endif
    endif
  endif
  return tok
endfunction

function s:Pure(f,...)
  return eval("[call(a:f,a:000),cursor(a:firstline,".col('.').")][0]")
endfunction

function s:SearchLoop(pat,flags,expr)
  return s:GetPair(a:pat,'\_$.',a:flags,a:expr)
endfunction

function s:ExprCol()
  if getline('.')[col('.')-2] == ':'
    return 1
  endif
  let bal = 0
  while s:SearchLoop('[{}?:]','bW',s:skip_expr)
    if s:LookingAt() == ':'
      if getline('.')[col('.')-2] == ':'
        call cursor(0,col('.')-1)
        continue
      endif
      let bal -= 1
    elseif s:LookingAt() == '?'
      if getline('.')[col('.'):col('.')+1] =~ '^\.\d\@!'
        continue
      elseif !bal
        return 1
      endif
      let bal += 1
    elseif s:LookingAt() == '{'
      return !s:IsBlock()
    elseif !s:GetPair('{','}','bW',s:skip_expr)
      break
    endif
  endwhile
endfunction

" configurable regexes that define continuation lines, not including (, {, or [.
let s:opfirst = '^' . get(g:,'javascript_opfirst',
      \ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
let s:continuation = get(g:,'javascript_continuation',
      \ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'

function s:Continues()
  let tok = matchstr(strpart(getline('.'),col('.')-15,15),s:continuation)
  if tok =~ '[a-z:]'
    return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
  elseif tok !~ '[/>]'
    return tok isnot ''
  endif
  return s:SynAt(line('.'),col('.')) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
endfunction

" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum,line)
  let l:open = 0
  let pos = match(a:line, '[][(){}]')
  while pos != -1
    if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
      let l:open += match(' ' . a:line[pos],'[[({]')
      if l:open < 0
        return
      endif
    endif
    let pos = match(a:line, !l:open ? '[][(){}]' : '()' =~ a:line[pos] ?
          \ '[()]' : '{}' =~ a:line[pos] ? '[{}]' : '[][]', pos + 1)
  endwhile
  return !l:open
endfunction

function s:OneScope()
  if s:LookingAt() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr)
    let tok = s:PreviousToken()
    return (count(split('for if let while with'),tok) ||
          \ tok =~# '^await$\|^each$' && s:PreviousToken() ==# 'for') &&
          \ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
  elseif s:Token() =~# '^else$\|^do$'
    return s:Pure('s:PreviousToken') != '.'
  elseif strpart(getline('.'),col('.')-2,2) == '=>'
    call cursor(0,col('.')-1)
    if s:PreviousToken() == ')'
      return s:GetPair('(', ')', 'bW', s:skip_expr)
    endif
    return 1
  endif
endfunction

function s:DoWhile()
  let cpos = searchpos('\m\<','cbW')
  while s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
    if s:LookingAt() =~ '\a'
      if s:Pure('s:IsBlock')
        if s:LookingAt() ==# 'd'
          return 1
        endif
        break
      endif
    elseif s:LookingAt() != '}' || !s:GetPair('{','}','bW',s:skip_expr)
      break
    endif
  endwhile
  call call('cursor',cpos)
endfunction

" returns total offset from braceless contexts. 'num' is the lineNr which
" encloses the entire context, 'cont' if whether a:firstline is a continued
" expression, which could have started in a braceless context
function s:IsContOne(cont)
  let [l:num, b_l] = [b:js_cache[1] + !b:js_cache[1], 0]
  let pind = b:js_cache[1] ? indent(b:js_cache[1]) + s:sw() : 0
  let ind = indent('.') + !a:cont
  while line('.') > l:num && ind > pind || line('.') == l:num
    if indent('.') < ind && s:OneScope()
      let b_l += 1
    elseif !a:cont || b_l || ind < indent(a:firstline)
      break
    else
      call cursor(0,1)
    endif
    let ind = min([ind, indent('.')])
    if s:PreviousToken() is ''
      break
    endif
  endwhile
  return b_l
endfunction

function s:IsSwitch()
  call call('cursor',b:js_cache[1:])
  return search('\m\C\%#.\_s*\%(\%(\/\/.*\_$\|\/\*\_.\{-}\*\/\)\@>\_s*\)*\%(case\|default\)\>','nWc'.s:z)
endfunction

" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
  let tok = s:PreviousToken()
  if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
    let s:in_jsx = 1
    return tok != '{'
  elseif tok =~ '\k'
    if tok ==# 'type'
      return s:Pure('eval',"s:PreviousToken() !~# '^\\%(im\\|ex\\)port$' || s:PreviousToken() == '.'")
    elseif tok ==# 'of'
      return s:Pure('eval',"!s:GetPair('[[({]','[])}]','bW',s:skip_expr) || s:LookingAt() != '(' ||"
            \ ."s:{s:PreviousToken() ==# 'await' ? 'Previous' : ''}Token() !=# 'for' || s:PreviousToken() == '.'")
    endif
    return index(split('return const let import export extends yield default delete var await void typeof throw case new in instanceof')
          \ ,tok) < (line('.') != a:firstline) || s:Pure('s:PreviousToken') == '.'
  elseif tok == '>'
    return getline('.')[col('.')-2] == '=' || s:SynAt(line('.'),col('.')) =~? 'jsflow\|^html'
  elseif tok == '*'
    return s:Pure('s:PreviousToken') == ':'
  elseif tok == ':'
    return s:Pure('eval',"s:PreviousToken() =~ '^\\K\\k*$' && !s:ExprCol()")
  elseif tok == '/'
    return s:SynAt(line('.'),col('.')) =~? 'regex'
  elseif tok !~ '[=~!<,.?^%|&([]'
    return tok !~ '[-+]' || line('.') != a:firstline && getline('.')[col('.')-2] == tok
  endif
endfunction

function GetJavascriptIndent()
  call s:GetVars()
  let s:synid_cache = [[],[]]
  let l:line = getline(v:lnum)
  " use synstack as it validates syn state and works in an empty line
  let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')")

  " start with strings,comments,etc.
  if s:stack[-1] =~? 'comment\|doc'
    if l:line =~ '^\s*\*'
      return cindent(v:lnum)
    elseif l:line !~ '^\s*\/[/*]'
      return -1
    endif
  elseif s:stack[-1] =~? b:syng_str
    if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1,getline(v:lnum-1))
      let b:js_cache[0] = v:lnum
    endif
    return -1
  endif

  let s:l1 = max([0,prevnonblank(v:lnum) - (s:rel ? 2000 : 1000),
        \ get(get(b:,'hi_indent',{}),'blocklnr')])
  call cursor(v:lnum,1)
  if s:PreviousToken() is ''
    return
  endif
  let [l:lnum, pline] = [line('.'), getline('.')[:col('.')-1]]

  let l:line = substitute(l:line,'^\s*','','')
  let l:line_raw = l:line
  if l:line[:1] == '/*'
    let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
  endif
  if l:line =~ '^\/[/*]'
    let l:line = ''
  endif

  " the containing paren, bracket, or curly. Many hacks for performance
  call cursor(v:lnum,1)
  let idx = index([']',')','}'],l:line[0])
  if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
        \ b:js_cache[0] == l:lnum && s:Balanced(l:lnum,pline)
    call call('cursor',b:js_cache[1:])
  else
    let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
          \ max([s:l1, &smc ? search('\m^.\{'.&smc.',}','nbW',s:l1 + 1) + 1 : 0])]
    try
      if idx != -1
        call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
      elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
        call s:GetPair('{','}','bW','s:SkipFunc()')
      else
        call s:AlternatePair()
      endif
    catch /^\Cout of bounds$/
      call cursor(v:lnum,1)
    endtry
    let b:js_cache[1:] = line('.') == v:lnum ? [0,0] : getpos('.')[1:2]
  endif

  let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]

  let [num_ind, is_op, b_l, l:switch_offset, s:in_jsx] = [s:Nat(indent(num)),0,0,0,0]
  if !num || s:LookingAt() == '{' && s:IsBlock()
    let ilnum = line('.')
    if num && !s:in_jsx && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
      if ilnum == num
        let [num, num_ind] = [line('.'), indent('.')]
      endif
      if idx == -1 && s:PreviousToken() ==# 'switch' && s:IsSwitch()
        let l:switch_offset = &cino !~ ':' ? s:sw() : s:ParseCino(':')
        if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
          return s:Nat(num_ind + l:switch_offset)
        elseif &cino =~ '='
          let l:case_offset = s:ParseCino('=')
        endif
      endif
    endif
    if idx == -1 && pline[-1:] !~ '[{;]'
      call cursor(l:lnum, len(pline))
      let sol = matchstr(l:line,s:opfirst)
      if sol is '' || sol == '/' && s:SynAt(v:lnum,
            \ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
        if s:Continues()
          let is_op = s:sw()
        endif
      elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$' &&
            \ s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) &&
            \ s:PreviousToken() == ')' && s:GetPair('(',')','bW',s:skip_expr) &&
            \ (s:PreviousToken() == ']' || s:LookingAt() =~ '\k' &&
            \ s:{s:PreviousToken() == '*' ? 'Previous' : ''}Token() !=# 'function')
        return num_ind + s:sw()
      else
        let is_op = s:sw()
      endif
      call cursor(l:lnum, len(pline))
      let b_l = s:Nat(s:IsContOne(is_op) - (!is_op && l:line =~ '^{')) * s:sw()
    endif
  elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
    let pval = s:ParseCino('(')
    if !pval
      let [Wval, vcol] = [s:ParseCino('W'), virtcol('.')]
      if search('\m\S','W',num)
        return s:ParseCino('w') ? vcol : virtcol('.')-1
      endif
      return Wval ? s:Nat(num_ind + Wval) : vcol
    endif
    return s:Nat(num_ind + pval + searchpair('\m(','','\m)','nbrmW',s:skip_expr,num) * s:sw())
  endif

  " main return
  if l:line =~ '^[])}]\|^|}'
    if l:line_raw[0] == ')'
      if s:ParseCino('M')
        return indent(l:lnum)
      elseif num && &cino =~# 'm' && !s:ParseCino('m')
        return virtcol('.') - 1
      endif
    endif
    return num_ind
  elseif num
    return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
  endif
  return b_l + is_op
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZxM�?ttvim80/indent/scheme.vimnu�[���" Vim indent file
" Language: Scheme
" Last Change: 2018 Jan 31
" Maintainer: Evan Hanson <evhan@foldling.org>
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
" URL: https://foldling.org/vim/indent/scheme.vim

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Use the Lisp indenting
runtime! indent/lisp.vim
PK�j�Zi<vD""vim80/indent/ant.vimnu�[���" Vim indent file
" Language:    ANT files
" Maintainer:  David Fishburn <fishburn@ianywhere.com>
" Last Change: Thu May 15 2003 10:02:54 PM

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

" Use XML formatting rules
runtime! indent/xml.vim
PK�j�Z��}�K�Kvim80/indent/scala.vimnu�[���" Vim indent file
" Language:             Scala (http://scala-lang.org/)
" Original Author:      Stefan Matthias Aust
" Modifications By:     Derek Wyatt
" URL:                  https://github.com/derekwyatt/vim-scala
" Last Change:          2016 Aug 26

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetScalaIndent()
setlocal indentkeys=0{,0},0),!^F,<>>,o,O,e,=case,<CR>

if exists("*GetScalaIndent")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

let s:defMatcher = '\%(\%(private\|protected\)\%(\[[^\]]*\]\)\?\s\+\|abstract\s\+\|override\s\+\)*\<def\>'
let s:funcNameMatcher = '\w\+'
let s:typeSpecMatcher = '\%(\s*\[\_[^\]]*\]\)'
let s:defArgMatcher = '\%((\_.\{-})\)'
let s:returnTypeMatcher = '\%(:\s*\w\+' . s:typeSpecMatcher . '\?\)'
let g:fullDefMatcher = '^\s*' . s:defMatcher . '\s\+' . s:funcNameMatcher . '\s*' . s:typeSpecMatcher . '\?\s*' . s:defArgMatcher . '\?\s*' . s:returnTypeMatcher . '\?\s*[={]'

function! scala#ConditionalConfirm(msg)
  if 0
    call confirm(a:msg)
  endif
endfunction

function! scala#GetLine(lnum)
  let line = substitute(getline(a:lnum), '//.*$', '', '')
  let line = substitute(line, '"\(.\|\\"\)\{-}"', '""', 'g')
  return line
endfunction

function! scala#CountBrackets(line, openBracket, closedBracket)
  let line = substitute(a:line, '"\(.\|\\"\)\{-}"', '', 'g')
  let open = substitute(line, '[^' . a:openBracket . ']', '', 'g')
  let close = substitute(line, '[^' . a:closedBracket . ']', '', 'g')
  return strlen(open) - strlen(close)
endfunction

function! scala#CountParens(line)
  return scala#CountBrackets(a:line, '(', ')')
endfunction

function! scala#CountCurlies(line)
  return scala#CountBrackets(a:line, '{', '}')
endfunction

function! scala#LineEndsInIncomplete(line)
  if a:line =~ '[.,]\s*$'
    return 1
  else
    return 0
  endif
endfunction

function! scala#LineIsAClosingXML(line)
  if a:line =~ '^\s*</\w'
    return 1
  else
    return 0
  endif
endfunction

function! scala#LineCompletesXML(lnum, line)
  let savedpos = getpos('.')
  call setpos('.', [savedpos[0], a:lnum, 0, savedpos[3]])
  let tag = substitute(a:line, '^.*</\([^>]*\)>.*$', '\1', '')
  let [lineNum, colnum] = searchpairpos('<' . tag . '>', '', '</' . tag . '>', 'Wbn')
  call setpos('.', savedpos)
  let pline = scala#GetLine(prevnonblank(lineNum - 1))
  if pline =~ '=\s*$'
    return 1
  else
    return 0
  endif
endfunction

function! scala#IsParentCase()
  let savedpos = getpos('.')
  call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
  let [l, c] = searchpos('^\s*\%(' . s:defMatcher . '\|\%(\<case\>\)\)', 'bnW')
  let retvalue = -1
  if l != 0 && search('\%' . l . 'l\s*\<case\>', 'bnW')
    let retvalue = l
  endif
  call setpos('.', savedpos)
  return retvalue
endfunction

function! scala#CurlyMatcher()
  let matchline = scala#GetLineThatMatchesBracket('{', '}')
  if scala#CountParens(scala#GetLine(matchline)) < 0
    let savedpos = getpos('.')
    call setpos('.', [savedpos[0], matchline, 9999, savedpos[3]])
    call searchpos('{', 'Wbc')
    call searchpos(')', 'Wb')
    let [lnum, colnum] = searchpairpos('(', '', ')', 'Wbn')
    call setpos('.', savedpos)
    let line = scala#GetLine(lnum)
    if line =~ '^\s*' . s:defMatcher
      return lnum
    else
      return matchline
    endif
  else
    return matchline
  endif
endfunction

function! scala#GetLineAndColumnThatMatchesCurly()
  return scala#GetLineAndColumnThatMatchesBracket('{', '}')
endfunction

function! scala#GetLineAndColumnThatMatchesParen()
  return scala#GetLineAndColumnThatMatchesBracket('(', ')')
endfunction

function! scala#GetLineAndColumnThatMatchesBracket(openBracket, closedBracket)
  let savedpos = getpos('.')
  let curline = scala#GetLine(line('.'))
  if curline =~ a:closedBracket . '.*' . a:openBracket . '.*' . a:closedBracket
    call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
    call searchpos(a:closedBracket . '\ze[^' . a:closedBracket . a:openBracket . ']*' . a:openBracket, 'W')
  else
    call setpos('.', [savedpos[0], savedpos[1], 9999, savedpos[3]])
    call searchpos(a:closedBracket, 'Wbc')
  endif
  let [lnum, colnum] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
  call setpos('.', savedpos)
  return [lnum, colnum]
endfunction

function! scala#GetLineThatMatchesCurly()
  return scala#GetLineThatMatchesBracket('{', '}')
endfunction

function! scala#GetLineThatMatchesParen()
  return scala#GetLineThatMatchesBracket('(', ')')
endfunction

function! scala#GetLineThatMatchesBracket(openBracket, closedBracket)
  let [lnum, colnum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
  return lnum
endfunction

function! scala#NumberOfBraceGroups(line)
  let line = substitute(a:line, '[^()]', '', 'g')
  if strlen(line) == 0
    return 0
  endif
  let line = substitute(line, '^)*', '', 'g')
  if strlen(line) == 0
    return 0
  endif
  let line = substitute(line, '^(', '', 'g')
  if strlen(line) == 0
    return 0
  endif
  let c = 1
  let counter = 0
  let groupCount = 0
  while counter < strlen(line)
    let char = strpart(line, counter, 1)
    if char == '('
      let c = c + 1
    elseif char == ')'
      let c = c - 1
    endif
    if c == 0
      let groupCount = groupCount + 1
    endif
    let counter = counter + 1
  endwhile
  return groupCount
endfunction

function! scala#MatchesIncompleteDefValr(line)
  if a:line =~ '^\s*\%(' . s:defMatcher . '\|\<va[lr]\>\).*[=({]\s*$'
    return 1
  else
    return 0
  endif
endfunction

function! scala#LineIsCompleteIf(line)
  if scala#CountBrackets(a:line, '{', '}') == 0 &&
   \ scala#CountBrackets(a:line, '(', ')') == 0 &&
   \ a:line =~ '^\s*\<if\>\s*([^)]*)\s*\S.*$'
    return 1
  else
    return 0
  endif
endfunction

function! scala#LineCompletesIfElse(lnum, line)
  if a:line =~ '^\s*\%(\<if\>\|\%(}\s*\)\?\<else\>\)'
    return 0
  endif
  let result = search('^\%(\s*\<if\>\s*(.*).*\n\|\s*\<if\>\s*(.*)\s*\n.*\n\)\%(\s*\<else\>\s*\<if\>\s*(.*)\s*\n.*\n\)*\%(\s*\<else\>\s*\n\|\s*\<else\>[^{]*\n\)\?\%' . a:lnum . 'l', 'Wbn')
  if result != 0 && scala#GetLine(prevnonblank(a:lnum - 1)) !~ '{\s*$'
    return result
  endif
  return 0
endfunction

function! scala#GetPrevCodeLine(lnum)
  " This needs to skip comment lines
  return prevnonblank(a:lnum - 1)
endfunction

function! scala#InvertBracketType(openBracket, closedBracket)
  if a:openBracket == '('
    return [ '{', '}' ]
  else
    return [ '(', ')' ]
  endif
endfunction

function! scala#Testhelper(lnum, line, openBracket, closedBracket, iteration)
  let bracketCount = scala#CountBrackets(a:line, a:openBracket, a:closedBracket)
  " There are more '}' braces than '{' on this line so it may be completing the function definition
  if bracketCount < 0
    let [matchedLNum, matchedColNum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
    if matchedLNum == a:lnum
      return -1
    endif
    let matchedLine = scala#GetLine(matchedLNum)
    if ! scala#MatchesIncompleteDefValr(matchedLine)
      let bracketLine = substitute(substitute(matchedLine, '\%' . matchedColNum . 'c.*$', '', ''), '[^{}()]', '', 'g')
      if bracketLine =~ '}$'
        return scala#Testhelper(matchedLNum, matchedLine, '{', '}', a:iteration + 1)
      elseif bracketLine =~ ')$'
        return scala#Testhelper(matchedLNum, matchedLine, '(', ')', a:iteration + 1)
      else
        let prevCodeLNum = scala#GetPrevCodeLine(matchedLNum)
        if scala#MatchesIncompleteDefValr(scala#GetLine(prevCodeLNum))
          return prevCodeLNum
        else
          return -1
        endif
      endif
    else
      " return indent value instead
      return matchedLNum
    endif
  " There's an equal number of '{' and '}' on this line so it may be a single line function definition
  elseif bracketCount == 0
    if a:iteration == 0
      let otherBracketType = scala#InvertBracketType(a:openBracket, a:closedBracket)
      return scala#Testhelper(a:lnum, a:line, otherBracketType[0], otherBracketType[1], a:iteration + 1)
    else
      let prevCodeLNum = scala#GetPrevCodeLine(a:lnum)
      let prevCodeLine = scala#GetLine(prevCodeLNum)
      if scala#MatchesIncompleteDefValr(prevCodeLine) && prevCodeLine !~ '{\s*$'
        return prevCodeLNum
      else
        let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
        if possibleIfElse != 0
          let defValrLine = prevnonblank(possibleIfElse - 1)
          let possibleDefValr = scala#GetLine(defValrLine)
          if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
            return possibleDefValr
          else
            return -1
          endif
        else
          return -1
        endif
      endif
    endif
  else
    return -1
  endif
endfunction

function! scala#Test(lnum, line, openBracket, closedBracket)
  return scala#Testhelper(a:lnum, a:line, a:openBracket, a:closedBracket, 0)
endfunction

function! scala#LineCompletesDefValr(lnum, line)
  let bracketCount = scala#CountBrackets(a:line, '{', '}')
  if bracketCount < 0
    let matchedBracket = scala#GetLineThatMatchesBracket('{', '}')
    if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
      let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
      if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
        return 1
      else
        return 0
      endif
    else
      return 0
    endif
  elseif bracketCount == 0
    let bracketCount = scala#CountBrackets(a:line, '(', ')')
    if bracketCount < 0
      let matchedBracket = scala#GetLineThatMatchesBracket('(', ')')
      if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
        let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
        if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
          return 1
        else
          return 0
        endif
      else
        return 0
      endif
    elseif bracketCount == 0
      let possibleDefValr = scala#GetLine(prevnonblank(a:lnum - 1))
      if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
        return 1
      else
        let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
        if possibleIfElse != 0
          let possibleDefValr = scala#GetLine(prevnonblank(possibleIfElse - 1))
          if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
            return 2
          else
            return 0
          endif
        else
          return 0
        endif
      endif
    else
      return 0
    endif
  endif
endfunction

function! scala#SpecificLineCompletesBrackets(lnum, openBracket, closedBracket)
  let savedpos = getpos('.')
  call setpos('.', [savedpos[0], a:lnum, 9999, savedpos[3]])
  let retv = scala#LineCompletesBrackets(a:openBracket, a:closedBracket)
  call setpos('.', savedpos)

  return retv
endfunction

function! scala#LineCompletesBrackets(openBracket, closedBracket)
  let savedpos = getpos('.')
  let offline = 0
  while offline == 0
    let [lnum, colnum] = searchpos(a:closedBracket, 'Wb')
    let [lnumA, colnumA] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
    if lnum != lnumA
      let [lnumB, colnumB] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbnr')
      let offline = 1
    endif
  endwhile
  call setpos('.', savedpos)
  if lnumA == lnumB && colnumA == colnumB
    return lnumA
  else
    return -1
  endif
endfunction

function! GetScalaIndent()
  " Find a non-blank line above the current line.
  let prevlnum = prevnonblank(v:lnum - 1)

  " Hit the start of the file, use zero indent.
  if prevlnum == 0
    return 0
  endif

  let ind = indent(prevlnum)
  let originalIndentValue = ind
  let prevline = scala#GetLine(prevlnum)
  let curlnum = v:lnum
  let curline = scala#GetLine(curlnum)
  if get(g:, 'scala_scaladoc_indent', 0)
    let star_indent = 2
  else
    let star_indent = 1
  end

  if prevline =~ '^\s*/\*\*'
    if prevline =~ '\*/\s*$'
      return ind
    else
      return ind + star_indent
    endif
  endif

  if curline =~ '^\s*\*'
    return cindent(curlnum)
  endif

  " If this line starts with a { then make it indent the same as the previous line
  if curline =~ '^\s*{'
    call scala#ConditionalConfirm("1")
    " Unless, of course, the previous one is a { as well
    if prevline !~ '^\s*{'
      call scala#ConditionalConfirm("2")
      return indent(prevlnum)
    endif
  endif

  " '.' continuations
  if curline =~ '^\s*\.'
    if prevline =~ '^\s*\.'
      return ind
    else
      return ind + shiftwidth()
    endif
  endif

  " Indent html literals
  if prevline !~ '/>\s*$' && prevline =~ '^\s*<[a-zA-Z][^>]*>\s*$'
    call scala#ConditionalConfirm("3")
    return ind + shiftwidth()
  endif

  " assumes curly braces around try-block
  if curline =~ '^\s*}\s*\<catch\>'
    return ind - shiftwidth()
  elseif curline =~ '^\s*\<catch\>'
    return ind
  endif

  " Add a shiftwidth()' after lines that start a block
  " If 'if', 'for' or 'while' end with ), this is a one-line block
  " If 'val', 'var', 'def' end with =, this is a one-line block
  if (prevline =~ '^\s*\<\%(\%(}\?\s*else\s\+\)\?if\|for\|while\)\>.*[)=]\s*$' && scala#NumberOfBraceGroups(prevline) <= 1)
        \ || prevline =~ '^\s*' . s:defMatcher . '.*=\s*$'
        \ || prevline =~ '^\s*\<va[lr]\>.*[=]\s*$'
        \ || prevline =~ '^\s*\%(}\s*\)\?\<else\>\s*$'
        \ || prevline =~ '=\s*$'
    call scala#ConditionalConfirm("4")
    let ind = ind + shiftwidth()
  elseif prevline =~ '^\s*\<\%(}\?\s*else\s\+\)\?if\>' && curline =~ '^\s*}\?\s*\<else\>'
    return ind
  endif

  let lineCompletedBrackets = 0
  let bracketCount = scala#CountBrackets(prevline, '{', '}')
  if bracketCount > 0 || prevline =~ '.*{\s*$'
    call scala#ConditionalConfirm("5b")
    let ind = ind + shiftwidth()
  elseif bracketCount < 0
    call scala#ConditionalConfirm("6b")
    " if the closing brace actually completes the braces entirely, then we
    " have to indent to line that started the whole thing
    let completeLine = scala#LineCompletesBrackets('{', '}')
    if completeLine != -1
      call scala#ConditionalConfirm("8b")
      let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
      " However, what actually started this part looks like it was a function
      " definition, so we need to indent to that line instead.  This is
      " actually pretty weak at the moment.
      if prevCompleteLine =~ '=\s*$'
        call scala#ConditionalConfirm("9b")
        let ind = indent(prevnonblank(completeLine - 1))
      else
        call scala#ConditionalConfirm("10b")
        let ind = indent(completeLine)
      endif
    else
      let lineCompletedBrackets = 1
    endif
  endif

  if ind == originalIndentValue
    let bracketCount = scala#CountBrackets(prevline, '(', ')')
    if bracketCount > 0 || prevline =~ '.*(\s*$'
      call scala#ConditionalConfirm("5a")
      let ind = ind + shiftwidth()
    elseif bracketCount < 0
      call scala#ConditionalConfirm("6a")
      " if the closing brace actually completes the braces entirely, then we
      " have to indent to line that started the whole thing
      let completeLine = scala#LineCompletesBrackets('(', ')')
      if completeLine != -1 && prevline !~ '^.*{\s*$'
        call scala#ConditionalConfirm("8a")
        let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
        " However, what actually started this part looks like it was a function
        " definition, so we need to indent to that line instead.  This is
        " actually pretty weak at the moment.
        if prevCompleteLine =~ '=\s*$'
          call scala#ConditionalConfirm("9a")
          let ind = indent(prevnonblank(completeLine - 1))
        else
          call scala#ConditionalConfirm("10a")
          let ind = indent(completeLine)
        endif
      else
        " This is the only part that's different from from the '{', '}' one below
        " Yup... some refactoring is necessary at some point.
        let ind = ind + (bracketCount * shiftwidth())
        let lineCompletedBrackets = 1
      endif
    endif
  endif

  if curline =~ '^\s*}\?\s*\<else\>\%(\s\+\<if\>\s*(.*)\)\?\s*{\?\s*$' &&
   \ ! scala#LineIsCompleteIf(prevline) &&
   \ prevline !~ '^.*}\s*$'
    let ind = ind - shiftwidth()
  endif

  " Subtract a shiftwidth()' on '}' or html
  let curCurlyCount = scala#CountCurlies(curline)
  if curCurlyCount < 0
    call scala#ConditionalConfirm("14a")
    let matchline = scala#CurlyMatcher()
    return indent(matchline)
  elseif curline =~ '^\s*</[a-zA-Z][^>]*>'
    call scala#ConditionalConfirm("14c")
    return ind - shiftwidth()
  endif

  let prevParenCount = scala#CountParens(prevline)
  if prevline =~ '^\s*\<for\>.*$' && prevParenCount > 0
    call scala#ConditionalConfirm("15")
    let ind = indent(prevlnum) + 5
  endif

  let prevCurlyCount = scala#CountCurlies(prevline)
  if prevCurlyCount == 0 && prevline =~ '^.*\%(=>\|⇒\)\s*$' && prevline !~ '^\s*this\s*:.*\%(=>\|⇒\)\s*$' && curline !~ '^\s*\<case\>'
    call scala#ConditionalConfirm("16")
    let ind = ind + shiftwidth()
  endif

  if ind == originalIndentValue && curline =~ '^\s*\<case\>'
    call scala#ConditionalConfirm("17")
    let parentCase = scala#IsParentCase()
    if parentCase != -1
      call scala#ConditionalConfirm("17a")
      return indent(parentCase)
    endif
  endif

  if prevline =~ '^\s*\*/'
   \ || prevline =~ '*/\s*$'
    call scala#ConditionalConfirm("18")
    let ind = ind - star_indent
  endif

  if scala#LineEndsInIncomplete(prevline)
    call scala#ConditionalConfirm("19")
    return ind
  endif

  if scala#LineIsAClosingXML(prevline)
    if scala#LineCompletesXML(prevlnum, prevline)
      call scala#ConditionalConfirm("20a")
      return ind - shiftwidth()
    else
      call scala#ConditionalConfirm("20b")
      return ind
    endif
  endif

  if ind == originalIndentValue
    "let indentMultiplier = scala#LineCompletesDefValr(prevlnum, prevline)
    "if indentMultiplier != 0
    "  call scala#ConditionalConfirm("19a")
    "  let ind = ind - (indentMultiplier * shiftwidth())
    let defValrLine = scala#Test(prevlnum, prevline, '{', '}')
    if defValrLine != -1
      call scala#ConditionalConfirm("21a")
      let ind = indent(defValrLine)
    elseif lineCompletedBrackets == 0
      call scala#ConditionalConfirm("21b")
      if scala#GetLine(prevnonblank(prevlnum - 1)) =~ '^.*\<else\>\s*\%(//.*\)\?$'
        call scala#ConditionalConfirm("21c")
        let ind = ind - shiftwidth()
      elseif scala#LineCompletesIfElse(prevlnum, prevline)
        call scala#ConditionalConfirm("21d")
        let ind = ind - shiftwidth()
      elseif scala#CountParens(curline) < 0 && curline =~ '^\s*)' && scala#GetLine(scala#GetLineThatMatchesBracket('(', ')')) =~ '.*(\s*$'
        " Handles situations that look like this:
        "
        "   val a = func(
        "     10
        "   )
        "
        " or
        "
        "   val a = func(
        "     10
        "   ).somethingHere()
        call scala#ConditionalConfirm("21e")
        let ind = ind - shiftwidth()
      endif
    endif
  endif

  call scala#ConditionalConfirm("returning " . ind)

  return ind
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:set sw=2 sts=2 ts=8 et:
" vim600:fdm=marker fdl=1 fdc=0:
PK�j�ZE����vim80/indent/mf.vimnu�[���" METAFONT indent file
" Language:    METAFONT
" Maintainer:  Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 1

runtime! indent/mp.vim
PK�j�Z�]9v
v
vim80/indent/cucumber.vimnu�[���" Vim indent file
" Language:	Cucumber
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2017 Jun 13

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetCucumberIndent()
setlocal indentkeys=o,O,*<Return>,<:>,0<Bar>,0#,=,!^F

let b:undo_indent = 'setl ai< inde< indk<'

" Only define the function once.
if exists("*GetCucumberIndent")
  finish
endif

function! s:syn(lnum)
  return synIDattr(synID(a:lnum,1+indent(a:lnum),1),'name')
endfunction

function! GetCucumberIndent()
  let line  = getline(prevnonblank(v:lnum-1))
  let cline = getline(v:lnum)
  let nline = getline(nextnonblank(v:lnum+1))
  let sw = exists('*shiftwidth') ? shiftwidth() : shiftwidth()
  let syn = s:syn(prevnonblank(v:lnum-1))
  let csyn = s:syn(v:lnum)
  let nsyn = s:syn(nextnonblank(v:lnum+1))
  if csyn ==# 'cucumberFeature' || cline =~# '^\s*Feature:'
    " feature heading
    return 0
  elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):'
    " examples heading
    return 2 * sw
  elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
    " background, scenario or outline heading
    return sw
  elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:'
    " line after feature heading
    return sw
  elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):'
    " line after examples heading
    return 3 * sw
  elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
    " line after background, scenario or outline heading
    return 2 * sw
  elseif cline =~# '^\s*[@#]' && (nsyn == 'cucumberFeature' || nline =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
    " tag or comment before a feature heading
    return 0
  elseif cline =~# '^\s*@'
    " other tags
    return sw
  elseif cline =~# '^\s*[#|]' && line =~# '^\s*|'
    " mid-table
    " preserve indent
    return indent(prevnonblank(v:lnum-1))
  elseif cline =~# '^\s*|' && line =~# '^\s*[^|]'
    " first line of a table, relative indent
    return indent(prevnonblank(v:lnum-1)) + sw
  elseif cline =~# '^\s*[^|]' && line =~# '^\s*|'
    " line after a table, relative unindent
    return indent(prevnonblank(v:lnum-1)) - sw
  elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && (nsyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || nline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):')
    " comments on scenarios
    return sw
  endif
  return indent(prevnonblank(v:lnum-1))
endfunction

" vim:set sts=2 sw=2:
PK�j�Z��!�!vim80/indent/systemverilog.vimnu�[���" Vim indent file
" Language:    SystemVerilog
" Maintainer:  kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013. 

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=SystemVerilogIndent()
setlocal indentkeys=!^F,o,O,0),0},=begin,=end,=join,=endcase,=join_any,=join_none
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
setlocal indentkeys+==endclass,=endpackage,=endsequence,=endclocking
setlocal indentkeys+==endinterface,=endgroup,=endprogram,=endproperty,=endchecker
setlocal indentkeys+==`else,=`endif

" Only define the function once.
if exists("*SystemVerilogIndent")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

function SystemVerilogIndent()

  if exists('b:systemverilog_indent_width')
    let offset = b:systemverilog_indent_width
  else
    let offset = shiftwidth()
  endif
  if exists('b:systemverilog_indent_modules')
    let indent_modules = offset
  else
    let indent_modules = 0
  endif

  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif

  let lnum2 = prevnonblank(lnum - 1)
  let curr_line  = getline(v:lnum)
  let last_line  = getline(lnum)
  let last_line2 = getline(lnum2)
  let ind  = indent(lnum)
  let ind2 = indent(lnum - 1)
  let offset_comment1 = 1
  " Define the condition of an open statement
  "   Exclude the match of //, /* or */
  let sv_openstat = '\(\<or\>\|\([*/]\)\@<![*(,{><+-/%^&|!=?:]\([*/]\)\@!\)'
  " Define the condition when the statement ends with a one-line comment
  let sv_comment = '\(//.*\|/\*.*\*/\s*\)'
  if exists('b:verilog_indent_verbose')
    let vverb_str = 'INDENT VERBOSE:'
    let vverb = 1
  else
    let vverb = 0
  endif

  " Indent accoding to last line
  " End of multiple-line comment
  if last_line =~ '\*/\s*$' && last_line !~ '/\*.\{-}\*/'
    let ind = ind - offset_comment1
    if vverb
      echo vverb_str "De-indent after a multiple-line comment."
    endif

  " Indent after if/else/for/case/always/initial/specify/fork blocks
  elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
    \ last_line =~ '^\s*\<\(for\|case\%[[zx]]\|do\|foreach\|randcase\)\>' ||
    \ last_line =~ '^\s*\<\(always\|always_comb\|always_ff\|always_latch\)\>' ||
    \ last_line =~ '^\s*\<\(initial\|specify\|fork\|final\)\>'
    if last_line !~ '\(;\|\<end\>\)\s*' . sv_comment . '*$' ||
      \ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$'
      let ind = ind + offset
      if vverb | echo vverb_str "Indent after a block statement." | endif
    endif
  " Indent after function/task/class/package/sequence/clocking/
  " interface/covergroup/property/checkerprogram blocks
  elseif last_line =~ '^\s*\<\(function\|task\|class\|package\)\>' ||
    \ last_line =~ '^\s*\<\(sequence\|clocking\|interface\)\>' ||
    \ last_line =~ '^\s*\(\w\+\s*:\)\=\s*\<covergroup\>' ||
    \ last_line =~ '^\s*\<\(property\|checker\|program\)\>'
    if last_line !~ '\<end\>\s*' . sv_comment . '*$' ||
      \ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$'
      let ind = ind + offset
      if vverb
	echo vverb_str "Indent after function/task/class block statement."
      endif
    endif

  " Indent after module/function/task/specify/fork blocks
  elseif last_line =~ '^\s*\(\<extern\>\s*\)\=\<module\>'
    let ind = ind + indent_modules
    if vverb && indent_modules
      echo vverb_str "Indent after module statement."
    endif
    if last_line =~ '[(,]\s*' . sv_comment . '*$' &&
      \ last_line !~ '\(//\|/\*\).*[(,]\s*' . sv_comment . '*$'
      let ind = ind + offset
      if vverb
	echo vverb_str "Indent after a multiple-line module statement."
      endif
    endif

  " Indent after a 'begin' statement
  elseif last_line =~ '\(\<begin\>\)\(\s*:\s*\w\+\)*' . sv_comment . '*$' &&
    \ last_line !~ '\(//\|/\*\).*\(\<begin\>\)' &&
    \ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' ||
    \ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' )
    let ind = ind + offset
    if vverb | echo vverb_str "Indent after begin statement." | endif

  " Indent after a '{' or a '('
  elseif last_line =~ '[{(]' . sv_comment . '*$' &&
    \ last_line !~ '\(//\|/\*\).*[{(]' &&
    \ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' ||
    \ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' )
    let ind = ind + offset
    if vverb | echo vverb_str "Indent after begin statement." | endif

  " De-indent for the end of one-line block
  elseif ( last_line !~ '\<begin\>' ||
    \ last_line =~ '\(//\|/\*\).*\<begin\>' ) &&
    \ last_line2 =~ '\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|final\)\>.*' .
      \ sv_comment . '*$' &&
    \ last_line2 !~ '\(//\|/\*\).*\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|final\)\>' &&
    \ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' &&
    \ ( last_line2 !~ '\<begin\>' ||
    \ last_line2 =~ '\(//\|/\*\).*\<begin\>' )
    let ind = ind - offset
    if vverb
      echo vverb_str "De-indent after the end of one-line statement."
    endif

    " Multiple-line statement (including case statement)
    " Open statement
    "   Ident the first open line
    elseif  last_line =~ sv_openstat . '\s*' . sv_comment . '*$' &&
      \ last_line !~ '\(//\|/\*\).*' . sv_openstat . '\s*$' &&
      \ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$'
      let ind = ind + offset
      if vverb | echo vverb_str "Indent after an open statement." | endif

    " Close statement
    "   De-indent for an optional close parenthesis and a semicolon, and only
    "   if there exists precedent non-whitespace char
    elseif last_line =~ ')*\s*;\s*' . sv_comment . '*$' &&
      \ last_line !~ '^\s*)*\s*;\s*' . sv_comment . '*$' &&
      \ last_line !~ '\(//\|/\*\).*\S)*\s*;\s*' . sv_comment . '*$' &&
      \ ( last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' &&
      \ last_line2 !~ ';\s*//.*$') &&
      \ last_line2 !~ '^\s*' . sv_comment . '$'
      let ind = ind - offset
      if vverb | echo vverb_str "De-indent after a close statement." | endif

  " `ifdef and `else
  elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
    let ind = ind + offset
    if vverb
      echo vverb_str "Indent after a `ifdef or `else statement."
    endif

  endif

  " Re-indent current line

  " De-indent on the end of the block
  " join/end/endcase/endfunction/endtask/endspecify
  if curr_line =~ '^\s*\<\(join\|join_any\|join_none\|\|end\|endcase\|while\)\>' ||
      \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\|endclass\)\>' ||
      \ curr_line =~ '^\s*\<\(endpackage\|endsequence\|endclocking\|endinterface\)\>' ||
      \ curr_line =~ '^\s*\<\(endgroup\|endproperty\|endchecker\|endprogram\)\>' ||
      \ curr_line =~ '^\s*}'
    let ind = ind - offset
    if vverb | echo vverb_str "De-indent the end of a block." | endif
  elseif curr_line =~ '^\s*\<endmodule\>'
    let ind = ind - indent_modules
    if vverb && indent_modules
      echo vverb_str "De-indent the end of a module."
    endif

  " De-indent on a stand-alone 'begin'
  elseif curr_line =~ '^\s*\<begin\>'
    if last_line !~ '^\s*\<\(function\|task\|specify\|module\|class\|package\)\>' ||
      \ last_line !~ '^\s*\<\(sequence\|clocking\|interface\|covergroup\)\>' ||
      \ last_line !~ '^\s*\<\(property\|checker\|program\)\>' &&
      \ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . sv_comment . '*$' &&
      \ ( last_line =~
      \ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\|do\|foreach\|randcase\|final\)\>' ||
      \ last_line =~ ')\s*' . sv_comment . '*$' ||
      \ last_line =~ sv_openstat . '\s*' . sv_comment . '*$' )
      let ind = ind - offset
      if vverb
	echo vverb_str "De-indent a stand alone begin statement."
      endif
    endif

  " De-indent after the end of multiple-line statement
  elseif curr_line =~ '^\s*)' &&
    \ ( last_line =~ sv_openstat . '\s*' . sv_comment . '*$' ||
    \ last_line !~ sv_openstat . '\s*' . sv_comment . '*$' &&
    \ last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' )
    let ind = ind - offset
    if vverb
      echo vverb_str "De-indent the end of a multiple statement."
    endif

  " De-indent `else and `endif
  elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
    let ind = ind - offset
    if vverb | echo vverb_str "De-indent `else and `endif statement." | endif

  endif

  " Return the indention
  return ind
endfunction

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:sw=2
PK�j�Z��P�f
f
vim80/indent/pov.vimnu�[���" Vim indent file
" Language: PoV-Ray Scene Description Language
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" Last Change: 2017 Jun 13
" URI: http://trific.ath.cx/Ftp/vim/indent/pov.vim

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

" Some preliminary settings.
setlocal nolisp " Make sure lisp indenting doesn't supersede us.

setlocal indentexpr=GetPoVRayIndent()
setlocal indentkeys+==else,=end,0]

" Only define the function once.
if exists("*GetPoVRayIndent")
  finish
endif

" Counts matches of a regexp <rexp> in line number <line>.
" Doesn't count matches inside strings and comments (as defined by current
" syntax).
function! s:MatchCount(line, rexp)
  let str = getline(a:line)
  let i = 0
  let n = 0
  while i >= 0
    let i = matchend(str, a:rexp, i)
    if i >= 0 && synIDattr(synID(a:line, i, 0), "name") !~? "string\|comment"
      let n = n + 1
    endif
  endwhile
  return n
endfunction

" The main function.  Returns indent amount.
function GetPoVRayIndent()
  " If we are inside a comment (may be nested in obscure ways), give up
  if synIDattr(synID(v:lnum, indent(v:lnum)+1, 0), "name") =~? "string\|comment"
    return -1
  endif

  " Search backwards for the frist non-empty, non-comment line.
  let plnum = prevnonblank(v:lnum - 1)
  let plind = indent(plnum)
  while plnum > 0 && synIDattr(synID(plnum, plind+1, 0), "name") =~? "comment"
    let plnum = prevnonblank(plnum - 1)
    let plind = indent(plnum)
  endwhile

  " Start indenting from zero
  if plnum == 0
    return 0
  endif

  " Analyse previous nonempty line.
  let chg = 0
  let chg = chg + s:MatchCount(plnum, '[[{(]')
  let chg = chg + s:MatchCount(plnum, '#\s*\%(if\|ifdef\|ifndef\|switch\|while\|macro\|else\)\>')
  let chg = chg - s:MatchCount(plnum, '#\s*end\>')
  let chg = chg - s:MatchCount(plnum, '[]})]')
  " Dirty hack for people writing #if and #else on the same line.
  let chg = chg - s:MatchCount(plnum, '#\s*\%(if\|ifdef\|ifndef\|switch\)\>.*#\s*else\>')
  " When chg > 0, then we opened groups and we should indent more, but when
  " chg < 0, we closed groups and this already affected the previous line,
  " so we should not dedent.  And when everything else fails, scream.
  let chg = chg > 0 ? chg : 0

  " Analyse current line
  " FIXME: If we have to dedent, we should try to find the indentation of the
  " opening line.
  let cur = s:MatchCount(v:lnum, '^\s*\%(#\s*\%(end\|else\)\>\|[]})]\)')
  if cur > 0
    let final = plind + (chg - cur) * shiftwidth()
  else
    let final = plind + chg * shiftwidth()
  endif

  return final < 0 ? 0 : final
endfunction
PK�j�Z�u�NNvim80/indent/sml.vimnu�[���" Vim indent file
" Language:     SML
" Maintainer:	Saikat Guha <sg266@cornell.edu>
" 				Hubert Chao <hc85@cornell.edu>
" Original OCaml Version:
" 				Jean-Francois Yuen  <jfyuen@ifrance.com>
"               Mike Leary          <leary@nwlink.com>
"               Markus Mottl        <markus@oefai.at>
" OCaml URL:    http://www.oefai.at/~markus/vim/indent/ocaml.vim
" Last Change:  2003 Jan 04	- Adapted to SML
" 				2002 Nov 06 - Some fixes (JY)
"               2002 Oct 28 - Fixed bug with indentation of ']' (MM)
"               2002 Oct 22 - Major rewrite (JY)

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal expandtab
setlocal indentexpr=GetSMLIndent()
setlocal indentkeys+=0=and,0=else,0=end,0=handle,0=if,0=in,0=let,0=then,0=val,0=fun,0=\|,0=*),0)
setlocal nolisp
setlocal nosmartindent
setlocal textwidth=80
setlocal shiftwidth=2

" Comment formatting
if (has("comments"))
  set comments=sr:(*,mb:*,ex:*)
  set fo=cqort
endif

" Only define the function once.
"if exists("*GetSMLIndent")
"finish
"endif

" Define some patterns:
let s:beflet = '^\s*\(initializer\|method\|try\)\|\(\<\(begin\|do\|else\|in\|then\|try\)\|->\|;\)\s*$'
let s:letpat = '^\s*\(let\|type\|module\|class\|open\|exception\|val\|include\|external\)\>'
let s:letlim = '\(\<\(sig\|struct\)\|;;\)\s*$'
let s:lim = '^\s*\(exception\|external\|include\|let\|module\|open\|type\|val\)\>'
let s:module = '\<\%(let\|sig\|struct\)\>'
let s:obj = '^\s*\(constraint\|inherit\|initializer\|method\|val\)\>\|\<\(object\|object\s*(.*)\)\s*$'
let s:type = '^\s*\%(let\|type\)\>.*='
let s:val = '^\s*\(val\|external\)\>.*:'

" Skipping pattern, for comments
function! s:SkipPattern(lnum, pat)
  let def = prevnonblank(a:lnum - 1)
  while def > 0 && getline(def) =~ a:pat
    let def = prevnonblank(def - 1)
  endwhile
  return def
endfunction

" Indent for ';;' to match multiple 'let'
function! s:GetInd(lnum, pat, lim)
  let llet = search(a:pat, 'bW')
  let old = indent(a:lnum)
  while llet > 0
    let old = indent(llet)
    let nb = s:SkipPattern(llet, '^\s*(\*.*\*)\s*$')
    if getline(nb) =~ a:lim
      return old
    endif
    let llet = search(a:pat, 'bW')
  endwhile
  return old
endfunction

" Indent pairs
function! s:FindPair(pstart, pmid, pend)
  call search(a:pend, 'bW')
"  return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"'))
  let lno = searchpair(a:pstart, a:pmid, a:pend, 'bW', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')
  if lno == -1
	return indent(lno)
  else
	return col(".") - 1
  endif
endfunction

function! s:FindLet(pstart, pmid, pend)
  call search(a:pend, 'bW')
"  return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"'))
  let lno = searchpair(a:pstart, a:pmid, a:pend, 'bW', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')
  let moduleLine = getline(lno)
  if lno == -1 || moduleLine =~ '^\s*\(fun\|structure\|signature\)\>'
	return indent(lno)
  else
	return col(".") - 1
  endif
endfunction

" Indent 'let'
"function! s:FindLet(pstart, pmid, pend)
"  call search(a:pend, 'bW')
"  return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\<in\\s*$" || getline(prevnonblank(".") - 1) =~ "^\\s*let\\>.*=\\s*$\\|" . s:beflet'))
"endfunction

function! GetSMLIndent()
  " Find a non-blank line above the current line.
  let lnum = prevnonblank(v:lnum - 1)

  " At the start of the file use zero indent.
  if lnum == 0
    return 0
  endif

  let ind = indent(lnum)
  let lline = getline(lnum)

	" Return double 'shiftwidth' after lines matching:
	if lline =~ '^\s*|.*=>\s*$'
		return ind + 2 *shiftwidth()
	elseif lline =~ '^\s*val\>.*=\s*$'
		return ind + shiftwidth()
	endif

  let line = getline(v:lnum)

	" Indent lines starting with 'end' to matching module
	if line =~ '^\s*end\>'
		return s:FindLet(s:module, '', '\<end\>')

	" Match 'else' with 'if'
	elseif line =~ '^\s*else\>'
	  	if lline !~ '^\s*\(if\|else\|then\)\>'
				return s:FindPair('\<if\>', '', '\<then\>')
	  	else
		  return ind
		endif

	" Match 'then' with 'if'
	elseif line =~ '^\s*then\>'
  	if lline !~ '^\s*\(if\|else\|then\)\>'
		  return s:FindPair('\<if\>', '', '\<then\>')
	else
	  return ind
	endif

	" Indent if current line begins with ']'
	elseif line =~ '^\s*\]'
		return s:FindPair('\[','','\]')

  " Indent current line starting with 'in' to last matching 'let'
	elseif line =~ '^\s*in\>'
		let ind = s:FindLet('\<let\>','','\<in\>')

	" Indent from last matching module if line matches:
	elseif line =~ '^\s*\(fun\|val\|open\|structure\|and\|datatype\|type\|exception\)\>'
		cursor(lnum,1)
  		let lastModule = indent(searchpair(s:module, '', '\<end\>', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"'))
		if lastModule == -1
			return 0
		else
			return lastModule + shiftwidth()
		endif

	" Indent lines starting with '|' from matching 'case', 'handle'
	elseif line =~ '^\s*|'
		" cursor(lnum,1)
		let lastSwitch = search('\<\(case\|handle\|fun\|datatype\)\>','bW')
		let switchLine = getline(lastSwitch)
		let switchLineIndent = indent(lastSwitch)
		if lline =~ '^\s*|'
		  return ind
		endif
		if switchLine =~ '\<case\>'
			return col(".") + 2
		elseif switchLine =~ '\<handle\>'
			return switchLineIndent + shiftwidth()
		elseif switchLine =~ '\<datatype\>'
			call search('=')
			return col(".") - 1
		else
			return switchLineIndent + 2
		endif


  " Indent if last line ends with 'sig', 'struct', 'let', 'then', 'else',
  " 'in'
  elseif lline =~ '\<\(sig\|struct\|let\|in\|then\|else\)\s*$'
		let ind = ind + shiftwidth()

  " Indent if last line ends with 'of', align from 'case'
  elseif lline =~ '\<\(of\)\s*$'
		call search('\<case\>',"bW")
		let ind = col(".")+4

	" Indent if current line starts with 'of'
  elseif line =~ '^\s*of\>'
		call search('\<case\>',"bW")
		let ind = col(".")+1


	" Indent if last line starts with 'fun', 'case', 'fn'
	elseif lline =~ '^\s*\(fun\|fn\|case\)\>'
		let ind = ind + shiftwidth()

	endif

	" Don't indent 'let' if last line started with 'fun', 'fn'
	if line =~ '^\s*let\>'
		if lline =~ '^\s*\(fun\|fn\)'
			let ind = ind - shiftwidth()
		endif
  endif

  return ind

endfunction

" vim:sw=2
PK�j�Zcp�x�
�
vim80/indent/make.vimnu�[���" Vim indent file
" Language:             Makefile
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-05-07

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetMakeIndent()
setlocal indentkeys=!^F,o,O,<:>,=else,=endif
setlocal nosmartindent

if exists("*GetMakeIndent")
  finish
endif

let s:comment_rx = '^\s*#'
let s:rule_rx = '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
let s:continued_rule_rx = '^[^#:]*:\{1,2}\%([^=:]\|$\)'
let s:continuation_rx = '\\$'
let s:assignment_rx = '^\s*\h\w*\s*[+?]\==\s*\zs.*\\$'
let s:folded_assignment_rx = '^\s*\h\w*\s*[+?]\=='
" TODO: This needs to be a lot more restrictive in what it matches.
let s:just_inserted_rule_rx = '^\s*[^#:]\+:\{1,2}$'
let s:conditional_directive_rx = '^ *\%(ifn\=\%(eq\|def\)\|else\)\>'
let s:end_conditional_directive_rx = '^\s*\%(else\|endif\)\>'

function s:remove_continuation(line)
  return substitute(a:line, s:continuation_rx, "", "")
endfunction

function GetMakeIndent()
  " TODO: Should this perhaps be v:lnum -1?
"  let prev_lnum = prevnonblank(v:lnum - 1)
  let prev_lnum = v:lnum - 1
  if prev_lnum == 0
    return 0
  endif
  let prev_line = getline(prev_lnum)

  let prev_prev_lnum = prev_lnum - 1
  let prev_prev_line = prev_prev_lnum != 0 ? getline(prev_prev_lnum) : ""

  " TODO: Deal with comments.  In comments, continuations aren't interesting.
  if prev_line =~ s:continuation_rx
    if prev_prev_line =~ s:continuation_rx
      return indent(prev_lnum)
    elseif prev_line =~ s:rule_rx
      return shiftwidth()
    elseif prev_line =~ s:assignment_rx
      call cursor(prev_lnum, 1)
      if search(s:assignment_rx, 'W') != 0
        return virtcol('.') - 1
      else
        " TODO: ?
        return shiftwidth()
      endif
    else
      " TODO: OK, this might be a continued shell command, so perhaps indent
      " properly here?  Leave this out for now, but in the next release this
      " should be using indent/sh.vim somehow.
      "if prev_line =~ '^\t' " s:rule_command_rx
      "  if prev_line =~ '^\s\+[@-]\%(if\)\>'
      "    return indent(prev_lnum) + 2
      "  endif
      "endif
      return indent(prev_lnum) + shiftwidth()
    endif
  elseif prev_prev_line =~ s:continuation_rx
    let folded_line = s:remove_continuation(prev_prev_line) . ' ' . s:remove_continuation(prev_line)
    let lnum = prev_prev_lnum - 1
    let line = getline(lnum)
    while line =~ s:continuation_rx
      let folded_line = s:remove_continuation(line) . ' ' . folded_line
      let lnum -= 1
      let line = getline(lnum)
    endwhile
    let folded_lnum = lnum + 1
    if folded_line =~ s:rule_rx
      if getline(v:lnum) =~ s:rule_rx
        return 0
      else
        return &ts
      endif
    else
"    elseif folded_line =~ s:folded_assignment_rx
      if getline(v:lnum) =~ s:rule_rx
        return 0
      else
        return indent(folded_lnum)
      endif
"    else
"      " TODO: ?
"      return indent(prev_lnum)
    endif
  elseif prev_line =~ s:rule_rx
    if getline(v:lnum) =~ s:rule_rx
      return 0
    else
      return &ts
    endif
  elseif prev_line =~ s:conditional_directive_rx
    return shiftwidth()
  else
    let line = getline(v:lnum)
    if line =~ s:just_inserted_rule_rx
      return 0
    elseif line =~ s:end_conditional_directive_rx
      return v:lnum - 1 == 0 ? 0 : indent(v:lnum - 1) - shiftwidth()
    else
      return v:lnum - 1 == 0 ? 0 : indent(v:lnum - 1)
    endif
  endif
endfunction
PK�j�Z�/��FFvim80/indent/rpl.vimnu�[���" Vim indent file
" Language:	RPL/2
" Version:	0.2
" Last Change:	2017 Jun 13
" Maintainer:	BERTRAND Jo�l <rpl2@free.fr>

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentkeys+==~end,=~case,=~if,=~then,=~else,=~do,=~until,=~while,=~repeat,=~select,=~default,=~for,=~start,=~next,=~step,<<>,<>>

" Define the appropriate indent function but only once
setlocal indentexpr=RplGetFreeIndent()
if exists("*RplGetFreeIndent")
  finish
endif

let b:undo_indent = "set ai< indentkeys< indentexpr<"

function RplGetIndent(lnum)
  let ind = indent(a:lnum)
  let prevline=getline(a:lnum)
  " Strip tail comment
  let prevstat=substitute(prevline, '!.*$', '', '')

  " Add a shiftwidth to statements following if, iferr, then, else, elseif,
  " case, select, default, do, until, while, repeat, for, start
  if prevstat =~? '\<\(if\|iferr\|do\|while\)\>' && prevstat =~? '\<end\>'
  elseif prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)' && prevstat =~? '\s\+>>\($\|\s\+\)'
  elseif prevstat =~? '\<\(if\|iferr\|then\|else\|elseif\|select\|case\|do\|until\|while\|repeat\|for\|start\|default\)\>' || prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)'
    let ind = ind + shiftwidth()
  endif

  " Subtract a shiftwidth from then, else, elseif, end, until, repeat, next,
  " step
  let line = getline(v:lnum)
  if line =~? '^\s*\(then\|else\|elseif\|until\|repeat\|next\|step\|default\|end\)\>'
    let ind = ind - shiftwidth()
  elseif line =~? '^\s*>>\($\|\s\+\)'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction

function RplGetFreeIndent()
  " Find the previous non-blank line
  let lnum = prevnonblank(v:lnum - 1)

  " Use zero indent at the top of the file
  if lnum == 0
    return 0
  endif

  let ind=RplGetIndent(lnum)
  return ind
endfunction

" vim:sw=2 tw=130
PK�j�Zi���}}vim80/indent/lifelines.vimnu�[���" Vim indent file
" Language:	LifeLines
" Maintainer:	Patrick Texier <p.texier@orsennes.com>
" Location:	<http://patrick.texier.free.fr/vim/indent/lifelines.vim>
" Last Change:	2010 May 7

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif
let b:did_indent = 1

" LifeLines uses cindent without ; line terminator, C functions
" declarations, C keywords, C++ formating
setlocal cindent
setlocal cinwords=""
setlocal cinoptions+=+0
setlocal cinoptions+=p0
setlocal cinoptions+=i0
setlocal cinoptions+=t0
setlocal cinoptions+=*500

let b:undo_indent = "setl cin< cino< cinw<"
" vim: ts=8 sw=4
PK�j�Z�Ɯ�vim80/indent/eterm.vimnu�[���" Vim indent file
" Language:             Eterm configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-20

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetEtermIndent()
setlocal indentkeys=!^F,o,O,=end
setlocal nosmartindent

if exists("*GetEtermIndent")
  finish
endif

function GetEtermIndent()
  let lnum = prevnonblank(v:lnum - 1)
  if lnum == 0
    return 0
  endif

  let ind = indent(lnum)

  if getline(lnum) =~ '^\s*begin\>'
    let ind = ind + shiftwidth()
  endif

  if getline(v:lnum) =~ '^\s*end\>'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction
PK�j�Zb����vim80/indent/logtalk.vimnu�[���"  Maintainer:	Paulo Moura <pmoura@logtalk.org>
"  Revised on:	2008.06.02
"  Language:	Logtalk

" This Logtalk indent file is a modified version of the Prolog
" indent file written by Gergely Kontra

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
	finish
endif

let b:did_indent = 1

setlocal indentexpr=GetLogtalkIndent()
setlocal indentkeys-=:,0#
setlocal indentkeys+=0%,-,0;,>,0)

" Only define the function once.
if exists("*GetLogtalkIndent")
	finish
endif

function! GetLogtalkIndent()
	" Find a non-blank line above the current line.
	let pnum = prevnonblank(v:lnum - 1)
	" Hit the start of the file, use zero indent.
	if pnum == 0
		return 0
	endif
	let line = getline(v:lnum)
	let pline = getline(pnum)

	let ind = indent(pnum)
	" Previous line was comment -> use previous line's indent
	if pline =~ '^\s*%'
		retu ind
	endif
	" Check for entity opening directive on previous line
	if pline =~ '^\s*:-\s\(object\|protocol\|category\)\ze(.*,$'
		let ind = ind + shiftwidth()
	" Check for clause head on previous line
	elseif pline =~ ':-\s*\(%.*\)\?$'
		let ind = ind + shiftwidth()
	" Check for entity closing directive on previous line
	elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
		let ind = ind - shiftwidth()
	" Check for end of clause on previous line
	elseif pline =~ '\.\s*\(%.*\)\?$'
		let ind = ind - shiftwidth()
	endif
	" Check for opening conditional on previous line
	if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
		let ind = ind + shiftwidth()
	endif
	" Check for closing an unclosed paren, or middle ; or ->
	if line =~ '^\s*\([);]\|->\)'
		let ind = ind - shiftwidth()
	endif
	return ind
endfunction
PK�j�Z"����vim80/indent/sql.vimnu�[���" Vim indent file loader
" Language:    SQL
" Maintainer:  David Fishburn <fishburn at ianywhere dot com>
" Last Change: Thu Sep 15 2005 10:27:51 AM
" Version:     1.0
" Download:    http://vim.sourceforge.net/script.php?script_id=495

" Description: Checks for a:
"                  buffer local variable,
"                  global variable,
"              If the above exist, it will source the type specified.
"              If none exist, it will source the default sqlanywhere.vim file.


" Only load this indent file when no other was loaded.
if exists("b:did_indent")
    finish
endif

" Default to the standard Vim distribution file
let filename = 'sqlanywhere'

" Check for overrides.  Buffer variables have the highest priority.
if exists("b:sql_type_override")
    " Check the runtimepath to see if the file exists
    if globpath(&runtimepath, 'indent/'.b:sql_type_override.'.vim') != ''
        let filename = b:sql_type_override
    endif
elseif exists("g:sql_type_default")
    if globpath(&runtimepath, 'indent/'.g:sql_type_default.'.vim') != ''
        let filename = g:sql_type_default
    endif
endif

" Source the appropriate file
exec 'runtime indent/'.filename.'.vim'


" vim:sw=4:
PK�j�Z2t�#��vim80/indent/treetop.vimnu�[���" Vim indent file
" Language:             Treetop
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-03-14

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetTreetopIndent()
setlocal indentkeys=0{,0},!^F,o,O,=end
setlocal nosmartindent

if exists("*GetTreetopIndent")
  finish
endif

function GetTreetopIndent()
  let pnum = prevnonblank(v:lnum - 1)
  if pnum == 0
    return 0
  endif

  let ind = indent(pnum)
  let line = getline(pnum)

  if line =~ '^\s*\%(grammar\|module\|rule\)\>'
    let ind += shiftwidth()
  endif

  let line = getline(v:lnum)
  if line =~ '^\s*end\>'
    let ind -= shiftwidth()
  end

  retur ind
endfunction
PK�j�Z�T,�wwvim80/indent/rst.vimnu�[���" Vim indent file
" Language:             reStructuredText Documentation Format
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-08-03

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=GetRSTIndent()
setlocal indentkeys=!^F,o,O
setlocal nosmartindent

if exists("*GetRSTIndent")
  finish
endif

let s:itemization_pattern = '^\s*[-*+]\s'
let s:enumeration_pattern = '^\s*\%(\d\+\|#\)\.\s\+'

function GetRSTIndent()
  let lnum = prevnonblank(v:lnum - 1)
  if lnum == 0
    return 0
  endif

  let ind = indent(lnum)
  let line = getline(lnum)

  if line =~ s:itemization_pattern
    let ind += 2
  elseif line =~ s:enumeration_pattern
    let ind += matchend(line, s:enumeration_pattern)
  endif

  let line = getline(v:lnum - 1)

  " Indent :FIELD: lines.  Don’t match if there is no text after the field or
  " if the text ends with a sent-ender.
   if line =~ '^:.\+:\s\{-1,\}\S.\+[^.!?:]$'
     return matchend(line, '^:.\{-1,}:\s\+')
   endif

  if line =~ '^\s*$'
    execute lnum
    call search('^\s*\%([-*+]\s\|\%(\d\+\|#\)\.\s\|\.\.\|$\)', 'bW')
    let line = getline('.')
    if line =~ s:itemization_pattern
      let ind -= 2
    elseif line =~ s:enumeration_pattern
      let ind -= matchend(line, s:enumeration_pattern)
    elseif line =~ '^\s*\.\.'
      let ind -= 3
    endif
  endif

  return ind
endfunction
PK�j�Z�ng��vim80/indent/scss.vimnu�[���" Vim indent file
" Language:	SCSS
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2010 Jul 26

if exists("b:did_indent")
  finish
endif

runtime! indent/css.vim

" vim:set sw=2:
PK�j�Z9m���vim80/indent/zsh.vimnu�[���" Vim indent file
" Language:             Zsh shell script
" Maintainer:           Christian Brabandt <cb@256bit.org>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2015-05-29
" License:              Vim (see :h license)
" Repository:           https://github.com/chrisbra/vim-zsh

if exists("b:did_indent")
  finish
endif

" Same as sh indenting for now.
runtime! indent/sh.vim
PK�j�Z�.���vim80/indent/d.vimnu�[���" Vim indent file for the D programming language (version 0.137).
"
" Language:	D
" Maintainer:	Jason Mills<jmills@cs.mun.ca>
" Last Change:	2005 Nov 22
" Version:	0.1
"
" Please email me with bugs, comments, and suggestion. Put vim in the subject
" to ensure the email will not be marked has spam.
"

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif

let b:did_indent = 1

" D indenting is a lot like the built-in C indenting.
setlocal cindent

" vim: ts=8 noet
PK�j�Z��3��vim80/indent/hamster.vimnu�[���" Vim indent file
" Language:    Hamster Script 
" Version:     2.0.6.0
" Last Change: Wed Nov 08 2006 12:02:42 PM
" Maintainer:  David Fishburn <fishburn@ianywhere.com>

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentkeys+==~if,=~else,=~endif,=~endfor,=~endwhile
setlocal indentkeys+==~do,=~until,=~while,=~repeat,=~for,=~loop
setlocal indentkeys+==~sub,=~endsub

" Define the appropriate indent function but only once
setlocal indentexpr=HamGetFreeIndent()
if exists("*HamGetFreeIndent")
  finish
endif

function HamGetIndent(lnum)
  let ind = indent(a:lnum)
  let prevline=getline(a:lnum)

  " Add a shiftwidth to statements following if,  else, elseif,
  " case, select, default, do, until, while, for, start
  if prevline =~? '^\s*\<\(if\|else\%(if\)\?\|for\|repeat\|do\|while\|sub\)\>' 
    let ind = ind + shiftwidth()
  endif

  " Subtract a shiftwidth from else, elseif, end(if|while|for), until
  let line = getline(v:lnum)
  if line =~? '^\s*\(else\|elseif\|loop\|until\|end\%(if\|while\|for\|sub\)\)\>'
    let ind = ind - shiftwidth()
  endif

  return ind
endfunction

function HamGetFreeIndent()
  " Find the previous non-blank line
  let lnum = prevnonblank(v:lnum - 1)

  " Use zero indent at the top of the file
  if lnum == 0
    return 0
  endif

  let ind=HamGetIndent(lnum)
  return ind
endfunction

" vim:sw=2 tw=80
PK�j�ZL=�qqvim80/indent/postscr.vimnu�[���" PostScript indent file
" Language:    PostScript
" Maintainer:  Mike Williams <mrw@netcomuk.co.uk>
" Last Change: 2nd July 2001
"

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal indentexpr=PostscrIndentGet(v:lnum)
setlocal indentkeys+=0],0=>>,0=%%,0=end,0=restore,0=grestore indentkeys-=:,0#,e

" Catch multiple instantiations
if exists("*PostscrIndentGet")
  finish
endif

function! PostscrIndentGet(lnum)
  " Find a non-empty non-comment line above the current line.
  " Note: ignores DSC comments as well!
  let lnum = a:lnum - 1
  while lnum != 0
    let lnum = prevnonblank(lnum)
    if getline(lnum) !~ '^\s*%.*$'
      break
    endif
    let lnum = lnum - 1
  endwhile

  " Hit the start of the file, use user indent.
  if lnum == 0
    return -1
  endif

  " Start with the indent of the previous line
  let ind = indent(lnum)
  let pline = getline(lnum)

  " Indent for dicts, arrays, and saves with possible trailing comment
  if pline =~ '\(begin\|<<\|g\=save\|{\|[\)\s*\(%.*\)\=$'
    let ind = ind + shiftwidth()
  endif

  " Remove indent for popped dicts, and restores.
  if pline =~ '\(end\|g\=restore\)\s*$'
    let ind = ind - shiftwidth()

  " Else handle immediate dedents of dicts, restores, and arrays.
  elseif getline(a:lnum) =~ '\(end\|>>\|g\=restore\|}\|]\)'
    let ind = ind - shiftwidth()

  " Else handle DSC comments - always start of line.
  elseif getline(a:lnum) =~ '^\s*%%'
    let ind = 0
  endif

  " For now catch excessive left indents if they occur.
  if ind < 0
    let ind = -1
  endif

  return ind
endfunction

" vim:sw=2
PK�j�Z�lD�LLvim80/macros/less.shnuȯ��#!/bin/sh
# Shell script to start Vim with less.vim.
# Read stdin if no arguments were given and stdin was redirected.

if test -t 1; then
  if test $# = 0; then
    if test -t 0; then
      echo "Missing filename" 1>&2
      exit
    fi
    vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
  else
    vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
  fi
else
  # Output is not a terminal, cat arguments or stdin
  if test $# = 0; then
    if test -t 0; then
      echo "Missing filename" 1>&2
      exit
    fi
    cat
  else
    cat "$@"
  fi
fi
PK�j�Z��v���vim80/macros/hanoi/posternu�[���Article 2913 of alt.sources:
Path: oce-rd1!hp4nl!mcsun!uunet!munnari.oz.au!metro!cluster!swift!softway!otc!gregm
From: gregm@otc.otca.oz.au (Greg McFarlane)
Newsgroups: comp.sources.d,alt.sources,comp.editors
Subject: VI SOLVES HANOI
Message-ID: <2323@otc.otca.oz>
Date: 19 Feb 91 01:32:14 GMT
Sender: news@otc.otca.oz
Reply-To: gregm@otc.otca.oz.au (Greg McFarlane)
Organization: OTC Development Unit, Australia
Lines: 80
Xref: oce-rd1 comp.sources.d:5702 alt.sources:2913 comp.editors:2313

Submitted-by: gregm@otc.otca.oz.au
Archive-name: hanoi.vi.macros/part01

Everyone seems to be writing stupid Tower of Hanoi programs.
Well, here is the stupidest of them all: the hanoi solving vi macros.

Save this article, unshar it, and run uudecode on hanoi.vi.macros.uu.
This will give you the macro file hanoi.vi.macros.
Then run vi (with no file: just type "vi") and type:
	:so hanoi.vi.macros
	g
and watch it go.

The default height of the tower is 7 but can be easily changed by editing
the macro file.

The disks aren't actually shown in this version, only numbers representing
each disk, but I believe it is possible to write some macros to show the
disks moving about as well. Any takers?

(For maze solving macros, see alt.sources or comp.editors)

Greg
PK�j�Z�Y�IIvim80/macros/hanoi/hanoi.vimnu�[���set remap
set noterse
set wrapscan
" to set the height of the tower, change the digit in the following
" two lines to the height you want (select from 1 to 9)
map t 7
map! t 7
map L 1G/t
X/^0
$P1GJ$An$BGC0e$X0E0F$X/T
@f
@h
$A1GJ@f0l$Xn$PU
map g IL

map J /^0[^t]*$
map X x
map P p
map U L
map A "fyl
map B "hyl
map C "fp
map e "fy2l
map E "hp
map F "hy2l

" initialisations:
" KM	cleanup buffer
" Y	create tower of desired height
" NOQ	copy it and inster a T
" NO	copy this one
" S	change last char into a $
" R	change last char in previous line into a n
" T	insert two lines containing a zero
" V	add a last line containing a backslash
map I KMYNOQNOSkRTV

"create empty line
map K 1Go

"delete to end of file
map M dG

"yank one line
map N yy

"put
map O p

"delete more than height-of-tower characters
map q tllD

"create a tower of desired height
map Y o0123456789Z0q

"insert a T in column 1
map Q 0iT

"substitute last character with a n
map R $rn

"substitute last character with a $
map S $r$

"insert two lines containing a zero
map T ko0
0



"add a backslash at the end
map V Go/
PK�j�Z�"�W��vim80/macros/hanoi/click.menu�[���

See Vim solve the towers of Hanoi!

Instructions:
   type ":so hanoi.vim<RETURN>" to load the macros
   type "g" to start it

and watch it go.

     to quit type ":q!<RETURN>"
to interrupt type CTRL-C

(This text will disappear as soon as you type "g")
PK�j�Z[.z``vim80/macros/README.txtnu�[���The macros in the maze, hanoi and urm directories can be used to test Vim for
vi compatibility.  They have been written for vi to show its unlimited
possibilities.	The life macros can be used for performance comparisons.

hanoi	Macros that solve the tower of hanoi problem.
life	Macros that run Conway's game of life.
maze	Macros that solve a maze (amazing!).
urm	Macros that simulate a simple computer: "Universal Register Machine"



The other files contain some handy utilities.  They also serve as examples for
how to use Vi and Vim functionality.

less.sh + less.vim	make Vim work like less (or more)



The following have been moved to an optional package.  Add the command to your
vimrc file to use the package:

packadd! dvorak		" Dvorak keyboard support; adds mappings

packadd! editexisting	" when editing a file that is already edited with
			" another Vim instance, go to that Vim instance

packadd! justify	" justifying text.

packadd! matchit	" makes the % command work better

packadd! shellmenu	" menus for editing shell scripts in the GUI version

packadd! swapmouse	" swap left and right mouse buttons
PK�j�Zs�w���vim80/macros/less.vimnu�[���" Vim script to work like "less"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Mar 31

" Avoid loading this file twice, allow the user to define his own script.
if exists("loaded_less")
  finish
endif
let loaded_less = 1

" If not reading from stdin, skip files that can't be read.
" Exit if there is no file at all.
if argc() > 0
  let s:i = 0
  while 1
    if filereadable(argv(s:i))
      if s:i != 0
	sleep 3
      endif
      break
    endif
    if isdirectory(argv(s:i))
      echomsg "Skipping directory " . argv(s:i)
    elseif getftime(argv(s:i)) < 0
      echomsg "Skipping non-existing file " . argv(s:i)
    else
      echomsg "Skipping unreadable file " . argv(s:i)
    endif
    echo "\n"
    let s:i = s:i + 1
    if s:i == argc()
      quit
    endif
    next
  endwhile
endif

set nocp
syntax on
set so=0
set hlsearch
set incsearch
nohlsearch
" Don't remember file names and positions
set viminfo=
set nows
" Inhibit screen updates while searching
let s:lz = &lz
set lz

" Allow the user to define a function, which can set options specifically for
" this script.
if exists('*LessInitFunc')
  call LessInitFunc()
endif

" Used after each command: put cursor at end and display position
if &wrap
  noremap <SID>L L0:redraw<CR>:file<CR>
  au VimEnter * normal! L0
else
  noremap <SID>L Lg0:redraw<CR>:file<CR>
  au VimEnter * normal! Lg0
endif

" When reading from stdin don't consider the file modified.
au VimEnter * set nomod

" Can't modify the text
set noma

" Give help
noremap h :call <SID>Help()<CR>
map H h
fun! s:Help()
  echo "<Space>   One page forward          b         One page backward"
  echo "d         Half a page forward       u         Half a page backward"
  echo "<Enter>   One line forward          k         One line backward"
  echo "G         End of file               g         Start of file"
  echo "N%        percentage in file"
  echo "\n"
  echo "/pattern  Search for pattern        ?pattern  Search backward for pattern"
  echo "n         next pattern match        N         Previous pattern match"
  if &foldmethod != "manual"
  echo "\n"
    echo "zR        open all folds            zm        increase fold level"
  endif
  echo "\n"
  echo ":n<Enter> Next file                 :p<Enter> Previous file"
  echo "\n"
  echo "q         Quit                      v         Edit file"
  let i = input("Hit Enter to continue")
endfun

" Scroll one page forward
noremap <script> <Space> :call <SID>NextPage()<CR><SID>L
map <C-V> <Space>
map f <Space>
map <C-F> <Space>
map <PageDown> <Space>
map <kPageDown> <Space>
map <S-Down> <Space>
" If 'foldmethod' was changed keep the "z" commands, e.g. "zR" to open all
" folds.
if &foldmethod == "manual"
  map z <Space>
endif
map <Esc><Space> <Space>
fun! s:NextPage()
  if line(".") == line("$")
    if argidx() + 1 >= argc()
      " Don't quit at the end of the last file
      return
    endif
    next
    1
  else
    exe "normal! \<C-F>"
  endif
endfun

" Re-read file and page forward "tail -f"
map F :e<CR>G<SID>L:sleep 1<CR>F

" Scroll half a page forward
noremap <script> d <C-D><SID>L
map <C-D> d

" Scroll one line forward
noremap <script> <CR> <C-E><SID>L
map <C-N> <CR>
map e <CR>
map <C-E> <CR>
map j <CR>
map <C-J> <CR>
map <Down> <CR>

" Scroll one page backward
noremap <script> b <C-B><SID>L
map <C-B> b
map <PageUp> b
map <kPageUp> b
map <S-Up> b
map w b
map <Esc>v b

" Scroll half a page backward
noremap <script> u <C-U><SID>L
noremap <script> <C-U> <C-U><SID>L

" Scroll one line backward
noremap <script> k <C-Y><SID>L
map y k
map <C-Y> k
map <C-P> k
map <C-K> k
map <Up> k

" Redraw
noremap <script> r <C-L><SID>L
noremap <script> <C-R> <C-L><SID>L
noremap <script> R <C-L><SID>L

" Start of file
noremap <script> g gg<SID>L
map < g
map <Esc>< g
map <Home> g
map <kHome> g

" End of file
noremap <script> G G<SID>L
map > G
map <Esc>> G
map <End> G
map <kEnd> G

" Go to percentage
noremap <script> % %<SID>L
map p %

" Search
noremap <script> / H$:call <SID>Forward()<CR>/
if &wrap
  noremap <script> ? H0:call <SID>Backward()<CR>?
else
  noremap <script> ? Hg0:call <SID>Backward()<CR>?
endif

fun! s:Forward()
  " Searching forward
  noremap <script> n H$nzt<SID>L
  if &wrap
    noremap <script> N H0Nzt<SID>L
  else
    noremap <script> N Hg0Nzt<SID>L
  endif
  cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
endfun

fun! s:Backward()
  " Searching backward
  if &wrap
    noremap <script> n H0nzt<SID>L
  else
    noremap <script> n Hg0nzt<SID>L
  endif
  noremap <script> N H$Nzt<SID>L
  cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
endfun

call s:Forward()
cunmap <CR>

" Quitting
noremap q :q<CR>

" Switch to editing (switch off less mode)
map v :silent call <SID>End()<CR>
fun! s:End()
  set ma
  if exists('s:lz')
    let &lz = s:lz
  endif
  unmap h
  unmap H
  unmap <Space>
  unmap <C-V>
  unmap f
  unmap <C-F>
  unmap z
  unmap <Esc><Space>
  unmap F
  unmap d
  unmap <C-D>
  unmap <CR>
  unmap <C-N>
  unmap e
  unmap <C-E>
  unmap j
  unmap <C-J>
  unmap b
  unmap <C-B>
  unmap w
  unmap <Esc>v
  unmap u
  unmap <C-U>
  unmap k
  unmap y
  unmap <C-Y>
  unmap <C-P>
  unmap <C-K>
  unmap r
  unmap <C-R>
  unmap R
  unmap g
  unmap <
  unmap <Esc><
  unmap G
  unmap >
  unmap <Esc>>
  unmap %
  unmap p
  unmap n
  unmap N
  unmap q
  unmap v
  unmap /
  unmap ?
  unmap <Up>
  unmap <Down>
  unmap <PageDown>
  unmap <kPageDown>
  unmap <PageUp>
  unmap <kPageUp>
  unmap <S-Down>
  unmap <S-Up>
  unmap <Home>
  unmap <kHome>
  unmap <End>
  unmap <kEnd>
endfun

" vim: sw=2
PK�j�Z�pN�~~vim80/macros/life/life.vimnu�[���" Macros to play Conway's Game of Life in vi
" Version 1.0m: edges wrap
" by Eli-the-Bearded Benjamin Elijah Griffin <vim@eli.users.panix.com>
" Sept 1996
" This file may be free distributed so long as these credits remain unchanged.
"
" Modified by Bram Moolenaar (Bram@vim.org), 1996 Sept 10
" - Made it quite a bit faster, but now needs search patterns in the text
" - Changed the order of mappings to top-down.
" - Made "g" run the whole thing, "C" run one generation.
" - Added support for any uppercase character instead of 'X'
"
" Rules:
"   If a germ has 0 or 1 live neighbors it dies of loneliness
"   If a germ has 2 or 3 live neighbors it survives
"   If a germ has 4 to 8 live neighbors it dies of starvation
"   If an empty box has 3 live neighbors a new germ is born
"
"   A new born germ is an "A".	Every generation it gets older: B, C, etc.
"   A germ dies of old age when it reaches "Z".
"
" Notice the rules do not mention edges. This version has the edges wrap
" around. I have an earlier version that offers the option of live edges or
" dead edges. Email me if you are interested. -Eli-
"
" Note: This is slow!  One generation may take up to ten minutes (depends on
" your computer and the vi version).
"
" Quite a lot of the messy stuff is to work around the vi error "Can't yank
" inside global/macro".  Still doesn't work for all versions of vi.
"
" To use these macros:
"
" vi		start vi/vim
"
" :so life.mac	Source this file
"
" g		'g'o!  runs everything until interrupted: "IR".
"
" I		Initialize everything. A board will be drawn at the end
"		of the current buffer. All line references in these macros
"		are relative to the end of the file and playing the game
"		can be done safely with any file as the current buffer.
"
"	Change the left field with spaces and uppercase letters to suit
"	your taste.
"
" C		'C'ompute one generation.
" +		idem, time running one generation.
" R		'R'un 'C'ompute until interrupted.
" i<nr><Esc>z	Make a number the only thing on the current line and use
"		'z' to time that many generations.
"
" Time to run 30 generations on my 233 AMD K6 (FreeBSD 3.0):
"   vim   5.4 xterm	51 sec
"   gvim  5.4 Athena	42 sec
"   gvim  5.4 Motif	42 sec
"   gvim  5.4 GTK	50 sec
"   nvi   1.79 xterm	58 sec
"   vi	  3.7 xterm	2 min 30 sec
"   Elvis 2.1 xterm	7 min 50 sec
"   Elvis 2.1 X11	6 min 31 sec
"
" Time to run 30 generations on my 850 AMD Duron (FreeBSD 4.2):
"   vim   5.8   xterm    21 sec
"   vim   6.0   xterm    24 sec
"   vim   6.0   Motif    32 sec
"   nvi   1.79  xterm	 29 sec
"   vi    3.7   xterm    32 sec
"   elvis 2.1.4 xterm    34 sec
"
" And now the macros, more or less in top-down order.
"
"  ----- macros that can be used by the human -----
"
" 'g'o: 'I'nitialize and then 'R'un 'C'ompute recursively (used by the human)
map g IR
"
"
" 'R'un 'C'ompute recursively (used by the human and 'g'o)
map R CV
" work around "tail recursion" problem in vi, "V" == "R".
map V R
"
"
" 'I'nitialize the board (used by the human and 'g'o)
map I G)0)0)0)0)1)0)0)2)0)0)0)0,ok,-11k,-,R,IIN
"
"
" 'C'ompute next generation (used by the human and others)
map C T>>>>>>>>B&
"
"
" Time running one generation (used by the human)
map + <1C<2
"
"
" Time running N generations, where N is the number on the current line.
" (used by the human)
map z ,^,&,*,&<1,*<2
"
"  ----- END of macros that can be used by the human -----
"
"  ----- Initialisation -----
"
map ,- :s/./-/g
map ,o oPut 'X's in the left box, then hit 'C' or 'R'
map ,R 03stop
"
" Write a new line (used by 'I'nitialize board)
map )0 o-                    --....................--....................-
map )1 o-        VIM         --....................--....................-
map )2 o-       LIVES        --....................--....................-
"
"
" Initialisation of the pattern/command to execute for working out a square.
" Pattern is: "#<germ><count>"
" where <germ>   is " " if the current germ is dead, "X" when living.
"       <count>  is the number of living neighbours (including current germ)
"                expressed in X's
"
map ,Il8 O#XXXXXXXXXX .`a22lr 
map ,Id8 o# XXXXXXXX .`a22lr 
map ,Il7 o#XXXXXXXXX .`a22lr 
map ,Id7 o# XXXXXXX .`a22lr 
map ,Il6 o#XXXXXXXX .`a22lr 
map ,Id6 o# XXXXXX .`a22lr 
map ,Il5 o#XXXXXXX .`a22lr 
map ,Id5 o# XXXXX .`a22lr 
map ,Il4 o#XXXXXX .`a22lr 
map ,Id4 o# XXXX .`a22lr 
map ,Il3 o#XXXXX .,a
map ,Id3 o# XXX .`a22lrA
map ,Il2 o#XXXX .,a
map ,Id2 o# XX .`a22lr 
map ,Il1 o#XXX .`a22lr 
map ,Id1 o# X .`a22lr 
map ,Il0 o#XX .`a22lr 
map ,Id0 o#  .`a22lr 
"
" Patterns used to replace a germ with it's next generation
map ,Iaa o=AB =BC =CD =DE =EF =FG =GH =HI =IJ =JK =KL =LM =MN =NO =OP =PQ =QR
map ,Iab o=RS =ST =TU =UV =VW =WX =XY =YZ =Z 
"
" Insert the searched patterns above the board
map ,IIN G?^top
,Il8,Id8,Il7,Id7,Il6,Id6,Il5,Id5,Il4,Id4,Il3,Id3,Il2,Id2,Il1,Id1,Il0,Id0,Iaa,Iab
"
"  ----- END of Initialisation -----
"
"  ----- Work out one line -----
"
" Work out 'T'op line (used by show next)
map T G,c2k,!9k,@,#j>2k,$j
"
" Work out 'B'ottom line (used by show next)
map B ,%k>,$
"
" Work out a line (used by show next, work out top and bottom lines)
map > 0 LWWWWWWWWWWWWWWWWWW,rj
"
" Refresh board (used by show next)
map & :%s/^\(-[ A-Z]*-\)\(-[ A-Z]*-\)\(-[.]*-\)$/\2\3\3/
"
"
" Work around vi multiple yank/put in a single macro limitation
" (used by work out top and/or bottom line)
map ,$ dd
map ,% "cp
map ,! "byy
map ,@ "cyy
map ,# "bP
map ,c c$
"
"  ----- END of Work out one line -----
"
"  ----- Work out one square -----
"
" The next three work out a square: put all nine chars around the current
" character on the bottom line (the bottom line must be empty when starting).
"
" 'W'ork out a center square (used by work out line)
map W makh,3`ah,3`ajh,3(
"
"
" Work out a 'L'eft square (used by work out line)
map L makf-h,1`ak,2`af-h,1`a,2`ajf-h,1`aj,2(
"
"
" Work out a 'R'ight square (used by work out line)
map ,r makh,2`akF-l,1`ah,2`aF-l,1`ajh,2`ajF-l,1(
"
" 'M'ove a character to the end of the file (used by all work out square
" macros)
"
map ,1 y G$p
map ,2 2y G$p
map ,3 3y G$p
"
"
"  ----- END of Work out one square -----
"
"  ----- Work out one germ -----
"
" Generate an edit command that depends on the number of living in the last
" line, and then run the edit command. (used by work out square).
" Leaves the cursor on the next character to be processed.
"
map ( ,s,i,X0i?^#A 
0,df.l,Y21h
"
" Delete 's'paces (deads);
" The number of remaining characters is the number of living neighbours.
map ,s :.g/ /s///g
"
" Insert current character in the last line
map ,i `ay GP
"
" Replace any uppercase letter with 'X';
map ,X :.g/[A-Z]/s//X/g
"
" Delete and execute the rest of the line
map ,d "qd$@q
"
" Yank and execute the rest of the line
map ,Y "qy$@q
"
" Yank the character under the cursor
map ,j y 
"
" Put the current cut buffer after the cursor
map ,m p
"
" Delete the character under the cursor
map ,n x
"
" Replace a character by it's next, A --> B,  B --> C, etc.
map ,a `a,jGi?=,ma
0,dll,j`a21l,ml,nh
"
"  ----- END of Work out one germ -----
"
"  ----- timing macros  -----
"
" Get current date (used by time a generation)
map << :r!date
map <1 G?^top
O<<
map <2 G?^top
k<<
"
"
" Turn number on current line into edit command (used by time N generations)
map ,^ AiC
"
"
" Delete current line and save current line (used by time N generations)
map ,& 0"gd$
"
"
" Run saved line (used by time N generations)
map ,* @g
"
"  ----- END of timing macros  -----
"
" End of the macros.
PK�j�Zb�=a��vim80/macros/life/click.menu�[���
To run the "Conway's game of life" macros:

  1.  Type ":so life.vim".  This loads the macros.
  2.  Type "g" to run the macros.
  3.  Type CTRL-C to interrupt.
  4.  Type ":q!" to get out.

See life.vim for more advanced usage.
PK�j�Z�4�  vim80/macros/less.batnu�[���@echo off
rem batch file to start Vim with less.vim.
rem Read stdin if no arguments were given.
rem Written by Ken Takata.

if "%1"=="" (
  vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
) else (
  vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" %*
)
PK�j�Z�|��ssvim80/macros/shellmenu.vimnu�[���" Load the shellmenu package.
" For those users who were loading the shellmenu plugin from here.
packadd shellmenu
PK�j�Z�z�u/u/vim80/macros/maze/maze_macnu�[���" These macros 'solve' any maze produced by the a-maze-ing maze.c program.
"
" First, a bit of maze theory.
" If you were put into a maze, a guaranteed method of finding your way
" out of the maze is to put your left hand onto a wall and just keep walking,
" never taking your hand off the wall. This technique is only guaranteed to
" work if the maze does not have any 'islands', or if the 'exit' is on the
" same island as your starting point. These conditions hold for the mazes
" under consideration.
"
" Assuming that the maze is made up of horizontal and vertical walls spaced
" one step apart and that you can move either north, south, east or west,
" then you can automate this procedure by carrying out the following steps.
"
" 1. Put yourself somewhere in the maze near a wall.
" 2. Check if you have a wall on your left. If so, go to step 4.
" 3. There is no wall on your left, so turn on the spot to your left and step
"    forward by one step and repeat step 2.
" 4. Check what is directly in front of you. If it is a wall, turn on the
"    spot to your right by 90 degrees and repeat step 4.
" 5. There is no wall in front of you, so step forward one step and
"    go to step 2.
"
" In this way you will cover all the corridors of the maze (until you get back
" to where you started from, if you do not stop).
"
" By examining a maze produced by the maze.c program you will see that
" each square of the maze is one character high and two characters wide.
" To go north or south, you move by a one character step, but to move east or
" west you move by a two character step. Also note that in any position
" there are four places where walls could be put - to the north, to the south,
" to the east and to the west.
" A wall exists to the north of you if the character to the north of
" you is a _ (otherwise it is a space).
" A wall exists to the east of you if the character to the east of you
" is a | (otherwise it is a .).
" A wall exists to the west of you if the character to the west of you
" is a | (otherwise it is a .).
" A wall exists to the south of you if the character where you are
" is a _ (otherwise it is a space).
"
" Note the difference for direction south, where we must examine the character
" where the cursor is rather than an adjacent cell.
"
" If you were implementing the above procedure is a normal computer language
" you could use a loop with if statements and continue statements,
" However, these constructs are not available in vi macros so I have used
" a state machine with 8 states. Each state signifies the direction you
" are going in and whether or not you have checked if there is a wall on
" your left.
"
" The transition from state to state and the actions taken on each transition
" are given in the state table below.
" The names of the states are N1, N2, S1, S2, E1, E2, W1, W2, where each letter
" stands for a direction of the compass, the number 1 indicates that the we
" have not yet checked to see if there is a wall on our left and the number 2
" indicates that we have checked and there is a wall on our left.
"
" For each state we must consider the existence or not of a wall in a
" particular direction. This direction is given in the following table.
"
" NextChar table:
" state        direction       vi commands
"  N1              W               hF
"  N2              N               kF
"  S1              E               lF
"  S2              S               F
"  E1              N               kF
"  E2              E               lF
"  W1              S               F
"  W2              W               hF
"
" where F is a macro which yanks the character under the cursor into
" the NextChar register (n).
"
" State table:
" In the 'vi commands' column is given the actions to carry out when in
" this state and the NextChar is as given. The commands k, j, ll, hh move
" the current position north, south, east and west respectively. The
" command mm is used as a no-op command.
" In the 'next state' column is given the new state of the machine after
" the action is carried out.
"
" current state        NextChar    vi commands  next state
"      N1                 .            hh          W1
"      N1                 |            mm          N2
"      N2                 _            mm          E1
"      N2               space          k           N1
"      S1                 .            ll          E1
"      S1                 |            mm          S2
"      S2                 _            mm          W1
"      S2               space          j           S1
"      E1               space          k           N1
"      E1                 _            mm          E2
"      E2                 |            mm          S1
"      E2                 .            ll          E1
"      W1               space          j           S1
"      W1                 _            mm          W2
"      W2                 |            mm          N1
"      W2                 .            hh          W1
"
"
" Complaint about vi macros:
" It seems that you cannot have more than one 'undo-able' vi command
" in the one macro, so you have to make lots of little macros and
" put them together.
"
" I'll explain what I mean by an example. Edit a file and
" type ':map Q rXY'. This should map the Q key to 'replace the
" character under the cursor with X and yank the line'.
" But when I type Q, vi tells me 'Can't yank inside global/macro' and
" goes into ex mode. However if I type ':map Q rXT' and ':map T Y',
" everything is OK. I`m doing all this on a Sparcstation.
" If anyone reading this has an answer to this problem, the author would
" love to find out. Mail to gregm@otc.otca.oz.au.
"
" The macros:
" The macro to run the maze solver is 'g'. This simply calls two other
" macros: I, to initialise everything, and L, to loop forever running
" through the state table.
" Both of these macros are long sequences of calls to other macros. All
" of these other macros are quite simple and so to understand how this
" works, all you need to do is examine macros I and L and learn what they
" do (a simple sequence of vi actions) and how L loops (by calling U, which
" simply calls L again).
"
" Macro I sets up the state table and NextChar table at the end of the file.
" Macro L then searches these tables to find out what actions to perform and
" what state changes to make.
"
" The entries in the state table all begin with a key consisting of the
" letter 's', the current state and the NextChar.  After this is the
" action to take in this state and after this is the next state to change to.
"
" The entries in the NextChar table begin with a key consisting of the
" letter 'n' and the current state. After this is the action to take to
" obtain NextChar - the character that must be examined to change state.
"
" One way to see what each part of the macros is doing is to type in the
" body of the macros I and L manually (instead of typing 'g') and see
" what happens at each step.
"
" Good luck.
"
" Registers used by the macros:
" s (State)        - holds the state the machine is in
" c (Char)         - holds the character under the current position
" m (Macro)        - holds a vi command string to be executed later
" n (NextChar)     - holds the character we must examine to change state
" r (Second Macro) - holds a second vi command string to be executed later
"
set remap
set nomagic
set noterse
set wrapscan
"
"================================================================
" g - go runs the whole show
"        I - initialise
"        L - then loop forever
map g   IL
"
"================================================================
" I - initialise everything before running the loop
"   G$?.^M - find the last . in the maze
"        ^ - replace it with an X (the goal)
"   GYKeDP - print the state table and next char table at the end of the file
"       0S - initialise the state of the machine to E1
"      2Gl - move to the top left cell of the maze
map I   G$?.
^GYKeDP0S2Gl
"
"================================================================
" L - the loop which is executed forever
"        Q - save the current character in the Char register
"        A - replace the current character with an 'O'
"       ma - mark the current position with mark 'a'
"      GNB - on bottom line, create a command to search the NextChar table
"            for the current state
" 0M0E@m^M - yank the command into the Macro register and execute it
"       wX - we have now found the entry in the table, now yank the
"            following word into the Macro register
"     `a@m - go back to the current position and execute the macro, this will
"            yank the NextChar in register n
"   GT$B$R - on bottom line, create a command to search the state table
"            for the current state and NextChar
" 0M0E@m^M - yank the command into the Macro register and execute it
"      2WS - we have now found the entry in the table, now yank the
"            next state into the State macro
"       bX - and yank the action corresponding to this state table entry
"            into the Macro register
"      GVJ - on bottom line, create a command to restore the current character
"       0H - and save the command into the second Macro register
"     `a@r - go back to the current position and exectute the macro to restore
"            the current character
"       @m - execute the action associated with this state
"        U - and repeat
map L   QAmaGNB0M0E@m
wX`a@mGT$B$R0M0E@m
2WSbXGVJ0H`a@r@mU
"
"================================================================
" U - no tail recursion allowed in vi macros so cheat and set U = L
map U   L
"
"================================================================
" S - yank the next two characters into the State register
map S   "sy2l
"
"================================================================
" Q - save the current character in the Char register
map Q   "cyl
"
"================================================================
" A - replace the current character with an 'O'
map A   rO
"
"================================================================
" N - replace this line with the string 'n'
map N   C/n
"
"================================================================
" B - put the current state
map B   "sp
"
"================================================================
" M - yank this line into the Macro register
map M   "my$
"
"================================================================
" E - delete to the end of the line
map E   d$
"
"================================================================
" X - yank this word into the Macro register
map X   "myt 
"
"================================================================
" T - replace this line with the string 's'
map T   C/s
"
"================================================================
" R - put NextChar
map R   "np
"
"================================================================
" V - add the letter 'r' (the replace vi command)
map V   ar
"
"================================================================
" J - restore the current character
map J   "cp
"
"================================================================
" H - yank this line into the second Macro register
map H   "ry$
"
"================================================================
" F - yank NextChar (this macro is called from the Macro register)
map F   "nyl
"
"================================================================
" ^ - replace the current character with an 'X'
map ^   rX
"
"================================================================
" YKeDP - create the state table, NextChar table and initial state
" Note that you have to escape the bar character, since it is special to
" the map command (it indicates a new line).
map Y   osE1  k  N1       sE1_ mm E2       sE2| mm S1       sE2. ll E1
map K   osW1  j  S1       sW1_ mm W2       sW2| mm N1       sW2. hh W1
map e   osN1. hh W1       sN1| mm N2       sN2  k  N1       sN2_ mm E1
map D   osS1. ll E1       sS1| mm S2       sS2  j  S1       sS2_ mm W1
map P   onE1 kF nE2 lF nW1 G$JF nW2 hF nN1 hF nN2 kF nS1 lF nS2 G$JF 
E1
PK�j�Z&���FFvim80/macros/maze/README.txtnu�[���To run the maze macros with Vim:

	vim -u maze_mac maze_5.78
	press "g"

The "-u maze.mac" loads the maze macros and skips loading your .vimrc, which
may contain settings and mappings that get in the way.


The original README:

To prove that you can do anything in vi, I wrote a couple of macros that
allows vi to solve mazes. It will solve any maze produced by maze.c
that was posted to the net recently.

Just follow this recipe and SEE FOR YOURSELF.
	1. run uudecode on the file "maze.vi.macros.uu" to
		produce the file "maze.vi.macros"
	(If you can't wait to see the action, jump to step 4)
	2. compile maze.c with "cc -o maze maze.c"
	3. run maze > maze.out and input a small number (for example 10 if
		you are on a fast machine, 3-5 if slow) which
		is the size of the maze to produce
	4. edit the maze (vi maze.out)
	5. include the macros with the vi command:
		:so maze.vi.macros
	6. type the letter "g" (for "go") and watch vi solve the maze
	7. when vi solves the maze, you will see why it lies
	8. now look at maze.vi.macros and all will be revealed

Tested on a sparc, a sun and a pyramid (although maze.c will not compile
on the pyramid).

Anyone who can't get the maze.c file to compile, get a new compiler,
try maze.ansi.c which was also posted to the net.
If you can get it to compile but the maze comes out looking like a fence
and not a maze and you are using SysV or DOS replace the "27" on the
last line of maze.c by "11"
Thanks to John Tromp (tromp@piring.cwi.nl) for maze.c.
Thanks to antonyc@nntp-server.caltech.edu (Bill T. Cat) for maze.ansi.c.

Any donations should be in unmarked small denomination bills :^)=.

		   ACSnet:  gregm@otc.otca.oz.au
Greg McFarlane	     UUCP:  {uunet,mcvax}!otc.otca.oz.au!gregm
|||| OTC ||	    Snail:  OTC R&D GPO Box 7000, Sydney 2001, Australia
		    Phone:  +61 2 287 3139    Fax: +61 2 287 3299


PK�j�Zү��vim80/macros/maze/posternu�[���Article 2846 of alt.sources:
Path: oce-rd1!hp4nl!mcsun!uunet!munnari.oz.au!metro!otc!gregm
From: gregm@otc.otca.oz.au (Greg McFarlane)
Newsgroups: alt.sources
Subject: VI SOLVES MAZE (commented macros)
Message-ID: <2289@otc.otca.oz>
Date: 10 Feb 91 23:31:02 GMT
Sender: news@otc.otca.oz
Reply-To: gregm@otc.otca.oz.au (Greg McFarlane)
Organization: OTC Development Unit, Australia
Lines: 464

Submitted-by: gregm@otc.otca.oz.au
Archive-name: maze_solving_vi_macros

A real working model. See it walk the maze in front of your very own eyes.

To prove that you can do anything in vi, I wrote a couple of macros that
allows vi to solve mazes. It will solve any maze produced by maze.c
that was posted to the alt.sources last month. (Maze.c is also included
in this posting as well as an example of its output.)

The uncommented version of the macros was sent to alt.sources last month.
However, so many people mailed me requesting the commented version of the
macros that I decided to post it. I have made some modifications to the
original macros to make them easier to follow and also after I learnt
that you can escape the special meaning of '|' in macros by using '^V|'.

Save this article and unshar it. Then read maze.README.

After studying these macros, anyone who cannot write an emacs emulator
in vi macros should just curl up and :q!.

Coming soon to a newsgroup near you: "Vi macros solve Tower of Hanoi",
and a repost of the original "Turing Machine implemented in Vi macros"

Anyone who has a version of these macros for edlin or nroff, please post.
PK�j�Z�ϯrrvim80/macros/maze/maze_5.78nu�[���._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
| ._| . . ._| | |_._._. . ._|_._._._._. ._|_. ._|_._. ._| . ._|_. | . ._._. |
| ._|_| |_. | | | | ._._|_._|_._. . |_. | | | ._._| |_._._| | ._. ._| . . |_|
|_._._._. | ._|_. ._._._. | | ._. |_._. . | ._._| |_. | ._._._. |_. | |_|_| |
| | . |_._| . ._._._| ._._. ._._| | | |_| . | |_. . ._|_| ._._. |_._|_| . | |
|_._|_._._._|_._._._|_|_._._._|_._|_._._._|_._._._|_._._._|_._._._._._._|_._|

See Vim solve a maze!

   type ":so maze_mac<RETURN>" to load the macros

   type "g" to start

to interrupt type "<CTRL-C>"
     to quit type ":q!<RETURN>"

PK�j�Z�U[oovim80/macros/maze/Makefilenu�[���# It's simple...

maze: mazeansi.c
	cc -o maze mazeansi.c

mazeclean: mazeclean.c
	cc -o mazeclean mazeclean.c
PK�j�Z̼i�ddvim80/macros/maze/main.aapnu�[���# Aap recipe to build the maze program
:program maze : mazeansi.c

:program mazeclean : mazeclean.c
PK�j�Z+	Y||vim80/macros/editexisting.vimnu�[���" Load the editexisting package.
" For those users who were loading the editexisting plugin from here.
packadd editexisting
PK�j�Z�겼||vim80/macros/matchit.vimnu�[���" Load the matchit package.
" For those users who were loading the matchit plugin from here.
if 1
    packadd matchit
endif
PK�j�ZE�V�,,vim80/macros/urm/README.txtnu�[���This is another proof that Vim is perfectly compatible with Vi.
The URM macro package was written by Rudolf Koenig ("Rudi")
(rudolf@koeniglich.de) for hpux-vi in August 1991.

Getting started:

type
in your shell:	 vim urm<RETURN>
in vim:		 :so urm.vim<RETURN>
in vim:		 *	(to load the registers and boot the URM-machine :-)
in vim:		 g	(for 'go') and watch the fun. Per default, 3 and 4
			are multiplied. Watch the Program counter, it is
			visible as a komma moving around.

This is a "standard URM" (Universal register machine)  interpreter. The URM
concept is used in theoretical computer science to aid in theorem proving.
Here it proves that vim is a general problem solver (if you bring enough
patience).

The interpreter begins with register 1 (not 0), without macros and more-lines
capability.  A dot marks the end of a program. (Bug: there must be a space
after the dot.)

The registers are the first few lines, beginning with a '>' .
The program is the first line after the registers.
You should always initialize the registers required by the program.

Output register:	line 2
Input registers:	line 2 to ...

Commands:
a<n>		increment register <n>
s<n>		decrement register <n>
<x>;<y>		execute command <x> and then <y>
(<x>)<n>	execute command <x> while register <n> is nonzero
. 		("dot blank")  halt the machine.

Examples:

Add register 2 to register 3:
	(a2;s3)3.
Multiply register 2 with register 3:
	(a4;a5;s2)2; ((a2;s4)4; s3; (a1;a4;s5)5; (a5;s1)1)3.

There are more (complicated) examples in the file examples.
Note, undo may take a while after a division.

PK�j�Z�;�Lvvvim80/macros/urm/urmnu�[���>0
>3
>4
>0
>0
>0
(a4;a5;s2)2; ((a2;s4)4; s3; (a1;a4;s5)5; (a5;s1)1)3. 
_________
O	; =xp ( =x%hp ) @l a @db s @dt . =x0xkdd:ready _end_
o	0 1 2 3 4 5 6 7 8 9 0
_________
INIT main(k), l, b, c, t, u, q, d 

"kT
"lT
"bT
"cT
"tT
"uT
"qT
"dT
=lF'wa/O
fpaw"zdt hp@z0"xD@x@k
=2ldwhp'wiGT'wp0P0"yD@ya =xlwP >0 =x%p I k/>0
ww"ydt 0D@y
'wa/o
fwF'wpi`ar`aF'wffp0"vD@v0"vDp03x@v'wa @c 0 0 0I f0w"wdt 0D@w
`ahmaF'wa  'aa1 > @b 0p0f>w"vdt 0D@v
'wa/o
wfbF'wpi`ar`aF'wffp0"vD@v0"vDp03x@v'wa @u 9 0 0I f9w"wdt 0D@w
`ahmaF'wa  `alr0 > @q 0p0f>w"vdt 0D@v
`ahy2l'wa  `ax >1 @t 0p0/>1
ww"idt 0D@i
=xwhpbldwhp'wpaG$ma0"yD@y@

PK�j�Z�~�``vim80/macros/urm/urm.vimnu�[���map * 1G/INIT
j"iT@i1G/INIT
dG
map g 1G/^[(as;.]
i
>,mkkmw@k
map T y$
map F yl
map = 'kf,
PK�j�ZnW�DDvim80/macros/urm/examplesnu�[���Note that enough temporary registers should be provided for each example.
All should be initialised to 0.

Initial register values for benchmarking: 0,8,3,0,...

Performed on a Xenix 386/16:
Operation [sec, kbyte tmp space]: program

Asym. Diff.[ 7, 4]: (s2;s3)3. 
Abs. Diff. [90,81]: (a1;a4;s2)2; (a2;s1)1; (a1;a5;s3)3; (a3;s1)1; (s2;s3)3; (s5;s4)4; (a2;s5)5. 
Add  [  7,   4]: (a2;s3)3. 
Mult [227, 161]: (a4;a5;s2)2; ((a2;s4)4; s3; (a1;a4;s5)5; (a5;s1)1)3. 
Copy [ 48,  25]: (a1;a3;s2)2; (a2;s1)1. 
sign [ 30,  17]: (a3;s2)2; (a2;(s3)3)3. 
!sign[ 36,  28]: (a3;s2)2; (a2;(s3)3)3; a3; (s3;s2)2; (s3;a2)3.  
Div  [630,1522]: (a9;s2)2; (a2;a10;s3)3; (a3;s2)2; (a2;(s3)3)3; a3; (s3;s2)2; (s3;a2)3; (a2)2;(a2;s9)9;(a3;s10)10; (a9;a10;s2)2; (a11;a12;s3)3; (a2;s12)12; (a3;s9)9; (s2;s3)3; (a3;s2)2; (a2;(s3)3)3; a3; (s3;s2)2; (s3;a2)3; (a1;s2)2; (a2;s10)10; (a3;s11)11; ((a12;a13;s3)3; (a3;s13)13; (s2;s3)3; (a3;s12)12; a14; (s1)1; (a9;a10;s2)2; (a11;a12;s3)3; (a2;s12)12; (a3;s9)9; (s2;s3)3; (a3;s2)2; (a2;(s3)3)3; a3; (s3;s2)2; (s3;a2)3; (a1;s2)2; (a2;s10)10; (a3;s11)11)1; (s2)2; (a2;s14)14. 
PK�j�Z����mmvim80/macros/justify.vimnu�[���" Load the justify package.
" For those users who were loading the justify plugin from here.
packadd justify
PK�j�ZVI�rrvim80/macros/swapmous.vimnu�[���" Load the swapmouse package.
" For those users who were loading the swapmous plugin from here.
packadd swapmouse
PK�j�Z�S��&_&_vim80/tutor/tutor.zh.big5nu�[���===============================================================================
=      �w     ��     �\     Ū   �m V I M  ��  �{ �n   �w�w     ���� 1.5      =
===============================================================================
     vim �O�@�Ө㦳�ܦh�R�O���\��D�`�j�j���s�边�C���_�g�T�A�b���е{��
     ���N�ԲӤ��ФF�C���е{���]�p�ؼЬO���z�@�ǥ��n���򥻩R�O�A�Ӵx���n�o
     �ǩR�O�A�z�N���ܮe���Nvim��@�@�ӳq�Ϊ��U��s�边�ӨϥΤF�C

     �������е{�����e�j���ݭn25-30����A���M�_�z�V�m���ɶ��C

     �C�@�`���R�O�ާ@�N�|��糧��C���˱z�_��媺�@�Ӱƥ��A�M��b�ƥ��W
     �i��V�m(�p�G�z�O�q�L"vimtutor"�ӱҰʱе{���A���򥻤�N�w�g�O�ƥ��F)�C

     ���O�@�I�J���е{���]�p���O�b�ϥΤ��i��Dzߪ��C�]�N�O���A�z�ݭn�q�L
     ����R�O�ӾDzߥ��̥��������T�Ϊk�C�p�G�z�u�O�\Ū�Ӥ��ާ@�A����z�i��
     �|�ܧֿ�ѳo�ǩR�O���I

     �n�F�A�{�b�нT�w�z��Shift-Lock(�j�p�g��w��)�٨S�����U�A�M����L�W
     ���r���� j �����h�����ƨӲ��ʥ��СA����Ĥ@�`�����e�������R���̹��C

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�Ĥ@���Ĥ@�`�J���ʥ���


   ���� �n���ʥ��СA�Ш̷ӻ������O���U h�Bj�Bk�Bl ��C ����

	     ^
	     k		    ���ܡJ h �����_����A�C�����U�N�|�V�����ʡC
       < h	 l >		   l �����_�k��A�C�����U�N�|�V�k���ʡC
	     j			   j ��ݰ_�ӫܶH�@��y�ݤ�V�¤U���b�Y�C
	     v

  1. ��H�N�b�̹������ʥ��СA���ܱzı�o�ΪA����C

  2. ���U�U���(j)�A����X�{�����_�U��C

---> �{�b�z���Ӥw�g�Ƿ|�p�󲾰ʨ�U�@���a�C

  3. �{�b�ШϥΤU���A�N���в��ʨ�ĤG���C

���ܡJ�p�G�z�����T�w�z�ҫ��U���r���A�Ы��U<ESC>��^�쥿�`(Normal)�Ҧ��C
      �M��A���q��L��J�z�Q�n���R�O�C

���ܡJ�������]�ॿ�`�u�@���C���O�ϥ�hjkl��A�b�ߺD����z�N���ֳt
      �a�b�̹����|�B���ʥ��ФF�C

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�Ĥ@���ĤG�`�JVIM���i�J�M�h�X


  !! �S�O���ܡJ�q�о\Ū���㥻�@�`�����e�A�M��~����H�U����Ѫ��R�O�C

  1. �Ы�<ESC>��(�o�O���F�T�O�z�B�b���`�Ҧ�)�C

  2. �M���J�J			:q! <�^��>

---> �o�ؤ覡���h�X�s�边�����|�O�s�z�i�J�s�边�H�өҰ�����ʡC
     �p�G�z�Q�O�s���A�h�X�A�п�J�J
				:wq  <�^��>

  3. �p�G�z�ݨ�F�R�O�洣�ܲšA�п�J���a�z�^�쥻�е{���R�O�A���N�O�J

		vimtutor <�^��>

     �q�`���p�U�z�]�i�H�γo�ؤ覡�J

		vim tutor <�^��>

---> �o�̪� 'vim' ��ܶi�Jvim�s�边�A�� 'tutor'�h�O�z�dzƭn�s�誺���C

  4. �p�G�z�۫H�w�g�c�c�O��F�o�ǨB�J���ܡA�бq�B�J1�����B�J3�h�X�A�M
     ��A���i�J�s�边�C���۱N���в��ʨ�Ĥ@���ĤT�`���~��ڭ̪��е{���ѡC

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�Ĥ@���ĤT�`�J�奻�s�褧�R��


   ** �b���`(Normal)�Ҧ��U�A�i�H���U x ��ӧR�����ЩҦb��m���r�šC**

  1. �бN���в��ʨ쥻�`���U���аO�� ---> �����@��C

  2. ���F�ץ���J���~�A�бN���в��ܷdzƧR�����r�Ū���m�B�C

  3. �M���U x ��N���~�r�ŧR�����C

  4. ���_�B�J2��B�J4�A����y�l�ץ�����C

---> The ccow jumpedd ovverr thhe mooon.

  5. �n�F�A�Ӧ�w�g�ץ��F�A�U�@�`���e�O�Ĥ@���ĥ|�`�C

�S�O���ܡJ�b�z�s����е{�ɡA���n�j��O�СC�O��@�I�J�b�ϥΤ��DzߡC



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �Ĥ@���ĥ|�`�J�奻�s�褧���J


	 ** �b���`�Ҧ��U�A�i�H���U i ��Ӵ��J�奻�C**

  1. �бN���в��ʨ쥻�`���U���аO�� ---> ���Ĥ@��C

  2. ���F�ϱo�Ĥ@�椺�e�p�P�_�ĤG��A�бN���в��ܤ奻�Ĥ@�Ӧr�ŷdzƴ��J
     ����m�C

  3. �M���U i ��A���ۿ�J���n���奻�r�šC

  4. �Ҧ��奻���ץ������A�Ы��U <ESC> ���^���`�Ҧ��C
     ���_�B�J2�ܨB�J4�H�K�ץ��y�l�C

---> There is text misng this .
---> There is some text missing from this line.

  5. �p�G�z��奻���J�ާ@�w�g�ܺ��N�A�б��۾\Ū�U�����p���C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �Ĥ@���p��


  1. ���Цb�̹��奻�������ʬJ�i�H�νb�Y��A�]�i�H�ϥ� hjkl �r����C
	 h (����)	j (�U��)       k (�W��)	    l (�k��)

  2. ���i�Jvim�s�边(�q�R�O�洣�ܲ�)�A�п�J�Jvim ���W <�^��>

  3. ���h�Xvim�s�边�A�п�J�H�U�R�O���Ҧ��ק�J

	<ESC>   :q!	 <�^��>

     �Ϊ̿�J�H�U�R�O�O�s�Ҧ��ק�J

	<ESC>   :wq	 <�^��>

  4. �b���`�Ҧ��U�R�����ЩҦb��m���r�šA�Ы��J x

  5. �b���`�Ҧ��U�n�b���ЩҦb��m�}�l���J�奻�A�Ы��J

	 i     ��J���n�奻	<ESC>

�S�O���ܡJ���U <ESC> ��|�a�z�^�쥿�`�Ҧ��Ϊ̨����@�Ӥ�����Ϊ̳�������
���R�O�C

�n�F�A�Ĥ@���즹����C�U�����U���~��ĤG�������e�C


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�ĤG���Ĥ@�`�J�R����R�O


	    ** ��J dw �i�H�q���гB�R���ܤ@�ӳ�r/���������C**

  1. �Ы��U <ESC> ��T�O�z�B�_���`�Ҧ��C

  2. �бN���в��ʨ쥻�`���U���аO�� ---> �����@��C

  3. �бN���в��ܷdzƭn�R���������}�l�C

  4. ���ۿ�J dw �R�����ӳ��C

  �S�O���ܡJ�z�ҿ�J�� dw �|�b�z��J���P�ɥX�{�b�̹����̫�@��C�p�G�z��
  �J���~�A�Ы��U <ESC> �����A�M�᭫�s�A�ӡC

---> There are a some words fun that don't belong paper in this sentence.

  5. ���_�B�J3�ܨB�J4�A���ܥy�l�ץ������C�����~��ĤG���ĤG�`���e�C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      �ĤG���ĤG�`�J��L�R����R�O


		   ** ��J d$ �q��e���ЧR����楽�C**

  1. �Ы��U <ESC> ��T�O�z�B�_���`�Ҧ��C

  2. �бN���в��ʨ쥻�`���U���аO�� ---> �����@��C

  3. �бN���в��ʨ�Ӧ檺����(�]�N�O�b�Ĥ@���I����.���᭱)�C

  4. �M���J d$ �q���гB�R�ܷ�e�����C

---> Somebody typed the end of this line twice. end of this line twice.


  5. ���~��Dz߲ĤG���ĤT�`�N���D�O���^�ƤF�C





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �ĤG���ĤT�`�J��_�R�O�M��H


  �R���R�O d ���榡�p�U�J

	 [number]   d	object	    �Ϊ�     d	 [number]   object

  ��N�p�U�J
    number - �N����R�O������(�i�ﶵ�A�ʬٳ]�m�� 1 )�C
    d - �N��R���C
    object - �N��R�O�ҭn�ާ@����H(�U�����������)�C

  �@��²�u����H�C��J
    w - �q��e���з�e��m�����r/�������A�]�A�Ů�C
    e - �q��e���з�e��m�����r/�������A���O *��* �]�A�Ů�C
    $ - �q��e���з�e��m�����e�楽�C

�S�O���ܡJ
    ��_�i�_�����̡A�Цb���`�Ҧ��U���ȫ��N������H����Ӥ��ϥΩR�O�A�h
    �N�ݨ��Ъ����ʥ��p�W������H�C��ҥN���@�ˡC




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		�ĤG���ĥ|�`�J��H�R�O���S���p


	       ** ��J dd �i�H�R����@�ӷ�e��C **

  ų�_���R�������W�סAVIM ���]�p�̨M�w�n²�ƾ��R���A�Ȼݭn�b�P�@��W
  �����⦸ d �N�i�H�R�������ЩҦb�����F�C

  1. �бN���в��ʨ쥻�`���U�����u�y�q�������ĤG��C
  2. ��J dd �R���Ӧ�C
  3. �M�Ჾ�ʨ�ĥ|��C
  4. ���ۿ�J 2dd (�ٰO�o�e�����L�� number-command-object �ܡH) �R�����C

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 �ĤG���Ĥ��`�J�M����R�O


	 ** ��J u �ӺM���̫��檺�R�O�A��J U �ӭץ����C**

  1. �бN���в��ʨ쥻�`���U���аO�� ---> �����@��A�ñN��m�_�Ĥ@�ӿ��~
     �B�C
  2. ��J x �R���Ĥ@�Ӥ��Q�O�d���r���C
  3. �M���J u �M���̫��檺(�@��)�R�O�C
  4. �o���n�ϥ� x �ץ����檺�Ҧ����~�C
  5. �{�b��J�@�Ӥj�g�� U �A��_��Ӧ檺��l���A�C
  6. ���ۦh����J u �H�M�� U �H�Χ�e���R�O�C
  7. �M��h����J CTRL-R (�����U CTRL �䤣��}�A���ۿ�J R ��) �A�o�˴N
     �i�H�����_�R�O�A�]�N�O�M�����M���R�O�C

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. �o�dz��O�D�`���Ϊ��R�O�C�U���O�ĤG�����p���F�C




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �ĤG���p��


  1. ���q��e���ЧR���ܳ�r/�������A�п�J�Jdw

  2. ���q��e���ЧR���ܷ�e�楽���A�п�J�Jd$

  3. ���R�����A�п�J�Jdd

  4. �b���`�Ҧ��U�@�өR�O���榡�O�J

       [number]   command   object     �Ϊ�     command	[number]   object
     ��N�O�J
       number - �N���O�R�O���檺����
       command - �N��n�����Ʊ��A��p d �N��R��
       object - �N��n�ާ@����H�A��p w �N���r/���A$ �N���楽�����C
		$ (to the end of line), etc.

  5. ���M���H�e���ާ@�A�п�J�Ju (�p�g��u)
     ���M���b�@�椤�Ұ�����ʡA�п�J�JU (�j�g��U)
     ���M���H�e���M���R�O�A��_�H�e���ާ@���G�A�п�J�JCTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 �ĤT���Ĥ@�`�J�m�J��R�O


	       ** ��J p �N�̫�@���R�������e�m�J���Ф��� **

  1. �бN���в��ʨ쥻�`���U���ܭS�q��������C

  2. ��J dd �N�Ӧ�R���A�o�˷|�N�Ӧ�O�s��vim���w�R�Ϥ��C

  3. ���۱N���в��ʨ�dzƸm�J����m���W��C�O��J�O�W��@�C

  4. �M��b���`�Ҧ��U(<ESC>��i�J)�A��J p �N�Ӧ��߶K�m�J�C

  5. ���_�B�J2�ܨB�J4�A�N�Ҧ�����̧ǩ�m�쥿�T����m�W�C

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       �ĤT���ĤG�`�J������R�O


	  ** ��J r �M�@�Ӧr�Ŵ������ЩҦb��m���r�šC**

  1. �бN���в��ʨ쥻�`���U���аO�� ---> ���Ĥ@��C

  2. �в��ʥ��Ш�Ĥ@�ӿ��~���A���m�C

  3. ���ۿ�J r �A�o�˴N��N���~�������F�C

  4. ���_�B�J2�M�B�J3�A����Ĥ@��w�g�ק粒���C

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. �M��ڭ��~��ǮղĤT���ĤT�`�C

�S�O���ܡJ���O�z�n�b�ϥΤ��DzߡA�Ӥ��O�b�O�Ф��DzߡC



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�ĤT���ĤT�`�J�����R�O


	   ** �n���ܤ@�ӳ�r/���������Ϊ̥����A�п�J cw **

  1. �бN���в��ʨ쥻�`���U���аO�� ---> ���Ĥ@��C

  2. ���ۧ��Щ�b�� lubw ���r�� u ����m���̡C

  3. �M���J cw �N�i�H�ץ��ӳ��F(�b���ҳo�̬O��J ine �C)

  4. �̫� <ESC> ��A�M���Щw���U�@�ӿ��~�Ĥ@�ӷdzƧ�諸�r���B�C

  5. ���_�B�J3�M�B�J4�A����Ĥ@�ӥy�l�����p�P�ĤG�ӥy�l�C

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

���ܡJ�Ъ`�N cw �R�O���ȶȬO�����F�@�ӳ��A�]��z�i�J�奻���J���A�F�C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       �ĤT���ĥ|�`�J�ϥ�c���O����L�����R�O


	     ** �������O�i�H�ϥΦP�R����R�O�ҨϥΪ���H�ѼơC**

  1. �������O���u�@�覡��R����R�O�O�@�P���C�ާ@�榡�O�J

       [number]   c   object	   �Ϊ�	    c	[number]   object

  2. ��H�ѼƤ]�O�@�˪��A��p w �N���r/���A$�N��楽�����C

  3. �бN���в��ʨ쥻�`���U���аO�� ---> ���Ĥ@��C

  4. ���۱N���в��ʨ�Ĥ@�ӿ��~�B�C

  5. �M���J c$ �ϱo�Ӧ�ѤU�������󥿱o�P�ĤG��@�ˡC�̫� <ESC> ��C

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �ĤT���p��


  1. �n���s�m�J�w�g�R�����奻���e�A�п�J�p�g�r�� p�C�Ӿާ@�i�H�N�w�R��
     ���奻���e�m�_���Ф���C�p�G�̫�@���R�����O�@�Ӿ��A����Ӧ�N�m
     �_��e���ЩҦb�檺�U�@��C

  2. �n�������ЩҦb��m���r�šA�п�J�p�g�� r �M�n���������m�r�Ū��s�r
     �ŧY�i�C

  3. �����R�O���\�z���ܫ��w����H�A�q��e���ЩҦb��m�����H�������C
     ��p��J cw �i�H������e����������������e�F��J c$ �i�H������
     �e���Ш�楽�����e�C

  4. �����R�O���榡�O�J

	 [number]   c	object	      �Ϊ�	c   [number]   object

�U���ڭ��~��DzߤU�@���C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �ĥ|���Ĥ@�`�J�w��Τ�󪬺A


  ** ��J CTRL-g ��ܷ�e�s���󤤷�e���ЩҦb���m�H�Τ�󪬺A�H���C
     ��J SHIFT-G �h����������󤤪��Y�@���w��C**

  ���ܡJ���O�n���qŪ���`���e�A����~�i�H����H�U�B�J!!!

  1. ���U CTRL �䤣��}�M�� g ��C�M��N�|�ݨ쭶���̩����X�{�@�Ӫ��A�H
     ����A��ܪ����e�O��e�s�誺���W�M���`��ơC�аO��B�J3���渹�C

  2. ���U SHIFT-G ��i�H�ϱo��e���Ъ����������̫�@��C

  3. ��J�z�����d���渹�A�M���U SHIFT-G�C�o�˴N�i�H��^��z�Ĥ@�����U
     CTRL-g �ɩҦb����n�F�C�`�N�J��J�渹�ɡA�渹�O���|�b�̹��W��ܥX��
     ���C

  4. �p�G�@�N�A�z�i�H�~���B�J1�ܨB�J�T�C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�ĥ|���ĤG�`�J�j����R�O


     ** ��J / �H�Χ��H���r�Ŧ�i�H�ΥH�b��e��󤤬d��Ӧr�Ŧ�C**

  1. �b���`�Ҧ��U��J / �r�šC�z���ɷ|�`�N��Ӧr�ũM���г��|�X�{�b�̹���
     ���A�o�� : �R�O�O�@�˪��C

  2. ���ۿ�J errroor <�^��>�C����errroor�N�O�z�n�d�䪺�r�Ŧ�C

  3. �n�d��P�W�@�����r�Ŧ�A�u�ݭn�� n ��C�n�V�ۤϤ�V�d��P�W�@�����r
     �Ŧ�A�п�J Shift-N �Y�i�C

  4. �p�G�z�Q�f�V�d��r�Ŧ�A�Шϥ� ? �N�� / �i��C

---> When the search reaches the end of the file it will continue at the start.

  "errroor" is not the way to spell error;  errroor is an error.

  ���ܡJ�p�G�d��w�g��F��󥽧��A�d��|�۰ʱq���Y���~��d��C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �ĥ|���ĤT�`�J�t��A�����d��


	      ** �� % �i�H�d��t�諸�A�� )�B]�B}�C**

  1. ���Щ�b���`�U���аO�� --> ���@�椤�����@�� (�B[ �� { �B�C

  2. ���۫� % �r�šC

  3. ���ɥ��Ъ���m����O�b�t�諸�A���B�C

  4. �A���� % �N�i�H���^�t�諸�Ĥ@�ӬA���B�C

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

���ܡJ�b�{�ǽոծɡA�o�ӥ\��ΨӬd�䤣�t�諸�A���O�ܦ��Ϊ��C






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      �ĥ|���ĥ|�`�J�ץ����~����k���@


		** ��J :s/old/new/g �i�H���� old �� new�C**

  1. �бN���в��ʨ쥻�`���U���аO�� ---> �����@��C

  2. ��J :s/thee/the <�^��> �C�Ъ`�N�өR�O�u���ܥ��ЩҦb�檺�Ĥ@�Ӥǰt
     ��C

  3. ��J :s/thee/the/g	�h�O�������檺�ǰt��C

---> the best time to see thee flowers is in thee spring.

  4. �n������椧���X�{���C�Ӥǰt��A�п�J :#,#s/old/new/g (#,#�N���O
     ��檺�渹)�C��J :%s/old/new/g �h�O������Ӥ�󤤪��C�Ӥǰt��C




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �ĥ|���p��


  1. Ctrl-g �Τ_��ܷ�e���ЩҦb��m�M��󪬺A�H���CShift-G �Τ_�N���и�
     ��ܤ��̫�@��C���V�J�@�Ӧ渹�M�� Shift-G �h�O�N���в��ʦܸӦ�
     ���N����C

  2. ��J / �M���H�@�Ӧr�Ŧ�O�h�O�b��e�ҽs�誺��ɤ��V��d��Ӧr�Ŧ�C
     ��J�ݸ� ? �M���H�@�Ӧr�Ŧ�O�h�O�b��e�ҽs�誺��ɤ��V�e�d��Ӧr
     �Ŧ�C�����@���d�䤧�� n ��h�O���_�W�@�����R�O�A�i�b�P�@��V�W�d
     ��U�@�Ӧr�Ŧ�Ҧb�F�Ϊ̫� Shift-N �V�ۤϤ�V�d��U�Ӧr�Ŧ�Ҧb�C

  3. �p�G���з�e��m�O�A��(�B)�B[�B]�B{�B}�A�� % �i�H�N���в��ʨ�t�諸
     �A���W�C

  4. �b�@�椺�����Y�@�Ӧr�Ŧ� old ���s���r�Ŧ� new�A�п�J  :s/old/new
     �b�@�椺�����Ҧ����r�Ŧ� old ���s���r�Ŧ� new�A�п�J  :s/old/new/g
     �b��椺�����Ҧ����r�Ŧ� old ���s���r�Ŧ� new�A�п�J  :#,#s/old/new/g
     �b��󤺴����Ҧ����r�Ŧ� old ���s���r�Ŧ� new�A�п�J  :%s/old/new/g
     �i�������ɸ߰ݥΤ�T�{�C�Ӵ����ݲK�[ c �ﶵ�A�п�J :%s/old/new/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		�Ĥ����Ĥ@�`�J�b VIM ������~���R�O����k


	   ** ��J :! �M���H�ۿ�J�@�ӥ~���R�O�i�H����ӥ~���R�O�C**

  1. ���U�ڭ̩Ҽ�x�� : �R�O�]�m���Ш�̹������C�o�˴N�i�H��z��J�R�O�F�C

  2. ���ۿ�J�P�ĸ� ! �o�Ӧr�šA�o�˴N���\�z����~���� shell �R�O�F�C

  3. �ڭ̥H ls �R�O���ҡC��J !ls <�^��> �C�өR�O�N�|�C�|�X�z��e�ؿ���
     ���e�A�N�p�P�z�b�R�O�洣�ܲŤU��J ls �R�O�����G�@�ˡC�p�G !ls �S�_
     �@�ΡA�z�i�H�ո� :!dir �ݬݡC

---> ���ܡJ �Ҧ����~���R�O���i�H�H�o�ؤ覡����C

---> ���ܡJ �Ҧ��� : �R�O�������H <�^��> �i�סC




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      �Ĥ����ĤG�`�J��_�O�s��󪺧�h�H��


	     ** �n�N���󪺧�ʫO�s���󤤡A�п�J :w FILENAME **

  1. ��J :!dir �Ϊ� :!ls �򪾷�e�ؿ������e�C�z����w���D�̫�ٱo�V
     <�^��> �a�C

  2. ��ܤ@�ө|���s�b���W�A��p TEST �C

  3. ���ۿ�J :w TEST  (���B TEST �O�z�ҿ�ܪ����W�C)

  4. �өR�O�|�H TEST �����W�O�s��Ӥ�� (VIM �е{)�C���F�T�O���T�O�s�A
     �ЦA����J :!dir �d�ݱz���ؿ��C���e�C

---> �Ъ`�N�J�p�G�z�h�X VIM �M��b�H���W TEST ���Ѽƶi�J�A����Ӥ��
     �e���ӦP�z�O�s�ɪ���󤺮e�O�����@�˪��C

  5. �{�b�z�i�H�q�L��J :!rm TEST �ӧR�� TEST ���F�C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    �Ĥ����ĤT�`�J�@�Ө㦳��ܩʪ��O�s�R�O


		** �n�O�s��󪺳������e�A�п�J :#,# w FILENAME **

  1. �A�Ӱ���@�� :!dir �Ϊ� :!ls �򪾷�e�ؿ������e�A�M���ܤ@�ӦX�A��
     �����W�����W�A��p TEST �C

  2. ���۱N���в��ʦܥ������̳��ݡA�M�� CTRL-g ���Ӧ檺�渹�C�O�ѤF
     �渹�@�C

  3. ���ۧ��в��ʦܥ������̩��ݡA�A���@�� CTRL-g �C�]�O�ѤF�o�Ӧ�n�@�C

  4. ���F�u�O�s�峹���Y�ӳ����A�п�J :#,# w TEST �C�o�̪� #,# �N�O�W��
     �n�D�z�O���渹(���ݦ渹,���ݦ渹)�A�� TEST �N�O��w�����W�C

  5. �̫�A�� :!dir �T�{���O�_���T�O�s�C���O�o�����O�R�����C




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �Ĥ����ĥ|�`�J�����M�X�ä��


       ** �n�V��e��󤤴��J�t�~����󪺤��e�A�п�J :r FILENAME **

  1. ���J :!dir �T�{�z�e���Ыت� TEST ���٦b�C

  2. �M��N���в��ʦܷ�e���������ݡC

�S�O���ܡJ ����B�J3����z�N�ݨ�Ĥ����ĤT�`�A�Щ��ɦA���U���ʦ^��o�̨ӡC

  3. ���۳q�L :r TEST �N�e���Ыت��W�� TEST ����󴣨��i�ӡC

�S�O���ܡJ�z�Ҵ����i�Ӫ����N�q���ЩҦb��m�B�}�l�m�J�C

  4. ���F�T�{���w�g�������\�A���ʥ��Ц^���Ӫ���m�N�i�H�`�N������
     �����ĤT�`�A�@���O�쥻�A�t�~�@���O�Ӧۤ�󪺰ƥ��C



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �Ĥ����p��


  1. :!command �Τ_����@�ӥ~���R�O command�C

     �Ьݤ@�ǹ�ڨҤl�J
	 :!dir		-  �Τ_��ܷ�e�ؿ������e�C
	 :!rm FILENAME	-  �Τ_�R���W�� FILENAME �����C

  2. :w FILENAME  �i�N��e VIM �����b�s�誺���O�s��W�� FILENAME
     ����󤤡C

  3. :#,#w FILENAME �i�N��e�s����� # ��ܲ� # �檺���e�O�s����
     FILENAME ���C

  4. :r FILENAME �i�����ϽL��� FILENAME �ñN�䴡�J���e��󪺥��Ц�m
     �᭱�C







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 �Ĥ����Ĥ@�`�J���}��R�O


	 ** ��J o �N�b���Ъ��U�襴�}�s���@��öi�J���J�Ҧ��C**

  1. �бN���в��ʨ쥻�`���U���аO�� ---> �����@��C

  2. ���ۿ�J�p�g�� o �b���� *�U��* ���}�s���@��öi�J���J�Ҧ��C

  3. �M��_��аO�� ---> ����ë� <ESC> ��h�X���J�Ҧ��Ӷi�J���`�Ҧ��C

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. ���F�b���� *�W��* ���}�s���@��A�u�ݭn��J�j�g�� O �Ӥ��O�p�g�� o
     �N�i�H�F�C�Цb�U���դ@�U�a�C���гB�b�b�Ӧ�W�ɡA�� Shift-O�i�H
     �b�Ӧ�W��s�}�@��C

Open up a line above this by typing Shift-O while the cursor is on this line.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�Ĥ����ĤG�`�J���Ыᴡ�J��R�O


		     ** ��J a �N�i�b���Ф��ᴡ�J�奻�C **

  1. �Цb���`�Ҧ��U�q�L��J $ �N���в��ʨ쥻�`���U���аO�� ---> ���Ĥ@��
     �������C

  2. ���ۿ�J�p�g�� a �h�i�b���Ф��ᴡ�J�奻�F�C�j�g�� A �h�i�H�����b��
     �����J�奻�C

���ܡJ��J�j�g A ���ާ@��k�i�H�b�楽���J�奻�A�קK�F��J i�A���Щw���
      �̫�@�Ӧr�šA��J���奻�A<ESC> �^�_���`�Ҧ��A�b�Y�k�䲾�ʥ��ХH��
      x �R����e���ЩҦb��m�r�ŵ����Ѧh�c����ާ@�C

  3. �ާ@����Ĥ@��N�i�H�ɥR����F�C�Ъ`�N���Ыᴡ�J�奻�P���J�Ҧ��O��
     �������@�P���A�u�O�奻���J����m�w��y�����P�}�F�C

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    �Ĥ����ĤT�`�J�t�~�@�Ӹm����R�O������


		      ** ��J�j�g�� R �i�s����h�Ӧr�šC**

  1. �бN���в��ʨ쥻�`���U���аO�� ---> ���Ĥ@��C

  2. ���ʥ��Ш�Ĥ@�椤���P�_�Ц� ---> ���ĤG�檺�Ĥ@�ӳ����}�l�A�Y��
     �� last �B�C

  3. �M���J�j�g�� R �}�l��Ĥ@�椤�����P�_�ĤG�檺�ѧE�r�ųv�@��J�A�N
     �i�H�����������즳���r�ŦӨϱo�Ĥ@�槹���p�P�ĤG��F�C

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. �Ъ`�N�J�p�G�z�� <ESC> �h�X�m���Ҧ��^�_���`�Ҧ��A�|���������奻�N��
     �M�O���쪬�C





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    �Ĥ����ĥ|�`�J�]�m��R�O���ﶵ


		  ** �]�m�i�Ϭd��Ϊ̴����i�����j�p�g���ﶵ **


  1. �n�d��� ignore �i�b���`�Ҧ��U��J /ignore �C�n���_�d��ӵ��A�i�H
     ���_�� n ��C

  2. �M��]�m ic �ﶵ(ic�N�O�^�婿���j�p�gIgnore Case�����r���Y�g��)�A�Y
     ��J�J
	:set ic

  3. �{�b�i�H�q�L��J n ��A���d��� ignore�C���_�d��i�H���_��J n ��C

  4. �M��]�m hlsearch �M incsearch �o��ӿﶵ�A��J�H�U���e�J
     :set hls is

  5. �{�b�i�H�A����J�d��R�O�A�ݬݷ|������ĪG�J
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �Ĥ����p��


  1. ��J�p�g�� o �i�H�b���ФU�襴�}�s���@��ñN���иm�_�s�}���歺�A�i�J
     ���J�Ҧ��C
     ��J�j�g�� O �i�H�b���ФW�襴�}�s���@��ñN���иm�_�s�}���歺�A�i�J
     ���J�Ҧ��C

  2. ��J�p�g�� a �i�H�b���ЩҦb��m���ᴡ�J�奻�C
     ��J�j�g�� A �i�H�b���ЩҦb�檺�楽���ᴡ�J�奻�C

  3. ��J�j�g�� R �N�i�J�����Ҧ��A���ܫ� <ESC> ��h�X�����Ҧ��Ӷi�J���`
     �Ҧ��C

  4. ��J :set xxx �i�H�]�m xxx �ﶵ�C









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       �ĤC���J�b�u���U�R�O

		      ** �ϥΦb�u���U�t�� **

  Vim �֦��@�ӲӭP�������b�u���U�t�ΡC�n�Ұʸ���U�t�ΡA�п�ܦp�U�T�ؤ�
  �k���@�J
	- ���U <HELP> �� (�p�G��L�W������)
	- ���U <F1> �� (�p�G��L�W������)
	- ��J	:help <�^��>

  ��J :q <�^��> �i�H������U���f�C

  ���Ѥ@�ӥ��T���ѼƵ�":help"�R�O�A�z�i�H�����_�ӥD�D�����U�C�и���H
  �U�Ѽ�(�i�O�ѤF���^����@�C:)�J

	  :help w <�^��>
	  :help c_<T <�^��>
	  :help insert-index <�^��>
	  :help user-manual <�^��>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      �ĤK���J�Ыؤ@�ӱҰʸ}��

			 ** �ҥ�vim���\�� **

  Vim���\��S�ʭn��vi�h�o�h�A���j�����\�ೣ�S���ʬٿE���C���F�Ұʧ�h��
  �\��A�z�o�Ыؤ@��vimrc���C

  1. �}�l�s��vimrc���A�o���M�_�z�ҨϥΪ��ާ@�t�ΡJ

     :edit ~/.vimrc		�o�OUnix�t�ΩҨϥΪ��R�O
     :edit $VIM/_vimrc		�o�OWindows�t�ΩҨϥΪ��R�O

  2. ���۾ɤJvimrc�S�Ҥ��J

     :read $VIMRUNTIME/vimrc_example.vim

  3. �O�s���A�R�O���J

     :write

  �b�U���z�Ұ�vim���ɭԡA�s�边�N�|���F�y�k���G���\��C�z�i�H�~���z��
  �w���䥦�\��]�m�K�[��o��vimrc��󤤡C

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  vim �е{�즹����C���е{�u�O���F²���a���Ф@�Uvim�s�边�A���w���H��z
  �ܮe���Ƿ|�ϥΥ��s�边�F�C��e��áAvim�٦��ܦh�ܦh���R�O�A���е{�Ҥ�
  �Ъ��ٮt�o���۩O�C�ҥH�z�n��q���ܡA�ٱ��~��V�O�@�C�U�@�B�z�i�H�\Ū
  vim��U�A�ϥΪ��R�O�O�J
	:help user-manual

  ���F��i�@�B���ѦҩM�DzߡA�H�U�o���ѭȱo���ˡJ

	Vim - Vi Improved - �@�̡JSteve Oualline
	�X�����JNew Riders

  �o�O�Ĥ@����������vim�����y�C��_��Ǫ̯S�O���ΡC�䤤�٥]�t���j�q���
  �M�ϥܡC�����Ա��A�гX�� http://iccf-holland.org/click5.html

  �H�U�o���Ѥ�ѤF�ӥB���e�D�n�Ovi�Ӥ��Ovim�A���O�]�ȱo���ˡJ

	Learning the Vi Editor - �@�̡JLinda Lamb
	�X�����JO'Reilly & Associates Inc.

  �o�O�@���������ѡA�q�L���z�X�G���F�Ѩ���vi�����쪺�Ʊ��C���Ѫ���
  ���Ӫ����]�]�t�F�@����_vim���H���C

  ���е{�O�ѨӦ�Calorado School of Minese��Michael C. Pierce�BRobert K.
  Ware �ҽs�g���A�䤤�Ӧ�Colorado State University��Charles Smith���ѤF
  �ܦh�зN�C�s�̳q�H�a�}�O�J

	bware@mines.colorado.edu

  ���е{�w��Bram Moolenaar�M��vim�i��׭q�C



  Ķ��̪����J
  ===========
      ²�餤��е{½Ķ����Ķ��̬����� <beos@turbolinux.com.cn>�A�٦�
      �t�~�@��p�t�a�}�Jlinuxrat@gnuchina.org�C

      �c�餤��е{�O�q²�餤��е{½Ķ���ϥ� Debian GNU/Linux ���嶵�ؤp
      �ժ��_�s�����ͽs�g������~�r��X��  autoconvert �ഫ�Ӧ����A�ù���
      �������G���F�@�DzӸ`����ʡC

  �ܧ�O���J
  =========
      2002�~08��30�� ���� <beos@turbolinux.com.cn>
      �P�� RMS@SMTH �������A�N�h�B���~�ץ��C

      2002�~04��22�� ���� <linuxrat@gnuchina.org>
      �P�� xuandong@sh163.net �������A�N��B���O�r�ץ��C

      2002�~03��18�� ���� <linuxrat@gnuchina.org>
      �ھ�Bram Moolenaar���ͦb2002�~03��16�骺�ӫH�n�D�A�Nvimtutor1.4��Ķ
      ���ɯŨ�vimtutor1.5�C

      2001�~11��15�� ���� <linuxrat@gnuchina.org>
      �Nvimtutor1.4��Ķ�����浹Bram Moolenaar�MSven Guckes�C

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Zf�NjNjvim80/tutor/tutor.ko.eucnu�[���===============================================================================
=    �� ���� (VIM Tutor) �� ���� ��� ȯ���մϴ�    -      Version 1.5      =
===============================================================================

     ��(Vim)�� �� ���̿��� �� ������ �� ���� ��ŭ ���� ���� ����
     �ſ� ������ ����Դϴ�. �� ���̴� ���� ���� ��õ�� ����� �����
     �� �ֵ��� ����� ��ɿ� ���� �����ϰ� �ֽ��ϴ�.

     �� ���̸� ���� ������ �ǽ��ϴ� ���� �󸶳� �ð��� ���� ���� ����
     25-30 �� ������ �ɸ��ϴ�.

     �� ������ ��Ե� ���� ���� ��Ĩ�ϴ�. �� ���� ���纻�� ����
     �����ϼ���. (vimtutor �� ���� ����ߴٸ�, �̹� ���纻�� ����ϴ�
     ��Դϴ�.)

     �߿��� ���, �� ���̰� ���� �Ẹ�鼭 ��쵵�� ���Ǿ� �ִٴ� ��Դϴ�.
     ���� ����� �������, ���� �����غ��� ��� �ʿ��մϴ�. ���� �д�
     �͸����δ�, ���� �ؾ����� �� ��Դϴ�.

     �� ���, Caps Lock(Shift-Lock) Ű�� ������� ����� Ȯ���غ��ð�, j Ű��
     ���� ������ Lesson 1.1�� ȭ�鿡 ���� ����� ������ô�.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 1.1:  Ŀ�� ��̱�

   ** Ŀ���� ��̷���, ǥ�õ� ��� h,j,k,l Ű�� �����ʽÿ�. **
             ^
             k              �Ʈ:  h Ű�� ���ʿ� �����, ������� ��Դϴ�.
       < h       l >               l Ű�� �����ʿ� �����, ���������
             j                     ��Դϴ�.
             v                     j Ű�� �Ʒ����� ȭ��ǥó�� �����ϴ�.

  1. �ͼ���� ���� Ŀ���� ��ũ�� �󿡼� ��� ���ʽÿ�.

  2. �Ʒ� ����Ű (j)�� �ݺ��Է�� �� ���� ������ ��ʽÿ�.
---> ��� ��� lesson���� ���� ���� �˰� �Ǿ����ϴ�.

  3. �Ʒ� ����Ű�� �̿��Ͽ�, Lesson 1.2 �� ���ʽÿ�.

���: ����� �ʴ� ���𰡰� �Է�� �Ǿ��ٸ�, <ESC>�� ������, ��� ����
      ���ư��ʽÿ�. �� �Ŀ� ���ϴ� ���� �ٽ� �Է��Ͻʽÿ�.

���: Ŀ��Ű ���� �۵��� ��Դϴ�. ����� hjkl�� �ͼ������, Ŀ��Ű����
      �ξ� ������ �̵��� �� ��� ��Դϴ�.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lesson 1.2: ���� ����ϰ� ������


  !! ���: �Ʒ� �ִ� �ܰ踦 �����ϱ� ����, �� lesson ��ü�� ����ʽÿ�!!

  1. <ESC> Ű�� ������ Ȯ���ϰ� ��� ���� ���� ���ɴϴ�.

  2. ����� ���� �Է��մϴ�:    :q! <ENTER>

---> �̷��� �ϸ�, �ٲ� ���� *������� �ʰ�* ���⸦ ���������ϴ�.
     ������ �� ������������ ����� ���� �Է��մϴ�:
                                :wq <ENTER>

  3. �� ����Ʈ�� ���δٸ�, �ٽ� ���̷� ���ƿ��� ���� ����� ����
     �Է��մϴ�.
                                vimtutor <ENTER>
     �Ǵ� ����� ���� ���� �ֽ��ϴ�.
                                vim tutor.ko <ENTER>

---> 'vim' �� �� ����� ���� ��� ���ϸ�, 'tutor.ko'�� ���Ϸ���
     ���� ���մϴ�.

  4. ������ �̾߱��� �ܰ踦 ����Ͽ�����, Ȯ��� ����, 1���� 3����
     �����Ͽ� ���⸦ �����ٰ� �ٽ� ���ͺ��ʽÿ�.  �� �� Ŀ���� �Ʒ���
     ��� Lesson 1.3 ���� ���ʽÿ�.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lesson 1.3: �ؽ�Ʈ �� - �����


** ��� ��忡��   x  �� ������ Ŀ���� ��ġ�� ���� ��ڸ� ���� �� �ֽ��ϴ�. **

  1. ----> �� ǥ�õ� ������ Ŀ���� �Űܺ��ʽÿ�.

  2. ��Ÿ�� �����ϱ� ����, Ŀ���� ���� ��� ���� ��� ���ʽÿ�.

  3. x  Ű�� ������ �������� ��ڸ� ����ʽÿ�.

  4. 2���� 4���� �ݺ��Ͽ� ����� �ùٸ��� �ǵ��� �Ͽ� ���ʽÿ�.

---> The ccow jumpedd ovverr thhe mooon.

  5. ����� ��Ȯ����ٸ�, Lesson 1.4�� ���ʽÿ�.

���: �� ���̸� ���鼭 �ܿ��� �������, ���� ����غ��鼭 �����
      �ٶ��ϴ�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Lesson 1.4: �ؽ�Ʈ �� - ��� (INSERTION)

  
       ** ��� ��忡��   i  �� ������ �ؽ�Ʈ�� �Է��� �� �ֽ��ϴ�. **

  1. Ŀ���� ù��° ---> �� ǥ�õ� �ٷ� ��Դϴ�.

  2. ù��° ��� �ι�° �ٰ� �Ȱ��� �����Դϴ�. �ؽ�Ʈ�� ������
     �� ������� ù��° ��� ���� Ŀ���� �Ű� �����ϴ�.

  3. i  Ű�� ���� ��, �ʿ��� ���� �Է��մϴ�.

  4. ������ �Ŀ��� <ESC> �� ������ ��� ���� ���ư��ϴ�.
     ���� �ùٸ��� ����� ���� 2���� 4�� ������ �ݺ��մϴ�.

---> There is text misng this .
---> There is some text missing from this line.

  5. �ؽ�Ʈ�� ����ϴ� ���� �ͼ�����ٸ�, ��� ���ֽʽÿ�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             LESSON 1 ���


  1. Ŀ���� ��� ������ ȭ��ǥ Ű�� hjkl Ű�� �̿��մϴ�.
         h (����)       j (�Ʒ�)       k (��)       l (������)

  2. �� ����Ʈ���� ���� ����Ϸ��� vim FILENAME <ENTER>

  3. ������ ���� ������ � ������ ������������   <ESC>   :q!   <ENTER>
                     ������ �� ������ ������������   <ESC>   :wq   <ENTER>

  4. ��� ��忡�� Ŀ���� ��ġ�� ���� ��ڸ� ������   x  �� �Է��մϴ�.

  5. ��� ��忡�� Ŀ���� ��ġ�� ���� �ؽ�Ʈ�� ����Ϸ���
         i   �� ���� �� �ؽ�Ʈ�� �Է��ϰ�  <ESC> �� �����ϴ�.

���: <ESC>�� ��� ���� ���ư��� �� ����, ��ġ �ʴ� ���̳� ���� �Էµ��
      ��� ���� ����ϴ� ������ ���ϴ�.

�׷� Lesson 2�� ����սô�.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Lesson 2.1: ��(DELETION) ���


            ** �� �ܾ ���� ������  dw  ��� ġ�� �˴ϴ�. **

  1. <ESC> Ű�� ������ Ȯ���ϰ� ��� ���� ���� ���ɴϴ�.

  2. �Ʒ��� ---> �� ǥ�õ� �� �� Ŀ���� �ű�ϴ�.

  3. �������� �ܾ�� ó������ Ŀ���� �ű�ϴ�.

  4. dw  ��� �ļ� �� �ܾ ����ϴ�.

  ���: ������ ���Ѵ�� �ϸ� ȭ��� ������ �ٿ� dw ��� ��ڰ� ǥ�õ˴ϴ�.
        �߸� �ƴٸ�,  <ESC> �� ������ �ٽ� ����Ͻʽÿ�.

---> There are a some words fun that don't belong paper in this sentence.

  5. 3, 4�� ������ �ٽ� �Ͽ� ���� ��Ȯ�ϰ� ���� �� Lesson 2.2�� ���ʽÿ�.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 2.2: �ٸ� �� ���

              **  d$ ��� ġ�� �� �� ���� �������ϴ�. **

  1. <ESC> Ű�� ������ Ȯ���ϰ� ��� ���� ���� ���ɴϴ�.

  2. �Ʒ��� ---> �� ǥ�õ� �� �� Ŀ���� �ű�ϴ�.

  3. �ùٸ� ��� ������ Ŀ���� �ű�ϴ�. (ù��°�� ������ . ����Դϴ�.)

  4. d$  ��� �ļ� �� ���� ����ϴ�.

---> Somebody typed the end of this line twice. end of this line twice.


  5. � ��� �Ͼ��� �����ϱ� ���� Lesson 2.3 ���� ���ʽÿ�.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 2.3: ��ɰ� ���� ��� ����


  �� ��� d�� ���� ����� �����ϴ�.

         [Ƚ��]   d   ���      �Ǵ�      d   [Ƚ��]   ���
  ���⼭
    Ƚ�� - ���� �� �� ������ �� (�ɼ�, �⺻��=1).
    d    - ����� ���
    ��� - �Ʒ��� ���õ� ��� ���� ���� ����

  ���� ������ ���� ����:
    w - Ŀ������ �� �ܾ�� ���� (���� ���.)
    e - Ŀ������ �� �ܾ�� ���� (���� ������ ���.)
    $ - Ŀ������ �� ��� ����

���:  ȣ���� �ִٸ�, ��� ��忡�� ��� ���� ��� �Է��غ��ʽÿ�.
       ������ �̾߱��� ���� ��Ͽ� ���� Ŀ���� ��̰� �˴ϴ�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 2.4: '���-���' �� ���� ����


               **  dd  ��� ġ�� �� ��ü�� ����ϴ�. **

  �� ��ü�� ����� ��� ��� ������, Vi�� ���� �� ����, ����� d��
  �ι� ���޾� ġ�� �� ��� ���� �� �ֵ��� �Ͽ����ϴ�.

  1. Ŀ���� �Ʒ� ���� �ܶ�� �ι�° �ٷ� �������ʽÿ�.
  2. dd �� �Է��Ͽ� �� ��� ����ʽÿ�.
  3. �׷� ��� �׹�° �ٷ� ���ʽÿ�.
  4. 2dd ��� �Է��Ͽ� ���� ����ϴ�. ( Ƚ��-���-��� ����ϼ���. )

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Lesson 2.5: ���(UNDO) ���


   **  u  �� ������ ������ ���� ��ҵǸ�,  U �� �� ��ü�� �����մϴ�. **

  1. Ŀ���� ---> �� ǥ�õ� �ٷ� �̵��� �� ù��° �߸��� �κ� ���� �ű�ϴ�.
  2.  x  �� �Է��Ͽ� ù��° �߸��� ��ڸ� ����ϴ�.
  3. �׷� ���  u �� �Է��Ͽ� ���������� ����� ���� ����մϴ�.
  4. �̹�����  x  ���� �̿��Ͽ� �� ��� ��� ������ �����غ��ô�.
  5. �빮��  U  �� ������ �� ��� ���� ���·� �������� ���ʽÿ�.
  6. �̹�����  u �� �� �� ������  U �� ��� ���� ����غ��ô�.
  7. CTRL-R (CTRL Ű�� ���� ���¿��� R�� ������ ��) �� �� �� ������
     ���� �ٽ� �����غ��ô�. (����� ��� �����.)

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. �� ���� �ſ� �����մϴ�.  �׷� Lesson 2 ����� �Ѿ���� �սô�.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 2 ���


  1. Ŀ���� ��ġ�� ������ �ܾ�� ���� ������:    dw

  2. Ŀ���� ��ġ�� ������ �� ���� ������:    d$

  3. �� ��ü�� ������:    dd

  4. ��� ��忡�� ������ ���� ���� ����� �����ϴ�:

       [Ƚ��]   ���   ���    �Ǵ�    ���   [Ƚ��]   ���
     ���⼭:
       Ƚ�� - �� ���� �� �� �ݺ��� ��ΰ�
       ��� - � ���� ���� ��ΰ� ( ���� ���, ���� ���� d )
       ��� - ���� ������ ���, ���� ��� w (�ܾ�), $ (��� ��) ��.

  5. ��� �ൿ�� ����Ϸ���:                 u   (�ҹ��� u)
     �� �ٿ��� ������ ��� ��� ����Ϸ���:  U   (�빮�� U)
     ����� ��� �ٽ� �����Ϸ���:            CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 3.1: ��̱�(PUT) ���


      **  p �� �Է��Ͽ� ���������� ���� ���� Ŀ�� �ڿ� ��Դϴ�. **

  1. �Ʒ��� �ִ� ����� ù �ٷ� Ŀ���� ��̽ʽÿ�.

  2.  dd  �� �Է��Ͽ� �� ��� ������ ���� ���ۿ� �����մϴ�.

  3. �Ʊ� ���� ��� ������ ��ġ�� *���ٷ�* Ŀ���� �ű�ϴ�.

  4. ��� ��忡��,  p  �� �Է��Ͽ� �� ��� ����� �� �ڸ��� �ű�ϴ�.

  5. 2���� 4�� �ݺ��Ͽ� ��� ��� ������ �ٷ� ���ʽÿ�.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 3.2: ġȯ(REPLACE) ���


  ** Ŀ�� �Ʒ��� ��� �ϳ��� �ٲٷ���, r �� ���� �� �ٲ� ��ڸ� �Է��մϴ�. **

  1. Ŀ���� ---> �� ǥ�õ� ù �ٷ� �ű�ϴ�.

  2. Ŀ���� �߸��� ù �κ���� �ű�ϴ�.

  3.  r  �� ���� ��, �߸��� �κ�� ���� �� ��ڸ� �Է��մϴ�.

  4. 2���� 3�� ������ �ݺ��Ͽ�, ù ��� ������ �����Ͻʽÿ�.

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Lesson 3.2 �� �̵��սô�.

���: �ܿ� ����, ���� �غ��鼭 ����� �Ѵٴ� ��� ��� ���ʽÿ�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 3.3: ��ȯ(CHANGE) ���


           ** �� �ܾ�� �Ϻγ� ��ü�� �ٲٷ���,  cw  �� ġ�ʽÿ�. **

  1. Ŀ���� ---> �� ǥ�õ� ù�ٷ� �ű�ϴ�.

  2. Ŀ���� lubw ���� u ���� �÷������ϴ�.

  3. cw ��� ����� �� �ܾ ��Ȯ�ϰ� �����մϴ�. (�� ���,  'ine' �� Ĩ�ϴ�.)

  4. <ESC> �� ���� �� ��� ������ ���ϴ� (�����Ǿ���� ù ��ڷ� ���ϴ�.)

  5. 3���� 4�� ������ �ݺ��Ͽ� ù��° ���� �ι�° ���� ������ ����ϴ�.

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

cw �� �ܾ ġȯ�ϴ� �� �Ӹ� �ƴ϶�, ���� ����� �� �ֵ��� �Ѵٴ� �Ϳ�
����սô�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Lesson 3.4: c �� �̿��� �ٸ� ��ȯ ���


     ** ��ȯ ���� ���� �� �̿��� ��� ���� ������ �� �ֽ��ϴ�. **

  1. ��ȯ ���� ���� ������ ������ �����մϴ�. ���� ����� �����ϴ�:

       [Ƚ��]   c   ���      �Ǵ�       c   [Ƚ��]   ���

  2. ���� ������ ��� ���� �����ϴ�.  w (�ܾ�),  $ (��� ��) ��� �ֽ��ϴ�.

  3. ---> �� ǥ�õ� ù�ٷ� �̵��մϴ�.

  4. ù ���� ���� Ŀ���� �ű�ϴ�.

  5. c$ �� �Է��Ͽ�, �� ��� ������� �ι�° ��ó�� �ǵ��� ������ �� <ESC> ��
     �����ʽÿ�.

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 3 ���


  1. �̹� ���� ���� �ǵ�������,  p  �� �����ʽÿ�. �� ���� Ŀ�� *�����*
     ������ ���� ��Դϴ�(PUT). (�� ��� ���� ��쿡�� Ŀ�� ��� �ٿ�
     ������ ����� �ٽ��ϴ�.)

  2. Ŀ�� �Ʒ��� ��ڸ� ġȯ�Ϸ���(REPLACE),  r  �� ���� �� ���� ��� ���
     �ٲپ� ��� ��ڸ� �Է��մϴ�.

  3. ��ȯ ���(CHANGE)�� Ŀ������ ���� ������ ���� ���� �ٲ� �� �ִ�
     ���Դϴ�. ���� ���, Ŀ�� ��ġ���� �ܾ�� ���� �ٲٷ���,  cw  ��
     �Է��ϸ� �Ǹ�,  c$  �� �� ���� �ٲٴ� �� ���Դϴ�.

  4. ��ȯ ���� ���� ����� �����ϴ�:

         [Ƚ��]   c   ���       �Ǵ�       c   [Ƚ��]   ���

����ؼ� ��� Lesson �� �����սô�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lesson 4.1: ��ġ�� ���� ����


  **  CTRL-g �� ������ ��� �������� ��� ��ġ�� ���� ���¸� �� �� �ֽ��ϴ�.
      SHIFT-G �� ������ ��� ���� �ٷ� �̵��մϴ�. **

  ���: �Ʒ��� �ܰ踦 �����ϱ� ����, �� Lesson ��ü�� ��� ����ʽÿ�.

  1. CTRL Ű�� ���� ���¿��� g �� �����ϴ�. ��� �̸��� ��� ��ġ�� ���
     ǥ�õ� ������ ȭ�� �Ʒ��� ǥ�õ� ��Դϴ�. 3��° �ܰ踦 ���� ��
     �� ��ȣ�� ����ϰ� ��ʽÿ�.

  2. SHIFT-G �� ������ ���� ���������� �̵��մϴ�.

  3. �Ʊ� ����ߴ� �� ��ȣ�� �Է��� �� SHIFT-G �� �����ʽÿ�. �̷��� �ϸ�
     ó���� CTRL-g �� ������ ��ҷ� �ǵ��ư��� �� ��Դϴ�.
     (��ȣ�� �Է��� ��, �̰�� ȭ�鿡 ǥ�õ�� �ʽ��ϴ�.)

  4. �ڽ�� ����ٸ�, 1���� 3���� �����غ��ʽÿ�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 4.2: � ���


              **  /  �� ���� �� �˻��� ������ �Է��Ͻʽÿ�. **

  1. ��� ��忡��  /  �� �Է��Ͻʽÿ�.  : ��ɿ����� ���������,  ȭ�� �Ʒ���
     / �� Ŀ���� ǥ�õ� ��Դϴ�.

  2. 'errroor' ��� ģ �� <ENTER> �� ġ�ʽÿ�. �� �ܾ ã������ �մϴ�.

  3. ���� ������ �ٽ� ã������, �����  n  �� �Է��Ͻʽÿ�.
     ���� ������ �ݴ� ������ ã������,  Shift-N �� �Է��Ͻʽÿ�.

  4. ������ �������� ã������,  /  ���  ? �� �̿��ϸ� �˴ϴ�.

---> "errroor" is not the way to spell error;  errroor is an error.

���: ã�� �߿� ���� ���� �ٴٸ��� �Ǹ�, ���� ó������ �ٽ� ã�� �˴ϴ�.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 4.3: ��ȣ�� ¦ ã��


              ** %  �� ������  ), ], } �� ¦�� ã���ϴ�. **

  1. Ŀ���� ---> �� ǥ�õ� ��� (, [, { �� �ϳ��� ������ �����ϴ�.

  2.  % �� �Է��� ���ô�.

  3. Ŀ���� ¦�� �´� ��ȣ�� �̵��� ��Դϴ�.

  4.  % �� �Է��Ͽ�, ��� ��ȣ�� �ǵ��� �ɽô�.

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

���: ¦�� ��� �ʴ� ��ȣ�� �ִ� ��α׷��� ����� ���� �ſ� �����մϴ�!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Lesson 4.4: ������ �����ϴ� ��


     **  :s/old/new/g  �ϸ� 'old' ��  'new' �� ġȯ(SUBTITUTE)�մϴ�. **

  1. Ŀ���� ---> �� ǥ�õ� �ٿ� ������ �����ϴ�.

  2.  :s/thee/the �� �Է��� �� <ENTER> �� Ĩ�ϴ�.  �� ���� �� �ٿ���
     ó������ �߰ߵ� �͸� �ٲ۴ٴ� �Ϳ� ����Ͻʽÿ�.

  3. �̹�����  :s/thee/the/g  �� �Է��մϴ�. �̴� �� �� ��ü(globally)��
     ġȯ�Ѵٴ� ��� �ǹ��մϴ�.

---> thee best time to see thee flowers is in thee spring.

  4. �� �� ���� ��� ���ڿ��� ���� ġȯ�Ϸ��� ����� ���� �մϴ�,
      :#,#s/old/new/g    #,# �� �� ��� �ٹ�ȣ�� ���մϴ�.
      :%s/old/new/g      ��� ��ü���� �߰ߵ� ��� ��� ġȯ�ϴ� ���Դϴ�.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 4 ���


  1. CTRL-g  �� ���� ���¿� ��� �������� ��� ��ġ�� ǥ���մϴ�.
     SHIFT-G  �� ���� ������ �̵��մϴ�. �ٹ�ȣ�� �Է��� �� SHIFT-G��
     �Է��ϸ�, �� �ٷ� �̵��մϴ�.

  2.  / �� �Է��� �� ������ �Է��ϸ� �� ������ �Ʒ������� ã���ϴ�.
      ? �� �Է��� �� ������ �Է��ϸ� �������� ã���ϴ�.
     �˻� ��, n �� �Է��ϸ� ���� ������ ��� ������ ã����,
     Shift-N �� �Է��ϸ� �ݴ� ������ ã���ϴ�.

  3. Ŀ���� (,),[,],{,} ���� ��� ����  % �� �Է��ϸ� ���ϴ� ¦��
     ã�ư��ϴ�.

  4. � �ٿ� ó�� ����ϴ� old�� new�� �ٲٷ���          :s/old/new
     �� �ٿ� ����ϴ� ��� old�� new�� �ٲٷ���            :s/old/new/g
     �� �� #,# ��̿��� ġȯ�� �Ϸ���                      :#,#s/old/new/g
     ��� ���� ��� ������ ġȯ�Ϸ���                      :%s/old/new/g
     �ٲ� ������ Ȯ��� ��ġ���� 'c'�� �ٿ���              :%s/old/new/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 5.1: �ܺ� ��� �����ϴ� ��


         **   :!  �� �Է��� �� �����Ϸ��� ���� �Է��Ͻʽÿ�. **

  1. ģ���� ����  :  �� �Է��ϸ� Ŀ���� ȭ�� �Ʒ��� �̵��մϴ�. ����
     �Է��� �� �ְ� �˴ϴ�.

  2. ���  ! (����ǥ) �� �Է��Ͻʽÿ�. �̷��� �ϸ� �ܺ� �� ���� ������
     �� �ֽ��ϴ�.

  3. ������ ! �����  ls  �� �Է��� �� <ENTER> �� �ĺ��ʽÿ�. �� ����Ʈ
     ����ó�� ���丮�� ���� ��µ� ��Դϴ�.  ls  �� ������� �ʴ´ٸ�
     :!dir �� �õ��� ���ʽÿ�.

���:  � �ܺ� ��ɵ� �� ������ ������ �� �ֽ��ϴ�.

���:  ���  :  ���� <ENTER> �� �ľ� ������ �˴ϴ�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 5.2: ���� �ڼ��� ��� ����


     ** ������ ���� ��Ϸ� �����Ϸ���,  :w  FILENAME  �Ͻʽÿ�. **

  1.  :!dir �Ǵ�  :!ls  �� �Է��Ͽ� ���丮�� ����Ʈ�� ���ɴϴ�.
     ���� ��� �� <ENTER>�� �ľ��Ѵٴ� ��� �̹� �˰� ��� ��Դϴ�.

  2. TEST ó�� ������� �ʴ� ��� �̸��� �ϳ� ���ʽÿ�.

  3. ���  :w TEST ��� �Է��Ͻʽÿ�.  (TEST�� ���� ������ ��� �̸��Դϴ�.)

  4. �̷��� �ϸ� �� ���� ��� ��ü�� TEST��� �̸����� �����մϴ�.
     Ȯ���Ϸ���,  :!dir �� �ٽ� �Է��Ͽ�, ���丮�� ���캸�ʽÿ�.

���: ���� ������ ��, ���� �ٽ� �����Ͽ� TEST��� ���� ����, �� ����
      ������� ���� �Ϻ�� ���� ���纻�� ��Դϴ�.

  5. ��� �� ���� ����ô�.
     (MS-DOS����):   !del TEST
     (Unix����):     !rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 5.3: ��������� �����ϴ� ���


        ** ���� �Ϻθ� �����Ϸ���,  :#,# w FILENAME  �Ͻʽÿ�. **

  1. �ٽ� �ѹ�,  :!dir  �̳�  :!ls �� �Է��Ͽ� ���丮�� ���� �޾ƿ� ��
     TEST ���� ������ �̸��� �����մϴ�.

  2. Ŀ���� �� ������ ó������ �ű� ��, Ctrl-g �� �Է��Ͽ� �� ��� �ٹ�ȣ��
     �˾Ƴ��ϴ�. �� ��ȣ�� ����Ͻʽÿ�!

  3. ��� �� ������ ���������� ����  Ctrl-g �� �ٽ� �Է��Ͻʽÿ�. �� ���
     �ٹ�ȣ ���� ����Ͻʽÿ�!

  4. � ���Ǹ� ��Ϸ� �����Ϸ���,  :#,# w TEST  �� �Է��ϸ� �˴ϴ�. �� ��
     #,# �� �Ʊ� ����ߴ� ��۰� �� �ٹ�ȣ �Դϴ�. TEST�� ��� �̸��Դϴ�.

  5. :!dir �� �̿��Ͽ� ���� �������� Ȯ���Ͻʽÿ�. ������ ���ʽÿ�.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 5.4: ��� �о��̱�, ��ġ��


       ** � ���� ���� ����Ϸ���,  :r FILENAME  �Ͻʽÿ� **

  1.  :!dir �� �Է��Ͽ� �Ʊ� ���� TEST ���� �״�� �ִ�� Ȯ���Ͻʽÿ�.

  2. Ŀ���� �� ������ ó������ ��̽ʽÿ�.

���:  3��° �ܰ踦 �����ϸ�, Lesson 5.3 �� ���� �� ��Դϴ�. �׷��� �Ǹ�
       �� lesson���� �ٽ� �������ʽÿ�.

  3. ��� TEST ���� �о��Խô�.  :r TEST  ���� ����Ͻʽÿ�. TEST ��
     ���� �̸��Դϴ�.

���:  �о��� ���� Ŀ���� ��ġ�� ������������ ���̰� �˴ϴ�.

  4. ���� �о�鿩�� ��� Ȯ���ϱ� ����, �ڷ� �̵��ؼ� �� ������ ��Ͽ���
     �о��� ����, �̷��� Lesson 5.3 �� �ι� �ݺ��Ǿ����� Ȯ���Ͻʽÿ�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 5 ���


  1.  :!command  �� �̿��Ͽ� �ܺ� ���� �����մϴ�.

      ������ ��:
         (MS-DOS)         (Unix)
          :!dir            :!ls            -  ���丮�� ���� �����ش�.
          :!del FILENAME   :!rm FILENAME   -  FILENAME�̶�� ���� �����.

  2.  :w FILENAME  �ϸ� ��� ������ ����ϴ� ���� FILENAME�̶�� �̸�����
      ��ũ�� �����մϴ�.

  3.  :#,#w FILENAME  �ϸ� #���� #���� ��� FILENAME�̶�� ��Ϸ� �����մϴ�.

  4.  :r FILENAME  �� ��ũ���� FILENAME�̶�� ���� �ҷ��鿩�� Ŀ�� ��ġ
      �ڿ� ��� ���� ����ֽ��ϴ�.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 6.1: �� �� ����(OPEN) ���


       **  o  �� ������ Ŀ�� �Ʒ��� ��� ����� �� ��尡 �˴ϴ�. **

  1. �Ʒ��� ---> �� ǥ�õ� �ٷ� Ŀ���� �ű�ʽÿ�.

  2.  o (�ҹ���)�� �ļ� Ŀ�� *�Ʒ���* ��� �ϳ� ���ʽÿ�. �� ��尡 �˴ϴ�.
     Insert mode.

  3. ---> �� ǥ�õ� ��� ������ ��  <ESC> �� ������ �� ��忡�� �����ʽÿ�.

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. Ŀ�� *����* ��� �ϳ� ������, �ҹ���  o ��� �빮��  O  �� ġ�� �˴ϴ�.
     �Ʒ� �ִ� �ٿ� ���� �� ���� �������ʽÿ�.
Open up a line above this by typing Shift-O while the cursor is on this line.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 6.2: �߰�(APPEND) ���


          **  a �� ������ Ŀ�� *�����* ��� �Է��� �� �ֽ��ϴ�. **

  1. Ŀ���� ---> �� ǥ�õ� ù��° ��� ������ �ű�ϴ�.  ��� ��忡��
     $ �� �̿��Ͻʽÿ�.

  2.  �ҹ��� a �� Ŀ�� �Ʒ� ��� *���*�� ��� �߰��� �� �ֽ��ϴ�.
     (�빮�� A�� �� ��� ���� �߰��մϴ�.)

���: �׷��� �Ͻø� ��� ��� ���� �߰��� �ϱ� ���� i�� ������, Ŀ�� �Ʒ���
      �ִ� ��ڸ� �ݺ��ϰ�, ��� �����ְ�, <ESC>�� ���� ��� ���� ���ƿͼ�,
      Ŀ���� ��������� �ű�� ���������� x�� ������ �ϴ� ���ŷο� ���Ͻ�
      �� �ֽ��ϴ�.

  3. ��� ù ��� �ϼ��Ͻʽÿ�. �߰� ���� �ؽ�Ʈ�� �ԷµǴ� ��ġ �ܿ���
     �� ���� ���� ���ٴ� ��� �����Ͻʽÿ�.

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 6.3: ġȯ(REPLACE) �� �ٸ� ����


      **  �빮�� R �� �Է��ϸ� �ϳ� �̻�� ��ڸ� �ٲ� �� �ֽ��ϴ�. **

  1. Ŀ���� ---> �� ǥ�õ� ù��° �ٷ� �ű�ʽÿ�.

  2. Ŀ���� ---> �� ǥ�õ� �ι�° �ٰ� �ٸ� ù��° �ܾ� ���� �ű�ʽÿ�.
     ('last' �Դϴ�.)

  3.  R  �� �Է��� �� ù��° ��� ���� �ؽ�Ʈ ���� ���ο� ��� �Է��Ͽ�
     ����� ����� �ι�° �ٰ� ��������� �ٲ߽ô�.

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. <ESC> �� ������ ������, �ٲ� ��� �ؽ�Ʈ�� �״�� ���� �˴ϴ�.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Lesson 6.4: �ɼ� ����(SET)

      ** ã�⳪ �ٲٱ⿡�� ��ҹ��� ����� ���ֱ� ���� �ɼ�� �����մϴ� **

  1. ����� �Է��Ͽ� 'ignore' �� ã���ʽÿ�:
     /ignore
      n Ű�� �̿��Ͽ� ������ �ݺ��Ͻʽÿ�.

  2. 'ic' (��ҹ��� ���� ����, Ignore case) �ɼ�� �����Ͻʽÿ�:
     :set ic

  3.  n Ű�� ������ 'ignore' �� �ٽ� ã�ƺ��ʽÿ�.
     n Ű�� ��� ������ ������ ã���ʽÿ�.

  4. 'hlsearch' �� 'incsearch' �ɼ�� �����սô�.
     :set hls is

  5. ã�� ���� �ٽ� �Է��Ͽ�, � ��� �Ͼ��� Ȯ���� ���ʽÿ�:
     /ignore

  6. ã�� ����� ����(HIGHLIGHT)�� ��� ���ַ���, ����� ���� �Է��մϴ�:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 6 ���


  1.  o �� �Է��ϸ� Ŀ�� *�Ʒ���* �� ��� ������, Ŀ���� �� ����
     ���� �� ���� ��ġ�ϰ� �˴ϴ�.
     �빮��  O  �� �Է��ϸ� Ŀ���� �ִ� ��� *����* �� ��� ���� �˴ϴ�.

  2.  a �� �Է��ϸ� Ŀ�� *�����* ��� �Է��� �� �ֽ��ϴ�.
     �빮��  A  �� �Է��ϸ� �ڵ����� �� ��� ���� ��ڸ� �߰��ϰ� �˴ϴ�.

  3. �빮��  R  �� �Է��ϸ� <ESC> �� ������ ������ ���� �ٲٱ� ��尡 �˴ϴ�.

  4. ":set xxx" �� �ϸ� "xxx" �ɼ�� �����˴ϴ�.









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       LESSON 7: �¶�� ���� ���


                      ** �¶�� ���� �ý��� ����ϱ� **

  ���� � ��� �¶�� ���� �ý���� �����մϴ�.  ����� ������,
  ��� ������ �� �ϳ��� �õ��غ��ʽÿ�:
        - <HELP> Ű�� ������. (Ű�� �ִ� ���)
        - <F1> Ű�� ������. (Ű�� �ִ� ���)
        - :help <ENTER>   ��� �Է��Ѵ�.

  ���� â�� �������  :q <ENTER>  ��� �Է��Ͻʽÿ�.

  ":help" ��� ��ɿ� ��ڸ� �ָ� � ����� ���� ����� ã�� �� �ֽ��ϴ�.
  ��� ���� ���� ���ʽÿ�. ( <ENTER> Ű�� ������ ��� ��� ���ʽÿ�.)

        :help w
        :help c_<T
        :help insert-index
        :help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       LESSON 8: ��� ��ũ��Ʈ �����

                            ** ���� ��� �ѱ� **

  ���� Vi ���� �ξ� ���� ���� ������ �����, ��κ�� �⺻������ �۵����
  �ʽ��ϴ�. �� ���� ���� �Ẹ����, "vimrc" ��� ���� ������ �մϴ�.

  1. "vimrc" ���� �����սô�. �� ���� ����ϴ� �ý��ۿ� ���� �ٸ��ϴ�:
  1. Start editing the "vimrc" file, this depends on your system:
        :edit ~/.vimrc                  Unix�� ���
        :edit $VIM/_vimrc               MS-Windows�� ���

  2. ��� "vimrc"�� ������ �о��Դϴ�:

        :read $VIMRUNTIME/vimrc_example.vim

  3. ����� ���� �Ͽ� ���� �����մϴ�:

        :write

  ��� ���� ���� ����ϸ�, ���� ����(syntax highlighting)�� ���� ��Դϴ�.
  ��� ���ϴ� ������ �� "vimrc" ��Ͽ� �־�� �� �ֽ��ϴ�.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  �̰���� �� ���̸� ��Ĩ�ϴ�.  �� ���̴� �� ���⿡ ���� ������ ���並
  �����ֱ� ���� �ǵ��� ���۵Ǿ�����, �� ���⸦ ���� ����� ����ϱ⿡
  ����� ��Դϴ�.  ������ �� ���̿ʹ� ���� �� ���� ��ŭ �ξ� ���� ����
  �ֽ��ϴ�.  ��� ���� �Ŵ��� ����ʽÿ�: ":help user-manual"

  ���� �ڼ�� �а� �����Ϸ���, ��� å�� ��õ�� �帳�ϴ�:
        Vim - Vi Improved - by Steve Oualline
        ���ǻ�: New Riders
  �� å�� ���� ���� ���ؼ��� �ٷ�� �ֽ��ϴ�.  Ư� �ʺ��ڵ鿡�� �����մϴ�.
  ���� ������ �׸��� �ֽ��ϴ�.
  ����� ����Ͻʽÿ�:  http://iccf-holland.org/click5.html

  ��� å�� �� ������ å���� �����ٴ� Vi�� ���� �ٷ�� �����, ���� ��õ�� ��
  �մϴ�:
        Learning the Vi Editor - by Linda Lamb
        ���ǻ�: O'Reilly & Associates Inc.
  Vi�� �ϰ� ��� ��� ��� �Ϳ� ���� �� �� �ִ� ���� å�Դϴ�.
  ������° ������� ���� ���� ���� ����ϰ� �ֽ��ϴ�.

  �� ���̴�  Colorado School of Mines�� Michael C. Pierce ��
  Robert K. Ware �� Colorado State University�� Charles Smith �� ��̵�
  ����Ͽ� ���ϴ�.
  .  E-mail: bware@mines.colorado.edu.

  Modified for Vim by Bram Moolenaar.

  �� ������ �ѱ��� ������ ���� ���Ǵ� ��� ���Ʈ�� ��ֽʽÿ�.
  http://wiki.kldp.org/wiki.php/VimTutorKo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z��A�A�vim80/tutor/tutor.eonu�[���==============================================================================
=  B o n v e n o n   al   la   I n s t r u i l o  de  V I M  -  Versio 1.7   =
==============================================================================

   Vim estas tre potenca redaktilo, kiu havas multajn komandojn, tro da ili
   por �ion klarigi en instruilo kiel �i tiu. �i tiu instruilo estas
   fasonita por priskribi sufi�ajn komandojn, por ke vi kapablu uzi Vim
   kun sufi�a facileco.

   La tempo bezonata por plenumi la kurson estas 25-30 minutoj, kaj dependas
   de kiom da tempo estas uzata por eksperimenti.

   ATENTU:
   La komandoj en la lecionoj �an�os la tekston. Kopiu tiun �i dosieron
   por ekzerci vin (se vi lan�is "vimtutor", tiam estas jam kopio).

   Gravas memori, ke �i tiu instruilo estas organizata por instrui per
   la uzo. Tio signifas, ke vi devas plenumi la komandojn por bone lerni
   ilin. Se vi nur legas la tekston, vi forgesos la komandojn!

   Nun, certigu, ke la majuskla baskulo NE estas en re�imo majuskla,
   kaj premu la klavon  j  sufi�e da fojoj por movi la kursoron, kaj por
   ke la leciono 1.1 plenigu la ekranon.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 1.1:  MOVI LA KURSORON


  ** Por movi la kursoron, premu la h,j,k,l klavojn kiel montrite. **
         ^
         k        Konsilo: La klavo h estas la plej liva kaj movas liven.
   < h       l >           La klavo l estas la plej dekstra kaj movas dekstren.
         j                 La klavo j aspektas kiel malsuprena sago.
         v
  1. Movu la kursoron sur la ekrano �is kiam vi sentas vin komforta.

  2. Premu la klavon (j) �is kiam �i ripetas.
     Vi nun scias, kiel movi�i al la sekvanta leciono

  3. Uzante la malsuprenan klavon, movi�u al la leciono 1.2.

RIMARKO: Se vi dubas pri tio, kion vi premis, premu <ESK> por reiri al
         la normala re�imo. Tiam repremu la deziratan komandon.

RIMARKO: La klavoj de la kursoro devus anka� funkcii. Sed uzante hjkl,
         vi kapablos movi�i pli rapide post kiam vi kutimi�os.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Leciono 1.2:  ELIRI EL VIM


  !! RIMARKO: Anta� ol plenumi iujn subajn pa�ojn ajn, legu la tutan lecionon!!

  1. Premu la klavon <ESK> (por certigi, ke vi estas en normala re�imo).

  2. Tajpu:       :q! <Enenklavo>.
     Tio eliras el la rekdaktilo, SEN konservi la �an�ojn, kiujn vi faris.

  3. Kiam vi vidas la �elinviton, tajpu la komandon kiun vi uzis por eniri
     en �i tiu instruilo. Tio estus:   vimtutor <Enenklavo>

  4. Se vi memoris tiujn pa�ojn kaj sentas vin memfida, plenumu la pa�ojn
     1 �is 3 por eliri kaj reeniri la redaktilon.

RIMARKO: :q! <Enenklavo> eliras sen konservi la �an�ojn, kiujn vi faris.
         Post kelkaj lecionoj, vi lernos kiel konservi la �an�ojn al dosiero.

  5. Movu la kursoron suben �is la leciono 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leciono 1.3:  REDAKTO DE TEKSTO - FORVI�O


             ** Premu  x  por forvi�i la signon sub la kursoro. **

  1. Movu la kursoron al la suba linio markita per --->.

  2. Por korekti la erarojn, movu la kursoron �is kiam �i estas sur la
     forvi�enda signo.

  3. Premu la klavon  x  por forvi�i la nedeziratan signon.

  4. Ripetu pa�ojn 2 �is 4 �is kiam la frazo estas �usta.


---> La boovinno saaltiss ssur laa luuno.

  5. Post kiam la linio estas �usta, iru al la leciono 1.4

RIMARKO: Trairante la instruilon, ne provu memori, lernu per la uzo.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 1.4:  REDAKTO DE TEKSTO - ENMETO


                      ** Premu  i  por enmeti tekston. **

  1. Movu la kursoron al la unua suba linio markita per --->.

  2. Por igi la unuan linion sama kiel la dua, movu la kursoron sur la unuan
     signon post kie la teksto estas enmetenda.

  3. Premu  i  kaj tajpu la bezonatajn aldonojn.

  4. Premu <ESK> kiam la eraroj estas korektitaj por reiri al la normala
     re�imo. Ripetu la pa�ojn 2 �is 4 por korekti la frazon.

---> Mank en �i linio.
---> Mankas teksto en �i tiu linio.

  5. Kiam vi sentas vin komforta pri enmeto de teksto, movi�u al la
     leciono 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leciono 1.5:  REDAKTO DE TEKSTO - POSTALDONO


                    ** Premu  A  por postaldoni tekston. **

  1. Movu la kursoron al la unua suba linio markita per --->.
     Ne gravas sur kiu signo estas la kursoro.

  2. Premu majusklan  A  kaj tajpu la bezonatajn aldonojn.

  3. Post kiam la teksto estas aldonita, premu <ESK> por reiri al la normala
     re�imo.

  4. Movu la kursoron al la dua linio markita per ---> kaj ripetu la
     pa�ojn 2 kaj 3 por korekti la frazon.

---> Mankas teksto el ti
     Mankas teksto el tiu linio.
---> Mankas anka� teks
     Mankas anka� teksto �i tie.

  5 Kiam vi sentas vin komforta pri postaldono de teksto, movi�u al la
    leciono 1.6


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 1.6:  REDAKTI DOSIERON

                ** Uzu  :wq  por konservi dosieron kaj eliri. **

  !! RIMARKO: Anta� ol plenumi iun suban pa�on ajn, legu la tutan lecionon!!

  1. Eliru el la instruilo kiel vi faris en la leciono 1.2:  :q!
     A�, se vi havas atingon al alia terminalo, faru tion, kio sekvas tie.

  2. �e la �elinvito, tajpu �i tiun komandon:  vim tutor <Enenklavo>
     'vim' estas la komando por lan�i la redaktilon Vim, 'tutor' estas la
     dosiernomo de la dosiero, kiun vi volas redakti.  Uzu dosieron, kiu
     �an�eblas.

  3. Enmetu kaj forvi�u tekston, kiel vi lernis en la anta�aj lecionoj.

  4. Konservu la dosieron kun �an�oj kaj eliru el Vim per:  :wq  <Enenklavo>

  5. Se vi eliris el la instruilo vimtutor en pa�o 1, restartigu la instruilon
     vimtutor kaj movi�u suben al la sekvanta resumo.

  6. Post kiam vi legis la suprajn pa�ojn, kaj komprenis ilin: faru ilin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 1 RESUMO


  1. La kursoro movi�as a� per la sagoklavoj, a� per la klavoj hjkl.
        h (liven)     j (suben)      k (supren)     l (dekstren)

  2. Por lan�i Vim el la �elinvito, tajpu:  vim DOSIERNOMO <Enenklavo>

  3. Por eliri el Vim, tajpu:  <ESK>  :q! <Enenklavo>  por rezigni la �an�ojn

  4. Por forvi�i la signojn �e la pozicio de la kursoro, tajpu:  x

  5. Por enmeti a� postaldoni tekston, tajpu:
          i  tajpu enmetendan tekston        <ESK>
             enmetas tekston anta� la kursoro

          A  tajpu la postaldonendan tekston <ESK>
             postaldonas post la kursoro

RIMARKO: Premo de <ESK> iras al la normala re�imo, a� rezignas la
         nedeziratan a� parte plenumita komando.

Nun da�rigu al la leciono 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leciono 2.1: KOMANDOJ DE FORVI�O


                      ** Tajpu  dw  por forvi�i vorton. **

  1. Premu  <ESK>  por certigi, ke vi estas en normala re�imo.

  2. Movu la kursoron al la linio markita per --->.

  3. Movu la kursoron al la komenco de vorto, kiu forvi�endas.

  4. Tajpu   dw   por forvi�i la vorton.

  RIMARKO: La litero  d  aperos en la lasta linio sur la ekrano kiam vi
           tajpas �in. Vim atendas �is kiam vi tajpas  w .  Se vi vidas
           alian signon ol  d  vi tajpis ion mise; premu  <ESK>  kaj
           rekomencu.

---> Estas iuj vortoj kiuj Zamenhof ne devus esti akuzativo en �i tiu frazo.

  5. Ripetu pa�ojn 3 kaj 4 �is kiam la frazo estas �usta kaj movi�u al la
     leciono 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 2.2: PLIAJ KOMANDOJ DE FORVI�O


               ** Tajpu  d$  por forvi�i la finon de la linio. **

  1. Premu  <ESK>  por certigi, ke vi estas en normala re�imo.

  2. Movu la kursoron sur la suban linion markita per --->.

  3. Movu la kursoron �e la fino de la �usta linio (POST la unua . ).

  4. Tajpu   d$   por forivi�i �is la fino de la linio.

---> Iu tajpis la finon de �i tiu linio dufoje. fino de �i tiu linio dufoje.


  5. Movi�u al la leciono 2.3 por kompreni kio okazas.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 2.3: PRI OPERATOROJ KAJ MOVOJ


  Multaj komandoj, kiuj �an�as la tekston, estas faritaj de operatoro kaj
  movo. La formato de komando de forvi�o per la operatoro de forvi�o  d
  estas kiel sekvas:

       d   movo

  Kie:
    d      - estas la operatoro de movo
    movo   - estas tio, pri kio la operatoro operacios (listigita sube)

  Mallonga listo de movoj:
    w - �is la komenco de la sekvanta vorto, krom �ia unua signo.
    e - �is la fino de la nuna vorto, krom la lasta signo.
    $ - �is la fino de la linio, krom la lasta signo.

  Do tajpo de   'de'   forvi�os ekde la kursoro �is la fino de la vorto.

RIMARKO: Premo de nur la movo en Normala re�imo sen operatoro movos
         la kursoron kiel specifite.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 2.4: UZI NOMBRON POR MOVO

             ** Tajpo de nombro anta� movo ripetas �in la�foje. **

  1. Movu la kursoron �e la komenco de la suba linio markita per --->.

  2. Tajpu  2w  por movi la kursoron je du vortoj anta�en.

  3. Tajpu  3e  por movi la kursoron �e la fino de la tria vorto anta�en.

  4. Tajpu  0  (nul) por movi�i �e la komenco de la linio.


  5. Ripetu pa�ojn 2 �is 3 kun malsamaj nombroj.

---> Tio estas nur linio kun vortoj, kie vi povas movi�i.

  6. Movi�u al la leciono 2.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 2.5: UZI NOMBRON POR FORVI�I PLI


            ** Tajpo de nombro kun operatoro ripetas �in la�foje. **

  En la kombina�o de la operatoro de forvi�o, kaj movo kiel menciita
  �i-supre, eblas aldoni nombron anta� la movo por pli forvi�i:
        d  nombro   movo

  1. Movu la kursoron �e la unua MAJUSKLA vorto en la linio markita per --->.

  2. Tajpu  d2w  por forvi�i la du MAJUSKLAJN vortojn

  3. Ripetu pa�ojn 1 �is 2 per malsama nombro por forvi�i la sinsekvajn
     MAJUSKLAJN vortojn per unu komando

---> Tiu AB CDE linio FGHI JK LMN OP de vortoj estas Q RS TUV purigita.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 2.6: OPERACII SUR LINIOJ


                   ** Tajpu  dd  por forvi�i tutan linion. **

  Pro la ofteco de forvi�o de tuta linio, la verkisto de Vi decidis, ke
  estus pli facile simple tajpi du d-ojn  por forvi�i linion.

  1. Movu la kursoron sur la duan linion en la suba frazo.
  2. Tajpu  dd  por forvi�i la linion.
  3. Nun movi�u al la kvara linio.
  4. Tajpu   2dd   por forvi�i du liniojn.

---> 1)  Rozoj estas ru�aj,
---> 2)  �limo estas amuza,
---> 3)  Violoj estas bluaj,
---> 4)  Mi havas a�ton,
---> 5)  Horlo�oj diras kioma horo estas,
---> 6)  Sukero estas dol�a,
---> 7)  Kaj tiel vi estas.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 2.7: LA KOMANDO DE MALFARO


 ** Premu u por malfari la lastajn komandojn, U por ripari la tutan linion. **

  1. Movu la kursoron �e la suba linio markita per ---> kaj metu �in sur
     la unuan eraron.
  2. Tajpu  x  por forvi�i la unuan nedeziratan signon.
  3. Nun tajpu  u  por malfari la lastan plenumitan komandon.
  4. �i-foje, riparu �iujn erarojn en la linio kaj �ia originala stato.
  5. Nun tajpu majusklan  U  por igi la linion al �ia anta�a stato.
  6. Nun tajpu  u  kelkfoje por malfari la  U  kaj anta�ajn komandojn.
  7. Nun tajpu CTRL-R (premante la CTRL klavon dum vi premas R) kelkfoje
     por refari la komandojn (malfari la malfarojn).

---> Koorektii la erarojn sur tiuu �i liniio kaj remettu illlin per malfaro.

  8. Tiuj estas tre utilaj komandoj.  Nun movi�u al la leciono 2 RESUMO.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 2 RESUMO


  1. Por forvi�i ekde la kursoro �is la sekvanta vorto, tajpu:    dw
  2. Por forvi�i ekde la kursoro �is la fino de la linio, tajpu:  d$
  3. Por forvi�i tutan linion, tajpu:                             dd

  4. Por ripeti movon, anta�metu nombron:                         2w
  5. La formato de �an�a komando estas:
           operatoro   [nombro]   movo

     kie:
       operatoro - estas tio, kio farendas, kiel  d  por forvi�i
       [nombro]  - estas opcia nombro por ripeti la movon
       movo      - movas sur la teksto por operacii, kiel ekzemple  w (vorto),
                   $ (�is fino de linio), ktp.

  6. Por movi�i al la komenco de la linio, uzu nul:  0

  7. Por malfari anta�ajn agojn, tajpu:               u (minuskla u)
     Por malfari �iujn �an�ojn sur la linio, tajpu:   U (majuskla U)
     Por refari la malfarojn, tajpu:                  CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 3.1 LA KOMANDO DE METO


    ** Tajpu  p  por meti tekston forvi�itan anta�e post la kursoro. **

  1. Movu la kursoron �e la unua ---> suba linio.

  2. Tajpu  dd  por forvi�i la linion kaj konservi �in ene de re�istro de Vim.

  3. Movu la kursoron �e la linio c), SUPER kie la forvi�ita linio devus esti.

  4. Tajpu  p  por meti la linion sub la kursoron.

  5. Ripetu la pa�ojn 2 �is 4 por meti �iujn liniojn en la �usta ordo.

---> d) �u anka� vi povas lerni?
---> b) Violoj estas bluaj,
---> c) Inteligenteco lerneblas,
---> a) Rozoj estas ru�aj,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 3.2 LA KOMANDO DE ANSTATA�IGO


       ** Tajpu  rx  por anstata�igi la signon �e la kursoro per  x . **


  1. Movu la kursoron �e la unua suba linio markita per --->.

  2. Movu la kursoron �is la unua eraro.

  3. Tajpu  r  kaj la signon, kiu devus esti tie.

  4. Ripetu pa�ojn 2 kaj 3 �is kiam la unua linio egalas la duan.

---> Kiem tiu lanio estis tajpita, iu pramis la na�uftajn klovojn!
---> Kiam tiu linio estis tajpita, iu premis la ne�ustajn klavojn!

  5. Nun movi�u al la leciono 3.3.

RIMARKO: Memoru, ke vi devus lerni per uzo, kaj ne per memorado.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 3.3 LA OPERATORO DE �AN�O


              ** Por �an�i �is la fino de la vorto, tajpu  ce . **

  1. Movu la kursoron �e la unua suba linio markita per --->.

  2. Metu la kursoron sur la  d  en  lduzw

  3. Tajpu  ce  kaj la �ustan vorton (en tiu �i kazo, tajpu inio ).

  4. Premu <ESK> kaj movi�u al la sekvanta signo, kiu bezonas �an�on.

  5. Ripetu la pa�ojn 3 kaj 4 �is kiam la unua frazo egalas la duan.

---> Tiu lduzw havas kelkajn vortojn, kiii bezas �an�on per la �an�ooto.
---> Tiu linio havas kelkajn vortojn, kiuj bezonas �an�on per la �an�operatoro.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 3.4 PLIAJ �AN�OJ PER c


       ** La operatoro de �an�o uzeblas kun la sama movo kiel forvi�o. **

  1. La operatoro de �an�o funkcias sammaniere kiel forvi�o. La formato estas:

       c    [nombro]   movo

  2. La movoj estas samaj, kiel ekzemple   w (vorto) kaj $ (fino de linio).

  3. Movi�u �e la unua suba linio markita per --->.

  4. Movu la kursoron al la unua eraro.

  5. Tajpu  c$  kaj tajpu la reston de la linio kiel la dua kaj premu <ESK>.

---> La fino de �i tiu linio bezonas helpon por igi �in same kiel la dua.
---> La fino de �i tiu linio bezonas korektojn per uzo de la komando  c$

RIMARKO:  Vi povas uzi la klavon Retropa�o por korekti erarojn dum vi tajpas.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 3 RESUMO


  1. Por remeti tekston, kiun vi �us forvi�is, tajpu  p. Tio metas la
     forvi�itan tekston POST la kursoro (se linio estis forvi�ita, �i
     iros en la linion sub la kursoro).

  2. Por anstata�igi la signon sub la kursoro, tajpu  r  kaj tiam la signon
     kion vi deziras havi tie.

  3. La operatoro de �an�o ebligas al vi �an�i ekde la kursoro, �is kie
     la movo iras.  Ekz. tajpu  ce  por �an�i ekde la kursoro �is la fino
     de la vorto,  c$  por �an�i �is la fino de la linio.

  4. La formato de �an�o estas:

         c    [nombro]   movo

Nun da�rigu al la sekvanta leciono.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Leciono 4.1: POZICIO DE KURSORO KAJ STATO DE DOSIERO


  ** Tajpu CTRL-G por montri vian pozicion en la dosiero kaj la dosierstaton.
     Tajpu  G  por movi�i al linio en la dosiero. **

  RIMARKO: Legu la tutan lecionon anta� ol plenumi iun pa�on ajn!!

  1. Premu la klavon Ctrl kaj premu  g . Oni nomas tion CTRL-G.
     Mesa�o aperos �e la suba parto de la pa�o kun la dosiernomo kaj la
     pozicio en la dosiero. Memoru la numeron de la linio por pa�o 3.

  RIMARKO: Vi eble vidas la pozicion de la kursoro �e la suba dekstra
           angulo de la ekrano. Tio okazas kiam la agordo 'ruler' estas
           �altita (vidu  :help 'ruler')

  2. Premu  G  por movi�i �e la subo de la dosiero.
     Tajpu gg  por movi�i �e la komenco de la dosiero.

  3. Tajpu la numeron de la linio kie vi estis kaj poste G .  Tio removos
     vin al la linio, kie vi estis kiam vi unue premis CTRL-G.

  4. Se vi sentas vin komforta, plenumu pa�ojn 1 �is 3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leciono 4.2 LA KOMANDO DE SER�O


             ** Tajpu  /  kaj poste frazon por ser�i la frazon. **

  1. En normala re�imo, tajpu la  /  signon.  Rimarku, ke �i kaj la kursoro
     aperas �e la suba parto de la ekrano kiel por la  :  komando.

  2. Nun tajpu 'errarro' <Enenklavo>.
     Tio estas la vorto, kion vi volas ser�i.

  3. Por ser�i la saman frazon denove, simple tajpu  n .
     Por ser�i la saman frazon denove en la retrodirekto, tajpu  N .

  4. Por ser�i frazon en la retrodirekto, uzu  ?  anstata�  / .

  5. Por reiri tien, el kie vi venis, premu  CTRL-O (Premu Ctrl kaj o
     literon o).  Ripetu por pli retroiri.  CTRL-I iras anta�en.

---> "errarro" ne estas maniero por literumi eraro; errarro estas eraro.

RIMARKO: Kiam la ser�o atingas la finon de la dosiero, �i da�ras �e la
         komenco, krom se la agordo 'wrapscan' estas mal�altita.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 4.3 SER�O DE KONGRUAJ KRAMPOJ


                 ** Tajpu  %  por trovi kongruan ), ] a�  } **

  1. Poziciu la kursoron sur iun (, [ a� { en la linio markita per --->.

  2. Nun tajpu la  %  signon.

  3. La kursoro movi�as al la kongrua krampo.

  4. Tajpu  %  por movi la kursoron al la alia kongrua krampo.

  5. Movu la kursoron al la alia (, ), [, ], {, } kaj observu tion,
     kion  %  faras.

---> �i tiu ( estas testa linio kun (-oj, [-oj, ]-oj kaj {-oj, }-oj en �i. ))


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 4.4 LA KOMANDO DE ANSTATA�IGO


     ** Tajpu  :s/malnova/nova/g  por anstata�igi 'nova' per 'malnova'. **

  1. Movu la kursoron al la suba linio markita per --->.

  2. Tajpu  :s/laa/la <Enenklavo> .  Rimarku, ke la komando �an�as nur la
     unuan okaza�on de "laa" en la linio.

  3. Nun tajpu  :s/laa/la/g .  Aldono de  g  opcio signifas mallokan
     anstata�igon en la linio. �i �an�as �iujn okaza�ojn de "laa" en la
     linio.

---> laa plej bona tempo por vidi florojn estas en laa printempo.

  4. Por �an�i �iujn okaza�ojn de iu �ena signo inter du linioj,
     tajpu    :#,#s/malnova/nova/g   kie #,# estas la numeroj de linioj de la
                                     intervalo de la linioj kie la anstata�igo
                                     okazos.
     Tajpu    :%s/malnova/nova/g     por �an�i �iujn okaza�ojn en la tuta
                                     dosiero.
     Tajpu    :s/malnova/nova/gc     por trovi �iujn okaza�ojn en la tuta
                                     dosiero, kun invitilo �u anstata�igi
                                     a� ne.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 4 RESUMO

  1. CTRL-G  vidigas vian pozicion en la dosiero kaj la staton de la dosiero.
            G  movas la kursoron al la fino de la dosiero.
     numero G  movas la kursoron al numero de tiu linio.
           gg  movas la kursoron al la unua linio.

  2. Tajpo de  /  kaj frazon ser�as la frazon anta�en.
     Tajpo de  ?  kaj frazon ser�as la frazon malanta�en.
     Post ser�o, tajpu n por trovi la sekvantan okaza�on en la sama direkto a�
     N por ser�i en la mala direkto.
     CTRL-O movas vin al la anta�aj pozicioj, CTRL-I al la novaj pozicioj.

  3. Tajpo de  %  kiam la kursoro estas sur (,),[,],{ a� } movi�as al �ia
     kongruo.

  4. Por anstata�igi 'nova' en la unua 'malnova' en linio :s/malnova/nova
     Por anstata�igi 'nova' en �iuj 'malnova'-oj en linio :s/malnova/nova/g
     Por anstata�igi frazon inter du #-aj linioj          :#,#s/malnova/nova/g
     Por anstata�igi �iujn okaza�ojn en la dosiero        :%s/malnova/nova/g
     Por demandi konfirmon �iu-foje, aldonu 'c'           :%s/malnova/nova/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leciono 5.1 KIEL PLENUMI EKSTERAN KOMANDON


     ** Tajpu  :!  sekvata de ekstera komando por plenumi la komandon. **

  1. Tajpu la konatan komandon  :  por pozicii la kursoron �e la suba parto
     de la ekrano. Tio ebligas tajpadon de komando en komanda linio.

  2. Nun tajpu la  !  (krisigno) signon. Tio ebligas al vi plenumi iun
     eksteran �elan komandon ajn.

  3. Ekzemple, tajpu  ls  post ! kaj tajpu <Enenklavo>. Tio listigos la
     enhavon de la dosierujo, same kiel se vi estis en �ela invito.
     A� uzu  :!dir  se ls ne funkcias.

RIMARKO: Eblas plenumi iun eksteran komandon ajn tiamaniere, anka� kun
         argumentoj.

RIMARKO: �iuj  :  komandoj devas fini�i per tajpo de <Enenklavo>
         Ekde nun, ni ne plu mencios tion.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 5.2 PLI PRI KONSERVO DE DOSIERO


   ** Por konservi la faritajn �an�ojn en la teksto, tajpu  :w DOSIERNOMO. **

  1. Tajpu  !dir  a�  !ls  por akiri liston de via dosierujo.
     Vi jam scias, ke vi devas tajpi <Enenklavo> post tio.

  2. Elektu dosieron, kiu ankora� ne ekzistas, kiel ekzemple TESTO.

  3. Nun tajpu:   :w TESTO   (kie TESTO estas la elektita dosiernomo)

  4. Tio konservas la tutan dosieron (instruilon de Vim) kun la nomo TESTO.
     Por kontroli tion, tajpu   :!dir   a�   :!ls   denove por vidigi vian
     dosierujon.

RIMARKO: Se vi volus eliri el Vim kaj restartigi �in denove per  vim TESTO,
         la dosiero estus precize same kiel kopio de la instruilo kiam vi
         konservis �in.

  5. Nun forvi�u la dosieron tajpante (MS-DOS):     :!del TESTO
                                   a� (UNIKSO):     :!rm TESTO


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 5.3 APARTIGI KONSERVENDAN TESTON


    ** Por konservi parton de la dosiero, tajpu   v  movo  :w DOSIERNOMO **

  1. Movu la kursoron al tiu linio.

  2. Premu  v  kaj movu la kursoron al la kvina suba ero.  Rimarku, ke la
     teksto emfazi�as.

  3. Premu la  :  signon.  �e la fino de la ekrano  :'<,'>  aperos.

  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ankora� ne ekzistas.
     Kontrolu, ke vi vidas  :'<,'>w TESTO  anta� ol premi <Enenklavo>.

  5. Vim konservos la apartigitajn liniojn al la dosiero TESTO.  Uzu  :dir
     a�  :!ls  por vidigi �in.  Ne forvi�u �in.  Ni uzos �in en la sekvanta
     leciono.

RIMARKO: Premo de  v  komencas Viduman apartigon.  Vi povas movi la kursoron
         por pligrandigi a� malpligrandigi la apartigon. Tiam vi povas uzi
         operatoron por plenumi ion kun la teksto.  Ekzemple,  d  forvi�as
         la tekston.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leciono 5.4 AKIRI KAJ KUNFANDI DOSIEROJN


         ** Por enmeti la enhavon de dosiero, tajpu  :r DOSIERNOMON **

  1. Movu la kursoron tuj super �i tiu linio.

RIMARKO: Post plenumo de pa�o 2, vi vidos tekston el la leciono 5.3.  Tiam
         movi�u SUBEN por vidi tiun lecionon denove.

  2. Nun akiru vian dosieron TESTO uzante la komandon   :r TESTO   kie TESTO
     estas la nomo de la dosiero, kiun vi uzis.
     La dosiero, kion vi akiras, estas metita sub la linio de la kursoro.

  3. Por kontroli, �u la dosiero akiri�is, retromovu la kursoron kaj rimarku,
     ke estas nun du kopioj de la leciono 5.3, la originala kaj la versio mem
     de la dosiero.

RIMARKO: Vi nun povas legi la eliron de ekstera komando. Ekzemple,
        :r !ls  legas la eliron de la komando ls kaj metas �in sub la
        kursoron.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 5 RESUMO


  1.  :!komando  plenumas eksteran komandon.

      Iuj utilaj ekzemploj estas:
        (MS-DOS)           (UNIKSO)
         :!dir              :!ls            - listigas dosierujon
         :!del DOSIERNOMO   :!rm DOSIERNOMO - forvi�as la dosieron DOSIERNOMO

  2.  :w DOSIERNOMO  konservas la nunan dosieron de Vim al disko kun la
      nomo DOSIERNOMO.

  3.  v  movo  :w DOSIERNOMO  konservas la Viduman apartigon de linioj en
      dosiero DOSIERNOMO.

  4. :r DOSIERNOMO  akiras la dosieron DOSIERNOMO el la disko kaj metas
     �in sub la pozicion de la kursoro.

  5. :r !dir  legas la eligon de la komando dir kaj metas �in sub la
     pozicion de la kursoro.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 6.1 LA KOMANDO DE MALFERMO


  ** Tajpu o por malfermi linion sub la kursoro kaj eniri Enmetan re�imon. **

  1. Movu la kursoron al la suba linio markita per --->.

  2. Tajpu la minusklan literon  o  por malfermi linion SUB la kursoro kaj
     eniri la Enmetan re�imon.

  3. Nun tajpu tekston kaj premu <ESK> por eliri el la Enmeta re�imo.

---> Post tajpo de  o  la kursoro movi�as al la malfermata linio en
     Enmeta re�imo.

  4. Por malfermi linion SUPER la kursoro, nur tajpu majusklan  O  ,
     anstata� minusklan  o.  Provu tion per la suba linio.

---> Malfermu linion SUPER tiu tajpante O dum la kursoro estas sur tiu linio.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leciono 6.2 LA KOMANDO DE POSTALDONO


                  ** Tajpu  a  por enmeti POST la kursoro. **

  1. Movu la kursoron �e la komenco de la linio markita per --->.

  2. Premu  e  �is kiam la kursoro estas �e la fino de  li.

  3. Tajpu  a  (minuskle) por aldoni tekston POST la kursoro.

  4. Kompletigu la vorton same kiel la linio sub �i.  Premu <ESK> por
     eliri el la Enmeta re�imo.

  5. Uzu  e  por movi�i al la sekvanta nekompleta vorto kaj ripetu
     pa�ojn 3 kaj 4.

---> �i tiu lin ebligos vin ekz vin postal tekston al linio.
---> �i tiu linio ebligos vin ekzerci vin postaldoni tekston al linio.

RIMARKO: �iu  a, i kaj A  iras al la sama Enmeta re�imo, la nura malsamo
         estas tie, kie la signoj estas enmetitaj.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 6.3 ALIA MANIERO POR ANSTATA�IGI


          ** Tajpu majusklan  R  por anstata�igi pli ol unu signo. **

  1. Movu la kursoron al la unua suba linio markita per --->.  Movu la
     kursoron al la komenco de la unua  xxx .

  2. Nun premu  R  kaj tajpu la nombron sub �i en la dua linio, por ke �i
     anstata�igu la xxx .

  3. Premu <ESK> por foriri el la Anstata�iga re�imo. Rimarku, ke la cetera
     parto de la linio restas ne�an�ata.

  4. Ripetu la pa�ojn por anstata�igi la restantajn xxx.

---> Aldono de 123 al xxx donas al vi xxx.
---> Aldono de 123 al 456 donas al vi 579.

RIMARKO: Anstata�iga re�imo estas same kiel Enmeta re�imo, sed �iu signo
         tajpita forvi�as ekzistan signon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leciono 6.4 KOPII KAJ ALGLUI TEKSTON


     ** Uzu la  y  operatoron por kopii tekston, kaj  p  por alglui �in **


  1. Iru al la linio markita per ---> sube kaj poziciu la kursoron post "a)".

  2. Komencu la Viduman re�imon per  v  kaj movu la kursoron tuj anta� "unua".

  3. Tajpu  y  por kopii la emfazitan tekston.

  4. Movu la kursoron �e la fino de la linio:  j$

  5. Tajpu  p  por alglui la tekston.  Tiam tajpu:  a dua <ESK> .

  6. Uzu Viduman re�imon por apartigi " ero.", kopiu �in per  y , movi�u
     �e la fino de la sekvanta linio per  j$  kaj algluu la tekston tie
     per  p .

---> a) tio estas la unua ero.
     b)

RIMARKO: vi povas anka� uzi  y  kiel operatoro;  yw  kopias unu vorton.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Leciono 6.5 AGORDI OPCION


         ** Agordu opcion por ke ser�o a� anstata�igo ignoru usklecon **

  1. Ser�u 'ignori' per tajpo de /ignori <Enenklavo>
     Ripetu plurfoje premante  n .

  2. �altu la opcion 'ic' (ignori usklecon) per:   :set ic

  3. Nun ser�u 'ignori' denove premante  n
     Rimarku, ke Ignori kaj IGNORI estas nun troveblas.

  4. �altu la opciojn 'hlsearch' kaj 'incsearch':   :set hls is

  5. Nun retajpu la ser�an komandon kaj vidu kio okazas:  /ignore <Enenklavo>

  6. Por mal�alti ignoron de uskleco:  :set noic

RIMARKO: Por forigi emfazon de kongruo, tajpu:   :nohlsearch
RIMARKO: Se vi deziras ignori usklecon por nur unu ser�a komando, uzu  \c
         en la frazo:  /ignore\c  <Enenklavo>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 6 RESUMO

  1. Tajpu  o  por malfermi linion SUB la kursoro kaj eki en Enmeta re�imo.
  1. Tajpu  O  por malfermi linion SUPER la kursoro.

  2. Tajpu  a  por enmeti tekston POST la kursoro.
     Tajpu  A  por enmeti tekston post la fino de la linio.

  3. La  e  komando movas la kursoron al la fino de vorto.

  4. la  y  operatoro kopias tekston,  p  algluas �in.

  5. Tajpo de majuskla  R  eniras la Anstata�igan re�imon �is kiam
     <ESK> estas premita.

  6. Tajpo de ":set xxx" �altas la opcion "xxx".  Iuj opcioj estas:
        'ic' 'ignorecase'     ignori usklecon dum ser�o
        'is' 'incsearch'      montru partan kongruon dum ser�o
        'hls' 'hlsearch'      emfazas �iujn kongruajn frazojn
     Vi povas uzi a� la longan, a� la mallongan nomon de opcio.

  7. Anta�aldonu "no" por mal�alti la opcion:  :set noic


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leciono 7.1 AKIRI HELPON


                          ** Uzu la helpan sistemon **

  Vim havas ampleksan helpan sistemon. Por komenci�i, provu unu el la tiuj
  tri:
        - premu la klavon <HELPO> (se vi havas �in)
        - premu la klavon <F1> (se vi havas �in)
        - tajpu   :help <Enenklavo>

  Legu la tekston en la helpfenestro por trovi kiel helpo funkcias.
  Tajpu  CTRL-W CTRL-W      por salti de unu fenestro al la alia.
  Tajpu    :q <Enenklavo>   por fermi la helpan fenestron.

  Vi povas trovi helpon pri io ajn aldonante argumenton al la komando
  ":help".  Provu tiujn (ne forgesu premi <Enenklavo>):

        :help w
        :help c_CTRL-D
        :help insert-index
        :help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 7.2 KREI STARTAN SKRIPTON


                         ** Ebligu kapablojn de Vim **

  Vim havas multe pli da kapabloj ol Vi, sed la plej multaj estas defa�lte
  mal�altitaj.  Por ekuzi la kapablojn, vi devas krei dosieron "vimrc".

  1. Ekredaktu la dosieron "vimrc".  Tio dependas de via sistemo:
      :e ~/.vimrc          por Unikso
      :e $VIM/_vimrc       por MS-Vindozo

  2. Nun legu la enhavon de la ekzempla "vimrc"
      :r $VIMRUNTIME/vimrc_example.vim

  3. Konservu la dosieron per:
      :w

  La sekvantan fojon, kiam vi lan�as Vim, �i uzos sintaksan emfazon.
  Vi povas aldoni �iujn viajn preferatajn agordojn al tiu dosiero "vimrc".
  Por pli da informoj, tajpu  :help vimrc-intro


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             Leciono 7.3 KOMPLETIGO


             ** Kompletigo de komanda linio per CTRL-D kaj <TAB> **

  1. Certigu ke Vim estas en kongrua re�imo:  :set nocp

  2. Rigardu tiujn dosierojn, kiuj ekzistas en la dosierujo:  :!ls  a�  :!dir

  3. Tajpu la komencon de komando:  :e

  4. Premu  CTRL-D  kaj Vim montros liston de komandoj, kiuj komencas per "e".

  5. Premu <TAB>  kaj Vim kompletigos la nomon de la komando al ":edit".

  6. Nun aldonu spaceton kaj la komencon de ekzistanta nomo:  :edit DOSI

  7. Premu <TAB>.  Vim kompletigos la nomon (se �i estas unika)

RIMARKO: Kompletigo funkcias por multaj komandoj. Nur provu premi CTRL-D kaj
         <TAB>.  Estas aparte utila por  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 7 RESUMO


  1. Tajpu  :help  a� premu <F1> a� <Helpo>  por malfermi helpan fenestron.

  2. Tajpu  :help kmd  por trovi helpon pri  kmd.

  3. Tajpu  CTRL-W CTRL-W  por salti al alia fenestro.

  4. Tajpu  :q  to fermi la helpan fenestron.

  5. Kreu komencan skripton vimrc por konservi viajn agordojn.

  6. Kiam vi tajpas  :  komandon, premu CTRL-D por vidi �iujn kompleteblojn.
     Premu <TAB> por uzi unu kompletigon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Tio konkludas la instruilon de Vim.  �i celis doni mallongan superrigardon
  de la redaktilo Vim, nur tion kio sufi�as por ebligi al vi facilan uzon de
  la redaktilo. Estas nepre nekompleta, �ar Vim havas multajn multajn pliajn
  komandojn. Legu la manlibron: ":help user-manual".

  Tiu instruilo estis verkita de Michael C. Pierce kaj Robert K. Ware,
  el la Koloradia Lernejo de Minejoj (Colorado School of Mines) uzante
  ideojn provizitajn de Charles Smith el la Stata Universitato de Koloradio
  (Colorado State University)

  Retpo�to: bware@mines.colorado.edu.

  Modifita por Vim de Bram Moolenaar.

  Esperantigita fare de Dominique Pell�, 2008-04-01
  Retpo�to: dominique.pelle@gmail.com
  Lasta �an�o: 2016-07-02

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Zy
?D�D�vim80/tutor/tutor.nbnu�[���===============================================================================
= V e l k o m m e n   t i l   i n n f � r i n g e n   i   V i m  --  Ver. 1.7 =
===============================================================================

     Vim er en meget kraftig editor med mange kommandoer, alt for mange til �
     kunne g� gjennom alle i en innf�ring som denne. Den er beregnet p� �
     sette deg inn i bruken av nok kommandoer s� du vil v�re i stand til lett
     � kunne bruke Vim som en editor til alle form�l.

     Tiden som kreves for � g� gjennom denne innf�ringen tar ca. 25-30
     minutter, avhengig av hvor mye tid du bruker til eksperimentering.

     MERK:
     Kommandoene i leksjonene vil modifisere teksten. Lag en kopi av denne
     filen som du kan �ve deg p� (hvis du kj�rte �vimtutor�-kommandoen, er
     dette allerede en kopi).

     Det er viktig � huske at denne innf�ringen er beregnet p� l�ring gjennom
     bruk. Det betyr at du m� utf�re kommandoene for � l�re dem skikkelig.
     Hvis du bare leser teksten, vil du glemme kommandoene!

     F�rst av alt, sjekk at �Caps Lock� IKKE er aktiv og trykk �j�-tasten for
     � flytte mark�ren helt til leksjon 1.1 fyller skjermen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 1.1:  FLYTTING AV MARK�REN


       ** For � flytte mark�ren, trykk tastene h, j, k, l som vist. **
	     ^
	     k		Tips: h-tasten er til venstre og flytter til venstre.
       < h	 l >	      l-tasten er til h�yre og flytter til h�yre.
	     j		      j-tasten ser ut som en pil som peker nedover.
	     v
  1. Flytt mark�ren rundt p� skjermen til du har f�tt det inn i fingrene.

  2. Hold inne nedovertasten (j) til den repeterer.
     N� vet du hvordan du beveger deg til neste leksjon.

  3. G� til leksjon 1.2 ved hjelp av nedovertasten.

Merk: Hvis du blir usikker p� noe du har skrevet, trykk <ESC> for � g� til
      normalmodus. Skriv deretter kommandoen du �nsket p� nytt.

Merk: Piltastene skal ogs� virke. Men ved � bruke hjkl vil du v�re i stand til
      � bevege mark�ren mye raskere n�r du er blitt vant til det. Helt sant!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Leksjon 1.2: AVSLUTTE VIM


  !! MERK: F�r du utf�rer noen av punktene nedenfor, les hele leksjonen!!

  1. Trykk <ESC>-tasten (for � forsikre deg om at du er i normalmodus).

  2. Skriv:	:q! <ENTER>.
     Dette avslutter editoren og FORKASTER alle forandringer som du har gjort.

  3. N�r du ser kommandolinjen i skallet, skriv kommandoen som startet denne
     innf�ringen. Den er:   vimtutor <ENTER>

  4. Hvis du er sikker p� at du husker dette, utf�r punktene 1 til 3 for �
     avslutte og starte editoren p� nytt.

MERK:  :q! <ENTER>  forkaster alle forandringer som du gjorde. I l�pet av noen
       f� leksjoner vil du l�re hvordan du lagrer forandringene til en fil.

  5. Flytt mark�ren ned til leksjon 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 1.3: REDIGERING AV TEKST -- SLETTING


	     ** Trykk  x  for � slette tegnet under mark�ren. **

  1. Flytt mark�ren til den f�rste linjen merket med  --->.

  2. For � ordne feilene p� linjen, flytt mark�ren til den er opp� tegnet som
     skal slettes.

  3. Trykk tasten  x  for � slette det u�nskede tegnet.

  4. Repeter punkt 2 til 4 til setningen er lik den som er under.

---> Hessstennnn brrr�snudddde ii gaaata.
---> Hesten br�snudde i gata.

  5. N� som linjen er korrekt, g� til leksjon 1.4.

MERK: N�r du g�r gjennom innf�ringen, ikke bare pr�v � huske kommandoene, men
      bruk dem helt til de sitter.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.4: REDIGERING AV TEKST -- INNSETTING


		    ** Trykk  i  for � sette inn tekst. **

  1. Flytt mark�ren til den f�rste linjen som er merket med --->.

  2. For � gj�re den f�rste linjen lik den andre, flytt mark�ren til den st�r
     p� tegnet ETTER posisjonen der teksten skal settes inn.

  3. Trykk  i  og skriv inn teksten som mangler.

  4. Etterhvert som hver feil er fikset, trykk <ESC> for � returnere til
     normalmodus. Repeter punkt 2 til 4 til setningen er korrekt.

---> Det er tkst som mnglr .
---> Det er ganske mye tekst som mangler her.

  5. N�r du f�ler deg komfortabel med � sette inn tekst, g� til oppsummeringen
     nedenfor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.5: REDIGERING AV TEKST -- LEGGE TIL


		    ** Trykk  A  for � legge til tekst. **

  1. Flytt mark�ren til den f�rste linjen nedenfor merket --->.
     Det har ikke noe � si hvor mark�ren er plassert p� den linjen.

  2. Trykk  A  og skriv inn det som skal legges til.

  3. N�r teksten er lagt til, trykk <ESC> for � returnere til normalmodusen.

  4. Flytt mark�ren til den andre linjen markert med ---> og repeter steg 2 og
     3 for � reparere denne setningen.

---> Det mangler noe tekst p
     Det mangler noe tekst p� denne linjen.
---> Det mangler ogs� litt tek
     Det mangler ogs� litt tekst p� denne linjen.

  5. N�r du f�ler at du behersker � legge til tekst, g� til leksjon 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 1.6: REDIGERE EN FIL


	       ** Bruk	:wq  for � lagre en fil og avslutte. **

  !! MERK: F�r du utf�rer noen av stegene nedenfor, les hele denne leksjonen!!

  1. Avslutt denne innf�ringen som du gjorde i leksjon 1.2:  :q!

  2. Skriv denne kommandoen p� kommandolinja:  vim tutor <ENTER>
     �vim� er kommandoen for � starte Vim-editoren, �tutor� er navnet p� fila
     som du vil redigere. Bruk en fil som kan forandres.

  3. Sett inn og slett tekst som du l�rte i de foreg�ende leksjonene.

  4. Lagre filen med forandringene og avslutt Vim med:	:wq <ENTER>

  5. Start innf�ringen p� nytt og flytt ned til oppsummeringen som f�lger.

  6. Etter � ha lest og forst�tt stegene ovenfor: Sett i gang.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 1


  1. Mark�ren beveges ved hjelp av piltastene eller hjkl-tastene.
	 h (venstre)	 j (ned)     k (opp)	 l (h�yre)

  2. For � starte Vim fra skall-kommandolinjen, skriv:	vim FILNAVN <ENTER>

  3. For � avslutte Vim, skriv:  <ESC> :q! <ENTER>  for � forkaste endringer.
		   ELLER skriv:  <ESC> :wq <ENTER>  for � lagre forandringene.

  4. For � slette tegnet under mark�ren, trykk:  x

  5. For � sette inn eller legge til tekst, trykk:
	 i    skriv innsatt tekst  <ESC>	sett inn f�r mark�ren
	 A    skriv tillagt tekst  <ESC>	legg til p� slutten av linjen

MERK: N�r du trykker <ESC> g�r du til normalmodus eller du avbryter en u�nsket
      og delvis fullf�rt kommando.

  N� kan du g� videre til leksjon 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.1: SLETTEKOMMANDOER


		    ** Trykk  dw  for � slette et ord. **

  1. Trykk <ESC> for � v�re sikker p� at du er i normalmodus.

  2. Flytt mark�ren til den f�rste linjen nedenfor merket --->.

  3. Flytt mark�ren til begynnelsen av ordet som skal slettes.

  4. Trykk  dw	og ordet vil forsvinne.

MERK: Bokstaven  d  vil komme til syne p� den nederste linjen p� skjermen n�r
      du skriver den. Vim venter p� at du skal skrive w . Hvis du ser et annet
      tegn enn	d  har du skrevet noe feil; trykk <ESC> og start p� nytt.

---> Det er agurk tre ord eple som ikke h�rer p�re hjemme i denne setningen.
---> Det er tre ord som ikke h�rer hjemme i denne setningen.

  5. Repeter punkt 3 og 4 til den f�rste setningen er lik den andre. G�
     deretter til leksjon 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 2.2: FLERE SLETTEKOMMANDOER


	     ** Trykk  d$  for � slette til slutten av linjen. **

  1. Trykk <ESC> for � v�re sikker p� at du er i normalmodus.

  2. Flytt mark�ren til linjen nedenfor merket --->.

  3. Flytt mark�ren til punktet der linjen skal kuttes (ETTER f�rste punktum).

  4. Trykk  d$	for � slette alt til slutten av linjen.

---> Noen skrev slutten p� linjen en gang for mye. linjen en gang for mye.

  5. G� til leksjon 2.3 for � forst� hva som skjer.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 2.3: OM OPERATORER OG BEVEGELSER


  Mange kommandoer som forandrer teksten er laget ut i fra en operator og en
  bevegelse. Formatet for en slettekommando med sletteoperatoren  d  er:

	d   bevegelse

  Der:
    d	      - er sletteoperatoren.
    bevegelse - er hva operatoren vil opere p� (listet nedenfor).

  En kort liste med bevegelser:
    w - til starten av det neste ordet, UNNTATT det f�rste tegnet.
    e - til slutten av det n�v�rende ordet, INKLUDERT det siste tegnet.
    $ - til slutten av linjen, INKLUDERT det siste tegnet.

  Ved � skrive	de  vil alts� alt fra mark�ren til slutten av ordet bli
  slettet.

MERK:  Ved � skrive kun bevegelsen i normalmodusen uten en operator vil
       mark�ren flyttes som spesifisert.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 LEKSJON 2.4: BRUK AV TELLER FOR EN BEVEGELSE


 ** Ved � skrive et tall foran en bevegelse repeterer den s� mange ganger. **

  1. Flytt mark�ren til starten av linjen markert ---> nedenfor.

  2. Skriv  2w	for � flytte mark�ren to ord framover.

  3. Skriv  3e	for � flytte mark�ren framover til slutten av det tredje
     ordet.

  4. Skriv  0  (null) for � flytte til starten av linjen.

  5. Repeter steg 2 og 3 med forskjellige tall.

---> Dette er en linje med noen ord som du kan bevege deg rundt p�.

  6. G� videre til leksjon 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 2.5: BRUK AV ANTALL FOR � SLETTE MER


     ** Et tall sammen med en operator repeterer den s� mange ganger. **

  I kombinasjonen med sletteoperatoren og en bevegelse nevnt ovenfor setter du
  inn antall f�r bevegelsen for � slette mer:
	 d  nummer  bevegelse

  1. Flytt mark�ren til det f�rste ordet med STORE BOKSTAVER p� linjen markert
     med --->.

  2. Skriv  2dw  for � slette de to ordene med store bokstaver.

  3. Repeter steg 1 og 2 med forskjelling antall for � slette de etterf�lgende
     ordene som har store bokstaver.

---> Denne ABC DE linjen FGHI JK LMN OP er n� Q RS TUV litt mer lesbar.

MERK: Et antall mellom operatoren  d  og bevegelsen virker p� samme m�te som �
      bruke bevegelsen uten en operator.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.6: OPERERE P� LINJER


		 ** Trykk  dd  for � slette en hel linje. **

  P� grunn av at sletting av linjer er mye brukt, fant utviklerne av Vi ut at
  det vil v�re lettere � rett og slett trykke to d-er for � slette en linje.

  1. Flytt mark�ren til den andre linjen i verset nedenfor.
  2. Trykk  dd	 � slette linjen.
  3. Flytt deretter til den fjerde linjen.
  4. Trykk  2dd  for � slette to linjer.

--->  1) Roser er r�de,
--->  2) Gj�rme er g�y,
--->  3) Fioler er bl�,
--->  4) Jeg har en bil,
--->  5) Klokker viser tiden,
--->  6) Druer er s�te
--->  7) Og du er likes�.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.7: ANGRE-KOMMANDOEN


  ** Trykk  u  for � angre siste kommando,  U  for � fikse en hel linje. **

  1. Flytt mark�ren til linjen nedenfor merket ---> og plasser den p� den
     f�rste feilen.
  2. Trykk  x  for � slette det f�rste u�nskede tegnet.
  3. Trykk s�  u  for � angre den siste utf�rte kommandoen.
  4. Deretter ordner du alle feilene p� linjene ved � bruke kommandoen	x  .
  5. Trykk n� en stor  U  for � sette linjen tilbake til det den var
     originalt.
  6. Trykk  u  noen ganger for � angre	U  og foreg�ende kommandoer.
  7. Deretter trykker du  CTRL-R  (hold CTRL nede mens du trykker R) noen
     ganger for � gjenopprette kommandoene (omgj�re angrekommandoene).

---> RReparer feiilene p�� denne linnnjen oog erssstatt dem meed angre.

  8. Dette er meget nyttige kommandoer. N� kan du g� til oppsummeringen av
     leksjon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 2


  1. For � slette fra mark�ren fram til det neste ordet, trykk:  dw
  2. For � slette fra mark�ren til slutten av en linje, trykk:	d$
  3. For � slette en hel linje, trykk:	dd

  4. For � repetere en bevegelse, sett et nummer foran:  2w
  5. Formatet for en forandringskommando er:
	       operator  [nummer]  bevegelse
     der:
       operator  - hva som skal gj�res, f.eks.	d  for � slette
       [nummer]  - et valgfritt antall for � repetere bevegelsen
       bevegelse - hva kommandoen skal operere p�, eksempelvis	w  (ord),
		   $  (til slutten av linjen) og s� videre.

  6. For � g� til starten av en linje, bruk en null:  0

  7. For � angre tidligere endringer, skriv:		u  (liten u)
     For � angre alle forandringer p� en linje, skriv:	U  (stor U)
     For � omgj�re angringen, trykk:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.1: �LIM INN�-KOMMANDOEN


    ** Trykk  p  for � lime inn tidligere slettet tekst etter mark�ren **

  1. Flytt mark�ren til den f�rste linjen med ---> nedenfor.

  2. Trykk  dd	for � slette linjen og lagre den i et Vim-register.

  3. Flytt mark�ren til c)-linjen, OVER posisjonen linjen skal settes inn.

  4. Trykk  p  for � legge linjen under mark�ren.

  5. Repeter punkt 2 til 4 helt til linjene er i riktig rekkef�lge.

---> d) Kan du ogs� l�re?
---> b) Fioler er bl�,
---> c) Intelligens m� l�res,
---> a) Roser er r�de,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.2: �ERSTATT�-KOMMANDOEN


	 ** Trykk  rx  for � erstatte tegnet under mark�ren med x. **

  1. Flytt mark�ren til den f�rste linjen nedenfor merket --->.

  2. Flytt mark�ren s� den st�r opp� den f�rste feilen.

  3. Trykk  r  og deretter tegnet som skal v�re der.

  4. Repeter punkt 2 og 3 til den f�rste linjen er lik den andre.

---> Da dfnne lynjxn ble zkrevet, var det n�en som tjykket feite taster!
---> Da denne linjen ble skrevet, var det noen som trykket feile taster!

  5. G� videre til leksjon 3.2.

MERK: Husk at du b�r l�re ved � BRUKE, ikke pugge.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.3: �FORANDRE�-OPERATOREN


	   ** For � forandre til slutten av et ord, trykk  ce . **

  1. Flytt mark�ren til den f�rste linjen nedenfor som er merket --->.

  2. Plasser mark�ren p�  u  i �lubjwr�.

  3. Trykk  ce	og det korrekte ordet (i dette tilfellet, skriv �injen�).

  4. Trykk <ESC> og g� til det neste tegnet som skal forandres.

  5. Repeter punkt 3 og 4 helt til den f�rste setningen er lik den andre.

---> Denne lubjwr har noen wgh som m� forkw�p med �for�kzryas�-kommandoen.
---> Denne linjen har noen ord som m� forandres med �forandre�-kommandoen.

V�r oppmerksom p� at  ce  sletter ordet og g�r inn i innsettingsmodus.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 3.4: FLERE FORANDRINGER VED BRUK AV c


 ** Forandringskommandoen blir brukt med de samme bevegelser som �slett�. **

  1. Forandringsoperatoren fungerer p� samme m�te som �slett�. Formatet er:

	 c    [nummer]	 bevegelse

  2. Bevegelsene er de samme, som for eksempel	w  (ord) og  $	(slutten av en
     linje).

  3. G� til den f�rste linjen nedenfor som er merket --->.

  4. Flytt mark�ren til den f�rste feilen.

  5. Skriv  c$	og skriv resten av linjen lik den andre og trykk <ESC>.

---> Slutten p� denne linjen trenger litt hjelp for � gj�re den lik den neste.
---> Slutten p� denne linjen trenger � bli rettet ved bruk av c$-kommandoen.

MERK: Du kan bruke slettetasten for � rette feil mens du skriver.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 3


  1. For � legge tilbake tekst som nettopp er blitt slettet, trykk  p  . Dette
     limer inn den slettede teksten ETTER mark�ren (hvis en linje ble slettet
     vil den bli limt inn p� linjen under mark�ren).

  2. For � erstatte et tegn under mark�ren, trykk  r  og deretter tegnet som
     du vil ha der.

  3. Forandringsoperatoren lar deg forandre fra mark�ren til dit bevegelsen
     tar deg. Det vil si, skriv  ce  for � forandre fra mark�ren til slutten
     av ordet,	c$  for � forandre til slutten av linjen.

  4. Formatet for �forandre� er:

	 c   [nummer]	bevegelse

N� kan du g� til neste leksjon.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Leksjon 4.1: POSISJONERING AV MARK�REN OG FILSTATUS

	** Trykk CTRL-G for � vise posisjonen i filen og filstatusen.
	   Trykk  G  for � g� til en spesifikk linje i filen. **

  Merk: Les hele leksjonen f�r du utf�rer noen av punktene!

  1. Hold nede Ctrl-tasten og trykk  g	. Vi kaller dette CTRL-G. En melding
     vil komme til syne p� bunnen av skjermen med filnavnet og posisjonen i
     filen. Husk linjenummeret for bruk i steg 3.

Merk: Du kan se mark�rposisjonen i nederste h�yre hj�rne av skjermen. Dette
      skjer n�r �ruler�-valget er satt (forklart i leksjon 6).

  2. Trykk  G  for � g� til bunnen av filen.
     Skriv  gg	for � g� til begynnelsen av filen.

  3. Skriv inn linjenummeret du var p� og deretter  G . Dette vil f�re deg
     tilbake til linjen du var p� da du f�rst trykket CTRL-G.

  4. Utf�r steg 1 til 3 hvis du f�ler deg sikker p� prosedyren.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 4.2: S�KEKOMMANDOEN

      ** Skriv	/  etterfulgt av en s�kestreng som du vil lete etter. **

  1. Trykk  /  n�r du er i normalmodusen. Legg merke til at skr�streken og
     mark�ren kommer til syne p� bunnen av skjermen i likhet med
     �:�-kommandoene.

  2. Skriv �feeeiil� og trykk <ENTER>. Dette er teksten du vil lete etter.

  3. For � finne neste forekomst av s�kestrengen, trykk  n .
     For � lete etter samme s�keteksten i motsatt retning, trykk  N .

  4. For � lete etter en tekst bakover i filen, bruk  ?  istedenfor  /	.

  5. For � g� tilbake til der du kom fra, trykk  CTRL-O  (Hold Ctrl nede mens
     du trykker bokstaven  o ). Repeter for � g� enda lengre tilbake. CTRL-I
     g�r framover.

---> �feeeiil� er ikke m�ten � skrive �feil� p�, feeeiil er helt feil.
Merk: N�r s�kingen n�r slutten av filen, vil den fortsette fra starten unntatt
      hvis �wrapscan�-valget er resatt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 4.3: FINN SAMSVARENDE PARENTESER


	  ** Trykk  %  for � finne en samsvarende ), ] eller } . **

  1. Plasser mark�ren p� en (, [ eller { p� linjen nedenfor merket --->.

  2. Trykk  %  .

  3. Mark�ren vil g� til den samsvarende parentesen eller hakeparentesen.

  4. Trykk  %  for � flytte mark�ren til den andre samsvarende parentesen.

  5. Flytt mark�ren til en annen (, ), [, ], { eller } og se hva  %  gj�r.

---> Dette ( er en testlinje med (, [ ] og { } i den )).

Merk: Dette er veldig nyttig til feils�king i programmer som har ubalansert
      antall parenteser!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Leksjon 4.4: ERSTATT-KOMMANDOEN


	** Skriv  :s/gammel/ny/g  for � erstatte �gammel� med �ny�. **

  1. Flytt mark�ren til linjen nedenfor som er merket med --->.

  2. Skriv  :s/deen/den/ <ENTER>  . Legg merke til at denne kommandoen bare
     forandrer den f�rste forekomsten av �deen� p� linjen.

  3. Skriv  :s/deen/den/g . N�r g-flagget legges til, betyr dette global
     erstatning p� linjen og erstatter alle forekomster av �deen� p� linjen.

---> deen som kan kaste deen tyngste steinen lengst er deen beste

  4. For � erstatte alle forekomster av en tekststreng mellom to linjer,
     skriv  :#,#s/gammel/ny/g  der #,# er linjenumrene p� de to linjene for
			       linjeomr�det erstatningen skal gj�res.
     Skriv  :%s/gammel/ny/g    for � erstatte tekst i hele filen.
     Skriv  :%s/gammel/ny/gc   for � finne alle forekomster i hele filen, og
			       deretter sp�rre om teksten skal erstattes eller
			       ikke.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 4


  1. Ctrl-G viser n�v�rende posisjon i filen og filstatusen.
	     G	g�r til slutten av filen.
     nummer  G	g�r til det linjenummeret.
	    gg	g�r til den f�rste linjen.

  2. Skriv  /  etterfulgt av en s�ketekst for � lete FRAMOVER etter teksten.
     Skriv  ?  etterfulgt av en s�ketekst for � lete BAKOVER etter teksten.
     Etter et s�k kan du trykke  n  for � finne neste forekomst i den samme
     retningen eller  N  for � lete i motsatt retning.
     CTRL-O tar deg tilbake til gamle posisjoner, CTRL-I til nyere posisjoner.

  3. Skriv  %  n�r mark�ren st�r p� en (, ), [, ], { eller } for � finne den
     som samsvarer.

  4. Erstatte �gammel� med f�rste �ny� p� en linje:  :s/gammel/ny
     Erstatte alle �gammel� med �ny� p� en linje:    :s/gammel/ny/g
     Erstatte tekst mellom to linjenumre:	     :#,#s/gammel/ny/g
     Erstatte alle forekomster i en fil:	     :%s/gammel/ny/g
     For � godkjenne hver erstatning, legg til �c�:  :%s/gammel/ny/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Leksjon 5.1: HVORDAN UTF�RE EN EKSTERN KOMMANDO


    ** Skriv  :!  etterfulgt av en ekstern kommando for � utf�re denne. **

  1. Skriv den velkjente kommandoen  :	 for � plassere mark�ren p� bunnen av
     skjermen. Dette lar deg skrive en kommandolinjekommando.

  2. N� kan du skrive tegnet  !  . Dette lar deg utf�re en hvilken som helst
     ekstern kommando.

  3. Som et eksempel, skriv  ls  etter utropstegnet og trykk <ENTER>. Du vil
     n� f� en liste over filene i katalogen, akkurat som om du hadde kj�rt
     kommandoen direkte fra kommandolinjen i skallet. Eller bruk  :!dir  hvis
     �ls� ikke virker.

MERK: Det er mulig � kj�re alle eksterne kommandoer p� denne m�ten, ogs� med
      parametere.

MERK: Alle �:�-kommandoer m� avsluttes med <ENTER>. Fra dette punktet er det
      ikke alltid vi nevner det.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 5.2: MER OM LAGRING AV FILER


      ** For � lagre endringene gjort i en tekst, skriv  :w FILNAVN. **

  1. Skriv  :!dir  eller  :!ls	for � f� en liste over filene i katalogen. Du
     vet allerede at du m� trykke <ENTER> etter dette.

  2. Velg et filnavn p� en fil som ikke finnes, som for eksempel  TEST .

  3. Skriv  :w TEST  (der TEST er filnavnet du velger).

  4. Dette lagrer hele filen (denne innf�ringen) under navnet TEST . For �
     sjekke dette, skriv  :!dir  eller	:!ls  igjen for � se innholdet av
     katalogen.

Merk: Hvis du n� hadde avsluttet Vim og startet p� nytt igjen med �vim TEST�,
      ville filen v�rt en eksakt kopi av innf�ringen da du lagret den.

  5. Fjern filen ved � skrive  :!rm TEST  hvis du er p� et Unix-lignende
     operativsystem, eller  :!del TEST	hvis du bruker MS-DOS.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 5.3: VELGE TEKST SOM SKAL LAGRES


     ** For � lagre en del av en fil, skriv  v	bevegelse  :w FILNAVN **

  1. Flytt mark�ren til denne linjen.

  2. Trykk  v  og flytt mark�ren til det femte elementet nedenfor. Legg merke
     til at teksten blir markert.

  3. Trykk  :  (kolon). P� bunnen av skjermen vil  :'<,'>  komme til syne.

  4. Trykk  w TEST  , der TEST er et filnavn som ikke finnes enda. Kontroller
     at du ser	:'<,'>w TEST  f�r du trykker Enter.

  5. Vim vil skrive de valgte linjene til filen TEST. Bruk  :!dir  eller  :!ls
     for � se den. Ikke slett den enda! Vi vil bruke den i neste leksjon.

MERK: Ved � trykke  v  startes visuelt valg. Du kan flytte mark�ren rundt for
      � gj�re det valgte omr�det st�rre eller mindre. Deretter kan du bruke en
      operator for � gj�re noe med teksten. For eksempel sletter  d  teksten.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 5.4: HENTING OG SAMMENSL�ING AV FILER


 ** For � lese inn en annen fil inn i n�v�rende buffer, skriv  :r FILNAVN  **

  1. Plasser mark�ren like over denne linjen.

MERK: Etter � ha utf�rt steg 2 vil du se teksten fra leksjon 5.3. G� deretter
      NED for � se denne leksjonen igjen.

  2. Hent TEST-filen ved � bruke kommandoen  :r TEST  der TEST er navnet p�
     filen du brukte. Filen du henter blir plassert nedenfor mark�rlinjen.

  3. For � sjekke at filen ble hentet, g� tilbake og se at det er to kopier av
     leksjon 5.3, originalen og denne versjonen.

MERK: Du kan ogs� lese utdataene av en ekstern kommando. For eksempel,	:r !ls
      leser utdataene av ls-kommandoen og legger dem nedenfor mark�ren.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 5


  1.  :!kommando  utf�rer en ekstern kommandio.

      Noen nyttige eksempler er:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		  - List filene i katalogen.
	  :!del FILNAVN    :!rm FILNAVN   - Slett filen FILNAVN.

  2.  :w FILNAVN  skriver den n�v�rende Vim-filen disken med navnet FILNAVN .

  3.  v  bevegelse  :w FILNAVN	lagrer de visuelt valgte linjene til filen
     FILNAVN.

  4.  :r FILNAVN  henter filen FILNAVN og legger den inn nedenfor mark�ren.

  5.  :r !dir  leser utdataene fra �dir�-kommandoen og legger dem nedenfor
     mark�rposisjonen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 6.1: ��PNE LINJE�-KOMMANDOEN


    ** Skriv  o  for � ��pne opp� for en ny linje etter mark�ren og g� til
       innsettingsmodus **

  1. Flytt mark�ren til linjen nedenfor merket --->.

  2. Skriv  o  (liten o) for � �pne opp en linje NEDENFOR mark�ren og g� inn i
     innsettingsmodus.

  3. Skriv litt tekst og trykk <ESC> for � g� ut av innsettingsmodusen.

---> Etter at  o  er skrevet blir mark�ren plassert p� den tomme linjen.

  4. For � �pne en ny linje OVER mark�ren, trykk rett og slett en stor	O
     istedenfor en liten  o . Pr�v dette p� linjen nedenfor.

---> Lag ny linje over denne ved � trykke O mens mark�ren er p� denne linjen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 6.2: �LEGG TIL�-KOMMANDOEN


	    ** Skriv  a  for � legge til tekst ETTER mark�ren. **

  1. Flytt mark�ren til starten av linjen merket ---> nedenfor.

  2. Trykk  e  til mark�ren er p� slutten av �li�.

  3. Trykk  a  (liten a) for � legge til tekst ETTER mark�ren.

  4. Fullf�r ordet s�nn som p� linjen nedenfor. Trykk <ESC> for � g� ut av
     innsettingsmodusen.

  5. Bruk  e  for � g� til det neste ufullstendige ordet og repeter steg 3 og
     4.

---> Denne li lar deg �ve p� � leg til tek p� en linje.
---> Denne linjen lar deg �ve p� � legge til tekst p� en linje.

Merk: a, i og A g�r alle til den samme innsettingsmodusen, den eneste
      forskjellen er hvor tegnene blir satt inn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 6.3: EN ANNEN M�TE � ERSTATTE P�


	   ** Skriv en stor  R	for � erstatte mer enn ett tegn. **

  1. Flytt mark�ren til den f�rste linjen nedenfor merket --->. Flytt mark�ren
     til begynnelsen av den f�rste �xxx�-en.

  2. Trykk  R  og skriv inn tallet som st�r nedenfor p� den andre linjen s�
     det erstatter xxx.

  3. Trykk <ESC> for � g� ut av erstatningsmodusen. Legg merke til at resten
     av linjen forblir uforandret.

  4. Repeter stegene for � erstatte den gjenv�rende xxx.

---> Ved � legge 123 til xxx f�r vi xxx.
---> Ved � legge 123 til 456 f�r vi 579.

MERK: Erstatningsmodus er lik insettingsmodus, men hvert tegn som skrives
      erstatter et eksisterende tegn.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Leksjon 6.4: KOPIERE OG LIME INN TEKST


    ** Bruk y-operatoren for � kopiere tekst og  p  for � lime den inn **

  1. G� til linjen merket ---> nedenfor og plasser mark�ren etter �a)�.

  2. G� inn i visuell modus med  v  og flytt mark�ren til like f�r �f�rste�.

  3. Trykk  y  for � kopiere (engelsk: �yank�) den uthevede teksten.

  4. Flytt mark�ren til slutten av den neste linjen:  j$

  5. Trykk  p  for � lime inn teksten. Trykk deretter:	a andre <ESC> .

  6. Bruk visuell modus for � velge � valget.�, kopier det med	y , g� til
     slutten av den neste linjen med  j$  og legg inn teksten der med  p .

---> a) Dette er det f�rste valget.
     b)

Merk: Du kan ogs� bruke  y  som en operator;  yw  kopierer ett ord.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 6.5: SETT VALG


  ** Sett et valg s� s�k eller erstatning ignorerer store/sm� bokstaver. **

  1. Let etter �ignore� ved � skrive:  /ignore <ENTER>
     Repeter flere ganger ved � trykke	n .

  2. Sett �ic�-valget (Ignore Case) ved � skrive:  :set ic

  3. S�k etter �ignore� igjen ved � trykke  n .
     Legg merke til at b�de �Ignore� og �IGNORE� blir funnet.

  4. Sett �hlsearch�- og �incsearch�-valgene:  :set hls is

  5. Skriv s�kekommandoen igjen og se hva som skjer:  /ignore <ENTER>

  6. For � sl� av ignorering av store/sm� bokstaver, skriv:  :set noic

Merk: For � fjerne uthevingen av treff, skriv:	:nohlsearch
Merk: Hvis du vil ignorere store/sm� bokstaver for kun en s�kekommando, bruk
      \c  i uttrykket:	/ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 6

  1. Trykk  o  for � legge til en linje NEDENFOR mark�ren og g� inn i
     innsettingsmodus.
     Trykk  O  for � �pne en linje OVER mark�ren.

  2. Skriv  a  for � sette inn tekst ETTER mark�ren.
     Skriv  A  for � sette inn tekst etter slutten av linjen.

  3. Kommandoen  e  g�r til slutten av et ord.

  4. Operatoren  y  (�yank�) kopierer tekst,  p  (�paste�) limer den inn.

  5. Ved � trykke  R  g�r du inn i erstatningsmodus helt til  <ESC>  trykkes.

  6. Skriv �:set xxx� for � sette valget �xxx�. Noen valg er:
	�ic� �ignorecase�	ignorer store/sm� bokstaver under s�k
	�is� �incsearch�	vis delvise treff for en s�ketekst
	�hls� �hlsearch�	uthev alle s�ketreff

  7. Legg til �no� foran valget for � sl� det av:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 7.1: F� HJELP


		   ** Bruk det innebygde hjelpesystemet. **

  Vim har et omfattende innebygget hjelpesystem. For � starte det, pr�v en av
  disse m�tene:
    - Trykk Hjelp-tasten (hvis du har en)
    - Trykk F1-tasten (hvis du har en)
    - Skriv  :help <ENTER>

  Les teksten i hjelpevinduet for � finne ut hvordan hjelpen virker.
  Skriv  CTRL-W CTRL-W	for � hoppe fra et vindu til et annet
  Skriv  :q <ENTER>	for � lukke hjelpevinduet.

  Du kan f� hjelp for omtrent alle temaer om Vim ved � skrive et parameter til
  �:help�-kommandoen. Pr�v disse (ikke glem � trykke <ENTER>):

    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 7.2: LAG ET OPPSTARTSSKRIPT


			** Sl� p� funksjoner i Vim **

  Vim har mange flere funksjoner enn Vi, men flesteparten av dem er sl�tt av
  som standard. For � begynne � bruke flere funksjoner m� du lage en
  �vimrc�-fil.

  1. Start redigeringen av �vimrc�-filen. Dette avhenger av systemet ditt:
	:e ~/.vimrc	  for Unix
	:e $VIM/_vimrc	  for MS Windows

  2. Les inn eksempelfilen for �vimrc�:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Lagre filen med:
	:w

  Neste gang du starter Vim vil den bruke syntaks-utheving. Du kan legge til
  alle dine foretrukne oppsett i denne �vimrc�-filen.
  For mer informasjon, skriv  :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Leksjon 7.3: FULLF�RING


	      ** Kommandolinjefullf�ring med CTRL-D og <TAB> **

  1. V�r sikker p� at Vim ikke er i Vi-kompatibel modus:  :set nocp

  2. Se hvilke filer som er i katalogen:  :!ls	eller  :!dir

  3. Skriv starten p� en kommando:  :e

  4. Trykk  CTRL-D  og Vim vil vise en liste over kommandoer som starter med
     �e�.

  5. Trykk  <TAB>  og Vim vil fullf�re kommandonavnet til �:edit�.

  6. Legg til et mellomrom og starten p� et eksisterende filnavn:  :edit FIL

  7. Trykk <TAB>. Vim vil fullf�re navnet (hvis det er unikt).

MERK: Fullf�ring fungerer for mange kommandoer. Pr�v ved � trykke CTRL-D og
      <TAB>. Det er spesielt nyttig for bruk sammen med  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 7


  1. Skriv  :help  eller trykk <F1> eller <Help> for � �pne et hjelpevindu.

  2. Skriv  :help kommando  for � f� hjelp om  kommando .

  3. Trykk  CTRL-W CTRL-W  for � hoppe til et annet vindu.

  4. Trykk  :q	for � lukke hjelpevinduet.

  5. Opprett et vimrc-oppstartsskript for � lagre favorittvalgene dine.

  6. N�r du skriver en �:�-kommando, trykk CTRL-D for � se mulige
     fullf�ringer. Trykk <TAB> for � bruke en fullf�ring.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Her slutter innf�ringen i Vim. Den var ment som en rask oversikt over
  editoren, akkurat nok til � la deg sette i gang med enkel bruk. Den er p�
  langt n�r komplett, da Vim har mange flere kommandoer. Les bruksanvisningen
  ved � skrive	:help user-manual  .

  For videre lesing og studier, kan denne boken anbefales:
      �Vim - Vi Improved� av Steve Oualline
      Utgiver: New Riders
  Den f�rste boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
  nybegynnere. Inneholder mange eksempler og illustrasjoner.
  Se http://iccf-holland.org/click5.html

  Denne boken er eldre og handler mer om Vi enn Vim, men anbefales ogs�:
      �Learning the Vi Editor� av Linda Lamb
      Utgiver: O'Reilly & Associates Inc.
  Det er en god bok for � f� vite omtrent hva som helst om Vi.
  Den sjette utgaven inneholder ogs� informasjon om Vim.

  Denne innf�ringen er skrevet av Michael C. Pierce og Robert K. Ware,
  Colorado School of Mines med id�er av Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu .

  Modifisert for Vim av Bram Moolenaar.
  Oversatt av �yvind A. Holm. E-mail: vimtutor _AT_ sunbase.org
  Id: tutor.no 406 2007-03-18 22:48:36Z sunny

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim: set ts=8 :
PK�j�Z�+3ŊŊvim80/tutor/tutor.sknu�[���===============================================================================
=    V i t a j t e   v o   V I M   T u t o r i a l i    -    Verzia 1.7       =
===============================================================================

     Vim je veľmi výkonný editor, ktorý má príliž veľa príkazov na to aby
     mohli byt všetky popísané vo výuke akou je táto. Táto výuka
     popisuje dostatočné množstvo príkazov nato aby bolo možné používať
     Vim ako viacúčelový editor.

     Približný čas potrebný na prebratie tejto výuky je 25-30 minút,
     závisí na tom, koľko je stráveného času s preskúšavaním.

     UPOZORNENIE:
     Príkazy v lekciách modifikujú text. Vytvor kópiu tohto súboru aby
     sa mohlo precvičovať na ňom (pri štarte "vimtutor" je toto kópia).

     Je dôležité zapamätať si, že táto výuka je vytvorená pre výuku
     používaním. To znamená, že je potrebné si príkazy vyskúšať, aby bolo
     učenie správne. Ak len čitas text, príkazy zabudneš!

     Presvedč sa, že Caps-Lock NIEJE stlačený a stlačt klávesu
     j  niekoľko krát, aby sa kurzor posunul natoľko, že lekcia 1.1
     celkom zaplní obrazovku.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 1.1:  POHYB KURZOROM


   ** Pre pohyb kurzorum stlač klávesy h,j,k,l ako je znázornené. **
        ^
        k        Funkcia: Klávesa h je naľavo a vykoná pohyb doľava.
   < h     l >   Klávesa l je napravo a vykoná pohyb doprava.
        j        Klávesa j vyzerá ako šípka dole
	      v
  1. Pohybuj kurzorom po obrazovke, kým si na to nezvykneš.

  2. Drž stlačenú klávesu pre pohyb dole (j), kým sa jej funkcia nezopakuje.
---> Teraz sa už vieš pohybovať na nasledujúcu lekciu.

  3. Použitím klávesy pre pohyb dole prejdi na Lekciu 1.2.

Poznámka: Ak si niesi istý tým čo si napísal, stlač <ESC>
	        na prechod do normálneho módu.

Poznámka: Kurzorové klávesy sú tiež funkčné. Ale používaním hjkl sa budeš
	        schopný pohybovať rýchlejšie, keď si zvykneš ich používať. Naozaj!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     LEKCIA 1.2: ZATVÁRANIE VIMU


  !! POZNÁMKA: Pred vykonaním týchto krokov si prečítaj celú túto lekciu !!

  1. Stlač klávesu <ESC> (aby si sa učite nachádzal v normálnom móde)

  2. Napíš:   :q! <ENTER>.
     Tým ukončíš prácu s editorom BEZ uloženia zmien, ktoré si vykonal.

  3. Keď sa dostaneš na príkazový riadok, napíš príkaz, ktorým sa dostaneš
     speť do tejto výuky. To môže byť:	vimtutor <ENTER>

  4. Ak si si tieto kroky spoľahlivo zapamätal, vykonaj kroky 1 až 3, pre
     ukončenie a znovu spustenie editora.

POZNÁMKA: :q! <ENTER> neuloží zmeny, ktoré si vykonal. O niekoľko lekcií
          sa naučíš ako uložiť zmeny do súboru

  5. presuň kurzor dole na lekciu 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 1.3: EDITÁCIA TEXTU - MAZANIE


** Stlačenie klávesy  x  v normálnom móde zmaže znak na mieste kurzora. **

  1. Presuň kurzor nižšie na riadok označený značkou --->.

  2. Aby si mohol odstrániť chyby, pohybuj kurzorom kým neprejde na znak,
     ktorý chceš zmazať.

  3. Stlač klávesu  x  aby sa zmazal nechcený znak.

  4. Zopakuj kroky 2 až 4 až kým veta nieje správna.

---> Kraava skoočilla ccezz mesiiac.

  5. Ak je veta správna, prejdi na lekciu 1.4.

POZNÁMKA: Neskúšaj si zapamätať obsah tejto výuky, ale sa uč používaním.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 1.4: EDITÁCIA TEXTU - VKLADANIE


    ** Stlačenie klávesy  i  umožňuje vkladanie textu. **

  1. Presuň kurzor nižšie na prvý riadok za značku --->.

  2. Pre upravenie prvého riadku do rovnakého tvaru ako je druhý riadok,
     presuň kurzor na prvý znak za misto, kde má byť text vložený.

  3. Stlač klávesu  i  a napíš potrebný text.

  4. Po opravení každej chyby, stlač <ESC> pre návrat do normálneho módu.
     Zopakuj kroky 2 až 4 kým nieje veta správna.

---> Tu je text chýbajúci tejto.
---> Tu je nejaký text chýbajúci od tejto čiary.

  5. Keď sa dostatočne naučíš vkladať text, prejdi na nasledujúce zhrnutie.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Lekcia 1.5: EDITÁCIA TEXTU - PRIDÁVANIE


     ** Stlačenie klávesy  A  umožňuje pridávať text. **

  1. Presuň kurozr nižšie na prvý riadok za značkou --->.
     Nezáleží na tom, na ktorom znaku sa kurzor v tom riadku nachádza.

  2. Stlač klávesu  A  a napíš potrebný text.

  3. Po pridaní textu stlač klávesu <ESC> pre návrat do Normálneho módu.

  4. Presuň kurozr na druhý riadok označený ---> a zopakuj
     kroky 2 a 3 kým nieje veta správna.

---> Tu je nejaký text chýbajúci o
     Tu je nejaký text chýbajúci od tiaľto.
---> Tu tiež chýba nej
     Tu tiež chýba nejaký text.

  5. Keď sa dostatočne naučíš pridávať text, prejdi na lekciu 1.6.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       Lekcia 1.6: EDITÁCIA SÚBORU


    ** Napísaním  :wq  sa súbor uloží a zavrie **

!! POZNÁMKA: Pred vykonaním týchto krokov si prečítaj celú lekciu!!

1. Opusti túto výuku, ako si to urobil v lekcii 1.2:  :q!

2. Do príkazového riadku napíš príkaz:  vim tutor <ENTER>
   'vim' je príkaz, ktorý spustí editor Vim, 'tutor' je meno súboru,
   ktorý chceš editovať. Použi taký súbor, ktorý môžeš meniť.

3. Vlož a zmaž text tak, ako si sa naučil v predošlých lekciach.

4. Ulož súbor so zmenami a opusti Vim príkazom:  :wq  <ENTER>

5. Reštartuj vimtutor a presuň sa dole na nasledujúce zhrnutie.

6. Urob tak po prečítaní predošlých krokov a porozumeniu im.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ZHRNUTIE LEKCIE 1


  1. Kurzor sa pohybuje použitím kláves so šípkami alebo klávesmi hjkl.
	  h (do lava)    j (dole)    k (hore)    l (doprava)

  2. Pre spustenie Vimu (z príkazového riadku) napíš: vim FILENAME <ENTER>

  3. Na ukončenie Vimu napíš: <ESC>  :q!  <ENTER> pre zrušenie všetkých zmien
       alebo napíš:   <ESC>   :wq   <ENTER>    pre uloženie zmien.

  4. Na zmazanie znaku na mieste kurzora napíš:  x

  5. Pre vloženie textu na mieste kurzora v normálnom móde napíš:
	 i     napíš vkladaný text   <ESC>  vkladanie pred kurzor
   A     napíš pridávaný text  <EXC>  vkladanie za riadok

POZNÁMKA: Stlačenie <ESC> ťa premiestní do normálneho módu alebo zruší
	        nejaký nechcený a čiastočne dokončený príkaz.

Teraz pokračuj lekciou 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 2.1: Mazacie príkazy


	 ** Napísanie príkazu  dw  zmaže znaky do konca slova. **

1. Stlač  <ESC>  aby si bol bezpečne v normálnom móde.

2. Presuň kurzor nižšie na riadok označený značkou --->.

3. Presuň kurzor na začiatok slova, ktoré je potrebné zmazať.

4. Napíš  dw  aby slovo zmizlo.

POZNÁMKA: Písmeno d sa zobrazí na poslednom riadku obrazovky keď ho
	        napíšeš. Vim na teba počká, aby si mohol napísať
          písmeno w. Ak vidíš niečo iné ako  d , tak si napísal
          nesprávny znak; stlač  <ESC>  a začni znova.

---> Tu je niekoľko slov zábava, ktoré nie patria list do tejto vety.

5. Zopakuj kroky 3 až 4 kým veta nieje správna a prejdi na lekciu 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 2.2: VIAC MAZACÍCH PRÍKAZOV


	 ** Napísanie príkazu d$  zmaže znaky do konca riadku **

1. Stlač  <ESC>  aby si bol bezpečne v normálnom móde.

2. Presuň kurzor nižšie na riadok označený značkou --->.

3. Presuň kurzor na koniec správnej vety (ZA prvú bodku).

4. Napíš    d$    aby sa zmazali znaky do konca riadku.

---> Niekto napísal koniec tohto riadku dvakrát. koniec tohot riadku dvakrát.


5. Prejdi na lekciu 2.3 pre pochopenie toho čo sa stalo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 2.3: OPERÁTORY A POHYBY

  Veľa príkazov, ktoré menia text sú odvodené od operátorov a pohybov.
  Formát pre príkaz mazania klávesou  d  je nasledovný:

    d   pohyb

  kde:
    d     - je mazací operátor
    pohyb - je to čo operátor vykonáva (vypísané nižšie)

  Krátky list pohybov:
    w - do začiatku ďalšieho slova, okrem jeho prvého písmena.
    e - do konca terajšieho slova, vrátane posledného znaku.
    $ - do konca riadku, vrátane posledného znaku

  Takže napísaním  de  sa zmaže všetko od kurzora do konca slova.

POZNÁMKA: Stlačením iba pohybu v normálnom móde bez operátora
          sa presunie kurzor tak ako je to špecivikované.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcia 2.4: Použitie viacnásobného pohybu


   ** Napísaním čísla pred pohyb ho zopakuje zadný počet krát **

  1. Presuň kurozr nižšie na začiatok riadku označeného --->.

  2. Napíš  2w  a kurozr sa presunie o dve slová vpred.

  3. Napíš  3e  a kurozr sa presunie vpred na koniec tretieho slova.

  4. Napíš  0  (nula) a kurozr sa presunie na začiatok riadku.

  5. Zopakuj kroky 2 a 3 s rôznymi číslami.

---> Toto je riadok so slovami po kotrých sa môžete pohybovať.

  6. Prejdi na lekciu 2.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcia 2.5: POUŽITIE VIACNÁSOBNÉHO MAZANIA PRE HROMADNÉ MAZANIE


    ** Napísanie čísla spolu s operátorom ho zopakuje zadaný počet krát **

  V kombinácii operátorov mazania a pohybu spomínaného vyššie vlož počet
  pred pohyb pre docielenie hromadného mazania:
    d   číslo   pohyb

  1. Presuň kurzor na prvé slovo písané VEĽKÝMI PÍSMENAMI
     v riadku označenom --->.

  2. Napíš  2dw  a zmažeš dve slová písané VEĽKÝMI PÍSMENAMI

  3. Zopakuj kroky 1 a 2 s použitím rôzneho čísla tak aby si zmazal slová
     písané veľkými písmenami jedným príkazom.

---> Tento ABC DE riadok FGHI JK LMN OP so slovamI je Q RS TUV vycisteny.

POZNÁMKA: Číslo medzi operátorom  d  a pohybom funguje podobne ako pri
          použití s pohybom bez operátora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    		Lekcia 2.6: OPERÁCIE S RIADKAMI


	    ** Napísanie príkazu   dd   zmaže celý riadok. **

Vzhľadom na frekvenciu mazania celého riadku, sa autori Vimu rozhodli,
že bude jednoduchšie mazať celý riadok napísaním dvoch písmen d.

1. Presuň kurzor na druhý riadok v texte na spodu.
2. Napíš  dd  aby si zmazal riadok.
3. Prejdi na štvrtý riadok.
4. Napíš   2dd   aby si zmazal dva riadky.

    1)  Ruže sú červené,
    2)  Blato je zábavné,
    3)  Fialky sú modré,
    4)  Mám auto,
    5)  Hodinky ukazujú čas,
    6)  Cukor je sladký,
    7)  A to si ty.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 2.7: PRÍKAZ UNDO


** Stlač  u  pre vrátenie posledného príkazu,  U  pre úpravu celého riadku. **

1. Presuň kurzor nižšie na riadok označený značkou ---> a premiestni ho na
   prvú chybu.
2. Napíš  x  pre zmazanie prvého nechceného riadku.
3. Teraz napíš  u  čím vrátíš späť posledne vykonaný príkaz.
4. Teraz oprav všetky chyby na riadku použitím príkazu  x  .
5. Teraz napíš veľké   U  čím vrátíš riadok do pôvodného stavu.
6. Teraz napíš  u  niekoľko krát, čím vrátíš späť príkaz U.
7. Teraz napíš CTRL-R (drž klávesu CTRL stlačenú kým stláčaš R) niekoľko
   krát, čím vrátíš späť predtým vrátené príkazy (undo z undo).

---> Opprav chybby nna toomto riadku a zmeeň ich pommocou undo.

  8. Tieto príkazy sú často používané. Teraz prejdi na zhrnutie lekcie 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 2 ZHRNUTIE


  1. Pre zmazanie znakov od kurzora do konca slova napíš:   dw

  2. Pre zmazanie znakov od kurzora do konca riadku napíš:   d$

  3. Pre zmazanie celého riadku napíš:   dd

  4. Pre zopakovanie pohybu, napíš pred neho číslo:   2w

  5. Formát pre píkaz:

       operátor   [číslo]   pohyb
     kde:
       operátor - čo treba robiť, napríklad  d  pre zmazanie
       [číslo] - je voliteľný počet pre opakovanie pohybu
       pohyb - pohyb po texte vzhľadom na operátor, napríklad w (slovo),
		$ (do konca riadku), atď.

  6. Pre pohyb na začiatok riadku použi nulu:  0

  7. Pre vrátenie späť predošlej operácie napíš:	u   (malé u)
     Pre vrátenie všetkých úprav na riadku napíš:    U   (veľké U)
     Pre vrátenie vrátených úprav napíš:	      CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 3.1: PRÍKAZ VLOŽIŤ


	  ** Napísanie príkazu  p  vloží psledný výmaz za kurzor. **

  1. Presuň kurzor nižšie na prvý riadok textu.

  2. Napíš  dd  čím zmažeš riadok a uložíš ho do buffera editora Vim.

  3. Presuň kurzor vyššie tam, kam zmazaný riadok patrí.

  4. Ak napíšeš v normálnom móde   p   zmazaný riadk sa vloží.

  5. Zopakuj kroky 2 až 4, kým riadky niesú v správnom poradí.

---> d) Tiež sa dokážeš vzdelávať?
---> b) Fialky sú modré,
---> c) Inteligencia sa vzdeláva,
---> a) Ruže sú červené,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.2: PRÍKAZ NAHRADENIA


     ** Napísaním  rx  sa nahradí znak na mieste kurzora znakom  x . **

  1. Presuň kurzor nižšie na prví riadok textu označeného značkou --->.

  2. Presuň kurzor na začiatok prvej chyby.

  3. napíš  r  a potom znak, ktorý tam má byť.

  4. Zopakuj kroky 2 a 3, kým prvý riadok nieje zhodný s druhým.

---> Kaď bol tento riasok píaaný, niekro stlašil nesprábne klávesy!
---> Keď bol tento riadok písaný, niekto stlačil nesprávne klávesy!

  5. Teraz prejdi na lekciu 3.2.

POZNÁMKA: Pamätaj si, že naučiť sa môžeš len používanim, nie pamätaním.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.3. PRÍKAZ ÚPRAVY


     ** Ak chceš zmeniť časť slova do konca slova, napíš  ce . **

  1. Presuň kurzor nižšie na prvý riadok označený značkou --->.

  2. Umiestni kurzor na písmeno o v slove rosfpl.

  3. Napíš  ce  a oprav slovo (v tomto prípade napíš 'iadok'.)

  4. Stlač <ESC> a prejdi na ďalší znak, ktorý treba zmeniť.

  5. Zopakuj kroky 3 a 4, kým prvá veta nieje rovnaká ako druhá.

---> Tento rosfpl má niekoľko skic, ktoré je pirewvbí zmeniť piyťučán príkazu.
---> Tento riadok má niekoľko slov, ktoré je potrebné zmeniť použitím príkazu.

Poznámka, že  ce  zmaže slovo a nastaví vkladací mód.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.4: VIAC ZMIEN POUŽITÍM c


   ** Príkaz pre úpravy sa používa s rovnakými pohybmi ako pre mazanie **

  1. Príkaz pre úpravy pracuje rovnako ako pre mazanie. Formát je:

        c    [číslo]    pohyb

  2. Pohyby sú rovnaké, ako napríklad   w (slovo) a  $ (koniec riadku).

  3. Presuň kurzor nižšie na prvý riadok označený značkou --->.

  4. Presuň kurzor na prvú chybu.

  5. napíš  c$  aby si mohol upraviť zvyšok riadku podľa druhého
     a stlač <ESC>.

---> Koniec tohto riadku potrebuje pomoc, aby bol ako druhy.
---> Koniec tohto riadku potrebuje opraviť použitím príkazu  c$ .

POZNÁMKA: Môžeš použiť klávesu backspace na úpravu zmien počas písania.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 3 ZHRNUTIE


  1. Na vloženie textu, ktorý už bol zmazaný, napíš  p . To vloží zmazaný
     text ZA kurzor (ak bol riadok zmazaný prejde na riadok pod kurzorom).

  2. Pre naradenie znaku na mieste kurzora, napíš  r  a potom znak, ktorý
     nahradí pôvodný znak.

  3. Príkaz na upravenie umožňuje zmeniť od kurzora až po miesto, ktoré
     určuje pohyb.  napr. Napíš  ce  čím zmníš text od pozície
     kurzora do konca slova, c$  zmení text do konca riadku.

  4. Formát pre nahradenie je:

	    c    [číslo]    pohyb


Teraz prejdi na nalsedujúcu lekciu.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 4.1: POZÍCIA A STATUS SÚBORU


  ** Stlač CTRL-g pre zobrazenie svojej pozície v súbore a statusu súboru.
     Napíš  G  pre presun na riadok v súbore. **

  Poznámka: Prečítaj si celú túto lekciu skôr ako začneš vykonávať kroky!!

  1. Drž stlačenú klávesu Ctrl a stlač  g . Toto nazývame CTRL-G.
     Na spodu obrazovky sa zobrazí správa s názvom súboru a pozíciou
     v súbore. Zapamätajsi si číslo riadku pre použitie v kroku 3.

  2. Stlač  G  čím sa dostaneš na spodok súboru.
     Napíš  gg  čím sa dostaneš na začiatok súboru.

  3. Napíš číslo riadku na ktorom si sa nachádzal a stlač  G. To ťa
     vráti na riadok, na ktorom si prvý krát stlačil CTRL-G.

  4. Ak sa cítíš schopný vykonať teto kroky, vykonaj kroky 1 až 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 4.2: PRÍKAZ VYHĽADÁVANIA


  ** Napíš  /  nasledované reťazcom pre vyhľadanie príslušného reťazca. **

  1. Napíš znak  /  v normálnom móde. Poznámka, že tento znak sa spolu
     s kurzorom zobrazí v dolnej časti obrazovky s  :  príkazom.

  2. Teraz napíš 'errroor' <ENTER>. To je slovo, ktoré chceš vyhľadať.

  3. Pre vyhľadanie ďalšieho výskytu rovnakého reťazca, stlač jednoducho  n.
     Pre vyhľadanie ďalšieho výskytu rovnakého reťazca opačným smerom,
     N.

  4. Ak chceš vyhľadať reťazec v spätnom smere, použí príkaz  ?  miesto
     príkazu /.

  5. Pre návrat na miesto z ktorého si prišiel stlač CTRL-O (drž stlačenú
     klávesu Ctrl počas stlačenia klávesy o). Zopakuj pre ďalší návrat
     späť. CTRL-I ide vpred.

POZNÁMKA: "errroor" nieje spôsob hláskovania error; errroor je error.
POZNÁMKA: Keď vyhľadávanie dosiahne koniec tohto súboru, bude pokračovať na
      začiatku, dokiaľ nieje resetované nastavenie 'wrapscan' .


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Lekcia 4.3: VYHĽADÁVANIE ZODPOVEDAJÚCICH ZÁTAVORIEK


	 ** Napíš  %  pre vyhľadanie príslušného znaku ),], alebo } . **

  1. Premiestni kurzor na hocaký zo znakov (, [, alebo { v riadku nižšie
     označeného značkou --->.

  2. Teraz napíš znak  % .

  3. Kurzor sa premiestni na zodpovedajúcu zátvorku.

  4. Napíš  %  pre presun kurzoru späť na otvárajúcu zátvorku.

  5. Presuň kurzor na iný zo znakov (,),[,],{ alebo } a všimni si
     čo % vykonáva.

---> Toto ( je testovací riadok s ('s, ['s ] a {'s } v riadku. ))

Poznámka: Toto je veľmi výhodné použíť pri ladení programu s chýbajúcimi
	  uzatvárajúcimi zátvorkami!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 4.4: PRÍKAZ NAHRADENIA


 ** Napíš   :s/starý/nový/g  pre nahradenie slova 'starý' za slovo 'nový'. **

  1. Presuň kurzor nižšie na riadok označený značkou --->.

  2. Napíš  :s/thee/the <ENTER> . Poznamka, že tento príkaz zmení len prvý
     výskyt "thee" v riadku.

  3. Teraz napíš   :s/thee/the/g   čo znamená celkové nahradenie v riadku.
     Toto nahradí všetky výskyty v riadku.

---> Thee best time to see thee flowers in thee spring.

  4. Pre zmenu všetkých výskytov daného reťazca medzi dvomi ridakami,
     napíš  :#,#s/starý/nový/g  kde #,# sú čísla dvoch riadkov, v rozsahu
                                ktorých sa nahradenie vykoná.
     napíš  :%s/starý/nový/g    pre zmenu všetkých výskytov v celom riadku
     napíš  :%s/starý/nový/gc   nájde všetky výskyty v celom súbore,
                                s otázkou či nahradiť alebo nie



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 4 ZHRNUTIE


  1. CTRL-g    vypíše tvoju pozíciu v súbore a status súboru.
            G  ťa premiestni na koniec riadku.
     číslo  G  ťa premiestni na riadok s číslom.
           gg  ťa presunie na prvý riadok

  2. Napísanie  /  nasledované reťazcom vyhľadá reťazec smerom DOPREDU.
     Napísanie  ?  nasledované reťazcom vyhľada reťazec smerom DOZADU.
     Napísanie  n  po vyhľadávaní, vyhľadá nasledujúci výskyt reťazca
     v rovnakom smere, pričom  N  vyhľadá v opačnom smere.
     CTRL-O ťa vráti späť na staršiu pozíciu, CTRL-I na novšiu pozíciu.

  3. Napísanie  %  keď kurzor je na (,),[,],{, alebo } nájde zodpovdajúcu
     párnu zátvorku.

  4. Pre nahradenie nového za prvý starý v riadku napíš    :s/starý/nový
     Pre nahradenie nového za všetky staré v riadku napíš  :s/starý/nový/g
     Pre nahradenie reťazcov medzi dvoma riadkami 3 napíš  :#,#/starý/nový/g
     Pre nahradenie všetkých výskytov v súbore napíš       :%s/starý/nový/g
     Pre potvrdenie každého nahradenia pridaj 'c'	         :%s/starý/nový/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcia 5.1 AKO SPUSTIŤ VONKAJŠÍ PRÍKAZ


 ** Napíš príkaz  :!  nasledovaný vonkajším príkazom pre spustenie príkazu **

  1. Napíš obvyklý píkaz  :  ktorý nastaví kurzor na spodok obrazovky.
     To umožní napísať príkaz.

  2. Teraz napíš  !  (výkričník). To umožní spustiť hociaký vonkajší príkaz
     z príkazového riadku.

  3. Ako príklad napíš  ls  za ! a stlač <ENTER>. Tento príkaz
     zobrazí obsah tvojho adresára rovnako ako na príkazovom riadku.
     Alebo použi  :!dir  ak ls nefunguje.

Poznámka:  Takto je možné spustiť hociaký vonkajší príkaz s argumentami.
Poznámka:  Všetky príkazy  :  musia byť dokončené stlačením <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 5.2: VIAC O UKLADANÍ SÚBOROV


     ** Pre uloženie zmien v súbore, napíš  :w FILENAME. **

  1. Napíš  :!dir  alebo  :!ls  pre výpis aktuálneho adresára.
     Už vieš, že musíš za týmto stlačiť <ENTER> .

  2. Vyber názov súboru, ktorý ešte neexistuje, ako napr. TEST.

  3. Teraz napíš:   :w TEST   (kde TEST je názov vybratého súboru.)

  4. To uloží celý súbor  (Vim Tutor)  pod názovm TEST.
     Pre overenie napíš   :!dir   , čím  zobrazíš obsah adresára.

Poznámka: že ak ukončíš prácu s editorom Vim a znovu ho spustíš príkazom
	        vim TEST, súbor bude kópia výuky, keď si ho uložil.

  5. Teraz odstráň súbor napísaním (MS-DOS):   :!del TEST
			     alebo (Unix):     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcia 5.3 VÝBER TEXTU PRE ULOŽENIE


  ** Pre uloženie časti súboru, napíš  v  pohyb :w FILENAME **

  1. Presuň kurozr na tento riadok.

  2. Stlač  v  a presuň kurozr na piatu položku dole. Poznámka, že
     tento text je vyznačený (highlighted).

  3. Stlač klávesu  : . V spodnej časti okna sa objaví  :'<,'>.

  4. Napíš w TEST  , kde TEST je meno súboru, ktorý zatial neexistuje.
     Skontroluj, e vidíš  :'<,'>w TEST  predtým než stlačíš Enter.

  5. Vim zapíše označené riadky do súboru TEST. Použi :!dir  alebo  :!ls
     pre overenie. Zatial ho ešte nemaž! Použijeme ho v ďalšej lekcii.

POZNÁMKA: Stlačením klávesy  v  sa spustí vizuálne označovanie.
          Môžeš pohybovať kurzorom pre upresnenie vyznačeného textu.
          Potom môžeš použiť operátor pre vykonanie nejakej akcie
          s textom. Napríklad  d  zmaže vyznačený text.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcia 5.4: VÝBER A ZLUČOVANIE SÚBOROV


	** Pre vloženie obsahu súboru, napíš   :r FILENAME **

  1. Premiestni kurzor nad tento riadok.

POZNÁMKA: Po vykonaní kroku 2 uvidíš text z lekcie 5.3. Potom sa presuň
          dole, aby si videl túto lekciu.

  3. Teraz vlož súbor TEST použitím príkazu   :r TEST   kde TEST je názov
     súboru. Súbor, ktorý si použil je umiestnený pod riadkom s kurzorom.

POZNÁMKA: Môžeš tiež načítať výstup vonkajšieho príkazu. Napríklad :r !ls
          načíta výstup príkazu ls a umiestni ho za pozíciu kurzora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 5 ZHRNUTIE


  1.  :!príkaz  spustí vonkajší príkaz.

      Niektoré využiteľné príklady sú:
	(MS_DOS)    (UNIX)
	 :!dir       :!ls	    -  zobrazí obsah adresára
	 :!del FILENAME    :!rm FILENAME    -  odstráni súbor FILENAME

  2.  :w FILENAME  uloží aktuálny súbor na disk pod menom FILENAME.

  3.  v  pohyb  :w FILENAME  uloží vizuálne označené riadky do
      súboru FILENAME.

  4.  :r FILENAME  vyberie z disku súbor FILENAME a vloží ho do aktuálneho
      súboru za pozíciou kurzora.

  5. :r !dir  načíta výstup z príkazu dir a vloží ho za pozíciu kurzora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 6.1: PRÍKAZ OTVORIŤ


** Napíš  o  pre vloženie riadku pod kurzor a prepnutie do vkladacieho módu **

  1. Presuň kurzor nižšie na riadok označený značkou --->.

  2. Napíš o (malé písmeno) pre vloženie čistého riadku pod kurzorm
     a prepnutie do vkladacieho módu.

  3. Teraz skopíruj riadok označený ---> a stlač <ESC> pre ukončenie
     vkladacieho módu.

---> Po napísaní  o  sa kurzor premiestní na vložený riadok do vkladacieho
     módu.

  4. Pre otvorenie riadku nad kurzorom, jednotucho napíš veľké  O ,
     namiesto malého  o. Vyskúšaj si to na riadku dole.

---> Vlož riadok nad týmto napísaním O, keď kurzor je na tomto riadku.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 6.2: PRÍKAZ PRIDAŤ


	   ** Napíš  a  pre vloženie textu ZA kurzor. **

  1. Presuň kurzor nižšie na koniec prvého riadku označeného značkou --->

  2. Stlač klávesu  e  dokiaľ kurozr nieje na konci riadku.

  3. Napíš  a  (malé písmeno) pre pridanie textu ZA kurzorom.

  4. Dokončí slovo tak ako je to v druhom riadku. Stlaš <ESC> pre
     opustenie vkladacieho módu.

  5. Použi  e  na presun na ďalšie nedokončené slovo a zopakuj kroky 3 a 4.

---> Tento ri ti dovoľuje nácv priávan testu na koniec riadku.
---> Tento riadok ti dovoľuje nácvik pridávania textu na koniec riadku.

POZNÁMKA: a, i, A štartujú rovnaký vkladací mód, jediný rozidel je, kde
          sa znaky vkladajú.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcia 6.3: INÝ SPOSOB NAHRADZOVANIA


      ** Napíš veľké R pre nahradenie viac ako jedného znaku. **

  1. Presuň kurzor nižšie na prvý riadok označený značkou --->. Premiestni
     kurzor na začiatok prvého výskytu  xxx.

  2. Teraz napíš  R  a  napíš  číslo uvedené v druhom riadku, takže
     sa ním nahradí pôvodné xxx.

  3. Stlač <ESC> pre opustenie nahradzovacieho módu. Poznámka, že zvyšok
     riadku zostane nezmenený.

  4. Zopakuj tieto kroky pre nahradenie zvyšných xxx.

---> Pridaním 123 ku xxx dostaneš xxx.
---> Pridaním 123 ku 456 dostaneš 579.

POZNÁMKA:  Nahradzovací mód je ako vkladací mód, ale každý napísaný znak
           zmaže existujúci znak.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Lekcia 6.4: Copy Paste textu

    ** použí operátor  y  pre copy textku a  p  pre jeho paste **

  1. Choď nižšie na riadok označený ---> a umiestni kurozr za "a)".

  2. Naštartuj vizuálny mód použitím  v  a presuň kurozr pred "first".

  3. Napíš  y  pre  vystrihnutie (copy) označeného textu.

  4. Presuň kurozr na koniec ďalšieho riadku: j$

  5. Napíš  p  pre vložnie (paste) textu. Potom napíš:  a druha <ESC>.

  6. Použi vizuálny mód pre označenie "položka.", vystrihni to
     použitím  y, presuň sa na koniec nasledujúceho riadku použitím  j$
     a vlož sem text použitím  p.

---> a) toto je prvá položka
---> b)

POZNÁMKA: Môžeš použiť tiež  y  ako operátor; yw  vystrihne jedno slovo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 6.5: NASTAVENIE MOŽNOSTÍ


** Nastav možnosti, takže vyhľadávanie alebo nahradzovanie ignoruje
   rozlišovanie **


  1. Vyhľadaj reťazec 'ignore' napísaním:
     /ignore <ENTER>
     Zopakuj vyhľadávanie niekoľko krát stlačením klávesy  n .

  2. Nastav možnosť 'ic' (Ignore case) napísaním príkazu:
     :set ic

  3. Teraz vyhľadaj reťazec 'ingore' znova stlačením klávesy  n
     Poznámka, že teraz sú vyhľadané aj Ignore a IGNORE.

  4. Nastav možnosťi 'hlsearch' a 'incsearch':
     :set hls is

  5. Teraz spusti vyhľadávací príkaz znovu, a pozri čo sa stalo:
     /ignore <ENTER>

  6. Pre opetovné zapnutie rozlyšovania veľkých a malých písmen
     napíš:  :set noic

POZNÁMKA: Na odstránenie zvýraznenia výrazov napíš:  :nohlsearch
POZNÁMKA: Ak chceš nerozlyšovať veľkosť písmen len pre jedno
          použitie vyhľadávacieho príkazu, použi \c:  /ignore\c <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      LEKCIA 6 ZHRNUTIE


  1. Napíš  o  pre otvorenie riadku pod kurzorom a štart vkladacieho módu.
     Napíš  O  pre otvorenie riadku nad kurzorom.

  2. Napíš  a  pre vkladanie textu ZA kurzor.
     Napíš  A  pre vkladanie textu za koncom riadku.

  3. Príkaz  e  presunie kurozr na koniec slova

  4. Operátor  y  vystrihne (skopíruje) text,  p  ho vloží.

  5. Napísanie veľkého  R  prepne do nahradzovacieho módu, kým nieje
     stlačené <ESC>.

  6. Napísanie ":set xxx" nastaví možnosť "xxx". Niektoré nastavenia sú:
     'ic' 'ignorecase' ignoruje veľké a malé písmená počas vyhľadávania.
     'is' 'incsearch' zobrazuje čiastočné reťazce vyhľadávaného reťazca.
     'hls' 'hlsearch' vyznačí všetky vyhľadávané reťazce.
      Môžeš použiť hociktorý z dlhých a krátkych názvov možností.

  7. Vlož "no" pred nastavenie pre jeho vypnutie:  :set noic







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    LEKCIA 7.1: ZÍSKANIE NÁPOVEDY


	  ** Používaj on-line systém nápovedy **

  Vim má obsiahly on-line systém nápovedy. Pre odštartovanie, vyskúšaj jeden
  z týchto troch:
	- stlač klávesu <HELP> (ak nejakú máš)
	- stlač klávesu <F1> (ak nejakú máš)
	- napíš  :help <ENTER>

  Čítaj text v okne nápovedy pre získanie predstavy ako nápoveda funguje.
  Napíš   CTRL-W CTRL-W  pre skok z jedného okna do druhého.
  Napíš    :q <ENTER>    čím zatvoríš okno nápovedy.

  Môžeš nájsť help ku hociakej téme pridaním argumentu ku príkazu ":help".
  Vyskúšaj tieto (nezabudni stlačiť <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 LEKCIA 7.2: VYTVORENIE ŠTARTOVACIEHO SKRIPTU

		       ** Zapni funkcie editora Vim **

  Vim má omnoho viac funkcii než Vi, ale večšina z nich je implicitne
  vypnutá. Pre používanie viac Vim funkcii vytvor "vimrc" súbor.

  1. Začni editovať "vimrc" súbor, to závisí na použitom systéme:
	:e ~/.vimrc      pre Unix
	:e $VIM/_vimrc   pre MS-Windows

  2. Teraz si prečítaj text príkladu "vimrc" súboru:

	:r $VIMRUNTIME/vimrc_example.vim

  3. Ulož súbor:
	:w

  Pri nasledujúcom štarte editora Vim sa použije zvýrazňovanie syntaxe.
  Do "vimrc" súboru môžeš pridať všetky svoje uprednostňované nastavenia.
  Pre viac informácii napíš  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                   LEKCIA 7.3 DOKONČENIE

     ** Dokonči príkaz na príkazovom riadku použitím CTRL-D a <TAB> **

  1. Uisti sa, že Vim nieje v kompatibilnom móde:  :set nocp

  2. Pozri sa aké súbory sa nachádzajú v adresári:  :!ls  alebo  :!dir

  3. Napíš začiatok príkazu:  :e

  4. Stlač  CTRL-D  a Vim zobrazí zoznam príkazov začínajúcich "e".

  5. Stlač <TAB> a Vim dokončí meno príkazu na ":edit".

  6. Teraz pridaj medzerník a začiatok mena existujúceho súboru:
     :edit FIL

  7. Stlač <TAB>. Vim dokončí meno (ak je jedinečné).

POZNÁMKA: Dokončovanie funguje pre veľa príkazov. Vyskúšaj stlačenie
          CTRL-D a <TAB>. Špeciálne je to užitočné pre príkaz  :help.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

            LEKCIA 7 ZHRNUTIE

  1. Napíš  :help  alebo stlač <F1> alebo <Help> pre otvorenie okna nápovedy.

  2. Napíš  :help príkaz  pre vyhľadanie nápovedy ku príkazu príkaz.

  3. Napíš  CTRL-W CTRL-W  na preskočenie do iného okna.

  4. Napíš  :q  pre zatvorenie okna nápovedy

  5. Vytvor štartovací skript vimrc pre udržanie uprednostňovaných nastavení.

  6. Počas písania príkazu  :  stlač CTRL-D pre zobrazenie dokončení.
     Stlač <TAB> pre použitie jedného z dokončení.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



  Toto vymedzuje výuku Vimu. Toto je určené pre strucný prehľad o editore
  Vim, úplne postačujúce pre ľahké a obstojné používanie tohto editora.
  Táto výuka je ďaleko od kompletnosti, pretože Vim má omnoho viacej príkazov.
  Ako ďalšie si prečítaj užívatľský manuál: ":help user-manual".

  Pre ďalšie čítanie a štúdium je odporúčaná kniha:
  Vim - Vi Improved - od Steve Oualline
  Vydavateľ: New Riders
  Prvá kniha určená pre Vim. Špeciálne vhodná pre začiatočníkov.
  Obsahuje množstvo príkladov a obrázkov.
  Pozri na http://iccf-holland.org/click5.html

  Táto kniha je staršia a je viac o Vi ako o Vim, ale je tiež odporúčaná:
  Learning the Vi Editor - od Linda Lamb
  Vydavateľ: O'Reilly & Associates Inc.
  Je to dobrá kniha pre získanie vedomostí o práci s editorom Vi.
  Šieste vydanie obsahuje tiež informácie o editore Vim.

  Táto výuka bola napísaná autormi Michael C. Pierce a Robert K. Ware,
  Colorado School of Mines s použitím myšlienok dodanými od Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Modifikované pre Vim od Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Preklad do Slovenčiny: Ľuboš Čelko
  e-mail:       celbos@inmail.sk
  Last Change:  2006 Apr 18
  encoding:     iso8859-2
PK�j�Z#���p�pvim80/tutor/tutor.canu�[���===============================================================================
=    B e n v i n g u t s   a l   t u t o r   d e l   V I M   -   Versió 1.5   =
===============================================================================

   El Vim és un editor potent i té moltes ordres, massa com per a
   explicar-les totes un tutor com aquest. Aquest tutor està pensat per a
   ensenyar les ordres bàsiques que us permetin fer servir el Vim com a
   editor de propòsit general.

   El temps aproximat de completar el tutor és d'uns 25 o 30 minuts
   depenent de quant temps dediqueu a experimentar.

   Feu una còpia d'aquest fitxer per a practicar-hi (si heu començat amb
   el programa vimtutor això que esteu llegint ja és una còpia).

   És important recordar que aquest tutor està pensat per a ensenyar
   practicant, és a dir que haureu d'executar les ordres si les voleu
   aprendre. Si només llegiu el text el més probable és que les oblideu.

   Ara assegureu-vos que la tecla de bloqueig de majúscules no està
   activada i premeu la tecla  j  per a moure el cursor avall, fins que la
   lliçó 1.1 ocupi completament la pantalla.
   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Lliçó 1.1:  MOURE EL CURSOR


  ** Per a moure el cursor premeu les tecles h, j, k, l tal com s'indica. **
       ^
       k        Pista: La h és a l'esquerra i mou el cursor cap a l'esquerra.
  < h     l >          La l és a la dreta i mou el cursor cap a la dreta.
       j               La j sembla una fletxa cap avall.
       v
  1. Moveu el cursor per la pantalla fins que us sentiu confortables.

  2. Mantingueu premuda la tecla avall (j) una estona.
---> Ara ja sabeu com moure-us fins a la següent lliçó.

  3. Usant la tecla avall, aneu a la lliçó 1.2.

Nota: Si no esteu segurs de la tecla que heu premut, premeu <ESC> per a
      tornar al mode Normal. Llavors torneu a teclejar l'ordre que volíeu.

Nota: Les tecles de moviment del cursor (fletxes) també funcionen. Però
      usant hjkl anireu més ràpid un cop us hi hagueu acostumant.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lliçó 1.2: ENTRAR I SORTIR DEL VIM


  !! NOTA: Abans de seguir els passos següents llegiu *tota* la lliçó!!

  1. Premeu <ESC> (per a estar segurs que esteu en el mode Normal).

  2. Teclegeu:                  :q! <ENTRAR>.

---> Amb això sortireu de l'editor SENSE desar els canvis que hagueu pogut
     fer. Si voleu desar els canvis teclegeu:
                                :wq  <ENTRAR>

  3. Quan vegeu l'introductor de l'intèrpret escriviu l'ordre amb la
     qual heu arribat a aquest tutor. Podria ser:   vimtutor <ENTRAR>
                                            O bé:   vim tutor <ENTRAR>

---> 'vim' és l'editor vim, i 'tutor' és el fitxer que voleu editar.

  4. Si heu memoritzat les ordres, feu els passos anteriors, de l'1 al 3,
     per a sortir i tornar a entrar a l'editor. Llavors moveu el cursor
     avall fins a la lliçó 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lliçó 1.3: EDITAR TEXT - ESBORRAR


  ** En mode Normal premeu  x  per a esborrar el caràcter sota el cursor. **

  1. Moveu el cursor fins a la línia que hi ha més avall senyalada amb --->.

  2. Poseu el cursor a sobre el caràcter que cal esborrar per a corregir
     els errors.

  3. Premeu la tecla  x  per a esborrar el caràcter.

  4. Repetiu els passos 2 i 3 fins que la frase sigui correcta.

---> Unna vaaca vva salttar perr sobbree la llluna.

  5. Ara que la línia és correcta, aneu a la lliçó 1.4.

NOTA: Mentre aneu fent no tracteu de memoritzar, practiqueu i prou.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Lliçó 1.4: EDITAR TEXT - INSERIR


           ** En mode Normal premeu  i  per a inserir text. **

  1. Moveu el cursor avall fins la primera línia senyalada amb --->.

  2. Per a fer la primera línia igual que la segona poseu el cursor sobre
     el primer caràcter POSTERIOR al text que s'ha d'inserir.

  3. Premeu la tecla  i  i escriviu el text que falta.

  4. Quan hageu acabat premeu <ESC> per tornar al mode Normal. Repetiu
     els passos 2, 3 i 4 fins a corregir la frase.

---> Falten carctrs en aquesta .
---> Falten alguns caràcters en aquesta línia.

  5. Quan us trobeu còmodes inserint text aneu al sumari de baix.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              LLIÇÓ 1 SUMARI


  1. El cursor es mou amb les fletxes o bé amb les tecles hjkl.
         h (esquerra)   j (avall)       k (amunt)    l (dreta)

  2. Per a entrar al Vim (des de l'intèrpret) escriviu:  vim FITXER <ENTRAR>

  3. Per a sortir teclegeu:  <ESC> :q! <ENTRAR>  per a descartar els canvis.
             O BÉ teclegeu:  <ESC> :wq <ENTRAR>  per a desar els canvis.

  4. Per a esborrar el caràcter de sota el cursor en el mode Normal premeu: x

  5. Per a inserir text on hi ha el cursor, en mode Normal, premeu:
         i     escriviu el text    <ESC>

NOTA: La tecla <ESC> us porta al mode Normal o cancel·la una ordre que
      estigui a mitges.

Ara continueu a la lliçó 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Lliçó 2.1: ORDRES PER ESBORRAR


      ** Teclegeu  dw  per a esborrar fins al final d'una paraula. **

  1. Premeu  <ESC>  per estar segurs que esteu en mode normal.

  2. Moveu el cursor avall fins a la línia senyalada amb --->.

  3. Moveu el cursor fins al principi de la paraula que s'ha d'esborrar.

  4. Teclegeu  dw  per a fer desaparèixer la paraula.

NOTA: Les lletres dw apareixeran a la línia de baix de la pantalla mentre
      les aneu escrivint. Si us equivoqueu premeu <ESC> i torneu a començar.

---> Hi ha algunes paraules divertit que no pertanyen paper a aquesta frase.

  5. Repetiu el passos 3 i 4 fins que la frase sigui correcta i continueu
     a la lliçó 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lliçó 2.2: MÉS ORDRES PER ESBORRAR


       ** Escriviu  d$  per a esborrar fins al final de la línia. **

  1. Premeu  <ESC>  per a estar segurs que esteu en el mode Normal.

  2. Moveu el cursor avall fins a la línia senyalada amb --->.

  3. Moveu el cursor fins al final de la línia correcta
     (DESPRÉS del primer . ).

  4. Teclegeu  d$  per a esborrar fins al final de la línia.

---> Algú ha escrit el final d'aquesta línia dos cops. línia dos cops.

  5. Aneu a la lliçó 2.3 per a entendre què està passant.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lliçó 2.3: SOBRE ORDRES I OBJECTES


  El format de l'ordre d'esborrar  d  és el següent:

         [nombre]   d   objecte     O BÉ     d   [nombre]   objecte
  On:
    nombre  - és el nombre de cops que s'ha d'executar (opcional, omissió=1).
    d       - és l'ordre d'esborrar.
    objecte - és la cosa amb la qual operar (llista a baix).

  Una petita llista d'objectes:
    w - des del cursor fins al final de la paraula, incloent l'espai.
    e - des del cursor fins al final de la paraula, SENSE incloure l'espai.
    $ - des del cursor fins al final de la línia.

NOTA: Per als aventurers: si teclegeu només l'objecte, en el mode Normal,
      sense cap ordre, el cursor es mourà tal com està descrit a la llista
      d'objectes.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Lliçó 2.4: UNA EXCEPCIÓ A 'ORDRE-OBJECTE'


             ** Teclegeu  dd  per a esborrar tota la línia. **

  Com que molt sovint s'han d'eliminar línies senceres, els programadors
  del Vi van creure que seria més convenient teclejar  dd  per a esborrar
  tota la línia.

  1. Moveu el cursor a la segona línia de la frase de baix.
  2. Teclegeu  dd  per a esborrar la línia.
  3. Ara aneu a la quarta línia.
  4. Teclegeu  2dd  per a esborrar dues línies (recordeu nombre-ordre-objecte).

      1)  Les roses són vermelles,
      2)  El fang és divertit,
      3)  Les violetes són blaves,
      4)  Tinc un cotxe,
      5)  Els rellotges diuen l'hora,
      6)  El sucre és dolç,
      7)  Igual que tu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Lliçó 2.5: L'ORDRE DESFER


 ** Premeu  u  per a desfer els canvis,  U  per a restaurar tota la línia. **

  1. Moveu el cursor sobre el primer error de línia de baix senyalada amb --->
  2. Premeu  x  per a esborrar el caràcter no desitjat.
  3. Ara premeu  u  per a desfer l'última ordre executada.
  4. Aquest cop corregiu tots els errors de la línia amb l'ordre  x.
  5. Ara premeu  U  per a restablir la línia al seu estat original.
  6. Ara premeu  u  uns quants cops per a desfer  U  i les ordres anteriors.
  7. Ara premeu  CONTROL-R  (les dues tecles al mateix temps) uns quants cops
     per a refer les ordres.

---> Correegiu els errors d'aqquesta línia i dessfeu-los aamb desfer.

  8. Aquestes ordres són molt útils. Ara aneu al sumari de la lliçó 2.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LLIÇÓ 2 SUMARI


  1. Per a esborrar del cursor al final de la paraula teclegeu:     dw

  2. Per a esborrar del cursor al final de la línia teclegeu:       d$

  3. Per a esborrar una línia sencera teclegeu:     dd

  4. El format de qualsevol ordre del mode Normal és:

       [nombre]   ordre   objecte     O BÉ     ordre    [nombre]   objecte
     on:
       nombre  - és quants cops repetir l'ordre
       ordre   - és què fer, com ara  d  per esborrar
       objecte - és amb què s'ha d'actuar, com ara  w  (paraula),
                 $ (fins a final de línia), etc.

  5. Per a desfer les accions anteriors premeu:           u
     Per a desfer tots el canvis en una línia premeu:     U
     Per a desfer l'ordre desfer premeu:                  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lliçó 3.1: L'ORDRE 'POSAR'


       ** Premeu  p  per a inserir l'última cosa que heu esborrat
                           després del cursor. **


  1. Moveu el cursor a la primera línia de llista de baix.

  2. Teclegeu  dd  per a esborrar la línia i desar-la a la memòria.

  3. Moveu el cursor a la línia ANTERIOR d'on hauria d'anar.

  4. En mode Normal, premeu  p  per a inserir la línia.

  5. Repetiu els passos 2, 3 i 4 per a ordenar les línies correctament.

     d) Pots aprendre tu?
     b) Les violetes són blaves,
     c) La intel·ligència s'aprèn,
     a) Les roses són vermelles,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Lliçó 3.2: L'ORDRE SUBSTITUIR


          ** Premeu  r  i un caràcter per a substituir el caràcter
                             de sota el cursor. **

  1. Moveu el cursor a la primera línia de sota senyalada amb --->.

  2. Moveu el cursor a sobre del primer caràcter equivocat.

  3. Premeu  r  i tot seguit el caràcter correcte per a corregir l'error.

  4. Repetiu els passos 2 i 3 fins que la línia sigui correcta.

--->  Quen van escroure aquerta línia, algh va prémer tikles equivocades!
--->  Quan van escriure aquesta línia, algú va prémer tecles equivocades!

  5. Ara continueu a la lliçó 3.2.

NOTA: Recordeu que heu de practicar, no memoritzar.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lliçó 3.3: L'ORDRE CANVIAR


       ** Per a canviar una part o tota la paraula, escriviu  cw . **

  1. Moveu el cursor a la primera línia de sota senyalada amb --->.

  2. Poseu el cursor sobre la u de 'lughc'.

  3. Teclegeu  cw  i corregiu la paraula (en aquest cas, escrivint 'ínia'.)

  4. Premeu <ESC> i aneu al següent error.

  5. Repetiu els passos 3 i 4 fins que les dues frases siguin iguals.

---> Aquesta lughc té algunes paradskl que s'han de cdddf.
---> Aquesta línia té algunes paraules que s'han de canviar.

Noteu que  cw  no només canvia la paraula, també us posa en mode d'inserció.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lliçó 3.4: MÉS CANVIS AMB c


 ** L'ordre canviar s'usa amb els mateixos objectes que l'ordre esborrar. **

  1. L'ordre canviar funciona igual que la d'esborrar. El format és:

       [nombre]   c   objecte     O BÉ      c   [nombre]   objecte

  2. Els objectes són els mateixos,  w  (paraula), $ (final de línia), etc.

  3. Moveu el cursor fins la primera línia senyalada amb --->.

  4. Avanceu fins al primer error.

  5. Premeu  c$  per fer la línia igual que la segona i premeu <ESC>.

---> El final d'aquesta línia necessita canvis per ser igual que la segona.
---> El final d'aquesta línia s'ha de corregir amb l'ordre c$.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LLIÇÓ 3 SUMARI


  1. Per a tornar a posar el text que heu esborrat, premeu  p . Això posa
     el text esborrat DESPRÉS del cursor (si heu esborrat una línia anirà
     a parar a la línia SEGÜENT d'on hi ha el cursor).

  2. Per a substituir el caràcter de sota el cursor, premeu  r  i tot
     seguit el caràcter que ha de reemplaçar l'original.

  3. L'ordre canviar permet canviar l'objecte especificat, des del cursor
     fins el final de l'objecte. Per exemple,  cw  canvia el que hi ha des
     del cursor fins al final de la paraula, i  c$  fins al final de
     línia.

  4. El format de l'ordre canviar és:

         [nombre]   c   objecte       O BÉ      c   [nombre]   objecte

Ara aneu a la següent lliçó.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lliçó 4.1: SITUACIÓ I ESTAT DEL FITXER


  ** Premeu CTRL-g per a veure la situació dins del fitxer i el seu estat.
     Premeu SHIFT-g per a anar a una línia determinada. **

  Nota: No proveu res fins que hagueu llegit TOTA la lliçó!!

  1. Mantingueu premuda la tecla Control i premeu  g . A la part de baix
     de la pàgina apareixerà un línia amb el nom del fitxer i la línia en
     la qual us trobeu. Recordeu el número de la línia pel Pas 3.

  2. Premeu Shift-g per a anar al final de tot del fitxer.

  3. Teclegeu el número de la línia on éreu i després premeu Shift-g. Això
     us tornarà a la línia on éreu quan heu premut per primer cop Ctrl-g.
     (Quan teclegeu el número NO es veurà a la pantalla.)

  4. Ara executeu els passos de l'1 al 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Lliçó 4.2: L'ORDRE CERCAR


           ** Premeu  /  seguit de la frase que vulgueu cercar. **

  1. En el mode Normal premeu el caràcter  / . Noteu que el cursor apareix
     a la part de baix de la pantalla igual que amb l'ordre : .

  2. Ara escriviu 'errroor' <ENTRAR>. Aquesta és la paraula que voleu
     cercar.

  3. Per a tornar a cercar la mateixa frase, premeu  n .  Per a cercar la
     mateixa frase en direcció contraria, premeu Shift-n .

  4. Si voleu cercar una frase en direcció ascendent, useu l'ordre  ?  en
     lloc de /.

---> "errroor" no és com s'escriu error; errroor és un error.

Nota: Quan la cerca arribi al final del fitxer continuarà a l'inici.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Lliçó 4.3: CERCA DE PARÈNTESIS


          ** Premeu  %  per cercar el ), ], o } corresponent. **

  1. Poseu el cursor a qualsevol (, [, o { de la línia senyalada amb --->.

  2. Ara premeu el caràcter  % .

  3. El cursor hauria d'anar a la clau o parèntesis corresponent.

  4. Premeu  %  per a tornar el cursor al primer parèntesi.

---> Això ( és una línia amb caràcters (, [ ] i { } de prova. ))

Nota: Això és molt útil per a trobar errors en programes informàtics!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Lliçó 4.4: UNA MANERA DE CORREGIR ERRORS


      ** Escriviu  :s/vell/nou/g  per a substituir 'vell' per 'nou'. **

  1. Moveu el cursor a la línia de sota senyalada amb --->.

  2. Escriviu :s/laa/la <ENTRAR>. Aquesta ordre només canvia la primera
     coincidència que es trobi a la línia.

  3. Ara escriviu :s/laa/la/g per a fer una substitució global. Això
     canviarà totes les coincidències que es trobin a la línia.

---> laa millor època per a veure laa flor és laa primavera.

  4. Per a canviar totes les coincidències d'una cadena entre dues línies,
     escriviu  :#,#s/vell/nou/g  on #,# són els nombres de les línies.
     Escriviu  :%s/vell/nou/g  per a substituir la cadena a tot el fitxer.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LLIÇÓ 4 SUMARI


  1. Ctrl-g mostra la posició dins del fitxer i l'estat del mateix.
     Shift-g us porta al final del fitxer. Un número seguit de Shift-g us
     porta a la línia corresponent.

  2. L'ordre  /  seguida d'una frase cerca la frase cap ENDAVANT.
     L'ordre  ?  seguida d'una frase cerca la frase cap ENDARRERE.
     Després d'una cerca premeu  n  per a trobar la pròxima coincidència en
     la mateixa direcció, o  Shift-n  per a cercar en la direcció contrària.

  3. L'ordre  %  quan el cursor es troba en un (, ), [, ], {, o } troba la
     parella corresponent.

  4. Per a substituir el primer 'vell' per 'nou' en una línia :s/vell/nou
     Per a substituir tots els 'vell' per 'nou' en una línia  :s/vell/nou/g
     Per a substituir frases entre les línies # i #           :#,#s/vell/nou/g
     Per a substituir totes les coincidències en el fitxer    :%s/vell/nou/g
     Per a demanar confirmació cada cop afegiu 'c'            :%s/vell/nou/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Lliçó 5.1: COM EXECUTAR UNA ORDRE EXTERNA


      ** Teclegeu  :!  seguit d'una ordre externa per a executar-la. **

  1. Premeu el familiar  :  per a col·locar el cursor a la part de baix de
     la pantalla.  Això us permet entrar una ordre.

  2. Ara teclegeu el caràcter  !  (signe d'exclamació). Això us permet
     executar qualsevol ordre de l'intèrpret del sistema.

  3. Per exemple, escriviu  ls  i tot seguit premeu <ENTRAR>. Això us
     mostrarà el contingut del directori, tal com si estiguéssiu a la
     línia d'ordres. Proveu  :!dir  si ls no funciona.

Nota:  D'aquesta manera és possible executar qualsevol ordre externa.

Nota:  Totes les ordres  :  s'han d'acabar amb la tecla <ENTRAR>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Lliçó 5.2: MÉS SOBRE L'ESCRIPTURA DE FITXERS


         ** Per a desar els canvis fets, escriviu  :w  FITXER. **

  1. Escriviu  :!dir  o bé  :!ls  per a obtenir un llistat del directori.
     Ja sabeu que heu de prémer <ENTRAR> després d'això.

  2. Trieu un nom de fitxer que no existeixi, com ara PROVA.

  3. Ara feu:  :w PROVA  (on PROVA és el nom que heu triat.)

  4. Això desa el text en un fitxer amb el nom de PROVA. Per a comprovar-ho
     escriviu  :!dir  i mireu el contingut del directori.

Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
      fitxer serà una còpia exacta del tutor que heu desat.

  5. Ara esborreu el fitxer teclejant (MS-DOS):   :!del PROVA
                                   o bé (Unix):   :!rm PROVA


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Lliçó 5.3: UNA ORDRE SELECTIVA PER A DESAR


       ** Per a desar una part del fitxer, escriviu  :#,# w FITXER **

  1. Un altre cop, feu  :!dir  o  :!ls  per a obtenir un llistat del
     directori i trieu un nom de fitxer adequat com ara PROVA.

  2. Moveu el cursor a dalt de tot de la pàgina i premeu  Ctrl-g  per
     saber el número de la línia.  RECORDEU AQUEST NÚMERO!

  3. Ara aneu a baix de tot de la pàgina i torneu a prémer  Ctrl-g.
     RECORDEU AQUEST NÚMERO TAMBÉ!

  4. Per a desar NOMÉS una secció en un fitxer, escriviu  :#,# w PROVA  on
     #,# són els dos números que heu recordat (dalt, baix) i PROVA el nom
     del fitxer.

  5. Comproveu que el fitxer nou hi sigui amb  :!dir  però no l'esborreu.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lliçó 5.4: OBTENIR I AJUNTAR FITXERS


         ** Per a inserir el contingut d'un fitxer, feu  :r FITXER **

  1. Assegureu-vos, amb l'ordre  :!dir , que el fitxer PROVA encara hi és.

  2. Situeu el cursor a dalt de tot d'aquesta pàgina.

NOTA: Després d'executar el Pas 3 veureu la lliçó 5.3. Tireu cap avall
      fins a aquesta lliçó un altre cop.

  3. Ara obtingueu el fitxer PROVA amb l'ordre  :r PROVA  on PROVA és el
     nom del fitxer.

NOTA:  El fitxer que obtingueu s'insereix en el lloc on hi hagi el cursor.

  4. Per a comprovar que s'ha obtingut el fitxer tireu enrere i mireu com
     ara hi ha dues còpies de la lliçó 5.3, l'original i la del fitxer.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LLIÇÓ 5 SUMARI


  1.  :!ordre  executa una ordre externa.

      Alguns exemples útils:
         (MS-DOS)         (Unix)
          :!dir            :!ls          -  mostra un llistat del directori
          :!del FITXER     :!rm FITXER   -  esborra el fitxer FITXER

  2.  :w FITXER  escriu el fitxer editat al disc dur, amb el nom FITXER.

  3.  :#,#w FITXER  desa les línies de # a # en el fitxer FITXER.

  4.  :r FITXER  llegeix el fitxer FITXER del disc dur i l'insereix en el
      fitxer editat a la posició on hi ha el cursor.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Lliçó 6.1: L'ORDRE OBRIR


        ** Premeu  o  per a obrir una línia i entrar en mode inserció. **

  1. Moveu el cursor a la línia de sota senyalada amb --->.

  2. Premeu o (minúscula) per a obrir una línia a BAIX del cursor i
     situar-vos en mode d'inserció.

  3. Copieu la línia senyalada amb ---> i premeu <ESC> per a tornar al mode
     normal.

---> Després de prémer  o  el cursor se situa a la línia nova en mode inserció.

  4. Per a obrir una línia a SOBRE del cursor, premeu la  O  majúscula, en lloc
     de la minúscula. Proveu-ho amb la línia de sota.
Obriu una línia sobre aquesta prement Shift-o amb el cursor en aquesta línia.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lliçó 6.2: L'ORDRE AFEGIR


            ** Premeu  a  per a afegir text DESPRÉS del cursor. **

  1. Moveu el cursor al final de la primera línia de sota senyalada
     amb ---> prement  $  en el mode Normal.

  2. Premeu la lletra  a  (minúscula) per a afegir text DESPRÉS del caràcter
     sota el cursor.  (La  A  majúscula afegeix text al final de la línia.)

Nota: Així s'evita haver de prémer  i , l'últim caràcter, el text a inserir,
      la tecla <ESC>, cursor a la dreta, i finalment  x , només per afegir
      text a final de línia.

  3. Ara completeu la primera línia. Tingueu en compte que aquesta ordre
     és exactament igual que la d'inserir, excepte pel que fa al lloc on
     s'insereix el text.

---> Aquesta línia us permetrà practicar
---> Aquesta línia us permetrà practicar afegir text a final de línia.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Lliçó 6.3: UNA ALTRA MANERA DE SUBSTITUIR


      ** Teclegeu una  R  majúscula per a substituir més d'un caràcter. **

  1. Moveu el cursor a la línia de sota senyalada amb --->.

  2. Poseu el cursor al principi de la primera paraula que és diferent
     respecte a la segona línia senyalada amb ---> (la paraula "l'última").

  3. Ara premeu  R  i substituïu el que queda de text a la primera línia
     escrivint sobre el text vell, per a fer-la igual que la segona.

---> Per a fer aquesta línia igual que l'última useu les tecles.
---> Per a fer aquesta línia igual que la segona, premeu R i el text nou.

  4. Tingueu en compte que en prémer <ESC> per a sortir, el text que no
     s'hagi alterat es manté.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lliçó 6.4: ESTABLIR OPCIONS

      ** Feu que les ordres cercar o substituir ignorin les diferències
                     entre majúscules i minúscules **

  1. Cerqueu la paraula 'ignorar' amb: /ignorar
     Repetiu-ho uns quants cops amb la tecla n.

  2. Establiu l'opció 'ic' (ignore case) escrivint:
     :set ic

  3. Ara cerqueu 'ignorar' un altre cop amb la tecla n.
     Repetiu-ho uns quants cops més.

  4. Establiu les opcions 'hlsearch' i 'incsearch':
     :set hls is

  5. Ara torneu a executar una ordre de cerca, i mireu què passa:
     /ignorar

  6. Per a treure el ressaltat dels resultats, feu:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LLIÇÓ 6 SUMARI


  1. L'ordre  o  obre una línia a SOTA la del cursor i mou el cursor a la nova
     línia, en mode Inserció.
     La  O  majúscula obre la línia a SOBRE la que hi ha el cursor.

  2. Premeu una  a  per a afegir text DESPRÉS del caràcter a sota del cursor.
     La  A  majúscula afegeix automàticament el text a final de línia.

  3. L'ordre  R  majúscula us posa en mode substitució fins que premeu <ESC>.

  4. Escriviu ":set xxx" per a establir l'opció "xxx"









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          LLIÇÓ 7: ORDRES D'AJUDA


                 ** Utilitzeu el sistema intern d'ajuda **

  El Vim té un extens sistema d'ajuda. Per a llegir una introducció proveu una
  d'aquestes tres coses:
        - premeu la tecla <AJUDA> (si la teniu)
        - premeu la tecla <F1> (si la teniu)
        - escriviu   :help <ENTRAR>

  Teclegeu  :q <ENTRAR>  per a tancar la finestra d'ajuda.

  Podeu trobar ajuda sobre pràcticament qualsevol tema passant un argument
  a l'ordre ":help". Proveu el següent (no oblideu prémer <ENTRAR>):

        :help w
        :help c_<T
        :help insert-index
        :help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     LLIÇÓ 8: CREAR UN SCRIPT D'INICI

                   ** Activeu funcions automàticament **

 El Vim té moltes més funcions que el Vi, però moltes estan desactivades
 per defecte. Per a començar a utilitzar més funcions heu de crear un
 fitxer "vimrc".

  1. Comenceu a editar el fitxer "vimrc", depenent del sistema
        :edit ~/.vimrc                  per Unix
        :edit $VIM/_vimrc               per MS-Windows

  2. Llegiu el fitxer "vimrc" d'exemple:

        :read $VIMRUNTIME/vimrc_example.vim

  3. Deseu el fitxer amb:

        :write

 El pròxim cop que executeu el Vim usarà ressaltat de sintaxi.  Podeu
 afegir els ajustos que vulgueu en aquest fitxer "vimrc".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Aquí conclou el Tutor del Vim. És una breu introducció a l'editor Vim,
  suficient perquè el pugueu començar a fer servir. No és complet perquè
  el Vim té moltes ordres. Per a llegir el manual de l'usuari, feu:
  ":help user-manual".

  Per a un estudi més a fons us recomanem el següent llibre:
        Vim - Vi Improved - de Steve Oualline
        Editorial: New Riders
  És el primer llibre dedicat completament al Vim, especialment útil per a
  usuaris novells. Conté molts exemples i diagrames.
  Vegeu http://iccf-holland.org/click5.html

  Aquest altre és més vell i tracta més sobre el Vi que sobre el Vim:
        Learning the Vi Editor - de Linda Lamb
        Editorial: O'Reilly & Associates Inc.
  És un bon llibre per a aprendre qualsevol cosa que desitgeu sobre el Vi.
  La sisena edició també inclou informació sobre el Vim.

  Aquest tutorial ha estat escrit per Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines amb la col·laboració de Charles Smith, Colorado
  State University. E-mail: bware@mines.colorado.edu.

  Modificat pel Vim per Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z��M=<�<�vim80/tutor/tutor.uk.utf-8nu�[���===============================================================================
=                         Ласкаво простимо в уроки VIM                        =
===============================================================================
        
     Vim дуже потужний редактор, що має багато команд. Всі команди неможливо
     помістити в підручнику на зразок цього, але цих уроків достатньо, щоб 
     ви навчились з легкістю користуватись Vim як універсальним редактором. 

     УВАГА:
     Уроки цього підручника вимагають зміни тексту. Зробіть копію файлу, щоб
     практикуватись на ньому.

     Важливо пам'ятати, що цей підручник має на меті навчання на практиці.
     Це означає що ви маєте застосовувати команди щоб вивчити їх. Просто
     прочитавши текст, ви забудете команди.

     Кнопки на клавіатурі, будемо позначати квадратними дужками: [кнопка].

     А зараз переконайтесь, що включена англійська розкладка і не затиснутий
     Caps Lock, і натисніть кнопку j щоб переміститись до першого уроку.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Урок 1.1: ПЕРЕМІЩЕННЯ КУРСОРА 


   ** Щоб переміщати курсор використовуйте кнопки [h],[j],[k],[l],
      як вказано на схемі: 
             ^
            [k]      
        <[h]   [l]>       
            [j]
             v                

  Таке розміщення спочатку може видатись трохи дивним. Як наприклад те, що
  кнопка [l] переміщує курсор вправо. Але клавіші розміщені так, щоб 
  мінімізувати кількість рухів. Найчастіша дія яку користувач робить з 
  текстовим файлом - це читає його. А при читанні прокручують текст вниз.
  Тому вниз прокручує [j] - вона знаходиться якраз під вказівним пальцем
  правої руки. 

  Курсор можна переміщувати і класичним способом (курсорними клавішами), але
  зручніше буде, якщо ви опануєте спосіб Vim. (Особливо якщо ви вже вмієте
  набирати всліпу).

  1. Попереміщуйте курсор по екрану, поки не призвичаїтесь.

  2. Перемістіться до наступного уроку. 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Урок 1.2: Вихід з Vim


Увага! Перед тим як виконувати цей урок прочитайте його повністю.

  1. Натисніть [ESC] (щоб впевнитись що ви в звичайному режимі).

  2. Наберіть:  :q! [ENTER].
     Це завершує роботу, відкидаючи всі зміни які ви здійснили.

  3. Коли ви побачите привітання терміналу введіть команду яку ви використали
     щоб відкрити цей підручник. Скоріш за все це було: vim tutor.txt [ENTER]

  4. Якщо ви запам'ятали кроки з 1 по 3, виконайте їх, і переходьте до 
     наступного уроку. 

Зауваження: Команда :q! [ENTER]  завершує роботу і відкидає всі зміни. Через
            кілька уроків ви навчитесь зберігати зміни в файл.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Урок 1.3:РЕДАГУВАННЯ ТЕКСТУ. ВИДАЛЕННЯ. 


           ** Натисніть [x] щоб видалити символ під курсором. **

  1. Перемістіть курсор до лінії нижче, яка позначена так: --->.

  2. Щоб виправити помилки перемістіть курсор так, щоб він став над 
     символом який треба видалити.

  3. Натисніть [x] щоб видалити непотрібний символ.

  4. Повторіть кроки з другого по четвертий, поки речення не стане правильним.

---> Ккоровва перрестрибнуууууула ччерезз мііісяццць.

  5. Тепер, коли речення правильне, можна перейти до уроку 1.4.

Зауваження: Протягом навчання не старайтесь запам'ятати все.
            Вчіться практикою.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Урок 1.4: РЕДАГУВАННЯ ТЕКСТУ. ВСТАВКА


                      ** Натисніть  [i] щоб вставити текст. **

  1. Перемістіть курсор на перший рядок позначений:  --->.

  2. Перемістіть курсор на символ, ПІСЛЯ якого потрібно вставити текст.

  3. Натисніть [i] і наберіть необхідні вставки.

  4. Коли всі помилки виправлені натисніть [ESC] щоб повернутись в звичайний
     режим.

---> З прав текст.
---> З цього рядка пропав деякий текст.

  5. Коли призвичаїтесь вставляти текст - переходьте до уроку 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Урок 1.5: РЕДАГУВАННЯ ТЕКСТУ. ДОДАВАННЯ.


                        ** Натисніть [A] щоб додати текст. **

Увага! Тут і далі, коли мають наувазі клавішу з буквою в верхньому
       регістрі, то це означає що її натискають з затиснутою [SHIFT].

  1. Перемістіть курсор до першої лінії внизу позначеної --->.
     Не має значення над яким символом знаходиться курсор.

  2. Натисніть [A] і введіть необхідне доповнення.

  3. Коли додавання завершене натисніть [ESC] щоб повернутись в 
     звичайний режим.

  4. Перемістіть курсор до другої лінії позначеної ---> і повторіть
     кроки 2 і 3 щоб виправити речення.

---> З цього рядка пропущ
     З цього рядка пропущений текст.
---> З цього рядка також
     З цього рядка також пропущений текст.

  5. Після виконання вправ, переходьте до наступного уроку.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Урок 1.6: РЕДАГУВАННЯ ФАЙЛУ

                    ** Використайте :wq щоб зберегти файл і вийти.**

Увага! Перед виконанням уроку прочитайте його повністю.

  1. Вийдіть з цього підручника як ви робили в уроці 1.2:  :q![ENTER]
     Або якщо ви маєте доступ до іншого терміналу виконуйте наступні
     дії в ньому.

  2. В терміналі наберіть команду:  vim НазваФайлу [ENTER]
     'vim' - команда для запуску редактора, НазваФайлу - файл який будемо
     редагувати. Якщо ввести неіснуючий файл, то він створиться

  3. Відредагуйте текст, як навчились у попередніх уроках.

  4. Щоб зберегти зміни у файлі, і вийти з Vim наберіть:  :wq [ENTER]

  5. Якщо ви вийшли з підручника на першому кроці, то зайдіть в нього
     знову і переходьте до підсумку.

  6. Після прочитання і засвоєння попередніх кроків виконайте їх.
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               ПІДСУМОК УРОКУ 1


  1. Курсор керується курсорними клавішами, або клавішами [h][j][k][l]
         [h] (вліво)    [j] (вниз)       [k] (вверх)    [l] (вправо)

  2. Щоб запустити Vim з терміналу наберіть:  vim Назва файлу [ENTER]

  3. Щоб вийти з Vim наберіть: [ESC] :q! [ENTER]  щоб відкинути всі зміни.
                 або наберіть: [ESC] :wq [ENTER]  щоб зберегти всі зміни.

  4. Щоб видалити символ під курсором натисніть [x].

  5. Щоб вставити, чи доповнити текст наберіть:
         [i]   текст що вставляєтсья   [ESC]    вставиться перед курсором
         [A]   текст до додається      [ESC]    додасть текст до рядка

Зауваження: Натискання [ESC] перенесе вас в звичайний режим, чи відмінить
         не до кінця введену команду.

Тепер переходьте до уроку 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Урок 2.1: КОМАНДИ ВИДАЛЕННЯ


                       ** Введіть dw щоб видалити слово. **

  1. Натисніть [ESC], щоб переконатись що ви в звичайному режимі.

  2. Перемістіть курсор до лінії нижче позначеної --->.

  3. Перемістіть курсор до початку слова що має бути видалене.

  4. Введіть dw щоб слово пропало.

  Зауваження: Буква d з'явиться в останньому рядку екрану, якщо ви її натиснули.
              Vim чекає введення наступного символа. Якщо з'явилось щось інше
              значить ви щось не так ввели. Натисніть [ESC] і почніть спочатку.

---> Є деякі слова весело, які не потрібні папір в цьому реченні.

  5. Повторюйте кроки 3 і 4 поки речення не стане правильне, а тоді переходьте
     до уроку 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Урок 2.2: БІЛЬШЕ КОМАНД ВИДАЛЕННЯ


     ** Наберіть d$ щоб видалити символи від курсора до кінця рядка. **

  1. Натисніть [ESC] щоб переконатись що ви в звичайному режимі.

  2. Перемістіть курсор до лінії нижче, що позначена --->.

  3. Перемістіть курсор до кінця правильного рядка (ПІСЛЯ першої крапки).

  4. Введіть d$ щоб видалити все до кінця рядка.

---> Хтось надрукував кінець цього рядка двічі. кінець цього рядка двічі.


  5. Перейдіть до уроку 2.3 щоб розібратись в цьому детальніше.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Урок 2.3:ОПЕРАТОРИ І ПЕРЕМІЩЕННЯ


  Багато команд що змінюють текст утворені з оператора і переміщення.
  Формат команди видалення з оператором d подано нижче:

        d   переміщення

  Де:
    d      - оператор видалення.
    переміщення - з чим працює оператор (описано нижче).

  Короткий список переміщень:
    w - до початку наступного слова, НЕ ВКЛЮЧАЮЧИ його перший символ.
    e - до кінця поточного слова, ВКЛЮЧАЮЧИ останній символ.
    $ - до кінця рядка, ВКЛЮЧАЮЧИ останній символ.

  Тому введення de видалить символи від курсора, до кінця слова.

Зауваження: Натискання тільки переміщення в звичайному режимі відповідно 
            переміщує курсор.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Урок 2.4: ВИКОРИСТАННЯ ЛІЧИЛЬНИКА ДЛЯ ПЕРЕМІЩЕННЯ


   ** Введення числа перед переміщенням повторює його стільки раз. **

  1. Перемістіть курсор до початку рядка позначеного --->

  2. Введіть  2w щоб перемістити курсор на два слова вперед.

  3. Введіть 3e щоб перемістити курсор в кінець третього слова.

  4. Введіть 0 (нуль) щоб переміститись на початок рядка.

  5. Повторіть кроки 2 і 3 з різними числами.

---> А це просто рядок зі словами, серед яких можна рухати курсором.

  6. Переходьте до уроку 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Урок 2.5: БАГАТОРАЗОВЕ ВИДАЛЕННЯ


   ** Введення числа з оператором повторює його стільки ж разів. **

  В комбінації з оператором видалення, і переміщення з лічильника можна 
  видаляти потрібне число елементів.
  Для цього введіть 
         d   число   переміщення

  1. Перемістіться до першого слова в ВЕРХНЬОМУ РЕГІСТРІ в рядку 
     позначеному --->.

  2. Введіть d2w щоб видалити два слова.

  3. Повторіть кроки 1 і 2 з різними числами, щоб видалити все зайве.

--->  цей ABC DE рядок FGHI JK LMN OP слів Q RS TUV почищений.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Урок 2.6: ОПЕРАЦІЇ З РЯДКАМИ


                 ** Введіть  dd  щоб видалити весь рядок. **

  Через те, що видалення всього рядка є доволі частою дією розробники Vi
  вирішили що для цієї операції потрібна проста команда, як dd.

  1. Перемістіть курсор до другого рядка в вірші нижче.
  2. Введіть dd щоб видалити рядок.
  3. Потім перемістіться до четвертого рядка.
  4. Введіть 2dd щоб видалити два рядки.

--->  1)  Троянди червоні,
--->  2)  Багнюка весела,
--->  3)  Волошки голубі,
--->  4)  В мене є машина,
--->  5)  Годинник каже час,
--->  6)  Цукерки солодкі,
--->  7)  Дарую тобі.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Урок 2.7: ВІДКИНУТИ ЗМІНИ


  ** Натисніть u щоб скасувати останні команди, U щоб виправити ввесь рядок. **

  1. Перемістіть курсор до рядка нижче позначеного ---> на місце першої помилки.
  2. Натисніть x щоб видалити непотрібний символ.
  3. Потім натисніть u щоб відмінити виправлення.
  4. Цього разу виправте всі помилки в рядку використовуючи команду x .
  5. Після цього введіть U, і відкиньте всі зміни в цілому рядку.
  6. Натисніть u кілька разів, щоб відмінити U і попередні команди.
  7. Тепер натисніть CTRL-R кілька разів, щоб повторити відмінені команди 
     (відмінити відміну).

---> Вииправте помилки наа цьоому рядку і вііідмініть їх.

  8. Тепер можна переходити до підсумків другого уроку.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               ПІДСУМОК УРОКУ 2


  1. Щоб видалити все від курсора аж до початку наступного слова введіть: dw
  2. Щоб видалити від курсора до кінця рядка:    d$
  3. Щоб видалити увесь рядок:    dd

  4. Щоб повторити переміщення, поставте перед ним число повторів:   2w
  5. Формат команди зміни:
               оператор   [число]   переміщення
     де:
       оператор - що робити, як наприклад d для видалення
       [число] - кількість повторів 
       переміщення   - куди переміститись перед виконанням оператора, як
                як наприклад w (слово), $ (кінець рядка), і т.і.

  6. Щоб переміститись до початку рядка використовуйте нуль:  0

  7. Щоб відмінити попередню дію введіть:   u  (u в нижньому регістрі)
     Щоб відмінити всі зміни рядка введіть: U  (U в верхньому регістрі)
     Щоб скасувати відміну натисніть:       CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Урок 3.1: КОМАНДА PUT


       ** Введіть p щоб вставити перед тим видалений текст після курсору. **

  1. Перемістіть курсор до першої ---> лінії внизу.

  2. Введіть dd щоб видалити рядок і зберегти його в регістрі Vim.

  3. Перемістіть курсор до рядка в), НАД тим місцем де має бути видалений рядок.

  4. Натисніть p щоб вставити рядок під курсором.

  5. Повторіть кроки від 2 до 4 щоб вставити всі рядки в правильному порядку.

---> г) всіх до кузні іззива.
---> б) а в коваля серце тепле,
---> в) а він клепче та й співа,
---> а) А в тій кузні коваль клепле,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Урок 3.2: Команда заміни


       ** Наберіть rx щоб замінити символ під курсором на x . **

  1. Перемістіть курсор до першого рядка нижче, позначеного  --->.

  2. Помістіть курсор над першою помилкою.

  3. Наберіть r а потім символ який має стояти там.

  4. Повторіть кроки з 2 по 3 поки перший рядок не стане еквівалентним другому.

--->  Коли ця лігія набираламт. хтось наьтснкв геправмльні унопкм!
--->  Коли ця лінія набиралась, хтось натиснув неправильні кнопки!

  5. Зараз переходьте до уроку 3.3.

Примітка: Ви маєте вчитись діями, а не простим заучуванням, пам'ятаєте?



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Урок 3.3: ОПЕРАТОР ЗАМІНИ


           ** Щоб зробити заміну до кінця слова введіть ce . **

  1. Перемістіть курсор до першого рядка позначеного --->.

  2. Помістіть курсор над у в слові рукра.

  3. Введіть ce і правильне закінчення слова (ядок в цьому випадку).

  4. Натисніть [ESC] і переходьте до наступного символа, який потрібно замінити.

  5. Повторюйте кроки 3 і 4 поки перше речення не стане таким самим як і друге.

---> Цей рукра має кілька слів що потретамув заміни за допоцкщшг оператора.
---> Цей рядок має кілька слів що потребують заміни за допомогою оператора.

Зауважте що ce видаляє слово, і поміщає вас в режим вставки.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Урок 3.4: БІЛЬШЕ ЗМІН З c


  ** Оператор заміни використовується з тими ж переміщеннями що і видалення. **

  1. Оператор заміни працює в такий же спосіб що і видалення. Формат:

         c    [число]   переміщення

  2. Переміщення ті ж самі, такі як w (слово) і $ (кінець рядка).

  3. Перемістіться до першого рядка позначеного --->.

  4. Перемістіть курсор до першої помилки.

  5. Наберіть c$ і решту рядка, щоб він став таким як другий і натисніть [ESC].

---> Кінець цього рядка потребує якихось дій щоб стати таким як кінець другого.
---> Кінець цього рядка можна виправити за допомогою команди c$.

Примітка: Можна використовувати кнопку Backspace щоб виправляти опечатки при 
                наборі.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               ПІДСУМОК УРОКУ 3


  1. Щоб вставити текст який був видалений наберіть p . Це вставляє 
     видалений текст ПІСЛЯ курсора (якщо був видалений рядок, вставка
     продовжиться з рядка під курсором).

  2. Щоб замінити символ під курсором наберіть r і необхідний символ.

  3. Оператор заміни дозволяє робити заміну тексту від курсору, до потрібного
     переміщення. Наприклад щоб замінити все від курсора до кінця слова
     вводять  ce . Щоб замінити закінчення рядка тиснуть c$  .

  4. Формат заміни:

         c   [число]   переміщення

Почнемо наступний урок.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Урок 4.1: ПОЗИЦІЯ КУРСОРА І СТАТУС ФАЙЛУ

  ** Введіть CTRL-G щоб побачити вашу позицію в файлі, і його статус.
     Введіть G  щоб переміститись на потрібний рядок файлу. **

  ПРИМІТКА: Прочитайте увесь урок перед виконанням будь-яких кроків!!

  1. Затисніть кнопку Ctrl і натисніть g . Це називається CTRL-G.
     Внизу з'явиться повідомлення з назвою файлу, і позицією в файлі. 
     Запам'ятайте номер рядка для кроку 3.

ПРИМІТКА: Ви бачите позицію курсора в нижньому правому кутку екрану.
          Це трапляється коли включена опція 'ruler' (читайте :help 'ruler'  )

  2. Натисніть G щоб переміститись до кінця файлу.
     Наберіть  gg щоб переміститись до початку файлу.

  3. Наберіть номер рядка де ви були а потім G. Це перенесе вас до потрібного
     рядка.

  4. Якщо ви запам'ятали три попередні кроки, то виконуйте.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Урок 4.2: КОМАНДА ПОШУКУ


         ** Введіть  / (слеш) і фразу, щоб шукати її в тексті. **

  1. В звичайному режимі введіть символ  /  . Зауважте що він і курсор 
     з'являються в низу екрану, як і з командою  :   .

  2. Тепер введіть 'очепятка' <ENTER>. Це буде словом яке ви шукатимете.

  3. Щоб здійснити пошук цієї фрази ще раз введіть  n .
     Щоб шукати в протилежному напрямку введіть  N .

  4. Щоб шукати фразу в зворотньому напрямку використайте  ?  замість  / .

  5. Щоб переміститись назад до того місця звідки прийшли натисніть CTRL-O.
     Повторіть щоб повернутись ще далі. (Це як кнопка назад в браузері)
     CTRL-I переміщує вперед.

--->  "очепятка" не є способом написати опечатка; очепятка це опечатка.
Примітка: Коли пошук досягає кінця файлу він продовжує з початку, хіба що 
          опція 'wrapscan' була виключена.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Урок 4.3: ПОШУК ПАРНИХ ДУЖОК


              ** Введіть  %  щоб знайти парну ),], чи } . **

  1. Помістіть курсор над будь-якою (, [, чи { в рядку нижче позначеному --->.

  2. Тепер введіть символ  %  .

  3. Курсор переміститься до відповідної дужки.

  4. Введіть  %  щоб перемістити курсор до іншої парної дужки.

  5. Спробуйте з іншими дужками, і подивіться що вийде.

---> Це ( тестовий рядок ( з такими [ такими ] і такими { дужками } в ньому. ))


Примітка: Це корисно при відлагоджуванні програми з неправильними дужками. 
          І взагалі в кожному тексті дужки мають стояти правильно!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Урок 4.4: КОМАНДА ЗАМІНИ


        ** Наберіть :s/старе/нове/g щоб замінити 'старе' на 'нове'. **

  1. Перемістіть курсор до лінії нижче позначеної  --->.

  2. Введіть :s/(біп)/блять [ENTER] . Зауважте що ця команда змінює тільки перше
     входження (біп) в рядку.

  3. Потім наберіть  :s/(біп)/блять/g .  Додавання  g  вказує що заміни 
     робляться у всьому рядку глобально.

---> люди не лю(біп), коли в слові "лю(біп)" "(біп)" заміняють на "(бiп)".

  4. Щоб замінити кожне входження послідовності символів між двома рядками 
     наберіть  :#,#s/старе/нове/g    де #,# діапазон рядків в яких робиться 
                                     заміна.
     Введіть   :%s/старе/нове/g      щоб змінити кожне входження у цілому файлі.
     Введіть   :%s/старе/нове/gc        щоб замінити, кожне входження у файлі з
                                     підтвердженням кожної заміни.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               ПІДСУМОК УРОКУ 4 


  1. CTRL-G  виводить вашу позицію в файлі і назву файлу.
             G  переміщує в кінець файлу.
     число   G  переміщує до рядка з вказаним номером.
            gg  переміщує до першого рядка.

  2. Ввід  /    і послідовності символів шукає послідовність ПІСЛЯ курсора.
     Ввід  ?       і послідовності символів шукає послідовність ПЕРЕД курсором.
 
     Після пошуку введіть  n  щоб знайти наступне входження в тому ж напрямку
     або  N  щоб шукати в протилежному напрямку.
     CTRL-O відносить вас до старішої позиції, CTRL-I до новішої позиції.

  3. Ввід  %       коли курсор знаходиться над дужкою (,),[,],{, чи } переносить
     курсор до протилежної дужки.

  4. Щоб замінити перше входження старого слова на нове    :s/старе/нове
     Щоб замінити всі старі слова рядка на нові            :s/старе/нове/g
     Щоб замінити фрази між двома рядками                  :#,#s/старе/нове/g
     Щоб замінити всі входження в файлі                    :%s/старе/нове/g
     Щоб щоразу підтверджувати заміну додайте 'c'          :%s/старе/нове/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Урок 5.1: ЯК ВИКОНАТИ ЗОВНІШНЮ КОМАНДУ


   ** Введіть  :!  і зовнішню команду, щоб виконати ту команду. **

  1. Введіть відому команду  :  щоб встановити курсор в низу екрану.
     Це дозволяє вводити команди командного рядка.

  2. Тепер введіть  !  (символ знаку оклику) .  Це дозволить вам виконати
     будь-яку зовнішню команду.

  3. Як приклад введіть :!ls [ENTER].  Це покаже список файлів каталогу, так
     так ніби ви знаходитесь в оболонці терміналу. Або використайте :!dir
     якщо ви раптом знаходитесь в Windows.

Примітка:  Можна запускати будь-яку зовнішню команду таким способом, навіть з
           аргументами.

Примітка:  Всі команди що починаються з  :  мають закінчуватись натисканням
           [ENTER]. Більше на цьому не наголошуватиметься.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Урок 5.2: ЩЕ ПРО ЗАПИС ФАЙЛІВ


     ** Щоб зберегти змінений текст, введіть :w НАЗВА_ФАЙЛУ **

  1. Введіть  :!dir  чи  :!ls  щоб переглянути вміст вашої директорії.
     Вам вже казали що після цього тиснуть [ENTER].

  2. Виберіть ім'я файлу яке ще не використовується, наприклад TEST.
     (Взагалі то це не обов'язково, якщо вміст обраного файлу не 
     є цінним)

  3. Тепер введіть:      :w TEST   (де TEST це назва яку ви обрали.)

  4. Це зберігає увесь файл (підручник Vim ) під ім'ям TEST.
     Щоб перевірити знову наберіть  :!ls   щоб побачити зміни в каталозі.

Примітка: Якщо ви вийдете з Vim і запустите його знову командою vim TEST, 
          файл що ви відкриєте буде точною копією цього, коли ви його зберегли.

  5. Зараз видаліть файл ввівши (Unix):         :!rm TEST
                             чи (MS-DOS):       :!del TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Урок 5.3: ВИБІР ТЕКСТУ ДЛЯ ЗАПИСУ


  ** Щоб зберегти частину файлу, наберіть  v  переміщення  :w НАЗВА_ФАЙЛУ **

  1. Перемістіть курсор до цього рядка.

  2. Натисніть  v  і перемістіть курсор на п'ять пунктів нижче. Зауважте, що 
     текст виділяється.

  3. Натисніть символ  :  .  Внизу екрану з'являються символи  :'<,'> .

  4. Введіть w TEST  , де TEST назва файлу що ще не використовується.  
     Переконайтесь що ви бачите  :'<,'>w TEST  перед тим як натиснути [ENTER].

  5. Vim запише вибрані рядки в файл TEST.  Використайте :!dir  чи  !ls
     щоб побачити це. Поки що не видаляйте його! Ми використаємо TEST в
     наступному уроці.

Зауваження: Натискання v починає режим візуального виділення. Ви можете
            переміщувати курсор щоб змінити розмір вибраної частини.
            Потім можна використати оператор щоб зробити щось з текстом.
            Наприклад  d  видалить текст.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Урок 5.4: ОТРИМАННЯ І ЗЛИТТЯ ФАЙЛІВ


       ** Щоб вставити вміст файлу введіть  :r НАЗВА_ФАЙЛУ  **

  1. Помістіть курсор десь над цим рядком.

Зауваження:  Після виконання кроку 2 ви побачите текст з уроку 5.3. Тоді
             перемістіться вниз, щоб побачити вміст цього уроку знову.

  2. Тоді отримайте вміст вашого файлу TEST використавши команду  :r TEST  ,
     де TEST назва файлу що ви використали.
     Файл що ви отримуєте поміщується під рядком курсора.

  3. Щоб перевірити що файл вставлено, прокрутіть текст назад, і переконаєтесь
     що тепер є дві копії урок 5.3, the original and the file version.

Примітка:  Також ви можете вставляти вивід зовнішньої програми. Наприклад
           :r !ls  читає вивід команди  ls  і вставляє його під курсором.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               Підсумок 5 уроку


  1.  :!команда  виконує зовнішню команду.

  2.  :w НАЗВА_ФАЙЛУ записує поточний файл на диск під назвою НАЗВА_ФАЙЛУ.

  3.  v  переміщення  :w НАЗВА_ФАЙЛУ зберігає візуально виділену частину тексту       
       в файл НАЗВА_ФАЙЛУ.

  4.  :r НАЗВА_ФАЙЛУ  отримує з диску файл НАЗВА_ФАЙЛУ і вставляє його під 
      курсором.

  5.  :r !ls  читає вивід команди ls і вставляє її під поточною позицією курсора



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Урок 6.1: КОМАНДА ВСТАВКИ

        
           ** Введіть o щоб вставити новий рядок під курсором. **

  1. Перемістіть курсор на рядок нижче, позначений --->.

  2. Натисніть  o  щоб вставити новий рядок ПІД курсором та перейти в 
     режим вставки.

  3. Тепер введіть текст і натисніть [ESC] щоб вийти з режиму вставки.

---> Після натискання  o  курсор ставиться на наступний рядок в режимі вставки.

  4. Щоб вставити рядок НАД ABOVE курсором пишуть  O  в верхньому регістрі, 
     замість o. Спробуйте на рядку нижче.

---> Щоб вставити рядок над цим введіть  O  .




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Урок 6.2: КОМАНДА ДОПИСУВАННЯ


             ** Натисніть  a  щоб вставити текст після курсору. **

  1. Перемістіть курсор до початку рядка внизу позначеного --->.
  
  2. Тисніть  e  поки курсор не буде в кінці ря .

  3. Натисніть  a  (маленьке) щоб додати текст ПІСЛЯ курсору.

  4. Допишіть слова як рядок внизу.  Натисніть [ESC] щоб вийти з режиму
     вставки.

  5. Використайте  e  щоб переміститись до наступного неповного слова та
     to move to the next incomplete word and repeat steps 3 and 4.
  
---> Цей ря дозволить вам попрактикува в дописува тексту до рядка.
---> Цей рядок дозволить вам попрактикуватись в дописуванні тексту до рядка.

Примітка:  a, i  і  A  переходять в один і той же режим вставки, єдиною різницею
           є тільки те, де вставляються символи.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Урок 6.3: ІНШИЙ СПОСІБ ЗАМІНИ


        ** Введіть велику  R  щоб замінити більш ніж один символ. **

  1. Перемістіть курсор до першого рядка внизу позначеного --->.  
     Перемістіть курсор до першого  xxx .

  2. Тепер натисніть  R  і введіть номер під ним з другого рядка, так що він
     замінює xxx .

  3. Натисніть [ESC] щоб покинути режим заміни.  Зауважте, що решта рядка 
     залишається незмінною.

  4. Повторіть кроки від 1 до 3 щоб замінити всі xxx на числа з другого рядка.

---> Додавання 123 до xxx дає xxx.
---> Додавання 123 до 456 дає 579.

Зауваження:  Режим заміни подібний до режиму вставки, тільки кожен введений 
             символ видаляє символ який стояв на його місці.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Урок 6.4: КОПІЮВАННЯ І ВСТАВКА


  ** Використайте оператор  y  щоб копіювати текст і  p  щоб його вставити **

  1. Перейдіть до рядка нижче позначеного ---> і покладіть курсор після "а)".
  
  2. Перейдіть в візуальний режим за допомогою клавіші  v  і перемістіть курсор
     якраз перед словом "один".
  
  3. Введіть  y  щоб копіювати (yank) виділений текст.

  4. Перемістіть курсор до кінця наступного рядка:  j$

  5. Натисніть  p  щоб вставити (put) текст.  Тоді введіть :  два [ESC] .

  6. так само додайте третій рядочок.

--->  а) це рядок номер один
      б)

  Зауваження: також можна використовувати  y  як оператор;  
              yw  копіює одне слово.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Урок 6.5: ВСТАНОВЛЕННЯ ОПЦІЙ


     ** Встановити опцію так що пошук чи заміна буде ігнорувати регістр **

  1. Знайдіть слово 'ігнорувати' ввівши :   /ігнорувати
     Повторіть кілька разів натискаючи  n .

  2. Встановіть опцію ігнорування регістру 'ic' (Ignore case) ввівши:  :set ic

  3. Тепер пошукайте 'ігнорувати' знову ввівши  n
     Зауважте що Ігнорувати та ІГНОРУВАТИ тепер також знаходяться.

  4. Ввімкніть 'hlsearch' (підсвітку пошуку) і 'incsearch' (інтерактивність)
     командою :set hls is  .

  5. Тепер пошукайте щось знову і зауважте зміни:  /ігнорувати [ENTER]

  6. Щоб вимкнути ігнорування регістру напишіть:  :set noic

Примітка:  Щоб вимкнути підсвітку співпадінь введіть:   :nohlsearch 
Примітка:  Якщо ви хочете не брати до уваги регістр тільки під час одного пошуку           
           використайте ключ  \c. Наприклад:  /ігнорувати\c  [ENTER]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               ПІДСУМОК УРОКУ 6

  1. Введіть  о  щоб додати рядок ПІД курсором і почати режим вставки.
     Введіть  O  щоб додати рядок НАД курсором.

  2. Введіть  a  щоб вставити текст ПІСЛЯ курсора.
     Введіть  A  щоб додати текст до рядка.

  3. Переміщення  e  переміщує нас до кінця слова.

  4. Оператор  y  копіює текст,  p  вставляє його.

  5. Введення  R  переносить нас в режим заміни до натискання [ESC].

  6. Набір ":set xxx" встановлює опцію "xxx".  Деякі опції:
        'ic' 'ignorecase'       ігнорувати верхній/нижній регістр при пошуку
        'is' 'incsearch'        показувати співпадіння пошуку під час введення
                                фрази
        'hls' 'hlsearch'        пісвічувати всі співпадіння
     Можна одночасно використовувати і коротку і довгу форму запису опції.

  7. Використайте префікс "no" щоб вимкнути опцію:   :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Урок 7.1: ОТРИМАННЯ ДОПОМОГИ


              ** Використання вбудованої довідкової системи **

  Vim має всеосяжну систему довідки. Щоб ознайомитись з нею спробуйте один з
  таких способів:
        - натисніть кнопку [HELP] (якщо така є)
        - натисніть [F1]
        - наберіть   :help

  Прочитайте текст в вікні допомоги, щоб вияснити як вона працює.
  Натисніть CTRL-W  двічі щоб змінити вікно
  Наберіть   :q  щоб закрити вікно довідки.

  Можна знайти довідку майже на будь-яку тему додаючи аргумент після команди
  ":help" . Спробуйте одну з наступних (не забувайте натискати  [ENTER]):

        :help w
        :help c_CTRL-D
        :help insert-index
        :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Урок 7.2: СТВОРЕННЯ СКРИПТА АВТОЗАПУСКУ


                      ** Ввімкнення додаткових функцій Vim **

  Vim має набагато більше функцій ніж Vi, але більшість з них відключені за 
  замовчуванням.  Щоб почати використання додаткових функцій потрібно створити
  файл "vimrc".

  1. Почніть редагування файлу "vimrc" .  Це залежить від вашої системи:
        :e ~/.vimrc             для Unix
        :e $VIM/_vimrc          для MS-Windows

  2. Тепер прочитайте приклад вмісту "vimrc" :
        :r $VIMRUNTIME/vimrc_example.vim

  3. Збережіть файл:
        :w

  Наступного разу коли ви запустите Vim він буде використовувати підсвітку 
  синтаксису. Можна додати всі ваші улюблені налаштування в цей файл. Для більш
  детальної інформації введіть  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             Урок 7.3: АВТОДОПОВНЕННЯ


              ** Автодоповнення за допомогою CTRL-D і [TAB] **

  1. Переконайтесь що в Vim не включена зворотня сумісність:  :set nocp

  2. Подивіться що за файли існують в каталозі:  :!ls   чи  :!dir

  3. Введіть початок команди:  :e

  4. Натисніть  CTRL-D  і Vim покаже список команд що починаються з "e".

  5. Натисніть [TAB]  і  Vim доповнить команду до ":edit".

  6. Тепер додайте пропуск і початок існуючого імені файлу:  :edit FIL

  7. Натисніть [TAB].  Vim доповнить ім'я (якщо воно унікальне).

Зауваження:  Доповнення працює для багатьох команд. Просто натискайте CTRL-D і
             [TAB]. Це особливо корисно для команди  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               ПІДСУМОК УРОКУ 7


  1. Введіть  :help  або натисніть [F1] щоб відкрити вікно довідки.

  2. Введіть  :help тема  щоб знайти довідку про  тему .

  3. Введіть  CTRL-W CTRL-W  щоб змінити вікно.

  4. Наберіть  :q  щоб закрити вікно

  5. Створіть скрипт vimrc щоб змінювати ваші налаштування при запуску.

  6. При наборі команди що починається з двокрапки  :  натисніть CTRL-D 
     щоб побачити можливі доповнення. Натисніть [TAB] щоб побачити одне з
     доповнень.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Це завершує уроки Vim .  Вони були націлені щоб дати вам короткий вступ в 
  редактор Vim, достатній для того щоб використовувати редактор комфортно.
  Ці уроки зовсім далеко від повних, бо Vim має набагато більше команд. Можна 
  прочитати інструкцію користувача : ":help user-manual".

  Для подальшого читання і вивчення рекомендується така книжка:
        Vim - Vi Improved - by Steve Oualline
        Publisher: New Riders
  Особливо корисна для початківців.
  Там багато прикладів і ілюстрацій.
  Дивіться http://iccf-holland.org/click5.html

  Ці уроки були написані Майклом С. Пірсом та Робертом Уаром.

  Модифіковано для Vim Бремом Муленаром.
  

  Переклад на українську Буник Т.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z=�g�g�vim80/tutor/tutor.lvnu�[���===============================================================================
=         Ī s a          p a m ā c ī b a        V I M     -   Versija 1.7     =
===============================================================================

   Vim ir jaudīgs teksta redaktors ar pārāk daudzām komandām, lai to
   aprakstītu tik īsā aprakstā kā šis. Šī pamācība ir paredzēta, lai
   spētu iemācīties tik daudz, cik nepieciešams, lietojot Vim, kā plaša
   pielietojuma teksta redaktoru.

   Atkarībā no tā, cik daudz laika veltīsiet eksperimentiem,
   šīs pamācības aptuvenais izpildīšanas laiks  ir 25 — 30 minūtes.

   UZMANĪBU:
   Darbojoties ar komandām, jūs izmainīsiet šo tekstu, tāpēc izveidojiet šī
   faila kopiju (ja jūs palaidāt "vimtutor" komandu, šī jau ir kopija).

   Svarīgi atcerēties, ka šo pamācību ir paredzēts izpildīt praktiski!
   Ja jūs tikai lasīsiet šo tekstu, jūs komandas aizmirsīsiet!

   Tagad pārliecinieties, ka tastatūrai nav nospiesti SHIFT vai
   CAPS-LOCK taustiņi un spiediet j taustiņu, līdz pilnībā redzat

   1.1 nodarbības saturu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1.1 nodarbība: KURSORA PĀRVIETOŠANA

    ** Lai pārvietotu kursoru, spiediet taustiņus h, j, k, l  **

  Lai atcerētos,
  izmantojiet vārdus:        k          "Kaugšup"
                             ^
            pa "Heisi"  h  <   >  l  pa "Labi"
                             v
                             j          "Jejup"

  1. Pārvietojiet kursoru pa ekrānu tik ilgi, kamēr pierodat.

  2. Turiet j taustiņu tik ilgi, kamēr ieslēdzas tā auto-atkārtošana.
     Un dodieties uz nākamo nodarbību.

PIEZĪME: Ja neesat pārliecināts par nospiesto taustiņu, spiediet <ESC>,
      lai atgrieztos normālajā režīmā, un spiediet vajadzīgo taustiņu atkal.

PIEZĪME: Kursora vadībai var izmantot arī bultiņu taustiņus, bet ticiet —
      iemācīties vadīt ar j, k, l, h taustiņiem ir daudz parocīgāk!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1.2 nodarbība: IZIEŠANA NO VIM

  !! PIEZĪME: Pirms izpildīt šīs nodarbības soļus, izlasiet visu instrukciju!

  1. Lai būtu drošs, ka esat normālajā režīmā, nospiediet <ESC> taustiņu.

  2. Ievadiet komandu:   :q! <ENTER>.
     Ievadot šo komandu, jūs iziesiet no redaktora nesaglabājot izmaiņas.

  3. Ja palaidāt vim komandrindā, tad pēc tam atkal to izsauciet, ievadot
     vimtutor <ENTER>

  4. Kad esat iegaumējis 1. — 3. soli, izpildiet tos, lai atgrieztos
     redaktorā.

PIEZĪME:  :q! <ENTER> komanda atceļ visas failā radītās izmaiņas. Pēc dažām
       nodarbībām jūs uzzināsiet, kā izmaiņas varat saglabāt.

  5. Pārvietojiet kursoru, uz 1.3 nodarbību.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1.3 nodarbība: TEKSTA REDIĢĒŠANA – DZĒŠANA

	   ** Lai izdzēstu zem kursora atrodošos burtu, spiediet  x  **

  1. Pārvietojiet kursoru uz līniju ar atzīmi --->.

  2. Lai izlabotu kļūdas, pārvietojiet kursoru uz vajadzīgo burtu.

  3. Spiediet x taustiņu, lai izdzēstu nevajadzīgo burtu.

  4. Atkārtojiet 2. līdz 4. soļus, līdz teksts ir pareizs.

---> Hiiipijiiii čččauuukstiiina celllofānu.

  5. Kad augstāk parādītā rinda ir izlabota, dodieties uz 1.4. nodarbību.

PIEZĪME: Izpildot šo pamācību, centieties mācīties nevis domājot,
         bet gan praktiski trenējot kustību atmiņu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1.4 nodarbība: TEKSTA REDIĢĒŠANA — IEVIETOŠANA

			** Lai ievietotu tekstu, spiediet i **

  1. Pārvietojiet kursoru uz pirmo līniju ar atzīmi --->.

  2. Lai ierakstītu tekstu augšējā rindā tieši tādu pašu kā apakšējā,
     novietojiet kursoru tieši PĒC ievietojamā teksta.

  3. Spiediet i un ievadiet visu nepieciešamo tekstu.

  4. Pēc katra papildinājuma, spiediet <ESC> lai atgrieztos normālajā režīmā.
     Atkārtojiet 2. līdz 4. soļus, līdz teksts ir pareizs.

---> Šaā lnij no tksta rūkt dai buti.
     Šajā līnijā no teksta trūkst daži burti.

  5. Kad esat apguvis šīs darbības, dodieties uz 1.5. nodarbību.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1.5 nodarbība: TEKSTA REDIĢĒŠANA — PIEVIENOŠANA

			** Lai pievienotu tekstu, spiediet A **

  1. Pārvietojiet kursoru uz pirmo līniju ar atzīmi --->.
     Nav svarīgi, uz kura šīs rindas burta atrodas kursors.

  2. Spiediet A un pievienojiet iztrūkstošo tekstu.

  3. Kad nepieciešamais teksts ir pievienots, spiediet <ESC>,
     lai atgrieztos normālajā režīmā.

  4. Pārvietojiet kursoru uz otro līniju ar atzīmi --->
     un atkārtojiet 2. un 3. soļus.

---> Šajā līnijā tekstam
     Šajā līnijā tekstam pietrūkst beigas.
---> Šajā līnijā t
     Šajā līnijā tekstam pietrūkst beigas.

  5. Kad esat apguvis šīs darbības, dodieties uz 1.6. nodarbību.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1.6 nodarbība: FAILA SAGLABĀŠANA

        ** Lai saglabātu failu un izietu no redaktora, spiediet :wq **

  !! PIEZĪME: Pirms izpildīt šo nodarbību, izlasiet visus tās soļus!

  1. Pārliecinieties, ka esat pareizi izpildījis visas iepriekšējās nodarbības.

  2. Ja neesat pārliecināts, izejiet no redaktora, kā 1.2. nodarbībā ar komandu:
     :q!

  3. Tad atkal palaidiet pamācību, un, ja nepieciešams, veiciet failā izmaiņas.

  4. Saglabājiet faila izmaiņas, redaktorā ievadot  :w tutor <ENTER>
     Izejiet no redaktora, ievadot komandu  :wq <ENTER>

  5. Palaidiet atkal šo pamācību, terminālī ievadot komandu: vim tutor
     Šajā komandā vārds "vim" izsauc teksta redaktoru, bet
     vārds "tutor" ir faila nosaukums, kurā ir saglabāta izmainītā pamācība.

  5. Kad esat sapratis veicamās darbības, izpildiet tās.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1. nodarbības APKOPOJUMS


  1. Kursoru pārvieto ar bultiņu vai arī h,j,k,l taustiņiem:
	 h (pa kreisi)   j (lejup)     k (augšup)   l (pa labi)

  2. Lai ar Vim rediģētu noteiktu failu, ievadiet komandu:  vim fails <ENTER>

  3. Lai izietu no Vim ievadiet:
     <ESC>   :q!         <ENTER>   lai pazaudētu izmaiņas.
     <ESC>   :wq         <ENTER>   lai saglabātu izmaiņas.

  4. Lai izdzēstu burtu zem kursora, spiediet x

  5. Lai ievietotu vai pievienotu tekstu, spiediet:
	 i   ievadāmais teksts          <ESC>   lai ievietotu pirms kursora
	 A   pievienojamais teksts      <ESC>   lai pievienotu rindas beigās

PIEZĪME: <ESC> spiešana atgriezīs jūs normālajā režīmā, vai arī atcels
         nepareizu vai daļēji ievadītu komandu.

Tagad dodieties uz 2. nodarbību.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2.1 nodarbība: DZĒŠANAS KOMANDAS


		       ** Lai izdzēstu vārdu, spiediet dw **

  1. Nospiediet <ESC> lai pārliecinātos, ka esat normālajā režīmā.

  2. Pārvietojiet kursoru uz rindu ar atzīmi --->.

  3. Pārvietojiet kursoru uz izdzēšamā vārda sākumu.

  4. Ievadiet   dw    lai izdzēstu nepieciešamo vārdu.

PIEZĪME: Nospiežot d, ekrāna labajā apakšējā stūrī parādīsies d burts.
         Tas ir tāpēc, ka Vim gaida nākamo komandu (burtu w).
         Ja jūs redzat citu burtu, vai neredzat neko, esat kaut ko izdarījis
         nepareizi. Tad spiediet <ESC> un sāciet no sākuma.

---> Šajā kuku teikumā ir tata daži lala vārdi, kuri mumu nav vajadzīgi.

  5. Izpildiet 3. — 4. soļus, līdz teksts ir pareizs un dodieties uz 2.2. nodarbību.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2.2 nodarbība: CITAS DZĒŠANAS KOMANDAS


	   ** Lai izdzēstu līdz rindas beigām, spiediet d$ **

  1. Nospiediet <ESC> lai pārliecinātos, ka esat normālajā režīmā.

  2. Pārvietojiet kursoru uz rindu ar atzīmi --->.

  3. Pārvietojiet kursoru līdz pirmā teikuma beigām (PĒC pirmā punkta).

  4. Ievadiet d$  lai izdzēstu tekstu no kursora līdz rindas beigām.

---> Kāds ir ievadījis teikuma beigas divreiz. ievadījis teikuma beigas divreiz.


  5. Dodieties uz 2.3 nodarbību, lai labāk izprastu, kā tas notiek.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2.3 nodarbība: OPERATORI UN KOMANDAS


  Daudzas tekstu mainošās komandas sastāv no operatora un kustības.
  Dzēšanas komanda, kuru izsauc ar d operatoru vispārīgā gadījumā ir sekojoša:

        d kustība

  Kur:
    d       - ir dzēšanas operators.
    kustība - ir operators, kas nosaka dzēšanas veidu.

  Biežāk izplatītās kustības ir:
    w - līdz nākamā vārda sākumam, NEIESKAITOT tā pirmo burtu.
    e - līdz tekošā vārda beigām, IESKAITOT pēdējo burtu.
    $ - līdz rindas beigām, IESKAITOT tās pēdējo burtu.

  Piemēram, ievadot  de  tiks izdzēsts teksts no kursora līdz rindas beigām.

PIEZĪME: Ievadot kustības komandu normālajā režīmā, tā pārvietos kursoru uz
         norādīto vietu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2.4 nodarbība: KUSTĪBAS SKAITA IZMANTOŠANA


   ** Pirms kustības ievadot skaitli, tā tiks atkārtota norādās reizes. **

  1. Pārvietojiet kursoru uz līniju ar atzīmi --->.

  2. Ievadiet  2w  lai pārvietotu kursoru par 2 vārdiem uz priekšu.

  3. Ievadiet  3e  lai pārvietotu kursoru par 3 vārdiem atpakaļ.

  4. Ievadiet  0  (nulli), lai pārvietotu kursoru uz rindas sākumu.

  5. Atkārtojiet 2. — 3. soļus ar dažādiem skaitļiem.

---> Šī ir rinda ar vārdiem, kurā jūs varat pārvietoties.

  6. Dodieties uz nodarbību 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2.5 nodarbība: SKAITĻA IZMANTOŠANA DZĒŠANAI


   ** Ievadot skaitli pirms operatora, tas tiks atkārtots norādītās reizes. **

  Pirms augšminētajām dzēšanas un pārvietošanās darbībām
  var ievadīt skaitli, lai norādītu cik reizes to izpildīt, formā:
	 d   skaitlis  kustība

  1. Pārvietojiet kursoru uz pirmo vārdu ar LIELAJIEM BURTIEM rindā ar atzīmi --->.

  2. Ievadiet komandu d2w lai izdzēstu divus vārdus ar LIELAJIEM BURTIEM

  3. Atkārtojiet pirmo soli, dzēšanas komandai norādot dažādus skaitļus,
     lai izdzēstu visus vārdus ar LIELAJIEM BURTIEM

--->  šajā ABC DE rindā FGHI JK LMN OP ir jāizdzēš liekie Q RS TUV vārdi





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2.6 nodarbība: DARBĪBAS AR RINDĀM


		   ** Ievadiet   dd   lai izdzēstu visu teksta rindu. **

  Tā kā veselas rindas izdzēšana ir izplatīta darbība, Vi dizaineri nolēma
  tās dzēšanu realizēt ar dubultu d ievadīšanu.

  1. Pārvietojiet kursoru uz otro rindu ar atzīmi --->
  2. Ievadiet  dd  lai izdzēstu rindu.
  3. Pārvietojiet kursoru uz ceturto rindu.
  4. Ievadiet  2dd   lai izdzēstu divas rindas.

--->  1)  Astoņi kustoņi,
--->  2)  astoņi kustoņi,
--->  3)  kas tos astoņus kustoņus pirks?
--->  4)  Zirgs.
--->  5)  Astoņi kustoņi,
--->  6)  astoņi kustoņi,
--->  7)  kas tos astoņus kustoņus pirks?
--->  8)  Cirks.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2.7 nodarbība: ATCELŠANAS KOMANDA


   ** Lai atceltu darbību, spiediet  u  **
   ** Lai atceltu visas darbības tekošajā rindā, spiediet  U  **

  1. Pārvietojiet kursoru uz rindu ar atzīmi ---> un novietojiet to uz
     pirmās kļūdas.
  2. Pārvietojiet kursoru un ievadiet  x  lai izdzēstu visus liekos burtus.
  3. Ievadiet  u  lai atceltu iepriekšējo komandu.
  4. Šī darbība atcels iepriekšējo darbību, kuru veicāt, ievadot  x
  5. Ievadiet  U  lai atgrieztos sākuma stāvoklī.
  6. Ievadiet  u  vairākas reizes, lai atceltu  U  un iepriekšējās komandas.
  7. Ievadiet  CTRL-R  t.i.:
     nospiediet CTRL un, to neatlaižot, Shift un to neatlaižot un r
     vairākas reizes, lai atceltu atcelšanas darbības.

---> Iizlabojiet kļūudas šaajā riindā, aatceliet tās un aatceliet aatcelšanu.

  8. Šīs ir svarīgas un noderīgas iespējas.
     Tagad pārejiet uz 2. nodarbības apkopojumu.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    2. nodarbības APKOPOJUMS


  1. Lai izdzēstu vārdu, uz kura atrodas kursors, ievada:    dw
  2. Lai izdzēstu rindu no kursora līdz tās beigām, ievada:  d$
  3. Lai izdzēstu visu rindu, ievada:                        dd
  4. Lai atkārtotu kustības darbību, pirms tās ievada skaitli, piemēram:
                                                             2w

  5. Lai atkārtotu izmaiņu darbību, komandu formāts ir sekojošs:
       operators   [skaitlis]   kustība
     kur:
       operators  - ir veicamā darbība, piemēram,  d  lai dzēstu
       [skaitlis] - ir neobligāts darbības atkārtojumu skaits
       kustība    - pārvieto kursoru tik tālu, cik ir veicama darbība, piem:
                      w  lai pārvietotos par vienu vārdu,
		      $  lai pārvietotos līdz rindas beigām u.tml.

  6. Lai pārvietotos uz rindas sākumu, ievada:          0   (nulli)

  7. Lai atceltu iepriekšējo darbību, ievada:           u  (mazo u)
     Lai atceltu visas rindā veiktās izmaiņas, ievada:  U  (Shift+U)
     Lai atceltu atcelšanas darbības, ievada:      CTRL-R  (Ctrl+Shift+r)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    3.1 nodarbība: IEVIETOŠANAS DARBĪBA


       ** Lai pēc kursora ievietotu iepriekš izdzēstu tekstu, spiediet  p  **

  1. Pārvietojiet kursoru uz pirmo rindu ar atzīmi --->

  2. Ievadiet  dd  lai izdzēstu visu rindu un saglabātu to reģistrā.

  3. Pārvietojiet kursoru uz c) rindu (virs vietas, kur būtu jāievieto
     dzēstā rinda).

  4. Spiediet  p  lai ievietotu reģistrā saglabāto rindu.

  5. Atkārtojiet soļus 2 līdz 4 līdz rindas ir pareizajā secībā.

---> d)  Zirgs.
---> c)  kas tos astoņus kustoņus pirks?
---> b)  astoņi kustoņi,
---> a)  Astoņi kustoņi,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    3.2 nodarbība: AIZVIETOŠANAS KOMANDA


       ** Lai aizvietotu burtu ar citu, ievadiet r un nepieciešamo burtu. **

  1. Pārvietojiet kursoru uz pirmo rindu ar atzīmi --->

  2. Pārvietojiet kursoru, lai iezīmētu pirmo nepareizo burtu.

  3. Ievadiet  r  un tad burtu, uz kuru iezīmēto ir nepieciešams nomainīt.

  4. Atkārtojiet soļus 2 un 3 līdz ir pirmā rinda atbilst otrajai rindai.

--->  Iavadut šo rixdu, kuds ar nuspeedis napariizus teusteņus!
--->  Ievadot šo rindu, kāds ir nospiedis nepareizus taustiņus!

  5. Tagad dodieties uz 3.3. nodarbību.

PIEZĪME: Atcerieties, ka jums ir jāmācās darbojoties,
         nevis vienkārši mēģinot atcerēties!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    3.3 nodarbība: IZMAIŅU DARBĪBA


	   ** Lai izmainītu tekstu līdz vārda beigām, spiediet  ce  **

  1. Pārvietojiet kursoru uz pirmo rindu ar atzīmi --->

  2. Novietojiet kursoru virs pirmā Š vārdā Šma.

  3. Ievadiet  ce  un izlabojiet vārdu uz pareizu (šajā gad. "Šīs").

  4. Spiediet <ESC> un pārvietojiet kursoru uz nākamo maināmo vārdu.

  5. Atkārtojiet soļus 3 un 4 līdz pirmā un otrā rinda ir vienādas.

---> Šma rindas vamula nepieciešams šimahaļ, lietojot šašābiļabita darbību.
---> Šīs rindas vārdus nepieciešams izlabot, lietojot izmainīšanas darbību.

Ievērojiet, ka pēc  ce  un vārda ievades jūs paliekat ievietošanas režīmā.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    3.4 nodarbība: CITAS MAINĪŠANAS DARBĪBAS AR c


     ** Izmaiņu kustības operatoru lieto tieši tāpat kā dzēšanai. **

  1. Izmaiņu kustības operators darbojas tāpat kā dzēšanai. Formāts ir:

         c    [skaitlis]   kustība

  2. Var lietot tos pašus kustības operatorus  w (vārds) un  $ (rindas beigas).

  3. Pārvietojiet kursoru uz pirmo rindu ar atzīmi --->.

  4. Pārvietojiet kursoru uz pirmo kļūdu.

  5. Ievadiet  c$ rakstiet nomaināmo tekstu līdz rindas beigām un spiediet <ESC>.

---> Šī teksta beigas nepieciešams izlabot, lietojot c$ komandu.
---> Šī teksta beigas nepieciešams izlabot, lietojot c$ šari-vari-traļi-muļi.

PIEZĪME:  Lai labotu nepareizi ievadītu tekstu, spiediet <BACKSPACE> taustiņu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    3. NODARBĪBAS APKOPOJUMS


  1. Lai ievietotu izdzēsto tekstu, spiediet  p  taustiņu. Ar to ievietosiet
     dzēsto tekstu PĒC kursora. (Ja bija izdzēsta vesela rinda, tā tiks
     ievietota rindā VIRS kursora.)

  2. Lai izmainītu burtu zem kursora, spiediet  r  un pēc tam
     jums nepieciešamo rakstzīmi.

  3. Izmaiņu operators ļauj jums nomainīt tekstu no kursora līdz
     kustības operatora norādītajai vietai. Piemēram,
     ievadot  ce  jūs izmaināt tekstu no kursora līdz VĀRDA beigām, bet
     ievadot  c$  jūs nomaināt tekstu no kursora līdz RINDAS beigām.

  4. Izmaiņu komandas formāts ir:

	 c   [skaitlis]   kustība

Tagad dodieties uz nākamo nodarbību.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    4.1 nodarbība: KURSORA VIETA FAILĀ UN FAILA STATUSS

  ** Lai noteiktu kursora atrašanās vietu failā un faila statusu, spiediet  CTRL-g
     Lai pārvietotu kursoru uz noteiktu faila rindu, spiediet  G  **

  PIEZĪME: Pirms pildīt šo uzdevumu, izlasiet visas tā darbības līdz beigām!

  1. Spiediet Ctrl taustiņu, un neatlaižot to, spiediet g  saīsināti CTRL-g.
     Redaktora ekrāna apakšā parādīsies statusa rinda, ar faila statusu
     un rindu kurā atrodas kursors, kā arī citu informāciju.
     Atcerieties šo vietu, lai izpildītu 3. darbību.

PIEZĪME: Jūs varat redzēt kursora atrašanās vietu failā vienmēr ekrāna
       labajā apakšējā stūrī, ja redaktoram ir ieslēgta ruler opcija.
       (Skatiet palīdzību par šo komandu, ievadot  :help 'ruler')

  2. Lai pārvietotu kursoru uz faila beigām, ievadiet  G
     Lai pārvietotu kursoru uz faila sākumu, ievadiet  gg

  3. Ievadiet iepriekš iegaumētās rindas numuru un tad ievadiet  G
     Ar šo jūs pārvietosiet kursoru atpakaļ rindā, kurā jūs sākāt
     šo nodarbību.

  4. Atkārtojiet darbības 1. — 3. tik ilgi, kamēr droši atceraties šīs komandas.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    4.2 nodarbība: MEKLĒŠANAS KOMANDA


     ** Lai meklētu tekstā, spiediet  /  un ievadiet meklējamo frāzi. **

  1. Normālajā režīmā spiediet  /  taustiņu. Ievērojiet, ka kursors pārvietojas
     uz redaktora apakšējo rindu, līdzīgi, kā nospiežot taustiņu  :
     lai ievadītu dažādas komandas.

  2. Tad ievadiet vārdu  kļūūūda  un spiediet <ENTER>.
     Ar šo jūs izgaismosiet atrasto meklējamo redaktorā.

  3. Lai atrastu nākošo vārdu, spiediet  n  taustiņu.
     Lai pārvietotu kursoru uz nākamo atrasto vietu tekstā uz augšu,
     ievadiet  N

  4. Lai meklētu frāzi augšupejošā virzienā  /  vietā lietojiet  ?

  5. Lai atgrieztos uz vietu, kurā sākāt meklēšanu, spiediet CTRL-O
     (spiediet Ctrl, tad, to neatlaižot spiediet arī o). To var turpināt,
     lai dotos tālāk atpakaļ, vai arī spiest CTRL-i, lai dotos uz priekšu.

--->  "kļūūūda" nav pareizs vārds; kļūda ir vienkārši kļūda.

PIEZĪME: Ja ir atrasta pēdējā meklējamā frāze faila beigās vai sākumā,
      pēc nākamā meklējuma tiks atrasta pirmā/pēdējā faila sākumā/beigās,
      ja vien nav atslēgta wrapscan opcija.

PIEZĪME: Ja vairs nevēlaties izgaismot meklējamo tekstu, spiediet  /
      un ievadiet nesakarīgu/neatrodamu frāzi. (VIM speciālisti parasti
      piekārto savu taustiņu kombināciju šai darbībai.)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    4.3 nodarbība: SAISTĪTO IEKAVU MEKLĒŠANA


	      ** Lai atrastu saistīto ),], vai } iekavu, ievadiet  %  **

  1. Novietojiet kursoru uz iekavām (, [, { rindā ar atzīmi --->.

  2. Ievadiet % simbolu.

  3. Kursors pārvietosies uz izvēlētajai iekavai atbilstošo pretējo iekavu.

  4. Ievadiet % lai pārvietotos atpakaļ uz atbilstošo pretējo iekavu.

  5. Pārvietojiet kursoru uz cita veida iekavu (,),[,],{ or } un pārbaudiet,
     kas notiek atkārtoti ievadot %

---> Šī ir (testa rinda ar dažādām (-veida, [-veida] un {-veida} iekavām.))


PIEZĪME: Šī iespēja ir ļoti noderīga, lai pārbaudītu nelīdzsvarotas iekavas
         programmas kodā


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    4.4 nodarbība: AIZVIETOŠANAS KOMANDA


	** Ievadiet  :s/vecais/jaunais/g  lai aizvietotu 'vecais' ar 'jaunais'. **

  1. Novietojiet kursoru rindā ar atzīmi --->.

  2. Ievadiet :s/ss/s<ENTER>
     Ievērojiet, ka šī komanda nomaina tikai pirmo atrasto frāzi.

  3. Tagad ievadiet :s/ss/s/g<ENTER>
     Ievērojiet, ka slēdzis g liek aizvietot frāzi visās atrastajās vietās.

---> visslabākaiss laikss vērot ziedus ir pavassariss.

  4. Aizvietošanas komandai var norādīt darbības diapazonu:

     ievadiet :#,#s/vecais/jaunais/g  kur #,# ir diapazona sākuma un beigu rinda
     ievadiet :%s/vecais/jaunais/g    lai aizvietotu frāzi visā failā
     ievadiet :%s/vecais/jaunais/gc   lai aizvietotu visā failā ar uzaicinājumu
                                      apstiprināt katru aizvietošanu

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    4.5 nodarbība: DARBĪBAS ATKĀRTOŠANA

       ** Lai atkārtotu iepriekšējo darbību, spiediet  .  **

  Atšķirībā no citiem teksta redaktoriem, Vim par vienu darbību uzskata
  vairāku ievadīto komandu virkni ārpus normālā režīma (t.i. ievietošanas,
  aizstāšanas u.tml.). Tas ļauj viegli atkārtot sarežģītas darbības, spiežot
  .  taustiņu.

  1. Pārliecinieties, ka esat normālajā režīmā, spiežot <ESC>.

  2. Sameklējiet pirmo skaitli rindā ar --->, ievadot:  /11 

  3. Ievadiet komandu 2sll un atgriezieties normālajā režīmā.

  4. Lai sameklētu nākamo skaitli un atkārtotu iepriekšējo aizstāšanas darbību,
     spiediet:  n.

---> ba11e ce11e ha11e le11e ka11a mu11a nu11e ra11ijs šte11e ti11s ze11is
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    4. nodarbības APKOPOJUMS

  1. CTRL-G   statusa rindā parāda faila nosaukumu, statusu un kursora atrašanās
              vietu
              G  pārvieto kursoru uz faila beigām.
     skaitlis G  pārvieto kursoru uz norādīto rindu.
              gg pārvieto kursoru uz faila sākumu.

  2. Ievadot  / un frāzi, to meklē failā uz priekšu
     Ievadot  ? un frāzi, to meklē failā atpakaļ
     Pēc pirmās atrastās frāzes, spiežot n sameklē nākamo frāzi tajā pašā virzienā
     vai arī, spiežot N, sameklē nākamo frāzi pretējā virzienā.
     CTRL-o pārvieto kursoru uz iepriekšējo izmaiņu vietu, CTRL-i uz nākamo vietu.
     .  atkārto iepriekšējo darbību, ko var apvienot ar meklēšanu:  n. vai  N.

  3. Ja kursors atrodas uz  (,),[,],{, vai }, ievadot % kursors pārvietojas uz
     pretējo iekavu.

  4. Lai aizvietotu frāzi tekošajā rindā vienreiz, ievadiet: :s/vecais/jaunais
     Lai aizvietotu visas frāzes tekošajā rindā, ievadiet:   :s/vecais/jaunais/g
     Lai aizvietotu visas frāzes starp norādītajām rindām:   :#,#s/vecais/jaunais/g
     Lai aizvietotu visas frāzes failā, ievadiet:            :%s/vecais/jaunais/g
     Lai aizvietotu visas frāzes failā ar apstiprinājumu:    :%s/vecais/jaunais/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    5.1 nodarbība: KĀ IZPILDĪT ĀRĒJU KOMANDU


   ** Ievadiet :! un pēc tam sekojošo ārējo komandu. **

  1. Nospiediet ierasto  :  lai parādītu uzaicinājumu statusa rindā

  2. Šajā rindā ievadiet !  (izsaukuma zīmi). Tā norāda VIM, ka būs jāizpilda
     ārēja (komandrindas čaulas) komanda

  3. Pēc tam ievadiet, piemēram  ls un spiediet <ENTER>
     Šī komanda ekrāna apakšējā daļā parādīs failu sarakstu.
     Ja lietojat Windows, ls komandas vietā ievadiet dir

PIEZĪME: Izsaucamās komandas izpilda nospiežot <ENTER> taustiņu, kopš šī brīža
         mēs to vairs īpaši neuzsvērsim. Lai aizvērtu komandas izvadīto saturu,
         arī jāspiež <ENTER> taustiņš.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    5.2 nodarbība: VAIRĀK PAR FAILU SAGLABĀŠANU

   ** Lai saglabātu failu ar noteiktu nosaukumu, ievadiet :w NOSAUKUMS **

  1. Ievadiet  :!ls  (vai :!dir), lai apskatītu failu sarakstu.
     Atcerieties, ka pēc komandu nosaukuma ievades jānospiež <ENTER>!

  2. Izdomājiet jaunu faila nosaukumu, piemēram, test

  3. Tagad ievadiet:  :w test1  (kur test ir jūsu izvēlētais faila nosaukums)

  4. Šī komanda saglabās vim pamācību failā test
     Lai pārbaudītu, ievadiet  :!ls  vai  :!dir un sameklējiet failu sarakstā

PIEZĪME: Ja jūs iziesiet no vim un palaidīsiet to ar komandu  vim test
     vim atvērs jūsu saglabāto test failu.

  5. Tagad izdzēsiet šo failu, ievadot komandu:    :!rm test
     Vai, ja lietojat Windows, komandu:            :!del test

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    5.3 nodarbība: TEKSTA DAĻĒJA SAGLABĀŠANA

	** Lai saglabātu tikai daļu no faila, ievadiet:  v  kustība :w fails **

  1. Pārvietojiet kursoru uz šo rindu

  2. Spiediet  v  un pārvietojiet kursoru līdz piektajam punktam.

  3. Spiediet  :  simbolu.  Statusa rindā parādīsies  :'<,'>

  4. Ievadiet  w test  kur test ir izvēlētais faila nosaukums.
     Pirms spiest <ENTER>, pārliecinieties, ka  redzat :'<,'>w test

  5. Vim saglabās iezīmēto tekstu failā test.
     Neizdzēsiet šo failu, mēs to izmantosim nākošajā nodarbībā!

PIEZĪME: Spiežot v VIM pārslēdzas vizuālā iezīmēšanas režīmā. Jūs varat izmantot
       kursora pārvietošanas komandas, lai iezīmētu nepieciešamo tekstu.
       Pēc teksta iezīmēšanas, jūs varat izmantot dažādus operatorus, lai
       kaut ko darītu ar iezīmēto tekstu. Piemēram, spiežot  d  jūs izdzēsīsit
       iezīmēto tekstu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    5.4 nodarbība: FAILU SATURA IEGŪŠANA UN APVIENOŠANA

       ** Lai ievietotu faila saturu, ievadiet  :r fails  **

  1. Novietojiet kursoru tieši virs šīs rindas.

PIEZĪME:  Pēc 2. soļa izpildes, jūs redzēsiet tekstu no 5.3 nodarbības.
       Pēc tam pārvietojiet kursoru uz leju, lai lasītu tālāk šīs
       nodarbības saturu.

  2. Iegūstiet test faila saturu, ievadot komandas   :r test
     kur test ir jūsu iepriekšējā nodarbībā saglabātais fails.
     Ielasītā faila saturs tiek ievietots zem kursora.

  3. Lai pārbaudītu, ka darbība ir izdevusies, pārliecinieties, ka 5.4
     nodarbības aprakstā ir saturs no 5.3 nodarbības.

PIEZĪME: Jūs varat ievadīt saturu failā, izpildot ārēju komandu.
       Piemēram, ar komandu   :r !ls
       jūs ievietosiet failā tekošās mapes failu sarakstu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    5. nodarbības APKOPOJUMS

  1.  :!komanda  izpilda ārēju komandu

      Daži noderīgi piemēri:
	 (MS-DOS)         (Unix)
	  :!dir            :!ls         -  parāda mapes saturu
	  :!del fails      :!rm fails   -  izdzēš norādīto failu

  2.  :w fails  saglabā tekošo failu failā ar norādīto nosaukumu.

  3.  v  kustība :w fails  saglabā vizuāli iezīmēto tekstu norādītajā failā.

  4.  :r fails  ielasa faila saturu tekošajā failā zem kursora.

  5.  :r !ls  ielasa izpildītās komandas atgriezto saturu failā zem kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    6.1 nodarbība: ATVĒRŠANAS KOMANDA

 ** Ievadiet o  lai ievadītu jaunu rindu virs kursora un pārietu ievades režīmā. **

  1. Pārvietojiet kursoru uz rindu ar atzīmi --->.

  2. Ievadiet mazo  o  lai ievadītu jaunu rindu virs kursora un pārslēgtos
     ievades režīmā.

  3. Ievadiet kādu tekstu un spiediet <ESC>, lai izietu no ievades režīma.

---> Ievadot  o  izveidosiet rindu virs šīs un pāriesiet ievades režīmā.

  4. Lai izveidotu rindu ZEM kursora, ievadiet lielo  O.

---> Ievadot  O  izveidosiet rindu zem šīs un pāriesiet ievades režīmā.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    6.2 nodarbība: PIEVIENOŠANAS KOMANDA

	     ** Ievadiet  a  lai ievietotu jaunu tekstu PĒC kursora. **

  1. Pārvietojiet kursoru uz pirmo rindu ar atzīmi --->.

  2. Spiediet  e līdz kursors ir pirmā nepabeigtā vārda beigās.

  3. Ievadiet  a  (mazo a), lai pievienotu tekstu pēc kursora.

  4. Ievadiet tekstu, lai abas rindas ar atzīmi ---> sakrīt.
     Spiediet <ESC>, lai pārietu normālajā režīmā.

  5. Ievadiet e, lai novietotu kursoru nākamā nepabiegtā vārda beigās,
     un atkārtojiet soļus 3 un 4.

---> Šī rin ju palīd praktiz tekst pievienoš vārd bei
---> Šī rinda jums palīdzēs praktizēties teksta pievienošanā vārdu beigās.

PIEZĪME:  No normālā režīma pāriet uz ievades režīmu ievadot a, i, A un I.
       Atšķirība ir tikai tā, kur tiek uzsākta teksta ievade: a – pēc kursora,
       i — pirms kursora, A — rindas beigās, I — rindas sākumā.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    6.3 nodarbība: VĒL VIENS AIZVIETOŠANAS VEIDS

      ** Lai aizvietotu vairāk kā vienu rakstzīmi, spiediet R **

  1. Pārvietojiet kursoru uz rindu ar atzīmi --->.

  2. Pārvietojiet kursoru uz pirmo no xxx

  3. Spiediet  R  un ievadiet skaitli, kas norādīts apakšējā rindā tā,
     lai ievadītie cipari pārraksta xxx.

  4. Lai izietu no aizvietošanas režīma, spiediet <ESC>.
     Pārliecinieties, ka pārējais rindas saturs nav izmainīts.

  5. Atkārtojiet 2. — 4. soļa darbības, lai līdzīgi aizvietotu pārējos xxx.

---> Saskaitot xxx ar xxx iegūstam xxx.
---> Saskaitot 123 ar 456 iegūstam 579.

PIEZĪME: Aizvietošanas režīms darbojas līdzīgi ievietošanas režīmam, ar
         tikai ievadītās rakstzīmes aizvieto esošās.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    6.4 nodarbība: TEKSTA KOPĒŠANA UN IEVIETOŠANA

	  ** Lai kopētu tekstu, izmantojiet y, bet lai ievietotu — p **

  1. Pārvietojiet kursoru uz rindu ar atzīmi ---> un novietojiet kursoru
     pēc "a)"

  2. Ieslēdziet vizuālo režīmu, spiežot v un pārvietojiet kursoru līdz
     "pirmais" (to neskaitot)

  3. Spiediet  y  lai iekopētu izcelto tekstu

  4. Pārvietojiet kursoru uz nākamās rindas beigām, spiežot j$

  5. Spiediet  p lai ievietotu nokopēto tekstu. Pēc tam spiediet <ESC>

  6. Ierakstiet otrās rindas beigās vārdu "otrais"

  7. Līdzīgi, lietojot v y un p, nokopējiet vārdu "simtdivdesmitpiecgadnieks",
     lai iegūtu rindu: šis ir otrais simtdivdesmitpiecgadnieks.

--->  a) šis ir pirmais simtdivdesmitpiecgadnieks.
      b)

  PIEZĪME: y var lietot kopā ar pārvietošanās operatoru, piemēram,
           spiežot yw var nokopēt izvēlēto vārdu.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    6.5 nodarbība: IESTATĪJUMU MAIŅA

 ** Iestatiet meklēšana un aizstāšana, neievērojot lielos/mazos burtus **

  1. Sameklējiet vārdu 'neievērot', ievadot:   /neievērot  <ENTER>
     Atkārtojiet meklēšanu, spiežot n

  2. Iestatiet 'ic' (Neievērot lielos/mazos burtus) iestatījumu, ievadot:  :set ic

  3. Tagad sameklējiet 'neievērot' atkārtoti, spiežot  n
     Ievērojiet, ka tiek atrasti vārdi Neievērot un NEIEVĒROT.

  4. Iestatiet 'hlsearch' un 'incsearch' opcijas, ievadot:  :set hls is

  5. Ievadiet atkal sekojošo komandu, un skatieties, kas notiek:  /neievērot <ENTER>

  6. Lai atceltu lielo/mazo burtu neievērošanu, ievadiet:   :set noic

PIEZĪME:  Lai atceltu atrasto vietu izcelšanu, ievadiet:    :nohlsearch
PIEZĪME:  Ja vēlaties meklēt gan lielos, gan mazos burtus vienā meklējumā,
          ievadiet papildu komandu  \c
          Piemēram:   /neievērot\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    6. nodarbības APKOPOJUMS

  Lai pārietu uz ievietošanas režīmu un:

  1. lai ievietotu jaunu rindu zem tekošās, ievadiet   o
     lai ievietotu jaunu rindu virs tekošās, ievadiet  O

  2. Lai ievietotu tekstu pēc kursora, ievadiet        a
     Lai ievietotu tekstu rindas beigās, ievadiet      A

  Normālajā režīmā:

  3.  e  komanda pārvieto kursoru uz vārda beigām.

  4.  y  komanda nokopē tekstu, bet  p  komanda ievieto to.

  5.  R  ieslēdz aizvietošanas režīmu, līdz tiek nospiests <ESC>.

  6. Ievadot ":set xxx" iestata "xxx" opciju. Dažas no tām ir sekojošas:
        'ic' 'ignorecase'       meklējot neievēro lielos/mazos burtus.
	'is' 'incsearch'        uzreiz meklē daļēji ievadīto frāzi.
	'hls' 'hlsearch'        izgaismo atrastās frāzes.
     Var norādīt gan īso, gan garo opcijas nosaukumu.

  7. Lai opciju izslēgtu, pievieno priedēkli "no". Piemēram,  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    7.1 nodarbība: PALĪDZĪBAS IEGŪŠANA


		      ** Iebūvētās palīdzības izmantošana **

  Vim ir plaša iebūvētā palīdzības sistēma. Lai sāktu to lietot, ievadiet vieno
  no sekojošām komandām:
	- spiediet <HELP> taustiņu (ja jūsu tastatūrā tāds pastāv)
	- spiediet <F1> taustiņu (ja jūsu tastatūrai ir tāds)
	- ievadiet   :help <ENTER>

  Izlasiet palīdzības aprakstu, lai saprastu, kā tas darbojas.
  Ievadiet  CTRL-W CTRL-W   lai pārslēgtos uz citu logu.
  Ievadiet  :q <ENTER>      lai aizvērtu palīdzības logu.

  Jūs varat atrast konkrētu palīdzību par jebkuru komandu, ievadot:
  ":help" komanda.  Piemēram (neaizmirstiet komandas beigās nospiest <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    7.2 nodarbība: IZVEIDOJIET SĀKŠANAS SKRIPTU

			  ** Ieslēdziet Vim iespējas **

  Vim ir daudz plašākas iespējas, nekā Vi, bet vairums no tām,
  pēc noklusēšanas, nav ieslēgtas. Lai tās ieslēgtu, izveidojiet "vimrc" failu.

  1. Atkarībā no lietotās operētājsistēmas, atveriet "vimrc" failu sekojoši:
	:e ~/.vimrc             Unix-veidīgā (t.sk. MacOS un Linux)
	:e $VIM/_vimrc          VMS-veidīgā (t.sk. MS-Windows)

  2. Ielasiet "vimrc" šablona faila saturu, ievadot:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Saglabājiet šablona saturu savā iestatījumu failā:
	:w

  Kad nākamo reizi atvērsiet Vim, tajā tiks izmantota sintakses izgaismošana.
  Jūs varat ievietot arī citas iestatījumu iespējas savā "vimrc" failā.
  Papildu informācijai ievadiet   :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    7.3 nodarbība: AUTOMĀTISKĀ PABEIGŠANA

      ** Automātisko pabeigšanu komandrindā izsauc ar CTRL-D un <TAB> **

  1. Pārliecinieties, ka Vim ir ar Vi nesavietojamā režīmā:  :set nocp

  2. Apskatiet tekošās mapes saturu Vim, ievadot:   :!ls   vai  :!dir

  3. Ievadiet komandas sākumu ar:  :e

  4. Spiediet CTRL-D  un Vim parādīs visas komandas, kuras sākas ar "e".

  5. Spiediet <TAB>   un Vim automātiski pabeigs komandu uz ":edit".

  6. Spiediet atstarpes taustiņu un sāciet ievadīt faila nosaukumu,
     piemēram:  :edit FIL

  7. Spiediet <TAB>   un Vim pabeigs faila nosaukumu,
     ja norādītais sākums ir unikāls.

PIEZĪME:  Pabeigšana strādā dažādām komandām.
          Vienkārši mēģiniet spiest CTRL-D un <TAB>.
          Šī iespēja var būt īpaši noderīga, ievadot  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    7. nodarbības APKOPOJUMS


  1. Lai atvērtu palīdzības logu, ievadiet  :help  vai spiediet <F1> vai <Help>

  2. Lai atvērtu palīdzību par "komanda", ievadiet  :help komanda

  3. Lai pārslēgtos uz citu logu, spiediet:  CTRL-W CTRL-W

  4. Lai aizvērtu tekošo logu, ievadiet:    :q

  5. Izveidojiet savu "vimrc" sākšanas skriptu ar saviem iestatījumiem.

  6. Ievadot  :  komanda  spiediet CTRL-D, lai apskatītu iespējamos pabeigšanas
     veidus. Lai pabeigtu komandu, spiediet <TAB> .




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Ar šo Vim ievads ir pabeigts. Tajā tika sniegts īss Vim redaktora apraksts,
  ar kuru pietiek, lai Vim lietotu vienkāršām darbībām.
  Vim iespējas ir daudz plašākas, un tajā ir daudz vairāk komandu. Lai apskatītu
  tās,  ievadiet:  ":help user-manual".

  Tālākai apmācībai tiek rekomendētas sekojošas grāmatas:

  Vim - Vi Improved, Steve Oualline, New Riders

  Šī grāmata ir tieši par Vim, un ir ļoti ieteicama iesācējiem.
  Daudzi piemēri un attēli no tās pieejami: http://iccf-holland.org/click5.html

  Otra, vecāka grāmata ir par Vi, nevis Vim, bet arī ir ļoti noderīga:

  Learning the Vi Editor, Linda Lamb, O'Reilly & Associates Inc.

  Tajā ir visplašākais Vi iespēju apraksts, grāmatas sestajā laidienā ir
  aprakstītas arī Vim iespējas.

  Šīs pamācības variantu angļu valodā izveidoja:

  * Michael C. Pierce,
  * Robert K. Ware,
  * Charles Smith,
  * Bram Moolenaar.

  Pamācību latviešu valodā tulkoja:

  * Valdis Vītoliņš

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z:��u�u�vim80/tutor/tutor.hr.cp1250nu�[���===============================================================================
=    D o b r o d o � l i   u   VIM   p r i r u � n i k  -    Verzija 1.7      =
===============================================================================

     Vim je vrlo mo�an editor koji ima mnogo naredbi, previ�e da bi ih
     se svih ovdje spomenulo.  Namjena priru�nika je objasniti dovoljno
     naredbi kako bi po�etnici znatno lak�e koristili ovaj svestran editor.

     Pribli�no vrijeme potrebno za uspje�an zavr�etak priru�nika je oko
     30 minuta a ovisi o tome koliko �e te vremena odvojiti za vje�banje.

     UPOZORENJE:
     Naredbe u ovom priru�niku �e promijeniti ovaj tekst.
     Napravite kopiju ove datoteke kako bi ste na istoj vje�bali
     (ako ste pokrenuli "vimtutor" ovo je ve� kopija).

     Vrlo je va�no primijetiti da je ovaj priru�nik namijenjen za vje�banje.
     Preciznije, morate izvr�iti naredbe u Vim-u kako bi ste iste nau�ili
     pravilno koristiti. Ako samo �itate tekst, zaboraviti �e te naredbe!

     Ako je CapsLock uklju�en ISKLJU�ITE ga.  Pritiskajte tipku  j  kako
     bi pomakli kursor sve dok Lekcija 1.1 ne ispuni ekran.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 1.1:  POMICANJE KURSORA


 ** Za pomicanje kursora, pritisnite h,j,k,l tipke kako je prikazano **
	     ^
	     k		    Savjet:  h tipka je lijevo i pomi�e kursor lijevo.
       < h	 l >		   l tipka je desno i pomi�e kursor desno.
	     j                     j izgleda kao strelica usmjerena dolje.
	     v
  1. Pomi�ite kursor po ekranu dok se ne naviknete na kori�tenje.

  2. Dr�ite tipku (j) pritisnutom.
     Sada znate kako do�i do sljede�e lekcije.

  3. Koriste�i tipku j prije�ite na sljede�u lekciju 1.2.

NAPOMENA:  Ako niste sigurni �to ste zapravo pritisnuli uvijek koristite
           tipku <ESC> kako bi pre�li u Normal mod i onda poku�ajte ponovno.

NAPOMENA:  Kursorske tipke rade isto.  Kori�tenje hjkl tipaka je znatno
           br�e, nakon �to se jednom naviknete na njihovo kori�tenje.  Stvarno!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekcija 1.2: IZLAZ IZ VIM-a


  !! UPOZORENJE: Prije izvo�enja bilo kojeg koraka,
                 pro�itajte cijelu lekciju!!

  1. Pritisnite <ESC> tipku (Vim je sada u Normal modu).

  2. Otipkajte:	:q! <ENTER>.
     Izlaz iz editora, GUBE se sve napravljene promjene.

  3. Kada se pojavi ljuska, utipkajte naredbu koja je pokrenula
     ovaj priru�nik:		vimtutor <ENTER>

  4. Ako ste upamtili ove korake, izvr�ite ih redom od 1 do 3
     kako bi ponovno pokrenuli editor.

NAPOMENA:  :q! <ENTER>  poni�tava sve promjene koje ste napravili.
           U sljede�im lekcijama nau�it �e te kako promjene sa�uvati.

  5. Pomaknite kursor na Lekciju 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.3: PROMJENA TEKSTA - BRISANJE


	      ** Pritisnite  x  za brisanje znaka pod kursorom. **

  1. Pomaknite kursor na liniju ozna�enu s --->.

  2. Kako bi ste ispravili pogre�ke, pomi�ite kursor dok se
     ne bude nalazio na slovu kojeg trebate izbrisati.

  3. Pritisnite tipku x kako bi uklonili ne�eljeno slovo.

  4. Ponovite korake od 2 do 4 dok ne ispravite sve pogre�ke.

---> KKKravaa jee pressko�ila mmjeseccc.

  5. Nakon �to ispravite liniju, prije�ite na lekciju 1.4.

NAPOMENA:  Koriste�i ovaj priru�nik ne poku�avajte pamtiti
           ve� u�ite primjenom.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcija 1.4: PROMJENA TEKSTA - UBACIVANJE


	  ** Pritisnite  i  za ubacivanje teksta ispred kursora. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Kako bi napravili prvu liniju istovjetnoj drugoj, pomaknite
     kursor na prvi znak POSLIJE kojeg �e te utipkati potreban tekst.

  3. Pritisnite  i  te utipkajte potrebne nadopune.

  4. Nakon �to ispravite pogre�ku pritisnite <ESC> kako bi vratili Vim
     u Normal mod. Ponovite korake od 2 do 4 kako bi ispravili sve pogre�ke.

---> Nedje no teka od v lin.
---> Nedostaje ne�to teksta od ove linije.

  5. Prije�ite na sljede�u lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.5: PROMJENA TEKSTA - DODAVANJE


	           ** Pritisnite  A  za dodavanje teksta. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.
     Nije va�no na kojem se slovu nalazi kursor na toj liniji.

  2. Pritisnite  A  i napravite potrebne promjene.

  3. Nakon �to ste dodali tekst, pritisnite <ESC>
     za povratak u Normal mod.

  4. Pomaknite kursor na drugu liniju ozna�enu s --->
     i ponovite korake 2 i 3 dok ne popravite tekst.

---> Ima ne�to teksta koji nedostaje n
     Ima ne�to teksta koji nedostaje na ovoj liniji.
---> Ima ne�to teksta koji ne
     Ima ne�to teksta koji nedostaje ba� ovdje.

  5. Prije�ite na lekciju 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 1.6: PROMJENA DATOTEKE


     ** Koristite  :wq  za spremanje teksta i napu�tanje Vim-a. **

  !! UPOZORENJE: Prije izvr�avanja bilo kojeg koraka, pro�itajte lekciju!!

  1. Iza�ite iz programa kao sto ste napravili u lekciji 1.2:  :q!

  2. Iz ljuske utipkajte sljede�u naredbu:  vim tutor <ENTER>
     'vim' je naredba pokretanja Vim editora, 'tutor' je ime datoteke koju
     �elite ure�ivati.  Koristite datoteku koju imate ovlasti mijenjati.

  3. Ubacite i izbri�ite tekst kao �to ste to napravili u lekcijama prije.

  4. Sa�uvajte promjenjeni tekst i iza�ite iz Vim-a:  :wq  <ENTER>

  5. Ponovno pokrenite vimtutor i nastavite �itati sa�etak koji sljedi.

  6. Nakon sto pro�itate gornje korake i u potpunosti ih razumijete:
     izvr�ite ih.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 1 SA�ETAK


  1. Kursor se pomi�e strelicama ili pomo�u hjkl tipaka.
	h (lijevo)	j (dolje)	k (gore)	l (desno)

  2. Pokretanje Vim-a iz ljuske:  vim IME_DATOTEKE <ENTER>

  3. Izlaz:	<ESC>	:q! <ENTER> 	sve promjene su izgubljene.
       ILI:	<ESC>	:wq <ENTER> 	promjene su sa�uvane.

  4. Brisanje znaka na kojem se nalazi kursor:  x

  5. Ubacivanja ili dodavanje teksta:
	 i   utipkajte tekst <ESC>	unos ispred kursora
	 A   utipkajte tekst <ESC>	dodavanje na kraju linije

NAPOMENA:  Tipkanjem tipke <ESC> prebacuje Vim u Normal mod i
           prekida ne�eljenu ili djelomi�no zavr�enu naredbu.

Nastavite �itati Lekciju 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 2.1: NAREDBE BRISANJA


		 ** Tipkajte  dw  za brisanje rije�i. **

  1. Pritisnite  <ESC>  kako bi bili sigurni da je Vim u Normal modu.

  2. Pomaknite kursor na liniju ozna�enu s --->.

  3. Pomaknite kursor na po�etak rije�i koju treba izbrisati.

  4. Otipkajte  dw  kako bi uklonili rije�.

NAPOMENA:  Vim �e prikazati slovo  d  na zadnjoj liniji kad ga otipkate.
           Vim �eka da otipkate  w .  Ako je prikazano neko drugo slovo,
           krivo ste otipkali; pritisnite <ESC> i poku�ajte ponovno.

---> Neke rije�i smije�no ne pripadaju na papir ovoj re�enici.

  5. Ponovite korake 3 i 4 dok ne ispravite re�enicu;
     prije�ite na Lekciju 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.2: JO� BRISANJA


       ** Otipkajte  d$ za brisanje znakova do kraja linije. **

  1. Pritisnite  <ESC>  kako bi bili
     sigurni da je Vim u Normal modu.

  2. Pomaknite kursor na liniju ozna�enu s  --->.

  3. Pomaknite kursor do kraja ispravne re�enice
     (POSLJE prve . ).

  4. Otipkajte  d$
     kako bi izbrisali sve znakove do kraja linije.

---> Netko je utipkao kraj ove linije dvaput. kraj ove linije dvaput.

  5. Prije�ite na Lekciju 2.3 za bolje obja�njenje.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 2.3: UKRATKO O OPERATORIMA I POKRETIMA


  Mnogo naredbi koje mijenjaju tekst se sastoje od operatora i pokreta.
  Oblik naredbe brisanja sa  d  operatorom je sljede�i:

  	d   pokret

  Pri �emu je:
    d      - operator brisanja.
    pokret - ono na �emu �e se operacija izvr�avati (navedeno u nastavku).

  Kratka lista pokreta:
    w - sve do po�etka sljede�e rije�i, NE UKLJU�UJU�I prvo slovo.
    e - sve do kraja trenuta�ne rije�i, UKLJU�UJU�I zadnje slovo.
    $ - sve do kraje linije, UKLJU�UJU�I zadnje slovo.

  Tipkanjem  de  �e se brisati od kursora do kraja rije�i.

NAPOMENA:  Pritiskaju�i samo pokrete dok ste u Normal modu bez operatora �e
           pomicati kursor kao �to je navedeno.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 2.4: KORI�TENJE BROJANJA ZA POKRETE


  ** Tipkanjem nekog broja prije pokreta, pokret se izvr�ava toliko puta. **

  1. Pomaknite kursor na liniju ozna�enu s --->.

  2. Otipkajte  2w  da pomaknete kursor dvije rije�i naprijed.

  3. Otipkajte  3e  da pomaknete kursor na kraj tre�e rije�i naprijed.

  4. Otipkajte  0  (nulu) da pomaknete kursor na po�etak linije.

  5. Ponovite korake 2 i 3 s nekim drugim brojevima.

---> Re�enica sa rije�ima po kojoj mo�ete pomicati kursor.

  6. Prije�ite na Lekciju 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Lekcija 2.5: KORI�TENJE BROJANJA ZA VE�E BRISANJE


	  ** Tipkanje broja N s operatorom ponavlja ga N-puta. **

  U kombinaciji operatora brisanja i pokreta spomenutih iznad
  ubacujete broj prije pokreta kako bi izbrisali vi�e znakova:

	 d   broj   pokret

  1. Pomaknite kursor na prvo slovo u rije�i sa VELIKIM SLOVIMA
     ozna�enu s --->.

  2. Otipkajte  2dw  da izbri�ete dvije rije�i sa VELIKIM SLOVIMA

  3. Ponovite korake 1 i 2 sa razli�itim brojevima da izbri�ete
     uzastopne rije�i sa VELIKIM SLOVIMA sa samo jednom naredbom.

---> ova ABC�� D�E linija FGHI JK LMN OP rije�i je RS� TUVZ� popravljena.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 2.6: OPERIRANJE NAD LINIJAMA


	       ** Otipkajte  dd   za brisanje cijele linije. **

  Zbog u�estalosti brisanja cijelih linija, dizajneri Vi-a su odlu�ili da
  je lak�e brisati linije tipkanjem  d  dvaput.

  1. Pomaknite kursor na drugu liniju u donjoj kitici.
  2. Otipkajte  dd  kako bi izbrisali liniju.
  3. Pomaknite kursor na �etvrtu liniju.
  4. Otipkajte   2dd   kako bi izbrisali dvije linije.

--->  1)  Ru�e su crvene,
--->  2)  Pla�a je super,
--->  3)  Ljubice su plave,
--->  4)  Imam auto,
--->  5)  Satovi ukazuju vrijeme,
--->  6)  �e�er je sladak
--->  7)  Kao i ti.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.7: NAREDBA PONI�TENJA


  ** Pritisnite  u  za poni�tenje zadnje naredbe,  U  za cijelu liniju. **

  1. Pomaknite kursor na liniju ozna�enu s ---> i postavite kursor na prvu
     pogre�ku.
  2. Otipkajte  x  kako bi izbrisali prvi ne�eljeni znak.
  3. Otipkajte  u  kako bi poni�tili zadnju izvr�enu naredbu.
  4. Ovaj put ispravite sve pogre�ke na liniji koriste�i  x  naredbu.
  5. Sada utipkajte veliko  U  kako bi poni�tili sve promjene
     na liniji, vra�aju�i je u prija�nje stanje.
  6. Sada utipkajte  u  nekoliko puta kako bi poni�tili  U
     i prija�nje naredbe.
  7. Sada utipkajte CTRL-R (dr�e�i  CTRL  tipku pritisnutom dok
     ne pritisnete  R) nekoliko puta kako bi vratili promjene
     (poni�tili poni�tenja).

---> Poopravite pogre�ke nna ovvoj liniji ii pooni�titeee ih.

  8. Vrlo korisne naredbe.  Prije�ite na sa�etak Lekcije 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 2 SA�ETAK


  1. Brisanje od kursora do sljede�e rije�i:    dw
  2. Brisanje od kursora do kraja linije:    d$
  3. Brisanje cijele linije:    dd

  4. Za ponavljanje pokreta prethodite mu broj:   2w
  5. Oblik naredbe mijenjanja:
               operator   [broj]   pokret
     gdje je:
       operator - �to napraviti, npr.   d  za brisanje
       [broj]   - neobavezan broj ponavljanja pokreta
       pokret   - kretanje po tekstu po kojem se operira,
                  kao �to je: w (rije�), $ (kraj linije), itd.

  6. Postavljanje kursora na po�etak linije:  0

  7. Za poni�tenje prethodnih promjena, pritisnite:	  u  (malo u)
     Za poni�tenje svih promjena na liniji, pritisnite:   U  (veliko U)
     Za vra�anja promjena, utipkajte:	CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.1: NAREDBA POSTAVI


	** p  za unos prethodno izbrisanog teksta iza kursora. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Otipkajte  dd  kako bi izbrisali liniju i spremili je u Vim registar.

  3. Pomaknite kursor na liniju c), IZNAD linije koju trebate unijeti.

  4. Otipkajte  p  kako bi postavili liniju ispod kursora.

  5. Ponovite korake 2 do 4 kako bi postavili sve linije u pravilnom
     rasporedu.

---> d) Mo�e� li i ti nau�iti?
---> b) Ljubice su plave,
---> c) Inteligencija je nau�ena,
---> a) Ru�e su crvene,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.2: NAREDBA PROMJENE


      ** Otipkajte  rx  za zamjenu slova ispod kursora sa slovom  x . **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Pomaknite kursor tako da se nalazi na prvoj pogre�ci.

  3. Otipkajte  r  i nakon toga ispravan znak na tom mjestu.

  4. Ponovite korake 2 i 3 sve dok prva
     linije ne bude istovjetna drugoj.

--->  Kede ju ovu limija tupjana, natko je protuskao kruve tupke!
--->  Kada je ova linija tipkana, netko je pritiskao krive tipke!

  5. Prije�ite na Lekciju 3.2.

NAPOMENA:  Prisjetite da trebate u�iti vje�banjem, ne pam�enjem.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 3.3: OPERATOR MIJENJANJA


	  ** Za mijenjanje do kraja rije�i, istipkajte  ce . **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Postavite kursor na  a  u  lackmb.

  3. Otipkajte  ce  i ispravite rije� (u ovom slu�aju otipkajte  inija ).

  4. Pritisnite <ESC> i pomaknite kursor na sljede�i znak
     kojeg je potrebno ispraviti.

  5. Ponovite korake 3 i 4 sve dok prva re�enica ne postane istovjetna
     drugoj.

---> Ova lackmb ima nekoliko rjlcah koje trfcb mijdmlfsz.
---> Ova linija ima nekoliko rije�i koje treba mijenjati.

Primijetite da  ce  bri�e rije� i postavlja Vim u Insert mod.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lekcija 3.4: JO� MIJENJANJA KORI�TENJEM c


    ** Naredba mijenjanja se koristi sa istim pokretima kao i brisanje. **

  1. Operator mijenjanja se koristi na isti na�in kao i operator brisanja:

         c    [broj]   pokret

  2. Pokreti su isti, npr:   w (rije�) i  $ (kraj linije).

  3. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  4. Pomaknite kursor na prvu pogre�ku.

  5. Otipkajte  c$  i utipkajte ostatak linije tako da bude istovjetna
     drugoj te pritisnite <ESC>.

---> Kraj ove linije treba pomo� tako da izgleda kao linija ispod.
---> Kraj ove linije treba ispraviti kori�tenjem c$ naredbe.

NAPOMENA:  Mo�ete koristiti Backspace za ispravljanje gre�aka.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 3 SA�ETAK


  1. Za postavljanje teksta koji je upravo izbrisan, pritisnite  p . Ovo
     postavlja tekst IZA kursora (ako je pak linija izbrisana tekst se
     postavlja na liniju ispod kursora).

  2. Za promjenu znaka na kojem se nalazi kursor, pritisnite  r  i nakon toga
     �eljeni znak.

  3. Operator mijenjanja dozvoljava promjenu teksta od kursora do pozicije do
     koje dovede pokret. tj. Otipkajte  ce  za mijenjanje od kursora do kraja
     rije�i, c$  za mijenjanje od kursora do kraja linije.

  4. Oblik naredbe mijenjanja:

	 c   [broj]   pokret

Prije�ite na sljede�u lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 4.1: POZICIJA KURSORA I STATUS DATOTEKE

  ** CTRL-G za prikaz pozicije kursora u datoteci i status datoteke.
     Pritisnite  G  za pomicanje kursora na neku liniju u datoteci. **

NAPOMENA:  Pro�itajte cijelu lekciju prije izvr�enja bilo kojeg koraka!!

  1. Dr�ite Ctrl tipku pritisnutom i pritisnite  g .  Ukratko: CTRL-G.
     Vim �e ispisati poruku na dnu ekrana sa imenom datoteke i pozicijom
     kursora u datoteci.  Zapamtite broj linije za 3. korak.

NAPOMENA:  Mo�ete vidjeti poziciju kursora u donjem desnom kutu ako
           je postavka 'ruler' aktivirana (obja�njeno u 6. lekciji).

  2. Pritisnite  G  za pomicanje kursora na kraj datoteke.
     Otipkajte  gg  za pomicanje kursora na po�etak datoteke.

  3. Otipkajte broj linije na kojoj ste bili maloprije i zatim  G .  Kursor
     �e se vratiti na liniju na kojoj se nalazio kada ste otipkali CTRL-G.

  4. Ako ste spremni, izvr�ite korake od 1 do 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 4.2: NAREDBE TRA�ENJA

       ** Otipkajte  /  i nakon toga izraz kojeg �elite tra�iti. **

  1. U Normal modu otipkajte  /  znak.  Primijetite da se znak
     pojavio zajedno sa kursorom na dnu ekrana kao kod  :  naredbe.

  2. Sada otipkajte 'grrrre�ka' <ENTER>.  To je rije� koju zapravo tra�ite.

  3. Za ponovno tra�enje istog izraza, otipkajte  n .
     Za tra�enje istog izraza ali u suprotnom smjeru, otipkajte  N .

  4. Za tra�enje izraza unatrag, koristite  ?  umjesto  / .

  5. Za povratak na prethodnu poziciju koristite  CTRL-O  (dr�ite Ctrl
     pritisnutim dok ne pritisnete tipku o).  Ponavljajte sve dok se ne
     vratite na po�etak.  CTRL-I sli�no kao CTRL-O ali u suprotnom smjeru.

---> "pogrrrre�ka" je pogre�no; umjesto pogrrrre�ka treba stajati pogre�ka.

NAPOMENA:  Ako se tra�enjem do�e do kraja datoteke nastavit �e se od njenog
           po�etka osim ako je postavka 'wrapscan' deaktivirana.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 4.3: TRA�ENJE PRIPADAJU�E ZAGRADE


	** Otipkajte  %  za pronalazak pripadaju�e ), ] ili } . **

  1. Postavite kursor na bilo koju od  ( ,  [  ili  {
     otvorenih zagrada u liniji ozna�enoj s --->.

  2. Otipkajte znak  % .

  3. Kursor �e se pomaknuti na pripadaju�u zatvorenu zagradu.

  4. Otipkajte  %  kako bi pomakli kursor na drugu pripadaju�u zagradu.

  5. Pomaknite kursor na neku od (,),[,],{ ili } i ponovite  %  naredbu.

---> Linija ( testiranja obi�nih ( [ uglatih ] i { viti�astih } zagrada.))


NAPOMENA:  Vrlo korisno u ispravljanju koda sa nepripadaju�im zagradama!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 4.4: NAREDBE ZAMIJENE


       ** Otipkajte  :s/staro/novo/g  da zamijenite 'staro' za 'novo'. **

  1. Pomaknite kursor na liniju ozna�enu s --->.

  2. Otipkajte  :s/cvr��/cvr� <ENTER> .  Primjetite da ova naredba zamjenjuje
     samo prvi "cvr��" u liniji.

  3. Otipkajte  :s/cvr��/cvr�/g .  Dodavanje  g  stavke zna�i da �e se naredba
     izvr�iti na cijeloj liniji, zamjenjivanjem svih "cvr��" u liniji.

---> i cvr��i cvr��i cvr��ak na �voru crne smr�e.

  4. Za zamjenu svih izraza u rasponu dviju linija,
     otipkajte :#,#s/staro/novo/g   #,# su brojevi linije datoteke na kojima
                                    te izme�u njih �e se izvr�iti zamjena.
     Otipkajte :%s/staro/novo/g     za zamjenu svih izraza u cijeloj datoteci.
     Otipkajte :%s/staro/novo/gc    za pronalazak svakog izraza u datoteci i
     			            potvrdu zamjene.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 4 SA�ETAK


  1. CTRL-G  prikazuje poziciju kursora u datoteci i status datoteke.
             G  postavlja kursor na zadnju liniju datoteke.
     broj    G  postavlja kursor na  broj  liniju.
            gg  postavlja kursor na prvu liniju.

  2. Tipkanje  /  sa izrazom tra�i UNAPRIJED taj izraz.
     Tipkanje  ?  sa izrazom tra�i UNATRAG taj izraz.
     Nakon naredbe tra�enja koristite  n  za pronalazak izraza u istom
     smjeru, i  N  za pronalazak istog izraza ali u suprotnom smjeru.
     CTRL-O vra�a kursor na prethodnu poziciju, CTRL-I na sljede�u poziciju.

  3. Tipkanje  %  dok je kursor na zagradi pomi�e ga na pripadaju�u zagradu.

  4. Za zamjenu prvog izraza staro za izraz novo	   :s/staro/novo
     Za zamjenu svih izraza staro na cijeloj liniji	   :s/staro/novo/g
     Za zamjenu svih izraza staro u rasponu linija #,#     :#,#s/staro/novo/g
     Za zamjenu u cijeloj datoteci			   :%s/staro/novo/g
     Za potvrdu svake zamjene dodajte 'c'		   :%s/staro/novo/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.1: IZVR�AVANJE VANJSKIH NAREDBI


	** Otipkajte  :!  sa vanjskom naredbom koju �elite izvr�iti. **

  1. Otipkajte poznatu naredbu  :  kako bi kursor premjestili na dno
     ekrana.  Time omogu�avate unos naredbe u naredbenoj liniji.

  2. Otipkajte znak  !  (uskli�nik).  Tako omogu�avate
     izvr�avanje naredbe vanjske ljuske.

  3. Kao primjer otipkajte   ls   nakon ! te pritisnite <ENTER>.
     Ovo �e prikazati sadr�aj direktorija, kao da ste u ljusci.
     Koristite   :!dir   ako   :!ls   ne radi.

NAPOMENA:  Mogu�e je izvr�avati bilo koju vanjsku naredbu na ovaj na�in,
           zajedno sa njenim argumentima.

NAPOMENA:  Sve  :  naredbe se izvr�avaju nakon �to pritisnete <ENTER>
	   U daljnjem tekstu to ne�e uvijek biti napomenuto.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.2: VI�E O SPREMANJU DATOTEKA

           ** Za spremanje promjena, otipkajte  :w IME_DATOTEKE. **

  1. Otipkajte   :!dir   ili   :!ls   za pregled direktorija.
     Ve� znate da morate pritisnuti <ENTER> na kraju tipkanja.

  2. Izaberite ime datoteke koja jo� ne postoji, npr. TEST.

  3. Otipkajte:	 :w TEST   (gdje je TEST ime koje ste prethodno odabrali.)

  4. Time �e te spremiti cijelu datoteku (Vim Tutor) pod imenom TEST.
     Za provjeru, otipkajte ponovno   :!dir   ili   :!ls
     za pregled direktorija.

NAPOMENA:  Ako bi napustili Vim i ponovno ga pokrenuli sa vim TEST ,
           datoteka bi bila potpuna kopija ove datoteke u trenutku
           kada ste je spremili.

  5. Izbri�ite datoteku tako da otipkate (MS-DOS):	:!del TEST
				       ili (Unix):	:!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.3: SPREMANJE OZNA�ENOG TEKSTA


   ** Kako bi spremili dio datoteke, otipkajte  v  pokret  :w IME_DATOTEKE **

  1. Pomaknite kursor na ovu liniju.

  2. Pritisnite  v  i pomaknite kursor pet linija ispod ove.
     Primijetite promjenu, ozna�eni tekst se razlikuje od obi�nog.

  3. Pritisnite  :  znak.  Na dnu ekrana pojavit �e se  :'<,'> .

  4. Otipkajte  w TEST  , pritom je TEST ime datoteke koja jo� ne postoji.
     Provjerite da zaista pi�e  :'<,'>w TEST
     prije nego �to pritisnite <ENTER>.

  5. Vim �e spremiti ozna�eni tekst u TEST.  Provjerite sa :!dir  ili  :!ls .
     Nemojte je jo� brisati!  Koristiti �e te je u sljede�oj lekciji.

NAPOMENA:  Tipka  v  zapo�inje Vizualno ozna�avanje.  Mo�ete pomicati kursor
           unaokolo kako bi mijenjali veli�inu ozna�enog teksta. Mo�ete
           koristiti i operatore.  Npr,  d  �e izbrisati ozna�eni tekst.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.4: U�ITAVANJE DATOTEKA


       ** Za ubacivanje sadr�aja datoteke, otipkajte  :r IME_DATOTEKE  **

  1. Postavite kursor iznad ove linije.

NAPOMENA:  Nakon �to izvr�ite 2. korak vidjeti �e te tekst iz Lekcije 5.3.
           Stoga pomaknite kursor DOLJE kako bi ponovno vidjeli ovu lekciju.

  2. U�itajte va�u TEST datoteku koriste�i naredbu   :r TEST
     gdje je TEST ime datoteke koju ste koristili u prethodnoj lekciji.
     Sadr�aj u�itane datoteke je uba�en liniju ispod kursora.

  3. Kako bi provjerili da je datoteka u�itana, vratite kursor unatrag i
     primijetite dvije kopije Lekcije 5.3, originalnu i onu iz datoteke.

NAPOMENA:  Mo�ete tako�er u�itati ispis vanjske naredbe.  Npr,  :r !ls
           �e u�itati ispis  ls  naredbe i postaviti ispis liniju ispod
           kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 5 SA�ETAK


  1.  :!naredba  izvr�ava vanjsku naredbu.

      Korisni primjeri:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  pregled direktorija.
	  :!del DATOTEKA   :!rm DATOTEKA   -  bri�e datoteku DATOTEKA.

  2.  :w DATOTEKA  zapisuje trenuta�nu datoteku na disk sa imenom DATOTEKA.

  3.  v  pokret  :w IME_DATOTEKE  sprema vizualno ozna�ene linije u
      datoteku IME_DATOTEKE.

  4.  :r IME_DATOTEKE  u�itava datoteku IME_DATOTEKE sa diska i stavlja
      njen sadr�aj liniju ispod kursora.

  5.  :r !dir  u�itava ispis naredbe dir i postavlja sadr�aj ispisa liniju
      ispod kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcija 6.1: NAREDBA OTVORI


	** Pritisnite  o  kako bi otvorili liniju ispod kursora
	   i pre�li u Insert mod. **

  1. Pomaknite kursor na sljede�u liniju ozna�enu s --->.

  2. Otipkajte malo  o  kako bi otvorili novu liniju ISPOD kursora
     i pre�li u Insert mod.

  3. Otipkajte ne�to teksta i nakon toga pritisnite <ESC>
     kako bi napustili Insert mod.

---> Nakon �to pritisnete  o  kursor �e pre�i u novu liniju u Insert mod.

  4. Za otvaranje linije IZNAD kursora, otipkajte umjesto malog o veliko O ,
     Poku�ajte na donjoj liniji ozna�enoj s --->.

---> Otvorite liniju iznad ove - otipkajte O dok je kursor na ovoj liniji.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 6.2: NAREDBA DODAJ


	     ** Otipkajte  a  za dodavanje teksta IZA kursora. **

  1. Pomaknite kursor na po�etak sljede�e linije ozna�ene s --->.
  
  2. Tipkajte  e  dok se kursor ne nalazi na kraju  li .

  3. Otipkajte  a  (malo) kako bi dodali tekst IZA kursora.

  4. Dopunite rije� kao �to je na liniji ispod.
     Pritisnite <ESC> za izlaz iz Insert moda.

  5. Sa  e  prije�ite na sljede�u nepotpunu rije� i ponovite korake 3 i 4.
  
---> Ova li omogu�ava vje dodav teksta nekoj liniji.
---> Ova linija omogu�ava vje�banje dodavanja teksta nekoj liniji.

NAPOMENA:  Sa i, a, i  A  prelazite u isti Insert mod, jedina
           razlika je u poziciji od koje �e se tekst ubacivati.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.3: DRUGI NA�IN MIJENJANJA


      ** Otipkajte veliko  R  kako bi zamijelili vi�e od jednog znaka. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.
     Pomaknite kursor na po�etak prvog  xxx .

  2. Pritisnite  R  i otipkajte broj koji je liniju ispod,
     tako da zamijeni xxx .

  3. Pritisnite <ESC> za izlaz iz Replace moda.
     Primijetite da je ostatak linije ostao nepromjenjen.

  5. Ponovite korake kako bi zamijenili preostali xxx.

---> Zbrajanje: 123 plus xxx je xxx.
---> Zbrajanje: 123 plus 456 je 579.

NAPOMENA:  Replace mod je kao Insert mod, ali sa bitnom razlikom,
           svaki otipkani znak bri�e ve� postoje�i.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 6.4: KOPIRANJE I LIJEPLJENJE TEKSTA


    ** Koristite  y  operator za kopiranje a  p  za lijepljenje teksta. **

  1. Pomaknite kursor na liniju s --->  i postavite kursor nakon "a)".
  
  2. Pokrenite Visual mod sa  v  i pomaknite kursor sve do ispred "prva".
  
  3. Pritisnite  y  kako bi kopirali ozna�eni tekst.

  4. Pomaknite kursor do kraja sljede�e linije:  j$

  5. Pritisnite  p  kako bi zalijepili tekst.  Onda utipkajte:  druga <ESC> .

  6. Koristite Visual mod kako bi ozna�ili " linija.", kopirajte:  y , kursor
     postavite na kraj sljede�e linije:  j$  i ondje zalijepite tekst:  p .

--->  a) ovo je prva linija.
      b)

NAPOMENA:  mo�ete koristiti  y  kao operator;  yw   kopira jednu rije�.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.5: MIJENJANJE POSTAVKI


 ** Postavka: naredbe tra�enja i zamijene ne razlikuju VELIKA i mala slova **

  1. Potra�ite 'razlika' tipkanjem:   /razlika  <ENTER>
     Nekoliko puta ponovite pritiskanjem  n .

  2. Aktivirajte 'ic' (Ignore case) postavku:   :set ic

  3. Ponovno potra�ite 'razlika' tipkanjem  n
     Primijetite da su sada i RAZLIKA i Razlika prona�eni.

  4. Aktivirajte 'hlsearch' i 'incsearch' postavke:  :set hls is

  5. Otipkajte naredbu tra�enja i primijetite razlike:  /razlika <ENTER>

  6. Za deaktiviranje  ic  postavke koristite:  :set noic

NAPOMENA:  Za neozna�avanje prona�enih izraza otipkajte:   :nohlsearch
NAPOMENA:  Bez razlikovanja velikih i malih slova u samo jednoj naredbi
	   koristite  \c u izrazu:  /razlika\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 6 SA�ETAK

  1. Pritisnite  o  za otvaranje linije ISPOD kursora i prelazak u Insert mod.
     Pritisnite  O  za otvaranje linije IZNAD kursora.

  2. Pritisnite  a  za unos teksta IZA kursora.
     Pritisnite  A  za unos teksta na kraju linije.

  3. Naredba  e  pomi�e kursor na kraj rije�i.

  4. Operator  y  kopira tekst,  p  ga lijepi.

  5. Tipkanjem velikog  R  Vim prelazi u Replace mod dok ne pritisnete <ESC> .

  6. Tipkanjem ":set xxx" aktivira postavku "xxx".  Neke postavke su:
  	'ic' 'ignorecase'	ne razlikuje velika/mala slova pri tra�enju
	'is' 'incsearch'	tra�i nedovr�ene izraze
	'hls' 'hlsearch'	ozna�i sve prona�ene izraze
     Mo�ete koristite dugo ili kratko ime postavke.

  7. Prethodite "no" imenu postavke za deaktiviranje iste:   :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 7.1: DOBIVANJE POMO�I


		   ** Koristite on-line sustav pomo�i **

  Vim ima detaljan on-line sustav pomo�i.
  Za po�etak, poku�ajte jedno od sljede�eg:
	- pritisnite <HELP> tipku (ako je va�a tipkovnica ima)
	- pritisnite <F1> tipku (ako je va�a tipkovnica ima)
	- utipkajte   :help <ENTER>

  Pro�itajte tekst u prozoru pomo�i kako bi ste se znali slu�iti istom.
  Tipkanjem  CTRL-W CTRL-W   prelazite iz jednog prozora u drugi.
  Otipkajte    :q <ENTER>    kako bi zatvorili prozor pomo�i.

  Prona�i �e te pomo� o bilo kojoj temi, tako da dodate upit samoj
  ":help" naredbi.  Poku�ajte (ne zaboravite pritisnuti <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 7.2: PRAVLJENJE SKRIPTE


		       ** Aktivirajte Vim mogu�nosti **

  Vim ima mnogo vi�e alata od Vi-ja, ali ve�ina njih nije aktivirana.
  Kako bi mogli koristiti vi�e mogu�nosti napravite "vimrc" datoteku.

  1. Uredite "vimrc" datoteku.  Ovo ovisi o va�em sistemu:
	:e ~/.vimrc		za Unix
	:e $VIM/_vimrc		za MS-Windows

  2. Sada u�itajte primjer sadr�aja "vimrc" datoteke:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Sa�uvajte datoteku sa:
	:w

  Sljede�eg puta kada pokrenete Vim, bojanje sintakse teksta biti �e
  aktivirano. Sve va�e postavke mo�ete dodati u "vimrc" datoteku.
  Za vi�e informacija otipkajte  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 7.3: AUTOMATSKO DOVR�AVANJE


	** Dovr�avanje iz naredbene linije pomo�u CTRL-D i <TAB> **

  1. Provjerite da Vim nije u Vi modu:  :set nocp

  2. Pogledajte koje datoteke postoje u direktoriju:  :!ls   or  :!dir

  3. Otipkajte po�etak naredbe:  :e

  4. Tipkajte  CTRL-D  i prikazati �e se lista naredbi koje zapo�inju sa "e".

  5. Pritisnite <TAB>  i Vim �e dopuniti unos u naredbu ":edit".

  6. Dodajte razmak i po�etak datoteke:  :edit FIL

  7. Pritisnite <TAB>.  Vim �e nadopuniti ime datoteke (ako je jedinstveno).

NAPOMENA:  Mogu�e je dopuniti mnoge naredbe.  Koristite CTRL-D i <TAB>.
           Naro�ito je korisno za  :help  naredbe.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 7 SA�ETAK


  1. Otipkajte  :help  ili pritisnite <F1> ili <Help>  za pomo�.

  2. Otipkajte  :help naredba  kako bi dobili pomo� za  naredba .

  3. Otipkajte  CTRL-W CTRL-W  za prelazak u drugi prozor

  4. Otipkajte  :q  kako bi zatvorili prozor pomo�i

  5. Napravite vimrc skriptu za podizanje kako bi u nju spremali
     va�e omiljene postavke.

  6. Kada tipkate naredbu koja zapo�inje sa  :
     pritisnite CTRL-D kako bi vidjeli mogu�e valjane vrijednosti.
     Pritisnite <TAB> kako bi odabrali jednu od njih.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Kraj.  Cilj priru�nika je da poka�e kratak pregled Vim editora, tek toliko
  da omogu�i njegovo kori�tenje. Priru�nik nije potpun jer Vim ima mnogo vi�e
  naredbi. Za vi�e informacija: ":help user-manual".

  Za �itanje i kori�tenje, preporu�amo:
	Vim - Vi Improved - by Steve Oualline
	Izdava�: New Riders
  Prva knjiga potpuno posve�ena Vim-u. Vrlo korisna za po�etnike.
  Sa mnogo primjera i slika.
  Posjetite http://iccf-holland.org/click5.html

  Sljede�a knjiga je ne�to starija i vi�e o Vi-u nego o Vim-u, preporu�amo:
	Learning the Vi Editor - by Linda Lamb
	Izdava�: O'Reilly & Associates Inc.
  Solidna knjiga, mo�ete saznati skoro sve �to mo�ete napraviti
  u Vi-u. �esto izdanje ima ne�to informacija i o Vim-u.

  Ovaj priru�nik su napisali: Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines koriste�i ideje Charles Smith,
  Colorado State University.  E-po�ta: bware@mines.colorado.edu.

  Naknadne promjene napravio je Bram Moolenaar.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Preveo na hrvatski: Paul B. Mahol <onemda@gmail.com>
  Preinaka 1.42, Lipanj 2008


PK�j�Z�5��a�a�vim80/tutor/tutor.nonu�[���===============================================================================
= V e l k o m m e n   t i l   i n n f ø r i n g e n   i   V i m  --  Ver. 1.7 =
===============================================================================

     Vim er en meget kraftig editor med mange kommandoer, alt for mange til å
     kunne gå gjennom alle i en innføring som denne. Den er beregnet på å
     sette deg inn i bruken av nok kommandoer så du vil være i stand til lett
     å kunne bruke Vim som en editor til alle formål.

     Tiden som kreves for å gå gjennom denne innføringen tar ca. 25-30
     minutter, avhengig av hvor mye tid du bruker til eksperimentering.

     MERK:
     Kommandoene i leksjonene vil modifisere teksten. Lag en kopi av denne
     filen som du kan øve deg på (hvis du kjørte «vimtutor»-kommandoen, er
     dette allerede en kopi).

     Det er viktig å huske at denne innføringen er beregnet på læring gjennom
     bruk. Det betyr at du må utføre kommandoene for å lære dem skikkelig.
     Hvis du bare leser teksten, vil du glemme kommandoene!

     Først av alt, sjekk at «Caps Lock» IKKE er aktiv og trykk «j»-tasten for
     å flytte markøren helt til leksjon 1.1 fyller skjermen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 1.1:  FLYTTING AV MARKØREN


       ** For å flytte markøren, trykk tastene h, j, k, l som vist. **
	     ^
	     k		Tips: h-tasten er til venstre og flytter til venstre.
       < h	 l >	      l-tasten er til høyre og flytter til høyre.
	     j		      j-tasten ser ut som en pil som peker nedover.
	     v
  1. Flytt markøren rundt på skjermen til du har fått det inn i fingrene.

  2. Hold inne nedovertasten (j) til den repeterer.
     Nå vet du hvordan du beveger deg til neste leksjon.

  3. Gå til leksjon 1.2 ved hjelp av nedovertasten.

Merk: Hvis du blir usikker på noe du har skrevet, trykk <ESC> for å gå til
      normalmodus. Skriv deretter kommandoen du ønsket på nytt.

Merk: Piltastene skal også virke. Men ved å bruke hjkl vil du være i stand til
      å bevege markøren mye raskere når du er blitt vant til det. Helt sant!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Leksjon 1.2: AVSLUTTE VIM


  !! MERK: Før du utfører noen av punktene nedenfor, les hele leksjonen!!

  1. Trykk <ESC>-tasten (for å forsikre deg om at du er i normalmodus).

  2. Skriv:	:q! <ENTER>.
     Dette avslutter editoren og FORKASTER alle forandringer som du har gjort.

  3. Når du ser kommandolinjen i skallet, skriv kommandoen som startet denne
     innføringen. Den er:   vimtutor <ENTER>

  4. Hvis du er sikker på at du husker dette, utfør punktene 1 til 3 for å
     avslutte og starte editoren på nytt.

MERK:  :q! <ENTER>  forkaster alle forandringer som du gjorde. I løpet av noen
       få leksjoner vil du lære hvordan du lagrer forandringene til en fil.

  5. Flytt markøren ned til leksjon 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 1.3: REDIGERING AV TEKST -- SLETTING


	     ** Trykk  x  for å slette tegnet under markøren. **

  1. Flytt markøren til den første linjen merket med  --->.

  2. For å ordne feilene på linjen, flytt markøren til den er oppå tegnet som
     skal slettes.

  3. Trykk tasten  x  for å slette det uønskede tegnet.

  4. Repeter punkt 2 til 4 til setningen er lik den som er under.

---> Hessstennnn brrråsnudddde ii gaaata.
---> Hesten bråsnudde i gata.

  5. Nå som linjen er korrekt, gå til leksjon 1.4.

MERK: Når du går gjennom innføringen, ikke bare prøv å huske kommandoene, men
      bruk dem helt til de sitter.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.4: REDIGERING AV TEKST -- INNSETTING


		    ** Trykk  i  for å sette inn tekst. **

  1. Flytt markøren til den første linjen som er merket med --->.

  2. For å gjøre den første linjen lik den andre, flytt markøren til den står
     på tegnet ETTER posisjonen der teksten skal settes inn.

  3. Trykk  i  og skriv inn teksten som mangler.

  4. Etterhvert som hver feil er fikset, trykk <ESC> for å returnere til
     normalmodus. Repeter punkt 2 til 4 til setningen er korrekt.

---> Det er tkst som mnglr .
---> Det er ganske mye tekst som mangler her.

  5. Når du føler deg komfortabel med å sette inn tekst, gå til oppsummeringen
     nedenfor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.5: REDIGERING AV TEKST -- LEGGE TIL


		    ** Trykk  A  for å legge til tekst. **

  1. Flytt markøren til den første linjen nedenfor merket --->.
     Det har ikke noe å si hvor markøren er plassert på den linjen.

  2. Trykk  A  og skriv inn det som skal legges til.

  3. Når teksten er lagt til, trykk <ESC> for å returnere til normalmodusen.

  4. Flytt markøren til den andre linjen markert med ---> og repeter steg 2 og
     3 for å reparere denne setningen.

---> Det mangler noe tekst p
     Det mangler noe tekst på denne linjen.
---> Det mangler også litt tek
     Det mangler også litt tekst på denne linjen.

  5. Når du føler at du behersker å legge til tekst, gå til leksjon 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 1.6: REDIGERE EN FIL


	       ** Bruk	:wq  for å lagre en fil og avslutte. **

  !! MERK: Før du utfører noen av stegene nedenfor, les hele denne leksjonen!!

  1. Avslutt denne innføringen som du gjorde i leksjon 1.2:  :q!

  2. Skriv denne kommandoen på kommandolinja:  vim tutor <ENTER>
     «vim» er kommandoen for å starte Vim-editoren, «tutor» er navnet på fila
     som du vil redigere. Bruk en fil som kan forandres.

  3. Sett inn og slett tekst som du lærte i de foregående leksjonene.

  4. Lagre filen med forandringene og avslutt Vim med:	:wq <ENTER>

  5. Start innføringen på nytt og flytt ned til oppsummeringen som følger.

  6. Etter å ha lest og forstått stegene ovenfor: Sett i gang.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 1


  1. Markøren beveges ved hjelp av piltastene eller hjkl-tastene.
	 h (venstre)	 j (ned)     k (opp)	 l (høyre)

  2. For å starte Vim fra skall-kommandolinjen, skriv:	vim FILNAVN <ENTER>

  3. For å avslutte Vim, skriv:  <ESC> :q! <ENTER>  for å forkaste endringer.
		   ELLER skriv:  <ESC> :wq <ENTER>  for å lagre forandringene.

  4. For å slette tegnet under markøren, trykk:  x

  5. For å sette inn eller legge til tekst, trykk:
	 i    skriv innsatt tekst  <ESC>	sett inn før markøren
	 A    skriv tillagt tekst  <ESC>	legg til på slutten av linjen

MERK: Når du trykker <ESC> går du til normalmodus eller du avbryter en uønsket
      og delvis fullført kommando.

  Nå kan du gå videre til leksjon 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.1: SLETTEKOMMANDOER


		    ** Trykk  dw  for å slette et ord. **

  1. Trykk <ESC> for å være sikker på at du er i normalmodus.

  2. Flytt markøren til den første linjen nedenfor merket --->.

  3. Flytt markøren til begynnelsen av ordet som skal slettes.

  4. Trykk  dw	og ordet vil forsvinne.

MERK: Bokstaven  d  vil komme til syne på den nederste linjen på skjermen når
      du skriver den. Vim venter på at du skal skrive w . Hvis du ser et annet
      tegn enn	d  har du skrevet noe feil; trykk <ESC> og start på nytt.

---> Det er agurk tre ord eple som ikke hører pære hjemme i denne setningen.
---> Det er tre ord som ikke hører hjemme i denne setningen.

  5. Repeter punkt 3 og 4 til den første setningen er lik den andre. Gå
     deretter til leksjon 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 2.2: FLERE SLETTEKOMMANDOER


	     ** Trykk  d$  for å slette til slutten av linjen. **

  1. Trykk <ESC> for å være sikker på at du er i normalmodus.

  2. Flytt markøren til linjen nedenfor merket --->.

  3. Flytt markøren til punktet der linjen skal kuttes (ETTER første punktum).

  4. Trykk  d$	for å slette alt til slutten av linjen.

---> Noen skrev slutten på linjen en gang for mye. linjen en gang for mye.

  5. Gå til leksjon 2.3 for å forstå hva som skjer.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 2.3: OM OPERATORER OG BEVEGELSER


  Mange kommandoer som forandrer teksten er laget ut i fra en operator og en
  bevegelse. Formatet for en slettekommando med sletteoperatoren  d  er:

	d   bevegelse

  Der:
    d	      - er sletteoperatoren.
    bevegelse - er hva operatoren vil opere på (listet nedenfor).

  En kort liste med bevegelser:
    w - til starten av det neste ordet, UNNTATT det første tegnet.
    e - til slutten av det nåværende ordet, INKLUDERT det siste tegnet.
    $ - til slutten av linjen, INKLUDERT det siste tegnet.

  Ved å skrive	de  vil altså alt fra markøren til slutten av ordet bli
  slettet.

MERK:  Ved å skrive kun bevegelsen i normalmodusen uten en operator vil
       markøren flyttes som spesifisert.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 LEKSJON 2.4: BRUK AV TELLER FOR EN BEVEGELSE


 ** Ved å skrive et tall foran en bevegelse repeterer den så mange ganger. **

  1. Flytt markøren til starten av linjen markert ---> nedenfor.

  2. Skriv  2w	for å flytte markøren to ord framover.

  3. Skriv  3e	for å flytte markøren framover til slutten av det tredje
     ordet.

  4. Skriv  0  (null) for å flytte til starten av linjen.

  5. Repeter steg 2 og 3 med forskjellige tall.

---> Dette er en linje med noen ord som du kan bevege deg rundt på.

  6. Gå videre til leksjon 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 2.5: BRUK AV ANTALL FOR Å SLETTE MER


     ** Et tall sammen med en operator repeterer den så mange ganger. **

  I kombinasjonen med sletteoperatoren og en bevegelse nevnt ovenfor setter du
  inn antall før bevegelsen for å slette mer:
	 d  nummer  bevegelse

  1. Flytt markøren til det første ordet med STORE BOKSTAVER på linjen markert
     med --->.

  2. Skriv  2dw  for å slette de to ordene med store bokstaver.

  3. Repeter steg 1 og 2 med forskjelling antall for å slette de etterfølgende
     ordene som har store bokstaver.

---> Denne ABC DE linjen FGHI JK LMN OP er nå Q RS TUV litt mer lesbar.

MERK: Et antall mellom operatoren  d  og bevegelsen virker på samme måte som å
      bruke bevegelsen uten en operator.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.6: OPERERE PÅ LINJER


		 ** Trykk  dd  for å slette en hel linje. **

  På grunn av at sletting av linjer er mye brukt, fant utviklerne av Vi ut at
  det vil være lettere å rett og slett trykke to d-er for å slette en linje.

  1. Flytt markøren til den andre linjen i verset nedenfor.
  2. Trykk  dd	 å slette linjen.
  3. Flytt deretter til den fjerde linjen.
  4. Trykk  2dd  for å slette to linjer.

--->  1) Roser er røde,
--->  2) Gjørme er gøy,
--->  3) Fioler er blå,
--->  4) Jeg har en bil,
--->  5) Klokker viser tiden,
--->  6) Druer er søte
--->  7) Og du er likeså.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.7: ANGRE-KOMMANDOEN


  ** Trykk  u  for å angre siste kommando,  U  for å fikse en hel linje. **

  1. Flytt markøren til linjen nedenfor merket ---> og plasser den på den
     første feilen.
  2. Trykk  x  for å slette det første uønskede tegnet.
  3. Trykk så  u  for å angre den siste utførte kommandoen.
  4. Deretter ordner du alle feilene på linjene ved å bruke kommandoen	x  .
  5. Trykk nå en stor  U  for å sette linjen tilbake til det den var
     originalt.
  6. Trykk  u  noen ganger for å angre	U  og foregående kommandoer.
  7. Deretter trykker du  CTRL-R  (hold CTRL nede mens du trykker R) noen
     ganger for å gjenopprette kommandoene (omgjøre angrekommandoene).

---> RReparer feiilene påå denne linnnjen oog erssstatt dem meed angre.

  8. Dette er meget nyttige kommandoer. Nå kan du gå til oppsummeringen av
     leksjon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 2


  1. For å slette fra markøren fram til det neste ordet, trykk:  dw
  2. For å slette fra markøren til slutten av en linje, trykk:	d$
  3. For å slette en hel linje, trykk:	dd

  4. For å repetere en bevegelse, sett et nummer foran:  2w
  5. Formatet for en forandringskommando er:
	       operator  [nummer]  bevegelse
     der:
       operator  - hva som skal gjøres, f.eks.	d  for å slette
       [nummer]  - et valgfritt antall for å repetere bevegelsen
       bevegelse - hva kommandoen skal operere på, eksempelvis	w  (ord),
		   $  (til slutten av linjen) og så videre.

  6. For å gå til starten av en linje, bruk en null:  0

  7. For å angre tidligere endringer, skriv:		u  (liten u)
     For å angre alle forandringer på en linje, skriv:	U  (stor U)
     For å omgjøre angringen, trykk:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.1: «LIM INN»-KOMMANDOEN


    ** Trykk  p  for å lime inn tidligere slettet tekst etter markøren **

  1. Flytt markøren til den første linjen med ---> nedenfor.

  2. Trykk  dd	for å slette linjen og lagre den i et Vim-register.

  3. Flytt markøren til c)-linjen, OVER posisjonen linjen skal settes inn.

  4. Trykk  p  for å legge linjen under markøren.

  5. Repeter punkt 2 til 4 helt til linjene er i riktig rekkefølge.

---> d) Kan du også lære?
---> b) Fioler er blå,
---> c) Intelligens må læres,
---> a) Roser er røde,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.2: «ERSTATT»-KOMMANDOEN


	 ** Trykk  rx  for å erstatte tegnet under markøren med x. **

  1. Flytt markøren til den første linjen nedenfor merket --->.

  2. Flytt markøren så den står oppå den første feilen.

  3. Trykk  r  og deretter tegnet som skal være der.

  4. Repeter punkt 2 og 3 til den første linjen er lik den andre.

---> Da dfnne lynjxn ble zkrevet, var det nøen som tjykket feite taster!
---> Da denne linjen ble skrevet, var det noen som trykket feile taster!

  5. Gå videre til leksjon 3.2.

MERK: Husk at du bør lære ved å BRUKE, ikke pugge.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.3: «FORANDRE»-OPERATOREN


	   ** For å forandre til slutten av et ord, trykk  ce . **

  1. Flytt markøren til den første linjen nedenfor som er merket --->.

  2. Plasser markøren på  u  i «lubjwr».

  3. Trykk  ce	og det korrekte ordet (i dette tilfellet, skriv «injen»).

  4. Trykk <ESC> og gå til det neste tegnet som skal forandres.

  5. Repeter punkt 3 og 4 helt til den første setningen er lik den andre.

---> Denne lubjwr har noen wgh som må forkwåp med «forækzryas»-kommandoen.
---> Denne linjen har noen ord som må forandres med «forandre»-kommandoen.

Vær oppmerksom på at  ce  sletter ordet og går inn i innsettingsmodus.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 3.4: FLERE FORANDRINGER VED BRUK AV c


 ** Forandringskommandoen blir brukt med de samme bevegelser som «slett». **

  1. Forandringsoperatoren fungerer på samme måte som «slett». Formatet er:

	 c    [nummer]	 bevegelse

  2. Bevegelsene er de samme, som for eksempel	w  (ord) og  $	(slutten av en
     linje).

  3. Gå til den første linjen nedenfor som er merket --->.

  4. Flytt markøren til den første feilen.

  5. Skriv  c$	og skriv resten av linjen lik den andre og trykk <ESC>.

---> Slutten på denne linjen trenger litt hjelp for å gjøre den lik den neste.
---> Slutten på denne linjen trenger å bli rettet ved bruk av c$-kommandoen.

MERK: Du kan bruke slettetasten for å rette feil mens du skriver.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 3


  1. For å legge tilbake tekst som nettopp er blitt slettet, trykk  p  . Dette
     limer inn den slettede teksten ETTER markøren (hvis en linje ble slettet
     vil den bli limt inn på linjen under markøren).

  2. For å erstatte et tegn under markøren, trykk  r  og deretter tegnet som
     du vil ha der.

  3. Forandringsoperatoren lar deg forandre fra markøren til dit bevegelsen
     tar deg. Det vil si, skriv  ce  for å forandre fra markøren til slutten
     av ordet,	c$  for å forandre til slutten av linjen.

  4. Formatet for «forandre» er:

	 c   [nummer]	bevegelse

Nå kan du gå til neste leksjon.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Leksjon 4.1: POSISJONERING AV MARKØREN OG FILSTATUS

	** Trykk CTRL-G for å vise posisjonen i filen og filstatusen.
	   Trykk  G  for å gå til en spesifikk linje i filen. **

  Merk: Les hele leksjonen før du utfører noen av punktene!

  1. Hold nede Ctrl-tasten og trykk  g	. Vi kaller dette CTRL-G. En melding
     vil komme til syne på bunnen av skjermen med filnavnet og posisjonen i
     filen. Husk linjenummeret for bruk i steg 3.

Merk: Du kan se markørposisjonen i nederste høyre hjørne av skjermen. Dette
      skjer når «ruler»-valget er satt (forklart i leksjon 6).

  2. Trykk  G  for å gå til bunnen av filen.
     Skriv  gg	for å gå til begynnelsen av filen.

  3. Skriv inn linjenummeret du var på og deretter  G . Dette vil føre deg
     tilbake til linjen du var på da du først trykket CTRL-G.

  4. Utfør steg 1 til 3 hvis du føler deg sikker på prosedyren.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 4.2: SØKEKOMMANDOEN

      ** Skriv	/  etterfulgt av en søkestreng som du vil lete etter. **

  1. Trykk  /  når du er i normalmodusen. Legg merke til at skråstreken og
     markøren kommer til syne på bunnen av skjermen i likhet med
     «:»-kommandoene.

  2. Skriv «feeeiil» og trykk <ENTER>. Dette er teksten du vil lete etter.

  3. For å finne neste forekomst av søkestrengen, trykk  n .
     For å lete etter samme søketeksten i motsatt retning, trykk  N .

  4. For å lete etter en tekst bakover i filen, bruk  ?  istedenfor  /	.

  5. For å gå tilbake til der du kom fra, trykk  CTRL-O  (Hold Ctrl nede mens
     du trykker bokstaven  o ). Repeter for å gå enda lengre tilbake. CTRL-I
     går framover.

---> «feeeiil» er ikke måten å skrive «feil» på, feeeiil er helt feil.
Merk: Når søkingen når slutten av filen, vil den fortsette fra starten unntatt
      hvis «wrapscan»-valget er resatt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 4.3: FINN SAMSVARENDE PARENTESER


	  ** Trykk  %  for å finne en samsvarende ), ] eller } . **

  1. Plasser markøren på en (, [ eller { på linjen nedenfor merket --->.

  2. Trykk  %  .

  3. Markøren vil gå til den samsvarende parentesen eller hakeparentesen.

  4. Trykk  %  for å flytte markøren til den andre samsvarende parentesen.

  5. Flytt markøren til en annen (, ), [, ], { eller } og se hva  %  gjør.

---> Dette ( er en testlinje med (, [ ] og { } i den )).

Merk: Dette er veldig nyttig til feilsøking i programmer som har ubalansert
      antall parenteser!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Leksjon 4.4: ERSTATT-KOMMANDOEN


	** Skriv  :s/gammel/ny/g  for å erstatte «gammel» med «ny». **

  1. Flytt markøren til linjen nedenfor som er merket med --->.

  2. Skriv  :s/deen/den/ <ENTER>  . Legg merke til at denne kommandoen bare
     forandrer den første forekomsten av «deen» på linjen.

  3. Skriv  :s/deen/den/g . Når g-flagget legges til, betyr dette global
     erstatning på linjen og erstatter alle forekomster av «deen» på linjen.

---> deen som kan kaste deen tyngste steinen lengst er deen beste

  4. For å erstatte alle forekomster av en tekststreng mellom to linjer,
     skriv  :#,#s/gammel/ny/g  der #,# er linjenumrene på de to linjene for
			       linjeområdet erstatningen skal gjøres.
     Skriv  :%s/gammel/ny/g    for å erstatte tekst i hele filen.
     Skriv  :%s/gammel/ny/gc   for å finne alle forekomster i hele filen, og
			       deretter spørre om teksten skal erstattes eller
			       ikke.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 4


  1. Ctrl-G viser nåværende posisjon i filen og filstatusen.
	     G	går til slutten av filen.
     nummer  G	går til det linjenummeret.
	    gg	går til den første linjen.

  2. Skriv  /  etterfulgt av en søketekst for å lete FRAMOVER etter teksten.
     Skriv  ?  etterfulgt av en søketekst for å lete BAKOVER etter teksten.
     Etter et søk kan du trykke  n  for å finne neste forekomst i den samme
     retningen eller  N  for å lete i motsatt retning.
     CTRL-O tar deg tilbake til gamle posisjoner, CTRL-I til nyere posisjoner.

  3. Skriv  %  når markøren står på en (, ), [, ], { eller } for å finne den
     som samsvarer.

  4. Erstatte «gammel» med første «ny» på en linje:  :s/gammel/ny
     Erstatte alle «gammel» med «ny» på en linje:    :s/gammel/ny/g
     Erstatte tekst mellom to linjenumre:	     :#,#s/gammel/ny/g
     Erstatte alle forekomster i en fil:	     :%s/gammel/ny/g
     For å godkjenne hver erstatning, legg til «c»:  :%s/gammel/ny/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Leksjon 5.1: HVORDAN UTFØRE EN EKSTERN KOMMANDO


    ** Skriv  :!  etterfulgt av en ekstern kommando for å utføre denne. **

  1. Skriv den velkjente kommandoen  :	 for å plassere markøren på bunnen av
     skjermen. Dette lar deg skrive en kommandolinjekommando.

  2. Nå kan du skrive tegnet  !  . Dette lar deg utføre en hvilken som helst
     ekstern kommando.

  3. Som et eksempel, skriv  ls  etter utropstegnet og trykk <ENTER>. Du vil
     nå få en liste over filene i katalogen, akkurat som om du hadde kjørt
     kommandoen direkte fra kommandolinjen i skallet. Eller bruk  :!dir  hvis
     «ls» ikke virker.

MERK: Det er mulig å kjøre alle eksterne kommandoer på denne måten, også med
      parametere.

MERK: Alle «:»-kommandoer må avsluttes med <ENTER>. Fra dette punktet er det
      ikke alltid vi nevner det.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 5.2: MER OM LAGRING AV FILER


      ** For å lagre endringene gjort i en tekst, skriv  :w FILNAVN. **

  1. Skriv  :!dir  eller  :!ls	for å få en liste over filene i katalogen. Du
     vet allerede at du må trykke <ENTER> etter dette.

  2. Velg et filnavn på en fil som ikke finnes, som for eksempel  TEST .

  3. Skriv  :w TEST  (der TEST er filnavnet du velger).

  4. Dette lagrer hele filen (denne innføringen) under navnet TEST . For å
     sjekke dette, skriv  :!dir  eller	:!ls  igjen for å se innholdet av
     katalogen.

Merk: Hvis du nå hadde avsluttet Vim og startet på nytt igjen med «vim TEST»,
      ville filen vært en eksakt kopi av innføringen da du lagret den.

  5. Fjern filen ved å skrive  :!rm TEST  hvis du er på et Unix-lignende
     operativsystem, eller  :!del TEST	hvis du bruker MS-DOS.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 5.3: VELGE TEKST SOM SKAL LAGRES


     ** For å lagre en del av en fil, skriv  v	bevegelse  :w FILNAVN **

  1. Flytt markøren til denne linjen.

  2. Trykk  v  og flytt markøren til det femte elementet nedenfor. Legg merke
     til at teksten blir markert.

  3. Trykk  :  (kolon). På bunnen av skjermen vil  :'<,'>  komme til syne.

  4. Trykk  w TEST  , der TEST er et filnavn som ikke finnes enda. Kontroller
     at du ser	:'<,'>w TEST  før du trykker Enter.

  5. Vim vil skrive de valgte linjene til filen TEST. Bruk  :!dir  eller  :!ls
     for å se den. Ikke slett den enda! Vi vil bruke den i neste leksjon.

MERK: Ved å trykke  v  startes visuelt valg. Du kan flytte markøren rundt for
      å gjøre det valgte området større eller mindre. Deretter kan du bruke en
      operator for å gjøre noe med teksten. For eksempel sletter  d  teksten.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 5.4: HENTING OG SAMMENSLÅING AV FILER


 ** For å lese inn en annen fil inn i nåværende buffer, skriv  :r FILNAVN  **

  1. Plasser markøren like over denne linjen.

MERK: Etter å ha utført steg 2 vil du se teksten fra leksjon 5.3. Gå deretter
      NED for å se denne leksjonen igjen.

  2. Hent TEST-filen ved å bruke kommandoen  :r TEST  der TEST er navnet på
     filen du brukte. Filen du henter blir plassert nedenfor markørlinjen.

  3. For å sjekke at filen ble hentet, gå tilbake og se at det er to kopier av
     leksjon 5.3, originalen og denne versjonen.

MERK: Du kan også lese utdataene av en ekstern kommando. For eksempel,	:r !ls
      leser utdataene av ls-kommandoen og legger dem nedenfor markøren.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 5


  1.  :!kommando  utfører en ekstern kommandio.

      Noen nyttige eksempler er:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		  - List filene i katalogen.
	  :!del FILNAVN    :!rm FILNAVN   - Slett filen FILNAVN.

  2.  :w FILNAVN  skriver den nåværende Vim-filen disken med navnet FILNAVN .

  3.  v  bevegelse  :w FILNAVN	lagrer de visuelt valgte linjene til filen
     FILNAVN.

  4.  :r FILNAVN  henter filen FILNAVN og legger den inn nedenfor markøren.

  5.  :r !dir  leser utdataene fra «dir»-kommandoen og legger dem nedenfor
     markørposisjonen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 6.1: «ÅPNE LINJE»-KOMMANDOEN


    ** Skriv  o  for å «åpne opp» for en ny linje etter markøren og gå til
       innsettingsmodus **

  1. Flytt markøren til linjen nedenfor merket --->.

  2. Skriv  o  (liten o) for å åpne opp en linje NEDENFOR markøren og gå inn i
     innsettingsmodus.

  3. Skriv litt tekst og trykk <ESC> for å gå ut av innsettingsmodusen.

---> Etter at  o  er skrevet blir markøren plassert på den tomme linjen.

  4. For å åpne en ny linje OVER markøren, trykk rett og slett en stor	O
     istedenfor en liten  o . Prøv dette på linjen nedenfor.

---> Lag ny linje over denne ved å trykke O mens markøren er på denne linjen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 6.2: «LEGG TIL»-KOMMANDOEN


	    ** Skriv  a  for å legge til tekst ETTER markøren. **

  1. Flytt markøren til starten av linjen merket ---> nedenfor.

  2. Trykk  e  til markøren er på slutten av «li».

  3. Trykk  a  (liten a) for å legge til tekst ETTER markøren.

  4. Fullfør ordet sånn som på linjen nedenfor. Trykk <ESC> for å gå ut av
     innsettingsmodusen.

  5. Bruk  e  for å gå til det neste ufullstendige ordet og repeter steg 3 og
     4.

---> Denne li lar deg øve på å leg til tek på en linje.
---> Denne linjen lar deg øve på å legge til tekst på en linje.

Merk: a, i og A går alle til den samme innsettingsmodusen, den eneste
      forskjellen er hvor tegnene blir satt inn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 6.3: EN ANNEN MÅTE Å ERSTATTE PÅ


	   ** Skriv en stor  R	for å erstatte mer enn ett tegn. **

  1. Flytt markøren til den første linjen nedenfor merket --->. Flytt markøren
     til begynnelsen av den første «xxx»-en.

  2. Trykk  R  og skriv inn tallet som står nedenfor på den andre linjen så
     det erstatter xxx.

  3. Trykk <ESC> for å gå ut av erstatningsmodusen. Legg merke til at resten
     av linjen forblir uforandret.

  4. Repeter stegene for å erstatte den gjenværende xxx.

---> Ved å legge 123 til xxx får vi xxx.
---> Ved å legge 123 til 456 får vi 579.

MERK: Erstatningsmodus er lik insettingsmodus, men hvert tegn som skrives
      erstatter et eksisterende tegn.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Leksjon 6.4: KOPIERE OG LIME INN TEKST


    ** Bruk y-operatoren for å kopiere tekst og  p  for å lime den inn **

  1. Gå til linjen merket ---> nedenfor og plasser markøren etter «a)».

  2. Gå inn i visuell modus med  v  og flytt markøren til like før «første».

  3. Trykk  y  for å kopiere (engelsk: «yank») den uthevede teksten.

  4. Flytt markøren til slutten av den neste linjen:  j$

  5. Trykk  p  for å lime inn teksten. Trykk deretter:	a andre <ESC> .

  6. Bruk visuell modus for å velge « valget.», kopier det med	y , gå til
     slutten av den neste linjen med  j$  og legg inn teksten der med  p .

---> a) Dette er det første valget.
     b)

Merk: Du kan også bruke  y  som en operator;  yw  kopierer ett ord.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 6.5: SETT VALG


  ** Sett et valg så søk eller erstatning ignorerer store/små bokstaver. **

  1. Let etter «ignore» ved å skrive:  /ignore <ENTER>
     Repeter flere ganger ved å trykke	n .

  2. Sett «ic»-valget (Ignore Case) ved å skrive:  :set ic

  3. Søk etter «ignore» igjen ved å trykke  n .
     Legg merke til at både «Ignore» og «IGNORE» blir funnet.

  4. Sett «hlsearch»- og «incsearch»-valgene:  :set hls is

  5. Skriv søkekommandoen igjen og se hva som skjer:  /ignore <ENTER>

  6. For å slå av ignorering av store/små bokstaver, skriv:  :set noic

Merk: For å fjerne uthevingen av treff, skriv:	:nohlsearch
Merk: Hvis du vil ignorere store/små bokstaver for kun en søkekommando, bruk
      \c  i uttrykket:	/ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 6

  1. Trykk  o  for å legge til en linje NEDENFOR markøren og gå inn i
     innsettingsmodus.
     Trykk  O  for å åpne en linje OVER markøren.

  2. Skriv  a  for å sette inn tekst ETTER markøren.
     Skriv  A  for å sette inn tekst etter slutten av linjen.

  3. Kommandoen  e  går til slutten av et ord.

  4. Operatoren  y  («yank») kopierer tekst,  p  («paste») limer den inn.

  5. Ved å trykke  R  går du inn i erstatningsmodus helt til  <ESC>  trykkes.

  6. Skriv «:set xxx» for å sette valget «xxx». Noen valg er:
	«ic» «ignorecase»	ignorer store/små bokstaver under søk
	«is» «incsearch»	vis delvise treff for en søketekst
	«hls» «hlsearch»	uthev alle søketreff

  7. Legg til «no» foran valget for å slå det av:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 7.1: FÅ HJELP


		   ** Bruk det innebygde hjelpesystemet. **

  Vim har et omfattende innebygget hjelpesystem. For å starte det, prøv en av
  disse måtene:
    - Trykk Hjelp-tasten (hvis du har en)
    - Trykk F1-tasten (hvis du har en)
    - Skriv  :help <ENTER>

  Les teksten i hjelpevinduet for å finne ut hvordan hjelpen virker.
  Skriv  CTRL-W CTRL-W	for å hoppe fra et vindu til et annet
  Skriv  :q <ENTER>	for å lukke hjelpevinduet.

  Du kan få hjelp for omtrent alle temaer om Vim ved å skrive et parameter til
  «:help»-kommandoen. Prøv disse (ikke glem å trykke <ENTER>):

    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 7.2: LAG ET OPPSTARTSSKRIPT


			** Slå på funksjoner i Vim **

  Vim har mange flere funksjoner enn Vi, men flesteparten av dem er slått av
  som standard. For å begynne å bruke flere funksjoner må du lage en
  «vimrc»-fil.

  1. Start redigeringen av «vimrc»-filen. Dette avhenger av systemet ditt:
	:e ~/.vimrc	  for Unix
	:e $VIM/_vimrc	  for MS Windows

  2. Les inn eksempelfilen for «vimrc»:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Lagre filen med:
	:w

  Neste gang du starter Vim vil den bruke syntaks-utheving. Du kan legge til
  alle dine foretrukne oppsett i denne «vimrc»-filen.
  For mer informasjon, skriv  :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Leksjon 7.3: FULLFØRING


	      ** Kommandolinjefullføring med CTRL-D og <TAB> **

  1. Vær sikker på at Vim ikke er i Vi-kompatibel modus:  :set nocp

  2. Se hvilke filer som er i katalogen:  :!ls	eller  :!dir

  3. Skriv starten på en kommando:  :e

  4. Trykk  CTRL-D  og Vim vil vise en liste over kommandoer som starter med
     «e».

  5. Trykk  <TAB>  og Vim vil fullføre kommandonavnet til «:edit».

  6. Legg til et mellomrom og starten på et eksisterende filnavn:  :edit FIL

  7. Trykk <TAB>. Vim vil fullføre navnet (hvis det er unikt).

MERK: Fullføring fungerer for mange kommandoer. Prøv ved å trykke CTRL-D og
      <TAB>. Det er spesielt nyttig for bruk sammen med  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 7


  1. Skriv  :help  eller trykk <F1> eller <Help> for å åpne et hjelpevindu.

  2. Skriv  :help kommando  for å få hjelp om  kommando .

  3. Trykk  CTRL-W CTRL-W  for å hoppe til et annet vindu.

  4. Trykk  :q	for å lukke hjelpevinduet.

  5. Opprett et vimrc-oppstartsskript for å lagre favorittvalgene dine.

  6. Når du skriver en «:»-kommando, trykk CTRL-D for å se mulige
     fullføringer. Trykk <TAB> for å bruke en fullføring.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Her slutter innføringen i Vim. Den var ment som en rask oversikt over
  editoren, akkurat nok til å la deg sette i gang med enkel bruk. Den er på
  langt nær komplett, da Vim har mange flere kommandoer. Les bruksanvisningen
  ved å skrive	:help user-manual  .

  For videre lesing og studier, kan denne boken anbefales:
      «Vim - Vi Improved» av Steve Oualline
      Utgiver: New Riders
  Den første boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
  nybegynnere. Inneholder mange eksempler og illustrasjoner.
  Se http://iccf-holland.org/click5.html

  Denne boken er eldre og handler mer om Vi enn Vim, men anbefales også:
      «Learning the Vi Editor» av Linda Lamb
      Utgiver: O'Reilly & Associates Inc.
  Det er en god bok for å få vite omtrent hva som helst om Vi.
  Den sjette utgaven inneholder også informasjon om Vim.

  Denne innføringen er skrevet av Michael C. Pierce og Robert K. Ware,
  Colorado School of Mines med idéer av Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu .

  Modifisert for Vim av Bram Moolenaar.
  Oversatt av Øyvind A. Holm. E-mail: vimtutor _AT_ sunbase.org
  Id: tutor.no 406 2007-03-18 22:48:36Z sunny

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim: set ts=8 :
PK�j�Z�I�O
v
vvim80/tutor/tutor.el.cp737nu�[���===============================================================================
=    � �� � � � � � � � �    � � �   V I M   T u t o r    -    롛��� 1.5     =
===============================================================================

     � Vim �夘� ⤘� ���婮���� ����ᡫ�� ��� ⮜� ����� ������, �ᨘ
     ����� ��� �� ����㩦��� �� �� ����㚞�� �� ����. ���� � ����㚞��
     �����ᩫ��� ��� �� ������ᯜ� ������������� ��� ������ ��� �� ���
     �ᤦ�� �� �����������嫜 �硦�� ��� Vim ��� ⤘� ������ ��㩞� ����ᡫ�.

     � ���� ����⚚��� ��椦� ��� ������嫘� ��� �� �������驜�� ��� ����㚞��
     �夘� 25-30 �����, �����餫�� ��� �� �橦 ��椦 �� ���⯜�� ���
     �������������.

     �� ������ ��� ���㣘�� �� ��������㩦�� �� ��壜��. ��������㩫� ⤘
     ���嚨��� ����� ��� ����妬 ��� �� ��������嫜 (�� �����㩘�� ��
     "Vimtutor" ���� �夘� 㛞 ⤘ ���嚨���).

     �夘� ��������� �� ���ᩫ� 櫠 ���� � ����㚞�� �夘� ������⤞ ⫩�
     驫� �� ���ᩡ�� ��� ��� ��㩞�. ���� ����夜� 櫠 ����᝜��� ��
     ������嫜 ��� ������ ��� �� ��� �ៜ�� �੫�. �� ����᝜�� �椦 ��
     ��壜��, �� ��� ���ᩜ��!

     �騘, ������嫜 櫠 �� ��㡫�� Caps-Lock ��� �夘� �����⤦ ���
     ���㩫� �� ��㡫�� j ������ ���� ��� �� �������㩜�� ��� ����� ⫩�
     驫� �� �៞�� 1.1 �� ���婜� ���� ��� ��椞.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      �៞�� 1.1:  ������������ ��� ������

  ** ��� �� ���㩜�� ��� �����, ���㩫� �� ��㡫�� h,j,k,l �� ��室����. **
	     ^
	     k	      Hint: �� ��㡫�� h �夘� �������� ��� ����� ��' ��������.
       < h	 l >	    �� ��㡫�� l �夘� ����� ��� ����� ��� �����.
	     j		    �� ��㡫�� j ���᝜� �� ���ᡠ ���� �� ���.
	     v

  1. ��������婫� ��� ����� ������ ���� ��椞 �⮨� �� ���韜�� ᤜ��.

  2. ����㩫� �����⤦ �� ��� ��㡫�� (j) �⮨� �� �����������.
---> �騘 �⨜�� �� �� ����������嫜 ��� ��棜�� �៞��.

  3. ����������餫�� �� ��� ��㡫��, ����������嫜 ��� �៞�� 1.2.

�����ਫ਼: �� �����ᢢ��� ��� �᫠ ��� ���㩘��, ���㩫� <ESC> ��� �� �����嫜
	  ���� �������� ���ᩫ���. ���� ���㩫� ���� ��� ������ ��� �⢘��.

�����ਫ਼: �� ��㡫�� ��� ����� �� ��⧜� ��婞� �� �����禬�. ���� �� �� hjkl
	  �� �����嫜 �� ������嫜 ���� ������櫜��, �梠� �� �����婜��.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		�៞�� 1.2:  ���������� ��� ���������� ���� VIM

  !! ��������: ���� �����⩜�� �᧦�� ��� �� �㣘��, ����ᩫ� 梦 �� �៞��!!

  1. ���㩫� �� ��㡫�� <ESC> (��� �� �婫� �嚦��� ���� �������� ���ᩫ���).

  2. ����������㩫�:		:q! <ENTER>.

---> ���� ��⨮���� ��� ��� ����ᡫ� ����� �� �驜� 槦��� ������ ⮜�� �ᤜ�.
     �� �⢜�� �� �驜�� ��� ������ ��� �� ��⨟��� ����������㩫�:
	      :wq <ENTER>

  3. � ��嫜 ��� �������� ��� ������, ����������㩫� ��� ������ �� ��� ����
     ��㡘�� �� ���� ��� ����㚞��. ������ �� �夘�:	vimtutor <ENTER>
     �������� �� �����������穘��:			vim tutor <ENTER>

---> 'vim' ����夜� ������� ���� ����ᡫ� vim, 'tutor' �夘� �� ����� ���
     �⢦��� �� �����驦���.

  4. �� ⮜�� ����������穜� ���� �� �㣘�� ��� ⮜�� ��������埞��, �����⩫�
     �� �㣘�� 1 �� 3 ��� �� ���嫜 ��� �� ���嫜 ���� ���� ����ᡫ�. ����
     �������㩫� ��� ����� ��� ��� �៞�� 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �៞�� 1.3:  �������� �������� - ��������

   **  �婫� ���� �������� ���ᩫ��� ���㩫�  x  ��� �� �����ᯜ�� ���
      ������㨘 ��� ��� ��� �����. **

  1. ��������婫� ��� ����� ���� ������� ������ ������⤞ �� --->.

  2. ��� �� �����驜�� �� �៞, ����婫� ��� ����� �⮨� �� �夘� ��� ���
     ��� ������㨘 ��� �� ���������.

  3. ���㩫� �� ��㡫�� x ��� �� �����ᯜ�� ��� ������磞�� ������㨘.

  4. ������ᙜ�� �� �㣘�� 2 �⮨� 4 �⮨� � ��櫘�� �� �夘� �੫�.

---> The ccow jumpedd ovverr thhe mooon.

  5. �騘 ��� � ������ �夘� �੫�, ����夫� ��� �៞�� 1.4.

��������: ���� �����⮜�� ���� ��� ����㚞��, �������㩫� �� ���
	  ����������眫�, ����夜�� �� �� ��㩞.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �៞�� 1.4: �������� �������� - ���������

 **  �婫� �� �������� ���ᩫ��� ���㩫�  i  ��� �� ������ᢢ��� ��壜��. **

  1. ��������婫� ��� ����� �⮨� ��� ��髞 ������ ������� ������⤞ �� --->.

  2. ��� �� �ᤜ�� ��� ��髞 ������ 因� �� ��� ��竜��, ��������婫� ���
     ����� ��� ���� ��髦 ������㨘 ���� ��� 槦� �� ����������� �� ��壜��.

  3. ���㩫� ��  i  ��� ����������㩫� ��� �����嫞��� �����㡜�.

  4. ���� �����餜�� �ៜ �៦� ���㩫� <ESC> ��� �� ������⯜�� ����
     �������� ���ᩫ���. ������ᙜ�� �� �㣘�� 2 �⮨� 4 ��� �� �����驜��
     ��� ��櫘��.

---> There is text misng this .
---> There is some text missing from this line.

  5. � �婫� ᤜ��� �� ��� ��������� ����⤦� ����������嫜 ����
     ������� ���增��.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ������ 1 ��������


  1. � ����☪ ����嫘� ����������餫�� �嫜 �� ��㡫�� ����� � �� hjkl.
	 h (�����⨘)	j (���)	k (���)	l (�����)

  2. ��� �� ���嫜 ���� Vim (��� ��� �������� %) ��ᯫ�:  vim ������ <ENTER>

  3. ��� �� ���嫜 ��ᯫ�:  <ESC>   :q!   <ENTER>   ��� ��樨��� �� ������.
		 � ��ᯫ�:  <ESC>   :wq   <ENTER>   ��� ����㡜��� �� ������.

  4. ��� �� �����ᯜ�� ⤘� ������㨘 ��� ��� ��� ����� ��
     �������� ���ᩫ��� ���㩫�:  x

  5. ��� �� ���᚜�� ��壜�� ���� ����� 橦 �婫� �� �������� ���ᩫ��� ��ᯫ�:
	 i     ����������㩫� �� ��壜��	<ESC>

��������: ���餫�� <ESC> �� ����������嫜 ���� �������� ���ᩫ��� � ��
	  ����驜�� �� ������磞�� ��� ������ ��������⤞ ������.

�騘 �����婫� �� �� �៞�� 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 �៞�� 2.1: ������� ���������

	 ** ��ᯫ�  dw  ��� �� �����ᯜ�� �⮨� �� �⢦� �嘪 �⥞�. **

  1. ���㩫�  <ESC>  ��� �� ������嫜 櫠 �婫� ���� �������� ���ᩫ���.

  2. ��������婫� ��� ����� ���� ������� ������ ������⤞ �� --->.

  3. ����夜�� ��� ����� ���� ���� ��� �⥞� ��� ��⧜� �� ���������.

  4. ��ᯫ�  dw  ��� �� �ᤜ�� ��� �⥞ �� �����������.

��������: �� ��ᣣ��� dw �� ���������� ���� �������� ������ ��� ��椞� 橦
	  �� �����������嫜. �� ��ᯘ�� �᫠ �៦�, ���㩫�  <ESC>  ���
	  �����㩫� ��� ��� ����.

---> There are a some words fun that don't belong paper in this sentence.

  5. ������ᙜ�� �� �㣘�� 3 ��� 4 �⮨� � ��櫘�� �� �夘� �੫� ���
     ����夜�� ��� �៞�� 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �៞�� 2.2: ������������ ������� ���������

    ** ����������㩫�  d$  ��� �� �����ᯜ�� �⮨� �� �⢦� ��� ������. **

  1. ���㩫�  <ESC>  ��� �� ������嫜 櫠 �婫� ���� �������� ���ᩫ���.

  2. ��������婫� ��� ����� ���� ������� ������ ������⤞ �� --->.

  3. ��������婫� ��� ����� ��� �⢦� ��� �੫� ������ (���� ��� ��髞 . ).

  4. ���㩫�   d$   ��� �� �����ᯜ�� �⮨� �� �⢦� ��� ������.

---> Somebody typed the end of this line twice. end of this line twice.

  5. ����夜�� ��� �៞�� 2.3 ��� �� �����ᙜ�� �� �����夜�.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �៞�� 2.3: ���� ������� ��� ������������


� ����� ��� ������ ��������  d  �夘� � ���:

	 [������]   d   ������壜��	�	d   [������]   ������壜��
  �:
    ������ - �橜� ���� �� ���������� � ������ (�����������, ��' �������=1).
    d - � ������ ��� ��������.
    ������壜�� - ��� �� �� �� ��������㩜� � ������ (������� �婫�).

  �� ����� �婫� ��� ������壜��:
    w - ��� ��� ����� �⮨� �� �⢦� ��� �⥞�, ��������ᤦ���� �� ��ᩫ���.
    e - ��� ��� ����� �⮨� �� �⢦� ��� �⥞�, ����� �� ��ᩫ���.
    $ - ��� ��� ����� �⮨� �� �⢦� ��� ������.

��������:  ��� ���� �秦�� ��� �����⫝̸���, ���餫�� ���� �� ������壜�� 橦
	   �婫� ���� �������� ���ᩫ��� ��� �᧦�� ������ �� �������㩜��
	   ��� ����� �� �����坜��� ���� �婫� ����������.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       �៞�� 2.4: ��� �������� ���� '������-�����������'

	   ** ����������㩫�  dd  ��� �� �����ᯜ�� 梞 �� ������. **

  �����嘪 ��� ����櫞��� ��� �������� ��桢���� ������, �� ���������
  ��� Vim ����᩠��� 櫠 �� 㫘� �����櫜�� �� ��᭜�� ���� �� d ���
  ����� ��� �� �����ᯜ�� �� ������.

  1. ��������婫� ��� ����� ��� ��竜�� ������ ��� ������� ��ᩞ�.
  2. ��ᯫ�  dd  ��� �� �����ᯜ�� �� ������.
  3. �騘 ����������嫜 ���� �⫘��� ������.
  4. ��ᯫ�  2dd  (������嫜  ������-������-������壜��) ��� ��
     �����ᯜ�� �� ������.

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 �៞�� 2.5: � ������ ���������

	    ** ���㩫�  u  ��� �� �����⩜�� ��� �������圪 ������,
	       U ��� �� �����驜�� 梞 �� ������. **

  1. ��������婫� ��� ����� ���� ������� ������ ������⤞ �� ---> ���
     �������㩫� ��� ��� ��� ��髦 �៦�.
  2. ���㩫�  x  ��� �� �����ᯜ�� ��� ��髦 ������磞�� ������㨘.
  3. �騘 ���㩫�  u  ��� �� �����⩜�� ��� �������� ��������⤞ ������.
  4. ���� �� ���� �����驫� 梘 �� �៞ ��� ������ ����������餫�� ��� ������ x.
  5. �騘 ���㩫� ⤘ �������  U  ��� �� ������⯜�� �� ������ ���� ������
     ��� ���ᩫ���.
  6. �騘 ���㩫�  u  ������ ���� ��� �� �����⩜�� ���  U  ���
     ������磜��� ������.
  7. �騘 ���㩫� CTRL-R (����餫�� �����⤦ �� ��㡫�� CTRL ���� ���᫜ �� R)
     ������ ���� ��� �� ������⨜�� ��� ������ (���娜�� �� �����⩜�).

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. ���� �夘� ���� ��㩠��� ������.  �騘 ����夜�� ����
     ���增�� ��� ���㣘��� 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ������ 2 ��������


  1. ��� �� �����ᯜ�� ��� ��� ����� �⮨� �� �⢦� �⥞� ��ᯫ�:      dw

  2. ��� �� �����ᯜ�� ��� ��� ����� �⮨� �� �⢦� ������ ��ᯫ�:    d$

  3. ��� �� �����ᯜ�� ��桢��� �� ������ ��ᯫ�:    dd

  4. � ����� ��� �� ������ ���� �������� ���ᩫ��� �夘�:

      [������]   ������   ������壜��    �    ������   [������]   ������壜��
     槦�:
       ������ - �橜� ���� �� ����������� � ������
       ������ - �� �� �夜�, �� �  d  ��� ��������
       ������壜�� - ��� �� �� �� �����㩜� � ������, ��  w  (�⥞),
		     $ (�⢦� ��� ������), ���.

  5. ��� �� �����⩜�� ������磜��� ��⨚����, ���㩫�:        u   (���� u)
     ��� �� �����⩜�� 梜� ��� ������ ��� ������, ���㩫�:  U  (������� U)
     ��� �� �����⩜�� ��� �����⩜��, ���㩫�:               CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�៞�� 3.1: � ������ �����������


  ** ���㩫�  p  ��� �� �������㩜�� ��� �������� �������� ���� ��� �����.  **

  1. ��������婫� ��� ����� ���� ��髞 ������ ��� ������� ��ᛘ�.

  2. ���㩫�  dd  ��� �� �����ᯜ�� �� ������ ��� �� ��� �������穜�� ��
     ����ਠ�� ��㣞 ��� Vim.

  3. ��������婫� ��� ����� ��� ������ ���� ��� ���� ��� �� ��⧜� �� �ᜠ
     � ��������⤞ ������.

  4.  �婫� �� �������� ���ᩫ���, ���㩫�  p  ��� �� �ᢜ�� �� ������.

  5. ������ᙜ�� �� �㣘�� 2 �� 4 ��� �� �ᢜ�� 梜� ��� ������ ���
     �੫� �����.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      �៞�� 3.2: � ������ ��������������


    ** ���㩫�  r  ��� ������㨘 ��� �� ���ᥜ�� ���� ��� �夘�
       ��� ��� ��� �����. **

  1. ��������婫� ��� ����� ���� ��髞 ������ ������� ������⤞ �� --->.

  2. ��������婫� ��� ����� ⫩� 驫� �� �夘� ��� ��� ��髦 �៦�.

  3. ���㩫�  r  ��� ���� ��� ������㨘 � ���妪 �����餜� �� �៦�.

  4. ������ᙜ�� �� �㣘�� 2 ��� 3 �⮨� �� �夘� �੫� � ��髞 ������.

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. �騘 ����夜�� ��� �៞�� 3.2.

��������: �� ���ᩫ� 櫠 ��⧜� �� ����夜�� �� �� ��㩞, ��� 殠 ��
	  ��� �������検���.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  �៞�� 3.3: � ������ �������

	   ** ��� �� ���ᥜ�� ��㣘 � 梞 �� �⥞, ���㩫�  cw  . **

  1. ��������婫� ��� ����� ���� ��髞 ������ ������� ������⤞ �� --->.

  2. �������㩫� ��� ����� ��� ��� u ��� �⥞� lubw.

  3. ���㩫�  cw  ��� �� �੫� �⥞ (���� ���姫ਫ਼ ����, ��ᯫ�  'ine'.)

  4. ���㩫� <ESC> ��� ����夜�� ��� ��棜�� �៦� (���� ��髦
     ������㨘 ���� ������).

  5. ������ᙜ�� �� �㣘�� 3 ��� 4 �⮨�� 櫦� � ��髞 ��櫘�� �� �夘�
     因� �� �� ��竜��.

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

��������婫� 櫠 �  cw  殠 �椦 ����������ᜠ �� �⥞, ���� ��� ���᚜�
��婞� �� ���������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �៞�� 3.4: ������������ ������� �� c


  ** � ������ ������ �����������嫘� �� �� 因� ������壜�� ��� ��������. **


  1. � ������ ������ �����眠 �� ��� 因� ��槦 �� � ��������. � ����� �夘�:

       [������]   c   ������壜��     �     c   [������]   ������壜��

  2. �� ������壜�� �夘� �ᢠ �� 因�, �� w (�⥞), $ (�⢦� ������), ���.

  3. ����������嫜 ���� ��髞 ������ ������� ������⤞ �� --->.

  4. ��������婫� ��� ����� ��� ��髦 �៦�.

  5. ��ᯫ�  c$  ��� �� �ᤜ�� �� ��梦��� ��� ������ 因� �� �� ��竜��
     ��� ���㩫� <ESC>.

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ������ 3 ��������


  1. ��� �� �������㩜�� ��壜�� ��� �梠� ⮜� ���������, ���㩫�  p .
     ���� ��������� �� ��������⤦ ��壜�� ���� ��� ����� (�� �����᭫���
     ������ �� �ᜠ ���� ��� ������ ��� ��� ��� �����.

  2. ��� �� ����������㩜�� ��� ������㨘 ��� ��� ��� �����, ���㩫�  r
     ��� ���� ��� ������㨘 ��� �� ����������㩜� ��� ������.

  3. � ������ ������ ��� �����⧜� �� ���ᥜ�� �� ��������⤦ ������壜��
     ��� ��� ����� �⮨� �� �⢦� ��� ������壜��. �.�. ��ᯫ�  cw  ��� ��
     ���ᥜ�� ��� ��� ����� �⮨� �� �⢦� ��� �⥞�, c$ ��� �� ���ᥜ��
     �⮨� �� �⢦� ������.

  4. � ����� ��� ��� ������ �夘�:

	 [������]   c   ������壜��     �     c   [������]   ������壜��

�騘 �����婫� �� �� ��棜�� �៞��.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �៞�� 4.1: ���� ��� ��������� �������


 ** ���㩫� CTRL-g ��� �� ���������� � �⩞ ��� ��� ����� ��� � ���ᩫ��� ���.
    ���㩫� SHIFT-G ��� �� �᫜ �� �� ������ ��� �����. **

  �����ਫ਼: ����ᩫ� ��桢��� �� �៞�� ���� �����⩜�� �᧦�� ��� �� �㣘��!!

  1. ����㩫� �����⤦ �� ��㡫�� Ctrl ��� ���㩫�  g . �� ������ ���ᩫ����
     �� ���������� ��� ��� �⨦� ��� ���囘� �� �� 椦�� ����妬 ��� ��
     ������ ��� �婫�. ������嫜 ��� ������ ������ ��� �� �㣘 3.

  2. ���㩫� shift-G ��� �� ����������嫜 ��� �⢦� ��� ����妬.

  3. ���㩫� ��� ������ ��� ������ ��� 㩘���� ��� ���� shift-G. ���� ��
     ��� ������⯜� ��� ������ ��� 㩘���� ���� ���㩜�� ��� ��髞 ���� Ctrl-g.
     (� �����������嫜 ���� �������, ��� �� �����坦���� ���� ��椞).

  4. �� ���韜�� �嚦���� ��� ����, �����⩫� �� �㣘�� 1 �� 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�៞�� 4.2: � ������ ����������


	  ** ���㩫�   /   ��������磜�� ��� �� ��ᩞ ��� �ᮤ���. **

  1. �� �������� ���ᩫ��� ���㩫� ��� ������㨘  / . �������㩫� 櫠 ���� ���
     � ����☪ �����坦���� ��� ��� �⨦� ��� ��椞� �� �� ��� ������  : .

  2. �騘 ��ᯫ� 'errroor' <ENTER>. ���� �夘� � �⥞ ��� �⢜�� �� �ᥜ��.

  3. ��� �� �ᥜ�� ���� ��� ��� 因� ��ᩞ, ���㩫� ����  n .
     ��� �� �ᥜ�� ��� 因� ��ᩞ ���� ���埜�� ����矬���, ���㩫�  Shift-N .

  4. �� �⢜�� �� �ᥜ�� ��� �� ��ᩞ ���� �� ���, ����������㩫� ��� ������  ?  ���� ���  / .

---> � � ����㫞�� ��ᩜ� ��� �⢦� ��� ����妬 �� �����婜� ��� ��� ����.

  "errroor" is not the way to spell error;  errroor is an error.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �៞�� 4.3: ������ ���������� �����������


	  ** ���㩫�   %   ��� �� ���嫜 ��� ���婫���� ), ], � } . **

  1. �������㩫� ��� ����� �� �᧦�� (, [, � { ���� ������� ������
     ������⤞ �� --->.

  2. �騘 ���㩫� ��� ������㨘  % .

  3. � ����☪ �� ��⧜� �� �夘� ���� ���婫���� ���⤟��� � ���碞.

  4. ���㩫�  %  ��� �� �������㩜�� ��� ����� ��� ���� ��髞 ���碞
    (��� ���������).

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

��������: ���� �夘� ���� ��㩠�� ���� ���������ਫ਼ ��� �����ᣣ����
	  �� �� ��������� ������⩜��!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    �៞�� 4.4: ���� ������ ��� ������ �����


       ** ��ᯫ�  :s/old/new/g  ��� �� ���ᥜ�� �� 'new' �� �� 'old'. **

  1. ��������婫� ��� ����� ���� ������� ������ ������⤞ �� --->.

  2. ��ᯫ�  :s/thee/the <ENTER> . �����驫� 櫠 ���� � ������ ���᝜� �椦
     ��� ��髞 ���ᤠ�� ��� ������.

  3. �騘 ��ᯫ�   :s/thee/the/g    ����餫�� ������ �������ᩫ��� ���
     ������. ���� ���᝜� 梜� ��� �����婜�� ��� ��� ������.

---> thee best time to see thee flowers is in thee spring.

  4. ��� �� ���ᥜ�� �ៜ ���ᤠ�� �嘪 ������������ ������ �� ������,
     ��ᯫ�   :#,#s/old/new/g   槦� #,# �� ������� �� �� ������.
     ��ᯫ�   :%s/old/new/g     ��� �� ���ᥜ�� �ៜ ���ᤠ�� �� 梦 �� �����.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ������ 4 ��������


  1. ��  Ctrl-g  �����坜� �� �⩞ ��� ��� ����� ��� ��� ���ᩫ��� ���.
     ��  Shift-G  ����夜� ��� �⢦� ��� ����妬. 뤘� ������ ������
     ��������磜��� ���  Shift-G  ����夜� �� ���夞 �� ������.

  2. ��᭦����  /  ��������磜�� ��� �� ��ᩞ �ᮤ�� ���� �� ������� ���
     �� ��ᩞ. ��᭦����  ?  ��������磜�� ��� �� ��ᩞ �ᮤ�� ���� �� ����
     ��� �� ��ᩞ. ���� ��� �� ����㫞�� ���㩫�  n  ��� �� ���嫜 ���
     ��棜�� ���ᤠ�� ���� ��� 因� ����矬��� �  Shift-N  ��� �� �ᥜ��
     ���� ��� ���埜�� ����矬���.

  3. ���餫��  %  橦 � ����☪ �夘� ��� �� �� (,),[,],{, � }  �����坜�
     �� ���婫���� ��娠 ��� ���������.

  4. ��� �������ᩫ��� �� new ��� ��髦� old ��� ������ ��ᯫ�  :s/old/new
     ��� �������ᩫ��� �� new �� �� 'old' ��� ������ ��ᯫ�  :s/old/new/g
     ��� �������ᩫ��� ��ᩜ� ������ �� # ������ ��ᯫ�      :#,#s/old/new/g
     ��� �������ᩫ��� �� �� �����婜� ��� ����� ��ᯫ�    :%s/old/new/g
     ��� ��髞�� ��������ਫ਼� �ៜ ���� �����⩫� ⤘ 'c'       "%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  �៞�� 5.1: ��� ������ ��� ��������� ������


** ��ᯫ�  :!  ��������磜�� ��� �� ��૜���� ������ ��� �� ��� �����⩜��. **

  1. ���㩫� ��� ����� ������  :  ��� �� �⩜�� ��� ����� ��� ��� �⨦�
     ��� ��椞�. ���� ��� �����⧜� �� �驜�� �� ������.

  2. �騘 ���㩫�  ��  !  (����������). ���� ��� �����⧜� �� �����⩜��
     ������㧦�� ��૜���� ������ ��� ������.

  3. ��� ���ᛜ���� ��ᯫ�  ls  ���� ��� �� ! ��� ���㩫� <ENTER>. ���� ��
     ��� �����婜� �� �婫� ��� �����暦� ���, ������ ��� �� 㩘���� ����
     �������� ��� ������. � ����������㩫�  :!dir  �� �� ls ��� �����眠.

---> �����ਫ਼: �夘� ������ �� �����⩜�� ������㧦�� ��૜���� ������
     �� ���� ��� ��槦.

---> �����ਫ਼: � �� ������  :  ��⧜� �� ������坦���� ���餫�� �� <ENTER>.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 �៞�� 5.2: ����������� ���� �������� �������


   ** ��� �� �驜�� ��� ���᚜� ��� �ᤘ�� ��� �����, ��ᯫ�  :w ������.  **

  1. ��ᯫ�  :!dir  �  :!ls  ��� �� �᨜�� �� �婫� ��� �����暦� ���.
     웞 �⨜�� 櫠 ��⧜� �� ���㩜�� <ENTER> ���� ��� ����.

  2. ����⥫� ⤘ 椦�� ����妬 ��� ��� ��ᨮ�� ��棘, �� �� TEST.

  3. �騘 ��ᯫ�:  :w TEST  (槦� TEST �夘� �� 椦�� ����妬 ��� ����⥘��).

  4. ���� �靜� 梦 �� ����� (vim Tutor) �� �� 椦�� TEST. ��� �� ��
     �������穜��, ��ᯫ� ����  :!dir ��� �� ��嫜 ��� ���ᢦ�� ���.

---> �����驫� 櫠 �� ���夘�� ��� ��� Vim ��� ���夘�� ���� �� �� 椦��
     ����妬 TEST, �� ����� �� 㫘� ������ ���嚨��� ��� tutor 櫘� �� �驘��.

  5. �騘 �����ᯫ� �� ����� ��᭦���� (MS-DOS):      :!del TEST



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �៞�� 5.3: ���������� ������ ��������


	  ** ��� �� �驜�� ��㣘 ��� ����妬, ��ᯫ�  :#,# w ������ **

  1. ꢢ� ��� ����, ��ᯫ�  :!dir  �  :!ls  ��� �� �᨜�� �� �婫� ��� ���
     ���ᢦ�� ��� ��� ����⥫� ⤘ ���ᢢ��� 椦�� ����妬 �� �� TEST.

  2. ��������婫� ��� ����� ��� ��� �⨦� ���� ��� ���囘� ��� ���㩫�
     Ctrl-g  ��� �� ���嫜 ��� ������ ���� ��� ������.
     �� ������� ����� ��� ������!

  3. �騘 ����夜�� ��� ��� �⨦� ��� ���囘� ��� ���㩫�  Ctrl-g  ����.
     �� ������� ��� ����� ��� ������!

  4. ��� �� �驜�� ���� ⤘ ��㣘 �� �����, ��ᯫ�   :#,# w TEST
     槦� #,# �� �� ������� ��� ����������穘�� (���,���) ��� TEST ��
     椦�� ��� ����妬 ���.

  5. ����, ��嫜 櫠 �� ����� �夘� ���� �� ���  :!dir ���� ��� �� �����ᯜ��.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  �៞�� 5.4: ���������� ��� ��������� ������


     ** ��� �� ���᚜�� �� ������棜�� ��� ����妬, ��ᯫ�   :r ������ **

  1. ��ᯫ�  :!dir  ��� �� ������嫜 櫠 �� TEST ��ᨮ�� ��� ����.

  2. �������㩫� ��� ����� ��� ��� �⨦� ��� ���囘�.

��������:  ��櫦� �����⩜�� �� �㣘 3 �� ��嫜 �� �៞�� 5.3.
	   ���� ������嫜 ���� ���� ���� �� �៞�� ����.

  3. �騘 �����㩫� �� ����� ��� TEST ����������餫�� ��� ������  :r TEST
     槦� TEST �夘� �� 椦�� ��� ����妬.

��������:  �� ����� ��� �����᫜ ��������嫘� �����餫�� ���� ��� ��婡����
	   � ����☪.

  4. ��� �� �������穜�� 櫠 �� ����� �����㟞��, ��� ��� ����� ���
     �������㩫� 櫠 ��ᨮ��� �騘 �� ���嚨��� ��� ���㣘��� 5.3, ��
     ������ ��� � ⡛��� ��� ����妬.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ������ 5 ��������


  1.  :!������  ������� �� ��૜���� ������.

      ������ ��㩠�� ������嚣��� �夘� (MS-DOS):
      :!dir            - ���ᤠ�� �婫�� ��� �����暦�.
      :!del ������     - �����᭜� �� ������.

  2.  :w ������   ��᭜� �� ���� ����� ��� Vim ��� �婡� �� 椦�� ������.

  3.  :#,#w ������   �靜� ��� ������ ��� # �⮨� # ��� ������.

  4.  :r ������  ������� �� ����� �婡�� ������ ��� �� ������ᢢ�� �⩘
      ��� ��⮦� ����� ���� ��� �� �⩞ ��� �����.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�៞�� 6.1: � ������ ����������


      ** ���㩫�  o  ��� �� ���奜�� �� ������ ��� ��� ��� ����� ��� ��
	 �����嫜 �� ���ᩫ��� ����⤦�. **

  1. ��������婫� ��� ����� ���� ������� ������ ������⤞ �� --->.

  2. ���㩫�  o (����) ��� �� ���奜�� �� ������ ���� ��� ��� ����� ��� ��
     �����嫜 �� ���ᩫ��� ����⤦�.

  3. �騘 ������ᯫ� �� ������⤞ �� ---> ������  ��� ���㩫� <ESC> ��� ��
     ���嫜 ��� ��� ���ᩫ��� ����⤦�.

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. ��� �� ���奜�� �� ������ ���� ��� ��� �����, ���㩫� ���� ⤘ �������
     O, ���� ��� ⤘ ����  o.  �����ᩫ� �� ���� ������� ������.
���嚜�� ������ ��� ��� ���� ���餫�� Shift-O 橦 � ����☪ �夘� ��� ������



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 �៞�� 6.2: � ������ ���������

	  ** ���㩫�   a   ��� �� ���᚜�� ��壜�� ���� ��� �����. **

  1. ��������婫� ��� ����� ��� �⢦� ��� ��髞� ������ �������
     ������⤞ �� ---> ���餫��  $  ���� �������� ���ᩫ���.

  2. ���㩫� ⤘  a  (����) ��� �� �����⩜�� ��壜�� ���� ��� ��� ������㨘
     ��� �夘� ��� ��� ��� �����.  (�� �������  A  �����⫝̸� ��� �⢦�
     ��� ������).

�����ਫ਼: ���� �����皜� �� �᫞�� ���  i , ��� �������� ������㨘, ��
	  ��壜�� ��� �������, <ESC>, �����-�����, ��� �⢦�, x, �椦 ���
	  �椦 ��� �� �����⩜�� ��� �⢦� ��� ������!

  3. �������驫� �騘 ��� ��髞 ������. �����驫� ��婞� 櫠 � �����㡞 �夘�
     ������ 因� ���� ���ᩫ��� ����⤦� �� ��� ���ᩫ��� �������, ����
     ��� �� �⩞ ��� ���᚜��� �� ��壜��.

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   �៞�� 6.3: ���� ������ ��� ��������������


 ** ���㩫� �������  R  ��� �� ���ᥜ�� ������櫜���� ��� ⤘� ������㨜�. **

  1. ��������婫� ��� ����� ���� ��髞 ������ ������� ������⤞ �� --->.

  2. �������㩫� ��� ����� ���� ���� ��� ��髞� �⥞� ��� �夘� �����������
     ��� �� ��竜�� ������ ������⤞ �� ---> (� �⥞ 'last').

  3. ���㩫� �騘  R   ��� ���ᥫ� �� ��梦��� ��� ����⤦� ���� ��髞 ������
     ��᭦���� ��� ��� �� ����� ��壜�� 驫� �� �ᤜ�� ��� ��髞 ������ 因�
     �� �� ��竜��.

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. �����驫� 櫠 櫘� ���᫜ <ESC> ��� �� ���嫜, �����⤜� ������㧦��
     �������૦ ��壜��.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  �៞�� 6.4: ������� ��������


   ** ����婫� �� ������� ⫩� 驫� � ����㫞�� � � �������ᩫ��� �� ������
      �� ������� ����-�������� **

  1. �ᥫ� ��� 'ignore' ���ᚦ����:
     /ignore
     �����婫� ������ ���� ���餫�� �� ��㡫�� n.

  2. �⩫� ��� ������� 'ic' (Ignore case) ��᭦����:
     :set ic

  3. �ᥫ� �騘 ���� ��� 'ignore' ���餫��: n
     �����婫� ��� ����㫞�� ������ ��棘 ���� ���餫�� �� ��㡫�� n

  4. �⩫� ��� ������� 'hlsearch' ��� 'incsearch':
     :set hls is

  5. ���᚜�� �騘 ���� ��� ������ ����㫞���, ��� ��嫜 �� �����夜�
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ������ 6 ��������


  1. ���餫��  o  ���嚜� �� ������ ���� ��� ��� ����� ��� ��������� ���
     ����� ���� ������� ������ �� ���ᩫ��� ����⤦�.

  2. ���㩫�  a  ��� �� ���᚜�� ��壜�� ���� ��� ������㨘 ���� ���� �夘�
     � ����☪. ���餫�� �������  A  ���棘�� �����⫝̸� ��壜�� ��� �⢦�
     ��� ������.

  3. ���餫�� �������  R  ���⨮���� ���� ���ᩫ�� �������ᩫ���� �⮨� ��
     ������� �� <ESC> ��� �� ��⢟��.

  4. ��᭦���� ":set xxx" ����坜� ��� ������� "xxx".








~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ������ 7: ON-LINE ������� ��������


		** ����������㩫� �� on-line �穫��� ��㟜��� **

  � Vim ⮜� ⤘ ���������� on-line �穫��� ��㟜���. ��� �� �����㩜�,
  �����ᩫ� �᧦�� ��� �� ���:
	- ���㩫� �� ��㡫�� <HELP> (�� ⮜�� �᧦��)
	- ���㩫� �� ��㡫�� <F1> (�� ⮜�� �᧦��)
	- ��ᯫ�   :help <ENTER>

  ��ᯫ�  :q <ENTER>   ��� �� ���婜�� �� ���៬�� ��� ��㟜���.

  �����嫜 �� ���嫜 ��㟜�� ��� �� �ៜ ������壜��, �夦���� �� ���ᣜ���
  ���� ������ ":help".  �����ᩫ� ���� (��� ����᫜ �� ���᫜ <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  ������ 8: ������������ ��� SCRIPT ���������

		   ** ���������㩫� �������������� ��� Vim **

  � Vim ⮜� ����� ������櫜�� �������������� ��' �,�� � Vi, ���� ��
  ������櫜�� �夘� ������ �������������⤘. ��� �� ���婜�� �� �����������嫜
  ������櫜�� �������������� ��⧜� �� ���ᥜ�� ⤘ ����� "vimrc".

  1. ���婫� �����餦���� �� ����� "vimrc", ���� �����᫘� ��� �� �穫��� ���:
	:edit ~/.vimrc               ��� Unix
	:edit $VIM/_vimrc            ��� MS-Windows

  2. �騘 ���᚜�� �� ��壜�� ������嚣���� ��� ����� "vimrc":
	:read $VIMRUNTIME/vimrc_example.vim

  3. ��ᯫ� �� ����� �� ���:
	:write

  ��� ��棜�� ���� ��� �� �����㩜�� ��� Vim �� ����������㩜� �ૠ���
  �礫����.  �����嫜 �� �����⩜�� 梜� ��� ������飜��� ������� �' ����
  �� ����� "vimrc".

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ��� �������餜��� �� Vim Tutor. ����� ��� 㫘� �� �驜� �� �礫���
  ���增�� ��� ����ᡫ� Vim, ����ᮠ���� �橞 驫� �� ��� �����⯜� ��
  ����������㩜�� ��� ����ᡫ� ������ �硦��. ��⮜� ���� ��� ��
  ��������⤞ ������嘩� ���� � Vim ⮜� �ᨘ ����� ������. ����ᩫ�
  ���槠� �� ������因� ��㩞�:
	":help user-manual".

  ��� �������� ��ᙘ��� ��� ���⫞, ����㤜��� ���� �� �����:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
	�� ��髦 ����� ���� ������⤦ ���� Vim.
	����嫜�� ��㩠�� ��� ���ᨠ���.
	��ᨮ��� ����� ������嚣��� ��� ���検�.
	��嫜 ��� http://iccf-holland.org/click5.html

  ���� �� ����� �夘� ����櫜�� ��� ������櫜�� ��� ��� Vi ���� ��� ��� Vim,
  ���� ��婞� ������飜��:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
	�夘� ⤘ ���� ����� ��� �� �ៜ�� ����� �� �ᤫ� ��� �⢜��
	�� �ᤜ�� �� ��� Vi.
	� ⡫� ⡛��� ����⮜� ��棘 ��������圪 ��� ��� Vim.

  ���� � ����㚞�� ��᭫��� ��� ���� Michael C. Pierce ��� Robert K. Ware,
  Colorado School of Mines ����������餫�� ��✪ ��� ��� Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  ���������� ��� ��� Vim ��� ��� Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�ZJ��|�|�vim80/tutor/tutor.hr.utf-8nu�[���===============================================================================
=    D o b r o d o š l i   u   VIM   p r i r u č n i k  -    Verzija 1.7      =
===============================================================================

     Vim je vrlo moćan editor koji ima mnogo naredbi, previše da bi ih
     se svih ovdje spomenulo.  Namjena priručnika je objasniti dovoljno
     naredbi kako bi početnici znatno lakše koristili ovaj svestran editor.

     Približno vrijeme potrebno za uspješan završetak priručnika je oko
     30 minuta a ovisi o tome koliko će te vremena odvojiti za vježbanje.

     UPOZORENJE:
     Naredbe u ovom priručniku će promijeniti ovaj tekst.
     Napravite kopiju ove datoteke kako bi ste na istoj vježbali
     (ako ste pokrenuli "vimtutor" ovo je već kopija).

     Vrlo je važno primijetiti da je ovaj priručnik namijenjen za vježbanje.
     Preciznije, morate izvršiti naredbe u Vim-u kako bi ste iste naučili
     pravilno koristiti. Ako samo čitate tekst, zaboraviti će te naredbe!

     Ako je CapsLock uključen ISKLJUČITE ga.  Pritiskajte tipku  j  kako
     bi pomakli kursor sve dok Lekcija 1.1 ne ispuni ekran.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 1.1:  POMICANJE KURSORA


 ** Za pomicanje kursora, pritisnite h,j,k,l tipke kako je prikazano **
	     ^
	     k		    Savjet:  h tipka je lijevo i pomiče kursor lijevo.
       < h	 l >		   l tipka je desno i pomiče kursor desno.
	     j                     j izgleda kao strelica usmjerena dolje.
	     v
  1. Pomičite kursor po ekranu dok se ne naviknete na korištenje.

  2. Držite tipku (j) pritisnutom.
     Sada znate kako doći do sljedeće lekcije.

  3. Koristeći tipku j prijeđite na sljedeću lekciju 1.2.

NAPOMENA:  Ako niste sigurni što ste zapravo pritisnuli uvijek koristite
           tipku <ESC> kako bi prešli u Normal mod i onda pokušajte ponovno.

NAPOMENA:  Kursorske tipke rade isto.  Korištenje hjkl tipaka je znatno
           brže, nakon što se jednom naviknete na njihovo korištenje.  Stvarno!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekcija 1.2: IZLAZ IZ VIM-a


  !! UPOZORENJE: Prije izvođenja bilo kojeg koraka,
                 pročitajte cijelu lekciju!!

  1. Pritisnite <ESC> tipku (Vim je sada u Normal modu).

  2. Otipkajte:	:q! <ENTER>.
     Izlaz iz editora, GUBE se sve napravljene promjene.

  3. Kada se pojavi ljuska, utipkajte naredbu koja je pokrenula
     ovaj priručnik:		vimtutor <ENTER>

  4. Ako ste upamtili ove korake, izvršite ih redom od 1 do 3
     kako bi ponovno pokrenuli editor.

NAPOMENA:  :q! <ENTER>  poništava sve promjene koje ste napravili.
           U sljedećim lekcijama naučit će te kako promjene sačuvati.

  5. Pomaknite kursor na Lekciju 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.3: PROMJENA TEKSTA - BRISANJE


	      ** Pritisnite  x  za brisanje znaka pod kursorom. **

  1. Pomaknite kursor na liniju označenu s --->.

  2. Kako bi ste ispravili pogreške, pomičite kursor dok se
     ne bude nalazio na slovu kojeg trebate izbrisati.

  3. Pritisnite tipku x kako bi uklonili neželjeno slovo.

  4. Ponovite korake od 2 do 4 dok ne ispravite sve pogreške.

---> KKKravaa jee presskočila mmjeseccc.

  5. Nakon što ispravite liniju, prijeđite na lekciju 1.4.

NAPOMENA:  Koristeći ovaj priručnik ne pokušavajte pamtiti
           već učite primjenom.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcija 1.4: PROMJENA TEKSTA - UBACIVANJE


	  ** Pritisnite  i  za ubacivanje teksta ispred kursora. **

  1. Pomaknite kursor na prvu sljedeću liniju označenu s --->.

  2. Kako bi napravili prvu liniju istovjetnoj drugoj, pomaknite
     kursor na prvi znak POSLIJE kojeg će te utipkati potreban tekst.

  3. Pritisnite  i  te utipkajte potrebne nadopune.

  4. Nakon što ispravite pogrešku pritisnite <ESC> kako bi vratili Vim
     u Normal mod. Ponovite korake od 2 do 4 kako bi ispravili sve pogreške.

---> Nedje no teka od v lin.
---> Nedostaje nešto teksta od ove linije.

  5. Prijeđite na sljedeću lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.5: PROMJENA TEKSTA - DODAVANJE


	           ** Pritisnite  A  za dodavanje teksta. **

  1. Pomaknite kursor na prvu sljedeću liniju označenu s --->.
     Nije važno na kojem se slovu nalazi kursor na toj liniji.

  2. Pritisnite  A  i napravite potrebne promjene.

  3. Nakon što ste dodali tekst, pritisnite <ESC>
     za povratak u Normal mod.

  4. Pomaknite kursor na drugu liniju označenu s --->
     i ponovite korake 2 i 3 dok ne popravite tekst.

---> Ima nešto teksta koji nedostaje n
     Ima nešto teksta koji nedostaje na ovoj liniji.
---> Ima nešto teksta koji ne
     Ima nešto teksta koji nedostaje baš ovdje.

  5. Prijeđite na lekciju 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 1.6: PROMJENA DATOTEKE


     ** Koristite  :wq  za spremanje teksta i napuštanje Vim-a. **

  !! UPOZORENJE: Prije izvršavanja bilo kojeg koraka, pročitajte lekciju!!

  1. Izađite iz programa kao sto ste napravili u lekciji 1.2:  :q!

  2. Iz ljuske utipkajte sljedeću naredbu:  vim tutor <ENTER>
     'vim' je naredba pokretanja Vim editora, 'tutor' je ime datoteke koju
     želite uređivati.  Koristite datoteku koju imate ovlasti mijenjati.

  3. Ubacite i izbrišite tekst kao što ste to napravili u lekcijama prije.

  4. Sačuvajte promjenjeni tekst i izađite iz Vim-a:  :wq  <ENTER>

  5. Ponovno pokrenite vimtutor i nastavite čitati sažetak koji sljedi.

  6. Nakon sto pročitate gornje korake i u potpunosti ih razumijete:
     izvršite ih.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 1 SAŽETAK


  1. Kursor se pomiče strelicama ili pomoću hjkl tipaka.
	h (lijevo)	j (dolje)	k (gore)	l (desno)

  2. Pokretanje Vim-a iz ljuske:  vim IME_DATOTEKE <ENTER>

  3. Izlaz:	<ESC>	:q! <ENTER> 	sve promjene su izgubljene.
       ILI:	<ESC>	:wq <ENTER> 	promjene su sačuvane.

  4. Brisanje znaka na kojem se nalazi kursor:  x

  5. Ubacivanja ili dodavanje teksta:
	 i   utipkajte tekst <ESC>	unos ispred kursora
	 A   utipkajte tekst <ESC>	dodavanje na kraju linije

NAPOMENA:  Tipkanjem tipke <ESC> prebacuje Vim u Normal mod i
           prekida neželjenu ili djelomično završenu naredbu.

Nastavite čitati Lekciju 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 2.1: NAREDBE BRISANJA


		 ** Tipkajte  dw  za brisanje riječi. **

  1. Pritisnite  <ESC>  kako bi bili sigurni da je Vim u Normal modu.

  2. Pomaknite kursor na liniju označenu s --->.

  3. Pomaknite kursor na početak riječi koju treba izbrisati.

  4. Otipkajte  dw  kako bi uklonili riječ.

NAPOMENA:  Vim će prikazati slovo  d  na zadnjoj liniji kad ga otipkate.
           Vim čeka da otipkate  w .  Ako je prikazano neko drugo slovo,
           krivo ste otipkali; pritisnite <ESC> i pokušajte ponovno.

---> Neke riječi smiješno ne pripadaju na papir ovoj rečenici.

  5. Ponovite korake 3 i 4 dok ne ispravite rečenicu;
     prijeđite na Lekciju 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.2: JOŠ BRISANJA


       ** Otipkajte  d$ za brisanje znakova do kraja linije. **

  1. Pritisnite  <ESC>  kako bi bili
     sigurni da je Vim u Normal modu.

  2. Pomaknite kursor na liniju označenu s  --->.

  3. Pomaknite kursor do kraja ispravne rečenice
     (POSLJE prve . ).

  4. Otipkajte  d$
     kako bi izbrisali sve znakove do kraja linije.

---> Netko je utipkao kraj ove linije dvaput. kraj ove linije dvaput.

  5. Prijeđite na Lekciju 2.3 za bolje objašnjenje.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 2.3: UKRATKO O OPERATORIMA I POKRETIMA


  Mnogo naredbi koje mijenjaju tekst se sastoje od operatora i pokreta.
  Oblik naredbe brisanja sa  d  operatorom je sljedeći:

  	d   pokret

  Pri čemu je:
    d      - operator brisanja.
    pokret - ono na čemu će se operacija izvršavati (navedeno u nastavku).

  Kratka lista pokreta:
    w - sve do početka sljedeće riječi, NE UKLJUČUJUĆI prvo slovo.
    e - sve do kraja trenutačne riječi, UKLJUČUJUĆI zadnje slovo.
    $ - sve do kraje linije, UKLJUČUJUĆI zadnje slovo.

  Tipkanjem  de  će se brisati od kursora do kraja riječi.

NAPOMENA:  Pritiskajući samo pokrete dok ste u Normal modu bez operatora će
           pomicati kursor kao što je navedeno.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 2.4: KORIŠTENJE BROJANJA ZA POKRETE


  ** Tipkanjem nekog broja prije pokreta, pokret se izvršava toliko puta. **

  1. Pomaknite kursor na liniju označenu s --->.

  2. Otipkajte  2w  da pomaknete kursor dvije riječi naprijed.

  3. Otipkajte  3e  da pomaknete kursor na kraj treće riječi naprijed.

  4. Otipkajte  0  (nulu) da pomaknete kursor na početak linije.

  5. Ponovite korake 2 i 3 s nekim drugim brojevima.

---> Rečenica sa riječima po kojoj možete pomicati kursor.

  6. Prijeđite na Lekciju 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Lekcija 2.5: KORIŠTENJE BROJANJA ZA VEĆE BRISANJE


	  ** Tipkanje broja N s operatorom ponavlja ga N-puta. **

  U kombinaciji operatora brisanja i pokreta spomenutih iznad
  ubacujete broj prije pokreta kako bi izbrisali više znakova:

	 d   broj   pokret

  1. Pomaknite kursor na prvo slovo u riječi sa VELIKIM SLOVIMA
     označenu s --->.

  2. Otipkajte  2dw  da izbrišete dvije riječi sa VELIKIM SLOVIMA

  3. Ponovite korake 1 i 2 sa različitim brojevima da izbrišete
     uzastopne riječi sa VELIKIM SLOVIMA sa samo jednom naredbom.

---> ova ABCČĆ DĐE linija FGHI JK LMN OP riječi je RSŠ TUVZŽ popravljena.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 2.6: OPERIRANJE NAD LINIJAMA


	       ** Otipkajte  dd   za brisanje cijele linije. **

  Zbog učestalosti brisanja cijelih linija, dizajneri Vi-a su odlučili da
  je lakše brisati linije tipkanjem  d  dvaput.

  1. Pomaknite kursor na drugu liniju u donjoj kitici.
  2. Otipkajte  dd  kako bi izbrisali liniju.
  3. Pomaknite kursor na četvrtu liniju.
  4. Otipkajte   2dd   kako bi izbrisali dvije linije.

--->  1)  Ruže su crvene,
--->  2)  Plaža je super,
--->  3)  Ljubice su plave,
--->  4)  Imam auto,
--->  5)  Satovi ukazuju vrijeme,
--->  6)  Šećer je sladak
--->  7)  Kao i ti.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.7: NAREDBA PONIŠTENJA


  ** Pritisnite  u  za poništenje zadnje naredbe,  U  za cijelu liniju. **

  1. Pomaknite kursor na liniju označenu s ---> i postavite kursor na prvu
     pogrešku.
  2. Otipkajte  x  kako bi izbrisali prvi neželjeni znak.
  3. Otipkajte  u  kako bi poništili zadnju izvršenu naredbu.
  4. Ovaj put ispravite sve pogreške na liniji koristeći  x  naredbu.
  5. Sada utipkajte veliko  U  kako bi poništili sve promjene
     na liniji, vraćajući je u prijašnje stanje.
  6. Sada utipkajte  u  nekoliko puta kako bi poništili  U
     i prijašnje naredbe.
  7. Sada utipkajte CTRL-R (držeći  CTRL  tipku pritisnutom dok
     ne pritisnete  R) nekoliko puta kako bi vratili promjene
     (poništili poništenja).

---> Poopravite pogreške nna ovvoj liniji ii pooništiteee ih.

  8. Vrlo korisne naredbe.  Prijeđite na sažetak Lekcije 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 2 SAŽETAK


  1. Brisanje od kursora do sljedeće riječi:    dw
  2. Brisanje od kursora do kraja linije:    d$
  3. Brisanje cijele linije:    dd

  4. Za ponavljanje pokreta prethodite mu broj:   2w
  5. Oblik naredbe mijenjanja:
               operator   [broj]   pokret
     gdje je:
       operator - što napraviti, npr.   d  za brisanje
       [broj]   - neobavezan broj ponavljanja pokreta
       pokret   - kretanje po tekstu po kojem se operira,
                  kao što je: w (riječ), $ (kraj linije), itd.

  6. Postavljanje kursora na početak linije:  0

  7. Za poništenje prethodnih promjena, pritisnite:	  u  (malo u)
     Za poništenje svih promjena na liniji, pritisnite:   U  (veliko U)
     Za vraćanja promjena, utipkajte:	CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.1: NAREDBA POSTAVI


	** p  za unos prethodno izbrisanog teksta iza kursora. **

  1. Pomaknite kursor na prvu sljedeću liniju označenu s --->.

  2. Otipkajte  dd  kako bi izbrisali liniju i spremili je u Vim registar.

  3. Pomaknite kursor na liniju c), IZNAD linije koju trebate unijeti.

  4. Otipkajte  p  kako bi postavili liniju ispod kursora.

  5. Ponovite korake 2 do 4 kako bi postavili sve linije u pravilnom
     rasporedu.

---> d) Možeš li i ti naučiti?
---> b) Ljubice su plave,
---> c) Inteligencija je naučena,
---> a) Ruže su crvene,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.2: NAREDBA PROMJENE


      ** Otipkajte  rx  za zamjenu slova ispod kursora sa slovom  x . **

  1. Pomaknite kursor na prvu sljedeću liniju označenu s --->.

  2. Pomaknite kursor tako da se nalazi na prvoj pogrešci.

  3. Otipkajte  r  i nakon toga ispravan znak na tom mjestu.

  4. Ponovite korake 2 i 3 sve dok prva
     linije ne bude istovjetna drugoj.

--->  Kede ju ovu limija tupjana, natko je protuskao kruve tupke!
--->  Kada je ova linija tipkana, netko je pritiskao krive tipke!

  5. Prijeđite na Lekciju 3.2.

NAPOMENA:  Prisjetite da trebate učiti vježbanjem, ne pamćenjem.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 3.3: OPERATOR MIJENJANJA


	  ** Za mijenjanje do kraja riječi, istipkajte  ce . **

  1. Pomaknite kursor na prvu sljedeću liniju označenu s --->.

  2. Postavite kursor na  a  u  lackmb.

  3. Otipkajte  ce  i ispravite riječ (u ovom slučaju otipkajte  inija ).

  4. Pritisnite <ESC> i pomaknite kursor na sljedeći znak
     kojeg je potrebno ispraviti.

  5. Ponovite korake 3 i 4 sve dok prva rečenica ne postane istovjetna
     drugoj.

---> Ova lackmb ima nekoliko rjlcah koje trfcb mijdmlfsz.
---> Ova linija ima nekoliko riječi koje treba mijenjati.

Primijetite da  ce  briše riječ i postavlja Vim u Insert mod.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lekcija 3.4: JOŠ MIJENJANJA KORIŠTENJEM c


    ** Naredba mijenjanja se koristi sa istim pokretima kao i brisanje. **

  1. Operator mijenjanja se koristi na isti način kao i operator brisanja:

         c    [broj]   pokret

  2. Pokreti su isti, npr:   w (riječ) i  $ (kraj linije).

  3. Pomaknite kursor na prvu sljedeću liniju označenu s --->.

  4. Pomaknite kursor na prvu pogrešku.

  5. Otipkajte  c$  i utipkajte ostatak linije tako da bude istovjetna
     drugoj te pritisnite <ESC>.

---> Kraj ove linije treba pomoć tako da izgleda kao linija ispod.
---> Kraj ove linije treba ispraviti korištenjem c$ naredbe.

NAPOMENA:  Možete koristiti Backspace za ispravljanje grešaka.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 3 SAŽETAK


  1. Za postavljanje teksta koji je upravo izbrisan, pritisnite  p . Ovo
     postavlja tekst IZA kursora (ako je pak linija izbrisana tekst se
     postavlja na liniju ispod kursora).

  2. Za promjenu znaka na kojem se nalazi kursor, pritisnite  r  i nakon toga
     željeni znak.

  3. Operator mijenjanja dozvoljava promjenu teksta od kursora do pozicije do
     koje dovede pokret. tj. Otipkajte  ce  za mijenjanje od kursora do kraja
     riječi, c$  za mijenjanje od kursora do kraja linije.

  4. Oblik naredbe mijenjanja:

	 c   [broj]   pokret

Prijeđite na sljedeću lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 4.1: POZICIJA KURSORA I STATUS DATOTEKE

  ** CTRL-G za prikaz pozicije kursora u datoteci i status datoteke.
     Pritisnite  G  za pomicanje kursora na neku liniju u datoteci. **

NAPOMENA:  Pročitajte cijelu lekciju prije izvršenja bilo kojeg koraka!!

  1. Držite Ctrl tipku pritisnutom i pritisnite  g .  Ukratko: CTRL-G.
     Vim će ispisati poruku na dnu ekrana sa imenom datoteke i pozicijom
     kursora u datoteci.  Zapamtite broj linije za 3. korak.

NAPOMENA:  Možete vidjeti poziciju kursora u donjem desnom kutu ako
           je postavka 'ruler' aktivirana (objašnjeno u 6. lekciji).

  2. Pritisnite  G  za pomicanje kursora na kraj datoteke.
     Otipkajte  gg  za pomicanje kursora na početak datoteke.

  3. Otipkajte broj linije na kojoj ste bili maloprije i zatim  G .  Kursor
     će se vratiti na liniju na kojoj se nalazio kada ste otipkali CTRL-G.

  4. Ako ste spremni, izvršite korake od 1 do 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 4.2: NAREDBE TRAŽENJA

       ** Otipkajte  /  i nakon toga izraz kojeg želite tražiti. **

  1. U Normal modu otipkajte  /  znak.  Primijetite da se znak
     pojavio zajedno sa kursorom na dnu ekrana kao kod  :  naredbe.

  2. Sada otipkajte 'grrrreška' <ENTER>.  To je riječ koju zapravo tražite.

  3. Za ponovno traženje istog izraza, otipkajte  n .
     Za traženje istog izraza ali u suprotnom smjeru, otipkajte  N .

  4. Za traženje izraza unatrag, koristite  ?  umjesto  / .

  5. Za povratak na prethodnu poziciju koristite  CTRL-O  (držite Ctrl
     pritisnutim dok ne pritisnete tipku o).  Ponavljajte sve dok se ne
     vratite na početak.  CTRL-I slično kao CTRL-O ali u suprotnom smjeru.

---> "pogrrrreška" je pogrešno; umjesto pogrrrreška treba stajati pogreška.

NAPOMENA:  Ako se traženjem dođe do kraja datoteke nastavit će se od njenog
           početka osim ako je postavka 'wrapscan' deaktivirana.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 4.3: TRAŽENJE PRIPADAJUĆE ZAGRADE


	** Otipkajte  %  za pronalazak pripadajuće ), ] ili } . **

  1. Postavite kursor na bilo koju od  ( ,  [  ili  {
     otvorenih zagrada u liniji označenoj s --->.

  2. Otipkajte znak  % .

  3. Kursor će se pomaknuti na pripadajuću zatvorenu zagradu.

  4. Otipkajte  %  kako bi pomakli kursor na drugu pripadajuću zagradu.

  5. Pomaknite kursor na neku od (,),[,],{ ili } i ponovite  %  naredbu.

---> Linija ( testiranja običnih ( [ uglatih ] i { vitičastih } zagrada.))


NAPOMENA:  Vrlo korisno u ispravljanju koda sa nepripadajućim zagradama!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 4.4: NAREDBE ZAMIJENE


       ** Otipkajte  :s/staro/novo/g  da zamijenite 'staro' za 'novo'. **

  1. Pomaknite kursor na liniju označenu s --->.

  2. Otipkajte  :s/cvrćč/cvrč <ENTER> .  Primjetite da ova naredba zamjenjuje
     samo prvi "cvrćč" u liniji.

  3. Otipkajte  :s/cvrćč/cvrč/g .  Dodavanje  g  stavke znači da će se naredba
     izvršiti na cijeloj liniji, zamjenjivanjem svih "cvrćč" u liniji.

---> i cvrćči cvrćči cvrćčak na čvoru crne smrče.

  4. Za zamjenu svih izraza u rasponu dviju linija,
     otipkajte :#,#s/staro/novo/g   #,# su brojevi linije datoteke na kojima
                                    te između njih će se izvršiti zamjena.
     Otipkajte :%s/staro/novo/g     za zamjenu svih izraza u cijeloj datoteci.
     Otipkajte :%s/staro/novo/gc    za pronalazak svakog izraza u datoteci i
     			            potvrdu zamjene.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 4 SAŽETAK


  1. CTRL-G  prikazuje poziciju kursora u datoteci i status datoteke.
             G  postavlja kursor na zadnju liniju datoteke.
     broj    G  postavlja kursor na  broj  liniju.
            gg  postavlja kursor na prvu liniju.

  2. Tipkanje  /  sa izrazom traži UNAPRIJED taj izraz.
     Tipkanje  ?  sa izrazom traži UNATRAG taj izraz.
     Nakon naredbe traženja koristite  n  za pronalazak izraza u istom
     smjeru, i  N  za pronalazak istog izraza ali u suprotnom smjeru.
     CTRL-O vraća kursor na prethodnu poziciju, CTRL-I na sljedeću poziciju.

  3. Tipkanje  %  dok je kursor na zagradi pomiče ga na pripadajuću zagradu.

  4. Za zamjenu prvog izraza staro za izraz novo	   :s/staro/novo
     Za zamjenu svih izraza staro na cijeloj liniji	   :s/staro/novo/g
     Za zamjenu svih izraza staro u rasponu linija #,#     :#,#s/staro/novo/g
     Za zamjenu u cijeloj datoteci			   :%s/staro/novo/g
     Za potvrdu svake zamjene dodajte 'c'		   :%s/staro/novo/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.1: IZVRŠAVANJE VANJSKIH NAREDBI


	** Otipkajte  :!  sa vanjskom naredbom koju želite izvršiti. **

  1. Otipkajte poznatu naredbu  :  kako bi kursor premjestili na dno
     ekrana.  Time omogućavate unos naredbe u naredbenoj liniji.

  2. Otipkajte znak  !  (uskličnik).  Tako omogućavate
     izvršavanje naredbe vanjske ljuske.

  3. Kao primjer otipkajte   ls   nakon ! te pritisnite <ENTER>.
     Ovo će prikazati sadržaj direktorija, kao da ste u ljusci.
     Koristite   :!dir   ako   :!ls   ne radi.

NAPOMENA:  Moguće je izvršavati bilo koju vanjsku naredbu na ovaj način,
           zajedno sa njenim argumentima.

NAPOMENA:  Sve  :  naredbe se izvršavaju nakon što pritisnete <ENTER>
	   U daljnjem tekstu to neće uvijek biti napomenuto.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.2: VIŠE O SPREMANJU DATOTEKA

           ** Za spremanje promjena, otipkajte  :w IME_DATOTEKE. **

  1. Otipkajte   :!dir   ili   :!ls   za pregled direktorija.
     Već znate da morate pritisnuti <ENTER> na kraju tipkanja.

  2. Izaberite ime datoteke koja još ne postoji, npr. TEST.

  3. Otipkajte:	 :w TEST   (gdje je TEST ime koje ste prethodno odabrali.)

  4. Time će te spremiti cijelu datoteku (Vim Tutor) pod imenom TEST.
     Za provjeru, otipkajte ponovno   :!dir   ili   :!ls
     za pregled direktorija.

NAPOMENA:  Ako bi napustili Vim i ponovno ga pokrenuli sa vim TEST ,
           datoteka bi bila potpuna kopija ove datoteke u trenutku
           kada ste je spremili.

  5. Izbrišite datoteku tako da otipkate (MS-DOS):	:!del TEST
				       ili (Unix):	:!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.3: SPREMANJE OZNAČENOG TEKSTA


   ** Kako bi spremili dio datoteke, otipkajte  v  pokret  :w IME_DATOTEKE **

  1. Pomaknite kursor na ovu liniju.

  2. Pritisnite  v  i pomaknite kursor pet linija ispod ove.
     Primijetite promjenu, označeni tekst se razlikuje od običnog.

  3. Pritisnite  :  znak.  Na dnu ekrana pojavit će se  :'<,'> .

  4. Otipkajte  w TEST  , pritom je TEST ime datoteke koja još ne postoji.
     Provjerite da zaista piše  :'<,'>w TEST
     prije nego što pritisnite <ENTER>.

  5. Vim će spremiti označeni tekst u TEST.  Provjerite sa :!dir  ili  :!ls .
     Nemojte je još brisati!  Koristiti će te je u sljedećoj lekciji.

NAPOMENA:  Tipka  v  započinje Vizualno označavanje.  Možete pomicati kursor
           unaokolo kako bi mijenjali veličinu označenog teksta. Možete
           koristiti i operatore.  Npr,  d  će izbrisati označeni tekst.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.4: UČITAVANJE DATOTEKA


       ** Za ubacivanje sadržaja datoteke, otipkajte  :r IME_DATOTEKE  **

  1. Postavite kursor iznad ove linije.

NAPOMENA:  Nakon što izvršite 2. korak vidjeti će te tekst iz Lekcije 5.3.
           Stoga pomaknite kursor DOLJE kako bi ponovno vidjeli ovu lekciju.

  2. Učitajte vašu TEST datoteku koristeći naredbu   :r TEST
     gdje je TEST ime datoteke koju ste koristili u prethodnoj lekciji.
     Sadržaj učitane datoteke je ubačen liniju ispod kursora.

  3. Kako bi provjerili da je datoteka učitana, vratite kursor unatrag i
     primijetite dvije kopije Lekcije 5.3, originalnu i onu iz datoteke.

NAPOMENA:  Možete također učitati ispis vanjske naredbe.  Npr,  :r !ls
           će učitati ispis  ls  naredbe i postaviti ispis liniju ispod
           kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 5 SAŽETAK


  1.  :!naredba  izvršava vanjsku naredbu.

      Korisni primjeri:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  pregled direktorija.
	  :!del DATOTEKA   :!rm DATOTEKA   -  briše datoteku DATOTEKA.

  2.  :w DATOTEKA  zapisuje trenutačnu datoteku na disk sa imenom DATOTEKA.

  3.  v  pokret  :w IME_DATOTEKE  sprema vizualno označene linije u
      datoteku IME_DATOTEKE.

  4.  :r IME_DATOTEKE  učitava datoteku IME_DATOTEKE sa diska i stavlja
      njen sadržaj liniju ispod kursora.

  5.  :r !dir  učitava ispis naredbe dir i postavlja sadržaj ispisa liniju
      ispod kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcija 6.1: NAREDBA OTVORI


	** Pritisnite  o  kako bi otvorili liniju ispod kursora
	   i prešli u Insert mod. **

  1. Pomaknite kursor na sljedeću liniju označenu s --->.

  2. Otipkajte malo  o  kako bi otvorili novu liniju ISPOD kursora
     i prešli u Insert mod.

  3. Otipkajte nešto teksta i nakon toga pritisnite <ESC>
     kako bi napustili Insert mod.

---> Nakon što pritisnete  o  kursor će preći u novu liniju u Insert mod.

  4. Za otvaranje linije IZNAD kursora, otipkajte umjesto malog o veliko O ,
     Pokušajte na donjoj liniji označenoj s --->.

---> Otvorite liniju iznad ove - otipkajte O dok je kursor na ovoj liniji.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 6.2: NAREDBA DODAJ


	     ** Otipkajte  a  za dodavanje teksta IZA kursora. **

  1. Pomaknite kursor na početak sljedeće linije označene s --->.
  
  2. Tipkajte  e  dok se kursor ne nalazi na kraju  li .

  3. Otipkajte  a  (malo) kako bi dodali tekst IZA kursora.

  4. Dopunite riječ kao što je na liniji ispod.
     Pritisnite <ESC> za izlaz iz Insert moda.

  5. Sa  e  prijeđite na sljedeću nepotpunu riječ i ponovite korake 3 i 4.
  
---> Ova li omogućava vje dodav teksta nekoj liniji.
---> Ova linija omogućava vježbanje dodavanja teksta nekoj liniji.

NAPOMENA:  Sa i, a, i  A  prelazite u isti Insert mod, jedina
           razlika je u poziciji od koje će se tekst ubacivati.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.3: DRUGI NAČIN MIJENJANJA


      ** Otipkajte veliko  R  kako bi zamijelili više od jednog znaka. **

  1. Pomaknite kursor na prvu sljedeću liniju označenu s --->.
     Pomaknite kursor na početak prvog  xxx .

  2. Pritisnite  R  i otipkajte broj koji je liniju ispod,
     tako da zamijeni xxx .

  3. Pritisnite <ESC> za izlaz iz Replace moda.
     Primijetite da je ostatak linije ostao nepromjenjen.

  5. Ponovite korake kako bi zamijenili preostali xxx.

---> Zbrajanje: 123 plus xxx je xxx.
---> Zbrajanje: 123 plus 456 je 579.

NAPOMENA:  Replace mod je kao Insert mod, ali sa bitnom razlikom,
           svaki otipkani znak briše već postojeći.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 6.4: KOPIRANJE I LIJEPLJENJE TEKSTA


    ** Koristite  y  operator za kopiranje a  p  za lijepljenje teksta. **

  1. Pomaknite kursor na liniju s --->  i postavite kursor nakon "a)".
  
  2. Pokrenite Visual mod sa  v  i pomaknite kursor sve do ispred "prva".
  
  3. Pritisnite  y  kako bi kopirali označeni tekst.

  4. Pomaknite kursor do kraja sljedeće linije:  j$

  5. Pritisnite  p  kako bi zalijepili tekst.  Onda utipkajte:  druga <ESC> .

  6. Koristite Visual mod kako bi označili " linija.", kopirajte:  y , kursor
     postavite na kraj sljedeće linije:  j$  i ondje zalijepite tekst:  p .

--->  a) ovo je prva linija.
      b)

NAPOMENA:  možete koristiti  y  kao operator;  yw   kopira jednu riječ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.5: MIJENJANJE POSTAVKI


 ** Postavka: naredbe traženja i zamijene ne razlikuju VELIKA i mala slova **

  1. Potražite 'razlika' tipkanjem:   /razlika  <ENTER>
     Nekoliko puta ponovite pritiskanjem  n .

  2. Aktivirajte 'ic' (Ignore case) postavku:   :set ic

  3. Ponovno potražite 'razlika' tipkanjem  n
     Primijetite da su sada i RAZLIKA i Razlika pronađeni.

  4. Aktivirajte 'hlsearch' i 'incsearch' postavke:  :set hls is

  5. Otipkajte naredbu traženja i primijetite razlike:  /razlika <ENTER>

  6. Za deaktiviranje  ic  postavke koristite:  :set noic

NAPOMENA:  Za neoznačavanje pronađenih izraza otipkajte:   :nohlsearch
NAPOMENA:  Bez razlikovanja velikih i malih slova u samo jednoj naredbi
	   koristite  \c u izrazu:  /razlika\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 6 SAŽETAK

  1. Pritisnite  o  za otvaranje linije ISPOD kursora i prelazak u Insert mod.
     Pritisnite  O  za otvaranje linije IZNAD kursora.

  2. Pritisnite  a  za unos teksta IZA kursora.
     Pritisnite  A  za unos teksta na kraju linije.

  3. Naredba  e  pomiče kursor na kraj riječi.

  4. Operator  y  kopira tekst,  p  ga lijepi.

  5. Tipkanjem velikog  R  Vim prelazi u Replace mod dok ne pritisnete <ESC> .

  6. Tipkanjem ":set xxx" aktivira postavku "xxx".  Neke postavke su:
  	'ic' 'ignorecase'	ne razlikuje velika/mala slova pri traženju
	'is' 'incsearch'	traži nedovršene izraze
	'hls' 'hlsearch'	označi sve pronađene izraze
     Možete koristite dugo ili kratko ime postavke.

  7. Prethodite "no" imenu postavke za deaktiviranje iste:   :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 7.1: DOBIVANJE POMOĆI


		   ** Koristite on-line sustav pomoći **

  Vim ima detaljan on-line sustav pomoći.
  Za početak, pokušajte jedno od sljedećeg:
	- pritisnite <HELP> tipku (ako je vaša tipkovnica ima)
	- pritisnite <F1> tipku (ako je vaša tipkovnica ima)
	- utipkajte   :help <ENTER>

  Pročitajte tekst u prozoru pomoći kako bi ste se znali služiti istom.
  Tipkanjem  CTRL-W CTRL-W   prelazite iz jednog prozora u drugi.
  Otipkajte    :q <ENTER>    kako bi zatvorili prozor pomoći.

  Pronaći će te pomoć o bilo kojoj temi, tako da dodate upit samoj
  ":help" naredbi.  Pokušajte (ne zaboravite pritisnuti <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 7.2: PRAVLJENJE SKRIPTE


		       ** Aktivirajte Vim mogućnosti **

  Vim ima mnogo više alata od Vi-ja, ali većina njih nije aktivirana.
  Kako bi mogli koristiti više mogućnosti napravite "vimrc" datoteku.

  1. Uredite "vimrc" datoteku.  Ovo ovisi o vašem sistemu:
	:e ~/.vimrc		za Unix
	:e $VIM/_vimrc		za MS-Windows

  2. Sada učitajte primjer sadržaja "vimrc" datoteke:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Sačuvajte datoteku sa:
	:w

  Sljedećeg puta kada pokrenete Vim, bojanje sintakse teksta biti će
  aktivirano. Sve vaše postavke možete dodati u "vimrc" datoteku.
  Za više informacija otipkajte  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 7.3: AUTOMATSKO DOVRŠAVANJE


	** Dovršavanje iz naredbene linije pomoću CTRL-D i <TAB> **

  1. Provjerite da Vim nije u Vi modu:  :set nocp

  2. Pogledajte koje datoteke postoje u direktoriju:  :!ls   or  :!dir

  3. Otipkajte početak naredbe:  :e

  4. Tipkajte  CTRL-D  i prikazati će se lista naredbi koje započinju sa "e".

  5. Pritisnite <TAB>  i Vim će dopuniti unos u naredbu ":edit".

  6. Dodajte razmak i početak datoteke:  :edit FIL

  7. Pritisnite <TAB>.  Vim će nadopuniti ime datoteke (ako je jedinstveno).

NAPOMENA:  Moguće je dopuniti mnoge naredbe.  Koristite CTRL-D i <TAB>.
           Naročito je korisno za  :help  naredbe.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 7 SAŽETAK


  1. Otipkajte  :help  ili pritisnite <F1> ili <Help>  za pomoć.

  2. Otipkajte  :help naredba  kako bi dobili pomoć za  naredba .

  3. Otipkajte  CTRL-W CTRL-W  za prelazak u drugi prozor

  4. Otipkajte  :q  kako bi zatvorili prozor pomoći

  5. Napravite vimrc skriptu za podizanje kako bi u nju spremali
     vaše omiljene postavke.

  6. Kada tipkate naredbu koja započinje sa  :
     pritisnite CTRL-D kako bi vidjeli moguće valjane vrijednosti.
     Pritisnite <TAB> kako bi odabrali jednu od njih.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Kraj.  Cilj priručnika je da pokaže kratak pregled Vim editora, tek toliko
  da omogući njegovo korištenje. Priručnik nije potpun jer Vim ima mnogo više
  naredbi. Za više informacija: ":help user-manual".

  Za čitanje i korištenje, preporučamo:
	Vim - Vi Improved - by Steve Oualline
	Izdavač: New Riders
  Prva knjiga potpuno posvećena Vim-u. Vrlo korisna za početnike.
  Sa mnogo primjera i slika.
  Posjetite http://iccf-holland.org/click5.html

  Sljedeća knjiga je nešto starija i više o Vi-u nego o Vim-u, preporučamo:
	Learning the Vi Editor - by Linda Lamb
	Izdavač: O'Reilly & Associates Inc.
  Solidna knjiga, možete saznati skoro sve što možete napraviti
  u Vi-u. Šesto izdanje ima nešto informacija i o Vim-u.

  Ovaj priručnik su napisali: Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines koristeći ideje Charles Smith,
  Colorado State University.  E-pošta: bware@mines.colorado.edu.

  Naknadne promjene napravio je Bram Moolenaar.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Preveo na hrvatski: Paul B. Mahol <onemda@gmail.com>
  Preinaka 1.42, Lipanj 2008


PK�j�Z�G$�V�V�vim80/tutor/tutor.de.utf-8nu�[���===============================================================================
=      W i l l k o m m e n   im   V I M   T u t o r    -    Version 1.7.de.1  =
===============================================================================

   Vim ist ein sehr mächtiger Editor, der viele Befehle bereitstellt; zu viele,
   um alle in einem Tutor wie diesem zu erklären.  Dieser Tutor ist so
   gestaltet, um genug Befehle vorzustellen, dass Du die Fähigkeit erlangst,
   Vim mit Leichtigkeit als einen Allzweck-Editor zu verwenden.
   Die Zeit für das Durcharbeiten dieses Tutors beträgt ca. 25-30 Minuten,
   abhängig davon, wie viel Zeit Du mit Experimentieren verbringst.

   ACHTUNG:
   Die in den Lektionen angewendeten Kommandos werden den Text modifizieren.
   Erstelle eine Kopie dieser Datei, in der Du üben willst (falls Du "vimtutor"
   aufgerufen hast, ist dies bereits eine Kopie).

   Es ist wichtig, sich zu vergegenwärtigen, dass dieser Tutor für das Anwenden
   konzipiert ist. Das bedeutet, dass Du die Befehle anwenden musst, um sie
   richtig zu lernen. Wenn Du nur den Text liest, vergisst Du die Befehle!

   Jetzt stelle sicher, dass deine Umstelltaste NICHT gedrückt ist und betätige
   die   j   Taste genügend Mal, um den Cursor nach unten zu bewegen, so dass
   Lektion 1.1 den Bildschirm vollkommen ausfüllt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 1.1: BEWEGEN DES CURSORS

  ** Um den Cursor zu bewegen, drücke die h,j,k,l Tasten wie unten gezeigt. **
	     ^		 Hilfestellung:
	     k		 Die h Taste befindet sich links und bewegt nach links.
       < h	 l >	 Die l Taste liegt rechts und bewegt nach rechts.
	     j		 Die j Taste ähnelt einem Pfeil nach unten.
	     v
  1. Bewege den Cursor auf dem Bildschirm umher, bis Du Dich sicher fühlst.

  2. Halte die Nach-Unten-Taste (j) gedrückt, bis sie sich wiederholt.
     Jetzt weißt Du, wie Du Dich zur nächsten Lektion bewegen kannst.

  3. Benutze die Nach-Unten-Taste, um Dich zu Lektion 1.2 zu bewegen.

Anmerkung: Immer, wenn Du Dir unsicher bist über das, was Du getippt hast,
	   drücke <ESC> , um Dich in den Normalmodus zu begeben.
	   Dann gib das gewünschte Kommando noch einmal ein.

Anmerkung: Die Cursor-Tasten sollten ebenfalls funktionieren.  Aber wenn Du
	   hjkl benutzt, wirst Du in der Lage sein, Dich sehr viel schneller
	   umherzubewegen, wenn Du Dich einmal daran gewöhnt hast. Wirklich!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lektion 1.2: VIM BEENDEN


  !! Hinweis: Bevor Du einen der unten aufgeführten Schritte ausführst, lies
     diese gesamte Lektion!!

  1. Drücke die <ESC> Taste (um sicherzustellen, dass Du im Normalmodus bist).

  2. Tippe:	:q! <ENTER>.
     Dies beendet den Editor und VERWIRFT alle Änderungen, die Du gemacht hast.

  3. Wenn Du die Eingabeaufforderung siehst, gib das Kommando ein, das Dich zu
     diesem Tutor geführt hat. Dies wäre:	vimtutor <ENTER>

  4. Wenn Du Dir diese Schritte eingeprägt hast und Du Dich sicher fühlst,
     führe Schritte 1 bis 3 aus, um den Editor zu verlassen und wieder
     hineinzugelangen.

Anmerkung:  :q! <ENTER>  verwirft alle Änderungen, die Du gemacht hast. Einige
     Lektionen später lernst Du, die Änderungen in einer Datei zu speichern.

  5. Bewege den Cursor abwärts zu Lektion 1.3.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.3: TEXT EDITIEREN - LÖSCHEN


	 ** Drücke  x  , um das Zeichen unter dem Cursor zu löschen. **

  1. Bewege den Cursor zu der mit ---> markierten Zeile unten.

  2. Um die Fehler zu beheben, bewege den Cursor, bis er über dem Zeichen steht,
     das gelöscht werden soll.

  3. Drücke die  x  Taste, um das unerwünschte Zeichen zu löschen.

  4. Wiederhole die Schritte 2 bis 4, bis der Satz korrekt ist.

---> Die Kkuh sprangg übberr deen Moond.

  5. Nun, da die Zeile korrekt ist, gehe weiter zur Lektion 1.4.

Anmerkung: Während Du durch diesen Tutor gehst, versuche nicht, auswendig zu
    lernen, lerne vielmehr durch Anwenden.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.4: TEXT EDITIEREN - EINFÜGEN


		    **  Drücke  i  , um Text einzufügen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Um die erste Zeile mit der zweiten gleichzumachen, bewege den Cursor auf
     das erste Zeichen NACH der Stelle, an der Text eingefügt werden soll.

  3. Drücke  i  und gib die nötigen Ergänzungen ein.

  4. Wenn jeweils ein Fehler beseitigt ist, drücke <ESC> , um zum Normalmodus
     zurückzukehren.
		 Wiederhole Schritte 2 bis 4, um den Satz zu korrigieren.

---> In dieser ft etwas .
---> In dieser Zeile fehlt etwas Text.

  5. Wenn Du Dich mit dem Einfügen von Text sicher fühlst, gehe zu Lektion 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.5: TEXT EDITIEREN - ANFÜGEN


		     ** Drücke  A  , um Text anzufügen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
     Dabei ist gleichgültig, auf welchem Zeichen der Zeile der Cursor steht.

  2. Drücke  A  und gib die erforderlichen Ergänzungen ein.

  3. Wenn das Anfügen abgeschlossen ist, drücke <ESC>, um in den Normalmodus
     zurückzukehren.

  4. Bewege den Cursor zur zweiten mit ---> markierten Zeile und wiederhole
     die Schritte 2 und 3, um den Satz zu auszubessern.

---> In dieser Zeile feh
     In dieser Zeile fehlt etwas Text.
---> Auch hier steh
     Auch hier steht etwas Unvollständiges.

  5. Wenn Du dich mit dem Anfügen von Text sicher fühlst, gehe zu Lektion 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 1.6: EINE DATEI EDITIEREN

		 ** Benutze  :wq  , um eine Datei zu speichern und Vim zu verlassen. **

  !! Hinweis: Bevor Du einen der unten aufgeführten Schritte ausführst, lies
     diese gesamte Lektion!!

  1. Verlasse den Editor so wie in Lektion 1.2:  :q!       
	   Oder, falls du Zugriff zu einem anderen Terminal hast, führe das 
		 Folgende dort aus.

  2. Gib dieses Kommando in die Eingabeaufforderung ein:  vim tutor <ENTER>
     'vim' ist der Aufruf des Editors, 'tutor' ist die zu editierende Datei.
     Benutze eine Datei, die geändert werden darf.

  3. Füge Text ein oder lösche ihn, wie Du in den vorangehenden Lektionen 
     gelernt hast.

  4. Speichere die geänderte Datei und verlasse Vim mit:  :wq  <ENTER>

  5. Falls Du in Schritt 1 den vimtutor beendet hast, starte vimtutor neu und
	   bewege dich abwärts bis zur folgenden Zusammenfassung.

  6. Nachdem Du obige Schritte gelesen und verstanden hast: führe sie durch.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 1


  1. Der Cursor wird mit den Pfeiltasten oder den Tasten hjkl bewegt.
	 h (links)     j (unten)     k (aufwärts)    l (rechts)

  2. Um Vim aus der Eingabeaufforderung zu starten, tippe: vim DATEI <ENTER>

  3. Um Vim zu verlassen und alle Änderungen zu verwerfen, tippe:
		<ESC>  :q!  <ENTER> .

  4. Um das Zeichen unter dem Cursor zu löschen, tippe:  x

  5. Um Text einzufügen oder anzufügen, tippe:
	 i   Einzufügenden Text eingeben   <ESC>    Einfügen vor dem Cursor
	 A   Anzufügenden Text eingeben    <ESC>    Anfügen nach dem Zeilenende

Anmerkung: Drücken von <ESC> bringt Dich in den Normalmodus oder bricht ein
     ungewolltes, erst teilweise eingegebenes Kommando ab.

     Nun fahre mit Lektion 2 fort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lektion 2.1: LÖSCHKOMMANDOS


		   ** Tippe  dw  , um ein Wort zu löschen. **

  1. Drücke  <ESC>  , um sicherzustellen, dass Du im Normalmodus bist.

  2. Bewege den Cursor zu der mit ---> markierten Zeile unten.

  3. Bewege den Cursor zum Anfang eines Wortes, das gelöscht werden soll.

  4. Tippe  dw  , um das Wort zu entfernen.

  Anmerkung: Der Buchstabe  d  erscheint auf der untersten Zeile des Schirms,
        wenn Du ihn eingibst. Vim wartet darauf, dass Du  w  eingibst. Falls Du
        ein anderes Zeichen als  d  siehst, hast Du etwas Falsches getippt;
        drücke <ESC> und beginne noch einmal.

---> Einige Wörter lustig gehören nicht Papier in diesen Satz.

  5. Wiederhole die Schritte 3 und 4, bis der Satz korrekt ist und gehe
     zur Lektion 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 2.2: WEITERE LÖSCHKOMMANDOS


	    ** Tippe  d$  , um bis zum Ende der Zeile zu löschen. **

  1. Drücke <ESC> , um sicherzustellen, dass Du im Normalmodus bist.

  2. Bewege den Cursor zu der mit ---> markierten Zeile unten.

  3. Bewege den Cursor zum Ende der korrekten Zeile (NACH dem ersten . ).

  4. Tippe    d$    , um bis zum Zeilenende zu löschen.

---> Jemand hat das Ende der Zeile doppelt eingegeben. doppelt eingegeben.


  5. Gehe weiter zur Lektion 2.3 , um zu verstehen, was hierbei vorgeht.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lektion 2.3: ÜBER OPERATOREN UND BEWEGUNGSZÜGE


  Viele Kommandos, die Text ändern, setzen sich aus einem Operator und einer
  Bewegung zusammen. Das Format für ein Löschkommando mit dem Löschoperator  d
  lautet wie folgt:

    d  Bewegung

  wobei:
    d        - der Löschoperator
    Bewegung - worauf der Löschoperator angewandt wird (unten aufgeführt).

  Eine kleine Auflistung von Bewegungen:
    w - bis zum Beginn des nächsten Wortes OHNE dessen erstes Zeichen.
    e - zum Ende des aktuellen Wortes MIT dessen letztem Zeichen.
    $ - zum Ende der Zeile MIT dem letzten Zeichen.

  Dementsprechend löscht die Eingabe von  de  vom Cursor an bis zum Wortende.

Anmerkung:  Die Eingabe lediglich des Bewegungsteils im Normalmodus bewegt den
  Cursor entsprechend.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	Lektion 2.4: ANWENDUNG EINES ZÄHLERS FÜR EINEN BEWEGUNGSSCHRITT


   ** Die Eingabe einer Zahl vor einem Bewegungsschritt wiederholt diesen. **

  1. Bewege den Cursor zum Beginn der mit ---> markierten Zeile unten.

  2. Tippe  2w  , um den Cursor zwei Wörter vorwärts zu bewegen.

  3. Tippe  3e  , um den Cursor zum Ende des dritten Wortes zu bewegen.

  4. Tippe  0  (Null) , um zum Anfang der Zeile zu gelangen.

  5. Wiederhole Schritte 2 und 3 mit verschiedenen Nummern.

  ---> Dies ist nur eine Zeile aus Wörtern, um sich darin herumzubewegen.

  6. Gehe weiter zu Lektion 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	 Lektion 2.5: ANWENDUNG EINES ZÄHLERS FÜR MEHRERE LÖSCHVORGÄNGE


   ** Die Eingabe einer Zahl mit einem Operator wiederholt diesen mehrfach. **

  In der Kombination aus Löschoperator und Bewegungsschritt (siehe oben) 
  stellt man, um mehr zu löschen dem Schritt einen Zähler voran:
	 d  Nummer  Bewegungsschritt

  1. Bewege den Cursor zum ersten Wort in GROSSBUCHSTABEN in der mit --->
     markieren Zeile.

  2. Tippe  d2w  , um die zwei Wörter in GROSSBUCHSTABEN zu löschen.

  3. Wiederhole Schritte 1 und  2 mit einem anderen Zähler, um die darauffol-
     genden Wörter in GROSSBUCHSTABEN mit einem einzigen Kommando zu löschen.

--->  Diese ABC DE Zeile FGHI JK LMN OP mit Wörtern ist Q RS TUV bereinigt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 2.6: ARBEITEN AUF ZEILEN


	       ** Tippe  dd  , um eine ganze Zeile zu löschen. **

  Wegen der Häufigkeit, dass man ganze Zeilen löscht, kamen die Entwickler von
  Vi darauf, dass es leichter wäre, einfach zwei d's einzugeben, um eine Zeile
  zu löschen.

  1. Bewege den Cursor zur zweiten Zeile in der unten stehenden Redewendung.
  2. Tippe  dd  , um die Zeile zu löschen.
  3. Nun bewege Dich zur vierten Zeile.
  4. Tippe  2dd  , um zwei Zeilen zu löschen.

--->  1)  Rosen sind rot,
--->  2)  Matsch ist lustig,
--->  3)  Veilchen sind blau,
--->  4)  Ich habe ein Auto,
--->  5)  Die Uhr sagt die Zeit,
--->  6)  Zucker ist süß,
--->  7)  So wie Du auch.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 2.7: RÜCKGÄNGIG MACHEN (UNDO)


	 ** Tippe u , um die letzten Kommandos rückgängig zu machen **
	      ** oder U , um eine ganze Zeile wiederherzustellen. **

  1. Bewege den Cursor zu der mit ---> markierten Zeile unten
     und setze ihn auf den ersten Fehler.
  2. Tippe  x  , um das erste unerwünschte Zeichen zu löschen.
  3. Nun tippe  u  , um das soeben ausgeführte Kommando rückgängig zu machen.
  4. Jetzt behebe alle Fehler auf der Zeile mit Hilfe des x  Kommandos.
  5. Nun tippe ein großes  U , um die Zeile in ihren Ursprungszustand
     wiederherzustellen.
  6. Nun tippe  u  einige Male, um das U und die vorhergehenden Kommandos
     rückgängig zu machen.
  7. Nun tippe CTRL-R (halte CTRL gedrückt und drücke R) mehrere Male, um die
     Kommandos wiederherzustellen (die Rückgängigmachungen rückgängig machen).

---> Beehebe die Fehller diesser Zeile und sttelle sie mitt 'undo' wieder her.

  8. Dies sind sehr nützliche Kommandos.  Nun gehe weiter zur Zusammenfassung 
     von Lektion 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 2


  1. Um vom Cursor bis zum nächsten Wort zu löschen, tippe:    dw
  2. Um vom Cursor bis zum Ende einer Zeile zu löschen, tippe:     d$
  3. Um eine ganze Zeile zu löschen, tippe:    dd

  4. Um eine Bewegung zu wiederholen, stelle eine Nummer voran:   2w
  5. Das Format für ein Änderungskommando ist:
               Operator   [Anzahl]   Bewegungsschritt
     wobei:
       Operator - gibt an, was getan werden soll, zum Beispiel  d  für delete
       [Anzahl] - ein optionaler Zähler, um den Bewegungsschritt zu wiederholen
       Bewegungsschritt - Bewegung über den zu ändernden Text, wie
		  w (Wort), $ (zum Ende der Zeile), etc.

  6. Um Dich zum Anfang der Zeile zu begeben, benutze die Null:  0

  7. Um vorherige Aktionen rückgängig zu machen, tippe:		u (kleines u)
     Um alle Änderungen auf einer Zeile rückgängig zu machen:   U (großes U)
     Um die Rückgängigmachungen rückgängig zu machen, tippe:    CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lektion 3.1: ANFÜGEN (PUT)


     ** Tippe  p  , um vorher gelöschten Text nach dem Cursor anzufügen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Tippe  dd  , um die Zeile zu löschen und sie in einem Vim-Register zu
     speichern.

  3. Bewege den Cursor zur Zeile c), ÜBER derjenigen, wo die gelöschte Zeile
     platziert werden soll.

  4.  Tippe   p   , um die Zeile unterhalb des Cursors zu platzieren.

  5. Wiederhole die Schritte 2 bis 4, um alle Zeilen in die richtige
     Reihenfolge zu bringen.

---> d) Kannst Du das auch?
---> b) Veilchen sind blau,
---> c) Intelligenz ist lernbar,
---> a) Rosen sind rot,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 3.2: ERSETZEN (REPLACE)


   ** Tippe  rx  , um das Zeichen unter dem Cursor durch  x zu ersetzen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Bewege den Cursor, bis er sich auf dem ersten Fehler befindet.

  3. Tippe  r  und anschließend das Zeichen, welches dort stehen sollte.

  4. Wiederhole Schritte 2 und 3, bis die erste Zeile gleich der zweiten ist.

--->  Alf diese Zeite eingegoben wurde, wurden einike falsche Tasten gelippt!
--->  Als diese Zeile eingegeben wurde, wurden einige falsche Tasten getippt!

  5. Nun fahre fort mit Lektion 3.2.

Anmerkung: Erinnere Dich daran, dass Du durch Anwenden lernen solltest, nicht 
     durch Auswendiglernen.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lektion 3.3: ÄNDERN (CHANGE)


      ** Um eine Änderung bis zum Wortende durchzuführen, tippe  ce . **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Platziere den Cursor auf das  s  von Wstwr.

  3. Tippe  ce  und die Wortkorrektur ein (in diesem Fall tippe  örter ).

  4. Drücke <ESC> und bewege den Cursor zum nächsten zu ändernden Zeichen.

  5. Wiederhole Schritte 3 und 4 bis der erste Satz gleich dem zweiten ist.

---> Einige Wstwr dieser Zlaww lasdjlaf mit dem Ändern-Operator gaaauu werden.
---> Einige Wörter dieser Zeile sollen mit dem Ändern-Operator geändert werden.

Beachte, dass  ce  das Wort löscht und Dich in den Eingabemodus versetzt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 3.4: MEHR ÄNDERUNGEN MITTELS c


     ** Das change-Kommando arbeitet mit denselben Bewegungen wie delete.  **

  1. Der change Operator arbeitet in gleicher Weise wie delete. Das Format ist:

         c    [Anzahl]  Bewegungsschritt

  2. Die Bewegungsschritte sind die gleichen , so wie  w  (Wort) und  $
     (Zeilenende).

  3. Bewege Dich zur ersten unten stehenden mit ---> markierten Zeile.

  4. Bewege den Cursor zum ersten Fehler.

  5. Tippe  c$  , gib den Rest der Zeile wie in der zweiten ein, drücke <ESC> .

---> Das Ende dieser Zeile soll an die zweite Zeile angeglichen werden.
---> Das Ende dieser Zeile soll mit dem  c$  Kommando korrigiert werden.

Anmerkung: Du kannst die Rücktaste benutzen, um Tippfehler zu korrigieren.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 3


  1. Um einen vorher gelöschten Text anzufügen, tippe   p . Dies fügt den
     gelöschten Text NACH dem Cursor an (wenn eine ganze Zeile gelöscht wurde,
     wird diese in die Zeile unter dem Cursor eingefügt).

  2. Um das Zeichen unter dem Cursor zu ersetzen, tippe   r   und danach das 
     an dieser Stelle gewollte Zeichen.

  3. Der Änderungs- (change) Operator erlaubt, vom Cursor bis zum Ende des
     Bewegungsschrittes zu ändern. Tippe  ce  , um eine Änderung vom Cursor bis
     zum Ende des Wortes vorzunehmen;  c$  bis zum Ende einer Zeile.

  4. Das Format für change ist:

	 c   [Anzahl]  Bewegungsschritt

  Nun fahre mit der nächsten Lektion fort.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lektion 4.1: CURSORPOSITION UND DATEISTATUS

 ** Tippe CTRL-G , um deine Dateiposition sowie den Dateistatus anzuzeigen. **
     ** Tippe G , um Dich zu einer Zeile in der Datei zu begeben. **

Anmerkung: Lies diese gesamte Lektion, bevor Du irgendeinen Schritt ausführst!!

  1. Halte die Ctrl Taste unten und drücke  g . Dies nennen wir CTRL-G.
     Eine Statusmeldung am Fuß der Seite erscheint mit dem Dateinamen und der
     Position innerhalb der Datei. Merke Dir die Zeilennummer für Schritt 3.

Anmerkung: Möglicherweise siehst Du die Cursorposition in der unteren rechten
      Bildschirmecke. Dies ist Auswirkung der 'ruler' Option 
	  (siehe :help 'ruler')

  2. Drücke  G  , um Dich zum Ende der Datei zu begeben.
     Tippe  gg  , um Dich zum Anfang der Datei zu begeben.

  3. Gib die Nummer der Zeile ein, auf der Du vorher warst, gefolgt von  G .
     Dies bringt Dich zurück zu der Zeile, auf der Du gestanden hast, als Du
     das erste Mal CTRL-G gedrückt hast.

  4. Wenn Du Dich sicher genug fühlst, führe die Schritte 1 bis 3 aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 4.2: DAS SUCHEN - KOMMANDO


  ** Tippe  /  gefolgt von einem Ausdruck, um nach dem Ausdruck zu suchen. **

  1. Im Normalmodus, tippe das  /  Zeichen.  Beachte, dass das  / und der
     Cursor am Fuß des Schirms erscheinen, so wie beim :	Kommando.

  2. Nun tippe 'Fehhler' <ENTER>. Dies ist das Wort, nach dem Du suchen willst.

  3. Um nach demselben Ausdruck weiterzusuchen, tippe einfach  n (für next).
     Um nach demselben Ausdruck in der Gegenrichtung zu suchen, tippe  N .

  4. Um nach einem Ausdruck rückwärts zu suchen , benutze  ?  statt  / .

  5. Um dahin zurückzukehren, von wo Du gekommen bist, drücke CTRL-O (Halte
     Ctrl unten und drücke den Buchstaben o). Wiederhole dies, um noch weiter
     zurückzugehen.  CTRL-I geht vorwärts.

--->  Fehler schreibt sich nicht "Fehhler"; Fehhler ist ein Fehler
Anmerkung: Wenn die Suche das Dateiende erreicht hat, wird sie am Anfang
        fortgesetzt, es sei denn, die 'wrapscan' Option wurde abgeschaltet.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 4.3: PASSENDE KLAMMERN FINDEN


   ** Tippe  % , um eine gegenüberliegenden Klammer ),], oder } zu finden. **

  1. Platziere den Cursor auf irgendeinem der Zeichen (, [, oder { in der unten
     stehenden Zeile, die mit ---> markiert ist.

  2. Nun tippe das  %  Zeichen.

  3. Der Cursor bewegt sich zur passenden gegenüberliegenden Klammer.

  4. Tippe  % , um den Cursor zur passenden anderen Klammer zu bewegen.

  5. Setze den Cursor auf ein anderes (,),[,],{ oder } und probiere  %  aus.

---> Dies ( ist eine Testzeile ( mit [ verschiedenen ] { Klammern }  darin. ))

Anmerkung: Diese Funktionalität ist sehr nützlich bei der Fehlersuche in einem
     Programmtext, in dem passende Klammern fehlen!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 4.4: DAS ERSETZUNGSKOMMANDO (SUBSTITUTE)


	 ** Tippe :s/alt/neu/g  , um 'alt' durch 'neu' zu ersetzen. **

  1. Bewege den Cursor zu der unten stehenden mit ---> markierten Zeile.

  2. Tippe  :s/diee/die <ENTER> .  Beachte, dass der Befehl nur das erste
     Vorkommen von "diee" ersetzt.

  3. Nun tippe   :s/diee/die/g . Das Zufügen des Flags  g   bedeutet, eine
     globale Ersetzung über die Zeile durchzuführen, dies ersetzt alle 
	 Vorkommen von "diee" auf der Zeile.

---> diee schönste Zeit, um diee Blumen anzuschauen, ist diee Frühlingszeit.

  4. Um alle Vorkommen einer Zeichenkette innerhalb zweier Zeilen zu ändern,
     tippe  :#,#s/alt/neu/g  wobei #,# die Zeilennummern des Bereiches sind,
                             in dem die Ersetzung durchgeführt werden soll.
     Tippe  :%s/alt/neu/g    um alle Vorkommen in der gesamten Datei zu ändern.
     Tippe  :%s/alt/neu/gc   um alle Vorkommen in der gesamten Datei zu finden
                     mit einem Fragedialog, ob ersetzt werden soll oder nicht.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 4

  1. CTRL-G  zeigt die aktuelle Dateiposition sowie den Dateistatus.
             G  bringt Dich zum Ende der Datei.
     Nummer  G  bringt Dich zur entsprechenden Zeilennummer.
            gg  bringt Dich zur ersten Zeile.

  2. Die Eingabe von  /  plus einem Ausdruck sucht VORWÄRTS nach dem Ausdruck.
     Die Eingabe von  ?  plus einem Ausdruck sucht RÜCKWÄRTS nach dem Ausdruck.
     Tippe nach einer Suche  n  , um das nächste Vorkommen in der gleichen
     Richtung zu finden; oder  N  , um in der Gegenrichtung zu suchen.
     CTRL-O bringt Dich zurück zu älteren Positionen, CTRL-I zu neueren.

  3. Die Eingabe von  %  , wenn der Cursor sich auf (,),[,],{, oder }
     befindet, bringt Dich zur Gegenklammer.

  4. Um das erste Vorkommen von "alt" in einer Zeile durch "neu" zu ersetzen,
             tippe       :s/alt/neu
     Um alle Vorkommen von "alt" in der Zeile ersetzen, tippe  :s/alt/neu/g
     Um Ausdrücke innerhalb zweier Zeilen # zu ersetzen        :#,#s/alt/neu/g
     Um alle Vorkommen in der ganzen Datei zu ersetzen, tippe  :%s/alt/neu/g
     Für eine jedesmalige Bestätigung, addiere 'c' (confirm)   :%s/alt/neu/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 5.1: AUSFÜHREN EINES EXTERNEN KOMMANDOS


  ** Gib  :! , gefolgt von einem externen Kommando ein, um es auszuführen. **

  1. Tippe das vertraute Kommando  :  , um den Cursor auf den Fuß des Schirms
     zu setzen. Dies erlaubt Dir, ein Kommandozeilen-Kommando einzugeben.

  2. Nun tippe ein  !  (Ausrufezeichen).  Dies ermöglicht Dir, ein beliebiges,
     externes Shellkommando auszuführen.

  3. Als Beispiel tippe   ls   nach dem  !  und drücke <ENTER>. Dies liefert
     eine Auflistung deines Verzeichnisses; genauso, als wenn Du in der
     Eingabeaufforderung wärst.  Oder verwende  :!dir  , falls ls nicht geht.

Anmerkung:  Mit dieser Methode kann jedes beliebige externe Kommando
     ausgeführt werden, auch mit Argumenten.

Anmerkung:  Alle  :  Kommandos müssen durch Eingabe von <ENTER>
     abgeschlossen werden. Von jetzt an erwähnen wir dies nicht jedesmal.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 5.2: MEHR ÜBER DAS SCHREIBEN VON DATEIEN


** Um am Text durchgeführte Änderungen zu speichern, tippe :w DATEINAME. **

  1. Tippe  :!dir  oder  :!ls  , um eine Auflistung deines Verzeichnisses zu
     erhalten.  Du weißt nun bereits, dass Du danach <ENTER> eingeben musst.

  2. Wähle einen Dateinamen, der noch nicht existiert, z.B. TEST.

  3. Nun tippe:  :w TEST   (wobei TEST der gewählte Dateiname ist).

  4. Dies speichert die ganze Datei (den Vim Tutor) unter dem Namen TEST.
     Um dies zu überprüfen, tippe nochmals  :!ls  bzw.  !dir, um deinen
     Verzeichnisinhalt zu sehen.

Anmerkung: Würdest Du Vim jetzt beenden und danach wieder mit vim TEST
    starten, dann wäre diese Datei eine exakte Kopie des Tutors zu dem
    Zeitpunkt, als Du ihn gespeichert hast.

  5. Nun entferne die Datei durch Eingabe von (MS-DOS):    :!del TEST
                      oder (Unix):                         :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lektion 5.3: AUSWÄHLEN VON TEXT ZUM SCHREIBEN

** Um einen Abschnitt der Datei zu speichern,  tippe  v  Bewegung  :w DATEI **

  1. Bewege den Cursor zu dieser Zeile.

  2. Tippe  v  und bewege den Cursor zum fünften Auflistungspunkt unten.
     Beachte, dass der Text hervorgehoben wird.

  3. Drücke das Zeichen  : . Am Fuß des Schirms erscheint  :'<,'> .

  4. Tippe  w TEST  , wobei TEST ein noch nicht vorhandener Dateiname ist.
     Vergewissere Dich, dass Du  :'<,'>w TEST  siehst, bevor Du <ENTER> drückst.

  5. Vim schreibt die ausgewählten Zeilen in die Datei TEST. Benutze  :!dir
     oder  :!ls , um sie zu sehen. Lösche sie noch nicht! Wir werden sie in
     der nächsten Lektion benutzen.

Hinweis: Drücken von  v  startet die Visuelle Auswahl. Du kannst den Cursor
   umherbewegen, um die Auswahl zu vergrößern oder zu verkleinern. Anschließend
   lässt sich ein Operator anwenden, um mit dem Text etwas zu tun. Zum Beispiel
   löscht  d  den Text.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lektion 5.4: EINLESEN UND ZUSAMMENFÜHREN VON DATEIEN


       ** Um den Inhalt einer Datei einzulesen, tippe  :r DATEINAME  **

  1. Platziere den Cursor direkt über dieser Zeile.

BEACHTE:  Nachdem Du Schritt 2 ausgeführt hast, wirst Du Text aus Lektion 5.3
       sehen. Dann bewege Dich wieder ABWÄRTS, Lektion 5.4 wiederzusehen.

  2. Nun lies deine Datei TEST ein indem Du das Kommando  :r TEST  ausführst,
     wobei TEST der von Dir verwendete Dateiname ist.
     Die eingelesene Datei wird unterhalb der Cursorzeile eingefügt.

  3. Um zu überprüfen, dass die Datei eingelesen wurde, gehe zurück und 
     beachte, dass es jetzt zwei Kopien von Lektion 5.3 gibt, das Original und 
	 die eingefügte Dateiversion.

Anmerkung: Du kannst auch die Ausgabe eines externen Kommandos einlesen. Zum
     Beispiel liest  :r !ls  die Ausgabe des Kommandos ls ein und platziert
     sie unterhalb des Cursors.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 5


  1. :!Kommando  führt ein externes Kommando aus.

      Einige nützliche Beispiele sind
	(MS-DOS)	  (Unix)
	 :!dir		   :!ls		   -  zeigt eine Verzeichnisauflistung.
	 :!del DATEINAME   :!rm DATEINAME  -  entfernt Datei DATEINAME.

  2. :w DATEINAME  speichert die aktuelle Vim-Datei unter dem Namen  DATEINAME.

  3. v  Bewegung  :w DATEINAME  schreibt die Visuell ausgewählten Zeilen in
     die Datei DATEINAME.

  4. :r DATEINAME  lädt die Datei DATEINAME und fügt sie unterhalb der
     Cursorposition ein.

  5. :r !dir  liest die Ausgabe des Kommandos dir und fügt sie unterhalb der
     Cursorposition ein.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 6.1: ZEILEN ÖFFNEN (OPEN)


   ** Tippe  o	, um eine Zeile unterhalb des Cursors zu öffnen und Dich in **
                      ** den Einfügemodus zu begeben. **

  1. Bewege den Cursor zu der ersten mit ---> markierten Zeile unten.

  2. Tippe o (klein geschrieben), um eine Zeile UNTERHALB des Cursors zu öffnen
     und Dich in den Einfügemodus zu begeben.

  3. Nun tippe etwas Text und drücke <ESC> , um den Einfügemodus zu verlassen.

---> Mit  o  wird der Cursor auf der offenen Zeile im Einfügemodus platziert.

  4. Um eine Zeile ÜBERHALB des Cursors aufzumachen, gib einfach ein großes  O
     statt einem kleinen  o  ein. Versuche dies auf der unten stehenden Zeile.

---> Öffne eine Zeile über dieser mit O , wenn der Cursor auf dieser Zeile ist.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 6.2: TEXT ANFÜGEN (APPEND)


	     ** Tippe  a  , um Text NACH dem Cursor einzufügen. **

  1. Bewege den Cursor zum Anfang der ersten Übungszeile mit ---> unten.

  2. Drücke  e  , bis der Cursor am Ende von  Zei  steht.

  3. Tippe ein kleines  a  , um Text NACH dem Cursor anzufügen.

  4. Vervollständige das Wort so wie in der Zeile darunter.  Drücke <ESC> ,
     um den Einfügemodus zu verlassen.

  5. Bewege Dich mit  e  zum nächsten unvollständigen Wort und wiederhole
     Schritte 3 und 4.

---> Diese Zei bietet Gelegen , Text in einer Zeile anzufü.
---> Diese Zeile bietet Gelegenheit, Text in einer Zeile anzufügen.

Anmerkung:  a, i und A gehen alle gleichermaßen in den Einfügemodus; der
            einzige Unterschied ist, wo die Zeichen eingefügt werden.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lektion 6.3: EINE ANDERE ART DES ERSETZENS (REPLACE)


       ** Tippe ein großes  R  , um mehr als ein Zeichen zu ersetzen. **

  1. Bewege den Cursor zur ersten unten stehenden, mit ---> markierten Zeile.
     Bewege den Cursor zum Anfang des ersten  xxx .

  2. Nun drücke  R  und tippe die Nummer, die darunter in der zweiten Zeile
     steht, so dass diese das xxx ersetzt.

  3. Drücke <ESC> , um den Ersetzungsmodus zu verlassen. Beachte, dass der Rest
     der Zeile unverändert bleibt.

  4. Wiederhole die Schritte, um das verbliebene xxx zu ersetzen.

---> Das Addieren von 123 zu xxx ergibt xxx.
---> Das Addieren von 123 zu 456 ergibt 579.

Anmerkung: Der Ersetzungsmodus ist wie der Einfügemodus, aber jedes eingetippte
           Zeichen löscht ein vorhandenes Zeichen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lektion 6.4: TEXT KOPIEREN UND EINFÜGEN

 ** Benutze den  y  Operator, um Text zu kopieren;  p  , um ihn einzufügen **

  1. Gehe zu der mit ---> markierten Zeile unten; setze den Cursor hinter "a)".

  2. Starte den Visuellen Modus mit  v  , bewege den Cursor genau vor "erste".

  3. Tippe  y  , um den hervorgehoben Text zu kopieren.

  4. Bewege den Cursor zum Ende der nächsten Zeile:  j$

  5. Tippe  p , um den Text einzufügen und anschließend:  a zweite <ESC> .

  6. Benutze den Visuellen Modus, um " Eintrag." auszuwählen, kopiere mittels
     y , bewege Dich zum Ende der nächsten Zeile mit  j$  und füge den Text
     dort mit  p  an.

--->  a) dies ist der erste Eintrag.
      b)

Anmerkung: Du kannst  y  auch als Operator verwenden;  yw  kopiert ein Wort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lektion 6.5: OPTIONEN SETZEN

      ** Setze eine Option so, dass eine Suche oder Ersetzung Groß- **
		      ** und Kleinschreibung ignoriert **

  1. Suche nach 'ignoriere', indem Du    /ignoriere   eingibst.
     Wiederhole die Suche einige Male, indem Du die n - Taste drückst.

  2. Setze die 'ic' (Ignore case) - Option, indem Du   :set ic   eingibst.

  3. Nun suche wieder nach 'ignoriere', indem Du  n  tippst.
     Beachte, dass jetzt Ignoriere und auch IGNORIERE gefunden wird.

  4. Setze die 'hlsearch' und 'incsearch' - Optionen:     :set hls is

  5. Wiederhole die Suche und beobachte, was passiert: /ignoriere <ENTER>

  6. Um das Ignorieren von Groß/Kleinschreibung abzuschalten, tippe:  :set noic

Anmerkung: Um die Hervorhebung der Treffer zu entfernen, gib ein:  :nohlsearch
Anmerkung: Um die Schreibweise für eine einzige Suche zu ignorieren, benutze \c
           im Suchausdruck:  /ignoriere\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 6

 1. Tippe  o  , um eine Zeile UNTER dem Cursor zu öffnen und den Einfügemodus
                zu starten
    Tippe  O  , um eine Zeile ÜBER dem Cursor zu öffnen.

 2. Tippe  a  , um Text NACH dem Cursor anzufügen.
    Tippe  A  , um Text nach dem Zeilenende anzufügen.

 3. Das Kommando  e  bringt Dich zum Ende eines Wortes.

 4. Der Operator  y  (yank) kopiert Text,  p  (put) fügt ihn ein.

 5. Ein großes  R  geht in den Ersetzungsmodus bis zum Drücken von  <ESC> .

 6. Die Eingabe von ":set xxx" setzt die Option "xxx". Einige Optionen sind:
	'ic' 'ignorecase'    Ignoriere Groß/Kleinschreibung bei einer Suche
	'is' 'incsearch'     Zeige Teilübereinstimmungen für einen Suchausdruck
	'hls' 'hlsearch'     Hebe alle passenden Ausdrücke hervor
    Der Optionsname kann in der Kurz- oder der Langform angegeben werden.

 7. Stelle einer Option "no" voran, um sie abzuschalten:   :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 7.1 : AUFRUFEN VON HILFE


		     ** Nutze das eingebaute Hilfesystem **

  Vim besitzt ein umfassendes eingebautes Hilfesystem.  Für den Anfang probiere
  eins der drei folgenden Dinge aus:
	- Drücke die <Hilfe> - Taste (falls Du eine besitzt)
	- Drücke die <F1> Taste (falls Du eine besitzt)
	- Tippe   :help <ENTER>

  Lies den Text im Hilfefenster, um zu verstehen wie die Hilfe funktioniert.
  Tippe  CTRL-W CTRL-W   , um von einem Fenster zum anderen zu springen.
  Tippe   :q <ENTER>  , um das Hilfefenster zu schließen.

  Du kannst Hilfe zu praktisch jedem Thema finden, indem Du dem ":help"-
  Kommando ein Argument gibst.  Probiere folgendes (<ENTER> nicht vergessen):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 7.2: ERSTELLE EIN START-SKRIPT


	          **  Aktiviere die Features von Vim **

  Vim besitzt viele Funktionalitäten, die über Vi hinausgehen, aber die meisten
  von ihnen sind standardmäßig deaktiviert. Um mehr Funktionalitäten zu nutzen,
  musst Du eine "vimrc" - Datei erstellen.

  1. Starte das Editieren der "vimrc"-Datei, abhängig von deinem System:
	:e ~/.vimrc		für Unix
	:e $VIM/_vimrc		für MS-Windows

  2. Nun lies den Inhalt der Beispiel-"vimrc"-Datei ein:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Speichere die Datei mit:
	:w

  Beim nächsten Start von Vim wird die Syntaxhervorhebung aktiviert sein.
  Du kannst all deine bevorzugten Optionen zu dieser "vimrc"-Datei zufügen.
  Für mehr Informationen tippe  :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 7.3: VERVOLLSTÄNDIGEN


	   ** Kommandozeilenvervollständigung mit CTRL-D und <TAB> **

  1. Stelle sicher, dass Vim nicht im Vi-Kompatibilitätsmodus ist:  :set nocp

  2. Siehe nach, welche Dateien im Verzeichnis existieren:  :!ls  oder  :dir

  3. Tippe den Beginn eines Kommandos:  :e

  4. Drücke  CTRL-D  und Vim zeigt eine Liste mit "e" beginnender Kommandos.

  5. Drücke  <TAB>  und Vim vervollständigt den Kommandonamen zu ":edit".

  6. Nun füge ein Leerzeichen und den Anfang einer existierenden Datei an:
     :edit DAT

  7. Drücke <TAB>. Vim vervollständigt den Namen (falls er eindeutig ist).

Anmerkung: Vervollständigung funktioniert für viele Kommandos. Probiere
     einfach CTRL-D und <TAB>.  Dies ist insbesondere nützlich für  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				     ZUSAMMENFASSUNG VON LEKTION 7


  1. Tippe  :help  oder drücke <F1> oder <Help>, um ein Hilfefenster zu öffnen.

  2. Tippe  :help Kommando  , um Hilfe über  Kommando  zu erhalten.

  3. Tippe  CTRL-W CTRL-W  , um zum anderen Fenster zu springen.

  4. Tippe  :q  , um das Hilfefenster zu schließen.

  5. Erstelle ein vimrc - Startskript mit deinen bevorzugter Einstellungen.

  6. Drücke CTRL-D nach dem Tippen eines  :  Kommandos, um mögliche
     Vervollständigungen anzusehen.
     Drücke <TAB> , um eine Vervollständigung zu anzuwenden.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Damit ist der Vim Tutor beendet.  Seine Intention war, einen kurzen und
  bündigen Überblick über den Vim Editor zu geben; gerade genug, um relativ
  leicht mit ihm umgehen zu können.  Der Vim Tutor hat nicht den geringsten
  Anspruch auf Vollständigkeit; Vim hat noch weitaus mehr Kommandos. Lies als
  nächstes das User Manual: ":help user-manual".

  Für weiteres Lesen und Lernen ist folgendes Buch empfehlenswert :
	Vim - Vi Improved - von Steve Oualline
	Verlag: New Riders
  Das erste Buch, welches durchgängig Vim gewidmet ist.  Besonders nützlich
  für Anfänger.  Viele Beispiele und Bilder sind enthalten.
  Siehe http://iccf-holland.org/click5.html

  Folgendes Buch ist älter und mehr über Vi als Vim, aber auch empfehlenswert:
	Textbearbeitung mit dem Vi-Editor  -  von Linda Lamb und Arnold Robbins
	Verlag O'Reilly - ISBN: 3897211262
  In diesem Buch kann man fast alles finden, was man mit Vi tun möchte.
  Die sechste Ausgabe enthält auch Informationen über Vim.

  Als aktuelle Referenz für Version 6.2 und knappe Einführung dient das
  folgende Buch:
	vim ge-packt von Reinhard Wobst
	mitp-Verlag, ISBN 3-8266-1425-9
  Trotz der kompakten Darstellung ist es durch viele nützliche Beispiele auch
  für Einsteiger empfehlenswert.  Probekapitel und die Beispielskripte sind
  online erhältlich.  Siehe http://iccf-holland.org/click5.html

  Dieses Tutorial wurde geschrieben von Michael C. Pierce und Robert K. Ware,
  Colorado School of Mines. Es benutzt Ideen, die Charles Smith, Colorado State
  University, zur Verfügung stellte.  E-Mail: bware@mines.colorado.edu.

  Bearbeitet für Vim von Bram Moolenaar.
  Deutsche Übersetzung von Joachim Hofmann 2015.  E-Mail: Joachim.Hof@gmx.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�3[��vim80/tutor/tutor.ja.sjisnu�[���===============================================================================
=    V I M �� �{ (�`���[�g���A��) �� �� �� �� ��        -    Version 1.7      =
===============================================================================

     Vim �́A���̃`���[�g���A���Ő�����ɂ͑��������̃R�}���h��������
     �ɋ��͂ȃG�f�B�^�[�ł��B���̃`���[�g���A���́A���Ȃ��� Vim �𖜔\�G�f�B
     �^�[�Ƃ��Ďg�����Ȃ���悤�ɂȂ�̂ɏ\���ȃR�}���h�ɂ‚��Đ����悤
     �ɂȂ��Ă��܂��B

     �`���[�g���A���������̂ɕK�v�Ȏ��Ԃ́A�o�����R�}���h����̂ɂǂꂾ
     �����Ԃ�g���̂��ɂ���܂����A���悻25����30���ł��B

     ATTENTION:
     �ȉ��̗��K�p�R�}���h�ɂ͂��̕��͂�ύX�����̂���܂��B���K��n�߂�O
     �ɃR�s�[��쐬���܂��傤("vimtutor"�����Ȃ�΁A���ɃR�s�[����Ă��܂�)�B

     ���̃`���[�g���A�����A�g�����ƂŊo������d�g�݂ɂȂ��Ă��邱�Ƃ�A�S��
     �Ă����Ȃ���΂Ȃ�܂���B�������w�K����ɂ̓R�}���h��ۂɎ����Ȃ����
     �Ȃ�Ȃ��̂ł��B���͂�ǂ񂾂����Ȃ�΁A�����ƖY��Ă��܂��܂�!

     �����ACaps���b�N(Shift-Lock)�L�[��������Ă��Ȃ����Ƃ�m�F������A��ʂ�
     ���b�X��1.1 ���S���\�������Ƃ���܂ŁAj �L�[����ăJ�[�\����ړ�����
     ���傤�B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���b�X�� 1.1:  �J�[�\���̈ړ�


       ** �J�[�\����ړ�����ɂ́A�������l�� h,j,k,l ����܂� **
	     ^
	     k		    �q���g:  h �L�[�͍������Ɉړ����܂��B
       < h	 l >		     l �L�[�͉E�����Ɉړ����܂��B
	     j			     j �L�[�͉����L�[�̂悤�ȃL�[�ł��B
	     v
  1. �ړ��Ɋ����܂ŁA�X�N���[���ŃJ�[�\���ړ������܂��傤�B

  2. ���ւ̃L�[(j)����‚Â���ƁA�A�����Ĉړ��ł��܂��B
     ����Ŏ��̃��b�X���Ɉړ������@���킩��܂����ˁB

  3. ���ւ̃L�[��g���āA���b�X��1.2 �Ɉړ����܂��傤�B

NOTE: ����^�C�v���Ă��邩����Ȃ��Ȃ�����A<ESC>����ăm�[�}�����[�h�ɂ�
      �܂��B���ꂩ���͂��悤�Ƃ��Ă����R�}���h��ē��͂��܂��傤�B

NOTE: �J�[�\���L�[�ł�ړ��ł��܂��B������ hjkl �Ɉ�x����Ă��܂��΁A�͂邩
      �ɑ����ړ����邱�Ƃ��ł���ł��傤�B����}�W��!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���b�X�� 1.2: VIM �̋N���ƏI��


  !! NOTE: �ȉ��̂�����X�e�b�v��s���O�ɁA���̃��b�X����ǂ݂܂��傤!!

  1. <ESC>�L�[����܂��傤�B(�m���Ƀm�[�}�����[�h�ɂ��邽��)

  2. ���̂悤�Ƀ^�C�v:		:q! <ENTER>
     ����ɂ��ҏW������e��ۑ������ɃG�f�B�^���I�����܂��B

  3. ���̃`���[�g���A����n�߂�ׂ̃R�}���h��s����ƁA�����ɖ߂�܂��B
     ���̃R�}���h��:		vimtutor <ENTER>

  4. ����܂ł̃X�e�b�v��o�����M���‚����Ȃ�΁A�X�e�b�v 1 ���� 3 �܂ł�
     �ۂɎ����āAVim ��1�x�I�����Ă���ĂыN�����܂��傤�B

NOTE:  :q! <ENTER> �͑S�Ă̕ύX��j�����܂��B���b�X���ɂĕύX��t�@�C���ɕ�
       �������@�ɂ‚��Ă�׋����Ă����܂��傤�B

  5. 1.3�܂ŃJ�[�\����ړ������܂��傤�B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���b�X�� 1.3: �e�L�X�g�ҏW - �폜


    ** �m�[�}�����[�h�ɂăJ�[�\���̉��̕�����폜����ɂ� x ����܂� **

  1. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����܂��傤�B

  2. �ԈႢ��C�����邽�߂ɁA�폜����ŏ��̕����܂ŃJ�[�\����ړ����܂��B

  3. �s�K�v�ȕ����� x ����č폜���܂��傤�B

  4. �����������Ȃ�܂� �X�e�b�v 2 ���� 4 ��J��Ԃ��܂��傤�B

---> ���� �������� �� �‚‚��� �� �������Ă� �Ƃт͂˂���

  5. �s���������Ȃ�����A���b�X�� 1.4 �֐i�݂܂��傤�B

NOTE: �S�Ẵ��b�X����ʂ��āA�o���悤�Ƃ���̂ł͂Ȃ����ۂɂ��Ă݂܂��傤�B




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���b�X�� 1.4: �e�L�X�g�ҏW - �}��


	 ** �m�[�}�����[�h�ɂăe�L�X�g��}������ɂ� i ����܂� **

  1. �ȉ��� ---> �Ǝ����ꂽ�ŏ��̍s�ɃJ�[�\����ړ����܂��傤�B

  2. 1�s�ڂ�2�s�ڂƓ����l�ɂ��邽�߂ɁA�e�L�X�g��}�����Ȃ���΂Ȃ�Ȃ��ʒu
     �̎��̕����ɃJ�[�\����ړ����܂��B

  3. i �L�[����Ă���A�lj����K�v�ȕ�����^�C�v���܂��傤�B

  4. �ԈႢ��C�������� <ESC> ����ăR�}���h���[�h�ɖ߂�A���������ɂȂ�l
     �ɃX�e�b�v 2 ���� 4 ��J��Ԃ��܂��傤�B

---> ���� �ɂ� ����Ȃ� �e�L�X�g ����B
---> ���� �s �ɂ� ��‚� ����Ȃ� �e�L�X�g �� ����B

  5. �}���̕��@���킩�����烌�b�X�� 1.5 �֐i�݂܂��傤�B



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���b�X�� 1.5: �e�L�X�g�ҏW - �lj�


		 ** �e�L�X�g��lj�����ɂ� A ����܂��傤 **

  1. �ȉ��� ---> �Ǝ����ꂽ�ŏ��̍s�ɃJ�[�\����ړ����܂��傤�B
     �J�[�\�������̕�����ɂ����Ă��܂��܂���B

  2. �lj����K�v�ȏꏊ�� A ��^�C�v���܂��傤�B

  3. �e�L�X�g��lj����I������A <ESC> ����ăm�[�}�����[�h�ɖ߂�܂��傤�B

  4. 2�s�ڂ� ---> �Ǝ����ꂽ�ꏊ�ֈړ����A�X�e�b�v 2 ���� 3 ��J��Ԃ��ĕ��@
     ��C�����܂��傤�B

---> �����ɂ͊Ԉ����e�L�X�g������
     �����ɂ͊Ԉ����e�L�X�g������܂��B
---> �����ɂ�Ԉ����e�L�X
     �����ɂ�Ԉ����e�L�X�g������܂��B

  5. �e�L�X�g�̒lj����y���ɂȂ��Ă����烌�b�X�� 1.6 �֐i�݂܂��傤�B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���b�X�� 1.6: �t�@�C���̕ҏW


	   ** �t�@�C����ۑ����ďI������ɂ� :wq �ƃ^�C�v���܂� **

  !! NOTE: �ȉ��̃X�e�b�v��s����O�ɁA�܂��S�̂�ǂ�ł�������!!

  1. ���b�X�� 1.2 �ł����悤�� :q! ��^�C�v���āA���̃`���[�g���A����I��
     ���܂��B���邢�́A�ʂ̒[��������ꍇ�͂����ňȉ��̓�e��s���Ă��܂�
     �܂���B

  2. �V�F���v�����v�g�ł��̃R�}���h��^�C�v���܂�:  vim tutor <ENTER>
     'vim'�� Vim �G�f�B�^��N������R�}���h�A'tutor' �͕ҏW�������t�@�C����
     ���O�ł��B�ύX���Ă�悢�t�@�C����g���܂��傤�B

  3. �O�̃��b�X���Ŋw�񂾂悤�ɁA�e�L�X�g��}���A�폜���܂��B

  4. �ύX��t�@�C���ɕۑ����܂�:  :wq  <ENTER>

  5. �X�e�b�v 1 �� vimtutuor ��I�������ꍇ�� vimtutor ��ēx�N�����A�ȉ���
     �v��֐i�݂܂��傤�B

  6. �ȏ�̃X�e�b�v��ǂ�ŗ������ł����s���܂��傤�B
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���b�X�� 1 �v��


  1. �J�[�\���͖��L�[������ hjkl �L�[�ňړ����܂��B
	 h (��)		j (��)         k (��)	    l (�E)

  2. Vim ��N������ɂ̓v�����v�g���� vim �t�@�C���� <ENTER> �ƃ^�C�v���܂��B

  3. Vim ��I������ɂ�	   <ESC> :q!	 <ENTER>  �ƃ^�C�v���܂�(�ύX��j��)�B
               ������	   <ESC> :wq	 <ENTER>  �ƃ^�C�v���܂�(�ύX��ۑ�)�B

  4. �J�[�\���̉��̕�����폜����ɂ́A�m�[�}�����[�h�� x �ƃ^�C�v���܂��B

  5. �J�[�\���̈ʒu�ɕ�����}������ɂ́A�m�[�}�����[�h�� i �ƃ^�C�v���܂��B
	 i     �e�L�X�g�̃^�C�v	<ESC>         �J�[�\���ʒu�ɒlj�
	 A     �e�L�X�g�̒lj�   <ESC>         �s���ɒlj�

NOTE: <ESC> �L�[����ƃm�[�}�����[�h�Ɉڍs���܂��B���̍ہA�Ԉ������͓r
      ���̃R�}���h���������Ƃ��ł��܂��B

���āA�����ă��b�X�� 2 ��n�߂܂��傤�B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ���b�X�� 2.1: �폜�R�}���h


	    ** �P��̖����܂ł�폜����ɂ� dw �ƃ^�C�v���܂��傤 **

  1. �m�[�}�����[�h�ł��邱�Ƃ�m�F���邽�߂� <ESC> ����܂��傤�B

  2. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����܂��傤�B

  3. ���������P��̐擪�ɃJ�[�\����ړ����܂��傤�B

  4. �P���폜���邽�߂� dw �ƃ^�C�v���܂��傤�B

  NOTE: �^�C�v����ƁAdw �Ƃ����������X�N���[���̍ʼn��s�Ɍ����܂��B
        �^�C�v��Ԉ��Ă��܂������ɂ� <ESC> ����Ă�蒼���܂��傤�B

---> ���� �� �� �ɂ� �����‚��� ���̂��� �K�v�̂Ȃ� �P�� �� �܂܂�� ���܂��B

  5. 3 ���� 4 �܂ł𕶂��������Ȃ�܂ŌJ��Ԃ��A���b�X�� 2.2 �֐i�݂܂��傤�B



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���b�X�� 2.2: ���̑��̍폜�R�}���h


	     ** �s�̖����܂ł�폜����ɂ� d$ �ƃ^�C�v���܂��傤 **

  1. �m�[�}�����[�h�ł��邱�Ƃ�m�F����̂� <ESC> ����܂��傤�B

  2. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����܂��傤�B

  3. ���������̖����փJ�[�\����ړ����܂��傤(�ŏ��� �B �̌�ł�)�B

  4. �s���܂ō폜����̂� d$ �ƃ^�C�v���܂��傤�B

---> �N�������̍s�̍Ō��2�x�^�C�v���܂����B 2�x�^�C�v���܂����B


  5. �ǂ��������Ƃ�����邽�߂ɁA���b�X�� 2.3 �֐i�݂܂��傤�B





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���b�X�� 2.3: �I�y���[�^�ƃ��[�V����


  �����̃R�}���h�̓I�y���[�^�ƃ��[�V��������e�L�X�g�ɕύX����܂��B
  �폜�R�}���h d �̃I�y���[�^�͎��̗l�ɂȂ��Ă��܂�:

  	d   ���[�V����

  ���ꂼ��:
    d          - �폜�R�}���h�B
    ���[�V���� - ���ɑ΂��ē��������邩(�ȉ��ɋ����܂�)�B

  ���[�V�����ꗗ�̈ꕔ:
    w - �J�[�\���ʒu����󔒂�܂ޒP��̖����܂ŁB
    e - �J�[�\���ʒu����󔒂�܂܂Ȃ��P��̖����܂ŁB
    $ - �J�[�\���ʒu����s���܂ŁB

  �‚܂� de �ƃ^�C�v����ƁA�J�[�\���ʒu����P��̏I���܂ł�폜���܂��B

NOTE: �`���������l�́A�m�[�}�����[�h�ɂăR�}���h�Ȃ��Ƀ��[�V���������
      �݂܂��傤�B�J�[�\�����ړI��ꗗ�Ŏ������ʒu�Ɉړ�����͂��ł��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 ���b�X�� 2.4: ���[�V�����ɃJ�E���g��g�p����


      ** �����s�������J��Ԃ��̃��[�V�����̑O�ɐ��l��^�C�v���܂��B **

  1. �ȉ��� ---> �Ǝ����ꂽ�s�̐擪�ɃJ�[�\����ړ����܂��B

  2. 2w ��^�C�v���ĒP��2�•��O�Ɉړ����܂��B

  3. 3e ��^�C�v����3�–ڂ̒P��̏I�[�Ɉړ����܂��B

  4. 0 (�[��)��^�C�v���čs���Ɉړ����܂��B

  5. �X�e�b�v 2 �� 3 ��Ⴄ���l��g���ČJ��Ԃ��܂��B

---> This is just a line with words you can move around in.

  6. ���b�X�� 2.5 �ɐi�݂܂��傤�B




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   ���b�X�� 2.5: ��葽����폜���邽�߂ɃJ�E���g��g�p����


  ** �I�y���[�^�ƃJ�E���g��^�C�v����ƁA���̑��삪������J��Ԃ���܂��B **

  ���q�̍폜�̃I�y���[�^�ƃ��[�V�����̑g�ݍ��킹�ɃJ�E���g��lj����邱�ƂŁA
  ��葽���̍폜���s���܂�:
	 d   ���l   ���[�V����

  1. ---> �Ǝ����ꂽ�s�̍s�������ɃJ�[�\����ړ����܂��傤�B

  2. UPPER CASE �̒P��2�‚� d2w �ƃ^�C�v���č폜���܂��B

  3. UPPER CASE �Ƃ����A�������P���A1�‚̃R�}���h�ƈقȂ�J�E���g��w�肵�A
     �X�e�b�v 1 �� 2 ��J��Ԃ��܂��B

---> ����ABC DE�s��FGHI JK LMN OP�P���Q RS TUV�Y��ɂȂ����B

NOTE:  �I�y���[�^ d �ƃ��[�V�����̊ԂɃJ�E���g��g�����ꍇ�A�I�y���[�^�̂Ȃ�
       �ꍇ�̃��[�V�����̂悤�ɓ��삵�܂��B
       ��: 3dw �� d3w �͓����ŁA3w ��폜���܂��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���b�X�� 2.6: �s�̑���


		 ** �s�S�̂�폜����ɂ� dd �ƃ^�C�v���܂� **

  �s�S�̂�폜����p�x�������̂ŁAVi�̃f�U�C�i�[�͍s�̍폜�� d ��2��^�C�v��
  �����ȒP�Ȃ�̂Ɍ��߂܂����B

  1. �ȉ��̋��2�s�ڂɃJ�[�\����ړ����܂��B
  2. dd �ƃ^�C�v���čs��폜���܂��B
  3. �����4�s�ڂɈړ����܂��B
  4. 2dd �ƃ^�C�v����2�s��폜���܂��B

--->  1)  �o���͐Ԃ��A
--->  2)  �‚܂�Ȃ���̂͊y�����A
--->  3)  �X�~���͐‚��A
--->  4)  ���͎Ԃ���Ă���A
--->  5)  ���v�����������A
--->  6)  �����͊Â�
--->  7)  �I�}�G���i�[


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���b�X�� 2.7: ��蒼���R�}���h


  ** �Ō�̃R�}���h�������ɂ� u ����܂��BU �͍s�S�̂̎��ł��B **

  1. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����A�ŏ��̊ԈႢ�ɃJ�[�\��
     ��ړ����܂��傤�B
  2. x ��^�C�v���Ă���Ȃ��擪�̕�����폜���܂��傤�B
  3. �����Au ��^�C�v���čŌ�Ɏ��s�����R�}���h�������܂��傤�B
  4. ���x�́Ax ��g�p���Č���S�ďC�����܂��傤�B
  5. �啶���� U ��^�C�v���āA�s��̏�Ԃɖ߂��܂��傤�B
  6. u ��^�C�v���Ē��O�� U �R�}���h������܂��傤�B
  7. �ł̓R�}���h��Ď��s����̂� CTRL-R (CTRL ������܂� R ��ł�)�𐔉�
     �^�C�v���Ă݂܂��傤(���̎�)�B

---> ���̂̍s�̂̊ԈႢ��C���X���A��ł����̏C���������܂܂����B

  8. ����͂ƂĂ�֗��ȃR�}���h�ł��B�������b�X�� 2 �v��֐i�݂܂��傤�B




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���b�X�� 2 �v��


  1. �J�[�\���ʒu����P��̖����܂ł�폜����ɂ� dw �ƃ^�C�v���܂��B
  2. �J�[�\���ʒu����s�̖����܂ł�폜����ɂ� d$ �ƃ^�C�v���܂��B
  3. �s�S�̂�폜����ɂ� dd �ƃ^�C�v���܂��B

  4. ���[�V������J��Ԃ��ɂ͐��l��t�^���܂�:   2w
  5. �ύX�ɗp����R�}���h�̌`����
               �I�y���[�^   [���l]   ���[�V����

     ���ꂼ��:
       �I�y���[�^ - �폜 d �̗ނʼn���邩�B
       ���l       - ���̃R�}���h���J��Ԃ����B
       ���[�V���� - w (�P��)�� $ (�s��)�Ȃǂ̗ނŁA�e�L�X�g�̉��ɑ΂��ē�����
                    ���邩�B

  6. �s�̐擪�Ɉړ�����ɂ̓[����g�p���܂�:  0

  7. �O��̓�������:	u   (������ u)
     �s�S�̂̕ύX�����:	U   (�啶�� U)
     �����̎���:		CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ���b�X�� 3.1: �\��t���R�}���h


    ** �Ō�ɍ폜���ꂽ�s��J�[�\���̌�ɓ\��t����ɂ� p ��^�C�v���܂� **

  1. �ȉ��̒i���̍ŏ��̍s�ɃJ�[�\����ړ����܂��傤�B

  2. dd  �ƃ^�C�v���čs��폜���AVim �̃o�b�t�@�Ɋi�[���܂��傤�B

  3. �폜�����s���{������ׂ��ʒu�̏�̍s�܂ŁA�J�[�\����ړ������܂��傤�B

  4. �m�[�}�����[�h�� p ��^�C�v���Ċi�[�����s���ʂɖ߂��܂��B

  5. ���Ԃ��������Ȃ�l�ɃX�e�b�v 2 ���� 4 ��J��Ԃ��܂��傤�B

     d) �M����w�Ԃ��Ƃ��ł���?
     b) �X�~���͐‚��A
     c) �m�b�Ƃ͊w�Ԃ�́A
     a) �o���͐Ԃ��A



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���b�X�� 3.2: �u�������R�}���h


	   ** �J�[�\���̉��̕�����u��������ɂ� r ��^�C�v���܂� **

  1. �ȉ��� ---> �Ǝ����ꂽ�ŏ��̍s�ɃJ�[�\����ړ����܂��傤�B

  2. �ŏ��̊ԈႢ�̐擪�ɃJ�[�\����ړ����܂��傤�B

  3. r �ƃ^�C�v���A�Ԉ��Ă��镶����u��������A������������^�C�v���܂��傤�B

  4. �ŏ��̍s���������Ȃ�܂ŃX�e�b�v 2 ���� 3 ��J��Ԃ��܂��傤�B

--->  ���̍���l�͂������ˁA���̐l�͊�‚�������L�[�������!
--->  ���̍s��͂������ɁA���̐l�͊�‚��Ԉ����L�[����܂���!

  5. �����A���b�X�� 3.3 �֐i�݂܂��傤�B

NOTE: ���ۂɎ����܂��傤�B�����Ċo���邾���ɂ͂��Ȃ����ƁB



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			���b�X�� 3.3: �ύX�R�}���h


	 ** �P��̈ꕔ�A�����͑S�̂�ύX����ɂ� cw �ƃ^�C�v���܂� **

  1. �ȉ��� ---> �Ǝ����ꂽ�ŏ��̍s�ɃJ�[�\����ړ����܂��傤�B

  2. lubw �� u �̈ʒu�ɃJ�[�\����ړ����܂��傤�B

  3. cw �ƃ^�C�v���A�������P���^�C�v���܂��傤(���̏ꍇ 'ine' �ƃ^�C�v)�B

  4. ���̊ԈႢ(�ύX���ׂ������̐擪)�Ɉړ����邽�߂� <ESC> ��^�C�v���܂��B

  5. �ŏ��̍s�����̍s�̗l�ɂȂ�܂ŃX�e�b�v 3 �� 4 ��J��Ԃ��܂��B

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

cw �͒P���ύX���邾���łȂ��A�}����s���邱�Ƃɒ��ӂ��܂��傤�B



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���b�X�� 3.4: c ��g�p�������̑��̕ύX


     ** �ύX�R�}���h�́A�폜�R�}���h�Ɠ����l�ɃI�u�W�F�N�g��g�p���܂� **

  1. �ύX�R�}���h�́A�폜�R�}���h�Ɠ����悤�ȓ����܂��B���̌`����

         c    [���l]   ���[�V����

  2. �I�u�W�F�N�g�����ŁAw �͒P��A $ �͍s���ȂǂƂ�������̂ł��B

  3. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����܂��傤�B

  4. �ŏ��̊ԈႢ�փJ�[�\����ړ����܂��傤�B

  5. c$ �ƃ^�C�v���čs�̎c���Q�s�ڂ̗l�ɂ��A<ESC> ����܂��傤�B

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.

NOTE:  �^�C�v���̊ԈႢ�̓o�b�N�X�y�[�X�L�[��g���Ē������Ƃ�ł��܂��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���b�X�� 3 �v��


  1. ���ɍ폜���ꂽ�e�L�X�g��Ĕz�u����ɂ́Ap ��^�C�v���܂��B����͍폜��
     �ꂽ�e�L�X�g��J�[�\���̌�ɑ}�����܂�(�s�P�ʂō폜���ꂽ�̂Ȃ�΁A�J�[
     �\���̂��鎟�̍s�ɑ}������܂�)�B

  2. �J�[�\���̉��̕�����u��������ɂ́Ar ��^�C�v������A�����u��������
     ������^�C�v���܂��B

  3. �ύX�R�}���h�ł̓J�[�\���ʒu������̃��[�V�����Ŏw�肳���I�[�܂ł��
     �X���邱�Ƃ��”\�ł��B�Ⴆ�� cw �Ȃ�΃J�[�\���ʒu����P��̏I���܂ŁA
     c$ �Ȃ�΍s�̏I���܂ł�ύX���܂��B

  4. �ύX�R�}���h�̌`����

         c    [���l]   ���[�V����

�����A���̃��b�X���֐i�݂܂��傤�B



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���b�X�� 4.1: �ʒu�ƃt�@�C���̏��

  ** �t�@�C����ł̈ʒu�ƃt�@�C���̏�Ԃ�\������ɂ� CTRL-G ��^�C�v���܂��B
     �t�@�C����̂���s�Ɉړ�����ɂ� G ��^�C�v���܂� **

     NOTE: �X�e�b�v��s����O�ɁA���̃��b�X���S�Ăɖڂ�ʂ��܂��傤!!

  1. CTRL ������܂� g ����܂��傤�B���̑���� CTRL-G �ƌĂ�ł��܂��B
     �y�[�W�̈�ԉ��Ƀt�@�C�����ƍs�ԍ����\�������͂��ł��B �X�e�b�v 3�̂���
     �ɍs�ԍ���o���Ă����܂��傤�B

NOTE:  ��ʂ̉E�����ɃJ�[�\���̈ʒu���\������Ă��邩����܂���B�����
       'ruler' �I�v�V����(:help 'ruler' ��Q��)��ݒ肷�邱�Ƃŕ\������܂��B

  2. �ʼn��s�Ɉړ����邽�߂� G ��^�C�v���܂��傤�B
     �t�@�C���̐擪�Ɉړ�����ɂ� gg �ƃ^�C�v���܂��傤�B

  3. ��قǂ̍s�̔ԍ���^�C�v�� G ��^�C�v���܂��傤�B�ŏ��� CTRL-G ������s
     �ɖ߂��ė���͂��ł��B

  4. ���M�����Ă���X�e�b�v 1 ���� 3 ��s���܂��傤�B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ���b�X�� 4.2: �����R�}���h


	 ** ���������ɂ� / �ƁA�O�������������^�C�v���܂��B**

  1. �m�[�}�����[�h�� / �Ƃ���������^�C�v���܂��B��ʈ�ԉ��� : �R�}���h��
     �����l�� / ������邱�ƂɋC�Â��ł��傤�B

  2. �ł́A'errroor' <ENTER> �ƃ^�C�v���܂��傤�B���ꂪ�����������P��ł��B

  3. ����������x��������Ƃ��� �P�� n ��^�C�v���܂��B
     �t�����Ɍ��������Ƃ��� N ��^�C�v���܂��B

  4. �t�����Ɍ��������ꍇ�́A/ �̑���� ? �R�}���h��g�p���܂��B

  5. ���̏ꏊ�ɖ߂�ɂ� CTRL-O (Ctrl ��������Ȃ��� o �����^�C�v)��^�C�v��
     �܂��B����ɖ߂�ɂ͂����J��Ԃ��܂��BCTRL-I �͑O�����ł��B

--->  "errroor" �� error �ƃX�y�����Ⴂ�܂�;  errroor �͂����� error �ł��B
NOTE: �������t�@�C���̏I���ɒB����ƁA�I�v�V���� 'wrapscan' ���ݒ肳��Ă���
      �ꍇ�́A�t�@�C���̐擪���猟���𑱍s���܂��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ���b�X�� 4.3: �Ή����銇�ʂ��


	    ** �Ή����� ),] �� } �������ɂ� % ��^�C�v���܂� **

  1. ���� ---> �Ŏ����ꂽ�s�� (,[ �� { �̂ǂꂩ�ɃJ�[�\����ړ����܂��傤�B

  2. ������ % �ƃ^�C�v���܂��傤�B

  3. �J�[�\���͑Ή����銇�ʂɈړ�����͂��ł��B

  4. �ŏ��̊��ʂɈړ�����ɂ� % �ƃ^�C�v���܂��傤�B

  5. ���� (,),[,],{ �� } �ŃJ�[�\����ړ����A% ������Ă��邩�m�F���܂��傤�B

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))


NOTE: ���̋@�\�͊��ʂ���v���Ă��Ȃ��v���O������f�o�b�O����̂ɂƂĂ�𗧂�
      �܂��B


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���b�X�� 4.4: �ԈႢ��ύX�����@


	** 'old' �� 'new' �ɒu������ɂ� :s/old/new/g �ƃ^�C�v���܂� **

  1. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����܂��傤�B

  2. :s/thee/the <ENTER> �ƃ^�C�v���܂��傤�B���̃R�}���h�͂��̍s�ōŏ��Ɍ�
     �‚�������̂ɂ����s�Ȃ��邱�ƂɋC��‚��܂��傤�B

  3. �ł� :s/thee/the/g	�ƃ^�C�v���܂��傤�B�s�S�̂�u�����邱�Ƃ�Ӗ����܂��B
     ���̕ύX�͂��̍s�Ō��‚������S�Ẳӏ��ɑ΂��čs�Ȃ��܂��B

---> thee best time to see thee flowers is in thee spring.

  4. �����s���猩�‚��镶����ύX����ɂ�
     :#,#s/old/new/g    #,# �ɂ͒u��������͈͂̊J�n�ƏI���̍s�ԍ���w�肵��
                        ���B
     :%s/old/new/g      �t�@�C���S�̂Ō��‚����̂ɑ΂��ĕύX����B
     :%s/old/new/gc     �t�@�C���S�̂Ō��‚����̂ɑ΂��āA1��1�Šm�F��Ƃ��
                        ����ύX����B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���b�X�� 4 �v��


  1. CTRL-G �̓t�@�C���ł̈ʒu�ƃt�@�C���̏ڍׂ�\�����܂��B
          G �̓t�@�C���̍ʼn��s�Ɉړ����܂��B
     ���l G �͂��̍s�Ɉړ����܂��B
         gg �͐擪�s�Ɉړ����܂��B

  2. / �̌�Ɍ���^�C�v����ƑO���Ɍ�������܂��B
     ? �̌�Ɍ���^�C�v����ƌ��Ɍ�������܂��B
     �����̌�� n �͓��������̎��̌�����AN �͋t�����̌�����܂��B
     CTRL-O �͏ꏊ��O�Ɉڂ��ACTRL-I �͏ꏊ��Ɉړ����܂��B

  3. (,),[,],{, ������ } ��ɃJ�[�\���������Ԃ� % ��^�C�v����Ƒ΂ɂȂ镶
     ���ֈړ����܂��B

  4. ���ݍs�̍ŏ��� old �� new �ɒu������B	:s/old/new
     ���ݍs�̑S�Ă� old �� new �ɒu������B	:s/old/new/g
     2�‚� # �ԂŌ���u������B		:#,#s/old/new/g
     �t�@�C���̒��̑S�Ă̌�������u������B	:%s/old/new/g
     'c' �����ƒu���̓x�Ɋm�F��߂�B	:%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ���b�X�� 5.1: �O���R�}���h��s�����@


	     ** :! �̌�Ɏ��s����O���R�}���h��^�C�v���܂� **

  1. ��ʂ̍ʼn����ɃJ�[�\�����ړ�����悤�A����e���� : ��^�C�v���܂��傤�B
     ����ŃR�}���h���^�C�v�ł���l�ɂȂ�܂��B

  2. ������ ! �Ƃ�������(���Q��)��^�C�v���܂��傤�B
     ����ŊO���V�F���R�}���h�����s�ł���l�ɂȂ�܂��B

  3. ��Ƃ��� ! �ɑ����� ls �ƃ^�C�v�� <ENTER> ����܂��傤�B
     �V�F���v�����v�g�̂悤�Ƀf�B���N�g���̈ꗗ���\�������͂��ł��B
     ������ ls �������Ȃ��Ȃ�� :!dir ��g�p���܂��傤�B

NOTE:  ���̕��@�ɂ��Ă�����R�}���h�����s���邱�Ƃ��ł��܂��B������
       ��^�����܂��B

NOTE:  �S�Ă� : �R�}���h�� <ENTER> ����ďI�����Ȃ���΂Ȃ�܂���B
       �ȍ~�ł͂��̂��ƂɌ��y���܂���B


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ���b�X�� 5.2: ���̑��̃t�@�C���֏�������


	** �t�@�C���֕ύX��ۑ�����ɂ� :w �t�@�C���� �ƃ^�C�v���܂� **

  1. �f�B���N�g���̈ꗗ�𓾂邽�߂� :!dir ������ :!ls �ƃ^�C�v���܂��傤�B
     ���̂��� <ENTER> ����̂͊��ɂ����m�ł��ˁB

  2. TEST �̂悤�ɁA���̃f�B���N�g���ɖ����t�@�C�������‘I�т܂��B

  3. �ł� :w TEST �ƃ^�C�v���܂��傤 (TEST �́A�I�񂾃t�@�C�����ł�)�B

  4. ����ɂ��t�@�C���S�̂� TEST �Ƃ������O�ŕۑ�����܂��B
     ����x :!dir ������ :!ls �ƃ^�C�v���Ċm�F���Ă݂܂��傤�B

NOTE: ������ Vim ��I�����A�t�@�C���� TEST �Ƌ��ɋN������ƁA�ۑ���������
     �`���[�g���A���̕������ł��オ��͂��ł��B

  5. ����ɁA���̂悤�Ƀ^�C�v���ăt�@�C������܂��傤(MS-DOS):  :!del TEST
                                               ������(Unix):    :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���b�X�� 5.3: �I�����������


** �t�@�C���̈ʒu��ۑ�����ɂ́Av ���[�V������ :w FILENAME ��^�C�v���܂��B **

  1. ���̍s�ɃJ�[�\����ړ����܂��B

  2. v ����A�ȉ��̑�5���ڂɃJ�[�\����ړ����܂��B�e�L�X�g�������\��������
     �ɒ��ڂ��ĉ������B

  3. ���� : ����ƁA��ʂ̍ʼn����� :'<,'> ������܂��B

  4. w TEST (TEST �͑��݂��Ȃ��t�@�C����)��^�C�v���܂��B
     <ENTER> ����O�� :'<,'>w TEST �ƂȂ��Ă��邱�Ƃ�m�F���ĉ������B

  5. Vim �� TEST �Ƃ����t�@�C���ɑI��ꂽ�s������ނł��傤�B
     !dir ������ !ls �ł����m�F���܂��B
     ����͍폜���Ȃ��ł����ĉ������B���̃��b�X���Ŏg�p���܂��B

NOTE:  v ����ƁAVisual �I��n�܂�܂��B�J�[�\���𓮂������ƂŁA�I��͈͂�
       �傫����������ł��܂��B����ɁA���̑I��͈͂ɑ΂��ăI�y���[�^��K�p
       ���܂��B�Ⴆ�� d �̓e�L�X�g��폜���܂��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���b�X�� 5.4: �t�@�C���̎捞�ƍ���


	** �t�@�C���̒��g��}������ɂ� :r �t�@�C���� �ƃ^�C�v���܂� **

  1. �J�[�\����ȉ��̍s�ɍ��킹�܂��B

NOTE:  �X�e�b�v 2 �̎��s��A���b�X�� 5.3 �̃e�L�X�g������܂��B���ɉ������Ă�
       �̃��b�X���Ɉړ����܂��傤�B

  2. �ł� TEST �Ƃ����t�@�C���� :r TEST �Ƃ����R�}���h�œǂݍ��݂܂��傤�B
     �����ł��� TEST �͎g���t�@�C���̖��O�̂��Ƃł��B
     �ǂݍ��܂ꂽ�t�@�C���́A�J�[�\���s�̉��ɂ���܂��B

  3. �捞�񂾃t�@�C����m�F���Ă݂܂��傤�B�J�[�\����߂��ƁA���b�X��5.3 ��
     �I���W�i���ƃt�@�C���ɂ���̂�2�‚����邱�Ƃ��킩��܂��B

NOTE: �O���R�}���h�̏o�͂�ǂݍ��ނ��Ƃ�o���܂��B�Ⴆ�΁A
      :r !ls �� ls �R�}���h�̏o�͂�J�[�\���ȉ��ɓǂݍ��݂܂��B



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���b�X�� 5 �v��


  1.  :!command  �ɂ��� �O���R�}���h��s���܂��B

     �悭�g����:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  �f�B���N�g����̈ꗗ���B
	  :!del FILENAME   :!rm FILENAME   -  �t�@�C����폜����B

  2.  :w �t�@�C���� �ɂ��ăt�@�C�����Ƃ����t�@�C�����f�B�X�N�ɏ������܂��B

  3.  v ���[�V������ :w FILENAME �Ƃ���ƁA�r�W���A���I��s���t�@�C���ɕۑ���
      ���B

  4.  :r �t�@�C���� �ɂ��t�@�C�����Ƃ����t�@�C�����f�B�X�N����荞�܂�A
      �J�[�\���ʒu�̉��ɑ}�������B

  5.  :r !dir �� dir �R�}���h�̏o�͂�J�[�\���ʒu�ȉ��ɓǂݍ��ށB



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���b�X�� 6.1: �I�[�v���R�}���h


    ** o ��^�C�v����ƁA�J�[�\���̉��̍s���J���A�}�����[�h�ɓ���܂� **

  1. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����܂��傤�B

  2. o (������) ��^�C�v���āA�J�[�\���̉��̍s��J���A�}�����[�h�ɓ���܂��B

  3. ����ɑ}�����[�h��I������ׂ� <ESC> ��^�C�v���܂��B

---> o  ��^�C�v����ƃJ�[�\���͊J�����s�ֈړ����}�����[�h�ɓ���܂��B

  4. �J�[�\���̏�̍s�ɑ}������ɂ́A�������� o �ł͂Ȃ��A�P���ɑ啶���� O
     ��^�C�v���܂��B���̍s�Ŏ����Ă݂܂��傤�B

---> ���̍s�̏�֑}������ɂ́A���̍s�փJ�[�\����u���� O ��^�C�v���܂��B





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			���b�X�� 6.2: �lj��R�}���h


      ** �J�[�\���̎��̈ʒu����e�L�X�g��lj�����ɂ� a �ƃ^�C�v���܂� **

  1. �J�[�\���� ---> �Ŏ����ꂽ�s�ֈړ����܂��傤�B

  2. e ����� li �̏I�[���܂ŃJ�[�\����ړ����܂��B

  3. �J�[�\���̌��Ƀe�L�X�g��lj����邽�߂� a (������) ��^�C�v���܂��B

  4. ���̉��̍s�̂悤�ȒP��Ɋ��������܂��B�}�����[�h�𔲂���ׂ� <ESC> ��
     ���܂��B

  5. e ��g���Ď��̕s���S�ȒP��ֈړ����A�X�e�b�v 3 �� 4 ��J��Ԃ��܂��B
  
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

NOTE: a, i �� A �͓����}�����[�h�ֈڂ�܂����A�������}�������ʒu�������قȂ�
      �܂��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			���b�X�� 6.3: ���̑��̒u�����@


	  ** 1�����ȏ��u��������ɂ͑啶���� R �ƃ^�C�v���܂��傤 **

  1. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\����ړ����܂��B�ŏ��� xxx �̐擪�Ɉړ���
     �܂��B

  2. R ����āA2�s�ڂ̐��l��^�C�v���邱�ƂŁAxxx ���u������܂��B

  3. �u�����[�h�𔲂���ɂ� <ESC> ����܂��B�s�̎c�肪�ύX����Ă��Ȃ��܂܂�
     �Ȃ邱�Ƃɒ��ӂ��Ă��������B

  4. �c���� xxx ��X�e�b�v��J��Ԃ��Ēu�����܂��傤�B

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

NOTE: �u�����[�h�͑}�����[�h�Ɏ��Ă��܂����A�S�Ẵ^�C�v���ꂽ�����͊����̕���
      ��폜���܂��B


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ���b�X�� 6.4: �e�L�X�g�̃R�s�[�ƃy�[�X�g


     ** �e�L�X�g�̃R�s�[�ɂ̓I�y���[�^ y ��A�y�[�X�g�ɂ� p ��g���܂� **

  1. ---> �Ǝ����ꂽ�s�ֈړ����A�J�[�\���� "a)" �̌�ɒu���Ă����܂��B
  
  2. v �Ńr�W���A�����[�h��J�n���A"first" �̎�O�܂ŃJ�[�\����ړ����܂��B
  
  3. y ��^�C�v���ċ����\�����ꂽ�e�L�X�g�� yank (�R�s�[)���܂��B

  4. ���̍s�̍s���܂ŃJ�[�\����ړ����܂�:  j$

  5. p ����ē\��t��(put)�Ă���A����^�C�v���܂�:  a second <ESC>

  6. �r�W���A�����[�h�� " item." ��I��Ay �Ń����N�A���̍s�̍s���܂� j$ ��
     �ړ����A p �Ńe�L�X�g����� put ���܂��B

--->  a) this is the first item.
      b)

  NOTE: �P���1�� yank ����̂� y ��I�y���[�^�Ƃ��� yw �Ƃ��邱�Ƃ�o���܂��B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���b�X�� 6.5: �I�v�V�����̐ݒ�


  ** ������u���̍ۂɑ啶��/�������𖳎�����ɂ́A�I�v�V������ݒ肵�܂� **

  1. ���̗l�ɓ��͂��� 'ignore' ������܂��傤:  /ignore  <ENTER>
     n ����ĉ��x��������J��Ԃ��܂��B

  2. ���̗l�ɓ��͂��� 'ic' (Ignore Case �̗�) �I�v�V������ݒ肵�܂�:  :set ic

  3. �ł� n �ɂ��Ă�1�x 'ignore' ������܂��B
     n ����Ă���ɐ��񌟍���J��Ԃ��܂��傤�B

  4. 'hlsearch' �� 'incsearch' �I�v�V������ݒ肵�܂��傤:  :set hls is

  5. �����R�}���h��ē��͂��āA�����N���邩���Ă݂܂��傤:  /ignore  <ENTER>

  6. �啶���������̋�ʂ𖳌��ɂ���ɂ͎��̗l�ɓ��͂��܂�:  :set noic

NOTE: �}�b�`�̋����\�����߂�ɂ͎��̗l�ɓ��͂��܂�: :nohlsearch
NOTE: 1�‚̌����R�}���h�����啶���������̋�ʂ��߂����Ȃ�΁A�t���[�Y�� \c
      ��g�p���܂�:  /ignore\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���b�X�� 6 �v��

  1. o ��^�C�v����ƃJ�[�\���̉��̍s��J���āA�����ő}�����[�h�ɂȂ�B
     O (�啶��) ��^�C�v����ƃJ�[�\���̏�̍s�ő}�����[�h�ɂȂ�B

  2. �J�[�\����̕����̎�����e�L�X�g��lj�����ɂ� a �ƃ^�C�v����B
     �s���Ɏ����Ńe�L�X�g��}������ɂ͑啶�� A ��^�C�v����B

  3. e �R�}���h�͒P��̏I�[���J�[�\����ړ�����B

  4. y �I�y���[�^�̓e�L�X�g�� yank (�R�s�[)���Ap �͂���� put (�y�[�X�g)����B

  5. �啶���� R ��^�C�v����ƒu�����[�h�ɓ���A<ESC>����Ɣ�����B

  6. ":set xxx" �ƃ^�C�v����ƃI�v�V���� "xxx" ���ݒ肳���B
  	'ic' 'ignorecase'	�������ɑ啶���������̋�ʂ��Ȃ�
	'is' 'incsearch'	�����t���[�Y�ɕ����}�b�`���Ă��镔����\������
	'hls' 'hlsearch'	�}�b�`���邷�ׂ���\������
     �������A�Z�����A�ǂ���̃I�v�V�������ł�g�p�ł��܂��B

  7. "no" ��t�^���A�I�v�V�����𖳌��ɂ��܂�:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ���b�X�� 7.1: �I�����C���w���v�R�}���h


		     ** �I�����C���w���v��g�p���܂��傤 **

  Vim �ɂ͍L�͂ɂ킽��I�����C���w���v�V�X�e��������܂��B
  �w���v��J�n����ɂ́A�����3�‚̂ǂꂩ1�‚���Ă݂܂��傤:
	- �w���v�L�[ <HELP> ���(������Ȃ��)�B
	- <F1> �L�[���(������Ȃ��)�B
	- :help <ENTER> �ƃ^�C�v����B

  �w���v�E�B���h�E�̃e�L�X�g��ǂނƁA�w���v�̓��삪����ł��܂��B
  CTRL-W CTRL-W  �ƃ^�C�v����� �w���v�E�B���h�E�փW�����v���܂��B
    :q <ENTER>   �ƃ^�C�v����� �w���v�E�B���h�E���‚����܂��B

  ":help" �R�}���h�Ɉ�����^���邱�Ƃɂ��A������薼�̃w���v��‚��邱��
  ���ł��܂��B��������Ă݂܂��傤(<ENTER> ��^�C�v���Y��Ȃ��悤��):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ���b�X�� 7.2: �N���X�N���v�g�̍쐬

			 ** Vim �̓����𔭊����� **

  Vim �ɂ� Vi �������̓����𓥂܂��Ă��܂����A���̂قƂ�ǂ͏�����Ԃɂ�
  �g�p�s�‚ƂȂ��Ă��܂��B��葽���̓�����g���͂��߂�ɂ� "vimrc" �t�@�C��
  ��쐬���܂��B

  1. "vimrc" �t�@�C���̕ҏW��J�n����B����̓V�X�e���Ɉˑ����܂��B
	:edit ~/.vimrc			UNIX ����
	:edit $VIM/_vimrc		MS-Windows ����

  2. �����ŃT���v���� "vimrc" ��ǂݍ��݂܂��B
	:read $VIMRUNTIME/vimrc_example.vim

  3. �ȉ��̂悤�Ƀt�@�C���֏������݂܂��B
	:write

  ���� Vim ��N������ƁA�F�Â��\�����g����悤�ɂȂ�ł��傤�B
  ���� "vimrc" �t�@�C���ցA���D�݂̐ݒ��lj����邱�Ƃ��ł��܂��B
  ��葽���̏��𓾂�ɂ� :help vimrc-intro �ƃ^�C�v���܂��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      ���b�X�� 7.3: �⊮


	       ** CTRL-D �� <TAB> �ŃR�}���h���C����⊮���� **

  1. �݊����[�h�łȂ����Ƃ�m�F���܂�:  :set nocp

  2. ���݂̃f�B���N�g���ɍ݂�t�@�C���� :!ls �� :!dir �Ŋm�F���܂��B

  3. �R�}���h�̊J�n��^�C�v���܂�:  :e

  4. CTRL-D ����� Vim �� "e" ����n�܂�R�}���h�̈ꗗ��\�����܂��B

  5. <TAB> ����� Vim �� ":edit" �Ƃ����R�}���h����⊮���܂��B

  6. ����ɋ󔒂ƁA�����̃t�@�C�����̎n�܂����܂�:  :edit FIL

  7. <TAB> ����� Vim �͖��O��⊮���܂��B(����‚������������ꍇ)

NOTE: �⊮�͑����̃R�}���h�œ��삵�܂��B������ CTRL-D �� <TAB> �����Ă݂Ă���
      �����B���� :help �̍ۂɖ𗧂��܂��B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���b�X�� 7 �v��


  1. �w���v�E�B���h�E��J���ɂ� :help �Ƃ��邩 <F1> ������ <Help> ����B

  2. �R�}���h(cmd)�̃w���v�������ɂ� :help cmd �ƃ^�C�v����B

  3. �ʂ̃E�B���h�E�փW�����v����ɂ� CTRL-W CTRL-W �ƃ^�C�v����B

  4. �w���v�E�B���h�E��‚���ɂ� :q �ƃ^�C�v����B

  5. ���D�݂̐ݒ��ۂ‚ɂ� vimrc �N���X�N���v�g��쐬����B

  6. : command �ʼn”\�ȕ⊮���ɂ� CTRL-D ��^�C�v����B
     �⊮��g�p����ɂ� <TAB> ����B







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ����ɂ� Vim �̃`���[�g���A����I���܂��B�G�f�B�^��ȒP�ɁA������[����
  �g�����Ƃ��ł���悤�ɂƁAVim �̎��ŠT�O�̗v�_�݂̂�`���悤�Ƃ��܂����B
  Vim �ɂ͂���ɑ����̃R�}���h������A�����őS�Ă�����邱�Ƃ͂ł��܂���B
  �ȍ~�̓��[�U�[�}�j���A����Q�Ƃ�������: ":help user-manual"

  ����Ȍ�̊w�K�̂��߂ɁA���̖{�𐄑E���܂��B
	Vim - Vi Improved - by Steve Oualline
	�o�Ŏ�: New Riders
  �ŏ��̖{�͊��S�� Vim �̂��߂ɏ�����܂����B�Ƃ�킯���S�҂ɂ͂����߂ł��B
  �����̗���}�ł��f�ڂ���Ă��܂��B
  ����URL��Q�Ƃ��ĉ����� http://iccf-holland.org/click5.html

  ���� Vim ���� Vi �ɂ‚��ď����ꂽ�Â��{�ł������E���܂�:
	Learning the Vi Editor - by Linda Lamb
	�o�Ŏ�: O'Reilly & Associates Inc.
  Vi �ł�肽���Ǝv�����ƂقڑS�Ă�m�邱�Ƃ��ł���Ǐ��ł��B
  ��6�łł́AVim �ɂ‚��Ă̏���܂܂�Ă��܂��B

  ���̃`���[�g���A���� Colorado State University �� Charles Smith �̃A�C�f�A
  ���ɁAColorado School of Mines �� Michael C. Pierce �� Robert K. Ware ��
  �����ɂ��ď�����܂����B E-mail: bware@mines.colorado.edu.

  Modified for Vim by Bram Moolenaar.

  ���{���  ���{ �׍O  <mattn.jp@gmail.com>
  �ďC      ���� ���Y  <koron.kaoriya@gmail.com>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 vi:set ts=8 sts=4 sw=4 tw=78:
PK�j�Z�5��a�a�vim80/tutor/tutor.no.utf-8nu�[���===============================================================================
= V e l k o m m e n   t i l   i n n f ø r i n g e n   i   V i m  --  Ver. 1.7 =
===============================================================================

     Vim er en meget kraftig editor med mange kommandoer, alt for mange til å
     kunne gå gjennom alle i en innføring som denne. Den er beregnet på å
     sette deg inn i bruken av nok kommandoer så du vil være i stand til lett
     å kunne bruke Vim som en editor til alle formål.

     Tiden som kreves for å gå gjennom denne innføringen tar ca. 25-30
     minutter, avhengig av hvor mye tid du bruker til eksperimentering.

     MERK:
     Kommandoene i leksjonene vil modifisere teksten. Lag en kopi av denne
     filen som du kan øve deg på (hvis du kjørte «vimtutor»-kommandoen, er
     dette allerede en kopi).

     Det er viktig å huske at denne innføringen er beregnet på læring gjennom
     bruk. Det betyr at du må utføre kommandoene for å lære dem skikkelig.
     Hvis du bare leser teksten, vil du glemme kommandoene!

     Først av alt, sjekk at «Caps Lock» IKKE er aktiv og trykk «j»-tasten for
     å flytte markøren helt til leksjon 1.1 fyller skjermen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 1.1:  FLYTTING AV MARKØREN


       ** For å flytte markøren, trykk tastene h, j, k, l som vist. **
	     ^
	     k		Tips: h-tasten er til venstre og flytter til venstre.
       < h	 l >	      l-tasten er til høyre og flytter til høyre.
	     j		      j-tasten ser ut som en pil som peker nedover.
	     v
  1. Flytt markøren rundt på skjermen til du har fått det inn i fingrene.

  2. Hold inne nedovertasten (j) til den repeterer.
     Nå vet du hvordan du beveger deg til neste leksjon.

  3. Gå til leksjon 1.2 ved hjelp av nedovertasten.

Merk: Hvis du blir usikker på noe du har skrevet, trykk <ESC> for å gå til
      normalmodus. Skriv deretter kommandoen du ønsket på nytt.

Merk: Piltastene skal også virke. Men ved å bruke hjkl vil du være i stand til
      å bevege markøren mye raskere når du er blitt vant til det. Helt sant!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Leksjon 1.2: AVSLUTTE VIM


  !! MERK: Før du utfører noen av punktene nedenfor, les hele leksjonen!!

  1. Trykk <ESC>-tasten (for å forsikre deg om at du er i normalmodus).

  2. Skriv:	:q! <ENTER>.
     Dette avslutter editoren og FORKASTER alle forandringer som du har gjort.

  3. Når du ser kommandolinjen i skallet, skriv kommandoen som startet denne
     innføringen. Den er:   vimtutor <ENTER>

  4. Hvis du er sikker på at du husker dette, utfør punktene 1 til 3 for å
     avslutte og starte editoren på nytt.

MERK:  :q! <ENTER>  forkaster alle forandringer som du gjorde. I løpet av noen
       få leksjoner vil du lære hvordan du lagrer forandringene til en fil.

  5. Flytt markøren ned til leksjon 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 1.3: REDIGERING AV TEKST -- SLETTING


	     ** Trykk  x  for å slette tegnet under markøren. **

  1. Flytt markøren til den første linjen merket med  --->.

  2. For å ordne feilene på linjen, flytt markøren til den er oppå tegnet som
     skal slettes.

  3. Trykk tasten  x  for å slette det uønskede tegnet.

  4. Repeter punkt 2 til 4 til setningen er lik den som er under.

---> Hessstennnn brrråsnudddde ii gaaata.
---> Hesten bråsnudde i gata.

  5. Nå som linjen er korrekt, gå til leksjon 1.4.

MERK: Når du går gjennom innføringen, ikke bare prøv å huske kommandoene, men
      bruk dem helt til de sitter.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.4: REDIGERING AV TEKST -- INNSETTING


		    ** Trykk  i  for å sette inn tekst. **

  1. Flytt markøren til den første linjen som er merket med --->.

  2. For å gjøre den første linjen lik den andre, flytt markøren til den står
     på tegnet ETTER posisjonen der teksten skal settes inn.

  3. Trykk  i  og skriv inn teksten som mangler.

  4. Etterhvert som hver feil er fikset, trykk <ESC> for å returnere til
     normalmodus. Repeter punkt 2 til 4 til setningen er korrekt.

---> Det er tkst som mnglr .
---> Det er ganske mye tekst som mangler her.

  5. Når du føler deg komfortabel med å sette inn tekst, gå til oppsummeringen
     nedenfor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.5: REDIGERING AV TEKST -- LEGGE TIL


		    ** Trykk  A  for å legge til tekst. **

  1. Flytt markøren til den første linjen nedenfor merket --->.
     Det har ikke noe å si hvor markøren er plassert på den linjen.

  2. Trykk  A  og skriv inn det som skal legges til.

  3. Når teksten er lagt til, trykk <ESC> for å returnere til normalmodusen.

  4. Flytt markøren til den andre linjen markert med ---> og repeter steg 2 og
     3 for å reparere denne setningen.

---> Det mangler noe tekst p
     Det mangler noe tekst på denne linjen.
---> Det mangler også litt tek
     Det mangler også litt tekst på denne linjen.

  5. Når du føler at du behersker å legge til tekst, gå til leksjon 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 1.6: REDIGERE EN FIL


	       ** Bruk	:wq  for å lagre en fil og avslutte. **

  !! MERK: Før du utfører noen av stegene nedenfor, les hele denne leksjonen!!

  1. Avslutt denne innføringen som du gjorde i leksjon 1.2:  :q!

  2. Skriv denne kommandoen på kommandolinja:  vim tutor <ENTER>
     «vim» er kommandoen for å starte Vim-editoren, «tutor» er navnet på fila
     som du vil redigere. Bruk en fil som kan forandres.

  3. Sett inn og slett tekst som du lærte i de foregående leksjonene.

  4. Lagre filen med forandringene og avslutt Vim med:	:wq <ENTER>

  5. Start innføringen på nytt og flytt ned til oppsummeringen som følger.

  6. Etter å ha lest og forstått stegene ovenfor: Sett i gang.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 1


  1. Markøren beveges ved hjelp av piltastene eller hjkl-tastene.
	 h (venstre)	 j (ned)     k (opp)	 l (høyre)

  2. For å starte Vim fra skall-kommandolinjen, skriv:	vim FILNAVN <ENTER>

  3. For å avslutte Vim, skriv:  <ESC> :q! <ENTER>  for å forkaste endringer.
		   ELLER skriv:  <ESC> :wq <ENTER>  for å lagre forandringene.

  4. For å slette tegnet under markøren, trykk:  x

  5. For å sette inn eller legge til tekst, trykk:
	 i    skriv innsatt tekst  <ESC>	sett inn før markøren
	 A    skriv tillagt tekst  <ESC>	legg til på slutten av linjen

MERK: Når du trykker <ESC> går du til normalmodus eller du avbryter en uønsket
      og delvis fullført kommando.

  Nå kan du gå videre til leksjon 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.1: SLETTEKOMMANDOER


		    ** Trykk  dw  for å slette et ord. **

  1. Trykk <ESC> for å være sikker på at du er i normalmodus.

  2. Flytt markøren til den første linjen nedenfor merket --->.

  3. Flytt markøren til begynnelsen av ordet som skal slettes.

  4. Trykk  dw	og ordet vil forsvinne.

MERK: Bokstaven  d  vil komme til syne på den nederste linjen på skjermen når
      du skriver den. Vim venter på at du skal skrive w . Hvis du ser et annet
      tegn enn	d  har du skrevet noe feil; trykk <ESC> og start på nytt.

---> Det er agurk tre ord eple som ikke hører pære hjemme i denne setningen.
---> Det er tre ord som ikke hører hjemme i denne setningen.

  5. Repeter punkt 3 og 4 til den første setningen er lik den andre. Gå
     deretter til leksjon 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 2.2: FLERE SLETTEKOMMANDOER


	     ** Trykk  d$  for å slette til slutten av linjen. **

  1. Trykk <ESC> for å være sikker på at du er i normalmodus.

  2. Flytt markøren til linjen nedenfor merket --->.

  3. Flytt markøren til punktet der linjen skal kuttes (ETTER første punktum).

  4. Trykk  d$	for å slette alt til slutten av linjen.

---> Noen skrev slutten på linjen en gang for mye. linjen en gang for mye.

  5. Gå til leksjon 2.3 for å forstå hva som skjer.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 2.3: OM OPERATORER OG BEVEGELSER


  Mange kommandoer som forandrer teksten er laget ut i fra en operator og en
  bevegelse. Formatet for en slettekommando med sletteoperatoren  d  er:

	d   bevegelse

  Der:
    d	      - er sletteoperatoren.
    bevegelse - er hva operatoren vil opere på (listet nedenfor).

  En kort liste med bevegelser:
    w - til starten av det neste ordet, UNNTATT det første tegnet.
    e - til slutten av det nåværende ordet, INKLUDERT det siste tegnet.
    $ - til slutten av linjen, INKLUDERT det siste tegnet.

  Ved å skrive	de  vil altså alt fra markøren til slutten av ordet bli
  slettet.

MERK:  Ved å skrive kun bevegelsen i normalmodusen uten en operator vil
       markøren flyttes som spesifisert.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 LEKSJON 2.4: BRUK AV TELLER FOR EN BEVEGELSE


 ** Ved å skrive et tall foran en bevegelse repeterer den så mange ganger. **

  1. Flytt markøren til starten av linjen markert ---> nedenfor.

  2. Skriv  2w	for å flytte markøren to ord framover.

  3. Skriv  3e	for å flytte markøren framover til slutten av det tredje
     ordet.

  4. Skriv  0  (null) for å flytte til starten av linjen.

  5. Repeter steg 2 og 3 med forskjellige tall.

---> Dette er en linje med noen ord som du kan bevege deg rundt på.

  6. Gå videre til leksjon 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 2.5: BRUK AV ANTALL FOR Å SLETTE MER


     ** Et tall sammen med en operator repeterer den så mange ganger. **

  I kombinasjonen med sletteoperatoren og en bevegelse nevnt ovenfor setter du
  inn antall før bevegelsen for å slette mer:
	 d  nummer  bevegelse

  1. Flytt markøren til det første ordet med STORE BOKSTAVER på linjen markert
     med --->.

  2. Skriv  2dw  for å slette de to ordene med store bokstaver.

  3. Repeter steg 1 og 2 med forskjelling antall for å slette de etterfølgende
     ordene som har store bokstaver.

---> Denne ABC DE linjen FGHI JK LMN OP er nå Q RS TUV litt mer lesbar.

MERK: Et antall mellom operatoren  d  og bevegelsen virker på samme måte som å
      bruke bevegelsen uten en operator.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.6: OPERERE PÅ LINJER


		 ** Trykk  dd  for å slette en hel linje. **

  På grunn av at sletting av linjer er mye brukt, fant utviklerne av Vi ut at
  det vil være lettere å rett og slett trykke to d-er for å slette en linje.

  1. Flytt markøren til den andre linjen i verset nedenfor.
  2. Trykk  dd	 å slette linjen.
  3. Flytt deretter til den fjerde linjen.
  4. Trykk  2dd  for å slette to linjer.

--->  1) Roser er røde,
--->  2) Gjørme er gøy,
--->  3) Fioler er blå,
--->  4) Jeg har en bil,
--->  5) Klokker viser tiden,
--->  6) Druer er søte
--->  7) Og du er likeså.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.7: ANGRE-KOMMANDOEN


  ** Trykk  u  for å angre siste kommando,  U  for å fikse en hel linje. **

  1. Flytt markøren til linjen nedenfor merket ---> og plasser den på den
     første feilen.
  2. Trykk  x  for å slette det første uønskede tegnet.
  3. Trykk så  u  for å angre den siste utførte kommandoen.
  4. Deretter ordner du alle feilene på linjene ved å bruke kommandoen	x  .
  5. Trykk nå en stor  U  for å sette linjen tilbake til det den var
     originalt.
  6. Trykk  u  noen ganger for å angre	U  og foregående kommandoer.
  7. Deretter trykker du  CTRL-R  (hold CTRL nede mens du trykker R) noen
     ganger for å gjenopprette kommandoene (omgjøre angrekommandoene).

---> RReparer feiilene påå denne linnnjen oog erssstatt dem meed angre.

  8. Dette er meget nyttige kommandoer. Nå kan du gå til oppsummeringen av
     leksjon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 2


  1. For å slette fra markøren fram til det neste ordet, trykk:  dw
  2. For å slette fra markøren til slutten av en linje, trykk:	d$
  3. For å slette en hel linje, trykk:	dd

  4. For å repetere en bevegelse, sett et nummer foran:  2w
  5. Formatet for en forandringskommando er:
	       operator  [nummer]  bevegelse
     der:
       operator  - hva som skal gjøres, f.eks.	d  for å slette
       [nummer]  - et valgfritt antall for å repetere bevegelsen
       bevegelse - hva kommandoen skal operere på, eksempelvis	w  (ord),
		   $  (til slutten av linjen) og så videre.

  6. For å gå til starten av en linje, bruk en null:  0

  7. For å angre tidligere endringer, skriv:		u  (liten u)
     For å angre alle forandringer på en linje, skriv:	U  (stor U)
     For å omgjøre angringen, trykk:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.1: «LIM INN»-KOMMANDOEN


    ** Trykk  p  for å lime inn tidligere slettet tekst etter markøren **

  1. Flytt markøren til den første linjen med ---> nedenfor.

  2. Trykk  dd	for å slette linjen og lagre den i et Vim-register.

  3. Flytt markøren til c)-linjen, OVER posisjonen linjen skal settes inn.

  4. Trykk  p  for å legge linjen under markøren.

  5. Repeter punkt 2 til 4 helt til linjene er i riktig rekkefølge.

---> d) Kan du også lære?
---> b) Fioler er blå,
---> c) Intelligens må læres,
---> a) Roser er røde,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.2: «ERSTATT»-KOMMANDOEN


	 ** Trykk  rx  for å erstatte tegnet under markøren med x. **

  1. Flytt markøren til den første linjen nedenfor merket --->.

  2. Flytt markøren så den står oppå den første feilen.

  3. Trykk  r  og deretter tegnet som skal være der.

  4. Repeter punkt 2 og 3 til den første linjen er lik den andre.

---> Da dfnne lynjxn ble zkrevet, var det nøen som tjykket feite taster!
---> Da denne linjen ble skrevet, var det noen som trykket feile taster!

  5. Gå videre til leksjon 3.2.

MERK: Husk at du bør lære ved å BRUKE, ikke pugge.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.3: «FORANDRE»-OPERATOREN


	   ** For å forandre til slutten av et ord, trykk  ce . **

  1. Flytt markøren til den første linjen nedenfor som er merket --->.

  2. Plasser markøren på  u  i «lubjwr».

  3. Trykk  ce	og det korrekte ordet (i dette tilfellet, skriv «injen»).

  4. Trykk <ESC> og gå til det neste tegnet som skal forandres.

  5. Repeter punkt 3 og 4 helt til den første setningen er lik den andre.

---> Denne lubjwr har noen wgh som må forkwåp med «forækzryas»-kommandoen.
---> Denne linjen har noen ord som må forandres med «forandre»-kommandoen.

Vær oppmerksom på at  ce  sletter ordet og går inn i innsettingsmodus.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 3.4: FLERE FORANDRINGER VED BRUK AV c


 ** Forandringskommandoen blir brukt med de samme bevegelser som «slett». **

  1. Forandringsoperatoren fungerer på samme måte som «slett». Formatet er:

	 c    [nummer]	 bevegelse

  2. Bevegelsene er de samme, som for eksempel	w  (ord) og  $	(slutten av en
     linje).

  3. Gå til den første linjen nedenfor som er merket --->.

  4. Flytt markøren til den første feilen.

  5. Skriv  c$	og skriv resten av linjen lik den andre og trykk <ESC>.

---> Slutten på denne linjen trenger litt hjelp for å gjøre den lik den neste.
---> Slutten på denne linjen trenger å bli rettet ved bruk av c$-kommandoen.

MERK: Du kan bruke slettetasten for å rette feil mens du skriver.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 3


  1. For å legge tilbake tekst som nettopp er blitt slettet, trykk  p  . Dette
     limer inn den slettede teksten ETTER markøren (hvis en linje ble slettet
     vil den bli limt inn på linjen under markøren).

  2. For å erstatte et tegn under markøren, trykk  r  og deretter tegnet som
     du vil ha der.

  3. Forandringsoperatoren lar deg forandre fra markøren til dit bevegelsen
     tar deg. Det vil si, skriv  ce  for å forandre fra markøren til slutten
     av ordet,	c$  for å forandre til slutten av linjen.

  4. Formatet for «forandre» er:

	 c   [nummer]	bevegelse

Nå kan du gå til neste leksjon.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Leksjon 4.1: POSISJONERING AV MARKØREN OG FILSTATUS

	** Trykk CTRL-G for å vise posisjonen i filen og filstatusen.
	   Trykk  G  for å gå til en spesifikk linje i filen. **

  Merk: Les hele leksjonen før du utfører noen av punktene!

  1. Hold nede Ctrl-tasten og trykk  g	. Vi kaller dette CTRL-G. En melding
     vil komme til syne på bunnen av skjermen med filnavnet og posisjonen i
     filen. Husk linjenummeret for bruk i steg 3.

Merk: Du kan se markørposisjonen i nederste høyre hjørne av skjermen. Dette
      skjer når «ruler»-valget er satt (forklart i leksjon 6).

  2. Trykk  G  for å gå til bunnen av filen.
     Skriv  gg	for å gå til begynnelsen av filen.

  3. Skriv inn linjenummeret du var på og deretter  G . Dette vil føre deg
     tilbake til linjen du var på da du først trykket CTRL-G.

  4. Utfør steg 1 til 3 hvis du føler deg sikker på prosedyren.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 4.2: SØKEKOMMANDOEN

      ** Skriv	/  etterfulgt av en søkestreng som du vil lete etter. **

  1. Trykk  /  når du er i normalmodusen. Legg merke til at skråstreken og
     markøren kommer til syne på bunnen av skjermen i likhet med
     «:»-kommandoene.

  2. Skriv «feeeiil» og trykk <ENTER>. Dette er teksten du vil lete etter.

  3. For å finne neste forekomst av søkestrengen, trykk  n .
     For å lete etter samme søketeksten i motsatt retning, trykk  N .

  4. For å lete etter en tekst bakover i filen, bruk  ?  istedenfor  /	.

  5. For å gå tilbake til der du kom fra, trykk  CTRL-O  (Hold Ctrl nede mens
     du trykker bokstaven  o ). Repeter for å gå enda lengre tilbake. CTRL-I
     går framover.

---> «feeeiil» er ikke måten å skrive «feil» på, feeeiil er helt feil.
Merk: Når søkingen når slutten av filen, vil den fortsette fra starten unntatt
      hvis «wrapscan»-valget er resatt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 4.3: FINN SAMSVARENDE PARENTESER


	  ** Trykk  %  for å finne en samsvarende ), ] eller } . **

  1. Plasser markøren på en (, [ eller { på linjen nedenfor merket --->.

  2. Trykk  %  .

  3. Markøren vil gå til den samsvarende parentesen eller hakeparentesen.

  4. Trykk  %  for å flytte markøren til den andre samsvarende parentesen.

  5. Flytt markøren til en annen (, ), [, ], { eller } og se hva  %  gjør.

---> Dette ( er en testlinje med (, [ ] og { } i den )).

Merk: Dette er veldig nyttig til feilsøking i programmer som har ubalansert
      antall parenteser!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Leksjon 4.4: ERSTATT-KOMMANDOEN


	** Skriv  :s/gammel/ny/g  for å erstatte «gammel» med «ny». **

  1. Flytt markøren til linjen nedenfor som er merket med --->.

  2. Skriv  :s/deen/den/ <ENTER>  . Legg merke til at denne kommandoen bare
     forandrer den første forekomsten av «deen» på linjen.

  3. Skriv  :s/deen/den/g . Når g-flagget legges til, betyr dette global
     erstatning på linjen og erstatter alle forekomster av «deen» på linjen.

---> deen som kan kaste deen tyngste steinen lengst er deen beste

  4. For å erstatte alle forekomster av en tekststreng mellom to linjer,
     skriv  :#,#s/gammel/ny/g  der #,# er linjenumrene på de to linjene for
			       linjeområdet erstatningen skal gjøres.
     Skriv  :%s/gammel/ny/g    for å erstatte tekst i hele filen.
     Skriv  :%s/gammel/ny/gc   for å finne alle forekomster i hele filen, og
			       deretter spørre om teksten skal erstattes eller
			       ikke.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 4


  1. Ctrl-G viser nåværende posisjon i filen og filstatusen.
	     G	går til slutten av filen.
     nummer  G	går til det linjenummeret.
	    gg	går til den første linjen.

  2. Skriv  /  etterfulgt av en søketekst for å lete FRAMOVER etter teksten.
     Skriv  ?  etterfulgt av en søketekst for å lete BAKOVER etter teksten.
     Etter et søk kan du trykke  n  for å finne neste forekomst i den samme
     retningen eller  N  for å lete i motsatt retning.
     CTRL-O tar deg tilbake til gamle posisjoner, CTRL-I til nyere posisjoner.

  3. Skriv  %  når markøren står på en (, ), [, ], { eller } for å finne den
     som samsvarer.

  4. Erstatte «gammel» med første «ny» på en linje:  :s/gammel/ny
     Erstatte alle «gammel» med «ny» på en linje:    :s/gammel/ny/g
     Erstatte tekst mellom to linjenumre:	     :#,#s/gammel/ny/g
     Erstatte alle forekomster i en fil:	     :%s/gammel/ny/g
     For å godkjenne hver erstatning, legg til «c»:  :%s/gammel/ny/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Leksjon 5.1: HVORDAN UTFØRE EN EKSTERN KOMMANDO


    ** Skriv  :!  etterfulgt av en ekstern kommando for å utføre denne. **

  1. Skriv den velkjente kommandoen  :	 for å plassere markøren på bunnen av
     skjermen. Dette lar deg skrive en kommandolinjekommando.

  2. Nå kan du skrive tegnet  !  . Dette lar deg utføre en hvilken som helst
     ekstern kommando.

  3. Som et eksempel, skriv  ls  etter utropstegnet og trykk <ENTER>. Du vil
     nå få en liste over filene i katalogen, akkurat som om du hadde kjørt
     kommandoen direkte fra kommandolinjen i skallet. Eller bruk  :!dir  hvis
     «ls» ikke virker.

MERK: Det er mulig å kjøre alle eksterne kommandoer på denne måten, også med
      parametere.

MERK: Alle «:»-kommandoer må avsluttes med <ENTER>. Fra dette punktet er det
      ikke alltid vi nevner det.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 5.2: MER OM LAGRING AV FILER


      ** For å lagre endringene gjort i en tekst, skriv  :w FILNAVN. **

  1. Skriv  :!dir  eller  :!ls	for å få en liste over filene i katalogen. Du
     vet allerede at du må trykke <ENTER> etter dette.

  2. Velg et filnavn på en fil som ikke finnes, som for eksempel  TEST .

  3. Skriv  :w TEST  (der TEST er filnavnet du velger).

  4. Dette lagrer hele filen (denne innføringen) under navnet TEST . For å
     sjekke dette, skriv  :!dir  eller	:!ls  igjen for å se innholdet av
     katalogen.

Merk: Hvis du nå hadde avsluttet Vim og startet på nytt igjen med «vim TEST»,
      ville filen vært en eksakt kopi av innføringen da du lagret den.

  5. Fjern filen ved å skrive  :!rm TEST  hvis du er på et Unix-lignende
     operativsystem, eller  :!del TEST	hvis du bruker MS-DOS.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 5.3: VELGE TEKST SOM SKAL LAGRES


     ** For å lagre en del av en fil, skriv  v	bevegelse  :w FILNAVN **

  1. Flytt markøren til denne linjen.

  2. Trykk  v  og flytt markøren til det femte elementet nedenfor. Legg merke
     til at teksten blir markert.

  3. Trykk  :  (kolon). På bunnen av skjermen vil  :'<,'>  komme til syne.

  4. Trykk  w TEST  , der TEST er et filnavn som ikke finnes enda. Kontroller
     at du ser	:'<,'>w TEST  før du trykker Enter.

  5. Vim vil skrive de valgte linjene til filen TEST. Bruk  :!dir  eller  :!ls
     for å se den. Ikke slett den enda! Vi vil bruke den i neste leksjon.

MERK: Ved å trykke  v  startes visuelt valg. Du kan flytte markøren rundt for
      å gjøre det valgte området større eller mindre. Deretter kan du bruke en
      operator for å gjøre noe med teksten. For eksempel sletter  d  teksten.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 5.4: HENTING OG SAMMENSLÅING AV FILER


 ** For å lese inn en annen fil inn i nåværende buffer, skriv  :r FILNAVN  **

  1. Plasser markøren like over denne linjen.

MERK: Etter å ha utført steg 2 vil du se teksten fra leksjon 5.3. Gå deretter
      NED for å se denne leksjonen igjen.

  2. Hent TEST-filen ved å bruke kommandoen  :r TEST  der TEST er navnet på
     filen du brukte. Filen du henter blir plassert nedenfor markørlinjen.

  3. For å sjekke at filen ble hentet, gå tilbake og se at det er to kopier av
     leksjon 5.3, originalen og denne versjonen.

MERK: Du kan også lese utdataene av en ekstern kommando. For eksempel,	:r !ls
      leser utdataene av ls-kommandoen og legger dem nedenfor markøren.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 5


  1.  :!kommando  utfører en ekstern kommandio.

      Noen nyttige eksempler er:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		  - List filene i katalogen.
	  :!del FILNAVN    :!rm FILNAVN   - Slett filen FILNAVN.

  2.  :w FILNAVN  skriver den nåværende Vim-filen disken med navnet FILNAVN .

  3.  v  bevegelse  :w FILNAVN	lagrer de visuelt valgte linjene til filen
     FILNAVN.

  4.  :r FILNAVN  henter filen FILNAVN og legger den inn nedenfor markøren.

  5.  :r !dir  leser utdataene fra «dir»-kommandoen og legger dem nedenfor
     markørposisjonen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 6.1: «ÅPNE LINJE»-KOMMANDOEN


    ** Skriv  o  for å «åpne opp» for en ny linje etter markøren og gå til
       innsettingsmodus **

  1. Flytt markøren til linjen nedenfor merket --->.

  2. Skriv  o  (liten o) for å åpne opp en linje NEDENFOR markøren og gå inn i
     innsettingsmodus.

  3. Skriv litt tekst og trykk <ESC> for å gå ut av innsettingsmodusen.

---> Etter at  o  er skrevet blir markøren plassert på den tomme linjen.

  4. For å åpne en ny linje OVER markøren, trykk rett og slett en stor	O
     istedenfor en liten  o . Prøv dette på linjen nedenfor.

---> Lag ny linje over denne ved å trykke O mens markøren er på denne linjen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 6.2: «LEGG TIL»-KOMMANDOEN


	    ** Skriv  a  for å legge til tekst ETTER markøren. **

  1. Flytt markøren til starten av linjen merket ---> nedenfor.

  2. Trykk  e  til markøren er på slutten av «li».

  3. Trykk  a  (liten a) for å legge til tekst ETTER markøren.

  4. Fullfør ordet sånn som på linjen nedenfor. Trykk <ESC> for å gå ut av
     innsettingsmodusen.

  5. Bruk  e  for å gå til det neste ufullstendige ordet og repeter steg 3 og
     4.

---> Denne li lar deg øve på å leg til tek på en linje.
---> Denne linjen lar deg øve på å legge til tekst på en linje.

Merk: a, i og A går alle til den samme innsettingsmodusen, den eneste
      forskjellen er hvor tegnene blir satt inn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 6.3: EN ANNEN MÅTE Å ERSTATTE PÅ


	   ** Skriv en stor  R	for å erstatte mer enn ett tegn. **

  1. Flytt markøren til den første linjen nedenfor merket --->. Flytt markøren
     til begynnelsen av den første «xxx»-en.

  2. Trykk  R  og skriv inn tallet som står nedenfor på den andre linjen så
     det erstatter xxx.

  3. Trykk <ESC> for å gå ut av erstatningsmodusen. Legg merke til at resten
     av linjen forblir uforandret.

  4. Repeter stegene for å erstatte den gjenværende xxx.

---> Ved å legge 123 til xxx får vi xxx.
---> Ved å legge 123 til 456 får vi 579.

MERK: Erstatningsmodus er lik insettingsmodus, men hvert tegn som skrives
      erstatter et eksisterende tegn.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Leksjon 6.4: KOPIERE OG LIME INN TEKST


    ** Bruk y-operatoren for å kopiere tekst og  p  for å lime den inn **

  1. Gå til linjen merket ---> nedenfor og plasser markøren etter «a)».

  2. Gå inn i visuell modus med  v  og flytt markøren til like før «første».

  3. Trykk  y  for å kopiere (engelsk: «yank») den uthevede teksten.

  4. Flytt markøren til slutten av den neste linjen:  j$

  5. Trykk  p  for å lime inn teksten. Trykk deretter:	a andre <ESC> .

  6. Bruk visuell modus for å velge « valget.», kopier det med	y , gå til
     slutten av den neste linjen med  j$  og legg inn teksten der med  p .

---> a) Dette er det første valget.
     b)

Merk: Du kan også bruke  y  som en operator;  yw  kopierer ett ord.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 6.5: SETT VALG


  ** Sett et valg så søk eller erstatning ignorerer store/små bokstaver. **

  1. Let etter «ignore» ved å skrive:  /ignore <ENTER>
     Repeter flere ganger ved å trykke	n .

  2. Sett «ic»-valget (Ignore Case) ved å skrive:  :set ic

  3. Søk etter «ignore» igjen ved å trykke  n .
     Legg merke til at både «Ignore» og «IGNORE» blir funnet.

  4. Sett «hlsearch»- og «incsearch»-valgene:  :set hls is

  5. Skriv søkekommandoen igjen og se hva som skjer:  /ignore <ENTER>

  6. For å slå av ignorering av store/små bokstaver, skriv:  :set noic

Merk: For å fjerne uthevingen av treff, skriv:	:nohlsearch
Merk: Hvis du vil ignorere store/små bokstaver for kun en søkekommando, bruk
      \c  i uttrykket:	/ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 6

  1. Trykk  o  for å legge til en linje NEDENFOR markøren og gå inn i
     innsettingsmodus.
     Trykk  O  for å åpne en linje OVER markøren.

  2. Skriv  a  for å sette inn tekst ETTER markøren.
     Skriv  A  for å sette inn tekst etter slutten av linjen.

  3. Kommandoen  e  går til slutten av et ord.

  4. Operatoren  y  («yank») kopierer tekst,  p  («paste») limer den inn.

  5. Ved å trykke  R  går du inn i erstatningsmodus helt til  <ESC>  trykkes.

  6. Skriv «:set xxx» for å sette valget «xxx». Noen valg er:
	«ic» «ignorecase»	ignorer store/små bokstaver under søk
	«is» «incsearch»	vis delvise treff for en søketekst
	«hls» «hlsearch»	uthev alle søketreff

  7. Legg til «no» foran valget for å slå det av:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 7.1: FÅ HJELP


		   ** Bruk det innebygde hjelpesystemet. **

  Vim har et omfattende innebygget hjelpesystem. For å starte det, prøv en av
  disse måtene:
    - Trykk Hjelp-tasten (hvis du har en)
    - Trykk F1-tasten (hvis du har en)
    - Skriv  :help <ENTER>

  Les teksten i hjelpevinduet for å finne ut hvordan hjelpen virker.
  Skriv  CTRL-W CTRL-W	for å hoppe fra et vindu til et annet
  Skriv  :q <ENTER>	for å lukke hjelpevinduet.

  Du kan få hjelp for omtrent alle temaer om Vim ved å skrive et parameter til
  «:help»-kommandoen. Prøv disse (ikke glem å trykke <ENTER>):

    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 7.2: LAG ET OPPSTARTSSKRIPT


			** Slå på funksjoner i Vim **

  Vim har mange flere funksjoner enn Vi, men flesteparten av dem er slått av
  som standard. For å begynne å bruke flere funksjoner må du lage en
  «vimrc»-fil.

  1. Start redigeringen av «vimrc»-filen. Dette avhenger av systemet ditt:
	:e ~/.vimrc	  for Unix
	:e $VIM/_vimrc	  for MS Windows

  2. Les inn eksempelfilen for «vimrc»:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Lagre filen med:
	:w

  Neste gang du starter Vim vil den bruke syntaks-utheving. Du kan legge til
  alle dine foretrukne oppsett i denne «vimrc»-filen.
  For mer informasjon, skriv  :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Leksjon 7.3: FULLFØRING


	      ** Kommandolinjefullføring med CTRL-D og <TAB> **

  1. Vær sikker på at Vim ikke er i Vi-kompatibel modus:  :set nocp

  2. Se hvilke filer som er i katalogen:  :!ls	eller  :!dir

  3. Skriv starten på en kommando:  :e

  4. Trykk  CTRL-D  og Vim vil vise en liste over kommandoer som starter med
     «e».

  5. Trykk  <TAB>  og Vim vil fullføre kommandonavnet til «:edit».

  6. Legg til et mellomrom og starten på et eksisterende filnavn:  :edit FIL

  7. Trykk <TAB>. Vim vil fullføre navnet (hvis det er unikt).

MERK: Fullføring fungerer for mange kommandoer. Prøv ved å trykke CTRL-D og
      <TAB>. Det er spesielt nyttig for bruk sammen med  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 7


  1. Skriv  :help  eller trykk <F1> eller <Help> for å åpne et hjelpevindu.

  2. Skriv  :help kommando  for å få hjelp om  kommando .

  3. Trykk  CTRL-W CTRL-W  for å hoppe til et annet vindu.

  4. Trykk  :q	for å lukke hjelpevinduet.

  5. Opprett et vimrc-oppstartsskript for å lagre favorittvalgene dine.

  6. Når du skriver en «:»-kommando, trykk CTRL-D for å se mulige
     fullføringer. Trykk <TAB> for å bruke en fullføring.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Her slutter innføringen i Vim. Den var ment som en rask oversikt over
  editoren, akkurat nok til å la deg sette i gang med enkel bruk. Den er på
  langt nær komplett, da Vim har mange flere kommandoer. Les bruksanvisningen
  ved å skrive	:help user-manual  .

  For videre lesing og studier, kan denne boken anbefales:
      «Vim - Vi Improved» av Steve Oualline
      Utgiver: New Riders
  Den første boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
  nybegynnere. Inneholder mange eksempler og illustrasjoner.
  Se http://iccf-holland.org/click5.html

  Denne boken er eldre og handler mer om Vi enn Vim, men anbefales også:
      «Learning the Vi Editor» av Linda Lamb
      Utgiver: O'Reilly & Associates Inc.
  Det er en god bok for å få vite omtrent hva som helst om Vi.
  Den sjette utgaven inneholder også informasjon om Vim.

  Denne innføringen er skrevet av Michael C. Pierce og Robert K. Ware,
  Colorado School of Mines med idéer av Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu .

  Modifisert for Vim av Bram Moolenaar.
  Oversatt av Øyvind A. Holm. E-mail: vimtutor _AT_ sunbase.org
  Id: tutor.no 406 2007-03-18 22:48:36Z sunny

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim: set ts=8 :
PK�j�Z�'�đđvim80/tutor/tutor.nlnu�[���  ==========================================================================
  =    W e l k o m   b i j   d e   V I M   l e s s e n   -   Versie 1.7    =
  ==========================================================================

  Vim is een krachtige editor met veel commando's, te veel om uit te leggen
  in lessen zoals deze. Deze lessen zijn bedoeld om voldoende commando's te
  behandelen om je in staat te stellen met Vim te werken als een editor voor
  algemeen gebruik.

  Deze lessen zullen 25 tot 30 minuten in beslag nemen, afhankelijk van de
  tijd die wordt besteed aan het uitproberen van de commando's.

  LET OP:
  Door de commando's in deze lessen verandert de tekst. Maak een kopie van
  dit bestand om mee te oefenen (als je "vimtutor" uitvoerde, is dit al een
  kopie).

  Deze lessen zijn bedoeld om al doende te leren. Dat betekent dat je de
  commando's moet uitvoeren om ze goed te leren kennen. Als je de tekst
  alleen maar doorleest, zal je de commando's niet leren!

  Zorg ervoor dat de <Caps Lock> toets NIET is ingedrukt en druk vaak genoeg
  op de j-toets om de cursor zo te bewegen dat les 1.1 volledig op het
  scherm staat.

  LET OP: In deze lessen worden omwille van de duidelijkheid vaak spaties
  gebruikt binnen een commando (bv. "40 G" of "operator [getal] beweging").
  Tik deze spaties echter NIET. Ze verstoren de werking.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.1:  VERPLAATS DE CURSOR

  ** De cursor wordt verplaatst met de toetsen h, j, k, l zoals aangegeven. **
          ^
          k       Hint:  De h is de meest linkse en beweegt naar links.
      < h   l >          De l is de meest rechtse en beweegt naar rechts.
          j              De j lijkt op een pijl naar beneden.
          v

  1. Beweeg de cursor over het scherm om er vertrouwd mee te raken.

  2. Druk de omlaag-toets (j) tot hij repeteert.
     Nu weet je hoe je de volgende les bereikt.

  3. Gebruik de omlaag-toets om naar les 1.2 te gaan.

  OPMERKING: Als je twijfelt aan wat je tikte, druk <ESC> om in de opdracht-
             modus te komen. Tik daarna het commando dat bedoeld wordt.

  OPMERKING: Pijltjes-toetsen werken ook. Met de hjkl-toetsen kan je sneller
             rondbewegen, als je er eenmaal aan gewend bent. Echt waar!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.2: VIM AFSLUITEN

      !! LET OP: Lees deze les goed door voordat je iets uitvoert!!

  1. Druk de <ESC> toets (om zeker in de opdrachtmodus te zitten).

  2. Tik   :q! <ENTER>
     Hiermee wordt de editor afgesloten. Alle veranderingen gaan VERLOREN.

  3. Nu zie je de shell-prompt. Tik het commando waarmee je deze lessen
     hebt opgeroepen. Dat is normaal gesproken:  vimtutor <ENTER>

  4. Als je deze stappen goed hebt doorgelezen, voer dan de stappen 1 tot 3
     uit om de editor te verlaten en weer op te starten.

  LET OP: :q! <ENTER> verwerpt alle veranderingen die je aanbracht. Een paar
          lessen verder zal je leren hoe veranderingen worden opgeslagen in
          een bestand.

  5. Beweeg de cursor omlaag naar les 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.3: TEKST BEWERKEN - WISSEN

          ** Tik  x  om het teken onder de cursor te wissen. **

  1. Ga met de cursor naar de regel verderop met --->.

  2. Zet de cursor op een teken dat moet worden gewist om een fout te
     herstellen.

  3. Tik  x  om het ongewenste teken te wissen.

  4. Herhaal deze stappen tot de regel goed is.

  ---> Vi kkent eenn opdracccchtmodus en een invooegmmmmodus.

  5. Nu de regel gecorrigeerd is kan je naar les 1.4 gaan.

  LET OP: Probeer de lessen niet uit je hoofd te leren. Leer al doende.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.4: TEKST BEWERKEN - INVOEGEN

              ** Tik  i  ('insert') om tekst in te voegen. **

  1. Ga met de cursor naar de eerste regel verderop met --->.

  2. Maak de eerste regel gelijk aan de tweede. Zet daarvoor de cursor op
     de plaats waar tekst moet worden ingevoegd.

  3. Tik  i  en daarna de nodige aanvullingen.

  4. Tik <ESC> na elke herstelde fout om terug te keren in de opdrachtmodus.
     Herhaal de stappen 2 tot 4 om de zin te verbeteren.

  ---> Aan regel ontekt wat .
  ---> Aan deze regel ontbreekt wat tekst.

  5. Ga naar les 1.5 als je gewend bent aan het invoegen van tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.5: TEKST BEWERKEN - TOEVOEGEN

             ** Tik  A  ('append') om tekst toe te voegen. **

  1. Ga met de cursor naar de eerste regel verderop met --->.
     Het maakt niet uit waar de cursor in deze regel staat.

  2. Tik hoofdletter  A  en tik de nodige aanvullingen.

  3. Tik <ESC> nadat de tekst is aangevuld. Zo keer je terug in de
     opdrachtmodus.

  4. Ga naar de tweede regel verderop met ---> en herhaal stap 2 en 3
     om deze zin te corrigeren.

  ---> Er ontbreekt wat tekst aan de
       Er ontbreekt wat tekst aan deze regel.
  ---> Hier ontbreekt ook w
       Hier ontbreekt ook wat tekst.

  5. Ga naar les 1.6 als je vertrouwd bent geraakt aan het toevoegen
     van tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.6: EEN BESTAND EDITTEN

    ** Gebruik  :wq  om een bestand op te slaan en de editor te verlaten. **

  !! LET OP: Lees deze les helemaal door voordat je een van de volgende
             stappen uitvoert!!

  1. Verlaat deze les zoals je in les 1.2 deed:  :q!
     Of gebruik een andere terminal als je daar de beschikking over hebt. Doe
     daar het volgende.

  2. Tik het volgende commando na de shell-prompt:  vim les <ENTER>
     'vim' (vaak ook 'vi') is het commando om de Vim-editor te starten,
     'les' is de naam van het bestand, dat je gaat bewerken. Kies een andere
     naam als er al een bestand 'les' bestaat, dat niet veranderd mag worden.

  3. Voeg naar eigen keus tekst toe, zoals je geleerd hebt in eerdere lessen.

  4. Sla het bestand met de wijzigingen op en verlaat Vim met  :wq <ENTER>

  5. Herstart vimtutor als je deze bij stap 1 hebt verlaten en ga verder met
     de volgende samenvatting.

  6. Voer deze stappen uit nadat je ze hebt gelezen en begrepen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 1

  1. De cursor wordt bewogen met de pijltjestoetsen of de hjkl-toetsen.
       h (links)   j (omlaag)  k (omhoog)  l (rechts)

  2. Start Vim van de shell-prompt. Tik:  vim BESTANDSNAAM <ENTER>

  3. Sluit Vim af met  <ESC> :q! <ENTER>  om de veranderingen weg te gooien.
               OF tik  <ESC> :wq <ENTER>  om de veranderingen te bewaren.

  4. Wis het teken onder de cursor met:  x

  5. Invoegen of toevoegen van tekst, tik:
     i  en daarna de in te voegen tekst  <ESC>   voeg in vanaf de cursor
     A  en daarna de toe te voegen tekst  <ESC>  voeg toe achter de regel

  OPMERKING: Met <ESC> kom je terug in opdrachtmodus en wordt een ongewenst
             of gedeeltelijk uitgevoerd commando afgebroken.

  Ga nu verder met les 2.1.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.1: WIS-COMMANDO'S

       ** Tik  dw  ('delete word') om een woord te wissen. **

  1. Druk op <ESC> om zeker in de opdrachtmodus te zijn.

  2. Ga naar de regel hieronder, die met ---> begint.

  3. Ga met de cursor naar het begin van een woord dat moet worden gewist.

  4. Met het tikken van  dw  verdwijnt het woord.

  OPMERKING: De letter  d  verschijnt op de laatste regel van het scherm
             zodra je hem tikt. Vim is aan het wachten tot je de  w  tikt.
             Als je een ander teken dan  d  ziet, heb je iets verkeerds
             getikt. Druk op <ESC> en begin opnieuw.

  NOG EEN OPMERKING: Dit werkt alleen als de optie 'showcmd' is ingeschakeld.
                     Dat gebeurt met  :set showcmd <ENTER>

  ---> Er zijn een het paar ggg woorden, die niet in deze len zin thuishoren.

  5. Herhaal de stappen 3 en 4 tot de zin goed is en ga naar les 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.2: MEER WIS-COMMANDO'S

        ** Tik  d$  om te wissen tot het einde van de regel. **

  1. Druk op <ESC> om zeker in de opdrachtmodus te zijn.

  2. Ga naar de regel hieronder, die met ---> begint.

  3. Ga met de cursor naar het einde van de correcte regel (NA de eerste  . ).

  4. Tik  d$  om te wissen tot het einde van de regel.

  ---> Iemand heeft het einde van deze regel dubbel getikt. dubbel getikt.

  5. Ga naar les 2.3 voor uitleg.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.3: OVER OPERATOREN EN BEWEGINGEN

  Veel commando's die de tekst veranderen, bestaan uit een operator en een
  beweging. De samenstelling van een wis-commando met de operator  d  is:
    d  beweging

  Daarbij is:
    d        - de wis-operator
    beweging - het bereik waarop de operator werkt (zie het lijstje hieronder)

  Een korte lijst van bewegingen vanaf de cursor:
    w - tot het begin van het volgende woord, ZONDER het eerste teken daarvan.
    e - tot het einde van het huidige woord, INCLUSIEF het laatste teken.
    $ - tot het einde van de regel, INCLUSIEF het laatste teken.

  Het tikken van  de  wist tekst vanaf de cursor tot het eind van het woord.

  OPMERKING: Het intikken van alleen maar de beweging, zonder een operator,
             in de opdrachtmodus beweegt de cursor (respectievelijk naar het
             volgende woord, naar het eind van het huidige woord en naar het
             eind van de regel).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.4: GEBRUIK VAN EEN TELLER BIJ EEN BEWEGING

   ** Een getal voor een beweging herhaalt het zoveel keer. **

  1. Ga naar de regel hieronder, die met ---> begint.

  2. Tik  2w  zodat de cursor twee woorden vooruit gaat.

  3. Tik  3e  zodat de cursor naar het einde van het derde woord gaat.

  4. Tik  0  (nul) om naar het begin van de regel te gaan.

  5. Herhaal de stappen 2 en 3 met andere getallen.

  ---> Dit is een regel met woorden waarin je heen en weer kan bewegen.

  6. Ga verder met les 2.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.5: GEBRUIK EEN TELLER OM MEER TE WISSEN

  ** Een getal met een operator zorgt dat deze zoveel keer wordt herhaald. **

  Bij de combinatie van wis-operator en beweging kan je voor de beweging een
  teller zetten om meer te wissen:
         d  [teller]  beweging

  1. Ga naar het eerste woord in HOOFDLETTERS in de regel na --->.

  2. Met  d2w  worden twee woorden (in dit voorbeeld in hoofdletters) gewist.

  3. Herhaal de stappen 1 en 2 met verschillende tellers om de verschillende
     woorden in hoofdletters met ��n commando te wissen.

  ---> deze ABC DE regel FGHI JK LMN OP is QZ RS ontdaan van rommel.

  OPMERKING: De teller kan ook aan het begin staan: d2w en 2dw werken allebei.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.6: BEWERKING VAN HELE REGELS

               ** Tik  dd  om een hele regel te wissen. **

  Omdat het wissen van een hele regel vaak voorkomt, besloten de ontwerpers
  van Vi dat met het tikken van  dd  simpelweg een hele regel gewist wordt.

  1. Ga met de cursor naar de tweede regel van de zinnetjes hieronder.

  2. Tik  dd  om de regel te wissen.

  3. Ga nu naar de vierde regel.

  4. Tik  2dd  om twee regels te wissen.

  --->  1)  Rozen zijn rood.
  --->  2)  Modder is leuk.
  --->  3)  Viooltjes zijn blauw.
  --->  4)  Ik heb een auto.
  --->  5)  De klok slaat de tijd.
  --->  6)  Suiker is zoet.
  --->  7)  En dat ben jij ook.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.7: HET COMMANDO HERSTEL

  ** u  maakt het laatste commando ongedaan,  U  herstelt een hele regel. **

  1. Ga met de cursor naar de regel hieronder met ---> en zet hem
     op de eerste fout.

  2. Tik  x  om het eerste ongewenste teken te wissen.

  3. Tik nu  u  en maak daarmee het vorige commando ongedaan.

  4. Herstel nu alle fouten in de regel met het  x  commando.

  5. Tik een hoofdletter  U  om de regel in z'n oorspronkelijke staat terug
     te brengen.

  6. Tik nu een paar keer  u  en herstel daarmee de  U  en eerdere commando's.

  7. Tik nu een paar keer CTRL-R (Ctrl-toets ingedrukt houden en R tikken) en
     voer daarmee de commando's opnieuw uit: 'redo' oftewel 'undo de undo's'. 

  ---> Heerstel de fouten inn deeze regel en brenng ze weer terugg met undo.

  8. Dit zijn heel nuttige commando's. Ga verder met samenvatting van les 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 2

  1. Wis van de cursor tot het volgende woord met    dw

  2. Wis van de cursor tot het eind van de regel met d$

  3. Wis de hele regel met                           dd

  4. Herhaal een beweging door er een getal voor te zetten:  2w

  5. De opbouw van een wijzigingscommando is:
       operator  [getal]  beweging
     daarbij is:
       operator - wat er moet gebeuren, bijvoorbeeld  d  om te wissen
       [getal]  - een (niet-verplichte) teller om 'beweging' te herhalen
       beweging - een beweging door de te wijzigen tekst zoals w (woord)
                  of $ (tot het einde van de regel) enz.

  6. Ga naar het begin van de regel met nul:  0

  7. Undo de voorgaande actie met              u (kleine letter)
     Undo alle veranderingen in een regel met  U (hoofdletter)
     Undo de undo's met                        CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.1: HET COMMANDO PLAK

  ** Tik  p  ('put') en plak daarmee zojuist gewiste tekst na te cursor. **

  1. Ga met de cursor naar de eerste regel met ---> hierna.

  2. Wis de regel met  dd  en bewaar hem zodoende in een Vim-register.

  3. Ga naar de c-regel, waar de gewiste regel ONDER moet komen.

  4. Tik  p  om de regel terug te zetten onder de regel met de cursor.

  5. Herhaal de stappen 2 tot 4 om de regels in de goede volgorde te zetten.

---> d) Krijg je het ook onder de knie?
---> b) Viooltjes zijn blauw,
---> c) Begrip is te leren,
---> a) Rozen zijn rood,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.2: HET COMMANDO VERVANG

  ** Tik rx ('replace') om het teken onder de cursor te vervangen door x. **

  1. Ga naar de eerste regel hieronder met --->.

  2. Zet de cursor op de eerste fout.

  3. Tik  r  en dan het teken dat er hoort te staan.

  4. Herhaal de stappen 2 en 3 tot de eerste regel gelijk is aan de tweede.

  --->  Bij het tokken van dezf hegel heeft iemamd verklerde letters getikt.
  --->  Bij het tikken van deze regel heeft iemand verkeerde letters getikt.

  5. Ga nu naar les 3.3.

  LET OP: Door het te doen, leer je beter dan door het uit je hoofd te leren.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.3: HET COMMANDO VERANDER

     ** Tik  ce  om te veranderen tot het einde van een woord. **

  1. Ga met de cursor naar de eerste regel hieronder met --->.

  2. Zet de cursor op de  u  van ruch.

  3. Tik  ce  en de juiste letters (in dit geval "egel").

  4. Druk <ESC> en ga naar het volgende teken dat moet worden veranderd.

  5. Herhaal de stappen 3 en 4 tot de eerste regel gelijk is aan de tweede.

  ---> In deze ruch staan een paar weedrim die veranderd moud worden.
  ---> In deze regel staan een paar woorden die veranderd moeten worden.

  LET OP: Met  ce  wordt (het laatste deel van) een woord gewist en kom je
          in de invoegmodus.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.4: MEER VERANDERINGEN MET c

  1. Het commando verander ('change') werkt op dezelfde manier als wis. De
     opbouw is:
         c  [teller]  beweging

  2. De bewegingen zijn hetzelfde, zoals  w  (woord) en  $  (einde regel).

  3. Ga naar de eerste regel hieronder met --->.

  4. Zet de cursor op de eerste fout.

  5. Tik  c$  en tik de rest van de regel zodat hij gelijk wordt aan de
     tweede en sluit af met <ESC>.

  ---> Het einde van deze regel moet precies zo worden als de tweede regel.
  ---> Het einde van deze regel moet gecorrigeerd worden met het commando c$.

  OPMERKING: Je kan de toets <BACKSPACE> gebruiken om tikfouten te herstellen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 3 

  1. Tik  p  om tekst terug te plakken, die zojuist is gewist. Dit zet de
     gewiste tekst ACHTER de cursor (als een hele regel is gewist komt deze
     op de regel ONDER de cursor.

  2. Het teken waarop de cursor staat wordt vervangen met  r  gevolgd door
     het teken dat je daar wilt hebben.

  3. Het commando 'verander' stelt je in staat om tekst te veranderen vanaf
     de cursor tot waar de 'beweging' je brengt. Dat wil zeggen: tik  ce  om
     te veranderen vanaf de cursor tot het einde van het woord,  c$  om te
     veranderen tot het einde van de regel.

  4. De opbouw van het commando verander is:
         c  [teller]  beweging

  Ga nu naar de volgende les.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.1: PLAATS VAN DE CURSOR EN STATUS VAN HET BESTAND

  ** CTRL-G laat zien waar (regelnummer) je je bevindt en wat de status van
     het bestand is. Met [nummer] G  ga je naar een bepaalde regel. **

  LET OP: Lees de hele les voordat je een stap uitvoert!!

  1. Hou de Ctrl-toets ingedrukt en tik  g . Dit noemen we CTRL-G.
     Onderaan de pagina verschijnt een boodschap met de bestandsnaam en de
     positie in het bestand. Onthou het regelnummer voor stap 3.

  OPMERKING: Als de optie 'ruler' aan staat, wordt de positie van de cursor
             (regelnummer, kolom) steeds in de rechter-onderhoek van het
             scherm vermeld. In dit geval vermeldt CTRL-G geen regelnummer.
             CTRL-G geeft ook de status aan, namelijk of de tekst veranderd
             is ('modified') sinds het de laatste keer is opgeslagen.  

  2. Tik hoofdletter  G  om naar het einde van het bestand te gaan.
     Tik  gg  om naar het begin van het bestand te gaan.

  3. Tik het regelnummer waar je bij stap 1 was en daarna  G . Dit brengt je
     terug naar de regel waar je was toen je de eerste keer CTRL-G tikte.

  4. Voer de stappen 1 tot 3 uit als je dit goed hebt gelezen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.2: HET COMMANDO ZOEKEN

  ** Met  /ZOEK  wordt naar de zoekterm (��n of meer woorden) gezocht. **

  1. Tik in de opdrachtmodus het teken  / . Je ziet dat het met de cursor
     aan de onderkant van het scherm verschijnt, zoals bij het :-commando.

  2. Tik nu 'ffouut' <ENTER>. Dit is het woord waarnaar gezocht wordt.

  3. Tik  n  om verder te zoeken met dezelfde zoekterm.
     Zoek met  N  met dezelfde zoekterm in de tegenovergestelde richting.

  4. Zoek in achterwaartse richting met ?zoekterm in plaats van  / .

  5. Keer terug naar de vorige hit met CTRL-O (hou Ctrl-toets ingedrukt en
     tik letter o). Herhaal om verder terug te gaan. CTRL-I gaat vooruit.

  ---> "ffouut" is niet de juiste spelling van fout, ffouut is een fout.

  OPMERKING: Als zoeken het einde van het bestand bereikt, wordt vanaf het
             begin doorgezocht, tenzij de optie 'wrapscan' is uitgeschakeld.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.3: GA NAAR CORRESPONDERENDE HAAKJES

            ** Tik  %  om naar corresponderende ), ] of } te gaan. **

  1. Zet de cursor op een (, [ of { in de regel hieronder met --->.

  2. Tik dan het teken  % .

  3. De cursor gaan naar het overeenkomstige haakje.

  4. Met opnieuw  %  gaat de cursor terug naar het eerste haakje.

  5. Plaats de cursor op een ander haakje en bekijk wat  %  doet.

  ---> Dit ( is een testregel met  ('s, ['s ] en {'s } erin. ))

  OPMERKING: Dit is nuttig bij het debuggen van een programma waarin haakjes
             niet corresponderen. Met de optie 'showmatch' wordt ook
             aangegeven of haakjes corresponderen, maar de cursor wordt niet
             (blijvend) verplaatst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.4: HET VERVANG COMMANDO

      ** Tik  :s/oud/nieuw/g  om 'oud' door 'nieuw' te vervangen. **

  1. Ga met de cursor naar de regel hieronder met --->.

  2. Tik  :s/dee/de <ENTER>. Zoals je ziet, vervangt ('substitute') dit
     commando alleen de eerste "dee" in de regel.

  3. Tik nu  :s/dee/de/g . Met de g-vlag ('global') wordt elke "dee" in de
     regel vervangen.

  ---> dee beste tijd om dee bloemen te zien is in dee lente.

  4. Om in (een deel van) een tekst elk 'oud' te vervangen door 'nieuw':
     tik   :#,#s/oud/nieuw/g   waar #,# de regelnummers zijn die het gebied
                               begrenzen waarin wordt vervangen.
     tik   :%s/oud/nieuw/g     om alles te vervangen in het hele bestand.
     tik   :%s/oud/nieuw/gc    om elke 'oud' in het hele bestand te vinden
                               en te vragen of er vervangen moet worden.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 4

  1. CTRL-G   laat positie in het bestand zien en de status van het bestand.
     G        verplaatst je naar het einde van het bestand.
     nummer G verplaatst je naar regelnummer.
     gg       verplaatst je naar de eerste regel.

  2. Met  /  en een zoekterm wordt VOORWAARTS gezocht naar de term.
     Met  ?  en een zoekterm wordt ACHTERWAARTS gezocht naar de term.
     Tik  n  na een zoekopdracht om de volgende hit te vinden,
     of tik  N  om in de andere richting te zoeken.
     CTRL-O  brengt je naar eerdere hit,  CTRL-I naar nieuwere.

  3. Tik  %  terwijl de cursor op een haakje ([{}]) staat, om naar het
     corresponderende haakje te gaan.

  4. :s/oud/nieuw      vervangt het eerste 'oud' in een regel door 'nieuw'.
     :s/oud/nieuw/g    vervangt elk 'oud' in een regel door 'nieuw'.
     :#,#s/oud/nieuw/g vervangt elk 'oud' door 'nieuw' tussen de regelnummers.
     :%s/oud/nieuw/g    vervangt elk 'oud' door 'nieuw' in het hele bestand.
     Voeg  c  toe (:%s/oud/nieuw/gc) om elke keer om bevestiging
     ('confirmation') te vragen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.1: HOE EEN EXTERN COMMANDO WORDT UITGEVOERD

     ** Tik  :!  gevolgd door een extern commando om dat uit te voeren. **

  1. Tik het commando  :  waarmee de cursor op de onderste regel van het
     scherm komt te staan. Nu kan je een opdracht geven via de commando-regel.

  2. Tik een  !  (uitroepteken). Dit stelt je in staat om elk shell-commando
     uit te voeren.

  3. Tik bijvoorbeeld  ls  na het uitroepteken en daarna <ENTER>. Hiermee
     krijg je de inhoud van je map te zien, net alsof je de opdracht gaf
     vanaf de shell-prompt. Probeer  :!dir  als het niet werkt.

  OPMERKING: Elk extern commando kan op deze manier uitgevoerd worden, ook
             met argumenten.

  OPMERKING: Alle commando's na  :  moeten worden afgesloten met <ENTER>.
             Vanaf nu zullen we dat niet meer altijd vermelden.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.2: MEER OVER HET OPSLAAN VAN BESTANDEN

     ** Tik :w BESTANDSNAAM om de tekst m�t veranderingen op te slaan. **

  1. Tik  :!dir  of  :!ls  om de inhoud van je map te tonen. Je weet
     inmiddels dat je daarna een <ENTER> moet tikken.

  2. Kies een bestandsnaam die nog niet bestaat, bijvoorbeeld TEST.

  3. Tik nu:  :w TEST  (als je de naam TEST hebt gekozen).

  4. Hierdoor wordt het hele bestand (de VIM lessen) opgeslagen onder de
     naam TEST. Tik weer  :!dir  of  :!ls  om dit te controleren.

  OPMERKING: Als je Vim zou verlaten en opnieuw zou starten met  vim TEST  is
             het bestand een exacte kopie van de lessen, zoals je ze opsloeg.

  5. Wis het bestand nu met de opdracht (MS-DOS)  :!del TEST
                                       of (Unix)  :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.3: EEN DEEL VAN DE TEKST OPSLAAN

     ** Sla een deel van het bestand op met  v beweging :w BESTANDSNAAM **

  1. Ga naar deze regel.

  2. Tik  v  en ga met de cursor naar stap 5 hieronder. Je ziet dat de
     tekst oplicht.

  3. Tik  : . Onderaan het scherm zal  :'<,'>  verschijnen.

  4. Tik  w TEST  , waar TEST een bestandsnaam is, die nog niet bestaat.
     Controleer dat je  :'<,'>w TEST  ziet staan voordat je <ENTER> tikt.

  5. Vim slaat nu de geselecteerde regels op in het bestand TEST. Met
     :!dir  of  !ls  kan je dat zien. Wis het nog niet! We zullen het in
     de volgende les gebruiken.

  OPMERKING: Het tikken van  v  zet zichtbare modus ('visual selection') aan.
             Je kan de cursor rondbewegen om de selectie groter of kleiner
             te maken. Vervolgens kan je een commando gebruiken om iets met
             de tekst te doen. Met  d  bijvoorbeeld wis je de tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.4: OPHALEN EN SAMENVOEGEN VAN BESTANDEN

     ** Tik  :r BESTANDSNAAM om de inhoud van een bestand in te voegen. **

  1. Zet de cursor precies boven deze regel.

  OPMERKING: Na het uitvoeren van stap 2 zie je tekst van les 5.3. Scrol
             daarna naar beneden om deze les weer te zien.

  2. Haal nu het bestand TEST op met het commando  :r TEST .
     Het bestand dat je ophaalt komt onder de regel waarin de cursor staat.

  3. Controleer dat er een bestand is opgehaald. Ga met de cursor omhoog.
     Dan zie je de tekst van les 5.3 dubbel, het origineel en de versie uit
     het bestand.

  OPMERKING: Je kan ook de uitvoer van een extern commando inlezen. Om een
             voorbeeld te geven:  :r !ls  leest de uitvoer van het commando
             ls en zet dat onder de regel waarin de cursor staat.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 5

  1. :!COMMANDO  voert een extern commando uit.
     Enkele bruikbare voorbeelden zijn:
        (MS-DOS)         (Unix)
         :!dir            :!ls          - laat de inhoud van een map zien
         :!del BESTAND    :!rm BESTAND  - wist bestand BESTAND

  2. :w BESTANDSNAAM  schrijft het huidige Vim-bestand naar disk met de
     naam BESTANDSNAAM.

  3. v beweging :w BESTANDSNAAM  laat je in zichtbare modus een fragment
     selecteren, dat wordt opgeslagen in het bestand BESTANDSNAAM.

  4. :r BESTANDSNAAM  haalt het bestand BESTANDSNAAM op en voegt het onder
     de cursor-positie in de tekst in.

  5. :r !dir  leest de uitvoer van het externe commando dir en zet het onder
     de cursor-positie.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.1: HET COMMANDO OPEN

     ** Tik  o  om een regel onder de cursor te openen in invoegmodus. **

  1. Ga naar de eerste regel beneden met --->.

  2. Tik de kleine letter  o  en open daarmee een regel ONDER de cursor en
     ga naar de invoegmodus.

  3. Tik wat tekst in en sluit af met <ESC> om de invoegmodus te verlaten.

  ---> Als je  o  tikt, komt de cursor in een nieuwe regel in invoegmodus.

  4. Om een regel BOVEN de cursor te openen, moet je gewoon een hoofdletter
     O  tikken in plaats van een kleine letter. Probeer dat vanaf de volgende
     regel.

  ---> Open een regel hierboven. Tik een O terwijl de cursor hier staat.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.2: HET COMMANDO TOEVOEGEN

        ** Tik  a  om tekst toe te voegen ACHTER de cursor. **

  1. Ga naar het begin van de regel beneden met --->.
 
  2. Tik  e  tot de cursor op het einde van  "ste"  staat.

  3. Tik een (kleine letter)  a  ('append') om toe te voegen ACHTER de cursor.

  4. Vul het woord aan zoals in de volgende regel. Druk <ESC> om de
     invoegmodus te verlaten.

  5. Ga met  e  naar het einde van het volgende onvolledige woord en herhaal
     de stappen 3 en 4.

  ---> Deze regel ste je in staat om te oef in het toevo van tekst. 
       Deze regel stelt je in staat om te oefenen in het toevoegen van tekst. 

  OPMERKING: a, i en A openen allemaal dezelfde invoegmodus, het enige
             verschil is waar tekens worden ingevoegd.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.3: VERVANGEN OP EEN ANDERE MANIER

      ** Tik een hoofdletter  R  om meer dan ��n teken te vervangen. **

  1. Ga naar de eerste regel beneden met --->. Ga met de cursor naar het
     begin van de eerste  "xxx" .

  2. Tik nu  R  en daarna het getal eronder in de tweede regel, zodat  xxx
     wordt vervangen.

  3. Druk <ESC> om de vervangmodus te verlaten. Je ziet dat de rest van de
     regel ongewijzigd blijft.

  4. Herhaal de stappen om de overgebleven  xxx  te vervangen.

  ---> Optellen van 123 en xxx geeft je xxx.
  ---> Optellen van 123 en 456 geeft je 579.

  OPMERKING: Vervangmodus lijkt op invoegmodus, maar elk teken dat je tikt,
             vervangt een bestaand teken.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.4: TEKST KOPI�REN EN PLAKKEN

        ** Gebruik  y  om tekst te kopi�ren en  p  om te plakken. **

  1. Ga naar de regel beneden met ---> en zet de cursor achter "a)".

  2. Zet zichtbare modus aan met  v  en zet de cursor juist voor "eerste".

  3. Tik  y  ('yank') om de opgelichte tekst ("dit is het") te kopi�ren.

  4. Ga met  j$  met de cursor naar het einde van de volgende regel.

  5. Plak de gekopieerde tekst met  p  en tik  a tweede <ESC>.

  6. Selecteer in zichtbare modus "onderdeel", kopieer het met  y  en
     ga met  j$  naar het einde van de tweede regel. Plak de tekst daar
     met  p .

  --->  a) dit is het eerste onderdeel
        b)

  OPMERKING: Je kan  y  ook als operator gebruiken;  yw  kopieert een woord,
             yy  een hele regel.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.5: OPTIES GEBRUIKEN

     ** Gebruik een optie voor al dan niet hoofdlettergevoelig zoeken. **

  1. Zoek naar 'hoofdlettergevoelig' met  /hoofdlettergevoelig <ENTER>
     Herhaal het zoeken enkele keren door  n  te tikken.
 
  2. Schakel de optie 'ic' ('ignore case', niet-hoofdlettergevoelig) in
     met  :set ic

  3. Zoek met  n  opnieuw naar 'hoofdlettergevoelig'. Je ziet dat
     Hoofdlettergevoelig en HOOFDLETTERGEVOELIG nu ook gevonden worden.

  4. Schakel de opties 'hlsearch' (treffers oplichten) en 'incsearch' (toon
     gedeeltelijke treffers bij intikken) in met  :set hls is

  5. Tik weer /hoofdlettergevoelig <ENTER> en kijk wat er gebeurt.

  6. Schakel 'hoofdlettergevoelig' weer in met  :set noic

  OPMERKING: Schakel het oplichten van treffers uit met  :nohlsearch

  OPMERKING: Om bij een enkel zoek-commando de hoofdlettergevoeligheid om
             te draaien kan  \c  worden gebruikt na de zoekterm:
             /hoofdlettergevoelig\c <ENTER>.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 6

  1. Tik  o  om een regel te openen ONDER de cursor en invoegmodus te starten.
     Tik  O  om een regel te openen BOVEN de cursor.

  2. Tik  a  om tekst toe te voegen NA de cursor.
     Tik  A  om tekst toe te voegen aan het einde van de regel.

  3. Het commando  e  beweegt de cursor naar het einde van een woord.

  4. De operator  y  yankt (kopieert) tekst,  p  zet het terug (plakt).

  5. Met hoofdletter  R  wordt de vervangmodus geopend, met <ESC> afgesloten.

  6. Met  :set xxx  wordt optie 'xxx' ingeschakeld. Opties zijn bijvoorbeeld:
       ic   ignorecase  geen verschil hoofdletters/kleine letters bij zoeken
       is   incsearch   toon gedeeltelijke treffers tijdens intikken zoekterm 
       hls  hlsearch    laat alle treffers oplichten
     Je kan zowel de lange als de korte naam van een optie gebruiken.
  
  7. Zet 'no' voor de naam om een optie uit te schakelen:  :set noic
     schakelt 'ic' uit.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 7.1: HULP INROEPEN

           ** Het gebruik van ingebouwde hulp. **

  Vim heeft een uitgebreid ingebouwd hulpsysteem. Probeer, om te beginnen,
  ��n van deze drie:
    - druk de <HELP> toets (als je die hebt)
    - druk de <F1> toets (als je die hebt)
    - tik  :help <ENTER>

  Lees de tekst in het help-venster om te leren hoe 'help' werkt.
  Tik  CTRL-W CTRL-W  om van het ene venster naar het andere te gaan.
  Met  :q <ENTER>  wordt het help-venster gesloten.

  Je kan hulp vinden over nagenoeg elk onderwerp door een argument aan het
  commando  :help  toe te voegen. Probeer deze (en vergeet <ENTER> niet):
    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 7.2: SCHRIJF EEN CONFIGURATIEBESTAND

                    ** Mogelijkheden van Vim uitbreiden. **

  Vim kent veel meer mogelijkheden dan Vi, maar de meeste zijn standaard
  uitgeschakeld. Om meer functies te gebruiken moet je een 'vimrc'-bestand
  schrijven.

  1. Bewerk het bestand 'vimrc'. Hoe dat moet hangt af van je systeem:
      :e ~/.vimrc		voor Unix
      :e $VIM/_vimrc		voor MS-Windows

  2. Lees de inhoud van het voorbeeld-bestand:
      :r $VIMRUNTIME/vimrc_example.vim

  3. Sla het bestand op met  :w

  De volgende keer dat je Vim start wordt 'syntaxiskleuring' gebruiken.
  Je kan al je voorkeursinstellingen toevoegen aan dit 'vimrc'-bestand.
  Tik  :help vimrc-intro  voor meer informatie.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 7.3: AANVULLEN

      ** Aanvullen van de 'command line' met CTRL-D en <TAB>. **

  1. Zorg dat Vim niet in 'compatible mode' is met  :set nocp

  2. Kijk welke bestanden zich in de map bevinden met  :!ls  of  :!dir

  3. Tik het begin van een commando:  :e

  4. Met  CTRL-D  toont Vim een lijst commando's, die met "e" beginnen.

  5. Druk enkele keren <TAB>. Vim laat aanvullingen zien, zoals ":edit",
     dat we hier gebruiken.

  6. Voeg een spatie toe en de eerste letter(s) van een bestaande
     bestandsnaam:  :edit BESTAND

  7. Druk <TAB>. Vim vult de naam aan (als hij uniek is).

  OPMERKING: Aanvullen werkt bij tal van commando's. Probeer gewoon CTRL-D
             en <TAB>. Het is bijzonder nuttig bij  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 7

  1. Tik  :help  of druk <F1> of <Help>  om een help-venster te openen.

  2. Tik  :help CMD  voor hulp over  CMD .

  3. Tik  CTRL-W CTRL-W  om naar een ander venster te gaan.

  4. Tik  :q  om het help-venster te sluiten.

  5. Maak een bestand met de naam 'vimrc' voor je voorkeursinstellingen.

  6. Druk CTRL-D tijdens het intikken van een :-commando om mogelijke
     aanvullingen te zien. Druk <TAB> om aanvullen te gebruiken.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Hiermee komen de Vim-lessen tot een einde. Ze waren bedoeld om een kort
  overzicht te geven van de Vim-editor, juist voldoende om de editor
  redelijk makkelijk te gebruiken. Deze lessen zijn verre van volledig. Vim
  kent veel meer commando's. Lees hierna de handleiding voor gebruikers:
  ":help user-manual".

  Voor verdere studie wordt aanbevolen:
      Vim - Vi Improved - door Steve Oualline
      Uitgever: New Riders
  Dit is het eerste boek dat geheel aan Vim is gewijd. Speciaal geschikt
  voor beginners. Met veel voorbeelden en afbeeldingen.
  Zie http://iccf-holland.org/click5.html

  Het volgende boek is ouder en gaat meer over Vi dan Vim, maar het wordt
  toch aanbevolen:
      Learning the Vi Editor - door Linda Lamb
      Uitgever: O'Reilly & Associates Inc.
  Het is een goed boek om nagenoeg alles te weten te komen dat je met Vi
  zou willen doen. De zesde en vooral de nieuwe zevende druk (onder de
  titel Learning the Vi and Vim Editors door Arnold Robbins, Elbert Hannah
  & Linda Lamb) bevat ook informatie over Vim.

  Deze lessen zijn geschreven door Michael C. Pierce en Robert K. Ware,
  Colorado School of Mines met gebruikmaking van idee�n van Charles Smith
  van de Colorado State University. E-mail: bware@mines.colorado.edu.

  Aangepast voor Vim door Bram Moolenaar.

  Nederlandse vertaling door Rob Bishoff, april 2012
  e-mail: rob.bishoff@hccnet.nl)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�ZM��[��vim80/tutor/tutor.ja.eucnu�[���===============================================================================
=    V I M �� �� (���塼�ȥꥢ��) �� �� �� �� ��        -    Version 1.7      =
===============================================================================

     Vim �ϡ����Υ��塼�ȥꥢ���������ˤ�¿��������Υ��ޥ�ɤ���������
     �˶��Ϥʥ��ǥ������Ǥ������Υ��塼�ȥꥢ��ϡ����ʤ��� Vim ���ǽ���ǥ�
     �����Ȥ��ƻȤ����ʤ���褦�ˤʤ�Τ˽�ʬ�ʥ��ޥ�ɤˤĤ������򤹤�褦
     �ˤʤäƤ��ޤ���

     ���塼�ȥꥢ���λ����Τ�ɬ�פʻ��֤ϡ��Ф������ޥ�ɤ��Τˤɤ�
     �����֤�Ȥ��Τ��ˤ���ޤ��������褽25����30ʬ�Ǥ���

     ATTENTION:
     �ʲ�������ѥ��ޥ�ɤˤϤ���ʸ�Ϥ��ѹ������Τ⤢��ޤ��������Ϥ��
     �˥��ԡ�������ޤ��礦("vimtutor"�����ʤ�С����˥��ԡ�����Ƥ��ޤ�)��

     ���Υ��塼�ȥꥢ�뤬���Ȥ����ȤdzФ������ȤߤˤʤäƤ��뤳�Ȥ򡢿���
     �Ƥ����ʤ���Фʤ�ޤ���������ؽ�����ˤϥ��ޥ�ɤ�ºݤ˻�ʤ����
     �ʤ�ʤ��ΤǤ���ʸ�Ϥ��ɤ�����ʤ�С����ä�˺��Ƥ��ޤ��ޤ�!

     ������Caps��å�(Shift-Lock)������������Ƥ��ʤ����Ȥ��ǧ�����塢���̤�
     ��å���1.1 ������ɽ�������Ȥ���ޤǡ�j �����򲡤��ƥ���������ư����
     ���礦��
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ��å��� 1.1:  ��������ΰ�ư


       ** ����������ư����ˤϡ���������ͤ� h,j,k,l �򲡤��ޤ� **
	     ^
	     k		    �ҥ��:  h �����Ϻ�����˰�ư���ޤ���
       < h	 l >		     l �����ϱ�����˰�ư���ޤ���
	     j			     j �����ϲ�������Τ褦�ʥ����Ǥ���
	     v
  1. ��ư�˴����ޤǡ������꡼��ǥ��������ư�����ޤ��礦��

  2. ���ؤΥ���(j)�򲡤��ĤŤ���ȡ�Ϣ³���ư�ư�Ǥ��ޤ���
     ����Ǽ��Υ�å���˰�ư�����ˡ���狼��ޤ����͡�

  3. ���ؤΥ�����Ȥäơ���å���1.2 �˰�ư���ޤ��礦��

NOTE: ���򥿥��פ��Ƥ��뤫Ƚ��ʤ��ʤä��顢<ESC>�򲡤��ƥΡ��ޥ�⡼�ɤˤ�
      �ޤ������줫����Ϥ��褦�Ȥ��Ƥ������ޥ�ɤ����Ϥ��ޤ��礦��

NOTE: �������륭���Ǥ��ư�Ǥ��ޤ��������� hjkl �˰��ٴ���Ƥ��ޤ��С��Ϥ뤫
      ��®����ư���뤳�Ȥ��Ǥ���Ǥ��礦������ޥ���!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ��å��� 1.2: VIM �ε�ư�Ƚ�λ


  !! NOTE: �ʲ��Τ����륹�ƥåפ�Ԥ����ˡ����Υ�å�����ɤߤޤ��礦!!

  1. <ESC>�����򲡤��ޤ��礦��(�μ¤˥Ρ��ޥ�⡼�ɤˤ��뤿��)

  2. ���Τ褦�˥�����:		:q! <ENTER>
     ����ˤ���Խ��������Ƥ���¸�����˥��ǥ�������λ���ޤ���

  3. ���Υ��塼�ȥꥢ���Ϥ��٤Υ��ޥ�ɤ�¹Ԥ���ȡ����������ޤ���
     ���Υ��ޥ�ɤ�:		vimtutor <ENTER>

  4. ����ޤǤΥ��ƥåפ�Ф��������Ĥ����ʤ�С����ƥå� 1 ���� 3 �ޤǤ��
     �ݤ˻�ơ�Vim ��1�ٽ�λ���Ƥ���Ƥӵ�ư���ޤ��礦��

NOTE:  :q! <ENTER> ����Ƥ��ѹ����˴����ޤ�����å���ˤ��ѹ���ե��������
       ¸�����ˡ�ˤĤ��Ƥ��ٶ����Ƥ����ޤ��礦��

  5. 1.3�ޤǥ���������ư�����ޤ��礦��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ��å��� 1.3: �ƥ������Խ� - ��


    ** �Ρ��ޥ�⡼�ɤˤƥ�������β���ʸ���������ˤ� x �򲡤��ޤ� **

  1. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ��礦��

  2. �ְ㤤������뤿��ˡ�������ǽ��ʸ���ޤǥ���������ư���ޤ���

  3. ��ɬ�פ�ʸ���� x �򲡤��ƺ����ޤ��礦��

  4. ʸ���������ʤ�ޤ� ���ƥå� 2 ���� 4 �򷫤��֤��ޤ��礦��

---> ���� �������� �� �ĤĤ��� �� �������Ƥ� �ȤӤϤͤ���

  5. �Ԥ��������ʤä��顢��å��� 1.4 �ؿʤߤޤ��礦��

NOTE: ���ƤΥ�å�����̤��ơ��Ф��褦�Ȥ���ΤǤϤʤ��ºݤˤ�äƤߤޤ��礦��




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ��å��� 1.4: �ƥ������Խ� - ���


	 ** �Ρ��ޥ�⡼�ɤˤƥƥ����Ȥ�������ˤ� i �򲡤��ޤ� **

  1. �ʲ��� ---> �ȼ����줿�ǽ�ιԤ˥���������ư���ޤ��礦��

  2. 1���ܤ�2���ܤ�Ʊ���ͤˤ��뤿��ˡ��ƥ����Ȥ������ʤ���Фʤ�ʤ�����
     �μ���ʸ���˥���������ư���ޤ���

  3. i �����򲡤��Ƥ��顢�ɲä�ɬ�פ�ʸ���򥿥��פ��ޤ��礦��

  4. �ְ㤤��������� <ESC> �򲡤��ƥ��ޥ�ɥ⡼�ɤ���ꡢ������ʸ�ˤʤ���
     �˥��ƥå� 2 ���� 4 �򷫤��֤��ޤ��礦��

---> ���� �ˤ� ­��ʤ� �ƥ����� ���롣
---> ���� �� �ˤ� ���Ĥ� ­��ʤ� �ƥ����� �� ���롣

  5. ������ˡ���狼�ä����å��� 1.5 �ؿʤߤޤ��礦��



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��å��� 1.5: �ƥ������Խ� - �ɲ�


		 ** �ƥ����Ȥ��ɲä���ˤ� A �򲡤��ޤ��礦 **

  1. �ʲ��� ---> �ȼ����줿�ǽ�ιԤ˥���������ư���ޤ��礦��
     �������뤬����ʸ����ˤ��äƤ⤫�ޤ��ޤ���

  2. �ɲä�ɬ�פʾ��� A �򥿥��פ��ޤ��礦��

  3. �ƥ����Ȥ��ɲä��������顢 <ESC> �򲡤��ƥΡ��ޥ�⡼�ɤ����ޤ��礦��

  4. 2���ܤ� ---> �ȼ����줿���ذ�ư�������ƥå� 2 ���� 3 �򷫤��֤���ʸˡ
     ������ޤ��礦��

---> �����ˤϴְ�ä��ƥ����Ȥ�����
     �����ˤϴְ�ä��ƥ����Ȥ�����ޤ���
---> �����ˤ�ְ�ä��ƥ���
     �����ˤ�ְ�ä��ƥ����Ȥ�����ޤ���

  5. �ƥ����Ȥ��ɲä��ڲ��ˤʤäƤ������å��� 1.6 �ؿʤߤޤ��礦��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��å��� 1.6: �ե�������Խ�


	   ** �ե��������¸���ƽ�λ����ˤ� :wq �ȥ����פ��ޤ� **

  !! NOTE: �ʲ��Υ��ƥåפ�¹Ԥ����ˡ��ޤ����Τ��ɤ�Ǥ�������!!

  1. ��å��� 1.2 �Ǥ�ä��褦�� :q! �򥿥��פ��ơ����Υ��塼�ȥꥢ���λ
     ���ޤ������뤤�ϡ��̤�ü���������Ϥ����ǰʲ������Ƥ�ԤäƤ⤫�ޤ�
     �ޤ���

  2. ������ץ��ץȤǤ��Υ��ޥ�ɤ򥿥��פ��ޤ�:  vim tutor <ENTER>
     'vim'�� Vim ���ǥ�����ư���륳�ޥ�ɡ�'tutor' ���Խ��������ե������
     ̾���Ǥ����ѹ����Ƥ�褤�ե������Ȥ��ޤ��礦��

  3. ���Υ�å���dzؤ�褦�ˡ��ƥ����Ȥ����������ޤ���

  4. �ѹ���ե��������¸���ޤ�:  :wq  <ENTER>

  5. ���ƥå� 1 �� vimtutuor ��λ�������� vimtutor ����ٵ�ư�����ʲ���
     ����ؿʤߤޤ��礦��

  6. �ʾ�Υ��ƥåפ��ɤ����򤷤���Ǥ����¹Ԥ��ޤ��礦��
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���� 1 ����


  1. ���������������⤷���� hjkl �����ǰ�ư���ޤ���
	 h (��)		j (��)         k (��)	    l (��)

  2. Vim ��ư����ˤϥץ��ץȤ��� vim �ե�����̾ <ENTER> �ȥ����פ��ޤ���

  3. Vim ��λ����ˤ�	   <ESC> :q!	 <ENTER>  �ȥ����פ��ޤ�(�ѹ����˴�)��
               �⤷����	   <ESC> :wq	 <ENTER>  �ȥ����פ��ޤ�(�ѹ�����¸)��

  4. ��������β���ʸ���������ˤϡ��Ρ��ޥ�⡼�ɤ� x �ȥ����פ��ޤ���

  5. ��������ΰ��֤�ʸ����������ˤϡ��Ρ��ޥ�⡼�ɤ� i �ȥ����פ��ޤ���
	 i     �ƥ����ȤΥ�����	<ESC>         ����������֤��ɲ�
	 A     �ƥ����Ȥ��ɲ�   <ESC>         ������ɲ�

NOTE: <ESC> �����򲡤��ȥΡ��ޥ�⡼�ɤ˰ܹԤ��ޤ������κݡ��ְ�ä��������
      ��Υ��ޥ�ɤ���ä����Ȥ��Ǥ��ޤ���

���ơ�³���ƥ�å��� 2 ��Ϥ�ޤ��礦��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ��å��� 2.1: �����ޥ��


	    ** ñ������ޤǤ������ˤ� dw �ȥ����פ��ޤ��礦 **

  1. �Ρ��ޥ�⡼�ɤǤ��뤳�Ȥ��ǧ���뤿��� <ESC> �򲡤��ޤ��礦��

  2. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ��礦��

  3. �ä�����ñ����Ƭ�˥���������ư���ޤ��礦��

  4. ñ�������뤿��� dw �ȥ����פ��ޤ��礦��

  NOTE: �����פ���ȡ�dw �Ȥ���ʸ���������꡼��κDz��Ԥ˸����ޤ���
        �����פ�ְ�äƤ��ޤä����ˤ� <ESC> �򲡤��Ƥ��ľ���ޤ��礦��

---> ���� ʸ �� �ˤ� �����Ĥ��� ���Τ��� ɬ�פΤʤ� ñ�� �� �ޤޤ�� ���ޤ���

  5. 3 ���� 4 �ޤǤ�ʸ���������ʤ�ޤǷ����֤�����å��� 2.2 �ؿʤߤޤ��礦��



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ��å��� 2.2: ����¾�κ����ޥ��


	     ** �Ԥ����ޤǤ������ˤ� d$ �ȥ����פ��ޤ��礦 **

  1. �Ρ��ޥ�⡼�ɤǤ��뤳�Ȥ��ǧ����Τ� <ESC> �򲡤��ޤ��礦��

  2. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ��礦��

  3. ������ʸ�����إ���������ư���ޤ��礦(�ǽ�� �� �θ�Ǥ�)��

  4. ����ޤǺ�����Τ� d$ �ȥ����פ��ޤ��礦��

---> ï�������ιԤκǸ��2�٥����פ��ޤ����� 2�٥����פ��ޤ�����


  5. �ɤ��������Ȥ���򤹤뤿��ˡ���å��� 2.3 �ؿʤߤޤ��礦��





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��å��� 2.3: ���ڥ졼���ȥ⡼�����


  ¿���Υ��ޥ�ɤϥ��ڥ졼���ȥ⡼����󤫤�ƥ����Ȥ��ѹ���ä��ޤ���
  �����ޥ�� d �Υ��ڥ졼���ϼ����ͤˤʤäƤ��ޤ�:

  	d   �⡼�����

  ���줾��:
    d          - �����ޥ�ɡ�
    �⡼����� - �����Ф���Ư�������뤫(�ʲ��˵󤲤ޤ�)��

  �⡼��������ΰ���:
    w - ����������֤������ޤ�ñ������ޤǡ�
    e - ����������֤������ޤޤʤ�ñ������ޤǡ�
    $ - ����������֤������ޤǡ�

  �Ĥޤ� de �ȥ����פ���ȡ�����������֤���ñ��ν����ޤǤ�����ޤ���

NOTE: ����������ͤϡ��Ρ��ޥ�⡼�ɤˤƥ��ޥ�ɤʤ��˥⡼�����򲡤���
      �ߤޤ��礦���������뤬��Ū�����Ǽ��������֤˰�ư����Ϥ��Ǥ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 ��å��� 2.4: �⡼�����˥�����Ȥ���Ѥ���


      ** �����Ԥ����������֤��Υ⡼��������˿��ͤ򥿥��פ��ޤ��� **

  1. �ʲ��� ---> �ȼ����줿�Ԥ��Ƭ�˥���������ư���ޤ���

  2. 2w �򥿥��פ���ñ��2��ʬ���˰�ư���ޤ���

  3. 3e �򥿥��פ���3���ܤ�ñ��ν�ü�˰�ư���ޤ���

  4. 0 (����)�򥿥��פ��ƹ�Ƭ�˰�ư���ޤ���

  5. ���ƥå� 2 �� 3 ��㤦���ͤ�ȤäƷ����֤��ޤ���

---> This is just a line with words you can move around in.

  6. ��å��� 2.5 �˿ʤߤޤ��礦��




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   ��å��� 2.5: ���¿��������뤿��˥�����Ȥ���Ѥ���


  ** ���ڥ졼���ȥ�����Ȥ򥿥��פ���ȡ������ʣ��󷫤��֤���ޤ��� **

  ���Ҥκ��Υ��ڥ졼���ȥ⡼������Ȥ߹�碌�˥�����Ȥ��ɲä��뤳�Ȥǡ�
  ���¿���κ����Ԥ��ޤ�:
	 d   ����   �⡼�����

  1. ---> �ȼ����줿�Ԥι�Ƭ��ʬ�˥���������ư���ޤ��礦��

  2. UPPER CASE ��ñ��2�Ĥ� d2w �ȥ����פ��ƺ����ޤ���

  3. UPPER CASE �Ȥ���Ϣ³����ñ���1�ĤΥ��ޥ�ɤȰۤʤ륫����Ȥ���ꤷ��
     ���ƥå� 1 �� 2 �򷫤��֤��ޤ���

---> ����ABC DE�Ԥ�FGHI JK LMN OPñ���Q RS TUV���ˤʤä���

NOTE:  ���ڥ졼�� d �ȥ⡼�����δ֤˥�����Ȥ�Ȥä���硢���ڥ졼���Τʤ�
       ���Υ⡼�����Τ褦��ư��ޤ���
       ��: 3dw �� d3w ��Ʊ��ǡ�3w ������ޤ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ��å��� 2.6: �Ԥ���


		 ** ����Τ������ˤ� dd �ȥ����פ��ޤ� **

  ����Τ���������٤�¿���Τǡ�Vi�Υǥ����ʡ��ϹԤκ��� d ��2�󥿥��פ�
  ������ñ�ʤ�Τ˷��ޤ�����

  1. �ʲ��ζ��2���ܤ˥���������ư���ޤ���
  2. dd �ȥ����פ��ƹԤ�����ޤ���
  3. �����4���ܤ˰�ư���ޤ���
  4. 2dd �ȥ����פ���2�Ԥ�����ޤ���

--->  1)  �Х��֤���
--->  2)  �Ĥޤ�ʤ���Τϳڤ�����
--->  3)  ���ߥ��Ĥ���
--->  4)  ��ϼ֤��äƤ��롢
--->  5)  ���פ������𤲤롢
--->  6)  ����ϴŤ�
--->  7)  ���ޥ���ʡ�


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ��å��� 2.7: ���ľ�����ޥ��


  ** �Ǹ�Υ��ޥ�ɤ���ä��ˤ� u �򲡤��ޤ���U �Ϲ���Τμ�äǤ��� **

  1. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư�����ǽ�δְ㤤�˥�������
     ���ư���ޤ��礦��
  2. x �򥿥��פ��Ƥ���ʤ���Ƭ��ʸ��������ޤ��礦��
  3. ������u �򥿥��פ��ƺǸ�˼¹Ԥ������ޥ�ɤ���ä��ޤ��礦��
  4. ���٤ϡ�x ����Ѥ��Ƹ���ƽ������ޤ��礦��
  5. ��ʸ���� U �򥿥��פ��ơ��Ԥ򸵤ξ��֤��ᤷ�ޤ��礦��
  6. u �򥿥��פ���ľ���� U ���ޥ�ɤ��ä��ޤ��礦��
  7. �Ǥϥ��ޥ�ɤ�Ƽ¹Ԥ���Τ� CTRL-R (CTRL �򲡤����ޤ� R ���Ǥ�)����
     �����פ��Ƥߤޤ��礦(��äμ��)��

---> ���ΤιԤΤδְ㤤�����������Ǥ����ν�������ä��ޤޤ�����

  8. ����ϤȤƤ�����ʥ��ޥ�ɤǤ���������å��� 2 ����ؿʤߤޤ��礦��




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���� 2 ����


  1. ����������֤���ñ������ޤǤ������ˤ� dw �ȥ����פ��ޤ���
  2. ����������֤���Ԥ����ޤǤ������ˤ� d$ �ȥ����פ��ޤ���
  3. ����Τ������ˤ� dd �ȥ����פ��ޤ���

  4. �⡼�����򷫤��֤��ˤϿ��ͤ���Ϳ���ޤ�:   2w
  5. �ѹ����Ѥ��륳�ޥ�ɤη�����
               ���ڥ졼��   [����]   �⡼�����

     ���줾��:
       ���ڥ졼�� - �� d ����Dz��򤹤뤫��
       ����       - ���Υ��ޥ�ɤ򲿲󷫤��֤�����
       �⡼����� - w (ñ��)�� $ (���)�ʤɤ���ǡ��ƥ����Ȥβ����Ф���Ư����
                    ���뤫��

  6. �Ԥ��Ƭ�˰�ư����ˤϥ������Ѥ��ޤ�:  0

  7. �����ư����ä�:	u   (��ʸ�� u)
     ����Τ��ѹ����ä�:	U   (��ʸ�� U)
     ��ä��μ�ä�:		CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ��å��� 3.1: Ž���դ����ޥ��


    ** �Ǹ�˺����줿�Ԥ򥫡�����θ��Ž���դ���ˤ� p �򥿥��פ��ޤ� **

  1. �ʲ�������κǽ�ιԤ˥���������ư���ޤ��礦��

  2. dd  �ȥ����פ��ƹԤ������Vim �ΥХåե��˳�Ǽ���ޤ��礦��

  3. �������Ԥ����褢��٤����֤ξ�ιԤޤǡ�����������ư�����ޤ��礦��

  4. �Ρ��ޥ�⡼�ɤ� p �򥿥��פ��Ƴ�Ǽ�����Ԥ���̤��ᤷ�ޤ���

  5. ���֤��������ʤ��ͤ˥��ƥå� 2 ���� 4 �򷫤��֤��ޤ��礦��

     d) �����ؤ֤��Ȥ��Ǥ���?
     b) ���ߥ��Ĥ���
     c) �ηäȤϳؤ֤�Ρ�
     a) �Х��֤���



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ��å��� 3.2: �֤��������ޥ��


	   ** ��������β���ʸ�����֤�������ˤ� r �򥿥��פ��ޤ� **

  1. �ʲ��� ---> �ȼ����줿�ǽ�ιԤ˥���������ư���ޤ��礦��

  2. �ǽ�δְ㤤���Ƭ�˥���������ư���ޤ��礦��

  3. r �ȥ����פ����ְ�äƤ���ʸ�����֤������롢������ʸ���򥿥��פ��ޤ��礦��

  4. �ǽ�ιԤ��������ʤ�ޤǥ��ƥå� 2 ���� 3 �򷫤��֤��ޤ��礦��

--->  ���ι����Ϥ������͡����οͤϴ��Ĥ����ä������򲡤��⤷��!
--->  ���ιԤ���Ϥ������ˡ����οͤϴ��Ĥ��ְ�ä������򲡤��ޤ���!

  5. ��������å��� 3.3 �ؿʤߤޤ��礦��

NOTE: �ºݤ˻�ޤ��礦���褷�ƳФ������ˤϤ��ʤ����ȡ�



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			��å��� 3.3: �ѹ����ޥ��


	 ** ñ��ΰ���⤷������Τ��ѹ�����ˤ� cw �ȥ����פ��ޤ� **

  1. �ʲ��� ---> �ȼ����줿�ǽ�ιԤ˥���������ư���ޤ��礦��

  2. lubw �� u �ΰ��֤˥���������ư���ޤ��礦��

  3. cw �ȥ����פ���������ñ��򥿥��פ��ޤ��礦(���ξ�� 'ine' �ȥ�����)��

  4. ���δְ㤤(�ѹ����٤�ʸ�����Ƭ)�˰�ư���뤿��� <ESC> �򥿥��פ��ޤ���

  5. �ǽ�ιԤ����ιԤ��ͤˤʤ�ޤǥ��ƥå� 3 �� 4 �򷫤��֤��ޤ���

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

cw ��ñ����ѹ��������Ǥʤ��������Ԥ��뤳�Ȥ���դ��ޤ��礦��



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��å��� 3.4: c ����Ѥ�������¾���ѹ�


     ** �ѹ����ޥ�ɤϡ������ޥ�ɤ�Ʊ���ͤ˥��֥������Ȥ���Ѥ��ޤ� **

  1. �ѹ����ޥ�ɤϡ������ޥ�ɤ�Ʊ���褦��ư��򤷤ޤ������η�����

         c    [����]   �⡼�����

  2. ���֥������Ȥ�Ʊ���ǡ�w ��ñ�졢 $ �Ϲ���ʤɤȤ��ä���ΤǤ���

  3. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ��礦��

  4. �ǽ�δְ㤤�إ���������ư���ޤ��礦��

  5. c$ �ȥ����פ��ƹԤλĤ�򣲹��ܤ��ͤˤ���<ESC> �򲡤��ޤ��礦��

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.

NOTE:  ��������δְ㤤�ϥХå����ڡ���������Ȥä�ľ�����Ȥ�Ǥ��ޤ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���� 3 ����


  1. ���˺����줿�ƥ����Ȥ�����֤���ˤϡ�p �򥿥��פ��ޤ�������Ϻ���
     �줿�ƥ����Ȥ򥫡�����θ�������ޤ�(��ñ�̤Ǻ����줿�Τʤ�С�����
     ����Τ��뼡�ιԤ�������ޤ�)��

  2. ��������β���ʸ�����֤�������ˤϡ�r �򥿥��פ����塢������֤�������
     ʸ���򥿥��פ��ޤ���

  3. �ѹ����ޥ�ɤǤϥ���������֤�������Υ⡼�����ǻ��ꤵ��뽪ü�ޤǤ���
     �����뤳�Ȥ���ǽ�Ǥ����㤨�� cw �ʤ�Х���������֤���ñ��ν����ޤǡ�
     c$ �ʤ�йԤν����ޤǤ��ѹ����ޤ���

  4. �ѹ����ޥ�ɤη�����

         c    [����]   �⡼�����

���������Υ�å���ؿʤߤޤ��礦��



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��å��� 4.1: ���֤ȥե�����ξ���

  ** �ե�������Ǥΰ��֤ȥե�����ξ��֤�ɽ������ˤ� CTRL-G �򥿥��פ��ޤ���
     �ե�������Τ���Ԥ˰�ư����ˤ� G �򥿥��פ��ޤ� **

     NOTE: ���ƥåפ�¹Ԥ����ˡ����Υ�å���Ƥ��ܤ��̤��ޤ��礦!!

  1. CTRL �򲡤����ޤ� g �򲡤��ޤ��礦��������� CTRL-G �ȸƤ�Ǥ��ޤ���
     �ڡ����ΰ��ֲ��˥ե�����̾�ȹ��ֹ椬ɽ�������Ϥ��Ǥ��� ���ƥå� 3�Τ���
     �˹��ֹ��Ф��Ƥ����ޤ��礦��

NOTE:  ���̤α������˥�������ΰ��֤�ɽ������Ƥ��뤫�⤷��ޤ��󡣤����
       'ruler' ���ץ����(:help 'ruler' �򻲾�)����ꤹ�뤳�Ȥ�ɽ������ޤ���

  2. �Dz��Ԥ˰�ư���뤿��� G �򥿥��פ��ޤ��礦��
     �ե�������Ƭ�˰�ư����ˤ� gg �ȥ����פ��ޤ��礦��

  3. ��ۤɤιԤ��ֹ�򥿥��פ� G �򥿥��פ��ޤ��礦���ǽ�� CTRL-G �򲡤�����
     ����ä����Ϥ��Ǥ���

  4. ���������Ƥ��饹�ƥå� 1 ���� 3 ��¹Ԥ��ޤ��礦��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ��å��� 4.2: �������ޥ��


	 ** ���򸡺�����ˤ� / �ȡ��������������򥿥��פ��ޤ���**

  1. �Ρ��ޥ�⡼�ɤ� / �Ȥ���ʸ���򥿥��פ��ޤ������̰��ֲ��� : ���ޥ�ɤ�
     Ʊ���ͤ� / ������뤳�Ȥ˵��Ť��Ǥ��礦��

  2. �Ǥϡ�'errroor' <ENTER> �ȥ����פ��ޤ��礦�����줬����������ñ��Ǥ���

  3. Ʊ�����⤦���ٸ�������Ȥ��� ñ�� n �򥿥��פ��ޤ���
     ������˸��򸡺�����Ȥ��� N �򥿥��פ��ޤ���

  4. ������˸��򸡺�������ϡ�/ ������� ? ���ޥ�ɤ���Ѥ��ޤ���

  5. ���ξ������ˤ� CTRL-O (Ctrl �򲡤�³���ʤ��� o ʸ��������)�򥿥��פ�
     �ޤ�����������ˤϤ���򷫤��֤��ޤ���CTRL-I �������Ǥ���

--->  "errroor" �� error �ȥ��ڥ뤬�㤤�ޤ�;  errroor �Ϥ����� error �Ǥ���
NOTE: �������ե�����ν�����ã����ȡ����ץ���� 'wrapscan' �����ꤵ��Ƥ���
      ���ϡ��ե�������Ƭ���鸡����³�Ԥ��ޤ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ��å��� 4.3: �б������̤򸡺�


	    ** �б����� ),] �� } �򸡺�����ˤ� % �򥿥��פ��ޤ� **

  1. ���� ---> �Ǽ����줿�Ԥ� (,[ �� { �Τɤ줫�˥���������ư���ޤ��礦��

  2. ������ % �ȥ����פ��ޤ��礦��

  3. ����������б������̤˰�ư����Ϥ��Ǥ���

  4. �ǽ�γ�̤˰�ư����ˤ� % �ȥ����פ��ޤ��礦��

  5. ¾�� (,),[,],{ �� } �ǥ���������ư����% �����򤷤Ƥ��뤫��ǧ���ޤ��礦��

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))


NOTE: ���ε�ǽ�ϳ�̤����פ��Ƥ��ʤ��ץ�����ǥХå�����ΤˤȤƤ���Ω��
      �ޤ���


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ��å��� 4.4: �ְ㤤���ѹ������ˡ


	** 'old' �� 'new' ���ִ�����ˤ� :s/old/new/g �ȥ����פ��ޤ� **

  1. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ��礦��

  2. :s/thee/the <ENTER> �ȥ����פ��ޤ��礦�����Υ��ޥ�ɤϤ��ιԤǺǽ�˸�
     �Ĥ��ä���Τˤ����Ԥʤ��뤳�Ȥ˵���Ĥ��ޤ��礦��

  3. �Ǥ� :s/thee/the/g	�ȥ����פ��ޤ��礦������Τ��ִ����뤳�Ȥ��̣���ޤ���
     �����ѹ��Ϥ��ιԤǸ��Ĥ��ä����Ƥβս���Ф��ƹԤʤ��ޤ���

---> thee best time to see thee flowers is in thee spring.

  4. ʣ��Ԥ��鸫�Ĥ���ʸ�����ѹ�����ˤ�
     :#,#s/old/new/g    #,# �ˤ��֤��������ϰϤγ��ϤȽ�λ�ι��ֹ����ꤷ��
                        ����
     :%s/old/new/g      �ե������ΤǸ��Ĥ����Τ��Ф����ѹ����롣
     :%s/old/new/gc     �ե������ΤǸ��Ĥ����Τ��Ф��ơ�1��1�ij�ǧ��Ȥ��
                        �����ѹ����롣

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���� 4 ����


  1. CTRL-G �ϥե�����Ǥΰ��֤ȥե�����ξܺ٤�ɽ�����ޤ���
          G �ϥե�����κDz��Ԥ˰�ư���ޤ���
     ���� G �Ϥ��ιԤ˰�ư���ޤ���
         gg ���Ƭ�Ԥ˰�ư���ޤ���

  2. / �θ�˸��򥿥��פ�������˸��򸡺����ޤ���
     ? �θ�˸��򥿥��פ���ȸ���˸��򸡺����ޤ���
     �����θ�� n ��Ʊ������μ��θ�����N �ϵ�����θ����򤷤ޤ���
     CTRL-O �Ͼ���˰ܤ���CTRL-I �Ͼ��򼡤˰�ư���ޤ���

  3. (,),[,],{, �⤷���� } ��˥������뤬�����֤� % �򥿥��פ�����Фˤʤ�ʸ
     ���ذ�ư���ޤ���

  4. ���߹Ԥκǽ�� old �� new ���ִ����롣	:s/old/new
     ���߹Ԥ���Ƥ� old �� new ���ִ����롣	:s/old/new/g
     2�Ĥ� # �֤Ǹ����ִ����롣		:#,#s/old/new/g
     �ե�����������Ƥθ��������ִ����롣	:%s/old/new/g
     'c' ��ä�����ִ����٤˳�ǧ����롣	:%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ��å��� 5.1: ����ޥ�ɤ�¹Ԥ����ˡ


	     ** :! �θ�˼¹Ԥ��볰��ޥ�ɤ򥿥��פ��ޤ� **

  1. ���̤κDz���˥������뤬��ư����褦������Ƥ��� : �򥿥��פ��ޤ��礦��
     ����ǥ��ޥ�ɤ������פǤ����ͤˤʤ�ޤ���

  2. ������ ! �Ȥ���ʸ��(��ò��)�򥿥��פ��ޤ��礦��
     ����dz�����륳�ޥ�ɤ��¹ԤǤ����ͤˤʤ�ޤ���

  3. ��Ȥ��� ! ��³���� ls �ȥ����פ� <ENTER> �򲡤��ޤ��礦��
     ������ץ��ץȤΤ褦�˥ǥ��쥯�ȥ�ΰ����ɽ�������Ϥ��Ǥ���
     �⤷���� ls ��ư���ʤ��ʤ�� :!dir ����Ѥ��ޤ��礦��

NOTE:  �����ˡ�ˤ�äƤ����륳�ޥ�ɤ��¹Ԥ��뤳�Ȥ��Ǥ��ޤ���������
       ��Ϳ�����ޤ���

NOTE:  ���Ƥ� : ���ޥ�ɤ� <ENTER> �򲡤��ƽ�λ���ʤ���Фʤ�ޤ���
       �ʹߤǤϤ��Τ��Ȥ˸��ڤ��ޤ���


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ��å��� 5.2: ����¾�Υե�����ؽ񤭹���


	** �ե�������ѹ�����¸����ˤ� :w �ե�����̾ �ȥ����פ��ޤ� **

  1. �ǥ��쥯�ȥ�ΰ������뤿��� :!dir �⤷���� :!ls �ȥ����פ��ޤ��礦��
     ���Τ��� <ENTER> �򲡤��Τϴ��ˤ�¸�ΤǤ��͡�

  2. TEST �Τ褦�ˡ����Υǥ��쥯�ȥ��̵���ե�����̾������Ӥޤ���

  3. �Ǥ� :w TEST �ȥ����פ��ޤ��礦 (TEST �ϡ�����ե�����̾�Ǥ�)��

  4. ����ˤ��ե������Τ� TEST �Ȥ���̾������¸����ޤ���
     �⤦���� :!dir �⤷���� :!ls �ȥ����פ��Ƴ�ǧ���Ƥߤޤ��礦��

NOTE: ������ Vim ��λ�����ե�����̾ TEST �ȶ��˵�ư����ȡ���¸��������
     ���塼�ȥꥢ���ʣ�����Ǥ��夬��Ϥ��Ǥ���

  5. ����ˡ����Τ褦�˥����פ��ƥե������ä��ޤ��礦(MS-DOS):  :!del TEST
                                               �⤷����(Unix):    :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ��å��� 5.3: ���򤷤��񤭹���


** �ե�����ΰ��֤���¸����ˤϡ�v �⡼������ :w FILENAME �򥿥��פ��ޤ��� **

  1. ���ιԤ˥���������ư���ޤ���

  2. v �򲡤����ʲ�����5���ܤ˥���������ư���ޤ����ƥ����Ȥ���Ĵɽ��������
     �����ܤ��Ʋ�������

  3. ʸ�� : �򲡤��ȡ����̤κDz���� :'<,'> ������ޤ���

  4. w TEST (TEST ��¸�ߤ��ʤ��ե�����̾)�򥿥��פ��ޤ���
     <ENTER> �򲡤����� :'<,'>w TEST �ȤʤäƤ��뤳�Ȥ��ǧ���Ʋ�������

  5. Vim �� TEST �Ȥ����ե��������򤵤줿�Ԥ�񤭹���Ǥ��礦��
     !dir �⤷���� !ls �Ǥ�����ǧ���ޤ���
     ����Ϻ����ʤ��Ǥ����Ʋ����������Υ�å���ǻ��Ѥ��ޤ���

NOTE:  v �򲡤��ȡ�Visual ���򤬻Ϥޤ�ޤ������������ư�������Ȥǡ������ϰϤ�
       �礭���⾮������Ǥ��ޤ�������ˡ���������ϰϤ��Ф��ƥ��ڥ졼����Ŭ��
       ���ޤ����㤨�� d �ϥƥ����Ȥ�����ޤ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ��å��� 5.4: �ե�����μ��ȹ�ʻ


	** �ե��������Ȥ�������ˤ� :r �ե�����̾ �ȥ����פ��ޤ� **

  1. ���������ʲ��ιԤ˹�碌�ޤ���

NOTE:  ���ƥå� 2 �μ¹Ը塢��å��� 5.3 �Υƥ����Ȥ�����ޤ������˲����äƤ�
       �Υ�å���˰�ư���ޤ��礦��

  2. �Ǥ� TEST �Ȥ����ե������ :r TEST �Ȥ������ޥ�ɤ��ɤ߹��ߤޤ��礦��
     �����Ǥ��� TEST �ϻȤ��ե������̾���Τ��ȤǤ���
     �ɤ߹��ޤ줿�ե�����ϡ���������Ԥβ��ˤ���ޤ���

  3. ����ե�������ǧ���Ƥߤޤ��礦������������᤹�ȡ���å���5.3 ��
     ���ꥸ�ʥ�ȥե�����ˤ���Τ�2�Ĥ����뤳�Ȥ��狼��ޤ���

NOTE: ����ޥ�ɤν��Ϥ��ɤ߹��ळ�Ȥ����ޤ����㤨�С�
      :r !ls �� ls ���ޥ�ɤν��Ϥ򥫡�����ʲ����ɤ߹��ߤޤ���



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 5 ����


  1.  :!command  �ˤ�ä� ����ޥ�ɤ�¹Ԥ��ޤ���

     �褯�Ȥ���:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  �ǥ��쥯�ȥ���ΰ���򸫤롣
	  :!del FILENAME   :!rm FILENAME   -  �ե����������롣

  2.  :w �ե�����̾ �ˤ�äƥե�����̾�Ȥ����ե����뤬�ǥ������˽񤭹��ޤ�롣

  3.  v �⡼������ :w FILENAME �Ȥ���ȡ��ӥ��奢����Ԥ��ե��������¸��
      ��롣

  4.  :r �ե�����̾ �ˤ��ե�����̾�Ȥ����ե����뤬�ǥ�����������ޤ졢
      ����������֤β���������롣

  5.  :r !dir �� dir ���ޥ�ɤν��Ϥ򥫡�������ְʲ����ɤ߹��ࡣ



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ��å��� 6.1: �����ץ󥳥ޥ��


    ** o �򥿥��פ���ȡ���������β��ιԤ�����������⡼�ɤ����ޤ� **

  1. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ��礦��

  2. o (��ʸ��) �򥿥��פ��ơ���������β��ιԤ򳫤�������⡼�ɤ����ޤ���

  3. ��������⡼�ɤ�λ����٤� <ESC> �򥿥��פ��ޤ���

---> o  �򥿥��פ���ȥ�������ϳ������Ԥذ�ư������⡼�ɤ����ޤ���

  4. ��������ξ�ιԤ�������ˤϡ���ʸ���� o �ǤϤʤ���ñ�����ʸ���� O
     �򥿥��פ��ޤ������ιԤǻ�Ƥߤޤ��礦��

---> ���ιԤξ��������ˤϡ����ιԤإ���������֤��� O �򥿥��פ��ޤ���





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			��å��� 6.2: �ɲå��ޥ��


      ** ��������μ��ΰ��֤���ƥ����Ȥ��ɲä���ˤ� a �ȥ����פ��ޤ� **

  1. ��������� ---> �Ǽ����줿�Ԥذ�ư���ޤ��礦��

  2. e �򲡤��� li �ν�ü��ޤǥ���������ư���ޤ���

  3. ��������θ��˥ƥ����Ȥ��ɲä��뤿��� a (��ʸ��) �򥿥��פ��ޤ���

  4. ���β��ιԤΤ褦��ñ��˴��������ޤ�������⡼�ɤ�ȴ����٤� <ESC> ��
     ���ޤ���

  5. e ��ȤäƼ����Դ�����ñ��ذ�ư�������ƥå� 3 �� 4 �򷫤��֤��ޤ���
  
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

NOTE: a, i �� A ��Ʊ������⡼�ɤذܤ�ޤ�����ʸ��������������֤������ۤʤ�
      �ޤ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			��å��� 6.3: ����¾���ִ��ˡ


	  ** 1ʸ���ʾ���֤�������ˤ���ʸ���� R �ȥ����פ��ޤ��礦 **

  1. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ����ǽ�� xxx ���Ƭ�˰�ư��
     �ޤ���

  2. R �򲡤��ơ�2���ܤο��ͤ򥿥��פ��뤳�Ȥǡ�xxx ���ִ�����ޤ���

  3. �ִ��⡼�ɤ�ȴ����ˤ� <ESC> �򲡤��ޤ����ԤλĤ꤬�ѹ�����Ƥ��ʤ��ޤޤ�
     �ʤ뤳�Ȥ���դ��Ƥ���������

  4. �Ĥä� xxx �򥹥ƥåפ򷫤��֤����ִ����ޤ��礦��

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

NOTE: �ִ��⡼�ɤ����⡼�ɤ˻��Ƥ��ޤ��������ƤΥ����פ��줿ʸ���ϴ�¸��ʸ��
      ������ޤ���


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ��å��� 6.4: �ƥ����ȤΥ��ԡ��ȥڡ�����


     ** �ƥ����ȤΥ��ԡ��ˤϥ��ڥ졼�� y �򡢥ڡ����Ȥˤ� p ��Ȥ��ޤ� **

  1. ---> �ȼ����줿�Ԥذ�ư������������� "a)" �θ���֤��Ƥ����ޤ���
  
  2. v �ǥӥ��奢��⡼�ɤ򳫻Ϥ���"first" �μ��ޤǥ���������ư���ޤ���
  
  3. y �򥿥��פ��ƶ�Ĵɽ�����줿�ƥ����Ȥ� yank (���ԡ�)���ޤ���

  4. ���ιԤι���ޤǥ���������ư���ޤ�:  j$

  5. p �򲡤���Ž���դ�(put)�Ƥ��顢���򥿥��פ��ޤ�:  a second <ESC>

  6. �ӥ��奢��⡼�ɤ� " item." ���򤷡�y �ǥ�󥯡����ιԤι���ޤ� j$ ��
     ��ư���� p �ǥƥ����Ȥ򤽤��� put ���ޤ���

--->  a) this is the first item.
      b)

  NOTE: ñ���1�� yank ����Τ� y �򥪥ڥ졼���Ȥ��� yw �Ȥ��뤳�Ȥ����ޤ���
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ��å��� 6.5: ���ץ��������


  ** �������ִ��κݤ���ʸ��/��ʸ����̵�뤹��ˤϡ����ץ�������ꤷ�ޤ� **

  1. �����ͤ���Ϥ��� 'ignore' �򸡺����ޤ��礦:  /ignore  <ENTER>
     n �򲡤��Ʋ��٤������򷫤��֤��ޤ���

  2. �����ͤ���Ϥ��� 'ic' (Ignore Case ��ά) ���ץ�������ꤷ�ޤ�:  :set ic

  3. �Ǥ� n �ˤ�äƤ⤦1�� 'ignore' �򸡺����ޤ���
     n �򲡤��Ƥ���˿�󸡺��򷫤��֤��ޤ��礦��

  4. 'hlsearch' �� 'incsearch' ���ץ�������ꤷ�ޤ��礦:  :set hls is

  5. �������ޥ�ɤ����Ϥ��ơ����������뤫���Ƥߤޤ��礦:  /ignore  <ENTER>

  6. ��ʸ����ʸ���ζ��̤�̵���ˤ���ˤϼ����ͤ���Ϥ��ޤ�:  :set noic

NOTE: �ޥå��ζ�Ĵɽ�������ˤϼ����ͤ���Ϥ��ޤ�: :nohlsearch
NOTE: 1�Ĥθ������ޥ�ɤ�����ʸ����ʸ���ζ��̤��᤿���ʤ�С��ե졼���� \c
      ����Ѥ��ޤ�:  /ignore\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				���� 6 ����

  1. o �򥿥��פ���ȥ�������β��ιԤ򳫤��ơ����������⡼�ɤˤʤ롣
     O (��ʸ��) �򥿥��פ���ȥ�������ξ�ιԤ����⡼�ɤˤʤ롣

  2. ����������ʸ���μ�����ƥ����Ȥ��ɲä���ˤ� a �ȥ����פ��롣
     ����˼�ư�ǥƥ����Ȥ�������ˤ���ʸ�� A �򥿥��פ��롣

  3. e ���ޥ�ɤ�ñ��ν�ü���������ư���롣

  4. y ���ڥ졼���ϥƥ����Ȥ� yank (���ԡ�)����p �Ϥ���� put (�ڡ�����)���롣

  5. ��ʸ���� R �򥿥��פ�����ִ��⡼�ɤ���ꡢ<ESC>�򲡤���ȴ���롣

  6. ":set xxx" �ȥ����פ���ȥ��ץ���� "xxx" �����ꤵ��롣
  	'ic' 'ignorecase'	����������ʸ����ʸ���ζ��̤��ʤ�
	'is' 'incsearch'	�����ե졼������ʬ�ޥå����Ƥ�����ʬ��ɽ������
	'hls' 'hlsearch'	�ޥå����뤹�٤�Ĵɽ������
     Ĺ�����û������ɤ���Υ��ץ����̾�Ǥ���ѤǤ��ޤ���

  7. "no" ����Ϳ�������ץ�����̵���ˤ��ޤ�:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ��å��� 7.1: ����饤��إ�ץ��ޥ��


		     ** ����饤��إ�פ���Ѥ��ޤ��礦 **

  Vim �ˤϹ��Ϥˤ錄�륪��饤��إ�ץ����ƥब����ޤ���
  �إ�פ򳫻Ϥ���ˤϡ������3�ĤΤɤ줫1�Ĥ��Ƥߤޤ��礦:
	- �إ�ץ��� <HELP> �򲡤�(�⤷����ʤ��)��
	- <F1> �����򲡤�(�⤷����ʤ��)��
	- :help <ENTER> �ȥ����פ��롣

  �إ�ץ�����ɥ��Υƥ����Ȥ��ɤ�ȡ��إ�פ�ư����Ǥ��ޤ���
  CTRL-W CTRL-W  �ȥ����פ���� �إ�ץ�����ɥ��إ����פ��ޤ���
    :q <ENTER>   �ȥ����פ���� �إ�ץ�����ɥ����Ĥ����ޤ���

  ":help" ���ޥ�ɤ˰����Ϳ���뤳�Ȥˤ�ꡢ��������̾�Υإ�פ򸫤Ĥ��뤳��
  ���Ǥ��ޤ����������Ƥߤޤ��礦(<ENTER> �򥿥��פ�˺��ʤ��褦��):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ��å��� 7.2: ��ư������ץȤκ�

			 ** Vim ����ħ��ȯ������ **

  Vim �ˤ� Vi ����¿������ħ��Ƨ�ޤ��Ƥ��ޤ��������ΤۤȤ�ɤϽ����֤ˤ�
  �����ԲĤȤʤäƤ��ޤ������¿������ħ��Ȥ��Ϥ����ˤ� "vimrc" �ե�����
  ������ޤ���

  1. "vimrc" �ե�������Խ��򳫻Ϥ��롣����ϥ����ƥ�˰�¸���ޤ���
	:edit ~/.vimrc			UNIX ����
	:edit $VIM/_vimrc		MS-Windows ����

  2. �����ǥ���ץ�� "vimrc" ���ɤ߹��ߤޤ���
	:read $VIMRUNTIME/vimrc_example.vim

  3. �ʲ��Τ褦�˥ե�����ؽ񤭹��ߤޤ���
	:write

  ���� Vim ��ư����ȡ����Ť���ʸ���Ȥ���褦�ˤʤ�Ǥ��礦��
  ���� "vimrc" �ե�����ء������ߤ������ɲä��뤳�Ȥ��Ǥ��ޤ���
  ���¿���ξ�������ˤ� :help vimrc-intro �ȥ����פ��ޤ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      ��å��� 7.3: �䴰


	       ** CTRL-D �� <TAB> �ǥ��ޥ�ɥ饤����䴰���� **

  1. �ߴ��⡼�ɤǤʤ����Ȥ��ǧ���ޤ�:  :set nocp

  2. ���ߤΥǥ��쥯�ȥ�˺ߤ�ե������ :!ls �� :!dir �dz�ǧ���ޤ���

  3. ���ޥ�ɤγ��Ϥ򥿥��פ��ޤ�:  :e

  4. CTRL-D �򲡤��� Vim �� "e" ����Ϥޤ륳�ޥ�ɤΰ����ɽ�����ޤ���

  5. <TAB> �򲡤��� Vim �� ":edit" �Ȥ������ޥ��̾���䴰���ޤ���

  6. ����˶���ȡ���¸�Υե�����̾�λϤޤ��ä��ޤ�:  :edit FIL

  7. <TAB> �򲡤��� Vim ��̾�����䴰���ޤ���(�⤷��Ĥ���̵���ä����)

NOTE: �䴰��¿���Υ��ޥ�ɤ�ư��ޤ��������� CTRL-D �� <TAB> �����ƤߤƤ���
      �������ä� :help �κݤ���Ω���ޤ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 7 ����


  1. �إ�ץ�����ɥ��򳫤��ˤ� :help �Ȥ��뤫 <F1> �⤷���� <Help> �򲡤���

  2. ���ޥ��(cmd)�Υإ�פ򸡺�����ˤ� :help cmd �ȥ����פ��롣

  3. �̤Υ�����ɥ��إ����פ���ˤ� CTRL-W CTRL-W �ȥ����פ��롣

  4. �إ�ץ�����ɥ����Ĥ���ˤ� :q �ȥ����פ��롣

  5. �����ߤ������ݤĤˤ� vimrc ��ư������ץȤ�����롣

  6. : command �Dz�ǽ���䴰�򸫤�ˤ� CTRL-D �򥿥��פ��롣
     �䴰����Ѥ���ˤ� <TAB> �򲡤���







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ����ˤ� Vim �Υ��塼�ȥꥢ��򽪤��ޤ������ǥ������ñ�ˡ������⽼ʬ��
  �Ȥ����Ȥ��Ǥ���褦�ˤȡ�Vim �λ��ij�ǰ������Τߤ�����褦�Ȥ��ޤ�����
  Vim �ˤϤ����¿���Υ��ޥ�ɤ����ꡢ��������Ƥ������뤳�ȤϤǤ��ޤ���
  �ʹߤϥ桼�����ޥ˥奢��򻲾Ȥ�������: ":help user-manual"

  ����ʸ�γؽ��Τ���ˡ������ܤ�����ޤ���
	Vim - Vi Improved - by Steve Oualline
	���Ǽ�: New Riders
  �ǽ���ܤϴ����� Vim �Τ���˽񤫤�ޤ������Ȥ�櫓�鿴�ԤˤϤ�����Ǥ���
  ¿�����������Ǥ��Ǻܤ���Ƥ��ޤ���
  ����URL�򻲾Ȥ��Ʋ����� http://iccf-holland.org/click5.html

  ���� Vim ���� Vi �ˤĤ��ƽ񤫤줿�Ť��ܤǤ��������ޤ�:
	Learning the Vi Editor - by Linda Lamb
	���Ǽ�: O'Reilly & Associates Inc.
  Vi �Ǥ�ꤿ���Ȼפ����Ȥۤ���Ƥ��Τ뤳�Ȥ��Ǥ����ɽ�Ǥ���
  ��6�ǤǤϡ�Vim �ˤĤ��Ƥξ����ޤޤ�Ƥ��ޤ���

  ���Υ��塼�ȥꥢ��� Colorado State University �� Charles Smith �Υ����ǥ�
  ���ˡ�Colorado School of Mines �� Michael C. Pierce �� Robert K. Ware ��
  ξ̾�ˤ�äƽ񤫤�ޤ����� E-mail: bware@mines.colorado.edu.

  Modified for Vim by Bram Moolenaar.

  ��ܸ��  ���� �ٹ�  <mattn.jp@gmail.com>
  �ƽ�      ¼�� �Ϻ  <koron.kaoriya@gmail.com>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 vi:set ts=8 sts=4 sw=4 tw=78:
PK�j�Z|)>�z�zvim80/tutor/tutor.zh.utf-8nu�[���===============================================================================
=      歡     迎     閱     讀   《 V I M  教  程 》   ──     版本 1.5      =
===============================================================================
     vim 是一個具有很多命令的功能非常強大的編輯器。限于篇幅,在本教程當中
     不就詳細介紹了。本教程的設計目標是講述一些必要的基本命令,而掌握好這
     些命令,您就能夠很容易將vim當作一個通用的萬能編輯器來使用了。

     完成本教程的內容大約需要25-30分鐘,取決于您訓練的時間。

     每一節的命令操作將會更改本文。推薦您復制本文的一個副本,然後在副本上
     進行訓練(如果您是通過"vimtutor"來啟動教程的,那麼本文就已經是副本了)。

     切記一點︰本教程的設計思路是在使用中進行學習的。也就是說,您需要通過
     執行命令來學習它們本身的正確用法。如果您只是閱讀而不操作,那麼您可能
     會很快遺忘這些命令的!

     好了,現在請確定您的Shift-Lock(大小寫鎖定鍵)還沒有按下,然後按鍵盤上
     的字母鍵 j 足夠多的次數來移動光標,直到第一節的內容能夠完全充滿屏幕。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一講第一節︰移動光標


   ※※ 要移動光標,請依照說明分別按下 h、j、k、l 鍵。 ※※

	     ^
	     k		    提示︰ h 的鍵位于左邊,每次按下就會向左移動。
       < h	 l >		   l 的鍵位于右邊,每次按下就會向右移動。
	     j			   j 鍵看起來很象一支尖端方向朝下的箭頭。
	     v

  1. 請隨意在屏幕內移動光標,直至您覺得舒服為止。

  2. 按下下行鍵(j),直到出現光標重復下行。

---> 現在您應該已經學會如何移動到下一講吧。

  3. 現在請使用下行鍵,將光標移動到第一講第二節。

提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
      然後再次從鍵盤輸入您想要的命令。

提示︰光標鍵應當也能正常工作的。但是使用hjkl鍵,在習慣之後您就能夠快速
      地在屏幕內四處移動光標了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一講第二節︰VIM的進入和退出


  !! 特別提示︰敬請閱讀完整本一節的內容,然後才能執行以下所講解的命令。

  1. 請按<ESC>鍵(這是為了確保您處在正常模式)。

  2. 然後輸入︰			:q! <回車>

---> 這種方式的退出編輯器絕不會保存您進入編輯器以來所做的改動。
     如果您想保存更改再退出,請輸入︰
				:wq  <回車>

  3. 如果您看到了命令行提示符,請輸入能夠帶您回到本教程的命令,那就是︰

		vimtutor <回車>

     通常情況下您也可以用這種方式︰

		vim tutor <回車>

---> 這裡的 'vim' 表示進入vim編輯器,而 'tutor'則是您準備要編輯的文件。

  4. 如果您自信已經牢牢記住了這些步驟的話,請從步驟1執行到步驟3退出,然
     後再次進入編輯器。接著將光標移動到第一講第三節來繼續我們的教程講解。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一講第三節︰文本編輯之刪除


   ** 在正常(Normal)模式下,可以按下 x 鍵來刪除光標所在位置的字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 為了修正輸入錯誤,請將光標移至準備刪除的字符的位置處。

  3. 然後按下 x 鍵將錯誤字符刪除掉。

  4. 重復步驟2到步驟4,直到句子修正為止。

---> The ccow jumpedd ovverr thhe mooon.

  5. 好了,該行已經修正了,下一節內容是第一講第四節。

特別提示︰在您瀏覽本教程時,不要強行記憶。記住一點︰在使用中學習。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第一講第四節︰文本編輯之插入


	 ** 在正常模式下,可以按下 i 鍵來插入文本。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 為了使得第一行內容雷同于第二行,請將光標移至文本第一個字符準備插入
     的位置。

  3. 然後按下 i 鍵,接著輸入必要的文本字符。

  4. 所有文本都修正完畢,請按下 <ESC> 鍵返回正常模式。
     重復步驟2至步驟4以便修正句子。

---> There is text misng this .
---> There is some text missing from this line.

  5. 如果您對文本插入操作已經很滿意,請接著閱讀下面的小結。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第一講小結


  1. 光標在屏幕文本中的移動既可以用箭頭鍵,也可以使用 hjkl 字母鍵。
	 h (左移)	j (下行)       k (上行)	    l (右移)

  2. 欲進入vim編輯器(從命令行提示符),請輸入︰vim 文件名 <回車>

  3. 欲退出vim編輯器,請輸入以下命令放棄所有修改︰

	<ESC>   :q!	 <回車>

     或者輸入以下命令保存所有修改︰

	<ESC>   :wq	 <回車>

  4. 在正常模式下刪除光標所在位置的字符,請按︰ x

  5. 在正常模式下要在光標所在位置開始插入文本,請按︰

	 i     輸入必要文本	<ESC>

特別提示︰按下 <ESC> 鍵會帶您回到正常模式或者取消一個不期望或者部分完成
的命令。

好了,第一講到此結束。下面接下來繼續第二講的內容。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第二講第一節︰刪除類命令


	    ** 輸入 dw 可以從光標處刪除至一個單字/單詞的末尾。**

  1. 請按下 <ESC> 鍵確保您處于正常模式。

  2. 請將光標移動到本節中下面標記有 ---> 的那一行。

  3. 請將光標移至準備要刪除的單詞的開始。

  4. 接著輸入 dw 刪除掉該單詞。

  特別提示︰您所輸入的 dw 會在您輸入的同時出現在屏幕的最後一行。如果您輸
  入有誤,請按下 <ESC> 鍵取消,然後重新再來。

---> There are a some words fun that don't belong paper in this sentence.

  5. 重復步驟3至步驟4,直至句子修正完畢。接著繼續第二講第二節內容。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第二講第二節︰其他刪除類命令


		   ** 輸入 d$ 從當前光標刪除到行末。**

  1. 請按下 <ESC> 鍵確保您處于正常模式。

  2. 請將光標移動到本節中下面標記有 ---> 的那一行。

  3. 請將光標移動到該行的尾部(也就是在第一個點號‘.’後面)。

  4. 然後輸入 d$ 從光標處刪至當前行尾部。

---> Somebody typed the end of this line twice. end of this line twice.


  5. 請繼續學習第二講第三節就知道是怎麼回事了。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第二講第三節︰關于命令和對象


  刪除命令 d 的格式如下︰

	 [number]   d	object	    或者     d	 [number]   object

  其意如下︰
    number - 代表執行命令的次數(可選項,缺省設置為 1 )。
    d - 代表刪除。
    object - 代表命令所要操作的對象(下面有相關介紹)。

  一個簡短的對象列表︰
    w - 從當前光標當前位置直到單字/單詞末尾,包括空格。
    e - 從當前光標當前位置直到單字/單詞末尾,但是 *不* 包括空格。
    $ - 從當前光標當前位置直到當前行末。

特別提示︰
    對于勇于探索者,請在正常模式下面僅按代表相應對象的鍵而不使用命令,則
    將看到光標的移動正如上面的對象列表所代表的一樣。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		第二講第四節︰對象命令的特殊情況


	       ** 輸入 dd 可以刪除整一個當前行。 **

  鑒于整行刪除的高頻度,VIM 的設計者決定要簡化整行刪除,僅需要在同一行上
  擊打兩次 d 就可以刪除掉光標所在的整行了。

  1. 請將光標移動到本節中下面的短句段落中的第二行。
  2. 輸入 dd 刪除該行。
  3. 然後移動到第四行。
  4. 接著輸入 2dd (還記得前面講過的 number-command-object 嗎?) 刪除兩行。

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 第二講第五節︰撤消類命令


	 ** 輸入 u 來撤消最後執行的命令,輸入 U 來修正整行。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行,並將其置于第一個錯誤
     處。
  2. 輸入 x 刪除第一個不想保留的字母。
  3. 然後輸入 u 撤消最後執行的(一次)命令。
  4. 這次要使用 x 修正本行的所有錯誤。
  5. 現在輸入一個大寫的 U ,恢復到該行的原始狀態。
  6. 接著多次輸入 u 以撤消 U 以及更前的命令。
  7. 然後多次輸入 CTRL-R (先按下 CTRL 鍵不放開,接著輸入 R 鍵) ,這樣就
     可以執行恢復命令,也就是撤消掉撤消命令。

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. 這些都是非常有用的命令。下面是第二講的小結了。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第二講小結


  1. 欲從當前光標刪除至單字/單詞末尾,請輸入︰dw

  2. 欲從當前光標刪除至當前行末尾,請輸入︰d$

  3. 欲刪除整行,請輸入︰dd

  4. 在正常模式下一個命令的格式是︰

       [number]   command   object     或者     command	[number]   object
     其意是︰
       number - 代表的是命令執行的次數
       command - 代表要做的事情,比如 d 代表刪除
       object - 代表要操作的對象,比如 w 代表單字/單詞,$ 代表到行末等等。
		$ (to the end of line), etc.

  5. 欲撤消以前的操作,請輸入︰u (小寫的u)
     欲撤消在一行中所做的改動,請輸入︰U (大寫的U)
     欲撤消以前的撤消命令,恢復以前的操作結果,請輸入︰CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 第三講第一節︰置入類命令


	       ** 輸入 p 將最後一次刪除的內容置入光標之後 **

  1. 請將光標移動到本節中下面示范段落的首行。

  2. 輸入 dd 將該行刪除,這樣會將該行保存到vim的緩沖區中。

  3. 接著將光標移動到準備置入的位置的上方。記住︰是上方哦。

  4. 然後在正常模式下(<ESC>鍵進入),輸入 p 將該行粘貼置入。

  5. 重復步驟2至步驟4,將所有的行依序放置到正確的位置上。

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第三講第二節︰替換類命令


	  ** 輸入 r 和一個字符替換光標所在位置的字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 請移動光標到第一個錯誤的適當位置。

  3. 接著輸入 r ,這樣就能將錯誤替換掉了。

  4. 重復步驟2和步驟3,直到第一行已經修改完畢。

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. 然後我們繼續學校第三講第三節。

特別提示︰切記您要在使用中學習,而不是在記憶中學習。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第三講第三節︰更改類命令


	   ** 要改變一個單字/單詞的部分或者全部,請輸入 cw **

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 接著把光標放在單詞 lubw 的字母 u 的位置那裡。

  3. 然後輸入 cw 就可以修正該單詞了(在本例這裡是輸入 ine 。)

  4. 最後按 <ESC> 鍵,然後光標定位到下一個錯誤第一個準備更改的字母處。

  5. 重復步驟3和步驟4,直到第一個句子完全雷同第二個句子。

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

提示︰請注意 cw 命令不僅僅是替換了一個單詞,也讓您進入文本插入狀態了。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第三講第四節︰使用c指令的其他更改類命令


	     ** 更改類指令可以使用同刪除類命令所使用的對象參數。**

  1. 更改類指令的工作方式跟刪除類命令是一致的。操作格式是︰

       [number]   c   object	   或者	    c	[number]   object

  2. 對象參數也是一樣的,比如 w 代表單字/單詞,$代表行末等等。

  3. 請將光標移動到本節中下面標記有 ---> 的第一行。

  4. 接著將光標移動到第一個錯誤處。

  5. 然後輸入 c$ 使得該行剩下的部分更正得同第二行一樣。最後按 <ESC> 鍵。

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第三講小結


  1. 要重新置入已經刪除的文本內容,請輸入小寫字母 p。該操作可以將已刪除
     的文本內容置于光標之後。如果最後一次刪除的是一個整行,那麼該行將置
     于當前光標所在行的下一行。

  2. 要替換光標所在位置的字符,請輸入小寫的 r 和要替換掉原位置字符的新字
     符即可。

  3. 更改類命令允許您改變指定的對象,從當前光標所在位置直到對象的末尾。
     比如輸入 cw 可以替換當前光標到單詞的末尾的內容;輸入 c$ 可以替換當
     前光標到行末的內容。

  4. 更改類命令的格式是︰

	 [number]   c	object	      或者	c   [number]   object

下面我們繼續學習下一講。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第四講第一節︰定位及文件狀態


  ** 輸入 CTRL-g 顯示當前編輯文件中當前光標所在行位置以及文件狀態信息。
     輸入 SHIFT-G 則直接跳轉到文件中的某一指定行。**

  提示︰切記要先通讀本節內容,之後才可以執行以下步驟!!!

  1. 按下 CTRL 鍵不放開然後按 g 鍵。然後就會看到頁面最底部出現一個狀態信
     息行,顯示的內容是當前編輯的文件名和文件的總行數。請記住步驟3的行號。

  2. 按下 SHIFT-G 鍵可以使得當前光標直接跳轉到文件最後一行。

  3. 輸入您曾停留的行號,然後按下 SHIFT-G。這樣就可以返回到您第一次按下
     CTRL-g 時所在的行好了。注意︰輸入行號時,行號是不會在屏幕上顯示出來
     的。

  4. 如果願意,您可以繼續執行步驟1至步驟三。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第四講第二節︰搜索類命令


     ** 輸入 / 以及尾隨的字符串可以用以在當前文件中查找該字符串。**

  1. 在正常模式下輸入 / 字符。您此時會注意到該字符和光標都會出現在屏幕底
     部,這跟 : 命令是一樣的。

  2. 接著輸入 errroor <回車>。那個errroor就是您要查找的字符串。

  3. 要查找同上一次的字符串,只需要按 n 鍵。要向相反方向查找同上一次的字
     符串,請輸入 Shift-N 即可。

  4. 如果您想逆向查找字符串,請使用 ? 代替 / 進行。

---> When the search reaches the end of the file it will continue at the start.

  "errroor" is not the way to spell error;  errroor is an error.

  提示︰如果查找已經到達文件末尾,查找會自動從文件頭部繼續查找。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   第四講第三節︰配對括號的查找


	      ** 按 % 可以查找配對的括號 )、]、}。**

  1. 把光標放在本節下面標記有 --> 那一行中的任何一個 (、[ 或 { 處。

  2. 接著按 % 字符。

  3. 此時光標的位置應當是在配對的括號處。

  4. 再次按 % 就可以跳回配對的第一個括號處。

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

提示︰在程序調試時,這個功能用來查找不配對的括號是很有用的。






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第四講第四節︰修正錯誤的方法之一


		** 輸入 :s/old/new/g 可以替換 old 為 new。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 輸入 :s/thee/the <回車> 。請注意該命令只改變光標所在行的第一個匹配
     串。

  3. 輸入 :s/thee/the/g	則是替換全行的匹配串。

---> the best time to see thee flowers is in thee spring.

  4. 要替換兩行之間出現的每個匹配串,請輸入 :#,#s/old/new/g (#,#代表的是
     兩行的行號)。輸入 :%s/old/new/g 則是替換整個文件中的每個匹配串。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第四講小結


  1. Ctrl-g 用于顯示當前光標所在位置和文件狀態信息。Shift-G 用于將光標跳
     轉至文件最後一行。先敲入一個行號然後按 Shift-G 則是將光標移動至該行
     號代表的行。

  2. 輸入 / 然後緊隨一個字符串是則是在當前所編輯的文檔中向後查找該字符串。
     輸入問號 ? 然後緊隨一個字符串是則是在當前所編輯的文檔中向前查找該字
     符串。完成一次查找之後按 n 鍵則是重復上一次的命令,可在同一方向上查
     找下一個字符串所在;或者按 Shift-N 向相反方向查找下該字符串所在。

  3. 如果光標當前位置是括號(、)、[、]、{、},按 % 可以將光標移動到配對的
     括號上。

  4. 在一行內替換頭一個字符串 old 為新的字符串 new,請輸入  :s/old/new
     在一行內替換所有的字符串 old 為新的字符串 new,請輸入  :s/old/new/g
     在兩行內替換所有的字符串 old 為新的字符串 new,請輸入  :#,#s/old/new/g
     在文件內替換所有的字符串 old 為新的字符串 new,請輸入  :%s/old/new/g
     進行全文替換時詢問用戶確認每個替換需添加 c 選項,請輸入 :%s/old/new/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		第五講第一節︰在 VIM 內執行外部命令的方法


	   ** 輸入 :! 然後緊隨著輸入一個外部命令可以執行該外部命令。**

  1. 按下我們所熟悉的 : 命令設置光標到屏幕底部。這樣就可以讓您輸入命令了。

  2. 接著輸入感嘆號 ! 這個字符,這樣就允許您執行外部的 shell 命令了。

  3. 我們以 ls 命令為例。輸入 !ls <回車> 。該命令就會列舉出您當前目錄的
     內容,就如同您在命令行提示符下輸入 ls 命令的結果一樣。如果 !ls 沒起
     作用,您可以試試 :!dir 看看。

---> 提示︰ 所有的外部命令都可以以這種方式執行。

---> 提示︰ 所有的 : 命令都必須以 <回車> 告終。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第五講第二節︰關于保存文件的更多信息


	     ** 要將對文件的改動保存到文件中,請輸入 :w FILENAME **

  1. 輸入 :!dir 或者 :!ls 獲知當前目錄的內容。您應當已知道最後還得敲
     <回車> 吧。

  2. 選擇一個尚未存在文件名,比如 TEST 。

  3. 接著輸入 :w TEST  (此處 TEST 是您所選擇的文件名。)

  4. 該命令會以 TEST 為文件名保存整個文件 (VIM 教程)。為了確保正確保存,
     請再次輸入 :!dir 查看您的目錄列表內容。

---> 請注意︰如果您退出 VIM 然後在以文件名 TEST 為參數進入,那麼該文件內
     容應該同您保存時的文件內容是完全一樣的。

  5. 現在您可以通過輸入 :!rm TEST 來刪除 TEST 文件了。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    第五講第三節︰一個具有選擇性的保存命令


		** 要保存文件的部分內容,請輸入 :#,# w FILENAME **

  1. 再來執行一次 :!dir 或者 :!ls 獲知當前目錄的內容,然後選擇一個合適的
     不重名的文件名,比如 TEST 。

  2. 接著將光標移動至本頁的最頂端,然後按 CTRL-g 找到該行的行號。別忘了
     行號哦。

  3. 接著把光標移動至本頁的最底端,再按一次 CTRL-g 。也別忘了這個行好哦。

  4. 為了只保存文章的某個部分,請輸入 :#,# w TEST 。這裡的 #,# 就是上面
     要求您記住的行號(頂端行號,底端行號),而 TEST 就是選定的文件名。

  5. 最後,用 :!dir 確認文件是否正確保存。但是這次先別刪除掉。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   第五講第四節︰提取和合並文件


       ** 要向當前文件中插入另外的文件的內容,請輸入 :r FILENAME **

  1. 請鍵入 :!dir 確認您前面創建的 TEST 文件還在。

  2. 然後將光標移動至當前頁面的頂端。

特別提示︰ 執行步驟3之後您將看到第五講第三節,請屆時再往下移動回到這裡來。

  3. 接著通過 :r TEST 將前面創建的名為 TEST 的文件提取進來。

特別提示︰您所提取進來的文件將從光標所在位置處開始置入。

  4. 為了確認文件已經提取成功,移動光標回到原來的位置就可以注意有兩份第
     五講第三節,一份是原本,另外一份是來自文件的副本。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第五講小結


  1. :!command 用于執行一個外部命令 command。

     請看一些實際例子︰
	 :!dir		-  用于顯示當前目錄的內容。
	 :!rm FILENAME	-  用于刪除名為 FILENAME 的文件。

  2. :w FILENAME  可將當前 VIM 中正在編輯的文件保存到名為 FILENAME
     的文件中。

  3. :#,#w FILENAME 可將當前編輯文件第 # 行至第 # 行的內容保存到文件
     FILENAME 中。

  4. :r FILENAME 可提取磁盤文件 FILENAME 並將其插入到當前文件的光標位置
     後面。







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 第六講第一節︰打開類命令


	 ** 輸入 o 將在光標的下方打開新的一行並進入插入模式。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 接著輸入小寫的 o 在光標 *下方* 打開新的一行並進入插入模式。

  3. 然後復制標記有 ---> 的行並按 <ESC> 鍵退出插入模式而進入正常模式。

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. 為了在光標 *上方* 打開新的一行,只需要輸入大寫的 O 而不是小寫的 o
     就可以了。請在下行測試一下吧。當光標處在在該行上時,按 Shift-O可以
     在該行上方新開一行。

Open up a line above this by typing Shift-O while the cursor is on this line.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第六講第二節︰光標後插入類命令


		     ** 輸入 a 將可在光標之後插入文本。 **

  1. 請在正常模式下通過輸入 $ 將光標移動到本節中下面標記有 ---> 的第一行
     的末尾。

  2. 接著輸入小寫的 a 則可在光標之後插入文本了。大寫的 A 則可以直接在行
     末插入文本。

提示︰輸入大寫 A 的操作方法可以在行末插入文本,避免了輸入 i,光標定位到
      最後一個字符,輸入的文本,<ESC> 回復正常模式,箭頭右鍵移動光標以及
      x 刪除當前光標所在位置字符等等諸多繁雜的操作。

  3. 操作之後第一行就可以補充完整了。請注意光標後插入文本與插入模式是基
     本完全一致的,只是文本插入的位置定位稍有不同罷了。

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    第六講第三節︰另外一個置換類命令的版本


		      ** 輸入大寫的 R 可連續替換多個字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 移動光標到第一行中不同于標有 ---> 的第二行的第一個單詞的開始,即單
     詞 last 處。

  3. 然後輸入大寫的 R 開始把第一行中的不同于第二行的剩余字符逐一輸入,就
     可以全部替換掉原有的字符而使得第一行完全雷同第二行了。

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. 請注意︰如果您按 <ESC> 退出置換模式回復正常模式,尚未替換的文本將仍
     然保持原狀。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    第六講第四節︰設置類命令的選項


		  ** 設置可使查找或者替換可忽略大小寫的選項 **


  1. 要查找單詞 ignore 可在正常模式下輸入 /ignore 。要重復查找該詞,可以
     重復按 n 鍵。

  2. 然後設置 ic 選項(ic就是英文忽略大小寫Ignore Case的首字母縮寫詞),即
     輸入︰
	:set ic

  3. 現在可以通過鍵入 n 鍵再次查找單詞 ignore。重復查找可以重復鍵入 n 鍵。

  4. 然後設置 hlsearch 和 incsearch 這兩個選項,輸入以下內容︰
     :set hls is

  5. 現在可以再次輸入查找命令,看看會有什麼效果︰
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第六講小結


  1. 輸入小寫的 o 可以在光標下方打開新的一行並將光標置于新開的行首,進入
     插入模式。
     輸入大寫的 O 可以在光標上方打開新的一行並將光標置于新開的行首,進入
     插入模式。

  2. 輸入小寫的 a 可以在光標所在位置之後插入文本。
     輸入大寫的 A 可以在光標所在行的行末之後插入文本。

  3. 輸入大寫的 R 將進入替換模式,直至按 <ESC> 鍵退出替換模式而進入正常
     模式。

  4. 輸入 :set xxx 可以設置 xxx 選項。









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第七講︰在線幫助命令

		      ** 使用在線幫助系統 **

  Vim 擁有一個細致全面的在線幫助系統。要啟動該幫助系統,請選擇如下三種方
  法之一︰
	- 按下 <HELP> 鍵 (如果鍵盤上有的話)
	- 按下 <F1> 鍵 (如果鍵盤上有的話)
	- 輸入	:help <回車>

  輸入 :q <回車> 可以關閉幫助窗口。

  提供一個正確的參數給":help"命令,您可以找到關于該主題的幫助。請試驗以
  下參數(可別忘了按回車鍵哦。:)︰

	  :help w <回車>
	  :help c_<T <回車>
	  :help insert-index <回車>
	  :help user-manual <回車>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第八講︰創建一個啟動腳本

			 ** 啟用vim的功能 **

  Vim的功能特性要比vi多得多,但大部分功能都沒有缺省激活。為了啟動更多的
  功能,您得創建一個vimrc文件。

  1. 開始編輯vimrc文件,這取決于您所使用的操作系統︰

     :edit ~/.vimrc		這是Unix系統所使用的命令
     :edit $VIM/_vimrc		這是Windows系統所使用的命令

  2. 接著導入vimrc范例文件︰

     :read $VIMRUNTIME/vimrc_example.vim

  3. 保存文件,命令為︰

     :write

  在下次您啟動vim的時候,編輯器就會有了語法高亮的功能。您可以繼續把您喜
  歡的其它功能設置添加到這個vimrc文件中。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  vim 教程到此結束。本教程只是為了簡明地介紹一下vim編輯器,但已足以讓您
  很容易學會使用本編輯器了。毋庸質疑,vim還有很多很多的命令,本教程所介
  紹的還差得遠著呢。所以您要精通的話,還望繼續努力哦。下一步您可以閱讀
  vim手冊,使用的命令是︰
	:help user-manual

  為了更進一步的參考和學習,以下這本書值得推薦︰

	Vim - Vi Improved - 作者︰Steve Oualline
	出版社︰New Riders

  這是第一本完全講解vim的書籍。對于初學者特別有用。其中還包含有大量實例
  和圖示。欲知詳情,請訪問 http://iccf-holland.org/click5.html

  以下這本書比較老了而且內容主要是vi而不是vim,但是也值得推薦︰

	Learning the Vi Editor - 作者︰Linda Lamb
	出版社︰O'Reilly & Associates Inc.

  這是一本不錯的書,通過它您幾乎能夠了解到全部vi能夠做到的事情。此書的第
  六個版本也包含了一些關于vim的信息。

  本教程是由來自Calorado School of Minese的Michael C. Pierce、Robert K.
  Ware 所編寫的,其中來自Colorado State University的Charles Smith提供了
  很多創意。編者通信地址是︰

	bware@mines.colorado.edu

  本教程已由Bram Moolenaar專為vim進行修訂。



  譯制者附言︰
  ===========
      簡體中文教程翻譯版之譯制者為梁昌泰 <beos@turbolinux.com.cn>,還有
      另外一個聯系地址︰linuxrat@gnuchina.org。

      繁體中文教程是從簡體中文教程翻譯版使用 Debian GNU/Linux 中文項目小
      組的于廣輝先生編寫的中文漢字轉碼器  autoconvert 轉換而成的,並對轉
      換的結果做了一些細節的改動。

  變更記錄︰
  =========
      2002年08月30日 梁昌泰 <beos@turbolinux.com.cn>
      感謝 RMS@SMTH 的指正,將多處錯誤修正。

      2002年04月22日 梁昌泰 <linuxrat@gnuchina.org>
      感謝 xuandong@sh163.net 的指正,將兩處錯別字修正。

      2002年03月18日 梁昌泰 <linuxrat@gnuchina.org>
      根據Bram Moolenaar先生在2002年03月16日的來信要求,將vimtutor1.4中譯
      版升級到vimtutor1.5。

      2001年11月15日 梁昌泰 <linuxrat@gnuchina.org>
      將vimtutor1.4中譯版提交給Bram Moolenaar和Sven Guckes。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z[�.*����vim80/tutor/tutor.barnu�[���===============================================================================
=    G o t i k a m   i n   n   W I M M - S c h a i n e r   -   Fassung 1.7    =
===============================================================================

   Dyr Wimm ist ayn gro m�chtigs Blat, d�s was mit aynn W�sn Befelh aufwartt; z
   vil,  d�� myn s allsand  in aynn Schainer  wie d�nn daader  unterbr�ng.  Der
   Schainer ist yso aufbaut,  d�� yr halt netty die Befelh allsand bringt, wost
   brauchst, d��st mit iem f�r s Eerste wirklich �bbs anfangen kanst.
   Durchhinarechtn kanst di, wennst willst, in ayner halbetn Stund; d�s haisst,
   wennst di nit groo� mit n Pr�bln und T�ftln aufhaltst.

   OBACHT:
   Die Faudungen,  wost daader finddst,  gaand istig  s Gwort �ndern.  D�ssw�gn
   machst eyn n B�stn glei  ayn Aamum von derer Dautticht daader.  Haast alsnan
   d�s Gwort daader mit n Befelh  "vimtutor bar"  ausherlaassn, ist s ee schoon
   ayn Aamum.
   Mir kan s  nit oft gnueg  sagn,  d��  der Schainer daader  istig  gan n �ebn
   ghoert.  Also muesst schoon aau die Befelh +ausf�ern, wennst ys gscheid ler-
   nen willst. Mit n L�sn yllain ist s +nit taan!

   Ietz schaust grad non, d�� dein F�stst�lltastn nit druckt ist; und aft geest
   glei aynmaal mit dyr j-Tastn abw�rts (yso laaufft d�s n�mlich),  hinst d��st
   de gantze Letzn 1.1 auf n Bildschirm haast.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 1.1: MIT N M�RKL UMAYNANDFARN

** Dyrmitst mit n M�rkl umaynandkimmst, druck  h, j, k und l  wie unt zaigt. **
            ^            Ayn �slsbrugg:
            k            De Tastn  h  ist winster und +geet aau gan winster.
   < h             l >   S  l  leit zesm und richtt si gan zesm.
            j            S  j  kan myn wie aynn Pfeil gan unt seghn.
            v            Mit n  k  kimmst gan n KOPF.            
  1. Ietz ruedertst ainfach mit n M�rkl auf n Bildschirm umaynand,  hinst d��st
     di sicher f�elst.
  2. Halt d Abhin-Tastn  (j)  druckt;  aft rumplt s  ainfach weiter.  Netty yso
     kimmst gan dyr naehstn Letzn.
     
  3. Wie gsait, ietz bew�gst di also mit derer Tastn gan dyr Letzn 1.2.

Non �bbs: Allweil, wenn dyr niemer ganz wol ist, wasst �bbenn druckt haast, aft
          zipfst  <ESC>  ; naacher bist wider ganz gwon in dyr Befelhs-Artweis.

      
          N�bnbei gsait kimmst gwonerweil aau mit de Pfeiltastnen weiter.  Aber
          hjkl  seind z haissn s Wimm-Urgstain;  und de "H�rtn" seind ganz dyr-
          f�r, d�� myn bei +dene bleibt. Pr�blt s ainfach aus!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Letzn 1.2: �NN WIMM AUSSCHALTTN


  ALSO, EE WENNST �BBS VON DAA UNT AUSF�ERST,  LIS LIEBER ZEERST DE GANTZE LET-
  ZN!

  1. Druck d <ESC>-Tastn, dyrmitst aau gwi� in dyr Befelhs-Artweis bist.
  
  2. Demmlt  :q!<EIN>  .
     Daa dyrmit  benddst ys Blat  und verwirffst  allss,  wasst �bbenn  g�ndert
     haast.

  3. Balst �nn Eingib seghst, gib d� Faudung ein,  wo di zo d�nn Schainer brun-
     gen haat, also   vimtutor bar<EIN>  .

  4. Also, wenn ietz allsse sitzt, naacherd f�erst d Schritt 1 hinst 3 aus, mit
     wasst ys Blat verlaasst und aft wider einhinkimmst.

Anm�rkung: Mit  :q!<EIN>  verwirffst allss, wasst g�ndert older enther gschribn
           haast. In aynn �ttlych Letznen lernst acht, wiest d�s allss in ayner
           Dautticht speichertst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 1.3: GWORT BARECHTN - L�SCHN 

         
         ** Druck  x  , dyrmitst d�s Zaichen unter n M�rkl l�schst. **

  1. Bew�g di mit n M�rkl auf de mit  --->  angm�rkte Zeil unt.

  2. Zo n Faeler Verb�ssern  farst mit n M�rkl  netty  auf d�s Zaichen,  d�s wo
     gl�scht ghoert.

  3. Druck de Tastn  x  , d��st d�s �berfl�ssige Zaichen l�schst.

  4. Ietz tuest so lang weiter mit 2 hinst 4, hinst d�� dyr Saz stimmt.

---> De Kkuue sprangg �bber nn Maanad.

  5. Wenn ietz de Zeil verb�ssert ist, geest gan dyr Letzn 1.4. weiter.

Und ganz wichtig:  Dyrweilst d�nn Schainer durcharechtst,  versuech nit �bbenn,
                   allss auswendig z lernen;  n�n, lern ainfach mit n Anwenddn!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 1.4: GWORT BARECHTN - EINF�EGN


                  **  Druck  i  , dyrmitst �bbs einf�egst. **

  1. Bew�g �nn M�rkl zo dyr eerstn untignen Zeil, wo mit  --->  angeet.

  2. Dyrmitst  de eerste Zeil  wie de zwaitte machst,  bew�g �nn M�rkl  auf d�s
     eerste Zaichen NAACH derer St�ll, daa wo s Gwort eingf�egt werdn sollt.

  3. Druck  i  und gib d�s ein, was abgeet.

  4. Wenn ieweils ayn Faeler verweitert ist, aft druck   <ESC>  ; dyrmit kimmst
     gan dyr Befelhsartweis zrugg.
     So, und ietz tuest ainfach yso weiter, hinst d�� dyr Saz stimmt.

---> Daader gt dd �bbs b.
---> Daader geet diend �bbs ab.

  5. Balst mainst,  d��st ys Gwort-Einf�egn kanst, aft geest gan dyr Letzn 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 1.5: GWORT BARECHTN - ANF�EGN


                      ** Druck  A  gan n Gwort Anf�egn. **

  1. Gee mit n M�rkl gan dyr eerstn untignen Zeil, wo ayn  --->  dyrvor haat.
     Daa ist s gleich, wo gnaun dyr M�rkl in derer Zeil steet.  

  2. Demmlt  A  und gib de entspr�chetn Erg�ntzungen ein.

  3. Wennst mit n Anf�egn f�rtig bist, aft druckst  <ESC>  , d��st wider eyn de
     Befelhsartweis zruggkimmst.

  4. So,  und ietz geest aft non gan dyr zwaittn mit  --->  angm�rktn Zeil; und
     daadl machst ys netty yso.

---> In derer Zeil gee  
     In derer Zeil geet ayn Weeng ayn Gwort ab.
---> Aau daader stee
     Aau daader steet �bbs Unvollst�ndigs. 

  5. Wennst s Anf�egn von Gwort drauf haast, naacherd gee gan dyr Letzn 1.6.  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 1.6: AYN DAUTTICHT BARECHTN


     ** Mit  :wq  speichertst ayn Dautticht und verlaasst �nn Wimm ganz. **

  !! OBACHT:  Ee wennst mit d�nn alln daa unt weitertuest, lis zeerst de gantze
     Letzn durch!!

  1. Verlaa� also s Blat, wie s in dyr Letzn 1.2. haisst, mit  :q!  !

  2. Gib d� Faudung eyn n Eingib ein:  vim Schainer<EIN>  . 'vim' ruefft s Blat
     auf,  und  'Schainer'  haisst de Dautticht,  wost barechtn willst.  Dyrmit
     haast also ayn Dautticht, d� wost barechtn kanst.

  3. Ietz  f�egst �bbs ein older l�schst �bbs,  wiest ys in de vorignen Letznen
     glernt haast.

  4. Speichert de g�nderte Dautticht und verlaa� �nn Wimm mit  :wq<EIN>  .

  5. Schmei� �nn Wimmschainer neu an und gee gan dyr folgetn Zammenfassung.

  6. Aft d��st  de obignen Schritt gl�sn und k�ppt haast,  kanst ys durchf�ern.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 1


  1. Dyr M�rkl werd mit de Tastnen hjkl older aau mit de Pfeiltastnen gsteuert.
              h (winst)     j (ab)        k (auf)       l (zes)

  2. Um �nn Wimm umbb n Eingib aus z ginnen, demmlt:  vim DAUTTICHT<EIN>  .

  3. Willst �nn Wimm verlaassn und aau allss verwerffen, aft gibst ein:
                <ESC>  und  :q!<EIN>  .
     Gan n Verlaassn und Speichern aber zipfst  <ESC>  und  :wq<EIN>  .

  4. Willst d�s Zaichen l�schn, daa wo dyr M�rkl drauf ist, demmltst  x  .

  5. Willst �bbs vor n M�rkl eing�bn, zipfst  i  und drafter  <ESC>  .
     Mechst ys aber eyn s Zeilnend anhinh�ngen, benutzt ys   A  .
     Und ainfach naach n M�rkl f�egst ys mit  a  ein.

Anm�rkung:  Druckst  <ESC>  ,  kimmst eyn de Befelhsartweis zrugg older brichst
            ayn Faudung ab, d� wo dyr schiefgangen ist.

     Ietz tue mit dyr Letzn 2 weiter.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Letzn 2.1.: L�SHFAUDUNGEN


                 ** Demmlt  dw  , dyrmitst ayn Wort l�schst. **

  1. Druck  <ESC>  ,  dyrmit s aau gwi� ist,  d��st in dyr Befelhsartweis bist.

  2. Bew�g �nn M�rkl zo dyr mit  --->  angm�rktn Zeil unt.

  3. Und daa geest ietz auf n Anfang von aynn Wort, d�s wo gl�scht ghoert.

  4. Zipf  dw  , d��st d�s gantze Wort l�schst.

  N�bnbei:  Dyr Buechstabn  d  erscheint auf dyr l�sstn Zeil  von n Bildschirm,
            sobaldst n eingibst. Dyr Wimm wartt ietz drauf, d�� �bbs kimmt, al-
            so  daader ayn  w  .  Seghst  freilich  �bbs Anderts  wie ayn  d  ,
            naacherd haast  �bbs Falschs  demmlt.  Druck aft  <ESC>  und pr�blt
            s non aynmaal.
---> Ayn �ttlych W�rter lustig ghoernd nit Fisper eyn d�nn Saz einhin.

  5. �fert  d Schritt  3 und 4,  hinst d��  dyr Saz p�sst,  und gee aft gan dyr
     Letzn 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 2.2.: NON MEERER L�SHFAUDUNGEN


            ** Gib  d$  ein, d��st hinst eyn s Zeilnend l�schst. **

  1. Druck  <ESC>  , dyrmitst aau gwi� in dyr Befelhsartweis bist.

  2. Bew�g �nn M�rkl hinst eyn de mit  --->  angm�rkte Zeil untn.

  3. Gee mit n M�rkl auf s End von dyr faelerfreien Zeil, NAACH n eerstn  .   .

  4. Zipf  d$  , d��st hinst eyn s End von dyr Zeil l�schst.
  
---> �bber haat s End von dyr Zeil doplt eing�bn. doplt eing�bn.


  5. Gee weiter  gan dyr Letzn 2.3,  dyrmitst versteest,  was daader ablaaufft.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Letzn 2.3: PFEMERER UND WOLENDER


  Vil Faudungen,   wo s Gwort �ndernd, s�tznd si aus aynn Pfemerer und aynn Wo-
  lend zamm. Bal i also �bbs l�schn will, schreib i ainsting  d  und aft s "Wo-
  lend", d�s haisst also, "wolend", "wohin" d�� i will - older was i halt gnaun
  l�schn will.






  Daader also, was i wie l�schn kan:
     w  -  hinst eyn n Anfang von n naehstn Wort AANE d�nn sein eersts Zaichen.
     e  -  gan n End von n ietzundn Wort MIT d�nn seinn l�sstn Zaichen.
     $  -  zo n End von dyr Zeil MIT derer irn l�sstn Zaichen.

  Also l�scht de Tastnfolg  de  allss umbb n M�rkl hinst eyn s Wortend.
Anm�rkung:   Gib i grad  d�s zwaitte Zaichen  yllain ein,  ruckt halt dyr M�rkl
             entspr�chet weiter.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Letzn 2.4: MIT AYNN Z�LER D WOLENDER �FERN


 ** Gib i ayn Zal vor aynn Wolend ein, werd d�s Sel entspr�chet oft gangen. **

  1. Bew�g �nn M�rkl gan n Anfang von dyr Zeil mit  --->  dyrvor unt.

  2. Zipf  2w  , d��st mit n M�rkl zwai W�rter weitergeest.

  3. Zipf  3e  , d��st mit n M�rkl auf s End von n drittn Wort kimmst.

  4. Zipf  0  (aynn Nuller), d��st eyn n Anfang von dyr Zeil hinkimmst.

  5. Widerhol d Schritt 2 und 3 mit verschaidne Z�ler.

  ---> D�s ist ietz grad ayn Zeil zo n drinn Umaynanderruedern.

  6. Gee weiter gan dyr Letzn 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Letzn 2.5: DURCH AYNN Z�LER GLEI MEERER L�SCHN


        ** Ayn Zal vor aynn Pfemerer f�ert d�nn entspr�chet oft aus. **

  Also, i mecht l�schn,  und zwaar �bbs Bestimmts,  und d�s so und so oft:  Daa
  dyrzue benutz i aynn Z�ler:
                              d  Z�ler  Wolend (also �nn Bew�gungsschrit)

  1. Bew�g �nn M�rkl zo n eerstn Wort in GROOSSBUECHSTABN in dyr mit  --->  an-
     gm�rktn Zeil.

  2. Demmlt  d2w  , dyrmitst de ganz groo�gschribnen W�rter l�schst.

  3. �fert  d Schritt 1 und 2  mit d�nn entspr�chetn Z�ler,  dyrmitst de drauf-
     folgetn  ganz gro�gschribnen W�rter  mit ayner ainzignen Faudung  l�schst:


--->  D� ABC DE Zeil FGHI JK LMN OP mit W�rter ist Q RS TUV ietz berichtigt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Letzn 2.6: ARECHTN AUF ZEILN


               ** Zipf  dd  , um ayn gantze Zeil z l�schn. **

  Weil s gro oft v�rkimmt,  d�� myn gantze Zeiln l�scht,  kaamend schoon d Ent-
  wickler von n Urwimm daa drauf,  d�� myn ainfach  dd  gan d�nn Zw�k schreibt.


  1. Bew�g �nn M�rkl gan dyr zwaittn Zeil in n untignen "Gedicht".
  2. Zipf  dd  ,  um d� Zeil z l�schn.
  3. Ietz bew�gst di gan dyr viertn Zeil.
  4. Zipf  2dd  , um zwo Zeiln zo n L�schn.

--->  1)  Roosn seind root;
--->  2)  Drunter ist s Koot.
--->  3)  Veigerln seind blau.
--->  4)  Umgrabn tuet s d Sau.
--->  5)  D Ur sait de Zeit,
--->  6)  Sait, d�� s mi freut,
--->  7)  Dirndl, dein Gschau.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Letzn 2.7: RUGGG�NGIG MACHEN (RUGGLN) 


             ** Zipf  u  , dyrmitst de l�sstn Faudungen ruggltst **
             ** older   U  , um ayn gantze Zeil widerherzst�lln. **

  1. Bew�g �nn M�rkl gan dyr mit  --->  angm�rktn Zeil unt und gee dyrmit auf n
     eerstn Faeler.
  2. Zipf  x  , d��st d�s eerste z vile Zaichen l�schst.
  3. Ietz demmlt  u  , dyrmitst de l�sste Faudung ruggltst.
  4. Ietz beh�b  allsand Faeler  auf dyr Zeil  mit dyr Hilf  von n Befelh  x  .
  5. Aft gibst ayn  U  (groo�) ein,  d��st de Zeil wider yso hinbringst,  wie s
     gw�sn ist.
  6. So,  und ietz  demmltst  so oft  u  , hinst d��st s  U  und de andern Fau-
     dungen ruggg�ngig gmacht haast.
  7. Und ietzet widerum  schreibst  so oft  <STRG>r  , hinst d��st  allsand Be-
     felh widerhergst�llt, z haissn allsse rugg-grugglt haast  (also d Ruggg�n-
     gigmachungen ruggg�ngig gmacht).
---> Beerichtig d Faeller voon dehrer Zeiil  und stt�ll s mitt n Ruggruggln wi-
     der her.
  8. Die Faudungen seind gro wichtig; s� helffend ainn n�rrisch weiter.
     Ietz gee weiter gan dyr Zammenfassung von dyr Letzn 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 2


  1. Um von n M�rkl aus hinst eyn s naehste Wort zo n L�schn, zipf:  dw
  2. Um umbb n M�rkl hinst eyn s End von dyr Zeil zo n L�schn, demmlt  d$
  3. Dyrmitst ayn gantze Zeil l�schst, gib ein:  dd
  4. Mechst ayn Bew�gung, ayn "Wolend", �fters,  st�ll de entspr�chete Zal dyr-
     vor:  3dw  older aau:  d3w
  5. Dyr Pfueg f�r ayn �nderungsfaudung lautt yso:
               Pfemerer   [Zal]   Bew�gungsschrit (Wolend)
     Und d�s haisst:
      Dyr PFEMERER gibt an, WAS taan ghoert, �bbenn   d   =  l�schn (�delete�).
      [ZAL] - Ayn Zal KAN myn ang�bn, wenn myn halt ayn Wolend �fter habn will.
      S WOLEND,  also dyr Schrit WOHIN, besagt,  auf was i aushin will,  �bbenn
      auf aynn Wortanfang (  w  ), s End von dyr Zeil (  $  ) und so weiter.

  6. D��st eyn n Anfang von dyr Zeil hinkimmst, schreib aynn Nuller:  0

  7. Um �bbs Vorigs wider z ruggln, gib ein:                u (klain also)
     Um allsand �nderungen in ayner Zeil z ruggln, haast:   U (also groo�)
     Um "rugg-z-ruggln", also allss wider herzst�lln, zipf:  <STRG>r   

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Letzn 3.1: ANF�EGN (�put�) 


     ** Zipf  p  , dyrmitst �bbs gnetty Gl�schts naach n M�rkl anf�egst. **

  1. Bew�g �nn M�rkl gan dyr eerstn untignen Zeil mit  --->  dyrvor.

  2. Zipf  dd  ,  um sele Zeil z l�schn und dyrmit in ayner Wimm-Osn zo n Spei-
     chern.

  3. Bew�g �nn M�rkl gan dyr Zeil c),  �BER derer, daa wo de gl�schte Zeil ein-
     hinkemmen sollt.

  4. So,  und ietz gibst ainfach  p  ein,  und schoon haast d� Zeil unter derer
     mit n M�rkl drinn.
  5. �fert  d Schritt 2 hinst 4,  hinst d��st  allsand Zeiln  yso naachynaynand
     haast, wie s hinghoernd.

---> d) Kanst du d�s aau?
---> b) Veigerln seind blau.
---> c) Bedachtn kan myn lernen.
---> a) Roosn seind root.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Letzn 3.2: ERS�TZN (�replace�)


      ** Zipf  rx  , um d�s Zaichen unter n M�rkl durch  x  z ers�tzn. **

  1. Bew�g �nn M�rkl zo dyr eerstn untignen Zeil mit  --->  dyrvor.

  2. Bew�g �nn M�rkl, hinst d�� yr auf n eerstn Faeler steet.

  3. Zipf  r  und drafter d�s Zaichen, wo dyrf�r daa hinghoert.

  4. Widerhol d Schritt 2 und 3,  hinst d��st de eerste Zeil  gmae� dyr zwaittn
     berichtigt haast:
--->  Wie d� Zeit eingobn wurd, wurdnd ainike falsche Zastnen zipft!
--->  Wie d� Zeil eing�bn wurd, wurdnd ainige falsche Tastnen zipft!

  5. Ietz tue mit dyr Letzn 3.3 weiter.

Anm�rkung: Vergi� nit drauf, d��st mit n Anwenddn lernen solltst und nit �bbenn
           mit n Auswendiglernen!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Letzn 3.3: �NDERN (�change�)


              ** Um hinst eyn s Wortend z �ndern, zipf  ce  . **

  1. Gee mit n M�rkl auf de eerste mit  --->  angm�rkte Zeil.

  2. Ietz farst netty auf s  "s"  von Wstwr hin.

  3. Zipf  ce  ein und aft d Wortberichtigung, daader also  �rter  .

  4. Druck  <ESC>  und bew�g �nn M�rkl zo n naehstn Zaichen, wo g�ndert ghoert.

  5. �fert  d Schritt 3 und 4,  hinst d��  dyr eerste Saz  wie dyr zwaitte ist.

---> Ainige Wstwr von derer Zlww ghhnnd mit n �ndern-Pfemerer gaauu.
---> Ainige W�rter von derer Zeil ghoernd mit n �ndern-Pfemerer g�ndert.

ce  l�scht also s Wort und schlaaufft di eyn d Eingaab-Artweis.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Letzn 3.4.: NON MEERER �NDERUNGEN PFELFS  c


   ** D L�shfaudung  c  arechtt mit de n�mlichnen Wolender wie d� mit  d  **

  1. Dyr �nder-Pfemerer arechtt anleich wie d L�shfaudung mit   d  ,  und zwaar
     yso:
         c    [Zal]   Bew�gungsschrit (Wolend)

  2. D Wolender seind  de gleichn,  �bbenn  w  f�r Wort und  $  f�r s Zeilnend.


  3. Bew�g di zo dyr eerstn untignen Zeil mit  --->  .

  4. Ietz geest auf d�nn eerstn Faeler.

  5. Zipf  c$  , gib �nn Rest von dyr Zeil wie in dyr zwaittn ein und druck aft
     <ESC>.
---> S End von derer Zeil sollt an de zwaitte daader anglichen werdn.
---> S End von derer Zeil sollt mit n Befelh  c$  berichtigt werdn.

Denk allweil dran,  d��st iederzeit  mit dyr Ruggtastn Faeler ausb�ssern kanst.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 3


  1. Um ayn  vorher gl�schts Gwort  anzf�egn,  zipf  p  .  Daa dyrmit  werd d�s
     gantze Gwort  NAACH n M�rkl  angf�egt.  Wenn s ayn gantze Zeil  gw�sn ist,
     werd d� sel als de Zeil unterhalb n M�rkl eingf�egt.

  2. Um d�s Zaichen  unter n M�rkl,  also wo dyr M�rkl ist,  z ers�tzn, zipf  r
     und aft d�s Zaichen, wost daadl habn willst.

  3. Dyr �nderungspfemerer ( c = �change�) laasst ainn umbb n M�rkl hinst eyn s
     End von n Wolend �ndern. Zipf  ce  , dyrmitst umbb n M�rkl hinst eyn s End
     von n Wort �ndertst, und  c$  hinst eyn s End von dyr Zeil.

  4. F�r d �nderung lautt dyr Pfueg:

     c   [Zal]   Wolend

Ietz tue mit dyr naehstn Letzn weiter.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Letzn 4.1: M�RKLST�LLUNG UND DAUTTICHTDARSTAND

** Demmlt <STRG>g, d��st �nn Befand und Darstand von dyr Dautticht anzaigst. **
  ** Zipf  G  , dyrmitst auf ayn bestimmte Zeil in dyr Dautticht hinkimmst. **

Anm�rkung: Lis d� gantze Letzn daader durch, ee wennst iewign �bbs unternimmst!

  1. Druck  <STRG>g  .  Auf d�s hin erscheint auf derer Seitt ganz unt ayn Dar-
     standsmeldung  mit n Dauttichtnam  und n Befand  innerhalb  dyr Dautticht.
     M�rk dyr de Zeilnnummer f�r n Schrit 3.

Anm�rkung:  M�glicherweis  seghst aau �nn M�rklbefand  in n zesmen untern Bild-
            schirm�gg. Aft ist s "Lindl" (�ruler�) eingst�llt;  meerer �ber d�s
            laasst dyr dyr Befelh   :help 'ruler'   ausher.
  2. Druck  G  , um an s End von dyr Dautticht z kemmen.
     gg  gibst ein, d��st gan n Anfang von dyr Dautticht aufhinkimmst.

  3. Gib d Nummer von derer Zeil ein, daa wost vorher warst,  und aft non  G  .
     D�s bringt di zrugg gan seler Zeil,  daa wost stuenddst,  wiest d�s eerste
     Maal  <STRG>g  gadruckst.

  4. Wennst di sicher gnueg f�elst, aft f�er d Schritt 1 hinst 3 aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 4.2: DYR BEFELH ZO N SUECHEN 
               

  ** Zipf  /  und dyrnaach aynn Ausdruk, um selbignen zo n Suechen. **

  1. Du gibst also in dyr Befelhsartweis s Zaichen  /  ein. D�s sel wie aau dyr
     M�rkl erscheinend drauf unt auf n Schirm, netty wie bei dyr Faudung  :  .

  2. Ietz zipf  Faeeler<EIN>  . Netty um d�s 'Faeeler' willst ietz suechen.

  3. Willst um gnaun d�nn Ausdruk weitersuechen, zipf ainfach  n  (wie �next�).
     Willst hinzrugg suechen, aft gibst  N  ein.

  4. Um von Haus aus zruggaus z suechen, nimm  ?  statt  /  her.

  5. Dyrmitst wider daa hinkimmst, wost herkemmen bist, nimm  <STRG>o , und d�s
     �fter,  wennst weiter zrugg willst. Mit  <STRG>i  widerum kimmst vorw�rts.

--->  Aynn Faeler schreibt myn nit "Faeeler"; Faeeler ist ayn Faeler

Anm�rkung:  Wenn d Suech s Dauttichtend dyrraicht haat, geet s eyn n Anfang wi-
            der weiter dyrmit,  men Sach  dyr Schaltter 'wrapscan' w�r auf aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 4.3: DE G�GNKLAMMERN FINDDN


   ** Zipf  %  , um de entspr�chete Klammer  )  ,  ]  older  }  z finddn. **

  1. S�tz �nn M�rkl  auf iewign aine  von dene drei Klammern  (  ,  [  older  {
     in dyr untignen Zeil, wo mit  --->  angm�rkt ist.

  2. Ietzet zipf s Zaichen  %  .

  3. Dyr M�rkl geet ietz auf de p�ssete schliessete Klammer.

  4. Ietz demmlt  %  , und dyrmit kimmst gan dyr �ffneretn Klammer zrugg.

  5. S�tz �nn M�rkl auf ayn anderne Klammer von   ({[]})   und pr�blt   %  aus.

---> D�s ( ist  bloo� ayn Pochzeil ( mit [ verschaidne ] { Klammern } drinn. ))

Anm�rkung:  Um d� M�glichkeit gaast bsunders froo sein,  wennst aynmaal in aynn
            Spaichgwort verzweiflt ayn faelete G�gnklammer suechst!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Letzn 4.4: D ERS�TZUNGSFAUDUNG (�substitute�)


        ** Zipf  :s/alt/neu/g  , um 'alt' durch 'neu' zo n Ers�tzn. **

  1. Gee mit n M�rkl zo dyr unt steehetn mit  --->  angm�rktn Zeil.

  2. Zipf  :s/dee/de <EIN>  . Der Befelh ers�tzt alsnan grad d�s +eerste "dee",
     wo v�rkimmt.

  3. Ietz pr�blt s mit  :s/dee/de/g  . D�s zues�tzliche  g  ("Pflok"  nennt myn
     �bbs S�lchers) bewirkt, d�� allss, was dyrmit kennzaichnet ist,  innerhalb
     von dyr ainn Zeil ers�tzt werd.

---> Dee schoenste Zeit, d�� myn dee Bl�emln anschaut, ist dee schoene Lan-
     gesszeit.
  4. Um ietz  allsand Suechbegriff  innerhalb von zwo Zeiln  zo n �ndern,  zipf
     :#,#s/alt/neu/g  ,  wobei # ieweils f�r de eerste und l�sste Zeil von d�nn
     Pfraich steet.
     :%s/alt/neu/g  zipfst, d��st d V�rkemmen in dyr gantzn Dautticht �ndertst.
        Mit  :%s/alt/neu/gc  finddst allsand V�rkemmen in dyr gsamtn Dautticht;
     daa werst aber zeerst non gfraagt, obst ys ers�tzn willst older nity.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 4
                        
  1. <STRG>g   zaigt d�nn ietzundn Dauttichtbefand  und �nn Darstand dyrvon an.
           G   bringt di an s End von dyr Dautticht.
      <Zal>G   bringt di gan dyr entspr�chetn Zeilnnummer.
     <Zal>gg   geet +grad yso.
          gg   bringt di zo dyr eerstn Zeil.
  2. D Eingaab von  /  mit aynn Ausdruk suecht V�RSHLING um d�nn Ausdruk.
     Gibst  ?  und aynn Suechbegrif ein, suecht s um d�nn �RSHLING.
     Zipf naach ayner Suech  n  ;  naacherd werd in de gleiche Richtung weiter-
     gsuecht. Mit  N  geet s umkeerter weiter.
     <STRG>o  bringt di zo �lterne Bef�ndd zrugg,  <STRG>i  zo neuerne.

  3. D Eingaab von  % , wenn dyr M�rkl auf ainer von dene Klammern steet:   ({[
     )]}  , bringt di zo dyr G�gnklammer.

  4. Um d�s eerste V�rkemmen von  "alt"  in ayner Zeil durch  "neu"  z ers�tzn,
     zipf  :s/alt/neu  .
     Um allsand in ayner Zeil z ers�tzn, zipf  :s/alt/neu/g  .
     Mechst allss in zwo Zeiln ers�tzn, demmlt zo n Beispil  :5,6s/alt/neu/g  .
     Mechst allss in dyr gantzn Dautticht ers�tzn, gib ein:  :%s/alt/neu/g    .
     Willst ayn ieds Maal bstaetln, h�ng 'c' wie �confirm� hint anhin.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Letzn 5.1: ZWISCHNDRINN AYNN AUSSERIGNEN BEFELH AUSF�ERN 
            

   ** Willst ayn Gf��faudung ausf�ern, gib ainfach d� sel naach  :!  ein. **
 
  1. Zipf  d�nn bekanntn Befelh   :  ,  dyrmitst  mit n M�rkl  auf n Bildschirm
     ganz abhin kimmst. Draufhin kanst aynn gwonen Gf��befelh eing�bn.

  2. Zeerst  kimmt aber non ayn Ruefzaichen   !  .  Und ietzet haast d M�glich-
     keit, ayn beliebige ausserige Gf��faudung auszf�ern.

  3. Als Beispil zipf   :!ls<EIN>  ;  und schoon haast ayn Auflistung von deinn
     Verzaichniss,  netty  wie wennst  ganz gwon  in n Eingib w�rst.  Geet   ls
     aus iewign aynn Grund nit, aft pr�blt s mit  :!dir<EIN>  .

Also non aynmaal: Mit d�nn Angang kan ayn iede beliebige ausserige Faudung aus-
                  gf�ert werdn, aau mit Auerwerdd.

Und wolgm�rkt:    Alle Befelh,  wo mit  :  angeend,  m�essend mit  <EIN>  bst�-
                  tigt werdn. D�s dyrsagn myr f�rba� +niemer.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           Letzn 5.2: NON MEERER DR�BER, WIE MYN DAUTTICHTN SCHREIBT


     ** Um �bbs G�nderts neu z speichern, zipf  :w NEUER_DAUTTICHTNAM  . **

  1. Zipf  :!dir   older  :!ls  ,  d��st dyr ayn Auflistung von deinn Verzaich-
     niss ausherlaasst. D��st drafter  <EIN>  eing�bn muesst, waisst ee schoon.

  2. Suech dyr aynn Dauttichtnam aus, d�nn wo s non nit geit, �bbenn  POCH  .

  3. Ietz demmlt:  :w POCH  (also mit POCH als d�nn neuen Dauttichtnam).

  4. D�s speichert ietz de gantze Dautticht, also �nn Wimmschainer,  unter d�nn
     Nam POCH. D�s kanst leicht �berpr�effen, indem d��st ainfach  :!ls   older
     :!dir  zipfst und dyrmit deinn Verzaichnissinhalt seghst.

Anm�rkung:  Stigst ietz aus n Wimm aus und g�nnst n aft wider mit   vim POCH  ,
            naacherd w�r d� Dautticht ayn gnaune Aamum von n Schainer dyrselbn,
            wiest n gspeichert haast.

  5. Ietz verweitert d� Dautticht - fallsst s Fenstl haast - , mit   :!del POCH
     beziehungsweis bei aynn Unixgeb�u mit   :!rm POCH   .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Letzn 5.3: AYNN TAIL VON N GWORT ZO N SPEICHERN AUSWALN

** Um aynn Tail von dyr Dautticht z speichern, zipf  v [Wolend] :w DAUTTICHT **

  1. Ruck �nn M�rkl auf netty d� Zeil daader.

  2. Demmlt  v  und gee mit n M�rkl  auf d�nn f�mftn Auflistungspunt untet.  Du
     seghst glei, d�� s Gwort v�rhergh�bt erscheint.

  3. Druck s Zaichen  :  . Ganz unt auf n Bildschirm erscheint  :'<,'>  .

  4. Zipf  w POCH  , wobei s d�nn Dauttichtnam POCH  non nit geit.  Vergwi� di,
     d��st d�s  :'<,'>w POCH  aau +seghst, ee wennst  <EIN>  druckst.

  5. Dyr Wimm schreibt de ausgwaltn Zeiln eyn de Dautticht POCH einhin.  Benutz
     :!dir  older  :!ls  ,  d��st d�s �berpr�effst. L�sh s fein nit �bbenn! Mir
     brauchend s n�mlich f�r de naehste Letzn.

Anm�rkung:  Druckt myn  v  , ginnt d Sichtisch-Auswal. Du kanst mit n M�rkl um-
            aynandfarn,  um d Auswal  z ver�ndern.  Drafter kan myn mit yn aynn
            Pfemerer mit d�nn Gwort �bbs machen.  Zo n Beispil l�scht   d   d�s
            Gwort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Letzn 5.4: EINL�SN UND ZAMMENF�ERN VON DAUTTICHTN   


    ** Um �nn Inhalt von ayner Dautticht einzl�sn, zipf  :r DAUTTICHTNAM  **

  1. S�tz �nn M�rkl �ber d� Zeil daader.

OBACHT:  Aft d��st �nn Schrit 2  ausgf�ert haast,  seghst auf aynmaal  �bbs aus
         dyr Letzn 5.3.  Bew�g di naacherd wider abw�rts, dyrmitst d� Letzn wi-
         derfinddst.
  2. Ietz  lis  dein Dautticht  POCH ein,  indem d��st d Faudung   :r POCH aus-
     f�erst,  wobei wie gsait POCH  f�r d�nn  von dir  ausgsuechtn Dauttichtnam
     steet. De eingl�sne Dautticht werd unterhalb dyr M�rklzeil eingf�egt.

  3. Um zo n �berpr�effen,  ob de Dautticht  aau gwi� eingl�sn ist,  gee zrugg;
     und du seghst,  d�� s ietz zwo Ausf�rtigungen  von dyr Letzn 5.3. geit,  s
     Urniss und de eingf�egte Dauttichtfassung.

Anm�rkung:  Du kanst aau  d Ausgaab von aynn Ausserigbefelh einl�sn.  Zo n Bei-
            spil list   :r !ls  d Ausgaab von dyr Faudung  ls   ein und f�egt s
            unterhalb n M�rkl ein.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 5


  1. :!FAUDUNG  f�ert aynn ausserignen Befelh aus.

      Daader ayn �ttlych gw�nddte Beispiler:
      (Fenstl)              (Unix - Linux)
      :!dir                 :!ls                - listt s Verzaichniss auf.
      :!del DAUTTICHT       :!rm DAUTTICHT      - verweitert sele Dautticht.

  2. :w DAUTTICHT  speichert de ietzunde Wimmdautticht  unter d�nn besagtn Nam.

  3. v  WOLEND  :w DAUTTICHTNAM   schreibt de sichtisch ausgwaltn Zeiln  eyn de
     Dautticht mit seln Nam.

  4. :r DAUTTICHTNAM  ladt sele Dautticht  und f�egt s  unterhalb n M�rklbefand
     ein.

  5. :r !dir   list d Ausgaab  von dyr Faudung   dir   und f�egt s  unterhalb n
     M�rklbefand ein.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Letzn 6.1: ZEIL �FFNEN (�open�)


       ** Zipf  o  , um ayn Zeil unterhalb n M�rkl z �ffnen und eyn d **
                        ** Einf�egartweis z kemmen. **

  1. Bew�g �nn M�rkl zo dyr eerstn mit  --->  angm�rktn Zeil unt.

  2. Zipf  o  (klain),  um ayn Zeil UNTERHALB n M�rkl z �ffnen und mit dyr Ein-
     f�egartweis weiterztuen.

  3. Ietzet zipf ayn Weeng �bbs  und druck  <ESC>  , um d Einf�egartweis z ver-
     laassn.
---> Mit  o  werd dyr M�rkl in dyr Einf�egartweis auf de offene Zeil gs�tzt.

  4. Um ayn Zeil  OBERHALB n M�rkl aufzmachen,  gib ainfach ayn groosss O statt
     yn aynn klainen ein. Versuech d�s auf dyr untignen Zeil.

---> �ffnet ayn Zeil �ber derer daader mit  O  ,  wenn dyr M�rkl auf derer Zeil
     ist.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 6.2: GWORT ANF�EGN (�append�)


                ** Zipf  a  , um �bbs NAACH n M�rkl einzf�egn. **

  1. Bew�g �nn M�rkl gan n Anfang von dyr eerstn �ebungszeil mit  --->  unt.

  2. Druck  e  , hinst d�� dyr M�rkl an n End von  Zei  steet.

  3. Zipf ayn klains  a  , um �bbs NAACH n M�rkl anzf�egn.

  4. Verg�ntz d�s Wort  wie in dyr Zeil drunter.  Druck  <ESC>  , um d Schreib-
     Artweis z verlaassn.

  5. Bew�g di mit  e   zo n naehstn ungantzn Wort  und widerhol d Schritt 3 und
     4.

---> D� Ze biett ayn Gl�gn , ayn Gwort in ayner Zeil anzf�.
---> D� Zeil biett ayn Gl�gnet, ayn Gwort in ayner Zeil anzf�egn.

Anm�rkung:   a  ,  i  und  A  bringend ainn gleichermaa�n eyn d Einf�egartweis;
             dyr ainzige Unterschaid ist, WO mit n Einf�egn angfangt werd.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Letzn 6.3: AYN ANDERNE WEIS ZO N ERS�TZN (�replace�)


 ** Demmlt ayn groosss  R  , um meerer als wie grad ain Zaichen z ers�tzn. **

  1. Bew�g �nn M�rkl zo dyr eerstn untignen, mit  --->  angm�rktn Zeil.
     Gee mit n M�rkl gan n Anfang von n eerstn  xxx  .

  2. Ietz druck  R   und zipf sele Zal,  wo drunter  in dyr zwaittn Zeil steet,
     yso d�� de sel s xxx ers�tzt.

  3. Druck  <ESC>  ,  um d Ers�tzungsartweis z verlaassn.  Du gspannst, d�� dyr
     Rest von dyr Zeil unver�ndert bleibt.

  4. �fert die Schritt, um d�s �berblibne xxx z ers�tzn.

---> S Zunddn von 123 zo xxx ergibt xxx.
---> S Zunddn von 123 zo 456 ergibt 579.

Anm�rkung: D Ers�tzungsartweis ist wie d Einf�egartweis,  aber ayn ieds eindem-
           mlte Zaichen l�scht ayn vorhanddns.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 6.4: GWORT AAMEN UND EINF�EGN

 ** Benutz �nn Pfemerer  y  , um �bbs z aamen, und  p  , um �bbs einzf�egn. **

  1. Gee zo dyr mit  --->  angm�rktn Zeil unt  und s�tz �nn M�rkl  hinter "a)".

  2. Ginn d Sichtisch-Artweis mit   v   und bew�g �nn M�rkl gnaun vor "eerste".
  
  3. Zipf  y  , um d�nn v�rhergh�btn Tail z aamen.

  4. Bew�g �nn M�rkl gan n End von dyr naehstn Zeil:  j$

  5. Demmlt  p  , um d�s Gwort einzf�egn, und aft:  a zwaitte <ESC>  .

  6. Benutz d Sichtischartweis, um " Eintrag." auszwaln, aam s mittls  y  , be-
     w�g di gan n End von dyr naehstn Zeil mit  j$   und f�eg s Gwort dortn mit
     p  an.

--->  a) d�s ist dyr eerste Eintrag.
      b)
Anm�rkung:   Du kanst   y   aau als Pfemerer verwenddn;   yw  zo n Beispil aamt
             hinst eyn n naehstn Wortanfang (aane d�nn selber).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Letzn 6.5: SCHALTTER S�TZN

** S�tz aynn Schaltter yso,  d�� ayn Suech older Ers�tzung Groo�- und Klain- **
                            ** schreibung �bergeet. **
                            
  1. Suech um '�bergee", indem d��st   /�bergee   eingibst.
     Widerhol d Suech ayn �ttlych Maal, indem d��st de Tastn  n  druckst.

  2. S�tz de Zwisl - �nn Schaltter - 'ic' (�ignore case�), indem d��st  :set ic
     eingibst.
  3. Ietz suech wider um '�bergee' und tue aau wider mit  n  weiter.  Daa fallt
     dyr auf, d�� ietz �bbenn aau  �bergee  und  �BERGEE  hergeet.

  4. S�tz de Zwisln 'hlsearch' und 'incsearch' pfelfs:   :set hls is

  5. Widerhol d Suech und bobacht, was ietz gschieght:   /�bergee <EIN>

  6. D��st groo� und klain wider gwon unterscheidst, zipf:   :set noic

Anm�rkung:  Mechst de Tr�ffer niemer v�rhergh�bt seghn,  gib ein:   :nohlsearch
Anm�rkung:  Sollt klain/groo� bei ayner ainzignen Suech wurst sein,  benutz  \c
            in n Suechausdruk:   /�bergee\c <EIN>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 6

  1. Zipf  o  , um ayn Zeil  UNTERHALB  n M�rkl z �ffnen und d Einf�egartweis z
                ginnen.
     Zipf  O  , um ayn Zeil OBERHALB n M�rkl z �ffnen.

  2. Zipf  a  , um NAACH n M�rkl ayn Gwort einzf�egn.
     Zipf  A  , um ayn Gwort naach n Zeilnend anzf�egn.

  3. D Faudung  e  bringt di gan n End von aynn Wort.

  4. Dyr Pfemerer  y  (�yank�) aamt �bbs,  p  (�put�) f�egt d�s ein.

  5. Ayn groosss  R  geet eyn d Ers�tzungsartweis, hinst d�� myn  <ESC> druckt.

  6. D Eingaab von ":set xxx"  s�tzt de Zwisl "xxx".  Ayn �ttlych Zwisln seind:
     'ic' 'ignorecase'   Groo�/klain wurst bei ayner Suech
     'is' 'incsearch'    Zaig aau schoon ayn Tail�berainstimmung
     'hls' 'hlsearch'    H�b allsand p�ssetn Ausdr�ck v�rher
     Dyr Schaltternam kan in dyr Kurz- older Langform ang�bn werdn.

  7. St�ll yn ayner Zwisl "no" voran, d��st ys abschalttst:   :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 7.1: AYN HILFGWORT AUFRUEFFEN


           ** Nutz d�s einbaute Hilfgeb�u, de "Betribsanlaittung". **

  Eyn n Wimm  ist ayn ausf�erliche "Gebrauchsanweisung"  einbaut.  F�r s Eerste
  pr�blt ainfach ains von dene dreu aus:
    - Druck d <HILF>-Tastn, wennst �bbenn aine haast.
    - Druck de Tastn <F1>, fallsst ys haast.
    - Zipf   :help <EIN>

  Lis di eyn s Hilffenster ein, dyrmitst draufkimmst, wie d�s mit dyr Hilf geet.
  Demmlt  <STRG>w w  , um von ainn Fenster zo n andern zo n Springen.
  Demmlt   :q <EIN>  , um s Hilffenster zo n Schliessn.

  Du kanst zo so guet wie allssand ayn Hilf finddn,  indem d��st yn dyr Faudung
  :help  aynn Auerwerd naachst�llst und istig  <EIN>  nit vergisst. Pr�blt d�s:

     :help w
     :help c_CTRL-D
     :help insert-index
     :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 7.2: ERST�LL AYN GIN-SCHRIPF


              ** Mutz �nn Wimm mit de einbautn Faehigkeitn auf. **

  Dyr Wimm besitzt ayn W�sn Sch�ftungen,  wo �ber n Urwimm aushingeend, aber de
  meerern dyrvon  seind in dyr Vorgaab ausgschaltt.  Dyrmitst meerer aus n Wimm
  ausherholst, erst�llst ayn "vimrc"-Dautticht.

  1. L�g ayn "vimrc"-Dautticht an;  d�s geet  ie naach Betribsgeb�u  verschidn:
     :e ~/.vimrc     f�r s Unix
     :e $VIM/_vimrc  bei n Fenstl

  2. Ietz lis �nn Inhalt von dyr Beispil-"vimrc"-Dautticht ein:
     :r $VIMRUNTIME/vimrc_example.vim

  3. Speichert de Dautticht mit:
     :w

  4. Bei n naehstn Gin von n Wimm  ist aft d F�egnussv�rherh�bung zuegschalttn.
     Du kanst dyr allss  eyn d� Dautticht  einhinschreibn,  wasst bst�ndig habn
     willst. Meerer dyrzue erfarst unter:   :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              Letzn 7.3: VERG�NTZN


            ** Befelhszeilnverg�ntzung mit  <STRG>d  und  <TAB>  **

  1. Vergwi� di, d�� dyr Wimm nit auf n Urwimm-"Glais" fart:   :set nocp

  2. Schaug naach, w�lcherne Dauttichtn d�� s in n Verzaichniss geit:   :!ls
     older   :!dir
  3. Zipf �nn Anfang von ayner Faudung:   :e

  4. Druck  <STRG>d  , und dyr Wimm zaigt ayn Listn von Faudungen, wo mit   "e"
     angeend.
  5. Druck  <TAB>  , und dyr Wimm vervollst�ndigt �nn Faudungsnam zo   ":edit".

  6. F�eg  ayn Laerzaichen  und �nn Anfang  von ayner  besteehetn Dautticht an:
     :edit DAU

  7. Druck  <TAB>  . Dyr Wimm verg�ntzt �nn Nam, d�s haisst, wenn yr aindeuttig
     ist.
Anm�rkung:  D Verg�ntzung  geit s f�r aynn Hauffen Faudungen.  Versuech ainfach
            <STRG>d  und  <TAB>  . Bsunders n�tzlich ist d�s bei   :help  .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 7


  1. Zipf  :help  oder druck  <F1>  oder  <HILF> , um ayn Hilffenster z �ffnen.

  2. Zipf  :help FAUDUNG  , um auf ayn Hilf gan aynn Befelh z kemmen.

  3. Zipf  <STRG>w w  , um zo n andern Fenster z springen.

  4. Zipf  :q  , um s Hilffenster z schliessn.

  5. Erst�ll ayn vimrc-Ginschripf  zuer Sicherung von deine M�tzneinst�llungen.

  6. Druck  <STRG>d  , aft d��st naach   :   ayn Faudung  angfangt haast,  dyr-
     mitst m�gliche Verg�ntzungen anzaigt kriegst.
     Druck  <TAB>  f�r ain Vervollst�ndigung yllain.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  D�s w�r ietzet s End von n Wimmschainer.  Gangen ist s daa drum,  aynn kurtzn
  und b�ndignen �berblik  �ber s Blat WIMM z lifern,  netty vil gnueg,  d�� myn
  f�r s Eerste  wirklich �bbs  dyrmit anfangen kan.  Dyrmit ist s aber auf kain
  Weitn non nit taan;  dyr Wimm haat schoon non vil meerer  auf Lager.  Lis als
  Naehsts aynmaal s Benutzerhandbuech:   :help user-manual

  Zo n Weiterl�sn und Weiterlernen w�r d�s Buech daader zo n Empfelhen:
    Vim - Vi Improved - von n OUALLINE Steve
    Verlaag: New Riders
  D�s ist d�s eerste Buech, wo ganz yn n Wimm gwidmt ist, netty d�s Grechte f�r
  Anf�nger. Es haat ayn W�sn Beispiler und aau Bilder drinn.
  See http://iccf-holland.org/click5.html

  D�s folgete Buech  ist schoon �lter und meerer  �ber n Urwimm  als wie �ber n
  Wimm,  aber aau zo n Empfelhen:   Textbearbeitung mit dem vi-Editor - von dyr
  LAMB Linda und n ROBBINS Arnold  -  Verlaag O'Reilly  - Buechlaittzal (ISBN):
  3897211262
  In d�nn Buech  kan myn fast allss finddn,  was myn mit n Urwimm angeen mecht.
  De s�xte Ausgaab enthaltt aau schoon �bbs �ber n Wimm.
  Als ietzunde Bezugniss f�r d Fassung 7  und ayn pfrenge Einf�erung  dient d�s
  folgete Buech:
    vim ge-packt  von n WOBST Reinhard
    mitp-Verlaag, Buechlaittzal 978-3-8266-1781-2
  Trotz dyr recht pfrengen Darst�llung  ist s durch seine viln n�tzlichnen Bei-
  spiler aau f�r Einsteiger grad grecht.  Probhaeupster und de Beispilschripfer
  seind zesig zo n Kriegn; see   http://iccf-holland.org/click5.html

  Verfasst habnd d�nn Schainer dyr PIERCE Michael C. und WARE Robert K. von dyr
  Kolraader Knappnschuel (Colorado School of Mines). Er beruet auf Entw�rff, wo
  dyr SMITH Charles  von dyr  Kolraader Allschuel  (Colorado State  University)
  zuer Verf�egung gst�llt haat. Gundpost:   bware@mines.colorado.edu
  F�r n Wimm haat n dyr MOOLENAAR Bram barechtt.
  De bairische �bers�tzung  stammt von n HELL Sepp 2009,  ayn Weeng �berarechtt
  2011. Sein Gundpostbr�cht ist   sturmibund@t-online.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z���3����vim80/tutor/tutor.ru.cp1251nu�[���===============================================================================
=   � � � � �   � � � � � � � � � �   �   � � � � � � �   VIM  --  ����� 1.7 =
===============================================================================

     Vim -- ��� ��� ���� ��������, ����� ��������� ������, ������ �����
     �� ����, ���� � ��� ����� ��� ������ � ����� �������, ��� ����.
     ���� ������ ������� ������ ���������� ����� ������ �� ����, ����
     � ����� � ������ ���������� Vim � ������� ��������� �����
     ��������.

     ��� ���������� ������������� 25-30 ����� �� �������� ������� ������� �
     ����������� �� ����, ������ ������� � ��������� �� �����������.

     ��������! ��������� � ����� � ������ ������ ���� �����. ��������
     ���� ����� �����, ���� �������������� �� ��� (���� � ���������
     "vimtutor", �� ��� ��� ����).

     ����� ������, ��� ���� ������ ����������� �� ������ � �������
     �����������. ��� �������, ��� � ����� �������� ������ �� ����,
     ���� ��� ������� � �����. ���� � ������ ��������� ���� �����, ��
     �� ��������� ������!

     ����� �������� � ���, ��� ������ CapsLock �� ������, � �������
     ������  j  �������� ���, ���, ���� ���� 1.1 ������� ��������� ��
     ������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���� 1.1:  ����������� ������


** �� ��������� ������� ������� ������ h,j,k,l ���, ��� �������� ����. **
	     ^
	     k		�����:	������ h ������� ����� � ��������� �����.
       < h	 l >		������ l ������� ������ � ��������� ������.
	     j			������ j ����� �� ������� `����'.
	     v
  1. ���������� ������ �� ������, ���� �� ����������� ��� ��������.

  2. �������� ������ `����' (j) ���� ��� �� ���� ��������.
     ����� � ������, ��� ������� � �������� �����.

  3. ������� ������ `����' ��������� � ����� 1.2.

��������! ���� � ���� �� ������ � ���, ��� ���������, ������� <ESC> ��
	������� � ���� ����� (Normal mode). ����� ����� ������������
	�������� �������.

��������! ���� ������ ��������� �������� (�������) ����� �����
	�������. ������, ������ hjkl ������� ��� ���������
	��������� ������, ��� ����� � ������� ��� ���������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ���� 1.2: ��������� ����� � VIM


  !! �������! ������, ��� ������ ���� �� ������� ���� �����, �������
			       ���� ������� !!

  1. ������� ������ <ESC> (�� ����, ���� ������������, ��� � � �����
     ������ (Normal mode)).

  2. ��������:			:q! <ENTER>.
     (��� �������, ��� � ����� ������ ��� ������� :q! � ����� ������
     ����.) ��� �������� ��� ���� �� ��������� ��� ��������� �� �������
     ���������.

  3. ����� � ������� ���������� ��������� �������, �������� �������,
     ������ ������� ��� � ���� ������. ��� ����� ��:
				vimtutor <ENTER>

  4. ���� � ������ � ���, ��� ��������� ��� ����, �������� ���� �� 1 �� 3
     ���� ���� ����� �������� ��������.

��������!  :q! <ENTER>  ���������� ��� �������� ���� ��������. �����
	�������� ������ � ������� ��� ������ �������� � ����.

  5. ����������� ������ ���� � ����� 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  ���� 1.3: ������������ ����� -- �������


** ����� � ����� ������ �������  x  �� ������� ������� ��� ��������. **

  1. ����������� ������ � ������ ����, ��������� --->.

  2. �� ���������� �����, ����������� ������, ���� �� �� ������� ���
     ������� ��������.

  3. ������� ������  x  �� ������� ���������� �������.

  4. ��������� ���� �� 2 �� 4 ���� ������ �� ����� ����������.

---> �� �������� ����� ���� ��� ����� �������.

  5. �����, ����� ������ ����������������, ��������� � ����� 1.4.

��������! � ���� ������� ����� ������� �� ������� ���������, ����
	� ������� �����������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ���� 1.4: ������������ ����� -- �����


       ** ����� � ����� ������, �������  i  �� ������� ������. **

  1. ����������� ������ � ������ ������ ����, ��������� --->.

  2. �� ����, ���� ������ ����� ������ ��������� ������, ���������
     ������ �� ������ ����� ������ ������� ������� �����.

  3. �������  i  � �������� �������� ���������.

  4. ����� ���������� ��� ����� ������� <ESC> �� �������� � ���� �����.
     ��������� ���� �� 2 �� 4, ���� ����� �� ����� ���������� �������.

---> ���� ������ � ������ ��������� .
---> ���� ������ � ���� ������ ��������� �������.

  5. ����� ������� ������� ������, ��������� � ����� 1.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 ���� 1.5: ������������ ����� -- ���������


     ** ����� � ����� ������, �������  A  �� ��������� ������. **

  1. ����������� ������ � ������ ������ ����, ��������� --->.
     �� ����� ������ �� ����� ������� ���������� ������ �� ���� ������.

  2. �������  A  � �������� �������� ���������.

  3. ����� ��������� ���������� ������ ������� <ESC> �� �������� � ����
     �����.

  4. ����������� ������ �� ������ ������, �������� ---> � ��������� ����
     �� 2 �� 4 �� ���������� ���� ������.

---> ���� ������ � ���� ������ ������
     ���� ������ � ���� ������ ��������� �������.
---> ���� ����� �� ������ ���
     ���� ����� �� ������ ����� ������.

  5. ����� ������� ���������� ������, ��������� � ����� 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���� 1.6: ������������ ���


	** ����������  :wq  �� �������� ����� � ���� �� Vim. **

  !! �������! ������, ��� ������ ���� �� ������� ���� �����, �������
			       ���� ������� !!

  1. ������ �� Vim, ��� � ��� ������ � ����� 1.2:  :q!
     ���, ���� � ��� ��� ������ � ������� ���������, ������ ������ �������
     � ��.

  2. �� ��������� ��������� ������� ������� ������ �������:
			      vim tutor <ENTER>
     `vim' -- ������� �� ������� ��������� Vim, � `tutor' -- �� ����� ��
     �������������. ���������� �� �����, ������ ����� ������.

  3. ��������� � ������� �����, ��� � ������� � ������� �����.

  4. �������� ���� � ���������� � ������ �� Vim �������:  :wq <ENTER>

  5. ���� � ��� �� vimtutor �� ���� 1, ������������� vimtutor � ���������
     � �������� �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 ������ ���� 1


  1. ������ ���������� ���� �������� �� ���������, ���� �������� hjkl.
	h (�����)	j (����)	k (����)	l (������)

  2. �� ������� Vim (�� ��������� ��������� �������) ��������:
			    vim ���_��� <ENTER>

  3. �� �������� ����� � Vim ��������:
	<ESC>   :q!   <ENTER>  ���� �������� �� �������� ���������.
     ��� ��������:
	<ESC>   :wq   <ENTER>  ���� ������� ��������.

  4. �� ������� ������� ��� �������� � ����� ������, �������:  x

  5. ���� ������� ����� ����� �������� � ����� ������, ��������:
	 i   ������� ��������� �����   <ESC>
     ���� ������� ����� ����� �������:
	 a   ������� ��������� �����   <ESC>

��������! ������� <ESC> ���������� ��� � ���� ����� (Normal mode) ����
	������ ����������� � ������� �������� �������.

����� ��������� � ����� 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ���� 2.1: ������ �������


       ** ��������  dw  �� ������� ������ ������ �� ���� �����. **

  1. ������� <ESC>, ���� ������� � ���� �����.

  2. ����������� ������ ����, � ������ ��������� --->.

  3. ����������� ������ � ����� �����, ������� ������� ������.

  4. ��������  dw  �� ������� ����� �����.

��������! �� ���� ������ ���� dw ����� ������ � ����� ������ ������
	������. ���� � ���-�� ������� ����������, ������� <ESC> � ������
	������.

---> �������� ���� ������� � ���� ����������� �������� ������.

  5. ��������� ���� 3 � 4, ���� �� ��������� ��� ����� � ��������� �
     ����� 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ���� 2.2: �������������� ������ �������


	   ** ��������  d$  �� ������� ������ �� ���� ������. **

  1. ������� <ESC>, ���� ������� � ���� �����.

  2. ����������� ������ ����, � ������ ��������� --->.

  3. ����������� ������ � ���� ��������� ������ (����� ������ ����).

  4. ��������  d$  �� ������� ������� ������.

---> ���-�� ������ �������� ���� ������ �����. �������� ���� ������ �����.


  5. ���� ��� ��������� � ���, ��� ��� ���������, ��������� � ����� 2.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ���� 2.3: ������ � ������


  ������ ������, �������� �����, ������ �� ��������� � ������. ������
  ������ ������� � ����������  d  �������:

  	d   �����

  ����:
    d      - �������� �������.
    ����� - ��� ��� ������ �� �������� ������� (���������� ����).

  ������� ������ �������:
    w - �� ������� �� ���� �����, ���� ��������� ������.
    e - �� ������� �� ���� �����, �� ���� ��������� ������.
    $ - �� ������� �� ���� ������.
    ^ - �� ������� �� ����� ������.

��������! ������� ������� �� ������ ������ � ����� ������ (Normal mode)
	��� ��������������� ��������� ���������� ������ ���, ��� �������
	� ������ �������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		���� 2.4: ������������ �ר���� ��� �����������


      ** ���� ����� ����� ���������� ��������� ������� � ��� ���������
			  �������� ��������� ���. **

  1. ����������� ������ � ����� ������ ��������� ---> ����.

  2. ��������  2w  �� ��������� ������� ����� � ����� ������� �����.

  3. ��������  3e  �� ��������� ������� ����� � ���� ������� �����.

  4. ��������  0  (���) �� ��������� � ����� ������.

  5. ��������� ���� 2 � 3 � �������� �������.

---> ���� ������ �� ���� �� ����� ��������� �� ���.

  6. ��������� � ����� 2.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 ���� 2.5: ������������ �ר���� ��� �������


	    ** ���� ����� ����� ���������� ������� � ��� ���������
			  �������� ��������� ���. **

  ������� ����� ����� ����� ������� � �������� ��������� ������� �
  ��������� �������� �� �� ������� ���������� ��������� �������:
	 d   �����   �����

  1. ����������� ������ � ������� ����� �� ������� ���� � ��������� --->
     ������ ����.

  2. ��������  d2w  �� ������� ��� ���� �� ������� ����.

  3. ��������� ���� 1 � 2 � ������� ������� �� ������� ������������� ����
     �� ������� ���� ����� ��������.

---> ��� ��� �� ������ ���� �� ��� �� ���� � �� ��� �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���� 2.6: ������� �� �������


		** ��������   dd   �� ������� ����� ������. **

  � ���� � ������ ����������� ������� ����� ������, ��������� Vi �����
  �� ������� ������ �������� �������� ������ ������� ��� d.

  1. ����������� ������ ����, �� ������ ������ ����.

  2. �������� dd �� ������� ������.

  3. ����� ������������ � �������� ������.

  4. �������� 2dd �� ������� ��� �����.

--->  1)  ����� � ���� �� �������,
--->  2)  �, ��� �������� ������ �����!
--->  3)  � ���� �� ``�����'', ``�����'' --- �������!
--->  4)  ������ � ���� �� ��� ���������!
--->  5)  ��� ������ �� ����� �� �����...
--->  6)  � ���� �� �������� � ���� `�'
--->  7)  � ���� �� ����� ������� �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ���� 2.7: ����� `�����'


  ** �������  u  �� ����� ��������� ����� �������� ������, U �� �����
			 ����������� �� ���� ������. **

  1. ����������� ������ ����, � ������ ��������� --->, � ���������� ��� ��
     ����� �����.

  2. �������  x  �� ������� ������� ������������ �������.

  3. ����� �������  u  �� ����� (������) ��������� ���������� ������.

  4. �������� ��� ����� � ������, ������� �������  x .

  5. ����� ������� ��������  U  �� ����, ���� ������ �� ������
     � ������� ��������.

  6. �������  u  �������� ��� �� ����� ������  U  � ������� ������.

  7. ������� ����� CTRL-R (�.�. ����������� ������ CTRL ������� � ������
     ������ ������ R) �������� ��� �� �������� ������ (����� ������).

---> ��������� ������ � ����� ������ � �������� � �� ������ `�����'.

  8. ��� ��� ��� ������� ������. ����� ��������� � ����� ����� 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 ������ ���� 2


  1. �� ������� ������ �� ������� �� ���� ����� ��������:	dw

  2. �� ������� ������ �� ������� �� ���� ������ ��������:	d$

  3. �� ������� ���� ������ ��������:		dd

  4. �� ������� ��������� ������� ��������� ����� ��������:	2w 

  5. ������ ������ � ����� ������ ����� ���:

       [�����]   �������   �����     ���     �������	[�����]   �����
     ���:
       [�����] - ������ ��� �������� ��������� ������, ���������
       ������� - ��� �������, �������� d �� �������
       �����  - �� ��� ������ ������������� �������, �������� w (�����),
		$ (�� ���� ������), � �.�.

  6. �� ������� � ����� ������ ���������� ���:  0

  7. �� ����� (������) ���������� �������� ��������:  u  (������ u)
     �� ����� (������) ��� ��������� � ������ ��������:  U  (�������� U)
     �� ����� ������ ��������:  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ���� 3.1: ����� ������


   ** ��������  p  �� ������� ���������� ��������� ������ ����� �������. **

  1. ����������� ������ ����, � ������ ��������� --->.

  2. ��������  dd  �� ������� ������ � � �������� � ������ Vim'�.

  3. ����������� ������ � ������ �� ��� ������, ���� ������� �������
     ������� ������.

  4. ����� � ����� ������ ��������  p  �� ������� ������ ���� �������.

  5. ��������� ���� �� 2 �� 4, ���� �� ���������� ��� ������ � ������ ������.

---> �) � ��� ������ �� ���.
---> �) ����� �� � ����� �������,
---> �) �� ������ ��� ��������
---> �) ��� �� ��� ����� ������

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    ���� 3.2: ����� �����


	  ** ��������  r  � ������, �������� ������ ��� ��������. **

  1. ����������� ������ ����, � ������ ��������� --->.

  2. ���������� ������ ���, ���� �� ������� ��� ������ ������.

  3. ��������  r  � ����� ������, ���������� �����.

  4. ��������� ���� 2 � 3, ���� ����� ������ �� ����� ���������� ��� �����.

--->  � ������ ������ ���� ������ ���0��� � ������ ������� �� �������!
--->  � ������ ������ ���� ������ ���-��� � ������ ������� �� �������!

  5. ����� ��������� � ����� 3.3.

��������! �������, ��� � ����� ���� � ������� �����, � �� ������
	��������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ���� 3.3: ����� ���������


	    ** �� �������� ������� ����� ����� ��������  ce . **

  1. ����������� ������ ����, � ������ ��������� --->.

  2. ����������� ������ ��� ������ `o' � ����� `����'.

  3. ��������  ce  � �������� ����� (� ������ �����, �������� `���').

  4. ������� <ESC> � ��������� � ������� ����� (� ������� �������, ������
     ���� �������).

  5. ��������� ���� 3 � 4 ���� ������ ����������� �� ������ �������� �������.

---> �������� ���� � ��� ������ ���� ������������.
---> �������� ���� � ���� ������ ������ �������������.

   �������� ��������, ���  ce  �� ����� ������ �����, �� � ��������� ��� �
   ����� �������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  ���� 3.4: ��������� �������� � �������  c


 ** ������� ����� ���������� � ���� �� ��������, ��� � ������� �������. **

  1. ������� �������� ��������� ����� �� �������, ��� � ������� �������.
     Ÿ ������ �����:

       [�����]   c   �����           ���           c   [�����]   �����

  2. ����� ����� ��������: w (�����), $ (���� ������) � �.�.

  3. ����������� ������ ����, � ������ ��������� --->.

  4. ��������� � ������ �����.

  5. ��������  c$  � �������������� ����� ������ ���, ���� ��� ��������� ��
     ������, ����� ���� ������� <ESC>.

---> ���� ���� ������ �������� � �����, ���� ���� ������ �� ������.
---> ���� ���� ������ �������� � ����� ������  c$ .

��������! ������ Backspace ����� ����������� �� ���������� ��� ������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 ������ ���� 3


  1. �� ������� ������, ������ ����� ��� �� �����, ��������  p . ���
     ������� ������� ������� ����� ����� ������� (���� ��� ������� ������,
     �� ��� ����� ������� � ������ ��� ��������).

  2. �� ����� ������� ��� �������� ��������  r  � ����� �������� ������.

  3. ������� �������� �������� ��� ������� �������� ����� �� ������� ��
     ������� ���������. ��������, ��������  ce  �� ����� �� ������� ��
     ���� �����,  c$  �� �������� �� ���� ������.

  4. ������ ������ �������� �����:

	 [�����]   c   �����         ���         c   [�����]   �����

����� ��������� � �������� �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       ���� 4.1: ��������� � ���� � ����������� � ���


       ** �������� CTRL-g ���� ������ ��� ����������������� � ����� �
     �������� � �����. ��������  G  (SHIFT-G) �� ��������� � ��������
			       ������ � �����. **

��������! ��������� ��� ���� ������ ��� ������ ��� ������!

  1. �������� ������ Ctrl �������  g . ����� ������ ������ ������ �������
     � ������ ����� � ������� ������, � ������� � ��������. ��������� �����
     ������, �� ���������� �� ���� 3.

  2. �������� ������ Shift �������  g  �� ��������� � ���� �����.

  3. �������� ����� ������, � ������� � �������� � ����� Shift-G. ���
     ����� ��� � ������, � ������� � ���, ����� � ����� ��� ������ Ctrl-g.

  4. ���� � ��������� ��� �����������, �������� ���� � 1 �� 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    ���� 4.2: ����� �����


	       ** ��������  /  � ����� ������� ������ �����. **

  1. � ����� ������ (Normal mode) �������� ������  / . �������� ��������,
     ��� �� ������ � �������� ������ ����� ������, ��� ��� ��������� �
     ��������  : .

  2. ����� �������� '������' <ENTER>. ��� �� �����, ������� � ������
     �����.

  3. �� ����, ���� �������� �����, ������ �������  n .
     �� ������ ���� �� ���� � �������� �����������, �������  Shift-N .

  4. ���� � ������� ����� ����� � �������� �����������, ����������
     �������  ?  ������  / .

  5. �� ����, ���� ������� ����, ������ � ����� ����� �������  Ctrl-O.
     (�������� ������� ������ Ctrl �������  o ). ��������� �������� ���
     �� ��������� �������. �� ������� ����� ����������  Ctrl-I .

---> "������" ��� �� ������ �������� ����� `�����';  ������ ��� �����.

��������! ���� ��� ������ ����� ��������� ��� �����, �� ����� ����� ���������
	� �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			���� 4.3: ����� ����� �����


		 ** ��������  %  �� ������ ���� ), ] ��� } . **

  1. ��������� ������ ��� ���� �� (, [ ��� { � ������ ����, ��������� --->.

  2. ����� �������� ������  % .

  3. ������ ������ ��������� �� ����� ������.

  4. ��������  %  �� �������� ������� ����� � ������ ������.

---> ��� ( ������, �������� ����� (, ����� [ ] � ����� { } ������. ))

��������! ��� ��� ������ ��� ������� �������� � ���������� ��������!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ���� 4.4: ����� ���������� �����


	 ** ��������  :s/���/�����/g  �� ����� '���' �� '�����'. **

  1. ����������� ������ ����, � ������ ��������� --->.

  2. ��������  :s/����/����� <ENTER> . �������� �������� �� ��, ��� ���
     ������� ������� ����� ������ ��������� �������� � ������.

  3. ����� ��������  :s/����/�����/g , ���������� � ���� g �������
     ����������� �������� �� ���� ������. ��� ������� ��� �������� � ������
     �������.

---> � ���� � ���������� ������, � ���� ����� �������� ����, � ���� �
     ����� ��������.

  4. �� ����� ��� �������� ����������������� �������� ����� ����
     ��������,
     ��������  :#,#s/���/�����/g  ��� #,# -- ������ ��� �����.
     ��������  :%s/���/�����/g    �� ����� ��� �������� �� ���� �����.
     ��������  :%s/���/�����/gc   �� ������ ��� �������� �� ���� ����� �
                                   ������� ������������ �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 ������ ���� 4


  1. Ctrl-g  ��������� ��� ��������� � ����� � �������� � ���.
     Shift-G  ��������� ��� � ���� �����. �����, �� ������ ������� Shift-G
     �������� ������� � ������ � ���� �������.
     gg  ��������� ��� � ������ ������ �����.

  2. �������  /  � ����� ���� ������ �������� ���������� ����� ���� ������
     ���� �� ������.
     �������  ?  � ����� ���� ������ �������� ���������� ����� ���� ������
     ��� �� ������.
     ����� ������ ��������  n  �� ������� � �������� ������� �������
     ������ � ��� �� ����������� ��� Shift-N �� ������� � ���������������
     �����������.

  3. �������  % , ����� ������ ������� �� (,),[,],{, ��� } �������� �����
     ����� ������.

  4. �� ����������� `�����' ������ ������� `���' � ������, ��������
	:s/old/new
     �� ����������� `�����' ������ ��� `���' � ������, ��������
	:s/old/new/g
     �� ����� � ��������� ����� ���� ��������, ��������
	:#,#s/old/new/g
     �� ����� ��� �������� `���' �� `�����' � �����, ��������
	:%s/old/new/g
     ���� �������� ����� ��� ��������� �������������, ������� 'c'
	:%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ���� 5.1: �� ��������� ������� ������


    ** ��������  :!  � ����� ���� �������, ������ ������� �������. **

  1. �������� ��� ������� ��� �������  :  �� ��������� ������� � ��������
     ������ ���������. ��� �������� ��� ������ �������.

  2. ����� �������� ������  !  (������������ ����). ��� �������� �������
     ���� �������, ������� �������� �������.

  3. �� ������� ��������  ls  �����  !  � ������� <ENTER>. ������� ������
     ������ ������ � ������ ��������, ���� �����, ��� ���� � � ����� ���
     ������� � ���������� �������. ��� ����������  :!dir , ���� ������� ls
     �� ���������.

��������! ����� �������� ����� ������� ��� ���� ������� � ���������
	����������.

��������! ��� ������, �������� �  : , ����� �������� ��������
	<ENTER>. ����� �� ��� �� ������ ����� ������� ������ ��������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���� 5.2: �� ������ ���


	      ** �� �������� ���������, ���������� � �����,
			   ��������  :w ���_���. **

  1. ��������  :!dir  ���  :!ls  �� ������� ������ ������ � ������
     ��������.  ��� ��� ��� ��������, ����� ����� ������ ���� ����� <ENTER>.

  2. ���������� �������� �� �����, ������� � �� ���������, �������� TEST.

  3. ����� ��������  :w TEST  (��� TEST -- ��� �� �����, ����������� ����.)

  4. ������� ������� ��� ���� ���� (������ �� Vim) ��� ������ TEST. ����
     ������������ � ����, ����� ��������  :!dir  ��� :!ls  � �����������
     �������.

��������! ���� � ������ �� Vim � ����� ��������� ��� ����� � ������ TEST
	(�.�. ��������  vim TEST ), ���� ���� ����� ����� ������ �������
	� ��� ������, ����� � ��� ��������.

  5. ����� ������� ���� ����, ������ �� MS-DOS    :!del TEST
                                      �� Unix      :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���� 5.3: ��������� ���������


	   ** �� �������� ����� �����, ��������  v  ������� ����
			  � �������� �  :w ���_��� **

  1. ����������� ������ � ���� ������.

  2. �������  v  � ����������� ������ ���� � ����� ����. �������� ��������,
     ��� ����� ��������.

  3. �������  :  � ����� ������ ������  :'<,'> .

  4. �������  w TEST  (��� TEST -- �� �����, ������ � �� ���������).
     �� ������ <ENTER>, �������� ��� ����� ������ ��������  :'<,'>w TEST.

  5. Vim ������ ������� ������ � ���� TEST. ��� � ������, �������� �
     ������ ����� ����� ��������  :!dir  ���  :!ls . �� ������� ���� ����, ��
     ���������� � ������� �����.

��������! �������  v  ������� �������� ����. � ������ �������� ������
	�� �������� �����. ����� �� ��������� ��������� ����� �������
	�����-�� ��������, ��������, ������ ��������  d.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���� 5.4: ������ � ���������� �����


	** �� ������� ����������� �� �����, ��������  :r ���_���  **

  1. ���������� ������ ��� ���� �������.

��������! ����� �������� ���� 2 � ������� ����� �� ����� 5.3. ������������
	���� �� ������ �� ����� �����.

  2. ����� ��������� �� ���� TEST, ������� �������  :r TEST , ��� TEST --
     ��� �� �����.

  3. �� �������� ��� ���������� ����� ��� ���������, ������������ �� ������
     � ������������, ��� ����� � �� ��� ����� ����� 5.3: ������ � ��
     ����� TEST.

��������! ������� ����� � ���� ������ ������. ��������,  :r !ls  ��������
	���� ������ ls � ������� ��� ���� �������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 ������ ���� 5


  1.  :!�������  �������� ���� �������.

      �������� ������� ������:
      	(MS-DOS)	(Unix)
	 :!dir		 :!ls		-- ������ ������ ������ � ��������.
	 :!del ���	 :!rm ���	-- ������ ���� �� �����.

  2.  :w ���_���  ��������� ������ ������������ � Vim ���� �� ���� ���
      �������� ������.

  3.  v  ����������  :w ���_���  ������� �������� ������� ������ � ����
      � �������� ������.

  4.  :r ���_���  ������� � ����� ���� � �������� ������ � ������� ���
      ���� �������.

  5.  :r !dir  ������ ���� ������ dir � ������� ��� ���� �������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ���� 6.1: ����� �������


   ** ��������  o  ���� ������ ����� ������ ��� �������� � ������� � �����
			    ������� (Insert mode) **

  1. ����������� ������ ����, � ������ ��������� --->.

  2. ��������  o  (� ������ ��������) �� ����, ���� ������ ����� ������
     ���� ������� � ������� � ����� ������� (Insert mode).

  3. ����� �������� �����-����� ����� � ������� <ESC> �� ���� �� ������
     �������.

---> ����� ������  o  ������ ������� �� ���� ����� ������ � ������ �������.

  4. �� ������� ������ ���� �������, ������ �������� ��������  O , ������
     �������  o . ���������� �������� ��� � ����������� �������.

---> �������� ���� ������ ��� ����, �������� �� �� ������ � ����� Shift-O.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���� 6.2: ����� ���������


	    ** ��������  a , ���� ������� ����� ����� �������. **

  1. ����������� ������ ����, � ����� ������ ������ ��������� --->.

  2. ���������  e  ���� ������ �� ����������� �� ����  c��� .

  3. ��������  a  (� ������ ��������) �� ��������� ������ ����� �������,
     �������� ��� ��������. (�������� A �������� ������� � ����
     ������.)

  4. ������� ����� ���, ��� �������� � ������ ����. ������� <ESC> �� ����
     �� ������ ������� (Insert mode).

  5. ����������  e  �� ������� � ���� �������� ������������ ����� �
     ��������� ���� 3 � 4.

---> ��� ���� �������� ��� ����������� � ������� ������.
---> ��� ������ �������� ��� �������������� � ���������� ������. 

��������!  a , i  �  A  �������� � ���� � ��� �� ����� �������, �������
	����� � ���, ��� �������� ������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			���� 6.3: �٨ ���� ����� �����


       ** �������� ��������  R  �� ����� ����� ��� ������ �������. **

  1. ����������� ������ ����, � ������ ������ ��������� --->, � � �����
     ������� �����  xxx.

  2. ����� �������  R  � ������� ����� �������� ���� �� ������ ������ ����
     �������  xxx.

  3. ������� <ESC> �� ���� �� ������ �����. ������� ��� ������� ������
     �� �� ������.

  4. ��������� ��� ���� �� ����� �������  xxx.

---> ���������� 123 � xxx ��� xxx.
---> ���������� 123 � 456 ��� 579.

��������! ����� ����� ���� �� ����� �������, �� ����� ������� ������
	������ ���������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���� 6.4: ���������� � ����� �����


	** ���������� �������  y  �� ���������� �  p  �� ������� **

  1. ����������� ������ ����, � ������ ������ ��������� --->, � ����� `�)'.

  2. ���������� � ����� ���������� ����� �����  v  � ����������� ������
     ����� ������ `�����'.

  3. �������  y  �� ���������� ������������ ������.

  4. ����������� ������ � ���� ������� ������ ����������  j$ .

  5. �������  p  �� ������� ������. ����� ������� `������' � ������� <ESC>. 

--->  �) ���� ������� �����.
      �)

��������! ����� �������� ����������  yw  (�������  y  � ����������  w ) ��
	���������� ������ �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ���� 6.5: ������� ��������


   ** ��������� ��������� �� ������������ �������� ��� ������ ��� ������ **

  1. ������� ����� `�����������', ������:  /�����������  <ENTER>.
     ��������� ����� �������� ���, ������ ������  n .

  2. ���������� �������� `ic' (����������� �������), ������:  :set ic

  3. ����� ����� �������� ��� �������� ����� ����� `�����������',
     ������:  n
     �������, ��� ����� ������ `�����������' � `�����������'.

  4. ���������� �������� `hlsearch' � `incsearch':  :set hls is

  5. ����� ��� ������� ������� ������ � ����������, ��� �������:
			     /����������� <ENTER>

  6. �� ��������� ��� �������� ��� ������ ��������:  :set noic

��������! �� ������� ��������� ���������� ��������:  :nohlsearch

��������! ���� � ������ ����������� ������� ����� �� ������ ������,
	����������  \�  � ������� ������:  /�����������\c  <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 ������ ���� 6


  1. �������  o  �� ������� ������ ���� ������� � ������� � ����� �������.
     �������  O  �� ������� ������ ���� �������.

  2. �������  a  �� ������� ������ ����� �������.
     �������  A  �� ������� ������ � ���� ������.

  3. �������  e  �������� ������ � ���� �����.

  4. �������  y  �������� �����,  p  -- �������� ������������ �����.

  5. ������� ���������  R  ��������� � ����� ����� �� ������ ������  <ESC> .

  6. �������� `:set xxx' �� ������ ��������� `xxx', �������� ��������:

	`ic'	`ignorecase'	������������� �������� ��� ������
	`is'	`incsearch'	����������� ������ ���������� ��� ������
	`hls'	`hlsearch'	��������� ��� ���������� ��� ������

  7. ������� `no' ����� ���������� �� ��� �������:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ���� 7.1: ��������� �����


		** ���������� ��������� �������� ������� **

  Vim �������� ����� ���������� ��������� ��������. �� ����� ����������
  ���� �� �� ���������:
	- ������� ������ <HELP> (���� ������ ������ �� ����������)
	- ������� ������ <F1> (���� ������ ������ �� ����������)
	- ��������   :help <ENTER>

  ��������� ����� � ���� ������� �� ������� ������������ � ��� ���
  �������� �������.
  �������  CTRL-W CTRL-W  �� ������� �� ���� � ����.
  ��������   :q <ENTER>   ���� ����� ���� �������.

  � ������ ����� ������� �� ����� ����� ��� ������, ����� �������������
  �������� ������� `:help'. ���������� ������� (�� ������� ����� <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���� 7.2: ������� ��������� �������


			 ** ����� ����������� Vim **

  Vim ����� ������� ���� ������������, ��� Vi, �� ��������� �� �� ��
  ������� �����. �� ����������� ���� ������������ ��� �������
  ������ ���� `vimrc'.

  1. �������������� ���� ���� `vimrc'. ��� ������������ ������� ��
     ����������� ������:
	:e ~/.vimrc		�� Unix
	:e $VIM/_vimrc		�� MS-Windows

  2. ����� ��������� ������ ����� `vimrc':
	:r $VIMRUNTIME/vimrc_example.vim

  3. ������� �������� ���� ���� ���� `vimrc':
	:w

  ����� ��� ������� ������� Vim ����� ������ ��������� ����������. ���
  ���������, ������������ ����, ����� �� �������� � ���� `vimrc'.
  �� �������� ��������� ��������  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      ���� 7.3: ����������


	 ** �������� ������ ����� �������� �����  CTRL-D  �  <TAB> **

  1. ������������, ��� Vim �� � ������ �������������:  :set nocp

  2. ���������� ����� ���� ��� � ��������:  :!ls  ���  :!dir

  3. �������� ����� ������:  :e

  4. �������  CTRL-D  � Vim ��������� ������ ������ ������� �� `e'.

  5. �������  <TAB>  � Vim �������� �������� ������ �� `:edit'.

  6. ����� ������� ������ � ����� ���������� ����� �����:  :edit ��

  7. �������  <TAB>  � Vim �������� �� �����, ���� ��� ���������.

��������! ���������� �������� �� ����� ������. ���������� �����  CTRL-D  �
	<TAB>. ��� �������� ������� �� ������  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 ������ ���� 7


  1. ��������  :help  ��� ������� <F1>, ��� <Help> �� ������ ���� �������.

  2. ��������  :help cmd  �� ������ ������� �� �������.

  3. �������  CTRL-W CTRL-W  �� ������� � ������� ����.

  4. ��������  :q  �� ������ ���� ������� (���� ��� �������).

  5. �� ������� ��� �������� �������� �������� ������� `vimrc'.

  6. ��� ������  :  ������, ������� CTRL-D �� ���������� �������
     ����������. ������� <TAB> �� ����������� ���������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  �� ���� ��������� ������ Vim. �� �� ����������� ��� ���� �������������
  � ��������� Vim, ���������� �� ����, ���� � ������ ���������� ���.
  ������ ���� �� ������, �������� Vim ����� ��� ����� ������. ���������
  ����� ����������� ����������: `:help user-manual'.

  �� ��������� ����� ������������ �����:
	Vim - Vi Improved, �����: Steve Oualline, �������: New Riders

  ��� ����� ������� ������� Vim. �������� ������� ��� ����� �������.
  �������� ��������� �������� � ���������.
  ��. http://iccf-holland.org/click5.html

  ������ ����� ����� ��������� �������� � ������� ���� Vi, ��� Vim,
  ������ ����� ������������:
	Learning the Vi Editor, �����: Linda Lamb,
				�������: O'Reilly & Associates Inc.

  ��� ����� �����, ���� ����� ��, ��� ����� ����� ������ � Vi. ������
  ������� ����� ������ �������� � Vim.

  ���� ������ ������� Michael C. Pierce � Robert K. Ware, Colorado School of
  Mines � ������������� ����, ������ ��������� Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu.

  ���������� �� Vim ������ ��������� (Bram Moolenaar).

  �������:
  	������ ������� <a_kissel@eudoramail.com>, 2002.
	������ ���� <alyoshin.s@gmail.com>, 2014.

  Translators:
  	Andrey Kiselev <a_kissel@eudoramail.com>, 2002.
  	Sergey Alyoshin <alyoshin.s@gmail.com>, 2014.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�ZLD��߁߁vim80/tutor/tutor.utf-8nu�[���===============================================================================
=    W e l c o m e   t o   t h e   V I M   T u t o r    -    Version 1.7      =
===============================================================================

     Vim is a very powerful editor that has many commands, too many to
     explain in a tutor such as this.  This tutor is designed to describe
     enough of the commands that you will be able to easily use Vim as
     an all-purpose editor.

     The approximate time required to complete the tutor is 25-30 minutes,
     depending upon how much time is spent with experimentation.

     ATTENTION:
     The commands in the lessons will modify the text.  Make a copy of this
     file to practice on (if you started "vimtutor" this is already a copy).

     It is important to remember that this tutor is set up to teach by
     use.  That means that you need to execute the commands to learn them
     properly.  If you only read the text, you will forget the commands!

     Now, make sure that your Caps-Lock key is NOT depressed and press
     the   j   key enough times to move the cursor so that Lesson 1.1
     completely fills the screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 1.1:  MOVING THE CURSOR


   ** To move the cursor, press the h,j,k,l keys as indicated. **
	     ^
	     k		    Hint:  The h key is at the left and moves left.
       < h	 l >		   The l key is at the right and moves right.
	     j			   The j key looks like a down arrow.
	     v
  1. Move the cursor around the screen until you are comfortable.

  2. Hold down the down key (j) until it repeats.
     Now you know how to move to the next lesson.

  3. Using the down key, move to Lesson 1.2.

NOTE: If you are ever unsure about something you typed, press <ESC> to place
      you in Normal mode.  Then retype the command you wanted.

NOTE: The cursor keys should also work.  But using hjkl you will be able to
      move around much faster, once you get used to it.  Really!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lesson 1.2: EXITING VIM


  !! NOTE: Before executing any of the steps below, read this entire lesson!!

  1. Press the <ESC> key (to make sure you are in Normal mode).

  2. Type:	:q! <ENTER>.
     This exits the editor, DISCARDING any changes you have made.

  3. Get back here by executing the command that got you into this tutor. That
     might be:  vimtutor <ENTER>

  4. If you have these steps memorized and are confident, execute steps
     1 through 3 to exit and re-enter the editor.

NOTE:  :q! <ENTER>  discards any changes you made.  In a few lessons you
       will learn how to save the changes to a file.

  5. Move the cursor down to Lesson 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 1.3: TEXT EDITING - DELETION


	   ** Press  x  to delete the character under the cursor. **

  1. Move the cursor to the line below marked --->.

  2. To fix the errors, move the cursor until it is on top of the
     character to be deleted.

  3. Press the	x  key to delete the unwanted character.

  4. Repeat steps 2 through 4 until the sentence is correct.

---> The ccow jumpedd ovverr thhe mooon.

  5. Now that the line is correct, go on to Lesson 1.4.

NOTE: As you go through this tutor, do not try to memorize, learn by usage.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 1.4: TEXT EDITING - INSERTION


			** Press  i  to insert text. **

  1. Move the cursor to the first line below marked --->.

  2. To make the first line the same as the second, move the cursor on top
     of the first character AFTER where the text is to be inserted.

  3. Press  i  and type in the necessary additions.

  4. As each error is fixed press <ESC> to return to Normal mode.
     Repeat steps 2 through 4 to correct the sentence.

---> There is text misng this .
---> There is some text missing from this line.

  5. When you are comfortable inserting text move to lesson 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 1.5: TEXT EDITING - APPENDING


			** Press  A  to append text. **

  1. Move the cursor to the first line below marked --->.
     It does not matter on what character the cursor is in that line.

  2. Press  A  and type in the necessary additions.

  3. As the text has been appended press <ESC> to return to Normal mode.

  4. Move the cursor to the second line marked ---> and repeat 
     steps 2 and 3 to correct this sentence.

---> There is some text missing from th
     There is some text missing from this line.
---> There is also some text miss
     There is also some text missing here.

  5. When you are comfortable appending text move to lesson 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 1.6: EDITING A FILE

		    ** Use  :wq  to save a file and exit. **

  !! NOTE: Before executing any of the steps below, read this entire lesson!!

  1. Exit this tutor as you did in lesson 1.2:  :q!
     Or, if you have access to another terminal, do the following there.

  2. At the shell prompt type this command:  vim tutor <ENTER>
     'vim' is the command to start the Vim editor, 'tutor' is the name of the
     file you wish to edit.  Use a file that may be changed.

  3. Insert and delete text as you learned in the previous lessons.

  4. Save the file with changes and exit Vim with:  :wq  <ENTER>

  5. If you have quit vimtutor in step 1 restart the vimtutor and move down to
     the following summary.

  6. After reading the above steps and understanding them: do it.
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 1 SUMMARY


  1. The cursor is moved using either the arrow keys or the hjkl keys.
	 h (left)	j (down)       k (up)	    l (right)

  2. To start Vim from the shell prompt type:  vim FILENAME <ENTER>

  3. To exit Vim type:	   <ESC>   :q!	 <ENTER>  to trash all changes.
	     OR type:	   <ESC>   :wq	 <ENTER>  to save the changes.

  4. To delete the character at the cursor type:  x

  5. To insert or append text type:
	 i   type inserted text   <ESC>		insert before the cursor
	 A   type appended text   <ESC>         append after the line

NOTE: Pressing <ESC> will place you in Normal mode or will cancel
      an unwanted and partially completed command.

Now continue with Lesson 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 2.1: DELETION COMMANDS


		       ** Type  dw  to delete a word. **

  1. Press  <ESC>  to make sure you are in Normal mode.

  2. Move the cursor to the line below marked --->.

  3. Move the cursor to the beginning of a word that needs to be deleted.

  4. Type   dw	 to make the word disappear.

  NOTE: The letter  d  will appear on the last line of the screen as you type
	it.  Vim is waiting for you to type  w .  If you see another character
	than  d  you typed something wrong; press  <ESC>  and start over.

---> There are a some words fun that don't belong paper in this sentence.

  5. Repeat steps 3 and 4 until the sentence is correct and go to Lesson 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 2.2: MORE DELETION COMMANDS


	   ** Type  d$	to delete to the end of the line. **

  1. Press  <ESC>  to make sure you are in Normal mode.

  2. Move the cursor to the line below marked --->.

  3. Move the cursor to the end of the correct line (AFTER the first . ).

  4. Type    d$    to delete to the end of the line.

---> Somebody typed the end of this line twice. end of this line twice.


  5. Move on to Lesson 2.3 to understand what is happening.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.3: ON OPERATORS AND MOTIONS


  Many commands that change text are made from an operator and a motion.
  The format for a delete command with the  d  delete operator is as follows:

  	d   motion

  Where:
    d      - is the delete operator.
    motion - is what the operator will operate on (listed below).

  A short list of motions:
    w - until the start of the next word, EXCLUDING its first character.
    e - to the end of the current word, INCLUDING the last character.
    $ - to the end of the line, INCLUDING the last character.

  Thus typing  de  will delete from the cursor to the end of the word.

NOTE:  Pressing just the motion while in Normal mode without an operator will
       move the cursor as specified.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.4: USING A COUNT FOR A MOTION


   ** Typing a number before a motion repeats it that many times. **

  1. Move the cursor to the start of the line marked ---> below.

  2. Type  2w  to move the cursor two words forward.

  3. Type  3e  to move the cursor to the end of the third word forward.

  4. Type  0  (zero) to move to the start of the line.

  5. Repeat steps 2 and 3 with different numbers.

---> This is just a line with words you can move around in.

  6. Move on to Lesson 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.5: USING A COUNT TO DELETE MORE


   ** Typing a number with an operator repeats it that many times. **

  In the combination of the delete operator and a motion mentioned above you
  insert a count before the motion to delete more:
	 d   number   motion

  1. Move the cursor to the first UPPER CASE word in the line marked --->.

  2. Type  d2w  to delete the two UPPER CASE words

  3. Repeat steps 1 and 2 with a different count to delete the consecutive
     UPPER CASE words with one command

--->  this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 2.6: OPERATING ON LINES


		   ** Type  dd   to delete a whole line. **

  Due to the frequency of whole line deletion, the designers of Vi decided
  it would be easier to simply type two d's to delete a line.

  1. Move the cursor to the second line in the phrase below.
  2. Type  dd  to delete the line.
  3. Now move to the fourth line.
  4. Type   2dd   to delete two lines.

--->  1)  Roses are red,
--->  2)  Mud is fun,
--->  3)  Violets are blue,
--->  4)  I have a car,
--->  5)  Clocks tell time,
--->  6)  Sugar is sweet
--->  7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 2.7: THE UNDO COMMAND


   ** Press  u	to undo the last commands,   U  to fix a whole line. **

  1. Move the cursor to the line below marked ---> and place it on the
     first error.
  2. Type  x  to delete the first unwanted character.
  3. Now type  u  to undo the last command executed.
  4. This time fix all the errors on the line using the  x  command.
  5. Now type a capital  U  to return the line to its original state.
  6. Now type  u  a few times to undo the  U  and preceding commands.
  7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times
     to redo the commands (undo the undo's).

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. These are very useful commands.  Now move on to the Lesson 2 Summary.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 2 SUMMARY


  1. To delete from the cursor up to the next word type:    dw
  2. To delete from the cursor to the end of a line type:    d$
  3. To delete a whole line type:    dd

  4. To repeat a motion prepend it with a number:   2w
  5. The format for a change command is:
               operator   [number]   motion
     where:
       operator - is what to do, such as  d  for delete
       [number] - is an optional count to repeat the motion
       motion   - moves over the text to operate on, such as  w (word),
		  $ (to the end of line), etc.

  6. To move to the start of the line use a zero:  0

  7. To undo previous actions, type: 	       u  (lowercase u)
     To undo all the changes on a line, type:  U  (capital U)
     To undo the undo's, type:		       CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 3.1: THE PUT COMMAND


       ** Type	p  to put previously deleted text after the cursor. **

  1. Move the cursor to the first ---> line below.

  2. Type  dd  to delete the line and store it in a Vim register.

  3. Move the cursor to the c) line, ABOVE where the deleted line should go.

  4. Type   p   to put the line below the cursor.

  5. Repeat steps 2 through 4 to put all the lines in correct order.

---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 3.2: THE REPLACE COMMAND


       ** Type  rx  to replace the character at the cursor with  x . **

  1. Move the cursor to the first line below marked --->.

  2. Move the cursor so that it is on top of the first error.

  3. Type   r	and then the character which should be there.

  4. Repeat steps 2 and 3 until the first line is equal to the second one.

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Now move on to Lesson 3.3.

NOTE: Remember that you should be learning by doing, not memorization.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 3.3: THE CHANGE OPERATOR


	   ** To change until the end of a word, type  ce . **

  1. Move the cursor to the first line below marked --->.

  2. Place the cursor on the  u  in  lubw.

  3. Type  ce  and the correct word (in this case, type  ine ).

  4. Press <ESC> and move to the next character that needs to be changed.

  5. Repeat steps 3 and 4 until the first sentence is the same as the second.

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

Notice that  ce  deletes the word and places you in Insert mode.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 3.4: MORE CHANGES USING c


     ** The change operator is used with the same motions as delete. **

  1. The change operator works in the same way as delete.  The format is:

         c    [number]   motion

  2. The motions are the same, such as   w (word) and  $ (end of line).

  3. Move to the first line below marked --->.

  4. Move the cursor to the first error.

  5. Type  c$  and type the rest of the line like the second and press <ESC>.

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.

NOTE:  You can use the Backspace key to correct mistakes while typing.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 3 SUMMARY


  1. To put back text that has just been deleted, type   p .  This puts the
     deleted text AFTER the cursor (if a line was deleted it will go on the
     line below the cursor).

  2. To replace the character under the cursor, type   r   and then the
     character you want to have there.

  3. The change operator allows you to change from the cursor to where the
     motion takes you.  eg. Type  ce  to change from the cursor to the end of
     the word,  c$  to change to the end of a line.

  4. The format for change is:

	 c   [number]   motion

Now go on to the next lesson.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lesson 4.1: CURSOR LOCATION AND FILE STATUS

  ** Type CTRL-G to show your location in the file and the file status.
     Type  G  to move to a line in the file. **

  NOTE: Read this entire lesson before executing any of the steps!!

  1. Hold down the Ctrl key and press  g .  We call this CTRL-G.
     A message will appear at the bottom of the page with the filename and the
     position in the file.  Remember the line number for Step 3.

NOTE:  You may see the cursor position in the lower right corner of the screen
       This happens when the 'ruler' option is set (see  :help 'ruler'  )

  2. Press  G  to move you to the bottom of the file.
     Type  gg  to move you to the start of the file.

  3. Type the number of the line you were on and then  G .  This will
     return you to the line you were on when you first pressed CTRL-G.

  4. If you feel confident to do this, execute steps 1 through 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 4.2: THE SEARCH COMMAND


     ** Type  /  followed by a phrase to search for the phrase. **

  1. In Normal mode type the  /  character.  Notice that it and the cursor
     appear at the bottom of the screen as with the  :	command.

  2. Now type 'errroor' <ENTER>.  This is the word you want to search for.

  3. To search for the same phrase again, simply type  n .
     To search for the same phrase in the opposite direction, type  N .

  4. To search for a phrase in the backward direction, use  ?  instead of  / .

  5. To go back to where you came from press  CTRL-O  (Keep Ctrl down while
     pressing the letter o).  Repeat to go back further.  CTRL-I goes forward.

--->  "errroor" is not the way to spell error;  errroor is an error.
NOTE: When the search reaches the end of the file it will continue at the
      start, unless the 'wrapscan' option has been reset.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lesson 4.3: MATCHING PARENTHESES SEARCH


	      ** Type  %  to find a matching ),], or } . **

  1. Place the cursor on any (, [, or { in the line below marked --->.

  2. Now type the  %  character.

  3. The cursor will move to the matching parenthesis or bracket.

  4. Type  %  to move the cursor to the other matching bracket.

  5. Move the cursor to another (,),[,],{ or } and see what  %  does.

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))


NOTE: This is very useful in debugging a program with unmatched parentheses!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 4.4: THE SUBSTITUTE COMMAND


	** Type  :s/old/new/g  to substitute 'new' for 'old'. **

  1. Move the cursor to the line below marked --->.

  2. Type  :s/thee/the <ENTER> .  Note that this command only changes the
     first occurrence of "thee" in the line.

  3. Now type  :s/thee/the/g .  Adding the  g  flag means to substitute
     globally in the line, change all occurrences of "thee" in the line.

---> thee best time to see thee flowers is in thee spring.

  4. To change every occurrence of a character string between two lines,
     type   :#,#s/old/new/g    where #,# are the line numbers of the range
                               of lines where the substitution is to be done.
     Type   :%s/old/new/g      to change every occurrence in the whole file.
     Type   :%s/old/new/gc     to find every occurrence in the whole file,
     			       with a prompt whether to substitute or not.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 4 SUMMARY


  1. CTRL-G  displays your location in the file and the file status.
             G  moves to the end of the file.
     number  G  moves to that line number.
            gg  moves to the first line.

  2. Typing  /	followed by a phrase searches FORWARD for the phrase.
     Typing  ?	followed by a phrase searches BACKWARD for the phrase.
     After a search type  n  to find the next occurrence in the same direction
     or  N  to search in the opposite direction.
     CTRL-O takes you back to older positions, CTRL-I to newer positions.

  3. Typing  %	while the cursor is on a (,),[,],{, or } goes to its match.

  4. To substitute new for the first old in a line type    :s/old/new
     To substitute new for all 'old's on a line type	   :s/old/new/g
     To substitute phrases between two line #'s type	   :#,#s/old/new/g
     To substitute all occurrences in the file type	   :%s/old/new/g
     To ask for confirmation each time add 'c'		   :%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lesson 5.1: HOW TO EXECUTE AN EXTERNAL COMMAND


   ** Type  :!	followed by an external command to execute that command. **

  1. Type the familiar command	:  to set the cursor at the bottom of the
     screen.  This allows you to enter a command-line command.

  2. Now type the  !  (exclamation point) character.  This allows you to
     execute any external shell command.

  3. As an example type   ls   following the ! and then hit <ENTER>.  This
     will show you a listing of your directory, just as if you were at the
     shell prompt.  Or use  :!dir  if ls doesn't work.

NOTE:  It is possible to execute any external command this way, also with
       arguments.

NOTE:  All  :  commands must be finished by hitting <ENTER>
       From here on we will not always mention it.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 5.2: MORE ON WRITING FILES


     ** To save the changes made to the text, type  :w FILENAME. **

  1. Type  :!dir  or  :!ls  to get a listing of your directory.
     You already know you must hit <ENTER> after this.

  2. Choose a filename that does not exist yet, such as TEST.

  3. Now type:	 :w TEST   (where TEST is the filename you chose.)

  4. This saves the whole file (the Vim Tutor) under the name TEST.
     To verify this, type    :!dir  or  :!ls   again to see your directory.

NOTE: If you were to exit Vim and start it again with  vim TEST , the file
      would be an exact copy of the tutor when you saved it.

  5. Now remove the file by typing (MS-DOS):    :!del TEST
				or (Unix):	:!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lesson 5.3: SELECTING TEXT TO WRITE


	** To save part of the file, type  v  motion  :w FILENAME **

  1. Move the cursor to this line.

  2. Press  v  and move the cursor to the fifth item below.  Notice that the
     text is highlighted.

  3. Press the  :  character.  At the bottom of the screen  :'<,'> will appear.

  4. Type  w TEST  , where TEST is a filename that does not exist yet.  Verify
     that you see  :'<,'>w TEST  before you press <ENTER>.

  5. Vim will write the selected lines to the file TEST.  Use  :!dir  or  :!ls
     to see it.  Do not remove it yet!  We will use it in the next lesson.

NOTE:  Pressing  v  starts Visual selection.  You can move the cursor around
       to make the selection bigger or smaller.  Then you can use an operator
       to do something with the text.  For example,  d  deletes the text.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lesson 5.4: RETRIEVING AND MERGING FILES


       ** To insert the contents of a file, type  :r FILENAME  **

  1. Place the cursor just above this line.

NOTE:  After executing Step 2 you will see text from Lesson 5.3.  Then move
       DOWN to see this lesson again.

  2. Now retrieve your TEST file using the command   :r TEST   where TEST is
     the name of the file you used.
     The file you retrieve is placed below the cursor line.

  3. To verify that a file was retrieved, cursor back and notice that there
     are now two copies of Lesson 5.3, the original and the file version.

NOTE:  You can also read the output of an external command.  For example,
       :r !ls  reads the output of the ls command and puts it below the
       cursor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 5 SUMMARY


  1.  :!command  executes an external command.

      Some useful examples are:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  shows a directory listing.
	  :!del FILENAME   :!rm FILENAME   -  removes file FILENAME.

  2.  :w FILENAME  writes the current Vim file to disk with name FILENAME.

  3.  v  motion  :w FILENAME  saves the Visually selected lines in file
      FILENAME.

  4.  :r FILENAME  retrieves disk file FILENAME and puts it below the
      cursor position.

  5.  :r !dir  reads the output of the dir command and puts it below the
      cursor position.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 6.1: THE OPEN COMMAND


 ** Type  o  to open a line below the cursor and place you in Insert mode. **

  1. Move the cursor to the line below marked --->.

  2. Type the lowercase letter  o  to open up a line BELOW the cursor and place
     you in Insert mode.

  3. Now type some text and press <ESC> to exit Insert mode.

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. To open up a line ABOVE the cursor, simply type a capital	O , rather
     than a lowercase  o.  Try this on the line below.

---> Open up a line above this by typing O while the cursor is on this line.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 6.2: THE APPEND COMMAND


	     ** Type  a  to insert text AFTER the cursor. **

  1. Move the cursor to the start of the line below marked --->.
  
  2. Press  e  until the cursor is on the end of  li .

  3. Type an  a  (lowercase) to append text AFTER the cursor.

  4. Complete the word like the line below it.  Press <ESC> to exit Insert
     mode.

  5. Use  e  to move to the next incomplete word and repeat steps 3 and 4.
  
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

NOTE:  a, i and A all go to the same Insert mode, the only difference is where
       the characters are inserted.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lesson 6.3: ANOTHER WAY TO REPLACE


      ** Type a capital  R  to replace more than one character. **

  1. Move the cursor to the first line below marked --->.  Move the cursor to
     the beginning of the first  xxx .

  2. Now press  R  and type the number below it in the second line, so that it
     replaces the xxx .

  3. Press <ESC> to leave Replace mode.  Notice that the rest of the line
     remains unmodified.

  4. Repeat the steps to replace the remaining xxx.

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

NOTE:  Replace mode is like Insert mode, but every typed character deletes an
       existing character.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 6.4: COPY AND PASTE TEXT


	  ** Use the  y  operator to copy text and  p  to paste it **

  1. Go to the line marked with ---> below and place the cursor after "a)".
  
  2. Start Visual mode with  v  and move the cursor to just before "first".
  
  3. Type  y  to yank (copy) the highlighted text.

  4. Move the cursor to the end of the next line:  j$

  5. Type  p  to put (paste) the text.  Then type:  a second <ESC> .

  6. Use Visual mode to select " item.", yank it with  y , move to the end of
     the next line with  j$  and put the text there with  p .

--->  a) this is the first item.
      b)

  NOTE: you can also use  y  as an operator;  yw  yanks one word.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lesson 6.5: SET OPTION


	  ** Set an option so a search or substitute ignores case **

  1. Search for 'ignore' by entering:   /ignore  <ENTER>
     Repeat several times by pressing  n .

  2. Set the 'ic' (Ignore case) option by entering:   :set ic

  3. Now search for 'ignore' again by pressing  n
     Notice that Ignore and IGNORE are now also found.

  4. Set the 'hlsearch' and 'incsearch' options:  :set hls is

  5. Now type the search command again and see what happens:  /ignore <ENTER>

  6. To disable ignoring case enter:  :set noic

NOTE:  To remove the highlighting of matches enter:   :nohlsearch 
NOTE:  If you want to ignore case for just one search command, use  \c
       in the phrase:  /ignore\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 6 SUMMARY

  1. Type  o  to open a line BELOW the cursor and start Insert mode.
     Type  O  to open a line ABOVE the cursor.

  2. Type  a  to insert text AFTER the cursor.
     Type  A  to insert text after the end of the line.

  3. The  e  command moves to the end of a word.

  4. The  y  operator yanks (copies) text,  p  puts (pastes) it.

  5. Typing a capital  R  enters Replace mode until  <ESC>  is pressed.

  6. Typing ":set xxx" sets the option "xxx".  Some options are:
  	'ic' 'ignorecase'	ignore upper/lower case when searching
	'is' 'incsearch'	show partial matches for a search phrase
	'hls' 'hlsearch'	highlight all matching phrases
     You can either use the long or the short option name.

  7. Prepend "no" to switch an option off:   :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 7.1: GETTING HELP


		      ** Use the on-line help system **

  Vim has a comprehensive on-line help system.  To get started, try one of
  these three:
	- press the <HELP> key (if you have one)
	- press the <F1> key (if you have one)
	- type   :help <ENTER>

  Read the text in the help window to find out how the help works.
  Type  CTRL-W CTRL-W   to jump from one window to another.
  Type    :q <ENTER>    to close the help window.

  You can find help on just about any subject, by giving an argument to the
  ":help" command.  Try these (don't forget pressing <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 7.2: CREATE A STARTUP SCRIPT


			  ** Enable Vim features **

  Vim has many more features than Vi, but most of them are disabled by
  default.  To start using more features you have to create a "vimrc" file.

  1. Start editing the "vimrc" file.  This depends on your system:
	:e ~/.vimrc		for Unix
	:e $VIM/_vimrc		for MS-Windows

  2. Now read the example "vimrc" file contents:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Write the file with:
	:w

  The next time you start Vim it will use syntax highlighting.
  You can add all your preferred settings to this "vimrc" file.
  For more information type  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     Lesson 7.3: COMPLETION


	      ** Command line completion with CTRL-D and <TAB> **

  1. Make sure Vim is not in compatible mode:  :set nocp

  2. Look what files exist in the directory:  :!ls   or  :!dir

  3. Type the start of a command:  :e

  4. Press  CTRL-D  and Vim will show a list of commands that start with "e".

  5. Press <TAB>  and Vim will complete the command name to ":edit".

  6. Now add a space and the start of an existing file name:  :edit FIL

  7. Press <TAB>.  Vim will complete the name (if it is unique).

NOTE:  Completion works for many commands.  Just try pressing CTRL-D and
       <TAB>.  It is especially useful for  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 7 SUMMARY


  1. Type  :help  or press <F1> or <Help>  to open a help window.

  2. Type  :help cmd  to find help on  cmd .

  3. Type  CTRL-W CTRL-W  to jump to another window

  4. Type  :q  to close the help window

  5. Create a vimrc startup script to keep your preferred settings.

  6. When typing a  :  command, press CTRL-D to see possible completions.
     Press <TAB> to use one completion.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  This concludes the Vim Tutor.  It was intended to give a brief overview of
  the Vim editor, just enough to allow you to use the editor fairly easily.
  It is far from complete as Vim has many many more commands.  Read the user
  manual next: ":help user-manual".

  For further reading and studying, this book is recommended:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
  The first book completely dedicated to Vim.  Especially useful for beginners.
  There are many examples and pictures.
  See http://iccf-holland.org/click5.html

  This book is older and more about Vi than Vim, but also recommended:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
  It is a good book to get to know almost anything you want to do with Vi.
  The sixth edition also includes information on Vim.

  This tutorial was written by Michael C. Pierce and Robert K. Ware,
  Colorado School of Mines using ideas supplied by Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Modified for Vim by Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z���9��vim80/tutor/tutor.runu�[���===============================================================================
=   Д о б р о   п о ж а л о в а т ь   в   у ч е б н и к   VIM  --  версия 1.7 =
===============================================================================

     Vim -- это очень мощный редактор, имеющий множество команд, слишком много
     для того, чтобы их все можно было описать в таком учебнике, как этот.
     Этот учебник призван объяснить достаточное число команд для того, чтобы
     вы могли с лёгкостью использовать Vim в качестве редактора общего
     назначения.

     Вам потребуется приблизительно 25-30 минут на освоение данного учебника в
     зависимости от того, сколько времени вы потратите на эксперименты.

     Внимание! Командами в уроках вы будете изменять этот текст. Создайте
     копию этого файла, чтобы попрактиковаться на ней (если вы запустили
     "vimtutor", то это уже копия).

     Важно помнить, что этот учебник предназначен для обучения в процессе
     использования. Это означает, что вы должны запускать команды для того,
     чтобы как следует их изучить. Если вы просто прочитаете этот текст, то
     не запомните команды!

     Теперь убедитесь в том, что клавиша CapsLock не включена, и нажмите
     клавишу  j  несколько раз, так, чтобы Урок 1.1 полностью поместился на
     экране.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 1.1:  ПЕРЕМЕЩЕНИЕ КУРСОРА


** Для перемещения курсора нажмите клавиши h,j,k,l так, как показано ниже. **
	     ^
	     k		Советы:	Клавиша h находится слева и перемещает влево.
       < h	 l >		Клавиша l находится справа и перемещает вправо.
	     j			Клавиша j похожа на стрелку `вниз'.
	     v
  1. Подвигайте курсор по экрану, пока не почувствуете себя уверенно.

  2. Надавите клавишу `вниз' (j) пока она не начнёт повторяться.
     Теперь вы знаете, как перейти к следующему уроку.

  3. Используя клавишу `вниз' перейдите к Уроку 1.2.

Замечание! Если вы пока не уверены в том, что набираете, нажмите <ESC> для
	перехода в обычный режим (Normal mode). После этого перенаберите
	требуемую команду.

Замечание! Обычные клавиши управления курсором (стрелки) также должны
	работать. Однако, клавиши hjkl позволят вам перемещаться
	значительно быстрее, как только вы научитесь ими пользоваться.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 1.2: ЗАВЕРШЕНИЕ РАБОТЫ С VIM


  !! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите
			       урок целиком !!

  1. Нажмите клавишу <ESC> (для того, чтобы удостовериться, что вы в обычном
     режиме (Normal mode)).

  2. Наберите:			:q! <ENTER>.
     (Это означает, что вы должны набрать три символа :q! и нажать клавишу
     ввод.) Это позволит вам выйти из редактора БЕЗ СОХРАНЕНИЯ любых сделанных
     изменений.

  3. Когда вы увидите приглашение командной оболочки, наберите команду,
     которая привела вас в этот учебник. Это может быть:
				vimtutor <ENTER>

  4. Если вы уверены в том, что запомнили эти шаги, выполните шаги от 1 до 3
     чтобы выйти снова запустить редактор.

Замечание!  :q! <ENTER>  отбрасывает любые сделанные вами изменения. Через
	несколько уроков вы узнаете как сохранять изменения в файл.

  5. Переместите курсор вниз к Уроку 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Урок 1.3: РЕДАКТИРОВАНИЕ ТЕКСТА -- УДАЛЕНИЕ


** Находясь в обычном режиме нажмите  x  для удаления символа под курсором. **

  1. Переместите курсор к строке ниже, помеченной --->.

  2. Для исправления ошибок, переместите курсор, пока он не окажется над
     удаляемым символом.

  3. Нажмите клавишу  x  для удаления требуемого символа.

  4. Повторите шаги со 2 по 4 пока строка не будет исправлена.

---> От тттопота копытт пппыль ппо ппполю леттитт.

  5. Теперь, когда строка откорректирована, переходите к Уроку 1.4.

Замечание! В ходе освоения этого учебника не пытайтесь запоминать, учите
	в процессе использования.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Урок 1.4: РЕДАКТИРОВАНИЕ ТЕКСТА -- ВСТАВКА


       ** Находясь в обычном режиме, нажмите  i  для вставки текста. **

  1. Переместите курсор к первой строке ниже, помеченной --->.

  2. Для того, чтобы сделать первую строку идентичной второй, поместите
     курсор на символ ПЕРЕД которым следует вставить текст.

  3. Нажмите  i  и наберите требуемые добавления.

  4. После исправления всех ошибок нажмите <ESC> для возврата в обычный режим.
     Повторите шаги со 2 по 4, пока фраза не будет исправлена полностью.

---> Часть текста в строке бесследно .
---> Часть текста в этой строке бесследно пропала.

  5. Когда освоите вставку текста, переходите к Уроку 1.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Урок 1.5: РЕДАКТИРОВАНИЕ ТЕКСТА -- ДОБАВЛЕНИЕ


     ** Находясь в обычном режиме, нажмите  A  для добавления текста. **

  1. Переместите курсор к первой строке ниже, помеченной --->.
     Не имеет значения на каком символе расположен курсор на этой строке.

  2. Нажмите  A  и наберите требуемые добавления.

  3. После добавления требуемого текста нажмите <ESC> для возврата в обычный
     режим.

  4. Переместите курсор на следующую строку, помеченную ---> и повторите шаги
     со 2 по 4 для исправления этой строки.

---> Часть текста в этой строке бессле
     Часть текста в этой строке бесследно пропала.
---> Здесь также не достаёт час
     Здесь также не достаёт части текста.

  5. Когда освоите добавление текста, переходите к Уроку 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 1.6: РЕДАКТИРОВАНИЕ ФАЙЛА


	** Используйте  :wq  для сохранения файла и выхода из Vim. **

  !! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите
			       урок целиком !!

  1. Выйдите из Vim, как вы это узнали в Уроке 1.2:  :q!
     Или, если у вас есть доступ к другому терминалу, можете сделать следующее
     в нём.

  2. По приглашению командной оболочки введите следующую команду:
			      vim tutor <ENTER>
     `vim' -- команда для запуска редактора Vim, а `tutor' -- имя файла для
     редактирования. Используете имя файла, который можно изменять.

  3. Вставляйте и удаляйте текст, как вы научились в предыдущих уроках.

  4. Сохраните файл с изменениями и выйдите из Vim выполнив:  :wq <ENTER>

  5. Если вы вышли из vimtutor на шаге 1, перезапустите vimtutor и переходите
     к следующему Резюме.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 1


  1. Курсор перемещается либо клавишами со стрелками, либо клавишами hjkl.
	h (влево)	j (вниз)	k (вверх)	l (вправо)

  2. Для запуска Vim (из приглашения командной оболочки) наберите:
			    vim ИМЯ_ФАЙЛА <ENTER>

  3. Для завершения работы с Vim наберите:
	<ESC>   :q!   <ENTER>  чтобы отказаться от сохранения изменений.
     Или наберите:
	<ESC>   :wq   <ENTER>  чтобы сохранить изменения.

  4. Для удаления символа под курсором в обычном режиме, нажмите:  x

  5. Чтобы вставить текст перед курсором в обычном режиме, наберите:
	 i   вводите вставляемый текст   <ESC>
     Чтобы добавить текст после курсора:
	 a   вводите добавляемый текст   <ESC>

Замечание! Нажатие <ESC> переместит вас в обычный режим (Normal mode) либо
	прервёт нежелательную и частично завершённую команду.

Теперь переходите к Уроку 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 2.1: КОМАНДЫ УДАЛЕНИЯ


       ** Наберите  dw  для удаления участка текста до конца слова. **

  1. Нажмите <ESC>, чтобы перейти в обычный режим.

  2. Переместите курсор вниз, к строке помеченной --->.

  3. Переместите курсор в начало слова, которое следует удалить.

  4. Наберите  dw  для удаления этого слова.

Замечание! Во время набора буквы dw появятся справа в самой нижней строке
	экрана. Если вы что-то наберёте неправильно, нажмите <ESC> и начните
	сначала.

---> Несколько слов рафинад в этом предложении автокран излишни.

  5. Повторите шаги 3 и 4, пока не исправите все ошибки и переходите к
     Уроку 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Урок 2.2: ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ УДАЛЕНИЯ


	   ** Наберите  d$  для удаления текста до конца строки. **

  1. Нажмите <ESC>, чтобы перейти в обычный режим.

  2. Переместите курсор вниз, к строке помеченной --->.

  3. Переместите курсор к концу правильной строки (ПОСЛЕ первой точки).

  4. Наберите  d$  для удаления остатка строки.

---> Кто-то набрал окончание этой строки дважды. окончание этой строки дважды.


  5. Чтобы лучше разобраться в том, как это происходит, переходите к Уроку 2.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Урок 2.3: КОМАНДЫ И ОБЪЕКТЫ


  Многие команды, изменяющие текст, состоят из оператора и объекта. Формат
  команды удаления с оператором  d  следующий:

  	d   объект

  Здесь:
    d      - оператор удаления.
    объект - над чем должна быть выполнена команда (перечислено ниже).

  Краткий список объектов:
    w - от курсора до конца слова, включая последующий пробел.
    e - от курсора до конца слова, НЕ включая последующий пробел.
    $ - от курсора до конца строки.
    ^ - от курсора до начала строки.

Замечание! Простое нажатие на символ объекта в обычном режиме (Normal mode)
	без предварительного оператора переместит курсор так, как указано
	в списке объектов.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Урок 2.4: ИСПОЛЬЗОВАНИЕ СЧЁТЧИКА ДЛЯ ПЕРЕМЕЩЕНИЯ


      ** Ввод числа перед оператором перемещения приведёт к его повторению
			  заданное количество раз. **

  1. Переместите курсор к началу строки отмеченной ---> ниже.

  2. Наберите  2w  для перемещения курсора вперёд к началу второго слова.

  3. Наберите  3e  для перемещения курсора вперёд к концу третьего слова.

  4. Наберите  0  (нуль) для перемещения к началу строки.

  5. Повторите шаги 2 и 3 с различными числами.

---> Обычная строка из слов для вашего перемещения по ней.

  6. Переходите к Уроку 2.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Урок 2.5: ИСПОЛЬЗОВАНИЕ СЧЁТЧИКА ДЛЯ УДАЛЕНИЯ


	    ** Ввод числа перед оператором приведёт к его повторению
			  заданное количество раз. **

  Добавьте число перед перед объектом в комбинацию оператора удаления и
  перемещения указанную выше для удаления указанного количества объектов:
	 d   число   объект

  1. Переместите курсор к первому слову из прописных букв в отмеченной --->
     строке ниже.

  2. Наберите  d2w  для удаления двух слов из прописных букв.

  3. Повторите шаги 1 и 2 с другими числами для удаления последовательных слов
     из прописных букв одной командой.

---> эта АБВ ГД строка ЕЖЗИ КЛ МНО из слов П РС ТУФ очищена.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 2.6: ОПЕРАЦИИ СО СТРОКАМИ


		** Наберите   dd   для удаления целой строки. **

  В связи с частой необходимостью удаления целой строки, создатели Vi решили
  для упрощения сделать возможным удаление строки набором двух d.

  1. Переместите курсор вниз, ко второй строке фразы.

  2. Наберите dd для удаления строки.

  3. Теперь переместитесь к четвёртой строке.

  4. Наберите 2dd для удаления двух строк.

--->  1)  Летом я хожу на стадион,
--->  2)  О, как внезапно кончился диван!
--->  3)  Я болею за ``Зенит'', ``Зенит'' --- чемпион!
--->  4)  Печально я гляжу на наше поколение!
--->  5)  Его грядущее иль пусто иль темно...
--->  6)  Я сижу на скамейке в ложе `Б'
--->  7)  И играю на большой жестяной трубе.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 2.7: КОМАНДА `ОТМЕНА'


  ** Нажмите  u  для отмены результата работы предыдущей команды, U для отмены
			 исправлений во всей строке. **

  1. Переместите курсор вниз, к строке помеченной --->, и установите его на
     первую ошибку.

  2. Нажмите  x  для удаления первого неправильного символа.

  3. Теперь нажмите  u  для отмены (отката) последней выполненной команды.

  4. Исправьте все ошибки в строке, используя команду  x .

  5. Теперь нажмите заглавную  U  для того, чтобы вернуть всю строку
     в исходное состояние.

  6. Нажмите  u  несколько раз для отмены команды  U  и предыдущих команд.

  7. Нажмите теперь CTRL-R (т.е. удерживайте клавишу CTRL нажатой в момент
     нажатия клавиши R) несколько раз для возврата команд (откат отката).

---> Испрравьте оошибки в этойй строке и вернитте их сс помощьью `отмены'.

  8. Это были очень полезные команды. Далее переходите к Резюме Урока 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 2


  1. Для удаления текста от курсора до конца слова наберите:	dw

  2. Для удаления текста от курсора до конца строки наберите:	d$

  3. Для удаления всей строки наберите:		dd

  4. Для повтора перемещения введите количество перед командой:	2w 

  5. Формат команды в обычном режиме имеет вид:

       [число]   команда   объект     ИЛИ     команда	[число]   объект
     где:
       [число] - сколько раз повторить выполнение команды, опционально
       команда - что выполнить, например d для удаления
       объект  - на что должна воздействовать команда, например w (слово),
		$ (до конца строки), и т.д.

  6. Для перехода к началу строки используйте нуль:  0

  7. Для отмены (отката) предшествующих действий наберите:  u  (строчная u)
     Для отмены (отката) всех изменений в строке наберите:  U  (прописная U)
     Для отмены отката наберите:  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 3.1: КОМАНДА ВСТАВКИ


   ** Наберите  p  для вставки последнего удалённого текста после курсора. **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Наберите  dd  для удаления строки и её сохранения в буфере Vim'а.

  3. Переместите курсор к строке НАД тем местом, куда следует вставить
     удалённую строку.

  4. Находясь в обычном режиме наберите  p  для вставки строки ниже курсора.

  5. Повторите шаги со 2 по 4, пока не расставите все строки в нужном порядке.

---> г) И лучше выдумать не мог.
---> б) Когда не в шутку занемог,
---> в) Он уважать себя заставил
---> а) Мой дядя самых честных правил

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Урок 3.2: КОМАНДА ЗАМЕНЫ


	  ** Наберите  r  и символ, заменяющий символ под курсором. **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Установите курсор так, чтобы он находился над первой ошибкой.

  3. Наберите  r  и затем символ, исправляющий ошибку.

  4. Повторите шаги 2 и 3, пока первая строка не будет исправлена как вторая.

--->  В момегт набтра этой чтроки кое0кто с трудом попвдал по клваишам!
--->  В момент набора этой строки кое-кто с трудом попадал по клавишам!

  5. Теперь переходите к Уроку 3.3.

Замечание! Помните, что вы должны учиться в процессе работы, а не просто
	запоминая.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Урок 3.3: КОМАНДА ИЗМЕНЕНИЯ


	    ** Для изменения конечной части слова наберите  ce . **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Расположите курсор над буквой `o' в слове `сола'.

  3. Наберите  ce  и исправьте слово (в данном случае, наберите `лов').

  4. Нажмите <ESC> и переходите к следующей ошибке (к первому символу, который
     надо изменить).

  5. Повторите шаги 3 и 4 пока первое предложение не станет идентичным второму.

---> Несколько сола в эьгц строке тпгшцбь редалзкуюиесвх.
---> Несколько слов в этой строке требуют редактирования.

   Обратите внимание, что  ce  не только удаляет слово, но и переводит вас в
   режим вставки.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Урок 3.4: ПРОДОЛЖАЕМ ИЗМЕНЯТЬ С КОМАНДОЙ  c


 ** Команда замены используется с теми же объектами, что и команда удаления. **

  1. Команда изменения применяется таким же образом, как и команда удаления.
     Её формат таков:

       [число]   c   объект           ИЛИ           c   [число]   объект

  2. Объекты также совпадают: w (слово), $ (конец строки) и т.п.

  3. Переместите курсор вниз, к строке помеченной --->.

  4. Перейдите к первой ошибке.

  5. Наберите  c$  и отредактируйте первую строку так, чтобы она совпадала со
     второй, после чего нажмите <ESC>.

---> Конец этой строки нуждается в помощи, чтобы стать похожим на второй.
---> Конец этой строки нуждается в помощи команды  c$ .

Замечание! Клавиша Backspace может использоваться для исправления при наборе.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 3


  1. Для вставки текста, который только что был удалён, наберите  p . Эта
     команда вставит удалённый текст ПОСЛЕ курсора (если была удалена строка,
     то она будет помещена в строке под курсором).

  2. Для замены символа под курсором наберите  r  и затем заменяющий символ.

  3. Команда изменения позволяет вам изменить указанный объект от курсора до
     окончания перемещения. Например, наберите  ce  для замены от курсора до
     конца слова,  c$  для изменения до конца строки.

  4. Формат команды изменения таков:

	 [число]   c   объект         ИЛИ         c   [число]   объект

Теперь переходите к следующему уроку.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Урок 4.1: ИНФОРМАЦИЯ О ФАЙЛЕ И РАСПОЛОЖЕНИИ В НЕМ


       ** Наберите CTRL-g чтобы увидеть ваше месторасположение в файле и
     информацию о файле. Наберите  G  (SHIFT-G) для перемещения к заданной
			       строке в файле. **

Замечание! Прочитайте весь урок прежде чем выполнять любые команды!

  1. Удерживая клавишу Ctrl нажмите  g . Внизу экрана появится строка статуса
     с именем файла и номером строки, в которой вы находитесь. Запомните номер
     строки, он потребуется на Шаге 3.

  2. Удерживая клавишу Shift нажмите  g  для перемещения к концу файла.

  3. Наберите номер строки, в которой вы находились и затем Shift-G. Это
     вернёт вас к строке, в которой вы были, когда в первый раз нажали Ctrl-g.

  4. Если вы запомнили все вышесказанное, выполните шаги с 1 по 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Урок 4.2: КОМАНДА ПОИСКА


	       ** Наберите  /  и затем введите искомую фразу. **

  1. В обычном режиме (Normal mode) наберите символ  / . Обратите внимание,
     что он вместе с курсором появится внизу экрана, как это происходит с
     командой  : .

  2. Теперь наберите 'ошшшибка' <ENTER>. Это то слово, которое вы будете
     искать.

  3. Для того, чтобы повторить поиск, просто нажмите  n .
     Для поиска этой же фразы в обратном направлении, нажмите  Shift-N .

  4. Если вы желаете сразу искать в обратном направлении, используйте
     команду  ?  вместо  / .

  5. Для того, чтобы вернуться туда, откуда вы начали поиск нажмите  Ctrl-O.
     (Удерживая нажатой клавишу Ctrl нажмите  o ). Повторите несколько раз
     для дальнейшего перехода. Для перехода вперёд используйте  Ctrl-I .

---> "ошшшибка" это не способ написания слова `ошибка';  ошшшибка это ошибка.

Замечание! Если при поиске будет достигнут конц файла, то поиск будет продолжен
	с начала.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 4.3: ПОИСК ПАРНЫХ СКОБОК


		 ** Наберите  %  для поиска парных ), ] или } . **

  1. Поместите курсор над любой из (, [ или { в строке ниже, помеченной --->.

  2. Теперь наберите символ  % .

  3. Курсор должен перескочить на парную скобку.

  4. Наберите  %  для возврата курсора назад к первой скобке.

---> Это ( строка, содержащая такие (, такие [ ] и такие { } скобки. ))

Замечание! Это очень удобно при отладке программ с пропущенными скобками!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 4.4: СПОСОБ ИСПРАВЛЕНИЯ ОШИБОК


	 ** Наберите  :s/было/стало/g  для замены 'было' на 'стало'. **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Наберите  :s/уводю/увожу <ENTER> . Обратите внимание на то, что эта
     команда заменит только первое найденное вхождение в строке.

  3. Теперь наберите  :s/уводю/увожу/g , добавленная в конце g означает
     подстановку глобально во всей строке. Это заменит все найденные в строке
     вхождения.

---> Я уводю к отверженным селеньям, я уводю сквозь вековечный стон, я уводю к
     забытым поколеньям.

  4. Для замены всех вхождений последовательности символов между двумя
     строками,
     наберите  :#,#s/было/стало/g  где #,# -- номера этих строк.
     Наберите  :%s/было/стало/g    для замены всех вхождений во всем файле.
     Наберите  :%s/было/стало/gc   для поиска всех вхождений во всем файле и
                                   запроса подтверждения замены.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 4


  1. Ctrl-g  показывает ваше положение в файле и информацию о нем.
     Shift-G  перемещает вас в конец файла. Номер, за которым следует Shift-G
     позволяет перейти к строке с этим номером.
     gg  перемещает вас к первой строке файла.

  2. Нажатие  /  и затем ввод строки позволяет произвести поиск этой строки
     ВПЕРЁД по тексту.
     Нажатие  ?  и затем ввод строки позволяет произвести поиск этой строки
     НАЗАД по тексту.
     После поиска наберите  n  для перехода к следующему вхождению искомой
     строки в том же направлении или Shift-N для перехода в противоположном
     направлении.

  3. Нажатие  % , когда курсор находится на (,),[,],{, или } позволяет найти
     парную скобку.

  4. Для подстановки `стало' вместо первого `было' в строке, наберите
	:s/old/new
     Для подстановки `стало' вместо всех `было' в строке, наберите
	:s/old/new/g
     Для замены в интервале между двумя строками, наберите
	:#,#s/old/new/g
     Для замены всех вхождений `было' на `стало' в файле, наберите
	:%s/old/new/g
     Чтобы редактор каждый раз запрашивал подтверждение, добавьте 'c'
	:%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Урок 5.1: КАК ВЫПОЛНИТЬ ВНЕШНЮЮ КОМАНДУ


    ** Наберите  :!  и затем внешнюю команду, которую следует выполнить. **

  1. Наберите уже знакомую вам команду  :  для установки курсора в командную
     строку редактора. Это позволит вам ввести команду.

  2. Теперь наберите символ  !  (восклицательный знак). Это позволит выполнить
     внешнюю команду, используя командную оболочку.

  3. Для примера наберите  ls  после  !  и нажмите <ENTER>. Команда выведет
     список файлов в текущем каталоге, точно также, как если бы вы ввели эту
     команду в приглашении оболочки. Или попробуйте  :!dir , если команда ls
     не сработала.

Замечание! Таким способом можно выполнить любую внешнюю команду с указанием
	аргументов.

Замечание! Все команды, начинающиеся с  : , должны завершаться нажатием
	<ENTER>. Далее на это не всегда будет обращаться особое внимание.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 5.2: КАК ЗАПИСАТЬ ФАЙЛ


	      ** Для сохранения изменений, произведённых в файле,
			   наберите  :w ИМЯ_ФАЙЛА. **

  1. Наберите  :!dir  или  :!ls  для получения списка файлов в текущем
     каталоге.  Как вам уже известно, после ввода команды надо нажать <ENTER>.

  2. Придумайте название для файла, которое ещё не существует, например TEST.

  3. Теперь наберите  :w TEST  (где TEST -- это имя файла, придуманное вами.)

  4. Команда сохранит весь этот файл (Учебник по Vim) под именем TEST. Чтобы
     удостовериться в этом, снова наберите  :!dir  или :!ls  и просмотрите
     каталог.

Замечание! Если вы выйдете из Vim и затем запустите его снова с файлом TEST
	(т.е. выполните  vim TEST ), этот файл будет точной копией учебника
	в тот момент, когда вы его сохранили.

  5. Теперь удалите этот файл, набрав для MS-DOS    :!del TEST
                                      для Unix      :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Урок 5.3: ВЫБОРОЧНОЕ СОХРАНЕНИЕ


	   ** Для сохранения части файла, наберите  v  выберите часть
			  и сохраните её  :w ИМЯ_ФАЙЛА **

  1. Переместите курсор к этой строке.

  2. Нажмите  v  и переместите курсор ниже к пятому шагу. Обратите внимание,
     что текст подсвечен.

  3. Нажмите  :  и внизу экрана появится  :'<,'> .

  4. Введите  w TEST  (где TEST -- имя файла, который ещё не существует).
     До нажатия <ENTER>, проверьте что внизу экрана написано  :'<,'>w TEST.

  5. Vim запишет выбранные строки в файл TEST. Как и прежде, убедитесь в
     наличии этого файла командой  :!dir  или  :!ls . НЕ УДАЛЯЙТЕ этот файл, он
     потребуется в следующем уроке.

Замечание! Нажатие  v  начинает визуальный выбор. Вы можете перемещать курсор
	для изменения выбора. Затем для выбранного фрагмента можно выполнить
	какой-то оператор, например, удалить нажатием  d.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 5.4: ЧТЕНИЕ И ОБЪЕДИНЕНИЕ ФАЙЛОВ


	** Для вставки содержимого из файла, наберите  :r ИМЯ_ФАЙЛА  **

  1. Установите курсор над этой строкой.

Замечание! После выполнения Шага 2 вы увидите текст из Урока 5.3. Переместитесь
	ВНИЗ по тексту до этого урока.

  2. Теперь прочитайте ваш файл TEST, используя команду  :r TEST , где TEST --
     это имя файла.

  3. Для проверки что содержимое файла было вставлено, переместитесь по тексту
     и удостоверьтесь, что теперь в нём две копии Урока 5.3: исходная и из
     файла TEST.

Замечание! Вставить можно и вывод внешней команды. Например,  :r !ls  прочитает
	вывод команды ls и вставит его ниже курсора.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 5


  1.  :!команда  исполняет внешнюю команду.

      Некоторые полезные примеры:
      	(MS-DOS)	(Unix)
	 :!dir		 :!ls		-- вывести список файлов в каталоге.
	 :!del ИМЯ	 :!rm ИМЯ	-- удалить файл по имени.

  2.  :w ИМЯ_ФАЙЛА  записывает текущий редактируемый в Vim файл на диск под
      указанным именем.

  3.  v  перемещение  :w ИМЯ_ФАЙЛА  сохраняет визуально выбранные строки в файл
      с указанным именем.

  4.  :r ИМЯ_ФАЙЛА  считывает с диска файл с указанным именем и помещает его
      ниже курсора.

  5.  :r !dir  читает вывод команды dir и помещает его ниже курсора.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 6.1: КОМАНДА СОЗДАНИЯ


   ** Наберите  o  чтобы создать пустую строку под курсором и перейти в режим
			    вставки (Insert mode) **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Наберите  o  (в нижнем регистре) для того, чтобы создать пустую строку
     НИЖЕ курсора и перейти в режим вставки (Insert mode).

  3. Теперь наберите какой-нибудь текст и нажмите <ESC> для выхода из режима
     вставки.

---> После нажатия  o  курсор перейдёт на новую пустую строку в режиме вставки.

  4. Для создания строки ВЫШЕ курсора, просто наберите заглавную  O , вместо
     строчной  o . Попробуйте проделать это с нижеследующей строкой.

---> Создайте новую строку над этой, поместив на неё курсор и нажав Shift-O.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 6.2: КОМАНДА ДОБАВЛЕНИЯ


	    ** Наберите  a , чтобы вставить текст ПОСЛЕ курсора. **

  1. Переместите курсор вниз, в начало первой строки помеченной --->.

  2. Набирайте  e  пока курсор не переместиться на конец  cтро .

  3. Наберите  a  (в нижнем регистре) для добавления текста ПОСЛЕ символа,
     находящегося под курсором. (Заглавная A позволяет добавить в конец
     строки.)

  4. Допишите слово так, как показано в строке ниже. Нажмите <ESC> для выхода
     из режима вставки (Insert mode).

  5. Используйте  e  для перехода к концу следующего незавершённого слова и
     повторите шаги 3 и 4.

---> Эта стро позволит вам попрактиков в добавле текста.
---> Эта строчка позволит вам попрактиковаться в добавлении текста. 

Замечание!  a , i  и  A  переводят в один и тот же режим вставки, различие
	только в том, где вставляются символы.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 6.3: ЕЩЁ ОДИН СПОСОБ ЗАМЕНЫ


       ** Наберите заглавную  R  для замены более чем одного символа. **

  1. Переместите курсор вниз, к первой строке помеченной --->, и в начало
     первого слова  xxx.

  2. Теперь нажмите  R  и введите число указанный ниже во второй строке чтобы
     заменить  xxx.

  3. Нажмите <ESC> для выхода из режима замены. Заметьте что остаток строки
     не был изменён.

  4. Повторите эти шаги для замены оставшихся  xxx.

---> Добавление 123 к xxx даёт xxx.
---> Добавление 123 к 456 даёт 579.

Замечание! Режим замены похож на режим вставки, но каждый введённый символ
	удаляет существующий.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 6.4: КОПИРОВАНИЕ И ВСТАВКА ТЕКСТА


	** Используйте команду  y  для копирования и  p  для вставки **

  1. Переместите курсор вниз, к первой строке помеченной --->, и после `а)'.

  2. Переключитесь в режим визуального выбора нажав  v  и переместите курсор
     перед словом `первый'.

  3. Введите  y  для копирования подсвеченного текста.

  4. Переместите курсор в конец следующей строки комбинацией  j$ .

  5. Нажмите  p  для вставки текста. Затем введите `второй' и нажмите <ESC>. 

--->  а) Этот элемент первый.
      б)

Замечание! Также возможно использовать  yw  (команду  y  с оператором  w ) для
	копирования одного слова.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 6.5: УСТАНОВКА ПАРАМЕТРОВ


   ** Установка параметра для игнорирования регистра при поиске или замене **

  1. Найдите слово `игнорировать', набрав:  /игнорировать  <ENTER>.
     Повторите поиск несколько раз, нажимая клавишу  n .

  2. Установите параметр `ic' (игнорировать регистр), набрав:  :set ic

  3. Теперь снова несколько раз сделайте поиск слова `игнорировать',
     нажимая:  n
     Заметьте, что теперь находятся `Игнорировать' и `ИГНОРИРОВАТЬ'.

  4. Установите параметры `hlsearch' и `incsearch':  :set hls is

  5. Теперь опять введите команду поиска и посмотрите, что получится:
			     /игнорировать <ENTER>

  6. Для возвращения учёта регистра при поиске наберите:  :set noic

Замечание! Для отключения подсветки совпадений наберите:  :nohlsearch

Замечание! Если вы хотите игнорировать регистр только для одного поиска,
	используйте  \с  в команде поиска:  /игнорировать\c  <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 6


  1. Нажмите  o  для создания строки НИЖЕ курсора и перехода в режим вставки.
     Нажмите  O  для создания строки ВЫШЕ курсора.

  2. Нажмите  a  для вставки текста ПОСЛЕ курсора.
     Нажмите  A  для вставки текста в конец строки.

  3. Команда  e  подводит курсор к концу слова.

  4. Команда  y  копирует текст,  p  -- вставляет скопированный текст.

  5. Нажатие заглавной  R  переводит в режим замены до нажатия клавиши  <ESC> .

  6. Наберите `:set xxx' для включения параметра `xxx', некоторые параметры:

	`ic'	`ignorecase'	игнорирование регистра при поиске
	`is'	`incsearch'	отображение частичных совпадений при поиске
	`hls'	`hlsearch'	подсветка всех совпадений при поиске

  7. Добавьте `no' перед параметром для его отключения:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Урок 7.1: ВСТРОЕННАЯ СПРАВКА


		** Используйте встроенную справочную систему **

  Vim обладает мощной встроенной справочной системой. Для начала попробуйте
  один из трёх вариантов:
	- нажмите клавишу <HELP> (если таковая имеется на клавиатуре)
	- нажмите клавишу <F1> (если таковая имеется на клавиатуре)
	- наберите   :help <ENTER>

  Прочитайте текст в окне справки для получения представления о том как
  работает справка.
  Нажмите  CTRL-W CTRL-W  для перехода от окна к окну.
  Наберите   :q <ENTER>   чтобы закрыть окно справки.

  Вы можете найти справку для любого понятия или команды, задав соответствующий
  аргумент команде `:help'. Попробуйте следующее (не забудьте нажать <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 7.2: СОЗДАНИЕ СТАРТОВОГО СЦЕНАРИЯ


			 ** Включим возможности Vim **

  Vim имеет намного больше возможностей, чем Vi, но большинство из них по
  умолчанию выключены. Для использования больших возможностей вам следует
  создать файл `vimrc'.

  1. Отредактируйте новый файл `vimrc'. Его расположение зависит от
     используемой системы:
	:e ~/.vimrc		для Unix
	:e $VIM/_vimrc		для MS-Windows

  2. Теперь прочитайте пример файла `vimrc':
	:r $VIMRUNTIME/vimrc_example.vim

  3. Запишите созданный вами новый файл `vimrc':
	:w

  Теперь при следующем запуске Vim будет включена подсветка синтаксиса. Все
  настройки, предпочитаемые вами, могут быть добавлены в файл `vimrc'.
  Для дальнейшей информации наберите  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Урок 7.3: ДОПОЛНЕНИЕ


	 ** Командную строку можно дополнить нажав  CTRL-D  и  <TAB> **

  1. Удостоверьтесь, что Vim не в режиме совместимости:  :set nocp

  2. Посмотрите какие файлы есть в каталоге:  :!ls  или  :!dir

  3. Наберите начало команды:  :e

  4. Нажмите  CTRL-D  и Vim отобразит список команд начинающихся на `e'.

  5. Нажмите  <TAB>  и Vim дополнит название команды до `:edit'.

  6. Теперь добавьте пробел и начало существующего имени файла:  :edit ФАЙ

  7. Нажмите  <TAB>  и Vim дополнит имя файла, если оно уникальное.

Замечание! Дополнение работает для многих команд. Попробуйте нажать  CTRL-D  и
	<TAB>. Это особенно полезно для команды  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 7


  1. Наберите  :help  или нажмите <F1>, или <Help> для открытия окна справки.

  2. Наберите  :help cmd  для поиска справки по команде.

  3. Нажмите  CTRL-W CTRL-W  для перехода к другому окну.

  4. Наберите  :q  для закрытия окна справки (если оно активно).

  5. Для хранения ваших настроек создайте стартовый сценарий `vimrc'.

  6. При наборе  :  команды, нажмите CTRL-D для отображения возможных
     дополнений. Нажмите <TAB> для использования дополнения.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  На этом завершается Учебник Vim. Он был предназначен дать общее представление
  о редакторе Vim, достаточное для того, чтобы с лёгкостью использовать его.
  Учебник далёк от полноты, поскольку Vim имеет очень много команд. Прочитайте
  теперь руководство пользователя: `:help user-manual'.

  Для дальнейшего чтения рекомендуется книга:
	Vim - Vi Improved, автор: Steve Oualline, издатель: New Riders

  Эта книга полностью посвящена Vim. Особенно полезна она будет новичкам.
  Содержит множество примеров и иллюстраций.
  См. http://iccf-holland.org/click5.html

  Следующая книга более почтенного возраста и посвящена больше Vi, чем Vim,
  однако также рекомендуется:
	Learning the Vi Editor, автор: Linda Lamb,
				издатель: O'Reilly & Associates Inc.

  Это хорошая книга, чтобы узнать всё, что только можно сделать в Vi. Шестое
  издание также включает информацию о Vim.

  Этот учебник написал Michael C. Pierce и Robert K. Ware, Colorado School of
  Mines с использованием идей, которые предложил Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu.

  Доработано для Vim Брамом Моленаром (Bram Moolenaar).

  Перевод:
  	Андрей Киселев <a_kissel@eudoramail.com>, 2002.
	Сергей Алёшин <alyoshin.s@gmail.com>, 2014.

  Translators:
  	Andrey Kiselev <a_kissel@eudoramail.com>, 2002.
  	Sergey Alyoshin <alyoshin.s@gmail.com>, 2014.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z@pF�}�}�vim80/tutor/tutor.pt.utf-8nu�[���===============================================================================
=    B e m - v i n d o  ao  t u t o r i a l  do  V I M  -  Versão 1.8 pt_BR   =
===============================================================================

     Vim é um poderoso editor que possui muitos comandos, tantos que seria
     impossível ensiná-los num tutorial como este, que é concebido para
     apresentar os comandos suficientes para permiti-lo usar facilmente o
     Vim como um editor de textos genérico.

     O tempo necessário para completar o tutorial é de cerca de 25-30 minutos,
     dependendo de quanto tempo é gasto praticando os comandos.

     ATENÇÃO:
     Os comandos nas lições modificam este texto. Faça uma cópia deste
     arquivo para praticar os comandos (se usou o "vimtutor", esta já
     é uma cópia).

     É importante lembrar que este tutorial é concebido para ensinar pela
     prática. Isso significa que você precisa executar os comandos para 
     aprendê-los adequadamente. Se você somente ler o texto, esquecerá os
     comandos!

     Agora, certifique-se de que sua tecla Shift-Lock (ou Caps Lock) não esteja
     ativada e pressione a tecla  j  o bastante para mover o cursor até que a
     Lição 1.1 apareça inteiramente na tela.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lição 1.1:  MOVER O CURSOR


  ** Para mover o cursor, pressione as teclas h,j,k,l conforme indicado. **
             ^
             k          Dica: A tecla h está à esquerda e move à esquerda.
       < h       l >          A tecla l está à direita e move à direita.
             j                A tecla j se parece com uma seta para baixo.
             v
  1. Mova o cursor pela tela até que você se sinta confortável.

  2. Segure pressionada a tecla (j) até haver repetição.
     Agora você já sabe como ir para a próxima lição.

  3. Usando a tecla j, vá para a Lição 1.2.

NOTA: Se está inseguro sobre o que digitou, pressione <ESC> para 
      colocá-lo no modo Normal. Então redigite o comando que queria.

NOTA: As teclas de cursor funcionam também. Mas usando hjkl, tão logo
      esteja acostumado, você poderá se mover muito mais rapidamente.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lição 1.2: SAIR DO VIM


 !! NOTA: Antes de executar quaisquer dos passos abaixo, leia a lição inteira !!

  1. Pressione <ESC> (para ter certeza de que está no modo Normal).

  2. Digite:    :q! <ENTER>.
     Assim, sai do editor SEM salvar qualquer mudança feita.

  3. Repita o procedimento que o trouxe a este tutorial. O procedimento pode
     ter sido a digitação de:  vimtutor <ENTER>.

  4. Se memorizou estes passos e está confiante, execute os passos de
     1 a 3 para sair e reentrar no editor.

NOTA:  :q! <ENTER>  descarta qualquer mudança. Em uma próxima lição será
       ensinado como salvar as mudanças feitas em um arquivo.

  5. Desça o cursor até a Lição 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lição 1.3: EDITAR TEXTOS - REMOÇÃO

  ** Pressione  x  para deletar o caractere sob o cursor. **


  1. Mova o cursor para a linha abaixo marcada com --->.

  2. Para corrigir os erros, mova o cursor até que ele esteja sobre o 
     caractere a ser deletado.

  3. Pressione a tecla  x  para remover o caractere incorreto.

  4. Repita os passos 2 até 4 até que a frase esteja correta.

---> A vvaca pullouu por ccimaa dda luuua.

  5. Agora que a frase está correta, prossiga para a Lição 1.4.

NOTA: Enquanto segue este tutorial, não tente memorizar, aprenda pelo uso.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lição 1.4: EDITAR TEXTOS - INSERÇÃO

		   ** Pressione  i  para inserir texto. **


  1. Mova o cursor até a primeira linha abaixo marcada com --->.

  2. Para deixar a primeira linha igual à segunda, mova o cursor para
     o primeiro caractere DEPOIS de onde o texto deverá ser inserido.

  3. Pressione  i  e digite as adições necessárias.

  4. Assim que cada erro for corrigido pressione <ESC> para retornar ao modo
     Normal. Repita os passos 2 até 4 para corrigir a frase.

---> Tem text fatado nesta .
---> Tem algum texto faltando nesta linha.

  5. Quando se sentir à vontade com a inserção de texto, mova o cursor para
     a Lição 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lição 1.5: EDITAR TEXTO - ADICIONAR

		  ** Pressione  A  para adicionar texto. **

  1. Mova o cursor para a primeira linha abaixo marcada com --->.
     Não importa sobre qual caractere o cursor estará na linha.

  2. Pressione  A  e digite as adições necessárias.

  3. Quando adicionar o texto, pressione <ESC> para retornar ao modo Normal.

  4. Mova o cursor para a segunda linha marcada ---> e repita os passos 2 e 3
     para corrigir a frase.

---> Há algum texto faltando nes
     Há algum texto faltando nesta linha.
     Há algum texto faltan
---> Há algum texto faltando aqui.

  5. Quando se sentir confortável adicionando texto, vá para a Lição 1.6.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lição 1.6: EDITAR UM ARQUIVO

		** Use  :wq  para salvar um arquivo e sair. **

  !! NOTA: Leia toda a lição antes de executar as instruções!!

  1. Saia deste tutorial como o fez na lição 1.2:  :q!
     Ou, se tiver acesso a outro terminal, faça o seguinte nele.

  2. No prompt do shell, digite esse comando:  vim tutor <ENTER>
     'vim' é o comando para iniciar o editor Vim e 'tutor' é o nome do
     arquivo que você quer editar.  Use um arquivo que possa ser modificado.

  3. Insira e apague texto tal como aprendeu nas lições anteriores.

  4. Salve o arquivo com as mudanças e saia do Vim com:  :wq <ENTER>

  5. Se tiver saído do vimtutor no passo 1, reinicie o vimtutor e vá para
     o resumo seguinte.

  6. Após ler os passos acima e compreendê-los, execute-os.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LIÇÃO 1

  1. O cursor é movido usando tanto as teclas de seta quanto as teclas hjkl.
	h (esquerda)	j (para baixo)	k (para cima)	l (direita)

  2. Para entrar no Vim a partir de um shell digite: vim NOMEDOARQUIVO <ENTER>

  3. Para sair do Vim digite:  <ESC> :q! <ENTER> para descartar as alterações.
                   OU digite:  <ESC> :wq <ENTER> para salvar as alterações.

  4. Para deletar um caractere sob o cursor no modo Normal digite:  x

  5. Para inserir texto na posição do cursor enquanto estiver no modo Normal
     digite:
             i     digite o texto <ESC>   inserir depois do cursor
	     A     digite o texto <ESC>   adicionar no final da linha

NOTA: Pressionando <ESC> você irá para o modo Normal ou cancelará um comando
      ainda incompleto.

Agora continue com a Lição 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lição 2.1: COMANDOS DE REMOÇÃO 

	          ** Digite  dw  para apagar uma palavra. **


  1. Pressione  <ESC>  para ter certeza de que está no modo Normal.

  2. Mova o cursor até a linha abaixo marcada com --->.

  3. Mova o cursor até o começo da palavra que precisa ser deletada.

  4. Digite  dw  para fazer a palavra desaparecer.

  NOTA: A letra  d  vai aparecer na última linha da tela enquanto você a
	digita. O Vim o está esperando digitar um  w . Se digitou
	alguma coisa errada, pressione <ESC> e comece de novo.

---> Tem a algumas oi palavras diversão que não pertencem papel a esta frase.

  5. Repita os passos 3 ao 4 até que a frase esteja correta e vá para a
     Lição 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lição 2.2: MAIS COMANDOS DE REMOÇÃO

             ** Digite  d$  para deletar até o fim da linha. **



  1. Pressione <ESC> para ter certeza de estar no modo Normal.

  2. Mova o cursor até a linha abaixo marcada com --->.

  3. Mova o cursor até o fim da linha correta (DEPOIS do primeiro  . ).

  4. Digite  d$  para apagar até o fim da linha.

---> Alguém digitou o fim desta linha duas vezes. desta linha duas vezes.

  5. Vá para a lição 2.3 para entender o funcionamento deste comando.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lição 2.3: SOBRE OPERADORES E MOVIMENTOS 

  Muitos comandos que mudam texto são feitos de um operador e de um movimento.
  O formato para um comando apagar com o operador de remoção  d  tem a
  seguinte forma:

         d   movimento

  Onde:
    d - é o operador apagar.
    movimento - é o movimento sobre o qual o operador age (listado abaixo).

  Uma pequena lista de teclas de movimento:
    w - até o início da próxima palavra, excluindo seu primeiro caractere.
    e - até o fim da palavra atual, incluindo seu último caractere.
    $ - até o fim da linha, incluindo seu último caractere.

  Portanto, digitar  de  apaga do cursor ao fim da palavra.

NOTA: Pressionar apenas a tecla de movimento em modo Normal, sem o
operador, faz o cursor se mover como especificado na lista de teclas de
movimento.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lição 2.4: USAR UM CONTADOR PARA UM MOVIMENTO

   ** Digitar um número antes de um movimento repete-o o tanto de vezes. **


   1. Mova o cursor para o começo da linha marcada com ---> abaixo.

   2. Digite  2w  para mover o cursor duas palavras adiante.

   3. Digite  3e  para mover o cursor para o fim da terceira palavra adiante.

   4. Digite  0  (zero) para mover para o início da linha.

   5. Repita os passos 2 e 3 com diferentes números.

---> Esta é uma linha com algumas palavras para permiti-lo fazer movimentos.

   6. Vá para a Lição 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lição 2.5: USAR UM CONTADOR PARA APAGAR MAIS

   ** Digitar um número com um operador repete-o esse número de vezes. **


   Você deve inserir um contador entre o operador de remoção e o de movimento
   mencionados acima para apagar mais:
       d   número   movimento

   1. Movimente o cursor para a primeira palavra em LETRAS MAIÚSCULAS na
      linha marcada com --->.

   2. Digite  d2w  para deletar as duas palavras em LETRAS MAIÚSCULAS.

   3. Repita os passos 1 e 2 com diferentes contadores para deletar as
      palavras em LETRAS MAIÚSCULAS com um comando.

--->  esta ABC DE linha FGHI JK LMN OP de palavras está Q RS TUV limpa.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lição 2.6: TRABALHAR COM LINHAS

	      ** Digite  dd  para apagar uma linha inteira. **

  Em virtude da frequência em deletar uma linha inteira, os desenvolvedores 
  do Vi decidiram que seria mais simples digitar dois d para apagar uma linha.

  1. Mova o cursor até a segunda linha da frase abaixo.
  2. Digite  dd  para apagar a linha.
  3. Agora mova até a quarta linha.
  4. Digite  2dd  para apagar duas linhas.

--->  1)  Rosas são vermelhas,
--->  2)  Lama é divertida,
--->  3)  Violetas são azuis,
--->  4)  Eu tenho um carro,
--->  5)  Relógios dizem as horas,
--->  6)  Açúcar é doce,
--->  7)  Assim como você.

Notas do tradutor: Lama (mud) em inglês pode significar fofoca, difamação.
                   Há rima no texto original.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lição 2.7: O COMANDO UNDO (DESFAZER)

** Pressione u para desfazer os últimos comandos, U recupera a linha inteira.**


  1. Mova o cursor para a linha abaixo marcada com ---> e posicione-o sobre o
     primeiro erro.
  2. Digite  x  para deletar o primeiro caractere errado.
  3. Agora, digite  u  para desfazer o último comando executado.
  4. Desta vez, corrija todos os erros na linha usando o comando  x .
  5. Agora, digite um U maiúsculo para retornar a linha ao seu estado original.
  6. Digite  u  algumas vezes para desfazer o  U  e os comandos anteriores.
  7. Digite CTRL-R (segurando a tecla CTRL enquanto digita R) algumas vezes
     para refazer os comandos (desfazer os undos).

---> Corriija os erros nnesta linha e reetorne-os com undo.

  8. Esses comandos são muito úteis. Agora vá para o resumo da Lição 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LIÇÃO 2


  1. Para apagar do cursor até a próxima palavra, digite:   dw
  2. Para apagar do cursor até o fim de uma linha, digite:  d$
  3. Para apagar uma linha inteira, digite:   dd
  4. Para repetir um movimento, adicione antes um número:   2w
  5. O formato para um comando no modo Normal é:
           operador   [número]   movimento
   onde:
      operador  - é o que será feito, como  d  para apagar
      [número]  - quantas vezes o comando será repetido
      movimento - movimento sobre o texto que receberá a operação, como
                  w (palavra), $ (até o fim da linha), etc.

  6. Para ir ao início da linha, use um zero:  0

  7. Para desfazer uma ação anterior, digite:                  u (minúsculo)
     Para desfazer todas as alterações em uma linha, digite:   U (maiúsculo)
     Para desfazer o que foi desfeito, digite:                 CTRL-R




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lição 3.1: O COMANDO COLAR

	** Digite  p  para colar após o cursor o que acabou de apagar. **


  1. Mova o cursor até a primeira linha marcada com --->.

  2. Digite  dd  para apagar a linha e guardá-la num registro do Vim.

  3. Mova o cursor até a linha c) ACIMA de onde a linha apagada deveria estar.

  4. No modo Normal, digite  p  para inserir a linha.

  5. Repita os passos 2 ao 4 para pôr todas as linhas na ordem correta.

---> d) Você pode aprender também?
---> b) Violetas são azuis,
---> c) Inteligência se aprende,
---> a) Rosas são vermelhas,

Nota do tradutor: Há rima no original.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	               Lição 3.2: O COMANDO SUBSTITUIR

     ** Digite  rx  para substituir o caractere sob o cursor por  x . ** 


  1. Mova o cursor até a primeira linha abaixo marcada com --->.

  2. Mova o cursor até que esteja sobre o primeiro erro.

  3. Digite  r  e então o caractere que deveria estar lá.

  4. Repita os passos 2 e 3 até que a primeira linha esteja igual à segunda.

---> Quendo este limha foi dugitada, alguem pressioniu algumas teclas erradzs!
---> Quando esta linha foi digitada, alguém pressionou algumas teclas erradas!

  5. Agora vá para a Lição 3.3.

NOTA: Lembre-se que você deve aprender pelo uso, não pela memorização.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lição 3.3: O OPERADOR CHANGE (MUDAR)

	** Para alterar até o fim de uma palavra, digite  ce . **


  1. Mova o cursor até a primeira linha abaixo marcada com --->.
  
  2. Posicione o cursor sobre o u em lunba.

  3. Digite  ce  e a palavra correta (nesse caso, digite 'inha'.)

  4. Pressione <ESC> e mova para o próximo caractere a ser alterado.

  5. Repita os passos 3 e 4 até que a primeira frase esteja igual à segunda.

---> Essa lunba tem pwlesmfr que ocrimmm  soi alteradas cup o comando change.
---> Essa linha tem palavras que precisam ser alteradas com o comando change. 

Note que  ce  não somente substitui a palavra, mas também o coloca no modo
de Inserção.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lição 3.4: MAIS MUDANÇAS USANDO c

     ** O operador change é usado com os mesmos movimentos que o delete. **


  1. O operador change trabalha da mesma maneira que o delete. O formato é:

          c    [número]    movimento

  2. Os movimentos também são os mesmos: w (palavra) e $ (fim da linha).

  3. Mova até a primeira linha abaixo marcada com --->.

  4. Mova o cursor até o primeiro erro.

  5. Digite  c$  e digite o resto da segunda linha para torná-las iguais e 
     pressione <ESC>.

---> O fim desta linha precisa de ajuda para ficar igual à segunda.
---> O fim desta linha precisa ser corrigido usando o comando  c$.

NOTA: Você pode usar a tecla Backspace para corrigir erros enquanto digita.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LIÇÃO 3


  1. Para reinserir um texto que já foi apagado, digite  p . Isso coloca o texto
     deletado APÓS o cursor (se uma linha é deletada ela será inserida na linha
     abaixo do cursor).

  2. Para substituir o caractere sob o cursor, digite  r  e então o caractere
     que substituirá o original.

  3. O comando change possibilita mudar do cursor até onde o movimento for.
     Ex: Digite  ce  para mudar do cursor até o fim de uma palavra, c$ para
     mudar até o fim da linha.

  4. O formato para uma operação change é:

         c   [número]   movimento

Agora vá para a próxima lição.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Lição 4.1: LOCALIZAÇÃO DO CURSOR E ESTADO DO ARQUIVO

    ** Digite CTRL-G para mostrar sua localização no arquivo e seu estado.
       Digite  G  para mover para uma linha do arquivo.  **

  Nota: Leia esta lição inteira antes de executar qualquer um dos passos!!

  1. Segure pressionada a tecla Ctrl e pressione  g . Chamamos isso de
     CTRL-G. Uma mensagem aparecerá no rodapé da página com o nome do arquivo
     e a sua posição no arquivo. Lembre-se do número da linha para o Passo 3.

NOTA:  A posição do cursor pode estar visível no canto direito inferior da
       tela. Isso acontece quando a opção 'ruler' está ativa
       (veja  :help 'ruler' ).

  2. Pressione  G  para se mover até o fim do arquivo.
     Digite  gg  para se mover até o início do arquivo.

  3. Digite o número da linha em que estava e então G . Assim o cursor retornará
     à linha em que estava quando pressionou CTRL-G.

  4. Se estiver seguro para fazê-los, execute os passos 1 a 3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Lição 4.2: O COMANDO BUSCAR

      ** Digite  /  seguido por uma frase para procurar por ela. **

  1. No modo Normal digite o caractere  / . Note que ele e o cursor aparecem
     no rodapé da tela, como ocorre com o comando  : .

  2. Agora digite 'errroo' <ENTER>. Esta é a palavra que quer procurar.

  3. Para buscar a mesma palavra de novo, simplesmente tecle  n .
     Para buscar a mesma palavra na direção oposta, tecle  N .

  4. Se quer procurar por uma frase de trás para frente, use  ?  em vez de  /  .

  5. Para voltar aonde estava, pressione CTRL-O (mantenha a tecla Ctrl
     pressionada e pressione a tecla o). Repita para voltar a outras posições.
     CTRL-I segue para posições mais recentes.

--->  "errroo" não é uma maneira de escrever erro;  errroo é um erro.

NOTA: Quando a busca atinge o fim do arquivo ela continuará do começo, a
      menos que a opção 'wrapscan' esteja desativada.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	        Lição 4.3: BUSCA DE PARÊNTESES CORRESPONDENTES

         ** Digite  %  para encontrar um ),], ou } correspondente. **


  1. Posicione o cursor em qualquer (, [, ou { na linha abaixo marcada com --->.
  
  2. Agora digite o caractere  % .
  
  3. O cursor deve estar no parêntese ou colchete que casa com o primeiro.

  4. Digite  %  para mover o cursor de volta ao primeiro colchete ou parêntese
     (por casamento).

---> Isto ( é uma linha de teste contendo (, [ ] e { }. ))

Nota: Isso é muito útil para corrigir um programa com parêntese não-casado!





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lição 4.4: O COMANDO SUBSTITUIR

      ** Digite  :s/velho/novo/g  para substituir 'velho' por 'novo'. **


  1. Mova o cursor para a linha abaixo marcada com --->.

  2. Digite  :s/aa/a <ENTER> . Note que este comando somente muda a 
     primeira ocorrência na linha.

  3. Agora digite  :s/aa/a/g   significando substituir globalmente na linha.
     Isto muda todas as ocorrências na linha.

---> aa melhor época para ver aas flores é aa primavera. 

  4. Para mudar toda ocorrência de uma string entre duas linhas,
     digite  :#,#s/velho/novo/g   onde #,# são os números das duas linhas.
     Digite  :%s/velho/novo/g     para mudar todas as ocorrências no arquivo
                                  inteiro.
     Digite  :%s/velho/novo/gc    para mudar todas as ocorrências no arquivo
                                  inteiro, com a opção de confirmar cada
				  substituição.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              RESUMO DA LIÇÃO 4


  1.    CTRL-G  mostra em que ponto do arquivo está e o estado dele.
             G  move para o fim do arquivo.
     número  G  move para a linha com esse número.
            gg  move para a primeira linha.

  2. Digitando  /  seguido por uma expressão procura À FRENTE por ela.
     Digitando  ?  seguido por uma expressão procura pela expressão de TRÁS
     PARA FRENTE.
     Após uma busca, digite n para achar a próxima ocorrência na mesma direção
     ou N para procurar na direção oposta.
     CTRL-O leva a posições antigas e CTRL-I a posições mais recentes.

  3. Digitando  %  enquanto o cursor está sobre um (,),[,],{, ou } localiza
     o par que casa com ele.

  4. Para substituir:
       o primeiro 'velho' de uma linha por 'novo' digite   :s/velho/novo
       todos os 'velho' em uma linha por 'novo' digite     :s/velho/novo/g
       expressões entre dois números (#) de linhas digite  :#,#s/velho/novo
       todas as ocorrências no arquivo digite              :%s/velho/novo/g
     Para confirmar cada substituição adicione 'c'         :%s/velho/novo/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lição 5.1: COMO EXECUTAR UM COMANDO EXTERNO


       ** Digite  :!  seguido por um comando externo para executá-lo. **

  1. Digite o familiar comando  :  para levar o cursor ao rodapé da tela. Isso
     o permite entrar um comando.

  2. Agora digite o caractere  !  (ponto de exclamação). Isso o permite
     executar qualquer comando do shell.

  3. Como um exemplo digite  ls  seguindo o  !  e então tecle <ENTER>. Isto
     mostrará uma listagem do seu diretório, como se você estivesse no
     prompt do shell. Ou use  :!dir se ls não funcionar.

NOTA:  É possível executar qualquer comando externo dessa maneira, inclusive
       com argumentos.

NOTA:  Todos os comandos  :  devem ser finalizados teclando-se <ENTER>
       Daqui em diante não mencionaremos isso todas as vezes.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lição 5.2: MAIS SOBRE SALVAR ARQUIVOS

     ** Para salvar as alterações no texto, digite  :w NOMEDOARQUIVO. **


  1. Digite  :!dir  ou  :!ls para ter uma listagem de seu diretório.
     Você já deve saber que precisa teclar <ENTER> depois disso.

  2. Escolha um nome de arquivo que ainda não exista, como TESTE.

  3. Agora digite:   :w TESTE  (onde TESTE é o nome que você escolheu.)

  4. Isto salva o arquivo inteiro  (o Vim Tutor) com o nome TESTE.
     Para verificar isso, digite  :!ls de novo para ver seu diretório.

NOTA: Se sair do Vim e entrar de novo com o nome do arquivo TESTE,
      o arquivo deve ser uma cópia exata do tutorial quando você o salvou.

  5. Agora remova o arquivo digitando (MS-DOS):     :!del TESTE
                                   ou (Unix):       :!rm TESTE


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lição 5.3: SELECIONAR O TEXTO A SER SALVO

  ** Para salvar parte de um arquivo, digite  v  movimento  :w NOMEDOARQUIVO **

  1. Mova o cursor para esta linha.

  2. Pressione  v  e mova o cursor para o quinto item abaixo. Note que o texto
     é realçado.

  3. Pressione o caractere  :  e note que aparecerá  :'<,'>  no lado inferior
     da tela.

  4. Digite  w TESTE , sendo TESTE um nome de arquivo que não existe ainda.
     Certifique-se de ver  :'<,'>w TESTE  antes de pressionar <ENTER>.

  5. O Vim salvará as linhas selecionadas no arquivo TESTE. Use  :!dir  ou
     !:ls para vê-lo. Não o apague ainda! Nós o usaremos na próxima lição.

NOTA:  Pressionar  v  inicia o modo Visual de seleção.  Você pode mover o
cursor pela tela para tornar a seleção maior ou menor. Pode, então, usar um
operador para executar alguma ação. Por exemplo,  d  apaga o texto.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lição 5.4: RECUPERAR E UNIR ARQUIVOS

    ** Para inserir o conteúdo de um arquivo, digite  :r NOMEDOARQUIVO **


  1. Posicione o cursor logo acima desta linha.

NOTA:  Depois de executar o Passo 2 você verá a Lição 5.3. Então DESÇA o
       cursor para ver esta lição novamente.

  2. Agora recupere o arquivo TESTE usando o comando  :r TESTE  onde TESTE é o
     nome do arquivo.
     O arquivo recuperado é colocado abaixo da linha atual do cursor.

  3. Para verificar que o arquivo foi recuperado, volte com o cursor e verifique
     que agora existem duas cópias da Lição 5.3, a original e a versão do 
     arquivo.

NOTA: Você também pode ler a saída de um comando externo. Por exemplo,  :r !ls
      lê a saída do comando ls e coloca o resultado abaixo do cursor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LIÇÃO 5 


  1.  :!comando  executa um comando externo.

      Alguns exemplos úteis são:
         (MS-DOS)         (UNIX)
	  :!dir            :!ls          -  lista conteúdo do diretório.
          :!del ARQUIVO    :!rm ARQUIVO  -  remove ARQUIVO.

  2. :w ARQUIVO  salva o atual arquivo do Vim para o disco com o nome ARQUIVO.

  3. v  movimento  :w ARQUIVO  salva as linhas Visualmente selecionadas em
     ARQUIVO.

  4. :r ARQUIVO  recupera ARQUIVO do disco e o insere dentro do arquivo atual
     na posição do cursor.

  5. :r !dir  lê a saída do comando dir e coloca o resultado abaixo da posição
     atual do cursor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lição 6.1: O COMANDO ABRIR

   ** Digite  o  para abrir uma linha em baixo do cursor e ir para o modo de
      Inserção. ** 

  1. Mova o cursor para a linha abaixo marcada com --->.

  2. Digite  o  (minúsculo) para abrir uma linha ABAIXO do cursor e ir para o
     modo de Inserção. 

  3. Agora digite algum texto e pressione <ESC> para sair do modo de
     Inserção.

---> Após teclar  o  o cursor é colocado na linha aberta no modo de Inserção.

  4. Para abrir uma linha ACIMA do cursor, simplesmente tecle um  O  maiúsculo,
     em vez de um  o  minúsculo. Tente isso na linha abaixo.

---> Abra uma linha acima desta teclando O enquanto o cursor está nesta linha.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       	               Lição 6.2: O COMANDO ADICIONAR

	    ** Digite  a  para inserir texto DEPOIS do cursor. **

  1. Mova o cursor para o início da linha marcada com ---> .

  2. Pressione  e  até o cursor ficar sobre o final de li .

  3. Digite um  a  (minúsculo) para adicionar texto DEPOIS do caractere sob o
     cursor.

  4. Complete a palavra conforme a linha abaixo. Pressione <ESC> para sair do
     modo de Inserção.

  5. Use  e  para mover para a próxima palavra incompleta  repita os passos 3
     e 4.

---> Esta lin o permite pratic a adiç de texto a uma linha.
---> Esta linha o permite praticar a adição de texto a uma linha.

NOTA: a, i e A levam ao mesmo modo de Inserção, a única diferença é onde os
      caracteres são inseridos.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lição 6.3: UMA OUTRA VERSÃO DO SUBSTITUIR

      ** Digite um R maiúsculo para substituir mais de um caractere. **


  1. Mova o cursor para a primeira linha abaixo marcada com --->. Mova o
     cursor para o início do primeiro  xxx .
  
  2. Agora pressione  R  e digite os números que estão abaixo dele, na segunda
     linha, para substituir o  xxx .

  3. Pressione <ESC> para sair do modo de Substituição. Note que o resto da
     linha permanece inalterado.

  4. Repita os passos para substituir os  xxx  restantes.

--->  Adicionando 123 a xxx resulta em xxx.
--->  Adicionando 123 a 456 resulta em 579.

NOTA:  O modo de Substituição é como o modo de Inserção, mas cada caractere
       digitado apaga um caractere existente.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lição 6.4: COPIAR E COLAR TEXTO

	** Use o operador  y  para copiar texto e  p  para colá-lo. **

   1. Vá à linha marcada com ---> abaixo e posicione o cursor após "a)".

   2. Inicie o modo Visual com  v  e mova o cursor para logo antes de
      "primeiro".

   3. Digite  y  para copiar o texto selecionado.

   4. Mova o cursor para o fim da próxima linha:  j$

   5. Digite  p  para colar o texto. Então, digite:  o segundo <ESC> .

   6. Use o modo Visual para selecionar  " item.", copie-o com  y , mova para
      o fim da próxima linha com  j$  e cole o texto com  p .

--->  a) esse é o primeiro item.
      b)

NOTA:  Você também pode usar  y  como um operador; por exemplo, yw copia uma
       palavra.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lição 6.5: CONFIGURAR PREFERÊNCIAS

      ** Configure uma preferência de modo que uma busca ou substituição
	 ignore se as letras são maiúsculas ou minúsculas. **

  1. Procure por 'ignore' entrando:   /ignore <ENTER>
     Repita várias vezes teclando  n .

  2. Configure a opção 'ic' (Ignore case) digitando:  :set ic
  
  3. Agora procure por 'ignore' de novo teclando: n
     Repita várias vezes.
  
  4. Configure as opções 'hlsearch' e 'incsearch':  :set hls is
  
  5. Agora entre com o comando buscar de novo, e veja o que acontece:
     /ignore
  
  6. Para desabilitar a diferenciação entre maiúsculas e minúsculas:
     :set noic

NOTA:  Para remover o realce dos termos localizados entre:  :nohlsearch
NOTA:  Se quiser ignorar a diferença entre maiúsculas e minúsculas em apenas
       uma pesquisa, use  \c  no comando:  /ignore\c <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LIÇÃO 6

  1. Digite  o  para abrir uma linha ABAIXO do cursor e iniciar o modo de
     Inserção.
     Digite  O  para abrir uma linha ACIMA da linha onde o cursor está.

  2. Digite  a  para adicionar texto DEPOIS do caractere onde está o cursor.
     Digite  A  para adicionar texto ao fim da linha.

  3. O comando  e  move o cursor para o fim de uma palavra.

  4. O operador  y  copia texto,  p  cola o texto copiado.

  5. Digitando  R  entra-se no modo de Substituição até que <ESC> seja
     pressionado.

  6. Digitando  ":set xxx" modifica-se a opção "xxx". Algumas opções são:
         'ic'  'ignorecase'    ignora diferença entre maiúsculas/minúsculas
	 'is'  'incsearch'     realiza a busca enquanto se digita
	 'hls' 'hlsearch'      realça todos os trechos localizados
     Você tanto pode usar o nome curto quanto o nome longo da opção.

  7. Adicione o prefixo "no" para desabilitar uma opção:  :set noic


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   LIÇÃO 7.1: OBTENDO AJUDA

		 ** Use o sistema de ajuda do próprio Vim **

  O Vim possui sistema de ajuda abrangente. Para começar, tente algum
  desses três:
        - pressione a tecla <HELP> (se você tiver uma)
        - pressione a tecla <F1>   (se você tiver uma)
        - digite      :help <ENTER>

  Leia o texto da ajuda para aprender como o sistema de ajuda funciona.
  Digite  CTRL-W CTRL-W  para pular de uma janela a outra.
  Digite  :q <ENTER>     para fechar a janela da ajuda.

  Você pode encontrar ajuda sobre qualquer assunto, fornecendo um argumento 
  para o comando ":help". Tente isto (não se esqueça de pressionar <ENTER>):

       :help w
       :help c_CTRL-D
       :help insert-index
       :help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lição 7.2: CRIAR UM SCRIPT DE INICIALIZAÇÃO

		       ** Habilite recursos do Vim **

  O Vim tem muito mais recursos do que o Vi, mas na sua maioria eles são
  desabilitados por padrão.  Para usar mais recursos, você tem que criar um
  arquivo "vimrc".

  1. Comece a editar o arquivo "vimrc". Isso depende do sistema:
         :e ~/.vimrc              para Unix
         :e $VIM/_vimrc           para MS-Windows

  2. Agora, leia o conteúdo do arquivo "vimrc" de exemplo:
	 :r $VIMRUNTIME/vimrc_example.vim

  3. Salve o arquivo com:
         :w

  Da próxima vez que o Vim for iniciado, ele usará realce de sintaxe. Você
  pode adicionar suas configurações preferidas para esse arquivo "vimrc". Para
  maiores informações, digite:  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lição 7.3: COMPLETAÇÃO

	   ** Completação da linha de comando com CTRL-D e <TAB> **

   1. Certifique-se de que o Vim não está no modo compatível:  :set nocp

   2. Veja quais arquivos existem no diretório:  :!ls  ou  :!dir

   3. Digite o início de um comando:  :e

   4. Pressione  CTRL-D  e o Vim mostrará a lista dos comandos iniciados
      com "e".

   5. Pressione  <TAB>  e o Vim completará o nome do comando para ":edit".

   6. Agora, adicione um espaço e o início do nome de um arquivo existente:
      :edit ARQ

   7. Pressione <TAB>.  O Vim completará o nome (se ele for único).

NOTA:  A completação funciona com muitos comandos. Basta pressionar CTRL-D e
<TAB>. Isso é especialmente útil para  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LIÇÃO 7


  1. Digite  :help ou pressione <F1> ou <Help>  para abrir a janela de ajuda.

  2. Digite  :help cmd  para achar a ajuda sobre  cmd .

  3. Digite  CTRL-W CTRL-W  para pular de uma janela a outra.

  4. Digite  :q  para fechar a janela de ajuda.

  5. Crie um script de inicialização vimrc para ativar automaticamente as suas
     configurações preferidas.

  6. Quando pressionar um comando  : , pressione CTRL-D para ver as possibilidades 
  de completação. Pressione <TAB> para usá-la.



  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Isto conclui o tutorial do Vim, uma breve apresentação do editor Vim,
  somente o bastante para que você possa usar o editor com facilidade.
  Ele está longe de ser completo, uma vez que o Vim possui muitos, muitos mais
  comandos. O próximo passo é ler o manual:  ":help user-manual".

  Livro recomendado em Português sobre o Vim:
       O editor de texto Vim - de Sérgio Luiz Araújo da Silva et al.
       http://code.google.com/p/vimbook/

  Para futura leitura e estudo, este livro é recomendado:
       Vim - Vi Improved - de Steve Oualline
       Editora: New Riders
  Este é o primeiro livro completamente dedicado ao Vim. Especialmente útil
  para iniciantes, com muitos exemplos e ilustrações.
  Veja http://iccf-holland.org/click5.html

  Esse livro é mais antigo e mais sobre o Vi do que sobre o Vim, mas também é
  recomendado:
       Learning the Vi Editor - de Linda Lamb
       Editora: O'Reilly & Associates Inc.
  Este é um bom livro para aprender quase tudo o que você quer fazer com o Vi.
  A sexta edição também inclui informações sobre o Vim.

  Este tutorial foi escrito por Michael C. Pierce e Robert K. Ware,
  Colorado School of Mines, usando idéias fornecidas por Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Modificado para o Vim por Bram Moolenaar.

  Versão 1.4 traduzida para o português por Marcelo Drudi Miranda, Escola
  Politécnica da Universidade de São Paulo.

  Revisão e atualização da tradução para a versão 1.7 por Jakson Aquino,
  Universidade Federal do Ceará: E-mail: jalvesaq@gmail.com

  Nova revisão e atualização para a versão 1.8 por Roní Gonçalves,
  Universidade Federal de Uberlândia.

  Last Change: 2017 Feb 11

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�^~]m]mvim80/tutor/tutor.cs.utf-8nu�[���===============================================================================
=    V í t e j t e   v  t u t o r i a l u   V I M       -    Verze 1.5        =
===============================================================================

     Vim je velmi výkonný editor, který má příliš mnoho příkazů na to, aby
     mohly být všechny vysvětlené ve výuce jako tato. Tato výuka obsahuje
     dostatečné množství příkazů na to, aby bylo možné používat Vim jako
     víceúčelový editor.

     Přibližný čas potřebný ke zvládnutí této výuky je 25-30 minut, záleží
     na tom, kolik času strávíte přezkušováním.

     Příkazy v lekcích upravují text. Vytvoř kopii tohoto souboru pro
     procvičování (při startu "vimtutor" je již toto kopie).

     Je důležité pamatovat, že tato výuka je vytvořena pro výuku používáním.
     To znamená, že je potřeba si příkazy vyzkoušet pro jejich správné
     naučení. Pokud si jen čteš text, příkazy zapomeneš!

     Nyní se přesvědčte, že Caps-Lock NENÍ stlačený a několikrát stiskněte
     klávesu  j   aby se kurzor posunul natolik, že lekce 1.1 zaplní celou
     obrazovku.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 1.1:  POHYB KURZORU


   ** Pro pohyb kurzoru používej klávesy h,j,k,l jak je znázorněno níže. **
	     ^
	     k		   Funkce: Klávesa h je vlevo a vykoná pohyb vlevo.
       < h	 l >		   Klávesa l je vpravo a vykoná pohyb vpravo.
	     j			   Klávesa j vypadá na šipku dolu.
	     v
  1. Pohybuj kurzorem po obrazovce dokud si na to nezvykneš.

  2. Drž klávesu pro pohyb dolu (j), dokud se její funkce nezopakuje.
---> Teď víš jak se přesunout na následující lekci.

  3. Použitím klávesy dolu přejdi na lekci 1.2.

Poznámka: Pokud si někdy nejsi jist něčím, co jsi napsal, stlač <ESC> pro
          přechod do Normálního módu. Poté přepiš požadovaný příkaz.

Poznámka: Kurzorové klávesy také fungují, avšak používání hjkl je rychlejší
          jakmile si na něj zvykneš.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.2: SPUŠTĚNÍ A UKONČENÍ VIM


  !! POZNÁMKA: Před vykonáním těchto kroků si přečti celou lekci!!

  1. Stlač <ESC> (pro ujištění, že se nacházíš v Normálním módu).

  2. Napiš:			:q! <ENTER>.

---> Tímto ukončíš editor BEZ uložení změn, které si vykonal.
     Pokud chceš uložit změny a ukončit editor napiš:
				:wq  <ENTER>

  3. Až se dostaneš na příkazový řádek, napiš příkaz, kterým se dostaneš zpět
     do této výuky. To může být: vimtutor <ENTER>
     Běžně se používá:		 vim tutor <ENTER>

---> 'vim' znamená spuštění editoru, 'tutor' je soubor k editaci.

  4. Pokud si tyto kroky spolehlivě pamatuješ, vykonej kroky 1 až 3, čímž
     ukončíš a znovu spustíš editor. Potom přesuň kurzor dolu na lekci 1.3.
     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.3: ÚPRAVA TEXTU - MAZÁNÍ


  ** Stisknutím klávesy  x  v Normálním módu smažeš znak na místě kurzoru. **

  1. Přesuň kurzor níže na řádek označený --->.

  2. K odstranění chyb přejdi kurzorem na znak, který chceš smazat.

  3. Stlač klávesu  x  k odstranění nechtěných znaků.

  4. Opakuj kroky 2 až 4 dokud není věta správně.

---> Krááva skoččilla přess měssíc.

  5. Pokud je věta správně, přejdi na lekci 1.4.

POZNÁMKA: Nesnaž se pouze zapamatovat předváděné příkazy, uč se je používáním.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.4: ÚPRAVA TEXTU - VKLÁDÁNÍ


      ** Stlačení klávesy  i  v Normálním módu umožňuje vkládání textu. **

  1. Přesuň kurzor na první řádek označený --->.

  2. Pro upravení prvního řádku do podoby řádku druhého, přesuň kurzor na
     první znak za místo, kde má být text vložený.

  3. Stlač  i  a napiš potřebný dodatek.

  4. Po opravení každé chyby stlač <ESC> pro návrat do Normálního módu.
     Opakuj kroky 2 až 4 dokud není věta správně.

---> Nějaký txt na této .
---> Nějaký text chybí na této řádce.

  5. Pokud již ovládáš vkládání textu, přejdi na následující shrnutí.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUTÍ LEKCE 1


  1. Kurzorem se pohybuje pomocí šipek nebo klávesami hjkl.
	h (vlevo)	j (dolu)	k (nahoru)	l (vpravo)

  2. Pro spuštění Vimu (z příkazového řádku) napiš: vim SOUBOR <ENTER>

  3. Pro ukončení Vimu napiš: <ESC>  :q!  <ENTER>  bez uložení změn.
	     	       anebo: <ESC>  :wq  <ENTER>  pro uložení změn.

  4. Pro smazání znaku pod kurzorem napiš v Normálním módu:  x

  5. Pro vkládání textu od místa kurzoru napiš v Normálním módu:
	 i     vkládaný text	<ESC>

POZNÁMKA: Stlačení <ESC> tě přemístí do Normálního módu nebo zruší nechtěný
      a částečně dokončený příkaz.

Nyní pokračuj Lekcí 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 2.1: PŘÍKAZY MAZÁNÍ


	       ** Příkaz  dw  smaže znaky do konce slova. **

  1. Stlač  <ESC>  k ubezpečení, že jsi v Normálním módu.

  2. Přesuň kurzor níže na řádek označený --->.

  3. Přesuň kurzor na začátek slova, které je potřeba smazat.

  4. Napiš   dw	 , aby slovo zmizelo.

POZNÁMKA: Písmena dw se zobrazí na posledním řádku obrazovky jakmile je
	  napíšeš. Když napíšeš něco špatně, stlač  <ESC>  a začni znova.

---> Jsou tu nějaká slova zábava, která nepatří list do této věty.

  5. Opakuj kroky 3 až 4 dokud není věta správně a přejdi na lekci 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 2.2: VÍCE PŘÍKAZŮ MAZÁNÍ


	   ** Napsání příkazu  d$  smaže vše až do konce řádky. **

  1. Stlač  <ESC>  k ubezpečení, že jsi v Normálním módu.

  2. Přesuň kurzor níže na řádek označený --->.

  3. Přesuň kurzor na konec správné věty (ZA první tečku).

  4. Napiš  d$  ,aby jsi smazal znaky až do konce řádku.

---> Někdo napsal konec této věty dvakrát. konec této věty dvakrát.


  5. Přejdi na lekci 2.3 pro pochopení toho, co se stalo.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekce 2.3: ROZŠIŘOVACÍ PŘÍKAZY A OBJEKTY


  Formát mazacího příkazu  d  je následující:

	 [číslo]   d   objekt     NEBO     d   [číslo]   objekt
  Kde:
    číslo - udává kolikrát se příkaz vykoná (volitelné, výchozí=1).
    d - je příkaz mazání.
    objekt - udává na čem se příkaz vykonává (vypsané níže).

  Krátký výpis objektů:
    w - od kurzoru do konce slova, včetně mezer.
    e - od kurzoru do konce slova, BEZ mezer.
    $ - od kurzoru do konce řádku.

POZNÁMKA:  Stlačením klávesy objektu v Normálním módu se kurzor přesune na
           místo upřesněné ve výpisu objektů.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 2.4: VÝJIMKA Z 'PŘÍKAZ-OBJEKT'


    	          ** Napsáním   dd   smažeš celý řádek. **

  Vzhledem k častosti mazání celého řádku se autoři Vimu rozhodli, že bude
  jednoduší napsat prostě dvě d k smazání celého řádku.

  1. Přesuň kurzor na druhý řádek spodního textu.
  2. Napiš  dd  pro smazání řádku.
  3. Přejdi na čtvrtý řádek.
  4. Napiš   2dd   (vzpomeň si  číslo-příkaz-objekt) pro smazání dvou řádků.

      1)  Růže jsou červené,
      2)  Bláto je zábavné,
      3)  Fialky jsou modré,
      4)  Mám auto,
      5)  Hodinky ukazují čas,
      6)  Cukr je sladký,
      7)  A to jsi i ty.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekce 2.5: PŘÍKAZ UNDO


   ** Stlač  u	pro vrácení posledního příkazu,  U  pro celou řádku. **

  1. Přesuň kurzor níže na řádek označený ---> a přemísti ho na první chybu.
  2. Napiš  x  pro smazání prvního nechtěného znaku.
  3. Teď napiš  u  čímž vrátíš zpět poslední vykonaný příkaz.
  4. Nyní oprav všechny chyby na řádku pomocí příkazu  x  .
  5. Napiš velké  U  čímž vrátíš řádek do původního stavu.
  6. Teď napiš  u  několikrát, čímž vrátíš zpět příkaz  U  .
  7. Stlač CTRL-R (klávesu CTRL drž stlačenou a stiskni R) několikrát,
     čímž vrátíš zpět předtím vrácené příkazy (redo).

---> Opprav chybby nna toomto řádku a nahraď je pommocí undo.

  8. Toto jsou velmi užitečné příkazy. Nyní přejdi na souhrn Lekce 2.

  



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUTÍ LEKCE 2


  1. Pro smazání znaků od kurzoru do konce slova napiš:    dw

  2. Pro smazání znaků od kurzoru do konce řádku napiš:    d$

  3. Pro smazání celého řádku napiš:    dd

  4. Formát příkazu v Normálním módu je:

       [číslo]   příkaz   objekt    NEBO    příkaz     [číslo]   objekt
     kde:
       číslo - udává počet opakování příkazu
       příkaz - udává co je třeba vykonat, například  d  maže
       objekt - udává rozsah příkazu, například  w  (slovo),
		$ (do konce řádku), atd.

  5. Pro vrácení předešlé činnosti, napiš:	u (malé u)
     Pro vrácení všech úprav na řádku napiš:	U (velké U)
     Pro vrácení vrácených úprav (redo) napiš:	CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekce 3.1: PŘÍKAZ VLOŽIT


       ** Příka  p  vloží poslední vymazaný text za kurzor. **

  1. Přesuň kurzor níže na poslední řádek textu.

  2. Napiš  dd  pro smazání řádku a jeho uložení do bufferu.

  3. Přesuň kurzor VÝŠE tam, kam smazaný řádek patří.

  4. V Normálním módu napiš  p  pro opětné vložení řádku.

  5. Opakuj kroky 2 až 4 dokud řádky nebudou ve správném pořadí.

     d) Také se dokážeš vzdělávat?
     b) Fialky jsou modré,
     c) Inteligence se učí,
     a) Růže jsou červené,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekce 3.2: PŘÍKAZ NAHRAZENÍ


          ** Napsáním  r  a znaku se nahradí znak pod kurzorem. **

  1. Přesuň kurzor níže na první řádek označený --->.

  2. Přesuň kurzor na začátek první chyby.

  3. Napiš  r  a potom znak, který nahradí chybu.

  4. Opakuj kroky 2 až 3 dokud není první řádka správně.

--->  Kdiž byl pzán tento řádeg, někdu stlažil špaqné klávesy!
--->  Když byl psán tento řádek, někdo stlačíl špatné klávesy!

  5. Nyní přejdi na Lekci 3.2.

POZNÁMKA: Zapamatuj si, že by ses měl učit používáním, ne zapamatováním.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		           Lekce 3.3: PŘÍKAZ ÚPRAVY


	  ** Pokud chceš změnit část nebo celé slovo, napiš  cw . **

  1. Přesuň kurzor níže na první řádek označený --->.

  2. Umísti kurzor na písmeno i v slově řiťok.

  3. Napiš  cw  a oprav slovo (v tomto případě napiš 'ádek'.)

  4. Stlač <ESC> a přejdi na další chybu (první znak, který třeba změnit.)

  5. Opakuj kroky 3 až 4 dokud není první věta stejná jako ta druhá.

---> Tento řiťok má několik skic, které psadoinsa změnit pasdgf příkazu.
---> Tento řádek má několik slov, které potřebují změnit pomocí příkazu.

Všimni si, že  cw  nejen nahrazuje slovo, ale také přemístí do vkládání.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekce 3.4: VÍCE ZMĚN POUŽITÍM c


   ** Příkaz pro úpravu se druží se stejnými objekty jako ten pro mazání. **

  1. Příkaz pro úpravu pracuje stejně jako pro mazání. Formát je:

       [číslo]   c   objekt	 NEBO	   c	[číslo]   objekt

  2. Objekty jsou také shodné, jako např.: w (slovo), $ (konec řádku), atd.

  3. Přejdi níže na první řádek označený --->.

  4. Přesuň kurzor na první rozdíl.

  5. Napiš  c$  pro upravení zbytku řádku podle toho druhého a stlač <ESC>.

---> Konec tohoto řádku potřebuje pomoc, aby byl jako ten druhý.
---> Konec tohoto řádku potřebuje opravit použitím příkazu  c$  .



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUTÍ LEKCE 3


  1. Pro vložení textu, který byl smazán, napiš  p  . To vloží smazaný text
     ZA kurzor (pokud byl řádek smazaný, přejde na řádek pod kurzorem).

  2. Pro nahrazení znaku pod kurzorem, napiš  r  a potom znak, kterým
     chceš původní znak nahradit.

  3. Příkaz na upravování umožňuje změnit specifikovaný objekt od kurzoru
     do konce objektu. Například: Napiš  cw  ,čímž změníš text od pozice
     kurzoru do konce slova,  c$  změní text do konce řádku.

  4. Formát pro nahrazování je:

	 [číslo]   c   objekt      NEBO     c   [číslo]   objekt

Nyní přejdi na následující lekci.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 4.1: POZICE A STATUS SOUBORU


  ** Stlač CTRL-g pro zobrazení své pozice v souboru a statusu souboru.
     Stlač SHIFT-G pro přechod na řádek v souboru. **

  Poznámka: Přečti si celou lekci než začneš vykonávat kroky!!

  1. Drž klávesu Ctrl stlačenou a stiskni  g  . Vespod obrazovky se zobrazí
     stavový řádek s názvem souboru a řádkou na které se nacházíš. Zapamatuj
     si číslo řádku pro krok 3.

  2. Stlač shift-G pro přesun na konec souboru.

  3. Napiš číslo řádku na kterém si se nacházel a stlač shift-G. To tě
     vrátí na řádek, na kterém jsi dříve stiskl Ctrl-g.
     (Když píšeš čísla, tak se NEZOBRAZUJÍ na obrazovce.)

  4. Pokud se cítíš schopný vykonat tyto kroky, vykonej je.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 4.2: PŘÍKAZ VYHLEDÁVÁNÍ


     ** Napiš  /  následované řetězcem pro vyhledání onoho řetězce. **

  1. Stiskni / v Normálním módu.  Všimni si, že tento znak se spolu s
     kurzorem zobrazí v dolní části obrazovky jako příkaz  :  .

  2. Nyní napiš 'chhybba' <ENTER>.  To je slovo, které chceš vyhledat.

  3. Pro vyhledání dalšího výsledku stejného řetězce, jednoduše stlač  n  .
     Pro vyhledání dalšího výsledku stejného řetězce opačným směrem, stiskni
     Shift-N.

  4. Pokud chceš vyhledat řetězec v opačném směru, použij příkaz  ?  místo
     příkazu  /  .

---> "chhybba" není způsob, jak hláskovat chyba; chhybba je chyba.

Poznámka: Když vyhledávání dosáhne konce souboru, bude pokračovat na jeho
          začátku.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekce 4.3: VYHLEDÁVÁNÍ PÁROVÉ ZÁVORKY


	      ** Napiš  %  pro nalezení párové ),], nebo } . **

  1. Přemísti kurzor na kteroukoli (, [, nebo { v řádku označeném --->.

  2. Nyní napiš znak  %  .

  3. Kurzor se přemístí na odpovídající závorku.

  4. Stlač  %  pro přesun kurzoru zpět na otvírající závorku.

---> Toto ( je testovací řádek ('s, ['s ] a {'s } v něm. ))

Poznámka: Toto je velmi užitečné pří ladění programu s chybějícími
          uzavíracími závorkami.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 4.4: ZPŮSOB JAK ZMĚNIT CHYBY
		      

   ** Napiš  :s/staré/nové/g  pro nahrazení slova 'nové' za 'staré'. **

  1. Přesuň kurzor na řádek označený --->.

  2. Napiš  :s/dobréé/dobré <ENTER> .  Všimni si, že tento příkaz změní pouze
     první výskyt v řádku.

  3. Nyní napiš	 :s/dobréé/dobré/g  což znamená celkové nahrazení v řádku.
     Toto nahradí všechny výskyty v řádku.

---> dobréé suroviny a dobréé náčiní jsou základem dobréé kuchyně.

  4. Pro změnu všech výskytů řetězce mezi dvěma řádky,
     Napiš   :#,#s/staré/nové/g  kde #,# jsou čísla oněch řádek.
     Napiš   :%s/staré/nové/g    pro změnu všech výskytů v celém souboru.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUTÍ LEKCE 4


  1. Ctrl-g  vypíše tvou pozici v souboru a status souboru.
     Shift-G  tě přemístí na konec souboru.  Číslo následované
     Shift-G  tě přesune na dané číslo řádku.

  2. Napsání  /  následované řetězcem vyhledá řetězec směrem DOPŘEDU.
     Napsání  ?  následované řetězcem vyhledá řetězec směrem DOZADU.
     Napsání  n  po vyhledávání najde následující výskyt řetězce ve stejném
     směru, Shift-N ve směru opačném.

  3. Stisknutí  %  když je kurzor na (,),[,],{, nebo } najde odpovídající
     párovou závorku.

  4. Pro nahrazení nového za první starý v řádku napiš     :s/staré/nové
     Pro nahrazení nového za všechny staré v řádku napiš   :s/staré/nové/g
     Pro nahrazení řetězců mezi dvěmi řádkami # napiš      :#,#s/staré/nové/g
     Pro nahrazení všech výskytů v souboru napiš	   :%s/staré/nové/g
     Pro potvrzení každého nahrazení přidej 'c'		   :%s/staré/nové/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekce 5.1: JAK VYKONAT VNĚJŠÍ PŘÍKAZ


   ** Napiš  :!  následované vnějším příkazem pro spuštění příkazu. **

  1. Napiš obvyklý příkaz  :  , který umístí kurzor na spodek obrazovky
     To umožní napsat příkaz.

  2. Nyní stiskni  !  (vykřičník). To umožní vykonat jakýkoliv vnější
     příkaz z příkazového řádku.

  3. Například napiš  ls  za ! a stiskni <ENTER>.  Tento příkaz zobrazí
     obsah tvého adresáře jako v příkazovém řádku.
     Vyzkoušej  :!dir  pokud ls nefunguje.

Poznámka:  Takto je možné vykonat jakýkoliv příkaz.

Poznámka:  Všechny příkazy  :  musí být dokončené stisknutím <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 5.2: VÍCE O UKLÁDÁNÍ SOUBORŮ


	    ** Pro uložení změn v souboru napiš  :w SOUBOR. **

  1. Napiš  :!dir  nebo  :!ls  pro výpis aktuálního adresáře.
     Už víš, že za tímto musíš stisknout <ENTER>.

  2. Vyber si název souboru, který ještě neexistuje, například TEST.

  3. Nyní napiš:  :w TEST  (kde TEST je vybraný název souboru.)

  4. To uloží celý soubor  (Výuka Vimu)  pod názvem TEST.
     Pro ověření napiš znovu :!dir  , čímž zobrazíš obsah adresáře.

Poznámka: Jakmile ukončíš Vim a znovu ho spustíš s názvem souboru TEST,
          soubor bude přesná kopie výuky, když si ji ukládal.

  5. Nyní odstraň soubor napsáním (MS-DOS):    :!del TEST
			     nebo (Unix):      :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 5.3: VÝBĚROVÝ PŘÍKAZ ULOŽENÍ


	    ** Pro uložení části souboru napiš  :#,# w SOUBOR **

  1. Ještě jednou napiš  :!dir  nebo  :!ls  pro výpis aktuálního adresáře
     a vyber vhodný název souboru jako např. TEST.

  2. Přesuň kurzor na vrch této stránky a stiskni  Ctrl-g  pro zobrazení
     čísla řádku.  ZAPAMATUJ SI TOTO ČÍSLO!

  3. Nyní se přesuň na spodek této stránky a opět stiskni Ctrl-g.
     ZAPAMATUJ SI I ČÍSLO TOHOTO ŘÁDKU!

  4. Pro uložení POUZE části souboru, napiš  :#,# w TEST  kde #,# jsou
     čísla dvou zapamatovaných řádků (vrch, spodek) a TEST je název souboru.

  5. Znova se ujisti, že tam ten soubor je pomocí  :!dir  ale NEODSTRAŇUJ ho.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		        Lekce 5.4: SLUČOVÁNÍ SOUBORŮ


      	   ** K vložení obsahu souboru napiš  :r NÁZEV_SOUBORU **

  1. Napiš  :!dir  pro ujištění, že soubor TEST stále existuje.

  2. Přesuň kurzor na vrch této stránky.

POZNÁMKA: Po vykonání kroku 3 uvidíš lekci 5.3.	Potom se opět přesuň dolů
          na tuto lekci.

  3. Nyní vlož soubor TEST použitím příkazu  :r TEST  kde TEST je název
     souboru.

POZNÁMKA: Soubor, který vkládáš se vloží od místa, kde se nachází kurzor.

  4. Pro potvrzení vložení souboru, přesuň kurzor zpět a všimni si, že teď
     máš dvě kopie lekce 5.3, originál a souborovou verzi.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUTÍ LEKCE 5


  1.  :!příkaz  vykoná vnější příkaz.

      Některé užitečné příklady jsou:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  zobrazí obsah souboru.
	  :!del SOUBOR     :!rm SOUBOR     -  odstraní SOUBOR.

  2.  :w SOUBOR  uloží aktuální text jako SOUBOR na disk.

  3.  :#,#w SOUBOR  uloží řádky od # do # do SOUBORU.

  4.  :r SOUBOR  vybere z disku SOUBOR a vloží ho do editovaného souboru
      za pozici kurzoru.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekce 6.1: PŘÍKAZ OTEVŘÍT


  ** Napiš  o  pro vložení řádku pod kurzor a přepnutí do Vkládacího módu. **

  1. Přemísti kurzor níže na řádek označený --->.

  2. Napiš  o (malé) pro vložení řádku POD kurzor a přepnutí do
     Vkládacího módu.

  3. Nyní zkopíruj řádek označený ---> a stiskni <ESC> pro ukončení
     Vkládacího módu.
  
---> Po stisknutí  o  se kurzor přemístí na vložený řádek do Vkládacího
     módu.

  4. Pro otevření řádku NAD kurzorem jednoduše napiš velké  O  , místo
     malého o. Vyzkoušej si to na následujícím řádku.
Vlož řádek nad tímto napsáním Shift-O po umístění kurzoru na tento řádek.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekce 6.2: PŘÍKAZ PŘIDAT


	     ** Stiskni  a  pro vložení textu ZA kurzor. **

  1. Přesuň kurzor na níže na konec řádky označené --->
     stisknutím $ v Normálním módu.

  2. Stiskni  a  (malé) pro přidání textu ZA znak, který je pod kurzorem.
     (Velké  A  přidá na konec řádku.)

Poznámka: Tímto se vyhneš stisknutí  i  , posledního znaku, textu na vložení,
          <ESC>, kurzor doprava, a nakonec  x  na přidávání na konec řádku!

  3. Nyní dokončí první řádek. Všimni si, že přidávání je vlastně stejné jako
     Vkládací mód, kromě místa, kam se text vkládá.

---> Tento řádek ti umožňuje nacvičit
---> Tento řádek ti umožňuje nacvičit přidávání textu na konec řádky.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 6.3: JINÝ ZPŮSOB NAHRAZOVÁNÍ


         ** Napiš velké  R  pro nahrazení víc než jednoho znaku. **

  1. Přesuň kurzor na první řádek označený --->.

  2. Umísti kurzor na začátek prvního slova, které je odlišné od druhého
     řádku označeného ---> (slovo 'poslední').

  3. Nyní stiskni  R  a nahraď zbytek textu na prvním řádku přepsáním
     starého textu tak, aby byl první řádek stejný jako ten druhý.

---> Pro upravení prvního řádku do tvaru toho poslední na straně použij kl.
---> Pro upravení prvního řádku do tvaru toho druhého, napiš R a nový text.

  4. Všimni si, že jakmile stiskneš <ESC> všechen nezměněný text zůstává.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		         Lekce 6.4: NASTAVENÍ MOŽNOSTÍ

  ** Nastav možnost, že vyhledávání anebo nahrazování nedbá velikosti písmen **

  1. Vyhledej řetězec 'ignore' napsáním:
     /ignore
     Zopakuj několikrát stisknutí klávesy n.

  2. Nastav možnost 'ic' (Ignore case) napsáním příkazu:
     :set ic

  3. Nyní znovu vyhledej 'ignore' stisknutím: n
     Několikrát hledání zopakuj stisknutím klávesy n.

  4. Nastav možnosti 'hlsearch' a 'incsearch':
     :set hls is

  5. Nyní znovu vykonej vyhledávací příkaz a sleduj, co se stane:
     /ignore

  6. Pro vypnutí zvýrazňování výsledků napiš:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRHNUTÍ LEKCE 6


  1. Stisknutí  o  otevře nový řádek POD kurzorem a umístí kurzor na vložený
     řádek do Vkládacího módu.
     Napsání velkého  O  otevře řádek NAD řádkem, na kterém je kurzor.

  2. Stiskni  a  pro vložení textu ZA znak na pozici kurzoru.
     Napsání velkého  A  automaticky přidá text na konec řádku.

  3. Stisknutí velkého  R  přepne do Nahrazovacího módu, dokud
     nestiskneš <ESC> pro jeho ukončení.

  4. Napsání ":set xxx" nastaví možnosti "xxx".








~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      LEKCE 7: PŘÍKAZY ON-LINE NÁPOVĚDY


		   ** Používej on-line systém nápovědy **

  Vim má obsáhlý on-line systém nápovědy. Pro začátek vyzkoušej jeden z
  následujících:
	- stiskni klávesu <HELP> (pokud ji máš)
	- stiskni klávesu <F1>  (pokud ji máš)
	- napiš  :help <ENTER>

  Napiš  :q <ENTER>  pro uzavření okna nápovědy.

  Můžeš najít nápovědu k jakémukoliv tématu přidáním argumentu k
  příkazu ":help". Zkus tyto (nezapomeň stisknout <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  LEKCE 8: VYTVOŘENÍ INICIALIZAČNÍHO SKRIPTU

		        ** Zapni funkce editoru Vim **

  Vim má daleko více funkcí než Vi, ale většina z nich je vypnuta ve výchozím
  nastavení. Pro zapnutí některých vytvoř soubor "vimrc".

  1. Začni upravovat soubor "vimrc". Toto závisí na použitém systému:
	:edit ~/.vimrc			pro Unix
	:edit $VIM/_vimrc		pro MS-Windows

  2. Nyní čti ukázkový "vimrc" soubor:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Ulož soubor pomocí:

	:write

  Po příštím startu Vim se zapne zvýrazňování syntaxe.
  Do souboru "vimrc" můžeš přidat všechny svoje upřednostňované nastavení.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Toto ukončuje výuku Vim, která byla myšlená jako stručný přehled
  editoru Vim, tak akorát postačující pro lehké a obstojné používání editoru.
  Tato výuka má daleko od úplnosti, protože Vim obsahuje podstatně více
  příkazů. Dále si přečti uživatelský manuál: ":help user-manual".

  Pro další studium je doporučená kniha:
	Vim - Vi Improved - od Steve Oualline
	Nakladatel: New Riders
  První kniha určená pro Vim. Obzvláště vhodná pro začátečníky.
  Obsahuje množství příkladů a obrázků.
  viz http://iccf-holland.org/click5.html

  Tato kniha je starší a více věnovaná Vi než Vim, ale také doporučená:
	Learning the Vi Editor - od Linda Lamb
	Nakladatel: O'Reilly & Associates Inc.
  Je to dobrá kniha pro získání vědomostí téměř o všem, co můžete s Vi dělat.
  Šesté vydání obsahuje též informace o Vim.

  Tato výuka byla napsaná autory Michael C. Pierce a Robert K. Ware,
  Colorado School of Mines s použitím myšlenek od: Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Upravil pro Vim: Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Překlad do češtiny: Luboš Turek
  E-Mail: lubos.turek@gmail.com
  2007 Feb 28 
PK�j�ZN�^^vim80/tutor/README.txtnu�[���Tutor is a "hands on" tutorial for new users of the Vim editor.

Most new users can get through it in less than one hour. The result
is that you can do a simple editing task using the Vim editor.

Tutor is a file that contains the tutorial lessons. You can simply
execute "vim tutor" and then follow the instructions in the lessons.
The lessons tell you to modify the file, so DON'T DO THIS ON YOUR
ORIGINAL COPY.

On Unix you can also use the "vimtutor" program.  It will make a
scratch copy of the tutor first.

I have considered adding more advanced lessons but have not found the
time. Please let me know how you like it and send any improvements you
make.

Bob Ware, Colorado School of Mines, Golden, Co 80401, USA
(303) 273-3987
bware@mines.colorado.edu bware@slate.mines.colorado.edu bware@mines.bitnet

[This file was modified for Vim by Bram Moolenaar]
PK�j�Z�mO�k�kvim80/tutor/tutor.ca.utf-8nu�[���===============================================================================
=    B e n v i n g u t s   a l   t u t o r   d e l   V I M   -   Versió 1.5   =
===============================================================================

   El Vim és un editor molt potent que té moltes ordres, masses com per
   explicar-les totes un tutor com aquest. Aquest tutor està dissenyat
   per descriure les ordres bàsiques que us permetin fer servir el Vim com
   a editor de propòsit general.

   El temps aproximat de seguir el tutor complet és d'uns 25 o 30 minuts
   depenent de quant temps dediqueu a experimentar.

   Feu una còpia d'aquest fitxer per practicar-hi (si heu començat amb el
   programa vimtutor això que esteu llegint ja és una còpia).

   És important recordar que aquest tutor està pensat per ensenyar
   practicant. És a dir, que haureu d'executar les ordres si les voleu
   aprendre. Si només llegiu el text el més probable és que les oblideu.

   Ara assegureu-vos que la tecla de bloqueig de majúscules no està
   activada i premeu la tecla   j   per moure el cursor avall, fins que
   la lliçó 1.1 ocupi completament la pantalla.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lliçó 1.1:  MOURE EL CURSOR


  ** Per moure el cursor premeu les tecles h,j,k,l tal com està indicat. **
       ^
       k	Pista: La h és a l'esquerra i mou el cursor cap a l'esquerra.
  < h	  l >	       La l és a la dreta i mou el cursor cap a la dreta.
       j	       La j sembla una fletxa cap avall.
       v
  1. Moveu el cursor per la pantalla fins que us sentiu confortables.

  2. Mantingueu premuda la tecla avall (j) una estona.
---> Ara sabeu com moure-us fins a la pròxima lliçó.

  3. Usant la tecla avall, aneu a la lliçó 1.2.

Nota: Si no esteu segurs de la tecla que heu premut, premeu <ESC> per tornar
      al mode Normal. Llavors torneu a teclejar l'ordre que volíeu.

Nota: Les tecles de moviment del cursor (fletxes) també funcionen. Però usant
      hjkl anireu més ràpid, quan us hi hàgiu acostumant.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 1.2: ENTRAR I SORTIR DEL VIM


  !! NOTA: Abans de seguir els passos següents llegiu *tota* la lliçó!!

  1. Premeu <ESC> (per estar segurs que esteu en el mode Normal).

  2. Teclegeu:			:q! <ENTRAR>.

---> Amb això sortireu de l'editor SENSE desar els canvis que hàgiu pogut
     fer. Si voleu desar els canvis teclegeu:
				:wq  <ENTRAR>

  3. Quan vegeu l'introductor de la shell escriviu l'ordre amb la qual heu
     arribat a aquest tutor. Podria ser:   vimtutor <ENTRAR>
			     O bé:	   vim tutor <ENTRAR>

---> 'vim' és l'editor vim, i 'tutor' és el fitxer que voleu editar.

  4. Si heu memoritzat les ordres, feu els passos anteriors, de l'1 al 3,
     per sortir i tornar a entrar a l'editor. Llavors moveu el cursor avall
     fins la lliçó 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lliçó 1.3: EDITAR TEXT - ESBORRAR


  ** En mode Normal premeu  x  per esborrar el caràcter de sota el cursor. **

  1. Moveu el cursor fins la línia que hi ha més avall marcada amb --->.

  2. Poseu el cursor a sobre el caràcter que cal esborrar, per corregir els
     errors.

  3. Premeu la tecla   x   per esborrar el caràcter.

  4. Repetiu els passos 2 i 3 fins que la frase sigui correcta.

---> Unna vaaca vva salttar sobbree la llluna.

  5. Ara que la línia és correcta, aneu a la lliçó 1.4.

NOTA: Mentre aneu fent no tracteu de memoritzar, practiqueu i prou.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 1.4: EDITAR TEXT - INSERIR


	    ** En mode Normal premeu   i   per inserir text. **

  1. Moveu el cursor avall fins la primera línia marcada amb --->.

  2. Per fer la primera línia igual que la segona poseu el cursor sobre el
     primer caràcter POSTERIOR al text que s'ha d'inserir.

  3. Premeu la tecla  i  i escriviu el text que falta.

  4. Quan hàgiu acabat premeu <ESC> per tornar al mode Normal. Repetiu
     els passos 2, 3 i 4 per corregir la frase.

---> Falten carctrs en aquesta .
---> Falten alguns caràcters en aquesta línia.

  5. Quan us trobeu còmodes inserint text aneu al sumari de baix.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LLIÇÓ 1 SUMARI


  1. El cursor es mou amb les fletxes o bé amb les tecles hjkl.
	 h (esquerra)	j (avall)       k (amunt)    l (dreta)

  2. Per entrar al Vim (des de la shell) escriviu:  vim FITXER <ENTRAR>

  3. Per sortir teclegeu:   <ESC>   :q!	 <ENTRAR>  per descartar els canvis.
	   O BÉ teclegeu:   <ESC>   :wq	 <ENTRAR>  per desar els canvis.

  4. Per esborrar el caràcter de sota el cursor en el mode Normal premeu:  x

  5. Per inserir text on hi ha el cursor, en mode Normal, premeu:
	 i     escriviu el text    <ESC>

NOTA: La tecla <ESC> us portarà al mode Normal o cancel·larà una ordre
      que estigui a mitges.

Ara continueu amb la lliçó 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 2.1: ORDRES PER ESBORRAR


       ** Teclegeu  dw  per esborrar fins al final d'una paraula. **

  1. Premeu  <ESC>  per estar segurs que esteu en mode normal.

  2. Moveu el cursor avall fins la línia marcada amb --->.

  3. Moveu el cursor fins el principi de la paraula que s'ha d'esborrar.

  4. Teclegeu   dw  per fer desaparèixer la paraula.

NOTA: Les lletres dw apareixeran a la línia de baix de la pantalla mentre
      les aneu escrivint. Si us equivoqueu premeu <ESC> i torneu a començar.

---> Hi han algunes paraules divertit que no pertanyen paper a aquesta frase.

  5. Repetiu el passos 3 i 4 fins que la frase sigui correcta i continueu a
     la lliçó 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lliçó 2.2: MÉS ORDRES PER ESBORRAR


	** Escriviu  d$  per esborrar fins al final de la línia. **

  1. Premeu  <ESC>  per estar segurs que esteu en el mode Normal.

  2. Moveu el cursor avall fins a la línia marcada amb --->.

  3. Moveu el cursor fins el final de la línia correcta
     (DESPRÉS del primer . ).

  4. Teclegeu   d$   per esborrar fins al final de la línia.

---> Algú ha escrit el final d'aquesta línia dos cops. línia dos cops.

  5. Aneu a la lliçó 2.3 per entendre què està passant.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 2.3: SOBRE ORDRES I OBJECTES


  El format de l'ordre d'esborrar  d  és el següent:

	 [nombre]   d	objecte	    O BÉ     d	 [nombre]   objecte
  On:
    nombre  - és el nombre de cops que s'ha d'executar (opcional, omissió=1).
    d       - és l'ordre per esborrar.
    objecte - és la cosa amb la qual operar (llista a baix).

  Una petita llista d'objectes:
    w - des del cursor fins al final de la paraula, incloent-hi l'espai.
    e - des del cursor fins al final de la paraula, SENSE incloure l'espai.
    $ - des del cursor fins al final de la línia.

NOTA:  Per als aventurers: si teclegeu només l'objecte, en el mode Normal,
       sense cap ordre, el cursor es mourà tal com està especificat a la
       llista d'objectes.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lliçó 2.4: UNA EXCEPCIÓ A 'ORDRE-OBJECTE'


	       ** Teclegeu   dd   esborrar tota la línia. **

  Com que molt sovint s'han d'eliminar línies senceres els dissenyadors del
  Vi van creure que seria més fàcil teclejar dd per esborrar tota la línia.

  1. Moveu el cursor a la segona línia de la frase de baix.
  2. Teclegeu  dd  per esborrar la línia.
  3. Ara aneu a la quarta línia.
  4. Teclegeu  2dd  per esborrar dues línies (recordeu nombre-ordre-objecte).

      1)  Les roses són vermelles,
      2)  El fang és divertit,
      3)  Les violetes són blaves,
      4)  Tinc un cotxe,
      5)  Els rellotges diuen l'hora,
      6)  El sucre és dolç,
      7)  Igual que tu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lliçó 2.5: L'ORDRE DESFER


 ** Premeu  u  per desfer els últims canvis,  U  per arreglar tota la línia. **

  1. Moveu el cursor sobre el primer error de línia de baix marcada amb --->
  2. Premeu  x  per esborrar el caràcter no desitjat.
  3. Ara premeu  u  per desfer l'última ordre executada.
  4. Aquest cop corregiu tots els errors de la línia amb l'ordre  x.
  5. Ara premeu  U  per restablir la línia al seu estat original.
  6. Ara premeu  u  uns quants cops per desfer  U  i les ordres anteriors.
  7. Ara premeu  CONTROL-R  (les dues tecles al mateix temps) uns quants cops
     per refer les ordres.

---> Correegiu els errors d'aqquesta línia i dessfeu-los aamb desfer.

  8. Aquestes ordres són molt útils. Ara aneu al sumari de la lliçó 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LLIÇÓ 2 SUMARI


  1. Per esborrar del cursor al final de la paraula teclegeu:     dw

  2. Per esborrar del cursor al final de la línia teclegeu:       d$

  3. Per esborrar una línia sencera teclegeu:     dd

  4. El format de qualsevol ordre del mode Normal és:

       [nombre]   ordre   objecte     O BÉ     ordre	[nombre]   objecte
     on:
       nombre  - és quants cops repetir l'ordre
       ordre   - és què fer, com ara  d  per esborrar
       objecte - és amb què s'ha d'actuar, com ara  w  (paraula),
		 $ (fins a final de línia), etc.

  5. Per desfer les accions anteriors premeu:		u
     Per desfer tots el canvis en una línia premeu:	U
     Per desfer l'ordre desfer premeu:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 3.1: L'ORDRE 'POSAR'


 ** Premeu  p  per posar l'última cosa que heu esborrat després del cursor. **


  1. Moveu el cursor a la primera línia de llista de baix.

  2. Teclegeu  dd  per esborrar la línia i desar-la a la memòria.

  3. Moveu el cursor a la línia ANTERIOR on hauria d'anar.

  4. En mode Normal, premeu  p  per inserir la línia.

  5. Repetiu els passos 2, 3 i 4 per ordenar les línies correctament.

     d) Pots aprendre tu?
     b) Les violetes són blaves,
     c) L'intel·ligència s'aprèn,
     a) Les roses són vermelles,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lliçó 3.2: L'ORDRE SUBSTITUIR


 ** Premeu  r  i un caràcter per substituir el caràcter de sota el cursor. **

  1. Moveu el cursor a la primera línia de sota marcada amb --->.

  2. Moveu el cursor a sobre del primer caràcter equivocat.

  3. Premeu  r  i tot seguit el caràcter correcte per corregir l'error.

  4. Repetiu els passos 2 i 3 fins que la línia sigui correcta.

--->  Quen van escroure aquerta línia, algh va apretar tikles equivocades!
--->  Quan van escriure aquesta línia, algú va apretar tecles equivocades!

  5. Ara continueu a la lliçó 3.2.

NOTA: Recordeu que heu de practicar, no memoritzar.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lliçó 3.3: L'ORDRE CANVIAR


	** Per canviar una part o tota la paraula, escriviu  cw . **

  1. Moveu el cursor a la primera línia de sota marcada amb --->.

  2. Poseu el cursor sobre la u de 'lughc'.

  3. Teclegeu  cw  i corregiu la paraula (en aquest cas escriviu 'ínia'.)

  4. Premeu <ESC> i aneu al següent error.

  5. Repetiu els passos 3 i 4 fins que les dues frases siguin iguals.

---> Aquesta lughc té algunes paradskl que s'han de cdddf.
---> Aquesta línia té algunes paraules que s'han de canviar.

Noteu que  cw  no només canvia la paraula, també us posa en mode d'inserció.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 3.4: MÉS CANVIS AMB c


 ** L'ordre canviar s'usa amb els mateixos objectes que l'ordre esborrar. **

  1. L'ordre canviar funciona igual que la d'esborrar. El format és:

       [nombre]   c   objecte	  O BÉ	    c	[nombre]   objecte

  2. Els objectes són els mateixos, com  w  (paraula), $ (final de línia), etc.

  3. Moveu el cursor fins la primera línia marcada amb --->.

  4. Avanceu fins al primer error.

  5. Premeu  c$  per fer la línia igual que la segona i premeu <ESC>.

---> El final d'aquesta línia necessita canvis per ser igual que la segona.
---> El final d'aquesta línia s'ha de corregir amb l'ordre c$.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				LLIÇÓ 3 SUMARI


  1. Per tornar a posar el text que s'ha esborrat, premeu  p . Això posa el
     text esborrat DESPRÉS del cursor (si heu esborrat una línia anirà a
     parar a la línia SEGÜENT d'on hi ha el cursor).

  2. Per substituir el caràcter de sota el cursor, premeu  r  i tot seguit
     el caràcter que ha de reemplaçar l'original.

  3. L'ordre canviar permet canviar l'objecte especificat des del cursor
     fins el final de l'objecte. Per exemple,  cw  canvia el que hi ha des
     del cursor fins al final de la paraula, i  c$  fins al final de línia.

  4. El format de l'ordre canviar és:

	 [nombre]   c	objecte	      O BÉ	c   [nombre]   objecte

Ara aneu a la pròxima lliçó.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lliçó 4.1: SITUACIÓ I ESTAT DEL FITXER


  ** Premeu CTRL-g per veure la situació dins del fitxer i el seu estat.
     Premeu SHIFT-G per anar a una línia determinada. **

  Nota: No proveu res fins que hàgiu llegit TOTA la lliçó!!

  1. Mantingueu premuda la tecla Control i premeu  g . A la part de baix de
     la pàgina apareixerà un línia amb el nom del fitxer i la línia en la
     qual us trobeu. Recordeu el número de la línia pel Pas 3.

  2. Premeu Shift-G per anar al final de tot del fitxer.

  3. Teclegeu el número de la línia on éreu i després premeu Shift-G. Això
     us tornarà a la línia on éreu quan heu premut per primer cop Ctrl-g.
     (Quan teclegeu el número NO es veurà a la pantalla.)

  4. Ara executeu els passos de l'1 al 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lliçó 4.2: L'ORDRE CERCAR


	   ** Premeu  /  seguit de la frase que vulgueu cercar. **

  1. En el mode Normal premeu el caràcter  / . Noteu que el cursor apareix
     a la part de baix de la pantalla igual que amb l'ordre  : .

  2. Ara escriviu 'errroor' <ENTRAR>. Aquesta és la paraula que voleu
     cercar.

  3. Per tornar a cercar la mateixa frase, premeu  n .
     Per cercar la mateixa frase en direcció contraria, premeu Shift-N .

  4. Si voleu cercar una frase en direcció ascendent, useu l'ordre  ?  en
     lloc de /.

---> "errroor" no és com s'escriu error; errroor és un error.

Note: Quan la cerca arribi al final del fitxer continuarà a l'inici.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lliçó 4.3: CERCA DE PARÈNTESIS


	   ** Premeu  %  per cercar el ),], o } corresponent. **

  1. Poseu el cursor en qualsevol (, [, o { de la línia marcada amb --->.

  2. Ara premeu el caràcter  % .

  3. El cursor hauria d'anar a la clau o parèntesis corresponent.

  4. Premeu  %  per tornar el cursor al primer parèntesi.

---> Això ( és una línia amb caràcters (, [ ] i { } de prova. ))

Nota: Això és molt útil per trobar errors en programes informàtics!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lliçó 4.4: UNA MANERA DE CANVIAR ERRORS


       ** Escriviu  :s/vell/nou/g  per substituir 'vell' per 'nou'. **

  1. Moveu el cursor a la línia de sota marcada amb --->.

  2. Escriviu  :s/laa/la <ENTRAR> . Aquesta ordre només canvia la primera
     coincidència que es trobi a la línia.

  3. Ara escriviu  :s/laa/la/g  per fer una substitució global. Això
     canviarà totes les coincidències que es trobin a la línia.

---> laa millor època per veure laa flor és laa primavera.

  4. Per canviar totes les coincidències d'una cadena entre dues línies,
     escriviu  :#,#s/vell/nou/g  on #,# són els nombres de les línies.
     Escriviu  :%s/vell/nou/g  per substituir la cadena a tot el fitxer.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LLIÇÓ 4 SUMARI


  1. Ctrl-g mostra la posició dins del fitxer i l'estat del mateix.
     Shift-G us porta al final del fitxer. Un número seguit de Shift-G
     us porta a la línia corresponent.

  2. L'ordre  /  seguida d'una frase cerca la frase ENDAVANT.
     L'ordre  ?  seguida d'una frase cerca la frase ENDARRERE.
     Després d'una cerca premeu  n  per trobar la pròxima coincidència en
     la mateixa direcció, o  Shift-N  per cercar en la direcció contrària.

  3. L'ordre  %  quan el cursor és a sobre un (,),[,],{, o } troba la
     parella corresponent.

  4. Per substituir el primer 'vell' per 'nou' en una línia   :s/vell/nou
     Per substituir tots els 'vell' per 'nou' en una línia    :s/vell/nou/g
     Per substituir frases entre les línies # i #	      :#,#s/vell/nou/g
     Per substituir totes les coincidències en el fitxer      :%s/vell/nou/g
     Per demanar confirmació cada cop afegiu 'c'	      :%s/vell/nou/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lliçó 5.1: COM EXECUTAR UNA ORDRE EXTERNA


       ** Teclegeu  :!  seguit d'una ordre externa per executar-la. **

  1. Premeu el familiar  :  per col·locar el cursor a la part de baix de
     la pantalla.  Això us permet entrar una ordre.

  2. Ara teclegeu el caràcter  !  (signe d'exclamació). Això us permet
     executar qualsevol ordre de la shell.

  3. Com a exemple escriviu  ls  i tot seguit premeu <ENTRAR>. Això us
     mostrarà el contingut del directori, tal com si estiguéssiu a la
     línia d'ordres. Feu servir  :!dir  si ls no funciona.

Nota:  D'aquesta manera es pot executar qualsevol ordre externa.

Nota:  Totes les ordres  :  s'han d'acabar amb la tecla <ENTRAR>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lliçó 5.2: MÉS SOBRE L'ESCRIPTURA DE FITXERS


	  ** Per desar els canvis fets, escriviu  :w  FITXER. ***

  1. Escriviu  :!dir  o bé  :!ls  per obtenir un llistat del directori.
     Ja sabeu que heu de prémer <ENTRAR> després d'això.

  2. Trieu un nom de fitxer que no existeixi, com ara PROVA.

  3. Ara feu:  :w PROVA  (on PROVA és el nom que heu triat.)

  4. Això desa tot el fitxer amb el nom de PROVA. Per comprovar-ho
     escriviu  :!dir  per veure el contingut del directori.

Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
      fitxer serà una còpia exacta del tutor que heu desat.

  5. Ara esborreu el fitxer teclejant (MS-DOS):   :!del PROVA
				   o bé (Unix):   :!rm PROVA


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lliçó 5.3: UNA ORDRE SELECTIVA PER DESAR


	** Per desar una part del fitxer, escriviu  :#,# w FITXER **

  1. Un altre cop, feu  :!dir  o  :!ls  per obtenir un llistat del directori
     i trieu un nom de fitxer adequat com ara PROVA.

  2. Moveu el cursor a dalt de tot de la pàgina i premeu  Ctrl-g  per
     saber el número de la línia.  RECORDEU AQUEST NÚMERO!

  3. Ara aneu a baix de tot de la pàgina i torneu a prémer  Ctrl-g.
     RECORDEU AQUEST NÚMERO TAMBÉ!

  4. Per desar NOMÉS una secció en un fitxer, escriviu  :#,# w PROVA  on
     #,# són els dos números que heu recordat (dalt,baix) i PROVA el nom
     del fitxer.

  5. Mireu que el fitxer nou hi sigui amb  :!dir  però no l'esborreu.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lliçó 5.4: OBTENIR I AJUNTAR FITXERS


	 ** Per inserir el contingut d'un fitxer, feu  :r FITXER **

  1. Assegureu-vos, amb l'ordre  :!dir , que el fitxer PROVA encara hi és.

  2. Poseu el cursor a dalt de tot d'aquesta pàgina.

NOTA:  Després d'executar el Pas 3 veureu la lliçó 5.3. Aleshores moveu-vos
       cap avall fins a aquesta lliçó un altre cop.

  3. Ara obtingueu el fitxer PROVA amb l'ordre  :r PROVA  on PROVA és el
     nom del fitxer.

NOTA:  El fitxer que obtingueu es posa en el lloc on hi hagi el cursor.

  4. Per comprovar que s'ha obtingut el fitxer tireu enrere i mireu com
     ara hi han dues còpies de la lliçó 5.3: l'original i la del fitxer.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				LLIÇÓ 5 SUMARI


  1.  :!ordre  executa una ordre externa.

      Alguns exemples útils són:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		 -  mostra un llistat del directori
	  :!del FITXER     :!rm FITXER   -  esborra el fitxer FITXER

  2.  :w FITXER  escriu el fitxer editat al disc dur, amb el nom FITXER.

  3.  :#,#w FITXER  desa les línies de # a # en el fitxer FITXER.

  4.  :r FITXER  llegeix el fitxer FITXER del disc dur i l'insereix en el
      fitxer editat a la posició on hi ha el cursor.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lliçó 6.1: L'ORDRE OBRIR


** Premeu  o  per obrir una línia sota el cursor i entrar en mode inserció. **

  1. Moveu el cursor a la línia de sota marcada amb --->.

  2. Premeu  o  (minúscula) per obrir una línia SOTA el cursor i situar-vos
     en mode d'inserció.

  3. Ara copieu la línia marcada amb ---> i premeu <ESC> per tornar al mode
     normal.

---> Després de prémer  o  el cursor es situa a la línia nova en mode inserció.

  4. Per obrir una línia SOBRE el cursor, premeu la  O  majúscula, en lloc
     de la minúscula. Proveu-ho amb la línia de sota.
Obriu una línia sobre aquesta amb Shift-O amb el cursor en aquesta línia.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 6.2: L'ORDRE AFEGIR


	    ** Premeu  a  per afegir text DESPRÉS del cursor. **

  1. Moveu el cursor al final de la primera línia de sota marcada
     amb ---> prement  $  en el mode Normal.

  2. Premeu la lletra  a  (minúscula) per afegir text DESPRÉS del caràcter
     sota el cursor.  (La  A  majúscula afegeix text al final de línia.)

Nota: Així s'evita haver de prémer  i , l'últim caràcter, el text a inserir,
      la tecla <ESC>, cursor a la dreta, i finalment  x , només per afegir
      text a final de línia.

  3. Ara completeu la primera línia. Tingueu en compte que aquesta ordre
     és exactament igual que la d'inserir, excepte pel que fa al lloc on
     s'insereix el text.

---> Aquesta línia us permetrà practicar
---> Aquesta línia us permetrà practicar afegir text a final de línia.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lliçó 6.3: UNA ALTRA MANERA DE SUBSTITUIR


      ** Teclegeu una  R  majúscula per substituir més d'un caràcter. **

  1. Moveu el cursor a la línia de sota marcada amb --->.

  2. Poseu el cursor al principi de la primera paraula que es diferent
     respecte a la segona línia marcada amb ---> (la paraula "l'última").

  3. Ara premeu  R  i substituïu el que queda de text a la primera línia
     escrivint sobre el text vell, per fer-la igual que la segona.

---> Per fer aquesta línia igual que l'última useu les tecles.
---> Per fer aquesta línia igual que la segona, premeu R i el text nou.

  4. Tingueu en compte que en prémer <ESC> per sortir, el text que no
     s'hagi alterat es manté.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 6.4: ESTABLIR OPCIONS

      ** Feu que les ordres cercar o substituir ignorin les diferències
		     entre majúscules i minúscules **

  1. Cerqueu la paraula 'ignorar' amb: /ignorar
     Repetiu-ho uns quants cops amb la tecla n.

  2. Establiu l'opció 'ic' (Ignorar Capitals) escrivint:
     :set ic

  3. Ara cerqueu 'ignorar' un altre cop amb la tecla n.
     Repetiu-ho uns quants cops més.

  4. Establiu les opcions 'hlsearch' i 'incsearch':
     :set hls is

  5. Ara torneu a executar una ordre de cerca, i mireu què passa:
     /ignorar

  6. Per treure el ressalt dels resultats, feu:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      LLIÇÓ 6 SUMARI


  1. L'ordre  o  obre una línia SOTA la del cursor i mou el cursor a la nova
     línia, en mode Inserció.
     La  O  majúscula obre la línia a SOBRE la que hi ha el cursor.

  2. Premeu una  a  per afegir text DESPRÉS del caràcter sota el cursor.
     La  A  majúscula afegeix automàticament el text a final de línia.

  3. L'ordre  R  majúscula us posa en mode substitució fins que premeu <ESC>.

  4. Escriviu ":set xxx" per establir l'opció "xxx"









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  LLIÇÓ 7: ORDRES D'AJUDA


		 ** Utilitzeu el sistema intern d'ajuda **

  El Vim té un extens sistema d'ajuda. Per llegir una introducció proveu una
  d'aquestes tres coses:
	- premeu la tecla <AJUDA> (si en teniu alguna)
	- premeu la tecla <F1> (si en teniu alguna)
	- escriviu   :help <ENTRAR>

  Teclegeu  :q <ENTRAR>  per tancar la finestra d'ajuda.

  Podeu trobar ajuda sobre pràcticament qualsevol tema donant un argument
  a l'ordre ":help". Proveu això (no oblideu prémer <ENTRAR>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       LLIÇÓ 8: CREAR UN SCRIPT D'INICI

		     ** Activar funcions automàticament **

 El Vim té moltes més funcions que el Vi, però moltes estan desactivades per
 omissió. Per començar a utilitzar més funcions heu de crear un fitxer "vimrc".

  1. Comenceu a editar el fitxer "vimrc", depenent del sistema
	:edit ~/.vimrc			per Unix
	:edit $VIM/_vimrc		per MS-Windows

  2. Ara llegiu el fitxer "vimrc" d'exemple:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Deseu el fitxer amb:

	:write

 El pròxim cop que executeu el Vim usarà ressalt de sintaxi.
 Podeu afegir els ajustos que vulgueu en aquest fitxer "vimrc".

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Aquí conclou el Tutor del Vim. Ha sigut un intent de fer-vos una breu
  introducció a l'editor Vim, suficient com per què el pugueu començar a fer
  servir. Està lluny de ser complet perquè el Vim té moltes més ordres.
  Llegiu el manual de l'usuari: ":help user-manual".

  Per un estudi més profund us recomanem el següent llibre:
	Vim - Vi Improved - de Steve Oualline
	Editorial: New Riders
  És el primer llibre dedicat completament al Vim, especialment útil per a
  usuaris novells. Té molts exemples i dibuixos.
  Vegeu http://iccf-holland.org/click5.html

  Aquest altre és més vell i tracta més sobre el Vi que sobre el Vim:
	Learning the Vi Editor - de Linda Lamb
	Editorial: O'Reilly & Associates Inc.
  És un bon llibre per saber qualsevol cosa que desitgeu sobre el Vi.
  La sisena edició també inclou informació sobre el Vim.

  Aquest tutorial ha estat escrit per Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines amb la col·laboració de Charles Smith,
  Colorado State University. E-mail: bware@mines.colorado.edu.

  Modificat pel Vim per Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z��8:j:jvim80/tutor/tutor.hu.cp1250nu�[���===============================================================================
== � d v � z � l j � k   a   V I M - o k t a t � b a n  -    1.5-�s  verzi�  ==
===============================================================================

     A Vim egy nagyon hat�kony szerkeszt�, amelynek rengeteg utas�t�sa
     van, t�l sok, hogy egy ilyen oktat�ban (tutorban), mint az itteni
     mindet elmagyar�zzuk. Ez az oktat� arra t�rekszik, hogy annyit
     elmagyar�zzon, amennyi el�g, hogy k�nnyed�n haszn�ljuk a Vim-et, az
     �ltal�nos c�l� sz�vegszerkeszt�t.

     A feladatok megold�s�hoz 25-30 perc sz�ks�ges att�l f�gg�en,
     mennyit t�lt�nk a k�s�rletez�ssel.

     A leck�ben szerepl� utas�t�sok m�dos�tani fogj�k a sz�veget.
     K�sz�tsen m�solatot err�l a f�jlr�l, ha gyakorolni akar.
     (Ha "vimtutor"-ral ind�totta, akkor ez m�r egy m�solat.)

     Fontos meg�rteni, hogy ez az oktat� cselekedve tan�ttat.
     Ez azt jelenti, hogy �nnek aj�nlott v�grehajtania az utas�t�sokat,
     hogy megfelel�en megtanulja azokat. Ha csak olvassa, elfelejti!

     Most bizonyosodjon, meg, hogy a Caps-Lock gombja NINCS lenyomva, �s
     Nyomja meg megfelel� sz�m�szor a   j   gombot, hogy az 1.1-es
     lecke teljesen a k�perny�n legyen!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			1.1.  lecke:  A KURZOR MOZGAT�SA


   ** A kurzor mozgat�s�hoz nyomja meg a h,j,k,l gombokat az al�bbi szerint. **
	     ^
	     k		    Tipp:  A h billenty� van balra, �s balra mozgat
       < h	 l >		   A l billenty� van jobbra, �s jobbra mozgat
	     j			   A j billenty� olyan, mint egy lefele ny�l
	     v
  1. Mozgassa a kurzort k�rbe az ablakban, am�g hozz� nem szokik!

  2. Tartsa lenyomva a lefel�t (j), akkor ism�tl�dik!
---> Most tudja, hogyan mehet a k�vetkez� leck�re.

  3. A lefel� gomb haszn�lat�val menjen a 1.2. leck�re!

Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
      norm�l m�dba ker�lj�n, �s ism�telje meg a parancsot!

Megj: A kurzor gomboknak is m�k�dni�k kell, de a hjkl haszn�lat�val
      sokkal gyorsabban tud, mozogni, ha hozz�szokik.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.2.  lecke: BE �S KIL�P�S A VIMB�L


  !! MEGJ: Miel�tt v�grehajtja az al�bbi l�p�seket, olvassa v�gig a leck�t !!

  1. Nyomja meg az  <ESC> gombot (hogy biztosan norm�l m�dban legyen).

  2. �rja:			:q! <ENTER>.

---> Ezzel kil�p a szerkeszt�b�l a v�ltoz�sok MENT�SE N�LK�L.
     Ha menteni szeretn� a v�ltoz�sokat �s kil�pni, �rja:
				:wq  <ENTER>

  3. Amikor a shell promptot l�tja, �rja be a parancsot, amely ebbe az
     oktat�ba hozza:
     Ez val�sz�n�leg:	vimtutor <ENTER>
     Norm�lis esetben ezt �rn�:	vim tutor.hu <ENTER>

---> 'vim' jelenti a vimbe bel�p�st, 'tutor.hu' a f�jl, amit szerkeszteni k�v�n.

  4. Ha megjegyezte a l�p�seket �s biztos mag�ban, hajtsa v�gre a l�p�seket
     1-t�l 3-ig, hogy kil�pjen �s visszat�rjen a szerkeszt�be. Azut�n
     menjen az 1.3.  leck�re.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.3.  lecke: SZ�VEG SZERKESZT�SE - T�RL�S


** Norm�l m�dban nyomjon  x-et, hogy a kurzor alatti karaktert t�r�lje. **

  1. Mozgassa a kurzort a ---> kezdet� sorra!

  2. A hib�k kijav�t�s�hoz mozgassa a kurzort am�g a t�rlend� karakter
     f�l� nem �r.

  3. Nyomja meg az  x  gombot, hogy t�r�lje a nem k�v�nt karaktert.

  4. Ism�telje a 2, 3, 4-es l�p�seket, hogy kijav�tsa a mondatot.

---> ��szi �jjjell izziik aa galaggonya rruuh�ja.

  5. Ha a sor helyes, ugorjon a 1.4. leck�re.

MEGJ: A tanul�s sor�n ne memoriz�lni pr�b�ljon, hanem haszn�lat sor�n tanuljon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.4.  lecke: SZ�VEG SZERKESZT�SE - BESZ�R�S


	 ** Norm�l m�dban  i  megnyom�s�val lehet beilleszteni. **

  1. Az al�bbi els� ---> kezdet� sorra menjen.

  2. Ahhoz, hogy az els�t azonoss� tegye a m�sodikkal, mozgassa a kurzort
     az els� karakterre, amely UT�N sz�veget kell besz�rni.

  3. Nyomjon  i-t �s �rja be a megfelel� sz�veget.

  4. Amikor mindent be�rt, nyomjon <ESC>-et, hogy Norm�l m�dba visszat�rjen.
     Ism�telje a 2 �s 4 k�z�tti l�p�seket, hogy kijav�tsa a mondatot.

---> Az �that� so�l hizik p�r �sz.
---> Az itt l�that� sorb�l hi�nyzik p�r r�sz.

  5. Ha m�r begyakorolta a besz�r�st, menjen az al�bbi �sszefoglal�ra.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       1. LECKE �SSZEFOGLAL�JA


  1. A kurzort vagy a nyilakkal vagy a hjkl gombokkal mozgathatja.
	 h (balra)	j (le)       k (fel)	    l (jobbra)

  2. A Vimbe (a $ promptt�l) �gy l�phet be:  vim FILENAME <ENTER>

  3. A Vimb�l �gy l�phet ki:  <ESC>   :q!  <ENTER>  a v�ltoztat�sok eldob�s�val.
	     vagy �gy:	      <ESC>   :wq  <ENTER>  a v�ltoz�sok ment�s�vel.

  4. A kurzor alatti karakter t�rl�se norm�l m�dban:  x

  5. Sz�veg besz�r�sa a kurzor ut�n norm�l m�dban:
	 i     g�pelje be a sz�veget	<ESC>

MEGJ: Az <ESC> megnyom�sa norm�l m�dba viszi, vagy megszak�t egy nem befejezett
      r�szben befejezett parancsot.

Most folytassuk a 2. leck�vel!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			2.1.  lecke: T�RL� UTAS�T�SOK


	    ** dw  t�r�l a sz� v�g�ig. **

  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy norm�l m�dban van!

  2. Mozgassa a kurzort a ---> kezdet� sorra!

  3. Mozgassa a kurzort arra annak a sz�nak az elej�re, amit t�r�lni szeretne.
     T�r�lje az �llatokat a mondatb�l.

  4. A sz� t�rl�s�hez �rja:   dw

  MEGJ: Ha rosszul kezdte az utas�t�st csak nyomjon <ESC> gombot
        a megszak�t�s�hoz.

---> P�r sz� kutya nem uhu illik pingvin a mondatba teh�n.

  5. Ism�telje a 3 �s 4 k�z�tti utas�t�sokat am�g kell �s ugorjon a 2.2 leck�re!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      2.2.  lecke: M�G T�BB T�RL� UTAS�T�S


	   ** d$ be�r�s�val a sor v�g�ig t�r�lhet. **

  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy norm�l m�dban van!

  2. Mozgassa a kurzort a ---> kezdet� sorra!

  3. Mozgassa a kurzort a helyes sor v�g�re (az els� . UT�N)!

  4. d$  beg�pel�s�vel t�r�lje a sor v�g�t!

---> Valaki a sor v�g�t k�tszer g�pelte be. k�tszer g�pelte be.


  5. Menjen a 2.3. leck�re, hogy meg�rtse mi t�rt�nt!





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     2.3.  lecke: UTAS�T�SOKR�L �S MOZG�SOKR�L


  A  d  (delete=t�rl�s) utas�t�s form�ja a k�vetkez�:

	 [sz�m]   d	mozg�s	   VAGY	     d	 [sz�m] mozg�s
  Ahol:
    sz�m - h�nyszor hajt�djon v�gre a parancs (elhagyhat�, alap�rt�k=1).
    d - a t�rl�s (delete) utas�t�s.
    mozg�s - amin a parancsnak teljes�lnie kell (al�bb list�zva).

  Mozg�sok r�vid list�ja:
    w - a kurzort�l a sz� v�g�ig, bele�rtve a sz�k�zt.
    e - a kurzort�l a sz� v�g�ig, NEM bele�rtve a sz�k�zt.
    $ - a kurzort�l a sor v�g�ig.

MEGJ:  Csup�n a mozg�s beg�pel�s�vel (parancs n�lk�l)
       a kurzor mozg�s �ltal megadott helyre ker�l.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		2.4.  lecke: EG�SZ SOROK FELDOLGOZ�SA


	       ** dd be�r�s�val t�r�lheti az eg�sz sort. **

  A teljes sor t�rl�s�nek gyakoris�ga miatt a Vi tervez�i elhat�rozt�k,
  hogy k�nnyebb lenne csup�n a d-t k�tszer megnyomni, hogy egy sort t�r�lj�nk.

  1. Mozgassa a kurzort az al�bbi kifejez�sek m�sodik sor�ra!
  2. dd beg�pel�s�vel t�r�lje a sort!
  3. Menjen a 3. (eredetileg 4.) sorra!
  4. 2dd   (ugyeb�r sz�m-utas�t�s-mozg�s) beg�pel�s�vel t�r�lj�n k�t sort!

      1)  Alv� szegek a j�ghideg homokban,
      2)  - kezdi a k�lt� -
      3)  Plak�tmag�nyban �z� �jjelek.
      4)  Pingvinek ne f�ljetek,
      5)  T�volr�l egy vaku villant,
      6)  �gve hagytad a folyos�n a villanyt.
      7)  Ma ontj�k v�remet.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   2.5.  lecke: A VISSZAVON�S (UNDO) PARANCS


** u g�pel�s�vel visszavonhat� az utols� parancs, U az eg�sz sort helyre�ll�tja. **

  1. Menj�nk az al�bbi ---> kezdet� sor els� hib�j�ra!
  2. x  lenyom�s�val t�r�lje az els� felesleges karaktert!
  3. u megnyom�s�val vonja vissza az utols�nak v�grehajtott utas�t�st!
  4. M�sodj�ra jav�tson ki minden hib�t a sorban az x utas�t�ssal!
  5. Most nagy  U  -val �ll�tsa vissza a sor eredeti �llapot�t!
  6. Nyomja meg az u gombot p�rszor, hogy az U �s az azt megel�z� utas�t�sokat
     vissza�ll�tsa!
  7. CTRL-R (CTRL gomb lenyom�sa mellett �ss�n R-t) p�rszor csin�lja �jra a
     visszavont parancsokat (redo)!

---> Jav��tsa a hhib�kaat ebbben a sooorban majd �ll�tsa visszaaa az eredetit.

  8. Ezek nagyon hasznos parancsok. Most ugorjon a 2. lecke �sszefoglal�j�ra.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       2. LECKE �SSZEFOGLAL�JA


  1. T�rl�s a kurzort�l a sz� v�g�ig:    dw

  2. T�rl�s a kurzort�l a sor v�g�ig:    d$

  3. Eg�sz sor t�rl�se:    dd

  4. Egy utas�t�s alakja norm�l m�dban:

       [sz�m]   utas�t�s   mozg�s   VAGY   utas�t�s	[sz�m] mozg�s
     ahol:
       sz�m - h�nyszor ism�telj�k a parancsot
       utas�t�s - mit tegy�nk, pl. d  a t�rl�skor
       mozg�s - mire hasson az utas�t�s, p�ld�ul w (sz�=word),
		$ (a sor v�g�ig), stb.

  5. Az el�z� tett visszavon�sa (undo):	     u	 (kis u)
     A sor �sszes v�ltoz�s�nak visszavon�sa: U	 (nagy U)
     Visszavon�sok visszavon�sa:	     CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		3.1.  lecke: A BEILLESZT�S (PUT) PARANCS


  ** p  le�t�s�vel az utols�nak t�r�ltet a kurzor ut�n illeszthetj�k. **

  1. Mozgassuk a kurzort az al�bbi sorok els� sor�ra.

  2. dd le�t�s�vel t�r�lj�k a sort �s elt�rol�dik a Vim puffer�ben.

  3. Mozgassuk a kurzort azel�tt a  sor EL�TTI sorba, ahov� mozgatni
     szeretn�nk a t�r�lt sort.

  4. Norm�l m�dban �rjunk  p   bet�t a t�r�lt sor beilleszt�s�hez.

  5. Folytassuk a 2-4. utas�t�sokkal hogy a helyes sorrendet kapjuk.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       3.2.  lecke: AZ �T�R�S (REPLACE) PARANCS


** r  �s  a karakterek le�t�s�vel a kurzor alatti karaktert megv�ltoztatjuk. **

  1. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  2. Mozgassuk a kurzort az els� hiba f�l�!

  3. r	majd a k�v�nt karakter le�t�s�vel v�ltoztassuk meg a hib�sat!

  4. A 2. �s 3. l�p�sekkel jav�tsuk az �sszes hib�t!

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Menj�nk a 3.2. leck�re!

MEGJ: Eml�kezzen, hogy nem memoriz�l�ssal, hanem gyakorl�ssal tanuljon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			3.3.  lecke: A CSERE (CHANGE) PARANCS


	   ** A sz� egy r�sz�nek megv�ltoztat�s�hoz �rjuk:  cw . **

  1. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  2. Vigye a kurzort a Ezen sz� z bet�je f�l�!

  3. cw �s a helyes sz�r�sz (itt 'bben') be�r�s�val jav�tsa a sz�t!

  4. <ESC> lenyom�sa ut�n a k�vetkez� hib�ra ugorjon (az els� cser�lend�
     karakterre)!

  5. A 3. �s 4. l�p�sek ism�tl�s�vel az els� mondatot tegye a m�sodikkal
     azonoss�!

---> Ezen a sorrrrr p�r sz�ra meg kell v�ltozzanak a change utask�r�s�.
---> Ebben a sorban p�r sz�t meg kell v�ltoztatni a change utas�t�ssal.

Vegy�k �szre, hogy a  cw  nem csak a sz�t �rja �t, hanem besz�r�
(insert) m�dba v�lt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       3.4.  lecke: T�BBF�LE V�LTOZTAT�S c-VEL


 ** A c utas�t�s haszn�lhat� ugyanazokkal az mozg�sokkal mint a t�rl�s **

  1. A change utas�t�s a t�rl�ssel azonosan viselkedik.  A forma:

       [sz�m]   c   mozg�s	   OR	    c	[sz�m]   mozg�s

  2. A mozg�sok is azonosak, pl.   w (sz�), $ (sorv�g), stb.

  3. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  4. Menj�nk az els� hib�ra!

  5. c$ beg�pel�s�vel a sorv�geket tegy�k azonoss� �s nyomjunk <ESC>-et!

---> Ennek a sornak a v�ge kiigaz�t�sra szorul, hogy megegyezzen a m�sodikkal.
---> Ennek a sornak a v�ge a c$ paranccsal v�ltoztathat� meg.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       3. LECKE �SSZEFOGLAL�JA


  1. A m�r t�r�lt sort beilleszt�s�hez nyomjunk p-t. Ez a t�r�lt sz�veget
     a kurzor UT�N helyezi (ha sor ker�lt t�rl�sre, a kurzor alatti sorba).

  2. A kurzor alatti karakter �t�r�s�hoz az r-et �s azt a karaktert
     nyomjuk, amellyel az eredetit fel�l szeretn�nk �rni.

  3. A v�ltoztat�s (c) utas�t�s a karaktert�l az mozg�s v�g�ig
     v�ltoztatja meg az mozg�st. P�ld�ul a cw a kurzort�l a sz� v�g�ig,
     a c$ a sor v�g�ig.

  4. A v�ltoztat�s form�tuma:

	 [sz�m]   c	mozg�s	VAGY	c   [sz�m]   mozg�s

Ugorjunk a k�vetkez� leck�re!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     4.1.  lecke: HELY �S F�JL�LLAPOT


 ** CTRL-g megnyom�s�val megn�zhetj�k a hely�nket a f�jlban �s a f�jl �llapot�t.
     SHIFT-G le�t�s�vel a f�jl adott sor�ra ugorhatunk. **

  Megj: Olvassuk el az eg�sz leck�t a l�p�sek v�grehajt�sa el�tt!!

  1. Tartsuk nyomva a Ctrl gombot �s nyomjunk  g-t.  Az �llapotsor
     megjelenik a lap alj�n a f�jln�vvel �s az aktu�lis sor sorsz�m�val.
     Jegyezz�k meg a sorsz�mot a 3. l�p�shez!

  2. Nyomjunk Shift-G-t a lap alj�ra ugr�shoz!

  3. �ss�k be az eredeti sor sz�m�t, majd �ss�nk shift-G-t! Ezzel
     visszajutunk az eredeti sorra ahol Ctrl-g-t nyomtunk.
     (A be�rt sz�m NEM fog megjelenni a k�perny�n.)

  4. Ha megjegyezte a feladatot, hajtsa v�gre az 1-3. l�p�seket!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			4.2.  lecke: A KERES�S (SEARCH) PARANCS


  ** / majd a k�v�nt kifejez�s be�r�s�val kereshetj�k meg a kifejez�st. **

  1. Norm�l m�dban �ss�nk  /  karaktert!  Ez �s a kurzor megjelenik
     a k�perny� alj�n, ahogy a : utas�t�s is.

  2. �rjuk be: 'hiibaa' <ENTER>!  Ez az a sz� amit keres�nk.

  3. A kifejez�s �jabb keres�s�hez �ss�k le egyszer�en:  n .
     A kifejez�s ellenkez� ir�nyban t�rt�n� keres�s�hez ezt �ss�k be: Shift-N .

  4. Ha visszafel� szeretne keresni, akkor ? kell a / helyett.

---> "hiibaa" nem a helyes m�dja a hiba le�r�s�nak; a hiibaa egy hiba.

Megj: Ha a keres�s el�ri a f�jl v�g�t, akkor az elej�n kezdi.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   4.3.  lecke: Z�R�JELEK P�RJ�NAK KERES�SE


	   ** % le�t�s�vel megtal�ljuk a ),], vagy }  p�rj�t. **

  1. Helyezze a kurzort valamelyik (, [, vagy { z�r�jelre a ---> kezdet�
     sorban!

  2. �ss�n  %  karaktert!

  3. A kurzor a z�r�jel p�rj�ra fog ugrani.

  4. % le�t�s�vel visszaugrik az eredeti z�r�jelre.

---> Ez ( egy tesztsor (-ekkel, [-ekkel ] �s {-ekkel } a sorban. ))

Megj: Ez nagyon hasznos, ha olyan programot debugolunk, amelyben a
      z�r�jelek nem p�rosak!




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  4.4.  lecke: A HIB�K KIJAV�T�S�NAK EGY M�DJA


    ** :s/r�gi/�j/g beg�pel�s�vel az '�j'-ra cser�lj�k a 'r�gi'-t. **

  1. Menj�nk a ---> kezdet� sorra!

  2. �rjuk be:  :s/eggy/egy <ENTER> .  Ekkor csak az els� v�ltozik meg a
     sorban.

  3. Most ezt �rjuk:	 :s/eggy/egg/g	   amely glob�lisan helyettes�t
     a sorban, azaz minden el�fordul�st.
     Ez a sorban minden el�fordul�st helyettes�t.

---> eggy heggy meggy, szembe j�n eggy m�sik heggy.

  4. K�t sor k�z�tt a karaktersor minden el�fordul�s�nak helyettes�t�se:
     :#,#s/r�gi/�j/g    ahol #,# a k�t sor sorsz�ma.
     :%s/r�gi/�j/g      a f�jlbeli �sszes el�fordul�s helyettes�t�se.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       4. LECKE �SSZEFOGLAL�JA


  1. Ctrl-g  ki�rja az kurzor hely�t a f�jlban �s a f�jl �llapot�t.
     Shift-G a f�jl v�g�re megy, gg az elej�re. Egy sz�m ut�n
     Shift-G  az adott sz�m� sorra ugrik.

  2. /	ut�n egy kifejez�s EL�REFELE keresi a kifejez�st.
  2. ?	ut�n egy kifejez�s VISSZAFELE keresi a kifejez�st.
     Egy keres�s ut�n az  n  a k�vetkez� el�fordul�st keresi azonos ir�nyban
     Shift-N  az ellenkez� ir�nyban keres.

  3. %	beg�pel�s�vel, ha  (,),[,],{, vagy } karakteren vagyunk a z�r�jel
     p�rj�ra ugrik.

  4. az els� r�gi helyettes�t�se �jjal a sorban    :s/r�gi/�j
     az �sszes r�gi helyettes�t�se �jjal a sorban  :s/r�gi/�j/g
     k�t sor k�z�tti kifejez�sekre		   :#,#s/r�gi/�j/g
     # hely�n az aktu�lis sor (.) �s az utols� ($) is �llhat :.,$/r�gi/�j/g
     A f�jlbeli �sszes el�fordul�s helyettes�t�se  :%s/r�gi/�j/g
     Mindenkori meger�s�t�sre v�r 'c' hat�s�ra	   :%s/r�gi/�j/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		5.1.  lecke: K�LS� PARANCS V�GREHAJT�SA


   ** :!  ut�n k�ls� parancsot �rva v�grehajt�dik a parancs. **

  1. �rjuk be az ismer�s : parancsot, hogy a kurzort a  k�perny� alj�ra
     helyezz�k. Ez lehet�v� teszi egy parancs be�r�s�t.

  2. ! (felki�lt�jel) be�r�s�val tegy�k lehet�v� k�ls� h�j (shell)-parancs
     v�grehajt�s�t.

  3. �rjunk p�ld�ul ls parancsot a ! ut�n majd �ss�nk <ENTER>-t.  Ez ki
     fogja list�zni a k�nyvt�runkat ugyan�gy, mintha a shell promptn�l
     lenn�nk.  Vagy �rja ezt  :!dir  ha az ls nem m�k�dik.

Megj:  Ilym�don b�rmely k�ls� utas�t�s v�grehajthat�.

Megj:  Minden  :  parancs ut�n <ENTER>-t kell �tni.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 5.2.  lecke: B�VEBBEN A F�JLOK �R�S�R�L


     ** A f�jlok v�ltoz�sait �gy �rhatjuk ki  :w F�JLN�V. **

  1. :!dir  vagy  :!ls  be�r�s�val list�zzuk a k�nyvt�runkat!
     �n m�r tudja, hogy <ENTER>-t kell �tnie ut�na.

  2. V�lasszon egy f�jlnevet, amely m�g nem l�tezik pl. TESZT!

  3. �rja:	:w TESZT   (ahol TESZT a v�lasztott f�jln�v)!

  4. Ez elmenti a teljes f�jlt (a Vim oktat�j�t) TESZT n�ven.
     Ellen�rz�sk�pp �rjuk ism�t    :!dir   hogy l�ssuk a k�nyvt�rat!
     (Felfel� gombbal : ut�n az el�z� utas�t�sok visszahozhat�ak.)

Megj: Ha �n kil�pne a Vimb�l �s �s visszat�rne a TESZT f�jln�vvel, akkor a
      f�jl az oktat� ment�skori pontos m�solata lenne.

  5. T�vol�tsa el a f�jlt  (MS-DOS):	:!del TESZT
			vagy (Unix):	:!rm TESZT


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    5.3.  lecke: EGY KIV�LASZTOTT R�SZ KI�R�SA


	** A f�jl egy r�sz�nek ki�r�s�hoz �rja :#,# w F�JLN�V **

  1. :!dir  vagy :!ls  be�r�s�val list�zza a k�nyvt�rat, �s v�lasszon egy
     megfelel� f�jlnevet, pl. TESZT.

  2. Mozgassa a kurzort ennek az oldalnak a tetej�re, �s nyomjon
     Ctrl-g-t, hogy megtudja a sorsz�mot.  JEGYEZZE MEG A SZ�MOT!

  3. Most menjen a lap alj�ra, �s �sse be ism�t: Ctrl-g.  EZT A SZ�MOT
     IS JEGYEZZE MEG!

  4. Ha csak ezt a r�sz�t szeretn� menteni a f�jlnak, �rja   :#,# w TESZT
     ahol #,# a k�t sorsz�m, amit megjegyzett, TESZT az �n f�jlneve.

  5. Ism�t n�zze meg, hogy a f�jl ott van (:!dir) de NE t�r�lje.

  6. Vimben l�tezik egy m�sik lehet�s�g: nyomja meg a Shift-V gombp�rt
     az els� menteni k�v�nt soron, majd menjen le az utols�ra, ezut�n
     �rja :w TESZT2   Ekkor a TESZT2 f�jlba ker�l a kijel�lt r�sz.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   5.4.  lecke: F�JLOK VISSZA�LL�T�SA �S �SSZEF�Z�SE


       ** Egy f�jl tartalm�nak beilleszt�s�hez �rja   :r F�JLN�V **

  1. :!dir be�r�s�val n�zze meg, hogy az �n TESZT f�jlja l�tezik m�g.

  2. Helyezze a kurzort ennek az oldalnak a tetej�re.

MEGJ:  A 3. l�p�s ut�n az 5.3. leck�t fogja l�tni. Azut�n LEFEL� indulva
       keresse meg ism�t ezt a leck�t.

  3. Most sz�rja be a TESZT nev� f�jlt a   :r TESZT   paranccsal, ahol
     TESZT az �n f�jlj�nak a neve.

MEGJ:  A f�jl, amit beillesztett a kurzora alatt helyezkedik el.

  4. Hogy ellen�rizz�k, hogy a f�jlt t�nyleg beillesztett�k, menjen
     vissza, �s n�zze meg, hogy k�tszer szerepel az 5.3. lecke! Az eredeti
     mellett a f�jlb�l bem�solt is ott van.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       5. LECKE �SSZEFOGLAL�JA


  1.  :!parancs v�grehajt egy k�ls� utas�t�st.

      P�r hasznos p�lda:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  k�nyvt�rlista ki�r�sa.
	  :!del F�JLN�V    :!rm F�JLN�V    -  F�JLN�V nev� f�jl t�rl�se.

  2.  :w F�JLN�V  ki�rja a jelenlegi Vim-f�jlt a lemezre F�JN�V n�ven.

  3.  :#,#w F�JLN�V  ki�rja a k�t sorsz�m (#) k�z�tti sorokat F�JLN�V-be
      M�sik lehet�s�g, hogy a kezd�sorn�l Shift-v-t nyom lemegy az utols�
      sorra, majd ezt �ti be  :w F�JLN�V

  4.  :r F�JLN�V  beolvassa a F�JLN�V f�jlt �s behelyezi a jelenlegi f�jlba
      a kurzorpoz�ci� ut�ni sorba.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   6.1.  lecke: A MEGNYIT�S (OPEN) PARANCS


** o  be�r�s�val nyit egy �j sort a kurzor alatt �s besz�r� m�dba v�lt **

  1. Mozgassuk a kurzort a ---> kezdet� sorra.

  2. o (kicsi)  be�r�s�val nyisson egy sort a kurzor ALATT! Ekkor
     automatikusan besz�r� (insert) m�dba ker�l.

  3. M�solja le a  ---> jel� sort �s <ESC> megnyom�s�val l�pjen ki
     a besz�r� m�db�l.

---> Az o lenyom�sa ut�n a kurzor a k�vetkez� sor elej�n �ll besz�r� m�dban.

  4. A kurzor FELETTI sor megnyit�s�hoz egyszer�en nagy O bet�t �rjon
kicsi helyett. Pr�b�lja ki a k�vetkez� soron!
Nyisson egy �j sort efelett Shift-O megnyom�s�val, mialatt a kurzor
ezen a soron �ll.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			6.2.  lecke: AZ APPEND PARANCS


	 ** a  lenyom�s�val a kurzor UT�N sz�rhatunk sz�veget. **

  1. Mozgassuk a kurzort a k�vetkez� ---> kezdet� sor v�g�re �gy,
     hogy  norm�l  m�dban  $-t  �r be.

  2. Kis "a" le�t�s�vel sz�veget sz�rhat be AM�G� a karakter m�g�,
     amelyen a kurzor �ll.
     (A nagy "A" az eg�sz sor v�g�re �rja a sz�veget.)

Megj: A Vimben a sor legv�g�re is lehet �llni, azonban ez el�dj�ben
      a Vi-ban nem lehets�ges, ez�rt abban az a n�lk�l el�g k�r�lm�nyes
      a sor v�g�hez sz�veget �rni.

  3. Eg�sz�tse ki az els� sort. Vegye �szre, hogy az a utas�t�s (append)
     teljesen egyezik az i-vel (insert) csup�n a besz�rt sz�veg helye
     k�l�nb�zik.

---> Ez a sor lehet�v� teszi �nnek, hogy gyakorolja
---> Ez a sor lehet�v� teszi �nnek, hogy gyakorolja a sor v�g�re beilleszt�st.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    6.3.  lecke: AZ �T�R�S M�SIK V�LTOZATA


      ** Nagy R  be�r�s�val �rhat fel�l t�bb mint egy karaktert. **

  1. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  2. Helyezze a kurzort az els� sz� elej�re amely elt�r a m�sodik
     ---> kezdet� sor tartalm�t�l (a 'az utols�val' r�szt�l).

  3. Nyomjon R karaktert �s �rja �t a sz�veg marad�k�t az els� sorban
     �gy, hogy a  k�t sor egyez� legyen.

---> Az els� sort tegye azonoss� az utols�val: haszn�lja a gombokat.
---> Az els� sort tegye azonoss� a m�sodikkal: �rjon R-t �s az �j sz�veget.

  4. Jegyezz�k meg, ha <ESC>-et nyomok, akkor a v�ltozatlanul hagyott
     sz�vegek v�ltozatlanok maradnak.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    6.4.  lecke: BE�LL�T�SOK

** �ll�tsuk be, hogy a keres�s �s a helyettes�t�s ne f�ggj�n kis/NAGYbet�kt�l **

  1. Keress�k meg az 'ignore'-t az be�rva:
     /ignore
     Ezt ism�telj�k t�bbsz�r az n billenty�vel

  2. �ll�tsuk be az 'ic' (Ignore case) lehet�s�get �gy:
     :set ic

  3. Most keress�nk ism�t az 'ignore'-ra n-nel
     Ism�telj�k meg t�bbsz�r a keres�st: n

  4. �ll�tsuk be a 'hlsearch' �s 'incsearch' lehet�s�geket:
     :set hls is

  5. Most ism�t �rjuk be a keres�parancsot, �s l�ssuk mi t�rt�nik:
     /ignore

  6. A kiemel�st sz�ntess�k meg al�bbi utas�t�sok egyik�vel:
     :set nohls     vagy	 :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       6. LECKE �SSZEFOGLAL�JA


  1. o	be�r�s�val �j sort nyitunk meg a sor ALATT �s a kurzor az �j
     sorban lesz besz�r�s-m�dban.
     Nagy  O  a sor FELETT nyit �j sort, �s oda ker�l a kurzor.

  2. a  be�r�s�val az aktu�lis karaktert�l UT�N (jobbra) sz�rhatunk be sz�veget.
     Nagy A  automatikusan a sor legv�g�hez adja hozz� a sz�veget.

  3. A nagy  R  be�t�s�vel �t�r� (replace) m�dba ker�l�nk  <ESC> lenyom�s�ig.

  4. ":set xxx" be�r�s�val az "xxx" opci� �ll�that� be.









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     7. lecke: AZ ON-LINE S�G� PARANCSAI


		    ** Az online s�g�rendszer haszn�lata **

  A Vim r�szletes s�g�val rendelkezik.  Indul�shoz a k�vetkez�k egyik�t
  tegye:
	- nyomja meg a <HELP> gombot (ha van ilyen)
	- nyomja meg az <F1> gombot (ha van ilyen)
	- �rja be:   :help <ENTER>

  :q <ENTER>   be�r�s�val z�rhatja be a s�g�ablakot.

  Majdnem minden t�mak�rr�l tal�lhat s�g�t, argumentum megad�s�val
  ":help" utas�t�s .  Pr�b�lja az al�bbiakat ki (<ENTER>-t ne felejts�k):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       8. lecke: IND�T�SZKRIPT �R�SA

		     ** A Vim lehet�s�geinek be�ll�t�sa **

  A Vim rengeteg lehet�s�ggel rendelkezik a Vi-hoz k�pest, de a legt�bb
  alapb�l el�rhetetlen. Ahhoz, hogy alapb�l t�bb lehet�s�g�nk legyen k�sz�ten�nk
  kell egy "vimrc" f�jlt.

  1. Kezdj�k el szerkeszteni a "vimrc" f�jlt, ennek m�dja:
	:edit ~/.vimrc			Unixon, Linuxon
	:edit $VIM/_vimrc		MS-Windowson

  2. Most sz�rjuk be a p�lda "vimrc" f�jl sz�veg�t:

	:read $VIMRUNTIME/vimrc_example.vim

  3. �rjuk ki a f�jlt:

	:write

  Legk�zelebb a Vim szintaxiskiemel�ssel indul.
  Hozz�adhatja kedvenc be�ll�t�sait ehhez a "vimrc" f�jlhoz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Itt v�gz�dik a Vim oktat�, melynek a sz�nd�ka egy r�vid �ttekint�s a
  Vimr�l, amely el�g ahhoz, hogy el�g k�nnyed�n kezelj�k a szerkeszt�t.
  T�vol van a teljess�gt�l, mivel a Vimnek sz�mtalan tov�bbi utas�t�sa
  van. Ezut�n a felhaszn�l�i k�zik�nyvet �rdemes elolvasni az angolul
  tud�knak: ":help user-manual". (egyel�re nem tud magyarul)

  Tov�bbi magyar olvasnival�k �rhet�ek el az al�bbi oldalr�l.
  http://wiki.hup.hu/index.php/Vim

  Angol olvasm�nyok:
  For further reading and studying, this book is recommended:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
  The first book completely dedicated to Vim.  Especially useful for beginners.
  There are many examples and pictures.
  See http://iccf-holland.org/click5.html

  This book is older and more about Vi than Vim, but also recommended:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
  It is a good book to get to know almost anything you want to do with Vi.
  The sixth edition also includes information on Vim.

  Ezt az oktat�t Michael C. Pierce �s Robert K. Ware �rta, a Colorado
  School of Mines dolgoz�i Charles Smith (Colorado State University)
  t�mogat�s�val.

  E-mail: bware@mines.colorado.edu.

  A Vimhez idom�totta Bram Moolenaar.

  Magyar�totta: Horv�th �rp�d <horvath.arpad@arek.uni-opbuda.hu>, 2006-2012

PK�j�Z��8:j:jvim80/tutor/tutor.hunu�[���===============================================================================
== � d v � z � l j � k   a   V I M - o k t a t � b a n  -    1.5-�s  verzi�  ==
===============================================================================

     A Vim egy nagyon hat�kony szerkeszt�, amelynek rengeteg utas�t�sa
     van, t�l sok, hogy egy ilyen oktat�ban (tutorban), mint az itteni
     mindet elmagyar�zzuk. Ez az oktat� arra t�rekszik, hogy annyit
     elmagyar�zzon, amennyi el�g, hogy k�nnyed�n haszn�ljuk a Vim-et, az
     �ltal�nos c�l� sz�vegszerkeszt�t.

     A feladatok megold�s�hoz 25-30 perc sz�ks�ges att�l f�gg�en,
     mennyit t�lt�nk a k�s�rletez�ssel.

     A leck�ben szerepl� utas�t�sok m�dos�tani fogj�k a sz�veget.
     K�sz�tsen m�solatot err�l a f�jlr�l, ha gyakorolni akar.
     (Ha "vimtutor"-ral ind�totta, akkor ez m�r egy m�solat.)

     Fontos meg�rteni, hogy ez az oktat� cselekedve tan�ttat.
     Ez azt jelenti, hogy �nnek aj�nlott v�grehajtania az utas�t�sokat,
     hogy megfelel�en megtanulja azokat. Ha csak olvassa, elfelejti!

     Most bizonyosodjon, meg, hogy a Caps-Lock gombja NINCS lenyomva, �s
     Nyomja meg megfelel� sz�m�szor a   j   gombot, hogy az 1.1-es
     lecke teljesen a k�perny�n legyen!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			1.1.  lecke:  A KURZOR MOZGAT�SA


   ** A kurzor mozgat�s�hoz nyomja meg a h,j,k,l gombokat az al�bbi szerint. **
	     ^
	     k		    Tipp:  A h billenty� van balra, �s balra mozgat
       < h	 l >		   A l billenty� van jobbra, �s jobbra mozgat
	     j			   A j billenty� olyan, mint egy lefele ny�l
	     v
  1. Mozgassa a kurzort k�rbe az ablakban, am�g hozz� nem szokik!

  2. Tartsa lenyomva a lefel�t (j), akkor ism�tl�dik!
---> Most tudja, hogyan mehet a k�vetkez� leck�re.

  3. A lefel� gomb haszn�lat�val menjen a 1.2. leck�re!

Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
      norm�l m�dba ker�lj�n, �s ism�telje meg a parancsot!

Megj: A kurzor gomboknak is m�k�dni�k kell, de a hjkl haszn�lat�val
      sokkal gyorsabban tud, mozogni, ha hozz�szokik.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.2.  lecke: BE �S KIL�P�S A VIMB�L


  !! MEGJ: Miel�tt v�grehajtja az al�bbi l�p�seket, olvassa v�gig a leck�t !!

  1. Nyomja meg az  <ESC> gombot (hogy biztosan norm�l m�dban legyen).

  2. �rja:			:q! <ENTER>.

---> Ezzel kil�p a szerkeszt�b�l a v�ltoz�sok MENT�SE N�LK�L.
     Ha menteni szeretn� a v�ltoz�sokat �s kil�pni, �rja:
				:wq  <ENTER>

  3. Amikor a shell promptot l�tja, �rja be a parancsot, amely ebbe az
     oktat�ba hozza:
     Ez val�sz�n�leg:	vimtutor <ENTER>
     Norm�lis esetben ezt �rn�:	vim tutor.hu <ENTER>

---> 'vim' jelenti a vimbe bel�p�st, 'tutor.hu' a f�jl, amit szerkeszteni k�v�n.

  4. Ha megjegyezte a l�p�seket �s biztos mag�ban, hajtsa v�gre a l�p�seket
     1-t�l 3-ig, hogy kil�pjen �s visszat�rjen a szerkeszt�be. Azut�n
     menjen az 1.3.  leck�re.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.3.  lecke: SZ�VEG SZERKESZT�SE - T�RL�S


** Norm�l m�dban nyomjon  x-et, hogy a kurzor alatti karaktert t�r�lje. **

  1. Mozgassa a kurzort a ---> kezdet� sorra!

  2. A hib�k kijav�t�s�hoz mozgassa a kurzort am�g a t�rlend� karakter
     f�l� nem �r.

  3. Nyomja meg az  x  gombot, hogy t�r�lje a nem k�v�nt karaktert.

  4. Ism�telje a 2, 3, 4-es l�p�seket, hogy kijav�tsa a mondatot.

---> ��szi �jjjell izziik aa galaggonya rruuh�ja.

  5. Ha a sor helyes, ugorjon a 1.4. leck�re.

MEGJ: A tanul�s sor�n ne memoriz�lni pr�b�ljon, hanem haszn�lat sor�n tanuljon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.4.  lecke: SZ�VEG SZERKESZT�SE - BESZ�R�S


	 ** Norm�l m�dban  i  megnyom�s�val lehet beilleszteni. **

  1. Az al�bbi els� ---> kezdet� sorra menjen.

  2. Ahhoz, hogy az els�t azonoss� tegye a m�sodikkal, mozgassa a kurzort
     az els� karakterre, amely UT�N sz�veget kell besz�rni.

  3. Nyomjon  i-t �s �rja be a megfelel� sz�veget.

  4. Amikor mindent be�rt, nyomjon <ESC>-et, hogy Norm�l m�dba visszat�rjen.
     Ism�telje a 2 �s 4 k�z�tti l�p�seket, hogy kijav�tsa a mondatot.

---> Az �that� so�l hizik p�r �sz.
---> Az itt l�that� sorb�l hi�nyzik p�r r�sz.

  5. Ha m�r begyakorolta a besz�r�st, menjen az al�bbi �sszefoglal�ra.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       1. LECKE �SSZEFOGLAL�JA


  1. A kurzort vagy a nyilakkal vagy a hjkl gombokkal mozgathatja.
	 h (balra)	j (le)       k (fel)	    l (jobbra)

  2. A Vimbe (a $ promptt�l) �gy l�phet be:  vim FILENAME <ENTER>

  3. A Vimb�l �gy l�phet ki:  <ESC>   :q!  <ENTER>  a v�ltoztat�sok eldob�s�val.
	     vagy �gy:	      <ESC>   :wq  <ENTER>  a v�ltoz�sok ment�s�vel.

  4. A kurzor alatti karakter t�rl�se norm�l m�dban:  x

  5. Sz�veg besz�r�sa a kurzor ut�n norm�l m�dban:
	 i     g�pelje be a sz�veget	<ESC>

MEGJ: Az <ESC> megnyom�sa norm�l m�dba viszi, vagy megszak�t egy nem befejezett
      r�szben befejezett parancsot.

Most folytassuk a 2. leck�vel!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			2.1.  lecke: T�RL� UTAS�T�SOK


	    ** dw  t�r�l a sz� v�g�ig. **

  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy norm�l m�dban van!

  2. Mozgassa a kurzort a ---> kezdet� sorra!

  3. Mozgassa a kurzort arra annak a sz�nak az elej�re, amit t�r�lni szeretne.
     T�r�lje az �llatokat a mondatb�l.

  4. A sz� t�rl�s�hez �rja:   dw

  MEGJ: Ha rosszul kezdte az utas�t�st csak nyomjon <ESC> gombot
        a megszak�t�s�hoz.

---> P�r sz� kutya nem uhu illik pingvin a mondatba teh�n.

  5. Ism�telje a 3 �s 4 k�z�tti utas�t�sokat am�g kell �s ugorjon a 2.2 leck�re!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      2.2.  lecke: M�G T�BB T�RL� UTAS�T�S


	   ** d$ be�r�s�val a sor v�g�ig t�r�lhet. **

  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy norm�l m�dban van!

  2. Mozgassa a kurzort a ---> kezdet� sorra!

  3. Mozgassa a kurzort a helyes sor v�g�re (az els� . UT�N)!

  4. d$  beg�pel�s�vel t�r�lje a sor v�g�t!

---> Valaki a sor v�g�t k�tszer g�pelte be. k�tszer g�pelte be.


  5. Menjen a 2.3. leck�re, hogy meg�rtse mi t�rt�nt!





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     2.3.  lecke: UTAS�T�SOKR�L �S MOZG�SOKR�L


  A  d  (delete=t�rl�s) utas�t�s form�ja a k�vetkez�:

	 [sz�m]   d	mozg�s	   VAGY	     d	 [sz�m] mozg�s
  Ahol:
    sz�m - h�nyszor hajt�djon v�gre a parancs (elhagyhat�, alap�rt�k=1).
    d - a t�rl�s (delete) utas�t�s.
    mozg�s - amin a parancsnak teljes�lnie kell (al�bb list�zva).

  Mozg�sok r�vid list�ja:
    w - a kurzort�l a sz� v�g�ig, bele�rtve a sz�k�zt.
    e - a kurzort�l a sz� v�g�ig, NEM bele�rtve a sz�k�zt.
    $ - a kurzort�l a sor v�g�ig.

MEGJ:  Csup�n a mozg�s beg�pel�s�vel (parancs n�lk�l)
       a kurzor mozg�s �ltal megadott helyre ker�l.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		2.4.  lecke: EG�SZ SOROK FELDOLGOZ�SA


	       ** dd be�r�s�val t�r�lheti az eg�sz sort. **

  A teljes sor t�rl�s�nek gyakoris�ga miatt a Vi tervez�i elhat�rozt�k,
  hogy k�nnyebb lenne csup�n a d-t k�tszer megnyomni, hogy egy sort t�r�lj�nk.

  1. Mozgassa a kurzort az al�bbi kifejez�sek m�sodik sor�ra!
  2. dd beg�pel�s�vel t�r�lje a sort!
  3. Menjen a 3. (eredetileg 4.) sorra!
  4. 2dd   (ugyeb�r sz�m-utas�t�s-mozg�s) beg�pel�s�vel t�r�lj�n k�t sort!

      1)  Alv� szegek a j�ghideg homokban,
      2)  - kezdi a k�lt� -
      3)  Plak�tmag�nyban �z� �jjelek.
      4)  Pingvinek ne f�ljetek,
      5)  T�volr�l egy vaku villant,
      6)  �gve hagytad a folyos�n a villanyt.
      7)  Ma ontj�k v�remet.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   2.5.  lecke: A VISSZAVON�S (UNDO) PARANCS


** u g�pel�s�vel visszavonhat� az utols� parancs, U az eg�sz sort helyre�ll�tja. **

  1. Menj�nk az al�bbi ---> kezdet� sor els� hib�j�ra!
  2. x  lenyom�s�val t�r�lje az els� felesleges karaktert!
  3. u megnyom�s�val vonja vissza az utols�nak v�grehajtott utas�t�st!
  4. M�sodj�ra jav�tson ki minden hib�t a sorban az x utas�t�ssal!
  5. Most nagy  U  -val �ll�tsa vissza a sor eredeti �llapot�t!
  6. Nyomja meg az u gombot p�rszor, hogy az U �s az azt megel�z� utas�t�sokat
     vissza�ll�tsa!
  7. CTRL-R (CTRL gomb lenyom�sa mellett �ss�n R-t) p�rszor csin�lja �jra a
     visszavont parancsokat (redo)!

---> Jav��tsa a hhib�kaat ebbben a sooorban majd �ll�tsa visszaaa az eredetit.

  8. Ezek nagyon hasznos parancsok. Most ugorjon a 2. lecke �sszefoglal�j�ra.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       2. LECKE �SSZEFOGLAL�JA


  1. T�rl�s a kurzort�l a sz� v�g�ig:    dw

  2. T�rl�s a kurzort�l a sor v�g�ig:    d$

  3. Eg�sz sor t�rl�se:    dd

  4. Egy utas�t�s alakja norm�l m�dban:

       [sz�m]   utas�t�s   mozg�s   VAGY   utas�t�s	[sz�m] mozg�s
     ahol:
       sz�m - h�nyszor ism�telj�k a parancsot
       utas�t�s - mit tegy�nk, pl. d  a t�rl�skor
       mozg�s - mire hasson az utas�t�s, p�ld�ul w (sz�=word),
		$ (a sor v�g�ig), stb.

  5. Az el�z� tett visszavon�sa (undo):	     u	 (kis u)
     A sor �sszes v�ltoz�s�nak visszavon�sa: U	 (nagy U)
     Visszavon�sok visszavon�sa:	     CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		3.1.  lecke: A BEILLESZT�S (PUT) PARANCS


  ** p  le�t�s�vel az utols�nak t�r�ltet a kurzor ut�n illeszthetj�k. **

  1. Mozgassuk a kurzort az al�bbi sorok els� sor�ra.

  2. dd le�t�s�vel t�r�lj�k a sort �s elt�rol�dik a Vim puffer�ben.

  3. Mozgassuk a kurzort azel�tt a  sor EL�TTI sorba, ahov� mozgatni
     szeretn�nk a t�r�lt sort.

  4. Norm�l m�dban �rjunk  p   bet�t a t�r�lt sor beilleszt�s�hez.

  5. Folytassuk a 2-4. utas�t�sokkal hogy a helyes sorrendet kapjuk.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       3.2.  lecke: AZ �T�R�S (REPLACE) PARANCS


** r  �s  a karakterek le�t�s�vel a kurzor alatti karaktert megv�ltoztatjuk. **

  1. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  2. Mozgassuk a kurzort az els� hiba f�l�!

  3. r	majd a k�v�nt karakter le�t�s�vel v�ltoztassuk meg a hib�sat!

  4. A 2. �s 3. l�p�sekkel jav�tsuk az �sszes hib�t!

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Menj�nk a 3.2. leck�re!

MEGJ: Eml�kezzen, hogy nem memoriz�l�ssal, hanem gyakorl�ssal tanuljon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			3.3.  lecke: A CSERE (CHANGE) PARANCS


	   ** A sz� egy r�sz�nek megv�ltoztat�s�hoz �rjuk:  cw . **

  1. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  2. Vigye a kurzort a Ezen sz� z bet�je f�l�!

  3. cw �s a helyes sz�r�sz (itt 'bben') be�r�s�val jav�tsa a sz�t!

  4. <ESC> lenyom�sa ut�n a k�vetkez� hib�ra ugorjon (az els� cser�lend�
     karakterre)!

  5. A 3. �s 4. l�p�sek ism�tl�s�vel az els� mondatot tegye a m�sodikkal
     azonoss�!

---> Ezen a sorrrrr p�r sz�ra meg kell v�ltozzanak a change utask�r�s�.
---> Ebben a sorban p�r sz�t meg kell v�ltoztatni a change utas�t�ssal.

Vegy�k �szre, hogy a  cw  nem csak a sz�t �rja �t, hanem besz�r�
(insert) m�dba v�lt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       3.4.  lecke: T�BBF�LE V�LTOZTAT�S c-VEL


 ** A c utas�t�s haszn�lhat� ugyanazokkal az mozg�sokkal mint a t�rl�s **

  1. A change utas�t�s a t�rl�ssel azonosan viselkedik.  A forma:

       [sz�m]   c   mozg�s	   OR	    c	[sz�m]   mozg�s

  2. A mozg�sok is azonosak, pl.   w (sz�), $ (sorv�g), stb.

  3. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  4. Menj�nk az els� hib�ra!

  5. c$ beg�pel�s�vel a sorv�geket tegy�k azonoss� �s nyomjunk <ESC>-et!

---> Ennek a sornak a v�ge kiigaz�t�sra szorul, hogy megegyezzen a m�sodikkal.
---> Ennek a sornak a v�ge a c$ paranccsal v�ltoztathat� meg.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       3. LECKE �SSZEFOGLAL�JA


  1. A m�r t�r�lt sort beilleszt�s�hez nyomjunk p-t. Ez a t�r�lt sz�veget
     a kurzor UT�N helyezi (ha sor ker�lt t�rl�sre, a kurzor alatti sorba).

  2. A kurzor alatti karakter �t�r�s�hoz az r-et �s azt a karaktert
     nyomjuk, amellyel az eredetit fel�l szeretn�nk �rni.

  3. A v�ltoztat�s (c) utas�t�s a karaktert�l az mozg�s v�g�ig
     v�ltoztatja meg az mozg�st. P�ld�ul a cw a kurzort�l a sz� v�g�ig,
     a c$ a sor v�g�ig.

  4. A v�ltoztat�s form�tuma:

	 [sz�m]   c	mozg�s	VAGY	c   [sz�m]   mozg�s

Ugorjunk a k�vetkez� leck�re!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     4.1.  lecke: HELY �S F�JL�LLAPOT


 ** CTRL-g megnyom�s�val megn�zhetj�k a hely�nket a f�jlban �s a f�jl �llapot�t.
     SHIFT-G le�t�s�vel a f�jl adott sor�ra ugorhatunk. **

  Megj: Olvassuk el az eg�sz leck�t a l�p�sek v�grehajt�sa el�tt!!

  1. Tartsuk nyomva a Ctrl gombot �s nyomjunk  g-t.  Az �llapotsor
     megjelenik a lap alj�n a f�jln�vvel �s az aktu�lis sor sorsz�m�val.
     Jegyezz�k meg a sorsz�mot a 3. l�p�shez!

  2. Nyomjunk Shift-G-t a lap alj�ra ugr�shoz!

  3. �ss�k be az eredeti sor sz�m�t, majd �ss�nk shift-G-t! Ezzel
     visszajutunk az eredeti sorra ahol Ctrl-g-t nyomtunk.
     (A be�rt sz�m NEM fog megjelenni a k�perny�n.)

  4. Ha megjegyezte a feladatot, hajtsa v�gre az 1-3. l�p�seket!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			4.2.  lecke: A KERES�S (SEARCH) PARANCS


  ** / majd a k�v�nt kifejez�s be�r�s�val kereshetj�k meg a kifejez�st. **

  1. Norm�l m�dban �ss�nk  /  karaktert!  Ez �s a kurzor megjelenik
     a k�perny� alj�n, ahogy a : utas�t�s is.

  2. �rjuk be: 'hiibaa' <ENTER>!  Ez az a sz� amit keres�nk.

  3. A kifejez�s �jabb keres�s�hez �ss�k le egyszer�en:  n .
     A kifejez�s ellenkez� ir�nyban t�rt�n� keres�s�hez ezt �ss�k be: Shift-N .

  4. Ha visszafel� szeretne keresni, akkor ? kell a / helyett.

---> "hiibaa" nem a helyes m�dja a hiba le�r�s�nak; a hiibaa egy hiba.

Megj: Ha a keres�s el�ri a f�jl v�g�t, akkor az elej�n kezdi.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   4.3.  lecke: Z�R�JELEK P�RJ�NAK KERES�SE


	   ** % le�t�s�vel megtal�ljuk a ),], vagy }  p�rj�t. **

  1. Helyezze a kurzort valamelyik (, [, vagy { z�r�jelre a ---> kezdet�
     sorban!

  2. �ss�n  %  karaktert!

  3. A kurzor a z�r�jel p�rj�ra fog ugrani.

  4. % le�t�s�vel visszaugrik az eredeti z�r�jelre.

---> Ez ( egy tesztsor (-ekkel, [-ekkel ] �s {-ekkel } a sorban. ))

Megj: Ez nagyon hasznos, ha olyan programot debugolunk, amelyben a
      z�r�jelek nem p�rosak!




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  4.4.  lecke: A HIB�K KIJAV�T�S�NAK EGY M�DJA


    ** :s/r�gi/�j/g beg�pel�s�vel az '�j'-ra cser�lj�k a 'r�gi'-t. **

  1. Menj�nk a ---> kezdet� sorra!

  2. �rjuk be:  :s/eggy/egy <ENTER> .  Ekkor csak az els� v�ltozik meg a
     sorban.

  3. Most ezt �rjuk:	 :s/eggy/egg/g	   amely glob�lisan helyettes�t
     a sorban, azaz minden el�fordul�st.
     Ez a sorban minden el�fordul�st helyettes�t.

---> eggy heggy meggy, szembe j�n eggy m�sik heggy.

  4. K�t sor k�z�tt a karaktersor minden el�fordul�s�nak helyettes�t�se:
     :#,#s/r�gi/�j/g    ahol #,# a k�t sor sorsz�ma.
     :%s/r�gi/�j/g      a f�jlbeli �sszes el�fordul�s helyettes�t�se.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       4. LECKE �SSZEFOGLAL�JA


  1. Ctrl-g  ki�rja az kurzor hely�t a f�jlban �s a f�jl �llapot�t.
     Shift-G a f�jl v�g�re megy, gg az elej�re. Egy sz�m ut�n
     Shift-G  az adott sz�m� sorra ugrik.

  2. /	ut�n egy kifejez�s EL�REFELE keresi a kifejez�st.
  2. ?	ut�n egy kifejez�s VISSZAFELE keresi a kifejez�st.
     Egy keres�s ut�n az  n  a k�vetkez� el�fordul�st keresi azonos ir�nyban
     Shift-N  az ellenkez� ir�nyban keres.

  3. %	beg�pel�s�vel, ha  (,),[,],{, vagy } karakteren vagyunk a z�r�jel
     p�rj�ra ugrik.

  4. az els� r�gi helyettes�t�se �jjal a sorban    :s/r�gi/�j
     az �sszes r�gi helyettes�t�se �jjal a sorban  :s/r�gi/�j/g
     k�t sor k�z�tti kifejez�sekre		   :#,#s/r�gi/�j/g
     # hely�n az aktu�lis sor (.) �s az utols� ($) is �llhat :.,$/r�gi/�j/g
     A f�jlbeli �sszes el�fordul�s helyettes�t�se  :%s/r�gi/�j/g
     Mindenkori meger�s�t�sre v�r 'c' hat�s�ra	   :%s/r�gi/�j/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		5.1.  lecke: K�LS� PARANCS V�GREHAJT�SA


   ** :!  ut�n k�ls� parancsot �rva v�grehajt�dik a parancs. **

  1. �rjuk be az ismer�s : parancsot, hogy a kurzort a  k�perny� alj�ra
     helyezz�k. Ez lehet�v� teszi egy parancs be�r�s�t.

  2. ! (felki�lt�jel) be�r�s�val tegy�k lehet�v� k�ls� h�j (shell)-parancs
     v�grehajt�s�t.

  3. �rjunk p�ld�ul ls parancsot a ! ut�n majd �ss�nk <ENTER>-t.  Ez ki
     fogja list�zni a k�nyvt�runkat ugyan�gy, mintha a shell promptn�l
     lenn�nk.  Vagy �rja ezt  :!dir  ha az ls nem m�k�dik.

Megj:  Ilym�don b�rmely k�ls� utas�t�s v�grehajthat�.

Megj:  Minden  :  parancs ut�n <ENTER>-t kell �tni.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 5.2.  lecke: B�VEBBEN A F�JLOK �R�S�R�L


     ** A f�jlok v�ltoz�sait �gy �rhatjuk ki  :w F�JLN�V. **

  1. :!dir  vagy  :!ls  be�r�s�val list�zzuk a k�nyvt�runkat!
     �n m�r tudja, hogy <ENTER>-t kell �tnie ut�na.

  2. V�lasszon egy f�jlnevet, amely m�g nem l�tezik pl. TESZT!

  3. �rja:	:w TESZT   (ahol TESZT a v�lasztott f�jln�v)!

  4. Ez elmenti a teljes f�jlt (a Vim oktat�j�t) TESZT n�ven.
     Ellen�rz�sk�pp �rjuk ism�t    :!dir   hogy l�ssuk a k�nyvt�rat!
     (Felfel� gombbal : ut�n az el�z� utas�t�sok visszahozhat�ak.)

Megj: Ha �n kil�pne a Vimb�l �s �s visszat�rne a TESZT f�jln�vvel, akkor a
      f�jl az oktat� ment�skori pontos m�solata lenne.

  5. T�vol�tsa el a f�jlt  (MS-DOS):	:!del TESZT
			vagy (Unix):	:!rm TESZT


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    5.3.  lecke: EGY KIV�LASZTOTT R�SZ KI�R�SA


	** A f�jl egy r�sz�nek ki�r�s�hoz �rja :#,# w F�JLN�V **

  1. :!dir  vagy :!ls  be�r�s�val list�zza a k�nyvt�rat, �s v�lasszon egy
     megfelel� f�jlnevet, pl. TESZT.

  2. Mozgassa a kurzort ennek az oldalnak a tetej�re, �s nyomjon
     Ctrl-g-t, hogy megtudja a sorsz�mot.  JEGYEZZE MEG A SZ�MOT!

  3. Most menjen a lap alj�ra, �s �sse be ism�t: Ctrl-g.  EZT A SZ�MOT
     IS JEGYEZZE MEG!

  4. Ha csak ezt a r�sz�t szeretn� menteni a f�jlnak, �rja   :#,# w TESZT
     ahol #,# a k�t sorsz�m, amit megjegyzett, TESZT az �n f�jlneve.

  5. Ism�t n�zze meg, hogy a f�jl ott van (:!dir) de NE t�r�lje.

  6. Vimben l�tezik egy m�sik lehet�s�g: nyomja meg a Shift-V gombp�rt
     az els� menteni k�v�nt soron, majd menjen le az utols�ra, ezut�n
     �rja :w TESZT2   Ekkor a TESZT2 f�jlba ker�l a kijel�lt r�sz.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   5.4.  lecke: F�JLOK VISSZA�LL�T�SA �S �SSZEF�Z�SE


       ** Egy f�jl tartalm�nak beilleszt�s�hez �rja   :r F�JLN�V **

  1. :!dir be�r�s�val n�zze meg, hogy az �n TESZT f�jlja l�tezik m�g.

  2. Helyezze a kurzort ennek az oldalnak a tetej�re.

MEGJ:  A 3. l�p�s ut�n az 5.3. leck�t fogja l�tni. Azut�n LEFEL� indulva
       keresse meg ism�t ezt a leck�t.

  3. Most sz�rja be a TESZT nev� f�jlt a   :r TESZT   paranccsal, ahol
     TESZT az �n f�jlj�nak a neve.

MEGJ:  A f�jl, amit beillesztett a kurzora alatt helyezkedik el.

  4. Hogy ellen�rizz�k, hogy a f�jlt t�nyleg beillesztett�k, menjen
     vissza, �s n�zze meg, hogy k�tszer szerepel az 5.3. lecke! Az eredeti
     mellett a f�jlb�l bem�solt is ott van.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       5. LECKE �SSZEFOGLAL�JA


  1.  :!parancs v�grehajt egy k�ls� utas�t�st.

      P�r hasznos p�lda:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  k�nyvt�rlista ki�r�sa.
	  :!del F�JLN�V    :!rm F�JLN�V    -  F�JLN�V nev� f�jl t�rl�se.

  2.  :w F�JLN�V  ki�rja a jelenlegi Vim-f�jlt a lemezre F�JN�V n�ven.

  3.  :#,#w F�JLN�V  ki�rja a k�t sorsz�m (#) k�z�tti sorokat F�JLN�V-be
      M�sik lehet�s�g, hogy a kezd�sorn�l Shift-v-t nyom lemegy az utols�
      sorra, majd ezt �ti be  :w F�JLN�V

  4.  :r F�JLN�V  beolvassa a F�JLN�V f�jlt �s behelyezi a jelenlegi f�jlba
      a kurzorpoz�ci� ut�ni sorba.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   6.1.  lecke: A MEGNYIT�S (OPEN) PARANCS


** o  be�r�s�val nyit egy �j sort a kurzor alatt �s besz�r� m�dba v�lt **

  1. Mozgassuk a kurzort a ---> kezdet� sorra.

  2. o (kicsi)  be�r�s�val nyisson egy sort a kurzor ALATT! Ekkor
     automatikusan besz�r� (insert) m�dba ker�l.

  3. M�solja le a  ---> jel� sort �s <ESC> megnyom�s�val l�pjen ki
     a besz�r� m�db�l.

---> Az o lenyom�sa ut�n a kurzor a k�vetkez� sor elej�n �ll besz�r� m�dban.

  4. A kurzor FELETTI sor megnyit�s�hoz egyszer�en nagy O bet�t �rjon
kicsi helyett. Pr�b�lja ki a k�vetkez� soron!
Nyisson egy �j sort efelett Shift-O megnyom�s�val, mialatt a kurzor
ezen a soron �ll.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			6.2.  lecke: AZ APPEND PARANCS


	 ** a  lenyom�s�val a kurzor UT�N sz�rhatunk sz�veget. **

  1. Mozgassuk a kurzort a k�vetkez� ---> kezdet� sor v�g�re �gy,
     hogy  norm�l  m�dban  $-t  �r be.

  2. Kis "a" le�t�s�vel sz�veget sz�rhat be AM�G� a karakter m�g�,
     amelyen a kurzor �ll.
     (A nagy "A" az eg�sz sor v�g�re �rja a sz�veget.)

Megj: A Vimben a sor legv�g�re is lehet �llni, azonban ez el�dj�ben
      a Vi-ban nem lehets�ges, ez�rt abban az a n�lk�l el�g k�r�lm�nyes
      a sor v�g�hez sz�veget �rni.

  3. Eg�sz�tse ki az els� sort. Vegye �szre, hogy az a utas�t�s (append)
     teljesen egyezik az i-vel (insert) csup�n a besz�rt sz�veg helye
     k�l�nb�zik.

---> Ez a sor lehet�v� teszi �nnek, hogy gyakorolja
---> Ez a sor lehet�v� teszi �nnek, hogy gyakorolja a sor v�g�re beilleszt�st.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    6.3.  lecke: AZ �T�R�S M�SIK V�LTOZATA


      ** Nagy R  be�r�s�val �rhat fel�l t�bb mint egy karaktert. **

  1. Mozgassuk a kurzort az els� ---> kezdet� sorra!

  2. Helyezze a kurzort az els� sz� elej�re amely elt�r a m�sodik
     ---> kezdet� sor tartalm�t�l (a 'az utols�val' r�szt�l).

  3. Nyomjon R karaktert �s �rja �t a sz�veg marad�k�t az els� sorban
     �gy, hogy a  k�t sor egyez� legyen.

---> Az els� sort tegye azonoss� az utols�val: haszn�lja a gombokat.
---> Az els� sort tegye azonoss� a m�sodikkal: �rjon R-t �s az �j sz�veget.

  4. Jegyezz�k meg, ha <ESC>-et nyomok, akkor a v�ltozatlanul hagyott
     sz�vegek v�ltozatlanok maradnak.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    6.4.  lecke: BE�LL�T�SOK

** �ll�tsuk be, hogy a keres�s �s a helyettes�t�s ne f�ggj�n kis/NAGYbet�kt�l **

  1. Keress�k meg az 'ignore'-t az be�rva:
     /ignore
     Ezt ism�telj�k t�bbsz�r az n billenty�vel

  2. �ll�tsuk be az 'ic' (Ignore case) lehet�s�get �gy:
     :set ic

  3. Most keress�nk ism�t az 'ignore'-ra n-nel
     Ism�telj�k meg t�bbsz�r a keres�st: n

  4. �ll�tsuk be a 'hlsearch' �s 'incsearch' lehet�s�geket:
     :set hls is

  5. Most ism�t �rjuk be a keres�parancsot, �s l�ssuk mi t�rt�nik:
     /ignore

  6. A kiemel�st sz�ntess�k meg al�bbi utas�t�sok egyik�vel:
     :set nohls     vagy	 :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       6. LECKE �SSZEFOGLAL�JA


  1. o	be�r�s�val �j sort nyitunk meg a sor ALATT �s a kurzor az �j
     sorban lesz besz�r�s-m�dban.
     Nagy  O  a sor FELETT nyit �j sort, �s oda ker�l a kurzor.

  2. a  be�r�s�val az aktu�lis karaktert�l UT�N (jobbra) sz�rhatunk be sz�veget.
     Nagy A  automatikusan a sor legv�g�hez adja hozz� a sz�veget.

  3. A nagy  R  be�t�s�vel �t�r� (replace) m�dba ker�l�nk  <ESC> lenyom�s�ig.

  4. ":set xxx" be�r�s�val az "xxx" opci� �ll�that� be.









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     7. lecke: AZ ON-LINE S�G� PARANCSAI


		    ** Az online s�g�rendszer haszn�lata **

  A Vim r�szletes s�g�val rendelkezik.  Indul�shoz a k�vetkez�k egyik�t
  tegye:
	- nyomja meg a <HELP> gombot (ha van ilyen)
	- nyomja meg az <F1> gombot (ha van ilyen)
	- �rja be:   :help <ENTER>

  :q <ENTER>   be�r�s�val z�rhatja be a s�g�ablakot.

  Majdnem minden t�mak�rr�l tal�lhat s�g�t, argumentum megad�s�val
  ":help" utas�t�s .  Pr�b�lja az al�bbiakat ki (<ENTER>-t ne felejts�k):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       8. lecke: IND�T�SZKRIPT �R�SA

		     ** A Vim lehet�s�geinek be�ll�t�sa **

  A Vim rengeteg lehet�s�ggel rendelkezik a Vi-hoz k�pest, de a legt�bb
  alapb�l el�rhetetlen. Ahhoz, hogy alapb�l t�bb lehet�s�g�nk legyen k�sz�ten�nk
  kell egy "vimrc" f�jlt.

  1. Kezdj�k el szerkeszteni a "vimrc" f�jlt, ennek m�dja:
	:edit ~/.vimrc			Unixon, Linuxon
	:edit $VIM/_vimrc		MS-Windowson

  2. Most sz�rjuk be a p�lda "vimrc" f�jl sz�veg�t:

	:read $VIMRUNTIME/vimrc_example.vim

  3. �rjuk ki a f�jlt:

	:write

  Legk�zelebb a Vim szintaxiskiemel�ssel indul.
  Hozz�adhatja kedvenc be�ll�t�sait ehhez a "vimrc" f�jlhoz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Itt v�gz�dik a Vim oktat�, melynek a sz�nd�ka egy r�vid �ttekint�s a
  Vimr�l, amely el�g ahhoz, hogy el�g k�nnyed�n kezelj�k a szerkeszt�t.
  T�vol van a teljess�gt�l, mivel a Vimnek sz�mtalan tov�bbi utas�t�sa
  van. Ezut�n a felhaszn�l�i k�zik�nyvet �rdemes elolvasni az angolul
  tud�knak: ":help user-manual". (egyel�re nem tud magyarul)

  Tov�bbi magyar olvasnival�k �rhet�ek el az al�bbi oldalr�l.
  http://wiki.hup.hu/index.php/Vim

  Angol olvasm�nyok:
  For further reading and studying, this book is recommended:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
  The first book completely dedicated to Vim.  Especially useful for beginners.
  There are many examples and pictures.
  See http://iccf-holland.org/click5.html

  This book is older and more about Vi than Vim, but also recommended:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
  It is a good book to get to know almost anything you want to do with Vi.
  The sixth edition also includes information on Vim.

  Ezt az oktat�t Michael C. Pierce �s Robert K. Ware �rta, a Colorado
  School of Mines dolgoz�i Charles Smith (Colorado State University)
  t�mogat�s�val.

  E-mail: bware@mines.colorado.edu.

  A Vimhez idom�totta Bram Moolenaar.

  Magyar�totta: Horv�th �rp�d <horvath.arpad@arek.uni-opbuda.hu>, 2006-2012

PK�j�Z��Snnvim80/tutor/tutor.tr.iso9nu�[���===============================================================================
=    	V I M   T u t o r'a Ho� Geldiniz    -    S�r�m 1.5      =
===============================================================================

     Vim, bu gibi bir e�itmen ile a�klanmas� gereken �ok fazla komut bar�nd�ran,
     olduk�a kuvvetli bir metin d�zenleyicidir. Bu e�itmen Vim'i �ok ama�l� bir
     d�zenleyici olarak kolayl�kla kullanabilece�iniz yeterli say�da komutu a�klamak
     i�in tasarlanm��t�r.

     E�itmeni tamamlama s�resi yapaca�n�z denemelere ba�l� olarak 25-30
     dakikad�r.

     Derslerdeki komutlar bu metini de�i�tirecektir. �zerinde �al��mak i�in
     bu dosyan�n bir kopyas�n� al�n (e�er "vimtutor" uygulamas�n� �al��t�rd�ysan�z
     zaten bir kopyas�n� alm�� oldunuz).

     Bu e�itmenin, kullanarak ��retmeye ayarland��n� unutmamak �nemlidir. Bu �u
     anlama gelir; komutlar� ��renmek i�in do�ru bir �ekilde �al��t�rman�z gerekir.
     E�er sadece yaz�lanlar� okursan�z komutlar� unutursunuz.

     �imdi Caps-Lock tu�lar�n�z�n bas�l� olmad��na emin olun ve Ders 1.1'in
     ekran� tamamen doldurmas� i�in   j   tu�una yeterli miktarda bas�n.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 1.1:  �MLEC� HAREKET ETT�RMEK

  �.N: T�m derslerde <ENTER> g�rd��n�z yerde bu tu�a basman�z gerekir.

   ** �mleci hareket ettirmek i�in, h,j,k,l tu�lar�na g�sterildi�i gibi bas�n. **
   	     ^
	     k		    �pucu: h tu�u soldad�r ve sola hareket eder.
       < h	 l >		   l tu�u sa�dad�r ve sa�a hareket eder.
	     j			   j tu�u a�a� y�nl� bir ok gibidir.
	     v
  1. Yeterli hissedinceye kadar imleci ekranda hareket ettirin.

  2. A�a� tu�unu  (j)  tekrar edene kadar bas�l� tutun.
---> �imdi, bir sonraki derse nas�l ge�ece�inizi biliyorsunuz.

  3. A�a� tu�unu kullanarak, Ders 1.2'ye ge�in.
  Not:  E�er yazd��n�z bir �eyden emin de�ilseniz, Normal kipe ge�mek i�in <ESC> tu�una bas�n.
        Daha sonra istedi�iniz komutu yeniden yaz�n.
  Not:  �mle� tu�lar� da ayn� zamanda i�e yararlar ancak   hjkl   tu�lar�n� kullanmaya al��t��n�zda etrafta daha h�zl�
        hareket edersiniz.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 1.2: VIM'E G�R�� VE VIM'DEN �IKI�


  !! NOT: A�a�daki ad�mlar� yapmadan �nce, bu dersi tamamen okuyun.

  1. <ESC> tu�una bas�n (Normal kipte olmay� garantilemek i�in).

  2. Yaz�n:			:q! <ENTER>.

---> Bu d�zenleyicinin yapt��n�z de�i�iklikleri KAYDETMEDEN kapanmas�n� sa�lar.
     E�er yapt�klar�n�z�n kaydedilmesini istiyorsan�z �unu yaz�n:
				:wq  <ENTER>

  3. Kabuk istemcisini (shell prompt) g�rd��n�zde, sizi bu e�itmene getiren
     komutu yaz�n. Bu:	vimtutor <ENTER> komutudur.
     Normalde:	vim tutor <ENTER> komutu kullan�l�r.
---> 'vim' vim d�zenleyicisine gir anlam�na gelir, 'tutor' ise a�mak istedi�iniz dosyad�r.

  4. E�er bu ad�mlar� ezberlediyseniz ve kendinizden eminseniz, 1'den 3'e kadar olan ad�mlar�,
     d�zenleyiciden �kmak ve yeniden girmek i�in uygulay�n.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 1.3: MET�N D�ZENLEME - S�LME


** Normal kipteyken imlecin alt�ndaki karakteri silmek i�in   x  'e bas�n.**

  1. �mleci a�a�da i�aretlenmi� (-->) sat�ra g�t�r�n.

  2. Hatalar� d�zeltmek i�in, imleci silinmesi gereken karakterin �zerine getirin

  3. �stenmeyen karakteri silmek i�in   x   tu�una bas�n.

  4. C�mle d�zelene kadar 2'den 4'e kadar olan ad�mlar� tekrar edin.

---> �inek ayy�n �zzerinden attlad�.

  5. �imdi sat�r d�zeldi, Ders 1.4'e ge�in.

NOT: Bu e�itmende ilerledik�e ezberlemeye �al��may�n, kullanarak ��renin.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 1.4: MET�N D�ZENLEME - EKLEME


	  ** Normal kipteyken metin eklemek i�in   i  'ye bas�n. **

  1. �mleci a�a�daki i�aretlenmi� (-->) ilk sat�ra g�t�r�n.

  2. �lk sat�r� ikincisinin ayn�s� gibi yapmak i�in, imleci eklenmesi gereken
     metinden sonraki ilk karakterin �zerine g�t�r�n.

  3. i  'ye bas�n ve gerekli eklemeleri yap�n.

  4. Her hata d�zeltildi�inde <ESC> tu�una basarak Normal kipe d�n�n.
     C�mleyi d�zeltmek i�in 2'den 4'e kadar olan ad�mlar� tekrar edin.

---> Bu metinde eksk.
---> Bu metinde bir�ey eksik.

  5. Metin ekleme �al��malar�n� yeterli g�r�yorsan�z a�a�daki �zete ge�in.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 1 �ZET


  1. �mle� hem ok tu�lar� hem de   hjkl   tu�lar� ile hareket ettirilir.
	 h (sol)	j (a�a�)       k (yukar�)	    l (sa�)

  2. (Konsoldan) Vim'e girmek i�n  yaz�n:  vim DOSYA�SM� <ENTER>

  3. T�m de�i�iklikleri g�z ard� edip vimden �kmak i�in yaz�n:
     <ESC>	:q!	<ENTER>
     veya t�m de�i�iklikleri kaydetmek i�in yaz�n:
     <ESC>	:wq	<ENTER>

  4. �mlecin alt�ndaki bir karakteri silmek i�in Normal kipte   x   yaz�n.

  5. �mlecin alt�nda metin eklemek i�in Normal kipte yaz�n:
	 i     yaz�lacak metin	<ESC>

NOT: <ESC> tu�una basmak sizi Normal kipe g�t�r�r ya da istenmeyen tamamlanmam�� bir komutu
     iptal eder.

�imdi Ders 2 ile devam edin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 2.1: S�LME KOMUTLARI

	    ** Bir kelimeyi silmek i�in  dw  yaz�n.**

  1. Normal kipte olmakten emin olmak i�in <ESC> tu�una bas�n.

  2. �mleci a�a�daki i�aretlenmi� (-->) sat�ra g�t�r�n.

  3. �mleci silinmesi gereken kelimenin ba��na g�t�r�n.

  4. Kelimeyi silmek i�in   dw   yaz�n.

  NOT:  dw  harfleri siz yazd�k�a ekran�n son sat�r�nda g�r�lecektir.
        E�er yanl�� bir �eyler yazarsan�z, yeniden ba�lamak i�in <ESC> tu�una bas�n.

---> Bu sat�rda �erez c�mleye ait olmayan leblebi kelimeler var.


  5. C�mle d�zelene kadar ad�m 3 ve 4'� tekrar edin, daha sonra Ders 2.2'ye gidin.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Ders 2.2: DAHA FAZLA S�LME KOMUTU


	   ** Sat�r� sonuna kadar silmek i�in   d$   yaz�n.**

  1. Normal kipte olmaktan emin olmak i�in <ESC> tu�una bas�n.

  2. �mleci a�a�daki i�aretlenmi� (-->) sat�ra g�t�r�n.

  3. �mleci do�ru olan sat�r�n sonuna g�t�r�n. (Birinciden SONRA. )

  4. Sat�r� sonuna kadar silmek i�in   d$   yaz�n.
  ( d$  yazarken d'den sonra <ALT> ile beraber $ tu�una bas�n)

---> Birileri bu sat�r�n sonunu iki defa yazm��. Birileri bu sat�r�n sonunu iki defa yazm��.

  5. Neler oldu�unu anlamak i�in Ders 2.3'e gidin.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 2.3: KOMUTLAR VE NESNELER


   d   silme komutu i�in bi�im a�a�daki gibidir:

	 [say�]   d	nesne	    VEYA     d	 [say�]   nesne
  Burada:
    say�   - komutun ka� defa �al��t�rlaca� (iste�e ba�l�, varsay�lan=1).
    d      - silme komutu
    nesne  - komutun ne �ekilde �al��aca� (a�a�da listlendi).

  Nesnelerin k�sa bir listesi.
    w - Bo�lu�u da i�ererek, imle�ten itibaren kelimenin sonuna kadar.
    e - Bo�lu�u ��ERMEDEN, imle�ten itibaren kelimenin sonuna kadar.
    $ - imle�ten sat�r�n sonuna kadar.

NOT:   Ser�ven sevenler i�in, Normal kipte iken, komut olmadan sadece nesnenin kendisine basmak
       imleci yukardaki listede oldu�u gibi hareket ettirecektir.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Ders 2.4:   'KOMUT-NESNE'ye B�R �ST�SNA


		 ** B�t�n bir sat�r� silmek i�in   dd   yaz�n. **

  B�t�n bir sat�r silme s�kl��ndan dolay�, Vi tasar�mc�lar� bir sat�r�
  tamamen silmek i�in iki d yazman�n daha kolay olaca�na karar verdiler.

  1. �mleci a�a�daki t�mceci�in ikinci sat�r�na g�t�r�n.
  2. Sat�r� silmek i�in    dd   yaz�n.
  3. �imdi de d�rd�nc� sat�ra gidin.
  4. �ki sat�r� birden silmek i�in   2dd   (say�-komut-nesne'yi hat�rlay�n) yaz�n.

	1)  G�ller k�rm�z�d�r,
	2)  �amur e�lenceli,
	3)  Menek�eler mavi,
	4)  Bir arabam var,
        5)  Saat bana s�yler,
	6)  �eker tatl�d�r
 	7)  Ve sen de �ylesin

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Ders 2.5: GER� AL KOMUTU


   ** Son komutu geri almak i�in    u   , b�t�n bir sat�r� d�zeltmek i�in U yaz�n.**

  1. �mleci a�a�daki i�aretlenmi� (-->) sat�rdaki ilk hatan�n �zerine g�t�r�n.
  2. �lk istenmeyen karakteri silmek i�in   x   yaz�n.
  3. �imdi son �al��t�r�lan komutu geri almak i�in   u   yaz�n.
  4. Bu sefer   x    komutunu kullanarak sat�rdaki t�m hatalar� d�zeltin.
  5. �imdi sat�r� ilk haline �evirmek i�in b�y�k   U    yaz�n.
  6. �imdi   U    ve daha �nceki komutlar� geri almak i�in birka� defa   u    yaz�n.
  7. �imdi birka� defa CTRL-R (CTRL'yi bas�l� tutarken R ye bas�n) yazarak geri almalar� da geri al�n.

---> Buu sat��rdaki hatalar� d��zeltinn ve sonra koomutu geri alll�n.

  8. Bunlar son derece kullan��l� komutlard�r. �imdi Ders 2 �zete ge�in.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 2 �ZET


  1. �mle�ten itibaren bir kelimeyi silmek i�in yaz�n:	dw

  2. �mle�ten itibaren bir sat�r� silmek i�in yaz�n:	d$

  3. B�t�n bir sat�r� silmek i�in yaz�n:		dd

  4. Normal kipte bir komut bi�imi ��yledir:

       [say�]   komut    nesne    VEYA     komut	[say�]   nesne
     burada:
	 say�  - komutun ka� kere tekrar edece�i
	 komut - ne yap�laca�, silmek i�in   d   oldu�u gibi
	 nesne - komutun nas�l davranaca�, w (kelime), $ (sat�r sonu), vb gibi.

  5. �nceki hareketleri geri almak i�in yaz�n:		u	(k��k u)
     Bir sat�rdaki t�m de�i�iklikleri geri almak i�in yaz�n:	U	(b�y�k u)
     Geri almalar� geri almak i�in yaz�n:	CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Ders 3.1: KOY KOMUTU


       ** Son yapt��n�z silme i�lemini imle�ten sona geri yerle�tirmek i�in	p   yaz�n.**

  1. �mleci a�a�daki t�mceci�in ilk sat�r�na g�t�r�n.

  2. Sat�r� silip Vim'in tamponuna yerle�tirmek i�in   dd   yaz�n.

  3. �mleci, silinmi� sat�r� nereye yerle�tirmek istiyorsan�z, o sat�r�n �ZER�NE g�t�r�n.

  4. Normal kipteyken, sat�r� yerle�tirmek i�in   p   yaz�n.

  5. T�m sat�rlar� do�ru s�raya koymak i�in 2'den 4'e kadar olan ad�mlar� tekrar edin.

     d) Sen de ��rendin mi?
     b) Menek�eler mavidir,
     c) Ak�l ��renilir,
     a) G�ller k�rm�z�d�r,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Ders 3.2: YERLE�T�R KOMUTU


  ** �mlecin alt�nda bir karakter yerle�tirmek i�in    r    yaz�n.**

  1. �mleci a�a�daki i�aretlenmi�(--->) ilk sat�ra g�t�r�n.

  2. �mleci sat�rdaki ilk hatan�n �zerine g�t�r�n.

  3. Hatay� d�zeltmek i�in �nce   r    ard�ndan da do�ru karakteri yaz�n.

  4. �lk sat�r d�zelene kadar ad�m 2 ve 3'� tekrar edin.

--->  Bu sat�v yaz�l�vken, bivileri yaml�� tu�tara basm��.
--->  Bu sat�r yaz�l�rken, birileri yanl�� tu�lara basm��.

  5. Ders 3.2'ye ge�in.

NOT: Unutmay�n, ezberleyerek de�il kullanarak ��renin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 3.3: DE���T�R KOMUTU


	   ** Bir kelimenin tamam�n� veya par�as�n� de�i�tirmek i�in   cw   yaz�n.

  1. �mleci a�a�daki i�aretlenmi�(--->) sat�ra g�t�r�n.

  2. �mleci "sutar" daki u'nun �zerine yerle�tirin.

  3. �nce   cw   ard�ndan do�ru kelimeyi girin (bu durumda 'at�r'.)

  4. <ESC> tu�una bas�n ve bir sonraki hataya gidin (de�i�mesi gereken ilk karakter.)

  5. �lk c�mle ikincisiyle ayn� olana kadar ad�m 3 ve 4'� tekrar edin.

---> Bu sutar de�i�tir komutu ile de�i�neli gereken birka� petime i�eriyor.
---> Bu sat�r de�i�tir komutu ile de�i�mesi gereken birka� kelime i�eriyor.

cw'nin sadece kelimeyi de�i�tirmedi�ini, ayn� zamanda sizi insert kipine g�t�rd��ne de dikkat edin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      	Ders 3.4: c'Y� KULLANARAK DAHA FAZLA DE���T�RME


     ** De�i�tir komutu sil komutu ile ayn� nesnelerle kullan�l�r.**

  1. De�i�tir komutu sil ile ayn� yolla �al���r. Bi�im ��yledir:

       [say�]   c   nesne	   VEYA	    c	[say�]   nesne

  2. Nesneler de ayn� zamanda ayn�d�r. �rne�in w (word), $ (sat�r sonu), vb. gibi.

  3. A�a�daki i�aretlenmi�(--->) ilk sat�ra gidin.

  4. �mleci ilk hataya g�t�r�n.

  5. Sat�r�n geri kalan k�sm�n� ikincisi gibi yapmak i�in   c$   yaz�n ve daha sonra <ESC> tu�una bas�n.

---> Bu sat�r�n sonu d�zeltilmek i�in biraz yard�ma ihtiya� duyuyor.
---> Bu sat�r�n sonu d�zeltilmek i�in   c$   komutu kullan�larak yard�ma ihtiya� duyuyor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 3 �ZET


  1. Silinmi� olan bir metini geri yerle�tirmek i�in   p   yaz�n. Bu silinmi� metini
     imle�ten hemen SONRA geri yerle�tirir (e�er bir sat�r silinmi�se hemen imle�ten sonra, alta
     yerle�tirilecektir)

  2. �mlecin alt�ndaki karakteri de�i�tirmek i�in �nce   r    ard�ndan da
     as�l karakteri yaz�n.

  3. De�i�tir komutu belirlenen nesneyi, imle�ten nesnenin sonuna kadar de�i�tirme imkan� verir.
     �rne�in, bir kelimeyi imle�ten sonuna kadar de�i�tirmek i�in   cw   , bir sat�r�n tamam�n�
     de�i�tirmek i�inse   c$   yaz�n.

  4. De�i�tir i�in bi�im ��yledir:

	 [say�]   c	nesne	      VEYA	c   [say�]   nesne

�imdi bir sonraki derse ge�in.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 4.1: KONUM VE DOSYA DURUMU


  ** Dosya i�erisindeki konumunuzu ve dosyan�n durumunu g�rmek i�in   CTRL-g    yaz�n. **
  ** Dosya i�erisindeki bir sat�ra gitmek i�in   SHIFT-g   yaz�n. **

  Not: Ad�mlardan herhangi birini yapmadan �nce dersin tamam�n� okuyun!!

  1. Ctrl tu�unu bas�l� tutun ve   g'ye   bas�n. Dosyan�n sonunda dosya ismini ve bulundu�unuz konumu
     g�steren bir durum sat�r� g�r�necektir. Ad�m 3 i�in sat�r numaras�n�
     unutmay�n.

  2. Dosyan�n sonuna gitmek i�in   shift-G   'ye bas�n.

  3. Daha �nce bulundu�unuz sat�r numaras�n� yaz�n ve daha sonra    shift-G   'ye bas�n.
     Bu sizi daha �nce bulundu�unuz ve    Ctrl-g   'ye bast��n�z sat�ra geri g�t�recektir.
     (Say�lar yaz�l�rken ekranda G�R�NMEYECEKLERD�R.)

  4. Yapabilece�inizi d���nd��n�zde, ad�m 1'den 3'e kadar yap�n.

  �.N: Bu k�s�m orijinal metinde de biraz eksik anlat�lm�� gibi. Bir sat�r hakk�nda bilgi almak i�in
       Ctrl-g'yi kullan�n. Herhangi bir sat�ra gitmek i�inse, �nce sat�r numaras�n� yaz�n ve ard�nan
       shift-g'ye bas�n. Sat�r numaras� girmeden bas�lan shift-g sizi sat�r sonuna g�t�r�r.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 4.2: ARAMA KOMUTU


     ** Bir kelime �be�ini aramak i�in   /   ile beraber kelime �be�ini girin. **

  1. Normal kipteyken   /   karakterini yaz�n. Komut b�l�m� yerine   /   karakterinin ve
     imlecin ekran�n sonunda g�r�nd��ne dikkat edin.

  2. �imdi, 'hatttaa' yaz�p <ENTER> 'a bas�n. Bu sizin aramak istedi�iniz kelime.

  3. Ayn� kelime �be�ini tekrar aramak i�in, basit�e   n   yaz�n.
     Ayn� kelime �be�ini z�t y�nde aramak i�in, Shift-N yaz�n.

  4. E�er z�t y�ne do�ru bir arama yapmak istiyorsan�z,  /   komutu yerine
     ?   komutunu kullan�n.

---> "hatttaa" hatay� yazman�n do�ru yolu de�il; hatttaa bir hata.

Not: Arama dosyan�n sonuna ula�t��nda, tekrar ba�tan ba�layacakt�r.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Ders 4.3: UYAN PARANTEZ ARAMASI


	      ** Uyan bir ),] veya } bulmak i�in   %   yaz�n. **

  1. �mleci i�aretli (--->) sat�rdaki herhangi bir (, [ veya { karakterinin
     �zerine g�t�r�n.

  2. �imdi   %    karakterini yaz�n.

  3. �mle� uyan parantez veya ayrac�n �zerine gider.

  4. Uyan ilk parantezin �zerine geri d�nmek i�in yine   %   yaz�n.

---> Bu ( i�erisinde ('ler, ['ler ] ve {'ler } bulunan bir sat�rd�r. ))

Not: Bu i�erisinde uymayan parantezler bulunan bir program�n yanl���n� ay�klamak i�in
     son derece yararl�d�r.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Ders 4.4: HATALARI D�ZELTMEK ���N B�R YOL


	** 'eski' yerine 'yeni' yerle�tirmek i�in   :s/eski/yeni/g   yaz�n. **

  1. �mleci a�a�daki i�aretli (--->) sat�ra g�t�r�n.

  2. :s/buu/bu  yaz�p <ENTER> 'a bas�n. Bu komutun sadece sat�rdaki ilk kar��la�may�
     d�zeltti�ine dikkat edin.

  3. �imdi genel olarak sat�rdaki t�m de�i�ikli�i  yapmak i�in   :s/buu/bu/g   yaz�n.

---> Buu birinci, buu ikinci, buu ��nc� b�l�m.

  4. �ki sat�r aras�ndaki bir karakter katar�n�n t�m�n� de�i�tirmek i�in,
     :#,#s/eski/yeni/g  yaz�n, burada #,# iki sat�r�n say�lar�d�r.
     T�m dosyadaki kar��la��lan kelimeleri de�i�tirmek i�in  :%s/eski/yeni/g  yaz�n.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 4 �ZET


  1. Ctrl-g sizin dosyadaki konumunuzu ve dosya durumunu g�sterir.
     Shift-G dosyan�n sonuna gider. Shift-G 'den �nce bir say� yaz�l�rsa, o sat�ra
     gidilir.

  2. Bir s�zc�k �be�inden �nce / yazmak, �LER� y�nde o �be�i arat�r.
     Bir s�zc�k �be�inden �nce ? yazmak, GER� y�nde o �be�i arat�r.
     Bir aramadan sonra, ayn� y�ndeki bir sonraki kar��la�may� bulmak i�in   n   ,
     veya z�t y�ndekini bulmak i�in Shift-N yaz�n.

  3. �mle� bir (,),[,],{,} parantezi �zerindeyken   %   yazmak, uyan di�er e� parantezi bulur.

  4. Bir sat�rdaki ilk 'eski'yi 'yeni' ile de�i�tirmek i�in    		:s/eski/yeni		yaz�n.
     Bir sat�rdaki t�m 'eski'leri 'yeni' ile de�i�tirmek i�in  		:s/eski/yeni/g	 	yaz�n.
     �ki sat�r aras�ndaki �bekleri de�i�tirmek i�in 			:#,#s/eski/yeni/g 	yaz�n.
     									 (#'lar sat�r numaralar�)
     Bir dosyadaki t�m kar��la�malar� de�i�tirmek i�in			:%s/eski/yeni/g 	yaz�n.
     Her seferinde onay sormas� i�in 'c' ekleyin.			:%s/eski/yeni/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Ders 5.1: BIR DI� KOMUT �ALI�TIRMAK


   ** Bir d�� komutu �al��t�rmak i�in   :!      ve ard�ndan istedi�iniz d�� komutu yaz�n. **

  1. �mleci ekran�n alt�na g�t�rmek i�in al���k oldu�unuz  :  komutunu yaz�n. Bu size
     bir komut yazma imkan� verir.

  2. �imdi ! (�nlem) karakterini yaz�n. Bu size bir d�� komut �al��t�rma
     imkan� verir.

  3. �rnek olarak ! karakterini takiben  ls  yaz�n ve <ENTER>'a bas�n. Bu size
     o anda bulundu�unuz dizindeki dosyalar� g�sterecektir. Veya ls �al��mazsa :!dir
     komutunu kullan�n.

Not: Herhangi bir d�� komutu bu yolla �al��t�rmak m�mk�nd�r.

Not: T�m  :   komutlar�ndan sonra <ENTER> tu�una bas�lmal�d�r.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Ders 5.2: DOSYA YAZMAYA DEVAM


     ** Dosyaya yap�lan de�i�ikli�i kaydetmek i�in, :w DOSYA�SM�  yaz�n. **

  1. Bulundu�unuz dizini listelemek i�in  :!dir  veya  :!ls  yaz�n.
     Komuttan sonra <ENTER> tu�una bas�ca�n�z� zaten biliyorsunuz.

  2. Mevcut olmayan bir dosya ismi se�in, �rne�in DENEME.

  3. �imdi   :w DENEME   yaz�n (DENEME sizin se�ti�iniz dosya ismi).

  4. Bu t�m dosyay� (Vim Tutor) DENEME isminde ba�ka bir dosyaya yazar.
     Bunu do�rulamak i�in,  :!dir   yaz�n ve yeniden bulundu�unuz dizini listeleyin.

Not: E�er Vim'den �k�p kaydetti�iniz DENEME dosyas�n� a�arsan�z, bunun kaydetti�iniz
     vimtutor'un ger�ek bir kopyas� oldu�unu g�r�rs�n�z.

  5. �imdi dosyay� �u komutlar� vererek silin	(MS-DOS)     :!del DENEME
  						(veya UNIX)  :!rm DENEME


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Ders 5.3: SE�MEL� YAZ KOMUTU


	** Dosyan�n bir b�l�m�n� kaydetmek i�in,  :#,# w DOSYA�SM�  yaz�n. **

  1. Bir kez daha bulundu�unuz dizini g�rmek i�in  :!dir  veya  :!ls  yaz�n,
     ard�ndan DENEME gibi uygun bir dosya ismi se�in.

  2. �mleci bu sayfan�n ba��na g�t�r�n ve ard�ndan CTRL-g'ye basarak sat�r numaras�n�
     ��renin. BU NUMARAYI UNUTMAYIN!

  3. �imdi sayfan�n sonuna gidib ve yine CTRL-g'ye basarak sat�r numaras�n�
     ��renin. BU NUMARAYI DA UNUTMAYIN!

  4. Bir dosyaya sadece bir b�l�m� kaydetmek i�in, :#,# w DENEME yaz�n. #,# sizin
     bakt��n�z say�lar (�st,alt) ve DENEME dosyan�z�n ismidir.


  5. Yine,  :!dir  yazarak dosyan�n orada oldu�una bak�n ama S�LMEY�N.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Ders 5.4: DOSYALARI B�RLE�T�RMEK-B�L�M EKLEMEK


       ** Bir dosyan�n i�eri�ini eklemek i�in  :r DOSYA�SM�   yaz�n. **

  1. DENEME dosyan�z�n �nceden bulundu�undan emin olmak i�in  :!dir   yaz�n.

  2. �mleci bu sayfan�n ba��na yerle�tirin.

NOT: Ad�m 3'� uygulad�ktan sonra Ders 5.3'� g�r�yor olacaks�n�z. Daha sonra bu
     derse sayfas�na d�n�n.

  3. �imdi DENEME sayfas�n�  :r DENEME  yazarak aktar�n.

NOT: Aktard��n�z dosya imlecinizin hemen alt�na eklenecektir.

  4. Dosyan�n eklendi�ini g�rmek i�in, geriye gidin. Ders 5.3'ten iki kopya
     oldu�unu g�receksiniz; as�l ve kopya olan�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 5 �ZET


  1.  :!komut bir d�� komut �al��t�r�r.

      Baz� yararl� �rnekler:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  bir dizini listeler.
	  :!del DOSYA      :!rm DOSYA      -  DOSYA'y� siler.

  2.  :w DOSYA�SM� o anki Vim dosyas�n� diske DOSYA�SM� ile kaydeder.

  3.  :#,#w DOSYA�SM� # ile # sat�r aras�n� DOSYA�SM� ile kaydeder.

  4.  :r DOSYA�SM� imlecin alt�ndan ba�layarak DOSYA�SM� isimli dosyan�n i�eri�ini ekler.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Ders 6.1: A� KOMUTU


 ** �mlecin a�a�s�na bir sat�r a�mak ve Insert kipine ge�mek i�in   o    yaz�n. **

  1. �mleci a�a�daki i�aretlenmi� (--->) sat�ra g�t�r�n.

  2. �mlecin a�a�s�na bir sat�r a�mak ve Insert kipine ge�mek i�in
     o   (k��k harfle) yaz�n.

  3. �imdi i�aretlenmi� sat�r� kopyalay�n ve Insert kipinden �kmak i�in <ESC>
     tu�una bas�n.

---> o  yazd�ktan sonra imlec a�lan sat�ra gidicek ve Insert kipine ge�ilecek.

  4. �mlecin �zerinde bir sat�r a�mak i�in, basit�e b�y�k O yaz�n. Bunu a�a�daki
     sat�rda deneyin.
Bu sat�r�n �zerine bir sat�r a�mak i�in imle� bu sat�rdayken   Shift-o   yaz�n.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 6.2: EKLE KOMUTU


	     ** �mle�ten sonra metin eklemek i�in   a   yaz�n. **

  1. �mleci a�a�daki i�aretlenmi� (--->) sat�r�n sonuna g�t�rmek i�in
     Normal Kipteyken $ yaz�n.

  2. �mlecin alt�ndaki karakterden sonra metin eklemek i�in  a   (k��k harfle) yaz�n.
     (B�y�k  A  sat�r�n sonuna ekler).

  3. �imdi ilk sat�r� tamamlay�n. Ekle komutunun Insert kipiyle ayn� i�i yapt��na
     dikkat edin. Tek fark metinin eklendi�i yer.
�.N: E�er  a   yazarsan�z imlecin alt�ndaki karakterden hemen sonra ekleme yapabilirsiniz.
     E�er  Shift-a  yazarsan�z imle� sat�r sonuna gidecek ve hemen ard�na ekleme yapabileceksiniz.
     Do�al olarak bizim �rne�imizde Shift-A'y� kullanmak daha g�zel olacakt�r. �nce $ ard�nan a
     yazmam�za gerek kalmaz.

---> Bu sat�rda �al��abilirsiniz
---> Bu sat�rda �al��abilirsiniz. �al���rken metin eklemeyi kullan�n.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Ders 6.3: B�R BA�KA DE���T�R KOMUTU


      ** Birden fazla karakter de�i�tirmek i�in b�y�k R yaz�n. **

  1. �mleci a�a�daki i�aretli (--->) sat�rlar�n ilkine g�t�r�n.

  2. �mleci i�aretli olan ikinci sat�rdakinden farkl� olan ilk kelimenin
     ba��na g�t�r�n. ( "tu�lar�" kelimesi )

  3. �imdi b�y�k R yaz�n ve ilk sat�r� ikincisinin ayn�s� yapmak i�in
     eski metinin �zerinden yenisini yaz�n. Siz yazd�k�a metin de�i�ecektir.

---> Bu sat�r� ikincisinin ayn�s� yapmak i�in tu�lar� kullan�n.
---> Bu sat�r� ikincisinin ayn�s� yapmak i�in R yaz�n ve metini girin.

  4. �kmak i�in <ESC> tu�una bast��n�zda, de�i�memi� metinin aynen
     kald��na dikkat edin.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Ders 6.4: SET SE�ENE��

	  ** Bir se�enek ayarlay�n , b�ylece bir arama veya de�i�tirme **
	  ** durumu g�rmezden gelsin.				       **

  1. 'ignore' kelimesini aramak i�in:
     /ignore
     yaz�n.
     Bunu   n  tu�una basarak birka� kez tekrar edin

  2. :set ic    yazarak 'ic' (Ignore case) ayar�n� se�in.

  3. Tekrar  n  tu�una basarak 'ignore' kelimseini aray�n.
     n   tu�una basarak bu aramay� birden �ok defa tekrar edin.

  4. :set hls is   yazarak 'hlsearch' ve 'incsearch' ayarlar�n� se�in.

  5. /ignore  yazarak arama komutunu tekrar verin ve ne olaca�n� g�r�n.

  6. Kar��la�ma vurgular�n� iptal etmek i�in,
     :nohlsearch   yaz�n.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 6 �ZET


  1. o   yazmak imlecin alt�nda bir sat�r a�ar ve imleci bu a�lm�� sat�ra
     Insert kipinde yerle�tirir.
     B�y�k O  yazmak imlecin �zerinde bir sat�r a�ar.

  2. �mlecin �zerindeki karakterden hemen sonra metin eklemek i�in  a   yaz�n.
     B�y�k A  yazmak hemen sat�r sonuna giderek metin eklemeye haz�r hale getirir.

  3. B�y�k  R   yazmak De�i�tir kipine girer ve �kmak i�in <ESC> tu�una
     bas�lana kadar sizi bu kipte b�rak�r.

  4. ":set xxx"  yazmak  "xxx" se�ene�ini ayarlar.









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Ders 7: �EV�R�M��� (ON-LINE) YARDIM KOMUTLARI


		      ** �evirimi�i yard�m sistemini kullan�n **

  Vim geni� bir �evirimi�i yard�m sistemine sahiptir. Ba�lamak i�in �u ��n�
  deneyebilirsiniz.
	- (e�er sahipseniz) <HELP> tu�una bas�n
	- (e�er sahipseniz) <F1> tu�una bas�n
	- :help yaz�n ve <ENTER> tu�una bas�n

  Yard�m penceresini kapatmak i�in  :q yaz�p <ENTER> tu�una bas�n.

  ":help" komutuna de�i�ken (arg�man) vererek herhangi bir konu hakk�nda
  yard�m alabilirsini. �unlar� deneyin (<ENTER> tu�una basmay� unutmay�n) :

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Ders 8: B�R BA�LANGI� BET��� OLU�TURUN

			  ** Switch on Vim features **
			  ** Vim'in �zelliklerine bak�n **

  Vim Vi'dan �ok daha fazla �zelli�e sahiptir fakat bir�o�u �ntan�ml� olarak kapal�d�r.
  Daha fazla �zellik kullanabilmek i�in bir "vimrc" dosyas� olu�turmal�s�n�z.

  1. "vimrc" dosyas�n� d�zenlemeye ba�lay�n, bu i�letim sisteminize g�re de�i�ir:

  �.N: (Bu komutu verdi�inizde e�er yoksa home dizininizde .vimrc isimli bir dosya olu�acakt�r.
  Bu dosyaya vimrc �rnek dosyas�n� aktarmak i�in 2. ad�mdaki komutu kullanacaks�n�z. Bu y�zden
  vimrc dosyan�z� d�zenlemeden �nce a�a�daki ad�mlar�n hepsini okuyun ve komutlar� hat�rlay�n.)

	:edit ~/.vimrc			Unix i�in
	:edit $VIM/_vimrc		MS-Windows i�in

  2. �imdi �rnek "vimrc" dosyas�n� okuyun

	:read $VIMRUNTIME/vimrc_example.vim

  3. Dosyay� kaydedin ve �k�n

	:write
	:q

  Vim'i bir dahaki sefer �al��t�rd��n�zda s�zdizim (sytax) vurgusu kullan�lacakt�r.
  T�m tercih etti�iniz ayarlar� bu "vimrc" dosyas�na ekleyebilirsiniz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Burada Vim E�itmeni tamamlanm�� oldu. E�itmendeki ama� Vim d�zenleyicisi hakk�nda
  k�sa bir bilgi vermek ve onu kolayca kullanman�z� sa�lamakt�. Vim'in tamam�n� ��retmek
  �ok zordur zira Vim bir�ok komuta sahiptir.Bundan sonra :help user-manual" komutu ile
  kullan�c� k�lavuzunu okumal�s�n�z.

  Daha fazla okuma ve �al��ma i�in �u kitab� �neriyoruz:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
  Tamamiyle Vim i�in haz�rlanm�� ilk kitap. �zellikle ilk kullan�c�lar i�in uygun.
  Kitapta bir�ok �rnek ve resim var.
  http://iccf-holland.org/click5.html adresine bakabilirsiniz.

  Bu kitap daha eskidir ve Vim'den daha �ok Vi i�indir ancak tavsiye edilir:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
  Vi hakk�nda bilmek isteyece�iniz neredeyse her�eyin bulundu�u bir kitap.
  6.Bas�m ayn� zamanda Vim hakk�nda bilgi de i�ermekte.

  Bu e�itmen Michael C. Pierce ve Robert K. Ware taraf�ndan yaz�ld�,
  Charles Smith taraf�ndan sa�lanan fikirlerle Colorado School Of Mines,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Vim i�in de�i�tiren : Bram Moolenaar.

  T�rk�eye �eviren    : Serkan "heartsmagic" �al��    Y�l 2005
  E-mail	      : adresimeyaz (at) yahoo com

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�G$�V�V�vim80/tutor/tutor.denu�[���===============================================================================
=      W i l l k o m m e n   im   V I M   T u t o r    -    Version 1.7.de.1  =
===============================================================================

   Vim ist ein sehr mächtiger Editor, der viele Befehle bereitstellt; zu viele,
   um alle in einem Tutor wie diesem zu erklären.  Dieser Tutor ist so
   gestaltet, um genug Befehle vorzustellen, dass Du die Fähigkeit erlangst,
   Vim mit Leichtigkeit als einen Allzweck-Editor zu verwenden.
   Die Zeit für das Durcharbeiten dieses Tutors beträgt ca. 25-30 Minuten,
   abhängig davon, wie viel Zeit Du mit Experimentieren verbringst.

   ACHTUNG:
   Die in den Lektionen angewendeten Kommandos werden den Text modifizieren.
   Erstelle eine Kopie dieser Datei, in der Du üben willst (falls Du "vimtutor"
   aufgerufen hast, ist dies bereits eine Kopie).

   Es ist wichtig, sich zu vergegenwärtigen, dass dieser Tutor für das Anwenden
   konzipiert ist. Das bedeutet, dass Du die Befehle anwenden musst, um sie
   richtig zu lernen. Wenn Du nur den Text liest, vergisst Du die Befehle!

   Jetzt stelle sicher, dass deine Umstelltaste NICHT gedrückt ist und betätige
   die   j   Taste genügend Mal, um den Cursor nach unten zu bewegen, so dass
   Lektion 1.1 den Bildschirm vollkommen ausfüllt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 1.1: BEWEGEN DES CURSORS

  ** Um den Cursor zu bewegen, drücke die h,j,k,l Tasten wie unten gezeigt. **
	     ^		 Hilfestellung:
	     k		 Die h Taste befindet sich links und bewegt nach links.
       < h	 l >	 Die l Taste liegt rechts und bewegt nach rechts.
	     j		 Die j Taste ähnelt einem Pfeil nach unten.
	     v
  1. Bewege den Cursor auf dem Bildschirm umher, bis Du Dich sicher fühlst.

  2. Halte die Nach-Unten-Taste (j) gedrückt, bis sie sich wiederholt.
     Jetzt weißt Du, wie Du Dich zur nächsten Lektion bewegen kannst.

  3. Benutze die Nach-Unten-Taste, um Dich zu Lektion 1.2 zu bewegen.

Anmerkung: Immer, wenn Du Dir unsicher bist über das, was Du getippt hast,
	   drücke <ESC> , um Dich in den Normalmodus zu begeben.
	   Dann gib das gewünschte Kommando noch einmal ein.

Anmerkung: Die Cursor-Tasten sollten ebenfalls funktionieren.  Aber wenn Du
	   hjkl benutzt, wirst Du in der Lage sein, Dich sehr viel schneller
	   umherzubewegen, wenn Du Dich einmal daran gewöhnt hast. Wirklich!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lektion 1.2: VIM BEENDEN


  !! Hinweis: Bevor Du einen der unten aufgeführten Schritte ausführst, lies
     diese gesamte Lektion!!

  1. Drücke die <ESC> Taste (um sicherzustellen, dass Du im Normalmodus bist).

  2. Tippe:	:q! <ENTER>.
     Dies beendet den Editor und VERWIRFT alle Änderungen, die Du gemacht hast.

  3. Wenn Du die Eingabeaufforderung siehst, gib das Kommando ein, das Dich zu
     diesem Tutor geführt hat. Dies wäre:	vimtutor <ENTER>

  4. Wenn Du Dir diese Schritte eingeprägt hast und Du Dich sicher fühlst,
     führe Schritte 1 bis 3 aus, um den Editor zu verlassen und wieder
     hineinzugelangen.

Anmerkung:  :q! <ENTER>  verwirft alle Änderungen, die Du gemacht hast. Einige
     Lektionen später lernst Du, die Änderungen in einer Datei zu speichern.

  5. Bewege den Cursor abwärts zu Lektion 1.3.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.3: TEXT EDITIEREN - LÖSCHEN


	 ** Drücke  x  , um das Zeichen unter dem Cursor zu löschen. **

  1. Bewege den Cursor zu der mit ---> markierten Zeile unten.

  2. Um die Fehler zu beheben, bewege den Cursor, bis er über dem Zeichen steht,
     das gelöscht werden soll.

  3. Drücke die  x  Taste, um das unerwünschte Zeichen zu löschen.

  4. Wiederhole die Schritte 2 bis 4, bis der Satz korrekt ist.

---> Die Kkuh sprangg übberr deen Moond.

  5. Nun, da die Zeile korrekt ist, gehe weiter zur Lektion 1.4.

Anmerkung: Während Du durch diesen Tutor gehst, versuche nicht, auswendig zu
    lernen, lerne vielmehr durch Anwenden.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.4: TEXT EDITIEREN - EINFÜGEN


		    **  Drücke  i  , um Text einzufügen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Um die erste Zeile mit der zweiten gleichzumachen, bewege den Cursor auf
     das erste Zeichen NACH der Stelle, an der Text eingefügt werden soll.

  3. Drücke  i  und gib die nötigen Ergänzungen ein.

  4. Wenn jeweils ein Fehler beseitigt ist, drücke <ESC> , um zum Normalmodus
     zurückzukehren.
		 Wiederhole Schritte 2 bis 4, um den Satz zu korrigieren.

---> In dieser ft etwas .
---> In dieser Zeile fehlt etwas Text.

  5. Wenn Du Dich mit dem Einfügen von Text sicher fühlst, gehe zu Lektion 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.5: TEXT EDITIEREN - ANFÜGEN


		     ** Drücke  A  , um Text anzufügen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
     Dabei ist gleichgültig, auf welchem Zeichen der Zeile der Cursor steht.

  2. Drücke  A  und gib die erforderlichen Ergänzungen ein.

  3. Wenn das Anfügen abgeschlossen ist, drücke <ESC>, um in den Normalmodus
     zurückzukehren.

  4. Bewege den Cursor zur zweiten mit ---> markierten Zeile und wiederhole
     die Schritte 2 und 3, um den Satz zu auszubessern.

---> In dieser Zeile feh
     In dieser Zeile fehlt etwas Text.
---> Auch hier steh
     Auch hier steht etwas Unvollständiges.

  5. Wenn Du dich mit dem Anfügen von Text sicher fühlst, gehe zu Lektion 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 1.6: EINE DATEI EDITIEREN

		 ** Benutze  :wq  , um eine Datei zu speichern und Vim zu verlassen. **

  !! Hinweis: Bevor Du einen der unten aufgeführten Schritte ausführst, lies
     diese gesamte Lektion!!

  1. Verlasse den Editor so wie in Lektion 1.2:  :q!       
	   Oder, falls du Zugriff zu einem anderen Terminal hast, führe das 
		 Folgende dort aus.

  2. Gib dieses Kommando in die Eingabeaufforderung ein:  vim tutor <ENTER>
     'vim' ist der Aufruf des Editors, 'tutor' ist die zu editierende Datei.
     Benutze eine Datei, die geändert werden darf.

  3. Füge Text ein oder lösche ihn, wie Du in den vorangehenden Lektionen 
     gelernt hast.

  4. Speichere die geänderte Datei und verlasse Vim mit:  :wq  <ENTER>

  5. Falls Du in Schritt 1 den vimtutor beendet hast, starte vimtutor neu und
	   bewege dich abwärts bis zur folgenden Zusammenfassung.

  6. Nachdem Du obige Schritte gelesen und verstanden hast: führe sie durch.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 1


  1. Der Cursor wird mit den Pfeiltasten oder den Tasten hjkl bewegt.
	 h (links)     j (unten)     k (aufwärts)    l (rechts)

  2. Um Vim aus der Eingabeaufforderung zu starten, tippe: vim DATEI <ENTER>

  3. Um Vim zu verlassen und alle Änderungen zu verwerfen, tippe:
		<ESC>  :q!  <ENTER> .

  4. Um das Zeichen unter dem Cursor zu löschen, tippe:  x

  5. Um Text einzufügen oder anzufügen, tippe:
	 i   Einzufügenden Text eingeben   <ESC>    Einfügen vor dem Cursor
	 A   Anzufügenden Text eingeben    <ESC>    Anfügen nach dem Zeilenende

Anmerkung: Drücken von <ESC> bringt Dich in den Normalmodus oder bricht ein
     ungewolltes, erst teilweise eingegebenes Kommando ab.

     Nun fahre mit Lektion 2 fort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lektion 2.1: LÖSCHKOMMANDOS


		   ** Tippe  dw  , um ein Wort zu löschen. **

  1. Drücke  <ESC>  , um sicherzustellen, dass Du im Normalmodus bist.

  2. Bewege den Cursor zu der mit ---> markierten Zeile unten.

  3. Bewege den Cursor zum Anfang eines Wortes, das gelöscht werden soll.

  4. Tippe  dw  , um das Wort zu entfernen.

  Anmerkung: Der Buchstabe  d  erscheint auf der untersten Zeile des Schirms,
        wenn Du ihn eingibst. Vim wartet darauf, dass Du  w  eingibst. Falls Du
        ein anderes Zeichen als  d  siehst, hast Du etwas Falsches getippt;
        drücke <ESC> und beginne noch einmal.

---> Einige Wörter lustig gehören nicht Papier in diesen Satz.

  5. Wiederhole die Schritte 3 und 4, bis der Satz korrekt ist und gehe
     zur Lektion 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 2.2: WEITERE LÖSCHKOMMANDOS


	    ** Tippe  d$  , um bis zum Ende der Zeile zu löschen. **

  1. Drücke <ESC> , um sicherzustellen, dass Du im Normalmodus bist.

  2. Bewege den Cursor zu der mit ---> markierten Zeile unten.

  3. Bewege den Cursor zum Ende der korrekten Zeile (NACH dem ersten . ).

  4. Tippe    d$    , um bis zum Zeilenende zu löschen.

---> Jemand hat das Ende der Zeile doppelt eingegeben. doppelt eingegeben.


  5. Gehe weiter zur Lektion 2.3 , um zu verstehen, was hierbei vorgeht.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lektion 2.3: ÜBER OPERATOREN UND BEWEGUNGSZÜGE


  Viele Kommandos, die Text ändern, setzen sich aus einem Operator und einer
  Bewegung zusammen. Das Format für ein Löschkommando mit dem Löschoperator  d
  lautet wie folgt:

    d  Bewegung

  wobei:
    d        - der Löschoperator
    Bewegung - worauf der Löschoperator angewandt wird (unten aufgeführt).

  Eine kleine Auflistung von Bewegungen:
    w - bis zum Beginn des nächsten Wortes OHNE dessen erstes Zeichen.
    e - zum Ende des aktuellen Wortes MIT dessen letztem Zeichen.
    $ - zum Ende der Zeile MIT dem letzten Zeichen.

  Dementsprechend löscht die Eingabe von  de  vom Cursor an bis zum Wortende.

Anmerkung:  Die Eingabe lediglich des Bewegungsteils im Normalmodus bewegt den
  Cursor entsprechend.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	Lektion 2.4: ANWENDUNG EINES ZÄHLERS FÜR EINEN BEWEGUNGSSCHRITT


   ** Die Eingabe einer Zahl vor einem Bewegungsschritt wiederholt diesen. **

  1. Bewege den Cursor zum Beginn der mit ---> markierten Zeile unten.

  2. Tippe  2w  , um den Cursor zwei Wörter vorwärts zu bewegen.

  3. Tippe  3e  , um den Cursor zum Ende des dritten Wortes zu bewegen.

  4. Tippe  0  (Null) , um zum Anfang der Zeile zu gelangen.

  5. Wiederhole Schritte 2 und 3 mit verschiedenen Nummern.

  ---> Dies ist nur eine Zeile aus Wörtern, um sich darin herumzubewegen.

  6. Gehe weiter zu Lektion 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	 Lektion 2.5: ANWENDUNG EINES ZÄHLERS FÜR MEHRERE LÖSCHVORGÄNGE


   ** Die Eingabe einer Zahl mit einem Operator wiederholt diesen mehrfach. **

  In der Kombination aus Löschoperator und Bewegungsschritt (siehe oben) 
  stellt man, um mehr zu löschen dem Schritt einen Zähler voran:
	 d  Nummer  Bewegungsschritt

  1. Bewege den Cursor zum ersten Wort in GROSSBUCHSTABEN in der mit --->
     markieren Zeile.

  2. Tippe  d2w  , um die zwei Wörter in GROSSBUCHSTABEN zu löschen.

  3. Wiederhole Schritte 1 und  2 mit einem anderen Zähler, um die darauffol-
     genden Wörter in GROSSBUCHSTABEN mit einem einzigen Kommando zu löschen.

--->  Diese ABC DE Zeile FGHI JK LMN OP mit Wörtern ist Q RS TUV bereinigt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 2.6: ARBEITEN AUF ZEILEN


	       ** Tippe  dd  , um eine ganze Zeile zu löschen. **

  Wegen der Häufigkeit, dass man ganze Zeilen löscht, kamen die Entwickler von
  Vi darauf, dass es leichter wäre, einfach zwei d's einzugeben, um eine Zeile
  zu löschen.

  1. Bewege den Cursor zur zweiten Zeile in der unten stehenden Redewendung.
  2. Tippe  dd  , um die Zeile zu löschen.
  3. Nun bewege Dich zur vierten Zeile.
  4. Tippe  2dd  , um zwei Zeilen zu löschen.

--->  1)  Rosen sind rot,
--->  2)  Matsch ist lustig,
--->  3)  Veilchen sind blau,
--->  4)  Ich habe ein Auto,
--->  5)  Die Uhr sagt die Zeit,
--->  6)  Zucker ist süß,
--->  7)  So wie Du auch.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 2.7: RÜCKGÄNGIG MACHEN (UNDO)


	 ** Tippe u , um die letzten Kommandos rückgängig zu machen **
	      ** oder U , um eine ganze Zeile wiederherzustellen. **

  1. Bewege den Cursor zu der mit ---> markierten Zeile unten
     und setze ihn auf den ersten Fehler.
  2. Tippe  x  , um das erste unerwünschte Zeichen zu löschen.
  3. Nun tippe  u  , um das soeben ausgeführte Kommando rückgängig zu machen.
  4. Jetzt behebe alle Fehler auf der Zeile mit Hilfe des x  Kommandos.
  5. Nun tippe ein großes  U , um die Zeile in ihren Ursprungszustand
     wiederherzustellen.
  6. Nun tippe  u  einige Male, um das U und die vorhergehenden Kommandos
     rückgängig zu machen.
  7. Nun tippe CTRL-R (halte CTRL gedrückt und drücke R) mehrere Male, um die
     Kommandos wiederherzustellen (die Rückgängigmachungen rückgängig machen).

---> Beehebe die Fehller diesser Zeile und sttelle sie mitt 'undo' wieder her.

  8. Dies sind sehr nützliche Kommandos.  Nun gehe weiter zur Zusammenfassung 
     von Lektion 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 2


  1. Um vom Cursor bis zum nächsten Wort zu löschen, tippe:    dw
  2. Um vom Cursor bis zum Ende einer Zeile zu löschen, tippe:     d$
  3. Um eine ganze Zeile zu löschen, tippe:    dd

  4. Um eine Bewegung zu wiederholen, stelle eine Nummer voran:   2w
  5. Das Format für ein Änderungskommando ist:
               Operator   [Anzahl]   Bewegungsschritt
     wobei:
       Operator - gibt an, was getan werden soll, zum Beispiel  d  für delete
       [Anzahl] - ein optionaler Zähler, um den Bewegungsschritt zu wiederholen
       Bewegungsschritt - Bewegung über den zu ändernden Text, wie
		  w (Wort), $ (zum Ende der Zeile), etc.

  6. Um Dich zum Anfang der Zeile zu begeben, benutze die Null:  0

  7. Um vorherige Aktionen rückgängig zu machen, tippe:		u (kleines u)
     Um alle Änderungen auf einer Zeile rückgängig zu machen:   U (großes U)
     Um die Rückgängigmachungen rückgängig zu machen, tippe:    CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lektion 3.1: ANFÜGEN (PUT)


     ** Tippe  p  , um vorher gelöschten Text nach dem Cursor anzufügen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Tippe  dd  , um die Zeile zu löschen und sie in einem Vim-Register zu
     speichern.

  3. Bewege den Cursor zur Zeile c), ÜBER derjenigen, wo die gelöschte Zeile
     platziert werden soll.

  4.  Tippe   p   , um die Zeile unterhalb des Cursors zu platzieren.

  5. Wiederhole die Schritte 2 bis 4, um alle Zeilen in die richtige
     Reihenfolge zu bringen.

---> d) Kannst Du das auch?
---> b) Veilchen sind blau,
---> c) Intelligenz ist lernbar,
---> a) Rosen sind rot,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 3.2: ERSETZEN (REPLACE)


   ** Tippe  rx  , um das Zeichen unter dem Cursor durch  x zu ersetzen. **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Bewege den Cursor, bis er sich auf dem ersten Fehler befindet.

  3. Tippe  r  und anschließend das Zeichen, welches dort stehen sollte.

  4. Wiederhole Schritte 2 und 3, bis die erste Zeile gleich der zweiten ist.

--->  Alf diese Zeite eingegoben wurde, wurden einike falsche Tasten gelippt!
--->  Als diese Zeile eingegeben wurde, wurden einige falsche Tasten getippt!

  5. Nun fahre fort mit Lektion 3.2.

Anmerkung: Erinnere Dich daran, dass Du durch Anwenden lernen solltest, nicht 
     durch Auswendiglernen.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lektion 3.3: ÄNDERN (CHANGE)


      ** Um eine Änderung bis zum Wortende durchzuführen, tippe  ce . **

  1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.

  2. Platziere den Cursor auf das  s  von Wstwr.

  3. Tippe  ce  und die Wortkorrektur ein (in diesem Fall tippe  örter ).

  4. Drücke <ESC> und bewege den Cursor zum nächsten zu ändernden Zeichen.

  5. Wiederhole Schritte 3 und 4 bis der erste Satz gleich dem zweiten ist.

---> Einige Wstwr dieser Zlaww lasdjlaf mit dem Ändern-Operator gaaauu werden.
---> Einige Wörter dieser Zeile sollen mit dem Ändern-Operator geändert werden.

Beachte, dass  ce  das Wort löscht und Dich in den Eingabemodus versetzt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 3.4: MEHR ÄNDERUNGEN MITTELS c


     ** Das change-Kommando arbeitet mit denselben Bewegungen wie delete.  **

  1. Der change Operator arbeitet in gleicher Weise wie delete. Das Format ist:

         c    [Anzahl]  Bewegungsschritt

  2. Die Bewegungsschritte sind die gleichen , so wie  w  (Wort) und  $
     (Zeilenende).

  3. Bewege Dich zur ersten unten stehenden mit ---> markierten Zeile.

  4. Bewege den Cursor zum ersten Fehler.

  5. Tippe  c$  , gib den Rest der Zeile wie in der zweiten ein, drücke <ESC> .

---> Das Ende dieser Zeile soll an die zweite Zeile angeglichen werden.
---> Das Ende dieser Zeile soll mit dem  c$  Kommando korrigiert werden.

Anmerkung: Du kannst die Rücktaste benutzen, um Tippfehler zu korrigieren.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 3


  1. Um einen vorher gelöschten Text anzufügen, tippe   p . Dies fügt den
     gelöschten Text NACH dem Cursor an (wenn eine ganze Zeile gelöscht wurde,
     wird diese in die Zeile unter dem Cursor eingefügt).

  2. Um das Zeichen unter dem Cursor zu ersetzen, tippe   r   und danach das 
     an dieser Stelle gewollte Zeichen.

  3. Der Änderungs- (change) Operator erlaubt, vom Cursor bis zum Ende des
     Bewegungsschrittes zu ändern. Tippe  ce  , um eine Änderung vom Cursor bis
     zum Ende des Wortes vorzunehmen;  c$  bis zum Ende einer Zeile.

  4. Das Format für change ist:

	 c   [Anzahl]  Bewegungsschritt

  Nun fahre mit der nächsten Lektion fort.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lektion 4.1: CURSORPOSITION UND DATEISTATUS

 ** Tippe CTRL-G , um deine Dateiposition sowie den Dateistatus anzuzeigen. **
     ** Tippe G , um Dich zu einer Zeile in der Datei zu begeben. **

Anmerkung: Lies diese gesamte Lektion, bevor Du irgendeinen Schritt ausführst!!

  1. Halte die Ctrl Taste unten und drücke  g . Dies nennen wir CTRL-G.
     Eine Statusmeldung am Fuß der Seite erscheint mit dem Dateinamen und der
     Position innerhalb der Datei. Merke Dir die Zeilennummer für Schritt 3.

Anmerkung: Möglicherweise siehst Du die Cursorposition in der unteren rechten
      Bildschirmecke. Dies ist Auswirkung der 'ruler' Option 
	  (siehe :help 'ruler')

  2. Drücke  G  , um Dich zum Ende der Datei zu begeben.
     Tippe  gg  , um Dich zum Anfang der Datei zu begeben.

  3. Gib die Nummer der Zeile ein, auf der Du vorher warst, gefolgt von  G .
     Dies bringt Dich zurück zu der Zeile, auf der Du gestanden hast, als Du
     das erste Mal CTRL-G gedrückt hast.

  4. Wenn Du Dich sicher genug fühlst, führe die Schritte 1 bis 3 aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 4.2: DAS SUCHEN - KOMMANDO


  ** Tippe  /  gefolgt von einem Ausdruck, um nach dem Ausdruck zu suchen. **

  1. Im Normalmodus, tippe das  /  Zeichen.  Beachte, dass das  / und der
     Cursor am Fuß des Schirms erscheinen, so wie beim :	Kommando.

  2. Nun tippe 'Fehhler' <ENTER>. Dies ist das Wort, nach dem Du suchen willst.

  3. Um nach demselben Ausdruck weiterzusuchen, tippe einfach  n (für next).
     Um nach demselben Ausdruck in der Gegenrichtung zu suchen, tippe  N .

  4. Um nach einem Ausdruck rückwärts zu suchen , benutze  ?  statt  / .

  5. Um dahin zurückzukehren, von wo Du gekommen bist, drücke CTRL-O (Halte
     Ctrl unten und drücke den Buchstaben o). Wiederhole dies, um noch weiter
     zurückzugehen.  CTRL-I geht vorwärts.

--->  Fehler schreibt sich nicht "Fehhler"; Fehhler ist ein Fehler
Anmerkung: Wenn die Suche das Dateiende erreicht hat, wird sie am Anfang
        fortgesetzt, es sei denn, die 'wrapscan' Option wurde abgeschaltet.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 4.3: PASSENDE KLAMMERN FINDEN


   ** Tippe  % , um eine gegenüberliegenden Klammer ),], oder } zu finden. **

  1. Platziere den Cursor auf irgendeinem der Zeichen (, [, oder { in der unten
     stehenden Zeile, die mit ---> markiert ist.

  2. Nun tippe das  %  Zeichen.

  3. Der Cursor bewegt sich zur passenden gegenüberliegenden Klammer.

  4. Tippe  % , um den Cursor zur passenden anderen Klammer zu bewegen.

  5. Setze den Cursor auf ein anderes (,),[,],{ oder } und probiere  %  aus.

---> Dies ( ist eine Testzeile ( mit [ verschiedenen ] { Klammern }  darin. ))

Anmerkung: Diese Funktionalität ist sehr nützlich bei der Fehlersuche in einem
     Programmtext, in dem passende Klammern fehlen!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 4.4: DAS ERSETZUNGSKOMMANDO (SUBSTITUTE)


	 ** Tippe :s/alt/neu/g  , um 'alt' durch 'neu' zu ersetzen. **

  1. Bewege den Cursor zu der unten stehenden mit ---> markierten Zeile.

  2. Tippe  :s/diee/die <ENTER> .  Beachte, dass der Befehl nur das erste
     Vorkommen von "diee" ersetzt.

  3. Nun tippe   :s/diee/die/g . Das Zufügen des Flags  g   bedeutet, eine
     globale Ersetzung über die Zeile durchzuführen, dies ersetzt alle 
	 Vorkommen von "diee" auf der Zeile.

---> diee schönste Zeit, um diee Blumen anzuschauen, ist diee Frühlingszeit.

  4. Um alle Vorkommen einer Zeichenkette innerhalb zweier Zeilen zu ändern,
     tippe  :#,#s/alt/neu/g  wobei #,# die Zeilennummern des Bereiches sind,
                             in dem die Ersetzung durchgeführt werden soll.
     Tippe  :%s/alt/neu/g    um alle Vorkommen in der gesamten Datei zu ändern.
     Tippe  :%s/alt/neu/gc   um alle Vorkommen in der gesamten Datei zu finden
                     mit einem Fragedialog, ob ersetzt werden soll oder nicht.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 4

  1. CTRL-G  zeigt die aktuelle Dateiposition sowie den Dateistatus.
             G  bringt Dich zum Ende der Datei.
     Nummer  G  bringt Dich zur entsprechenden Zeilennummer.
            gg  bringt Dich zur ersten Zeile.

  2. Die Eingabe von  /  plus einem Ausdruck sucht VORWÄRTS nach dem Ausdruck.
     Die Eingabe von  ?  plus einem Ausdruck sucht RÜCKWÄRTS nach dem Ausdruck.
     Tippe nach einer Suche  n  , um das nächste Vorkommen in der gleichen
     Richtung zu finden; oder  N  , um in der Gegenrichtung zu suchen.
     CTRL-O bringt Dich zurück zu älteren Positionen, CTRL-I zu neueren.

  3. Die Eingabe von  %  , wenn der Cursor sich auf (,),[,],{, oder }
     befindet, bringt Dich zur Gegenklammer.

  4. Um das erste Vorkommen von "alt" in einer Zeile durch "neu" zu ersetzen,
             tippe       :s/alt/neu
     Um alle Vorkommen von "alt" in der Zeile ersetzen, tippe  :s/alt/neu/g
     Um Ausdrücke innerhalb zweier Zeilen # zu ersetzen        :#,#s/alt/neu/g
     Um alle Vorkommen in der ganzen Datei zu ersetzen, tippe  :%s/alt/neu/g
     Für eine jedesmalige Bestätigung, addiere 'c' (confirm)   :%s/alt/neu/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 5.1: AUSFÜHREN EINES EXTERNEN KOMMANDOS


  ** Gib  :! , gefolgt von einem externen Kommando ein, um es auszuführen. **

  1. Tippe das vertraute Kommando  :  , um den Cursor auf den Fuß des Schirms
     zu setzen. Dies erlaubt Dir, ein Kommandozeilen-Kommando einzugeben.

  2. Nun tippe ein  !  (Ausrufezeichen).  Dies ermöglicht Dir, ein beliebiges,
     externes Shellkommando auszuführen.

  3. Als Beispiel tippe   ls   nach dem  !  und drücke <ENTER>. Dies liefert
     eine Auflistung deines Verzeichnisses; genauso, als wenn Du in der
     Eingabeaufforderung wärst.  Oder verwende  :!dir  , falls ls nicht geht.

Anmerkung:  Mit dieser Methode kann jedes beliebige externe Kommando
     ausgeführt werden, auch mit Argumenten.

Anmerkung:  Alle  :  Kommandos müssen durch Eingabe von <ENTER>
     abgeschlossen werden. Von jetzt an erwähnen wir dies nicht jedesmal.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 5.2: MEHR ÜBER DAS SCHREIBEN VON DATEIEN


** Um am Text durchgeführte Änderungen zu speichern, tippe :w DATEINAME. **

  1. Tippe  :!dir  oder  :!ls  , um eine Auflistung deines Verzeichnisses zu
     erhalten.  Du weißt nun bereits, dass Du danach <ENTER> eingeben musst.

  2. Wähle einen Dateinamen, der noch nicht existiert, z.B. TEST.

  3. Nun tippe:  :w TEST   (wobei TEST der gewählte Dateiname ist).

  4. Dies speichert die ganze Datei (den Vim Tutor) unter dem Namen TEST.
     Um dies zu überprüfen, tippe nochmals  :!ls  bzw.  !dir, um deinen
     Verzeichnisinhalt zu sehen.

Anmerkung: Würdest Du Vim jetzt beenden und danach wieder mit vim TEST
    starten, dann wäre diese Datei eine exakte Kopie des Tutors zu dem
    Zeitpunkt, als Du ihn gespeichert hast.

  5. Nun entferne die Datei durch Eingabe von (MS-DOS):    :!del TEST
                      oder (Unix):                         :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lektion 5.3: AUSWÄHLEN VON TEXT ZUM SCHREIBEN

** Um einen Abschnitt der Datei zu speichern,  tippe  v  Bewegung  :w DATEI **

  1. Bewege den Cursor zu dieser Zeile.

  2. Tippe  v  und bewege den Cursor zum fünften Auflistungspunkt unten.
     Beachte, dass der Text hervorgehoben wird.

  3. Drücke das Zeichen  : . Am Fuß des Schirms erscheint  :'<,'> .

  4. Tippe  w TEST  , wobei TEST ein noch nicht vorhandener Dateiname ist.
     Vergewissere Dich, dass Du  :'<,'>w TEST  siehst, bevor Du <ENTER> drückst.

  5. Vim schreibt die ausgewählten Zeilen in die Datei TEST. Benutze  :!dir
     oder  :!ls , um sie zu sehen. Lösche sie noch nicht! Wir werden sie in
     der nächsten Lektion benutzen.

Hinweis: Drücken von  v  startet die Visuelle Auswahl. Du kannst den Cursor
   umherbewegen, um die Auswahl zu vergrößern oder zu verkleinern. Anschließend
   lässt sich ein Operator anwenden, um mit dem Text etwas zu tun. Zum Beispiel
   löscht  d  den Text.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lektion 5.4: EINLESEN UND ZUSAMMENFÜHREN VON DATEIEN


       ** Um den Inhalt einer Datei einzulesen, tippe  :r DATEINAME  **

  1. Platziere den Cursor direkt über dieser Zeile.

BEACHTE:  Nachdem Du Schritt 2 ausgeführt hast, wirst Du Text aus Lektion 5.3
       sehen. Dann bewege Dich wieder ABWÄRTS, Lektion 5.4 wiederzusehen.

  2. Nun lies deine Datei TEST ein indem Du das Kommando  :r TEST  ausführst,
     wobei TEST der von Dir verwendete Dateiname ist.
     Die eingelesene Datei wird unterhalb der Cursorzeile eingefügt.

  3. Um zu überprüfen, dass die Datei eingelesen wurde, gehe zurück und 
     beachte, dass es jetzt zwei Kopien von Lektion 5.3 gibt, das Original und 
	 die eingefügte Dateiversion.

Anmerkung: Du kannst auch die Ausgabe eines externen Kommandos einlesen. Zum
     Beispiel liest  :r !ls  die Ausgabe des Kommandos ls ein und platziert
     sie unterhalb des Cursors.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 5


  1. :!Kommando  führt ein externes Kommando aus.

      Einige nützliche Beispiele sind
	(MS-DOS)	  (Unix)
	 :!dir		   :!ls		   -  zeigt eine Verzeichnisauflistung.
	 :!del DATEINAME   :!rm DATEINAME  -  entfernt Datei DATEINAME.

  2. :w DATEINAME  speichert die aktuelle Vim-Datei unter dem Namen  DATEINAME.

  3. v  Bewegung  :w DATEINAME  schreibt die Visuell ausgewählten Zeilen in
     die Datei DATEINAME.

  4. :r DATEINAME  lädt die Datei DATEINAME und fügt sie unterhalb der
     Cursorposition ein.

  5. :r !dir  liest die Ausgabe des Kommandos dir und fügt sie unterhalb der
     Cursorposition ein.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 6.1: ZEILEN ÖFFNEN (OPEN)


   ** Tippe  o	, um eine Zeile unterhalb des Cursors zu öffnen und Dich in **
                      ** den Einfügemodus zu begeben. **

  1. Bewege den Cursor zu der ersten mit ---> markierten Zeile unten.

  2. Tippe o (klein geschrieben), um eine Zeile UNTERHALB des Cursors zu öffnen
     und Dich in den Einfügemodus zu begeben.

  3. Nun tippe etwas Text und drücke <ESC> , um den Einfügemodus zu verlassen.

---> Mit  o  wird der Cursor auf der offenen Zeile im Einfügemodus platziert.

  4. Um eine Zeile ÜBERHALB des Cursors aufzumachen, gib einfach ein großes  O
     statt einem kleinen  o  ein. Versuche dies auf der unten stehenden Zeile.

---> Öffne eine Zeile über dieser mit O , wenn der Cursor auf dieser Zeile ist.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 6.2: TEXT ANFÜGEN (APPEND)


	     ** Tippe  a  , um Text NACH dem Cursor einzufügen. **

  1. Bewege den Cursor zum Anfang der ersten Übungszeile mit ---> unten.

  2. Drücke  e  , bis der Cursor am Ende von  Zei  steht.

  3. Tippe ein kleines  a  , um Text NACH dem Cursor anzufügen.

  4. Vervollständige das Wort so wie in der Zeile darunter.  Drücke <ESC> ,
     um den Einfügemodus zu verlassen.

  5. Bewege Dich mit  e  zum nächsten unvollständigen Wort und wiederhole
     Schritte 3 und 4.

---> Diese Zei bietet Gelegen , Text in einer Zeile anzufü.
---> Diese Zeile bietet Gelegenheit, Text in einer Zeile anzufügen.

Anmerkung:  a, i und A gehen alle gleichermaßen in den Einfügemodus; der
            einzige Unterschied ist, wo die Zeichen eingefügt werden.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lektion 6.3: EINE ANDERE ART DES ERSETZENS (REPLACE)


       ** Tippe ein großes  R  , um mehr als ein Zeichen zu ersetzen. **

  1. Bewege den Cursor zur ersten unten stehenden, mit ---> markierten Zeile.
     Bewege den Cursor zum Anfang des ersten  xxx .

  2. Nun drücke  R  und tippe die Nummer, die darunter in der zweiten Zeile
     steht, so dass diese das xxx ersetzt.

  3. Drücke <ESC> , um den Ersetzungsmodus zu verlassen. Beachte, dass der Rest
     der Zeile unverändert bleibt.

  4. Wiederhole die Schritte, um das verbliebene xxx zu ersetzen.

---> Das Addieren von 123 zu xxx ergibt xxx.
---> Das Addieren von 123 zu 456 ergibt 579.

Anmerkung: Der Ersetzungsmodus ist wie der Einfügemodus, aber jedes eingetippte
           Zeichen löscht ein vorhandenes Zeichen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lektion 6.4: TEXT KOPIEREN UND EINFÜGEN

 ** Benutze den  y  Operator, um Text zu kopieren;  p  , um ihn einzufügen **

  1. Gehe zu der mit ---> markierten Zeile unten; setze den Cursor hinter "a)".

  2. Starte den Visuellen Modus mit  v  , bewege den Cursor genau vor "erste".

  3. Tippe  y  , um den hervorgehoben Text zu kopieren.

  4. Bewege den Cursor zum Ende der nächsten Zeile:  j$

  5. Tippe  p , um den Text einzufügen und anschließend:  a zweite <ESC> .

  6. Benutze den Visuellen Modus, um " Eintrag." auszuwählen, kopiere mittels
     y , bewege Dich zum Ende der nächsten Zeile mit  j$  und füge den Text
     dort mit  p  an.

--->  a) dies ist der erste Eintrag.
      b)

Anmerkung: Du kannst  y  auch als Operator verwenden;  yw  kopiert ein Wort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lektion 6.5: OPTIONEN SETZEN

      ** Setze eine Option so, dass eine Suche oder Ersetzung Groß- **
		      ** und Kleinschreibung ignoriert **

  1. Suche nach 'ignoriere', indem Du    /ignoriere   eingibst.
     Wiederhole die Suche einige Male, indem Du die n - Taste drückst.

  2. Setze die 'ic' (Ignore case) - Option, indem Du   :set ic   eingibst.

  3. Nun suche wieder nach 'ignoriere', indem Du  n  tippst.
     Beachte, dass jetzt Ignoriere und auch IGNORIERE gefunden wird.

  4. Setze die 'hlsearch' und 'incsearch' - Optionen:     :set hls is

  5. Wiederhole die Suche und beobachte, was passiert: /ignoriere <ENTER>

  6. Um das Ignorieren von Groß/Kleinschreibung abzuschalten, tippe:  :set noic

Anmerkung: Um die Hervorhebung der Treffer zu entfernen, gib ein:  :nohlsearch
Anmerkung: Um die Schreibweise für eine einzige Suche zu ignorieren, benutze \c
           im Suchausdruck:  /ignoriere\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ZUSAMMENFASSUNG VON LEKTION 6

 1. Tippe  o  , um eine Zeile UNTER dem Cursor zu öffnen und den Einfügemodus
                zu starten
    Tippe  O  , um eine Zeile ÜBER dem Cursor zu öffnen.

 2. Tippe  a  , um Text NACH dem Cursor anzufügen.
    Tippe  A  , um Text nach dem Zeilenende anzufügen.

 3. Das Kommando  e  bringt Dich zum Ende eines Wortes.

 4. Der Operator  y  (yank) kopiert Text,  p  (put) fügt ihn ein.

 5. Ein großes  R  geht in den Ersetzungsmodus bis zum Drücken von  <ESC> .

 6. Die Eingabe von ":set xxx" setzt die Option "xxx". Einige Optionen sind:
	'ic' 'ignorecase'    Ignoriere Groß/Kleinschreibung bei einer Suche
	'is' 'incsearch'     Zeige Teilübereinstimmungen für einen Suchausdruck
	'hls' 'hlsearch'     Hebe alle passenden Ausdrücke hervor
    Der Optionsname kann in der Kurz- oder der Langform angegeben werden.

 7. Stelle einer Option "no" voran, um sie abzuschalten:   :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 7.1 : AUFRUFEN VON HILFE


		     ** Nutze das eingebaute Hilfesystem **

  Vim besitzt ein umfassendes eingebautes Hilfesystem.  Für den Anfang probiere
  eins der drei folgenden Dinge aus:
	- Drücke die <Hilfe> - Taste (falls Du eine besitzt)
	- Drücke die <F1> Taste (falls Du eine besitzt)
	- Tippe   :help <ENTER>

  Lies den Text im Hilfefenster, um zu verstehen wie die Hilfe funktioniert.
  Tippe  CTRL-W CTRL-W   , um von einem Fenster zum anderen zu springen.
  Tippe   :q <ENTER>  , um das Hilfefenster zu schließen.

  Du kannst Hilfe zu praktisch jedem Thema finden, indem Du dem ":help"-
  Kommando ein Argument gibst.  Probiere folgendes (<ENTER> nicht vergessen):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 7.2: ERSTELLE EIN START-SKRIPT


	          **  Aktiviere die Features von Vim **

  Vim besitzt viele Funktionalitäten, die über Vi hinausgehen, aber die meisten
  von ihnen sind standardmäßig deaktiviert. Um mehr Funktionalitäten zu nutzen,
  musst Du eine "vimrc" - Datei erstellen.

  1. Starte das Editieren der "vimrc"-Datei, abhängig von deinem System:
	:e ~/.vimrc		für Unix
	:e $VIM/_vimrc		für MS-Windows

  2. Nun lies den Inhalt der Beispiel-"vimrc"-Datei ein:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Speichere die Datei mit:
	:w

  Beim nächsten Start von Vim wird die Syntaxhervorhebung aktiviert sein.
  Du kannst all deine bevorzugten Optionen zu dieser "vimrc"-Datei zufügen.
  Für mehr Informationen tippe  :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 7.3: VERVOLLSTÄNDIGEN


	   ** Kommandozeilenvervollständigung mit CTRL-D und <TAB> **

  1. Stelle sicher, dass Vim nicht im Vi-Kompatibilitätsmodus ist:  :set nocp

  2. Siehe nach, welche Dateien im Verzeichnis existieren:  :!ls  oder  :dir

  3. Tippe den Beginn eines Kommandos:  :e

  4. Drücke  CTRL-D  und Vim zeigt eine Liste mit "e" beginnender Kommandos.

  5. Drücke  <TAB>  und Vim vervollständigt den Kommandonamen zu ":edit".

  6. Nun füge ein Leerzeichen und den Anfang einer existierenden Datei an:
     :edit DAT

  7. Drücke <TAB>. Vim vervollständigt den Namen (falls er eindeutig ist).

Anmerkung: Vervollständigung funktioniert für viele Kommandos. Probiere
     einfach CTRL-D und <TAB>.  Dies ist insbesondere nützlich für  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				     ZUSAMMENFASSUNG VON LEKTION 7


  1. Tippe  :help  oder drücke <F1> oder <Help>, um ein Hilfefenster zu öffnen.

  2. Tippe  :help Kommando  , um Hilfe über  Kommando  zu erhalten.

  3. Tippe  CTRL-W CTRL-W  , um zum anderen Fenster zu springen.

  4. Tippe  :q  , um das Hilfefenster zu schließen.

  5. Erstelle ein vimrc - Startskript mit deinen bevorzugter Einstellungen.

  6. Drücke CTRL-D nach dem Tippen eines  :  Kommandos, um mögliche
     Vervollständigungen anzusehen.
     Drücke <TAB> , um eine Vervollständigung zu anzuwenden.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Damit ist der Vim Tutor beendet.  Seine Intention war, einen kurzen und
  bündigen Überblick über den Vim Editor zu geben; gerade genug, um relativ
  leicht mit ihm umgehen zu können.  Der Vim Tutor hat nicht den geringsten
  Anspruch auf Vollständigkeit; Vim hat noch weitaus mehr Kommandos. Lies als
  nächstes das User Manual: ":help user-manual".

  Für weiteres Lesen und Lernen ist folgendes Buch empfehlenswert :
	Vim - Vi Improved - von Steve Oualline
	Verlag: New Riders
  Das erste Buch, welches durchgängig Vim gewidmet ist.  Besonders nützlich
  für Anfänger.  Viele Beispiele und Bilder sind enthalten.
  Siehe http://iccf-holland.org/click5.html

  Folgendes Buch ist älter und mehr über Vi als Vim, aber auch empfehlenswert:
	Textbearbeitung mit dem Vi-Editor  -  von Linda Lamb und Arnold Robbins
	Verlag O'Reilly - ISBN: 3897211262
  In diesem Buch kann man fast alles finden, was man mit Vi tun möchte.
  Die sechste Ausgabe enthält auch Informationen über Vim.

  Als aktuelle Referenz für Version 6.2 und knappe Einführung dient das
  folgende Buch:
	vim ge-packt von Reinhard Wobst
	mitp-Verlag, ISBN 3-8266-1425-9
  Trotz der kompakten Darstellung ist es durch viele nützliche Beispiele auch
  für Einsteiger empfehlenswert.  Probekapitel und die Beispielskripte sind
  online erhältlich.  Siehe http://iccf-holland.org/click5.html

  Dieses Tutorial wurde geschrieben von Michael C. Pierce und Robert K. Ware,
  Colorado School of Mines. Es benutzt Ideen, die Charles Smith, Colorado State
  University, zur Verfügung stellte.  E-Mail: bware@mines.colorado.edu.

  Bearbeitet für Vim von Bram Moolenaar.
  Deutsche Übersetzung von Joachim Hofmann 2015.  E-Mail: Joachim.Hof@gmx.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�ݻ�ۃۃvim80/tutor/tutor.ko.utf-8nu�[���===============================================================================
=    빔 길잡이 (VIM Tutor) 에 오신 것을 환영합니다    -      Version 1.5      =
===============================================================================

     빔(Vim)은 이 길잡이에서 다 설명할 수 없을 만큼 많은 명령을 가진
     매우 강력한 편집기입니다. 이 길잡이는 빔을 쉽게 전천후 편집기로 사용할
     수 있도록 충분한 명령에 대해 설명하고 있습니다.

     이 길잡이를 떼는 데에는 실습하는 데에 얼마나 시간을 쓰는 가에 따라서
     25-30 분 정도가 걸립니다.

     이 연습에 포함된 명령은 내용을 고칩니다. 이 파일의 복사본을 만들어서
     연습하세요. (vimtutor 를 통해 시작했다면, 이미 복사본을 사용하는
     중입니다.)

     중요한 것은, 이 길잡이가 직접 써보면서 배우도록 고려되어 있다는 것입니다.
     명령을 제대로 익히려면, 직접 실행해보는 것이 필요합니다. 내용을 읽는
     것만으로는, 명령을 잊어버리게 될 것입니다.

     자 이제, Caps Lock(Shift-Lock) 키가 눌려있지 않은지 확인해보시고, j 키를
     충분히 눌러서 Lesson 1.1이 화면에 가득 차도록 움직여봅시다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 1.1:  커서 움직이기

   ** 커서를 움직이려면, 표시된 대로 h,j,k,l 키를 누르십시오. **
             ^
             k              힌트:  h 키는 왼쪽에 있으며, 왼쪽으로 움직입니다.
       < h       l >               l 키는 오른쪽에 있으며, 오른쪽으로
             j                     움직입니다.
             v                     j 키는 아래방향 화살표처럼 생겼습니다.

  1. 익숙해질 때까지 커서를 스크린 상에서 움직여 보십시오.

  2. 아래 방향키 (j)를 반복입력이 될 때까지 누르고 계십시오.
---> 이제 다음 lesson으로 가는 방법을 알게 되었습니다.

  3. 아래 방향키를 이용하여, Lesson 1.2 로 가십시오.

참고: 원하지 않는 무언가가 입력이 되었다면, <ESC>를 눌러서, 명령 모드로
      돌아가십시오. 그 후에 원하는 명령을 다시 입력하십시오.

참고: 커서키 또한 작동할 것입니다. 하지만 hjkl에 익숙해지면, 커서키보다
      훨씬 빠르게 이동할 수 있을 것입니다.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lesson 1.2: 빔을 시작하고 끝내기


  !! 주의: 아래 있는 단계를 실행하기 전에, 이 lesson 전체를 읽으십시오!!

  1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.

  2. 다음과 같이 입력합니다:    :q! <ENTER>

---> 이렇게 하면, 바뀐 내용을 *저장하지 않고* 편집기를 빠져나갑니다.
     저장한 후 빠져나가려면 다음과 같이 입력합니다:
                                :wq <ENTER>

  3. 쉘 프롬프트가 보인다면, 다시 길잡이로 돌아오기 위해 다음과 같이
     입력합니다.
                                vimtutor <ENTER>
     또는 다음과 같을 수도 있습니다.
                                vim tutor.ko <ENTER>

---> 'vim' 은 빔 편집기로 들어가는 것을 뜻하며, 'tutor.ko'는 편집하려는
     파일을 뜻합니다.

  4. 위에서 이야기한 단계를 기억하였으며, 확신이 서면, 1에서 3까지를
     수행하여 편집기를 나갔다가 다시 들어와보십시오.  그 후 커서를 아래로
     움직여 Lesson 1.3 으로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lesson 1.3: 텍스트 편집 - 지우기


** 명령 모드에서   x  를 누르면 커서가 위치한 곳의 글자를 지울 수 있습니다. **

  1. ----> 로 표시된 곳으로 커서를 옮겨보십시오.

  2. 오타를 수정하기 위해, 커서를 지울 글자 위로 움직여 보십시오.

  3. x  키를 눌러서 지워야할 글자를 지우십시오.

  4. 2에서 4까지를 반복하여 문장이 올바르게 되도록 하여 보십시오.

---> The ccow jumpedd ovverr thhe mooon.

  5. 문장이 정확해졌다면, Lesson 1.4로 가십시오.

주의: 이 길잡이를 보면서 외우려고 하지말고, 직접 사용해보면서 익히길
      바랍니다.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Lesson 1.4: 텍스트 편집 - 삽입 (INSERTION)

  
       ** 명령 모드에서   i  를 누르면 텍스트를 입력할 수 있습니다. **

  1. 커서를 첫번째 ---> 로 표시된 줄로 움직입니다.

  2. 첫번째 줄을 두번째 줄과 똑같이 만들것입니다. 텍스트가 들어가야할
     곳 다음부터 첫번째 글자 위에 커서를 옮겨 놓습니다.

  3. i  키를 누른 후, 필요한 내용을 입력합니다.

  4. 수정한 후에는 <ESC> 를 눌러서 명령 모드로 돌아갑니다.
     문장을 올바르게 만들기 위해 2에서 4의 과정을 반복합니다.

---> There is text misng this .
---> There is some text missing from this line.

  5. 텍스트를 삽입하는 데에 익숙해졌다면, 요약을 봐주십시오.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             LESSON 1 요약


  1. 커서를 움직일 때에는 화살표 키나 hjkl 키를 이용합니다.
         h (왼쪽)       j (아래)       k (위)       l (오른쪽)

  2. 쉘 프롬프트에서 빔을 시작하려면 vim FILENAME <ENTER>

  3. 수정한 내용을 무시한 채로 빔에서 빠져나가려면   <ESC>   :q!   <ENTER>
                     저장한 후 빔에서 빠져나가려면   <ESC>   :wq   <ENTER>

  4. 명령 모드에서 커서가 위치한 곳의 글자를 지우려면   x  를 입력합니다.

  5. 명령 모드에서 커서가 위치한 곳에 텍스트를 삽입하려면
         i   를 누른 후 텍스트를 입력하고  <ESC> 를 누릅니다.

참고: <ESC>는 명령 모드로 돌아가는 데 쓰며, 원치 않는 명령이나 완전히 입력되지
      않은 명령을 취소하는 데에도 씁니다.

그럼 Lesson 2를 시작합시다.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Lesson 2.1: 삭제(DELETION) 명령


            ** 한 단어를 끝까지 지우려면  dw  라고 치면 됩니다. **

  1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.

  2. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.

  3. 지워야할 단어의 처음으로 커서를 옮깁니다.

  4. dw  라고 쳐서 그 단어를 지웁니다.

  주의: 위에서 말한대로 하면 화면의 마지막 줄에 dw 라는 글자가 표시됩니다.
        잘못 쳤다면,  <ESC> 를 눌러서 다시 시작하십시오.

---> There are a some words fun that don't belong paper in this sentence.

  5. 3, 4번 과정을 다시 하여 문장을 정확하게 만든 뒤 Lesson 2.2로 가십시오.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 2.2: 다른 삭제 명령

              **  d$ 라고 치면 그 줄 끝까지 지워집니다. **

  1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.

  2. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.

  3. 올바른 줄의 끝으로 커서를 옮깁니다. (첫번째로 나오는 . 다음입니다.)

  4. d$  라고 쳐서 줄 끝까지 지웁니다.

---> Somebody typed the end of this line twice. end of this line twice.


  5. 어떤 일이 일어났는지 이해하기 위해 Lesson 2.3 으로 가십시오.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 2.3: 명령과 적용 대상에 대해


  삭제 명령 d의 형식은 다음과 같습니다.

         [횟수]   d   대상      또는      d   [횟수]   대상
  여기서
    횟수 - 명령을 몇 번 수행할 지 (옵션, 기본값=1).
    d    - 지우는 명령
    대상 - 아래에 제시된 대상에 대해 명령을 수행

  적용 가능한 대상의 종류:
    w - 커서에서 그 단어의 끝까지 (공백 포함.)
    e - 커서에서 그 단어의 끝까지 (공백을 포함하지 않음.)
    $ - 커서에서 그 줄의 끝까지

참고:  호기심이 있다면, 명령 모드에서 명령 없이 대상을 입력해보십시오.
       위에서 이야기한 대상의 목록에 따라 커서가 움직이게 됩니다.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 2.4: '명령-대상' 에 대한 예외


               **  dd  라고 치면 줄 전체를 지웁니다. **

  줄 전체를 지우는 일이 잦기 때문에, Vi를 디자인 한 사람들은, 간단히 d를
  두번 연달아 치면 한 줄을 지울 수 있도록 하였습니다.

  1. 커서를 아래 나온 단락의 두번째 줄로 가져가십시오.
  2. dd 를 입력하여 그 줄을 지우십시오.
  3. 그런 다음 네번째 줄로 가십시오.
  4. 2dd 라고 입력하여 두줄을 지웁니다. ( 횟수-명령-대상을 기억하세요. )

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Lesson 2.5: 취소(UNDO) 명령


   **  u  를 누르면 마지막 명령이 취소되며,  U 는 줄 전체를 수정합니다. **

  1. 커서를 ---> 로 표시된 줄로 이동한 후 첫번째 잘못된 부분 위로 옮깁니다.
  2.  x  를 입력하여 첫번째 잘못된 글자를 지웁니다.
  3. 그럼 이제  u 를 입력하여 마지막으로 수행된 명령을 취소합니다.
  4. 이번에는  x  명령을 이용하여 그 줄의 모든 에러를 수정해봅시다.
  5. 대문자  U  를 눌러서 그 줄을 원래 상태로 돌려놓아 보십시오.
  6. 이번에는  u 를 몇 번 눌러서  U 와 이전 명령을 취소해봅시다.
  7. CTRL-R (CTRL 키를 누른 상태에서 R을 누르는 것) 을 몇 번 눌러서
     명령을 다시 실행해봅시다. (취소한 것을 취소함.)

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. 이 명령은 매우 유용합니다.  그럼 Lesson 2 요약으로 넘어가도록 합시다.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 2 요약


  1. 커서가 위치한 곳부터 단어의 끝까지 지우려면:    dw

  2. 커서가 위치한 곳부터 줄 끝까지 지우려면:    d$

  3. 줄 전체를 지우려면:    dd

  4. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:

       [횟수]   명령   대상    또는    명령   [횟수]   대상
     여기서:
       횟수 - 그 명령을 몇 번 반복할 것인가
       명령 - 어떤 명령을 내릴 것인가 ( 예를 들어, 삭제인 경우는 d )
       대상 - 명령이 동작할 대상, 예를 들어 w (단어), $ (줄의 끝) 등.

  5. 이전 행동을 취소하려면:                 u   (소문자 u)
     한 줄에서 수정한 것을 모두 취소하려면:  U   (대문자 U)
     취소한 것을 다시 실행하려면:            CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 3.1: 붙이기(PUT) 명령


      **  p 를 입력하여 마지막으로 지운 내용을 커서 뒤에 붙입니다. **

  1. 아래에 있는 문단의 첫 줄로 커서를 움직이십시오.

  2.  dd  를 입력하여 그 줄을 지워서 빔의 버퍼에 저장합니다.

  3. 아까 지운 줄이 가야할 위치의 *윗줄로* 커서를 옮깁니다.

  4. 명령 모드에서,  p  를 입력하여 그 줄을 제대로 된 자리로 옮깁니다.

  5. 2에서 4를 반복하여 모든 줄의 순서를 바로 잡으십시오.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 3.2: 치환(REPLACE) 명령


  ** 커서 아래의 글자 하나를 바꾸려면, r 을 누른 후 바꿀 글자를 입력합니다. **

  1. 커서를 ---> 로 표시된 첫 줄로 옮깁니다.

  2. 커서를 잘못된 첫 부분으로 옮깁니다.

  3.  r  을 누른 후, 잘못된 부분을 고쳐 쓸 글자를 입력합니다.

  4. 2에서 3의 과정을 반복하여, 첫 줄의 오류를 수정하십시오.

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Lesson 3.2 로 이동합시다.

주의: 외우지 말고, 직접 해보면서 익혀야 한다는 것을 잊지 마십시오.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 3.3: 변환(CHANGE) 명령


           ** 한 단어의 일부나 전체를 바꾸려면,  cw  를 치십시오. **

  1. 커서를 ---> 로 표시된 첫줄로 옮깁니다.

  2. 커서를 lubw 에서 u 위에 올려놓습니다.

  3. cw 라고 명령한 후 단어를 정확하게 수정합니다. (이 경우,  'ine' 를 칩니다.)

  4. <ESC> 를 누른 후 다음 에러로 갑니다 (수정되어야할 첫 글자로 갑니다.)

  5. 3에서 4의 과정을 반복하여 첫번째 문장을 두번째 문장과 같도록 만듭니다.

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있도록 한다는 것에
주의합시다.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Lesson 3.4: c 를 이용한 다른 변환 명령


     ** 변환 명령은 삭제할 때 이용한 대상에 대해 적용할 수 있습니다. **

  1. 변환 명령은 삭제와 동일한 방식으로 동작합니다. 형식은 다음과 같습니다:

       [횟수]   c   대상      또는       c   [횟수]   대상

  2. 적용 가능한 대상 역시 같습니다.  w (단어),  $ (줄의 끝) 등이 있습니다.

  3. ---> 로 표시된 첫줄로 이동합니다.

  4. 첫 에러 위로 커서를 옮깁니다.

  5. c$ 를 입력하여, 그 줄의 나머지가 두번째 줄처럼 되도록 수정한 후 <ESC> 를
     누르십시오.

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 3 요약


  1. 이미 지운 내용을 되돌리려면,  p  를 누르십시오. 이 명령은 커서 *다음에*
     지워진 내용을 붙입니다(PUT). (한 줄을 지운 경우에는 커서 다음 줄에
     지워진 내용이 붙습니다.)

  2. 커서 아래의 글자를 치환하려면(REPLACE),  r  을 누른 후 원래 글자 대신
     바꾸어 넣을 글자를 입력합니다.

  3. 변환 명령(CHANGE)은 커서에서 부터 지정한 대상의 끝까지 바꿀 수 있는
     명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면,  cw  를
     입력하면 되며,  c$  는 줄 끝까지 바꾸는 데 쓰입니다.

  4. 변환 명령의 형식은 다음과 같습니다:

         [횟수]   c   대상       또는       c   [횟수]   대상

계속해서 다음 Lesson 을 진행합시다.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Lesson 4.1: 위치와 파일의 상태


  **  CTRL-g 를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있습니다.
      SHIFT-G 를 누르면 파일 내의 줄로 이동합니다. **

  주의: 아래의 단계를 따라하기 전에, 이 Lesson 전체를 먼저 읽으십시오.

  1. CTRL 키를 누른 상태에서 g 를 누릅니다. 파일 이름과 현재 위치한 줄이
     표시된 상태줄이 화면 아래에 표시될 것입니다. 3번째 단계를 위해 그
     줄 번호를 기억하고 계십시오.

  2. SHIFT-G 를 누르면 파일의 마지막으로 이동합니다.

  3. 아까 기억했던 줄 번호를 입력한 후 SHIFT-G 를 누르십시오. 이렇게 하면
     처음에 CTRL-g 를 눌렀던 장소로 되돌아가게 될 것입니다.
     (번호를 입력할 때, 이것은 화면에 표시되지 않습니다.)

  4. 자신이 생겼다면, 1에서 3까지를 실행해보십시오.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 4.2: 찾기 명령


              **  /  를 누른 후 검색할 문구를 입력하십시오. **

  1. 명령 모드에서  /  를 입력하십시오.  : 명령에서와 마찬가지로,  화면 아래에
     / 와 커서가 표시될 것입니다.

  2. 'errroor' 라고 친 후 <ENTER> 를 치십시오. 이 단어를 찾으려고 합니다.

  3. 같은 문구를 다시 찾으려면, 간단히  n  을 입력하십시오.
     같은 문구를 반대 방향으로 찾으려면,  Shift-N 을 입력하십시오.

  4. 문구를 역방향으로 찾으려면,  /  대신  ? 를 이용하면 됩니다.

---> "errroor" is not the way to spell error;  errroor is an error.

참고: 찾는 중에 파일의 끝에 다다르게 되면, 파일의 처음부터 다시 찾게 됩니다.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 4.3: 괄호의 짝 찾기


              ** %  를 눌러서  ), ], } 의 짝을 찾습니다. **

  1. 커서를 ---> 로 표시된 줄의 (, [, { 중 하나에 가져다 놓습니다.

  2.  % 를 입력해 봅시다.

  3. 커서가 짝이 맞는 괄호로 이동할 것입니다.

  4.  % 를 입력하여, 이전 괄호로 되돌아 옵시다.

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

참고: 짝이 맞지 않는 괄호가 있는 프로그램을 디버깅할 때에 매우 유용합니다!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Lesson 4.4: 에러를 수정하는 방법


     **  :s/old/new/g  하면 'old' 를  'new' 로 치환(SUBTITUTE)합니다. **

  1. 커서를 ---> 로 표시된 줄에 가져다 놓습니다.

  2.  :s/thee/the 를 입력한 후 <ENTER> 를 칩니다.  이 명령은 그 줄에서
     처음으로 발견된 것만 바꾼다는 것에 주의하십시오.

  3. 이번에는  :s/thee/the/g  를 입력합니다. 이는 그 줄 전체(globally)를
     치환한다는 것을 의미합니다.

---> thee best time to see thee flowers is in thee spring.

  4. 두 줄 사이의 모든 문자열에 대해 치환하려면 다음과 같이 합니다,
      :#,#s/old/new/g    #,# 는 두 줄의 줄번호를 뜻합니다.
      :%s/old/new/g      파일 전체에서 발견된 모든 것을 치환하는 경우입니다.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 4 요약


  1. CTRL-g  는 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
     SHIFT-G  는 파일의 끝으로 이동합니다. 줄번호를 입력한 후 SHIFT-G를
     입력하면, 그 줄로 이동합니다.

  2.  / 를 입력한 후 문구를 입력하면 그 문구를 아랫방향으로 찾습니다.
      ? 를 입력한 후 문구를 입력하면 윗방향으로 찾습니다.
     검색 후, n 을 입력하면 같은 방향으로 다음 문구를 찾으며,
     Shift-N 을 입력하면 반대 방향으로 찾습니다.

  3. 커서가 (,),[,],{,} 위에 있을 때에  % 를 입력하면 상응하는 짝을
     찾아갑니다.

  4. 어떤 줄에 처음 등장하는 old를 new로 바꾸려면          :s/old/new
     한 줄에 등장하는 모든 old를 new로 바꾸려면            :s/old/new/g
     두 줄 #,# 사이에서 치환을 하려면                      :#,#s/old/new/g
     파일 내의 모든 문구를 치환하려면                      :%s/old/new/g
     바꿀 때마다 확인을 거치려면 'c'를 붙여서              :%s/old/new/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 5.1: 외부 명령 실행하는 방법


         **   :!  을 입력한 후 실행하려는 명령을 입력하십시오. **

  1. 친숙한 명령인  :  를 입력하면 커서가 화면 아래로 이동합니다. 명령을
     입력할 수 있게 됩니다.

  2. 이제  ! (느낌표) 를 입력하십시오. 이렇게 하면 외부 쉘 명령을 실행할
     수 있습니다.

  3. 시험삼아 ! 다음에  ls  를 입력한 후 <ENTER> 를 쳐보십시오. 쉘 프롬프트
     에서처럼 디렉토리의 목록이 출력될 것입니다.  ls  가 동작하지 않는다면
     :!dir 을 시도해 보십시오.

참고:  어떤 외부 명령도 이 방법으로 실행할 수 있습니다.

참고:  모든  :  명령은 <ENTER> 를 쳐야 마무리 됩니다.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 5.2: 보다 자세한 파일 저장


     ** 수정된 내용을 파일로 저장하려면,  :w  FILENAME  하십시오. **

  1.  :!dir 또는  :!ls  를 입력하여 디렉토리의 리스트를 얻어옵니다.
     위의 명령 후 <ENTER>를 쳐야한다는 것은 이미 알고 있을 것입니다.

  2. TEST 처럼 존재하지 않는 파일 이름을 하나 고르십시오.

  3. 이제  :w TEST 라고 입력하십시오.  (TEST는 당신이 선택한 파일 이름입니다.)

  4. 이렇게 하면 빔 길잡이 파일 전체를 TEST라는 이름으로 저장합니다.
     확인하려면,  :!dir 을 다시 입력하여, 디렉토리를 살펴보십시오.

참고: 빔을 종료한 후, 빔을 다시 실행하여 TEST라는 파일을 열면, 그 파일은
      저장했을 때와 완벽히 같은 복사본일 것입니다.

  5. 이제 그 파일을 지웁시다.
     (MS-DOS에서):   !del TEST
     (Unix에서):     !rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 5.3: 선택적으로 저장하는 명령


        ** 파일의 일부를 저장하려면,  :#,# w FILENAME  하십시오. **

  1. 다시 한번,  :!dir  이나  :!ls 를 입력하여 디렉토리의 목록을 받아온 후
     TEST 같은 적합한 이름을 선택합니다.

  2. 커서를 이 페이지의 처음으로 옮긴 후, Ctrl-g 를 입력하여 그 줄의 줄번호를
     알아냅니다. 이 번호를 기억하십시오!

  3. 이제 이 페이지의 마지막으로 가서  Ctrl-g 를 다시 입력하십시오. 이 줄의
     줄번호 또한 기억하십시오!

  4. 어떤 섹션만 파일로 저장하려면,  :#,# w TEST  를 입력하면 됩니다. 이 때
     #,# 는 아까 기억했던 시작과 끝 줄번호 입니다. TEST는 파일 이름입니다.

  5. :!dir 을 이용하여 파일이 만들어졌는지 확인하십시오. 지우지는 마십시오.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 5.4: 파일 읽어들이기, 합치기


       ** 어떤 파일의 내용을 삽입하려면,  :r FILENAME  하십시오 **

  1.  :!dir 을 입력하여 아까 만든 TEST 파일이 그대로 있는지 확인하십시오.

  2. 커서를 이 페이지의 처음으로 움직이십시오.

주의:  3번째 단계를 실행하면, Lesson 5.3 을 보게 될 것입니다. 그렇게 되면
       이 lesson으로 다시 내려오십시오.

  3. 이제 TEST 파일을 읽어들입시다.  :r TEST  명령을 사용하십시오. TEST 는
     파일의 이름입니다.

참고:  읽어들인 파일은 커서가 위치한 지점에서부터 놓이게 됩니다.

  4. 파일이 읽어들여진 것을 확인하기 위해, 뒤로 이동해서 기존 버전과 파일에서
     읽어들인 버전, 이렇게 Lesson 5.3 이 두번 반복되었음을 확인하십시오.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 5 요약


  1.  :!command  를 이용하여 외부 명령을 실행합니다.

      유용한 예:
         (MS-DOS)         (Unix)
          :!dir            :!ls            -  디렉토리의 목록을 보여준다.
          :!del FILENAME   :!rm FILENAME   -  FILENAME이라는 파일을 지운다.

  2.  :w FILENAME  하면 현재 빔에서 사용하는 파일을 FILENAME이라는 이름으로
      디스크에 저장합니다.

  3.  :#,#w FILENAME  하면 #부터 #까지의 줄을 FILENAME이라는 파일로 저장합니다.

  4.  :r FILENAME  은 디스크에서 FILENAME이라는 파일을 불러들여서 커서 위치
      뒤에 현재 파일을 집어넣습니다.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Lesson 6.1: 새 줄 열기(OPEN) 명령


       **  o  를 누르면 커서 아래에 줄을 만들고 편집 모드가 됩니다. **

  1. 아래에 ---> 로 표시된 줄로 커서를 옮기십시오.

  2.  o (소문자)를 쳐서 커서 *아래에* 줄을 하나 여십시오. 편집 모드가 됩니다.
     Insert mode.

  3. ---> 로 표시된 줄을 복사한 후  <ESC> 를 눌러서 편집 모드에서 나오십시오.

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. 커서 *위에* 줄을 하나 만드려면, 소문자  o 대신 대문자  O  를 치면 됩니다.
     아래 있는 줄에 대해 이 명령을 내려보십시오.
Open up a line above this by typing Shift-O while the cursor is on this line.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Lesson 6.2: 추가(APPEND) 명령


          **  a 를 누르면 커서 *다음에* 글을 입력할 수 있습니다. **

  1. 커서를 ---> 로 표시된 첫번째 줄의 끝으로 옮깁니다.  명령 모드에서
     $ 를 이용하십시오.

  2.  소문자 a 를 커서 아래 글자 *다음*에 글을 추가할 수 있습니다.
     (대문자 A는 그 줄의 끝에 추가합니다.)

참고: 그렇게 하시면 고작 줄의 끝에 추가를 하기 위해 i를 누르고, 커서 아래에
      있던 글자를 반복하고, 글을 끼워넣고, <ESC>를 눌러 명령 모드로 돌아와서,
      커서를 오른쪽으로 옮기고 마지막으로 x까지 눌러야 하는 번거로움을 피하실
      수 있습니다.

  3. 이제 첫 줄을 완성하십시오. 추가 명령은 텍스트가 입력되는 위치 외에는
     편집 모드와 완전히 같다는 것을 유념하십시오.

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Lesson 6.3: 치환(REPLACE) 의 다른 버전


      **  대문자 R 을 입력하면 하나 이상의 글자를 바꿀 수 있습니다. **

  1. 커서를 ---> 로 표시된 첫번째 줄로 옮기십시오.

  2. 커서를 ---> 로 표시된 두번째 줄과 다른 첫번째 단어 위로 옮기십시오.
     ('last' 입니다.)

  3.  R  을 입력한 후 첫번째 줄의 예전 텍스트 위에 새로운 글을 입력하여
     나머지 내용이 두번째 줄과 같아지도록 바꿉시다.

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. <ESC> 를 눌러서 나가면, 바뀌지 않은 텍스트는 그대로 남게 됩니다.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Lesson 6.4: 옵션 설정(SET)

      ** 찾기나 바꾸기에서 대소문자 구분을 없애기 위해 옵션을 설정합니다 **

  1. 다음을 입력하여 'ignore' 를 찾으십시오:
     /ignore
      n 키를 이용하여 여러번 반복하십시오.

  2. 'ic' (대소문자 구별 안함, Ignore case) 옵션을 설정하십시오:
     :set ic

  3.  n 키를 눌러서 'ignore' 를 다시 찾아보십시오.
     n 키를 계속 눌러서 여러번 찾으십시오.

  4. 'hlsearch' 와 'incsearch' 옵션을 설정합시다.
     :set hls is

  5. 찾기 명령을 다시 입력하여, 어떤 일이 일어나는지 확인해 보십시오:
     /ignore

  6. 찾은 내용이 강조(HIGHLIGHT)된 것을 없애려면, 다음과 같이 입력합니다:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               LESSON 6 요약


  1.  o 를 입력하면 커서 *아래에* 한 줄이 열리며, 커서는 편집 모드로
     열린 줄 위에 위치하게 됩니다.
     대문자  O  를 입력하면 커서가 있는 줄의 *위로* 새 줄을 열게 됩니다.

  2.  a 를 입력하면 커서 *다음에* 글을 입력할 수 있습니다.
     대문자  A  를 입력하면 자동으로 그 줄의 끝에 글자를 추가하게 됩니다.

  3. 대문자  R  을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.

  4. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       LESSON 7: 온라인 도움말 명령


                      ** 온라인 도움말 시스템 사용하기 **

  빔은 폭 넓은 온라인 도움말 시스템을 제공합니다.  도움말을 보려면,
  다음 세가지 중 하나를 시도해보십시오:
        - <HELP> 키를 누른다. (키가 있는 경우)
        - <F1> 키를 누른다. (키가 있는 경우)
        - :help <ENTER>   라고 입력한다.

  도움말 창을 닫으려면  :q <ENTER>  라고 입력하십시오.

  ":help" 라는 명령에 인자를 주면 어떤 주제에 관한 도움말을 찾을 수 있습니다.
  다음 명령을 내려 보십시오. ( <ENTER> 키를 누르는 것을 잊지 마십시오.)

        :help w
        :help c_<T
        :help insert-index
        :help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       LESSON 8: 시작 스크립트 만들기

                            ** 빔의 기능 켜기 **

  빔은 Vi 보다 훨씬 많은 기능을 가지고 있지만, 대부분은 기본적으로 작동하지
  않습니다. 더 많은 기능을 써보려면, "vimrc" 라는 파일을 만들어야 합니다.

  1. "vimrc" 파일을 수정합시다. 이 파일은 사용하는 시스템에 따라 다릅니다:
  1. Start editing the "vimrc" file, this depends on your system:
        :edit ~/.vimrc                  Unix의 경우
        :edit $VIM/_vimrc               MS-Windows의 경우

  2. 이제 "vimrc"의 예제를 읽어들입니다:

        :read $VIMRUNTIME/vimrc_example.vim

  3. 다음과 같이 하여 파일을 저장합니다:

        :write

  다음 번에 빔을 시작하면, 구문 강조(syntax highlighting)이 사용될 것입니다.
  모든 원하는 설정을 이 "vimrc" 파일에 넣어둘 수 있습니다.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  이것으로 빔 길잡이를 마칩니다.  이 길잡이는 빔 편집기에 대한 간략한 개요를
  보여주기 위한 의도로 제작되었으며, 이 편집기를 정말 간단히 사용하기에
  충분할 뿐입니다.  빔에는 이 길잡이와는 비교할 수 없을 만큼 훨씬 많은 명령이
  있습니다.  다음 사용자 매뉴얼을 읽으십시오: ":help user-manual"

  보다 자세히 읽고 공부하려면, 다음 책을 추천해 드립니다:
        Vim - Vi Improved - by Steve Oualline
        출판사: New Riders
  이 책은 완전히 빔에 대해서만 다루고 있습니다.  특히 초보자들에게 유용합니다.
  많은 예제와 그림이 있습니다.
  다음을 참고하십시오:  http://iccf-holland.org/click5.html

  다음 책은 좀 오래된 책으로 빔보다는 Vi에 대해 다루고 있지만, 역시 추천할 만
  합니다:
        Learning the Vi Editor - by Linda Lamb
        출판사: O'Reilly & Associates Inc.
  Vi로 하고 싶은 거의 모든 것에 대해 알 수 있는 좋은 책입니다.
  여섯번째 개정판은 빔에 관한 내용을 포함하고 있습니다.

  이 길잡이는  Colorado School of Mines의 Michael C. Pierce 와
  Robert K. Ware 가 Colorado State University의 Charles Smith 의 아이디어에
  착안하여 썼습니다.
  .  E-mail: bware@mines.colorado.edu.

  Modified for Vim by Bram Moolenaar.

  이 문서의 한국어 버전에 관한 문의는 다음 사이트로 해주십시오.
  http://wiki.kldp.org/wiki.php/VimTutorKo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z&�0����vim80/tutor/tutor.ptnu�[���===============================================================================
=    B e m - v i n d o  ao  t u t o r i a l  do  V I M  -  Vers�o 1.8 pt_BR   =
===============================================================================

     Vim � um poderoso editor que possui muitos comandos, tantos que seria
     imposs�vel ensin�-los num tutorial como este, que � concebido para
     apresentar os comandos suficientes para permiti-lo usar facilmente o
     Vim como um editor de textos gen�rico.

     O tempo necess�rio para completar o tutorial � de cerca de 25-30 minutos,
     dependendo de quanto tempo � gasto praticando os comandos.

     ATEN��O:
     Os comandos nas li�es modificam este texto. Fa�a uma c�pia deste
     arquivo para praticar os comandos (se usou o "vimtutor", esta j�
     � uma c�pia).

     � importante lembrar que este tutorial � concebido para ensinar pela
     pr�tica. Isso significa que voc� precisa executar os comandos para 
     aprend�-los adequadamente. Se voc� somente ler o texto, esquecer� os
     comandos!

     Agora, certifique-se de que sua tecla Shift-Lock (ou Caps Lock) n�o esteja
     ativada e pressione a tecla  j  o bastante para mover o cursor at� que a
     Li��o 1.1 apare�a inteiramente na tela.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Li��o 1.1:  MOVER O CURSOR


  ** Para mover o cursor, pressione as teclas h,j,k,l conforme indicado. **
             ^
             k          Dica: A tecla h est� � esquerda e move � esquerda.
       < h       l >          A tecla l est� � direita e move � direita.
             j                A tecla j se parece com uma seta para baixo.
             v
  1. Mova o cursor pela tela at� que voc� se sinta confort�vel.

  2. Segure pressionada a tecla (j) at� haver repeti��o.
     Agora voc� j� sabe como ir para a pr�xima li��o.

  3. Usando a tecla j, v� para a Li��o 1.2.

NOTA: Se est� inseguro sobre o que digitou, pressione <ESC> para 
      coloc�-lo no modo Normal. Ent�o redigite o comando que queria.

NOTA: As teclas de cursor funcionam tamb�m. Mas usando hjkl, t�o logo
      esteja acostumado, voc� poder� se mover muito mais rapidamente.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Li��o 1.2: SAIR DO VIM


 !! NOTA: Antes de executar quaisquer dos passos abaixo, leia a li��o inteira !!

  1. Pressione <ESC> (para ter certeza de que est� no modo Normal).

  2. Digite:    :q! <ENTER>.
     Assim, sai do editor SEM salvar qualquer mudan�a feita.

  3. Repita o procedimento que o trouxe a este tutorial. O procedimento pode
     ter sido a digita��o de:  vimtutor <ENTER>.

  4. Se memorizou estes passos e est� confiante, execute os passos de
     1 a 3 para sair e reentrar no editor.

NOTA:  :q! <ENTER>  descarta qualquer mudan�a. Em uma pr�xima li��o ser�
       ensinado como salvar as mudan�as feitas em um arquivo.

  5. Des�a o cursor at� a Li��o 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Li��o 1.3: EDITAR TEXTOS - REMO��O

  ** Pressione  x  para deletar o caractere sob o cursor. **


  1. Mova o cursor para a linha abaixo marcada com --->.

  2. Para corrigir os erros, mova o cursor at� que ele esteja sobre o 
     caractere a ser deletado.

  3. Pressione a tecla  x  para remover o caractere incorreto.

  4. Repita os passos 2 at� 4 at� que a frase esteja correta.

---> A vvaca pullouu por ccimaa dda luuua.

  5. Agora que a frase est� correta, prossiga para a Li��o 1.4.

NOTA: Enquanto segue este tutorial, n�o tente memorizar, aprenda pelo uso.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Li��o 1.4: EDITAR TEXTOS - INSER��O

		   ** Pressione  i  para inserir texto. **


  1. Mova o cursor at� a primeira linha abaixo marcada com --->.

  2. Para deixar a primeira linha igual � segunda, mova o cursor para
     o primeiro caractere DEPOIS de onde o texto dever� ser inserido.

  3. Pressione  i  e digite as adi�es necess�rias.

  4. Assim que cada erro for corrigido pressione <ESC> para retornar ao modo
     Normal. Repita os passos 2 at� 4 para corrigir a frase.

---> Tem text fatado nesta .
---> Tem algum texto faltando nesta linha.

  5. Quando se sentir � vontade com a inser��o de texto, mova o cursor para
     a Li��o 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Li��o 1.5: EDITAR TEXTO - ADICIONAR

		  ** Pressione  A  para adicionar texto. **

  1. Mova o cursor para a primeira linha abaixo marcada com --->.
     N�o importa sobre qual caractere o cursor estar� na linha.

  2. Pressione  A  e digite as adi�es necess�rias.

  3. Quando adicionar o texto, pressione <ESC> para retornar ao modo Normal.

  4. Mova o cursor para a segunda linha marcada ---> e repita os passos 2 e 3
     para corrigir a frase.

---> H� algum texto faltando nes
     H� algum texto faltando nesta linha.
     H� algum texto faltan
---> H� algum texto faltando aqui.

  5. Quando se sentir confort�vel adicionando texto, v� para a Li��o 1.6.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Li��o 1.6: EDITAR UM ARQUIVO

		** Use  :wq  para salvar um arquivo e sair. **

  !! NOTA: Leia toda a li��o antes de executar as instru�es!!

  1. Saia deste tutorial como o fez na li��o 1.2:  :q!
     Ou, se tiver acesso a outro terminal, fa�a o seguinte nele.

  2. No prompt do shell, digite esse comando:  vim tutor <ENTER>
     'vim' � o comando para iniciar o editor Vim e 'tutor' � o nome do
     arquivo que voc� quer editar.  Use um arquivo que possa ser modificado.

  3. Insira e apague texto tal como aprendeu nas li�es anteriores.

  4. Salve o arquivo com as mudan�as e saia do Vim com:  :wq <ENTER>

  5. Se tiver sa�do do vimtutor no passo 1, reinicie o vimtutor e v� para
     o resumo seguinte.

  6. Ap�s ler os passos acima e compreend�-los, execute-os.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LI��O 1

  1. O cursor � movido usando tanto as teclas de seta quanto as teclas hjkl.
	h (esquerda)	j (para baixo)	k (para cima)	l (direita)

  2. Para entrar no Vim a partir de um shell digite: vim NOMEDOARQUIVO <ENTER>

  3. Para sair do Vim digite:  <ESC> :q! <ENTER> para descartar as altera�es.
                   OU digite:  <ESC> :wq <ENTER> para salvar as altera�es.

  4. Para deletar um caractere sob o cursor no modo Normal digite:  x

  5. Para inserir texto na posi��o do cursor enquanto estiver no modo Normal
     digite:
             i     digite o texto <ESC>   inserir depois do cursor
	     A     digite o texto <ESC>   adicionar no final da linha

NOTA: Pressionando <ESC> voc� ir� para o modo Normal ou cancelar� um comando
      ainda incompleto.

Agora continue com a Li��o 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Li��o 2.1: COMANDOS DE REMO��O 

	          ** Digite  dw  para apagar uma palavra. **


  1. Pressione  <ESC>  para ter certeza de que est� no modo Normal.

  2. Mova o cursor at� a linha abaixo marcada com --->.

  3. Mova o cursor at� o come�o da palavra que precisa ser deletada.

  4. Digite  dw  para fazer a palavra desaparecer.

  NOTA: A letra  d  vai aparecer na �ltima linha da tela enquanto voc� a
	digita. O Vim o est� esperando digitar um  w . Se digitou
	alguma coisa errada, pressione <ESC> e comece de novo.

---> Tem a algumas oi palavras divers�o que n�o pertencem papel a esta frase.

  5. Repita os passos 3 ao 4 at� que a frase esteja correta e v� para a
     Li��o 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Li��o 2.2: MAIS COMANDOS DE REMO��O

             ** Digite  d$  para deletar at� o fim da linha. **



  1. Pressione <ESC> para ter certeza de estar no modo Normal.

  2. Mova o cursor at� a linha abaixo marcada com --->.

  3. Mova o cursor at� o fim da linha correta (DEPOIS do primeiro  . ).

  4. Digite  d$  para apagar at� o fim da linha.

---> Algu�m digitou o fim desta linha duas vezes. desta linha duas vezes.

  5. V� para a li��o 2.3 para entender o funcionamento deste comando.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Li��o 2.3: SOBRE OPERADORES E MOVIMENTOS 

  Muitos comandos que mudam texto s�o feitos de um operador e de um movimento.
  O formato para um comando apagar com o operador de remo��o  d  tem a
  seguinte forma:

         d   movimento

  Onde:
    d - � o operador apagar.
    movimento - � o movimento sobre o qual o operador age (listado abaixo).

  Uma pequena lista de teclas de movimento:
    w - at� o in�cio da pr�xima palavra, excluindo seu primeiro caractere.
    e - at� o fim da palavra atual, incluindo seu �ltimo caractere.
    $ - at� o fim da linha, incluindo seu �ltimo caractere.

  Portanto, digitar  de  apaga do cursor ao fim da palavra.

NOTA: Pressionar apenas a tecla de movimento em modo Normal, sem o
operador, faz o cursor se mover como especificado na lista de teclas de
movimento.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Li��o 2.4: USAR UM CONTADOR PARA UM MOVIMENTO

   ** Digitar um n�mero antes de um movimento repete-o o tanto de vezes. **


   1. Mova o cursor para o come�o da linha marcada com ---> abaixo.

   2. Digite  2w  para mover o cursor duas palavras adiante.

   3. Digite  3e  para mover o cursor para o fim da terceira palavra adiante.

   4. Digite  0  (zero) para mover para o in�cio da linha.

   5. Repita os passos 2 e 3 com diferentes n�meros.

---> Esta � uma linha com algumas palavras para permiti-lo fazer movimentos.

   6. V� para a Li��o 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Li��o 2.5: USAR UM CONTADOR PARA APAGAR MAIS

   ** Digitar um n�mero com um operador repete-o esse n�mero de vezes. **


   Voc� deve inserir um contador entre o operador de remo��o e o de movimento
   mencionados acima para apagar mais:
       d   n�mero   movimento

   1. Movimente o cursor para a primeira palavra em LETRAS MAI�SCULAS na
      linha marcada com --->.

   2. Digite  d2w  para deletar as duas palavras em LETRAS MAI�SCULAS.

   3. Repita os passos 1 e 2 com diferentes contadores para deletar as
      palavras em LETRAS MAI�SCULAS com um comando.

--->  esta ABC DE linha FGHI JK LMN OP de palavras est� Q RS TUV limpa.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Li��o 2.6: TRABALHAR COM LINHAS

	      ** Digite  dd  para apagar uma linha inteira. **

  Em virtude da frequ�ncia em deletar uma linha inteira, os desenvolvedores 
  do Vi decidiram que seria mais simples digitar dois d para apagar uma linha.

  1. Mova o cursor at� a segunda linha da frase abaixo.
  2. Digite  dd  para apagar a linha.
  3. Agora mova at� a quarta linha.
  4. Digite  2dd  para apagar duas linhas.

--->  1)  Rosas s�o vermelhas,
--->  2)  Lama � divertida,
--->  3)  Violetas s�o azuis,
--->  4)  Eu tenho um carro,
--->  5)  Rel�gios dizem as horas,
--->  6)  A�car � doce,
--->  7)  Assim como voc�.

Notas do tradutor: Lama (mud) em ingl�s pode significar fofoca, difama��o.
                   H� rima no texto original.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Li��o 2.7: O COMANDO UNDO (DESFAZER)

** Pressione u para desfazer os �ltimos comandos, U recupera a linha inteira.**


  1. Mova o cursor para a linha abaixo marcada com ---> e posicione-o sobre o
     primeiro erro.
  2. Digite  x  para deletar o primeiro caractere errado.
  3. Agora, digite  u  para desfazer o �ltimo comando executado.
  4. Desta vez, corrija todos os erros na linha usando o comando  x .
  5. Agora, digite um U mai�sculo para retornar a linha ao seu estado original.
  6. Digite  u  algumas vezes para desfazer o  U  e os comandos anteriores.
  7. Digite CTRL-R (segurando a tecla CTRL enquanto digita R) algumas vezes
     para refazer os comandos (desfazer os undos).

---> Corriija os erros nnesta linha e reetorne-os com undo.

  8. Esses comandos s�o muito �teis. Agora v� para o resumo da Li��o 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LI��O 2


  1. Para apagar do cursor at� a pr�xima palavra, digite:   dw
  2. Para apagar do cursor at� o fim de uma linha, digite:  d$
  3. Para apagar uma linha inteira, digite:   dd
  4. Para repetir um movimento, adicione antes um n�mero:   2w
  5. O formato para um comando no modo Normal �:
           operador   [n�mero]   movimento
   onde:
      operador  - � o que ser� feito, como  d  para apagar
      [n�mero]  - quantas vezes o comando ser� repetido
      movimento - movimento sobre o texto que receber� a opera��o, como
                  w (palavra), $ (at� o fim da linha), etc.

  6. Para ir ao in�cio da linha, use um zero:  0

  7. Para desfazer uma a��o anterior, digite:                  u (min�sculo)
     Para desfazer todas as altera�es em uma linha, digite:   U (mai�sculo)
     Para desfazer o que foi desfeito, digite:                 CTRL-R




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Li��o 3.1: O COMANDO COLAR

	** Digite  p  para colar ap�s o cursor o que acabou de apagar. **


  1. Mova o cursor at� a primeira linha marcada com --->.

  2. Digite  dd  para apagar a linha e guard�-la num registro do Vim.

  3. Mova o cursor at� a linha c) ACIMA de onde a linha apagada deveria estar.

  4. No modo Normal, digite  p  para inserir a linha.

  5. Repita os passos 2 ao 4 para p�r todas as linhas na ordem correta.

---> d) Voc� pode aprender tamb�m?
---> b) Violetas s�o azuis,
---> c) Intelig�ncia se aprende,
---> a) Rosas s�o vermelhas,

Nota do tradutor: H� rima no original.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	               Li��o 3.2: O COMANDO SUBSTITUIR

     ** Digite  rx  para substituir o caractere sob o cursor por  x . ** 


  1. Mova o cursor at� a primeira linha abaixo marcada com --->.

  2. Mova o cursor at� que esteja sobre o primeiro erro.

  3. Digite  r  e ent�o o caractere que deveria estar l�.

  4. Repita os passos 2 e 3 at� que a primeira linha esteja igual � segunda.

---> Quendo este limha foi dugitada, alguem pressioniu algumas teclas erradzs!
---> Quando esta linha foi digitada, algu�m pressionou algumas teclas erradas!

  5. Agora v� para a Li��o 3.3.

NOTA: Lembre-se que voc� deve aprender pelo uso, n�o pela memoriza��o.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Li��o 3.3: O OPERADOR CHANGE (MUDAR)

	** Para alterar at� o fim de uma palavra, digite  ce . **


  1. Mova o cursor at� a primeira linha abaixo marcada com --->.
  
  2. Posicione o cursor sobre o u em lunba.

  3. Digite  ce  e a palavra correta (nesse caso, digite 'inha'.)

  4. Pressione <ESC> e mova para o pr�ximo caractere a ser alterado.

  5. Repita os passos 3 e 4 at� que a primeira frase esteja igual � segunda.

---> Essa lunba tem pwlesmfr que ocrimmm  soi alteradas cup o comando change.
---> Essa linha tem palavras que precisam ser alteradas com o comando change. 

Note que  ce  n�o somente substitui a palavra, mas tamb�m o coloca no modo
de Inser��o.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Li��o 3.4: MAIS MUDAN�AS USANDO c

     ** O operador change � usado com os mesmos movimentos que o delete. **


  1. O operador change trabalha da mesma maneira que o delete. O formato �:

          c    [n�mero]    movimento

  2. Os movimentos tamb�m s�o os mesmos: w (palavra) e $ (fim da linha).

  3. Mova at� a primeira linha abaixo marcada com --->.

  4. Mova o cursor at� o primeiro erro.

  5. Digite  c$  e digite o resto da segunda para torn�-las iguais e 
     pressione  <ESC>.

---> O fim desta linha precisa de ajuda para ficar igual � segunda.
---> O fim desta linha precisa ser corrigido usando o comando  c$.

NOTA: Voc� pode usar a tecla Backspace para corrigir erros enquanto digita.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LI��O 3


  1. Para reinserir um texto que j� foi apagado, digite  p . Isso coloca o texto
     deletado AP�S o cursor (se uma linha � deletada ela ser� inserida na linha
     abaixo do cursor).

  2. Para substituir o caractere sob o cursor, digite  r  e ent�o o caractere
     que substituir� o original.

  3. O comando change possibilita mudar do cursor at� onde o movimento for.
     Ex: Digite  ce  para mudar do cursor at� o fim de uma palavra, c$ para
     mudar at� o fim da linha.

  4. O formato para uma opera��o change �:

         c   [n�mero]   movimento

Agora v� para a pr�xima li��o.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Li��o 4.1: LOCALIZA��O DO CURSOR E ESTADO DO ARQUIVO

    ** Digite CTRL-G para mostrar sua localiza��o no arquivo e seu estado.
       Digite  G  para mover para uma linha do arquivo.  **

  Nota: Leia esta li��o inteira antes de executar qualquer um dos passos!!

  1. Segure pressionada a tecla Ctrl e pressione  g . Chamamos isso de
     CTRL-G. Uma mensagem aparecer� no rodap� da p�gina com o nome do arquivo
     e a sua posi��o no arquivo. Lembre-se do n�mero da linha para o Passo 3.

NOTA:  A posi��o do cursor pode estar vis�vel no canto direito inferior da
       tela. Isso acontece quando a op��o 'ruler' est� ativa
       (veja  :help 'ruler' ).

  2. Pressione  G  para se mover at� o fim do arquivo.
     Digite  gg  para se mover at� o in�cio do arquivo.

  3. Digite o n�mero da linha em que estava e ent�o G . Assim o cursor retornar�
     � linha em que estava quando pressionou CTRL-G.

  4. Se estiver seguro para faz�-los, execute os passos 1 a 3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Li��o 4.2: O COMANDO BUSCAR

      ** Digite  /  seguido por uma frase para procurar por ela. **

  1. No modo Normal digite o caractere  / . Note que ele e o cursor aparecem
     no rodap� da tela, como ocorre com o comando  : .

  2. Agora digite 'errroo' <ENTER>. Esta � a palavra que quer procurar.

  3. Para buscar a mesma palavra de novo, simplesmente tecle  n .
     Para buscar a mesma palavra na dire��o oposta, tecle  N .

  4. Se quer procurar por uma frase de tr�s para frente, use  ?  em vez de  /  .

  5. Para voltar aonde estava, pressione CTRL-O (mantenha a tecla Ctrl
     pressionada e pressione a tecla o). Repita para voltar a outras posi�es.
     CTRL-I segue para posi�es mais recentes.

--->  "errroo" n�o � uma maneira de escrever erro;  errroo � um erro.

NOTA: Quando a busca atinge o fim do arquivo ela continuar� do come�o, a
      menos que a op��o 'wrapscan' esteja desativada.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	        Li��o 4.3: BUSCA DE PAR�NTESES CORRESPONDENTES

         ** Digite  %  para encontrar um ),], ou } correspondente. **


  1. Posicione o cursor em qualquer (, [, ou { na linha abaixo marcada com --->.
  
  2. Agora digite o caractere  % .
  
  3. O cursor deve estar no par�ntese ou colchete que casa com o primeiro.

  4. Digite  %  para mover o cursor de volta ao primeiro colchete ou par�ntese
     (por casamento).

---> Isto ( � uma linha de teste contendo (, [ ] e { }. ))

Nota: Isso � muito �til para corrigir um programa com par�ntese n�o-casado!





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Li��o 4.4: O COMANDO SUBSTITUIR

      ** Digite  :s/velho/novo/g  para substituir 'velho' por 'novo'. **


  1. Mova o cursor para a linha abaixo marcada com --->.

  2. Digite  :s/aa/a <ENTER> . Note que este comando somente muda a 
     primeira ocorr�ncia na linha.

  3. Agora digite  :s/aa/a/g   significando substituir globalmente na linha.
     Isto muda todas as ocorr�ncias na linha.

---> aa melhor �poca para ver aas flores � aa primavera. 

  4. Para mudar toda ocorr�ncia de uma string entre duas linhas,
     digite  :#,#s/velho/novo/g   onde #,# s�o os n�meros das duas linhas.
     Digite  :%s/velho/novo/g     para mudar todas as ocorr�ncias no arquivo
                                  inteiro.
     Digite  :%s/velho/novo/gc    para mudar todas as ocorr�ncias no arquivo
                                  inteiro, com a op��o de confirmar cada
				  substitui��o.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              RESUMO DA LI��O 4


  1.    CTRL-G  mostra em que ponto do arquivo est� e o estado dele.
             G  move para o fim do arquivo.
     n�mero  G  move para a linha com esse n�mero.
            gg  move para a primeira linha.

  2. Digitando  /  seguido por uma express�o procura � FRENTE por ela.
     Digitando  ?  seguido por uma express�o procura pela express�o de TR�S
     PARA FRENTE.
     Ap�s uma busca, digite n para achar a pr�xima ocorr�ncia na mesma dire��o
     ou N para procurar na dire��o oposta.
     CTRL-O leva a posi�es antigas e CTRL-I a posi�es mais recentes.

  3. Digitando  %  enquanto o cursor est� sobre um (,),[,],{, ou } localiza
     o par que casa com ele.

  4. Para substituir:
       o primeiro 'velho' de uma linha por 'novo' digite   :s/velho/novo
       todos os 'velho' em uma linha por 'novo' digite     :s/velho/novo/g
       express�es entre dois n�meros (#) de linhas digite  :#,#s/velho/novo
       todas as ocorr�ncias no arquivo digite              :%s/velho/novo/g
     Para confirmar cada substitui��o adicione 'c'         :%s/velho/novo/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Li��o 5.1: COMO EXECUTAR UM COMANDO EXTERNO


       ** Digite  :!  seguido por um comando externo para execut�-lo. **

  1. Digite o familiar comando  :  para levar o cursor ao rodap� da tela. Isso
     o permite entrar um comando.

  2. Agora digite o caractere  !  (ponto de exclama��o). Isso o permite
     executar qualquer comando do shell.

  3. Como um exemplo digite  ls  seguindo o  !  e ent�o tecle <ENTER>. Isto
     mostrar� uma listagem do seu diret�rio, como se voc� estivesse no
     prompt do shell. Ou use  :!dir se ls n�o funcionar.

NOTA:  � poss�vel executar qualquer comando externo dessa maneira, inclusive
       com argumentos.

NOTA:  Todos os comandos  :  devem ser finalizados teclando-se <ENTER>
       Daqui em diante n�o mencionaremos isso todas as vezes.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Li��o 5.2: MAIS SOBRE SALVAR ARQUIVOS

     ** Para salvar as altera�es no texto, digite  :w NOMEDOARQUIVO. **


  1. Digite  :!dir  ou  :!ls para ter uma listagem de seu diret�rio.
     Voc� j� deve saber que precisa teclar <ENTER> depois disso.

  2. Escolha um nome de arquivo que ainda n�o exista, como TESTE.

  3. Agora digite:   :w TESTE  (onde TESTE � o nome que voc� escolheu.)

  4. Isto salva o arquivo inteiro  (o Vim Tutor) com o nome TESTE.
     Para verificar isso, digite  :!ls de novo para ver seu diret�rio.

NOTA: Se sair do Vim e entrar de novo com o nome do arquivo TESTE,
      o arquivo deve ser uma c�pia exata do tutorial quando voc� o salvou.

  5. Agora remova o arquivo digitando (MS-DOS):     :!del TESTE
                                   ou (Unix):       :!rm TESTE


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Li��o 5.3: SELECIONAR O TEXTO A SER SALVO

  ** Para salvar parte de um arquivo, digite  v  movimento  :w NOMEDOARQUIVO **

  1. Mova o cursor para esta linha.

  2. Pressione  v  e mova o cursor para o quinto item abaixo. Note que o texto
     � real�ado.

  3. Pressione o caractere  :  e note que aparecer�  :'<,'>  no lado inferior
     da tela.

  4. Digite  w TESTE , sendo TESTE um nome de arquivo que n�o existe ainda.
     Certifique-se de ver  :'<,'>w TESTE  antes de pressionar <ENTER>.

  5. O Vim salvar� as linhas selecionadas no arquivo TESTE. Use  :!dir  ou
     !:ls para v�-lo. N�o o apague ainda! N�s o usaremos na pr�xima li��o.

NOTA:  Pressionar  v  inicia o modo Visual de sele��o.  Voc� pode mover o
cursor pela tela para tornar a sele��o maior ou menor. Pode, ent�o, usar um
operador para executar alguma a��o. Por exemplo,  d  apaga o texto.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Li��o 5.4: RECUPERAR E UNIR ARQUIVOS

    ** Para inserir o conte�do de um arquivo, digite  :r NOMEDOARQUIVO **


  1. Posicione o cursor logo acima desta linha.

NOTA:  Depois de executar o Passo 2 voc� ver� a Li��o 5.3. Ent�o DES�A o
       cursor para ver esta li��o novamente.

  2. Agora recupere o arquivo TESTE usando o comando  :r TESTE  onde TESTE � o
     nome do arquivo.
     O arquivo recuperado � colocado abaixo da linha atual do cursor.

  3. Para verificar que o arquivo foi recuperado, volte com o cursor e verifique
     que agora existem duas c�pias da Li��o 5.3, a original e a vers�o do 
     arquivo.

NOTA: Voc� tamb�m pode ler a sa�da de um comando externo. Por exemplo,  :r !ls
      l� a sa�da do comando ls e coloca o resultado abaixo do cursor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LI��O 5 


  1.  :!comando  executa um comando externo.

      Alguns exemplos �teis s�o:
         (MS-DOS)         (UNIX)
	  :!dir            :!ls          -  lista conte�do do diret�rio.
          :!del ARQUIVO    :!rm ARQUIVO  -  remove ARQUIVO.

  2. :w ARQUIVO  salva o atual arquivo do Vim para o disco com o nome ARQUIVO.

  3. v  movimento  :w ARQUIVO  salva as linhas Visualmente selecionadas em
     ARQUIVO.

  4. :r ARQUIVO  recupera ARQUIVO do disco e o insere dentro do arquivo atual
     na posi��o do cursor.

  5. :r !dir  l� a sa�da do comando dir e coloca o resultado abaixo da posi��o
     atual do cursor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Li��o 6.1: O COMANDO ABRIR

   ** Digite  o  para abrir uma linha em baixo do cursor e ir para o modo de
      Inser��o. ** 

  1. Mova o cursor para a linha abaixo marcada com --->.

  2. Digite  o  (min�sculo) para abrir uma linha ABAIXO do cursor e ir para o
     modo de Inser��o. 

  3. Agora digite algum texto e pressione <ESC> para sair do modo de
     Inser��o.

---> Ap�s teclar  o  o cursor � colocado na linha aberta no modo de Inser��o.

  4. Para abrir uma linha ACIMA do cursor, simplesmente tecle um  O  mai�sculo,
     em vez de um  o  min�sculo. Tente isso na linha abaixo.

---> Abra uma linha acima desta teclando O enquanto o cursor est� nesta linha.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       	               Li��o 6.2: O COMANDO ADICIONAR

	    ** Digite  a  para inserir texto DEPOIS do cursor. **

  1. Mova o cursor para o in�cio da linha marcada com ---> .

  2. Pressione  e  at� o cursor ficar sobre o final de li .

  3. Digite um  a  (min�sculo) para adicionar texto DEPOIS do caractere sob o
     cursor.

  4. Complete a palavra conforme a linha abaixo. Pressione <ESC> para sair do
     modo de Inser��o.

  5. Use  e  para mover para a pr�xima palavra incompleta  repita os passos 3
     e 4.

---> Esta lin o permite pratic a adi� de texto a uma linha.
---> Esta linha o permite praticar a adi��o de texto a uma linha.

NOTA: a, i e A levam ao mesmo modo de Inser��o, a �nica diferen�a � onde os
      caracteres s�o inseridos.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Li��o 6.3: UMA OUTRA VERS�O DO SUBSTITUIR

      ** Digite um R mai�sculo para substituir mais de um caractere. **


  1. Mova o cursor para a primeira linha abaixo marcada com --->. Mova o
     cursor para o in�cio do primeiro  xxx .
  
  2. Agora pressione  R  e digite os n�meros que est�o abaixo dele, na segunda
     linha, para substituir o  xxx .

  3. Pressione <ESC> para sair do modo de Substitui��o. Note que o resto da
     linha permanece inalterado.

  4. Repita os passos para substituir os  xxx  restantes.

--->  Adicionando 123 a xxx resulta em xxx.
--->  Adicionando 123 a 456 resulta em 579.

NOTA:  O modo de Substitui��o � como o modo de Inser��o, mas cada caractere
       digitado apaga um caractere existente.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Li��o 6.4: COPIAR E COLAR TEXTO

	** Use o operador  y  para copiar texto e  p  para col�-lo. **

   1. V� � linha marcada com ---> abaixo e posicione o cursor ap�s "a)".

   2. Inicie o modo Visual com  v  e mova o cursor para logo antes de
      "primeiro".

   3. Digite  y  para copiar o texto selecionado.

   4. Mova o cursor para o fim da pr�xima linha:  j$

   5. Digite  p  para colar o texto. Ent�o, digite:  o segundo <ESC> .

   6. Use o modo Visual para selecionar  " item.", copie-o com  y , mova para
      o fim da pr�xima linha com  j$  e cole o texto com  p .

--->  a) esse � o primeiro item.
      b)

NOTA:  Voc� tamb�m pode usar  y  como um operador; por exemplo, yw copia uma
       palavra.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Li��o 6.5: CONFIGURAR PREFER�NCIAS

      ** Configure uma prefer�ncia de modo que uma busca ou substitui��o
	 ignore se as letras s�o mai�sculas ou min�sculas. **

  1. Procure por 'ignore' entrando:   /ignore <ENTER>
     Repita v�rias vezes teclando  n .

  2. Configure a op��o 'ic' (Ignore case) digitando:  :set ic
  
  3. Agora procure por 'ignore' de novo teclando: n
     Repita v�rias vezes.
  
  4. Configure as op�es 'hlsearch' e 'incsearch':  :set hls is
  
  5. Agora entre com o comando buscar de novo, e veja o que acontece:
     /ignore
  
  6. Para desabilitar a diferencia��o entre mai�sculas e min�sculas:
     :set noic

NOTA:  Para remover o realce dos termos localizados entre:  :nohlsearch
NOTA:  Se quiser ignorar a diferen�a entre mai�sculas e min�sculas em apenas
       uma pesquisa, use  \c  no comando:  /ignore\c <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LI��O 6

  1. Digite  o  para abrir uma linha ABAIXO do cursor e iniciar o modo de
     Inser��o.
     Digite  O  para abrir uma linha ACIMA da linha onde o cursor est�.

  2. Digite  a  para adicionar texto DEPOIS do caractere onde est� o cursor.
     Digite  A  para adicionar texto ao fim da linha.

  3. O comando  e  move o cursor para o fim de uma palavra.

  4. O operador  y  copia texto,  p  cola o texto copiado.

  5. Digitando  R  entra-se no modo de Substitui��o at� que <ESC> seja
     pressionado.

  6. Digitando  ":set xxx" modifica-se a op��o "xxx". Algumas op�es s�o:
         'ic'  'ignorecase'    ignora diferen�a entre mai�sculas/min�sculas
	 'is'  'incsearch'     realiza a busca enquanto se digita
	 'hls' 'hlsearch'      real�a todos os trechos localizados
     Voc� tanto pode usar o nome curto quanto o nome longo da op��o.

  7. Adicione o prefixo "no" para desabilitar uma op��o:  :set noic


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   LI��O 7.1: OBTENDO AJUDA

		 ** Use o sistema de ajuda do pr�prio Vim **

  O Vim possui sistema de ajuda abrangente. Para come�ar, tente algum
  desses tr�s:
        - pressione a tecla <HELP> (se voc� tiver uma)
        - pressione a tecla <F1>   (se voc� tiver uma)
        - digite      :help <ENTER>

  Leia o texto da ajuda para aprender como o sistema de ajuda funciona.
  Digite  CTRL-W CTRL-W  para pular de uma janela a outra.
  Digite  :q <ENTER>     para fechar a janela da ajuda.

  Voc� pode encontrar ajuda sobre qualquer assunto, fornecendo um argumento 
  para o comando ":help". Tente isto (n�o se esque�a de pressionar <ENTER>):

       :help w
       :help c_CTRL-D
       :help insert-index
       :help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Li��o 7.2: CRIAR UM SCRIPT DE INICIALIZA��O

		       ** Habilite recursos do Vim **

  O Vim tem muito mais recursos do que o Vi, mas na sua maioria eles s�o
  desabilitados por padr�o.  Para usar mais recursos, voc� tem que criar um
  arquivo "vimrc".

  1. Comece a editar o arquivo "vimrc". Isso depende do sistema:
         :e ~/.vimrc              para Unix
         :e $VIM/_vimrc           para MS-Windows

  2. Agora, leia o conte�do do arquivo "vimrc" de exemplo:
         :r $VIMRUNTIME/vimrc_example.vim

  3. Salve o arquivo com:
         :w

  Da pr�xima vez que o Vim for iniciado, ele usar� realce de sintaxe. Voc�
  pode adicionar suas configura�es preferidas para esse arquivo "vimrc". Para
  maiores informa�es, digite:  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Li��o 7.3: COMPLETA��O

	   ** Completa��o da linha de comando com CTRL-D e <TAB> **

   1. Certifique-se de que o Vim n�o est� no modo compat�vel:  :set nocp

   2. Veja quais arquivos existem no diret�rio:  :!ls  ou  :!dir

   3. Digite o in�cio de um comando:  :e

   4. Pressione  CTRL-D  e o Vim mostrar� a lista dos comandos iniciados
      com "e".

   5. Pressione  <TAB>  e o Vim completar� o nome do comando para ":edit".

   6. Agora, adicione um espa�o e o in�cio do nome de um arquivo existente:
      :edit ARQ

   7. Pressione <TAB>.  O Vim completar� o nome (se ele for �nico).

NOTA:  A completa��o funciona com muitos comandos. Basta pressionar CTRL-D e
<TAB>. Isso � especialmente �til para  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      RESUMO DA LI��O 7


  1. Digite  :help ou pressione <F1> ou <Help>  para abrir a janela de ajuda.

  2. Digite  :help cmd  para achar a ajuda sobre  cmd .

  3. Digite  CTRL-W CTRL-W  para pular de uma janela a outra.

  4. Digite  :q  para fechar a janela de ajuda.

  5. Crie um script de inicializa��o vimrc para ativar automaticamente as suas
     configura�es preferidas.

  6. Quando pressionar um comando  : , pressione CTRL-D para ver as possibilidades 
  de completa��o. Pressione <TAB> para us�-la.



  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Isto conclui o tutorial do Vim, uma breve apresenta��o do editor Vim,
  somente o bastante para que voc� possa usar o editor com facilidade.
  Ele est� longe de ser completo, uma vez que o Vim possui muitos, muitos mais
  comandos. O pr�ximo passo � ler o manual:  ":help user-manual".

  Livro recomendado em Portugu�s sobre o Vim:
       O editor de texto Vim - de S�rgio Luiz Ara�jo da Silva et al.
       http://code.google.com/p/vimbook/

  Para futura leitura e estudo, este livro � recomendado:
       Vim - Vi Improved - de Steve Oualline
       Editora: New Riders
  Este � o primeiro livro completamente dedicado ao Vim. Especialmente �til
  para iniciantes, com muitos exemplos e ilustra�es.
  Veja http://iccf-holland.org/click5.html

  Esse livro � mais antigo e mais sobre o Vi do que sobre o Vim, mas tamb�m �
  recomendado:
       Learning the Vi Editor - de Linda Lamb
       Editora: O'Reilly & Associates Inc.
  Este � um bom livro para aprender quase tudo o que voc� quer fazer com o Vi.
  A sexta edi��o tamb�m inclui informa�es sobre o Vim.

  Este tutorial foi escrito por Michael C. Pierce e Robert K. Ware,
  Colorado School of Mines, usando id�ias fornecidas por Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Modificado para o Vim por Bram Moolenaar.

  Vers�o 1.4 traduzida para o portugu�s por Marcelo Drudi Miranda, Escola
  Polit�cnica da Universidade de S�o Paulo.

  Revis�o e atualiza��o da tradu��o para a vers�o 1.7 por Jakson Aquino,
  Universidade Federal do Cear�: E-mail: jalvesaq@gmail.com

  Nova revis�o e atualiza��o para a vers�o 1.8 por Ron� Gon�alves,
  Universidade Federal de Uberl�ndia.

  Last Change: 2017 Feb 11

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z>���{�{�vim80/tutor/tutor.pl.utf-8nu�[���===============================================================================
=    W i t a j   w   t u t o r i a l u   V I M - a      -    Wersja  1.7.     =
===============================================================================

     Vim to potężny edytor, który posiada wiele poleceń, zbyt dużo, by
     wyjaśnić je wszystkie w tym tutorialu. Ten przewodnik ma nauczyć
     Cię posługiwać się wystarczająco wieloma komendami, byś mógł łatwo
     używać Vima jako edytora ogólnego przeznaczenia.

     Czas potrzebny na ukończenie tutoriala to 25 do 30 minut i zależy
     od tego jak wiele czasu spędzisz na eksperymentowaniu.

	 UWAGA:
	 Polecenia wykonywane w czasie lekcji zmodyfikują tekst. Zrób
	 wcześniej kopię tego pliku do ćwiczeń (jeśli zacząłeś komendą
	 "vimtutor", to już pracujesz na kopii).

	 Pamiętaj, że przewodnik ten został zaprojektowany do nauki poprzez
	 ćwiczenia. Oznacza to, że musisz wykonywać polecenia, by nauczyć się ich
	 prawidłowo. Jeśli będziesz jedynie czytał tekst, szybko zapomnisz wiele
	 poleceń!

     Teraz upewnij się, że nie masz wciśniętego Caps Locka i wciskaj  j
     tak długo dopóki Lekcja 1.1. nie wypełni całkowicie ekranu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 1.1.: PORUSZANIE SIĘ KURSOREM

       ** By wykonać ruch kursorem, wciśnij h, j, k, l jak pokazano. **

	       ^
	       k		      Wskazówka:  h jest po lewej
	  < h	  l >				  l jest po prawej
	       j				  j wygląda jak strzałka w dół
	       v
  1. Poruszaj kursorem dopóki nie będziesz pewien, że pamiętasz polecenia.

  2. Trzymaj  j  tak długo aż będzie się powtarzał.
     Teraz wiesz jak dojść do następnej lekcji.

  3. Używając strzałki w dół przejdź do następnej lekcji.

Uwaga: Jeśli nie jesteś pewien czegoś co wpisałeś, wciśnij <ESC>, by wrócić do
       trybu Normal. Wtedy powtórz polecenie.

Uwaga: Klawisze kursora także powinny działać, ale używając  hjkl  będziesz
       w stanie poruszać się o wiele szybciej, jak się tylko przyzwyczaisz.
       Naprawdę!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 1.2.: WYCHODZENIE Z VIM-a

 !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj całą lekcję !!

  1. Wciśnij <ESC> (aby upewnić się, że jesteś w trybie Normal).
  2. Wpisz:			:q!<ENTER>.
     To spowoduje wyjście z edytora PORZUCAJĄC wszelkie zmiany, jakie
     zdążyłeś zrobić. Jeśli chcesz zapamiętać zmiany i wyjść,
     wpisz:			:wq<ENTER>

  3. Kiedy widzisz znak zachęty powłoki wpisz komendę, żeby wrócić
     do tutoriala. Czyli:	vimtutor<ENTER>

  4. Jeśli chcesz zapamiętać polecenia, wykonaj kroki 1. do 3., aby
     wyjść i wrócić do edytora.

UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobiłeś. W następnych
       lekcjach dowiesz się jak je zapamiętywać.

  5. Przenieś kursor do lekcji 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE

	    ** Wciśnij  x  aby usunąć znak pod kursorem. **

  1. Przenieś kursor do linii poniżej oznaczonej --->.

  2. By poprawić błędy, naprowadź kursor na znak do usunięcia.

  3. Wciśnij  x  aby usunąć niechciany znak.

  4. Powtarzaj kroki 2. do 4. dopóki zdanie nie jest poprawne.

---> Kkrowa prrzeskoczyła prrzez ksiiężycc.

  5. Teraz, kiedy zdanie jest poprawione, przejdź do Lekcji 1.4.

UWAGA: Ucz się przez ćwiczenie, nie wkuwanie.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)


		  ** Wciśnij  i  aby wstawić tekst. **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.

  2. Aby poprawić pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym,
     gdzie tekst ma być wstawiony.

  3. Wciśnij  i  a następnie wpisz konieczne poprawki.

  4. Po poprawieniu błędu wciśnij <ESC>, by wrócić do trybu Normal.
     Powtarzaj kroki 2. do 4., aby poprawić całe zdanie.

---> W tej brkje trochę .
---> W tej linii brakuje trochę tekstu.

  5. Kiedy czujesz się swobodnie wstawiając tekst, przejdź do
     podsumowania poniżej.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lekcja 1.5.: EDYCJA TEKSTU - APPENDING (dodawanie)


		   ** Wciśnij  A  by dodać tekst. **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.
     Nie ma znaczenia, który to będzie znak.

  2. Wciśnij  A  i wpisz odpowiednie dodatki.

  3. Kiedy tekst został dodany, wciśnij <ESC> i wróć do trybu Normalnego.

  4. Przenieś kursor do drugiej linii oznaczonej ---> i powtórz kroki 2. i 3.,
     aby poprawić zdanie.

---> Brakuje tu tro
     Brakuje tu trochę tekstu.
---> Tu też trochę bra
     Tu też trochę brakuje.

  5. Kiedy już utrwaliłeś ćwiczenie, przejdź do lekcji 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekcja 1.6.: EDYCJA PLIKU

		  ** Użyj  :wq  aby zapisać plik i wyjść. **

   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczytaj całą lekcję !!

  1. Zakończ tutorial tak jak w lekcji 1.2.:  :q!
     lub, jeśli masz dostęp do innego terminala, wykonaj kolejne kroki tam.

  2. W powłoce wydaj polecenie:  vim tutor<ENTER>
     "vim" jest poleceniem uruchamiającym edytor Vim. 'tutor' to nazwa pliku,
     jaki chcesz edytować. Użyj pliku, który może zostać zmieniony.

  3. Dodaj i usuń tekst tak, jak się nauczyłeś w poprzednich lekcjach.

  4. Zapisz plik ze zmianami i opuść Vima:  :wq<ENTER>

  5. Jeśli zakończyłeś vimtutor w kroku 1., uruchom go ponownie i przejdź
     do podsumowania poniżej.

  6. Po przeczytaniu wszystkich kroków i ich zrozumieniu: wykonaj je.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 1. PODSUMOWANIE

  1. Poruszasz kursorem używając "strzałek" i klawiszy  hjkl .
       h (w lewo)	 j (w dół)	 k (do góry)		l (w prawo)

  2. By wejść do Vima, (z powłoki) wpisz:
			    vim NAZWA_PLIKU<ENTER>

  3. By wyjść z Vima, wpisz:
			    <ESC> :q!<ENTER>  by usunąć wszystkie zmiany.
	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachować.

  4. By usunąć znak pod kursorem, wciśnij:  x

  5. By wstawić tekst przed kursorem lub dodać:
	i   wpisz tekst   <ESC>         wstawi przed kursorem
	A   wpisz tekst   <ESC>         doda na końcu linii

UWAGA: Wciśnięcie <ESC> przeniesie Cię z powrotem do trybu Normal
       lub odwoła niechciane lub częściowo wprowadzone polecenia.

Teraz możemy kontynuować i przejść do Lekcji 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 2.1.: POLECENIE DELETE (usuwanie)


		      ** Wpisz  dw  by usunąć wyraz. **

  1. Wciśnij  <ESC>, by upewnić się, że jesteś w trybie Normal.

  2. Przenieś kursor do linii poniżej oznaczonej --->.

  3. Przesuń kursor na początek wyrazu, który chcesz usunąć.

  4. Wpisz   dw   by usunąć wyraz.

  UWAGA: Litera  d  pojawi się na dole ekranu. Vim czeka na wpisanie  w .
	 Jeśli zobaczysz inny znak, oznacza to, że wpisałeś coś źle; wciśnij
	 <ESC> i zacznij od początku.

---> Jest tu parę papier wyrazów, które kamień nie należą do nożyce tego zdania.

  5. Powtarzaj kroki 3. i 4. dopóki zdanie nie będzie poprawne, potem
  przejdź do Lekcji 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 2.2.: WIĘCEJ POLECEŃ USUWAJĄCYCH


	      ** Wpisz	d$  aby usunąć tekst do końca linii. **

  1. Wciśnij  <ESC>  aby się upewnić, że jesteś w trybie Normal.

  2. Przenieś kursor do linii poniżej oznaczonej --->.

  3. Przenieś kursor do końca poprawnego zdania (PO pierwszej  . ).

  4. Wpisz  d$  aby usunąć resztę linii.

---> Ktoś wpisał koniec tego zdania dwukrotnie. zdania dwukrotnie.


  5. Przejdź do Lekcji 2.3., by zrozumieć co się stało.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 2.3.: O OPERATORACH I RUCHACH


  Wiele poleceń zmieniających tekst jest złożonych z operatora i ruchu.
  Format dla polecenia usuwającego z operatorem  d  jest następujący:

	    d  ruch

  gdzie:
   d      - operator usuwania.
   ruch   - na czym polecenie będzie wykonywane (lista poniżej).

  Krótka lista ruchów:
    w - do początku następnego wyrazu WYŁĄCZAJĄC pierwszy znak.
    e - do końca bieżącego wyrazu, WŁĄCZAJĄC ostatni znak.
    $ - do końca linii, WŁĄCZAJĄC ostatni znak.

W ten sposób wpisanie  de  usunie znaki od kursora do końca wyrazu.

UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
       tak, jak to określono.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 2.4.: UŻYCIE MNOŻNIKA DLA RUCHU


   ** Wpisanie liczby przed ruchem powtarza ruch odpowiednią ilość razy. **

  1. Przenieś kursor na początek linii poniżej zaznaczonej --->.

  2. Wpisz  2w  aby przenieść kursor o dwa wyrazy do przodu.

  3. Wpisz  3e  aby przenieść kursor do końca trzeciego wyrazu w przód.

  4. Wpisz  0  (zero), aby przenieść kursor na początek linii.

  5. Powtórz kroki 2. i 3. z innymi liczbami.


 ---> To jest zwykły wiersz z wyrazami, po których możesz się poruszać.

  6. Przejdź do lekcji 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcja 2.5.: UŻYCIE MNOŻNIKA, BY WIĘCEJ USUNĄĆ


    ** Wpisanie liczby z operatorem powtarza go odpowiednią ilość razy. **

  W wyżej wspomnianej kombinacji operatora usuwania i ruchu podaj mnożnik
  przed ruchem, by więcej usunąć:
	d  liczba  ruch

  1. Przenieś kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.

  2. Wpisz  2dw  aby usunąć dwa wyrazy KAPITALIKAMI.

  3. Powtarzaj kroki 1. i 2. z innymi mnożnikami, aby usunąć kolejne wyrazy
     KAPITALIKAMI jednym poleceniem

---> ta ASD WE linia QWE ASDF ZXCV FG wyrazów została ERT FGH CF oczyszczona.

UWAGA:  Mnożnik pomiędzy operatorem  d  i ruchem działa podobnie do ruchu bez
        operatora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 2.6.: OPEROWANIE NA LINIACH


		   ** Wpisz  dd  aby usunąć całą linię. **

  Z powodu częstości usuwania całych linii, projektanci Vi zdecydowali, że
  będzie łatwiej wpisać dwa razy  d  aby usunąć linię.

  1. Przenieś kursor do drugiego zdania z wierszyka poniżej.
  2. Wpisz  dd  aby usunąć wiersz.
  3. Teraz przenieś się do czwartego wiersza.
  4. Wpisz  2dd  aby usunąć dwa wiersze.

--->  1)  Róże są czerwone,
--->  2)  Błoto jest fajne,
--->  3)  Fiołki są niebieskie,
--->  4)  Mam samochód,
--->  5)  Zegar podaje czas,
--->  6)  Cukier jest słodki,
--->  7)  I ty też.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 2.7.: POLECENIE UNDO (cofnij)


	  ** Wciśnij  u  aby cofnąć skutki ostatniego polecenia.
		 U zaś, by cofnąć skutki dla całej linii. **

  1. Przenieś kursor do zdania poniżej oznaczonego ---> i umieść go na
     pierwszym błędzie.
  2. Wpisz  x  aby usunąć pierwszy niechciany znak.
  3. Teraz wciśnij  u  aby cofnąć skutki ostatniego polecenia.
  4. Tym razem popraw wszystkie błędy w linii używając polecenia  x .
  5. Teraz wciśnij wielkie  U  aby przywrócić linię do oryginalnego stanu.
  6. Teraz wciśnij  u  kilka razy, by cofnąć  U  i poprzednie polecenia.
  7. Teraz wpisz CTRL-R (trzymaj równocześnie wciśnięte klawisze CTRL i R)
     kilka razy, by cofnąć cofnięcia.

---> Poopraw błędyyy w teej liniii i zaamiień je prrzez coofnij.

  8. To są bardzo pożyteczne polecenia.

     Przejdź teraz do podsumowania Lekcji 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 2. PODSUMOWANIE


  1. By usunąć znaki od kursora do następnego wyrazu, wpisz:   dw
  2. By usunąć znaki od kursora do końca linii, wpisz:    d$
  3. By usunąć całą linię:    dd
  4. By powtórzyć ruch, poprzedź go liczbą:    2w
  5. Format polecenia zmiany to:
                operator  [liczba]  ruch
  gdzie:
   operator  - to, co trzeba zrobić (np.  d  dla usuwania)
   [liczba]  - opcjonalne, ile razy powtórzyć ruch
   ruch      - przenosi nad tekstem do operowania, takim jak  w (wyraz),
	       $  (do końca linii) etc.

  6. By przejść do początku linii, użyj zera:  0
  7. By cofnąć poprzednie polecenie, wpisz:	  u  (małe u)
     By cofnąć wszystkie zmiany w linii, wpisz:	  U  (wielkie U)
     By cofnąć cofnięcie, wpisz:			  CTRL-R



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 3.1.: POLECENIE PUT (wstaw)


	  ** Wpisz  p  by wstawić ostatnie usunięcia za kursorem. **

  1. Przenieś kursor do pierwszej linii ---> poniżej.

  2. Wpisz  dd  aby usunąć linię i przechować ją w rejestrze Vima.

  3. Przenieś kursor do linii c), POWYŻEJ tej, gdzie usunięta linia powinna
     się znajdować.

  4. Wciśnij  p  by wstawić linię poniżej kursora.

  5. Powtarzaj kroki 2. do 4. aż znajdą się w odpowiednim porządku.

---> d) Jak dwa aniołki.
---> b) Na dole fiołki,
---> c) A my się kochamy,
---> a) Na górze róże,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 3.2.: POLECENIE REPLACE (zastąp)


	   ** Wpisz  rx  aby zastąpić znak pod kursorem na  x . **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->

  2. Ustaw kursor na pierwszym błędzie.

  3. Wpisz  r  a potem znak jaki powinien go zastąpić.

  4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie będzie taka, jak druga.

--->  Kjedy ten wiersz bił wstókiwany, ktoś wciznął perę złych klawirzy!
--->  Kiedy ten wiersz był wstukiwany, ktoś wcisnął parę złych klawiszy!

  5. Teraz czas na Lekcję 3.3.


UWAGA: Pamiętaj, by uczyć się ćwicząc, a nie pamięciowo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 3.3.: OPERATOR CHANGE (zmień)

		 ** By zmienić do końca wyrazu, wpisz  ce . **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.

  2. Umieść kursor na  u  w lunos.

  3. Wpisz  ce  i popraw wyraz (w tym wypadku wstaw  inia ).

  4. Wciśnij <ESC> i przejdź do następnej planowanej zmiany.

  5. Powtarzaj kroki 3. i 4. dopóki pierwsze zdanie nie będzie takie same,
     jak drugie.

---> Ta lunos ma pire słów, które tżina zbnic użifajonc pcmazu zmień.
---> Ta linia ma parę słów, które trzeba zmienić używając polecenia zmień.

  Zauważ, że  ce  nie tylko zamienia wyraz, ale także zmienia tryb na
  Insert (wprowadzanie).


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 3.4.: WIĘCEJ ZMIAN UŻYWAJĄC c


	** Polecenie change używa takich samych ruchów, jak delete. **

  1. Operator change działa tak samo, jak delete. Format wygląda tak:

	    c   [liczba]   ruch

  2. Ruchy są także takie same, np.:  w  (wyraz),  $  (koniec linii) etc.

  3. Przenieś się do pierwszej linii poniżej oznaczonej --->

  4. Ustaw kursor na pierwszym błędzie.

  5. Wpisz  c$ , popraw koniec wiersza i wciśnij <ESC>.

---> Koniec tego wiersza musi być poprawiony, aby wyglądał tak, jak drugi.
---> Koniec tego wiersza musi być poprawiony używając polecenia  c$ .

UWAGA:  Możesz używać <BS> aby poprawiać błędy w czasie pisania.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 3. PODSUMOWANIE


  1. Aby wstawić tekst, który został wcześniej usunięty wciśnij  p . To
     polecenie wstawia skasowany tekst PO kursorze (jeśli cała linia
     została usunięta, zostanie ona umieszczona w linii poniżej kursora).

  2. By zamienić znak pod kursorem, wciśnij  r  a potem znak, który ma zastąpić
     oryginalny.

  3. Operator change pozwala Ci na zastąpienie od kursora do miejsca, gdzie
     zabrałby Cię ruch. Np. wpisz  ce  aby zamienić tekst od kursora do końca
     wyrazu,  c$  aby zmienić tekst do końca linii.

  4. Format do polecenia change (zmień):

	c   [liczba]   obiekt

     Teraz przejdź do następnej lekcji.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lekcja 4.1.: POŁOŻENIE KURSORA ORAZ STATUS PLIKU

       ** Naciśnij CTRL-G aby zobaczyć swoje położenie w pliku i status
	  pliku. Naciśnij  G  aby przejść do linii w pliku. **

  UWAGA: Przeczytaj całą lekcję zanim wykonasz jakieś polecenia!!!

  1. Przytrzymaj klawisz CTRL i wciśnij  g . Używamy notacji CTRL-G.
     Na dole strony pojawi się pasek statusu z nazwą pliku i pozycją w pliku.
     Zapamiętaj numer linii dla potrzeb kroku 3.

UWAGA: Możesz też zobaczyć pozycję kursora w prawym, dolnym rogu ekranu.
       Dzieje się tak kiedy ustawiona jest opcja 'ruler' (więcej w lekcji 6.).

  2. Wciśnij G aby przejść na koniec pliku.
     Wciśnij  gg  aby przejść do początku pliku.

  3. Wpisz numer linii, w której byłeś a potem  G . To przeniesie Cię
     z powrotem do linii, w której byłeś kiedy wcisnąłeś CTRL-G.

  4. Jeśli czujesz się wystarczająco pewnie, wykonaj kroki 1-3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 4.2.: POLECENIE SZUKAJ


	     ** Wpisz  /  a następnie wyrażenie, aby je znaleźć. **

  1. W trybie Normal wpisz  / . Zauważ, że znak ten oraz kursor pojawią
     się na dole ekranu tak samo, jak polecenie  : .

  2. Teraz wpisz  błond<ENTER> .  To jest słowo, którego chcesz szukać.

  3. By szukać tej samej frazy ponownie, po prostu wciśnij  n .
     Aby szukać tej frazy w przeciwnym, kierunku wciśnij  N .

  4. Jeśli chcesz szukać frazy do tyłu, użyj polecenia  ?  zamiast  / .

  5. Aby wrócić gdzie byłeś, wciśnij  CTRL-O. Powtarzaj, by wrócić dalej. CTRL-I
     idzie do przodu.

Uwaga:  'błond' to nie jest metoda, by przeliterować błąd; 'błond' to błąd.
Uwaga:  Kiedy szukanie osiągnie koniec pliku, będzie kontynuowane od początku
        o ile opcja 'wrapscan' nie została przestawiona.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcja 4.3.: W POSZUKIWANIU PARUJĄCYCH NAWIASÓW


	       ** Wpisz  %  by znaleźć parujący ), ], lub } . **

  1. Umieść kursor na którymś z (, [, lub { w linii poniżej oznaczonej --->.

  2. Teraz wpisz znak  % .

  3. Kursor powinien się znaleźć na parującym nawiasie.

  4. Wciśnij  %  aby przenieść kursor z powrotem do parującego nawiasu.

  5. Przenieś kursor do innego (,),[,],{ lub } i zobacz co robi  % .

---> To ( jest linia testowa z (, [, ] i {, } . ))

Uwaga: Ta funkcja jest bardzo użyteczna w debuggowaniu programu
       z niesparowanymi nawiasami!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 4.4.: POLECENIE SUBSTITUTE (zamiana)


	 ** Wpisz  :s/stary/nowy/g  aby zamienić 'stary' na 'nowy'. **

  1. Przenieś kursor do linii poniżej oznaczonej --->.

  2. Wpisz  :s/czaas/czas<ENTER> .  Zauważ, że to polecenie zmienia
     tylko pierwsze wystąpienie 'czaas' w linii.

  3. Teraz wpisz  :s/czaas/czas/g  . Dodane  g  oznacza zamianę (substytucję)
     globalnie w całej linii.  Zmienia wszystkie wystąpienia 'czaas' w linii.

---> Najlepszy czaas na zobaczenie najładniejszych kwiatów to czaas wiosny.

  4. Aby zmienić wszystkie wystąpienia łańcucha znaków pomiędzy dwoma liniami,
     wpisz: :#,#s/stare/nowe/g gdzie #,# są numerami linii ograniczających
                               region, gdzie ma nastąpić zamiana.
     wpisz  :%s/stare/nowe/g   by zmienić wszystkie wystąpienia w całym pliku.
     wpisz  :%s/stare/nowe/gc  by zmienić wszystkie wystąpienia w całym
                               pliku, prosząc o potwierdzenie za każdym razem.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 4. PODSUMOWANIE

  1. CTRL-G   pokaże Twoją pozycję w pliku i status pliku.  SHIFT-G przenosi
	      Cię do końca pliku.
     G        przenosi do końca pliku.
     liczba G przenosi do linii [liczba].
     gg       przenosi do pierwszej linii.

  2. Wpisanie  /  a następnie łańcucha znaków szuka łańcucha DO PRZODU.
     Wpisanie  ?  a następnie łańcucha znaków szuka łańcucha DO TYŁU.
     Po wyszukiwaniu wciśnij  n  by znaleźć następne wystąpienie szukanej
     frazy w tym samym kierunku lub  N  by szukać w kierunku przeciwnym.
     CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.

  3. Wpisanie  %  gdy kursor znajduje się na (,),[,],{, lub } lokalizuje
     parujący znak.

  4. By zamienić pierwszy stary na nowy w linii, wpisz      :s/stary/nowy
     By zamienić wszystkie stary na nowy w linii, wpisz     :s/stary/nowy/g
     By zamienić frazy pomiędzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
     By zamienić wszystkie wystąpienia w pliku, wpisz       :%s/stary/nowy/g
     By Vim prosił Cię o potwierdzenie, dodaj 'c'	   :%s/stary/nowy/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcja 5.1.: JAK WYKONAĆ POLECENIA ZEWNĘTRZNE?


	** Wpisz  :!  a następnie zewnętrzne polecenie, by je wykonać. **

  1. Wpisz znajome polecenie  :  by ustawić kursor na dole ekranu. To pozwala
     na wprowadzenie komendy linii poleceń.

  2. Teraz wstaw  !  (wykrzyknik). To umożliwi Ci wykonanie dowolnego
     zewnętrznego polecenia powłoki.

  3. Jako przykład wpisz  ls  za  !  a następnie wciśnij <ENTER>. To polecenie
     pokaże spis plików w Twoim katalogu, tak jakbyś był przy znaku zachęty
     powłoki. Możesz też użyć  :!dir  jeśli  ls  nie działa.

Uwaga:  W ten sposób można wykonać wszystkie polecenia powłoki.
Uwaga:  Wszystkie polecenia  :  muszą być zakończone <ENTER>.
        Od tego momentu nie zawsze będziemy o tym wspominać.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 5.2.: WIĘCEJ O ZAPISYWANIU PLIKÓW


	   ** By zachować zmiany w tekście, wpisz :w NAZWA_PLIKU . **

  1. Wpisz  :!dir  lub  :!ls  by zobaczyć spis plików w katalogu.
     Już wiesz, że musisz po tym wcisnąć <ENTER>.

  2. Wybierz nazwę pliku, jaka jeszcze nie istnieje, np. TEST.

  3. Teraz wpisz:   :w TEST   (gdzie TEST jest nazwą pliku jaką wybrałeś.)

  4. To polecenie zapamięta cały plik (Vim Tutor) pod nazwą TEST.
     By to sprawdzić, wpisz  :!dir  lub  :!ls  żeby znowu zobaczyć listę plików.

Uwaga: Zauważ, że gdybyś teraz wyszedł z Vima, a następnie wszedł ponownie
       poleceniem  vim TEST , plik byłby dokładną kopią tutoriala, kiedy go
       zapisywałeś.

  5. Teraz usuń plik wpisując (MS-DOS):		   :!del TEST
                          lub (Unix):              :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU


	  ** By zachować część pliku, wpisz  v ruch :w NAZWA_PLIKU **

  1. Przenieś kursor do tego wiersza.

  2. Wciśnij  v  i przenieś kursor do punktu 5. Zauważ, że tekst został
     podświetlony.

  3. Wciśnij znak  : . Na dole ekranu pojawi się  :'<,'> .

  4. Wpisz  w TEST , gdzie TEST to nazwa pliku, który jeszcze nie istnieje.
     Upewnij się, że widzisz  :'<,'>w TEST zanim wciśniesz Enter.

  5. Vim zapisze wybrane linie do pliku TEST. Użyj  :!dir  lub  :!ls , żeby to
     zobaczyć. Jeszcze go nie usuwaj! Użyjemy go w następnej lekcji.

UWAGA: Wciśnięcie  v  zaczyna tryb Wizualny. Możesz poruszać kursorem, by
       zmienić rozmiary zaznaczenia. Możesz też użyć operatora, by zrobić coś
       z tekstem. Na przykład  d  usuwa tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcja 5.4.: WSTAWIANIE I ŁĄCZENIE PLIKÓW


	    ** By wstawić zawartość pliku, wpisz   :r NAZWA_PLIKU **

  1. Umieść kursor tuż powyżej tej linii.

UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejdź
       do DOŁU, by zobaczyć ponownie tę lekcję.

  2. Teraz wczytaj plik TEST używając polecenia  :r TEST , gdzie TEST
     jest nazwą pliku.
     Wczytany plik jest umieszczony poniżej linii z kursorem.

  3. By sprawdzić czy plik został wczytany, cofnij kursor i zobacz, że
     teraz są dwie kopie Lekcji 5.3., oryginał i kopia z pliku.

UWAGA: Możesz też wczytać wyjście zewnętrznego polecenia. Na przykład
       :r !ls  wczytuje wyjście polecenia ls i umieszcza je pod poniżej
       kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 5. PODSUMOWANIE


  1.  :!polecenie wykonuje polecenie zewnętrzne.

      Użytecznymi przykładami są:

	  :!dir  -  pokazuje spis plików w katalogu.

	  :!rm NAZWA_PLIKU  -  usuwa plik NAZWA_PLIKU.

  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vima na dysk z nazwą NAZWA_PLIKU.

  3.  v ruch :w NAZWA_PLIKU  zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.

  4.  :r NAZWA_PLIKU  wczytuje z dysku plik NAZWA_PLIKU i wstawia go do
      bieżącego pliku poniżej kursora.

  5.  :r !dir  wczytuje wyjście polecenia dir i umieszcza je poniżej kursora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 6.1.: POLECENIE OPEN (otwórz)


      ** Wpisz  o  by otworzyć linię poniżej kursora i przenieść się do
	 trybu Insert (wprowadzanie). **

  1. Przenieś kursor do linii poniżej oznaczonej --->.

  2. Wpisz  o  (małe), by otworzyć linię PONIŻEJ kursora i przenieść się
     do trybu Insert (wprowadzanie).

  3. Wpisz trochę tekstu i wciśnij <ESC> by wyjść z trybu Insert (wprowadzanie).

---> Po wciśnięciu  o  kursor znajdzie się w otwartej linii w trybie Insert.

  4. By otworzyć linię POWYŻEJ kursora, wciśnij wielkie  O  zamiast małego
     o . Wypróbuj to na linii poniżej.

---> Otwórz linię powyżej wciskając SHIFT-O gdy kursor będzie na tej linii.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 6.2.: POLECENIE APPEND (dodaj)


		  ** Wpisz  a  by dodać tekst ZA kursorem. **

  1. Przenieś kursor do początku pierwszej linii poniżej oznaczonej --->

  2. Wciskaj  e  dopóki kursor nie będzie na końcu li .

  3. Wpisz  a  (małe), aby dodać tekst ZA znakiem pod kursorem.

  4. Dokończ wyraz tak, jak w linii poniżej. Wciśnij <ESC> aby opuścić tryb
     Insert.

  5. Użyj  e  by przejść do kolejnego niedokończonego wyrazu i powtarzaj kroki
     3. i 4.

---> Ta li poz Ci ćwi dodaw teks do koń lin
---> Ta linia pozwoli Ci ćwiczyć dodawanie tekstu do końca linii.

Uwaga:  a ,  i  oraz  A  prowadzą do trybu Insert, jedyną różnicą jest miejsce,
       gdzie nowe znaki będą dodawane.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)


	   ** Wpisz wielkie  R  by zamienić więcej niż jeden znak. **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->. Przenieś
     kursor do pierwszego  xxx .

  2. Wciśnij  R  i wpisz numer poniżej w drugiej linii, tak, że zastąpi on
     xxx.

  3. Wciśnij <ESC> by opuścić tryb Replace. Zauważ, że reszta linii pozostaje
     niezmieniona.

  5. Powtarzaj kroki by wymienić wszystkie xxx.

---> Dodanie 123 do xxx daje xxx.
---> Dodanie 123 do 456 daje 579.

UWAGA: Tryb Replace jest jak tryb Insert, ale każdy znak usuwa istniejący
       znak.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 6.4.: KOPIOWANIE I WKLEJANIE TEKSTU


       ** użyj operatora  y  aby skopiować tekst i  p  aby go wkleić **

  1. Przejdź do linii oznaczonej ---> i umieść kursor za "a)".

  2. Wejdź w tryb Wizualny  v  i przenieś kursor na początek "pierwszy".

  3. Wciśnij  y  aby kopiować (yankować) podświetlony tekst.

  4. Przenieś kursor do końca następnej linii:  j$

  5. Wciśnij  p  aby wkleić (wpakować) tekst.  Dodaj:  a drugi<ESC> .

  6. Użyj trybu Wizualnego, aby wybrać " element.", yankuj go  y , przejdź do
     końca następnej linii  j$  i upakuj tam tekst z  p .

--->  a) to jest pierwszy element.
      b)
Uwaga: możesz użyć  y  jako operatora;  yw  kopiuje jeden wyraz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 6.5.: USTAWIANIE OPCJI


** Ustawianie opcji tak, by szukaj lub substytucja ignorowały wielkość liter **

  1. Szukaj 'ignore' wpisując:    /ignore<ENTER>
     Powtórz szukanie kilka razy naciskając klawisz  n .

  2. Ustaw opcję 'ic' (Ignore case -- ignoruj wielkość liter) poprzez
     wpisanie:		:set ic

  3. Teraz szukaj 'ignore' ponownie wciskając:  n
     Zauważ, że Ignore i IGNORE także są teraz znalezione.

  4. Ustaw opcje 'hlsearch' i 'incsearch':    :set hls is

  5. Teraz wprowadź polecenie szukaj ponownie i zobacz co się zdarzy:
     /ignore<ENTER>

  6. Aby wyłączyć ignorowanie wielkości liter:  :set noic

Uwaga: Aby usunąć podświetlanie dopasowań, wpisz:   :nohlsearch
Uwaga: Aby ignorować wielkość liter dla jednego wyszukiwania: /ignore\c<ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 6. PODSUMOWANIE


  1. Wpisanie  o  otwiera linię PONIŻEJ kursora.
     Wpisanie  O  otwiera linię POWYŻEJ kursora.

  2. Wpisanie  a  wstawia tekst ZA znakiem, na którym jest kursor.
     Wpisanie  A  dodaje tekst na końcu linii.

  3. Polecenie  e  przenosi do końca wyrazu.
  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja) go.
  5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dopóki
     nie zostanie wciśnięty <ESC>.
  6. Wpisanie ":set xxx" ustawia opcję "xxx". Niektóre opcje:
	'ic'  'ignorecase'	ignoruj wielkość znaków
	'is'  'incsearch'	pokaż częściowe dopasowania
	'hls' 'hlsearch'	podświetl wszystkie dopasowania
     Możesz użyć zarówno długiej, jak i krótkiej formy.
  7. Dodaj "no", aby wyłączyć opcję:   :set noic





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 LEKCJA 7.1. JAK UZYSKAĆ POMOC?

		      ** Użycie systemu pomocy on-line **

  Vim posiada bardzo dobry system pomocy on-line. By zacząć, spróbuj jednej
  z trzech możliwości:
	- wciśnij klawisz <HELP> (jeśli taki masz)
	- wciśnij klawisz <F1> (jeśli taki masz)
	- wpisz   :help<ENTER>

  Przeczytaj tekst w oknie pomocy, aby dowiedzieć się jak działa pomoc.
  wpisz CTRL-W CTRL-W    aby przeskoczyć z jednego okna do innego
  wpisz :q<ENTER>        aby zamknąć okno pomocy.

  Możesz też znaleźć pomoc na każdy temat podając argument polecenia ":help".
  Spróbuj tych (nie zapomnij wcisnąć <ENTER>):

  :help w
  :help c_CTRL-D
  :help insert-index
  :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO

			  ** Włącz możliwości Vima **

  Vim ma o wiele więcej możliwości niż Vi, ale większość z nich jest domyślnie
  wyłączona. Jeśli chcesz włączyć te możliwości na starcie musisz utworzyć
  plik "vimrc".

  1. Początek edycji pliku "vimrc" zależy od Twojego systemu:
     :edit ~/.vimrc	     dla Uniksa
     :edit $VIM/_vimrc       dla MS-Windows
  2. Teraz wczytaj przykładowy plik "vimrc":
     :read $VIMRUNTIME/vimrc_example.vim
  3. Zapisz plik:
     :w

  Następnym razem, gdy zaczniesz pracę w Vimie będzie on używać podświetlania
  składni. Możesz dodać wszystkie swoje ulubione ustawienia do tego pliku
  "vimrc".
  Aby uzyskać więcej informacji, wpisz     :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekcja 7.3.: UZUPEŁNIANIE


	      ** Uzupełnianie linii poleceń z CTRL-D i <TAB> **

  1. Upewnij się, że Vim nie jest w trybie kompatybilności:   :set nocp

  2. Zerknij, jakie pliki są w bieżącym katalogu:   :!ls   lub   :!dir

  3. Wpisz początek polecenia:   :e

  4. Wciśnij  CTRL-D  i Vim pokaże listę poleceń, jakie zaczynają się na "e".

  5. Wciśnij  <TAB>  i Vim uzupełni polecenie do ":edit".

  6. Dodaj spację i zacznij wpisywać nazwę istniejącego pliku:   :edit FIL

  7. Wciśnij <TAB>. Vim uzupełni nazwę (jeśli jest niepowtarzalna).

UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TAB>.
       Użyteczne zwłaszcza przy  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lekcja 7. PODSUMOWANIE


  1. Wpisz  :help  albo wciśnij <F1> lub <Help> aby otworzyć okno pomocy.

  2. Wpisz  :help cmd  aby uzyskać pomoc o  cmd .

  3. Wpisz  CTRL-W CTRL-W  aby przeskoczyć do innego okna.

  4. Wpisz  :q  aby zamknąć okno pomocy.

  5. Utwórz plik startowy vimrc aby zachować wybrane ustawienia.

  6. Po poleceniu  : , wciśnij CTRL-D aby zobaczyć możliwe uzupełnienia.
     Wciśnij <TAB> aby użyć jednego z nich.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Tutaj się kończy tutorial Vima. Został on pomyślany tak, aby dać krótki
  przegląd jego możliwości, wystarczający byś mógł go używać. Jest on
  daleki od kompletności, ponieważ Vim ma o wiele, wiele więcej poleceń.

  Dla dalszej nauki rekomendujemy książkę:
	Vim - Vi Improved - autor Steve Oualline
	Wydawca: New Riders
  Pierwsza książka całkowicie poświęcona Vimowi. Użyteczna zwłaszcza dla
  początkujących. Zawiera wiele przykładów i ilustracji.
  Zobacz http://iccf-holland.org./click5.html

  Starsza pozycja i bardziej o Vi niż o Vimie, ale także warta
  polecenia:
	Learning the Vi Editor - autor Linda Lamb
	Wydawca: O'Reilly & Associates Inc.
  To dobra książka, by dowiedzieć się niemal wszystkiego, co chciałbyś zrobić
  z Vi. Szósta edycja zawiera też informacje o Vimie.

  Po polsku wydano:
	Edytor vi. Leksykon kieszonkowy - autor Arnold Robbins
	Wydawca: Helion 2001 (O'Reilly).
	ISBN: 83-7197-472-8
	http://helion.pl/ksiazki/vilek.htm
  Jest to książeczka zawierająca spis poleceń vi i jego najważniejszych
  klonów (między innymi Vima).

	Edytor vi - autorzy Linda Lamb i Arnold Robbins
	Wydawca: Helion 2001 (O'Reilly) - wg 6. ang. wydania
	ISBN: 83-7197-539-2
	http://helion.pl/ksiazki/viedyt.htm
  Rozszerzona wersja Learning the Vi Editor w polskim tłumaczeniu.

  Ten tutorial został napisany przez Michaela C. Pierce'a i Roberta K. Ware'a,
  Colorado School of Mines korzystając z pomocy Charlesa Smitha,
  Colorado State University.
  E-mail: bware@mines.colorado.edu.

  Zmodyfikowane dla Vima przez Brama Moolenaara.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Przetłumaczone przez Mikołaja Machowskiego,
  Sierpień 2001,
  rev. Marzec 2002
  2nd rev. Wrzesień 2004
  3rd rev. Marzec 2006
  4th rev. Grudzień 2008
  Wszelkie uwagi proszę kierować na: mikmach@wp.pl
PK�j�Z����ёёvim80/tutor/tutor.nl.utf-8nu�[���  ==========================================================================
  =    W e l k o m   b i j   d e   V I M   l e s s e n   -   Versie 1.7    =
  ==========================================================================

  Vim is een krachtige editor met veel commando's, te veel om uit te leggen
  in lessen zoals deze. Deze lessen zijn bedoeld om voldoende commando's te
  behandelen om je in staat te stellen met Vim te werken als een editor voor
  algemeen gebruik.

  Deze lessen zullen 25 tot 30 minuten in beslag nemen, afhankelijk van de
  tijd die wordt besteed aan het uitproberen van de commando's.

  LET OP:
  Door de commando's in deze lessen verandert de tekst. Maak een kopie van
  dit bestand om mee te oefenen (als je "vimtutor" uitvoerde, is dit al een
  kopie).

  Deze lessen zijn bedoeld om al doende te leren. Dat betekent dat je de
  commando's moet uitvoeren om ze goed te leren kennen. Als je de tekst
  alleen maar doorleest, zal je de commando's niet leren!

  Zorg ervoor dat de <Caps Lock> toets NIET is ingedrukt en druk vaak genoeg
  op de j-toets om de cursor zo te bewegen dat les 1.1 volledig op het
  scherm staat.

  LET OP: In deze lessen worden omwille van de duidelijkheid vaak spaties
  gebruikt binnen een commando (bv. "40 G" of "operator [getal] beweging").
  Tik deze spaties echter NIET. Ze verstoren de werking.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.1:  VERPLAATS DE CURSOR

  ** De cursor wordt verplaatst met de toetsen h, j, k, l zoals aangegeven. **
          ^
          k       Hint:  De h is de meest linkse en beweegt naar links.
      < h   l >          De l is de meest rechtse en beweegt naar rechts.
          j              De j lijkt op een pijl naar beneden.
          v

  1. Beweeg de cursor over het scherm om er vertrouwd mee te raken.

  2. Druk de omlaag-toets (j) tot hij repeteert.
     Nu weet je hoe je de volgende les bereikt.

  3. Gebruik de omlaag-toets om naar les 1.2 te gaan.

  OPMERKING: Als je twijfelt aan wat je tikte, druk <ESC> om in de opdracht-
             modus te komen. Tik daarna het commando dat bedoeld wordt.

  OPMERKING: Pijltjes-toetsen werken ook. Met de hjkl-toetsen kan je sneller
             rondbewegen, als je er eenmaal aan gewend bent. Echt waar!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.2: VIM AFSLUITEN

      !! LET OP: Lees deze les goed door voordat je iets uitvoert!!

  1. Druk de <ESC> toets (om zeker in de opdrachtmodus te zitten).

  2. Tik   :q! <ENTER>
     Hiermee wordt de editor afgesloten. Alle veranderingen gaan VERLOREN.

  3. Nu zie je de shell-prompt. Tik het commando waarmee je deze lessen
     hebt opgeroepen. Dat is normaal gesproken:  vimtutor <ENTER>

  4. Als je deze stappen goed hebt doorgelezen, voer dan de stappen 1 tot 3
     uit om de editor te verlaten en weer op te starten.

  LET OP: :q! <ENTER> verwerpt alle veranderingen die je aanbracht. Een paar
          lessen verder zal je leren hoe veranderingen worden opgeslagen in
          een bestand.

  5. Beweeg de cursor omlaag naar les 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.3: TEKST BEWERKEN - WISSEN

          ** Tik  x  om het teken onder de cursor te wissen. **

  1. Ga met de cursor naar de regel verderop met --->.

  2. Zet de cursor op een teken dat moet worden gewist om een fout te
     herstellen.

  3. Tik  x  om het ongewenste teken te wissen.

  4. Herhaal deze stappen tot de regel goed is.

  ---> Vi kkent eenn opdracccchtmodus en een invooegmmmmodus.

  5. Nu de regel gecorrigeerd is kan je naar les 1.4 gaan.

  LET OP: Probeer de lessen niet uit je hoofd te leren. Leer al doende.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.4: TEKST BEWERKEN - INVOEGEN

              ** Tik  i  ('insert') om tekst in te voegen. **

  1. Ga met de cursor naar de eerste regel verderop met --->.

  2. Maak de eerste regel gelijk aan de tweede. Zet daarvoor de cursor op
     de plaats waar tekst moet worden ingevoegd.

  3. Tik  i  en daarna de nodige aanvullingen.

  4. Tik <ESC> na elke herstelde fout om terug te keren in de opdrachtmodus.
     Herhaal de stappen 2 tot 4 om de zin te verbeteren.

  ---> Aan regel ontekt wat .
  ---> Aan deze regel ontbreekt wat tekst.

  5. Ga naar les 1.5 als je gewend bent aan het invoegen van tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.5: TEKST BEWERKEN - TOEVOEGEN

             ** Tik  A  ('append') om tekst toe te voegen. **

  1. Ga met de cursor naar de eerste regel verderop met --->.
     Het maakt niet uit waar de cursor in deze regel staat.

  2. Tik hoofdletter  A  en tik de nodige aanvullingen.

  3. Tik <ESC> nadat de tekst is aangevuld. Zo keer je terug in de
     opdrachtmodus.

  4. Ga naar de tweede regel verderop met ---> en herhaal stap 2 en 3
     om deze zin te corrigeren.

  ---> Er ontbreekt wat tekst aan de
       Er ontbreekt wat tekst aan deze regel.
  ---> Hier ontbreekt ook w
       Hier ontbreekt ook wat tekst.

  5. Ga naar les 1.6 als je vertrouwd bent geraakt aan het toevoegen
     van tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 1.6: EEN BESTAND EDITTEN

    ** Gebruik  :wq  om een bestand op te slaan en de editor te verlaten. **

  !! LET OP: Lees deze les helemaal door voordat je een van de volgende
             stappen uitvoert!!

  1. Verlaat deze les zoals je in les 1.2 deed:  :q!
     Of gebruik een andere terminal als je daar de beschikking over hebt. Doe
     daar het volgende.

  2. Tik het volgende commando na de shell-prompt:  vim les <ENTER>
     'vim' (vaak ook 'vi') is het commando om de Vim-editor te starten,
     'les' is de naam van het bestand, dat je gaat bewerken. Kies een andere
     naam als er al een bestand 'les' bestaat, dat niet veranderd mag worden.

  3. Voeg naar eigen keus tekst toe, zoals je geleerd hebt in eerdere lessen.

  4. Sla het bestand met de wijzigingen op en verlaat Vim met  :wq <ENTER>

  5. Herstart vimtutor als je deze bij stap 1 hebt verlaten en ga verder met
     de volgende samenvatting.

  6. Voer deze stappen uit nadat je ze hebt gelezen en begrepen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 1

  1. De cursor wordt bewogen met de pijltjestoetsen of de hjkl-toetsen.
       h (links)   j (omlaag)  k (omhoog)  l (rechts)

  2. Start Vim van de shell-prompt. Tik:  vim BESTANDSNAAM <ENTER>

  3. Sluit Vim af met  <ESC> :q! <ENTER>  om de veranderingen weg te gooien.
               OF tik  <ESC> :wq <ENTER>  om de veranderingen te bewaren.

  4. Wis het teken onder de cursor met:  x

  5. Invoegen of toevoegen van tekst, tik:
     i  en daarna de in te voegen tekst  <ESC>   voeg in vanaf de cursor
     A  en daarna de toe te voegen tekst  <ESC>  voeg toe achter de regel

  OPMERKING: Met <ESC> kom je terug in opdrachtmodus en wordt een ongewenst
             of gedeeltelijk uitgevoerd commando afgebroken.

  Ga nu verder met les 2.1.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.1: WIS-COMMANDO'S

       ** Tik  dw  ('delete word') om een woord te wissen. **

  1. Druk op <ESC> om zeker in de opdrachtmodus te zijn.

  2. Ga naar de regel hieronder, die met ---> begint.

  3. Ga met de cursor naar het begin van een woord dat moet worden gewist.

  4. Met het tikken van  dw  verdwijnt het woord.

  OPMERKING: De letter  d  verschijnt op de laatste regel van het scherm
             zodra je hem tikt. Vim is aan het wachten tot je de  w  tikt.
             Als je een ander teken dan  d  ziet, heb je iets verkeerds
             getikt. Druk op <ESC> en begin opnieuw.

  NOG EEN OPMERKING: Dit werkt alleen als de optie 'showcmd' is ingeschakeld.
                     Dat gebeurt met  :set showcmd <ENTER>

  ---> Er zijn een het paar ggg woorden, die niet in deze len zin thuishoren.

  5. Herhaal de stappen 3 en 4 tot de zin goed is en ga naar les 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.2: MEER WIS-COMMANDO'S

        ** Tik  d$  om te wissen tot het einde van de regel. **

  1. Druk op <ESC> om zeker in de opdrachtmodus te zijn.

  2. Ga naar de regel hieronder, die met ---> begint.

  3. Ga met de cursor naar het einde van de correcte regel (NA de eerste  . ).

  4. Tik  d$  om te wissen tot het einde van de regel.

  ---> Iemand heeft het einde van deze regel dubbel getikt. dubbel getikt.

  5. Ga naar les 2.3 voor uitleg.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.3: OVER OPERATOREN EN BEWEGINGEN

  Veel commando's die de tekst veranderen, bestaan uit een operator en een
  beweging. De samenstelling van een wis-commando met de operator  d  is:
    d  beweging

  Daarbij is:
    d        - de wis-operator
    beweging - het bereik waarop de operator werkt (zie het lijstje hieronder)

  Een korte lijst van bewegingen vanaf de cursor:
    w - tot het begin van het volgende woord, ZONDER het eerste teken daarvan.
    e - tot het einde van het huidige woord, INCLUSIEF het laatste teken.
    $ - tot het einde van de regel, INCLUSIEF het laatste teken.

  Het tikken van  de  wist tekst vanaf de cursor tot het eind van het woord.

  OPMERKING: Het intikken van alleen maar de beweging, zonder een operator,
             in de opdrachtmodus beweegt de cursor (respectievelijk naar het
             volgende woord, naar het eind van het huidige woord en naar het
             eind van de regel).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.4: GEBRUIK VAN EEN TELLER BIJ EEN BEWEGING

   ** Een getal voor een beweging herhaalt het zoveel keer. **

  1. Ga naar de regel hieronder, die met ---> begint.

  2. Tik  2w  zodat de cursor twee woorden vooruit gaat.

  3. Tik  3e  zodat de cursor naar het einde van het derde woord gaat.

  4. Tik  0  (nul) om naar het begin van de regel te gaan.

  5. Herhaal de stappen 2 en 3 met andere getallen.

  ---> Dit is een regel met woorden waarin je heen en weer kan bewegen.

  6. Ga verder met les 2.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.5: GEBRUIK EEN TELLER OM MEER TE WISSEN

  ** Een getal met een operator zorgt dat deze zoveel keer wordt herhaald. **

  Bij de combinatie van wis-operator en beweging kan je voor de beweging een
  teller zetten om meer te wissen:
         d  [teller]  beweging

  1. Ga naar het eerste woord in HOOFDLETTERS in de regel na --->.

  2. Met  d2w  worden twee woorden (in dit voorbeeld in hoofdletters) gewist.

  3. Herhaal de stappen 1 en 2 met verschillende tellers om de verschillende
     woorden in hoofdletters met één commando te wissen.

  ---> deze ABC DE regel FGHI JK LMN OP is QZ RS ontdaan van rommel.

  OPMERKING: De teller kan ook aan het begin staan: d2w en 2dw werken allebei.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.6: BEWERKING VAN HELE REGELS

               ** Tik  dd  om een hele regel te wissen. **

  Omdat het wissen van een hele regel vaak voorkomt, besloten de ontwerpers
  van Vi dat met het tikken van  dd  simpelweg een hele regel gewist wordt.

  1. Ga met de cursor naar de tweede regel van de zinnetjes hieronder.

  2. Tik  dd  om de regel te wissen.

  3. Ga nu naar de vierde regel.

  4. Tik  2dd  om twee regels te wissen.

  --->  1)  Rozen zijn rood.
  --->  2)  Modder is leuk.
  --->  3)  Viooltjes zijn blauw.
  --->  4)  Ik heb een auto.
  --->  5)  De klok slaat de tijd.
  --->  6)  Suiker is zoet.
  --->  7)  En dat ben jij ook.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 2.7: HET COMMANDO HERSTEL

  ** u  maakt het laatste commando ongedaan,  U  herstelt een hele regel. **

  1. Ga met de cursor naar de regel hieronder met ---> en zet hem
     op de eerste fout.

  2. Tik  x  om het eerste ongewenste teken te wissen.

  3. Tik nu  u  en maak daarmee het vorige commando ongedaan.

  4. Herstel nu alle fouten in de regel met het  x  commando.

  5. Tik een hoofdletter  U  om de regel in z'n oorspronkelijke staat terug
     te brengen.

  6. Tik nu een paar keer  u  en herstel daarmee de  U  en eerdere commando's.

  7. Tik nu een paar keer CTRL-R (Ctrl-toets ingedrukt houden en R tikken) en
     voer daarmee de commando's opnieuw uit: 'redo' oftewel 'undo de undo's'. 

  ---> Heerstel de fouten inn deeze regel en brenng ze weer terugg met undo.

  8. Dit zijn heel nuttige commando's. Ga verder met samenvatting van les 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 2

  1. Wis van de cursor tot het volgende woord met    dw

  2. Wis van de cursor tot het eind van de regel met d$

  3. Wis de hele regel met                           dd

  4. Herhaal een beweging door er een getal voor te zetten:  2w

  5. De opbouw van een wijzigingscommando is:
       operator  [getal]  beweging
     daarbij is:
       operator - wat er moet gebeuren, bijvoorbeeld  d  om te wissen
       [getal]  - een (niet-verplichte) teller om 'beweging' te herhalen
       beweging - een beweging door de te wijzigen tekst zoals w (woord)
                  of $ (tot het einde van de regel) enz.

  6. Ga naar het begin van de regel met nul:  0

  7. Undo de voorgaande actie met              u (kleine letter)
     Undo alle veranderingen in een regel met  U (hoofdletter)
     Undo de undo's met                        CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.1: HET COMMANDO PLAK

  ** Tik  p  ('put') en plak daarmee zojuist gewiste tekst na te cursor. **

  1. Ga met de cursor naar de eerste regel met ---> hierna.

  2. Wis de regel met  dd  en bewaar hem zodoende in een Vim-register.

  3. Ga naar de c-regel, waar de gewiste regel ONDER moet komen.

  4. Tik  p  om de regel terug te zetten onder de regel met de cursor.

  5. Herhaal de stappen 2 tot 4 om de regels in de goede volgorde te zetten.

---> d) Krijg je het ook onder de knie?
---> b) Viooltjes zijn blauw,
---> c) Begrip is te leren,
---> a) Rozen zijn rood,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.2: HET COMMANDO VERVANG

  ** Tik rx ('replace') om het teken onder de cursor te vervangen door x. **

  1. Ga naar de eerste regel hieronder met --->.

  2. Zet de cursor op de eerste fout.

  3. Tik  r  en dan het teken dat er hoort te staan.

  4. Herhaal de stappen 2 en 3 tot de eerste regel gelijk is aan de tweede.

  --->  Bij het tokken van dezf hegel heeft iemamd verklerde letters getikt.
  --->  Bij het tikken van deze regel heeft iemand verkeerde letters getikt.

  5. Ga nu naar les 3.3.

  LET OP: Door het te doen, leer je beter dan door het uit je hoofd te leren.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.3: HET COMMANDO VERANDER

     ** Tik  ce  om te veranderen tot het einde van een woord. **

  1. Ga met de cursor naar de eerste regel hieronder met --->.

  2. Zet de cursor op de  u  van ruch.

  3. Tik  ce  en de juiste letters (in dit geval "egel").

  4. Druk <ESC> en ga naar het volgende teken dat moet worden veranderd.

  5. Herhaal de stappen 3 en 4 tot de eerste regel gelijk is aan de tweede.

  ---> In deze ruch staan een paar weedrim die veranderd moud worden.
  ---> In deze regel staan een paar woorden die veranderd moeten worden.

  LET OP: Met  ce  wordt (het laatste deel van) een woord gewist en kom je
          in de invoegmodus.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 3.4: MEER VERANDERINGEN MET c

  1. Het commando verander ('change') werkt op dezelfde manier als wis. De
     opbouw is:
         c  [teller]  beweging

  2. De bewegingen zijn hetzelfde, zoals  w  (woord) en  $  (einde regel).

  3. Ga naar de eerste regel hieronder met --->.

  4. Zet de cursor op de eerste fout.

  5. Tik  c$  en tik de rest van de regel zodat hij gelijk wordt aan de
     tweede en sluit af met <ESC>.

  ---> Het einde van deze regel moet precies zo worden als de tweede regel.
  ---> Het einde van deze regel moet gecorrigeerd worden met het commando c$.

  OPMERKING: Je kan de toets <BACKSPACE> gebruiken om tikfouten te herstellen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 3 

  1. Tik  p  om tekst terug te plakken, die zojuist is gewist. Dit zet de
     gewiste tekst ACHTER de cursor (als een hele regel is gewist komt deze
     op de regel ONDER de cursor.

  2. Het teken waarop de cursor staat wordt vervangen met  r  gevolgd door
     het teken dat je daar wilt hebben.

  3. Het commando 'verander' stelt je in staat om tekst te veranderen vanaf
     de cursor tot waar de 'beweging' je brengt. Dat wil zeggen: tik  ce  om
     te veranderen vanaf de cursor tot het einde van het woord,  c$  om te
     veranderen tot het einde van de regel.

  4. De opbouw van het commando verander is:
         c  [teller]  beweging

  Ga nu naar de volgende les.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.1: PLAATS VAN DE CURSOR EN STATUS VAN HET BESTAND

  ** CTRL-G laat zien waar (regelnummer) je je bevindt en wat de status van
     het bestand is. Met [nummer] G  ga je naar een bepaalde regel. **

  LET OP: Lees de hele les voordat je een stap uitvoert!!

  1. Hou de Ctrl-toets ingedrukt en tik  g . Dit noemen we CTRL-G.
     Onderaan de pagina verschijnt een boodschap met de bestandsnaam en de
     positie in het bestand. Onthou het regelnummer voor stap 3.

  OPMERKING: Als de optie 'ruler' aan staat, wordt de positie van de cursor
             (regelnummer, kolom) steeds in de rechter-onderhoek van het
             scherm vermeld. In dit geval vermeldt CTRL-G geen regelnummer.
             CTRL-G geeft ook de status aan, namelijk of de tekst veranderd
             is ('modified') sinds het de laatste keer is opgeslagen.  

  2. Tik hoofdletter  G  om naar het einde van het bestand te gaan.
     Tik  gg  om naar het begin van het bestand te gaan.

  3. Tik het regelnummer waar je bij stap 1 was en daarna  G . Dit brengt je
     terug naar de regel waar je was toen je de eerste keer CTRL-G tikte.

  4. Voer de stappen 1 tot 3 uit als je dit goed hebt gelezen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.2: HET COMMANDO ZOEKEN

  ** Met  /ZOEK  wordt naar de zoekterm (één of meer woorden) gezocht. **

  1. Tik in de opdrachtmodus het teken  / . Je ziet dat het met de cursor
     aan de onderkant van het scherm verschijnt, zoals bij het :-commando.

  2. Tik nu 'ffouut' <ENTER>. Dit is het woord waarnaar gezocht wordt.

  3. Tik  n  om verder te zoeken met dezelfde zoekterm.
     Zoek met  N  met dezelfde zoekterm in de tegenovergestelde richting.

  4. Zoek in achterwaartse richting met ?zoekterm in plaats van  / .

  5. Keer terug naar de vorige hit met CTRL-O (hou Ctrl-toets ingedrukt en
     tik letter o). Herhaal om verder terug te gaan. CTRL-I gaat vooruit.

  ---> "ffouut" is niet de juiste spelling van fout, ffouut is een fout.

  OPMERKING: Als zoeken het einde van het bestand bereikt, wordt vanaf het
             begin doorgezocht, tenzij de optie 'wrapscan' is uitgeschakeld.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.3: GA NAAR CORRESPONDERENDE HAAKJES

            ** Tik  %  om naar corresponderende ), ] of } te gaan. **

  1. Zet de cursor op een (, [ of { in de regel hieronder met --->.

  2. Tik dan het teken  % .

  3. De cursor gaan naar het overeenkomstige haakje.

  4. Met opnieuw  %  gaat de cursor terug naar het eerste haakje.

  5. Plaats de cursor op een ander haakje en bekijk wat  %  doet.

  ---> Dit ( is een testregel met  ('s, ['s ] en {'s } erin. ))

  OPMERKING: Dit is nuttig bij het debuggen van een programma waarin haakjes
             niet corresponderen. Met de optie 'showmatch' wordt ook
             aangegeven of haakjes corresponderen, maar de cursor wordt niet
             (blijvend) verplaatst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 4.4: HET VERVANG COMMANDO

      ** Tik  :s/oud/nieuw/g  om 'oud' door 'nieuw' te vervangen. **

  1. Ga met de cursor naar de regel hieronder met --->.

  2. Tik  :s/dee/de <ENTER>. Zoals je ziet, vervangt ('substitute') dit
     commando alleen de eerste "dee" in de regel.

  3. Tik nu  :s/dee/de/g . Met de g-vlag ('global') wordt elke "dee" in de
     regel vervangen.

  ---> dee beste tijd om dee bloemen te zien is in dee lente.

  4. Om in (een deel van) een tekst elk 'oud' te vervangen door 'nieuw':
     tik   :#,#s/oud/nieuw/g   waar #,# de regelnummers zijn die het gebied
                               begrenzen waarin wordt vervangen.
     tik   :%s/oud/nieuw/g     om alles te vervangen in het hele bestand.
     tik   :%s/oud/nieuw/gc    om elke 'oud' in het hele bestand te vinden
                               en te vragen of er vervangen moet worden.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 4

  1. CTRL-G   laat positie in het bestand zien en de status van het bestand.
     G        verplaatst je naar het einde van het bestand.
     nummer G verplaatst je naar regelnummer.
     gg       verplaatst je naar de eerste regel.

  2. Met  /  en een zoekterm wordt VOORWAARTS gezocht naar de term.
     Met  ?  en een zoekterm wordt ACHTERWAARTS gezocht naar de term.
     Tik  n  na een zoekopdracht om de volgende hit te vinden,
     of tik  N  om in de andere richting te zoeken.
     CTRL-O  brengt je naar eerdere hit,  CTRL-I naar nieuwere.

  3. Tik  %  terwijl de cursor op een haakje ([{}]) staat, om naar het
     corresponderende haakje te gaan.

  4. :s/oud/nieuw      vervangt het eerste 'oud' in een regel door 'nieuw'.
     :s/oud/nieuw/g    vervangt elk 'oud' in een regel door 'nieuw'.
     :#,#s/oud/nieuw/g vervangt elk 'oud' door 'nieuw' tussen de regelnummers.
     :%s/oud/nieuw/g    vervangt elk 'oud' door 'nieuw' in het hele bestand.
     Voeg  c  toe (:%s/oud/nieuw/gc) om elke keer om bevestiging
     ('confirmation') te vragen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.1: HOE EEN EXTERN COMMANDO WORDT UITGEVOERD

     ** Tik  :!  gevolgd door een extern commando om dat uit te voeren. **

  1. Tik het commando  :  waarmee de cursor op de onderste regel van het
     scherm komt te staan. Nu kan je een opdracht geven via de commando-regel.

  2. Tik een  !  (uitroepteken). Dit stelt je in staat om elk shell-commando
     uit te voeren.

  3. Tik bijvoorbeeld  ls  na het uitroepteken en daarna <ENTER>. Hiermee
     krijg je de inhoud van je map te zien, net alsof je de opdracht gaf
     vanaf de shell-prompt. Probeer  :!dir  als het niet werkt.

  OPMERKING: Elk extern commando kan op deze manier uitgevoerd worden, ook
             met argumenten.

  OPMERKING: Alle commando's na  :  moeten worden afgesloten met <ENTER>.
             Vanaf nu zullen we dat niet meer altijd vermelden.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.2: MEER OVER HET OPSLAAN VAN BESTANDEN

     ** Tik :w BESTANDSNAAM om de tekst mèt veranderingen op te slaan. **

  1. Tik  :!dir  of  :!ls  om de inhoud van je map te tonen. Je weet
     inmiddels dat je daarna een <ENTER> moet tikken.

  2. Kies een bestandsnaam die nog niet bestaat, bijvoorbeeld TEST.

  3. Tik nu:  :w TEST  (als je de naam TEST hebt gekozen).

  4. Hierdoor wordt het hele bestand (de VIM lessen) opgeslagen onder de
     naam TEST. Tik weer  :!dir  of  :!ls  om dit te controleren.

  OPMERKING: Als je Vim zou verlaten en opnieuw zou starten met  vim TEST  is
             het bestand een exacte kopie van de lessen, zoals je ze opsloeg.

  5. Wis het bestand nu met de opdracht (MS-DOS)  :!del TEST
                                       of (Unix)  :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.3: EEN DEEL VAN DE TEKST OPSLAAN

     ** Sla een deel van het bestand op met  v beweging :w BESTANDSNAAM **

  1. Ga naar deze regel.

  2. Tik  v  en ga met de cursor naar stap 5 hieronder. Je ziet dat de
     tekst oplicht.

  3. Tik  : . Onderaan het scherm zal  :'<,'>  verschijnen.

  4. Tik  w TEST  , waar TEST een bestandsnaam is, die nog niet bestaat.
     Controleer dat je  :'<,'>w TEST  ziet staan voordat je <ENTER> tikt.

  5. Vim slaat nu de geselecteerde regels op in het bestand TEST. Met
     :!dir  of  !ls  kan je dat zien. Wis het nog niet! We zullen het in
     de volgende les gebruiken.

  OPMERKING: Het tikken van  v  zet zichtbare modus ('visual selection') aan.
             Je kan de cursor rondbewegen om de selectie groter of kleiner
             te maken. Vervolgens kan je een commando gebruiken om iets met
             de tekst te doen. Met  d  bijvoorbeeld wis je de tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 5.4: OPHALEN EN SAMENVOEGEN VAN BESTANDEN

     ** Tik  :r BESTANDSNAAM om de inhoud van een bestand in te voegen. **

  1. Zet de cursor precies boven deze regel.

  OPMERKING: Na het uitvoeren van stap 2 zie je tekst van les 5.3. Scrol
             daarna naar beneden om deze les weer te zien.

  2. Haal nu het bestand TEST op met het commando  :r TEST .
     Het bestand dat je ophaalt komt onder de regel waarin de cursor staat.

  3. Controleer dat er een bestand is opgehaald. Ga met de cursor omhoog.
     Dan zie je de tekst van les 5.3 dubbel, het origineel en de versie uit
     het bestand.

  OPMERKING: Je kan ook de uitvoer van een extern commando inlezen. Om een
             voorbeeld te geven:  :r !ls  leest de uitvoer van het commando
             ls en zet dat onder de regel waarin de cursor staat.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 5

  1. :!COMMANDO  voert een extern commando uit.
     Enkele bruikbare voorbeelden zijn:
        (MS-DOS)         (Unix)
         :!dir            :!ls          - laat de inhoud van een map zien
         :!del BESTAND    :!rm BESTAND  - wist bestand BESTAND

  2. :w BESTANDSNAAM  schrijft het huidige Vim-bestand naar disk met de
     naam BESTANDSNAAM.

  3. v beweging :w BESTANDSNAAM  laat je in zichtbare modus een fragment
     selecteren, dat wordt opgeslagen in het bestand BESTANDSNAAM.

  4. :r BESTANDSNAAM  haalt het bestand BESTANDSNAAM op en voegt het onder
     de cursor-positie in de tekst in.

  5. :r !dir  leest de uitvoer van het externe commando dir en zet het onder
     de cursor-positie.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.1: HET COMMANDO OPEN

     ** Tik  o  om een regel onder de cursor te openen in invoegmodus. **

  1. Ga naar de eerste regel beneden met --->.

  2. Tik de kleine letter  o  en open daarmee een regel ONDER de cursor en
     ga naar de invoegmodus.

  3. Tik wat tekst in en sluit af met <ESC> om de invoegmodus te verlaten.

  ---> Als je  o  tikt, komt de cursor in een nieuwe regel in invoegmodus.

  4. Om een regel BOVEN de cursor te openen, moet je gewoon een hoofdletter
     O  tikken in plaats van een kleine letter. Probeer dat vanaf de volgende
     regel.

  ---> Open een regel hierboven. Tik een O terwijl de cursor hier staat.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.2: HET COMMANDO TOEVOEGEN

        ** Tik  a  om tekst toe te voegen ACHTER de cursor. **

  1. Ga naar het begin van de regel beneden met --->.
 
  2. Tik  e  tot de cursor op het einde van  "ste"  staat.

  3. Tik een (kleine letter)  a  ('append') om toe te voegen ACHTER de cursor.

  4. Vul het woord aan zoals in de volgende regel. Druk <ESC> om de
     invoegmodus te verlaten.

  5. Ga met  e  naar het einde van het volgende onvolledige woord en herhaal
     de stappen 3 en 4.

  ---> Deze regel ste je in staat om te oef in het toevo van tekst. 
       Deze regel stelt je in staat om te oefenen in het toevoegen van tekst. 

  OPMERKING: a, i en A openen allemaal dezelfde invoegmodus, het enige
             verschil is waar tekens worden ingevoegd.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.3: VERVANGEN OP EEN ANDERE MANIER

      ** Tik een hoofdletter  R  om meer dan één teken te vervangen. **

  1. Ga naar de eerste regel beneden met --->. Ga met de cursor naar het
     begin van de eerste  "xxx" .

  2. Tik nu  R  en daarna het getal eronder in de tweede regel, zodat  xxx
     wordt vervangen.

  3. Druk <ESC> om de vervangmodus te verlaten. Je ziet dat de rest van de
     regel ongewijzigd blijft.

  4. Herhaal de stappen om de overgebleven  xxx  te vervangen.

  ---> Optellen van 123 en xxx geeft je xxx.
  ---> Optellen van 123 en 456 geeft je 579.

  OPMERKING: Vervangmodus lijkt op invoegmodus, maar elk teken dat je tikt,
             vervangt een bestaand teken.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.4: TEKST KOPIËREN EN PLAKKEN

        ** Gebruik  y  om tekst te kopiëren en  p  om te plakken. **

  1. Ga naar de regel beneden met ---> en zet de cursor achter "a)".

  2. Zet zichtbare modus aan met  v  en zet de cursor juist voor "eerste".

  3. Tik  y  ('yank') om de opgelichte tekst ("dit is het") te kopiëren.

  4. Ga met  j$  met de cursor naar het einde van de volgende regel.

  5. Plak de gekopieerde tekst met  p  en tik  a tweede <ESC>.

  6. Selecteer in zichtbare modus "onderdeel", kopieer het met  y  en
     ga met  j$  naar het einde van de tweede regel. Plak de tekst daar
     met  p .

  --->  a) dit is het eerste onderdeel
        b)

  OPMERKING: Je kan  y  ook als operator gebruiken;  yw  kopieert een woord,
             yy  een hele regel.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 6.5: OPTIES GEBRUIKEN

     ** Gebruik een optie voor al dan niet hoofdlettergevoelig zoeken. **

  1. Zoek naar 'hoofdlettergevoelig' met  /hoofdlettergevoelig <ENTER>
     Herhaal het zoeken enkele keren door  n  te tikken.
 
  2. Schakel de optie 'ic' ('ignore case', niet-hoofdlettergevoelig) in
     met  :set ic

  3. Zoek met  n  opnieuw naar 'hoofdlettergevoelig'. Je ziet dat
     Hoofdlettergevoelig en HOOFDLETTERGEVOELIG nu ook gevonden worden.

  4. Schakel de opties 'hlsearch' (treffers oplichten) en 'incsearch' (toon
     gedeeltelijke treffers bij intikken) in met  :set hls is

  5. Tik weer /hoofdlettergevoelig <ENTER> en kijk wat er gebeurt.

  6. Schakel 'hoofdlettergevoelig' weer in met  :set noic

  OPMERKING: Schakel het oplichten van treffers uit met  :nohlsearch

  OPMERKING: Om bij een enkel zoek-commando de hoofdlettergevoeligheid om
             te draaien kan  \c  worden gebruikt na de zoekterm:
             /hoofdlettergevoelig\c <ENTER>.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 6

  1. Tik  o  om een regel te openen ONDER de cursor en invoegmodus te starten.
     Tik  O  om een regel te openen BOVEN de cursor.

  2. Tik  a  om tekst toe te voegen NA de cursor.
     Tik  A  om tekst toe te voegen aan het einde van de regel.

  3. Het commando  e  beweegt de cursor naar het einde van een woord.

  4. De operator  y  yankt (kopieert) tekst,  p  zet het terug (plakt).

  5. Met hoofdletter  R  wordt de vervangmodus geopend, met <ESC> afgesloten.

  6. Met  :set xxx  wordt optie 'xxx' ingeschakeld. Opties zijn bijvoorbeeld:
       ic   ignorecase  geen verschil hoofdletters/kleine letters bij zoeken
       is   incsearch   toon gedeeltelijke treffers tijdens intikken zoekterm 
       hls  hlsearch    laat alle treffers oplichten
     Je kan zowel de lange als de korte naam van een optie gebruiken.
  
  7. Zet 'no' voor de naam om een optie uit te schakelen:  :set noic
     schakelt 'ic' uit.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 7.1: HULP INROEPEN

           ** Het gebruik van ingebouwde hulp. **

  Vim heeft een uitgebreid ingebouwd hulpsysteem. Probeer, om te beginnen,
  één van deze drie:
    - druk de <HELP> toets (als je die hebt)
    - druk de <F1> toets (als je die hebt)
    - tik  :help <ENTER>

  Lees de tekst in het help-venster om te leren hoe 'help' werkt.
  Tik  CTRL-W CTRL-W  om van het ene venster naar het andere te gaan.
  Met  :q <ENTER>  wordt het help-venster gesloten.

  Je kan hulp vinden over nagenoeg elk onderwerp door een argument aan het
  commando  :help  toe te voegen. Probeer deze (en vergeet <ENTER> niet):
    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 7.2: SCHRIJF EEN CONFIGURATIEBESTAND

                    ** Mogelijkheden van Vim uitbreiden. **

  Vim kent veel meer mogelijkheden dan Vi, maar de meeste zijn standaard
  uitgeschakeld. Om meer functies te gebruiken moet je een 'vimrc'-bestand
  schrijven.

  1. Bewerk het bestand 'vimrc'. Hoe dat moet hangt af van je systeem:
      :e ~/.vimrc		voor Unix
      :e $VIM/_vimrc		voor MS-Windows

  2. Lees de inhoud van het voorbeeld-bestand:
      :r $VIMRUNTIME/vimrc_example.vim

  3. Sla het bestand op met  :w

  De volgende keer dat je Vim start wordt 'syntaxiskleuring' gebruiken.
  Je kan al je voorkeursinstellingen toevoegen aan dit 'vimrc'-bestand.
  Tik  :help vimrc-intro  voor meer informatie.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Les 7.3: AANVULLEN

      ** Aanvullen van de 'command line' met CTRL-D en <TAB>. **

  1. Zorg dat Vim niet in 'compatible mode' is met  :set nocp

  2. Kijk welke bestanden zich in de map bevinden met  :!ls  of  :!dir

  3. Tik het begin van een commando:  :e

  4. Met  CTRL-D  toont Vim een lijst commando's, die met "e" beginnen.

  5. Druk enkele keren <TAB>. Vim laat aanvullingen zien, zoals ":edit",
     dat we hier gebruiken.

  6. Voeg een spatie toe en de eerste letter(s) van een bestaande
     bestandsnaam:  :edit BESTAND

  7. Druk <TAB>. Vim vult de naam aan (als hij uniek is).

  OPMERKING: Aanvullen werkt bij tal van commando's. Probeer gewoon CTRL-D
             en <TAB>. Het is bijzonder nuttig bij  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   SAMENVATTING Les 7

  1. Tik  :help  of druk <F1> of <Help>  om een help-venster te openen.

  2. Tik  :help CMD  voor hulp over  CMD .

  3. Tik  CTRL-W CTRL-W  om naar een ander venster te gaan.

  4. Tik  :q  om het help-venster te sluiten.

  5. Maak een bestand met de naam 'vimrc' voor je voorkeursinstellingen.

  6. Druk CTRL-D tijdens het intikken van een :-commando om mogelijke
     aanvullingen te zien. Druk <TAB> om aanvullen te gebruiken.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Hiermee komen de Vim-lessen tot een einde. Ze waren bedoeld om een kort
  overzicht te geven van de Vim-editor, juist voldoende om de editor
  redelijk makkelijk te gebruiken. Deze lessen zijn verre van volledig. Vim
  kent veel meer commando's. Lees hierna de handleiding voor gebruikers:
  ":help user-manual".

  Voor verdere studie wordt aanbevolen:
      Vim - Vi Improved - door Steve Oualline
      Uitgever: New Riders
  Dit is het eerste boek dat geheel aan Vim is gewijd. Speciaal geschikt
  voor beginners. Met veel voorbeelden en afbeeldingen.
  Zie http://iccf-holland.org/click5.html

  Het volgende boek is ouder en gaat meer over Vi dan Vim, maar het wordt
  toch aanbevolen:
      Learning the Vi Editor - door Linda Lamb
      Uitgever: O'Reilly & Associates Inc.
  Het is een goed boek om nagenoeg alles te weten te komen dat je met Vi
  zou willen doen. De zesde en vooral de nieuwe zevende druk (onder de
  titel Learning the Vi and Vim Editors door Arnold Robbins, Elbert Hannah
  & Linda Lamb) bevat ook informatie over Vim.

  Deze lessen zijn geschreven door Michael C. Pierce en Robert K. Ware,
  Colorado School of Mines met gebruikmaking van ideeën van Charles Smith
  van de Colorado State University. E-mail: bware@mines.colorado.edu.

  Aangepast voor Vim door Bram Moolenaar.

  Nederlandse vertaling door Rob Bishoff, april 2012
  e-mail: rob.bishoff@hccnet.nl)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�샛��vim80/tutor/tutor.eo.utf-8nu�[���==============================================================================
=  B o n v e n o n   al   la   I n s t r u i l o  de  V I M  -  Versio 1.7   =
==============================================================================

   Vim estas tre potenca redaktilo, kiu havas multajn komandojn, tro da ili
   por ĉion klarigi en instruilo kiel ĉi tiu. Ĉi tiu instruilo estas
   fasonita por priskribi sufiĉajn komandojn, por ke vi kapablu uzi Vim
   kun sufiĉa facileco.

   La tempo bezonata por plenumi la kurson estas 25-30 minutoj, kaj dependas
   de kiom da tempo estas uzata por eksperimenti.

   ATENTU:
   La komandoj en la lecionoj ŝanĝos la tekston. Kopiu tiun ĉi dosieron
   por ekzerci vin (se vi lanĉis "vimtutor", tiam estas jam kopio).

   Gravas memori, ke ĉi tiu instruilo estas organizata por instrui per
   la uzo. Tio signifas, ke vi devas plenumi la komandojn por bone lerni
   ilin. Se vi nur legas la tekston, vi forgesos la komandojn!

   Nun, certigu, ke la majuskla baskulo NE estas en reĝimo majuskla,
   kaj premu la klavon  j  sufiĉe da fojoj por movi la kursoron, kaj por
   ke la leciono 1.1 plenigu la ekranon.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 1.1:  MOVI LA KURSORON


  ** Por movi la kursoron, premu la h,j,k,l klavojn kiel montrite. **
         ^
         k        Konsilo: La klavo h estas la plej liva kaj movas liven.
   < h       l >           La klavo l estas la plej dekstra kaj movas dekstren.
         j                 La klavo j aspektas kiel malsuprena sago.
         v
  1. Movu la kursoron sur la ekrano ĝis kiam vi sentas vin komforta.

  2. Premu la klavon (j) ĝis kiam ĝi ripetas.
     Vi nun scias, kiel moviĝi al la sekvanta leciono

  3. Uzante la malsuprenan klavon, moviĝu al la leciono 1.2.

RIMARKO: Se vi dubas pri tio, kion vi premis, premu <ESK> por reiri al
         la normala reĝimo. Tiam repremu la deziratan komandon.

RIMARKO: La klavoj de la kursoro devus ankaŭ funkcii. Sed uzante hjkl,
         vi kapablos moviĝi pli rapide post kiam vi kutimiĝos.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Leciono 1.2:  ELIRI EL VIM


  !! RIMARKO: Antaŭ ol plenumi iujn subajn paŝojn ajn, legu la tutan lecionon!!

  1. Premu la klavon <ESK> (por certigi, ke vi estas en normala reĝimo).

  2. Tajpu:       :q! <Enenklavo>.
     Tio eliras el la rekdaktilo, SEN konservi la ŝanĝojn, kiujn vi faris.

  3. Kiam vi vidas la ŝelinviton, tajpu la komandon kiun vi uzis por eniri
     en ĉi tiu instruilo. Tio estus:   vimtutor <Enenklavo>

  4. Se vi memoris tiujn paŝojn kaj sentas vin memfida, plenumu la paŝojn
     1 ĝis 3 por eliri kaj reeniri la redaktilon.

RIMARKO: :q! <Enenklavo> eliras sen konservi la ŝanĝojn, kiujn vi faris.
         Post kelkaj lecionoj, vi lernos kiel konservi la ŝanĝojn al dosiero.

  5. Movu la kursoron suben ĝis la leciono 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leciono 1.3:  REDAKTO DE TEKSTO - FORVIŜO


             ** Premu  x  por forviŝi la signon sub la kursoro. **

  1. Movu la kursoron al la suba linio markita per --->.

  2. Por korekti la erarojn, movu la kursoron ĝis kiam ĝi estas sur la
     forviŝenda signo.

  3. Premu la klavon  x  por forviŝi la nedeziratan signon.

  4. Ripetu paŝojn 2 ĝis 4 ĝis kiam la frazo estas ĝusta.


---> La boovinno saaltiss ssur laa luuno.

  5. Post kiam la linio estas ĝusta, iru al la leciono 1.4

RIMARKO: Trairante la instruilon, ne provu memori, lernu per la uzo.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 1.4:  REDAKTO DE TEKSTO - ENMETO


                      ** Premu  i  por enmeti tekston. **

  1. Movu la kursoron al la unua suba linio markita per --->.

  2. Por igi la unuan linion sama kiel la dua, movu la kursoron sur la unuan
     signon post kie la teksto estas enmetenda.

  3. Premu  i  kaj tajpu la bezonatajn aldonojn.

  4. Premu <ESK> kiam la eraroj estas korektitaj por reiri al la normala
     reĝimo. Ripetu la paŝojn 2 ĝis 4 por korekti la frazon.

---> Mank en ĉi linio.
---> Mankas teksto en ĉi tiu linio.

  5. Kiam vi sentas vin komforta pri enmeto de teksto, moviĝu al la
     leciono 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leciono 1.5:  REDAKTO DE TEKSTO - POSTALDONO


                    ** Premu  A  por postaldoni tekston. **

  1. Movu la kursoron al la unua suba linio markita per --->.
     Ne gravas sur kiu signo estas la kursoro.

  2. Premu majusklan  A  kaj tajpu la bezonatajn aldonojn.

  3. Post kiam la teksto estas aldonita, premu <ESK> por reiri al la normala
     reĝimo.

  4. Movu la kursoron al la dua linio markita per ---> kaj ripetu la
     paŝojn 2 kaj 3 por korekti la frazon.

---> Mankas teksto el ti
     Mankas teksto el tiu linio.
---> Mankas ankaŭ teks
     Mankas ankaŭ teksto ĉi tie.

  5 Kiam vi sentas vin komforta pri postaldono de teksto, moviĝu al la
    leciono 1.6


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 1.6:  REDAKTI DOSIERON

                ** Uzu  :wq  por konservi dosieron kaj eliri. **

  !! RIMARKO: Antaŭ ol plenumi iun suban paŝon ajn, legu la tutan lecionon!!

  1. Eliru el la instruilo kiel vi faris en la leciono 1.2:  :q!
     Aŭ, se vi havas atingon al alia terminalo, faru tion, kio sekvas tie.

  2. Ĉe la ŝelinvito, tajpu ĉi tiun komandon:  vim tutor <Enenklavo>
     'vim' estas la komando por lanĉi la redaktilon Vim, 'tutor' estas la
     dosiernomo de la dosiero, kiun vi volas redakti.  Uzu dosieron, kiu
     ŝanĝeblas.

  3. Enmetu kaj forviŝu tekston, kiel vi lernis en la antaŭaj lecionoj.

  4. Konservu la dosieron kun ŝanĝoj kaj eliru el Vim per:  :wq  <Enenklavo>

  5. Se vi eliris el la instruilo vimtutor en paŝo 1, restartigu la instruilon
     vimtutor kaj moviĝu suben al la sekvanta resumo.

  6. Post kiam vi legis la suprajn paŝojn, kaj komprenis ilin: faru ilin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 1 RESUMO


  1. La kursoro moviĝas aŭ per la sagoklavoj, aŭ per la klavoj hjkl.
        h (liven)     j (suben)      k (supren)     l (dekstren)

  2. Por lanĉi Vim el la ŝelinvito, tajpu:  vim DOSIERNOMO <Enenklavo>

  3. Por eliri el Vim, tajpu:  <ESK>  :q! <Enenklavo>  por rezigni la ŝanĝojn

  4. Por forviŝi la signojn ĉe la pozicio de la kursoro, tajpu:  x

  5. Por enmeti aŭ postaldoni tekston, tajpu:
          i  tajpu enmetendan tekston        <ESK>
             enmetas tekston antaŭ la kursoro

          A  tajpu la postaldonendan tekston <ESK>
             postaldonas post la kursoro

RIMARKO: Premo de <ESK> iras al la normala reĝimo, aŭ rezignas la
         nedeziratan aŭ parte plenumita komando.

Nun daŭrigu al la leciono 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leciono 2.1: KOMANDOJ DE FORVIŜO


                      ** Tajpu  dw  por forviŝi vorton. **

  1. Premu  <ESK>  por certigi, ke vi estas en normala reĝimo.

  2. Movu la kursoron al la linio markita per --->.

  3. Movu la kursoron al la komenco de vorto, kiu forviŝendas.

  4. Tajpu   dw   por forviŝi la vorton.

  RIMARKO: La litero  d  aperos en la lasta linio sur la ekrano kiam vi
           tajpas ĝin. Vim atendas ĝis kiam vi tajpas  w .  Se vi vidas
           alian signon ol  d  vi tajpis ion mise; premu  <ESK>  kaj
           rekomencu.

---> Estas iuj vortoj kiuj Zamenhof ne devus esti akuzativo en ĉi tiu frazo.

  5. Ripetu paŝojn 3 kaj 4 ĝis kiam la frazo estas ĝusta kaj moviĝu al la
     leciono 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 2.2: PLIAJ KOMANDOJ DE FORVIŜO


               ** Tajpu  d$  por forviŝi la finon de la linio. **

  1. Premu  <ESK>  por certigi, ke vi estas en normala reĝimo.

  2. Movu la kursoron sur la suban linion markita per --->.

  3. Movu la kursoron ĉe la fino de la ĝusta linio (POST la unua . ).

  4. Tajpu   d$   por foriviŝi ĝis la fino de la linio.

---> Iu tajpis la finon de ĉi tiu linio dufoje. fino de ĉi tiu linio dufoje.


  5. Moviĝu al la leciono 2.3 por kompreni kio okazas.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 2.3: PRI OPERATOROJ KAJ MOVOJ


  Multaj komandoj, kiuj ŝanĝas la tekston, estas faritaj de operatoro kaj
  movo. La formato de komando de forviŝo per la operatoro de forviŝo  d
  estas kiel sekvas:

       d   movo

  Kie:
    d      - estas la operatoro de movo
    movo   - estas tio, pri kio la operatoro operacios (listigita sube)

  Mallonga listo de movoj:
    w - ĝis la komenco de la sekvanta vorto, krom ĝia unua signo.
    e - ĝis la fino de la nuna vorto, krom la lasta signo.
    $ - ĝis la fino de la linio, krom la lasta signo.

  Do tajpo de   'de'   forviŝos ekde la kursoro ĝis la fino de la vorto.

RIMARKO: Premo de nur la movo en Normala reĝimo sen operatoro movos
         la kursoron kiel specifite.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 2.4: UZI NOMBRON POR MOVO

             ** Tajpo de nombro antaŭ movo ripetas ĝin laŭfoje. **

  1. Movu la kursoron ĉe la komenco de la suba linio markita per --->.

  2. Tajpu  2w  por movi la kursoron je du vortoj antaŭen.

  3. Tajpu  3e  por movi la kursoron ĉe la fino de la tria vorto antaŭen.

  4. Tajpu  0  (nul) por moviĝi ĉe la komenco de la linio.


  5. Ripetu paŝojn 2 ĝis 3 kun malsamaj nombroj.

---> Tio estas nur linio kun vortoj, kie vi povas moviĝi.

  6. Moviĝu al la leciono 2.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 2.5: UZI NOMBRON POR FORVIŜI PLI


            ** Tajpo de nombro kun operatoro ripetas ĝin laŭfoje. **

  En la kombinaĵo de la operatoro de forviŝo, kaj movo kiel menciita
  ĉi-supre, eblas aldoni nombron antaŭ la movo por pli forviŝi:
        d  nombro   movo

  1. Movu la kursoron ĉe la unua MAJUSKLA vorto en la linio markita per --->.

  2. Tajpu  d2w  por forviŝi la du MAJUSKLAJN vortojn

  3. Ripetu paŝojn 1 ĝis 2 per malsama nombro por forviŝi la sinsekvajn
     MAJUSKLAJN vortojn per unu komando

---> Tiu AB CDE linio FGHI JK LMN OP de vortoj estas Q RS TUV purigita.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 2.6: OPERACII SUR LINIOJ


                   ** Tajpu  dd  por forviŝi tutan linion. **

  Pro la ofteco de forviŝo de tuta linio, la verkisto de Vi decidis, ke
  estus pli facile simple tajpi du d-ojn  por forviŝi linion.

  1. Movu la kursoron sur la duan linion en la suba frazo.
  2. Tajpu  dd  por forviŝi la linion.
  3. Nun moviĝu al la kvara linio.
  4. Tajpu   2dd   por forviŝi du liniojn.

---> 1)  Rozoj estas ruĝaj,
---> 2)  Ŝlimo estas amuza,
---> 3)  Violoj estas bluaj,
---> 4)  Mi havas aŭton,
---> 5)  Horloĝoj diras kioma horo estas,
---> 6)  Sukero estas dolĉa,
---> 7)  Kaj tiel vi estas.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 2.7: LA KOMANDO DE MALFARO


 ** Premu u por malfari la lastajn komandojn, U por ripari la tutan linion. **

  1. Movu la kursoron ĉe la suba linio markita per ---> kaj metu ĝin sur
     la unuan eraron.
  2. Tajpu  x  por forviŝi la unuan nedeziratan signon.
  3. Nun tajpu  u  por malfari la lastan plenumitan komandon.
  4. Ĉi-foje, riparu ĉiujn erarojn en la linio kaj ĝia originala stato.
  5. Nun tajpu majusklan  U  por igi la linion al ĝia antaŭa stato.
  6. Nun tajpu  u  kelkfoje por malfari la  U  kaj antaŭajn komandojn.
  7. Nun tajpu CTRL-R (premante la CTRL klavon dum vi premas R) kelkfoje
     por refari la komandojn (malfari la malfarojn).

---> Koorektii la erarojn sur tiuu ĉi liniio kaj remettu illlin per malfaro.

  8. Tiuj estas tre utilaj komandoj.  Nun moviĝu al la leciono 2 RESUMO.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 2 RESUMO


  1. Por forviŝi ekde la kursoro ĝis la sekvanta vorto, tajpu:    dw
  2. Por forviŝi ekde la kursoro ĝis la fino de la linio, tajpu:  d$
  3. Por forviŝi tutan linion, tajpu:                             dd

  4. Por ripeti movon, antaŭmetu nombron:                         2w
  5. La formato de ŝanĝa komando estas:
           operatoro   [nombro]   movo

     kie:
       operatoro - estas tio, kio farendas, kiel  d  por forviŝi
       [nombro]  - estas opcia nombro por ripeti la movon
       movo      - movas sur la teksto por operacii, kiel ekzemple  w (vorto),
                   $ (ĝis fino de linio), ktp.

  6. Por moviĝi al la komenco de la linio, uzu nul:  0

  7. Por malfari antaŭajn agojn, tajpu:               u (minuskla u)
     Por malfari ĉiujn ŝanĝojn sur la linio, tajpu:   U (majuskla U)
     Por refari la malfarojn, tajpu:                  CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 3.1 LA KOMANDO DE METO


    ** Tajpu  p  por meti tekston forviŝitan antaŭe post la kursoro. **

  1. Movu la kursoron ĉe la unua ---> suba linio.

  2. Tajpu  dd  por forviŝi la linion kaj konservi ĝin ene de reĝistro de Vim.

  3. Movu la kursoron ĉe la linio c), SUPER kie la forviŝita linio devus esti.

  4. Tajpu  p  por meti la linion sub la kursoron.

  5. Ripetu la paŝojn 2 ĝis 4 por meti ĉiujn liniojn en la ĝusta ordo.

---> d) Ĉu ankaŭ vi povas lerni?
---> b) Violoj estas bluaj,
---> c) Inteligenteco lerneblas,
---> a) Rozoj estas ruĝaj,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 3.2 LA KOMANDO DE ANSTATAŬIGO


       ** Tajpu  rx  por anstataŭigi la signon ĉe la kursoro per  x . **


  1. Movu la kursoron ĉe la unua suba linio markita per --->.

  2. Movu la kursoron ĝis la unua eraro.

  3. Tajpu  r  kaj la signon, kiu devus esti tie.

  4. Ripetu paŝojn 2 kaj 3 ĝis kiam la unua linio egalas la duan.

---> Kiem tiu lanio estis tajpita, iu pramis la naĝuftajn klovojn!
---> Kiam tiu linio estis tajpita, iu premis la neĝustajn klavojn!

  5. Nun moviĝu al la leciono 3.3.

RIMARKO: Memoru, ke vi devus lerni per uzo, kaj ne per memorado.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 3.3 LA OPERATORO DE ŜANĜO


              ** Por ŝanĝi ĝis la fino de la vorto, tajpu  ce . **

  1. Movu la kursoron ĉe la unua suba linio markita per --->.

  2. Metu la kursoron sur la  d  en  lduzw

  3. Tajpu  ce  kaj la ĝustan vorton (en tiu ĉi kazo, tajpu inio ).

  4. Premu <ESK> kaj moviĝu al la sekvanta signo, kiu bezonas ŝanĝon.

  5. Ripetu la paŝojn 3 kaj 4 ĝis kiam la unua frazo egalas la duan.

---> Tiu lduzw havas kelkajn vortojn, kiii bezas ŝanĝon per la ŝanĝooto.
---> Tiu linio havas kelkajn vortojn, kiuj bezonas ŝanĝon per la ŝanĝoperatoro.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 3.4 PLIAJ ŜANĜOJ PER c


       ** La operatoro de ŝanĝo uzeblas kun la sama movo kiel forviŝo. **

  1. La operatoro de ŝanĝo funkcias sammaniere kiel forviŝo. La formato estas:

       c    [nombro]   movo

  2. La movoj estas samaj, kiel ekzemple   w (vorto) kaj $ (fino de linio).

  3. Moviĝu ĉe la unua suba linio markita per --->.

  4. Movu la kursoron al la unua eraro.

  5. Tajpu  c$  kaj tajpu la reston de la linio kiel la dua kaj premu <ESK>.

---> La fino de ĉi tiu linio bezonas helpon por igi ĝin same kiel la dua.
---> La fino de ĉi tiu linio bezonas korektojn per uzo de la komando  c$

RIMARKO:  Vi povas uzi la klavon Retropaŝo por korekti erarojn dum vi tajpas.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 3 RESUMO


  1. Por remeti tekston, kiun vi ĵus forviŝis, tajpu  p. Tio metas la
     forviŝitan tekston POST la kursoro (se linio estis forviŝita, ĝi
     iros en la linion sub la kursoro).

  2. Por anstataŭigi la signon sub la kursoro, tajpu  r  kaj tiam la signon
     kion vi deziras havi tie.

  3. La operatoro de ŝanĝo ebligas al vi ŝanĝi ekde la kursoro, ĝis kie
     la movo iras.  Ekz. tajpu  ce  por ŝanĝi ekde la kursoro ĝis la fino
     de la vorto,  c$  por ŝanĝi ĝis la fino de la linio.

  4. La formato de ŝanĝo estas:

         c    [nombro]   movo

Nun daŭrigu al la sekvanta leciono.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Leciono 4.1: POZICIO DE KURSORO KAJ STATO DE DOSIERO


  ** Tajpu CTRL-G por montri vian pozicion en la dosiero kaj la dosierstaton.
     Tajpu  G  por moviĝi al linio en la dosiero. **

  RIMARKO: Legu la tutan lecionon antaŭ ol plenumi iun paŝon ajn!!

  1. Premu la klavon Ctrl kaj premu  g . Oni nomas tion CTRL-G.
     Mesaĝo aperos ĉe la suba parto de la paĝo kun la dosiernomo kaj la
     pozicio en la dosiero. Memoru la numeron de la linio por paŝo 3.

  RIMARKO: Vi eble vidas la pozicion de la kursoro ĉe la suba dekstra
           angulo de la ekrano. Tio okazas kiam la agordo 'ruler' estas
           ŝaltita (vidu  :help 'ruler')

  2. Premu  G  por moviĝi ĉe la subo de la dosiero.
     Tajpu gg  por moviĝi ĉe la komenco de la dosiero.

  3. Tajpu la numeron de la linio kie vi estis kaj poste G .  Tio removos
     vin al la linio, kie vi estis kiam vi unue premis CTRL-G.

  4. Se vi sentas vin komforta, plenumu paŝojn 1 ĝis 3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leciono 4.2 LA KOMANDO DE SERĈO


             ** Tajpu  /  kaj poste frazon por serĉi la frazon. **

  1. En normala reĝimo, tajpu la  /  signon.  Rimarku, ke ĝi kaj la kursoro
     aperas ĉe la suba parto de la ekrano kiel por la  :  komando.

  2. Nun tajpu 'errarro' <Enenklavo>.
     Tio estas la vorto, kion vi volas serĉi.

  3. Por serĉi la saman frazon denove, simple tajpu  n .
     Por serĉi la saman frazon denove en la retrodirekto, tajpu  N .

  4. Por serĉi frazon en la retrodirekto, uzu  ?  anstataŭ  / .

  5. Por reiri tien, el kie vi venis, premu  CTRL-O (Premu Ctrl kaj o
     literon o).  Ripetu por pli retroiri.  CTRL-I iras antaŭen.

---> "errarro" ne estas maniero por literumi eraro; errarro estas eraro.

RIMARKO: Kiam la serĉo atingas la finon de la dosiero, ĝi daŭras ĉe la
         komenco, krom se la agordo 'wrapscan' estas malŝaltita.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 4.3 SERĈO DE KONGRUAJ KRAMPOJ


                 ** Tajpu  %  por trovi kongruan ), ] aŭ  } **

  1. Poziciu la kursoron sur iun (, [ aŭ { en la linio markita per --->.

  2. Nun tajpu la  %  signon.

  3. La kursoro moviĝas al la kongrua krampo.

  4. Tajpu  %  por movi la kursoron al la alia kongrua krampo.

  5. Movu la kursoron al la alia (, ), [, ], {, } kaj observu tion,
     kion  %  faras.

---> Ĉi tiu ( estas testa linio kun (-oj, [-oj, ]-oj kaj {-oj, }-oj en ĝi. ))


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 4.4 LA KOMANDO DE ANSTATAŭIGO


     ** Tajpu  :s/malnova/nova/g  por anstataŭigi 'nova' per 'malnova'. **

  1. Movu la kursoron al la suba linio markita per --->.

  2. Tajpu  :s/laa/la <Enenklavo> .  Rimarku, ke la komando ŝanĝas nur la
     unuan okazaĵon de "laa" en la linio.

  3. Nun tajpu  :s/laa/la/g .  Aldono de  g  opcio signifas mallokan
     anstataŭigon en la linio. Ĝi ŝanĝas ĉiujn okazaĵojn de "laa" en la
     linio.

---> laa plej bona tempo por vidi florojn estas en laa printempo.

  4. Por ŝanĝi ĉiujn okazaĵojn de iu ĉena signo inter du linioj,
     tajpu    :#,#s/malnova/nova/g   kie #,# estas la numeroj de linioj de la
                                     intervalo de la linioj kie la anstataŭigo
                                     okazos.
     Tajpu    :%s/malnova/nova/g     por ŝanĝi ĉiujn okazaĵojn en la tuta
                                     dosiero.
     Tajpu    :s/malnova/nova/gc     por trovi ĉiujn okazaĵojn en la tuta
                                     dosiero, kun invitilo ĉu anstataŭigi
                                     aŭ ne.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 4 RESUMO

  1. CTRL-G  vidigas vian pozicion en la dosiero kaj la staton de la dosiero.
            G  movas la kursoron al la fino de la dosiero.
     numero G  movas la kursoron al numero de tiu linio.
           gg  movas la kursoron al la unua linio.

  2. Tajpo de  /  kaj frazon serĉas la frazon antaŭen.
     Tajpo de  ?  kaj frazon serĉas la frazon malantaŭen.
     Post serĉo, tajpu n por trovi la sekvantan okazaĵon en la sama direkto aŭ
     N por serĉi en la mala direkto.
     CTRL-O movas vin al la antaŭaj pozicioj, CTRL-I al la novaj pozicioj.

  3. Tajpo de  %  kiam la kursoro estas sur (,),[,],{ aŭ } moviĝas al ĝia
     kongruo.

  4. Por anstataŭigi 'nova' en la unua 'malnova' en linio :s/malnova/nova
     Por anstataŭigi 'nova' en ĉiuj 'malnova'-oj en linio :s/malnova/nova/g
     Por anstataŭigi frazon inter du #-aj linioj          :#,#s/malnova/nova/g
     Por anstataŭigi ĉiujn okazaĵojn en la dosiero        :%s/malnova/nova/g
     Por demandi konfirmon ĉiu-foje, aldonu 'c'           :%s/malnova/nova/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leciono 5.1 KIEL PLENUMI EKSTERAN KOMANDON


     ** Tajpu  :!  sekvata de ekstera komando por plenumi la komandon. **

  1. Tajpu la konatan komandon  :  por pozicii la kursoron ĉe la suba parto
     de la ekrano. Tio ebligas tajpadon de komando en komanda linio.

  2. Nun tajpu la  !  (krisigno) signon. Tio ebligas al vi plenumi iun
     eksteran ŝelan komandon ajn.

  3. Ekzemple, tajpu  ls  post ! kaj tajpu <Enenklavo>. Tio listigos la
     enhavon de la dosierujo, same kiel se vi estis en ŝela invito.
     Aŭ uzu  :!dir  se ls ne funkcias.

RIMARKO: Eblas plenumi iun eksteran komandon ajn tiamaniere, ankaŭ kun
         argumentoj.

RIMARKO: Ĉiuj  :  komandoj devas finiĝi per tajpo de <Enenklavo>
         Ekde nun, ni ne plu mencios tion.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 5.2 PLI PRI KONSERVO DE DOSIERO


   ** Por konservi la faritajn ŝanĝojn en la teksto, tajpu  :w DOSIERNOMO. **

  1. Tajpu  !dir  aŭ  !ls  por akiri liston de via dosierujo.
     Vi jam scias, ke vi devas tajpi <Enenklavo> post tio.

  2. Elektu dosieron, kiu ankoraŭ ne ekzistas, kiel ekzemple TESTO.

  3. Nun tajpu:   :w TESTO   (kie TESTO estas la elektita dosiernomo)

  4. Tio konservas la tutan dosieron (instruilon de Vim) kun la nomo TESTO.
     Por kontroli tion, tajpu   :!dir   aŭ   :!ls   denove por vidigi vian
     dosierujon.

RIMARKO: Se vi volus eliri el Vim kaj restartigi ĝin denove per  vim TESTO,
         la dosiero estus precize same kiel kopio de la instruilo kiam vi
         konservis ĝin.

  5. Nun forviŝu la dosieron tajpante (MS-DOS):     :!del TESTO
                                   aŭ (UNIKSO):     :!rm TESTO


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 5.3 APARTIGI KONSERVENDAN TESTON


    ** Por konservi parton de la dosiero, tajpu   v  movo  :w DOSIERNOMO **

  1. Movu la kursoron al tiu linio.

  2. Premu  v  kaj movu la kursoron al la kvina suba ero.  Rimarku, ke la
     teksto emfaziĝas.

  3. Premu la  :  signon.  Ĉe la fino de la ekrano  :'<,'>  aperos.

  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ankoraŭ ne ekzistas.
     Kontrolu, ke vi vidas  :'<,'>w TESTO  antaŭ ol premi <Enenklavo>.

  5. Vim konservos la apartigitajn liniojn al la dosiero TESTO.  Uzu  :dir
     aŭ  :!ls  por vidigi ĝin.  Ne forviŝu ĝin.  Ni uzos ĝin en la sekvanta
     leciono.

RIMARKO: Premo de  v  komencas Viduman apartigon.  Vi povas movi la kursoron
         por pligrandigi aŭ malpligrandigi la apartigon. Tiam vi povas uzi
         operatoron por plenumi ion kun la teksto.  Ekzemple,  d  forviŝas
         la tekston.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leciono 5.4 AKIRI KAJ KUNFANDI DOSIEROJN


         ** Por enmeti la enhavon de dosiero, tajpu  :r DOSIERNOMON **

  1. Movu la kursoron tuj super ĉi tiu linio.

RIMARKO: Post plenumo de paŝo 2, vi vidos tekston el la leciono 5.3.  Tiam
         moviĝu SUBEN por vidi tiun lecionon denove.

  2. Nun akiru vian dosieron TESTO uzante la komandon   :r TESTO   kie TESTO
     estas la nomo de la dosiero, kiun vi uzis.
     La dosiero, kion vi akiras, estas metita sub la linio de la kursoro.

  3. Por kontroli, ĉu la dosiero akiriĝis, retromovu la kursoron kaj rimarku,
     ke estas nun du kopioj de la leciono 5.3, la originala kaj la versio mem
     de la dosiero.

RIMARKO: Vi nun povas legi la eliron de ekstera komando. Ekzemple,
        :r !ls  legas la eliron de la komando ls kaj metas ĝin sub la
        kursoron.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 5 RESUMO


  1.  :!komando  plenumas eksteran komandon.

      Iuj utilaj ekzemploj estas:
        (MS-DOS)           (UNIKSO)
         :!dir              :!ls            - listigas dosierujon
         :!del DOSIERNOMO   :!rm DOSIERNOMO - forviŝas la dosieron DOSIERNOMO

  2.  :w DOSIERNOMO  konservas la nunan dosieron de Vim al disko kun la
      nomo DOSIERNOMO.

  3.  v  movo  :w DOSIERNOMO  konservas la Viduman apartigon de linioj en
      dosiero DOSIERNOMO.

  4. :r DOSIERNOMO  akiras la dosieron DOSIERNOMO el la disko kaj metas
     ĝin sub la pozicion de la kursoro.

  5. :r !dir  legas la eligon de la komando dir kaj metas ĝin sub la
     pozicion de la kursoro.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 6.1 LA KOMANDO DE MALFERMO


  ** Tajpu o por malfermi linion sub la kursoro kaj eniri Enmetan reĝimon. **

  1. Movu la kursoron al la suba linio markita per --->.

  2. Tajpu la minusklan literon  o  por malfermi linion SUB la kursoro kaj
     eniri la Enmetan reĝimon.

  3. Nun tajpu tekston kaj premu <ESK> por eliri el la Enmeta reĝimo.

---> Post tajpo de  o  la kursoro moviĝas al la malfermata linio en
     Enmeta reĝimo.

  4. Por malfermi linion SUPER la kursoro, nur tajpu majusklan  O  ,
     anstataŭ minusklan  o.  Provu tion per la suba linio.

---> Malfermu linion SUPER tiu tajpante O dum la kursoro estas sur tiu linio.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leciono 6.2 LA KOMANDO DE POSTALDONO


                  ** Tajpu  a  por enmeti POST la kursoro. **

  1. Movu la kursoron ĉe la komenco de la linio markita per --->.

  2. Premu  e  ĝis kiam la kursoro estas ĉe la fino de  li.

  3. Tajpu  a  (minuskle) por aldoni tekston POST la kursoro.

  4. Kompletigu la vorton same kiel la linio sub ĝi.  Premu <ESK> por
     eliri el la Enmeta reĝimo.

  5. Uzu  e  por moviĝi al la sekvanta nekompleta vorto kaj ripetu
     paŝojn 3 kaj 4.

---> Ĉi tiu lin ebligos vin ekz vin postal tekston al linio.
---> Ĉi tiu linio ebligos vin ekzerci vin postaldoni tekston al linio.

RIMARKO: Ĉiu  a, i kaj A  iras al la sama Enmeta reĝimo, la nura malsamo
         estas tie, kie la signoj estas enmetitaj.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 6.3 ALIA MANIERO POR ANSTATAŬIGI


          ** Tajpu majusklan  R  por anstataŭigi pli ol unu signo. **

  1. Movu la kursoron al la unua suba linio markita per --->.  Movu la
     kursoron al la komenco de la unua  xxx .

  2. Nun premu  R  kaj tajpu la nombron sub ĝi en la dua linio, por ke ĝi
     anstataŭigu la xxx .

  3. Premu <ESK> por foriri el la Anstataŭiga reĝimo. Rimarku, ke la cetera
     parto de la linio restas neŝanĝata.

  4. Ripetu la paŝojn por anstataŭigi la restantajn xxx.

---> Aldono de 123 al xxx donas al vi xxx.
---> Aldono de 123 al 456 donas al vi 579.

RIMARKO: Anstataŭiga reĝimo estas same kiel Enmeta reĝimo, sed ĉiu signo
         tajpita forviŝas ekzistan signon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leciono 6.4 KOPII KAJ ALGLUI TEKSTON


     ** Uzu la  y  operatoron por kopii tekston, kaj  p  por alglui ĝin **


  1. Iru al la linio markita per ---> sube kaj poziciu la kursoron post "a)".

  2. Komencu la Viduman reĝimon per  v  kaj movu la kursoron tuj antaŭ "unua".

  3. Tajpu  y  por kopii la emfazitan tekston.

  4. Movu la kursoron ĉe la fino de la linio:  j$

  5. Tajpu  p  por alglui la tekston.  Tiam tajpu:  a dua <ESK> .

  6. Uzu Viduman reĝimon por apartigi " ero.", kopiu ĝin per  y , moviĝu
     ĉe la fino de la sekvanta linio per  j$  kaj algluu la tekston tie
     per  p .

---> a) tio estas la unua ero.
     b)

RIMARKO: vi povas ankaŭ uzi  y  kiel operatoro;  yw  kopias unu vorton.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Leciono 6.5 AGORDI OPCION


         ** Agordu opcion por ke serĉo aŭ anstataŭigo ignoru usklecon **

  1. Serĉu 'ignori' per tajpo de /ignori <Enenklavo>
     Ripetu plurfoje premante  n .

  2. Ŝaltu la opcion 'ic' (ignori usklecon) per:   :set ic

  3. Nun serĉu 'ignori' denove premante  n
     Rimarku, ke Ignori kaj IGNORI estas nun troveblas.

  4. Ŝaltu la opciojn 'hlsearch' kaj 'incsearch':   :set hls is

  5. Nun retajpu la serĉan komandon kaj vidu kio okazas:  /ignore <Enenklavo>

  6. Por malŝalti ignoron de uskleco:  :set noic

RIMARKO: Por forigi emfazon de kongruo, tajpu:   :nohlsearch
RIMARKO: Se vi deziras ignori usklecon por nur unu serĉa komando, uzu  \c
         en la frazo:  /ignore\c  <Enenklavo>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 6 RESUMO

  1. Tajpu  o  por malfermi linion SUB la kursoro kaj eki en Enmeta reĝimo.
  1. Tajpu  O  por malfermi linion SUPER la kursoro.

  2. Tajpu  a  por enmeti tekston POST la kursoro.
     Tajpu  A  por enmeti tekston post la fino de la linio.

  3. La  e  komando movas la kursoron al la fino de vorto.

  4. la  y  operatoro kopias tekston,  p  algluas ĝin.

  5. Tajpo de majuskla  R  eniras la Anstataŭigan reĝimon ĝis kiam
     <ESK> estas premita.

  6. Tajpo de ":set xxx" ŝaltas la opcion "xxx".  Iuj opcioj estas:
        'ic' 'ignorecase'     ignori usklecon dum serĉo
        'is' 'incsearch'      montru partan kongruon dum serĉo
        'hls' 'hlsearch'      emfazas ĉiujn kongruajn frazojn
     Vi povas uzi aŭ la longan, aŭ la mallongan nomon de opcio.

  7. Antaŭaldonu "no" por malŝalti la opcion:  :set noic


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leciono 7.1 AKIRI HELPON


                          ** Uzu la helpan sistemon **

  Vim havas ampleksan helpan sistemon. Por komenciĝi, provu unu el la tiuj
  tri:
        - premu la klavon <HELPO> (se vi havas ĝin)
        - premu la klavon <F1> (se vi havas ĝin)
        - tajpu   :help <Enenklavo>

  Legu la tekston en la helpfenestro por trovi kiel helpo funkcias.
  Tajpu  CTRL-W CTRL-W      por salti de unu fenestro al la alia.
  Tajpu    :q <Enenklavo>   por fermi la helpan fenestron.

  Vi povas trovi helpon pri io ajn aldonante argumenton al la komando
  ":help".  Provu tiujn (ne forgesu premi <Enenklavo>):

        :help w
        :help c_CTRL-D
        :help insert-index
        :help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leciono 7.2 KREI STARTAN SKRIPTON


                         ** Ebligu kapablojn de Vim **

  Vim havas multe pli da kapabloj ol Vi, sed la plej multaj estas defaŭlte
  malŝaltitaj.  Por ekuzi la kapablojn, vi devas krei dosieron "vimrc".

  1. Ekredaktu la dosieron "vimrc".  Tio dependas de via sistemo:
      :e ~/.vimrc          por Unikso
      :e $VIM/_vimrc       por MS-Vindozo

  2. Nun legu la enhavon de la ekzempla "vimrc"
      :r $VIMRUNTIME/vimrc_example.vim

  3. Konservu la dosieron per:
      :w

  La sekvantan fojon, kiam vi lanĉas Vim, ĝi uzos sintaksan emfazon.
  Vi povas aldoni ĉiujn viajn preferatajn agordojn al tiu dosiero "vimrc".
  Por pli da informoj, tajpu  :help vimrc-intro


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             Leciono 7.3 KOMPLETIGO


             ** Kompletigo de komanda linio per CTRL-D kaj <TAB> **

  1. Certigu ke Vim estas en kongrua reĝimo:  :set nocp

  2. Rigardu tiujn dosierojn, kiuj ekzistas en la dosierujo:  :!ls  aŭ  :!dir

  3. Tajpu la komencon de komando:  :e

  4. Premu  CTRL-D  kaj Vim montros liston de komandoj, kiuj komencas per "e".

  5. Premu <TAB>  kaj Vim kompletigos la nomon de la komando al ":edit".

  6. Nun aldonu spaceton kaj la komencon de ekzistanta nomo:  :edit DOSI

  7. Premu <TAB>.  Vim kompletigos la nomon (se ĝi estas unika)

RIMARKO: Kompletigo funkcias por multaj komandoj. Nur provu premi CTRL-D kaj
         <TAB>.  Estas aparte utila por  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                Leciono 7 RESUMO


  1. Tajpu  :help  aŭ premu <F1> aŭ <Helpo>  por malfermi helpan fenestron.

  2. Tajpu  :help kmd  por trovi helpon pri  kmd.

  3. Tajpu  CTRL-W CTRL-W  por salti al alia fenestro.

  4. Tajpu  :q  to fermi la helpan fenestron.

  5. Kreu komencan skripton vimrc por konservi viajn agordojn.

  6. Kiam vi tajpas  :  komandon, premu CTRL-D por vidi ĉiujn kompleteblojn.
     Premu <TAB> por uzi unu kompletigon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Tio konkludas la instruilon de Vim.  Ĝi celis doni mallongan superrigardon
  de la redaktilo Vim, nur tion kio sufiĉas por ebligi al vi facilan uzon de
  la redaktilo. Estas nepre nekompleta, ĉar Vim havas multajn multajn pliajn
  komandojn. Legu la manlibron: ":help user-manual".

  Tiu instruilo estis verkita de Michael C. Pierce kaj Robert K. Ware,
  el la Koloradia Lernejo de Minejoj (Colorado School of Mines) uzante
  ideojn provizitajn de Charles Smith el la Stata Universitato de Koloradio
  (Colorado State University)

  Retpoŝto: bware@mines.colorado.edu.

  Modifita por Vim de Bram Moolenaar.

  Esperantigita fare de Dominique Pellé, 2008-04-01
  Retpoŝto: dominique.pelle@gmail.com
  Lasta ŝanĝo: 2016-07-02

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z��-*vvvim80/tutor/tutor.tr.utf-8nu�[���===============================================================================
=    	V I M   T u t o r'a Hoş Geldiniz    -    Sürüm 1.5      =
===============================================================================

     Vim, bu gibi bir eğitmen ile açıklanması gereken çok fazla komut barındıran,
     oldukça kuvvetli bir metin düzenleyicidir. Bu eğitmen Vim'i çok amaçlı bir
     düzenleyici olarak kolaylıkla kullanabileceğiniz yeterli sayıda komutu açıklamak
     için tasarlanmıştır.

     Eğitmeni tamamlama süresi yapacağınız denemelere bağlı olarak 25-30
     dakikadır.

     Derslerdeki komutlar bu metini değiştirecektir. Üzerinde çalışmak için
     bu dosyanın bir kopyasını alın (eğer "vimtutor" uygulamasını çalıştırdıysanız
     zaten bir kopyasını almış oldunuz).

     Bu eğitmenin, kullanarak öğretmeye ayarlandığını unutmamak önemlidir. Bu şu
     anlama gelir; komutları öğrenmek için doğru bir şekilde çalıştırmanız gerekir.
     Eğer sadece yazılanları okursanız komutları unutursunuz.

     Şimdi Caps-Lock tuşlarınızın basılı olmadığına emin olun ve Ders 1.1'in
     ekranı tamamen doldurması için   j   tuşuna yeterli miktarda basın.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 1.1:  İMLECİ HAREKET ETTİRMEK

  Ç.N: Tüm derslerde <ENTER> gördüğünüz yerde bu tuşa basmanız gerekir.

   ** İmleci hareket ettirmek için, h,j,k,l tuşlarına gösterildiği gibi basın. **
   	     ^
	     k		    İpucu: h tuşu soldadır ve sola hareket eder.
       < h	 l >		   l tuşu sağdadır ve sağa hareket eder.
	     j			   j tuşu aşağı yönlü bir ok gibidir.
	     v
  1. Yeterli hissedinceye kadar imleci ekranda hareket ettirin.

  2. Aşağı tuşunu  (j)  tekrar edene kadar basılı tutun.
---> Şimdi, bir sonraki derse nasıl geçeceğinizi biliyorsunuz.

  3. Aşağı tuşunu kullanarak, Ders 1.2'ye geçin.
  Not:  Eğer yazdığınız bir şeyden emin değilseniz, Normal kipe geçmek için <ESC> tuşuna basın.
        Daha sonra istediğiniz komutu yeniden yazın.
  Not:  İmleç tuşları da aynı zamanda işe yararlar ancak   hjkl   tuşlarını kullanmaya alıştığınızda etrafta daha hızlı
        hareket edersiniz.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 1.2: VIM'E GİRİŞ VE VIM'DEN ÇIKIŞ


  !! NOT: Aşağıdaki adımları yapmadan önce, bu dersi tamamen okuyun.

  1. <ESC> tuşuna basın (Normal kipte olmayı garantilemek için).

  2. Yazın:			:q! <ENTER>.

---> Bu düzenleyicinin yaptığınız değişiklikleri KAYDETMEDEN kapanmasını sağlar.
     Eğer yaptıklarınızın kaydedilmesini istiyorsanız şunu yazın:
				:wq  <ENTER>

  3. Kabuk istemcisini (shell prompt) gördüğünüzde, sizi bu eğitmene getiren
     komutu yazın. Bu:	vimtutor <ENTER> komutudur.
     Normalde:	vim tutor <ENTER> komutu kullanılır.
---> 'vim' vim düzenleyicisine gir anlamına gelir, 'tutor' ise açmak istediğiniz dosyadır.

  4. Eğer bu adımları ezberlediyseniz ve kendinizden eminseniz, 1'den 3'e kadar olan adımları,
     düzenleyiciden çıkmak ve yeniden girmek için uygulayın.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 1.3: METİN DÜZENLEME - SİLME


** Normal kipteyken imlecin altındaki karakteri silmek için   x  'e basın.**

  1. İmleci aşağıda işaretlenmiş (-->) satıra götürün.

  2. Hataları düzeltmek için, imleci silinmesi gereken karakterin üzerine getirin

  3. İstenmeyen karakteri silmek için   x   tuşuna basın.

  4. Cümle düzelene kadar 2'den 4'e kadar olan adımları tekrar edin.

---> İinek ayyın üzzerinden attladı.

  5. Şimdi satır düzeldi, Ders 1.4'e geçin.

NOT: Bu eğitmende ilerledikçe ezberlemeye çalışmayın, kullanarak öğrenin.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 1.4: METİN DÜZENLEME - EKLEME


	  ** Normal kipteyken metin eklemek için   i  'ye basın. **

  1. İmleci aşağıdaki işaretlenmiş (-->) ilk satıra götürün.

  2. İlk satırı ikincisinin aynısı gibi yapmak için, imleci eklenmesi gereken
     metinden sonraki ilk karakterin üzerine götürün.

  3. i  'ye basın ve gerekli eklemeleri yapın.

  4. Her hata düzeltildiğinde <ESC> tuşuna basarak Normal kipe dönün.
     Cümleyi düzeltmek için 2'den 4'e kadar olan adımları tekrar edin.

---> Bu metinde eksk.
---> Bu metinde birşey eksik.

  5. Metin ekleme çalışmalarını yeterli görüyorsanız aşağıdaki özete geçin.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 1 ÖZET


  1. İmleç hem ok tuşları hem de   hjkl   tuşları ile hareket ettirilir.
	 h (sol)	j (aşağı)       k (yukarı)	    l (sağ)

  2. (Konsoldan) Vim'e girmek içn  yazın:  vim DOSYAİSMİ <ENTER>

  3. Tüm değişiklikleri göz ardı edip vimden çıkmak için yazın:
     <ESC>	:q!	<ENTER>
     veya tüm değişiklikleri kaydetmek için yazın:
     <ESC>	:wq	<ENTER>

  4. İmlecin altındaki bir karakteri silmek için Normal kipte   x   yazın.

  5. İmlecin altında metin eklemek için Normal kipte yazın:
	 i     yazılacak metin	<ESC>

NOT: <ESC> tuşuna basmak sizi Normal kipe götürür ya da istenmeyen tamamlanmamış bir komutu
     iptal eder.

Şimdi Ders 2 ile devam edin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 2.1: SİLME KOMUTLARI

	    ** Bir kelimeyi silmek için  dw  yazın.**

  1. Normal kipte olmakten emin olmak için <ESC> tuşuna basın.

  2. İmleci aşağıdaki işaretlenmiş (-->) satıra götürün.

  3. İmleci silinmesi gereken kelimenin başına götürün.

  4. Kelimeyi silmek için   dw   yazın.

  NOT:  dw  harfleri siz yazdıkça ekranın son satırında görülecektir.
        Eğer yanlış bir şeyler yazarsanız, yeniden başlamak için <ESC> tuşuna basın.

---> Bu satırda çerez cümleye ait olmayan leblebi kelimeler var.


  5. Cümle düzelene kadar adım 3 ve 4'ü tekrar edin, daha sonra Ders 2.2'ye gidin.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Ders 2.2: DAHA FAZLA SİLME KOMUTU


	   ** Satırı sonuna kadar silmek için   d$   yazın.**

  1. Normal kipte olmaktan emin olmak için <ESC> tuşuna basın.

  2. İmleci aşağıdaki işaretlenmiş (-->) satıra götürün.

  3. İmleci doğru olan satırın sonuna götürün. (Birinciden SONRA. )

  4. Satırı sonuna kadar silmek için   d$   yazın.
  ( d$  yazarken d'den sonra <ALT> ile beraber $ tuşuna basın)

---> Birileri bu satırın sonunu iki defa yazmış. Birileri bu satırın sonunu iki defa yazmış.

  5. Neler olduğunu anlamak için Ders 2.3'e gidin.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 2.3: KOMUTLAR VE NESNELER


   d   silme komutu için biçim aşağıdaki gibidir:

	 [sayı]   d	nesne	    VEYA     d	 [sayı]   nesne
  Burada:
    sayı   - komutun kaç defa çalıştırlacağı (isteğe bağlı, varsayılan=1).
    d      - silme komutu
    nesne  - komutun ne şekilde çalışacağı (aşağıda listlendi).

  Nesnelerin kısa bir listesi.
    w - Boşluğu da içererek, imleçten itibaren kelimenin sonuna kadar.
    e - Boşluğu İÇERMEDEN, imleçten itibaren kelimenin sonuna kadar.
    $ - imleçten satırın sonuna kadar.

NOT:   Serüven sevenler için, Normal kipte iken, komut olmadan sadece nesnenin kendisine basmak
       imleci yukardaki listede olduğu gibi hareket ettirecektir.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Ders 2.4:   'KOMUT-NESNE'ye BİR İSTİSNA


		 ** Bütün bir satırı silmek için   dd   yazın. **

  Bütün bir satır silme sıklığından dolayı, Vi tasarımcıları bir satırı
  tamamen silmek için iki d yazmanın daha kolay olacağına karar verdiler.

  1. İmleci aşağıdaki tümceciğin ikinci satırına götürün.
  2. Satırı silmek için    dd   yazın.
  3. Şimdi de dördüncü satıra gidin.
  4. İki satırı birden silmek için   2dd   (sayı-komut-nesne'yi hatırlayın) yazın.

	1)  Güller kırmızıdır,
	2)  Çamur eğlenceli,
	3)  Menekşeler mavi,
	4)  Bir arabam var,
        5)  Saat bana söyler,
	6)  Şeker tatlıdır
 	7)  Ve sen de öylesin

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Ders 2.5: GERİ AL KOMUTU


   ** Son komutu geri almak için    u   , bütün bir satırı düzeltmek için U yazın.**

  1. İmleci aşağıdaki işaretlenmiş (-->) satırdaki ilk hatanın üzerine götürün.
  2. İlk istenmeyen karakteri silmek için   x   yazın.
  3. Şimdi son çalıştırılan komutu geri almak için   u   yazın.
  4. Bu sefer   x    komutunu kullanarak satırdaki tüm hataları düzeltin.
  5. Şimdi satırı ilk haline çevirmek için büyük   U    yazın.
  6. Şimdi   U    ve daha önceki komutları geri almak için birkaç defa   u    yazın.
  7. Şimdi birkaç defa CTRL-R (CTRL'yi basılı tutarken R ye basın) yazarak geri almaları da geri alın.

---> Buu satıırdaki hataları düüzeltinn ve sonra koomutu geri alllın.

  8. Bunlar son derece kullanışlı komutlardır. Şimdi Ders 2 Özete geçin.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 2 ÖZET


  1. İmleçten itibaren bir kelimeyi silmek için yazın:	dw

  2. İmleçten itibaren bir satırı silmek için yazın:	d$

  3. Bütün bir satırı silmek için yazın:		dd

  4. Normal kipte bir komut biçimi şöyledir:

       [sayı]   komut    nesne    VEYA     komut	[sayı]   nesne
     burada:
	 sayı  - komutun kaç kere tekrar edeceği
	 komut - ne yapılacağı, silmek için   d   olduğu gibi
	 nesne - komutun nasıl davranacağı, w (kelime), $ (satır sonu), vb gibi.

  5. Önceki hareketleri geri almak için yazın:		u	(küçük u)
     Bir satırdaki tüm değişiklikleri geri almak için yazın:	U	(büyük u)
     Geri almaları geri almak için yazın:	CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Ders 3.1: KOY KOMUTU


       ** Son yaptığınız silme işlemini imleçten sona geri yerleştirmek için	p   yazın.**

  1. İmleci aşağıdaki tümceciğin ilk satırına götürün.

  2. Satırı silip Vim'in tamponuna yerleştirmek için   dd   yazın.

  3. İmleci, silinmiş satırı nereye yerleştirmek istiyorsanız, o satırın ÜZERİNE götürün.

  4. Normal kipteyken, satırı yerleştirmek için   p   yazın.

  5. Tüm satırları doğru sıraya koymak için 2'den 4'e kadar olan adımları tekrar edin.

     d) Sen de öğrendin mi?
     b) Menekşeler mavidir,
     c) Akıl öğrenilir,
     a) Güller kırmızıdır,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Ders 3.2: YERLEŞTİR KOMUTU


  ** İmlecin altında bir karakter yerleştirmek için    r    yazın.**

  1. İmleci aşağıdaki işaretlenmiş(--->) ilk satıra götürün.

  2. İmleci satırdaki ilk hatanın üzerine götürün.

  3. Hatayı düzeltmek için önce   r    ardından da doğru karakteri yazın.

  4. İlk satır düzelene kadar adım 2 ve 3'ü tekrar edin.

--->  Bu satıv yazılıvken, bivileri yamlış tuştara basmış.
--->  Bu satır yazılırken, birileri yanlış tuşlara basmış.

  5. Ders 3.2'ye geçin.

NOT: Unutmayın, ezberleyerek değil kullanarak öğrenin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 3.3: DEĞİŞTİR KOMUTU


	   ** Bir kelimenin tamamını veya parçasını değiştirmek için   cw   yazın.

  1. İmleci aşağıdaki işaretlenmiş(--->) satıra götürün.

  2. İmleci "sutar" daki u'nun üzerine yerleştirin.

  3. Önce   cw   ardından doğru kelimeyi girin (bu durumda 'atır'.)

  4. <ESC> tuşuna basın ve bir sonraki hataya gidin (değişmesi gereken ilk karakter.)

  5. İlk cümle ikincisiyle aynı olana kadar adım 3 ve 4'ü tekrar edin.

---> Bu sutar değiştir komutu ile değişneli gereken birkaç petime içeriyor.
---> Bu satır değiştir komutu ile değişmesi gereken birkaç kelime içeriyor.

cw'nin sadece kelimeyi değiştirmediğini, aynı zamanda sizi insert kipine götürdüğüne de dikkat edin.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      	Ders 3.4: c'Yİ KULLANARAK DAHA FAZLA DEĞİŞTİRME


     ** Değiştir komutu sil komutu ile aynı nesnelerle kullanılır.**

  1. Değiştir komutu sil ile aynı yolla çalışır. Biçim şöyledir:

       [sayı]   c   nesne	   VEYA	    c	[sayı]   nesne

  2. Nesneler de aynı zamanda aynıdır. Örneğin w (word), $ (satır sonu), vb. gibi.

  3. Aşağıdaki işaretlenmiş(--->) ilk satıra gidin.

  4. İmleci ilk hataya götürün.

  5. Satırın geri kalan kısmını ikincisi gibi yapmak için   c$   yazın ve daha sonra <ESC> tuşuna basın.

---> Bu satırın sonu düzeltilmek için biraz yardıma ihtiyaç duyuyor.
---> Bu satırın sonu düzeltilmek için   c$   komutu kullanılarak yardıma ihtiyaç duyuyor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 3 ÖZET


  1. Silinmiş olan bir metini geri yerleştirmek için   p   yazın. Bu silinmiş metini
     imleçten hemen SONRA geri yerleştirir (eğer bir satır silinmişse hemen imleçten sonra, alta
     yerleştirilecektir)

  2. İmlecin altındaki karakteri değiştirmek için önce   r    ardından da
     asıl karakteri yazın.

  3. Değiştir komutu belirlenen nesneyi, imleçten nesnenin sonuna kadar değiştirme imkanı verir.
     Örneğin, bir kelimeyi imleçten sonuna kadar değiştirmek için   cw   , bir satırın tamamını
     değiştirmek içinse   c$   yazın.

  4. Değiştir için biçim şöyledir:

	 [sayı]   c	nesne	      VEYA	c   [sayı]   nesne

Şimdi bir sonraki derse geçin.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Ders 4.1: KONUM VE DOSYA DURUMU


  ** Dosya içerisindeki konumunuzu ve dosyanın durumunu görmek için   CTRL-g    yazın. **
  ** Dosya içerisindeki bir satıra gitmek için   SHIFT-g   yazın. **

  Not: Adımlardan herhangi birini yapmadan önce dersin tamamını okuyun!!

  1. Ctrl tuşunu basılı tutun ve   g'ye   basın. Dosyanın sonunda dosya ismini ve bulunduğunuz konumu
     gösteren bir durum satırı görünecektir. Adım 3 için satır numarasını
     unutmayın.

  2. Dosyanın sonuna gitmek için   shift-G   'ye basın.

  3. Daha önce bulunduğunuz satır numarasını yazın ve daha sonra    shift-G   'ye basın.
     Bu sizi daha önce bulunduğunuz ve    Ctrl-g   'ye bastığınız satıra geri götürecektir.
     (Sayılar yazılırken ekranda GÖRÜNMEYECEKLERDİR.)

  4. Yapabileceğinizi düşündüğünüzde, adım 1'den 3'e kadar yapın.

  Ç.N: Bu kısım orijinal metinde de biraz eksik anlatılmış gibi. Bir satır hakkında bilgi almak için
       Ctrl-g'yi kullanın. Herhangi bir satıra gitmek içinse, önce satır numarasını yazın ve ardınan
       shift-g'ye basın. Satır numarası girmeden basılan shift-g sizi satır sonuna götürür.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 4.2: ARAMA KOMUTU


     ** Bir kelime öbeğini aramak için   /   ile beraber kelime öbeğini girin. **

  1. Normal kipteyken   /   karakterini yazın. Komut bölümü yerine   /   karakterinin ve
     imlecin ekranın sonunda göründüğüne dikkat edin.

  2. Şimdi, 'hatttaa' yazıp <ENTER> 'a basın. Bu sizin aramak istediğiniz kelime.

  3. Aynı kelime öbeğini tekrar aramak için, basitçe   n   yazın.
     Aynı kelime öbeğini zıt yönde aramak için, Shift-N yazın.

  4. Eğer zıt yöne doğru bir arama yapmak istiyorsanız,  /   komutu yerine
     ?   komutunu kullanın.

---> "hatttaa" hatayı yazmanın doğru yolu değil; hatttaa bir hata.

Not: Arama dosyanın sonuna ulaştığında, tekrar baştan başlayacaktır.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Ders 4.3: UYAN PARANTEZ ARAMASI


	      ** Uyan bir ),] veya } bulmak için   %   yazın. **

  1. İmleci işaretli (--->) satırdaki herhangi bir (, [ veya { karakterinin
     üzerine götürün.

  2. Şimdi   %    karakterini yazın.

  3. İmleç uyan parantez veya ayracın üzerine gider.

  4. Uyan ilk parantezin üzerine geri dönmek için yine   %   yazın.

---> Bu ( içerisinde ('ler, ['ler ] ve {'ler } bulunan bir satırdır. ))

Not: Bu içerisinde uymayan parantezler bulunan bir programın yanlışını ayıklamak için
     son derece yararlıdır.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Ders 4.4: HATALARI DÜZELTMEK İÇİN BİR YOL


	** 'eski' yerine 'yeni' yerleştirmek için   :s/eski/yeni/g   yazın. **

  1. İmleci aşağıdaki işaretli (--->) satıra götürün.

  2. :s/buu/bu  yazıp <ENTER> 'a basın. Bu komutun sadece satırdaki ilk karşılaşmayı
     düzelttiğine dikkat edin.

  3. Şimdi genel olarak satırdaki tüm değişikliği  yapmak için   :s/buu/bu/g   yazın.

---> Buu birinci, buu ikinci, buu üçüncü bölüm.

  4. İki satır arasındaki bir karakter katarının tümünü değiştirmek için,
     :#,#s/eski/yeni/g  yazın, burada #,# iki satırın sayılarıdır.
     Tüm dosyadaki karşılaşılan kelimeleri değiştirmek için  :%s/eski/yeni/g  yazın.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 4 ÖZET


  1. Ctrl-g sizin dosyadaki konumunuzu ve dosya durumunu gösterir.
     Shift-G dosyanın sonuna gider. Shift-G 'den önce bir sayı yazılırsa, o satıra
     gidilir.

  2. Bir sözcük öbeğinden önce / yazmak, İLERİ yönde o öbeği aratır.
     Bir sözcük öbeğinden önce ? yazmak, GERİ yönde o öbeği aratır.
     Bir aramadan sonra, aynı yöndeki bir sonraki karşılaşmayı bulmak için   n   ,
     veya zıt yöndekini bulmak için Shift-N yazın.

  3. İmleç bir (,),[,],{,} parantezi üzerindeyken   %   yazmak, uyan diğer eş parantezi bulur.

  4. Bir satırdaki ilk 'eski'yi 'yeni' ile değiştirmek için    		:s/eski/yeni		yazın.
     Bir satırdaki tüm 'eski'leri 'yeni' ile değiştirmek için  		:s/eski/yeni/g	 	yazın.
     İki satır arasındaki öbekleri değiştirmek için 			:#,#s/eski/yeni/g 	yazın.
     									 (#'lar satır numaraları)
     Bir dosyadaki tüm karşılaşmaları değiştirmek için			:%s/eski/yeni/g 	yazın.
     Her seferinde onay sorması için 'c' ekleyin.			:%s/eski/yeni/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Ders 5.1: BIR DIŞ KOMUT ÇALIŞTIRMAK


   ** Bir dış komutu çalıştırmak için   :!      ve ardından istediğiniz dış komutu yazın. **

  1. İmleci ekranın altına götürmek için alışık olduğunuz  :  komutunu yazın. Bu size
     bir komut yazma imkanı verir.

  2. Şimdi ! (ünlem) karakterini yazın. Bu size bir dış komut çalıştırma
     imkanı verir.

  3. Örnek olarak ! karakterini takiben  ls  yazın ve <ENTER>'a basın. Bu size
     o anda bulunduğunuz dizindeki dosyaları gösterecektir. Veya ls çalışmazsa :!dir
     komutunu kullanın.

Not: Herhangi bir dış komutu bu yolla çalıştırmak mümkündür.

Not: Tüm  :   komutlarından sonra <ENTER> tuşuna basılmalıdır.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Ders 5.2: DOSYA YAZMAYA DEVAM


     ** Dosyaya yapılan değişikliği kaydetmek için, :w DOSYAİSMİ  yazın. **

  1. Bulunduğunuz dizini listelemek için  :!dir  veya  :!ls  yazın.
     Komuttan sonra <ENTER> tuşuna basıcağınızı zaten biliyorsunuz.

  2. Mevcut olmayan bir dosya ismi seçin, örneğin DENEME.

  3. Şimdi   :w DENEME   yazın (DENEME sizin seçtiğiniz dosya ismi).

  4. Bu tüm dosyayı (Vim Tutor) DENEME isminde başka bir dosyaya yazar.
     Bunu doğrulamak için,  :!dir   yazın ve yeniden bulunduğunuz dizini listeleyin.

Not: Eğer Vim'den çıkıp kaydettiğiniz DENEME dosyasını açarsanız, bunun kaydettiğiniz
     vimtutor'un gerçek bir kopyası olduğunu görürsünüz.

  5. Şimdi dosyayı şu komutları vererek silin	(MS-DOS)     :!del DENEME
  						(veya UNIX)  :!rm DENEME


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Ders 5.3: SEÇMELİ YAZ KOMUTU


	** Dosyanın bir bölümünü kaydetmek için,  :#,# w DOSYAİSMİ  yazın. **

  1. Bir kez daha bulunduğunuz dizini görmek için  :!dir  veya  :!ls  yazın,
     ardından DENEME gibi uygun bir dosya ismi seçin.

  2. İmleci bu sayfanın başına götürün ve ardından CTRL-g'ye basarak satır numarasını
     öğrenin. BU NUMARAYI UNUTMAYIN!

  3. Şimdi sayfanın sonuna gidib ve yine CTRL-g'ye basarak satır numarasını
     öğrenin. BU NUMARAYI DA UNUTMAYIN!

  4. Bir dosyaya sadece bir bölümü kaydetmek için, :#,# w DENEME yazın. #,# sizin
     baktığınız sayılar (üst,alt) ve DENEME dosyanızın ismidir.


  5. Yine,  :!dir  yazarak dosyanın orada olduğuna bakın ama SİLMEYİN.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Ders 5.4: DOSYALARI BİRLEŞTİRMEK-BÖLÜM EKLEMEK


       ** Bir dosyanın içeriğini eklemek için  :r DOSYAİSMİ   yazın. **

  1. DENEME dosyanızın önceden bulunduğundan emin olmak için  :!dir   yazın.

  2. İmleci bu sayfanın başına yerleştirin.

NOT: Adım 3'ü uyguladıktan sonra Ders 5.3'ü görüyor olacaksınız. Daha sonra bu
     derse sayfasına dönün.

  3. Şimdi DENEME sayfasını  :r DENEME  yazarak aktarın.

NOT: Aktardığınız dosya imlecinizin hemen altına eklenecektir.

  4. Dosyanın eklendiğini görmek için, geriye gidin. Ders 5.3'ten iki kopya
     olduğunu göreceksiniz; asıl ve kopya olanı.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 5 ÖZET


  1.  :!komut bir dış komut çalıştırır.

      Bazı yararlı örnekler:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  bir dizini listeler.
	  :!del DOSYA      :!rm DOSYA      -  DOSYA'yı siler.

  2.  :w DOSYAİSMİ o anki Vim dosyasını diske DOSYAİSMİ ile kaydeder.

  3.  :#,#w DOSYAİSMİ # ile # satır arasını DOSYAİSMİ ile kaydeder.

  4.  :r DOSYAİSMİ imlecin altından başlayarak DOSYAİSMİ isimli dosyanın içeriğini ekler.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Ders 6.1: AÇ KOMUTU


 ** İmlecin aşağısına bir satır açmak ve Insert kipine geçmek için   o    yazın. **

  1. İmleci aşağıdaki işaretlenmiş (--->) satıra götürün.

  2. İmlecin aşağısına bir satır açmak ve Insert kipine geçmek için
     o   (küçük harfle) yazın.

  3. Şimdi işaretlenmiş satırı kopyalayın ve Insert kipinden çıkmak için <ESC>
     tuşuna basın.

---> o  yazdıktan sonra imlec açılan satıra gidicek ve Insert kipine geçilecek.

  4. İmlecin üzerinde bir satır açmak için, basitçe büyük O yazın. Bunu aşağıdaki
     satırda deneyin.
Bu satırın üzerine bir satır açmak için imleç bu satırdayken   Shift-o   yazın.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Ders 6.2: EKLE KOMUTU


	     ** İmleçten sonra metin eklemek için   a   yazın. **

  1. İmleci aşağıdaki işaretlenmiş (--->) satırın sonuna götürmek için
     Normal Kipteyken $ yazın.

  2. İmlecin altındaki karakterden sonra metin eklemek için  a   (küçük harfle) yazın.
     (Büyük  A  satırın sonuna ekler).

  3. Şimdi ilk satırı tamamlayın. Ekle komutunun Insert kipiyle aynı işi yaptığına
     dikkat edin. Tek fark metinin eklendiği yer.
Ç.N: Eğer  a   yazarsanız imlecin altındaki karakterden hemen sonra ekleme yapabilirsiniz.
     Eğer  Shift-a  yazarsanız imleç satır sonuna gidecek ve hemen ardına ekleme yapabileceksiniz.
     Doğal olarak bizim örneğimizde Shift-A'yı kullanmak daha güzel olacaktır. Önce $ ardınan a
     yazmamıza gerek kalmaz.

---> Bu satırda çalışabilirsiniz
---> Bu satırda çalışabilirsiniz. Çalışırken metin eklemeyi kullanın.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Ders 6.3: BİR BAŞKA DEĞİŞTİR KOMUTU


      ** Birden fazla karakter değiştirmek için büyük R yazın. **

  1. İmleci aşağıdaki işaretli (--->) satırların ilkine götürün.

  2. İmleci işaretli olan ikinci satırdakinden farklı olan ilk kelimenin
     başına götürün. ( "tuşları" kelimesi )

  3. Şimdi büyük R yazın ve ilk satırı ikincisinin aynısı yapmak için
     eski metinin üzerinden yenisini yazın. Siz yazdıkça metin değişecektir.

---> Bu satırı ikincisinin aynısı yapmak için tuşları kullanın.
---> Bu satırı ikincisinin aynısı yapmak için R yazın ve metini girin.

  4. Çıkmak için <ESC> tuşuna bastığınızda, değişmemiş metinin aynen
     kaldığına dikkat edin.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Ders 6.4: SET SEÇENEĞİ

	  ** Bir seçenek ayarlayın , böylece bir arama veya değiştirme **
	  ** durumu görmezden gelsin.				       **

  1. 'ignore' kelimesini aramak için:
     /ignore
     yazın.
     Bunu   n  tuşuna basarak birkaç kez tekrar edin

  2. :set ic    yazarak 'ic' (Ignore case) ayarını seçin.

  3. Tekrar  n  tuşuna basarak 'ignore' kelimseini arayın.
     n   tuşuna basarak bu aramayı birden çok defa tekrar edin.

  4. :set hls is   yazarak 'hlsearch' ve 'incsearch' ayarlarını seçin.

  5. /ignore  yazarak arama komutunu tekrar verin ve ne olacağını görün.

  6. Karşılaşma vurgularını iptal etmek için,
     :nohlsearch   yazın.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       DERS 6 ÖZET


  1. o   yazmak imlecin altında bir satır açar ve imleci bu açılmış satıra
     Insert kipinde yerleştirir.
     Büyük O  yazmak imlecin üzerinde bir satır açar.

  2. İmlecin üzerindeki karakterden hemen sonra metin eklemek için  a   yazın.
     Büyük A  yazmak hemen satır sonuna giderek metin eklemeye hazır hale getirir.

  3. Büyük  R   yazmak Değiştir kipine girer ve çıkmak için <ESC> tuşuna
     basılana kadar sizi bu kipte bırakır.

  4. ":set xxx"  yazmak  "xxx" seçeneğini ayarlar.









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Ders 7: ÇEVİRİMİÇİ (ON-LINE) YARDIM KOMUTLARI


		      ** Çevirimiçi yardım sistemini kullanın **

  Vim geniş bir çevirimiçi yardım sistemine sahiptir. Başlamak için şu üçünü
  deneyebilirsiniz.
	- (eğer sahipseniz) <HELP> tuşuna basın
	- (eğer sahipseniz) <F1> tuşuna basın
	- :help yazın ve <ENTER> tuşuna basın

  Yardım penceresini kapatmak için  :q yazıp <ENTER> tuşuna basın.

  ":help" komutuna değişken (argüman) vererek herhangi bir konu hakkında
  yardım alabilirsini. Şunları deneyin (<ENTER> tuşuna basmayı unutmayın) :

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Ders 8: BİR BAŞLANGIÇ BETİĞİ OLUŞTURUN

			  ** Switch on Vim features **
			  ** Vim'in özelliklerine bakın **

  Vim Vi'dan çok daha fazla özelliğe sahiptir fakat birçoğu öntanımlı olarak kapalıdır.
  Daha fazla özellik kullanabilmek için bir "vimrc" dosyası oluşturmalısınız.

  1. "vimrc" dosyasını düzenlemeye başlayın, bu işletim sisteminize göre değişir:

  Ç.N: (Bu komutu verdiğinizde eğer yoksa home dizininizde .vimrc isimli bir dosya oluşacaktır.
  Bu dosyaya vimrc örnek dosyasını aktarmak için 2. adımdaki komutu kullanacaksınız. Bu yüzden
  vimrc dosyanızı düzenlemeden önce aşağıdaki adımların hepsini okuyun ve komutları hatırlayın.)

	:edit ~/.vimrc			Unix için
	:edit $VIM/_vimrc		MS-Windows için

  2. Şimdi örnek "vimrc" dosyasını okuyun

	:read $VIMRUNTIME/vimrc_example.vim

  3. Dosyayı kaydedin ve çıkın

	:write
	:q

  Vim'i bir dahaki sefer çalıştırdığınızda sözdizim (sytax) vurgusu kullanılacaktır.
  Tüm tercih ettiğiniz ayarları bu "vimrc" dosyasına ekleyebilirsiniz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Burada Vim Eğitmeni tamamlanmış oldu. Eğitmendeki amaç Vim düzenleyicisi hakkında
  kısa bir bilgi vermek ve onu kolayca kullanmanızı sağlamaktı. Vim'in tamamını öğretmek
  çok zordur zira Vim birçok komuta sahiptir.Bundan sonra :help user-manual" komutu ile
  kullanıcı kılavuzunu okumalısınız.

  Daha fazla okuma ve çalışma için şu kitabı öneriyoruz:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
  Tamamiyle Vim için hazırlanmış ilk kitap. Özellikle ilk kullanıcılar için uygun.
  Kitapta birçok örnek ve resim var.
  http://iccf-holland.org/click5.html adresine bakabilirsiniz.

  Bu kitap daha eskidir ve Vim'den daha çok Vi içindir ancak tavsiye edilir:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
  Vi hakkında bilmek isteyeceğiniz neredeyse herşeyin bulunduğu bir kitap.
  6.Basım aynı zamanda Vim hakkında bilgi de içermekte.

  Bu eğitmen Michael C. Pierce ve Robert K. Ware tarafından yazıldı,
  Charles Smith tarafından sağlanan fikirlerle Colorado School Of Mines,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Vim için değiştiren : Bram Moolenaar.

  Türkçeye çeviren    : Serkan "heartsmagic" Çalış    Yıl 2005
  E-mail	      : adresimeyaz (at) yahoo com

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z|)>�z�zvim80/tutor/tutor.zh_tw.utf-8nu�[���===============================================================================
=      歡     迎     閱     讀   《 V I M  教  程 》   ──     版本 1.5      =
===============================================================================
     vim 是一個具有很多命令的功能非常強大的編輯器。限于篇幅,在本教程當中
     不就詳細介紹了。本教程的設計目標是講述一些必要的基本命令,而掌握好這
     些命令,您就能夠很容易將vim當作一個通用的萬能編輯器來使用了。

     完成本教程的內容大約需要25-30分鐘,取決于您訓練的時間。

     每一節的命令操作將會更改本文。推薦您復制本文的一個副本,然後在副本上
     進行訓練(如果您是通過"vimtutor"來啟動教程的,那麼本文就已經是副本了)。

     切記一點︰本教程的設計思路是在使用中進行學習的。也就是說,您需要通過
     執行命令來學習它們本身的正確用法。如果您只是閱讀而不操作,那麼您可能
     會很快遺忘這些命令的!

     好了,現在請確定您的Shift-Lock(大小寫鎖定鍵)還沒有按下,然後按鍵盤上
     的字母鍵 j 足夠多的次數來移動光標,直到第一節的內容能夠完全充滿屏幕。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一講第一節︰移動光標


   ※※ 要移動光標,請依照說明分別按下 h、j、k、l 鍵。 ※※

	     ^
	     k		    提示︰ h 的鍵位于左邊,每次按下就會向左移動。
       < h	 l >		   l 的鍵位于右邊,每次按下就會向右移動。
	     j			   j 鍵看起來很象一支尖端方向朝下的箭頭。
	     v

  1. 請隨意在屏幕內移動光標,直至您覺得舒服為止。

  2. 按下下行鍵(j),直到出現光標重復下行。

---> 現在您應該已經學會如何移動到下一講吧。

  3. 現在請使用下行鍵,將光標移動到第一講第二節。

提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
      然後再次從鍵盤輸入您想要的命令。

提示︰光標鍵應當也能正常工作的。但是使用hjkl鍵,在習慣之後您就能夠快速
      地在屏幕內四處移動光標了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一講第二節︰VIM的進入和退出


  !! 特別提示︰敬請閱讀完整本一節的內容,然後才能執行以下所講解的命令。

  1. 請按<ESC>鍵(這是為了確保您處在正常模式)。

  2. 然後輸入︰			:q! <回車>

---> 這種方式的退出編輯器絕不會保存您進入編輯器以來所做的改動。
     如果您想保存更改再退出,請輸入︰
				:wq  <回車>

  3. 如果您看到了命令行提示符,請輸入能夠帶您回到本教程的命令,那就是︰

		vimtutor <回車>

     通常情況下您也可以用這種方式︰

		vim tutor <回車>

---> 這裡的 'vim' 表示進入vim編輯器,而 'tutor'則是您準備要編輯的文件。

  4. 如果您自信已經牢牢記住了這些步驟的話,請從步驟1執行到步驟3退出,然
     後再次進入編輯器。接著將光標移動到第一講第三節來繼續我們的教程講解。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一講第三節︰文本編輯之刪除


   ** 在正常(Normal)模式下,可以按下 x 鍵來刪除光標所在位置的字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 為了修正輸入錯誤,請將光標移至準備刪除的字符的位置處。

  3. 然後按下 x 鍵將錯誤字符刪除掉。

  4. 重復步驟2到步驟4,直到句子修正為止。

---> The ccow jumpedd ovverr thhe mooon.

  5. 好了,該行已經修正了,下一節內容是第一講第四節。

特別提示︰在您瀏覽本教程時,不要強行記憶。記住一點︰在使用中學習。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第一講第四節︰文本編輯之插入


	 ** 在正常模式下,可以按下 i 鍵來插入文本。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 為了使得第一行內容雷同于第二行,請將光標移至文本第一個字符準備插入
     的位置。

  3. 然後按下 i 鍵,接著輸入必要的文本字符。

  4. 所有文本都修正完畢,請按下 <ESC> 鍵返回正常模式。
     重復步驟2至步驟4以便修正句子。

---> There is text misng this .
---> There is some text missing from this line.

  5. 如果您對文本插入操作已經很滿意,請接著閱讀下面的小結。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第一講小結


  1. 光標在屏幕文本中的移動既可以用箭頭鍵,也可以使用 hjkl 字母鍵。
	 h (左移)	j (下行)       k (上行)	    l (右移)

  2. 欲進入vim編輯器(從命令行提示符),請輸入︰vim 文件名 <回車>

  3. 欲退出vim編輯器,請輸入以下命令放棄所有修改︰

	<ESC>   :q!	 <回車>

     或者輸入以下命令保存所有修改︰

	<ESC>   :wq	 <回車>

  4. 在正常模式下刪除光標所在位置的字符,請按︰ x

  5. 在正常模式下要在光標所在位置開始插入文本,請按︰

	 i     輸入必要文本	<ESC>

特別提示︰按下 <ESC> 鍵會帶您回到正常模式或者取消一個不期望或者部分完成
的命令。

好了,第一講到此結束。下面接下來繼續第二講的內容。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第二講第一節︰刪除類命令


	    ** 輸入 dw 可以從光標處刪除至一個單字/單詞的末尾。**

  1. 請按下 <ESC> 鍵確保您處于正常模式。

  2. 請將光標移動到本節中下面標記有 ---> 的那一行。

  3. 請將光標移至準備要刪除的單詞的開始。

  4. 接著輸入 dw 刪除掉該單詞。

  特別提示︰您所輸入的 dw 會在您輸入的同時出現在屏幕的最後一行。如果您輸
  入有誤,請按下 <ESC> 鍵取消,然後重新再來。

---> There are a some words fun that don't belong paper in this sentence.

  5. 重復步驟3至步驟4,直至句子修正完畢。接著繼續第二講第二節內容。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第二講第二節︰其他刪除類命令


		   ** 輸入 d$ 從當前光標刪除到行末。**

  1. 請按下 <ESC> 鍵確保您處于正常模式。

  2. 請將光標移動到本節中下面標記有 ---> 的那一行。

  3. 請將光標移動到該行的尾部(也就是在第一個點號‘.’後面)。

  4. 然後輸入 d$ 從光標處刪至當前行尾部。

---> Somebody typed the end of this line twice. end of this line twice.


  5. 請繼續學習第二講第三節就知道是怎麼回事了。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第二講第三節︰關于命令和對象


  刪除命令 d 的格式如下︰

	 [number]   d	object	    或者     d	 [number]   object

  其意如下︰
    number - 代表執行命令的次數(可選項,缺省設置為 1 )。
    d - 代表刪除。
    object - 代表命令所要操作的對象(下面有相關介紹)。

  一個簡短的對象列表︰
    w - 從當前光標當前位置直到單字/單詞末尾,包括空格。
    e - 從當前光標當前位置直到單字/單詞末尾,但是 *不* 包括空格。
    $ - 從當前光標當前位置直到當前行末。

特別提示︰
    對于勇于探索者,請在正常模式下面僅按代表相應對象的鍵而不使用命令,則
    將看到光標的移動正如上面的對象列表所代表的一樣。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		第二講第四節︰對象命令的特殊情況


	       ** 輸入 dd 可以刪除整一個當前行。 **

  鑒于整行刪除的高頻度,VIM 的設計者決定要簡化整行刪除,僅需要在同一行上
  擊打兩次 d 就可以刪除掉光標所在的整行了。

  1. 請將光標移動到本節中下面的短句段落中的第二行。
  2. 輸入 dd 刪除該行。
  3. 然後移動到第四行。
  4. 接著輸入 2dd (還記得前面講過的 number-command-object 嗎?) 刪除兩行。

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 第二講第五節︰撤消類命令


	 ** 輸入 u 來撤消最後執行的命令,輸入 U 來修正整行。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行,並將其置于第一個錯誤
     處。
  2. 輸入 x 刪除第一個不想保留的字母。
  3. 然後輸入 u 撤消最後執行的(一次)命令。
  4. 這次要使用 x 修正本行的所有錯誤。
  5. 現在輸入一個大寫的 U ,恢復到該行的原始狀態。
  6. 接著多次輸入 u 以撤消 U 以及更前的命令。
  7. 然後多次輸入 CTRL-R (先按下 CTRL 鍵不放開,接著輸入 R 鍵) ,這樣就
     可以執行恢復命令,也就是撤消掉撤消命令。

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. 這些都是非常有用的命令。下面是第二講的小結了。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第二講小結


  1. 欲從當前光標刪除至單字/單詞末尾,請輸入︰dw

  2. 欲從當前光標刪除至當前行末尾,請輸入︰d$

  3. 欲刪除整行,請輸入︰dd

  4. 在正常模式下一個命令的格式是︰

       [number]   command   object     或者     command	[number]   object
     其意是︰
       number - 代表的是命令執行的次數
       command - 代表要做的事情,比如 d 代表刪除
       object - 代表要操作的對象,比如 w 代表單字/單詞,$ 代表到行末等等。
		$ (to the end of line), etc.

  5. 欲撤消以前的操作,請輸入︰u (小寫的u)
     欲撤消在一行中所做的改動,請輸入︰U (大寫的U)
     欲撤消以前的撤消命令,恢復以前的操作結果,請輸入︰CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 第三講第一節︰置入類命令


	       ** 輸入 p 將最後一次刪除的內容置入光標之後 **

  1. 請將光標移動到本節中下面示范段落的首行。

  2. 輸入 dd 將該行刪除,這樣會將該行保存到vim的緩沖區中。

  3. 接著將光標移動到準備置入的位置的上方。記住︰是上方哦。

  4. 然後在正常模式下(<ESC>鍵進入),輸入 p 將該行粘貼置入。

  5. 重復步驟2至步驟4,將所有的行依序放置到正確的位置上。

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第三講第二節︰替換類命令


	  ** 輸入 r 和一個字符替換光標所在位置的字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 請移動光標到第一個錯誤的適當位置。

  3. 接著輸入 r ,這樣就能將錯誤替換掉了。

  4. 重復步驟2和步驟3,直到第一行已經修改完畢。

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. 然後我們繼續學校第三講第三節。

特別提示︰切記您要在使用中學習,而不是在記憶中學習。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第三講第三節︰更改類命令


	   ** 要改變一個單字/單詞的部分或者全部,請輸入 cw **

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 接著把光標放在單詞 lubw 的字母 u 的位置那裡。

  3. 然後輸入 cw 就可以修正該單詞了(在本例這裡是輸入 ine 。)

  4. 最後按 <ESC> 鍵,然後光標定位到下一個錯誤第一個準備更改的字母處。

  5. 重復步驟3和步驟4,直到第一個句子完全雷同第二個句子。

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

提示︰請注意 cw 命令不僅僅是替換了一個單詞,也讓您進入文本插入狀態了。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第三講第四節︰使用c指令的其他更改類命令


	     ** 更改類指令可以使用同刪除類命令所使用的對象參數。**

  1. 更改類指令的工作方式跟刪除類命令是一致的。操作格式是︰

       [number]   c   object	   或者	    c	[number]   object

  2. 對象參數也是一樣的,比如 w 代表單字/單詞,$代表行末等等。

  3. 請將光標移動到本節中下面標記有 ---> 的第一行。

  4. 接著將光標移動到第一個錯誤處。

  5. 然後輸入 c$ 使得該行剩下的部分更正得同第二行一樣。最後按 <ESC> 鍵。

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第三講小結


  1. 要重新置入已經刪除的文本內容,請輸入小寫字母 p。該操作可以將已刪除
     的文本內容置于光標之後。如果最後一次刪除的是一個整行,那麼該行將置
     于當前光標所在行的下一行。

  2. 要替換光標所在位置的字符,請輸入小寫的 r 和要替換掉原位置字符的新字
     符即可。

  3. 更改類命令允許您改變指定的對象,從當前光標所在位置直到對象的末尾。
     比如輸入 cw 可以替換當前光標到單詞的末尾的內容;輸入 c$ 可以替換當
     前光標到行末的內容。

  4. 更改類命令的格式是︰

	 [number]   c	object	      或者	c   [number]   object

下面我們繼續學習下一講。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第四講第一節︰定位及文件狀態


  ** 輸入 CTRL-g 顯示當前編輯文件中當前光標所在行位置以及文件狀態信息。
     輸入 SHIFT-G 則直接跳轉到文件中的某一指定行。**

  提示︰切記要先通讀本節內容,之後才可以執行以下步驟!!!

  1. 按下 CTRL 鍵不放開然後按 g 鍵。然後就會看到頁面最底部出現一個狀態信
     息行,顯示的內容是當前編輯的文件名和文件的總行數。請記住步驟3的行號。

  2. 按下 SHIFT-G 鍵可以使得當前光標直接跳轉到文件最後一行。

  3. 輸入您曾停留的行號,然後按下 SHIFT-G。這樣就可以返回到您第一次按下
     CTRL-g 時所在的行好了。注意︰輸入行號時,行號是不會在屏幕上顯示出來
     的。

  4. 如果願意,您可以繼續執行步驟1至步驟三。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第四講第二節︰搜索類命令


     ** 輸入 / 以及尾隨的字符串可以用以在當前文件中查找該字符串。**

  1. 在正常模式下輸入 / 字符。您此時會注意到該字符和光標都會出現在屏幕底
     部,這跟 : 命令是一樣的。

  2. 接著輸入 errroor <回車>。那個errroor就是您要查找的字符串。

  3. 要查找同上一次的字符串,只需要按 n 鍵。要向相反方向查找同上一次的字
     符串,請輸入 Shift-N 即可。

  4. 如果您想逆向查找字符串,請使用 ? 代替 / 進行。

---> When the search reaches the end of the file it will continue at the start.

  "errroor" is not the way to spell error;  errroor is an error.

  提示︰如果查找已經到達文件末尾,查找會自動從文件頭部繼續查找。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   第四講第三節︰配對括號的查找


	      ** 按 % 可以查找配對的括號 )、]、}。**

  1. 把光標放在本節下面標記有 --> 那一行中的任何一個 (、[ 或 { 處。

  2. 接著按 % 字符。

  3. 此時光標的位置應當是在配對的括號處。

  4. 再次按 % 就可以跳回配對的第一個括號處。

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

提示︰在程序調試時,這個功能用來查找不配對的括號是很有用的。






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第四講第四節︰修正錯誤的方法之一


		** 輸入 :s/old/new/g 可以替換 old 為 new。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 輸入 :s/thee/the <回車> 。請注意該命令只改變光標所在行的第一個匹配
     串。

  3. 輸入 :s/thee/the/g	則是替換全行的匹配串。

---> the best time to see thee flowers is in thee spring.

  4. 要替換兩行之間出現的每個匹配串,請輸入 :#,#s/old/new/g (#,#代表的是
     兩行的行號)。輸入 :%s/old/new/g 則是替換整個文件中的每個匹配串。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第四講小結


  1. Ctrl-g 用于顯示當前光標所在位置和文件狀態信息。Shift-G 用于將光標跳
     轉至文件最後一行。先敲入一個行號然後按 Shift-G 則是將光標移動至該行
     號代表的行。

  2. 輸入 / 然後緊隨一個字符串是則是在當前所編輯的文檔中向後查找該字符串。
     輸入問號 ? 然後緊隨一個字符串是則是在當前所編輯的文檔中向前查找該字
     符串。完成一次查找之後按 n 鍵則是重復上一次的命令,可在同一方向上查
     找下一個字符串所在;或者按 Shift-N 向相反方向查找下該字符串所在。

  3. 如果光標當前位置是括號(、)、[、]、{、},按 % 可以將光標移動到配對的
     括號上。

  4. 在一行內替換頭一個字符串 old 為新的字符串 new,請輸入  :s/old/new
     在一行內替換所有的字符串 old 為新的字符串 new,請輸入  :s/old/new/g
     在兩行內替換所有的字符串 old 為新的字符串 new,請輸入  :#,#s/old/new/g
     在文件內替換所有的字符串 old 為新的字符串 new,請輸入  :%s/old/new/g
     進行全文替換時詢問用戶確認每個替換需添加 c 選項,請輸入 :%s/old/new/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		第五講第一節︰在 VIM 內執行外部命令的方法


	   ** 輸入 :! 然後緊隨著輸入一個外部命令可以執行該外部命令。**

  1. 按下我們所熟悉的 : 命令設置光標到屏幕底部。這樣就可以讓您輸入命令了。

  2. 接著輸入感嘆號 ! 這個字符,這樣就允許您執行外部的 shell 命令了。

  3. 我們以 ls 命令為例。輸入 !ls <回車> 。該命令就會列舉出您當前目錄的
     內容,就如同您在命令行提示符下輸入 ls 命令的結果一樣。如果 !ls 沒起
     作用,您可以試試 :!dir 看看。

---> 提示︰ 所有的外部命令都可以以這種方式執行。

---> 提示︰ 所有的 : 命令都必須以 <回車> 告終。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第五講第二節︰關于保存文件的更多信息


	     ** 要將對文件的改動保存到文件中,請輸入 :w FILENAME **

  1. 輸入 :!dir 或者 :!ls 獲知當前目錄的內容。您應當已知道最後還得敲
     <回車> 吧。

  2. 選擇一個尚未存在文件名,比如 TEST 。

  3. 接著輸入 :w TEST  (此處 TEST 是您所選擇的文件名。)

  4. 該命令會以 TEST 為文件名保存整個文件 (VIM 教程)。為了確保正確保存,
     請再次輸入 :!dir 查看您的目錄列表內容。

---> 請注意︰如果您退出 VIM 然後在以文件名 TEST 為參數進入,那麼該文件內
     容應該同您保存時的文件內容是完全一樣的。

  5. 現在您可以通過輸入 :!rm TEST 來刪除 TEST 文件了。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    第五講第三節︰一個具有選擇性的保存命令


		** 要保存文件的部分內容,請輸入 :#,# w FILENAME **

  1. 再來執行一次 :!dir 或者 :!ls 獲知當前目錄的內容,然後選擇一個合適的
     不重名的文件名,比如 TEST 。

  2. 接著將光標移動至本頁的最頂端,然後按 CTRL-g 找到該行的行號。別忘了
     行號哦。

  3. 接著把光標移動至本頁的最底端,再按一次 CTRL-g 。也別忘了這個行好哦。

  4. 為了只保存文章的某個部分,請輸入 :#,# w TEST 。這裡的 #,# 就是上面
     要求您記住的行號(頂端行號,底端行號),而 TEST 就是選定的文件名。

  5. 最後,用 :!dir 確認文件是否正確保存。但是這次先別刪除掉。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   第五講第四節︰提取和合並文件


       ** 要向當前文件中插入另外的文件的內容,請輸入 :r FILENAME **

  1. 請鍵入 :!dir 確認您前面創建的 TEST 文件還在。

  2. 然後將光標移動至當前頁面的頂端。

特別提示︰ 執行步驟3之後您將看到第五講第三節,請屆時再往下移動回到這裡來。

  3. 接著通過 :r TEST 將前面創建的名為 TEST 的文件提取進來。

特別提示︰您所提取進來的文件將從光標所在位置處開始置入。

  4. 為了確認文件已經提取成功,移動光標回到原來的位置就可以注意有兩份第
     五講第三節,一份是原本,另外一份是來自文件的副本。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第五講小結


  1. :!command 用于執行一個外部命令 command。

     請看一些實際例子︰
	 :!dir		-  用于顯示當前目錄的內容。
	 :!rm FILENAME	-  用于刪除名為 FILENAME 的文件。

  2. :w FILENAME  可將當前 VIM 中正在編輯的文件保存到名為 FILENAME
     的文件中。

  3. :#,#w FILENAME 可將當前編輯文件第 # 行至第 # 行的內容保存到文件
     FILENAME 中。

  4. :r FILENAME 可提取磁盤文件 FILENAME 並將其插入到當前文件的光標位置
     後面。







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 第六講第一節︰打開類命令


	 ** 輸入 o 將在光標的下方打開新的一行並進入插入模式。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 接著輸入小寫的 o 在光標 *下方* 打開新的一行並進入插入模式。

  3. 然後復制標記有 ---> 的行並按 <ESC> 鍵退出插入模式而進入正常模式。

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. 為了在光標 *上方* 打開新的一行,只需要輸入大寫的 O 而不是小寫的 o
     就可以了。請在下行測試一下吧。當光標處在在該行上時,按 Shift-O可以
     在該行上方新開一行。

Open up a line above this by typing Shift-O while the cursor is on this line.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第六講第二節︰光標後插入類命令


		     ** 輸入 a 將可在光標之後插入文本。 **

  1. 請在正常模式下通過輸入 $ 將光標移動到本節中下面標記有 ---> 的第一行
     的末尾。

  2. 接著輸入小寫的 a 則可在光標之後插入文本了。大寫的 A 則可以直接在行
     末插入文本。

提示︰輸入大寫 A 的操作方法可以在行末插入文本,避免了輸入 i,光標定位到
      最後一個字符,輸入的文本,<ESC> 回復正常模式,箭頭右鍵移動光標以及
      x 刪除當前光標所在位置字符等等諸多繁雜的操作。

  3. 操作之後第一行就可以補充完整了。請注意光標後插入文本與插入模式是基
     本完全一致的,只是文本插入的位置定位稍有不同罷了。

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    第六講第三節︰另外一個置換類命令的版本


		      ** 輸入大寫的 R 可連續替換多個字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 移動光標到第一行中不同于標有 ---> 的第二行的第一個單詞的開始,即單
     詞 last 處。

  3. 然後輸入大寫的 R 開始把第一行中的不同于第二行的剩余字符逐一輸入,就
     可以全部替換掉原有的字符而使得第一行完全雷同第二行了。

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. 請注意︰如果您按 <ESC> 退出置換模式回復正常模式,尚未替換的文本將仍
     然保持原狀。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    第六講第四節︰設置類命令的選項


		  ** 設置可使查找或者替換可忽略大小寫的選項 **


  1. 要查找單詞 ignore 可在正常模式下輸入 /ignore 。要重復查找該詞,可以
     重復按 n 鍵。

  2. 然後設置 ic 選項(ic就是英文忽略大小寫Ignore Case的首字母縮寫詞),即
     輸入︰
	:set ic

  3. 現在可以通過鍵入 n 鍵再次查找單詞 ignore。重復查找可以重復鍵入 n 鍵。

  4. 然後設置 hlsearch 和 incsearch 這兩個選項,輸入以下內容︰
     :set hls is

  5. 現在可以再次輸入查找命令,看看會有什麼效果︰
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第六講小結


  1. 輸入小寫的 o 可以在光標下方打開新的一行並將光標置于新開的行首,進入
     插入模式。
     輸入大寫的 O 可以在光標上方打開新的一行並將光標置于新開的行首,進入
     插入模式。

  2. 輸入小寫的 a 可以在光標所在位置之後插入文本。
     輸入大寫的 A 可以在光標所在行的行末之後插入文本。

  3. 輸入大寫的 R 將進入替換模式,直至按 <ESC> 鍵退出替換模式而進入正常
     模式。

  4. 輸入 :set xxx 可以設置 xxx 選項。









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第七講︰在線幫助命令

		      ** 使用在線幫助系統 **

  Vim 擁有一個細致全面的在線幫助系統。要啟動該幫助系統,請選擇如下三種方
  法之一︰
	- 按下 <HELP> 鍵 (如果鍵盤上有的話)
	- 按下 <F1> 鍵 (如果鍵盤上有的話)
	- 輸入	:help <回車>

  輸入 :q <回車> 可以關閉幫助窗口。

  提供一個正確的參數給":help"命令,您可以找到關于該主題的幫助。請試驗以
  下參數(可別忘了按回車鍵哦。:)︰

	  :help w <回車>
	  :help c_<T <回車>
	  :help insert-index <回車>
	  :help user-manual <回車>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第八講︰創建一個啟動腳本

			 ** 啟用vim的功能 **

  Vim的功能特性要比vi多得多,但大部分功能都沒有缺省激活。為了啟動更多的
  功能,您得創建一個vimrc文件。

  1. 開始編輯vimrc文件,這取決于您所使用的操作系統︰

     :edit ~/.vimrc		這是Unix系統所使用的命令
     :edit $VIM/_vimrc		這是Windows系統所使用的命令

  2. 接著導入vimrc范例文件︰

     :read $VIMRUNTIME/vimrc_example.vim

  3. 保存文件,命令為︰

     :write

  在下次您啟動vim的時候,編輯器就會有了語法高亮的功能。您可以繼續把您喜
  歡的其它功能設置添加到這個vimrc文件中。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  vim 教程到此結束。本教程只是為了簡明地介紹一下vim編輯器,但已足以讓您
  很容易學會使用本編輯器了。毋庸質疑,vim還有很多很多的命令,本教程所介
  紹的還差得遠著呢。所以您要精通的話,還望繼續努力哦。下一步您可以閱讀
  vim手冊,使用的命令是︰
	:help user-manual

  為了更進一步的參考和學習,以下這本書值得推薦︰

	Vim - Vi Improved - 作者︰Steve Oualline
	出版社︰New Riders

  這是第一本完全講解vim的書籍。對于初學者特別有用。其中還包含有大量實例
  和圖示。欲知詳情,請訪問 http://iccf-holland.org/click5.html

  以下這本書比較老了而且內容主要是vi而不是vim,但是也值得推薦︰

	Learning the Vi Editor - 作者︰Linda Lamb
	出版社︰O'Reilly & Associates Inc.

  這是一本不錯的書,通過它您幾乎能夠了解到全部vi能夠做到的事情。此書的第
  六個版本也包含了一些關于vim的信息。

  本教程是由來自Calorado School of Minese的Michael C. Pierce、Robert K.
  Ware 所編寫的,其中來自Colorado State University的Charles Smith提供了
  很多創意。編者通信地址是︰

	bware@mines.colorado.edu

  本教程已由Bram Moolenaar專為vim進行修訂。



  譯制者附言︰
  ===========
      簡體中文教程翻譯版之譯制者為梁昌泰 <beos@turbolinux.com.cn>,還有
      另外一個聯系地址︰linuxrat@gnuchina.org。

      繁體中文教程是從簡體中文教程翻譯版使用 Debian GNU/Linux 中文項目小
      組的于廣輝先生編寫的中文漢字轉碼器  autoconvert 轉換而成的,並對轉
      換的結果做了一些細節的改動。

  變更記錄︰
  =========
      2002年08月30日 梁昌泰 <beos@turbolinux.com.cn>
      感謝 RMS@SMTH 的指正,將多處錯誤修正。

      2002年04月22日 梁昌泰 <linuxrat@gnuchina.org>
      感謝 xuandong@sh163.net 的指正,將兩處錯別字修正。

      2002年03月18日 梁昌泰 <linuxrat@gnuchina.org>
      根據Bram Moolenaar先生在2002年03月16日的來信要求,將vimtutor1.4中譯
      版升級到vimtutor1.5。

      2001年11月15日 梁昌泰 <linuxrat@gnuchina.org>
      將vimtutor1.4中譯版提交給Bram Moolenaar和Sven Guckes。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�3�vim80/tutor/tutor.vimnu�[���" Vim tutor support file
" Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
" Maintainer: Bram Moolenaar
" Last Change:	2018 Apr 11

" This Vim script is used for detecting if a translation of the
" tutor file exist, i.e., a tutor.xx file, where xx is the language.
" If the translation does not exist, or no extension is given,
" it defaults to the English version.

" It is invoked by the vimtutor shell script.

" 1. Build the extension of the file, if any:
let s:ext = ""
if strlen($xx) > 1
  let s:ext = "." . $xx
else
  let s:lang = ""
  " Check that a potential value has at least two letters.
  " Ignore "1043" and "C".
  if exists("v:lang") && v:lang =~ '\a\a'
    let s:lang = v:lang
  elseif $LC_ALL =~ '\a\a'
    let s:lang = $LC_ALL
  elseif $LANG =~ '\a\a'
    let s:lang = $LANG
  endif
  if s:lang != ""
    " Remove "@euro" (ignoring case), it may be at the end
    let s:lang = substitute(s:lang, '\c@euro', '', '')
    " On MS-Windows it may be German_Germany.1252 or Polish_Poland.1250.  How
    " about other languages?
    if s:lang =~ "German"
      let s:ext = ".de"
    elseif s:lang =~ "Polish"
      let s:ext = ".pl"
    elseif s:lang =~ "Slovak"
      let s:ext = ".sk"
    elseif s:lang =~ "Serbian"
      let s:ext = ".sr"
    elseif s:lang =~ "Czech"
      let s:ext = ".cs"
    elseif s:lang =~ "Dutch"
      let s:ext = ".nl"
    elseif s:lang =~ "Bulgarian"
      let s:ext = ".bg"
    else
      let s:ext = "." . strpart(s:lang, 0, 2)
    endif
  endif
endif

" Somehow ".ge" (Germany) is sometimes used for ".de" (Deutsch).
if s:ext =~? '\.ge'
  let s:ext = ".de"
endif

if s:ext =~? '\.en'
  let s:ext = ""
endif

" The japanese tutor is available in two encodings, guess which one to use
" The "sjis" one is actually "cp932", it doesn't matter for this text.
if s:ext =~? '\.ja'
  if &enc =~ "euc"
    let s:ext = ".ja.euc"
  elseif &enc != "utf-8"
    let s:ext = ".ja.sjis"
  endif
endif

" The korean tutor is available in two encodings, guess which one to use
if s:ext =~? '\.ko'
  if &enc != "utf-8"
    let s:ext = ".ko.euc"
  endif
endif

" The Chinese tutor is available in three encodings, guess which one to use
" This segment is from the above lines and modified by
" Mendel L Chan <beos@turbolinux.com.cn> for Chinese vim tutorial
" When 'encoding' is utf-8, choose between China (simplified) and Taiwan
" (traditional) based on the language, suggested by Alick Zhao.
if s:ext =~? '\.zh'
  if &enc =~ 'big5\|cp950'
    let s:ext = ".zh.big5"
  elseif &enc != 'utf-8'
    let s:ext = ".zh.euc"
  elseif s:ext =~? 'zh_tw' || (exists("s:lang") && s:lang =~? 'zh_tw')
    let s:ext = ".zh_tw"
  else
    let s:ext = ".zh_cn"
  endif
endif

" The Polish tutor is available in two encodings, guess which one to use.
if s:ext =~? '\.pl'
  if &enc =~ 1250
    let s:ext = ".pl.cp1250"
  endif
endif

" The Turkish tutor is available in two encodings, guess which one to use
if s:ext =~? '\.tr'
  if &enc == "iso-8859-9"
    let s:ext = ".tr.iso9"
  endif
endif

" The Greek tutor is available in three encodings, guess what to use.
" We used ".gr" (Greece) instead of ".el" (Greek); accept both.
if s:ext =~? '\.gr\|\.el'
  if &enc == "iso-8859-7"
    let s:ext = ".el"
  elseif &enc == "utf-8"
    let s:ext = ".el.utf-8"
  elseif &enc =~ 737
    let s:ext = ".el.cp737"
  endif
endif

" The Slovak tutor is available in three encodings, guess which one to use
if s:ext =~? '\.sk'
  if &enc =~ 1250
    let s:ext = ".sk.cp1250"
  endif
endif

" The Slovak tutor is available in two encodings, guess which one to use
" Note that the utf-8 version is the original, the cp1250 version is created
" from it.
if s:ext =~? '\.sr'
  if &enc =~ 1250
    let s:ext = ".sr.cp1250"
  endif
endif

" The Czech tutor is available in three encodings, guess which one to use
if s:ext =~? '\.cs'
  if &enc =~ 1250
    let s:ext = ".cs.cp1250"
  endif
endif

" The Russian tutor is available in three encodings, guess which one to use.
if s:ext =~? '\.ru'
  if &enc =~ '1251'
    let s:ext = '.ru.cp1251'
  elseif &enc =~ 'koi8'
    let s:ext = '.ru'
  endif
endif

" The Hungarian tutor is available in three encodings, guess which one to use.
if s:ext =~? '\.hu'
  if &enc =~ 1250
    let s:ext = ".hu.cp1250"
  elseif &enc =~ 'iso-8859-2'
    let s:ext = '.hu'
  endif
endif

" The Croatian tutor is available in three encodings, guess which one to use.
if s:ext =~? '\.hr'
  if &enc =~ 1250
    let s:ext = ".hr.cp1250"
  elseif &enc =~ 'iso-8859-2'
    let s:ext = '.hr'
  endif
endif

" Esperanto is only available in utf-8
if s:ext =~? '\.eo'
  let s:ext = ".eo.utf-8"
endif
" Vietnamese is only available in utf-8
if s:ext =~? '\.vi'
  let s:ext = ".vi.utf-8"
endif

" If 'encoding' is utf-8 s:ext must end in utf-8.
if &enc == 'utf-8' && s:ext !~ '\.utf-8'
  let s:ext .= '.utf-8'
endif

" 2. Build the name of the file:
let s:tutorfile = "/tutor/tutor"
let s:tutorxx = $VIMRUNTIME . s:tutorfile . s:ext

" 3. Finding the file:
if filereadable(s:tutorxx)
  let $TUTOR = s:tutorxx
else
  let $TUTOR = $VIMRUNTIME . s:tutorfile
  echo "The file " . s:tutorxx . " does not exist.\n"
  echo "Copying English version: " . $TUTOR
  4sleep
endif

" 4. Making the copy and exiting Vim:
e $TUTOR
wq! $TUTORCOPY
PK�j�Z�PEqqvim80/tutor/tutor.hu.utf-8nu�[���===============================================================================
== Ü d v ö z ö l j ü k   a   V I M - o k t a t ó b a n  -    1.5-ös  verzió  ==
===============================================================================

     A Vim egy nagyon hatékony szerkesztő, amelynek rengeteg utasítása
     van, túl sok, hogy egy ilyen oktatóban (tutorban), mint az itteni
     mindet elmagyarázzuk. Ez az oktató arra törekszik, hogy annyit
     elmagyarázzon, amennyi elég, hogy könnyedén használjuk a Vim-et, az
     általános célú szövegszerkesztőt.

     A feladatok megoldásához 25-30 perc szükséges attól függően,
     mennyit töltünk a kísérletezéssel.

     A leckében szereplő utasítások módosítani fogják a szöveget.
     Készítsen másolatot erről a fájlról, ha gyakorolni akar.
     (Ha "vimtutor"-ral indította, akkor ez már egy másolat.)

     Fontos megérteni, hogy ez az oktató cselekedve taníttat.
     Ez azt jelenti, hogy Önnek ajánlott végrehajtania az utasításokat,
     hogy megfelelően megtanulja azokat. Ha csak olvassa, elfelejti!

     Most bizonyosodjon, meg, hogy a Caps-Lock gombja NINCS lenyomva, és
     Nyomja meg megfelelő számúszor a   j   gombot, hogy az 1.1-es
     lecke teljesen a képernyőn legyen!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			1.1.  lecke:  A KURZOR MOZGATÁSA


   ** A kurzor mozgatásához nyomja meg a h,j,k,l gombokat az alábbi szerint. **
	     ^
	     k		    Tipp:  A h billentyű van balra, és balra mozgat
       < h	 l >		   A l billentyű van jobbra, és jobbra mozgat
	     j			   A j billentyű olyan, mint egy lefele nyíl
	     v
  1. Mozgassa a kurzort körbe az ablakban, amíg hozzá nem szokik!

  2. Tartsa lenyomva a lefelét (j), akkor ismétlődik!
---> Most tudja, hogyan mehet a következő leckére.

  3. A lefelé gomb használatával menjen a 1.2. leckére!

Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
      normál módba kerüljön, és ismételje meg a parancsot!

Megj: A kurzor gomboknak is működniük kell, de a hjkl használatával
      sokkal gyorsabban tud, mozogni, ha hozzászokik.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.2.  lecke: BE ÉS KILÉPÉS A VIMBŐL


  !! MEGJ: Mielőtt végrehajtja az alábbi lépéseket, olvassa végig a leckét !!

  1. Nyomja meg az  <ESC> gombot (hogy biztosan normál módban legyen).

  2. Írja:			:q! <ENTER>.

---> Ezzel kilép a szerkesztőből a változások MENTÉSE NÉLKÜL.
     Ha menteni szeretné a változásokat és kilépni, írja:
				:wq  <ENTER>

  3. Amikor a shell promptot látja, írja be a parancsot, amely ebbe az
     oktatóba hozza:
     Ez valószínűleg:	vimtutor <ENTER>
     Normális esetben ezt írná:	vim tutor.hu <ENTER>

---> 'vim' jelenti a vimbe belépést, 'tutor.hu' a fájl, amit szerkeszteni kíván.

  4. Ha megjegyezte a lépéseket és biztos magában, hajtsa végre a lépéseket
     1-től 3-ig, hogy kilépjen és visszatérjen a szerkesztőbe. Azután
     menjen az 1.3.  leckére.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.3.  lecke: SZÖVEG SZERKESZTÉSE - TÖRLÉS


** Normál módban nyomjon  x-et, hogy a kurzor alatti karaktert törölje. **

  1. Mozgassa a kurzort a ---> kezdetű sorra!

  2. A hibák kijavításához mozgassa a kurzort amíg a törlendő karakter
     fölé nem ér.

  3. Nyomja meg az  x  gombot, hogy törölje a nem kívánt karaktert.

  4. Ismételje a 2, 3, 4-es lépéseket, hogy kijavítsa a mondatot.

---> ŐŐszi éjjjell izziik aa galaggonya rruuhája.

  5. Ha a sor helyes, ugorjon a 1.4. leckére.

MEGJ: A tanulás során ne memorizálni próbáljon, hanem használat során tanuljon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     1.4.  lecke: SZÖVEG SZERKESZTÉSE - BESZÚRÁS


	 ** Normál módban  i  megnyomásával lehet beilleszteni. **

  1. Az alábbi első ---> kezdetű sorra menjen.

  2. Ahhoz, hogy az elsőt azonossá tegye a másodikkal, mozgassa a kurzort
     az első karakterre, amely UTÁN szöveget kell beszúrni.

  3. Nyomjon  i-t és írja be a megfelelő szöveget.

  4. Amikor mindent beírt, nyomjon <ESC>-et, hogy Normál módba visszatérjen.
     Ismételje a 2 és 4 közötti lépéseket, hogy kijavítsa a mondatot.

---> Az átható soól hizik pár ész.
---> Az itt látható sorból hiányzik pár rész.

  5. Ha már begyakorolta a beszúrást, menjen az alábbi összefoglalóra.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       1. LECKE ÖSSZEFOGLALÓJA


  1. A kurzort vagy a nyilakkal vagy a hjkl gombokkal mozgathatja.
	 h (balra)	j (le)       k (fel)	    l (jobbra)

  2. A Vimbe (a $ prompttól) így léphet be:  vim FILENAME <ENTER>

  3. A Vimből így léphet ki:  <ESC>   :q!  <ENTER>  a változtatások eldobásával.
	     vagy így:	      <ESC>   :wq  <ENTER>  a változások mentésével.

  4. A kurzor alatti karakter törlése normál módban:  x

  5. Szöveg beszúrása a kurzor után normál módban:
	 i     gépelje be a szöveget	<ESC>

MEGJ: Az <ESC> megnyomása normál módba viszi, vagy megszakít egy nem befejezett
      részben befejezett parancsot.

Most folytassuk a 2. leckével!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			2.1.  lecke: TÖRLŐ UTASÍTÁSOK


	    ** dw  töröl a szó végéig. **

  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy normál módban van!

  2. Mozgassa a kurzort a ---> kezdetű sorra!

  3. Mozgassa a kurzort arra annak a szónak az elejére, amit törölni szeretne.
     Törölje az állatokat a mondatból.

  4. A szó törléséhez írja:   dw

  MEGJ: Ha rosszul kezdte az utasítást csak nyomjon <ESC> gombot
        a megszakításához.

---> Pár szó kutya nem uhu illik pingvin a mondatba tehén.

  5. Ismételje a 3 és 4 közötti utasításokat amíg kell és ugorjon a 2.2 leckére!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      2.2.  lecke: MÉG TÖBB TÖRLŐ UTASÍTÁS


	   ** d$ beírásával a sor végéig törölhet. **

  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy normál módban van!

  2. Mozgassa a kurzort a ---> kezdetű sorra!

  3. Mozgassa a kurzort a helyes sor végére (az első . UTÁN)!

  4. d$  begépelésével törölje a sor végét!

---> Valaki a sor végét kétszer gépelte be. kétszer gépelte be.


  5. Menjen a 2.3. leckére, hogy megértse mi történt!





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     2.3.  lecke: UTASÍTÁSOKRÓL ÉS MOZGÁSOKRÓL


  A  d  (delete=törlés) utasítás formája a következő:

	 [szám]   d	mozgás	   VAGY	     d	 [szám] mozgás
  Ahol:
    szám - hányszor hajtódjon végre a parancs (elhagyható, alapérték=1).
    d - a törlés (delete) utasítás.
    mozgás - amin a parancsnak teljesülnie kell (alább listázva).

  Mozgások rövid listája:
    w - a kurzortól a szó végéig, beleértve a szóközt.
    e - a kurzortól a szó végéig, NEM beleértve a szóközt.
    $ - a kurzortól a sor végéig.

MEGJ:  Csupán a mozgás begépelésével (parancs nélkül)
       a kurzor mozgás által megadott helyre kerül.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		2.4.  lecke: EGÉSZ SOROK FELDOLGOZÁSA


	       ** dd beírásával törölheti az egész sort. **

  A teljes sor törlésének gyakorisága miatt a Vi tervezői elhatározták,
  hogy könnyebb lenne csupán a d-t kétszer megnyomni, hogy egy sort töröljünk.

  1. Mozgassa a kurzort az alábbi kifejezések második sorára!
  2. dd begépelésével törölje a sort!
  3. Menjen a 3. (eredetileg 4.) sorra!
  4. 2dd   (ugyebár szám-utasítás-mozgás) begépelésével töröljön két sort!

      1)  Alvó szegek a jéghideg homokban,
      2)  - kezdi a költő -
      3)  Plakátmagányban ázó éjjelek.
      4)  Pingvinek ne féljetek,
      5)  Távolról egy vaku villant,
      6)  Égve hagytad a folyosón a villanyt.
      7)  Ma ontják véremet.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   2.5.  lecke: A VISSZAVONÁS (UNDO) PARANCS


** u gépelésével visszavonható az utolsó parancs, U az egész sort helyreállítja. **

  1. Menjünk az alábbi ---> kezdetű sor első hibájára!
  2. x  lenyomásával törölje az első felesleges karaktert!
  3. u megnyomásával vonja vissza az utolsónak végrehajtott utasítást!
  4. Másodjára javítson ki minden hibát a sorban az x utasítással!
  5. Most nagy  U  -val állítsa vissza a sor eredeti állapotát!
  6. Nyomja meg az u gombot párszor, hogy az U és az azt megelőző utasításokat
     visszaállítsa!
  7. CTRL-R (CTRL gomb lenyomása mellett üssön R-t) párszor csinálja újra a
     visszavont parancsokat (redo)!

---> Javíítsa a hhibákaat ebbben a sooorban majd állítsa visszaaa az eredetit.

  8. Ezek nagyon hasznos parancsok. Most ugorjon a 2. lecke összefoglalójára.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       2. LECKE ÖSSZEFOGLALÓJA


  1. Törlés a kurzortól a szó végéig:    dw

  2. Törlés a kurzortól a sor végéig:    d$

  3. Egész sor törlése:    dd

  4. Egy utasítás alakja normál módban:

       [szám]   utasítás   mozgás   VAGY   utasítás	[szám] mozgás
     ahol:
       szám - hányszor ismételjük a parancsot
       utasítás - mit tegyünk, pl. d  a törléskor
       mozgás - mire hasson az utasítás, például w (szó=word),
		$ (a sor végéig), stb.

  5. Az előző tett visszavonása (undo):	     u	 (kis u)
     A sor összes változásának visszavonása: U	 (nagy U)
     Visszavonások visszavonása:	     CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		3.1.  lecke: A BEILLESZTÉS (PUT) PARANCS


  ** p  leütésével az utolsónak töröltet a kurzor után illeszthetjük. **

  1. Mozgassuk a kurzort az alábbi sorok első sorára.

  2. dd leütésével töröljük a sort és eltárolódik a Vim pufferében.

  3. Mozgassuk a kurzort azelőtt a  sor ELŐTTI sorba, ahová mozgatni
     szeretnénk a törölt sort.

  4. Normál módban írjunk  p   betűt a törölt sor beillesztéséhez.

  5. Folytassuk a 2-4. utasításokkal hogy a helyes sorrendet kapjuk.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       3.2.  lecke: AZ ÁTÍRÁS (REPLACE) PARANCS


** r  és  a karakterek leütésével a kurzor alatti karaktert megváltoztatjuk. **

  1. Mozgassuk a kurzort az első ---> kezdetű sorra!

  2. Mozgassuk a kurzort az első hiba fölé!

  3. r	majd a kívánt karakter leütésével változtassuk meg a hibásat!

  4. A 2. és 3. lépésekkel javítsuk az összes hibát!

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Menjünk a 3.2. leckére!

MEGJ: Emlékezzen, hogy nem memorizálással, hanem gyakorlással tanuljon.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			3.3.  lecke: A CSERE (CHANGE) PARANCS


	   ** A szó egy részének megváltoztatásához írjuk:  cw . **

  1. Mozgassuk a kurzort az első ---> kezdetű sorra!

  2. Vigye a kurzort a Ezen szó z betűje fölé!

  3. cw és a helyes szórész (itt 'bben') beírásával javítsa a szót!

  4. <ESC> lenyomása után a következő hibára ugorjon (az első cserélendő
     karakterre)!

  5. A 3. és 4. lépések ismétlésével az első mondatot tegye a másodikkal
     azonossá!

---> Ezen a sorrrrr pár szóra meg kell változzanak a change utaskíréső.
---> Ebben a sorban pár szót meg kell változtatni a change utasítással.

Vegyük észre, hogy a  cw  nem csak a szót írja át, hanem beszúró
(insert) módba vált.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       3.4.  lecke: TÖBBFÉLE VÁLTOZTATÁS c-VEL


 ** A c utasítás használható ugyanazokkal az mozgásokkal mint a törlés **

  1. A change utasítás a törléssel azonosan viselkedik.  A forma:

       [szám]   c   mozgás	   OR	    c	[szám]   mozgás

  2. A mozgások is azonosak, pl.   w (szó), $ (sorvég), stb.

  3. Mozgassuk a kurzort az első ---> kezdetű sorra!

  4. Menjünk az első hibára!

  5. c$ begépelésével a sorvégeket tegyük azonossá és nyomjunk <ESC>-et!

---> Ennek a sornak a vége kiigazításra szorul, hogy megegyezzen a másodikkal.
---> Ennek a sornak a vége a c$ paranccsal változtatható meg.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       3. LECKE ÖSSZEFOGLALÓJA


  1. A már törölt sort beillesztéséhez nyomjunk p-t. Ez a törölt szöveget
     a kurzor UTÁN helyezi (ha sor került törlésre, a kurzor alatti sorba).

  2. A kurzor alatti karakter átírásához az r-et és azt a karaktert
     nyomjuk, amellyel az eredetit felül szeretnénk írni.

  3. A változtatás (c) utasítás a karaktertől az mozgás végéig
     változtatja meg az mozgást. Például a cw a kurzortól a szó végéig,
     a c$ a sor végéig.

  4. A változtatás formátuma:

	 [szám]   c	mozgás	VAGY	c   [szám]   mozgás

Ugorjunk a következő leckére!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     4.1.  lecke: HELY ÉS FÁJLÁLLAPOT


 ** CTRL-g megnyomásával megnézhetjük a helyünket a fájlban és a fájl állapotát.
     SHIFT-G leütésével a fájl adott sorára ugorhatunk. **

  Megj: Olvassuk el az egész leckét a lépések végrehajtása előtt!!

  1. Tartsuk nyomva a Ctrl gombot és nyomjunk  g-t.  Az állapotsor
     megjelenik a lap alján a fájlnévvel és az aktuális sor sorszámával.
     Jegyezzük meg a sorszámot a 3. lépéshez!

  2. Nyomjunk Shift-G-t a lap aljára ugráshoz!

  3. Üssük be az eredeti sor számát, majd üssünk shift-G-t! Ezzel
     visszajutunk az eredeti sorra ahol Ctrl-g-t nyomtunk.
     (A beírt szám NEM fog megjelenni a képernyőn.)

  4. Ha megjegyezte a feladatot, hajtsa végre az 1-3. lépéseket!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			4.2.  lecke: A KERESÉS (SEARCH) PARANCS


  ** / majd a kívánt kifejezés beírásával kereshetjük meg a kifejezést. **

  1. Normál módban üssünk  /  karaktert!  Ez és a kurzor megjelenik
     a képernyő alján, ahogy a : utasítás is.

  2. Írjuk be: 'hiibaa' <ENTER>!  Ez az a szó amit keresünk.

  3. A kifejezés újabb kereséséhez üssük le egyszerűen:  n .
     A kifejezés ellenkező irányban történő kereséséhez ezt üssük be: Shift-N .

  4. Ha visszafelé szeretne keresni, akkor ? kell a / helyett.

---> "hiibaa" nem a helyes módja a hiba leírásának; a hiibaa egy hiba.

Megj: Ha a keresés eléri a fájl végét, akkor az elején kezdi.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   4.3.  lecke: ZÁRÓJELEK PÁRJÁNAK KERESÉSE


	   ** % leütésével megtaláljuk a ),], vagy }  párját. **

  1. Helyezze a kurzort valamelyik (, [, vagy { zárójelre a ---> kezdetű
     sorban!

  2. Üssön  %  karaktert!

  3. A kurzor a zárójel párjára fog ugrani.

  4. % leütésével visszaugrik az eredeti zárójelre.

---> Ez ( egy tesztsor (-ekkel, [-ekkel ] és {-ekkel } a sorban. ))

Megj: Ez nagyon hasznos, ha olyan programot debugolunk, amelyben a
      zárójelek nem párosak!




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  4.4.  lecke: A HIBÁK KIJAVÍTÁSÁNAK EGY MÓDJA


    ** :s/régi/új/g begépelésével az 'új'-ra cseréljük a 'régi'-t. **

  1. Menjünk a ---> kezdetű sorra!

  2. Írjuk be:  :s/eggy/egy <ENTER> .  Ekkor csak az első változik meg a
     sorban.

  3. Most ezt írjuk:	 :s/eggy/egg/g	   amely globálisan helyettesít
     a sorban, azaz minden előfordulást.
     Ez a sorban minden előfordulást helyettesít.

---> eggy heggy meggy, szembe jön eggy másik heggy.

  4. Két sor között a karaktersor minden előfordulásának helyettesítése:
     :#,#s/régi/új/g    ahol #,# a két sor sorszáma.
     :%s/régi/új/g      a fájlbeli összes előfordulás helyettesítése.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       4. LECKE ÖSSZEFOGLALÓJA


  1. Ctrl-g  kiírja az kurzor helyét a fájlban és a fájl állapotát.
     Shift-G a fájl végére megy, gg az elejére. Egy szám után
     Shift-G  az adott számú sorra ugrik.

  2. /	után egy kifejezés ELŐREFELE keresi a kifejezést.
  2. ?	után egy kifejezés VISSZAFELE keresi a kifejezést.
     Egy keresés után az  n  a következő előfordulást keresi azonos irányban
     Shift-N  az ellenkező irányban keres.

  3. %	begépelésével, ha  (,),[,],{, vagy } karakteren vagyunk a zárójel
     párjára ugrik.

  4. az első régi helyettesítése újjal a sorban    :s/régi/új
     az összes régi helyettesítése újjal a sorban  :s/régi/új/g
     két sor közötti kifejezésekre		   :#,#s/régi/új/g
     # helyén az aktuális sor (.) és az utolsó ($) is állhat :.,$/régi/új/g
     A fájlbeli összes előfordulás helyettesítése  :%s/régi/új/g
     Mindenkori megerősítésre vár 'c' hatására	   :%s/régi/új/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		5.1.  lecke: KÜLSŐ PARANCS VÉGREHAJTÁSA


   ** :!  után külső parancsot írva végrehajtódik a parancs. **

  1. Írjuk be az ismerős : parancsot, hogy a kurzort a  képernyő aljára
     helyezzük. Ez lehetővé teszi egy parancs beírását.

  2. ! (felkiáltójel) beírásával tegyük lehetővé külső héj (shell)-parancs
     végrehajtását.

  3. Írjunk például ls parancsot a ! után majd üssünk <ENTER>-t.  Ez ki
     fogja listázni a könyvtárunkat ugyanúgy, mintha a shell promptnál
     lennénk.  Vagy írja ezt  :!dir  ha az ls nem működik.

Megj:  Ilymódon bármely külső utasítás végrehajtható.

Megj:  Minden  :  parancs után <ENTER>-t kell ütni.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 5.2.  lecke: BŐVEBBEN A FÁJLOK ÍRÁSÁRÓL


     ** A fájlok változásait így írhatjuk ki  :w FÁJLNÉV. **

  1. :!dir  vagy  :!ls  beírásával listázzuk a könyvtárunkat!
     Ön már tudja, hogy <ENTER>-t kell ütnie utána.

  2. Válasszon egy fájlnevet, amely még nem létezik pl. TESZT!

  3. Írja:	:w TESZT   (ahol TESZT a választott fájlnév)!

  4. Ez elmenti a teljes fájlt (a Vim oktatóját) TESZT néven.
     Ellenőrzésképp írjuk ismét    :!dir   hogy lássuk a könyvtárat!
     (Felfelé gombbal : után az előző utasítások visszahozhatóak.)

Megj: Ha Ön kilépne a Vimből és és visszatérne a TESZT fájlnévvel, akkor a
      fájl az oktató mentéskori pontos másolata lenne.

  5. Távolítsa el a fájlt  (MS-DOS):	:!del TESZT
			vagy (Unix):	:!rm TESZT


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    5.3.  lecke: EGY KIVÁLASZTOTT RÉSZ KIÍRÁSA


	** A fájl egy részének kiírásához írja :#,# w FÁJLNÉV **

  1. :!dir  vagy :!ls  beírásával listázza a könyvtárat, és válasszon egy
     megfelelő fájlnevet, pl. TESZT.

  2. Mozgassa a kurzort ennek az oldalnak a tetejére, és nyomjon
     Ctrl-g-t, hogy megtudja a sorszámot.  JEGYEZZE MEG A SZÁMOT!

  3. Most menjen a lap aljára, és üsse be ismét: Ctrl-g.  EZT A SZÁMOT
     IS JEGYEZZE MEG!

  4. Ha csak ezt a részét szeretné menteni a fájlnak, írja   :#,# w TESZT
     ahol #,# a két sorszám, amit megjegyzett, TESZT az Ön fájlneve.

  5. Ismét nézze meg, hogy a fájl ott van (:!dir) de NE törölje.

  6. Vimben létezik egy másik lehetőség: nyomja meg a Shift-V gombpárt
     az első menteni kívánt soron, majd menjen le az utolsóra, ezután
     írja :w TESZT2   Ekkor a TESZT2 fájlba kerül a kijelölt rész.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   5.4.  lecke: FÁJLOK VISSZAÁLLÍTÁSA ÉS ÖSSZEFŰZÉSE


       ** Egy fájl tartalmának beillesztéséhez írja   :r FÁJLNÉV **

  1. :!dir beírásával nézze meg, hogy az Ön TESZT fájlja létezik még.

  2. Helyezze a kurzort ennek az oldalnak a tetejére.

MEGJ:  A 3. lépés után az 5.3. leckét fogja látni. Azután LEFELÉ indulva
       keresse meg ismét ezt a leckét.

  3. Most szúrja be a TESZT nevű fájlt a   :r TESZT   paranccsal, ahol
     TESZT az Ön fájljának a neve.

MEGJ:  A fájl, amit beillesztett a kurzora alatt helyezkedik el.

  4. Hogy ellenőrizzük, hogy a fájlt tényleg beillesztettük, menjen
     vissza, és nézze meg, hogy kétszer szerepel az 5.3. lecke! Az eredeti
     mellett a fájlból bemásolt is ott van.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       5. LECKE ÖSSZEFOGLALÓJA


  1.  :!parancs végrehajt egy külső utasítást.

      Pár hasznos példa:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  könyvtárlista kiírása.
	  :!del FÁJLNÉV    :!rm FÁJLNÉV    -  FÁJLNÉV nevű fájl törlése.

  2.  :w FÁJLNÉV  kiírja a jelenlegi Vim-fájlt a lemezre FÁJNÉV néven.

  3.  :#,#w FÁJLNÉV  kiírja a két sorszám (#) közötti sorokat FÁJLNÉV-be
      Másik lehetőség, hogy a kezdősornál Shift-v-t nyom lemegy az utolsó
      sorra, majd ezt üti be  :w FÁJLNÉV

  4.  :r FÁJLNÉV  beolvassa a FÁJLNÉV fájlt és behelyezi a jelenlegi fájlba
      a kurzorpozíció utáni sorba.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   6.1.  lecke: A MEGNYITÁS (OPEN) PARANCS


** o  beírásával nyit egy új sort a kurzor alatt és beszúró módba vált **

  1. Mozgassuk a kurzort a ---> kezdetű sorra.

  2. o (kicsi)  beírásával nyisson egy sort a kurzor ALATT! Ekkor
     automatikusan beszúró (insert) módba kerül.

  3. Másolja le a  ---> jelű sort és <ESC> megnyomásával lépjen ki
     a beszúró módból.

---> Az o lenyomása után a kurzor a következő sor elején áll beszúró módban.

  4. A kurzor FELETTI sor megnyitásához egyszerűen nagy O betűt írjon
kicsi helyett. Próbálja ki a következő soron!
Nyisson egy új sort efelett Shift-O megnyomásával, mialatt a kurzor
ezen a soron áll.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			6.2.  lecke: AZ APPEND PARANCS


	 ** a  lenyomásával a kurzor UTÁN szúrhatunk szöveget. **

  1. Mozgassuk a kurzort a következő ---> kezdetű sor végére úgy,
     hogy  normál  módban  $-t  ír be.

  2. Kis "a" leütésével szöveget szúrhat be AMÖGÉ a karakter mögé,
     amelyen a kurzor áll.
     (A nagy "A" az egész sor végére írja a szöveget.)

Megj: A Vimben a sor legvégére is lehet állni, azonban ez elődjében
      a Vi-ban nem lehetséges, ezért abban az a nélkül elég körülményes
      a sor végéhez szöveget írni.

  3. Egészítse ki az első sort. Vegye észre, hogy az a utasítás (append)
     teljesen egyezik az i-vel (insert) csupán a beszúrt szöveg helye
     különbözik.

---> Ez a sor lehetővé teszi Önnek, hogy gyakorolja
---> Ez a sor lehetővé teszi Önnek, hogy gyakorolja a sor végére beillesztést.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    6.3.  lecke: AZ ÁTÍRÁS MÁSIK VÁLTOZATA


      ** Nagy R  beírásával írhat felül több mint egy karaktert. **

  1. Mozgassuk a kurzort az első ---> kezdetű sorra!

  2. Helyezze a kurzort az első szó elejére amely eltér a második
     ---> kezdetű sor tartalmától (a 'az utolsóval' résztől).

  3. Nyomjon R karaktert és írja át a szöveg maradékát az első sorban
     úgy, hogy a  két sor egyező legyen.

---> Az első sort tegye azonossá az utolsóval: használja a gombokat.
---> Az első sort tegye azonossá a másodikkal: írjon R-t és az új szöveget.

  4. Jegyezzük meg, ha <ESC>-et nyomok, akkor a változatlanul hagyott
     szövegek változatlanok maradnak.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    6.4.  lecke: BEÁLLÍTÁSOK

** Állítsuk be, hogy a keresés és a helyettesítés ne függjön kis/NAGYbetűktől **

  1. Keressük meg az 'ignore'-t az beírva:
     /ignore
     Ezt ismételjük többször az n billentyűvel

  2. Állítsuk be az 'ic' (Ignore case) lehetőséget így:
     :set ic

  3. Most keressünk ismét az 'ignore'-ra n-nel
     Ismételjük meg többször a keresést: n

  4. Állítsuk be a 'hlsearch' és 'incsearch' lehetőségeket:
     :set hls is

  5. Most ismét írjuk be a keresőparancsot, és lássuk mi történik:
     /ignore

  6. A kiemelést szüntessük meg alábbi utasítások egyikével:
     :set nohls     vagy	 :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       6. LECKE ÖSSZEFOGLALÓJA


  1. o	beírásával új sort nyitunk meg a sor ALATT és a kurzor az új
     sorban lesz beszúrás-módban.
     Nagy  O  a sor FELETT nyit új sort, és oda kerül a kurzor.

  2. a  beírásával az aktuális karaktertől UTÁN (jobbra) szúrhatunk be szöveget.
     Nagy A  automatikusan a sor legvégéhez adja hozzá a szöveget.

  3. A nagy  R  beütésével átíró (replace) módba kerülünk  <ESC> lenyomásáig.

  4. ":set xxx" beírásával az "xxx" opció állítható be.









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     7. lecke: AZ ON-LINE SÚGÓ PARANCSAI


		    ** Az online súgórendszer használata **

  A Vim részletes súgóval rendelkezik.  Induláshoz a következők egyikét
  tegye:
	- nyomja meg a <HELP> gombot (ha van ilyen)
	- nyomja meg az <F1> gombot (ha van ilyen)
	- írja be:   :help <ENTER>

  :q <ENTER>   beírásával zárhatja be a súgóablakot.

  Majdnem minden témakörről találhat súgót, argumentum megadásával
  ":help" utasítás .  Próbálja az alábbiakat ki (<ENTER>-t ne felejtsük):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       8. lecke: INDÍTÓSZKRIPT ÍRÁSA

		     ** A Vim lehetőségeinek beállítása **

  A Vim rengeteg lehetőséggel rendelkezik a Vi-hoz képest, de a legtöbb
  alapból elérhetetlen. Ahhoz, hogy alapból több lehetőségünk legyen készítenünk
  kell egy "vimrc" fájlt.

  1. Kezdjük el szerkeszteni a "vimrc" fájlt, ennek módja:
	:edit ~/.vimrc			Unixon, Linuxon
	:edit $VIM/_vimrc		MS-Windowson

  2. Most szúrjuk be a példa "vimrc" fájl szövegét:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Írjuk ki a fájlt:

	:write

  Legközelebb a Vim szintaxiskiemeléssel indul.
  Hozzáadhatja kedvenc beállításait ehhez a "vimrc" fájlhoz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Itt végződik a Vim oktató, melynek a szándéka egy rövid áttekintés a
  Vimről, amely elég ahhoz, hogy elég könnyedén kezeljük a szerkesztőt.
  Távol van a teljességtől, mivel a Vimnek számtalan további utasítása
  van. Ezután a felhasználói kézikönyvet érdemes elolvasni az angolul
  tudóknak: ":help user-manual". (egyelőre nem tud magyarul)

  További magyar olvasnivalók érhetőek el az alábbi oldalról.
  http://wiki.hup.hu/index.php/Vim

  Angol olvasmányok:
  For further reading and studying, this book is recommended:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
  The first book completely dedicated to Vim.  Especially useful for beginners.
  There are many examples and pictures.
  See http://iccf-holland.org/click5.html

  This book is older and more about Vi than Vim, but also recommended:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
  It is a good book to get to know almost anything you want to do with Vi.
  The sixth edition also includes information on Vim.

  Ezt az oktatót Michael C. Pierce és Robert K. Ware írta, a Colorado
  School of Mines dolgozói Charles Smith (Colorado State University)
  támogatásával.

  E-mail: bware@mines.colorado.edu.

  A Vimhez idomította Bram Moolenaar.

  Magyarította: Horváth Árpád <horvath.arpad@arek.uni-opbuda.hu>, 2006-2012

PK�j�Z:x�,�m�mvim80/tutor/tutor.esnu�[���===============================================================================
=     B i e n v e n i d o   a l   t u t o r   d e   V I M  -  Versión 1.4     =
===============================================================================

     Vim es un editor muy potente que dispone de muchos mandatos, demasiados
     para ser explicados en un tutor como éste. Este tutor está diseñado
     para describir suficientes mandatos para que usted sea capaz de
     aprender fácilmente a usar Vim como un editor de propósito general.

     El tiempo necesario para completar el tutor es aproximadamente de 25-30
     minutos, dependiendo de cuanto tiempo se dedique a la experimentación.

     Los mandatos de estas lecciones modificarán el texto. Haga una copia de
     este fichero para practicar (con «vimtutor» esto ya es una copia).

     Es importante recordar que este tutor está pensado para enseñar con
     la práctica. Esto significa que es necesario ejecutar los mandatos
     para aprenderlos adecuadamente. Si únicamente se lee el texto, se
     olvidarán los mandatos.

     Ahora, asegúrese de que la tecla de bloqueo de mayúsculas no está
     activada y pulse la tecla	j  lo suficiente para mover el cursor
     de forma que la Lección 1.1 ocupe completamente la pantalla.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 1.1: MOVIMIENTOS DEL CURSOR

 ** Para mover el cursor, pulse las teclas h,j,k,l de la forma que se indica. **
      ^
      k       Indicación: La tecla h está a la izquierda y mueve a la izquierda.
 < h	 l >		  La tecla l está a la derecha y mueve a la derecha.
      j			  La tecla j parece una flecha que apunta hacia abajo.
      v

  1. Mueva el cursor por la pantalla hasta que se sienta cómodo con ello.

  2. Mantenga pulsada la tecla	j  hasta que se repita «automágicamente».
---> Ahora ya sabe como llegar a la lección siguiente.

  3. Utilizando la tecla abajo, vaya a la Lección 1.2.

Nota: Si alguna vez no está seguro sobre algo que ha tecleado, pulse <ESC>
      para situarse en modo Normal. Luego vuelva a teclear la orden que deseaba.

Nota: Las teclas de movimiento del cursor también funcionan. Pero usando
      hjkl podrá moverse mucho más rápido una vez que se acostumbre a ello.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lección 1.2: ENTRANDO Y SALIENDO DE VIM

  ¡¡ NOTA: Antes de ejecutar alguno de los pasos siguientes lea primero
	   la lección entera!!

  1. Pulse la tecla <ESC> (para asegurarse de que está en modo Normal).

  2. Escriba:			:q! <INTRO>

---> Esto provoca la salida del editor SIN guardar ningún cambio que se haya
     hecho. Si quiere guardar los cambios y salir escriba:
				:wq <INTRO>

  3. Cuando vea el símbolo del sistema, escriba el mandato que le trajo a este
     tutor. Éste puede haber sido:   vimtutor <INTRO>
     Normalmente se usaría:	     vim tutor <INTRO>

---> 'vim' significa entrar al editor, 'tutor' es el fichero a editar.

  4. Si ha memorizado estos pasos y se se siente con confianza, ejecute los
     pasos 1 a 3 para salir y volver a entrar al editor. Después mueva el
     cursor hasta la Lección 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lección 1.3: EDICIÓN DE TEXTO - BORRADO

** Estando en modo Normal pulse  x  para borrar el carácter sobre el cursor. **j


  1. Mueva el cursor a la línea de abajo señalada con --->.

  2. Para corregir los errores, mueva el cursor hasta que esté bajo el
     carácter que va aser borrado.

  3. Pulse la tecla  x	para borrar el carácter sobrante.

  4. Repita los pasos 2 a 4 hasta que la frase sea la correcta.

---> La vvaca saltóó soobree laa luuuuna.

  5. Ahora que la línea esta correcta, continúe con la Lección 1.4.


NOTA: A medida que vaya avanzando en este tutor no intente memorizar,
      aprenda practicando.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lección 1.4: EDICIÓN DE TEXTO - INSERCIÓN

      ** Estando en modo Normal pulse  i  para insertar texto. **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Para que la primera línea se igual a la segunda mueva el cursor bajo el
     primer carácter que sigue al texto que ha de ser insertado.

  3. Pulse  i  y escriba los caracteres a añadir.

  4. A medida que sea corregido cada error pulse <ESC> para volver al modo
     Normal. Repita los pasos 2 a 4 para corregir la frase.

---> Flta texto en esta .
---> Falta algo de texto en esta línea.

  5. Cuando se sienta cómodo insertando texto pase al resumen que esta más
     abajo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 1


  1. El cursor se mueve utilizando las teclas de las flechas o las teclas hjkl.
	 h (izquierda)	   j (abajo)	  k (arriba)	  l (derecha)

  2. Para acceder a Vim (desde el símbolo del sistema %) escriba:
     vim FILENAME <INTRO>

  3. Para salir de Vim escriba: <ESC> :q! <INTRO> para eliminar todos
     los cambios.

  4. Para borrar un carácter sobre el cursor en modo Normal pulse:  x

  5. Para insertar texto en la posición del cursor estando en modo Normal:
	  pulse   i   escriba el texto	 pulse <ESC>

NOTA: Pulsando <ESC> se vuelve al modo Normal o cancela un mandato no deseado
      o incompleto.

Ahora continúe con la Lección 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 2.1:  MANDATOS PARA BORRAR


       ** Escriba dw para borrar hasta el final de una palabra **


  1. Pulse <ESC> para asegurarse de que está en el modo Normal.

  2. Mueva el cursor a la línea de abajo señalada con --->.

  3. Mueva el cursor al comienzo de una palabra que desee borrar.

  4. Pulse   dw   para hacer que la palabra desaparezca.


  NOTA: Las letras   dw   aparecerán en la última línea de la pantalla cuando
	las escriba. Si escribe algo equivocado pulse <ESC> y comience de nuevo.


---> Hay algunas palabras pásalo bien que no pertenecen papel a esta frase.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lección 2.2: MÁS MANDATOS PARA BORRAR


	  ** Escriba  d$  para borrar hasta el final de la línea. **


  1. Pulse  <ESC>  para asegurarse de que está en el modo Normal.

  2. Mueva el cursor a la línea de abajo señalada con --->.

  3. Mueva el cursor al final de la línea correcta (DESPUÉS del primer . ).

  4. Escriba  d$  para borrar hasta el final de la línea.

---> Alguien ha escrito el final de esta línea dos veces. esta línea dos veces.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lección 2.3: SOBRE MANDATOS Y OBJETOS


  El formato del mandato de borrar   d	 es como sigue:

	 [número]   d	objeto	    O	     d	 [número]   objeto
  donde:
   número - es cuántas veces se ha de ejecutar el mandato (opcional, defecto=1).
   d - es el mandato para borrar.
   objeto - es sobre lo que el mandato va a operar (lista, abajo).

  Una lista corta de objetos:
   w - desde el cursor hasta el final de la palabra, incluyendo el espacio.
   e - desde el cursor hasta el final de la palabra, SIN incluir el espacio.
   $ - desde el cursor hasta el final de la línea.

NOTE: Para los aventureros, pulsando sólo el objeto estando en modo Normal
      sin un mandato moverá el cursor como se especifica en la lista de objetos.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 2.4: UNA EXCEPCIÓN AL 'MANDATO-OBJETO'

	   ** Escriba	dd   para borrar una línea entera. **

  Debido a la frecuencia con que se borran líneas enteras, los diseñadores
  de Vim decidieron que sería más fácil el escribir simplemente dos des en
  una fila para borrar	una línea.

  1. Mueva el cursor a la segunda línea de la lista de abajo.
  2. Escriba  dd  para borrar la línea.
  3. Muévase ahora a la cuarta línea.
  4. Escriba   2dd   (recuerde	número-mandato-objeto) para borrar las dos
     líneas.

      1) Las rosas son rojas,
      2) El barro es divertido,
      3) El cielo es azul,
      4) Yo tengo un coche,
      5) Los relojes marcan la hora,
      6) El azucar es dulce,
      7) Y así eres tu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lección 2.5: EL MANDATO DESHACER


   ** Pulse  u	para deshacer los últimos mandatos,
	     U	para deshacer una línea entera.       **

  1. Mueva el cursor a la línea de abajo señalada con ---> y sitúelo bajo el
     primer error.
  2. Pulse  x  para borrar el primer caráter erróneo.
  3. Pulse ahora  u  para deshacer el último mandato ejecutado.
  4. Ahora corrija todos los errores de la línea usando el mandato  x.
  5. Pulse ahora  U  mayúscula para devolver la línea a su estado original.
  6. Pulse ahora  u  unas pocas veces para deshacer lo hecho por  U  y los
     mandatos previos.
  7. Ahora pulse CTRL-R (mantenga pulsada la tecla CTRL y pulse R) unas
     pocas veces para volver a ejecutar los mandatos (deshacer lo deshecho).

---> Corrrija los errores dee esttta línea y vuuelva a ponerlos coon deshacer.

  8. Estos mandatos son muy útiles. Ahora pase al resumen de la Lección 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 2

  1. Para borrar desde el cursor hasta el final de una palabra pulse:	dw

  2. Para borrar desde el cursor hasta el final de una línea pulse:	d$

  3. Para borrar una línea enter pulse:    dd

  4. El formato de un mandato en modo Normal es:

       [número]   mandato   objeto   O	 mandato   [número]   objeto
     donde:
       número - es cuántas veces se ha de ejecutar el mandato
       mandato - es lo que hay que hacer, por ejemplo, d para borrar
       objeto - es sobre lo que el mandato va a operar, por ejemplo
		w (palabra), $ (hasta el final de la línea), etc.

  5. Para deshacer acciones previas pulse:		 u (u minúscula)
     Para deshacer todos los cambios de una línea pulse: U (U mayúscula)
     Para deshacer lo deshecho pulse:			 CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lección 3.1: EL MANDATO «PUT» (poner)

  ** Pulse p para poner lo último que ha borrado después del cursor. **

  1. Mueva el cursor al final de la lista de abajo.

  2. Escriba  dd  para borrar la línea y almacenarla en el buffer de Vim.

  3. Mueva el cursor a la línea que debe quedar por debajo de la
     línea a mover.

  4. Estando en mod Normal, pulse   p	para restituir la línea borrada.

  5. Repita los pasos 2 a 4 para poner todas las líneas en el orden correcto.

     d) ¿Puedes aprenderla tu?
     b) Las violetas son azules,
     c) La inteligencia se aprende,
     a) Las rosas son rojas,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lección 3.2: EL MANDATO «REPLACE» (remplazar)


  ** Pulse  r  y un carácter para sustituir el carácter sobre el cursor. **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Mueva el cursor para situarlo bajo el primer error.

  3. Pulse   r	 y el carácter que debe sustituir al erróneo.

  4. Repita los pasos 2 y 3 hasta que la primera línea esté corregida.

---> ¡Cuendo esta línea fue rscrita alguien pulso algunas teclas equibocadas!
---> ¡Cuando esta línea fue escrita alguien pulsó algunas teclas equivocadas!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lección 3.3: EL MANDATO «CHANGE» (cambiar)


     ** Para cambiar parte de una palabra o toda ella escriba  cw . **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Sitúe el cursor en la u de lubrs.

  3. Escriba  cw  y corrija la palabra (en este caso, escriba 'ínea').

  4. Pulse <ESC> y mueva el cursor al error siguiente (el primer carácter
     que deba cambiarse).

  5. Repita los pasos 3 y 4 hasta que la primera frase sea igual a la segunda.

---> Esta lubrs tiene unas pocas pskavtad que corregir usem el mandato change.
---> Esta línea tiene unas pocas palabras que corregir usando el mandato change.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lección 3.4: MÁS CAMBIOS USANDO c

   ** El mandato change se utiliza con los mismos objetos que delete. **

  1. El mandato change funciona de la misma forma que delete. El formato es:

       [número]   c   objeto	   O	    c	[número]   objeto

  2. Los objetos son tambiém los mismos, tales como  w (palabra), $ (fin de
     la línea), etc.

  3. Mueva el cursor a la primera línea de abajo señalada con --->.

  4. Mueva el cursor al primer error.

  5. Escriba  c$  para hacer que el resto de la línea sea como la segunda
     y pulse <ESC>.

---> El final de esta línea necesita alguna ayuda para que sea como la segunda.
---> El final de esta línea necesita ser corregido usando el mandato  c$.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 3


  1. Para sustituir texto que ha sido borrado, pulse  p . Esto Pone el texto
     borrado DESPUÉS del cursor (si lo que se ha borrado es una línea se
     situará sobre la línea que está sobre el cursor).

  2. Para sustituir el carácter bajo el cursor, pulse	r   y luego el
     carácter que sustituirá al original.

  3. El mandato change le permite cambiar el objeto especificado desde la
     posición del cursor hasta el final del objeto; e.g. Pulse	cw  para
     cambiar desde el cursor hasta el final de la palabra, c$  para cambiar
     hasta el final de la línea.

  4. El formato para change es:

	 [número]   c	objeto	      O		c   [número]   objeto

  Pase ahora a la lección siguiente.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 4.1: SITUACIÓN EN EL FICHERO Y SU ESTADO


 ** Pulse CTRL-g para mostrar su situación en el fichero y su estado.
    Pulse MAYU-G para moverse a una determinada línea del fichero. **

  Nota: ¡¡Lea esta lección entera antes de ejecutar alguno de los pasos!!


  1. Mantenga pulsada la tecla Ctrl y pulse  g . Aparece una línea de estado
     al final de la pantalla con el nombre del fichero y la línea en la que
     está situado. Recuerde el número de la línea para el Paso 3.

  2. Pulse Mayu-G para ir al final del fichero.

  3. Escriba el número de la línea en la que estaba y despúes Mayu-G. Esto
     le volverá a la línea en la que estaba cuando pulsó Ctrl-g.
     (Cuando escriba los números NO se mostrarán en la pantalla).

  4. Si se siente confiado en poder hacer esto ejecute los pasos 1 a 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lección 4.2: EL MANDATO «SEARCH» (buscar)

     ** Escriba  /  seguido de una frase para buscar la frase. **

  1. En modo Normal pulse el carácter  / . Fíjese que tanto el carácter  /
     como el cursor aparecen en la última línea de la pantalla, lo mismo
     que el mandato  : .

  2. Escriba ahora   errroor   <INTRO>. Esta es la palabra que quiere buscar.

  3. Para repetir la búsqueda, simplemente pulse  n .
     Para busacar la misma frase en la dirección opuesta, pulse Mayu-N .

  4. Si quiere buscar una frase en la dirección opuesta (hacia arriba),
     utilice el mandato  ?  en lugar de  / .

---> Cuando la búsqueda alcanza el final del fichero continuará desde el
     principio.

  «errroor» no es la forma de deletrear error; errroor es un error.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 4.3: BÚSQUEDA PARA COMPROBAR PARÉNTESIS

   ** Pulse %  para encontrar el paréntesis correspondiente a ),] o } . **


  1. Sitúe el cursor en cualquiera de los caracteres ), ] o } en la línea de
     abajo señalada con --->.

  2. Pulse ahora el carácter  %  .

  3. El cursor debería situarse en el paréntesis (, corchete [ o llave {
     correspondiente.

  4. Pulse  %  para mover de nuevo el cursor al paréntesis, corchete o llave
     correspondiente.

---> Esto ( es una línea de prueba con (, [, ], {, y } en ella. )).

Nota: ¡Esto es muy útil en la detección de errores en un programa con
      paréntesis, corchetes o llaves disparejos.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lección 4.4: UNA FORMA DE CAMBIAR ERRORES


    ** Escriba	:s/viejo/nuevo/g para sustituir 'viejo' por 'nuevo'. **


  1. Mueva el cursor a la línea de abajo señalada con --->.

  2. Escriba  :s/laas/las/  <INTRO> . Tenga en cuenta que este mandato cambia
     sólo la primera aparición en la línea de la expresión a cambiar.

---> Laas mejores épocas para ver laas flores son laas primaveras.

  4. Para cambiar todas las apariciones de una expresión ente dos líneas
     escriba   :#,#s/viejo/nuevo/g   donde #,# son los números de las dos
     líneas. Escriba   :%s/viejo/nuevo/g   para hacer los cambios en todo
     el fichero.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 4


  1. Ctrl-g  muestra la posición del cursor en el fichero y su estado.
     Mayu-G mueve el cursor al final del fichero. Un número de línea
     seguido de Mayu-G mueve el cursor a la línea con ese número.

  2. Pulsando  /  seguido de una frase busca la frase hacia ADELANTE.
     Pulsando  ?  seguido de una frase busca la frase hacia ATRÁS.
     Después de una búsqueda pulse  n  para encontrar la aparición
     siguiente en la misma dirección.

  3. Pulsando  %  cuando el cursor esta sobre (,), [,], { o } localiza
     la pareja correspondiente.

  4. Para cambiar viejo por nuevo en una línea pulse	      :s/viejo/nuevo
     Para cambiar todos los viejo por nuevo en una línea pulse :s/viejo/nuevo/g
     Para cambiar frases entre dos números de líneas pulse  :#,#s/viejo/nuevo/g
     Para cambiar viejo por nuevo en todo el fichero pulse  :%s/viejo/nuevo/g
     Para pedir confirmación en cada caso añada  'c'	    :%s/viejo/nuevo/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lección 5.1: CÓMO EJECUTAR UN MANDATO EXTERNO


  ** Escriba  :!  seguido de un mandato externo para ejecutar ese mandato. **


  1. Escriba el conocido mandato  :  para situar el cursor al final de la
     pantalla. Esto le permitirá introducir un mandato.

  2. Ahora escriba el carácter ! (signo de admiración). Esto le permitirá
     ejecutar cualquier mandato del sistema.

  3. Como ejemplo escriba   ls	 después del ! y luego pulse <INTRO>. Esto
     le mostrará una lista de su directorio, igual que si estuviera en el
     símbolo del sistema. Si  ls  no funciona utilice	!:dir	.

--->Nota: De esta manera es posible ejecutar cualquier mandato externo.

--->Nota: Todos los mandatos   :   deben finalizarse pulsando <INTRO>.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 5.2: MÁS SOBRE GUARDAR FICHEROS


     ** Para guardar los cambios hechos en un fichero,
	escriba  :w NOMBRE_DE_FICHERO. **


  1. Escriba  :!dir  o	:!ls  para ver una lista de su directorio.
     Ya sabe que debe pulsar <INTRO> después de ello.

  2. Elija un nombre de fichero que todavía no exista, como TEST.

  3. Ahora escriba   :w TEST  (donde TEST es el nombre de fichero elegido).

  4. Esta acción guarda todo el fichero  (Vim Tutor)  bajo el nombre TEST.
     Para comprobarlo escriba	:!dir	de nuevo y vea su directorio.

---> Tenga en cuenta que si sale de Vim y  entra de nuevo con el nombre de
     fichero TEST, el fichero sería una copia exacta del tutor cuando lo
     ha guardado.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 5.3: UN MANDATO DE ESCRITURA SELECTIVO

   ** Para guardar parte del fichero escriba   :#,# NOMBRE_DEL_FICHERO **


  1. Escriba de nuevo, una vez más,  :!dir  o  :!ls  para obtener una lista
     de su directorio y elija nombre de fichero adecuado, como TEST.

  2. Mueva el cursor al principio de la pantalla y pulse  Ctrl-g  para saber
     el número de la línea correspondiente. ¡RECUERDE ESTE NÚMERO!

  3. Ahora mueva el cursor a la última línea de la pantalla y pulse Ctrl-g
     de nuevo. ¡RECUERDE TAMBIÉN ESTE NÚMERO!

  4. Para guardar SOLAMENTE una parte de un fichero, escriba  :#,# w TEST
     donde #,# son los números que usted ha recordado (primera línea,
     última línea) y TEST es su nombre de dichero.

  5. De nuevo, vea que el fichero esta ahí con	:!dir  pero NO lo borre.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lección 5.4: RECUPERANDO Y MEZCLANDO FICHEROS

 ** Para insertar el contenido de un fichero escriba :r NOMBRE_DEL_FICHERO **

  1. Escriba   :!dir   para asegurarse de que su fichero TEST del ejercicio
     anterior está presente.

  2. Situe el cursor al principio de esta pantalla.

NOTA: Después de ejecutar el paso 3 se verá la Lección 5.3. Luego muévase
      hacia ABAJO para ver esta lección de nuevo.

  3. Ahora recupere el fichero TEST utilizando el mandato  :r TEST  donde
     TEST es el nombre del fichero.

NOTA: El fichero recuperado se sitúa a partir de la posición del cursor.

  4. Para verificar que el fichero ha sido recuperado, mueva el cursor hacia
     arriba y vea que hay dos copias de la Lección 5.3, la original y la
     versión del fichero.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   RESUMEN DE LA LECCIÓN 5


  1.  :!mandato  ejecuta un mandato externo.

      Algunos ejemplos útiles son:
	  :!dir - muestra el contenido de un directorio.
	  :!del NOMBRE_DE_FICHERO  -  borra el fichero NOMBRE_DE FICHERO.

  2.  :#,#w NOMBRE_DE _FICHERO  guarda desde las líneas # hasta la # en el
     fichero NOMBRE_DE_FICHERO.

  3.  :r NOMBRE_DE _FICHERO  recupera el fichero del disco NOMBRE_DE FICHERO
     y lo inserta en el fichero en curso a partir de la posición del cursor.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lección 6.1: EL MANDATO «OPEN» (abrir)


	 ** Pulse  o  para abrir una línea debajo del cursor
	    y situarle en modo Insert **


  1. Mueva el cursor a la línea de abajo señalada con --->.

  2. Pulse  o (minúscula) para abrir una línea por DEBAJO del cursor
     y situarle en modo Insert.

  3. Ahora copie la línea señalada con ---> y pulse <ESC> para salir del
     modo Insert.

---> Luego de pulsar  o  el cursor se sitúa en la línea abierta en modo Insert.

  4. Para abrir una línea por encima del cursor, simplemente pulse una O
     mayúscula, en lugar de una o minúscula. Pruebe este en la línea siguiente.
Abra una línea sobre ésta pulsando Mayu-O cuando el curso está en esta línea.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lección 6.2: EL MANDATO «APPEND» (añadir)

	 ** Pulse  a  para insertar texto DESPUÉS del cursor. **


  1. Mueva el cursor al final de la primera línea de abajo señalada con --->
     pulsando  $  en modo Normal.

  2. Escriba una  a  (minúscula) para añadir texto DESPUÉS del carácter
     que está sobre el cursor. (A mayúscula añade texto al final de la línea).

Nota: ¡Esto evita el pulsar  i , el último carácter, el texto a insertar,
      <ESC>, cursor a la derecha y, finalmente, x , sólo para añadir algo
      al final de una línea!

  3. Complete ahora la primera línea. Nótese que append es exactamente lo
     mismo que modo Insert, excepto por el lugar donde se inserta el texto.

---> Esta línea le permitirá praticar
---> Esta línea le permitirá praticar el añadido de texto al final de una línea.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 6.3: OTRA VERSIÓN DE «REPLACE» (remplazar)

    ** Pulse una  R  mayúscula para sustituir más de un carácter. **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Sitúe el cursor al comienzo de la primera palabra que sea diferente
     de las de la segunda línea marcada con ---> (la palabra 'anterior').

  3. Ahora pulse  R  y sustituya el resto del texto de la primera línea
     escribiendo sobre el viejo texto para que la primera línea sea igual
     que la primera.

---> Para hacer que esta línea sea igual que la anterior use las teclas.
---> Para hacer que esta línea sea igual que la siguiente escriba R y el texto.

  4. Nótese que cuando pulse <ESC> para salir, el texto no alterado permanece.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lección 6.4: FIJAR OPCIONES

 ** Fijar una opción de forma que una búsqueda o sustitución ignore la caja **
  (Para el concepto de caja de una letra, véase la nota al final del fichero)


  1. Busque 'ignorar' introduciendo:
     /ignorar
     Repita varias veces la búsque pulsando la tecla n

  2. Fije la opción 'ic' (Ignorar la caja de la letra) escribiendo:
     :set ic

  3. Ahora busque 'ignorar' de nuevo pulsando n
     Repita la búsqueda varias veces más pulsando la tecla n

  4. Fije las opciones 'hlsearch' y 'insearch':
     :set hls is

  5. Ahora introduzca la orden de búsqueda otra vez, y vea qué pasa:
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   RESUMEN DE LA LECCIÓN 6


  1. Pulsando  o  abre una línea por DEBAJO del cursor y sitúa el cursor en
     la línea abierta en modo Insert.
     Pulsando una O mayúscula se abre una línea SOBRE la que está el cursor.

  2. Pulse una	a  para insertar texto DESPUÉS del carácter sobre el cursor.
     Pulsando una  A  mayúscula añade automáticamente texto al final de la
     línea.

  3. Pulsando una  R  mayúscula se entra en modo Replace hasta que, para salir,
     se pulse <ESC>.

  4. Escribiendo «:set xxx» fija la opción «xxx»







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lección 7: MANDATOS PARA LA AYUDA EN LÍNEA

		 ** Utilice el sistema de ayuda en línea **


  Vim dispone de un sistema de ayuda en línea. Para activarlo, pruebe una
  de estas tres formas:
	- pulse la tecla <AYUDA> (si dispone de ella)
	- pulse la tecla <F1> (si dispone de ella)
	- escriba   :help <INTRO>

  Escriba   :q <INTRO>	 para cerrar la ventana de ayuda.

  Puede encontrar ayuda en casi cualquier tema añadiendo un argumento al
  mandato «:help» mandato. Pruebe éstos:

  :help w <INTRO>
  :help c_<T <INTRO>
  :help insert-index <INTRO>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Aquí concluye el tutor de Vim. Está pensado para dar una visión breve del
  editor Vim, lo suficiente para permitirle usar el editor de forma bastante
  sencilla. Está muy lejos de estar completo pues Vim tiene muchísimos más
  mandatos.

  Para lecturas y estudios posteriores se recomienda el libro:
	Learning the Vi Editor - por Linda Lamb
	Editorial: O'Reilly & Associates Inc.
  Es un buen libro para llegar a saber casi todo lo que desee hacer con Vi.
  La sexta edición incluye también información sobre Vim.

  Este tutorial ha sido escrito por Michael C. Pierce y Robert K. Ware,
  Colorado School of Mines utilizando ideas suministradas por Charles Smith,
  Colorado State University.
  E-mail: bware@mines.colorado.edu.

  Modificado para Vim por Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Traducido del inglés por:

  Eduardo F. Amatria
  Correo electrónico: eferna1@platea.pntic.mec.es

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�ZnPyBLdLdvim80/tutor/tutor.cs.cp1250nu�[���===============================================================================
=    V � t e j t e   v  t u t o r i a l u   V I M       -    Verze 1.5        =
===============================================================================

     Vim je velmi v�konn� editor, kter� m� p��li� mnoho p��kaz� na to, aby
     mohly b�t v�echny vysv�tlen� ve v�uce jako tato. Tato v�uka obsahuje
     dostate�n� mno�stv� p��kaz� na to, aby bylo mo�n� pou��vat Vim jako
     v�ce��elov� editor.

     P�ibli�n� �as pot�ebn� ke zvl�dnut� t�to v�uky je 25-30 minut, z�le��
     na tom, kolik �asu str�v�te p�ezku�ov�n�m.

     P��kazy v lekc�ch upravuj� text. Vytvo� kopii tohoto souboru pro
     procvi�ov�n� (p�i startu "vimtutor" je ji� toto kopie).

     Je d�le�it� pamatovat, �e tato v�uka je vytvo�ena pro v�uku pou��v�n�m.
     To znamen�, �e je pot�eba si p��kazy vyzkou�et pro jejich spr�vn�
     nau�en�. Pokud si jen �te� text, p��kazy zapomene�!

     Nyn� se p�esv�d�te, �e Caps-Lock NEN� stla�en� a n�kolikr�t stiskn�te
     kl�vesu  j   aby se kurzor posunul natolik, �e lekce 1.1 zapln� celou
     obrazovku.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 1.1:  POHYB KURZORU


   ** Pro pohyb kurzoru pou��vej kl�vesy h,j,k,l jak je zn�zorn�no n�e. **
	     ^
	     k		   Funkce: Kl�vesa h je vlevo a vykon� pohyb vlevo.
       < h	 l >		   Kl�vesa l je vpravo a vykon� pohyb vpravo.
	     j			   Kl�vesa j vypad� na �ipku dolu.
	     v
  1. Pohybuj kurzorem po obrazovce dokud si na to nezvykne�.

  2. Dr� kl�vesu pro pohyb dolu (j), dokud se jej� funkce nezopakuje.
---> Te� v� jak se p�esunout na n�sleduj�c� lekci.

  3. Pou�it�m kl�vesy dolu p�ejdi na lekci 1.2.

Pozn�mka: Pokud si n�kdy nejsi jist n���m, co jsi napsal, stla� <ESC> pro
          p�echod do Norm�ln�ho m�du. Pot� p�epi� po�adovan� p��kaz.

Pozn�mka: Kurzorov� kl�vesy tak� funguj�, av�ak pou��v�n� hjkl je rychlej��
          jakmile si na n�j zvykne�.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.2: SPU�T�N� A UKON�EN� VIM


  !! POZN�MKA: P�ed vykon�n�m t�chto krok� si p�e�ti celou lekci!!

  1. Stla� <ESC> (pro uji�t�n�, �e se nach�z� v Norm�ln�m m�du).

  2. Napi�:			:q! <ENTER>.

---> T�mto ukon�� editor BEZ ulo�en� zm�n, kter� si vykonal.
     Pokud chce� ulo�it zm�ny a ukon�it editor napi�:
				:wq  <ENTER>

  3. A� se dostane� na p��kazov� ��dek, napi� p��kaz, kter�m se dostane� zp�t
     do t�to v�uky. To m��e b�t: vimtutor <ENTER>
     B�n� se pou��v�:		 vim tutor <ENTER>

---> 'vim' znamen� spu�t�n� editoru, 'tutor' je soubor k editaci.

  4. Pokud si tyto kroky spolehliv� pamatuje�, vykonej kroky 1 a� 3, ��m�
     ukon�� a znovu spust� editor. Potom p�esu� kurzor dolu na lekci 1.3.
     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.3: �PRAVA TEXTU - MAZ�N�


  ** Stisknut�m kl�vesy  x  v Norm�ln�m m�du sma�e� znak na m�st� kurzoru. **

  1. P�esu� kurzor n�e na ��dek ozna�en� --->.

  2. K odstran�n� chyb p�ejdi kurzorem na znak, kter� chce� smazat.

  3. Stla� kl�vesu  x  k odstran�n� necht�n�ch znak�.

  4. Opakuj kroky 2 a� 4 dokud nen� v�ta spr�vn�.

---> Kr��va sko��illa p�ess m�ss�c.

  5. Pokud je v�ta spr�vn�, p�ejdi na lekci 1.4.

POZN�MKA: Nesna� se pouze zapamatovat p�edv�d�n� p��kazy, u� se je pou��v�n�m.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.4: �PRAVA TEXTU - VKL�D�N�


      ** Stla�en� kl�vesy  i  v Norm�ln�m m�du umo��uje vkl�d�n� textu. **

  1. P�esu� kurzor na prvn� ��dek ozna�en� --->.

  2. Pro upraven� prvn�ho ��dku do podoby ��dku druh�ho, p�esu� kurzor na
     prvn� znak za m�sto, kde m� b�t text vlo�en�.

  3. Stla�  i  a napi� pot�ebn� dodatek.

  4. Po opraven� ka�d� chyby stla� <ESC> pro n�vrat do Norm�ln�ho m�du.
     Opakuj kroky 2 a� 4 dokud nen� v�ta spr�vn�.

---> N�jak� txt na t�to .
---> N�jak� text chyb� na t�to ��dce.

  5. Pokud ji� ovl�d� vkl�d�n� textu, p�ejdi na n�sleduj�c� shrnut�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 1


  1. Kurzorem se pohybuje pomoc� �ipek nebo kl�vesami hjkl.
	h (vlevo)	j (dolu)	k (nahoru)	l (vpravo)

  2. Pro spu�t�n� Vimu (z p��kazov�ho ��dku) napi�: vim SOUBOR <ENTER>

  3. Pro ukon�en� Vimu napi�: <ESC>  :q!  <ENTER>  bez ulo�en� zm�n.
	     	       anebo: <ESC>  :wq  <ENTER>  pro ulo�en� zm�n.

  4. Pro smaz�n� znaku pod kurzorem napi� v Norm�ln�m m�du:  x

  5. Pro vkl�d�n� textu od m�sta kurzoru napi� v Norm�ln�m m�du:
	 i     vkl�dan� text	<ESC>

POZN�MKA: Stla�en� <ESC> t� p�em�st� do Norm�ln�ho m�du nebo zru�� necht�n�
      a ��ste�n� dokon�en� p��kaz.

Nyn� pokra�uj Lekc� 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 2.1: P��KAZY MAZ�N�


	       ** P��kaz  dw  sma�e znaky do konce slova. **

  1. Stla�  <ESC>  k ubezpe�en�, �e jsi v Norm�ln�m m�du.

  2. P�esu� kurzor n�e na ��dek ozna�en� --->.

  3. P�esu� kurzor na za��tek slova, kter� je pot�eba smazat.

  4. Napi�   dw	 , aby slovo zmizelo.

POZN�MKA: P�smena dw se zobraz� na posledn�m ��dku obrazovky jakmile je
	  nap�e�. Kdy� nap�e� n�co �patn�, stla�  <ESC>  a za�ni znova.

---> Jsou tu n�jak� slova z�bava, kter� nepat�� list do t�to v�ty.

  5. Opakuj kroky 3 a� 4 dokud nen� v�ta spr�vn� a p�ejdi na lekci 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 2.2: V�CE P��KAZ� MAZ�N�


	   ** Naps�n� p��kazu  d$  sma�e v�e a� do konce ��dky. **

  1. Stla�  <ESC>  k ubezpe�en�, �e jsi v Norm�ln�m m�du.

  2. P�esu� kurzor n�e na ��dek ozna�en� --->.

  3. P�esu� kurzor na konec spr�vn� v�ty (ZA prvn� te�ku).

  4. Napi�  d$  ,aby jsi smazal znaky a� do konce ��dku.

---> N�kdo napsal konec t�to v�ty dvakr�t. konec t�to v�ty dvakr�t.


  5. P�ejdi na lekci 2.3 pro pochopen� toho, co se stalo.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekce 2.3: ROZ�I�OVAC� P��KAZY A OBJEKTY


  Form�t mazac�ho p��kazu  d  je n�sleduj�c�:

	 [��slo]   d   objekt     NEBO     d   [��slo]   objekt
  Kde:
    ��slo - ud�v� kolikr�t se p��kaz vykon� (voliteln�, v�choz�=1).
    d - je p��kaz maz�n�.
    objekt - ud�v� na �em se p��kaz vykon�v� (vypsan� n�e).

  Kr�tk� v�pis objekt�:
    w - od kurzoru do konce slova, v�etn� mezer.
    e - od kurzoru do konce slova, BEZ mezer.
    $ - od kurzoru do konce ��dku.

POZN�MKA:  Stla�en�m kl�vesy objektu v Norm�ln�m m�du se kurzor p�esune na
           m�sto up�esn�n� ve v�pisu objekt�.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 2.4: V�JIMKA Z 'P��KAZ-OBJEKT'


    	          ** Naps�n�m   dd   sma�e� cel� ��dek. **

  Vzhledem k �astosti maz�n� cel�ho ��dku se auto�i Vimu rozhodli, �e bude
  jednodu�� napsat prost� dv� d k smaz�n� cel�ho ��dku.

  1. P�esu� kurzor na druh� ��dek spodn�ho textu.
  2. Napi�  dd  pro smaz�n� ��dku.
  3. P�ejdi na �tvrt� ��dek.
  4. Napi�   2dd   (vzpome� si  ��slo-p��kaz-objekt) pro smaz�n� dvou ��dk�.

      1)  R��e jsou �erven�,
      2)  Bl�to je z�bavn�,
      3)  Fialky jsou modr�,
      4)  M�m auto,
      5)  Hodinky ukazuj� �as,
      6)  Cukr je sladk�,
      7)  A to jsi i ty.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekce 2.5: P��KAZ UNDO


   ** Stla�  u	pro vr�cen� posledn�ho p��kazu,  U  pro celou ��dku. **

  1. P�esu� kurzor n�e na ��dek ozna�en� ---> a p�em�sti ho na prvn� chybu.
  2. Napi�  x  pro smaz�n� prvn�ho necht�n�ho znaku.
  3. Te� napi�  u  ��m� vr�t� zp�t posledn� vykonan� p��kaz.
  4. Nyn� oprav v�echny chyby na ��dku pomoc� p��kazu  x  .
  5. Napi� velk�  U  ��m� vr�t� ��dek do p�vodn�ho stavu.
  6. Te� napi�  u  n�kolikr�t, ��m� vr�t� zp�t p��kaz  U  .
  7. Stla� CTRL-R (kl�vesu CTRL dr� stla�enou a stiskni R) n�kolikr�t,
     ��m� vr�t� zp�t p�edt�m vr�cen� p��kazy (redo).

---> Opprav chybby nna toomto ��dku a nahra� je pommoc� undo.

  8. Toto jsou velmi u�ite�n� p��kazy. Nyn� p�ejdi na souhrn Lekce 2.

  



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 2


  1. Pro smaz�n� znak� od kurzoru do konce slova napi�:    dw

  2. Pro smaz�n� znak� od kurzoru do konce ��dku napi�:    d$

  3. Pro smaz�n� cel�ho ��dku napi�:    dd

  4. Form�t p��kazu v Norm�ln�m m�du je:

       [��slo]   p��kaz   objekt    NEBO    p��kaz     [��slo]   objekt
     kde:
       ��slo - ud�v� po�et opakov�n� p��kazu
       p��kaz - ud�v� co je t�eba vykonat, nap��klad  d  ma�e
       objekt - ud�v� rozsah p��kazu, nap��klad  w  (slovo),
		$ (do konce ��dku), atd.

  5. Pro vr�cen� p�ede�l� �innosti, napi�:	u (mal� u)
     Pro vr�cen� v�ech �prav na ��dku napi�:	U (velk� U)
     Pro vr�cen� vr�cen�ch �prav (redo) napi�:	CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekce 3.1: P��KAZ VLO�IT


       ** P��ka  p  vlo�� posledn� vymazan� text za kurzor. **

  1. P�esu� kurzor n�e na posledn� ��dek textu.

  2. Napi�  dd  pro smaz�n� ��dku a jeho ulo�en� do bufferu.

  3. P�esu� kurzor V݊E tam, kam smazan� ��dek pat��.

  4. V Norm�ln�m m�du napi�  p  pro op�tn� vlo�en� ��dku.

  5. Opakuj kroky 2 a� 4 dokud ��dky nebudou ve spr�vn�m po�ad�.

     d) Tak� se dok�e� vzd�l�vat?
     b) Fialky jsou modr�,
     c) Inteligence se u��,
     a) R��e jsou �erven�,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekce 3.2: P��KAZ NAHRAZEN�


          ** Naps�n�m  r  a znaku se nahrad� znak pod kurzorem. **

  1. P�esu� kurzor n�e na prvn� ��dek ozna�en� --->.

  2. P�esu� kurzor na za��tek prvn� chyby.

  3. Napi�  r  a potom znak, kter� nahrad� chybu.

  4. Opakuj kroky 2 a� 3 dokud nen� prvn� ��dka spr�vn�.

--->  Kdi� byl pz�n tento ��deg, n�kdu stla�il �paqn� kl�vesy!
--->  Kdy� byl ps�n tento ��dek, n�kdo stla��l �patn� kl�vesy!

  5. Nyn� p�ejdi na Lekci 3.2.

POZN�MKA: Zapamatuj si, �e by ses m�l u�it pou��v�n�m, ne zapamatov�n�m.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		           Lekce 3.3: P��KAZ �PRAVY


	  ** Pokud chce� zm�nit ��st nebo cel� slovo, napi�  cw . **

  1. P�esu� kurzor n�e na prvn� ��dek ozna�en� --->.

  2. Um�sti kurzor na p�smeno i v slov� �i�ok.

  3. Napi�  cw  a oprav slovo (v tomto p��pad� napi� '�dek'.)

  4. Stla� <ESC> a p�ejdi na dal�� chybu (prvn� znak, kter� t�eba zm�nit.)

  5. Opakuj kroky 3 a� 4 dokud nen� prvn� v�ta stejn� jako ta druh�.

---> Tento �i�ok m� n�kolik skic, kter� psadoinsa zm�nit pasdgf p��kazu.
---> Tento ��dek m� n�kolik slov, kter� pot�ebuj� zm�nit pomoc� p��kazu.

V�imni si, �e  cw  nejen nahrazuje slovo, ale tak� p�em�st� do vkl�d�n�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekce 3.4: V�CE ZM�N POU�IT�M c


   ** P��kaz pro �pravu se dru�� se stejn�mi objekty jako ten pro maz�n�. **

  1. P��kaz pro �pravu pracuje stejn� jako pro maz�n�. Form�t je:

       [��slo]   c   objekt	 NEBO	   c	[��slo]   objekt

  2. Objekty jsou tak� shodn�, jako nap�.: w (slovo), $ (konec ��dku), atd.

  3. P�ejdi n�e na prvn� ��dek ozna�en� --->.

  4. P�esu� kurzor na prvn� rozd�l.

  5. Napi�  c$  pro upraven� zbytku ��dku podle toho druh�ho a stla� <ESC>.

---> Konec tohoto ��dku pot�ebuje pomoc, aby byl jako ten druh�.
---> Konec tohoto ��dku pot�ebuje opravit pou�it�m p��kazu  c$  .



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 3


  1. Pro vlo�en� textu, kter� byl smaz�n, napi�  p  . To vlo�� smazan� text
     ZA kurzor (pokud byl ��dek smazan�, p�ejde na ��dek pod kurzorem).

  2. Pro nahrazen� znaku pod kurzorem, napi�  r  a potom znak, kter�m
     chce� p�vodn� znak nahradit.

  3. P��kaz na upravov�n� umo��uje zm�nit specifikovan� objekt od kurzoru
     do konce objektu. Nap��klad: Napi�  cw  ,��m� zm�n� text od pozice
     kurzoru do konce slova,  c$  zm�n� text do konce ��dku.

  4. Form�t pro nahrazov�n� je:

	 [��slo]   c   objekt      NEBO     c   [��slo]   objekt

Nyn� p�ejdi na n�sleduj�c� lekci.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 4.1: POZICE A STATUS SOUBORU


  ** Stla� CTRL-g pro zobrazen� sv� pozice v souboru a statusu souboru.
     Stla� SHIFT-G pro p�echod na ��dek v souboru. **

  Pozn�mka: P�e�ti si celou lekci ne� za�ne� vykon�vat kroky!!

  1. Dr� kl�vesu Ctrl stla�enou a stiskni  g  . Vespod obrazovky se zobraz�
     stavov� ��dek s n�zvem souboru a ��dkou na kter� se nach�z�. Zapamatuj
     si ��slo ��dku pro krok 3.

  2. Stla� shift-G pro p�esun na konec souboru.

  3. Napi� ��slo ��dku na kter�m si se nach�zel a stla� shift-G. To t�
     vr�t� na ��dek, na kter�m jsi d��ve stiskl Ctrl-g.
     (Kdy� p�e� ��sla, tak se NEZOBRAZUJ� na obrazovce.)

  4. Pokud se c�t� schopn� vykonat tyto kroky, vykonej je.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 4.2: P��KAZ VYHLED�V�N�


     ** Napi�  /  n�sledovan� �et�zcem pro vyhled�n� onoho �et�zce. **

  1. Stiskni / v Norm�ln�m m�du.  V�imni si, �e tento znak se spolu s
     kurzorem zobraz� v doln� ��sti obrazovky jako p��kaz  :  .

  2. Nyn� napi� 'chhybba' <ENTER>.  To je slovo, kter� chce� vyhledat.

  3. Pro vyhled�n� dal��ho v�sledku stejn�ho �et�zce, jednodu�e stla�  n  .
     Pro vyhled�n� dal��ho v�sledku stejn�ho �et�zce opa�n�m sm�rem, stiskni
     Shift-N.

  4. Pokud chce� vyhledat �et�zec v opa�n�m sm�ru, pou�ij p��kaz  ?  m�sto
     p��kazu  /  .

---> "chhybba" nen� zp�sob, jak hl�skovat chyba; chhybba je chyba.

Pozn�mka: Kdy� vyhled�v�n� dos�hne konce souboru, bude pokra�ovat na jeho
          za��tku.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekce 4.3: VYHLED�V�N� P�ROV� Z�VORKY


	      ** Napi�  %  pro nalezen� p�rov� ),], nebo } . **

  1. P�em�sti kurzor na kteroukoli (, [, nebo { v ��dku ozna�en�m --->.

  2. Nyn� napi� znak  %  .

  3. Kurzor se p�em�st� na odpov�daj�c� z�vorku.

  4. Stla�  %  pro p�esun kurzoru zp�t na otv�raj�c� z�vorku.

---> Toto ( je testovac� ��dek ('s, ['s ] a {'s } v n�m. ))

Pozn�mka: Toto je velmi u�ite�n� p�� lad�n� programu s chyb�j�c�mi
          uzav�rac�mi z�vorkami.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 4.4: ZP�SOB JAK ZM�NIT CHYBY
		      

   ** Napi�  :s/star�/nov�/g  pro nahrazen� slova 'nov�' za 'star�'. **

  1. P�esu� kurzor na ��dek ozna�en� --->.

  2. Napi�  :s/dobr��/dobr� <ENTER> .  V�imni si, �e tento p��kaz zm�n� pouze
     prvn� v�skyt v ��dku.

  3. Nyn� napi�	 :s/dobr��/dobr�/g  co� znamen� celkov� nahrazen� v ��dku.
     Toto nahrad� v�echny v�skyty v ��dku.

---> dobr�� suroviny a dobr�� n��in� jsou z�kladem dobr�� kuchyn�.

  4. Pro zm�nu v�ech v�skyt� �et�zce mezi dv�ma ��dky,
     Napi�   :#,#s/star�/nov�/g  kde #,# jsou ��sla on�ch ��dek.
     Napi�   :%s/star�/nov�/g    pro zm�nu v�ech v�skyt� v cel�m souboru.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 4


  1. Ctrl-g  vyp�e tvou pozici v souboru a status souboru.
     Shift-G  t� p�em�st� na konec souboru.  ��slo n�sledovan�
     Shift-G  t� p�esune na dan� ��slo ��dku.

  2. Naps�n�  /  n�sledovan� �et�zcem vyhled� �et�zec sm�rem DOP�EDU.
     Naps�n�  ?  n�sledovan� �et�zcem vyhled� �et�zec sm�rem DOZADU.
     Naps�n�  n  po vyhled�v�n� najde n�sleduj�c� v�skyt �et�zce ve stejn�m
     sm�ru, Shift-N ve sm�ru opa�n�m.

  3. Stisknut�  %  kdy� je kurzor na (,),[,],{, nebo } najde odpov�daj�c�
     p�rovou z�vorku.

  4. Pro nahrazen� nov�ho za prvn� star� v ��dku napi�     :s/star�/nov�
     Pro nahrazen� nov�ho za v�echny star� v ��dku napi�   :s/star�/nov�/g
     Pro nahrazen� �et�zc� mezi dv�mi ��dkami # napi�      :#,#s/star�/nov�/g
     Pro nahrazen� v�ech v�skyt� v souboru napi�	   :%s/star�/nov�/g
     Pro potvrzen� ka�d�ho nahrazen� p�idej 'c'		   :%s/star�/nov�/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekce 5.1: JAK VYKONAT VN�J�� P��KAZ


   ** Napi�  :!  n�sledovan� vn�j��m p��kazem pro spu�t�n� p��kazu. **

  1. Napi� obvykl� p��kaz  :  , kter� um�st� kurzor na spodek obrazovky
     To umo�n� napsat p��kaz.

  2. Nyn� stiskni  !  (vyk�i�n�k). To umo�n� vykonat jak�koliv vn�j��
     p��kaz z p��kazov�ho ��dku.

  3. Nap��klad napi�  ls  za ! a stiskni <ENTER>.  Tento p��kaz zobraz�
     obsah tv�ho adres�e jako v p��kazov�m ��dku.
     Vyzkou�ej  :!dir  pokud ls nefunguje.

Pozn�mka:  Takto je mo�n� vykonat jak�koliv p��kaz.

Pozn�mka:  V�echny p��kazy  :  mus� b�t dokon�en� stisknut�m <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 5.2: V�CE O UKL�D�N� SOUBOR�


	    ** Pro ulo�en� zm�n v souboru napi�  :w SOUBOR. **

  1. Napi�  :!dir  nebo  :!ls  pro v�pis aktu�ln�ho adres�e.
     U� v�, �e za t�mto mus� stisknout <ENTER>.

  2. Vyber si n�zev souboru, kter� je�t� neexistuje, nap��klad TEST.

  3. Nyn� napi�:  :w TEST  (kde TEST je vybran� n�zev souboru.)

  4. To ulo�� cel� soubor  (V�uka Vimu)  pod n�zvem TEST.
     Pro ov�en� napi� znovu :!dir  , ��m� zobraz� obsah adres�e.

Pozn�mka: Jakmile ukon�� Vim a znovu ho spust� s n�zvem souboru TEST,
          soubor bude p�esn� kopie v�uky, kdy� si ji ukl�dal.

  5. Nyn� odstra� soubor naps�n�m (MS-DOS):    :!del TEST
			     nebo (Unix):      :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 5.3: V�B�ROV� P��KAZ ULO�EN�


	    ** Pro ulo�en� ��sti souboru napi�  :#,# w SOUBOR **

  1. Je�t� jednou napi�  :!dir  nebo  :!ls  pro v�pis aktu�ln�ho adres�e
     a vyber vhodn� n�zev souboru jako nap�. TEST.

  2. P�esu� kurzor na vrch t�to str�nky a stiskni  Ctrl-g  pro zobrazen�
     ��sla ��dku.  ZAPAMATUJ SI TOTO ��SLO!

  3. Nyn� se p�esu� na spodek t�to str�nky a op�t stiskni Ctrl-g.
     ZAPAMATUJ SI I ��SLO TOHOTO �DKU!

  4. Pro ulo�en� POUZE ��sti souboru, napi�  :#,# w TEST  kde #,# jsou
     ��sla dvou zapamatovan�ch ��dk� (vrch, spodek) a TEST je n�zev souboru.

  5. Znova se ujisti, �e tam ten soubor je pomoc�  :!dir  ale NEODSTRA�UJ ho.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		        Lekce 5.4: SLU�OV�N� SOUBOR�


      	   ** K vlo�en� obsahu souboru napi�  :r N�ZEV_SOUBORU **

  1. Napi�  :!dir  pro uji�t�n�, �e soubor TEST st�le existuje.

  2. P�esu� kurzor na vrch t�to str�nky.

POZN�MKA: Po vykon�n� kroku 3 uvid� lekci 5.3.	Potom se op�t p�esu� dol�
          na tuto lekci.

  3. Nyn� vlo� soubor TEST pou�it�m p��kazu  :r TEST  kde TEST je n�zev
     souboru.

POZN�MKA: Soubor, kter� vkl�d� se vlo�� od m�sta, kde se nach�z� kurzor.

  4. Pro potvrzen� vlo�en� souboru, p�esu� kurzor zp�t a v�imni si, �e te�
     m� dv� kopie lekce 5.3, origin�l a souborovou verzi.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 5


  1.  :!p��kaz  vykon� vn�j�� p��kaz.

      N�kter� u�ite�n� p��klady jsou:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  zobraz� obsah souboru.
	  :!del SOUBOR     :!rm SOUBOR     -  odstran� SOUBOR.

  2.  :w SOUBOR  ulo�� aktu�ln� text jako SOUBOR na disk.

  3.  :#,#w SOUBOR  ulo�� ��dky od # do # do SOUBORU.

  4.  :r SOUBOR  vybere z disku SOUBOR a vlo�� ho do editovan�ho souboru
      za pozici kurzoru.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekce 6.1: P��KAZ OTEV��T


  ** Napi�  o  pro vlo�en� ��dku pod kurzor a p�epnut� do Vkl�dac�ho m�du. **

  1. P�em�sti kurzor n�e na ��dek ozna�en� --->.

  2. Napi�  o (mal�) pro vlo�en� ��dku POD kurzor a p�epnut� do
     Vkl�dac�ho m�du.

  3. Nyn� zkop�ruj ��dek ozna�en� ---> a stiskni <ESC> pro ukon�en�
     Vkl�dac�ho m�du.
  
---> Po stisknut�  o  se kurzor p�em�st� na vlo�en� ��dek do Vkl�dac�ho
     m�du.

  4. Pro otev�en� ��dku NAD kurzorem jednodu�e napi� velk�  O  , m�sto
     mal�ho o. Vyzkou�ej si to na n�sleduj�c�m ��dku.
Vlo� ��dek nad t�mto naps�n�m Shift-O po um�st�n� kurzoru na tento ��dek.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekce 6.2: P��KAZ P�IDAT


	     ** Stiskni  a  pro vlo�en� textu ZA kurzor. **

  1. P�esu� kurzor na n�e na konec ��dky ozna�en� --->
     stisknut�m $ v Norm�ln�m m�du.

  2. Stiskni  a  (mal�) pro p�id�n� textu ZA znak, kter� je pod kurzorem.
     (Velk�  A  p�id� na konec ��dku.)

Pozn�mka: T�mto se vyhne� stisknut�  i  , posledn�ho znaku, textu na vlo�en�,
          <ESC>, kurzor doprava, a nakonec  x  na p�id�v�n� na konec ��dku!

  3. Nyn� dokon�� prvn� ��dek. V�imni si, �e p�id�v�n� je vlastn� stejn� jako
     Vkl�dac� m�d, krom� m�sta, kam se text vkl�d�.

---> Tento ��dek ti umo��uje nacvi�it
---> Tento ��dek ti umo��uje nacvi�it p�id�v�n� textu na konec ��dky.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 6.3: JIN� ZP�SOB NAHRAZOV�N�


         ** Napi� velk�  R  pro nahrazen� v�c ne� jednoho znaku. **

  1. P�esu� kurzor na prvn� ��dek ozna�en� --->.

  2. Um�sti kurzor na za��tek prvn�ho slova, kter� je odli�n� od druh�ho
     ��dku ozna�en�ho ---> (slovo 'posledn�').

  3. Nyn� stiskni  R  a nahra� zbytek textu na prvn�m ��dku p�eps�n�m
     star�ho textu tak, aby byl prvn� ��dek stejn� jako ten druh�.

---> Pro upraven� prvn�ho ��dku do tvaru toho posledn� na stran� pou�ij kl.
---> Pro upraven� prvn�ho ��dku do tvaru toho druh�ho, napi� R a nov� text.

  4. V�imni si, �e jakmile stiskne� <ESC> v�echen nezm�n�n� text z�st�v�.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		         Lekce 6.4: NASTAVEN� MO�NOST�

  ** Nastav mo�nost, �e vyhled�v�n� anebo nahrazov�n� nedb� velikosti p�smen **

  1. Vyhledej �et�zec 'ignore' naps�n�m:
     /ignore
     Zopakuj n�kolikr�t stisknut� kl�vesy n.

  2. Nastav mo�nost 'ic' (Ignore case) naps�n�m p��kazu:
     :set ic

  3. Nyn� znovu vyhledej 'ignore' stisknut�m: n
     N�kolikr�t hled�n� zopakuj stisknut�m kl�vesy n.

  4. Nastav mo�nosti 'hlsearch' a 'incsearch':
     :set hls is

  5. Nyn� znovu vykonej vyhled�vac� p��kaz a sleduj, co se stane:
     /ignore

  6. Pro vypnut� zv�raz�ov�n� v�sledk� napi�:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRHNUT� LEKCE 6


  1. Stisknut�  o  otev�e nov� ��dek POD kurzorem a um�st� kurzor na vlo�en�
     ��dek do Vkl�dac�ho m�du.
     Naps�n� velk�ho  O  otev�e ��dek NAD ��dkem, na kter�m je kurzor.

  2. Stiskni  a  pro vlo�en� textu ZA znak na pozici kurzoru.
     Naps�n� velk�ho  A  automaticky p�id� text na konec ��dku.

  3. Stisknut� velk�ho  R  p�epne do Nahrazovac�ho m�du, dokud
     nestiskne� <ESC> pro jeho ukon�en�.

  4. Naps�n� ":set xxx" nastav� mo�nosti "xxx".








~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      LEKCE 7: P��KAZY ON-LINE N�POV�DY


		   ** Pou��vej on-line syst�m n�pov�dy **

  Vim m� obs�hl� on-line syst�m n�pov�dy. Pro za��tek vyzkou�ej jeden z
  n�sleduj�c�ch:
	- stiskni kl�vesu <HELP> (pokud ji m�)
	- stiskni kl�vesu <F1>  (pokud ji m�)
	- napi�  :help <ENTER>

  Napi�  :q <ENTER>  pro uzav�en� okna n�pov�dy.

  M��e� naj�t n�pov�du k jak�mukoliv t�matu p�id�n�m argumentu k
  p��kazu ":help". Zkus tyto (nezapome� stisknout <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  LEKCE 8: VYTVO�EN� INICIALIZA�N�HO SKRIPTU

		        ** Zapni funkce editoru Vim **

  Vim m� daleko v�ce funkc� ne� Vi, ale v�t�ina z nich je vypnuta ve v�choz�m
  nastaven�. Pro zapnut� n�kter�ch vytvo� soubor "vimrc".

  1. Za�ni upravovat soubor "vimrc". Toto z�vis� na pou�it�m syst�mu:
	:edit ~/.vimrc			pro Unix
	:edit $VIM/_vimrc		pro MS-Windows

  2. Nyn� �ti uk�zkov� "vimrc" soubor:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Ulo� soubor pomoc�:

	:write

  Po p��t�m startu Vim se zapne zv�raz�ov�n� syntaxe.
  Do souboru "vimrc" m��e� p�idat v�echny svoje up�ednost�ovan� nastaven�.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Toto ukon�uje v�uku Vim, kter� byla my�len� jako stru�n� p�ehled
  editoru Vim, tak akor�t posta�uj�c� pro lehk� a obstojn� pou��v�n� editoru.
  Tato v�uka m� daleko od �plnosti, proto�e Vim obsahuje podstatn� v�ce
  p��kaz�. D�le si p�e�ti u�ivatelsk� manu�l: ":help user-manual".

  Pro dal�� studium je doporu�en� kniha:
	Vim - Vi Improved - od Steve Oualline
	Nakladatel: New Riders
  Prvn� kniha ur�en� pro Vim. Obzvl�t� vhodn� pro za��te�n�ky.
  Obsahuje mno�stv� p��klad� a obr�zk�.
  viz http://iccf-holland.org/click5.html

  Tato kniha je star�� a v�ce v�novan� Vi ne� Vim, ale tak� doporu�en�:
	Learning the Vi Editor - od Linda Lamb
	Nakladatel: O'Reilly & Associates Inc.
  Je to dobr� kniha pro z�sk�n� v�domost� t�m� o v�em, co m��ete s Vi d�lat.
  �est� vyd�n� obsahuje t� informace o Vim.

  Tato v�uka byla napsan� autory Michael C. Pierce a Robert K. Ware,
  Colorado School of Mines s pou�it�m my�lenek od: Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Upravil pro Vim: Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  P�eklad do �e�tiny: Lubo� Turek
  E-Mail: lubos.turek@gmail.com
  2007 Feb 28 
PK�j�Z�W[u[uvim80/tutor/tutor.zh.eucnu�[���===============================================================================
=      ��     ӭ     ��     ��   �� V I M  ��  �� ��   ����      �汾 1.7       =
===============================================================================

     Vim ��һ�����кܶ����Ĺ��ܷdz�ǿ��ı༭�������ƪ�����ڱ��̵̳���
     �Ͳ���ϸ����ˡ����̵̳����Ŀ���ǽ��һЩ��Ҫ�Ļ����������պ���
     Щ������ܹ������׵ؽ� Vim ���һ��ͨ�ñ༭���ʹ��ˡ�

     ��ɱ��̵̳����ݴ�Լ��Ҫ25-30���ӣ�ȡ�����ѵ����ʱ�䡣

     ע�⣺
     ÿһ�ڵ�����������ı��ġ��Ƽ�����Ʊ��ĵ�һ��������Ȼ���ڸ�����
     ����ѵ��(�����ͨ��"vimtutor"����̵̳ģ���ô���ľ��Ѿ��Ǹ�����)��

     �м�һ�㣺���̵̳����˼·����ʹ���н���ѧϰ�ġ�Ҳ����˵�����Ҫͨ��
     ִ�����ѧϰ��DZ�����ȷ�÷������ֻ���Ķ������������ô�����
     ��ܿ������Щ���ģ�

     ��ˣ�������ȷ�����Shift-Lock(��Сд�����)��û�а��£�Ȼ�󰴼�����
     ����ĸ�� j �㹻�����ƶ���ֱ꣬����һ�ڵ������ܹ���ȫ����Ļ��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			��һ����һ�ڣ��ƶ����


	     ** Ҫ�ƶ���꣬�����˵��ֱ��� h��j��k��l ���� **

	     ^
	     k		    ��ʾ�� h �ļ�λ����ߣ�ÿ�ΰ��¾ͻ������ƶ���
       < h	 l >		   l �ļ�λ���ұߣ�ÿ�ΰ��¾ͻ������ƶ���
	     j			   j ���������һ֧��˷����µļ�ͷ��
	     v

  1. ���������Ļ���ƶ���ֱ꣬��������Ϊֹ��

  2. �������м�(j)��ֱ�����ֹ���ظ����С�

---> �����Ӧ���Ѿ�ѧ������ƶ�����һ���ɡ�

  3. ������ʹ�����м���������ƶ�����һ���ڶ��ڡ�

��ʾ���������ȷ�������µ���ĸ���밴��<ESC>���ص����(Normal)ģʽ��
      Ȼ���ٴδӼ����������Ҫ����

��ʾ�����Ӧ��Ҳ���������ġ�����ʹ��hjkl������ϰ��֮������ܹ�����
      �����Ļ���Ĵ��ƶ���ꡣ����������

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			��һ���ڶ��ڣ�VIM�Ľ�����˳�


  !! �ر���ʾ�������Ķ���һ�ڵ�������ݣ�Ȼ����ִ��������������

  1. ��<ESC>��(����Ϊ��ȷ����������ģʽ)��

  2. Ȼ�����룺			:q! <�س�>
     ���ַ�ʽ���˳��༭��ᶪ������༭�������ĸĶ���

  3. ����������������ʾ�����������ܹ�����ص����̵̳����Ǿ��ǣ�
     vimtutor <�س�>

  4. ��������Ѿ���μ�ס����Щ����Ļ�����Ӳ���1ִ�е�����3�˳���Ȼ
     ���ٴν���༭���

��ʾ�� :q! <�س�> �ᶪ�������κθĶ�������֮�����ѧ����α���Ķ����ļ���

  5. ��������Ƶ���һ������ڡ�


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			��һ������ڣ��ı��༭֮ɾ��


   ** �����(Normal)ģʽ�£����԰��� x ����ɾ��������λ�õ��ַ���**

  1. �뽫����ƶ����������������� ---> ����һ�С�

  2. Ϊ�������������뽫������׼��ɾ�����ַ���λ�ô���

  3. Ȼ���� x ���������ַ�ɾ����

  4. �ظ�����2������4��ֱ���������Ϊֹ��

---> The ccow jumpedd ovverr thhe mooon.

  5. ��ˣ������Ѿ�����ˣ������ǵ�һ�����Ľڡ�

�ر���ʾ���������̳�ʱ����Ҫǿ�м��䡣��סһ�㣺��ʹ����ѧϰ��



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��һ�����Ľڣ��ı��༭֮����


	 ** �����ģʽ�£����԰��� i ���������ı���**

  1. �뽫����ƶ����������������� ---> �ĵ�һ�С�

  2. Ϊ��ʹ�õ�һ�������ͬ�ڵڶ��У��뽫�������ı���һ��׼�������ַ�
     ��λ�á�

  3. Ȼ���� i �������������Ҫ���ı��ַ���

  4. ÿ�����������Ϻ��밴�� <ESC> ���������ģʽ��
     �ظ�����2�����4�Ա�������ӡ�

---> There is text misng this .
---> There is some text missing from this line.

  5. ������ı��������Ѿ�����⣬������Ķ�����ĵ�һ������ڡ�



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��һ������ڣ��ı��༭֮���


			** �� A ��������ı��� **

  1. �ƶ���굽�����һ������� ---> ��һ�С�
     ��������һ�е��ĸ��ַ��ϲ�����Ҫ��

  2. �� A �������Ҫ��������ݡ�

  3. �ı������Ϻ󣬰� <ESC> ���ص����ģʽ��

  4. �ƶ���굽����ڶ�������� ---> ��һ�С��ظ�����2�Ͳ���3�Ը�������ӡ�

---> There is some text missing from th
     There is some text missing from this line.
---> There is also some text miss
     There is also some text missing here.

  5. ���������ı�����е����ʱ������ѧϰ��һ������ڡ�

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ��һ������ڣ��༭�ļ�

		    ** ʹ�� :wq �Ա����ļ����˳��� **

  �ر���ʾ����ִ�����²���֮ǰ�����ȶ������С�ڣ�

  1. ����ڵ�һ���ڶ�������������˳����̳̣� :q!
     ���ߣ�������Է����һ���նˣ��������ִ�����²����

  2. �� shell ����ʾ���������� vim tutor <�س�>
     'vim'���� Vim �༭�����'tutor'���ϣ��༭���ļ�����֡�
     ��ʹ��һ�����ԸĶ����ļ���

  3. ʹ�����ǰ��Ľ̳���ѧ����������ɾ���ı���

  4. ����Ķ������ļ����˳� Vim������Щ���� :wq  <�س�>

  5. ����ڲ���1���Ѿ��˳� vimtutor�������� vimtutor �ƶ��������С��һ�ڡ�

  6. �Ķ������ϲ��裬Ū����ǵ����壬Ȼ����ʵ���н����ϰ��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ��һ��С��


  1. ������Ļ�ı��е��ƶ��ȿ����ü�ͷ����Ҳ����ʹ�� hjkl ��ĸ����
	 h (����)	j (����)       k (����)	    l (����)

  2. ����� Vim �༭�(���������ʾ��)�������룺vim �ļ�� <�س�>

  3. ��˳� Vim �༭��������� <ESC>   :q!   <�س�> �����иĶ���
                      �������� <ESC>   :wq   <�س�> ����Ķ���

  4. �����ģʽ��ɾ��������λ�õ��ַ����밴�� x

  5. ����������ı��������룺

	 i   ����������ı�   <ESC>		�ڹ��ǰ�����ı�
	 A   ���������ı�   <ESC>             ��һ�к�����ı�

�ر���ʾ������ <ESC> ������ص����ģʽ���߳��һ����������򲿷����
����

��ˣ���һ�����˽����������������ڶ��������ݡ�



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			�ڶ�����һ�ڣ�ɾ�������


	    ** ���� dw ���Դӹ�괦ɾ���һ�����ʵ�ĩβ��**

  1. �밴�� <ESC> ��ȷ����������ģʽ��

  2. �뽫����ƶ����������������� ---> ����һ�С�

  3. �뽫������׼��Ҫɾ���ĵ��ʵ���ʼ����

  4. �������� dw ɾ����õ��ʡ�

  �ر���ʾ���������ʱ����ĸ d ��ͬʱ�������Ļ�����һ�С�Vim �ڵȴ������
  ��ĸ w������������dz� d �������ַ����DZ�������ˣ��밴�� <ESC> ����
  Ȼ�����������

---> There are a some words fun that don't belong paper in this sentence.

  5. �ظ�����3�Ͳ���4��ֱ����������ϡ����ż���ڶ����ڶ������ݡ�


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      �ڶ����ڶ��ڣ�����ɾ�������


		   ** ���� d$ �ӵ�ǰ���ɾ������ĩ��**

  1. �밴�� <ESC> ��ȷ����������ģʽ��

  2. �뽫����ƶ����������������� ---> ����һ�С�

  3. �뽫����ƶ������е�β��(Ҳ�����ڵ�һ����š�.������)��

  4. Ȼ������ d$ �ӹ�괦ɾ���ǰ��β����

---> Somebody typed the end of this line twice. end of this line twice.


  5. ����ѧϰ�ڶ�������ھ�֪�����ô����ˡ�





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �ڶ�������ڣ��������Ͷ���


  ���ı��ı�������һ���������һ��������ɡ�
  ʹ��ɾ������� d ��ɾ�����ĸ�ʽ���£�

	d   motion

  ����
    d      - ɾ���������
    motion - ������IJ������(������г�)��

  һ����̵Ķ���б�
    w - �ӵ�ǰ��굱ǰλ��ֱ����һ��������ʼ������������ĵ�һ���ַ���
    e - �ӵ�ǰ��굱ǰλ��ֱ������ĩβ���������һ���ַ���
    $ - �ӵ�ǰ��굱ǰλ��ֱ����ǰ��ĩ��

  ������� de ��ӵ�ǰ���λ��ɾ��������ĩβ��

�ر���ʾ��
    ��������̽��ߣ��������ģʽ������������Ӧ����ļ�����ʹ�ò�������
    �����������ƶ��������Ķ���б�������һ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     �ڶ������Ľڣ�ʹ�ü��ָ�����


             ** �ڶ��ǰ������ֻ�ʹ��ظ���ô��Ρ� **

  1. �ƶ���굽�������� ---> ��һ�еĿ�ʼ��

  2. ���� 2w ʹ�����ǰ�ƶ��������ʡ�

  3. ���� 3e ʹ�����ǰ�ƶ�����������ʵ�ĩβ��

  4. ���� 0 (����) �ƶ���굽���ס�

  5. �ظ�����2�Ͳ���3�����Բ�ͬ����֡�

---> This is just a line with words you can move around in.

  6. ����ѧϰ�ڶ�������ڡ�



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       �ڶ�������ڣ�ʹ�ü����ɾ������


	       ** ʹ�ò����ʱ������ֿ���ʹ��ظ���ô��Ρ� **

  �����Ѿ��ᵽ��ɾ��������Ͷ������ϣ������������ж��֮ǰ����һ�������
  ɾ�����ࣺ
	 d   number(���)   motion

  1. �ƶ���굽�������� ---> ��һ���е�һ����д��ĸ�����ϡ�

  2. ���� d2w ��ɾ��������д��ĸ���ʡ�

  3. �ظ�����1�Ͳ���2��ʹ�ò�ͬ�����ʹ����һ��������ɾ��ȫ����ڵĴ�д��ĸ
     ����

--->  this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    �ڶ�������ڣ�������


		     ** ���� dd ����ɾ���һ����ǰ�С� **

  �������ɾ���ĸ�Ƶ�ȣ�Vi ������߾���Ҫ�����ɾ������������Ҫ��ͬһ����
  ����� d �Ϳ���ɾ��������ڵ����ˡ�

  1. �뽫����ƶ�������������Ķ̾�����еĵڶ��С�
  2. ���� dd ɾ�����С�
  3. Ȼ���ƶ��������С�
  4. �������� 2dd ɾ�����С�

--->  1)  Roses are red,
--->  2)  Mud is fun,
--->  3)  Violets are blue,
--->  4)  I have a car,
--->  5)  Clocks tell time,
--->  6)  Sugar is sweet
--->  7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   �ڶ������߽ڣ���������


	** ���� u ��������ִ�е������� U ���������е��޸ġ� **

  1. �뽫����ƶ����������������� ---> ����һ�У����������ڵ�һ������
     ����
  2. ���� x ɾ����һ�����뱣�����ĸ��
  3. Ȼ������ u ������ִ�е�(һ��)��
  4. ���Ҫʹ�� x ������е���д���
  5. ��������һ����д�� U ���ָ������е�ԭʼ״̬��
  6. ���Ŷ������ u �Գ�� U �Լ���ǰ����
  7. Ȼ�������� CTRL-R (�Ȱ��� CTRL �����ſ������Ű� R ��)�������
     ����������������Ҳ���dz�������

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. ��Щ���Ƿdz����õ��������ǵڶ�����С��ˡ�




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �ڶ���С��


  1. ��ӵ�ǰ���ɾ�����һ�����ʣ������룺dw
  2. ��ӵ�ǰ���ɾ�����ǰ��ĩβ�������룺d$
  3. �ɾ����У������룺dd

  4. ��ظ�һ������������ǰ�����һ����֣�2w
  5. �����ģʽ���޸����ĸ�ʽ�ǣ�
               operator   [number]   motion
     ����
       operator - �����������Ҫ������飬���� d ����ɾ��
       [number] - ���Ը��ӵ���֣�������ظ��Ĵ��
       motion   - ������������������ı��ϵ��ƶ������� w ������(word)��
		  $ ������ĩ�ȵȡ�

  6. ��ƶ���굽���ף��밴���0����0

  7. ������ǰ�IJ���������룺u (Сд��u)
     ������һ�������ĸĶ��������룺U (��д��U)
     ������ǰ�ij�����ָ���ǰ�IJ�����������룺CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   �������һ�ڣ���������


		** ���� p �����һ��ɾ��������������֮�� **

  1. �뽫����ƶ��������������һ������� ---> ��һ�С�

  2. ���� dd ������ɾ��������Ὣ���б��浽 Vim ��һ���Ĵ���С�

  3. ���Ž�����ƶ��� c) һ�У���׼�������λ�õ��Ϸ�����ס�����Ϸ�Ŷ��

  4. Ȼ�������ģʽ��(<ESC>������)���� p ������ճ����롣

  5. �ظ�����2�����4������е��������õ��ȷ��λ���ϡ�

---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ������ڶ��ڣ��滻�����


	  ** ���� r ��һ���ַ��滻������λ�õ��ַ���**

  1. �뽫����ƶ����������������� ---> �ĵ�һ�С�

  2. ���ƶ���굽��һ�������λ�á�

  3. �������� r ��Ҫ�滻�ɵ��ַ���������ܽ������滻��ˡ�

  4. �ظ�����2�Ͳ���3��ֱ����һ���Ѿ��޸���ϡ�

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Ȼ�����Ǽ��ѧϰ���������ڡ�

�ر���ʾ���м��Ҫ��ʹ����ѧϰ���������ڼ�����ѧϰ��



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			���������ڣ���������


		 ** Ҫ�ı��ı�ֱ��һ�����ʵ�ĩβ�������� ce **

  1. �뽫����ƶ����������������� ---> �ĵ�һ�С�

  2. ���Űѹ����ڵ��� lubw ����ĸ u ��λ����

  3. Ȼ������ cw �Լ��ȷ�ĵ���(�ڱ����������� ine )��

  4. ��� <ESC> ����Ȼ���궨λ����һ�������һ��׼�����ĵ���ĸ����

  5. �ظ�����3�Ͳ���4��ֱ����һ��������ȫ��ͬ�ڶ������ӡ�

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

��ʾ����ע�� ce ��������ɾ����һ�����ʣ��Ҳ����������ģʽ�ˡ�



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ��������Ľڣ�ʹ��c���ĸ���


	   ** ���������������ɾ����ʹ�õ�ͬ��Ķ�����ʹ�á� **

  1. ����������Ĺ����ʽ��ɾ������һ�µġ������ʽ�ǣ�

         c    [number]   motion

  2. ������(motion)Ҳ��һ��ģ����� w �����ʣ�$������ĩ�ȵȡ�

  3. �뽫����ƶ����������������� ---> �ĵ�һ�С�

  4. ���Ž�����ƶ�����һ�����󴦡�

  5. Ȼ������ c$ ʹ�ø���ʣ�µIJ��ָ����ͬ�ڶ���һ������ <ESC> ����

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				  �������


  1. Ҫ���������Ѿ�ɾ�����ı����ݣ��밴Сд��ĸ p �����ò�����Խ���ɾ��
     ���ı��������ڹ��֮�������һ��ɾ������һ����У���ô���н���
     �ڵ�ǰ�������е���һ�С�

  2. Ҫ�滻������λ�õ��ַ���������Сд�� r ��Ҫ�滻��ԭλ���ַ�������
     �����ɡ�

  3. ��������������ı�ӵ�ǰ������λ��ֱ�����ָʾ��λ���м���ı���
     �������� ce �����滻��ǰ��굽���ʵ�ĩβ�����ݣ����� c$ �����滻��
     ǰ��굽��ĩ�����ݡ�

  4. ��������ĸ�ʽ�ǣ�

	 c   [number]   motion

�������Ǽ��ѧϰ��һ����



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ���Ľ���һ�ڣ���λ���ļ�״̬

  ** ���� CTRL-G ��ʾ��ǰ�༭�ļ��е�ǰ��������λ���Լ��ļ�״̬��Ϣ��
     �����д G ��ֱ���ת���ļ��е�ijһָ���С�**

  ��ʾ���м�Ҫ��ͨ���������ݣ�֮��ſ���ִ�����²���!!!

  1. ���� CTRL �����ſ�Ȼ�� g �������dz��������Ϊ CTRL-G��
     ��ῴ��ҳ����ײ�����һ��״̬��Ϣ�У���ʾ�������ǵ�ǰ�༭���ļ��
     ���ļ��й��λ�á����ס�кţ�����ڲ���3���õ���

��ʾ���Ҳ������Ļ�����½ǿ������λ�ã������ 'ruler' ѡ������ʱ���
      (�μ� :help 'ruler')

  2. �����д G ����ʹ�õ�ǰ���ֱ���ת���ļ����һ�С�
     ���� gg ����ʹ�õ�ǰ���ֱ���ת���ļ���һ�С�

  3. ������ͣ����кţ�Ȼ�������д G������Ϳ��Է��ص����һ�ΰ���
     CTRL-G ʱ��ڵ���ˡ�

  4. �������û����Ļ�����ִ�в���1�����3�IJ�������ϰ��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			���Ľ��ڶ��ڣ���������


     ** ���� / ����һ���ַ������������ڵ�ǰ�ļ��в��Ҹ��ַ�����**

  1. �����ģʽ������ / �ַ������ʱ��ע�⵽���ַ��͹�궼�������Ļ��
     ������ : �����һ��ġ�

  2. �������� errroor <�س�>���Ǹ�errroor�����Ҫ���ҵ��ַ�����

  3. Ҫ����ͬ��һ�ε��ַ�����ֻ��Ҫ�� n ����Ҫ���෴�������ͬ��һ�ε���
     �������������д N ���ɡ�

  4. �������������ַ�������ʹ�� ? ���� / ���С�

  5. Ҫ�ص��֮ǰ��λ�ð� CTRL-O (��ס Ctrl ������ͬʱ������ĸ o)���ظ�������
     ���˸��ಽ��CTRL-I ���ת�����µ�λ�á�

--->  "errroor" is not the way to spell error;  errroor is an error.
��ʾ���������Ѿ������ļ�ĩβ�����һ��Զ����ļ�ͷ��������ң�����
      'wrapscan' ѡ���λ��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ���Ľ�����ڣ������ŵIJ���


	      ** ���� % ���Բ�����Ե���� )��]��}��**

  1. �ѹ����ڱ����������� --> ��һ���е��κ�һ�� (��[ �� { ����

  2. ���Ű� % �ַ���

  3. ��ʱ����λ��Ӧ��������Ե���Ŵ���

  4. �ٴΰ� % �Ϳ��������Եĵ�һ�����Ŵ���

  5. �ƶ���굽��һ�� (��)��[��]��{ �� } ������ % �鿴�����Ϊ��

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))


��ʾ���ڳ�����ʱ��������������Ҳ���Ե�����Ǻ����õġ�



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ���Ľ����Ľڣ��滻���


		** ���� :s/old/new/g �����滻 old Ϊ new��**

  1. �뽫����ƶ����������������� ---> ����һ�С�

  2. ���� :s/thee/the <�س�> ����ע������ֻ�ı�������еĵ�һ��ƥ��
     ����

  3. ���� :s/thee/the/g	�����滻ȫ�е�ƥ�䴮����������е� "thee" ���ᱻ
     �ı䡣

---> thee best time to see thee flowers is in thee spring.

  4. Ҫ�滻����֮���ֵ�ÿ��ƥ�䴮����
     ����   :#,#s/old/new/g   ���� #,# ��������滻������������
                              ��β���е��кš�
     ����   :%s/old/new/g     �����滻����ļ��е�ÿ��ƥ�䴮��
     ����   :%s/old/new/gc    ���ҵ�����ļ��е�ÿ��ƥ�䴮�����Ҷ�ÿ��ƥ�䴮
                              ��ʾ�Ƿ����滻��

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���Ľ�С��


  1. CTRL-G ������ʾ��ǰ������λ�ú��ļ�״̬��Ϣ��
     G ���ڽ�����ת��ļ����һ�С�
     ������һ���к�Ȼ�������д G ���ǽ�����ƶ�����кŴ�����С�
     gg ���ڽ�����ת��ļ���һ�С�

  2. ���� / Ȼ�����һ���ַ������ڵ�ǰ��༭���ĵ��������Ҹ��ַ�����
     ���� ? Ȼ�����һ���ַ��������ڵ�ǰ��༭���ĵ��з�����Ҹ��ַ�����
     ���һ�β���֮�� n �����ظ���һ�ε�������ͬһ�����ϲ�
     ����һ��ƥ���ַ�����ڣ����߰���д N ���෴���������һƥ���ַ�����ڡ�
     CTRL-O ����ת�ؽϾɵ�λ�ã�CTRL-I ��������µ�λ�á�

  3. ����굱ǰλ�������(��)��[��]��{��}���� % �Ὣ����ƶ�����Ե�����ϡ�

  4. ��һ�����滻ͷһ���ַ��� old Ϊ�µ��ַ��� new��������  :s/old/new
     ��һ�����滻��е��ַ��� old Ϊ�µ��ַ��� new��������  :s/old/new/g
     ��������滻��е��ַ��� old Ϊ�µ��ַ��� new��������  :#,#s/old/new/g
     ���ļ����滻��е��ַ��� old Ϊ�µ��ַ��� new��������  :%s/old/new/g
     ����ȫ���滻ʱѯ���û�ȷ��ÿ���滻����� c ��־        :%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		���彲��һ�ڣ��� VIM ��ִ���ⲿ���ķ���


	   ** ���� :! Ȼ����������һ���ⲿ������ִ�и��ⲿ��**

  1. �����������Ϥ�� : ���ʹ����ƶ����Ļ�ײ��������Ϳ�������һ�����ˡ�

  2. ���������̾�� ! ���ַ�������������ִ���ⲿ�� shell ���ˡ�

  3. ������ ls ���Ϊ�������� !ls <�س�> �������ͻ�оٳ����ǰĿ¼��
     ���ݣ�����ͬ����������ʾ�������� ls ���Ľ�һ����� !ls û��
     ����������� :!dir ������

��ʾ����е��ⲿ�����������ַ�ʽִ�У�����������в������Щ��

��ʾ����е� : ���������� <�س�> ��������ӽ��Ժ����ǾͲ��������ᵽ��һ��
      �ˡ�





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ���彲�ڶ��ڣ����ڱ����ļ��ĸ�����Ϣ


	     ** Ҫ�����ļ��ĸĶ����浽�ļ��У������� :w FILENAME ��**

  1. ���� :!dir ���� :!ls ��֪��ǰĿ¼�����ݡ��Ӧ����֪����󻹵���
     <�س�> �ɡ�

  2. ѡ��һ��δ���õ����ļ�������� TEST��

  3. �������� :w TEST  (�˴� TEST ����ѡ����ļ����)

  4. �������� TEST Ϊ�ļ����������ļ� (Vim �̳�)��Ϊ����֤��һ�㣬
     ���ٴ����� :!dir �� :!ls �鿴���Ŀ¼�б����ݡ�

��ע�⣺����˳� Vim Ȼ��������� vim TEST �ٴ��� Vim����ô���ļ���
     ��Ӧ��ͬ�����ʱ���ļ���������ȫһ��ġ�

  5. ���������ɾ�� TEST �ļ��ˡ��� MS-DOS �£������룺   :!del TEST
                                 �� Unix �£������룺     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ���彲����ڣ�һ������ѡ���Եı������


	    ** Ҫ�����ļ��IJ������ݣ������� v motion :w FILENAME **

  1. �ƶ���굽���С�

  2. ���Ű� v ����������ƶ����������Ŀ�ϡ����ע�⵽֮����ı�������ˡ�

  3. Ȼ�� : �ַ�����������Ļ�ײ����� :'<,'> ��

  4. ���������� w TEST������ TEST ��һ��δ��ʹ�õ��ļ����ȷ���������
     :'<,'>w TEST ֮�� <�س�> ����

  5. ��ʱ Vim ���ѡ�е���д�뵽�� TEST �����ļ���ȥ��ʹ�� :!dir �� :!ls
     ȷ���ļ����ȷ���档����ȱ�ɾ�������������һ���л��õ����

��ʾ���� v ��ʹ Vim �������ģʽ����ѡȡ��������Ĵ��ƶ����ʹѡȡ������
      ��С�����������ʹ��һ���������ѡ���ı����в�������磬�� d ����ɾ��
      ѡ�е��ı����ݡ�


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ���彲���Ľڣ���ȡ�ͺϲ��ļ�


       ** Ҫ��ǰ�ļ��в��������ļ������ݣ������� :r FILENAME **

  1. ��ѹ���ƶ�����������һ�С�

�ر���ʾ��ִ�в���2֮������������彲����ڵ����֣����ʱ����ƶ�
          ���ٴο����������ݡ�

  2. ����ͨ����� :r TEST ��ǰ�洴�����Ϊ TEST ���ļ���ȡ������
     ����ȡ�������ļ����ӹ�����λ�ô���ʼ���롣

  3. Ϊ��ȷ���ļ��Ѿ���ȡ�ɹ����ƶ����ص�ԭ����λ�þͿ���ע������ݵ�
     �彲����ڵ����ݣ�һ����ԭʼ���ݣ�����һ��������ļ��ĸ�����

��ʾ��������Զ�ȡ�ⲿ�����������磬 :r !ls ���Զ�ȡ ls ����������
      ��������ڹ�����档




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���彲С��


  1. :!command ����ִ��һ���ⲿ��� command��

     �뿴һЩʵ����ӣ�
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  ������ʾ��ǰĿ¼�����ݡ�
	  :!del FILENAME   :!rm FILENAME   -  ����ɾ���Ϊ FILENAME ���ļ���

  2. :w FILENAME  �ɽ���ǰ VIM ����ڱ༭���ļ����浽�Ϊ FILENAME ����
     ����

  3. v motion :w FILENAME �ɽ���ǰ�༭�ļ��п���ģʽ��ѡ�е����ݱ��浽�ļ�
     FILENAME �С�

  4. :r FILENAME ����ȡ�����ļ� FILENAME ��������뵽��ǰ�ļ��Ĺ��λ��
     ���档

  5. :r !dir ���Զ�ȡ dir ��������������õ���ǰ�ļ��Ĺ��λ�ú��档


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 �������һ�ڣ�������


	 ** ���� o ���ڹ����·����µ�һ�в��������ģʽ��**

  1. �뽫����ƶ����������������� ---> ����һ�С�

  2. ��������Сд�� o �ڹ�� *�·�* ���µ�һ�У�������ʹ�
     �������ģʽ��

  3. Ȼ������һЩ���֣�֮�� <ESC> ���˳�����ģʽ���������ģʽ��

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. Ϊ���ڹ�� *�Ϸ�* ���µ�һ�У�ֻ��Ҫ�����д�� O ������Сд�� o
     �Ϳ���ˡ��������в���һ�°ɡ�

---> Open up a line above this by typing O while the cursor is on this line.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			������ڶ��ڣ���������


		     ** ���� a �����ڹ��֮������ı��� **

  1. �������ģʽ�½�����ƶ����������������� ---> �ĵ�һ�е����ס�

  2. �������� e ֱ�����λ�� li ��ĩβ��

  3. ����Сд�� a ����ڹ��֮������ı��ˡ�

  4. �����ʲ��������������һ���е������֮�� <ESC> ���˳�����ģʽ�ص�
     ���ģʽ��

  5. ʹ�� e �ƶ���굽��һ��������ĵ��ʣ��ظ�����3�Ͳ���4��

---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

��ʾ��a��i �� A ������������ģʽ��Ωһ����������ַ������λ�á�


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ���������ڣ�����һ���û������İ汾


		      ** �����д�� R �����滻���ַ���**

  1. �뽫����ƶ����������������� ---> �ĵ�һ�С��ƶ���굽��һ�� xxx ��
     ��ʼλ�á�

  2. Ȼ�������д�� R ��ʼ�ѵ�һ���еIJ�ͬ�ڵڶ��е�ʣ���ַ���һ���룬��
     ����ȫ���滻��ԭ�е��ַ���ʹ�õ�һ����ȫ��ͬ�ڶ���ˡ�

  3. ���Ű� <ESC> ���˳��滻ģʽ�ص����ģʽ�������ע�⵽��δ�滻���ı�
     ��Ȼ����ԭ״��

  4. �ظ����ϲ��裬��ʣ��� xxx Ҳ�滻��

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

��ʾ���滻ģʽ�����ģʽ���ƣ�����ÿ��������ַ�����ɾ��һ�����е��ַ���

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ��������Ľڣ�����ճ��ı�


		 ** ʹ�ò���� y �����ı���ʹ�� p ճ��ı� **

  1. ��λ���������� ---> ��һ�У�������ƶ��� "a)" ֮��

  2. ����ʹ�� v �������ģʽ���ƶ���굽 "first" ��ǰ�档

  3. �������� y �Գ�(����)������ı���

  4. Ȼ���ƶ���굽��һ�е�ĩβ��j$

  5. �������� p �Է���(ճ�)����˵��ı���Ȼ�����룺a second <ESC>��

  6. ʹ�ÿ���ģʽѡ�� " item."���� y ���ƣ����� j$ ������ƶ�����һ��ĩβ��
     �� p ���ı�ճ�����

--->  a) this is the first item.
      b)

  ��ʾ��������԰� y ����������ʹ�ã����� yw �����������һ�����ʡ�

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    ���������ڣ����������ѡ��


		  ** ���ÿ�ʹ���һ����滻�ɺ��Դ�Сд��ѡ�� **

  1. Ҫ���ҵ��� ignore �������ģʽ������ /ignore <�س�>��
     Ҫ�ظ����Ҹôʣ������ظ��� n ����

  2. Ȼ������ ic ѡ��(Ignore Case�����Դ�Сд)�������룺 :set ic

  3. ���ڿ���ͨ������ n ���ٴβ��ҵ��� ignore��ע�⵽ Ignore �� IGNORE ����
     Ҳ���ҵ��ˡ�

  4. Ȼ������ hlsearch �� incsearch ����ѡ������룺 :set hls is

  5. ���ڿ����ٴ������������������ʲôЧ���� /ignore <�س�>

  6. Ҫ���ú��Դ�Сд�������룺 :set noic

��ʾ��Ҫ�Ƴ�ƥ����ĸ����ʾ�������룺  :nohlsearch
��ʾ�������Ҫ����һ�β���ʱ������ĸ��Сд�������ʹ�� \c��
      /ignore\c <�س�>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       �������

  1. ����Сд�� o �����ڹ���·����µ�һ�в��������ģʽ��
     �����д�� O �����ڹ���Ϸ����µ�һ�С�

  2. ����Сд�� a �����ڹ�����λ��֮������ı���
     �����д�� A �����ڹ������е���ĩ֮������ı���

  3. e ������ʹ����ƶ�������ĩβ��

  4. ����� y �����ı���p ճ���ǰ���Ƶ��ı���

  5. �����д�� R �������滻ģʽ��ֱ��� <ESC> ���ص����ģʽ��

  6. ���� :set xxx �������� xxx ѡ�һЩ���õ�ѡ�����£�
  	'ic' 'ignorecase'	����ʱ������ĸ��Сд
	'is' 'incsearch'	���Ҷ���ʱ��ʾ����ƥ��
	'hls' 'hlsearch'	�����ʾ��е�ƥ�����
     ѡ�������������汾��Ҳ��������԰汾��

  7. ��ѡ��ǰ���� no ���Թر�ѡ�  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ���߽���һ�ڣ���ȡ�����Ϣ


		      ** ʹ�����߰��ϵͳ **

  Vim ӵ��һ��ϸ��ȫ������߰��ϵͳ��Ҫ��ð��ϵͳ����ѡ��������ַ�
  ��֮һ��
	- ���� <HELP> �� (���������еĻ�)
	- ���� <F1> �� (���������еĻ�)
	- ����	:help <�س�>

  ���Ķ���������е�������˽�������ι���ġ�
  ���� CTRL-W CTRL-W   ����ʹ��ڴ���֮���ת��
  ���� :q <�س�> ���Թرհ�����ڡ�

  �ṩһ���ȷ�IJ����":help"��������ҵ����ڸ����İ������������
  �²��(�ɱ���˰��س���Ŷ)��

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ���߽��ڶ��ڣ�������ű�


			  ** ���� Vim ������ **

  Vim �Ĺ�������Ҫ�� Vi ��ö࣬�����д󲿷ֶ�û��ȱʡ���á�Ϊ��ʹ�ø����
  ���ԣ���ô���һ�� vimrc �ļ���

  1. ��ʼ�༭ vimrc �ļ����������ȡ������ʹ�õIJ��ϵͳ��
        :edit ~/.vimrc		���� Unix ϵͳ�ʹ�õ����
        :edit $VIM/_vimrc	���� MS-Windows ϵͳ�ʹ�õ����

  2. ���Ŷ�ȡ vimrc ʾ���ļ������ݣ�
        :r $VIMRUNTIME/vimrc_example.vim

  3. �����ļ������Ϊ��
        :write

  �´���� Vim ʱ���༭��ͻ�����﷨����Ĺ��ܡ�
  ����԰��ϲ���ĸ���������ӵ��� vimrc �ļ��С�
  Ҫ�˽�����Ϣ������ :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    ���߽�����ڣ���ȫ����


	      ** ʹ�� CTRL-D �� <TAB> ���Խ�������в�ȫ **

  1. ��ȷ�� Vim �������Լ���ģʽ���У� :set nocp

  2. �鿴һ�µ�ǰĿ¼���Ѿ�������Щ�ļ������룺 :!ls   ����  :!dir

  3. ��������һ��Ŀ¼����ʼ���֣��������룺 :e

  4. ���Ű� CTRL-D ����Vim ����ʾ�� e ��ʼ������б�

  5. Ȼ�� <TAB> ����Vim �Ჹȫ���Ϊ :edit ��

  6. �������һ���ո��Լ�һ�������ļ����ļ������ʼ���֣����磺 :edit FIL

  7. ���Ű� <TAB> ����Vim �Ჹȫ�ļ��(�����Ωһƥ���)��

��ʾ����ȫ�����������Ч���ֻ�賢�԰� CTRL-D �� <TAB>��
      ����� :help ���dz����á�

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				  ���߽�С��


  1. ���� :help ���߰� <F1> ���� <Help> �����Դ򿪰�����ڡ�

  2. ���� :help cmd �����ҵ����� cmd ���İ����

  3. ���� CTRL-W CTRL-W  ����ʹ��ڴ���֮���ת��

  4. ���� :q �Թرհ������

  5. ����Դ���һ�� vimrc ��ű��ļ���������ƫ�õ����á�

  6. ������ : ���ʱ���� CTRL-D ���Բ鿴���ܵIJ�ȫ����
     �� <TAB> ����ʹ��һ����ȫ��







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  vim �̵̳��˾ͽ���ˡ����̳�ֻ��Ϊ�˼���ؽ���һ�� Vim �༭��������������
  ������ʹ�����༭��ˡ���ӹ���ɣ�vim���кܶ�ܶ�������̳����
  �ܵľ������IJ�ú�Զ������Ҫ��ͨ�Ļ���������Ŭ��Ŷ����һ��������Ķ�
  Vim ���û��ֲᣬʹ�õ�����ǣ� :help user-manual

  �����Ȿ��ֵ���Ƽ����ڸ���һ�����Ķ���ѧϰ��
	Vim - Vi Improved - ��ߣ�Steve Oualline
	�����磺New Riders
  ���ǵ�һ����ȫ���� Vim ���鼮������ڳ�ѧ���ر����á����а����д�ʵ��
  ��ͼʾ��
  �֪���飬����� http://iccf-holland.org/click5.html

  �����Ȿ��Ƚ��˶������ݸ����ǹ��� Vi ���� Vim������Ҳֵ���Ƽ���
	Learning the Vi Editor - ��ߣ�Linda Lamb
	�����磺O'Reilly & Associates Inc.
  ����һ��������飬ͨ���������ܹ��˽⵽�κ����Ҫʹ�� Vi ������顣
  ����ĵ�����汾Ҳ������һЩ���� Vim ����Ϣ��

  ���̳�������� Calorado School of Mines �� Michael C. Pierce ��
  Robert K. Ware ���д�ģ����кܶഴ������� Colorado State University ��
  Charles Smith �ṩ�����ߵĵ��������ǣ�bware@mines.colorado.edu

  ���̳����� Bram Moolenaar רΪ Vim �����޶���

  �����߸��ԣ�
  ===========
      �������Ľ̷̳����֮������Ϊ����̩ <beos@turbolinux.com.cn>������
      ����һ����ϵ��ַ��linuxrat@gnuchina.org��

      �������Ľ̳��ǴӼ������Ľ̷̳����ʹ�� Debian GNU/Linux ������ĿС
      ����ڹ�������д�����ĺ���ת���  autoconvert ת�����ɵģ�����ת
      ���Ľ����һЩϸ�ڵĸĶ���

  ����¼��
  =========
      2012��10��01�� ���� <alick9188@gmail.com>
      �� vimtutor ������ 1.5 ����� 1.7��

      2002��08��30�� ����̩ <beos@turbolinux.com.cn>
      ��л RMS@SMTH ��ָ������ദ���������

      2002��04��22�� ����̩ <linuxrat@gnuchina.org>
      ��л xuandong@sh163.net ��ָ�������������������

      2002��03��18�� ����̩ <linuxrat@gnuchina.org>
      ����Bram Moolenaar�����2002��03��16�յ����Ҫ�󣬽�vimtutor1.4����
      �������vimtutor1.5��

      2001��11��15�� ����̩ <linuxrat@gnuchina.org>
      ��vimtutor1.4������ύ��Bram Moolenaar��Sven Guckes��
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�
�L����vim80/tutor/tutor.frnu�[���===============================================================================
=    B i e n v e n u e  dans  l e  T u t o r i e l  de  V I M  -  Version 1.7 =
===============================================================================

     Vim est un éditeur très puissant qui a trop de commandes pour pouvoir
     toutes les expliquer dans un cours comme celui-ci, qui est conçu pour en
     décrire suffisamment afin de vous permettre d'utiliser simplement Vim.

     Le temps requis pour suivre ce cours est d'environ 25 à 30 minutes, selon
     le temps que vous passerez à expérimenter.

     ATTENTION :
     Les commandes utilisées dans les leçons modifieront le texte. Faites une
     copie de ce fichier afin de vous entraîner dessus (si vous avez lancé
     "vimtutor" ceci est déjà une copie).

     Il est important de garder en tête que ce cours est conçu pour apprendre
     par la pratique. Cela signifie que vous devez exécuter les commandes
     pour les apprendre correctement. Si vous vous contentez de lire le texte,
     vous oublierez les commandes !

     Maintenant, vérifiez que votre clavier n'est PAS verrouillé en
     majuscules, et appuyez la touche  j  le nombre de fois suffisant pour
     que la Leçon 1.1 remplisse complètement l'écran.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leçon 1.1 : DÉPLACEMENT DU CURSEUR


  ** Pour déplacer le curseur, appuyez les touches h,j,k,l comme indiqué. **
          ^
          k        Astuce :  La touche h est à gauche et déplace à gauche.
    < h       l >            La touche l est à droite et déplace à droite.
          j                  La touche j ressemble à une flèche vers le bas.
          v
  1. Déplacez le curseur sur l'écran jusqu'à vous sentir à l'aise.

  2. Maintenez la touche Bas (j) enfoncée jusqu'à ce qu'elle se répète.
     Maintenant vous êtes capable de vous déplacer jusqu'à la leçon suivante.

  3. En utilisant la touche Bas, allez à la Leçon 1.2.

NOTE : Si jamais vous doutez de ce que vous venez de taper, appuyez <Échap>
       pour revenir en mode Normal. Puis retapez la commande que vous vouliez.

NOTE : Les touches fléchées devraient également fonctionner. Mais en utilisant
       hjkl vous pourrez vous déplacer beaucoup plus rapidement, une fois que
       vous aurez pris l'habitude.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 1.2 : SORTIR DE VIM


 !! NOTE : Avant d'effectuer les étapes ci-dessous, lisez toute cette leçon !!

  1. Appuyez la touche  <Échap>  (pour être sûr d'être en mode Normal).

  2. Tapez :  :q! <Entrée>
     Ceci quitte l'éditeur SANS enregistrer les changements que vous avez
     faits.

  3. Revenez ici en tapant la commande qui vous a mené à ce tutoriel.
     Cela pourrait être :    vimtutor <Entrée>

  4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes
     1 à 3 pour sortir puis rentrer dans l'éditeur.

NOTE :  :q! <Entrée> annule tous les changements que vous avez faits. Dans
         quelques leçons, vous apprendrez à enregistrer les changements.

  5. Déplacez le curseur à la Leçon 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leçon 1.3 : ÉDITION DE TEXTE - EFFACEMENT


         ** Appuyez   x   pour effacer le caractère sous le curseur. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  2. Pour corriger les erreurs, déplacez le curseur jusqu'à ce qu'il soit
     sur un caractère à effacer.

  3. Appuyez la touche  x  pour effacer le caractère redondant.

  4. Répétez les étapes 2 à 4 jusqu'à ce que la phrase soit correcte.

---> La vvache à sautéé au-ddessus dde la luune.

  5. Maintenant que la ligne est correcte, passez à la Leçon 1.4.

NOTE : En avançant dans ce cours, n'essayez pas de mémoriser, apprenez par
       la pratique.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 1.4 : ÉDITION DE TEXTE - INSERTION


                    ** Appuyez  i  pour insérer du texte. **

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.

  2. Pour rendre la première ligne identique à la seconde, mettez le curseur
     sur le premier caractère APRÈS l'endroit où insérer le texte.

  3. Appuyez  i  et tapez les caractères qui manquent.

  4. Une fois qu'une erreur est corrigée, appuyez <Échap> pour revenir en mode
     Normal. Répétez les étapes 2 à 4 pour corriger la phrase.

---> Il mnqe caractères cette .
---> Il manque des caractères dans cette ligne.

  5. Une fois que vous êtes à l'aise avec l'insertion de texte, allez à la
     Leçon 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 1.5 : ÉDITION DE TEXTE - AJOUTER


                    ** Appuyez  A  pour ajouter du texte. **

  1. Déplacez le curseur sur la première ligne ci-dessous marquée --->.
     Peu importe sur quel caractère se trouve le curseur sur cette ligne.

  2. Appuyez  A  et tapez les ajouts nécessaires.

  3. Quand le texte a été ajouté, appuyez <Échap> pour revenir en mode
     Normal.

  4. Déplacez le curseur sur la seconde ligne marquée ---> et répétez les
     étapes 2 et 3 pour corriger la phrase.

---> Il manque du texte à partir de cet
     Il manque du texte à partir de cette ligne.
---> Il manque aussi du te
     Il manque aussi du texte ici.

  5. Quand vous vous sentez suffisamment à l'aise pour ajouter du texte,
     allez à la Leçon 1.6.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leçon 1.6 : ÉDITER UN FICHIER


          ** Utilisez  :wq  pour enregistrer un fichier et sortir. **

!! NOTE : Lisez toute la leçon avant d'exécuter les instructions ci-dessous !!

  1. Sortez de ce tutoriel comme vous l'avez fait dans la Leçon 1.2 :  :q!
     Ou, si vous avez accès à un autre terminal, exécutez-y les actions
     qui suivent.

  2. À l'invite du shell, tapez cette commande :  vim tutor <Entrée>
     'vim' est la commande pour démarrer l'éditeur Vim, 'tutor' est le
     nom du fichier que vous souhaitez éditer. Utilisez un fichier qui peut
     être modifié.

  3. Insérez et effacez du texte comme vous l'avez appris dans les leçons
     précédentes.

  4. Enregistrez le fichier avec les changements et sortez de Vim avec :
       :wq <Entrée>

  5. Si vous avez quitté vimtutor à l'étape 1, recommencez vimtutor et
     déplacez-vous en bas vers le résumé suivant.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 1


  1. Le curseur se déplace avec les touches fléchées ou les touches hjkl.
           h (gauche)      j (bas)      k (haut)      l (droite)

  2. Pour démarrer Vim à l'invite du shell tapez :  vim FICHIER <Entrée>

  3. Pour quitter Vim tapez :  <Échap> :q! <Entrée>  pour perdre tous les
                                                     changements.
                   OU tapez :  <Échap> :wq <Entrée>  pour enregistrer les
                                                     changements.

  4. Pour effacer un caractère sous le curseur tapez :  x

  5. Pour insérer ou ajouter du texte tapez :
         i   tapez le texte à insérer avant le curseur   <Échap>
         A   tapez le texte à ajouter en fin de ligne    <Échap>

NOTE : Appuyer  <Échap>  vous place en mode Normal ou annule une commande
       partiellement tapée dont vous ne voulez plus.

Passez maintenant à la leçon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leçon 2.1 : COMMANDES D'EFFACEMENT


                     ** Tapez  dw  pour effacer un mot. **

  1. Appuyez  <Échap>  pour être sûr d'être en mode Normal.

  2. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  3. Placez le curseur sur le début d'un mot qui a besoin d'être effacé.

  4. Tapez  dw  pour faire disparaître ce mot.

NOTE : La lettre  d  apparaîtra sur la dernière ligne de l'écran lors de
       votre frappe. Vim attend que vous tapiez  w . Si vous voyez un autre
       caractère que  d  vous avez tapé autre chose ; appuyez <Échap> et
       recommencez.

---> Il y a quelques drôle mots qui n'ont rien à faire papier sur cette ligne.

  5. Répétez les étapes 3 et 4 jusqu'à ce que la phrase soit correcte et allez
     à la Leçon 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leçon 2.2 : PLUS DE COMMANDES D'EFFACEMENTS


          ** Tapez  d$  pour effacer jusqu'à la fin de la ligne. **

  1. Appuyez  <Échap>  pour être sûr d'être en mode Normal.

  2. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  3. Déplacez le curseur jusqu'à la fin de la ligne correcte (APRÈS le
     premier . ).

  4. Tapez  d$  pour effacer jusqu'à la fin de la ligne.

---> Quelqu'un a tapé la fin de cette ligne deux fois. cette ligne deux fois.

  5. Allez à la Leçon 2.3 pour comprendre ce qui se passe.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Leçon 2.3 : À PROPOS DES OPÉRATEURS ET DES MOUVEMENTS


  Plusieurs commandes qui changent le texte sont constituées d'un opérateur
  et d'un mouvement. Le format pour une commande d'effacement avec l'opérateur
  d  d'effacement est le suivant :

        d   mouvement

  Où :
    d         - est l'opérateur d'effacement
    mouvement - est le mouvement sur lequel agit l'opérateur (listés
                ci-dessous)

  Une courte liste de mouvements :
    w - jusqu'au début du prochain mot, en EXCLUANT son premier caractère.
    e - jusqu'à la fin du mot courant, en EXCLUANT son dernier caractère.
    $ - jusqu'à la fin de la ligne, en INCLUANT son dernier caractère.

  Ainsi, taper  de  va effacer depuis le curseur jusqu'à la fin du mot.

NOTE : Le seul appui d'un mouvement en mode Normal, sans commande, déplace le
       curseur comme indiqué.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Leçon 2.4 : UTILISER UN QUANTIFICATEUR AVEC UN MOUVEMENT


       ** Taper un nombre avant un mouvement le répète autant de fois. **

  1. Déplacez le curseur au début de la ligne marquée ---> ci-dessous.

  2. Tapez  2w  pour déplacer le curseur de 2 mots vers l'avant.

  3. Tapez  3e  pour déplacer le curseur à la fin du troisième mot vers
     l'avant.

  4. Tapez  0  (zéro) pour déplacer au début de la ligne.

  5. Répétez les étapes 2 et 3 avec des quantificateurs différents.

---> Ceci est juste une ligne avec des mots où vous pouvez vous déplacer.

  6. Déplacez-vous à la Leçon 2.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Leçon 2.5 : UTILISER UN QUANTIFICATEUR POUR EFFACER PLUS


       ** Taper un nombre avec un opérateur le répète autant de fois. **

  Outre la combinaison de l'opérateur d'effacement avec un déplacement
  mentionné ci-dessus, vous pouvez insérer un nombre (quantificateur)
  pour effacer encore plus :
       d   nombre   déplacement

  1. Déplacez le curseur vers le premier mot en MAJUSCULES dans la ligne
     marquée --->.

  2. Tapez  d2w  pour effacer les deux mots en MAJUSCULES.

  3. Répétez les étapes 1 et 2 avec des quantificateurs différents pour
     effacer les mots suivants en MAJUSCULES à l'aide d'une commande.

---> Cette ABC DE ligne FGHI JK LMN OP de mots est Q RS TUV nettoyée.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leçon 2.6 : OPÉREZ SUR DES LIGNES


              ** Tapez   dd   pour effacer une ligne complète. **

  Vu le nombre de fois où l'on efface des lignes complètes, les concepteurs
  de Vi ont décidé qu'il serait plus facile de taper simplement deux  d
  pour effacer une ligne.

  1. Placez le curseur sur la seconde ligne de la phrase ci-dessous.
  2. Tapez  dd  pour effacer la ligne.
  3. Maintenant allez à la quatrième ligne.
  4. Tapez   2dd   pour effacer deux lignes.

--->  1)  Les roses sont rouges,
--->  2)  La boue c'est drôle,
--->  3)  Les violettes sont bleues,
--->  4)  J'ai une voiture,
--->  5)  Les horloges donnent l'heure,
--->  6)  Le sucre est doux
--->  7)  Tout comme vous.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leçon 2.7 : L'ANNULATION


            ** Tapez  u  pour annuler les dernières commandes. **
               ** Tapez  U  pour récupérer toute une ligne. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous et placez-le sur
     la première erreur.
  2. Tapez  x  pour effacer le premier caractère redondant.
  3. Puis tapez  u  pour annuler la dernière commande exécutée.
  4. Cette fois, corrigez toutes les erreurs de la ligne avec la commande  x .
  5. Puis tapez un  U  majuscule pour remettre la ligne dans son état initial.
  6. Puis tapez  u  deux-trois fois pour annuler le  U  et les commandes
     précédentes.
  7. Maintenant tapez  CTRL-R  (maintenez la touche CTRL enfoncée pendant que
     vous appuyez R) deux-trois fois pour refaire les commandes (annuler
     les annulations).

---> Coorrigez les erreurs suur ccette ligne et reemettez-les avvec 'annuler'.

  8. Ce sont des commandes très utiles. Maintenant, allez au résumé de la
     Leçon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 2


  1. Pour effacer du curseur jusqu'au mot suivant tapez :         dw

  2. Pour effacer du curseur jusqu'à la fin d'une ligne tapez :   d$

  3. Pour effacer toute une ligne tapez :                         dd

  4. Pour répéter un déplacement ajoutez un quantificateur :      2w

  5. Le format d'une commande de changement est :

       opérateur   [nombre]   déplacement

     Où :
       opérateur   - est ce qu'il faut faire, comme  d  pour effacer.
       [nombre]    - un quantificateur optionnel pour répéter le déplacement.
       déplacement - déplace le long du texte à opérer, tel que  w  (mot),
                     $ (jusqu'à la fin de ligne), etc.

  6. Pour se déplacer au début de ligne, utilisez un zéro :  0

  5. Pour annuler des actions précédentes, tapez :            u (u minuscule)
     Pour annuler tous les changements sur une ligne tapez :  U (U majuscule)
     Pour annuler l'annulation tapez :                        CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             Leçon 3.1 : LE COLLAGE


   ** Tapez  p  pour placer après le curseur ce qui vient d'être effacé. **

  1. Placez le curseur sur la première ligne ci-dessous marquée --->.

  2. Tapez  dd  pour effacer la ligne et la placer dans un registre de Vim.

  3. Déplacez le curseur sur la ligne c) au-dessus où vous voulez remettre la
     ligne effacée.

  4. En mode Normal, tapez   p   pour remettre la ligne en dessous du curseur.

  5. Répétez les étapes 2 à 4 pour mettre toutes les lignes dans le bon ordre.

---> d) Et vous, qu'apprenez-vous ?
---> b) Les violettes sont bleues,
---> c) L'intelligence s'apprend,
---> a) Les roses sont rouges,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 3.2 : LA COMMANDE DE REMPLACEMENT


     ** Tapez  rx  pour remplacer un caractère sous le curseur par  x . **

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.

  2. Placez le curseur de manière à ce qu'il surplombe la première erreur.

  3. Tapez  r  suivi du caractère qui doit corriger l'erreur.

  4. Répétez les étapes 2 et 3 jusqu'à ce que la première ligne soit égale
     à la seconde.

--->  Quand cette ligne a été sauvie, quelqu'un a lait des faunes de frappe !
--->  Quand cette ligne a été saisie, quelqu'un a fait des fautes de frappe !

  5. Maintenant, allez à la Leçon 3.3.

NOTE : N'oubliez pas que vous devriez apprendre par la pratique, pas par
       mémorisation.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 3.3 : L'OPÉRATEUR DE CHANGEMENT


            ** Pour changer jusqu'à la fin d'un mot, tapez  ce .**

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.

  2. Placez le curseur sur le  u  de luhko.

  3. Tapez  ce  et corrigez le mot (dans notre cas, tapez  'igne'.)

  4. Appuyez <Échap> et placez-vous sur le prochain caractère qui doit
     être changé.

  5. Répétez les étapes 3 et 4 jusqu'à ce que la première phrase soit
     identique à la seconde.

---> Cette luhko contient quelques myqa qui ont ricne d'être chantufip.
---> Cette ligne contient quelques mots qui ont besoin d'être changés.

Notez que  ce  efface le mot et vous place ensuite en mode Insertion.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 3.4 : PLUS DE CHANGEMENTS AVEC c


    ** L'opérateur de changement fonctionne avec les mêmes déplacements
       que l'effacement. **

  1. L'opérateur de changement fonctionne de la même manière que
     l'effacement. Le format est :

         c   [nombre]   déplacement

  2. Les déplacements sont identiques :  w (mot) et  $ (fin de ligne).

  3. Déplacez-vous sur la première ligne marquée ---> ci-dessous.

  4. Placez le curseur sur la première erreur.

  5. Tapez  c$  et tapez le reste de la ligne afin qu'elle soit identique
     à la seconde ligne, puis tapez <Échap>.

---> La fin de cette ligne doit être rendue identique à la seconde.
---> La fin de cette ligne doit être corrigée avec la commande  c$ .

NOTE :  Vous pouvez utiliser la touche Retour Arrière pour corriger les
        erreurs lorsque vous tapez.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 3


  1. Pour remettre le texte qui a déjà été effacé, tapez  p . Cela Place le
     texte effacé APRÈS le curseur (si une ligne complète a été effacée, elle
     sera placée sous la ligne du curseur).

  2. Pour remplacer le caractère sous le curseur, tapez  r  suivi du caractère
     qui remplacera l'original.

  3. L'opérateur de changement vous permet de changer depuis la position du
     curseur jusqu'où le déplacement vous amène. Par exemple, tapez  ce
     pour changer du curseur jusqu'à la fin du mot,  c$  pour changer jusqu'à
     la fin d'une ligne.

  4. Le format pour le changement est :

         c   [nombre]   déplacement

Passez maintenant à la leçon suivante.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Leçon 4.1 : POSITION DU CURSEUR ET ÉTAT DU FICHIER


  ** Tapez CTRL-G pour afficher votre position dans le fichier et son état.
     Tapez  G  pour vous rendre à une ligne donnée du fichier. **

NOTE : Lisez toute cette leçon avant d'effectuer l'une des étapes !!

  1. Maintenez enfoncée la touche CTRL et appuyez sur  g . On appelle cela
     CTRL-G. Une ligne d'état va apparaître en bas de l'écran avec le nom
     du fichier et le numéro de la ligne où vous êtes. Notez ce numéro, il
     servira lors de l'étape 3.

NOTE : Vous pouvez peut-être voir le curseur en bas à droite de l'écran.
       Ceci arrive quand l'option 'ruler' est activée (voir  :help 'ruler')

  2. Tapez  G   pour vous déplacer à la fin du fichier.
     Tapez  gg  pour vous déplacer au début du fichier.

  3. Tapez le numéro de la ligne où vous étiez suivi de   G . Cela vous
     ramènera à la ligne où vous étiez au départ quand vous aviez appuyé
     CTRL-G.

  4. Si vous vous sentez prêt à faire ceci, effectuez les étapes 1 à 3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leçon 4.2 : LA RECHERCHE


          ** Tapez  /  suivi d'un texte pour rechercher ce texte. **

  1. Tapez le caractère  /  en mode Normal. Notez que celui-ci et le curseur
     apparaissent en bas de l'écran, comme lorsque l'on utilise  : .

  2. Puis tapez 'errreuur' <Entrée>. C'est le mot que vous voulez rechercher.

  3. Pour rechercher à nouveau le même texte, tapez simplement  n .
     Pour rechercher le même texte dans la direction opposée, tapez  N .

  4. Pour rechercher une phrase dans la direction opposée, utilisez  ?
     au lieu de  / .

---> erreur ne s'écrit pas "errreuur" ; errreuur est une erreur.

NOTE : Quand la recherche atteint la fin du fichier, elle reprend au début
       sauf si l'option 'wrapscan' est désactivée.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Leçon 4.3 : RECHERCHE DES PARENTHÈSES CORRESPONDANTES


           ** Tapez  %  pour trouver des ), ] ou } correspondants. **

  1. Placez le curseur sur l'un des (, [ ou { de la ligne marquée --->
     ci-dessous.

  2. Puis tapez le caractère  % .

  3. Le curseur se déplacera sur la parenthèse ou crochet correspondant.

  4. Tapez  %  pour replacer le curseur sur la parenthèse ou crochet
     correspondant.

  5. Déplacez le curseur sur un autre (,),[,],{ ou } et regardez ce que
     fait  % .

---> Voici ( une ligne de test contenant des (, des [ ] et des { } )).

NOTE : Cette fonctionnalité est très utile lors du débogage d'un programme qui
       contient des parenthèses déséquilibrées !


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 4.4 : LA COMMANDE DE SUBSTITUTION


    ** Tapez  :s/ancien/nouveau/g  pour remplacer 'ancien' par 'nouveau'. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  2. Tapez  :s/lee/le <Entrée> . Notez que cette commande change seulement la
     première occurrence de "lee" dans la ligne.

  3. Puis tapez  :s/lee/le/g . L'ajout du drapeau  g  ordonne de faire une
     substitution globale sur la ligne, et change toutes les occurrences de
     "lee" sur la ligne.

---> lee meilleur moment pour regarder lees fleurs est pendant lee printemps.

  4. Pour changer toutes les occurrences d'un texte, entre deux lignes,
     tapez  :#,#s/ancien/nouveau/g  où #,# sont les numéros de lignes de la
                                    plage où la substitution doit être faite.
     Tapez  :%s/ancien/nouveau/g    pour changer toutes les occurrences dans
                                    tout le fichier.
     Tapez  :%s/ancien/nouveau/gc   pour trouver toutes les occurrences dans
                                    tout le fichier avec une invite pour
                                    confirmer ou infirmer chaque substitution.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 4


  1. CTRL-G       affiche la position dans le fichier et l'état de celui-ci.
               G  déplace à la fin du fichier.
     nombre    G  déplace au numéro de ligne.
              gg  déplace à la première ligne.

  2. Taper  /  suivi d'un texte recherche ce texte vers l'AVANT.
     Taper  ?  suivi d'un texte recherche ce texte vers l'ARRIÈRE.
     Après une recherche tapez  n  pour trouver l'occurrence suivante dans la
     même direction ou  Maj-N  pour rechercher dans la direction opposée.

  3. Taper  %  lorsque le curseur est sur  (, ), [, ], { ou }  déplace
     celui-ci sur le caractère correspondant.

  4. Pour remplacer le premier aa par bb sur une ligne tapez     :s/aa/bb
     Pour remplacer tous les aa par bb sur une ligne tapez       :s/aa/bb/g
     Pour remplacer du texte entre deux numéros de ligne tapez   :#,#s/aa/bb/g
     Pour remplacer toutes les occurrences dans le fichier tapez :%s/aa/bb/g
     Pour demander une confirmation à chaque fois ajoutez 'c'    :%s/aa/bb/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Leçon 5.1 : COMMENT EXÉCUTER UNE COMMANDE EXTERNE


 ** Tapez  :!  suivi d'une commande externe pour exécuter cette commande. **

  1. Tapez le  :  familier pour mettre le curseur en bas de l'écran. Cela vous
     permet de saisir une commande.

  2. Puis tapez un  !  (point d'exclamation). Cela vous permet d'exécuter
     n'importe quelle commande valide pour votre interpréteur (shell).

  3. Par exemple, tapez  ls  après le  !  et appuyez <Entrée>. Ceci affichera
     la liste des fichiers du répertoire courant, comme si vous aviez tapé la
     commande à l'invite du shell. Utilisez  :!dir  si  :!ls  ne marche pas.

NOTE :  Il est possible d'exécuter n'importe quelle commande externe de cette
        manière, avec ou sans argument.

NOTE :  Toutes les commandes  :  doivent finir par la frappe de <Entrée>.
        À partir de maintenant, nous ne le mentionnerons plus.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         Leçon 5.2 : PLUS DE DÉTAILS SUR L'ENREGISTREMENT DE FICHIERS


 ** Pour enregistrer les changements faits au texte, tapez  :w FICHIER . **

  1. Tapez  :!dir  ou  :!ls  pour avoir la liste des fichiers dans le
     répertoire courant. Vous savez déjà qu'il faut appuyer <Entrée> après
     cela.

  2. Choisissez un nom de fichier qui n'existe pas encore, par exemple TEST.

  3. Puis tapez  :w TEST  (où TEST est le nom que vous avez choisi).

  4. Cela enregistre tout le fichier (Tutoriel Vim) sous le nom TEST.
     Pour le vérifier, tapez  :!dir  ou  :!ls  de nouveau pour revisualiser
     votre répertoire.

NOTE : Si vous quittez Vim et le redémarrez de nouveau avec le fichier TEST,
       celui-ci sera une copie exacte de ce cours au moment où vous l'avez
       enregistré.

  5. Maintenant, effacez le fichier en tapant (MS-DOS) :   :!del TEST
                                           ou (Unix) :     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leçon 5.3 : SÉLECTION DU TEXTE À ENREGISTRER


                  ** Pour enregistrer une portion du fichier,
                      tapez :   v  déplacement  :w FICHIER  **

  1. Déplacez le curseur sur cette ligne.

  2. Appuyez  v  et déplacez le curseur vers la cinquième ligne plus bas.
     Remarquez que le texte est en surbrillance.

  3. Appuyez  :  . En bas de l'écran  :'<,'> va apparaître.

  4. Tapez   w TEST  , où TEST est un nom de fichier qui n'existe pas.
     Vérifiez que vous voyez  :'<,'>w TEST  avant d'appuyer sur <Entrée>.

  5. Vim va enregistrer les lignes sélectionnées dans le fichier TEST.
     Utilisez  :!dir  ou  :!ls pour le voir. Ne l'effacez pas encore !
     Nous allons l'utiliser dans la leçon suivante.

NOTE : L'appui de  v  démarre la sélection Visuelle. Vous pouvez déplacer le
       curseur pour agrandir ou rétrécir la sélection. Puis vous pouvez
       utiliser un opérateur pour faire quelque chose sur le texte. Par
       exemple,  d  efface le texte.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Leçon 5.4 : RÉCUPÉRATION ET FUSION DE FICHIERS


        ** Pour insérer le contenu d'un fichier, tapez  :r FICHIER **

  1. Placez le curseur juste au-dessus de cette ligne.

NOTE :  Après avoir exécuté l'étape 2 vous verrez du texte de la Leçon 5.3.
        Puis déplacez-vous vers le bas pour voir cette leçon à nouveau.

  2. Maintenant récupérez votre fichier TEST en utilisant la commande  :r TEST
     où TEST est le nom de votre fichier.
     Le fichier que vous récupérez est placé au-dessous de la ligne du curseur.

  4. Pour vérifier que le fichier a bien été inséré, remontez et vérifiez
     qu'il y a maintenant deux copies de la Leçon 5.3, l'originale et celle
     contenue dans le fichier.

NOTE :  Vous pouvez aussi lire la sortie d'une commande externe. Par exemple,
        :r !ls  lit la sortie de la commande ls et la place sous la ligne du
        curseur.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 5


  1. :!commande  exécute une commande externe.

     Quelques exemples pratiques :
      (MS-DOS)        (Unix)
       :!dir           :!ls          affiche le contenu du répertoire courant.
       :!del FICHIER   :!rm FICHIER  efface FICHIER.

  2. :w FICHIER  enregistre le fichier Vim courant sur le disque avec pour
                  nom FICHIER.

  3. v  déplacement  :w FICHIER sauvegarde les lignes de la sélection Visuelle
     dans le fichier FICHIER.

  4. :r FICHIER  récupère le contenu du fichier FICHIER et l'insère sous la
     position du curseur.

  5. :r !dir  lit la sortie de la commande dir et l'insère sous la position
     du curseur.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leçon 6.1 : LA COMMANDE D'OUVERTURE


** Tapez  o  pour ouvrir une ligne sous le curseur et y aller en Insertion. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  2. Tapez la lettre   o   minuscule pour ouvrir une ligne SOUS le curseur et
     vous y placer en mode Insertion.

  3. Puis tapez du texte et appuyez <Échap> pour sortir du mode Insertion.

---> En tapant  o  le curseur se met sur la ligne ouverte, en mode Insertion.

  4. Pour ouvrir une ligne au-DESSUS du curseur, tapez simplement un  O
     majuscule, plutôt qu'un  o  minuscule. Faites un essai sur la ligne
     ci-dessous.

---> Ouvrez une ligne ci-dessus en tapant O lorsque le curseur est ici.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leçon 6.2 : LA COMMANDE D'AJOUT


            ** Tapez  a  pour insérer du texte APRÈS le curseur. **

  1. Placez le curseur au début de la ligne marquée ---> ci-dessous.

  2. Appuyez  e  jusqu'à ce que le curseur soit sur la fin de  li .

  3. Appuyez  a  (minuscule) pour ajouter du texte APRÈS le curseur.

  4. Complétez le mot comme dans la ligne dessous. Appuyez <Échap> pour
     sortir du mode Insertion.

  5. Utilisez  e  pour vous déplacer vers le mot incomplet suivant et
     répétez les étapes 3 et 4.

---> Cette li vous perm de pratiq l'ajout de t dans une ligne.
---> Cette ligne vous permet de pratiquer l'ajout de texte dans une ligne.

NOTE :  a, i, A vont tous dans le même mode Insertion, la seule différence
        est l'endroit où les caractères sont insérés.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leçon 6.3 : UNE AUTRE MANIÈRE DE REMPLACER


       ** Tapez un  R  majuscule pour remplacer plus d'un caractère. **

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.
     Déplacez le curseur sur le début du premier xxx .

  2. Appuyez maintenant  R  et tapez le nombre dessous dans la deuxième ligne,
     de manière à remplacer le xxx .

  3. Appuyez <Échap> pour quitter le mode Remplacement. Notez que le reste de
     la ligne demeure inchangé.

  4. Répétez les étapes pour remplacer les xxx restants.


---> L'ajout de 123 à xxx donne xxx.
---> L'ajout de 123 à 456 donne 579.

NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
       caractères tapés effacent un caractère existant.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 6.4 : COPIER ET COLLER DU TEXTE


   ** Utilisez l'opérateur  y  pour copier du texte et  p  pour le coller **

  1. Allez à la ligne marquée ---> ci-dessous et placez le curseur après "a)".

  2. Démarrez le mode Visuel avec  v  et déplacez le curseur juste devant
     "premier".

  3. Tapez  y  pour copier le texte en surbrillance.

  4. Déplacez le curseur à la fin de la ligne suivante :   j$

  5. Tapez  p  pour coller le texte. Puis tapez :  un second <Échap> .

  6. Utilisez le mode Visuel pour sélectionner "élément", copiez-le avec  y  ,
     déplacez-vous à la fin de la ligne suivante avec  j$  et collez le texte
     à cet endroit avec  p .

--->  a) ceci est le premier élément.
      b)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leçon 6.5 : RÉGLAGE DES OPTIONS


    ** Réglons une option afin que la recherche et la substitution ignorent la
       casse des caractères. **

  1. Recherchez 'ignore' en tapant :   /ignore <Entrée>
     Répétez ceci plusieurs fois en utilisant la touche  n .

  2. Activez l'option 'ic' (ignorer casse) en tapant  :set ic .

  3. Puis cherchez 'ignore' de nouveau en utilisant  n .
     Remarquez que Ignore et IGNORE sont maintenant aussi trouvés.

  4. Activez les options 'hlsearch' et 'incsearch' avec  :set hls is .

  5. Puis recommencez une recherche, et faites bien attention à ce qui se
     produit :  /ignore <Entrée>

  6. Pour désactiver 'ignorer casse', entrez :  :set noic

NOTE : Pour enlever la surbrillance des résultats, entrez :   :nohlsearch

NOTE : Si vous voulez ignorer la casse uniquement pour une recherche, utilisez
       \c  dans la phrase :   /ignore\c  <Entrée>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 6


  1. Taper  o  ouvre une ligne SOUS le curseur et démarre le mode Insertion.
     Taper  O  ouvre une ligne au-DESSUS du curseur.

  2. Taper  a  pour insérer du texte APRÈS le curseur.
     Taper  A  pour insérer du texte après la fin de ligne.

  3. Taper  e  déplace à la fin du mot.

  4. Taper  y  copie du texte,  p  le colle.

  5. Taper  R  majuscule active le mode Remplacement jusqu'à ce qu' <Échap>
     soit appuyé.

  6. Taper  ":set xxx"  active l'option "xxx". Quelques options sont :
        'ic'  'ingnorecase' pour ignorer la casse lors des recherches.
        'is'  'incsearch'   pour montrer les appariements partiels.
        'hls' 'hlsearch'    pour mettre en surbrillance les appariements.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leçon 7.1 : OBTENIR DE L'AIDE


                  ** Utiliser le système d'aide en ligne. **

  Vim a un système complet d'aide en ligne. Pour y accéder, essayez l'une de
  ces trois méthodes :
        - appuyez la touche <Help> (si vous en avez une)
        - appuyez la touche <F1> (si vous en avez une)
        - tapez  :help <Entrée>


  Lisez le texte dans la fenêtre d'aide pour savoir comment fonctionne l'aide.
  Tapez  CTRL-W CTRL-W   pour sauter d'une fenêtre à l'autre.
  Tapez  :q <Entrée>     pour fermer la fenêtre d'aide.

  Vous pouvez accéder à l'aide sur à peu près n'importe quel sujet en donnant
  des arguments à la commande  :help . Essayez par exemple (n'oubliez pas
  d'appuyer sur <Entrée>) :

        :help w
        :help c_CTRL-D
        :help c_<T
        :help insert-index
        :help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 7.2 : CRÉER UN SCRIPT DE DÉMARRAGE

                   ** Activer les fonctionnalités de Vim. **

  Vim a beaucoup plus de fonctionnalités que Vi, mais la plupart de celles-ci
  sont désactivées par défaut. Pour commencer à les utiliser, vous devez
  créer un fichier "vimrc".

  1. Commencez à éditer le fichier "vimrc". Ceci dépend de votre système :
        :edit ~/.vimrc         pour Unix
        :edit $VIM/_vimrc      pour MS-Windows

  2. Lisez maintenant le fichier d'exemple "vimrc" :
        :r $VIMRUNTIME/vimrc_example.vim

  3. Enregistrez le fichier avec :
        :w

  La prochaine fois que vous démarrerez Vim, la coloration syntaxique sera
  activée. Vous pouvez ajouter tous vos réglages préférés dans ce fichier
  "vimrc". Pour plus d'informations, tapez  :help vimrc-intro


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leçon 7.3 : COMPLÈTEMENT


          ** Complètement de ligne de commande avec CTRL-D et <TAB> **

  1. Mettez Vim soit en mode non compatible :   set nocp

  2. Regardez quels fichiers existent dans le répertoire :  !ls  ou  !dir

  3. Tapez le début d'une commande :   :e

  4. Appuyez  CTRL-D  et Vim affichera une liste de commandes qui commencent
     par "e".

  5. Appuyez  <TAB>  et Vim complétera le nom de la commande :  ":edit"

  6. Ajoutez maintenant un espace et le début d'un fichier existant :
     :edit  FIC

  7  Appuyez  <TAB>. Vim va compléter le nom (s'il est unique).

NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
       d'appuyer CTRL-D et <TAB>. C'est utile en particulier pour  :help .


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              RÉSUMÉ DE LA LEÇON 7


  1. Tapez  :help  ou appuyez <F1> ou <Aide> pour ouvrir la fenêtre d'aide.

  2. Tapez  :help cmd  pour trouver l'aide sur  cmd .

  3. Tapez  CTRL-W CTRL-W  pour sauter à une autre fenêtre.

  4. Tapez  :q  pour fermer la fenêtre d'aide.

  5. Créez un script de démarrage vimrc pour conserver vos réglages préférés.

  6. Quand vous tapez une commande  :  appuyez CTRL-D pour voir les
     complètements possibles. Appuyez <TAB> pour utiliser un complètement.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Ceci conclut le Tutoriel Vim. Le but était de vous donner un bref aperçu de
  l'éditeur Vim, juste assez pour vous permettre d'utiliser l'éditeur
  relativement facilement. Il est loin d'être complet, vu que Vim a beaucoup
  plus de commandes. Un Manuel de l'utilisateur est disponible en anglais :
    :help user-manual

  Pour continuer à découvrir et à apprendre Vim, il existe un livre traduit en
  français. Il parle plus de Vi que de Vim, mais pourra vous être utile.
        L'éditeur Vi - Collection Précis et concis - par Arnold Robbins
        Éditeur : O'Reilly France
        ISBN : 2-84177-102-4

  Deux livres en anglais sont également mentionnés dans la version originale
  de ce tutoriel, dont un qui traite spécifiquement de Vim. Merci de vous y
  référer si vous êtes intéressés.

  Ce tutoriel a été écrit par Michael C. Pierce et Robert K. Ware de l'École
  des Mines du Colorado et reprend des idées fournies par Charles Smith,
  Université d'État du Colorado. E-mail : bware@mines.colorado.edu.

  Modifié pour Vim par Bram Moolenaar.
  Traduit en français par Adrien Beau, en avril 2001.
  Dernières mises à jour par Dominique Pellé.

  E-mail :      dominique.pelle@gmail.com
  Last Change : 2017 Jan 16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z{� ppvim80/tutor/tutor.sv.utf-8nu�[���===============================================================================
= V ä l k o m m e n  t i l l  h a n d l e d n i n g e n  i  V i m  - Ver. 1.5 =
===============================================================================

     Vim är en väldigt kraftfull redigerare som har många kommandon, alltför
     många att förklara i en handledning som denna. Den här handledningen är
     gjord för att förklara tillräckligt många kommandon så att du enkelt ska
     kunna använda Vim som en redigerare för alla ändamål.

     Den beräknade tiden för att slutföra denna handledning är 25-30 minuter,
     beroende på hur mycket tid som läggs ned på experimentering.

     Kommandona i lektionerna kommer att modifiera texten. Gör en kopia av den
     här filen att öva på (om du startade "vimtutor är det här redan en kopia).

     Det är viktigt att komma ihåg att den här handledningen är konstruerad
     att lära vid användning. Det betyder att du måste köra kommandona för att
     lära dig dem ordentligt. Om du bara läser texten så kommer du att glömma
     kommandona!

     Försäkra dig nu om att din Caps-Lock tangent INTE är aktiv och tryck på
     j-tangenten tillräckligt många gånger för att förflytta markören så att
     Lektion 1.1 fyller skärmen helt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 1.1: FLYTTA MARKÖREN


   ** För att flytta markören, tryck på tangenterna h,j,k,l som indikerat. **
	     ^
	     k		Tips:
       < h	 l >	h-tangenten är till vänster och flyttar till vänster.
	     j		l-tangenten är till höger och flyttar till höger.
	     v		j-tangenten ser ut som en pil ned.
  1. Flytta runt markören på skärmen tills du känner dig bekväm.

  2. Håll ned tangenten pil ned (j) tills att den repeterar.
---> Nu vet du hur du tar dig till nästa lektion.

  3. Flytta till Lektion 1.2, med hjälp av ned tangenten.

Notera: Om du är osäker på någonting du skrev, tryck <ESC> för att placera dig
	dig i Normal-läge. Skriv sedan om kommandot.

Notera: Piltangenterna borde också fungera.  Men om du använder hjkl så kommer
	du att kunna flytta omkring mycket snabbare, när du väl vant dig vid
	det.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.2: STARTA OCH AVSLUTA VIM


  !! NOTERA: Innan du utför någon av punkterna nedan, läs hela lektionen!!

  1. Tryck <ESC>-tangenten (för att se till att du är i Normal-läge).

  2. Skriv:			:q! <ENTER>.

---> Detta avslutar redigeraren UTAN att spara några ändringar du gjort.
     Om du vill spara ändringarna och avsluta skriv:
				:wq  <ENTER>

  3. När du ser skal-prompten, skriv kommandot som tog dig in i den här
     handledningen.  Det kan vara:	vimtutor <ENTER>
     Normalt vill du använda:		vim tutor <ENTER>

---> 'vim' betyder öppna redigeraren vim, 'tutor' är filen du vill redigera.

  4. Om du har memorerat dessa steg och känner dig självsäker, kör då stegen
     1 till 3 för att avsluta och starta om redigeraren. Flytta sedan ned
     markören till Lektion 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.3: TEXT REDIGERING - BORTTAGNING


** När du är i Normal-läge tryck  x  för att ta bort tecknet under markören. **

  1. Flytta markören till raden nedan med markeringen --->.

  2. För att rätta felen, flytta markören tills den står på tecknet som ska
     tas bort. fix the errors, move the cursor until it is on top of the

  3. Tryck på	x-tangenten för att ta bort det felaktiga tecknet.

  4. Upprepa steg 2 till 4 tills meningen är korrekt.

---> Kkon hoppadee övverr måånen.

  5. Nu när raden är korrekt, gå till Lektion 1.4.

NOTERA: När du går igenom den här handledningen, försök inte att memorera, lär
	genom användning.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.4: TEXT REDIGERING - INFOGNING


	 ** När du är i Normal-läge tryck  i  för att infoga text. **

  1. Flytta markören till den första raden nedan med markeringen --->.

  2. För att göra den första raden likadan som den andra, flytta markören till
     det första tecknet EFTER där text ska infogas.

  3. Tryck  i  och skriv in det som saknas.

  4. När du rättat ett fel tryck <ESC> för att återgå till Normal-läge.
     Upprepa steg 2 till 4 för att rätta meningen.

---> Det sakns här .
---> Det saknas lite text från den här raden.

  5. När du känner dig bekväm med att infoga text, gå till sammanfattningen
     nedan.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 1 SAMMANFATTNING


  1. Markören flyttas genom att använda piltangenterna eller hjkl-tangenterna.
	 h (vänster)	j (ned)       k (upp)	    l (höger)

  2. För att starta Vim (från %-prompten) skriv:  vim FILNAMN <ENTER>

  3. För att avsluta Vim skriv:  <ESC>  :q!  <ENTER>  för att kasta ändringar.
		   ELLER skriv:  <ESC>	:wq  <ENTER>  för att spara ändringar.

  4. För att ta bort tecknet under markören i Normal-läge skriv:  x

  5. För att infoga text vid markören i Normal-läge skriv:
	 i     skriv in text	<ESC>

NOTERA: Genom att trycka <ESC> kommer du att placeras i Normal-läge eller
	avbryta ett delvis färdigskrivet kommando.

Fortsätt nu med Lektion 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 2.1: BORTTAGNINGSKOMMANDON


	    ** Skriv  dw  för att radera till slutet av ett ord. **

  1. Tryck  <ESC>  för att försäkra dig om att du är i Normal-läge.

  2. Flytta markören till raden nedan markerad --->.

  3. Flytta markören till början av ett ord som måste raderas.

  4. Skriv   dw	 för att radera ordet.

  NOTERA: Bokstäverna dw kommer att synas på den sista raden på skärmen när
	du skriver dem. Om du skrev något fel, tryck  <ESC>  och börja om.

---> Det är ett några ord roliga att som inte hör hemma i den här meningen.

  5. Upprepa stegen 3 och 4 tills meningen är korrekt och gå till Lektion 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 2.2: FLER BORTTAGNINGSKOMMANDON


	   ** Skriv  d$	för att radera till slutet på raden. **

  1. Tryck  <ESC>  för att försäkra dig om att du är i Normal-läge.

  2. Flytta markören till raden nedan markerad --->.

  3. Flytta markören till slutet på den rätta raden (EFTER den första . ).

  4. Skriv    d$    för att radera till slutet på raden.

---> Någon skrev slutet på den här raden två gånger. den här raden två gånger.


  5. Gå vidare till Lektion 2.3 för att förstå vad det är som händer.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.3: KOMMANDON OCH OBJEKT


  Syntaxen för  d  raderingskommandot är följande:

	 [nummer]   d	objekt	    ELLER	     d	 [nummer]   objekt
  Var:
    nummer - är antalet upprepningar av kommandot (valfritt, standard=1).
    d - är kommandot för att radera.
    objekt - är vad kommandot kommer att operera på (listade nedan).

  En kort lista över objekt:
    w - från markören till slutet av ordet, inklusive blanksteget.
    e - från markören till slutet av ordet, EJ inklusive blanksteget.
    $ - från markören till slutet på raden.

NOTERA:  För den äventyrslystne, genom att bara trycka på objektet i
	 Normal-läge (utan kommando) så kommer markören att flyttas som
	 angivet i objektlistan.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 2.4: ETT UNDANTAG TILL 'KOMMANDO-OBJEKT'


	       ** Skriv	 dd   för att radera hela raden. **

  På grund av hur vanligt det är att ta bort hela rader, valde upphovsmannen
  till Vi att det skulle vara enklare att bara trycka d två gånger i rad för
  att ta bort en rad.

  1. Flytta markören till den andra raden i frasen nedan.
  2. Skriv  dd  för att radera raden.
  3. Flytta nu till den fjärde raden.
  4. Skriv   2dd   (kom ihåg:  nummer-kommando-objekt) för att radera de två
     raderna.

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 2.5: ÅNGRA-KOMMANDOT


** Skriv  u för att ångra det senaste kommandona,  U för att fixa en hel rad. **

  1. Flytta markören till slutet av raden nedan markerad ---> och placera den
     på det första felet.
  2. Skriv  x  för att radera den första felaktiga tecknet.
  3. Skriv nu  u  för att ångra det senaste körda kommandot.
  4. Rätta den här gången alla felen på raden med  x-kommandot.
  5. Skriv nu  U  för att återställa raden till dess ursprungliga utseende.
  6. Skriv nu  u  några gånger för att ångra  U  och tidigare kommandon.
  7. Tryck nu CTRL-R (håll inne CTRL samtidigt som du trycker R) några gånger
     för att upprepa kommandona (ångra ångringarna).

---> Fiixa felen ppå deen häär meningen och återskapa dem med ångra.

  8. Det här är väldigt användbara kommandon.  Gå nu vidare till
     Lektion 2 Sammanfattning.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 2 SAMMANFATTNING


  1. För att radera från markören till slutet av ett ord skriv:    dw

  2. För att radera från markören till slutet av en rad skriv:    d$

  3. För att radera en hel rad skriv:    dd

  4. Syntaxen för ett kommando i Normal-läge är:

       [nummer]   kommando   objekt   ELLER   kommando   [nummer]   objekt
     där:
       nummer - är hur många gånger kommandot kommandot ska repeteras
       kommando - är vad som ska göras, t.ex.  d  för att radera
       objekt - är vad kommandot ska operera på, som t.ex.  w (ord),
		$ (till slutet av raden), etc.

  5. För att ångra tidigare kommandon, skriv:  u (litet u)
     För att ångra alla tidigare ändringar på en rad skriv:  U (stort U)
     För att ångra ångringar tryck:  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 3.1: KLISTRA IN-KOMMANDOT


   ** Skriv  p  för att klistra in den senaste raderingen efter markören. **

  1. Flytta markören till den första raden i listan nedan.

  2. Skriv  dd  för att radera raden och lagra den i Vims buffert.

  3. Flytta markören till raden OVANFÖR där den raderade raden borde vara.

  4. När du är i Normal-läge, skriv    p	 för att byta ut raden.

  5. Repetera stegen 2 till 4 för att klistra in alla rader i rätt ordning.

     d) Kan du lära dig också?
     b) Violetter är blå,
     c) Intelligens fås genom lärdom,
     a) Rosor är röda,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 3.2: ERSÄTT-KOMMANDOT


  ** Skriv  r  och ett tecken för att ersätta tecknet under markören. **

  1. Flytta markören till den första raden nedan markerad --->.

  2. Flytta markören så att den står på det första felet.

  3. Skriv   r	och sedan det tecken som borde ersätta felet.

  4. Repetera steg 2 och 3 tills den första raden är korrekt.

--->  När drn här ruden skrevs, trickte någon på fil knappar!
--->  När den här raden skrevs, tryckte någon på fel knappar!

  5. Gå nu vidare till Lektion 3.2.

NOTERA: Kom ihåg att du skall lära dig genom användning, inte genom memorering.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 3.3: ÄNDRA-KOMMANDOT


	   ** För att ändra en del eller ett helt ord, skriv  cw . **

  1. Flytta markören till den första redan nedan markerad --->.

  2. Placera markören på d i rdrtn.

  3. Skriv  cw  och det rätta ordet (i det här fallet, skriv "aden".)

  4. Tryck <ESC> och flytta markören till nästa fel (det första tecknet som
     ska ändras.)

  5. Repetera steg 3 och 4 tills den första raden är likadan som den andra.

---> Den här rdrtn har några otf som brhotrt ändras mrf ändra-komjendit.
---> Den här raden har några ord som behöver ändras med ändra-kommandot.

Notera att  cw  inte bara ändrar ordet, utan även placerar dig i infogningsläge.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 3.4: FLER ÄNDRINGAR MED c


     ** Ändra-kommandot används på samma objekt som radera. **

  1. Ändra-kommandot fungerar på samma sätt som radera. Syntaxen är:

       [nummer]   c   objekt	   ELLER	    c	[nummer]   objekt

  2. Objekten är också de samma, som t.ex.   w (ord), $ (slutet av raden), etc.

  3. Flytta till den första raden nedan markerad -->.

  4. Flytta markören till det första felet.

  5. Skriv  c$  för att göra resten av raden likadan som den andra och tryck
     <ESC>.

---> Slutet på den här raden behöver hjälp med att få den att likna den andra.
---> Slutet på den här raden behöver rättas till med  c$-kommandot.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 3 SAMMANFATTNING


  1. För att ersätta text som redan har blivit raderad, skriv   p .
     Detta klistrar in den raderade texten EFTER markören (om en rad raderades
     kommer den att hamna på raden under markören.

  2. För att ersätta tecknet under markören, skriv   r   och sedan tecknet som
     kommer att ersätta orginalet.

  3. Ändra-kommandot låter dig ändra det angivna objektet från markören till
     slutet på objektet. eg. Skriv  cw  för att ändra från markören till slutet
     på ordet, c$	för att ändra till slutet på en rad.

  4. Syntaxen för ändra-kommandot är:

	 [nummer]   c	objekt	      ELLER	c   [nummer]   objekt

Gå nu till nästa lektion.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 4.1: POSITION OCH FILSTATUS


  ** Tryck CTRL-g för att visa din position i filen och filstatusen.
     Tryck SHIFT-G för att flytta till en rad i filen. **

  Notera: Läsa hela den lektion innan du utför något av stegen!!

  1. Håll ned Ctrl-tangenten och tryck  g . En statusrad med filnamn och raden
     du befinner dig på kommer att synas. Kom ihåg radnummret till Steg 3.

  2. Tryck shift-G för att flytta markören till slutet på filen.

  3. Skriv in nummret på raden du var på och tryck sedan shift-G. Detta kommer
     att ta dig tillbaka till raden du var på när du först tryckte Ctrl-g.
     (När du skriver in nummren, kommer de INTE att visas på skärmen.)

  4. Om du känner dig säker på det här, utför steg 1 till 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 4.2: SÖK-KOMMANDOT


     ** Skriv  /  följt av en fras för att söka efter frasen. **

  1. I Normal-läge skriv /-tecknet. Notera att det och markören blir synlig
     längst ned på skärmen precis som med :-kommandot.

  2. Skriv nu "feeel" <ENTER>. Det här är ordet du vill söka efter.

  3. För att söka efter samma fras igen, tryck helt enkelt  n .
     För att söka efter samma fras igen i motsatt riktning, tryck  Shift-N .

  4. Om du vill söka efter en fras bakåt i filen, använd kommandot  ?  istället
     för /.

---> "feeel" är inte rätt sätt att stava fel: feeel är ett fel.

Notera: När sökningen når slutet på filen kommer den att fortsätta vid början.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lektion 4.3: SÖKNING EFTER MATCHANDE PARENTESER


	      ** Skriv  %  för att hitta en matchande ),], or } . **

  1. Placera markören på någon av (, [, or { på raden nedan markerad --->.

  2. Skriv nu %-tecknet.

  3. Markören borde vara på den matchande parentesen eller hakparentesen.

  4. Skriv  %  för att flytta markören tillbaka till den första hakparentesen
     (med matchning).

---> Det ( här är en testrad med (, [ ] och { } i den. ))

Notera: Det här är väldigt användbart vid avlusning av ett program med icke
	matchande parenteser!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 4.4: ETT SÄTT ATT ÄNDRA FEL


	** Skriv  :s/gammalt/nytt/g  för att ersätta "gammalt" med "nytt". **

  1. Flytta markören till raden nedan markerad --->.

  2. Skriv  :s/denn/den <ENTER> . Notera att det här kommandot bara ändrar den
     första förekomsten på raden.

  3. Skriv nu	 :s/denn/den/g	   vilket betyder ersätt globalt på raden.
     Det ändrar alla förekomster på raden.

---> denn bästa tiden att se blommor blomma är denn på våren.

  4. För att ändra alla förekomster av en teckensträng mellan två rader,
     skriv  :#,#s/gammalt/nytt/g    där #,# är de två radernas radnummer.
     Skriv  :%s/gammtl/nytt/g    för att ändra varje förekomst i hela filen.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 4 SAMMANFATTNING


  1. Ctrl-g  visar din position i filen och filstatusen.
     Shift-G  flyttar till slutet av filen. Ett radnummer följt  Shift-G
     flyttar till det radnummret.

  2. Skriver man  /	följt av en fras söks det FRAMMÅT efter frasen.
     Skriver man  ?	följt av en fras söks det BAKÅT efter frasen.
     Efter en sökning skriv  n  för att hitta nästa förekomst i samma riktning
     eller  Shift-N  för att söka i den motsatta riktningen.

  3. Skriver man  %	när markören är på ett  (,),[,],{, eller }  hittas dess
     matchande par.

  4. För att ersätta den första gammalt med nytt på en rad skriv  :s/gammlt/nytt
     För att ersätta alla gammlt med nytt på en rad skriv  :s/gammlt/nytt/g
     För att ersätta fraser mellan rad # och rad # skriv  :#,#s/gammlt/nytt/g
     För att ersätta alla förekomster i filen skriv  :%s/gammlt/nytt/g
     För att bekräfta varje gång lägg till "c"  :%s/gammlt/nytt/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 5.1: HUR MAN KÖR ETT EXTERNT KOMMANDO


   ** Skriv  :!	följt av ett externt kommando för att köra det kommandot. **

  1. Skriv det välbekanta kommandot	:  för att placera markören längst ned
     på skärmen på skärmen. Detta låter dig skriva in ett kommando.

  2. Skriv nu  !  (utropstecken).  Detta låter dig köra ett godtyckligt externt
     skalkommando.

  3. Som ett exempel skriv   ls   efter ! och tryck sedan <ENTER>. Detta kommer
     att visa dig en listning av din katalog, precis som om du kört det vid
     skalprompten. Använd  :!dir  om ls inte fungerar.

Notera:  Det är möjligt att köra vilket externt kommando som helst på det här
	 sättet.

Notera:  Alla  :-kommandon måste avslutas med att trycka på <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 5.2: MER OM ATT SPARA FILER


     ** För att spara ändringar gjorda i en fil, skriv  :w FILNAMN. **

  1. Skriv  :!dir  eller  :!ls  för att få en listning av din katalog.
     Du vet redan att du måste trycka <ENTER> efter det här.

  2. Välj ett filnamn som inte redan existerar, som t.ex. TEST.

  3. Skriv nu:	 :w TEST   (där TEST är filnamnet du valt.)

  4. Det här sparar hela filen	(Vim handledningen)  under namnet TEST.
     För att verifiera detta, skriv    :!dir   igen för att se din katalog

Notera: Om du skulle avsluta Vim och sedan öppna igen med filnamnet TEST så
	skulle filen vara en exakt kopia av handledningen när du sparade den.

  5. Ta nu bort filen genom att skriva (MS-DOS):  :!del TEST
				   eller (Unix):  :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lektion 5.3: ETT SELEKTIVT SPARA-KOMMANDO


	** För att spara en del av en fil, skriv   :#,# w FILNAMN **

  1. Ännu en gång, skriv  :!dir  eller  :!ls  för att få en listning av din
     katalog och välj ett passande filnamn som t.ex. TEST.

  2. Flytta markören högst upp på den här sidan och tryck  Ctrl-g  för att få
     reda på radnumret på den raden. KOM IHÅG DET NUMMRET!

  3. Flytta nu längst ned på sidan och skriv  Ctrl-g igen.
     KOM IHÅG DET RADNUMMRET OCKSÅ!

  4. För att BARA spara en sektion till en fil, skriv   :#,# w TEST
     där #,# är de två nummren du kom ihåg (toppen, botten) och TEST är
     ditt filnamn.

  5. Ännu en gång, kolla så att filen är där med  :!dir  men radera den INTE.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lektion 5.4: TA EMOT OCH FÖRENA FILER


       ** För att infoga innehållet av en fil, skriv   :r FILNAMN **

  1. Skriv   :!dir   för att försäkra dig om att TEST-filen från tidigare
     fortfarande är kvar.

  2. Placera markören högst upp på den här sidan.

NOTERA:  Efter att du kört Steg 3 kommer du att se Lektion 5.3.
	 Flytta då NED till den här lektionen igen.

  3. Ta nu emot din TEST-fil med kommandot   :r TEST   där TEST är namnet på
     filen.

NOTERA:  Filen du tar emot placeras där markören är placerad.

  4. För att verifiera att filen togs emot, gå tillbaka och notera att det nu
     finns två kopior av Lektion 5.3, orginalet och filversionen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 5 SAMMANFATTNING


  1.  :!kommando  kör ett externt kommando.

      Några användbara exempel är:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		  -  visar en kataloglistning.
	  :!del FILNAMN    :!rm FILNAMN   -  tar bort filen FILNAMN.

  2.  :w FILNAMN  sparar den aktuella Vim-filen med namnet FILNAMN.

  3.  :#,#w FILNAMN  sparar raderna # till #  i filen FILNAMN.

  4.  :r FILNAMN  tar emot filen FILNAMN och infogar den i den aktuella filen
      efter markören.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 6.1: ÖPPNA-KOMMANDOT


 ** Skriv  o  för att öppna en rad under markören och placera dig i
    Infoga-läge. **

  1. Flytta markören till raden nedan markerad --->.

  2. Skriv  o (litet o) för att öppna upp en rad NEDANFÖR markören och placera
     dig i Infoga-mode.

  3. Kopiera nu raden markerad ---> och tryck <ESC> för att avsluta
     Infoga-läget.

---> Efter du skrivit  o  placerad markören på en öppen rad i Infoga-läge.

  4. För att öppna upp en rad OVANFÖR markören, skriv ett stort  O , istället
     för ett litet  o. Pröva detta på raden nedan.
Öppna upp en rad ovanför denna genom att trycka Shift-O när markören står här.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 6.2: LÄGG TILL-KOMMANDOT


	     ** Skriv  a  för att infoga text EFTER markören. **

  1. Flytta markören till slutet av den första raden nedan markerad ---> genom
     att skriv  $	i Normal-läge.

  2. Skriv ett  a  (litet a) för att lägga till text EFTER tecknet under
     markören.  (Stort  A  lägger till i slutet av raden.)

Notera: Detta undviker att behöva skriva  i , det sista tecknet, texten att
	infoga, <ESC>, högerpil, och slutligen, x, bara för att lägga till i
	slutet på en rad!

  3. Gör nu färdigt den första raden. Notera också att lägga till är likadant
      som Infoga-läge, enda skillnaden är positionen där texten blir infogad.

---> Här kan du träna
---> Här kan du träna på att lägga till text i slutet på en rad.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lektion 6.3: EN ANNAN VERSION AV ERSÄTT


      ** Skriv ett stort  R  för att ersätta fler än ett tecken. **

  1. Flytta markören till den första raden nedan markerad --->.

  2. Placera markören vid början av det första ordet som är annorlunda jämfört
     med den andra raden markerad ---> (ordet "sista").

  3. Skriv nu  R  och ersätt resten av texten på den första raden genom att
     skriva över den gamla texten så att den första raden blir likadan som
     den andra.

---> För att få den första raden lika som den sista, använd tangenterna.
---> För att få den första raden lika som den andra, skriv R och den nya texten.

  4. Notera att när du trycker <ESC> för att avsluta, så blir eventuell
     oförändrad text kvar.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lektion 6.4: SÄTT FLAGGOR

  ** Sätt en flagga så att en sökning eller ersättning ignorerar storlek **

  1. Sök efter "ignore" genom att skriva:
     /ignore
     Repetera flera gånger genom att trycka på n-tangenten

  2. Sätt 'ic' (Ignore Case) flaggan genom att skriva:
     :set ic

  3. Sök nu efter "ignore" igen genom att trycka: n
     Repeat search several more times by hitting the n key

  4. Sätt 'hlsearch' and 'incsearch' flaggorna:
     :set hls is

  5. Skriv nu in sök-kommandot igen, och se vad som händer:
     /ignore

  6. För att ta bort framhävningen av träffar, skriv
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 6 SAMMANFATTNING


  1. Genom att skriva  o  öpnnas en rad NEDANFÖR markören och markören placeras
     på den öppna raden i Infoga-läge.
     Genom att skriva ett stort  O  öppnas raden OVANFÖR raden som markören är
     på.

  2. Skriv ett  a  för att infoga text EFTER tecknet som markören står på.
     Genom att skriva ett stort  A  läggs text automatiskt till i slutet på
     raden.

  3. Genom att skriva ett stort  R  hamnar du i Ersätt-läge till  <ESC>  trycks
     för att avsluta.

  4. Genom att skriva ":set xxx" sätts flaggan "xxx"









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       LEKTION 7: ON-LINE HJÄLP-KOMMANDON


		      ** Använd on-line hjälpsystemet **

  Vim har ett omfattande on-line hjälpsystem. För att komma igång pröva ett av
  dessa tre:
	- tryck <HELP> tangenten (om du har någon)
	- tryck <F1> tangenten (om du har någon)
	- skriv   :help <ENTER>

  Skriv   :q <ENTER>   för att stränga hjälpfönstret.

  Du kan hitta hjälp om nästan allting, genom att ge ett argument till
  ":help" kommandot. Pröva dessa (glöm inte att trycka <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       LEKTION 8: SKAPA ETT UPPSTARTSSKRIPT

			  ** Aktivera Vim- funktioner **

  Vim har många fler funktioner än Vi, men de flesta av dem är inaktiverade som
  standard. För att börja använda fler funktioner måste du skapa en "vimrc"-fil.

  1. Börja redigera "vimrc"-filen, detta beror på ditt system:
	:edit ~/.vimrc			för Unix
	:edit $VIM/_vimrc		för MS-Windows

  2. Läs nu texten i exempel "vimrc"-filen:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Spara filen med:

	:write

  Nästa gång du startar Vim kommer den att använda syntaxframhävning.
  Du kan lägga till alla inställningar du föredrar till den här "vimrc"-filen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Detta avslutar handledningen i Vim. Den var avsedd att ge en kort översikt av
  redigeraren Vim, bara tillräckligt för att du ska kunna använda redigeraren
  relativt enkelt. Den är långt ifrån komplett eftersom Vim har många många fler
  kommandon. Läs användarmanualen härnäst: ":help user-manual".

  För vidare läsning rekommenderas den här boken:
	Vim - Vi Improved - av Steve Oualline
	Förlag: New Riders
  Den första boken som är endast behandlar Vim. Speciellt användbar för
  nybörjare. Det finns många exempel och bilder.
  Se http://iccf-holland.org/click5.html

  Den här boken är äldre och behandlar mer Vi än Vim, men rekommenderas också:
	Learning the Vi Editor - av Linda Lamb
	Förlag: O'Reilly & Associates Inc.
  Det är en bra bok för att lära sig nästan allt som du vill kunna göra med Vi.
  Den sjätte upplagan inkluderar också information om Vim.

  Den här handledningen är skriven av Michael C. Pierce och Robert K. Ware,
  Colorado School of Mines med idéer från Charles Smith,
  Colorado State University.  E-post: bware@mines.colorado.edu.

  Modifierad för Vim av Bram Moolenaar.
  Översatt av Johan Svedberg <johan@svedberg.com>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�ZkH��vim80/tutor/tutor.sk.cp1250nu�[���===============================================================================
=    V i t a j t e   v o   V I M   T u t o r i a l i    -    Verzia 1.7       =
===============================================================================

     Vim je ve�mi v�konn� editor, ktor� m� pr�li� ve�a pr�kazov na to aby
     mohli byt v�etky pop�san� vo v�uke akou je t�to. T�to v�uka
     popisuje dostato�n� mno�stvo pr�kazov nato aby bolo mo�n� pou��va�
     Vim ako viac��elov� editor.

     Pribli�n� �as potrebn� na prebratie tejto v�uky je 25-30 min�t,
     z�vis� na tom, ko�ko je str�ven�ho �asu s presk��avan�m.

     UPOZORNENIE:
     Pr�kazy v lekci�ch modifikuj� text. Vytvor k�piu tohto s�boru aby
     sa mohlo precvi�ova� na �om (pri �tarte "vimtutor" je toto k�pia).

     Je d�le�it� zapam�ta� si, �e t�to v�uka je vytvoren� pre v�uku
     pou��van�m. To znamen�, �e je potrebn� si pr�kazy vysk��a�, aby bolo
     u�enie spr�vne. Ak len �itas text, pr�kazy zabudne�!

     Presved� sa, �e Caps-Lock NIEJE stla�en� a stla�t kl�vesu
     j  nieko�ko kr�t, aby sa kurzor posunul nato�ko, �e lekcia 1.1
     celkom zapln� obrazovku.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 1.1:  POHYB KURZOROM


   ** Pre pohyb kurzorum stla� kl�vesy h,j,k,l ako je zn�zornen�. **
        ^
        k        Funkcia: Kl�vesa h je na�avo a vykon� pohyb do�ava.
   < h     l >   Kl�vesa l je napravo a vykon� pohyb doprava.
        j        Kl�vesa j vyzer� ako ��pka dole
	      v
  1. Pohybuj kurzorom po obrazovke, k�m si na to nezvykne�.

  2. Dr� stla�en� kl�vesu pre pohyb dole (j), k�m sa jej funkcia nezopakuje.
---> Teraz sa u� vie� pohybova� na nasleduj�cu lekciu.

  3. Pou�it�m kl�vesy pre pohyb dole prejdi na Lekciu 1.2.

Pozn�mka: Ak si niesi ist� t�m �o si nap�sal, stla� <ESC>
	        na prechod do norm�lneho m�du.

Pozn�mka: Kurzorov� kl�vesy s� tie� funk�n�. Ale pou��van�m hjkl sa bude�
	        schopn� pohybova� r�chlej�ie, ke� si zvykne� ich pou��va�. Naozaj!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     LEKCIA 1.2: ZATV�RANIE VIMU


  !! POZN�MKA: Pred vykonan�m t�chto krokov si pre��taj cel� t�to lekciu !!

  1. Stla� kl�vesu <ESC> (aby si sa u�ite nach�dzal v norm�lnom m�de)

  2. Nap�:   :q! <ENTER>.
     T�m ukon�� pr�cu s editorom BEZ ulo�enia zmien, ktor� si vykonal.

  3. Ke� sa dostane� na pr�kazov� riadok, nap� pr�kaz, ktor�m sa dostane�
     spe� do tejto v�uky. To m�e by�:	vimtutor <ENTER>

  4. Ak si si tieto kroky spo�ahlivo zapam�tal, vykonaj kroky 1 a� 3, pre
     ukon�enie a znovu spustenie editora.

POZN�MKA: :q! <ENTER> neulo�� zmeny, ktor� si vykonal. O nieko�ko lekci�
          sa nau�� ako ulo�i� zmeny do s�boru

  5. presu� kurzor dole na lekciu 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 1.3: EDIT�CIA TEXTU - MAZANIE


** Stla�enie kl�vesy  x  v norm�lnom m�de zma�e znak na mieste kurzora. **

  1. Presu� kurzor ni��ie na riadok ozna�en� zna�kou --->.

  2. Aby si mohol odstr�ni� chyby, pohybuj kurzorom k�m neprejde na znak,
     ktor� chce� zmaza�.

  3. Stla� kl�vesu  x  aby sa zmazal nechcen� znak.

  4. Zopakuj kroky 2 a� 4 a� k�m veta nieje spr�vna.

---> Kraava skoo�illa ccezz mesiiac.

  5. Ak je veta spr�vna, prejdi na lekciu 1.4.

POZN�MKA: Nesk��aj si zapam�ta� obsah tejto v�uky, ale sa u� pou��van�m.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 1.4: EDIT�CIA TEXTU - VKLADANIE


    ** Stla�enie kl�vesy  i  umo��uje vkladanie textu. **

  1. Presu� kurzor ni��ie na prv� riadok za zna�ku --->.

  2. Pre upravenie prv�ho riadku do rovnak�ho tvaru ako je druh� riadok,
     presu� kurzor na prv� znak za misto, kde m� by� text vlo�en�.

  3. Stla� kl�vesu  i  a nap� potrebn� text.

  4. Po opraven� ka�dej chyby, stla� <ESC> pre n�vrat do norm�lneho m�du.
     Zopakuj kroky 2 a� 4 k�m nieje veta spr�vna.

---> Tu je text ch�baj�ci tejto.
---> Tu je nejak� text ch�baj�ci od tejto �iary.

  5. Ke� sa dostato�ne nau�� vklada� text, prejdi na nasleduj�ce zhrnutie.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Lekcia 1.5: EDIT�CIA TEXTU - PRID�VANIE


     ** Stla�enie kl�vesy  A  umo��uje prid�va� text. **

  1. Presu� kurozr ni��ie na prv� riadok za zna�kou --->.
     Nez�le�� na tom, na ktorom znaku sa kurzor v tom riadku nach�dza.

  2. Stla� kl�vesu  A  a nap� potrebn� text.

  3. Po pridan� textu stla� kl�vesu <ESC> pre n�vrat do Norm�lneho m�du.

  4. Presu� kurozr na druh� riadok ozna�en� ---> a zopakuj
     kroky 2 a 3 k�m nieje veta spr�vna.

---> Tu je nejak� text ch�baj�ci o
     Tu je nejak� text ch�baj�ci od tia�to.
---> Tu tie� ch�ba nej
     Tu tie� ch�ba nejak� text.

  5. Ke� sa dostato�ne nau�� prid�va� text, prejdi na lekciu 1.6.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       Lekcia 1.6: EDIT�CIA S�BORU


    ** Nap�san�m  :wq  sa s�bor ulo�� a zavrie **

!! POZN�MKA: Pred vykonan�m t�chto krokov si pre��taj cel� lekciu!!

1. Opusti t�to v�uku, ako si to urobil v lekcii 1.2:  :q!

2. Do pr�kazov�ho riadku nap� pr�kaz:  vim tutor <ENTER>
   'vim' je pr�kaz, ktor� spust� editor Vim, 'tutor' je meno s�boru,
   ktor� chce� editova�. Pou�i tak� s�bor, ktor� m�e� meni�.

3. Vlo� a zma� text tak, ako si sa nau�il v predo�l�ch lekciach.

4. Ulo� s�bor so zmenami a opusti Vim pr�kazom:  :wq  <ENTER>

5. Re�tartuj vimtutor a presu� sa dole na nasleduj�ce zhrnutie.

6. Urob tak po pre��tan� predo�l�ch krokov a porozumeniu im.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ZHRNUTIE LEKCIE 1


  1. Kurzor sa pohybuje pou�it�m kl�ves so ��pkami alebo kl�vesmi hjkl.
	  h (do lava)    j (dole)    k (hore)    l (doprava)

  2. Pre spustenie Vimu (z pr�kazov�ho riadku) nap�: vim FILENAME <ENTER>

  3. Na ukon�enie Vimu nap�: <ESC>  :q!  <ENTER> pre zru�enie v�etk�ch zmien
       alebo nap�:   <ESC>   :wq   <ENTER>    pre ulo�enie zmien.

  4. Na zmazanie znaku na mieste kurzora nap�:  x

  5. Pre vlo�enie textu na mieste kurzora v norm�lnom m�de nap�:
	 i     nap� vkladan� text   <ESC>  vkladanie pred kurzor
   A     nap� prid�van� text  <EXC>  vkladanie za riadok

POZN�MKA: Stla�enie <ESC> �a premiestn� do norm�lneho m�du alebo zru��
	        nejak� nechcen� a �iasto�ne dokon�en� pr�kaz.

Teraz pokra�uj lekciou 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 2.1: Mazacie pr�kazy


	 ** Nap�sanie pr�kazu  dw  zma�e znaky do konca slova. **

1. Stla�  <ESC>  aby si bol bezpe�ne v norm�lnom m�de.

2. Presu� kurzor ni��ie na riadok ozna�en� zna�kou --->.

3. Presu� kurzor na za�iatok slova, ktor� je potrebn� zmaza�.

4. Nap�  dw  aby slovo zmizlo.

POZN�MKA: P�smeno d sa zobraz� na poslednom riadku obrazovky ke� ho
	        nap�e�. Vim na teba po�k�, aby si mohol nap�sa�
          p�smeno w. Ak vid� nie�o in� ako  d , tak si nap�sal
          nespr�vny znak; stla�  <ESC>  a za�ni znova.

---> Tu je nieko�ko slov z�bava, ktor� nie patria list do tejto vety.

5. Zopakuj kroky 3 a� 4 k�m veta nieje spr�vna a prejdi na lekciu 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 2.2: VIAC MAZAC�CH PR�KAZOV


	 ** Nap�sanie pr�kazu d$  zma�e znaky do konca riadku **

1. Stla�  <ESC>  aby si bol bezpe�ne v norm�lnom m�de.

2. Presu� kurzor ni��ie na riadok ozna�en� zna�kou --->.

3. Presu� kurzor na koniec spr�vnej vety (ZA prv� bodku).

4. Nap�    d$    aby sa zmazali znaky do konca riadku.

---> Niekto nap�sal koniec tohto riadku dvakr�t. koniec tohot riadku dvakr�t.


5. Prejdi na lekciu 2.3 pre pochopenie toho �o sa stalo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 2.3: OPER�TORY A POHYBY

  Ve�a pr�kazov, ktor� menia text s� odvoden� od oper�torov a pohybov.
  Form�t pre pr�kaz mazania kl�vesou  d  je nasledovn�:

    d   pohyb

  kde:
    d     - je mazac� oper�tor
    pohyb - je to �o oper�tor vykon�va (vyp�san� ni��ie)

  Kr�tky list pohybov:
    w - do za�iatku �al�ieho slova, okrem jeho prv�ho p�smena.
    e - do konca teraj�ieho slova, vr�tane posledn�ho znaku.
    $ - do konca riadku, vr�tane posledn�ho znaku

  Tak�e nap�san�m  de  sa zma�e v�etko od kurzora do konca slova.

POZN�MKA: Stla�en�m iba pohybu v norm�lnom m�de bez oper�tora
          sa presunie kurzor tak ako je to �pecivikovan�.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcia 2.4: Pou�itie viacn�sobn�ho pohybu


   ** Nap�san�m ��sla pred pohyb ho zopakuje zadn� po�et kr�t **

  1. Presu� kurozr ni��ie na za�iatok riadku ozna�en�ho --->.

  2. Nap�  2w  a kurozr sa presunie o dve slov� vpred.

  3. Nap�  3e  a kurozr sa presunie vpred na koniec tretieho slova.

  4. Nap�  0  (nula) a kurozr sa presunie na za�iatok riadku.

  5. Zopakuj kroky 2 a 3 s r�znymi ��slami.

---> Toto je riadok so slovami po kotr�ch sa m�ete pohybova�.

  6. Prejdi na lekciu 2.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcia 2.5: POU�ITIE VIACN�SOBN�HO MAZANIA PRE HROMADN� MAZANIE


    ** Nap�sanie ��sla spolu s oper�torom ho zopakuje zadan� po�et kr�t **

  V kombin�cii oper�torov mazania a pohybu spom�nan�ho vy��ie vlo� po�et
  pred pohyb pre docielenie hromadn�ho mazania:
    d   ��slo   pohyb

  1. Presu� kurzor na prv� slovo p�san� VE�K�MI P�SMENAMI
     v riadku ozna�enom --->.

  2. Nap�  2dw  a zma�e� dve slov� p�san� VE�K�MI P�SMENAMI

  3. Zopakuj kroky 1 a 2 s pou�it�m r�zneho ��sla tak aby si zmazal slov�
     p�san� ve�k�mi p�smenami jedn�m pr�kazom.

---> Tento ABC DE riadok FGHI JK LMN OP so slovamI je Q RS TUV vycisteny.

POZN�MKA: ��slo medzi oper�torom  d  a pohybom funguje podobne ako pri
          pou�it� s pohybom bez oper�tora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    		Lekcia 2.6: OPER�CIE S RIADKAMI


	    ** Nap�sanie pr�kazu   dd   zma�e cel� riadok. **

Vzh�adom na frekvenciu mazania cel�ho riadku, sa autori Vimu rozhodli,
�e bude jednoduch�ie maza� cel� riadok nap�san�m dvoch p�smen d.

1. Presu� kurzor na druh� riadok v texte na spodu.
2. Nap�  dd  aby si zmazal riadok.
3. Prejdi na �tvrt� riadok.
4. Nap�   2dd   aby si zmazal dva riadky.

    1)  Ru�e s� �erven�,
    2)  Blato je z�bavn�,
    3)  Fialky s� modr�,
    4)  M�m auto,
    5)  Hodinky ukazuj� �as,
    6)  Cukor je sladk�,
    7)  A to si ty.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 2.7: PR�KAZ UNDO


** Stla�  u  pre vr�tenie posledn�ho pr�kazu,  U  pre �pravu cel�ho riadku. **

1. Presu� kurzor ni��ie na riadok ozna�en� zna�kou ---> a premiestni ho na
   prv� chybu.
2. Nap�  x  pre zmazanie prv�ho nechcen�ho riadku.
3. Teraz nap�  u  ��m vr�t� sp� posledne vykonan� pr�kaz.
4. Teraz oprav v�etky chyby na riadku pou�it�m pr�kazu  x  .
5. Teraz nap� ve�k�   U  ��m vr�t� riadok do p�vodn�ho stavu.
6. Teraz nap�  u  nieko�ko kr�t, ��m vr�t� sp� pr�kaz U.
7. Teraz nap� CTRL-R (dr� kl�vesu CTRL stla�en� k�m stl��a� R) nieko�ko
   kr�t, ��m vr�t� sp� predt�m vr�ten� pr�kazy (undo z undo).

---> Opprav chybby nna toomto riadku a zmee� ich pommocou undo.

  8. Tieto pr�kazy s� �asto pou��van�. Teraz prejdi na zhrnutie lekcie 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 2 ZHRNUTIE


  1. Pre zmazanie znakov od kurzora do konca slova nap�:   dw

  2. Pre zmazanie znakov od kurzora do konca riadku nap�:   d$

  3. Pre zmazanie cel�ho riadku nap�:   dd

  4. Pre zopakovanie pohybu, nap� pred neho ��slo:   2w

  5. Form�t pre p�kaz:

       oper�tor   [��slo]   pohyb
     kde:
       oper�tor - �o treba robi�, napr�klad  d  pre zmazanie
       [��slo] - je volite�n� po�et pre opakovanie pohybu
       pohyb - pohyb po texte vzh�adom na oper�tor, napr�klad w (slovo),
		$ (do konca riadku), at�.

  6. Pre pohyb na za�iatok riadku pou�i nulu:  0

  7. Pre vr�tenie sp� predo�lej oper�cie nap�:	u   (mal� u)
     Pre vr�tenie v�etk�ch �prav na riadku nap�:    U   (ve�k� U)
     Pre vr�tenie vr�ten�ch �prav nap�:	      CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 3.1: PR�KAZ VLO�I�


	  ** Nap�sanie pr�kazu  p  vlo�� psledn� v�maz za kurzor. **

  1. Presu� kurzor ni��ie na prv� riadok textu.

  2. Nap�  dd  ��m zma�e� riadok a ulo�� ho do buffera editora Vim.

  3. Presu� kurzor vy��ie tam, kam zmazan� riadok patr�.

  4. Ak nap�e� v norm�lnom m�de   p   zmazan� riadk sa vlo��.

  5. Zopakuj kroky 2 a� 4, k�m riadky nies� v spr�vnom porad�.

---> d) Tie� sa dok�e� vzdel�va�?
---> b) Fialky s� modr�,
---> c) Inteligencia sa vzdel�va,
---> a) Ru�e s� �erven�,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.2: PR�KAZ NAHRADENIA


     ** Nap�san�m  rx  sa nahrad� znak na mieste kurzora znakom  x . **

  1. Presu� kurzor ni��ie na prv� riadok textu ozna�en�ho zna�kou --->.

  2. Presu� kurzor na za�iatok prvej chyby.

  3. nap�  r  a potom znak, ktor� tam m� by�.

  4. Zopakuj kroky 2 a 3, k�m prv� riadok nieje zhodn� s druh�m.

---> Ka� bol tento riasok p�aan�, niekro stla�il nespr�bne kl�vesy!
---> Ke� bol tento riadok p�san�, niekto stla�il nespr�vne kl�vesy!

  5. Teraz prejdi na lekciu 3.2.

POZN�MKA: Pam�taj si, �e nau�i� sa m�e� len pou��vanim, nie pam�tan�m.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.3. PR�KAZ �PRAVY


     ** Ak chce� zmeni� �as� slova do konca slova, nap�  ce . **

  1. Presu� kurzor ni��ie na prv� riadok ozna�en� zna�kou --->.

  2. Umiestni kurzor na p�smeno o v slove rosfpl.

  3. Nap�  ce  a oprav slovo (v tomto pr�pade nap� 'iadok'.)

  4. Stla� <ESC> a prejdi na �al�� znak, ktor� treba zmeni�.

  5. Zopakuj kroky 3 a 4, k�m prv� veta nieje rovnak� ako druh�.

---> Tento rosfpl m� nieko�ko skic, ktor� je pirewvb� zmeni� piy�u��n pr�kazu.
---> Tento riadok m� nieko�ko slov, ktor� je potrebn� zmeni� pou�it�m pr�kazu.

Pozn�mka, �e  ce  zma�e slovo a nastav� vkladac� m�d.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.4: VIAC ZMIEN POU�IT�M c


   ** Pr�kaz pre �pravy sa pou��va s rovnak�mi pohybmi ako pre mazanie **

  1. Pr�kaz pre �pravy pracuje rovnako ako pre mazanie. Form�t je:

        c    [��slo]    pohyb

  2. Pohyby s� rovnak�, ako napr�klad   w (slovo) a  $ (koniec riadku).

  3. Presu� kurzor ni��ie na prv� riadok ozna�en� zna�kou --->.

  4. Presu� kurzor na prv� chybu.

  5. nap�  c$  aby si mohol upravi� zvy�ok riadku pod�a druh�ho
     a stla� <ESC>.

---> Koniec tohto riadku potrebuje pomoc, aby bol ako druhy.
---> Koniec tohto riadku potrebuje opravi� pou�it�m pr�kazu  c$ .

POZN�MKA: M�e� pou�i� kl�vesu backspace na �pravu zmien po�as p�sania.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 3 ZHRNUTIE


  1. Na vlo�enie textu, ktor� u� bol zmazan�, nap�  p . To vlo�� zmazan�
     text ZA kurzor (ak bol riadok zmazan� prejde na riadok pod kurzorom).

  2. Pre naradenie znaku na mieste kurzora, nap�  r  a potom znak, ktor�
     nahrad� p�vodn� znak.

  3. Pr�kaz na upravenie umo��uje zmeni� od kurzora a� po miesto, ktor�
     ur�uje pohyb.  napr. Nap�  ce  ��m zmn� text od poz�cie
     kurzora do konca slova, c$  zmen� text do konca riadku.

  4. Form�t pre nahradenie je:

	    c    [��slo]    pohyb


Teraz prejdi na nalseduj�cu lekciu.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 4.1: POZ�CIA A STATUS S�BORU


  ** Stla� CTRL-g pre zobrazenie svojej poz�cie v s�bore a statusu s�boru.
     Nap�  G  pre presun na riadok v s�bore. **

  Pozn�mka: Pre��taj si cel� t�to lekciu sk�r ako za�ne� vykon�va� kroky!!

  1. Dr� stla�en� kl�vesu Ctrl a stla�  g . Toto naz�vame CTRL-G.
     Na spodu obrazovky sa zobraz� spr�va s n�zvom s�boru a poz�ciou
     v s�bore. Zapam�tajsi si ��slo riadku pre pou�itie v kroku 3.

  2. Stla�  G  ��m sa dostane� na spodok s�boru.
     Nap�  gg  ��m sa dostane� na za�iatok s�boru.

  3. Nap� ��slo riadku na ktorom si sa nach�dzal a stla�  G. To �a
     vr�ti na riadok, na ktorom si prv� kr�t stla�il CTRL-G.

  4. Ak sa c�t� schopn� vykona� teto kroky, vykonaj kroky 1 a� 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 4.2: PR�KAZ VYH�AD�VANIA


  ** Nap�  /  nasledovan� re�azcom pre vyh�adanie pr�slu�n�ho re�azca. **

  1. Nap� znak  /  v norm�lnom m�de. Pozn�mka, �e tento znak sa spolu
     s kurzorom zobraz� v dolnej �asti obrazovky s  :  pr�kazom.

  2. Teraz nap� 'errroor' <ENTER>. To je slovo, ktor� chce� vyh�ada�.

  3. Pre vyh�adanie �al�ieho v�skytu rovnak�ho re�azca, stla� jednoducho  n.
     Pre vyh�adanie �al�ieho v�skytu rovnak�ho re�azca opa�n�m smerom,
     N.

  4. Ak chce� vyh�ada� re�azec v sp�tnom smere, pou�� pr�kaz  ?  miesto
     pr�kazu /.

  5. Pre n�vrat na miesto z ktor�ho si pri�iel stla� CTRL-O (dr� stla�en�
     kl�vesu Ctrl po�as stla�enia kl�vesy o). Zopakuj pre �al�� n�vrat
     sp�. CTRL-I ide vpred.

POZN�MKA: "errroor" nieje sp�sob hl�skovania error; errroor je error.
POZN�MKA: Ke� vyh�ad�vanie dosiahne koniec tohto s�boru, bude pokra�ova� na
      za�iatku, dokia� nieje resetovan� nastavenie 'wrapscan' .


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Lekcia 4.3: VYH�AD�VANIE ZODPOVEDAJ�CICH Z�TAVORIEK


	 ** Nap�  %  pre vyh�adanie pr�slu�n�ho znaku ),], alebo } . **

  1. Premiestni kurzor na hocak� zo znakov (, [, alebo { v riadku ni��ie
     ozna�en�ho zna�kou --->.

  2. Teraz nap� znak  % .

  3. Kurzor sa premiestni na zodpovedaj�cu z�tvorku.

  4. Nap�  %  pre presun kurzoru sp� na otv�raj�cu z�tvorku.

  5. Presu� kurzor na in� zo znakov (,),[,],{ alebo } a v�imni si
     �o % vykon�va.

---> Toto ( je testovac� riadok s ('s, ['s ] a {'s } v riadku. ))

Pozn�mka: Toto je ve�mi v�hodn� pou�� pri laden� programu s ch�baj�cimi
	  uzatv�raj�cimi z�tvorkami!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 4.4: PR�KAZ NAHRADENIA


 ** Nap�   :s/star�/nov�/g  pre nahradenie slova 'star�' za slovo 'nov�'. **

  1. Presu� kurzor ni��ie na riadok ozna�en� zna�kou --->.

  2. Nap�  :s/thee/the <ENTER> . Poznamka, �e tento pr�kaz zmen� len prv�
     v�skyt "thee" v riadku.

  3. Teraz nap�   :s/thee/the/g   �o znamen� celkov� nahradenie v riadku.
     Toto nahrad� v�etky v�skyty v riadku.

---> Thee best time to see thee flowers in thee spring.

  4. Pre zmenu v�etk�ch v�skytov dan�ho re�azca medzi dvomi ridakami,
     nap�  :#,#s/star�/nov�/g  kde #,# s� ��sla dvoch riadkov, v rozsahu
                                ktor�ch sa nahradenie vykon�.
     nap�  :%s/star�/nov�/g    pre zmenu v�etk�ch v�skytov v celom riadku
     nap�  :%s/star�/nov�/gc   n�jde v�etky v�skyty v celom s�bore,
                                s ot�zkou �i nahradi� alebo nie



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 4 ZHRNUTIE


  1. CTRL-g    vyp�e tvoju poz�ciu v s�bore a status s�boru.
            G  �a premiestni na koniec riadku.
     ��slo  G  �a premiestni na riadok s ��slom.
           gg  �a presunie na prv� riadok

  2. Nap�sanie  /  nasledovan� re�azcom vyh�ad� re�azec smerom DOPREDU.
     Nap�sanie  ?  nasledovan� re�azcom vyh�ada re�azec smerom DOZADU.
     Nap�sanie  n  po vyh�ad�van�, vyh�ad� nasleduj�ci v�skyt re�azca
     v rovnakom smere, pri�om  N  vyh�ad� v opa�nom smere.
     CTRL-O �a vr�ti sp� na star�iu poz�ciu, CTRL-I na nov�iu poz�ciu.

  3. Nap�sanie  %  ke� kurzor je na (,),[,],{, alebo } n�jde zodpovdaj�cu
     p�rnu z�tvorku.

  4. Pre nahradenie nov�ho za prv� star� v riadku nap�    :s/star�/nov�
     Pre nahradenie nov�ho za v�etky star� v riadku nap�  :s/star�/nov�/g
     Pre nahradenie re�azcov medzi dvoma riadkami 3 nap�  :#,#/star�/nov�/g
     Pre nahradenie v�etk�ch v�skytov v s�bore nap�       :%s/star�/nov�/g
     Pre potvrdenie ka�d�ho nahradenia pridaj 'c'	         :%s/star�/nov�/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcia 5.1 AKO SPUSTI� VONKAJ�� PR�KAZ


 ** Nap� pr�kaz  :!  nasledovan� vonkaj��m pr�kazom pre spustenie pr�kazu **

  1. Nap� obvykl� p�kaz  :  ktor� nastav� kurzor na spodok obrazovky.
     To umo�n� nap�sa� pr�kaz.

  2. Teraz nap�  !  (v�kri�n�k). To umo�n� spusti� hociak� vonkaj�� pr�kaz
     z pr�kazov�ho riadku.

  3. Ako pr�klad nap�  ls  za ! a stla� <ENTER>. Tento pr�kaz
     zobraz� obsah tvojho adres�ra rovnako ako na pr�kazovom riadku.
     Alebo pou�i  :!dir  ak ls nefunguje.

Pozn�mka:  Takto je mo�n� spusti� hociak� vonkaj�� pr�kaz s argumentami.
Pozn�mka:  V�etky pr�kazy  :  musia by� dokon�en� stla�en�m <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 5.2: VIAC O UKLADAN� S�BOROV


     ** Pre ulo�enie zmien v s�bore, nap�  :w FILENAME. **

  1. Nap�  :!dir  alebo  :!ls  pre v�pis aktu�lneho adres�ra.
     U� vie�, �e mus� za t�mto stla�i� <ENTER> .

  2. Vyber n�zov s�boru, ktor� e�te neexistuje, ako napr. TEST.

  3. Teraz nap�:   :w TEST   (kde TEST je n�zov vybrat�ho s�boru.)

  4. To ulo�� cel� s�bor  (Vim Tutor)  pod n�zovm TEST.
     Pre overenie nap�   :!dir   , ��m  zobraz� obsah adres�ra.

Pozn�mka: �e ak ukon�� pr�cu s editorom Vim a znovu ho spust� pr�kazom
	        vim TEST, s�bor bude k�pia v�uky, ke� si ho ulo�il.

  5. Teraz odstr�� s�bor nap�san�m (MS-DOS):   :!del TEST
			     alebo (Unix):     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcia 5.3 V�BER TEXTU PRE ULO�ENIE


  ** Pre ulo�enie �asti s�boru, nap�  v  pohyb :w FILENAME **

  1. Presu� kurozr na tento riadok.

  2. Stla�  v  a presu� kurozr na piatu polo�ku dole. Pozn�mka, �e
     tento text je vyzna�en� (highlighted).

  3. Stla� kl�vesu  : . V spodnej �asti okna sa objav�  :'<,'>.

  4. Nap� w TEST  , kde TEST je meno s�boru, ktor� zatial neexistuje.
     Skontroluj, e vid�  :'<,'>w TEST  predt�m ne� stla�� Enter.

  5. Vim zap�e ozna�en� riadky do s�boru TEST. Pou�i :!dir  alebo  :!ls
     pre overenie. Zatial ho e�te nema�! Pou�ijeme ho v �al�ej lekcii.

POZN�MKA: Stla�en�m kl�vesy  v  sa spust� vizu�lne ozna�ovanie.
          M�e� pohybova� kurzorom pre upresnenie vyzna�en�ho textu.
          Potom m�e� pou�i� oper�tor pre vykonanie nejakej akcie
          s textom. Napr�klad  d  zma�e vyzna�en� text.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcia 5.4: V�BER A ZLU�OVANIE S�BOROV


	** Pre vlo�enie obsahu s�boru, nap�   :r FILENAME **

  1. Premiestni kurzor nad tento riadok.

POZN�MKA: Po vykonan� kroku 2 uvid� text z lekcie 5.3. Potom sa presu�
          dole, aby si videl t�to lekciu.

  3. Teraz vlo� s�bor TEST pou�it�m pr�kazu   :r TEST   kde TEST je n�zov
     s�boru. S�bor, ktor� si pou�il je umiestnen� pod riadkom s kurzorom.

POZN�MKA: M�e� tie� na��ta� v�stup vonkaj�ieho pr�kazu. Napr�klad :r !ls
          na��ta v�stup pr�kazu ls a umiestni ho za poz�ciu kurzora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 5 ZHRNUTIE


  1.  :!pr�kaz  spust� vonkaj�� pr�kaz.

      Niektor� vyu�ite�n� pr�klady s�:
	(MS_DOS)    (UNIX)
	 :!dir       :!ls	    -  zobraz� obsah adres�ra
	 :!del FILENAME    :!rm FILENAME    -  odstr�ni s�bor FILENAME

  2.  :w FILENAME  ulo�� aktu�lny s�bor na disk pod menom FILENAME.

  3.  v  pohyb  :w FILENAME  ulo�� vizu�lne ozna�en� riadky do
      s�boru FILENAME.

  4.  :r FILENAME  vyberie z disku s�bor FILENAME a vlo�� ho do aktu�lneho
      s�boru za poz�ciou kurzora.

  5. :r !dir  na��ta v�stup z pr�kazu dir a vlo�� ho za poz�ciu kurzora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 6.1: PR�KAZ OTVORI�


** Nap�  o  pre vlo�enie riadku pod kurzor a prepnutie do vkladacieho m�du **

  1. Presu� kurzor ni��ie na riadok ozna�en� zna�kou --->.

  2. Nap� o (mal� p�smeno) pre vlo�enie �ist�ho riadku pod kurzorm
     a prepnutie do vkladacieho m�du.

  3. Teraz skop�ruj riadok ozna�en� ---> a stla� <ESC> pre ukon�enie
     vkladacieho m�du.

---> Po nap�san�  o  sa kurzor premiestn� na vlo�en� riadok do vkladacieho
     m�du.

  4. Pre otvorenie riadku nad kurzorom, jednotucho nap� ve�k�  O ,
     namiesto mal�ho  o. Vysk��aj si to na riadku dole.

---> Vlo� riadok nad t�mto nap�san�m O, ke� kurzor je na tomto riadku.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 6.2: PR�KAZ PRIDA�


	   ** Nap�  a  pre vlo�enie textu ZA kurzor. **

  1. Presu� kurzor ni��ie na koniec prv�ho riadku ozna�en�ho zna�kou --->

  2. Stla� kl�vesu  e  dokia� kurozr nieje na konci riadku.

  3. Nap�  a  (mal� p�smeno) pre pridanie textu ZA kurzorom.

  4. Dokon�� slovo tak ako je to v druhom riadku. Stla� <ESC> pre
     opustenie vkladacieho m�du.

  5. Pou�i  e  na presun na �al�ie nedokon�en� slovo a zopakuj kroky 3 a 4.

---> Tento ri ti dovo�uje n�cv pri�van testu na koniec riadku.
---> Tento riadok ti dovo�uje n�cvik prid�vania textu na koniec riadku.

POZN�MKA: a, i, A �tartuj� rovnak� vkladac� m�d, jedin� rozidel je, kde
          sa znaky vkladaj�.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcia 6.3: IN� SPOSOB NAHRADZOVANIA


      ** Nap� ve�k� R pre nahradenie viac ako jedn�ho znaku. **

  1. Presu� kurzor ni��ie na prv� riadok ozna�en� zna�kou --->. Premiestni
     kurzor na za�iatok prv�ho v�skytu  xxx.

  2. Teraz nap�  R  a  nap�  ��slo uveden� v druhom riadku, tak�e
     sa n�m nahrad� p�vodn� xxx.

  3. Stla� <ESC> pre opustenie nahradzovacieho m�du. Pozn�mka, �e zvy�ok
     riadku zostane nezmenen�.

  4. Zopakuj tieto kroky pre nahradenie zvy�n�ch xxx.

---> Pridan�m 123 ku xxx dostane� xxx.
---> Pridan�m 123 ku 456 dostane� 579.

POZN�MKA:  Nahradzovac� m�d je ako vkladac� m�d, ale ka�d� nap�san� znak
           zma�e existuj�ci znak.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Lekcia 6.4: Copy Paste textu

    ** pou�� oper�tor  y  pre copy textku a  p  pre jeho paste **

  1. Cho� ni��ie na riadok ozna�en� ---> a umiestni kurozr za "a)".

  2. Na�tartuj vizu�lny m�d pou�it�m  v  a presu� kurozr pred "first".

  3. Nap�  y  pre  vystrihnutie (copy) ozna�en�ho textu.

  4. Presu� kurozr na koniec �al�ieho riadku: j$

  5. Nap�  p  pre vlo�nie (paste) textu. Potom nap�:  a druha <ESC>.

  6. Pou�i vizu�lny m�d pre ozna�enie "polo�ka.", vystrihni to
     pou�it�m  y, presu� sa na koniec nasleduj�ceho riadku pou�it�m  j$
     a vlo� sem text pou�it�m  p.

---> a) toto je prv� polo�ka
---> b)

POZN�MKA: M�e� pou�i� tie�  y  ako oper�tor; yw  vystrihne jedno slovo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 6.5: NASTAVENIE MO�NOST�


** Nastav mo�nosti, tak�e vyh�ad�vanie alebo nahradzovanie ignoruje
   rozli�ovanie **


  1. Vyh�adaj re�azec 'ignore' nap�san�m:
     /ignore <ENTER>
     Zopakuj vyh�ad�vanie nieko�ko kr�t stla�en�m kl�vesy  n .

  2. Nastav mo�nos� 'ic' (Ignore case) nap�san�m pr�kazu:
     :set ic

  3. Teraz vyh�adaj re�azec 'ingore' znova stla�en�m kl�vesy  n
     Pozn�mka, �e teraz s� vyh�adan� aj Ignore a IGNORE.

  4. Nastav mo�nos�i 'hlsearch' a 'incsearch':
     :set hls is

  5. Teraz spusti vyh�ad�vac� pr�kaz znovu, a pozri �o sa stalo:
     /ignore <ENTER>

  6. Pre opetovn� zapnutie rozly�ovania ve�k�ch a mal�ch p�smen
     nap�:  :set noic

POZN�MKA: Na odstr�nenie zv�raznenia v�razov nap�:  :nohlsearch
POZN�MKA: Ak chce� nerozly�ova� ve�kos� p�smen len pre jedno
          pou�itie vyh�ad�vacieho pr�kazu, pou�i \c:  /ignore\c <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      LEKCIA 6 ZHRNUTIE


  1. Nap�  o  pre otvorenie riadku pod kurzorom a �tart vkladacieho m�du.
     Nap�  O  pre otvorenie riadku nad kurzorom.

  2. Nap�  a  pre vkladanie textu ZA kurzor.
     Nap�  A  pre vkladanie textu za koncom riadku.

  3. Pr�kaz  e  presunie kurozr na koniec slova

  4. Oper�tor  y  vystrihne (skop�ruje) text,  p  ho vlo��.

  5. Nap�sanie ve�k�ho  R  prepne do nahradzovacieho m�du, k�m nieje
     stla�en� <ESC>.

  6. Nap�sanie ":set xxx" nastav� mo�nos� "xxx". Niektor� nastavenia s�:
     'ic' 'ignorecase' ignoruje ve�k� a mal� p�smen� po�as vyh�ad�vania.
     'is' 'incsearch' zobrazuje �iasto�n� re�azce vyh�ad�van�ho re�azca.
     'hls' 'hlsearch' vyzna�� v�etky vyh�ad�van� re�azce.
      M�e� pou�i� hociktor� z dlh�ch a kr�tkych n�zvov mo�nost�.

  7. Vlo� "no" pred nastavenie pre jeho vypnutie:  :set noic







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    LEKCIA 7.1: Z�SKANIE N�POVEDY


	  ** Pou��vaj on-line syst�m n�povedy **

  Vim m� obsiahly on-line syst�m n�povedy. Pre od�tartovanie, vysk��aj jeden
  z t�chto troch:
	- stla� kl�vesu <HELP> (ak nejak� m�)
	- stla� kl�vesu <F1> (ak nejak� m�)
	- nap�  :help <ENTER>

  ��taj text v okne n�povedy pre z�skanie predstavy ako n�poveda funguje.
  Nap�   CTRL-W CTRL-W  pre skok z jedn�ho okna do druh�ho.
  Nap�    :q <ENTER>    ��m zatvor� okno n�povedy.

  M�e� n�js� help ku hociakej t�me pridan�m argumentu ku pr�kazu ":help".
  Vysk��aj tieto (nezabudni stla�i� <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 LEKCIA 7.2: VYTVORENIE �TARTOVACIEHO SKRIPTU

		       ** Zapni funkcie editora Vim **

  Vim m� omnoho viac funkcii ne� Vi, ale ve�ina z nich je implicitne
  vypnut�. Pre pou��vanie viac Vim funkcii vytvor "vimrc" s�bor.

  1. Za�ni editova� "vimrc" s�bor, to z�vis� na pou�itom syst�me:
	:e ~/.vimrc      pre Unix
	:e $VIM/_vimrc   pre MS-Windows

  2. Teraz si pre��taj text pr�kladu "vimrc" s�boru:

	:r $VIMRUNTIME/vimrc_example.vim

  3. Ulo� s�bor:
	:w

  Pri nasleduj�com �tarte editora Vim sa pou�ije zv�raz�ovanie syntaxe.
  Do "vimrc" s�boru m�e� prida� v�etky svoje uprednost�ovan� nastavenia.
  Pre viac inform�cii nap�  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                   LEKCIA 7.3 DOKON�ENIE

     ** Dokon�i pr�kaz na pr�kazovom riadku pou�it�m CTRL-D a <TAB> **

  1. Uisti sa, �e Vim nieje v kompatibilnom m�de:  :set nocp

  2. Pozri sa ak� s�bory sa nach�dzaj� v adres�ri:  :!ls  alebo  :!dir

  3. Nap� za�iatok pr�kazu:  :e

  4. Stla�  CTRL-D  a Vim zobraz� zoznam pr�kazov za��naj�cich "e".

  5. Stla� <TAB> a Vim dokon�� meno pr�kazu na ":edit".

  6. Teraz pridaj medzern�k a za�iatok mena existuj�ceho s�boru:
     :edit FIL

  7. Stla� <TAB>. Vim dokon�� meno (ak je jedine�n�).

POZN�MKA: Dokon�ovanie funguje pre ve�a pr�kazov. Vysk��aj stla�enie
          CTRL-D a <TAB>. �peci�lne je to u�ito�n� pre pr�kaz  :help.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

            LEKCIA 7 ZHRNUTIE

  1. Nap�  :help  alebo stla� <F1> alebo <Help> pre otvorenie okna n�povedy.

  2. Nap�  :help pr�kaz  pre vyh�adanie n�povedy ku pr�kazu pr�kaz.

  3. Nap�  CTRL-W CTRL-W  na presko�enie do in�ho okna.

  4. Nap�  :q  pre zatvorenie okna n�povedy

  5. Vytvor �tartovac� skript vimrc pre udr�anie uprednost�ovan�ch nastaven�.

  6. Po�as p�sania pr�kazu  :  stla� CTRL-D pre zobrazenie dokon�en�.
     Stla� <TAB> pre pou�itie jedn�ho z dokon�en�.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



  Toto vymedzuje v�uku Vimu. Toto je ur�en� pre strucn� preh�ad o editore
  Vim, �plne posta�uj�ce pre �ahk� a obstojn� pou��vanie tohto editora.
  T�to v�uka je �aleko od kompletnosti, preto�e Vim m� omnoho viacej pr�kazov.
  Ako �al�ie si pre��taj u��vat�sk� manu�l: ":help user-manual".

  Pre �al�ie ��tanie a �t�dium je odpor��an� kniha:
  Vim - Vi Improved - od Steve Oualline
  Vydavate�: New Riders
  Prv� kniha ur�en� pre Vim. �peci�lne vhodn� pre za�iato�n�kov.
  Obsahuje mno�stvo pr�kladov a obr�zkov.
  Pozri na http://iccf-holland.org/click5.html

  T�to kniha je star�ia a je viac o Vi ako o Vim, ale je tie� odpor��an�:
  Learning the Vi Editor - od Linda Lamb
  Vydavate�: O'Reilly & Associates Inc.
  Je to dobr� kniha pre z�skanie vedomost� o pr�ci s editorom Vi.
  �ieste vydanie obsahuje tie� inform�cie o editore Vim.

  T�to v�uka bola nap�san� autormi Michael C. Pierce a Robert K. Ware,
  Colorado School of Mines s pou�it�m my�lienok dodan�mi od Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Modifikovan� pre Vim od Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Preklad do Sloven�iny: �ubo� �elko
  e-mail:       celbos@inmail.sk
  Last Change:  2006 Apr 18
  encoding:     cp1250
PK�j�Z������vim80/tutor/tutor.ja.utf-8nu�[���===============================================================================
=    V I M 教 本 (チュートリアル) へ よ う こ そ        -    Version 1.7      =
===============================================================================

     Vim は、このチュートリアルで説明するには多すぎる程のコマンドを備えた非常
     に強力なエディターです。このチュートリアルは、あなたが Vim を万能エディ
     ターとして使いこなせるようになるのに十分なコマンドについて説明をするよう
     になっています。

     チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ
     け時間を使うのかにもよりますが、およそ25から30分です。

     ATTENTION:
     以下の練習用コマンドにはこの文章を変更するものもあります。練習を始める前
     にコピーを作成しましょう("vimtutor"したならば、既にコピーされています)。

     このチュートリアルが、使うことで覚えられる仕組みになっていることを、心し
     ておかなければなりません。正しく学習するにはコマンドを実際に試さなければ
     ならないのです。文章を読んだだけならば、きっと忘れてしまいます!

     さぁ、Capsロック(Shift-Lock)キーが押されていないことを確認した後、画面に
     レッスン1.1 が全部表示されるところまで、j キーを押してカーソルを移動しま
     しょう。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 レッスン 1.1:  カーソルの移動


       ** カーソルを移動するには、示される様に h,j,k,l を押します **
	     ^
	     k		    ヒント:  h キーは左方向に移動します。
       < h	 l >		     l キーは右方向に移動します。
	     j			     j キーは下矢印キーのようなキーです。
	     v
  1. 移動に慣れるまで、スクリーンでカーソル移動させましょう。

  2. 下へのキー(j)を押しつづけると、連続して移動できます。
     これで次のレッスンに移動する方法がわかりましたね。

  3. 下へのキーを使って、レッスン1.2 に移動しましょう。

NOTE: 何をタイプしているか判らなくなったら、<ESC>を押してノーマルモードにし
      ます。それから入力しようとしていたコマンドを再入力しましょう。

NOTE: カーソルキーでも移動できます。しかし hjkl に一度慣れてしまえば、はるか
      に速く移動することができるでしょう。いやマジで!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 レッスン 1.2: VIM の起動と終了


  !! NOTE: 以下のあらゆるステップを行う前に、このレッスンを読みましょう!!

  1. <ESC>キーを押しましょう。(確実にノーマルモードにするため)

  2. 次のようにタイプ:		:q! <ENTER>
     これにより編集した内容を保存せずにエディタが終了します。

  3. このチュートリアルを始める為のコマンドを実行すると、ここに戻れます。
     そのコマンドは:		vimtutor <ENTER>

  4. これまでのステップを覚え自信がついたならば、ステップ 1 から 3 までを実
     際に試して、Vim を1度終了してから再び起動しましょう。

NOTE:  :q! <ENTER> は全ての変更を破棄します。レッスンにて変更をファイルに保
       存する方法についても勉強していきましょう。

  5. 1.3までカーソルを移動させましょう。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       レッスン 1.3: テキスト編集 - 削除


    ** ノーマルモードにてカーソルの下の文字を削除するには x を押します **

  1. 以下の ---> と示された行にカーソルを移動しましょう。

  2. 間違いを修正するために、削除する最初の文字までカーソルを移動します。

  3. 不必要な文字を x を押して削除しましょう。

  4. 文が正しくなるまで ステップ 2 から 4 を繰り返しましょう。

---> その ううさぎ は つつきき を こええてて とびはねたた

  5. 行が正しくなったら、レッスン 1.4 へ進みましょう。

NOTE: 全てのレッスンを通じて、覚えようとするのではなく実際にやってみましょう。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       レッスン 1.4: テキスト編集 - 挿入


	 ** ノーマルモードにてテキストを挿入するには i を押します **

  1. 以下の ---> と示された最初の行にカーソルを移動しましょう。

  2. 1行目を2行目と同じ様にするために、テキストを挿入しなければならない位置
     の次の文字にカーソルを移動します。

  3. i キーを押してから、追加が必要な文字をタイプしましょう。

  4. 間違いを修正したら <ESC> を押してコマンドモードに戻り、正しい文になる様
     にステップ 2 から 4 を繰り返しましょう。

---> この には 足りない テキスト ある。
---> この 行 には 幾つか 足りない テキスト が ある。

  5. 挿入の方法がわかったらレッスン 1.5 へ進みましょう。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     レッスン 1.5: テキスト編集 - 追加


		 ** テキストを追加するには A を押しましょう **

  1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
     カーソルがその文字上にあってもかまいません。

  2. 追加が必要な場所で A をタイプしましょう。

  3. テキストを追加し終えたら、 <ESC> を押してノーマルモードに戻りましょう。

  4. 2行目の ---> と示された場所へ移動し、ステップ 2 から 3 を繰り返して文法
     を修正しましょう。

---> ここには間違ったテキストがあり
     ここには間違ったテキストがあります。
---> ここにも間違ったテキス
     ここにも間違ったテキストがあります。

  5. テキストの追加が軽快になってきたらレッスン 1.6 へ進みましょう。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     レッスン 1.6: ファイルの編集


	   ** ファイルを保存して終了するには :wq とタイプします **

  !! NOTE: 以下のステップを実行する前に、まず全体を読んでください!!

  1. レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
     します。あるいは、別の端末がある場合はそこで以下の内容を行ってもかまい
     ません。

  2. シェルプロンプトでこのコマンドをタイプします:  vim tutor <ENTER>
     'vim'が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの
     名前です。変更してもよいファイルを使いましょう。

  3. 前のレッスンで学んだように、テキストを挿入、削除します。

  4. 変更をファイルに保存します:  :wq  <ENTER>

  5. ステップ 1 で vimtutuor を終了した場合は vimtutor を再度起動し、以下の
     要約へ進みましょう。

  6. 以上のステップを読んで理解した上でこれを実行しましょう。
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				レッスン 1 要約


  1. カーソルは矢印キーもしくは hjkl キーで移動します。
	 h (左)		j (下)         k (上)	    l (右)

  2. Vim を起動するにはプロンプトから vim ファイル名 <ENTER> とタイプします。

  3. Vim を終了するには	   <ESC> :q!	 <ENTER>  とタイプします(変更を破棄)。
               もしくは	   <ESC> :wq	 <ENTER>  とタイプします(変更を保存)。

  4. カーソルの下の文字を削除するには、ノーマルモードで x とタイプします。

  5. カーソルの位置に文字を挿入するには、ノーマルモードで i とタイプします。
	 i     テキストのタイプ	<ESC>         カーソル位置に追加
	 A     テキストの追加   <ESC>         行末に追加

NOTE: <ESC> キーを押すとノーマルモードに移行します。その際、間違ったり入力途
      中のコマンドを取り消すことができます。

さて、続けてレッスン 2 を始めましょう。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   レッスン 2.1: 削除コマンド


	    ** 単語の末尾までを削除するには dw とタイプしましょう **

  1. ノーマルモードであることを確認するために <ESC> を押しましょう。

  2. 以下の ---> と示された行にカーソルを移動しましょう。

  3. 消したい単語の先頭にカーソルを移動しましょう。

  4. 単語を削除するために dw とタイプしましょう。

  NOTE: タイプすると、dw という文字がスクリーンの最下行に現われます。
        タイプを間違ってしまった時には <ESC> を押してやり直しましょう。

---> この 文 紙 には いくつかの たのしい 必要のない 単語 が 含まれて います。

  5. 3 から 4 までを文が正しくなるまで繰り返し、レッスン 2.2 へ進みましょう。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       レッスン 2.2: その他の削除コマンド


	     ** 行の末尾までを削除するには d$ とタイプしましょう **

  1. ノーマルモードであることを確認するのに <ESC> を押しましょう。

  2. 以下の ---> と示された行にカーソルを移動しましょう。

  3. 正しい文の末尾へカーソルを移動しましょう(最初の 。 の後です)。

  4. 行末まで削除するのに d$ とタイプしましょう。

---> 誰かがこの行の最後を2度タイプしました。 2度タイプしました。


  5. どういうことか理解するために、レッスン 2.3 へ進みましょう。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     レッスン 2.3: オペレータとモーション


  多くのコマンドはオペレータとモーションからテキストに変更を加えます。
  削除コマンド d のオペレータは次の様になっています:

  	d   モーション

  それぞれ:
    d          - 削除コマンド。
    モーション - 何に対して働きかけるか(以下に挙げます)。

  モーション一覧の一部:
    w - カーソル位置から空白を含む単語の末尾まで。
    e - カーソル位置から空白を含まない単語の末尾まで。
    $ - カーソル位置から行末まで。

  つまり de とタイプすると、カーソル位置から単語の終わりまでを削除します。

NOTE: 冒険したい人は、ノーマルモードにてコマンドなしにモーションを押して
      みましょう。カーソルが目的語一覧で示される位置に移動するはずです。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 レッスン 2.4: モーションにカウントを使用する


      ** 何回も行いたい繰り返しのモーションの前に数値をタイプします。 **

  1. 以下の ---> と示された行の先頭にカーソルを移動します。

  2. 2w をタイプして単語2つ分前に移動します。

  3. 3e をタイプして3つ目の単語の終端に移動します。

  4. 0 (ゼロ)をタイプして行頭に移動します。

  5. ステップ 2 と 3 を違う数値を使って繰り返します。

---> This is just a line with words you can move around in.

  6. レッスン 2.5 に進みましょう。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   レッスン 2.5: より多くを削除するためにカウントを使用する


  ** オペレータとカウントをタイプすると、その操作が複数回繰り返されます。 **

  既述の削除のオペレータとモーションの組み合わせにカウントを追加することで、
  より多くの削除が行えます:
	 d   数値   モーション

  1. ---> と示された行の行頭部分にカーソルを移動しましょう。

  2. UPPER CASE の単語2つを d2w とタイプして削除します。

  3. UPPER CASE という連続した単語を、1つのコマンドと異なるカウントを指定し、
     ステップ 1 と 2 を繰り返します。

---> このABC DE行のFGHI JK LMN OP単語はQ RS TUV綺麗になった。

NOTE:  オペレータ d とモーションの間にカウントを使った場合、オペレータのない
       場合のモーションのように動作します。
       例: 3dw と d3w は同等で、3w を削除します。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 レッスン 2.6: 行の操作


		 ** 行全体を削除するには dd とタイプします **

  行全体を削除する頻度が多いので、Viのデザイナーは行の削除を d の2回タイプと
  いう簡単なものに決めました。

  1. 以下の句の2行目にカーソルを移動します。
  2. dd とタイプして行を削除します。
  3. さらに4行目に移動します。
  4. 2dd とタイプして2行を削除します。

--->  1)  バラは赤い、
--->  2)  つまらないものは楽しい、
--->  3)  スミレは青い、
--->  4)  私は車をもっている、
--->  5)  時計が時刻を告げる、
--->  6)  砂糖は甘い
--->  7)  オマエモナー


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 レッスン 2.7: やり直しコマンド


  ** 最後のコマンドを取り消すには u を押します。U は行全体の取消です。 **

  1. 以下の ---> と示された行にカーソルを移動し、最初の間違いにカーソル
     を移動しましょう。
  2. x をタイプしていらない先頭の文字を削除しましょう。
  3. さぁ、u をタイプして最後に実行したコマンドを取り消しましょう。
  4. 今度は、x を使用して誤りを全て修正しましょう。
  5. 大文字の U をタイプして、行を元の状態に戻しましょう。
  6. u をタイプして直前の U コマンドを取消しましょう。
  7. ではコマンドを再実行するのに CTRL-R (CTRL を押したまま R を打つ)を数回
     タイプしてみましょう(取消の取消)。

---> このの行のの間違いを修正々し、後でそれらの修正をを取消しまますす。

  8. これはとても便利なコマンドです。さぁレッスン 2 要約へ進みましょう。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				レッスン 2 要約


  1. カーソル位置から単語の末尾までを削除するには dw とタイプします。
  2. カーソル位置から行の末尾までを削除するには d$ とタイプします。
  3. 行全体を削除するには dd とタイプします。

  4. モーションを繰り返すには数値を付与します:   2w
  5. 変更に用いるコマンドの形式は
               オペレータ   [数値]   モーション

     それぞれ:
       オペレータ - 削除 d の類で何をするか。
       数値       - そのコマンドを何回繰り返すか。
       モーション - w (単語)や $ (行末)などの類で、テキストの何に対して働きか
                    けるか。

  6. 行の先頭に移動するにはゼロを使用します:  0

  7. 前回の動作を取消す:	u   (小文字 u)
     行全体の変更を取消す:	U   (大文字 U)
     取消しの取消し:		CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   レッスン 3.1: 貼り付けコマンド


    ** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします **

  1. 以下の段落の最初の行にカーソルを移動しましょう。

  2. dd  とタイプして行を削除し、Vim のバッファに格納しましょう。

  3. 削除した行が本来あるべき位置の上の行まで、カーソルを移動させましょう。

  4. ノーマルモードで p をタイプして格納した行を画面に戻します。

  5. 順番が正しくなる様にステップ 2 から 4 を繰り返しましょう。

     d) 貴方も学ぶことができる?
     b) スミレは青い、
     c) 知恵とは学ぶもの、
     a) バラは赤い、



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 レッスン 3.2: 置き換えコマンド


	   ** カーソルの下の文字を置き換えるには r をタイプします **

  1. 以下の ---> と示された最初の行にカーソルを移動しましょう。

  2. 最初の間違いの先頭にカーソルを移動しましょう。

  3. r とタイプし、間違っている文字を置き換える、正しい文字をタイプしましょう。

  4. 最初の行が正しくなるまでステップ 2 から 3 を繰り返しましょう。

--->  この合を人力した時ね、その人は幾つか問違ったキーを押しもした!
--->  この行を入力した時に、その人は幾つか間違ったキーを押しました!

  5. さぁ、レッスン 3.3 へ進みましょう。

NOTE: 実際に試しましょう。決して覚えるだけにはしないこと。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			レッスン 3.3: 変更コマンド


	 ** 単語の一部、もしくは全体を変更するには cw とタイプします **

  1. 以下の ---> と示された最初の行にカーソルを移動しましょう。

  2. lubw の u の位置にカーソルを移動しましょう。

  3. cw とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。

  4. 次の間違い(変更すべき文字の先頭)に移動するために <ESC> をタイプします。

  5. 最初の行が次の行の様になるまでステップ 3 と 4 を繰り返します。

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

cw は単語を変更するだけでなく、挿入も行えることに注意しましょう。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     レッスン 3.4: c を使用したその他の変更


     ** 変更コマンドは、削除コマンドと同じ様にオブジェクトを使用します **

  1. 変更コマンドは、削除コマンドと同じような動作をします。その形式は

         c    [数値]   モーション

  2. オブジェクトも同じで、w は単語、 $ は行末などといったものです。

  3. 以下の ---> と示された行にカーソルを移動しましょう。

  4. 最初の間違いへカーソルを移動しましょう。

  5. c$ とタイプして行の残りを2行目の様にし、<ESC> を押しましょう。

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.

NOTE:  タイプ中の間違いはバックスペースキーを使って直すこともできます。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				レッスン 3 要約


  1. 既に削除されたテキストを再配置するには、p をタイプします。これは削除さ
     れたテキストをカーソルの後に挿入します(行単位で削除されたのならば、カー
     ソルのある次の行に挿入されます)。

  2. カーソルの下の文字を置き換えるには、r をタイプした後、それを置き換える
     文字をタイプします。

  3. 変更コマンドではカーソル位置から特定のモーションで指定される終端までを変
     更することが可能です。例えば cw ならばカーソル位置から単語の終わりまで、
     c$ ならば行の終わりまでを変更します。

  4. 変更コマンドの形式は

         c    [数値]   モーション

さぁ、次のレッスンへ進みましょう。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     レッスン 4.1: 位置とファイルの情報

  ** ファイル内での位置とファイルの状態を表示するには CTRL-G をタイプします。
     ファイル内のある行に移動するには G をタイプします **

     NOTE: ステップを実行する前に、このレッスン全てに目を通しましょう!!

  1. CTRL を押したまま g を押しましょう。この操作を CTRL-G と呼んでいます。
     ページの一番下にファイル名と行番号が表示されるはずです。 ステップ 3のため
     に行番号を覚えておきましょう。

NOTE:  画面の右下隅にカーソルの位置が表示されているかもしれません。これは
       'ruler' オプション(:help 'ruler' を参照)を設定することで表示されます。

  2. 最下行に移動するために G をタイプしましょう。
     ファイルの先頭に移動するには gg とタイプしましょう。

  3. 先ほどの行の番号をタイプし G をタイプしましょう。最初に CTRL-G を押した行
     に戻って来るはずです。

  4. 自信が持てたらステップ 1 から 3 を実行しましょう。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   レッスン 4.2: 検索コマンド


	 ** 語句を検索するには / と、前方検索する語句をタイプします。**

  1. ノーマルモードで / という文字をタイプします。画面一番下に : コマンドと
     同じ様に / が現れることに気づくでしょう。

  2. では、'errroor' <ENTER> とタイプしましょう。これが検索したい単語です。

  3. 同じ語をもう一度検索するときは 単に n をタイプします。
     逆方向に語句を検索するときは N をタイプします。

  4. 逆方向に語句を検索する場合は、/ の代わりに ? コマンドを使用します。

  5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら o 文字タイプ)をタイプし
     ます。さらに戻るにはこれを繰り返します。CTRL-I は前方向です。

--->  "errroor" は error とスペルが違います;  errroor はいわゆる error です。
NOTE: 検索がファイルの終わりに達すると、オプション 'wrapscan' が設定されている
      場合は、ファイルの先頭から検索を続行します。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      レッスン 4.3: 対応する括弧を検索


	    ** 対応する ),] や } を検索するには % をタイプします **

  1. 下の ---> で示された行で (,[ か { のどれかにカーソルを移動しましょう。

  2. そこで % とタイプしましょう。

  3. カーソルは対応する括弧に移動するはずです。

  4. 最初の括弧に移動するには % とタイプしましょう。

  5. 他の (,),[,],{ や } でカーソルを移動し、% が何をしているか確認しましょう。

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))


NOTE: この機能は括弧が一致していないプログラムをデバッグするのにとても役立ち
      ます。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       レッスン 4.4: 間違いを変更する方法


	** 'old' を 'new' に置換するには :s/old/new/g とタイプします **

  1. 以下の ---> と示された行にカーソルを移動しましょう。

  2. :s/thee/the <ENTER> とタイプしましょう。このコマンドはその行で最初に見
     つかったものにだけ行なわれることに気をつけましょう。

  3. では :s/thee/the/g	とタイプしましょう。行全体を置換することを意味します。
     この変更はその行で見つかった全ての箇所に対して行なわれます。

---> thee best time to see thee flowers is in thee spring.

  4. 複数行から見つかる文字を変更するには
     :#,#s/old/new/g    #,# には置き換える範囲の開始と終了の行番号を指定しま
                        す。
     :%s/old/new/g      ファイル全体で見つかるものに対して変更する。
     :%s/old/new/gc     ファイル全体で見つかるものに対して、1つ1つ確認をとりな
                        がら変更する。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				レッスン 4 要約


  1. CTRL-G はファイルでの位置とファイルの詳細を表示します。
          G はファイルの最下行に移動します。
     数値 G はその行に移動します。
         gg は先頭行に移動します。

  2. / の後に語句をタイプすると前方に語句を検索します。
     ? の後に語句をタイプすると後方に語句を検索します。
     検索の後の n は同じ方向の次の検索を、N は逆方向の検索をします。
     CTRL-O は場所を前に移し、CTRL-I は場所を次に移動します。

  3. (,),[,],{, もしくは } 上にカーソルがある状態で % をタイプすると対になる文
     字へ移動します。

  4. 現在行の最初の old を new に置換する。	:s/old/new
     現在行の全ての old を new に置換する。	:s/old/new/g
     2つの # 間で語句を置換する。		:#,#s/old/new/g
     ファイルの中の全ての検索語句を置換する。	:%s/old/new/g
     'c' を加えると置換の度に確認を求める。	:%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    レッスン 5.1: 外部コマンドを実行する方法


	     ** :! の後に実行する外部コマンドをタイプします **

  1. 画面の最下部にカーソルが移動するよう、慣れ親しんだ : をタイプしましょう。
     これでコマンドがタイプできる様になります。

  2. ここで ! という文字(感嘆符)をタイプしましょう。
     これで外部シェルコマンドが実行できる様になります。

  3. 例として ! に続けて ls とタイプし <ENTER> を押しましょう。
     シェルプロンプトのようにディレクトリの一覧が表示されるはずです。
     もしくは ls が動かないならば :!dir を使用しましょう。

NOTE:  この方法によってあらゆるコマンドが実行することができます。もちろん引数
       も与えられます。

NOTE:  全ての : コマンドは <ENTER> を押して終了しなければなりません。
       以降ではこのことに言及しません。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    レッスン 5.2: その他のファイルへ書き込み


	** ファイルへ変更を保存するには :w ファイル名 とタイプします **

  1. ディレクトリの一覧を得るために :!dir もしくは :!ls とタイプしましょう。
     このあと <ENTER> を押すのは既にご存知ですね。

  2. TEST のように、そのディレクトリに無いファイル名を一つ選びます。

  3. では :w TEST とタイプしましょう (TEST は、選んだファイル名です)。

  4. これによりファイル全体が TEST という名前で保存されます。
     もう一度 :!dir もしくは :!ls とタイプして確認してみましょう。

NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
     チュートリアルの複製ができ上がるはずです。

  5. さらに、次のようにタイプしてファイルを消しましょう(MS-DOS):  :!del TEST
                                               もしくは(Unix):    :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 レッスン 5.3: 選択した書き込み


** ファイルの位置を保存するには、v モーションと :w FILENAME をタイプします。 **

  1. この行にカーソルを移動します。

  2. v を押し、以下の第5項目にカーソルを移動します。テキストが強調表示されるの
     に注目して下さい。

  3. 文字 : を押すと、画面の最下部に :'<,'> が現れます。

  4. w TEST (TEST は存在しないファイル名)をタイプします。
     <ENTER> を押す前に :'<,'>w TEST となっていることを確認して下さい。

  5. Vim は TEST というファイルに選択された行を書き込むでしょう。
     !dir もしくは !ls でそれを確認します。
     それは削除しないでおいて下さい。次のレッスンで使用します。

NOTE:  v を押すと、Visual 選択が始まります。カーソルを動かすことで、選択範囲を
       大きくも小さくもできます。さらに、その選択範囲に対してオペレータを適用
       きます。例えば d はテキストを削除します。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       レッスン 5.4: ファイルの取込と合併


	** ファイルの中身を挿入するには :r ファイル名 とタイプします **

  1. カーソルを以下の行に合わせます。

NOTE:  ステップ 2 の実行後、レッスン 5.3 のテキストが現れます。下に下がってこ
       のレッスンに移動しましょう。

  2. では TEST というファイルを :r TEST というコマンドで読み込みましょう。
     ここでいう TEST は使うファイルの名前のことです。
     読み込まれたファイルは、カーソル行の下にあります。

  3. 取込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の
     オリジナルとファイルによるものの2つがあることがわかります。

NOTE: 外部コマンドの出力を読み込むことも出来ます。例えば、
      :r !ls は ls コマンドの出力をカーソル以下に読み込みます。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       レッスン 5 要約


  1.  :!command  によって 外部コマンドを実行します。

     よく使う例:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  ディレクトリ内の一覧を見る。
	  :!del FILENAME   :!rm FILENAME   -  ファイルを削除する。

  2.  :w ファイル名 によってファイル名というファイルがディスクに書き込まれる。

  3.  v モーションで :w FILENAME とすると、ビジュアル選択行がファイルに保存さ
      れる。

  4.  :r ファイル名 によりファイル名というファイルがディスクより取り込まれ、
      カーソル位置の下に挿入される。

  5.  :r !dir は dir コマンドの出力をカーソル位置以下に読み込む。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 レッスン 6.1: オープンコマンド


    ** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります **

  1. 以下の ---> と示された行にカーソルを移動しましょう。

  2. o (小文字) をタイプして、カーソルの下の行を開き、挿入モードに入ります。

  3. さらに挿入モードを終了する為に <ESC> をタイプします。

---> o  をタイプするとカーソルは開いた行へ移動し挿入モードに入ります。

  4. カーソルの上の行に挿入するには、小文字の o ではなく、単純に大文字の O
     をタイプします。次の行で試してみましょう。

---> この行の上へ挿入するには、この行へカーソルを置いて O をタイプします。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			レッスン 6.2: 追加コマンド


      ** カーソルの次の位置からテキストを追加するには a とタイプします **

  1. カーソルを ---> で示された行へ移動しましょう。

  2. e を押して li の終端部までカーソルを移動します。

  3. カーソルの後ろにテキストを追加するために a (小文字) をタイプします。

  4. その下の行のような単語に完成させます。挿入モードを抜ける為に <ESC> を押
     します。

  5. e を使って次の不完全な単語へ移動し、ステップ 3 と 4 を繰り返します。
  
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

NOTE: a, i と A は同じ挿入モードへ移りますが、文字が挿入される位置だけが異なり
      ます。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			レッスン 6.3: その他の置換方法


	  ** 1文字以上を置き換えるには大文字の R とタイプしましょう **

  1. 以下の ---> と示された行にカーソルを移動します。最初の xxx の先頭に移動し
     ます。

  2. R を押して、2行目の数値をタイプすることで、xxx が置換されます。

  3. 置換モードを抜けるには <ESC> を押します。行の残りが変更されていないままに
     なることに注意してください。

  4. 残った xxx をステップを繰り返して置換しましょう。

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

NOTE: 置換モードは挿入モードに似ていますが、全てのタイプされた文字は既存の文字
      を削除します。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   レッスン 6.4: テキストのコピーとペースト


     ** テキストのコピーにはオペレータ y を、ペーストには p を使います **

  1. ---> と示された行へ移動し、カーソルを "a)" の後に置いておきます。
  
  2. v でビジュアルモードを開始し、"first" の手前までカーソルを移動します。
  
  3. y をタイプして強調表示されたテキストを yank (コピー)します。

  4. 次の行の行末までカーソルを移動します:  j$

  5. p を押して貼り付け(put)てから、次をタイプします:  a second <ESC>

  6. ビジュアルモードで " item." を選択し、y でヤンク、次の行の行末まで j$ で
     移動し、 p でテキストをそこに put します。

--->  a) this is the first item.
      b)

  NOTE: 単語を1つ yank するのに y をオペレータとして yw とすることも出来ます。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       レッスン 6.5: オプションの設定


  ** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します **

  1. 次の様に入力して 'ignore' を検索しましょう:  /ignore  <ENTER>
     n を押して何度か検索を繰り返します。

  2. 次の様に入力して 'ic' (Ignore Case の略) オプションを設定します:  :set ic

  3. では n によってもう1度 'ignore' を検索します。
     n を押してさらに数回検索を繰り返しましょう。

  4. 'hlsearch' と 'incsearch' オプションを設定しましょう:  :set hls is

  5. 検索コマンドを再入力して、何が起こるか見てみましょう:  /ignore  <ENTER>

  6. 大文字小文字の区別を無効にするには次の様に入力します:  :set noic

NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c
      を使用します:  /ignore\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				レッスン 6 要約

  1. o をタイプするとカーソルの下の行を開けて、そこで挿入モードになる。
     O (大文字) をタイプするとカーソルの上の行で挿入モードになる。

  2. カーソル上の文字の次からテキストを追加するには a とタイプする。
     行末に自動でテキストを挿入するには大文字 A をタイプする。

  3. e コマンドは単語の終端部カーソルを移動する。

  4. y オペレータはテキストを yank (コピー)し、p はそれを put (ペースト)する。

  5. 大文字の R をタイプすると置換モードに入り、<ESC>を押すと抜ける。

  6. ":set xxx" とタイプするとオプション "xxx" が設定される。
  	'ic' 'ignorecase'	検索時に大文字小文字の区別しない
	'is' 'incsearch'	検索フレーズに部分マッチしている部分を表示する
	'hls' 'hlsearch'	マッチするすべを強調表示する
     長い方、短い方、どちらのオプション名でも使用できます。

  7. "no" を付与し、オプションを無効にします:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    レッスン 7.1: オンラインヘルプコマンド


		     ** オンラインヘルプを使用しましょう **

  Vim には広範にわたるオンラインヘルプシステムがあります。
  ヘルプを開始するには、これら3つのどれか1つを試してみましょう:
	- ヘルプキー <HELP> を押す(もしあるならば)。
	- <F1> キーを押す(もしあるならば)。
	- :help <ENTER> とタイプする。

  ヘルプウィンドウのテキストを読むと、ヘルプの動作が理解できます。
  CTRL-W CTRL-W  とタイプすると ヘルプウィンドウへジャンプします。
    :q <ENTER>   とタイプすると ヘルプウィンドウが閉じられます。

  ":help" コマンドに引数を与えることにより、あらゆる題名のヘルプを見つけること
  ができます。これらを試してみましょう(<ENTER> をタイプし忘れないように):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      レッスン 7.2: 起動スクリプトの作成

			 ** Vim の特徴を発揮する **

  Vim には Vi よりも多くの特徴を踏まえていますが、そのほとんどは初期状態にて
  使用不可となっています。より多くの特徴を使いはじめるには "vimrc" ファイル
  を作成します。

  1. "vimrc" ファイルの編集を開始する。これはシステムに依存します。
	:edit ~/.vimrc			UNIX 向け
	:edit $VIM/_vimrc		MS-Windows 向け

  2. ここでサンプルの "vimrc" を読み込みます。
	:read $VIMRUNTIME/vimrc_example.vim

  3. 以下のようにファイルへ書き込みます。
	:write

  次回 Vim を起動すると、色づけ構文が使えるようになるでしょう。
  この "vimrc" ファイルへ、お好みの設定を追加することができます。
  より多くの情報を得るには :help vimrc-intro とタイプします。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      レッスン 7.3: 補完


	       ** CTRL-D と <TAB> でコマンドラインを補完する **

  1. 互換モードでないことを確認します:  :set nocp

  2. 現在のディレクトリに在るファイルを :!ls か :!dir で確認します。

  3. コマンドの開始をタイプします:  :e

  4. CTRL-D を押すと Vim は "e" から始まるコマンドの一覧を表示します。

  5. <TAB> を押すと Vim は ":edit" というコマンド名を補完します。

  6. さらに空白と、既存のファイル名の始まりを加えます:  :edit FIL

  7. <TAB> を押すと Vim は名前を補完します。(もし一つしか無かった場合)

NOTE: 補完は多くのコマンドで動作します。そして CTRL-D と <TAB> 押してみてくだ
      さい。特に :help の際に役立ちます。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       レッスン 7 要約


  1. ヘルプウィンドウを開くには :help とするか <F1> もしくは <Help> を押す。

  2. コマンド(cmd)のヘルプを検索するには :help cmd とタイプする。

  3. 別のウィンドウへジャンプするには CTRL-W CTRL-W とタイプする。

  4. ヘルプウィンドウを閉じるには :q とタイプする。

  5. お好みの設定を保つには vimrc 起動スクリプトを作成する。

  6. : command で可能な補完を見るには CTRL-D をタイプする。
     補完を使用するには <TAB> を押す。







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  これにて Vim のチュートリアルを終わります。エディタを簡単に、しかも充分に
  使うことができるようにと、Vim の持つ概念の要点のみを伝えようとしました。
  Vim にはさらに多くのコマンドがあり、ここで全てを説明することはできません。
  以降はユーザーマニュアルを参照ください: ":help user-manual"

  これ以後の学習のために、次の本を推薦します。
	Vim - Vi Improved - by Steve Oualline
	出版社: New Riders
  最初の本は完全に Vim のために書かれました。とりわけ初心者にはお奨めです。
  多くの例題や図版が掲載されています。
  次のURLを参照して下さい http://iccf-holland.org/click5.html

  次は Vim よりも Vi について書かれた古い本ですが推薦します:
	Learning the Vi Editor - by Linda Lamb
	出版社: O'Reilly & Associates Inc.
  Vi でやりたいと思うことほぼ全てを知ることができる良書です。
  第6版では、Vim についての情報も含まれています。

  このチュートリアルは Colorado State University の Charles Smith のアイデア
  を基に、Colorado School of Mines の Michael C. Pierce と Robert K. Ware の
  両名によって書かれました。 E-mail: bware@mines.colorado.edu.

  Modified for Vim by Bram Moolenaar.

  日本語訳  松本 泰弘  <mattn.jp@gmail.com>
  監修      村岡 太郎  <koron.kaoriya@gmail.com>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 vi:set ts=8 sts=4 sw=4 tw=78:
PK�j�Zb�:-m�m�vim80/tutor/tutor.it.utf-8nu�[���===============================================================================
=    Benvenuto  alla   G u i d a    all'Editor   V I M   -    Versione 1.7    =
===============================================================================

     Vim è un Editor molto potente ed ha parecchi comandi, troppi per
     spiegarli tutti in una guida come questa.  Questa guida serve a
     descrivere quei comandi che ti permettono di usare facilmente
     Vim come Editor di uso generale.

     Il tempo necessario per completare la guida è circa 25-30 minuti,
     a seconda di quanto tempo dedichi alla sperimentazione.

     ATTENZIONE!
     I comandi nelle lezioni modificano questo testo. Fai una copia di questo
     file per esercitarti (se hai usato "vimtutor", stai già usando una copia).

     E' importante non scordare che questa guida vuole insegnare tramite
     l'uso. Questo vuol dire che devi eseguire i comandi per impararli
     davvero. Se leggi il testo e basta, dimenticherai presto i comandi!

     Adesso, assicurati che il tasto BLOCCA-MAIUSCOLO non sia schiacciato
     e premi il tasto    j    tanto da muovere il cursore fino a che la
     Lezione 1.1 riempia completamente lo schermo.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lezione 1.1:  MOVIMENTI DEL CURSORE


   ** Per muovere il cursore, premi i tasti h,j,k,l come indicato. **
	     ^
	     k		    NOTA:  Il tasto h è a sinistra e muove a sinistra.
       < h	 l >		   Il tasto l è a destra e muove a destra.
	     j			   Il tasto j ricorda una freccia in giù.
	     v
  1. Muovi il cursore sullo schermo finché non ti senti a tuo agio.

  2. Tieni schiacciato il tasto "giù" (j) finché non si ripete il movimento.
     Adesso sai come arrivare fino alla lezione seguente.

  3. Usando il tasto "giù" spostati alla Lezione 1.2.

NOTA: Quando non sei sicuro del tasto che hai premuto, premi <ESC> per andare
      in Modalità Normale [Normal Mode]. Poi ri-immetti il comando che volevi.

NOTA: I tasti con le frecce fanno lo stesso servizio. Ma usando hjkl riesci
      a muoverti molto più rapidamente, dopo che ci si abitua.  Davvero!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lezione 1.2: USCIRE DA VIM


  !! NOTA: Prima di eseguire quanto richiesto, leggi la Lezione per intero!!

  1. Premi il tasto <ESC> (per assicurarti di essere in Modalità Normale).

  2. Batti:     :q! <INVIO>.
     Così esci dall'Editor SCARTANDO qualsiasi modifica fatta.

  3. Quando vedi il PROMPT della Shell, batti il comando con cui sei arrivato
     qui.  Sarebbe:	vimtutor <INVIO>

  4. Se hai memorizzato questi comandi e ti senti pronto, esegui i passi
     da 1 a 3 per uscire e rientrare nell'Editor.

NOTA:  :q! <INVIO> SCARTA qualsiasi modifica fatta.  In una delle prossime
       lezioni imparerai come salvare un file che hai modificato.

  5. Muovi in giù il cursore per passare alla lezione 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 1.3: MODIFICA DI TESTI - CANCELLAZIONE


	** Premere  x  per cancellare il carattere sotto al cursore **

  1. Muovi il cursore alla linea più sotto, indicata da --->.

  2. Per correggere errori, muovi il cursore fino a posizionarlo sopra il
     carattere da cancellare.

  3. Premi il tasto	x     per cancellare il carattere sbagliato.

  4. Ripeti i passi da 2 a 4 finché la frase è corretta.

---> La mmucca saltòò finnoo allaa lunnna.

  5. Ora che la linea è corretta, vai alla Lezione 1.4

NOTA: Mentre segui questa guida, non cercare di imparare a memoria,
      ma impara facendo pratica.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 1.4: MODIFICA DI TESTI - INSERIMENTO


                   ** Premere  i  per inserire testo. **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  2. Per rendere la prima linea uguale alla seconda, muovi il cursore sopra
     il primo carattere DOPO la posizione in cui il testo va inserito.

  3. Premi  i  e batti le aggiunte opportune.

  4. Quando un errore è corretto, premi <ESC> per tornare in Modalità Normale.
     Ripeti i passi da 2 a 4 fino a completare la correzione della frase.

---> C'era del tsto mncnt questa .
---> C'era del testo mancante da questa linea.

  5. Quando sei a tuo agio nell'inserimento di testo vai alla lezione 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 1.5: MODIFICA DI TESTI - AGGIUNTA


	   ** Premere  A  per aggiungere testo a fine linea. **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.
     Non importa dove è posizionato il cursore sulla linea stessa.

  2. Batti  A  e inserisci le necessarie aggiunte.

  3. Alla fine della aggiunta premi <ESC> per tornare in modalità Normale.

  4. Muovi il cursore alla seconda linea indicata ---> e ripeti
     i passi 2 e 3 per correggere questa frase.

---> C'è del testo che manca da qu
     C'è del testo che manca da questa linea.
---> C'è anche del testo che ma
     C'è anche del testo che manca qui.

  5. Quando sei a tuo agio nell'aggiunta di testo vai alla lezione 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lezione 1.6: MODIFICARE UN FILE


	      ** Usare  :wq  per salvare un file e uscire. **

  !! NOTA: Prima di eseguire quanto richiesto, leggi la Lezione per intero!!

  1. Esci da Vim come hai fatto nella lezione 1.2:  :q!

  2. Quando vedi il PROMPT della Shell, batti il comando:  vim tutor <INVIO>
     'vim' è il comando per richiamare Vim, 'tutor' è il nome del file che
     desideri modificare.  Usa un file che possa essere modificato.

  3. Inserisci e cancella testo come hai imparato nelle lezioni precedenti.

  4. Salva il file ed esci da Vim con:  :wq  <INVIO>

  5. Rientra in vimtutor e scendi al sommario che segue.

  6. Dopo aver letto i passi qui sopra ed averli compresi: eseguili.

  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 1 SOMMARIO


  1. Il cursore si muove usando i tasti con le frecce o i tasti hjkl.
	 h (sinistra)	j (giù)       k (su)	    l (destra)

  2. Per eseguire Vim dal PROMPT della Shell batti:  vim NOMEFILE <INVIO>

  3. Per uscire da Vim batti: <ESC> :q! <INVIO> per uscire senza salvare.
		oppure batti: <ESC> :wq <INVIO> per uscire salvando modifiche.

  4. Per cancellare il carattere sotto al cursore batti: x

  5. Per inserire testo subito prima del cursore batti:
	 i     batti testo inserito	<ESC>	inserisci prima del cursore
	 A     batti testo aggiunto	<ESC>	aggiungi a fine linea

NOTA: premendo <ESC> ritornerai in Modalità Normale o annullerai
      un comando errato che puoi aver inserito in parte.

Ora continua con la Lezione 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lezione 2.1: COMANDI DI CANCELLAZIONE


		** Batti  dw  per cancellare una parola. **

  1. Premi  <ESC>  per accertarti di essere in Modalità Normale.

  2. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  3. Muovi il cursore all'inizio di una parola che vuoi cancellare.

  4. Batti   dw   per cancellare la parola.

NOTA: La lettera  d  sarà visibile sull'ultima linea dello schermo mentre la
      batti. Vim attende che tu batta  w . Se vedi una lettera diversa
      da  d  hai battuto qualcosa di sbagliato; premi  <ESC>  e ricomincia.

---> Ci sono le alcune parole gioia che non c'entrano carta in questa frase.

  5. Ripeti i passi 3 e 4 finché la frase è corretta, poi vai alla Lezione 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 2.2: ALTRI COMANDI DI CANCELLAZIONE


	   ** Batti  d$	per cancellare fino a fine linea. **

  1. Premi  <ESC>  per accertarti di essere in Modalità Normale.

  2. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  3. Muovi il cursore alla fine della linea corretta (DOPO il primo . ).

  4. Batti    d$    per cancellare fino a fine linea.

---> Qualcuno ha battuto la fine di questa linea due volte. linea due volte.


  5. Vai alla Lezione 2.3 per capire il funzionamento di questo comando.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lezione 2.3: OPERATORI E MOVIMENTI


  Molti comandi di modifica testi consistono in un operatore e un movimento.
  Il formato del comando di cancellazione con l'operatore  d  è il seguente:

	 d	movimento

  Dove:
    d	      - è l'operatore di cancellazione
    movimento - indica dove l'operatore va applicato (lista qui sotto).

  Breve lista di movimenti:
    w - fino a inizio della parola seguente, ESCLUSO il suo primo carattere.
    e - alla fine della parola corrente, COMPRESO il suo ultimo carattere.
    $ - dal cursore fino a fine linea, COMPRESO l'ultimo carattere della linea.

  Quindi se batti  de  cancelli dal cursore fino a fine parola.

NOTA:  Se batti solo il movimento mentre sei in Modalità Normale, senza
       nessun operatore, il cursore si muoverà come specificato.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	 Lezione 2.4: USO DI UN CONTATORE PER UN MOVIMENTO


  ** Se batti un numero prima di un movimento, lo ripeti altrettante volte. **

  1. Muovi il cursore fino all'inizio della linea qui sotto, indicata da --->.

  2. Batti  2w  per spostare il cursore due parole più avanti.

  3. Batti  3e  per spostare il cursore alla fine della terza parola seguente.

  4. Batti  0  (zero) per posizionarti all'inizio della linea.

  5. Ripeti i passi 2 e 3 usando numeri differenti.

---> Questa è solo una linea con parole all'interno della quale puoi muoverti.

  6. Vai alla Lezione 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	Lezione 2.5: USO DI UN CONTATORE PER CANCELLARE DI PIU'


  ** Se batti un numero prima di un movimento, lo ripeti altrettante volte. **

  Nella combinazione dell'operatore cancella e di un movimento, descritto prima,
  inserite un contatore prima del movimento per cancellare di più:
	 d   numero   movimento

  1. Muovi il cursore alla prima parola MAIUSCOLA nella riga indicata da --->.

  2. Batti  d2w  per cancellare le due parole MAIUSCOLE

  3. Ripeti i passi 1 e 2 con un contatore diverso per cancellare le parole
     MAIUSCOLE consecutive con un solo comando

--->  questa ABC DE linea FGHI JK LMN OP di parole è Q RS TUV ora ripulita.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 2.6: LAVORARE SU LINEE INTERE

	    ** Batti  dd  per cancellare un'intera linea. **

  Per la frequenza con cui capita di cancellare linee intere, chi ha
  disegnato Vi ha deciso che sarebbe stato più semplice battere
  due d consecutive per cancellare una linea.

  1. Muovi il cursore alla linea 2) nella frase qui sotto.
  2. Batti  dd  per cancellare la linea.
  3. Ora spostati alla linea 4).
  4. Batti   2dd   per cancellare due linee.

--->  1)  Le rose sono rosse,
--->  2)  Il fango è divertente,
--->  3)  Le viole sono blu,
--->  4)  Io ho un'automobile,
--->  5)  Gli orologi segnano il tempo,
--->  6)  Lo zucchero è dolce,
--->  7)  E così sei anche tu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 2.7: IL COMANDO UNDO [ANNULLA]

    **  Premi  u  per annullare gli ultimi comandi eseguiti.  **
    ** Premi  U  per annullare le modifiche all'ultima linea. **

  1. Muovi il cursore fino alla linea qui sotto, indicata da --->.
     e posizionati sul primo errore.
  2. Batti  x  per cancellare il primo carattere sbagliato.
  3. Adesso batti  u  per annullare l'ultimo comando eseguito.
  4. Ora invece, correggi tutti gli errori sulla linea usando il comando  x .
  5. Adesso batti una U Maiuscola per riportare la linea al suo stato originale.
  6. Adesso batti  u  più volte per annullare la  U  e i comandi precedenti.
  7. Adesso batti più volte CTRL-r (tieni il tasto CTRL schiacciato
     mentre batti r) per rieseguire i comandi (annullare l'annullamento).

---> Correeggi gli errori ssu quuesta linea e riimpiazzali coon "undo".

  8. Questi comandi sono molto utili. Ora spostati al Sommario della Lezione 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 2 SOMMARIO


  1. Per cancellare dal cursore fino alla parola seguente batti:      dw
  2. Per cancellare dal cursore fino alla fine della linea batti:     d$
  3. Per cancellare un'intera linea batti:    dd
  4. Per eseguire più volte un movimento, mettici davanti un numero:  2w
  5. Il formato per un comando di modifica è:

       operatore   [numero]   movimento
     dove:
       operatore - indica il da farsi, ad es.  d  per [delete] cancellare
       [numero]  - contatore facoltativo di ripetizione del movimento
       movimento - spostamento nel testo su cui operare, ad es.
       		   w [word] parola, $ (fino a fine linea), etc.

  6. Per andare a inizio linea usate uno zero:	0
  7. Per annullare i comandi precedenti, batti:	 	    u (u minuscola)
     Per annullare tutte le modifiche a una linea batti:    U (U maiuscola)
     Per annullare l'annullamento ["redo"]  	  batti:    CTRL-r


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 3.1: IL COMANDO PUT [METTI, PONI]


   ** Batti  p  per porre [put] testo (cancellato prima) dopo il cursore. **

  1. Muovi il cursore alla prima linea indicata con ---> qui in basso.

  2. Batti  dd  per cancellare la linea e depositarla in un registro di Vim.

  3. Muovi il cursore fino alla linea c) SOPRA quella dove andrebbe messa
     la linea appena cancellata.

  4. Batti  p  per mettere la linea sotto il cursore.

  5. Ripeti i passi da 2 a 4 per mettere tutte le linee nel giusto ordine.

---> d)  Puoi impararla tu?
---> b)  Le viole sono blu,
---> c)  La saggezza si impara,
---> a)  Le rose sono rosse,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 3.2: IL COMANDO REPLACE [RIMPIAZZARE]


  ** Batti  rx  per rimpiazzare il carattere sotto al cursore con x . **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  2. Muovi il cursore fino a posizionarlo sopra il primo errore.

  3. Batti   r	e poi il carattere che dovrebbe stare qui.

  4. Ripeti i passi 2 e 3 finché la prima linea è uguale alla seconda.

--->  Ammattendo quetta lince, qualcuno ho predato alcuni tosti sballiati!
--->  Immettendo questa linea, qualcuno ha premuto alcuni tasti sbagliati!

  5. Ora passa alla Lezione 3.2.

NOTA: Ricordati che dovresti imparare con la pratica, non solo leggendo.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Lezione 3.3: L'OPERATORE CHANGE [CAMBIA]


     ** Per cambiare fino alla fine di una parola, batti  ce . **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  2. Posiziona il cursore alla  u  in lubw.

  3. Batti  ce  e la parola corretta (in questo caso, batti  inea    ).

  4. Premi <ESC> e vai sul prossimo carattere da modificare.

  5. Ripeti i passi 3 e 4 finché la prima frase è uguale alla seconda.

---> Questa lubw ha alcune pptfd da asdert usgfk l'operatore CHANGE.
---> Questa linea ha alcune parole da cambiare usando l'operatore CHANGE.

Nota che  ce  cancella la parola, e ti mette anche in Modalità Inserimento
    [Insert Mode]


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lezione 3.4: ALTRI CAMBIAMENTI USANDO c

** L'operatore c [CHANGE] agisce sugli stessi movimenti di  d  [DELETE] **

  1. L'operatore CHANGE si comporta come DELETE.  Il formato è:

       c   [numero]   movimento

  2. I movimenti sono gli stessi,
     ad es. w (word, parola), $ (fine linea), etc.

  3. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  4. Posiziona il cursore al primo errore.

  5. Batti  c$  e inserisci resto della linea utilizzando come modello la
     linea seguente, e quando hai finito premi <ESC>

---> La fine di questa linea deve essere aiutata a divenire come la seguente.
---> La fine di questa linea deve essere corretta usando il comando  c$  .

NOTA:  Puoi usare il tasto Backspace se devi correggere errori di battitura.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 3 SOMMARIO


  1. Per reinserire del testo appena cancellato, batti   p   .  Questo
     inserisce [pone] il testo cancellato DOPO il cursore (se era stata tolta
     una linea intera, questa verrà messa nella linea SOTTO il cursore).

  2. Per rimpiazzare il carattere sotto il cursore, batti   r   e poi il
     carattere che vuoi sostituire.

  3. L'operatore change ti permette di cambiare dal cursore fino a dove
     arriva il movimento.  Ad es. Batti  ce  per cambiare dal cursore
     fino alla fine della parola,  c$  per cambiare fino a fine linea.

  4. Il formato di  change  è:

       c   [numero]   movimento

Ora vai alla prossima Lezione.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lezione 4.1: POSIZIONAMENTO E SITUAZIONE FILE

  ** Batti CTRL-G per vedere a che punto sei nel file e la situazione **
  **     del file.  Batti G  per raggiungere una linea nel file.      **

  NOTA: Leggi l'intera Lezione prima di eseguire un qualsiasi passo!!

  1. Tieni premuto il tasto CTRL e batti  g  .  Ossia batti CTRL-G.
     Un messaggio apparirà in fondo alla pagina con il NOME FILE e la
     posizione nel file.  Ricordati il numero della linea per il Passo 3.

NOTA: La posizione del cursore si vede nell'angolo in basso a destra dello
      schermo, se è impostata l'opzione 'ruler' (righello, vedi :help ruler).

  2. Premi  G  [G Maiuscolo] per posizionarti in fondo al file.
     Batti gg  per posizionarti in cima al file.

  3. Batti il numero della linea in cui ti trovavi e poi  G  .  Questo ti
     riporterà fino alla linea in cui ti trovavi quando avevi battuto CTRL-g.

  4. Se ti senti sicuro nel farlo, esegui i passi da 1 a 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 4.2: IL COMANDO SEARCH [RICERCA]

     ** Batti  /  seguito da una frase per ricercare quella frase. **

  1. in Modalità Normale batti il carattere  /  . Nota che la "/" e il cursore
     sono visibili in fondo dello schermo come quando si usa il comando  : .

  2. Adesso batti 'errroore' <INVIO>. Questa è la parola che vuoi ricercare.

  3. Per ricercare ancora la stessa frase, batti soltanto       n  .
     Per ricercare la stessa frase in direzione opposta, batti  N  .

  4. Per ricercare una frase nella direzione opposta, usa  ?  al posto di  /  .

  5. Per tornare dove eri prima nel file premi  CTRL-O  (tieni il tasto CTRL
     schiacciato mentre premi la lettera o).  Ripeti  CTRL-O  per andare ancora
     indietro. Puoi usare  CTRL-I  per tornare in avanti.

---> "errroore" non è il modo giusto di digitare errore; errroore è un errore.
NOTA: Quando la ricerca arriva a fine file, ricomincia dall'inizio del file,
      a meno che l'opzione 'wrapscan' sia stata disattivata.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 4.3: RICERCA DI PARENTESI CORRISPONDENTI


	 ** Batti  %  per trovare una  ),], o }  corrispondente. **

  1. Posiziona il cursore su una (, [, o { nella linea sotto, indicata da --->.

  2. Adesso batti il carattere   %  .

  3. Il cursore si sposterà sulla parentesi corrispondente.

  4. Batti  %  per muovere il cursore all'altra parentesi corrispondente.

---> Questa ( è una linea di test con (, [ ] e { } al suo interno. ))


NOTA: Questo è molto utile nel "debug" di un programma con parentesi errate!





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	    Lezione 4.4: L'OPERATORE SOSTITUZIONE (SUBSTITUTE)

  ** Batti  :s/vecchio/nuovo/g  per sostituire 'nuovo' a 'vecchio'. **

  1. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  2. Batti  :s/lla/la <INVIO> .  Nota che questo comando cambia solo
     LA PRIMA occorrenza di "lla" sulla linea.

  3. Adesso batti  :s/lla/la/g . Aggiungendo la flag  g  si chiede di
     sostituire "globalmente" sulla linea, ossia tutte le occorrenze
     di "lla" sulla linea.

---> lla stagione migliore per lla fioritura è lla primavera.

  4. Per cambiare ogni ricorrenza di una stringa di caratteri tra due linee,
     batti :#,#s/vecchio/nuovo/g  dove #,# sono i numeri che delimitano
                                  il gruppo di linee in cui si vuole sostituire.
     Batti :%s/vecchio/nuovo/g    per cambiare ogni occorrenza nell'intero file.
     Batti :%s/vecchio/nuovo/gc   per trovare ogni occorrenza nell'intero file
                                  ricevendo per ognuna una richiesta se
				  effettuare o meno la sostituzione.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 4 SOMMARIO


1. CTRL-G  visualizza a che punto sei nel file e la situazione del file.
          G  [G Maiuscolo] ti porta all'ultima linea del file.
   numero G  ti porta alla linea con quel numero.
         gg  ti porta alla prima linea del file.

2. Battendo  /  seguito da una frase ricerca IN AVANTI quella frase.
   Battendo  ?  seguito da una frase ricerca ALL'INDIETRO quella frase.
   DOPO una ricerca batti    n   per trovare la prossima occorrenza nella
   stessa direzione, oppure  N   per cercare in direzione opposta.
   CTRL-O ti porta alla posizione precedente, CTRL-I a quella più nuova.

3. Battendo  %  mentre il cursore si trova su  (,),[,],{, oppure }
   ti posizioni sulla corrispondente parentesi.

4. Per sostituire "nuovo" al primo "vecchio" in 1 linea batti :s/vecchio/nuovo
   Per sostituire "nuovo" ad ogni  "vecchio" in 1 linea batti :s/vecchio/nuovo/g
   Per sostituire frasi tra 2 numeri di linea [#]  batti   :#,#s/vecchio/nuovo/g
   Per sostituire tutte le occorrenze nel file batti	     :%s/vecchio/nuovo/g
   Per chiedere conferma ogni volta aggiungi 'c'	    :%s/vecchio/nuovo/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 5.1: COME ESEGUIRE UN COMANDO ESTERNO


  ** Batti  :!  seguito da un comando esterno per eseguire quel comando. **

  1. Batti il comando   :   per posizionare il cursore in fondo allo schermo.
     Ciò ti permette di immettere un comando dalla linea comandi.

  2. Adesso batti il carattere  !  (punto esclamativo).  Ciò ti permette di
     eseguire qualsiasi comando esterno si possa eseguire nella "shell".

  3. Ad esempio batti   ls   dopo il ! e poi premi <INVIO>.  Questo
     visualizza una lista della tua directory, proprio come se fossi in una
     "shell". Usa   :!dir  se  ls  non funziona.   [Unix: ls  MS-DOS: dir]

NOTA:  E' possibile in questo modo eseguire un comando a piacere, specificando
       anche dei parametri per i comandi stessi.

NOTA:  Tutti i comandi  :  devono essere terminati premendo <INVIO>
       Da qui in avanti non lo ripeteremo ogni volta.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 5.2: ANCORA SULLA SCRITTURA DEI FILE


   ** Per salvare le modifiche apportate a un testo batti :w NOMEFILE. **

  1. Batti  :!dir  or  :!ls  per procurarti una lista della tua directory.
     Già sai che devi premere <INVIO> dopo aver scritto il comando.

  2. Scegli un NOMEFILE che ancora non esista, ad es. TEST   .

  3. Adesso batti:	 :w TEST   (dove TEST è il NOMEFILE che hai scelto).

  4. Questo salva l'intero file ("tutor.it")  con il nome di TEST.
     Per verifica batti ancora  :!dir  o  :!ls  per listare la tua directory.

NOTA: Se esci da Vim e riesegui Vim battendo  vim TEST , il file aperto
      sarà una copia esatta di "tutor.it" al momento del salvataggio.

  5. Ora cancella il file battendo (MS-DOS):   :!del TEST
				 o (Unix):     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 5.3: SELEZIONARE IL TESTO DA SCRIVERE

   ** Per salvare una porzione di file, batti  v movimento :w NOMEFILE **

  1. Muovi il cursore su questa linea.

  2. Premi  v  e muovi il cursore fino alla linea numerata 5., qui sotto.
     Nota che il testo viene evidenziato.

  3. Batti il carattere  :  .  In fondo allo schermo apparirà :'<,'>  .

  4. Batti  w TEST  , dove TEST è il nome di un file non ancora esistente.
     Verifica che si veda  :'<,'>w TEST   prima di dare <INVIO>.

  5. Vim scriverà nel file TEST le linee che hai selezionato.  Usa  :!dir
     o  :!ls  per controllare che esiste.  Non cancellarlo ora!  Ti servirà
     nella prossima lezione.

NOTA:  Battere  v  inizia una selezione visuale.  Puoi muovere il cursore
       come vuoi, e rendere la selezione più piccola o più grande.  Poi
       puoi usare un operatore per agire sul testo selezionato.
       Ad es.,  d  cancella il testo.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lezione 5.4: INSERIRE E RIUNIRE FILE


   ** Per inserire il contenuto di un file, batti  :r NOMEFILE  **

  1. Posiziona il cursore appena sopra questa riga.

NOTA: Dopo aver eseguito il Passo 2 vedrai il testo della Lezione 5.3.
      Quindi spostati IN GIU' per tornare ancora a questa Lezione.

  2. Ora inserisci il tuo file TEST con il comando   :r TEST   dove TEST è
     il nome che hai usato per creare il file.
     Il file richiesto è inserito sotto la linea in cui si trova il cursore.

  3. Per verificare che un file è stato inserito, torna indietro col cursore
     e nota che ci sono ora 2 copie della Lezione 5.3, quella originale e
     quella che viene dal file.

NOTA:  Puoi anche leggere l'output prodotto da un comando esterno. Ad es.
       :r !ls  legge l'output del comando  ls e lo inserisce sotto la linea
       in cui si trova il cursore.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 5 SOMMARIO


  1.  :!comando  esegue un comando esterno.

      Alcuni esempi utili sono [in MSDOS]:
	  :!dir		     -	visualizza lista directory
	  :!del NOMEFILE     -	cancella file NOMEFILE.

  2.  :w NOMEFILE  scrive su disco il file che stai editando con nome NOMEFILE.

  3.  v movimento :w NOMEFILE  salva le linee selezionate in maniera
      visuale nel file NOMEFILE.

  4.  :r NOMEFILE  legge il file NOMEFILE da disco e lo inserisce nel file
      che stai modificando, dopo la linea in cui è posizionato il cursore.

  5.  :r !dir  legge l'output del comando  dir  e lo inserisce dopo la
      linea in cui è posizionato il cursore.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 6.1: IL COMANDO OPEN [APRIRE]


        ** Batti   o   per aprire una linea sotto il cursore **
        **         e passare in Modalità Inserimento.        **

  1. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  2. Batti la lettera minuscola  o  per aprire una linea sotto il cursore e
     passare in Modalità Inserimento.

  3. Poi inserisci del testo e premi <ESC> per uscire dalla
     Modalità Inserimento.

---> Dopo battuto  o  il cursore è sulla linea aperta (in Modalità Inserimento).

  4. Per aprire una linea SOPRA il cursore, batti una   O  maiuscola, invece
     che una   o   minuscola. Prova sulla linea qui sotto.
---> Apri una linea SOPRA questa battendo  O  mentre il cursore è su questa linea.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 6.2: IL COMANDO APPEND [AGGIUNGERE]

	     ** Batti   a   per inserire testo DOPO il cursore. **

  1. Muovi il cursore all'inizio della linea qui sotto, indicata da --->.

  2. Batti  e  finché il cursore arriva alla fine di  li .

  3. Batti una  a  (minuscola) per aggiungere testo DOPO il cursore.

  4. Completa la parola come mostrato nella linea successiva.  Premi <ESC>
     per uscire dalla Modalità Inserimento.

  5. Usa  e  per passare alla successiva parola incompleta e ripeti i passi
     3 e 4.

---> Questa li ti permetterà di esercit ad aggiungere testo a una linea.
---> Questa linea ti permetterà di esercitarti ad aggiungere testo a una linea.

NOTA: a, i ed A entrano sempre in Modalità Inserimento, la sola differenza
      è dove verranno inseriti i caratteri.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lezione 6.3: UN ALTRO MODO DI RIMPIAZZARE [REPLACE]


     ** Batti una  R  maiuscola per rimpiazzare più di un carattere. **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.  Muovi il
     cursore all'inizio del primo  xxx .

  2. Ora batti  R  e batti il numero che vedi nella linea seguente, in modo
     che rimpiazzi l'  xxx .

  3. Premi <ESC> per uscire dalla Modalità Replace.  Nota che il resto della
     linea resta invariato.

  4. Ripeti i passi in modo da rimpiazzare l'altro xxx .

---> Aggiungendo 123 a xxx si ottiene xxx.
---> Aggiungendo 123 a 456 si ottiene 579.

NOTA:  La Modalità Replace è come la Modalità Inserimento, ma ogni carattere
       che viene battuto ricopre un carattere esistente.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 6.4: COPIA E INCOLLA DEL TESTO


     ** usa l'operatore  y  per copiare del testo e  p  per incollarlo **

  1. Vai alla linea indicata da ---> qui sotto, e metti il cursore dopo "a)".
  
  2. Entra in Modalità Visuale con  v  e metti il cursore davanti a "primo".
  
  3. Batti  y  per copiare [yank] il testo evidenziato.

  4. Muovi il cursore alla fine della linea successiva:  j$

  5. Batti  p  per incollare [paste] il testo.  Poi batti:  a secondo <ESC> .

  6. Usa la Modalità Visuale per selezionare " elemento.", copialo con  y ,
     Vai alla fine della linea successiva con  j$  e incolla il testo con  p .

--->  a) questo è il primo elemento.
      b)

NOTA: Puoi usare  y  come operatore;  yw  copia una parola [word].
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lezione 6.5: SET [IMPOSTA] UN'OPZIONE

       ** Imposta un'opzione per ignorare maiuscole/minuscole **
       **             durante la ricerca/sostituzione         **

 1. Ricerca 'nota' battendo:   /nota <ENTER>
    Ripeti la ricerca più volte usando il tasto   n

 2. Imposta l'opzione 'ic' (Ignore Case, [Ignora maiuscolo/minuscolo])
    battendo:  :set ic

 3. Ora ricerca ancora 'nota' premendo il tasto    n
    Troverai adesso anche  Nota  e  NOTA .

 4. Imposta le opzioni 'hlsearch' e 'incsearch'    :set hls is

 5. Ora batti ancora il comando di ricerca, e guarda cosa succede:    /nota
 
 6. Per disabilitare il riconoscimento di maiuscole/minuscole batti:  :set noic
NOTA: Per non evidenziare le occorrenze trovate batti:   :nohlsearch
NOTA: Per ignorare maiuscole/minuscole solo per una ricerca, usa \c
      nel comando di ricerca:    /nota\c <INVIO>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lezione 6 SOMMARIO

  1. Batti  o  per aggiungere una linea SOTTO il cursore ed entrare in
               Modalità Inserimento.
     Batti  O  per aggiungere una linea SOPRA il cursore.

  2. Batti  a  per inserire testo DOPO il cursore.
     Batti  A  per inserire testo alla fine della linea.

  3. Il comando   e  sposta il cursore alla fine di una parola.

  4. L'operatore  y  copia del testo,  p  incolla del testo.

  5. Batti  R  per entrare in Modalità Replace, e ne esci premendo <ESC>.

  6. Batti ":set xxx" per impostare l'opzione "xxx". Alcun opzioni sono:
      'ic' 'ignorecase'	ignorare maiuscole/minuscole nella ricerca
      'is' 'incsearch'	mostra occorrenze parziali durante una ricerca
      'hls' 'hlsearch'	evidenzia tutte le occorrenze di una ricerca
     Puoi usare sia il nome completo di un'opzione che quello abbreviato.

  7. Usa il prefisso "no" per annullare una opzione:   :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lezione 7.1: OTTENERE AIUTO

		 ** Usa il sistema di aiuto on-line **

  Vim ha un esauriente sistema di aiuto on-line.  Per cominciare, prova una di
  queste alternative:
	- premi il tasto <AIUTO> (se ce n'è uno)
	- premi il tasto <F1>    (se ce n'è uno)
	- batti   :help  <INVIO>  OPPURE   :h <INVIO>

  Leggi il testo nella finestra di aiuto per vedere come funziona l'aiuto.
  Batti  CTRL-W CTRL-W	per passare da una finestra all'altra.
  Batti  :q <INVIO>   per chiudere la finestra di aiuto.

  Puoi trovare aiuto su quasi tutto, dando un argomento al comando ":help"
  Prova questi (non dimenticare di premere <INVIO>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 7.2: PREPARARE UNO SCRIPT INIZIALE

		        ** Attiva le opzioni Vim **

  Vim ha molte più opzioni di Vi, ma molte di esse sono predefinite inattive.
  Per cominciare a usare più opzioni, devi creare un file "vimrc".

  1. Comincia a editare il file "vimrc".  Questo dipende dal tuo sistema:
	:e ~/.vimrc		per Unix
	:e $VIM/_vimrc		per MS-Windows

  2. Ora leggi i contenuti del file "vimrc" distribuito come esempio:

	:r $VIMRUNTIME/vimrc_example.vim

  3. Scrivi il file con:
	:w

  La prossima volta che apri Vim, sarà abilitata la colorazione sintattica.
  Puoi aggiungere a questo file "vimrc" tutte le tue impostazioni preferite.
  Per maggiori informazioni batti:  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lezione 7.3: COMPLETAMENTO


	      ** Completamento linea comandi con CTRL-D e <TAB> **

  1. Imposta Vim in modalità compatibile:  :set nocp

  2. Guarda i file esistenti nella directory:  :!ls   o  :!dir

  3. Batti l'inizio di un comando:  :e

  4. Premi  CTRL-D  e Vim ti mostra una lista di comandi che iniziano per "e".

  5. Premi  <TAB>  e Vim completa per te il nome comando come ":edit".

  6. Ora batti uno spazio e l'inizio del nome di un file esistente:  :edit FIL

  7. Premi <TAB>.  Vim completerà il nome del file (se è il solo possibile).

NOTA:  Il completamento è disponibile per molti comandi.  Prova a battere
       CTRL-D e <TAB>.  Particolarmente utile per  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lezione 7 Sommario


  1. Batti  :help  o premi <F1> o <Help>  per aprire una finestra di aiuto.

  2. Batti  :help comando  per avere aiuto su  comando .

  3. Batti  CTRL-W CTRL-W  per saltare alla prossima finestra.

  4. Batti  :q  per chiudere la finestra di aiuto.

  5. Crea uno script iniziale vimrc contenente le tue impostazioni preferite.

  6. Mentre batti un comando  : , premi CTRL-D per vedere i possibili
     completamenti.  Premi <TAB> per usare il completamento desiderato.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Qui finisce la Guida a Vim.  Il suo intento è di fornire una breve panoramica
  dell'Editor Vim, che ti consenta di usare l'Editor abbastanza facilmente.
  Questa guida è largamente incompleta poiché Vim ha moltissimi altri comandi.
  Puoi anche leggere il manuale utente (anche in italiano): ":help user-manual".

  Per ulteriore lettura e studio, raccomandiamo:
	Vim - Vi Improved - di Steve Oualline     Editore: New Riders
  Il primo libro completamente dedicato a Vim. Utile specie per principianti.
  Contiene molti esempi e figure.
  Vedi http://iccf-holland.org/click5.html

  Quest'altro libro è più su Vi che su Vim, ma è pure consigliato:
	Learning the Vi Editor - di Linda Lamb e Arnold Robbins
	Editore: O'Reilly & Associates Inc.
  E' un buon libro per imparare quasi tutto ciò che puoi voler fare con Vi.
  Ne esiste una traduzione italiana, basata su una vecchia edizione.

  Questa guida è stata scritta da Michael C. Pierce e Robert K. Ware,
  Colorado School of Mines, usando idee fornite da Charles Smith,
  Colorado State University - E-mail: bware@mines.colorado.edu
  Modificato per Vim da Bram Moolenaar.
  Segnalare refusi ad Antonio Colombo - E-mail: azc100@gmail.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�ZKH��$�$�vim80/tutor/tutor.sr.cp1250nu�[���===============================================================================
=    D o b r o d o � l i   u   VIM   p r i r u � n i k  -    Verzija 1.7      =
===============================================================================

     Vim je mo�an editor sa mnogo komandi, suvi�e da bismo ih ovde sve
     opisali.  Priru�nik je zami�ljen da opi�e dovoljno komandi da biste
     mogli lagodno da koristite Vim kao editor op�te namene.

     Pribli�no vreme potrebno za uspe�an zavr�etak priru�nika je izme�u
     25 i 30 minuta, u zavisnosti od vremena potro�enog na ve�bu.

     UPOZORENJE:
     Komande u lekcijama �e menjati tekst.  Iskopirajte ovaj fajl i
     ve�bajte na kopiji (ako ste pokrenuli "vimtutor" ovo je ve� kopija).

     Va�no je upamtiti da je ovaj priru�nik zami�ljen za aktivnu ve�bu.
     To zna�i da morate upotrebljavati komande o kojima �itate da biste
     ih nau�ili.  Ako samo �itate tekst, zaboravi�ete komande!

     Ako je Caps Lock uklju�en ISKLJU�ITE ga.  Pritisnite taster  j  dovoljno
     puta da lekcija 1.1 cela stane na ekran.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 1.1:  POMERANJE KURSORA


 ** Za pomeranje kursora, pritiskajte tastere h,j,k,l kako je prikazano **
	     ^
	     k		    Savet: h je s leve strane i pomera kursor u levo.
       < h	 l >		   l je s desne strane i pomera kursor u desno.
	     j                     j izgleda kao strelica nani�e.
	     v
  1. Pomerajte kursor po ekranu dok se ne naviknete na komande.

  2. Pritisnite taster (j) dok ne po�ne da se ponavlja.
     Sada znate kako da do�ete do naredne lekcije.

  3. Koriste�i taster j pre�ite na lekciju 1.2.

NAPOMENA:  Ako niste sigurni �ta ste zapravo pritisnuli, pritisnite <ESC>
           za prelazak u Normal mod i poku�ajte ponovo.

NAPOMENA:  Strelice tako�e pomeraju kursor, ali kori��enje tastera hjkl je
           znatno br�e, kad se jednom naviknete na njih.  Zaista!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekcija 1.2: IZLAZAK IZ VIM-a


  !! UPOZORENJE: Pre izvo�enja bilo kog koraka, pro�itajte celu lekciju!!

  1. Pritisnite <ESC> (editor je sada u Normal modu).

  2. Otkucajte:	:q! <ENTER>.
     Ovime se izlazi iz editora, sa GUBITKOM svih izmena.

  3. Kada se pojavi komandni prompt, unesite komandu koja je pokrenula
     ovaj priru�nik:		vimtutor <ENTER>

  4. Ako ste upamtili ove korake, izvr�ite ih redom od 1 do 3 da biste
     iza�li iz editora i ponovo ga pokrenuli.

NAPOMENA:  :q! <ENTER>  poni�tava sve izmene koje ste napravili.
           U narednim lekcijama nau�i�ete kako da sa�uvate izmene.

  5. Pomerite kursor na lekciju 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.3: IZMENA TEKSTA - BRISANJE


	      ** Pritisnite  x  za brisanje znaka pod kursorom. **

  1. Pomerite kursor na red ozna�en sa --->.

  2. Da biste ispravili gre�ke, pomerajte kursor dok se
     ne na�e na slovu koje treba izbrisati.

  3. Pritisnite taster  x  da izbri�ete ne�eljeno slovo.

  4. Ponavljajte korake od 2 do 4 dok ne ispravite sve gre�ke.

---> RRRibaa riibi grizzze rrreepp.

  5. Kad ispravite red, pre�ite na lekciju 1.4.

NAPOMENA:  Dok koristite priru�nik, nemojte u�iti komande napamet,
           ve� ve�bajte njihovu primenu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcija 1.4: IZMENA TEKSTA - UBACIVANJE


	  ** Pritisnite  i  za ubacivanje teksta ispred kursora. **

  1. Pomerite kursor na prvi slede�i red ozna�en sa --->.

  2. Da biste tekst prvog reda izjedna�ili s tekstom drugog, namestite
     kursor na prvi znak POSLE kog �ete ubaciti potreban tekst.

  3. Pritisnite  i  pa unesite potrebne dopune.

  4. Po ispravci svake gre�ke pritisnite <ESC> da se vratite u Normal mod.
     Ponovite korake od 2 do 4 da biste ispravili celu re�enicu.

---> Do teka neoje v red.
---> Deo teksta nedostaje iz ovog reda.

  5. Pre�ite na slede�u lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.5: IZMENA TEKSTA - DODAVANJE


	           ** Pritisnite  A  za dodavanje teksta. **

  1. Pomerite kursor na prvi slede�i red ozna�en sa --->.
     Nije va�no gde se nalazi kursor u tom redu.

  2. Pritisnite  A  i unesite dodatni tekst.

  3. Po�to ste dodali tekst, pritisnite <ESC> za povratak u
     Normal mod.

  4. Pomerite kursor na drugi red ozna�en sa ---> i ponavljajte
     korake 2 i 3 dok ne ispravite tekst.

---> Deo teksta nedostaje u
     Deo teksta nedostaje u ovom redu.
---> Deo teksta nedostaje
     Deo teksta nedostaje i ovde.

  5. Pre�ite na lekciju 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 1.6: IZMENA FAJLA


     ** Upotrebite  :wq  za snimanje teksta i izlazak iz editora. **

  !! UPOZORENJE: Pre izvo�enja bilo kog koraka, pro�itajte celu lekciju!!

  1. Iza�ite iz editora kao u lekciji 1.2:  :q!

  2. Na komandnom promptu unesite slede�u komandu:  vim tutor <ENTER>
     'vim' je komanda za pokretanja Vim editora, 'tutor' je ime fajla koji
     �elite da menjate.  Koristite fajl koji imate pravo da menjate.

  3. Ubacujte i bri�ite tekst kao u prethodnim lekcijama.

  4. Snimite izmenjeni tekst i iza�ite iz Vim-a:  :wq <ENTER>

  5. Ponovo pokrenite vimtutor i pro�itajte rezime koji sledi.

  6. Po�to pro�itate korake iznad i u potpunosti ih razumete:
     izvr�ite ih.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 1 


  1. Kursor se pomera strelicama ili pomo�u tastera hjkl .
	h (levo)	j (dole)	k (gore)	l (desno)

  2. Za pokretanje Vim-a iz shell-a:  vim IME_FAJLA <ENTER>

  3. Izlaz:	<ESC>	:q! <ENTER> 	sve promene su izgubljene.
       ILI:	<ESC>	:wq <ENTER> 	promene su sa�uvane.

  4. Brisanje znaka na kome se nalazi kursor:  x

  5. Ubacivanja ili dodavanje teksta:
	 i   unesite tekst <ESC>	unos ispred kursora
	 A   unesite tekst <ESC>	dodavanje na kraju reda

NAPOMENA:  Pritiskom na <ESC> prebacujete Vim u Normal mod i
           prekidate ne�eljenu ili delimi�no izvr�enu komandu.

Nastavite sa lekcijom 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 2.1: NAREDBE BRISANJA


		 ** Otkucajte  dw  za brisanje re�i. **

  1. Pritisnite  <ESC>  da biste bili sigurni da ste u Normal modu.

  2. Pomerite kursor na red ozna�en sa --->.

  3. Pomerite kursor na po�etak re�i koju treba izbrisati.

  4. Otkucajte  dw  da biste uklonili re�.

NAPOMENA:  Slovo  d  �e se pojaviti na dnu ekrana kad ga otkucate.  Vim �eka
	   da otkucate  w .  Ako je prikazano neko drugo slovo, pogre�ili ste u
	   kucanju; pritisnite <ESC> i poku�ajte ponovo.  (Ako se ne pojavi
	   ni�ta, mo�da je isklju�ena opcija 'showcmd': vidi lekciju 6.5.)

---> Neke re�i sme�no ne pripadaju na papir ovoj re�enici.

  5. Ponavljajte korake 3 i 4 dok ne ispravite re�enicu, pa
     pre�ite na lekciju 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.2: JO� BRISANJA


       ** Otkucajte  d$  za brisanje znakova do kraja reda. **

  1. Pritisnite  <ESC>  da biste bili sigurni da ste u Normal modu.

  2. Pomerite kursor na red ozna�en sa  --->.

  3. Pomerite kursor do kraja ispravnog dela re�enice
     (POSLE prve . ).

  4. Otkucajte  d$  za brisanje ostatka reda.

---> Neko je uneo kraj ovog reda dvaput. kraj ovog reda dvaput.

  5. Pre�ite na lekciju 2.3 za podrobnije obja�njenje.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 2.3: O OPERATORIMA I POKRETIMA


  Mnoge komande za izmenu teksta sastoje se od operatora i pokreta.
  Oblik komande brisanja sa  d  operatorom je slede�i:

  	d   pokret

  Pri �emu je:
    d      - operator brisanja.
    pokret - ono na �emu �e se operacija izvr�avati (opisano u nastavku).

  Kratak spisak pokreta:
    w - sve do po�etka slede�e re�i, NE UKLJU�UJU�I prvo slovo.
    e - sve do kraja teku�e re�i, UKLJU�UJU�I poslednje slovo.
    $ - sve do kraje reda, UKLJU�UJU�I poslednje slovo.

  Kucanjem  de  brisa�e se tekst od kursora do kraja re�i.

NAPOMENA:  Pritiskom samo na taster pokreta dok ste u Normal modu, bez
           operatora, kursor se pomera kao �to je opisano.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 2.4: KORI��ENJE BROJANJA ZA POKRETE


  ** Uno�enjem nekog broja pre pokreta, pokret se izvr�ava taj broj puta. **

  1. Pomerite kursor na red ozna�en sa --->.

  2. Otkucajte  2w  da pomerite kursor dve re�i napred.

  3. Otkucajte  3e  da pomerite kursor na kraj tre�e re�i napred.

  4. Otkucajte  0  (nulu) da pomerite kursor na po�etak reda.

  5. Ponovite korake 2 i 3 s nekim drugim brojevima.

---> Re�enica sa re�ima po kojoj mo�ete pomerati kursor.

  6. Pre�ite na lekciju 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Lekcija 2.5: KORI��ENJE BROJANJA ZA VE�E BRISANJE


  ** Uno�enje nekog broja s operatorom ponavlja operator taj broj puta. **

  U kombinaciji operatora brisanja s pokretima spomenutim iznad
  mo�ete uneti broj pre pokreta da biste izbrisali vi�e znakova:

	 d   broj   pokret

  1. Pomerite kursor na prvo slovo u re�i s VELIKIM SLOVIMA u redu
     ozna�enom sa --->.

  2. Otkucajte  d2w  da izbri�ete dve re�i sa VELIKIM SLOVIMA

  3. Ponovite korake 1 i 2 sa razli�itim brojevima da izbri�ete
     uzastopne re�i sa VELIKIM SLOVIMA kori��enjem samo jedne komande.

---> ovaj ABC�� D�E red FGHI JK LMN OP s re�ima je RS� TUVZ� ispravljen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 2.6: OPERACIJE NAD REDOVIMA


	       ** Otkucajte  dd  za brisanje celog reda. **

  Zbog u�estalosti brisanja celih redova, autori Vi-ja odlu�ili su da
  je lak�e brisati redove ako se otkuca  d  dvaput.

  1. Pomerite kursor na drugi red u donjoj strofi.
  2. Otkucajte  dd  da ga izbri�ete.
  3. Pomerite kursor na �etvrti red.
  4. Otkucajte   2dd   da biste izbrisali dva reda.

--->  1)  Sedlo mi je od marame,
--->  2)  blato na sve strane,
--->  3)  uzda od kanapa,
--->  4)  auto mi je ovde,
--->  5)  satovi pokazuju vreme,
--->  6)  a bi� mi je od o�ina
--->  7)  prebijena �tapa.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.7: PONI�TAVANJE PROMENA


  ** Pritisnite  u  za poni�tavanje poslednje komande,  U  za ceo red. **

  1. Pomerite kursor na red ozna�en sa ---> i postavite ga na mesto
     prve gre�ke.
  2. Otkucajte  x  da izbri�ete prvi ne�eljeni znak.
  3. Otkucajte  u  da poni�tite poslednju izvr�enu komandu.
  4. Sad ispravite sve gre�ke u redu koriste�i komandu  x  .
  5. Otkucajte veliko  U  da biste vratili sadr�aj reda u prvobitno
     stanje.
  6. Onda otkucajte  u  nekoliko puta da biste poni�tili  U
     i prethodne komande.
  7. Sad otkucajte CTRL-R (dr�e�i  CTRL  dok pritiskate R)
     nekoliko puta da biste vratili izmene (poni�tili poni�tavanja).

---> Iiisspravite gre�ke uu ovvom redu ii pooni�titeee ih.

  8. Ovo su veoma korisne komande.  Pre�ite na rezime lekcije 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 2


  1. Brisanje od kursora do slede�e re�i:	dw
  2. Brisanje od kursora do kraja reda:		d$
  3. Brisanje celog reda:			dd

  4. Za ponavljanje pokreta prethodno unesite broj:  2w
  5. Oblik komande za izmenu:
               operator   [broj]   pokret
     gde je:
       operator - �ta uraditi, recimo  d  za brisanje
       [broj]   - neobavezan broj ponavljanja pokreta
       pokret   - kretanje po tekstu na kome se radi,
                  kao �to je: w (re�), $ (kraj reda), itd.

  6. Pomeranje kursora na po�etak reda:  0

  7. Za poni�tavanje prethodnih izmena, pritisnite:	u  (malo u)
     Za poni�tavanje svih promena u redu, pritisnite:	U  (veliko U)
     Za vra�anja promena, otkucajte:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.1: KOMANDA POSTAVLJANJA


  ** Otkucajte  p  da postavite prethodno izbrisan tekst iza kursora. **

  1. Pomerite kursor na prvi slede�i red ozna�en sa --->.

  2. Otkucajte  dd  da izbri�ete red i smestite ga u Vim registar.

  3. Pomerite kursor na red c), IZNAD mesta gde treba postaviti izbrisan red.

  4. Otkucajte  p  da postavite red ispod kursora.

  5. Ponavljajte korake 2 do 4 da biste postavili sve linije u pravilnom
     redosledu.

---> d) prebijena �tapa.
---> b) uzda od kanapa,
---> c) a bi� mi je od o�ina
---> a) Sedlo mi je od marame,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.2: KOMANDA ZAMENE


      ** Otkucajte  rx  da zamenite znak ispod kursora slovom  x . **

  1. Pomerite kursor na prvi slede�i red ozna�en sa --->.

  2. Pomerite kursor tako da se nalazi na prvoj gre�ci.

  3. Otkucajte  r  i onda znak koji treba da tu stoji.

  4. Ponavljajte korake 2 i 3 sve dok prvi red ne bude
     isti kao drugi.

--->  Kedi ju ovej red uga�en, nako je protresao pusta�ne testere!
--->  Kada je ovaj red uno�en, neko je pritiskao pogre�ne tastere!

  5. Pre�ite na lekciju 3.2.

NAPOMENA:  Setite se da treba da u�ite ve�banjem, ne pam�enjem.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 3.3: OPERATOR IZMENE


	  ** Za izmenu teksta do kraja re�i, otkucajte  ce  .**

  1. Pomerite kursor na prvi slede�i red ozna�en sa --->.

  2. Postavite kursor na  a  u  rakdur.

  3. Otkucajte  ce  i ispravite re� (u ovom slu�aju otkucajte  ed  ).

  4. Pritisnite <ESC> i pomerite kursor na slede�i znak koji
     treba ispraviti.

  5. Ponavljajte korake 3 i 4 sve dok prva re�enica ne bude ista
     kao druga.

---> Ovaj rakdur ima nekoliko rejga koje treflja isprpikati operagrom izmene.
---> Ovaj red ima nekoliko re�i koje treba ispraviti operatorom izmene.

Uo�ite da  ce  bri�e re� i postavlja editor u Insert mod.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lekcija 3.4: DALJE IZMENE UPOTREBOM c


    ** Komanda izmene se koristi sa istim pokretima kao i brisanje. **

  1. Operator izmene se koristi na isti na�in kao i operator brisanja:

         c    [broj]   pokret

  2. Pokreti su isti, recimo:   w (re�) i  $ (kraj reda).

  3. Pomerite kursor na prvi slede�i red ozna�en sa --->.

  4. Pomerite kursor na prvu gre�ku.

  5. Otkucajte  c$  i unesite ostatak reda tako da bude isti kao
     drugi red, pa pritisnite <ESC>.

---> Kraj ovog reda treba izmeniti tako da izgleda kao red ispod.
---> Kraj ovog reda treba ispraviti kori��enjem c$ komande.

NAPOMENA:  Za ispravljanje gre�aka mo�ete koristiti Backspace .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 3


  1. Za postavljanje teksta koji ste upravo izbrisali, pritisnite  p . Ovo
     postavlja tekst IZA kursora (ako je bio izbrisan jedan ili vi�e redova
     sadr�aj �e do�i na red ispod kursora).

  2. Za zamenu znaka na kome se nalazi kursor, pritisnite  r  i onda
     �eljeni znak.

  3. Operator izmene dozvoljava promenu teksta od kursora do pozicije gde
     se zavr�ava pokret.  Primera radi, kucajte  ce  za izmenu od kursora do
     kraja re�i, ili  c$  za izmenu od kursora do kraja reda.

  4. Oblik operacije izmene je:

	 c   [broj]   pokret

Pre�ite na narednu lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 4.1: POZICIJA KURSORA I STATUS FAJLA

  ** Pritisnite CTRL-G za prikaz pozicije kursora u tekstu i status fajla.
     Pritisnite  G  za pomeranje kursora na neki red u tekstu. **

NAPOMENA:  Pro�itajte celu lekciju pre izvo�enja bilo kog koraka!!

  1. Dr�ite taster CTRL i pritisnite  g .  Ovo zovemo CTRL-G.
     Editor �e na dnu ekrana ispisati poruku sa imenom fajla i pozicijom
     kursora u tekstu.  Zapamtite broj reda za 3. korak.

NAPOMENA:  U donjem desnom uglu mo�e se videti poziciju kursora ako je
           uklju�ena opcija 'ruler' (vidi  :help ruler  ili lekciju 6.5.)

  2. Pritisnite  G  za pomeranje kursora na kraj teksta.
     Pritisnite  1G  ili  gg  za pomranje kursora na po�etak teksta.

  3. Otkucajte broj reda na kome ste malopre bili i onda  G .  Kursor
     �e se vratiti na red na kome je bio kad ste otkucali CTRL-G.

  4. Ako ste spremni, izvr�ite korake od 1 do 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 4.2: KOMANDE PRETRA�IVANJA

       ** Otkucajte  /  i onda izraz koji �elite da potra�ite. **

  1. U Normal modu otkucajte znak  / .  Primietite da se znak pojavio
     zajedno sa kursorom na dnu ekrana kao i kod komande  : .

  2. Sada otkucajte 'grrre�ka' <ENTER>.  (Bez razmaka i navodnika.)
     To je re� koju tra�ite.

  3. Za ponovno tra�enje istog izraza, otkucajte  n .
     Za tra�enje istog izraza u suprotnom smeru, otkucajte  N .

  4. Za tra�enje izraza unatrag, koristite  ?  umesto  / .

  5. Za povratak na prethodnu poziciju otkucajte CTRL-O (dr�ite CTRL dok
     pritiskate O ).  Ponavljajte za ranije pozicije.  CTRL-I ide napred.

---> "grrre�ka" je pogre�no; umesto grrre�ka treba da stoji gre�ka.

NAPOMENA:  Ako pretraga do�e do kraja teksta tra�enje �e se nastaviti od
	   njegovog po�etka osim ako je opcija 'wrapscan' isklju�ena.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 4.3: TRA�ENJE PARA ZAGRADE


	** Otkucajte  %  za nala�enje para ), ] ili } . **

  1. Postavite kursor na bilo koju od  ( ,  [  ili  {
     otvorenih zagrada u redu ozna�enom sa --->.

  2. Otkucajte znak  % .

  3. Kursor �e se pomeriti na odgovaraju�u zatvorenu zagradu.

  4. Otkucajte  %  da pomerite kursor na prvu zagradu u paru.

      5. Pomerite kursor na neku od (,),[,],{ ili } i ponovite komandu  % .

---> Red ( testiranja obi�nih ( [ uglastih ] i { viti�astih } zagrada.))


NAPOMENA:  Vrlo korisno u ispravljanju koda sa rasparenim zagradama!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 4.4: KOMANDA ZAMENE


       ** Otkucajte  :s/staro/novo/g  da zamenite 'staro' za 'novo'. **

  1. Pomerite kursor na red ozna�en sa --->.

  2. Otkucajte  :s/rdi/ri/ <ENTER> .  Primetite da ova komanda zamenjuje
     samo prvo "rdi" u redu.

  3. Otkucajte  :s/rdi/ri/g .  Dodavanje opcije  g  zna�i da �e se komanda
     izvr�iti u celom redu, zamenom svih pojava niza "rdi".

---> rdiba rdibi grdize rep.

  4. Za zamenu svih izraza izme�u neka dva reda,
     otkucajte :#,#s/staro/novo/g   gde su #,# krajnji brojevi redova u opsegu 
                                    u kome �e se obaviti zamena.
     Otkucajte :%s/staro/novo/g     za zamenu svih izraza u celom tekstu.
     Otkucajte :%s/staro/novo/gc    za nala�enje svih izraza u tekstu i
     			            potvrdu zamene.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 4


  1. CTRL-G  prikazuje poziciju kursora u tekstu i status fajla.
             G  pomera kursor na kraj teksta.
     broj    G  pomera kursor na navedeni red.
            gg  pomera kursor na prvi red teksta.

  2. Kucanjem  /  sa izrazom taj izraz se tra�i UNAPRED.
     Kucanjem  ?  sa izrazom taj izraz se tra�i UNAZAD.
     Posle komande tra�enja koristite  n  za nala�enje izraza u istom
     smeru, a  N  za nala�enje u suprotnom smeru.
     CTRL-O vra�a kursor na prethodnu poziciju, a CTRL-I na narednu.

  3. Kucanjem  %  kad je kursor na zagradi on se pomera na njen par.

  4. Za zamenu prvog izraza staro za izraz novo            :s/staro/novo/
     Za zamenu svih izraza u celom redu                    :s/staro/novo/g
     Za zamenu svih izraza u opsegu linija #,#             :#,#s/staro/novo/g
     Za zamenu u celom tekstu                              :%s/staro/novo/g
     Za potvrdu svake zamene dodajte 'c'		   :%s/staro/novo/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 5.1: IZVR�AVANJE SPOLJA�NJIH KOMANDI


  ** Otkucajte  :!  pa spolja�nju komandu koju �elite da izvr�ite. **

  1. Otkucajte poznatu komandu  :  da biste namestili kursor na dno
     ekrana.  Time omogu�avate unos komande u komandnoj liniji editora.

  2. Otkucajte znak  !  (uzvi�nik).  Ovime omogu�avate
     izvr�avanje bilo koje spolja�nje komande.

  3. Kao primer otkucajte   ls   posle ! i pritisnite <ENTER>.  Ovo �e
     prikazati sadr�aj direktorijuma, kao da ste na komandnom promptu.
     Otkucajte   :!dir   ako   :!ls   ne radi.

NAPOMENA:  Na ovaj na�in mogu�e je izvr�iti bilo koju spolja�nju komandu,
           zajedno sa njenim argumentima.

NAPOMENA:  Sve  :  komande se izvr�avaju po�to pritisnete <ENTER> .
	   U daljem tekstu to ne�emo uvek napominjati.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.2: VI�E O SNIMANJU FAJLOVA

           ** Za snimanje promena, otkucajte  :w IME_FAJLA . **

  1. Otkucajte  :!dir  ili  :!ls  za pregled sadr�aja direktorijuma.
     Ve� znate da morate pritisnuti <ENTER> posle toga.

  2. Izaberite ime fajla koji jo� ne postoji, npr. TEST.

  3. Otkucajte:	 :w TEST   (gde je TEST ime koje ste izabrali.)

  4. Time �ete snimiti ceo fajl (Vim Tutor) pod imenom TEST.
     Za proveru, otkucajte opet  :!dir  ili  :!ls za pregled
     sadr�aja direktorijuma.

NAPOMENA:  Ako biste napustili Vim i ponovo ga pokrenuli sa vim TEST ,
           tekst bi bio ta�na kopija ovog fajla u trenutku kad ste
	   ga snimili.

  5. Izbri�ite fajl tako �to �ete otkucati (MS-DOS):	:!del TEST
				         ili (Unix):	:!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.3: SNIMANJE OZNA�ENOG TEKSTA


   ** Da biste snimili deo teksta, otkucajte  v  pokret  :w IME_FAJLA **

  1. Pomerite kursor na ovu liniju.

  2. Pritisnite  v  i pomerite kursor pet redova ispod.  Primetite da je
     tekst ozna�en inverzno.

  3. Pritisnite  : .  Na dnu ekrana pojavi�e se  :'<,'> .

  4. Otkucajte  w TEST  , gde je TEST ime fajla koji jo� ne postoji.
     Proverite da zaista pi�e  :'<,'>w TEST  pre nego �to pritisnete <ENTER>.

  5. Vim �e snimiti ozna�eni tekst u TEST.  Proverite sa  :!dir  ili  !ls .
     Nemojte jo� brisati fajl!  Koristi�emo ga u narednoj lekciji.

NAPOMENA:  Komanda  v  zapo�inje vizuelno ozna�avanje.  Mo�ete pomerati kursor
           i tako menjati veli�inu ozna�enog teksta.  Onda mo�ete upotrebiti
           operatore nad tekstom.  Na primer,  d  �e izbrisati ozna�eni tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.4: U�ITAVANJE FAJLA U TEKST


       ** Za ubacivanje sadr�aja fajla, otkucajte  :r IME_FAJLA  **

  1. Postavite kursor iznad ove linije.

NAPOMENA:  Po�to izvr�ite 2. korak vide�ete tekst iz lekcije 5.3.  Tada
           pomerite kursor DOLE da biste ponovo videli ovu lekciju.

  2. U�itajte fajl TEST koriste�i komandu  :r TEST  gde je TEST ime fajla
     koje ste koristili u prethodnoj lekciji.  Sadr�aj u�itanog fajla je
     uba�en ispod kursora.

  3. Da biste proverili da je fajl u�itan, vratite kursor unazad i
     primetite dve kopije lekcije 5.3, originalnu i onu iz fajla.

NAPOMENA:  Tako�e mo�ete u�itati izlaz spolja�nje komande.  Na primer,
	   :r !ls  �e u�itati izlaz komande  ls  i postaviti ga ispod
           kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 5


  1.  :!komanda  izvr�ava spolja�nju komandu.

      Korisni primeri:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  pregled sadr�aja direktorijuma.
	  :!del FAJL       :!rm FAJL       -  bri�e fajl FAJL.

  2.  :w FAJL  zapisuje trenutni tekst na disk pod imenom FAJL.

  3.  v  pokret  :w IME_FAJLA  snima vizuelno ozna�ene redove u fajl
      IME_FAJLA.

  4.  :r IME_FAJLA  u�itava fajl IME_FAJLA sa diska i stavlja
      njegov sadr�aj ispod kursora.

  5.  :r !dir  u�itava izlaz komande dir i postavlja ga ispod kursora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcija 6.1: KOMANDA OTVORI


	** Pritisnite  o  da biste otvorili red ispod kursora
	   i pre�li u Insert mod. **

  1. Pomerite kursor na slede�i red ozna�en sa --->.

  2. Otkucajte malo  o  da biste otvorili novi red ISPOD kursora
     i pre�li u Insert mod.

  3. Otkucajte neki tekst i onda pritisnite <ESC> da biste iza�li
     iz Insert moda.

---> Kad pritisnete  o  kursor prelazi u novootvoreni red u Insert modu.

  4. Za otvaranje reda IZNAD kursora, umesto malog otkucajte veliko O .
     Isprobajte na donjem redu ozna�enom sa --->.

---> Otvorite red iznad ovog kucanjem velikog  O  dok je kursor u ovom redu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 6.2: KOMANDA DODAJ


	     ** Otkucajte  a  za dodavanje teksta IZA kursora. **

  1. Pomerite kursor na po�etak slede�eg reda ozna�enog sa --->.
  
  2. Kucajte  e  dok kursor ne do�e na kraj re�i  re .

  3. Otkucajte  a  (malo) da biste dodali tekst IZA kursora.

  4. Dopunite re� kao �to je u redu ispod.  Pritisnite <ESC> za izlazak
     iz Insert moda.

  5. Sa  e  pre�ite na narednu nepotpunu re� i ponovite korake 3 i 4.
  
---> Ovaj re omogu�ava ve dodav teksta u nekom redu.
---> Ovaj red omogu�ava ve�banje dodavanja teksta u nekom redu.

NAPOMENA:  Komande a, i, i  A  aktiviraju isti Insert mod, jedina
           razlika je u poziciji od koje �e se tekst ubacivati.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.3: DRUGI NA�IN ZAMENE


      ** Otkucajte veliko  R  da biste zamenili vi�e od jednog znaka. **

  1. Pomerite kursor na prvi slede�i red ozna�en sa --->.
     Pomerite kursor na po�etak prvog  xxx .

  2. Pritisnite  R  i otkucajte broj koji je red ispod,
     tako da zameni xxx .

  3. Pritisnite <ESC> za izlazak iz Replace moda.
     Primetite da je ostatak reda ostao nepromenjen.

  4. Ponovite korake da biste zamenili drugo xxx.

---> Dodavanje 123 na xxx daje xxx.
---> Dodavanje 123 na 456 daje 579.

NAPOMENA:  Replace mod je kao Insert mod, s tom razlikom �to svaki
           uneti znak bri�e ve� postoje�i.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 6.4: KOPIRANJE I LEPLJENJE TEKSTA


    ** Koristite operator  y  za kopiranje a  p  za lepljenje teksta. **

  1. Pomerite kursor na red sa --->  i postavite kursor posle "a)".
  
  2. Aktivirajte Visual mod sa  v  i pomerite kursor sve do ispred "prvi".
  
  3. Pritisnite  y  da biste kopirali ozna�eni tekst u interni bafer.

  4. Pomerite kursor do kraja slede�eg reda:  j$

  5. Pritisnite  p  da biste zalepili tekst.  Onda otkucajte:  a drugi <ESC> .

  6. Upotrebite Visual mod da ozna�ite " red.", kopirajte sa  y , kursor
     pomerite na kraj slede�eg reda sa  j$  i tamo zalepite tekst sa  p .

--->  a) ovo je prvi red.
      b)

NAPOMENA:  tako�e mo�ete koristiti  y  kao operator;  yw  kopira jednu re�.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.5: POSTAVLJANJE OPCIJA


 ** Postavite opciju tako da tra�enje i zamena ignori�u veli�inu slova **

  1. Potra�ite re� 'razlika':  /razlika <ENTER>
     Ponovite nekoliko puta pritiskom na  n .

  2. Aktivirajte opciju 'ic' (Ignore case):  :set ic

  3. Ponovo potra�ite re� 'razlika' pritiskom na  n
     Primetite da su sada prona�eni i RAZLIKA i Razlika.

  4. Aktivirajte opcije 'hlsearch' i 'incsearch':  :set hls is

  5. Ponovo otkucajte komandu tra�enja i uo�ite razlike:  /razlika <ENTER>

  6. Za deaktiviranje opcije  ic  kucajte:  :set noic

NAPOMENA:  Za neozna�avanje prona�enih izraza otkucajte:  :nohlsearch
NAPOMENA:  Ako �elite da ne razlikujete veli�inu slova u samo jednoj komandi
	   tra�enja, dodajte  \c  u izraz:  /razlika\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 6

  1. Pritisnite  o  za otvaranje reda ISPOD kursora i prelazak u Insert mod.
     Pritisnite  O  za otvaranje reda IZNAD kursora.

  2. Pritisnite  a  za unos teksta IZA kursora.
     Pritisnite  A  za unos teksta na kraju reda.

  3. Komanda  e  pomera kursor na kraj re�i.

  4. Operator  y  kopira tekst,  p  ga lepi.

  5. Kucanje velikog  R  aktivira Replace mod dok ne pritisnete <ESC> .

  6. Kucanje ":set xxx" aktivira opciju "xxx".  Neke opcije su:
  	'ic' 'ignorecase'	ne razlikuje velika/mala slova pri tra�enju
	'is' 'incsearch'	prikazuje prona�en tekst dok kucate izraz
	'hls' 'hlsearch'	ozna�ava inverzno sve prona�ene izraze
     Mo�ete koristite dugo ili kratko ime opcije.

  7. Ispred imena opcije stavite "no" da je deaktivirate:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 7.1: DOBIJANJE POMO�I


		   ** Koristite on-line sistem za pomo� **

  Vim ima detaljan on-line sistem za pomo�.  Za po�etak, poku�ajte ne�to
  od slede�eg:
	- pritisnite taster <HELP> (ako ga imate na tastaturi)
	- pritisnite taster <F1> (ako ga imate na tastaturi)
	- otkucajte  :help <ENTER>

  Pro�itajte tekst u prozoru pomo�i da biste nau�ili pomo� radi.
  Kucanjem  CTRL-W CTRL-W  prelazite iz jednog prozora u drugi.
  Otkucajte  :q <ENTER>  da zatvorite prozor pomo�i.

  Pomo� o prakti�no bilo kojoj temi mo�ete dobiti dodavanjem argumenta
  komandi ":help".  Poku�ajte ovo (ne zaboravite <ENTER> na kraju):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 7.2: PRAVLJENJE STARTNOG SKRIPTA


		   ** Aktivirajte mogu�nosti editora **

  Vim ima mnogo vi�e mogu�nosti nego Vi, ali ve�ina nije automatski
  aktivirana.  Za dodatne mogu�nosti napravite "vimrc" fajl.

  1. Otvorite "vimrc" fajl.  Ovo zavisi od va�eg sistema:
	:e ~/.vimrc		za Unix
	:e $VIM/_vimrc		za MS-Windows

  2. Onda u�itajte primer sadr�aja "vimrc" fajla:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Snimite fajl sa:
	:w

  Slede�i put kada pokrenete Vim, bojenje sintakse teksta bi�e
  aktivirano. Sva svoja pode�avanja mo�ete dodati u "vimrc" fajl.
  Za vi�e informacija otkucajte  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 7.3: AUTOMATSKO DOVR�AVANJE


	** Dovr�avanje komandne linije sa CTRL-D i <TAB> **

  1. Podesite Vim da ne bude u Vi-kompatibilnom modu:  :set nocp

  2. Pogledajte koji fajlovi postoje u direktorijumu:  :!ls  ili  :!dir

  3. Otkucajte po�etak komande:  :e

  4. Otkucajte  CTRL-D  i Vim �e prikazati spisak komandi koje po�inju sa "e".

  5. Pritisnite <TAB>  i Vim �e dopuniti ime komande u ":edit".

  6. Dodajte razmak i po�etak imena postoje�eg fajla:  :edit FA

  7. Pritisnite <TAB>.  Vim �e dopuniti ime fajla (ako je jedinstveno).

NAPOMENA:  Mogu�e je dopuniti mnoge komande.  Samo probajte CTRL-D i <TAB>.
           Naro�ito je korisno za  :help  komande.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 7


  1. Otkucajte  :help  ili pritisnite <F1> ili <Help>  za pomo�.

  2. Otkucajte  :help komanda  biste dobili pomo� za tu komandu.

  3. Otkucajte  CTRL-W CTRL-W  za prelazak u drugi prozor.

  4. Otkucajte  :q  da zatvorite prozor pomo�i.

  5. Napravite vimrc startni skript za aktiviranje pode�avanja koja
     vam odgovaraju.

  6. Dok kucate neku od  :  komandi, pritisnite CTRL-D da biste videli mogu�e
     vrednosti.  Pritisnite <TAB> da odaberete jednu od njih.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Ovim je priru�nik zavr�en.  Njegov cilj je bio kratak pregled Vim editora,
  koliko da omogu�i njegovo relativno jednostavno kori��enje.  Priru�nik nije
  potpun, jer Vim ima mnogo vi�e komandi.  Kao slede�e, pro�itajte priru�nik:
  ":help user-manual".

  Za dalje �itanje i u�enje, preporu�ujemo knjigu:
	Vim - Vi Improved - by Steve Oualline
	Izdava�: New Riders
  Prva knjiga potpuno posve�ena Vim-u.  Naro�ito korisna za po�etnike.
  Ima mno�tvo primera i slika.
  Vidite http://iccf-holland.org/click5.html

  Slede�a knjiga je starija i vi�e govori o Vi-u nego o Vim-u, ali je tako�e
  preporu�ujemo:
	Learning the Vi Editor - by Linda Lamb
	Izdava�: O'Reilly & Associates Inc.
  Dobra knjiga iz koje mo�ete saznati skoro sve �to mo�ete raditi u Vi-ju.
  �esto izdanje ima i informacija o Vim-u.

  Ovaj priru�nik su napisali: Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines koriste�i ideje Charlesa Smitha,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Prilago�avanje za Vim uradio je Bram Moolenaar.

  Prevod na srpski: Ivan Nejgebauer <ian@uns.ac.rs>
  Verzija 1.0, maj/juni 2014.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z���u�u�vim80/tutor/tutor.hrnu�[���===============================================================================
=    D o b r o d o � l i   u   VIM   p r i r u � n i k  -    Verzija 1.7      =
===============================================================================

     Vim je vrlo mo�an editor koji ima mnogo naredbi, previ�e da bi ih
     se svih ovdje spomenulo.  Namjena priru�nika je objasniti dovoljno
     naredbi kako bi po�etnici znatno lak�e koristili ovaj svestran editor.

     Pribli�no vrijeme potrebno za uspje�an zavr�etak priru�nika je oko
     30 minuta a ovisi o tome koliko �e te vremena odvojiti za vje�banje.

     UPOZORENJE:
     Naredbe u ovom priru�niku �e promijeniti ovaj tekst.
     Napravite kopiju ove datoteke kako bi ste na istoj vje�bali
     (ako ste pokrenuli "vimtutor" ovo je ve� kopija).

     Vrlo je va�no primijetiti da je ovaj priru�nik namijenjen za vje�banje.
     Preciznije, morate izvr�iti naredbe u Vim-u kako bi ste iste nau�ili
     pravilno koristiti. Ako samo �itate tekst, zaboraviti �e te naredbe!

     Ako je CapsLock uklju�en ISKLJU�ITE ga.  Pritiskajte tipku  j  kako
     bi pomakli kursor sve dok Lekcija 1.1 ne ispuni ekran.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 1.1:  POMICANJE KURSORA


 ** Za pomicanje kursora, pritisnite h,j,k,l tipke kako je prikazano **
	     ^
	     k		    Savjet:  h tipka je lijevo i pomi�e kursor lijevo.
       < h	 l >		   l tipka je desno i pomi�e kursor desno.
	     j                     j izgleda kao strelica usmjerena dolje.
	     v
  1. Pomi�ite kursor po ekranu dok se ne naviknete na kori�tenje.

  2. Dr�ite tipku (j) pritisnutom.
     Sada znate kako do�i do sljede�e lekcije.

  3. Koriste�i tipku j prije�ite na sljede�u lekciju 1.2.

NAPOMENA:  Ako niste sigurni �to ste zapravo pritisnuli uvijek koristite
           tipku <ESC> kako bi pre�li u Normal mod i onda poku�ajte ponovno.

NAPOMENA:  Kursorske tipke rade isto.  Kori�tenje hjkl tipaka je znatno
           br�e, nakon �to se jednom naviknete na njihovo kori�tenje.  Stvarno!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekcija 1.2: IZLAZ IZ VIM-a


  !! UPOZORENJE: Prije izvo�enja bilo kojeg koraka,
                 pro�itajte cijelu lekciju!!

  1. Pritisnite <ESC> tipku (Vim je sada u Normal modu).

  2. Otipkajte:	:q! <ENTER>.
     Izlaz iz editora, GUBE se sve napravljene promjene.

  3. Kada se pojavi ljuska, utipkajte naredbu koja je pokrenula
     ovaj priru�nik:		vimtutor <ENTER>

  4. Ako ste upamtili ove korake, izvr�ite ih redom od 1 do 3
     kako bi ponovno pokrenuli editor.

NAPOMENA:  :q! <ENTER>  poni�tava sve promjene koje ste napravili.
           U sljede�im lekcijama nau�it �e te kako promjene sa�uvati.

  5. Pomaknite kursor na Lekciju 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.3: PROMJENA TEKSTA - BRISANJE


	      ** Pritisnite  x  za brisanje znaka pod kursorom. **

  1. Pomaknite kursor na liniju ozna�enu s --->.

  2. Kako bi ste ispravili pogre�ke, pomi�ite kursor dok se
     ne bude nalazio na slovu kojeg trebate izbrisati.

  3. Pritisnite tipku x kako bi uklonili ne�eljeno slovo.

  4. Ponovite korake od 2 do 4 dok ne ispravite sve pogre�ke.

---> KKKravaa jee pressko�ila mmjeseccc.

  5. Nakon �to ispravite liniju, prije�ite na lekciju 1.4.

NAPOMENA:  Koriste�i ovaj priru�nik ne poku�avajte pamtiti
           ve� u�ite primjenom.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcija 1.4: PROMJENA TEKSTA - UBACIVANJE


	  ** Pritisnite  i  za ubacivanje teksta ispred kursora. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Kako bi napravili prvu liniju istovjetnoj drugoj, pomaknite
     kursor na prvi znak POSLIJE kojeg �e te utipkati potreban tekst.

  3. Pritisnite  i  te utipkajte potrebne nadopune.

  4. Nakon �to ispravite pogre�ku pritisnite <ESC> kako bi vratili Vim
     u Normal mod. Ponovite korake od 2 do 4 kako bi ispravili sve pogre�ke.

---> Nedje no teka od v lin.
---> Nedostaje ne�to teksta od ove linije.

  5. Prije�ite na sljede�u lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.5: PROMJENA TEKSTA - DODAVANJE


	           ** Pritisnite  A  za dodavanje teksta. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.
     Nije va�no na kojem se slovu nalazi kursor na toj liniji.

  2. Pritisnite  A  i napravite potrebne promjene.

  3. Nakon �to ste dodali tekst, pritisnite <ESC>
     za povratak u Normal mod.

  4. Pomaknite kursor na drugu liniju ozna�enu s --->
     i ponovite korake 2 i 3 dok ne popravite tekst.

---> Ima ne�to teksta koji nedostaje n
     Ima ne�to teksta koji nedostaje na ovoj liniji.
---> Ima ne�to teksta koji ne
     Ima ne�to teksta koji nedostaje ba� ovdje.

  5. Prije�ite na lekciju 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 1.6: PROMJENA DATOTEKE


     ** Koristite  :wq  za spremanje teksta i napu�tanje Vim-a. **

  !! UPOZORENJE: Prije izvr�avanja bilo kojeg koraka, pro�itajte lekciju!!

  1. Iza�ite iz programa kao sto ste napravili u lekciji 1.2:  :q!

  2. Iz ljuske utipkajte sljede�u naredbu:  vim tutor <ENTER>
     'vim' je naredba pokretanja Vim editora, 'tutor' je ime datoteke koju
     �elite ure�ivati.  Koristite datoteku koju imate ovlasti mijenjati.

  3. Ubacite i izbri�ite tekst kao �to ste to napravili u lekcijama prije.

  4. Sa�uvajte promjenjeni tekst i iza�ite iz Vim-a:  :wq  <ENTER>

  5. Ponovno pokrenite vimtutor i nastavite �itati sa�etak koji sljedi.

  6. Nakon sto pro�itate gornje korake i u potpunosti ih razumijete:
     izvr�ite ih.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 1 SA�ETAK


  1. Kursor se pomi�e strelicama ili pomo�u hjkl tipaka.
	h (lijevo)	j (dolje)	k (gore)	l (desno)

  2. Pokretanje Vim-a iz ljuske:  vim IME_DATOTEKE <ENTER>

  3. Izlaz:	<ESC>	:q! <ENTER> 	sve promjene su izgubljene.
       ILI:	<ESC>	:wq <ENTER> 	promjene su sa�uvane.

  4. Brisanje znaka na kojem se nalazi kursor:  x

  5. Ubacivanja ili dodavanje teksta:
	 i   utipkajte tekst <ESC>	unos ispred kursora
	 A   utipkajte tekst <ESC>	dodavanje na kraju linije

NAPOMENA:  Tipkanjem tipke <ESC> prebacuje Vim u Normal mod i
           prekida ne�eljenu ili djelomi�no zavr�enu naredbu.

Nastavite �itati Lekciju 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 2.1: NAREDBE BRISANJA


		 ** Tipkajte  dw  za brisanje rije�i. **

  1. Pritisnite  <ESC>  kako bi bili sigurni da je Vim u Normal modu.

  2. Pomaknite kursor na liniju ozna�enu s --->.

  3. Pomaknite kursor na po�etak rije�i koju treba izbrisati.

  4. Otipkajte  dw  kako bi uklonili rije�.

NAPOMENA:  Vim �e prikazati slovo  d  na zadnjoj liniji kad ga otipkate.
           Vim �eka da otipkate  w .  Ako je prikazano neko drugo slovo,
           krivo ste otipkali; pritisnite <ESC> i poku�ajte ponovno.

---> Neke rije�i smije�no ne pripadaju na papir ovoj re�enici.

  5. Ponovite korake 3 i 4 dok ne ispravite re�enicu;
     prije�ite na Lekciju 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.2: JO� BRISANJA


       ** Otipkajte  d$ za brisanje znakova do kraja linije. **

  1. Pritisnite  <ESC>  kako bi bili
     sigurni da je Vim u Normal modu.

  2. Pomaknite kursor na liniju ozna�enu s  --->.

  3. Pomaknite kursor do kraja ispravne re�enice
     (POSLJE prve . ).

  4. Otipkajte  d$
     kako bi izbrisali sve znakove do kraja linije.

---> Netko je utipkao kraj ove linije dvaput. kraj ove linije dvaput.

  5. Prije�ite na Lekciju 2.3 za bolje obja�njenje.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 2.3: UKRATKO O OPERATORIMA I POKRETIMA


  Mnogo naredbi koje mijenjaju tekst se sastoje od operatora i pokreta.
  Oblik naredbe brisanja sa  d  operatorom je sljede�i:

  	d   pokret

  Pri �emu je:
    d      - operator brisanja.
    pokret - ono na �emu �e se operacija izvr�avati (navedeno u nastavku).

  Kratka lista pokreta:
    w - sve do po�etka sljede�e rije�i, NE UKLJU�UJU�I prvo slovo.
    e - sve do kraja trenuta�ne rije�i, UKLJU�UJU�I zadnje slovo.
    $ - sve do kraje linije, UKLJU�UJU�I zadnje slovo.

  Tipkanjem  de  �e se brisati od kursora do kraja rije�i.

NAPOMENA:  Pritiskaju�i samo pokrete dok ste u Normal modu bez operatora �e
           pomicati kursor kao �to je navedeno.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 2.4: KORI�TENJE BROJANJA ZA POKRETE


  ** Tipkanjem nekog broja prije pokreta, pokret se izvr�ava toliko puta. **

  1. Pomaknite kursor na liniju ozna�enu s --->.

  2. Otipkajte  2w  da pomaknete kursor dvije rije�i naprijed.

  3. Otipkajte  3e  da pomaknete kursor na kraj tre�e rije�i naprijed.

  4. Otipkajte  0  (nulu) da pomaknete kursor na po�etak linije.

  5. Ponovite korake 2 i 3 s nekim drugim brojevima.

---> Re�enica sa rije�ima po kojoj mo�ete pomicati kursor.

  6. Prije�ite na Lekciju 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Lekcija 2.5: KORI�TENJE BROJANJA ZA VE�E BRISANJE


	  ** Tipkanje broja N s operatorom ponavlja ga N-puta. **

  U kombinaciji operatora brisanja i pokreta spomenutih iznad
  ubacujete broj prije pokreta kako bi izbrisali vi�e znakova:

	 d   broj   pokret

  1. Pomaknite kursor na prvo slovo u rije�i sa VELIKIM SLOVIMA
     ozna�enu s --->.

  2. Otipkajte  2dw  da izbri�ete dvije rije�i sa VELIKIM SLOVIMA

  3. Ponovite korake 1 i 2 sa razli�itim brojevima da izbri�ete
     uzastopne rije�i sa VELIKIM SLOVIMA sa samo jednom naredbom.

---> ova ABC�� D�E linija FGHI JK LMN OP rije�i je RS� TUVZ� popravljena.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 2.6: OPERIRANJE NAD LINIJAMA


	       ** Otipkajte  dd   za brisanje cijele linije. **

  Zbog u�estalosti brisanja cijelih linija, dizajneri Vi-a su odlu�ili da
  je lak�e brisati linije tipkanjem  d  dvaput.

  1. Pomaknite kursor na drugu liniju u donjoj kitici.
  2. Otipkajte  dd  kako bi izbrisali liniju.
  3. Pomaknite kursor na �etvrtu liniju.
  4. Otipkajte   2dd   kako bi izbrisali dvije linije.

--->  1)  Ru�e su crvene,
--->  2)  Pla�a je super,
--->  3)  Ljubice su plave,
--->  4)  Imam auto,
--->  5)  Satovi ukazuju vrijeme,
--->  6)  �e�er je sladak
--->  7)  Kao i ti.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.7: NAREDBA PONI�TENJA


  ** Pritisnite  u  za poni�tenje zadnje naredbe,  U  za cijelu liniju. **

  1. Pomaknite kursor na liniju ozna�enu s ---> i postavite kursor na prvu
     pogre�ku.
  2. Otipkajte  x  kako bi izbrisali prvi ne�eljeni znak.
  3. Otipkajte  u  kako bi poni�tili zadnju izvr�enu naredbu.
  4. Ovaj put ispravite sve pogre�ke na liniji koriste�i  x  naredbu.
  5. Sada utipkajte veliko  U  kako bi poni�tili sve promjene
     na liniji, vra�aju�i je u prija�nje stanje.
  6. Sada utipkajte  u  nekoliko puta kako bi poni�tili  U
     i prija�nje naredbe.
  7. Sada utipkajte CTRL-R (dr�e�i  CTRL  tipku pritisnutom dok
     ne pritisnete  R) nekoliko puta kako bi vratili promjene
     (poni�tili poni�tenja).

---> Poopravite pogre�ke nna ovvoj liniji ii pooni�titeee ih.

  8. Vrlo korisne naredbe.  Prije�ite na sa�etak Lekcije 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 2 SA�ETAK


  1. Brisanje od kursora do sljede�e rije�i:    dw
  2. Brisanje od kursora do kraja linije:    d$
  3. Brisanje cijele linije:    dd

  4. Za ponavljanje pokreta prethodite mu broj:   2w
  5. Oblik naredbe mijenjanja:
               operator   [broj]   pokret
     gdje je:
       operator - �to napraviti, npr.   d  za brisanje
       [broj]   - neobavezan broj ponavljanja pokreta
       pokret   - kretanje po tekstu po kojem se operira,
                  kao �to je: w (rije�), $ (kraj linije), itd.

  6. Postavljanje kursora na po�etak linije:  0

  7. Za poni�tenje prethodnih promjena, pritisnite:	  u  (malo u)
     Za poni�tenje svih promjena na liniji, pritisnite:   U  (veliko U)
     Za vra�anja promjena, utipkajte:	CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.1: NAREDBA POSTAVI


	** p  za unos prethodno izbrisanog teksta iza kursora. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Otipkajte  dd  kako bi izbrisali liniju i spremili je u Vim registar.

  3. Pomaknite kursor na liniju c), IZNAD linije koju trebate unijeti.

  4. Otipkajte  p  kako bi postavili liniju ispod kursora.

  5. Ponovite korake 2 do 4 kako bi postavili sve linije u pravilnom
     rasporedu.

---> d) Mo�e� li i ti nau�iti?
---> b) Ljubice su plave,
---> c) Inteligencija je nau�ena,
---> a) Ru�e su crvene,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.2: NAREDBA PROMJENE


      ** Otipkajte  rx  za zamjenu slova ispod kursora sa slovom  x . **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Pomaknite kursor tako da se nalazi na prvoj pogre�ci.

  3. Otipkajte  r  i nakon toga ispravan znak na tom mjestu.

  4. Ponovite korake 2 i 3 sve dok prva
     linije ne bude istovjetna drugoj.

--->  Kede ju ovu limija tupjana, natko je protuskao kruve tupke!
--->  Kada je ova linija tipkana, netko je pritiskao krive tipke!

  5. Prije�ite na Lekciju 3.2.

NAPOMENA:  Prisjetite da trebate u�iti vje�banjem, ne pam�enjem.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 3.3: OPERATOR MIJENJANJA


	  ** Za mijenjanje do kraja rije�i, istipkajte  ce . **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  2. Postavite kursor na  a  u  lackmb.

  3. Otipkajte  ce  i ispravite rije� (u ovom slu�aju otipkajte  inija ).

  4. Pritisnite <ESC> i pomaknite kursor na sljede�i znak
     kojeg je potrebno ispraviti.

  5. Ponovite korake 3 i 4 sve dok prva re�enica ne postane istovjetna
     drugoj.

---> Ova lackmb ima nekoliko rjlcah koje trfcb mijdmlfsz.
---> Ova linija ima nekoliko rije�i koje treba mijenjati.

Primijetite da  ce  bri�e rije� i postavlja Vim u Insert mod.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lekcija 3.4: JO� MIJENJANJA KORI�TENJEM c


    ** Naredba mijenjanja se koristi sa istim pokretima kao i brisanje. **

  1. Operator mijenjanja se koristi na isti na�in kao i operator brisanja:

         c    [broj]   pokret

  2. Pokreti su isti, npr:   w (rije�) i  $ (kraj linije).

  3. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.

  4. Pomaknite kursor na prvu pogre�ku.

  5. Otipkajte  c$  i utipkajte ostatak linije tako da bude istovjetna
     drugoj te pritisnite <ESC>.

---> Kraj ove linije treba pomo� tako da izgleda kao linija ispod.
---> Kraj ove linije treba ispraviti kori�tenjem c$ naredbe.

NAPOMENA:  Mo�ete koristiti Backspace za ispravljanje gre�aka.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 3 SA�ETAK


  1. Za postavljanje teksta koji je upravo izbrisan, pritisnite  p . Ovo
     postavlja tekst IZA kursora (ako je pak linija izbrisana tekst se
     postavlja na liniju ispod kursora).

  2. Za promjenu znaka na kojem se nalazi kursor, pritisnite  r  i nakon toga
     �eljeni znak.

  3. Operator mijenjanja dozvoljava promjenu teksta od kursora do pozicije do
     koje dovede pokret. tj. Otipkajte  ce  za mijenjanje od kursora do kraja
     rije�i, c$  za mijenjanje od kursora do kraja linije.

  4. Oblik naredbe mijenjanja:

	 c   [broj]   pokret

Prije�ite na sljede�u lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 4.1: POZICIJA KURSORA I STATUS DATOTEKE

  ** CTRL-G za prikaz pozicije kursora u datoteci i status datoteke.
     Pritisnite  G  za pomicanje kursora na neku liniju u datoteci. **

NAPOMENA:  Pro�itajte cijelu lekciju prije izvr�enja bilo kojeg koraka!!

  1. Dr�ite Ctrl tipku pritisnutom i pritisnite  g .  Ukratko: CTRL-G.
     Vim �e ispisati poruku na dnu ekrana sa imenom datoteke i pozicijom
     kursora u datoteci.  Zapamtite broj linije za 3. korak.

NAPOMENA:  Mo�ete vidjeti poziciju kursora u donjem desnom kutu ako
           je postavka 'ruler' aktivirana (obja�njeno u 6. lekciji).

  2. Pritisnite  G  za pomicanje kursora na kraj datoteke.
     Otipkajte  gg  za pomicanje kursora na po�etak datoteke.

  3. Otipkajte broj linije na kojoj ste bili maloprije i zatim  G .  Kursor
     �e se vratiti na liniju na kojoj se nalazio kada ste otipkali CTRL-G.

  4. Ako ste spremni, izvr�ite korake od 1 do 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 4.2: NAREDBE TRA�ENJA

       ** Otipkajte  /  i nakon toga izraz kojeg �elite tra�iti. **

  1. U Normal modu otipkajte  /  znak.  Primijetite da se znak
     pojavio zajedno sa kursorom na dnu ekrana kao kod  :  naredbe.

  2. Sada otipkajte 'grrrre�ka' <ENTER>.  To je rije� koju zapravo tra�ite.

  3. Za ponovno tra�enje istog izraza, otipkajte  n .
     Za tra�enje istog izraza ali u suprotnom smjeru, otipkajte  N .

  4. Za tra�enje izraza unatrag, koristite  ?  umjesto  / .

  5. Za povratak na prethodnu poziciju koristite  CTRL-O  (dr�ite Ctrl
     pritisnutim dok ne pritisnete tipku o).  Ponavljajte sve dok se ne
     vratite na po�etak.  CTRL-I sli�no kao CTRL-O ali u suprotnom smjeru.

---> "pogrrrre�ka" je pogre�no; umjesto pogrrrre�ka treba stajati pogre�ka.

NAPOMENA:  Ako se tra�enjem do�e do kraja datoteke nastavit �e se od njenog
           po�etka osim ako je postavka 'wrapscan' deaktivirana.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 4.3: TRA�ENJE PRIPADAJU�E ZAGRADE


	** Otipkajte  %  za pronalazak pripadaju�e ), ] ili } . **

  1. Postavite kursor na bilo koju od  ( ,  [  ili  {
     otvorenih zagrada u liniji ozna�enoj s --->.

  2. Otipkajte znak  % .

  3. Kursor �e se pomaknuti na pripadaju�u zatvorenu zagradu.

  4. Otipkajte  %  kako bi pomakli kursor na drugu pripadaju�u zagradu.

  5. Pomaknite kursor na neku od (,),[,],{ ili } i ponovite  %  naredbu.

---> Linija ( testiranja obi�nih ( [ uglatih ] i { viti�astih } zagrada.))


NAPOMENA:  Vrlo korisno u ispravljanju koda sa nepripadaju�im zagradama!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 4.4: NAREDBE ZAMIJENE


       ** Otipkajte  :s/staro/novo/g  da zamijenite 'staro' za 'novo'. **

  1. Pomaknite kursor na liniju ozna�enu s --->.

  2. Otipkajte  :s/cvr��/cvr� <ENTER> .  Primjetite da ova naredba zamjenjuje
     samo prvi "cvr��" u liniji.

  3. Otipkajte  :s/cvr��/cvr�/g .  Dodavanje  g  stavke zna�i da �e se naredba
     izvr�iti na cijeloj liniji, zamjenjivanjem svih "cvr��" u liniji.

---> i cvr��i cvr��i cvr��ak na �voru crne smr�e.

  4. Za zamjenu svih izraza u rasponu dviju linija,
     otipkajte :#,#s/staro/novo/g   #,# su brojevi linije datoteke na kojima
                                    te izme�u njih �e se izvr�iti zamjena.
     Otipkajte :%s/staro/novo/g     za zamjenu svih izraza u cijeloj datoteci.
     Otipkajte :%s/staro/novo/gc    za pronalazak svakog izraza u datoteci i
     			            potvrdu zamjene.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 4 SA�ETAK


  1. CTRL-G  prikazuje poziciju kursora u datoteci i status datoteke.
             G  postavlja kursor na zadnju liniju datoteke.
     broj    G  postavlja kursor na  broj  liniju.
            gg  postavlja kursor na prvu liniju.

  2. Tipkanje  /  sa izrazom tra�i UNAPRIJED taj izraz.
     Tipkanje  ?  sa izrazom tra�i UNATRAG taj izraz.
     Nakon naredbe tra�enja koristite  n  za pronalazak izraza u istom
     smjeru, i  N  za pronalazak istog izraza ali u suprotnom smjeru.
     CTRL-O vra�a kursor na prethodnu poziciju, CTRL-I na sljede�u poziciju.

  3. Tipkanje  %  dok je kursor na zagradi pomi�e ga na pripadaju�u zagradu.

  4. Za zamjenu prvog izraza staro za izraz novo	   :s/staro/novo
     Za zamjenu svih izraza staro na cijeloj liniji	   :s/staro/novo/g
     Za zamjenu svih izraza staro u rasponu linija #,#     :#,#s/staro/novo/g
     Za zamjenu u cijeloj datoteci			   :%s/staro/novo/g
     Za potvrdu svake zamjene dodajte 'c'		   :%s/staro/novo/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.1: IZVR�AVANJE VANJSKIH NAREDBI


	** Otipkajte  :!  sa vanjskom naredbom koju �elite izvr�iti. **

  1. Otipkajte poznatu naredbu  :  kako bi kursor premjestili na dno
     ekrana.  Time omogu�avate unos naredbe u naredbenoj liniji.

  2. Otipkajte znak  !  (uskli�nik).  Tako omogu�avate
     izvr�avanje naredbe vanjske ljuske.

  3. Kao primjer otipkajte   ls   nakon ! te pritisnite <ENTER>.
     Ovo �e prikazati sadr�aj direktorija, kao da ste u ljusci.
     Koristite   :!dir   ako   :!ls   ne radi.

NAPOMENA:  Mogu�e je izvr�avati bilo koju vanjsku naredbu na ovaj na�in,
           zajedno sa njenim argumentima.

NAPOMENA:  Sve  :  naredbe se izvr�avaju nakon �to pritisnete <ENTER>
	   U daljnjem tekstu to ne�e uvijek biti napomenuto.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.2: VI�E O SPREMANJU DATOTEKA

           ** Za spremanje promjena, otipkajte  :w IME_DATOTEKE. **

  1. Otipkajte   :!dir   ili   :!ls   za pregled direktorija.
     Ve� znate da morate pritisnuti <ENTER> na kraju tipkanja.

  2. Izaberite ime datoteke koja jo� ne postoji, npr. TEST.

  3. Otipkajte:	 :w TEST   (gdje je TEST ime koje ste prethodno odabrali.)

  4. Time �e te spremiti cijelu datoteku (Vim Tutor) pod imenom TEST.
     Za provjeru, otipkajte ponovno   :!dir   ili   :!ls
     za pregled direktorija.

NAPOMENA:  Ako bi napustili Vim i ponovno ga pokrenuli sa vim TEST ,
           datoteka bi bila potpuna kopija ove datoteke u trenutku
           kada ste je spremili.

  5. Izbri�ite datoteku tako da otipkate (MS-DOS):	:!del TEST
				       ili (Unix):	:!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.3: SPREMANJE OZNA�ENOG TEKSTA


   ** Kako bi spremili dio datoteke, otipkajte  v  pokret  :w IME_DATOTEKE **

  1. Pomaknite kursor na ovu liniju.

  2. Pritisnite  v  i pomaknite kursor pet linija ispod ove.
     Primijetite promjenu, ozna�eni tekst se razlikuje od obi�nog.

  3. Pritisnite  :  znak.  Na dnu ekrana pojavit �e se  :'<,'> .

  4. Otipkajte  w TEST  , pritom je TEST ime datoteke koja jo� ne postoji.
     Provjerite da zaista pi�e  :'<,'>w TEST
     prije nego �to pritisnite <ENTER>.

  5. Vim �e spremiti ozna�eni tekst u TEST.  Provjerite sa :!dir  ili  :!ls .
     Nemojte je jo� brisati!  Koristiti �e te je u sljede�oj lekciji.

NAPOMENA:  Tipka  v  zapo�inje Vizualno ozna�avanje.  Mo�ete pomicati kursor
           unaokolo kako bi mijenjali veli�inu ozna�enog teksta. Mo�ete
           koristiti i operatore.  Npr,  d  �e izbrisati ozna�eni tekst.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.4: U�ITAVANJE DATOTEKA


       ** Za ubacivanje sadr�aja datoteke, otipkajte  :r IME_DATOTEKE  **

  1. Postavite kursor iznad ove linije.

NAPOMENA:  Nakon �to izvr�ite 2. korak vidjeti �e te tekst iz Lekcije 5.3.
           Stoga pomaknite kursor DOLJE kako bi ponovno vidjeli ovu lekciju.

  2. U�itajte va�u TEST datoteku koriste�i naredbu   :r TEST
     gdje je TEST ime datoteke koju ste koristili u prethodnoj lekciji.
     Sadr�aj u�itane datoteke je uba�en liniju ispod kursora.

  3. Kako bi provjerili da je datoteka u�itana, vratite kursor unatrag i
     primijetite dvije kopije Lekcije 5.3, originalnu i onu iz datoteke.

NAPOMENA:  Mo�ete tako�er u�itati ispis vanjske naredbe.  Npr,  :r !ls
           �e u�itati ispis  ls  naredbe i postaviti ispis liniju ispod
           kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 5 SA�ETAK


  1.  :!naredba  izvr�ava vanjsku naredbu.

      Korisni primjeri:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  pregled direktorija.
	  :!del DATOTEKA   :!rm DATOTEKA   -  bri�e datoteku DATOTEKA.

  2.  :w DATOTEKA  zapisuje trenuta�nu datoteku na disk sa imenom DATOTEKA.

  3.  v  pokret  :w IME_DATOTEKE  sprema vizualno ozna�ene linije u
      datoteku IME_DATOTEKE.

  4.  :r IME_DATOTEKE  u�itava datoteku IME_DATOTEKE sa diska i stavlja
      njen sadr�aj liniju ispod kursora.

  5.  :r !dir  u�itava ispis naredbe dir i postavlja sadr�aj ispisa liniju
      ispod kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcija 6.1: NAREDBA OTVORI


	** Pritisnite  o  kako bi otvorili liniju ispod kursora
	   i pre�li u Insert mod. **

  1. Pomaknite kursor na sljede�u liniju ozna�enu s --->.

  2. Otipkajte malo  o  kako bi otvorili novu liniju ISPOD kursora
     i pre�li u Insert mod.

  3. Otipkajte ne�to teksta i nakon toga pritisnite <ESC>
     kako bi napustili Insert mod.

---> Nakon �to pritisnete  o  kursor �e pre�i u novu liniju u Insert mod.

  4. Za otvaranje linije IZNAD kursora, otipkajte umjesto malog o veliko O ,
     Poku�ajte na donjoj liniji ozna�enoj s --->.

---> Otvorite liniju iznad ove - otipkajte O dok je kursor na ovoj liniji.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 6.2: NAREDBA DODAJ


	     ** Otipkajte  a  za dodavanje teksta IZA kursora. **

  1. Pomaknite kursor na po�etak sljede�e linije ozna�ene s --->.
  
  2. Tipkajte  e  dok se kursor ne nalazi na kraju  li .

  3. Otipkajte  a  (malo) kako bi dodali tekst IZA kursora.

  4. Dopunite rije� kao �to je na liniji ispod.
     Pritisnite <ESC> za izlaz iz Insert moda.

  5. Sa  e  prije�ite na sljede�u nepotpunu rije� i ponovite korake 3 i 4.
  
---> Ova li omogu�ava vje dodav teksta nekoj liniji.
---> Ova linija omogu�ava vje�banje dodavanja teksta nekoj liniji.

NAPOMENA:  Sa i, a, i  A  prelazite u isti Insert mod, jedina
           razlika je u poziciji od koje �e se tekst ubacivati.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.3: DRUGI NA�IN MIJENJANJA


      ** Otipkajte veliko  R  kako bi zamijelili vi�e od jednog znaka. **

  1. Pomaknite kursor na prvu sljede�u liniju ozna�enu s --->.
     Pomaknite kursor na po�etak prvog  xxx .

  2. Pritisnite  R  i otipkajte broj koji je liniju ispod,
     tako da zamijeni xxx .

  3. Pritisnite <ESC> za izlaz iz Replace moda.
     Primijetite da je ostatak linije ostao nepromjenjen.

  5. Ponovite korake kako bi zamijenili preostali xxx.

---> Zbrajanje: 123 plus xxx je xxx.
---> Zbrajanje: 123 plus 456 je 579.

NAPOMENA:  Replace mod je kao Insert mod, ali sa bitnom razlikom,
           svaki otipkani znak bri�e ve� postoje�i.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 6.4: KOPIRANJE I LIJEPLJENJE TEKSTA


    ** Koristite  y  operator za kopiranje a  p  za lijepljenje teksta. **

  1. Pomaknite kursor na liniju s --->  i postavite kursor nakon "a)".
  
  2. Pokrenite Visual mod sa  v  i pomaknite kursor sve do ispred "prva".
  
  3. Pritisnite  y  kako bi kopirali ozna�eni tekst.

  4. Pomaknite kursor do kraja sljede�e linije:  j$

  5. Pritisnite  p  kako bi zalijepili tekst.  Onda utipkajte:  druga <ESC> .

  6. Koristite Visual mod kako bi ozna�ili " linija.", kopirajte:  y , kursor
     postavite na kraj sljede�e linije:  j$  i ondje zalijepite tekst:  p .

--->  a) ovo je prva linija.
      b)

NAPOMENA:  mo�ete koristiti  y  kao operator;  yw   kopira jednu rije�.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.5: MIJENJANJE POSTAVKI


 ** Postavka: naredbe tra�enja i zamijene ne razlikuju VELIKA i mala slova **

  1. Potra�ite 'razlika' tipkanjem:   /razlika  <ENTER>
     Nekoliko puta ponovite pritiskanjem  n .

  2. Aktivirajte 'ic' (Ignore case) postavku:   :set ic

  3. Ponovno potra�ite 'razlika' tipkanjem  n
     Primijetite da su sada i RAZLIKA i Razlika prona�eni.

  4. Aktivirajte 'hlsearch' i 'incsearch' postavke:  :set hls is

  5. Otipkajte naredbu tra�enja i primijetite razlike:  /razlika <ENTER>

  6. Za deaktiviranje  ic  postavke koristite:  :set noic

NAPOMENA:  Za neozna�avanje prona�enih izraza otipkajte:   :nohlsearch
NAPOMENA:  Bez razlikovanja velikih i malih slova u samo jednoj naredbi
	   koristite  \c u izrazu:  /razlika\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 6 SA�ETAK

  1. Pritisnite  o  za otvaranje linije ISPOD kursora i prelazak u Insert mod.
     Pritisnite  O  za otvaranje linije IZNAD kursora.

  2. Pritisnite  a  za unos teksta IZA kursora.
     Pritisnite  A  za unos teksta na kraju linije.

  3. Naredba  e  pomi�e kursor na kraj rije�i.

  4. Operator  y  kopira tekst,  p  ga lijepi.

  5. Tipkanjem velikog  R  Vim prelazi u Replace mod dok ne pritisnete <ESC> .

  6. Tipkanjem ":set xxx" aktivira postavku "xxx".  Neke postavke su:
  	'ic' 'ignorecase'	ne razlikuje velika/mala slova pri tra�enju
	'is' 'incsearch'	tra�i nedovr�ene izraze
	'hls' 'hlsearch'	ozna�i sve prona�ene izraze
     Mo�ete koristite dugo ili kratko ime postavke.

  7. Prethodite "no" imenu postavke za deaktiviranje iste:   :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 7.1: DOBIVANJE POMO�I


		   ** Koristite on-line sustav pomo�i **

  Vim ima detaljan on-line sustav pomo�i.
  Za po�etak, poku�ajte jedno od sljede�eg:
	- pritisnite <HELP> tipku (ako je va�a tipkovnica ima)
	- pritisnite <F1> tipku (ako je va�a tipkovnica ima)
	- utipkajte   :help <ENTER>

  Pro�itajte tekst u prozoru pomo�i kako bi ste se znali slu�iti istom.
  Tipkanjem  CTRL-W CTRL-W   prelazite iz jednog prozora u drugi.
  Otipkajte    :q <ENTER>    kako bi zatvorili prozor pomo�i.

  Prona�i �e te pomo� o bilo kojoj temi, tako da dodate upit samoj
  ":help" naredbi.  Poku�ajte (ne zaboravite pritisnuti <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 7.2: PRAVLJENJE SKRIPTE


		       ** Aktivirajte Vim mogu�nosti **

  Vim ima mnogo vi�e alata od Vi-ja, ali ve�ina njih nije aktivirana.
  Kako bi mogli koristiti vi�e mogu�nosti napravite "vimrc" datoteku.

  1. Uredite "vimrc" datoteku.  Ovo ovisi o va�em sistemu:
	:e ~/.vimrc		za Unix
	:e $VIM/_vimrc		za MS-Windows

  2. Sada u�itajte primjer sadr�aja "vimrc" datoteke:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Sa�uvajte datoteku sa:
	:w

  Sljede�eg puta kada pokrenete Vim, bojanje sintakse teksta biti �e
  aktivirano. Sve va�e postavke mo�ete dodati u "vimrc" datoteku.
  Za vi�e informacija otipkajte  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 7.3: AUTOMATSKO DOVR�AVANJE


	** Dovr�avanje iz naredbene linije pomo�u CTRL-D i <TAB> **

  1. Provjerite da Vim nije u Vi modu:  :set nocp

  2. Pogledajte koje datoteke postoje u direktoriju:  :!ls   or  :!dir

  3. Otipkajte po�etak naredbe:  :e

  4. Tipkajte  CTRL-D  i prikazati �e se lista naredbi koje zapo�inju sa "e".

  5. Pritisnite <TAB>  i Vim �e dopuniti unos u naredbu ":edit".

  6. Dodajte razmak i po�etak datoteke:  :edit FIL

  7. Pritisnite <TAB>.  Vim �e nadopuniti ime datoteke (ako je jedinstveno).

NAPOMENA:  Mogu�e je dopuniti mnoge naredbe.  Koristite CTRL-D i <TAB>.
           Naro�ito je korisno za  :help  naredbe.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Lekcija 7 SA�ETAK


  1. Otipkajte  :help  ili pritisnite <F1> ili <Help>  za pomo�.

  2. Otipkajte  :help naredba  kako bi dobili pomo� za  naredba .

  3. Otipkajte  CTRL-W CTRL-W  za prelazak u drugi prozor

  4. Otipkajte  :q  kako bi zatvorili prozor pomo�i

  5. Napravite vimrc skriptu za podizanje kako bi u nju spremali
     va�e omiljene postavke.

  6. Kada tipkate naredbu koja zapo�inje sa  :
     pritisnite CTRL-D kako bi vidjeli mogu�e valjane vrijednosti.
     Pritisnite <TAB> kako bi odabrali jednu od njih.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Kraj.  Cilj priru�nika je da poka�e kratak pregled Vim editora, tek toliko
  da omogu�i njegovo kori�tenje. Priru�nik nije potpun jer Vim ima mnogo vi�e
  naredbi. Za vi�e informacija: ":help user-manual".

  Za �itanje i kori�tenje, preporu�amo:
	Vim - Vi Improved - by Steve Oualline
	Izdava�: New Riders
  Prva knjiga potpuno posve�ena Vim-u. Vrlo korisna za po�etnike.
  Sa mnogo primjera i slika.
  Posjetite http://iccf-holland.org/click5.html

  Sljede�a knjiga je ne�to starija i vi�e o Vi-u nego o Vim-u, preporu�amo:
	Learning the Vi Editor - by Linda Lamb
	Izdava�: O'Reilly & Associates Inc.
  Solidna knjiga, mo�ete saznati skoro sve �to mo�ete napraviti
  u Vi-u. �esto izdanje ima ne�to informacija i o Vim-u.

  Ovaj priru�nik su napisali: Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines koriste�i ideje Charles Smith,
  Colorado State University.  E-po�ta: bware@mines.colorado.edu.

  Naknadne promjene napravio je Bram Moolenaar.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Preveo na hrvatski: Paul B. Mahol <onemda@gmail.com>
  Preinaka 1.42, Lipanj 2008


PK�j�ZLD��߁߁vim80/tutor/tutornu�[���===============================================================================
=    W e l c o m e   t o   t h e   V I M   T u t o r    -    Version 1.7      =
===============================================================================

     Vim is a very powerful editor that has many commands, too many to
     explain in a tutor such as this.  This tutor is designed to describe
     enough of the commands that you will be able to easily use Vim as
     an all-purpose editor.

     The approximate time required to complete the tutor is 25-30 minutes,
     depending upon how much time is spent with experimentation.

     ATTENTION:
     The commands in the lessons will modify the text.  Make a copy of this
     file to practice on (if you started "vimtutor" this is already a copy).

     It is important to remember that this tutor is set up to teach by
     use.  That means that you need to execute the commands to learn them
     properly.  If you only read the text, you will forget the commands!

     Now, make sure that your Caps-Lock key is NOT depressed and press
     the   j   key enough times to move the cursor so that Lesson 1.1
     completely fills the screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 1.1:  MOVING THE CURSOR


   ** To move the cursor, press the h,j,k,l keys as indicated. **
	     ^
	     k		    Hint:  The h key is at the left and moves left.
       < h	 l >		   The l key is at the right and moves right.
	     j			   The j key looks like a down arrow.
	     v
  1. Move the cursor around the screen until you are comfortable.

  2. Hold down the down key (j) until it repeats.
     Now you know how to move to the next lesson.

  3. Using the down key, move to Lesson 1.2.

NOTE: If you are ever unsure about something you typed, press <ESC> to place
      you in Normal mode.  Then retype the command you wanted.

NOTE: The cursor keys should also work.  But using hjkl you will be able to
      move around much faster, once you get used to it.  Really!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lesson 1.2: EXITING VIM


  !! NOTE: Before executing any of the steps below, read this entire lesson!!

  1. Press the <ESC> key (to make sure you are in Normal mode).

  2. Type:	:q! <ENTER>.
     This exits the editor, DISCARDING any changes you have made.

  3. Get back here by executing the command that got you into this tutor. That
     might be:  vimtutor <ENTER>

  4. If you have these steps memorized and are confident, execute steps
     1 through 3 to exit and re-enter the editor.

NOTE:  :q! <ENTER>  discards any changes you made.  In a few lessons you
       will learn how to save the changes to a file.

  5. Move the cursor down to Lesson 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 1.3: TEXT EDITING - DELETION


	   ** Press  x  to delete the character under the cursor. **

  1. Move the cursor to the line below marked --->.

  2. To fix the errors, move the cursor until it is on top of the
     character to be deleted.

  3. Press the	x  key to delete the unwanted character.

  4. Repeat steps 2 through 4 until the sentence is correct.

---> The ccow jumpedd ovverr thhe mooon.

  5. Now that the line is correct, go on to Lesson 1.4.

NOTE: As you go through this tutor, do not try to memorize, learn by usage.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 1.4: TEXT EDITING - INSERTION


			** Press  i  to insert text. **

  1. Move the cursor to the first line below marked --->.

  2. To make the first line the same as the second, move the cursor on top
     of the first character AFTER where the text is to be inserted.

  3. Press  i  and type in the necessary additions.

  4. As each error is fixed press <ESC> to return to Normal mode.
     Repeat steps 2 through 4 to correct the sentence.

---> There is text misng this .
---> There is some text missing from this line.

  5. When you are comfortable inserting text move to lesson 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 1.5: TEXT EDITING - APPENDING


			** Press  A  to append text. **

  1. Move the cursor to the first line below marked --->.
     It does not matter on what character the cursor is in that line.

  2. Press  A  and type in the necessary additions.

  3. As the text has been appended press <ESC> to return to Normal mode.

  4. Move the cursor to the second line marked ---> and repeat 
     steps 2 and 3 to correct this sentence.

---> There is some text missing from th
     There is some text missing from this line.
---> There is also some text miss
     There is also some text missing here.

  5. When you are comfortable appending text move to lesson 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 1.6: EDITING A FILE

		    ** Use  :wq  to save a file and exit. **

  !! NOTE: Before executing any of the steps below, read this entire lesson!!

  1. Exit this tutor as you did in lesson 1.2:  :q!
     Or, if you have access to another terminal, do the following there.

  2. At the shell prompt type this command:  vim tutor <ENTER>
     'vim' is the command to start the Vim editor, 'tutor' is the name of the
     file you wish to edit.  Use a file that may be changed.

  3. Insert and delete text as you learned in the previous lessons.

  4. Save the file with changes and exit Vim with:  :wq  <ENTER>

  5. If you have quit vimtutor in step 1 restart the vimtutor and move down to
     the following summary.

  6. After reading the above steps and understanding them: do it.
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 1 SUMMARY


  1. The cursor is moved using either the arrow keys or the hjkl keys.
	 h (left)	j (down)       k (up)	    l (right)

  2. To start Vim from the shell prompt type:  vim FILENAME <ENTER>

  3. To exit Vim type:	   <ESC>   :q!	 <ENTER>  to trash all changes.
	     OR type:	   <ESC>   :wq	 <ENTER>  to save the changes.

  4. To delete the character at the cursor type:  x

  5. To insert or append text type:
	 i   type inserted text   <ESC>		insert before the cursor
	 A   type appended text   <ESC>         append after the line

NOTE: Pressing <ESC> will place you in Normal mode or will cancel
      an unwanted and partially completed command.

Now continue with Lesson 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 2.1: DELETION COMMANDS


		       ** Type  dw  to delete a word. **

  1. Press  <ESC>  to make sure you are in Normal mode.

  2. Move the cursor to the line below marked --->.

  3. Move the cursor to the beginning of a word that needs to be deleted.

  4. Type   dw	 to make the word disappear.

  NOTE: The letter  d  will appear on the last line of the screen as you type
	it.  Vim is waiting for you to type  w .  If you see another character
	than  d  you typed something wrong; press  <ESC>  and start over.

---> There are a some words fun that don't belong paper in this sentence.

  5. Repeat steps 3 and 4 until the sentence is correct and go to Lesson 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 2.2: MORE DELETION COMMANDS


	   ** Type  d$	to delete to the end of the line. **

  1. Press  <ESC>  to make sure you are in Normal mode.

  2. Move the cursor to the line below marked --->.

  3. Move the cursor to the end of the correct line (AFTER the first . ).

  4. Type    d$    to delete to the end of the line.

---> Somebody typed the end of this line twice. end of this line twice.


  5. Move on to Lesson 2.3 to understand what is happening.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.3: ON OPERATORS AND MOTIONS


  Many commands that change text are made from an operator and a motion.
  The format for a delete command with the  d  delete operator is as follows:

  	d   motion

  Where:
    d      - is the delete operator.
    motion - is what the operator will operate on (listed below).

  A short list of motions:
    w - until the start of the next word, EXCLUDING its first character.
    e - to the end of the current word, INCLUDING the last character.
    $ - to the end of the line, INCLUDING the last character.

  Thus typing  de  will delete from the cursor to the end of the word.

NOTE:  Pressing just the motion while in Normal mode without an operator will
       move the cursor as specified.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.4: USING A COUNT FOR A MOTION


   ** Typing a number before a motion repeats it that many times. **

  1. Move the cursor to the start of the line marked ---> below.

  2. Type  2w  to move the cursor two words forward.

  3. Type  3e  to move the cursor to the end of the third word forward.

  4. Type  0  (zero) to move to the start of the line.

  5. Repeat steps 2 and 3 with different numbers.

---> This is just a line with words you can move around in.

  6. Move on to Lesson 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.5: USING A COUNT TO DELETE MORE


   ** Typing a number with an operator repeats it that many times. **

  In the combination of the delete operator and a motion mentioned above you
  insert a count before the motion to delete more:
	 d   number   motion

  1. Move the cursor to the first UPPER CASE word in the line marked --->.

  2. Type  d2w  to delete the two UPPER CASE words

  3. Repeat steps 1 and 2 with a different count to delete the consecutive
     UPPER CASE words with one command

--->  this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 2.6: OPERATING ON LINES


		   ** Type  dd   to delete a whole line. **

  Due to the frequency of whole line deletion, the designers of Vi decided
  it would be easier to simply type two d's to delete a line.

  1. Move the cursor to the second line in the phrase below.
  2. Type  dd  to delete the line.
  3. Now move to the fourth line.
  4. Type   2dd   to delete two lines.

--->  1)  Roses are red,
--->  2)  Mud is fun,
--->  3)  Violets are blue,
--->  4)  I have a car,
--->  5)  Clocks tell time,
--->  6)  Sugar is sweet
--->  7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 2.7: THE UNDO COMMAND


   ** Press  u	to undo the last commands,   U  to fix a whole line. **

  1. Move the cursor to the line below marked ---> and place it on the
     first error.
  2. Type  x  to delete the first unwanted character.
  3. Now type  u  to undo the last command executed.
  4. This time fix all the errors on the line using the  x  command.
  5. Now type a capital  U  to return the line to its original state.
  6. Now type  u  a few times to undo the  U  and preceding commands.
  7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times
     to redo the commands (undo the undo's).

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. These are very useful commands.  Now move on to the Lesson 2 Summary.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 2 SUMMARY


  1. To delete from the cursor up to the next word type:    dw
  2. To delete from the cursor to the end of a line type:    d$
  3. To delete a whole line type:    dd

  4. To repeat a motion prepend it with a number:   2w
  5. The format for a change command is:
               operator   [number]   motion
     where:
       operator - is what to do, such as  d  for delete
       [number] - is an optional count to repeat the motion
       motion   - moves over the text to operate on, such as  w (word),
		  $ (to the end of line), etc.

  6. To move to the start of the line use a zero:  0

  7. To undo previous actions, type: 	       u  (lowercase u)
     To undo all the changes on a line, type:  U  (capital U)
     To undo the undo's, type:		       CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 3.1: THE PUT COMMAND


       ** Type	p  to put previously deleted text after the cursor. **

  1. Move the cursor to the first ---> line below.

  2. Type  dd  to delete the line and store it in a Vim register.

  3. Move the cursor to the c) line, ABOVE where the deleted line should go.

  4. Type   p   to put the line below the cursor.

  5. Repeat steps 2 through 4 to put all the lines in correct order.

---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 3.2: THE REPLACE COMMAND


       ** Type  rx  to replace the character at the cursor with  x . **

  1. Move the cursor to the first line below marked --->.

  2. Move the cursor so that it is on top of the first error.

  3. Type   r	and then the character which should be there.

  4. Repeat steps 2 and 3 until the first line is equal to the second one.

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Now move on to Lesson 3.3.

NOTE: Remember that you should be learning by doing, not memorization.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 3.3: THE CHANGE OPERATOR


	   ** To change until the end of a word, type  ce . **

  1. Move the cursor to the first line below marked --->.

  2. Place the cursor on the  u  in  lubw.

  3. Type  ce  and the correct word (in this case, type  ine ).

  4. Press <ESC> and move to the next character that needs to be changed.

  5. Repeat steps 3 and 4 until the first sentence is the same as the second.

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

Notice that  ce  deletes the word and places you in Insert mode.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 3.4: MORE CHANGES USING c


     ** The change operator is used with the same motions as delete. **

  1. The change operator works in the same way as delete.  The format is:

         c    [number]   motion

  2. The motions are the same, such as   w (word) and  $ (end of line).

  3. Move to the first line below marked --->.

  4. Move the cursor to the first error.

  5. Type  c$  and type the rest of the line like the second and press <ESC>.

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.

NOTE:  You can use the Backspace key to correct mistakes while typing.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 3 SUMMARY


  1. To put back text that has just been deleted, type   p .  This puts the
     deleted text AFTER the cursor (if a line was deleted it will go on the
     line below the cursor).

  2. To replace the character under the cursor, type   r   and then the
     character you want to have there.

  3. The change operator allows you to change from the cursor to where the
     motion takes you.  eg. Type  ce  to change from the cursor to the end of
     the word,  c$  to change to the end of a line.

  4. The format for change is:

	 c   [number]   motion

Now go on to the next lesson.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lesson 4.1: CURSOR LOCATION AND FILE STATUS

  ** Type CTRL-G to show your location in the file and the file status.
     Type  G  to move to a line in the file. **

  NOTE: Read this entire lesson before executing any of the steps!!

  1. Hold down the Ctrl key and press  g .  We call this CTRL-G.
     A message will appear at the bottom of the page with the filename and the
     position in the file.  Remember the line number for Step 3.

NOTE:  You may see the cursor position in the lower right corner of the screen
       This happens when the 'ruler' option is set (see  :help 'ruler'  )

  2. Press  G  to move you to the bottom of the file.
     Type  gg  to move you to the start of the file.

  3. Type the number of the line you were on and then  G .  This will
     return you to the line you were on when you first pressed CTRL-G.

  4. If you feel confident to do this, execute steps 1 through 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 4.2: THE SEARCH COMMAND


     ** Type  /  followed by a phrase to search for the phrase. **

  1. In Normal mode type the  /  character.  Notice that it and the cursor
     appear at the bottom of the screen as with the  :	command.

  2. Now type 'errroor' <ENTER>.  This is the word you want to search for.

  3. To search for the same phrase again, simply type  n .
     To search for the same phrase in the opposite direction, type  N .

  4. To search for a phrase in the backward direction, use  ?  instead of  / .

  5. To go back to where you came from press  CTRL-O  (Keep Ctrl down while
     pressing the letter o).  Repeat to go back further.  CTRL-I goes forward.

--->  "errroor" is not the way to spell error;  errroor is an error.
NOTE: When the search reaches the end of the file it will continue at the
      start, unless the 'wrapscan' option has been reset.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lesson 4.3: MATCHING PARENTHESES SEARCH


	      ** Type  %  to find a matching ),], or } . **

  1. Place the cursor on any (, [, or { in the line below marked --->.

  2. Now type the  %  character.

  3. The cursor will move to the matching parenthesis or bracket.

  4. Type  %  to move the cursor to the other matching bracket.

  5. Move the cursor to another (,),[,],{ or } and see what  %  does.

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))


NOTE: This is very useful in debugging a program with unmatched parentheses!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 4.4: THE SUBSTITUTE COMMAND


	** Type  :s/old/new/g  to substitute 'new' for 'old'. **

  1. Move the cursor to the line below marked --->.

  2. Type  :s/thee/the <ENTER> .  Note that this command only changes the
     first occurrence of "thee" in the line.

  3. Now type  :s/thee/the/g .  Adding the  g  flag means to substitute
     globally in the line, change all occurrences of "thee" in the line.

---> thee best time to see thee flowers is in thee spring.

  4. To change every occurrence of a character string between two lines,
     type   :#,#s/old/new/g    where #,# are the line numbers of the range
                               of lines where the substitution is to be done.
     Type   :%s/old/new/g      to change every occurrence in the whole file.
     Type   :%s/old/new/gc     to find every occurrence in the whole file,
     			       with a prompt whether to substitute or not.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 4 SUMMARY


  1. CTRL-G  displays your location in the file and the file status.
             G  moves to the end of the file.
     number  G  moves to that line number.
            gg  moves to the first line.

  2. Typing  /	followed by a phrase searches FORWARD for the phrase.
     Typing  ?	followed by a phrase searches BACKWARD for the phrase.
     After a search type  n  to find the next occurrence in the same direction
     or  N  to search in the opposite direction.
     CTRL-O takes you back to older positions, CTRL-I to newer positions.

  3. Typing  %	while the cursor is on a (,),[,],{, or } goes to its match.

  4. To substitute new for the first old in a line type    :s/old/new
     To substitute new for all 'old's on a line type	   :s/old/new/g
     To substitute phrases between two line #'s type	   :#,#s/old/new/g
     To substitute all occurrences in the file type	   :%s/old/new/g
     To ask for confirmation each time add 'c'		   :%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lesson 5.1: HOW TO EXECUTE AN EXTERNAL COMMAND


   ** Type  :!	followed by an external command to execute that command. **

  1. Type the familiar command	:  to set the cursor at the bottom of the
     screen.  This allows you to enter a command-line command.

  2. Now type the  !  (exclamation point) character.  This allows you to
     execute any external shell command.

  3. As an example type   ls   following the ! and then hit <ENTER>.  This
     will show you a listing of your directory, just as if you were at the
     shell prompt.  Or use  :!dir  if ls doesn't work.

NOTE:  It is possible to execute any external command this way, also with
       arguments.

NOTE:  All  :  commands must be finished by hitting <ENTER>
       From here on we will not always mention it.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 5.2: MORE ON WRITING FILES


     ** To save the changes made to the text, type  :w FILENAME. **

  1. Type  :!dir  or  :!ls  to get a listing of your directory.
     You already know you must hit <ENTER> after this.

  2. Choose a filename that does not exist yet, such as TEST.

  3. Now type:	 :w TEST   (where TEST is the filename you chose.)

  4. This saves the whole file (the Vim Tutor) under the name TEST.
     To verify this, type    :!dir  or  :!ls   again to see your directory.

NOTE: If you were to exit Vim and start it again with  vim TEST , the file
      would be an exact copy of the tutor when you saved it.

  5. Now remove the file by typing (MS-DOS):    :!del TEST
				or (Unix):	:!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lesson 5.3: SELECTING TEXT TO WRITE


	** To save part of the file, type  v  motion  :w FILENAME **

  1. Move the cursor to this line.

  2. Press  v  and move the cursor to the fifth item below.  Notice that the
     text is highlighted.

  3. Press the  :  character.  At the bottom of the screen  :'<,'> will appear.

  4. Type  w TEST  , where TEST is a filename that does not exist yet.  Verify
     that you see  :'<,'>w TEST  before you press <ENTER>.

  5. Vim will write the selected lines to the file TEST.  Use  :!dir  or  :!ls
     to see it.  Do not remove it yet!  We will use it in the next lesson.

NOTE:  Pressing  v  starts Visual selection.  You can move the cursor around
       to make the selection bigger or smaller.  Then you can use an operator
       to do something with the text.  For example,  d  deletes the text.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lesson 5.4: RETRIEVING AND MERGING FILES


       ** To insert the contents of a file, type  :r FILENAME  **

  1. Place the cursor just above this line.

NOTE:  After executing Step 2 you will see text from Lesson 5.3.  Then move
       DOWN to see this lesson again.

  2. Now retrieve your TEST file using the command   :r TEST   where TEST is
     the name of the file you used.
     The file you retrieve is placed below the cursor line.

  3. To verify that a file was retrieved, cursor back and notice that there
     are now two copies of Lesson 5.3, the original and the file version.

NOTE:  You can also read the output of an external command.  For example,
       :r !ls  reads the output of the ls command and puts it below the
       cursor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 5 SUMMARY


  1.  :!command  executes an external command.

      Some useful examples are:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  shows a directory listing.
	  :!del FILENAME   :!rm FILENAME   -  removes file FILENAME.

  2.  :w FILENAME  writes the current Vim file to disk with name FILENAME.

  3.  v  motion  :w FILENAME  saves the Visually selected lines in file
      FILENAME.

  4.  :r FILENAME  retrieves disk file FILENAME and puts it below the
      cursor position.

  5.  :r !dir  reads the output of the dir command and puts it below the
      cursor position.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lesson 6.1: THE OPEN COMMAND


 ** Type  o  to open a line below the cursor and place you in Insert mode. **

  1. Move the cursor to the line below marked --->.

  2. Type the lowercase letter  o  to open up a line BELOW the cursor and place
     you in Insert mode.

  3. Now type some text and press <ESC> to exit Insert mode.

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. To open up a line ABOVE the cursor, simply type a capital	O , rather
     than a lowercase  o.  Try this on the line below.

---> Open up a line above this by typing O while the cursor is on this line.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 6.2: THE APPEND COMMAND


	     ** Type  a  to insert text AFTER the cursor. **

  1. Move the cursor to the start of the line below marked --->.
  
  2. Press  e  until the cursor is on the end of  li .

  3. Type an  a  (lowercase) to append text AFTER the cursor.

  4. Complete the word like the line below it.  Press <ESC> to exit Insert
     mode.

  5. Use  e  to move to the next incomplete word and repeat steps 3 and 4.
  
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

NOTE:  a, i and A all go to the same Insert mode, the only difference is where
       the characters are inserted.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lesson 6.3: ANOTHER WAY TO REPLACE


      ** Type a capital  R  to replace more than one character. **

  1. Move the cursor to the first line below marked --->.  Move the cursor to
     the beginning of the first  xxx .

  2. Now press  R  and type the number below it in the second line, so that it
     replaces the xxx .

  3. Press <ESC> to leave Replace mode.  Notice that the rest of the line
     remains unmodified.

  4. Repeat the steps to replace the remaining xxx.

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

NOTE:  Replace mode is like Insert mode, but every typed character deletes an
       existing character.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lesson 6.4: COPY AND PASTE TEXT


	  ** Use the  y  operator to copy text and  p  to paste it **

  1. Go to the line marked with ---> below and place the cursor after "a)".
  
  2. Start Visual mode with  v  and move the cursor to just before "first".
  
  3. Type  y  to yank (copy) the highlighted text.

  4. Move the cursor to the end of the next line:  j$

  5. Type  p  to put (paste) the text.  Then type:  a second <ESC> .

  6. Use Visual mode to select " item.", yank it with  y , move to the end of
     the next line with  j$  and put the text there with  p .

--->  a) this is the first item.
      b)

  NOTE: you can also use  y  as an operator;  yw  yanks one word.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lesson 6.5: SET OPTION


	  ** Set an option so a search or substitute ignores case **

  1. Search for 'ignore' by entering:   /ignore  <ENTER>
     Repeat several times by pressing  n .

  2. Set the 'ic' (Ignore case) option by entering:   :set ic

  3. Now search for 'ignore' again by pressing  n
     Notice that Ignore and IGNORE are now also found.

  4. Set the 'hlsearch' and 'incsearch' options:  :set hls is

  5. Now type the search command again and see what happens:  /ignore <ENTER>

  6. To disable ignoring case enter:  :set noic

NOTE:  To remove the highlighting of matches enter:   :nohlsearch 
NOTE:  If you want to ignore case for just one search command, use  \c
       in the phrase:  /ignore\c  <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 6 SUMMARY

  1. Type  o  to open a line BELOW the cursor and start Insert mode.
     Type  O  to open a line ABOVE the cursor.

  2. Type  a  to insert text AFTER the cursor.
     Type  A  to insert text after the end of the line.

  3. The  e  command moves to the end of a word.

  4. The  y  operator yanks (copies) text,  p  puts (pastes) it.

  5. Typing a capital  R  enters Replace mode until  <ESC>  is pressed.

  6. Typing ":set xxx" sets the option "xxx".  Some options are:
  	'ic' 'ignorecase'	ignore upper/lower case when searching
	'is' 'incsearch'	show partial matches for a search phrase
	'hls' 'hlsearch'	highlight all matching phrases
     You can either use the long or the short option name.

  7. Prepend "no" to switch an option off:   :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 7.1: GETTING HELP


		      ** Use the on-line help system **

  Vim has a comprehensive on-line help system.  To get started, try one of
  these three:
	- press the <HELP> key (if you have one)
	- press the <F1> key (if you have one)
	- type   :help <ENTER>

  Read the text in the help window to find out how the help works.
  Type  CTRL-W CTRL-W   to jump from one window to another.
  Type    :q <ENTER>    to close the help window.

  You can find help on just about any subject, by giving an argument to the
  ":help" command.  Try these (don't forget pressing <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lesson 7.2: CREATE A STARTUP SCRIPT


			  ** Enable Vim features **

  Vim has many more features than Vi, but most of them are disabled by
  default.  To start using more features you have to create a "vimrc" file.

  1. Start editing the "vimrc" file.  This depends on your system:
	:e ~/.vimrc		for Unix
	:e $VIM/_vimrc		for MS-Windows

  2. Now read the example "vimrc" file contents:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Write the file with:
	:w

  The next time you start Vim it will use syntax highlighting.
  You can add all your preferred settings to this "vimrc" file.
  For more information type  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     Lesson 7.3: COMPLETION


	      ** Command line completion with CTRL-D and <TAB> **

  1. Make sure Vim is not in compatible mode:  :set nocp

  2. Look what files exist in the directory:  :!ls   or  :!dir

  3. Type the start of a command:  :e

  4. Press  CTRL-D  and Vim will show a list of commands that start with "e".

  5. Press <TAB>  and Vim will complete the command name to ":edit".

  6. Now add a space and the start of an existing file name:  :edit FIL

  7. Press <TAB>.  Vim will complete the name (if it is unique).

NOTE:  Completion works for many commands.  Just try pressing CTRL-D and
       <TAB>.  It is especially useful for  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lesson 7 SUMMARY


  1. Type  :help  or press <F1> or <Help>  to open a help window.

  2. Type  :help cmd  to find help on  cmd .

  3. Type  CTRL-W CTRL-W  to jump to another window

  4. Type  :q  to close the help window

  5. Create a vimrc startup script to keep your preferred settings.

  6. When typing a  :  command, press CTRL-D to see possible completions.
     Press <TAB> to use one completion.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  This concludes the Vim Tutor.  It was intended to give a brief overview of
  the Vim editor, just enough to allow you to use the editor fairly easily.
  It is far from complete as Vim has many many more commands.  Read the user
  manual next: ":help user-manual".

  For further reading and studying, this book is recommended:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
  The first book completely dedicated to Vim.  Especially useful for beginners.
  There are many examples and pictures.
  See http://iccf-holland.org/click5.html

  This book is older and more about Vi than Vim, but also recommended:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
  It is a good book to get to know almost anything you want to do with Vi.
  The sixth edition also includes information on Vim.

  This tutorial was written by Michael C. Pierce and Robert K. Ware,
  Colorado School of Mines using ideas supplied by Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Modified for Vim by Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�I9��vim80/tutor/tutor.ru.utf-8nu�[���===============================================================================
=   Д о б р о   п о ж а л о в а т ь   в   у ч е б н и к   VIM  --  версия 1.7 =
===============================================================================

     Vim -- это очень мощный редактор, имеющий множество команд, слишком много
     для того, чтобы их все можно было описать в таком учебнике, как этот.
     Этот учебник призван объяснить достаточное число команд для того, чтобы
     вы могли с лёгкостью использовать Vim в качестве редактора общего
     назначения.

     Вам потребуется приблизительно 25-30 минут на освоение данного учебника в
     зависимости от того, сколько времени вы потратите на эксперименты.

     Внимание! Командами в уроках вы будете изменять этот текст. Создайте
     копию этого файла, чтобы попрактиковаться на ней (если вы запустили
     "vimtutor", то это уже копия).

     Важно помнить, что этот учебник предназначен для обучения в процессе
     использования. Это означает, что вы должны запускать команды для того,
     чтобы как следует их изучить. Если вы просто прочитаете этот текст, то
     не запомните команды!

     Теперь убедитесь в том, что клавиша CapsLock не включена, и нажмите
     клавишу  j  несколько раз, так, чтобы Урок 1.1 полностью поместился на
     экране.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 1.1:  ПЕРЕМЕЩЕНИЕ КУРСОРА


** Для перемещения курсора нажмите клавиши h,j,k,l так, как показано ниже. **
	     ^
	     k		Советы:	Клавиша h находится слева и перемещает влево.
       < h	 l >		Клавиша l находится справа и перемещает вправо.
	     j			Клавиша j похожа на стрелку `вниз'.
	     v
  1. Подвигайте курсор по экрану, пока не почувствуете себя уверенно.

  2. Надавите клавишу `вниз' (j) пока она не начнёт повторяться.
     Теперь вы знаете, как перейти к следующему уроку.

  3. Используя клавишу `вниз' перейдите к Уроку 1.2.

Замечание! Если вы пока не уверены в том, что набираете, нажмите <ESC> для
	перехода в обычный режим (Normal mode). После этого перенаберите
	требуемую команду.

Замечание! Обычные клавиши управления курсором (стрелки) также должны
	работать. Однако, клавиши hjkl позволят вам перемещаться
	значительно быстрее, как только вы научитесь ими пользоваться.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 1.2: ЗАВЕРШЕНИЕ РАБОТЫ С VIM


  !! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите
			       урок целиком !!

  1. Нажмите клавишу <ESC> (для того, чтобы удостовериться, что вы в обычном
     режиме (Normal mode)).

  2. Наберите:			:q! <ENTER>.
     (Это означает, что вы должны набрать три символа :q! и нажать клавишу
     ввод.) Это позволит вам выйти из редактора БЕЗ СОХРАНЕНИЯ любых сделанных
     изменений.

  3. Когда вы увидите приглашение командной оболочки, наберите команду,
     которая привела вас в этот учебник. Это может быть:
				vimtutor <ENTER>

  4. Если вы уверены в том, что запомнили эти шаги, выполните шаги от 1 до 3
     чтобы выйти и снова запустить редактор.

Замечание!  :q! <ENTER>  отбрасывает любые сделанные вами изменения. Через
	несколько уроков вы узнаете как сохранять изменения в файл.

  5. Переместите курсор вниз к Уроку 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Урок 1.3: РЕДАКТИРОВАНИЕ ТЕКСТА -- УДАЛЕНИЕ


** Находясь в обычном режиме нажмите  x  для удаления символа под курсором. **

  1. Переместите курсор к строке ниже, помеченной --->.

  2. Для исправления ошибок, переместите курсор, пока он не окажется над
     удаляемым символом.

  3. Нажмите клавишу  x  для удаления требуемого символа.

  4. Повторите шаги со 2 по 4 пока строка не будет исправлена.

---> От тттопота копытт пппыль ппо ппполю леттитт.

  5. Теперь, когда строка откорректирована, переходите к Уроку 1.4.

Замечание! В ходе освоения этого учебника не пытайтесь запоминать, учите
	в процессе использования.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Урок 1.4: РЕДАКТИРОВАНИЕ ТЕКСТА -- ВСТАВКА


       ** Находясь в обычном режиме, нажмите  i  для вставки текста. **

  1. Переместите курсор к первой строке ниже, помеченной --->.

  2. Для того, чтобы сделать первую строку идентичной второй, поместите
     курсор на символ ПЕРЕД которым следует вставить текст.

  3. Нажмите  i  и наберите требуемые добавления.

  4. После исправления всех ошибок нажмите <ESC> для возврата в обычный режим.
     Повторите шаги со 2 по 4, пока фраза не будет исправлена полностью.

---> Часть текста в строке бесследно .
---> Часть текста в этой строке бесследно пропала.

  5. Когда освоите вставку текста, переходите к Уроку 1.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Урок 1.5: РЕДАКТИРОВАНИЕ ТЕКСТА -- ДОБАВЛЕНИЕ


     ** Находясь в обычном режиме, нажмите  A  для добавления текста. **

  1. Переместите курсор к первой строке ниже, помеченной --->.
     Не имеет значения на каком символе расположен курсор на этой строке.

  2. Нажмите  A  и наберите требуемые добавления.

  3. После добавления требуемого текста нажмите <ESC> для возврата в обычный
     режим.

  4. Переместите курсор на следующую строку, помеченную ---> и повторите шаги
     со 2 по 4 для исправления этой строки.

---> Часть текста в этой строке бессле
     Часть текста в этой строке бесследно пропала.
---> Здесь также не достаёт час
     Здесь также не достаёт части текста.

  5. Когда освоите добавление текста, переходите к Уроку 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 1.6: РЕДАКТИРОВАНИЕ ФАЙЛА


	** Используйте  :wq  для сохранения файла и выхода из Vim. **

  !! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите
			       урок целиком !!

  1. Выйдите из Vim, как вы это узнали в Уроке 1.2:  :q!
     Или, если у вас есть доступ к другому терминалу, можете сделать следующее
     в нём.

  2. По приглашению командной оболочки введите следующую команду:
			      vim tutor <ENTER>
     `vim' -- команда для запуска редактора Vim, а `tutor' -- имя файла для
     редактирования. Используете имя файла, который можно изменять.

  3. Вставляйте и удаляйте текст, как вы научились в предыдущих уроках.

  4. Сохраните файл с изменениями и выйдите из Vim выполнив:  :wq <ENTER>

  5. Если вы вышли из vimtutor на шаге 1, перезапустите vimtutor и переходите
     к следующему Резюме.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 1


  1. Курсор перемещается либо клавишами со стрелками, либо клавишами hjkl.
	h (влево)	j (вниз)	k (вверх)	l (вправо)

  2. Для запуска Vim (из приглашения командной оболочки) наберите:
			    vim ИМЯ_ФАЙЛА <ENTER>

  3. Для завершения работы с Vim наберите:
	<ESC>   :q!   <ENTER>  чтобы отказаться от сохранения изменений.
     Или наберите:
	<ESC>   :wq   <ENTER>  чтобы сохранить изменения.

  4. Для удаления символа под курсором в обычном режиме, нажмите:  x

  5. Чтобы вставить текст перед курсором в обычном режиме, наберите:
	 i   вводите вставляемый текст   <ESC>
     Чтобы добавить текст после курсора:
	 a   вводите добавляемый текст   <ESC>

Замечание! Нажатие <ESC> переместит вас в обычный режим (Normal mode) либо
	прервёт нежелательную и частично завершённую команду.

Теперь переходите к Уроку 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 2.1: КОМАНДЫ УДАЛЕНИЯ


       ** Наберите  dw  для удаления участка текста до конца слова. **

  1. Нажмите <ESC>, чтобы перейти в обычный режим.

  2. Переместите курсор вниз, к строке помеченной --->.

  3. Переместите курсор в начало слова, которое следует удалить.

  4. Наберите  dw  для удаления этого слова.

Замечание! Во время набора буквы dw появятся справа в самой нижней строке
	экрана. Если вы что-то наберёте неправильно, нажмите <ESC> и начните
	сначала.

---> Несколько слов рафинад в этом предложении автокран излишни.

  5. Повторите шаги 3 и 4, пока не исправите все ошибки и переходите к
     Уроку 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Урок 2.2: ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ УДАЛЕНИЯ


	   ** Наберите  d$  для удаления текста до конца строки. **

  1. Нажмите <ESC>, чтобы перейти в обычный режим.

  2. Переместите курсор вниз, к строке помеченной --->.

  3. Переместите курсор к концу правильной строки (ПОСЛЕ первой точки).

  4. Наберите  d$  для удаления остатка строки.

---> Кто-то набрал окончание этой строки дважды. окончание этой строки дважды.


  5. Чтобы лучше разобраться в том, как это происходит, переходите к Уроку 2.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Урок 2.3: КОМАНДЫ И ОБЪЕКТЫ


  Многие команды, изменяющие текст, состоят из оператора и объекта. Формат
  команды удаления с оператором  d  следующий:

  	d   объект

  Здесь:
    d      - оператор удаления.
    объект - над чем должна быть выполнена команда (перечислено ниже).

  Краткий список объектов:
    w - от курсора до конца слова, включая последующий пробел.
    e - от курсора до конца слова, НЕ включая последующий пробел.
    $ - от курсора до конца строки.
    ^ - от курсора до начала строки.

Замечание! Простое нажатие на символ объекта в обычном режиме (Normal mode)
	без предварительного оператора переместит курсор так, как указано
	в списке объектов.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Урок 2.4: ИСПОЛЬЗОВАНИЕ СЧЁТЧИКА ДЛЯ ПЕРЕМЕЩЕНИЯ


      ** Ввод числа перед оператором перемещения приведёт к его повторению
			  заданное количество раз. **

  1. Переместите курсор к началу строки отмеченной ---> ниже.

  2. Наберите  2w  для перемещения курсора вперёд к началу второго слова.

  3. Наберите  3e  для перемещения курсора вперёд к концу третьего слова.

  4. Наберите  0  (нуль) для перемещения к началу строки.

  5. Повторите шаги 2 и 3 с различными числами.

---> Обычная строка из слов для вашего перемещения по ней.

  6. Переходите к Уроку 2.5.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Урок 2.5: ИСПОЛЬЗОВАНИЕ СЧЁТЧИКА ДЛЯ УДАЛЕНИЯ


	    ** Ввод числа перед оператором приведёт к его повторению
			  заданное количество раз. **

  Добавьте число перед перед объектом в комбинацию оператора удаления и
  перемещения указанную выше для удаления указанного количества объектов:
	 d   число   объект

  1. Переместите курсор к первому слову из прописных букв в отмеченной --->
     строке ниже.

  2. Наберите  d2w  для удаления двух слов из прописных букв.

  3. Повторите шаги 1 и 2 с другими числами для удаления последовательных слов
     из прописных букв одной командой.

---> эта АБВ ГД строка ЕЖЗИ КЛ МНО из слов П РС ТУФ очищена.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 2.6: ОПЕРАЦИИ СО СТРОКАМИ


		** Наберите   dd   для удаления целой строки. **

  В связи с частой необходимостью удаления целой строки, создатели Vi решили
  для упрощения сделать возможным удаление строки набором двух d.

  1. Переместите курсор вниз, ко второй строке фразы.

  2. Наберите dd для удаления строки.

  3. Теперь переместитесь к четвёртой строке.

  4. Наберите 2dd для удаления двух строк.

--->  1)  Летом я хожу на стадион,
--->  2)  О, как внезапно кончился диван!
--->  3)  Я болею за ``Зенит'', ``Зенит'' --- чемпион!
--->  4)  Печально я гляжу на наше поколение!
--->  5)  Его грядущее иль пусто иль темно...
--->  6)  Я сижу на скамейке в ложе `Б'
--->  7)  И играю на большой жестяной трубе.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 2.7: КОМАНДА `ОТМЕНА'


  ** Нажмите  u  для отмены результата работы предыдущей команды, U для отмены
			 исправлений во всей строке. **

  1. Переместите курсор вниз, к строке помеченной --->, и установите его на
     первую ошибку.

  2. Нажмите  x  для удаления первого неправильного символа.

  3. Теперь нажмите  u  для отмены (отката) последней выполненной команды.

  4. Исправьте все ошибки в строке, используя команду  x .

  5. Теперь нажмите заглавную  U  для того, чтобы вернуть всю строку
     в исходное состояние.

  6. Нажмите  u  несколько раз для отмены команды  U  и предыдущих команд.

  7. Нажмите теперь CTRL-R (т.е. удерживайте клавишу CTRL нажатой в момент
     нажатия клавиши R) несколько раз для возврата команд (откат отката).

---> Испрравьте оошибки в этойй строке и вернитте их сс помощьью `отмены'.

  8. Это были очень полезные команды. Далее переходите к Резюме Урока 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 2


  1. Для удаления текста от курсора до конца слова наберите:	dw

  2. Для удаления текста от курсора до конца строки наберите:	d$

  3. Для удаления всей строки наберите:		dd

  4. Для повтора перемещения введите количество перед командой:	2w 

  5. Формат команды в обычном режиме имеет вид:

       [число]   команда   объект     ИЛИ     команда	[число]   объект
     где:
       [число] - сколько раз повторить выполнение команды, опционально
       команда - что выполнить, например d для удаления
       объект  - на что должна воздействовать команда, например w (слово),
		$ (до конца строки), и т.д.

  6. Для перехода к началу строки используйте нуль:  0

  7. Для отмены (отката) предшествующих действий наберите:  u  (строчная u)
     Для отмены (отката) всех изменений в строке наберите:  U  (прописная U)
     Для отмены отката наберите:  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 3.1: КОМАНДА ВСТАВКИ


   ** Наберите  p  для вставки последнего удалённого текста после курсора. **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Наберите  dd  для удаления строки и её сохранения в буфере Vim'а.

  3. Переместите курсор к строке НАД тем местом, куда следует вставить
     удалённую строку.

  4. Находясь в обычном режиме наберите  p  для вставки строки ниже курсора.

  5. Повторите шаги со 2 по 4, пока не расставите все строки в нужном порядке.

---> г) И лучше выдумать не мог.
---> б) Когда не в шутку занемог,
---> в) Он уважать себя заставил
---> а) Мой дядя самых честных правил

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Урок 3.2: КОМАНДА ЗАМЕНЫ


	  ** Наберите  r  и символ, заменяющий символ под курсором. **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Установите курсор так, чтобы он находился над первой ошибкой.

  3. Наберите  r  и затем символ, исправляющий ошибку.

  4. Повторите шаги 2 и 3, пока первая строка не будет исправлена как вторая.

--->  В момегт набтра этой чтроки кое0кто с трудом попвдал по клваишам!
--->  В момент набора этой строки кое-кто с трудом попадал по клавишам!

  5. Теперь переходите к Уроку 3.3.

Замечание! Помните, что вы должны учиться в процессе работы, а не просто
	запоминая.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Урок 3.3: КОМАНДА ИЗМЕНЕНИЯ


	    ** Для изменения конечной части слова наберите  ce . **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Расположите курсор над буквой `o' в слове `сола'.

  3. Наберите  ce  и исправьте слово (в данном случае, наберите `лов').

  4. Нажмите <ESC> и переходите к следующей ошибке (к первому символу, который
     надо изменить).

  5. Повторите шаги 3 и 4 пока первое предложение не станет идентичным второму.

---> Несколько сола в эьгц строке тпгшцбь редалзкуюиесвх.
---> Несколько слов в этой строке требуют редактирования.

   Обратите внимание, что  ce  не только удаляет слово, но и переводит вас в
   режим вставки.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Урок 3.4: ПРОДОЛЖАЕМ ИЗМЕНЯТЬ С КОМАНДОЙ  c


 ** Команда замены используется с теми же объектами, что и команда удаления. **

  1. Команда изменения применяется таким же образом, как и команда удаления.
     Её формат таков:

       [число]   c   объект           ИЛИ           c   [число]   объект

  2. Объекты также совпадают: w (слово), $ (конец строки) и т.п.

  3. Переместите курсор вниз, к строке помеченной --->.

  4. Перейдите к первой ошибке.

  5. Наберите  c$  и отредактируйте первую строку так, чтобы она совпадала со
     второй, после чего нажмите <ESC>.

---> Конец этой строки нуждается в помощи, чтобы стать похожим на второй.
---> Конец этой строки нуждается в помощи команды  c$ .

Замечание! Клавиша Backspace может использоваться для исправления при наборе.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 3


  1. Для вставки текста, который только что был удалён, наберите  p . Эта
     команда вставит удалённый текст ПОСЛЕ курсора (если была удалена строка,
     то она будет помещена в строке под курсором).

  2. Для замены символа под курсором наберите  r  и затем заменяющий символ.

  3. Команда изменения позволяет вам изменить указанный объект от курсора до
     окончания перемещения. Например, наберите  ce  для замены от курсора до
     конца слова,  c$  для изменения до конца строки.

  4. Формат команды изменения таков:

	 [число]   c   объект         ИЛИ         c   [число]   объект

Теперь переходите к следующему уроку.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Урок 4.1: ИНФОРМАЦИЯ О ФАЙЛЕ И РАСПОЛОЖЕНИИ В НЕМ


       ** Наберите CTRL-g чтобы увидеть ваше месторасположение в файле и
     информацию о файле. Наберите  G  (SHIFT-G) для перемещения к заданной
			       строке в файле. **

Замечание! Прочитайте весь урок прежде чем выполнять любые команды!

  1. Удерживая клавишу Ctrl нажмите  g . Внизу экрана появится строка статуса
     с именем файла и номером строки, в которой вы находитесь. Запомните номер
     строки, он потребуется на Шаге 3.

  2. Удерживая клавишу Shift нажмите  g  для перемещения к концу файла.

  3. Наберите номер строки, в которой вы находились и затем Shift-G. Это
     вернёт вас к строке, в которой вы были, когда в первый раз нажали Ctrl-g.

  4. Если вы запомнили все вышесказанное, выполните шаги с 1 по 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Урок 4.2: КОМАНДА ПОИСКА


	       ** Наберите  /  и затем введите искомую фразу. **

  1. В обычном режиме (Normal mode) наберите символ  / . Обратите внимание,
     что он вместе с курсором появится внизу экрана, как это происходит с
     командой  : .

  2. Теперь наберите 'ошшшибка' <ENTER>. Это то слово, которое вы будете
     искать.

  3. Для того, чтобы повторить поиск, просто нажмите  n .
     Для поиска этой же фразы в обратном направлении, нажмите  Shift-N .

  4. Если вы желаете сразу искать в обратном направлении, используйте
     команду  ?  вместо  / .

  5. Для того, чтобы вернуться туда, откуда вы начали поиск нажмите  Ctrl-O.
     (Удерживая нажатой клавишу Ctrl нажмите  o ). Повторите несколько раз
     для дальнейшего перехода. Для перехода вперёд используйте  Ctrl-I .

---> "ошшшибка" это не способ написания слова `ошибка';  ошшшибка это ошибка.

Замечание! Если при поиске будет достигнут конц файла, то поиск будет продолжен
	с начала.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 4.3: ПОИСК ПАРНЫХ СКОБОК


		 ** Наберите  %  для поиска парных ), ] или } . **

  1. Поместите курсор над любой из (, [ или { в строке ниже, помеченной --->.

  2. Теперь наберите символ  % .

  3. Курсор должен перескочить на парную скобку.

  4. Наберите  %  для возврата курсора назад к первой скобке.

---> Это ( строка, содержащая такие (, такие [ ] и такие { } скобки. ))

Замечание! Это очень удобно при отладке программ с пропущенными скобками!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 4.4: СПОСОБ ИСПРАВЛЕНИЯ ОШИБОК


	 ** Наберите  :s/было/стало/g  для замены 'было' на 'стало'. **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Наберите  :s/уводю/увожу <ENTER> . Обратите внимание на то, что эта
     команда заменит только первое найденное вхождение в строке.

  3. Теперь наберите  :s/уводю/увожу/g , добавленная в конце g означает
     подстановку глобально во всей строке. Это заменит все найденные в строке
     вхождения.

---> Я уводю к отверженным селеньям, я уводю сквозь вековечный стон, я уводю к
     забытым поколеньям.

  4. Для замены всех вхождений последовательности символов между двумя
     строками,
     наберите  :#,#s/было/стало/g  где #,# -- номера этих строк.
     Наберите  :%s/было/стало/g    для замены всех вхождений во всем файле.
     Наберите  :%s/было/стало/gc   для поиска всех вхождений во всем файле и
                                   запроса подтверждения замены.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 4


  1. Ctrl-g  показывает ваше положение в файле и информацию о нем.
     Shift-G  перемещает вас в конец файла. Номер, за которым следует Shift-G
     позволяет перейти к строке с этим номером.
     gg  перемещает вас к первой строке файла.

  2. Нажатие  /  и затем ввод строки позволяет произвести поиск этой строки
     ВПЕРЁД по тексту.
     Нажатие  ?  и затем ввод строки позволяет произвести поиск этой строки
     НАЗАД по тексту.
     После поиска наберите  n  для перехода к следующему вхождению искомой
     строки в том же направлении или Shift-N для перехода в противоположном
     направлении.

  3. Нажатие  % , когда курсор находится на (,),[,],{, или } позволяет найти
     парную скобку.

  4. Для подстановки `стало' вместо первого `было' в строке, наберите
	:s/old/new
     Для подстановки `стало' вместо всех `было' в строке, наберите
	:s/old/new/g
     Для замены в интервале между двумя строками, наберите
	:#,#s/old/new/g
     Для замены всех вхождений `было' на `стало' в файле, наберите
	:%s/old/new/g
     Чтобы редактор каждый раз запрашивал подтверждение, добавьте 'c'
	:%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Урок 5.1: КАК ВЫПОЛНИТЬ ВНЕШНЮЮ КОМАНДУ


    ** Наберите  :!  и затем внешнюю команду, которую следует выполнить. **

  1. Наберите уже знакомую вам команду  :  для установки курсора в командную
     строку редактора. Это позволит вам ввести команду.

  2. Теперь наберите символ  !  (восклицательный знак). Это позволит выполнить
     внешнюю команду, используя командную оболочку.

  3. Для примера наберите  ls  после  !  и нажмите <ENTER>. Команда выведет
     список файлов в текущем каталоге, точно также, как если бы вы ввели эту
     команду в приглашении оболочки. Или попробуйте  :!dir , если команда ls
     не сработала.

Замечание! Таким способом можно выполнить любую внешнюю команду с указанием
	аргументов.

Замечание! Все команды, начинающиеся с  : , должны завершаться нажатием
	<ENTER>. Далее на это не всегда будет обращаться особое внимание.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 5.2: КАК ЗАПИСАТЬ ФАЙЛ


	      ** Для сохранения изменений, произведённых в файле,
			   наберите  :w ИМЯ_ФАЙЛА. **

  1. Наберите  :!dir  или  :!ls  для получения списка файлов в текущем
     каталоге.  Как вам уже известно, после ввода команды надо нажать <ENTER>.

  2. Придумайте название для файла, которое ещё не существует, например TEST.

  3. Теперь наберите  :w TEST  (где TEST -- это имя файла, придуманное вами.)

  4. Команда сохранит весь этот файл (Учебник по Vim) под именем TEST. Чтобы
     удостовериться в этом, снова наберите  :!dir  или :!ls  и просмотрите
     каталог.

Замечание! Если вы выйдете из Vim и затем запустите его снова с файлом TEST
	(т.е. выполните  vim TEST ), этот файл будет точной копией учебника
	в тот момент, когда вы его сохранили.

  5. Теперь удалите этот файл, набрав для MS-DOS    :!del TEST
                                      для Unix      :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Урок 5.3: ВЫБОРОЧНОЕ СОХРАНЕНИЕ


	   ** Для сохранения части файла, наберите  v  выберите часть
			  и сохраните её  :w ИМЯ_ФАЙЛА **

  1. Переместите курсор к этой строке.

  2. Нажмите  v  и переместите курсор ниже к пятому шагу. Обратите внимание,
     что текст подсвечен.

  3. Нажмите  :  и внизу экрана появится  :'<,'> .

  4. Введите  w TEST  (где TEST -- имя файла, который ещё не существует).
     До нажатия <ENTER>, проверьте что внизу экрана написано  :'<,'>w TEST.

  5. Vim запишет выбранные строки в файл TEST. Как и прежде, убедитесь в
     наличии этого файла командой  :!dir  или  :!ls . НЕ УДАЛЯЙТЕ этот файл, он
     потребуется в следующем уроке.

Замечание! Нажатие  v  начинает визуальный выбор. Вы можете перемещать курсор
	для изменения выбора. Затем для выбранного фрагмента можно выполнить
	какой-то оператор, например, удалить нажатием  d.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 5.4: ЧТЕНИЕ И ОБЪЕДИНЕНИЕ ФАЙЛОВ


	** Для вставки содержимого из файла, наберите  :r ИМЯ_ФАЙЛА  **

  1. Установите курсор над этой строкой.

Замечание! После выполнения Шага 2 вы увидите текст из Урока 5.3. Переместитесь
	ВНИЗ по тексту до этого урока.

  2. Теперь прочитайте ваш файл TEST, используя команду  :r TEST , где TEST --
     это имя файла.

  3. Для проверки что содержимое файла было вставлено, переместитесь по тексту
     и удостоверьтесь, что теперь в нём две копии Урока 5.3: исходная и из
     файла TEST.

Замечание! Вставить можно и вывод внешней команды. Например,  :r !ls  прочитает
	вывод команды ls и вставит его ниже курсора.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 5


  1.  :!команда  исполняет внешнюю команду.

      Некоторые полезные примеры:
      	(MS-DOS)	(Unix)
	 :!dir		 :!ls		-- вывести список файлов в каталоге.
	 :!del ИМЯ	 :!rm ИМЯ	-- удалить файл по имени.

  2.  :w ИМЯ_ФАЙЛА  записывает текущий редактируемый в Vim файл на диск под
      указанным именем.

  3.  v  перемещение  :w ИМЯ_ФАЙЛА  сохраняет визуально выбранные строки в файл
      с указанным именем.

  4.  :r ИМЯ_ФАЙЛА  считывает с диска файл с указанным именем и помещает его
      ниже курсора.

  5.  :r !dir  читает вывод команды dir и помещает его ниже курсора.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 6.1: КОМАНДА СОЗДАНИЯ


   ** Наберите  o  чтобы создать пустую строку под курсором и перейти в режим
			    вставки (Insert mode) **

  1. Переместите курсор вниз, к строке помеченной --->.

  2. Наберите  o  (в нижнем регистре) для того, чтобы создать пустую строку
     НИЖЕ курсора и перейти в режим вставки (Insert mode).

  3. Теперь наберите какой-нибудь текст и нажмите <ESC> для выхода из режима
     вставки.

---> После нажатия  o  курсор перейдёт на новую пустую строку в режиме вставки.

  4. Для создания строки ВЫШЕ курсора, просто наберите заглавную  O , вместо
     строчной  o . Попробуйте проделать это с нижеследующей строкой.

---> Создайте новую строку над этой, поместив на неё курсор и нажав Shift-O.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 6.2: КОМАНДА ДОБАВЛЕНИЯ


	    ** Наберите  a , чтобы вставить текст ПОСЛЕ курсора. **

  1. Переместите курсор вниз, в начало первой строки помеченной --->.

  2. Набирайте  e  пока курсор не переместиться на конец  cтро .

  3. Наберите  a  (в нижнем регистре) для добавления текста ПОСЛЕ символа,
     находящегося под курсором. (Заглавная A позволяет добавить в конец
     строки.)

  4. Допишите слово так, как показано в строке ниже. Нажмите <ESC> для выхода
     из режима вставки (Insert mode).

  5. Используйте  e  для перехода к концу следующего незавершённого слова и
     повторите шаги 3 и 4.

---> Эта стро позволит вам попрактиков в добавле текста.
---> Эта строчка позволит вам попрактиковаться в добавлении текста. 

Замечание!  a , i  и  A  переводят в один и тот же режим вставки, различие
	только в том, где вставляются символы.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 6.3: ЕЩЁ ОДИН СПОСОБ ЗАМЕНЫ


       ** Наберите заглавную  R  для замены более чем одного символа. **

  1. Переместите курсор вниз, к первой строке помеченной --->, и в начало
     первого слова  xxx.

  2. Теперь нажмите  R  и введите число, указанное ниже во второй строке, чтобы
     заменить  xxx.

  3. Нажмите <ESC> для выхода из режима замены. Заметьте, что остаток строки
     не был изменён.

  4. Повторите эти шаги для замены оставшихся  xxx.

---> Добавление 123 к xxx даёт xxx.
---> Добавление 123 к 456 даёт 579.

Замечание! Режим замены похож на режим вставки, но каждый введённый символ
	удаляет существующий.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 6.4: КОПИРОВАНИЕ И ВСТАВКА ТЕКСТА


	** Используйте команду  y  для копирования и  p  для вставки **

  1. Переместите курсор вниз, к первой строке помеченной --->, и после `а)'.

  2. Переключитесь в режим визуального выбора нажав  v  и переместите курсор
     перед словом `первый'.

  3. Введите  y  для копирования подсвеченного текста.

  4. Переместите курсор в конец следующей строки комбинацией  j$ .

  5. Нажмите  p  для вставки текста. Затем введите `второй' и нажмите <ESC>. 

--->  а) Этот элемент первый.
      б)

Замечание! Также возможно использовать  yw  (команду  y  с оператором  w ) для
	копирования одного слова.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 6.5: УСТАНОВКА ПАРАМЕТРОВ


   ** Установка параметра для игнорирования регистра при поиске или замене **

  1. Найдите слово `игнорировать', набрав:  /игнорировать  <ENTER>.
     Повторите поиск несколько раз, нажимая клавишу  n .

  2. Установите параметр `ic' (игнорировать регистр), набрав:  :set ic

  3. Теперь снова несколько раз сделайте поиск слова `игнорировать',
     нажимая:  n
     Заметьте, что теперь находятся `Игнорировать' и `ИГНОРИРОВАТЬ'.

  4. Установите параметры `hlsearch' и `incsearch':  :set hls is

  5. Теперь опять введите команду поиска и посмотрите, что получится:
			     /игнорировать <ENTER>

  6. Для возвращения учёта регистра при поиске наберите:  :set noic

Замечание! Для отключения подсветки совпадений наберите:  :nohlsearch

Замечание! Если вы хотите игнорировать регистр только для одного поиска,
	используйте  \с  в команде поиска:  /игнорировать\c  <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 6


  1. Нажмите  o  для создания строки НИЖЕ курсора и перехода в режим вставки.
     Нажмите  O  для создания строки ВЫШЕ курсора.

  2. Нажмите  a  для вставки текста ПОСЛЕ курсора.
     Нажмите  A  для вставки текста в конец строки.

  3. Команда  e  подводит курсор к концу слова.

  4. Команда  y  копирует текст,  p  -- вставляет скопированный текст.

  5. Нажатие заглавной  R  переводит в режим замены до нажатия клавиши  <ESC> .

  6. Наберите `:set xxx' для включения параметра `xxx', некоторые параметры:

	`ic'	`ignorecase'	игнорирование регистра при поиске
	`is'	`incsearch'	отображение частичных совпадений при поиске
	`hls'	`hlsearch'	подсветка всех совпадений при поиске

  7. Добавьте `no' перед параметром для его отключения:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Урок 7.1: ВСТРОЕННАЯ СПРАВКА


		** Используйте встроенную справочную систему **

  Vim обладает мощной встроенной справочной системой. Для начала попробуйте
  один из трёх вариантов:
	- нажмите клавишу <HELP> (если таковая имеется на клавиатуре)
	- нажмите клавишу <F1> (если таковая имеется на клавиатуре)
	- наберите   :help <ENTER>

  Прочитайте текст в окне справки для получения представления о том как
  работает справка.
  Нажмите  CTRL-W CTRL-W  для перехода от окна к окну.
  Наберите   :q <ENTER>   чтобы закрыть окно справки.

  Вы можете найти справку для любого понятия или команды, задав соответствующий
  аргумент команде `:help'. Попробуйте следующее (не забудьте нажать <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 7.2: СОЗДАНИЕ СТАРТОВОГО СЦЕНАРИЯ


			 ** Включим возможности Vim **

  Vim имеет намного больше возможностей, чем Vi, но большинство из них по
  умолчанию выключены. Для использования больших возможностей вам следует
  создать файл `vimrc'.

  1. Отредактируйте новый файл `vimrc'. Его расположение зависит от
     используемой системы:
	:e ~/.vimrc		для Unix
	:e $VIM/_vimrc		для MS-Windows

  2. Теперь прочитайте пример файла `vimrc':
	:r $VIMRUNTIME/vimrc_example.vim

  3. Запишите созданный вами новый файл `vimrc':
	:w

  Теперь при следующем запуске Vim будет включена подсветка синтаксиса. Все
  настройки, предпочитаемые вами, могут быть добавлены в файл `vimrc'.
  Для дальнейшей информации наберите  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      Урок 7.3: ДОПОЛНЕНИЕ


	 ** Командную строку можно дополнить нажав  CTRL-D  и  <TAB> **

  1. Удостоверьтесь, что Vim не в режиме совместимости:  :set nocp

  2. Посмотрите какие файлы есть в каталоге:  :!ls  или  :!dir

  3. Наберите начало команды:  :e

  4. Нажмите  CTRL-D  и Vim отобразит список команд начинающихся на `e'.

  5. Нажмите  <TAB>  и Vim дополнит название команды до `:edit'.

  6. Теперь добавьте пробел и начало существующего имени файла:  :edit ФАЙ

  7. Нажмите  <TAB>  и Vim дополнит имя файла, если оно уникальное.

Замечание! Дополнение работает для многих команд. Попробуйте нажать  CTRL-D  и
	<TAB>. Это особенно полезно для команды  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				 РЕЗЮМЕ УРОКА 7


  1. Наберите  :help  или нажмите <F1>, или <Help> для открытия окна справки.

  2. Наберите  :help cmd  для поиска справки по команде.

  3. Нажмите  CTRL-W CTRL-W  для перехода к другому окну.

  4. Наберите  :q  для закрытия окна справки (если оно активно).

  5. Для хранения ваших настроек создайте стартовый сценарий `vimrc'.

  6. При наборе  :  команды, нажмите CTRL-D для отображения возможных
     дополнений. Нажмите <TAB> для использования дополнения.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  На этом завершается Учебник Vim. Он был предназначен дать общее представление
  о редакторе Vim, достаточное для того, чтобы с лёгкостью использовать его.
  Учебник далёк от полноты, поскольку Vim имеет очень много команд. Прочитайте
  теперь руководство пользователя: `:help user-manual'.

  Для дальнейшего чтения рекомендуется книга:
	Vim - Vi Improved, автор: Steve Oualline, издатель: New Riders

  Эта книга полностью посвящена Vim. Особенно полезна она будет новичкам.
  Содержит множество примеров и иллюстраций.
  См. http://iccf-holland.org/click5.html

  Следующая книга более почтенного возраста и посвящена больше Vi, чем Vim,
  однако также рекомендуется:
	Learning the Vi Editor, автор: Linda Lamb,
				издатель: O'Reilly & Associates Inc.

  Это хорошая книга, чтобы узнать всё, что только можно сделать в Vi. Шестое
  издание также включает информацию о Vim.

  Этот учебник написал Michael C. Pierce и Robert K. Ware, Colorado School of
  Mines с использованием идей, которые предложил Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu.

  Доработано для Vim Брамом Моленаром (Bram Moolenaar).

  Перевод:
  	Андрей Киселев <a_kissel@eudoramail.com>, 2002.
	Сергей Алёшин <alyoshin.s@gmail.com>, 2014.

  Translators:
  	Andrey Kiselev <a_kissel@eudoramail.com>, 2002.
  	Sergey Alyoshin <alyoshin.s@gmail.com>, 2014.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�d
hLdLdvim80/tutor/tutor.csnu�[���===============================================================================
=    V � t e j t e   v  t u t o r i a l u   V I M       -    Verze 1.5        =
===============================================================================

     Vim je velmi v�konn� editor, kter� m� p��li� mnoho p��kaz� na to, aby
     mohly b�t v�echny vysv�tlen� ve v�uce jako tato. Tato v�uka obsahuje
     dostate�n� mno�stv� p��kaz� na to, aby bylo mo�n� pou��vat Vim jako
     v�ce��elov� editor.

     P�ibli�n� �as pot�ebn� ke zvl�dnut� t�to v�uky je 25-30 minut, z�le��
     na tom, kolik �asu str�v�te p�ezku�ov�n�m.

     P��kazy v lekc�ch upravuj� text. Vytvo� kopii tohoto souboru pro
     procvi�ov�n� (p�i startu "vimtutor" je ji� toto kopie).

     Je d�le�it� pamatovat, �e tato v�uka je vytvo�ena pro v�uku pou��v�n�m.
     To znamen�, �e je pot�eba si p��kazy vyzkou�et pro jejich spr�vn�
     nau�en�. Pokud si jen �te� text, p��kazy zapomene�!

     Nyn� se p�esv�d�te, �e Caps-Lock NEN� stla�en� a n�kolikr�t stiskn�te
     kl�vesu  j   aby se kurzor posunul natolik, �e lekce 1.1 zapln� celou
     obrazovku.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 1.1:  POHYB KURZORU


   ** Pro pohyb kurzoru pou��vej kl�vesy h,j,k,l jak je zn�zorn�no n�e. **
	     ^
	     k		   Funkce: Kl�vesa h je vlevo a vykon� pohyb vlevo.
       < h	 l >		   Kl�vesa l je vpravo a vykon� pohyb vpravo.
	     j			   Kl�vesa j vypad� na �ipku dolu.
	     v
  1. Pohybuj kurzorem po obrazovce dokud si na to nezvykne�.

  2. Dr� kl�vesu pro pohyb dolu (j), dokud se jej� funkce nezopakuje.
---> Te� v� jak se p�esunout na n�sleduj�c� lekci.

  3. Pou�it�m kl�vesy dolu p�ejdi na lekci 1.2.

Pozn�mka: Pokud si n�kdy nejsi jist n���m, co jsi napsal, stla� <ESC> pro
          p�echod do Norm�ln�ho m�du. Pot� p�epi� po�adovan� p��kaz.

Pozn�mka: Kurzorov� kl�vesy tak� funguj�, av�ak pou��v�n� hjkl je rychlej��
          jakmile si na n�j zvykne�.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.2: SPU�T�N� A UKON�EN� VIM


  !! POZN�MKA: P�ed vykon�n�m t�chto krok� si p�e�ti celou lekci!!

  1. Stla� <ESC> (pro uji�t�n�, �e se nach�z� v Norm�ln�m m�du).

  2. Napi�:			:q! <ENTER>.

---> T�mto ukon�� editor BEZ ulo�en� zm�n, kter� si vykonal.
     Pokud chce� ulo�it zm�ny a ukon�it editor napi�:
				:wq  <ENTER>

  3. A� se dostane� na p��kazov� ��dek, napi� p��kaz, kter�m se dostane� zp�t
     do t�to v�uky. To m��e b�t: vimtutor <ENTER>
     B�n� se pou��v�:		 vim tutor <ENTER>

---> 'vim' znamen� spu�t�n� editoru, 'tutor' je soubor k editaci.

  4. Pokud si tyto kroky spolehliv� pamatuje�, vykonej kroky 1 a� 3, ��m�
     ukon�� a znovu spust� editor. Potom p�esu� kurzor dolu na lekci 1.3.
     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.3: �PRAVA TEXTU - MAZ�N�


  ** Stisknut�m kl�vesy  x  v Norm�ln�m m�du sma�e� znak na m�st� kurzoru. **

  1. P�esu� kurzor n�e na ��dek ozna�en� --->.

  2. K odstran�n� chyb p�ejdi kurzorem na znak, kter� chce� smazat.

  3. Stla� kl�vesu  x  k odstran�n� necht�n�ch znak�.

  4. Opakuj kroky 2 a� 4 dokud nen� v�ta spr�vn�.

---> Kr��va sko��illa p�ess m�ss�c.

  5. Pokud je v�ta spr�vn�, p�ejdi na lekci 1.4.

POZN�MKA: Nesna� se pouze zapamatovat p�edv�d�n� p��kazy, u� se je pou��v�n�m.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 1.4: �PRAVA TEXTU - VKL�D�N�


      ** Stla�en� kl�vesy  i  v Norm�ln�m m�du umo��uje vkl�d�n� textu. **

  1. P�esu� kurzor na prvn� ��dek ozna�en� --->.

  2. Pro upraven� prvn�ho ��dku do podoby ��dku druh�ho, p�esu� kurzor na
     prvn� znak za m�sto, kde m� b�t text vlo�en�.

  3. Stla�  i  a napi� pot�ebn� dodatek.

  4. Po opraven� ka�d� chyby stla� <ESC> pro n�vrat do Norm�ln�ho m�du.
     Opakuj kroky 2 a� 4 dokud nen� v�ta spr�vn�.

---> N�jak� txt na t�to .
---> N�jak� text chyb� na t�to ��dce.

  5. Pokud ji� ovl�d� vkl�d�n� textu, p�ejdi na n�sleduj�c� shrnut�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 1


  1. Kurzorem se pohybuje pomoc� �ipek nebo kl�vesami hjkl.
	h (vlevo)	j (dolu)	k (nahoru)	l (vpravo)

  2. Pro spu�t�n� Vimu (z p��kazov�ho ��dku) napi�: vim SOUBOR <ENTER>

  3. Pro ukon�en� Vimu napi�: <ESC>  :q!  <ENTER>  bez ulo�en� zm�n.
	     	       anebo: <ESC>  :wq  <ENTER>  pro ulo�en� zm�n.

  4. Pro smaz�n� znaku pod kurzorem napi� v Norm�ln�m m�du:  x

  5. Pro vkl�d�n� textu od m�sta kurzoru napi� v Norm�ln�m m�du:
	 i     vkl�dan� text	<ESC>

POZN�MKA: Stla�en� <ESC> t� p�em�st� do Norm�ln�ho m�du nebo zru�� necht�n�
      a ��ste�n� dokon�en� p��kaz.

Nyn� pokra�uj Lekc� 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 2.1: P��KAZY MAZ�N�


	       ** P��kaz  dw  sma�e znaky do konce slova. **

  1. Stla�  <ESC>  k ubezpe�en�, �e jsi v Norm�ln�m m�du.

  2. P�esu� kurzor n�e na ��dek ozna�en� --->.

  3. P�esu� kurzor na za��tek slova, kter� je pot�eba smazat.

  4. Napi�   dw	 , aby slovo zmizelo.

POZN�MKA: P�smena dw se zobraz� na posledn�m ��dku obrazovky jakmile je
	  nap�e�. Kdy� nap�e� n�co �patn�, stla�  <ESC>  a za�ni znova.

---> Jsou tu n�jak� slova z�bava, kter� nepat�� list do t�to v�ty.

  5. Opakuj kroky 3 a� 4 dokud nen� v�ta spr�vn� a p�ejdi na lekci 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 2.2: V�CE P��KAZ� MAZ�N�


	   ** Naps�n� p��kazu  d$  sma�e v�e a� do konce ��dky. **

  1. Stla�  <ESC>  k ubezpe�en�, �e jsi v Norm�ln�m m�du.

  2. P�esu� kurzor n�e na ��dek ozna�en� --->.

  3. P�esu� kurzor na konec spr�vn� v�ty (ZA prvn� te�ku).

  4. Napi�  d$  ,aby jsi smazal znaky a� do konce ��dku.

---> N�kdo napsal konec t�to v�ty dvakr�t. konec t�to v�ty dvakr�t.


  5. P�ejdi na lekci 2.3 pro pochopen� toho, co se stalo.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekce 2.3: ROZ�I�OVAC� P��KAZY A OBJEKTY


  Form�t mazac�ho p��kazu  d  je n�sleduj�c�:

	 [��slo]   d   objekt     NEBO     d   [��slo]   objekt
  Kde:
    ��slo - ud�v� kolikr�t se p��kaz vykon� (voliteln�, v�choz�=1).
    d - je p��kaz maz�n�.
    objekt - ud�v� na �em se p��kaz vykon�v� (vypsan� n�e).

  Kr�tk� v�pis objekt�:
    w - od kurzoru do konce slova, v�etn� mezer.
    e - od kurzoru do konce slova, BEZ mezer.
    $ - od kurzoru do konce ��dku.

POZN�MKA:  Stla�en�m kl�vesy objektu v Norm�ln�m m�du se kurzor p�esune na
           m�sto up�esn�n� ve v�pisu objekt�.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 2.4: V�JIMKA Z 'P��KAZ-OBJEKT'


    	          ** Naps�n�m   dd   sma�e� cel� ��dek. **

  Vzhledem k �astosti maz�n� cel�ho ��dku se auto�i Vimu rozhodli, �e bude
  jednodu�� napsat prost� dv� d k smaz�n� cel�ho ��dku.

  1. P�esu� kurzor na druh� ��dek spodn�ho textu.
  2. Napi�  dd  pro smaz�n� ��dku.
  3. P�ejdi na �tvrt� ��dek.
  4. Napi�   2dd   (vzpome� si  ��slo-p��kaz-objekt) pro smaz�n� dvou ��dk�.

      1)  R��e jsou �erven�,
      2)  Bl�to je z�bavn�,
      3)  Fialky jsou modr�,
      4)  M�m auto,
      5)  Hodinky ukazuj� �as,
      6)  Cukr je sladk�,
      7)  A to jsi i ty.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekce 2.5: P��KAZ UNDO


   ** Stla�  u	pro vr�cen� posledn�ho p��kazu,  U  pro celou ��dku. **

  1. P�esu� kurzor n�e na ��dek ozna�en� ---> a p�em�sti ho na prvn� chybu.
  2. Napi�  x  pro smaz�n� prvn�ho necht�n�ho znaku.
  3. Te� napi�  u  ��m� vr�t� zp�t posledn� vykonan� p��kaz.
  4. Nyn� oprav v�echny chyby na ��dku pomoc� p��kazu  x  .
  5. Napi� velk�  U  ��m� vr�t� ��dek do p�vodn�ho stavu.
  6. Te� napi�  u  n�kolikr�t, ��m� vr�t� zp�t p��kaz  U  .
  7. Stla� CTRL-R (kl�vesu CTRL dr� stla�enou a stiskni R) n�kolikr�t,
     ��m� vr�t� zp�t p�edt�m vr�cen� p��kazy (redo).

---> Opprav chybby nna toomto ��dku a nahra� je pommoc� undo.

  8. Toto jsou velmi u�ite�n� p��kazy. Nyn� p�ejdi na souhrn Lekce 2.

  



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 2


  1. Pro smaz�n� znak� od kurzoru do konce slova napi�:    dw

  2. Pro smaz�n� znak� od kurzoru do konce ��dku napi�:    d$

  3. Pro smaz�n� cel�ho ��dku napi�:    dd

  4. Form�t p��kazu v Norm�ln�m m�du je:

       [��slo]   p��kaz   objekt    NEBO    p��kaz     [��slo]   objekt
     kde:
       ��slo - ud�v� po�et opakov�n� p��kazu
       p��kaz - ud�v� co je t�eba vykonat, nap��klad  d  ma�e
       objekt - ud�v� rozsah p��kazu, nap��klad  w  (slovo),
		$ (do konce ��dku), atd.

  5. Pro vr�cen� p�ede�l� �innosti, napi�:	u (mal� u)
     Pro vr�cen� v�ech �prav na ��dku napi�:	U (velk� U)
     Pro vr�cen� vr�cen�ch �prav (redo) napi�:	CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekce 3.1: P��KAZ VLO�IT


       ** P��ka  p  vlo�� posledn� vymazan� text za kurzor. **

  1. P�esu� kurzor n�e na posledn� ��dek textu.

  2. Napi�  dd  pro smaz�n� ��dku a jeho ulo�en� do bufferu.

  3. P�esu� kurzor VݩE tam, kam smazan� ��dek pat��.

  4. V Norm�ln�m m�du napi�  p  pro op�tn� vlo�en� ��dku.

  5. Opakuj kroky 2 a� 4 dokud ��dky nebudou ve spr�vn�m po�ad�.

     d) Tak� se dok�e� vzd�l�vat?
     b) Fialky jsou modr�,
     c) Inteligence se u��,
     a) R��e jsou �erven�,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekce 3.2: P��KAZ NAHRAZEN�


          ** Naps�n�m  r  a znaku se nahrad� znak pod kurzorem. **

  1. P�esu� kurzor n�e na prvn� ��dek ozna�en� --->.

  2. P�esu� kurzor na za��tek prvn� chyby.

  3. Napi�  r  a potom znak, kter� nahrad� chybu.

  4. Opakuj kroky 2 a� 3 dokud nen� prvn� ��dka spr�vn�.

--->  Kdi� byl pz�n tento ��deg, n�kdu stla�il �paqn� kl�vesy!
--->  Kdy� byl ps�n tento ��dek, n�kdo stla��l �patn� kl�vesy!

  5. Nyn� p�ejdi na Lekci 3.2.

POZN�MKA: Zapamatuj si, �e by ses m�l u�it pou��v�n�m, ne zapamatov�n�m.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		           Lekce 3.3: P��KAZ �PRAVY


	  ** Pokud chce� zm�nit ��st nebo cel� slovo, napi�  cw . **

  1. P�esu� kurzor n�e na prvn� ��dek ozna�en� --->.

  2. Um�sti kurzor na p�smeno i v slov� �i�ok.

  3. Napi�  cw  a oprav slovo (v tomto p��pad� napi� '�dek'.)

  4. Stla� <ESC> a p�ejdi na dal�� chybu (prvn� znak, kter� t�eba zm�nit.)

  5. Opakuj kroky 3 a� 4 dokud nen� prvn� v�ta stejn� jako ta druh�.

---> Tento �i�ok m� n�kolik skic, kter� psadoinsa zm�nit pasdgf p��kazu.
---> Tento ��dek m� n�kolik slov, kter� pot�ebuj� zm�nit pomoc� p��kazu.

V�imni si, �e  cw  nejen nahrazuje slovo, ale tak� p�em�st� do vkl�d�n�.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekce 3.4: V�CE ZM�N POU�IT�M c


   ** P��kaz pro �pravu se dru�� se stejn�mi objekty jako ten pro maz�n�. **

  1. P��kaz pro �pravu pracuje stejn� jako pro maz�n�. Form�t je:

       [��slo]   c   objekt	 NEBO	   c	[��slo]   objekt

  2. Objekty jsou tak� shodn�, jako nap�.: w (slovo), $ (konec ��dku), atd.

  3. P�ejdi n�e na prvn� ��dek ozna�en� --->.

  4. P�esu� kurzor na prvn� rozd�l.

  5. Napi�  c$  pro upraven� zbytku ��dku podle toho druh�ho a stla� <ESC>.

---> Konec tohoto ��dku pot�ebuje pomoc, aby byl jako ten druh�.
---> Konec tohoto ��dku pot�ebuje opravit pou�it�m p��kazu  c$  .



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 3


  1. Pro vlo�en� textu, kter� byl smaz�n, napi�  p  . To vlo�� smazan� text
     ZA kurzor (pokud byl ��dek smazan�, p�ejde na ��dek pod kurzorem).

  2. Pro nahrazen� znaku pod kurzorem, napi�  r  a potom znak, kter�m
     chce� p�vodn� znak nahradit.

  3. P��kaz na upravov�n� umo��uje zm�nit specifikovan� objekt od kurzoru
     do konce objektu. Nap��klad: Napi�  cw  ,��m� zm�n� text od pozice
     kurzoru do konce slova,  c$  zm�n� text do konce ��dku.

  4. Form�t pro nahrazov�n� je:

	 [��slo]   c   objekt      NEBO     c   [��slo]   objekt

Nyn� p�ejdi na n�sleduj�c� lekci.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 4.1: POZICE A STATUS SOUBORU


  ** Stla� CTRL-g pro zobrazen� sv� pozice v souboru a statusu souboru.
     Stla� SHIFT-G pro p�echod na ��dek v souboru. **

  Pozn�mka: P�e�ti si celou lekci ne� za�ne� vykon�vat kroky!!

  1. Dr� kl�vesu Ctrl stla�enou a stiskni  g  . Vespod obrazovky se zobraz�
     stavov� ��dek s n�zvem souboru a ��dkou na kter� se nach�z�. Zapamatuj
     si ��slo ��dku pro krok 3.

  2. Stla� shift-G pro p�esun na konec souboru.

  3. Napi� ��slo ��dku na kter�m si se nach�zel a stla� shift-G. To t�
     vr�t� na ��dek, na kter�m jsi d��ve stiskl Ctrl-g.
     (Kdy� p�e� ��sla, tak se NEZOBRAZUJ� na obrazovce.)

  4. Pokud se c�t� schopn� vykonat tyto kroky, vykonej je.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekce 4.2: P��KAZ VYHLED�V�N�


     ** Napi�  /  n�sledovan� �et�zcem pro vyhled�n� onoho �et�zce. **

  1. Stiskni / v Norm�ln�m m�du.  V�imni si, �e tento znak se spolu s
     kurzorem zobraz� v doln� ��sti obrazovky jako p��kaz  :  .

  2. Nyn� napi� 'chhybba' <ENTER>.  To je slovo, kter� chce� vyhledat.

  3. Pro vyhled�n� dal��ho v�sledku stejn�ho �et�zce, jednodu�e stla�  n  .
     Pro vyhled�n� dal��ho v�sledku stejn�ho �et�zce opa�n�m sm�rem, stiskni
     Shift-N.

  4. Pokud chce� vyhledat �et�zec v opa�n�m sm�ru, pou�ij p��kaz  ?  m�sto
     p��kazu  /  .

---> "chhybba" nen� zp�sob, jak hl�skovat chyba; chhybba je chyba.

Pozn�mka: Kdy� vyhled�v�n� dos�hne konce souboru, bude pokra�ovat na jeho
          za��tku.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekce 4.3: VYHLED�V�N� P�ROV� Z�VORKY


	      ** Napi�  %  pro nalezen� p�rov� ),], nebo } . **

  1. P�em�sti kurzor na kteroukoli (, [, nebo { v ��dku ozna�en�m --->.

  2. Nyn� napi� znak  %  .

  3. Kurzor se p�em�st� na odpov�daj�c� z�vorku.

  4. Stla�  %  pro p�esun kurzoru zp�t na otv�raj�c� z�vorku.

---> Toto ( je testovac� ��dek ('s, ['s ] a {'s } v n�m. ))

Pozn�mka: Toto je velmi u�ite�n� p�� lad�n� programu s chyb�j�c�mi
          uzav�rac�mi z�vorkami.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 4.4: ZP�SOB JAK ZM�NIT CHYBY
		      

   ** Napi�  :s/star�/nov�/g  pro nahrazen� slova 'nov�' za 'star�'. **

  1. P�esu� kurzor na ��dek ozna�en� --->.

  2. Napi�  :s/dobr��/dobr� <ENTER> .  V�imni si, �e tento p��kaz zm�n� pouze
     prvn� v�skyt v ��dku.

  3. Nyn� napi�	 :s/dobr��/dobr�/g  co� znamen� celkov� nahrazen� v ��dku.
     Toto nahrad� v�echny v�skyty v ��dku.

---> dobr�� suroviny a dobr�� n��in� jsou z�kladem dobr�� kuchyn�.

  4. Pro zm�nu v�ech v�skyt� �et�zce mezi dv�ma ��dky,
     Napi�   :#,#s/star�/nov�/g  kde #,# jsou ��sla on�ch ��dek.
     Napi�   :%s/star�/nov�/g    pro zm�nu v�ech v�skyt� v cel�m souboru.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 4


  1. Ctrl-g  vyp�e tvou pozici v souboru a status souboru.
     Shift-G  t� p�em�st� na konec souboru.  ��slo n�sledovan�
     Shift-G  t� p�esune na dan� ��slo ��dku.

  2. Naps�n�  /  n�sledovan� �et�zcem vyhled� �et�zec sm�rem DOP�EDU.
     Naps�n�  ?  n�sledovan� �et�zcem vyhled� �et�zec sm�rem DOZADU.
     Naps�n�  n  po vyhled�v�n� najde n�sleduj�c� v�skyt �et�zce ve stejn�m
     sm�ru, Shift-N ve sm�ru opa�n�m.

  3. Stisknut�  %  kdy� je kurzor na (,),[,],{, nebo } najde odpov�daj�c�
     p�rovou z�vorku.

  4. Pro nahrazen� nov�ho za prvn� star� v ��dku napi�     :s/star�/nov�
     Pro nahrazen� nov�ho za v�echny star� v ��dku napi�   :s/star�/nov�/g
     Pro nahrazen� �et�zc� mezi dv�mi ��dkami # napi�      :#,#s/star�/nov�/g
     Pro nahrazen� v�ech v�skyt� v souboru napi�	   :%s/star�/nov�/g
     Pro potvrzen� ka�d�ho nahrazen� p�idej 'c'		   :%s/star�/nov�/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekce 5.1: JAK VYKONAT VN�J�� P��KAZ


   ** Napi�  :!  n�sledovan� vn�j��m p��kazem pro spu�t�n� p��kazu. **

  1. Napi� obvykl� p��kaz  :  , kter� um�st� kurzor na spodek obrazovky
     To umo�n� napsat p��kaz.

  2. Nyn� stiskni  !  (vyk�i�n�k). To umo�n� vykonat jak�koliv vn�j��
     p��kaz z p��kazov�ho ��dku.

  3. Nap��klad napi�  ls  za ! a stiskni <ENTER>.  Tento p��kaz zobraz�
     obsah tv�ho adres�e jako v p��kazov�m ��dku.
     Vyzkou�ej  :!dir  pokud ls nefunguje.

Pozn�mka:  Takto je mo�n� vykonat jak�koliv p��kaz.

Pozn�mka:  V�echny p��kazy  :  mus� b�t dokon�en� stisknut�m <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 5.2: V�CE O UKL�D�N� SOUBOR�


	    ** Pro ulo�en� zm�n v souboru napi�  :w SOUBOR. **

  1. Napi�  :!dir  nebo  :!ls  pro v�pis aktu�ln�ho adres�e.
     U� v�, �e za t�mto mus� stisknout <ENTER>.

  2. Vyber si n�zev souboru, kter� je�t� neexistuje, nap��klad TEST.

  3. Nyn� napi�:  :w TEST  (kde TEST je vybran� n�zev souboru.)

  4. To ulo�� cel� soubor  (V�uka Vimu)  pod n�zvem TEST.
     Pro ov�en� napi� znovu :!dir  , ��m� zobraz� obsah adres�e.

Pozn�mka: Jakmile ukon�� Vim a znovu ho spust� s n�zvem souboru TEST,
          soubor bude p�esn� kopie v�uky, kdy� si ji ukl�dal.

  5. Nyn� odstra� soubor naps�n�m (MS-DOS):    :!del TEST
			     nebo (Unix):      :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekce 5.3: V�B�ROV� P��KAZ ULO�EN�


	    ** Pro ulo�en� ��sti souboru napi�  :#,# w SOUBOR **

  1. Je�t� jednou napi�  :!dir  nebo  :!ls  pro v�pis aktu�ln�ho adres�e
     a vyber vhodn� n�zev souboru jako nap�. TEST.

  2. P�esu� kurzor na vrch t�to str�nky a stiskni  Ctrl-g  pro zobrazen�
     ��sla ��dku.  ZAPAMATUJ SI TOTO ��SLO!

  3. Nyn� se p�esu� na spodek t�to str�nky a op�t stiskni Ctrl-g.
     ZAPAMATUJ SI I ��SLO TOHOTO �DKU!

  4. Pro ulo�en� POUZE ��sti souboru, napi�  :#,# w TEST  kde #,# jsou
     ��sla dvou zapamatovan�ch ��dk� (vrch, spodek) a TEST je n�zev souboru.

  5. Znova se ujisti, �e tam ten soubor je pomoc�  :!dir  ale NEODSTRA�UJ ho.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		        Lekce 5.4: SLU�OV�N� SOUBOR�


      	   ** K vlo�en� obsahu souboru napi�  :r N�ZEV_SOUBORU **

  1. Napi�  :!dir  pro uji�t�n�, �e soubor TEST st�le existuje.

  2. P�esu� kurzor na vrch t�to str�nky.

POZN�MKA: Po vykon�n� kroku 3 uvid� lekci 5.3.	Potom se op�t p�esu� dol�
          na tuto lekci.

  3. Nyn� vlo� soubor TEST pou�it�m p��kazu  :r TEST  kde TEST je n�zev
     souboru.

POZN�MKA: Soubor, kter� vkl�d� se vlo�� od m�sta, kde se nach�z� kurzor.

  4. Pro potvrzen� vlo�en� souboru, p�esu� kurzor zp�t a v�imni si, �e te�
     m� dv� kopie lekce 5.3, origin�l a souborovou verzi.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRNUT� LEKCE 5


  1.  :!p��kaz  vykon� vn�j�� p��kaz.

      N�kter� u�ite�n� p��klady jsou:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  zobraz� obsah souboru.
	  :!del SOUBOR     :!rm SOUBOR     -  odstran� SOUBOR.

  2.  :w SOUBOR  ulo�� aktu�ln� text jako SOUBOR na disk.

  3.  :#,#w SOUBOR  ulo�� ��dky od # do # do SOUBORU.

  4.  :r SOUBOR  vybere z disku SOUBOR a vlo�� ho do editovan�ho souboru
      za pozici kurzoru.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekce 6.1: P��KAZ OTEV��T


  ** Napi�  o  pro vlo�en� ��dku pod kurzor a p�epnut� do Vkl�dac�ho m�du. **

  1. P�em�sti kurzor n�e na ��dek ozna�en� --->.

  2. Napi�  o (mal�) pro vlo�en� ��dku POD kurzor a p�epnut� do
     Vkl�dac�ho m�du.

  3. Nyn� zkop�ruj ��dek ozna�en� ---> a stiskni <ESC> pro ukon�en�
     Vkl�dac�ho m�du.
  
---> Po stisknut�  o  se kurzor p�em�st� na vlo�en� ��dek do Vkl�dac�ho
     m�du.

  4. Pro otev�en� ��dku NAD kurzorem jednodu�e napi� velk�  O  , m�sto
     mal�ho o. Vyzkou�ej si to na n�sleduj�c�m ��dku.
Vlo� ��dek nad t�mto naps�n�m Shift-O po um�st�n� kurzoru na tento ��dek.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekce 6.2: P��KAZ P�IDAT


	     ** Stiskni  a  pro vlo�en� textu ZA kurzor. **

  1. P�esu� kurzor na n�e na konec ��dky ozna�en� --->
     stisknut�m $ v Norm�ln�m m�du.

  2. Stiskni  a  (mal�) pro p�id�n� textu ZA znak, kter� je pod kurzorem.
     (Velk�  A  p�id� na konec ��dku.)

Pozn�mka: T�mto se vyhne� stisknut�  i  , posledn�ho znaku, textu na vlo�en�,
          <ESC>, kurzor doprava, a nakonec  x  na p�id�v�n� na konec ��dku!

  3. Nyn� dokon�� prvn� ��dek. V�imni si, �e p�id�v�n� je vlastn� stejn� jako
     Vkl�dac� m�d, krom� m�sta, kam se text vkl�d�.

---> Tento ��dek ti umo��uje nacvi�it
---> Tento ��dek ti umo��uje nacvi�it p�id�v�n� textu na konec ��dky.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekce 6.3: JIN� ZP�SOB NAHRAZOV�N�


         ** Napi� velk�  R  pro nahrazen� v�c ne� jednoho znaku. **

  1. P�esu� kurzor na prvn� ��dek ozna�en� --->.

  2. Um�sti kurzor na za��tek prvn�ho slova, kter� je odli�n� od druh�ho
     ��dku ozna�en�ho ---> (slovo 'posledn�').

  3. Nyn� stiskni  R  a nahra� zbytek textu na prvn�m ��dku p�eps�n�m
     star�ho textu tak, aby byl prvn� ��dek stejn� jako ten druh�.

---> Pro upraven� prvn�ho ��dku do tvaru toho posledn� na stran� pou�ij kl.
---> Pro upraven� prvn�ho ��dku do tvaru toho druh�ho, napi� R a nov� text.

  4. V�imni si, �e jakmile stiskne� <ESC> v�echen nezm�n�n� text z�st�v�.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		         Lekce 6.4: NASTAVEN� MO�NOST�

  ** Nastav mo�nost, �e vyhled�v�n� anebo nahrazov�n� nedb� velikosti p�smen **

  1. Vyhledej �et�zec 'ignore' naps�n�m:
     /ignore
     Zopakuj n�kolikr�t stisknut� kl�vesy n.

  2. Nastav mo�nost 'ic' (Ignore case) naps�n�m p��kazu:
     :set ic

  3. Nyn� znovu vyhledej 'ignore' stisknut�m: n
     N�kolikr�t hled�n� zopakuj stisknut�m kl�vesy n.

  4. Nastav mo�nosti 'hlsearch' a 'incsearch':
     :set hls is

  5. Nyn� znovu vykonej vyhled�vac� p��kaz a sleduj, co se stane:
     /ignore

  6. Pro vypnut� zv�raz�ov�n� v�sledk� napi�:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       SHRHNUT� LEKCE 6


  1. Stisknut�  o  otev�e nov� ��dek POD kurzorem a um�st� kurzor na vlo�en�
     ��dek do Vkl�dac�ho m�du.
     Naps�n� velk�ho  O  otev�e ��dek NAD ��dkem, na kter�m je kurzor.

  2. Stiskni  a  pro vlo�en� textu ZA znak na pozici kurzoru.
     Naps�n� velk�ho  A  automaticky p�id� text na konec ��dku.

  3. Stisknut� velk�ho  R  p�epne do Nahrazovac�ho m�du, dokud
     nestiskne� <ESC> pro jeho ukon�en�.

  4. Naps�n� ":set xxx" nastav� mo�nosti "xxx".








~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      LEKCE 7: P��KAZY ON-LINE N�POV�DY


		   ** Pou��vej on-line syst�m n�pov�dy **

  Vim m� obs�hl� on-line syst�m n�pov�dy. Pro za��tek vyzkou�ej jeden z
  n�sleduj�c�ch:
	- stiskni kl�vesu <HELP> (pokud ji m�)
	- stiskni kl�vesu <F1>  (pokud ji m�)
	- napi�  :help <ENTER>

  Napi�  :q <ENTER>  pro uzav�en� okna n�pov�dy.

  M��e� naj�t n�pov�du k jak�mukoliv t�matu p�id�n�m argumentu k
  p��kazu ":help". Zkus tyto (nezapome� stisknout <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  LEKCE 8: VYTVO�EN� INICIALIZA�N�HO SKRIPTU

		        ** Zapni funkce editoru Vim **

  Vim m� daleko v�ce funkc� ne� Vi, ale v�t�ina z nich je vypnuta ve v�choz�m
  nastaven�. Pro zapnut� n�kter�ch vytvo� soubor "vimrc".

  1. Za�ni upravovat soubor "vimrc". Toto z�vis� na pou�it�m syst�mu:
	:edit ~/.vimrc			pro Unix
	:edit $VIM/_vimrc		pro MS-Windows

  2. Nyn� �ti uk�zkov� "vimrc" soubor:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Ulo� soubor pomoc�:

	:write

  Po p��t�m startu Vim se zapne zv�raz�ov�n� syntaxe.
  Do souboru "vimrc" m��e� p�idat v�echny svoje up�ednost�ovan� nastaven�.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Toto ukon�uje v�uku Vim, kter� byla my�len� jako stru�n� p�ehled
  editoru Vim, tak akor�t posta�uj�c� pro lehk� a obstojn� pou��v�n� editoru.
  Tato v�uka m� daleko od �plnosti, proto�e Vim obsahuje podstatn� v�ce
  p��kaz�. D�le si p�e�ti u�ivatelsk� manu�l: ":help user-manual".

  Pro dal�� studium je doporu�en� kniha:
	Vim - Vi Improved - od Steve Oualline
	Nakladatel: New Riders
  Prvn� kniha ur�en� pro Vim. Obzvl�t� vhodn� pro za��te�n�ky.
  Obsahuje mno�stv� p��klad� a obr�zk�.
  viz http://iccf-holland.org/click5.html

  Tato kniha je star�� a v�ce v�novan� Vi ne� Vim, ale tak� doporu�en�:
	Learning the Vi Editor - od Linda Lamb
	Nakladatel: O'Reilly & Associates Inc.
  Je to dobr� kniha pro z�sk�n� v�domost� t�m� o v�em, co m��ete s Vi d�lat.
  �est� vyd�n� obsahuje t� informace o Vim.

  Tato v�uka byla napsan� autory Michael C. Pierce a Robert K. Ware,
  Colorado School of Mines s pou�it�m my�lenek od: Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Upravil pro Vim: Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  P�eklad do �e�tiny: Lubo� Turek
  E-Mail: lubos.turek@gmail.com
  2007 Feb 28 
PK�j�Z&��,77vim80/tutor/README.el.cp737.txtnu�[����� Tutor �夘� �� "������������" ����㚞�� ��� �⦬� ��㩫�� ���
����ᡫ� Vim.

�� ������櫜��� �⦠ ��㩫�� ������ �� �� �����驦�� �� ���櫜�� ���
�� 騘. �� ����⢜��� �夘� 櫠 �����嫜 �� �ᤜ�� �� ���� ������
���������嘪 ����⤦� ����������餫�� ��� ����ᡫ� Vim.

�� Tutor �夘� ⤘ ����� ��� ����⮜� �� ���㣘�� ��� ������������.
�����嫜 �� �����⩜�� ���� "vim tutor" ��� ���� �� �������㩜�� ���
����圪 ��� ���㣘��. �� ���㣘�� �� ��� ��礜 �� ��������㩜��
�� �����, ������ ��� �� ������ ��� ��������� ��������� ���.

�� �穫��� Unix �����嫜 ��婞� �� ����������㩜�� �� ��暨���� "vimtutor".
�� ��������㩜� ��高 ⤘ ��殜��� ���嚨��� ��� tutor.

�� ������� �� ������� ������櫜�� ����ਞ�⤘ ���㣘�� ���� ��� �� ����
��� �����嫞�� ��椦. ������驫� �� �������� �� �� �� �⢘�� ��� ���墜��
��� �������㧦�� �����驜�� �ᤜ��.

Bob Ware, Colorado School of Mines, Golden, Co 80401, USA
(303) 273-3987
bware@mines.colorado.edu bware@slate.mines.colorado.edu bware@mines.bitnet

[�� ����� ���� ��������㟞�� ��� ��� Vim ��� ��� Bram Moolenaar]
PK�j�ZăTrS~S~vim80/tutor/tutor.vi.utf-8nu�[���===============================================================================
=    Xin chào mừng bạn đến với Hướng dẫn dùng Vim    -    Phiên bản 1.5      =
===============================================================================
	Vim là một trình soạn thảo rất mạnh. Vim có rất nhiều câu lệnh,
	chính vì thế không thể trình bày hết được trong cuốn hướng dẫn này.
	Cuốn hướng dẫn chỉ đưa ra những câu lệnh để giúp bạn sử dụng Vim
	được dễ dàng hơn. Đây cũng chính là mục đich của sách

	Cần khoảng 25-30 phút để hoàn thành bài học, phụ thuộc vào thời
	gian thực hành.

	Các câu lệnh trong bài học sẽ thay đổi văn bản này. Vì thế hãy tạo
	một bản sao của tập tin này để thực hành (nếu bạn dùng "vimtutor"
	thì đây đã là bản sao).

	Hãy nhớ rằng hướng dẫn này viết với nguyên tắc "học đi đôi với hành".
	Có nghĩa là bạn cần chạy các câu lệnh để học chúng. Nếu chỉ đọc, bạn
	sẽ quên các câu lệnh!

	Bây giờ, cần chắc chắn là phím Shift KHÔNG bị nhấn và hãy nhấn phím
	j đủ số lần cần thiết (di chuyển con trỏ) để Bài 1.1 hiện ra đầy đủ
	trên màn hình.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Bài 1.1:  DI CHUYỂN CON TRỎ


   ** Để di chuyển con trỏ, nhấn các phím h,j,k,l như đã chỉ ra. **
	     ^
	     k		    Gợi ý:  phím h ở phía trái và di chuyển sang trái.
	< h	l >		   phím l ở bên phải và di chuyển sang phải.
	     j			   phím j trong như một mũi tên chỉ xuống
	     v
  1. Di chuyển con trỏ quanh màn hình cho đến khi bạn quen dùng.

  2. Nhấn và giữ phím (j) cho đến khi nó lặp lại.
---> Bây giờ bạn biết cách chuyển tới bài học thứ hai.

  3. Sử dụng phím di chuyển xuống bài 1.2.

Chú ý: Nếu bạn không chắc chắn về những gì đã gõ, hãy nhấn <ESC> để chuyển vào
	 chế độ Câu lệnh, rồi gõ lại những câu lệnh mình muốn.

Chú ý: Các phím mũi tên cũng làm việc. Nhưng một khi sử dụng thành thạo hjkl,
	 bạn sẽ di chuyển con trỏ nhanh hơn so với các phím mũi tên.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Bài 1.2: VÀO VÀ THOÁT VIM


  !! CHÚ Ý: Trước khi thực hiện bất kỳ lệnh nào, xin hãy đọc cả bài học này!!

  1. Nhấn phím <ESC> (để chắc chắn là bạn đang ở chế độ Câu lệnh).

  2. Gõ:			:q! <ENTER>.

---> Lệnh này sẽ thoát trình soạn thảo mà KHÔNG ghi nhớ bất kỳ thay đổi nào mà bạn đã làm.
     Nếu bạn muốn ghi nhớ những thay đổi đó và thoát thì hãy gõ:
				:wq  <ENTER>

  3. Khi thấy dấu nhắc shell, hãy gõ câu lệnh đã đưa bạn tới hướng dẫn này. Có
	 thể là lệnh:	vimtutor vi <ENTER>
     Thông thường bạn dùng:	vim tutor.vi<ENTER>

---> 'vim' là trình soạn thảo vim, 'tutor.vi' là tập tin bạn muốn soạn thảo.

  4. Nếu bạn đã nhớ và nắm chắc những câu lệnh trên, hãy thực hiện các bước từ
	 1 tới 3 để thoát và quay vào trình soạn thảo. Sau đó di chuyển con trỏ
	 tới Bài 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Bài 1.3: SOẠN THẢO VĂN BẢN - XÓA


** Trong chế độ Câu lệnh nhấn	x  để xóa ký tự nằm dưới con trỏ. **

  1. Di chuyển con trỏ tới dòng có dấu --->.

  2. Để sửa lỗi, di chuyển con trỏ để nó nằm trên ký tự sẽ bị
	 xóa.

  3. Nhấn phím	x  để xóa ký tự không mong muốn.

  4. Lặp lại các bước từ 2 tới 4 để sửa lại câu.

---> Emm xiinh em đứnng chỗ nào cũnkg xinh.

  5. Câu trên đã sửa xong, hãy chuyển tới Bài 1.4.

Chú ý: Khi học theo cuốn hướng dẫn này đừng cố nhớ, mà học từ thực hành.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Bài 1.4: SOẠN THẢO VĂN BẢN - CHÈN


	 ** Trong chế độ Câu lệnh nhấn  i  để chèn văn bản. **

  1. Di chuyển con trỏ tới dòng có dấu ---> đầu tiên.

  2. Để dòng thứ nhất giống hệt với dòng thứ hai, di chuyển con trỏ lên ký tự
	 đầu tiên NGAY SAU chỗ muốn chèn văn bản.

  3. Nhấn	i	và gõ văn bản cần thêm.

  4. Sau mỗi lần chèn từ còn thiếu nhấn <ESC> để trở lại chế dộ Câu lệnh.
     Lặp lại các bước từ 2 tới 4 để sửa câu này.

---> Mot lam chang nen , ba cay chum lai hon cao.
---> Mot cay lam chang nen non, ba cay chum lai nen hon nui cao.

  5. Sau khi thấy quen với việc chèn văn bản hãy chuyển tới phần tổng kết
	 ở dưới.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       TỔNG KẾT BÀI 1


  1. Con trỏ được di chuyển bởi các phím mũi tên hoặc các phím hjkl.
	 h (trái)	j (xuống)       k (lên)	    l (phải)

  2. Để vào Vim (từ dấu nhắc %) gõ:  vim TÊNTẬPTIN <ENTER>

  3. Muốn thoát Vim gõ:	   <ESC>   :q!	 <ENTER>  để vứt bỏ mọi thay đổi.
	     HOẶC gõ:	   <ESC>   :wq	 <ENTER>  để ghi nhớ thay đổi.

  4. Để xóa bỏ ký tự nằm dưới con trỏ trong chế độ Câu lệnh gõ:  x

  5. Để chèn văn bản tại vị trí con trỏ trong chế độ Câu lệnh gõ:
	 i     văn bản sẽ nhập	<ESC>

CHÚ Ý: Nhấn <ESC> sẽ đưa bạn vào chế độ Câu lệnh hoặc sẽ hủy bỏ một câu lệnh
	 hay đoạn câu lệnh không mong muốn.

Bây giờ chúng ta tiếp tục với Bài 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Bài 2.1: CÁC LỆNH XÓA


	    ** Gõ	dw	để xóa tới cuối một từ. **

  1. Nhấn  <ESC>  để chắc chắn là bạn đang trong chế độ Câu lệnh.

  2. Di chuyển con trỏ tới dòng có dấu --->.

  3. Di chuyển con trỏ tới ký tự đầu của từ cần xóa.

  4. Gõ   dw	 để làm từ đó biến mất.

  CHÚ Ý: các ký tự dw sẽ xuất hiện trên dòng cuối cùng của màn hình khi bạn gõ
	 chúng. Nếu bạn gõ nhầm, hãy nhấn <ESC> và làm lại từ đầu.

---> Khi trái tỉm tìm tim ai như mùa đông giá lạnh lanh
	 Anh đâu thành cánh én nhỏ trùng khơi.

  5. Lặp lại các bước cho đến khi sửa xong câu thơ rồi chuyển tới Bài 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Bài 2.2: CÁC CÂU LỆNH XÓA KHÁC


	   ** gõ  d$	để xóa tới cuối một dòng. **

  1. Nhấn  <ESC>  để chắc chắn là bạn đang trong chế độ Câu lệnh.

  2. Di chuyển con trỏ tới dòng có dấu --->.

  3. Di chuyển con trỏ tới cuối câu đúng (SAU dấu . đầu tiên).

  4. Gõ    d$    để xóa tới cuối dòng.

---> Đã qua đi những tháng năm khờ dại. thừa thãi.


  5. Chuyển tới Bài 2.3 để hiểu cái gì đang xảy ra.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Bài 2.3: CÂU LỆNH VÀ ĐỐI TƯỢNG


  Câu lệnh xóa	d	có dạng như sau:

	 [số]   d	đối_tượng	    HOẶC	     d	 [số]   đối_tượng
  Trong đó:
    số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
    d - là câu lệnh xóa.
    đối_tượng - câu lệnh sẽ thực hiện trên chúng (liệt kê phía dưới).

  Danh sách ngắn của đối tượng:
    w - từ con trỏ tới cuối một từ, bao gồm cả khoảng trắng.
    e - từ con trỏ tới cuối một từ, KHÔNG bao gồm khoảng trắng.
    $ - từ con trỏ tới cuối một dòng.

CHÚ Ý:  Dành cho những người ham tìm hiểu, chỉ nhấn đối tượng trong chế độ Câu
	 lệnh mà không có câu lệnh sẽ di chuyển con trỏ như trong danh sách trên.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Bài 2.4: TRƯỜNG HỢP NGOẠI LỆ CỦA QUY LUẬT  'CÂU LỆNH-ĐỐI TƯỢNG'


	       ** Gõ	 dd   để xóa cả một dòng. **

  Người dùng thường xuyên xóa cả một dòng, vì thế các nhà phát triển Vi đã
  quyết định dùng hai chữ d để đơn giản hóa thao tác này.

  1. Di chuyển con trỏ tới dòng thứ hai trong cụm phía dưới.
  2. Gõ dd để xóa dòng này.
  3. Bây giờ di chuyển tới dòng thứ  tư.
  4. Gõ   2dd   (hãy nhớ lại bộ ba  số-câu lệnh-đối tượng) để xóa hai dòng.

	 1) Trong tim em khắc sâu bao kỉ niệm
	 2) Tình yêu chân thành em dành cả cho anh
	 3) Dẫu cuộc đời như bể dâu thay đổi
	 4) Anh mãi là ngọn lửa ấm trong đêm
	 5) Đã qua đi những tháng năm khờ dại
	 7) Hãy để tự em lau nước mắt của mình
	 8) Lặng lẽ sống những đêm dài bất tận
	 9) Bao khổ đau chờ tia nắng bình minh

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Bài 2.5: CÂU LỆNH "HỦY THAO TÁC"


   ** Nhấn  u	để hủy bỏ những câu lệnh cuối cùng,   U	 để sửa cả một dòng. **

  1. Di chuyển con trỏ tới dòng có dấu ---> và đặt con trỏ trên từ có lỗi
	 đầu tiên
  2. Gõ  x  để xóa chữ cái gây ra lỗi đầu tiên.
  3. Bây giờ gõ  u  để hủy bỏ câu lệnh vừa thự hiện (xóa chữ cái).
  4. Dùng câu lệnh	x	để sửa lỗi cả dòng này.
  5. Bây giờ gõ chữ  U  hoa để phục hồi trạng thái ban đầu của dòng.
  6. Bây giờ gõ  u  vài lần để hủy bỏ câu lệnh  U  và các câu lệnh trước.
  7. Bây giờ gõ CTRL-R (giữ phím CTRL và gõ R) và lầu để thực hiện
     lại các câu lệnh (hủy bỏ các câu lệnh hủy bỏ).

---> Câyy ccó cộii, nuước csó nguuồn.

  8. Đây là những câu lệnh rất hữu ích.  Bây giờ chuyển tới Tổng kết Bài 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       TỔNG KẾT BÀI 2


  1. Để xóa từ con trỏ tới cuối một từ gõ:    dw

  2. Để xóa từ con trỏ tới cuối một dòng gõ:    d$

  3. Để xóa cả một dòng gõ:    dd

  4. Một câu lệnh trong chế độ Câu lệnh có dạng:

       [số]   câu_lệnh   đối_tượng     HOẶC     câu_lệnh	[số]   đối_tượng
     trong đó:
		số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
		câu_lệnh - là những gì thực hiện, ví dụ	d	dùng để xóa.
		đối_tượng - câu lệnh sẽ thực hiện trên chúng, ví dụ	w (từ),
       	$ (tới cuối một dòng), v.v...

  5. Để hủy bỏ thao tác trước, gõ:	     u	 (chữ u thường)
     Để hủy bỏ tất cả các thao tác trên một dòng, gõ: U	 (chữ U hoa)
     Để hủy bỏ các câu lệnh hủy bỏ, gõ:		     CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Bài 3.1: CÂU LỆNH DÁN


       ** Gõ	p  để dán những gì vừa xóa tới sau con trỏ. **

  1. Di chuyển con trỏ tới dòng đầu tiên trong cụm ở dưới.

  2. Gõ  dd  để xóa và ghi lại một dòng trong bộ nhớ đệm của Vim.

  3. Di chuyển con trỏ tới dòng Ở TRÊN chỗ cần dán.

  4. Trong chế độ Câu lệnh, gõ    p	 để thay thế dòng.

  5. Lặp lại các bước từ 2 tới 4 để đặt các dòng theo đúng thứ tự của chúng.

     d) Niềm vui như gió xưa bay nhè nhẹ
     b) Em vẫn mong anh sẽ đến với em
     c) Đừng để em mất đi niềm hy vọng đó
     a) Ai sẽ giúp em vượt qua sóng gió
	 e) Dễ ra đi khó giữ lại bên mình


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Bài 3.2: CÂU LỆNH THAY THẾ


  ** Gõ  r  và một ký tự để thay thế ký tự nằm dưới con trỏ. **

  1. Di chuyển con trỏ tới dòng có dấu --->.

  2. Di chuyển con trỏ tới ký tự gõ sai đầu tiên.

  3. Gõ   r	và ký tự đúng.

  4. Lặp lại các bước từ 2 đến 4 để sửa cả dòng.

--->  "Trên đời nài làm gì có đườmg, người to đi mãi rồi thànk đường là tHôi"
--->  "Trên đời này làm gì có đường, người ta đi mãi rồi thành đường mà thôi"

  5. Bây giờ chuyển sang Bài 3.3.

CHÚ Ý: Hãy nhớ rằng bạn cần thực hành, không nên "học vẹt".



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Bài 3.3: CÂU LỆNH THAY ĐỔI


	   ** Để thay đổi một phần hay cả một từ, gõ  cw . **

  1. Di chuyển con trỏ tới dòng có dấu --->.

  2. Đặt con trỏ trên chữ trong.

  3. Gõ  cw  và sửa lại từ (trong trường hợp này, gõ  'ine'.)

  4. Gõ <ESC> và chuyển tới lỗi tiếp theo (chữ cái đầu tiên trong số cần thay.)

  5. Lặp lại các bước 3 và 4 cho tới khi thu được dòng như dòng thứ hai.

---> Trên dùgn này có một dầy từ cần tyays đổi, sử dunk câu lệnh thay đổi.
---> Trên dong này có một vai từ cần thay đổi, sử dung câu lệnh thay đổi.

Chú ý rằng  cw  không chỉ thay đổi từ, nhưng còn đưa bạn vào chế độ chèn.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Bài 3.4: TIẾP TỤC THAY ĐỔI VỚI c


     ** Câu lệnh thay đổi được sử dụng với cùng đối tượng như câu lệnh xóa. **

  1. Câu lệnh thay đổi làm việc tương tự như câu lệnh xóa. Định dạng như sau:

        [số]   c   đối_tượng     HOẶC     c	[số]   đối_tượng

  2. Đối tượng cũng giống như ở trên, ví dụ   w (từ), $ (cuối dòng), v.v...

  3. Di chuyển con trỏ tới dòng có dấu --->.

  4. Di chuyển con trỏ tới dòng có lỗi đầu tiên.

  5. Gõ  c$  để sửa cho giống với dòng thứ hai và gõ <ESC>.

---> Doan cuoi dong nay can sua de cho giong voi dong thu hai.
---> Doan cuoi dong nay can su dung cau lenh c$ de sua.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       TỔNG KẾT BÀI 3


  1. Để dán đoạn văn bản vừa xóa, gõ p. Câu lệnh này sẽ đặt đoạn văn bản này
	 PHÍA SAU con trỏ (nếu một dòng vừa bị xóa, dòng này sẽ được đặt vào dòng
	 nằm dưới con trỏ).

  2. Để thay thế ký tự dưới con trỏ, gõ   r   và sau đó gõ
     ký tự muốn thay vào.

  3. Câu lệnh thay đổi cho phép bạn thay đổi đối tượng chỉ ra từ con
     trỏ tới cuối đối tượng.  vd. Gõ  cw  để thay đổi từ
     con trỏ tới cuối một từ, c$	để thay đổi tới cuối một dòng.

  4. Định dạng để thay đổi:

	[số]   c   đối_tượng     HOẶC     c	[số]   đối_tượng

Bây giờ chúng ta tiếp tục bài học mới.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Bài 4.1: THÔNG TIN VỀ TẬP TIN VÀ VỊ TRÍ TRONG TẬP TIN


  ** Gõ CTRL-g để hiển thị vị trí của bạn trong tập tin và thông tin về tập tin.
     Gõ SHIFT-G để chuyển tới một dòng trong tập tin. **

  Chú ý: Đọc toàn bộ bài học này trước khi thực hiện bất kỳ bước nào!!

  1. Giữ phím Ctrl và nhấn  g .  Một dòng thông tin xuất hiện tại cuối trang
     với tên tập tin và dòng mà bạn đang nằm trên.  Hãy nhớ số dòng này
     Cho bước số 3.

  2. Nhấn shift-G để chuyển tới cuối tập tin.

  3. Gõ số dòng mà bạn đã nằm trên và sau đó shift-G.  Thao tác này sẽ đưa bạn
     trở lại dòng mà con trỏ đã ở trước khi nhấn tổ hợp Ctrl-g.
     (Khi bạn gõ số, chúng sẽ KHÔNG hiển thị trên màn hình.)

  4. Nếu bạn cảm thấy đã hiểu rõ, hãy thực hiện các bước từ 1 tới 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Bài 4.2: CÂU LỆNH TÌM KIẾM


     ** Gõ  /  và theo sau là cụm từ muốn tìm kiếm. **

  1. Trong chế độ Câu lệnh gõ ký tự  /  .Chú ý rằng ký tự này  và con trỏ sẽ
	 xuất hiện tại cuối màn hình giống như câu lệnh  :	.

  2. Bây giờ gõ 'loiiiii' <ENTER>.  Đây là từ bạn muốn tìm.

  3. Để tìm kiếm cụm từ đó lần nữa, đơn giản gõ  n .
     Để tìm kiếm cụm từ theo hướng ngược lại, gõ  Shift-N .

  4. Nếu bạn muối tìm kiếm cụm từ theo hướng ngược lại đầu tập tin, sử dụng
     câu lệnh  ?  thay cho /.

---> "loiiiii" là những gì không đúng lắm;  loiiiii thường xuyên xảy ra.

Chú ý: Khi tìm kiếm đến cuối tập tin, việc tìm kiếm sẽ tiếp tục từ đầu
      tập tin này.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Bài 4.3: TÌM KIẾM CÁC DẤU NGOẶC SÁNH ĐÔI


	      ** Gõ  %  để tìm kiếm ),], hay } . **

  1. Đặt con trỏ trên bất kỳ một (, [, hay { nào trong dòng có dấu --->.

  2. Bây giờ gõ ký tự  %  .

  3. Con trỏ sẽ di chuyển đến dấu ngoặc tạo cặp (dấu đóng ngoặc).

  4. Gõ  %  để chuyển con trỏ trở lại dấu ngoặc đầu tiên (dấu mở ngoặc).

---> Đây là ( một dòng thử nghiệm với các dấu ngoặc (, [ ] và { } . ))

Chú ý: Rất có ích khi sửa lỗi chương trình, khi có các lỗi thừa thiếu dấu ngoặc!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Bài 4.4: MỘT CÁCH SỬA LỖI


	** Gõ  :s/cũ/mới/g  để thay thế 'mới' vào 'cũ'. **

  1. Di chuyển con trỏ tới dòng có dấu --->.

  2. Gõ  :s/duou/ruou <ENTER> .  Chú ý rằng câu lệnh này chỉ thay đổi từ tìm
     thấy đầu tiên trên dòng (từ 'duou' đầu dòng).

  3. Bây giờ gõ	 :s/duou/ruou/g	   để thực hiện thay thế trên toàn bộ dòng.
     Lệnh này sẽ thay thế tất cả những từ ('duou') tìm thấy trên dòng.

---> duou ngon phai co ban hie. Khong duou cung khong hoa.

  4. Để thay thế thực hiện trong đoạn văn bản giữa hai dòng,
     gõ   :#,#s/cũ/mới/g    trong đó #,# là số thứ tự của hai dòng.
     Gõ   :%s/cũ/mới/g    để thực hiện thay thế trong toàn bộ tập tin.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       TỔNG KẾT BÀI 4


  1. Ctrl-g  vị trí của con trỏ trong tập tin và thông tin về tập tin.
     Shift-G  di chuyển con trỏ tới cuối tập tin.  Số dòng và theo sau
     là  Shift-G  di chuyển con trỏ tới dòng đó.

  2. Gõ  /	và cụm từ theo sau để tìm kiếm cụm từ VỀ PHÍA TRƯỚC.
     Gõ  ?	và cụm từ theo sau để tìm kiếm cụm từ NGƯỢC TRỞ LẠI.
     Sau một lần tìm kiếm gõ  n  để tìm kiếm cụm từ lại một lần nữa theo hướng
     đã tìm hoặc  Shift-N  để tìm kiếm theo hướng ngược lại.

  3. Gõ  %	khi con trỏ nằm trên một  (,),[,],{, hay }  sẽ chỉ ra vị trí của
     dấu ngoặc còn lại trong cặp.

  4. Để thay thế 'mới' cho 'cũ' đầu tiên trên dòng, gõ    :s/cũ/mới
     Để thay thế 'mới' cho tất cả 'cũ' trên dòng, gõ	   :s/cũ/mới/g
     Để thay thế giữa hai dòng, gõ	   :#,#s/cũ/mới/g
     Để thay thế trong toàn bộ tập tin, gõ	   :%s/cũ/mới/g
     Để chương trình hỏi lại trước khi thay thế, thêm 'c'	:%s/cũ/mới/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lesson 5.1: CÁCH THỰC HIỆN MỘT CÂU LỆNH NGOẠI TRÚ


   ** Gõ  :!	theo sau là một câu lệnh ngoại trú để thực hiện câu lệnh đó. **

  1. Gõ câu lệnh quen thuộc	:  để đặt con trỏ tại cuối màn hình.
     Thao tác này cho phép bạn nhập một câu lệnh.

  2. Bây giờ gõ ký tự  !  (chấm than).  Ký tự này cho phép bạn
     thực hiện bất kỳ một câu lệnh shell nào.

  3. Ví dụ gõ   ls   theo sau dấu ! và gõ <ENTER>.  Lệnh này
	 sẽ hiển thị nội dung của thư mục hiện thời, hoặc sử dụng
     lệnh   :!dir	nếu ls không làm việc.

Chú ý:  Có thể thực hiện bất kỳ câu lệnh ngoại trú nào theo cách này.

Chú ý:  Tất cả các câu lệnh  :  cần kết thúc bởi phím <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Bài 5.2: GHI LẠI CÁC TẬP TIN


     ** Để ghi lại các thay đổi, gõ  :w TÊNTỆPTIN. **

  1. Gõ  :!dir  hoặc  :!ls  để lấy bảng liệt kê thư mục hiện thời.
     Như bạn đã biết, bạn cần gõ <ENTER> để thực hiện.

  2. Chọn một tên tập tin chưa có, ví dụ TEST.

  3. Bây giờ gõ:	 :w TEST   (trong đó TEST là tên tập tin bạn đã chọn.)

  4. Thao tác này ghi toàn bộ tập tin	(Hướng dẫn dùng Vim) dưới tên TEST.
     Để kiểm tra lại, gõ    :!dir   một lần nữa để liệt kê thư mục.

Chú ý: Nếu bạn thoát khỏi Vim và quay trở lại với tên tập tin TEST, thì tập
      tin sẽ là bản sao của hướng dẫn tại thời điểm bạn ghi lại.

  5. Bây giờ xóa bỏ tập tin (MS-DOS):    :!del TEST
				hay (Unix):	:!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Bài 5.3: CÂU LỆNH GHI CHỌN LỌC


	** Để ghi một phần của tập tin, gõ   :#,# w TÊNTẬPTIN **

  1. Gõ lại một lần nữa  :!dir  hoặc  :!ls  để liệt kê nội dung thư mục
     rồi chọn một tên tập tin thích hợp, ví dụ TEST.

  2. Di chuyển con trỏ tới đầu trang này, rồi gõ  Ctrl-g  để tìm ra số thứ
     tự của dòng đó.  HÃY NHỚ SỐ THỨ TỰ NÀY!

  3. Bây giờ di chuyển con trỏ tới dòng cuối trang và gõ lại Ctrl-g lần nữa.
	 HÃY NHỚ CẢ SỐ THỨ TỰ NÀY!

  4. Để CHỈ ghi lại một phần vào một tập tin, gõ   :#,# w TEST   trong đó #,#
     là hai số thứ tự bạn đã nhớ (đầu,cuối) và TEST là tên tập tin.

  5. Nhắc lại, xem tập tin của bạn có ở đó không với  :!dir  nhưng ĐỪNG xóa.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Bài 5.4: ĐỌC VÀ KẾT HỢP CÁC TẬP TIN


       ** Để chèn nội dung của một tập tin, gõ   :r TÊNTẬPTIN **

  1. Gõ   :!dir   để chắc chắn là có tệp tin TEST.

  2. Đặt con trỏ tại đầu trang này.

CHÚ Ý:  Sau khi thực hiện Bước 3 bạn sẽ thấy Bài 5.3. Sau đó cần di chuyển
	 XUỐNG bài học này lần nữa.

  3. Bây giờ dùng câu lệnh   :r TEST   để đọc tập tin TEST, trong đó TEST là
     tên của tập tin.

CHÚ Ý:  Tập tin được đọc sẽ đặt bắt đầu từ vị trí của con trỏ.

  4. Để kiểm tra lại, di chuyển con trỏ ngược trở lại và thấy rằng bây giờ
     có hai Bài 5.3, bản gốc và bản vừa chèn.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      TỔNG KẾT BÀI 5


  1.  :!câulệnh  thực hiện một câu lệnh ngoại trú

      Một vài ví dụ hữu ích:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  liệt kê nội dung một thư mục.
	  :!del TÊNTẬPTIN   :!rm TÊNTẬPTIN   -  xóa bỏ tập tin TÊNTẬPTIN.

  2.  :w TÊNTẬPTIN  ghi tập tin hiện thời của Vim lên đĩa với tên TÊNTẬPTIN.

  3.  :#,#w TÊNTẬPTIN  ghi các dòng từ # tới # vào tập tin TÊNTẬPTIN.

  4.  :r TÊNTẬPTIN  đọc tập tin trên đĩa TÊNTẬPTIN và chèn nội dung của nó vào
      tập tin hiện thời sau vị trí của con trỏ.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Bài 6.1: CÂU LỆNH TẠO DÒNG


 ** Gõ  o  để mở một dòng phía dưới con trỏ và chuyển vào chế độ Soạn thảo. **

  1. Di chuyển con trỏ tới dòng có dấu --->.

  2. Gõ  o (chữ thường) để mở một dòng BÊN DƯỚI con trỏ và chuyển vào chế độ
     Soạn thảo.

  3. Bây giờ sao chép dòng có dấu ---> và nhấn <ESC> để thoát khỏi chế độ Soạn
	 thảo.

---> Sau khi gõ  o  con trỏ sẽ đặt trên dòng vừa mở trong chế độ Soạn thảo.

  4. Để mở một dòng Ở TRÊN con trỏ, đơn giản gõ một chữ	O hoa, thay cho
     chữ  o thường.  Hãy thử thực hiện trên dòng dưới đây.
Di chuyển con trỏ tới dòng này, rồi gõ Shift-O sẽ mở một dòng trên nó.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Bài 6.2: CÂU LỆNH THÊM VÀO


	     ** Gõ  a  để chèn văn bản vào SAU con trỏ. **

  1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->
     bằng cách gõ  $	trong chế độ câu lệnh.

  2. Gõ  a  (chữ thường) để thêm văn bản vào SAU ký tự dưới con trỏ.
     (Chữ  A  hoa thêm văn bản vào cuối một dòng.)

Chú ý: Lệnh này thay cho việc gõ  i , ký tự cuối cùng, văn bản muốn chèn,
     <ESC>, mũi tên sang phải, và cuối cùng, x , chỉ để thêm vào cuối dòng!

  3. Bây giờ thêm cho đủ dòng thứ nhất. Chú ý rằng việc thêm giống hệt với
     việc chèn, trừ vị trí chèn văn bản.

---> Dong nay cho phep ban thuc hanh
---> Dong nay cho phep ban thuc hanh viec them van ban vao cuoi dong.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Bài 6.3: MỘT CÁCH THAY THẾ KHÁC


      ** Gõ chữ cái  R  hoa để thay thế nhiều ký tự. **

  1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->.

  2. Đặt con trỏ tại chữ cái đầu của từ đầu tiên khác với dòng có dấu
     ---> tiếp theo (từ 'tren').

  3. Bây giờ gõ R và thay thế phần còn lại của dòng thứ nhất bằng cách gõ
     đè lên văn bản cũ để cho hai dòng giống nhau.

---> De cho dong thu nhat giong voi dong thu hai tren trang nay.
---> De cho dong thu nhat giong voi dong thu hai, go R va van ban moi.

  4. Chú ý rằng khi bạn nhấn <ESC> để thoát, đoạn văn bản không sửa đổi sẽ
	 được giữ nguyên.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Bài 6.4: THIẾT LẬP CÁC THAM SỐ

	  ** Thiết lập một tùy chọn để việc tìm kiếm hay thay thế lờ đi kiểu chữ **

  1. Tìm kiếm từ 'lodi' bằng cách gõ:
     /lodi
     Lặp lại vài lần bằng phím n.

  2. Đặt tham số 'ic' (Lodi - ignore case) bằng cách gõ:
     :set ic

  3. Bây giờ thử lại tìm kiếm 'lodi' bằng cách gõ: n
     Lặp lại vài lần bằng phím n.

  4. Đặt các tham số 'hlsearch' và 'incsearch':
     :set hls is

  5. Bây giờ nhập lại câu lệnh tìm kiếm một lần nữa và xem cái gì xảy ra:
     /lodi

  6. Để xóa bỏ việc hiện sáng từ tìm thấy, gõ:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       TỔNG KẾT BÀI 6


  1. Gõ  o	mở một dòng phía DƯỚI con trỏ và đặt con trỏ trên dòng vừa mở
     trong chế độ Soạn thảo.
     Gõ một chữ  O  hoa để mở dòng phía TRÊN dòng của con trỏ.

  2. Gõ  a  để chèn văn bản vào SAU ký tự nằm dưới con trỏ.
     Gõ một chữ  A  hoa tự động thêm văn bản vào cuối một dòng.

  3. Gõ một chữ  R  hoa chuyển vào chế độ Thay thế cho đến khi nhấn  <ESC>.

  4. Gõ ":set xxx" sẽ đặt tham số "xxx"









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Bài 7: CÂU LỆNH TRỢ GIÚP


		      ** Sử dụng hệ thống trợ giúp có sẵn **

  Vim có một hệ thống trợ giúp đầy đủ. Để bắt đầu, thử một trong ba
  lệnh sau:
	- nhấn phím <HELP> (nếu bàn phím có)
	- nhấn phím <F1> (nếu bàn phím có)
	- gõ   :help <ENTER>

  Gõ   :q <ENTER>   để đóng cửa sổ trợ giúp.

  Bạn có thể tìm thấy trợ giúp theo một đề tài, bằng cách đưa tham số tới
  câu lệnh ":help".  Hãy thử (đừng quên gõ <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Bài 8: TẠO MỘT SCRIPT KHỞI ĐỘNG

			  ** Bật các tính năng của Vim **

  Vim có nhiều tính năng hơn Vi, nhưng hầu hết chúng bị tắt theo mặc định.
  Để sử dụng các tính năng này bạn cần phải tạo một tập tin "vimrc".

  1. Soạn thảo tệp tin "vimrc", phụ thuộc vào hệ thống của bạn:
	:edit ~/.vimrc			đối với Unix
	:edit $VIM/_vimrc		đối với MS-Windows

  2. Bây giờ đọc tập tin "vimrc" ví dụ:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Ghi lại tập tin:

	:write

  Trong lần khởi động tiếp theo, Vim sẽ sử dụng việc hiện sáng cú pháp.
  Bạn có thể thêm các thiết lập ưa thích vào tập tin "vimrc" này.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Bài học hướng dẫn sử dụng Vim (Vim Tutor) kết thúc tại đây.  Bài học đưa ra
  cái nhìn tổng quát về trình soạn thảo Vim, chỉ đủ để bạn có thể sử dụng
  trình soạn thảo một cách dễ dàng. Bài học còn rất xa để có thể nói là đầy
  đủ vì Vim có rất rất nhiều câu lệnh. Tiếp theo xin hãy đọc hướng dẫn người
  dùng: ":help user-manual".

  Cuốn sách sau được khuyên dùng cho việc nghiên cứu sâu hơn:
	Vim - Vi Improved - Tác giả: Steve Oualline
	Nhà xuất bản: New Riders
  Cuốn sách đầu tiên dành hoàn toàn cho Vim. Đặc biệt có ích cho người mới.
  Có rất nhiều ví dụ và tranh ảnh.
  Hãy xem: http://iccf-holland.org/click5.html

  Cuốn sách tiếp theo này xuất bản sớm hơn và nói nhiều về Vi hơn là Vim,
  nhưng cũng rất nên đọc:
	Learning the Vi Editor - Tác giả: Linda Lamb
	Nhà xuất bản: O'Reilly & Associates Inc.
  Đây là một cuốn sách hay và cho bạn biết tất cả cách thực hiện những gì muốn
  làm với Vi. Lần xuất bản thứ sáu đã thêm thông tin về Vim.

  Bài học hướng dẫn này viết bởi Michael C. Pierce và Robert K. Ware,
  Colorado School of Mines sử dụng ý tưởng của Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Sửa đổi cho Vim bởi Bram Moolenaar.

  Dịch bởi: Phan Vĩnh Thịnh <teppi@vnlinux.org>, 2005
  Translator: Phan Vinh Thịnh <teppi@vnlinux.org>, 2005
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z����
v
vvim80/tutor/tutor.elnu�[���===============================================================================
=    � �� � � � � � � � �    � � �   V I M   T u t o r    -    ������ 1.5     =
===============================================================================

     � Vim ����� ���� �������� �������� �� ��� ������ �������, ����
     ������ ��� �� ��������� �� ��� ��������� ��� ���. ���� � ���������
     ���������� ��� �� ��������� ������������� ��� ������� �� �� ���
     ����� �� �������������� ����� ��� Vim ��� ���� ������� ������ �������.

     � ���� ���������� ����� �� ���������� ��� �� ����������� ��� ���������
     ����� 25-30 �����, ��������� �� �� ��� ���� �� ������� ���
     �������������.

     �� ������� ��� �������� �� ������������ �� �������. ����������� ���
     �������� ��� �� ����� ��� �� ����������� (�� ���������� ��
     "Vimtutor" �� ����� ��� ��� ��������).

     ����� �������� �� ������ ��� ��� � ��������� ����� ��������� ����
     ���� �� �������� ��� ��� ������. ��� �������� ��� ���������� ��
     ��������� ��� ������� ��� �� ��� ������ ����. �� ��������� ��� ��
     �������, �� ��� �������!

     ���, ���������� ��� �� ������� Caps-Lock ��� ����� �������� ���
     ������� �� ������� j ������� ����� ��� �� ������������ ��� ������ ����
     ���� �� ������ 1.1 �� ������� ����� ��� ����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ������ 1.1:  ���������� ��� �����

  ** ��� �� �������� ��� ������, ������� �� ������� h,j,k,l ��� ��������. **
	     ^
	     k	      Hint: �� ������� h ����� �������� ��� ����� ��' ��������.
       < h	 l >	    �� ������� l ����� ����� ��� ����� ��� �����.
	     j		    �� ������� j ������� �� ������ ���� �� ���.
	     v

  1. ������������ ��� ������ ����� ���� ���� ���� �� ������� �����.

  2. �������� �������� �� ��� ������� (j) ���� �� ����������.
---> ��� ������ �� �� ������������� ��� ������ ������.

  3. �������������� �� ��� �������, ������������� ��� ������ 1.2.

�������: �� ���������� ��� ���� �� ��������, ������� <ESC> ��� �� ��������
	  ���� �������� ���������. ���� ������� ���� ��� ������ �� ������.

�������: �� ������� �� ������ �� ������ ������ �� ������. ���� �� �� hjkl
	  �� �������� �� ��������� ��� ����������, ���� �� ���������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		������ 1.2:  �������� �� �������� ���� VIM

  !! ��������: ���� ���������� ������ �� �� ������, �������� ��� �� ������!!

  1. ������� �� ������� <ESC> (��� �� ����� ������ ���� �������� ���������).

  2. ��������������:		:q! <ENTER>.

---> ��� �������� �� ��� ������� ����� �� ���� ������ ������� ���� �����.
     �� ������ �� ����� ��� ������� ��� �� �������� ��������������:
	      :wq <ENTER>

  3. ���� ����� ��� �������� �� �����, �������������� ��� ������ �� ��� �����
     ������� �� ���� ��� ���������. ������ �� �����:	vimtutor <ENTER>
     �������� �� ���������������:			vim tutor <ENTER>

---> 'vim' �������� ������� ���� ������� vim, 'tutor' ����� �� ����� ��
     ������ �� ���������.

  4. �� ���� ������������� ��� �� ������ ��� ���� ������������, ���������
     �� ������ 1 �� 3 ��� �� ������ ��� �� ������ ���� ���� �������. ����
     ����������� ��� ������ ��� ��� ������ 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ������ 1.3:  �������� �������� - ������

   ** ��� ����� ���� �������� ��������� �������  x  ��� �� ��������� ���
      ��������� ��� �� ��� ������. **

  1. ������������ ��� ������ ���� ������� ������ ��������� �� --->.

  2. ��� �� ��������� �� ����, �������� ��� ������ ���� �� ����� ��� ��
     ��� ��������� �� �� ��������.

  3. ������� �� ������� x ��� �� ��������� ��� ���������� ���������.

  4. ����������� �� ������ 2 ���� 4 ���� � ������ �� ����� ����.

---> The ccow jumpedd ovverr thhe mooon.

  5. ��� �� � ������ ����� ����, �������� ��� ������ 1.4.

��������: ���� ��������� ���� ��� ���������, ����������� �� ���
	  �������������, ��������� �� �� �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ������ 1.4: �������� �������� - ��������

 ** ��� ����� �� �������� ��������� �������  i  ��� �� ������������ �������. **

  1. ������������ ��� ������ ���� ��� ���� ������ ������� ��������� �� --->.

  2. ��� �� ������ ��� ���� ������ ���� �� ��� ������, ������������ ���
     ������ ��� ���� ���� ��������� ��� �� ��� �� ����������� �� �������.

  3. ������� ��  i  ��� �������������� ��� ����������� ���������.

  4. ���� ��������� ���� ����� ������� <ESC> ��� �� ���������� ����
     �������� ���������. ����������� �� ������ 2 ���� 4 ��� �� ���������
     ��� ������.

---> There is text misng this .
---> There is some text missing from this line.

  5. ���� ����� ������ �� ��� ��������� ������� ������������� ����
     ������� �������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 1 ��������


  1. � ������� �������� �������������� ���� �� ������� ������ � �� hjkl.
	 h (��������)	j (���)	k (���)	l (�����)

  2. ��� �� ������ ���� Vim (�� ��� �������� %) �����:  vim ������ <ENTER>

  3. ��� �� ������ �����:  <ESC>   :q!   <ENTER>   ��� ������ �� ������.
		 � �����:  <ESC>   :wq   <ENTER>   ��� ��������� �� ������.

  4. ��� �� ��������� ���� ��������� ��� �� ��� ������ ��
     �������� ��������� �������:  x

  5. ��� �� �������� ������� ���� ������ ��� ����� �� �������� ��������� �����:
	 i     �������������� �� �������	<ESC>

��������: ������� <ESC> �� ������������� ���� �������� ��������� � ��
	  ������� ��� ���������� ��� ������ ����������� ������.

��� ������� �� �� ������ 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ������ 2.1: ������� �������

	 ** �����  dw  ��� �� ��������� ���� �� ����� ���� �����. **

  1. �������  <ESC>  ��� �� ���������� ��� ����� ���� �������� ���������.

  2. ������������ ��� ������ ���� ������� ������ ��������� �� --->.

  3. ��������� ��� ������ ���� ��� ��� ����� �� ������ �� ��������.

  4. �����  dw  ��� �� ������ ��� ���� �� ����������.

��������: �� �������� dw �� ��������� ���� �������� ������ ��� ����� ���
	  �� ��������������. �� ������ ���� �����, �������  <ESC>  ���
	  ��������� �� ��� ���.

---> There are a some words fun that don't belong paper in this sentence.

  5. ����������� �� ������ 3 ��� 4 ���� � ������ �� ����� ���� ���
     ��������� ��� ������ 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ������ 2.2: ������������ ������� �������

    ** ��������������  d$  ��� �� ��������� ���� �� ����� ��� �������. **

  1. �������  <ESC>  ��� �� ���������� ��� ����� ���� �������� ���������.

  2. ������������ ��� ������ ���� ������� ������ ��������� �� --->.

  3. ������������ ��� ������ ��� ����� ��� ����� ������� (��� ��� ���� . ).

  4. �������   d$   ��� �� ��������� ���� �� ����� ��� �������.

---> Somebody typed the end of this line twice. end of this line twice.

  5. ��������� ��� ������ 2.3 ��� �� ���������� �� ��������.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ������ 2.3: ���� ������� �� ������������


� ���� ��� ������� ��������  d  ����� �� ����:

	 [������]   d   �����������	�	d   [������]   �����������
  ���:
    ������ - ���� ����� �� ���������� � ������ (����������, ��' ������=1).
    d - � ������ ��� ��������.
    ����������� - ��� �� �� �� ����������� � ������ (������� �����).

  ��� ����� ����� �� �����������:
    w - �� ��� ������ ���� �� ����� ��� �����, ��������������� �� ��������.
    e - �� ��� ������ ���� �� ����� ��� �����, ����� �� ��������.
    $ - �� ��� ������ ���� �� ����� ��� �������.

��������:  ��� ��� ���� ��� �����������, ������� ���� �� ����������� ���
	   ����� ���� �������� ��������� ����� ������ ������ �� ������������
	   ��� ������ ��� ����������� ���� ����� �����������.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       ������ 2.4: �� ������� ���� '������-�����������'

	   ** ��������������  dd  ��� �� ��������� ��� �� ������. **

  �������� ��� ������� ��� �������� �������� �������, �� ���������
  �� Vim ��������� ��� �� ���� �������� �� ������ ���� �� d ���
  ����� ��� �� ��������� ��� ������.

  1. ������������ ��� ������ ��� ������ ������ ��� ������� ������.
  2. �����  dd  ��� �� ��������� �� ������.
  3. ��� ������������� ���� ������� ������.
  4. �����  2dd  (��������  ������-������-�����������) ��� ��
     ��������� �� �������.

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ������ 2.5: � ������ ��������

	    ** �������  u  ��� �� ���������� ��� ��������� �������,
	       U ��� �� ��������� ��� �� ������. **

  1. ������������ ��� ������ ���� ������� ������ ��������� �� ---> ���
     ����������� ��� ��� ��� ���� �����.
  2. �������  x  ��� �� ��������� ��� ���� ���������� ���������.
  3. ��� �������  u  ��� �� ���������� ��� �������� ����������� ������.
  4. ���� �� ���� �������� ��� �� ���� ��� ������ �������������� ��� ������ x.
  5. ��� ������� ��� �������  U  ��� �� ���������� �� ������ ���� �����
     ��� ���������.
  6. ��� �������  u  ������� ����� ��� �� ���������� ���  U  ���
     ����������� �������.
  7. ��� ������� CTRL-R (�������� �������� �� ������� CTRL ���� ������ �� R)
     ������� ����� ��� �� ���������� ��� ������� (�������� �� ���������).

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. ����� ����� ��� �������� �������.  ��� ��������� ����
     ������� �� ��������� 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 2 ��������


  1. ��� �� ��������� �� ��� ������ ���� �� ����� ����� �����:      dw

  2. ��� �� ��������� �� ��� ������ ���� �� ����� ������� �����:    d$

  3. ��� �� ��������� ������� �� ������ �����:    dd

  4. � ���� ��� ��� ������ ���� �������� ��������� �����:

      [������]   ������   �����������    �    ������   [������]   �����������
     ���:
       ������ - ���� ����� �� ���������� � ������
       ������ - �� �� �����, ��� �  d  ��� �������
       ����������� - ��� �� �� �� ��������� � ������, ���  w  (����),
		     $ (����� ��� �������), ���.

  5. ��� �� ���������� ����������� ���������, �������:        u   (��� u)
     ��� �� ���������� ���� ��� ������� ��� ������, �������:  U  (������� U)
     ��� �� ���������� ��� ����������, �������:               CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			������ 3.1: � ������ �����������


  ** �������  p  ��� �� ������������ ��� �������� ������� ���� ��� ������.  **

  1. ������������ ��� ������ ���� ���� ������ ��� ������� ������.

  2. �������  dd  ��� �� ��������� �� ������ ��� �� ��� ����������� ��
     �������� ����� �� Vim.

  3. ������������ ��� ������ ��� ������ ��� �� ���� �� �� ������ �� ����
     � ����������� ������.

  4. ��� ����� �� �������� ���������, �������  p  ��� �� ������ �� ������.

  5. ����������� �� ������ 2 �� 4 ��� �� ������ ���� ��� ������� ���
     ���� �����.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      ������ 3.2: � ������ �����������


    ** �������  r  ��� ��������� ��� �� �������� ��� �� �����
       ��� �� ��� ������. **

  1. ������������ ��� ������ ���� ���� ������ ������� ��������� �� --->.

  2. ������������ ��� ������ ���� ���� �� ����� ��� ��� ���� �����.

  3. �������  r  ��� ���� ��� ��������� � ������ �������� �� �����.

  4. ����������� �� ������ 2 ��� 3 ���� �� ����� ���� � ���� ������.

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. ��� ��������� ��� ������ 3.2.

��������: �� ������ ��� ������ �� ��������� �� �� �����, ��� ��� ��
	  ��� �����������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ������ 3.3: � ������ ������

	   ** ��� �� �������� ����� � ��� �� ����, �������  cw  . **

  1. ������������ ��� ������ ���� ���� ������ ������� ��������� �� --->.

  2. ����������� ��� ������ ��� ��� u ��� ����� lubw.

  3. �������  cw  ��� �� ���� ���� (���� �������� ���, �����  'ine'.)

  4. ������� <ESC> ��� ��������� ��� ������ ����� (���� ����
     ��������� ���� ������).

  5. ����������� �� ������ 3 ��� 4 ����� ��� � ���� ������ �� �����
     ���� �� �� ������.

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

������������ ��� �  cw  ��� ��� ������������� �� ����, ���� ��� �������
������ �� ���������.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ������ 3.4: ������������ ������ �� c


  ** � ������ ������� ��������������� �� �� ���� ����������� ��� ��������. **


  1. � ������ ������� ������ �� ��� ���� ���� ��� � �������. � ���� �����:

       [������]   c   �����������     �     c   [������]   �����������

  2. �� ����������� ����� ���� �� ����, ��� w (����), $ (����� �������), ���.

  3. ������������� ���� ���� ������ ������� ��������� �� --->.

  4. ������������ ��� ������ ��� ���� �����.

  5. �����  c$  ��� �� ������ �� ������� ��� ������� ���� �� �� ������
     ��� ������� <ESC>.

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 3 ��������


  1. ��� �� ������������ ������� �� ���� ��� ��������, �������  p .
     ��� ��������� �� ����������� ������� ��� ��� ������ (�� ����������
     ������ �� ���� ���� ��� ������ ��� �� ��� ������.

  2. ��� �� ��������������� ��� ��������� ��� �� ��� ������, �������  r
     ��� ���� ��� ��������� �� �� �������������� ��� ����.

  3. � ������ ������� ��� ��������� �� �������� �� ����������� �����������
     �� ��� ������ ���� �� ����� �� �����������. �.�. �����  cw  ��� ��
     �������� �� ��� ������ ���� �� ����� ��� �����, c$ ��� �� ��������
     ���� �� ����� �������.

  4. � ���� ��� ��� ������ �����:

	 [������]   c   �����������     �     c   [������]   �����������

��� ������� �� �� ������ ������.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ������ 4.1: ���� �� ������ �������


 ** ������� CTRL-g ��� �� ��������� � ���� ��� ��� ����� ��� � ��������� ��.
    ������� SHIFT-G ��� �� ���� �� ��� ������ ��� �����. **

  �������: �������� ������� �� ������ ���� ���������� ������ �� �� ������!!

  1. �������� �������� �� ������� Ctrl ��� �������  g . ��� ������ ����������
     �� ��������� ��� ��� ����� ��� ������� �� �� ����� ����� ��� ��
     ������ �� �����. �������� ��� ����� ������� ��� �� ���� 3.

  2. ������� shift-G ��� �� ������������� ��� ����� �� �����.

  3. ������� ��� ����� ��� ������� �� ������� ��� ���� shift-G. ��� ��
     ��� ��������� ��� ������ �� ������� ���� �������� ��� ���� ���� Ctrl-g.
     (���� �������������� ��� �������, ��� �� ����������� ���� ����).

  4. �� ������� ������� ��� ��, ��������� �� ������ 1 �� 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			������ 4.2: � ������ ���������


	  ** �������   /   ����������� �� �� ����� �� ������. **

  1. �� �������� ��������� ������� ��� ���������  / . ����������� ��� ��� ���
     � ������� ����������� ��� ��� ����� ��� ����� ��� �� ��� ������  : .

  2. ��� ����� 'errroor' <ENTER>. ���� ����� � ���� �� ������ �� ������.

  3. ��� �� ������ ���� ��� ��� ���� �����, ������� ����  n .
     ��� �� ������ ��� ���� ����� ���� �������� ��������, �������  Shift-N .

  4. �� ������ �� ������ ��� ��� ����� ���� �� ���, �������������� ��� ������  ?  ���� ���  / .

---> ���� � ��������� ������ ��� ����� �� ����� �� ������� �� ��� ���.

  "errroor" is not the way to spell error;  errroor is an error.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ������ 4.3: ������ �������� ����������


	  ** �������   %   ��� �� ������ ��� ��������� ), ], � } . **

  1. ����������� ��� ������ �� ������ (, [, � { ���� ������� ������
     ��������� �� --->.

  2. ��� ������� ��� ���������  % .

  3. � ������� �� ������ �� ����� ���� ��������� ��������� � �����.

  4. �������  %  ��� �� ������������ ��� ������ ��� ���� ���� �����
    (�� �������).

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

��������: ��� ����� ��� ������� ���� ����������� ��� ������������
	  �� �� ���������� �����������!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    ������ 4.4: ��� ������ �� ����� ����


       ** �����  :s/old/new/g  ��� �� �������� �� 'new' �� �� 'old'. **

  1. ������������ ��� ������ ���� ������� ������ ��������� �� --->.

  2. �����  :s/thee/the <ENTER> . �������� ��� ��� � ������ ������� ���
     ��� ���� ������� ��� ������.

  3. ��� �����   :s/thee/the/g    �������� ������ ������������� ���
     ������. ��� ������� ���� ��� ��������� ��� ��� �������.

---> thee best time to see thee flowers is in thee spring.

  4. ��� �� �������� ���� ������� ���� ������������ ����� �� ������,
     �����   :#,#s/old/new/g   ��� #,# �� ������� �� �� ������.
     �����   :%s/old/new/g     ��� �� �������� ���� ������� �� ��� �� �����.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 4 ��������


  1. ��  Ctrl-g  �������� �� ���� ��� ��� ����� ��� ��� ��������� ��.
     ��  Shift-G  �������� ��� ����� �� �����. ���� ������ �������
     ������������ ��  Shift-G  �������� �� ������ �� ������.

  2. ��������  /  ����������� �� ��� ����� ����� ���� �� ������ ���
     �� �����. ��������  ?  ����������� �� ��� ����� ����� ���� �� ����
     ��� �� �����. ���� �� ��� ��������� �������  n  ��� �� ������ ���
     ������ ������� ���� ��� ���� �������� �  Shift-N  ��� �� ������
     ���� ��� �������� ��������.

  3. �������  %  ��� � ������� ����� ��� �� ��� (,),[,],{, � }  ���������
     �� ��������� ����� �� �������.

  4. ��� ������������� �� new �� ���� old ��� ������ �����  :s/old/new
     ��� ������������� �� new ��� �� 'old' ��� ������ �����  :s/old/new/g
     ��� ������������� ������ ����� �� # ������ �����      :#,#s/old/new/g
     ��� ������������� ��� �� �������� ��� ����� �����    :%s/old/new/g
     ��� ������ ����������� ���� ���� ��������� ��� 'c'       "%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  ������ 5.1: ��� ������ �� ��������� ������


** �����  :!  ����������� �� ��� �������� ������ ��� �� ��� ����������. **

  1. ������� ��� ������ ������  :  ��� �� ������ ��� ������ ��� ��� �����
     ��� �����. ��� ��� ��������� �� ����� ��� ������.

  2. ��� �������  ��  !  (��������). ��� ��� ��������� �� ����������
     ����������� �������� ������ �� �����.

  3. ��� ���������� �����  ls  ���� �� �� ! ��� ������� <ENTER>. ��� ��
     ��� �������� ��� ����� �� ������� ���, ������ ��� �� ������� ����
     �������� �� �����. � ��������������  :!dir  �� �� ls ��� ������.

---> �������: ����� ����� �� ���������� ����������� �������� ������
     �� ��� ��� ����.

---> �������: ���� �� �������  :  ������ �� ������������� ������� �� <ENTER>.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 ������ 5.2: ���������� ���� ������� �������


   ** ��� �� ����� ��� ������� �� ������ ��� �����, �����  :w ������.  **

  1. �����  :!dir  �  :!ls  ��� �� ������ ��� ����� �� ������� ���.
     ��� ������ ��� ������ �� �������� <ENTER> ���� �� ��.

  2. �������� ��� ����� ����� �� ��� ������ ����, ��� �� TEST.

  3. ��� �����:  :w TEST  (��� TEST ����� �� ����� ����� �� ���������).

  4. ��� ���� ��� �� ����� (vim Tutor) �� �� ����� TEST. ��� �� ��
     �����������, ����� ����  :!dir ��� �� ����� ��� ������� ���.

---> �������� ��� �� �������� �� ��� Vim ��� �������� ���� �� �� �����
     ����� TEST, �� ����� �� ���� ������� �������� �� tutor ���� �� �����.

  5. ��� �������� �� ����� �������� (MS-DOS):      :!del TEST



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     ������ 5.3: ���������� ������ �������


	  ** ��� �� ����� ����� �� �����, �����  :#,# w ������ **

  1. ���� ��� ����, �����  :!dir  �  :!ls  ��� �� ������ ��� ����� �� ���
     ������� ��� ��� �������� ��� ��������� ����� ����� ��� �� TEST.

  2. ������������ ��� ������ ��� ��� ����� ���� ��� ������� ��� �������
     Ctrl-g  ��� �� ������ ��� ����� ���� ��� �������.
     � ������ ����� ��� ������!

  3. ��� ��������� ��� ��� ����� ��� ������� ��� �������  Ctrl-g  ����.
     � ������ �� ����� ��� ������!

  4. ��� �� ����� ���� ��� ����� �� �����, �����   :#,# w TEST
     ��� #,# �� �� ������� �� �������������� (���,���) ��� TEST ��
     ����� �� ����� ���.

  5. ����, ����� ��� �� ����� ����� ���� �� ���  :!dir ���� ��� �� ���������.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  ������ 5.4: �������� �� �������� �����


     ** ��� �� �������� �� ��������� ��� �����, �����   :r ������ **

  1. �����  :!dir  ��� �� ���������� ��� �� TEST ������ �� ����.

  2. ����������� ��� ������ ��� ��� ����� ��� �������.

��������:  ����� ���������� �� ���� 3 �� ����� �� ������ 5.3.
	   ���� ��������� ��� ���� ���� �� ������ ��.

  3. ��� ��������� �� ����� ��� TEST �������������� ��� ������  :r TEST
     ��� TEST ����� �� ����� �� �����.

��������:  �� ����� �� �������� ������������ ��������� ���� �� ���������
	   � �������.

  4. ��� �� ����������� ��� �� ����� ����������, ��� ��� ������ ���
     ����������� ��� ������ ��� �� �������� �� ��������� 5.3, ��
     ���� ��� � ������ �� �����.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 5 ��������


  1.  :!������  ������� ��� �������� ������.

      ������ ������� ������������ ����� (MS-DOS):
      :!dir            - ������� ������ ��� �������.
      :!del ������     - �������� �� ������.

  2.  :w ������   ����� �� ����� ����� �� Vim ��� ����� �� ����� ������.

  3.  :#,#w ������   ���� ��� ������� �� # ���� # ��� ������.

  4.  :r ������  ������� �� ����� ����� ������ ��� �� ����������� ����
      ��� ����� ����� ���� �� �� ���� �� ������.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			������ 6.1: � ������ ���������


      ** �������  o  ��� �� �������� ��� ������ ��� �� ��� ������ ��� ��
	 �������� �� ��������� �������. **

  1. ������������ ��� ������ ���� ������� ������ ��������� �� --->.

  2. �������  o (���) ��� �� �������� ��� ������ ��� �� ��� ������ ��� ��
     �������� �� ��������� �������.

  3. ��� ��������� �� ��������� �� ---> ������  ��� ������� <ESC> ��� ��
     ������ �� ��� ��������� �������.

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. ��� �� �������� ��� ������ ��� �� ��� ������, ������� ���� ��� �������
     O, ���� ��� ��� ���  o.  ��������� �� ���� ������� ������.
�������� ������ ��� �� ���� ������� Shift-O ��� � ������� ����� ��� ������



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 ������ 6.2: � ������ ���������

	  ** �������   a   ��� �� �������� ������� ��� ��� ������. **

  1. ������������ ��� ������ ��� ����� ��� ����� ������� �������
     ��������� �� ---> �������  $  ���� �������� ���������.

  2. ������� ���  a  (���) ��� �� ���������� ������� ��� �� ��� ���������
     �� ����� ��� �� ��� ������.  (�� �������  A  ��������� ��� �����
     ��� �������).

�������: ��� ������� �� ������ ��  i , ��� �������� ���������, ��
	  ������� ��� ��������, <ESC>, ������-�����, ��� �����, x, ��� ���
	  ��� ��� �� ���������� ��� ����� ��� �������!

  3. ��������� ��� ��� ���� ������. �������� ������ ��� � �������� �����
     ������ ���� ���� ��������� ������� �� ��� ��������� ��������, ����
     �� �� ���� �� ��������� �� �������.

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   ������ 6.3: ���� ������ ��� �����������


 ** ������� �������  R  ��� �� �������� ����������� �� ���� ����������. **

  1. ������������ ��� ������ ���� ���� ������ ������� ��������� �� --->.

  2. ����������� ��� ������ ���� ��� ��� ����� ����� �� ����� ����������
     �� �� ������ ������ ��������� �� ---> (� ���� 'last').

  3. ������� ���  R   ��� ������� �� ������� �� ������� ���� ���� ������
     �������� ��� �� �� ���� ������� ���� �� ������ ��� ���� ������ ����
     �� �� ������.

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. �������� ��� ���� ������ <ESC> ��� �� ������, ��������� �����������
     ��������� �������.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  ������ 6.4: ������� ��������


   ** ������� ��� ������� ���� ���� � ��������� � � ������������� �� ������
      �� ������ ����-������� **

  1. ����� ��� 'ignore' ����������:
     /ignore
     ������� ������� ����� ������� �� ������� n.

  2. ����� ��� ������� 'ic' (Ignore case) ��������:
     :set ic

  3. ����� ��� ���� ��� 'ignore' �������: n
     ������� ��� ��������� ������� ���� ����� ������� �� ������� n

  4. ����� ��� �������� 'hlsearch' ��� 'incsearch':
     :set hls is

  5. �������� ��� ���� ��� ������ ����������, ��� ����� �� ��������
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ���� 6 ��������


  1. �������  o  ������� ��� ������ ��� �� ��� ������ ��� ��������� ���
     ������ ���� ������ ������ �� ��������� �������.

  2. �������  a  ��� �� �������� ������� ��� ��� ��������� ���� ����� �����
     � �������. ������� �������  A  ������ ��������� ������� ��� �����
     ��� �������.

  3. ������� �������  R  ��������� ���� �������� �������������� ���� ��
     ������� �� <ESC> ��� �� �������.

  4. �������� ":set xxx" ������� ��� ������� "xxx".








~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ���� 7: ON-LINE ������� �������


		** �������������� �� on-line ������ �������� **

  � Vim ��� ��� ��������� on-line ������ ��������. ��� �� ���������,
  ��������� ������ �� �� ����:
	- ������� �� ������� <HELP> (�� ���� ������)
	- ������� �� ������� <F1> (�� ���� ������)
	- �����   :help <ENTER>

  �����  :q <ENTER>   ��� �� �������� �� ������� ��� ��������.

  �������� �� ������ ������� ��� �� ���� �����������, �������� ��� ���������
  ���� ������ ":help".  ��������� ��� (��� ������ �� ������ <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  ���� 8: ������������ �� SCRIPT ���������

		   ** ������������� �������������� �� Vim **

  � Vim ��� ����� ���������� �������������� ��' �,�� � Vi, ���� ��
  ���������� ����� ����� ����������������. ��� �� ������� �� ��������������
  ���������� �������������� ������ �� �������� ��� ����� "vimrc".

  1. ������ ����������� �� ����� "vimrc", �� ��������� �� �� ������ ���:
	:edit ~/.vimrc               ��� Unix
	:edit $VIM/_vimrc            ��� MS-Windows

  2. ��� �������� �� ������� ������������� ��� ����� "vimrc":
	:read $VIMRUNTIME/vimrc_example.vim

  3. ����� �� ����� �� ���:
	:write

  ��� ������ ���� �� �� ���������� ��� Vim �� �������������� ������
  �������.  �������� �� ���������� ���� ��� ����������� �������� �' ��
  �� ����� "vimrc".

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  �� ������������ �� Vim Tutor. ����� �� ���� �� ���� ��� ������
  ������� �� ������� Vim, ��������� ��� ���� �� ��� �������� ��
  ��������������� ��� ������� ������ �����. ����� ��� �� ���
  ����������� ��������� ���� � Vim ��� ���� ������ �������. ��������
  ������ �� ��������� ������:
	":help user-manual".

  ��� �������� �������� ��� ������, ��������� �� �� ������:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
	�� ���� ������ ����� �������� ���� Vim.
	��������� ������� ��� �������.
	������ ����� ������������ ��� ������.
	����� ��� http://iccf-holland.org/click5.html

  ��� �� ������ ����� �������� ��� ���������� ��� ��� Vi ���� ��� ��� Vim,
  ���� ������ ���������:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
	����� ��� ��� ������ ��� �� ������ ���� �� ����� �� ������
	�� ������ �� ��� Vi.
	� ���� ������ ������� ���� ���������� ��� ��� Vim.

  ���� � ��������� ������� �� ��� Michael C. Pierce ��� Robert K. Ware,
  Colorado School of Mines �������������� ����� �� ��� Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  ���������� ��� ��� Vim �� ��� Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�5��a�a�vim80/tutor/tutor.nb.utf-8nu�[���===============================================================================
= V e l k o m m e n   t i l   i n n f ø r i n g e n   i   V i m  --  Ver. 1.7 =
===============================================================================

     Vim er en meget kraftig editor med mange kommandoer, alt for mange til å
     kunne gå gjennom alle i en innføring som denne. Den er beregnet på å
     sette deg inn i bruken av nok kommandoer så du vil være i stand til lett
     å kunne bruke Vim som en editor til alle formål.

     Tiden som kreves for å gå gjennom denne innføringen tar ca. 25-30
     minutter, avhengig av hvor mye tid du bruker til eksperimentering.

     MERK:
     Kommandoene i leksjonene vil modifisere teksten. Lag en kopi av denne
     filen som du kan øve deg på (hvis du kjørte «vimtutor»-kommandoen, er
     dette allerede en kopi).

     Det er viktig å huske at denne innføringen er beregnet på læring gjennom
     bruk. Det betyr at du må utføre kommandoene for å lære dem skikkelig.
     Hvis du bare leser teksten, vil du glemme kommandoene!

     Først av alt, sjekk at «Caps Lock» IKKE er aktiv og trykk «j»-tasten for
     å flytte markøren helt til leksjon 1.1 fyller skjermen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 1.1:  FLYTTING AV MARKØREN


       ** For å flytte markøren, trykk tastene h, j, k, l som vist. **
	     ^
	     k		Tips: h-tasten er til venstre og flytter til venstre.
       < h	 l >	      l-tasten er til høyre og flytter til høyre.
	     j		      j-tasten ser ut som en pil som peker nedover.
	     v
  1. Flytt markøren rundt på skjermen til du har fått det inn i fingrene.

  2. Hold inne nedovertasten (j) til den repeterer.
     Nå vet du hvordan du beveger deg til neste leksjon.

  3. Gå til leksjon 1.2 ved hjelp av nedovertasten.

Merk: Hvis du blir usikker på noe du har skrevet, trykk <ESC> for å gå til
      normalmodus. Skriv deretter kommandoen du ønsket på nytt.

Merk: Piltastene skal også virke. Men ved å bruke hjkl vil du være i stand til
      å bevege markøren mye raskere når du er blitt vant til det. Helt sant!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Leksjon 1.2: AVSLUTTE VIM


  !! MERK: Før du utfører noen av punktene nedenfor, les hele leksjonen!!

  1. Trykk <ESC>-tasten (for å forsikre deg om at du er i normalmodus).

  2. Skriv:	:q! <ENTER>.
     Dette avslutter editoren og FORKASTER alle forandringer som du har gjort.

  3. Når du ser kommandolinjen i skallet, skriv kommandoen som startet denne
     innføringen. Den er:   vimtutor <ENTER>

  4. Hvis du er sikker på at du husker dette, utfør punktene 1 til 3 for å
     avslutte og starte editoren på nytt.

MERK:  :q! <ENTER>  forkaster alle forandringer som du gjorde. I løpet av noen
       få leksjoner vil du lære hvordan du lagrer forandringene til en fil.

  5. Flytt markøren ned til leksjon 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 1.3: REDIGERING AV TEKST -- SLETTING


	     ** Trykk  x  for å slette tegnet under markøren. **

  1. Flytt markøren til den første linjen merket med  --->.

  2. For å ordne feilene på linjen, flytt markøren til den er oppå tegnet som
     skal slettes.

  3. Trykk tasten  x  for å slette det uønskede tegnet.

  4. Repeter punkt 2 til 4 til setningen er lik den som er under.

---> Hessstennnn brrråsnudddde ii gaaata.
---> Hesten bråsnudde i gata.

  5. Nå som linjen er korrekt, gå til leksjon 1.4.

MERK: Når du går gjennom innføringen, ikke bare prøv å huske kommandoene, men
      bruk dem helt til de sitter.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.4: REDIGERING AV TEKST -- INNSETTING


		    ** Trykk  i  for å sette inn tekst. **

  1. Flytt markøren til den første linjen som er merket med --->.

  2. For å gjøre den første linjen lik den andre, flytt markøren til den står
     på tegnet ETTER posisjonen der teksten skal settes inn.

  3. Trykk  i  og skriv inn teksten som mangler.

  4. Etterhvert som hver feil er fikset, trykk <ESC> for å returnere til
     normalmodus. Repeter punkt 2 til 4 til setningen er korrekt.

---> Det er tkst som mnglr .
---> Det er ganske mye tekst som mangler her.

  5. Når du føler deg komfortabel med å sette inn tekst, gå til oppsummeringen
     nedenfor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 1.5: REDIGERING AV TEKST -- LEGGE TIL


		    ** Trykk  A  for å legge til tekst. **

  1. Flytt markøren til den første linjen nedenfor merket --->.
     Det har ikke noe å si hvor markøren er plassert på den linjen.

  2. Trykk  A  og skriv inn det som skal legges til.

  3. Når teksten er lagt til, trykk <ESC> for å returnere til normalmodusen.

  4. Flytt markøren til den andre linjen markert med ---> og repeter steg 2 og
     3 for å reparere denne setningen.

---> Det mangler noe tekst p
     Det mangler noe tekst på denne linjen.
---> Det mangler også litt tek
     Det mangler også litt tekst på denne linjen.

  5. Når du føler at du behersker å legge til tekst, gå til leksjon 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 1.6: REDIGERE EN FIL


	       ** Bruk	:wq  for å lagre en fil og avslutte. **

  !! MERK: Før du utfører noen av stegene nedenfor, les hele denne leksjonen!!

  1. Avslutt denne innføringen som du gjorde i leksjon 1.2:  :q!

  2. Skriv denne kommandoen på kommandolinja:  vim tutor <ENTER>
     «vim» er kommandoen for å starte Vim-editoren, «tutor» er navnet på fila
     som du vil redigere. Bruk en fil som kan forandres.

  3. Sett inn og slett tekst som du lærte i de foregående leksjonene.

  4. Lagre filen med forandringene og avslutt Vim med:	:wq <ENTER>

  5. Start innføringen på nytt og flytt ned til oppsummeringen som følger.

  6. Etter å ha lest og forstått stegene ovenfor: Sett i gang.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 1


  1. Markøren beveges ved hjelp av piltastene eller hjkl-tastene.
	 h (venstre)	 j (ned)     k (opp)	 l (høyre)

  2. For å starte Vim fra skall-kommandolinjen, skriv:	vim FILNAVN <ENTER>

  3. For å avslutte Vim, skriv:  <ESC> :q! <ENTER>  for å forkaste endringer.
		   ELLER skriv:  <ESC> :wq <ENTER>  for å lagre forandringene.

  4. For å slette tegnet under markøren, trykk:  x

  5. For å sette inn eller legge til tekst, trykk:
	 i    skriv innsatt tekst  <ESC>	sett inn før markøren
	 A    skriv tillagt tekst  <ESC>	legg til på slutten av linjen

MERK: Når du trykker <ESC> går du til normalmodus eller du avbryter en uønsket
      og delvis fullført kommando.

  Nå kan du gå videre til leksjon 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.1: SLETTEKOMMANDOER


		    ** Trykk  dw  for å slette et ord. **

  1. Trykk <ESC> for å være sikker på at du er i normalmodus.

  2. Flytt markøren til den første linjen nedenfor merket --->.

  3. Flytt markøren til begynnelsen av ordet som skal slettes.

  4. Trykk  dw	og ordet vil forsvinne.

MERK: Bokstaven  d  vil komme til syne på den nederste linjen på skjermen når
      du skriver den. Vim venter på at du skal skrive w . Hvis du ser et annet
      tegn enn	d  har du skrevet noe feil; trykk <ESC> og start på nytt.

---> Det er agurk tre ord eple som ikke hører pære hjemme i denne setningen.
---> Det er tre ord som ikke hører hjemme i denne setningen.

  5. Repeter punkt 3 og 4 til den første setningen er lik den andre. Gå
     deretter til leksjon 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 2.2: FLERE SLETTEKOMMANDOER


	     ** Trykk  d$  for å slette til slutten av linjen. **

  1. Trykk <ESC> for å være sikker på at du er i normalmodus.

  2. Flytt markøren til linjen nedenfor merket --->.

  3. Flytt markøren til punktet der linjen skal kuttes (ETTER første punktum).

  4. Trykk  d$	for å slette alt til slutten av linjen.

---> Noen skrev slutten på linjen en gang for mye. linjen en gang for mye.

  5. Gå til leksjon 2.3 for å forstå hva som skjer.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 2.3: OM OPERATORER OG BEVEGELSER


  Mange kommandoer som forandrer teksten er laget ut i fra en operator og en
  bevegelse. Formatet for en slettekommando med sletteoperatoren  d  er:

	d   bevegelse

  Der:
    d	      - er sletteoperatoren.
    bevegelse - er hva operatoren vil opere på (listet nedenfor).

  En kort liste med bevegelser:
    w - til starten av det neste ordet, UNNTATT det første tegnet.
    e - til slutten av det nåværende ordet, INKLUDERT det siste tegnet.
    $ - til slutten av linjen, INKLUDERT det siste tegnet.

  Ved å skrive	de  vil altså alt fra markøren til slutten av ordet bli
  slettet.

MERK:  Ved å skrive kun bevegelsen i normalmodusen uten en operator vil
       markøren flyttes som spesifisert.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 LEKSJON 2.4: BRUK AV TELLER FOR EN BEVEGELSE


 ** Ved å skrive et tall foran en bevegelse repeterer den så mange ganger. **

  1. Flytt markøren til starten av linjen markert ---> nedenfor.

  2. Skriv  2w	for å flytte markøren to ord framover.

  3. Skriv  3e	for å flytte markøren framover til slutten av det tredje
     ordet.

  4. Skriv  0  (null) for å flytte til starten av linjen.

  5. Repeter steg 2 og 3 med forskjellige tall.

---> Dette er en linje med noen ord som du kan bevege deg rundt på.

  6. Gå videre til leksjon 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Leksjon 2.5: BRUK AV ANTALL FOR Å SLETTE MER


     ** Et tall sammen med en operator repeterer den så mange ganger. **

  I kombinasjonen med sletteoperatoren og en bevegelse nevnt ovenfor setter du
  inn antall før bevegelsen for å slette mer:
	 d  nummer  bevegelse

  1. Flytt markøren til det første ordet med STORE BOKSTAVER på linjen markert
     med --->.

  2. Skriv  2dw  for å slette de to ordene med store bokstaver.

  3. Repeter steg 1 og 2 med forskjelling antall for å slette de etterfølgende
     ordene som har store bokstaver.

---> Denne ABC DE linjen FGHI JK LMN OP er nå Q RS TUV litt mer lesbar.

MERK: Et antall mellom operatoren  d  og bevegelsen virker på samme måte som å
      bruke bevegelsen uten en operator.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.6: OPERERE PÅ LINJER


		 ** Trykk  dd  for å slette en hel linje. **

  På grunn av at sletting av linjer er mye brukt, fant utviklerne av Vi ut at
  det vil være lettere å rett og slett trykke to d-er for å slette en linje.

  1. Flytt markøren til den andre linjen i verset nedenfor.
  2. Trykk  dd	 å slette linjen.
  3. Flytt deretter til den fjerde linjen.
  4. Trykk  2dd  for å slette to linjer.

--->  1) Roser er røde,
--->  2) Gjørme er gøy,
--->  3) Fioler er blå,
--->  4) Jeg har en bil,
--->  5) Klokker viser tiden,
--->  6) Druer er søte
--->  7) Og du er likeså.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Leksjon 2.7: ANGRE-KOMMANDOEN


  ** Trykk  u  for å angre siste kommando,  U  for å fikse en hel linje. **

  1. Flytt markøren til linjen nedenfor merket ---> og plasser den på den
     første feilen.
  2. Trykk  x  for å slette det første uønskede tegnet.
  3. Trykk så  u  for å angre den siste utførte kommandoen.
  4. Deretter ordner du alle feilene på linjene ved å bruke kommandoen	x  .
  5. Trykk nå en stor  U  for å sette linjen tilbake til det den var
     originalt.
  6. Trykk  u  noen ganger for å angre	U  og foregående kommandoer.
  7. Deretter trykker du  CTRL-R  (hold CTRL nede mens du trykker R) noen
     ganger for å gjenopprette kommandoene (omgjøre angrekommandoene).

---> RReparer feiilene påå denne linnnjen oog erssstatt dem meed angre.

  8. Dette er meget nyttige kommandoer. Nå kan du gå til oppsummeringen av
     leksjon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 2


  1. For å slette fra markøren fram til det neste ordet, trykk:  dw
  2. For å slette fra markøren til slutten av en linje, trykk:	d$
  3. For å slette en hel linje, trykk:	dd

  4. For å repetere en bevegelse, sett et nummer foran:  2w
  5. Formatet for en forandringskommando er:
	       operator  [nummer]  bevegelse
     der:
       operator  - hva som skal gjøres, f.eks.	d  for å slette
       [nummer]  - et valgfritt antall for å repetere bevegelsen
       bevegelse - hva kommandoen skal operere på, eksempelvis	w  (ord),
		   $  (til slutten av linjen) og så videre.

  6. For å gå til starten av en linje, bruk en null:  0

  7. For å angre tidligere endringer, skriv:		u  (liten u)
     For å angre alle forandringer på en linje, skriv:	U  (stor U)
     For å omgjøre angringen, trykk:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.1: «LIM INN»-KOMMANDOEN


    ** Trykk  p  for å lime inn tidligere slettet tekst etter markøren **

  1. Flytt markøren til den første linjen med ---> nedenfor.

  2. Trykk  dd	for å slette linjen og lagre den i et Vim-register.

  3. Flytt markøren til c)-linjen, OVER posisjonen linjen skal settes inn.

  4. Trykk  p  for å legge linjen under markøren.

  5. Repeter punkt 2 til 4 helt til linjene er i riktig rekkefølge.

---> d) Kan du også lære?
---> b) Fioler er blå,
---> c) Intelligens må læres,
---> a) Roser er røde,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.2: «ERSTATT»-KOMMANDOEN


	 ** Trykk  rx  for å erstatte tegnet under markøren med x. **

  1. Flytt markøren til den første linjen nedenfor merket --->.

  2. Flytt markøren så den står oppå den første feilen.

  3. Trykk  r  og deretter tegnet som skal være der.

  4. Repeter punkt 2 og 3 til den første linjen er lik den andre.

---> Da dfnne lynjxn ble zkrevet, var det nøen som tjykket feite taster!
---> Da denne linjen ble skrevet, var det noen som trykket feile taster!

  5. Gå videre til leksjon 3.2.

MERK: Husk at du bør lære ved å BRUKE, ikke pugge.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 3.3: «FORANDRE»-OPERATOREN


	   ** For å forandre til slutten av et ord, trykk  ce . **

  1. Flytt markøren til den første linjen nedenfor som er merket --->.

  2. Plasser markøren på  u  i «lubjwr».

  3. Trykk  ce	og det korrekte ordet (i dette tilfellet, skriv «injen»).

  4. Trykk <ESC> og gå til det neste tegnet som skal forandres.

  5. Repeter punkt 3 og 4 helt til den første setningen er lik den andre.

---> Denne lubjwr har noen wgh som må forkwåp med «forækzryas»-kommandoen.
---> Denne linjen har noen ord som må forandres med «forandre»-kommandoen.

Vær oppmerksom på at  ce  sletter ordet og går inn i innsettingsmodus.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 3.4: FLERE FORANDRINGER VED BRUK AV c


 ** Forandringskommandoen blir brukt med de samme bevegelser som «slett». **

  1. Forandringsoperatoren fungerer på samme måte som «slett». Formatet er:

	 c    [nummer]	 bevegelse

  2. Bevegelsene er de samme, som for eksempel	w  (ord) og  $	(slutten av en
     linje).

  3. Gå til den første linjen nedenfor som er merket --->.

  4. Flytt markøren til den første feilen.

  5. Skriv  c$	og skriv resten av linjen lik den andre og trykk <ESC>.

---> Slutten på denne linjen trenger litt hjelp for å gjøre den lik den neste.
---> Slutten på denne linjen trenger å bli rettet ved bruk av c$-kommandoen.

MERK: Du kan bruke slettetasten for å rette feil mens du skriver.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 3


  1. For å legge tilbake tekst som nettopp er blitt slettet, trykk  p  . Dette
     limer inn den slettede teksten ETTER markøren (hvis en linje ble slettet
     vil den bli limt inn på linjen under markøren).

  2. For å erstatte et tegn under markøren, trykk  r  og deretter tegnet som
     du vil ha der.

  3. Forandringsoperatoren lar deg forandre fra markøren til dit bevegelsen
     tar deg. Det vil si, skriv  ce  for å forandre fra markøren til slutten
     av ordet,	c$  for å forandre til slutten av linjen.

  4. Formatet for «forandre» er:

	 c   [nummer]	bevegelse

Nå kan du gå til neste leksjon.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Leksjon 4.1: POSISJONERING AV MARKØREN OG FILSTATUS

	** Trykk CTRL-G for å vise posisjonen i filen og filstatusen.
	   Trykk  G  for å gå til en spesifikk linje i filen. **

  Merk: Les hele leksjonen før du utfører noen av punktene!

  1. Hold nede Ctrl-tasten og trykk  g	. Vi kaller dette CTRL-G. En melding
     vil komme til syne på bunnen av skjermen med filnavnet og posisjonen i
     filen. Husk linjenummeret for bruk i steg 3.

Merk: Du kan se markørposisjonen i nederste høyre hjørne av skjermen. Dette
      skjer når «ruler»-valget er satt (forklart i leksjon 6).

  2. Trykk  G  for å gå til bunnen av filen.
     Skriv  gg	for å gå til begynnelsen av filen.

  3. Skriv inn linjenummeret du var på og deretter  G . Dette vil føre deg
     tilbake til linjen du var på da du først trykket CTRL-G.

  4. Utfør steg 1 til 3 hvis du føler deg sikker på prosedyren.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Leksjon 4.2: SØKEKOMMANDOEN

      ** Skriv	/  etterfulgt av en søkestreng som du vil lete etter. **

  1. Trykk  /  når du er i normalmodusen. Legg merke til at skråstreken og
     markøren kommer til syne på bunnen av skjermen i likhet med
     «:»-kommandoene.

  2. Skriv «feeeiil» og trykk <ENTER>. Dette er teksten du vil lete etter.

  3. For å finne neste forekomst av søkestrengen, trykk  n .
     For å lete etter samme søketeksten i motsatt retning, trykk  N .

  4. For å lete etter en tekst bakover i filen, bruk  ?  istedenfor  /	.

  5. For å gå tilbake til der du kom fra, trykk  CTRL-O  (Hold Ctrl nede mens
     du trykker bokstaven  o ). Repeter for å gå enda lengre tilbake. CTRL-I
     går framover.

---> «feeeiil» er ikke måten å skrive «feil» på, feeeiil er helt feil.
Merk: Når søkingen når slutten av filen, vil den fortsette fra starten unntatt
      hvis «wrapscan»-valget er resatt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 4.3: FINN SAMSVARENDE PARENTESER


	  ** Trykk  %  for å finne en samsvarende ), ] eller } . **

  1. Plasser markøren på en (, [ eller { på linjen nedenfor merket --->.

  2. Trykk  %  .

  3. Markøren vil gå til den samsvarende parentesen eller hakeparentesen.

  4. Trykk  %  for å flytte markøren til den andre samsvarende parentesen.

  5. Flytt markøren til en annen (, ), [, ], { eller } og se hva  %  gjør.

---> Dette ( er en testlinje med (, [ ] og { } i den )).

Merk: Dette er veldig nyttig til feilsøking i programmer som har ubalansert
      antall parenteser!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Leksjon 4.4: ERSTATT-KOMMANDOEN


	** Skriv  :s/gammel/ny/g  for å erstatte «gammel» med «ny». **

  1. Flytt markøren til linjen nedenfor som er merket med --->.

  2. Skriv  :s/deen/den/ <ENTER>  . Legg merke til at denne kommandoen bare
     forandrer den første forekomsten av «deen» på linjen.

  3. Skriv  :s/deen/den/g . Når g-flagget legges til, betyr dette global
     erstatning på linjen og erstatter alle forekomster av «deen» på linjen.

---> deen som kan kaste deen tyngste steinen lengst er deen beste

  4. For å erstatte alle forekomster av en tekststreng mellom to linjer,
     skriv  :#,#s/gammel/ny/g  der #,# er linjenumrene på de to linjene for
			       linjeområdet erstatningen skal gjøres.
     Skriv  :%s/gammel/ny/g    for å erstatte tekst i hele filen.
     Skriv  :%s/gammel/ny/gc   for å finne alle forekomster i hele filen, og
			       deretter spørre om teksten skal erstattes eller
			       ikke.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 4


  1. Ctrl-G viser nåværende posisjon i filen og filstatusen.
	     G	går til slutten av filen.
     nummer  G	går til det linjenummeret.
	    gg	går til den første linjen.

  2. Skriv  /  etterfulgt av en søketekst for å lete FRAMOVER etter teksten.
     Skriv  ?  etterfulgt av en søketekst for å lete BAKOVER etter teksten.
     Etter et søk kan du trykke  n  for å finne neste forekomst i den samme
     retningen eller  N  for å lete i motsatt retning.
     CTRL-O tar deg tilbake til gamle posisjoner, CTRL-I til nyere posisjoner.

  3. Skriv  %  når markøren står på en (, ), [, ], { eller } for å finne den
     som samsvarer.

  4. Erstatte «gammel» med første «ny» på en linje:  :s/gammel/ny
     Erstatte alle «gammel» med «ny» på en linje:    :s/gammel/ny/g
     Erstatte tekst mellom to linjenumre:	     :#,#s/gammel/ny/g
     Erstatte alle forekomster i en fil:	     :%s/gammel/ny/g
     For å godkjenne hver erstatning, legg til «c»:  :%s/gammel/ny/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Leksjon 5.1: HVORDAN UTFØRE EN EKSTERN KOMMANDO


    ** Skriv  :!  etterfulgt av en ekstern kommando for å utføre denne. **

  1. Skriv den velkjente kommandoen  :	 for å plassere markøren på bunnen av
     skjermen. Dette lar deg skrive en kommandolinjekommando.

  2. Nå kan du skrive tegnet  !  . Dette lar deg utføre en hvilken som helst
     ekstern kommando.

  3. Som et eksempel, skriv  ls  etter utropstegnet og trykk <ENTER>. Du vil
     nå få en liste over filene i katalogen, akkurat som om du hadde kjørt
     kommandoen direkte fra kommandolinjen i skallet. Eller bruk  :!dir  hvis
     «ls» ikke virker.

MERK: Det er mulig å kjøre alle eksterne kommandoer på denne måten, også med
      parametere.

MERK: Alle «:»-kommandoer må avsluttes med <ENTER>. Fra dette punktet er det
      ikke alltid vi nevner det.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 5.2: MER OM LAGRING AV FILER


      ** For å lagre endringene gjort i en tekst, skriv  :w FILNAVN. **

  1. Skriv  :!dir  eller  :!ls	for å få en liste over filene i katalogen. Du
     vet allerede at du må trykke <ENTER> etter dette.

  2. Velg et filnavn på en fil som ikke finnes, som for eksempel  TEST .

  3. Skriv  :w TEST  (der TEST er filnavnet du velger).

  4. Dette lagrer hele filen (denne innføringen) under navnet TEST . For å
     sjekke dette, skriv  :!dir  eller	:!ls  igjen for å se innholdet av
     katalogen.

Merk: Hvis du nå hadde avsluttet Vim og startet på nytt igjen med «vim TEST»,
      ville filen vært en eksakt kopi av innføringen da du lagret den.

  5. Fjern filen ved å skrive  :!rm TEST  hvis du er på et Unix-lignende
     operativsystem, eller  :!del TEST	hvis du bruker MS-DOS.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 5.3: VELGE TEKST SOM SKAL LAGRES


     ** For å lagre en del av en fil, skriv  v	bevegelse  :w FILNAVN **

  1. Flytt markøren til denne linjen.

  2. Trykk  v  og flytt markøren til det femte elementet nedenfor. Legg merke
     til at teksten blir markert.

  3. Trykk  :  (kolon). På bunnen av skjermen vil  :'<,'>  komme til syne.

  4. Trykk  w TEST  , der TEST er et filnavn som ikke finnes enda. Kontroller
     at du ser	:'<,'>w TEST  før du trykker Enter.

  5. Vim vil skrive de valgte linjene til filen TEST. Bruk  :!dir  eller  :!ls
     for å se den. Ikke slett den enda! Vi vil bruke den i neste leksjon.

MERK: Ved å trykke  v  startes visuelt valg. Du kan flytte markøren rundt for
      å gjøre det valgte området større eller mindre. Deretter kan du bruke en
      operator for å gjøre noe med teksten. For eksempel sletter  d  teksten.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Leksjon 5.4: HENTING OG SAMMENSLÅING AV FILER


 ** For å lese inn en annen fil inn i nåværende buffer, skriv  :r FILNAVN  **

  1. Plasser markøren like over denne linjen.

MERK: Etter å ha utført steg 2 vil du se teksten fra leksjon 5.3. Gå deretter
      NED for å se denne leksjonen igjen.

  2. Hent TEST-filen ved å bruke kommandoen  :r TEST  der TEST er navnet på
     filen du brukte. Filen du henter blir plassert nedenfor markørlinjen.

  3. For å sjekke at filen ble hentet, gå tilbake og se at det er to kopier av
     leksjon 5.3, originalen og denne versjonen.

MERK: Du kan også lese utdataene av en ekstern kommando. For eksempel,	:r !ls
      leser utdataene av ls-kommandoen og legger dem nedenfor markøren.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 5


  1.  :!kommando  utfører en ekstern kommandio.

      Noen nyttige eksempler er:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		  - List filene i katalogen.
	  :!del FILNAVN    :!rm FILNAVN   - Slett filen FILNAVN.

  2.  :w FILNAVN  skriver den nåværende Vim-filen disken med navnet FILNAVN .

  3.  v  bevegelse  :w FILNAVN	lagrer de visuelt valgte linjene til filen
     FILNAVN.

  4.  :r FILNAVN  henter filen FILNAVN og legger den inn nedenfor markøren.

  5.  :r !dir  leser utdataene fra «dir»-kommandoen og legger dem nedenfor
     markørposisjonen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 6.1: «ÅPNE LINJE»-KOMMANDOEN


    ** Skriv  o  for å «åpne opp» for en ny linje etter markøren og gå til
       innsettingsmodus **

  1. Flytt markøren til linjen nedenfor merket --->.

  2. Skriv  o  (liten o) for å åpne opp en linje NEDENFOR markøren og gå inn i
     innsettingsmodus.

  3. Skriv litt tekst og trykk <ESC> for å gå ut av innsettingsmodusen.

---> Etter at  o  er skrevet blir markøren plassert på den tomme linjen.

  4. For å åpne en ny linje OVER markøren, trykk rett og slett en stor	O
     istedenfor en liten  o . Prøv dette på linjen nedenfor.

---> Lag ny linje over denne ved å trykke O mens markøren er på denne linjen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Leksjon 6.2: «LEGG TIL»-KOMMANDOEN


	    ** Skriv  a  for å legge til tekst ETTER markøren. **

  1. Flytt markøren til starten av linjen merket ---> nedenfor.

  2. Trykk  e  til markøren er på slutten av «li».

  3. Trykk  a  (liten a) for å legge til tekst ETTER markøren.

  4. Fullfør ordet sånn som på linjen nedenfor. Trykk <ESC> for å gå ut av
     innsettingsmodusen.

  5. Bruk  e  for å gå til det neste ufullstendige ordet og repeter steg 3 og
     4.

---> Denne li lar deg øve på å leg til tek på en linje.
---> Denne linjen lar deg øve på å legge til tekst på en linje.

Merk: a, i og A går alle til den samme innsettingsmodusen, den eneste
      forskjellen er hvor tegnene blir satt inn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Leksjon 6.3: EN ANNEN MÅTE Å ERSTATTE PÅ


	   ** Skriv en stor  R	for å erstatte mer enn ett tegn. **

  1. Flytt markøren til den første linjen nedenfor merket --->. Flytt markøren
     til begynnelsen av den første «xxx»-en.

  2. Trykk  R  og skriv inn tallet som står nedenfor på den andre linjen så
     det erstatter xxx.

  3. Trykk <ESC> for å gå ut av erstatningsmodusen. Legg merke til at resten
     av linjen forblir uforandret.

  4. Repeter stegene for å erstatte den gjenværende xxx.

---> Ved å legge 123 til xxx får vi xxx.
---> Ved å legge 123 til 456 får vi 579.

MERK: Erstatningsmodus er lik insettingsmodus, men hvert tegn som skrives
      erstatter et eksisterende tegn.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Leksjon 6.4: KOPIERE OG LIME INN TEKST


    ** Bruk y-operatoren for å kopiere tekst og  p  for å lime den inn **

  1. Gå til linjen merket ---> nedenfor og plasser markøren etter «a)».

  2. Gå inn i visuell modus med  v  og flytt markøren til like før «første».

  3. Trykk  y  for å kopiere (engelsk: «yank») den uthevede teksten.

  4. Flytt markøren til slutten av den neste linjen:  j$

  5. Trykk  p  for å lime inn teksten. Trykk deretter:	a andre <ESC> .

  6. Bruk visuell modus for å velge « valget.», kopier det med	y , gå til
     slutten av den neste linjen med  j$  og legg inn teksten der med  p .

---> a) Dette er det første valget.
     b)

Merk: Du kan også bruke  y  som en operator;  yw  kopierer ett ord.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 6.5: SETT VALG


  ** Sett et valg så søk eller erstatning ignorerer store/små bokstaver. **

  1. Let etter «ignore» ved å skrive:  /ignore <ENTER>
     Repeter flere ganger ved å trykke	n .

  2. Sett «ic»-valget (Ignore Case) ved å skrive:  :set ic

  3. Søk etter «ignore» igjen ved å trykke  n .
     Legg merke til at både «Ignore» og «IGNORE» blir funnet.

  4. Sett «hlsearch»- og «incsearch»-valgene:  :set hls is

  5. Skriv søkekommandoen igjen og se hva som skjer:  /ignore <ENTER>

  6. For å slå av ignorering av store/små bokstaver, skriv:  :set noic

Merk: For å fjerne uthevingen av treff, skriv:	:nohlsearch
Merk: Hvis du vil ignorere store/små bokstaver for kun en søkekommando, bruk
      \c  i uttrykket:	/ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 6

  1. Trykk  o  for å legge til en linje NEDENFOR markøren og gå inn i
     innsettingsmodus.
     Trykk  O  for å åpne en linje OVER markøren.

  2. Skriv  a  for å sette inn tekst ETTER markøren.
     Skriv  A  for å sette inn tekst etter slutten av linjen.

  3. Kommandoen  e  går til slutten av et ord.

  4. Operatoren  y  («yank») kopierer tekst,  p  («paste») limer den inn.

  5. Ved å trykke  R  går du inn i erstatningsmodus helt til  <ESC>  trykkes.

  6. Skriv «:set xxx» for å sette valget «xxx». Noen valg er:
	«ic» «ignorecase»	ignorer store/små bokstaver under søk
	«is» «incsearch»	vis delvise treff for en søketekst
	«hls» «hlsearch»	uthev alle søketreff

  7. Legg til «no» foran valget for å slå det av:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Leksjon 7.1: FÅ HJELP


		   ** Bruk det innebygde hjelpesystemet. **

  Vim har et omfattende innebygget hjelpesystem. For å starte det, prøv en av
  disse måtene:
    - Trykk Hjelp-tasten (hvis du har en)
    - Trykk F1-tasten (hvis du har en)
    - Skriv  :help <ENTER>

  Les teksten i hjelpevinduet for å finne ut hvordan hjelpen virker.
  Skriv  CTRL-W CTRL-W	for å hoppe fra et vindu til et annet
  Skriv  :q <ENTER>	for å lukke hjelpevinduet.

  Du kan få hjelp for omtrent alle temaer om Vim ved å skrive et parameter til
  «:help»-kommandoen. Prøv disse (ikke glem å trykke <ENTER>):

    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Leksjon 7.2: LAG ET OPPSTARTSSKRIPT


			** Slå på funksjoner i Vim **

  Vim har mange flere funksjoner enn Vi, men flesteparten av dem er slått av
  som standard. For å begynne å bruke flere funksjoner må du lage en
  «vimrc»-fil.

  1. Start redigeringen av «vimrc»-filen. Dette avhenger av systemet ditt:
	:e ~/.vimrc	  for Unix
	:e $VIM/_vimrc	  for MS Windows

  2. Les inn eksempelfilen for «vimrc»:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Lagre filen med:
	:w

  Neste gang du starter Vim vil den bruke syntaks-utheving. Du kan legge til
  alle dine foretrukne oppsett i denne «vimrc»-filen.
  For mer informasjon, skriv  :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Leksjon 7.3: FULLFØRING


	      ** Kommandolinjefullføring med CTRL-D og <TAB> **

  1. Vær sikker på at Vim ikke er i Vi-kompatibel modus:  :set nocp

  2. Se hvilke filer som er i katalogen:  :!ls	eller  :!dir

  3. Skriv starten på en kommando:  :e

  4. Trykk  CTRL-D  og Vim vil vise en liste over kommandoer som starter med
     «e».

  5. Trykk  <TAB>  og Vim vil fullføre kommandonavnet til «:edit».

  6. Legg til et mellomrom og starten på et eksisterende filnavn:  :edit FIL

  7. Trykk <TAB>. Vim vil fullføre navnet (hvis det er unikt).

MERK: Fullføring fungerer for mange kommandoer. Prøv ved å trykke CTRL-D og
      <TAB>. Det er spesielt nyttig for bruk sammen med  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  OPPSUMMERING AV LEKSJON 7


  1. Skriv  :help  eller trykk <F1> eller <Help> for å åpne et hjelpevindu.

  2. Skriv  :help kommando  for å få hjelp om  kommando .

  3. Trykk  CTRL-W CTRL-W  for å hoppe til et annet vindu.

  4. Trykk  :q	for å lukke hjelpevinduet.

  5. Opprett et vimrc-oppstartsskript for å lagre favorittvalgene dine.

  6. Når du skriver en «:»-kommando, trykk CTRL-D for å se mulige
     fullføringer. Trykk <TAB> for å bruke en fullføring.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Her slutter innføringen i Vim. Den var ment som en rask oversikt over
  editoren, akkurat nok til å la deg sette i gang med enkel bruk. Den er på
  langt nær komplett, da Vim har mange flere kommandoer. Les bruksanvisningen
  ved å skrive	:help user-manual  .

  For videre lesing og studier, kan denne boken anbefales:
      «Vim - Vi Improved» av Steve Oualline
      Utgiver: New Riders
  Den første boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
  nybegynnere. Inneholder mange eksempler og illustrasjoner.
  Se http://iccf-holland.org/click5.html

  Denne boken er eldre og handler mer om Vi enn Vim, men anbefales også:
      «Learning the Vi Editor» av Linda Lamb
      Utgiver: O'Reilly & Associates Inc.
  Det er en god bok for å få vite omtrent hva som helst om Vi.
  Den sjette utgaven inneholder også informasjon om Vim.

  Denne innføringen er skrevet av Michael C. Pierce og Robert K. Ware,
  Colorado School of Mines med idéer av Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu .

  Modifisert for Vim av Bram Moolenaar.
  Oversatt av Øyvind A. Holm. E-mail: vimtutor _AT_ sunbase.org
  Id: tutor.no 406 2007-03-18 22:48:36Z sunny

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim: set ts=8 :
PK�j�Z��j<����vim80/tutor/tutor.fr.utf-8nu�[���===============================================================================
=    B i e n v e n u e  dans  l e  T u t o r i e l  de  V I M  -  Version 1.7 =
===============================================================================

     Vim est un éditeur très puissant qui a trop de commandes pour pouvoir
     toutes les expliquer dans un cours comme celui-ci, qui est conçu pour en
     décrire suffisamment afin de vous permettre d'utiliser simplement Vim.

     Le temps requis pour suivre ce cours est d'environ 25 à 30 minutes, selon
     le temps que vous passerez à expérimenter.

     ATTENTION :
     Les commandes utilisées dans les leçons modifieront le texte. Faites une
     copie de ce fichier afin de vous entraîner dessus (si vous avez lancé
     "vimtutor" ceci est déjà une copie).

     Il est important de garder en tête que ce cours est conçu pour apprendre
     par la pratique. Cela signifie que vous devez exécuter les commandes
     pour les apprendre correctement. Si vous vous contentez de lire le texte,
     vous oublierez les commandes !

     Maintenant, vérifiez que votre clavier n'est PAS verrouillé en
     majuscules, et appuyez la touche  j  le nombre de fois suffisant pour
     que la Leçon 1.1 remplisse complètement l'écran.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leçon 1.1 : DÉPLACEMENT DU CURSEUR


  ** Pour déplacer le curseur, appuyez les touches h,j,k,l comme indiqué. **
          ^
          k        Astuce :  La touche h est à gauche et déplace à gauche.
    < h       l >            La touche l est à droite et déplace à droite.
          j                  La touche j ressemble à une flèche vers le bas.
          v
  1. Déplacez le curseur sur l'écran jusqu'à vous sentir à l'aise.

  2. Maintenez la touche Bas (j) enfoncée jusqu'à ce qu'elle se répète.
     Maintenant vous êtes capable de vous déplacer jusqu'à la leçon suivante.

  3. En utilisant la touche Bas, allez à la Leçon 1.2.

NOTE : Si jamais vous doutez de ce que vous venez de taper, appuyez <Échap>
       pour revenir en mode Normal. Puis retapez la commande que vous vouliez.

NOTE : Les touches fléchées devraient également fonctionner. Mais en utilisant
       hjkl vous pourrez vous déplacer beaucoup plus rapidement, une fois que
       vous aurez pris l'habitude.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 1.2 : SORTIR DE VIM


 !! NOTE : Avant d'effectuer les étapes ci-dessous, lisez toute cette leçon !!

  1. Appuyez la touche  <Échap>  (pour être sûr d'être en mode Normal).

  2. Tapez :  :q! <Entrée>
     Ceci quitte l'éditeur SANS enregistrer les changements que vous avez
     faits.

  3. Revenez ici en tapant la commande qui vous a mené à ce tutoriel.
     Cela pourrait être :    vimtutor <Entrée>

  4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes
     1 à 3 pour sortir puis rentrer dans l'éditeur.

NOTE :  :q! <Entrée> annule tous les changements que vous avez faits. Dans
         quelques leçons, vous apprendrez à enregistrer les changements.

  5. Déplacez le curseur à la Leçon 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leçon 1.3 : ÉDITION DE TEXTE - EFFACEMENT


         ** Appuyez   x   pour effacer le caractère sous le curseur. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  2. Pour corriger les erreurs, déplacez le curseur jusqu'à ce qu'il soit
     sur un caractère à effacer.

  3. Appuyez la touche  x  pour effacer le caractère redondant.

  4. Répétez les étapes 2 à 4 jusqu'à ce que la phrase soit correcte.

---> La vvache a sautéé au-ddessus dde la luune.

  5. Maintenant que la ligne est correcte, passez à la Leçon 1.4.

NOTE : En avançant dans ce cours, n'essayez pas de mémoriser, apprenez par
       la pratique.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 1.4 : ÉDITION DE TEXTE - INSERTION


                    ** Appuyez  i  pour insérer du texte. **

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.

  2. Pour rendre la première ligne identique à la seconde, mettez le curseur
     sur le premier caractère APRÈS l'endroit où insérer le texte.

  3. Appuyez  i  et tapez les caractères qui manquent.

  4. Une fois qu'une erreur est corrigée, appuyez <Échap> pour revenir en mode
     Normal. Répétez les étapes 2 à 4 pour corriger la phrase.

---> Il mnqe caractères cette .
---> Il manque des caractères dans cette ligne.

  5. Une fois que vous êtes à l'aise avec l'insertion de texte, allez à la
     Leçon 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 1.5 : ÉDITION DE TEXTE - AJOUTER


                    ** Appuyez  A  pour ajouter du texte. **

  1. Déplacez le curseur sur la première ligne ci-dessous marquée --->.
     Peu importe sur quel caractère se trouve le curseur sur cette ligne.

  2. Appuyez  A  et tapez les ajouts nécessaires.

  3. Quand le texte a été ajouté, appuyez <Échap> pour revenir en mode
     Normal.

  4. Déplacez le curseur sur la seconde ligne marquée ---> et répétez les
     étapes 2 et 3 pour corriger la phrase.

---> Il manque du texte à partir de cet
     Il manque du texte à partir de cette ligne.
---> Il manque aussi du te
     Il manque aussi du texte ici.

  5. Quand vous vous sentez suffisamment à l'aise pour ajouter du texte,
     allez à la Leçon 1.6.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leçon 1.6 : ÉDITER UN FICHIER


          ** Utilisez  :wq  pour enregistrer un fichier et sortir. **

!! NOTE : Lisez toute la leçon avant d'exécuter les instructions ci-dessous !!

  1. Sortez de ce tutoriel comme vous l'avez fait dans la Leçon 1.2 :  :q!
     Ou, si vous avez accès à un autre terminal, exécutez-y les actions
     qui suivent.

  2. À l'invite du shell, tapez cette commande :  vim tutor <Entrée>
     'vim' est la commande pour démarrer l'éditeur Vim, 'tutor' est le
     nom du fichier que vous souhaitez éditer. Utilisez un fichier qui peut
     être modifié.

  3. Insérez et effacez du texte comme vous l'avez appris dans les leçons
     précédentes.

  4. Enregistrez le fichier avec les changements et sortez de Vim avec :
       :wq <Entrée>

  5. Si vous avez quitté vimtutor à l'étape 1, recommencez vimtutor et
     déplacez-vous en bas vers le résumé suivant.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 1


  1. Le curseur se déplace avec les touches fléchées ou les touches hjkl.
           h (gauche)      j (bas)      k (haut)      l (droite)

  2. Pour démarrer Vim à l'invite du shell tapez :  vim FICHIER <Entrée>

  3. Pour quitter Vim tapez :  <Échap> :q! <Entrée>  pour perdre tous les
                                                     changements.
                   OU tapez :  <Échap> :wq <Entrée>  pour enregistrer les
                                                     changements.

  4. Pour effacer un caractère sous le curseur tapez :  x

  5. Pour insérer ou ajouter du texte tapez :
         i   tapez le texte à insérer avant le curseur   <Échap>
         A   tapez le texte à ajouter en fin de ligne    <Échap>

NOTE : Appuyer  <Échap>  vous place en mode Normal ou annule une commande
       partiellement tapée dont vous ne voulez plus.

Passez maintenant à la leçon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leçon 2.1 : COMMANDES D'EFFACEMENT


                     ** Tapez  dw  pour effacer un mot. **

  1. Appuyez  <Échap>  pour être sûr d'être en mode Normal.

  2. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  3. Placez le curseur sur le début d'un mot qui a besoin d'être effacé.

  4. Tapez  dw  pour faire disparaître ce mot.

NOTE : La lettre  d  apparaîtra sur la dernière ligne de l'écran lors de
       votre frappe. Vim attend que vous tapiez  w . Si vous voyez un autre
       caractère que  d  vous avez tapé autre chose ; appuyez <Échap> et
       recommencez.

---> Il y a quelques drôle mots qui n'ont rien à faire papier sur cette ligne.

  5. Répétez les étapes 3 et 4 jusqu'à ce que la phrase soit correcte et allez
     à la Leçon 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leçon 2.2 : PLUS DE COMMANDES D'EFFACEMENTS


          ** Tapez  d$  pour effacer jusqu'à la fin de la ligne. **

  1. Appuyez  <Échap>  pour être sûr d'être en mode Normal.

  2. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  3. Déplacez le curseur jusqu'à la fin de la ligne correcte (APRÈS le
     premier . ).

  4. Tapez  d$  pour effacer jusqu'à la fin de la ligne.

---> Quelqu'un a tapé la fin de cette ligne deux fois. cette ligne deux fois.

  5. Allez à la Leçon 2.3 pour comprendre ce qui se passe.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Leçon 2.3 : À PROPOS DES OPÉRATEURS ET DES MOUVEMENTS


  Plusieurs commandes qui changent le texte sont constituées d'un opérateur
  et d'un mouvement. Le format pour une commande d'effacement avec l'opérateur
  d  d'effacement est le suivant :

        d   mouvement

  Où :
    d         - est l'opérateur d'effacement
    mouvement - est le mouvement sur lequel agit l'opérateur (listés
                ci-dessous)

  Une courte liste de mouvements :
    w - jusqu'au début du prochain mot, en EXCLUANT son premier caractère.
    e - jusqu'à la fin du mot courant, en EXCLUANT son dernier caractère.
    $ - jusqu'à la fin de la ligne, en INCLUANT son dernier caractère.

  Ainsi, taper  de  va effacer depuis le curseur jusqu'à la fin du mot.

NOTE : Le seul appui d'un mouvement en mode Normal, sans commande, déplace le
       curseur comme indiqué.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Leçon 2.4 : UTILISER UN QUANTIFICATEUR AVEC UN MOUVEMENT


       ** Taper un nombre avant un mouvement le répète autant de fois. **

  1. Déplacez le curseur au début de la ligne marquée ---> ci-dessous.

  2. Tapez  2w  pour déplacer le curseur de 2 mots vers l'avant.

  3. Tapez  3e  pour déplacer le curseur à la fin du troisième mot vers
     l'avant.

  4. Tapez  0  (zéro) pour déplacer au début de la ligne.

  5. Répétez les étapes 2 et 3 avec des quantificateurs différents.

---> Ceci est juste une ligne avec des mots où vous pouvez vous déplacer.

  6. Déplacez-vous à la Leçon 2.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Leçon 2.5 : UTILISER UN QUANTIFICATEUR POUR EFFACER PLUS


       ** Taper un nombre avec un opérateur le répète autant de fois. **

  Outre la combinaison de l'opérateur d'effacement avec un déplacement
  mentionné ci-dessus, vous pouvez insérer un nombre (quantificateur)
  pour effacer encore plus :
       d   nombre   déplacement

  1. Déplacez le curseur vers le premier mot en MAJUSCULES dans la ligne
     marquée --->.

  2. Tapez  d2w  pour effacer les deux mots en MAJUSCULES.

  3. Répétez les étapes 1 et 2 avec des quantificateurs différents pour
     effacer les mots suivants en MAJUSCULES à l'aide d'une commande.

---> Cette ABC DE ligne FGHI JK LMN OP de mots est Q RS TUV nettoyée.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leçon 2.6 : OPÉREZ SUR DES LIGNES


              ** Tapez   dd   pour effacer une ligne complète. **

  Vu le nombre de fois où l'on efface des lignes complètes, les concepteurs
  de Vi ont décidé qu'il serait plus facile de taper simplement deux  d
  pour effacer une ligne.

  1. Placez le curseur sur la seconde ligne de la phrase ci-dessous.
  2. Tapez  dd  pour effacer la ligne.
  3. Maintenant allez à la quatrième ligne.
  4. Tapez   2dd   pour effacer deux lignes.

--->  1)  Les roses sont rouges,
--->  2)  La boue c'est drôle,
--->  3)  Les violettes sont bleues,
--->  4)  J'ai une voiture,
--->  5)  Les horloges donnent l'heure,
--->  6)  Le sucre est doux
--->  7)  Tout comme vous.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leçon 2.7 : L'ANNULATION


            ** Tapez  u  pour annuler les dernières commandes. **
               ** Tapez  U  pour récupérer toute une ligne. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous et placez-le sur
     la première erreur.
  2. Tapez  x  pour effacer le premier caractère redondant.
  3. Puis tapez  u  pour annuler la dernière commande exécutée.
  4. Cette fois, corrigez toutes les erreurs de la ligne avec la commande  x .
  5. Puis tapez un  U  majuscule pour remettre la ligne dans son état initial.
  6. Puis tapez  u  deux-trois fois pour annuler le  U  et les commandes
     précédentes.
  7. Maintenant tapez  CTRL-R  (maintenez la touche CTRL enfoncée pendant que
     vous appuyez R) deux-trois fois pour refaire les commandes (annuler
     les annulations).

---> Coorrigez les erreurs suur ccette ligne et reemettez-les avvec 'annuler'.

  8. Ce sont des commandes très utiles. Maintenant, allez au résumé de la
     Leçon 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 2


  1. Pour effacer du curseur jusqu'au mot suivant tapez :         dw

  2. Pour effacer du curseur jusqu'à la fin d'une ligne tapez :   d$

  3. Pour effacer toute une ligne tapez :                         dd

  4. Pour répéter un déplacement ajoutez un quantificateur :      2w

  5. Le format d'une commande de changement est :

       opérateur   [nombre]   déplacement

     Où :
       opérateur   - est ce qu'il faut faire, comme  d  pour effacer.
       [nombre]    - un quantificateur optionnel pour répéter le déplacement.
       déplacement - déplace le long du texte à opérer, tel que  w  (mot),
                     $ (jusqu'à la fin de ligne), etc.

  6. Pour se déplacer au début de ligne, utilisez un zéro :  0

  5. Pour annuler des actions précédentes, tapez :            u (u minuscule)
     Pour annuler tous les changements sur une ligne tapez :  U (U majuscule)
     Pour annuler l'annulation tapez :                        CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             Leçon 3.1 : LE COLLAGE


   ** Tapez  p  pour placer après le curseur ce qui vient d'être effacé. **

  1. Placez le curseur sur la première ligne ci-dessous marquée --->.

  2. Tapez  dd  pour effacer la ligne et la placer dans un registre de Vim.

  3. Déplacez le curseur sur la ligne c) au-dessus où vous voulez remettre la
     ligne effacée.

  4. En mode Normal, tapez   p   pour remettre la ligne en dessous du curseur.

  5. Répétez les étapes 2 à 4 pour mettre toutes les lignes dans le bon ordre.

---> d) Et vous, qu'apprenez-vous ?
---> b) Les violettes sont bleues,
---> c) L'intelligence s'apprend,
---> a) Les roses sont rouges,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 3.2 : LA COMMANDE DE REMPLACEMENT


     ** Tapez  rx  pour remplacer un caractère sous le curseur par  x . **

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.

  2. Placez le curseur de manière à ce qu'il surplombe la première erreur.

  3. Tapez  r  suivi du caractère qui doit corriger l'erreur.

  4. Répétez les étapes 2 et 3 jusqu'à ce que la première ligne soit égale
     à la seconde.

--->  Quand cette ligne a été sauvie, quelqu'un a lait des faunes de frappe !
--->  Quand cette ligne a été saisie, quelqu'un a fait des fautes de frappe !

  5. Maintenant, allez à la Leçon 3.3.

NOTE : N'oubliez pas que vous devriez apprendre par la pratique, pas par
       mémorisation.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 3.3 : L'OPÉRATEUR DE CHANGEMENT


            ** Pour changer jusqu'à la fin d'un mot, tapez  ce .**

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.

  2. Placez le curseur sur le  u  de luhko.

  3. Tapez  ce  et corrigez le mot (dans notre cas, tapez  'igne'.)

  4. Appuyez <Échap> et placez-vous sur le prochain caractère qui doit
     être changé.

  5. Répétez les étapes 3 et 4 jusqu'à ce que la première phrase soit
     identique à la seconde.

---> Cette luhko contient quelques myqa qui ont ricne d'être chantufip.
---> Cette ligne contient quelques mots qui ont besoin d'être changés.

Notez que  ce  efface le mot et vous place ensuite en mode Insertion.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 3.4 : PLUS DE CHANGEMENTS AVEC c


    ** L'opérateur de changement fonctionne avec les mêmes déplacements
       que l'effacement. **

  1. L'opérateur de changement fonctionne de la même manière que
     l'effacement. Le format est :

         c   [nombre]   déplacement

  2. Les déplacements sont identiques :  w (mot) et  $ (fin de ligne).

  3. Déplacez-vous sur la première ligne marquée ---> ci-dessous.

  4. Placez le curseur sur la première erreur.

  5. Tapez  c$  et tapez le reste de la ligne afin qu'elle soit identique
     à la seconde ligne, puis tapez <Échap>.

---> La fin de cette ligne doit être rendue identique à la seconde.
---> La fin de cette ligne doit être corrigée avec la commande  c$ .

NOTE :  Vous pouvez utiliser la touche Retour Arrière pour corriger les
        erreurs lorsque vous tapez.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 3


  1. Pour remettre le texte qui a déjà été effacé, tapez  p . Cela Place le
     texte effacé APRÈS le curseur (si une ligne complète a été effacée, elle
     sera placée sous la ligne du curseur).

  2. Pour remplacer le caractère sous le curseur, tapez  r  suivi du caractère
     qui remplacera l'original.

  3. L'opérateur de changement vous permet de changer depuis la position du
     curseur jusqu'où le déplacement vous amène. Par exemple, tapez  ce
     pour changer du curseur jusqu'à la fin du mot,  c$  pour changer jusqu'à
     la fin d'une ligne.

  4. Le format pour le changement est :

         c   [nombre]   déplacement

Passez maintenant à la leçon suivante.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Leçon 4.1 : POSITION DU CURSEUR ET ÉTAT DU FICHIER


  ** Tapez CTRL-G pour afficher votre position dans le fichier et son état.
     Tapez  G  pour vous rendre à une ligne donnée du fichier. **

NOTE : Lisez toute cette leçon avant d'effectuer l'une des étapes !!

  1. Maintenez enfoncée la touche CTRL et appuyez sur  g . On appelle cela
     CTRL-G. Une ligne d'état va apparaître en bas de l'écran avec le nom
     du fichier et le numéro de la ligne où vous êtes. Notez ce numéro, il
     servira lors de l'étape 3.

NOTE : Vous pouvez peut-être voir le curseur en bas à droite de l'écran.
       Ceci arrive quand l'option 'ruler' est activée (voir  :help 'ruler')

  2. Tapez  G   pour vous déplacer à la fin du fichier.
     Tapez  gg  pour vous déplacer au début du fichier.

  3. Tapez le numéro de la ligne où vous étiez suivi de   G . Cela vous
     ramènera à la ligne où vous étiez au départ quand vous aviez appuyé
     CTRL-G.

  4. Si vous vous sentez prêt à faire ceci, effectuez les étapes 1 à 3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leçon 4.2 : LA RECHERCHE


          ** Tapez  /  suivi d'un texte pour rechercher ce texte. **

  1. Tapez le caractère  /  en mode Normal. Notez que celui-ci et le curseur
     apparaissent en bas de l'écran, comme lorsque l'on utilise  : .

  2. Puis tapez 'errreuur' <Entrée>. C'est le mot que vous voulez rechercher.

  3. Pour rechercher à nouveau le même texte, tapez simplement  n .
     Pour rechercher le même texte dans la direction opposée, tapez  N .

  4. Pour rechercher une phrase dans la direction opposée, utilisez  ?
     au lieu de  / .

---> erreur ne s'écrit pas "errreuur" ; errreuur est une erreur.

NOTE : Quand la recherche atteint la fin du fichier, elle reprend au début
       sauf si l'option 'wrapscan' est désactivée.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Leçon 4.3 : RECHERCHE DES PARENTHÈSES CORRESPONDANTES


           ** Tapez  %  pour trouver des ), ] ou } correspondants. **

  1. Placez le curseur sur l'un des (, [ ou { de la ligne marquée --->
     ci-dessous.

  2. Puis tapez le caractère  % .

  3. Le curseur se déplacera sur la parenthèse ou crochet correspondant.

  4. Tapez  %  pour replacer le curseur sur la parenthèse ou crochet
     correspondant.

  5. Déplacez le curseur sur un autre (,),[,],{ ou } et regardez ce que
     fait  % .

---> Voici ( une ligne de test contenant des (, des [ ] et des { } )).

NOTE : Cette fonctionnalité est très utile lors du débogage d'un programme qui
       contient des parenthèses déséquilibrées !


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 4.4 : LA COMMANDE DE SUBSTITUTION


    ** Tapez  :s/ancien/nouveau/g  pour remplacer 'ancien' par 'nouveau'. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  2. Tapez  :s/lee/le <Entrée> . Notez que cette commande change seulement la
     première occurrence de "lee" dans la ligne.

  3. Puis tapez  :s/lee/le/g . L'ajout du drapeau  g  ordonne de faire une
     substitution globale sur la ligne, et change toutes les occurrences de
     "lee" sur la ligne.

---> lee meilleur moment pour regarder lees fleurs est pendant lee printemps.

  4. Pour changer toutes les occurrences d'un texte, entre deux lignes,
     tapez  :#,#s/ancien/nouveau/g  où #,# sont les numéros de lignes de la
                                    plage où la substitution doit être faite.
     Tapez  :%s/ancien/nouveau/g    pour changer toutes les occurrences dans
                                    tout le fichier.
     Tapez  :%s/ancien/nouveau/gc   pour trouver toutes les occurrences dans
                                    tout le fichier avec une invite pour
                                    confirmer ou infirmer chaque substitution.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 4


  1. CTRL-G       affiche la position dans le fichier et l'état de celui-ci.
               G  déplace à la fin du fichier.
     nombre    G  déplace au numéro de ligne.
              gg  déplace à la première ligne.

  2. Taper  /  suivi d'un texte recherche ce texte vers l'AVANT.
     Taper  ?  suivi d'un texte recherche ce texte vers l'ARRIÈRE.
     Après une recherche tapez  n  pour trouver l'occurrence suivante dans la
     même direction ou  Maj-N  pour rechercher dans la direction opposée.

  3. Taper  %  lorsque le curseur est sur  (, ), [, ], { ou }  déplace
     celui-ci sur le caractère correspondant.

  4. Pour remplacer le premier aa par bb sur une ligne tapez     :s/aa/bb
     Pour remplacer tous les aa par bb sur une ligne tapez       :s/aa/bb/g
     Pour remplacer du texte entre deux numéros de ligne tapez   :#,#s/aa/bb/g
     Pour remplacer toutes les occurrences dans le fichier tapez :%s/aa/bb/g
     Pour demander une confirmation à chaque fois ajoutez 'c'    :%s/aa/bb/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Leçon 5.1 : COMMENT EXÉCUTER UNE COMMANDE EXTERNE


 ** Tapez  :!  suivi d'une commande externe pour exécuter cette commande. **

  1. Tapez le  :  familier pour mettre le curseur en bas de l'écran. Cela vous
     permet de saisir une commande.

  2. Puis tapez un  !  (point d'exclamation). Cela vous permet d'exécuter
     n'importe quelle commande valide pour votre interpréteur (shell).

  3. Par exemple, tapez  ls  après le  !  et appuyez <Entrée>. Ceci affichera
     la liste des fichiers du répertoire courant, comme si vous aviez tapé la
     commande à l'invite du shell. Utilisez  :!dir  si  :!ls  ne marche pas.

NOTE :  Il est possible d'exécuter n'importe quelle commande externe de cette
        manière, avec ou sans argument.

NOTE :  Toutes les commandes  :  doivent finir par la frappe de <Entrée>.
        À partir de maintenant, nous ne le mentionnerons plus.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         Leçon 5.2 : PLUS DE DÉTAILS SUR L'ENREGISTREMENT DE FICHIERS


 ** Pour enregistrer les changements faits au texte, tapez  :w FICHIER . **

  1. Tapez  :!dir  ou  :!ls  pour avoir la liste des fichiers dans le
     répertoire courant. Vous savez déjà qu'il faut appuyer <Entrée> après
     cela.

  2. Choisissez un nom de fichier qui n'existe pas encore, par exemple TEST.

  3. Puis tapez  :w TEST  (où TEST est le nom que vous avez choisi).

  4. Cela enregistre tout le fichier (Tutoriel Vim) sous le nom TEST.
     Pour le vérifier, tapez  :!dir  ou  :!ls  de nouveau pour revisualiser
     votre répertoire.

NOTE : Si vous quittez Vim et le redémarrez de nouveau avec le fichier TEST,
       celui-ci sera une copie exacte de ce cours au moment où vous l'avez
       enregistré.

  5. Maintenant, effacez le fichier en tapant (MS-DOS) :   :!del TEST
                                           ou (Unix) :     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Leçon 5.3 : SÉLECTION DU TEXTE À ENREGISTRER


                  ** Pour enregistrer une portion du fichier,
                      tapez :   v  déplacement  :w FICHIER  **

  1. Déplacez le curseur sur cette ligne.

  2. Appuyez  v  et déplacez le curseur vers la cinquième ligne plus bas.
     Remarquez que le texte est en surbrillance.

  3. Appuyez  :  . En bas de l'écran  :'<,'> va apparaître.

  4. Tapez   w TEST  , où TEST est un nom de fichier qui n'existe pas.
     Vérifiez que vous voyez  :'<,'>w TEST  avant d'appuyer sur <Entrée>.

  5. Vim va enregistrer les lignes sélectionnées dans le fichier TEST.
     Utilisez  :!dir  ou  :!ls pour le voir. Ne l'effacez pas encore !
     Nous allons l'utiliser dans la leçon suivante.

NOTE : L'appui de  v  démarre la sélection Visuelle. Vous pouvez déplacer le
       curseur pour agrandir ou rétrécir la sélection. Puis vous pouvez
       utiliser un opérateur pour faire quelque chose sur le texte. Par
       exemple,  d  efface le texte.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Leçon 5.4 : RÉCUPÉRATION ET FUSION DE FICHIERS


        ** Pour insérer le contenu d'un fichier, tapez  :r FICHIER **

  1. Placez le curseur juste au-dessus de cette ligne.

NOTE :  Après avoir exécuté l'étape 2 vous verrez du texte de la Leçon 5.3.
        Puis déplacez-vous vers le bas pour voir cette leçon à nouveau.

  2. Maintenant récupérez votre fichier TEST en utilisant la commande  :r TEST
     où TEST est le nom de votre fichier.
     Le fichier que vous récupérez est placé au-dessous de la ligne du curseur.

  4. Pour vérifier que le fichier a bien été inséré, remontez et vérifiez
     qu'il y a maintenant deux copies de la Leçon 5.3, l'originale et celle
     contenue dans le fichier.

NOTE :  Vous pouvez aussi lire la sortie d'une commande externe. Par exemple,
        :r !ls  lit la sortie de la commande ls et la place sous la ligne du
        curseur.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 5


  1. :!commande  exécute une commande externe.

     Quelques exemples pratiques :
      (MS-DOS)        (Unix)
       :!dir           :!ls          affiche le contenu du répertoire courant.
       :!del FICHIER   :!rm FICHIER  efface FICHIER.

  2. :w FICHIER  enregistre le fichier Vim courant sur le disque avec pour
                  nom FICHIER.

  3. v  déplacement  :w FICHIER sauvegarde les lignes de la sélection Visuelle
     dans le fichier FICHIER.

  4. :r FICHIER  récupère le contenu du fichier FICHIER et l'insère sous la
     position du curseur.

  5. :r !dir  lit la sortie de la commande dir et l'insère sous la position
     du curseur.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leçon 6.1 : LA COMMANDE D'OUVERTURE


** Tapez  o  pour ouvrir une ligne sous le curseur et y aller en Insertion. **

  1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.

  2. Tapez la lettre   o   minuscule pour ouvrir une ligne SOUS le curseur et
     vous y placer en mode Insertion.

  3. Puis tapez du texte et appuyez <Échap> pour sortir du mode Insertion.

---> En tapant  o  le curseur se met sur la ligne ouverte, en mode Insertion.

  4. Pour ouvrir une ligne au-DESSUS du curseur, tapez simplement un  O
     majuscule, plutôt qu'un  o  minuscule. Faites un essai sur la ligne
     ci-dessous.

---> Ouvrez une ligne ci-dessus en tapant O lorsque le curseur est ici.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leçon 6.2 : LA COMMANDE D'AJOUT


            ** Tapez  a  pour insérer du texte APRÈS le curseur. **

  1. Placez le curseur au début de la ligne marquée ---> ci-dessous.

  2. Appuyez  e  jusqu'à ce que le curseur soit sur la fin de  li .

  3. Appuyez  a  (minuscule) pour ajouter du texte APRÈS le curseur.

  4. Complétez le mot comme dans la ligne dessous. Appuyez <Échap> pour
     sortir du mode Insertion.

  5. Utilisez  e  pour vous déplacer vers le mot incomplet suivant et
     répétez les étapes 3 et 4.

---> Cette li vous perm de pratiq l'ajout de t dans une ligne.
---> Cette ligne vous permet de pratiquer l'ajout de texte dans une ligne.

NOTE :  a, i, A vont tous dans le même mode Insertion, la seule différence
        est l'endroit où les caractères sont insérés.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Leçon 6.3 : UNE AUTRE MANIÈRE DE REMPLACER


       ** Tapez un  R  majuscule pour remplacer plus d'un caractère. **

  1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.
     Déplacez le curseur sur le début du premier xxx .

  2. Appuyez maintenant  R  et tapez le nombre dessous dans la deuxième ligne,
     de manière à remplacer le xxx .

  3. Appuyez <Échap> pour quitter le mode Remplacement. Notez que le reste de
     la ligne demeure inchangé.

  4. Répétez les étapes pour remplacer les xxx restants.


---> L'ajout de 123 à xxx donne xxx.
---> L'ajout de 123 à 456 donne 579.

NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
       caractères tapés effacent un caractère existant.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leçon 6.4 : COPIER ET COLLER DU TEXTE


   ** Utilisez l'opérateur  y  pour copier du texte et  p  pour le coller **

  1. Allez à la ligne marquée ---> ci-dessous et placez le curseur après "a)".

  2. Démarrez le mode Visuel avec  v  et déplacez le curseur juste devant
     "premier".

  3. Tapez  y  pour copier le texte en surbrillance.

  4. Déplacez le curseur à la fin de la ligne suivante :   j$

  5. Tapez  p  pour coller le texte. Puis tapez :  un second <Échap> .

  6. Utilisez le mode Visuel pour sélectionner "élément", copiez-le avec  y  ,
     déplacez-vous à la fin de la ligne suivante avec  j$  et collez le texte
     à cet endroit avec  p .

--->  a) ceci est le premier élément.
      b)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Leçon 6.5 : RÉGLAGE DES OPTIONS


    ** Réglons une option afin que la recherche et la substitution ignorent la
       casse des caractères. **

  1. Recherchez 'ignore' en tapant :   /ignore <Entrée>
     Répétez ceci plusieurs fois en utilisant la touche  n .

  2. Activez l'option 'ic' (ignorer casse) en tapant  :set ic .

  3. Puis cherchez 'ignore' de nouveau en utilisant  n .
     Remarquez que Ignore et IGNORE sont maintenant aussi trouvés.

  4. Activez les options 'hlsearch' et 'incsearch' avec  :set hls is .

  5. Puis recommencez une recherche, et faites bien attention à ce qui se
     produit :  /ignore <Entrée>

  6. Pour désactiver 'ignorer casse', entrez :  :set noic

NOTE : Pour enlever la surbrillance des résultats, entrez :   :nohlsearch

NOTE : Si vous voulez ignorer la casse uniquement pour une recherche, utilisez
       \c  dans la phrase :   /ignore\c  <Entrée>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             RÉSUMÉ DE LA LEÇON 6


  1. Taper  o  ouvre une ligne SOUS le curseur et démarre le mode Insertion.
     Taper  O  ouvre une ligne au-DESSUS du curseur.

  2. Taper  a  pour insérer du texte APRÈS le curseur.
     Taper  A  pour insérer du texte après la fin de ligne.

  3. Taper  e  déplace à la fin du mot.

  4. Taper  y  copie du texte,  p  le colle.

  5. Taper  R  majuscule active le mode Remplacement jusqu'à ce qu' <Échap>
     soit appuyé.

  6. Taper  ":set xxx"  active l'option "xxx". Quelques options sont :
        'ic'  'ingnorecase' pour ignorer la casse lors des recherches.
        'is'  'incsearch'   pour montrer les appariements partiels.
        'hls' 'hlsearch'    pour mettre en surbrillance les appariements.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leçon 7.1 : OBTENIR DE L'AIDE


                  ** Utiliser le système d'aide en ligne. **

  Vim a un système complet d'aide en ligne. Pour y accéder, essayez l'une de
  ces trois méthodes :
        - appuyez la touche <Help> (si vous en avez une)
        - appuyez la touche <F1> (si vous en avez une)
        - tapez  :help <Entrée>


  Lisez le texte dans la fenêtre d'aide pour savoir comment fonctionne l'aide.
  Tapez  CTRL-W CTRL-W   pour sauter d'une fenêtre à l'autre.
  Tapez  :q <Entrée>     pour fermer la fenêtre d'aide.

  Vous pouvez accéder à l'aide sur à peu près n'importe quel sujet en donnant
  des arguments à la commande  :help . Essayez par exemple (n'oubliez pas
  d'appuyer sur <Entrée>) :

        :help w
        :help c_CTRL-D
        :help c_<T
        :help insert-index
        :help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leçon 7.2 : CRÉER UN SCRIPT DE DÉMARRAGE

                   ** Activer les fonctionnalités de Vim. **

  Vim a beaucoup plus de fonctionnalités que Vi, mais la plupart de celles-ci
  sont désactivées par défaut. Pour commencer à les utiliser, vous devez
  créer un fichier "vimrc".

  1. Commencez à éditer le fichier "vimrc". Ceci dépend de votre système :
        :edit ~/.vimrc         pour Unix
        :edit $VIM/_vimrc      pour MS-Windows

  2. Lisez maintenant le fichier d'exemple "vimrc" :
        :r $VIMRUNTIME/vimrc_example.vim

  3. Enregistrez le fichier avec :
        :w

  La prochaine fois que vous démarrerez Vim, la coloration syntaxique sera
  activée. Vous pouvez ajouter tous vos réglages préférés dans ce fichier
  "vimrc". Pour plus d'informations, tapez  :help vimrc-intro


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leçon 7.3 : COMPLÈTEMENT


          ** Complètement de ligne de commande avec CTRL-D et <TAB> **

  1. Mettez Vim soit en mode non compatible :   set nocp

  2. Regardez quels fichiers existent dans le répertoire :  !ls  ou  !dir

  3. Tapez le début d'une commande :   :e

  4. Appuyez  CTRL-D  et Vim affichera une liste de commandes qui commencent
     par "e".

  5. Appuyez  <TAB>  et Vim complétera le nom de la commande :  ":edit"

  6. Ajoutez maintenant un espace et le début d'un fichier existant :
     :edit  FIC

  7  Appuyez  <TAB>. Vim va compléter le nom (s'il est unique).

NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
       d'appuyer CTRL-D et <TAB>. C'est utile en particulier pour  :help .


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              RÉSUMÉ DE LA LEÇON 7


  1. Tapez  :help  ou appuyez <F1> ou <Aide> pour ouvrir la fenêtre d'aide.

  2. Tapez  :help cmd  pour trouver l'aide sur  cmd .

  3. Tapez  CTRL-W CTRL-W  pour sauter à une autre fenêtre.

  4. Tapez  :q  pour fermer la fenêtre d'aide.

  5. Créez un script de démarrage vimrc pour conserver vos réglages préférés.

  6. Quand vous tapez une commande  :  appuyez CTRL-D pour voir les
     complètements possibles. Appuyez <TAB> pour utiliser un complètement.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Ceci conclut le Tutoriel Vim. Le but était de vous donner un bref aperçu de
  l'éditeur Vim, juste assez pour vous permettre d'utiliser l'éditeur
  relativement facilement. Il est loin d'être complet, vu que Vim a beaucoup
  plus de commandes. Un Manuel de l'utilisateur est disponible en anglais :
    :help user-manual

  Pour continuer à découvrir et à apprendre Vim, il existe un livre traduit en
  français. Il parle plus de Vi que de Vim, mais pourra vous être utile.
        L'éditeur Vi - Collection Précis et concis - par Arnold Robbins
        Éditeur : O'Reilly France
        ISBN : 2-84177-102-4

  Deux livres en anglais sont également mentionnés dans la version originale
  de ce tutoriel, dont un qui traite spécifiquement de Vim. Merci de vous y
  référer si vous êtes intéressés.

  Ce tutoriel a été écrit par Michael C. Pierce et Robert K. Ware de l'École
  des Mines du Colorado et reprend des idées fournies par Charles Smith,
  Université d'État du Colorado. E-mail : bware@mines.colorado.edu.

  Modifié pour Vim par Bram Moolenaar.
  Traduit en français par Adrien Beau, en avril 2001.
  Dernières mises à jour par Dominique Pellé.

  E-mail :      dominique.pelle@gmail.com
  Last Change : 2017 Jun 30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z�+3ŊŊvim80/tutor/tutor.sk.utf-8nu�[���===============================================================================
=    V i t a j t e   v o   V I M   T u t o r i a l i    -    Verzia 1.7       =
===============================================================================

     Vim je veľmi výkonný editor, ktorý má príliž veľa príkazov na to aby
     mohli byt všetky popísané vo výuke akou je táto. Táto výuka
     popisuje dostatočné množstvo príkazov nato aby bolo možné používať
     Vim ako viacúčelový editor.

     Približný čas potrebný na prebratie tejto výuky je 25-30 minút,
     závisí na tom, koľko je stráveného času s preskúšavaním.

     UPOZORNENIE:
     Príkazy v lekciách modifikujú text. Vytvor kópiu tohto súboru aby
     sa mohlo precvičovať na ňom (pri štarte "vimtutor" je toto kópia).

     Je dôležité zapamätať si, že táto výuka je vytvorená pre výuku
     používaním. To znamená, že je potrebné si príkazy vyskúšať, aby bolo
     učenie správne. Ak len čitas text, príkazy zabudneš!

     Presvedč sa, že Caps-Lock NIEJE stlačený a stlačt klávesu
     j  niekoľko krát, aby sa kurzor posunul natoľko, že lekcia 1.1
     celkom zaplní obrazovku.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 1.1:  POHYB KURZOROM


   ** Pre pohyb kurzorum stlač klávesy h,j,k,l ako je znázornené. **
        ^
        k        Funkcia: Klávesa h je naľavo a vykoná pohyb doľava.
   < h     l >   Klávesa l je napravo a vykoná pohyb doprava.
        j        Klávesa j vyzerá ako šípka dole
	      v
  1. Pohybuj kurzorom po obrazovke, kým si na to nezvykneš.

  2. Drž stlačenú klávesu pre pohyb dole (j), kým sa jej funkcia nezopakuje.
---> Teraz sa už vieš pohybovať na nasledujúcu lekciu.

  3. Použitím klávesy pre pohyb dole prejdi na Lekciu 1.2.

Poznámka: Ak si niesi istý tým čo si napísal, stlač <ESC>
	        na prechod do normálneho módu.

Poznámka: Kurzorové klávesy sú tiež funkčné. Ale používaním hjkl sa budeš
	        schopný pohybovať rýchlejšie, keď si zvykneš ich používať. Naozaj!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     LEKCIA 1.2: ZATVÁRANIE VIMU


  !! POZNÁMKA: Pred vykonaním týchto krokov si prečítaj celú túto lekciu !!

  1. Stlač klávesu <ESC> (aby si sa učite nachádzal v normálnom móde)

  2. Napíš:   :q! <ENTER>.
     Tým ukončíš prácu s editorom BEZ uloženia zmien, ktoré si vykonal.

  3. Keď sa dostaneš na príkazový riadok, napíš príkaz, ktorým sa dostaneš
     speť do tejto výuky. To môže byť:	vimtutor <ENTER>

  4. Ak si si tieto kroky spoľahlivo zapamätal, vykonaj kroky 1 až 3, pre
     ukončenie a znovu spustenie editora.

POZNÁMKA: :q! <ENTER> neuloží zmeny, ktoré si vykonal. O niekoľko lekcií
          sa naučíš ako uložiť zmeny do súboru

  5. presuň kurzor dole na lekciu 1.3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 1.3: EDITÁCIA TEXTU - MAZANIE


** Stlačenie klávesy  x  v normálnom móde zmaže znak na mieste kurzora. **

  1. Presuň kurzor nižšie na riadok označený značkou --->.

  2. Aby si mohol odstrániť chyby, pohybuj kurzorom kým neprejde na znak,
     ktorý chceš zmazať.

  3. Stlač klávesu  x  aby sa zmazal nechcený znak.

  4. Zopakuj kroky 2 až 4 až kým veta nieje správna.

---> Kraava skoočilla ccezz mesiiac.

  5. Ak je veta správna, prejdi na lekciu 1.4.

POZNÁMKA: Neskúšaj si zapamätať obsah tejto výuky, ale sa uč používaním.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 1.4: EDITÁCIA TEXTU - VKLADANIE


    ** Stlačenie klávesy  i  umožňuje vkladanie textu. **

  1. Presuň kurzor nižšie na prvý riadok za značku --->.

  2. Pre upravenie prvého riadku do rovnakého tvaru ako je druhý riadok,
     presuň kurzor na prvý znak za misto, kde má byť text vložený.

  3. Stlač klávesu  i  a napíš potrebný text.

  4. Po opravení každej chyby, stlač <ESC> pre návrat do normálneho módu.
     Zopakuj kroky 2 až 4 kým nieje veta správna.

---> Tu je text chýbajúci tejto.
---> Tu je nejaký text chýbajúci od tejto čiary.

  5. Keď sa dostatočne naučíš vkladať text, prejdi na nasledujúce zhrnutie.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Lekcia 1.5: EDITÁCIA TEXTU - PRIDÁVANIE


     ** Stlačenie klávesy  A  umožňuje pridávať text. **

  1. Presuň kurozr nižšie na prvý riadok za značkou --->.
     Nezáleží na tom, na ktorom znaku sa kurzor v tom riadku nachádza.

  2. Stlač klávesu  A  a napíš potrebný text.

  3. Po pridaní textu stlač klávesu <ESC> pre návrat do Normálneho módu.

  4. Presuň kurozr na druhý riadok označený ---> a zopakuj
     kroky 2 a 3 kým nieje veta správna.

---> Tu je nejaký text chýbajúci o
     Tu je nejaký text chýbajúci od tiaľto.
---> Tu tiež chýba nej
     Tu tiež chýba nejaký text.

  5. Keď sa dostatočne naučíš pridávať text, prejdi na lekciu 1.6.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       Lekcia 1.6: EDITÁCIA SÚBORU


    ** Napísaním  :wq  sa súbor uloží a zavrie **

!! POZNÁMKA: Pred vykonaním týchto krokov si prečítaj celú lekciu!!

1. Opusti túto výuku, ako si to urobil v lekcii 1.2:  :q!

2. Do príkazového riadku napíš príkaz:  vim tutor <ENTER>
   'vim' je príkaz, ktorý spustí editor Vim, 'tutor' je meno súboru,
   ktorý chceš editovať. Použi taký súbor, ktorý môžeš meniť.

3. Vlož a zmaž text tak, ako si sa naučil v predošlých lekciach.

4. Ulož súbor so zmenami a opusti Vim príkazom:  :wq  <ENTER>

5. Reštartuj vimtutor a presuň sa dole na nasledujúce zhrnutie.

6. Urob tak po prečítaní predošlých krokov a porozumeniu im.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ZHRNUTIE LEKCIE 1


  1. Kurzor sa pohybuje použitím kláves so šípkami alebo klávesmi hjkl.
	  h (do lava)    j (dole)    k (hore)    l (doprava)

  2. Pre spustenie Vimu (z príkazového riadku) napíš: vim FILENAME <ENTER>

  3. Na ukončenie Vimu napíš: <ESC>  :q!  <ENTER> pre zrušenie všetkých zmien
       alebo napíš:   <ESC>   :wq   <ENTER>    pre uloženie zmien.

  4. Na zmazanie znaku na mieste kurzora napíš:  x

  5. Pre vloženie textu na mieste kurzora v normálnom móde napíš:
	 i     napíš vkladaný text   <ESC>  vkladanie pred kurzor
   A     napíš pridávaný text  <EXC>  vkladanie za riadok

POZNÁMKA: Stlačenie <ESC> ťa premiestní do normálneho módu alebo zruší
	        nejaký nechcený a čiastočne dokončený príkaz.

Teraz pokračuj lekciou 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 2.1: Mazacie príkazy


	 ** Napísanie príkazu  dw  zmaže znaky do konca slova. **

1. Stlač  <ESC>  aby si bol bezpečne v normálnom móde.

2. Presuň kurzor nižšie na riadok označený značkou --->.

3. Presuň kurzor na začiatok slova, ktoré je potrebné zmazať.

4. Napíš  dw  aby slovo zmizlo.

POZNÁMKA: Písmeno d sa zobrazí na poslednom riadku obrazovky keď ho
	        napíšeš. Vim na teba počká, aby si mohol napísať
          písmeno w. Ak vidíš niečo iné ako  d , tak si napísal
          nesprávny znak; stlač  <ESC>  a začni znova.

---> Tu je niekoľko slov zábava, ktoré nie patria list do tejto vety.

5. Zopakuj kroky 3 až 4 kým veta nieje správna a prejdi na lekciu 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 2.2: VIAC MAZACÍCH PRÍKAZOV


	 ** Napísanie príkazu d$  zmaže znaky do konca riadku **

1. Stlač  <ESC>  aby si bol bezpečne v normálnom móde.

2. Presuň kurzor nižšie na riadok označený značkou --->.

3. Presuň kurzor na koniec správnej vety (ZA prvú bodku).

4. Napíš    d$    aby sa zmazali znaky do konca riadku.

---> Niekto napísal koniec tohto riadku dvakrát. koniec tohot riadku dvakrát.


5. Prejdi na lekciu 2.3 pre pochopenie toho čo sa stalo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 2.3: OPERÁTORY A POHYBY

  Veľa príkazov, ktoré menia text sú odvodené od operátorov a pohybov.
  Formát pre príkaz mazania klávesou  d  je nasledovný:

    d   pohyb

  kde:
    d     - je mazací operátor
    pohyb - je to čo operátor vykonáva (vypísané nižšie)

  Krátky list pohybov:
    w - do začiatku ďalšieho slova, okrem jeho prvého písmena.
    e - do konca terajšieho slova, vrátane posledného znaku.
    $ - do konca riadku, vrátane posledného znaku

  Takže napísaním  de  sa zmaže všetko od kurzora do konca slova.

POZNÁMKA: Stlačením iba pohybu v normálnom móde bez operátora
          sa presunie kurzor tak ako je to špecivikované.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcia 2.4: Použitie viacnásobného pohybu


   ** Napísaním čísla pred pohyb ho zopakuje zadný počet krát **

  1. Presuň kurozr nižšie na začiatok riadku označeného --->.

  2. Napíš  2w  a kurozr sa presunie o dve slová vpred.

  3. Napíš  3e  a kurozr sa presunie vpred na koniec tretieho slova.

  4. Napíš  0  (nula) a kurozr sa presunie na začiatok riadku.

  5. Zopakuj kroky 2 a 3 s rôznymi číslami.

---> Toto je riadok so slovami po kotrých sa môžete pohybovať.

  6. Prejdi na lekciu 2.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcia 2.5: POUŽITIE VIACNÁSOBNÉHO MAZANIA PRE HROMADNÉ MAZANIE


    ** Napísanie čísla spolu s operátorom ho zopakuje zadaný počet krát **

  V kombinácii operátorov mazania a pohybu spomínaného vyššie vlož počet
  pred pohyb pre docielenie hromadného mazania:
    d   číslo   pohyb

  1. Presuň kurzor na prvé slovo písané VEĽKÝMI PÍSMENAMI
     v riadku označenom --->.

  2. Napíš  2dw  a zmažeš dve slová písané VEĽKÝMI PÍSMENAMI

  3. Zopakuj kroky 1 a 2 s použitím rôzneho čísla tak aby si zmazal slová
     písané veľkými písmenami jedným príkazom.

---> Tento ABC DE riadok FGHI JK LMN OP so slovamI je Q RS TUV vycisteny.

POZNÁMKA: Číslo medzi operátorom  d  a pohybom funguje podobne ako pri
          použití s pohybom bez operátora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    		Lekcia 2.6: OPERÁCIE S RIADKAMI


	    ** Napísanie príkazu   dd   zmaže celý riadok. **

Vzhľadom na frekvenciu mazania celého riadku, sa autori Vimu rozhodli,
že bude jednoduchšie mazať celý riadok napísaním dvoch písmen d.

1. Presuň kurzor na druhý riadok v texte na spodu.
2. Napíš  dd  aby si zmazal riadok.
3. Prejdi na štvrtý riadok.
4. Napíš   2dd   aby si zmazal dva riadky.

    1)  Ruže sú červené,
    2)  Blato je zábavné,
    3)  Fialky sú modré,
    4)  Mám auto,
    5)  Hodinky ukazujú čas,
    6)  Cukor je sladký,
    7)  A to si ty.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 2.7: PRÍKAZ UNDO


** Stlač  u  pre vrátenie posledného príkazu,  U  pre úpravu celého riadku. **

1. Presuň kurzor nižšie na riadok označený značkou ---> a premiestni ho na
   prvú chybu.
2. Napíš  x  pre zmazanie prvého nechceného riadku.
3. Teraz napíš  u  čím vrátíš späť posledne vykonaný príkaz.
4. Teraz oprav všetky chyby na riadku použitím príkazu  x  .
5. Teraz napíš veľké   U  čím vrátíš riadok do pôvodného stavu.
6. Teraz napíš  u  niekoľko krát, čím vrátíš späť príkaz U.
7. Teraz napíš CTRL-R (drž klávesu CTRL stlačenú kým stláčaš R) niekoľko
   krát, čím vrátíš späť predtým vrátené príkazy (undo z undo).

---> Opprav chybby nna toomto riadku a zmeeň ich pommocou undo.

  8. Tieto príkazy sú často používané. Teraz prejdi na zhrnutie lekcie 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 2 ZHRNUTIE


  1. Pre zmazanie znakov od kurzora do konca slova napíš:   dw

  2. Pre zmazanie znakov od kurzora do konca riadku napíš:   d$

  3. Pre zmazanie celého riadku napíš:   dd

  4. Pre zopakovanie pohybu, napíš pred neho číslo:   2w

  5. Formát pre píkaz:

       operátor   [číslo]   pohyb
     kde:
       operátor - čo treba robiť, napríklad  d  pre zmazanie
       [číslo] - je voliteľný počet pre opakovanie pohybu
       pohyb - pohyb po texte vzhľadom na operátor, napríklad w (slovo),
		$ (do konca riadku), atď.

  6. Pre pohyb na začiatok riadku použi nulu:  0

  7. Pre vrátenie späť predošlej operácie napíš:	u   (malé u)
     Pre vrátenie všetkých úprav na riadku napíš:    U   (veľké U)
     Pre vrátenie vrátených úprav napíš:	      CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 3.1: PRÍKAZ VLOŽIŤ


	  ** Napísanie príkazu  p  vloží psledný výmaz za kurzor. **

  1. Presuň kurzor nižšie na prvý riadok textu.

  2. Napíš  dd  čím zmažeš riadok a uložíš ho do buffera editora Vim.

  3. Presuň kurzor vyššie tam, kam zmazaný riadok patrí.

  4. Ak napíšeš v normálnom móde   p   zmazaný riadk sa vloží.

  5. Zopakuj kroky 2 až 4, kým riadky niesú v správnom poradí.

---> d) Tiež sa dokážeš vzdelávať?
---> b) Fialky sú modré,
---> c) Inteligencia sa vzdeláva,
---> a) Ruže sú červené,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.2: PRÍKAZ NAHRADENIA


     ** Napísaním  rx  sa nahradí znak na mieste kurzora znakom  x . **

  1. Presuň kurzor nižšie na prví riadok textu označeného značkou --->.

  2. Presuň kurzor na začiatok prvej chyby.

  3. napíš  r  a potom znak, ktorý tam má byť.

  4. Zopakuj kroky 2 a 3, kým prvý riadok nieje zhodný s druhým.

---> Kaď bol tento riasok píaaný, niekro stlašil nesprábne klávesy!
---> Keď bol tento riadok písaný, niekto stlačil nesprávne klávesy!

  5. Teraz prejdi na lekciu 3.2.

POZNÁMKA: Pamätaj si, že naučiť sa môžeš len používanim, nie pamätaním.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.3. PRÍKAZ ÚPRAVY


     ** Ak chceš zmeniť časť slova do konca slova, napíš  ce . **

  1. Presuň kurzor nižšie na prvý riadok označený značkou --->.

  2. Umiestni kurzor na písmeno o v slove rosfpl.

  3. Napíš  ce  a oprav slovo (v tomto prípade napíš 'iadok'.)

  4. Stlač <ESC> a prejdi na ďalší znak, ktorý treba zmeniť.

  5. Zopakuj kroky 3 a 4, kým prvá veta nieje rovnaká ako druhá.

---> Tento rosfpl má niekoľko skic, ktoré je pirewvbí zmeniť piyťučán príkazu.
---> Tento riadok má niekoľko slov, ktoré je potrebné zmeniť použitím príkazu.

Poznámka, že  ce  zmaže slovo a nastaví vkladací mód.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcia 3.4: VIAC ZMIEN POUŽITÍM c


   ** Príkaz pre úpravy sa používa s rovnakými pohybmi ako pre mazanie **

  1. Príkaz pre úpravy pracuje rovnako ako pre mazanie. Formát je:

        c    [číslo]    pohyb

  2. Pohyby sú rovnaké, ako napríklad   w (slovo) a  $ (koniec riadku).

  3. Presuň kurzor nižšie na prvý riadok označený značkou --->.

  4. Presuň kurzor na prvú chybu.

  5. napíš  c$  aby si mohol upraviť zvyšok riadku podľa druhého
     a stlač <ESC>.

---> Koniec tohto riadku potrebuje pomoc, aby bol ako druhy.
---> Koniec tohto riadku potrebuje opraviť použitím príkazu  c$ .

POZNÁMKA: Môžeš použiť klávesu backspace na úpravu zmien počas písania.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 3 ZHRNUTIE


  1. Na vloženie textu, ktorý už bol zmazaný, napíš  p . To vloží zmazaný
     text ZA kurzor (ak bol riadok zmazaný prejde na riadok pod kurzorom).

  2. Pre naradenie znaku na mieste kurzora, napíš  r  a potom znak, ktorý
     nahradí pôvodný znak.

  3. Príkaz na upravenie umožňuje zmeniť od kurzora až po miesto, ktoré
     určuje pohyb.  napr. Napíš  ce  čím zmníš text od pozície
     kurzora do konca slova, c$  zmení text do konca riadku.

  4. Formát pre nahradenie je:

	    c    [číslo]    pohyb


Teraz prejdi na nalsedujúcu lekciu.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcia 4.1: POZÍCIA A STATUS SÚBORU


  ** Stlač CTRL-g pre zobrazenie svojej pozície v súbore a statusu súboru.
     Napíš  G  pre presun na riadok v súbore. **

  Poznámka: Prečítaj si celú túto lekciu skôr ako začneš vykonávať kroky!!

  1. Drž stlačenú klávesu Ctrl a stlač  g . Toto nazývame CTRL-G.
     Na spodu obrazovky sa zobrazí správa s názvom súboru a pozíciou
     v súbore. Zapamätajsi si číslo riadku pre použitie v kroku 3.

  2. Stlač  G  čím sa dostaneš na spodok súboru.
     Napíš  gg  čím sa dostaneš na začiatok súboru.

  3. Napíš číslo riadku na ktorom si sa nachádzal a stlač  G. To ťa
     vráti na riadok, na ktorom si prvý krát stlačil CTRL-G.

  4. Ak sa cítíš schopný vykonať teto kroky, vykonaj kroky 1 až 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 4.2: PRÍKAZ VYHĽADÁVANIA


  ** Napíš  /  nasledované reťazcom pre vyhľadanie príslušného reťazca. **

  1. Napíš znak  /  v normálnom móde. Poznámka, že tento znak sa spolu
     s kurzorom zobrazí v dolnej časti obrazovky s  :  príkazom.

  2. Teraz napíš 'errroor' <ENTER>. To je slovo, ktoré chceš vyhľadať.

  3. Pre vyhľadanie ďalšieho výskytu rovnakého reťazca, stlač jednoducho  n.
     Pre vyhľadanie ďalšieho výskytu rovnakého reťazca opačným smerom,
     N.

  4. Ak chceš vyhľadať reťazec v spätnom smere, použí príkaz  ?  miesto
     príkazu /.

  5. Pre návrat na miesto z ktorého si prišiel stlač CTRL-O (drž stlačenú
     klávesu Ctrl počas stlačenia klávesy o). Zopakuj pre ďalší návrat
     späť. CTRL-I ide vpred.

POZNÁMKA: "errroor" nieje spôsob hláskovania error; errroor je error.
POZNÁMKA: Keď vyhľadávanie dosiahne koniec tohto súboru, bude pokračovať na
      začiatku, dokiaľ nieje resetované nastavenie 'wrapscan' .


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Lekcia 4.3: VYHĽADÁVANIE ZODPOVEDAJÚCICH ZÁTAVORIEK


	 ** Napíš  %  pre vyhľadanie príslušného znaku ),], alebo } . **

  1. Premiestni kurzor na hocaký zo znakov (, [, alebo { v riadku nižšie
     označeného značkou --->.

  2. Teraz napíš znak  % .

  3. Kurzor sa premiestni na zodpovedajúcu zátvorku.

  4. Napíš  %  pre presun kurzoru späť na otvárajúcu zátvorku.

  5. Presuň kurzor na iný zo znakov (,),[,],{ alebo } a všimni si
     čo % vykonáva.

---> Toto ( je testovací riadok s ('s, ['s ] a {'s } v riadku. ))

Poznámka: Toto je veľmi výhodné použíť pri ladení programu s chýbajúcimi
	  uzatvárajúcimi zátvorkami!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 4.4: PRÍKAZ NAHRADENIA


 ** Napíš   :s/starý/nový/g  pre nahradenie slova 'starý' za slovo 'nový'. **

  1. Presuň kurzor nižšie na riadok označený značkou --->.

  2. Napíš  :s/thee/the <ENTER> . Poznamka, že tento príkaz zmení len prvý
     výskyt "thee" v riadku.

  3. Teraz napíš   :s/thee/the/g   čo znamená celkové nahradenie v riadku.
     Toto nahradí všetky výskyty v riadku.

---> Thee best time to see thee flowers in thee spring.

  4. Pre zmenu všetkých výskytov daného reťazca medzi dvomi ridakami,
     napíš  :#,#s/starý/nový/g  kde #,# sú čísla dvoch riadkov, v rozsahu
                                ktorých sa nahradenie vykoná.
     napíš  :%s/starý/nový/g    pre zmenu všetkých výskytov v celom riadku
     napíš  :%s/starý/nový/gc   nájde všetky výskyty v celom súbore,
                                s otázkou či nahradiť alebo nie



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 4 ZHRNUTIE


  1. CTRL-g    vypíše tvoju pozíciu v súbore a status súboru.
            G  ťa premiestni na koniec riadku.
     číslo  G  ťa premiestni na riadok s číslom.
           gg  ťa presunie na prvý riadok

  2. Napísanie  /  nasledované reťazcom vyhľadá reťazec smerom DOPREDU.
     Napísanie  ?  nasledované reťazcom vyhľada reťazec smerom DOZADU.
     Napísanie  n  po vyhľadávaní, vyhľadá nasledujúci výskyt reťazca
     v rovnakom smere, pričom  N  vyhľadá v opačnom smere.
     CTRL-O ťa vráti späť na staršiu pozíciu, CTRL-I na novšiu pozíciu.

  3. Napísanie  %  keď kurzor je na (,),[,],{, alebo } nájde zodpovdajúcu
     párnu zátvorku.

  4. Pre nahradenie nového za prvý starý v riadku napíš    :s/starý/nový
     Pre nahradenie nového za všetky staré v riadku napíš  :s/starý/nový/g
     Pre nahradenie reťazcov medzi dvoma riadkami 3 napíš  :#,#/starý/nový/g
     Pre nahradenie všetkých výskytov v súbore napíš       :%s/starý/nový/g
     Pre potvrdenie každého nahradenia pridaj 'c'	         :%s/starý/nový/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcia 5.1 AKO SPUSTIŤ VONKAJŠÍ PRÍKAZ


 ** Napíš príkaz  :!  nasledovaný vonkajším príkazom pre spustenie príkazu **

  1. Napíš obvyklý píkaz  :  ktorý nastaví kurzor na spodok obrazovky.
     To umožní napísať príkaz.

  2. Teraz napíš  !  (výkričník). To umožní spustiť hociaký vonkajší príkaz
     z príkazového riadku.

  3. Ako príklad napíš  ls  za ! a stlač <ENTER>. Tento príkaz
     zobrazí obsah tvojho adresára rovnako ako na príkazovom riadku.
     Alebo použi  :!dir  ak ls nefunguje.

Poznámka:  Takto je možné spustiť hociaký vonkajší príkaz s argumentami.
Poznámka:  Všetky príkazy  :  musia byť dokončené stlačením <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcia 5.2: VIAC O UKLADANÍ SÚBOROV


     ** Pre uloženie zmien v súbore, napíš  :w FILENAME. **

  1. Napíš  :!dir  alebo  :!ls  pre výpis aktuálneho adresára.
     Už vieš, že musíš za týmto stlačiť <ENTER> .

  2. Vyber názov súboru, ktorý ešte neexistuje, ako napr. TEST.

  3. Teraz napíš:   :w TEST   (kde TEST je názov vybratého súboru.)

  4. To uloží celý súbor  (Vim Tutor)  pod názovm TEST.
     Pre overenie napíš   :!dir   , čím  zobrazíš obsah adresára.

Poznámka: že ak ukončíš prácu s editorom Vim a znovu ho spustíš príkazom
	        vim TEST, súbor bude kópia výuky, keď si ho uložil.

  5. Teraz odstráň súbor napísaním (MS-DOS):   :!del TEST
			     alebo (Unix):     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcia 5.3 VÝBER TEXTU PRE ULOŽENIE


  ** Pre uloženie časti súboru, napíš  v  pohyb :w FILENAME **

  1. Presuň kurozr na tento riadok.

  2. Stlač  v  a presuň kurozr na piatu položku dole. Poznámka, že
     tento text je vyznačený (highlighted).

  3. Stlač klávesu  : . V spodnej časti okna sa objaví  :'<,'>.

  4. Napíš w TEST  , kde TEST je meno súboru, ktorý zatial neexistuje.
     Skontroluj, e vidíš  :'<,'>w TEST  predtým než stlačíš Enter.

  5. Vim zapíše označené riadky do súboru TEST. Použi :!dir  alebo  :!ls
     pre overenie. Zatial ho ešte nemaž! Použijeme ho v ďalšej lekcii.

POZNÁMKA: Stlačením klávesy  v  sa spustí vizuálne označovanie.
          Môžeš pohybovať kurzorom pre upresnenie vyznačeného textu.
          Potom môžeš použiť operátor pre vykonanie nejakej akcie
          s textom. Napríklad  d  zmaže vyznačený text.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcia 5.4: VÝBER A ZLUČOVANIE SÚBOROV


	** Pre vloženie obsahu súboru, napíš   :r FILENAME **

  1. Premiestni kurzor nad tento riadok.

POZNÁMKA: Po vykonaní kroku 2 uvidíš text z lekcie 5.3. Potom sa presuň
          dole, aby si videl túto lekciu.

  3. Teraz vlož súbor TEST použitím príkazu   :r TEST   kde TEST je názov
     súboru. Súbor, ktorý si použil je umiestnený pod riadkom s kurzorom.

POZNÁMKA: Môžeš tiež načítať výstup vonkajšieho príkazu. Napríklad :r !ls
          načíta výstup príkazu ls a umiestni ho za pozíciu kurzora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKCIA 5 ZHRNUTIE


  1.  :!príkaz  spustí vonkajší príkaz.

      Niektoré využiteľné príklady sú:
	(MS_DOS)    (UNIX)
	 :!dir       :!ls	    -  zobrazí obsah adresára
	 :!del FILENAME    :!rm FILENAME    -  odstráni súbor FILENAME

  2.  :w FILENAME  uloží aktuálny súbor na disk pod menom FILENAME.

  3.  v  pohyb  :w FILENAME  uloží vizuálne označené riadky do
      súboru FILENAME.

  4.  :r FILENAME  vyberie z disku súbor FILENAME a vloží ho do aktuálneho
      súboru za pozíciou kurzora.

  5. :r !dir  načíta výstup z príkazu dir a vloží ho za pozíciu kurzora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 6.1: PRÍKAZ OTVORIŤ


** Napíš  o  pre vloženie riadku pod kurzor a prepnutie do vkladacieho módu **

  1. Presuň kurzor nižšie na riadok označený značkou --->.

  2. Napíš o (malé písmeno) pre vloženie čistého riadku pod kurzorm
     a prepnutie do vkladacieho módu.

  3. Teraz skopíruj riadok označený ---> a stlač <ESC> pre ukončenie
     vkladacieho módu.

---> Po napísaní  o  sa kurzor premiestní na vložený riadok do vkladacieho
     módu.

  4. Pre otvorenie riadku nad kurzorom, jednotucho napíš veľké  O ,
     namiesto malého  o. Vyskúšaj si to na riadku dole.

---> Vlož riadok nad týmto napísaním O, keď kurzor je na tomto riadku.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcia 6.2: PRÍKAZ PRIDAŤ


	   ** Napíš  a  pre vloženie textu ZA kurzor. **

  1. Presuň kurzor nižšie na koniec prvého riadku označeného značkou --->

  2. Stlač klávesu  e  dokiaľ kurozr nieje na konci riadku.

  3. Napíš  a  (malé písmeno) pre pridanie textu ZA kurzorom.

  4. Dokončí slovo tak ako je to v druhom riadku. Stlaš <ESC> pre
     opustenie vkladacieho módu.

  5. Použi  e  na presun na ďalšie nedokončené slovo a zopakuj kroky 3 a 4.

---> Tento ri ti dovoľuje nácv priávan testu na koniec riadku.
---> Tento riadok ti dovoľuje nácvik pridávania textu na koniec riadku.

POZNÁMKA: a, i, A štartujú rovnaký vkladací mód, jediný rozidel je, kde
          sa znaky vkladajú.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcia 6.3: INÝ SPOSOB NAHRADZOVANIA


      ** Napíš veľké R pre nahradenie viac ako jedného znaku. **

  1. Presuň kurzor nižšie na prvý riadok označený značkou --->. Premiestni
     kurzor na začiatok prvého výskytu  xxx.

  2. Teraz napíš  R  a  napíš  číslo uvedené v druhom riadku, takže
     sa ním nahradí pôvodné xxx.

  3. Stlač <ESC> pre opustenie nahradzovacieho módu. Poznámka, že zvyšok
     riadku zostane nezmenený.

  4. Zopakuj tieto kroky pre nahradenie zvyšných xxx.

---> Pridaním 123 ku xxx dostaneš xxx.
---> Pridaním 123 ku 456 dostaneš 579.

POZNÁMKA:  Nahradzovací mód je ako vkladací mód, ale každý napísaný znak
           zmaže existujúci znak.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Lekcia 6.4: Copy Paste textu

    ** použí operátor  y  pre copy textku a  p  pre jeho paste **

  1. Choď nižšie na riadok označený ---> a umiestni kurozr za "a)".

  2. Naštartuj vizuálny mód použitím  v  a presuň kurozr pred "first".

  3. Napíš  y  pre  vystrihnutie (copy) označeného textu.

  4. Presuň kurozr na koniec ďalšieho riadku: j$

  5. Napíš  p  pre vložnie (paste) textu. Potom napíš:  a druha <ESC>.

  6. Použi vizuálny mód pre označenie "položka.", vystrihni to
     použitím  y, presuň sa na koniec nasledujúceho riadku použitím  j$
     a vlož sem text použitím  p.

---> a) toto je prvá položka
---> b)

POZNÁMKA: Môžeš použiť tiež  y  ako operátor; yw  vystrihne jedno slovo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcia 6.5: NASTAVENIE MOŽNOSTÍ


** Nastav možnosti, takže vyhľadávanie alebo nahradzovanie ignoruje
   rozlišovanie **


  1. Vyhľadaj reťazec 'ignore' napísaním:
     /ignore <ENTER>
     Zopakuj vyhľadávanie niekoľko krát stlačením klávesy  n .

  2. Nastav možnosť 'ic' (Ignore case) napísaním príkazu:
     :set ic

  3. Teraz vyhľadaj reťazec 'ingore' znova stlačením klávesy  n
     Poznámka, že teraz sú vyhľadané aj Ignore a IGNORE.

  4. Nastav možnosťi 'hlsearch' a 'incsearch':
     :set hls is

  5. Teraz spusti vyhľadávací príkaz znovu, a pozri čo sa stalo:
     /ignore <ENTER>

  6. Pre opetovné zapnutie rozlyšovania veľkých a malých písmen
     napíš:  :set noic

POZNÁMKA: Na odstránenie zvýraznenia výrazov napíš:  :nohlsearch
POZNÁMKA: Ak chceš nerozlyšovať veľkosť písmen len pre jedno
          použitie vyhľadávacieho príkazu, použi \c:  /ignore\c <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      LEKCIA 6 ZHRNUTIE


  1. Napíš  o  pre otvorenie riadku pod kurzorom a štart vkladacieho módu.
     Napíš  O  pre otvorenie riadku nad kurzorom.

  2. Napíš  a  pre vkladanie textu ZA kurzor.
     Napíš  A  pre vkladanie textu za koncom riadku.

  3. Príkaz  e  presunie kurozr na koniec slova

  4. Operátor  y  vystrihne (skopíruje) text,  p  ho vloží.

  5. Napísanie veľkého  R  prepne do nahradzovacieho módu, kým nieje
     stlačené <ESC>.

  6. Napísanie ":set xxx" nastaví možnosť "xxx". Niektoré nastavenia sú:
     'ic' 'ignorecase' ignoruje veľké a malé písmená počas vyhľadávania.
     'is' 'incsearch' zobrazuje čiastočné reťazce vyhľadávaného reťazca.
     'hls' 'hlsearch' vyznačí všetky vyhľadávané reťazce.
      Môžeš použiť hociktorý z dlhých a krátkych názvov možností.

  7. Vlož "no" pred nastavenie pre jeho vypnutie:  :set noic







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    LEKCIA 7.1: ZÍSKANIE NÁPOVEDY


	  ** Používaj on-line systém nápovedy **

  Vim má obsiahly on-line systém nápovedy. Pre odštartovanie, vyskúšaj jeden
  z týchto troch:
	- stlač klávesu <HELP> (ak nejakú máš)
	- stlač klávesu <F1> (ak nejakú máš)
	- napíš  :help <ENTER>

  Čítaj text v okne nápovedy pre získanie predstavy ako nápoveda funguje.
  Napíš   CTRL-W CTRL-W  pre skok z jedného okna do druhého.
  Napíš    :q <ENTER>    čím zatvoríš okno nápovedy.

  Môžeš nájsť help ku hociakej téme pridaním argumentu ku príkazu ":help".
  Vyskúšaj tieto (nezabudni stlačiť <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 LEKCIA 7.2: VYTVORENIE ŠTARTOVACIEHO SKRIPTU

		       ** Zapni funkcie editora Vim **

  Vim má omnoho viac funkcii než Vi, ale večšina z nich je implicitne
  vypnutá. Pre používanie viac Vim funkcii vytvor "vimrc" súbor.

  1. Začni editovať "vimrc" súbor, to závisí na použitom systéme:
	:e ~/.vimrc      pre Unix
	:e $VIM/_vimrc   pre MS-Windows

  2. Teraz si prečítaj text príkladu "vimrc" súboru:

	:r $VIMRUNTIME/vimrc_example.vim

  3. Ulož súbor:
	:w

  Pri nasledujúcom štarte editora Vim sa použije zvýrazňovanie syntaxe.
  Do "vimrc" súboru môžeš pridať všetky svoje uprednostňované nastavenia.
  Pre viac informácii napíš  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                   LEKCIA 7.3 DOKONČENIE

     ** Dokonči príkaz na príkazovom riadku použitím CTRL-D a <TAB> **

  1. Uisti sa, že Vim nieje v kompatibilnom móde:  :set nocp

  2. Pozri sa aké súbory sa nachádzajú v adresári:  :!ls  alebo  :!dir

  3. Napíš začiatok príkazu:  :e

  4. Stlač  CTRL-D  a Vim zobrazí zoznam príkazov začínajúcich "e".

  5. Stlač <TAB> a Vim dokončí meno príkazu na ":edit".

  6. Teraz pridaj medzerník a začiatok mena existujúceho súboru:
     :edit FIL

  7. Stlač <TAB>. Vim dokončí meno (ak je jedinečné).

POZNÁMKA: Dokončovanie funguje pre veľa príkazov. Vyskúšaj stlačenie
          CTRL-D a <TAB>. Špeciálne je to užitočné pre príkaz  :help.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

            LEKCIA 7 ZHRNUTIE

  1. Napíš  :help  alebo stlač <F1> alebo <Help> pre otvorenie okna nápovedy.

  2. Napíš  :help príkaz  pre vyhľadanie nápovedy ku príkazu príkaz.

  3. Napíš  CTRL-W CTRL-W  na preskočenie do iného okna.

  4. Napíš  :q  pre zatvorenie okna nápovedy

  5. Vytvor štartovací skript vimrc pre udržanie uprednostňovaných nastavení.

  6. Počas písania príkazu  :  stlač CTRL-D pre zobrazenie dokončení.
     Stlač <TAB> pre použitie jedného z dokončení.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



  Toto vymedzuje výuku Vimu. Toto je určené pre strucný prehľad o editore
  Vim, úplne postačujúce pre ľahké a obstojné používanie tohto editora.
  Táto výuka je ďaleko od kompletnosti, pretože Vim má omnoho viacej príkazov.
  Ako ďalšie si prečítaj užívatľský manuál: ":help user-manual".

  Pre ďalšie čítanie a štúdium je odporúčaná kniha:
  Vim - Vi Improved - od Steve Oualline
  Vydavateľ: New Riders
  Prvá kniha určená pre Vim. Špeciálne vhodná pre začiatočníkov.
  Obsahuje množstvo príkladov a obrázkov.
  Pozri na http://iccf-holland.org/click5.html

  Táto kniha je staršia a je viac o Vi ako o Vim, ale je tiež odporúčaná:
  Learning the Vi Editor - od Linda Lamb
  Vydavateľ: O'Reilly & Associates Inc.
  Je to dobrá kniha pre získanie vedomostí o práci s editorom Vi.
  Šieste vydanie obsahuje tiež informácie o editore Vim.

  Táto výuka bola napísaná autormi Michael C. Pierce a Robert K. Ware,
  Colorado School of Mines s použitím myšlienok dodanými od Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Modifikované pre Vim od Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Preklad do Slovenčiny: Ľuboš Čelko
  e-mail:       celbos@inmail.sk
  Last Change:  2006 Apr 18
  encoding:     iso8859-2
PK�j�Z�b�Eu�u�vim80/tutor/tutor.bar.utf-8nu�[���===============================================================================
=    G o t i k a m   i n   n   W I M M - S c h a i n e r   -   Fassung 1.7    =
===============================================================================

   Dyr Wimm ist ayn gro mächtigs Blat, dös was mit aynn Wösn Befelh aufwartt; z
   vil,  däß myn s allsand  in aynn Schainer  wie dönn daader  unterbräng.  Der
   Schainer ist yso aufbaut,  däß yr halt netty die Befelh allsand bringt, wost
   brauchst, däßst mit iem für s Eerste wirklich öbbs anfangen kanst.
   Durchhinarechtn kanst di, wennst willst, in ayner halbetn Stund; dös haisst,
   wennst di nit grooß mit n Pröbln und Tüftln aufhaltst.

   OBACHT:
   Die Faudungen,  wost daader finddst,  gaand istig  s Gwort öndern.  Dösswögn
   machst eyn n Böstn glei  ayn Aamum von derer Dautticht daader.  Haast alsnan
   dös Gwort daader mit n Befelh  "vimtutor bar"  ausherlaassn, ist s ee schoon
   ayn Aamum.
   Mir kan s  nit oft gnueg  sagn,  däß  der Schainer daader  istig  gan n Üebn
   ghoert.  Also muesst schoon aau die Befelh +ausfüern, wennst ys gscheid ler-
   nen willst. Mit n Lösn yllain ist s +nit taan!

   Ietz schaust grad non, däß dein Föststölltastn nit druckt ist; und aft geest
   glei aynmaal mit dyr j-Tastn abwärts (yso laaufft dös nömlich),  hinst däßst
   de gantze Letzn 1.1 auf n Bildschirm haast.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 1.1: MIT N MÖRKL UMAYNANDFARN

** Dyrmitst mit n Mörkl umaynandkimmst, druck  h, j, k und l  wie unt zaigt. **
            ^            Ayn Öslsbrugg:
            k            De Tastn  h  ist winster und +geet aau gan winster.
   < h             l >   S  l  leit zesm und richtt si gan zesm.
            j            S  j  kan myn wie aynn Pfeil gan unt seghn.
            v            Mit n  k  kimmst gan n KOPF.            
  1. Ietz ruedertst ainfach mit n Mörkl auf n Bildschirm umaynand,  hinst däßst
     di sicher füelst.
  2. Halt d Abhin-Tastn  (j)  druckt;  aft rumplt s  ainfach weiter.  Netty yso
     kimmst gan dyr naehstn Letzn.
     
  3. Wie gsait, ietz bewögst di also mit derer Tastn gan dyr Letzn 1.2.

Non öbbs: Allweil, wenn dyr niemer ganz wol ist, wasst öbbenn druckt haast, aft
          zipfst  <ESC>  ; naacher bist wider ganz gwon in dyr Befelhs-Artweis.

      
          Nöbnbei gsait kimmst gwonerweil aau mit de Pfeiltastnen weiter.  Aber
          hjkl  seind z haissn s Wimm-Urgstain;  und de "Hörtn" seind ganz dyr-
          für, däß myn bei +dene bleibt. Pröblt s ainfach aus!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Letzn 1.2: ÖNN WIMM AUSSCHALTTN


  ALSO, EE WENNST ÖBBS VON DAA UNT AUSFÜERST,  LIS LIEBER ZEERST DE GANTZE LET-
  ZN!

  1. Druck d <ESC>-Tastn, dyrmitst aau gwiß in dyr Befelhs-Artweis bist.
  
  2. Demmlt  :q!<EIN>  .
     Daa dyrmit  benddst ys Blat  und verwirffst  allss,  wasst öbbenn  göndert
     haast.

  3. Balst önn Eingib seghst, gib dö Faudung ein,  wo di zo dönn Schainer brun-
     gen haat, also   vimtutor bar<EIN>  .

  4. Also, wenn ietz allsse sitzt, naacherd füerst d Schritt 1 hinst 3 aus, mit
     wasst ys Blat verlaasst und aft wider einhinkimmst.

Anmörkung: Mit  :q!<EIN>  verwirffst allss, wasst göndert older enther gschribn
           haast. In aynn Öttlych Letznen lernst acht, wiest dös allss in ayner
           Dautticht speichertst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 1.3: GWORT BARECHTN - LÖSCHN 

         
         ** Druck  x  , dyrmitst dös Zaichen unter n Mörkl löschst. **

  1. Bewög di mit n Mörkl auf de mit  --->  angmörkte Zeil unt.

  2. Zo n Faeler Verbössern  farst mit n Mörkl  netty  auf dös Zaichen,  dös wo
     glöscht ghoert.

  3. Druck de Tastn  x  , däßst dös überflüssige Zaichen löschst.

  4. Ietz tuest so lang weiter mit 2 hinst 4, hinst däß dyr Saz stimmt.

---> De Kkuue sprangg übber nn Maanad.

  5. Wenn ietz de Zeil verbössert ist, geest gan dyr Letzn 1.4. weiter.

Und ganz wichtig:  Dyrweilst dönn Schainer durcharechtst,  versuech nit öbbenn,
                   allss auswendig z lernen;  nän, lern ainfach mit n Anwenddn!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 1.4: GWORT BARECHTN - EINFÜEGN


                  **  Druck  i  , dyrmitst öbbs einfüegst. **

  1. Bewög önn Mörkl zo dyr eerstn untignen Zeil, wo mit  --->  angeet.

  2. Dyrmitst  de eerste Zeil  wie de zwaitte machst,  bewög önn Mörkl  auf dös
     eerste Zaichen NAACH derer Stöll, daa wo s Gwort eingfüegt werdn sollt.

  3. Druck  i  und gib dös ein, was abgeet.

  4. Wenn ieweils ayn Faeler verweitert ist, aft druck   <ESC>  ; dyrmit kimmst
     gan dyr Befelhsartweis zrugg.
     So, und ietz tuest ainfach yso weiter, hinst däß dyr Saz stimmt.

---> Daader gt dd öbbs b.
---> Daader geet diend öbbs ab.

  5. Balst mainst,  däßst ys Gwort-Einfüegn kanst, aft geest gan dyr Letzn 1.5.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 1.5: GWORT BARECHTN - ANFÜEGN


                      ** Druck  A  gan n Gwort Anfüegn. **

  1. Gee mit n Mörkl gan dyr eerstn untignen Zeil, wo ayn  --->  dyrvor haat.
     Daa ist s gleich, wo gnaun dyr Mörkl in derer Zeil steet.  

  2. Demmlt  A  und gib de entspröchetn Ergöntzungen ein.

  3. Wennst mit n Anfüegn förtig bist, aft druckst  <ESC>  , däßst wider eyn de
     Befelhsartweis zruggkimmst.

  4. So,  und ietz geest aft non gan dyr zwaittn mit  --->  angmörktn Zeil; und
     daadl machst ys netty yso.

---> In derer Zeil gee  
     In derer Zeil geet ayn Weeng ayn Gwort ab.
---> Aau daader stee
     Aau daader steet öbbs Unvollstöndigs. 

  5. Wennst s Anfüegn von Gwort drauf haast, naacherd gee gan dyr Letzn 1.6.  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 1.6: AYN DAUTTICHT BARECHTN


     ** Mit  :wq  speichertst ayn Dautticht und verlaasst önn Wimm ganz. **

  !! OBACHT:  Ee wennst mit dönn alln daa unt weitertuest, lis zeerst de gantze
     Letzn durch!!

  1. Verlaaß also s Blat, wie s in dyr Letzn 1.2. haisst, mit  :q!  !

  2. Gib dö Faudung eyn n Eingib ein:  vim Schainer<EIN>  . 'vim' ruefft s Blat
     auf,  und  'Schainer'  haisst de Dautticht,  wost barechtn willst.  Dyrmit
     haast also ayn Dautticht, dö wost barechtn kanst.

  3. Ietz  füegst öbbs ein older löschst öbbs,  wiest ys in de vorignen Letznen
     glernt haast.

  4. Speichert de gönderte Dautticht und verlaaß önn Wimm mit  :wq<EIN>  .

  5. Schmeiß önn Wimmschainer neu an und gee gan dyr folgetn Zammenfassung.

  6. Aft däßst  de obignen Schritt glösn und käppt haast,  kanst ys durchfüern.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 1


  1. Dyr Mörkl werd mit de Tastnen hjkl older aau mit de Pfeiltastnen gsteuert.
              h (winst)     j (ab)        k (auf)       l (zes)

  2. Um önn Wimm umbb n Eingib aus z ginnen, demmlt:  vim DAUTTICHT<EIN>  .

  3. Willst önn Wimm verlaassn und aau allss verwerffen, aft gibst ein:
                <ESC>  und  :q!<EIN>  .
     Gan n Verlaassn und Speichern aber zipfst  <ESC>  und  :wq<EIN>  .

  4. Willst dös Zaichen löschn, daa wo dyr Mörkl drauf ist, demmltst  x  .

  5. Willst öbbs vor n Mörkl eingöbn, zipfst  i  und drafter  <ESC>  .
     Mechst ys aber eyn s Zeilnend anhinhöngen, benutzt ys   A  .
     Und ainfach naach n Mörkl füegst ys mit  a  ein.

Anmörkung:  Druckst  <ESC>  ,  kimmst eyn de Befelhsartweis zrugg older brichst
            ayn Faudung ab, dö wo dyr schiefgangen ist.

     Ietz tue mit dyr Letzn 2 weiter.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Letzn 2.1.: LÖSHFAUDUNGEN


                 ** Demmlt  dw  , dyrmitst ayn Wort löschst. **

  1. Druck  <ESC>  ,  dyrmit s aau gwiß ist,  däßst in dyr Befelhsartweis bist.

  2. Bewög önn Mörkl zo dyr mit  --->  angmörktn Zeil unt.

  3. Und daa geest ietz auf n Anfang von aynn Wort, dös wo glöscht ghoert.

  4. Zipf  dw  , däßst dös gantze Wort löschst.

  Nöbnbei:  Dyr Buechstabn  d  erscheint auf dyr lösstn Zeil  von n Bildschirm,
            sobaldst n eingibst. Dyr Wimm wartt ietz drauf, däß öbbs kimmt, al-
            so  daader ayn  w  .  Seghst  freilich  öbbs Anderts  wie ayn  d  ,
            naacherd haast  öbbs Falschs  demmlt.  Druck aft  <ESC>  und pröblt
            s non aynmaal.
---> Ayn Öttlych Wörter lustig ghoernd nit Fisper eyn dönn Saz einhin.

  5. Äfert  d Schritt  3 und 4,  hinst däß  dyr Saz pässt,  und gee aft gan dyr
     Letzn 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 2.2.: NON MEERER LÖSHFAUDUNGEN


            ** Gib  d$  ein, däßst hinst eyn s Zeilnend löschst. **

  1. Druck  <ESC>  , dyrmitst aau gwiß in dyr Befelhsartweis bist.

  2. Bewög önn Mörkl hinst eyn de mit  --->  angmörkte Zeil untn.

  3. Gee mit n Mörkl auf s End von dyr faelerfreien Zeil, NAACH n eerstn  .   .

  4. Zipf  d$  , däßst hinst eyn s End von dyr Zeil löschst.
  
---> Öbber haat s End von dyr Zeil doplt eingöbn. doplt eingöbn.


  5. Gee weiter  gan dyr Letzn 2.3,  dyrmitst versteest,  was daader ablaaufft.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Letzn 2.3: PFEMERER UND WOLENDER


  Vil Faudungen,   wo s Gwort öndernd, sötznd si aus aynn Pfemerer und aynn Wo-
  lend zamm. Bal i also öbbs löschn will, schreib i ainsting  d  und aft s "Wo-
  lend", dös haisst also, "wolend", "wohin" däß i will - older was i halt gnaun
  löschn will.






  Daader also, was i wie löschn kan:
     w  -  hinst eyn n Anfang von n naehstn Wort AANE dönn sein eersts Zaichen.
     e  -  gan n End von n ietzundn Wort MIT dönn seinn lösstn Zaichen.
     $  -  zo n End von dyr Zeil MIT derer irn lösstn Zaichen.

  Also löscht de Tastnfolg  de  allss umbb n Mörkl hinst eyn s Wortend.
Anmörkung:   Gib i grad  dös zwaitte Zaichen  yllain ein,  ruckt halt dyr Mörkl
             entspröchet weiter.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   Letzn 2.4: MIT AYNN ZÖLER D WOLENDER ÄFERN


 ** Gib i ayn Zal vor aynn Wolend ein, werd dös Sel entspröchet oft gangen. **

  1. Bewög önn Mörkl gan n Anfang von dyr Zeil mit  --->  dyrvor unt.

  2. Zipf  2w  , däßst mit n Mörkl zwai Wörter weitergeest.

  3. Zipf  3e  , däßst mit n Mörkl auf s End von n drittn Wort kimmst.

  4. Zipf  0  (aynn Nuller), däßst eyn n Anfang von dyr Zeil hinkimmst.

  5. Widerhol d Schritt 2 und 3 mit verschaidne Zöler.

  ---> Dös ist ietz grad ayn Zeil zo n drinn Umaynanderruedern.

  6. Gee weiter gan dyr Letzn 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Letzn 2.5: DURCH AYNN ZÖLER GLEI MEERER LÖSCHN


        ** Ayn Zal vor aynn Pfemerer füert dönn entspröchet oft aus. **

  Also, i mecht löschn,  und zwaar öbbs Bestimmts,  und dös so und so oft:  Daa
  dyrzue benutz i aynn Zöler:
                              d  Zöler  Wolend (also önn Bewögungsschrit)

  1. Bewög önn Mörkl zo n eerstn Wort in GROOSSBUECHSTABN in dyr mit  --->  an-
     gmörktn Zeil.

  2. Demmlt  d2w  , dyrmitst de ganz grooßgschribnen Wörter löschst.

  3. Äfert  d Schritt 1 und 2  mit dönn entspröchetn Zöler,  dyrmitst de drauf-
     folgetn  ganz großgschribnen Wörter  mit ayner ainzignen Faudung  löschst:


--->  Dö ABC DE Zeil FGHI JK LMN OP mit Wörter ist Q RS TUV ietz berichtigt.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Letzn 2.6: ARECHTN AUF ZEILN


               ** Zipf  dd  , um ayn gantze Zeil z löschn. **

  Weil s gro oft vürkimmt,  däß myn gantze Zeiln löscht,  kaamend schoon d Ent-
  wickler von n Urwimm daa drauf,  däß myn ainfach  dd  gan dönn Zwök schreibt.


  1. Bewög önn Mörkl gan dyr zwaittn Zeil in n untignen "Gedicht".
  2. Zipf  dd  ,  um dö Zeil z löschn.
  3. Ietz bewögst di gan dyr viertn Zeil.
  4. Zipf  2dd  , um zwo Zeiln zo n Löschn.

--->  1)  Roosn seind root;
--->  2)  Drunter ist s Koot.
--->  3)  Veigerln seind blau.
--->  4)  Umgrabn tuet s d Sau.
--->  5)  D Ur sait de Zeit,
--->  6)  Sait, däß s mi freut,
--->  7)  Dirndl, dein Gschau.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Letzn 2.7: RUGGGÖNGIG MACHEN (RUGGLN) 


             ** Zipf  u  , dyrmitst de lösstn Faudungen ruggltst **
             ** older   U  , um ayn gantze Zeil widerherzstölln. **

  1. Bewög önn Mörkl gan dyr mit  --->  angmörktn Zeil unt und gee dyrmit auf n
     eerstn Faeler.
  2. Zipf  x  , däßst dös eerste z vile Zaichen löschst.
  3. Ietz demmlt  u  , dyrmitst de lösste Faudung ruggltst.
  4. Ietz behöb  allsand Faeler  auf dyr Zeil  mit dyr Hilf  von n Befelh  x  .
  5. Aft gibst ayn  U  (grooß) ein,  däßst de Zeil wider yso hinbringst,  wie s
     gwösn ist.
  6. So,  und ietz  demmltst  so oft  u  , hinst däßst s  U  und de andern Fau-
     dungen rugggöngig gmacht haast.
  7. Und ietzet widerum  schreibst  so oft  <STRG>r  , hinst däßst  allsand Be-
     felh widerhergstöllt, z haissn allsse rugg-grugglt haast  (also d Rugggön-
     gigmachungen rugggöngig gmacht).
---> Beerichtig d Faeller voon dehrer Zeiil  und sttöll s mitt n Ruggruggln wi-
     der her.
  8. Die Faudungen seind gro wichtig; sö helffend ainn närrisch weiter.
     Ietz gee weiter gan dyr Zammenfassung von dyr Letzn 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 2


  1. Um von n Mörkl aus hinst eyn s naehste Wort zo n Löschn, zipf:  dw
  2. Um umbb n Mörkl hinst eyn s End von dyr Zeil zo n Löschn, demmlt  d$
  3. Dyrmitst ayn gantze Zeil löschst, gib ein:  dd
  4. Mechst ayn Bewögung, ayn "Wolend", öfters,  stöll de entspröchete Zal dyr-
     vor:  3dw  older aau:  d3w
  5. Dyr Pfueg für ayn Önderungsfaudung lautt yso:
               Pfemerer   [Zal]   Bewögungsschrit (Wolend)
     Und dös haisst:
      Dyr PFEMERER gibt an, WAS taan ghoert, öbbenn   d   =  löschn (»delete«).
      [ZAL] - Ayn Zal KAN myn angöbn, wenn myn halt ayn Wolend öfter habn will.
      S WOLEND,  also dyr Schrit WOHIN, besagt,  auf was i aushin will,  öbbenn
      auf aynn Wortanfang (  w  ), s End von dyr Zeil (  $  ) und so weiter.

  6. Däßst eyn n Anfang von dyr Zeil hinkimmst, schreib aynn Nuller:  0

  7. Um öbbs Vorigs wider z ruggln, gib ein:                u (klain also)
     Um allsand Önderungen in ayner Zeil z ruggln, haast:   U (also grooß)
     Um "rugg-z-ruggln", also allss wider herzstölln, zipf:  <STRG>r   

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Letzn 3.1: ANFÜEGN (»put«) 


     ** Zipf  p  , dyrmitst öbbs gnetty Glöschts naach n Mörkl anfüegst. **

  1. Bewög önn Mörkl gan dyr eerstn untignen Zeil mit  --->  dyrvor.

  2. Zipf  dd  ,  um sele Zeil z löschn und dyrmit in ayner Wimm-Osn zo n Spei-
     chern.

  3. Bewög önn Mörkl gan dyr Zeil c),  ÜBER derer, daa wo de glöschte Zeil ein-
     hinkemmen sollt.

  4. So,  und ietz gibst ainfach  p  ein,  und schoon haast dö Zeil unter derer
     mit n Mörkl drinn.
  5. Äfert  d Schritt 2 hinst 4,  hinst däßst  allsand Zeiln  yso naachynaynand
     haast, wie s hinghoernd.

---> d) Kanst du dös aau?
---> b) Veigerln seind blau.
---> c) Bedachtn kan myn lernen.
---> a) Roosn seind root.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Letzn 3.2: ERSÖTZN (»replace«)


      ** Zipf  rx  , um dös Zaichen unter n Mörkl durch  x  z ersötzn. **

  1. Bewög önn Mörkl zo dyr eerstn untignen Zeil mit  --->  dyrvor.

  2. Bewög önn Mörkl, hinst däß yr auf n eerstn Faeler steet.

  3. Zipf  r  und drafter dös Zaichen, wo dyrfür daa hinghoert.

  4. Widerhol d Schritt 2 und 3,  hinst däßst de eerste Zeil  gmaeß dyr zwaittn
     berichtigt haast:
--->  Wie dö Zeit eingobn wurd, wurdnd ainike falsche Zastnen zipft!
--->  Wie dö Zeil eingöbn wurd, wurdnd ainige falsche Tastnen zipft!

  5. Ietz tue mit dyr Letzn 3.3 weiter.

Anmörkung: Vergiß nit drauf, däßst mit n Anwenddn lernen solltst und nit öbbenn
           mit n Auswendiglernen!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Letzn 3.3: ÖNDERN (»change«)


              ** Um hinst eyn s Wortend z öndern, zipf  ce  . **

  1. Gee mit n Mörkl auf de eerste mit  --->  angmörkte Zeil.

  2. Ietz farst netty auf s  "s"  von Wstwr hin.

  3. Zipf  ce  ein und aft d Wortberichtigung, daader also  örter  .

  4. Druck  <ESC>  und bewög önn Mörkl zo n naehstn Zaichen, wo göndert ghoert.

  5. Äfert  d Schritt 3 und 4,  hinst däß  dyr eerste Saz  wie dyr zwaitte ist.

---> Ainige Wstwr von derer Zlww ghhnnd mit n Öndern-Pfemerer gaauu.
---> Ainige Wörter von derer Zeil ghoernd mit n Öndern-Pfemerer göndert.

ce  löscht also s Wort und schlaaufft di eyn d Eingaab-Artweis.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  Letzn 3.4.: NON MEERER ÖNDERUNGEN PFELFS  c


   ** D Löshfaudung  c  arechtt mit de nömlichnen Wolender wie dö mit  d  **

  1. Dyr Önder-Pfemerer arechtt anleich wie d Löshfaudung mit   d  ,  und zwaar
     yso:
         c    [Zal]   Bewögungsschrit (Wolend)

  2. D Wolender seind  de gleichn,  öbbenn  w  für Wort und  $  für s Zeilnend.


  3. Bewög di zo dyr eerstn untignen Zeil mit  --->  .

  4. Ietz geest auf dönn eerstn Faeler.

  5. Zipf  c$  , gib önn Rest von dyr Zeil wie in dyr zwaittn ein und druck aft
     <ESC>.
---> S End von derer Zeil sollt an de zwaitte daader anglichen werdn.
---> S End von derer Zeil sollt mit n Befelh  c$  berichtigt werdn.

Denk allweil dran,  däßst iederzeit  mit dyr Ruggtastn Faeler ausbössern kanst.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 3


  1. Um ayn  vorher glöschts Gwort  anzfüegn,  zipf  p  .  Daa dyrmit  werd dös
     gantze Gwort  NAACH n Mörkl  angfüegt.  Wenn s ayn gantze Zeil  gwösn ist,
     werd dö sel als de Zeil unterhalb n Mörkl eingfüegt.

  2. Um dös Zaichen  unter n Mörkl,  also wo dyr Mörkl ist,  z ersötzn, zipf  r
     und aft dös Zaichen, wost daadl habn willst.

  3. Dyr Önderungspfemerer ( c = »change«) laasst ainn umbb n Mörkl hinst eyn s
     End von n Wolend öndern. Zipf  ce  , dyrmitst umbb n Mörkl hinst eyn s End
     von n Wort öndertst, und  c$  hinst eyn s End von dyr Zeil.

  4. Für d Önderung lautt dyr Pfueg:

     c   [Zal]   Wolend

Ietz tue mit dyr naehstn Letzn weiter.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Letzn 4.1: MÖRKLSTÖLLUNG UND DAUTTICHTDARSTAND

** Demmlt <STRG>g, däßst önn Befand und Darstand von dyr Dautticht anzaigst. **
  ** Zipf  G  , dyrmitst auf ayn bestimmte Zeil in dyr Dautticht hinkimmst. **

Anmörkung: Lis dö gantze Letzn daader durch, ee wennst iewign öbbs unternimmst!

  1. Druck  <STRG>g  .  Auf dös hin erscheint auf derer Seitt ganz unt ayn Dar-
     standsmeldung  mit n Dauttichtnam  und n Befand  innerhalb  dyr Dautticht.
     Mörk dyr de Zeilnnummer für n Schrit 3.

Anmörkung:  Müglicherweis  seghst aau önn Mörklbefand  in n zesmen untern Bild-
            schirmögg. Aft ist s "Lindl" (»ruler«) eingstöllt;  meerer über dös
            laasst dyr dyr Befelh   :help 'ruler'   ausher.
  2. Druck  G  , um an s End von dyr Dautticht z kemmen.
     gg  gibst ein, däßst gan n Anfang von dyr Dautticht aufhinkimmst.

  3. Gib d Nummer von derer Zeil ein, daa wost vorher warst,  und aft non  G  .
     Dös bringt di zrugg gan seler Zeil,  daa wost stuenddst,  wiest dös eerste
     Maal  <STRG>g  gadruckst.

  4. Wennst di sicher gnueg füelst, aft füer d Schritt 1 hinst 3 aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 4.2: DYR BEFELH ZO N SUECHEN 
               

  ** Zipf  /  und dyrnaach aynn Ausdruk, um selbignen zo n Suechen. **

  1. Du gibst also in dyr Befelhsartweis s Zaichen  /  ein. Dös sel wie aau dyr
     Mörkl erscheinend drauf unt auf n Schirm, netty wie bei dyr Faudung  :  .

  2. Ietz zipf  Faeeler<EIN>  . Netty um dös 'Faeeler' willst ietz suechen.

  3. Willst um gnaun dönn Ausdruk weitersuechen, zipf ainfach  n  (wie »next«).
     Willst hinzrugg suechen, aft gibst  N  ein.

  4. Um von Haus aus zruggaus z suechen, nimm  ?  statt  /  her.

  5. Dyrmitst wider daa hinkimmst, wost herkemmen bist, nimm  <STRG>o , und dös
     öfter,  wennst weiter zrugg willst. Mit  <STRG>i  widerum kimmst vorwärts.

--->  Aynn Faeler schreibt myn nit "Faeeler"; Faeeler ist ayn Faeler

Anmörkung:  Wenn d Suech s Dauttichtend dyrraicht haat, geet s eyn n Anfang wi-
            der weiter dyrmit,  men Sach  dyr Schaltter 'wrapscan' wär auf aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 4.3: DE GÖGNKLAMMERN FINDDN


   ** Zipf  %  , um de entspröchete Klammer  )  ,  ]  older  }  z finddn. **

  1. Sötz önn Mörkl  auf iewign aine  von dene drei Klammern  (  ,  [  older  {
     in dyr untignen Zeil, wo mit  --->  angmörkt ist.

  2. Ietzet zipf s Zaichen  %  .

  3. Dyr Mörkl geet ietz auf de pässete schliessete Klammer.

  4. Ietz demmlt  %  , und dyrmit kimmst gan dyr öffneretn Klammer zrugg.

  5. Sötz önn Mörkl auf ayn anderne Klammer von   ({[]})   und pröblt   %  aus.

---> Dös ( ist  blooß ayn Pochzeil ( mit [ verschaidne ] { Klammern } drinn. ))

Anmörkung:  Um dö Müglichkeit gaast bsunders froo sein,  wennst aynmaal in aynn
            Spaichgwort verzweiflt ayn faelete Gögnklammer suechst!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 Letzn 4.4: D ERSÖTZUNGSFAUDUNG (»substitute«)


        ** Zipf  :s/alt/neu/g  , um 'alt' durch 'neu' zo n Ersötzn. **

  1. Gee mit n Mörkl zo dyr unt steehetn mit  --->  angmörktn Zeil.

  2. Zipf  :s/dee/de <EIN>  . Der Befelh ersötzt alsnan grad dös +eerste "dee",
     wo vürkimmt.

  3. Ietz pröblt s mit  :s/dee/de/g  . Dös zuesötzliche  g  ("Pflok"  nennt myn
     öbbs Sölchers) bewirkt, däß allss, was dyrmit kennzaichnet ist,  innerhalb
     von dyr ainn Zeil ersötzt werd.

---> Dee schoenste Zeit, däß myn dee Blüemln anschaut, ist dee schoene Lan-
     gesszeit.
  4. Um ietz  allsand Suechbegriff  innerhalb von zwo Zeiln  zo n Öndern,  zipf
     :#,#s/alt/neu/g  ,  wobei # ieweils für de eerste und lösste Zeil von dönn
     Pfraich steet.
     :%s/alt/neu/g  zipfst, däßst d Vürkemmen in dyr gantzn Dautticht öndertst.
        Mit  :%s/alt/neu/gc  finddst allsand Vürkemmen in dyr gsamtn Dautticht;
     daa werst aber zeerst non gfraagt, obst ys ersötzn willst older nity.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 4
                        
  1. <STRG>g   zaigt dönn ietzundn Dauttichtbefand  und önn Darstand dyrvon an.
           G   bringt di an s End von dyr Dautticht.
      <Zal>G   bringt di gan dyr entspröchetn Zeilnnummer.
     <Zal>gg   geet +grad yso.
          gg   bringt di zo dyr eerstn Zeil.
  2. D Eingaab von  /  mit aynn Ausdruk suecht VÜRSHLING um dönn Ausdruk.
     Gibst  ?  und aynn Suechbegrif ein, suecht s um dönn ÄRSHLING.
     Zipf naach ayner Suech  n  ;  naacherd werd in de gleiche Richtung weiter-
     gsuecht. Mit  N  geet s umkeerter weiter.
     <STRG>o  bringt di zo ölterne Befändd zrugg,  <STRG>i  zo neuerne.

  3. D Eingaab von  % , wenn dyr Mörkl auf ainer von dene Klammern steet:   ({[
     )]}  , bringt di zo dyr Gögnklammer.

  4. Um dös eerste Vürkemmen von  "alt"  in ayner Zeil durch  "neu"  z ersötzn,
     zipf  :s/alt/neu  .
     Um allsand in ayner Zeil z ersötzn, zipf  :s/alt/neu/g  .
     Mechst allss in zwo Zeiln ersötzn, demmlt zo n Beispil  :5,6s/alt/neu/g  .
     Mechst allss in dyr gantzn Dautticht ersötzn, gib ein:  :%s/alt/neu/g    .
     Willst ayn ieds Maal bstaetln, höng 'c' wie »confirm« hint anhin.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Letzn 5.1: ZWISCHNDRINN AYNN AUSSERIGNEN BEFELH AUSFÜERN 
            

   ** Willst ayn Gfäßfaudung ausfüern, gib ainfach dö sel naach  :!  ein. **
 
  1. Zipf  dönn bekanntn Befelh   :  ,  dyrmitst  mit n Mörkl  auf n Bildschirm
     ganz abhin kimmst. Draufhin kanst aynn gwonen Gfäßbefelh eingöbn.

  2. Zeerst  kimmt aber non ayn Ruefzaichen   !  .  Und ietzet haast d Müglich-
     keit, ayn beliebige ausserige Gfäßfaudung auszfüern.

  3. Als Beispil zipf   :!ls<EIN>  ;  und schoon haast ayn Auflistung von deinn
     Verzaichniss,  netty  wie wennst  ganz gwon  in n Eingib wärst.  Geet   ls
     aus iewign aynn Grund nit, aft pröblt s mit  :!dir<EIN>  .

Also non aynmaal: Mit dönn Angang kan ayn iede beliebige ausserige Faudung aus-
                  gfüert werdn, aau mit Auerwerdd.

Und wolgmörkt:    Alle Befelh,  wo mit  :  angeend,  müessend mit  <EIN>  bstö-
                  tigt werdn. Dös dyrsagn myr fürbaß +niemer.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           Letzn 5.2: NON MEERER DRÜBER, WIE MYN DAUTTICHTN SCHREIBT


     ** Um öbbs Gönderts neu z speichern, zipf  :w NEUER_DAUTTICHTNAM  . **

  1. Zipf  :!dir   older  :!ls  ,  däßst dyr ayn Auflistung von deinn Verzaich-
     niss ausherlaasst. Däßst drafter  <EIN>  eingöbn muesst, waisst ee schoon.

  2. Suech dyr aynn Dauttichtnam aus, dönn wo s non nit geit, öbbenn  POCH  .

  3. Ietz demmlt:  :w POCH  (also mit POCH als dönn neuen Dauttichtnam).

  4. Dös speichert ietz de gantze Dautticht, also önn Wimmschainer,  unter dönn
     Nam POCH. Dös kanst leicht überprüeffen, indem däßst ainfach  :!ls   older
     :!dir  zipfst und dyrmit deinn Verzaichnissinhalt seghst.

Anmörkung:  Stigst ietz aus n Wimm aus und gännst n aft wider mit   vim POCH  ,
            naacherd wär dö Dautticht ayn gnaune Aamum von n Schainer dyrselbn,
            wiest n gspeichert haast.

  5. Ietz verweitert dö Dautticht - fallsst s Fenstl haast - , mit   :!del POCH
     beziehungsweis bei aynn Unixgebäu mit   :!rm POCH   .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Letzn 5.3: AYNN TAIL VON N GWORT ZO N SPEICHERN AUSWALN

** Um aynn Tail von dyr Dautticht z speichern, zipf  v [Wolend] :w DAUTTICHT **

  1. Ruck önn Mörkl auf netty dö Zeil daader.

  2. Demmlt  v  und gee mit n Mörkl  auf dönn fümftn Auflistungspunt untet.  Du
     seghst glei, däß s Gwort vürherghöbt erscheint.

  3. Druck s Zaichen  :  . Ganz unt auf n Bildschirm erscheint  :'<,'>  .

  4. Zipf  w POCH  , wobei s dönn Dauttichtnam POCH  non nit geit.  Vergwiß di,
     däßst dös  :'<,'>w POCH  aau +seghst, ee wennst  <EIN>  druckst.

  5. Dyr Wimm schreibt de ausgwaltn Zeiln eyn de Dautticht POCH einhin.  Benutz
     :!dir  older  :!ls  ,  däßst dös überprüeffst. Lösh s fein nit öbbenn! Mir
     brauchend s nömlich für de naehste Letzn.

Anmörkung:  Druckt myn  v  , ginnt d Sichtisch-Auswal. Du kanst mit n Mörkl um-
            aynandfarn,  um d Auswal  z veröndern.  Drafter kan myn mit yn aynn
            Pfemerer mit dönn Gwort öbbs machen.  Zo n Beispil löscht   d   dös
            Gwort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Letzn 5.4: EINLÖSN UND ZAMMENFÜERN VON DAUTTICHTN   


    ** Um önn Inhalt von ayner Dautticht einzlösn, zipf  :r DAUTTICHTNAM  **

  1. Sötz önn Mörkl über dö Zeil daader.

OBACHT:  Aft däßst önn Schrit 2  ausgfüert haast,  seghst auf aynmaal  öbbs aus
         dyr Letzn 5.3.  Bewög di naacherd wider abwärts, dyrmitst dö Letzn wi-
         derfinddst.
  2. Ietz  lis  dein Dautticht  POCH ein,  indem däßst d Faudung   :r POCH aus-
     füerst,  wobei wie gsait POCH  für dönn  von dir  ausgsuechtn Dauttichtnam
     steet. De einglösne Dautticht werd unterhalb dyr Mörklzeil eingfüegt.

  3. Um zo n Überprüeffen,  ob de Dautticht  aau gwiß einglösn ist,  gee zrugg;
     und du seghst,  däß s ietz zwo Ausförtigungen  von dyr Letzn 5.3. geit,  s
     Urniss und de eingfüegte Dauttichtfassung.

Anmörkung:  Du kanst aau  d Ausgaab von aynn Ausserigbefelh einlösn.  Zo n Bei-
            spil list   :r !ls  d Ausgaab von dyr Faudung  ls   ein und füegt s
            unterhalb n Mörkl ein.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 5


  1. :!FAUDUNG  füert aynn ausserignen Befelh aus.

      Daader ayn Öttlych gwänddte Beispiler:
      (Fenstl)              (Unix - Linux)
      :!dir                 :!ls                - listt s Verzaichniss auf.
      :!del DAUTTICHT       :!rm DAUTTICHT      - verweitert sele Dautticht.

  2. :w DAUTTICHT  speichert de ietzunde Wimmdautticht  unter dönn besagtn Nam.

  3. v  WOLEND  :w DAUTTICHTNAM   schreibt de sichtisch ausgwaltn Zeiln  eyn de
     Dautticht mit seln Nam.

  4. :r DAUTTICHTNAM  ladt sele Dautticht  und füegt s  unterhalb n Mörklbefand
     ein.

  5. :r !dir   list d Ausgaab  von dyr Faudung   dir   und füegt s  unterhalb n
     Mörklbefand ein.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Letzn 6.1: ZEIL ÖFFNEN (»open«)


       ** Zipf  o  , um ayn Zeil unterhalb n Mörkl z öffnen und eyn d **
                        ** Einfüegartweis z kemmen. **

  1. Bewög önn Mörkl zo dyr eerstn mit  --->  angmörktn Zeil unt.

  2. Zipf  o  (klain),  um ayn Zeil UNTERHALB n Mörkl z öffnen und mit dyr Ein-
     füegartweis weiterztuen.

  3. Ietzet zipf ayn Weeng öbbs  und druck  <ESC>  , um d Einfüegartweis z ver-
     laassn.
---> Mit  o  werd dyr Mörkl in dyr Einfüegartweis auf de offene Zeil gsötzt.

  4. Um ayn Zeil  OBERHALB n Mörkl aufzmachen,  gib ainfach ayn groosss O statt
     yn aynn klainen ein. Versuech dös auf dyr untignen Zeil.

---> Öffnet ayn Zeil über derer daader mit  O  ,  wenn dyr Mörkl auf derer Zeil
     ist.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 6.2: GWORT ANFÜEGN (»append«)


                ** Zipf  a  , um öbbs NAACH n Mörkl einzfüegn. **

  1. Bewög önn Mörkl gan n Anfang von dyr eerstn Üebungszeil mit  --->  unt.

  2. Druck  e  , hinst däß dyr Mörkl an n End von  Zei  steet.

  3. Zipf ayn klains  a  , um öbbs NAACH n Mörkl anzfüegn.

  4. Vergöntz dös Wort  wie in dyr Zeil drunter.  Druck  <ESC>  , um d Schreib-
     Artweis z verlaassn.

  5. Bewög di mit  e   zo n naehstn ungantzn Wort  und widerhol d Schritt 3 und
     4.

---> Dö Ze biett ayn Glögn , ayn Gwort in ayner Zeil anzfü.
---> Dö Zeil biett ayn Glögnet, ayn Gwort in ayner Zeil anzfüegn.

Anmörkung:   a  ,  i  und  A  bringend ainn gleichermaaßn eyn d Einfüegartweis;
             dyr ainzige Unterschaid ist, WO mit n Einfüegn angfangt werd.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Letzn 6.3: AYN ANDERNE WEIS ZO N ERSÖTZN (»replace«)


 ** Demmlt ayn groosss  R  , um meerer als wie grad ain Zaichen z ersötzn. **

  1. Bewög önn Mörkl zo dyr eerstn untignen, mit  --->  angmörktn Zeil.
     Gee mit n Mörkl gan n Anfang von n eerstn  xxx  .

  2. Ietz druck  R   und zipf sele Zal,  wo drunter  in dyr zwaittn Zeil steet,
     yso däß de sel s xxx ersötzt.

  3. Druck  <ESC>  ,  um d Ersötzungsartweis z verlaassn.  Du gspannst, däß dyr
     Rest von dyr Zeil unveröndert bleibt.

  4. Äfert die Schritt, um dös überblibne xxx z ersötzn.

---> S Zunddn von 123 zo xxx ergibt xxx.
---> S Zunddn von 123 zo 456 ergibt 579.

Anmörkung: D Ersötzungsartweis ist wie d Einfüegartweis,  aber ayn ieds eindem-
           mlte Zaichen löscht ayn vorhanddns.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 6.4: GWORT AAMEN UND EINFÜEGN

 ** Benutz önn Pfemerer  y  , um öbbs z aamen, und  p  , um öbbs einzfüegn. **

  1. Gee zo dyr mit  --->  angmörktn Zeil unt  und sötz önn Mörkl  hinter "a)".

  2. Ginn d Sichtisch-Artweis mit   v   und bewög önn Mörkl gnaun vor "eerste".
  
  3. Zipf  y  , um dönn vürherghöbtn Tail z aamen.

  4. Bewög önn Mörkl gan n End von dyr naehstn Zeil:  j$

  5. Demmlt  p  , um dös Gwort einzfüegn, und aft:  a zwaitte <ESC>  .

  6. Benutz d Sichtischartweis, um " Eintrag." auszwaln, aam s mittls  y  , be-
     wög di gan n End von dyr naehstn Zeil mit  j$   und füeg s Gwort dortn mit
     p  an.

--->  a) dös ist dyr eerste Eintrag.
      b)
Anmörkung:   Du kanst   y   aau als Pfemerer verwenddn;   yw  zo n Beispil aamt
             hinst eyn n naehstn Wortanfang (aane dönn selber).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           Letzn 6.5: SCHALTTER SÖTZN

** Sötz aynn Schaltter yso,  däß ayn Suech older Ersötzung Grooß- und Klain- **
                            ** schreibung übergeet. **
                            
  1. Suech um 'übergee", indem däßst   /übergee   eingibst.
     Widerhol d Suech ayn Öttlych Maal, indem däßst de Tastn  n  druckst.

  2. Sötz de Zwisl - önn Schaltter - 'ic' (»ignore case«), indem däßst  :set ic
     eingibst.
  3. Ietz suech wider um 'übergee' und tue aau wider mit  n  weiter.  Daa fallt
     dyr auf, däß ietz öbbenn aau  Übergee  und  ÜBERGEE  hergeet.

  4. Sötz de Zwisln 'hlsearch' und 'incsearch' pfelfs:   :set hls is

  5. Widerhol d Suech und bobacht, was ietz gschieght:   /übergee <EIN>

  6. Däßst grooß und klain wider gwon unterscheidst, zipf:   :set noic

Anmörkung:  Mechst de Tröffer niemer vürherghöbt seghn,  gib ein:   :nohlsearch
Anmörkung:  Sollt klain/grooß bei ayner ainzignen Suech wurst sein,  benutz  \c
            in n Suechausdruk:   /übergee\c <EIN>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 6

  1. Zipf  o  , um ayn Zeil  UNTERHALB  n Mörkl z öffnen und d Einfüegartweis z
                ginnen.
     Zipf  O  , um ayn Zeil OBERHALB n Mörkl z öffnen.

  2. Zipf  a  , um NAACH n Mörkl ayn Gwort einzfüegn.
     Zipf  A  , um ayn Gwort naach n Zeilnend anzfüegn.

  3. D Faudung  e  bringt di gan n End von aynn Wort.

  4. Dyr Pfemerer  y  (»yank«) aamt öbbs,  p  (»put«) füegt dös ein.

  5. Ayn groosss  R  geet eyn d Ersötzungsartweis, hinst däß myn  <ESC> druckt.

  6. D Eingaab von ":set xxx"  sötzt de Zwisl "xxx".  Ayn Öttlych Zwisln seind:
     'ic' 'ignorecase'   Grooß/klain wurst bei ayner Suech
     'is' 'incsearch'    Zaig aau schoon ayn Tailüberainstimmung
     'hls' 'hlsearch'    Höb allsand pässetn Ausdrück vürher
     Dyr Schaltternam kan in dyr Kurz- older Langform angöbn werdn.

  7. Stöll yn ayner Zwisl "no" voran, däßst ys abschalttst:   :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Letzn 7.1: AYN HILFGWORT AUFRUEFFEN


           ** Nutz dös einbaute Hilfgebäu, de "Betribsanlaittung". **

  Eyn n Wimm  ist ayn ausfüerliche "Gebrauchsanweisung"  einbaut.  Für s Eerste
  pröblt ainfach ains von dene dreu aus:
    - Druck d <HILF>-Tastn, wennst öbbenn aine haast.
    - Druck de Tastn <F1>, fallsst ys haast.
    - Zipf   :help <EIN>

  Lis di eyn s Hilffenster ein, dyrmitst draufkimmst, wie dös mit dyr Hilf geet.
  Demmlt  <STRG>w w  , um von ainn Fenster zo n andern zo n Springen.
  Demmlt   :q <EIN>  , um s Hilffenster zo n Schliessn.

  Du kanst zo so guet wie allssand ayn Hilf finddn,  indem däßst yn dyr Faudung
  :help  aynn Auerwerd naachstöllst und istig  <EIN>  nit vergisst. Pröblt dös:

     :help w
     :help c_CTRL-D
     :help insert-index
     :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       Letzn 7.2: ERSTÖLL AYN GIN-SCHRIPF


              ** Mutz önn Wimm mit de einbautn Faehigkeitn auf. **

  Dyr Wimm besitzt ayn Wösn Schäftungen,  wo über n Urwimm aushingeend, aber de
  meerern dyrvon  seind in dyr Vorgaab ausgschaltt.  Dyrmitst meerer aus n Wimm
  ausherholst, erstöllst ayn "vimrc"-Dautticht.

  1. Lög ayn "vimrc"-Dautticht an;  dös geet  ie naach Betribsgebäu  verschidn:
     :e ~/.vimrc     für s Unix
     :e $VIM/_vimrc  bei n Fenstl

  2. Ietz lis önn Inhalt von dyr Beispil-"vimrc"-Dautticht ein:
     :r $VIMRUNTIME/vimrc_example.vim

  3. Speichert de Dautticht mit:
     :w

  4. Bei n naehstn Gin von n Wimm  ist aft d Füegnussvürherhöbung zuegschalttn.
     Du kanst dyr allss  eyn dö Dautticht  einhinschreibn,  wasst bständig habn
     willst. Meerer dyrzue erfarst unter:   :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              Letzn 7.3: VERGÖNTZN


            ** Befelhszeilnvergöntzung mit  <STRG>d  und  <TAB>  **

  1. Vergwiß di, däß dyr Wimm nit auf n Urwimm-"Glais" fart:   :set nocp

  2. Schaug naach, wölcherne Dauttichtn däß s in n Verzaichniss geit:   :!ls
     older   :!dir
  3. Zipf önn Anfang von ayner Faudung:   :e

  4. Druck  <STRG>d  , und dyr Wimm zaigt ayn Listn von Faudungen, wo mit   "e"
     angeend.
  5. Druck  <TAB>  , und dyr Wimm vervollstöndigt önn Faudungsnam zo   ":edit".

  6. Füeg  ayn Laerzaichen  und önn Anfang  von ayner  besteehetn Dautticht an:
     :edit DAU

  7. Druck  <TAB>  . Dyr Wimm vergöntzt önn Nam, dös haisst, wenn yr aindeuttig
     ist.
Anmörkung:  D Vergöntzung  geit s für aynn Hauffen Faudungen.  Versuech ainfach
            <STRG>d  und  <TAB>  . Bsunders nützlich ist dös bei   :help  .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         ZAMMENFASSUNG VON DYR LETZN 7


  1. Zipf  :help  oder druck  <F1>  oder  <HILF> , um ayn Hilffenster z öffnen.

  2. Zipf  :help FAUDUNG  , um auf ayn Hilf gan aynn Befelh z kemmen.

  3. Zipf  <STRG>w w  , um zo n andern Fenster z springen.

  4. Zipf  :q  , um s Hilffenster z schliessn.

  5. Erstöll ayn vimrc-Ginschripf  zuer Sicherung von deine Mötzneinstöllungen.

  6. Druck  <STRG>d  , aft däßst naach   :   ayn Faudung  angfangt haast,  dyr-
     mitst mügliche Vergöntzungen anzaigt kriegst.
     Druck  <TAB>  für ain Vervollstöndigung yllain.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Dös wär ietzet s End von n Wimmschainer.  Gangen ist s daa drum,  aynn kurtzn
  und bündignen Überblik  über s Blat WIMM z lifern,  netty vil gnueg,  däß myn
  für s Eerste  wirklich öbbs  dyrmit anfangen kan.  Dyrmit ist s aber auf kain
  Weitn non nit taan;  dyr Wimm haat schoon non vil meerer  auf Lager.  Lis als
  Naehsts aynmaal s Benutzerhandbuech:   :help user-manual

  Zo n Weiterlösn und Weiterlernen wör dös Buech daader zo n Empfelhen:
    Vim - Vi Improved - von n OUALLINE Steve
    Verlaag: New Riders
  Dös ist dös eerste Buech, wo ganz yn n Wimm gwidmt ist, netty dös Grechte für
  Anfönger. Es haat ayn Wösn Beispiler und aau Bilder drinn.
  See http://iccf-holland.org/click5.html

  Dös folgete Buech  ist schoon ölter und meerer  über n Urwimm  als wie über n
  Wimm,  aber aau zo n Empfelhen:   Textbearbeitung mit dem vi-Editor - von dyr
  LAMB Linda und n ROBBINS Arnold  -  Verlaag O'Reilly  - Buechlaittzal (ISBN):
  3897211262
  In dönn Buech  kan myn fast allss finddn,  was myn mit n Urwimm angeen mecht.
  De söxte Ausgaab enthaltt aau schoon öbbs über n Wimm.
  Als ietzunde Bezugniss für d Fassung 7  und ayn pfrenge Einfüerung  dient dös
  folgete Buech:
    vim ge-packt  von n WOBST Reinhard
    mitp-Verlaag, Buechlaittzal 978-3-8266-1781-2
  Trotz dyr recht pfrengen Darstöllung  ist s durch seine viln nützlichnen Bei-
  spiler aau für Einsteiger grad grecht.  Probhaeupster und de Beispilschripfer
  seind zesig zo n Kriegn; see   http://iccf-holland.org/click5.html

  Verfasst habnd dönn Schainer dyr PIERCE Michael C. und WARE Robert K. von dyr
  Kolraader Knappnschuel (Colorado School of Mines). Er beruet auf Entwürff, wo
  dyr SMITH Charles  von dyr  Kolraader Allschuel  (Colorado State  University)
  zuer Verfüegung gstöllt haat. Gundpost:   bware@mines.colorado.edu
  Für n Wimm haat n dyr MOOLENAAR Bram barechtt.
  De bairische Übersötzung  stammt von n HELL Sepp 2009,  ayn Weeng überarechtt
  2011. Sein Gundpostbrächt ist   sturmibund@t-online.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z���5�5�vim80/tutor/tutor.el.utf-8nu�[���===============================================================================
=    Κ αλ ω σ ή ρ θ α τ ε    σ τ ο   V I M   T u t o r    -    Έκδοση 1.5     =
===============================================================================

     Ο Vim είναι ένας πανίσχυρος συντάκτης που έχει πολλές εντολές, πάρα
     πολλές για να εξηγήσουμε σε μία περιήγηση όπως αυτή. Αυτή η περιήγηση
     σχεδιάστηκε για να περιγράψει ικανοποιητικά τις εντολές που θα σας
     κάνουν να χρησιμοποιείτε εύκολα τον Vim σαν έναν γενικής χρήσης συντάκτη.

     Ο κατά προσέγγιση χρόνος που απαιτείται για να ολοκληρώσετε την περιήγηση
     είναι 25-30 λεπτά, εξαρτώντας από το πόσο χρόνο θα ξοδέψετε για
     πειραματισμούς.

     Οι εντολές στα μαθήματα θα τροποποιήσουν το κείμενο. Δημιουργήστε ένα
     αντίγραφο αυτού του αρχείου για να εξασκηθείτε (αν ξεκινήσατε το
     "Vimtutor" αυτό είναι ήδη ένα αντίγραφο).

     Είναι σημαντικό να θυμάστε ότι αυτή η περιήγηση είναι οργανωμένη έτσι
     ώστε να διδάσκει μέσω της χρήσης. Αυτό σημαίνει ότι χρειάζεται να
     εκτελείτε τις εντολές για να τις μάθετε σωστά. Αν διαβάζετε μόνο το
     κείμενο, θα τις ξεχάσετε!

     Τώρα, βεβαιωθείτε ότι το πλήκτρο Caps-Lock ΔΕΝ είναι πατημένο και
     πατήστε το πλήκτρο j αρκετές φορές για να μετακινήσετε τον δρομέα έτσι
     ώστε το Μάθημα 1.1 να γεμίσει πλήρως την οθόνη.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Μάθημα 1.1:  ΜΕΤΑΚΙΝΟΝΤΑΣ ΤΟΝ ΔΡΟΜΕΑ

  ** Για να κινήσετε τον δρομέα, πατήστε τα πλήκτρα h,j,k,l όπως δείχνεται. **
	     ^
	     k	      Hint: Το πλήκτρο h είναι αριστερά και κινεί στ' αριστερά.
       < h	 l >	    Το πλήκτρο l είναι δεξιά και κινεί στα δεξιά.
	     j		    Το πλήκτρο j μοιάζει με βελάκι προς τα κάτω.
	     v

  1. Μετακινείστε τον δρομέα τριγύρω στην οθόνη μέχρι να νοιώθετε άνετα.

  2. Κρατήστε πατημένο το κάτω πλήκτρο (j) μέχρι να επαναληφθεί.
---> Τώρα ξέρετε πώς να μετακινηθείτε στο επόμενο μάθημα.

  3. Χρησιμοποιώντας το κάτω πλήκτρο, μετακινηθείτε στο Μάθημα 1.2.

Σημείωση: Αν αμφιβάλλετε για κάτι που πατήσατε, πατήστε <ESC> για να βρεθείτε
	  στην Κανονική Κατάσταση. Μετά πατήστε ξανά την εντολή που θέλατε.

Σημείωση: Τα πλήκτρα του δρομέα θα πρέπει επίσης να δουλεύουν. Αλλά με τα hjkl
	  θα μπορείτε να κινηθείτε πολύ γρηγορότερα, μόλις τα συνηθίσετε.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Μάθημα 1.2:  ΜΠΑΙΝΟΝΤΑΣ ΚΑΙ ΒΓΑΙΝΟΝΤΑΣ ΣΤΟΝ VIM

  !! ΣΗΜΕΙΩΣΗ: Πριν εκτελέσετε κάποιο από τα βήματα, διαβάστε όλο το μάθημα!!

  1. Πατήστε το πλήκτρο <ESC> (για να είστε σίγουρα στην Κανονική Κατάσταση).

  2. Πληκτρολογήστε:		:q! <ENTER>.

---> Αυτό εξέρχεται από τον συντάκτη ΧΩΡΙΣ να σώσει όποιες αλλαγές έχετε κάνει.
     Αν θέλετε να σώσετε τις αλλαγές και να εξέρθετε πληκτρολογήστε:
	      :wq <ENTER>

  3. Όταν δείτε την προτροπή του φλοιού, πληκτρολογήστε την εντολή με την οποία
     μπήκατε σε αυτήν την περιήγηση. Μπορεί να είναι:	vimtutor <ENTER>
     Κανονικά θα χρησιμοποιούσατε:			vim tutor <ENTER>

---> 'vim' σημαίνει εισαγωγή στον συντάκτη vim, 'tutor' είναι το αρχείο που
     θέλουμε να διορθώσουμε.

  4. Αν έχετε απομνημονεύσει αυτά τα βήματα και έχετε αυτοπεποίθηση, εκτελέστε
     τα βήματα 1 έως 3 για να βγείτε και να μπείτε ξανά στον συντάκτη. Μετά
     μετακινήστε τον δρομέα κάτω στο Μάθημα 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Μάθημα 1.3:  ΔΙΟΡΘΩΣΗ ΚΕΙΜΕΝΟΥ - ΔΙΑΓΡΑΦΗ

   ** Όσο είστε στην Κανονική Κατάσταση πατήστε  x  για να διαγράψετε τον
      χαρακτήρα κάτω από τον δρομέα. **

  1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.

  2. Για να διορθώσετε τα λάθη, κινείστε τον δρομέα μέχρι να είναι πάνω από
     τον χαρακτήρα που θα διαγραφεί.

  3. Πατήστε το πλήκτρο x για να διαγράψετε τον ανεπιθύμητο χαρακτήρα.

  4. Επαναλάβετε τα βήματα 2 μέχρι 4 μέχρι η πρόταση να είναι σωστή.

---> The ccow jumpedd ovverr thhe mooon.

  5. Τώρα που η γραμμή είναι σωστή, πηγαίντε στο Μάθημα 1.4.

ΣΗΜΕΙΩΣΗ: Καθώς διατρέχετε αυτήν την περιήγηση, προσπαθήστε να μην
	  απομνημονεύετε, μαθαίνετε με τη χρήση.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Μάθημα 1.4: ΔΙΟΡΘΩΣΗ ΚΕΙΜΕΝΟΥ - ΠΑΡΕΜΒΟΛΗ

 ** Όσο είστε σε Κανονική Κατάσταση πατήστε  i  για να παρεμβάλλετε κείμενο. **

  1. Μετακινείστε τον δρομέα μέχρι την πρώτη γραμμή παρακάτω σημειωμένη με --->.

  2. Για να κάνετε την πρώτη γραμμή ίδια με την δεύτερη, μετακινείστε τον
     δρομέα πάνω στον πρώτο χαρακτήρα ΜΕΤΑ από όπου θα παρεμβληθεί το κείμενο.

  3. Πατήστε το  i  και πληκτρολογήστε τις απαραίτητες προσθήκες.

  4. Καθώς διορθώνετε κάθε λάθος πατήστε <ESC> για να επιστρέψετε στην
     Κανονική Κατάσταση. Επαναλάβετε τα βήματα 2 μέχρι 4 για να διορθώσετε
     την πρόταση.

---> There is text misng this .
---> There is some text missing from this line.

  5. Όταν είστε άνετοι με την παρεμβολή κειμένου μετακινηθείτε στην
     παρακάτω περίληψη.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ΜΑΘΗΜΑ 1 ΠΕΡΙΛΗΨΗ


  1. Ο δρομέας κινείται χρησιμοποιώντας είτε τα πλήκτρα δρομέα ή τα hjkl.
	 h (αριστέρα)	j (κάτω)	k (πάνω)	l (δεξιά)

  2. Για να μπείτε στον Vim (από την προτροπή %) γράψτε:  vim ΑΡΧΕΙΟ <ENTER>

  3. Για να βγείτε γράψτε:  <ESC>   :q!   <ENTER>   για απόρριψη των αλλαγών.
		 Ή γράψτε:  <ESC>   :wq   <ENTER>   για αποθήκευση των αλλαγών.

  4. Για να διαγράψετε έναν χαρακτήρα κάτω από τον δρομέα σε
     Κανονική Κατάσταση πατήστε:  x

  5. Για να εισάγετε κείμενο στον δρομέα όσο είστε σε Κανονική Κατάσταση γράψτε:
	 i     πληκτρολογήστε το κείμενο	<ESC>

ΣΗΜΕΙΩΣΗ: Πατώντας <ESC> θα τοποθετηθείτε στην Κανονική Κατάσταση ή θα
	  ακυρώσετε μία ανεπιθύμητη και μερικώς ολοκληρωμένη εντολή.

Τώρα συνεχίστε με το Μάθημα 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Μάθημα 2.1: ΕΝΤΟΛΕΣ ΔΙΑΓΡΑΦΗΣ

	 ** Γράψτε  dw  για να διαγράψετε μέχρι το τέλος μίας λέξης. **

  1. Πατήστε  <ESC>  για να βεβαιωθείτε ότι είστε στην Κανονική Κατάσταση.

  2. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.

  3. Πηγαίνετε τον δρομέα στην αρχή της λέξης που πρέπει να διαγραφεί.

  4. Γράψτε  dw  για να κάνετε την λέξη να εξαφανιστεί.

ΣΗΜΕΙΩΣΗ: Τα γράμματα dw θα εμφανιστούν στην τελευταία γραμμή της οθόνης όσο
	  τα πληκτρολογείτε. Αν γράψατε κάτι λάθος, πατήστε  <ESC>  και
	  ξεκινήστε από την αρχή.

---> There are a some words fun that don't belong paper in this sentence.

  5. Επαναλάβετε τα βήματα 3 και 4 μέχρι η πρόταση να είναι σωστή και
     πηγαίνετε στο Μάθημα 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Μάθημα 2.2: ΠΕΡΙΣΣΟΤΕΡΕΣ ΕΝΤΟΛΕΣ ΔΙΑΓΡΑΦΗΣ

    ** Πληκτρολογήστε  d$  για να διαγράψετε μέχρι το τέλος της γραμμής. **

  1. Πατήστε  <ESC>  για να βεβαιωθείτε ότι είστε στην Κανονική Κατάσταση.

  2. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.

  3. Μετακινείστε τον δρομέα στο τέλος της σωστής γραμμής (ΜΕΤΑ την πρώτη . ).

  4. Πατήστε   d$   για να διαγράψετε μέχρι το τέλος της γραμμής.

---> Somebody typed the end of this line twice. end of this line twice.

  5. Πηγαίνετε στο Μάθημα 2.3 για να καταλάβετε τι συμβαίνει.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Μάθημα 2.3: ΠΕΡΙ ΕΝΤΟΛΩΝ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΩΝ


Η μορφή της εντολής διαγραφής  d  είναι ως εξής:

	 [αριθμός]   d   αντικείμενο	Ή	d   [αριθμός]   αντικείμενο
  Όπου:
    αριθμός - πόσες φορές θα εκτελεστεί η εντολή (προαιρετικό, εξ' ορισμού=1).
    d - η εντολή της διαγραφής.
    αντικείμενο - πάνω σε τι θα λειτουργήσει η εντολή (παρακάτω λίστα).

  Μία μικρή λίστα από αντικείμενα:
    w - από τον δρομέα μέχρι το τέλος της λέξης, περιλαμβάνοντας το διάστημα.
    e - από τον δρομέα μέχρι το τέλος της λέξης, ΧΩΡΙΣ το διάστημα.
    $ - από τον δρομέα μέχρι το τέλος της γραμμής.

ΣΗΜΕΙΩΣΗ:  Για τους τύπους της περιπέτειας, πατώντας απλώς το αντικείμενο όσο
	   είστε στην Κανονική Κατάσταση χωρίς κάποια εντολή θα μετακινήσετε
	   τον δρομέα όπως καθορίζεται στην λίστα αντικειμένων.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Μάθημα 2.4: ΜΙΑ ΕΞΑΙΡΕΣΗ ΣΤΗΝ 'ΕΝΤΟΛΗ-ΑΝΤΙΚΕΙΜΕΝΟ'

	   ** Πληκτρολογήστε  dd  για να διαγράψετε όλη τη γραμμή. **

  Εξαιτίας της συχνότητας της διαγραφής ολόκληρης γραμμής, οι σχεδιαστές
  του Vim αποφάσισαν ότι θα ήταν ευκολότερο να γράφετε απλώς δύο d στη
  σειρά για να διαγράψετε μία γραμμή.

  1. Μετακινείστε τον δρομέα στη δεύτερη γραμμή της παρακάτω φράσης.
  2. Γράψτε  dd  για να διαγράψετε τη γραμμή.
  3. Τώρα μετακινηθείτε στην τέταρτη γραμμή.
  4. Γράψτε  2dd  (θυμηθείτε  αριθμός-εντολή-αντικείμενο) για να
     διαγράψετε δύο γραμμές.

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Μάθημα 2.5: Η ΕΝΤΟΛΗ ΑΝΑΙΡΕΣΗΣ

	    ** Πατήστε  u  για να αναιρέσετε τις τελευταίες εντολές,
	       U για να διορθώσετε όλη τη γραμμή. **

  1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με ---> και
     τοποθετήστε τον πάνω στο πρώτο λάθος.
  2. Πατήστε  x  για να διαγράψετε τον πρώτο ανεπιθύμητο χαρακτήρα.
  3. Τώρα πατήστε  u  για να αναιρέσετε την τελευταία εκτελεσμένη εντολή.
  4. Αυτή τη φορά διορθώστε όλα τα λάθη στη γραμμή χρησιμοποιώντας την εντολή x.
  5. Τώρα πατήστε ένα κεφαλαίο  U  για να επιστρέψετε τη γραμμή στην αρχική
     της κατάσταση.
  6. Τώρα πατήστε  u  μερικές φορές για να αναιρέσετε την  U  και
     προηγούμενες εντολές.
  7. Τώρα πατήστε CTRL-R (κρατώντας πατημένο το πλήκτρο CTRL καθώς πατάτε το R)
     μερικές φορές για να επαναφέρετε τις εντολές (αναίρεση των αναιρέσεων).

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. Αυτές είναι πολύ χρήσιμες εντολές.  Τώρα πηγαίνετε στην
     Περίληψη του Μαθήματος 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ΜΑΘΗΜΑ 2 ΠΕΡΙΛΗΨΗ


  1. Για να διαγράψετε από τον δρομέα μέχρι το τέλος λέξης γράψτε:      dw

  2. Για να διαγράψετε από τον δρομέα μέχρι το τέλος γραμμής γράψτε:    d$

  3. Για να διαγράψετε ολόκληρη τη γραμμή γράψτε:    dd

  4. Η μορφή για μία εντολή στην Κανονική Κατάσταση είναι:

      [αριθμός]   εντολή   αντικείμενο    Ή    εντολή   [αριθμός]   αντικείμενο
     όπου:
       αριθμός - πόσες φορές να επαναληφθεί η εντολή
       εντολή - τι να γίνει, όπως η  d  για διαγραφή
       αντικείμενο - πάνω σε τι να ενεργήσει η εντολή, όπως  w  (λέξη),
		     $ (τέλος της γραμμής), κτλ.

  5. Για να αναιρέσετε προηγούμενες ενέργειες, πατήστε:        u   (πεζό u)
     Για να αναιρέσετε όλες τις αλλαγές στη γραμμή, πατήστε:  U  (κεφαλαίο U)
     Για να αναιρέσετε τις αναιρέσεις, πατήστε:               CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Μάθημα 3.1: Η ΕΝΤΟΛΗ ΤΟΠΟΘΕΤΗΣΗΣ


  ** Πατήστε  p  για να τοποθετήσετε την τελευταία διαγραφή μετά τον δρομέα.  **

  1. Μετακινείστε τον δρομέα στην πρώτη γραμμή της παρακάτω ομάδας.

  2. Πατήστε  dd  για να διαγράψετε τη γραμμή και να την αποθηκεύσετε σε
     προσωρινή μνήμη του Vim.

  3. Μετακινείστε τον δρομέα στη γραμμή ΠΑΝΩ από εκεί που θα πρέπει να πάει
     η διαγραμμένη γραμμή.

  4. Όσο είστε σε Κανονική Κατάσταση, πατήστε  p  για να βάλετε τη γραμμή.

  5. Επαναλάβετε τα βήματα 2 έως 4 για να βάλετε όλες τις γραμμές στη
     σωστή σειρά.

     d) Can you learn too?
     b) Violets are blue,
     c) Intelligence is learned,
     a) Roses are red,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Μάθημα 3.2: Η ΕΝΤΟΛΗ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ


    ** Πατήστε  r  και χαρακτήρα για να αλλάξετε αυτόν που είναι
       κάτω από τον δρομέα. **

  1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.

  2. Μετακινείστε τον δρομέα έτσι ώστε να είναι πάνω στο πρώτο λάθος.

  3. Πατήστε  r  και μετά τον χαρακτήρα ο οποίος διορθώνει το λάθος.

  4. Επαναλάβετε τα βήματα 2 και 3 μέχρι να είναι σωστή η πρώτη γραμμή.

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. Τώρα πηγαίνετε στο Μάθημα 3.2.

ΣΗΜΕΙΩΣΗ: Να θυμάστε ότι πρέπει να μαθαίνετε με τη χρήση, και όχι με
	  την απομνημόνευση.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Μάθημα 3.3: Η ΕΝΤΟΛΗ ΑΛΛΑΓΗΣ

	   ** Για να αλλάξετε τμήμα ή όλη τη λέξη, πατήστε  cw  . **

  1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.

  2. Τοποθετήστε τον δρομέα πάνω στο u της λέξης lubw.

  3. Πατήστε  cw  και τη σωστή λέξη (στην περίπτωση αυτή, γράψτε  'ine'.)

  4. Πατήστε <ESC> και πηγαίνετε στο επόμενο λάθος (στον πρώτο
     χαρακτήρα προς αλλαγή).

  5. Επαναλάβετε τα βήματα 3 και 4 μέχρις ότου η πρώτη πρόταση να είναι
     ίδια με τη δεύτερη.

---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.

Παρατηρείστε ότι η  cw  όχι μόνο αντικαθιστάει τη λέξη, αλλά σας εισάγει
επίσης σε παρεμβολή.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Μάθημα 3.4: ΠΕΡΙΣΣΟΤΕΡΕΣ ΑΛΛΑΓΕΣ ΜΕ c


  ** Η εντολή αλλαγής χρησιμοποιείται με τα ίδια αντικείμενα της διαγραφής. **


  1. Η εντολή αλλαγής δουλεύει με τον ίδιο τρόπο όπως η διαγραφή. Η μορφή είναι:

       [αριθμός]   c   αντικείμενο     Ή     c   [αριθμός]   αντικείμενο

  2. Τα αντικείμενα είναι πάλι τα ίδια, όπως w (λέξη), $ (τέλος γραμμής), κτλ.

  3. Μετακινηθείτε στην πρώτη γραμμή παρακάτω σημειωμένη με --->.

  4. Μετακινείστε τον δρομέα στο πρώτο λάθος.

  5. Γράψτε  c$  για να κάνετε το υπόλοιπο της γραμμής ίδιο με τη δεύτερη
     και πατήστε <ESC>.

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ΜΑΘΗΜΑ 3 ΠΕΡΙΛΗΨΗ


  1. Για να τοποθετήσετε κείμενο που μόλις έχει διαγραφεί, πατήστε  p .
     Αυτό τοποθετεί το διαγραμμένο κείμενο ΜΕΤΑ τον δρομέα (αν διαγράφτηκε
     γραμμή θα πάει μετά στη γραμμή κάτω από τον δρομέα.

  2. Για να αντικαταστήσετε τον χαρακτήρα κάτω από τον δρομέα, πατήστε  r
     και μετά τον χαρακτήρα που θα αντικαταστήσει τον αρχικό.

  3. Η εντολή αλλαγής σας επιτρέπει να αλλάξετε το καθορισμένο αντικείμενο
     από τον δρομέα μέχρι το τέλος του αντικείμενο. Π.χ. γράψτε  cw  για να
     αλλάξετε από τον δρομέα μέχρι το τέλος της λέξης, c$ για να αλλάξετε
     μέχρι το τέλος γραμμής.

  4. Η μορφή για την αλλαγή είναι:

	 [αριθμός]   c   αντικείμενο     Ή     c   [αριθμός]   αντικείμενο

Τώρα συνεχίστε με το επόμενο μάθημα.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Μάθημα 4.1: ΘΕΣΗ ΚΑΙ ΚΑΤΑΣΤΑΣΗ ΑΡΧΕΙΟΥ


 ** Πατήστε CTRL-g για να εμφανιστεί η θέση σας στο αρχείο και η κατάστασή του.
    Πατήστε SHIFT-G για να πάτε σε μία γραμμή στο αρχείο. **

  Σημείωση: Διαβάστε ολόκληρο το μάθημα πριν εκτελέσετε κάποιο από τα βήματα!!

  1. Κρατήστε πατημένο το πλήκτρο Ctrl και πατήστε  g . Μία γραμμή κατάστασης
     θα εμφανιστεί στο κάτω μέρος της σελίδας με το όνομα αρχείου και τη
     γραμμή που είστε. Θυμηθείτε τον αριθμό γραμμής για το Βήμα 3.

  2. Πατήστε shift-G για να μετακινηθείτε στο τέλος του αρχείου.

  3. Πατήστε τον αριθμό της γραμμής που ήσασταν και μετά shift-G. Αυτό θα
     σας επιστρέψει στη γραμμή που ήσασταν πριν πατήσετε για πρώτη φορά Ctrl-g.
     (Όταν πληκτρολογείτε τους αριθμούς, ΔΕΝ θα εμφανίζονται στην οθόνη).

  4. Αν νοιώθετε σίγουρος για αυτό, εκτελέστε τα βήματα 1 έως 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Μάθημα 4.2: Η ΕΝΤΟΛΗ ΑΝΑΖΗΤΗΣΗΣ


	  ** Πατήστε   /   ακολουθούμενο από τη φράση που ψάχνετε. **

  1. Σε Κανονική Κατάσταση πατήστε τον χαρακτήρα  / . Παρατηρήστε ότι αυτός και
     ο δρομέας εμφανίζονται στο κάτω μέρος της οθόνης όπως με την εντολή  : .

  2. Τώρα γράψτε 'errroor' <ENTER>. Αυτή είναι η λέξη που θέλετε να ψάξετε.

  3. Για να ψάξετε ξανά για την ίδια φράση, πατήστε απλώς  n .
     Για να ψάξετε την ίδια φράση στην αντίθετη κατεύθυνση, πατήστε  Shift-N .

  4. Αν θέλετε να ψάξετε για μία φράση προς τα πίσω, χρησιμοποιήστε την εντολή  ?  αντί της  / .

---> Όταν η αναζήτηση φτάσει στο τέλος του αρχείου θα συνεχίσει από την αρχή.

  "errroor" is not the way to spell error;  errroor is an error.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Μάθημα 4.3: ΕΥΡΕΣΗ ΤΑΙΡΙΑΣΤΩΝ ΠΑΡΕΝΘΕΣΕΩΝ


	  ** Πατήστε   %   για να βρείτε την αντίστοιχη ), ], ή } . **

  1. Τοποθετήστε τον δρομέα σε κάποια (, [, ή { στην παρακάτω γραμμή
     σημειωμένη με --->.

  2. Τώρα πατήστε τον χαρακτήρα  % .

  3. Ο δρομέας θα πρέπει να είναι στην αντίστοιχη παρένθεση ή αγκύλη.

  4. Πατήστε  %  για να μετακινήσετε τον δρομέα πίσω στην πρώτη αγκύλη
    (του ζευγαριού).

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

ΣΗΜΕΙΩΣΗ: Αυτό είναι πολύ χρήσιμο στην αποσφαλμάτωση ενός προγράμματος
	  με μη ταιριαστές παρενθέσεις!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Μάθημα 4.4: ΕΝΑΣ ΤΡΟΠΟΣ ΓΙΑ ΑΛΛΑΓΗ ΛΑΘΩΝ


       ** Γράψτε  :s/old/new/g  για να αλλάξετε το 'new' με το 'old'. **

  1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.

  2. Γράψτε  :s/thee/the <ENTER> . Σημειώστε ότι αυτή η εντολή αλλάζει μόνο
     την πρώτη εμφάνιση στη γραμμή.

  3. Τώρα γράψτε   :s/thee/the/g    εννοώντας γενική αντικατάσταση στη
     γραμμή. Αυτό αλλάζει όλες τις εμφανίσεις επί της γραμμής.

---> thee best time to see thee flowers is in thee spring.

  4. Για να αλλάξετε κάθε εμφάνιση μίας συμβολοσειράς μεταξύ δύο γραμμών,
     γράψτε   :#,#s/old/new/g   όπου #,# οι αριθμοί των δύο γραμμών.
     Γράψτε   :%s/old/new/g     για να αλλάξετε κάθε εμφάνιση σε όλο το αρχείο.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ΜΑΘΗΜΑ 4 ΠΕΡΙΛΗΨΗ


  1. Το  Ctrl-g  εμφανίζει τη θέση σας στο αρχείο και την κατάστασή του.
     Το  Shift-G  πηγαίνει στο τέλος του αρχείου. Ένας αριθμός γραμμής
     ακολουθούμενος από  Shift-G  πηγαίνει σε εκείνη τη γραμμή.

  2. Γράφοντας  /  ακολουθούμενο από μία φράση ψάχνει προς τα ΜΠΡΟΣΤΑ για
     τη φράση. Γράφοντας  ?  ακολουθούμενο από μία φράση ψάχνει προς τα ΠΙΣΩ
     για τη φράση. Μετά από μία αναζήτηση πατήστε  n  για να βρείτε την
     επόμενη εμφάνιση προς την ίδια κατεύθυνση ή  Shift-N  για να ψάξετε
     προς την αντίθετη κατεύθυνση.

  3. Πατώντας  %  όσο ο δρομέας είναι πάνω σε μία (,),[,],{, ή }  εντοπίζει
     το αντίστοιχο ταίρι του ζευγαριού.

  4. Για αντικατάσταση με new του πρώτου old στη γραμμή γράψτε  :s/old/new
     Για αντικατάσταση με new όλων των 'old' στη γραμμή γράψτε  :s/old/new/g
     Για αντικατάσταση φράσεων μεταξύ δύο # γραμμών γράψτε      :#,#s/old/new/g
     Για αντικατάσταση όλων των εμφανίσεων στο αρχείο γράψτε    :%s/old/new/g
     Για ερώτηση επιβεβαίωσης κάθε φορά προσθέστε ένα 'c'       "%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Μάθημα 5.1: ΠΩΣ ΕΚΤΕΛΩ ΜΙΑ ΕΞΩΤΕΡΙΚΗ ΕΝΤΟΛΗ


** Γράψτε  :!  ακολουθούμενο από μία εξωτερική εντολή για να την εκτελέσετε. **

  1. Πατήστε την οικεία εντολή  :  για να θέσετε τον δρομέα στο κάτω μέρος
     της οθόνης. Αυτό σας επιτρέπει να δώσετε μία εντολή.

  2. Τώρα πατήστε  το  !  (θαυμαστικό). Αυτό σας επιτρέπει να εκτελέσετε
     οποιαδήποτε εξωτερική εντολή του φλοιού.

  3. Σαν παράδειγμα γράψτε  ls  μετά από το ! και πατήστε <ENTER>. Αυτό θα
     σας εμφανίσει μία λίστα του καταλόγου σας, ακριβώς σαν να ήσασταν στην
     προτροπή του φλοιού. Ή χρησιμοποιήστε  :!dir  αν το ls δεν δουλεύει.

---> Σημείωση: Είναι δυνατόν να εκτελέσετε οποιαδήποτε εξωτερική εντολή
     με αυτόν τον τρόπο.

---> Σημείωση: Όλες οι εντολές  :  πρέπει να τερματίζονται πατώντας το <ENTER>.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Μάθημα 5.2: ΠΕΡΙΣΣΟΤΕΡΑ ΠΕΡΙ ΕΓΓΡΑΦΗΣ ΑΡΧΕΙΩΝ


   ** Για να σώσετε τις αλλάγες που κάνατε στο αρχείο, γράψτε  :w ΑΡΧΕΙΟ.  **

  1. Γράψτε  :!dir  ή  :!ls  για να πάρετε μία λίστα του καταλόγου σας.
     Ήδη ξέρετε ότι πρέπει να πατήσετε <ENTER> μετά από αυτό.

  2. Διαλέξτε ένα όνομα αρχείου που δεν υπάρχει ακόμα, όπως το TEST.

  3. Τώρα γράψτε:  :w TEST  (όπου TEST είναι το όνομα αρχείου που διαλέξατε).

  4. Αυτό σώζει όλο το αρχείο (vim Tutor) με το όνομα TEST. Για να το
     επαληθεύσετε, γράψτε ξανά  :!dir για να δείτε τον κατάλογό σας.

---> Σημειώστε ότι αν βγαίνατε από τον Vim και μπαίνατε ξανά με το όνομα
     αρχείου TEST, το αρχείο θα ήταν ακριβές αντίγραφο του tutor όταν το σώσατε.

  5. Τώρα διαγράψτε το αρχείο γράφοντας (MS-DOS):      :!del TEST



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Μάθημα 5.3: ΕΠΙΛΕΚΤΙΚΗ ΕΝΤΟΛΗ ΕΓΓΡΑΦΗΣ


	  ** Για να σώσετε τμήμα του αρχείου, γράψτε  :#,# w ΑΡΧΕΙΟ **

  1. Άλλη μια φορά, γράψτε  :!dir  ή  :!ls  για να πάρετε μία λίστα από τον
     κατάλογό σας και διαλέξτε ένα κατάλληλο όνομα αρχείου όπως το TEST.

  2. Μετακινείστε τον δρομέα στο πάνω μέρος αυτής της σελίδας και πατήστε
     Ctrl-g  για να βρείτε τον αριθμό αυτής της γραμμής.
     ΝΑ ΘΥΜΑΣΤΕ ΑΥΤΟΝ ΤΟΝ ΑΡΙΘΜΟ!

  3. Τώρα πηγαίνετε στο κάτω μέρος της σελίδας και πατήστε  Ctrl-g  ξανά.
     ΝΑ ΘΥΜΑΣΤΕ ΚΑΙ ΑΥΤΟΝ ΤΟΝ ΑΡΙΘΜΟ!

  4. Για να σώσετε ΜΟΝΟ ένα τμήμα σε αρχείο, γράψτε   :#,# w TEST
     όπου #,# οι δύο αριθμοί που απομνημονεύσατε (πάνω,κάτω) και TEST το
     όνομα του αρχείου σας.

  5. Ξανά, δείτε ότι το αρχείο είναι εκεί με την  :!dir αλλά ΜΗΝ το διαγράψετε.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Μάθημα 5.4: ΑΝΑΚΤΩΝΤΑΣ ΚΑΙ ΕΝΩΝΟΝΤΑΣ ΑΡΧΕΙΑ


     ** Για να εισάγετε τα περιεχόμενα ενός αρχείου, γράψτε   :r ΑΡΧΕΙΟ **

  1. Γράψτε  :!dir  για να βεβαιωθείτε ότι το TEST υπάρχει από πριν.

  2. Τοποθετήστε τον δρομέα στο πάνω μέρος της σελίδας.

ΣΗΜΕΙΩΣΗ:  Αφότου εκτελέσετε το Βήμα 3 θα δείτε το Μάθημα 5.3.
	   Μετά κινηθείτε ΚΑΤΩ ξανά προς το μάθημα αυτό.

  3. Τώρα ανακτήστε το αρχείο σας TEST χρησιμοποιώντας την εντολή  :r TEST
     όπου TEST είναι το όνομα του αρχείου.

ΣΗΜΕΙΩΣΗ:  Το αρχείο που ανακτάτε τοποθετείται ξεκινώντας εκεί που βρίσκεται
	   ο δρομέας.

  4. Για να επαληθεύσετε ότι το αρχείο ανακτήθηκε, πίσω τον δρομέα και
     παρατηρήστε ότι υπάρχουν τώρα δύο αντίγραφα του Μαθήματος 5.3, το
     αρχικό και η έκδοση του αρχείου.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ΜΑΘΗΜΑ 5 ΠΕΡΙΛΗΨΗ


  1.  :!εντολή  εκτελεί μία εξωτερική εντολή.

      Μερικά χρήσιμα παραδείγματα είναι (MS-DOS):
      :!dir            - εμφάνιση λίστας ενός καταλόγου.
      :!del ΑΡΧΕΙΟ     - διαγράφει το ΑΡΧΕΙΟ.

  2.  :w ΑΡΧΕΙΟ   γράφει το τρέχων αρχείο του Vim στο δίσκο με όνομα ΑΡΧΕΙΟ.

  3.  :#,#w ΑΡΧΕΙΟ   σώζει τις γραμμές από # μέχρι # στο ΑΡΧΕΙΟ.

  4.  :r ΑΡΧΕΙΟ  ανακτεί το αρχείο δίσκου ΑΡΧΕΙΟ και το παρεμβάλλει μέσα
      στο τρέχον αρχείο μετά από τη θέση του δρομέα.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Μάθημα 6.1: Η ΕΝΤΟΛΗ ΑΝΟΙΓΜΑΤΟΣ


      ** Πατήστε  o  για να ανοίξετε μία γραμμή κάτω από τον δρομέα και να
	 βρεθείτε σε Κατάσταση Κειμένου. **

  1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.

  2. Πατήστε  o (πεζό) για να ανοίξετε μία γραμμή ΚΑΤΩ από τον δρομέα και να
     βρεθείτε σε Κατάσταση Κειμένου.

  3. Τώρα αντιγράψτε τη σημειωμένη με ---> γραμμή  και πατήστε <ESC> για να
     βγείτε από την Κατάσταση Κειμένου.

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. Για να ανοίξετε μία γραμμή ΠΑΝΩ από τον δρομέα, πατήστε απλά ένα κεφαλαίο
     O, αντί για ένα πεζό  o.  Δοκιμάστε το στην παρακάτω γραμμή.
Ανοίγετε γραμμή πάνω από αυτήν πατώντας Shift-O όσο ο δρομέας είναι στη γραμμή



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Μάθημα 6.2: Η ΕΝΤΟΛΗ ΠΡΟΣΘΗΚΗΣ

	  ** Πατήστε   a   για να εισάγετε κείμενο ΜΕΤΑ τον δρομέα. **

  1. Μετακινείστε τον δρομέα στο τέλος της πρώτης γραμμής παρακάτω
     σημειωμένη με ---> πατώντας  $  στην Κανονική Κατάσταση.

  2. Πατήστε ένα  a  (πεζό) για να προσθέσετε κείμενο ΜΕΤΑ από τον χαρακτήρα
     που είναι κάτω από τον δρομέα.  (Το κεφαλαίο  A  προσθέτει στο τέλος
     της γραμμής).

Σημείωση: Αυτό αποφεύγει το πάτημα του  i , τον τελευταίο χαρακτήρα, το
	  κείμενο της εισαγωγής, <ESC>, δρομέα-δεξιά, και τέλος, x, μόνο και
	  μόνο για να προσθέσετε στο τέλος της γραμμής!

  3. Συμπληρώστε τώρα την πρώτη γραμμή. Σημειώστε επίσης ότι η προσθήκη είναι
     ακριβώς ίδια στην Κατάσταση Κειμένου με την Κατάσταση Εισαγωγής, εκτός
     από τη θέση που εισάγεται το κείμενο.

---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Μάθημα 6.3: ΑΛΛΗ ΕΚΔΟΣΗ ΤΗΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ


 ** Πατήστε κεφαλαίο  R  για να αλλάξετε περισσότερους από έναν χαρακτήρες. **

  1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.

  2. Τοποθετήστε τον δρομέα στην αρχή της πρώτης λέξης που είναι διαφορετική
     από τη δεύτερη γραμμή σημειωμένη με ---> (η λέξη 'last').

  3. Πατήστε τώρα  R   και αλλάξτε το υπόλοιπο του κειμένου στην πρώτη γραμμή
     γράφοντας πάνω από το παλιό κείμενο ώστε να κάνετε την πρώτη γραμμή ίδια
     με τη δεύτερη.

---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.

  4. Σημειώστε ότι όταν πατάτε <ESC> για να βγείτε, παραμένει οποιοδήποτε
     αναλλοίωτο κείμενο.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Μάθημα 6.4: ΡΥΘΜΙΣΗ ΕΠΙΛΟΓΗΣ


   ** Ρυθμίστε μία επιλογή έτσι ώστε η αναζήτηση ή η αντικατάσταση να αγνοεί
      τη διαφορά πεζών-κεφαλαίων **

  1. Ψάξτε για 'ignore' εισάγοντας:
     /ignore
     Συνεχίστε αρκετές φορές πατώντας το πλήκτρο n.

  2. Θέστε την επιλογή 'ic' (Ignore case) γράφοντας:
     :set ic

  3. Ψάξτε τώρα ξανά για 'ignore' πατώντας: n
     Συνεχίστε την αναζήτηση μερικές ακόμα φορές πατώντας το πλήκτρο n

  4. Θέστε τις επιλογές 'hlsearch' και 'incsearch':
     :set hls is

  5. Εισάγετε τώρα ξανά την εντολή αναζήτησης, και δείτε τι συμβαίνει
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       ΜΑΘΗΜΑ 6 ΠΕΡΙΛΗΨΗ


  1. Πατώντας  o  ανοίγει μία γραμμή ΚΑΤΩ από τον δρομέα και τοποθετεί τον
     δρομέα στην ανοιχτή γραμμή σε Κατάσταση Κειμένου.

  2. Πατήστε  a  για να εισάγετε κείμενο ΜΕΤΑ τον χαρακτήρα στον οποίο είναι
     ο δρομέας. Πατώντας κεφαλαίο  A  αυτόματα προσθέτει κείμενο στο τέλος
     της γραμμής.

  3. Πατώντας κεφαλαίο  R  εισέρχεται στην Κατάσταη Αντικατάστασης μέχρι να
     πατηθεί το <ESC> και να εξέλθει.

  4. Γράφοντας ":set xxx" ρυθμίζει την επιλογή "xxx".








~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       ΜΑΘΗΜΑ 7: ON-LINE ΕΝΤΟΛΕΣ ΒΟΗΘΕΙΑΣ


		** Χρησιμοποιήστε το on-line σύστημα βοήθειας **

  Ο Vim έχει ένα περιεκτικό on-line σύστημα βοήθειας. Για να ξεκινήσει,
  δοκιμάστε κάποιο από τα τρία:
	- πατήστε το πλήκτρο <HELP> (αν έχετε κάποιο)
	- πατήστε το πλήκτρο <F1> (αν έχετε κάποιο)
	- γράψτε   :help <ENTER>

  Γράψτε  :q <ENTER>   για να κλείσετε το παράθυρο της βοήθειας.

  Μπορείτε να βρείτε βοήθεια πάνω σε κάθε αντικείμενο, δίνοντας μία παράμετρο
  στην εντολή ":help".  Δοκιμάστε αυτά (μην ξεχνάτε να πατάτε <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  ΜΑΘΗΜΑ 8: ΔΗΜΙΟΥΡΓΗΣΤΕ ΕΝΑ SCRIPT ΕΚΚΙΝΗΣΗΣ

		   ** Ενεργοποιήστε χαρακτηριστικά του Vim **

  Ο Vim έχει πολλά περισσότερα χαρακτηριστικά απ' ό,τι ο Vi, αλλά τα
  περισσότερα είναι αρχικά απενεργοποιημένα. Για να αρχίσετε να χρησιμοποιείτε
  περισσότερα χαρακτηριστικά πρέπει να φτιάξετε ένα αρχείο "vimrc".

  1. Αρχίστε διορθώνοντας το αρχείο "vimrc", αυτό εξαρτάται από το σύστημά σας:
	:edit ~/.vimrc               για Unix
	:edit $VIM/_vimrc            για MS-Windows

  2. Τώρα εισάγετε το κείμενο παραδείγματος για αρχείο "vimrc":
	:read $VIMRUNTIME/vimrc_example.vim

  3. Γράψτε το αρχείο με την:
	:write

  Την επόμενη φορά που θα ξεκινήσετε τον Vim θα χρησιμοποιήσει φωτισμό
  σύνταξης.  Μπορείτε να προσθέσετε όλες τις προτιμώμενες επιλογές σ' αυτό
  το αρχείο "vimrc".

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Εδώ ολοκληρώνεται το Vim Tutor. Σκοπός του ήταν να δώσει μία σύντομη
  περίληψη του συντάκτη Vim, τουλάχιστον τόση ώστε να σας επιτρέψει να
  χρησιμοποιήσετε τον συντάκτη αρκετά εύκολα. Απέχει πολύ από μία
  ολοκληρωμένη παρουσίαση καθώς ο Vim έχει πάρα πολλές εντολές. Διαβάστε
  κατόπιν το εγχειρίδιο χρήσης:
	":help user-manual".

  Για περαιτέρω διάβασμα και μελέτη, συστήνεται αυτό το βιβλίο:
	Vim - Vi Improved - by Steve Oualline
	Publisher: New Riders
	Το πρώτο βιβλίο πλήρως αφιερωμένο στον Vim.
	Ιδιαίτερα χρήσιμο για αρχάριους.
	Υπάρχουν πολλά παραδείγματα και εικόνες.
	Δείτε την http://iccf-holland.org/click5.html

  Αυτό το βιβλίο είναι παλιότερο και περισσότερο για τον Vi παρά για τον Vim,
  αλλά επίσης συνιστώμενο:
	Learning the Vi Editor - by Linda Lamb
	Publisher: O'Reilly & Associates Inc.
	Είναι ένα καλό βιβλίο για να μάθετε σχεδόν τα πάντα που θέλετε
	να κάνετε με τον Vi.
	Η έκτη έκδοση περιέχει ακόμα πληροφορίες για τον Vim.

  Αυτή η περιήγηση γράφτηκε από τους Michael C. Pierce και Robert K. Ware,
  Colorado School of Mines χρησιμοποιώντας ιδέες από τον Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Προσαρμογή για τον Vim από τον Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Zwm����vim80/tutor/tutor.bg.utf-8nu�[���===============================================================================
=           Добре дошли в самоучителя на V I M     -     Версия 1.7           =
===============================================================================

     Vim е много мощен редактор с много команди, твърде много, за да бъдат
     обяснени в ръководство като това. Този самоучител е създаден, за да обясни
     достатъчно от тях, така че да можете да използвате Vim за всякакви цели.

     Приблизителното време, необходимо, за да направите уроците е 25-30 минути, в
     зависимост от това колко време използвате за да се упражнявате.  
     
     ВНИМАНИЕ!
     Командите в уроците ще променят текста им. Запишете файла другаде, за да
     се упражнявате (ако сте отворили самоучителя с "vimtutor", това вече е
     направено).

     Важно е да се запомни, че този самоучител е съставен с цел да се учите
     чрез употреба. Това означава да изпълнявате командите, за да ги научите
     правилно. Ако просто четете текста, ще забравите командите!


     Сега, уверете се, че клавишът CapsLock не е натиснат и натиснете клавиша
     j  няколко пъти, така че Урок 1.1 да да се побере на екрана.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 1.1:  ПРИДВИЖВАНЕ НА ПОКАЗАЛЕЦА


   ** За да преместите показалеца, натискайте клавишите h,j,k,l както е указано. **
	     ^
	     k        Подсказка: Клавишът h е вляво и премества показалеца наляво.
       < h	 l >             Клавишът l е вдясно и премества показалеца надясно.
	     j                   Клавишът j прилича на стрелка, насочена надолу.
	     v
  1. Движете показалеца насам-натам по екрана, докато свикнете.

  2. Задръжте клавиша за преместване надолу(j), докато започне да повтаря
     действието си.  Сега знаете как да се придвижите до следващия урок.

  3. Използвайте клавиша за движение надолу, за да стигнете до Урок 1.2.

Важно! Ако се окаже, че не сте сигурни какво сте въвели, натиснете <ESC>, за да
       отидете в нормален режим. След това въведете желаната команда отново.

Важно! Клавишите със стрелки би трябвало също да работят, но ако използвате
       hjkl ще можете да се придвижвате по-бързо, като свикнете. Наистина!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Урок 1.2: Излизане от VIM (quit)


  Важно!!! Преди да изпълните която и да е от стъпките по-долу, прочетете
  целия урок!!! 

  1. Натиснете клавиша <ESC> (за да се уверите, че сте в нормален режим).

  2. Напишете:	:q! <ENTER>.
     Така излизате от редактора без да записвате промените, които сте направили.

  3. Върнете се тук като изпълните командата, с която пуснахте този самоучител.
     Това ще да е:  vimtutor <ENTER>

  4. Ако сте сигурни, че сте запомнили стъпките от 1 до 3, изпълнете ги и
     влезте отново в редактора.

Внимание! :q! <ENTER>  отхвърля всички промени, които сте направили. След
          няколко урока ще се научите как да записвате промени във файл.

  5. Придвижете показалеца надолу до Урок 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 1.3: ПРОМЯНА НА ТЕКСТ - ИЗТРИВАНЕ (DELETE)


	   ** Натиснете  x  , за да изтриете буквата под показалеца. **

  1. Придвижете показалеца до реда по-долу, означен със --->.

  2. За да поправите грешките, придвижете показалеца върху буквата,
     която ще триете.

  3. Натиснете клавиша	x  , за да изтриете нежеланата буква.

  4. Повтаряйте стъпки от 2 до 4 докато поправите изречението.

---> Кккравата сскоочии връъъъзз ллуннатааа.

  5. След като горния ред е вече поправен, можем да отидем на Урок 1.4.

Важно! Като правите този урок, не се опитвайте да помните, учете се с правене.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 1.4: ПРОМЯНА НА ТЕКСТ - ВЪВЕЖДАНЕ (INSERT)


                     ** Бележка на преводача **
  В упражненията нататък ще ви се налага да въвеждате текст на български. Vim
  притежава собствена система за въвеждане на не-латински букви. За да можете
  да пишете български букви, докато сте в режим за въвеждане, и едновременно с
  това командите ви да се въвеждат с латински букви, направете следното:

  Натиснете  <ESC>, за да се уверите, че не сте в режим за въвеждане. 

  Въведете ":setlocal keymap=bulgarian-phonetic" или 
  ":setlocal keymap=bulgarian-bds", без кавичките, в зависимост от това коя
  подредба предпочитате.  Забележете, че щом въведете : , те ще се появят в
  дъното на екрана. Вече можете да въвеждате български букви без да ползвате
  системната клавиатурна подредба. 

  За да превключвате между двете подредби, докато сте в режим за въвеждане
  натискайте CTRL-^ (дръжте натиснати CTRL и SHIFT и натиснете ^).

   
   			** Натиснете  i  за да въведете текст. **

  1. Придвижете показалеца до първия ред долу, означен със --->.

  2. За да направите първия ред същия като втория, придвижете показалеца върху
     първата буква СЛЕД мястото, където трябва да бъде въведен текста.

  3. Натиснете  i  и напишете каквото трябва да се добави.

  4. След поправяне на всяка грешка, натискайте <ESC>, за да се върнете към
     Нормален режим. Повтаряйте стъпки от 2 до 4, докато поправите изречението.

---> Част текс липс н тзи .
---> Част от текста липсва на този ред.

  5. След като усвоите въвеждането на текст, отидете на Урок 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 1.5: ПРОМЯНА НА ТЕКСТ - ДОБАВЯНЕ (APPEND)


			** Натиснете  A (SHIFT+a) , за да добавите текст. **

  1. Придвижете показалеца до реда долу, означен със --->.
     Няма значение на коя буква в реда се намира показалеца.

  2. Натиснете  A  и добавете каквото е нужно.

  3. След като сте добавили каквото е нужно, натиснете <ESC>, за да се върнете
     в Нормален режим.

  4. Придвижете показалеца до втория ред означен със ---> и повторете стъпки 2,
     и 3, за да поправите изречението.

---> Има текст, който липсва
     Има текст, които липсва на този ред.
---> Тук също има текст,
     Тук също има текст, който липсва.

  5. След като овладеете добавянето на текст, отидете на Урок 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 1.6: ПРОМЯНА НА ФАЙЛ

		    ** Използвайте  :wq  (write and quit), за да запишете файла и
            излезете. **

  Внимание! Преди да изпълните която и да е от стъпките долу, прочетете целия урок!!

  1. Излезте от самоучителя, както направихте в Урок 1.2:  :q!
     Или, ако имате достъп до друг терминал, направете следното там.

  2. На командния ред напишете следното и натиснете <ENTER>:  vim tutor <ENTER>
    'vim' е командата, която стартира редактора Vim, 'tutor' е името на файла,
    които искате да промените. Използвайте файл който може да бъде променян.

  3. Въвеждайте и изтривайте текст по начините, научени в предишните уроци.

  4. Запишете файла и излезте от Vim с:  :wq  <ENTER>

  5. Ако сте излезли от vimtutor в стъпка 1, пуснете го отново и се придвижете
     надолу до обобщението, което следва.

  6. След като прочетете и разберете горните стъпки, направете ги.
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Урок 1 ОБОБЩЕНИЕ


  1. Показалецът се премества като използвате клавишите със стрелки или с клавишите.
	 h (наляво)	j (надолу)       k (нагоре)	    l (надясно)

  2. За да пуснете Vim от командния ред, напишете:  vim ИМЕ-НА-ФАЙЛ <ENTER>

  3. За да излезете от Vim, напишете:
  	                <ESC>   :q!	 <ENTER>  за да отхвърлите всички промени.
     ИЛИ напишете:  <ESC>   :wq	 <ENTER>  за да запишете промените.

  4. За да изтриете буква намираща се под показалеца, натиснете:  x .

  5. За да въведете или добавите текст, натиснете:
	 i   въведете текста, натиснете <ESC>. Въвежда преди показалеца.
	 A   добавете текста, натиснете <ESC>. Добавя в края на реда.

Внимание! С натискане на <ESC>  преминавате в Нормален режим или отменяте
          нежелана, недописана команда.

Сега продължете с Урок 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 2.1: КОМАНДИ ЗА ИЗТРИВАНЕ


		       ** Въведете  dw  , за да изтриете дума. **

  1. Натиснете  <ESC>  , за да се уверите, че сте в Нормален режим.

  2. Придвижете показалеца до реда по-долу, означен със --->.

  3. Придвижете показалеца до началото на думата, която трябва да бъде изтрита.

  4. Натиснете последователно  dw  и думата ще изчезне.

  Забележка! Буквата  d  ще се появи на последния ред от екрана, когато я
  натиснете. Vim ви чака да натиснете  w . Ако видите друга буква, значи сте
  натиснали грешен клавиш. Натиснете  <ESC>  и започнете отначало.

---> Има някои думи хартия, които забава не са част от това изречение.

  5. Повтаряйте стъпки 3 и 4, докато поправите изречението и преминете към Урок 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 2.2: ОЩЕ КОМАНДИ ЗА ИЗТРИВАНЕ


	   ** Въведете  d$	, за да изтриете всичко до края на реда. **

  1. Натиснете  <ESC>  , за да се уверите, че сте в Нормален режим.

  2. Придвижете показалеца до реда по-долу, означен със --->.

  3. Придвижете показалеца до правилния ред (СЛЕД първата .).

  4. Натиснете последователно  d$  , за да изтриете всичко до края на реда.

---> Някой е въвел края на този ред двукратно. края на този ред двукратно.


  5. Отидете до Урок 2.3, за да разберете какво се случва.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 2.3: ЗА ОПЕРАТОРИТЕ И ДВИЖЕНИЯТА


  Много команди, които променят текст се състоят от оператор и движение.
  Форматът за командата за изтриване с оператора  d  (delete) е както следва. 

  	d   движение

  Където:
    d  е операторът за изтриване.
    движение - върху какво ще се приложи операторът (списъкът долу).

  Кратък списък с движения:
    w - (word) до началото на следващата дума като се ИЗКЛЮЧВА първата ѝ буква.
    e - (end of word) до края на текущата дума, ВКЛЮЧИТЕЛНО последната буква.
    $ - До края на реда, ВКЛЮЧИТЕЛНО последния символ.

  Така, като въведете  de  ще изтриете от мястото на показалеца до края на
  думата.

Забележка! Като натиснете само клавиша за движение, ще преместите показалеца на
           съответното място.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 2.4: ИЗПОЛЗВАНЕ НА БРОЯЧ ПРИ ДВИЖЕНИЕ


   ** Ако въведете число преди движението, то се повтаря толкова пъти
      колкото е числото. **

  1. Придвижете показалеца до началото на реда долу, означен със --->.

  2. Въведете  2w  , за да преместите показалеца с две думи напред.

  3. Въведете  3e  , за да преместите показалеца до края на третата дума
     напред.

  4. Въведете  0  (нула), за да отидете в началото на реда.

  5. Повтаряйте стъпки 2 и 3 с различни числа.

---> Това е просто ред с думи, в който можете да се движите.

  6. Отидете на Урок 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Урок 2.5: ИЗПОЛЗВАЙТЕ БРОЯЧ, ЗА ДА ТРИЕТЕ ПОВЕЧЕ


   ** Ако въведете число преди оператор, действието се повтаря толкова пъти
      колкото е числото. **

  Както е упоменато горе, за да изтриете повече при използване на оператора за
  изтриване заедно с движение, трябва да въведете числото преди движението:
	 d   число   движение

  1. Придвижете показалеца до първата дума, изписана с ГЛАВНИ БУКВИ в реда,
     означен със --->.

  2. Въведете  d2w  , за да изтриете думите, написани с ГЛАВНИ БУКВИ.

  3. Повторете стъпки 1 и 2, за да изтриете последователните
     думи, изписани с големи букви с една команда.

--->  този АБВ ГДЕ ред ЖЗИЙ КЛ МНОП РСТ с думи УФХ ЦЧШ ЩЪЬЮЯ е почистен.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 2.6: РАБОТА С РЕДОВЕ


		   ** Въведете   dd   , за да изтриете цял ред. **

  Понеже често се налага да се трие цял ред, създателите на Vi са решили, че ще
  е по-лесно да се натисне два пъти d, за да се изтрие ред.

  1. Придвижете показалеца на втория ред в абзаца долу.
  2. Въведете  dd  , за да изтриете реда.
  3. Сега отидете на четвъртия ред.
  4. Въведете  2dd  , за да изтриете два реда.

--->  1)  Розите са червени,
--->  2)  Калта е забавление,
--->  3)  Теменужките са сини,
--->  4)  Аз имам кола,
--->  5)  Часовниците показват часа,
--->  6)  Захарта е сладка,
--->  7)  Както и ти.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 2.7: ОТМЯНА


   ** Натиснете  u	, за да отмените (undo) последната команда;   U  , за
   отмяна на всички команди на текущия ред. **

  1. Придвижете показалеца до началото на реда долу , означен със ---> и го
  поставете на първата грешка.
  2. Въведете  x  , за да изтриете първата нежелана буква.
  3. Сега натиснете  u  , за да отмените последната изпълнена команда.
  4. Този път поправете всички грешки като използвате командата  x  .
  5. Сега въведете главно  U  (SHIFT+U), за да върнете реда в първоначалния му вид.
  6. Сега натиснете  u  няколко пъти, за да отмените предишното  U  и командите
     преди него.
  7. Сега натиснете CTRL-R (redo) (дръжте клавиша CTRL натиснат, докато натискате R),
     неколкократно, за да изпълните отново командите (да отмените отмените).

---> Пооправеете грешшките нна този реди и ги заменете с отмянаа.

  8. Това са много полезни команди. Сега отидете на обобщението за Урок 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Урок 2 ОБОБЩЕНИЕ


  1. За да изтриете всичко от показалеца до началото на следващата дума, въведете  dw
  2. За да изтриете всичко от показалеца до края на реда, въведете  d$
  3. За да изтриете цял ред, въведете  dd

  4. За да повторите движение въведете преди него число   2w
  5. Форматът за команда за промяна е:
               команда  [число]  движение
     където:
       оператор - това, което трябва да се направи (заповед), например  d  за изтриване
       [число] - незадължителен брой повторения на движението
       движение - придвижване в текста, върху който се работи, например  w (word),
		  $ (до края на реда) и т.н.

  6. За да се придвижите до началото на ред, натиснете нула - 0

  7. За да отмените предишни действия, натиснете  u  (малка буква u)
     За да отмените всички промени на един ред, въведете  U  (главна буква U)
     За да отмените отмените, натиснете  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 3.1: КОМАНДАТА ЗА ПОСТАВЯНЕ (PUT)


       ** Въведете  p  , за да поставите изтрит преди това текст след
          показалеца.**

  1. Придвижете показалеца до първия ред, означен със ---> долу.

  2. Въведете  dd , за да изтриете реда и да го запишете в регистъра на Vim.

  3. Придвижете показалеца до реда, означен със c), НАД мястото, където трябва да
     се постави изтрития ред.

  4. Въведете  p  , за да поставите (put) реда под реда, на който е показалеца.

  5. Повтаряйте стъпки от 2 до 4, за да подредите правилно редовете.

---> d) Ти можеш ли да учиш?
---> b) Теменужките са сини,
---> c) Уменията се научават,
---> a) Розите са червени,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Урок 3.2: КОМАНДАТА ЗА ЗАМЕСТВАНЕ (REPLACE)


       ** Въведете  rx  , за да заместите буквата под показалеца с x . **

  1. Придвижете показалеца до първия ред, означен със ---> долу.

  2. Наместете показалеца така, че да се окаже върху първата грешка.

  3. Въведете  r  и след това буквата, с която ще замествате.

  4. Повтаряйте стъпки 2 и 3 докато първият ред стане същия като втория.

--->  Катишо тизе гад и песен, никей а нарескъл гришнета бливочи!
--->  Когато този ред е писан, някой е натискал грешните клавиши!

  5. Сега отидете на урок 3.3.

Забележка! Помнете, че трябва да се учите, като се упражнявате, а не като се
           опитвате да запомните.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 3.3: ОПЕРАТОРЪТ ЗА ПРОМЯНА (CHANGE)


	   ** За да промените от мястото на показалеца до края на дума, въведете  ce . **

  1. Придвижете показалеца до първия ред долу, означен със --->.

  2. Поставете показалеца върху з в тзии.

  3. Въведете  ce  и правилния остатък от думата ( в този случай ози).

  4. Натиснете <ESC> и отидете на следващата група букви, които трябва да се променят.

  5. Повтаряйте стъпки 3 и 4, докато първото изречение стане същото като второто.

---> На тзии ред иам неклико дмуи, ктоио требав да се прмнеято като се изповлза оепртореа за промяна.
---> На този ред има няколко думи, които трябва да се променят като се използва оператора за промяна.

 Забележете, че  ce  изтрива думата и преминавате в режим за въвеждане.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Урок 3.4: ОЩЕ ПРОМЕНИ С ИЗПОЛЗВАНЕ НА c


     ** Операторът за промяна се използва със същите движения както при триене **

  1. Операторът за промяна работи по същия начин като оператора за триене.
     Форматът е:

         c    [число]   движение

  2. Движенията са същите, например: w (word) и  $ (край на ред).

  3. Отидете на първия ред долу, отбелязан с --->.

  4. Придвижете показалеца до първата грешка.

  5. Въведете  c$  и допишете остатъка от реда така, че да стане същия като
     долния ред. След това натиснете <ESC>.

---> Краят на този ред трябва да изглежда като долния.
---> Краят на този ред трябва да бъде поправен с командата c$.

Забележка! Можете да използвате клавиша Backspace за поправка на грешки, докато въвеждате.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Урок 3 ОБОБЩЕНИЕ


  1. За да поставите изтрит преди това отнякъде текст, въведете  p  .
     Това поставя изтрития текст СЛЕД мястото, на което се намира показалеца. 
     Ако сте изтрили преди това цял ред, той ще бъде поставен като следващ ред.

  2. За да заместите буква, намираща се под показалеца, въведете  r  и след
     това буквата, с която искате да заместите.

  3. Операторът за промяна ви позволява да променяте текста от мястото на
     показалеца до мястото, указано от съответното движение. Например, въведете
     ce за да изтриете от мястото на показалеца до края на думата, или,
     въведете  c$ ,за да замените с нов текст до края на реда.

  4. Форматът на оператора за промяна е:

	 c   [число]   движение

Сега отидете на следващия урок.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Урок 4.1: МЕСТОПОЛОЖЕНИЕ НА ПОКАЗАЛЕЦА И СЪСТОЯНИЕ НА ФАЙЛА

  ** Въведете CTRL-G, за да видите къде се намирате във файла и неговото
     състояние. Въведете  G  , за да отидете на някой ред. **

Внимание! Прочетете целия урок, преди да изпълните стъпките в него!

  1. Задръжте натиснат клавиша Ctrl и натиснете  g .  Това действие го наричаме
     CTRL-G. В дъното на екрана ще се появи съобщение с името на файла и
     мястото, където се намира показалеца. Запомнете номера на реда за стъпка 3.

Забележка: Може би виждате мястото на показалеца в долния десен ъгъл на екрана.
Това се случва, когато настройката 'ruler' е зададена (вижте :help 'ruler'  )

  2. Натиснете  G  , за да отидете в края на файла.
     Въведете  gg  , за да отидете в началото на файла.

  3. Въведете номера на реда, на който бяхте и след това натиснете G . Това ще
     ви върне на мястото където бяхте, когато натиснахте CTRL-G.

  4. Ако вече се чувствате уверени, изпълнете стъпките от 1 до 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 4.2: КОМАНДАТА ЗА ТЪРСЕНЕ


     ** Въведете  /  , последвана от фраза, за да потърсите  фразата. **

  1. В Нормален режим въведете знака  / .  Забележете, че / (наклонената
     черта) и показалецът се появяват в дъното на екрана, както се случва при
     използването на командата  : .

  2. Сега въведете 'грешшшка' <ENTER>. Това е думата, която ще търсите.

  3. За да търсите същата дума отново, натиснете n .
     За да търсите същата дума отново, но в обратната посока, натиснете N .

  4.  За да търсите за фраза в обратната посока използвайте ? вместо / .

  5. За да се  върнете, там където сте били, натиснете  CTRL-O  (задръжте Ctrl
     натиснат докато натискате клавиша o).  Повторете, за да отидете още
     по-назад.  С CTRL-I пък отивате напред.

--->  "грешшшка" се се пише "грешка"  грешшшка е грешка.
Внимание! Когато търсенето достигне до края на файла, то ще продължи от
началото на файла, освен ако настройката 'wrapscan' е била нулирана.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Урок 4.3: ТЪРСЕНЕ НА СЪОТВЕТСТВАЩИ СКОБИ


	      ** Въведете  %  , за да на мерите съответната  ),], или } . **

  1. Поставете показалеца върху някоя скоба (, [, или {  в реда долу, означен със --->.

  2. Сега Въведете символа  % .

  3. Показалецът ще се премести върху съответстващата фигурна, квадратна или
     обикновена скоба.

  4. Въведете  %  , за да преместите показалеца на другата съответстваща скоба.

  5. Придвижете показалеца до друга (,),[,],{ или } скоба и вижте какво прави % .

---> Това ( е ред за проверка с различни скоби като  (, [  ] и {  } в него. ))


Забележка! Това е много полезно при откриване на грешки в програми с несъответстващи скоби.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 4.4: КОМАНДАТА ЗА ЗАМЕСТВАНЕ (SUBSTITUTE)


	** Въведете  :s/старо/ново/g   за да заместите  'старо' със 'ново'. **

  1. Придвижете показалеца до реда долу, означен със --->.

  2. Въведете  :s/тоо/то <ENTER> . Забележете, че командата замества само
     първото съвпадение с "тоо" на реда.

  3. Сега въведете :s/тоо/то/g .  Като добавите знака g (globally) това
     означава, че искате да се заместят всички съвпадения, навсякъде в реда.

---> Най-добротоо време да сте на полетоо е лятотоо.

  4. За да заместите всяко съвпадение на дадена последователност от символи
     между два реда:
     Въведете   :#,#s/old/new/g  където #,#  са числата на редовете
                                 (първи и последен), обхватът, в който искате да
                                 стане заместването.
     Въведете   :%s/old/new/g    за да промените всяко съвпадение в целия файл.
     Въведете   :%s/old/new/gc   да бъдете питани при всяко съвпадение, дали
                                 да се замести или не.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Урок 4 ОБОБЩЕНИЕ


  1. CTRL-G  показва къде се намирате във файл и състоянието му.
             G  ви отвежда до края на файла.
     число   G  ви отвежда до съответния ред.
            gg  ви отвежда до първия ред.

  2. Ако натиснете  /  , последвана от низ за търсене, търсите НАПРЕД.
     Ако натиснете  /  , последвана от низ за търсене, търсите НАЗАД.
     След търсене, въведете  n  , за да намерите следващо съвпадение с низа,
     който търсите в същата посока, в която търсите или  N  , за да търсите в
     обратната посока.
     CTRL-O ви отвежда назад до старо място във файла, CTRL-I обратно до
     по-нови места.

  3. Ако натиснете  %  докато показалеца се намира на (,),[,],{, или }, той
     отива до съответстващата скоба.

  4. За да заместите един низ с друг, въведете                      :s/низ/друг
     За да заместите един низ с друг навсякъде в един ред, въведете :s/низ/друг/g
     За да заместите в даден обхват от редове, въведете             :#,#s/низ/друг/g
     За да заместите всички съвпадения във файл, въведете           :%s/низ/друг/g
     За да бъдете питани при всяко съвпадение, добавете  'c'        :%s/низ/друг/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Урок 5.1: КАК ДА ИЗПЪЛНИМ ВЪНШНА КОМАНДА


   ** Въведете  :!	, последвано от външна команда, за да я изпълните. **

  1. Въведете познатото ви вече  :  , за да поставите показалеца в дъното на
     екрана. Това ви позволява да въвеждате команда.

  2. Сега въведете !  (удивителен знак). Това ви позволява да изпълнявате
     всякакви външни команди.

  3. Например, след  !  въведете  ls  и след това натиснете  <ENTER>. Това ще
     ви покаже списък с файловете и папките точно както ако сте в терминал.
     Напишете :!dir ако  ls не работи.

Забележка: По този начин можете да изпълнявате всякакви външни команди и с аргументи.

Забележка: Всички команди, започващи с  :  завършват с натискането на  <ENTER>
           От сега нататък няма да го споменаваме постоянно.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 5.2: ПОВЕЧЕ ЗА ЗАПИСВАНЕТО НА ФАЙЛОВЕ


     ** За да запишете промените, направени в текста въведете  :w ИМЕНАФАЙЛ. **

  1. Въведете  :!dir  или  :!ls  за да видите списък със съдържанието на
     текущата папка. Вече знаете, че трябва да натиснете <ENTER> след това.

  2. Изберете име на файла, което не съществува, например TEST.

  3. Сега въведете	 :w TEST   (където TEST  е името на файла).

  4. Това записва целия файл (Самоучителя за Vim) под името TEST.
     За да проверите, напишете  :!dir или  :!ls  отново и вижте съдържанието
     на вашата папка.

Забележете! Ако излезете от Vim и го пуснете отново, като напишете на командния
            ред  vim TEST , файлът ще бъде точно копие на самоучителя, когато
            сте го записали.

  5.  Сега изтрийте файла като напишете (в MS-DOS):    :!del TEST
				или (в какъвто и да е Unix) :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Урок 5.3: ИЗБОР НА ТЕКСТ ЗА ЗАПИС


	** За да запишете част от файла, натиснете  v  , следвано от движение  :w FILENAME **

  1. Придвижете показалеца на този ред.

  2. Натиснете  v  и придвижете показалеца пет реда надолу. Забележете, че
     текстът се осветява.

  3. Натиснете : . В дъното на екрана ще се появи  :'<,'> .

  4. Напишете w TEST  , където TEST е име на файл, който все още не съществува.
     Уверете се, че виждате  :'<,'>w TEST  преди да натиснете <ENTER>.

  5. Vim ще запише избраните редове във файла TEST.  Използвайте  :!dir  или  :!ls ,
     за да го видите.  Не го изтривайте все още! Ще го използваме в следващия урок.

Забележете! Като натиснете  v  , започвате видимо избиране (Visual selection).  
            Може да движите показалеца наоколо, за да направите избраното
            по-голямо или по-малко. След което, можете да използвате оператор,
            за да направите нещо с текста. Например,  d  изтрива текста.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Урок 5.4: ИЗВЛИЧАНЕ И СЛИВАНЕ НА ФАЙЛОВЕ


       ** За да вмъкнете съдържание на файл в текущия, въведете  :r ИМЕНАФАЙЛ  **

  1. Поставете показалеца над този ред.

Важно! След като изпълните стъпка 2, ще видите текста от Урок 5.3. След това
       отидете НАДОЛУ, за да видите този урок отново. 

  2. Сега извлечете файла TEST, като използвате командата :r TEST  , където TEST
     е името на файла, което сте използвали. Файла, който извлекохте е вмъкнат
     под реда, на който се намира показалеца.

  3. За да проверите, че файла е извлечен, отидете назад и ще забележите, че
     има два урока 5.3 - оригинала и копието от извлечения файл.

Важно! Също така можете да четете изхода от външна команда.
       :r !ls  прочита показаното от ls и го поставя под показалеца.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Урок 5 ОБОБЩЕНИЕ


  1.  :!команда  изпълнява външна команда.

      Някои полезни примери са:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls	 -  показва съдържанието на директорията, в която
                            се намирате.
	  :!del FILENAME   :!rm FILENAME   -  изтрива файла FILENAME.

  2.  :w FILENAME  записва текущия файл под името FILENAME.

  3.  v  движение :w FILENAME  записва видимо избраните редове във файл с име
      FILENAME.

  4.  :r FILENAME  извлича съдържанието на файла с име FILENAME и го вмъква под
      мястото, където се намира показалеца

  5.  :r !dir  чете изхода на командата dir и  го поставя под мястото, на
      което се намира показалеца.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Урок 6.1: КОМАНДАТА ЗА ОТВАРЯНЕ (OPEN)


     ** Натиснете  o  , за да отворите ред под показалеца и да преминете в
        режим за въвеждане. **

  1. Придвижете показалеца до реда долу, означен със --->.

  2. Натиснете клавиша o , за да отворите нов ред ПОД показалеца и да преминете
     в режим за въвеждане.

  3. Сега въведете някакъв текст и натиснете <ESC> , за да излезете от режима
     за въвеждане.

---> След като натиснете  o  , показалеца отива на новоотворения ред и
     преминавате в режим за въвеждане.

  4. За да отворите нов ред НАД показалеца, просто въведете главно O вместо
     малко. Пробвайте това на долния ред.

---> Отворете нов ред над този, като натиснете  O  , докато показалеца е на
     този ред.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 6.2: КОМАНДАТА ЗА ДОБАВЯНЕ (APPEND)


	     ** Натиснете  a  , за да въведете текст СЛЕД показалеца. **

  1. Придвижете показалеца до началото на реда долу, означен със --->.
  
  2. Натискайте  e  , докато показалеца отиде до края на ре .

  3. Натиснете  a  (малка буква), за да добавите текст СЛЕД показалеца.

  4. Допълнете думата както е на следващия ред. Натиснете <ESC> , за да
     излезете от режима за въвеждане.

  5. Използвайте  e  , за да се придвижите до следващата непълна дума и
     повторете стъпки 3 и 4.
  
---> Този ре ви позволява да упраж  добав на тек в ред.
---> Този ред ви позволява да упражнявате добавяне на текст в ред.

Важно! a, i и A - с всички тях отивате в режим за въвеждане. Единствената
       разлика е в това, къде се въвеждат знаците.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Урок 6.3: ДРУГ НАЧИН ЗА ЗАМЕСТВАНЕ


      ** Натиснете главно  R  ,  за да заместите повече от един знак. **

  1. Придвижете показалеца до първия ред долу означен със --->.  Придвижете
     показалеца до началото на първото xxx.

  2. Сега натиснете  R  и въведете числото от долния ред, така че да замести xxx . 

  3. Натиснете <ESC> , за да излезете от режима за заместване. Забележете, че
     остатъка от реда остава непроменен. 

  4. Повторете стъпките, за да заместите другото xxx.

---> Ако добавите 123 към xxx ще получите xxx.
---> Ако добавите 123 към 456 ще получите 579.

Важно! Режимът за заместване е същия като режима за въвеждане, но всеки въведен
       знак изтрива съществуващ знак.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Урок 6.4: КОПИРАНЕ И ЗАМЕСТВАНЕ


	  ** Използвайте операторът y (yank),  за да  копирате текст и p (paste),
         за да го поставите. **

  1. Отидете до реда, означен със ---> долу и поставете показалеца след "a)".
  
  2. Преминете във режим за видимо избиране като използвате v и преместете
     показалеца точно пред "първата".
  
  3. Натиснете  y  , за да копирате (yank) осветения текст.

  4. Преместете показалеца на края на следващия ред с  j$

  5. Натиснете  p ,за да поставите (paste) текста. След това натиснете пак <ESC> .

  6. Използвайте режима за видимо избиране, за да изберете " точка.", вземете
     го с y , отидете на края на следващия ред с j$ и поставете текста с p .

--->  a) това е първата точка.
      b)

  Важно! Можете да използвате  y също и като оператор.  yw  взима цяла дума.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Урок 6.5: ЗАДАВАНЕ НА НАСТРОЙКА


	  ** Задайте настройка, та при търсене и заместване, да не се различават
         големи и малки букви. **

  1. Търсете 'разли' като въведете   /разли  <ENTER>
     Повторете няколко пъти като натискате  n .

  2. Задайте настройката 'ic' (Ignore case) като въведете  :set ic

  3.Сега търсете 'разли' отново като натискате  n .
    Забележете, че сега Разлика и РАЗЛИКА също биват намерени.

  4. Задайте настройките 'hlsearch' (highlight search) 
     и 'incsearch' (incremental search):  :set hls is
     Тези настройки означават съответно "осветяване на намереното" 
     и "частично търсене".

  5. Сега въведете отново командата за търсене и вижте какво се случва:
     /разли <ENTER>

  6. За да изключите нечувствителното към регистъра на буквите търсене, въведете
  :set noic

Забележка! За да премахнете осветяването, въведете   :nohlsearch 
Забележка! Ако искате да не се прави разлика между главни и малки букви само
           при едно търсене, въведете  \c (латинско ц) в края на низа, който
           търсите: /разлика\c  <ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Урок 6 ОБОБЩЕНИЕ

  1. Натиснете  o , за да отворите нов ред ПОД показалеца и да преминете в
     режим за въвеждане.
     Натиснете  O , за да отворите ред НАД показалеца.

  2. Натиснете  a  , за да въведете текст СЛЕД показалеца.
     Натиснете  A  , за да въведете текст след края на реда.

  3. Командата e  ви отвежда в края на дума.

  4. Операторът  y  взима (yank) текст, а  p  го поставя (paste).

  5. Ако въведете  R  , докато сте в нормален режим, преминавате в режим за
     заместване, докато натиснете <ESC>.

  6. Ако напишете ":set xxx", задавате настройката "xxx".  Ето някои настройки:
  	'ic' 'ignorecase'	Търсенето не прави разлика между главни и малки букви
	'is' 'incsearch'	Показва частични съвпадения на търсеното
	'hls' 'hlsearch'	Осветява всички намерени съвпадения
     Можете да ползвате кратките или дългите наименувания на настройките

  7. Поставете "no" отпред за да изключите настройка:   :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Урок 7.1: КАК ДА НАМЕРИМ ПОМОЩ


		      ** Ползвайте наличната система за помощ **
  
  Vim върви с изчерпателна система за помощ. За да започнете, опитайте някоя от
  следните три възможности:
	- натиснете клавиша <HELP> (ако имате такъв на клавиатурата си)
	- натиснете клавиша <F1> (ако имате такъв на клавиатурата си)
	- напишете   :help <ENTER>

  Прочетете текста в прозореца за помощ, за да разберете как работи системата.
  Натиснете CTRL-W CTRL-W (два пъти CTRL-W), за да прескочите от един прозорец в друг.
  Въведете    :q <ENTER>  , за да затворите прозореца за помощ. 

  Можете да намерите помощ по всякакъв въпрос, като напишете
  ":help" именакоманда.  Опитайте следните (не забравяйте да натискате <ENTER>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Урок 7.2: СЪЗДАЙТЕ СКРИПТ ЗА СТАРТИРАНЕ


			  ** Включване на възможностите на Vim **

  Vim има много повече възможности от Vi, но по подразбиране повечето от тях не
  са включени. За да започнете да ползвате тези възможности, трябва да
  създадете файл, наречен "vimrc".

  1. Създайте вашия файл "vimrc". В зависимост от вашата операционна система:
	:e ~/.vimrc		за всеки вид Unix
	:e $VIM/_vimrc	за MS-Windows

  2. Сега прочетете съдържанието на примерния файл "vimrc":
	:r $VIMRUNTIME/vimrc_example.vim

  3. Запишете файла с:
	:w

  Следващият път като пуснете Vim той ще осветява текста във файловете, които
  отваряте в зависимост от синтаксиса им. Можете да добавите всичките си
  предпочитани настройки в този файл. За повече информация, въведете  
  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     Урок 7.3: ДОВЪРШВАНЕ


	      ** Довършване на команди с CTRL-D и <TAB> **

  1. Уверете се, че Vim е в несъвместим режим:  :set nocp

  2. Вижте какви файлове има в папката ви:  :!ls   или  :!dir

  3. Въведете началото на команда:  :e

  4. Натиснете  CTRL-D  и Vim ще ви покаже команди, започващи с "e".

  5. Натиснете <TAB>  и Vim ще допълни командата до ":edit".

  6. Сега добавете празно пространство и началото на името на съществуващ файл:
     :edit FIL

  7. Натиснете <TAB>.  Vim ще допълни името (ако е единствено).

Важно! Допълването работи за много команди. Просто натиснете CTRL-D и/или 
       <TAB>.  Особено полезно е при намиране на помощ  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Урок 7 ОБОБЩЕНИЕ


  1. Напишете  :help  или натиснете <F1> или <Help>  за да отворите помощния
     прозорец.

  2. Напишете  :help cmd  , за да намерите помощ за  cmd .

  3. Натиснете  CTRL-W CTRL-W  , за да прескочите в друг прозорец.
  4. Напишете  :q  , за да затворите помощния прозорец.

  5. Създайте файл за стартиране vimrc, за да запазите предпочитаните от вас
     настройки.

  6. Когато въвеждате команда след  :  , натиснете CTRL-D , за да видите
     възможностите за допълване. Натиснете  <TAB> , за да използвате някоя от
     предложените възможности за допълване.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  С това завършва Самоучителят на Vim. Той бе предназначен да даде кратък
  преглед на текстовия редактор Vim. Съвсем достатъчно, за да можете да
  ползвате редактора лесно. Самоучителят е доста непълен, понеже Vim има много
  повече команди. Сега прочете наръчника за потребителя: ":help user-manual".

  Препоръчваме следната книга за по-нататъшно четене:
	Vim - Vi Improved - от Steve Oualline
	Издател: New Riders
  Това е първата книга, изцяло посветена на Vim. Особено полезна е за
  начинаещи. В нея ще намерите много примери и картинки.
  Вижте http://iccf-holland.org/click5.html

  Следната книга е по-стара и по-скоро за Vi отколкото за Vim, но също се препоръчва:
	Learning the Vi Editor - от Linda Lamb
  Издател: O'Reilly & Associates Inc.
  Това е книга, която ще ви запознае с почти всичко във Vi.
  Шестото издание включва и информация за Vim.

  Този самоучител е написан от Michael C. Pierce и Robert K. Ware,
  Colorado School of Mines, като използва идеи предоставени от Charles Smith,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Променен за Vim от Bram Moolenaar.

  Превод от Красимир Беров <berov@cpan.org>, юли 2016.
  Този превод е подарък за сина ми Павел и е посветен на българските деца.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PK�j�Z��-�77vim80/tutor/README.el.txtnu�[����� Tutor ����� ��� "������������" ��������� ��� ���� ������� ��
������� Vim.

�� ����������� ���� ������� ������ �� �� �������� �� ������� ��
��� ���. �� ���������� ����� ��� �������� �� ������ ��� ���� �������
������������ ������� �������������� ��� ������� Vim.

�� Tutor ����� ��� ����� �� ������� �� �������� ��� ������������.
�������� �� ���������� ���� "vim tutor" ��� ���� �� ����������� ���
������� ��� ��������. �� �������� �� ��� ���� �� �������������
�� �����, ������� ��� �� ����� ��� ��������� �������� ��.

�� ������ Unix �������� ������ �� ��������������� �� �������� "vimtutor".
�� ����������� ���� ��� ������ �������� �� tutor.

��� ������ �� ������� ���������� ��������� �������� ���� ��� �� ����
��� ���������� ����. ��������� �� ������� �� �� �� ������ ��� ��������
�� ������������ ��������� ������.

Bob Ware, Colorado School of Mines, Golden, Co 80401, USA
(303) 273-3987
bware@mines.colorado.edu bware@slate.mines.colorado.edu bware@mines.bitnet

[�� ����� �� ������������� ��� ��� Vim �� ��� Bram Moolenaar]
PK�j�Z>���{�{�vim80/tutor/tutor.plnu�[���===============================================================================
=    W i t a j   w   t u t o r i a l u   V I M - a      -    Wersja  1.7.     =
===============================================================================

     Vim to potężny edytor, który posiada wiele poleceń, zbyt dużo, by
     wyjaśnić je wszystkie w tym tutorialu. Ten przewodnik ma nauczyć
     Cię posługiwać się wystarczająco wieloma komendami, byś mógł łatwo
     używać Vima jako edytora ogólnego przeznaczenia.

     Czas potrzebny na ukończenie tutoriala to 25 do 30 minut i zależy
     od tego jak wiele czasu spędzisz na eksperymentowaniu.

	 UWAGA:
	 Polecenia wykonywane w czasie lekcji zmodyfikują tekst. Zrób
	 wcześniej kopię tego pliku do ćwiczeń (jeśli zacząłeś komendą
	 "vimtutor", to już pracujesz na kopii).

	 Pamiętaj, że przewodnik ten został zaprojektowany do nauki poprzez
	 ćwiczenia. Oznacza to, że musisz wykonywać polecenia, by nauczyć się ich
	 prawidłowo. Jeśli będziesz jedynie czytał tekst, szybko zapomnisz wiele
	 poleceń!

     Teraz upewnij się, że nie masz wciśniętego Caps Locka i wciskaj  j
     tak długo dopóki Lekcja 1.1. nie wypełni całkowicie ekranu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 1.1.: PORUSZANIE SIĘ KURSOREM

       ** By wykonać ruch kursorem, wciśnij h, j, k, l jak pokazano. **

	       ^
	       k		      Wskazówka:  h jest po lewej
	  < h	  l >				  l jest po prawej
	       j				  j wygląda jak strzałka w dół
	       v
  1. Poruszaj kursorem dopóki nie będziesz pewien, że pamiętasz polecenia.

  2. Trzymaj  j  tak długo aż będzie się powtarzał.
     Teraz wiesz jak dojść do następnej lekcji.

  3. Używając strzałki w dół przejdź do następnej lekcji.

Uwaga: Jeśli nie jesteś pewien czegoś co wpisałeś, wciśnij <ESC>, by wrócić do
       trybu Normal. Wtedy powtórz polecenie.

Uwaga: Klawisze kursora także powinny działać, ale używając  hjkl  będziesz
       w stanie poruszać się o wiele szybciej, jak się tylko przyzwyczaisz.
       Naprawdę!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 1.2.: WYCHODZENIE Z VIM-a

 !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj całą lekcję !!

  1. Wciśnij <ESC> (aby upewnić się, że jesteś w trybie Normal).
  2. Wpisz:			:q!<ENTER>.
     To spowoduje wyjście z edytora PORZUCAJĄC wszelkie zmiany, jakie
     zdążyłeś zrobić. Jeśli chcesz zapamiętać zmiany i wyjść,
     wpisz:			:wq<ENTER>

  3. Kiedy widzisz znak zachęty powłoki wpisz komendę, żeby wrócić
     do tutoriala. Czyli:	vimtutor<ENTER>

  4. Jeśli chcesz zapamiętać polecenia, wykonaj kroki 1. do 3., aby
     wyjść i wrócić do edytora.

UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobiłeś. W następnych
       lekcjach dowiesz się jak je zapamiętywać.

  5. Przenieś kursor do lekcji 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE

	    ** Wciśnij  x  aby usunąć znak pod kursorem. **

  1. Przenieś kursor do linii poniżej oznaczonej --->.

  2. By poprawić błędy, naprowadź kursor na znak do usunięcia.

  3. Wciśnij  x  aby usunąć niechciany znak.

  4. Powtarzaj kroki 2. do 4. dopóki zdanie nie jest poprawne.

---> Kkrowa prrzeskoczyła prrzez ksiiężycc.

  5. Teraz, kiedy zdanie jest poprawione, przejdź do Lekcji 1.4.

UWAGA: Ucz się przez ćwiczenie, nie wkuwanie.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)


		  ** Wciśnij  i  aby wstawić tekst. **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.

  2. Aby poprawić pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym,
     gdzie tekst ma być wstawiony.

  3. Wciśnij  i  a następnie wpisz konieczne poprawki.

  4. Po poprawieniu błędu wciśnij <ESC>, by wrócić do trybu Normal.
     Powtarzaj kroki 2. do 4., aby poprawić całe zdanie.

---> W tej brkje trochę .
---> W tej linii brakuje trochę tekstu.

  5. Kiedy czujesz się swobodnie wstawiając tekst, przejdź do
     podsumowania poniżej.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lekcja 1.5.: EDYCJA TEKSTU - APPENDING (dodawanie)


		   ** Wciśnij  A  by dodać tekst. **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.
     Nie ma znaczenia, który to będzie znak.

  2. Wciśnij  A  i wpisz odpowiednie dodatki.

  3. Kiedy tekst został dodany, wciśnij <ESC> i wróć do trybu Normalnego.

  4. Przenieś kursor do drugiej linii oznaczonej ---> i powtórz kroki 2. i 3.,
     aby poprawić zdanie.

---> Brakuje tu tro
     Brakuje tu trochę tekstu.
---> Tu też trochę bra
     Tu też trochę brakuje.

  5. Kiedy już utrwaliłeś ćwiczenie, przejdź do lekcji 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekcja 1.6.: EDYCJA PLIKU

		  ** Użyj  :wq  aby zapisać plik i wyjść. **

   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczytaj całą lekcję !!

  1. Zakończ tutorial tak jak w lekcji 1.2.:  :q!
     lub, jeśli masz dostęp do innego terminala, wykonaj kolejne kroki tam.

  2. W powłoce wydaj polecenie:  vim tutor<ENTER>
     "vim" jest poleceniem uruchamiającym edytor Vim. 'tutor' to nazwa pliku,
     jaki chcesz edytować. Użyj pliku, który może zostać zmieniony.

  3. Dodaj i usuń tekst tak, jak się nauczyłeś w poprzednich lekcjach.

  4. Zapisz plik ze zmianami i opuść Vima:  :wq<ENTER>

  5. Jeśli zakończyłeś vimtutor w kroku 1., uruchom go ponownie i przejdź
     do podsumowania poniżej.

  6. Po przeczytaniu wszystkich kroków i ich zrozumieniu: wykonaj je.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 1. PODSUMOWANIE

  1. Poruszasz kursorem używając "strzałek" i klawiszy  hjkl .
       h (w lewo)	 j (w dół)	 k (do góry)		l (w prawo)

  2. By wejść do Vima, (z powłoki) wpisz:
			    vim NAZWA_PLIKU<ENTER>

  3. By wyjść z Vima, wpisz:
			    <ESC> :q!<ENTER>  by usunąć wszystkie zmiany.
	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachować.

  4. By usunąć znak pod kursorem, wciśnij:  x

  5. By wstawić tekst przed kursorem lub dodać:
	i   wpisz tekst   <ESC>         wstawi przed kursorem
	A   wpisz tekst   <ESC>         doda na końcu linii

UWAGA: Wciśnięcie <ESC> przeniesie Cię z powrotem do trybu Normal
       lub odwoła niechciane lub częściowo wprowadzone polecenia.

Teraz możemy kontynuować i przejść do Lekcji 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 2.1.: POLECENIE DELETE (usuwanie)


		      ** Wpisz  dw  by usunąć wyraz. **

  1. Wciśnij  <ESC>, by upewnić się, że jesteś w trybie Normal.

  2. Przenieś kursor do linii poniżej oznaczonej --->.

  3. Przesuń kursor na początek wyrazu, który chcesz usunąć.

  4. Wpisz   dw   by usunąć wyraz.

  UWAGA: Litera  d  pojawi się na dole ekranu. Vim czeka na wpisanie  w .
	 Jeśli zobaczysz inny znak, oznacza to, że wpisałeś coś źle; wciśnij
	 <ESC> i zacznij od początku.

---> Jest tu parę papier wyrazów, które kamień nie należą do nożyce tego zdania.

  5. Powtarzaj kroki 3. i 4. dopóki zdanie nie będzie poprawne, potem
  przejdź do Lekcji 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 2.2.: WIĘCEJ POLECEŃ USUWAJĄCYCH


	      ** Wpisz	d$  aby usunąć tekst do końca linii. **

  1. Wciśnij  <ESC>  aby się upewnić, że jesteś w trybie Normal.

  2. Przenieś kursor do linii poniżej oznaczonej --->.

  3. Przenieś kursor do końca poprawnego zdania (PO pierwszej  . ).

  4. Wpisz  d$  aby usunąć resztę linii.

---> Ktoś wpisał koniec tego zdania dwukrotnie. zdania dwukrotnie.


  5. Przejdź do Lekcji 2.3., by zrozumieć co się stało.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 2.3.: O OPERATORACH I RUCHACH


  Wiele poleceń zmieniających tekst jest złożonych z operatora i ruchu.
  Format dla polecenia usuwającego z operatorem  d  jest następujący:

	    d  ruch

  gdzie:
   d      - operator usuwania.
   ruch   - na czym polecenie będzie wykonywane (lista poniżej).

  Krótka lista ruchów:
    w - do początku następnego wyrazu WYŁĄCZAJĄC pierwszy znak.
    e - do końca bieżącego wyrazu, WŁĄCZAJĄC ostatni znak.
    $ - do końca linii, WŁĄCZAJĄC ostatni znak.

W ten sposób wpisanie  de  usunie znaki od kursora do końca wyrazu.

UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
       tak, jak to określono.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 2.4.: UŻYCIE MNOŻNIKA DLA RUCHU


   ** Wpisanie liczby przed ruchem powtarza ruch odpowiednią ilość razy. **

  1. Przenieś kursor na początek linii poniżej zaznaczonej --->.

  2. Wpisz  2w  aby przenieść kursor o dwa wyrazy do przodu.

  3. Wpisz  3e  aby przenieść kursor do końca trzeciego wyrazu w przód.

  4. Wpisz  0  (zero), aby przenieść kursor na początek linii.

  5. Powtórz kroki 2. i 3. z innymi liczbami.


 ---> To jest zwykły wiersz z wyrazami, po których możesz się poruszać.

  6. Przejdź do lekcji 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcja 2.5.: UŻYCIE MNOŻNIKA, BY WIĘCEJ USUNĄĆ


    ** Wpisanie liczby z operatorem powtarza go odpowiednią ilość razy. **

  W wyżej wspomnianej kombinacji operatora usuwania i ruchu podaj mnożnik
  przed ruchem, by więcej usunąć:
	d  liczba  ruch

  1. Przenieś kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.

  2. Wpisz  2dw  aby usunąć dwa wyrazy KAPITALIKAMI.

  3. Powtarzaj kroki 1. i 2. z innymi mnożnikami, aby usunąć kolejne wyrazy
     KAPITALIKAMI jednym poleceniem

---> ta ASD WE linia QWE ASDF ZXCV FG wyrazów została ERT FGH CF oczyszczona.

UWAGA:  Mnożnik pomiędzy operatorem  d  i ruchem działa podobnie do ruchu bez
        operatora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 2.6.: OPEROWANIE NA LINIACH


		   ** Wpisz  dd  aby usunąć całą linię. **

  Z powodu częstości usuwania całych linii, projektanci Vi zdecydowali, że
  będzie łatwiej wpisać dwa razy  d  aby usunąć linię.

  1. Przenieś kursor do drugiego zdania z wierszyka poniżej.
  2. Wpisz  dd  aby usunąć wiersz.
  3. Teraz przenieś się do czwartego wiersza.
  4. Wpisz  2dd  aby usunąć dwa wiersze.

--->  1)  Róże są czerwone,
--->  2)  Błoto jest fajne,
--->  3)  Fiołki są niebieskie,
--->  4)  Mam samochód,
--->  5)  Zegar podaje czas,
--->  6)  Cukier jest słodki,
--->  7)  I ty też.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 2.7.: POLECENIE UNDO (cofnij)


	  ** Wciśnij  u  aby cofnąć skutki ostatniego polecenia.
		 U zaś, by cofnąć skutki dla całej linii. **

  1. Przenieś kursor do zdania poniżej oznaczonego ---> i umieść go na
     pierwszym błędzie.
  2. Wpisz  x  aby usunąć pierwszy niechciany znak.
  3. Teraz wciśnij  u  aby cofnąć skutki ostatniego polecenia.
  4. Tym razem popraw wszystkie błędy w linii używając polecenia  x .
  5. Teraz wciśnij wielkie  U  aby przywrócić linię do oryginalnego stanu.
  6. Teraz wciśnij  u  kilka razy, by cofnąć  U  i poprzednie polecenia.
  7. Teraz wpisz CTRL-R (trzymaj równocześnie wciśnięte klawisze CTRL i R)
     kilka razy, by cofnąć cofnięcia.

---> Poopraw błędyyy w teej liniii i zaamiień je prrzez coofnij.

  8. To są bardzo pożyteczne polecenia.

     Przejdź teraz do podsumowania Lekcji 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 2. PODSUMOWANIE


  1. By usunąć znaki od kursora do następnego wyrazu, wpisz:   dw
  2. By usunąć znaki od kursora do końca linii, wpisz:    d$
  3. By usunąć całą linię:    dd
  4. By powtórzyć ruch, poprzedź go liczbą:    2w
  5. Format polecenia zmiany to:
                operator  [liczba]  ruch
  gdzie:
   operator  - to, co trzeba zrobić (np.  d  dla usuwania)
   [liczba]  - opcjonalne, ile razy powtórzyć ruch
   ruch      - przenosi nad tekstem do operowania, takim jak  w (wyraz),
	       $  (do końca linii) etc.

  6. By przejść do początku linii, użyj zera:  0
  7. By cofnąć poprzednie polecenie, wpisz:	  u  (małe u)
     By cofnąć wszystkie zmiany w linii, wpisz:	  U  (wielkie U)
     By cofnąć cofnięcie, wpisz:			  CTRL-R



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 3.1.: POLECENIE PUT (wstaw)


	  ** Wpisz  p  by wstawić ostatnie usunięcia za kursorem. **

  1. Przenieś kursor do pierwszej linii ---> poniżej.

  2. Wpisz  dd  aby usunąć linię i przechować ją w rejestrze Vima.

  3. Przenieś kursor do linii c), POWYŻEJ tej, gdzie usunięta linia powinna
     się znajdować.

  4. Wciśnij  p  by wstawić linię poniżej kursora.

  5. Powtarzaj kroki 2. do 4. aż znajdą się w odpowiednim porządku.

---> d) Jak dwa aniołki.
---> b) Na dole fiołki,
---> c) A my się kochamy,
---> a) Na górze róże,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 3.2.: POLECENIE REPLACE (zastąp)


	   ** Wpisz  rx  aby zastąpić znak pod kursorem na  x . **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->

  2. Ustaw kursor na pierwszym błędzie.

  3. Wpisz  r  a potem znak jaki powinien go zastąpić.

  4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie będzie taka, jak druga.

--->  Kjedy ten wiersz bił wstókiwany, ktoś wciznął perę złych klawirzy!
--->  Kiedy ten wiersz był wstukiwany, ktoś wcisnął parę złych klawiszy!

  5. Teraz czas na Lekcję 3.3.


UWAGA: Pamiętaj, by uczyć się ćwicząc, a nie pamięciowo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 3.3.: OPERATOR CHANGE (zmień)

		 ** By zmienić do końca wyrazu, wpisz  ce . **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.

  2. Umieść kursor na  u  w lunos.

  3. Wpisz  ce  i popraw wyraz (w tym wypadku wstaw  inia ).

  4. Wciśnij <ESC> i przejdź do następnej planowanej zmiany.

  5. Powtarzaj kroki 3. i 4. dopóki pierwsze zdanie nie będzie takie same,
     jak drugie.

---> Ta lunos ma pire słów, które tżina zbnic użifajonc pcmazu zmień.
---> Ta linia ma parę słów, które trzeba zmienić używając polecenia zmień.

  Zauważ, że  ce  nie tylko zamienia wyraz, ale także zmienia tryb na
  Insert (wprowadzanie).


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 3.4.: WIĘCEJ ZMIAN UŻYWAJĄC c


	** Polecenie change używa takich samych ruchów, jak delete. **

  1. Operator change działa tak samo, jak delete. Format wygląda tak:

	    c   [liczba]   ruch

  2. Ruchy są także takie same, np.:  w  (wyraz),  $  (koniec linii) etc.

  3. Przenieś się do pierwszej linii poniżej oznaczonej --->

  4. Ustaw kursor na pierwszym błędzie.

  5. Wpisz  c$ , popraw koniec wiersza i wciśnij <ESC>.

---> Koniec tego wiersza musi być poprawiony, aby wyglądał tak, jak drugi.
---> Koniec tego wiersza musi być poprawiony używając polecenia  c$ .

UWAGA:  Możesz używać <BS> aby poprawiać błędy w czasie pisania.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 3. PODSUMOWANIE


  1. Aby wstawić tekst, który został wcześniej usunięty wciśnij  p . To
     polecenie wstawia skasowany tekst PO kursorze (jeśli cała linia
     została usunięta, zostanie ona umieszczona w linii poniżej kursora).

  2. By zamienić znak pod kursorem, wciśnij  r  a potem znak, który ma zastąpić
     oryginalny.

  3. Operator change pozwala Ci na zastąpienie od kursora do miejsca, gdzie
     zabrałby Cię ruch. Np. wpisz  ce  aby zamienić tekst od kursora do końca
     wyrazu,  c$  aby zmienić tekst do końca linii.

  4. Format do polecenia change (zmień):

	c   [liczba]   obiekt

     Teraz przejdź do następnej lekcji.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lekcja 4.1.: POŁOŻENIE KURSORA ORAZ STATUS PLIKU

       ** Naciśnij CTRL-G aby zobaczyć swoje położenie w pliku i status
	  pliku. Naciśnij  G  aby przejść do linii w pliku. **

  UWAGA: Przeczytaj całą lekcję zanim wykonasz jakieś polecenia!!!

  1. Przytrzymaj klawisz CTRL i wciśnij  g . Używamy notacji CTRL-G.
     Na dole strony pojawi się pasek statusu z nazwą pliku i pozycją w pliku.
     Zapamiętaj numer linii dla potrzeb kroku 3.

UWAGA: Możesz też zobaczyć pozycję kursora w prawym, dolnym rogu ekranu.
       Dzieje się tak kiedy ustawiona jest opcja 'ruler' (więcej w lekcji 6.).

  2. Wciśnij G aby przejść na koniec pliku.
     Wciśnij  gg  aby przejść do początku pliku.

  3. Wpisz numer linii, w której byłeś a potem  G . To przeniesie Cię
     z powrotem do linii, w której byłeś kiedy wcisnąłeś CTRL-G.

  4. Jeśli czujesz się wystarczająco pewnie, wykonaj kroki 1-3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 4.2.: POLECENIE SZUKAJ


	     ** Wpisz  /  a następnie wyrażenie, aby je znaleźć. **

  1. W trybie Normal wpisz  / . Zauważ, że znak ten oraz kursor pojawią
     się na dole ekranu tak samo, jak polecenie  : .

  2. Teraz wpisz  błond<ENTER> .  To jest słowo, którego chcesz szukać.

  3. By szukać tej samej frazy ponownie, po prostu wciśnij  n .
     Aby szukać tej frazy w przeciwnym, kierunku wciśnij  N .

  4. Jeśli chcesz szukać frazy do tyłu, użyj polecenia  ?  zamiast  / .

  5. Aby wrócić gdzie byłeś, wciśnij  CTRL-O. Powtarzaj, by wrócić dalej. CTRL-I
     idzie do przodu.

Uwaga:  'błond' to nie jest metoda, by przeliterować błąd; 'błond' to błąd.
Uwaga:  Kiedy szukanie osiągnie koniec pliku, będzie kontynuowane od początku
        o ile opcja 'wrapscan' nie została przestawiona.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcja 4.3.: W POSZUKIWANIU PARUJĄCYCH NAWIASÓW


	       ** Wpisz  %  by znaleźć parujący ), ], lub } . **

  1. Umieść kursor na którymś z (, [, lub { w linii poniżej oznaczonej --->.

  2. Teraz wpisz znak  % .

  3. Kursor powinien się znaleźć na parującym nawiasie.

  4. Wciśnij  %  aby przenieść kursor z powrotem do parującego nawiasu.

  5. Przenieś kursor do innego (,),[,],{ lub } i zobacz co robi  % .

---> To ( jest linia testowa z (, [, ] i {, } . ))

Uwaga: Ta funkcja jest bardzo użyteczna w debuggowaniu programu
       z niesparowanymi nawiasami!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 4.4.: POLECENIE SUBSTITUTE (zamiana)


	 ** Wpisz  :s/stary/nowy/g  aby zamienić 'stary' na 'nowy'. **

  1. Przenieś kursor do linii poniżej oznaczonej --->.

  2. Wpisz  :s/czaas/czas<ENTER> .  Zauważ, że to polecenie zmienia
     tylko pierwsze wystąpienie 'czaas' w linii.

  3. Teraz wpisz  :s/czaas/czas/g  . Dodane  g  oznacza zamianę (substytucję)
     globalnie w całej linii.  Zmienia wszystkie wystąpienia 'czaas' w linii.

---> Najlepszy czaas na zobaczenie najładniejszych kwiatów to czaas wiosny.

  4. Aby zmienić wszystkie wystąpienia łańcucha znaków pomiędzy dwoma liniami,
     wpisz: :#,#s/stare/nowe/g gdzie #,# są numerami linii ograniczających
                               region, gdzie ma nastąpić zamiana.
     wpisz  :%s/stare/nowe/g   by zmienić wszystkie wystąpienia w całym pliku.
     wpisz  :%s/stare/nowe/gc  by zmienić wszystkie wystąpienia w całym
                               pliku, prosząc o potwierdzenie za każdym razem.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 4. PODSUMOWANIE

  1. CTRL-G   pokaże Twoją pozycję w pliku i status pliku.  SHIFT-G przenosi
	      Cię do końca pliku.
     G        przenosi do końca pliku.
     liczba G przenosi do linii [liczba].
     gg       przenosi do pierwszej linii.

  2. Wpisanie  /  a następnie łańcucha znaków szuka łańcucha DO PRZODU.
     Wpisanie  ?  a następnie łańcucha znaków szuka łańcucha DO TYŁU.
     Po wyszukiwaniu wciśnij  n  by znaleźć następne wystąpienie szukanej
     frazy w tym samym kierunku lub  N  by szukać w kierunku przeciwnym.
     CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.

  3. Wpisanie  %  gdy kursor znajduje się na (,),[,],{, lub } lokalizuje
     parujący znak.

  4. By zamienić pierwszy stary na nowy w linii, wpisz      :s/stary/nowy
     By zamienić wszystkie stary na nowy w linii, wpisz     :s/stary/nowy/g
     By zamienić frazy pomiędzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
     By zamienić wszystkie wystąpienia w pliku, wpisz       :%s/stary/nowy/g
     By Vim prosił Cię o potwierdzenie, dodaj 'c'	   :%s/stary/nowy/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcja 5.1.: JAK WYKONAĆ POLECENIA ZEWNĘTRZNE?


	** Wpisz  :!  a następnie zewnętrzne polecenie, by je wykonać. **

  1. Wpisz znajome polecenie  :  by ustawić kursor na dole ekranu. To pozwala
     na wprowadzenie komendy linii poleceń.

  2. Teraz wstaw  !  (wykrzyknik). To umożliwi Ci wykonanie dowolnego
     zewnętrznego polecenia powłoki.

  3. Jako przykład wpisz  ls  za  !  a następnie wciśnij <ENTER>. To polecenie
     pokaże spis plików w Twoim katalogu, tak jakbyś był przy znaku zachęty
     powłoki. Możesz też użyć  :!dir  jeśli  ls  nie działa.

Uwaga:  W ten sposób można wykonać wszystkie polecenia powłoki.
Uwaga:  Wszystkie polecenia  :  muszą być zakończone <ENTER>.
        Od tego momentu nie zawsze będziemy o tym wspominać.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 5.2.: WIĘCEJ O ZAPISYWANIU PLIKÓW


	   ** By zachować zmiany w tekście, wpisz :w NAZWA_PLIKU . **

  1. Wpisz  :!dir  lub  :!ls  by zobaczyć spis plików w katalogu.
     Już wiesz, że musisz po tym wcisnąć <ENTER>.

  2. Wybierz nazwę pliku, jaka jeszcze nie istnieje, np. TEST.

  3. Teraz wpisz:   :w TEST   (gdzie TEST jest nazwą pliku jaką wybrałeś.)

  4. To polecenie zapamięta cały plik (Vim Tutor) pod nazwą TEST.
     By to sprawdzić, wpisz  :!dir  lub  :!ls  żeby znowu zobaczyć listę plików.

Uwaga: Zauważ, że gdybyś teraz wyszedł z Vima, a następnie wszedł ponownie
       poleceniem  vim TEST , plik byłby dokładną kopią tutoriala, kiedy go
       zapisywałeś.

  5. Teraz usuń plik wpisując (MS-DOS):		   :!del TEST
                          lub (Unix):              :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU


	  ** By zachować część pliku, wpisz  v ruch :w NAZWA_PLIKU **

  1. Przenieś kursor do tego wiersza.

  2. Wciśnij  v  i przenieś kursor do punktu 5. Zauważ, że tekst został
     podświetlony.

  3. Wciśnij znak  : . Na dole ekranu pojawi się  :'<,'> .

  4. Wpisz  w TEST , gdzie TEST to nazwa pliku, który jeszcze nie istnieje.
     Upewnij się, że widzisz  :'<,'>w TEST zanim wciśniesz Enter.

  5. Vim zapisze wybrane linie do pliku TEST. Użyj  :!dir  lub  :!ls , żeby to
     zobaczyć. Jeszcze go nie usuwaj! Użyjemy go w następnej lekcji.

UWAGA: Wciśnięcie  v  zaczyna tryb Wizualny. Możesz poruszać kursorem, by
       zmienić rozmiary zaznaczenia. Możesz też użyć operatora, by zrobić coś
       z tekstem. Na przykład  d  usuwa tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcja 5.4.: WSTAWIANIE I ŁĄCZENIE PLIKÓW


	    ** By wstawić zawartość pliku, wpisz   :r NAZWA_PLIKU **

  1. Umieść kursor tuż powyżej tej linii.

UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejdź
       do DOŁU, by zobaczyć ponownie tę lekcję.

  2. Teraz wczytaj plik TEST używając polecenia  :r TEST , gdzie TEST
     jest nazwą pliku.
     Wczytany plik jest umieszczony poniżej linii z kursorem.

  3. By sprawdzić czy plik został wczytany, cofnij kursor i zobacz, że
     teraz są dwie kopie Lekcji 5.3., oryginał i kopia z pliku.

UWAGA: Możesz też wczytać wyjście zewnętrznego polecenia. Na przykład
       :r !ls  wczytuje wyjście polecenia ls i umieszcza je pod poniżej
       kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 5. PODSUMOWANIE


  1.  :!polecenie wykonuje polecenie zewnętrzne.

      Użytecznymi przykładami są:

	  :!dir  -  pokazuje spis plików w katalogu.

	  :!rm NAZWA_PLIKU  -  usuwa plik NAZWA_PLIKU.

  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vima na dysk z nazwą NAZWA_PLIKU.

  3.  v ruch :w NAZWA_PLIKU  zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.

  4.  :r NAZWA_PLIKU  wczytuje z dysku plik NAZWA_PLIKU i wstawia go do
      bieżącego pliku poniżej kursora.

  5.  :r !dir  wczytuje wyjście polecenia dir i umieszcza je poniżej kursora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 6.1.: POLECENIE OPEN (otwórz)


      ** Wpisz  o  by otworzyć linię poniżej kursora i przenieść się do
	 trybu Insert (wprowadzanie). **

  1. Przenieś kursor do linii poniżej oznaczonej --->.

  2. Wpisz  o  (małe), by otworzyć linię PONIŻEJ kursora i przenieść się
     do trybu Insert (wprowadzanie).

  3. Wpisz trochę tekstu i wciśnij <ESC> by wyjść z trybu Insert (wprowadzanie).

---> Po wciśnięciu  o  kursor znajdzie się w otwartej linii w trybie Insert.

  4. By otworzyć linię POWYŻEJ kursora, wciśnij wielkie  O  zamiast małego
     o . Wypróbuj to na linii poniżej.

---> Otwórz linię powyżej wciskając SHIFT-O gdy kursor będzie na tej linii.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 6.2.: POLECENIE APPEND (dodaj)


		  ** Wpisz  a  by dodać tekst ZA kursorem. **

  1. Przenieś kursor do początku pierwszej linii poniżej oznaczonej --->

  2. Wciskaj  e  dopóki kursor nie będzie na końcu li .

  3. Wpisz  a  (małe), aby dodać tekst ZA znakiem pod kursorem.

  4. Dokończ wyraz tak, jak w linii poniżej. Wciśnij <ESC> aby opuścić tryb
     Insert.

  5. Użyj  e  by przejść do kolejnego niedokończonego wyrazu i powtarzaj kroki
     3. i 4.

---> Ta li poz Ci ćwi dodaw teks do koń lin
---> Ta linia pozwoli Ci ćwiczyć dodawanie tekstu do końca linii.

Uwaga:  a ,  i  oraz  A  prowadzą do trybu Insert, jedyną różnicą jest miejsce,
       gdzie nowe znaki będą dodawane.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)


	   ** Wpisz wielkie  R  by zamienić więcej niż jeden znak. **

  1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->. Przenieś
     kursor do pierwszego  xxx .

  2. Wciśnij  R  i wpisz numer poniżej w drugiej linii, tak, że zastąpi on
     xxx.

  3. Wciśnij <ESC> by opuścić tryb Replace. Zauważ, że reszta linii pozostaje
     niezmieniona.

  5. Powtarzaj kroki by wymienić wszystkie xxx.

---> Dodanie 123 do xxx daje xxx.
---> Dodanie 123 do 456 daje 579.

UWAGA: Tryb Replace jest jak tryb Insert, ale każdy znak usuwa istniejący
       znak.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 6.4.: KOPIOWANIE I WKLEJANIE TEKSTU


       ** użyj operatora  y  aby skopiować tekst i  p  aby go wkleić **

  1. Przejdź do linii oznaczonej ---> i umieść kursor za "a)".

  2. Wejdź w tryb Wizualny  v  i przenieś kursor na początek "pierwszy".

  3. Wciśnij  y  aby kopiować (yankować) podświetlony tekst.

  4. Przenieś kursor do końca następnej linii:  j$

  5. Wciśnij  p  aby wkleić (wpakować) tekst.  Dodaj:  a drugi<ESC> .

  6. Użyj trybu Wizualnego, aby wybrać " element.", yankuj go  y , przejdź do
     końca następnej linii  j$  i upakuj tam tekst z  p .

--->  a) to jest pierwszy element.
      b)
Uwaga: możesz użyć  y  jako operatora;  yw  kopiuje jeden wyraz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 6.5.: USTAWIANIE OPCJI


** Ustawianie opcji tak, by szukaj lub substytucja ignorowały wielkość liter **

  1. Szukaj 'ignore' wpisując:    /ignore<ENTER>
     Powtórz szukanie kilka razy naciskając klawisz  n .

  2. Ustaw opcję 'ic' (Ignore case -- ignoruj wielkość liter) poprzez
     wpisanie:		:set ic

  3. Teraz szukaj 'ignore' ponownie wciskając:  n
     Zauważ, że Ignore i IGNORE także są teraz znalezione.

  4. Ustaw opcje 'hlsearch' i 'incsearch':    :set hls is

  5. Teraz wprowadź polecenie szukaj ponownie i zobacz co się zdarzy:
     /ignore<ENTER>

  6. Aby wyłączyć ignorowanie wielkości liter:  :set noic

Uwaga: Aby usunąć podświetlanie dopasowań, wpisz:   :nohlsearch
Uwaga: Aby ignorować wielkość liter dla jednego wyszukiwania: /ignore\c<ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 6. PODSUMOWANIE


  1. Wpisanie  o  otwiera linię PONIŻEJ kursora.
     Wpisanie  O  otwiera linię POWYŻEJ kursora.

  2. Wpisanie  a  wstawia tekst ZA znakiem, na którym jest kursor.
     Wpisanie  A  dodaje tekst na końcu linii.

  3. Polecenie  e  przenosi do końca wyrazu.
  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja) go.
  5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dopóki
     nie zostanie wciśnięty <ESC>.
  6. Wpisanie ":set xxx" ustawia opcję "xxx". Niektóre opcje:
	'ic'  'ignorecase'	ignoruj wielkość znaków
	'is'  'incsearch'	pokaż częściowe dopasowania
	'hls' 'hlsearch'	podświetl wszystkie dopasowania
     Możesz użyć zarówno długiej, jak i krótkiej formy.
  7. Dodaj "no", aby wyłączyć opcję:   :set noic





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 LEKCJA 7.1. JAK UZYSKAĆ POMOC?

		      ** Użycie systemu pomocy on-line **

  Vim posiada bardzo dobry system pomocy on-line. By zacząć, spróbuj jednej
  z trzech możliwości:
	- wciśnij klawisz <HELP> (jeśli taki masz)
	- wciśnij klawisz <F1> (jeśli taki masz)
	- wpisz   :help<ENTER>

  Przeczytaj tekst w oknie pomocy, aby dowiedzieć się jak działa pomoc.
  wpisz CTRL-W CTRL-W    aby przeskoczyć z jednego okna do innego
  wpisz :q<ENTER>        aby zamknąć okno pomocy.

  Możesz też znaleźć pomoc na każdy temat podając argument polecenia ":help".
  Spróbuj tych (nie zapomnij wcisnąć <ENTER>):

  :help w
  :help c_CTRL-D
  :help insert-index
  :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO

			  ** Włącz możliwości Vima **

  Vim ma o wiele więcej możliwości niż Vi, ale większość z nich jest domyślnie
  wyłączona. Jeśli chcesz włączyć te możliwości na starcie musisz utworzyć
  plik "vimrc".

  1. Początek edycji pliku "vimrc" zależy od Twojego systemu:
     :edit ~/.vimrc	     dla Uniksa
     :edit $VIM/_vimrc       dla MS-Windows
  2. Teraz wczytaj przykładowy plik "vimrc":
     :read $VIMRUNTIME/vimrc_example.vim
  3. Zapisz plik:
     :w

  Następnym razem, gdy zaczniesz pracę w Vimie będzie on używać podświetlania
  składni. Możesz dodać wszystkie swoje ulubione ustawienia do tego pliku
  "vimrc".
  Aby uzyskać więcej informacji, wpisz     :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekcja 7.3.: UZUPEŁNIANIE


	      ** Uzupełnianie linii poleceń z CTRL-D i <TAB> **

  1. Upewnij się, że Vim nie jest w trybie kompatybilności:   :set nocp

  2. Zerknij, jakie pliki są w bieżącym katalogu:   :!ls   lub   :!dir

  3. Wpisz początek polecenia:   :e

  4. Wciśnij  CTRL-D  i Vim pokaże listę poleceń, jakie zaczynają się na "e".

  5. Wciśnij  <TAB>  i Vim uzupełni polecenie do ":edit".

  6. Dodaj spację i zacznij wpisywać nazwę istniejącego pliku:   :edit FIL

  7. Wciśnij <TAB>. Vim uzupełni nazwę (jeśli jest niepowtarzalna).

UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TAB>.
       Użyteczne zwłaszcza przy  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lekcja 7. PODSUMOWANIE


  1. Wpisz  :help  albo wciśnij <F1> lub <Help> aby otworzyć okno pomocy.

  2. Wpisz  :help cmd  aby uzyskać pomoc o  cmd .

  3. Wpisz  CTRL-W CTRL-W  aby przeskoczyć do innego okna.

  4. Wpisz  :q  aby zamknąć okno pomocy.

  5. Utwórz plik startowy vimrc aby zachować wybrane ustawienia.

  6. Po poleceniu  : , wciśnij CTRL-D aby zobaczyć możliwe uzupełnienia.
     Wciśnij <TAB> aby użyć jednego z nich.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Tutaj się kończy tutorial Vima. Został on pomyślany tak, aby dać krótki
  przegląd jego możliwości, wystarczający byś mógł go używać. Jest on
  daleki od kompletności, ponieważ Vim ma o wiele, wiele więcej poleceń.

  Dla dalszej nauki rekomendujemy książkę:
	Vim - Vi Improved - autor Steve Oualline
	Wydawca: New Riders
  Pierwsza książka całkowicie poświęcona Vimowi. Użyteczna zwłaszcza dla
  początkujących. Zawiera wiele przykładów i ilustracji.
  Zobacz http://iccf-holland.org./click5.html

  Starsza pozycja i bardziej o Vi niż o Vimie, ale także warta
  polecenia:
	Learning the Vi Editor - autor Linda Lamb
	Wydawca: O'Reilly & Associates Inc.
  To dobra książka, by dowiedzieć się niemal wszystkiego, co chciałbyś zrobić
  z Vi. Szósta edycja zawiera też informacje o Vimie.

  Po polsku wydano:
	Edytor vi. Leksykon kieszonkowy - autor Arnold Robbins
	Wydawca: Helion 2001 (O'Reilly).
	ISBN: 83-7197-472-8
	http://helion.pl/ksiazki/vilek.htm
  Jest to książeczka zawierająca spis poleceń vi i jego najważniejszych
  klonów (między innymi Vima).

	Edytor vi - autorzy Linda Lamb i Arnold Robbins
	Wydawca: Helion 2001 (O'Reilly) - wg 6. ang. wydania
	ISBN: 83-7197-539-2
	http://helion.pl/ksiazki/viedyt.htm
  Rozszerzona wersja Learning the Vi Editor w polskim tłumaczeniu.

  Ten tutorial został napisany przez Michaela C. Pierce'a i Roberta K. Ware'a,
  Colorado School of Mines korzystając z pomocy Charlesa Smitha,
  Colorado State University.
  E-mail: bware@mines.colorado.edu.

  Zmodyfikowane dla Vima przez Brama Moolenaara.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Przetłumaczone przez Mikołaja Machowskiego,
  Sierpień 2001,
  rev. Marzec 2002
  2nd rev. Wrzesień 2004
  3rd rev. Marzec 2006
  4th rev. Grudzień 2008
  Wszelkie uwagi proszę kierować na: mikmach@wp.pl
PK�j�Z{� ppvim80/tutor/tutor.svnu�[���===============================================================================
= V ä l k o m m e n  t i l l  h a n d l e d n i n g e n  i  V i m  - Ver. 1.5 =
===============================================================================

     Vim är en väldigt kraftfull redigerare som har många kommandon, alltför
     många att förklara i en handledning som denna. Den här handledningen är
     gjord för att förklara tillräckligt många kommandon så att du enkelt ska
     kunna använda Vim som en redigerare för alla ändamål.

     Den beräknade tiden för att slutföra denna handledning är 25-30 minuter,
     beroende på hur mycket tid som läggs ned på experimentering.

     Kommandona i lektionerna kommer att modifiera texten. Gör en kopia av den
     här filen att öva på (om du startade "vimtutor är det här redan en kopia).

     Det är viktigt att komma ihåg att den här handledningen är konstruerad
     att lära vid användning. Det betyder att du måste köra kommandona för att
     lära dig dem ordentligt. Om du bara läser texten så kommer du att glömma
     kommandona!

     Försäkra dig nu om att din Caps-Lock tangent INTE är aktiv och tryck på
     j-tangenten tillräckligt många gånger för att förflytta markören så att
     Lektion 1.1 fyller skärmen helt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 1.1: FLYTTA MARKÖREN


   ** För att flytta markören, tryck på tangenterna h,j,k,l som indikerat. **
	     ^
	     k		Tips:
       < h	 l >	h-tangenten är till vänster och flyttar till vänster.
	     j		l-tangenten är till höger och flyttar till höger.
	     v		j-tangenten ser ut som en pil ned.
  1. Flytta runt markören på skärmen tills du känner dig bekväm.

  2. Håll ned tangenten pil ned (j) tills att den repeterar.
---> Nu vet du hur du tar dig till nästa lektion.

  3. Flytta till Lektion 1.2, med hjälp av ned tangenten.

Notera: Om du är osäker på någonting du skrev, tryck <ESC> för att placera dig
	dig i Normal-läge. Skriv sedan om kommandot.

Notera: Piltangenterna borde också fungera.  Men om du använder hjkl så kommer
	du att kunna flytta omkring mycket snabbare, när du väl vant dig vid
	det.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.2: STARTA OCH AVSLUTA VIM


  !! NOTERA: Innan du utför någon av punkterna nedan, läs hela lektionen!!

  1. Tryck <ESC>-tangenten (för att se till att du är i Normal-läge).

  2. Skriv:			:q! <ENTER>.

---> Detta avslutar redigeraren UTAN att spara några ändringar du gjort.
     Om du vill spara ändringarna och avsluta skriv:
				:wq  <ENTER>

  3. När du ser skal-prompten, skriv kommandot som tog dig in i den här
     handledningen.  Det kan vara:	vimtutor <ENTER>
     Normalt vill du använda:		vim tutor <ENTER>

---> 'vim' betyder öppna redigeraren vim, 'tutor' är filen du vill redigera.

  4. Om du har memorerat dessa steg och känner dig självsäker, kör då stegen
     1 till 3 för att avsluta och starta om redigeraren. Flytta sedan ned
     markören till Lektion 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.3: TEXT REDIGERING - BORTTAGNING


** När du är i Normal-läge tryck  x  för att ta bort tecknet under markören. **

  1. Flytta markören till raden nedan med markeringen --->.

  2. För att rätta felen, flytta markören tills den står på tecknet som ska
     tas bort. fix the errors, move the cursor until it is on top of the

  3. Tryck på	x-tangenten för att ta bort det felaktiga tecknet.

  4. Upprepa steg 2 till 4 tills meningen är korrekt.

---> Kkon hoppadee övverr måånen.

  5. Nu när raden är korrekt, gå till Lektion 1.4.

NOTERA: När du går igenom den här handledningen, försök inte att memorera, lär
	genom användning.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 1.4: TEXT REDIGERING - INFOGNING


	 ** När du är i Normal-läge tryck  i  för att infoga text. **

  1. Flytta markören till den första raden nedan med markeringen --->.

  2. För att göra den första raden likadan som den andra, flytta markören till
     det första tecknet EFTER där text ska infogas.

  3. Tryck  i  och skriv in det som saknas.

  4. När du rättat ett fel tryck <ESC> för att återgå till Normal-läge.
     Upprepa steg 2 till 4 för att rätta meningen.

---> Det sakns här .
---> Det saknas lite text från den här raden.

  5. När du känner dig bekväm med att infoga text, gå till sammanfattningen
     nedan.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 1 SAMMANFATTNING


  1. Markören flyttas genom att använda piltangenterna eller hjkl-tangenterna.
	 h (vänster)	j (ned)       k (upp)	    l (höger)

  2. För att starta Vim (från %-prompten) skriv:  vim FILNAMN <ENTER>

  3. För att avsluta Vim skriv:  <ESC>  :q!  <ENTER>  för att kasta ändringar.
		   ELLER skriv:  <ESC>	:wq  <ENTER>  för att spara ändringar.

  4. För att ta bort tecknet under markören i Normal-läge skriv:  x

  5. För att infoga text vid markören i Normal-läge skriv:
	 i     skriv in text	<ESC>

NOTERA: Genom att trycka <ESC> kommer du att placeras i Normal-läge eller
	avbryta ett delvis färdigskrivet kommando.

Fortsätt nu med Lektion 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 2.1: BORTTAGNINGSKOMMANDON


	    ** Skriv  dw  för att radera till slutet av ett ord. **

  1. Tryck  <ESC>  för att försäkra dig om att du är i Normal-läge.

  2. Flytta markören till raden nedan markerad --->.

  3. Flytta markören till början av ett ord som måste raderas.

  4. Skriv   dw	 för att radera ordet.

  NOTERA: Bokstäverna dw kommer att synas på den sista raden på skärmen när
	du skriver dem. Om du skrev något fel, tryck  <ESC>  och börja om.

---> Det är ett några ord roliga att som inte hör hemma i den här meningen.

  5. Upprepa stegen 3 och 4 tills meningen är korrekt och gå till Lektion 2.2.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 2.2: FLER BORTTAGNINGSKOMMANDON


	   ** Skriv  d$	för att radera till slutet på raden. **

  1. Tryck  <ESC>  för att försäkra dig om att du är i Normal-läge.

  2. Flytta markören till raden nedan markerad --->.

  3. Flytta markören till slutet på den rätta raden (EFTER den första . ).

  4. Skriv    d$    för att radera till slutet på raden.

---> Någon skrev slutet på den här raden två gånger. den här raden två gånger.


  5. Gå vidare till Lektion 2.3 för att förstå vad det är som händer.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lesson 2.3: KOMMANDON OCH OBJEKT


  Syntaxen för  d  raderingskommandot är följande:

	 [nummer]   d	objekt	    ELLER	     d	 [nummer]   objekt
  Var:
    nummer - är antalet upprepningar av kommandot (valfritt, standard=1).
    d - är kommandot för att radera.
    objekt - är vad kommandot kommer att operera på (listade nedan).

  En kort lista över objekt:
    w - från markören till slutet av ordet, inklusive blanksteget.
    e - från markören till slutet av ordet, EJ inklusive blanksteget.
    $ - från markören till slutet på raden.

NOTERA:  För den äventyrslystne, genom att bara trycka på objektet i
	 Normal-läge (utan kommando) så kommer markören att flyttas som
	 angivet i objektlistan.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 2.4: ETT UNDANTAG TILL 'KOMMANDO-OBJEKT'


	       ** Skriv	 dd   för att radera hela raden. **

  På grund av hur vanligt det är att ta bort hela rader, valde upphovsmannen
  till Vi att det skulle vara enklare att bara trycka d två gånger i rad för
  att ta bort en rad.

  1. Flytta markören till den andra raden i frasen nedan.
  2. Skriv  dd  för att radera raden.
  3. Flytta nu till den fjärde raden.
  4. Skriv   2dd   (kom ihåg:  nummer-kommando-objekt) för att radera de två
     raderna.

      1)  Roses are red,
      2)  Mud is fun,
      3)  Violets are blue,
      4)  I have a car,
      5)  Clocks tell time,
      6)  Sugar is sweet
      7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 2.5: ÅNGRA-KOMMANDOT


** Skriv  u för att ångra det senaste kommandona,  U för att fixa en hel rad. **

  1. Flytta markören till slutet av raden nedan markerad ---> och placera den
     på det första felet.
  2. Skriv  x  för att radera den första felaktiga tecknet.
  3. Skriv nu  u  för att ångra det senaste körda kommandot.
  4. Rätta den här gången alla felen på raden med  x-kommandot.
  5. Skriv nu  U  för att återställa raden till dess ursprungliga utseende.
  6. Skriv nu  u  några gånger för att ångra  U  och tidigare kommandon.
  7. Tryck nu CTRL-R (håll inne CTRL samtidigt som du trycker R) några gånger
     för att upprepa kommandona (ångra ångringarna).

---> Fiixa felen ppå deen häär meningen och återskapa dem med ångra.

  8. Det här är väldigt användbara kommandon.  Gå nu vidare till
     Lektion 2 Sammanfattning.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 2 SAMMANFATTNING


  1. För att radera från markören till slutet av ett ord skriv:    dw

  2. För att radera från markören till slutet av en rad skriv:    d$

  3. För att radera en hel rad skriv:    dd

  4. Syntaxen för ett kommando i Normal-läge är:

       [nummer]   kommando   objekt   ELLER   kommando   [nummer]   objekt
     där:
       nummer - är hur många gånger kommandot kommandot ska repeteras
       kommando - är vad som ska göras, t.ex.  d  för att radera
       objekt - är vad kommandot ska operera på, som t.ex.  w (ord),
		$ (till slutet av raden), etc.

  5. För att ångra tidigare kommandon, skriv:  u (litet u)
     För att ångra alla tidigare ändringar på en rad skriv:  U (stort U)
     För att ångra ångringar tryck:  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 3.1: KLISTRA IN-KOMMANDOT


   ** Skriv  p  för att klistra in den senaste raderingen efter markören. **

  1. Flytta markören till den första raden i listan nedan.

  2. Skriv  dd  för att radera raden och lagra den i Vims buffert.

  3. Flytta markören till raden OVANFÖR där den raderade raden borde vara.

  4. När du är i Normal-läge, skriv    p	 för att byta ut raden.

  5. Repetera stegen 2 till 4 för att klistra in alla rader i rätt ordning.

     d) Kan du lära dig också?
     b) Violetter är blå,
     c) Intelligens fås genom lärdom,
     a) Rosor är röda,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lesson 3.2: ERSÄTT-KOMMANDOT


  ** Skriv  r  och ett tecken för att ersätta tecknet under markören. **

  1. Flytta markören till den första raden nedan markerad --->.

  2. Flytta markören så att den står på det första felet.

  3. Skriv   r	och sedan det tecken som borde ersätta felet.

  4. Repetera steg 2 och 3 tills den första raden är korrekt.

--->  När drn här ruden skrevs, trickte någon på fil knappar!
--->  När den här raden skrevs, tryckte någon på fel knappar!

  5. Gå nu vidare till Lektion 3.2.

NOTERA: Kom ihåg att du skall lära dig genom användning, inte genom memorering.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 3.3: ÄNDRA-KOMMANDOT


	   ** För att ändra en del eller ett helt ord, skriv  cw . **

  1. Flytta markören till den första redan nedan markerad --->.

  2. Placera markören på d i rdrtn.

  3. Skriv  cw  och det rätta ordet (i det här fallet, skriv "aden".)

  4. Tryck <ESC> och flytta markören till nästa fel (det första tecknet som
     ska ändras.)

  5. Repetera steg 3 och 4 tills den första raden är likadan som den andra.

---> Den här rdrtn har några otf som brhotrt ändras mrf ändra-komjendit.
---> Den här raden har några ord som behöver ändras med ändra-kommandot.

Notera att  cw  inte bara ändrar ordet, utan även placerar dig i infogningsläge.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lektion 3.4: FLER ÄNDRINGAR MED c


     ** Ändra-kommandot används på samma objekt som radera. **

  1. Ändra-kommandot fungerar på samma sätt som radera. Syntaxen är:

       [nummer]   c   objekt	   ELLER	    c	[nummer]   objekt

  2. Objekten är också de samma, som t.ex.   w (ord), $ (slutet av raden), etc.

  3. Flytta till den första raden nedan markerad -->.

  4. Flytta markören till det första felet.

  5. Skriv  c$  för att göra resten av raden likadan som den andra och tryck
     <ESC>.

---> Slutet på den här raden behöver hjälp med att få den att likna den andra.
---> Slutet på den här raden behöver rättas till med  c$-kommandot.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 3 SAMMANFATTNING


  1. För att ersätta text som redan har blivit raderad, skriv   p .
     Detta klistrar in den raderade texten EFTER markören (om en rad raderades
     kommer den att hamna på raden under markören.

  2. För att ersätta tecknet under markören, skriv   r   och sedan tecknet som
     kommer att ersätta orginalet.

  3. Ändra-kommandot låter dig ändra det angivna objektet från markören till
     slutet på objektet. eg. Skriv  cw  för att ändra från markören till slutet
     på ordet, c$	för att ändra till slutet på en rad.

  4. Syntaxen för ändra-kommandot är:

	 [nummer]   c	objekt	      ELLER	c   [nummer]   objekt

Gå nu till nästa lektion.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lektion 4.1: POSITION OCH FILSTATUS


  ** Tryck CTRL-g för att visa din position i filen och filstatusen.
     Tryck SHIFT-G för att flytta till en rad i filen. **

  Notera: Läsa hela den lektion innan du utför något av stegen!!

  1. Håll ned Ctrl-tangenten och tryck  g . En statusrad med filnamn och raden
     du befinner dig på kommer att synas. Kom ihåg radnummret till Steg 3.

  2. Tryck shift-G för att flytta markören till slutet på filen.

  3. Skriv in nummret på raden du var på och tryck sedan shift-G. Detta kommer
     att ta dig tillbaka till raden du var på när du först tryckte Ctrl-g.
     (När du skriver in nummren, kommer de INTE att visas på skärmen.)

  4. Om du känner dig säker på det här, utför steg 1 till 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 4.2: SÖK-KOMMANDOT


     ** Skriv  /  följt av en fras för att söka efter frasen. **

  1. I Normal-läge skriv /-tecknet. Notera att det och markören blir synlig
     längst ned på skärmen precis som med :-kommandot.

  2. Skriv nu "feeel" <ENTER>. Det här är ordet du vill söka efter.

  3. För att söka efter samma fras igen, tryck helt enkelt  n .
     För att söka efter samma fras igen i motsatt riktning, tryck  Shift-N .

  4. Om du vill söka efter en fras bakåt i filen, använd kommandot  ?  istället
     för /.

---> "feeel" är inte rätt sätt att stava fel: feeel är ett fel.

Notera: När sökningen når slutet på filen kommer den att fortsätta vid början.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lektion 4.3: SÖKNING EFTER MATCHANDE PARENTESER


	      ** Skriv  %  för att hitta en matchande ),], or } . **

  1. Placera markören på någon av (, [, or { på raden nedan markerad --->.

  2. Skriv nu %-tecknet.

  3. Markören borde vara på den matchande parentesen eller hakparentesen.

  4. Skriv  %  för att flytta markören tillbaka till den första hakparentesen
     (med matchning).

---> Det ( här är en testrad med (, [ ] och { } i den. ))

Notera: Det här är väldigt användbart vid avlusning av ett program med icke
	matchande parenteser!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 4.4: ETT SÄTT ATT ÄNDRA FEL


	** Skriv  :s/gammalt/nytt/g  för att ersätta "gammalt" med "nytt". **

  1. Flytta markören till raden nedan markerad --->.

  2. Skriv  :s/denn/den <ENTER> . Notera att det här kommandot bara ändrar den
     första förekomsten på raden.

  3. Skriv nu	 :s/denn/den/g	   vilket betyder ersätt globalt på raden.
     Det ändrar alla förekomster på raden.

---> denn bästa tiden att se blommor blomma är denn på våren.

  4. För att ändra alla förekomster av en teckensträng mellan två rader,
     skriv  :#,#s/gammalt/nytt/g    där #,# är de två radernas radnummer.
     Skriv  :%s/gammtl/nytt/g    för att ändra varje förekomst i hela filen.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 4 SAMMANFATTNING


  1. Ctrl-g  visar din position i filen och filstatusen.
     Shift-G  flyttar till slutet av filen. Ett radnummer följt  Shift-G
     flyttar till det radnummret.

  2. Skriver man  /	följt av en fras söks det FRAMMÅT efter frasen.
     Skriver man  ?	följt av en fras söks det BAKÅT efter frasen.
     Efter en sökning skriv  n  för att hitta nästa förekomst i samma riktning
     eller  Shift-N  för att söka i den motsatta riktningen.

  3. Skriver man  %	när markören är på ett  (,),[,],{, eller }  hittas dess
     matchande par.

  4. För att ersätta den första gammalt med nytt på en rad skriv  :s/gammlt/nytt
     För att ersätta alla gammlt med nytt på en rad skriv  :s/gammlt/nytt/g
     För att ersätta fraser mellan rad # och rad # skriv  :#,#s/gammlt/nytt/g
     För att ersätta alla förekomster i filen skriv  :%s/gammlt/nytt/g
     För att bekräfta varje gång lägg till "c"  :%s/gammlt/nytt/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lektion 5.1: HUR MAN KÖR ETT EXTERNT KOMMANDO


   ** Skriv  :!	följt av ett externt kommando för att köra det kommandot. **

  1. Skriv det välbekanta kommandot	:  för att placera markören längst ned
     på skärmen på skärmen. Detta låter dig skriva in ett kommando.

  2. Skriv nu  !  (utropstecken).  Detta låter dig köra ett godtyckligt externt
     skalkommando.

  3. Som ett exempel skriv   ls   efter ! och tryck sedan <ENTER>. Detta kommer
     att visa dig en listning av din katalog, precis som om du kört det vid
     skalprompten. Använd  :!dir  om ls inte fungerar.

Notera:  Det är möjligt att köra vilket externt kommando som helst på det här
	 sättet.

Notera:  Alla  :-kommandon måste avslutas med att trycka på <ENTER>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lektion 5.2: MER OM ATT SPARA FILER


     ** För att spara ändringar gjorda i en fil, skriv  :w FILNAMN. **

  1. Skriv  :!dir  eller  :!ls  för att få en listning av din katalog.
     Du vet redan att du måste trycka <ENTER> efter det här.

  2. Välj ett filnamn som inte redan existerar, som t.ex. TEST.

  3. Skriv nu:	 :w TEST   (där TEST är filnamnet du valt.)

  4. Det här sparar hela filen	(Vim handledningen)  under namnet TEST.
     För att verifiera detta, skriv    :!dir   igen för att se din katalog

Notera: Om du skulle avsluta Vim och sedan öppna igen med filnamnet TEST så
	skulle filen vara en exakt kopia av handledningen när du sparade den.

  5. Ta nu bort filen genom att skriva (MS-DOS):  :!del TEST
				   eller (Unix):  :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lektion 5.3: ETT SELEKTIVT SPARA-KOMMANDO


	** För att spara en del av en fil, skriv   :#,# w FILNAMN **

  1. Ännu en gång, skriv  :!dir  eller  :!ls  för att få en listning av din
     katalog och välj ett passande filnamn som t.ex. TEST.

  2. Flytta markören högst upp på den här sidan och tryck  Ctrl-g  för att få
     reda på radnumret på den raden. KOM IHÅG DET NUMMRET!

  3. Flytta nu längst ned på sidan och skriv  Ctrl-g igen.
     KOM IHÅG DET RADNUMMRET OCKSÅ!

  4. För att BARA spara en sektion till en fil, skriv   :#,# w TEST
     där #,# är de två nummren du kom ihåg (toppen, botten) och TEST är
     ditt filnamn.

  5. Ännu en gång, kolla så att filen är där med  :!dir  men radera den INTE.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lektion 5.4: TA EMOT OCH FÖRENA FILER


       ** För att infoga innehållet av en fil, skriv   :r FILNAMN **

  1. Skriv   :!dir   för att försäkra dig om att TEST-filen från tidigare
     fortfarande är kvar.

  2. Placera markören högst upp på den här sidan.

NOTERA:  Efter att du kört Steg 3 kommer du att se Lektion 5.3.
	 Flytta då NED till den här lektionen igen.

  3. Ta nu emot din TEST-fil med kommandot   :r TEST   där TEST är namnet på
     filen.

NOTERA:  Filen du tar emot placeras där markören är placerad.

  4. För att verifiera att filen togs emot, gå tillbaka och notera att det nu
     finns två kopior av Lektion 5.3, orginalet och filversionen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 5 SAMMANFATTNING


  1.  :!kommando  kör ett externt kommando.

      Några användbara exempel är:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		  -  visar en kataloglistning.
	  :!del FILNAMN    :!rm FILNAMN   -  tar bort filen FILNAMN.

  2.  :w FILNAMN  sparar den aktuella Vim-filen med namnet FILNAMN.

  3.  :#,#w FILNAMN  sparar raderna # till #  i filen FILNAMN.

  4.  :r FILNAMN  tar emot filen FILNAMN och infogar den i den aktuella filen
      efter markören.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lektion 6.1: ÖPPNA-KOMMANDOT


 ** Skriv  o  för att öppna en rad under markören och placera dig i
    Infoga-läge. **

  1. Flytta markören till raden nedan markerad --->.

  2. Skriv  o (litet o) för att öppna upp en rad NEDANFÖR markören och placera
     dig i Infoga-mode.

  3. Kopiera nu raden markerad ---> och tryck <ESC> för att avsluta
     Infoga-läget.

---> Efter du skrivit  o  placerad markören på en öppen rad i Infoga-läge.

  4. För att öppna upp en rad OVANFÖR markören, skriv ett stort  O , istället
     för ett litet  o. Pröva detta på raden nedan.
Öppna upp en rad ovanför denna genom att trycka Shift-O när markören står här.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lektion 6.2: LÄGG TILL-KOMMANDOT


	     ** Skriv  a  för att infoga text EFTER markören. **

  1. Flytta markören till slutet av den första raden nedan markerad ---> genom
     att skriv  $	i Normal-läge.

  2. Skriv ett  a  (litet a) för att lägga till text EFTER tecknet under
     markören.  (Stort  A  lägger till i slutet av raden.)

Notera: Detta undviker att behöva skriva  i , det sista tecknet, texten att
	infoga, <ESC>, högerpil, och slutligen, x, bara för att lägga till i
	slutet på en rad!

  3. Gör nu färdigt den första raden. Notera också att lägga till är likadant
      som Infoga-läge, enda skillnaden är positionen där texten blir infogad.

---> Här kan du träna
---> Här kan du träna på att lägga till text i slutet på en rad.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lektion 6.3: EN ANNAN VERSION AV ERSÄTT


      ** Skriv ett stort  R  för att ersätta fler än ett tecken. **

  1. Flytta markören till den första raden nedan markerad --->.

  2. Placera markören vid början av det första ordet som är annorlunda jämfört
     med den andra raden markerad ---> (ordet "sista").

  3. Skriv nu  R  och ersätt resten av texten på den första raden genom att
     skriva över den gamla texten så att den första raden blir likadan som
     den andra.

---> För att få den första raden lika som den sista, använd tangenterna.
---> För att få den första raden lika som den andra, skriv R och den nya texten.

  4. Notera att när du trycker <ESC> för att avsluta, så blir eventuell
     oförändrad text kvar.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lektion 6.4: SÄTT FLAGGOR

  ** Sätt en flagga så att en sökning eller ersättning ignorerar storlek **

  1. Sök efter "ignore" genom att skriva:
     /ignore
     Repetera flera gånger genom att trycka på n-tangenten

  2. Sätt 'ic' (Ignore Case) flaggan genom att skriva:
     :set ic

  3. Sök nu efter "ignore" igen genom att trycka: n
     Repeat search several more times by hitting the n key

  4. Sätt 'hlsearch' and 'incsearch' flaggorna:
     :set hls is

  5. Skriv nu in sök-kommandot igen, och se vad som händer:
     /ignore

  6. För att ta bort framhävningen av träffar, skriv
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LEKTION 6 SAMMANFATTNING


  1. Genom att skriva  o  öpnnas en rad NEDANFÖR markören och markören placeras
     på den öppna raden i Infoga-läge.
     Genom att skriva ett stort  O  öppnas raden OVANFÖR raden som markören är
     på.

  2. Skriv ett  a  för att infoga text EFTER tecknet som markören står på.
     Genom att skriva ett stort  A  läggs text automatiskt till i slutet på
     raden.

  3. Genom att skriva ett stort  R  hamnar du i Ersätt-läge till  <ESC>  trycks
     för att avsluta.

  4. Genom att skriva ":set xxx" sätts flaggan "xxx"









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       LEKTION 7: ON-LINE HJÄLP-KOMMANDON


		      ** Använd on-line hjälpsystemet **

  Vim har ett omfattande on-line hjälpsystem. För att komma igång pröva ett av
  dessa tre:
	- tryck <HELP> tangenten (om du har någon)
	- tryck <F1> tangenten (om du har någon)
	- skriv   :help <ENTER>

  Skriv   :q <ENTER>   för att stränga hjälpfönstret.

  Du kan hitta hjälp om nästan allting, genom att ge ett argument till
  ":help" kommandot. Pröva dessa (glöm inte att trycka <ENTER>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       LEKTION 8: SKAPA ETT UPPSTARTSSKRIPT

			  ** Aktivera Vim- funktioner **

  Vim har många fler funktioner än Vi, men de flesta av dem är inaktiverade som
  standard. För att börja använda fler funktioner måste du skapa en "vimrc"-fil.

  1. Börja redigera "vimrc"-filen, detta beror på ditt system:
	:edit ~/.vimrc			för Unix
	:edit $VIM/_vimrc		för MS-Windows

  2. Läs nu texten i exempel "vimrc"-filen:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Spara filen med:

	:write

  Nästa gång du startar Vim kommer den att använda syntaxframhävning.
  Du kan lägga till alla inställningar du föredrar till den här "vimrc"-filen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Detta avslutar handledningen i Vim. Den var avsedd att ge en kort översikt av
  redigeraren Vim, bara tillräckligt för att du ska kunna använda redigeraren
  relativt enkelt. Den är långt ifrån komplett eftersom Vim har många många fler
  kommandon. Läs användarmanualen härnäst: ":help user-manual".

  För vidare läsning rekommenderas den här boken:
	Vim - Vi Improved - av Steve Oualline
	Förlag: New Riders
  Den första boken som är endast behandlar Vim. Speciellt användbar för
  nybörjare. Det finns många exempel och bilder.
  Se http://iccf-holland.org/click5.html

  Den här boken är äldre och behandlar mer Vi än Vim, men rekommenderas också:
	Learning the Vi Editor - av Linda Lamb
	Förlag: O'Reilly & Associates Inc.
  Det är en bra bok för att lära sig nästan allt som du vill kunna göra med Vi.
  Den sjätte upplagan inkluderar också information om Vim.

  Den här handledningen är skriven av Michael C. Pierce och Robert K. Ware,
  Colorado School of Mines med idéer från Charles Smith,
  Colorado State University.  E-post: bware@mines.colorado.edu.

  Modifierad för Vim av Bram Moolenaar.
  Översatt av Johan Svedberg <johan@svedberg.com>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Zb�:-m�m�vim80/tutor/tutor.itnu�[���===============================================================================
=    Benvenuto  alla   G u i d a    all'Editor   V I M   -    Versione 1.7    =
===============================================================================

     Vim è un Editor molto potente ed ha parecchi comandi, troppi per
     spiegarli tutti in una guida come questa.  Questa guida serve a
     descrivere quei comandi che ti permettono di usare facilmente
     Vim come Editor di uso generale.

     Il tempo necessario per completare la guida è circa 25-30 minuti,
     a seconda di quanto tempo dedichi alla sperimentazione.

     ATTENZIONE!
     I comandi nelle lezioni modificano questo testo. Fai una copia di questo
     file per esercitarti (se hai usato "vimtutor", stai già usando una copia).

     E' importante non scordare che questa guida vuole insegnare tramite
     l'uso. Questo vuol dire che devi eseguire i comandi per impararli
     davvero. Se leggi il testo e basta, dimenticherai presto i comandi!

     Adesso, assicurati che il tasto BLOCCA-MAIUSCOLO non sia schiacciato
     e premi il tasto    j    tanto da muovere il cursore fino a che la
     Lezione 1.1 riempia completamente lo schermo.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lezione 1.1:  MOVIMENTI DEL CURSORE


   ** Per muovere il cursore, premi i tasti h,j,k,l come indicato. **
	     ^
	     k		    NOTA:  Il tasto h è a sinistra e muove a sinistra.
       < h	 l >		   Il tasto l è a destra e muove a destra.
	     j			   Il tasto j ricorda una freccia in giù.
	     v
  1. Muovi il cursore sullo schermo finché non ti senti a tuo agio.

  2. Tieni schiacciato il tasto "giù" (j) finché non si ripete il movimento.
     Adesso sai come arrivare fino alla lezione seguente.

  3. Usando il tasto "giù" spostati alla Lezione 1.2.

NOTA: Quando non sei sicuro del tasto che hai premuto, premi <ESC> per andare
      in Modalità Normale [Normal Mode]. Poi ri-immetti il comando che volevi.

NOTA: I tasti con le frecce fanno lo stesso servizio. Ma usando hjkl riesci
      a muoverti molto più rapidamente, dopo che ci si abitua.  Davvero!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lezione 1.2: USCIRE DA VIM


  !! NOTA: Prima di eseguire quanto richiesto, leggi la Lezione per intero!!

  1. Premi il tasto <ESC> (per assicurarti di essere in Modalità Normale).

  2. Batti:     :q! <INVIO>.
     Così esci dall'Editor SCARTANDO qualsiasi modifica fatta.

  3. Quando vedi il PROMPT della Shell, batti il comando con cui sei arrivato
     qui.  Sarebbe:	vimtutor <INVIO>

  4. Se hai memorizzato questi comandi e ti senti pronto, esegui i passi
     da 1 a 3 per uscire e rientrare nell'Editor.

NOTA:  :q! <INVIO> SCARTA qualsiasi modifica fatta.  In una delle prossime
       lezioni imparerai come salvare un file che hai modificato.

  5. Muovi in giù il cursore per passare alla lezione 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 1.3: MODIFICA DI TESTI - CANCELLAZIONE


	** Premere  x  per cancellare il carattere sotto al cursore **

  1. Muovi il cursore alla linea più sotto, indicata da --->.

  2. Per correggere errori, muovi il cursore fino a posizionarlo sopra il
     carattere da cancellare.

  3. Premi il tasto	x     per cancellare il carattere sbagliato.

  4. Ripeti i passi da 2 a 4 finché la frase è corretta.

---> La mmucca saltòò finnoo allaa lunnna.

  5. Ora che la linea è corretta, vai alla Lezione 1.4

NOTA: Mentre segui questa guida, non cercare di imparare a memoria,
      ma impara facendo pratica.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 1.4: MODIFICA DI TESTI - INSERIMENTO


                   ** Premere  i  per inserire testo. **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  2. Per rendere la prima linea uguale alla seconda, muovi il cursore sopra
     il primo carattere DOPO la posizione in cui il testo va inserito.

  3. Premi  i  e batti le aggiunte opportune.

  4. Quando un errore è corretto, premi <ESC> per tornare in Modalità Normale.
     Ripeti i passi da 2 a 4 fino a completare la correzione della frase.

---> C'era del tsto mncnt questa .
---> C'era del testo mancante da questa linea.

  5. Quando sei a tuo agio nell'inserimento di testo vai alla lezione 1.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 1.5: MODIFICA DI TESTI - AGGIUNTA


	   ** Premere  A  per aggiungere testo a fine linea. **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.
     Non importa dove è posizionato il cursore sulla linea stessa.

  2. Batti  A  e inserisci le necessarie aggiunte.

  3. Alla fine della aggiunta premi <ESC> per tornare in modalità Normale.

  4. Muovi il cursore alla seconda linea indicata ---> e ripeti
     i passi 2 e 3 per correggere questa frase.

---> C'è del testo che manca da qu
     C'è del testo che manca da questa linea.
---> C'è anche del testo che ma
     C'è anche del testo che manca qui.

  5. Quando sei a tuo agio nell'aggiunta di testo vai alla lezione 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lezione 1.6: MODIFICARE UN FILE


	      ** Usare  :wq  per salvare un file e uscire. **

  !! NOTA: Prima di eseguire quanto richiesto, leggi la Lezione per intero!!

  1. Esci da Vim come hai fatto nella lezione 1.2:  :q!

  2. Quando vedi il PROMPT della Shell, batti il comando:  vim tutor <INVIO>
     'vim' è il comando per richiamare Vim, 'tutor' è il nome del file che
     desideri modificare.  Usa un file che possa essere modificato.

  3. Inserisci e cancella testo come hai imparato nelle lezioni precedenti.

  4. Salva il file ed esci da Vim con:  :wq  <INVIO>

  5. Rientra in vimtutor e scendi al sommario che segue.

  6. Dopo aver letto i passi qui sopra ed averli compresi: eseguili.

  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 1 SOMMARIO


  1. Il cursore si muove usando i tasti con le frecce o i tasti hjkl.
	 h (sinistra)	j (giù)       k (su)	    l (destra)

  2. Per eseguire Vim dal PROMPT della Shell batti:  vim NOMEFILE <INVIO>

  3. Per uscire da Vim batti: <ESC> :q! <INVIO> per uscire senza salvare.
		oppure batti: <ESC> :wq <INVIO> per uscire salvando modifiche.

  4. Per cancellare il carattere sotto al cursore batti: x

  5. Per inserire testo subito prima del cursore batti:
	 i     batti testo inserito	<ESC>	inserisci prima del cursore
	 A     batti testo aggiunto	<ESC>	aggiungi a fine linea

NOTA: premendo <ESC> ritornerai in Modalità Normale o annullerai
      un comando errato che puoi aver inserito in parte.

Ora continua con la Lezione 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lezione 2.1: COMANDI DI CANCELLAZIONE


		** Batti  dw  per cancellare una parola. **

  1. Premi  <ESC>  per accertarti di essere in Modalità Normale.

  2. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  3. Muovi il cursore all'inizio di una parola che vuoi cancellare.

  4. Batti   dw   per cancellare la parola.

NOTA: La lettera  d  sarà visibile sull'ultima linea dello schermo mentre la
      batti. Vim attende che tu batta  w . Se vedi una lettera diversa
      da  d  hai battuto qualcosa di sbagliato; premi  <ESC>  e ricomincia.

---> Ci sono le alcune parole gioia che non c'entrano carta in questa frase.

  5. Ripeti i passi 3 e 4 finché la frase è corretta, poi vai alla Lezione 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 2.2: ALTRI COMANDI DI CANCELLAZIONE


	   ** Batti  d$	per cancellare fino a fine linea. **

  1. Premi  <ESC>  per accertarti di essere in Modalità Normale.

  2. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  3. Muovi il cursore alla fine della linea corretta (DOPO il primo . ).

  4. Batti    d$    per cancellare fino a fine linea.

---> Qualcuno ha battuto la fine di questa linea due volte. linea due volte.


  5. Vai alla Lezione 2.3 per capire il funzionamento di questo comando.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lezione 2.3: OPERATORI E MOVIMENTI


  Molti comandi di modifica testi consistono in un operatore e un movimento.
  Il formato del comando di cancellazione con l'operatore  d  è il seguente:

	 d	movimento

  Dove:
    d	      - è l'operatore di cancellazione
    movimento - indica dove l'operatore va applicato (lista qui sotto).

  Breve lista di movimenti:
    w - fino a inizio della parola seguente, ESCLUSO il suo primo carattere.
    e - alla fine della parola corrente, COMPRESO il suo ultimo carattere.
    $ - dal cursore fino a fine linea, COMPRESO l'ultimo carattere della linea.

  Quindi se batti  de  cancelli dal cursore fino a fine parola.

NOTA:  Se batti solo il movimento mentre sei in Modalità Normale, senza
       nessun operatore, il cursore si muoverà come specificato.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	 Lezione 2.4: USO DI UN CONTATORE PER UN MOVIMENTO


  ** Se batti un numero prima di un movimento, lo ripeti altrettante volte. **

  1. Muovi il cursore fino all'inizio della linea qui sotto, indicata da --->.

  2. Batti  2w  per spostare il cursore due parole più avanti.

  3. Batti  3e  per spostare il cursore alla fine della terza parola seguente.

  4. Batti  0  (zero) per posizionarti all'inizio della linea.

  5. Ripeti i passi 2 e 3 usando numeri differenti.

---> Questa è solo una linea con parole all'interno della quale puoi muoverti.

  6. Vai alla Lezione 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	Lezione 2.5: USO DI UN CONTATORE PER CANCELLARE DI PIU'


  ** Se batti un numero prima di un movimento, lo ripeti altrettante volte. **

  Nella combinazione dell'operatore cancella e di un movimento, descritto prima,
  inserite un contatore prima del movimento per cancellare di più:
	 d   numero   movimento

  1. Muovi il cursore alla prima parola MAIUSCOLA nella riga indicata da --->.

  2. Batti  d2w  per cancellare le due parole MAIUSCOLE

  3. Ripeti i passi 1 e 2 con un contatore diverso per cancellare le parole
     MAIUSCOLE consecutive con un solo comando

--->  questa ABC DE linea FGHI JK LMN OP di parole è Q RS TUV ora ripulita.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 2.6: LAVORARE SU LINEE INTERE

	    ** Batti  dd  per cancellare un'intera linea. **

  Per la frequenza con cui capita di cancellare linee intere, chi ha
  disegnato Vi ha deciso che sarebbe stato più semplice battere
  due d consecutive per cancellare una linea.

  1. Muovi il cursore alla linea 2) nella frase qui sotto.
  2. Batti  dd  per cancellare la linea.
  3. Ora spostati alla linea 4).
  4. Batti   2dd   per cancellare due linee.

--->  1)  Le rose sono rosse,
--->  2)  Il fango è divertente,
--->  3)  Le viole sono blu,
--->  4)  Io ho un'automobile,
--->  5)  Gli orologi segnano il tempo,
--->  6)  Lo zucchero è dolce,
--->  7)  E così sei anche tu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 2.7: IL COMANDO UNDO [ANNULLA]

    **  Premi  u  per annullare gli ultimi comandi eseguiti.  **
    ** Premi  U  per annullare le modifiche all'ultima linea. **

  1. Muovi il cursore fino alla linea qui sotto, indicata da --->.
     e posizionati sul primo errore.
  2. Batti  x  per cancellare il primo carattere sbagliato.
  3. Adesso batti  u  per annullare l'ultimo comando eseguito.
  4. Ora invece, correggi tutti gli errori sulla linea usando il comando  x .
  5. Adesso batti una U Maiuscola per riportare la linea al suo stato originale.
  6. Adesso batti  u  più volte per annullare la  U  e i comandi precedenti.
  7. Adesso batti più volte CTRL-r (tieni il tasto CTRL schiacciato
     mentre batti r) per rieseguire i comandi (annullare l'annullamento).

---> Correeggi gli errori ssu quuesta linea e riimpiazzali coon "undo".

  8. Questi comandi sono molto utili. Ora spostati al Sommario della Lezione 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 2 SOMMARIO


  1. Per cancellare dal cursore fino alla parola seguente batti:      dw
  2. Per cancellare dal cursore fino alla fine della linea batti:     d$
  3. Per cancellare un'intera linea batti:    dd
  4. Per eseguire più volte un movimento, mettici davanti un numero:  2w
  5. Il formato per un comando di modifica è:

       operatore   [numero]   movimento
     dove:
       operatore - indica il da farsi, ad es.  d  per [delete] cancellare
       [numero]  - contatore facoltativo di ripetizione del movimento
       movimento - spostamento nel testo su cui operare, ad es.
       		   w [word] parola, $ (fino a fine linea), etc.

  6. Per andare a inizio linea usate uno zero:	0
  7. Per annullare i comandi precedenti, batti:	 	    u (u minuscola)
     Per annullare tutte le modifiche a una linea batti:    U (U maiuscola)
     Per annullare l'annullamento ["redo"]  	  batti:    CTRL-r


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 3.1: IL COMANDO PUT [METTI, PONI]


   ** Batti  p  per porre [put] testo (cancellato prima) dopo il cursore. **

  1. Muovi il cursore alla prima linea indicata con ---> qui in basso.

  2. Batti  dd  per cancellare la linea e depositarla in un registro di Vim.

  3. Muovi il cursore fino alla linea c) SOPRA quella dove andrebbe messa
     la linea appena cancellata.

  4. Batti  p  per mettere la linea sotto il cursore.

  5. Ripeti i passi da 2 a 4 per mettere tutte le linee nel giusto ordine.

---> d)  Puoi impararla tu?
---> b)  Le viole sono blu,
---> c)  La saggezza si impara,
---> a)  Le rose sono rosse,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 3.2: IL COMANDO REPLACE [RIMPIAZZARE]


  ** Batti  rx  per rimpiazzare il carattere sotto al cursore con x . **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  2. Muovi il cursore fino a posizionarlo sopra il primo errore.

  3. Batti   r	e poi il carattere che dovrebbe stare qui.

  4. Ripeti i passi 2 e 3 finché la prima linea è uguale alla seconda.

--->  Ammattendo quetta lince, qualcuno ho predato alcuni tosti sballiati!
--->  Immettendo questa linea, qualcuno ha premuto alcuni tasti sbagliati!

  5. Ora passa alla Lezione 3.2.

NOTA: Ricordati che dovresti imparare con la pratica, non solo leggendo.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	     Lezione 3.3: L'OPERATORE CHANGE [CAMBIA]


     ** Per cambiare fino alla fine di una parola, batti  ce . **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  2. Posiziona il cursore alla  u  in lubw.

  3. Batti  ce  e la parola corretta (in questo caso, batti  inea    ).

  4. Premi <ESC> e vai sul prossimo carattere da modificare.

  5. Ripeti i passi 3 e 4 finché la prima frase è uguale alla seconda.

---> Questa lubw ha alcune pptfd da asdert usgfk l'operatore CHANGE.
---> Questa linea ha alcune parole da cambiare usando l'operatore CHANGE.

Nota che  ce  cancella la parola, e ti mette anche in Modalità Inserimento
    [Insert Mode]


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lezione 3.4: ALTRI CAMBIAMENTI USANDO c

** L'operatore c [CHANGE] agisce sugli stessi movimenti di  d  [DELETE] **

  1. L'operatore CHANGE si comporta come DELETE.  Il formato è:

       c   [numero]   movimento

  2. I movimenti sono gli stessi,
     ad es. w (word, parola), $ (fine linea), etc.

  3. Muovi il cursore alla prima linea qui sotto, indicata da --->.

  4. Posiziona il cursore al primo errore.

  5. Batti  c$  e inserisci resto della linea utilizzando come modello la
     linea seguente, e quando hai finito premi <ESC>

---> La fine di questa linea deve essere aiutata a divenire come la seguente.
---> La fine di questa linea deve essere corretta usando il comando  c$  .

NOTA:  Puoi usare il tasto Backspace se devi correggere errori di battitura.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 3 SOMMARIO


  1. Per reinserire del testo appena cancellato, batti   p   .  Questo
     inserisce [pone] il testo cancellato DOPO il cursore (se era stata tolta
     una linea intera, questa verrà messa nella linea SOTTO il cursore).

  2. Per rimpiazzare il carattere sotto il cursore, batti   r   e poi il
     carattere che vuoi sostituire.

  3. L'operatore change ti permette di cambiare dal cursore fino a dove
     arriva il movimento.  Ad es. Batti  ce  per cambiare dal cursore
     fino alla fine della parola,  c$  per cambiare fino a fine linea.

  4. Il formato di  change  è:

       c   [numero]   movimento

Ora vai alla prossima Lezione.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lezione 4.1: POSIZIONAMENTO E SITUAZIONE FILE

  ** Batti CTRL-G per vedere a che punto sei nel file e la situazione **
  **     del file.  Batti G  per raggiungere una linea nel file.      **

  NOTA: Leggi l'intera Lezione prima di eseguire un qualsiasi passo!!

  1. Tieni premuto il tasto CTRL e batti  g  .  Ossia batti CTRL-G.
     Un messaggio apparirà in fondo alla pagina con il NOME FILE e la
     posizione nel file.  Ricordati il numero della linea per il Passo 3.

NOTA: La posizione del cursore si vede nell'angolo in basso a destra dello
      schermo, se è impostata l'opzione 'ruler' (righello, vedi :help ruler).

  2. Premi  G  [G Maiuscolo] per posizionarti in fondo al file.
     Batti gg  per posizionarti in cima al file.

  3. Batti il numero della linea in cui ti trovavi e poi  G  .  Questo ti
     riporterà fino alla linea in cui ti trovavi quando avevi battuto CTRL-g.

  4. Se ti senti sicuro nel farlo, esegui i passi da 1 a 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 4.2: IL COMANDO SEARCH [RICERCA]

     ** Batti  /  seguito da una frase per ricercare quella frase. **

  1. in Modalità Normale batti il carattere  /  . Nota che la "/" e il cursore
     sono visibili in fondo dello schermo come quando si usa il comando  : .

  2. Adesso batti 'errroore' <INVIO>. Questa è la parola che vuoi ricercare.

  3. Per ricercare ancora la stessa frase, batti soltanto       n  .
     Per ricercare la stessa frase in direzione opposta, batti  N  .

  4. Per ricercare una frase nella direzione opposta, usa  ?  al posto di  /  .

  5. Per tornare dove eri prima nel file premi  CTRL-O  (tieni il tasto CTRL
     schiacciato mentre premi la lettera o).  Ripeti  CTRL-O  per andare ancora
     indietro. Puoi usare  CTRL-I  per tornare in avanti.

---> "errroore" non è il modo giusto di digitare errore; errroore è un errore.
NOTA: Quando la ricerca arriva a fine file, ricomincia dall'inizio del file,
      a meno che l'opzione 'wrapscan' sia stata disattivata.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 4.3: RICERCA DI PARENTESI CORRISPONDENTI


	 ** Batti  %  per trovare una  ),], o }  corrispondente. **

  1. Posiziona il cursore su una (, [, o { nella linea sotto, indicata da --->.

  2. Adesso batti il carattere   %  .

  3. Il cursore si sposterà sulla parentesi corrispondente.

  4. Batti  %  per muovere il cursore all'altra parentesi corrispondente.

---> Questa ( è una linea di test con (, [ ] e { } al suo interno. ))


NOTA: Questo è molto utile nel "debug" di un programma con parentesi errate!





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	    Lezione 4.4: L'OPERATORE SOSTITUZIONE (SUBSTITUTE)

  ** Batti  :s/vecchio/nuovo/g  per sostituire 'nuovo' a 'vecchio'. **

  1. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  2. Batti  :s/lla/la <INVIO> .  Nota che questo comando cambia solo
     LA PRIMA occorrenza di "lla" sulla linea.

  3. Adesso batti  :s/lla/la/g . Aggiungendo la flag  g  si chiede di
     sostituire "globalmente" sulla linea, ossia tutte le occorrenze
     di "lla" sulla linea.

---> lla stagione migliore per lla fioritura è lla primavera.

  4. Per cambiare ogni ricorrenza di una stringa di caratteri tra due linee,
     batti :#,#s/vecchio/nuovo/g  dove #,# sono i numeri che delimitano
                                  il gruppo di linee in cui si vuole sostituire.
     Batti :%s/vecchio/nuovo/g    per cambiare ogni occorrenza nell'intero file.
     Batti :%s/vecchio/nuovo/gc   per trovare ogni occorrenza nell'intero file
                                  ricevendo per ognuna una richiesta se
				  effettuare o meno la sostituzione.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 4 SOMMARIO


1. CTRL-G  visualizza a che punto sei nel file e la situazione del file.
          G  [G Maiuscolo] ti porta all'ultima linea del file.
   numero G  ti porta alla linea con quel numero.
         gg  ti porta alla prima linea del file.

2. Battendo  /  seguito da una frase ricerca IN AVANTI quella frase.
   Battendo  ?  seguito da una frase ricerca ALL'INDIETRO quella frase.
   DOPO una ricerca batti    n   per trovare la prossima occorrenza nella
   stessa direzione, oppure  N   per cercare in direzione opposta.
   CTRL-O ti porta alla posizione precedente, CTRL-I a quella più nuova.

3. Battendo  %  mentre il cursore si trova su  (,),[,],{, oppure }
   ti posizioni sulla corrispondente parentesi.

4. Per sostituire "nuovo" al primo "vecchio" in 1 linea batti :s/vecchio/nuovo
   Per sostituire "nuovo" ad ogni  "vecchio" in 1 linea batti :s/vecchio/nuovo/g
   Per sostituire frasi tra 2 numeri di linea [#]  batti   :#,#s/vecchio/nuovo/g
   Per sostituire tutte le occorrenze nel file batti	     :%s/vecchio/nuovo/g
   Per chiedere conferma ogni volta aggiungi 'c'	    :%s/vecchio/nuovo/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 5.1: COME ESEGUIRE UN COMANDO ESTERNO


  ** Batti  :!  seguito da un comando esterno per eseguire quel comando. **

  1. Batti il comando   :   per posizionare il cursore in fondo allo schermo.
     Ciò ti permette di immettere un comando dalla linea comandi.

  2. Adesso batti il carattere  !  (punto esclamativo).  Ciò ti permette di
     eseguire qualsiasi comando esterno si possa eseguire nella "shell".

  3. Ad esempio batti   ls   dopo il ! e poi premi <INVIO>.  Questo
     visualizza una lista della tua directory, proprio come se fossi in una
     "shell". Usa   :!dir  se  ls  non funziona.   [Unix: ls  MS-DOS: dir]

NOTA:  E' possibile in questo modo eseguire un comando a piacere, specificando
       anche dei parametri per i comandi stessi.

NOTA:  Tutti i comandi  :  devono essere terminati premendo <INVIO>
       Da qui in avanti non lo ripeteremo ogni volta.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lezione 5.2: ANCORA SULLA SCRITTURA DEI FILE


   ** Per salvare le modifiche apportate a un testo batti :w NOMEFILE. **

  1. Batti  :!dir  or  :!ls  per procurarti una lista della tua directory.
     Già sai che devi premere <INVIO> dopo aver scritto il comando.

  2. Scegli un NOMEFILE che ancora non esista, ad es. TEST   .

  3. Adesso batti:	 :w TEST   (dove TEST è il NOMEFILE che hai scelto).

  4. Questo salva l'intero file ("tutor.it")  con il nome di TEST.
     Per verifica batti ancora  :!dir  o  :!ls  per listare la tua directory.

NOTA: Se esci da Vim e riesegui Vim battendo  vim TEST , il file aperto
      sarà una copia esatta di "tutor.it" al momento del salvataggio.

  5. Ora cancella il file battendo (MS-DOS):   :!del TEST
				 o (Unix):     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 5.3: SELEZIONARE IL TESTO DA SCRIVERE

   ** Per salvare una porzione di file, batti  v movimento :w NOMEFILE **

  1. Muovi il cursore su questa linea.

  2. Premi  v  e muovi il cursore fino alla linea numerata 5., qui sotto.
     Nota che il testo viene evidenziato.

  3. Batti il carattere  :  .  In fondo allo schermo apparirà :'<,'>  .

  4. Batti  w TEST  , dove TEST è il nome di un file non ancora esistente.
     Verifica che si veda  :'<,'>w TEST   prima di dare <INVIO>.

  5. Vim scriverà nel file TEST le linee che hai selezionato.  Usa  :!dir
     o  :!ls  per controllare che esiste.  Non cancellarlo ora!  Ti servirà
     nella prossima lezione.

NOTA:  Battere  v  inizia una selezione visuale.  Puoi muovere il cursore
       come vuoi, e rendere la selezione più piccola o più grande.  Poi
       puoi usare un operatore per agire sul testo selezionato.
       Ad es.,  d  cancella il testo.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lezione 5.4: INSERIRE E RIUNIRE FILE


   ** Per inserire il contenuto di un file, batti  :r NOMEFILE  **

  1. Posiziona il cursore appena sopra questa riga.

NOTA: Dopo aver eseguito il Passo 2 vedrai il testo della Lezione 5.3.
      Quindi spostati IN GIU' per tornare ancora a questa Lezione.

  2. Ora inserisci il tuo file TEST con il comando   :r TEST   dove TEST è
     il nome che hai usato per creare il file.
     Il file richiesto è inserito sotto la linea in cui si trova il cursore.

  3. Per verificare che un file è stato inserito, torna indietro col cursore
     e nota che ci sono ora 2 copie della Lezione 5.3, quella originale e
     quella che viene dal file.

NOTA:  Puoi anche leggere l'output prodotto da un comando esterno. Ad es.
       :r !ls  legge l'output del comando  ls e lo inserisce sotto la linea
       in cui si trova il cursore.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       Lezione 5 SOMMARIO


  1.  :!comando  esegue un comando esterno.

      Alcuni esempi utili sono [in MSDOS]:
	  :!dir		     -	visualizza lista directory
	  :!del NOMEFILE     -	cancella file NOMEFILE.

  2.  :w NOMEFILE  scrive su disco il file che stai editando con nome NOMEFILE.

  3.  v movimento :w NOMEFILE  salva le linee selezionate in maniera
      visuale nel file NOMEFILE.

  4.  :r NOMEFILE  legge il file NOMEFILE da disco e lo inserisce nel file
      che stai modificando, dopo la linea in cui è posizionato il cursore.

  5.  :r !dir  legge l'output del comando  dir  e lo inserisce dopo la
      linea in cui è posizionato il cursore.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 6.1: IL COMANDO OPEN [APRIRE]


        ** Batti   o   per aprire una linea sotto il cursore **
        **         e passare in Modalità Inserimento.        **

  1. Muovi il cursore fino alla linea qui sotto, indicata da --->.

  2. Batti la lettera minuscola  o  per aprire una linea sotto il cursore e
     passare in Modalità Inserimento.

  3. Poi inserisci del testo e premi <ESC> per uscire dalla
     Modalità Inserimento.

---> Dopo battuto  o  il cursore è sulla linea aperta (in Modalità Inserimento).

  4. Per aprire una linea SOPRA il cursore, batti una   O  maiuscola, invece
     che una   o   minuscola. Prova sulla linea qui sotto.
---> Apri una linea SOPRA questa battendo  O  mentre il cursore è su questa linea.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lezione 6.2: IL COMANDO APPEND [AGGIUNGERE]

	     ** Batti   a   per inserire testo DOPO il cursore. **

  1. Muovi il cursore all'inizio della linea qui sotto, indicata da --->.

  2. Batti  e  finché il cursore arriva alla fine di  li .

  3. Batti una  a  (minuscola) per aggiungere testo DOPO il cursore.

  4. Completa la parola come mostrato nella linea successiva.  Premi <ESC>
     per uscire dalla Modalità Inserimento.

  5. Usa  e  per passare alla successiva parola incompleta e ripeti i passi
     3 e 4.

---> Questa li ti permetterà di esercit ad aggiungere testo a una linea.
---> Questa linea ti permetterà di esercitarti ad aggiungere testo a una linea.

NOTA: a, i ed A entrano sempre in Modalità Inserimento, la sola differenza
      è dove verranno inseriti i caratteri.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lezione 6.3: UN ALTRO MODO DI RIMPIAZZARE [REPLACE]


     ** Batti una  R  maiuscola per rimpiazzare più di un carattere. **

  1. Muovi il cursore alla prima linea qui sotto, indicata da --->.  Muovi il
     cursore all'inizio del primo  xxx .

  2. Ora batti  R  e batti il numero che vedi nella linea seguente, in modo
     che rimpiazzi l'  xxx .

  3. Premi <ESC> per uscire dalla Modalità Replace.  Nota che il resto della
     linea resta invariato.

  4. Ripeti i passi in modo da rimpiazzare l'altro xxx .

---> Aggiungendo 123 a xxx si ottiene xxx.
---> Aggiungendo 123 a 456 si ottiene 579.

NOTA:  La Modalità Replace è come la Modalità Inserimento, ma ogni carattere
       che viene battuto ricopre un carattere esistente.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 6.4: COPIA E INCOLLA DEL TESTO


     ** usa l'operatore  y  per copiare del testo e  p  per incollarlo **

  1. Vai alla linea indicata da ---> qui sotto, e metti il cursore dopo "a)".
  
  2. Entra in Modalità Visuale con  v  e metti il cursore davanti a "primo".
  
  3. Batti  y  per copiare [yank] il testo evidenziato.

  4. Muovi il cursore alla fine della linea successiva:  j$

  5. Batti  p  per incollare [paste] il testo.  Poi batti:  a secondo <ESC> .

  6. Usa la Modalità Visuale per selezionare " elemento.", copialo con  y ,
     Vai alla fine della linea successiva con  j$  e incolla il testo con  p .

--->  a) questo è il primo elemento.
      b)

NOTA: Puoi usare  y  come operatore;  yw  copia una parola [word].
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lezione 6.5: SET [IMPOSTA] UN'OPZIONE

       ** Imposta un'opzione per ignorare maiuscole/minuscole **
       **             durante la ricerca/sostituzione         **

 1. Ricerca 'nota' battendo:   /nota <ENTER>
    Ripeti la ricerca più volte usando il tasto   n

 2. Imposta l'opzione 'ic' (Ignore Case, [Ignora maiuscolo/minuscolo])
    battendo:  :set ic

 3. Ora ricerca ancora 'nota' premendo il tasto    n
    Troverai adesso anche  Nota  e  NOTA .

 4. Imposta le opzioni 'hlsearch' e 'incsearch'    :set hls is

 5. Ora batti ancora il comando di ricerca, e guarda cosa succede:    /nota
 
 6. Per disabilitare il riconoscimento di maiuscole/minuscole batti:  :set noic
NOTA: Per non evidenziare le occorrenze trovate batti:   :nohlsearch
NOTA: Per ignorare maiuscole/minuscole solo per una ricerca, usa \c
      nel comando di ricerca:    /nota\c <INVIO>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lezione 6 SOMMARIO

  1. Batti  o  per aggiungere una linea SOTTO il cursore ed entrare in
               Modalità Inserimento.
     Batti  O  per aggiungere una linea SOPRA il cursore.

  2. Batti  a  per inserire testo DOPO il cursore.
     Batti  A  per inserire testo alla fine della linea.

  3. Il comando   e  sposta il cursore alla fine di una parola.

  4. L'operatore  y  copia del testo,  p  incolla del testo.

  5. Batti  R  per entrare in Modalità Replace, e ne esci premendo <ESC>.

  6. Batti ":set xxx" per impostare l'opzione "xxx". Alcun opzioni sono:
      'ic' 'ignorecase'	ignorare maiuscole/minuscole nella ricerca
      'is' 'incsearch'	mostra occorrenze parziali durante una ricerca
      'hls' 'hlsearch'	evidenzia tutte le occorrenze di una ricerca
     Puoi usare sia il nome completo di un'opzione che quello abbreviato.

  7. Usa il prefisso "no" per annullare una opzione:   :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lezione 7.1: OTTENERE AIUTO

		 ** Usa il sistema di aiuto on-line **

  Vim ha un esauriente sistema di aiuto on-line.  Per cominciare, prova una di
  queste alternative:
	- premi il tasto <AIUTO> (se ce n'è uno)
	- premi il tasto <F1>    (se ce n'è uno)
	- batti   :help  <INVIO>  OPPURE   :h <INVIO>

  Leggi il testo nella finestra di aiuto per vedere come funziona l'aiuto.
  Batti  CTRL-W CTRL-W	per passare da una finestra all'altra.
  Batti  :q <INVIO>   per chiudere la finestra di aiuto.

  Puoi trovare aiuto su quasi tutto, dando un argomento al comando ":help"
  Prova questi (non dimenticare di premere <INVIO>):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lezione 7.2: PREPARARE UNO SCRIPT INIZIALE

		        ** Attiva le opzioni Vim **

  Vim ha molte più opzioni di Vi, ma molte di esse sono predefinite inattive.
  Per cominciare a usare più opzioni, devi creare un file "vimrc".

  1. Comincia a editare il file "vimrc".  Questo dipende dal tuo sistema:
	:e ~/.vimrc		per Unix
	:e $VIM/_vimrc		per MS-Windows

  2. Ora leggi i contenuti del file "vimrc" distribuito come esempio:

	:r $VIMRUNTIME/vimrc_example.vim

  3. Scrivi il file con:
	:w

  La prossima volta che apri Vim, sarà abilitata la colorazione sintattica.
  Puoi aggiungere a questo file "vimrc" tutte le tue impostazioni preferite.
  Per maggiori informazioni batti:  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lezione 7.3: COMPLETAMENTO


	      ** Completamento linea comandi con CTRL-D e <TAB> **

  1. Imposta Vim in modalità compatibile:  :set nocp

  2. Guarda i file esistenti nella directory:  :!ls   o  :!dir

  3. Batti l'inizio di un comando:  :e

  4. Premi  CTRL-D  e Vim ti mostra una lista di comandi che iniziano per "e".

  5. Premi  <TAB>  e Vim completa per te il nome comando come ":edit".

  6. Ora batti uno spazio e l'inizio del nome di un file esistente:  :edit FIL

  7. Premi <TAB>.  Vim completerà il nome del file (se è il solo possibile).

NOTA:  Il completamento è disponibile per molti comandi.  Prova a battere
       CTRL-D e <TAB>.  Particolarmente utile per  :help .

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lezione 7 Sommario


  1. Batti  :help  o premi <F1> o <Help>  per aprire una finestra di aiuto.

  2. Batti  :help comando  per avere aiuto su  comando .

  3. Batti  CTRL-W CTRL-W  per saltare alla prossima finestra.

  4. Batti  :q  per chiudere la finestra di aiuto.

  5. Crea uno script iniziale vimrc contenente le tue impostazioni preferite.

  6. Mentre batti un comando  : , premi CTRL-D per vedere i possibili
     completamenti.  Premi <TAB> per usare il completamento desiderato.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Qui finisce la Guida a Vim.  Il suo intento è di fornire una breve panoramica
  dell'Editor Vim, che ti consenta di usare l'Editor abbastanza facilmente.
  Questa guida è largamente incompleta poiché Vim ha moltissimi altri comandi.
  Puoi anche leggere il manuale utente (anche in italiano): ":help user-manual".

  Per ulteriore lettura e studio, raccomandiamo:
	Vim - Vi Improved - di Steve Oualline     Editore: New Riders
  Il primo libro completamente dedicato a Vim. Utile specie per principianti.
  Contiene molti esempi e figure.
  Vedi http://iccf-holland.org/click5.html

  Quest'altro libro è più su Vi che su Vim, ma è pure consigliato:
	Learning the Vi Editor - di Linda Lamb e Arnold Robbins
	Editore: O'Reilly & Associates Inc.
  E' un buon libro per imparare quasi tutto ciò che puoi voler fare con Vi.
  Ne esiste una traduzione italiana, basata su una vecchia edizione.

  Questa guida è stata scritta da Michael C. Pierce e Robert K. Ware,
  Colorado School of Mines, usando idee fornite da Charles Smith,
  Colorado State University - E-mail: bware@mines.colorado.edu
  Modificato per Vim da Bram Moolenaar.
  Segnalare refusi ad Antonio Colombo - E-mail: azc100@gmail.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z
y@ț���vim80/tutor/tutor.zh_cn.utf-8nu�[���===============================================================================
=      欢     迎     阅     读   《 V I M  教  程 》   ——      版本 1.7       =
===============================================================================

     Vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中
     就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这
     些命令,您就能够很容易地将 Vim 当作一个通用编辑器来使用了。

     完成本教程的内容大约需要25-30分钟,取决于您训练的时间。

     注意:
     每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上
     进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。

     切记一点:本教程的设计思路是在使用中进行学习的。也就是说,您需要通过
     执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能
     会很快遗忘这些命令的!

     好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上
     的字母键 j 足够多次来移动光标,直到第一节的内容能够完全充满屏幕。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一讲第一节:移动光标


	     ** 要移动光标,请依照说明分别按下 h、j、k、l 键。 **

	     ^
	     k		    提示: h 的键位于左边,每次按下就会向左移动。
       < h	 l >		   l 的键位于右边,每次按下就会向右移动。
	     j			   j 键看起来很象一支尖端方向朝下的箭头。
	     v

  1. 请随意在屏幕内移动光标,直至您觉得舒服为止。

  2. 按下下行键(j),直到出现光标重复下行。

---> 现在您应该已经学会如何移动到下一讲吧。

  3. 现在请使用下行键,将光标移动到第一讲第二节。

提示:如果您不敢确定您所按下的字母,请按下<ESC>键回到正常(Normal)模式。
      然后再次从键盘输入您想要的命令。

提示:光标键应当也能正常工作的。但是使用hjkl键,在习惯之后您就能够更快
      地在屏幕内四处移动光标。真的是这样!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一讲第二节:VIM的进入和退出


  !! 特别提示:敬请阅读本一节的完整内容,然后再执行以下所讲解的命令。

  1. 按<ESC>键(这是为了确保您处在正常模式)。

  2. 然后输入:			:q! <回车>
     这种方式的退出编辑器会丢弃您进入编辑器以来所做的改动。

  3. 如果您看到了命令行提示符,请输入能够带您回到本教程的命令,那就是:
     vimtutor <回车>

  4. 如果您自信已经牢牢记住了这些步骤的话,请从步骤1执行到步骤3退出,然
     后再次进入编辑器。

提示: :q! <回车> 会丢弃您所做的任何改动。几讲之后您将学会如何保存改动到文件。

  5. 将光标下移到第一讲第三节。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第一讲第三节:文本编辑之删除


   ** 在正常(Normal)模式下,可以按下 x 键来删除光标所在位置的字符。**

  1. 请将光标移动到本节中下面标记有 ---> 的那一行。

  2. 为了修正输入错误,请将光标移至准备删除的字符的位置处。

  3. 然后按下 x 键将错误字符删除掉。

  4. 重复步骤2到步骤4,直到句子修正为止。

---> The ccow jumpedd ovverr thhe mooon.

  5. 好了,该行已经修正了,下面是第一讲第四节。

特别提示:在浏览本教程时,不要强行记忆。记住一点:在使用中学习。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第一讲第四节:文本编辑之插入


	 ** 在正常模式下,可以按下 i 键来插入文本。**

  1. 请将光标移动到本节中下面标记有 ---> 的第一行。

  2. 为了使得第一行内容雷同于第二行,请将光标移至文本第一个准备插入字符
     的位置。

  3. 然后按下 i 键,接着输入必要的文本字符。

  4. 每个错误修正完毕后,请按下 <ESC> 键返回正常模式。
     重复步骤2至步骤4以便修正句子。

---> There is text misng this .
---> There is some text missing from this line.

  5. 如果您对文本插入操作已经很满意,请接着阅读下面的第一讲第五节。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第一讲第五节:文本编辑之添加


			** 按 A 键以添加文本。 **

  1. 移动光标到下面第一个标记有 ---> 的一行。
     光标放在那一行的哪个字符上并不重要。

  2. 按 A 键输入必要的添加内容。

  3. 文本添加完毕后,按 <ESC> 键回到正常模式。

  4. 移动光标到下面第二个标记有 ---> 的一行。重复步骤2和步骤3以改正这个句子。

---> There is some text missing from th
     There is some text missing from this line.
---> There is also some text miss
     There is also some text missing here.

  5. 当您对添加文本操作感到满意时,请继续学习第一讲第六节。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第一讲第六节:编辑文件

		    ** 使用 :wq 以保存文件并退出。 **

  特别提示:在执行以下步骤之前,请先读完整个小节!

  1. 如您在第一讲第二节中所做的那样退出本教程: :q!
     或者,如果您可以访问另一个终端,请在那里执行以下操作。

  2. 在 shell 的提示符下输入命令: vim tutor <回车>
     'vim'是启动 Vim 编辑器的命令,'tutor'是您希望编辑的文件的名字。
     请使用一个可以改动的文件。

  3. 使用您在前面的教程中学到的命令插入删除文本。

  4. 保存改动过的文件并退出 Vim,按这些键: :wq  <回车>

  5. 如果您在步骤1中已经退出 vimtutor,请重启 vimtutor 移动到下面的小结一节。

  6. 阅读完以上步骤,弄懂它们的意义,然后在实践中进行练习。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第一讲小结


  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
	 h (左移)	j (下行)       k (上行)	    l (右移)

  2. 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>

  3. 欲退出 Vim 编辑器,请输入 <ESC>   :q!   <回车> 放弃所有改动。
                      或者输入 <ESC>   :wq   <回车> 保存改动。

  4. 在正常模式下删除光标所在位置的字符,请按: x

  5. 欲插入或添加文本,请输入:

	 i   输入欲插入文本   <ESC>		在光标前插入文本
	 A   输入欲添加文本   <ESC>             在一行后添加文本

特别提示:按下 <ESC> 键会带您回到正常模式或者撤消一个不想输入或部分完整
的命令。

好了,第一讲到此结束。下面接下来继续第二讲的内容。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第二讲第一节:删除类命令


	    ** 输入 dw 可以从光标处删除至一个单词的末尾。**

  1. 请按下 <ESC> 键确保您处于正常模式。

  2. 请将光标移动到本节中下面标记有 ---> 的那一行。

  3. 请将光标移至准备要删除的单词的起始处。

  4. 接着输入 dw 删除掉该单词。

  特别提示:当您输入时,字母 d 会同时出现在屏幕的最后一行。Vim 在等待您输入
  字母 w。如果您看到的是除 d 外的其他字符,那表明您按错了;请按下 <ESC> 键,
  然后重新再来。

---> There are a some words fun that don't belong paper in this sentence.

  5. 重复步骤3和步骤4,直至句子修正完毕。接着继续第二讲第二节内容。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第二讲第二节:更多删除类命令


		   ** 输入 d$ 从当前光标删除到行末。**

  1. 请按下 <ESC> 键确保您处于正常模式。

  2. 请将光标移动到本节中下面标记有 ---> 的那一行。

  3. 请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。

  4. 然后输入 d$ 从光标处删至当前行尾部。

---> Somebody typed the end of this line twice. end of this line twice.


  5. 请继续学习第二讲第三节就知道是怎么回事了。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第二讲第三节:关于命令和对象


  许多改变文本的命令都由一个操作符和一个动作构成。
  使用删除操作符 d 的删除命令的格式如下:

	d   motion

  其中:
    d      - 删除操作符。
    motion - 操作符的操作对象(在下面列出)。

  一个简短的动作列表:
    w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
    e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
    $ - 从当前光标当前位置直到当前行末。

  因此输入 de 会从当前光标位置删除到单词末尾。

特别提示:
    对于勇于探索者,请在正常模式下面仅按代表相应动作的键而不使用操作符,您
    将看到光标的移动正如上面的对象列表所代表的一样。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第二讲第四节:使用计数指定动作


             ** 在动作前输入数字会使它重复那么多次。 **

  1. 移动光标到下面标记有 ---> 的一行的开始。

  2. 输入 2w 使光标向前移动两个单词。

  3. 输入 3e 使光标向前移动到第三个单词的末尾。

  4. 输入 0 (数字零) 移动光标到行首。

  5. 重复步骤2和步骤3,尝试不同的数字。

---> This is just a line with words you can move around in.

  6. 请继续学习第二讲第五节。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第二讲第五节:使用计数以删除更多


	       ** 使用操作符时输入数字可以使它重复那么多次。 **

  上面已经提到过删除操作符和动作的组合,您可以在组合中动作之前插入一个数字以
  删除更多:
	 d   number(数字)   motion

  1. 移动光标到下面标记有 ---> 的一行中第一个大写字母单词上。

  2. 输入 d2w 以删除两个大写字母单词。

  3. 重复步骤1和步骤2,使用不同的数字使得用一个命令就能删除全部相邻的大写字母
     单词

--->  this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    第二讲第六节:操作整行


		     ** 输入 dd 可以删除整一个当前行。 **

  鉴于整行删除的高频度,Vi 的设计者决定要简化整行删除操作,您仅需要在同一行上
  击打两次 d 就可以删除掉光标所在的整行了。

  1. 请将光标移动到本节中下面的短句段落中的第二行。
  2. 输入 dd 删除该行。
  3. 然后移动到第四行。
  4. 接着输入 2dd 删除两行。

--->  1)  Roses are red,
--->  2)  Mud is fun,
--->  3)  Violets are blue,
--->  4)  I have a car,
--->  5)  Clocks tell time,
--->  6)  Sugar is sweet
--->  7)  And so are you.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   第二讲第七节:撤消类命令


	** 输入 u 来撤消最后执行的命令,输入 U 来撤消对整行的修改。 **

  1. 请将光标移动到本节中下面标记有 ---> 的那一行,并将其置于第一个错误
     处。
  2. 输入 x 删除第一个不想保留的字母。
  3. 然后输入 u 撤消最后执行的(一次)命令。
  4. 这次要使用 x 修正本行的所有错误。
  5. 现在输入一个大写的 U ,恢复到该行的原始状态。
  6. 接着多次输入 u 以撤消 U 以及更前的命令。
  7. 然后多次输入 CTRL-R (先按下 CTRL 键不放开,接着按 R 键),这样就
     可以重做被撤消的命令,也就是撤消掉撤消命令。

---> Fiix the errors oon thhis line and reeplace them witth undo.

  8. 这些都是非常有用的命令。下面是第二讲的小结了。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第二讲小结


  1. 欲从当前光标删除至下一个单词,请输入:dw
  2. 欲从当前光标删除至当前行末尾,请输入:d$
  3. 欲删除整行,请输入:dd

  4. 欲重复一个动作,请在它前面加上一个数字:2w
  5. 在正常模式下修改命令的格式是:
               operator   [number]   motion
     其中:
       operator - 操作符,代表要做的事情,比如 d 代表删除
       [number] - 可以附加的数字,代表动作重复的次数
       motion   - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),
		  $ 代表行末等等。

  6. 欲移动光标到行首,请按数字0键:0

  7. 欲撤消以前的操作,请输入:u (小写的u)
     欲撤消在一行中所做的改动,请输入:U (大写的U)
     欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   第三讲第一节:置入类命令


		** 输入 p 将最后一次删除的内容置入光标之后。 **

  1. 请将光标移动到本节中下面第一个标记有 ---> 的一行。

  2. 输入 dd 将该行删除,这样会将该行保存到 Vim 的一个寄存器中。

  3. 接着将光标移动到 c) 一行,即准备置入的位置的上方。记住:是上方哦。

  4. 然后在正常模式下(<ESC>键进入)输入 p 将该行粘贴置入。

  5. 重复步骤2至步骤4,将所有的行依序放置到正确的位置上。

---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   第三讲第二节:替换类命令


	  ** 输入 r 和一个字符替换光标所在位置的字符。**

  1. 请将光标移动到本节中下面标记有 ---> 的第一行。

  2. 请移动光标到第一个出错的位置。

  3. 接着输入 r 和要替换成的字符,这样就能将错误替换掉了。

  4. 重复步骤2和步骤3,直到第一行已经修改完毕。

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. 然后我们继续学习第三讲第三节。

特别提示:切记您要在使用中学习,而不是在记忆中学习。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第三讲第三节:更改类命令


		 ** 要改变文本直到一个单词的末尾,请输入 ce **

  1. 请将光标移动到本节中下面标记有 ---> 的第一行。

  2. 接着把光标放在单词 lubw 的字母 u 的位置那里。

  3. 然后输入 cw 以及正确的单词(在本例中是输入 ine )。

  4. 最后按 <ESC> 键,然后光标定位到下一个错误第一个准备更改的字母处。

  5. 重复步骤3和步骤4,直到第一个句子完全雷同第二个句子。

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

提示:请注意 ce 命令不仅仅是删除了一个单词,它也让您进入插入模式了。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       第三讲第四节:使用c更改更多


	   ** 更改类操作符可以与删除中使用的同样的动作配合使用。 **

  1. 更改类操作符的工作方式跟删除类是一致的。操作格式是:

         c    [number]   motion

  2. 动作参数(motion)也是一样的,比如 w 代表单词,$代表行末等等。

  3. 请将光标移动到本节中下面标记有 ---> 的第一行。

  4. 接着将光标移动到第一个错误处。

  5. 然后输入 c$ 使得该行剩下的部分更正得同第二行一样。最后按 <ESC> 键。

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				  第三讲小结


  1. 要重新置入已经删除的文本内容,请按小写字母 p 键。该操作可以将已删除
     的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置
     于当前光标所在行的下一行。

  2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
     符即可。

  3. 更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。
     比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当
     前光标到行末的内容。

  4. 更改类命令的格式是:

	 c   [number]   motion

现在我们继续学习下一讲。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     第四讲第一节:定位及文件状态

  ** 输入 CTRL-G 显示当前编辑文件中当前光标所在行位置以及文件状态信息。
     输入大写 G 则直接跳转到文件中的某一指定行。**

  提示:切记要先通读本节内容,之后才可以执行以下步骤!!!

  1. 按下 CTRL 键不放开然后按 g 键。我们称这个键组合为 CTRL-G。
     您会看到页面最底部出现一个状态信息行,显示的内容是当前编辑的文件名
     和文件中光标位置。请记住行号,它会在步骤3中用到。

提示:您也许会在屏幕的右下角看到光标位置,这会在 'ruler' 选项设置时发生
      (参见 :help 'ruler')

  2. 输入大写 G 可以使得当前光标直接跳转到文件最后一行。
     输入 gg 可以使得当前光标直接跳转到文件第一行。

  3. 输入您曾停留的行号,然后输入大写 G。这样就可以返回到您第一次按下
     CTRL-G 时所在的行了。

  4. 如果您觉得没问题的话,请执行步骤1至步骤3的操作进行练习。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第四讲第二节:搜索类命令


     ** 输入 / 加上一个字符串可以用以在当前文件中查找该字符串。**

  1. 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底
     部,这跟 : 命令是一样的。

  2. 接着输入 errroor <回车>。那个errroor就是您要查找的字符串。

  3. 要查找同上一次的字符串,只需要按 n 键。要向相反方向查找同上一次的字
     符串,请输入大写 N 即可。

  4. 如果您想逆向查找字符串,请使用 ? 代替 / 进行。

  5. 要回到您之前的位置按 CTRL-O (按住 Ctrl 键不放同时按下字母 o)。重复按可以
     回退更多步。CTRL-I 会跳转到较新的位置。

--->  "errroor" is not the way to spell error;  errroor is an error.
提示:如果查找已经到达文件末尾,查找会自动从文件头部继续查找,除非
      'wrapscan' 选项被复位。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   第四讲第三节:配对括号的查找


	      ** 输入 % 可以查找配对的括号 )、]、}。**

  1. 把光标放在本节下面标记有 --> 那一行中的任何一个 (、[ 或 { 处。

  2. 接着按 % 字符。

  3. 此时光标的位置应当是在配对的括号处。

  4. 再次按 % 就可以跳回配对的第一个括号处。

  5. 移动光标到另一个 (、)、[、]、{ 或 } 处,按 % 查看其所作所为。

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))


提示:在程序调试时,这个功能用来查找不配对的括号是很有用的。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第四讲第四节:替换命令


		** 输入 :s/old/new/g 可以替换 old 为 new。**

  1. 请将光标移动到本节中下面标记有 ---> 的那一行。

  2. 输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配
     串。

  3. 输入 :s/thee/the/g	则是替换全行的匹配串,该行中所有的 "thee" 都会被
     改变。

---> thee best time to see thee flowers is in thee spring.

  4. 要替换两行之间出现的每个匹配串,请
     输入   :#,#s/old/new/g   其中 #,# 代表的是替换操作的若干行中
                              首尾两行的行号。
     输入   :%s/old/new/g     则是替换整个文件中的每个匹配串。
     输入   :%s/old/new/gc    会找到整个文件中的每个匹配串,并且对每个匹配串
                              提示是否进行替换。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第四讲小结


  1. CTRL-G 用于显示当前光标所在位置和文件状态信息。
     G 用于将光标跳转至文件最后一行。
     先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。
     gg 用于将光标跳转至文件第一行。

  2. 输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
     输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
     完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查
     找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。
     CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。

  3. 如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。

  4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入  :s/old/new
     在一行内替换所有的字符串 old 为新的字符串 new,请输入  :s/old/new/g
     在两行内替换所有的字符串 old 为新的字符串 new,请输入  :#,#s/old/new/g
     在文件内替换所有的字符串 old 为新的字符串 new,请输入  :%s/old/new/g
     进行全文替换时询问用户确认每个替换需添加 c 标志        :%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		第五讲第一节:在 VIM 内执行外部命令的方法


	   ** 输入 :! 然后紧接着输入一个外部命令可以执行该外部命令。**

  1. 按下我们所熟悉的 : 命令使光标移动到屏幕底部。这样您就可以输入一行命令了。

  2. 接着输入感叹号 ! 这个字符,这样就允许您执行外部的 shell 命令了。

  3. 我们以 ls 命令为例。输入 !ls <回车> 。该命令就会列举出您当前目录的
     内容,就如同您在命令行提示符下输入 ls 命令的结果一样。如果 !ls 没起
     作用,您可以试试 :!dir 看看。

提示:所有的外部命令都可以以这种方式执行,包括带命令行参数的那些。

提示:所有的 : 命令都必须以敲 <回车> 键结束。从今以后我们就不会总是提到这一点
      了。





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      第五讲第二节:关于保存文件的更多信息


	     ** 要将对文件的改动保存到文件中,请输入 :w FILENAME 。**

  1. 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲
     <回车> 吧。

  2. 选择一个未被用到的文件名,比如 TEST。

  3. 接着输入 :w TEST  (此处 TEST 是您所选择的文件名。)

  4. 该命令会以 TEST 为文件名保存整个文件 (Vim 教程)。为了验证这一点,
     请再次输入 :!dir 或 :!ls 查看您的目录列表内容。

请注意:如果您退出 Vim 然后在以命令 vim TEST 再次启动 Vim,那么该文件内
     容应该同您保存时的文件内容是完全一样的。

  5. 现在您可以删除 TEST 文件了。在 MS-DOS 下,请输入:   :!del TEST
                                 在 Unix 下,请输入:     :!rm TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    第五讲第三节:一个具有选择性的保存命令


	    ** 要保存文件的部分内容,请输入 v motion :w FILENAME **

  1. 移动光标到本行。

  2. 接着按 v 键,将光标移动至下面第五个条目上。您会注意到之间的文本被高亮了。

  3. 然后按 : 字符。您将看到屏幕底部会出现 :'<,'> 。

  4. 现在请输入 w TEST,其中 TEST 是一个未被使用的文件名。确认您看到了
     :'<,'>w TEST 之后按 <回车> 键。

  5. 这时 Vim 会把选中的行写入到以 TEST 命名的文件中去。使用 :!dir 或 :!ls
     确认文件被正确保存。这次先别删除它!我们在下一讲中会用到它。

提示:按 v 键使 Vim 进入可视模式进行选取。您可以四处移动光标使选取区域变大或
      变小。接着您可以使用一个操作符对选中文本进行操作。例如,按 d 键会删除
      选中的文本内容。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   第五讲第四节:提取和合并文件


       ** 要向当前文件中插入另外的文件的内容,请输入 :r FILENAME **

  1. 请把光标移动到本行上面一行。

特别提示:执行步骤2之后您将看到第五讲第三节的文字,请届时往下移动
          以再次看到本讲内容。

  2. 接着通过命令 :r TEST 将前面创建的名为 TEST 的文件提取进来。
     您所提取进来的文件将从光标所在位置处开始置入。

  3. 为了确认文件已经提取成功,移动光标回到原来的位置就可以注意有两份第
     五讲第三节的内容,一份是原始内容,另外一份是来自文件的副本。

提示:您还可以读取外部命令的输出。例如, :r !ls 可以读取 ls 命令的输出,并
      把它放置在光标下面。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第五讲小结


  1. :!command 用于执行一个外部命令 command。

     请看一些实际例子:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  用于显示当前目录的内容。
	  :!del FILENAME   :!rm FILENAME   -  用于删除名为 FILENAME 的文件。

  2. :w FILENAME  可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
     件中。

  3. v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件
     FILENAME 中。

  4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
     后面。

  5. :r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 第六讲第一节:打开类命令


	 ** 输入 o 将在光标的下方打开新的一行并进入插入模式。**

  1. 请将光标移动到本节中下面标记有 ---> 的那一行。

  2. 接着输入小写的 o 在光标 *下方* 打开新的一行,这个命令会使您
     进入插入模式。

  3. 然后输入一些文字,之后按 <ESC> 键退出插入模式而进入正常模式。

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. 为了在光标 *上方* 打开新的一行,只需要输入大写的 O 而不是小写的 o
     就可以了。请在下行测试一下吧。

---> Open up a line above this by typing O while the cursor is on this line.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			第六讲第二节:附加类命令


		     ** 输入 a 将可在光标之后插入文本。 **

  1. 请在正常模式下将光标移动到本节中下面标记有 ---> 的第一行的行首。

  2. 接着输入 e 直到光标位于 li 的末尾。

  3. 输入小写的 a 则可在光标之后插入文本了。

  4. 将单词补充完整,就像下一行中的那样。之后按 <ESC> 键退出插入模式回到
     正常模式。

  5. 使用 e 移动光标到下一步不完整的单词,重复步骤3和步骤4。

---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

提示:a、i 和 A 都会带您进入插入模式,惟一的区别在于字符插入的位置。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    第六讲第三节:另外一个置换类命令的版本


		      ** 输入大写的 R 可连续替换多个字符。**

  1. 请将光标移动到本节中下面标记有 ---> 的第一行。移动光标到第一个 xxx 的
     起始位置。

  2. 然后输入大写的 R 开始把第一行中的不同于第二行的剩余字符逐一输入,就
     可以全部替换掉原有的字符而使得第一行完全雷同第二行了。

  3. 接着按 <ESC> 键退出替换模式回到正常模式。您可以注意到尚未替换的文本
     仍然保持原状。

  4. 重复以上步骤,将剩余的 xxx 也替换掉。

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

提示:替换模式与插入模式相似,不过每个输入的字符都会删除一个已有的字符。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  第六讲第四节:复制粘贴文本


		 ** 使用操作符 y 复制文本,使用 p 粘贴文本 **

  1. 定位到下面标记有 ---> 的一行,将光标移动到 "a)" 之后。

  2. 接着使用 v 进入可视模式,移动光标到 "first" 的前面。

  3. 现在输入 y 以抽出(复制)高亮的文本。

  4. 然后移动光标到下一行的末尾:j$

  5. 接着输入 p 以放置(粘贴)复制了的文本。然后输入:a second <ESC>。

  6. 使用可视模式选中 " item.",用 y 复制,再用 j$ 将光标移动到下一行末尾,
     用 p 将文本粘贴到那里。

--->  a) this is the first item.
      b)

  提示:您还可以把 y 当作操作符来使用;例如 yw 可以用来复制一个单词。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    第六讲第五节:设置类命令的选项


		  ** 设置可使查找或者替换可忽略大小写的选项 **

  1. 要查找单词 ignore 可在正常模式下输入 /ignore <回车>。
     要重复查找该词,可以重复按 n 键。

  2. 然后设置 ic 选项(Ignore Case,忽略大小写),请输入: :set ic

  3. 现在可以通过键入 n 键再次查找单词 ignore。注意到 Ignore 和 IGNORE 现在
     也被找到了。

  4. 然后设置 hlsearch 和 incsearch 这两个选项,请输入: :set hls is

  5. 现在可以再次输入查找命令,看看会有什么效果: /ignore <回车>

  6. 要禁用忽略大小写,请输入: :set noic

提示:要移除匹配项的高亮显示,请输入:  :nohlsearch
提示:如果您想要仅在一次查找时忽略字母大小写,您可以使用 \c:
      /ignore\c <回车>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       第六讲小结

  1. 输入小写的 o 可以在光标下方打开新的一行并进入插入模式。
     输入大写的 O 可以在光标上方打开新的一行。

  2. 输入小写的 a 可以在光标所在位置之后插入文本。
     输入大写的 A 可以在光标所在行的行末之后插入文本。

  3. e 命令可以使光标移动到单词末尾。

  4. 操作符 y 复制文本,p 粘贴先前复制的文本。

  5. 输入大写的 R 将进入替换模式,直至按 <ESC> 键回到正常模式。

  6. 输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:
  	'ic' 'ignorecase'	查找时忽略字母大小写
	'is' 'incsearch'	查找短语时显示部分匹配
	'hls' 'hlsearch'	高亮显示所有的匹配短语
     选项名可以用完整版本,也可以用缩略版本。

  7. 在选项前加上 no 可以关闭选项:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  第七讲第一节:获取帮助信息


		      ** 使用在线帮助系统 **

  Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方
  法之一:
	- 按下 <HELP> 键 (如果键盘上有的话)
	- 按下 <F1> 键 (如果键盘上有的话)
	- 输入	:help <回车>

  请阅读帮助窗口中的文字以了解帮助是如何工作的。
  输入 CTRL-W CTRL-W   可以使您在窗口之间跳转。
  输入 :q <回车> 可以关闭帮助窗口。

  提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以
  下参数(可别忘了按回车键哦):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  第七讲第二节:创建启动脚本


			  ** 启用 Vim 的特性 **

  Vim 的功能特性要比 Vi 多得多,但其中大部分都没有缺省启用。为了使用更多的
  特性,您得创建一个 vimrc 文件。

  1. 开始编辑 vimrc 文件,具体命令取决于您所使用的操作系统:
        :edit ~/.vimrc		这是 Unix 系统所使用的命令
        :edit $VIM/_vimrc	这是 MS-Windows 系统所使用的命令

  2. 接着读取 vimrc 示例文件的内容:
        :r $VIMRUNTIME/vimrc_example.vim

  3. 保存文件,命令为:
        :write

  下次您启动 Vim 时,编辑器就会有了语法高亮的功能。
  您可以把您喜欢的各种设置添加到这个 vimrc 文件中。
  要了解更多信息请输入 :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    第七讲第三节:补全功能


	      ** 使用 CTRL-D 和 <TAB> 可以进行命令行补全 **

  1. 请确保 Vim 不是在以兼容模式运行: :set nocp

  2. 查看一下当前目录下已经存在哪些文件,输入: :!ls   或者  :!dir

  3. 现在输入一个目录的起始部分,例如输入: :e

  4. 接着按 CTRL-D 键,Vim 会显示以 e 开始的命令的列表。

  5. 然后按 <TAB> 键,Vim 会补全命令为 :edit 。

  6. 现在添加一个空格,以及一个已有文件的文件名的起始部分,例如: :edit FIL

  7. 接着按 <TAB> 键,Vim 会补全文件名(如果它是惟一匹配的)。

提示:补全对于许多命令都有效。您只需尝试按 CTRL-D 和 <TAB>。
      它对于 :help 命令非常有用。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				  第七讲小结


  1. 输入 :help 或者按 <F1> 键或 <Help> 键可以打开帮助窗口。

  2. 输入 :help cmd 可以找到关于 cmd 命令的帮助。

  3. 输入 CTRL-W CTRL-W  可以使您在窗口之间跳转。

  4. 输入 :q 以关闭帮助窗口

  5. 您可以创建一个 vimrc 启动脚本文件用来保存您偏好的设置。

  6. 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。
     按 <TAB> 可以使用一个补全。







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  vim 教程到此就结束了。本教程只是为了简明地介绍一下 Vim 编辑器,但已足以让您
  很容易使用这个编辑器了。毋庸质疑,vim还有很多很多的命令,本教程所介
  绍的距离完整的差得很远。所以您要精通的话,还望继续努力哦。下一步您可以阅读
  Vim 的用户手册,使用的命令是: :help user-manual

  下面这本书值得推荐用于更进一步的阅读和学习:
	Vim - Vi Improved - 作者:Steve Oualline
	出版社:New Riders
  这是第一本完全讲解 Vim 的书籍。它对于初学者特别有用。其中包含有大量实例
  和图示。
  欲知详情,请访问 http://iccf-holland.org/click5.html

  以下这本书比较老了而且内容更多是关于 Vi 而非 Vim,但是也值得推荐:
	Learning the Vi Editor - 作者:Linda Lamb
	出版社:O'Reilly & Associates Inc.
  这是一本不错的书,通过它您几乎能够了解到任何您想要使用 Vi 做的事情。
  此书的第六个版本也包含了一些关于 Vim 的信息。

  本教程是由来自 Calorado School of Mines 的 Michael C. Pierce 和
  Robert K. Ware 所编写的,其中很多创意由来自 Colorado State University 的
  Charles Smith 提供。编者的电子邮箱是:bware@mines.colorado.edu

  本教程已由 Bram Moolenaar 专为 Vim 进行修订。

  译制者附言:
  ===========
      简体中文教程翻译版之译制者为梁昌泰 <beos@turbolinux.com.cn>,还有
      另外一个联系地址:linuxrat@gnuchina.org。

      繁体中文教程是从简体中文教程翻译版使用 Debian GNU/Linux 中文项目小
      组的于广辉先生编写的中文汉字转码器  autoconvert 转换而成的,并对转
      换的结果做了一些细节的改动。

  变更记录:
  =========
      2012年10月01日 赵涛 <alick9188@gmail.com>
      将 vimtutor 中译版从 1.5 升级到 1.7。

      2002年08月30日 梁昌泰 <beos@turbolinux.com.cn>
      感谢 RMS@SMTH 的指正,将多处错误修正。

      2002年04月22日 梁昌泰 <linuxrat@gnuchina.org>
      感谢 xuandong@sh163.net 的指正,将两处错别字修正。

      2002年03月18日 梁昌泰 <linuxrat@gnuchina.org>
      根据Bram Moolenaar先生在2002年03月16日的来信要求,将vimtutor1.4中译
      版升级到vimtutor1.5。

      2001年11月15日 梁昌泰 <linuxrat@gnuchina.org>
      将vimtutor1.4中译版提交给Bram Moolenaar和Sven Guckes。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Zz��e�e�vim80/tutor/tutor.pl.cp1250nu�[���===============================================================================
=    W i t a j   w   t u t o r i a l u   V I M - a      -    Wersja  1.7.     =
===============================================================================

     Vim to pot�ny edytor, kt�ry posiada wiele polece�, zbyt du�o, by
     wyja�ni� je wszystkie w tym tutorialu. Ten przewodnik ma nauczy�
     Ci� pos�ugiwa� si� wystarczaj�co wieloma komendami, by� m�g� �atwo
     u�ywa� Vima jako edytora og�lnego przeznaczenia.

     Czas potrzebny na uko�czenie tutoriala to 25 do 30 minut i zale�y
     od tego jak wiele czasu sp�dzisz na eksperymentowaniu.

	 UWAGA:
	 Polecenia wykonywane w czasie lekcji zmodyfikuj� tekst. Zr�b
	 wcze�niej kopi� tego pliku do �wicze� (je�li zacz��e� komend�
	 "vimtutor", to ju� pracujesz na kopii).

	 Pami�taj, �e przewodnik ten zosta� zaprojektowany do nauki poprzez
	 �wiczenia. Oznacza to, �e musisz wykonywa� polecenia, by nauczy� si� ich
	 prawid�owo. Je�li b�dziesz jedynie czyta� tekst, szybko zapomnisz wiele
	 polece�!

     Teraz upewnij si�, �e nie masz wci�ni�tego Caps Locka i wciskaj  j
     tak d�ugo dop�ki Lekcja 1.1. nie wype�ni ca�kowicie ekranu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 1.1.: PORUSZANIE SI� KURSOREM

       ** By wykona� ruch kursorem, wci�nij h, j, k, l jak pokazano. **

	       ^
	       k		      Wskaz�wka:  h jest po lewej
	  < h	  l >				  l jest po prawej
	       j				  j wygl�da jak strza�ka w d�
	       v
  1. Poruszaj kursorem dop�ki nie b�dziesz pewien, �e pami�tasz polecenia.

  2. Trzymaj  j  tak d�ugo a� b�dzie si� powtarza�.
     Teraz wiesz jak doj�� do nast�pnej lekcji.

  3. U�ywaj�c strza�ki w d� przejd� do nast�pnej lekcji.

Uwaga: Je�li nie jeste� pewien czego� co wpisa�e�, wci�nij <ESC>, by wr�ci� do
       trybu Normal. Wtedy powt�rz polecenie.

Uwaga: Klawisze kursora tak�e powinny dzia�a�, ale u�ywaj�c  hjkl  b�dziesz
       w stanie porusza� si� o wiele szybciej, jak si� tylko przyzwyczaisz.
       Naprawd�!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 1.2.: WYCHODZENIE Z VIM-a

 !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj ca�� lekcj� !!

  1. Wci�nij <ESC> (aby upewni� si�, �e jeste� w trybie Normal).
  2. Wpisz:			:q!<ENTER>.
     To spowoduje wyj�cie z edytora PORZUCAJ�C wszelkie zmiany, jakie
     zd��y�e� zrobi�. Je�li chcesz zapami�ta� zmiany i wyj��,
     wpisz:			:wq<ENTER>

  3. Kiedy widzisz znak zach�ty pow�oki wpisz komend�, �eby wr�ci�
     do tutoriala. Czyli:	vimtutor<ENTER>

  4. Je�li chcesz zapami�ta� polecenia, wykonaj kroki 1. do 3., aby
     wyj�� i wr�ci� do edytora.

UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobi�e�. W nast�pnych
       lekcjach dowiesz si� jak je zapami�tywa�.

  5. Przenie� kursor do lekcji 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE

	    ** Wci�nij  x  aby usun�� znak pod kursorem. **

  1. Przenie� kursor do linii poni�ej oznaczonej --->.

  2. By poprawi� b��dy, naprowad� kursor na znak do usuni�cia.

  3. Wci�nij  x  aby usun�� niechciany znak.

  4. Powtarzaj kroki 2. do 4. dop�ki zdanie nie jest poprawne.

---> Kkrowa prrzeskoczy�a prrzez ksii�ycc.

  5. Teraz, kiedy zdanie jest poprawione, przejd� do Lekcji 1.4.

UWAGA: Ucz si� przez �wiczenie, nie wkuwanie.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)


		  ** Wci�nij  i  aby wstawi� tekst. **

  1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->.

  2. Aby poprawi� pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym,
     gdzie tekst ma by� wstawiony.

  3. Wci�nij  i  a nast�pnie wpisz konieczne poprawki.

  4. Po poprawieniu b��du wci�nij <ESC>, by wr�ci� do trybu Normal.
     Powtarzaj kroki 2. do 4., aby poprawi� ca�e zdanie.

---> W tej brkje troch� .
---> W tej linii brakuje troch� tekstu.

  5. Kiedy czujesz si� swobodnie wstawiaj�c tekst, przejd� do
     podsumowania poni�ej.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	   Lekcja 1.5.: EDYCJA TEKSTU - APPENDING (dodawanie)


		   ** Wci�nij  A  by doda� tekst. **

  1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->.
     Nie ma znaczenia, kt�ry to b�dzie znak.

  2. Wci�nij  A  i wpisz odpowiednie dodatki.

  3. Kiedy tekst zosta� dodany, wci�nij <ESC> i wr�� do trybu Normalnego.

  4. Przenie� kursor do drugiej linii oznaczonej ---> i powt�rz kroki 2. i 3.,
     aby poprawi� zdanie.

---> Brakuje tu tro
     Brakuje tu troch� tekstu.
---> Tu te� troch� bra
     Tu te� troch� brakuje.

  5. Kiedy ju� utrwali�e� �wiczenie, przejd� do lekcji 1.6.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekcja 1.6.: EDYCJA PLIKU

		  ** U�yj  :wq  aby zapisa� plik i wyj��. **

   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczytaj ca�� lekcj� !!

  1. Zako�cz tutorial tak jak w lekcji 1.2.:  :q!
     lub, je�li masz dost�p do innego terminala, wykonaj kolejne kroki tam.

  2. W pow�oce wydaj polecenie:  vim tutor<ENTER>
     "vim" jest poleceniem uruchamiaj�cym edytor Vim. 'tutor' to nazwa pliku,
     jaki chcesz edytowa�. U�yj pliku, kt�ry mo�e zosta� zmieniony.

  3. Dodaj i usu� tekst tak, jak si� nauczy�e� w poprzednich lekcjach.

  4. Zapisz plik ze zmianami i opu�� Vima:  :wq<ENTER>

  5. Je�li zako�czy�e� vimtutor w kroku 1., uruchom go ponownie i przejd�
     do podsumowania poni�ej.

  6. Po przeczytaniu wszystkich krok�w i ich zrozumieniu: wykonaj je.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 1. PODSUMOWANIE

  1. Poruszasz kursorem u�ywaj�c "strza�ek" i klawiszy  hjkl .
       h (w lewo)	 j (w d�)	 k (do g�ry)		l (w prawo)

  2. By wej�� do Vima, (z pow�oki) wpisz:
			    vim NAZWA_PLIKU<ENTER>

  3. By wyj�� z Vima, wpisz:
			    <ESC> :q!<ENTER>  by usun�� wszystkie zmiany.
	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachowa�.

  4. By usun�� znak pod kursorem, wci�nij:  x

  5. By wstawi� tekst przed kursorem lub doda�:
	i   wpisz tekst   <ESC>         wstawi przed kursorem
	A   wpisz tekst   <ESC>         doda na ko�cu linii

UWAGA: Wci�ni�cie <ESC> przeniesie Ci� z powrotem do trybu Normal
       lub odwo�a niechciane lub cz�ciowo wprowadzone polecenia.

Teraz mo�emy kontynuowa� i przej�� do Lekcji 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 2.1.: POLECENIE DELETE (usuwanie)


		      ** Wpisz  dw  by usun�� wyraz. **

  1. Wci�nij  <ESC>, by upewni� si�, �e jeste� w trybie Normal.

  2. Przenie� kursor do linii poni�ej oznaczonej --->.

  3. Przesu� kursor na pocz�tek wyrazu, kt�ry chcesz usun��.

  4. Wpisz   dw   by usun�� wyraz.

  UWAGA: Litera  d  pojawi si� na dole ekranu. Vim czeka na wpisanie  w .
	 Je�li zobaczysz inny znak, oznacza to, �e wpisa�e� co� �le; wci�nij
	 <ESC> i zacznij od pocz�tku.

---> Jest tu par� papier wyraz�w, kt�re kamie� nie nale�� do no�yce tego zdania.

  5. Powtarzaj kroki 3. i 4. dop�ki zdanie nie b�dzie poprawne, potem
  przejd� do Lekcji 2.2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 2.2.: WI�CEJ POLECE� USUWAJ�CYCH


	      ** Wpisz	d$  aby usun�� tekst do ko�ca linii. **

  1. Wci�nij  <ESC>  aby si� upewni�, �e jeste� w trybie Normal.

  2. Przenie� kursor do linii poni�ej oznaczonej --->.

  3. Przenie� kursor do ko�ca poprawnego zdania (PO pierwszej  . ).

  4. Wpisz  d$  aby usun�� reszt� linii.

---> Kto� wpisa� koniec tego zdania dwukrotnie. zdania dwukrotnie.


  5. Przejd� do Lekcji 2.3., by zrozumie� co si� sta�o.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 2.3.: O OPERATORACH I RUCHACH


  Wiele polece� zmieniaj�cych tekst jest z�o�onych z operatora i ruchu.
  Format dla polecenia usuwaj�cego z operatorem  d  jest nast�puj�cy:

	    d  ruch

  gdzie:
   d      - operator usuwania.
   ruch   - na czym polecenie b�dzie wykonywane (lista poni�ej).

  Kr�tka lista ruch�w:
    w - do pocz�tku nast�pnego wyrazu WY��CZAJ�C pierwszy znak.
    e - do ko�ca bie��cego wyrazu, W��CZAJ�C ostatni znak.
    $ - do ko�ca linii, W��CZAJ�C ostatni znak.

W ten spos�b wpisanie  de  usunie znaki od kursora do ko�ca wyrazu.

UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
       tak, jak to okre�lono.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 2.4.: U�YCIE MNO�NIKA DLA RUCHU


   ** Wpisanie liczby przed ruchem powtarza ruch odpowiedni� ilo�� razy. **

  1. Przenie� kursor na pocz�tek linii poni�ej zaznaczonej --->.

  2. Wpisz  2w  aby przenie�� kursor o dwa wyrazy do przodu.

  3. Wpisz  3e  aby przenie�� kursor do ko�ca trzeciego wyrazu w prz�d.

  4. Wpisz  0  (zero), aby przenie�� kursor na pocz�tek linii.

  5. Powt�rz kroki 2. i 3. z innymi liczbami.


 ---> To jest zwyk�y wiersz z wyrazami, po kt�rych mo�esz si� porusza�.

  6. Przejd� do lekcji 2.5.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcja 2.5.: U�YCIE MNO�NIKA, BY WI�CEJ USUN��


    ** Wpisanie liczby z operatorem powtarza go odpowiedni� ilo�� razy. **

  W wy�ej wspomnianej kombinacji operatora usuwania i ruchu podaj mno�nik
  przed ruchem, by wi�cej usun��:
	d  liczba  ruch

  1. Przenie� kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.

  2. Wpisz  2dw  aby usun�� dwa wyrazy KAPITALIKAMI.

  3. Powtarzaj kroki 1. i 2. z innymi mno�nikami, aby usun�� kolejne wyrazy
     KAPITALIKAMI jednym poleceniem

---> ta ASD WE linia QWE ASDF ZXCV FG wyraz�w zosta�a ERT FGH CF oczyszczona.

UWAGA:  Mno�nik pomi�dzy operatorem  d  i ruchem dzia�a podobnie do ruchu bez
        operatora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 2.6.: OPEROWANIE NA LINIACH


		   ** Wpisz  dd  aby usun�� ca�� lini�. **

  Z powodu cz�sto�ci usuwania ca�ych linii, projektanci Vi zdecydowali, �e
  b�dzie �atwiej wpisa� dwa razy  d  aby usun�� lini�.

  1. Przenie� kursor do drugiego zdania z wierszyka poni�ej.
  2. Wpisz  dd  aby usun�� wiersz.
  3. Teraz przenie� si� do czwartego wiersza.
  4. Wpisz  2dd  aby usun�� dwa wiersze.

--->  1)  R�e s� czerwone,
--->  2)  B�oto jest fajne,
--->  3)  Fio�ki s� niebieskie,
--->  4)  Mam samoch�d,
--->  5)  Zegar podaje czas,
--->  6)  Cukier jest s�odki,
--->  7)  I ty te�.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 2.7.: POLECENIE UNDO (cofnij)


	  ** Wci�nij  u  aby cofn�� skutki ostatniego polecenia.
		 U za�, by cofn�� skutki dla ca�ej linii. **

  1. Przenie� kursor do zdania poni�ej oznaczonego ---> i umie�� go na
     pierwszym b��dzie.
  2. Wpisz  x  aby usun�� pierwszy niechciany znak.
  3. Teraz wci�nij  u  aby cofn�� skutki ostatniego polecenia.
  4. Tym razem popraw wszystkie b��dy w linii u�ywaj�c polecenia  x .
  5. Teraz wci�nij wielkie  U  aby przywr�ci� lini� do oryginalnego stanu.
  6. Teraz wci�nij  u  kilka razy, by cofn��  U  i poprzednie polecenia.
  7. Teraz wpisz CTRL-R (trzymaj r�wnocze�nie wci�ni�te klawisze CTRL i R)
     kilka razy, by cofn�� cofni�cia.

---> Poopraw b��dyyy w teej liniii i zaamiie� je prrzez coofnij.

  8. To s� bardzo po�yteczne polecenia.

     Przejd� teraz do podsumowania Lekcji 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 2. PODSUMOWANIE


  1. By usun�� znaki od kursora do nast�pnego wyrazu, wpisz:   dw
  2. By usun�� znaki od kursora do ko�ca linii, wpisz:    d$
  3. By usun�� ca�� lini�:    dd
  4. By powt�rzy� ruch, poprzed� go liczb�:    2w
  5. Format polecenia zmiany to:
                operator  [liczba]  ruch
  gdzie:
   operator  - to, co trzeba zrobi� (np.  d  dla usuwania)
   [liczba]  - opcjonalne, ile razy powt�rzy� ruch
   ruch      - przenosi nad tekstem do operowania, takim jak  w (wyraz),
	       $  (do ko�ca linii) etc.

  6. By przej�� do pocz�tku linii, u�yj zera:  0
  7. By cofn�� poprzednie polecenie, wpisz:	  u  (ma�e u)
     By cofn�� wszystkie zmiany w linii, wpisz:	  U  (wielkie U)
     By cofn�� cofni�cie, wpisz:			  CTRL-R



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 3.1.: POLECENIE PUT (wstaw)


	  ** Wpisz  p  by wstawi� ostatnie usuni�cia za kursorem. **

  1. Przenie� kursor do pierwszej linii ---> poni�ej.

  2. Wpisz  dd  aby usun�� lini� i przechowa� j� w rejestrze Vima.

  3. Przenie� kursor do linii c), POWY�EJ tej, gdzie usuni�ta linia powinna
     si� znajdowa�.

  4. Wci�nij  p  by wstawi� lini� poni�ej kursora.

  5. Powtarzaj kroki 2. do 4. a� znajd� si� w odpowiednim porz�dku.

---> d) Jak dwa anio�ki.
---> b) Na dole fio�ki,
---> c) A my si� kochamy,
---> a) Na g�rze r�e,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 3.2.: POLECENIE REPLACE (zast�p)


	   ** Wpisz  rx  aby zast�pi� znak pod kursorem na  x . **

  1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->

  2. Ustaw kursor na pierwszym b��dzie.

  3. Wpisz  r  a potem znak jaki powinien go zast�pi�.

  4. Powtarzaj kroki 2. i 3. dop�ki pierwsza linia nie b�dzie taka, jak druga.

--->  Kjedy ten wiersz bi� wst�kiwany, kto� wcizn�� per� z�ych klawirzy!
--->  Kiedy ten wiersz by� wstukiwany, kto� wcisn�� par� z�ych klawiszy!

  5. Teraz czas na Lekcj� 3.3.


UWAGA: Pami�taj, by uczy� si� �wicz�c, a nie pami�ciowo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 3.3.: OPERATOR CHANGE (zmie�)

		 ** By zmieni� do ko�ca wyrazu, wpisz  ce . **

  1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->.

  2. Umie�� kursor na  u  w lunos.

  3. Wpisz  ce  i popraw wyraz (w tym wypadku wstaw  inia ).

  4. Wci�nij <ESC> i przejd� do nast�pnej planowanej zmiany.

  5. Powtarzaj kroki 3. i 4. dop�ki pierwsze zdanie nie b�dzie takie same,
     jak drugie.

---> Ta lunos ma pire s��w, kt�re t�ina zbnic u�ifajonc pcmazu zmie�.
---> Ta linia ma par� s��w, kt�re trzeba zmieni� u�ywaj�c polecenia zmie�.

  Zauwa�, �e  ce  nie tylko zamienia wyraz, ale tak�e zmienia tryb na
  Insert (wprowadzanie).


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 3.4.: WI�CEJ ZMIAN U�YWAJ�C c


	** Polecenie change u�ywa takich samych ruch�w, jak delete. **

  1. Operator change dzia�a tak samo, jak delete. Format wygl�da tak:

	    c   [liczba]   ruch

  2. Ruchy s� tak�e takie same, np.:  w  (wyraz),  $  (koniec linii) etc.

  3. Przenie� si� do pierwszej linii poni�ej oznaczonej --->

  4. Ustaw kursor na pierwszym b��dzie.

  5. Wpisz  c$ , popraw koniec wiersza i wci�nij <ESC>.

---> Koniec tego wiersza musi by� poprawiony, aby wygl�da� tak, jak drugi.
---> Koniec tego wiersza musi by� poprawiony u�ywaj�c polecenia  c$ .

UWAGA:  Mo�esz u�ywa� <BS> aby poprawia� b��dy w czasie pisania.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 3. PODSUMOWANIE


  1. Aby wstawi� tekst, kt�ry zosta� wcze�niej usuni�ty wci�nij  p . To
     polecenie wstawia skasowany tekst PO kursorze (je�li ca�a linia
     zosta�a usuni�ta, zostanie ona umieszczona w linii poni�ej kursora).

  2. By zamieni� znak pod kursorem, wci�nij  r  a potem znak, kt�ry ma zast�pi�
     oryginalny.

  3. Operator change pozwala Ci na zast�pienie od kursora do miejsca, gdzie
     zabra�by Ci� ruch. Np. wpisz  ce  aby zamieni� tekst od kursora do ko�ca
     wyrazu,  c$  aby zmieni� tekst do ko�ca linii.

  4. Format do polecenia change (zmie�):

	c   [liczba]   obiekt

     Teraz przejd� do nast�pnej lekcji.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lekcja 4.1.: PO�O�ENIE KURSORA ORAZ STATUS PLIKU

       ** Naci�nij CTRL-G aby zobaczy� swoje po�o�enie w pliku i status
	  pliku. Naci�nij  G  aby przej�� do linii w pliku. **

  UWAGA: Przeczytaj ca�� lekcj� zanim wykonasz jakie� polecenia!!!

  1. Przytrzymaj klawisz CTRL i wci�nij  g . U�ywamy notacji CTRL-G.
     Na dole strony pojawi si� pasek statusu z nazw� pliku i pozycj� w pliku.
     Zapami�taj numer linii dla potrzeb kroku 3.

UWAGA: Mo�esz te� zobaczy� pozycj� kursora w prawym, dolnym rogu ekranu.
       Dzieje si� tak kiedy ustawiona jest opcja 'ruler' (wi�cej w lekcji 6.).

  2. Wci�nij G aby przej�� na koniec pliku.
     Wci�nij  gg  aby przej�� do pocz�tku pliku.

  3. Wpisz numer linii, w kt�rej by�e� a potem  G . To przeniesie Ci�
     z powrotem do linii, w kt�rej by�e� kiedy wcisn��e� CTRL-G.

  4. Je�li czujesz si� wystarczaj�co pewnie, wykonaj kroki 1-3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 4.2.: POLECENIE SZUKAJ


	     ** Wpisz  /  a nast�pnie wyra�enie, aby je znale��. **

  1. W trybie Normal wpisz  / . Zauwa�, �e znak ten oraz kursor pojawi�
     si� na dole ekranu tak samo, jak polecenie  : .

  2. Teraz wpisz  b�ond<ENTER> .  To jest s�owo, kt�rego chcesz szuka�.

  3. By szuka� tej samej frazy ponownie, po prostu wci�nij  n .
     Aby szuka� tej frazy w przeciwnym, kierunku wci�nij  N .

  4. Je�li chcesz szuka� frazy do ty�u, u�yj polecenia  ?  zamiast  / .

  5. Aby wr�ci� gdzie by�e�, wci�nij  CTRL-O. Powtarzaj, by wr�ci� dalej. CTRL-I
     idzie do przodu.

Uwaga:  'b�ond' to nie jest metoda, by przeliterowa� b��d; 'b�ond' to b��d.
Uwaga:  Kiedy szukanie osi�gnie koniec pliku, b�dzie kontynuowane od pocz�tku
        o ile opcja 'wrapscan' nie zosta�a przestawiona.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcja 4.3.: W POSZUKIWANIU PARUJ�CYCH NAWIAS�W


	       ** Wpisz  %  by znale�� paruj�cy ), ], lub } . **

  1. Umie�� kursor na kt�rym� z (, [, lub { w linii poni�ej oznaczonej --->.

  2. Teraz wpisz znak  % .

  3. Kursor powinien si� znale�� na paruj�cym nawiasie.

  4. Wci�nij  %  aby przenie�� kursor z powrotem do paruj�cego nawiasu.

  5. Przenie� kursor do innego (,),[,],{ lub } i zobacz co robi  % .

---> To ( jest linia testowa z (, [, ] i {, } . ))

Uwaga: Ta funkcja jest bardzo u�yteczna w debuggowaniu programu
       z niesparowanymi nawiasami!



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 4.4.: POLECENIE SUBSTITUTE (zamiana)


	 ** Wpisz  :s/stary/nowy/g  aby zamieni� 'stary' na 'nowy'. **

  1. Przenie� kursor do linii poni�ej oznaczonej --->.

  2. Wpisz  :s/czaas/czas<ENTER> .  Zauwa�, �e to polecenie zmienia
     tylko pierwsze wyst�pienie 'czaas' w linii.

  3. Teraz wpisz  :s/czaas/czas/g  . Dodane  g  oznacza zamian� (substytucj�)
     globalnie w ca�ej linii.  Zmienia wszystkie wyst�pienia 'czaas' w linii.

---> Najlepszy czaas na zobaczenie naj�adniejszych kwiat�w to czaas wiosny.

  4. Aby zmieni� wszystkie wyst�pienia �a�cucha znak�w pomi�dzy dwoma liniami,
     wpisz: :#,#s/stare/nowe/g gdzie #,# s� numerami linii ograniczaj�cych
                               region, gdzie ma nast�pi� zamiana.
     wpisz  :%s/stare/nowe/g   by zmieni� wszystkie wyst�pienia w ca�ym pliku.
     wpisz  :%s/stare/nowe/gc  by zmieni� wszystkie wyst�pienia w ca�ym
                               pliku, prosz�c o potwierdzenie za ka�dym razem.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 4. PODSUMOWANIE

  1. CTRL-G   poka�e Twoj� pozycj� w pliku i status pliku.  SHIFT-G przenosi
	      Ci� do ko�ca pliku.
     G        przenosi do ko�ca pliku.
     liczba G przenosi do linii [liczba].
     gg       przenosi do pierwszej linii.

  2. Wpisanie  /  a nast�pnie �a�cucha znak�w szuka �a�cucha DO PRZODU.
     Wpisanie  ?  a nast�pnie �a�cucha znak�w szuka �a�cucha DO TY�U.
     Po wyszukiwaniu wci�nij  n  by znale�� nast�pne wyst�pienie szukanej
     frazy w tym samym kierunku lub  N  by szuka� w kierunku przeciwnym.
     CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.

  3. Wpisanie  %  gdy kursor znajduje si� na (,),[,],{, lub } lokalizuje
     paruj�cy znak.

  4. By zamieni� pierwszy stary na nowy w linii, wpisz      :s/stary/nowy
     By zamieni� wszystkie stary na nowy w linii, wpisz     :s/stary/nowy/g
     By zamieni� frazy pomi�dzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
     By zamieni� wszystkie wyst�pienia w pliku, wpisz       :%s/stary/nowy/g
     By Vim prosi� Ci� o potwierdzenie, dodaj 'c'	   :%s/stary/nowy/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcja 5.1.: JAK WYKONA� POLECENIA ZEWN�TRZNE?


	** Wpisz  :!  a nast�pnie zewn�trzne polecenie, by je wykona�. **

  1. Wpisz znajome polecenie  :  by ustawi� kursor na dole ekranu. To pozwala
     na wprowadzenie komendy linii polece�.

  2. Teraz wstaw  !  (wykrzyknik). To umo�liwi Ci wykonanie dowolnego
     zewn�trznego polecenia pow�oki.

  3. Jako przyk�ad wpisz  ls  za  !  a nast�pnie wci�nij <ENTER>. To polecenie
     poka�e spis plik�w w Twoim katalogu, tak jakby� by� przy znaku zach�ty
     pow�oki. Mo�esz te� u�y�  :!dir  je�li  ls  nie dzia�a.

Uwaga:  W ten spos�b mo�na wykona� wszystkie polecenia pow�oki.
Uwaga:  Wszystkie polecenia  :  musz� by� zako�czone <ENTER>.
        Od tego momentu nie zawsze b�dziemy o tym wspomina�.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 5.2.: WI�CEJ O ZAPISYWANIU PLIK�W


	   ** By zachowa� zmiany w tek�cie, wpisz :w NAZWA_PLIKU . **

  1. Wpisz  :!dir  lub  :!ls  by zobaczy� spis plik�w w katalogu.
     Ju� wiesz, �e musisz po tym wcisn�� <ENTER>.

  2. Wybierz nazw� pliku, jaka jeszcze nie istnieje, np. TEST.

  3. Teraz wpisz:   :w TEST   (gdzie TEST jest nazw� pliku jak� wybra�e�.)

  4. To polecenie zapami�ta ca�y plik (Vim Tutor) pod nazw� TEST.
     By to sprawdzi�, wpisz  :!dir  lub  :!ls  �eby znowu zobaczy� list� plik�w.

Uwaga: Zauwa�, �e gdyby� teraz wyszed� z Vima, a nast�pnie wszed� ponownie
       poleceniem  vim TEST , plik by�by dok�adn� kopi� tutoriala, kiedy go
       zapisywa�e�.

  5. Teraz usu� plik wpisuj�c (MS-DOS):		   :!del TEST
                          lub (Unix):              :!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU


	  ** By zachowa� cz�� pliku, wpisz  v ruch :w NAZWA_PLIKU **

  1. Przenie� kursor do tego wiersza.

  2. Wci�nij  v  i przenie� kursor do punktu 5. Zauwa�, �e tekst zosta�
     pod�wietlony.

  3. Wci�nij znak  : . Na dole ekranu pojawi si�  :'<,'> .

  4. Wpisz  w TEST , gdzie TEST to nazwa pliku, kt�ry jeszcze nie istnieje.
     Upewnij si�, �e widzisz  :'<,'>w TEST zanim wci�niesz Enter.

  5. Vim zapisze wybrane linie do pliku TEST. U�yj  :!dir  lub  :!ls , �eby to
     zobaczy�. Jeszcze go nie usuwaj! U�yjemy go w nast�pnej lekcji.

UWAGA: Wci�ni�cie  v  zaczyna tryb Wizualny. Mo�esz porusza� kursorem, by
       zmieni� rozmiary zaznaczenia. Mo�esz te� u�y� operatora, by zrobi� co�
       z tekstem. Na przyk�ad  d  usuwa tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcja 5.4.: WSTAWIANIE I ��CZENIE PLIK�W


	    ** By wstawi� zawarto�� pliku, wpisz   :r NAZWA_PLIKU **

  1. Umie�� kursor tu� powy�ej tej linii.

UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejd�
       do DO�U, by zobaczy� ponownie t� lekcj�.

  2. Teraz wczytaj plik TEST u�ywaj�c polecenia  :r TEST , gdzie TEST
     jest nazw� pliku.
     Wczytany plik jest umieszczony poni�ej linii z kursorem.

  3. By sprawdzi� czy plik zosta� wczytany, cofnij kursor i zobacz, �e
     teraz s� dwie kopie Lekcji 5.3., orygina� i kopia z pliku.

UWAGA: Mo�esz te� wczyta� wyj�cie zewn�trznego polecenia. Na przyk�ad
       :r !ls  wczytuje wyj�cie polecenia ls i umieszcza je pod poni�ej
       kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 5. PODSUMOWANIE


  1.  :!polecenie wykonuje polecenie zewn�trzne.

      U�ytecznymi przyk�adami s�:

	  :!dir  -  pokazuje spis plik�w w katalogu.

	  :!rm NAZWA_PLIKU  -  usuwa plik NAZWA_PLIKU.

  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vima na dysk z nazw� NAZWA_PLIKU.

  3.  v ruch :w NAZWA_PLIKU  zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.

  4.  :r NAZWA_PLIKU  wczytuje z dysku plik NAZWA_PLIKU i wstawia go do
      bie��cego pliku poni�ej kursora.

  5.  :r !dir  wczytuje wyj�cie polecenia dir i umieszcza je poni�ej kursora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcja 6.1.: POLECENIE OPEN (otw�rz)


      ** Wpisz  o  by otworzy� lini� poni�ej kursora i przenie�� si� do
	 trybu Insert (wprowadzanie). **

  1. Przenie� kursor do linii poni�ej oznaczonej --->.

  2. Wpisz  o  (ma�e), by otworzy� lini� PONI�EJ kursora i przenie�� si�
     do trybu Insert (wprowadzanie).

  3. Wpisz troch� tekstu i wci�nij <ESC> by wyj�� z trybu Insert (wprowadzanie).

---> Po wci�ni�ciu  o  kursor znajdzie si� w otwartej linii w trybie Insert.

  4. By otworzy� lini� POWY�EJ kursora, wci�nij wielkie  O  zamiast ma�ego
     o . Wypr�buj to na linii poni�ej.

---> Otw�rz lini� powy�ej wciskaj�c SHIFT-O gdy kursor b�dzie na tej linii.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcja 6.2.: POLECENIE APPEND (dodaj)


		  ** Wpisz  a  by doda� tekst ZA kursorem. **

  1. Przenie� kursor do pocz�tku pierwszej linii poni�ej oznaczonej --->

  2. Wciskaj  e  dop�ki kursor nie b�dzie na ko�cu li .

  3. Wpisz  a  (ma�e), aby doda� tekst ZA znakiem pod kursorem.

  4. Doko�cz wyraz tak, jak w linii poni�ej. Wci�nij <ESC> aby opu�ci� tryb
     Insert.

  5. U�yj  e  by przej�� do kolejnego niedoko�czonego wyrazu i powtarzaj kroki
     3. i 4.

---> Ta li poz Ci �wi dodaw teks do ko� lin
---> Ta linia pozwoli Ci �wiczy� dodawanie tekstu do ko�ca linii.

Uwaga:  a ,  i  oraz  A  prowadz� do trybu Insert, jedyn� r�nic� jest miejsce,
       gdzie nowe znaki b�d� dodawane.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)


	   ** Wpisz wielkie  R  by zamieni� wi�cej ni� jeden znak. **

  1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->. Przenie�
     kursor do pierwszego  xxx .

  2. Wci�nij  R  i wpisz numer poni�ej w drugiej linii, tak, �e zast�pi on
     xxx.

  3. Wci�nij <ESC> by opu�ci� tryb Replace. Zauwa�, �e reszta linii pozostaje
     niezmieniona.

  5. Powtarzaj kroki by wymieni� wszystkie xxx.

---> Dodanie 123 do xxx daje xxx.
---> Dodanie 123 do 456 daje 579.

UWAGA: Tryb Replace jest jak tryb Insert, ale ka�dy znak usuwa istniej�cy
       znak.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcja 6.4.: KOPIOWANIE I WKLEJANIE TEKSTU


       ** u�yj operatora  y  aby skopiowa� tekst i  p  aby go wklei� **

  1. Przejd� do linii oznaczonej ---> i umie�� kursor za "a)".

  2. Wejd� w tryb Wizualny  v  i przenie� kursor na pocz�tek "pierwszy".

  3. Wci�nij  y  aby kopiowa� (yankowa�) pod�wietlony tekst.

  4. Przenie� kursor do ko�ca nast�pnej linii:  j$

  5. Wci�nij  p  aby wklei� (wpakowa�) tekst.  Dodaj:  a drugi<ESC> .

  6. U�yj trybu Wizualnego, aby wybra� " element.", yankuj go  y , przejd� do
     ko�ca nast�pnej linii  j$  i upakuj tam tekst z  p .

--->  a) to jest pierwszy element.
      b)
Uwaga: mo�esz u�y�  y  jako operatora;  yw  kopiuje jeden wyraz.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcja 6.5.: USTAWIANIE OPCJI


** Ustawianie opcji tak, by szukaj lub substytucja ignorowa�y wielko�� liter **

  1. Szukaj 'ignore' wpisuj�c:    /ignore<ENTER>
     Powt�rz szukanie kilka razy naciskaj�c klawisz  n .

  2. Ustaw opcj� 'ic' (Ignore case -- ignoruj wielko�� liter) poprzez
     wpisanie:		:set ic

  3. Teraz szukaj 'ignore' ponownie wciskaj�c:  n
     Zauwa�, �e Ignore i IGNORE tak�e s� teraz znalezione.

  4. Ustaw opcje 'hlsearch' i 'incsearch':    :set hls is

  5. Teraz wprowad� polecenie szukaj ponownie i zobacz co si� zdarzy:
     /ignore<ENTER>

  6. Aby wy��czy� ignorowanie wielko�ci liter:  :set noic

Uwaga: Aby usun�� pod�wietlanie dopasowa�, wpisz:   :nohlsearch
Uwaga: Aby ignorowa� wielko�� liter dla jednego wyszukiwania: /ignore\c<ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LEKCJA 6. PODSUMOWANIE


  1. Wpisanie  o  otwiera lini� PONI�EJ kursora.
     Wpisanie  O  otwiera lini� POWY�EJ kursora.

  2. Wpisanie  a  wstawia tekst ZA znakiem, na kt�rym jest kursor.
     Wpisanie  A  dodaje tekst na ko�cu linii.

  3. Polecenie  e  przenosi do ko�ca wyrazu.
  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja) go.
  5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dop�ki
     nie zostanie wci�ni�ty <ESC>.
  6. Wpisanie ":set xxx" ustawia opcj� "xxx". Niekt�re opcje:
	'ic'  'ignorecase'	ignoruj wielko�� znak�w
	'is'  'incsearch'	poka� cz�ciowe dopasowania
	'hls' 'hlsearch'	pod�wietl wszystkie dopasowania
     Mo�esz u�y� zar�wno d�ugiej, jak i kr�tkiej formy.
  7. Dodaj "no", aby wy��czy� opcj�:   :set noic





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 LEKCJA 7.1. JAK UZYSKA� POMOC?

		      ** U�ycie systemu pomocy on-line **

  Vim posiada bardzo dobry system pomocy on-line. By zacz��, spr�buj jednej
  z trzech mo�liwo�ci:
	- wci�nij klawisz <HELP> (je�li taki masz)
	- wci�nij klawisz <F1> (je�li taki masz)
	- wpisz   :help<ENTER>

  Przeczytaj tekst w oknie pomocy, aby dowiedzie� si� jak dzia�a pomoc.
  wpisz CTRL-W CTRL-W    aby przeskoczy� z jednego okna do innego
  wpisz :q<ENTER>        aby zamkn�� okno pomocy.

  Mo�esz te� znale�� pomoc na ka�dy temat podaj�c argument polecenia ":help".
  Spr�buj tych (nie zapomnij wcisn�� <ENTER>):

  :help w
  :help c_CTRL-D
  :help insert-index
  :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO

			  ** W��cz mo�liwo�ci Vima **

  Vim ma o wiele wi�cej mo�liwo�ci ni� Vi, ale wi�kszo�� z nich jest domy�lnie
  wy��czona. Je�li chcesz w��czy� te mo�liwo�ci na starcie musisz utworzy�
  plik "vimrc".

  1. Pocz�tek edycji pliku "vimrc" zale�y od Twojego systemu:
     :edit ~/.vimrc	     dla Uniksa
     :edit $VIM/_vimrc       dla MS-Windows
  2. Teraz wczytaj przyk�adowy plik "vimrc":
     :read $VIMRUNTIME/vimrc_example.vim
  3. Zapisz plik:
     :w

  Nast�pnym razem, gdy zaczniesz prac� w Vimie b�dzie on u�ywa� pod�wietlania
  sk�adni. Mo�esz doda� wszystkie swoje ulubione ustawienia do tego pliku
  "vimrc".
  Aby uzyska� wi�cej informacji, wpisz     :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lekcja 7.3.: UZUPE�NIANIE


	      ** Uzupe�nianie linii polece� z CTRL-D i <TAB> **

  1. Upewnij si�, �e Vim nie jest w trybie kompatybilno�ci:   :set nocp

  2. Zerknij, jakie pliki s� w bie��cym katalogu:   :!ls   lub   :!dir

  3. Wpisz pocz�tek polecenia:   :e

  4. Wci�nij  CTRL-D  i Vim poka�e list� polece�, jakie zaczynaj� si� na "e".

  5. Wci�nij  <TAB>  i Vim uzupe�ni polecenie do ":edit".

  6. Dodaj spacj� i zacznij wpisywa� nazw� istniej�cego pliku:   :edit FIL

  7. Wci�nij <TAB>. Vim uzupe�ni nazw� (je�li jest niepowtarzalna).

UWAGA: Uzupe�nianie dzia�a dla wielu polece�. Spr�buj wcisn�� CTRL-D i <TAB>.
       U�yteczne zw�aszcza przy  :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    Lekcja 7. PODSUMOWANIE


  1. Wpisz  :help  albo wci�nij <F1> lub <Help> aby otworzy� okno pomocy.

  2. Wpisz  :help cmd  aby uzyska� pomoc o  cmd .

  3. Wpisz  CTRL-W CTRL-W  aby przeskoczy� do innego okna.

  4. Wpisz  :q  aby zamkn�� okno pomocy.

  5. Utw�rz plik startowy vimrc aby zachowa� wybrane ustawienia.

  6. Po poleceniu  : , wci�nij CTRL-D aby zobaczy� mo�liwe uzupe�nienia.
     Wci�nij <TAB> aby u�y� jednego z nich.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Tutaj si� ko�czy tutorial Vima. Zosta� on pomy�lany tak, aby da� kr�tki
  przegl�d jego mo�liwo�ci, wystarczaj�cy by� m�g� go u�ywa�. Jest on
  daleki od kompletno�ci, poniewa� Vim ma o wiele, wiele wi�cej polece�.

  Dla dalszej nauki rekomendujemy ksi��k�:
	Vim - Vi Improved - autor Steve Oualline
	Wydawca: New Riders
  Pierwsza ksi��ka ca�kowicie po�wi�cona Vimowi. U�yteczna zw�aszcza dla
  pocz�tkuj�cych. Zawiera wiele przyk�ad�w i ilustracji.
  Zobacz http://iccf-holland.org./click5.html

  Starsza pozycja i bardziej o Vi ni� o Vimie, ale tak�e warta
  polecenia:
	Learning the Vi Editor - autor Linda Lamb
	Wydawca: O'Reilly & Associates Inc.
  To dobra ksi��ka, by dowiedzie� si� niemal wszystkiego, co chcia�by� zrobi�
  z Vi. Sz�sta edycja zawiera te� informacje o Vimie.

  Po polsku wydano:
	Edytor vi. Leksykon kieszonkowy - autor Arnold Robbins
	Wydawca: Helion 2001 (O'Reilly).
	ISBN: 83-7197-472-8
	http://helion.pl/ksiazki/vilek.htm
  Jest to ksi��eczka zawieraj�ca spis polece� vi i jego najwa�niejszych
  klon�w (mi�dzy innymi Vima).

	Edytor vi - autorzy Linda Lamb i Arnold Robbins
	Wydawca: Helion 2001 (O'Reilly) - wg 6. ang. wydania
	ISBN: 83-7197-539-2
	http://helion.pl/ksiazki/viedyt.htm
  Rozszerzona wersja Learning the Vi Editor w polskim t�umaczeniu.

  Ten tutorial zosta� napisany przez Michaela C. Pierce'a i Roberta K. Ware'a,
  Colorado School of Mines korzystaj�c z pomocy Charlesa Smitha,
  Colorado State University.
  E-mail: bware@mines.colorado.edu.

  Zmodyfikowane dla Vima przez Brama Moolenaara.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Przet�umaczone przez Miko�aja Machowskiego,
  Sierpie� 2001,
  rev. Marzec 2002
  2nd rev. Wrzesie� 2004
  3rd rev. Marzec 2006
  4th rev. Grudzie� 2008
  Wszelkie uwagi prosz� kierowa� na: mikmach@wp.pl
PK�j�Z��=��m�mvim80/tutor/tutor.es.utf-8nu�[���===============================================================================
=     B i e n v e n i d o   a l   t u t o r   d e   V I M  -  Versión 1.4     =
===============================================================================

     Vim es un editor muy potente que dispone de muchos mandatos, demasiados
     para ser explicados en un tutor como éste. Este tutor está diseñado
     para describir suficientes mandatos para que usted sea capaz de
     aprender fácilmente a usar Vim como un editor de propósito general.

     El tiempo necesario para completar el tutor es aproximadamente de 25-30
     minutos, dependiendo de cuanto tiempo se dedique a la experimentación.

     Los mandatos de estas lecciones modificarán el texto. Haga una copia de
     este fichero para practicar (con «vimtutor» esto ya es una copia).

     Es importante recordar que este tutor está pensado para enseñar con
     la práctica. Esto significa que es necesario ejecutar los mandatos
     para aprenderlos adecuadamente. Si únicamente se lee el texto, se
     olvidarán los mandatos.

     Ahora, asegúrese de que la tecla de bloqueo de mayúsculas no está
     activada y pulse la tecla	j  lo suficiente para mover el cursor
     de forma que la Lección 1.1 ocupe completamente la pantalla.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 1.1: MOVIMIENTOS DEL CURSOR

 ** Para mover el cursor, pulse las teclas h,j,k,l de la forma que se indica. **
      ^
      k       Indicación: La tecla h está a la izquierda y mueve a la izquierda.
 < h	 l >		  La tecla l está a la derecha y mueve a la derecha.
      j			  La tecla j parece una flecha que apunta hacia abajo.
      v

  1. Mueva el cursor por la pantalla hasta que se sienta cómodo con ello.

  2. Mantenga pulsada la tecla	j  hasta que se repita «automágicamente».
---> Ahora ya sabe como llegar a la lección siguiente.

  3. Utilizando la tecla abajo, vaya a la Lección 1.2.

Nota: Si alguna vez no está seguro sobre algo que ha tecleado, pulse <ESC>
      para situarse en modo Normal. Luego vuelva a teclear la orden que deseaba.

Nota: Las teclas de movimiento del cursor también funcionan. Pero usando
      hjkl podrá moverse mucho más rápido una vez que se acostumbre a ello.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lección 1.2: ENTRANDO Y SALIENDO DE VIM

  ¡¡ NOTA: Antes de ejecutar alguno de los pasos siguientes lea primero
	   la lección entera!!

  1. Pulse la tecla <ESC> (para asegurarse de que está en modo Normal).

  2. Escriba:			:q! <INTRO>

---> Esto provoca la salida del editor SIN guardar ningún cambio que se haya
     hecho. Si quiere guardar los cambios y salir escriba:
				:wq <INTRO>

  3. Cuando vea el símbolo del sistema, escriba el mandato que le trajo a este
     tutor. Éste puede haber sido:   vimtutor <INTRO>
     Normalmente se usaría:	     vim tutor <INTRO>

---> 'vim' significa entrar al editor, 'tutor' es el fichero a editar.

  4. Si ha memorizado estos pasos y se se siente con confianza, ejecute los
     pasos 1 a 3 para salir y volver a entrar al editor. Después mueva el
     cursor hasta la Lección 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lección 1.3: EDICIÓN DE TEXTO - BORRADO

** Estando en modo Normal pulse  x  para borrar el carácter sobre el cursor. **j


  1. Mueva el cursor a la línea de abajo señalada con --->.

  2. Para corregir los errores, mueva el cursor hasta que esté bajo el
     carácter que va aser borrado.

  3. Pulse la tecla  x	para borrar el carácter sobrante.

  4. Repita los pasos 2 a 4 hasta que la frase sea la correcta.

---> La vvaca saltóó soobree laa luuuuna.

  5. Ahora que la línea esta correcta, continúe con la Lección 1.4.


NOTA: A medida que vaya avanzando en este tutor no intente memorizar,
      aprenda practicando.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lección 1.4: EDICIÓN DE TEXTO - INSERCIÓN

      ** Estando en modo Normal pulse  i  para insertar texto. **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Para que la primera línea se igual a la segunda mueva el cursor bajo el
     primer carácter que sigue al texto que ha de ser insertado.

  3. Pulse  i  y escriba los caracteres a añadir.

  4. A medida que sea corregido cada error pulse <ESC> para volver al modo
     Normal. Repita los pasos 2 a 4 para corregir la frase.

---> Flta texto en esta .
---> Falta algo de texto en esta línea.

  5. Cuando se sienta cómodo insertando texto pase al resumen que esta más
     abajo.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 1


  1. El cursor se mueve utilizando las teclas de las flechas o las teclas hjkl.
	 h (izquierda)	   j (abajo)	  k (arriba)	  l (derecha)

  2. Para acceder a Vim (desde el símbolo del sistema %) escriba:
     vim FILENAME <INTRO>

  3. Para salir de Vim escriba: <ESC> :q! <INTRO> para eliminar todos
     los cambios.

  4. Para borrar un carácter sobre el cursor en modo Normal pulse:  x

  5. Para insertar texto en la posición del cursor estando en modo Normal:
	  pulse   i   escriba el texto	 pulse <ESC>

NOTA: Pulsando <ESC> se vuelve al modo Normal o cancela un mandato no deseado
      o incompleto.

Ahora continúe con la Lección 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 2.1:  MANDATOS PARA BORRAR


       ** Escriba dw para borrar hasta el final de una palabra **


  1. Pulse <ESC> para asegurarse de que está en el modo Normal.

  2. Mueva el cursor a la línea de abajo señalada con --->.

  3. Mueva el cursor al comienzo de una palabra que desee borrar.

  4. Pulse   dw   para hacer que la palabra desaparezca.


  NOTA: Las letras   dw   aparecerán en la última línea de la pantalla cuando
	las escriba. Si escribe algo equivocado pulse <ESC> y comience de nuevo.


---> Hay algunas palabras pásalo bien que no pertenecen papel a esta frase.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lección 2.2: MÁS MANDATOS PARA BORRAR


	  ** Escriba  d$  para borrar hasta el final de la línea. **


  1. Pulse  <ESC>  para asegurarse de que está en el modo Normal.

  2. Mueva el cursor a la línea de abajo señalada con --->.

  3. Mueva el cursor al final de la línea correcta (DESPUÉS del primer . ).

  4. Escriba  d$  para borrar hasta el final de la línea.

---> Alguien ha escrito el final de esta línea dos veces. esta línea dos veces.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lección 2.3: SOBRE MANDATOS Y OBJETOS


  El formato del mandato de borrar   d	 es como sigue:

	 [número]   d	objeto	    O	     d	 [número]   objeto
  donde:
   número - es cuántas veces se ha de ejecutar el mandato (opcional, defecto=1).
   d - es el mandato para borrar.
   objeto - es sobre lo que el mandato va a operar (lista, abajo).

  Una lista corta de objetos:
   w - desde el cursor hasta el final de la palabra, incluyendo el espacio.
   e - desde el cursor hasta el final de la palabra, SIN incluir el espacio.
   $ - desde el cursor hasta el final de la línea.

NOTE: Para los aventureros, pulsando sólo el objeto estando en modo Normal
      sin un mandato moverá el cursor como se especifica en la lista de objetos.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 2.4: UNA EXCEPCIÓN AL 'MANDATO-OBJETO'

	   ** Escriba	dd   para borrar una línea entera. **

  Debido a la frecuencia con que se borran líneas enteras, los diseñadores
  de Vim decidieron que sería más fácil el escribir simplemente dos des en
  una fila para borrar	una línea.

  1. Mueva el cursor a la segunda línea de la lista de abajo.
  2. Escriba  dd  para borrar la línea.
  3. Muévase ahora a la cuarta línea.
  4. Escriba   2dd   (recuerde	número-mandato-objeto) para borrar las dos
     líneas.

      1) Las rosas son rojas,
      2) El barro es divertido,
      3) El cielo es azul,
      4) Yo tengo un coche,
      5) Los relojes marcan la hora,
      6) El azucar es dulce,
      7) Y así eres tu.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lección 2.5: EL MANDATO DESHACER


   ** Pulse  u	para deshacer los últimos mandatos,
	     U	para deshacer una línea entera.       **

  1. Mueva el cursor a la línea de abajo señalada con ---> y sitúelo bajo el
     primer error.
  2. Pulse  x  para borrar el primer caráter erróneo.
  3. Pulse ahora  u  para deshacer el último mandato ejecutado.
  4. Ahora corrija todos los errores de la línea usando el mandato  x.
  5. Pulse ahora  U  mayúscula para devolver la línea a su estado original.
  6. Pulse ahora  u  unas pocas veces para deshacer lo hecho por  U  y los
     mandatos previos.
  7. Ahora pulse CTRL-R (mantenga pulsada la tecla CTRL y pulse R) unas
     pocas veces para volver a ejecutar los mandatos (deshacer lo deshecho).

---> Corrrija los errores dee esttta línea y vuuelva a ponerlos coon deshacer.

  8. Estos mandatos son muy útiles. Ahora pase al resumen de la Lección 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 2

  1. Para borrar desde el cursor hasta el final de una palabra pulse:	dw

  2. Para borrar desde el cursor hasta el final de una línea pulse:	d$

  3. Para borrar una línea enter pulse:    dd

  4. El formato de un mandato en modo Normal es:

       [número]   mandato   objeto   O	 mandato   [número]   objeto
     donde:
       número - es cuántas veces se ha de ejecutar el mandato
       mandato - es lo que hay que hacer, por ejemplo, d para borrar
       objeto - es sobre lo que el mandato va a operar, por ejemplo
		w (palabra), $ (hasta el final de la línea), etc.

  5. Para deshacer acciones previas pulse:		 u (u minúscula)
     Para deshacer todos los cambios de una línea pulse: U (U mayúscula)
     Para deshacer lo deshecho pulse:			 CTRL-R


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lección 3.1: EL MANDATO «PUT» (poner)

  ** Pulse p para poner lo último que ha borrado después del cursor. **

  1. Mueva el cursor al final de la lista de abajo.

  2. Escriba  dd  para borrar la línea y almacenarla en el buffer de Vim.

  3. Mueva el cursor a la línea que debe quedar por debajo de la
     línea a mover.

  4. Estando en mod Normal, pulse   p	para restituir la línea borrada.

  5. Repita los pasos 2 a 4 para poner todas las líneas en el orden correcto.

     d) ¿Puedes aprenderla tu?
     b) Las violetas son azules,
     c) La inteligencia se aprende,
     a) Las rosas son rojas,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lección 3.2: EL MANDATO «REPLACE» (remplazar)


  ** Pulse  r  y un carácter para sustituir el carácter sobre el cursor. **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Mueva el cursor para situarlo bajo el primer error.

  3. Pulse   r	 y el carácter que debe sustituir al erróneo.

  4. Repita los pasos 2 y 3 hasta que la primera línea esté corregida.

---> ¡Cuendo esta línea fue rscrita alguien pulso algunas teclas equibocadas!
---> ¡Cuando esta línea fue escrita alguien pulsó algunas teclas equivocadas!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lección 3.3: EL MANDATO «CHANGE» (cambiar)


     ** Para cambiar parte de una palabra o toda ella escriba  cw . **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Sitúe el cursor en la u de lubrs.

  3. Escriba  cw  y corrija la palabra (en este caso, escriba 'ínea').

  4. Pulse <ESC> y mueva el cursor al error siguiente (el primer carácter
     que deba cambiarse).

  5. Repita los pasos 3 y 4 hasta que la primera frase sea igual a la segunda.

---> Esta lubrs tiene unas pocas pskavtad que corregir usem el mandato change.
---> Esta línea tiene unas pocas palabras que corregir usando el mandato change.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lección 3.4: MÁS CAMBIOS USANDO c

   ** El mandato change se utiliza con los mismos objetos que delete. **

  1. El mandato change funciona de la misma forma que delete. El formato es:

       [número]   c   objeto	   O	    c	[número]   objeto

  2. Los objetos son tambiém los mismos, tales como  w (palabra), $ (fin de
     la línea), etc.

  3. Mueva el cursor a la primera línea de abajo señalada con --->.

  4. Mueva el cursor al primer error.

  5. Escriba  c$  para hacer que el resto de la línea sea como la segunda
     y pulse <ESC>.

---> El final de esta línea necesita alguna ayuda para que sea como la segunda.
---> El final de esta línea necesita ser corregido usando el mandato  c$.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 3


  1. Para sustituir texto que ha sido borrado, pulse  p . Esto Pone el texto
     borrado DESPUÉS del cursor (si lo que se ha borrado es una línea se
     situará sobre la línea que está sobre el cursor).

  2. Para sustituir el carácter bajo el cursor, pulse	r   y luego el
     carácter que sustituirá al original.

  3. El mandato change le permite cambiar el objeto especificado desde la
     posición del cursor hasta el final del objeto; e.g. Pulse	cw  para
     cambiar desde el cursor hasta el final de la palabra, c$  para cambiar
     hasta el final de la línea.

  4. El formato para change es:

	 [número]   c	objeto	      O		c   [número]   objeto

  Pase ahora a la lección siguiente.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 4.1: SITUACIÓN EN EL FICHERO Y SU ESTADO


 ** Pulse CTRL-g para mostrar su situación en el fichero y su estado.
    Pulse MAYU-G para moverse a una determinada línea del fichero. **

  Nota: ¡¡Lea esta lección entera antes de ejecutar alguno de los pasos!!


  1. Mantenga pulsada la tecla Ctrl y pulse  g . Aparece una línea de estado
     al final de la pantalla con el nombre del fichero y la línea en la que
     está situado. Recuerde el número de la línea para el Paso 3.

  2. Pulse Mayu-G para ir al final del fichero.

  3. Escriba el número de la línea en la que estaba y despúes Mayu-G. Esto
     le volverá a la línea en la que estaba cuando pulsó Ctrl-g.
     (Cuando escriba los números NO se mostrarán en la pantalla).

  4. Si se siente confiado en poder hacer esto ejecute los pasos 1 a 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lección 4.2: EL MANDATO «SEARCH» (buscar)

     ** Escriba  /  seguido de una frase para buscar la frase. **

  1. En modo Normal pulse el carácter  / . Fíjese que tanto el carácter  /
     como el cursor aparecen en la última línea de la pantalla, lo mismo
     que el mandato  : .

  2. Escriba ahora   errroor   <INTRO>. Esta es la palabra que quiere buscar.

  3. Para repetir la búsqueda, simplemente pulse  n .
     Para busacar la misma frase en la dirección opuesta, pulse Mayu-N .

  4. Si quiere buscar una frase en la dirección opuesta (hacia arriba),
     utilice el mandato  ?  en lugar de  / .

---> Cuando la búsqueda alcanza el final del fichero continuará desde el
     principio.

  «errroor» no es la forma de deletrear error; errroor es un error.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 4.3: BÚSQUEDA PARA COMPROBAR PARÉNTESIS

   ** Pulse %  para encontrar el paréntesis correspondiente a ),] o } . **


  1. Sitúe el cursor en cualquiera de los caracteres ), ] o } en la línea de
     abajo señalada con --->.

  2. Pulse ahora el carácter  %  .

  3. El cursor debería situarse en el paréntesis (, corchete [ o llave {
     correspondiente.

  4. Pulse  %  para mover de nuevo el cursor al paréntesis, corchete o llave
     correspondiente.

---> Esto ( es una línea de prueba con (, [, ], {, y } en ella. )).

Nota: ¡Esto es muy útil en la detección de errores en un programa con
      paréntesis, corchetes o llaves disparejos.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lección 4.4: UNA FORMA DE CAMBIAR ERRORES


    ** Escriba	:s/viejo/nuevo/g para sustituir 'viejo' por 'nuevo'. **


  1. Mueva el cursor a la línea de abajo señalada con --->.

  2. Escriba  :s/laas/las/  <INTRO> . Tenga en cuenta que este mandato cambia
     sólo la primera aparición en la línea de la expresión a cambiar.

---> Laas mejores épocas para ver laas flores son laas primaveras.

  4. Para cambiar todas las apariciones de una expresión ente dos líneas
     escriba   :#,#s/viejo/nuevo/g   donde #,# son los números de las dos
     líneas. Escriba   :%s/viejo/nuevo/g   para hacer los cambios en todo
     el fichero.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			    RESUMEN DE LA LECCIÓN 4


  1. Ctrl-g  muestra la posición del cursor en el fichero y su estado.
     Mayu-G mueve el cursor al final del fichero. Un número de línea
     seguido de Mayu-G mueve el cursor a la línea con ese número.

  2. Pulsando  /  seguido de una frase busca la frase hacia ADELANTE.
     Pulsando  ?  seguido de una frase busca la frase hacia ATRÁS.
     Después de una búsqueda pulse  n  para encontrar la aparición
     siguiente en la misma dirección.

  3. Pulsando  %  cuando el cursor esta sobre (,), [,], { o } localiza
     la pareja correspondiente.

  4. Para cambiar viejo por nuevo en una línea pulse	      :s/viejo/nuevo
     Para cambiar todos los viejo por nuevo en una línea pulse :s/viejo/nuevo/g
     Para cambiar frases entre dos números de líneas pulse  :#,#s/viejo/nuevo/g
     Para cambiar viejo por nuevo en todo el fichero pulse  :%s/viejo/nuevo/g
     Para pedir confirmación en cada caso añada  'c'	    :%s/viejo/nuevo/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lección 5.1: CÓMO EJECUTAR UN MANDATO EXTERNO


  ** Escriba  :!  seguido de un mandato externo para ejecutar ese mandato. **


  1. Escriba el conocido mandato  :  para situar el cursor al final de la
     pantalla. Esto le permitirá introducir un mandato.

  2. Ahora escriba el carácter ! (signo de admiración). Esto le permitirá
     ejecutar cualquier mandato del sistema.

  3. Como ejemplo escriba   ls	 después del ! y luego pulse <INTRO>. Esto
     le mostrará una lista de su directorio, igual que si estuviera en el
     símbolo del sistema. Si  ls  no funciona utilice	!:dir	.

--->Nota: De esta manera es posible ejecutar cualquier mandato externo.

--->Nota: Todos los mandatos   :   deben finalizarse pulsando <INTRO>.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 5.2: MÁS SOBRE GUARDAR FICHEROS


     ** Para guardar los cambios hechos en un fichero,
	escriba  :w NOMBRE_DE_FICHERO. **


  1. Escriba  :!dir  o	:!ls  para ver una lista de su directorio.
     Ya sabe que debe pulsar <INTRO> después de ello.

  2. Elija un nombre de fichero que todavía no exista, como TEST.

  3. Ahora escriba   :w TEST  (donde TEST es el nombre de fichero elegido).

  4. Esta acción guarda todo el fichero  (Vim Tutor)  bajo el nombre TEST.
     Para comprobarlo escriba	:!dir	de nuevo y vea su directorio.

---> Tenga en cuenta que si sale de Vim y  entra de nuevo con el nombre de
     fichero TEST, el fichero sería una copia exacta del tutor cuando lo
     ha guardado.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lección 5.3: UN MANDATO DE ESCRITURA SELECTIVO

   ** Para guardar parte del fuchero escriba   :#,# NOMBRE_DEL_FICHERO **


  1. Escriba de nuevo, una vez más,  :!dir  o  :!ls  para obtener una lista
     de su directorio y elija nombre de fichero adecuado, como TEST.

  2. Mueva el cursor al principio de la pantalla y pulse  Ctrl-g  para saber
     el número de la línea correspondiente. ¡RECUERDE ESTE NÚMERO!

  3. Ahora mueva el cursor a la última línea de la pantalla y pulse Ctrl-g
     de nuevo. ¡RECUERDE TAMBIÉN ESTE NÚMERO!

  4. Para guardar SOLAMENTE una parte de un fichero, escriba  :#,# w TEST
     donde #,# son los números que usted ha recordado (primera línea,
     última línea) y TEST es su nombre de dichero.

  5. De nuevo, vea que el fichero esta ahí con	:!dir  pero NO lo borre.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lección 5.4: RECUPERANDO Y MEZCLANDO FICHEROS

 ** Para insertar el contenido de un fichero escriba :r NOMBRE_DEL_FICHERO **

  1. Escriba   :!dir   para asegurarse de que su fichero TEST del ejercicio
     anterior está presente.

  2. Situe el cursor al principio de esta pantalla.

NOTA: Después de ejecutar el paso 3 se verá la Lección 5.3. Luego muévase
      hacia ABAJO para ver esta lección de nuevo.

  3. Ahora recupere el fichero TEST utilizando el mandato  :r TEST  donde
     TEST es el nombre del fichero.

NOTA: El fichero recuperado se sitúa a partir de la posición del cursor.

  4. Para verificar que el fichero ha sido recuperado, mueva el cursor hacia
     arriba y vea que hay dos copias de la Lección 5.3, la original y la
     versión del fichero.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   RESUMEN DE LA LECCIÓN 5


  1.  :!mandato  ejecuta un mandato externo.

      Algunos ejemplos útiles son:
	  :!dir - muestra el contenido de un directorio.
	  :!del NOMBRE_DE_FICHERO  -  borra el fichero NOMBRE_DE FICHERO.

  2.  :#,#w NOMBRE_DE _FICHERO  guarda desde las líneas # hasta la # en el
     fichero NOMBRE_DE_FICHERO.

  3.  :r NOMBRE_DE _FICHERO  recupera el fichero del disco NOMBRE_DE FICHERO
     y lo inserta en el fichero en curso a partir de la posición del cursor.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lección 6.1: EL MANDATO «OPEN» (abrir)


	 ** Pulse  o  para abrir una línea debajo del cursor
	    y situarle en modo Insert **


  1. Mueva el cursor a la línea de abajo señalada con --->.

  2. Pulse  o (minúscula) para abrir una línea por DEBAJO del cursor
     y situarle en modo Insert.

  3. Ahora copie la línea señalada con ---> y pulse <ESC> para salir del
     modo Insert.

---> Luego de pulsar  o  el cursor se sitúa en la línea abierta en modo Insert.

  4. Para abrir una línea por encima del cursor, simplemente pulse una O
     mayúscula, en lugar de una o minúscula. Pruebe este en la línea siguiente.
Abra una línea sobre ésta pulsando Mayu-O cuando el curso está en esta línea.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lección 6.2: EL MANDATO «APPEND» (añadir)

	 ** Pulse  a  para insertar texto DESPUÉS del cursor. **


  1. Mueva el cursor al final de la primera línea de abajo señalada con --->
     pulsando  $  en modo Normal.

  2. Escriba una  a  (minúscula) para añadir texto DESPUÉS del carácter
     que está sobre el cursor. (A mayúscula añade texto al final de la línea).

Nota: ¡Esto evita el pulsar  i , el último carácter, el texto a insertar,
      <ESC>, cursor a la derecha y, finalmente, x , sólo para añadir algo
      al final de una línea!

  3. Complete ahora la primera línea. Nótese que append es exactamente lo
     mismo que modo Insert, excepto por el lugar donde se inserta el texto.

---> Esta línea le permitirá praticar
---> Esta línea le permitirá praticar el añadido de texto al final de una línea.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lección 6.3: OTRA VERSIÓN DE «REPLACE» (remplazar)

    ** Pulse una  R  mayúscula para sustituir más de un carácter. **


  1. Mueva el cursor a la primera línea de abajo señalada con --->.

  2. Sitúe el cursor al comienzo de la primera palabra que sea diferente
     de las de la segunda línea marcada con ---> (la palabra 'anterior').

  3. Ahora pulse  R  y sustituya el resto del texto de la primera línea
     escribiendo sobre el viejo texto para que la primera línea sea igual
     que la primera.

---> Para hacer que esta línea sea igual que la anterior use las teclas.
---> Para hacer que esta línea sea igual que la siguiente escriba R y el texto.

  4. Nótese que cuando pulse <ESC> para salir, el texto no alterado permanece.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lección 6.4: FIJAR OPCIONES

 ** Fijar una opción de forma que una búsqueda o sustitución ignore la caja **
  (Para el concepto de caja de una letra, véase la nota al final del fichero)


  1. Busque 'ignorar' introduciendo:
     /ignorar
     Repita varias veces la búsque pulsando la tecla n

  2. Fije la opción 'ic' (Ignorar la caja de la letra) escribiendo:
     :set ic

  3. Ahora busque 'ignorar' de nuevo pulsando n
     Repita la búsqueda varias veces más pulsando la tecla n

  4. Fije las opciones 'hlsearch' y 'insearch':
     :set hls is

  5. Ahora introduzca la orden de búsqueda otra vez, y vea qué pasa:
     /ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   RESUMEN DE LA LECCIÓN 6


  1. Pulsando  o  abre una línea por DEBAJO del cursor y sitúa el cursor en
     la línea abierta en modo Insert.
     Pulsando una O mayúscula se abre una línea SOBRE la que está el cursor.

  2. Pulse una	a  para insertar texto DESPUÉS del carácter sobre el cursor.
     Pulsando una  A  mayúscula añade automáticamente texto al final de la
     línea.

  3. Pulsando una  R  mayúscula se entra en modo Replace hasta que, para salir,
     se pulse <ESC>.

  4. Escribiendo «:set xxx» fija la opción «xxx»







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lección 7: MANDATOS PARA LA AYUDA EN LÍNEA

		 ** Utilice el sistema de ayuda en línea **


  Vim dispone de un sistema de ayuda en línea. Para activarlo, pruebe una
  de estas tres formas:
	- pulse la tecla <AYUDA> (si dispone de ella)
	- pulse la tecla <F1> (si dispone de ella)
	- escriba   :help <INTRO>

  Escriba   :q <INTRO>	 para cerrar la ventana de ayuda.

  Puede encontrar ayuda en casi cualquier tema añadiendo un argumento al
  mandato «:help» mandato. Pruebe éstos:

  :help w <INTRO>
  :help c_<T <INTRO>
  :help insert-index <INTRO>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Aquí concluye el tutor de Vim. Está pensado para dar una visión breve del
  editor Vim, lo suficiente para permitirle usar el editor de forma bastante
  sencilla. Está muy lejos de estar completo pues Vim tiene muchísimos más
  mandatos.

  Para lecturas y estudios posteriores se recomienda el libro:
	Learning the Vi Editor - por Linda Lamb
	Editorial: O'Reilly & Associates Inc.
  Es un buen libro para llegar a saber casi todo lo que desee hacer con Vi.
  La sexta edición incluye también información sobre Vim.

  Este tutorial ha sido escrito por Michael C. Pierce y Robert K. Ware,
  Colorado School of Mines utilizando ideas suministradas por Charles Smith,
  Colorado State University.
  E-mail: bware@mines.colorado.edu.

  Modificado para Vim por Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Traducido del inglés por:

  Eduardo F. Amatria
  Correo electrónico: eferna1@platea.pntic.mec.es

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�Z	Y%���vim80/tutor/tutor.sr.utf-8nu�[���===============================================================================
=    D o b r o d o š l i   u   VIM   p r i r u č n i k  -    Verzija 1.7      =
===============================================================================

     Vim je moćan editor sa mnogo komandi, suviše da bismo ih ovde sve
     opisali.  Priručnik je zamišljen da opiše dovoljno komandi da biste
     mogli lagodno da koristite Vim kao editor opšte namene.

     Približno vreme potrebno za uspešan završetak priručnika je između
     25 i 30 minuta, u zavisnosti od vremena potrošenog na vežbu.

     UPOZORENJE:
     Komande u lekcijama će menjati tekst.  Iskopirajte ovaj fajl i
     vežbajte na kopiji (ako ste pokrenuli "vimtutor" ovo je već kopija).

     Važno je upamtiti da je ovaj priručnik zamišljen za aktivnu vežbu.
     To znači da morate upotrebljavati komande o kojima čitate da biste
     ih naučili.  Ako samo čitate tekst, zaboravićete komande!

     Ako je Caps Lock uključen ISKLJUČITE ga.  Pritisnite taster  j  dovoljno
     puta da lekcija 1.1 cela stane na ekran.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 1.1:  POMERANJE KURSORA


 ** Za pomeranje kursora, pritiskajte tastere h,j,k,l kako je prikazano **
	     ^
	     k		    Savet: h je s leve strane i pomera kursor u levo.
       < h	 l >		   l je s desne strane i pomera kursor u desno.
	     j                     j izgleda kao strelica naniže.
	     v
  1. Pomerajte kursor po ekranu dok se ne naviknete na komande.

  2. Pritisnite taster (j) dok ne počne da se ponavlja.
     Sada znate kako da dođete do naredne lekcije.

  3. Koristeći taster j pređite na lekciju 1.2.

NAPOMENA:  Ako niste sigurni šta ste zapravo pritisnuli, pritisnite <ESC>
           za prelazak u Normal mod i pokušajte ponovo.

NAPOMENA:  Strelice takođe pomeraju kursor, ali korišćenje tastera hjkl je
           znatno brže, kad se jednom naviknete na njih.  Zaista!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   Lekcija 1.2: IZLAZAK IZ VIM-a


  !! UPOZORENJE: Pre izvođenja bilo kog koraka, pročitajte celu lekciju!!

  1. Pritisnite <ESC> (editor je sada u Normal modu).

  2. Otkucajte:	:q! <ENTER>.
     Ovime se izlazi iz editora, sa GUBITKOM svih izmena.

  3. Kada se pojavi komandni prompt, unesite komandu koja je pokrenula
     ovaj priručnik:		vimtutor <ENTER>

  4. Ako ste upamtili ove korake, izvršite ih redom od 1 do 3 da biste
     izašli iz editora i ponovo ga pokrenuli.

NAPOMENA:  :q! <ENTER>  poništava sve izmene koje ste napravili.
           U narednim lekcijama naučićete kako da sačuvate izmene.

  5. Pomerite kursor na lekciju 1.3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.3: IZMENA TEKSTA - BRISANJE


	      ** Pritisnite  x  za brisanje znaka pod kursorom. **

  1. Pomerite kursor na red označen sa --->.

  2. Da biste ispravili greške, pomerajte kursor dok se
     ne nađe na slovu koje treba izbrisati.

  3. Pritisnite taster  x  da izbrišete neželjeno slovo.

  4. Ponavljajte korake od 2 do 4 dok ne ispravite sve greške.

---> RRRibaa riibi grizzze rrreepp.

  5. Kad ispravite red, pređite na lekciju 1.4.

NAPOMENA:  Dok koristite priručnik, nemojte učiti komande napamet,
           već vežbajte njihovu primenu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lekcija 1.4: IZMENA TEKSTA - UBACIVANJE


	  ** Pritisnite  i  za ubacivanje teksta ispred kursora. **

  1. Pomerite kursor na prvi sledeći red označen sa --->.

  2. Da biste tekst prvog reda izjednačili s tekstom drugog, namestite
     kursor na prvi znak POSLE kog ćete ubaciti potreban tekst.

  3. Pritisnite  i  pa unesite potrebne dopune.

  4. Po ispravci svake greške pritisnite <ESC> da se vratite u Normal mod.
     Ponovite korake od 2 do 4 da biste ispravili celu rečenicu.

---> Do teka neoje v red.
---> Deo teksta nedostaje iz ovog reda.

  5. Pređite na sledeću lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 1.5: IZMENA TEKSTA - DODAVANJE


	           ** Pritisnite  A  za dodavanje teksta. **

  1. Pomerite kursor na prvi sledeći red označen sa --->.
     Nije važno gde se nalazi kursor u tom redu.

  2. Pritisnite  A  i unesite dodatni tekst.

  3. Pošto ste dodali tekst, pritisnite <ESC> za povratak u
     Normal mod.

  4. Pomerite kursor na drugi red označen sa ---> i ponavljajte
     korake 2 i 3 dok ne ispravite tekst.

---> Deo teksta nedostaje u
     Deo teksta nedostaje u ovom redu.
---> Deo teksta nedostaje
     Deo teksta nedostaje i ovde.

  5. Pređite na lekciju 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 1.6: IZMENA FAJLA


     ** Upotrebite  :wq  za snimanje teksta i izlazak iz editora. **

  !! UPOZORENJE: Pre izvođenja bilo kog koraka, pročitajte celu lekciju!!

  1. Izađite iz editora kao u lekciji 1.2:  :q!

  2. Na komandnom promptu unesite sledeću komandu:  vim tutor <ENTER>
     'vim' je komanda za pokretanja Vim editora, 'tutor' je ime fajla koji
     želite da menjate.  Koristite fajl koji imate pravo da menjate.

  3. Ubacujte i brišite tekst kao u prethodnim lekcijama.

  4. Snimite izmenjeni tekst i izađite iz Vim-a:  :wq <ENTER>

  5. Ponovo pokrenite vimtutor i pročitajte rezime koji sledi.

  6. Pošto pročitate korake iznad i u potpunosti ih razumete:
     izvršite ih.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 1 


  1. Kursor se pomera strelicama ili pomoću tastera hjkl .
	h (levo)	j (dole)	k (gore)	l (desno)

  2. Za pokretanje Vim-a iz shell-a:  vim IME_FAJLA <ENTER>

  3. Izlaz:	<ESC>	:q! <ENTER> 	sve promene su izgubljene.
       ILI:	<ESC>	:wq <ENTER> 	promene su sačuvane.

  4. Brisanje znaka na kome se nalazi kursor:  x

  5. Ubacivanja ili dodavanje teksta:
	 i   unesite tekst <ESC>	unos ispred kursora
	 A   unesite tekst <ESC>	dodavanje na kraju reda

NAPOMENA:  Pritiskom na <ESC> prebacujete Vim u Normal mod i
           prekidate neželjenu ili delimično izvršenu komandu.

Nastavite sa lekcijom 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 2.1: NAREDBE BRISANJA


		 ** Otkucajte  dw  za brisanje reči. **

  1. Pritisnite  <ESC>  da biste bili sigurni da ste u Normal modu.

  2. Pomerite kursor na red označen sa --->.

  3. Pomerite kursor na početak reči koju treba izbrisati.

  4. Otkucajte  dw  da biste uklonili reč.

NAPOMENA:  Slovo  d  će se pojaviti na dnu ekrana kad ga otkucate.  Vim čeka
	   da otkucate  w .  Ako je prikazano neko drugo slovo, pogrešili ste u
	   kucanju; pritisnite <ESC> i pokušajte ponovo.  (Ako se ne pojavi
	   ništa, možda je isključena opcija 'showcmd': vidi lekciju 6.5.)

---> Neke reči smešno ne pripadaju na papir ovoj rečenici.

  5. Ponavljajte korake 3 i 4 dok ne ispravite rečenicu, pa
     pređite na lekciju 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.2: JOŠ BRISANJA


       ** Otkucajte  d$  za brisanje znakova do kraja reda. **

  1. Pritisnite  <ESC>  da biste bili sigurni da ste u Normal modu.

  2. Pomerite kursor na red označen sa  --->.

  3. Pomerite kursor do kraja ispravnog dela rečenice
     (POSLE prve . ).

  4. Otkucajte  d$  za brisanje ostatka reda.

---> Neko je uneo kraj ovog reda dvaput. kraj ovog reda dvaput.

  5. Pređite na lekciju 2.3 za podrobnije objašnjenje.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 2.3: O OPERATORIMA I POKRETIMA


  Mnoge komande za izmenu teksta sastoje se od operatora i pokreta.
  Oblik komande brisanja sa  d  operatorom je sledeći:

  	d   pokret

  Pri čemu je:
    d      - operator brisanja.
    pokret - ono na čemu će se operacija izvršavati (opisano u nastavku).

  Kratak spisak pokreta:
    w - sve do početka sledeće reči, NE UKLJUČUJUĆI prvo slovo.
    e - sve do kraja tekuće reči, UKLJUČUJUĆI poslednje slovo.
    $ - sve do kraje reda, UKLJUČUJUĆI poslednje slovo.

  Kucanjem  de  brisaće se tekst od kursora do kraja reči.

NAPOMENA:  Pritiskom samo na taster pokreta dok ste u Normal modu, bez
           operatora, kursor se pomera kao što je opisano.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 2.4: KORIŠĆENJE BROJANJA ZA POKRETE


  ** Unošenjem nekog broja pre pokreta, pokret se izvršava taj broj puta. **

  1. Pomerite kursor na red označen sa --->.

  2. Otkucajte  2w  da pomerite kursor dve reči napred.

  3. Otkucajte  3e  da pomerite kursor na kraj treće reči napred.

  4. Otkucajte  0  (nulu) da pomerite kursor na početak reda.

  5. Ponovite korake 2 i 3 s nekim drugim brojevima.

---> Rečenica sa rečima po kojoj možete pomerati kursor.

  6. Pređite na lekciju 2.5.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Lekcija 2.5: KORIŠĆENJE BROJANJA ZA VEĆE BRISANJE


  ** Unošenje nekog broja s operatorom ponavlja operator taj broj puta. **

  U kombinaciji operatora brisanja s pokretima spomenutim iznad
  možete uneti broj pre pokreta da biste izbrisali više znakova:

	 d   broj   pokret

  1. Pomerite kursor na prvo slovo u reči s VELIKIM SLOVIMA u redu
     označenom sa --->.

  2. Otkucajte  d2w  da izbrišete dve reči sa VELIKIM SLOVIMA

  3. Ponovite korake 1 i 2 sa različitim brojevima da izbrišete
     uzastopne reči sa VELIKIM SLOVIMA korišćenjem samo jedne komande.

---> ovaj ABCČĆ DĐE red FGHI JK LMN OP s rečima je RSŠ TUVZŽ ispravljen.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 2.6: OPERACIJE NAD REDOVIMA


	       ** Otkucajte  dd  za brisanje celog reda. **

  Zbog učestalosti brisanja celih redova, autori Vi-ja odlučili su da
  je lakše brisati redove ako se otkuca  d  dvaput.

  1. Pomerite kursor na drugi red u donjoj strofi.
  2. Otkucajte  dd  da ga izbrišete.
  3. Pomerite kursor na četvrti red.
  4. Otkucajte   2dd   da biste izbrisali dva reda.

--->  1)  Sedlo mi je od marame,
--->  2)  blato na sve strane,
--->  3)  uzda od kanapa,
--->  4)  auto mi je ovde,
--->  5)  satovi pokazuju vreme,
--->  6)  a bič mi je od očina
--->  7)  prebijena štapa.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 2.7: PONIŠTAVANJE PROMENA


  ** Pritisnite  u  za poništavanje poslednje komande,  U  za ceo red. **

  1. Pomerite kursor na red označen sa ---> i postavite ga na mesto
     prve greške.
  2. Otkucajte  x  da izbrišete prvi neželjeni znak.
  3. Otkucajte  u  da poništite poslednju izvršenu komandu.
  4. Sad ispravite sve greške u redu koristeći komandu  x  .
  5. Otkucajte veliko  U  da biste vratili sadržaj reda u prvobitno
     stanje.
  6. Onda otkucajte  u  nekoliko puta da biste poništili  U
     i prethodne komande.
  7. Sad otkucajte CTRL-R (držeći  CTRL  dok pritiskate R)
     nekoliko puta da biste vratili izmene (poništili poništavanja).

---> Iiisspravite greške uu ovvom redu ii pooništiteee ih.

  8. Ovo su veoma korisne komande.  Pređite na rezime lekcije 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 2


  1. Brisanje od kursora do sledeće reči:	dw
  2. Brisanje od kursora do kraja reda:		d$
  3. Brisanje celog reda:			dd

  4. Za ponavljanje pokreta prethodno unesite broj:  2w
  5. Oblik komande za izmenu:
               operator   [broj]   pokret
     gde je:
       operator - šta uraditi, recimo  d  za brisanje
       [broj]   - neobavezan broj ponavljanja pokreta
       pokret   - kretanje po tekstu na kome se radi,
                  kao što je: w (reč), $ (kraj reda), itd.

  6. Pomeranje kursora na početak reda:  0

  7. Za poništavanje prethodnih izmena, pritisnite:	u  (malo u)
     Za poništavanje svih promena u redu, pritisnite:	U  (veliko U)
     Za vraćanja promena, otkucajte:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.1: KOMANDA POSTAVLJANJA


  ** Otkucajte  p  da postavite prethodno izbrisan tekst iza kursora. **

  1. Pomerite kursor na prvi sledeći red označen sa --->.

  2. Otkucajte  dd  da izbrišete red i smestite ga u Vim registar.

  3. Pomerite kursor na red c), IZNAD mesta gde treba postaviti izbrisan red.

  4. Otkucajte  p  da postavite red ispod kursora.

  5. Ponavljajte korake 2 do 4 da biste postavili sve linije u pravilnom
     redosledu.

---> d) prebijena štapa.
---> b) uzda od kanapa,
---> c) a bič mi je od očina
---> a) Sedlo mi je od marame,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 3.2: KOMANDA ZAMENE


      ** Otkucajte  rx  da zamenite znak ispod kursora slovom  x . **

  1. Pomerite kursor na prvi sledeći red označen sa --->.

  2. Pomerite kursor tako da se nalazi na prvoj grešci.

  3. Otkucajte  r  i onda znak koji treba da tu stoji.

  4. Ponavljajte korake 2 i 3 sve dok prvi red ne bude
     isti kao drugi.

--->  Kedi ju ovej red ugašen, nako je protresao pustašne testere!
--->  Kada je ovaj red unošen, neko je pritiskao pogrešne tastere!

  5. Pređite na lekciju 3.2.

NAPOMENA:  Setite se da treba da učite vežbanjem, ne pamćenjem.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 3.3: OPERATOR IZMENE


	  ** Za izmenu teksta do kraja reči, otkucajte  ce  .**

  1. Pomerite kursor na prvi sledeći red označen sa --->.

  2. Postavite kursor na  a  u  rakdur.

  3. Otkucajte  ce  i ispravite reč (u ovom slučaju otkucajte  ed  ).

  4. Pritisnite <ESC> i pomerite kursor na sledeći znak koji
     treba ispraviti.

  5. Ponavljajte korake 3 i 4 sve dok prva rečenica ne bude ista
     kao druga.

---> Ovaj rakdur ima nekoliko rejga koje treflja isprpikati operagrom izmene.
---> Ovaj red ima nekoliko reči koje treba ispraviti operatorom izmene.

Uočite da  ce  briše reč i postavlja editor u Insert mod.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	         Lekcija 3.4: DALJE IZMENE UPOTREBOM c


    ** Komanda izmene se koristi sa istim pokretima kao i brisanje. **

  1. Operator izmene se koristi na isti način kao i operator brisanja:

         c    [broj]   pokret

  2. Pokreti su isti, recimo:   w (reč) i  $ (kraj reda).

  3. Pomerite kursor na prvi sledeći red označen sa --->.

  4. Pomerite kursor na prvu grešku.

  5. Otkucajte  c$  i unesite ostatak reda tako da bude isti kao
     drugi red, pa pritisnite <ESC>.

---> Kraj ovog reda treba izmeniti tako da izgleda kao red ispod.
---> Kraj ovog reda treba ispraviti korišćenjem c$ komande.

NAPOMENA:  Za ispravljanje grešaka možete koristiti Backspace .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 3


  1. Za postavljanje teksta koji ste upravo izbrisali, pritisnite  p . Ovo
     postavlja tekst IZA kursora (ako je bio izbrisan jedan ili više redova
     sadržaj će doći na red ispod kursora).

  2. Za zamenu znaka na kome se nalazi kursor, pritisnite  r  i onda
     željeni znak.

  3. Operator izmene dozvoljava promenu teksta od kursora do pozicije gde
     se završava pokret.  Primera radi, kucajte  ce  za izmenu od kursora do
     kraja reči, ili  c$  za izmenu od kursora do kraja reda.

  4. Oblik operacije izmene je:

	 c   [broj]   pokret

Pređite na narednu lekciju.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	      Lekcija 4.1: POZICIJA KURSORA I STATUS FAJLA

  ** Pritisnite CTRL-G za prikaz pozicije kursora u tekstu i status fajla.
     Pritisnite  G  za pomeranje kursora na neki red u tekstu. **

NAPOMENA:  Pročitajte celu lekciju pre izvođenja bilo kog koraka!!

  1. Držite taster CTRL i pritisnite  g .  Ovo zovemo CTRL-G.
     Editor će na dnu ekrana ispisati poruku sa imenom fajla i pozicijom
     kursora u tekstu.  Zapamtite broj reda za 3. korak.

NAPOMENA:  U donjem desnom uglu može se videti poziciju kursora ako je
           uključena opcija 'ruler' (vidi  :help ruler  ili lekciju 6.5.)

  2. Pritisnite  G  za pomeranje kursora na kraj teksta.
     Pritisnite  1G  ili  gg  za pomranje kursora na početak teksta.

  3. Otkucajte broj reda na kome ste malopre bili i onda  G .  Kursor
     će se vratiti na red na kome je bio kad ste otkucali CTRL-G.

  4. Ako ste spremni, izvršite korake od 1 do 3.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 4.2: KOMANDE PRETRAŽIVANJA

       ** Otkucajte  /  i onda izraz koji želite da potražite. **

  1. U Normal modu otkucajte znak  / .  Primietite da se znak pojavio
     zajedno sa kursorom na dnu ekrana kao i kod komande  : .

  2. Sada otkucajte 'grrreška' <ENTER>.  (Bez razmaka i navodnika.)
     To je reč koju tražite.

  3. Za ponovno traženje istog izraza, otkucajte  n .
     Za traženje istog izraza u suprotnom smeru, otkucajte  N .

  4. Za traženje izraza unatrag, koristite  ?  umesto  / .

  5. Za povratak na prethodnu poziciju otkucajte CTRL-O (držite CTRL dok
     pritiskate O ).  Ponavljajte za ranije pozicije.  CTRL-I ide napred.

---> "grrreška" je pogrešno; umesto grrreška treba da stoji greška.

NAPOMENA:  Ako pretraga dođe do kraja teksta traženje će se nastaviti od
	   njegovog početka osim ako je opcija 'wrapscan' isključena.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 4.3: TRAŽENJE PARA ZAGRADE


	** Otkucajte  %  za nalaženje para ), ] ili } . **

  1. Postavite kursor na bilo koju od  ( ,  [  ili  {
     otvorenih zagrada u redu označenom sa --->.

  2. Otkucajte znak  % .

  3. Kursor će se pomeriti na odgovarajuću zatvorenu zagradu.

  4. Otkucajte  %  da pomerite kursor na prvu zagradu u paru.

      5. Pomerite kursor na neku od (,),[,],{ ili } i ponovite komandu  % .

---> Red ( testiranja običnih ( [ uglastih ] i { vitičastih } zagrada.))


NAPOMENA:  Vrlo korisno u ispravljanju koda sa rasparenim zagradama!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lekcija 4.4: KOMANDA ZAMENE


       ** Otkucajte  :s/staro/novo/g  da zamenite 'staro' za 'novo'. **

  1. Pomerite kursor na red označen sa --->.

  2. Otkucajte  :s/rdi/ri/ <ENTER> .  Primetite da ova komanda zamenjuje
     samo prvo "rdi" u redu.

  3. Otkucajte  :s/rdi/ri/g .  Dodavanje opcije  g  znači da će se komanda
     izvršiti u celom redu, zamenom svih pojava niza "rdi".

---> rdiba rdibi grdize rep.

  4. Za zamenu svih izraza između neka dva reda,
     otkucajte :#,#s/staro/novo/g   gde su #,# krajnji brojevi redova u opsegu 
                                    u kome će se obaviti zamena.
     Otkucajte :%s/staro/novo/g     za zamenu svih izraza u celom tekstu.
     Otkucajte :%s/staro/novo/gc    za nalaženje svih izraza u tekstu i
     			            potvrdu zamene.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 4


  1. CTRL-G  prikazuje poziciju kursora u tekstu i status fajla.
             G  pomera kursor na kraj teksta.
     broj    G  pomera kursor na navedeni red.
            gg  pomera kursor na prvi red teksta.

  2. Kucanjem  /  sa izrazom taj izraz se traži UNAPRED.
     Kucanjem  ?  sa izrazom taj izraz se traži UNAZAD.
     Posle komande traženja koristite  n  za nalaženje izraza u istom
     smeru, a  N  za nalaženje u suprotnom smeru.
     CTRL-O vraća kursor na prethodnu poziciju, a CTRL-I na narednu.

  3. Kucanjem  %  kad je kursor na zagradi on se pomera na njen par.

  4. Za zamenu prvog izraza staro za izraz novo            :s/staro/novo/
     Za zamenu svih izraza u celom redu                    :s/staro/novo/g
     Za zamenu svih izraza u opsegu linija #,#             :#,#s/staro/novo/g
     Za zamenu u celom tekstu                              :%s/staro/novo/g
     Za potvrdu svake zamene dodajte 'c'		   :%s/staro/novo/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 5.1: IZVRŠAVANJE SPOLJAŠNJIH KOMANDI


  ** Otkucajte  :!  pa spoljašnju komandu koju želite da izvršite. **

  1. Otkucajte poznatu komandu  :  da biste namestili kursor na dno
     ekrana.  Time omogućavate unos komande u komandnoj liniji editora.

  2. Otkucajte znak  !  (uzvičnik).  Ovime omogućavate
     izvršavanje bilo koje spoljašnje komande.

  3. Kao primer otkucajte   ls   posle ! i pritisnite <ENTER>.  Ovo će
     prikazati sadržaj direktorijuma, kao da ste na komandnom promptu.
     Otkucajte   :!dir   ako   :!ls   ne radi.

NAPOMENA:  Na ovaj način moguće je izvršiti bilo koju spoljašnju komandu,
           zajedno sa njenim argumentima.

NAPOMENA:  Sve  :  komande se izvršavaju pošto pritisnete <ENTER> .
	   U daljem tekstu to nećemo uvek napominjati.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.2: VIŠE O SNIMANJU FAJLOVA

           ** Za snimanje promena, otkucajte  :w IME_FAJLA . **

  1. Otkucajte  :!dir  ili  :!ls  za pregled sadržaja direktorijuma.
     Već znate da morate pritisnuti <ENTER> posle toga.

  2. Izaberite ime fajla koji još ne postoji, npr. TEST.

  3. Otkucajte:	 :w TEST   (gde je TEST ime koje ste izabrali.)

  4. Time ćete snimiti ceo fajl (Vim Tutor) pod imenom TEST.
     Za proveru, otkucajte opet  :!dir  ili  :!ls za pregled
     sadržaja direktorijuma.

NAPOMENA:  Ako biste napustili Vim i ponovo ga pokrenuli sa vim TEST ,
           tekst bi bio tačna kopija ovog fajla u trenutku kad ste
	   ga snimili.

  5. Izbrišite fajl tako što ćete otkucati (MS-DOS):	:!del TEST
				         ili (Unix):	:!rm TEST

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lekcija 5.3: SNIMANJE OZNAČENOG TEKSTA


   ** Da biste snimili deo teksta, otkucajte  v  pokret  :w IME_FAJLA **

  1. Pomerite kursor na ovu liniju.

  2. Pritisnite  v  i pomerite kursor pet redova ispod.  Primetite da je
     tekst označen inverzno.

  3. Pritisnite  : .  Na dnu ekrana pojaviće se  :'<,'> .

  4. Otkucajte  w TEST  , gde je TEST ime fajla koji još ne postoji.
     Proverite da zaista piše  :'<,'>w TEST  pre nego što pritisnete <ENTER>.

  5. Vim će snimiti označeni tekst u TEST.  Proverite sa  :!dir  ili  !ls .
     Nemojte još brisati fajl!  Koristićemo ga u narednoj lekciji.

NAPOMENA:  Komanda  v  započinje vizuelno označavanje.  Možete pomerati kursor
           i tako menjati veličinu označenog teksta.  Onda možete upotrebiti
           operatore nad tekstom.  Na primer,  d  će izbrisati označeni tekst.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		   Lekcija 5.4: UČITAVANJE FAJLA U TEKST


       ** Za ubacivanje sadržaja fajla, otkucajte  :r IME_FAJLA  **

  1. Postavite kursor iznad ove linije.

NAPOMENA:  Pošto izvršite 2. korak videćete tekst iz lekcije 5.3.  Tada
           pomerite kursor DOLE da biste ponovo videli ovu lekciju.

  2. Učitajte fajl TEST koristeći komandu  :r TEST  gde je TEST ime fajla
     koje ste koristili u prethodnoj lekciji.  Sadržaj učitanog fajla je
     ubačen ispod kursora.

  3. Da biste proverili da je fajl učitan, vratite kursor unazad i
     primetite dve kopije lekcije 5.3, originalnu i onu iz fajla.

NAPOMENA:  Takođe možete učitati izlaz spoljašnje komande.  Na primer,
	   :r !ls  će učitati izlaz komande  ls  i postaviti ga ispod
           kursora.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 5


  1.  :!komanda  izvršava spoljašnju komandu.

      Korisni primeri:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		   -  pregled sadržaja direktorijuma.
	  :!del FAJL       :!rm FAJL       -  briše fajl FAJL.

  2.  :w FAJL  zapisuje trenutni tekst na disk pod imenom FAJL.

  3.  v  pokret  :w IME_FAJLA  snima vizuelno označene redove u fajl
      IME_FAJLA.

  4.  :r IME_FAJLA  učitava fajl IME_FAJLA sa diska i stavlja
      njegov sadržaj ispod kursora.

  5.  :r !dir  učitava izlaz komande dir i postavlja ga ispod kursora.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lekcija 6.1: KOMANDA OTVORI


	** Pritisnite  o  da biste otvorili red ispod kursora
	   i prešli u Insert mod. **

  1. Pomerite kursor na sledeći red označen sa --->.

  2. Otkucajte malo  o  da biste otvorili novi red ISPOD kursora
     i prešli u Insert mod.

  3. Otkucajte neki tekst i onda pritisnite <ESC> da biste izašli
     iz Insert moda.

---> Kad pritisnete  o  kursor prelazi u novootvoreni red u Insert modu.

  4. Za otvaranje reda IZNAD kursora, umesto malog otkucajte veliko O .
     Isprobajte na donjem redu označenom sa --->.

---> Otvorite red iznad ovog kucanjem velikog  O  dok je kursor u ovom redu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lekcija 6.2: KOMANDA DODAJ


	     ** Otkucajte  a  za dodavanje teksta IZA kursora. **

  1. Pomerite kursor na početak sledećeg reda označenog sa --->.
  
  2. Kucajte  e  dok kursor ne dođe na kraj reči  re .

  3. Otkucajte  a  (malo) da biste dodali tekst IZA kursora.

  4. Dopunite reč kao što je u redu ispod.  Pritisnite <ESC> za izlazak
     iz Insert moda.

  5. Sa  e  pređite na narednu nepotpunu reč i ponovite korake 3 i 4.
  
---> Ovaj re omogućava ve dodav teksta u nekom redu.
---> Ovaj red omogućava vežbanje dodavanja teksta u nekom redu.

NAPOMENA:  Komande a, i, i  A  aktiviraju isti Insert mod, jedina
           razlika je u poziciji od koje će se tekst ubacivati.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.3: DRUGI NAČIN ZAMENE


      ** Otkucajte veliko  R  da biste zamenili više od jednog znaka. **

  1. Pomerite kursor na prvi sledeći red označen sa --->.
     Pomerite kursor na početak prvog  xxx .

  2. Pritisnite  R  i otkucajte broj koji je red ispod,
     tako da zameni xxx .

  3. Pritisnite <ESC> za izlazak iz Replace moda.
     Primetite da je ostatak reda ostao nepromenjen.

  4. Ponovite korake da biste zamenili drugo xxx.

---> Dodavanje 123 na xxx daje xxx.
---> Dodavanje 123 na 456 daje 579.

NAPOMENA:  Replace mod je kao Insert mod, s tom razlikom što svaki
           uneti znak briše već postojeći.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 6.4: KOPIRANJE I LEPLJENJE TEKSTA


    ** Koristite operator  y  za kopiranje a  p  za lepljenje teksta. **

  1. Pomerite kursor na red sa --->  i postavite kursor posle "a)".
  
  2. Aktivirajte Visual mod sa  v  i pomerite kursor sve do ispred "prvi".
  
  3. Pritisnite  y  da biste kopirali označeni tekst u interni bafer.

  4. Pomerite kursor do kraja sledećeg reda:  j$

  5. Pritisnite  p  da biste zalepili tekst.  Onda otkucajte:  a drugi <ESC> .

  6. Upotrebite Visual mod da označite " red.", kopirajte sa  y , kursor
     pomerite na kraj sledećeg reda sa  j$  i tamo zalepite tekst sa  p .

--->  a) ovo je prvi red.
      b)

NAPOMENA:  takođe možete koristiti  y  kao operator;  yw  kopira jednu reč.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lekcija 6.5: POSTAVLJANJE OPCIJA


 ** Postavite opciju tako da traženje i zamena ignorišu veličinu slova **

  1. Potražite reč 'razlika':  /razlika <ENTER>
     Ponovite nekoliko puta pritiskom na  n .

  2. Aktivirajte opciju 'ic' (Ignore case):  :set ic

  3. Ponovo potražite reč 'razlika' pritiskom na  n
     Primetite da su sada pronađeni i RAZLIKA i Razlika.

  4. Aktivirajte opcije 'hlsearch' i 'incsearch':  :set hls is

  5. Ponovo otkucajte komandu traženja i uočite razlike:  /razlika <ENTER>

  6. Za deaktiviranje opcije  ic  kucajte:  :set noic

NAPOMENA:  Za neoznačavanje pronađenih izraza otkucajte:  :nohlsearch
NAPOMENA:  Ako želite da ne razlikujete veličinu slova u samo jednoj komandi
	   traženja, dodajte  \c  u izraz:  /razlika\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 6

  1. Pritisnite  o  za otvaranje reda ISPOD kursora i prelazak u Insert mod.
     Pritisnite  O  za otvaranje reda IZNAD kursora.

  2. Pritisnite  a  za unos teksta IZA kursora.
     Pritisnite  A  za unos teksta na kraju reda.

  3. Komanda  e  pomera kursor na kraj reči.

  4. Operator  y  kopira tekst,  p  ga lepi.

  5. Kucanje velikog  R  aktivira Replace mod dok ne pritisnete <ESC> .

  6. Kucanje ":set xxx" aktivira opciju "xxx".  Neke opcije su:
  	'ic' 'ignorecase'	ne razlikuje velika/mala slova pri traženju
	'is' 'incsearch'	prikazuje pronađen tekst dok kucate izraz
	'hls' 'hlsearch'	označava inverzno sve pronađene izraze
     Možete koristite dugo ili kratko ime opcije.

  7. Ispred imena opcije stavite "no" da je deaktivirate:  :set noic

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lekcija 7.1: DOBIJANJE POMOĆI


		   ** Koristite on-line sistem za pomoć **

  Vim ima detaljan on-line sistem za pomoć.  Za početak, pokušajte nešto
  od sledećeg:
	- pritisnite taster <HELP> (ako ga imate na tastaturi)
	- pritisnite taster <F1> (ako ga imate na tastaturi)
	- otkucajte  :help <ENTER>

  Pročitajte tekst u prozoru pomoći da biste naučili pomoć radi.
  Kucanjem  CTRL-W CTRL-W  prelazite iz jednog prozora u drugi.
  Otkucajte  :q <ENTER>  da zatvorite prozor pomoći.

  Pomoć o praktično bilo kojoj temi možete dobiti dodavanjem argumenta
  komandi ":help".  Pokušajte ovo (ne zaboravite <ENTER> na kraju):

	:help w
	:help c_CTRL-D
	:help insert-index
	:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		Lekcija 7.2: PRAVLJENJE STARTNOG SKRIPTA


		   ** Aktivirajte mogućnosti editora **

  Vim ima mnogo više mogućnosti nego Vi, ali većina nije automatski
  aktivirana.  Za dodatne mogućnosti napravite "vimrc" fajl.

  1. Otvorite "vimrc" fajl.  Ovo zavisi od vašeg sistema:
	:e ~/.vimrc		za Unix
	:e $VIM/_vimrc		za MS-Windows

  2. Onda učitajte primer sadržaja "vimrc" fajla:
	:r $VIMRUNTIME/vimrc_example.vim

  3. Snimite fajl sa:
	:w

  Sledeći put kada pokrenete Vim, bojenje sintakse teksta biće
  aktivirano. Sva svoja podešavanja možete dodati u "vimrc" fajl.
  Za više informacija otkucajte  :help vimrc-intro

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lekcija 7.3: AUTOMATSKO DOVRŠAVANJE


	** Dovršavanje komandne linije sa CTRL-D i <TAB> **

  1. Podesite Vim da ne bude u Vi-kompatibilnom modu:  :set nocp

  2. Pogledajte koji fajlovi postoje u direktorijumu:  :!ls  ili  :!dir

  3. Otkucajte početak komande:  :e

  4. Otkucajte  CTRL-D  i Vim će prikazati spisak komandi koje počinju sa "e".

  5. Pritisnite <TAB>  i Vim će dopuniti ime komande u ":edit".

  6. Dodajte razmak i početak imena postojećeg fajla:  :edit FA

  7. Pritisnite <TAB>.  Vim će dopuniti ime fajla (ako je jedinstveno).

NAPOMENA:  Moguće je dopuniti mnoge komande.  Samo probajte CTRL-D i <TAB>.
           Naročito je korisno za  :help  komande.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      REZIME lekcije 7


  1. Otkucajte  :help  ili pritisnite <F1> ili <Help>  za pomoć.

  2. Otkucajte  :help komanda  biste dobili pomoć za tu komandu.

  3. Otkucajte  CTRL-W CTRL-W  za prelazak u drugi prozor.

  4. Otkucajte  :q  da zatvorite prozor pomoći.

  5. Napravite vimrc startni skript za aktiviranje podešavanja koja
     vam odgovaraju.

  6. Dok kucate neku od  :  komandi, pritisnite CTRL-D da biste videli moguće
     vrednosti.  Pritisnite <TAB> da odaberete jednu od njih.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Ovim je priručnik završen.  Njegov cilj je bio kratak pregled Vim editora,
  koliko da omogući njegovo relativno jednostavno korišćenje.  Priručnik nije
  potpun, jer Vim ima mnogo više komandi.  Kao sledeće, pročitajte priručnik:
  ":help user-manual".

  Za dalje čitanje i učenje, preporučujemo knjigu:
	Vim - Vi Improved - by Steve Oualline
	Izdavač: New Riders
  Prva knjiga potpuno posvećena Vim-u.  Naročito korisna za početnike.
  Ima mnoštvo primera i slika.
  Vidite http://iccf-holland.org/click5.html

  Sledeća knjiga je starija i više govori o Vi-u nego o Vim-u, ali je takođe
  preporučujemo:
	Learning the Vi Editor - by Linda Lamb
	Izdavač: O'Reilly & Associates Inc.
  Dobra knjiga iz koje možete saznati skoro sve što možete raditi u Vi-ju.
  Šesto izdanje ima i informacija o Vim-u.

  Ovaj priručnik su napisali: Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines koristeći ideje Charlesa Smitha,
  Colorado State University.  E-mail: bware@mines.colorado.edu.

  Prilagođavanje za Vim uradio je Bram Moolenaar.

  Prevod na srpski: Ivan Nejgebauer <ian@uns.ac.rs>
  Verzija 1.0, maj/juni 2014.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PK�j�ZU'8N�N�vim80/filetype.vimnu�[���" Vim support file to detect file types
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2018 Jan 28

" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
  finish
endif
let did_load_filetypes = 1

" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim

augroup filetypedetect

" Ignored extensions
if exists("*fnameescape")
au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew
	\ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
au BufNewFile,BufRead *~
	\ let s:name = expand("<afile>") |
	\ let s:short = substitute(s:name, '\~$', '', '') |
	\ if s:name != s:short && s:short != "" |
	\   exe "doau filetypedetect BufRead " . fnameescape(s:short) |
	\ endif |
	\ unlet! s:name s:short
au BufNewFile,BufRead ?\+.in
	\ if expand("<afile>:t") != "configure.in" |
	\   exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |
	\ endif
elseif &verbose > 0
  echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()"
endif

" Pattern used to match file names which should not be inspected.
" Currently finds compressed files.
if !exists("g:ft_ignore_pat")
  let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
endif

" Function used for patterns that end in a star: don't set the filetype if the
" file name matches ft_ignore_pat.
func! s:StarSetf(ft)
  if expand("<amatch>") !~ g:ft_ignore_pat
    exe 'setf ' . a:ft
  endif
endfunc

" Vim help file
au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt	setf help

" Abaqus or Trasys
au BufNewFile,BufRead *.inp			call dist#ft#Check_inp()

" A-A-P recipe
au BufNewFile,BufRead *.aap			setf aap

" A2ps printing utility
au BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps

" ABAB/4
au BufNewFile,BufRead *.abap			setf abap

" ABC music notation
au BufNewFile,BufRead *.abc			setf abc

" ABEL
au BufNewFile,BufRead *.abl			setf abel

" AceDB
au BufNewFile,BufRead *.wrm			setf acedb

" Ada (83, 9X, 95)
au BufNewFile,BufRead *.adb,*.ads,*.ada		setf ada
if has("vms")
  au BufNewFile,BufRead *.gpr,*.ada_m,*.adc	setf ada
else
  au BufNewFile,BufRead *.gpr			setf ada
endif

" AHDL
au BufNewFile,BufRead *.tdf			setf ahdl

" AMPL
au BufNewFile,BufRead *.run			setf ampl

" Ant
au BufNewFile,BufRead build.xml			setf ant

" Arduino
au BufNewFile,BufRead *.ino,*.pde		setf arduino

" Apache style config file
au BufNewFile,BufRead proftpd.conf*		call s:StarSetf('apachestyle')

" Apache config file
au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf		setf apache

" XA65 MOS6510 cross assembler
au BufNewFile,BufRead *.a65			setf a65

" Applescript
au BufNewFile,BufRead *.scpt			setf applescript

" Applix ELF
au BufNewFile,BufRead *.am
	\ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif

" ALSA configuration
au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf setf alsaconf

" Arc Macro Language
au BufNewFile,BufRead *.aml			setf aml

" APT config file
au BufNewFile,BufRead apt.conf		       setf aptconf
au BufNewFile,BufRead */.aptitude/config       setf aptconf
au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf

" Arch Inventory file
au BufNewFile,BufRead .arch-inventory,=tagging-method	setf arch

" ART*Enterprise (formerly ART-IM)
au BufNewFile,BufRead *.art			setf art

" AsciiDoc
au BufNewFile,BufRead *.asciidoc,*.adoc		setf asciidoc

" ASN.1
au BufNewFile,BufRead *.asn,*.asn1		setf asn

" Active Server Pages (with Visual Basic Script)
au BufNewFile,BufRead *.asa
	\ if exists("g:filetype_asa") |
	\   exe "setf " . g:filetype_asa |
	\ else |
	\   setf aspvbs |
	\ endif

" Active Server Pages (with Perl or Visual Basic Script)
au BufNewFile,BufRead *.asp
	\ if exists("g:filetype_asp") |
	\   exe "setf " . g:filetype_asp |
	\ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" |
	\   setf aspperl |
	\ else |
	\   setf aspvbs |
	\ endif

" Grub (must be before catch *.lst)
au BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf setf grub

" Assembly (all kinds)
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst	call dist#ft#FTasm()

" Macro (VAX)
au BufNewFile,BufRead *.mar			setf vmasm

" Atlas
au BufNewFile,BufRead *.atl,*.as		setf atlas

" Autoit v3
au BufNewFile,BufRead *.au3			setf autoit

" Autohotkey
au BufNewFile,BufRead *.ahk			setf autohotkey

" Automake
au BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am	setf automake

" Autotest .at files are actually m4
au BufNewFile,BufRead *.at			setf m4

" Avenue
au BufNewFile,BufRead *.ave			setf ave

" Awk
au BufNewFile,BufRead *.awk			setf awk

" B
au BufNewFile,BufRead *.mch,*.ref,*.imp		setf b

" BASIC or Visual Basic
au BufNewFile,BufRead *.bas			call dist#ft#FTVB("basic")

" Visual Basic Script (close to Visual Basic) or Visual Basic .NET
au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl	setf vb

" IBasic file (similar to QBasic)
au BufNewFile,BufRead *.iba,*.ibi		setf ibasic

" FreeBasic file (similar to QBasic)
au BufNewFile,BufRead *.fb,*.bi			setf freebasic

" Batch file for MSDOS.
au BufNewFile,BufRead *.bat,*.sys		setf dosbatch
" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd.
au BufNewFile,BufRead *.cmd
	\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif

" Batch file for 4DOS
au BufNewFile,BufRead *.btm			call dist#ft#FTbtm()

" BC calculator
au BufNewFile,BufRead *.bc			setf bc

" BDF font
au BufNewFile,BufRead *.bdf			setf bdf

" BibTeX bibliography database file
au BufNewFile,BufRead *.bib			setf bib

" BibTeX Bibliography Style
au BufNewFile,BufRead *.bst			setf bst

" BIND configuration
" sudoedit uses namedXXXX.conf
au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key	setf named

" BIND zone
au BufNewFile,BufRead named.root		setf bindzone
au BufNewFile,BufRead *.db			call dist#ft#BindzoneCheck('')

" Blank
au BufNewFile,BufRead *.bl			setf blank

" Blkid cache file
au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old   setf xml

" Bazel (http://bazel.io)
autocmd BufRead,BufNewFile *.bzl,WORKSPACE,BUILD.bazel 	setf bzl
if has("fname_case")
  " There is another check for BUILD further below.
  autocmd BufRead,BufNewFile BUILD			setf bzl
endif

" C or lpc
au BufNewFile,BufRead *.c			call dist#ft#FTlpc()
au BufNewFile,BufRead *.lpc,*.ulpc		setf lpc

" Calendar
au BufNewFile,BufRead calendar			setf calendar

" C#
au BufNewFile,BufRead *.cs			setf cs

" CSDL
au BufNewFile,BufRead *.csdl			setf csdl

" Cabal
au BufNewFile,BufRead *.cabal			setf cabal

" Cdrdao TOC
au BufNewFile,BufRead *.toc			setf cdrtoc

" Cdrdao config
au BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao	setf cdrdaoconf

" Cfengine
au BufNewFile,BufRead cfengine.conf		setf cfengine

" ChaiScript
au BufRead,BufNewFile *.chai			setf chaiscript

" Comshare Dimension Definition Language
au BufNewFile,BufRead *.cdl			setf cdl

" Conary Recipe
au BufNewFile,BufRead *.recipe			setf conaryrecipe

" Controllable Regex Mutilator
au BufNewFile,BufRead *.crm			setf crm

" Cyn++
au BufNewFile,BufRead *.cyn			setf cynpp

" Cynlib
" .cc and .cpp files can be C++ or Cynlib.
au BufNewFile,BufRead *.cc
	\ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif
au BufNewFile,BufRead *.cpp
	\ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif

" C++
au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp
if has("fname_case")
  au BufNewFile,BufRead *.C,*.H setf cpp
endif

" .h files can be C, Ch C++, ObjC or ObjC++.
" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is
" detected automatically.
au BufNewFile,BufRead *.h			call dist#ft#FTheader()

" Ch (CHscript)
au BufNewFile,BufRead *.chf			setf ch

" TLH files are C++ headers generated by Visual C++'s #import from typelibs
au BufNewFile,BufRead *.tlh			setf cpp

" Cascading Style Sheets
au BufNewFile,BufRead *.css			setf css

" Century Term Command Scripts (*.cmd too)
au BufNewFile,BufRead *.con			setf cterm

" Changelog
au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch
					\	setf debchangelog

au BufNewFile,BufRead [cC]hange[lL]og
	\  if getline(1) =~ '; urgency='
	\|   setf debchangelog
	\| else
	\|   setf changelog
	\| endif

au BufNewFile,BufRead NEWS
	\  if getline(1) =~ '; urgency='
	\|   setf debchangelog
	\| endif

" CHILL
au BufNewFile,BufRead *..ch			setf chill

" Changes for WEB and CWEB or CHILL
au BufNewFile,BufRead *.ch			call dist#ft#FTchange()

" ChordPro
au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro	setf chordpro

" Clean
au BufNewFile,BufRead *.dcl,*.icl		setf clean

" Clever
au BufNewFile,BufRead *.eni			setf cl

" Clever or dtd
au BufNewFile,BufRead *.ent			call dist#ft#FTent()

" Clipper (or FoxPro; could also be eviews)
au BufNewFile,BufRead *.prg
	\ if exists("g:filetype_prg") |
	\   exe "setf " . g:filetype_prg |
	\ else |
	\   setf clipper |
	\ endif

" Clojure
au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc		setf clojure

" Cmake
au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in		setf cmake

" Cmusrc
au BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc
au BufNewFile,BufRead */cmus/{rc,*.theme}			setf cmusrc

" Cobol
au BufNewFile,BufRead *.cbl,*.cob,*.lib	setf cobol
"   cobol or zope form controller python script? (heuristic)
au BufNewFile,BufRead *.cpy
	\ if getline(1) =~ '^##' |
	\   setf python |
	\ else |
	\   setf cobol |
	\ endif

" Coco/R
au BufNewFile,BufRead *.atg			setf coco

" Cold Fusion
au BufNewFile,BufRead *.cfm,*.cfi,*.cfc		setf cf

" Configure scripts
au BufNewFile,BufRead configure.in,configure.ac setf config

" CUDA  Cumpute Unified Device Architecture
au BufNewFile,BufRead *.cu,*.cuh		setf cuda

" Dockerfile
au BufNewFile,BufRead Dockerfile,*.Dockerfile	setf dockerfile

" WildPackets EtherPeek Decoder
au BufNewFile,BufRead *.dcd			setf dcd

" Enlightenment configuration files
au BufNewFile,BufRead *enlightenment/*.cfg	setf c

" Eterm
au BufNewFile,BufRead *Eterm/*.cfg		setf eterm

" Euphoria 3 or 4
au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw  call dist#ft#EuphoriaCheck()
if has("fname_case")
   au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW  call dist#ft#EuphoriaCheck()
endif

" Lynx config files
au BufNewFile,BufRead lynx.cfg			setf lynx

" Quake
au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg	setf quake
au BufNewFile,BufRead *quake[1-3]/*.cfg			setf quake

" Quake C
au BufNewFile,BufRead *.qc			setf c

" Configure files
au BufNewFile,BufRead *.cfg			setf cfg

" Cucumber
au BufNewFile,BufRead *.feature			setf cucumber

" Communicating Sequential Processes
au BufNewFile,BufRead *.csp,*.fdr		setf csp

" CUPL logic description and simulation
au BufNewFile,BufRead *.pld			setf cupl
au BufNewFile,BufRead *.si			setf cuplsim

" Debian Control
au BufNewFile,BufRead */debian/control		setf debcontrol
au BufNewFile,BufRead control
	\  if getline(1) =~ '^Source:'
	\|   setf debcontrol
	\| endif

" Debian Sources.list
au BufNewFile,BufRead */etc/apt/sources.list		setf debsources
au BufNewFile,BufRead */etc/apt/sources.list.d/*.list	setf debsources

" Deny hosts
au BufNewFile,BufRead denyhosts.conf		setf denyhosts

" dnsmasq(8) configuration files
au BufNewFile,BufRead */etc/dnsmasq.conf	setf dnsmasq

" ROCKLinux package description
au BufNewFile,BufRead *.desc			setf desc

" the D language or dtrace
au BufNewFile,BufRead *.d			call dist#ft#DtraceCheck()

" Desktop files
au BufNewFile,BufRead *.desktop,.directory	setf desktop

" Dict config
au BufNewFile,BufRead dict.conf,.dictrc		setf dictconf

" Dictd config
au BufNewFile,BufRead dictd.conf		setf dictdconf

" Diff files
au BufNewFile,BufRead *.diff,*.rej		setf diff
au BufNewFile,BufRead *.patch
	\ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' |
	\   setf gitsendemail |
	\ else |
	\   setf diff |
	\ endif

" Dircolors
au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS	setf dircolors

" Diva (with Skill) or InstallShield
au BufNewFile,BufRead *.rul
	\ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' |
	\   setf ishd |
	\ else |
	\   setf diva |
	\ endif

" DCL (Digital Command Language - vms) or DNS zone file
au BufNewFile,BufRead *.com			call dist#ft#BindzoneCheck('dcl')

" DOT
au BufNewFile,BufRead *.dot			setf dot

" Dylan - lid files
au BufNewFile,BufRead *.lid			setf dylanlid

" Dylan - intr files (melange)
au BufNewFile,BufRead *.intr			setf dylanintr

" Dylan
au BufNewFile,BufRead *.dylan			setf dylan

" Microsoft Module Definition
au BufNewFile,BufRead *.def			setf def

" Dracula
au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe	setf dracula

" Datascript
au BufNewFile,BufRead *.ds			setf datascript

" dsl
au BufNewFile,BufRead *.dsl			setf dsl

" DTD (Document Type Definition for XML)
au BufNewFile,BufRead *.dtd			setf dtd

" DTS/DSTI (device tree files)
au BufNewFile,BufRead *.dts,*.dtsi		setf dts

" EDIF (*.edf,*.edif,*.edn,*.edo) or edn
au BufNewFile,BufRead *.ed\(f\|if\|o\)		setf edif
au BufNewFile,BufRead *.edn
	\ if getline(1) =~ '^\s*(\s*edif\>' |
	\   setf edif |
	\ else |
	\   setf clojure |
	\ endif

" EditorConfig (close enough to dosini)
au BufNewFile,BufRead .editorconfig		setf dosini

" Embedix Component Description
au BufNewFile,BufRead *.ecd			setf ecd

" Eiffel or Specman or Euphoria
au BufNewFile,BufRead *.e,*.E			call dist#ft#FTe()

" Elinks configuration
au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf	setf elinks

" ERicsson LANGuage; Yaws is erlang too
au BufNewFile,BufRead *.erl,*.hrl,*.yaws	setf erlang

" Elm Filter Rules file
au BufNewFile,BufRead filter-rules		setf elmfilt

" ESMTP rc file
au BufNewFile,BufRead *esmtprc			setf esmtprc

" ESQL-C
au BufNewFile,BufRead *.ec,*.EC			setf esqlc

" Esterel
au BufNewFile,BufRead *.strl			setf esterel

" Essbase script
au BufNewFile,BufRead *.csc			setf csc

" Exim
au BufNewFile,BufRead exim.conf			setf exim

" Expect
au BufNewFile,BufRead *.exp			setf expect

" Exports
au BufNewFile,BufRead exports			setf exports

" Falcon
au BufNewFile,BufRead *.fal			setf falcon

" Fantom
au BufNewFile,BufRead *.fan,*.fwt		setf fan

" Factor
au BufNewFile,BufRead *.factor			setf factor

" Fetchmail RC file
au BufNewFile,BufRead .fetchmailrc		setf fetchmail

" FlexWiki - disabled, because it has side effects when a .wiki file
" is not actually FlexWiki
"au BufNewFile,BufRead *.wiki			setf flexwiki

" Focus Executable
au BufNewFile,BufRead *.fex,*.focexec		setf focexec

" Focus Master file (but not for auto.master)
au BufNewFile,BufRead auto.master		setf conf
au BufNewFile,BufRead *.mas,*.master		setf master

" Forth
au BufNewFile,BufRead *.fs,*.ft			setf forth

" Reva Forth
au BufNewFile,BufRead *.frt			setf reva

" Fortran
if has("fname_case")
  au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08	 setf fortran
endif
au BufNewFile,BufRead   *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08  setf fortran

" Framescript
au BufNewFile,BufRead *.fsl			setf framescript

" FStab
au BufNewFile,BufRead fstab,mtab		setf fstab

" GDB command files
au BufNewFile,BufRead .gdbinit			setf gdb

" GDMO
au BufNewFile,BufRead *.mo,*.gdmo		setf gdmo

" Gedcom
au BufNewFile,BufRead *.ged,lltxxxxx.txt	setf gedcom

" Git
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/*/config	setf gitconfig
au BufNewFile,BufRead */.config/git/config	setf gitconfig
if !empty($XDG_CONFIG_HOME)
  au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config	setf gitconfig
endif
au BufNewFile,BufRead git-rebase-todo		setf gitrebase
au BufRead,BufNewFile .gitsendemail.msg.??????	setf gitsendemail
au BufNewFile,BufRead .msg.[0-9]*
      \ if getline(1) =~ '^From.*# This line is ignored.$' |
      \   setf gitsendemail |
      \ endif
au BufNewFile,BufRead *.git/*
      \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
      \   setf git |
      \ endif

" Gkrellmrc
au BufNewFile,BufRead gkrellmrc,gkrellmrc_?	setf gkrellmrc

" GP scripts (2.0 and onward)
au BufNewFile,BufRead *.gp,.gprc		setf gp

" GPG
au BufNewFile,BufRead */.gnupg/options		setf gpg
au BufNewFile,BufRead */.gnupg/gpg.conf		setf gpg
au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg
if !empty($GNUPGHOME)
  au BufNewFile,BufRead $GNUPGHOME/options	setf gpg
  au BufNewFile,BufRead $GNUPGHOME/gpg.conf	setf gpg
endif

" gnash(1) configuration files
au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash

" Gitolite
au BufNewFile,BufRead gitolite.conf		setf gitolite
au BufNewFile,BufRead */gitolite-admin/conf/*	call s:StarSetf('gitolite')
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc	setf perl

" Gnuplot scripts
au BufNewFile,BufRead *.gpi			setf gnuplot

" Go (Google)
au BufNewFile,BufRead *.go			setf go

" GrADS scripts
au BufNewFile,BufRead *.gs			setf grads

" Gretl
au BufNewFile,BufRead *.gretl			setf gretl

" Groovy
au BufNewFile,BufRead *.gradle,*.groovy		setf groovy

" GNU Server Pages
au BufNewFile,BufRead *.gsp			setf gsp

" Group file
au BufNewFile,BufRead */etc/group,*/etc/group-,*/etc/group.edit,*/etc/gshadow,*/etc/gshadow-,*/etc/gshadow.edit,*/var/backups/group.bak,*/var/backups/gshadow.bak  setf group

" GTK RC
au BufNewFile,BufRead .gtkrc,gtkrc		setf gtkrc

" Haml
au BufNewFile,BufRead *.haml			setf haml

" Hamster Classic | Playground files
au BufNewFile,BufRead *.hsc,*.hsm		setf hamster

" Haskell
au BufNewFile,BufRead *.hs,*.hs-boot		setf haskell
au BufNewFile,BufRead *.lhs			setf lhaskell
au BufNewFile,BufRead *.chs			setf chaskell

" Haste
au BufNewFile,BufRead *.ht			setf haste
au BufNewFile,BufRead *.htpp			setf hastepreproc

" Hercules
au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum	setf hercules

" HEX (Intel)
au BufNewFile,BufRead *.hex,*.h32		setf hex

" Tilde (must be before HTML)
au BufNewFile,BufRead *.t.html			setf tilde

" HTML (.shtml and .stm for server side)
au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm  call dist#ft#FThtml()

" HTML with Ruby - eRuby
au BufNewFile,BufRead *.erb,*.rhtml		setf eruby

" HTML with M4
au BufNewFile,BufRead *.html.m4			setf htmlm4

" HTML Cheetah template
au BufNewFile,BufRead *.tmpl			setf htmlcheetah

" Host config
au BufNewFile,BufRead */etc/host.conf		setf hostconf

" Hosts access
au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny  setf hostsaccess

" Hyper Builder
au BufNewFile,BufRead *.hb			setf hb

" Httest
au BufNewFile,BufRead *.htt,*.htb		setf httest

" Icon
au BufNewFile,BufRead *.icn			setf icon

" IDL (Interface Description Language)
au BufNewFile,BufRead *.idl			call dist#ft#FTidl()

" Microsoft IDL (Interface Description Language)  Also *.idl
" MOF = WMI (Windows Management Instrumentation) Managed Object Format
au BufNewFile,BufRead *.odl,*.mof		setf msidl

" Icewm menu
au BufNewFile,BufRead */.icewm/menu		setf icemenu

" Indent profile (must come before IDL *.pro!)
au BufNewFile,BufRead .indent.pro		setf indent
au BufNewFile,BufRead indent.pro		call dist#ft#ProtoCheck('indent')

" IDL (Interactive Data Language)
au BufNewFile,BufRead *.pro			call dist#ft#ProtoCheck('idlang')

" Indent RC
au BufNewFile,BufRead indentrc			setf indent

" Inform
au BufNewFile,BufRead *.inf,*.INF		setf inform

" Initng
au BufNewFile,BufRead */etc/initng/*/*.i,*.ii	setf initng

" Innovation Data Processing
au BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c 	setf upstreamdat
au BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c 	setf upstreamlog
au BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog
au BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c 	setf usserverlog
au BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c 	setf usw2kagtlog

" Ipfilter
au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules	setf ipfilter

" Informix 4GL (source - canonical, include file, I4GL+M4 preproc.)
au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl	setf fgl

" .INI file for MSDOS
au BufNewFile,BufRead *.ini			setf dosini

" SysV Inittab
au BufNewFile,BufRead inittab			setf inittab

" Inno Setup
au BufNewFile,BufRead *.iss			setf iss

" J
au BufNewFile,BufRead *.ijs			setf j

" JAL
au BufNewFile,BufRead *.jal,*.JAL		setf jal

" Jam
au BufNewFile,BufRead *.jpl,*.jpr		setf jam

" Java
au BufNewFile,BufRead *.java,*.jav		setf java

" JavaCC
au BufNewFile,BufRead *.jj,*.jjt		setf javacc

" JavaScript, ECMAScript
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.mjs   setf javascript

" Java Server Pages
au BufNewFile,BufRead *.jsp			setf jsp

" Java Properties resource file (note: doesn't catch font.properties.pl)
au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_??	setf jproperties
au BufNewFile,BufRead *.properties_??_??_*	call s:StarSetf('jproperties')

" Jess
au BufNewFile,BufRead *.clp			setf jess

" Jgraph
au BufNewFile,BufRead *.jgr			setf jgraph

" Jovial
au BufNewFile,BufRead *.jov,*.j73,*.jovial	setf jovial

" JSON
au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest	setf json

" Kixtart
au BufNewFile,BufRead *.kix			setf kix

" Kimwitu[++]
au BufNewFile,BufRead *.k			setf kwt

" Kivy
au BufNewFile,BufRead *.kv			setf kivy

" KDE script
au BufNewFile,BufRead *.ks			setf kscript

" Kconfig
au BufNewFile,BufRead Kconfig,Kconfig.debug	setf kconfig

" Lace (ISE)
au BufNewFile,BufRead *.ace,*.ACE		setf lace

" Latte
au BufNewFile,BufRead *.latte,*.lte		setf latte

" Limits
au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf	setf limits

" LambdaProlog (*.mod too, see Modsim)
au BufNewFile,BufRead *.sig			setf lprolog

" LDAP LDIF
au BufNewFile,BufRead *.ldif			setf ldif

" Ld loader
au BufNewFile,BufRead *.ld			setf ld

" Less
au BufNewFile,BufRead *.less			setf less

" Lex
au BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++	setf lex

" Libao
au BufNewFile,BufRead */etc/libao.conf,*/.libao	setf libao

" Libsensors
au BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf	setf sensors

" LFTP
au BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc	setf lftp

" Lifelines (or Lex for C++!)
au BufNewFile,BufRead *.ll			setf lifelines

" Lilo: Linux loader
au BufNewFile,BufRead lilo.conf			setf lilo

" Lisp (*.el = ELisp, *.cl = Common Lisp, *.jl = librep Lisp)
if has("fname_case")
  au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.jl,*.L,.emacs,.sawfishrc setf lisp
else
  au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.jl,.emacs,.sawfishrc setf lisp
endif

" SBCL implementation of Common Lisp
au BufNewFile,BufRead sbclrc,.sbclrc		setf lisp

" Liquid
au BufNewFile,BufRead *.liquid			setf liquid

" Lite
au BufNewFile,BufRead *.lite,*.lt		setf lite

" LiteStep RC files
au BufNewFile,BufRead */LiteStep/*/*.rc		setf litestep

" Login access
au BufNewFile,BufRead */etc/login.access	setf loginaccess

" Login defs
au BufNewFile,BufRead */etc/login.defs		setf logindefs

" Logtalk
au BufNewFile,BufRead *.lgt			setf logtalk

" LOTOS
au BufNewFile,BufRead *.lot,*.lotos		setf lotos

" Lout (also: *.lt)
au BufNewFile,BufRead *.lou,*.lout		setf lout

" Lua
au BufNewFile,BufRead *.lua			setf lua

" Luarocks
au BufNewFile,BufRead *.rockspec		setf lua

" Linden Scripting Language (Second Life)
au BufNewFile,BufRead *.lsl			setf lsl

" Lynx style file (or LotusScript!)
au BufNewFile,BufRead *.lss			setf lss

" M4
au BufNewFile,BufRead *.m4
	\ if expand("<afile>") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif

" MaGic Point
au BufNewFile,BufRead *.mgp			setf mgp

" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt)
au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail

" Mail aliases
au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases	setf mailaliases

" Mailcap configuration file
au BufNewFile,BufRead .mailcap,mailcap		setf mailcap

" Makefile
au BufNewFile,BufRead *[mM]akefile,*.mk,*.mak,*.dsp setf make

" MakeIndex
au BufNewFile,BufRead *.ist,*.mst		setf ist

" Mallard
au BufNewFile,BufRead *.page			setf mallard

" Manpage
au BufNewFile,BufRead *.man			setf man

" Man config
au BufNewFile,BufRead */etc/man.conf,man.config	setf manconf

" Maple V
au BufNewFile,BufRead *.mv,*.mpl,*.mws		setf maple

" Map (UMN mapserver config file)
au BufNewFile,BufRead *.map			setf map

" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md  setf markdown

" Mason
au BufNewFile,BufRead *.mason,*.mhtml,*.comp	setf mason

" Mathematica, Matlab, Murphi or Objective C
au BufNewFile,BufRead *.m			call dist#ft#FTm()

" Mathematica notebook
au BufNewFile,BufRead *.nb			setf mma

" Maya Extension Language
au BufNewFile,BufRead *.mel			setf mel

" Mercurial (hg) commit file
au BufNewFile,BufRead hg-editor-*.txt		setf hgcommit

" Mercurial config (looks like generic config file)
au BufNewFile,BufRead *.hgrc,*hgrc		setf cfg

" Messages (logs mostly)
au BufNewFile,BufRead */log/{auth,cron,daemon,debug,kern,lpr,mail,messages,news/news,syslog,user}{,.log,.err,.info,.warn,.crit,.notice}{,.[0-9]*,-[0-9]*} setf messages

" Metafont
au BufNewFile,BufRead *.mf			setf mf

" MetaPost
au BufNewFile,BufRead *.mp			setf mp

" MGL
au BufNewFile,BufRead *.mgl			setf mgl

" MIX - Knuth assembly
au BufNewFile,BufRead *.mix,*.mixal		setf mix

" MMIX or VMS makefile
au BufNewFile,BufRead *.mms			call dist#ft#FTmms()

" Symbian meta-makefile definition (MMP)
au BufNewFile,BufRead *.mmp			setf mmp

" Modsim III (or LambdaProlog)
au BufNewFile,BufRead *.mod
	\ if getline(1) =~ '\<module\>' |
	\   setf lprolog |
	\ else |
	\   setf modsim3 |
	\ endif

" Modula 2  (.md removed in favor of Markdown)
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi	setf modula2

" Modula 3 (.m3, .i3, .mg, .ig)
au BufNewFile,BufRead *.[mi][3g]		setf modula3

" Monk
au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc	setf monk

" MOO
au BufNewFile,BufRead *.moo			setf moo

" Modconf
au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf

" Mplayer config
au BufNewFile,BufRead mplayer.conf,*/.mplayer/config	setf mplayerconf

" Motorola S record
au BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec	setf srec

" Mrxvtrc
au BufNewFile,BufRead mrxvtrc,.mrxvtrc		setf mrxvtrc

" Msql
au BufNewFile,BufRead *.msql			setf msql

" Mysql
au BufNewFile,BufRead *.mysql			setf mysql

" Mutt setup files (must be before catch *.rc)
au BufNewFile,BufRead */etc/Muttrc.d/*		call s:StarSetf('muttrc')

" M$ Resource files
au BufNewFile,BufRead *.rc,*.rch		setf rc

" MuPAD source
au BufRead,BufNewFile *.mu			setf mupad

" Mush
au BufNewFile,BufRead *.mush			setf mush

" Mutt setup file (also for Muttng)
au BufNewFile,BufRead Mutt{ng,}rc		setf muttrc

" N1QL
au BufRead,BufNewfile *.n1ql,*.nql		setf n1ql

" Nano
au BufNewFile,BufRead */etc/nanorc,*.nanorc  	setf nanorc

" Nastran input/DMAP
"au BufNewFile,BufRead *.dat			setf nastran

" Natural
au BufNewFile,BufRead *.NS[ACGLMNPS]		setf natural

" Noemutt setup file
au BufNewFile,BufRead Neomuttrc			setf neomuttrc

" Netrc
au BufNewFile,BufRead .netrc			setf netrc

" Ninja file
au BufNewFile,BufRead *.ninja			setf ninja

" Novell netware batch files
au BufNewFile,BufRead *.ncf			setf ncf

" Nroff/Troff (*.ms and *.t are checked below)
au BufNewFile,BufRead *.me
	\ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" |
	\   setf nroff |
	\ endif
au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom	setf nroff
au BufNewFile,BufRead *.[1-9]			call dist#ft#FTnroff()

" Nroff or Objective C++
au BufNewFile,BufRead *.mm			call dist#ft#FTmm()

" Not Quite C
au BufNewFile,BufRead *.nqc			setf nqc

" NSE - Nmap Script Engine - uses Lua syntax
au BufNewFile,BufRead *.nse			setf lua

" NSIS
au BufNewFile,BufRead *.nsi,*.nsh		setf nsis

" OCAML
au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit	setf ocaml

" Occam
au BufNewFile,BufRead *.occ			setf occam

" Omnimark
au BufNewFile,BufRead *.xom,*.xin		setf omnimark

" OpenROAD
au BufNewFile,BufRead *.or			setf openroad

" OPL
au BufNewFile,BufRead *.[Oo][Pp][Ll]		setf opl

" Oracle config file
au BufNewFile,BufRead *.ora			setf ora

" Packet filter conf
au BufNewFile,BufRead pf.conf			setf pf

" Pam conf
au BufNewFile,BufRead */etc/pam.conf		setf pamconf

" PApp
au BufNewFile,BufRead *.papp,*.pxml,*.pxsl	setf papp

" Password file
au BufNewFile,BufRead */etc/passwd,*/etc/passwd-,*/etc/passwd.edit,*/etc/shadow,*/etc/shadow-,*/etc/shadow.edit,*/var/backups/passwd.bak,*/var/backups/shadow.bak setf passwd

" Pascal (also *.p)
au BufNewFile,BufRead *.pas			setf pascal

" Delphi project file
au BufNewFile,BufRead *.dpr			setf pascal

" PDF
au BufNewFile,BufRead *.pdf			setf pdf

" PCMK - HAE - crm configure edit 
au BufNewFile,BufRead *.pcmk 			setf pcmk

" Perl
if has("fname_case")
  au BufNewFile,BufRead *.pl,*.PL		call dist#ft#FTpl()
else
  au BufNewFile,BufRead *.pl			call dist#ft#FTpl()
endif
au BufNewFile,BufRead *.plx,*.al,*.psgi		setf perl
au BufNewFile,BufRead *.p6,*.pm6,*.pl6		setf perl6

" Perl, XPM or XPM2
au BufNewFile,BufRead *.pm
	\ if getline(1) =~ "XPM2" |
	\   setf xpm2 |
	\ elseif getline(1) =~ "XPM" |
	\   setf xpm |
	\ else |
	\   setf perl |
	\ endif

" Perl POD
au BufNewFile,BufRead *.pod			setf pod
au BufNewFile,BufRead *.pod6			setf pod6

" Php, php3, php4, etc.
" Also Phtml (was used for PHP 2 in the past)
" Also .ctp for Cake template file
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp	setf php

" Pike and Cmod
au BufNewFile,BufRead *.pike,*.pmod		setf pike
au BufNewFile,BufRead *.cmod			setf cmod

" Pinfo config
au BufNewFile,BufRead */etc/pinforc,*/.pinforc	setf pinfo

" Palm Resource compiler
au BufNewFile,BufRead *.rcp			setf pilrc

" Pine config
au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex		setf pine

" PL/1, PL/I
au BufNewFile,BufRead *.pli,*.pl1		setf pli

" PL/M (also: *.inp)
au BufNewFile,BufRead *.plm,*.p36,*.pac		setf plm

" PL/SQL
au BufNewFile,BufRead *.pls,*.plsql		setf plsql

" PLP
au BufNewFile,BufRead *.plp			setf plp

" PO and PO template (GNU gettext)
au BufNewFile,BufRead *.po,*.pot		setf po

" Postfix main config
au BufNewFile,BufRead main.cf			setf pfmain

" PostScript (+ font files, encapsulated PostScript, Adobe Illustrator)
au BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai	  setf postscr

" PostScript Printer Description
au BufNewFile,BufRead *.ppd			setf ppd

" Povray
au BufNewFile,BufRead *.pov			setf pov

" Povray configuration
au BufNewFile,BufRead .povrayrc			setf povini

" Povray, PHP or assembly
au BufNewFile,BufRead *.inc			call dist#ft#FTinc()

" Printcap and Termcap
au BufNewFile,BufRead *printcap
	\ let b:ptcap_type = "print" | setf ptcap
au BufNewFile,BufRead *termcap
	\ let b:ptcap_type = "term" | setf ptcap

" PCCTS / ANTRL
"au BufNewFile,BufRead *.g			setf antrl
au BufNewFile,BufRead *.g			setf pccts

" PPWizard
au BufNewFile,BufRead *.it,*.ih			setf ppwiz

" Obj 3D file format
" TODO: is there a way to avoid MS-Windows Object files?
au BufNewFile,BufRead *.obj			setf obj

" Oracle Pro*C/C++
au BufNewFile,BufRead *.pc			setf proc

" Privoxy actions file
au BufNewFile,BufRead *.action			setf privoxy

" Procmail
au BufNewFile,BufRead .procmail,.procmailrc	setf procmail

" Progress or CWEB
au BufNewFile,BufRead *.w			call dist#ft#FTprogress_cweb()

" Progress or assembly
au BufNewFile,BufRead *.i			call dist#ft#FTprogress_asm()

" Progress or Pascal
au BufNewFile,BufRead *.p			call dist#ft#FTprogress_pascal()

" Software Distributor Product Specification File (POSIX 1387.2-1995)
au BufNewFile,BufRead *.psf			setf psf
au BufNewFile,BufRead INDEX,INFO
	\ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' |
	\   setf psf |
	\ endif

" Prolog
au BufNewFile,BufRead *.pdb			setf prolog

" Promela
au BufNewFile,BufRead *.pml			setf promela

" Google protocol buffers
au BufNewFile,BufRead *.proto			setf proto

" Protocols
au BufNewFile,BufRead */etc/protocols		setf protocols

" Pyrex
au BufNewFile,BufRead *.pyx,*.pxd		setf pyrex

" Python, Python Shell Startup Files
" Quixote (Python-based web framework)
au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc,*.ptl  setf python

" Radiance
au BufNewFile,BufRead *.rad,*.mat		setf radiance

" Ratpoison config/command files
au BufNewFile,BufRead .ratpoisonrc,ratpoisonrc	setf ratpoison

" RCS file
au BufNewFile,BufRead *\,v			setf rcs

" Readline
au BufNewFile,BufRead .inputrc,inputrc		setf readline

" Registry for MS-Windows
au BufNewFile,BufRead *.reg
	\ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif

" Renderman Interface Bytestream
au BufNewFile,BufRead *.rib			setf rib

" Rexx
au BufNewFile,BufRead *.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit	setf rexx

" R (Splus)
if has("fname_case")
  au BufNewFile,BufRead *.s,*.S			setf r
else
  au BufNewFile,BufRead *.s			setf r
endif

" R Help file
if has("fname_case")
  au BufNewFile,BufRead *.rd,*.Rd		setf rhelp
else
  au BufNewFile,BufRead *.rd			setf rhelp
endif

" R noweb file
if has("fname_case")
  au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw		setf rnoweb
else
  au BufNewFile,BufRead *.rnw,*.snw			setf rnoweb
endif

" R Markdown file
if has("fname_case")
  au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd		setf rmd
else
  au BufNewFile,BufRead *.rmd,*.smd			setf rmd
endif

" R reStructuredText file
if has("fname_case")
  au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst	setf rrst
else
  au BufNewFile,BufRead *.rrst,*.srst			setf rrst
endif

" Rexx, Rebol or R
au BufNewFile,BufRead *.r,*.R				call dist#ft#FTr()

" Remind
au BufNewFile,BufRead .reminders,*.remind,*.rem		setf remind

" Resolv.conf
au BufNewFile,BufRead resolv.conf		setf resolv

" Relax NG Compact
au BufNewFile,BufRead *.rnc			setf rnc

" Relax NG XML
au BufNewFile,BufRead *.rng			setf rng

" RPL/2
au BufNewFile,BufRead *.rpl			setf rpl

" Robots.txt
au BufNewFile,BufRead robots.txt		setf robots

" Rpcgen
au BufNewFile,BufRead *.x			setf rpcgen

" reStructuredText Documentation Format
au BufNewFile,BufRead *.rst			setf rst

" RTF
au BufNewFile,BufRead *.rtf			setf rtf

" Interactive Ruby shell
au BufNewFile,BufRead .irbrc,irbrc		setf ruby

" Ruby
au BufNewFile,BufRead *.rb,*.rbw		setf ruby

" RubyGems
au BufNewFile,BufRead *.gemspec			setf ruby

" Rust
au BufNewFile,BufRead *.rs			setf rust

" Rackup
au BufNewFile,BufRead *.ru			setf ruby

" Bundler
au BufNewFile,BufRead Gemfile			setf ruby

" Ruby on Rails
au BufNewFile,BufRead *.builder,*.rxml,*.rjs	setf ruby

" Rantfile and Rakefile is like Ruby
au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake	setf ruby

" S-lang (or shader language, or SmallLisp)
au BufNewFile,BufRead *.sl			setf slang

" Samba config
au BufNewFile,BufRead smb.conf			setf samba

" SAS script
au BufNewFile,BufRead *.sas			setf sas

" Sass
au BufNewFile,BufRead *.sass			setf sass

" Sather
au BufNewFile,BufRead *.sa			setf sather

" Scala
au BufNewFile,BufRead *.scala			setf scala

" SBT - Scala Build Tool
au BufNewFile,BufRead *.sbt			setf sbt

" Scilab
au BufNewFile,BufRead *.sci,*.sce		setf scilab

" SCSS
au BufNewFile,BufRead *.scss			setf scss

" SD: Streaming Descriptors
au BufNewFile,BufRead *.sd			setf sd

" SDL
au BufNewFile,BufRead *.sdl,*.pr		setf sdl

" sed
au BufNewFile,BufRead *.sed			setf sed

" Sieve (RFC 3028)
au BufNewFile,BufRead *.siv			setf sieve

" Sendmail
au BufNewFile,BufRead sendmail.cf		setf sm

" Sendmail .mc files are actually m4.  Could also be MS Message text file.
au BufNewFile,BufRead *.mc			call dist#ft#McSetf()

" Services
au BufNewFile,BufRead */etc/services		setf services

" Service Location config
au BufNewFile,BufRead */etc/slp.conf		setf slpconf

" Service Location registration
au BufNewFile,BufRead */etc/slp.reg		setf slpreg

" Service Location SPI
au BufNewFile,BufRead */etc/slp.spi		setf slpspi

" Setserial config
au BufNewFile,BufRead */etc/serial.conf		setf setserial

" SGML
au BufNewFile,BufRead *.sgm,*.sgml
	\ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' |
	\   setf sgmllnx |
	\ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' |
	\   let b:docbk_type = "sgml" |
	\   let b:docbk_ver = 4 |
	\   setf docbk |
	\ else |
	\   setf sgml |
	\ endif

" SGMLDECL
au BufNewFile,BufRead *.decl,*.dcl,*.dec
	\ if getline(1).getline(2).getline(3) =~? '^<!SGML' |
	\    setf sgmldecl |
	\ endif

" SGML catalog file
au BufNewFile,BufRead catalog			setf catalog
au BufNewFile,BufRead sgml.catalog*		call s:StarSetf('catalog')

" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD* call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc*,*.ksh call dist#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1))

" Shell script (Arch Linux) or PHP file (Drupal)
au BufNewFile,BufRead *.install
	\ if getline(1) =~ '<?php' |
	\   setf php |
	\ else |
	\   call dist#ft#SetFileTypeSH("bash") |
	\ endif

" tcsh scripts
au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login	call dist#ft#SetFileTypeShell("tcsh")

" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
au BufNewFile,BufRead .login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias  call dist#ft#CSH()

" Z-Shell script
au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks  setf zsh
au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump*  call s:StarSetf('zsh')
au BufNewFile,BufRead *.zsh			setf zsh

" Scheme
au BufNewFile,BufRead *.scm,*.ss,*.rkt		setf scheme

" Screen RC
au BufNewFile,BufRead .screenrc,screenrc	setf screen

" Simula
au BufNewFile,BufRead *.sim			setf simula

" SINDA
au BufNewFile,BufRead *.sin,*.s85		setf sinda

" SiSU
au BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu
au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu

" SKILL
au BufNewFile,BufRead *.il,*.ils,*.cdf		setf skill

" SLRN
au BufNewFile,BufRead .slrnrc			setf slrnrc
au BufNewFile,BufRead *.score			setf slrnsc

" Smalltalk (and TeX)
au BufNewFile,BufRead *.st			setf st
au BufNewFile,BufRead *.cls
	\ if getline(1) =~ '^%' |
	\  setf tex |
	\ elseif getline(1)[0] == '#' && getline(1) =~ 'rexx' |
	\  setf rexx |
	\ else |
	\  setf st |
	\ endif

" Smarty templates
au BufNewFile,BufRead *.tpl			setf smarty

" SMIL or XML
au BufNewFile,BufRead *.smil
	\ if getline(1) =~ '<?\s*xml.*?>' |
	\   setf xml |
	\ else |
	\   setf smil |
	\ endif

" SMIL or SNMP MIB file
au BufNewFile,BufRead *.smi
	\ if getline(1) =~ '\<smil\>' |
	\   setf smil |
	\ else |
	\   setf mib |
	\ endif

" SMITH
au BufNewFile,BufRead *.smt,*.smith		setf smith

" Snobol4 and spitbol
au BufNewFile,BufRead *.sno,*.spt		setf snobol4

" SNMP MIB files
au BufNewFile,BufRead *.mib,*.my		setf mib

" Snort Configuration
au BufNewFile,BufRead *.hog,snort.conf,vision.conf	setf hog
au BufNewFile,BufRead *.rules			call dist#ft#FTRules()

" Spec (Linux RPM)
au BufNewFile,BufRead *.spec			setf spec

" Speedup (AspenTech plant simulator)
au BufNewFile,BufRead *.speedup,*.spdata,*.spd	setf spup

" Slice
au BufNewFile,BufRead *.ice			setf slice

" Spice
au BufNewFile,BufRead *.sp,*.spice		setf spice

" Spyce
au BufNewFile,BufRead *.spy,*.spi		setf spyce

" Squid
au BufNewFile,BufRead squid.conf		setf squid

" SQL for Oracle Designer
au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks	setf sql

" SQL
au BufNewFile,BufRead *.sql			call dist#ft#SQL()

" SQLJ
au BufNewFile,BufRead *.sqlj			setf sqlj

" SQR
au BufNewFile,BufRead *.sqr,*.sqi		setf sqr

" OpenSSH configuration
au BufNewFile,BufRead ssh_config,*/.ssh/config	setf sshconfig

" OpenSSH server configuration
au BufNewFile,BufRead sshd_config		setf sshdconfig

" Stata
au BufNewFile,BufRead *.ado,*.do,*.imata,*.mata	setf stata
" Also *.class, but not when it's a Java bytecode file
au BufNewFile,BufRead *.class
	\ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif

" SMCL
au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl	setf smcl

" Stored Procedures
au BufNewFile,BufRead *.stp			setf stp

" Standard ML
au BufNewFile,BufRead *.sml			setf sml

" Sratus VOS command macro
au BufNewFile,BufRead *.cm			setf voscm

" Sysctl
au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf	setf sysctl

" Systemd unit files
au BufNewFile,BufRead */systemd/*.{automount,mount,path,service,socket,swap,target,timer}	setf systemd

" Synopsys Design Constraints
au BufNewFile,BufRead *.sdc			setf sdc

" Sudoers
au BufNewFile,BufRead */etc/sudoers,sudoers.tmp	setf sudoers

" SVG (Scalable Vector Graphics)
au BufNewFile,BufRead *.svg			setf svg

" Tads (or Nroff or Perl test file)
au BufNewFile,BufRead *.t
	\ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif

" Tags
au BufNewFile,BufRead tags			setf tags

" TAK
au BufNewFile,BufRead *.tak			setf tak

" Task
au BufRead,BufNewFile {pending,completed,undo}.data  setf taskdata
au BufRead,BufNewFile *.task			setf taskedit

" Tcl (JACL too)
au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl	setf tcl

" TealInfo
au BufNewFile,BufRead *.tli			setf tli

" Telix Salt
au BufNewFile,BufRead *.slt			setf tsalt

" Tera Term Language
au BufRead,BufNewFile *.ttl			setf teraterm

" Terminfo
au BufNewFile,BufRead *.ti			setf terminfo

" TeX
au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl	setf tex
au BufNewFile,BufRead *.tex			call dist#ft#FTtex()

" ConTeXt
au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi   setf context

" Texinfo
au BufNewFile,BufRead *.texinfo,*.texi,*.txi	setf texinfo

" TeX configuration
au BufNewFile,BufRead texmf.cnf			setf texmf

" Tidy config
au BufNewFile,BufRead .tidyrc,tidyrc		setf tidy

" TF mud client
au BufNewFile,BufRead *.tf,.tfrc,tfrc		setf tf

" tmux configuration
au BufNewFile,BufRead {.,}tmux*.conf		setf tmux

" TPP - Text Presentation Program
au BufNewFile,BufReadPost *.tpp			setf tpp

" Treetop
au BufRead,BufNewFile *.treetop			setf treetop

" Trustees
au BufNewFile,BufRead trustees.conf		setf trustees

" TSS - Geometry
au BufNewFile,BufReadPost *.tssgm		setf tssgm

" TSS - Optics
au BufNewFile,BufReadPost *.tssop		setf tssop

" TSS - Command Line (temporary)
au BufNewFile,BufReadPost *.tsscl		setf tsscl

" TWIG files
au BufNewFile,BufReadPost *.twig		setf twig

" Motif UIT/UIL files
au BufNewFile,BufRead *.uit,*.uil		setf uil

" Udev conf
au BufNewFile,BufRead */etc/udev/udev.conf	setf udevconf

" Udev permissions
au BufNewFile,BufRead */etc/udev/permissions.d/*.permissions setf udevperm
"
" Udev symlinks config
au BufNewFile,BufRead */etc/udev/cdsymlinks.conf	setf sh

" UnrealScript
au BufNewFile,BufRead *.uc			setf uc

" Updatedb
au BufNewFile,BufRead */etc/updatedb.conf	setf updatedb

" Upstart (init(8)) config files
au BufNewFile,BufRead */usr/share/upstart/*.conf	       setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.override	       setf upstart
au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override  setf upstart
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override	       setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf		       setf upstart
au BufNewFile,BufRead */.config/upstart/*.override	       setf upstart

" Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh		setf vera

" Verilog HDL
au BufNewFile,BufRead *.v			setf verilog

" Verilog-AMS HDL
au BufNewFile,BufRead *.va,*.vams		setf verilogams

" SystemVerilog
au BufNewFile,BufRead *.sv,*.svh		setf systemverilog

" VHDL
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst  setf vhdl
au BufNewFile,BufRead *.vhdl_[0-9]*		call s:StarSetf('vhdl')

" Vim script
au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc	setf vim

" Viminfo file
au BufNewFile,BufRead .viminfo,_viminfo		setf viminfo

" Virata Config Script File or Drupal module
au BufRead,BufNewFile *.hw,*.module,*.pkg
	\ if getline(1) =~ '<?php' |
	\   setf php |
	\ else |
	\   setf virata |
	\ endif

" Visual Basic (also uses *.bas) or FORM
au BufNewFile,BufRead *.frm			call dist#ft#FTVB("form")

" SaxBasic is close to Visual Basic
au BufNewFile,BufRead *.sba			setf vb

" Vgrindefs file
au BufNewFile,BufRead vgrindefs			setf vgrindefs

" VRML V1.0c
au BufNewFile,BufRead *.wrl			setf vrml

" Vroom (vim testing and executable documentation)
au BufNewFile,BufRead *.vroom			setf vroom

" Webmacro
au BufNewFile,BufRead *.wm			setf webmacro

" Wget config
au BufNewFile,BufRead .wgetrc,wgetrc		setf wget

" Website MetaLanguage
au BufNewFile,BufRead *.wml			setf wml

" Winbatch
au BufNewFile,BufRead *.wbt			setf winbatch

" WSML
au BufNewFile,BufRead *.wsml			setf wsml

" WPL
au BufNewFile,BufRead *.wpl			setf xml

" WvDial
au BufNewFile,BufRead wvdial.conf,.wvdialrc	setf wvdial

" CVS RC file
au BufNewFile,BufRead .cvsrc			setf cvsrc

" CVS commit file
au BufNewFile,BufRead cvs\d\+			setf cvs

" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment
" lines in a WEB file).
au BufNewFile,BufRead *.web
	\ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" |
	\   setf web |
	\ else |
	\   setf winbatch |
	\ endif

" Windows Scripting Host and Windows Script Component
au BufNewFile,BufRead *.ws[fc]			setf wsh

" XHTML
au BufNewFile,BufRead *.xhtml,*.xht		setf xhtml

" X Pixmap (dynamically sets colors, use BufEnter to make it work better)
au BufEnter *.xpm
	\ if getline(1) =~ "XPM2" |
	\   setf xpm2 |
	\ else |
	\   setf xpm |
	\ endif
au BufEnter *.xpm2				setf xpm2

" XFree86 config
au BufNewFile,BufRead XF86Config
	\ if getline(1) =~ '\<XConfigurator\>' |
	\   let b:xf86conf_xfree86_version = 3 |
	\ endif |
	\ setf xf86conf
au BufNewFile,BufRead */xorg.conf.d/*.conf
	\ let b:xf86conf_xfree86_version = 4 |
	\ setf xf86conf

" Xorg config
au BufNewFile,BufRead xorg.conf,xorg.conf-4	let b:xf86conf_xfree86_version = 4 | setf xf86conf

" Xinetd conf
au BufNewFile,BufRead */etc/xinetd.conf		setf xinetd

" XS Perl extension interface language
au BufNewFile,BufRead *.xs			setf xs

" X resources file
au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults

" Xmath
au BufNewFile,BufRead *.msc,*.msf		setf xmath
au BufNewFile,BufRead *.ms
	\ if !dist#ft#FTnroff() | setf xmath | endif

" XML  specific variants: docbk and xbl
au BufNewFile,BufRead *.xml			call dist#ft#FTxml()

" XMI (holding UML models) is also XML
au BufNewFile,BufRead *.xmi			setf xml

" CSPROJ files are Visual Studio.NET's XML-based project config files
au BufNewFile,BufRead *.csproj,*.csproj.user	setf xml

" Qt Linguist translation source and Qt User Interface Files are XML
au BufNewFile,BufRead *.ts,*.ui			setf xml

" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull)
au BufNewFile,BufRead *.tpm			setf xml

" Xdg menus
au BufNewFile,BufRead */etc/xdg/menus/*.menu	setf xml

" ATI graphics driver configuration
au BufNewFile,BufRead fglrxrc			setf xml

" XLIFF (XML Localisation Interchange File Format) is also XML
au BufNewFile,BufRead *.xlf			setf xml
au BufNewFile,BufRead *.xliff			setf xml

" XML User Interface Language
au BufNewFile,BufRead *.xul			setf xml

" X11 xmodmap (also see below)
au BufNewFile,BufRead *Xmodmap			setf xmodmap

" Xquery
au BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy	setf xquery

" XSD
au BufNewFile,BufRead *.xsd			setf xsd

" Xslt
au BufNewFile,BufRead *.xsl,*.xslt		setf xslt

" Yacc
au BufNewFile,BufRead *.yy,*.yxx,*.y++		setf yacc

" Yacc or racc
au BufNewFile,BufRead *.y			call dist#ft#FTy()

" Yaml or Raml
au BufNewFile,BufRead *.yaml,*.yml,*.raml	setf yaml

" yum conf (close enough to dosini)
au BufNewFile,BufRead */etc/yum.conf		setf dosini

" Zimbu
au BufNewFile,BufRead *.zu			setf zimbu
" Zimbu Templates
au BufNewFile,BufRead *.zut			setf zimbutempl

" Zope
"   dtml (zope dynamic template markup language), pt (zope page template),
"   cpt (zope form controller page template)
au BufNewFile,BufRead *.dtml,*.pt,*.cpt		call dist#ft#FThtml()
"   zsql (zope sql method)
au BufNewFile,BufRead *.zsql			call dist#ft#SQL()

" Z80 assembler asz80
au BufNewFile,BufRead *.z8a			setf z8a

augroup END


" Source the user-specified filetype file, for backwards compatibility with
" Vim 5.x.
if exists("myfiletypefile") && filereadable(expand(myfiletypefile))
  execute "source " . myfiletypefile
endif


" Check for "*" after loading myfiletypefile, so that scripts.vim is only used
" when there are no matching file name extensions.
" Don't do this for compressed files.
augroup filetypedetect
au BufNewFile,BufRead *
	\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
	\ | runtime! scripts.vim | endif
au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif


" Extra checks for when no filetype has been detected now.  Mostly used for
" patterns that end in "*".  E.g., "zsh*" matches "zsh.vim", but that's a Vim
" script file.
" Most of these should call s:StarSetf() to avoid names ending in .gz and the
" like are used.

" More Apache style config files
au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/*	call s:StarSetf('apachestyle')

" More Apache config files
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf*	call s:StarSetf('apache')
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf*,auth_mysql.conf*,auth_pgsql.conf*,ssl.conf*,perl.conf*,php.conf*,python.conf*,squirrelmail.conf*		call s:StarSetf('apache')

" Asterisk config file
au BufNewFile,BufRead *asterisk/*.conf*		call s:StarSetf('asterisk')
au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm')

" Bazaar version control
au BufNewFile,BufRead bzr_log.*			setf bzr

" Bazel build file
if !has("fname_case")
  au BufNewFile,BufRead BUILD			setf bzl
endif

" BIND zone
au BufNewFile,BufRead */named/db.*,*/bind/db.*	call s:StarSetf('bindzone')

" Calendar
au BufNewFile,BufRead */.calendar/*,
	\*/share/calendar/*/calendar.*,*/share/calendar/calendar.*
	\					call s:StarSetf('calendar')

" Changelog
au BufNewFile,BufRead [cC]hange[lL]og*
	\ if getline(1) =~ '; urgency='
	\|  call s:StarSetf('debchangelog')
	\|else
	\|  call s:StarSetf('changelog')
	\|endif

" Crontab
au BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/*		call s:StarSetf('crontab')

" dnsmasq(8) configuration
au BufNewFile,BufRead */etc/dnsmasq.d/*		call s:StarSetf('dnsmasq')

" Dracula
au BufNewFile,BufRead drac.*			call s:StarSetf('dracula')

" Fvwm
au BufNewFile,BufRead */.fvwm/*			call s:StarSetf('fvwm')
au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook
	\ let b:fvwm_version = 1 | call s:StarSetf('fvwm')
au BufNewFile,BufRead *fvwm2rc*
	\ if expand("<afile>:e") == "m4"
	\|  call s:StarSetf('fvwm2m4')
	\|else
	\|  let b:fvwm_version = 2 | call s:StarSetf('fvwm')
	\|endif

" Gedcom
au BufNewFile,BufRead */tmp/lltmp*		call s:StarSetf('gedcom')

" GTK RC
au BufNewFile,BufRead .gtkrc*,gtkrc*		call s:StarSetf('gtkrc')

" Jam
au BufNewFile,BufRead Prl*.*,JAM*.*		call s:StarSetf('jam')

" Jargon
au! BufNewFile,BufRead *jarg*
	\ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE'
	\|  call s:StarSetf('jargon')
	\|endif

" Kconfig
au BufNewFile,BufRead Kconfig.*			call s:StarSetf('kconfig')

" Lilo: Linux loader
au BufNewFile,BufRead lilo.conf*		call s:StarSetf('lilo')

" Logcheck
au BufNewFile,BufRead */etc/logcheck/*.d*/*	call s:StarSetf('logcheck')

" Makefile
au BufNewFile,BufRead [mM]akefile*		call s:StarSetf('make')

" Ruby Makefile
au BufNewFile,BufRead [rR]akefile*		call s:StarSetf('ruby')

" Mail (also matches muttrc.vim, so this is below the other checks)
au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\}	setf mail

au BufNewFile,BufRead reportbug-*		call s:StarSetf('mail')

" Modconf
au BufNewFile,BufRead */etc/modutils/*
	\ if executable(expand("<afile>")) != 1
	\|  call s:StarSetf('modconf')
	\|endif
au BufNewFile,BufRead */etc/modprobe.*		call s:StarSetf('modconf')

" Mutt setup file
au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc*	call s:StarSetf('muttrc')
au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc*		call s:StarSetf('muttrc')

" Neomutt setup file
au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc*	call s:StarSetf('neomuttrc')
au BufNewFile,BufRead neomuttrc*,Neomuttrc*		call s:StarSetf('neomuttrc')

" Nroff macros
au BufNewFile,BufRead tmac.*			call s:StarSetf('nroff')

" OpenBSD hostname.if
au BufNewFile,BufRead /etc/hostname.*		call s:StarSetf('config')

" Pam conf
au BufNewFile,BufRead */etc/pam.d/*		call s:StarSetf('pamconf')

" Printcap and Termcap
au BufNewFile,BufRead *printcap*
	\ if !did_filetype()
	\|  let b:ptcap_type = "print" | call s:StarSetf('ptcap')
	\|endif
au BufNewFile,BufRead *termcap*
	\ if !did_filetype()
	\|  let b:ptcap_type = "term" | call s:StarSetf('ptcap')
	\|endif

" ReDIF
" Only used when the .rdf file was not detected to be XML.
au BufRead,BufNewFile *.rdf			call dist#ft#Redif()

" Remind
au BufNewFile,BufRead .reminders*		call s:StarSetf('remind')

" Vim script
au BufNewFile,BufRead *vimrc*			call s:StarSetf('vim')

" Subversion commit file
au BufNewFile,BufRead svn-commit*.tmp		setf svn

" X resources file
au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults')

" XFree86 config
au BufNewFile,BufRead XF86Config-4*
	\ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf')
au BufNewFile,BufRead XF86Config*
	\ if getline(1) =~ '\<XConfigurator\>'
	\|  let b:xf86conf_xfree86_version = 3
	\|endif
	\|call s:StarSetf('xf86conf')

" X11 xmodmap
au BufNewFile,BufRead *xmodmap*			call s:StarSetf('xmodmap')

" Xinetd conf
au BufNewFile,BufRead */etc/xinetd.d/*		call s:StarSetf('xinetd')

" yum conf (close enough to dosini)
au BufNewFile,BufRead */etc/yum.repos.d/*	call s:StarSetf('dosini')

" Z-Shell script
au BufNewFile,BufRead zsh*,zlog*		call s:StarSetf('zsh')


" Plain text files, needs to be far down to not override others.  This avoids
" the "conf" type being used if there is a line starting with '#'.
au BufNewFile,BufRead *.text,README		setf text

" Help files match *.txt but should have a last line that is a modeline.
au BufNewFile,BufRead *.txt	
	\  if getline('$') !~ 'vim:.*ft=help'
	\|   setf text
	\| endif


" Use the filetype detect plugins.  They may overrule any of the previously
" detected filetypes.
runtime! ftdetect/*.vim

" NOTE: The above command could have ended the filetypedetect autocmd group
" and started another one. Let's make sure it has ended to get to a consistent
" state.
augroup END

" Generic configuration file. Use FALLBACK, it's just guessing!
au filetypedetect BufNewFile,BufRead,StdinReadPost *
	\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
	\    && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
	\	|| getline(4) =~ '^#' || getline(5) =~ '^#') |
	\   setf FALLBACK conf |
	\ endif


" If the GUI is already running, may still need to install the Syntax menu.
" Don't do it when the 'M' flag is included in 'guioptions'.
if has("menu") && has("gui_running")
      \ && !exists("did_install_syntax_menu") && &guioptions !~# "M"
  source <sfile>:p:h/menu.vim
endif

" Function called for testing all functions defined here.  These are
" script-local, thus need to be executed here.
" Returns a string with error messages (hopefully empty).
func! TestFiletypeFuncs(testlist)
  let output = ''
  for f in a:testlist
    try
      exe f
    catch
      let output = output . "\n" . f . ": " . v:exception
    endtry
  endfor
  return output
endfunc

" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZU���vim80/indent.vimnu�[���" Vim support file to switch on loading indent files for file types
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2008 Feb 22

if exists("did_indent_on")
  finish
endif
let did_indent_on = 1

augroup filetypeindent
  au FileType * call s:LoadIndent()
  func! s:LoadIndent()
    if exists("b:undo_indent")
      exe b:undo_indent
      unlet! b:undo_indent b:did_indent
    endif
    let s = expand("<amatch>")
    if s != ""
      if exists("b:did_indent")
	unlet b:did_indent
      endif

      " When there is a dot it is used to separate filetype names.  Thus for
      " "aaa.bbb" load "indent/aaa.vim" and then "indent/bbb.vim".
      for name in split(s, '\.')
	exe 'runtime! indent/' . name . '.vim'
      endfor
    endif
  endfunc
augroup END
PK�j�Z�kP���vim80/plugin/spellfile.vimnu�[���" Vim plugin for downloading spell files
" Maintainer:  Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Feb 01

" Exit quickly when:
" - this plugin was already loaded
" - when 'compatible' is set
" - some autocommands are already taking care of spell files
if exists("loaded_spellfile_plugin") || &cp || exists("#SpellFileMissing")
  finish
endif
let loaded_spellfile_plugin = 1

" The function is in the autoload directory.
autocmd SpellFileMissing * call spellfile#LoadFile(expand('<amatch>'))
PK�j�Z/RGg��vim80/plugin/README.txtnu�[���The plugin directory is for standard Vim plugin scripts.

All files here ending in .vim will be sourced by Vim when it starts up.
Look in the file for hints on how it can be disabled without deleting it.

getscriptPlugin.vim  get latest version of Vim scripts
gzip.vim	     edit compressed files
logiPat.vim	     logical operators on patterns
matchparen.vim	     highlight paren matching the one under the cursor
netrwPlugin.vim	     edit files over a network and browse (remote) directories
rrhelper.vim	     used for --remote-wait editing
spellfile.vim	     download a spellfile when it's missing
tarPlugin.vim	     edit (compressed) tar files
tohtml.vim	     convert a file with syntax highlighting to HTML
vimballPlugin.vim    create and unpack .vba files
zipPlugin.vim	     edit zip archives

Note: the explorer.vim plugin is no longer here, the netrw.vim plugin has
taken over browsing directories (also for remote directories).

PK�j�Z����	�	vim80/plugin/gzip.vimnu�[���" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Oct 30

" Exit quickly when:
" - this plugin was already loaded
" - when 'compatible' is set
" - some autocommands are already taking care of compressed files
if exists("loaded_gzip") || &cp || exists("#BufReadPre#*.gz")
  finish
endif
let loaded_gzip = 1

augroup gzip
  " Remove all gzip autocommands
  au!

  " Enable editing of gzipped files.
  " The functions are defined in autoload/gzip.vim.
  "
  " Set binary mode before reading the file.
  " Use "gzip -d", gunzip isn't always available.
  autocmd BufReadPre,FileReadPre	*.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz,*.zst setlocal bin
  autocmd BufReadPost,FileReadPost	*.gz  call gzip#read("gzip -dn")
  autocmd BufReadPost,FileReadPost	*.bz2 call gzip#read("bzip2 -d")
  autocmd BufReadPost,FileReadPost	*.Z   call gzip#read("uncompress")
  autocmd BufReadPost,FileReadPost	*.lzma call gzip#read("lzma -d")
  autocmd BufReadPost,FileReadPost	*.xz  call gzip#read("xz -d")
  autocmd BufReadPost,FileReadPost	*.lz  call gzip#read("lzip -d")
  autocmd BufReadPost,FileReadPost	*.zst call gzip#read("zstd -d --rm")
  autocmd BufWritePost,FileWritePost	*.gz  call gzip#write("gzip")
  autocmd BufWritePost,FileWritePost	*.bz2 call gzip#write("bzip2")
  autocmd BufWritePost,FileWritePost	*.Z   call gzip#write("compress -f")
  autocmd BufWritePost,FileWritePost	*.lzma call gzip#write("lzma -z")
  autocmd BufWritePost,FileWritePost	*.xz  call gzip#write("xz -z")
  autocmd BufWritePost,FileWritePost	*.lz  call gzip#write("lzip")
  autocmd BufWritePost,FileWritePost	*.zst  call gzip#write("zstd --rm")
  autocmd FileAppendPre			*.gz  call gzip#appre("gzip -dn")
  autocmd FileAppendPre			*.bz2 call gzip#appre("bzip2 -d")
  autocmd FileAppendPre			*.Z   call gzip#appre("uncompress")
  autocmd FileAppendPre			*.lzma call gzip#appre("lzma -d")
  autocmd FileAppendPre			*.xz   call gzip#appre("xz -d")
  autocmd FileAppendPre			*.lz   call gzip#appre("lzip -d")
  autocmd FileAppendPre			*.zst call gzip#appre("zstd -d --rm")
  autocmd FileAppendPost		*.gz  call gzip#write("gzip")
  autocmd FileAppendPost		*.bz2 call gzip#write("bzip2")
  autocmd FileAppendPost		*.Z   call gzip#write("compress -f")
  autocmd FileAppendPost		*.lzma call gzip#write("lzma -z")
  autocmd FileAppendPost		*.xz call gzip#write("xz -z")
  autocmd FileAppendPost		*.lz call gzip#write("lzip")
  autocmd FileAppendPost		*.zst call gzip#write("zstd --rm")
augroup END
PK�j�Z֘�RRvim80/plugin/vimballPlugin.vimnu�[���" vimballPlugin : construct a file containing both paths and files
" Author: Charles E. Campbell
" Copyright: (c) 2004-2014 by Charles E. Campbell
"            The VIM LICENSE applies to Vimball.vim, and Vimball.txt
"            (see |copyright|) except use "Vimball" instead of "Vim".
"            No warranty, express or implied.
"  *** ***   Use At-Your-Own-Risk!   *** ***
"
" (Rom 2:1 WEB) Therefore you are without excuse, O man, whoever you are who
"      judge. For in that which you judge another, you condemn yourself. For
"      you who judge practice the same things.
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim

" ---------------------------------------------------------------------
"  Load Once: {{{1
if &cp || exists("g:loaded_vimballPlugin")
 finish
endif
let g:loaded_vimballPlugin = "v37"
let s:keepcpo              = &cpo
set cpo&vim

" ------------------------------------------------------------------------------
" Public Interface: {{{1
com! -range   -complete=file -nargs=+ -bang MkVimball		call vimball#MkVimball(<line1>,<line2>,<bang>0,<f-args>)
com! -nargs=? -complete=dir  UseVimball						call vimball#Vimball(1,<f-args>)
com! -nargs=0                VimballList					call vimball#Vimball(0)
com! -nargs=* -complete=dir  RmVimball						call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings()
augroup Vimball
 au!
 au BufEnter  *.vba,*.vba.gz,*.vba.bz2,*.vba.zip,*.vba.xz	setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'|setlocal ma ff=unix noma|endif|if line('$') > 1|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")|endif
 au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip,*.vba.xz			let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif
 au SourceCmd *.vba											if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|call vimball#Vimball(1)|close|else|call vimball#Vimball(1)|endif
 au BufEnter  *.vmb,*.vmb.gz,*.vmb.bz2,*.vmb.zip,*.vmb.xz	setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'|setlocal ma ff=unix noma|endif|if line('$') > 1|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")|endif
 au SourceCmd *.vmb.gz,*.vmb.bz2,*.vmb.zip,*.vmb.xz			let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif
 au SourceCmd *.vmb											if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|call vimball#Vimball(1)|close|else|call vimball#Vimball(1)|endif
augroup END

" =====================================================================
" Restoration And Modelines: {{{1
" vim: fdm=marker
let &cpo= s:keepcpo
unlet s:keepcpo
PK�j�Zn���qq vim80/plugin/getscriptPlugin.vimnu�[���" ---------------------------------------------------------------------
" getscriptPlugin.vim
"  Author:	Charles E. Campbell
"  Date:	Nov 29, 2013
"  Installing:	:help glvs-install
"  Usage:	:help glvs
"
" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim
"
" (Rom 15:11 WEB) Again, "Praise the Lord, all you Gentiles!  Let
" all the peoples praise Him."
" ---------------------------------------------------------------------
" Initialization:	{{{1
" if you're sourcing this file, surely you can't be
" expecting vim to be in its vi-compatible mode
if exists("g:loaded_getscriptPlugin")
 finish
endif
if &cp
 if &verbose
  echo "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
 endif
 finish
endif
let g:loaded_getscriptPlugin = "v36"
let s:keepcpo                = &cpo
set cpo&vim

" ---------------------------------------------------------------------
"  Public Interface: {{{1
com!        -nargs=0 GetLatestVimScripts call getscript#GetLatestVimScripts()
com!        -nargs=0 GetScripts          call getscript#GetLatestVimScripts()
silent! com -nargs=0 GLVS                call getscript#GetLatestVimScripts()

" ---------------------------------------------------------------------
" Restore Options: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo

" ---------------------------------------------------------------------
" vim: ts=8 sts=2 fdm=marker nowrap
PK�j�Z��4(��vim80/plugin/manpager.vimnu�[���" Vim plugin for using Vim as manpager.
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
" Last Change: 2018 Feb 04

command! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER

function! s:ManPager()
  set nocompatible
  if exists('+viminfofile')
    set viminfofile=NONE
  endif
  set noswapfile 

  setlocal ft=man
  runtime ftplugin/man.vim
  setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable

  " Emulate 'col -b'
  silent keepj keepp %s/\v(.)\b\ze\1?//ge

  " Remove empty lines above the header
  call cursor(1, 1)
  let n = search(".*(.*)", "c")
  if n > 1
    exe "1," . n-1 . "d"
  endif
  setlocal nomodified readonly

  syntax on
endfunction
PK�j�Za%z��(�(vim80/plugin/netrwPlugin.vimnu�[���" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
"            PLUGIN SECTION
" Date:		Feb 08, 2016
" Maintainer:	Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright:    Copyright (C) 1999-2013 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
"               *as is* and comes with no warranty of any kind, either
"               expressed or implied. By using this plugin, you agree that
"               in no event will the copyright holder be liable for any damages
"               resulting from the use of this software.
"
"  But be doers of the Word, and not only hearers, deluding your own selves {{{1
"  (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
" Load Once: {{{1
if &cp || exists("g:loaded_netrwPlugin")
 finish
endif
let g:loaded_netrwPlugin = "v156"
let s:keepcpo = &cpo
set cpo&vim
"DechoRemOn

" ---------------------------------------------------------------------
" Public Interface: {{{1

" Local Browsing Autocmds: {{{2
augroup FileExplorer
 au!
 au BufLeave *  if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif
 au BufEnter *	sil call s:LocalBrowse(expand("<amatch>"))
 au VimEnter *	sil call s:VimEnter(expand("<amatch>"))
 if has("win32") || has("win95") || has("win64") || has("win16")
  au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
 endif
augroup END

" Network Browsing Reading Writing: {{{2
augroup Network
 au!
 au BufReadCmd   file://*											call netrw#FileUrlRead(expand("<amatch>"))
 au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://*	exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
 au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://*	exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
 au BufWriteCmd  ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://*			exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
 au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://*			exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
 try                                                       
  au SourceCmd   ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://*	exe 'Nsource '.fnameescape(expand("<amatch>"))
 catch /^Vim\%((\a\+)\)\=:E216/                            
  au SourcePre   ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://*	exe 'Nsource '.fnameescape(expand("<amatch>"))
 endtry
augroup END

" Commands: :Nread, :Nwrite, :NetUserPass {{{2
com! -count=1 -nargs=*	Nread		let s:svpos= winsaveview()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call winrestview(s:svpos)
com! -range=% -nargs=*	Nwrite		let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=*		NetUserPass	call NetUserPass(<f-args>)
com! -nargs=*	        Nsource		let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=?		Ntree		call netrw#SetTreetop(<q-args>)

" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
com! -nargs=* -bar -bang -count=0 -complete=dir	Explore		call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir	Sexplore	call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir	Hexplore	call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir	Vexplore	call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
com! -nargs=* -bar       -count=0 -complete=dir	Texplore	call netrw#Explore(<count>,0,6        ,<q-args>)
com! -nargs=* -bar -bang			Nexplore	call netrw#Explore(-1,0,0,<q-args>)
com! -nargs=* -bar -bang			Pexplore	call netrw#Explore(-2,0,0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Lexplore	call netrw#Lexplore(<count>,<bang>0,<q-args>)

" Commands: NetrwSettings {{{2
com! -nargs=0	NetrwSettings	call netrwSettings#NetrwSettings()
com! -bang	NetrwClean	call netrw#Clean(<bang>0)

" Maps:
if !exists("g:netrw_nogx")
 if maparg('gx','n') == ""
  if !hasmapto('<Plug>NetrwBrowseX')
   nmap <unique> gx <Plug>NetrwBrowseX
  endif
  nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netrw_gx : '<cfile>')),netrw#CheckIfRemote())<cr>
 endif
 if maparg('gx','v') == ""
  if !hasmapto('<Plug>NetrwBrowseXVis')
   vmap <unique> gx <Plug>NetrwBrowseXVis
  endif
  vno <silent> <Plug>NetrwBrowseXVis :<c-u>call netrw#BrowseXVis()<cr>
 endif
endif
if exists("g:netrw_usetab") && g:netrw_usetab
 if maparg('<c-tab>','n') == ""
  nmap <unique> <c-tab> <Plug>NetrwShrink
 endif
 nno <silent> <Plug>NetrwShrink :call netrw#Shrink()<cr>
endif

" ---------------------------------------------------------------------
" LocalBrowse: invokes netrw#LocalBrowseCheck() on directory buffers {{{2
fun! s:LocalBrowse(dirname)
  " Unfortunate interaction -- only DechoMsg debugging calls can be safely used here.
  " Otherwise, the BufEnter event gets triggered when attempts to write to
  " the DBG buffer are made.
  
  if !exists("s:vimentered")
   " If s:vimentered doesn't exist, then the VimEnter event hasn't fired.  It will,
   " and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
"   call Dfunc("s:LocalBrowse(dirname<".a:dirname.">)  (s:vimentered doesn't exist)")
"   call Dret("s:LocalBrowse")
   return
  endif

"  call Dfunc("s:LocalBrowse(dirname<".a:dirname.">)  (s:vimentered=".s:vimentered.")")

  if has("amiga")
   " The check against '' is made for the Amiga, where the empty
   " string is the current directory and not checking would break
   " things such as the help command.
"   call Decho("(LocalBrowse) dirname<".a:dirname.">  (isdirectory, amiga)")
   if a:dirname != '' && isdirectory(a:dirname)
    sil! call netrw#LocalBrowseCheck(a:dirname)
    if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
     exe w:netrw_bannercnt
    endif
   endif

  elseif isdirectory(a:dirname)
"   call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft."  (isdirectory, not amiga)")
"   call Dredir("LocalBrowse ft last set: ","verbose set ft")
"   call Decho("(s:LocalBrowse) COMBAK#23: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
   sil! call netrw#LocalBrowseCheck(a:dirname)
"   call Decho("(s:LocalBrowse) COMBAK#24: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
   if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
    exe w:netrw_bannercnt
"    call Decho("(s:LocalBrowse) COMBAK#25: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
   endif

  else
   " not a directory, ignore it
"   call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
  endif
"  call Decho("(s:LocalBrowse) COMBAK#26: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))

"  call Dret("s:LocalBrowse")
endfun

" ---------------------------------------------------------------------
" s:VimEnter: after all vim startup stuff is done, this function is called. {{{2
"             Its purpose: to look over all windows and run s:LocalBrowse() on
"             them, which checks if they're directories and will create a directory
"             listing when appropriate.
"             It also sets s:vimentered, letting s:LocalBrowse() know that s:VimEnter()
"             has already been called.
fun! s:VimEnter(dirname)
"  call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">")
  let curwin       = winnr()
  let s:vimentered = 1
  windo call s:LocalBrowse(expand("%:p"))
  exe curwin."wincmd w"
"  call Dret("s:VimEnter")
endfun

" ---------------------------------------------------------------------
" NetrwStatusLine: {{{1
fun! NetrwStatusLine()
"  let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr("%")." Xline#".w:netrw_explore_line." line#".line(".")
  if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
   let &stl= s:netrw_explore_stl
   if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
   if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
   return ""
  else
   return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
  endif
endfun

" ------------------------------------------------------------------------
" NetUserPass: set username and password for subsequent ftp transfer {{{1
"   Usage:  :call NetUserPass()			-- will prompt for userid and password
"	    :call NetUserPass("uid")		-- will prompt for password
"	    :call NetUserPass("uid","password") -- sets global userid and password
fun! NetUserPass(...)

 " get/set userid
 if a:0 == 0
"  call Dfunc("NetUserPass(a:0<".a:0.">)")
  if !exists("g:netrw_uid") || g:netrw_uid == ""
   " via prompt
   let g:netrw_uid= input('Enter username: ')
  endif
 else	" from command line
"  call Dfunc("NetUserPass(a:1<".a:1.">) {")
  let g:netrw_uid= a:1
 endif

 " get password
 if a:0 <= 1 " via prompt
"  call Decho("a:0=".a:0." case <=1:")
  let g:netrw_passwd= inputsecret("Enter Password: ")
 else " from command line
"  call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
  let g:netrw_passwd=a:2
 endif
"  call Dret("NetUserPass")
endfun

" ------------------------------------------------------------------------
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 fdm=marker
PK�j�Z���x�&�&vim80/plugin/tohtml.vimnu�[���" Vim plugin for converting a syntax highlighted file to HTML.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2015 Sep 08
"
" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
" $VIMRUNTIME/syntax/2html.vim
"
" TODO: {{{
"   * Options for generating the CSS in external style sheets. New :TOcss
"     command to convert the current color scheme into a (mostly) generic CSS
"     stylesheet which can be re-used. Alternate stylesheet support? Good start
"     by Erik Falor
"     ( https://groups.google.com/d/topic/vim_use/7XTmC4D22dU/discussion ).
"   * Add optional argument to :TOhtml command to specify mode (gui, cterm,
"     term) to use for the styling. Suggestion by "nacitar".
"   * Add way to override or specify which RGB colors map to the color numbers
"     in cterm. Get better defaults than just guessing? Suggestion by "nacitar".
"   * Disable filetype detection until after all processing is done.
"   * Add option for not generating the hyperlink on stuff that looks like a
"     URL? Or just color the link to fit with the colorscheme (and only special
"     when hovering)?
"   * Bug: Opera does not allow printing more than one page if uncopyable
"     regions is turned on. Possible solution: Add normal text line numbers with
"     display:none, set to display:inline for print style sheets, and hide
"     <input> elements for print, to allow Opera printing multiple pages (and
"     other uncopyable areas?). May need to make the new text invisible to IE
"     with conditional comments to prevent copying it, IE for some reason likes
"     to copy hidden text. Other browsers too?
"   * Bug: still a 1px gap throughout the fold column when html_prevent_copy is
"     "fn" in some browsers. Specifically, in Chromium on Ubuntu (but not Chrome
"     on Windows). Perhaps it is font related?
"   * Bug: still some gaps in the fold column when html_prevent_copy contains
"     'd' and showing the whole diff (observed in multiple browsers). Only gaps
"     on diff lines though.
"   * Undercurl support via CSS3, with fallback to dotted or something:
"	https://groups.google.com/d/topic/vim_use/BzXA6He1pHg/discussion
"   * Redo updates for modified default foldtext (v11) when/if the patch is
"     accepted to modify it.
"   * Test case +diff_one_file-dynamic_folds+expand_tabs-hover_unfold
"		+ignore_conceal-ignore_folding+no_foldcolumn+no_pre+no_progress
"		+number_lines-pre_wrap-use_css+use_xhtml+whole_filler.xhtml
"     does not show the whole diff filler as it is supposed to?
"   * Bug: when 'isprint' is wrong for the current encoding, will generate
"     invalid content. Can/should anything be done about this? Maybe a separate
"     plugin to correct 'isprint' based on encoding?
"   * Check to see if the windows-125\d encodings actually work in Unix without
"     the 8bit- prefix. Add prefix to autoload dictionaries for Unix if not.
"   * Font auto-detection similar to
"     http://www.vim.org/scripts/script.php?script_id=2384 but for a variety of
"     platforms.
"   * Error thrown when sourcing 2html.vim directly when plugins are not loaded.
"   * Pull in code from http://www.vim.org/scripts/script.php?script_id=3113 :
"	- listchars support
"	- full-line background highlight
"	- other?
"   * Make it so deleted lines in a diff don't create side-scrolling (get it
"     free with full-line background highlight above).
"   * Restore open/closed folds and cursor position after processing each file
"     with option not to restore for speed increase.
"   * Add extra meta info (generation time, etc.)?
"   * Tidy up so we can use strict doctype in even more situations
"   * Implementation detail: add threshold for writing the lines to the html
"     buffer before we're done (5000 or so lines should do it)
"   * TODO comments for code cleanup scattered throughout
"}}}

if exists('g:loaded_2html_plugin')
  finish
endif
let g:loaded_2html_plugin = 'vim7.4_v2'

"
" Changelog: {{{
"   7.4_v2  (this version): Fix error raised when converting a diff containing
"                           an empty buffer. Jan Stocker: allow g:html_font to
"                           take a list so it is easier to specfiy fallback
"                           fonts in the generated CSS.
"   7.4_v1  (Vim 7.4.0000): Fix modeline mangling for new "Vim:" format, and
"			    also for version-specific modelines like "vim>703:".
"
"   7.3 updates: {{{
"   7.3_v14 (Vim 7.3.1246): Allow suppressing line number anchors using
"			    g:html_line_ids=0. Allow customizing
"			    important IDs (like line IDs and fold IDs) using
"			    g:html_id_expr evalutated when the buffer conversion
"			    is started.
"   7.3_v13 (Vim 7.3.1088): Keep foldmethod at manual in the generated file and
"			    insert modeline to set it to manual.
"			    Fix bug: diff mode with 2 unsaved buffers creates a
"			    duplicate of one buffer instead of including both.
"			    Add anchors to each line so you can put '#L123'
"			    or '#123' at the end of the URL to jump to line 123
"			    (idea by Andy Spencer). Add javascript to open folds
"			    to show the anchor being jumped to if it is hidden.
"			    Fix XML validation error: &nsbp; not part of XML.
"			    Allow TOhtml to chain together with other commands
"			    using |.
"   7.3_v12 (Vim 7.3.0616): Fix modeline mangling to also work for when multiple
"			    highlight groups make up the start-of-modeline text.
"			    Improve render time of page with uncopyable regions
"			    by not using one-input-per-char. Change name of
"			    uncopyable option from html_unselectable to
"			    html_prevent_copy. Added html_no_invalid option and
"			    default to inserting invalid markup for uncopyable
"			    regions to prevent MS Word from pasting undeletable
"			    <input> elements. Fix 'cpo' handling (Thilo Six).
"		 7.3_v12b1: Add html_unselectable option. Rework logic to
"			    eliminate post-processing substitute commands in
"			    favor of doing the work up front. Remove unnecessary
"			    special treatment of 'LineNr' highlight group. Minor
"			    speed improvements. Fix modeline mangling in
"			    generated output so it works for text in the first
"			    column. Fix missing line number and fold column in
"			    diff filler lines. Fix that some fonts have a 1px
"			    gap (using a dirty hack, improvements welcome). Add
"			    "colorscheme" meta tag. Does NOT include support for
"			    the new default foldtext added in v11, as the patch
"			    adding it has not yet been included in Vim.
"   7.3_v11 ( unreleased ): Support new default foldtext from patch by Christian
"			    Brabandt in
"			    http://groups.google.com/d/topic/vim_dev/B6FSGfq9VoI/discussion.
"			    This patch has not yet been included in Vim, thus
"			    these changes are removed in the next version.
"   7.3_v10 (Vim 7.3.0227): Fix error E684 when converting a range wholly inside
"			    multiple nested folds with dynamic folding on.
"			    Also fix problem with foldtext in this situation.
"   7.3_v9  (Vim 7.3.0170): Add html_pre_wrap option active with html_use_css
"			    and without html_no_pre, default value same as
"			    'wrap' option, (Andy Spencer). Don't use
"			    'fileencoding' for converted document encoding if
"			    'buftype' indicates a special buffer which isn't
"			    written.
"   7.3_v8  (Vim 7.3.0100): Add html_expand_tabs option to allow leaving tab
"			    characters in generated output (Andy Spencer).
"			    Escape text that looks like a modeline so Vim
"			    doesn't use anything in the converted HTML as a
"			    modeline. Bugfixes: Fix folding when a fold starts
"			    before the conversion range. Remove fold column when
"			    there are no folds.
"   7.3_v7  (Vim 7-3-0063): see betas released on vim_dev below:
"		  7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way.
"		  7.3_v7b2: Remove automatic detection of encodings that are not
"			    supported by all major browsers according to
"			    http://wiki.whatwg.org/wiki/Web_Encodings and
"			    convert to UTF-8 for all Unicode encodings. Make
"			    HTML encoding to Vim encoding detection be
"			    case-insensitive for built-in pairs.
"		  7.3_v7b1: Remove use of setwinvar() function which cannot be
"			    called in restricted mode (Andy Spencer). Use
"			    'fencoding' instead of 'encoding' to determine by
"			    charset, and make sure the 'fenc' of the generated
"			    file matches its indicated charset. Add charsets for
"			    all of Vim's natively supported encodings.
"   7.3_v6  (Vim 7.3.0000): Really fix bug with 'nowrapscan', 'magic' and other
"			    user settings interfering with diff mode generation,
"			    trailing whitespace (e.g. line number column) when
"			    using html_no_pre, and bugs when using
"			    html_hover_unfold.
"   7.3_v5  ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync
"			    folds in diff mode when first line was folded.
"   7.3_v4  (Vim 7.3.0000): Bugfixes, especially for xhtml markup, and diff mode
"   7.3_v3  (Vim 7.3.0000): Refactor option handling and make html_use_css
"			    default to true when not set to anything. Use strict
"			    doctypes where possible. Rename use_xhtml option to
"			    html_use_xhtml for consistency. Use .xhtml extension
"			    when using this option. Add meta tag for settings.
"   7.3_v2  (Vim 7.3.0000): Fix syntax highlighting in diff mode to use both the
"			    diff colors and the normal syntax colors
"   7.3_v1  (Vim 7.3.0000): Add conceal support and meta tags in output
"}}}
"}}}

" Define the :TOhtml command when:
" - 'compatible' is not set
" - this plugin was not already loaded
" - user commands are available. {{{
if !&cp && !exists(":TOhtml") && has("user_commands")
  command -range=% -bar TOhtml :call tohtml#Convert2HTML(<line1>, <line2>)
endif "}}}

" Make sure any patches will probably use consistent indent
"   vim: ts=8 sw=2 sts=2 noet fdm=marker
PK�j�Z�&����vim80/plugin/tarPlugin.vimnu�[���" tarPlugin.vim -- a Vim plugin for browsing tarfiles
" Original was copyright (c) 2002, Michael C. Toren <mct@toren.net>
" Modified by Charles E. Campbell
" Distributed under the GNU General Public License.
"
" Updates are available from <http://michael.toren.net/code/>.  If you
" find this script useful, or have suggestions for improvements, please
" let me know.
" Also look there for further comments and documentation.
"
" This part only sets the autocommands.  The functions are in autoload/tar.vim.
" ---------------------------------------------------------------------
"  Load Once: {{{1
if &cp || exists("g:loaded_tarPlugin")
 finish
endif
let g:loaded_tarPlugin = "v29"
let s:keepcpo          = &cpo
set cpo&vim

" ---------------------------------------------------------------------
"  Public Interface: {{{1
augroup tar
  au!
  au BufReadCmd   tarfile::*	call tar#Read(expand("<amatch>"), 1)
  au FileReadCmd  tarfile::*	call tar#Read(expand("<amatch>"), 0)
  au BufWriteCmd  tarfile::*	call tar#Write(expand("<amatch>"))
  au FileWriteCmd tarfile::*	call tar#Write(expand("<amatch>"))

  if has("unix")
   au BufReadCmd   tarfile::*/*	call tar#Read(expand("<amatch>"), 1)
   au FileReadCmd  tarfile::*/*	call tar#Read(expand("<amatch>"), 0)
   au BufWriteCmd  tarfile::*/*	call tar#Write(expand("<amatch>"))
   au FileWriteCmd tarfile::*/*	call tar#Write(expand("<amatch>"))
  endif

  au BufReadCmd   *.tar.gz		call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.tar			call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.lrp			call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.tar.bz2		call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.tar.Z		call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.tgz			call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.tbz			call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.tar.lzma	call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.tar.xz		call tar#Browse(expand("<amatch>"))
  au BufReadCmd   *.txz			call tar#Browse(expand("<amatch>"))
augroup END
com! -nargs=? -complete=file Vimuntar call tar#Vimuntar(<q-args>)

" ---------------------------------------------------------------------
" Restoration And Modelines: {{{1
" vim: fdm=marker
let &cpo= s:keepcpo
unlet s:keepcpo
PK�j�Z��dZZvim80/plugin/matchparen.vimnu�[���" Vim plugin for showing matching parens
" Maintainer:  Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Sep 30

" Exit quickly when:
" - this plugin was already loaded (or disabled)
" - when 'compatible' is set
" - the "CursorMoved" autocmd event is not available.
if exists("g:loaded_matchparen") || &cp || !exists("##CursorMoved")
  finish
endif
let g:loaded_matchparen = 1

if !exists("g:matchparen_timeout")
  let g:matchparen_timeout = 300
endif
if !exists("g:matchparen_insert_timeout")
  let g:matchparen_insert_timeout = 60
endif

augroup matchparen
  " Replace all matchparen autocommands
  autocmd! CursorMoved,CursorMovedI,WinEnter * call s:Highlight_Matching_Pair()
  if exists('##TextChanged')
    autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair()
  endif
augroup END

" Skip the rest if it was already done.
if exists("*s:Highlight_Matching_Pair")
  finish
endif

let s:cpo_save = &cpo
set cpo-=C

" The function that is invoked (very often) to define a ":match" highlighting
" for any matching paren.
function! s:Highlight_Matching_Pair()
  " Remove any previous match.
  if exists('w:paren_hl_on') && w:paren_hl_on
    silent! call matchdelete(3)
    let w:paren_hl_on = 0
  endif

  " Avoid that we remove the popup menu.
  " Return when there are no colors (looks like the cursor jumps).
  if pumvisible() || (&t_Co < 8 && !has("gui_running"))
    return
  endif

  " Get the character under the cursor and check if it's in 'matchpairs'.
  let c_lnum = line('.')
  let c_col = col('.')
  let before = 0

  let text = getline(c_lnum)
  let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
  if empty(matches)
    let [c_before, c] = ['', '']
  else
    let [c_before, c] = matches[1:2]
  endif
  let plist = split(&matchpairs, '.\zs[:,]')
  let i = index(plist, c)
  if i < 0
    " not found, in Insert mode try character before the cursor
    if c_col > 1 && (mode() == 'i' || mode() == 'R')
      let before = strlen(c_before)
      let c = c_before
      let i = index(plist, c)
    endif
    if i < 0
      " not found, nothing to do
      return
    endif
  endif

  " Figure out the arguments for searchpairpos().
  if i % 2 == 0
    let s_flags = 'nW'
    let c2 = plist[i + 1]
  else
    let s_flags = 'nbW'
    let c2 = c
    let c = plist[i - 1]
  endif
  if c == '['
    let c = '\['
    let c2 = '\]'
  endif

  " Find the match.  When it was just before the cursor move it there for a
  " moment.
  if before > 0
    let has_getcurpos = exists("*getcurpos")
    if has_getcurpos
      " getcurpos() is more efficient but doesn't exist before 7.4.313.
      let save_cursor = getcurpos()
    else
      let save_cursor = winsaveview()
    endif
    call cursor(c_lnum, c_col - before)
  endif

  " Build an expression that detects whether the current cursor position is in
  " certain syntax types (string, comment, etc.), for use as searchpairpos()'s
  " skip argument.
  " We match "escape" for special items, such as lispEscapeSpecial.
  let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' .
	\ '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
  " If executing the expression determines that the cursor is currently in
  " one of the syntax types, then we want searchpairpos() to find the pair
  " within those syntax types (i.e., not skip).  Otherwise, the cursor is
  " outside of the syntax types and s_skip should keep its value so we skip any
  " matching pair inside the syntax types.
  execute 'if' s_skip '| let s_skip = 0 | endif'

  " Limit the search to lines visible in the window.
  let stoplinebottom = line('w$')
  let stoplinetop = line('w0')
  if i % 2 == 0
    let stopline = stoplinebottom
  else
    let stopline = stoplinetop
  endif

  " Limit the search time to 300 msec to avoid a hang on very long lines.
  " This fails when a timeout is not supported.
  if mode() == 'i' || mode() == 'R'
    let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
  else
    let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
  endif
  try
    let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
  catch /E118/
    " Can't use the timeout, restrict the stopline a bit more to avoid taking
    " a long time on closed folds and long lines.
    " The "viewable" variables give a range in which we can scroll while
    " keeping the cursor at the same position.
    " adjustedScrolloff accounts for very large numbers of scrolloff.
    let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
    let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
    let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
    " one of these stoplines will be adjusted below, but the current values are
    " minimal boundaries within the current window
    if i % 2 == 0
      if has("byte_offset") && has("syntax_items") && &smc > 0
	let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
	let stopline = min([bottom_viewable, byte2line(stopbyte)])
      else
	let stopline = min([bottom_viewable, c_lnum + 100])
      endif
      let stoplinebottom = stopline
    else
      if has("byte_offset") && has("syntax_items") && &smc > 0
	let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
	let stopline = max([top_viewable, byte2line(stopbyte)])
      else
	let stopline = max([top_viewable, c_lnum - 100])
      endif
      let stoplinetop = stopline
    endif
    let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
  endtry

  if before > 0
    if has_getcurpos
      call setpos('.', save_cursor)
    else
      call winrestview(save_cursor)
    endif
  endif

  " If a match is found setup match highlighting.
  if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom 
    if exists('*matchaddpos')
      call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
    else
      exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
	    \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
    endif
    let w:paren_hl_on = 1
  endif
endfunction

" Define commands that will disable and enable the plugin.
command! DoMatchParen call s:DoMatchParen()
command! NoMatchParen call s:NoMatchParen()

func! s:NoMatchParen()
  let w = winnr()
  noau windo silent! call matchdelete(3)
  unlet! g:loaded_matchparen
  exe "noau ". w . "wincmd w"
  au! matchparen
endfunc

func! s:DoMatchParen()
  runtime plugin/matchparen.vim
  let w = winnr()
  silent windo doau CursorMoved
  exe "noau ". w . "wincmd w"
endfunc

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�`�L�	�	vim80/plugin/zipPlugin.vimnu�[���" zipPlugin.vim: Handles browsing zipfiles
"            PLUGIN PORTION
" Date:			Sep 13, 2016
" Maintainer:	Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License:		Vim License  (see vim's :help license)
" Copyright:    Copyright (C) 2005-2016 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like anything else that's free,
"               zipPlugin.vim is provided *as is* and comes with no warranty
"               of any kind, either expressed or implied. By using this
"               plugin, you agree that in no event will the copyright
"               holder be liable for any damages resulting from the use
"               of this software.
"
" (James 4:8 WEB) Draw near to God, and he will draw near to you.
" Cleanse your hands, you sinners; and purify your hearts, you double-minded.
" ---------------------------------------------------------------------
" Load Once: {{{1
if &cp || exists("g:loaded_zipPlugin")
 finish
endif
let g:loaded_zipPlugin = "v28"
let s:keepcpo          = &cpo
set cpo&vim

" ---------------------------------------------------------------------
" Options: {{{1
if !exists("g:zipPlugin_ext")
 let g:zipPlugin_ext='*.apk,*.celzip,*.crtx,*.docm,*.docx,*.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,*.oxt,*.potm,*.potx,*.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.wsz,*.xap,*.xlam,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
endif

" ---------------------------------------------------------------------
" Public Interface: {{{1
augroup zip
 au!
 au BufReadCmd   zipfile:*	call zip#Read(expand("<amatch>"), 1)
 au FileReadCmd  zipfile:*	call zip#Read(expand("<amatch>"), 0)
 au BufWriteCmd  zipfile:*	call zip#Write(expand("<amatch>"))
 au FileWriteCmd zipfile:*	call zip#Write(expand("<amatch>"))

 if has("unix")
  au BufReadCmd   zipfile:*/*	call zip#Read(expand("<amatch>"), 1)
  au FileReadCmd  zipfile:*/*	call zip#Read(expand("<amatch>"), 0)
  au BufWriteCmd  zipfile:*/*	call zip#Write(expand("<amatch>"))
  au FileWriteCmd zipfile:*/*	call zip#Write(expand("<amatch>"))
 endif

 exe "au BufReadCmd ".g:zipPlugin_ext.' call zip#Browse(expand("<amatch>"))'
augroup END

" ---------------------------------------------------------------------
"  Restoration And Modelines: {{{1
"  vim: fdm=marker
let &cpo= s:keepcpo
unlet s:keepcpo
PK�j�Z9$�R��vim80/plugin/rrhelper.vimnu�[���" Vim plugin with helper function(s) for --remote-wait
" Maintainer: Flemming Madsen <fma@cci.dk>
" Last Change: 2008 May 29

" Has this already been loaded?
if exists("loaded_rrhelper") || !has("clientserver")
  finish
endif
let loaded_rrhelper = 1

" Setup answers for a --remote-wait client who will assume
" a SetupRemoteReplies() function in the command server

function SetupRemoteReplies()
  let cnt = 0
  let max = argc()

  let id = expand("<client>")
  if id == 0
    return
  endif
  while cnt < max
    " Handle same file from more clients and file being more than once
    " on the command line by encoding this stuff in the group name
    let uniqueGroup = "RemoteReply_".id."_".cnt

    " Path separators are always forward slashes for the autocommand pattern.
    " Escape special characters with a backslash.
    let f = substitute(argv(cnt), '\\', '/', "g")
    if exists('*fnameescape')
      let f = fnameescape(f)
    else
      let f = escape(f, " \t\n*?[{`$\\%#'\"|!<")
    endif
    execute "augroup ".uniqueGroup
    execute "autocmd ".uniqueGroup." BufUnload ". f ."  call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')"
    let cnt = cnt + 1
  endwhile
  augroup END
endfunc

function DoRemoteReply(id, cnt, group, file)
  call server2client(a:id, a:cnt)
  execute 'autocmd! '.a:group.' BufUnload '.a:file
  execute 'augroup! '.a:group
endfunc

" vim: set sw=2 sts=2 :
PK�j�ZT&�((vim80/plugin/logiPat.vimnu�[���" LogiPat: Boolean logical pattern matcher
"   Author:  Charles E. Campbell
"   Date:    Apr 04, 2016
"   Version: 4
"   Purpose: to do Boolean-logic based regular expression pattern matching
" Copyright:    Copyright (C) 1999-2011 Charles E. Campbell {{{1
"               Permission is hereby granted to use and distribute this code,
"               with or without modifications, provided that this copyright
"               notice is copied with it. Like most anything else that's free,
"               LogiPat.vim is provided *as is* and comes with no warranty
"               of any kind, either expressed or implied. By using this
"               plugin, you agree that in no event will the copyright
"               holder be liable for any damages resulting from the use
"               of this software.
"
"   Usage: {{{1
"       :LogiPat ...
"
"         Boolean logic supported:
"            () grouping operators
"            !  not the following pattern
"            |  logical or
"            &  logical and
"            "..pattern.."
"	Example: {{{1
"		:LogiPat !("january"|"february")
"		  would match all strings not containing the strings january
"		  or february
"	GetLatestVimScripts: 1290 1 :AutoInstall: LogiPat.vim
"
"  Behold, you will conceive in your womb, and bring forth a son, {{{1
"  and will call his name Jesus. He will be great, and will be
"  called the Son of the Most High. The Lord God will give him the
"  throne of his father, David, and he will reign over the house of
"  Jacob forever. There will be no end to his kingdom. (Luke 1:31-33 WEB)

" ---------------------------------------------------------------------
" Load Once: {{{1
if &cp || exists("loaded_logiPat")
 finish
endif
let g:loaded_logiPat = "v4"
let s:keepcpo        = &cpo
set cpo&vim
"DechoRemOn

" ---------------------------------------------------------------------
" Public Interface: {{{1
com!     -nargs=* LogiPat		call   LogiPat(<q-args>,1)
sil! com -nargs=* LP			call   LogiPat(<q-args>,1)
sil! com -nargs=* LPR			call   LogiPat(<q-args>,1,"r")
com!     -nargs=+ LPE			echomsg LogiPat(<q-args>)
com!     -nargs=+ LogiPatFlags	let  s:LogiPatFlags="<args>"
sil! com -nargs=+ LPF			let  s:LogiPatFlags="<args>"

" =====================================================================
" Functions: {{{1

" ---------------------------------------------------------------------
" LogiPat: this function interprets the boolean-logic pattern {{{2
fun! LogiPat(pat,...)
"  call Dfunc("LogiPat(pat<".a:pat.">)")

  " LogiPat(pat,dosearch)
  if a:0 > 0
   let dosearch= a:1
  else
   let dosearch= 0
  endif
  if a:0 >= 3
   let s:LogiPatFlags= a:3
  endif

  let s:npatstack = 0
  let s:nopstack  = 0
  let s:preclvl   = 0
  let expr        = a:pat

  " Lexer/Parser
  while expr != ""
"   call Decho("expr<".expr.">")

   if expr =~ '^"'
	" push a Pattern; accept "" as a single " in the pattern
    let expr = substitute(expr,'^\s*"','','')
    let pat  = substitute(expr,'^\(\%([^"]\|\"\"\)\{-}\)"\([^"].*$\|$\)','\1','')
	let pat  = substitute(pat,'""','"','g')
    let expr = substitute(expr,'^\(\%([^"]\|\"\"\)\{-}\)"\([^"].*$\|$\)','\2','')
    let expr = substitute(expr,'^\s*','','')
"    call Decho("pat<".pat."> expr<".expr.">")

    call s:LP_PatPush('.*'.pat.'.*')

   elseif expr =~ '^[!()|&]'
    " push an operator
    let op   = strpart(expr,0,1)
    let expr = strpart(expr,strlen(op))
	" allow for those who can't resist doubling their and/or operators
	if op =~ '[|&]' && expr[0] == op
     let expr = strpart(expr,strlen(op))
	endif
    call s:LP_OpPush(op)

   elseif expr =~ '^\s'
    " skip whitespace
    let expr= strpart(expr,1)

   else
    echoerr "operator<".strpart(expr,0,1)."> not supported (yet)"
    let expr= strpart(expr,1)
   endif

  endwhile

  " Final Execution
  call s:LP_OpPush('Z')

  let result= s:LP_PatPop(1)
"  call Decho("result=".result)

  " sanity checks and cleanup
  if s:npatstack > 0
   echoerr s:npatstack." patterns left on stack!"
   let s:npatstack= 0
  endif
  if s:nopstack > 0
   echoerr s:nopstack." operators left on stack!"
   let s:nopstack= 0
  endif

  " perform the indicated search
  if dosearch
   if exists("s:LogiPatFlags") && s:LogiPatFlags != ""
"  call Decho("search(result<".result."> LogiPatFlags<".s:LogiPatFlags.">)")
    call search(result,s:LogiPatFlags)
   else
"  call Decho("search(result<".result.">)")
    call search(result)
   endif
   let @/= result
  endif

"  call Dret("LogiPat ".result)
  return result
endfun

" ---------------------------------------------------------------------
" s:String: Vim6.4 doesn't have string() {{{2
func! s:String(str)
  return "'".escape(a:str, '"')."'"
endfunc

" ---------------------------------------------------------------------
" LP_PatPush: {{{2
fun! s:LP_PatPush(pat)
"  call Dfunc("LP_PatPush(pat<".a:pat.">)")
  let s:npatstack              = s:npatstack + 1
  let s:patstack_{s:npatstack} = a:pat
"  call s:StackLook("patpush") "Decho
"  call Dret("LP_PatPush : npatstack=".s:npatstack)
endfun

" ---------------------------------------------------------------------
" LP_PatPop: pop a number/variable from LogiPat's pattern stack {{{2
fun! s:LP_PatPop(lookup)
"  call Dfunc("LP_PatPop(lookup=".a:lookup.")")
  if s:npatstack > 0
   let ret         = s:patstack_{s:npatstack}
   let s:npatstack = s:npatstack - 1
  else
   let ret= "---error---"
   echoerr "(LogiPat) invalid expression"
  endif
"  call s:StackLook("patpop") "Decho
"  call Dret("LP_PatPop ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" LP_OpPush: {{{2
fun! s:LP_OpPush(op)
"  call Dfunc("LP_OpPush(op<".a:op.">)")

  " determine new operator's precedence level
  if a:op == '('
  	let s:preclvl= s:preclvl + 10
	let preclvl  = s:preclvl
  elseif a:op == ')'
  	let s:preclvl= s:preclvl - 10
   if s:preclvl < 0
    let s:preclvl= 0
    echoerr "too many )s"
   endif
   let preclvl= s:preclvl
  elseif a:op =~ '|'
   let preclvl= s:preclvl + 2
  elseif a:op =~ '&'
   let preclvl= s:preclvl + 4
  elseif a:op == '!'
   let preclvl= s:preclvl + 6
  elseif a:op == 'Z'
   let preclvl= -1
  else
   echoerr "expr<".expr."> not supported (yet)"
   let preclvl= s:preclvl
  endif
"  call Decho("new operator<".a:op."> preclvl=".preclvl)

  " execute higher-precdence operators
"  call Decho("execute higher-precedence operators")
  call s:LP_Execute(preclvl)

  " push new operator onto operator-stack
"  call Decho("push new operator<".a:op."> onto stack with preclvl=".preclvl." at nopstack=".(s:nopstack+1))
  if a:op =~ '!'
   let s:nopstack             = s:nopstack + 1
   let s:opprec_{s:nopstack}  = preclvl
   let s:opstack_{s:nopstack} = a:op
  elseif a:op =~ '|'
   let s:nopstack             = s:nopstack + 1
   let s:opprec_{s:nopstack}  = preclvl
   let s:opstack_{s:nopstack} = a:op
  elseif a:op == '&'
   let s:nopstack             = s:nopstack + 1
   let s:opprec_{s:nopstack}  = preclvl
   let s:opstack_{s:nopstack} = a:op
  endif

"  call s:StackLook("oppush") "Decho
"  call Dret("LP_OpPush : s:preclvl=".s:preclvl)
endfun

" ---------------------------------------------------------------------
" LP_Execute: execute operators from opstack using pattern stack {{{2
fun! s:LP_Execute(preclvl)
"  call Dfunc("LP_Execute(preclvl=".a:preclvl.") npatstack=".s:npatstack." nopstack=".s:nopstack)

  " execute all higher precedence operators
  while s:nopstack > 0 && a:preclvl < s:opprec_{s:nopstack}
   let op= s:opstack_{s:nopstack}
"   call Decho("op<".op."> nop=".s:nopstack." [preclvl=".a:preclvl."] < [opprec_".s:nopstack."=".s:opprec_{s:nopstack}."]")

   let s:nopstack = s:nopstack - 1
 
   if     op == '!'
    let n1= s:LP_PatPop(1)
	call s:LP_PatPush(s:LP_Not(n1))
 
   elseif op == '|'
    let n1= s:LP_PatPop(1)
    let n2= s:LP_PatPop(1)
    call s:LP_PatPush(s:LP_Or(n2,n1))
 
   elseif op =~ '&'
    let n1= s:LP_PatPop(1)
    let n2= s:LP_PatPop(1)
    call s:LP_PatPush(s:LP_And(n2,n1))
   endif
 
"   call s:StackLook("execute") "Decho
  endwhile

"  call Dret("LP_Execute")
endfun

" ---------------------------------------------------------------------
" LP_Not: writes a logical-not for a pattern {{{2
fun! s:LP_Not(pat)
"  call Dfunc("LP_Not(pat<".a:pat.">)")
  if a:pat =~ '^\.\*' && a:pat =~ '\.\*$'
   let pat= substitute(a:pat,'^\.\*\(.*\)\.\*$','\1','')
   let ret= '^\%(\%('.pat.'\)\@!.\)*$'
  else
   let ret= '^\%(\%('.a:pat.'\)\@!.\)*$'
  endif
"  call Dret("LP_Not ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" LP_Or: writes a logical-or branch using two patterns {{{2
fun! s:LP_Or(pat1,pat2)
"  call Dfunc("LP_Or(pat1<".a:pat1."> pat2<".a:pat2.">)")
  let ret= '\%('.a:pat1.'\|'.a:pat2.'\)'
"  call Dret("LP_Or ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" LP_And: writes a logical-and concat using two patterns {{{2
fun! s:LP_And(pat1,pat2)
"  call Dfunc("LP_And(pat1<".a:pat1."> pat2<".a:pat2.">)")
  let ret= '\%('.a:pat1.'\&'.a:pat2.'\)'
"  call Dret("LP_And ".ret)
  return ret
endfun

" ---------------------------------------------------------------------
" StackLook: {{{2
fun! s:StackLook(description)
"  call Dfunc("StackLook(description<".a:description.">)")
  let iop = 1
  let ifp = 1
"  call Decho("Pattern                       Operator")

  " print both pattern and operator
  while ifp <= s:npatstack && iop <= s:nopstack
   let fp = s:patstack_{ifp}
   let op = s:opstack_{iop}." (P".s:opprec_{s:nopstack}.')'
   let fplen= strlen(fp)
   if fplen < 30
   	let fp= fp.strpart("                              ",1,30-fplen)
   endif
"   call Decho(fp.op)
   let ifp = ifp + 1
   let iop = iop + 1
  endwhile

  " print just pattern
  while ifp <= s:npatstack
   let fp  = s:patstack_{ifp}
"   call Decho(fp)
   let ifp = ifp + 1
  endwhile

  " print just operator
  while iop <= s:nopstack
   let op  = s:opstack_{iop}." (P".s:opprec_{s:nopstack}.')'
"   call Decho("                              ".op)
   let iop = iop + 1
  endwhile
"  call Dret("StackLook")
endfun

" ---------------------------------------------------------------------
"  Cleanup And Modeline: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim: ts=4 fdm=marker
PK�j�Z@�3y�N�Nvim80/doc/usr_29.txtnu�[���*usr_29.txt*	For Vim version 8.0.  Last change: 2016 Feb 27

		     VIM USER MANUAL - by Bram Moolenaar

			    Moving through programs


The creator of Vim is a computer programmer.  It's no surprise that Vim
contains many features to aid in writing programs.  Jump around to find where
identifiers are defined and used.  Preview declarations in a separate window.
There is more in the next chapter.

|29.1|	Using tags
|29.2|	The preview window
|29.3|	Moving through a program
|29.4|	Finding global identifiers
|29.5|	Finding local identifiers

     Next chapter: |usr_30.txt|  Editing programs
 Previous chapter: |usr_28.txt|  Folding
Table of contents: |usr_toc.txt|

==============================================================================
*29.1*	Using tags

What is a tag?  It is a location where an identifier is defined.  An example
is a function definition in a C or C++ program.  A list of tags is kept in a
tags file.  This can be used by Vim to directly jump from any place to the
tag, the place where an identifier is defined.
   To generate the tags file for all C files in the current directory, use the
following command: >

	ctags *.c

"ctags" is a separate program.  Most Unix systems already have it installed.
If you do not have it yet, you can find Exuberant ctags here:

	http://ctags.sf.net ~

Now when you are in Vim and you want to go to a function definition, you can
jump to it by using the following command: >

	:tag startlist

This command will find the function "startlist" even if it is in another file.
   The CTRL-] command jumps to the tag of the word that is under the cursor.
This makes it easy to explore a tangle of C code.  Suppose, for example, that
you are in the function "write_block".  You can see that it calls
"write_line".  But what does "write_line" do?  By placing the cursor on the
call to "write_line" and pressing CTRL-], you jump to the definition of this
function.
   The "write_line" function calls "write_char".  You need to figure out what
it does.  So you position the cursor over the call to "write_char" and press
CTRL-].  Now you are at the definition of "write_char".

	+-------------------------------------+
	|void write_block(char **s; int cnt)  |
	|{				      |
	|   int i;			      |
	|   for (i = 0; i < cnt; ++i)	      |
	|      write_line(s[i]);	      |
	|}	    |			      |
	+-----------|-------------------------+
		    |
	     CTRL-] |
		    |	 +----------------------------+
		    +--> |void write_line(char *s)    |
			 |{			      |
			 |   while (*s != 0)	      |
			 |	write_char(*s++);     |
			 |}	  |		      |
			 +--------|-------------------+
				  |
			   CTRL-] |
				  |    +------------------------------------+
				  +--> |void write_char(char c)		    |
				       |{				    |
				       |    putchar((int)(unsigned char)c); |
				       |}				    |
				       +------------------------------------+

The ":tags" command shows the list of tags that you traversed through:

	:tags
	  # TO tag	   FROM line  in file/text ~
	  1  1 write_line	   8  write_block.c ~
	  2  1 write_char	   7  write_line.c ~
	> ~
>
Now to go back.  The CTRL-T command goes to the preceding tag.  In the example
above you get back to the "write_line" function, in the call to "write_char".
   This command takes a count argument that indicates how many tags to jump
back.  You have gone forward, and now back.  Let's go forward again.  The
following command goes to the tag on top of the list: >

	:tag

You can prefix it with a count and jump forward that many tags.  For example:
":3tag".  CTRL-T also can be preceded with a count.
   These commands thus allow you to go down a call tree with CTRL-] and back
up again with CTRL-T.  Use ":tags" to find out where you are.


SPLIT WINDOWS

The ":tag" command replaces the file in the current window with the one
containing the new function.  But suppose you want to see not only the old
function but also the new one?  You can split the window using the ":split"
command followed by the ":tag" command.  Vim has a shorthand command that does
both: >
	:stag tagname

To split the current window and jump to the tag under the cursor use this
command: >

	CTRL-W ]

If a count is specified, the new window will be that many lines high.


MORE TAGS FILES

When you have files in many directories, you can create a tags file in each of
them.  Vim will then only be able to jump to tags within that directory.
   To find more tags files, set the 'tags' option to include all the relevant
tags files.  Example: >

	:set tags=./tags,./../tags,./*/tags

This finds a tags file in the same directory as the current file, one
directory level higher and in all subdirectories.
   This is quite a number of tags files, but it may still not be enough.  For
example, when editing a file in "~/proj/src", you will not find the tags file
"~/proj/sub/tags".  For this situation Vim offers to search a whole directory
tree for tags files.  Example: >

	:set tags=~/proj/**/tags


ONE TAGS FILE

When Vim has to search many places for tags files, you can hear the disk
rattling.  It may get a bit slow.  In that case it's better to spend this
time while generating one big tags file.  You might do this overnight.
   This requires the Exuberant ctags program, mentioned above.  It offers an
argument to search a whole directory tree: >

	cd ~/proj
	ctags -R .

The nice thing about this is that Exuberant ctags recognizes various file
types.  Thus this doesn't work just for C and C++ programs, also for Eiffel
and even Vim scripts.  See the ctags documentation to tune this.
   Now you only need to tell Vim where your big tags file is: >

	:set tags=~/proj/tags


MULTIPLE MATCHES

When a function is defined multiple times (or a method in several classes),
the ":tag" command will jump to the first one.  If there is a match in the
current file, that one is used first.
   You can now jump to other matches for the same tag with: >

	:tnext

Repeat this to find further matches.  If there are many, you can select which
one to jump to: >

	:tselect tagname

Vim will present you with a list of choices:

	  # pri kind tag	       file ~
	  1 F	f    mch_init	       os_amiga.c ~
		       mch_init() ~
	  2 F	f    mch_init	       os_mac.c ~
		       mch_init() ~
	  3 F	f    mch_init	       os_msdos.c ~
		       mch_init(void) ~
	  4 F	f    mch_init	       os_riscos.c ~
		       mch_init() ~
	Enter nr of choice (<CR> to abort):  ~

You can now enter the number (in the first column) of the match that you would
like to jump to.  The information in the other columns give you a good idea of
where the match is defined.

To move between the matching tags, these commands can be used:

	:tfirst			go to first match
	:[count]tprevious	go to [count] previous match
	:[count]tnext		go to [count] next match
	:tlast			go to last match

If [count] is omitted then one is used.


GUESSING TAG NAMES

Command line completion is a good way to avoid typing a long tag name.  Just
type the first bit and press <Tab>: >

	:tag write_<Tab>

You will get the first match.  If it's not the one you want, press <Tab> until
you find the right one.
   Sometimes you only know part of the name of a function.  Or you have many
tags that start with the same string, but end differently.  Then you can tell
Vim to use a pattern to find the tag.
   Suppose you want to jump to a tag that contains "block".  First type
this: >

	:tag /block

Now use command line completion: press <Tab>.  Vim will find all tags that
contain "block" and use the first match.
   The "/" before a tag name tells Vim that what follows is not a literal tag
name, but a pattern.  You can use all the items for search patterns here.  For
example, suppose you want to select a tag that starts with "write_": >

	:tselect /^write_

The "^" specifies that the tag starts with "write_".  Otherwise it would also
be found halfway a tag name.  Similarly "$" at the end makes sure the pattern
matches until the end of a tag.


A TAGS BROWSER

Since CTRL-] takes you to the definition of the identifier under the cursor,
you can use a list of identifier names as a table of contents.  Here is an
example.
   First create a list of identifiers (this requires Exuberant ctags): >

	ctags --c-types=f -f functions *.c

Now start Vim without a file, and edit this file in Vim, in a vertically split
window: >

	vim
	:vsplit functions

The window contains a list of all the functions.  There is some more stuff,
but you can ignore that.  Do ":setlocal ts=99" to clean it up a bit.
   In this window, define a mapping: >

	:nnoremap <buffer> <CR> 0ye<C-W>w:tag <C-R>"<CR>

Move the cursor to the line that contains the function you want to go to.
Now press <Enter>.  Vim will go to the other window and jump to the selected
function.


RELATED ITEMS

To make case in tag names be ignored, you can set 'ignorecase' while leaving
'tagcase' as "followic", or set 'tagcase' to "ignore".

The 'tagbsearch' option tells if the tags file is sorted or not.  The default
is to assume a sorted tags file, which makes a tags search a lot faster, but
doesn't work if the tags file isn't sorted.

The 'taglength' option can be used to tell Vim the number of significant
characters in a tag.

Cscope is a free program.  It does not only find places where an identifier is
declared, but also where it is used.  See |cscope|.

==============================================================================
*29.2*	The preview window

When you edit code that contains a function call, you need to use the correct
arguments.  To know what values to pass you can look at how the function is
defined.  The tags mechanism works very well for this.  Preferably the
definition is displayed in another window.  For this the preview window can be
used.
   To open a preview window to display the function "write_char": >

	:ptag write_char

Vim will open a window, and jumps to the tag "write_char".  Then it takes you
back to the original position.  Thus you can continue typing without the need
to use a CTRL-W command.
   If the name of a function appears in the text, you can get its definition
in the preview window with: >

	CTRL-W }

There is a script that automatically displays the text where the word under
the cursor was defined.  See |CursorHold-example|.

To close the preview window use this command: >

	:pclose

To edit a specific file in the preview window, use ":pedit".  This can be
useful to edit a header file, for example: >

	:pedit defs.h

Finally, ":psearch" can be used to find a word in the current file and any
included files and display the match in the preview window.  This is
especially useful when using library functions, for which you do not have a
tags file.  Example: >

	:psearch popen

This will show the "stdio.h" file in the preview window, with the function
prototype for popen():

	FILE	*popen __P((const char *, const char *)); ~

You can specify the height of the preview window, when it is opened, with the
'previewheight' option.

==============================================================================
*29.3*	Moving through a program

Since a program is structured, Vim can recognize items in it.  Specific
commands can be used to move around.
   C programs often contain constructs like this:

	#ifdef USE_POPEN ~
	    fd = popen("ls", "r") ~
	#else ~
	    fd = fopen("tmp", "w") ~
	#endif ~

But then much longer, and possibly nested.  Position the cursor on the
"#ifdef" and press %.  Vim will jump to the "#else".  Pressing % again takes
you to the "#endif".  Another % takes you to the "#ifdef" again.
   When the construct is nested, Vim will find the matching items.  This is a
good way to check if you didn't forget an "#endif".
   When you are somewhere inside a "#if" - "#endif", you can jump to the start
of it with: >

	[#

If you are not after a "#if" or "#ifdef" Vim will beep.  To jump forward to
the next "#else" or "#endif" use: >

	]#

These two commands skip any "#if" - "#endif" blocks that they encounter.
Example:

	#if defined(HAS_INC_H) ~
	    a = a + inc(); ~
	# ifdef USE_THEME ~
	    a += 3; ~
	# endif ~
	    set_width(a); ~

With the cursor in the last line, "[#" moves to the first line.  The "#ifdef"
- "#endif" block in the middle is skipped.


MOVING IN CODE BLOCKS

In C code blocks are enclosed in {}.  These can get pretty long.  To move to
the start of the outer block use the "[[" command.  Use "][" to find the end.
This assumes that the "{" and "}" are in the first column.
   The "[{" command moves to the start of the current block.  It skips over
pairs of {} at the same level.  "]}" jumps to the end.
   An overview:

			function(int a)
	   +->		{
	   |		    if (a)
	   |	   +->	    {
	[[ |	   |		for (;;)	       --+
	   |	   |	  +->	{			 |
	   |	[{ |	  |	    foo(32);		 |     --+
	   |	   |   [{ |	    if (bar(a))  --+	 | ]}	 |
	   +--	   |	  +--		break;	   | ]}  |	 |
		   |		}		 <-+	 |	 | ][
		   +--		foobar(a)		 |	 |
			    }			       <-+	 |
			}				       <-+

When writing C++ or Java, the outer {} block is for the class.  The next level
of {} is for a method.  When somewhere inside a class use "[m" to find the
previous start of a method.  "]m" finds the next start of a method.

Additionally, "[]" moves backward to the end of a function and "]]" moves
forward to the start of the next function.  The end of a function is defined
by a "}" in the first column.

				int func1(void)
				{
					return 1;
		  +---------->  }
		  |
	      []  |		int func2(void)
		  |	   +->	{
		  |    [[  |		if (flag)
	start	  +--	   +--			return flag;
		  |    ][  |		return 2;
		  |	   +->	}
	      ]]  |
		  |		int func3(void)
		  +---------->	{
					return 3;
				}

Don't forget you can also use "%" to move between matching (), {} and [].
That also works when they are many lines apart.


MOVING IN BRACES

The "[(" and "])" commands work similar to "[{" and "]}", except that they
work on () pairs instead of {} pairs.
>
				  [(
<		    <--------------------------------
			      <-------
		if (a == b && (c == d || (e > f)) && x > y) ~
				  -------------->
			  --------------------------------> >
				       ])

MOVING IN COMMENTS

To move back to the start of a comment use "[/".  Move forward to the end of a
comment with "]/".  This only works for /* - */ comments.

	  +->	  +-> /*
	  |    [/ |    * A comment about      --+
       [/ |	  +--  * wonderful life.	| ]/
	  |	       */		      <-+
	  |
	  +--	       foo = bar * 3;	      --+
						| ]/
		       /* a short comment */  <-+

==============================================================================
*29.4*	Finding global identifiers

You are editing a C program and wonder if a variable is declared as "int" or
"unsigned".  A quick way to find this is with the "[I" command.
   Suppose the cursor is on the word "column".  Type: >

	[I

Vim will list the matching lines it can find.  Not only in the current file,
but also in all included files (and files included in them, etc.).  The result
looks like this:

	structs.h ~
	 1:   29     unsigned     column;    /* column number */ ~

The advantage over using tags or the preview window is that included files are
searched.  In most cases this results in the right declaration to be found.
Also when the tags file is out of date.  Also when you don't have tags for the
included files.
   However, a few things must be right for "[I" to do its work.  First of all,
the 'include' option must specify how a file is included.  The default value
works for C and C++.  For other languages you will have to change it.


LOCATING INCLUDED FILES

   Vim will find included files in the places specified with the 'path'
option.  If a directory is missing, some include files will not be found.  You
can discover this with this command: >

	:checkpath

It will list the include files that could not be found.  Also files included
by the files that could be found.  An example of the output:

	--- Included files not found in path --- ~
	<io.h> ~
	vim.h --> ~
	  <functions.h> ~
	  <clib/exec_protos.h> ~

The "io.h" file is included by the current file and can't be found.  "vim.h"
can be found, thus ":checkpath" goes into this file and checks what it
includes.  The "functions.h" and "clib/exec_protos.h" files, included by
"vim.h" are not found.

	Note:
	Vim is not a compiler.  It does not recognize "#ifdef" statements.
	This means every "#include" statement is used, also when it comes
	after "#if NEVER".

To fix the files that could not be found, add a directory to the 'path'
option.  A good place to find out about this is the Makefile.  Look out for
lines that contain "-I" items, like "-I/usr/local/X11".  To add this directory
use: >

	:set path+=/usr/local/X11

When there are many subdirectories, you can use the "*" wildcard.  Example: >

	:set path+=/usr/*/include

This would find files in "/usr/local/include" as well as "/usr/X11/include".

When working on a project with a whole nested tree of included files, the "**"
items is useful.  This will search down in all subdirectories.  Example: >

	:set path+=/projects/invent/**/include

This will find files in the directories:

	/projects/invent/include ~
	/projects/invent/main/include ~
	/projects/invent/main/os/include ~
	etc.

There are even more possibilities.  Check out the 'path' option for info.
   If you want to see which included files are actually found, use this
command: >

	:checkpath!

You will get a (very long) list of included files, the files they include, and
so on.  To shorten the list a bit, Vim shows "(Already listed)" for files that
were found before and doesn't list the included files in there again.


JUMPING TO A MATCH

"[I" produces a list with only one line of text.  When you want to have a
closer look at the first item, you can jump to that line with the command: >

	[<Tab>

You can also use "[ CTRL-I", since CTRL-I is the same as pressing <Tab>.

The list that "[I" produces has a number at the start of each line.  When you
want to jump to another item than the first one, type the number first: >

	3[<Tab>

Will jump to the third item in the list.  Remember that you can use CTRL-O to
jump back to where you started from.


RELATED COMMANDS

	[i		only lists the first match
	]I		only lists items below the cursor
	]i		only lists the first item below the cursor


FINDING DEFINED IDENTIFIERS

The "[I" command finds any identifier.  To find only macros, defined with
"#define" use: >

	[D

Again, this searches in included files.  The 'define' option specifies what a
line looks like that defines the items for "[D".  You could change it to make
it work with other languages than C or C++.
   The commands related to "[D" are:

	[d		only lists the first match
	]D		only lists items below the cursor
	]d		only lists the first item below the cursor

==============================================================================
*29.5*	Finding local identifiers

The "[I" command searches included files.  To search in the current file only,
and jump to the first place where the word under the cursor is used: >

	gD

Hint: Goto Definition.  This command is very useful to find a variable or
function that was declared locally ("static", in C terms).  Example (cursor on
"counter"):

	   +->   static int counter = 0;
	   |
	   |     int get_counter(void)
	gD |     {
	   |	     ++counter;
	   +--	     return counter;
		 }

To restrict the search even further, and look only in the current function,
use this command: >

	gd

This will go back to the start of the current function and find the first
occurrence of the word under the cursor.  Actually, it searches backwards to
an empty line above a "{" in the first column.  From there it searches forward
for the identifier.  Example (cursor on "idx"):

		int find_entry(char *name)
		{
	   +->	    int idx;
	   |
	gd |	    for (idx = 0; idx < table_len; ++idx)
	   |		if (strcmp(table[idx].name, name) == 0)
	   +--		    return idx;
		}

==============================================================================

Next chapter: |usr_30.txt|  Editing programs

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z7��LPLPvim80/doc/tips.txtnu�[���*tips.txt*      For Vim version 8.0.  Last change: 2009 Nov 07


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Tips and ideas for using Vim				*tips*

These are just a few that we thought would be helpful for many users.
You can find many more tips on the wiki.  The URL can be found on
http://www.vim.org

Don't forget to browse the user manual, it also contains lots of useful tips
|usr_toc.txt|.

Editing C programs				|C-editing|
Finding where identifiers are used		|ident-search|
Switching screens in an xterm			|xterm-screens|
Scrolling in Insert mode			|scroll-insert|
Smooth scrolling				|scroll-smooth|
Correcting common typing mistakes		|type-mistakes|
Counting words, lines, etc.			|count-items|
Restoring the cursor position			|restore-position|
Renaming files					|rename-files|
Change a name in multiple files			|change-name|
Speeding up external commands			|speed-up|
Useful mappings					|useful-mappings|
Compressing the help files			|gzip-helpfile|
Executing shell commands in a window		|shell-window|
Hex editing					|hex-editing|
Using <> notation in autocommands		|autocmd-<>|
Highlighting matching parens			|match-parens|

==============================================================================
Editing C programs					*C-editing*

There are quite a few features in Vim to help you edit C program files.  Here
is an overview with tags to jump to:

|usr_29.txt|		Moving through programs chapter in the user manual.
|usr_30.txt|		Editing programs chapter in the user manual.
|C-indenting|		Automatically set the indent of a line while typing
			text.
|=|			Re-indent a few lines.
|format-comments|	Format comments.

|:checkpath|		Show all recursively included files.
|[i|			Search for identifier under cursor in current and
			included files.
|[_CTRL-I|		Jump to match for "[i"
|[I|			List all lines in current and included files where
			identifier under the cursor matches.
|[d|			Search for define under cursor in current and included
			files.

|CTRL-]|		Jump to tag under cursor (e.g., definition of a
			function).
|CTRL-T|		Jump back to before a CTRL-] command.
|:tselect|		Select one tag out of a list of matching tags.

|gd|			Go to Declaration of local variable under cursor.
|gD|			Go to Declaration of global variable under cursor.

|gf|			Go to file name under the cursor.

|%|			Go to matching (), {}, [], /* */, #if, #else, #endif.
|[/|			Go to previous start of comment.
|]/|			Go to next end of comment.
|[#|			Go back to unclosed #if, #ifdef, or #else.
|]#|			Go forward to unclosed #else or #endif.
|[(|			Go back to unclosed '('
|])|			Go forward to unclosed ')'
|[{|			Go back to unclosed '{'
|]}|			Go forward to unclosed '}'

|v_ab|			Select "a block" from "[(" to "])", including braces
|v_ib|			Select "inner block" from "[(" to "])"
|v_aB|			Select "a block" from "[{" to "]}", including brackets
|v_iB|			Select "inner block" from "[{" to "]}"

==============================================================================
Finding where identifiers are used			*ident-search*

You probably already know that |tags| can be used to jump to the place where a
function or variable is defined.  But sometimes you wish you could jump to all
the places where a function or variable is being used.  This is possible in
two ways:
1. Using the |:grep| command.  This should work on most Unix systems,
   but can be slow (it reads all files) and only searches in one directory.
2. Using ID utils.  This is fast and works in multiple directories.  It uses a
   database to store locations.  You will need some additional programs for
   this to work.  And you need to keep the database up to date.

Using the GNU id-tools:

What you need:
- The GNU id-tools installed (mkid is needed to create ID and lid is needed to
  use the macros).
- An identifier database file called "ID" in the current directory.  You can
  create it with the shell command "mkid file1 file2 ..".

Put this in your .vimrc: >
	map _u :call ID_search()<Bar>execute "/\\<" . g:word . "\\>"<CR>
	map _n :n<Bar>execute "/\\<" . g:word . "\\>"<CR>

	function! ID_search()
	  let g:word = expand("<cword>")
	  let x = system("lid --key=none ". g:word)
	  let x = substitute(x, "\n", " ", "g")
	  execute "next " . x
	endfun

To use it, place the cursor on a word, type "_u" and vim will load the file
that contains the word.  Search for the next occurrence of the word in the
same file with "n".  Go to the next file with "_n".

This has been tested with id-utils-3.2 (which is the name of the id-tools
archive file on your closest gnu-ftp-mirror).

[the idea for this comes from Andreas Kutschera]

==============================================================================
Switching screens in an xterm		*xterm-screens* *xterm-save-screen*

(From comp.editors, by Juergen Weigert, in reply to a question)

:> Another question is that after exiting vim, the screen is left as it
:> was, i.e. the contents of the file I was viewing (editing) was left on
:> the screen. The output from my previous like "ls" were lost,
:> ie. no longer in the scrolling buffer. I know that there is a way to
:> restore the screen after exiting vim or other vi like editors,
:> I just don't know how. Helps are appreciated. Thanks.
:
:I imagine someone else can answer this.  I assume though that vim and vi do
:the same thing as each other for a given xterm setup.

They not necessarily do the same thing, as this may be a termcap vs.
terminfo problem.  You should be aware that there are two databases for
describing attributes of a particular type of terminal: termcap and
terminfo.  This can cause differences when the entries differ AND when of
the programs in question one uses terminfo and the other uses termcap
(also see |+terminfo|).

In your particular problem, you are looking for the control sequences
^[[?47h and ^[[?47l.  These switch between xterms alternate and main screen
buffer.  As a quick workaround a command sequence like >
	echo -n "^[[?47h"; vim ... ; echo -n "^[[?47l"
may do what you want.  (My notation ^[ means the ESC character, further down
you'll see that the databases use \E instead).

On startup, vim echoes the value of the termcap variable ti (terminfo:
smcup) to the terminal.  When exiting, it echoes te (terminfo: rmcup).  Thus
these two variables are the correct place where the above mentioned control
sequences should go.

Compare your xterm termcap entry (found in /etc/termcap) with your xterm
terminfo entry (retrieved with "infocmp -C xterm").  Both should contain
entries similar to: >
	:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:

PS: If you find any difference, someone (your sysadmin?) should better check
    the complete termcap and terminfo database for consistency.

NOTE 1: If you recompile Vim with FEAT_XTERM_SAVE defined in feature.h, the
builtin xterm will include the mentioned "te" and "ti" entries.

NOTE 2: If you want to disable the screen switching, and you don't want to
change your termcap, you can add these lines to your .vimrc: >
	:set t_ti= t_te=

==============================================================================
Scrolling in Insert mode				*scroll-insert*

If you are in insert mode and you want to see something that is just off the
screen, you can use CTRL-X CTRL-E and CTRL-X CTRL-Y to scroll the screen.
						|i_CTRL-X_CTRL-E|

To make this easier, you could use these mappings: >
	:inoremap <C-E> <C-X><C-E>
	:inoremap <C-Y> <C-X><C-Y>
(Type this literally, make sure the '<' flag is not in 'cpoptions').
You then lose the ability to copy text from the line above/below the cursor
|i_CTRL-E|.

Also consider setting 'scrolloff' to a larger value, so that you can always see
some context around the cursor.  If 'scrolloff' is bigger than half the window
height, the cursor will always be in the middle and the text is scrolled when
the cursor is moved up/down.

==============================================================================
Smooth scrolling					*scroll-smooth*

If you like the scrolling to go a bit smoother, you can use these mappings: >
	:map <C-U> <C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y>
	:map <C-D> <C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E>

(Type this literally, make sure the '<' flag is not in 'cpoptions').

==============================================================================
Correcting common typing mistakes			*type-mistakes*

When there are a few words that you keep on typing in the wrong way, make
abbreviations that correct them.  For example: >
	:ab teh the
	:ab fro for

==============================================================================
Counting words, lines, etc.				*count-items*

To count how often any pattern occurs in the current buffer use the substitute
command and add the 'n' flag to avoid the substitution.  The reported number
of substitutions is the number of items.  Examples: >

	:%s/./&/gn		characters
	:%s/\i\+/&/gn		words
	:%s/^//n		lines
	:%s/the/&/gn		"the" anywhere
	:%s/\<the\>/&/gn	"the" as a word

You might want to reset 'hlsearch' or do ":nohlsearch".
Add the 'e' flag if you don't want an error when there are no matches.

An alternative is using |v_g_CTRL-G| in Visual mode.

If you want to find matches in multiple files use |:vimgrep|.

							*count-bytes*
If you want to count bytes, you can use this:

	Visually select the characters (block is also possible)
	Use "y" to yank the characters
	Use the strlen() function: >
		:echo strlen(@")
A line break is counted for one byte.

==============================================================================
Restoring the cursor position				*restore-position*

Sometimes you want to write a mapping that makes a change somewhere in the
file and restores the cursor position, without scrolling the text.  For
example, to change the date mark in a file: >
   :map <F2> msHmtgg/Last [cC]hange:\s*/e+1<CR>"_D"=strftime("%Y %b %d")<CR>p'tzt`s

Breaking up saving the position:
	ms	store cursor position in the 's' mark
	H	go to the first line in the window
	mt	store this position in the 't' mark

Breaking up restoring the position:
	't	go to the line previously at the top of the window
	zt	scroll to move this line to the top of the window
	`s	jump to the original position of the cursor

For something more advanced see |winsaveview()| and |winrestview()|.

==============================================================================
Renaming files						*rename-files*

Say I have a directory with the following files in them (directory picked at
random :-):

buffer.c
charset.c
digraph.c
...

and I want to rename *.c *.bla.  I'd do it like this: >

	$ vim
	:r !ls *.c
	:%s/\(.*\).c/mv & \1.bla
	:w !sh
	:q!

==============================================================================
Change a name in multiple files				*change-name*

Example for using a script file to change a name in several files:

	Create a file "subs.vim" containing substitute commands and a :update
	command: >
		:%s/Jones/Smith/g
		:%s/Allen/Peter/g
		:update
<
	Execute Vim on all files you want to change, and source the script for
	each argument: >

		vim *.let
		argdo source subs.vim

See |:argdo|.

==============================================================================
Speeding up external commands				*speed-up*

In some situations, execution of an external command can be very slow.  This
can also slow down wildcard expansion on Unix.  Here are a few suggestions to
increase the speed.

If your .cshrc (or other file, depending on the shell used) is very long, you
should separate it into a section for interactive use and a section for
non-interactive use (often called secondary shells).  When you execute a
command from Vim like ":!ls", you do not need the interactive things (for
example, setting the prompt).  Put the stuff that is not needed after these
lines: >

	if ($?prompt == 0) then
		exit 0
	endif

Another way is to include the "-f" flag in the 'shell' option, e.g.: >

	:set shell=csh\ -f

(the backslash is needed to include the space in the option).
This will make csh completely skip the use of the .cshrc file.  This may cause
some things to stop working though.

==============================================================================
Useful mappings						*useful-mappings*

Here are a few mappings that some people like to use.

							*map-backtick*  >
	:map ' `
Make the single quote work like a backtick.  Puts the cursor on the column of
a mark, instead of going to the first non-blank character in the line.

							*emacs-keys*
For Emacs-style editing on the command-line: >
	" start of line
	:cnoremap <C-A>		<Home>
	" back one character
	:cnoremap <C-B>		<Left>
	" delete character under cursor
	:cnoremap <C-D>		<Del>
	" end of line
	:cnoremap <C-E>		<End>
	" forward one character
	:cnoremap <C-F>		<Right>
	" recall newer command-line
	:cnoremap <C-N>		<Down>
	" recall previous (older) command-line
	:cnoremap <C-P>		<Up>
	" back one word
	:cnoremap <Esc><C-B>	<S-Left>
	" forward one word
	:cnoremap <Esc><C-F>	<S-Right>

NOTE: This requires that the '<' flag is excluded from 'cpoptions'. |<>|

							*format-bullet-list*
This mapping will format any bullet list.  It requires that there is an empty
line above and below each list entry.  The expression commands are used to
be able to give comments to the parts of the mapping. >

	:let m =     ":map _f  :set ai<CR>"    " need 'autoindent' set
	:let m = m . "{O<Esc>"		      " add empty line above item
	:let m = m . "}{)^W"		      " move to text after bullet
	:let m = m . "i     <CR>     <Esc>"    " add space for indent
	:let m = m . "gq}"		      " format text after the bullet
	:let m = m . "{dd"		      " remove the empty line
	:let m = m . "5lDJ"		      " put text after bullet
	:execute m			      |" define the mapping

(<> notation |<>|.  Note that this is all typed literally.  ^W is "^" "W", not
CTRL-W.  You can copy/paste this into Vim if '<' is not included in
'cpoptions'.)

Note that the last comment starts with |", because the ":execute" command
doesn't accept a comment directly.

You also need to set 'textwidth' to a non-zero value, e.g., >
	:set tw=70

A mapping that does about the same, but takes the indent for the list from the
first line (Note: this mapping is a single long line with a lot of spaces): >
	:map _f :set ai<CR>}{a                                                          <Esc>WWmmkD`mi<CR><Esc>kkddpJgq}'mJO<Esc>j
<
							*collapse*
These two mappings reduce a sequence of empty (;b) or blank (;n) lines into a
single line >
    :map ;b   GoZ<Esc>:g/^$/.,/./-j<CR>Gdd
    :map ;n   GoZ<Esc>:g/^[ <Tab>]*$/.,/[^ <Tab>]/-j<CR>Gdd

==============================================================================
Compressing the help files				*gzip-helpfile*

For those of you who are really short on disk space, you can compress the help
files and still be able to view them with Vim.  This makes accessing the help
files a bit slower and requires the "gzip" program.

(1) Compress all the help files: "gzip doc/*.txt".

(2) Edit "doc/tags" and change the ".txt" to ".txt.gz": >
	:%s=\(\t.*\.txt\)\t=\1.gz\t=

(3) Add this line to your vimrc: >
	set helpfile={dirname}/help.txt.gz

Where {dirname} is the directory where the help files are.  The |gzip| plugin
will take care of decompressing the files.
You must make sure that $VIMRUNTIME is set to where the other Vim files are,
when they are not in the same location as the compressed "doc" directory.  See
|$VIMRUNTIME|.

==============================================================================
Executing shell commands in a window			*shell-window*

There have been questions for the possibility to execute a shell in a window
inside Vim.  The answer: you can't!  Including this would add a lot of code to
Vim, which is a good reason not to do this.  After all, Vim is an editor, it
is not supposed to do non-editing tasks.  However, to get something like this,
you might try splitting your terminal screen or display window with the
"splitvt" program.  You can probably find it on some ftp server.  The person
that knows more about this is Sam Lantinga <slouken@cs.ucdavis.edu>.
An alternative is the "window" command, found on BSD Unix systems, which
supports multiple overlapped windows.  Or the "screen" program, found at
www.uni-erlangen.de, which supports a stack of windows.

==============================================================================
Hex editing					*hex-editing* *using-xxd*

See section |23.4| of the user manual.

If one has a particular extension that one uses for binary files (such as exe,
bin, etc), you may find it helpful to automate the process with the following
bit of autocmds for your <.vimrc>.  Change that "*.bin" to whatever
comma-separated list of extension(s) you find yourself wanting to edit: >

	" vim -b : edit binary using xxd-format!
	augroup Binary
	  au!
	  au BufReadPre  *.bin let &bin=1
	  au BufReadPost *.bin if &bin | %!xxd
	  au BufReadPost *.bin set ft=xxd | endif
	  au BufWritePre *.bin if &bin | %!xxd -r
	  au BufWritePre *.bin endif
	  au BufWritePost *.bin if &bin | %!xxd
	  au BufWritePost *.bin set nomod | endif
	augroup END

==============================================================================
Using <> notation in autocommands			*autocmd-<>*

The <> notation is not recognized in the argument of an :autocmd.  To avoid
having to use special characters, you could use a self-destroying mapping to
get the <> notation and then call the mapping from the autocmd.  Example:

						*map-self-destroy*  >
 " This is for automatically adding the name of the file to the menu list.
 " It uses a self-destroying mapping!
 " 1. use a line in the buffer to convert the 'dots' in the file name to \.
 " 2. store that in register '"'
 " 3. add that name to the Buffers menu list
 " WARNING: this does have some side effects, like overwriting the
 " current register contents and removing any mapping for the "i" command.
 "
 autocmd BufNewFile,BufReadPre * nmap i :nunmap i<CR>O<C-R>%<Esc>:.g/\./s/\./\\./g<CR>0"9y$u:menu Buffers.<C-R>9 :buffer <C-R>%<C-V><CR><CR>
 autocmd BufNewFile,BufReadPre * normal i

Another method, perhaps better, is to use the ":execute" command.  In the
string you can use the <> notation by preceding it with a backslash.  Don't
forget to double the number of existing backslashes and put a backslash before
'"'.
>
  autocmd BufNewFile,BufReadPre * exe "normal O\<C-R>%\<Esc>:.g/\\./s/\\./\\\\./g\<CR>0\"9y$u:menu Buffers.\<C-R>9 :buffer \<C-R>%\<C-V>\<CR>\<CR>"

For a real buffer menu, user functions should be used (see |:function|), but
then the <> notation isn't used, which defeats using it as an example here.

==============================================================================
Highlighting matching parens					*match-parens*

This example shows the use of a few advanced tricks:
- using the |CursorMoved| autocommand event
- using |searchpairpos()| to find a matching paren
- using |synID()| to detect whether the cursor is in a string or comment
- using |:match| to highlight something
- using a |pattern| to match a specific position in the file.

This should be put in a Vim script file, since it uses script-local variables.
It skips matches in strings or comments, unless the cursor started in string
or comment.  This requires syntax highlighting.

A slightly more advanced version is used in the |matchparen| plugin.
>
	let s:paren_hl_on = 0
	function s:Highlight_Matching_Paren()
	  if s:paren_hl_on
	    match none
	    let s:paren_hl_on = 0
	  endif

	  let c_lnum = line('.')
	  let c_col = col('.')

	  let c = getline(c_lnum)[c_col - 1]
	  let plist = split(&matchpairs, ':\|,')
	  let i = index(plist, c)
	  if i < 0
	    return
	  endif
	  if i % 2 == 0
	    let s_flags = 'nW'
	    let c2 = plist[i + 1]
	  else
	    let s_flags = 'nbW'
	    let c2 = c
	    let c = plist[i - 1]
	  endif
	  if c == '['
	    let c = '\['
	    let c2 = '\]'
	  endif
	  let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
		\ '=~?	"string\\|comment"'
	  execute 'if' s_skip '| let s_skip = 0 | endif'

	  let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip)

	  if m_lnum > 0 && m_lnum >= line('w0') && m_lnum <= line('w$')
	    exe 'match Search /\(\%' . c_lnum . 'l\%' . c_col .
		  \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
	    let s:paren_hl_on = 1
	  endif
	endfunction

	autocmd CursorMoved,CursorMovedI * call s:Highlight_Matching_Paren()
	autocmd InsertEnter * match none
<

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��@*.�.�vim80/doc/eval.txtnu�[���*eval.txt*	For Vim version 8.0.  Last change: 2018 Apr 20


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


Expression evaluation			*expression* *expr* *E15* *eval*

Using expressions is introduced in chapter 41 of the user manual |usr_41.txt|.

Note: Expression evaluation can be disabled at compile time.  If this has been
done, the features in this document are not available.  See |+eval| and
|no-eval-feature|.

1.  Variables			|variables|
    1.1 Variable types
    1.2 Function references		|Funcref|
    1.3 Lists				|Lists|
    1.4 Dictionaries			|Dictionaries|
    1.5 More about variables		|more-variables|
2.  Expression syntax		|expression-syntax|
3.  Internal variable		|internal-variables|
4.  Builtin Functions		|functions|
5.  Defining functions		|user-functions|
6.  Curly braces names		|curly-braces-names|
7.  Commands			|expression-commands|
8.  Exception handling		|exception-handling|
9.  Examples			|eval-examples|
10. No +eval feature		|no-eval-feature|
11. The sandbox			|eval-sandbox|
12. Textlock			|textlock|
13. Testing			|testing|

{Vi does not have any of these commands}

==============================================================================
1. Variables						*variables*

1.1 Variable types ~
							*E712*
There are nine types of variables:

Number		A 32 or 64 bit signed number.  |expr-number| *Number*
		64-bit Numbers are available only when compiled with the
		|+num64| feature.
		Examples:  -123  0x10  0177  0b1011

Float		A floating point number. |floating-point-format| *Float*
		{only when compiled with the |+float| feature}
		Examples: 123.456  1.15e-6  -1.1e3

							*E928*
String		A NUL terminated string of 8-bit unsigned characters (bytes).
		|expr-string| Examples: "ab\txx\"--"  'x-z''a,c'

List		An ordered sequence of items |List|.
		Example: [1, 2, ['a', 'b']]

Dictionary	An associative, unordered array: Each entry has a key and a
		value. |Dictionary|
		Example: {'blue': "#0000ff", 'red': "#ff0000"}

Funcref		A reference to a function |Funcref|.
		Example: function("strlen")
		It can be bound to a dictionary and arguments, it then works
		like a Partial.
		Example: function("Callback", [arg], myDict)

Special		|v:false|, |v:true|, |v:none| and |v:null|.  *Special*

Job		Used for a job, see |job_start()|. *Job* *Jobs*

Channel		Used for a channel, see |ch_open()|. *Channel* *Channels*

The Number and String types are converted automatically, depending on how they
are used.

Conversion from a Number to a String is by making the ASCII representation of
the Number.  Examples:
	Number 123	-->	String "123" ~
	Number 0	-->	String "0" ~
	Number -1	-->	String "-1" ~
							*octal*
Conversion from a String to a Number is done by converting the first digits to
a number.  Hexadecimal "0xf9", Octal "017", and Binary "0b10" numbers are
recognized.  If the String doesn't start with digits, the result is zero.
Examples:
	String "456"	-->	Number 456 ~
	String "6bar"	-->	Number 6 ~
	String "foo"	-->	Number 0 ~
	String "0xf1"	-->	Number 241 ~
	String "0100"	-->	Number 64 ~
	String "0b101"	-->	Number 5 ~
	String "-8"	-->	Number -8 ~
	String "+8"	-->	Number 0 ~

To force conversion from String to Number, add zero to it: >
	:echo "0100" + 0
<	64 ~

To avoid a leading zero to cause octal conversion, or for using a different
base, use |str2nr()|.

							*TRUE* *FALSE*
For boolean operators Numbers are used.  Zero is FALSE, non-zero is TRUE.
You can also use |v:false| and |v:true|.  When TRUE is returned from a
function it is the Number one, FALSE is the number zero.

Note that in the command: >
	:if "foo"
	:" NOT executed
"foo" is converted to 0, which means FALSE.  If the string starts with a
non-zero number it means TRUE: >
	:if "8foo"
	:" executed
To test for a non-empty string, use empty(): >
	:if !empty("foo")
<
							*non-zero-arg*
Function arguments often behave slightly different from |TRUE|: If the
argument is present and it evaluates to a non-zero Number, |v:true| or a
non-empty String, then the value is considered to be TRUE.
Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.

		*E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
List, Dictionary, Funcref, Job and Channel types are not automatically
converted.

							*E805* *E806* *E808*
When mixing Number and Float the Number is converted to Float.  Otherwise
there is no automatic conversion of Float.  You can use str2float() for String
to Float, printf() for Float to String and float2nr() for Float to Number.

			*E891* *E892* *E893* *E894* *E907* *E911* *E914*
When expecting a Float a Number can also be used, but nothing else.

						*no-type-checking*
You will not get an error if you try to change the type of a variable.


1.2 Function references ~
					*Funcref* *E695* *E718*
A Funcref variable is obtained with the |function()| function, the |funcref()|
function or created with the lambda expression |expr-lambda|.  It can be used
in an expression in the place of a function name, before the parenthesis
around the arguments, to invoke the function it refers to.  Example: >

	:let Fn = function("MyFunc")
	:echo Fn()
<							*E704* *E705* *E707*
A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:".  You
can use "g:" but the following name must still start with a capital.  You
cannot have both a Funcref variable and a function with the same name.

A special case is defining a function and directly assigning its Funcref to a
Dictionary entry.  Example: >
	:function dict.init() dict
	:   let self.val = 0
	:endfunction

The key of the Dictionary can start with a lower case letter.  The actual
function name is not used here.  Also see |numbered-function|.

A Funcref can also be used with the |:call| command: >
	:call Fn()
	:call dict.init()

The name of the referenced function can be obtained with |string()|. >
	:let func = string(Fn)

You can use |call()| to invoke a Funcref and use a list variable for the
arguments: >
	:let r = call(Fn, mylist)
<
								*Partial*
A Funcref optionally binds a Dictionary and/or arguments.  This is also called
a Partial.  This is created by passing the Dictionary and/or arguments to
function() or funcref().  When calling the function the Dictionary and/or
arguments will be passed to the function.  Example: >

	let Cb = function('Callback', ['foo'], myDict)
	call Cb()

This will invoke the function as if using: >
	call myDict.Callback('foo')

This is very useful when passing a function around, e.g. in the arguments of
|ch_open()|.

Note that binding a function to a Dictionary also happens when the function is
a member of the Dictionary: >

	let myDict.myFunction = MyFunction
	call myDict.myFunction()

Here MyFunction() will get myDict passed as "self".  This happens when the
"myFunction" member is accessed.  When making assigning "myFunction" to
otherDict and calling it, it will be bound to otherDict: >

	let otherDict.myFunction = myDict.myFunction
	call otherDict.myFunction()

Now "self" will be "otherDict".  But when the dictionary was bound explicitly
this won't happen: >

	let myDict.myFunction = function(MyFunction, myDict)
	let otherDict.myFunction = myDict.myFunction
	call otherDict.myFunction()

Here "self" will be "myDict", because it was bound explicitly.


1.3 Lists ~
						*list* *List* *Lists* *E686*
A List is an ordered sequence of items.  An item can be of any type.  Items
can be accessed by their index number.  Items can be added and removed at any
position in the sequence.


List creation ~
							*E696* *E697*
A List is created with a comma separated list of items in square brackets.
Examples: >
	:let mylist = [1, two, 3, "four"]
	:let emptylist = []

An item can be any expression.  Using a List for an item creates a
List of Lists: >
	:let nestlist = [[11, 12], [21, 22], [31, 32]]

An extra comma after the last item is ignored.


List index ~
							*list-index* *E684*
An item in the List can be accessed by putting the index in square brackets
after the List.  Indexes are zero-based, thus the first item has index zero. >
	:let item = mylist[0]		" get the first item: 1
	:let item = mylist[2]		" get the third item: 3

When the resulting item is a list this can be repeated: >
	:let item = nestlist[0][1]	" get the first list, second item: 12
<
A negative index is counted from the end.  Index -1 refers to the last item in
the List, -2 to the last but one item, etc. >
	:let last = mylist[-1]		" get the last item: "four"

To avoid an error for an invalid index use the |get()| function.  When an item
is not available it returns zero or the default value you specify: >
	:echo get(mylist, idx)
	:echo get(mylist, idx, "NONE")


List concatenation ~

Two lists can be concatenated with the "+" operator: >
	:let longlist = mylist + [5, 6]
	:let mylist += [7, 8]

To prepend or append an item turn the item into a list by putting [] around
it.  To change a list in-place see |list-modification| below.


Sublist ~
							*sublist*
A part of the List can be obtained by specifying the first and last index,
separated by a colon in square brackets: >
	:let shortlist = mylist[2:-1]	" get List [3, "four"]

Omitting the first index is similar to zero.  Omitting the last index is
similar to -1. >
	:let endlist = mylist[2:]	" from item 2 to the end: [3, "four"]
	:let shortlist = mylist[2:2]	" List with one item: [3]
	:let otherlist = mylist[:]	" make a copy of the List

If the first index is beyond the last item of the List or the second item is
before the first item, the result is an empty list.  There is no error
message.

If the second index is equal to or greater than the length of the list the
length minus one is used: >
	:let mylist = [0, 1, 2, 3]
	:echo mylist[2:8]		" result: [2, 3]

NOTE: mylist[s:e] means using the variable "s:e" as index.  Watch out for
using a single letter variable before the ":".  Insert a space when needed:
mylist[s : e].


List identity ~
							*list-identity*
When variable "aa" is a list and you assign it to another variable "bb", both
variables refer to the same list.  Thus changing the list "aa" will also
change "bb": >
	:let aa = [1, 2, 3]
	:let bb = aa
	:call add(aa, 4)
	:echo bb
<	[1, 2, 3, 4]

Making a copy of a list is done with the |copy()| function.  Using [:] also
works, as explained above.  This creates a shallow copy of the list: Changing
a list item in the list will also change the item in the copied list: >
	:let aa = [[1, 'a'], 2, 3]
	:let bb = copy(aa)
	:call add(aa, 4)
	:let aa[0][1] = 'aaa'
	:echo aa
<	[[1, aaa], 2, 3, 4] >
	:echo bb
<	[[1, aaa], 2, 3]

To make a completely independent list use |deepcopy()|.  This also makes a
copy of the values in the list, recursively.  Up to a hundred levels deep.

The operator "is" can be used to check if two variables refer to the same
List.  "isnot" does the opposite.  In contrast "==" compares if two lists have
the same value. >
	:let alist = [1, 2, 3]
	:let blist = [1, 2, 3]
	:echo alist is blist
<	0 >
	:echo alist == blist
<	1

Note about comparing lists: Two lists are considered equal if they have the
same length and all items compare equal, as with using "==".  There is one
exception: When comparing a number with a string they are considered
different.  There is no automatic type conversion, as with using "==" on
variables.  Example: >
	echo 4 == "4"
<	1 >
	echo [4] == ["4"]
<	0

Thus comparing Lists is more strict than comparing numbers and strings.  You
can compare simple values this way too by putting them in a list: >

	:let a = 5
	:let b = "5"
	:echo a == b
<	1 >
	:echo [a] == [b]
<	0


List unpack ~

To unpack the items in a list to individual variables, put the variables in
square brackets, like list items: >
	:let [var1, var2] = mylist

When the number of variables does not match the number of items in the list
this produces an error.  To handle any extra items from the list append ";"
and a variable name: >
	:let [var1, var2; rest] = mylist

This works like: >
	:let var1 = mylist[0]
	:let var2 = mylist[1]
	:let rest = mylist[2:]

Except that there is no error if there are only two items.  "rest" will be an
empty list then.


List modification ~
							*list-modification*
To change a specific item of a list use |:let| this way: >
	:let list[4] = "four"
	:let listlist[0][3] = item

To change part of a list you can specify the first and last item to be
modified.  The value must at least have the number of items in the range: >
	:let list[3:5] = [3, 4, 5]

Adding and removing items from a list is done with functions.  Here are a few
examples: >
	:call insert(list, 'a')		" prepend item 'a'
	:call insert(list, 'a', 3)	" insert item 'a' before list[3]
	:call add(list, "new")		" append String item
	:call add(list, [1, 2])		" append a List as one new item
	:call extend(list, [1, 2])	" extend the list with two more items
	:let i = remove(list, 3)	" remove item 3
	:unlet list[3]			" idem
	:let l = remove(list, 3, -1)	" remove items 3 to last item
	:unlet list[3 : ]		" idem
	:call filter(list, 'v:val !~ "x"')  " remove items with an 'x'

Changing the order of items in a list: >
	:call sort(list)		" sort a list alphabetically
	:call reverse(list)		" reverse the order of items
	:call uniq(sort(list))		" sort and remove duplicates


For loop ~

The |:for| loop executes commands for each item in a list.  A variable is set
to each item in the list in sequence.  Example: >
	:for item in mylist
	:   call Doit(item)
	:endfor

This works like: >
	:let index = 0
	:while index < len(mylist)
	:   let item = mylist[index]
	:   :call Doit(item)
	:   let index = index + 1
	:endwhile

If all you want to do is modify each item in the list then the |map()|
function will be a simpler method than a for loop.

Just like the |:let| command, |:for| also accepts a list of variables.  This
requires the argument to be a list of lists. >
	:for [lnum, col] in [[1, 3], [2, 8], [3, 0]]
	:   call Doit(lnum, col)
	:endfor

This works like a |:let| command is done for each list item.  Again, the types
must remain the same to avoid an error.

It is also possible to put remaining items in a List variable: >
	:for [i, j; rest] in listlist
	:   call Doit(i, j)
	:   if !empty(rest)
	:      echo "remainder: " . string(rest)
	:   endif
	:endfor


List functions ~
						*E714*
Functions that are useful with a List: >
	:let r = call(funcname, list)	" call a function with an argument list
	:if empty(list)			" check if list is empty
	:let l = len(list)		" number of items in list
	:let big = max(list)		" maximum value in list
	:let small = min(list)		" minimum value in list
	:let xs = count(list, 'x')	" count nr of times 'x' appears in list
	:let i = index(list, 'x')	" index of first 'x' in list
	:let lines = getline(1, 10)	" get ten text lines from buffer
	:call append('$', lines)	" append text lines in buffer
	:let list = split("a b c")	" create list from items in a string
	:let string = join(list, ', ')	" create string from list items
	:let s = string(list)		" String representation of list
	:call map(list, '">> " . v:val')  " prepend ">> " to each item

Don't forget that a combination of features can make things simple.  For
example, to add up all the numbers in a list: >
	:exe 'let sum = ' . join(nrlist, '+')


1.4 Dictionaries ~
					*dict* *Dictionaries* *Dictionary*
A Dictionary is an associative array: Each entry has a key and a value.  The
entry can be located with the key.  The entries are stored without a specific
ordering.


Dictionary creation ~
						*E720* *E721* *E722* *E723*
A Dictionary is created with a comma separated list of entries in curly
braces.  Each entry has a key and a value, separated by a colon.  Each key can
only appear once.  Examples: >
	:let mydict = {1: 'one', 2: 'two', 3: 'three'}
	:let emptydict = {}
<							*E713* *E716* *E717*
A key is always a String.  You can use a Number, it will be converted to a
String automatically.  Thus the String '4' and the number 4 will find the same
entry.  Note that the String '04' and the Number 04 are different, since the
Number will be converted to the String '4'.  The empty string can be used as a
key.

A value can be any expression.  Using a Dictionary for a value creates a
nested Dictionary: >
	:let nestdict = {1: {11: 'a', 12: 'b'}, 2: {21: 'c'}}

An extra comma after the last entry is ignored.


Accessing entries ~

The normal way to access an entry is by putting the key in square brackets: >
	:let val = mydict["one"]
	:let mydict["four"] = 4

You can add new entries to an existing Dictionary this way, unlike Lists.

For keys that consist entirely of letters, digits and underscore the following
form can be used |expr-entry|: >
	:let val = mydict.one
	:let mydict.four = 4

Since an entry can be any type, also a List and a Dictionary, the indexing and
key lookup can be repeated: >
	:echo dict.key[idx].key


Dictionary to List conversion ~

You may want to loop over the entries in a dictionary.  For this you need to
turn the Dictionary into a List and pass it to |:for|.

Most often you want to loop over the keys, using the |keys()| function: >
	:for key in keys(mydict)
	:   echo key . ': ' . mydict[key]
	:endfor

The List of keys is unsorted.  You may want to sort them first: >
	:for key in sort(keys(mydict))

To loop over the values use the |values()| function:  >
	:for v in values(mydict)
	:   echo "value: " . v
	:endfor

If you want both the key and the value use the |items()| function.  It returns
a List in which each item is a	List with two items, the key and the value: >
	:for [key, value] in items(mydict)
	:   echo key . ': ' . value
	:endfor


Dictionary identity ~
							*dict-identity*
Just like Lists you need to use |copy()| and |deepcopy()| to make a copy of a
Dictionary.  Otherwise, assignment results in referring to the same
Dictionary: >
	:let onedict = {'a': 1, 'b': 2}
	:let adict = onedict
	:let adict['a'] = 11
	:echo onedict['a']
	11

Two Dictionaries compare equal if all the key-value pairs compare equal.  For
more info see |list-identity|.


Dictionary modification ~
							*dict-modification*
To change an already existing entry of a Dictionary, or to add a new entry,
use |:let| this way: >
	:let dict[4] = "four"
	:let dict['one'] = item

Removing an entry from a Dictionary is done with |remove()| or |:unlet|.
Three ways to remove the entry with key "aaa" from dict: >
	:let i = remove(dict, 'aaa')
	:unlet dict.aaa
	:unlet dict['aaa']

Merging a Dictionary with another is done with |extend()|: >
	:call extend(adict, bdict)
This extends adict with all entries from bdict.  Duplicate keys cause entries
in adict to be overwritten.  An optional third argument can change this.
Note that the order of entries in a Dictionary is irrelevant, thus don't
expect ":echo adict" to show the items from bdict after the older entries in
adict.

Weeding out entries from a Dictionary can be done with |filter()|: >
	:call filter(dict, 'v:val =~ "x"')
This removes all entries from "dict" with a value not matching 'x'.


Dictionary function ~
				*Dictionary-function* *self* *E725* *E862*
When a function is defined with the "dict" attribute it can be used in a
special way with a dictionary.  Example: >
	:function Mylen() dict
	:   return len(self.data)
	:endfunction
	:let mydict = {'data': [0, 1, 2, 3], 'len': function("Mylen")}
	:echo mydict.len()

This is like a method in object oriented programming.  The entry in the
Dictionary is a |Funcref|.  The local variable "self" refers to the dictionary
the function was invoked from.

It is also possible to add a function without the "dict" attribute as a
Funcref to a Dictionary, but the "self" variable is not available then.

				*numbered-function* *anonymous-function*
To avoid the extra name for the function it can be defined and directly
assigned to a Dictionary in this way: >
	:let mydict = {'data': [0, 1, 2, 3]}
	:function mydict.len()
	:   return len(self.data)
	:endfunction
	:echo mydict.len()

The function will then get a number and the value of dict.len is a |Funcref|
that references this function.  The function can only be used through a
|Funcref|.  It will automatically be deleted when there is no |Funcref|
remaining that refers to it.

It is not necessary to use the "dict" attribute for a numbered function.

If you get an error for a numbered function, you can find out what it is with
a trick.  Assuming the function is 42, the command is: >
	:function {42}


Functions for Dictionaries ~
							*E715*
Functions that can be used with a Dictionary: >
	:if has_key(dict, 'foo')	" TRUE if dict has entry with key "foo"
	:if empty(dict)			" TRUE if dict is empty
	:let l = len(dict)		" number of items in dict
	:let big = max(dict)		" maximum value in dict
	:let small = min(dict)		" minimum value in dict
	:let xs = count(dict, 'x')	" count nr of times 'x' appears in dict
	:let s = string(dict)		" String representation of dict
	:call map(dict, '">> " . v:val')  " prepend ">> " to each item


1.5 More about variables ~
							*more-variables*
If you need to know the type of a variable or expression, use the |type()|
function.

When the '!' flag is included in the 'viminfo' option, global variables that
start with an uppercase letter, and don't contain a lowercase letter, are
stored in the viminfo file |viminfo-file|.

When the 'sessionoptions' option contains "global", global variables that
start with an uppercase letter and contain at least one lowercase letter are
stored in the session file |session-file|.

variable name		can be stored where ~
my_var_6		not
My_Var_6		session file
MY_VAR_6		viminfo file


It's possible to form a variable name with curly braces, see
|curly-braces-names|.

==============================================================================
2. Expression syntax					*expression-syntax*

Expression syntax summary, from least to most significant:

|expr1|	expr2
	expr2 ? expr1 : expr1	if-then-else

|expr2|	expr3
	expr3 || expr3 ..	logical OR

|expr3|	expr4
	expr4 && expr4 ..	logical AND

|expr4|	expr5
	expr5 == expr5		equal
	expr5 != expr5		not equal
	expr5 >	 expr5		greater than
	expr5 >= expr5		greater than or equal
	expr5 <	 expr5		smaller than
	expr5 <= expr5		smaller than or equal
	expr5 =~ expr5		regexp matches
	expr5 !~ expr5		regexp doesn't match

	expr5 ==? expr5		equal, ignoring case
	expr5 ==# expr5		equal, match case
	etc.			As above, append ? for ignoring case, # for
				matching case

	expr5 is expr5		same |List| instance
	expr5 isnot expr5	different |List| instance

|expr5|	expr6
	expr6 +	 expr6 ..	number addition or list concatenation
	expr6 -	 expr6 ..	number subtraction
	expr6 .	 expr6 ..	string concatenation

|expr6|	expr7
	expr7 *	 expr7 ..	number multiplication
	expr7 /	 expr7 ..	number division
	expr7 %	 expr7 ..	number modulo

|expr7|	expr8
	! expr7			logical NOT
	- expr7			unary minus
	+ expr7			unary plus

|expr8|	expr9
	expr8[expr1]		byte of a String or item of a |List|
	expr8[expr1 : expr1]	substring of a String or sublist of a |List|
	expr8.name		entry in a |Dictionary|
	expr8(expr1, ...)	function call with |Funcref| variable

|expr9|	number			number constant
	"string"		string constant, backslash is special
	'string'		string constant, ' is doubled
	[expr1, ...]		|List|
	{expr1: expr1, ...}	|Dictionary|
	&option			option value
	(expr1)			nested expression
	variable		internal variable
	va{ria}ble		internal variable with curly braces
	$VAR			environment variable
	@r			contents of register 'r'
	function(expr1, ...)	function call
	func{ti}on(expr1, ...)	function call with curly braces
	{args -> expr1}		lambda expression


".." indicates that the operations in this level can be concatenated.
Example: >
	&nu || &list && &shell == "csh"

All expressions within one level are parsed from left to right.


expr1							*expr1* *E109*
-----

expr2 ? expr1 : expr1

The expression before the '?' is evaluated to a number.  If it evaluates to
|TRUE|, the result is the value of the expression between the '?' and ':',
otherwise the result is the value of the expression after the ':'.
Example: >
	:echo lnum == 1 ? "top" : lnum

Since the first expression is an "expr2", it cannot contain another ?:.  The
other two expressions can, thus allow for recursive use of ?:.
Example: >
	:echo lnum == 1 ? "top" : lnum == 1000 ? "last" : lnum

To keep this readable, using |line-continuation| is suggested: >
	:echo lnum == 1
	:\	? "top"
	:\	: lnum == 1000
	:\		? "last"
	:\		: lnum

You should always put a space before the ':', otherwise it can be mistaken for
use in a variable such as "a:1".


expr2 and expr3						*expr2* *expr3*
---------------

expr3 || expr3 ..	logical OR		*expr-barbar*
expr4 && expr4 ..	logical AND		*expr-&&*

The "||" and "&&" operators take one argument on each side.  The arguments
are (converted to) Numbers.  The result is:

    input			 output ~
n1	n2		n1 || n2	n1 && n2 ~
|FALSE|	|FALSE|		|FALSE|		|FALSE|
|FALSE|	|TRUE|		|TRUE|		|FALSE|
|TRUE|	|FALSE|		|TRUE|		|FALSE|
|TRUE|	|TRUE|		|TRUE|		|TRUE|

The operators can be concatenated, for example: >

	&nu || &list && &shell == "csh"

Note that "&&" takes precedence over "||", so this has the meaning of: >

	&nu || (&list && &shell == "csh")

Once the result is known, the expression "short-circuits", that is, further
arguments are not evaluated.  This is like what happens in C.  For example: >

	let a = 1
	echo a || b

This is valid even if there is no variable called "b" because "a" is |TRUE|,
so the result must be |TRUE|.  Similarly below: >

	echo exists("b") && b == "yes"

This is valid whether "b" has been defined or not.  The second clause will
only be evaluated if "b" has been defined.


expr4							*expr4*
-----

expr5 {cmp} expr5

Compare two expr5 expressions, resulting in a 0 if it evaluates to false, or 1
if it evaluates to true.

			*expr-==*  *expr-!=*  *expr->*	 *expr->=*
			*expr-<*   *expr-<=*  *expr-=~*  *expr-!~*
			*expr-==#* *expr-!=#* *expr->#*  *expr->=#*
			*expr-<#*  *expr-<=#* *expr-=~#* *expr-!~#*
			*expr-==?* *expr-!=?* *expr->?*  *expr->=?*
			*expr-<?*  *expr-<=?* *expr-=~?* *expr-!~?*
			*expr-is* *expr-isnot* *expr-is#* *expr-isnot#*
			*expr-is?* *expr-isnot?*
		use 'ignorecase'    match case	   ignore case ~
equal			==		==#		==?
not equal		!=		!=#		!=?
greater than		>		>#		>?
greater than or equal	>=		>=#		>=?
smaller than		<		<#		<?
smaller than or equal	<=		<=#		<=?
regexp matches		=~		=~#		=~?
regexp doesn't match	!~		!~#		!~?
same instance		is		is#		is?
different instance	isnot		isnot#		isnot?

Examples:
"abc" ==# "Abc"	  evaluates to 0
"abc" ==? "Abc"	  evaluates to 1
"abc" == "Abc"	  evaluates to 1 if 'ignorecase' is set, 0 otherwise

							*E691* *E692*
A |List| can only be compared with a |List| and only "equal", "not equal",
"is" and "isnot" can be used.  This compares the values of the list,
recursively.  Ignoring case means case is ignored when comparing item values.

							*E735* *E736*
A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
equal", "is" and "isnot" can be used.  This compares the key/values of the
|Dictionary| recursively.  Ignoring case means case is ignored when comparing
item values.

							*E694*
A |Funcref| can only be compared with a |Funcref| and only "equal", "not
equal", "is" and "isnot" can be used.  Case is never ignored.  Whether
arguments or a Dictionary are bound (with a partial) matters.  The
Dictionaries must also be equal (or the same, in case of "is") and the
arguments must be equal (or the same).

To compare Funcrefs to see if they refer to the same function, ignoring bound
Dictionary and arguments, use |get()| to get the function name: >
	if get(Part1, 'name') == get(Part2, 'name')
	   " Part1 and Part2 refer to the same function

When using "is" or "isnot" with a |List| or a |Dictionary| this checks if the
expressions are referring to the same |List| or |Dictionary| instance.  A copy
of a |List| is different from the original |List|.  When using "is" without
a |List| or a |Dictionary| it is equivalent to using "equal", using "isnot"
equivalent to using "not equal".  Except that a different type means the
values are different: >
	echo 4 == '4'
	1
	echo 4 is '4'
	0
	echo 0 is []
	0
"is#"/"isnot#" and "is?"/"isnot?" can be used to match and ignore case.

When comparing a String with a Number, the String is converted to a Number,
and the comparison is done on Numbers.  This means that: >
	echo 0 == 'x'
	1
because 'x' converted to a Number is zero.  However: >
	echo [0] == ['x']
	0
Inside a List or Dictionary this conversion is not used.

When comparing two Strings, this is done with strcmp() or stricmp().  This
results in the mathematical difference (comparing byte values), not
necessarily the alphabetical difference in the local language.

When using the operators with a trailing '#', or the short version and
'ignorecase' is off, the comparing is done with strcmp(): case matters.

When using the operators with a trailing '?', or the short version and
'ignorecase' is set, the comparing is done with stricmp(): case is ignored.

'smartcase' is not used.

The "=~" and "!~" operators match the lefthand argument with the righthand
argument, which is used as a pattern.  See |pattern| for what a pattern is.
This matching is always done like 'magic' was set and 'cpoptions' is empty, no
matter what the actual value of 'magic' or 'cpoptions' is.  This makes scripts
portable.  To avoid backslashes in the regexp pattern to be doubled, use a
single-quote string, see |literal-string|.
Since a string is considered to be a single line, a multi-line pattern
(containing \n, backslash-n) will not match.  However, a literal NL character
can be matched like an ordinary character.  Examples:
	"foo\nbar" =~ "\n"	evaluates to 1
	"foo\nbar" =~ "\\n"	evaluates to 0


expr5 and expr6						*expr5* *expr6*
---------------
expr6 +	 expr6 ..	Number addition or |List| concatenation	*expr-+*
expr6 -	 expr6 ..	Number subtraction			*expr--*
expr6 .	 expr6 ..	String concatenation			*expr-.*

For |Lists| only "+" is possible and then both expr6 must be a list.  The
result is a new list with the two lists Concatenated.

expr7 *	 expr7 ..	Number multiplication			*expr-star*
expr7 /	 expr7 ..	Number division				*expr-/*
expr7 %	 expr7 ..	Number modulo				*expr-%*

For all, except ".", Strings are converted to Numbers.
For bitwise operators see |and()|, |or()| and |xor()|.

Note the difference between "+" and ".":
	"123" + "456" = 579
	"123" . "456" = "123456"

Since '.' has the same precedence as '+' and '-', you need to read: >
	1 . 90 + 90.0
As: >
	(1 . 90) + 90.0
That works, since the String "190" is automatically converted to the Number
190, which can be added to the Float 90.0.  However: >
	1 . 90 * 90.0
Should be read as: >
	1 . (90 * 90.0)
Since '.' has lower precedence than '*'.  This does NOT work, since this
attempts to concatenate a Float and a String.

When dividing a Number by zero the result depends on the value:
	  0 / 0  = -0x80000000	(like NaN for Float)
	 >0 / 0  =  0x7fffffff	(like positive infinity)
	 <0 / 0  = -0x7fffffff	(like negative infinity)
	(before Vim 7.2 it was always 0x7fffffff)

When 64-bit Number support is enabled:
	  0 / 0  = -0x8000000000000000	(like NaN for Float)
	 >0 / 0  =  0x7fffffffffffffff	(like positive infinity)
	 <0 / 0  = -0x7fffffffffffffff	(like negative infinity)

When the righthand side of '%' is zero, the result is 0.

None of these work for |Funcref|s.

. and % do not work for Float. *E804*


expr7							*expr7*
-----
! expr7			logical NOT		*expr-!*
- expr7			unary minus		*expr-unary--*
+ expr7			unary plus		*expr-unary-+*

For '!' |TRUE| becomes |FALSE|, |FALSE| becomes |TRUE| (one).
For '-' the sign of the number is changed.
For '+' the number is unchanged.

A String will be converted to a Number first.

These three can be repeated and mixed.  Examples:
	!-1	    == 0
	!!8	    == 1
	--9	    == 9


expr8							*expr8*
-----
expr8[expr1]		item of String or |List|	*expr-[]* *E111*
							*E909* *subscript*
If expr8 is a Number or String this results in a String that contains the
expr1'th single byte from expr8.  expr8 is used as a String, expr1 as a
Number.  This doesn't recognize multi-byte encodings, see `byteidx()` for
an alternative, or use `split()` to turn the string into a list of characters.

Index zero gives the first byte.  This is like it works in C.  Careful:
text column numbers start with one!  Example, to get the byte under the
cursor: >
	:let c = getline(".")[col(".") - 1]

If the length of the String is less than the index, the result is an empty
String.  A negative index always results in an empty string (reason: backward
compatibility).  Use [-1:] to get the last byte.

If expr8 is a |List| then it results the item at index expr1.  See |list-index|
for possible index values.  If the index is out of range this results in an
error.  Example: >
	:let item = mylist[-1]		" get last item

Generally, if a |List| index is equal to or higher than the length of the
|List|, or more negative than the length of the |List|, this results in an
error.


expr8[expr1a : expr1b]	substring or sublist		*expr-[:]*

If expr8 is a Number or String this results in the substring with the bytes
from expr1a to and including expr1b.  expr8 is used as a String, expr1a and
expr1b are used as a Number.  This doesn't recognize multi-byte encodings, see
|byteidx()| for computing the indexes.

If expr1a is omitted zero is used.  If expr1b is omitted the length of the
string minus one is used.

A negative number can be used to measure from the end of the string.  -1 is
the last character, -2 the last but one, etc.

If an index goes out of range for the string characters are omitted.  If
expr1b is smaller than expr1a the result is an empty string.

Examples: >
	:let c = name[-1:]		" last byte of a string
	:let c = name[-2:-2]		" last but one byte of a string
	:let s = line(".")[4:]		" from the fifth byte to the end
	:let s = s[:-3]			" remove last two bytes
<
							*slice*
If expr8 is a |List| this results in a new |List| with the items indicated by
the indexes expr1a and expr1b.  This works like with a String, as explained
just above. Also see |sublist| below.  Examples: >
	:let l = mylist[:3]		" first four items
	:let l = mylist[4:4]		" List with one item
	:let l = mylist[:]		" shallow copy of a List

Using expr8[expr1] or expr8[expr1a : expr1b] on a |Funcref| results in an
error.

Watch out for confusion between a namespace and a variable followed by a colon
for a sublist: >
	mylist[n:]     " uses variable n
	mylist[s:]     " uses namespace s:, error!


expr8.name		entry in a |Dictionary|		*expr-entry*

If expr8 is a |Dictionary| and it is followed by a dot, then the following
name will be used as a key in the |Dictionary|.  This is just like:
expr8[name].

The name must consist of alphanumeric characters, just like a variable name,
but it may start with a number.  Curly braces cannot be used.

There must not be white space before or after the dot.

Examples: >
	:let dict = {"one": 1, 2: "two"}
	:echo dict.one
	:echo dict .2

Note that the dot is also used for String concatenation.  To avoid confusion
always put spaces around the dot for String concatenation.


expr8(expr1, ...)	|Funcref| function call

When expr8 is a |Funcref| type variable, invoke the function it refers to.



							*expr9*
number
------
number			number constant			*expr-number*
				*hex-number* *octal-number* *binary-number*

Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B)
and Octal (starting with 0).

						*floating-point-format*
Floating point numbers can be written in two forms:

	[-+]{N}.{M}
	[-+]{N}.{M}[eE][-+]{exp}

{N} and {M} are numbers.  Both {N} and {M} must be present and can only
contain digits.
[-+] means there is an optional plus or minus sign.
{exp} is the exponent, power of 10.
Only a decimal point is accepted, not a comma.  No matter what the current
locale is.
{only when compiled with the |+float| feature}

Examples:
	123.456
	+0.0001
	55.0
	-0.123
	1.234e03
	1.0E-6
	-3.1416e+88

These are INVALID:
	3.		empty {M}
	1e40		missing .{M}

							*float-pi* *float-e*
A few useful values to copy&paste: >
	:let pi = 3.14159265359
	:let e  = 2.71828182846

Rationale:
Before floating point was introduced, the text "123.456" was interpreted as
the two numbers "123" and "456", both converted to a string and concatenated,
resulting in the string "123456".  Since this was considered pointless, and we
could not find it intentionally being used in Vim scripts, this backwards
incompatibility was accepted in favor of being able to use the normal notation
for floating point numbers.

						*floating-point-precision*
The precision and range of floating points numbers depends on what "double"
means in the library Vim was compiled with.  There is no way to change this at
runtime.

The default for displaying a |Float| is to use 6 decimal places, like using
printf("%g", f).  You can select something else when using the |printf()|
function.  Example: >
	:echo printf('%.15e', atan(1))
<	7.853981633974483e-01



string					*string* *String* *expr-string* *E114*
------
"string"		string constant		*expr-quote*

Note that double quotes are used.

A string constant accepts these special characters:
\...	three-digit octal number (e.g., "\316")
\..	two-digit octal number (must be followed by non-digit)
\.	one-digit octal number (must be followed by non-digit)
\x..	byte specified with two hex numbers (e.g., "\x1f")
\x.	byte specified with one hex number (must be followed by non-hex char)
\X..	same as \x..
\X.	same as \x.
\u....	character specified with up to 4 hex numbers, stored according to the
	current value of 'encoding' (e.g., "\u02a4")
\U....	same as \u but allows up to 8 hex numbers.
\b	backspace <BS>
\e	escape <Esc>
\f	formfeed <FF>
\n	newline <NL>
\r	return <CR>
\t	tab <Tab>
\\	backslash
\"	double quote
\<xxx>	Special key named "xxx".  e.g. "\<C-W>" for CTRL-W.  This is for use
	in mappings, the 0x80 byte is escaped.
	To use the double quote character it must be escaped: "<M-\">".
	Don't use <Char-xxxx> to get a utf-8 character, use \uxxxx as
	mentioned above.

Note that "\xff" is stored as the byte 255, which may be invalid in some
encodings.  Use "\u00ff" to store character 255 according to the current value
of 'encoding'.

Note that "\000" and "\x00" force the end of the string.


literal-string						*literal-string* *E115*
---------------
'string'		string constant			*expr-'*

Note that single quotes are used.

This string is taken as it is.  No backslashes are removed or have a special
meaning.  The only exception is that two quotes stand for one quote.

Single quoted strings are useful for patterns, so that backslashes do not need
to be doubled.  These two commands are equivalent: >
	if a =~ "\\s*"
	if a =~ '\s*'


option						*expr-option* *E112* *E113*
------
&option			option value, local value if possible
&g:option		global option value
&l:option		local option value

Examples: >
	echo "tabstop is " . &tabstop
	if &insertmode

Any option name can be used here.  See |options|.  When using the local value
and there is no buffer-local or window-local value, the global value is used
anyway.


register						*expr-register* *@r*
--------
@r			contents of register 'r'

The result is the contents of the named register, as a single string.
Newlines are inserted where required.  To get the contents of the unnamed
register use @" or @@.  See |registers| for an explanation of the available
registers.

When using the '=' register you get the expression itself, not what it
evaluates to.  Use |eval()| to evaluate it.


nesting							*expr-nesting* *E110*
-------
(expr1)			nested expression


environment variable					*expr-env*
--------------------
$VAR			environment variable

The String value of any environment variable.  When it is not defined, the
result is an empty string.
						*expr-env-expand*
Note that there is a difference between using $VAR directly and using
expand("$VAR").  Using it directly will only expand environment variables that
are known inside the current Vim session.  Using expand() will first try using
the environment variables known inside the current Vim session.  If that
fails, a shell will be used to expand the variable.  This can be slow, but it
does expand all variables that the shell knows about.  Example: >
	:echo $shell
	:echo expand("$shell")
The first one probably doesn't echo anything, the second echoes the $shell
variable (if your shell supports it).


internal variable					*expr-variable*
-----------------
variable		internal variable
See below |internal-variables|.


function call		*expr-function* *E116* *E118* *E119* *E120*
-------------
function(expr1, ...)	function call
See below |functions|.


lambda expression				*expr-lambda* *lambda*
-----------------
{args -> expr1}		lambda expression

A lambda expression creates a new unnamed function which returns the result of
evaluating |expr1|.  Lambda expressions differ from |user-functions| in
the following ways:

1. The body of the lambda expression is an |expr1| and not a sequence of |Ex|
   commands.
2. The prefix "a:" should not be used for arguments.  E.g.: >
	:let F = {arg1, arg2 -> arg1 - arg2}
	:echo F(5, 2)
<	3

The arguments are optional.  Example: >
	:let F = {-> 'error function'}
	:echo F()
<	error function
							*closure*
Lambda expressions can access outer scope variables and arguments.  This is
often called a closure.  Example where "i" and "a:arg" are used in a lambda
while they already exist in the function scope.  They remain valid even after
the function returns: >
	:function Foo(arg)
	:  let i = 3
	:  return {x -> x + i - a:arg}
	:endfunction
	:let Bar = Foo(4)
	:echo Bar(6)
<	5

Note that the variables must exist in the outer scope before the lamba is
defined for this to work.  See also |:func-closure|.

Lambda and closure support can be checked with: >
	if has('lambda')

Examples for using a lambda expression with |sort()|, |map()| and |filter()|: >
	:echo map([1, 2, 3], {idx, val -> val + 1})
<	[2, 3, 4] >
	:echo sort([3,7,2,1,4], {a, b -> a - b})
<	[1, 2, 3, 4, 7]

The lambda expression is also useful for Channel, Job and timer: >
	:let timer = timer_start(500,
			\ {-> execute("echo 'Handler called'", "")},
			\ {'repeat': 3})
<	Handler called
	Handler called
	Handler called

Note how execute() is used to execute an Ex command.  That's ugly though.


Lambda expressions have internal names like '<lambda>42'.  If you get an error
for a lambda expression, you can find what it is with the following command: >
	:function {'<lambda>42'}
See also: |numbered-function|

==============================================================================
3. Internal variable				*internal-variables* *E461*

An internal variable name can be made up of letters, digits and '_'.  But it
cannot start with a digit.  It's also possible to use curly braces, see
|curly-braces-names|.

An internal variable is created with the ":let" command |:let|.
An internal variable is explicitly destroyed with the ":unlet" command
|:unlet|.
Using a name that is not an internal variable or refers to a variable that has
been destroyed results in an error.

There are several name spaces for variables.  Which one is to be used is
specified by what is prepended:

		(nothing) In a function: local to a function; otherwise: global
|buffer-variable|    b:	  Local to the current buffer.
|window-variable|    w:	  Local to the current window.
|tabpage-variable|   t:	  Local to the current tab page.
|global-variable|    g:	  Global.
|local-variable|     l:	  Local to a function.
|script-variable|    s:	  Local to a |:source|'ed Vim script.
|function-argument|  a:	  Function argument (only inside a function).
|vim-variable|       v:	  Global, predefined by Vim.

The scope name by itself can be used as a |Dictionary|.  For example, to
delete all script-local variables: >
	:for k in keys(s:)
	:    unlet s:[k]
	:endfor
<
						*buffer-variable* *b:var* *b:*
A variable name that is preceded with "b:" is local to the current buffer.
Thus you can have several "b:foo" variables, one for each buffer.
This kind of variable is deleted when the buffer is wiped out or deleted with
|:bdelete|.

One local buffer variable is predefined:
					*b:changedtick* *changetick*
b:changedtick	The total number of changes to the current buffer.  It is
		incremented for each change.  An undo command is also a change
		in this case.  This can be used to perform an action only when
		the buffer has changed.  Example: >
		    :if my_changedtick != b:changedtick
		    :	let my_changedtick = b:changedtick
		    :	call My_Update()
		    :endif
<		You cannot change or delete the b:changedtick variable.

						*window-variable* *w:var* *w:*
A variable name that is preceded with "w:" is local to the current window.  It
is deleted when the window is closed.

						*tabpage-variable* *t:var* *t:*
A variable name that is preceded with "t:" is local to the current tab page,
It is deleted when the tab page is closed. {not available when compiled
without the |+windows| feature}

						*global-variable* *g:var* *g:*
Inside functions global variables are accessed with "g:".  Omitting this will
access a variable local to a function.  But "g:" can also be used in any other
place if you like.

						*local-variable* *l:var* *l:*
Inside functions local variables are accessed without prepending anything.
But you can also prepend "l:" if you like.  However, without prepending "l:"
you may run into reserved variable names.  For example "count".  By itself it
refers to "v:count".  Using "l:count" you can have a local variable with the
same name.

						*script-variable* *s:var*
In a Vim script variables starting with "s:" can be used.  They cannot be
accessed from outside of the scripts, thus are local to the script.

They can be used in:
- commands executed while the script is sourced
- functions defined in the script
- autocommands defined in the script
- functions and autocommands defined in functions and autocommands which were
  defined in the script (recursively)
- user defined commands defined in the script
Thus not in:
- other scripts sourced from this one
- mappings
- menus
- etc.

Script variables can be used to avoid conflicts with global variable names.
Take this example: >

	let s:counter = 0
	function MyCounter()
	  let s:counter = s:counter + 1
	  echo s:counter
	endfunction
	command Tick call MyCounter()

You can now invoke "Tick" from any script, and the "s:counter" variable in
that script will not be changed, only the "s:counter" in the script where
"Tick" was defined is used.

Another example that does the same: >

	let s:counter = 0
	command Tick let s:counter = s:counter + 1 | echo s:counter

When calling a function and invoking a user-defined command, the context for
script variables is set to the script where the function or command was
defined.

The script variables are also available when a function is defined inside a
function that is defined in a script.  Example: >

	let s:counter = 0
	function StartCounting(incr)
	  if a:incr
	    function MyCounter()
	      let s:counter = s:counter + 1
	    endfunction
	  else
	    function MyCounter()
	      let s:counter = s:counter - 1
	    endfunction
	  endif
	endfunction

This defines the MyCounter() function either for counting up or counting down
when calling StartCounting().  It doesn't matter from where StartCounting() is
called, the s:counter variable will be accessible in MyCounter().

When the same script is sourced again it will use the same script variables.
They will remain valid as long as Vim is running.  This can be used to
maintain a counter: >

	if !exists("s:counter")
	  let s:counter = 1
	  echo "script executed for the first time"
	else
	  let s:counter = s:counter + 1
	  echo "script executed " . s:counter . " times now"
	endif

Note that this means that filetype plugins don't get a different set of script
variables for each buffer.  Use local buffer variables instead |b:var|.


Predefined Vim variables:			*vim-variable* *v:var* *v:*

					*v:beval_col* *beval_col-variable*
v:beval_col	The number of the column, over which the mouse pointer is.
		This is the byte index in the |v:beval_lnum| line.
		Only valid while evaluating the 'balloonexpr' option.

					*v:beval_bufnr* *beval_bufnr-variable*
v:beval_bufnr	The number of the buffer, over which the mouse pointer is. Only
		valid while evaluating the 'balloonexpr' option.

					*v:beval_lnum* *beval_lnum-variable*
v:beval_lnum	The number of the line, over which the mouse pointer is. Only
		valid while evaluating the 'balloonexpr' option.

					*v:beval_text* *beval_text-variable*
v:beval_text	The text under or after the mouse pointer.  Usually a word as
		it is useful for debugging a C program.  'iskeyword' applies,
		but a dot and "->" before the position is included.  When on a
		']' the text before it is used, including the matching '[' and
		word before it.  When on a Visual area within one line the
		highlighted text is used.  Also see |<cexpr>|.
		Only valid while evaluating the 'balloonexpr' option.

					*v:beval_winnr* *beval_winnr-variable*
v:beval_winnr	The number of the window, over which the mouse pointer is. Only
		valid while evaluating the 'balloonexpr' option.  The first
		window has number zero (unlike most other places where a
		window gets a number).

					*v:beval_winid* *beval_winid-variable*
v:beval_winid	The |window-ID| of the window, over which the mouse pointer
		is.  Otherwise like v:beval_winnr.

					*v:char* *char-variable*
v:char		Argument for evaluating 'formatexpr' and used for the typed
		character when using <expr> in an abbreviation |:map-<expr>|.
		It is also used by the |InsertCharPre| and |InsertEnter| events.

			*v:charconvert_from* *charconvert_from-variable*
v:charconvert_from
		The name of the character encoding of a file to be converted.
		Only valid while evaluating the 'charconvert' option.

			*v:charconvert_to* *charconvert_to-variable*
v:charconvert_to
		The name of the character encoding of a file after conversion.
		Only valid while evaluating the 'charconvert' option.

					*v:cmdarg* *cmdarg-variable*
v:cmdarg	This variable is used for two purposes:
		1. The extra arguments given to a file read/write command.
		   Currently these are "++enc=" and "++ff=".  This variable is
		   set before an autocommand event for a file read/write
		   command is triggered.  There is a leading space to make it
		   possible to append this variable directly after the
		   read/write command.  Note: The "+cmd" argument isn't
		   included here, because it will be executed anyway.
		2. When printing a PostScript file with ":hardcopy" this is
		   the argument for the ":hardcopy" command.  This can be used
		   in 'printexpr'.

					*v:cmdbang* *cmdbang-variable*
v:cmdbang	Set like v:cmdarg for a file read/write command.  When a "!"
		was used the value is 1, otherwise it is 0.  Note that this
		can only be used in autocommands.  For user commands |<bang>|
		can be used.

				*v:completed_item* *completed_item-variable*
v:completed_item
		|Dictionary| containing the |complete-items| for the most
		recently completed word after |CompleteDone|.  The
		|Dictionary| is empty if the completion failed.

					*v:count* *count-variable*
v:count		The count given for the last Normal mode command.  Can be used
		to get the count before a mapping.  Read-only.  Example: >
	:map _x :<C-U>echo "the count is " . v:count<CR>
<		Note: The <C-U> is required to remove the line range that you
		get when typing ':' after a count.
		When there are two counts, as in "3d2w", they are multiplied,
		just like what happens in the command, "d6w" for the example.
		Also used for evaluating the 'formatexpr' option.
		"count" also works, for backwards compatibility.

					*v:count1* *count1-variable*
v:count1	Just like "v:count", but defaults to one when no count is
		used.

						*v:ctype* *ctype-variable*
v:ctype		The current locale setting for characters of the runtime
		environment.  This allows Vim scripts to be aware of the
		current locale encoding.  Technical: it's the value of
		LC_CTYPE.  When not using a locale the value is "C".
		This variable can not be set directly, use the |:language|
		command.
		See |multi-lang|.

					*v:dying* *dying-variable*
v:dying		Normally zero.  When a deadly signal is caught it's set to
		one.  When multiple signals are caught the number increases.
		Can be used in an autocommand to check if Vim didn't
		terminate normally. {only works on Unix}
		Example: >
	:au VimLeave * if v:dying | echo "\nAAAAaaaarrrggghhhh!!!\n" | endif
<		Note: if another deadly signal is caught when v:dying is one,
		VimLeave autocommands will not be executed.

					*v:errmsg* *errmsg-variable*
v:errmsg	Last given error message.  It's allowed to set this variable.
		Example: >
	:let v:errmsg = ""
	:silent! next
	:if v:errmsg != ""
	:  ... handle error
<		"errmsg" also works, for backwards compatibility.

					*v:errors* *errors-variable*
v:errors	Errors found by assert functions, such as |assert_true()|.
		This is a list of strings.
		The assert functions append an item when an assert fails.
		To remove old results make it empty: >
	:let v:errors = []
<		If v:errors is set to anything but a list it is made an empty
		list by the assert function.

					*v:event* *event-variable*
v:event		Dictionary containing information about the current
		|autocommand|.  The dictionary is emptied when the |autocommand|
		finishes, please refer to |dict-identity| for how to get an
		independent copy of it.

					*v:exception* *exception-variable*
v:exception	The value of the exception most recently caught and not
		finished.  See also |v:throwpoint| and |throw-variables|.
		Example: >
	:try
	:  throw "oops"
	:catch /.*/
	:  echo "caught" v:exception
	:endtry
<		Output: "caught oops".

					*v:false* *false-variable*
v:false		A Number with value zero. Used to put "false" in JSON.  See
		|json_encode()|.
		When used as a string this evaluates to "v:false". >
			echo v:false
<			v:false ~
		That is so that eval() can parse the string back to the same
		value.  Read-only.

					*v:fcs_reason* *fcs_reason-variable*
v:fcs_reason	The reason why the |FileChangedShell| event was triggered.
		Can be used in an autocommand to decide what to do and/or what
		to set v:fcs_choice to.  Possible values:
			deleted		file no longer exists
			conflict	file contents, mode or timestamp was
					changed and buffer is modified
			changed		file contents has changed
			mode		mode of file changed
			time		only file timestamp changed

					*v:fcs_choice* *fcs_choice-variable*
v:fcs_choice	What should happen after a |FileChangedShell| event was
		triggered.  Can be used in an autocommand to tell Vim what to
		do with the affected buffer:
			reload		Reload the buffer (does not work if
					the file was deleted).
			ask		Ask the user what to do, as if there
					was no autocommand.  Except that when
					only the timestamp changed nothing
					will happen.
			<empty>		Nothing, the autocommand should do
					everything that needs to be done.
		The default is empty.  If another (invalid) value is used then
		Vim behaves like it is empty, there is no warning message.

					*v:fname_in* *fname_in-variable*
v:fname_in	The name of the input file.  Valid while evaluating:
			option		used for ~
			'charconvert'	file to be converted
			'diffexpr'	original file
			'patchexpr'	original file
			'printexpr'	file to be printed
		And set to the swap file name for |SwapExists|.

					*v:fname_out* *fname_out-variable*
v:fname_out	The name of the output file.  Only valid while
		evaluating:
			option		used for ~
			'charconvert'	resulting converted file (*)
			'diffexpr'	output of diff
			'patchexpr'	resulting patched file
		(*) When doing conversion for a write command (e.g., ":w
		file") it will be equal to v:fname_in.  When doing conversion
		for a read command (e.g., ":e file") it will be a temporary
		file and different from v:fname_in.

					*v:fname_new* *fname_new-variable*
v:fname_new	The name of the new version of the file.  Only valid while
		evaluating 'diffexpr'.

					*v:fname_diff* *fname_diff-variable*
v:fname_diff	The name of the diff (patch) file.  Only valid while
		evaluating 'patchexpr'.

					*v:folddashes* *folddashes-variable*
v:folddashes	Used for 'foldtext': dashes representing foldlevel of a closed
		fold.
		Read-only in the |sandbox|. |fold-foldtext|

					*v:foldlevel* *foldlevel-variable*
v:foldlevel	Used for 'foldtext': foldlevel of closed fold.
		Read-only in the |sandbox|. |fold-foldtext|

					*v:foldend* *foldend-variable*
v:foldend	Used for 'foldtext': last line of closed fold.
		Read-only in the |sandbox|. |fold-foldtext|

					*v:foldstart* *foldstart-variable*
v:foldstart	Used for 'foldtext': first line of closed fold.
		Read-only in the |sandbox|. |fold-foldtext|

					*v:hlsearch* *hlsearch-variable*
v:hlsearch	Variable that indicates whether search highlighting is on.
		Setting it makes sense only if 'hlsearch' is enabled which
		requires |+extra_search|. Setting this variable to zero acts
		like the |:nohlsearch| command, setting it to one acts like >
			let &hlsearch = &hlsearch
<		Note that the value is restored when returning from a
		function. |function-search-undo|.

					*v:insertmode* *insertmode-variable*
v:insertmode	Used for the |InsertEnter| and |InsertChange| autocommand
		events.  Values:
			i	Insert mode
			r	Replace mode
			v	Virtual Replace mode

						*v:key* *key-variable*
v:key		Key of the current item of a |Dictionary|.  Only valid while
		evaluating the expression used with |map()| and |filter()|.
		Read-only.

						*v:lang* *lang-variable*
v:lang		The current locale setting for messages of the runtime
		environment.  This allows Vim scripts to be aware of the
		current language.  Technical: it's the value of LC_MESSAGES.
		The value is system dependent.
		This variable can not be set directly, use the |:language|
		command.
		It can be different from |v:ctype| when messages are desired
		in a different language than what is used for character
		encoding.  See |multi-lang|.

						*v:lc_time* *lc_time-variable*
v:lc_time	The current locale setting for time messages of the runtime
		environment.  This allows Vim scripts to be aware of the
		current language.  Technical: it's the value of LC_TIME.
		This variable can not be set directly, use the |:language|
		command.  See |multi-lang|.

						*v:lnum* *lnum-variable*
v:lnum		Line number for the 'foldexpr' |fold-expr|, 'formatexpr' and
		'indentexpr' expressions, tab page number for 'guitablabel'
		and 'guitabtooltip'.  Only valid while one of these
		expressions is being evaluated.  Read-only when in the
		|sandbox|.

					*v:mouse_win* *mouse_win-variable*
v:mouse_win	Window number for a mouse click obtained with |getchar()|.
		First window has number 1, like with |winnr()|.  The value is
		zero when there was no mouse button click.

					*v:mouse_winid* *mouse_winid-variable*
v:mouse_winid	Window ID for a mouse click obtained with |getchar()|.
		The value is zero when there was no mouse button click.

					*v:mouse_lnum* *mouse_lnum-variable*
v:mouse_lnum	Line number for a mouse click obtained with |getchar()|.
		This is the text line number, not the screen line number.  The
		value is zero when there was no mouse button click.

					*v:mouse_col* *mouse_col-variable*
v:mouse_col	Column number for a mouse click obtained with |getchar()|.
		This is the screen column number, like with |virtcol()|.  The
		value is zero when there was no mouse button click.

					*v:none* *none-variable*
v:none		An empty String. Used to put an empty item in JSON.  See
		|json_encode()|.
		When used as a number this evaluates to zero.
		When used as a string this evaluates to "v:none". >
			echo v:none
<			v:none ~
		That is so that eval() can parse the string back to the same
		value.  Read-only.

					*v:null* *null-variable*
v:null		An empty String. Used to put "null" in JSON.  See
		|json_encode()|.
		When used as a number this evaluates to zero.
		When used as a string this evaluates to "v:null". >
			echo v:null
<			v:null ~
		That is so that eval() can parse the string back to the same
		value.  Read-only.

					*v:oldfiles* *oldfiles-variable*
v:oldfiles	List of file names that is loaded from the |viminfo| file on
		startup.  These are the files that Vim remembers marks for.
		The length of the List is limited by the ' argument of the
		'viminfo' option (default is 100).
		When the |viminfo| file is not used the List is empty.
		Also see |:oldfiles| and |c_#<|.
		The List can be modified, but this has no effect on what is
		stored in the |viminfo| file later.  If you use values other
		than String this will cause trouble.
		{only when compiled with the |+viminfo| feature}

						    *v:option_new*
v:option_new    New value of the option. Valid while executing an |OptionSet|
		autocommand.
						    *v:option_old*
v:option_old    Old value of the option. Valid while executing an |OptionSet|
		autocommand.
						    *v:option_type*
v:option_type   Scope of the set command. Valid while executing an
		|OptionSet| autocommand. Can be either "global" or "local"
					*v:operator* *operator-variable*
v:operator	The last operator given in Normal mode.  This is a single
		character except for commands starting with <g> or <z>,
		in which case it is two characters.  Best used alongside
		|v:prevcount| and |v:register|.  Useful if you want to cancel
		Operator-pending mode and then use the operator, e.g.: >
			:omap O <Esc>:call MyMotion(v:operator)<CR>
<		The value remains set until another operator is entered, thus
		don't expect it to be empty.
		v:operator is not set for |:delete|, |:yank| or other Ex
		commands.
		Read-only.

					*v:prevcount* *prevcount-variable*
v:prevcount	The count given for the last but one Normal mode command.
		This is the v:count value of the previous command.  Useful if
		you want to cancel Visual or Operator-pending mode and then
		use the count, e.g.: >
			:vmap % <Esc>:call MyFilter(v:prevcount)<CR>
<		Read-only.

					*v:profiling* *profiling-variable*
v:profiling	Normally zero.  Set to one after using ":profile start".
		See |profiling|.

					*v:progname* *progname-variable*
v:progname	Contains the name (with path removed) with which Vim was
		invoked.  Allows you to do special initialisations for |view|,
		|evim| etc., or any other name you might symlink to Vim.
		Read-only.

					*v:progpath* *progpath-variable*
v:progpath	Contains the command with which Vim was invoked, including the
		path.  Useful if you want to message a Vim server using a
		|--remote-expr|.
		To get the full path use: >
			echo exepath(v:progpath)
<		If the path is relative it will be expanded to the full path,
		so that it still works after `:cd`. Thus starting "./vim"
		results in "/home/user/path/to/vim/src/vim".
		On MS-Windows the executable may be called "vim.exe", but the
		".exe" is not added to v:progpath.
		Read-only.

					*v:register* *register-variable*
v:register	The name of the register in effect for the current normal mode
		command (regardless of whether that command actually used a
		register).  Or for the currently executing normal mode mapping
		(use this in custom commands that take a register).
		If none is supplied it is the default register '"', unless
		'clipboard' contains "unnamed" or "unnamedplus", then it is
		'*' or '+'.
		Also see |getreg()| and |setreg()|

					*v:scrollstart* *scrollstart-variable*
v:scrollstart	String describing the script or function that caused the
		screen to scroll up.  It's only set when it is empty, thus the
		first reason is remembered.  It is set to "Unknown" for a
		typed command.
		This can be used to find out why your script causes the
		hit-enter prompt.

					*v:servername* *servername-variable*
v:servername	The resulting registered |client-server-name| if any.
		Read-only.


v:searchforward			*v:searchforward* *searchforward-variable*
		Search direction:  1 after a forward search, 0 after a
		backward search.  It is reset to forward when directly setting
		the last search pattern, see |quote/|.
		Note that the value is restored when returning from a
		function. |function-search-undo|.
		Read-write.

					*v:shell_error* *shell_error-variable*
v:shell_error	Result of the last shell command.  When non-zero, the last
		shell command had an error.  When zero, there was no problem.
		This only works when the shell returns the error code to Vim.
		The value -1 is often used when the command could not be
		executed.  Read-only.
		Example: >
	:!mv foo bar
	:if v:shell_error
	:  echo 'could not rename "foo" to "bar"!'
	:endif
<		"shell_error" also works, for backwards compatibility.

					*v:statusmsg* *statusmsg-variable*
v:statusmsg	Last given status message.  It's allowed to set this variable.

					*v:swapname* *swapname-variable*
v:swapname	Only valid when executing |SwapExists| autocommands: Name of
		the swap file found.  Read-only.

					*v:swapchoice* *swapchoice-variable*
v:swapchoice	|SwapExists| autocommands can set this to the selected choice
		for handling an existing swap file:
			'o'	Open read-only
			'e'	Edit anyway
			'r'	Recover
			'd'	Delete swapfile
			'q'	Quit
			'a'	Abort
		The value should be a single-character string.  An empty value
		results in the user being asked, as would happen when there is
		no SwapExists autocommand.  The default is empty.

					*v:swapcommand* *swapcommand-variable*
v:swapcommand	Normal mode command to be executed after a file has been
		opened.  Can be used for a |SwapExists| autocommand to have
		another Vim open the file and jump to the right place.  For
		example, when jumping to a tag the value is ":tag tagname\r".
		For ":edit +cmd file" the value is ":cmd\r".

				*v:t_TYPE* *v:t_bool* *t_bool-variable*
v:t_bool	Value of Boolean type.  Read-only.  See: |type()|
					*v:t_channel* *t_channel-variable*
v:t_channel	Value of Channel type.  Read-only.  See: |type()|
					*v:t_dict* *t_dict-variable*
v:t_dict	Value of Dictionary type.  Read-only.  See: |type()|
					*v:t_float* *t_float-variable*
v:t_float	Value of Float type.  Read-only.  See: |type()|
					*v:t_func* *t_func-variable*
v:t_func	Value of Funcref type.  Read-only.  See: |type()|
					*v:t_job* *t_job-variable*
v:t_job		Value of Job type.  Read-only.  See: |type()|
					*v:t_list* *t_list-variable*
v:t_list	Value of List type.  Read-only.  See: |type()|
					*v:t_none* *t_none-variable*
v:t_none	Value of None type.  Read-only.  See: |type()|
					*v:t_number* *t_number-variable*
v:t_number	Value of Number type.  Read-only.  See: |type()|
					*v:t_string* *t_string-variable*
v:t_string	Value of String type.  Read-only.  See: |type()|

				*v:termresponse* *termresponse-variable*
v:termresponse	The escape sequence returned by the terminal for the |t_RV|
		termcap entry.  It is set when Vim receives an escape sequence
		that starts with ESC [ or CSI and ends in a 'c', with only
		digits, ';' and '.' in between.
		When this option is set, the TermResponse autocommand event is
		fired, so that you can react to the response from the
		terminal.
		The response from a new xterm is: "<Esc>[ Pp ; Pv ; Pc c".  Pp
		is the terminal type: 0 for vt100 and 1 for vt220.  Pv is the
		patch level (since this was introduced in patch 95, it's
		always 95 or bigger).  Pc is always zero.
		{only when compiled with |+termresponse| feature}

						*v:termblinkresp*
v:termblinkresp	The escape sequence returned by the terminal for the |t_RC|
		termcap entry.  This is used to find out whether the terminal
		cursor is blinking. This is used by |term_getcursor()|.

						*v:termstyleresp*
v:termstyleresp	The escape sequence returned by the terminal for the |t_RS|
		termcap entry.  This is used to find out what the shape of the
		cursor is.  This is used by |term_getcursor()|.

						*v:termrbgresp*
v:termrbgresp	The escape sequence returned by the terminal for the |t_RB|
		termcap entry.  This is used to find out what the terminal
		background color is, see 'background'.

						*v:termrfgresp*
v:termrfgresp	The escape sequence returned by the terminal for the |t_RF|
		termcap entry.  This is used to find out what the terminal
		foreground color is.

						*v:termu7resp*
v:termu7resp	The escape sequence returned by the terminal for the |t_u7|
		termcap entry.  This is used to find out what the terminal
		does with ambiguous width characters, see 'ambiwidth'.

					*v:testing* *testing-variable*
v:testing	Must be set before using `test_garbagecollect_now()`.
		Also, when set certain error messages won't be shown for 2
		seconds. (e.g. "'dictionary' option is empty")

				*v:this_session* *this_session-variable*
v:this_session	Full filename of the last loaded or saved session file.  See
		|:mksession|.  It is allowed to set this variable.  When no
		session file has been saved, this variable is empty.
		"this_session" also works, for backwards compatibility.

					*v:throwpoint* *throwpoint-variable*
v:throwpoint	The point where the exception most recently caught and not
		finished was thrown.  Not set when commands are typed.  See
		also |v:exception| and |throw-variables|.
		Example: >
	:try
	:  throw "oops"
	:catch /.*/
	:  echo "Exception from" v:throwpoint
	:endtry
<		Output: "Exception from test.vim, line 2"

						*v:true* *true-variable*
v:true		A Number with value one. Used to put "true" in JSON.  See
		|json_encode()|.
		When used as a string this evaluates to "v:true". >
			echo v:true
<			v:true ~
		That is so that eval() can parse the string back to the same
		value.  Read-only.
						*v:val* *val-variable*
v:val		Value of the current item of a |List| or |Dictionary|.  Only
		valid while evaluating the expression used with |map()| and
		|filter()|.  Read-only.

					*v:version* *version-variable*
v:version	Version number of Vim: Major version number times 100 plus
		minor version number.  Version 5.0 is 500.  Version 5.1 (5.01)
		is 501.  Read-only.  "version" also works, for backwards
		compatibility.
		Use |has()| to check if a certain patch was included, e.g.: >
			if has("patch-7.4.123")
<		Note that patch numbers are specific to the version, thus both
		version 5.0 and 5.1 may have a patch 123, but these are
		completely different.

				*v:vim_did_enter* *vim_did_enter-variable*
v:vim_did_enter	Zero until most of startup is done.  It is set to one just
		before |VimEnter| autocommands are triggered.

					*v:warningmsg* *warningmsg-variable*
v:warningmsg	Last given warning message.  It's allowed to set this variable.

					*v:windowid* *windowid-variable*
v:windowid	When any X11 based GUI is running or when running in a
		terminal and Vim connects to the X server (|-X|) this will be
		set to the window ID.
		When an MS-Windows GUI is running this will be set to the
		window handle.
		Otherwise the value is zero.
		Note: for windows inside Vim use |winnr()| or |win_getid()|,
		see |window-ID|.

==============================================================================
4. Builtin Functions					*functions*

See |function-list| for a list grouped by what the function is used for.

(Use CTRL-] on the function name to jump to the full explanation.)

USAGE				RESULT	DESCRIPTION	~

abs({expr})			Float or Number  absolute value of {expr}
acos({expr})			Float	arc cosine of {expr}
add({list}, {item})		List	append {item} to |List| {list}
and({expr}, {expr})		Number	bitwise AND
append({lnum}, {string})	Number	append {string} below line {lnum}
append({lnum}, {list})		Number	append lines {list} below line {lnum}
argc()				Number	number of files in the argument list
argidx()			Number	current index in the argument list
arglistid([{winnr} [, {tabnr}]]) Number	argument list id
argv({nr})			String	{nr} entry of the argument list
argv()				List	the argument list
assert_beeps({cmd})		none	assert {cmd} causes a beep
assert_equal({exp}, {act} [, {msg}])
				none	assert {exp} is equal to {act}
assert_equalfile({fname-one}, {fname-two})
				none	assert file contents is equal
assert_exception({error} [, {msg}])
				none	assert {error} is in v:exception
assert_fails({cmd} [, {error}])	none	assert {cmd} fails
assert_false({actual} [, {msg}])
				none	assert {actual} is false
assert_inrange({lower}, {upper}, {actual} [, {msg}])
				none	assert {actual} is inside the range
assert_match({pat}, {text} [, {msg}])
				none	assert {pat} matches {text}
assert_notequal({exp}, {act} [, {msg}])
				none	assert {exp} is not equal {act}
assert_notmatch({pat}, {text} [, {msg}])
				none	assert {pat} not matches {text}
assert_report({msg})		none	report a test failure
assert_true({actual} [, {msg}])	none	assert {actual} is true
asin({expr})			Float	arc sine of {expr}
atan({expr})			Float	arc tangent of {expr}
atan2({expr1}, {expr2})		Float	arc tangent of {expr1} / {expr2}
balloon_show({expr})		none	show {expr} inside the balloon
balloon_split({msg})		List	split {msg} as used for a balloon
browse({save}, {title}, {initdir}, {default})
				String	put up a file requester
browsedir({title}, {initdir})	String	put up a directory requester
bufexists({expr})		Number	|TRUE| if buffer {expr} exists
buflisted({expr})		Number	|TRUE| if buffer {expr} is listed
bufloaded({expr})		Number	|TRUE| if buffer {expr} is loaded
bufname({expr})			String	Name of the buffer {expr}
bufnr({expr} [, {create}])	Number	Number of the buffer {expr}
bufwinid({expr})		Number	window ID of buffer {expr}
bufwinnr({expr})		Number	window number of buffer {expr}
byte2line({byte})		Number	line number at byte count {byte}
byteidx({expr}, {nr})		Number	byte index of {nr}'th char in {expr}
byteidxcomp({expr}, {nr})	Number	byte index of {nr}'th char in {expr}
call({func}, {arglist} [, {dict}])
				any	call {func} with arguments {arglist}
ceil({expr})			Float	round {expr} up
ch_canread({handle})		Number	check if there is something to read
ch_close({handle})		none	close {handle}
ch_close_in({handle})		none	close in part of {handle}
ch_evalexpr({handle}, {expr} [, {options}])
				any	evaluate {expr} on JSON {handle}
ch_evalraw({handle}, {string} [, {options}])
				any	evaluate {string} on raw {handle}
ch_getbufnr({handle}, {what})	Number	get buffer number for {handle}/{what}
ch_getjob({channel})		Job	get the Job of {channel}
ch_info({handle})		String	info about channel {handle}
ch_log({msg} [, {handle}])	none	write {msg} in the channel log file
ch_logfile({fname} [, {mode}])	none	start logging channel activity
ch_open({address} [, {options}])
				Channel	open a channel to {address}
ch_read({handle} [, {options}]) String	read from {handle}
ch_readraw({handle} [, {options}])
				String	read raw from {handle}
ch_sendexpr({handle}, {expr} [, {options}])
				any	send {expr} over JSON {handle}
ch_sendraw({handle}, {string} [, {options}])
				any	send {string} over raw {handle}
ch_setoptions({handle}, {options})
				none	set options for {handle}
ch_status({handle} [, {options}])
				String	status of channel {handle}
changenr()			Number	current change number
char2nr({expr} [, {utf8}])	Number	ASCII/UTF8 value of first char in {expr}
cindent({lnum})			Number	C indent for line {lnum}
clearmatches()			none	clear all matches
col({expr})			Number	column nr of cursor or mark
complete({startcol}, {matches}) none	set Insert mode completion
complete_add({expr})		Number	add completion match
complete_check()		Number	check for key typed during completion
confirm({msg} [, {choices} [, {default} [, {type}]]])
				Number	number of choice picked by user
copy({expr})			any	make a shallow copy of {expr}
cos({expr})			Float	cosine of {expr}
cosh({expr})			Float	hyperbolic cosine of {expr}
count({list}, {expr} [, {ic} [, {start}]])
				Number	count how many {expr} are in {list}
cscope_connection([{num}, {dbpath} [, {prepend}]])
				Number	checks existence of cscope connection
cursor({lnum}, {col} [, {off}])
				Number	move cursor to {lnum}, {col}, {off}
cursor({list})			Number	move cursor to position in {list}
deepcopy({expr} [, {noref}])	any	make a full copy of {expr}
delete({fname} [, {flags}])	Number	delete the file or directory {fname}
did_filetype()			Number	|TRUE| if FileType autocmd event used
diff_filler({lnum})		Number	diff filler lines about {lnum}
diff_hlID({lnum}, {col})	Number	diff highlighting at {lnum}/{col}
empty({expr})			Number	|TRUE| if {expr} is empty
escape({string}, {chars})	String	escape {chars} in {string} with '\'
eval({string})			any	evaluate {string} into its value
eventhandler()			Number	|TRUE| if inside an event handler
executable({expr})		Number	1 if executable {expr} exists
execute({command})		String	execute {command} and get the output
exepath({expr})			String	full path of the command {expr}
exists({expr})			Number	|TRUE| if {expr} exists
extend({expr1}, {expr2} [, {expr3}])
				List/Dict insert items of {expr2} into {expr1}
exp({expr})			Float	exponential of {expr}
expand({expr} [, {nosuf} [, {list}]])
				any	expand special keywords in {expr}
feedkeys({string} [, {mode}])	Number	add key sequence to typeahead buffer
filereadable({file})		Number	|TRUE| if {file} is a readable file
filewritable({file})		Number	|TRUE| if {file} is a writable file
filter({expr1}, {expr2})	List/Dict  remove items from {expr1} where
					{expr2} is 0
finddir({name} [, {path} [, {count}]])
				String	find directory {name} in {path}
findfile({name} [, {path} [, {count}]])
				String	find file {name} in {path}
float2nr({expr})		Number	convert Float {expr} to a Number
floor({expr})			Float	round {expr} down
fmod({expr1}, {expr2})		Float	remainder of {expr1} / {expr2}
fnameescape({fname})		String	escape special characters in {fname}
fnamemodify({fname}, {mods})	String	modify file name
foldclosed({lnum})		Number	first line of fold at {lnum} if closed
foldclosedend({lnum})		Number	last line of fold at {lnum} if closed
foldlevel({lnum})		Number	fold level at {lnum}
foldtext()			String	line displayed for closed fold
foldtextresult({lnum})		String	text for closed fold at {lnum}
foreground()			Number	bring the Vim window to the foreground
funcref({name} [, {arglist}] [, {dict}])
				Funcref	reference to function {name}
function({name} [, {arglist}] [, {dict}])
				Funcref	named reference to function {name}
garbagecollect([{atexit}])	none	free memory, breaking cyclic references
get({list}, {idx} [, {def}])	any	get item {idx} from {list} or {def}
get({dict}, {key} [, {def}])	any	get item {key} from {dict} or {def}
get({func}, {what})		any	get property of funcref/partial {func}
getbufinfo([{expr}])		List	information about buffers
getbufline({expr}, {lnum} [, {end}])
				List	lines {lnum} to {end} of buffer {expr}
getbufvar({expr}, {varname} [, {def}])
				any	variable {varname} in buffer {expr}
getchangelist({expr})		List	list of change list items
getchar([expr])			Number	get one character from the user
getcharmod()			Number	modifiers for the last typed character
getcharsearch()			Dict	last character search
getcmdline()			String	return the current command-line
getcmdpos()			Number	return cursor position in command-line
getcmdtype()			String	return current command-line type
getcmdwintype()			String	return current command-line window type
getcompletion({pat}, {type} [, {filtered}])
				List	list of cmdline completion matches
getcurpos()			List	position of the cursor
getcwd([{winnr} [, {tabnr}]])	String	get the current working directory
getfontname([{name}])		String	name of font being used
getfperm({fname})		String	file permissions of file {fname}
getfsize({fname})		Number	size in bytes of file {fname}
getftime({fname})		Number	last modification time of file
getftype({fname})		String	description of type of file {fname}
getjumplist([{winnr} [, {tabnr}]])
				List	list of jump list items
getline({lnum})			String	line {lnum} of current buffer
getline({lnum}, {end})		List	lines {lnum} to {end} of current buffer
getloclist({nr} [, {what}])	List	list of location list items
getmatches()			List	list of current matches
getpid()			Number	process ID of Vim
getpos({expr})			List	position of cursor, mark, etc.
getqflist([{what}])		List	list of quickfix items
getreg([{regname} [, 1 [, {list}]]])
				String or List   contents of register
getregtype([{regname}])		String	type of register
gettabinfo([{expr}])		List	list of tab pages
gettabvar({nr}, {varname} [, {def}])
				any	variable {varname} in tab {nr} or {def}
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
				any	{name} in {winnr} in tab page {tabnr}
getwininfo([{winid}])		List	list of windows
getwinpos([{timeout}])		List	X and Y coord in pixels of the Vim window
getwinposx()			Number	X coord in pixels of the Vim window
getwinposy()			Number	Y coord in pixels of the Vim window
getwinvar({nr}, {varname} [, {def}])
				any	variable {varname} in window {nr}
glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])
				any	expand file wildcards in {expr}
glob2regpat({expr})		String	convert a glob pat into a search pat
globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
				String	do glob({expr}) for all dirs in {path}
has({feature})			Number	|TRUE| if feature {feature} supported
has_key({dict}, {key})		Number	|TRUE| if {dict} has entry {key}
haslocaldir([{winnr} [, {tabnr}]])
				Number	|TRUE| if the window executed |:lcd|
hasmapto({what} [, {mode} [, {abbr}]])
				Number	|TRUE| if mapping to {what} exists
histadd({history}, {item})	String	add an item to a history
histdel({history} [, {item}])	String	remove an item from a history
histget({history} [, {index}])	String	get the item {index} from a history
histnr({history})		Number	highest index of a history
hlexists({name})		Number	|TRUE| if highlight group {name} exists
hlID({name})			Number	syntax ID of highlight group {name}
hostname()			String	name of the machine Vim is running on
iconv({expr}, {from}, {to})	String	convert encoding of {expr}
indent({lnum})			Number	indent of line {lnum}
index({list}, {expr} [, {start} [, {ic}]])
				Number	index in {list} where {expr} appears
input({prompt} [, {text} [, {completion}]])
				String	get input from the user
inputdialog({prompt} [, {text} [, {completion}]])
				String	like input() but in a GUI dialog
inputlist({textlist})		Number	let the user pick from a choice list
inputrestore()			Number	restore typeahead
inputsave()			Number	save and clear typeahead
inputsecret({prompt} [, {text}]) String	like input() but hiding the text
insert({list}, {item} [, {idx}]) List	insert {item} in {list} [before {idx}]
invert({expr})			Number	bitwise invert
isdirectory({directory})	Number	|TRUE| if {directory} is a directory
islocked({expr})		Number	|TRUE| if {expr} is locked
isnan({expr})			Number	|TRUE| if {expr} is NaN
items({dict})			List	key-value pairs in {dict}
job_getchannel({job})		Channel	get the channel handle for {job}
job_info([{job}])		Dict	get information about {job}
job_setoptions({job}, {options}) none	set options for {job}
job_start({command} [, {options}])
				Job	start a job
job_status({job})		String	get the status of {job}
job_stop({job} [, {how}])	Number	stop {job}
join({list} [, {sep}])		String	join {list} items into one String
js_decode({string})		any	decode JS style JSON
js_encode({expr})		String	encode JS style JSON
json_decode({string})		any	decode JSON
json_encode({expr})		String	encode JSON
keys({dict})			List	keys in {dict}
len({expr})			Number	the length of {expr}
libcall({lib}, {func}, {arg})	String	call {func} in library {lib} with {arg}
libcallnr({lib}, {func}, {arg})	Number	idem, but return a Number
line({expr})			Number	line nr of cursor, last line or mark
line2byte({lnum})		Number	byte count of line {lnum}
lispindent({lnum})		Number	Lisp indent for line {lnum}
localtime()			Number	current time
log({expr})			Float	natural logarithm (base e) of {expr}
log10({expr})			Float	logarithm of Float {expr} to base 10
luaeval({expr} [, {expr}])	any	evaluate |Lua| expression
map({expr1}, {expr2})		List/Dict  change each item in {expr1} to {expr}
maparg({name} [, {mode} [, {abbr} [, {dict}]]])
				String or Dict
					rhs of mapping {name} in mode {mode}
mapcheck({name} [, {mode} [, {abbr}]])
				String	check for mappings matching {name}
match({expr}, {pat} [, {start} [, {count}]])
				Number	position where {pat} matches in {expr}
matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
				Number	highlight {pattern} with {group}
matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
				Number	highlight positions with {group}
matcharg({nr})			List	arguments of |:match|
matchdelete({id})		Number	delete match identified by {id}
matchend({expr}, {pat} [, {start} [, {count}]])
				Number	position where {pat} ends in {expr}
matchlist({expr}, {pat} [, {start} [, {count}]])
				List	match and submatches of {pat} in {expr}
matchstr({expr}, {pat} [, {start} [, {count}]])
				String	{count}'th match of {pat} in {expr}
matchstrpos({expr}, {pat} [, {start} [, {count}]])
				List	{count}'th match of {pat} in {expr}
max({expr})			Number	maximum value of items in {expr}
min({expr})			Number	minimum value of items in {expr}
mkdir({name} [, {path} [, {prot}]])
				Number	create directory {name}
mode([expr])			String	current editing mode
mzeval({expr})			any	evaluate |MzScheme| expression
nextnonblank({lnum})		Number	line nr of non-blank line >= {lnum}
nr2char({expr} [, {utf8}])	String	single char with ASCII/UTF8 value {expr}
option_restore({list})		none	restore options saved by option_save()
option_save({list})		List	save options values
or({expr}, {expr})		Number	bitwise OR
pathshorten({expr})		String	shorten directory names in a path
perleval({expr})		any	evaluate |Perl| expression
pow({x}, {y})			Float	{x} to the power of {y}
prevnonblank({lnum})		Number	line nr of non-blank line <= {lnum}
printf({fmt}, {expr1}...)	String	format text
pumvisible()			Number	whether popup menu is visible
pyeval({expr})			any	evaluate |Python| expression
py3eval({expr})			any	evaluate |python3| expression
pyxeval({expr})			any	evaluate |python_x| expression
range({expr} [, {max} [, {stride}]])
				List	items from {expr} to {max}
readfile({fname} [, {binary} [, {max}]])
				List	get list of lines from file {fname}
reltime([{start} [, {end}]])	List	get time value
reltimefloat({time})		Float	turn the time value into a Float
reltimestr({time})		String	turn time value into a String
remote_expr({server}, {string} [, {idvar} [, {timeout}]])
				String	send expression
remote_foreground({server})	Number	bring Vim server to the foreground
remote_peek({serverid} [, {retvar}])
				Number	check for reply string
remote_read({serverid} [, {timeout}])
				String	read reply string
remote_send({server}, {string} [, {idvar}])
				String	send key sequence
remote_startserver({name})	none	become server {name}
				String	send key sequence
remove({list}, {idx} [, {end}])	any	remove items {idx}-{end} from {list}
remove({dict}, {key})		any	remove entry {key} from {dict}
rename({from}, {to})		Number	rename (move) file from {from} to {to}
repeat({expr}, {count})		String	repeat {expr} {count} times
resolve({filename})		String	get filename a shortcut points to
reverse({list})			List	reverse {list} in-place
round({expr})			Float	round off {expr}
screenattr({row}, {col})	Number	attribute at screen position
screenchar({row}, {col})	Number	character at screen position
screencol()			Number	current cursor column
screenrow()			Number	current cursor row
search({pattern} [, {flags} [, {stopline} [, {timeout}]]])
				Number	search for {pattern}
searchdecl({name} [, {global} [, {thisblock}]])
				Number	search for variable declaration
searchpair({start}, {middle}, {end} [, {flags} [, {skip} [...]]])
				Number	search for other end of start/end pair
searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [...]]])
				List	search for other end of start/end pair
searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
				List	search for {pattern}
server2client({clientid}, {string})
				Number	send reply string
serverlist()			String	get a list of available servers
setbufline({expr}, {lnum}, {line})
				Number	set line {lnum} to {line} in buffer
					{expr}
setbufvar({expr}, {varname}, {val})
				none	set {varname} in buffer {expr} to {val}
setcharsearch({dict})		Dict	set character search from {dict}
setcmdpos({pos})		Number	set cursor position in command-line
setfperm({fname}, {mode})	Number	set {fname} file permissions to {mode}
setline({lnum}, {line})		Number	set line {lnum} to {line}
setloclist({nr}, {list} [, {action} [, {what}]])
				Number	modify location list using {list}
setmatches({list})		Number	restore a list of matches
setpos({expr}, {list})		Number	set the {expr} position to {list}
setqflist({list} [, {action} [, {what}]])
				Number	modify quickfix list using {list}
setreg({n}, {v} [, {opt}])	Number	set register to value and type
settabvar({nr}, {varname}, {val}) none	set {varname} in tab page {nr} to {val}
settabwinvar({tabnr}, {winnr}, {varname}, {val})
				none	set {varname} in window {winnr} in tab
					page {tabnr} to {val}
setwinvar({nr}, {varname}, {val}) none	set {varname} in window {nr} to {val}
sha256({string})		String	SHA256 checksum of {string}
shellescape({string} [, {special}])
				String	escape {string} for use as shell
					command argument
shiftwidth()			Number	effective value of 'shiftwidth'
simplify({filename})		String	simplify filename as much as possible
sin({expr})			Float	sine of {expr}
sinh({expr})			Float	hyperbolic sine of {expr}
sort({list} [, {func} [, {dict}]])
				List	sort {list}, using {func} to compare
soundfold({word})		String	sound-fold {word}
spellbadword()			String	badly spelled word at cursor
spellsuggest({word} [, {max} [, {capital}]])
				List	spelling suggestions
split({expr} [, {pat} [, {keepempty}]])
				List	make |List| from {pat} separated {expr}
sqrt({expr})			Float	square root of {expr}
str2float({expr})		Float	convert String to Float
str2nr({expr} [, {base}])	Number	convert String to Number
strchars({expr} [, {skipcc}])	Number	character length of the String {expr}
strcharpart({str}, {start} [, {len}])
				String	{len} characters of {str} at {start}
strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
strftime({format} [, {time}])	String	time in specified format
strgetchar({str}, {index})	Number	get char {index} from {str}
stridx({haystack}, {needle} [, {start}])
				Number	index of {needle} in {haystack}
string({expr})			String	String representation of {expr} value
strlen({expr})			Number	length of the String {expr}
strpart({str}, {start} [, {len}])
				String	{len} characters of {str} at {start}
strridx({haystack}, {needle} [, {start}])
				Number	last index of {needle} in {haystack}
strtrans({expr})		String	translate string to make it printable
strwidth({expr})		Number	display cell length of the String {expr}
submatch({nr} [, {list}])	String or List
					specific match in ":s" or substitute()
substitute({expr}, {pat}, {sub}, {flags})
				String	all {pat} in {expr} replaced with {sub}
synID({lnum}, {col}, {trans})	Number	syntax ID at {lnum} and {col}
synIDattr({synID}, {what} [, {mode}])
				String	attribute {what} of syntax ID {synID}
synIDtrans({synID})		Number	translated syntax ID of {synID}
synconcealed({lnum}, {col})	List	info about concealing
synstack({lnum}, {col})		List	stack of syntax IDs at {lnum} and {col}
system({expr} [, {input}])	String	output of shell command/filter {expr}
systemlist({expr} [, {input}])	List	output of shell command/filter {expr}
tabpagebuflist([{arg}])		List	list of buffer numbers in tab page
tabpagenr([{arg}])		Number	number of current or last tab page
tabpagewinnr({tabarg} [, {arg}]) Number	number of current window in tab page
taglist({expr} [, {filename}])	List	list of tags matching {expr}
tagfiles()			List	tags files used
tan({expr})			Float	tangent of {expr}
tanh({expr})			Float	hyperbolic tangent of {expr}
tempname()			String	name for a temporary file
term_dumpdiff({filename}, {filename} [, {options}])
				Number  display difference between two dumps
term_dumpload({filename} [, {options}])
				Number	displaying a screen dump
term_dumpwrite({buf}, {filename} [, {options}])
				none	dump terminal window contents
term_getaltscreen({buf})	Number	get the alternate screen flag
term_getansicolors({buf})	List	get ANSI palette in GUI color mode
term_getattr({attr}, {what})	Number	get the value of attribute {what}
term_getcursor({buf})		List	get the cursor position of a terminal
term_getjob({buf})		Job	get the job associated with a terminal
term_getline({buf}, {row})	String	get a line of text from a terminal
term_getscrolled({buf})		Number	get the scroll count of a terminal
term_getsize({buf})		List	get the size of a terminal
term_getstatus({buf})		String	get the status of a terminal
term_gettitle({buf})		String	get the title of a terminal
term_gettty({buf}, [{input}])	String	get the tty name of a terminal
term_list()			List	get the list of terminal buffers
term_scrape({buf}, {row})	List	get row of a terminal screen
term_sendkeys({buf}, {keys})	none	send keystrokes to a terminal
term_setansicolors({buf}, {colors})
				none	set ANSI palette in GUI color mode
term_setkill({buf}, {how})	none	set signal to stop job in terminal
term_setrestore({buf}, {command}) none	set command to restore terminal
term_setsize({buf}, {rows}, {cols})
				none	set the size of a terminal
term_start({cmd}, {options})	Job	open a terminal window and run a job
term_wait({buf} [, {time}])	Number  wait for screen to be updated
test_alloc_fail({id}, {countdown}, {repeat})
				none	make memory allocation fail
test_autochdir()		none	enable 'autochdir' during startup
test_feedinput()		none	add key sequence to input buffer
test_garbagecollect_now()	none	free memory right now for testing
test_ignore_error({expr})	none	ignore a specific error
test_null_channel()		Channel	null value for testing
test_null_dict()		Dict	null value for testing
test_null_job()			Job	null value for testing
test_null_list()		List	null value for testing
test_null_partial()		Funcref	null value for testing
test_null_string()		String	null value for testing
test_override({expr}, {val})    none	test with Vim internal overrides
test_settime({expr})		none	set current time for testing
timer_info([{id}])		List	information about timers
timer_pause({id}, {pause})	none	pause or unpause a timer
timer_start({time}, {callback} [, {options}])
				Number	create a timer
timer_stop({timer})		none	stop a timer
timer_stopall()			none	stop all timers
tolower({expr})			String	the String {expr} switched to lowercase
toupper({expr})			String	the String {expr} switched to uppercase
tr({src}, {fromstr}, {tostr})	String	translate chars of {src} in {fromstr}
					to chars in {tostr}
trim({text}[, {mask}])		String	trim characters in {mask} from {text}
trunc({expr})			Float	truncate Float {expr}
type({name})			Number	type of variable {name}
undofile({name})		String	undo file name for {name}
undotree()			List	undo file tree
uniq({list} [, {func} [, {dict}]])
				List	remove adjacent duplicates from a list
values({dict})			List	values in {dict}
virtcol({expr})			Number	screen column of cursor or mark
visualmode([expr])		String	last visual mode used
wildmenumode()			Number	whether 'wildmenu' mode is active
win_findbuf({bufnr})		List	find windows containing {bufnr}
win_getid([{win} [, {tab}]])	Number	get window ID for {win} in {tab}
win_gotoid({expr})		Number	go to window with ID {expr}
win_id2tabwin({expr})		List	get tab and window nr from window ID
win_id2win({expr})		Number	get window nr from window ID
win_screenpos({nr})		List	get screen position of window {nr}
winbufnr({nr})			Number	buffer number of window {nr}
wincol()			Number	window column of the cursor
winheight({nr})			Number	height of window {nr}
winline()			Number	window line of the cursor
winnr([{expr}])			Number	number of current window
winrestcmd()			String	returns command to restore window sizes
winrestview({dict})		none	restore view of current window
winsaveview()			Dict	save view of current window
winwidth({nr})			Number	width of window {nr}
wordcount()			Dict	get byte/char/word statistics
writefile({list}, {fname} [, {flags}])
				Number	write list of lines to file {fname}
xor({expr}, {expr})		Number	bitwise XOR


abs({expr})							*abs()*
		Return the absolute value of {expr}.  When {expr} evaluates to
		a |Float| abs() returns a |Float|.  When {expr} can be
		converted to a |Number| abs() returns a |Number|.  Otherwise
		abs() gives an error message and returns -1.
		Examples: >
			echo abs(1.456)
<			1.456  >
			echo abs(-5.456)
<			5.456  >
			echo abs(-4)
<			4
		{only available when compiled with the |+float| feature}


acos({expr})							*acos()*
		Return the arc cosine of {expr} measured in radians, as a
		|Float| in the range of [0, pi].
		{expr} must evaluate to a |Float| or a |Number| in the range
		[-1, 1].
		Examples: >
			:echo acos(0)
<			1.570796 >
			:echo acos(-0.5)
<			2.094395
		{only available when compiled with the |+float| feature}


add({list}, {expr})					*add()*
		Append the item {expr} to |List| {list}.  Returns the
		resulting |List|.  Examples: >
			:let alist = add([1, 2, 3], item)
			:call add(mylist, "woodstock")
<		Note that when {expr} is a |List| it is appended as a single
		item.  Use |extend()| to concatenate |Lists|.
		Use |insert()| to add an item at another position.


and({expr}, {expr})					*and()*
		Bitwise AND on the two arguments.  The arguments are converted
		to a number.  A List, Dict or Float argument causes an error.
		Example: >
			:let flag = and(bits, 0x80)


append({lnum}, {expr})					*append()*
		When {expr} is a |List|: Append each item of the |List| as a
		text line below line {lnum} in the current buffer.
		Otherwise append {expr} as one text line below line {lnum} in
		the current buffer.
		{lnum} can be zero to insert a line before the first one.
		Returns 1 for failure ({lnum} out of range or out of memory),
		0 for success.  Example: >
			:let failed = append(line('$'), "# THE END")
			:let failed = append(0, ["Chapter 1", "the beginning"])
<
							*argc()*
argc()		The result is the number of files in the argument list of the
		current window.  See |arglist|.

							*argidx()*
argidx()	The result is the current index in the argument list.  0 is
		the first file.  argc() - 1 is the last one.  See |arglist|.

							*arglistid()*
arglistid([{winnr} [, {tabnr}]])
		Return the argument list ID.  This is a number which
		identifies the argument list being used.  Zero is used for the
		global argument list.  See |arglist|.
		Return -1 if the arguments are invalid.

		Without arguments use the current window.
		With {winnr} only use this window in the current tab page.
		With {winnr} and {tabnr} use the window in the specified tab
		page.
		{winnr} can be the window number or the |window-ID|.

							*argv()*
argv([{nr}])	The result is the {nr}th file in the argument list of the
		current window.  See |arglist|.  "argv(0)" is the first one.
		Example: >
	:let i = 0
	:while i < argc()
	:  let f = escape(fnameescape(argv(i)), '.')
	:  exe 'amenu Arg.' . f . ' :e ' . f . '<CR>'
	:  let i = i + 1
	:endwhile
<		Without the {nr} argument a |List| with the whole |arglist| is
		returned.

assert_beeps({cmd})					*assert_beeps()*
		Run {cmd} and add an error message to |v:errors| if it does
		NOT produce a beep or visual bell.
		Also see |assert_fails()|.

							*assert_equal()*
assert_equal({expected}, {actual} [, {msg}])
		When {expected} and {actual} are not equal an error message is
		added to |v:errors|.
		There is no automatic conversion, the String "4" is different
		from the Number 4.  And the number 4 is different from the
		Float 4.0.  The value of 'ignorecase' is not used here, case
		always matters.
		When {msg} is omitted an error in the form "Expected
		{expected} but got {actual}" is produced.
		Example: >
	assert_equal('foo', 'bar')
<		Will result in a string to be added to |v:errors|:
	test.vim line 12: Expected 'foo' but got 'bar' ~

							*assert_equalfile()*
assert_equalfile({fname-one}, {fname-two})
		When the files {fname-one} and {fname-two} do not contain
		exactly the same text an error message is added to |v:errors|.
		When {fname-one} or {fname-two} does not exist the error will
		mention that.
		Mainly useful with |terminal-diff|.

assert_exception({error} [, {msg}])			*assert_exception()*
		When v:exception does not contain the string {error} an error
		message is added to |v:errors|.
		This can be used to assert that a command throws an exception.
		Using the error number, followed by a colon, avoids problems
		with translations: >
			try
			  commandthatfails
			  call assert_false(1, 'command should have failed')
			catch
			  call assert_exception('E492:')
			endtry

assert_fails({cmd} [, {error}])					*assert_fails()*
		Run {cmd} and add an error message to |v:errors| if it does
		NOT produce an error.
		When {error} is given it must match in |v:errmsg|.
		Note that beeping is not considered an error, and some failing
		commands only beep.  Use |assert_beeps()| for those.

assert_false({actual} [, {msg}])				*assert_false()*
		When {actual} is not false an error message is added to
		|v:errors|, like with |assert_equal()|.
		A value is false when it is zero. When {actual} is not a
		number the assert fails.
		When {msg} is omitted an error in the form
		"Expected False but got {actual}" is produced.

assert_inrange({lower}, {upper}, {actual} [, {msg}])	 *assert_inrange()*
		This asserts number values.  When {actual}  is lower than
		{lower} or higher than {upper} an error message is added to
		|v:errors|.
		When {msg} is omitted an error in the form
		"Expected range {lower} - {upper}, but got {actual}" is
		produced.

								*assert_match()*
assert_match({pattern}, {actual} [, {msg}])
		When {pattern} does not match {actual} an error message is
		added to |v:errors|.

		{pattern} is used as with |=~|: The matching is always done
		like 'magic' was set and 'cpoptions' is empty, no matter what
		the actual value of 'magic' or 'cpoptions' is.

		{actual} is used as a string, automatic conversion applies.
		Use "^" and "$" to match with the start and end of the text.
		Use both to match the whole text.

		When {msg} is omitted an error in the form
		"Pattern {pattern} does not match {actual}" is produced.
		Example: >
	assert_match('^f.*o$', 'foobar')
<		Will result in a string to be added to |v:errors|:
	test.vim line 12: Pattern '^f.*o$' does not match 'foobar' ~

							*assert_notequal()*
assert_notequal({expected}, {actual} [, {msg}])
		The opposite of `assert_equal()`: add an error message to
		|v:errors| when {expected} and {actual} are equal.

							*assert_notmatch()*
assert_notmatch({pattern}, {actual} [, {msg}])
		The opposite of `assert_match()`: add an error message to
		|v:errors| when {pattern} matches {actual}.

assert_report({msg})					*assert_report()*
		Report a test failure directly, using {msg}.

assert_true({actual} [, {msg}])				*assert_true()*
		When {actual} is not true an error message is added to
		|v:errors|, like with |assert_equal()|.
		A value is TRUE when it is a non-zero number.  When {actual}
		is not a number the assert fails.
		When {msg} is omitted an error in the form "Expected True but
		got {actual}" is produced.

asin({expr})						*asin()*
		Return the arc sine of {expr} measured in radians, as a |Float|
		in the range of [-pi/2, pi/2].
		{expr} must evaluate to a |Float| or a |Number| in the range
		[-1, 1].
		Examples: >
			:echo asin(0.8)
<			0.927295 >
			:echo asin(-0.5)
<			-0.523599
		{only available when compiled with the |+float| feature}


atan({expr})						*atan()*
		Return the principal value of the arc tangent of {expr}, in
		the range [-pi/2, +pi/2] radians, as a |Float|.
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo atan(100)
<			1.560797 >
			:echo atan(-4.01)
<			-1.326405
		{only available when compiled with the |+float| feature}


atan2({expr1}, {expr2})					*atan2()*
		Return the arc tangent of {expr1} / {expr2}, measured in
		radians, as a |Float| in the range [-pi, pi].
		{expr1} and {expr2} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo atan2(-1, 1)
<			-0.785398 >
			:echo atan2(1, -1)
<			2.356194
		{only available when compiled with the |+float| feature}

balloon_show({expr})					*balloon_show()*
		Show {expr} inside the balloon.  For the GUI {expr} is used as
		a string.  For a terminal {expr} can be a list, which contains
		the lines of the balloon.  If {expr} is not a list it will be
		split with |balloon_split()|.

		Example: >
			func GetBalloonContent()
			   " initiate getting the content
			   return ''
			endfunc
			set balloonexpr=GetBalloonContent()

			func BalloonCallback(result)
			  call balloon_show(a:result)
			endfunc
<
		The intended use is that fetching the content of the balloon
		is initiated from 'balloonexpr'.  It will invoke an
		asynchronous method, in which a callback invokes
		balloon_show().  The 'balloonexpr' itself can return an
		empty string or a placeholder.

		When showing a balloon is not possible nothing happens, no
		error message.
		{only available when compiled with the +balloon_eval or
		+balloon_eval_term feature}

balloon_split({msg})					*balloon_split()*
		Split {msg} into lines to be displayed in a balloon.  The
		splits are made for the current window size and optimize to
		show debugger output.
		Returns a |List| with the split lines.
		{only available when compiled with the +balloon_eval_term
		feature}

							*browse()*
browse({save}, {title}, {initdir}, {default})
		Put up a file requester.  This only works when "has("browse")"
		returns |TRUE| (only in some GUI versions).
		The input fields are:
		    {save}	when |TRUE|, select file to write
		    {title}	title for the requester
		    {initdir}	directory to start browsing in
		    {default}	default file name
		When the "Cancel" button is hit, something went wrong, or
		browsing is not possible, an empty string is returned.

							*browsedir()*
browsedir({title}, {initdir})
		Put up a directory requester.  This only works when
		"has("browse")" returns |TRUE| (only in some GUI versions).
		On systems where a directory browser is not supported a file
		browser is used.  In that case: select a file in the directory
		to be used.
		The input fields are:
		    {title}	title for the requester
		    {initdir}	directory to start browsing in
		When the "Cancel" button is hit, something went wrong, or
		browsing is not possible, an empty string is returned.

bufexists({expr})					*bufexists()*
		The result is a Number, which is |TRUE| if a buffer called
		{expr} exists.
		If the {expr} argument is a number, buffer numbers are used.
		Number zero is the alternate buffer for the current window.

		If the {expr} argument is a string it must match a buffer name
		exactly.  The name can be:
		- Relative to the current directory.
		- A full path.
		- The name of a buffer with 'buftype' set to "nofile".
		- A URL name.
		Unlisted buffers will be found.
		Note that help files are listed by their short name in the
		output of |:buffers|, but bufexists() requires using their
		long name to be able to find them.
		bufexists() may report a buffer exists, but to use the name
		with a |:buffer| command you may need to use |expand()|.  Esp
		for MS-Windows 8.3 names in the form "c:\DOCUME~1"
		Use "bufexists(0)" to test for the existence of an alternate
		file name.
							*buffer_exists()*
		Obsolete name: buffer_exists().

buflisted({expr})					*buflisted()*
		The result is a Number, which is |TRUE| if a buffer called
		{expr} exists and is listed (has the 'buflisted' option set).
		The {expr} argument is used like with |bufexists()|.

bufloaded({expr})					*bufloaded()*
		The result is a Number, which is |TRUE| if a buffer called
		{expr} exists and is loaded (shown in a window or hidden).
		The {expr} argument is used like with |bufexists()|.

bufname({expr})						*bufname()*
		The result is the name of a buffer, as it is displayed by the
		":ls" command.
		If {expr} is a Number, that buffer number's name is given.
		Number zero is the alternate buffer for the current window.
		If {expr} is a String, it is used as a |file-pattern| to match
		with the buffer names.  This is always done like 'magic' is
		set and 'cpoptions' is empty.  When there is more than one
		match an empty string is returned.
		"" or "%" can be used for the current buffer, "#" for the
		alternate buffer.
		A full match is preferred, otherwise a match at the start, end
		or middle of the buffer name is accepted.  If you only want a
		full match then put "^" at the start and "$" at the end of the
		pattern.
		Listed buffers are found first.  If there is a single match
		with a listed buffer, that one is returned.  Next unlisted
		buffers are searched for.
		If the {expr} is a String, but you want to use it as a buffer
		number, force it to be a Number by adding zero to it: >
			:echo bufname("3" + 0)
<		If the buffer doesn't exist, or doesn't have a name, an empty
		string is returned. >
	bufname("#")		alternate buffer name
	bufname(3)		name of buffer 3
	bufname("%")		name of current buffer
	bufname("file2")	name of buffer where "file2" matches.
<							*buffer_name()*
		Obsolete name: buffer_name().

							*bufnr()*
bufnr({expr} [, {create}])
		The result is the number of a buffer, as it is displayed by
		the ":ls" command.  For the use of {expr}, see |bufname()|
		above.
		If the buffer doesn't exist, -1 is returned.  Or, if the
		{create} argument is present and not zero, a new, unlisted,
		buffer is created and its number is returned.
		bufnr("$") is the last buffer: >
	:let last_buffer = bufnr("$")
<		The result is a Number, which is the highest buffer number
		of existing buffers.  Note that not all buffers with a smaller
		number necessarily exist, because ":bwipeout" may have removed
		them.  Use bufexists() to test for the existence of a buffer.
							*buffer_number()*
		Obsolete name: buffer_number().
							*last_buffer_nr()*
		Obsolete name for bufnr("$"): last_buffer_nr().

bufwinid({expr})					*bufwinid()*
		The result is a Number, which is the |window-ID| of the first
		window associated with buffer {expr}.  For the use of {expr},
		see |bufname()| above.  If buffer {expr} doesn't exist or
		there is no such window, -1 is returned.  Example: >

	echo "A window containing buffer 1 is " . (bufwinid(1))
<
		Only deals with the current tab page.

bufwinnr({expr})					*bufwinnr()*
		The result is a Number, which is the number of the first
		window associated with buffer {expr}.  For the use of {expr},
		see |bufname()| above.  If buffer {expr} doesn't exist or
		there is no such window, -1 is returned.  Example: >

	echo "A window containing buffer 1 is " . (bufwinnr(1))

<		The number can be used with |CTRL-W_w| and ":wincmd w"
		|:wincmd|.
		Only deals with the current tab page.

byte2line({byte})					*byte2line()*
		Return the line number that contains the character at byte
		count {byte} in the current buffer.  This includes the
		end-of-line character, depending on the 'fileformat' option
		for the current buffer.  The first character has byte count
		one.
		Also see |line2byte()|, |go| and |:goto|.
		{not available when compiled without the |+byte_offset|
		feature}

byteidx({expr}, {nr})					*byteidx()*
		Return byte index of the {nr}'th character in the string
		{expr}.  Use zero for the first character, it returns zero.
		This function is only useful when there are multibyte
		characters, otherwise the returned value is equal to {nr}.
		Composing characters are not counted separately, their byte
		length is added to the preceding base character.  See
		|byteidxcomp()| below for counting composing characters
		separately.
		Example : >
			echo matchstr(str, ".", byteidx(str, 3))
<		will display the fourth character.  Another way to do the
		same: >
			let s = strpart(str, byteidx(str, 3))
			echo strpart(s, 0, byteidx(s, 1))
<		Also see |strgetchar()| and |strcharpart()|.

		If there are less than {nr} characters -1 is returned.
		If there are exactly {nr} characters the length of the string
		in bytes is returned.

byteidxcomp({expr}, {nr})					*byteidxcomp()*
		Like byteidx(), except that a composing character is counted
		as a separate character.  Example: >
			let s = 'e' . nr2char(0x301)
			echo byteidx(s, 1)
			echo byteidxcomp(s, 1)
			echo byteidxcomp(s, 2)
<		The first and third echo result in 3 ('e' plus composing
		character is 3 bytes), the second echo results in 1 ('e' is
		one byte).
		Only works different from byteidx() when 'encoding' is set to
		a Unicode encoding.

call({func}, {arglist} [, {dict}])			*call()* *E699*
		Call function {func} with the items in |List| {arglist} as
		arguments.
		{func} can either be a |Funcref| or the name of a function.
		a:firstline and a:lastline are set to the cursor line.
		Returns the return value of the called function.
		{dict} is for functions with the "dict" attribute.  It will be
		used to set the local variable "self". |Dictionary-function|

ceil({expr})							*ceil()*
		Return the smallest integral value greater than or equal to
		{expr} as a |Float| (round up).
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			echo ceil(1.456)
<			2.0  >
			echo ceil(-5.456)
<			-5.0  >
			echo ceil(4.0)
<			4.0
		{only available when compiled with the |+float| feature}

ch_canread({handle})						*ch_canread()*
		Return non-zero when there is something to read from {handle}.
		{handle} can be a Channel or a Job that has a Channel.

		This is useful to read from a channel at a convenient time,
		e.g. from a timer.

		Note that messages are dropped when the channel does not have
		a callback.  Add a close callback to avoid that.

		{only available when compiled with the |+channel| feature}

ch_close({handle})						*ch_close()*
		Close {handle}.  See |channel-close|.
		{handle} can be a Channel or a Job that has a Channel.
		A close callback is not invoked.

		{only available when compiled with the |+channel| feature}

ch_close_in({handle})						*ch_close_in()*
		Close the "in" part of {handle}.  See |channel-close-in|.
		{handle} can be a Channel or a Job that has a Channel.
		A close callback is not invoked.

		{only available when compiled with the |+channel| feature}

ch_evalexpr({handle}, {expr} [, {options}])			*ch_evalexpr()*
		Send {expr} over {handle}.  The {expr} is encoded
		according to the type of channel.  The function cannot be used
		with a raw channel.  See |channel-use|.
		{handle} can be a Channel or a Job that has a Channel.
								*E917*
		{options} must be a Dictionary.  It must not have a "callback"
		entry.  It can have a "timeout" entry to specify the timeout
		for this specific request.

		ch_evalexpr() waits for a response and returns the decoded
		expression.  When there is an error or timeout it returns an
		empty string.

		{only available when compiled with the |+channel| feature}

ch_evalraw({handle}, {string} [, {options}])		*ch_evalraw()*
		Send {string} over {handle}.
		{handle} can be a Channel or a Job that has a Channel.

		Works like |ch_evalexpr()|, but does not encode the request or
		decode the response.  The caller is responsible for the
		correct contents.  Also does not add a newline for a channel
		in NL mode, the caller must do that.  The NL in the response
		is removed.
		Note that Vim does not know when the text received on a raw
		channel is complete, it may only return the first part and you
		need to use ch_readraw() to fetch the rest.
		See |channel-use|.

		{only available when compiled with the |+channel| feature}

ch_getbufnr({handle}, {what})				 *ch_getbufnr()*
		Get the buffer number that {handle} is using for {what}.
		{handle} can be a Channel or a Job that has a Channel.
		{what} can be "err" for stderr, "out" for stdout or empty for
		socket output.
		Returns -1 when there is no buffer.
		{only available when compiled with the |+channel| feature}

ch_getjob({channel})						*ch_getjob()*
		Get the Job associated with {channel}.
		If there is no job calling |job_status()| on the returned Job
		will result in "fail".

		{only available when compiled with the |+channel| and
		|+job| features}

ch_info({handle})						*ch_info()*
		Returns a Dictionary with information about {handle}.  The
		items are:
		   "id"		  number of the channel
		   "status"	  "open", "buffered" or "closed", like
				  ch_status()
		When opened with ch_open():
		   "hostname"	  the hostname of the address
		   "port"	  the port of the address
		   "sock_status"  "open" or "closed"
		   "sock_mode"	  "NL", "RAW", "JSON" or "JS"
		   "sock_io"	  "socket"
		   "sock_timeout" timeout in msec
		When opened with job_start():
		   "out_status"	  "open", "buffered" or "closed"
		   "out_mode"	  "NL", "RAW", "JSON" or "JS"
		   "out_io"	  "null", "pipe", "file" or "buffer"
		   "out_timeout"  timeout in msec
		   "err_status"	  "open", "buffered" or "closed"
		   "err_mode"	  "NL", "RAW", "JSON" or "JS"
		   "err_io"	  "out", "null", "pipe", "file" or "buffer"
		   "err_timeout"  timeout in msec
		   "in_status"	  "open" or "closed"
		   "in_mode"	  "NL", "RAW", "JSON" or "JS"
		   "in_io"	  "null", "pipe", "file" or "buffer"
		   "in_timeout"	  timeout in msec

ch_log({msg} [, {handle}])					*ch_log()*
		Write {msg} in the channel log file, if it was opened with
		|ch_logfile()|.
		When {handle} is passed the channel number is used for the
		message.
		{handle} can be a Channel or a Job that has a Channel.  The
		Channel must be open for the channel number to be used.

ch_logfile({fname} [, {mode}])					*ch_logfile()*
		Start logging channel activity to {fname}.
		When {fname} is an empty string: stop logging.

		When {mode} is omitted or "a" append to the file.
		When {mode} is "w" start with an empty file.

		The file is flushed after every message, on Unix you can use
		"tail -f" to see what is going on in real time.

		This function is not available in the |sandbox|.
		NOTE: the channel communication is stored in the file, be
		aware that this may contain confidential and privacy sensitive
		information, e.g. a password you type in a terminal window.


ch_open({address} [, {options}])				*ch_open()*
		Open a channel to {address}.  See |channel|.
		Returns a Channel.  Use |ch_status()| to check for failure.

		{address} has the form "hostname:port", e.g.,
		"localhost:8765".

		If {options} is given it must be a |Dictionary|.
		See |channel-open-options|.

		{only available when compiled with the |+channel| feature}

ch_read({handle} [, {options}])					*ch_read()*
		Read from {handle} and return the received message.
		{handle} can be a Channel or a Job that has a Channel.
		For a NL channel this waits for a NL to arrive, except when
		there is nothing more to read (channel was closed).
		See |channel-more|.
		{only available when compiled with the |+channel| feature}

ch_readraw({handle} [, {options}])			*ch_readraw()*
		Like ch_read() but for a JS and JSON channel does not decode
		the message.  For a NL channel it does not block waiting for
		the NL to arrive, but otherwise works like ch_read().
		See |channel-more|.
		{only available when compiled with the |+channel| feature}

ch_sendexpr({handle}, {expr} [, {options}])			*ch_sendexpr()*
		Send {expr} over {handle}.  The {expr} is encoded
		according to the type of channel.  The function cannot be used
		with a raw channel.
		See |channel-use|.				*E912*
		{handle} can be a Channel or a Job that has a Channel.

		{only available when compiled with the |+channel| feature}

ch_sendraw({handle}, {string} [, {options}])		*ch_sendraw()*
		Send {string} over {handle}.
		Works like |ch_sendexpr()|, but does not encode the request or
		decode the response.  The caller is responsible for the
		correct contents.  Also does not add a newline for a channel
		in NL mode, the caller must do that.  The NL in the response
		is removed.
		See |channel-use|.

		{only available when compiled with the |+channel| feature}

ch_setoptions({handle}, {options})			*ch_setoptions()*
		Set options on {handle}:
			"callback"	the channel callback
			"timeout"	default read timeout in msec
			"mode"		mode for the whole channel
		See |ch_open()| for more explanation.
		{handle} can be a Channel or a Job that has a Channel.

		Note that changing the mode may cause queued messages to be
		lost.

		These options cannot be changed:
			"waittime"	only applies to |ch_open()|

ch_status({handle} [, {options}])				*ch_status()*
		Return the status of {handle}:
			"fail"		failed to open the channel
			"open"		channel can be used
			"buffered"	channel can be read, not written to
			"closed"	channel can not be used
		{handle} can be a Channel or a Job that has a Channel.
		"buffered" is used when the channel was closed but there is
		still data that can be obtained with |ch_read()|.

		If {options} is given it can contain a "part" entry to specify
		the part of the channel to return the status for: "out" or
		"err".  For example, to get the error status: >
			ch_status(job, {"part": "err"})
<
changenr()						*changenr()*
		Return the number of the most recent change.  This is the same
		number as what is displayed with |:undolist| and can be used
		with the |:undo| command.
		When a change was made it is the number of that change.  After
		redo it is the number of the redone change.  After undo it is
		one less than the number of the undone change.

char2nr({expr} [, {utf8}])					*char2nr()*
		Return number value of the first char in {expr}.  Examples: >
			char2nr(" ")		returns 32
			char2nr("ABC")		returns 65
<		When {utf8} is omitted or zero, the current 'encoding' is used.
		Example for "utf-8": >
			char2nr("á")		returns 225
			char2nr("á"[0])		returns 195
<		With {utf8} set to 1, always treat as utf-8 characters.
		A combining character is a separate character.
		|nr2char()| does the opposite.

cindent({lnum})						*cindent()*
		Get the amount of indent for line {lnum} according the C
		indenting rules, as with 'cindent'.
		The indent is counted in spaces, the value of 'tabstop' is
		relevant.  {lnum} is used just like in |getline()|.
		When {lnum} is invalid or Vim was not compiled the |+cindent|
		feature, -1 is returned.
		See |C-indenting|.

clearmatches()						*clearmatches()*
		Clears all matches previously defined by |matchadd()| and the
		|:match| commands.

							*col()*
col({expr})	The result is a Number, which is the byte index of the column
		position given with {expr}.  The accepted positions are:
		    .	    the cursor position
		    $	    the end of the cursor line (the result is the
			    number of bytes in the cursor line plus one)
		    'x	    position of mark x (if the mark is not set, 0 is
			    returned)
		    v       In Visual mode: the start of the Visual area (the
			    cursor is the end).  When not in Visual mode
			    returns the cursor position.  Differs from |'<| in
			    that it's updated right away.
		Additionally {expr} can be [lnum, col]: a |List| with the line
		and column number. Most useful when the column is "$", to get
		the last column of a specific line.  When "lnum" or "col" is
		out of range then col() returns zero.
		To get the line number use |line()|.  To get both use
		|getpos()|.
		For the screen column position use |virtcol()|.
		Note that only marks in the current file can be used.
		Examples: >
			col(".")		column of cursor
			col("$")		length of cursor line plus one
			col("'t")		column of mark t
			col("'" . markname)	column of mark markname
<		The first column is 1.  0 is returned for an error.
		For an uppercase mark the column may actually be in another
		buffer.
		For the cursor position, when 'virtualedit' is active, the
		column is one higher if the cursor is after the end of the
		line.  This can be used to obtain the column in Insert mode: >
			:imap <F2> <C-O>:let save_ve = &ve<CR>
				\<C-O>:set ve=all<CR>
				\<C-O>:echo col(".") . "\n" <Bar>
				\let &ve = save_ve<CR>
<

complete({startcol}, {matches})			*complete()* *E785*
		Set the matches for Insert mode completion.
		Can only be used in Insert mode.  You need to use a mapping
		with CTRL-R = (see |i_CTRL-R|).  It does not work after CTRL-O
		or with an expression mapping.
		{startcol} is the byte offset in the line where the completed
		text start.  The text up to the cursor is the original text
		that will be replaced by the matches.  Use col('.') for an
		empty string.  "col('.') - 1" will replace one character by a
		match.
		{matches} must be a |List|.  Each |List| item is one match.
		See |complete-items| for the kind of items that are possible.
		Note that the after calling this function you need to avoid
		inserting anything that would cause completion to stop.
		The match can be selected with CTRL-N and CTRL-P as usual with
		Insert mode completion.  The popup menu will appear if
		specified, see |ins-completion-menu|.
		Example: >
	inoremap <F5> <C-R>=ListMonths()<CR>

	func! ListMonths()
	  call complete(col('.'), ['January', 'February', 'March',
		\ 'April', 'May', 'June', 'July', 'August', 'September',
		\ 'October', 'November', 'December'])
	  return ''
	endfunc
<		This isn't very useful, but it shows how it works.  Note that
		an empty string is returned to avoid a zero being inserted.

complete_add({expr})				*complete_add()*
		Add {expr} to the list of matches.  Only to be used by the
		function specified with the 'completefunc' option.
		Returns 0 for failure (empty string or out of memory),
		1 when the match was added, 2 when the match was already in
		the list.
		See |complete-functions| for an explanation of {expr}.  It is
		the same as one item in the list that 'omnifunc' would return.

complete_check()				*complete_check()*
		Check for a key typed while looking for completion matches.
		This is to be used when looking for matches takes some time.
		Returns |TRUE| when searching for matches is to be aborted,
		zero otherwise.
		Only to be used by the function specified with the
		'completefunc' option.

						*confirm()*
confirm({msg} [, {choices} [, {default} [, {type}]]])
		Confirm() offers the user a dialog, from which a choice can be
		made.  It returns the number of the choice.  For the first
		choice this is 1.
		Note: confirm() is only supported when compiled with dialog
		support, see |+dialog_con| and |+dialog_gui|.

		{msg} is displayed in a |dialog| with {choices} as the
		alternatives.  When {choices} is missing or empty, "&OK" is
		used (and translated).
		{msg} is a String, use '\n' to include a newline.  Only on
		some systems the string is wrapped when it doesn't fit.

		{choices} is a String, with the individual choices separated
		by '\n', e.g. >
			confirm("Save changes?", "&Yes\n&No\n&Cancel")
<		The letter after the '&' is the shortcut key for that choice.
		Thus you can type 'c' to select "Cancel".  The shortcut does
		not need to be the first letter: >
			confirm("file has been modified", "&Save\nSave &All")
<		For the console, the first letter of each choice is used as
		the default shortcut key.

		The optional {default} argument is the number of the choice
		that is made if the user hits <CR>.  Use 1 to make the first
		choice the default one.  Use 0 to not set a default.  If
		{default} is omitted, 1 is used.

		The optional {type} argument gives the type of dialog.  This
		is only used for the icon of the GTK, Mac, Motif and Win32
		GUI.  It can be one of these values: "Error", "Question",
		"Info", "Warning" or "Generic".  Only the first character is
		relevant.  When {type} is omitted, "Generic" is used.

		If the user aborts the dialog by pressing <Esc>, CTRL-C,
		or another valid interrupt key, confirm() returns 0.

		An example: >
   :let choice = confirm("What do you want?", "&Apples\n&Oranges\n&Bananas", 2)
   :if choice == 0
   :	echo "make up your mind!"
   :elseif choice == 3
   :	echo "tasteful"
   :else
   :	echo "I prefer bananas myself."
   :endif
<		In a GUI dialog, buttons are used.  The layout of the buttons
		depends on the 'v' flag in 'guioptions'.  If it is included,
		the buttons are always put vertically.  Otherwise,  confirm()
		tries to put the buttons in one horizontal line.  If they
		don't fit, a vertical layout is used anyway.  For some systems
		the horizontal layout is always used.

							*copy()*
copy({expr})	Make a copy of {expr}.  For Numbers and Strings this isn't
		different from using {expr} directly.
		When {expr} is a |List| a shallow copy is created.  This means
		that the original |List| can be changed without changing the
		copy, and vice versa.  But the items are identical, thus
		changing an item changes the contents of both |Lists|.
		A |Dictionary| is copied in a similar way as a |List|.
		Also see |deepcopy()|.

cos({expr})						*cos()*
		Return the cosine of {expr}, measured in radians, as a |Float|.
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo cos(100)
<			0.862319 >
			:echo cos(-4.01)
<			-0.646043
		{only available when compiled with the |+float| feature}


cosh({expr})						*cosh()*
		Return the hyperbolic cosine of {expr} as a |Float| in the range
		[1, inf].
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo cosh(0.5)
<			1.127626 >
			:echo cosh(-0.5)
<			-1.127626
		{only available when compiled with the |+float| feature}


count({comp}, {expr} [, {ic} [, {start}]])			*count()*
		Return the number of times an item with value {expr} appears
		in |String|, |List| or |Dictionary| {comp}.

		If {start} is given then start with the item with this index.
		{start} can only be used with a |List|.

		When {ic} is given and it's |TRUE| then case is ignored.

		When {comp} is a string then the number of not overlapping
		occurrences of {expr} is returned. Zero is returned when
		{expr} is an empty string.

							*cscope_connection()*
cscope_connection([{num} , {dbpath} [, {prepend}]])
		Checks for the existence of a |cscope| connection.  If no
		parameters are specified, then the function returns:
			0, if cscope was not available (not compiled in), or
			   if there are no cscope connections;
			1, if there is at least one cscope connection.

		If parameters are specified, then the value of {num}
		determines how existence of a cscope connection is checked:

		{num}	Description of existence check
		-----	------------------------------
		0	Same as no parameters (e.g., "cscope_connection()").
		1	Ignore {prepend}, and use partial string matches for
			{dbpath}.
		2	Ignore {prepend}, and use exact string matches for
			{dbpath}.
		3	Use {prepend}, use partial string matches for both
			{dbpath} and {prepend}.
		4	Use {prepend}, use exact string matches for both
			{dbpath} and {prepend}.

		Note: All string comparisons are case sensitive!

		Examples.  Suppose we had the following (from ":cs show"): >

  # pid    database name			prepend path
  0 27664  cscope.out				/usr/local
<
		Invocation					Return Val ~
		----------					---------- >
		cscope_connection()					1
		cscope_connection(1, "out")				1
		cscope_connection(2, "out")				0
		cscope_connection(3, "out")				0
		cscope_connection(3, "out", "local")			1
		cscope_connection(4, "out")				0
		cscope_connection(4, "out", "local")			0
		cscope_connection(4, "cscope.out", "/usr/local")	1
<
cursor({lnum}, {col} [, {off}])				*cursor()*
cursor({list})
		Positions the cursor at the column (byte count) {col} in the
		line {lnum}.  The first column is one.

		When there is one argument {list} this is used as a |List|
		with two, three or four item:
			[{lnum}, {col}]
			[{lnum}, {col}, {off}]
			[{lnum}, {col}, {off}, {curswant}]
		This is like the return value of |getpos()| or |getcurpos()|,
		but without the first item.

		Does not change the jumplist.
		If {lnum} is greater than the number of lines in the buffer,
		the cursor will be positioned at the last line in the buffer.
		If {lnum} is zero, the cursor will stay in the current line.
		If {col} is greater than the number of bytes in the line,
		the cursor will be positioned at the last character in the
		line.
		If {col} is zero, the cursor will stay in the current column.
		If {curswant} is given it is used to set the preferred column
		for vertical movement.  Otherwise {col} is used.

		When 'virtualedit' is used {off} specifies the offset in
		screen columns from the start of the character.  E.g., a
		position within a <Tab> or after the last character.
		Returns 0 when the position could be set, -1 otherwise.


deepcopy({expr} [, {noref}])				*deepcopy()* *E698*
		Make a copy of {expr}.  For Numbers and Strings this isn't
		different from using {expr} directly.
		When {expr} is a |List| a full copy is created.  This means
		that the original |List| can be changed without changing the
		copy, and vice versa.  When an item is a |List| or
		|Dictionary|, a copy for it is made, recursively.  Thus
		changing an item in the copy does not change the contents of
		the original |List|.
		A |Dictionary| is copied in a similar way as a |List|.
		When {noref} is omitted or zero a contained |List| or
		|Dictionary| is only copied once.  All references point to
		this single copy.  With {noref} set to 1 every occurrence of a
		|List| or |Dictionary| results in a new copy.  This also means
		that a cyclic reference causes deepcopy() to fail.
								*E724*
		Nesting is possible up to 100 levels.  When there is an item
		that refers back to a higher level making a deep copy with
		{noref} set to 1 will fail.
		Also see |copy()|.

delete({fname} [, {flags}])					*delete()*
		Without {flags} or with {flags} empty: Deletes the file by the
		name {fname}.  This also works when {fname} is a symbolic link.

		When {flags} is "d": Deletes the directory by the name
		{fname}.  This fails when directory {fname} is not empty.

		When {flags} is "rf": Deletes the directory by the name
		{fname} and everything in it, recursively.  BE CAREFUL!
		Note: on MS-Windows it is not possible to delete a directory
		that is being used.

		A symbolic link itself is deleted, not what it points to.

		The result is a Number, which is 0 if the delete operation was
		successful and -1 when the deletion failed or partly failed.

		Use |remove()| to delete an item from a |List|.
		To delete a line from the buffer use |:delete|.  Use |:exe|
		when the line number is in a variable.

							*did_filetype()*
did_filetype()	Returns |TRUE| when autocommands are being executed and the
		FileType event has been triggered at least once.  Can be used
		to avoid triggering the FileType event again in the scripts
		that detect the file type. |FileType|
		Returns |FALSE| when `:setf FALLBACK` was used.
		When editing another file, the counter is reset, thus this
		really checks if the FileType event has been triggered for the
		current buffer.  This allows an autocommand that starts
		editing another buffer to set 'filetype' and load a syntax
		file.

diff_filler({lnum})					*diff_filler()*
		Returns the number of filler lines above line {lnum}.
		These are the lines that were inserted at this point in
		another diff'ed window.  These filler lines are shown in the
		display but don't exist in the buffer.
		{lnum} is used like with |getline()|.  Thus "." is the current
		line, "'m" mark m, etc.
		Returns 0 if the current window is not in diff mode.

diff_hlID({lnum}, {col})				*diff_hlID()*
		Returns the highlight ID for diff mode at line {lnum} column
		{col} (byte index).  When the current line does not have a
		diff change zero is returned.
		{lnum} is used like with |getline()|.  Thus "." is the current
		line, "'m" mark m, etc.
		{col} is 1 for the leftmost column, {lnum} is 1 for the first
		line.
		The highlight ID can be used with |synIDattr()| to obtain
		syntax information about the highlighting.

empty({expr})						*empty()*
		Return the Number 1 if {expr} is empty, zero otherwise.
		- A |List| or |Dictionary| is empty when it does not have any
		  items.
		- A String is empty when its length is zero.
		- A Number and Float is empty when its value is zero.
		- |v:false|, |v:none| and |v:null| are empty, |v:true| is not.
		- A Job is empty when it failed to start.
		- A Channel is empty when it is closed.

		For a long |List| this is much faster than comparing the
		length with zero.

escape({string}, {chars})				*escape()*
		Escape the characters in {chars} that occur in {string} with a
		backslash.  Example: >
			:echo escape('c:\program files\vim', ' \')
<		results in: >
			c:\\program\ files\\vim
<		Also see |shellescape()| and |fnameescape()|.

							*eval()*
eval({string})	Evaluate {string} and return the result.  Especially useful to
		turn the result of |string()| back into the original value.
		This works for Numbers, Floats, Strings and composites of
		them.  Also works for |Funcref|s that refer to existing
		functions.

eventhandler()						*eventhandler()*
		Returns 1 when inside an event handler.  That is that Vim got
		interrupted while waiting for the user to type a character,
		e.g., when dropping a file on Vim.  This means interactive
		commands cannot be used.  Otherwise zero is returned.

executable({expr})					*executable()*
		This function checks if an executable with the name {expr}
		exists.  {expr} must be the name of the program without any
		arguments.
		executable() uses the value of $PATH and/or the normal
		searchpath for programs.		*PATHEXT*
		On MS-DOS and MS-Windows the ".exe", ".bat", etc. can
		optionally be included.  Then the extensions in $PATHEXT are
		tried.  Thus if "foo.exe" does not exist, "foo.exe.bat" can be
		found.  If $PATHEXT is not set then ".exe;.com;.bat;.cmd" is
		used.  A dot by itself can be used in $PATHEXT to try using
		the name without an extension.  When 'shell' looks like a
		Unix shell, then the name is also tried without adding an
		extension.
		On MS-DOS and MS-Windows it only checks if the file exists and
		is not a directory, not if it's really executable.
		On MS-Windows an executable in the same directory as Vim is
		always found.  Since this directory is added to $PATH it
		should also work to execute it |win32-PATH|.
		The result is a Number:
			1	exists
			0	does not exist
			-1	not implemented on this system

execute({command} [, {silent}])					*execute()*
		Execute an Ex command or commands and return the output as a
		string.
		{command} can be a string or a List.  In case of a List the
		lines are executed one by one.
		This is equivalent to: >
			redir => var
			{command}
			redir END
<
		The optional {silent} argument can have these values:
			""		no `:silent` used
			"silent"	`:silent` used
			"silent!"	`:silent!` used
		The default is "silent".  Note that with "silent!", unlike
		`:redir`, error messages are dropped.  When using an external
		command the screen may be messed up, use `system()` instead.
							*E930*
		It is not possible to use `:redir` anywhere in {command}.

		To get a list of lines use |split()| on the result: >
			split(execute('args'), "\n")

<		When used recursively the output of the recursive call is not
		included in the output of the higher level call.

exepath({expr})						*exepath()*
		If {expr} is an executable and is either an absolute path, a
		relative path or found in $PATH, return the full path.
		Note that the current directory is used when {expr} starts
		with "./", which may be a problem for Vim: >
			echo exepath(v:progpath)
<		If {expr} cannot be found in $PATH or is not executable then
		an empty string is returned.

							*exists()*
exists({expr})	The result is a Number, which is |TRUE| if {expr} is defined,
		zero otherwise.

		For checking for a supported feature use |has()|.
		For checking if a file exists use |filereadable()|.

		The {expr} argument is a string, which contains one of these:
			&option-name	Vim option (only checks if it exists,
					not if it really works)
			+option-name	Vim option that works.
			$ENVNAME	environment variable (could also be
					done by comparing with an empty
					string)
			*funcname	built-in function (see |functions|)
					or user defined function (see
					|user-functions|). Also works for a
					variable that is a Funcref.
			varname		internal variable (see
					|internal-variables|).  Also works
					for |curly-braces-names|, |Dictionary|
					entries, |List| items, etc.  Beware
					that evaluating an index may cause an
					error message for an invalid
					expression.  E.g.: >
					   :let l = [1, 2, 3]
					   :echo exists("l[5]")
<					   0 >
					   :echo exists("l[xx]")
<					   E121: Undefined variable: xx
					   0
			:cmdname	Ex command: built-in command, user
					command or command modifier |:command|.
					Returns:
					1  for match with start of a command
					2  full match with a command
					3  matches several user commands
					To check for a supported command
					always check the return value to be 2.
			:2match		The |:2match| command.
			:3match		The |:3match| command.
			#event		autocommand defined for this event
			#event#pattern	autocommand defined for this event and
					pattern (the pattern is taken
					literally and compared to the
					autocommand patterns character by
					character)
			#group		autocommand group exists
			#group#event	autocommand defined for this group and
					event.
			#group#event#pattern
					autocommand defined for this group,
					event and pattern.
			##event		autocommand for this event is
					supported.

		Examples: >
			exists("&shortname")
			exists("$HOSTNAME")
			exists("*strftime")
			exists("*s:MyFunc")
			exists("bufcount")
			exists(":Make")
			exists("#CursorHold")
			exists("#BufReadPre#*.gz")
			exists("#filetypeindent")
			exists("#filetypeindent#FileType")
			exists("#filetypeindent#FileType#*")
			exists("##ColorScheme")
<		There must be no space between the symbol (&/$/*/#) and the
		name.
		There must be no extra characters after the name, although in
		a few cases this is ignored.  That may become more strict in
		the future, thus don't count on it!
		Working example: >
			exists(":make")
<		NOT working example: >
			exists(":make install")

<		Note that the argument must be a string, not the name of the
		variable itself.  For example: >
			exists(bufcount)
<		This doesn't check for existence of the "bufcount" variable,
		but gets the value of "bufcount", and checks if that exists.

exp({expr})						*exp()*
		Return the exponential of {expr} as a |Float| in the range
		[0, inf].
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo exp(2)
<			7.389056 >
			:echo exp(-1)
<			0.367879
		{only available when compiled with the |+float| feature}


expand({expr} [, {nosuf} [, {list}]])				*expand()*
		Expand wildcards and the following special keywords in {expr}.
		'wildignorecase' applies.

		If {list} is given and it is |TRUE|, a List will be returned.
		Otherwise the result is a String and when there are several
		matches, they are separated by <NL> characters.  [Note: in
		version 5.0 a space was used, which caused problems when a
		file name contains a space]

		If the expansion fails, the result is an empty string.  A name
		for a non-existing file is not included, unless {expr} does
		not start with '%', '#' or '<', see below.

		When {expr} starts with '%', '#' or '<', the expansion is done
		like for the |cmdline-special| variables with their associated
		modifiers.  Here is a short overview:

			%		current file name
			#		alternate file name
			#n		alternate file name n
			<cfile>		file name under the cursor
			<afile>		autocmd file name
			<abuf>		autocmd buffer number (as a String!)
			<amatch>	autocmd matched name
			<sfile>		sourced script file or function name
			<slnum>		sourced script file line number
			<cword>		word under the cursor
			<cWORD>		WORD under the cursor
			<client>	the {clientid} of the last received
					message |server2client()|
		Modifiers:
			:p		expand to full path
			:h		head (last path component removed)
			:t		tail (last path component only)
			:r		root (one extension removed)
			:e		extension only

		Example: >
			:let &tags = expand("%:p:h") . "/tags"
<		Note that when expanding a string that starts with '%', '#' or
		'<', any following text is ignored.  This does NOT work: >
			:let doesntwork = expand("%:h.bak")
<		Use this: >
			:let doeswork = expand("%:h") . ".bak"
<		Also note that expanding "<cfile>" and others only returns the
		referenced file name without further expansion.  If "<cfile>"
		is "~/.cshrc", you need to do another expand() to have the
		"~/" expanded into the path of the home directory: >
			:echo expand(expand("<cfile>"))
<
		There cannot be white space between the variables and the
		following modifier.  The |fnamemodify()| function can be used
		to modify normal file names.

		When using '%' or '#', and the current or alternate file name
		is not defined, an empty string is used.  Using "%:p" in a
		buffer with no name, results in the current directory, with a
		'/' added.

		When {expr} does not start with '%', '#' or '<', it is
		expanded like a file name is expanded on the command line.
		'suffixes' and 'wildignore' are used, unless the optional
		{nosuf} argument is given and it is |TRUE|.
		Names for non-existing files are included.  The "**" item can
		be used to search in a directory tree.  For example, to find
		all "README" files in the current directory and below: >
			:echo expand("**/README")
<
		Expand() can also be used to expand variables and environment
		variables that are only known in a shell.  But this can be
		slow, because a shell may be used to do the expansion.  See
		|expr-env-expand|.
		The expanded variable is still handled like a list of file
		names.  When an environment variable cannot be expanded, it is
		left unchanged.  Thus ":echo expand('$FOOBAR')" results in
		"$FOOBAR".

		See |glob()| for finding existing files.  See |system()| for
		getting the raw output of an external command.

extend({expr1}, {expr2} [, {expr3}])			*extend()*
		{expr1} and {expr2} must be both |Lists| or both
		|Dictionaries|.

		If they are |Lists|: Append {expr2} to {expr1}.
		If {expr3} is given insert the items of {expr2} before item
		{expr3} in {expr1}.  When {expr3} is zero insert before the
		first item.  When {expr3} is equal to len({expr1}) then
		{expr2} is appended.
		Examples: >
			:echo sort(extend(mylist, [7, 5]))
			:call extend(mylist, [2, 3], 1)
<		When {expr1} is the same List as {expr2} then the number of
		items copied is equal to the original length of the List.
		E.g., when {expr3} is 1 you get N new copies of the first item
		(where N is the original length of the List).
		Use |add()| to concatenate one item to a list.  To concatenate
		two lists into a new list use the + operator: >
			:let newlist = [1, 2, 3] + [4, 5]
<
		If they are |Dictionaries|:
		Add all entries from {expr2} to {expr1}.
		If a key exists in both {expr1} and {expr2} then {expr3} is
		used to decide what to do:
		{expr3} = "keep": keep the value of {expr1}
		{expr3} = "force": use the value of {expr2}
		{expr3} = "error": give an error message		*E737*
		When {expr3} is omitted then "force" is assumed.

		{expr1} is changed when {expr2} is not empty.  If necessary
		make a copy of {expr1} first.
		{expr2} remains unchanged.
		When {expr1} is locked and {expr2} is not empty the operation
		fails.
		Returns {expr1}.


feedkeys({string} [, {mode}])				*feedkeys()*
		Characters in {string} are queued for processing as if they
		come from a mapping or were typed by the user.
		By default the string is added to the end of the typeahead
		buffer, thus if a mapping is still being executed the
		characters come after them.  Use the 'i' flag to insert before
		other characters, they will be executed next, before any
		characters from a mapping.
		The function does not wait for processing of keys contained in
		{string}.
		To include special keys into {string}, use double-quotes
		and "\..." notation |expr-quote|. For example,
		feedkeys("\<CR>") simulates pressing of the <Enter> key. But
		feedkeys('\<CR>') pushes 5 characters.
		If {mode} is absent, keys are remapped.
		{mode} is a String, which can contain these character flags:
		'm'	Remap keys. This is default.
		'n'	Do not remap keys.
		't'	Handle keys as if typed; otherwise they are handled as
			if coming from a mapping.  This matters for undo,
			opening folds, etc.
		'i'	Insert the string instead of appending (see above).
		'x'	Execute commands until typeahead is empty.  This is
			similar to using ":normal!".  You can call feedkeys()
			several times without 'x' and then one time with 'x'
			(possibly with an empty {string}) to execute all the
			typeahead.  Note that when Vim ends in Insert mode it
			will behave as if <Esc> is typed, to avoid getting
			stuck, waiting for a character to be typed before the
			script continues.
		'!'	When used with 'x' will not end Insert mode. Can be
			used in a test when a timer is set to exit Insert mode
			a little later.  Useful for testing CursorHoldI.

		Return value is always 0.

filereadable({file})					*filereadable()*
		The result is a Number, which is |TRUE| when a file with the
		name {file} exists, and can be read.  If {file} doesn't exist,
		or is a directory, the result is |FALSE|.  {file} is any
		expression, which is used as a String.
		If you don't care about the file being readable you can use
		|glob()|.
							*file_readable()*
		Obsolete name: file_readable().


filewritable({file})					*filewritable()*
		The result is a Number, which is 1 when a file with the
		name {file} exists, and can be written.  If {file} doesn't
		exist, or is not writable, the result is 0.  If {file} is a
		directory, and we can write to it, the result is 2.


filter({expr1}, {expr2})				*filter()*
		{expr1} must be a |List| or a |Dictionary|.
		For each item in {expr1} evaluate {expr2} and when the result
		is zero remove the item from the |List| or |Dictionary|.
		{expr2} must be a |string| or |Funcref|.

		If {expr2} is a |string|, inside {expr2} |v:val| has the value
		of the current item.  For a |Dictionary| |v:key| has the key
		of the current item and for a |List| |v:key| has the index of
		the current item.
		Examples: >
			call filter(mylist, 'v:val !~ "OLD"')
<		Removes the items where "OLD" appears. >
			call filter(mydict, 'v:key >= 8')
<		Removes the items with a key below 8. >
			call filter(var, 0)
<		Removes all the items, thus clears the |List| or |Dictionary|.

		Note that {expr2} is the result of expression and is then
		used as an expression again.  Often it is good to use a
		|literal-string| to avoid having to double backslashes.

		If {expr2} is a |Funcref| it must take two arguments:
			1. the key or the index of the current item.
			2. the value of the current item.
		The function must return |TRUE| if the item should be kept.
		Example that keeps the odd items of a list: >
			func Odd(idx, val)
			  return a:idx % 2 == 1
			endfunc
			call filter(mylist, function('Odd'))
<		It is shorter when using a |lambda|: >
			call filter(myList, {idx, val -> idx * val <= 42})
<		If you do not use "val" you can leave it out: >
			call filter(myList, {idx -> idx % 2 == 1})
<
		The operation is done in-place.  If you want a |List| or
		|Dictionary| to remain unmodified make a copy first: >
			:let l = filter(copy(mylist), 'v:val =~ "KEEP"')

<		Returns {expr1}, the |List| or |Dictionary| that was filtered.
		When an error is encountered while evaluating {expr2} no
		further items in {expr1} are processed.  When {expr2} is a
		Funcref errors inside a function are ignored, unless it was
		defined with the "abort" flag.


finddir({name} [, {path} [, {count}]])				*finddir()*
		Find directory {name} in {path}.  Supports both downwards and
		upwards recursive directory searches.  See |file-searching|
		for the syntax of {path}.
		Returns the path of the first found match.  When the found
		directory is below the current directory a relative path is
		returned.  Otherwise a full path is returned.
		If {path} is omitted or empty then 'path' is used.
		If the optional {count} is given, find {count}'s occurrence of
		{name} in {path} instead of the first one.
		When {count} is negative return all the matches in a |List|.
		This is quite similar to the ex-command |:find|.
		{only available when compiled with the |+file_in_path|
		feature}

findfile({name} [, {path} [, {count}]])				*findfile()*
		Just like |finddir()|, but find a file instead of a directory.
		Uses 'suffixesadd'.
		Example: >
			:echo findfile("tags.vim", ".;")
<		Searches from the directory of the current file upwards until
		it finds the file "tags.vim".

float2nr({expr})					*float2nr()*
		Convert {expr} to a Number by omitting the part after the
		decimal point.
		{expr} must evaluate to a |Float| or a Number.
		When the value of {expr} is out of range for a |Number| the
		result is truncated to 0x7fffffff or -0x7fffffff (or when
		64-bit Number support is enabled, 0x7fffffffffffffff or
		-0x7fffffffffffffff).  NaN results in -0x80000000 (or when
		64-bit Number support is enabled, -0x8000000000000000).
		Examples: >
			echo float2nr(3.95)
<			3  >
			echo float2nr(-23.45)
<			-23  >
			echo float2nr(1.0e100)
<			2147483647  (or 9223372036854775807) >
			echo float2nr(-1.0e150)
<			-2147483647 (or -9223372036854775807) >
			echo float2nr(1.0e-100)
<			0
		{only available when compiled with the |+float| feature}


floor({expr})							*floor()*
		Return the largest integral value less than or equal to
		{expr} as a |Float| (round down).
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			echo floor(1.856)
<			1.0  >
			echo floor(-5.456)
<			-6.0  >
			echo floor(4.0)
<			4.0
		{only available when compiled with the |+float| feature}


fmod({expr1}, {expr2})					*fmod()*
		Return the remainder of {expr1} / {expr2}, even if the
		division is not representable.  Returns {expr1} - i * {expr2}
		for some integer i such that if {expr2} is non-zero, the
		result has the same sign as {expr1} and magnitude less than
		the magnitude of {expr2}.  If {expr2} is zero, the value
		returned is zero.  The value returned is a |Float|.
		{expr1} and {expr2} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo fmod(12.33, 1.22)
<			0.13 >
			:echo fmod(-12.33, 1.22)
<			-0.13
		{only available when compiled with |+float| feature}


fnameescape({string})					*fnameescape()*
		Escape {string} for use as file name command argument.  All
		characters that have a special meaning, such as '%' and '|'
		are escaped with a backslash.
		For most systems the characters escaped are
		" \t\n*?[{`$\\%#'\"|!<".  For systems where a backslash
		appears in a filename, it depends on the value of 'isfname'.
		A leading '+' and '>' is also escaped (special after |:edit|
		and |:write|).  And a "-" by itself (special after |:cd|).
		Example: >
			:let fname = '+some str%nge|name'
			:exe "edit " . fnameescape(fname)
<		results in executing: >
			edit \+some\ str\%nge\|name

fnamemodify({fname}, {mods})				*fnamemodify()*
		Modify file name {fname} according to {mods}.  {mods} is a
		string of characters like it is used for file names on the
		command line.  See |filename-modifiers|.
		Example: >
			:echo fnamemodify("main.c", ":p:h")
<		results in: >
			/home/mool/vim/vim/src
<		Note: Environment variables don't work in {fname}, use
		|expand()| first then.

foldclosed({lnum})					*foldclosed()*
		The result is a Number.  If the line {lnum} is in a closed
		fold, the result is the number of the first line in that fold.
		If the line {lnum} is not in a closed fold, -1 is returned.

foldclosedend({lnum})					*foldclosedend()*
		The result is a Number.  If the line {lnum} is in a closed
		fold, the result is the number of the last line in that fold.
		If the line {lnum} is not in a closed fold, -1 is returned.

foldlevel({lnum})					*foldlevel()*
		The result is a Number, which is the foldlevel of line {lnum}
		in the current buffer.  For nested folds the deepest level is
		returned.  If there is no fold at line {lnum}, zero is
		returned.  It doesn't matter if the folds are open or closed.
		When used while updating folds (from 'foldexpr') -1 is
		returned for lines where folds are still to be updated and the
		foldlevel is unknown.  As a special case the level of the
		previous line is usually available.

							*foldtext()*
foldtext()	Returns a String, to be displayed for a closed fold.  This is
		the default function used for the 'foldtext' option and should
		only be called from evaluating 'foldtext'.  It uses the
		|v:foldstart|, |v:foldend| and |v:folddashes| variables.
		The returned string looks like this: >
			+-- 45 lines: abcdef
<		The number of leading dashes depends on the foldlevel.  The
		"45" is the number of lines in the fold.  "abcdef" is the text
		in the first non-blank line of the fold.  Leading white space,
		"//" or "/*" and the text from the 'foldmarker' and
		'commentstring' options is removed.
		When used to draw the actual foldtext, the rest of the line
		will be filled with the fold char from the 'fillchars'
		setting.
		{not available when compiled without the |+folding| feature}

foldtextresult({lnum})					*foldtextresult()*
		Returns the text that is displayed for the closed fold at line
		{lnum}.  Evaluates 'foldtext' in the appropriate context.
		When there is no closed fold at {lnum} an empty string is
		returned.
		{lnum} is used like with |getline()|.  Thus "." is the current
		line, "'m" mark m, etc.
		Useful when exporting folded text, e.g., to HTML.
		{not available when compiled without the |+folding| feature}

							*foreground()*
foreground()	Move the Vim window to the foreground.  Useful when sent from
		a client to a Vim server. |remote_send()|
		On Win32 systems this might not work, the OS does not always
		allow a window to bring itself to the foreground.  Use
		|remote_foreground()| instead.
		{only in the Win32, Athena, Motif and GTK GUI versions and the
		Win32 console version}

						*funcref()*
funcref({name} [, {arglist}] [, {dict}])
		Just like |function()|, but the returned Funcref will lookup
		the function by reference, not by name.  This matters when the
		function {name} is redefined later.

		Unlike |function()|, {name} must be an existing user function.
		Also for autoloaded functions. {name} cannot be a builtin
		function.

					*function()* *E700* *E922* *E923*
function({name} [, {arglist}] [, {dict}])
		Return a |Funcref| variable that refers to function {name}.
		{name} can be the name of a user defined function or an
		internal function.

		{name} can also be a Funcref or a partial.  When it is a
		partial the dict stored in it will be used and the {dict}
		argument is not allowed. E.g.: >
			let FuncWithArg = function(dict.Func, [arg])
			let Broken = function(dict.Func, [arg], dict)
<
		When using the Funcref the function will be found by {name},
		also when it was redefined later.  Use |funcref()| to keep the
		same function.

		When {arglist} or {dict} is present this creates a partial.
		That means the argument list and/or the dictionary is stored in
		the Funcref and will be used when the Funcref is called.

		The arguments are passed to the function in front of other
		arguments.  Example: >
			func Callback(arg1, arg2, name)
			...
			let Func = function('Callback', ['one', 'two'])
			...
			call Func('name')
<		Invokes the function as with: >
			call Callback('one', 'two', 'name')

<		The function() call can be nested to add more arguments to the
		Funcref.  The extra arguments are appended to the list of
		arguments.  Example: >
			func Callback(arg1, arg2, name)
			...
			let Func = function('Callback', ['one'])
			let Func2 = function(Func, ['two'])
			...
			call Func2('name')
<		Invokes the function as with: >
			call Callback('one', 'two', 'name')

<		The Dictionary is only useful when calling a "dict" function.
		In that case the {dict} is passed in as "self". Example: >
			function Callback() dict
			   echo "called for " . self.name
			endfunction
			...
			let context = {"name": "example"}
			let Func = function('Callback', context)
			...
			call Func()	" will echo: called for example
<		The use of function() is not needed when there are no extra
		arguments, these two are equivalent: >
			let Func = function('Callback', context)
			let Func = context.Callback

<		The argument list and the Dictionary can be combined: >
			function Callback(arg1, count) dict
			...
			let context = {"name": "example"}
			let Func = function('Callback', ['one'], context)
			...
			call Func(500)
<		Invokes the function as with: >
			call context.Callback('one', 500)


garbagecollect([{atexit}])				*garbagecollect()*
		Cleanup unused |Lists|, |Dictionaries|, |Channels| and |Jobs|
		that have circular references.

		There is hardly ever a need to invoke this function, as it is
		automatically done when Vim runs out of memory or is waiting
		for the user to press a key after 'updatetime'.  Items without
		circular references are always freed when they become unused.
		This is useful if you have deleted a very big |List| and/or
		|Dictionary| with circular references in a script that runs
		for a long time.

		When the optional {atexit} argument is one, garbage
		collection will also be done when exiting Vim, if it wasn't
		done before.  This is useful when checking for memory leaks.

		The garbage collection is not done immediately but only when
		it's safe to perform.  This is when waiting for the user to
		type a character.  To force garbage collection immediately use
		|test_garbagecollect_now()|.

get({list}, {idx} [, {default}])			*get()*
		Get item {idx} from |List| {list}.  When this item is not
		available return {default}.  Return zero when {default} is
		omitted.
get({dict}, {key} [, {default}])
		Get item with key {key} from |Dictionary| {dict}.  When this
		item is not available return {default}.  Return zero when
		{default} is omitted.
get({func}, {what})
		Get an item with from Funcref {func}.  Possible values for
		{what} are:
			"name"	The function name
			"func"	The function
			"dict"	The dictionary
			"args"	The list with arguments

							*getbufinfo()*
getbufinfo([{expr}])
getbufinfo([{dict}])
		Get information about buffers as a List of Dictionaries.

		Without an argument information about all the buffers is
		returned.

		When the argument is a Dictionary only the buffers matching
		the specified criteria are returned.  The following keys can
		be specified in {dict}:
			buflisted	include only listed buffers.
			bufloaded	include only loaded buffers.
			bufmodified	include only modified buffers.

		Otherwise, {expr} specifies a particular buffer to return
		information for.  For the use of {expr}, see |bufname()|
		above.  If the buffer is found the returned List has one item.
		Otherwise the result is an empty list.

		Each returned List item is a dictionary with the following
		entries:
			bufnr		buffer number.
			changed		TRUE if the buffer is modified.
			changedtick	number of changes made to the buffer.
			hidden		TRUE if the buffer is hidden.
			listed		TRUE if the buffer is listed.
			lnum		current line number in buffer.
			loaded		TRUE if the buffer is loaded.
			name		full path to the file in the buffer.
			signs		list of signs placed in the buffer.
					Each list item is a dictionary with
					the following fields:
					    id	  sign identifier
					    lnum  line number
					    name  sign name
			variables	a reference to the dictionary with
					buffer-local variables.
			windows		list of |window-ID|s that display this
					buffer

		Examples: >
			for buf in getbufinfo()
			    echo buf.name
			endfor
			for buf in getbufinfo({'buflisted':1})
			    if buf.changed
				....
			    endif
			endfor
<
		To get buffer-local options use: >
			getbufvar({bufnr}, '&')

<
							*getbufline()*
getbufline({expr}, {lnum} [, {end}])
		Return a |List| with the lines starting from {lnum} to {end}
		(inclusive) in the buffer {expr}.  If {end} is omitted, a
		|List| with only the line {lnum} is returned.

		For the use of {expr}, see |bufname()| above.

		For {lnum} and {end} "$" can be used for the last line of the
		buffer.  Otherwise a number must be used.

		When {lnum} is smaller than 1 or bigger than the number of
		lines in the buffer, an empty |List| is returned.

		When {end} is greater than the number of lines in the buffer,
		it is treated as {end} is set to the number of lines in the
		buffer.  When {end} is before {lnum} an empty |List| is
		returned.

		This function works only for loaded buffers.  For unloaded and
		non-existing buffers, an empty |List| is returned.

		Example: >
			:let lines = getbufline(bufnr("myfile"), 1, "$")

getbufvar({expr}, {varname} [, {def}])				*getbufvar()*
		The result is the value of option or local buffer variable
		{varname} in buffer {expr}.  Note that the name without "b:"
		must be used.
		When {varname} is empty returns a dictionary with all the
		buffer-local variables.
		When {varname} is equal to "&" returns a dictionary with all
		the buffer-local options.
		Otherwise, when {varname} starts with "&" returns the value of
		a buffer-local option.
		This also works for a global or buffer-local option, but it
		doesn't work for a global variable, window-local variable or
		window-local option.
		For the use of {expr}, see |bufname()| above.
		When the buffer or variable doesn't exist {def} or an empty
		string is returned, there is no error message.
		Examples: >
			:let bufmodified = getbufvar(1, "&mod")
			:echo "todo myvar = " . getbufvar("todo", "myvar")
<
getchangelist({expr})					*getchangelist()*
		Returns the |changelist| for the buffer {expr}. For the use
		of {expr}, see |bufname()| above. If buffer {expr} doesn't
		exist, an empty list is returned.

		The returned list contains two entries: a list with the change
		locations and the current position in the list.  Each
		entry in the change list is a dictionary with the following
		entries:
			col		column number
			coladd		column offset for 'virtualedit'
			lnum		line number
		If buffer {expr} is the current buffer, then the current
		position refers to the position in the list. For other
		buffers, it is set to the length of the list.

getchar([expr])						*getchar()*
		Get a single character from the user or input stream.
		If [expr] is omitted, wait until a character is available.
		If [expr] is 0, only get a character when one is available.
			Return zero otherwise.
		If [expr] is 1, only check if a character is available, it is
			not consumed.  Return zero if no character available.

		Without [expr] and when [expr] is 0 a whole character or
		special key is returned.  If it is a single character, the
		result is a number.  Use nr2char() to convert it to a String.
		Otherwise a String is returned with the encoded character.
		For a special key it's a String with a sequence of bytes
		starting with 0x80 (decimal: 128).  This is the same value as
		the String "\<Key>", e.g., "\<Left>".  The returned value is
		also a String when a modifier (shift, control, alt) was used
		that is not included in the character.

		When [expr] is 0 and Esc is typed, there will be a short delay
		while Vim waits to see if this is the start of an escape
		sequence.

		When [expr] is 1 only the first byte is returned.  For a
		one-byte character it is the character itself as a number.
		Use nr2char() to convert it to a String.

		Use getcharmod() to obtain any additional modifiers.

		When the user clicks a mouse button, the mouse event will be
		returned.  The position can then be found in |v:mouse_col|,
		|v:mouse_lnum|, |v:mouse_winid| and |v:mouse_win|.  This
		example positions the mouse as it would normally happen: >
			let c = getchar()
			if c == "\<LeftMouse>" && v:mouse_win > 0
			  exe v:mouse_win . "wincmd w"
			  exe v:mouse_lnum
			  exe "normal " . v:mouse_col . "|"
			endif
<
		When using bracketed paste only the first character is
		returned, the rest of the pasted text is dropped.
		|xterm-bracketed-paste|.

		There is no prompt, you will somehow have to make clear to the
		user that a character has to be typed.
		There is no mapping for the character.
		Key codes are replaced, thus when the user presses the <Del>
		key you get the code for the <Del> key, not the raw character
		sequence.  Examples: >
			getchar() == "\<Del>"
			getchar() == "\<S-Left>"
<		This example redefines "f" to ignore case: >
			:nmap f :call FindChar()<CR>
			:function FindChar()
			:  let c = nr2char(getchar())
			:  while col('.') < col('$') - 1
			:    normal l
			:    if getline('.')[col('.') - 1] ==? c
			:      break
			:    endif
			:  endwhile
			:endfunction
<
		You may also receive synthetic characters, such as
		|<CursorHold>|. Often you will want to ignore this and get
		another character: >
			:function GetKey()
			:  let c = getchar()
			:  while c == "\<CursorHold>"
			:    let c = getchar()
			:  endwhile
			:  return c
			:endfunction

getcharmod()						*getcharmod()*
		The result is a Number which is the state of the modifiers for
		the last obtained character with getchar() or in another way.
		These values are added together:
			2	shift
			4	control
			8	alt (meta)
			16	meta (when it's different from ALT)
			32	mouse double click
			64	mouse triple click
			96	mouse quadruple click (== 32 + 64)
			128	command (Macintosh only)
		Only the modifiers that have not been included in the
		character itself are obtained.  Thus Shift-a results in "A"
		without a modifier.

getcharsearch()						*getcharsearch()*
		Return the current character search information as a {dict}
		with the following entries:

		    char	character previously used for a character
				search (|t|, |f|, |T|, or |F|); empty string
				if no character search has been performed
		    forward	direction of character search; 1 for forward,
				0 for backward
		    until	type of character search; 1 for a |t| or |T|
				character search, 0 for an |f| or |F|
				character search

		This can be useful to always have |;| and |,| search
		forward/backward regardless of the direction of the previous
		character search: >
			:nnoremap <expr> ; getcharsearch().forward ? ';' : ','
			:nnoremap <expr> , getcharsearch().forward ? ',' : ';'
<		Also see |setcharsearch()|.

getcmdline()						*getcmdline()*
		Return the current command-line.  Only works when the command
		line is being edited, thus requires use of |c_CTRL-\_e| or
		|c_CTRL-R_=|.
		Example: >
			:cmap <F7> <C-\>eescape(getcmdline(), ' \')<CR>
<		Also see |getcmdtype()|, |getcmdpos()| and |setcmdpos()|.

getcmdpos()						*getcmdpos()*
		Return the position of the cursor in the command line as a
		byte count.  The first column is 1.
		Only works when editing the command line, thus requires use of
		|c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
		Returns 0 otherwise.
		Also see |getcmdtype()|, |setcmdpos()| and |getcmdline()|.

getcmdtype()						*getcmdtype()*
		Return the current command-line type. Possible return values
		are:
		    :	normal Ex command
		    >	debug mode command |debug-mode|
		    /	forward search command
		    ?	backward search command
		    @	|input()| command
		    -	|:insert| or |:append| command
		    =	|i_CTRL-R_=|
		Only works when editing the command line, thus requires use of
		|c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
		Returns an empty string otherwise.
		Also see |getcmdpos()|, |setcmdpos()| and |getcmdline()|.

getcmdwintype()						*getcmdwintype()*
		Return the current |command-line-window| type. Possible return
		values are the same as |getcmdtype()|. Returns an empty string
		when not in the command-line window.

getcompletion({pat}, {type} [, {filtered}])		*getcompletion()*
		Return a list of command-line completion matches. {type}
		specifies what for.  The following completion types are
		supported:

		arglist		file names in argument list
		augroup		autocmd groups
		buffer		buffer names
		behave		:behave suboptions
		color		color schemes
		command		Ex command (and arguments)
		compiler	compilers
		cscope		|:cscope| suboptions
		dir		directory names
		environment	environment variable names
		event		autocommand events
		expression	Vim expression
		file		file and directory names
		file_in_path	file and directory names in |'path'|
		filetype	filetype names |'filetype'|
		function	function name
		help		help subjects
		highlight	highlight groups
		history		:history suboptions
		locale		locale names (as output of locale -a)
		mapclear        buffer argument
		mapping		mapping name
		menu		menus
		messages	|:messages| suboptions
		option		options
		packadd		optional package |pack-add| names
		shellcmd	Shell command
		sign		|:sign| suboptions
		syntax		syntax file names |'syntax'|
		syntime		|:syntime| suboptions
		tag		tags
		tag_listfiles	tags, file names
		user		user names
		var		user variables

		If {pat} is an empty string, then all the matches are returned.
		Otherwise only items matching {pat} are returned. See
		|wildcards| for the use of special characters in {pat}.

		If the optional {filtered} flag is set to 1, then 'wildignore'
		is applied to filter the results.  Otherwise all the matches
		are returned. The 'wildignorecase' option always applies.

		If there are no matches, an empty list is returned.  An
		invalid value for {type} produces an error.

							*getcurpos()*
getcurpos()	Get the position of the cursor.  This is like getpos('.'), but
		includes an extra item in the list:
		    [bufnum, lnum, col, off, curswant] ~
		The "curswant" number is the preferred column when moving the
		cursor vertically.  Also see |getpos()|.

		This can be used to save and restore the cursor position: >
			let save_cursor = getcurpos()
			MoveTheCursorAround
			call setpos('.', save_cursor)
<		Note that this only works within the window.  See
		|winrestview()| for restoring more state.
							*getcwd()*
getcwd([{winnr} [, {tabnr}]])
		The result is a String, which is the name of the current
		working directory.
		Without arguments, for the current window.

		With {winnr} return the local current directory of this window
		in the current tab page.  {winnr} can be the window number or
		the |window-ID|.
		If {winnr} is -1 return the name of the global working
		directory.  See also |haslocaldir()|.

		With {winnr} and {tabnr} return the local current directory of
		the window in the specified tab page.
		Return an empty string if the arguments are invalid.

getfsize({fname})					*getfsize()*
		The result is a Number, which is the size in bytes of the
		given file {fname}.
		If {fname} is a directory, 0 is returned.
		If the file {fname} can't be found, -1 is returned.
		If the size of {fname} is too big to fit in a Number then -2
		is returned.

getfontname([{name}])					*getfontname()*
		Without an argument returns the name of the normal font being
		used.  Like what is used for the Normal highlight group
		|hl-Normal|.
		With an argument a check is done whether {name} is a valid
		font name.  If not then an empty string is returned.
		Otherwise the actual font name is returned, or {name} if the
		GUI does not support obtaining the real name.
		Only works when the GUI is running, thus not in your vimrc or
		gvimrc file.  Use the |GUIEnter| autocommand to use this
		function just after the GUI has started.
		Note that the GTK GUI accepts any font name, thus checking for
		a valid name does not work.

getfperm({fname})					*getfperm()*
		The result is a String, which is the read, write, and execute
		permissions of the given file {fname}.
		If {fname} does not exist or its directory cannot be read, an
		empty string is returned.
		The result is of the form "rwxrwxrwx", where each group of
		"rwx" flags represent, in turn, the permissions of the owner
		of the file, the group the file belongs to, and other users.
		If a user does not have a given permission the flag for this
		is replaced with the string "-".  Examples: >
			:echo getfperm("/etc/passwd")
			:echo getfperm(expand("~/.vimrc"))
<		This will hopefully (from a security point of view) display
		the string "rw-r--r--" or even "rw-------".

		For setting permissions use |setfperm()|.

getftime({fname})					*getftime()*
		The result is a Number, which is the last modification time of
		the given file {fname}.  The value is measured as seconds
		since 1st Jan 1970, and may be passed to strftime().  See also
		|localtime()| and |strftime()|.
		If the file {fname} can't be found -1 is returned.

getftype({fname})					*getftype()*
		The result is a String, which is a description of the kind of
		file of the given file {fname}.
		If {fname} does not exist an empty string is returned.
		Here is a table over different kinds of files and their
		results:
			Normal file		"file"
			Directory		"dir"
			Symbolic link		"link"
			Block device		"bdev"
			Character device	"cdev"
			Socket			"socket"
			FIFO			"fifo"
			All other		"other"
		Example: >
			getftype("/home")
<		Note that a type such as "link" will only be returned on
		systems that support it.  On some systems only "dir" and
		"file" are returned.  On MS-Windows a symbolic link to a
		directory returns "dir" instead of "link".

getjumplist([{winnr} [, {tabnr}]])			*getjumplist()*
		Returns the |jumplist| for the specified window.

		Without arguments use the current window.
		With {winnr} only use this window in the current tab page.
		{winnr} can also be a |window-ID|.
		With {winnr} and {tabnr} use the window in the specified tab
		page.

		The returned list contains two entries: a list with the jump
		locations and the last used jump position number in the list.
		Each entry in the jump location list is a dictionary with
		the following entries:
			bufnr		buffer number
			col		column number
			coladd		column offset for 'virtualedit'
			filename	filename if available
			lnum		line number

							*getline()*
getline({lnum} [, {end}])
		Without {end} the result is a String, which is line {lnum}
		from the current buffer.  Example: >
			getline(1)
<		When {lnum} is a String that doesn't start with a
		digit, line() is called to translate the String into a Number.
		To get the line under the cursor: >
			getline(".")
<		When {lnum} is smaller than 1 or bigger than the number of
		lines in the buffer, an empty string is returned.

		When {end} is given the result is a |List| where each item is
		a line from the current buffer in the range {lnum} to {end},
		including line {end}.
		{end} is used in the same way as {lnum}.
		Non-existing lines are silently omitted.
		When {end} is before {lnum} an empty |List| is returned.
		Example: >
			:let start = line('.')
			:let end = search("^$") - 1
			:let lines = getline(start, end)

<		To get lines from another buffer see |getbufline()|

getloclist({nr} [, {what}])				*getloclist()*
		Returns a list with all the entries in the location list for
		window {nr}.  {nr} can be the window number or the |window-ID|.
		When {nr} is zero the current window is used.

		For a location list window, the displayed location list is
		returned.  For an invalid window number {nr}, an empty list is
		returned. Otherwise, same as |getqflist()|.

		If the optional {what} dictionary argument is supplied, then
		returns the items listed in {what} as a dictionary. Refer to
		|getqflist()| for the supported items in {what}.

getmatches()						*getmatches()*
		Returns a |List| with all matches previously defined by
		|matchadd()| and the |:match| commands.  |getmatches()| is
		useful in combination with |setmatches()|, as |setmatches()|
		can restore a list of matches saved by |getmatches()|.
		Example: >
			:echo getmatches()
<			[{'group': 'MyGroup1', 'pattern': 'TODO',
			'priority': 10, 'id': 1}, {'group': 'MyGroup2',
			'pattern': 'FIXME', 'priority': 10, 'id': 2}] >
			:let m = getmatches()
			:call clearmatches()
			:echo getmatches()
<			[] >
			:call setmatches(m)
			:echo getmatches()
<			[{'group': 'MyGroup1', 'pattern': 'TODO',
			'priority': 10, 'id': 1}, {'group': 'MyGroup2',
			'pattern': 'FIXME', 'priority': 10, 'id': 2}] >
			:unlet m
<
							*getpid()*
getpid()	Return a Number which is the process ID of the Vim process.
		On Unix and MS-Windows this is a unique number, until Vim
		exits.  On MS-DOS it's always zero.

							*getpos()*
getpos({expr})	Get the position for {expr}.  For possible values of {expr}
		see |line()|.  For getting the cursor position see
		|getcurpos()|.
		The result is a |List| with four numbers:
		    [bufnum, lnum, col, off]
		"bufnum" is zero, unless a mark like '0 or 'A is used, then it
		is the buffer number of the mark.
		"lnum" and "col" are the position in the buffer.  The first
		column is 1.
		The "off" number is zero, unless 'virtualedit' is used.  Then
		it is the offset in screen columns from the start of the
		character.  E.g., a position within a <Tab> or after the last
		character.
		Note that for '< and '> Visual mode matters: when it is "V"
		(visual line mode) the column of '< is zero and the column of
		'> is a large number.
		This can be used to save and restore the position of a mark: >
			let save_a_mark = getpos("'a")
			...
			call setpos("'a", save_a_mark)
<		Also see |getcurpos()| and |setpos()|.


getqflist([{what}])					*getqflist()*
		Returns a list with all the current quickfix errors.  Each
		list item is a dictionary with these entries:
			bufnr	number of buffer that has the file name, use
				bufname() to get the name
			lnum	line number in the buffer (first line is 1)
			col	column number (first column is 1)
			vcol	|TRUE|: "col" is visual column
				|FALSE|: "col" is byte index
			nr	error number
			pattern	search pattern used to locate the error
			text	description of the error
			type	type of the error, 'E', '1', etc.
			valid	|TRUE|: recognized error message

		When there is no error list or it's empty, an empty list is
		returned. Quickfix list entries with non-existing buffer
		number are returned with "bufnr" set to zero.

		Useful application: Find pattern matches in multiple files and
		do something with them: >
			:vimgrep /theword/jg *.c
			:for d in getqflist()
			:   echo bufname(d.bufnr) ':' d.lnum '=' d.text
			:endfor
<
		If the optional {what} dictionary argument is supplied, then
		returns only the items listed in {what} as a dictionary. The
		following string items are supported in {what}:
			changedtick	get the total number of changes made
					to the list
			context	get the context stored with |setqflist()|
			efm	errorformat to use when parsing "lines". If
				not present, then the 'errorformat' option
				value is used.
			id	get information for the quickfix list with
				|quickfix-ID|; zero means the id for the
				current list or the list specified by "nr"
			idx	index of the current entry in the list
			items	quickfix list entries
			lines	use 'errorformat' to extract items from a list
				of lines and return the resulting entries.
				Only a |List| type is accepted.  The current
				quickfix list is not modified.
			nr	get information for this quickfix list; zero
				means the current quickfix list and "$" means
				the last quickfix list
			size	number of entries in the quickfix list
			title	get the list title
			winid	get the quickfix |window-ID|
			all	all of the above quickfix properties
		Non-string items in {what} are ignored. To get the value of a
		particular item, set it to zero.
		If "nr" is not present then the current quickfix list is used.
		If both "nr" and a non-zero "id" are specified, then the list
		specified by "id" is used.
		To get the number of lists in the quickfix stack, set "nr" to
		"$" in {what}. The "nr" value in the returned dictionary
		contains the quickfix stack size.
		When "lines" is specified, all the other items except "efm"
		are ignored.  The returned dictionary contains the entry
		"items" with the list of entries.

		The returned dictionary contains the following entries:
			changedtick	total number of changes made to the
					list |quickfix-changedtick|
			context	context information stored with |setqflist()|.
				If not present, set to "".
			id	quickfix list ID |quickfix-ID|. If not
				present, set to 0.
			idx	index of the current entry in the list. If not
				present, set to 0.
			items	quickfix list entries. If not present, set to
				an empty list.
			nr	quickfix list number. If not present, set to 0
			size	number of entries in the quickfix list. If not
				present, set to 0.
			title	quickfix list title text. If not present, set
				to "".
			winid	quickfix |window-ID|. If not present, set to 0

		Examples: >
			:echo getqflist({'all': 1})
			:echo getqflist({'nr': 2, 'title': 1})
			:echo getqflist({'lines' : ["F1:10:L10"]})
<

getreg([{regname} [, 1 [, {list}]]])			*getreg()*
		The result is a String, which is the contents of register
		{regname}.  Example: >
			:let cliptext = getreg('*')
<		When {regname} was not set the result is an empty string.

		getreg('=') returns the last evaluated value of the expression
		register.  (For use in maps.)
		getreg('=', 1) returns the expression itself, so that it can
		be restored with |setreg()|.  For other registers the extra
		argument is ignored, thus you can always give it.

		If {list} is present and |TRUE|, the result type is changed
		to |List|. Each list item is one text line. Use it if you care
		about zero bytes possibly present inside register: without
		third argument both NLs and zero bytes are represented as NLs
		(see |NL-used-for-Nul|).
		When the register was not set an empty list is returned.

		If {regname} is not specified, |v:register| is used.


getregtype([{regname}])					*getregtype()*
		The result is a String, which is type of register {regname}.
		The value will be one of:
		    "v"			for |characterwise| text
		    "V"			for |linewise| text
		    "<CTRL-V>{width}"	for |blockwise-visual| text
		    ""			for an empty or unknown register
		<CTRL-V> is one character with value 0x16.
		If {regname} is not specified, |v:register| is used.

gettabinfo([{arg}])					*gettabinfo()*
		If {arg} is not specified, then information about all the tab
		pages is returned as a List. Each List item is a Dictionary.
		Otherwise, {arg} specifies the tab page number and information
		about that one is returned.  If the tab page does not exist an
		empty List is returned.

		Each List item is a Dictionary with the following entries:
			tabnr		tab page number.
			variables	a reference to the dictionary with
					tabpage-local variables
			windows		List of |window-ID|s in the tag page.

gettabvar({tabnr}, {varname} [, {def}])				*gettabvar()*
		Get the value of a tab-local variable {varname} in tab page
		{tabnr}. |t:var|
		Tabs are numbered starting with one.
		When {varname} is empty a dictionary with all tab-local
		variables is returned.
		Note that the name without "t:" must be used.
		When the tab or variable doesn't exist {def} or an empty
		string is returned, there is no error message.

gettabwinvar({tabnr}, {winnr}, {varname} [, {def}])		*gettabwinvar()*
		Get the value of window-local variable {varname} in window
		{winnr} in tab page {tabnr}.
		When {varname} is empty a dictionary with all window-local
		variables is returned.
		When {varname} is equal to "&" get the values of all
		window-local options in a Dictionary.
		Otherwise, when {varname} starts with "&" get the value of a
		window-local option.
		Note that {varname} must be the name without "w:".
		Tabs are numbered starting with one.  For the current tabpage
		use |getwinvar()|.
		{winnr} can be the window number or the |window-ID|.
		When {winnr} is zero the current window is used.
		This also works for a global option, buffer-local option and
		window-local option, but it doesn't work for a global variable
		or buffer-local variable.
		When the tab, window or variable doesn't exist {def} or an
		empty string is returned, there is no error message.
		Examples: >
			:let list_is_on = gettabwinvar(1, 2, '&list')
			:echo "myvar = " . gettabwinvar(3, 1, 'myvar')
<
getwinpos([{timeout}])					*getwinpos()*
		The result is a list with two numbers, the result of
		getwinposx() and getwinposy() combined: 
			[x-pos, y-pos]
		{timeout} can be used to specify how long to wait in msec for
		a response from the terminal.  When omitted 100 msec is used.
		Use a longer time for a remote terminal.
		When using a value less than 10 and no response is received
		within that time, a previously reported position is returned,
		if available.  This can be used to poll for the position and
		do some work in the mean time: >
			while 1
			  let res = getwinpos(1)
			  if res[0] >= 0
			    break
			  endif
			  " Do some work here
			endwhile
<
							*getwinposx()*
getwinposx()	The result is a Number, which is the X coordinate in pixels of
		the left hand side of the GUI Vim window. Also works for an
		xterm (uses a timeout of 100 msec).
		The result will be -1 if the information is not available.
		The value can be used with `:winpos`.

							*getwinposy()*
getwinposy()	The result is a Number, which is the Y coordinate in pixels of
		the top of the GUI Vim window.  Also works for an xterm (uses
		a timeout of 100 msec).
		The result will be -1 if the information is not available.
		The value can be used with `:winpos`.

getwininfo([{winid}])					*getwininfo()*
		Returns information about windows as a List with Dictionaries.

		If {winid} is given Information about the window with that ID
		is returned.  If the window does not exist the result is an
		empty list.

		Without {winid} information about all the windows in all the
		tab pages is returned.

		Each List item is a Dictionary with the following entries:
			bufnr		number of buffer in the window
			height		window height (excluding winbar)
			winbar		1 if the window has a toolbar, 0
					otherwise
			loclist		1 if showing a location list
					{only with the +quickfix feature}
			quickfix	1 if quickfix or location list window
					{only with the +quickfix feature}
			terminal	1 if a terminal window
					{only with the +terminal feature}
			tabnr		tab page number
			variables	a reference to the dictionary with
					window-local variables
			width		window width
			winid		|window-ID|
			winnr		window number

		To obtain all window-local variables use: >
			gettabwinvar({tabnr}, {winnr}, '&')

getwinvar({winnr}, {varname} [, {def}])				*getwinvar()*
		Like |gettabwinvar()| for the current tabpage.
		Examples: >
			:let list_is_on = getwinvar(2, '&list')
			:echo "myvar = " . getwinvar(1, 'myvar')
<
glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])		*glob()*
		Expand the file wildcards in {expr}.  See |wildcards| for the
		use of special characters.

		Unless the optional {nosuf} argument is given and is |TRUE|,
		the 'suffixes' and 'wildignore' options apply: Names matching
		one of the patterns in 'wildignore' will be skipped and
		'suffixes' affect the ordering of matches.
		'wildignorecase' always applies.

		When {list} is present and it is |TRUE| the result is a List
		with all matching files. The advantage of using a List is,
		you also get filenames containing newlines correctly.
		Otherwise the result is a String and when there are several
		matches, they are separated by <NL> characters.

		If the expansion fails, the result is an empty String or List.

		A name for a non-existing file is not included.  A symbolic
		link is only included if it points to an existing file.
		However, when the {alllinks} argument is present and it is
		|TRUE| then all symbolic links are included.

		For most systems backticks can be used to get files names from
		any external command.  Example: >
			:let tagfiles = glob("`find . -name tags -print`")
			:let &tags = substitute(tagfiles, "\n", ",", "g")
<		The result of the program inside the backticks should be one
		item per line.  Spaces inside an item are allowed.

		See |expand()| for expanding special Vim variables.  See
		|system()| for getting the raw output of an external command.

glob2regpat({expr})					 *glob2regpat()*
		Convert a file pattern, as used by glob(), into a search
		pattern.  The result can be used to match with a string that
		is a file name.  E.g. >
			if filename =~ glob2regpat('Make*.mak')
<		This is equivalent to: >
			if filename =~ '^Make.*\.mak$'
<		When {expr} is an empty string the result is "^$", match an
		empty string.
		Note that the result depends on the system.  On MS-Windows
		a backslash usually means a path separator.

								*globpath()*
globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
		Perform glob() on all directories in {path} and concatenate
		the results.  Example: >
			:echo globpath(&rtp, "syntax/c.vim")
<
		{path} is a comma-separated list of directory names.  Each
		directory name is prepended to {expr} and expanded like with
		|glob()|.  A path separator is inserted when needed.
		To add a comma inside a directory name escape it with a
		backslash.  Note that on MS-Windows a directory may have a
		trailing backslash, remove it if you put a comma after it.
		If the expansion fails for one of the directories, there is no
		error message.

		Unless the optional {nosuf} argument is given and is |TRUE|,
		the 'suffixes' and 'wildignore' options apply: Names matching
		one of the patterns in 'wildignore' will be skipped and
		'suffixes' affect the ordering of matches.

		When {list} is present and it is |TRUE| the result is a List
		with all matching files. The advantage of using a List is, you
		also get filenames containing newlines correctly. Otherwise
		the result is a String and when there are several matches,
		they are separated by <NL> characters.  Example: >
			:echo globpath(&rtp, "syntax/c.vim", 0, 1)
<
		{alllinks} is used as with |glob()|.

		The "**" item can be used to search in a directory tree.
		For example, to find all "README.txt" files in the directories
		in 'runtimepath' and below: >
			:echo globpath(&rtp, "**/README.txt")
<		Upwards search and limiting the depth of "**" is not
		supported, thus using 'path' will not always work properly.

							*has()*
has({feature})	The result is a Number, which is 1 if the feature {feature} is
		supported, zero otherwise.  The {feature} argument is a
		string.  See |feature-list| below.
		Also see |exists()|.


has_key({dict}, {key})					*has_key()*
		The result is a Number, which is 1 if |Dictionary| {dict} has
		an entry with key {key}.  Zero otherwise.

haslocaldir([{winnr} [, {tabnr}]])			*haslocaldir()*
		The result is a Number, which is 1 when the window has set a
		local path via |:lcd|, and 0 otherwise.

		Without arguments use the current window.
		With {winnr} use this window in the current tab page.
		With {winnr} and {tabnr} use the window in the specified tab
		page.
		{winnr} can be the window number or the |window-ID|.
		Return 0 if the arguments are invalid.

hasmapto({what} [, {mode} [, {abbr}]])			*hasmapto()*
		The result is a Number, which is 1 if there is a mapping that
		contains {what} in somewhere in the rhs (what it is mapped to)
		and this mapping exists in one of the modes indicated by
		{mode}.
		When {abbr} is there and it is |TRUE| use abbreviations
		instead of mappings.  Don't forget to specify Insert and/or
		Command-line mode.
		Both the global mappings and the mappings local to the current
		buffer are checked for a match.
		If no matching mapping is found 0 is returned.
		The following characters are recognized in {mode}:
			n	Normal mode
			v	Visual mode
			o	Operator-pending mode
			i	Insert mode
			l	Language-Argument ("r", "f", "t", etc.)
			c	Command-line mode
		When {mode} is omitted, "nvo" is used.

		This function is useful to check if a mapping already exists
		to a function in a Vim script.  Example: >
			:if !hasmapto('\ABCdoit')
			:   map <Leader>d \ABCdoit
			:endif
<		This installs the mapping to "\ABCdoit" only if there isn't
		already a mapping to "\ABCdoit".

histadd({history}, {item})				*histadd()*
		Add the String {item} to the history {history} which can be
		one of:					*hist-names*
			"cmd"	 or ":"	  command line history
			"search" or "/"   search pattern history
			"expr"	 or "="   typed expression history
			"input"  or "@"	  input line history
			"debug"  or ">"   debug command history
			empty		  the current or last used history
		The {history} string does not need to be the whole name, one
		character is sufficient.
		If {item} does already exist in the history, it will be
		shifted to become the newest entry.
		The result is a Number: 1 if the operation was successful,
		otherwise 0 is returned.

		Example: >
			:call histadd("input", strftime("%Y %b %d"))
			:let date=input("Enter date: ")
<		This function is not available in the |sandbox|.

histdel({history} [, {item}])				*histdel()*
		Clear {history}, i.e. delete all its entries.  See |hist-names|
		for the possible values of {history}.

		If the parameter {item} evaluates to a String, it is used as a
		regular expression.  All entries matching that expression will
		be removed from the history (if there are any).
		Upper/lowercase must match, unless "\c" is used |/\c|.
		If {item} evaluates to a Number, it will be interpreted as
		an index, see |:history-indexing|.  The respective entry will
		be removed if it exists.

		The result is a Number: 1 for a successful operation,
		otherwise 0 is returned.

		Examples:
		Clear expression register history: >
			:call histdel("expr")
<
		Remove all entries starting with "*" from the search history: >
			:call histdel("/", '^\*')
<
		The following three are equivalent: >
			:call histdel("search", histnr("search"))
			:call histdel("search", -1)
			:call histdel("search", '^'.histget("search", -1).'$')
<
		To delete the last search pattern and use the last-but-one for
		the "n" command and 'hlsearch': >
			:call histdel("search", -1)
			:let @/ = histget("search", -1)

histget({history} [, {index}])				*histget()*
		The result is a String, the entry with Number {index} from
		{history}.  See |hist-names| for the possible values of
		{history}, and |:history-indexing| for {index}.  If there is
		no such entry, an empty String is returned.  When {index} is
		omitted, the most recent item from the history is used.

		Examples:
		Redo the second last search from history. >
			:execute '/' . histget("search", -2)

<		Define an Ex command ":H {num}" that supports re-execution of
		the {num}th entry from the output of |:history|. >
			:command -nargs=1 H execute histget("cmd", 0+<args>)
<
histnr({history})					*histnr()*
		The result is the Number of the current entry in {history}.
		See |hist-names| for the possible values of {history}.
		If an error occurred, -1 is returned.

		Example: >
			:let inp_index = histnr("expr")
<
hlexists({name})					*hlexists()*
		The result is a Number, which is non-zero if a highlight group
		called {name} exists.  This is when the group has been
		defined in some way.  Not necessarily when highlighting has
		been defined for it, it may also have been used for a syntax
		item.
							*highlight_exists()*
		Obsolete name: highlight_exists().

							*hlID()*
hlID({name})	The result is a Number, which is the ID of the highlight group
		with name {name}.  When the highlight group doesn't exist,
		zero is returned.
		This can be used to retrieve information about the highlight
		group.  For example, to get the background color of the
		"Comment" group: >
	:echo synIDattr(synIDtrans(hlID("Comment")), "bg")
<							*highlightID()*
		Obsolete name: highlightID().

hostname()						*hostname()*
		The result is a String, which is the name of the machine on
		which Vim is currently running.  Machine names greater than
		256 characters long are truncated.

iconv({expr}, {from}, {to})				*iconv()*
		The result is a String, which is the text {expr} converted
		from encoding {from} to encoding {to}.
		When the conversion completely fails an empty string is
		returned.  When some characters could not be converted they
		are replaced with "?".
		The encoding names are whatever the iconv() library function
		can accept, see ":!man 3 iconv".
		Most conversions require Vim to be compiled with the |+iconv|
		feature.  Otherwise only UTF-8 to latin1 conversion and back
		can be done.
		This can be used to display messages with special characters,
		no matter what 'encoding' is set to.  Write the message in
		UTF-8 and use: >
			echo iconv(utf8_str, "utf-8", &enc)
<		Note that Vim uses UTF-8 for all Unicode encodings, conversion
		from/to UCS-2 is automatically changed to use UTF-8.  You
		cannot use UCS-2 in a string anyway, because of the NUL bytes.
		{only available when compiled with the |+multi_byte| feature}

							*indent()*
indent({lnum})	The result is a Number, which is indent of line {lnum} in the
		current buffer.  The indent is counted in spaces, the value
		of 'tabstop' is relevant.  {lnum} is used just like in
		|getline()|.
		When {lnum} is invalid -1 is returned.


index({list}, {expr} [, {start} [, {ic}]])			*index()*
		Return the lowest index in |List| {list} where the item has a
		value equal to {expr}.  There is no automatic conversion, so
		the String "4" is different from the Number 4.  And the number
		4 is different from the Float 4.0.  The value of 'ignorecase'
		is not used here, case always matters.
		If {start} is given then start looking at the item with index
		{start} (may be negative for an item relative to the end).
		When {ic} is given and it is |TRUE|, ignore case.  Otherwise
		case must match.
		-1 is returned when {expr} is not found in {list}.
		Example: >
			:let idx = index(words, "the")
			:if index(numbers, 123) >= 0


input({prompt} [, {text} [, {completion}]])		*input()*
		The result is a String, which is whatever the user typed on
		the command-line.  The {prompt} argument is either a prompt
		string, or a blank string (for no prompt).  A '\n' can be used
		in the prompt to start a new line.
		The highlighting set with |:echohl| is used for the prompt.
		The input is entered just like a command-line, with the same
		editing commands and mappings.  There is a separate history
		for lines typed for input().
		Example: >
			:if input("Coffee or beer? ") == "beer"
			:  echo "Cheers!"
			:endif
<
		If the optional {text} argument is present and not empty, this
		is used for the default reply, as if the user typed this.
		Example: >
			:let color = input("Color? ", "white")

<		The optional {completion} argument specifies the type of
		completion supported for the input.  Without it completion is
		not performed.  The supported completion types are the same as
		that can be supplied to a user-defined command using the
		"-complete=" argument.  Refer to |:command-completion| for
		more information.  Example: >
			let fname = input("File: ", "", "file")
<
		NOTE: This function must not be used in a startup file, for
		the versions that only run in GUI mode (e.g., the Win32 GUI).
		Note: When input() is called from within a mapping it will
		consume remaining characters from that mapping, because a
		mapping is handled like the characters were typed.
		Use |inputsave()| before input() and |inputrestore()|
		after input() to avoid that.  Another solution is to avoid
		that further characters follow in the mapping, e.g., by using
		|:execute| or |:normal|.

		Example with a mapping: >
			:nmap \x :call GetFoo()<CR>:exe "/" . Foo<CR>
			:function GetFoo()
			:  call inputsave()
			:  let g:Foo = input("enter search pattern: ")
			:  call inputrestore()
			:endfunction

inputdialog({prompt} [, {text} [, {cancelreturn}]])		*inputdialog()*
		Like |input()|, but when the GUI is running and text dialogs
		are supported, a dialog window pops up to input the text.
		Example: >
		   :let n = inputdialog("value for shiftwidth", shiftwidth())
		   :if n != ""
		   :  let &sw = n
		   :endif
<		When the dialog is cancelled {cancelreturn} is returned.  When
		omitted an empty string is returned.
		Hitting <Enter> works like pressing the OK button.  Hitting
		<Esc> works like pressing the Cancel button.
		NOTE: Command-line completion is not supported.

inputlist({textlist})					*inputlist()*
		{textlist} must be a |List| of strings.  This |List| is
		displayed, one string per line.  The user will be prompted to
		enter a number, which is returned.
		The user can also select an item by clicking on it with the
		mouse.  For the first string 0 is returned.  When clicking
		above the first item a negative number is returned.  When
		clicking on the prompt one more than the length of {textlist}
		is returned.
		Make sure {textlist} has less than 'lines' entries, otherwise
		it won't work.  It's a good idea to put the entry number at
		the start of the string.  And put a prompt in the first item.
		Example: >
			let color = inputlist(['Select color:', '1. red',
				\ '2. green', '3. blue'])

inputrestore()						*inputrestore()*
		Restore typeahead that was saved with a previous |inputsave()|.
		Should be called the same number of times inputsave() is
		called.  Calling it more often is harmless though.
		Returns 1 when there is nothing to restore, 0 otherwise.

inputsave()						*inputsave()*
		Preserve typeahead (also from mappings) and clear it, so that
		a following prompt gets input from the user.  Should be
		followed by a matching inputrestore() after the prompt.  Can
		be used several times, in which case there must be just as
		many inputrestore() calls.
		Returns 1 when out of memory, 0 otherwise.

inputsecret({prompt} [, {text}])			*inputsecret()*
		This function acts much like the |input()| function with but
		two exceptions:
		a) the user's response will be displayed as a sequence of
		asterisks ("*") thereby keeping the entry secret, and
		b) the user's response will not be recorded on the input
		|history| stack.
		The result is a String, which is whatever the user actually
		typed on the command-line in response to the issued prompt.
		NOTE: Command-line completion is not supported.

insert({list}, {item} [, {idx}])			*insert()*
		Insert {item} at the start of |List| {list}.
		If {idx} is specified insert {item} before the item with index
		{idx}.  If {idx} is zero it goes before the first item, just
		like omitting {idx}.  A negative {idx} is also possible, see
		|list-index|.  -1 inserts just before the last item.
		Returns the resulting |List|.  Examples: >
			:let mylist = insert([2, 3, 5], 1)
			:call insert(mylist, 4, -1)
			:call insert(mylist, 6, len(mylist))
<		The last example can be done simpler with |add()|.
		Note that when {item} is a |List| it is inserted as a single
		item.  Use |extend()| to concatenate |Lists|.

invert({expr})						*invert()*
		Bitwise invert.  The argument is converted to a number.  A
		List, Dict or Float argument causes an error.  Example: >
			:let bits = invert(bits)

isdirectory({directory})				*isdirectory()*
		The result is a Number, which is |TRUE| when a directory
		with the name {directory} exists.  If {directory} doesn't
		exist, or isn't a directory, the result is |FALSE|.  {directory}
		is any expression, which is used as a String.

islocked({expr})					*islocked()* *E786*
		The result is a Number, which is |TRUE| when {expr} is the
		name of a locked variable.
		{expr} must be the name of a variable, |List| item or
		|Dictionary| entry, not the variable itself!  Example: >
			:let alist = [0, ['a', 'b'], 2, 3]
			:lockvar 1 alist
			:echo islocked('alist')		" 1
			:echo islocked('alist[1]')	" 0

<		When {expr} is a variable that does not exist you get an error
		message.  Use |exists()| to check for existence.

isnan({expr})						*isnan()*
		Return |TRUE| if {expr} is a float with value NaN. >
			echo isnan(0.0 / 0.0)
<			1 ~

		{only available when compiled with the |+float| feature}

items({dict})						*items()*
		Return a |List| with all the key-value pairs of {dict}.  Each
		|List| item is a list with two items: the key of a {dict}
		entry and the value of this entry.  The |List| is in arbitrary
		order.

job_getchannel({job})					 *job_getchannel()*
		Get the channel handle that {job} is using.
		To check if the job has no channel: >
			if string(job_getchannel()) == 'channel fail'
<
		{only available when compiled with the |+job| feature}

job_info({job})						*job_info()*
		Returns a Dictionary with information about {job}:
		   "status"	what |job_status()| returns
		   "channel"	what |job_getchannel()| returns
		   "process"	process ID
		   "tty_in"	terminal input name, empty when none
		   "tty_out"	terminal output name, empty when none
		   "exitval"	only valid when "status" is "dead"
		   "exit_cb"	function to be called on exit
		   "stoponexit"	|job-stoponexit|

job_setoptions({job}, {options})			*job_setoptions()*
		Change options for {job}.  Supported are:
		   "stoponexit"	|job-stoponexit|
		   "exit_cb"	|job-exit_cb|

job_start({command} [, {options}])			*job_start()*
		Start a job and return a Job object.  Unlike |system()| and
		|:!cmd| this does not wait for the job to finish.
		To start a job in a terminal window see |term_start()|.

		{command} can be a String.  This works best on MS-Windows.  On
		Unix it is split up in white-separated parts to be passed to
		execvp().  Arguments in double quotes can contain white space.

		{command} can be a List, where the first item is the executable
		and further items are the arguments.  All items are converted
		to String.  This works best on Unix.

		On MS-Windows, job_start() makes a GUI application hidden. If
		want to show it, Use |:!start| instead.

		The command is executed directly, not through a shell, the
		'shell' option is not used.  To use the shell: >
	let job = job_start(["/bin/sh", "-c", "echo hello"])
<		Or: >
	let job = job_start('/bin/sh -c "echo hello"')
<		Note that this will start two processes, the shell and the
		command it executes.  If you don't want this use the "exec"
		shell command.

		On Unix $PATH is used to search for the executable only when
		the command does not contain a slash.

		The job will use the same terminal as Vim.  If it reads from
		stdin the job and Vim will be fighting over input, that
		doesn't work.  Redirect stdin and stdout to avoid problems: >
	let job = job_start(['sh', '-c', "myserver </dev/null >/dev/null"])
<
		The returned Job object can be used to get the status with
		|job_status()| and stop the job with |job_stop()|.

		{options} must be a Dictionary.  It can contain many optional
		items, see |job-options|.

		{only available when compiled with the |+job| feature}

job_status({job})					*job_status()* *E916*
		Returns a String with the status of {job}:
			"run"	job is running
			"fail"	job failed to start
			"dead"	job died or was stopped after running

		On Unix a non-existing command results in "dead" instead of
		"fail", because a fork happens before the failure can be
		detected.

		If an exit callback was set with the "exit_cb" option and the
		job is now detected to be "dead" the callback will be invoked.

		For more information see |job_info()|.

		{only available when compiled with the |+job| feature}

job_stop({job} [, {how}])					*job_stop()*
		Stop the {job}.  This can also be used to signal the job.

		When {how} is omitted or is "term" the job will be terminated.
		For Unix SIGTERM is sent.  On MS-Windows the job will be
		terminated forcedly (there is no "gentle" way).
		This goes to the process group, thus children may also be
		affected.

		Effect for Unix:
			"term"	 SIGTERM (default)
			"hup"	 SIGHUP
			"quit"	 SIGQUIT
			"int"	 SIGINT
			"kill"	 SIGKILL (strongest way to stop)
			number	 signal with that number

		Effect for MS-Windows:
			"term"	 terminate process forcedly (default)
			"hup"	 CTRL_BREAK
			"quit"	 CTRL_BREAK
			"int"	 CTRL_C
			"kill"	 terminate process forcedly
			Others	 CTRL_BREAK

		On Unix the signal is sent to the process group.  This means
		that when the job is "sh -c command" it affects both the shell
		and the command.

		The result is a Number: 1 if the operation could be executed,
		0 if "how" is not supported on the system.
		Note that even when the operation was executed, whether the
		job was actually stopped needs to be checked with
		|job_status()|.

		If the status of the job is "dead", the signal will not be
		sent.  This is to avoid to stop the wrong job (esp. on Unix,
		where process numbers are recycled).

		When using "kill" Vim will assume the job will die and close
		the channel.

		{only available when compiled with the |+job| feature}

join({list} [, {sep}])					*join()*
		Join the items in {list} together into one String.
		When {sep} is specified it is put in between the items.  If
		{sep} is omitted a single space is used.
		Note that {sep} is not added at the end.  You might want to
		add it there too: >
			let lines = join(mylist, "\n") . "\n"
<		String items are used as-is.  |Lists| and |Dictionaries| are
		converted into a string like with |string()|.
		The opposite function is |split()|.

js_decode({string})					*js_decode()*
		This is similar to |json_decode()| with these differences:
		- Object key names do not have to be in quotes.
		- Strings can be in single quotes.
		- Empty items in an array (between two commas) are allowed and
		  result in v:none items.

js_encode({expr})					*js_encode()*
		This is similar to |json_encode()| with these differences:
		- Object key names are not in quotes.
		- v:none items in an array result in an empty item between
		  commas.
		For example, the Vim object:
			[1,v:none,{"one":1},v:none] ~
		Will be encoded as:
			[1,,{one:1},,] ~
		While json_encode() would produce:
			[1,null,{"one":1},null] ~
		This encoding is valid for JavaScript. It is more efficient
		than JSON, especially when using an array with optional items.


json_decode({string})					*json_decode()*
		This parses a JSON formatted string and returns the equivalent
		in Vim values.  See |json_encode()| for the relation between
		JSON and Vim values.
		The decoding is permissive:
		- A trailing comma in an array and object is ignored, e.g.
		  "[1, 2, ]" is the same as "[1, 2]".
		- More floating point numbers are recognized, e.g. "1." for
		  "1.0", or "001.2" for "1.2". Special floating point values
		  "Infinity" and "NaN" (capitalization ignored) are accepted.
		- Leading zeroes in integer numbers are ignored, e.g. "012"
		  for "12" or "-012" for "-12".
		- Capitalization is ignored in literal names null, true or
		  false, e.g. "NULL" for "null", "True" for "true".
		- Control characters U+0000 through U+001F which are not
		  escaped in strings are accepted, e.g. "	" (tab
		  character in string) for "\t".
		- Backslash in an invalid 2-character sequence escape is
		  ignored, e.g. "\a" is decoded as "a".
		- A correct surrogate pair in JSON strings should normally be
		  a 12 character sequence such as "\uD834\uDD1E", but
		  json_decode() silently accepts truncated surrogate pairs
		  such as "\uD834" or "\uD834\u"
								*E938*
		A duplicate key in an object, valid in rfc7159, is not
		accepted by json_decode() as the result must be a valid Vim
		type, e.g. this fails: {"a":"b", "a":"c"}


json_encode({expr})					*json_encode()*
		Encode {expr} as JSON and return this as a string.
		The encoding is specified in:
		https://tools.ietf.org/html/rfc7159.html
		Vim values are converted as follows:
		   Number		decimal number
		   Float		floating point number
		   Float nan		"NaN"
		   Float inf		"Infinity"
		   String		in double quotes (possibly null)
		   Funcref		not possible, error
		   List			as an array (possibly null); when
					used recursively: []
		   Dict			as an object (possibly null); when
					used recursively: {}
		   v:false		"false"
		   v:true		"true"
		   v:none		"null"
		   v:null		"null"
		Note that NaN and Infinity are passed on as values.  This is
		missing in the JSON standard, but several implementations do
		allow it.  If not then you will get an error.

keys({dict})						*keys()*
		Return a |List| with all the keys of {dict}.  The |List| is in
		arbitrary order.

							*len()* *E701*
len({expr})	The result is a Number, which is the length of the argument.
		When {expr} is a String or a Number the length in bytes is
		used, as with |strlen()|.
		When {expr} is a |List| the number of items in the |List| is
		returned.
		When {expr} is a |Dictionary| the number of entries in the
		|Dictionary| is returned.
		Otherwise an error is given.

						*libcall()* *E364* *E368*
libcall({libname}, {funcname}, {argument})
		Call function {funcname} in the run-time library {libname}
		with single argument {argument}.
		This is useful to call functions in a library that you
		especially made to be used with Vim.  Since only one argument
		is possible, calling standard library functions is rather
		limited.
		The result is the String returned by the function.  If the
		function returns NULL, this will appear as an empty string ""
		to Vim.
		If the function returns a number, use libcallnr()!
		If {argument} is a number, it is passed to the function as an
		int; if {argument} is a string, it is passed as a
		null-terminated string.
		This function will fail in |restricted-mode|.

		libcall() allows you to write your own 'plug-in' extensions to
		Vim without having to recompile the program.  It is NOT a
		means to call system functions!  If you try to do so Vim will
		very probably crash.

		For Win32, the functions you write must be placed in a DLL
		and use the normal C calling convention (NOT Pascal which is
		used in Windows System DLLs).  The function must take exactly
		one parameter, either a character pointer or a long integer,
		and must return a character pointer or NULL.  The character
		pointer returned must point to memory that will remain valid
		after the function has returned (e.g. in static data in the
		DLL).  If it points to allocated memory, that memory will
		leak away.  Using a static buffer in the function should work,
		it's then freed when the DLL is unloaded.

		WARNING: If the function returns a non-valid pointer, Vim may
		crash!	This also happens if the function returns a number,
		because Vim thinks it's a pointer.
		For Win32 systems, {libname} should be the filename of the DLL
		without the ".DLL" suffix.  A full path is only required if
		the DLL is not in the usual places.
		For Unix: When compiling your own plugins, remember that the
		object code must be compiled as position-independent ('PIC').
		{only in Win32 and some Unix versions, when the |+libcall|
		feature is present}
		Examples: >
			:echo libcall("libc.so", "getenv", "HOME")
<
							*libcallnr()*
libcallnr({libname}, {funcname}, {argument})
		Just like |libcall()|, but used for a function that returns an
		int instead of a string.
		{only in Win32 on some Unix versions, when the |+libcall|
		feature is present}
		Examples: >
			:echo libcallnr("/usr/lib/libc.so", "getpid", "")
			:call libcallnr("libc.so", "printf", "Hello World!\n")
			:call libcallnr("libc.so", "sleep", 10)
<
							*line()*
line({expr})	The result is a Number, which is the line number of the file
		position given with {expr}.  The accepted positions are:
		    .	    the cursor position
		    $	    the last line in the current buffer
		    'x	    position of mark x (if the mark is not set, 0 is
			    returned)
		    w0	    first line visible in current window (one if the
			    display isn't updated, e.g. in silent Ex mode)
		    w$	    last line visible in current window (this is one
			    less than "w0" if no lines are visible)
		    v	    In Visual mode: the start of the Visual area (the
			    cursor is the end).  When not in Visual mode
			    returns the cursor position.  Differs from |'<| in
			    that it's updated right away.
		Note that a mark in another file can be used.  The line number
		then applies to another buffer.
		To get the column number use |col()|.  To get both use
		|getpos()|.
		Examples: >
			line(".")		line number of the cursor
			line("'t")		line number of mark t
			line("'" . marker)	line number of mark marker
<							*last-position-jump*
		This autocommand jumps to the last known position in a file
		just after opening it, if the '" mark is set: >
     :au BufReadPost *
	 \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
	 \ |   exe "normal! g`\""
	 \ | endif

line2byte({lnum})					*line2byte()*
		Return the byte count from the start of the buffer for line
		{lnum}.  This includes the end-of-line character, depending on
		the 'fileformat' option for the current buffer.  The first
		line returns 1. 'encoding' matters, 'fileencoding' is ignored.
		This can also be used to get the byte count for the line just
		below the last line: >
			line2byte(line("$") + 1)
<		This is the buffer size plus one.  If 'fileencoding' is empty
		it is the file size plus one.
		When {lnum} is invalid, or the |+byte_offset| feature has been
		disabled at compile time, -1 is returned.
		Also see |byte2line()|, |go| and |:goto|.

lispindent({lnum})					*lispindent()*
		Get the amount of indent for line {lnum} according the lisp
		indenting rules, as with 'lisp'.
		The indent is counted in spaces, the value of 'tabstop' is
		relevant.  {lnum} is used just like in |getline()|.
		When {lnum} is invalid or Vim was not compiled the
		|+lispindent| feature, -1 is returned.

localtime()						*localtime()*
		Return the current time, measured as seconds since 1st Jan
		1970.  See also |strftime()| and |getftime()|.


log({expr})						*log()*
		Return the natural logarithm (base e) of {expr} as a |Float|.
		{expr} must evaluate to a |Float| or a |Number| in the range
		(0, inf].
		Examples: >
			:echo log(10)
<			2.302585 >
			:echo log(exp(5))
<			5.0
		{only available when compiled with the |+float| feature}


log10({expr})						*log10()*
		Return the logarithm of Float {expr} to base 10 as a |Float|.
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo log10(1000)
<			3.0 >
			:echo log10(0.01)
<			-2.0
		{only available when compiled with the |+float| feature}

luaeval({expr} [, {expr}])					*luaeval()*
		Evaluate Lua expression {expr} and return its result converted
		to Vim data structures. Second {expr} may hold additional
		argument accessible as _A inside first {expr}.
		Strings are returned as they are.
		Boolean objects are converted to numbers.
		Numbers are converted to |Float| values if vim was compiled
		with |+float| and to numbers otherwise.
		Dictionaries and lists obtained by vim.eval() are returned
		as-is.
		Other objects are returned as zero without any errors.
		See |lua-luaeval| for more details.
		{only available when compiled with the |+lua| feature}

map({expr1}, {expr2})					*map()*
		{expr1} must be a |List| or a |Dictionary|.
		Replace each item in {expr1} with the result of evaluating
		{expr2}.  {expr2} must be a |string| or |Funcref|.

		If {expr2} is a |string|, inside {expr2} |v:val| has the value
		of the current item.  For a |Dictionary| |v:key| has the key
		of the current item and for a |List| |v:key| has the index of
		the current item.
		Example: >
			:call map(mylist, '"> " . v:val . " <"')
<		This puts "> " before and " <" after each item in "mylist".

		Note that {expr2} is the result of an expression and is then
		used as an expression again.  Often it is good to use a
		|literal-string| to avoid having to double backslashes.  You
		still have to double ' quotes

		If {expr2} is a |Funcref| it is called with two arguments:
			1. The key or the index of the current item.
			2. the value of the current item.
		The function must return the new value of the item. Example
		that changes each value by "key-value": >
			func KeyValue(key, val)
			  return a:key . '-' . a:val
			endfunc
			call map(myDict, function('KeyValue'))
<		It is shorter when using a |lambda|: >
			call map(myDict, {key, val -> key . '-' . val})
<		If you do not use "val" you can leave it out: >
			call map(myDict, {key -> 'item: ' . key})
<
		The operation is done in-place.  If you want a |List| or
		|Dictionary| to remain unmodified make a copy first: >
			:let tlist = map(copy(mylist), ' v:val . "\t"')

<		Returns {expr1}, the |List| or |Dictionary| that was filtered.
		When an error is encountered while evaluating {expr2} no
		further items in {expr1} are processed.  When {expr2} is a
		Funcref errors inside a function are ignored, unless it was
		defined with the "abort" flag.


maparg({name} [, {mode} [, {abbr} [, {dict}]]])			*maparg()*
		When {dict} is omitted or zero: Return the rhs of mapping
		{name} in mode {mode}.  The returned String has special
		characters translated like in the output of the ":map" command
		listing.

		When there is no mapping for {name}, an empty String is
		returned.

		The {name} can have special key names, like in the ":map"
		command.

		{mode} can be one of these strings:
			"n"	Normal
			"v"	Visual (including Select)
			"o"	Operator-pending
			"i"	Insert
			"c"	Cmd-line
			"s"	Select
			"x"	Visual
			"l"	langmap |language-mapping|
			"t"	Terminal-Job
			""	Normal, Visual and Operator-pending
		When {mode} is omitted, the modes for "" are used.

		When {abbr} is there and it is |TRUE| use abbreviations
		instead of mappings.

		When {dict} is there and it is |TRUE| return a dictionary
		containing all the information of the mapping with the
		following items:
		  "lhs"	     The {lhs} of the mapping.
		  "rhs"	     The {rhs} of the mapping as typed.
		  "silent"   1 for a |:map-silent| mapping, else 0.
		  "noremap"  1 if the {rhs} of the mapping is not remappable.
		  "expr"     1 for an expression mapping (|:map-<expr>|).
		  "buffer"   1 for a buffer local mapping (|:map-local|).
		  "mode"     Modes for which the mapping is defined. In
			     addition to the modes mentioned above, these
			     characters will be used:
			     " "     Normal, Visual and Operator-pending
			     "!"     Insert and Commandline mode
				     (|mapmode-ic|)
		  "sid"	     The script local ID, used for <sid> mappings
			     (|<SID>|).
		  "nowait"   Do not wait for other, longer mappings.
			     (|:map-<nowait>|).

		The mappings local to the current buffer are checked first,
		then the global mappings.
		This function can be used to map a key even when it's already
		mapped, and have it do the original mapping too.  Sketch: >
			exe 'nnoremap <Tab> ==' . maparg('<Tab>', 'n')


mapcheck({name} [, {mode} [, {abbr}]])			*mapcheck()*
		Check if there is a mapping that matches with {name} in mode
		{mode}.  See |maparg()| for {mode} and special names in
		{name}.
		When {abbr} is there and it is |TRUE| use abbreviations
		instead of mappings.
		A match happens with a mapping that starts with {name} and
		with a mapping which is equal to the start of {name}.

			matches mapping "a"	"ab"	"abc" ~
		   mapcheck("a")	yes	yes	 yes
		   mapcheck("abc")	yes	yes	 yes
		   mapcheck("ax")	yes	no	 no
		   mapcheck("b")	no	no	 no

		The difference with maparg() is that mapcheck() finds a
		mapping that matches with {name}, while maparg() only finds a
		mapping for {name} exactly.
		When there is no mapping that starts with {name}, an empty
		String is returned.  If there is one, the rhs of that mapping
		is returned.  If there are several mappings that start with
		{name}, the rhs of one of them is returned.
		The mappings local to the current buffer are checked first,
		then the global mappings.
		This function can be used to check if a mapping can be added
		without being ambiguous.  Example: >
	:if mapcheck("_vv") == ""
	:   map _vv :set guifont=7x13<CR>
	:endif
<		This avoids adding the "_vv" mapping when there already is a
		mapping for "_v" or for "_vvv".

match({expr}, {pat} [, {start} [, {count}]])			*match()*
		When {expr} is a |List| then this returns the index of the
		first item where {pat} matches.  Each item is used as a
		String, |Lists| and |Dictionaries| are used as echoed.
		Otherwise, {expr} is used as a String.  The result is a
		Number, which gives the index (byte offset) in {expr} where
		{pat} matches.
		A match at the first character or |List| item returns zero.
		If there is no match -1 is returned.
		For getting submatches see |matchlist()|.
		Example: >
			:echo match("testing", "ing")	" results in 4
			:echo match([1, 'x'], '\a')	" results in 1
<		See |string-match| for how {pat} is used.
								*strpbrk()*
		Vim doesn't have a strpbrk() function.  But you can do: >
			:let sepidx = match(line, '[.,;: \t]')
<								*strcasestr()*
		Vim doesn't have a strcasestr() function.  But you can add
		"\c" to the pattern to ignore case: >
			:let idx = match(haystack, '\cneedle')
<
		If {start} is given, the search starts from byte index
		{start} in a String or item {start} in a |List|.
		The result, however, is still the index counted from the
		first character/item.  Example: >
			:echo match("testing", "ing", 2)
<		result is again "4". >
			:echo match("testing", "ing", 4)
<		result is again "4". >
			:echo match("testing", "t", 2)
<		result is "3".
		For a String, if {start} > 0 then it is like the string starts
		{start} bytes later, thus "^" will match at {start}.  Except
		when {count} is given, then it's like matches before the
		{start} byte are ignored (this is a bit complicated to keep it
		backwards compatible).
		For a String, if {start} < 0, it will be set to 0.  For a list
		the index is counted from the end.
		If {start} is out of range ({start} > strlen({expr}) for a
		String or {start} > len({expr}) for a |List|) -1 is returned.

		When {count} is given use the {count}'th match.  When a match
		is found in a String the search for the next one starts one
		character further.  Thus this example results in 1: >
			echo match("testing", "..", 0, 2)
<		In a |List| the search continues in the next item.
		Note that when {count} is added the way {start} works changes,
		see above.

		See |pattern| for the patterns that are accepted.
		The 'ignorecase' option is used to set the ignore-caseness of
		the pattern.  'smartcase' is NOT used.  The matching is always
		done like 'magic' is set and 'cpoptions' is empty.

					*matchadd()* *E798* *E799* *E801*
matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
		Defines a pattern to be highlighted in the current window (a
		"match").  It will be highlighted with {group}.  Returns an
		identification number (ID), which can be used to delete the
		match using |matchdelete()|.
		Matching is case sensitive and magic, unless case sensitivity
		or magicness are explicitly overridden in {pattern}.  The
		'magic', 'smartcase' and 'ignorecase' options are not used.
		The "Conceal" value is special, it causes the match to be
		concealed.

		The optional {priority} argument assigns a priority to the
		match.  A match with a high priority will have its
		highlighting overrule that of a match with a lower priority.
		A priority is specified as an integer (negative numbers are no
		exception).  If the {priority} argument is not specified, the
		default priority is 10.  The priority of 'hlsearch' is zero,
		hence all matches with a priority greater than zero will
		overrule it.  Syntax highlighting (see 'syntax') is a separate
		mechanism, and regardless of the chosen priority a match will
		always overrule syntax highlighting.

		The optional {id} argument allows the request for a specific
		match ID.  If a specified ID is already taken, an error
		message will appear and the match will not be added.  An ID
		is specified as a positive integer (zero excluded).  IDs 1, 2
		and 3 are reserved for |:match|, |:2match| and |:3match|,
		respectively.  If the {id} argument is not specified or -1,
		|matchadd()| automatically chooses a free ID.

		The optional {dict} argument allows for further custom
		values. Currently this is used to specify a match specific
		conceal character that will be shown for |hl-Conceal|
		highlighted matches. The dict can have the following members:

			conceal	    Special character to show instead of the
				    match (only for |hl-Conceal| highlighted
				    matches, see |:syn-cchar|)

		The number of matches is not limited, as it is the case with
		the |:match| commands.

		Example: >
			:highlight MyGroup ctermbg=green guibg=green
			:let m = matchadd("MyGroup", "TODO")
<		Deletion of the pattern: >
			:call matchdelete(m)

<		A list of matches defined by |matchadd()| and |:match| are
		available from |getmatches()|.  All matches can be deleted in
		one operation by |clearmatches()|.

							*matchaddpos()*
matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
		Same as |matchadd()|, but requires a list of positions {pos}
		instead of a pattern. This command is faster than |matchadd()|
		because it does not require to handle regular expressions and
		sets buffer line boundaries to redraw screen. It is supposed
		to be used when fast match additions and deletions are
		required, for example to highlight matching parentheses.

		The list {pos} can contain one of these items:
		- A number.  This whole line will be highlighted.  The first
		  line has number 1.
		- A list with one number, e.g., [23]. The whole line with this
		  number will be highlighted.
		- A list with two numbers, e.g., [23, 11]. The first number is
		  the line number, the second one is the column number (first
		  column is 1, the value must correspond to the byte index as
		  |col()| would return).  The character at this position will
		  be highlighted.
		- A list with three numbers, e.g., [23, 11, 3]. As above, but
		  the third number gives the length of the highlight in bytes.

		The maximum number of positions is 8.

		Example: >
			:highlight MyGroup ctermbg=green guibg=green
			:let m = matchaddpos("MyGroup", [[23, 24], 34])
<		Deletion of the pattern: >
			:call matchdelete(m)

<		Matches added by |matchaddpos()| are returned by
		|getmatches()| with an entry "pos1", "pos2", etc., with the
		value a list like the {pos} item.

matcharg({nr})							*matcharg()*
		Selects the {nr} match item, as set with a |:match|,
		|:2match| or |:3match| command.
		Return a |List| with two elements:
			The name of the highlight group used
			The pattern used.
		When {nr} is not 1, 2 or 3 returns an empty |List|.
		When there is no match item set returns ['', ''].
		This is useful to save and restore a |:match|.
		Highlighting matches using the |:match| commands are limited
		to three matches. |matchadd()| does not have this limitation.

matchdelete({id})			       *matchdelete()* *E802* *E803*
		Deletes a match with ID {id} previously defined by |matchadd()|
		or one of the |:match| commands.  Returns 0 if successful,
		otherwise -1.  See example for |matchadd()|.  All matches can
		be deleted in one operation by |clearmatches()|.

matchend({expr}, {pat} [, {start} [, {count}]])			*matchend()*
		Same as |match()|, but return the index of first character
		after the match.  Example: >
			:echo matchend("testing", "ing")
<		results in "7".
							*strspn()* *strcspn()*
		Vim doesn't have a strspn() or strcspn() function, but you can
		do it with matchend(): >
			:let span = matchend(line, '[a-zA-Z]')
			:let span = matchend(line, '[^a-zA-Z]')
<		Except that -1 is returned when there are no matches.

		The {start}, if given, has the same meaning as for |match()|. >
			:echo matchend("testing", "ing", 2)
<		results in "7". >
			:echo matchend("testing", "ing", 5)
<		result is "-1".
		When {expr} is a |List| the result is equal to |match()|.

matchlist({expr}, {pat} [, {start} [, {count}]])		*matchlist()*
		Same as |match()|, but return a |List|.  The first item in the
		list is the matched string, same as what matchstr() would
		return.  Following items are submatches, like "\1", "\2", etc.
		in |:substitute|.  When an optional submatch didn't match an
		empty string is used.  Example: >
			echo matchlist('acd', '\(a\)\?\(b\)\?\(c\)\?\(.*\)')
<		Results in: ['acd', 'a', '', 'c', 'd', '', '', '', '', '']
		When there is no match an empty list is returned.

matchstr({expr}, {pat} [, {start} [, {count}]])			*matchstr()*
		Same as |match()|, but return the matched string.  Example: >
			:echo matchstr("testing", "ing")
<		results in "ing".
		When there is no match "" is returned.
		The {start}, if given, has the same meaning as for |match()|. >
			:echo matchstr("testing", "ing", 2)
<		results in "ing". >
			:echo matchstr("testing", "ing", 5)
<		result is "".
		When {expr} is a |List| then the matching item is returned.
		The type isn't changed, it's not necessarily a String.

matchstrpos({expr}, {pat} [, {start} [, {count}]])		*matchstrpos()*
		Same as |matchstr()|, but return the matched string, the start
		position and the end position of the match.  Example: >
			:echo matchstrpos("testing", "ing")
<		results in ["ing", 4, 7].
		When there is no match ["", -1, -1] is returned.
		The {start}, if given, has the same meaning as for |match()|. >
			:echo matchstrpos("testing", "ing", 2)
<		results in ["ing", 4, 7]. >
			:echo matchstrpos("testing", "ing", 5)
<		result is ["", -1, -1].
		When {expr} is a |List| then the matching item, the index
		of first item where {pat} matches, the start position and the
		end position of the match are returned. >
			:echo matchstrpos([1, '__x'], '\a')
<		result is ["x", 1, 2, 3].
		The type isn't changed, it's not necessarily a String.

							*max()*
max({expr})	Return the maximum value of all items in {expr}.
		{expr} can be a list or a dictionary.  For a dictionary,
		it returns the maximum of all values in the dictionary.
		If {expr} is neither a list nor a dictionary, or one of the
		items in {expr} cannot be used as a Number this results in
		an error.  An empty |List| or |Dictionary| results in zero.

							*min()*
min({expr})	Return the minimum value of all items in {expr}.
		{expr} can be a list or a dictionary.  For a dictionary,
		it returns the minimum of all values in the dictionary.
		If {expr} is neither a list nor a dictionary, or one of the
		items in {expr} cannot be used as a Number this results in
		an error.  An empty |List| or |Dictionary| results in zero.

							*mkdir()* *E739*
mkdir({name} [, {path} [, {prot}]])
		Create directory {name}.
		If {path} is "p" then intermediate directories are created as
		necessary.  Otherwise it must be "".
		If {prot} is given it is used to set the protection bits of
		the new directory.  The default is 0755 (rwxr-xr-x: r/w for
		the user readable for others).  Use 0700 to make it unreadable
		for others.  This is only used for the last part of {name}.
		Thus if you create /tmp/foo/bar then /tmp/foo will be created
		with 0755.
		Example: >
			:call mkdir($HOME . "/tmp/foo/bar", "p", 0700)
<		This function is not available in the |sandbox|.
		There is no error if the directory already exists and the "p"
		flag is passed (since patch 8.0.1708).
		Not available on all systems.  To check use: >
			:if exists("*mkdir")
<
							*mode()*
mode([expr])	Return a string that indicates the current mode.
		If [expr] is supplied and it evaluates to a non-zero Number or
		a non-empty String (|non-zero-arg|), then the full mode is
		returned, otherwise only the first letter is returned.

			n	Normal, Terminal-Normal
			no	Operator-pending
			v	Visual by character
			V	Visual by line
			CTRL-V	Visual blockwise
			s	Select by character
			S	Select by line
			CTRL-S	Select blockwise
			i	Insert
			ic	Insert mode completion |compl-generic|
			ix	Insert mode |i_CTRL-X| completion
			R	Replace |R|
			Rc	Replace mode completion |compl-generic|
			Rv	Virtual Replace |gR|
			Rx	Replace mode |i_CTRL-X| completion
			c	Command-line editing
			cv	Vim Ex mode |gQ|
			ce	Normal Ex mode |Q|
			r	Hit-enter prompt
			rm	The -- more -- prompt
			r?	A |:confirm| query of some sort
			!	Shell or external command is executing
			t	Terminal-Job mode: keys go to the job
		This is useful in the 'statusline' option or when used
		with |remote_expr()| In most other places it always returns
		"c" or "n".
		Also see |visualmode()|.

mzeval({expr})							*mzeval()*
		Evaluate MzScheme expression {expr} and return its result
		converted to Vim data structures.
		Numbers and strings are returned as they are.
		Pairs (including lists and improper lists) and vectors are
		returned as Vim |Lists|.
		Hash tables are represented as Vim |Dictionary| type with keys
		converted to strings.
		All other types are converted to string with display function.
		Examples: >
		    :mz (define l (list 1 2 3))
		    :mz (define h (make-hash)) (hash-set! h "list" l)
		    :echo mzeval("l")
		    :echo mzeval("h")
<
		{only available when compiled with the |+mzscheme| feature}

nextnonblank({lnum})					*nextnonblank()*
		Return the line number of the first line at or below {lnum}
		that is not blank.  Example: >
			if getline(nextnonblank(1)) =~ "Java"
<		When {lnum} is invalid or there is no non-blank line at or
		below it, zero is returned.
		See also |prevnonblank()|.

nr2char({expr} [, {utf8}])				*nr2char()*
		Return a string with a single character, which has the number
		value {expr}.  Examples: >
			nr2char(64)		returns "@"
			nr2char(32)		returns " "
<		When {utf8} is omitted or zero, the current 'encoding' is used.
		Example for "utf-8": >
			nr2char(300)		returns I with bow character
<		With {utf8} set to 1, always return utf-8 characters.
		Note that a NUL character in the file is specified with
		nr2char(10), because NULs are represented with newline
		characters.  nr2char(0) is a real NUL and terminates the
		string, thus results in an empty string.

or({expr}, {expr})					*or()*
		Bitwise OR on the two arguments.  The arguments are converted
		to a number.  A List, Dict or Float argument causes an error.
		Example: >
			:let bits = or(bits, 0x80)


pathshorten({expr})					*pathshorten()*
		Shorten directory names in the path {expr} and return the
		result.  The tail, the file name, is kept as-is.  The other
		components in the path are reduced to single letters.  Leading
		'~' and '.' characters are kept.  Example: >
			:echo pathshorten('~/.vim/autoload/myfile.vim')
<			~/.v/a/myfile.vim ~
		It doesn't matter if the path exists or not.

perleval({expr})					*perleval()*
		Evaluate Perl expression {expr} in scalar context and return
		its result converted to Vim data structures. If value can't be
		converted, it is returned as a string Perl representation.
		Note: If you want an array or hash, {expr} must return a
		reference to it.
		Example: >
			:echo perleval('[1 .. 4]')
<			[1, 2, 3, 4]
		{only available when compiled with the |+perl| feature}

pow({x}, {y})						*pow()*
		Return the power of {x} to the exponent {y} as a |Float|.
		{x} and {y} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo pow(3, 3)
<			27.0 >
			:echo pow(2, 16)
<			65536.0 >
			:echo pow(32, 0.20)
<			2.0
		{only available when compiled with the |+float| feature}

prevnonblank({lnum})					*prevnonblank()*
		Return the line number of the first line at or above {lnum}
		that is not blank.  Example: >
			let ind = indent(prevnonblank(v:lnum - 1))
<		When {lnum} is invalid or there is no non-blank line at or
		above it, zero is returned.
		Also see |nextnonblank()|.


printf({fmt}, {expr1} ...)				*printf()*
		Return a String with {fmt}, where "%" items are replaced by
		the formatted form of their respective arguments.  Example: >
			printf("%4d: E%d %.30s", lnum, errno, msg)
<		May result in:
			"  99: E42 asdfasdfasdfasdfasdfasdfasdfas" ~

		Often used items are:
		  %s	string
		  %6S	string right-aligned in 6 display cells
		  %6s	string right-aligned in 6 bytes
		  %.9s	string truncated to 9 bytes
		  %c	single byte
		  %d	decimal number
		  %5d	decimal number padded with spaces to 5 characters
		  %x	hex number
		  %04x	hex number padded with zeros to at least 4 characters
		  %X	hex number using upper case letters
		  %o	octal number
		  %08b	binary number padded with zeros to at least 8 chars
		  %f	floating point number as 12.23, inf, -inf or nan
		  %F	floating point number as 12.23, INF, -INF or NAN
		  %e	floating point number as 1.23e3, inf, -inf or nan
		  %E	floating point number as 1.23E3, INF, -INF or NAN
		  %g	floating point number, as %f or %e depending on value
		  %G	floating point number, as %F or %E depending on value
		  %%	the % character itself

		Conversion specifications start with '%' and end with the
		conversion type.  All other characters are copied unchanged to
		the result.

		The "%" starts a conversion specification.  The following
		arguments appear in sequence:

			%  [flags]  [field-width]  [.precision]  type

		flags
			Zero or more of the following flags:

		    #	      The value should be converted to an "alternate
			      form".  For c, d, and s conversions, this option
			      has no effect.  For o conversions, the precision
			      of the number is increased to force the first
			      character of the output string to a zero (except
			      if a zero value is printed with an explicit
			      precision of zero).
			      For b and B conversions, a non-zero result has
			      the string "0b" (or "0B" for B conversions)
			      prepended to it.
			      For x and X conversions, a non-zero result has
			      the string "0x" (or "0X" for X conversions)
			      prepended to it.

		    0 (zero)  Zero padding.  For all conversions the converted
			      value is padded on the left with zeros rather
			      than blanks.  If a precision is given with a
			      numeric conversion (d, b, B, o, x, and X), the 0
			      flag is ignored.

		    -	      A negative field width flag; the converted value
			      is to be left adjusted on the field boundary.
			      The converted value is padded on the right with
			      blanks, rather than on the left with blanks or
			      zeros.  A - overrides a 0 if both are given.

		    ' ' (space)  A blank should be left before a positive
			      number produced by a signed conversion (d).

		    +	      A sign must always be placed before a number
			      produced by a signed conversion.  A + overrides
			      a space if both are used.

		field-width
			An optional decimal digit string specifying a minimum
			field width.  If the converted value has fewer bytes
			than the field width, it will be padded with spaces on
			the left (or right, if the left-adjustment flag has
			been given) to fill out the field width.

		.precision
			An optional precision, in the form of a period '.'
			followed by an optional digit string.  If the digit
			string is omitted, the precision is taken as zero.
			This gives the minimum number of digits to appear for
			d, o, x, and X conversions, or the maximum number of
			bytes to be printed from a string for s conversions.
			For floating point it is the number of digits after
			the decimal point.

		type
			A character that specifies the type of conversion to
			be applied, see below.

		A field width or precision, or both, may be indicated by an
		asterisk '*' instead of a digit string.  In this case, a
		Number argument supplies the field width or precision.  A
		negative field width is treated as a left adjustment flag
		followed by a positive field width; a negative precision is
		treated as though it were missing.  Example: >
			:echo printf("%d: %.*s", nr, width, line)
<		This limits the length of the text used from "line" to
		"width" bytes.

		The conversion specifiers and their meanings are:

				*printf-d* *printf-b* *printf-B* *printf-o*
				*printf-x* *printf-X*
		dbBoxX	The Number argument is converted to signed decimal
			(d), unsigned binary (b and B), unsigned octal (o), or
			unsigned hexadecimal (x and X) notation.  The letters
			"abcdef" are used for x conversions; the letters
			"ABCDEF" are used for X conversions.
			The precision, if any, gives the minimum number of
			digits that must appear; if the converted value
			requires fewer digits, it is padded on the left with
			zeros.
			In no case does a non-existent or small field width
			cause truncation of a numeric field; if the result of
			a conversion is wider than the field width, the field
			is expanded to contain the conversion result.
			The 'h' modifier indicates the argument is 16 bits.
			The 'l' modifier indicates the argument is 32 bits.
			The 'L' modifier indicates the argument is 64 bits.
			Generally, these modifiers are not useful. They are
			ignored when type is known from the argument.

		i	alias for d
		D	alias for ld
		U	alias for lu
		O	alias for lo

							*printf-c*
		c	The Number argument is converted to a byte, and the
			resulting character is written.

							*printf-s*
		s	The text of the String argument is used.  If a
			precision is specified, no more bytes than the number
			specified are used.
			If the argument is not a String type, it is
			automatically converted to text with the same format
			as ":echo".
							*printf-S*
		S	The text of the String argument is used.  If a
			precision is specified, no more display cells than the
			number specified are used.  Without the |+multi_byte|
			feature works just like 's'.

							*printf-f* *E807*
		f F	The Float argument is converted into a string of the
			form 123.456.  The precision specifies the number of
			digits after the decimal point.  When the precision is
			zero the decimal point is omitted.  When the precision
			is not specified 6 is used.  A really big number
			(out of range or dividing by zero) results in "inf"
			or "-inf" with %f (INF or -INF with %F).
			"0.0 / 0.0" results in "nan" with %f (NAN with %F).
			Example: >
				echo printf("%.2f", 12.115)
<				12.12
			Note that roundoff depends on the system libraries.
			Use |round()| when in doubt.

							*printf-e* *printf-E*
		e E	The Float argument is converted into a string of the
			form 1.234e+03 or 1.234E+03 when using 'E'.  The
			precision specifies the number of digits after the
			decimal point, like with 'f'.

							*printf-g* *printf-G*
		g G	The Float argument is converted like with 'f' if the
			value is between 0.001 (inclusive) and 10000000.0
			(exclusive).  Otherwise 'e' is used for 'g' and 'E'
			for 'G'.  When no precision is specified superfluous
			zeroes and '+' signs are removed, except for the zero
			immediately after the decimal point.  Thus 10000000.0
			results in 1.0e7.

							*printf-%*
		%	A '%' is written.  No argument is converted.  The
			complete conversion specification is "%%".

		When a Number argument is expected a String argument is also
		accepted and automatically converted.
		When a Float or String argument is expected a Number argument
		is also accepted and automatically converted.
		Any other argument type results in an error message.

							*E766* *E767*
		The number of {exprN} arguments must exactly match the number
		of "%" items.  If there are not sufficient or too many
		arguments an error is given.  Up to 18 arguments can be used.


pumvisible()						*pumvisible()*
		Returns non-zero when the popup menu is visible, zero
		otherwise.  See |ins-completion-menu|.
		This can be used to avoid some things that would remove the
		popup menu.

py3eval({expr})						*py3eval()*
		Evaluate Python expression {expr} and return its result
		converted to Vim data structures.
		Numbers and strings are returned as they are (strings are
		copied though, Unicode strings are additionally converted to
		'encoding').
		Lists are represented as Vim |List| type.
		Dictionaries are represented as Vim |Dictionary| type with
		keys converted to strings.
		{only available when compiled with the |+python3| feature}

							*E858* *E859*
pyeval({expr})						*pyeval()*
		Evaluate Python expression {expr} and return its result
		converted to Vim data structures.
		Numbers and strings are returned as they are (strings are
		copied though).
		Lists are represented as Vim |List| type.
		Dictionaries are represented as Vim |Dictionary| type,
		non-string keys result in error.
		{only available when compiled with the |+python| feature}

pyxeval({expr})						*pyxeval()*
		Evaluate Python expression {expr} and return its result
		converted to Vim data structures.
		Uses Python 2 or 3, see |python_x| and 'pyxversion'.
		See also: |pyeval()|, |py3eval()|
		{only available when compiled with the |+python| or the
		|+python3| feature}

							*E726* *E727*
range({expr} [, {max} [, {stride}]])				*range()*
		Returns a |List| with Numbers:
		- If only {expr} is specified: [0, 1, ..., {expr} - 1]
		- If {max} is specified: [{expr}, {expr} + 1, ..., {max}]
		- If {stride} is specified: [{expr}, {expr} + {stride}, ...,
		  {max}] (increasing {expr} with {stride} each time, not
		  producing a value past {max}).
		When the maximum is one before the start the result is an
		empty list.  When the maximum is more than one before the
		start this is an error.
		Examples: >
			range(4)		" [0, 1, 2, 3]
			range(2, 4)		" [2, 3, 4]
			range(2, 9, 3)		" [2, 5, 8]
			range(2, -2, -1)	" [2, 1, 0, -1, -2]
			range(0)		" []
			range(2, 0)		" error!
<
							*readfile()*
readfile({fname} [, {binary} [, {max}]])
		Read file {fname} and return a |List|, each line of the file
		as an item.  Lines are broken at NL characters.  Macintosh
		files separated with CR will result in a single long line
		(unless a NL appears somewhere).
		All NUL characters are replaced with a NL character.
		When {binary} contains "b" binary mode is used:
		- When the last line ends in a NL an extra empty list item is
		  added.
		- No CR characters are removed.
		Otherwise:
		- CR characters that appear before a NL are removed.
		- Whether the last line ends in a NL or not does not matter.
		- When 'encoding' is Unicode any UTF-8 byte order mark is
		  removed from the text.
		When {max} is given this specifies the maximum number of lines
		to be read.  Useful if you only want to check the first ten
		lines of a file: >
			:for line in readfile(fname, '', 10)
			:  if line =~ 'Date' | echo line | endif
			:endfor
<		When {max} is negative -{max} lines from the end of the file
		are returned, or as many as there are.
		When {max} is zero the result is an empty list.
		Note that without {max} the whole file is read into memory.
		Also note that there is no recognition of encoding.  Read a
		file into a buffer if you need to.
		When the file can't be opened an error message is given and
		the result is an empty list.
		Also see |writefile()|.

reltime([{start} [, {end}]])				*reltime()*
		Return an item that represents a time value.  The format of
		the item depends on the system.  It can be passed to
		|reltimestr()| to convert it to a string  or |reltimefloat()|
		to convert to a Float.
		Without an argument it returns the current time.
		With one argument is returns the time passed since the time
		specified in the argument.
		With two arguments it returns the time passed between {start}
		and {end}.
		The {start} and {end} arguments must be values returned by
		reltime().
		{only available when compiled with the |+reltime| feature}

reltimefloat({time})				*reltimefloat()*
		Return a Float that represents the time value of {time}.
		Example: >
			let start = reltime()
			call MyFunction()
			let seconds = reltimefloat(reltime(start))
<		See the note of reltimestr() about overhead.
		Also see |profiling|.
		{only available when compiled with the |+reltime| feature}

reltimestr({time})				*reltimestr()*
		Return a String that represents the time value of {time}.
		This is the number of seconds, a dot and the number of
		microseconds.  Example: >
			let start = reltime()
			call MyFunction()
			echo reltimestr(reltime(start))
<		Note that overhead for the commands will be added to the time.
		The accuracy depends on the system.
		Leading spaces are used to make the string align nicely.  You
		can use split() to remove it. >
			echo split(reltimestr(reltime(start)))[0]
<		Also see |profiling|.
		{only available when compiled with the |+reltime| feature}

							*remote_expr()* *E449*
remote_expr({server}, {string} [, {idvar} [, {timeout}]])
		Send the {string} to {server}.  The string is sent as an
		expression and the result is returned after evaluation.
		The result must be a String or a |List|.  A |List| is turned
		into a String by joining the items with a line break in
		between (not at the end), like with join(expr, "\n").
		If {idvar} is present and not empty, it is taken as the name
		of a variable and a {serverid} for later use with
		|remote_read()| is stored there.
		If {timeout} is given the read times out after this many
		seconds.  Otherwise a timeout of 600 seconds is used.
		See also |clientserver| |RemoteReply|.
		This function is not available in the |sandbox|.
		{only available when compiled with the |+clientserver| feature}
		Note: Any errors will cause a local error message to be issued
		and the result will be the empty string.

		Variables will be evaluated in the global namespace,
		independent of a function currently being active.  Except
		when in debug mode, then local function variables and
		arguments can be evaluated.

		Examples: >
			:echo remote_expr("gvim", "2+2")
			:echo remote_expr("gvim1", "b:current_syntax")
<

remote_foreground({server})				*remote_foreground()*
		Move the Vim server with the name {server} to the foreground.
		This works like: >
			remote_expr({server}, "foreground()")
<		Except that on Win32 systems the client does the work, to work
		around the problem that the OS doesn't always allow the server
		to bring itself to the foreground.
		Note: This does not restore the window if it was minimized,
		like foreground() does.
		This function is not available in the |sandbox|.
		{only in the Win32, Athena, Motif and GTK GUI versions and the
		Win32 console version}


remote_peek({serverid} [, {retvar}])		*remote_peek()*
		Returns a positive number if there are available strings
		from {serverid}.  Copies any reply string into the variable
		{retvar} if specified.  {retvar} must be a string with the
		name of a variable.
		Returns zero if none are available.
		Returns -1 if something is wrong.
		See also |clientserver|.
		This function is not available in the |sandbox|.
		{only available when compiled with the |+clientserver| feature}
		Examples: >
			:let repl = ""
			:echo "PEEK: ".remote_peek(id, "repl").": ".repl

remote_read({serverid}, [{timeout}])			*remote_read()*
		Return the oldest available reply from {serverid} and consume
		it.  Unless a {timeout} in seconds is given, it blocks until a
		reply is available.
		See also |clientserver|.
		This function is not available in the |sandbox|.
		{only available when compiled with the |+clientserver| feature}
		Example: >
			:echo remote_read(id)
<
							*remote_send()* *E241*
remote_send({server}, {string} [, {idvar}])
		Send the {string} to {server}.  The string is sent as input
		keys and the function returns immediately.  At the Vim server
		the keys are not mapped |:map|.
		If {idvar} is present, it is taken as the name of a variable
		and a {serverid} for later use with remote_read() is stored
		there.
		See also |clientserver| |RemoteReply|.
		This function is not available in the |sandbox|.
		{only available when compiled with the |+clientserver| feature}

		Note: Any errors will be reported in the server and may mess
		up the display.
		Examples: >
		:echo remote_send("gvim", ":DropAndReply ".file, "serverid").
		 \ remote_read(serverid)

		:autocmd NONE RemoteReply *
		 \ echo remote_read(expand("<amatch>"))
		:echo remote_send("gvim", ":sleep 10 | echo ".
		 \ 'server2client(expand("<client>"), "HELLO")<CR>')
<
					*remote_startserver()* *E941* *E942*
remote_startserver({name})
		Become the server {name}.  This fails if already running as a
		server, when |v:servername| is not empty.
		{only available when compiled with the |+clientserver| feature}

remove({list}, {idx} [, {end}])				*remove()*
		Without {end}: Remove the item at {idx} from |List| {list} and
		return the item.
		With {end}: Remove items from {idx} to {end} (inclusive) and
		return a List with these items.  When {idx} points to the same
		item as {end} a list with one item is returned.  When {end}
		points to an item before {idx} this is an error.
		See |list-index| for possible values of {idx} and {end}.
		Example: >
			:echo "last item: " . remove(mylist, -1)
			:call remove(mylist, 0, 9)
remove({dict}, {key})
		Remove the entry from {dict} with key {key}.  Example: >
			:echo "removed " . remove(dict, "one")
<		If there is no {key} in {dict} this is an error.

		Use |delete()| to remove a file.

rename({from}, {to})					*rename()*
		Rename the file by the name {from} to the name {to}.  This
		should also work to move files across file systems.  The
		result is a Number, which is 0 if the file was renamed
		successfully, and non-zero when the renaming failed.
		NOTE: If {to} exists it is overwritten without warning.
		This function is not available in the |sandbox|.

repeat({expr}, {count})					*repeat()*
		Repeat {expr} {count} times and return the concatenated
		result.  Example: >
			:let separator = repeat('-', 80)
<		When {count} is zero or negative the result is empty.
		When {expr} is a |List| the result is {expr} concatenated
		{count} times.  Example: >
			:let longlist = repeat(['a', 'b'], 3)
<		Results in ['a', 'b', 'a', 'b', 'a', 'b'].


resolve({filename})					*resolve()* *E655*
		On MS-Windows, when {filename} is a shortcut (a .lnk file),
		returns the path the shortcut points to in a simplified form.
		On Unix, repeat resolving symbolic links in all path
		components of {filename} and return the simplified result.
		To cope with link cycles, resolving of symbolic links is
		stopped after 100 iterations.
		On other systems, return the simplified {filename}.
		The simplification step is done as by |simplify()|.
		resolve() keeps a leading path component specifying the
		current directory (provided the result is still a relative
		path name) and also keeps a trailing path separator.

							*reverse()*
reverse({list})	Reverse the order of items in {list} in-place.  Returns
		{list}.
		If you want a list to remain unmodified make a copy first: >
			:let revlist = reverse(copy(mylist))

round({expr})							*round()*
		Round off {expr} to the nearest integral value and return it
		as a |Float|.  If {expr} lies halfway between two integral
		values, then use the larger one (away from zero).
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			echo round(0.456)
<			0.0  >
			echo round(4.5)
<			5.0 >
			echo round(-4.5)
<			-5.0
		{only available when compiled with the |+float| feature}

screenattr({row}, {col})					*screenattr()*
		Like |screenchar()|, but return the attribute.  This is a rather
		arbitrary number that can only be used to compare to the
		attribute at other positions.

screenchar({row}, {col})					*screenchar()*
		The result is a Number, which is the character at position
		[row, col] on the screen.  This works for every possible
		screen position, also status lines, window separators and the
		command line.  The top left position is row one, column one
		The character excludes composing characters.  For double-byte
		encodings it may only be the first byte.
		This is mainly to be used for testing.
		Returns -1 when row or col is out of range.

screencol()							*screencol()*
		The result is a Number, which is the current screen column of
		the cursor. The leftmost column has number 1.
		This function is mainly used for testing.

		Note: Always returns the current screen column, thus if used
		in a command (e.g. ":echo screencol()") it will return the
		column inside the command line, which is 1 when the command is
		executed. To get the cursor position in the file use one of
		the following mappings: >
			nnoremap <expr> GG ":echom ".screencol()."\n"
			nnoremap <silent> GG :echom screencol()<CR>
<
screenrow()							*screenrow()*
		The result is a Number, which is the current screen row of the
		cursor.  The top line has number one.
		This function is mainly used for testing.
		Alternatively you can use |winline()|.

		Note: Same restrictions as with |screencol()|.

search({pattern} [, {flags} [, {stopline} [, {timeout}]]])	*search()*
		Search for regexp pattern {pattern}.  The search starts at the
		cursor position (you can use |cursor()| to set it).

		When a match has been found its line number is returned.
		If there is no match a 0 is returned and the cursor doesn't
		move.  No error message is given.

		{flags} is a String, which can contain these character flags:
		'b'	search Backward instead of forward
		'c'	accept a match at the Cursor position
		'e'	move to the End of the match
		'n'	do Not move the cursor
		'p'	return number of matching sub-Pattern (see below)
		's'	Set the ' mark at the previous location of the cursor
		'w'	Wrap around the end of the file
		'W'	don't Wrap around the end of the file
		'z'	start searching at the cursor column instead of zero
		If neither 'w' or 'W' is given, the 'wrapscan' option applies.

		If the 's' flag is supplied, the ' mark is set, only if the
		cursor is moved. The 's' flag cannot be combined with the 'n'
		flag.

		'ignorecase', 'smartcase' and 'magic' are used.

		When the 'z' flag is not given, searching always starts in
		column zero and then matches before the cursor are skipped.
		When the 'c' flag is present in 'cpo' the next search starts
		after the match.  Without the 'c' flag the next search starts
		one column further.

		When the {stopline} argument is given then the search stops
		after searching this line.  This is useful to restrict the
		search to a range of lines.  Examples: >
			let match = search('(', 'b', line("w0"))
			let end = search('END', '', line("w$"))
<		When {stopline} is used and it is not zero this also implies
		that the search does not wrap around the end of the file.
		A zero value is equal to not giving the argument.

		When the {timeout} argument is given the search stops when
		more than this many milliseconds have passed.  Thus when
		{timeout} is 500 the search stops after half a second.
		The value must not be negative.  A zero value is like not
		giving the argument.
		{only available when compiled with the |+reltime| feature}

							*search()-sub-match*
		With the 'p' flag the returned value is one more than the
		first sub-match in \(\).  One if none of them matched but the
		whole pattern did match.
		To get the column number too use |searchpos()|.

		The cursor will be positioned at the match, unless the 'n'
		flag is used.

		Example (goes over all files in the argument list): >
		    :let n = 1
		    :while n <= argc()	    " loop over all files in arglist
		    :  exe "argument " . n
		    :  " start at the last char in the file and wrap for the
		    :  " first search to find match at start of file
		    :  normal G$
		    :  let flags = "w"
		    :  while search("foo", flags) > 0
		    :	 s/foo/bar/g
		    :	 let flags = "W"
		    :  endwhile
		    :  update		    " write the file if modified
		    :  let n = n + 1
		    :endwhile
<
		Example for using some flags: >
		    :echo search('\<if\|\(else\)\|\(endif\)', 'ncpe')
<		This will search for the keywords "if", "else", and "endif"
		under or after the cursor.  Because of the 'p' flag, it
		returns 1, 2, or 3 depending on which keyword is found, or 0
		if the search fails.  With the cursor on the first word of the
		line:
		    if (foo == 0) | let foo = foo + 1 | endif ~
		the function returns 1.  Without the 'c' flag, the function
		finds the "endif" and returns 3.  The same thing happens
		without the 'e' flag if the cursor is on the "f" of "if".
		The 'n' flag tells the function not to move the cursor.


searchdecl({name} [, {global} [, {thisblock}]])			*searchdecl()*
		Search for the declaration of {name}.

		With a non-zero {global} argument it works like |gD|, find
		first match in the file.  Otherwise it works like |gd|, find
		first match in the function.

		With a non-zero {thisblock} argument matches in a {} block
		that ends before the cursor position are ignored.  Avoids
		finding variable declarations only valid in another scope.

		Moves the cursor to the found match.
		Returns zero for success, non-zero for failure.
		Example: >
			if searchdecl('myvar') == 0
			   echo getline('.')
			endif
<
							*searchpair()*
searchpair({start}, {middle}, {end} [, {flags} [, {skip}
				[, {stopline} [, {timeout}]]]])
		Search for the match of a nested start-end pair.  This can be
		used to find the "endif" that matches an "if", while other
		if/endif pairs in between are ignored.
		The search starts at the cursor.  The default is to search
		forward, include 'b' in {flags} to search backward.
		If a match is found, the cursor is positioned at it and the
		line number is returned.  If no match is found 0 or -1 is
		returned and the cursor doesn't move.  No error message is
		given.

		{start}, {middle} and {end} are patterns, see |pattern|.  They
		must not contain \( \) pairs.  Use of \%( \) is allowed.  When
		{middle} is not empty, it is found when searching from either
		direction, but only when not in a nested start-end pair.  A
		typical use is: >
			searchpair('\<if\>', '\<else\>', '\<endif\>')
<		By leaving {middle} empty the "else" is skipped.

		{flags} 'b', 'c', 'n', 's', 'w' and 'W' are used like with
		|search()|.  Additionally:
		'r'	Repeat until no more matches found; will find the
			outer pair.  Implies the 'W' flag.
		'm'	Return number of matches instead of line number with
			the match; will be > 1 when 'r' is used.
		Note: it's nearly always a good idea to use the 'W' flag, to
		avoid wrapping around the end of the file.

		When a match for {start}, {middle} or {end} is found, the
		{skip} expression is evaluated with the cursor positioned on
		the start of the match.  It should return non-zero if this
		match is to be skipped.  E.g., because it is inside a comment
		or a string.
		When {skip} is omitted or empty, every match is accepted.
		When evaluating {skip} causes an error the search is aborted
		and -1 returned.
		{skip} can be a string, a lambda, a funcref or a partial.

		For {stopline} and {timeout} see |search()|.

		The value of 'ignorecase' is used.  'magic' is ignored, the
		patterns are used like it's on.

		The search starts exactly at the cursor.  A match with
		{start}, {middle} or {end} at the next character, in the
		direction of searching, is the first one found.  Example: >
			if 1
			  if 2
			  endif 2
			endif 1
<		When starting at the "if 2", with the cursor on the "i", and
		searching forwards, the "endif 2" is found.  When starting on
		the character just before the "if 2", the "endif 1" will be
		found.  That's because the "if 2" will be found first, and
		then this is considered to be a nested if/endif from "if 2" to
		"endif 2".
		When searching backwards and {end} is more than one character,
		it may be useful to put "\zs" at the end of the pattern, so
		that when the cursor is inside a match with the end it finds
		the matching start.

		Example, to find the "endif" command in a Vim script: >

	:echo searchpair('\<if\>', '\<el\%[seif]\>', '\<en\%[dif]\>', 'W',
			\ 'getline(".") =~ "^\\s*\""')

<		The cursor must be at or after the "if" for which a match is
		to be found.  Note that single-quote strings are used to avoid
		having to double the backslashes.  The skip expression only
		catches comments at the start of a line, not after a command.
		Also, a word "en" or "if" halfway a line is considered a
		match.
		Another example, to search for the matching "{" of a "}": >

	:echo searchpair('{', '', '}', 'bW')

<		This works when the cursor is at or before the "}" for which a
		match is to be found.  To reject matches that syntax
		highlighting recognized as strings: >

	:echo searchpair('{', '', '}', 'bW',
	     \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')
<
							*searchpairpos()*
searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
				[, {stopline} [, {timeout}]]]])
		Same as |searchpair()|, but returns a |List| with the line and
		column position of the match. The first element of the |List|
		is the line number and the second element is the byte index of
		the column position of the match.  If no match is found,
		returns [0, 0]. >

			:let [lnum,col] = searchpairpos('{', '', '}', 'n')
<
		See |match-parens| for a bigger and more useful example.

searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])	*searchpos()*
		Same as |search()|, but returns a |List| with the line and
		column position of the match. The first element of the |List|
		is the line number and the second element is the byte index of
		the column position of the match. If no match is found,
		returns [0, 0].
		Example: >
	:let [lnum, col] = searchpos('mypattern', 'n')

<		When the 'p' flag is given then there is an extra item with
		the sub-pattern match number |search()-sub-match|.  Example: >
	:let [lnum, col, submatch] = searchpos('\(\l\)\|\(\u\)', 'np')
<		In this example "submatch" is 2 when a lowercase letter is
		found |/\l|, 3 when an uppercase letter is found |/\u|.

server2client({clientid}, {string})			*server2client()*
		Send a reply string to {clientid}.  The most recent {clientid}
		that sent a string can be retrieved with expand("<client>").
		{only available when compiled with the |+clientserver| feature}
		Note:
		This id has to be stored before the next command can be
		received.  I.e. before returning from the received command and
		before calling any commands that waits for input.
		See also |clientserver|.
		Example: >
			:echo server2client(expand("<client>"), "HELLO")
<
serverlist()					*serverlist()*
		Return a list of available server names, one per line.
		When there are no servers or the information is not available
		an empty string is returned.  See also |clientserver|.
		{only available when compiled with the |+clientserver| feature}
		Example: >
			:echo serverlist()
<
setbufline({expr}, {lnum}, {text})			*setbufline()*
		Set line {lnum} to {text} in buffer {expr}.  To insert
		lines use |append()|.

		For the use of {expr}, see |bufname()| above.

		{lnum} is used like with |setline()|.
		This works like |setline()| for the specified buffer.
		On success 0 is returned, on failure 1 is returned.

		If {expr} is not a valid buffer or {lnum} is not valid, an
		error message is given.

setbufvar({expr}, {varname}, {val})			*setbufvar()*
		Set option or local variable {varname} in buffer {expr} to
		{val}.
		This also works for a global or local window option, but it
		doesn't work for a global or local window variable.
		For a local window option the global value is unchanged.
		For the use of {expr}, see |bufname()| above.
		Note that the variable name without "b:" must be used.
		Examples: >
			:call setbufvar(1, "&mod", 1)
			:call setbufvar("todo", "myvar", "foobar")
<		This function is not available in the |sandbox|.

setcharsearch({dict})					*setcharsearch()*
		Set the current character search information to {dict},
		which contains one or more of the following entries:

		    char	character which will be used for a subsequent
				|,| or |;| command; an empty string clears the
				character search
		    forward	direction of character search; 1 for forward,
				0 for backward
		    until	type of character search; 1 for a |t| or |T|
				character search, 0 for an |f| or |F|
				character search

		This can be useful to save/restore a user's character search
		from a script: >
			:let prevsearch = getcharsearch()
			:" Perform a command which clobbers user's search
			:call setcharsearch(prevsearch)
<		Also see |getcharsearch()|.

setcmdpos({pos})					*setcmdpos()*
		Set the cursor position in the command line to byte position
		{pos}.  The first position is 1.
		Use |getcmdpos()| to obtain the current position.
		Only works while editing the command line, thus you must use
		|c_CTRL-\_e|, |c_CTRL-R_=| or |c_CTRL-R_CTRL-R| with '='.  For
		|c_CTRL-\_e| and |c_CTRL-R_CTRL-R| with '=' the position is
		set after the command line is set to the expression.  For
		|c_CTRL-R_=| it is set after evaluating the expression but
		before inserting the resulting text.
		When the number is too big the cursor is put at the end of the
		line.  A number smaller than one has undefined results.
		Returns 0 when successful, 1 when not editing the command
		line.

setfperm({fname}, {mode})				*setfperm()* *chmod*
		Set the file permissions for {fname} to {mode}.
		{mode} must be a string with 9 characters.  It is of the form
		"rwxrwxrwx", where each group of "rwx" flags represent, in
		turn, the permissions of the owner of the file, the group the
		file belongs to, and other users.  A '-' character means the
		permission is off, any other character means on.  Multi-byte
		characters are not supported.

		For example "rw-r-----" means read-write for the user,
		readable by the group, not accessible by others.  "xx-x-----"
		would do the same thing.

		Returns non-zero for success, zero for failure.

		To read permissions see |getfperm()|.


setline({lnum}, {text})					*setline()*
		Set line {lnum} of the current buffer to {text}.  To insert
		lines use |append()|. To set lines in another buffer use
		|setbufline()|.

		{lnum} is used like with |getline()|.
		When {lnum} is just below the last line the {text} will be
		added as a new line.

		If this succeeds, 0 is returned.  If this fails (most likely
		because {lnum} is invalid) 1 is returned.

		Example: >
			:call setline(5, strftime("%c"))

<		When {text} is a |List| then line {lnum} and following lines
		will be set to the items in the list.  Example: >
			:call setline(5, ['aaa', 'bbb', 'ccc'])
<		This is equivalent to: >
			:for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']]
			:  call setline(n, l)
			:endfor

<		Note: The '[ and '] marks are not set.

setloclist({nr}, {list} [, {action} [, {what}]])		*setloclist()*
		Create or replace or add to the location list for window {nr}.
		{nr} can be the window number or the |window-ID|.
		When {nr} is zero the current window is used.

		For a location list window, the displayed location list is
		modified.  For an invalid window number {nr}, -1 is returned.
		Otherwise, same as |setqflist()|.
		Also see |location-list|.

		If the optional {what} dictionary argument is supplied, then
		only the items listed in {what} are set. Refer to |setqflist()|
		for the list of supported keys in {what}.

setmatches({list})					*setmatches()*
		Restores a list of matches saved by |getmatches()|.  Returns 0
		if successful, otherwise -1.  All current matches are cleared
		before the list is restored.  See example for |getmatches()|.

							*setpos()*
setpos({expr}, {list})
		Set the position for {expr}.  Possible values:
			.	the cursor
			'x	mark x

		{list} must be a |List| with four or five numbers:
		    [bufnum, lnum, col, off]
		    [bufnum, lnum, col, off, curswant]

		"bufnum" is the buffer number.  Zero can be used for the
		current buffer.  When setting an uppercase mark "bufnum" is
		used for the mark position.  For other marks it specifies the
		buffer to set the mark in.  You can use the |bufnr()| function
		to turn a file name into a buffer number.
		For setting the cursor and the ' mark "bufnum" is ignored,
		since these are associated with a window, not a buffer.
		Does not change the jumplist.

		"lnum" and "col" are the position in the buffer.  The first
		column is 1.  Use a zero "lnum" to delete a mark.  If "col" is
		smaller than 1 then 1 is used.

		The "off" number is only used when 'virtualedit' is set. Then
		it is the offset in screen columns from the start of the
		character.  E.g., a position within a <Tab> or after the last
		character.

		The "curswant" number is only used when setting the cursor
		position.  It sets the preferred column for when moving the
		cursor vertically.  When the "curswant" number is missing the
		preferred column is not set.  When it is present and setting a
		mark position it is not used.

		Note that for '< and '> changing the line number may result in
		the marks to be effectively be swapped, so that '< is always
		before '>.

		Returns 0 when the position could be set, -1 otherwise.
		An error message is given if {expr} is invalid.

		Also see |getpos()| and |getcurpos()|.

		This does not restore the preferred column for moving
		vertically; if you set the cursor position with this, |j| and
		|k| motions will jump to previous columns!  Use |cursor()| to
		also set the preferred column.  Also see the "curswant" key in
		|winrestview()|.

setqflist({list} [, {action} [, {what}]])		*setqflist()*
		Create or replace or add to the quickfix list.

		When {what} is not present, use the items in {list}.  Each
		item must be a dictionary.  Non-dictionary items in {list} are
		ignored.  Each dictionary item can contain the following
		entries:

		    bufnr	buffer number; must be the number of a valid
				buffer
		    filename	name of a file; only used when "bufnr" is not
				present or it is invalid.
		    lnum	line number in the file
		    pattern	search pattern used to locate the error
		    col		column number
		    vcol	when non-zero: "col" is visual column
				when zero: "col" is byte index
		    nr		error number
		    text	description of the error
		    type	single-character error type, 'E', 'W', etc.
		    valid	recognized error message

		The "col", "vcol", "nr", "type" and "text" entries are
		optional.  Either "lnum" or "pattern" entry can be used to
		locate a matching error line.
		If the "filename" and "bufnr" entries are not present or
		neither the "lnum" or "pattern" entries are present, then the
		item will not be handled as an error line.
		If both "pattern" and "lnum" are present then "pattern" will
		be used.
		If the "valid" entry is not supplied, then the valid flag is
		set when "bufnr" is a valid buffer or "filename" exists.
		If you supply an empty {list}, the quickfix list will be
		cleared.
		Note that the list is not exactly the same as what
		|getqflist()| returns.

		{action} values:				*E927*
		'a'	The items from {list} are added to the existing
			quickfix list. If there is no existing list, then a
			new list is created.

		'r'	The items from the current quickfix list are replaced
			with the items from {list}.  This can also be used to
			clear the list: >
				:call setqflist([], 'r')
<
		'f'	All the quickfix lists in the quickfix stack are
			freed.

		If {action} is not present or is set to ' ', then a new list
		is created. The new quickfix list is added after the current
		quickfix list in the stack and all the following lists are
		freed. To add a new quickfix list at the end of the stack,
		set "nr" in {what} to "$".

		If the optional {what} dictionary argument is supplied, then
		only the items listed in {what} are set. The first {list}
		argument is ignored.  The following items can be specified in
		{what}:
		    context	any Vim type can be stored as a context
		    efm		errorformat to use when parsing text from
				"lines". If this is not present, then the
				'errorformat' option value is used.
		    id		quickfix list identifier |quickfix-ID|
		    items	list of quickfix entries. Same as the {list}
				argument.
		    lines	use 'errorformat' to parse a list of lines and
				add the resulting entries to the quickfix list
				{nr} or {id}.  Only a |List| value is supported.
		    nr		list number in the quickfix stack; zero
				means the current quickfix list and "$" means
				the last quickfix list
		    title	quickfix list title text
		Unsupported keys in {what} are ignored.
		If the "nr" item is not present, then the current quickfix list
		is modified. When creating a new quickfix list, "nr" can be
		set to a value one greater than the quickfix stack size.
		When modifying a quickfix list, to guarantee that the correct
		list is modified, "id" should be used instead of "nr" to
		specify the list.

		Examples: >
		   :call setqflist([], 'r', {'title': 'My search'})
		   :call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
		   :call setqflist([], 'a', {'id':myid, 'lines':["F1:10:L10"]})
<
		Returns zero for success, -1 for failure.

		This function can be used to create a quickfix list
		independent of the 'errorformat' setting.  Use a command like
		`:cc 1` to jump to the first position.


							*setreg()*
setreg({regname}, {value} [, {options}])
		Set the register {regname} to {value}.
		{value} may be any value returned by |getreg()|, including
		a |List|.
		If {options} contains "a" or {regname} is upper case,
		then the value is appended.
		{options} can also contain a register type specification:
		    "c" or "v"	      |characterwise| mode
		    "l" or "V"	      |linewise| mode
		    "b" or "<CTRL-V>" |blockwise-visual| mode
		If a number immediately follows "b" or "<CTRL-V>" then this is
		used as the width of the selection - if it is not specified
		then the width of the block is set to the number of characters
		in the longest line (counting a <Tab> as 1 character).

		If {options} contains no register settings, then the default
		is to use character mode unless {value} ends in a <NL> for
		string {value} and linewise mode for list {value}. Blockwise
		mode is never selected automatically.
		Returns zero for success, non-zero for failure.

							*E883*
		Note: you may not use |List| containing more than one item to
		      set search and expression registers. Lists containing no
		      items act like empty strings.

		Examples: >
			:call setreg(v:register, @*)
			:call setreg('*', @%, 'ac')
			:call setreg('a', "1\n2\n3", 'b5')

<		This example shows using the functions to save and restore a
		register: >
			:let var_a = getreg('a', 1, 1)
			:let var_amode = getregtype('a')
			    ....
			:call setreg('a', var_a, var_amode)
<		Note: you may not reliably restore register value
		without using the third argument to |getreg()| as without it
		newlines are represented as newlines AND Nul bytes are
		represented as newlines as well, see |NL-used-for-Nul|.

		You can also change the type of a register by appending
		nothing: >
			:call setreg('a', '', 'al')

settabvar({tabnr}, {varname}, {val})			*settabvar()*
		Set tab-local variable {varname} to {val} in tab page {tabnr}.
		|t:var|
		Note that the variable name without "t:" must be used.
		Tabs are numbered starting with one.
		This function is not available in the |sandbox|.

settabwinvar({tabnr}, {winnr}, {varname}, {val})	*settabwinvar()*
		Set option or local variable {varname} in window {winnr} to
		{val}.
		Tabs are numbered starting with one.  For the current tabpage
		use |setwinvar()|.
		{winnr} can be the window number or the |window-ID|.
		When {winnr} is zero the current window is used.
		This also works for a global or local buffer option, but it
		doesn't work for a global or local buffer variable.
		For a local buffer option the global value is unchanged.
		Note that the variable name without "w:" must be used.
		Examples: >
			:call settabwinvar(1, 1, "&list", 0)
			:call settabwinvar(3, 2, "myvar", "foobar")
<		This function is not available in the |sandbox|.

setwinvar({nr}, {varname}, {val})			*setwinvar()*
		Like |settabwinvar()| for the current tab page.
		Examples: >
			:call setwinvar(1, "&list", 0)
			:call setwinvar(2, "myvar", "foobar")

sha256({string})						*sha256()*
		Returns a String with 64 hex characters, which is the SHA256
		checksum of {string}.
		{only available when compiled with the |+cryptv| feature}

shellescape({string} [, {special}])			*shellescape()*
		Escape {string} for use as a shell command argument.
		On MS-Windows and MS-DOS, when 'shellslash' is not set, it
		will enclose {string} in double quotes and double all double
		quotes within {string}.
		Otherwise it will enclose {string} in single quotes and
		replace all "'" with "'\''".

		When the {special} argument is present and it's a non-zero
		Number or a non-empty String (|non-zero-arg|), then special
		items such as "!", "%", "#" and "<cword>" will be preceded by
		a backslash.  This backslash will be removed again by the |:!|
		command.

		The "!" character will be escaped (again with a |non-zero-arg|
		{special}) when 'shell' contains "csh" in the tail.  That is
		because for csh and tcsh "!" is used for history replacement
		even when inside single quotes.

		With a |non-zero-arg| {special} the <NL> character is also
		escaped.  When 'shell' containing "csh" in the tail it's
		escaped a second time.

		Example of use with a |:!| command: >
		    :exe '!dir ' . shellescape(expand('<cfile>'), 1)
<		This results in a directory listing for the file under the
		cursor.  Example of use with |system()|: >
		    :call system("chmod +w -- " . shellescape(expand("%")))
<		See also |::S|.


shiftwidth()						*shiftwidth()*
		Returns the effective value of 'shiftwidth'. This is the
		'shiftwidth' value unless it is zero, in which case it is the
		'tabstop' value.  This function was introduced with patch
		7.3.694 in 2012, everybody should have it by now.


simplify({filename})					*simplify()*
		Simplify the file name as much as possible without changing
		the meaning.  Shortcuts (on MS-Windows) or symbolic links (on
		Unix) are not resolved.  If the first path component in
		{filename} designates the current directory, this will be
		valid for the result as well.  A trailing path separator is
		not removed either.
		Example: >
			simplify("./dir/.././/file/") == "./file/"
<		Note: The combination "dir/.." is only removed if "dir" is
		a searchable directory or does not exist.  On Unix, it is also
		removed when "dir" is a symbolic link within the same
		directory.  In order to resolve all the involved symbolic
		links before simplifying the path name, use |resolve()|.


sin({expr})						*sin()*
		Return the sine of {expr}, measured in radians, as a |Float|.
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo sin(100)
<			-0.506366 >
			:echo sin(-4.01)
<			0.763301
		{only available when compiled with the |+float| feature}


sinh({expr})						*sinh()*
		Return the hyperbolic sine of {expr} as a |Float| in the range
		[-inf, inf].
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo sinh(0.5)
<			0.521095 >
			:echo sinh(-0.9)
<			-1.026517
		{only available when compiled with the |+float| feature}


sort({list} [, {func} [, {dict}]])			*sort()* *E702*
		Sort the items in {list} in-place.  Returns {list}.

		If you want a list to remain unmodified make a copy first: >
			:let sortedlist = sort(copy(mylist))

<		When {func} is omitted, is empty or zero, then sort() uses the
		string representation of each item to sort on.  Numbers sort
		after Strings, |Lists| after Numbers.  For sorting text in the
		current buffer use |:sort|.

		When {func} is given and it is '1' or 'i' then case is
		ignored.

		When {func} is given and it is 'n' then all items will be
		sorted numerical (Implementation detail: This uses the
		strtod() function to parse numbers, Strings, Lists, Dicts and
		Funcrefs will be considered as being 0).

		When {func} is given and it is 'N' then all items will be
		sorted numerical. This is like 'n' but a string containing
		digits will be used as the number they represent.

		When {func} is given and it is 'f' then all items will be
		sorted numerical. All values must be a Number or a Float.

		When {func} is a |Funcref| or a function name, this function
		is called to compare items.  The function is invoked with two
		items as argument and must return zero if they are equal, 1 or
		bigger if the first one sorts after the second one, -1 or
		smaller if the first one sorts before the second one.

		{dict} is for functions with the "dict" attribute.  It will be
		used to set the local variable "self". |Dictionary-function|

		The sort is stable, items which compare equal (as number or as
		string) will keep their relative position. E.g., when sorting
		on numbers, text strings will sort next to each other, in the
		same order as they were originally.

		Also see |uniq()|.

		Example: >
			func MyCompare(i1, i2)
			   return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1
			endfunc
			let sortedlist = sort(mylist, "MyCompare")
<		A shorter compare version for this specific simple case, which
		ignores overflow: >
			func MyCompare(i1, i2)
			   return a:i1 - a:i2
			endfunc
<
							*soundfold()*
soundfold({word})
		Return the sound-folded equivalent of {word}.  Uses the first
		language in 'spelllang' for the current window that supports
		soundfolding.  'spell' must be set.  When no sound folding is
		possible the {word} is returned unmodified.
		This can be used for making spelling suggestions.  Note that
		the method can be quite slow.

							*spellbadword()*
spellbadword([{sentence}])
		Without argument: The result is the badly spelled word under
		or after the cursor.  The cursor is moved to the start of the
		bad word.  When no bad word is found in the cursor line the
		result is an empty string and the cursor doesn't move.

		With argument: The result is the first word in {sentence} that
		is badly spelled.  If there are no spelling mistakes the
		result is an empty string.

		The return value is a list with two items:
		- The badly spelled word or an empty string.
		- The type of the spelling error:
			"bad"		spelling mistake
			"rare"		rare word
			"local"		word only valid in another region
			"caps"		word should start with Capital
		Example: >
			echo spellbadword("the quik brown fox")
<			['quik', 'bad'] ~

		The spelling information for the current window is used.  The
		'spell' option must be set and the value of 'spelllang' is
		used.

							*spellsuggest()*
spellsuggest({word} [, {max} [, {capital}]])
		Return a |List| with spelling suggestions to replace {word}.
		When {max} is given up to this number of suggestions are
		returned.  Otherwise up to 25 suggestions are returned.

		When the {capital} argument is given and it's non-zero only
		suggestions with a leading capital will be given.  Use this
		after a match with 'spellcapcheck'.

		{word} can be a badly spelled word followed by other text.
		This allows for joining two words that were split.  The
		suggestions also include the following text, thus you can
		replace a line.

		{word} may also be a good word.  Similar words will then be
		returned.  {word} itself is not included in the suggestions,
		although it may appear capitalized.

		The spelling information for the current window is used.  The
		'spell' option must be set and the values of 'spelllang' and
		'spellsuggest' are used.


split({expr} [, {pattern} [, {keepempty}]])			*split()*
		Make a |List| out of {expr}.  When {pattern} is omitted or
		empty each white-separated sequence of characters becomes an
		item.
		Otherwise the string is split where {pattern} matches,
		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
		{keepempty} argument is given and it's non-zero.
		Other empty items are kept when {pattern} matches at least one
		character or when {keepempty} is non-zero.
		Example: >
			:let words = split(getline('.'), '\W\+')
<		To split a string in individual characters: >
			:for c in split(mystring, '\zs')
<		If you want to keep the separator you can also use '\zs' at
		the end of the pattern: >
			:echo split('abc:def:ghi', ':\zs')
<			['abc:', 'def:', 'ghi'] ~
		Splitting a table where the first element can be empty: >
			:let items = split(line, ':', 1)
<		The opposite function is |join()|.


sqrt({expr})						*sqrt()*
		Return the non-negative square root of Float {expr} as a
		|Float|.
		{expr} must evaluate to a |Float| or a |Number|.  When {expr}
		is negative the result is NaN (Not a Number).
		Examples: >
			:echo sqrt(100)
<			10.0 >
			:echo sqrt(-4.01)
<			nan
		"nan" may be different, it depends on system libraries.
		{only available when compiled with the |+float| feature}


str2float({expr})					*str2float()*
		Convert String {expr} to a Float.  This mostly works the same
		as when using a floating point number in an expression, see
		|floating-point-format|.  But it's a bit more permissive.
		E.g., "1e40" is accepted, while in an expression you need to
		write "1.0e40".
		Text after the number is silently ignored.
		The decimal point is always '.', no matter what the locale is
		set to.  A comma ends the number: "12,345.67" is converted to
		12.0.  You can strip out thousands separators with
		|substitute()|: >
			let f = str2float(substitute(text, ',', '', 'g'))
<		{only available when compiled with the |+float| feature}


str2nr({expr} [, {base}])				*str2nr()*
		Convert string {expr} to a number.
		{base} is the conversion base, it can be 2, 8, 10 or 16.
		When {base} is omitted base 10 is used.  This also means that
		a leading zero doesn't cause octal conversion to be used, as
		with the default String to Number conversion.
		When {base} is 16 a leading "0x" or "0X" is ignored.  With a
		different base the result will be zero.  Similarly, when
		{base} is 8 a leading "0" is ignored, and when {base} is 2 a
		leading "0b" or "0B" is ignored.
		Text after the number is silently ignored.


strchars({expr} [, {skipcc}])					*strchars()*
		The result is a Number, which is the number of characters
		in String {expr}.
		When {skipcc} is omitted or zero, composing characters are
		counted separately.
		When {skipcc} set to 1, Composing characters are ignored.
		Also see |strlen()|, |strdisplaywidth()| and |strwidth()|.

		{skipcc} is only available after 7.4.755.  For backward
		compatibility, you can define a wrapper function: >
		    if has("patch-7.4.755")
		      function s:strchars(str, skipcc)
			return strchars(a:str, a:skipcc)
		      endfunction
		    else
		      function s:strchars(str, skipcc)
			if a:skipcc
			  return strlen(substitute(a:str, ".", "x", "g"))
			else
			  return strchars(a:str)
			endif
		      endfunction
		    endif
<
strcharpart({src}, {start} [, {len}])			*strcharpart()*
		Like |strpart()| but using character index and length instead
		of byte index and length.
		When a character index is used where a character does not
		exist it is assumed to be one character.  For example: >
			strcharpart('abc', -1, 2)
<		results in 'a'.

strdisplaywidth({expr} [, {col}])			*strdisplaywidth()*
		The result is a Number, which is the number of display cells
		String {expr} occupies on the screen when it starts at {col}.
		When {col} is omitted zero is used.  Otherwise it is the
		screen column where to start.  This matters for Tab
		characters.
		The option settings of the current window are used.  This
		matters for anything that's displayed differently, such as
		'tabstop' and 'display'.
		When {expr} contains characters with East Asian Width Class
		Ambiguous, this function's return value depends on 'ambiwidth'.
		Also see |strlen()|, |strwidth()| and |strchars()|.

strftime({format} [, {time}])				*strftime()*
		The result is a String, which is a formatted date and time, as
		specified by the {format} string.  The given {time} is used,
		or the current time if no time is given.  The accepted
		{format} depends on your system, thus this is not portable!
		See the manual page of the C function strftime() for the
		format.  The maximum length of the result is 80 characters.
		See also |localtime()| and |getftime()|.
		The language can be changed with the |:language| command.
		Examples: >
		  :echo strftime("%c")		   Sun Apr 27 11:49:23 1997
		  :echo strftime("%Y %b %d %X")	   1997 Apr 27 11:53:25
		  :echo strftime("%y%m%d %T")	   970427 11:53:55
		  :echo strftime("%H:%M")	   11:55
		  :echo strftime("%c", getftime("file.c"))
						   Show mod time of file.c.
<		Not available on all systems.  To check use: >
			:if exists("*strftime")

strgetchar({str}, {index})				*strgetchar()*
		Get character {index} from {str}.  This uses a character
		index, not a byte index.  Composing characters are considered
		separate characters here.
		Also see |strcharpart()| and |strchars()|.

stridx({haystack}, {needle} [, {start}])		*stridx()*
		The result is a Number, which gives the byte index in
		{haystack} of the first occurrence of the String {needle}.
		If {start} is specified, the search starts at index {start}.
		This can be used to find a second match: >
			:let colon1 = stridx(line, ":")
			:let colon2 = stridx(line, ":", colon1 + 1)
<		The search is done case-sensitive.
		For pattern searches use |match()|.
		-1 is returned if the {needle} does not occur in {haystack}.
		See also |strridx()|.
		Examples: >
		  :echo stridx("An Example", "Example")	     3
		  :echo stridx("Starting point", "Start")    0
		  :echo stridx("Starting point", "start")   -1
<						*strstr()* *strchr()*
		stridx() works similar to the C function strstr().  When used
		with a single character it works similar to strchr().

							*string()*
string({expr})	Return {expr} converted to a String.  If {expr} is a Number,
		Float, String or a composition of them, then the result can be
		parsed back with |eval()|.
			{expr} type	result ~
			String		'string' (single quotes are doubled)
			Number		123
			Float		123.123456 or 1.123456e8
			Funcref		function('name')
			List		[item, item]
			Dictionary	{key: value, key: value}

		When a List or Dictionary has a recursive reference it is
		replaced by "[...]" or "{...}".  Using eval() on the result
		will then fail.

		Also see |strtrans()|.

							*strlen()*
strlen({expr})	The result is a Number, which is the length of the String
		{expr} in bytes.
		If the argument is a Number it is first converted to a String.
		For other types an error is given.
		If you want to count the number of multi-byte characters use
		|strchars()|.
		Also see |len()|, |strdisplaywidth()| and |strwidth()|.

strpart({src}, {start} [, {len}])			*strpart()*
		The result is a String, which is part of {src}, starting from
		byte {start}, with the byte length {len}.
		To count characters instead of bytes use |strcharpart()|.

		When bytes are selected which do not exist, this doesn't
		result in an error, the bytes are simply omitted.
		If {len} is missing, the copy continues from {start} till the
		end of the {src}. >
			strpart("abcdefg", 3, 2)    == "de"
			strpart("abcdefg", -2, 4)   == "ab"
			strpart("abcdefg", 5, 4)    == "fg"
			strpart("abcdefg", 3)	    == "defg"

<		Note: To get the first character, {start} must be 0.  For
		example, to get three bytes under and after the cursor: >
			strpart(getline("."), col(".") - 1, 3)
<
strridx({haystack}, {needle} [, {start}])			*strridx()*
		The result is a Number, which gives the byte index in
		{haystack} of the last occurrence of the String {needle}.
		When {start} is specified, matches beyond this index are
		ignored.  This can be used to find a match before a previous
		match: >
			:let lastcomma = strridx(line, ",")
			:let comma2 = strridx(line, ",", lastcomma - 1)
<		The search is done case-sensitive.
		For pattern searches use |match()|.
		-1 is returned if the {needle} does not occur in {haystack}.
		If the {needle} is empty the length of {haystack} is returned.
		See also |stridx()|.  Examples: >
		  :echo strridx("an angry armadillo", "an")	     3
<							*strrchr()*
		When used with a single character it works similar to the C
		function strrchr().

strtrans({expr})					*strtrans()*
		The result is a String, which is {expr} with all unprintable
		characters translated into printable characters |'isprint'|.
		Like they are shown in a window.  Example: >
			echo strtrans(@a)
<		This displays a newline in register a as "^@" instead of
		starting a new line.

strwidth({expr})					*strwidth()*
		The result is a Number, which is the number of display cells
		String {expr} occupies.  A Tab character is counted as one
		cell, alternatively use |strdisplaywidth()|.
		When {expr} contains characters with East Asian Width Class
		Ambiguous, this function's return value depends on 'ambiwidth'.
		Also see |strlen()|, |strdisplaywidth()| and |strchars()|.

submatch({nr} [, {list}])			*submatch()* *E935*
		Only for an expression in a |:substitute| command or
		substitute() function.
		Returns the {nr}'th submatch of the matched text.  When {nr}
		is 0 the whole matched text is returned.
		Note that a NL in the string can stand for a line break of a
		multi-line match or a NUL character in the text.
		Also see |sub-replace-expression|.

		If {list} is present and non-zero then submatch() returns
		a list of strings, similar to |getline()| with two arguments.
		NL characters in the text represent NUL characters in the
		text.
		Only returns more than one item for |:substitute|, inside
		|substitute()| this list will always contain one or zero
		items, since there are no real line breaks.

		When substitute() is used recursively only the submatches in
		the current (deepest) call can be obtained.

		Examples: >
			:s/\d\+/\=submatch(0) + 1/
			:echo substitute(text, '\d\+', '\=submatch(0) + 1', '')
<		This finds the first number in the line and adds one to it.
		A line break is included as a newline character.

substitute({expr}, {pat}, {sub}, {flags})		*substitute()*
		The result is a String, which is a copy of {expr}, in which
		the first match of {pat} is replaced with {sub}.
		When {flags} is "g", all matches of {pat} in {expr} are
		replaced.  Otherwise {flags} should be "".

		This works like the ":substitute" command (without any flags).
		But the matching with {pat} is always done like the 'magic'
		option is set and 'cpoptions' is empty (to make scripts
		portable).  'ignorecase' is still relevant, use |/\c| or |/\C|
		if you want to ignore or match case and ignore 'ignorecase'.
		'smartcase' is not used.  See |string-match| for how {pat} is
		used.

		A "~" in {sub} is not replaced with the previous {sub}.
		Note that some codes in {sub} have a special meaning
		|sub-replace-special|.  For example, to replace something with
		"\n" (two characters), use "\\\\n" or '\\n'.

		When {pat} does not match in {expr}, {expr} is returned
		unmodified.

		Example: >
		   :let &path = substitute(&path, ",\\=[^,]*$", "", "")
<		This removes the last component of the 'path' option. >
		   :echo substitute("testing", ".*", "\\U\\0", "")
<		results in "TESTING".

		When {sub} starts with "\=", the remainder is interpreted as
		an expression. See |sub-replace-expression|.  Example: >
		   :echo substitute(s, '%\(\x\x\)',
			   \ '\=nr2char("0x" . submatch(1))', 'g')

<		When {sub} is a Funcref that function is called, with one
		optional argument.  Example: >
		   :echo substitute(s, '%\(\x\x\)', SubNr, 'g')
<		The optional argument is a list which contains the whole
		matched string and up to nine submatches, like what
		|submatch()| returns.  Example: >
		   :echo substitute(s, '%\(\x\x\)', {m -> '0x' . m[1]}, 'g')

synID({lnum}, {col}, {trans})				*synID()*
		The result is a Number, which is the syntax ID at the position
		{lnum} and {col} in the current window.
		The syntax ID can be used with |synIDattr()| and
		|synIDtrans()| to obtain syntax information about text.

		{col} is 1 for the leftmost column, {lnum} is 1 for the first
		line.  'synmaxcol' applies, in a longer line zero is returned.
		Note that when the position is after the last character,
		that's where the cursor can be in Insert mode, synID() returns
		zero.

		When {trans} is |TRUE|, transparent items are reduced to the
		item that they reveal.  This is useful when wanting to know
		the effective color.  When {trans} is |FALSE|, the transparent
		item is returned.  This is useful when wanting to know which
		syntax item is effective (e.g. inside parens).
		Warning: This function can be very slow.  Best speed is
		obtained by going through the file in forward direction.

		Example (echoes the name of the syntax item under the cursor): >
			:echo synIDattr(synID(line("."), col("."), 1), "name")
<

synIDattr({synID}, {what} [, {mode}])			*synIDattr()*
		The result is a String, which is the {what} attribute of
		syntax ID {synID}.  This can be used to obtain information
		about a syntax item.
		{mode} can be "gui", "cterm" or "term", to get the attributes
		for that mode.  When {mode} is omitted, or an invalid value is
		used, the attributes for the currently active highlighting are
		used (GUI, cterm or term).
		Use synIDtrans() to follow linked highlight groups.
		{what}		result
		"name"		the name of the syntax item
		"fg"		foreground color (GUI: color name used to set
				the color, cterm: color number as a string,
				term: empty string)
		"bg"		background color (as with "fg")
		"font"		font name (only available in the GUI)
				|highlight-font|
		"sp"		special color (as with "fg") |highlight-guisp|
		"fg#"		like "fg", but for the GUI and the GUI is
				running the name in "#RRGGBB" form
		"bg#"		like "fg#" for "bg"
		"sp#"		like "fg#" for "sp"
		"bold"		"1" if bold
		"italic"	"1" if italic
		"reverse"	"1" if reverse
		"inverse"	"1" if inverse (= reverse)
		"standout"	"1" if standout
		"underline"	"1" if underlined
		"undercurl"	"1" if undercurled
		"strike"	"1" if strikethrough

		Example (echoes the color of the syntax item under the
		cursor): >
	:echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "fg")
<
synIDtrans({synID})					*synIDtrans()*
		The result is a Number, which is the translated syntax ID of
		{synID}.  This is the syntax group ID of what is being used to
		highlight the character.  Highlight links given with
		":highlight link" are followed.

synconcealed({lnum}, {col})				*synconcealed()*
		The result is a List with currently three items:
		1. The first item in the list is 0 if the character at the
		   position {lnum} and {col} is not part of a concealable
		   region, 1 if it is.
		2. The second item in the list is a string. If the first item
		   is 1, the second item contains the text which will be
		   displayed in place of the concealed text, depending on the
		   current setting of 'conceallevel' and 'listchars'.
		3. The third and final item in the list is a number
		   representing the specific syntax region matched in the
		   line. When the character is not concealed the value is
		   zero. This allows detection of the beginning of a new
		   concealable region if there are two consecutive regions
		   with the same replacement character.  For an example, if
		   the text is "123456" and both "23" and "45" are concealed
		   and replace by the character "X", then:
			call			returns ~
			synconcealed(lnum, 1)   [0, '', 0]
			synconcealed(lnum, 2)   [1, 'X', 1]
			synconcealed(lnum, 3)   [1, 'X', 1]
			synconcealed(lnum, 4)   [1, 'X', 2]
			synconcealed(lnum, 5)   [1, 'X', 2]
			synconcealed(lnum, 6)   [0, '', 0]


synstack({lnum}, {col})					*synstack()*
		Return a |List|, which is the stack of syntax items at the
		position {lnum} and {col} in the current window.  Each item in
		the List is an ID like what |synID()| returns.
		The first item in the List is the outer region, following are
		items contained in that one.  The last one is what |synID()|
		returns, unless not the whole item is highlighted or it is a
		transparent item.
		This function is useful for debugging a syntax file.
		Example that shows the syntax stack under the cursor: >
			for id in synstack(line("."), col("."))
			   echo synIDattr(id, "name")
			endfor
<		When the position specified with {lnum} and {col} is invalid
		nothing is returned.  The position just after the last
		character in a line and the first column in an empty line are
		valid positions.

system({expr} [, {input}])				*system()* *E677*
		Get the output of the shell command {expr} as a string.  See
		|systemlist()| to get the output as a List.

		When {input} is given and is a string this string is written
		to a file and passed as stdin to the command.  The string is
		written as-is, you need to take care of using the correct line
		separators yourself.
		If {input} is given and is a |List| it is written to the file
		in a way |writefile()| does with {binary} set to "b" (i.e.
		with a newline between each list item with newlines inside
		list items converted to NULs).
		When {input} is given and is a number that is a valid id for
		an existing buffer then the content of the buffer is written
		to the file line by line, each line terminated by a NL and
		NULs characters where the text has a NL.

		Pipes are not used, the 'shelltemp' option is not used.

		When prepended by |:silent| the terminal will not be set to
		cooked mode.  This is meant to be used for commands that do
		not need the user to type.  It avoids stray characters showing
		up on the screen which require |CTRL-L| to remove. >
			:silent let f = system('ls *.vim')
<
		Note: Use |shellescape()| or |::S| with |expand()| or
		|fnamemodify()| to escape special characters in a command
		argument.  Newlines in {expr} may cause the command to fail.
		The characters in 'shellquote' and 'shellxquote' may also
		cause trouble.
		This is not to be used for interactive commands.

		The result is a String.  Example: >
		    :let files = system("ls " .  shellescape(expand('%:h')))
		    :let files = system('ls ' . expand('%:h:S'))

<		To make the result more system-independent, the shell output
		is filtered to replace <CR> with <NL> for Macintosh, and
		<CR><NL> with <NL> for DOS-like systems.
		To avoid the string being truncated at a NUL, all NUL
		characters are replaced with SOH (0x01).

		The command executed is constructed using several options:
	'shell' 'shellcmdflag' 'shellxquote' {expr} 'shellredir' {tmp} 'shellxquote'
		({tmp} is an automatically generated file name).
		For Unix and OS/2 braces are put around {expr} to allow for
		concatenated commands.

		The command will be executed in "cooked" mode, so that a
		CTRL-C will interrupt the command (on Unix at least).

		The resulting error code can be found in |v:shell_error|.
		This function will fail in |restricted-mode|.

		Note that any wrong value in the options mentioned above may
		make the function fail.  It has also been reported to fail
		when using a security agent application.
		Unlike ":!cmd" there is no automatic check for changed files.
		Use |:checktime| to force a check.


systemlist({expr} [, {input}])				*systemlist()*
		Same as |system()|, but returns a |List| with lines (parts of
		output separated by NL) with NULs transformed into NLs. Output
		is the same as |readfile()| will output with {binary} argument
		set to "b".  Note that on MS-Windows you may get trailing CR
		characters.

		Returns an empty string on error.


tabpagebuflist([{arg}])					*tabpagebuflist()*
		The result is a |List|, where each item is the number of the
		buffer associated with each window in the current tab page.
		{arg} specifies the number of the tab page to be used. When
		omitted the current tab page is used.
		When {arg} is invalid the number zero is returned.
		To get a list of all buffers in all tabs use this: >
			let buflist = []
			for i in range(tabpagenr('$'))
			   call extend(buflist, tabpagebuflist(i + 1))
			endfor
<		Note that a buffer may appear in more than one window.


tabpagenr([{arg}])					*tabpagenr()*
		The result is a Number, which is the number of the current
		tab page.  The first tab page has number 1.
		When the optional argument is "$", the number of the last tab
		page is returned (the tab page count).
		The number can be used with the |:tab| command.


tabpagewinnr({tabarg} [, {arg}])			*tabpagewinnr()*
		Like |winnr()| but for tab page {tabarg}.
		{tabarg} specifies the number of tab page to be used.
		{arg} is used like with |winnr()|:
		- When omitted the current window number is returned.  This is
		  the window which will be used when going to this tab page.
		- When "$" the number of windows is returned.
		- When "#" the previous window nr is returned.
		Useful examples: >
		    tabpagewinnr(1)	    " current window of tab page 1
		    tabpagewinnr(4, '$')    " number of windows in tab page 4
<		When {tabarg} is invalid zero is returned.

							*tagfiles()*
tagfiles()	Returns a |List| with the file names used to search for tags
		for the current buffer.  This is the 'tags' option expanded.


taglist({expr} [, {filename}])				*taglist()*
		Returns a list of tags matching the regular expression {expr}.

		If {filename} is passed it is used to prioritize the results
		in the same way that |:tselect| does. See |tag-priority|.
		{filename} should be the full path of the file.

		Each list item is a dictionary with at least the following
		entries:
			name		Name of the tag.
			filename	Name of the file where the tag is
					defined.  It is either relative to the
					current directory or a full path.
			cmd		Ex command used to locate the tag in
					the file.
			kind		Type of the tag.  The value for this
					entry depends on the language specific
					kind values.  Only available when
					using a tags file generated by
					Exuberant ctags or hdrtag.
			static		A file specific tag.  Refer to
					|static-tag| for more information.
		More entries may be present, depending on the content of the
		tags file: access, implementation, inherits and signature.
		Refer to the ctags documentation for information about these
		fields.  For C code the fields "struct", "class" and "enum"
		may appear, they give the name of the entity the tag is
		contained in.

		The ex-command "cmd" can be either an ex search pattern, a
		line number or a line number followed by a byte number.

		If there are no matching tags, then an empty list is returned.

		To get an exact tag match, the anchors '^' and '$' should be
		used in {expr}.  This also make the function work faster.
		Refer to |tag-regexp| for more information about the tag
		search regular expression pattern.

		Refer to |'tags'| for information about how the tags file is
		located by Vim. Refer to |tags-file-format| for the format of
		the tags file generated by the different ctags tools.

tan({expr})						*tan()*
		Return the tangent of {expr}, measured in radians, as a |Float|
		in the range [-inf, inf].
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo tan(10)
<			0.648361 >
			:echo tan(-4.01)
<			-1.181502
		{only available when compiled with the |+float| feature}


tanh({expr})						*tanh()*
		Return the hyperbolic tangent of {expr} as a |Float| in the
		range [-1, 1].
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			:echo tanh(0.5)
<			0.462117 >
			:echo tanh(-1)
<			-0.761594
		{only available when compiled with the |+float| feature}


tempname()					*tempname()* *temp-file-name*
		The result is a String, which is the name of a file that
		doesn't exist.  It can be used for a temporary file.  The name
		is different for at least 26 consecutive calls.  Example: >
			:let tmpfile = tempname()
			:exe "redir > " . tmpfile
<		For Unix, the file will be in a private directory |tempfile|.
		For MS-Windows forward slashes are used when the 'shellslash'
		option is set or when 'shellcmdflag' starts with '-'.

							*term_dumpdiff()*
term_dumpdiff({filename}, {filename} [, {options}])
		Open a new window displaying the difference between the two
		files.  The files must have been created with
		|term_dumpwrite()|.
		Returns the buffer number or zero when the diff fails.
		Also see |terminal-diff|.
		NOTE: this does not work with double-width characters yet.

		The top part of the buffer contains the contents of the first
		file, the bottom part of the buffer contains the contents of
		the second file.  The middle part shows the differences.
		The parts are separated by a line of dashes.

		If the {options} argument is present, it must be a Dict with
		these possible members:
		   "term_name"	     name to use for the buffer name, instead
				     of the first file name.
		   "term_rows"	     vertical size to use for the terminal,
				     instead of using 'termwinsize'
		   "term_cols"	     horizontal size to use for the terminal,
				     instead of using 'termwinsize'
		   "vertical"	     split the window vertically
		   "curwin"	     use the current window, do not split the
				     window; fails if the current buffer
				     cannot be |abandon|ed
		   "norestore"	     do not add the terminal window to a
				     session file

		Each character in the middle part indicates a difference. If
		there are multiple differences only the first in this list is
		used:
			X	different character
			w	different width
			f	different foreground color
			b	different background color
			a	different attribute
			+	missing position in first file
			-	missing position in second file

		Using the "s" key the top and bottom parts are swapped.  This
		makes it easy to spot a difference.

							*term_dumpload()*
term_dumpload({filename} [, {options}])
		Open a new window displaying the contents of {filename}
		The file must have been created with |term_dumpwrite()|.
		Returns the buffer number or zero when it fails.
		Also see |terminal-diff|.

		For {options} see |term_dumpdiff()|.

							*term_dumpwrite()*
term_dumpwrite({buf}, {filename} [, {options}])
		Dump the contents of the terminal screen of {buf} in the file
		{filename}.  This uses a format that can be used with
		|term_dumpload()| and |term_dumpdiff()|.
		If {filename} already exists an error is given.	*E953*
		Also see |terminal-diff|.

		{options} is a dictionary with these optional entries:
			"rows"		maximum number of rows to dump
			"columns"	maximum number of columns to dump

term_getaltscreen({buf})				*term_getaltscreen()*
		Returns 1 if the terminal of {buf} is using the alternate
		screen.
		{buf} is used as with |term_getsize()|.
		{only available when compiled with the |+terminal| feature}

term_getansicolors({buf})				*term_getansicolors()*
		Get the ANSI color palette in use by terminal {buf}.
		Returns a List of length 16 where each element is a String
		representing a color in hexadecimal "#rrggbb" format.
		Also see |term_setansicolors()| and |g:terminal_ansi_colors|.
		If neither was used returns the default colors.

		{buf} is used as with |term_getsize()|.  If the buffer does not
		exist or is not a terminal window, an empty list is returned.
		{only available when compiled with the |+terminal| feature and
		with GUI enabled and/or the |+termguicolors| feature}

term_getattr({attr}, {what})				*term_getattr()*
		Given {attr}, a value returned by term_scrape() in the "attr"
		item, return whether {what} is on.  {what} can be one of:
			bold
			italic
			underline
			strike
			reverse
		{only available when compiled with the |+terminal| feature}

term_getcursor({buf})					*term_getcursor()*
		Get the cursor position of terminal {buf}. Returns a list with
		two numbers and a dictionary: [row, col, dict].

		"row" and "col" are one based, the first screen cell is row
		1, column 1.  This is the cursor position of the terminal
		itself, not of the Vim window.

		"dict" can have these members:
		   "visible"	one when the cursor is visible, zero when it
				is hidden.
		   "blink"	one when the cursor is visible, zero when it
				is hidden.
		   "shape"	1 for a block cursor, 2 for underline and 3
				for a vertical bar.

		{buf} must be the buffer number of a terminal window. If the
		buffer does not exist or is not a terminal window, an empty
		list is returned.
		{only available when compiled with the |+terminal| feature}

term_getjob({buf})					*term_getjob()*
		Get the Job associated with terminal window {buf}.
		{buf} is used as with |term_getsize()|.
		Returns |v:null| when there is no job.
		{only available when compiled with the |+terminal| feature}

term_getline({buf}, {row})				*term_getline()*
		Get a line of text from the terminal window of {buf}.
		{buf} is used as with |term_getsize()|.

		The first line has {row} one.  When {row} is "." the cursor
		line is used.  When {row} is invalid an empty string is
		returned.

		To get attributes of each character use |term_scrape()|.
		{only available when compiled with the |+terminal| feature}

term_getscrolled({buf})					*term_getscrolled()*
		Return the number of lines that scrolled to above the top of
		terminal {buf}.  This is the offset between the row number
		used for |term_getline()| and |getline()|, so that: >
			term_getline(buf, N)
<		is equal to: >
			`getline(N + term_getscrolled(buf))
<		(if that line exists).

		{buf} is used as with |term_getsize()|.
		{only available when compiled with the |+terminal| feature}

term_getsize({buf})					*term_getsize()*
		Get the size of terminal {buf}. Returns a list with two
		numbers: [rows, cols].  This is the size of the terminal, not
		the window containing the terminal.

		{buf} must be the buffer number of a terminal window.  Use an
		empty string for the current buffer.  If the buffer does not
		exist or is not a terminal window, an empty list is returned.
		{only available when compiled with the |+terminal| feature}

term_getstatus({buf})					*term_getstatus()*
		Get the status of terminal {buf}. This returns a comma
		separated list of these items:
			running		job is running
			finished	job has finished
			normal		in Terminal-Normal mode
		One of "running" or "finished" is always present.

		{buf} must be the buffer number of a terminal window. If the
		buffer does not exist or is not a terminal window, an empty
		string is returned.
		{only available when compiled with the |+terminal| feature}

term_gettitle({buf})					*term_gettitle()*
		Get the title of terminal {buf}. This is the title that the
		job in the terminal has set.

		{buf} must be the buffer number of a terminal window. If the
		buffer does not exist or is not a terminal window, an empty
		string is returned.
		{only available when compiled with the |+terminal| feature}

term_gettty({buf} [, {input}])				*term_gettty()*
		Get the name of the controlling terminal associated with
		terminal window {buf}.  {buf} is used as with |term_getsize()|.

		When {input} is omitted or 0, return the name for writing
		(stdout). When {input} is 1 return the name for reading
		(stdin). On UNIX, both return same name.
		{only available when compiled with the |+terminal| feature}

term_list()						*term_list()*
		Return a list with the buffer numbers of all buffers for
		terminal windows.
		{only available when compiled with the |+terminal| feature}

term_scrape({buf}, {row})				*term_scrape()*
		Get the contents of {row} of terminal screen of {buf}.
		For {buf} see |term_getsize()|.

		The first line has {row} one.  When {row} is "." the cursor
		line is used.  When {row} is invalid an empty string is
		returned.

		Return a List containing a Dict for each screen cell:
		    "chars"	character(s) at the cell
		    "fg"	foreground color as #rrggbb
		    "bg"	background color as #rrggbb
		    "attr"	attributes of the cell, use |term_getattr()|
				to get the individual flags
		    "width"	cell width: 1 or 2
		{only available when compiled with the |+terminal| feature}

term_sendkeys({buf}, {keys})				*term_sendkeys()*
		Send keystrokes {keys} to terminal {buf}.
		{buf} is used as with |term_getsize()|.

		{keys} are translated as key sequences. For example, "\<c-x>"
		means the character CTRL-X.
		{only available when compiled with the |+terminal| feature}

term_setansicolors({buf}, {colors})			*term_setansicolors()*
		Set the ANSI color palette used by terminal {buf}.
		{colors} must be a List of 16 valid color names or hexadecimal
		color codes, like those accepted by |highlight-guifg|.
		Also see |term_getansicolors()| and |g:terminal_ansi_colors|.

		The colors normally are:
			0    black
			1    dark red
			2    dark green
			3    brown
			4    dark blue
			5    dark magenta
			6    dark cyan
			7    light grey
			8    dark grey
			9    red
			10   green
			11   yellow
			12   blue
			13   magenta
			14   cyan
			15   white

		These colors are used in the GUI and in the terminal when
		'termguicolors' is set.  When not using GUI colors (GUI mode
		or 'termguicolors'), the terminal window always uses the 16
		ANSI colors of the underlying terminal.
		{only available when compiled with the |+terminal| feature and
		with GUI enabled and/or the |+termguicolors| feature}

term_setkill({buf}, {how})				*term_setkill()*
		When exiting Vim or trying to close the terminal window in
		another way, {how} defines whether the job in the terminal can
		be stopped.
		When {how} is empty (the default), the job will not be
		stopped, trying to exit will result in |E947|.
		Otherwise, {how} specifies what signal to send to the job.
		See |job_stop()| for the values.

		After sending the signal Vim will wait for up to a second to
		check that the job actually stopped.

term_setrestore({buf}, {command})			*term_setrestore()*
		Set the command to write in a session file to restore the job
		in this terminal.  The line written in the session file is: >
			terminal ++curwin ++cols=%d ++rows=%d {command}
<		Make sure to escape the command properly.

		Use an empty {command} to run 'shell'.
		Use "NONE" to not restore this window.
		{only available when compiled with the |+terminal| feature}

term_setsize({buf}, {rows}, {cols})		*term_setsize()* *E955*
		Set the size of terminal {buf}. The size of the window
		containing the terminal will also be adjusted, if possible.
		If {rows} or {cols} is zero or negative, that dimension is not
		changed.

		{buf} must be the buffer number of a terminal window.  Use an
		empty string for the current buffer.  If the buffer does not
		exist or is not a terminal window, an error is given.
		{only available when compiled with the |+terminal| feature}

term_start({cmd}, {options})				*term_start()*
		Open a terminal window and run {cmd} in it.

		{cmd} can be a string or a List, like with |job_start()|. The
		string "NONE" can be used to open a terminal window without
		starting a job, the pty of the terminal can be used by a
		command like gdb.

		Returns the buffer number of the terminal window.  If {cmd}
		cannot be executed the window does open and shows an error
		message.
		If opening the window fails zero is returned.

		{options} are similar to what is used for |job_start()|, see
		|job-options|.  However, not all options can be used.  These
		are supported:
		   all timeout options
		   "stoponexit"
		   "callback", "out_cb", "err_cb"
		   "exit_cb", "close_cb"
		   "in_io", "in_top", "in_bot", "in_name", "in_buf"
		   "out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
		   "err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
		However, at least one of stdin, stdout or stderr must be
		connected to the terminal.  When I/O is connected to the
		terminal then the callback function for that part is not used.

		There are extra options:
		   "term_name"	     name to use for the buffer name, instead
				     of the command name.
		   "term_rows"	     vertical size to use for the terminal,
				     instead of using 'termwinsize'
		   "term_cols"	     horizontal size to use for the terminal,
				     instead of using 'termwinsize'
		   "vertical"	     split the window vertically
		   "curwin"	     use the current window, do not split the
				     window; fails if the current buffer
				     cannot be |abandon|ed
		   "hidden"	     do not open a window
		   "norestore"	     do not add the terminal window to a
				     session file
		   "term_kill"	     what to do when trying to close the
				     terminal window, see |term_setkill()|
		   "term_finish"     What to do when the job is finished:
					"close": close any windows
					"open": open window if needed
				     Note that "open" can be interruptive.
				     See |term++close| and |term++open|.
		   "term_opencmd"    command to use for opening the window when
				     "open" is used for "term_finish"; must
				     have "%d" where the buffer number goes,
				     e.g. "10split|buffer %d"; when not
				     specified "botright sbuf %d" is used
		   "eof_chars"	     Text to send after all buffer lines were
				     written to the terminal.  When not set
				     CTRL-D is used on MS-Windows. For Python
				     use CTRL-Z or "exit()". For a shell use
				     "exit".  A CR is always added.
		   "ansi_colors"     A list of 16 color names or hex codes
				     defining the ANSI palette used in GUI
				     color modes.  See |g:terminal_ansi_colors|.

		{only available when compiled with the |+terminal| feature}

term_wait({buf} [, {time}])					*term_wait()*
		Wait for pending updates of {buf} to be handled.
		{buf} is used as with |term_getsize()|.
		{time} is how long to wait for updates to arrive in msec.  If
		not set then 10 msec will be used.
		{only available when compiled with the |+terminal| feature}

test_alloc_fail({id}, {countdown}, {repeat})		*test_alloc_fail()*
		This is for testing: If the memory allocation with {id} is
		called, then decrement {countdown}, and when it reaches zero
		let memory allocation fail {repeat} times.  When {repeat} is
		smaller than one it fails one time.

test_autochdir()					*test_autochdir()*
		Set a flag to enable the effect of 'autochdir' before Vim
		startup has finished.

test_feedinput({string})				*test_feedinput()*
		Characters in {string} are queued for processing as if they
		were typed by the user. This uses a low level input buffer.
		This function works only when with |+unix| or GUI is running.

test_garbagecollect_now()			 *test_garbagecollect_now()*
		Like garbagecollect(), but executed right away.  This must
		only be called directly to avoid any structure to exist
		internally, and |v:testing| must have been set before calling
		any function.

test_ignore_error({expr})			 *test_ignore_error()*
		Ignore any error containing {expr}.  A normal message is given
		instead.
		This is only meant to be used in tests, where catching the
		error with try/catch cannot be used (because it skips over
		following code).
		{expr} is used literally, not as a pattern.
		There is currently no way to revert this.

test_null_channel()					*test_null_channel()*
		Return a Channel that is null. Only useful for testing.
		{only available when compiled with the +channel feature}

test_null_dict()					*test_null_dict()*
		Return a Dict that is null. Only useful for testing.

test_null_job()						*test_null_job()*
		Return a Job that is null. Only useful for testing.
		{only available when compiled with the +job feature}

test_null_list()					*test_null_list()*
		Return a List that is null. Only useful for testing.

test_null_partial()					*test_null_partial()*
		Return a Partial that is null. Only useful for testing.

test_null_string()					*test_null_string()*
		Return a String that is null. Only useful for testing.

test_override({name}, {val})				*test_override()*
		Overrides certain parts of Vims internal processing to be able
		to run tests. Only to be used for testing Vim!
		The override is enabled when {val} is non-zero and removed
		when {val} is zero.
		Current supported values for name are:

		name	     effect when {val} is non-zero ~
		redraw       disable the redrawing() function
		char_avail   disable the char_avail() function
		starting     reset the "starting" variable, see below
		ALL	     clear all overrides ({val} is not used)

		"starting" is to be used when a test should behave like
		startup was done.  Since the tests are run by sourcing a
		script the "starting" variable is non-zero. This is usually a
		good thing (tests run faster), but sometimes changes behavior
		in a way that the test doesn't work properly.
		When using: >
			call test_override('starting', 1)
<		The value of "starting" is saved.  It is restored by: >
			call test_override('starting', 0)

test_settime({expr})					*test_settime()*
		Set the time Vim uses internally.  Currently only used for
		timestamps in the history, as they are used in viminfo, and
		for undo.
		Using a value of 1 makes Vim not sleep after a warning or
		error message.
		{expr} must evaluate to a number.  When the value is zero the
		normal behavior is restored.

							*timer_info()*
timer_info([{id}])
		Return a list with information about timers.
		When {id} is given only information about this timer is
		returned.  When timer {id} does not exist an empty list is
		returned.
		When {id} is omitted information about all timers is returned.

		For each timer the information is stored in a Dictionary with
		these items:
		    "id"	    the timer ID
		    "time"	    time the timer was started with
		    "remaining"	    time until the timer fires
		    "repeat"	    number of times the timer will still fire;
				    -1 means forever
		    "callback"	    the callback
		    "paused"	    1 if the timer is paused, 0 otherwise

		{only available when compiled with the |+timers| feature}

timer_pause({timer}, {paused})				*timer_pause()*
		Pause or unpause a timer.  A paused timer does not invoke its
		callback when its time expires.  Unpausing a timer may cause
		the callback to be invoked almost immediately if enough time
		has passed.

		Pausing a timer is useful to avoid the callback to be called
		for a short time.

		If {paused} evaluates to a non-zero Number or a non-empty
		String, then the timer is paused, otherwise it is unpaused.
		See |non-zero-arg|.

		{only available when compiled with the |+timers| feature}

						*timer_start()* *timer* *timers*
timer_start({time}, {callback} [, {options}])
		Create a timer and return the timer ID.

		{time} is the waiting time in milliseconds. This is the
		minimum time before invoking the callback.  When the system is
		busy or Vim is not waiting for input the time will be longer.

		{callback} is the function to call.  It can be the name of a
		function or a |Funcref|.  It is called with one argument, which
		is the timer ID.  The callback is only invoked when Vim is
		waiting for input.

		{options} is a dictionary.  Supported entries:
		   "repeat"	Number of times to repeat calling the
				callback.  -1 means forever.  When not present
				the callback will be called once.
				If the timer causes an error three times in a
				row the repeat is cancelled.  This avoids that
				Vim becomes unusable because of all the error
				messages.

		Example: >
			func MyHandler(timer)
			  echo 'Handler called'
			endfunc
			let timer = timer_start(500, 'MyHandler',
				\ {'repeat': 3})
<		This will invoke MyHandler() three times at 500 msec
		intervals.

		{only available when compiled with the |+timers| feature}

timer_stop({timer})					*timer_stop()*
		Stop a timer.  The timer callback will no longer be invoked.
		{timer} is an ID returned by timer_start(), thus it must be a
		Number.  If {timer} does not exist there is no error.

		{only available when compiled with the |+timers| feature}

timer_stopall()						*timer_stopall()*
		Stop all timers.  The timer callbacks will no longer be
		invoked.  Useful if some timers is misbehaving.  If there are
		no timers there is no error.

		{only available when compiled with the |+timers| feature}

tolower({expr})						*tolower()*
		The result is a copy of the String given, with all uppercase
		characters turned into lowercase (just like applying |gu| to
		the string).

toupper({expr})						*toupper()*
		The result is a copy of the String given, with all lowercase
		characters turned into uppercase (just like applying |gU| to
		the string).

tr({src}, {fromstr}, {tostr})				*tr()*
		The result is a copy of the {src} string with all characters
		which appear in {fromstr} replaced by the character in that
		position in the {tostr} string.  Thus the first character in
		{fromstr} is translated into the first character in {tostr}
		and so on.  Exactly like the unix "tr" command.
		This code also deals with multibyte characters properly.

		Examples: >
			echo tr("hello there", "ht", "HT")
<		returns "Hello THere" >
			echo tr("<blob>", "<>", "{}")
<		returns "{blob}"

trim({text}[, {mask}])						*trim()*
		Return {text} as a String where any character in {mask} is
		removed from the beginning and  end of {text}.
		If {mask} is not given, {mask} is all characters up to 0x20,
		which includes Tab, space, NL and CR, plus the non-breaking
		space character 0xa0.
		This code deals with multibyte characters properly.

		Examples: >
			echo trim("   some text ")
<		returns "some text" >
			echo trim("  \r\t\t\r RESERVE \t\n\x0B\xA0") . "_TAIL"
<		returns "RESERVE_TAIL" >
			echo trim("rm<Xrm<>X>rrm", "rm<>")
<		returns "Xrm<>X" (characters in the middle are not removed)

trunc({expr})							*trunc()*
		Return the largest integral value with magnitude less than or
		equal to {expr} as a |Float| (truncate towards zero).
		{expr} must evaluate to a |Float| or a |Number|.
		Examples: >
			echo trunc(1.456)
<			1.0  >
			echo trunc(-5.456)
<			-5.0  >
			echo trunc(4.0)
<			4.0
		{only available when compiled with the |+float| feature}

							*type()*
type({expr})	The result is a Number representing the type of {expr}.
		Instead of using the number directly, it is better to use the
		v:t_ variable that has the value:
			Number:	    0  |v:t_number|
			String:	    1  |v:t_string|
			Funcref:    2  |v:t_func|
			List:	    3  |v:t_list|
			Dictionary: 4  |v:t_dict|
			Float:	    5  |v:t_float|
			Boolean:    6  |v:t_bool| (v:false and v:true)
			None	    7  |v:t_none| (v:null and v:none)
			Job	    8  |v:t_job|
			Channel	    9  |v:t_channel|
		For backward compatibility, this method can be used: >
			:if type(myvar) == type(0)
			:if type(myvar) == type("")
			:if type(myvar) == type(function("tr"))
			:if type(myvar) == type([])
			:if type(myvar) == type({})
			:if type(myvar) == type(0.0)
			:if type(myvar) == type(v:false)
			:if type(myvar) == type(v:none)
<		To check if the v:t_ variables exist use this: >
			:if exists('v:t_number')

undofile({name})					*undofile()*
		Return the name of the undo file that would be used for a file
		with name {name} when writing.  This uses the 'undodir'
		option, finding directories that exist.  It does not check if
		the undo file exists.
		{name} is always expanded to the full path, since that is what
		is used internally.
		If {name} is empty undofile() returns an empty string, since a
		buffer without a file name will not write an undo file.
		Useful in combination with |:wundo| and |:rundo|.
		When compiled without the +persistent_undo option this always
		returns an empty string.

undotree()						*undotree()*
		Return the current state of the undo tree in a dictionary with
		the following items:
		  "seq_last"	The highest undo sequence number used.
		  "seq_cur"	The sequence number of the current position in
				the undo tree.  This differs from "seq_last"
				when some changes were undone.
		  "time_cur"	Time last used for |:earlier| and related
				commands.  Use |strftime()| to convert to
				something readable.
		  "save_last"	Number of the last file write.  Zero when no
				write yet.
		  "save_cur"	Number of the current position in the undo
				tree.
		  "synced"	Non-zero when the last undo block was synced.
				This happens when waiting from input from the
				user.  See |undo-blocks|.
		  "entries"	A list of dictionaries with information about
				undo blocks.

		The first item in the "entries" list is the oldest undo item.
		Each List item is a Dictionary with these items:
		  "seq"		Undo sequence number.  Same as what appears in
				|:undolist|.
		  "time"	Timestamp when the change happened.  Use
				|strftime()| to convert to something readable.
		  "newhead"	Only appears in the item that is the last one
				that was added.  This marks the last change
				and where further changes will be added.
		  "curhead"	Only appears in the item that is the last one
				that was undone.  This marks the current
				position in the undo tree, the block that will
				be used by a redo command.  When nothing was
				undone after the last change this item will
				not appear anywhere.
		  "save"	Only appears on the last block before a file
				write.  The number is the write count.  The
				first write has number 1, the last one the
				"save_last" mentioned above.
		  "alt"		Alternate entry.  This is again a List of undo
				blocks.  Each item may again have an "alt"
				item.

uniq({list} [, {func} [, {dict}]])			*uniq()* *E882*
		Remove second and succeeding copies of repeated adjacent
		{list} items in-place.  Returns {list}.  If you want a list
		to remain unmodified make a copy first: >
			:let newlist = uniq(copy(mylist))
<		The default compare function uses the string representation of
		each item.  For the use of {func} and {dict} see |sort()|.

values({dict})						*values()*
		Return a |List| with all the values of {dict}.  The |List| is
		in arbitrary order.


virtcol({expr})						*virtcol()*
		The result is a Number, which is the screen column of the file
		position given with {expr}.  That is, the last screen position
		occupied by the character at that position, when the screen
		would be of unlimited width.  When there is a <Tab> at the
		position, the returned Number will be the column at the end of
		the <Tab>.  For example, for a <Tab> in column 1, with 'ts'
		set to 8, it returns 8. |conceal| is ignored.
		For the byte position use |col()|.
		For the use of {expr} see |col()|.
		When 'virtualedit' is used {expr} can be [lnum, col, off], where
		"off" is the offset in screen columns from the start of the
		character.  E.g., a position within a <Tab> or after the last
		character.  When "off" is omitted zero is used.
		When Virtual editing is active in the current mode, a position
		beyond the end of the line can be returned. |'virtualedit'|
		The accepted positions are:
		    .	    the cursor position
		    $	    the end of the cursor line (the result is the
			    number of displayed characters in the cursor line
			    plus one)
		    'x	    position of mark x (if the mark is not set, 0 is
			    returned)
		    v       In Visual mode: the start of the Visual area (the
			    cursor is the end).  When not in Visual mode
			    returns the cursor position.  Differs from |'<| in
			    that it's updated right away.
		Note that only marks in the current file can be used.
		Examples: >
  virtcol(".")	   with text "foo^Lbar", with cursor on the "^L", returns 5
  virtcol("$")	   with text "foo^Lbar", returns 9
  virtcol("'t")    with text "	  there", with 't at 'h', returns 6
<		The first column is 1.  0 is returned for an error.
		A more advanced example that echoes the maximum length of
		all lines: >
		    echo max(map(range(1, line('$')), "virtcol([v:val, '$'])"))


visualmode([expr])						*visualmode()*
		The result is a String, which describes the last Visual mode
		used in the current buffer.  Initially it returns an empty
		string, but once Visual mode has been used, it returns "v",
		"V", or "<CTRL-V>" (a single CTRL-V character) for
		character-wise, line-wise, or block-wise Visual mode
		respectively.
		Example: >
			:exe "normal " . visualmode()
<		This enters the same Visual mode as before.  It is also useful
		in scripts if you wish to act differently depending on the
		Visual mode that was used.
		If Visual mode is active, use |mode()| to get the Visual mode
		(e.g., in a |:vmap|).
		If [expr] is supplied and it evaluates to a non-zero Number or
		a non-empty String, then the Visual mode will be cleared and
		the old value is returned.  See |non-zero-arg|.

wildmenumode()					*wildmenumode()*
		Returns |TRUE| when the wildmenu is active and |FALSE|
		otherwise.  See 'wildmenu' and 'wildmode'.
		This can be used in mappings to handle the 'wildcharm' option
		gracefully. (Makes only sense with |mapmode-c| mappings).

		For example to make <c-j> work like <down> in wildmode, use: >
    :cnoremap <expr> <C-j> wildmenumode() ? "\<Down>\<Tab>" : "\<c-j>"
<
		(Note, this needs the 'wildcharm' option set appropriately).


win_findbuf({bufnr})					*win_findbuf()*
		Returns a list with |window-ID|s for windows that contain
		buffer {bufnr}.  When there is none the list is empty.

win_getid([{win} [, {tab}]])				*win_getid()*
		Get the |window-ID| for the specified window.
		When {win} is missing use the current window.
		With {win} this is the window number.  The top window has
		number 1.  Use `win_getid(winnr())` for the current window.
		Without {tab} use the current tab, otherwise the tab with
		number {tab}.  The first tab has number one.
		Return zero if the window cannot be found.

win_gotoid({expr})					*win_gotoid()*
		Go to window with ID {expr}.  This may also change the current
		tabpage.
		Return 1 if successful, 0 if the window cannot be found.

win_id2tabwin({expr})					*win_id2tabwin()*
		Return a list with the tab number and window number of window
		with ID {expr}: [tabnr, winnr].
		Return [0, 0] if the window cannot be found.

win_id2win({expr})					*win_id2win()*
		Return the window number of window with ID {expr}.
		Return 0 if the window cannot be found in the current tabpage.

win_screenpos({nr})					*win_screenpos()*
		Return the screen position of window {nr} as a list with two
		numbers: [row, col].  The first window always has position
		[1, 1].
		{nr} can be the window number or the |window-ID|.
		Return [0, 0] if the window cannot be found in the current
		tabpage.

							*winbufnr()*
winbufnr({nr})	The result is a Number, which is the number of the buffer
		associated with window {nr}.  {nr} can be the window number or
		the |window-ID|.
		When {nr} is zero, the number of the buffer in the current
		window is returned.
		When window {nr} doesn't exist, -1 is returned.
		Example: >
  :echo "The file in the current window is " . bufname(winbufnr(0))
<
							*wincol()*
wincol()	The result is a Number, which is the virtual column of the
		cursor in the window.  This is counting screen cells from the
		left side of the window.  The leftmost column is one.

winheight({nr})						*winheight()*
		The result is a Number, which is the height of window {nr}.
		{nr} can be the window number or the |window-ID|.
		When {nr} is zero, the height of the current window is
		returned.  When window {nr} doesn't exist, -1 is returned.
		An existing window always has a height of zero or more.
		This excludes any window toolbar line.
		Examples: >
  :echo "The current window has " . winheight(0) . " lines."
<
							*winline()*
winline()	The result is a Number, which is the screen line of the cursor
		in the window.  This is counting screen lines from the top of
		the window.  The first line is one.
		If the cursor was moved the view on the file will be updated
		first, this may cause a scroll.

							*winnr()*
winnr([{arg}])	The result is a Number, which is the number of the current
		window.  The top window has number 1.
		When the optional argument is "$", the number of the
		last window is returned (the window count). >
			let window_count = winnr('$')
<		When the optional argument is "#", the number of the last
		accessed window is returned (where |CTRL-W_p| goes to).
		If there is no previous window or it is in another tab page 0
		is returned.
		The number can be used with |CTRL-W_w| and ":wincmd w"
		|:wincmd|.
		Also see |tabpagewinnr()| and |win_getid()|.

							*winrestcmd()*
winrestcmd()	Returns a sequence of |:resize| commands that should restore
		the current window sizes.  Only works properly when no windows
		are opened or closed and the current window and tab page is
		unchanged.
		Example: >
			:let cmd = winrestcmd()
			:call MessWithWindowSizes()
			:exe cmd
<
							*winrestview()*
winrestview({dict})
		Uses the |Dictionary| returned by |winsaveview()| to restore
		the view of the current window.
		Note: The {dict} does not have to contain all values, that are
		returned by |winsaveview()|. If values are missing, those
		settings won't be restored. So you can use: >
		    :call winrestview({'curswant': 4})
<
		This will only set the curswant value (the column the cursor
		wants to move on vertical movements) of the cursor to column 5
		(yes, that is 5), while all other settings will remain the
		same. This is useful, if you set the cursor position manually.

		If you have changed the values the result is unpredictable.
		If the window size changed the result won't be the same.

							*winsaveview()*
winsaveview()	Returns a |Dictionary| that contains information to restore
		the view of the current window.  Use |winrestview()| to
		restore the view.
		This is useful if you have a mapping that jumps around in the
		buffer and you want to go back to the original view.
		This does not save fold information.  Use the 'foldenable'
		option to temporarily switch off folding, so that folds are
		not opened when moving around. This may have side effects.
		The return value includes:
			lnum		cursor line number
			col		cursor column (Note: the first column
					zero, as opposed to what getpos()
					returns)
			coladd		cursor column offset for 'virtualedit'
			curswant	column for vertical movement
			topline		first line in the window
			topfill		filler lines, only in diff mode
			leftcol		first column displayed
			skipcol		columns skipped
		Note that no option values are saved.


winwidth({nr})						*winwidth()*
		The result is a Number, which is the width of window {nr}.
		{nr} can be the window number or the |window-ID|.
		When {nr} is zero, the width of the current window is
		returned.  When window {nr} doesn't exist, -1 is returned.
		An existing window always has a width of zero or more.
		Examples: >
  :echo "The current window has " . winwidth(0) . " columns."
  :if winwidth(0) <= 50
  :  50 wincmd |
  :endif
<		For getting the terminal or screen size, see the 'columns'
		option.


wordcount()						*wordcount()*
		The result is a dictionary of byte/chars/word statistics for
		the current buffer.  This is the same info as provided by
		|g_CTRL-G|
		The return value includes:
			bytes		Number of bytes in the buffer
			chars		Number of chars in the buffer
			words		Number of words in the buffer
			cursor_bytes    Number of bytes before cursor position
					(not in Visual mode)
			cursor_chars    Number of chars before cursor position
					(not in Visual mode)
			cursor_words    Number of words before cursor position
					(not in Visual mode)
			visual_bytes    Number of bytes visually selected
					(only in Visual mode)
			visual_chars    Number of chars visually selected
					(only in Visual mode)
			visual_words    Number of words visually selected
					(only in Visual mode)


							*writefile()*
writefile({list}, {fname} [, {flags}])
		Write |List| {list} to file {fname}.  Each list item is
		separated with a NL.  Each list item must be a String or
		Number.
		When {flags} contains "b" then binary mode is used: There will
		not be a NL after the last list item.  An empty item at the
		end does cause the last line in the file to end in a NL.

		When {flags} contains "a" then append mode is used, lines are
		appended to the file: >
			:call writefile(["foo"], "event.log", "a")
			:call writefile(["bar"], "event.log", "a")
<
		When {flags} contains "s" then fsync() is called after writing
		the file.  This flushes the file to disk, if possible.  This
		takes more time but avoids losing the file if the system
		crashes.
		When {flags} does not contain "S" or "s" then fsync() is
		called if the 'fsync' option is set.
		When {flags} contains "S" then fsync() is not called, even
		when 'fsync' is set.

		All NL characters are replaced with a NUL character.
		Inserting CR characters needs to be done before passing {list}
		to writefile().
		An existing file is overwritten, if possible.
		When the write fails -1 is returned, otherwise 0.  There is an
		error message if the file can't be created or when writing
		fails.
		Also see |readfile()|.
		To copy a file byte for byte: >
			:let fl = readfile("foo", "b")
			:call writefile(fl, "foocopy", "b")


xor({expr}, {expr})					*xor()*
		Bitwise XOR on the two arguments.  The arguments are converted
		to a number.  A List, Dict or Float argument causes an error.
		Example: >
			:let bits = xor(bits, 0x80)
<


							*feature-list*
There are four types of features:
1.  Features that are only supported when they have been enabled when Vim
    was compiled |+feature-list|.  Example: >
	:if has("cindent")
2.  Features that are only supported when certain conditions have been met.
    Example: >
	:if has("gui_running")
<							*has-patch*
3.  Included patches.  The "patch123" feature means that patch 123 has been
    included.  Note that this form does not check the version of Vim, you need
    to inspect |v:version| for that.
    Example (checking version 6.2.148 or later): >
	:if v:version > 602 || v:version == 602 && has("patch148")
<    Note that it's possible for patch 147 to be omitted even though 148 is
    included.

4.  Beyond a certain version or at a certain version and including a specific
    patch.  The "patch-7.4.237" feature means that the Vim version is 7.5 or
    later, or it is version 7.4 and patch 237 was included.
    Note that this only works for patch 7.4.237 and later, before that you
    need to use the example above that checks v:version.  Example: >
	:if has("patch-7.4.248")
<    Note that it's possible for patch 147 to be omitted even though 148 is
    included.

Hint: To find out if Vim supports backslashes in a file name (MS-Windows),
use: `if exists('+shellslash')`


acl			Compiled with |ACL| support.
all_builtin_terms	Compiled with all builtin terminals enabled.
amiga			Amiga version of Vim.
arabic			Compiled with Arabic support |Arabic|.
arp			Compiled with ARP support (Amiga).
autocmd			Compiled with autocommand support. |autocommand|
autoservername		Automatically enable |clientserver|
balloon_eval		Compiled with |balloon-eval| support.
balloon_multiline	GUI supports multiline balloons.
beos			BeOS version of Vim.
browse			Compiled with |:browse| support, and browse() will
			work.
browsefilter		Compiled with support for |browsefilter|.
builtin_terms		Compiled with some builtin terminals.
byte_offset		Compiled with support for 'o' in 'statusline'
cindent			Compiled with 'cindent' support.
clientserver		Compiled with remote invocation support |clientserver|.
clipboard		Compiled with 'clipboard' support.
cmdline_compl		Compiled with |cmdline-completion| support.
cmdline_hist		Compiled with |cmdline-history| support.
cmdline_info		Compiled with 'showcmd' and 'ruler' support.
comments		Compiled with |'comments'| support.
compatible		Compiled to be very Vi compatible.
cryptv			Compiled with encryption support |encryption|.
cscope			Compiled with |cscope| support.
debug			Compiled with "DEBUG" defined.
dialog_con		Compiled with console dialog support.
dialog_gui		Compiled with GUI dialog support.
diff			Compiled with |vimdiff| and 'diff' support.
digraphs		Compiled with support for digraphs.
directx			Compiled with support for DirectX and 'renderoptions'.
dnd			Compiled with support for the "~ register |quote_~|.
ebcdic			Compiled on a machine with ebcdic character set.
emacs_tags		Compiled with support for Emacs tags.
eval			Compiled with expression evaluation support.  Always
			true, of course!
ex_extra		|+ex_extra|, always true now
extra_search		Compiled with support for |'incsearch'| and
			|'hlsearch'|
farsi			Compiled with Farsi support |farsi|.
file_in_path		Compiled with support for |gf| and |<cfile>|
filterpipe		When 'shelltemp' is off pipes are used for shell
			read/write/filter commands
find_in_path		Compiled with support for include file searches
			|+find_in_path|.
float			Compiled with support for |Float|.
fname_case		Case in file names matters (for Amiga, MS-DOS, and
			Windows this is not present).
folding			Compiled with |folding| support.
footer			Compiled with GUI footer support. |gui-footer|
fork			Compiled to use fork()/exec() instead of system().
gettext			Compiled with message translation |multi-lang|
gui			Compiled with GUI enabled.
gui_athena		Compiled with Athena GUI.
gui_gnome		Compiled with Gnome support (gui_gtk is also defined).
gui_gtk			Compiled with GTK+ GUI (any version).
gui_gtk2		Compiled with GTK+ 2 GUI (gui_gtk is also defined).
gui_gtk3		Compiled with GTK+ 3 GUI (gui_gtk is also defined).
gui_mac			Compiled with Macintosh GUI.
gui_motif		Compiled with Motif GUI.
gui_photon		Compiled with Photon GUI.
gui_running		Vim is running in the GUI, or it will start soon.
gui_win32		Compiled with MS Windows Win32 GUI.
gui_win32s		idem, and Win32s system being used (Windows 3.1)
hangul_input		Compiled with Hangul input support. |hangul|
iconv			Can use iconv() for conversion.
insert_expand		Compiled with support for CTRL-X expansion commands in
			Insert mode.
jumplist		Compiled with |jumplist| support.
keymap			Compiled with 'keymap' support.
lambda			Compiled with |lambda| support.
langmap			Compiled with 'langmap' support.
libcall			Compiled with |libcall()| support.
linebreak		Compiled with 'linebreak', 'breakat', 'showbreak' and
			'breakindent' support.
lispindent		Compiled with support for lisp indenting.
listcmds		Compiled with commands for the buffer list |:files|
			and the argument list |arglist|.
localmap		Compiled with local mappings and abbr. |:map-local|
lua			Compiled with Lua interface |Lua|.
mac			Any Macintosh version of Vim  cf. osx
macunix			Synonym for osxdarwin
menu			Compiled with support for |:menu|.
mksession		Compiled with support for |:mksession|.
modify_fname		Compiled with file name modifiers. |filename-modifiers|
mouse			Compiled with support mouse.
mouse_dec		Compiled with support for Dec terminal mouse.
mouse_gpm		Compiled with support for gpm (Linux console mouse)
mouse_netterm		Compiled with support for netterm mouse.
mouse_pterm		Compiled with support for qnx pterm mouse.
mouse_sysmouse		Compiled with support for sysmouse (*BSD console mouse)
mouse_sgr		Compiled with support for sgr mouse.
mouse_urxvt		Compiled with support for urxvt mouse.
mouse_xterm		Compiled with support for xterm mouse.
mouseshape		Compiled with support for 'mouseshape'.
multi_byte		Compiled with support for 'encoding'
multi_byte_encoding	'encoding' is set to a multi-byte encoding.
multi_byte_ime		Compiled with support for IME input method.
multi_lang		Compiled with support for multiple languages.
mzscheme		Compiled with MzScheme interface |mzscheme|.
netbeans_enabled	Compiled with support for |netbeans| and connected.
netbeans_intg		Compiled with support for |netbeans|.
num64			Compiled with 64-bit |Number| support.
ole			Compiled with OLE automation support for Win32.
osx			Compiled for macOS  cf. mac
osxdarwin		Compiled for macOS, with |mac-darwin-feature|
packages		Compiled with |packages| support.
path_extra		Compiled with up/downwards search in 'path' and 'tags'
perl			Compiled with Perl interface.
persistent_undo		Compiled with support for persistent undo history.
postscript		Compiled with PostScript file printing.
printer			Compiled with |:hardcopy| support.
profile			Compiled with |:profile| support.
python			Python 2.x interface available. |has-python|
python_compiled		Compiled with Python 2.x interface. |has-python|
python_dynamic		Python 2.x interface is dynamically loaded. |has-python|
python3			Python 3.x interface available. |has-python|
python3_compiled	Compiled with Python 3.x interface. |has-python|
python3_dynamic		Python 3.x interface is dynamically loaded. |has-python|
pythonx			Compiled with |python_x| interface. |has-pythonx|
qnx			QNX version of Vim.
quickfix		Compiled with |quickfix| support.
reltime			Compiled with |reltime()| support.
rightleft		Compiled with 'rightleft' support.
ruby			Compiled with Ruby interface |ruby|.
scrollbind		Compiled with 'scrollbind' support.
showcmd			Compiled with 'showcmd' support.
signs			Compiled with |:sign| support.
smartindent		Compiled with 'smartindent' support.
spell			Compiled with spell checking support |spell|.
startuptime		Compiled with |--startuptime| support.
statusline		Compiled with support for 'statusline', 'rulerformat'
			and special formats of 'titlestring' and 'iconstring'.
sun_workshop		Compiled with support for Sun |workshop|.
syntax			Compiled with syntax highlighting support |syntax|.
syntax_items		There are active syntax highlighting items for the
			current buffer.
system			Compiled to use system() instead of fork()/exec().
tag_binary		Compiled with binary searching in tags files
			|tag-binary-search|.
tag_old_static		Compiled with support for old static tags
			|tag-old-static|.
tag_any_white		Compiled with support for any white characters in tags
			files |tag-any-white|.
tcl			Compiled with Tcl interface.
termguicolors		Compiled with true color in terminal support.
terminal		Compiled with |terminal| support.
terminfo		Compiled with terminfo instead of termcap.
termresponse		Compiled with support for |t_RV| and |v:termresponse|.
textobjects		Compiled with support for |text-objects|.
tgetent			Compiled with tgetent support, able to use a termcap
			or terminfo file.
timers			Compiled with |timer_start()| support.
title			Compiled with window title support |'title'|.
toolbar			Compiled with support for |gui-toolbar|.
ttyin			input is a terminal (tty)
ttyout			output is a terminal (tty)
unix			Unix version of Vim. *+unix*
unnamedplus		Compiled with support for "unnamedplus" in 'clipboard'
user_commands		User-defined commands.
vcon			Win32: Virtual console support is working, can use
			'termguicolors'. Also see |+vtp|.
vertsplit		Compiled with vertically split windows |:vsplit|.
vim_starting		True while initial source'ing takes place. |startup|
			*vim_starting*
viminfo			Compiled with viminfo support.
virtualedit		Compiled with 'virtualedit' option.
visual			Compiled with Visual mode.
visualextra		Compiled with extra Visual mode commands.
			|blockwise-operators|.
vms			VMS version of Vim.
vreplace		Compiled with |gR| and |gr| commands.
vtp			Compiled for vcon support |+vtp| (check vcon to find
			out if it works in the current console).
wildignore		Compiled with 'wildignore' option.
wildmenu		Compiled with 'wildmenu' option.
win32			Win32 version of Vim (MS-Windows 95 and later, 32 or
			64 bits)
win32unix		Win32 version of Vim, using Unix files (Cygwin)
win64			Win64 version of Vim (MS-Windows 64 bit).
win95			Win32 version for MS-Windows 95/98/ME.
winaltkeys		Compiled with 'winaltkeys' option.
windows			Compiled with support for more than one window.
writebackup		Compiled with 'writebackup' default on.
xfontset		Compiled with X fontset support |xfontset|.
xim			Compiled with X input method support |xim|.
xpm			Compiled with pixmap support.
xpm_w32			Compiled with pixmap support for Win32. (Only for
			backward compatibility. Use "xpm" instead.)
xsmp			Compiled with X session management support.
xsmp_interact		Compiled with interactive X session management support.
xterm_clipboard		Compiled with support for xterm clipboard.
xterm_save		Compiled with support for saving and restoring the
			xterm screen.
x11			Compiled with X11 support.

							*string-match*
Matching a pattern in a String

A regexp pattern as explained at |pattern| is normally used to find a match in
the buffer lines.  When a pattern is used to find a match in a String, almost
everything works in the same way.  The difference is that a String is handled
like it is one line.  When it contains a "\n" character, this is not seen as a
line break for the pattern.  It can be matched with a "\n" in the pattern, or
with ".".  Example: >
	:let a = "aaaa\nxxxx"
	:echo matchstr(a, "..\n..")
	aa
	xx
	:echo matchstr(a, "a.x")
	a
	x

Don't forget that "^" will only match at the first character of the String and
"$" at the last character of the string.  They don't match after or before a
"\n".

==============================================================================
5. Defining functions					*user-functions*

New functions can be defined.  These can be called just like builtin
functions.  The function executes a sequence of Ex commands.  Normal mode
commands can be executed with the |:normal| command.

The function name must start with an uppercase letter, to avoid confusion with
builtin functions.  To prevent from using the same name in different scripts
avoid obvious, short names.  A good habit is to start the function name with
the name of the script, e.g., "HTMLcolor()".

It's also possible to use curly braces, see |curly-braces-names|.  And the
|autoload| facility is useful to define a function only when it's called.

							*local-function*
A function local to a script must start with "s:".  A local script function
can only be called from within the script and from functions, user commands
and autocommands defined in the script.  It is also possible to call the
function from a mapping defined in the script, but then |<SID>| must be used
instead of "s:" when the mapping is expanded outside of the script.
There are only script-local functions, no buffer-local or window-local
functions.

					*:fu* *:function* *E128* *E129* *E123*
:fu[nction]		List all functions and their arguments.

:fu[nction] {name}	List function {name}.
			{name} can also be a |Dictionary| entry that is a
			|Funcref|: >
				:function dict.init

:fu[nction] /{pattern}	List functions with a name matching {pattern}.
			Example that lists all functions ending with "File": >
				:function /File$
<
							*:function-verbose*
When 'verbose' is non-zero, listing a function will also display where it was
last defined. Example: >

    :verbose function SetFileTypeSH
	function SetFileTypeSH(name)
	    Last set from /usr/share/vim/vim-7.0/filetype.vim
<
See |:verbose-cmd| for more information.

						*E124* *E125* *E853* *E884*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
			Define a new function by the name {name}.  The body of
			the function follows in the next lines, until the
			matching |:endfunction|.

			The name must be made of alphanumeric characters and
			'_', and must start with a capital or "s:" (see
			above).  Note that using "b:" or "g:" is not allowed.
			(since patch 7.4.260 E884 is given if the function
			name has a colon in the name, e.g. for "foo:bar()".
			Before that patch no error was given).

			{name} can also be a |Dictionary| entry that is a
			|Funcref|: >
				:function dict.init(arg)
<			"dict" must be an existing dictionary.  The entry
			"init" is added if it didn't exist yet.  Otherwise [!]
			is required to overwrite an existing function.  The
			result is a |Funcref| to a numbered function.  The
			function can only be used with a |Funcref| and will be
			deleted if there are no more references to it.
								*E127* *E122*
			When a function by this name already exists and [!] is
			not used an error message is given.  When [!] is used,
			an existing function is silently replaced.  Unless it
			is currently being executed, that is an error.
			NOTE: Use ! wisely.  If used without care it can cause
			an existing function to be replaced unexpectedly,
			which is hard to debug.

			For the {arguments} see |function-argument|.

					*:func-range* *a:firstline* *a:lastline*
			When the [range] argument is added, the function is
			expected to take care of a range itself.  The range is
			passed as "a:firstline" and "a:lastline".  If [range]
			is excluded, ":{range}call" will call the function for
			each line in the range, with the cursor on the start
			of each line.  See |function-range-example|.
			The cursor is still moved to the first line of the
			range, as is the case with all Ex commands.
								*:func-abort*
			When the [abort] argument is added, the function will
			abort as soon as an error is detected.
								*:func-dict*
			When the [dict] argument is added, the function must
			be invoked through an entry in a |Dictionary|.  The
			local variable "self" will then be set to the
			dictionary.  See |Dictionary-function|.
						*:func-closure* *E932*
			When the [closure] argument is added, the function
			can access variables and arguments from the outer
			scope.  This is usually called a closure.  In this
			example Bar() uses "x" from the scope of Foo().  It
			remains referenced even after Foo() returns: >
				:function! Foo()
				:  let x = 0
				:  function! Bar() closure
				:    let x += 1
				:    return x
				:  endfunction
				:  return funcref('Bar')
				:endfunction

				:let F = Foo()
				:echo F()
<				1 >
				:echo F()
<				2 >
				:echo F()
<				3

						*function-search-undo*
			The last used search pattern and the redo command "."
			will not be changed by the function.  This also
			implies that the effect of |:nohlsearch| is undone
			when the function returns.

				*:endf* *:endfunction* *E126* *E193* *W22*
:endf[unction] [argument]
			The end of a function definition.  Best is to put it
			on a line by its own, without [argument].

			[argument] can be:
				| command	command to execute next
				\n command	command to execute next
				" comment	always ignored
				anything else	ignored, warning given when
						'verbose' is non-zero
			The support for a following command was added in Vim
			8.0.0654, before that any argument was silently
			ignored.

			To be able to define a function inside an `:execute`
			command, use line breaks instead of |:bar|: >
				:exe "func Foo()\necho 'foo'\nendfunc"
<
				*:delf* *:delfunction* *E130* *E131* *E933*
:delf[unction][!] {name}
			Delete function {name}.
			{name} can also be a |Dictionary| entry that is a
			|Funcref|: >
				:delfunc dict.init
<			This will remove the "init" entry from "dict".  The
			function is deleted if there are no more references to
			it.
			With the ! there is no error if the function does not
			exist.
							*:retu* *:return* *E133*
:retu[rn] [expr]	Return from a function.  When "[expr]" is given, it is
			evaluated and returned as the result of the function.
			If "[expr]" is not given, the number 0 is returned.
			When a function ends without an explicit ":return",
			the number 0 is returned.
			Note that there is no check for unreachable lines,
			thus there is no warning if commands follow ":return".

			If the ":return" is used after a |:try| but before the
			matching |:finally| (if present), the commands
			following the ":finally" up to the matching |:endtry|
			are executed first.  This process applies to all
			nested ":try"s inside the function.  The function
			returns at the outermost ":endtry".

						*function-argument* *a:var*
An argument can be defined by giving its name.  In the function this can then
be used as "a:name" ("a:" for argument).
					*a:0* *a:1* *a:000* *E740* *...*
Up to 20 arguments can be given, separated by commas.  After the named
arguments an argument "..." can be specified, which means that more arguments
may optionally be following.  In the function the extra arguments can be used
as "a:1", "a:2", etc.  "a:0" is set to the number of extra arguments (which
can be 0).  "a:000" is set to a |List| that contains these arguments.  Note
that "a:1" is the same as "a:000[0]".
								*E742*
The a: scope and the variables in it cannot be changed, they are fixed.
However, if a composite type is used, such as |List| or |Dictionary| , you can
change their contents.  Thus you can pass a |List| to a function and have the
function add an item to it.  If you want to make sure the function cannot
change a |List| or |Dictionary| use |:lockvar|.

When not using "...", the number of arguments in a function call must be equal
to the number of named arguments.  When using "...", the number of arguments
may be larger.

It is also possible to define a function without any arguments.  You must
still supply the () then.

It is allowed to define another function inside a function body.

							*local-variables*
Inside a function local variables can be used.  These will disappear when the
function returns.  Global variables need to be accessed with "g:".

Example: >
  :function Table(title, ...)
  :  echohl Title
  :  echo a:title
  :  echohl None
  :  echo a:0 . " items:"
  :  for s in a:000
  :    echon ' ' . s
  :  endfor
  :endfunction

This function can then be called with: >
  call Table("Table", "line1", "line2")
  call Table("Empty Table")

To return more than one value, return a |List|: >
  :function Compute(n1, n2)
  :  if a:n2 == 0
  :    return ["fail", 0]
  :  endif
  :  return ["ok", a:n1 / a:n2]
  :endfunction

This function can then be called with: >
  :let [success, div] = Compute(102, 6)
  :if success == "ok"
  :  echo div
  :endif
<
						*:cal* *:call* *E107* *E117*
:[range]cal[l] {name}([arguments])
		Call a function.  The name of the function and its arguments
		are as specified with |:function|.  Up to 20 arguments can be
		used.  The returned value is discarded.
		Without a range and for functions that accept a range, the
		function is called once.  When a range is given the cursor is
		positioned at the start of the first line before executing the
		function.
		When a range is given and the function doesn't handle it
		itself, the function is executed for each line in the range,
		with the cursor in the first column of that line.  The cursor
		is left at the last line (possibly moved by the last function
		call).  The arguments are re-evaluated for each line.  Thus
		this works:
						*function-range-example*  >
	:function Mynumber(arg)
	:  echo line(".") . " " . a:arg
	:endfunction
	:1,5call Mynumber(getline("."))
<
		The "a:firstline" and "a:lastline" are defined anyway, they
		can be used to do something different at the start or end of
		the range.

		Example of a function that handles the range itself: >

	:function Cont() range
	:  execute (a:firstline + 1) . "," . a:lastline . 's/^/\t\\ '
	:endfunction
	:4,8call Cont()
<
		This function inserts the continuation character "\" in front
		of all the lines in the range, except the first one.

		When the function returns a composite value it can be further
		dereferenced, but the range will not be used then.  Example: >
	:4,8call GetDict().method()
<		Here GetDict() gets the range but method() does not.

								*E132*
The recursiveness of user functions is restricted with the |'maxfuncdepth'|
option.


AUTOMATICALLY LOADING FUNCTIONS ~
							*autoload-functions*
When using many or large functions, it's possible to automatically define them
only when they are used.  There are two methods: with an autocommand and with
the "autoload" directory in 'runtimepath'.


Using an autocommand ~

This is introduced in the user manual, section |41.14|.

The autocommand is useful if you have a plugin that is a long Vim script file.
You can define the autocommand and quickly quit the script with |:finish|.
That makes Vim startup faster.  The autocommand should then load the same file
again, setting a variable to skip the |:finish| command.

Use the FuncUndefined autocommand event with a pattern that matches the
function(s) to be defined.  Example: >

	:au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim

The file "~/vim/bufnetfuncs.vim" should then define functions that start with
"BufNet".  Also see |FuncUndefined|.


Using an autoload script ~
							*autoload* *E746*
This is introduced in the user manual, section |41.15|.

Using a script in the "autoload" directory is simpler, but requires using
exactly the right file name.  A function that can be autoloaded has a name
like this: >

	:call filename#funcname()

When such a function is called, and it is not defined yet, Vim will search the
"autoload" directories in 'runtimepath' for a script file called
"filename.vim".  For example "~/.vim/autoload/filename.vim".  That file should
then define the function like this: >

	function filename#funcname()
	   echo "Done!"
	endfunction

The file name and the name used before the # in the function must match
exactly, and the defined function must have the name exactly as it will be
called.

It is possible to use subdirectories.  Every # in the function name works like
a path separator.  Thus when calling a function: >

	:call foo#bar#func()

Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.

This also works when reading a variable that has not been set yet: >

	:let l = foo#bar#lvar

However, when the autoload script was already loaded it won't be loaded again
for an unknown variable.

When assigning a value to such a variable nothing special happens.  This can
be used to pass settings to the autoload script before it's loaded: >

	:let foo#bar#toggle = 1
	:call foo#bar#func()

Note that when you make a mistake and call a function that is supposed to be
defined in an autoload script, but the script doesn't actually define the
function, the script will be sourced every time you try to call the function.
And you will get an error message every time.

Also note that if you have two script files, and one calls a function in the
other and vice versa, before the used function is defined, it won't work.
Avoid using the autoload functionality at the toplevel.

Hint: If you distribute a bunch of scripts you can pack them together with the
|vimball| utility.  Also read the user manual |distribute-script|.

==============================================================================
6. Curly braces names					*curly-braces-names*

In most places where you can use a variable, you can use a "curly braces name"
variable.  This is a regular variable name with one or more expressions
wrapped in braces {} like this: >
	my_{adjective}_variable

When Vim encounters this, it evaluates the expression inside the braces, puts
that in place of the expression, and re-interprets the whole as a variable
name.  So in the above example, if the variable "adjective" was set to
"noisy", then the reference would be to "my_noisy_variable", whereas if
"adjective" was set to "quiet", then it would be to "my_quiet_variable".

One application for this is to create a set of variables governed by an option
value.  For example, the statement >
	echo my_{&background}_message

would output the contents of "my_dark_message" or "my_light_message" depending
on the current value of 'background'.

You can use multiple brace pairs: >
	echo my_{adverb}_{adjective}_message
..or even nest them: >
	echo my_{ad{end_of_word}}_message
where "end_of_word" is either "verb" or "jective".

However, the expression inside the braces must evaluate to a valid single
variable name, e.g. this is invalid: >
	:let foo='a + b'
	:echo c{foo}d
.. since the result of expansion is "ca + bd", which is not a variable name.

						*curly-braces-function-names*
You can call and define functions by an evaluated name in a similar way.
Example: >
	:let func_end='whizz'
	:call my_func_{func_end}(parameter)

This would call the function "my_func_whizz(parameter)".

This does NOT work: >
  :let i = 3
  :let @{i} = ''  " error
  :echo @{i}      " error

==============================================================================
7. Commands						*expression-commands*

:let {var-name} = {expr1}				*:let* *E18*
			Set internal variable {var-name} to the result of the
			expression {expr1}.  The variable will get the type
			from the {expr}.  If {var-name} didn't exist yet, it
			is created.

:let {var-name}[{idx}] = {expr1}			*E689*
			Set a list item to the result of the expression
			{expr1}.  {var-name} must refer to a list and {idx}
			must be a valid index in that list.  For nested list
			the index can be repeated.
			This cannot be used to add an item to a |List|.
			This cannot be used to set a byte in a String.  You
			can do that like this: >
				:let var = var[0:2] . 'X' . var[4:]
<
							*E711* *E719*
:let {var-name}[{idx1}:{idx2}] = {expr1}		*E708* *E709* *E710*
			Set a sequence of items in a |List| to the result of
			the expression {expr1}, which must be a list with the
			correct number of items.
			{idx1} can be omitted, zero is used instead.
			{idx2} can be omitted, meaning the end of the list.
			When the selected range of items is partly past the
			end of the list, items will be added.

					*:let+=* *:let-=* *:let.=* *E734*
:let {var} += {expr1}	Like ":let {var} = {var} + {expr1}".
:let {var} -= {expr1}	Like ":let {var} = {var} - {expr1}".
:let {var} .= {expr1}	Like ":let {var} = {var} . {expr1}".
			These fail if {var} was not set yet and when the type
			of {var} and {expr1} don't fit the operator.


:let ${env-name} = {expr1}			*:let-environment* *:let-$*
			Set environment variable {env-name} to the result of
			the expression {expr1}.  The type is always String.
:let ${env-name} .= {expr1}
			Append {expr1} to the environment variable {env-name}.
			If the environment variable didn't exist yet this
			works like "=".

:let @{reg-name} = {expr1}			*:let-register* *:let-@*
			Write the result of the expression {expr1} in register
			{reg-name}.  {reg-name} must be a single letter, and
			must be the name of a writable register (see
			|registers|).  "@@" can be used for the unnamed
			register, "@/" for the search pattern.
			If the result of {expr1} ends in a <CR> or <NL>, the
			register will be linewise, otherwise it will be set to
			characterwise.
			This can be used to clear the last search pattern: >
				:let @/ = ""
<			This is different from searching for an empty string,
			that would match everywhere.

:let @{reg-name} .= {expr1}
			Append {expr1} to register {reg-name}.  If the
			register was empty it's like setting it to {expr1}.

:let &{option-name} = {expr1}			*:let-option* *:let-&*
			Set option {option-name} to the result of the
			expression {expr1}.  A String or Number value is
			always converted to the type of the option.
			For an option local to a window or buffer the effect
			is just like using the |:set| command: both the local
			value and the global value are changed.
			Example: >
				:let &path = &path . ',/usr/local/include'
<			This also works for terminal codes in the form t_xx.
			But only for alphanumerical names.  Example: >
				:let &t_k1 = "\<Esc>[234;"
<			When the code does not exist yet it will be created as
			a terminal key code, there is no error.

:let &{option-name} .= {expr1}
			For a string option: Append {expr1} to the value.
			Does not insert a comma like |:set+=|.

:let &{option-name} += {expr1}
:let &{option-name} -= {expr1}
			For a number or boolean option: Add or subtract
			{expr1}.

:let &l:{option-name} = {expr1}
:let &l:{option-name} .= {expr1}
:let &l:{option-name} += {expr1}
:let &l:{option-name} -= {expr1}
			Like above, but only set the local value of an option
			(if there is one).  Works like |:setlocal|.

:let &g:{option-name} = {expr1}
:let &g:{option-name} .= {expr1}
:let &g:{option-name} += {expr1}
:let &g:{option-name} -= {expr1}
			Like above, but only set the global value of an option
			(if there is one).  Works like |:setglobal|.

:let [{name1}, {name2}, ...] = {expr1}		*:let-unpack* *E687* *E688*
			{expr1} must evaluate to a |List|.  The first item in
			the list is assigned to {name1}, the second item to
			{name2}, etc.
			The number of names must match the number of items in
			the |List|.
			Each name can be one of the items of the ":let"
			command as mentioned above.
			Example: >
				:let [s, item] = GetItem(s)
<			Detail: {expr1} is evaluated first, then the
			assignments are done in sequence.  This matters if
			{name2} depends on {name1}.  Example: >
				:let x = [0, 1]
				:let i = 0
				:let [i, x[i]] = [1, 2]
				:echo x
<			The result is [0, 2].

:let [{name1}, {name2}, ...] .= {expr1}
:let [{name1}, {name2}, ...] += {expr1}
:let [{name1}, {name2}, ...] -= {expr1}
			Like above, but append/add/subtract the value for each
			|List| item.

:let [{name}, ..., ; {lastname}] = {expr1}
			Like |:let-unpack| above, but the |List| may have more
			items than there are names.  A list of the remaining
			items is assigned to {lastname}.  If there are no
			remaining items {lastname} is set to an empty list.
			Example: >
				:let [a, b; rest] = ["aval", "bval", 3, 4]
<
:let [{name}, ..., ; {lastname}] .= {expr1}
:let [{name}, ..., ; {lastname}] += {expr1}
:let [{name}, ..., ; {lastname}] -= {expr1}
			Like above, but append/add/subtract the value for each
			|List| item.

								*E121*
:let {var-name}	..	List the value of variable {var-name}.  Multiple
			variable names may be given.  Special names recognized
			here:				*E738*
			  g:	global variables
			  b:	local buffer variables
			  w:	local window variables
			  t:	local tab page variables
			  s:	script-local variables
			  l:	local function variables
			  v:	Vim variables.

:let			List the values of all variables.  The type of the
			variable is indicated before the value:
			    <nothing>	String
				#	Number
				*	Funcref


:unl[et][!] {name} ...				*:unlet* *:unl* *E108* *E795*
			Remove the internal variable {name}.  Several variable
			names can be given, they are all removed.  The name
			may also be a |List| or |Dictionary| item.
			With [!] no error message is given for non-existing
			variables.
			One or more items from a |List| can be removed: >
				:unlet list[3]	  " remove fourth item
				:unlet list[3:]   " remove fourth item to last
<			One item from a |Dictionary| can be removed at a time: >
				:unlet dict['two']
				:unlet dict.two
<			This is especially useful to clean up used global
			variables and script-local variables (these are not
			deleted when the script ends).  Function-local
			variables are automatically deleted when the function
			ends.

:lockv[ar][!] [depth] {name} ...			*:lockvar* *:lockv*
			Lock the internal variable {name}.  Locking means that
			it can no longer be changed (until it is unlocked).
			A locked variable can be deleted: >
				:lockvar v
				:let v = 'asdf'		" fails!
				:unlet v
<							*E741* *E940*
			If you try to change a locked variable you get an
			error message: "E741: Value is locked: {name}".
			If you try to lock or unlock a built-in variable you
			get an error message: "E940: Cannot lock or unlock
			variable {name}".

			[depth] is relevant when locking a |List| or
			|Dictionary|.  It specifies how deep the locking goes:
				1	Lock the |List| or |Dictionary| itself,
					cannot add or remove items, but can
					still change their values.
				2	Also lock the values, cannot change
					the items.  If an item is a |List| or
					|Dictionary|, cannot add or remove
					items, but can still change the
					values.
				3	Like 2 but for the |List| /
					|Dictionary| in the |List| /
					|Dictionary|, one level deeper.
			The default [depth] is 2, thus when {name} is a |List|
			or |Dictionary| the values cannot be changed.
								*E743*
			For unlimited depth use [!] and omit [depth].
			However, there is a maximum depth of 100 to catch
			loops.

			Note that when two variables refer to the same |List|
			and you lock one of them, the |List| will also be
			locked when used through the other variable.
			Example: >
				:let l = [0, 1, 2, 3]
				:let cl = l
				:lockvar l
				:let cl[1] = 99		" won't work!
<			You may want to make a copy of a list to avoid this.
			See |deepcopy()|.


:unlo[ckvar][!] [depth] {name} ...			*:unlockvar* *:unlo*
			Unlock the internal variable {name}.  Does the
			opposite of |:lockvar|.


:if {expr1}			*:if* *:endif* *:en* *E171* *E579* *E580*
:en[dif]		Execute the commands until the next matching ":else"
			or ":endif" if {expr1} evaluates to non-zero.

			From Vim version 4.5 until 5.0, every Ex command in
			between the ":if" and ":endif" is ignored.  These two
			commands were just to allow for future expansions in a
			backward compatible way.  Nesting was allowed.  Note
			that any ":else" or ":elseif" was ignored, the "else"
			part was not executed either.

			You can use this to remain compatible with older
			versions: >
				:if version >= 500
				:  version-5-specific-commands
				:endif
<			The commands still need to be parsed to find the
			"endif".  Sometimes an older Vim has a problem with a
			new command.  For example, ":silent" is recognized as
			a ":substitute" command.  In that case ":execute" can
			avoid problems: >
				:if version >= 600
				:  execute "silent 1,$delete"
				:endif
<
			NOTE: The ":append" and ":insert" commands don't work
			properly in between ":if" and ":endif".

						*:else* *:el* *E581* *E583*
:el[se]			Execute the commands until the next matching ":else"
			or ":endif" if they previously were not being
			executed.

					*:elseif* *:elsei* *E582* *E584*
:elsei[f] {expr1}	Short for ":else" ":if", with the addition that there
			is no extra ":endif".

:wh[ile] {expr1}			*:while* *:endwhile* *:wh* *:endw*
						*E170* *E585* *E588* *E733*
:endw[hile]		Repeat the commands between ":while" and ":endwhile",
			as long as {expr1} evaluates to non-zero.
			When an error is detected from a command inside the
			loop, execution continues after the "endwhile".
			Example: >
				:let lnum = 1
				:while lnum <= line("$")
				   :call FixLine(lnum)
				   :let lnum = lnum + 1
				:endwhile
<
			NOTE: The ":append" and ":insert" commands don't work
			properly inside a ":while" and ":for" loop.

:for {var} in {list}					*:for* *E690* *E732*
:endfo[r]						*:endfo* *:endfor*
			Repeat the commands between ":for" and ":endfor" for
			each item in {list}.  Variable {var} is set to the
			value of each item.
			When an error is detected for a command inside the
			loop, execution continues after the "endfor".
			Changing {list} inside the loop affects what items are
			used.  Make a copy if this is unwanted: >
				:for item in copy(mylist)
<			When not making a copy, Vim stores a reference to the
			next item in the list, before executing the commands
			with the current item.  Thus the current item can be
			removed without effect.  Removing any later item means
			it will not be found.  Thus the following example
			works (an inefficient way to make a list empty): >
				for item in mylist
				   call remove(mylist, 0)
				endfor
<			Note that reordering the list (e.g., with sort() or
			reverse()) may have unexpected effects.

:for [{var1}, {var2}, ...] in {listlist}
:endfo[r]
			Like ":for" above, but each item in {listlist} must be
			a list, of which each item is assigned to {var1},
			{var2}, etc.  Example: >
				:for [lnum, col] in [[1, 3], [2, 5], [3, 8]]
				   :echo getline(lnum)[col]
				:endfor
<
						*:continue* *:con* *E586*
:con[tinue]		When used inside a ":while" or ":for" loop, jumps back
			to the start of the loop.
			If it is used after a |:try| inside the loop but
			before the matching |:finally| (if present), the
			commands following the ":finally" up to the matching
			|:endtry| are executed first.  This process applies to
			all nested ":try"s inside the loop.  The outermost
			":endtry" then jumps back to the start of the loop.

						*:break* *:brea* *E587*
:brea[k]		When used inside a ":while" or ":for" loop, skips to
			the command after the matching ":endwhile" or
			":endfor".
			If it is used after a |:try| inside the loop but
			before the matching |:finally| (if present), the
			commands following the ":finally" up to the matching
			|:endtry| are executed first.  This process applies to
			all nested ":try"s inside the loop.  The outermost
			":endtry" then jumps to the command after the loop.

:try				*:try* *:endt* *:endtry* *E600* *E601* *E602*
:endt[ry]		Change the error handling for the commands between
			":try" and ":endtry" including everything being
			executed across ":source" commands, function calls,
			or autocommand invocations.

			When an error or interrupt is detected and there is
			a |:finally| command following, execution continues
			after the ":finally".  Otherwise, or when the
			":endtry" is reached thereafter, the next
			(dynamically) surrounding ":try" is checked for
			a corresponding ":finally" etc.  Then the script
			processing is terminated.  (Whether a function
			definition has an "abort" argument does not matter.)
			Example: >
		:try | edit too much | finally | echo "cleanup" | endtry
		:echo "impossible"	" not reached, script terminated above
<
			Moreover, an error or interrupt (dynamically) inside
			":try" and ":endtry" is converted to an exception.  It
			can be caught as if it were thrown by a |:throw|
			command (see |:catch|).  In this case, the script
			processing is not terminated.

			The value "Vim:Interrupt" is used for an interrupt
			exception.  An error in a Vim command is converted
			to a value of the form "Vim({command}):{errmsg}",
			other errors are converted to a value of the form
			"Vim:{errmsg}".  {command} is the full command name,
			and {errmsg} is the message that is displayed if the
			error exception is not caught, always beginning with
			the error number.
			Examples: >
		:try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
		:try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
<
					*:cat* *:catch* *E603* *E604* *E605*
:cat[ch] /{pattern}/	The following commands until the next |:catch|,
			|:finally|, or |:endtry| that belongs to the same
			|:try| as the ":catch" are executed when an exception
			matching {pattern} is being thrown and has not yet
			been caught by a previous ":catch".  Otherwise, these
			commands are skipped.
			When {pattern} is omitted all errors are caught.
			Examples: >
		:catch /^Vim:Interrupt$/	" catch interrupts (CTRL-C)
		:catch /^Vim\%((\a\+)\)\=:E/	" catch all Vim errors
		:catch /^Vim\%((\a\+)\)\=:/	" catch errors and interrupts
		:catch /^Vim(write):/		" catch all errors in :write
		:catch /^Vim\%((\a\+)\)\=:E123/	" catch error E123
		:catch /my-exception/		" catch user exception
		:catch /.*/			" catch everything
		:catch				" same as /.*/
<
			Another character can be used instead of / around the
			{pattern}, so long as it does not have a special
			meaning (e.g., '|' or '"') and doesn't occur inside
			{pattern}.
			Information about the exception is available in
			|v:exception|.  Also see |throw-variables|.
			NOTE: It is not reliable to ":catch" the TEXT of
			an error message because it may vary in different
			locales.

					*:fina* *:finally* *E606* *E607*
:fina[lly]		The following commands until the matching |:endtry|
			are executed whenever the part between the matching
			|:try| and the ":finally" is left:  either by falling
			through to the ":finally" or by a |:continue|,
			|:break|, |:finish|, or |:return|, or by an error or
			interrupt or exception (see |:throw|).

							*:th* *:throw* *E608*
:th[row] {expr1}	The {expr1} is evaluated and thrown as an exception.
			If the ":throw" is used after a |:try| but before the
			first corresponding |:catch|, commands are skipped
			until the first ":catch" matching {expr1} is reached.
			If there is no such ":catch" or if the ":throw" is
			used after a ":catch" but before the |:finally|, the
			commands following the ":finally" (if present) up to
			the matching |:endtry| are executed.  If the ":throw"
			is after the ":finally", commands up to the ":endtry"
			are skipped.  At the ":endtry", this process applies
			again for the next dynamically surrounding ":try"
			(which may be found in a calling function or sourcing
			script), until a matching ":catch" has been found.
			If the exception is not caught, the command processing
			is terminated.
			Example: >
		:try | throw "oops" | catch /^oo/ | echo "caught" | endtry
<			Note that "catch" may need to be on a separate line
			for when an error causes the parsing to skip the whole
			line and not see the "|" that separates the commands.

							*:ec* *:echo*
:ec[ho] {expr1} ..	Echoes each {expr1}, with a space in between.  The
			first {expr1} starts on a new line.
			Also see |:comment|.
			Use "\n" to start a new line.  Use "\r" to move the
			cursor to the first column.
			Uses the highlighting set by the |:echohl| command.
			Cannot be followed by a comment.
			Example: >
		:echo "the value of 'shell' is" &shell
<							*:echo-redraw*
			A later redraw may make the message disappear again.
			And since Vim mostly postpones redrawing until it's
			finished with a sequence of commands this happens
			quite often.  To avoid that a command from before the
			":echo" causes a redraw afterwards (redraws are often
			postponed until you type something), force a redraw
			with the |:redraw| command.  Example: >
		:new | redraw | echo "there is a new window"
<
							*:echon*
:echon {expr1} ..	Echoes each {expr1}, without anything added.  Also see
			|:comment|.
			Uses the highlighting set by the |:echohl| command.
			Cannot be followed by a comment.
			Example: >
				:echon "the value of 'shell' is " &shell
<
			Note the difference between using ":echo", which is a
			Vim command, and ":!echo", which is an external shell
			command: >
		:!echo %		--> filename
<			The arguments of ":!" are expanded, see |:_%|. >
		:!echo "%"		--> filename or "filename"
<			Like the previous example.  Whether you see the double
			quotes or not depends on your 'shell'. >
		:echo %			--> nothing
<			The '%' is an illegal character in an expression. >
		:echo "%"		--> %
<			This just echoes the '%' character. >
		:echo expand("%")	--> filename
<			This calls the expand() function to expand the '%'.

							*:echoh* *:echohl*
:echoh[l] {name}	Use the highlight group {name} for the following
			|:echo|, |:echon| and |:echomsg| commands.  Also used
			for the |input()| prompt.  Example: >
		:echohl WarningMsg | echo "Don't panic!" | echohl None
<			Don't forget to set the group back to "None",
			otherwise all following echo's will be highlighted.

							*:echom* *:echomsg*
:echom[sg] {expr1} ..	Echo the expression(s) as a true message, saving the
			message in the |message-history|.
			Spaces are placed between the arguments as with the
			|:echo| command.  But unprintable characters are
			displayed, not interpreted.
			The parsing works slightly different from |:echo|,
			more like |:execute|.  All the expressions are first
			evaluated and concatenated before echoing anything.
			The expressions must evaluate to a Number or String, a
			Dictionary or List causes an error.
			Uses the highlighting set by the |:echohl| command.
			Example: >
		:echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see."
<			See |:echo-redraw| to avoid the message disappearing
			when the screen is redrawn.
							*:echoe* *:echoerr*
:echoe[rr] {expr1} ..	Echo the expression(s) as an error message, saving the
			message in the |message-history|.  When used in a
			script or function the line number will be added.
			Spaces are placed between the arguments as with the
			:echo command.  When used inside a try conditional,
			the message is raised as an error exception instead
			(see |try-echoerr|).
			Example: >
		:echoerr "This script just failed!"
<			If you just want a highlighted message use |:echohl|.
			And to get a beep: >
		:exe "normal \<Esc>"
<
							*:exe* *:execute*
:exe[cute] {expr1} ..	Executes the string that results from the evaluation
			of {expr1} as an Ex command.
			Multiple arguments are concatenated, with a space in
			between.  To avoid the extra space use the "."
			operator to concatenate strings into one argument.
			{expr1} is used as the processed command, command line
			editing keys are not recognized.
			Cannot be followed by a comment.
			Examples: >
		:execute "buffer" nextbuf
		:execute "normal" count . "w"
<
			":execute" can be used to append a command to commands
			that don't accept a '|'.  Example: >
		:execute '!ls' | echo "theend"

<			":execute" is also a nice way to avoid having to type
			control characters in a Vim script for a ":normal"
			command: >
		:execute "normal ixxx\<Esc>"
<			This has an <Esc> character, see |expr-string|.

			Be careful to correctly escape special characters in
			file names.  The |fnameescape()| function can be used
			for Vim commands, |shellescape()| for |:!| commands.
			Examples: >
		:execute "e " . fnameescape(filename)
		:execute "!ls " . shellescape(filename, 1)
<
			Note: The executed string may be any command-line, but
			starting or ending "if", "while" and "for" does not
			always work, because when commands are skipped the
			":execute" is not evaluated and Vim loses track of
			where blocks start and end.  Also "break" and
			"continue" should not be inside ":execute".
			This example does not work, because the ":execute" is
			not evaluated and Vim does not see the "while", and
			gives an error for finding an ":endwhile": >
		:if 0
		: execute 'while i > 5'
		:  echo "test"
		: endwhile
		:endif
<
			It is allowed to have a "while" or "if" command
			completely in the executed string: >
		:execute 'while i < 5 | echo i | let i = i + 1 | endwhile'
<

							*:exe-comment*
			":execute", ":echo" and ":echon" cannot be followed by
			a comment directly, because they see the '"' as the
			start of a string.  But, you can use '|' followed by a
			comment.  Example: >
		:echo "foo" | "this is a comment

==============================================================================
8. Exception handling					*exception-handling*

The Vim script language comprises an exception handling feature.  This section
explains how it can be used in a Vim script.

Exceptions may be raised by Vim on an error or on interrupt, see
|catch-errors| and |catch-interrupt|.  You can also explicitly throw an
exception by using the ":throw" command, see |throw-catch|.


TRY CONDITIONALS					*try-conditionals*

Exceptions can be caught or can cause cleanup code to be executed.  You can
use a try conditional to specify catch clauses (that catch exceptions) and/or
a finally clause (to be executed for cleanup).
   A try conditional begins with a |:try| command and ends at the matching
|:endtry| command.  In between, you can use a |:catch| command to start
a catch clause, or a |:finally| command to start a finally clause.  There may
be none or multiple catch clauses, but there is at most one finally clause,
which must not be followed by any catch clauses.  The lines before the catch
clauses and the finally clause is called a try block. >

     :try
     :	...
     :	...				TRY BLOCK
     :	...
     :catch /{pattern}/
     :	...
     :	...				CATCH CLAUSE
     :	...
     :catch /{pattern}/
     :	...
     :	...				CATCH CLAUSE
     :	...
     :finally
     :	...
     :	...				FINALLY CLAUSE
     :	...
     :endtry

The try conditional allows to watch code for exceptions and to take the
appropriate actions.  Exceptions from the try block may be caught.  Exceptions
from the try block and also the catch clauses may cause cleanup actions.
   When no exception is thrown during execution of the try block, the control
is transferred to the finally clause, if present.  After its execution, the
script continues with the line following the ":endtry".
   When an exception occurs during execution of the try block, the remaining
lines in the try block are skipped.  The exception is matched against the
patterns specified as arguments to the ":catch" commands.  The catch clause
after the first matching ":catch" is taken, other catch clauses are not
executed.  The catch clause ends when the next ":catch", ":finally", or
":endtry" command is reached - whatever is first.  Then, the finally clause
(if present) is executed.  When the ":endtry" is reached, the script execution
continues in the following line as usual.
   When an exception that does not match any of the patterns specified by the
":catch" commands is thrown in the try block, the exception is not caught by
that try conditional and none of the catch clauses is executed.  Only the
finally clause, if present, is taken.  The exception pends during execution of
the finally clause.  It is resumed at the ":endtry", so that commands after
the ":endtry" are not executed and the exception might be caught elsewhere,
see |try-nesting|.
   When during execution of a catch clause another exception is thrown, the
remaining lines in that catch clause are not executed.  The new exception is
not matched against the patterns in any of the ":catch" commands of the same
try conditional and none of its catch clauses is taken.  If there is, however,
a finally clause, it is executed, and the exception pends during its
execution.  The commands following the ":endtry" are not executed.  The new
exception might, however, be caught elsewhere, see |try-nesting|.
   When during execution of the finally clause (if present) an exception is
thrown, the remaining lines in the finally clause are skipped.  If the finally
clause has been taken because of an exception from the try block or one of the
catch clauses, the original (pending) exception is discarded.  The commands
following the ":endtry" are not executed, and the exception from the finally
clause is propagated and can be caught elsewhere, see |try-nesting|.

The finally clause is also executed, when a ":break" or ":continue" for
a ":while" loop enclosing the complete try conditional is executed from the
try block or a catch clause.  Or when a ":return" or ":finish" is executed
from the try block or a catch clause of a try conditional in a function or
sourced script, respectively.  The ":break", ":continue", ":return", or
":finish" pends during execution of the finally clause and is resumed when the
":endtry" is reached.  It is, however, discarded when an exception is thrown
from the finally clause.
   When a ":break" or ":continue" for a ":while" loop enclosing the complete
try conditional or when a ":return" or ":finish" is encountered in the finally
clause, the rest of the finally clause is skipped, and the ":break",
":continue", ":return" or ":finish" is executed as usual.  If the finally
clause has been taken because of an exception or an earlier ":break",
":continue", ":return", or ":finish" from the try block or a catch clause,
this pending exception or command is discarded.

For examples see |throw-catch| and |try-finally|.


NESTING	OF TRY CONDITIONALS				*try-nesting*

Try conditionals can be nested arbitrarily.  That is, a complete try
conditional can be put into the try block, a catch clause, or the finally
clause of another try conditional.  If the inner try conditional does not
catch an exception thrown in its try block or throws a new exception from one
of its catch clauses or its finally clause, the outer try conditional is
checked according to the rules above.  If the inner try conditional is in the
try block of the outer try conditional, its catch clauses are checked, but
otherwise only the finally clause is executed.  It does not matter for
nesting, whether the inner try conditional is directly contained in the outer
one, or whether the outer one sources a script or calls a function containing
the inner try conditional.

When none of the active try conditionals catches an exception, just their
finally clauses are executed.  Thereafter, the script processing terminates.
An error message is displayed in case of an uncaught exception explicitly
thrown by a ":throw" command.  For uncaught error and interrupt exceptions
implicitly raised by Vim, the error message(s) or interrupt message are shown
as usual.

For examples see |throw-catch|.


EXAMINING EXCEPTION HANDLING CODE			*except-examine*

Exception handling code can get tricky.  If you are in doubt what happens, set
'verbose' to 13 or use the ":13verbose" command modifier when sourcing your
script file.  Then you see when an exception is thrown, discarded, caught, or
finished.  When using a verbosity level of at least 14, things pending in
a finally clause are also shown.  This information is also given in debug mode
(see |debug-scripts|).


THROWING AND CATCHING EXCEPTIONS			*throw-catch*

You can throw any number or string as an exception.  Use the |:throw| command
and pass the value to be thrown as argument: >
	:throw 4711
	:throw "string"
<							*throw-expression*
You can also specify an expression argument.  The expression is then evaluated
first, and the result is thrown: >
	:throw 4705 + strlen("string")
	:throw strpart("strings", 0, 6)

An exception might be thrown during evaluation of the argument of the ":throw"
command.  Unless it is caught there, the expression evaluation is abandoned.
The ":throw" command then does not throw a new exception.
   Example: >

	:function! Foo(arg)
	:  try
	:    throw a:arg
	:  catch /foo/
	:  endtry
	:  return 1
	:endfunction
	:
	:function! Bar()
	:  echo "in Bar"
	:  return 4710
	:endfunction
	:
	:throw Foo("arrgh") + Bar()

This throws "arrgh", and "in Bar" is not displayed since Bar() is not
executed. >
	:throw Foo("foo") + Bar()
however displays "in Bar" and throws 4711.

Any other command that takes an expression as argument might also be
abandoned by an (uncaught) exception during the expression evaluation.  The
exception is then propagated to the caller of the command.
   Example: >

	:if Foo("arrgh")
	:  echo "then"
	:else
	:  echo "else"
	:endif

Here neither of "then" or "else" is displayed.

							*catch-order*
Exceptions can be caught by a try conditional with one or more |:catch|
commands, see |try-conditionals|.   The values to be caught by each ":catch"
command can be specified as a pattern argument.  The subsequent catch clause
gets executed when a matching exception is caught.
   Example: >

	:function! Foo(value)
	:  try
	:    throw a:value
	:  catch /^\d\+$/
	:    echo "Number thrown"
	:  catch /.*/
	:    echo "String thrown"
	:  endtry
	:endfunction
	:
	:call Foo(0x1267)
	:call Foo('string')

The first call to Foo() displays "Number thrown", the second "String thrown".
An exception is matched against the ":catch" commands in the order they are
specified.  Only the first match counts.  So you should place the more
specific ":catch" first.  The following order does not make sense: >

	:  catch /.*/
	:    echo "String thrown"
	:  catch /^\d\+$/
	:    echo "Number thrown"

The first ":catch" here matches always, so that the second catch clause is
never taken.

							*throw-variables*
If you catch an exception by a general pattern, you may access the exact value
in the variable |v:exception|: >

	:  catch /^\d\+$/
	:    echo "Number thrown.  Value is" v:exception

You may also be interested where an exception was thrown.  This is stored in
|v:throwpoint|.  Note that "v:exception" and "v:throwpoint" are valid for the
exception most recently caught as long it is not finished.
   Example: >

	:function! Caught()
	:  if v:exception != ""
	:    echo 'Caught "' . v:exception . '" in ' . v:throwpoint
	:  else
	:    echo 'Nothing caught'
	:  endif
	:endfunction
	:
	:function! Foo()
	:  try
	:    try
	:      try
	:	 throw 4711
	:      finally
	:	 call Caught()
	:      endtry
	:    catch /.*/
	:      call Caught()
	:      throw "oops"
	:    endtry
	:  catch /.*/
	:    call Caught()
	:  finally
	:    call Caught()
	:  endtry
	:endfunction
	:
	:call Foo()

This displays >

	Nothing caught
	Caught "4711" in function Foo, line 4
	Caught "oops" in function Foo, line 10
	Nothing caught

A practical example:  The following command ":LineNumber" displays the line
number in the script or function where it has been used: >

	:function! LineNumber()
	:    return substitute(v:throwpoint, '.*\D\(\d\+\).*', '\1', "")
	:endfunction
	:command! LineNumber try | throw "" | catch | echo LineNumber() | endtry
<
							*try-nested*
An exception that is not caught by a try conditional can be caught by
a surrounding try conditional: >

	:try
	:  try
	:    throw "foo"
	:  catch /foobar/
	:    echo "foobar"
	:  finally
	:    echo "inner finally"
	:  endtry
	:catch /foo/
	:  echo "foo"
	:endtry

The inner try conditional does not catch the exception, just its finally
clause is executed.  The exception is then caught by the outer try
conditional.  The example displays "inner finally" and then "foo".

							*throw-from-catch*
You can catch an exception and throw a new one to be caught elsewhere from the
catch clause: >

	:function! Foo()
	:  throw "foo"
	:endfunction
	:
	:function! Bar()
	:  try
	:    call Foo()
	:  catch /foo/
	:    echo "Caught foo, throw bar"
	:    throw "bar"
	:  endtry
	:endfunction
	:
	:try
	:  call Bar()
	:catch /.*/
	:  echo "Caught" v:exception
	:endtry

This displays "Caught foo, throw bar" and then "Caught bar".

							*rethrow*
There is no real rethrow in the Vim script language, but you may throw
"v:exception" instead: >

	:function! Bar()
	:  try
	:    call Foo()
	:  catch /.*/
	:    echo "Rethrow" v:exception
	:    throw v:exception
	:  endtry
	:endfunction
<							*try-echoerr*
Note that this method cannot be used to "rethrow" Vim error or interrupt
exceptions, because it is not possible to fake Vim internal exceptions.
Trying so causes an error exception.  You should throw your own exception
denoting the situation.  If you want to cause a Vim error exception containing
the original error exception value, you can use the |:echoerr| command: >

	:try
	:  try
	:    asdf
	:  catch /.*/
	:    echoerr v:exception
	:  endtry
	:catch /.*/
	:  echo v:exception
	:endtry

This code displays

	Vim(echoerr):Vim:E492: Not an editor command:	asdf ~


CLEANUP CODE						*try-finally*

Scripts often change global settings and restore them at their end.  If the
user however interrupts the script by pressing CTRL-C, the settings remain in
an inconsistent state.  The same may happen to you in the development phase of
a script when an error occurs or you explicitly throw an exception without
catching it.  You can solve these problems by using a try conditional with
a finally clause for restoring the settings.  Its execution is guaranteed on
normal control flow, on error, on an explicit ":throw", and on interrupt.
(Note that errors and interrupts from inside the try conditional are converted
to exceptions.  When not caught, they terminate the script after the finally
clause has been executed.)
Example: >

	:try
	:  let s:saved_ts = &ts
	:  set ts=17
	:
	:  " Do the hard work here.
	:
	:finally
	:  let &ts = s:saved_ts
	:  unlet s:saved_ts
	:endtry

This method should be used locally whenever a function or part of a script
changes global settings which need to be restored on failure or normal exit of
that function or script part.

							*break-finally*
Cleanup code works also when the try block or a catch clause is left by
a ":continue", ":break", ":return", or ":finish".
   Example: >

	:let first = 1
	:while 1
	:  try
	:    if first
	:      echo "first"
	:      let first = 0
	:      continue
	:    else
	:      throw "second"
	:    endif
	:  catch /.*/
	:    echo v:exception
	:    break
	:  finally
	:    echo "cleanup"
	:  endtry
	:  echo "still in while"
	:endwhile
	:echo "end"

This displays "first", "cleanup", "second", "cleanup", and "end". >

	:function! Foo()
	:  try
	:    return 4711
	:  finally
	:    echo "cleanup\n"
	:  endtry
	:  echo "Foo still active"
	:endfunction
	:
	:echo Foo() "returned by Foo"

This displays "cleanup" and "4711 returned by Foo".  You don't need to add an
extra ":return" in the finally clause.  (Above all, this would override the
return value.)

							*except-from-finally*
Using either of ":continue", ":break", ":return", ":finish", or ":throw" in
a finally clause is possible, but not recommended since it abandons the
cleanup actions for the try conditional.  But, of course, interrupt and error
exceptions might get raised from a finally clause.
   Example where an error in the finally clause stops an interrupt from
working correctly: >

	:try
	:  try
	:    echo "Press CTRL-C for interrupt"
	:    while 1
	:    endwhile
	:  finally
	:    unlet novar
	:  endtry
	:catch /novar/
	:endtry
	:echo "Script still running"
	:sleep 1

If you need to put commands that could fail into a finally clause, you should
think about catching or ignoring the errors in these commands, see
|catch-errors| and |ignore-errors|.


CATCHING ERRORS						*catch-errors*

If you want to catch specific errors, you just have to put the code to be
watched in a try block and add a catch clause for the error message.  The
presence of the try conditional causes all errors to be converted to an
exception.  No message is displayed and |v:errmsg| is not set then.  To find
the right pattern for the ":catch" command, you have to know how the format of
the error exception is.
   Error exceptions have the following format: >

	Vim({cmdname}):{errmsg}
or >
	Vim:{errmsg}

{cmdname} is the name of the command that failed; the second form is used when
the command name is not known.  {errmsg} is the error message usually produced
when the error occurs outside try conditionals.  It always begins with
a capital "E", followed by a two or three-digit error number, a colon, and
a space.

Examples:

The command >
	:unlet novar
normally produces the error message >
	E108: No such variable: "novar"
which is converted inside try conditionals to an exception >
	Vim(unlet):E108: No such variable: "novar"

The command >
	:dwim
normally produces the error message >
	E492: Not an editor command: dwim
which is converted inside try conditionals to an exception >
	Vim:E492: Not an editor command: dwim

You can catch all ":unlet" errors by a >
	:catch /^Vim(unlet):/
or all errors for misspelled command names by a >
	:catch /^Vim:E492:/

Some error messages may be produced by different commands: >
	:function nofunc
and >
	:delfunction nofunc
both produce the error message >
	E128: Function name must start with a capital: nofunc
which is converted inside try conditionals to an exception >
	Vim(function):E128: Function name must start with a capital: nofunc
or >
	Vim(delfunction):E128: Function name must start with a capital: nofunc
respectively.  You can catch the error by its number independently on the
command that caused it if you use the following pattern: >
	:catch /^Vim(\a\+):E128:/

Some commands like >
	:let x = novar
produce multiple error messages, here: >
	E121: Undefined variable: novar
	E15: Invalid expression:  novar
Only the first is used for the exception value, since it is the most specific
one (see |except-several-errors|).  So you can catch it by >
	:catch /^Vim(\a\+):E121:/

You can catch all errors related to the name "nofunc" by >
	:catch /\<nofunc\>/

You can catch all Vim errors in the ":write" and ":read" commands by >
	:catch /^Vim(\(write\|read\)):E\d\+:/

You can catch all Vim errors by the pattern >
	:catch /^Vim\((\a\+)\)\=:E\d\+:/
<
							*catch-text*
NOTE: You should never catch the error message text itself: >
	:catch /No such variable/
only works in the English locale, but not when the user has selected
a different language by the |:language| command.  It is however helpful to
cite the message text in a comment: >
	:catch /^Vim(\a\+):E108:/   " No such variable


IGNORING ERRORS						*ignore-errors*

You can ignore errors in a specific Vim command by catching them locally: >

	:try
	:  write
	:catch
	:endtry

But you are strongly recommended NOT to use this simple form, since it could
catch more than you want.  With the ":write" command, some autocommands could
be executed and cause errors not related to writing, for instance: >

	:au BufWritePre * unlet novar

There could even be such errors you are not responsible for as a script
writer: a user of your script might have defined such autocommands.  You would
then hide the error from the user.
   It is much better to use >

	:try
	:  write
	:catch /^Vim(write):/
	:endtry

which only catches real write errors.  So catch only what you'd like to ignore
intentionally.

For a single command that does not cause execution of autocommands, you could
even suppress the conversion of errors to exceptions by the ":silent!"
command: >
	:silent! nunmap k
This works also when a try conditional is active.


CATCHING INTERRUPTS					*catch-interrupt*

When there are active try conditionals, an interrupt (CTRL-C) is converted to
the exception "Vim:Interrupt".  You can catch it like every exception.  The
script is not terminated, then.
   Example: >

	:function! TASK1()
	:  sleep 10
	:endfunction

	:function! TASK2()
	:  sleep 20
	:endfunction

	:while 1
	:  let command = input("Type a command: ")
	:  try
	:    if command == ""
	:      continue
	:    elseif command == "END"
	:      break
	:    elseif command == "TASK1"
	:      call TASK1()
	:    elseif command == "TASK2"
	:      call TASK2()
	:    else
	:      echo "\nIllegal command:" command
	:      continue
	:    endif
	:  catch /^Vim:Interrupt$/
	:    echo "\nCommand interrupted"
	:    " Caught the interrupt.  Continue with next prompt.
	:  endtry
	:endwhile

You can interrupt a task here by pressing CTRL-C; the script then asks for
a new command.  If you press CTRL-C at the prompt, the script is terminated.

For testing what happens when CTRL-C would be pressed on a specific line in
your script, use the debug mode and execute the |>quit| or |>interrupt|
command on that line.  See |debug-scripts|.


CATCHING ALL						*catch-all*

The commands >

	:catch /.*/
	:catch //
	:catch

catch everything, error exceptions, interrupt exceptions and exceptions
explicitly thrown by the |:throw| command.  This is useful at the top level of
a script in order to catch unexpected things.
   Example: >

	:try
	:
	:  " do the hard work here
	:
	:catch /MyException/
	:
	:  " handle known problem
	:
	:catch /^Vim:Interrupt$/
	:    echo "Script interrupted"
	:catch /.*/
	:  echo "Internal error (" . v:exception . ")"
	:  echo " - occurred at " . v:throwpoint
	:endtry
	:" end of script

Note: Catching all might catch more things than you want.  Thus, you are
strongly encouraged to catch only for problems that you can really handle by
specifying a pattern argument to the ":catch".
   Example: Catching all could make it nearly impossible to interrupt a script
by pressing CTRL-C: >

	:while 1
	:  try
	:    sleep 1
	:  catch
	:  endtry
	:endwhile


EXCEPTIONS AND AUTOCOMMANDS				*except-autocmd*

Exceptions may be used during execution of autocommands.  Example: >

	:autocmd User x try
	:autocmd User x   throw "Oops!"
	:autocmd User x catch
	:autocmd User x   echo v:exception
	:autocmd User x endtry
	:autocmd User x throw "Arrgh!"
	:autocmd User x echo "Should not be displayed"
	:
	:try
	:  doautocmd User x
	:catch
	:  echo v:exception
	:endtry

This displays "Oops!" and "Arrgh!".

							*except-autocmd-Pre*
For some commands, autocommands get executed before the main action of the
command takes place.  If an exception is thrown and not caught in the sequence
of autocommands, the sequence and the command that caused its execution are
abandoned and the exception is propagated to the caller of the command.
   Example: >

	:autocmd BufWritePre * throw "FAIL"
	:autocmd BufWritePre * echo "Should not be displayed"
	:
	:try
	:  write
	:catch
	:  echo "Caught:" v:exception "from" v:throwpoint
	:endtry

Here, the ":write" command does not write the file currently being edited (as
you can see by checking 'modified'), since the exception from the BufWritePre
autocommand abandons the ":write".  The exception is then caught and the
script displays: >

	Caught: FAIL from BufWrite Auto commands for "*"
<
							*except-autocmd-Post*
For some commands, autocommands get executed after the main action of the
command has taken place.  If this main action fails and the command is inside
an active try conditional, the autocommands are skipped and an error exception
is thrown that can be caught by the caller of the command.
   Example: >

	:autocmd BufWritePost * echo "File successfully written!"
	:
	:try
	:  write /i/m/p/o/s/s/i/b/l/e
	:catch
	:  echo v:exception
	:endtry

This just displays: >

	Vim(write):E212: Can't open file for writing (/i/m/p/o/s/s/i/b/l/e)

If you really need to execute the autocommands even when the main action
fails, trigger the event from the catch clause.
   Example: >

	:autocmd BufWritePre  * set noreadonly
	:autocmd BufWritePost * set readonly
	:
	:try
	:  write /i/m/p/o/s/s/i/b/l/e
	:catch
	:  doautocmd BufWritePost /i/m/p/o/s/s/i/b/l/e
	:endtry
<
You can also use ":silent!": >

	:let x = "ok"
	:let v:errmsg = ""
	:autocmd BufWritePost * if v:errmsg != ""
	:autocmd BufWritePost *   let x = "after fail"
	:autocmd BufWritePost * endif
	:try
	:  silent! write /i/m/p/o/s/s/i/b/l/e
	:catch
	:endtry
	:echo x

This displays "after fail".

If the main action of the command does not fail, exceptions from the
autocommands will be catchable by the caller of the command:  >

	:autocmd BufWritePost * throw ":-("
	:autocmd BufWritePost * echo "Should not be displayed"
	:
	:try
	:  write
	:catch
	:  echo v:exception
	:endtry
<
							*except-autocmd-Cmd*
For some commands, the normal action can be replaced by a sequence of
autocommands.  Exceptions from that sequence will be catchable by the caller
of the command.
   Example:  For the ":write" command, the caller cannot know whether the file
had actually been written when the exception occurred.  You need to tell it in
some way. >

	:if !exists("cnt")
	:  let cnt = 0
	:
	:  autocmd BufWriteCmd * if &modified
	:  autocmd BufWriteCmd *   let cnt = cnt + 1
	:  autocmd BufWriteCmd *   if cnt % 3 == 2
	:  autocmd BufWriteCmd *     throw "BufWriteCmdError"
	:  autocmd BufWriteCmd *   endif
	:  autocmd BufWriteCmd *   write | set nomodified
	:  autocmd BufWriteCmd *   if cnt % 3 == 0
	:  autocmd BufWriteCmd *     throw "BufWriteCmdError"
	:  autocmd BufWriteCmd *   endif
	:  autocmd BufWriteCmd *   echo "File successfully written!"
	:  autocmd BufWriteCmd * endif
	:endif
	:
	:try
	:	write
	:catch /^BufWriteCmdError$/
	:  if &modified
	:    echo "Error on writing (file contents not changed)"
	:  else
	:    echo "Error after writing"
	:  endif
	:catch /^Vim(write):/
	:    echo "Error on writing"
	:endtry

When this script is sourced several times after making changes, it displays
first >
	File successfully written!
then >
	Error on writing (file contents not changed)
then >
	Error after writing
etc.

							*except-autocmd-ill*
You cannot spread a try conditional over autocommands for different events.
The following code is ill-formed: >

	:autocmd BufWritePre  * try
	:
	:autocmd BufWritePost * catch
	:autocmd BufWritePost *   echo v:exception
	:autocmd BufWritePost * endtry
	:
	:write


EXCEPTION HIERARCHIES AND PARAMETERIZED EXCEPTIONS	*except-hier-param*

Some programming languages allow to use hierarchies of exception classes or to
pass additional information with the object of an exception class.  You can do
similar things in Vim.
   In order to throw an exception from a hierarchy, just throw the complete
class name with the components separated by a colon, for instance throw the
string "EXCEPT:MATHERR:OVERFLOW" for an overflow in a mathematical library.
   When you want to pass additional information with your exception class, add
it in parentheses, for instance throw the string "EXCEPT:IO:WRITEERR(myfile)"
for an error when writing "myfile".
   With the appropriate patterns in the ":catch" command, you can catch for
base classes or derived classes of your hierarchy.  Additional information in
parentheses can be cut out from |v:exception| with the ":substitute" command.
   Example: >

	:function! CheckRange(a, func)
	:  if a:a < 0
	:    throw "EXCEPT:MATHERR:RANGE(" . a:func . ")"
	:  endif
	:endfunction
	:
	:function! Add(a, b)
	:  call CheckRange(a:a, "Add")
	:  call CheckRange(a:b, "Add")
	:  let c = a:a + a:b
	:  if c < 0
	:    throw "EXCEPT:MATHERR:OVERFLOW"
	:  endif
	:  return c
	:endfunction
	:
	:function! Div(a, b)
	:  call CheckRange(a:a, "Div")
	:  call CheckRange(a:b, "Div")
	:  if (a:b == 0)
	:    throw "EXCEPT:MATHERR:ZERODIV"
	:  endif
	:  return a:a / a:b
	:endfunction
	:
	:function! Write(file)
	:  try
	:    execute "write" fnameescape(a:file)
	:  catch /^Vim(write):/
	:    throw "EXCEPT:IO(" . getcwd() . ", " . a:file . "):WRITEERR"
	:  endtry
	:endfunction
	:
	:try
	:
	:  " something with arithmetics and I/O
	:
	:catch /^EXCEPT:MATHERR:RANGE/
	:  let function = substitute(v:exception, '.*(\(\a\+\)).*', '\1', "")
	:  echo "Range error in" function
	:
	:catch /^EXCEPT:MATHERR/	" catches OVERFLOW and ZERODIV
	:  echo "Math error"
	:
	:catch /^EXCEPT:IO/
	:  let dir = substitute(v:exception, '.*(\(.\+\),\s*.\+).*', '\1', "")
	:  let file = substitute(v:exception, '.*(.\+,\s*\(.\+\)).*', '\1', "")
	:  if file !~ '^/'
	:    let file = dir . "/" . file
	:  endif
	:  echo 'I/O error for "' . file . '"'
	:
	:catch /^EXCEPT/
	:  echo "Unspecified error"
	:
	:endtry

The exceptions raised by Vim itself (on error or when pressing CTRL-C) use
a flat hierarchy:  they are all in the "Vim" class.  You cannot throw yourself
exceptions with the "Vim" prefix; they are reserved for Vim.
   Vim error exceptions are parameterized with the name of the command that
failed, if known.  See |catch-errors|.


PECULIARITIES
							*except-compat*
The exception handling concept requires that the command sequence causing the
exception is aborted immediately and control is transferred to finally clauses
and/or a catch clause.

In the Vim script language there are cases where scripts and functions
continue after an error: in functions without the "abort" flag or in a command
after ":silent!", control flow goes to the following line, and outside
functions, control flow goes to the line following the outermost ":endwhile"
or ":endif".  On the other hand, errors should be catchable as exceptions
(thus, requiring the immediate abortion).

This problem has been solved by converting errors to exceptions and using
immediate abortion (if not suppressed by ":silent!") only when a try
conditional is active.  This is no restriction since an (error) exception can
be caught only from an active try conditional.  If you want an immediate
termination without catching the error, just use a try conditional without
catch clause.  (You can cause cleanup code being executed before termination
by specifying a finally clause.)

When no try conditional is active, the usual abortion and continuation
behavior is used instead of immediate abortion.  This ensures compatibility of
scripts written for Vim 6.1 and earlier.

However, when sourcing an existing script that does not use exception handling
commands (or when calling one of its functions) from inside an active try
conditional of a new script, you might change the control flow of the existing
script on error.  You get the immediate abortion on error and can catch the
error in the new script.  If however the sourced script suppresses error
messages by using the ":silent!" command (checking for errors by testing
|v:errmsg| if appropriate), its execution path is not changed.  The error is
not converted to an exception.  (See |:silent|.)  So the only remaining cause
where this happens is for scripts that don't care about errors and produce
error messages.  You probably won't want to use such code from your new
scripts.

							*except-syntax-err*
Syntax errors in the exception handling commands are never caught by any of
the ":catch" commands of the try conditional they belong to.  Its finally
clauses, however, is executed.
   Example: >

	:try
	:  try
	:    throw 4711
	:  catch /\(/
	:    echo "in catch with syntax error"
	:  catch
	:    echo "inner catch-all"
	:  finally
	:    echo "inner finally"
	:  endtry
	:catch
	:  echo 'outer catch-all caught "' . v:exception . '"'
	:  finally
	:    echo "outer finally"
	:endtry

This displays: >
    inner finally
    outer catch-all caught "Vim(catch):E54: Unmatched \("
    outer finally
The original exception is discarded and an error exception is raised, instead.

							*except-single-line*
The ":try", ":catch", ":finally", and ":endtry" commands can be put on
a single line, but then syntax errors may make it difficult to recognize the
"catch" line, thus you better avoid this.
   Example: >
	:try | unlet! foo # | catch | endtry
raises an error exception for the trailing characters after the ":unlet!"
argument, but does not see the ":catch" and ":endtry" commands, so that the
error exception is discarded and the "E488: Trailing characters" message gets
displayed.

							*except-several-errors*
When several errors appear in a single command, the first error message is
usually the most specific one and therefor converted to the error exception.
   Example: >
	echo novar
causes >
	E121: Undefined variable: novar
	E15: Invalid expression: novar
The value of the error exception inside try conditionals is: >
	Vim(echo):E121: Undefined variable: novar
<							*except-syntax-error*
But when a syntax error is detected after a normal error in the same command,
the syntax error is used for the exception being thrown.
   Example: >
	unlet novar #
causes >
	E108: No such variable: "novar"
	E488: Trailing characters
The value of the error exception inside try conditionals is: >
	Vim(unlet):E488: Trailing characters
This is done because the syntax error might change the execution path in a way
not intended by the user.  Example: >
	try
	    try | unlet novar # | catch | echo v:exception | endtry
	catch /.*/
	    echo "outer catch:" v:exception
	endtry
This displays "outer catch: Vim(unlet):E488: Trailing characters", and then
a "E600: Missing :endtry" error message is given, see |except-single-line|.

==============================================================================
9. Examples						*eval-examples*

Printing in Binary ~
>
  :" The function Nr2Bin() returns the binary string representation of a number.
  :func Nr2Bin(nr)
  :  let n = a:nr
  :  let r = ""
  :  while n
  :    let r = '01'[n % 2] . r
  :    let n = n / 2
  :  endwhile
  :  return r
  :endfunc

  :" The function String2Bin() converts each character in a string to a
  :" binary string, separated with dashes.
  :func String2Bin(str)
  :  let out = ''
  :  for ix in range(strlen(a:str))
  :    let out = out . '-' . Nr2Bin(char2nr(a:str[ix]))
  :  endfor
  :  return out[1:]
  :endfunc

Example of its use: >
  :echo Nr2Bin(32)
result: "100000" >
  :echo String2Bin("32")
result: "110011-110010"


Sorting lines ~

This example sorts lines with a specific compare function. >

  :func SortBuffer()
  :  let lines = getline(1, '$')
  :  call sort(lines, function("Strcmp"))
  :  call setline(1, lines)
  :endfunction

As a one-liner: >
  :call setline(1, sort(getline(1, '$'), function("Strcmp")))


scanf() replacement ~
							*sscanf*
There is no sscanf() function in Vim.  If you need to extract parts from a
line, you can use matchstr() and substitute() to do it.  This example shows
how to get the file name, line number and column number out of a line like
"foobar.txt, 123, 45". >
   :" Set up the match bit
   :let mx='\(\f\+\),\s*\(\d\+\),\s*\(\d\+\)'
   :"get the part matching the whole expression
   :let l = matchstr(line, mx)
   :"get each item out of the match
   :let file = substitute(l, mx, '\1', '')
   :let lnum = substitute(l, mx, '\2', '')
   :let col = substitute(l, mx, '\3', '')

The input is in the variable "line", the results in the variables "file",
"lnum" and "col". (idea from Michael Geddes)


getting the scriptnames in a Dictionary ~
						*scriptnames-dictionary*
The |:scriptnames| command can be used to get a list of all script files that
have been sourced.  There is no equivalent function or variable for this
(because it's rarely needed).  In case you need to manipulate the list this
code can be used: >
    " Get the output of ":scriptnames" in the scriptnames_output variable.
    let scriptnames_output = ''
    redir => scriptnames_output
    silent scriptnames
    redir END

    " Split the output into lines and parse each line.	Add an entry to the
    " "scripts" dictionary.
    let scripts = {}
    for line in split(scriptnames_output, "\n")
      " Only do non-blank lines.
      if line =~ '\S'
	" Get the first number in the line.
	let nr = matchstr(line, '\d\+')
	" Get the file name, remove the script number " 123: ".
	let name = substitute(line, '.\+:\s*', '', '')
	" Add an item to the Dictionary
	let scripts[nr] = name
      endif
    endfor
    unlet scriptnames_output

==============================================================================
10. No +eval feature				*no-eval-feature*

When the |+eval| feature was disabled at compile time, none of the expression
evaluation commands are available.  To prevent this from causing Vim scripts
to generate all kinds of errors, the ":if" and ":endif" commands are still
recognized, though the argument of the ":if" and everything between the ":if"
and the matching ":endif" is ignored.  Nesting of ":if" blocks is allowed, but
only if the commands are at the start of the line.  The ":else" command is not
recognized.

Example of how to avoid executing commands when the |+eval| feature is
missing: >

	:if 1
	:  echo "Expression evaluation is compiled in"
	:else
	:  echo "You will _never_ see this message"
	:endif

To execute a command only when the |+eval| feature is disabled requires a trick,
as this example shows: >

	silent! while 0
	  set history=111
	silent! endwhile

When the |+eval| feature is available the command is skipped because of the
"while 0".  Without the |+eval| feature the "while 0" is an error, which is
silently ignored, and the command is executed.

==============================================================================
11. The sandbox					*eval-sandbox* *sandbox* *E48*

The 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' and
'foldtext' options may be evaluated in a sandbox.  This means that you are
protected from these expressions having nasty side effects.  This gives some
safety for when these options are set from a modeline.  It is also used when
the command from a tags file is executed and for CTRL-R = in the command line.
The sandbox is also used for the |:sandbox| command.

These items are not allowed in the sandbox:
	- changing the buffer text
	- defining or changing mapping, autocommands, functions, user commands
	- setting certain options (see |option-summary|)
	- setting certain v: variables (see |v:var|)  *E794*
	- executing a shell command
	- reading or writing a file
	- jumping to another buffer or editing a file
	- executing Python, Perl, etc. commands
This is not guaranteed 100% secure, but it should block most attacks.

							*:san* *:sandbox*
:san[dbox] {cmd}	Execute {cmd} in the sandbox.  Useful to evaluate an
			option that may have been set from a modeline, e.g.
			'foldexpr'.

							*sandbox-option*
A few options contain an expression.  When this expression is evaluated it may
have to be done in the sandbox to avoid a security risk.  But the sandbox is
restrictive, thus this only happens when the option was set from an insecure
location.  Insecure in this context are:
- sourcing a .vimrc or .exrc in the current directory
- while executing in the sandbox
- value coming from a modeline

Note that when in the sandbox and saving an option value and restoring it, the
option will still be marked as it was set in the sandbox.

==============================================================================
12. Textlock							*textlock*

In a few situations it is not allowed to change the text in the buffer, jump
to another window and some other things that might confuse or break what Vim
is currently doing.  This mostly applies to things that happen when Vim is
actually doing something else.  For example, evaluating the 'balloonexpr' may
happen any moment the mouse cursor is resting at some position.

This is not allowed when the textlock is active:
	- changing the buffer text
	- jumping to another buffer or window
	- editing another file
	- closing a window or quitting Vim
	- etc.

==============================================================================
13. Testing							*testing*

Vim can be tested after building it, usually with "make test".
The tests are located in the directory "src/testdir".

There are several types of tests added over time:
	test33.in		oldest, don't add any more
	test_something.in	old style tests
	test_something.vim	new style tests

						*new-style-testing*
New tests should be added as new style tests.  These use functions such as
|assert_equal()| to keep the test commands and the expected result in one
place.
						*old-style-testing*
In some cases an old style test needs to be used.  E.g. when testing Vim
without the |+eval| feature.

Find more information in the file src/testdir/README.txt.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z1�T�Z�Zvim80/doc/usr_40.txtnu�[���*usr_40.txt*	For Vim version 8.0.  Last change: 2013 Aug 05

		     VIM USER MANUAL - by Bram Moolenaar

			      Make new commands


Vim is an extensible editor.  You can take a sequence of commands you use
often and turn it into a new command.  Or redefine an existing command.
Autocommands make it possible to execute commands automatically.

|40.1|	Key mapping
|40.2|	Defining command-line commands
|40.3|	Autocommands

     Next chapter: |usr_41.txt|  Write a Vim script
 Previous chapter: |usr_32.txt|  The undo tree
Table of contents: |usr_toc.txt|

==============================================================================
*40.1*	Key mapping

A simple mapping was explained in section |05.3|.  The principle is that one
sequence of key strokes is translated into another sequence of key strokes.
This is a simple, yet powerful mechanism.
   The simplest form is that one key is mapped to a sequence of keys.  Since
the function keys, except <F1>, have no predefined meaning in Vim, these are
good choices to map.  Example: >

	:map <F2> GoDate: <Esc>:read !date<CR>kJ

This shows how three modes are used.  After going to the last line with "G",
the "o" command opens a new line and starts Insert mode.  The text "Date: " is
inserted and <Esc> takes you out of insert mode.
   Notice the use of special keys inside <>.  This is called angle bracket
notation.  You type these as separate characters, not by pressing the key
itself.  This makes the mappings better readable and you can copy and paste
the text without problems.
   The ":" character takes Vim to the command line.  The ":read !date" command
reads the output from the "date" command and appends it below the current
line.  The <CR> is required to execute the ":read" command.
   At this point of execution the text looks like this:

	Date:  ~
	Fri Jun 15 12:54:34 CEST 2001 ~

Now "kJ" moves the cursor up and joins the lines together.
   To decide which key or keys you use for mapping, see |map-which-keys|.


MAPPING AND MODES

The ":map" command defines remapping for keys in Normal mode.  You can also
define mappings for other modes.  For example, ":imap" applies to Insert mode.
You can use it to insert a date below the cursor: >

	:imap <F2> <CR>Date: <Esc>:read !date<CR>kJ

It looks a lot like the mapping for <F2> in Normal mode, only the start is
different.  The <F2> mapping for Normal mode is still there.  Thus you can map
the same key differently for each mode.
   Notice that, although this mapping starts in Insert mode, it ends in Normal
mode.  If you want it to continue in Insert mode, append an "a" to the
mapping.

Here is an overview of map commands and in which mode they work:

	:map		Normal, Visual and Operator-pending
	:vmap		Visual
	:nmap		Normal
	:omap		Operator-pending
	:map!		Insert and Command-line
	:imap		Insert
	:cmap		Command-line

Operator-pending mode is when you typed an operator character, such as "d" or
"y", and you are expected to type the motion command or a text object.  Thus
when you type "dw", the "w" is entered in operator-pending mode.

Suppose that you want to define <F7> so that the command d<F7> deletes a C
program block (text enclosed in curly braces, {}).  Similarly y<F7> would yank
the program block into the unnamed register.  Therefore, what you need to do
is to define <F7> to select the current program block.  You can do this with
the following command: >

	:omap <F7> a{

This causes <F7> to perform a select block "a{" in operator-pending mode, just
like you typed it.  This mapping is useful if typing a { on your keyboard is a
bit difficult.


LISTING MAPPINGS

To see the currently defined mappings, use ":map" without arguments.  Or one
of the variants that include the mode in which they work.  The output could
look like this:

	   _g		 :call MyGrep(1)<CR> ~
	v  <F2>		 :s/^/> /<CR>:noh<CR>`` ~
	n  <F2>		 :.,$s/^/> /<CR>:noh<CR>`` ~
	   <xHome>	 <Home>
	   <xEnd>	 <End>


The first column of the list shows in which mode the mapping is effective.
This is "n" for Normal mode, "i" for Insert mode, etc.  A blank is used for a
mapping defined with ":map", thus effective in both Normal and Visual mode.
   One useful purpose of listing the mapping is to check if special keys in <>
form have been recognized (this only works when color is supported).  For
example, when <Esc> is displayed in color, it stands for the escape character.
When it has the same color as the other text, it is five characters.


REMAPPING

The result of a mapping is inspected for other mappings in it.  For example,
the mappings for <F2> above could be shortened to: >

	:map <F2> G<F3>
	:imap <F2> <Esc><F3>
	:map <F3>  oDate: <Esc>:read !date<CR>kJ

For Normal mode <F2> is mapped to go to the last line, and then behave like
<F3> was pressed.  In Insert mode <F2> stops Insert mode with <Esc> and then
also uses <F3>.  Then <F3> is mapped to do the actual work.

Suppose you hardly ever use Ex mode, and want to use the "Q" command to format
text (this was so in old versions of Vim).  This mapping will do it: >

	:map Q gq

But, in rare cases you need to use Ex mode anyway.  Let's map "gQ" to Q, so
that you can still go to Ex mode: >

	:map gQ Q

What happens now is that when you type "gQ" it is mapped to "Q".  So far so
good.  But then "Q" is mapped to "gq", thus typing "gQ" results in "gq", and
you don't get to Ex mode at all.
   To avoid keys to be mapped again, use the ":noremap" command: >

	:noremap gQ Q

Now Vim knows that the "Q" is not to be inspected for mappings that apply to
it.  There is a similar command for every mode:

	:noremap	Normal, Visual and Operator-pending
	:vnoremap	Visual
	:nnoremap	Normal
	:onoremap	Operator-pending
	:noremap!	Insert and Command-line
	:inoremap	Insert
	:cnoremap	Command-line


RECURSIVE MAPPING

When a mapping triggers itself, it will run forever.  This can be used to
repeat an action an unlimited number of times.
   For example, you have a list of files that contain a version number in the
first line.  You edit these files with "vim *.txt".  You are now editing the
first file.  Define this mapping: >

	:map ,, :s/5.1/5.2/<CR>:wnext<CR>,,

Now you type ",,".  This triggers the mapping.  It replaces "5.1" with "5.2"
in the first line.  Then it does a ":wnext" to write the file and edit the
next one.  The mapping ends in ",,".  This triggers the same mapping again,
thus doing the substitution, etc.
   This continues until there is an error.  In this case it could be a file
where the substitute command doesn't find a match for "5.1".  You can then
make a change to insert "5.1" and continue by typing ",," again.  Or the
":wnext" fails, because you are in the last file in the list.
   When a mapping runs into an error halfway, the rest of the mapping is
discarded.  CTRL-C interrupts the mapping (CTRL-Break on MS-Windows).


DELETE A MAPPING

To remove a mapping use the ":unmap" command.  Again, the mode the unmapping
applies to depends on the command used:

	:unmap		Normal, Visual and Operator-pending
	:vunmap		Visual
	:nunmap		Normal
	:ounmap		Operator-pending
	:unmap!		Insert and Command-line
	:iunmap		Insert
	:cunmap		Command-line

There is a trick to define a mapping that works in Normal and Operator-pending
mode, but not in Visual mode.  First define it for all three modes, then
delete it for Visual mode: >

	:map <C-A> /---><CR>
	:vunmap <C-A>

Notice that the five characters "<C-A>" stand for the single key CTRL-A.

To remove all mappings use the |:mapclear| command.  You can guess the
variations for different modes by now.  Be careful with this command, it can't
be undone.


SPECIAL CHARACTERS

The ":map" command can be followed by another command.  A | character
separates the two commands.  This also means that a | character can't be used
inside a map command.  To include one, use <Bar> (five characters).  Example:
>
	:map <F8> :write <Bar> !checkin %:S<CR>

The same problem applies to the ":unmap" command, with the addition that you
have to watch out for trailing white space.  These two commands are different:
>
	:unmap a | unmap b
	:unmap a| unmap b

The first command tries to unmap "a ", with a trailing space.

When using a space inside a mapping, use <Space> (seven characters): >

	:map <Space> W

This makes the spacebar move a blank-separated word forward.

It is not possible to put a comment directly after a mapping, because the "
character is considered to be part of the mapping.  You can use |", this
starts a new, empty command with a comment.  Example: >

	:map <Space> W|     " Use spacebar to move forward a word


MAPPINGS AND ABBREVIATIONS

Abbreviations are a lot like Insert mode mappings.  The arguments are handled
in the same way.  The main difference is the way they are triggered.  An
abbreviation is triggered by typing a non-word character after the word.  A
mapping is triggered when typing the last character.
   Another difference is that the characters you type for an abbreviation are
inserted in the text while you type them.  When the abbreviation is triggered
these characters are deleted and replaced by what the abbreviation produces.
When typing the characters for a mapping, nothing is inserted until you type
the last character that triggers it.  If the 'showcmd' option is set, the
typed characters are displayed in the last line of the Vim window.
   An exception is when a mapping is ambiguous.  Suppose you have done two
mappings: >

	:imap aa foo
	:imap aaa bar

Now, when you type "aa", Vim doesn't know if it should apply the first or the
second mapping.  It waits for another character to be typed.  If it is an "a",
the second mapping is applied and results in "bar".  If it is a space, for
example, the first mapping is applied, resulting in "foo", and then the space
is inserted.


ADDITIONALLY...

The <script> keyword can be used to make a mapping local to a script.  See
|:map-<script>|.

The <buffer> keyword can be used to make a mapping local to a specific buffer.
See |:map-<buffer>|

The <unique> keyword can be used to make defining a new mapping fail when it
already exists.  Otherwise a new mapping simply overwrites the old one.  See
|:map-<unique>|.

To make a key do nothing, map it to <Nop> (five characters).  This will make
the <F7> key do nothing at all: >

	:map <F7> <Nop>| map! <F7> <Nop>

There must be no space after <Nop>.

==============================================================================
*40.2*	Defining command-line commands

The Vim editor enables you to define your own commands.  You execute these
commands just like any other Command-line mode command.
   To define a command, use the ":command" command, as follows: >

	:command DeleteFirst 1delete

Now when you execute the command ":DeleteFirst" Vim executes ":1delete", which
deletes the first line.

	Note:
	User-defined commands must start with a capital letter.  You cannot
	use ":X", ":Next" and ":Print".  The underscore cannot be used!  You
	can use digits, but this is discouraged.

To list the user-defined commands, execute the following command: >

	:command

Just like with the builtin commands, the user defined commands can be
abbreviated.  You need to type just enough to distinguish the command from
another.  Command line completion can be used to get the full name.


NUMBER OF ARGUMENTS

User-defined commands can take a series of arguments.  The number of arguments
must be specified by the -nargs option.  For instance, the example
:DeleteFirst command takes no arguments, so you could have defined it as
follows: >

	:command -nargs=0 DeleteFirst 1delete

However, because zero arguments is the default, you do not need to add
"-nargs=0".  The other values of -nargs are as follows:

	-nargs=0	No arguments
	-nargs=1	One argument
	-nargs=*	Any number of arguments
	-nargs=?	Zero or one argument
	-nargs=+	One or more arguments


USING THE ARGUMENTS

Inside the command definition, the arguments are represented by the
<args> keyword.  For example: >

	:command -nargs=+ Say :echo "<args>"

Now when you type >

	:Say Hello World

Vim echoes "Hello World".  However, if you add a double quote, it won't work.
For example: >

	:Say he said "hello"

To get special characters turned into a string, properly escaped to use as an
expression, use "<q-args>": >

	:command -nargs=+ Say :echo <q-args>

Now the above ":Say" command will result in this to be executed: >

	:echo "he said \"hello\""

The <f-args> keyword contains the same information as the <args> keyword,
except in a format suitable for use as function call arguments.  For example:
>
	:command -nargs=* DoIt :call AFunction(<f-args>)
	:DoIt a b c

Executes the following command: >

	:call AFunction("a", "b", "c")


LINE RANGE

Some commands take a range as their argument.  To tell Vim that you are
defining such a command, you need to specify a -range option.  The values for
this option are as follows:

	-range		Range is allowed; default is the current line.
	-range=%	Range is allowed; default is the whole file.
	-range={count}	Range is allowed; the last number in it is used as a
			single number whose default is {count}.

When a range is specified, the keywords <line1> and <line2> get the values of
the first and last line in the range.  For example, the following command
defines the SaveIt command, which writes out the specified range to the file
"save_file": >

	:command -range=% SaveIt :<line1>,<line2>write! save_file


OTHER OPTIONS

Some of the other options and keywords are as follows:

	-count={number}		The command can take a count whose default is
				{number}.  The resulting count can be used
				through the <count> keyword.
	-bang			You can use a !.  If present, using <bang> will
				result in a !.
	-register		You can specify a register.  (The default is
				the unnamed register.)
				The register specification is available as
				<reg> (a.k.a. <register>).
	-complete={type}	Type of command-line completion used.  See
				|:command-completion| for the list of possible
				values.
	-bar			The command can be followed by | and another
				command, or " and a comment.
	-buffer			The command is only available for the current
				buffer.

Finally, you have the <lt> keyword.  It stands for the character <.  Use this
to escape the special meaning of the <> items mentioned.


REDEFINING AND DELETING

To redefine the same command use the ! argument: >

	:command -nargs=+ Say :echo "<args>"
	:command! -nargs=+ Say :echo <q-args>

To delete a user command use ":delcommand".  It takes a single argument, which
is the name of the command.  Example: >

	:delcommand SaveIt

To delete all the user commands: >

	:comclear

Careful, this can't be undone!

More details about all this in the reference manual: |user-commands|.

==============================================================================
*40.3*	Autocommands

An autocommand is a command that is executed automatically in response to some
event, such as a file being read or written or a buffer change.  Through the
use of autocommands you can train Vim to edit compressed files, for example.
That is used in the |gzip| plugin.
   Autocommands are very powerful.  Use them with care and they will help you
avoid typing many commands.  Use them carelessly and they will cause a lot of
trouble.

Suppose you want to replace a datestamp on the end of a file every time it is
written.  First you define a function: >

	:function DateInsert()
	:  $delete
	:  read !date
	:endfunction

You want this function to be called each time, just before a buffer is written
to a file.  This will make that happen: >

	:autocmd BufWritePre *  call DateInsert()

"BufWritePre" is the event for which this autocommand is triggered: Just
before (pre) writing a buffer to a file.  The "*" is a pattern to match with
the file name.  In this case it matches all files.
   With this command enabled, when you do a ":write", Vim checks for any
matching BufWritePre autocommands and executes them, and then it
performs the ":write".
   The general form of the :autocmd command is as follows: >

	:autocmd [group] {events} {file_pattern} [nested] {command}

The [group] name is optional.  It is used in managing and calling the commands
(more on this later).  The {events} parameter is a list of events (comma
separated) that trigger the command.
   {file_pattern} is a filename, usually with wildcards.  For example, using
"*.txt" makes the autocommand be used for all files whose name end in ".txt".
The optional [nested] flag allows for nesting of autocommands (see below), and
finally, {command} is the command to be executed.


EVENTS

One of the most useful events is BufReadPost.  It is triggered after a new
file is being edited.  It is commonly used to set option values.  For example,
you know that "*.gsm" files are GNU assembly language.  To get the syntax file
right, define this autocommand: >

	:autocmd BufReadPost *.gsm  set filetype=asm

If Vim is able to detect the type of file, it will set the 'filetype' option
for you.  This triggers the Filetype event.  Use this to do something when a
certain type of file is edited.  For example, to load a list of abbreviations
for text files: >

	:autocmd Filetype text  source ~/.vim/abbrevs.vim

When starting to edit a new file, you could make Vim insert a skeleton: >

	:autocmd BufNewFile *.[ch]  0read ~/skeletons/skel.c

See |autocmd-events| for a complete list of events.


PATTERNS

The {file_pattern} argument can actually be a comma-separated list of file
patterns.  For example: "*.c,*.h" matches files ending in ".c" and ".h".
   The usual file wildcards can be used.  Here is a summary of the most often
used ones:

	*		Match any character any number of times
	?		Match any character once
	[abc]		Match the character a, b or c
	.		Matches a dot
	a{b,c}		Matches "ab" and "ac"

When the pattern includes a slash (/) Vim will compare directory names.
Without the slash only the last part of a file name is used.  For example,
"*.txt" matches "/home/biep/readme.txt".  The pattern "/home/biep/*" would
also match it.  But "home/foo/*.txt" wouldn't.
   When including a slash, Vim matches the pattern against both the full path
of the file ("/home/biep/readme.txt") and the relative path (e.g.,
"biep/readme.txt").

	Note:
	When working on a system that uses a backslash as file separator, such
	as MS-Windows, you still use forward slashes in autocommands.  This
	makes it easier to write the pattern, since a backslash has a special
	meaning.  It also makes the autocommands portable.


DELETING

To delete an autocommand, use the same command as what it was defined with,
but leave out the {command} at the end and use a !.  Example: >

	:autocmd! FileWritePre *

This will delete all autocommands for the "FileWritePre" event that use the
"*" pattern.


LISTING

To list all the currently defined autocommands, use this: >

	:autocmd

The list can be very long, especially when filetype detection is used.  To
list only part of the commands, specify the group, event and/or pattern.  For
example, to list all BufNewFile autocommands: >

	:autocmd BufNewFile

To list all autocommands for the pattern "*.c": >

	:autocmd * *.c

Using "*" for the event will list all the events.  To list all autocommands
for the cprograms group: >

	:autocmd cprograms


GROUPS

The {group} item, used when defining an autocommand, groups related autocommands
together.  This can be used to delete all the autocommands in a certain group,
for example.
   When defining several autocommands for a certain group, use the ":augroup"
command.  For example, let's define autocommands for C programs: >

	:augroup cprograms
	:  autocmd BufReadPost *.c,*.h :set sw=4 sts=4
	:  autocmd BufReadPost *.cpp   :set sw=3 sts=3
	:augroup END

This will do the same as: >

	:autocmd cprograms BufReadPost *.c,*.h :set sw=4 sts=4
	:autocmd cprograms BufReadPost *.cpp   :set sw=3 sts=3

To delete all autocommands in the "cprograms" group: >

	:autocmd! cprograms


NESTING

Generally, commands executed as the result of an autocommand event will not
trigger any new events.  If you read a file in response to a FileChangedShell
event, it will not trigger the autocommands that would set the syntax, for
example.  To make the events triggered, add the "nested" argument: >

	:autocmd FileChangedShell * nested  edit


EXECUTING AUTOCOMMANDS

It is possible to trigger an autocommand by pretending an event has occurred.
This is useful to have one autocommand trigger another one.  Example: >

	:autocmd BufReadPost *.new  execute "doautocmd BufReadPost " . expand("<afile>:r")

This defines an autocommand that is triggered when a new file has been edited.
The file name must end in ".new".  The ":execute" command uses expression
evaluation to form a new command and execute it.  When editing the file
"tryout.c.new" the executed command will be: >

	:doautocmd BufReadPost tryout.c

The expand() function takes the "<afile>" argument, which stands for the file
name the autocommand was executed for, and takes the root of the file name
with ":r".

":doautocmd" executes on the current buffer.  The ":doautoall" command works
like "doautocmd" except it executes on all the buffers.


USING NORMAL MODE COMMANDS

The commands executed by an autocommand are Command-line commands.  If you
want to use a Normal mode command, the ":normal" command can be used.
Example: >

	:autocmd BufReadPost *.log normal G

This will make the cursor jump to the last line of *.log files when you start
to edit it.
   Using the ":normal" command is a bit tricky.  First of all, make sure its
argument is a complete command, including all the arguments.  When you use "i"
to go to Insert mode, there must also be a <Esc> to leave Insert mode again.
If you use a "/" to start a search pattern, there must be a <CR> to execute
it.
   The ":normal" command uses all the text after it as commands.  Thus there
can be no | and another command following.  To work around this, put the
":normal" command inside an ":execute" command.  This also makes it possible
to pass unprintable characters in a convenient way.  Example: >

	:autocmd BufReadPost *.chg execute "normal ONew entry:\<Esc>" |
		\ 1read !date

This also shows the use of a backslash to break a long command into more
lines.  This can be used in Vim scripts (not at the command line).

When you want the autocommand do something complicated, which involves jumping
around in the file and then returning to the original position, you may want
to restore the view on the file.  See |restore-position| for an example.


IGNORING EVENTS

At times, you will not want to trigger an autocommand.  The 'eventignore'
option contains a list of events that will be totally ignored.  For example,
the following causes events for entering and leaving a window to be ignored: >

	:set eventignore=WinEnter,WinLeave

To ignore all events, use the following command: >

	:set eventignore=all

To set it back to the normal behavior, make 'eventignore' empty: >

	:set eventignore=

==============================================================================

Next chapter: |usr_41.txt|  Write a Vim script

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Zj�	��K
�K
vim80/doc/version7.txtnu�[���*version7.txt*  For Vim version 8.0.  Last change: 2016 Jul 17


		  VIM REFERENCE MANUAL    by Bram Moolenaar

					*vim7* *version-7.0* *version7.0*
Welcome to Vim 7!  A large number of features has been added.  This file
mentions all the new items, changes to existing features and bug fixes
since Vim 6.x.  Use this command to see the version you are using: >
	:version

See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0.
See |version4.txt| for differences between Vim 3.x and Vim 4.x.
See |version5.txt| for differences between Vim 4.x and Vim 5.x.
See |version6.txt| for differences between Vim 5.x and Vim 6.x.

INCOMPATIBLE CHANGES			|incompatible-7|

NEW FEATURES				|new-7|

Vim script enhancements			|new-vim-script|
Spell checking				|new-spell|
Omni completion				|new-omni-completion|
MzScheme interface			|new-MzScheme|
Printing multi-byte text		|new-print-multi-byte|
Tab pages				|new-tab-pages|
Undo branches				|new-undo-branches|
Extended Unicode support		|new-more-unicode|
More highlighting			|new-more-highlighting|
Translated manual pages			|new-manpage-trans|
Internal grep				|new-vimgrep|
Scroll back in messages			|new-scroll-back|
Cursor past end of the line		|new-onemore|
POSIX compatibility			|new-posix|
Debugger support			|new-debug-support|
Remote file explorer			|new-netrw-explore|
Define an operator			|new-define-operator|
Mapping to an expression		|new-map-expression|
Visual and Select mode mappings		|new-map-select|
Location list				|new-location-list|
Various new items			|new-items-7|

IMPROVEMENTS				|improvements-7|

COMPILE TIME CHANGES			|compile-changes-7|

BUG FIXES				|bug-fixes-7|

VERSION 7.1			|version-7.1|
Changed					|changed-7.1|
Added					|added-7.1|
Fixed					|fixed-7.1|

VERSION 7.2			|version-7.2|
Changed					|changed-7.2|
Added					|added-7.2|
Fixed					|fixed-7.2|

VERSION 7.3			|version-7.3|

Persistent undo				|new-persistent-undo|
More encryption				|new-more-encryption|
Conceal text				|new-conceal|
Lua interface				|new-lua|
Python3 interface			|new-python3|

Changed					|changed-7.3|
Added					|added-7.3|
Fixed					|fixed-7.3|

VERSION 7.4			|version-7.4|
New regexp engine			|new-regexp-engine|
Better Python interface			|better-python-interface|
Changed					|changed-7.4|
Added					|added-7.4|
Fixed					|fixed-7.4|


==============================================================================
INCOMPATIBLE CHANGES				*incompatible-7*

These changes are incompatible with previous releases.  Check this list if you
run into a problem when upgrading from Vim 6.x to 7.0.

A ":write file" command no longer resets the 'modified' flag of the buffer,
unless the '+' flag is in 'cpoptions' |cpo-+|.  This was illogical, since the
buffer is still modified compared to the original file.  And when undoing
all changes the file would actually be marked modified.  It does mean that
":quit" fails now.

":helpgrep" now uses a help window to display a match.

In an argument list double quotes could be used to include spaces in a file
name.  This caused a difference between ":edit" and ":next" for escaping
double quotes and it is incompatible with some versions of Vi.
	Command			Vim 6.x	file name	Vim 7.x file name ~
	:edit foo\"888		foo"888			foo"888
	:next foo\"888		foo888			foo"888
	:next a\"b c\"d		ab cd			a"b  and  c"d

In a |literal-string| a single quote can be doubled to get one.
":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
results in "a'b".

When overwriting a file with ":w! fname" there was no warning for when "fname"
was being edited by another Vim.  Vim now gives an error message |E768|.

The support for Mac OS 9 has been removed.

Files ending in .tex now have 'filetype' set to "context", "plaintex", or
"tex".  |ft-tex-plugin|


Minor incompatibilities:

For filetype detection: For many types, use */.dir/filename instead of
~/.dir/filename, so that it also works for other user's files.

For quite a few filetypes the indent settings have been moved from the
filetype plugin to the indent plugin.  If you used: >
	:filetype plugin on
Then some indent settings may be missing.  You need to use: >
	:filetype plugin indent on

":0verbose" now sets 'verbose' to zero instead of one.

Removed the old and incomplete "VimBuddy" code.

Buffers without a name report "No Name" instead of "No File".  It was
confusing for buffers with a name and 'buftype' set to "nofile".

When ":file xxx" is used in a buffer without a name, the alternate file name
isn't set.  This avoids creating buffers without a name, they are not useful.

The "2html.vim" script now converts closed folds to HTML.  This means the HTML
looks like it's displayed, with the same folds open and closed.  Use "zR", or
"let html_ignore_folding=1", if no folds should appear in the HTML. (partly by
Carl Osterwisch)
Diff mode is now also converted to HTML as it is displayed.

Win32: The effect of the <F10> key depended on 'winaltkeys'.  Now it depends
on whether <F10> has been mapped or not.  This allows mapping <F10> without
changing 'winaltkeys'.

When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
is illogical.  Now it becomes "9".  The leading zero(s) is(are) removed to
avoid the number becoming octal after incrementing "009" to "010".

When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
now includes "default" before "latin1".  This means that for files with 8-bit
encodings the default is to use the encoding specified by the environment, if
possible.  Previously latin1 would always be used, which is wrong in a
non-latin1 environment, such as Russian.

Previously Vim would exit when there are two windows, both of them displaying
a help file, and using ":quit".  Now only the window is closed.

"-w {scriptout}" only works when {scriptout} doesn't start with a digit.
Otherwise it's used to set the 'window' option.

Previously <Home> and <xHome> could be mapped separately.  This had the
disadvantage that all mappings (with modifiers) had to be duplicated, since
you can't be sure what the keyboard generates.  Now all <xHome> are internally
translated to <Home>, both for the keys and for mappings.  Also for <xEnd>,
<xF1>, etc.

":put" now leaves the cursor on the last inserted line.

When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc"
file exists.

When making a string upper-case with "vlllU" or similar then the German sharp
s is replaced with "SS".  This does not happen with "~" to avoid backwards
compatibility problems and because "SS" can't be changed back to a sharp s.

"gd" previously found the very first occurrence of a variable in a function,
that could be the function argument without type.  Now it finds the position
where the type is given.

The line continuation in functions was not taken into account, line numbers in
errors were logical lines, not lines in the sourced file.  That made it
difficult to locate errors.  Now the line number in the sourced file is
reported, relative to the function start.  This also means that line numbers
for ":breakadd func" are different.

When defining a user command with |:command| the special items could be
abbreviated.  This caused unexpected behavior, such as <li> being recognized
as <line1>.  The items can no longer be abbreviated.

When executing a FileChangedRO autocommand it is no longer allowed to switch
to another buffer or edit another file.  This is to prevent crashes (the event
is triggered deep down in the code where changing buffers is not anticipated).
It is still possible to reload the buffer.

At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is
set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous
messages.  Thus they are no longer used as typeahead.

==============================================================================
NEW FEATURES						*new-7*

Vim script enhancements					*new-vim-script*
-----------------------

In Vim scripts the following types have been added:

	|List|		ordered list of items
	|Dictionary|	associative array of items
	|Funcref|	reference to a function

Many functions and commands have been added to support the new types.

The |string()| function can be used to get a string representation of a
variable.  Works for Numbers, Strings and composites of them.  Then |eval()|
can be used to turn the string back into the variable value.

The |:let| command can now use "+=", "-=" and ".=": >
	:let var += expr	" works like :let var = var + expr
	:let var -= expr	" works like :let var = var - expr
	:let var .= string	" works like :let var = var . string

With the |:profile| command you can find out where your function or script
is wasting time.

In the Python interface vim.eval() also handles Dictionaries and Lists.
|python-eval| (G. Sumner Hayes)

The |getscript| plugin was added as a convenient way to update scripts from
www.vim.org automatically. (Charles Campbell)

The |vimball| plugin was added as a convenient way to distribute a set of
files for a plugin (plugin file, autoload script, documentation). (Charles
Campbell)


Spell checking						*new-spell*
--------------

Spell checking has been integrated in Vim.  There were a few implementations
with scripts, but they were slow and/or required an external program.

The 'spell'	   option is used to switch spell checking on or off
The 'spelllang'    option is used to specify the accepted language(s)
The 'spellfile'    option specifies where new words are added
The 'spellsuggest' option specifies the methods used for making suggestions

The |]s| and |[s| commands can be used to move to the next or previous error
The |zg| and |zw| commands can be used to add good and wrong words
The |z=|	  command can be used to list suggestions and correct the word
The |:mkspell|    command is used to generate a Vim spell file from word lists

The "undercurl" highlighting attribute was added to nicely point out spelling
mistakes in the GUI (based on patch from Marcin Dalecki).
The "guisp" color can be used to give it a color different from foreground and
background.
The number of possible different highlight attributes was raised from about
220 to over 30000.  This allows for the attributes of spelling to be combined
with syntax highlighting attributes.  This is also used for syntax
highlighting and marking the Visual area.

Much more info here: |spell|.


Omni completion					*new-omni-completion*
---------------

This could also be called "intellisense", but that is a trademark.  It is a
smart kind of completion.  The text in front of the cursor is inspected to
figure out what could be following.  This may suggest struct and class
members, system functions, etc.

Use CTRL-X CTRL-O in Insert mode to start the completion.  |i_CTRL-X_CTRL-O|

The 'omnifunc' option is set by filetype plugins to define the function that
figures out the completion.

Currently supported languages:
	C					|ft-c-omni|
	(X)HTML with CSS			|ft-html-omni|
	JavaScript				|ft-javascript-omni|
	PHP					|ft-php-omni|
	Python
	Ruby					|ft-ruby-omni|
	SQL					|ft-sql-omni|
	XML					|ft-xml-omni|
	any language with syntax highlighting	|ft-syntax-omni|

You can add your own omni completion scripts.

When the 'completeopt' option contains "menu" then matches for Insert mode
completion are displayed in a (rather primitive) popup menu.


MzScheme interface					*new-MzScheme*
------------------

The MzScheme interpreter is supported. |MzScheme|

The |:mzscheme| command can be used to execute MzScheme commands
The |:mzfile|   command can be used to execute an MzScheme script file

This depends on Vim being compiled with the |+mzscheme| feature.


Printing multi-byte text				*new-print-multi-byte*
------------------------

The |:hardcopy| command now supports printing multi-byte characters when using
PostScript.

The 'printmbcharset' and 'printmbfont' options are used for this.
Also see |postscript-cjk-printing|.  (Mike Williams)


Tab pages						*new-tab-pages*
---------

A tab page is a page with one or more windows with a label (aka tab) at the top.
By clicking on the label you can quickly switch between the tab pages.  And
with the keyboard, using the |gt| (Goto Tab) command.  This is a convenient
way to work with many windows.

To start Vim with each file argument in a separate tab page use the |-p|
argument.  The maximum number of pages can be set with 'tabpagemax'.

The line with tab labels is either made with plain text and highlighting or
with a GUI mechanism.  The GUI labels look better but are only available on a
few systems.  The line can be customized with 'tabline', 'guitablabel' and
'guitabtooltip'.  Whether it is displayed is set with 'showtabline'.  Whether
to use the GUI labels is set with the "e" flag in 'guioptions'.

The |:tab| command modifier can be used to have most commands that open a new
window open a new tab page instead.

The |--remote-tab| argument can be used to edit a file in a new tab page in an
already running Vim server.

Variables starting with "t:" are local to a tab page.

More info here: |tabpage|
Most of the GUI stuff was implemented by Yegappan Lakshmanan.


Undo branches						*new-undo-branches*
-------------

Previously there was only one line of undo-redo.  If, after undoing a number
of changes, a new change was made all the undone changes were lost.  This
could lead to accidentally losing work.

Vim now makes an undo branch in this situation.  Thus you can go back to the
text after any change, even if they were undone.  So long as you do not run
into 'undolevels', when undo information is freed up to limit the memory used.

To be able to navigate the undo branches each change is numbered sequentially.
The commands |g-| and |:earlier| go back in time, to older changes.  The
commands |g+| and |:later| go forward in time, to newer changes.

The changes are also timestamped.  Use ":earlier 10m" to go to the text as it
was about ten minutes earlier.

The |:undolist| command can be used to get an idea of which undo branches
exist.  The |:undo| command now takes an argument to directly jump to a
specific position in this list.  The |changenr()| function can be used to
obtain the change number.

There is no graphical display of the tree with changes, navigation can be
quite confusing.


Extended Unicode support				*new-more-unicode*
------------------------

Previously only two combining characters were displayed.  The limit is now
raised to 6.  This can be set with the 'maxcombine' option.  The default is
still 2.

|ga| now shows all combining characters, not just the first two.

Previously only 16 bit Unicode characters were supported for displaying.  Now
the full 32 bit character set can be used.  Unless manually disabled at
compile time to save a bit of memory.

For pattern matching it is now possible to search for individual composing
characters. |patterns-composing|

The |8g8| command searches for an illegal UTF-8 byte sequence.


More highlighting				*new-more-highlighting*
-----------------

Highlighting matching parens:

When moving the cursor through the text and it is on a paren, then the
matching paren can be highlighted.  This uses the new |CursorMoved|
autocommand event.

This means some commands are executed every time you move the cursor.  If this
slows you down too much switch it off with: >
	:NoMatchParen

See |matchparen| for more information.

The plugin uses the |:match| command.  It now supports three match patterns.
The plugin uses the third one.  The first one is for the user and the second
one can be used by another plugin.

Highlighting the cursor line and column:

The 'cursorline' and 'cursorcolumn' options have been added.  These highlight
the screen line and screen column of the cursor.  This makes the cursor
position easier to spot.  'cursorcolumn' is also useful to align text.  This
may make screen updating quite slow.  The CursorColumn and CursorLine
highlight groups allow changing the colors used.  |hl-CursorColumn|
|hl-CursorLine|

The number of possible different highlight attributes was raised from about
220 to over 30000.  This allows for the attributes of spelling to be combined
with syntax highlighting attributes.  This is also used for syntax
highlighting, marking the Visual area, CursorColumn, etc.


Translated manual pages					*new-manpage-trans*
-----------------------

The manual page of Vim and associated programs is now also available in
several other languages.

French  - translated by David Blanchet
Italian - translated by Antonio Colombo
Russian - translated by Vassily Ragosin
Polish  - translated by Mikolaj Machowski

The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
.../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/.  There appears to be no
standard for what encoding goes in the "it" directory, the 8-bit encoded file
is used there as a best guess.
Other languages are installed in similar places.
The translated pages are not automatically installed when Vim was configured
with "--disable-nls", but "make install-languages install-tool-languages" will
do it anyway.


Internal grep						*new-vimgrep*
-------------

The ":vimgrep" command can be used to search for a pattern in a list of files.
This is like the ":grep" command, but no external program is used.  Besides
better portability, handling of different file encodings and using multi-line
patterns, this also allows grepping in compressed and remote files.
|:vimgrep|.

If you want to use the search results in a script you can use the
|getqflist()| function.

To grep files in various directories the "**" pattern can be used.  It expands
into an arbitrary depth of directories.  "**" can be used in all places where
file names are expanded, thus also with |:next| and |:args|.


Scroll back in messages					*new-scroll-back*
-----------------------

When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The
'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages.
This is especially useful for commands such as ":syntax", ":autocommand" and
":highlight".  This is implemented in a generic way thus it works for all
commands and highlighting is kept.  Only works when the 'more' option is set.
Previously it only partly worked for ":clist".

The |g<| command can be used to see the last page of messages after you have
hit <Enter> at the |hit-enter-prompt|.  Then you can scroll further back.


Cursor past end of the line				*new-onemore*
---------------------------

When the 'virtualedit' option contains "onemore" the cursor can move just past
the end of the line.  As if it's on top of the line break.

This makes some commands more consistent.  Previously the cursor was always
past the end of the line if the line was empty.  But it is far from Vi
compatible.  It may also break some plugins or Vim scripts.  Use with care!

The patch was provided by Mattias Flodin.


POSIX compatibility					*new-posix*
-------------------

The POSIX test suite was used to verify POSIX compatibility.  A number of
problems have been fixed to make Vim more POSIX compatible.  Some of them
conflict with traditional Vi or expected behavior.  The $VIM_POSIX environment
variable can be set to get POSIX compatibility.  See |posix|.

Items that were fixed for both Vi and POSIX compatibility:
- repeating "R" with a count only overwrites text once; added the 'X' flag to
  'cpoptions' |cpo-X|
- a vertical movement command that moves to a non-existing line fails; added
  the '-' flag to 'cpoptions' |cpo--|
- when preserving a file and doing ":q!" the file can be recovered; added the
  '&' flag to 'cpoptions' |cpo-&|
- The 'window' option is partly implemented.  It specifies how much CTRL-F and
  CTRL-B scroll when there is one window.  The "-w {number}" argument is now
  accepted.  "-w {scriptout}" only works when {scriptout} doesn't start with a
  digit.
- Allow "-c{command}" argument, no space between "-c" and {command}.
- When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in
  'cpoptions'.
- Allow 'l' and '#' flags for ":list", ":print" and ":number".
- Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified.
- In Ex mode with an empty buffer ":read file" doesn't keep an empty line
  above or below the new lines.
- Remove a backslash before a NL for the ":global" command.
- When ":append", ":insert" or ":change" is used with ":global", get the
  inserted lines from the command.  Can use backslash-NL to separate lines.
- Can use ":global /pat/ visual" to execute Normal mode commands at each
  matched line.  Use "Q" to continue and go to the next line.
- The |:open| command has been partially implemented.  It stops Ex mode, but
  redraws the whole screen, not just one line as open mode is supposed to do.
- Support using a pipe to read the output from and write input to an external
  command.  Added the 'shelltemp' option and has("filterpipe").
- In ex silent mode the ":set" command output is displayed.
- The ":@@" and ":**" give an error message when no register was used before.
- The search pattern "[]-`]" matches ']', '^', '_' and '`'.
- Autoindent for ":insert" is using the line below the insert.
- Autoindent for ":change" is using the first changed line.
- Editing Ex command lines is not done in cooked mode, because CTRL-D and
  CTRL-T cannot be handled then.
- In Ex mode, "1,3" prints three lines.  "%" prints all lines.
- In Ex mode "undo" would undo all changes since Ex mode was started.
- Implemented the 'prompt' option.


Debugger support					*new-debug-support*
----------------

The 'balloonexpr' option has been added.  This is a generic way to implement
balloon functionality.  You can use it to show info for the word under the
mouse pointer.


Remote file explorer					*new-netrw-explore*
--------------------

The netrw plugin now also supports viewing a directory, when "scp://" is used.
Deleting and renaming files is possible.

To avoid duplicating a lot of code, the previous file explorer plugin has been
integrated in the netrw plugin.  This means browsing local and remote files
works the same way.

":browse edit" and ":browse split" use the netrw plugin when it's available
and a GUI dialog is not possible.

The netrw plugin is maintained by Charles Campbell.


Define an operator					*new-define-operator*
------------------

Previously it was not possible to define your own operator; a command that is
followed by a {motion}.  Vim 7 introduces the 'operatorfunc' option and the
|g@| operator.  This makes it possible to define a mapping that works like an
operator.  The actual work is then done by a function, which is invoked
through the |g@| operator.

See |:map-operator| for the explanation and an example.


Mapping to an expression				*new-map-expression*
------------------------

The {rhs} argument of a mapping can be an expression.  That means the
resulting characters can depend on the context.  Example: >
	:inoremap <expr> . InsertDot()
Here the dot will be mapped to whatever InsertDot() returns.

This also works for abbreviations.  See |:map-<expr>| for the details.


Visual and Select mode mappings				*new-map-select*
-------------------------------

Previously Visual mode mappings applied both to Visual and Select mode.  With
a trick to have the mappings work in Select mode like they would in Visual
mode.

Commands have been added to define mappings for Visual and Select mode
separately: |:xmap| and |:smap|.  With the associated "noremap" and "unmap"
commands.

The same is done for menus: |:xmenu|, |:smenu|, etc.


Location list						*new-location-list*
-------------

The support for a per-window quickfix list (location list) is added. The
location list can be displayed in a location window (similar to the quickfix
window).  You can open more than one location list window.  A set of commands
similar to the quickfix commands are added to browse the location list.
(Yegappan Lakshmanan)


Various new items					*new-items-7*
-----------------

Normal mode commands: ~

a", a' and a`		New text objects to select quoted strings. |a'|
i", i' and i`		(Taro Muraoka)

CTRL-W <Enter>		In the quickfix window: opens a new window to show the
			location of the error under the cursor.

|at| and |it| text objects select a block of text between HTML or XML tags.

<A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
<A-RightMouse> ('mousemodel' "extend")
			Make a blockwise selection. |<A-LeftMouse>|

gF			Start editing the filename under the cursor and jump
			to the line number following the file name.
			(Yegappan Lakshmanan)

CTRL-W F		Start editing the filename under the cursor in a new
			window and jump to the line number following the file
			name.  (Yegappan Lakshmanan)

Insert mode commands: ~

CTRL-\ CTRL-O		Execute a Normal mode command.  Like CTRL-O but
			without moving the cursor. |i_CTRL-\_CTRL-O|

Options: ~

'balloonexpr'		expression for text to show in evaluation balloon
'completefunc'		The name of the function used for user-specified
			Insert mode completion.  CTRL-X CTRL-U can be used in
			Insert mode to do any kind of completion.  (Taro
			Muraoka)
'completeopt'		Enable popup menu and other settings for Insert mode
			completion.
'cursorcolumn'		highlight column of the cursor
'cursorline'		highlight line of the cursor
'formatexpr'		expression for formatting text with |gq| and when text
			goes over 'textwidth' in Insert mode.
'formatlistpat'		pattern to recognize a numbered list for formatting.
			(idea by Hugo Haas)
'fsync'			Whether fsync() is called after writing a file.
			(Ciaran McCreesh)
'guitablabel'		expression for text to display in GUI tab page label
'guitabtooltip'		expression for text to display in GUI tab page tooltip
'macatsui'		Mac: use ATSUI text display functions
'maxcombine'		maximum number of combining characters displayed
'maxmempattern'		maximum amount of memory to use for pattern matching
'mkspellmem'		parameters for |:mkspell| memory use
'mzquantum'		Time in msec to schedule MzScheme threads.
'numberwidth'		Minimal width of the space used for the 'number' and
			'relativenumber' option. (Emmanuel Renieris)
'omnifunc'		The name of the function used for omni completion.
'operatorfunc'		function to be called for |g@| operator
'printmbcharset'	CJK character set to be used for :hardcopy
'printmbfont'		font names to be used for CJK output of :hardcopy
'pumheight'		maximum number of items to show in the popup menu
'quoteescape'		Characters used to escape quotes inside a string.
			Used for the a", a' and a` text objects. |a'|
'shelltemp'		whether to use a temp file or pipes for shell commands
'showtabline'		whether to show the tab pages line
'spell'			switch spell checking on/off
'spellcapcheck'		pattern to locate the end of a sentence
'spellfile'		file where good and wrong words are added
'spelllang'		languages to check spelling for
'spellsuggest'		methods for spell suggestions
'synmaxcol'		maximum column to look for syntax items; avoids very
			slow redrawing when there are very long lines
'tabline'		expression for text to display in the tab pages line
'tabpagemax'		maximum number of tab pages to open for |-p|
'verbosefile'		Log messages in a file.
'wildoptions'		"tagfile" value enables listing the file name of
			matching tags for CTRL-D command line completion.
			(based on an idea from Yegappan Lakshmanan)
'winfixwidth'		window with fixed width, similar to 'winfixheight'


Ex commands: ~

Win32: The ":winpos" command now also works in the console. (Vipin Aravind)

|:startreplace|		Start Replace mode. (Charles Campbell)
|:startgreplace|	Start Virtual Replace mode.

|:0file|		Removes the name of the buffer. (Charles Campbell)

|:diffoff|		Switch off diff mode in the current window or in all
			windows.

|:delmarks|		Delete marks.

|:exusage|		Help for Ex commands (Nvi command).
|:viusage|		Help for Vi commands (Nvi command).

|:sort|			Sort lines in the buffer without depending on an
			external command. (partly by Bryce Wagner)

|:vimgrep|		Internal grep command, search for a pattern in files.
|:vimgrepadd|		Like |:vimgrep| but don't make a new list.

|:caddfile|		Add error messages to an existing quickfix list
			(Yegappan Lakshmanan).
|:cbuffer|		Read error lines from a buffer. (partly by Yegappan
			Lakshmanan)
|:cgetbuffer|		Create a quickfix list from a buffer but don't jump to
			the first error.
|:caddbuffer|		Add errors from the current buffer to the quickfix
			list.
|:cexpr|		Read error messages from a Vim expression (Yegappan
			Lakshmanan).
|:caddexpr|		Add error messages from a Vim expression to an
			existing quickfix list. (Yegappan Lakshmanan).
|:cgetexpr|		Create a quickfix list from a Vim expression, but
			don't jump to the first error. (Yegappan Lakshmanan).

|:lfile|		Like |:cfile| but use the location list.
|:lgetfile|		Like |:cgetfile| but use the location list.
|:laddfile|		Like |:caddfile| but use the location list.
|:lbuffer|		Like |:cbuffer| but use the location list.
|:lgetbuffer|		Like |:cgetbuffer| but use the location list.
|:laddbuffer|		Like |:caddbuffer| but use the location list.
|:lexpr|		Like |:cexpr| but use the location list.
|:lgetexpr|		Like |:cgetexpr| but use the location list.
|:laddexpr|		Like |:caddexpr| but use the location list.
|:ll|			Like |:cc| but use the location list.
|:llist|		Like |:clist| but use the location list.
|:lnext|		Like |:cnext| but use the location list.
|:lprevious|		Like |:cprevious| but use the location list.
|:lNext|		Like |:cNext| but use the location list.
|:lfirst|		Like |:cfirst| but use the location list.
|:lrewind|		Like |:crewind| but use the location list.
|:llast|		Like |:clast| but use the location list.
|:lnfile|		Like |:cnfile| but use the location list.
|:lpfile|		Like |:cpfile| but use the location list.
|:lNfile|		Like |:cNfile| but use the location list.
|:lolder|		Like |:colder| but use the location list.
|:lnewer|		Like |:cnewer| but use the location list.
|:lwindow|		Like |:cwindow| but use the location list.
|:lopen|		Like |:copen| but use the location list.
|:lclose|		Like |:cclose| but use the location list.
|:lmake|		Like |:make| but use the location list.
|:lgrep|		Like |:grep| but use the location list.
|:lgrepadd|		Like |:grepadd| but use the location list.
|:lvimgrep|		Like |:vimgrep| but use the location list.
|:lvimgrepadd|		Like |:vimgrepadd| but use the location list.
|:lhelpgrep|		Like |:helpgrep| but use the location list.
|:lcscope|		Like |:cscope| but use the location list.
|:ltag|			Jump to a tag and add matching tags to a location list.

|:undojoin|		Join a change with the previous undo block.
|:undolist|		List the leafs of the undo tree.

|:earlier|		Go back in time for changes in the text.
|:later|		Go forward in time for changes in the text.

|:for|			Loop over a |List|.
|:endfor|

|:lockvar|		Lock a variable, prevents it from being changed.
|:unlockvar|		Unlock a locked variable.

|:mkspell|		Create a Vim spell file.
|:spellgood|		Add a word to the list of good words.
|:spellwrong|		Add a word to the list of bad words
|:spelldump|		Dump list of good words.
|:spellinfo|		Show information about the spell files used.
|:spellrepall|		Repeat a spelling correction for the whole buffer.
|:spellundo|		Remove a word from list of good and bad words.

|:mzscheme|		Execute MzScheme commands.
|:mzfile|		Execute an MzScheme script file.

|:nbkey|		Pass a key to NetBeans for processing.

|:profile|		Commands for Vim script profiling.
|:profdel|		Stop profiling for specified items.

|:smap|			Select mode mapping.
|:smapclear|
|:snoremap|
|:sunmap|

|:xmap|			Visual mode mapping, not used for Select mode.
|:xmapclear|
|:xnoremap|
|:xunmap|

|:smenu|		Select mode menu.
|:snoremenu|
|:sunmenu|

|:xmenu|		Visual mode menu, not used for Select mode.
|:xnoremenu|
|:xunmenu|

|:tabclose|		Close the current tab page.
|:tabdo|		Perform a command in every tab page.
|:tabedit|		Edit a file in a new tab page.
|:tabnew|		Open a new tab page.
|:tabfind|		Search for a file and open it in a new tab page.
|:tabnext|		Go to the next tab page.
|:tabprevious|		Go to the previous tab page.
|:tabNext|		Go to the previous tab page.
|:tabfirst|		Go to the first tab page.
|:tabrewind|		Go to the first tab page.
|:tablast|		Go to the last tab page.
|:tabmove|		Move the current tab page elsewhere.
|:tabonly|		Close all other tab pages.
|:tabs|			List the tab pages and the windows they contain.

Ex command modifiers: ~

|:keepalt|		Do not change the alternate file.

|:noautocmd|		Do not trigger autocommand events.

|:sandbox|		Execute a command in the sandbox.

|:tab|			When opening a new window create a new tab page.


Ex command arguments: ~

|++bad|			Specify what happens with characters that can't be
			converted and illegal bytes. (code example by Yasuhiro
			Matsumoto)
			Also, when a conversion error occurs or illegal bytes
			are found include the line number in the error
			message.


New and extended functions: ~

|add()|			append an item to a List
|append()|		append List of lines to the buffer
|argv()|		without an argument return the whole argument list
|browsedir()|		dialog to select a directory
|bufnr()|		takes an extra argument: create buffer
|byteidx()|		index of a character (Ilya Sher)
|call()|		call a function with List as arguments
|changenr()|		number of current change
|complete()|		set matches for Insert mode completion
|complete_add()|	add match for 'completefunc'
|complete_check()|	check for key pressed, for 'completefunc'
|copy()|		make a shallow copy of a List or Dictionary
|count()|		count nr of times a value is in a List or Dictionary
|cursor()|		also accepts an offset for 'virtualedit', and
			the first argument can be a list: [lnum, col, off]
|deepcopy()|		make a full copy of a List or Dictionary
|diff_filler()|		returns number of filler lines above line {lnum}.
|diff_hlID()|		returns the highlight ID for diff mode
|empty()|		check if List or Dictionary is empty
|eval()|		evaluate {string} and return the result
|extend()|		append one List to another or add items from one
			Dictionary to another
|feedkeys()|		put characters in the typeahead buffer
|filter()|		remove selected items from a List or Dictionary
|finddir()|		find a directory in 'path'
|findfile()|		find a file in 'path' (Johannes Zellner)
|foldtextresult()|	the text displayed for a closed fold at line "lnum"
|function()|		make a Funcref out of a function name
|garbagecollect()|	cleanup unused |Lists| and |Dictionaries| with circular
			references
|get()|			get an item from a List or Dictionary
|getbufline()|		get a list of lines from a specified buffer
			(Yegappan Lakshmanan)
|getcmdtype()|		return the current command-line type
			(Yegappan Lakshmanan)
|getfontname()|		get actual font name being used
|getfperm()|		get file permission string (Nikolai Weibull)
|getftype()|		get type of file (Nikolai Weibull)
|getline()|		with second argument: get List with buffer lines
|getloclist()|		list of location list items (Yegappan Lakshmanan)
|getpos()|		return a list with the position of cursor, mark, etc.
|getqflist()|		list of quickfix errors (Yegappan Lakshmanan)
|getreg()|		get contents of a register
|gettabwinvar()|	get variable from window in specified tab page.
|has_key()|		check whether a key appears in a Dictionary
|haslocaldir()|		check if current window used |:lcd|
|hasmapto()|		check for a mapping to a string
|index()|		index of item in List
|inputlist()|		prompt the user to make a selection from a list
|insert()|		insert an item somewhere in a List
|islocked()|		check if a variable is locked
|items()|		get List of Dictionary key-value pairs
|join()|		join List items into a String
|keys()|		get List of Dictionary keys
|len()|			number of items in a List or Dictionary
|map()|			change each List or Dictionary item
|maparg()|		extra argument: use abbreviation
|mapcheck()|		extra argument: use abbreviation
|match()|		extra argument: count
|matcharg()|		return arguments of |:match| command
|matchend()|		extra argument: count
|matchlist()|		list with match and submatches of a pattern in a string
|matchstr()|		extra argument: count
|max()|			maximum value in a List or Dictionary
|min()|			minimum value in a List or Dictionary
|mkdir()|		create a directory
|pathshorten()|		reduce directory names to a single character
|printf()|		format text
|pumvisible()|		check whether the popup menu is displayed
|range()|		generate a List with numbers
|readfile()|		read a file into a list of lines
|reltime()|		get time value, possibly relative
|reltimestr()|		turn a time value into a string
|remove()|		remove one or more items from a List or Dictionary
|repeat()|		repeat "expr" "count" times (Christophe Poucet)
|reverse()|		reverse the order of a List
|search()|		extra argument:
|searchdecl()|		search for declaration of variable
|searchpair()|		extra argument: line to stop searching
|searchpairpos()|	return a List with the position of the match
|searchpos()|		return a List with the position of the match
|setloclist()|		modify a location list (Yegappan Lakshmanan)
|setpos()|		set cursor or mark to a position
|setqflist()|		modify a quickfix list (Yegappan Lakshmanan)
|settabwinvar()|	set variable in window of specified tab page
|sort()|		sort a List
|soundfold()|		get the sound-a-like equivalent of a word
|spellbadword()|	get a badly spelled word
|spellsuggest()|	get suggestions for correct spelling
|split()|		split a String into a List
|str2nr()|		convert a string to a number, base 2, 8, 10 or 16
|stridx()|		extra argument: start position
|strridx()|		extra argument: start position
|string()|		string representation of a List or Dictionary
|system()|		extra argument: filters {input} through a shell command
|tabpagebuflist()|	List of buffers in a tab page
|tabpagenr()|		number of current or last tab page
|tabpagewinnr()|	window number in a tab page
|tagfiles()|		List with tags file names
|taglist()|		get list of matching tags (Yegappan Lakshmanan)
|tr()|			translate characters (Ron Aaron)
|uniq()|		remove copies of repeated adjacent list items
|values()|		get List of Dictionary values
|winnr()|		takes an argument: what window to use
|winrestview()|		restore the view of the current window
|winsaveview()|		save the view of the current window
|writefile()|		write a list of lines into a file

User defined functions can now be loaded automatically from the "autoload"
directory in 'runtimepath'.  See |autoload-functions|.


New Vim variables: ~

|v:insertmode|		used for |InsertEnter| and |InsertChange| autocommands
|v:val|			item value in a |map()| or |filter()| function
|v:key|			item key in a |map()| or |filter()| function
|v:profiling|		non-zero after a ":profile start" command
|v:fcs_reason|		the reason why |FileChangedShell| was triggered
|v:fcs_choice|		what should happen after |FileChangedShell|
|v:beval_bufnr|		buffer number for 'balloonexpr'
|v:beval_winnr|		window number for 'balloonexpr'
|v:beval_lnum|		line number for 'balloonexpr'
|v:beval_col|		column number for 'balloonexpr'
|v:beval_text|		text under the mouse pointer for 'balloonexpr'
|v:scrollstart|		what caused the screen to be scrolled up
|v:swapname|		name of the swap file for the |SwapExists| event
|v:swapchoice|		what to do for an existing swap file
|v:swapcommand|		command to be executed after handling |SwapExists|
|v:char|		argument for evaluating 'formatexpr'


New autocommand events: ~

|ColorScheme|		after loading a color scheme

|CursorHoldI|		the user doesn't press a key for a while in Insert mode
|CursorMoved|		the cursor was moved in Normal mode
|CursorMovedI|		the cursor was moved in Insert mode

|FileChangedShellPost|	after handling a file changed outside of Vim

|InsertEnter|		starting Insert or Replace mode
|InsertChange|		going from Insert to Replace mode or back
|InsertLeave|		leaving Insert or Replace mode

|MenuPopup|		just before showing popup menu

|QuickFixCmdPre|	before :make, :grep et al. (Ciaran McCreesh)
|QuickFixCmdPost|	after :make, :grep et al. (Ciaran McCreesh)

|SessionLoadPost|	after loading a session file. (Yegappan Lakshmanan)

|ShellCmdPost|		after executing a shell command
|ShellFilterPost|	after filtering with a shell command

|SourcePre|		before sourcing a Vim script

|SpellFileMissing|	when a spell file can't be found

|SwapExists|		found existing swap file when editing a file

|TabEnter|		just after entering a tab page
|TabLeave|		just before leaving a tab page

|VimResized|		after the Vim window size changed (Yakov Lerner)


New highlight groups: ~

Pmenu                   Popup menu: normal item |hl-Pmenu|
PmenuSel                Popup menu: selected item |hl-PmenuSel|
PmenuThumb              Popup menu: scrollbar |hl-PmenuThumb|
PmenuSbar               Popup menu: Thumb of the scrollbar |hl-PmenuSbar|

TabLine                 tab pages line, inactive label |hl-TabLine|
TabLineSel              tab pages line, selected label |hl-TabLineSel|
TabLineFill             tab pages line, filler |hl-TabLineFill|

SpellBad                badly spelled word |hl-SpellBad|
SpellCap                word with wrong caps |hl-SpellCap|
SpellRare               rare word |hl-SpellRare|
SpellLocal              word only exists in other region |hl-SpellLocal|

CursorColumn            'cursorcolumn' |hl-CursorColumn|
CursorLine              'cursorline' |hl-CursorLine|

MatchParen              matching parens |pi_paren.txt| |hl-MatchParen|


New items in search patterns: ~
|/\%d| \%d123		search for character with decimal number
|/\]|  [\d123]		idem, in a collection
|/\%o| \%o103		search for character with octal number
|/\]|  [\o1o3]		idem, in a collection
|/\%x| \%x1a		search for character with 2 pos. hex number
|/\]|  [\x1a]		idem, in a collection
|/\%u| \%u12ab		search for character with 4 pos. hex number
|/\]|  [\u12ab]		idem, in a collection
|/\%U| \%U1234abcd	search for character with 8 pos. hex number
|/\]|  [\U1234abcd]	idem, in a collection
			    (The above partly by Ciaran McCreesh)

|/[[=| [[=a=]]		an equivalence class (only for latin1 characters)
|/[[.| [[.a.]]		a collation element (only works with single char)

|/\%'m|  \%'m		match at mark m
|/\%<'m| \%<'m		match before mark m
|/\%>'m| \%>'m		match after mark m
|/\%V|   \%V		match in Visual area

Nesting |/multi| items no longer is an error when an empty match is possible.

It is now possible to use \{0}, it matches the preceding atom zero times.  Not
useful, just for compatibility.


New Syntax/Indent/FTplugin files: ~

Moved all the indent settings from the filetype plugin to the indent file.
Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
different value.

a2ps syntax and ftplugin file. (Nikolai Weibull)
ABAB/4 syntax file. (Marius van Wyk)
alsaconf ftplugin file. (Nikolai Weibull)
AppendMatchGroup ftplugin file. (Dave Silvia)
arch ftplugin file. (Nikolai Weibull)
asterisk and asteriskvm syntax file. (Tilghman Lesher)
BDF ftplugin file. (Nikolai Weibull)
BibTeX indent file. (Dorai Sitaram)
BibTeX Bibliography Style syntax file. (Tim Pope)
BTM ftplugin file. (Bram Moolenaar)
calendar ftplugin file. (Nikolai Weibull)
Changelog indent file. (Nikolai Weibull)
ChordPro syntax file. (Niels Bo Andersen)
Cmake indent and syntax file. (Andy Cedilnik)
conf ftplugin file. (Nikolai Weibull)
context syntax and ftplugin file. (Nikolai Weibull)
CRM114 ftplugin file. (Nikolai Weibull)
cvs RC ftplugin file. (Nikolai Weibull)
D indent file. (Jason Mills)
Debian Sources.list syntax file. (Matthijs Mohlmann)
dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
diff ftplugin file. (Bram Moolenaar)
dircolors ftplugin file. (Nikolai Weibull)
django and htmldjango syntax file. (Dave Hodder)
doxygen syntax file. (Michael Geddes)
elinks ftplugin file. (Nikolai Weibull)
eterm ftplugin file. (Nikolai Weibull)
eviews syntax file. (Vaidotas Zemlys)
fetchmail RC ftplugin file. (Nikolai Weibull)
FlexWiki syntax and ftplugin file. (George Reilly)
Generic indent file. (Dave Silvia)
gpg ftplugin file. (Nikolai Weibull)
gretl syntax file. (Vaidotas Zemlys)
groovy syntax file. (Alessio Pace)
group syntax and ftplugin file. (Nikolai Weibull)
grub ftplugin file. (Nikolai Weibull)
Haskell ftplugin file. (Nikolai Weibull)
help ftplugin file. (Nikolai Weibull)
indent ftplugin file. (Nikolai Weibull)
Javascript ftplugin file. (Bram Moolenaar)
Kconfig ftplugin and syntax file. (Nikolai Weibull)
ld syntax, indent and ftplugin file. (Nikolai Weibull)
lftp ftplugin file. (Nikolai Weibull)
libao config ftplugin file. (Nikolai Weibull)
limits syntax and ftplugin file. (Nikolai Weibull)
Lisp indent file. (Sergey Khorev)
loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
m4 ftplugin file. (Nikolai Weibull)
mailaliases syntax file. (Nikolai Weibull)
mailcap ftplugin file. (Nikolai Weibull)
manconf syntax and ftplugin file. (Nikolai Weibull)
matlab ftplugin file. (Jake Wasserman)
Maxima syntax file. (Robert Dodier)
MGL syntax file. (Gero Kuhlmann)
modconf ftplugin file. (Nikolai Weibull)
mplayer config ftplugin file. (Nikolai Weibull)
Mrxvtrc syntax and ftplugin file. (Gautam Iyer)
MuPAD source syntax, indent and ftplugin. (Dave Silvia)
mutt RC ftplugin file. (Nikolai Weibull)
nanorc syntax and ftplugin file. (Nikolai Weibull)
netrc ftplugin file. (Nikolai Weibull)
pamconf syntax and ftplugin file. (Nikolai Weibull)
Pascal indent file. (Neil Carter)
passwd syntax and ftplugin file. (Nikolai Weibull)
PHP compiler plugin. (Doug Kearns)
pinfo ftplugin file. (Nikolai Weibull)
plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
procmail ftplugin file. (Nikolai Weibull)
prolog ftplugin file. (Nikolai Weibull)
protocols syntax and ftplugin file. (Nikolai Weibull)
quake ftplugin file. (Nikolai Weibull)
racc syntax and ftplugin file. (Nikolai Weibull)
readline ftplugin file. (Nikolai Weibull)
rhelp syntax file. (Johannes Ranke)
rnoweb syntax file. (Johannes Ranke)
Relax NG compact ftplugin file. (Nikolai Weibull)
Scheme indent file. (Sergey Khorev)
screen ftplugin file. (Nikolai Weibull)
sensors syntax and ftplugin file. (Nikolai Weibull)
services syntax and ftplugin file. (Nikolai Weibull)
setserial syntax and ftplugin file. (Nikolai Weibull)
sieve syntax and ftplugin file. (Nikolai Weibull)
SiSU syntax file (Ralph Amissah)
Sive syntax file. (Nikolai Weibull)
slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull)
SML indent file. (Saikat Guha)
SQL anywhere syntax and indent file. (David Fishburn)
SQL indent file.
SQL-Informix syntax file. (Dean L Hill)
SQL: Handling of various variants. (David Fishburn)
sshconfig ftplugin file. (Nikolai Weibull)
Stata and SMCL syntax files. (Jeff Pitblado)
sudoers ftplugin file. (Nikolai Weibull)
sysctl syntax and ftplugin file. (Nikolai Weibull)
terminfo ftplugin file. (Nikolai Weibull)
trustees syntax file. (Nima Talebi)
Vera syntax file. (David Eggum)
udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull)
updatedb syntax and ftplugin file. (Nikolai Weibull)
VHDL indent file (Gerald Lai)
WSML syntax file. (Thomas Haselwanter)
Xdefaults ftplugin file. (Nikolai Weibull)
XFree86 config ftplugin file. (Nikolai Weibull)
xinetd syntax, indent and ftplugin file. (Nikolai Weibull)
xmodmap ftplugin file. (Nikolai Weibull)
Xquery syntax file. (Jean-Marc Vanel)
xsd (XML schema) indent file.
YAML ftplugin file. (Nikolai Weibull)
Zsh ftplugin file. (Nikolai Weibull)


New Keymaps: ~

Sinhala (Sri Lanka) (Harshula Jayasuriya)
Tamil in TSCII encoding (Yegappan Lakshmanan)
Greek in cp737 (Panagiotis Louridas)
Polish-slash (HS6_06)
Ukrainian-jcuken (Anatoli Sakhnik)
Kana (Edward L. Fox)


New message translations: ~

The Ukrainian messages are now also available in cp1251.
Vietnamese message translations and menu. (Phan Vinh Thinh)


Others: ~

The |:read| command has the |++edit| argument.  This means it will use the
detected 'fileformat', 'fileencoding' and other options for the buffer.  This
also fixes the problem that editing a compressed file didn't set these
options.

The Netbeans interface was updated for Sun Studio 10.  The protocol number
goes from 2.2 to 2.3. (Gordon Prieur)

Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to
define default command-key mappings. (mostly by Benji Fisher)

Mac: Add the selection type to the clipboard, so that Block, line and
character selections can be used between two Vims. (Eckehard Berns)
Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
"yyp".

Mac: GUI font selector. (Peter Cucka)

Mac: support for multi-byte characters. (Da Woon Jung)
This doesn't always work properly.  If you see text drawing problems try
switching the 'macatsui' option off.

Mac: Support the xterm mouse in the non-GUI version.

Mac: better integration with Xcode.  Post a fake mouse-up event after the odoc
event and the drag receive handler to work around a stall after Vim loads a
file.  Fixed an off-by-one line number error. (Da Woon Jung)

Mac: When started from Finder change directory to the file being edited or the
user home directory.

Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
To be used to set the cursor shape to a bar or a block.  No default values,
they are not supported by termcap/terminfo.

GUI font selector for Motif. (Marcin Dalecki)

Nicer toolbar buttons for Motif. (Marcin Dalecki)

Mnemonics for the Motif find/replace dialog. (Marcin Dalecki)

Included a few improvements for Motif from Marcin Dalecki.  Draw label
contents ourselves to make them handle fonts in a way configurable by Vim and
a bit less dependent on the X11 font management.

Autocommands can be defined local to a buffer.  This means they will also work
when the buffer does not have a name or no specific name.  See
|autocmd-buflocal|.  (Yakov Lerner)

For xterm most combinations of modifiers with function keys are recognized.
|xterm-modifier-keys|

When 'verbose' is set the output of ":highlight" will show where a highlight
item was last set.
When 'verbose' is set the output of the ":map", ":abbreviate", ":command",
":function" and ":autocmd" commands will show where it was last defined.
(Yegappan Lakshmanan)

":function /pattern" lists functions matching the pattern.

"1gd" can be used like "gd" but ignores matches in a {} block that ends before
the cursor position.  Likewise for "1gD" and "gD".

'scrolljump' can be set to a negative number to scroll a percentage of the
window height.

The |v:scrollstart| variable has been added to help find the location in
your script that causes the hit-enter prompt.

To make it possible to handle the situation that a file is being edited that
is already being edited by another Vim instance, the |SwapExists| event has
been added.  The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables
can be used, for example to use the |client-server| functionality to bring the
other Vim to the foreground.
When starting Vim with a "-t tag" argument, there is an existing swapfile and
the user selects "quit" or "abort" then exit Vim.

Undo now also restores the '< and '> marks.  "gv" selects the same area as
before the change and undo.

When editing a search pattern for a "/" or "?" command and 'incsearch' is set
CTRL-L can be used to add a character from the current match.  CTRL-R CTRL-W
will add a word, but exclude the part of the word that was already typed.

Ruby interface: add line number methods. (Ryan Paul)

The $MYVIMRC environment variable is set to the first found vimrc file.
The $MYGVIMRC environment variable is set to the first found gvimrc file.

==============================================================================
IMPROVEMENTS						*improvements-7*

":helpgrep" accepts a language specifier after the pattern: "pat@it".

Moved the help for printing to a separate help file.  It's quite a lot now.

When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are
found in $PATH instead of looking for ordinary files in the current directory.

When ":silent" is used and a backwards range is given for an Ex command the
range is swapped automatically instead of asking if that is OK.

The pattern matching code was changed from a recursive function to an
iterative mechanism.  This avoids out-of-stack errors.  State is stored in
allocated memory, running out of memory can always be detected.  Allows
matching more complex things, but Vim may seem to hang while doing that.

Previously some options were always evaluated in the |sandbox|.  Now that only
happens when the option was set from a modeline or in secure mode.  Applies to
'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes)

Some commands and expressions could have nasty side effects, such as using
CTRL-R = while editing a search pattern and the expression invokes a function
that jumps to another window.  The |textlock| has been added to prevent this
from happening.

":breakadd here" and ":breakdel here" can be used to set or delete a
breakpoint at the cursor.

It is now possible to define a function with: >
	:exe "func Test()\n ...\n endfunc"

The tutor was updated to make it simpler to use and text was added to explain
a few more important commands.  Used ideas from Gabriel Zachmann.

Unix: When libcall() fails obtain an error message with dlerror() and display
it. (Johannes Zellner)

Mac and Cygwin: When editing an existing file make the file name the same case
of the edited file.  Thus when typing ":e os_UNIX.c" the file name becomes
"os_unix.c".

Added "nbsp" in 'listchars'. (David Blanchet)

Added the "acwrite" value for the 'buftype' option.  This is for a buffer that
does not have a name that refers to a file and is written with BufWriteCmd
autocommands.

For lisp indenting and matching parenthesis: (Sergey Khorev)
- square brackets are recognized properly
- #\(, #\), #\[ and #\] are recognized as character literals
- Lisp line comments (delimited by semicolon) are recognized

Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)

winnr() takes an optional "$" or "#" argument.  (Nikolai Weibull, Yegappan
Lakshmanan)

Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan)
Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
Added 'c' flag to search(): accept match at the cursor.
Added 'e' flag to search(): move to end of the match. (Benji Fisher)
Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher)
These also apply to searchpos(), searchpair() and searchpairpos().

The search() and searchpair() functions have an extra argument to specify
where to stop searching.  Speeds up searches that should not continue too far.

When uncompressing fails in the gzip plugin, give an error message but don't
delete the raw text.  Helps if the file has a .gz extension but is not
actually compressed. (Andrew Pimlott)

When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
(Michael Geddes)

Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
filetype or syntax.

The ":registers" command now displays multi-byte characters properly.

VMS: In the usage message mention that a slash can be used to make a flag
upper case.  Add color support to the builtin vt320 terminal codes.
(Zoltan Arpadffy)

For the '%' item in 'viminfo', allow a number to set a maximum for the number
of buffers.

For recognizing the file type: When a file looks like a shell script, check
for an "exec" command that starts the tcl interpreter. (suggested by Alexios
Zavras)

Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
digraphs still work when iconv is not available.

When a session file is loaded while editing an unnamed, empty buffer that
buffer is wiped out.  Avoids that there is an unused buffer in the buffer
list.

Win32: When libintl.dll supports bind_textdomain_codeset(), use it.
(NAKADAIRA Yukihiro)

Win32: Vim was not aware of hard links on NTFS file systems.  These are
detected now for when 'backupcopy' is "auto".  Also fixed a bogus "file has
been changed since reading it" error for links.

When foldtext() finds no text after removing the comment leader, use the
second line of the fold.  Helps for C-style /* */ comments where the first
line is just "/*".

When editing the same file from two systems (e.g., Unix and MS-Windows) there
mostly was no warning for an existing swap file, because the name of the
edited file differs (e.g., y:\dir\file vs /home/me/dir/file).  Added a flag to
the swap file to indicate it is in the same directory as the edited file.  The
used path then doesn't matter and the check for editing the same file is much
more reliable.

Unix: When editing a file through a symlink the swap file would use the name
of the symlink.  Now use the name of the actual file, so that editing the same
file twice is detected. (suggestions by Stefano Zacchiroli and James Vega)

Client-server communication now supports 'encoding'.  When setting 'encoding'
in a Vim server to "utf-8", and using "vim --remote fname" in a console,
"fname" is converted from the console encoding to utf-8.  Also allows Vims
with different 'encoding' settings to exchange messages.

Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
incremented/decremented each time.

When a register is empty it is not stored in the viminfo file.

Removed the tcltags script, it's obsolete.

":redir @*>>" and ":redir @+>>" append to the clipboard.  Better check for
invalid characters after the register name. |:redir|

":redir => variable" and ":redir =>> variable" write or append to a variable.
(Yegappan Lakshmanan) |:redir|

":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan)

The 'verbosefile' option can be used to log messages in a file.  Verbose
messages are not displayed then.  The "-V{filename}" argument can be used to
log startup messages.

":let g:" lists global variables.
":let b:" lists buffer-local variables.
":let w:" lists window-local variables.
":let v:" lists Vim variables.

The stridx() and strridx() functions take a third argument, where to start
searching.  (Yegappan Lakshmanan)

The getreg() function takes an extra argument to be able to get the expression
for the '=' register instead of the result of evaluating it.

The setline() function can take a List argument to set multiple lines.  When
the line number is just below the last line the line is appended.

g CTRL-G also shows the number of characters if it differs from the number of
bytes.

Completion for ":debug" and entering an expression for the '=' register.  Skip
":" between range and command name. (Peter Winters)

CTRL-Q in Insert mode now works like CTRL-V by default.  Previously it was
ignored.

When "beep" is included in 'debug' a function or script that causes a beep
will result in a message with the source of the error.

When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".

To count items (pattern matches) without changing the buffer the 'n' flag has
been added to |:substitute|.  See |count-items|.

In a |:substitute| command the \u, \U, \l and \L items now also work for
multi-byte characters.

The "screen.linux" $TERM name is recognized to set the default for
'background' to "dark". (Ciaran McCreesh)  Also for "cygwin" and "putty".

The |FileChangedShell| autocommand event can now use the |v:fcs_reason|
variable that specifies what triggered the event.  |v:fcs_choice| can be used
to reload the buffer or ask the user what to do.

Not all modifiers were recognized for xterm function keys.  Added the
possibility in term codes to end in ";*X" or "O*X", where X is any character
and the * stands for the modifier code.
Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize
the two forms that xterm can send their codes in and still handle all possible
modifiers.

getwinvar() now also works to obtain a buffer-local option from the specified
window.

Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan)
Added the "%>" item to 'errorformat'.

For 'errorformat' it was not possible to have a file name that contains the
character that follows after "%f".  For example, in "%f:%l:%m" the file name
could not contain ":".  Now include the first ":" where the rest of the
pattern matches.  In the example a ":" not followed by a line number is
included in the file name. (suggested by Emanuele Giaquinta)

GTK GUI: use the GTK file dialog when it's available.  Mix from patches by
Grahame Bowland and Evan Webb.

Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
used.

Win32: If the user changes the setting for the number of lines a scroll wheel
click scrolls it is now used immediately.  Previously Vim would need to be
restarted.

When using @= in an expression the value is expression @= contains.  ":let @=
= value" can be used to set the register contents.

A ! can be added to ":popup" to have the popup menu appear at the mouse
pointer position instead of the text cursor.

The table with encodings has been expanded with many MS-Windows codepages,
such as cp1250 and cp737, so that these can also be used on Unix without
prepending "8bit-".
When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part.

Added the "customlist" completion argument to a user-defined command.  The
user-defined completion function should return the completion candidates as a
Vim List and the returned results are not filtered by Vim. (Yegappan
Lakshmanan)

Win32: Balloons can have multiple lines if common controls supports it.
(Sergey Khorev)

For command-line completion the matches for various types of arguments are now
sorted: user commands, variables, syntax names, etc.

When no locale is set, thus using the "C" locale, Vim will work with latin1
characters, using its own isupper()/toupper()/etc. functions.

When using an rxvt terminal emulator guess the value of 'background' using the
COLORFGBG environment variable. (Ciaran McCreesh)

Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh)

When 'foldcolumn' is one then put as much info in it as possible.  This allows
closing a fold with the mouse by clicking on the '-'.

input() takes an optional completion argument to specify the type of
completion supported for the input. (Yegappan Lakshmanan)

"dp" works with more than two buffers in diff mode if there is only one where
'modifiable' is set.

The 'diffopt' option has three new values: "horizontal", "vertical" and
"foldcolumn".

When the 'include' option contains \zs the file name found is what is being
matched from \zs to the end or \ze.  Useful to pass more to 'includeexpr'.

Loading plugins on startup now supports subdirectories in the plugin
directory. |load-plugins|

In the foldcolumn always show the '+' for a closed fold, so that it can be
opened easily.  It may overwrite another character, esp. if 'foldcolumn' is 1.

It is now possible to get the W10 message again by setting 'readonly'.  Useful
in the FileChangedRO autocommand when checking out the file fails.

Unix: When open() returns EFBIG give an appropriate message.

":mksession" sets the SessionLoad variable to notify plugins.  A modeline is
added to the session file to set 'filetype' to "vim".

In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it
more logical.  (Robert Webb)

When appending to a file while the buffer has no name the name of the appended
file would be used for the current buffer.  But the buffer contents is
actually different from the file content.  Don't set the file name, unless the
'P' flag is present in 'cpoptions'.

When starting to edit a new file and the directory for the file doesn't exist
then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
a hint that something might be wrong.

Win32: Preserve the hidden attribute of the viminfo file.

In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and
then a cursor key.  Now keep the previously inserted text if nothing is
inserted after the CTRL-O.  Allows using CTRL-O commands to move the cursor
without losing the last inserted text.

The exists() function now supports checking for autocmd group definition
and for supported autocommand events. (Yegappan Lakshmanan)

Allow using ":global" in the sandbox, it doesn't do anything harmful by
itself.

":saveas asdf.c" will set 'filetype' to c when it's empty.  Also for ":w
asdf.c" when it sets the filename for the buffer.

Insert mode completion for whole lines now also searches unloaded buffers.

The colortest.vim script can now be invoked directly with ":source" or
":runtime syntax/colortest.vim".

The 'statusline' option can be local to the window, so that each window can
have a different value.  (partly by Yegappan Lakshmanan)

The 'statusline' option and other options that support the same format can now
use these new features:
- When it starts with "%!" the value is first evaluated as an expression
  before parsing the value.
- "%#HLname#" can be used to start highlighting with HLname.

When 'statusline' is set to something that causes an error message then it is
made empty to avoid an endless redraw loop.  Also for other options, such at
'tabline' and 'titlestring'.  ":verbose set statusline" will mention that it
was set in an error handler.

When there are several matching tags, the ":tag <name>" and CTRL-] commands
jump to the [count] matching tag. (Yegappan Lakshmanan)

Win32: In the batch files generated by the install program, use $VIMRUNTIME or
$VIM if it's set.  Example provided by Mathias Michaelis.
Also create a vimtutor.bat batch file.

The 'balloonexpr' option is now |global-local|.

The system() function now runs in cooked mode, thus can be interrupted by
CTRL-C.

==============================================================================
COMPILE TIME CHANGES					*compile-changes-7*

Dropped the support for the BeOS and Amiga GUI.  They were not maintained and
probably didn't work.  If you want to work on this: get the Vim 6.x version
and merge it back in.

When running the tests and one of them fails to produce "test.out" the
following tests are still executed.  This helps when running out of memory.

When compiling with EXITFREE defined and the ccmalloc library, it is possible
to detect memory leaks.  Some memory will always be reported as leaked, such
as allocated by X11 library functions and the memory allocated in
alloc_cmdbuff() to store the ":quit" command.

Moved the code for printing to src/hardcopy.c.

Moved some code from main() to separate functions to make it easier to see
what is being done.  Using a structure to avoid a lot of arguments to the
functions.

Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c
without copying the code.

--- Mac ---

"make" now creates the Vim.app directory and "make install" copies it to its
final destination. (Raf)

Put the runtime directory not directly in Vim.app but in
Vim.app/Contents/Resources/vim, so that it's according to Mac specs.

Made it possible to compile with Motif, Athena or GTK without tricks and still
being able to use the MacRoman conversion.  Added the os_mac_conv.c file.

When running "make install" the runtime files are installed as for Unix.
Avoids that too many files are copied.  When running "make" a link to the
runtime files is created to avoid a recursive copy that takes much time.

Configure will attempt to build Vim for both Intel and PowerPC.  The
--with-mac-arch configure argument can change it.

--- Win32 ---

The Make_mvc.mak file was adjusted to work with the latest MS compilers,
including the free version of Visual Studio 2005. (George Reilly)

INSTALLpc.txt was updated for the recent changes. (George Reilly)

The distributed executable is now produced with the free Visual C++ Toolkit
2003 and other free SDK chunks.  msvcsetup.bat was added to support this.

Also generate the .pdb file that can be used to generate a useful crash report
on MS-Windows. (George Reilly)

==============================================================================
BUG FIXES						*bug-fixes-7*

When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
instead of "copy".  When 'printdevice' was empty the copy command did not
work.  Use "LPT1" then.

The GTK font dialog uses a font size zero when the font name doesn't include a
size.  Use a default size of 10.

This example in the documentation didn't work: >
    :e `=foo . ".c"`
Skip over the expression in `=expr` when looking for comments, |, % and #.

When ":helpgrep" doesn't find anything there is no error message.

"L" and "H" did not take closed folds into account.

Win32: The "-P title" argument stopped at the first title that matched, even
when it doesn't support MDI.

Mac GUI: CTRL-^ and CTRL-@ did not work.

"2daw" on "word." at the end of a line didn't include the preceding white
space.

Win32: Using FindExecutable() doesn't work to find a program.  Use
SearchPath() instead.  For executable() use $PATHEXT when the program searched
for doesn't have an extension.

When 'virtualedit' is set, moving the cursor up after appending a character
may move it to a different column.  Was caused by auto-formatting moving the
cursor and not putting it back where it was.

When indent was added automatically and then moving the cursor, the indent was
not deleted (like when pressing ESC).  The "I" flag in 'cpoptions' can be used
to make it work the old way.

When opening a command-line window, 'textwidth' gets set to 78 by the Vim
filetype plugin.  Reset 'textwidth' to 0 to avoid lines are broken.

After using cursor(line, col) moving up/down doesn't keep the same column.

Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
fields. (Walter Briscoe)

On Sinix SYS_NMLN isn't always defined.  Define it ourselves. (Cristiano De
Michele)

Printing with PostScript may keep the printer waiting for more.  Append a
CTRL-D to the printer output. (Mike Williams)

When converting a string with a hex or octal number the leading '-' was
ignored.  ":echo '-05' + 0" resulted in 5 instead of -5.

Using "@:" to repeat a command line didn't work when it contains control
characters.  Also remove "'<,'>" when in Visual mode to avoid that it appears
twice.

When using file completion for a user command, it would not expand environment
variables like for a regular command with a file argument.

'cindent': When the argument of a #define looks like a C++ class the next line
is indented too much.

When 'comments' includes multi-byte characters inserting the middle part and
alignment may go wrong.  'cindent' also suffers from this for right-aligned
items.

Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
active codepage.  Convert to utf-8.  Also for $HOME.

The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw".  Now use
"cn" or "tw" as intended.

When 'bin' is set and 'eol' is not set then line2byte() added the line break
after the last line while it's not there.

Using foldlevel() in a WinEnter autocommand may not work.  Noticed when
resizing the GUI shell upon startup.

Python: Using buffer.append(f.readlines()) didn't work.  Allow appending a
string with a trailing newline.  The newline is ignored.

When using the ":saveas f2" command for buffer "f1", the Buffers menu would
contain "f2" twice, one of them leading to "f1".  Also trigger the BufFilePre
and BufFilePost events for the alternate buffer that gets the old name.

strridx() did not work well when the needle is empty. (Ciaran McCreesh)

GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
just before it is invoked

VMS: Occasionally CR characters were inserted in the file.  Expansion of
environment variables was not correct. (Zoltan Arpadffy)

UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
from the first character of the word.

When using ":sball" in an autocommand only the filetype in one buffer was
detected.  Reset did_filetype in enter_buffer().

When using ":argdo" and the window already was at the first argument index,
but not actually editing it, the current buffer would be used instead.

When ":next dir/*" includes many matches, adding the names to the argument
list may take an awful lot of time and can't be interrupted.  Allow
interrupting this.

When editing a file that was already loaded in a buffer, modelines were not
used.  Now window-local options in the modeline are set.  Buffer-local options
and global options remain unmodified.

Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
command line with non-ASCII characters are not used correctly.  Recode the
file names when 'encoding' is set, using the Unicode command line.

Win32 console: When the default for 'encoding' ends up to be "latin1", the
default value of 'isprint' was wrong.

When an error message is given while waiting for a character (e.g., when an
xterm reports the number of colors), the hit-enter prompt overwrote the last
line.  Don't reset msg_didout in normal_cmd() for K_IGNORE.

Mac GUI: Shift-Tab didn't work.

When defining tooltip text, don't translate terminal codes, since it's not
going to be used like a command.

GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
GTK error.  Invalid characters may appear when 'encoding' is changed.

GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.

Win32: When 'encoding' is changed while starting up, use the Unicode command
line to convert the file arguments to 'encoding'.  Both for the GUI and the
console version.

Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
there is no codepage for latin9.  Do our own conversion from latin9 to UCS2.

When two versions of GTK+ 2 are installed it was possible to use the header
files from one and the library from the other.  Use GTK_LIBDIR to put the
directory for the library early in the link flags.

With the GUI find/replace dialog a replace only worked if the pattern was
literal text.  Now it works for any pattern.

When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still
cause equalizing window heights in the vertical direction.

When ":emenu" is used in a startup script the command was put in the typeahead
buffer, causing a prompt for the crypt key to be messed up.

Mac OS/X: The default for 'isprint' included characters 128-160, causes
problems for Terminal.app.

When a syntax item with "containedin" is used, it may match in the start or
end of a region with a matchgroup, while this doesn't happen for a "contains"
argument.

When a transparent syntax items matches in another item where the highlighting
has already stopped (because of a he= argument), the highlighting would come
back.

When cscope is used to set the quickfix error list, it didn't get set if there
was only one match. (Sergey Khorev)

When 'confirm' is set and using ":bdel" in a modified buffer, then selecting
"cancel", would still give an error message.

The PopUp menu items that started Visual mode didn't work when not in Normal
mode.  Switching between selecting a word and a line was not possible.

Win32: The keypad decimal point always resulted in a '.', while on some
keyboards it's a ','.  Use MapVirtualKey(VK_DECIMAL, 2).

Removed unused function DisplayCompStringOpaque() from gui_w32.c

In Visual mode there is not always an indication whether the line break is
selected or not.  Highlight the character after the line when the line break
is included, e.g., after "v$o".

GTK: The <F10> key can't be mapped, it selects the menu.  Disable that with a
GTK setting and do select the menu when <F10> isn't mapped. (David Necas)

After "Y" '[ and '] were not at start/end of the yanked text.

When a telnet connection is dropped Vim preserves files and exits.  While
doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott
Anderson)  Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
handle.  Added handle_signal().

When completing a file name on the command line backslashes are required for
white space.  Was only done for a space, not for a Tab.

When configure could not find a terminal library, compiling continued for a
long time before reporting the problem.  Added a configure check for tgetent()
being found in a library.

When the cursor is on the first char of the last line a ":g/pat/s///" command
may cause the cursor to be displayed below the text.

Win32: Editing a file with non-ASCII characters doesn't work when 'encoding'
is "utf-8".  use _wfullpath() instead of _fullpath(). (Yu-sung Moon)

When recovering the 'fileformat' and 'fileencoding' were taken from the
original file instead of from the swapfile.  When the file didn't exist, was
empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could
be wrong.  Now store 'fileformat' and 'fileencoding' in the swapfile and use
the values when recovering.

":bufdo g/something/p" overwrites each last printed text line with the file
message for the next buffer.  Temporarily clear 'shortmess' to avoid that.

Win32: Cannot edit a file starting with # with --remote.  Do escape % and #
when building the ":drop" command.

A comment or | just after an expression-backtick argument was not recognized.
E.g. in :e `="foo"`"comment.

"(" does not stop at an empty sentence (single dot and white space) while ")"
does.  Also breaks "das" on that dot.

When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
moved the cursor to another column.

When 'commentstring' is '"%s' and there is a double quote in the line a double
quote before the fold marker isn't removed in the text displayed for a  closed
fold.

In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
break, resulting in "selected 202 of 201 bytes".

Motif: fonts were not used for dialog components. (Marcin Dalecki)

Motif: After using a toolbar button the keyboard focus would be on the toolbar
(Lesstif problem). (Marcin Dalecki)

When using "y<C-V>`x" where mark x is in the first column, the last line was
not included.

Not all test scripts work properly on MS-Windows when checked out from CVS.
Use a Vim command to fix all fileformats to dos before executing the tests.

When using ":new" and the file fits in the window, lines could still be above
the window.  Now remove empty lines instead of keeping the relative position.

Cmdline completion didn't work after ":let var1 var<Tab>".

When using ":startinsert" or ":startreplace" when already in Insert mode
(possible when using CTRL-R =), pressing Esc would directly restart Insert
mode. (Peter Winters)

"2daw" didn't work at end of file if the last word is a single character.

Completion for ":next a'<Tab>" put a backslash before single quote, but it was
not removed when editing a file.  Now halve backslashes in save_patterns().
Also fix expanding a file name with the shell that contains "\'".

When doing "1,6d|put" only "fewer lines" was reported.  Now a following "more
lines" overwrites the message.

Configure could not handle "-Dfoo=long\ long" in the TCL config output.

When searching backwards, using a pattern that matches a newline and uses \zs
after that, didn't find a match.  Could also get a hang or end up in the right
column in the wrong line.

When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak"
starts with "sl".

When 'paste' is set in the GUI the Paste toolbar button doesn't work.  Clear
'paste' when starting the GUI.

A message about a wrong viminfo line included the trailing NL.

When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode.
Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a
mapping.

Treat "mlterm" as an xterm-like terminal. (Seiichi Sato)

":z.4" and ":z=4" didn't work Vi compatible.

When sourcing a file, editing it and sourcing it again, it could appear twice
in ":scriptnames" and get a new <SID>, because the inode has changed.

When $SHELL is set but empty the 'shell' option would be empty.  Don't use an
empty $SHELL value.

A command "w! file" in .vimrc or $EXINIT didn't work.  Now it writes an empty
file.

When a CTRL-F command at the end of the file failed, the cursor was still
moved to the start of the line.  Now it remains where it is.

When using ":s" or "&" to repeat the last substitute and "$" was used to put
the cursor in the last column, put the cursor in the last column again.  This
is Vi compatible.

Vim is not fully POSIX compliant but sticks with traditional Vi behavior.
Added a few flags in 'cpoptions' to behave the POSIX way when wanted.  The
$VIM_POSIX environment variable is checked to set the default.

Appending to a register didn't insert a line break like Vi.  Added the '>'
flag to 'cpoptions' for this.

Using "I" in a line with only blanks appended to the line.  This is not Vi
compatible.  Added the 'H' flag in 'coptions' for this.

When joining multiple lines the cursor would be at the last joint, but Vi
leaves it at the position where "J" would put it.  Added the 'q' flag in
'cpoptions' for this.

Autoindent didn't work for ":insert" and ":append".

Using ":append" in an empty buffer kept the dummy line.  Now it's deleted to
be Vi compatible.

When reading commands from a file and stdout goes to a terminal, would still
request the xterm version.  Vim can't read it, thus the output went to the
shell and caused trouble there.

When redirecting to a register with an invalid name the redirection would
still be done (after an error message).  Now reset "redir_reg". (Yegappan
Lakshmanan)

It was not possible to use a NL after a backslash in Ex mode.  This is
sometimes used to feed multiple lines to a shell command.

When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
from the terminal we actually get 3 lines for the cmdline in gvim.

When setting $HOME allocated memory would leak.

Win32: bold characters may sometimes write in another character cell.  Use
unicodepdy[] as for UTF-8. (Taro Muraoka)

":w fname" didn't work for files with 'buftype' set to "nofile".

The method used to locate user commands for completion differed from when they
are executed.  Ambiguous command names were not completed properly.

Incremental search may cause a crash when there is a custom statusline that
indirectly invokes ":normal".

Diff mode failed when $DIFF_OPTIONS was set in the environment.  Unset it
before invoking "diff".

Completion didn't work after ":argdo", ":windo" and ":bufdo".  Also for ":set
&l:opt" and ":set &g:opt". (Peter Winters)

When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse
locator it doesn't work.  Now switch off the mouse before selecting another
mouse model.

When the CursorHold event is triggered and the commands peek for typed
characters the typeahead buffer may be messed up, e.g., when a mouse-up event
is received.  Avoid invoking the autocommands from the function waiting for a
character, let it put K_CURSORHOLD in the input buffer.

Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
":1argadd *".  Same for ":argdelete" and ":argedit".

Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".

Added backslashes before dashes in the vim.1 manual page to make them appear
as real dashes. (Pierre Habouzit)

Where "gq" left the cursor depended on the value of 'formatprg'.  Now "gq"
always leaves the cursor at the last line of the formatted text.

When editing a compressed file, such as "changelog.Debian.gz" file, filetype
detection may try to check the contents of the file while it's still
compressed.  Skip setting 'filetype' for compressed files until they have been
decompressed.  Required for patterns that end in a "*".

Starting with an argument "+cmd" or "-S script" causes the cursor to be moved
to the first line.  That breaks a BufReadPost autocommand that uses g`".
Don't move the cursor if it's somewhere past the first line.

"gg=G" while 'modifiable' is off was uninterruptible.

When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
Don't insert a DBCS character with a NUL second byte.

In Insert mode CTRL-O <Home> didn't move the cursor.  Made "ins_at_eol" global
and reset it in nv_home().

Wildcard expansion failed: ":w /tmp/$$.`echo test`".  Don't put quotes around
spaces inside backticks.

After this sequence of commands: Y V p gv: the wrong line is selected.  Now
let "gv" select the text that was put, since the original text is deleted.
This should be the most useful thing to do.

":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect.  Give
an error message when the argument isn't recognized.

In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in
reallocating the buffer every time. (Alexei Alexandrov)

When using a Python "atexit" function it was not invoked when Vim exits.  Now
call Py_Finalize() for that. (Ugo Di Girolamo)
This breaks the thread stuff though, fixed by Ugo.

GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
after startup, the window layout is messed up. (Michael Schaap)  Added
win_new_shellsize() call in gui_init() to fix the topframe size.

Trick to get ...MOUSE_NM not used when there are vertical splits.  Now pass
column -1 for the left most window and add MOUSE_COLOFF for others.  Limits
mouse column to 10000.

searchpair() may hang when the end pattern has "\zs" at the end.  Check that
we find the same position again and advance one character.

When in diff mode and making a change that causes the "changed" highlighting
to disappear or reappear, it was still highlighted in another window.

When a ":next" command fails because the user selects "Abort" at the ATTENTION
prompt the argument index was advanced anyway.

When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous
substitute pattern.  Put "\V" in the pattern to avoid that.

Use of sprintf() sometimes didn't check properly for buffer overflow.  Also
when using smsg().  Included code for snprintf() to avoid having to do size
checks where invoking them

":help \=<Tab>" didn't find "sub-replace-\=".  Wild menu for help tags didn't
show backslashes.  ":he :s\=" didn't work.

When reading an errorfile "~/" in a file name was not expanded.

GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or
removing it the window size may change.  GTK sends us resize events when we
change the window size ourselves, but they may come at an unexpected moment.
Peek for a character to get any window resize events and fix 'columns' and
'lines' to undo this.

When using the GTK plug mechanism, resizing and focus was not working
properly. (Neil Bird)

After deleting files from the argument list a session file generated with
":mksession" may contain invalid ":next" commands.

When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N
may cause the hit-enter prompt.  Typing 'a then didn't result in the accented
character.  Put the character typed at the prompt back in the typeahead buffer
so that mapping is done in the right mode.

setbufvar() and setwinvar() did not give error messages.

It was possible to set a variable with an illegal name, e.g. with setbufvar().
It was possible to define a function with illegal name, e.t. ":func F{-1}()"

CTRL-W F and "gf" didn't use the same method to get the file name.

When reporting a conversion error the line number of the last error could be
given.  Now report the first encountered error.

When using ":e ++enc=name file" and iconv() was used for conversion an error
caused a fall-back to no conversion.  Now replace a character with '?' and
continue.

When opening a new buffer the local value of 'bomb' was not initialized from
the global value.

Win32: When using the "Edit with Vim" entry the file name was limited to about
200 characters.

When using command line completion for ":e *foo" and the file "+foo" exists
the resulting command ":e +foo" doesn't work.  Now insert a backslash: ":e
\+foo".

When the translation of "-- More --" was not 10 characters long the following
message would be in the wrong position.

At the more-prompt the last character in the last line wasn't drawn.

When deleting non-existing text while 'virtualedit' is set the '[ and '] marks
were not set.

Win32: Could not use "**/" in 'path', it had to be "**\".

The search pattern "\n" did not match at the end of the last line.

Searching for a pattern backwards, starting on the NUL at the end of the line
and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
Affected searchpair('/\*', '', '\*/').

For the Find/Replace dialog it was possible that not finding the text resulted
in an error message while redrawing, which cleared the syntax highlighting
while it was being used, resulting in a crash.  Now don't clear syntax
highlighting, disable it with b_syn_error.

Win32: Combining UTF-8 characters were drawn on the previous character.
Could be noticed with a Thai font.

Output of ":function" could leave some of the typed text behind. (Yegappan
Lakshmanan)

When the command line history has only a few lines the command line window
would be opened with these lines above the first window line.

When using a command line window for search strings ":qa" would result in
searching for "qa" instead of quitting all windows.

GUI: When scrolling with the scrollbar and there is a line that doesn't fit
redrawing may fail.  Make sure w_skipcol is valid before redrawing.

Limit the values of 'columns' and 'lines' to avoid an overflow in Rows *
Columns.  Fixed bad effects when running out of memory (command line would be
reversed, ":qa!" resulted in ":!aq").

Motif: "gvim -iconic" opened the window anyway.  (David Harrison)

There is a tiny chance that a symlink gets created between checking for an
existing file and creating a file.  Use the O_NOFOLLOW for open() if it's
available.

In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
sticking to the first column.

When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was
echoed anyway.  Set terminal to raw mode in getcmdline().

Unix: ":w a;b~c" caused an error in expanding wildcards.

When appending to a file with ":w >>fname" in a buffer without a name, causing
the buffer to use "fname", the modified flag was reset.

When appending to the current file the "not edited" flag would be reset.
":w" would overwrite the file accidentally.

Unix: When filtering text with an external command Vim would still read input,
causing text typed for the command (e.g., a password) to be eaten and echoed.
Don't read input when the terminal is in cooked mode.

The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen)

Unix: When filtering text through a shell command some resulting text may be
dropped.  Now after detecting that the child has exited try reading some more
of its output.

When inside input(), using "CTRL-R =" and the expression throws an exception
the command line was not abandoned but it wasn't used either.  Now abandon
typing the command line.

'delcombine' was also used in Visual and Select mode and for commands like
"cl".  That was illogical and has been disabled.

When recording while a CursorHold autocommand was defined special keys would
appear in the register.  Now the CursorHold event is not triggered while
recording.

Unix: the src/configure script used ${srcdir-.}, not all shells understand
that.  Use ${srcdir:-.} instead.

When editing file "a" which is a symlink to file "b" that doesn't exist,
writing file "a" to create "b" and then ":split b" resulted in two buffers on
the same file with two different swapfile names.  Now set the inode in the
buffer when creating a new file.

When 'esckeys' is not set don't send the xterm code to request the version
string, because it may cause trouble in Insert mode.

When evaluating an expression for CTRL-R = on the command line it was possible
to call a function that opens a new window, resulting in errors for
incremental search, and many other nasty things were possible.  Now use the
|textlock| to disallow changing the buffer or jumping to another window
to protect from unexpected behavior.  Same for CTRL-\ e.

"d(" deleted the character under the cursor, while the documentation specified
an exclusive motion.  Vi also doesn't delete the character under the cursor.

Shift-Insert in Insert mode could put the cursor before the last character
when it just fits in the window.  In coladvance() don't stop at the window
edge when filling with spaces and when in Insert mode.  In mswin.vim avoid
getting a beep from the "l" command.

Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in
the dialog then Vim would insert <M-F4> in the text.  Now it's ignored.

When ":silent! {cmd}" caused the swap file dialog, which isn't displayed,
there would still be a hit-enter prompt.

Requesting the termresponse (|t_RV|) early may cause problems with "-c"
arguments that invoke an external command or even "-c quit".  Postpone it
until after executing "-c" arguments.

When typing in Insert mode so that a new line is started, using CTRL-G u to
break undo and start a new change, then joining the lines with <BS> caused
undo info to be missing.  Now reset the insertion start point.

Syntax HL: When a region start match has a matchgroup and an offset that
happens to be after the end of the line then it continued in the next line and
stopped at the region end match, making the region continue after that.
Now check for the column being past the end of the line in syn_add_end_off().

When changing a file, setting 'swapfile' off and then on again, making another
change and killing Vim, then some blocks may be missing from the swapfile.
When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
Added mf_set_dirty().

Expanding wildcards in a command like ":e aap;<>!" didn't work.  Put
backslashes before characters that are special to the shell. (Adri Verhoef)

A CursorHold autocommand would cause a message to be cleared.  Don't show the
special key for the event for 'showcmd'.

When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r
!cmd foo<Tab>" also escape characters that are special for the shell:
"!;&()<>".

When the name of the buffer was set by a ":r fname" command |cpo-f| no
autocommands were triggered to notify about the change in the buffer list.

In the quickfix buffer 'bufhidden' was set to "delete", which caused closing
the quickfix window to leave an unlisted "No Name" buffer behind every time.

Win32: when using two screens of different size, setting 'lines' to a large
value didn't fill the whole screen. (SungHyun Nam)

Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
After upgrading it becomes invalid.  Now use $VIMRUNTIME instead.

The command line was cleared to often when 'showmode' was set and ":silent
normal vy" was used.  Don't clear the command line unless the mode was
actually displayed.  Added the "mode_displayed" variable.

The "load session" toolbar item could not handle a space or other special
characters in v:this_session.

":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.

In a multi-byte file the foldmarker could be recognized in the trail byte.
(Taro Muraoka)

Pasting with CTRL-V and menu didn't work properly when some commands are
mapped.  Use ":normal!" instead of ":normal". (Tony Apuzzo)

Crashed when expanding a file name argument in backticks.

In some situations the menu and scrollbar didn't work, when the value contains
a CSI byte. (Yukihiro Nakadaira)

GTK GUI: When drawing the balloon focus changes and we might get a key release
event that removed the balloon again.  Ignore the key release event.

'titleold' was included in ":mkexrc" and ":mksession" files.

":set background&" didn't use the same logic as was used when starting up.

When "umask" is set such that nothing is writable then the viminfo file would
be written without write permission. (Julian Bridle)

Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
other diff'ed window.

When editing in an xterm with a different number of colors than expected the
screen would be cleared and redrawn, causing the message about the edited file
to be cleared.  Now set "keep_msg" to redraw the last message.

For a color terminal: When the Normal HL uses bold, possibly to make the color
lighter, and another HL group specifies a color it might become light as well.
Now reset bold if a HL group doesn't specify bold itself.

When using 256 color xterm the color 255 would show up as color 0.  Use a
short instead of a char to store the color number.

ml_get errors when searching for "\n\zs" in an empty file.

When selecting a block and using "$" to select until the end of every line and
not highlighting the character under the cursor the first character of the
block could be unhighlighted.

When counting words for the Visual block area and using "$" to select until
the end of every line only up to the length of the last line was counted.

"dip" in trailing empty lines left one empty line behind.

The script ID was only remembered globally for each option. When a buffer- or
window-local option was set the same "last set" location was changed for all
buffers and windows.  Now remember the script ID for each local option
separately.

GUI: The "Replace All" button didn't handle backslashes in the replacement in
the same way as "Replace".  Escape backslashes so that they are taken
literally.

When using Select mode from Insert mode and typing a key, causing lines to be
deleted and a message displayed, delayed the effect of inserting the key.
Now overwrite the message without delay.

When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line
worked differently.  Now recognize all operators when using "l" at the end of
a line.

GTK GUI: when the font selector returned a font name with a comma in it then
it would be handled like two font names.  Now put a backslash before the
comma.

MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for
'iskeyword' was still for CPxxx.  And when 'nocompatible' was set 'isprint'
would also be the wrong value.

When a command was defined not to take arguments and no '|' no warning message
would be given for using a '|'.  Also with ":loadkeymap".

Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) !=
sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira)

":all" always set the current window to the first window, even when it
contains a buffer that is not in the argument list (can't be closed because it
is modified).  Now go to the window that has the first item of the argument
list.

GUI: To avoid left-over pixels from bold text all characters after a character
with special attributes were redrawn.  Now only do this for characters that
actually are bold.  Speeds up displaying considerably.

When only highlighting changes and the text is scrolled at the same time
everything is redrawn instead of using a scroll and updating the changed text.
E.g., when using ":match" to highlight a paren that the cursor landed on.
Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
redrawing.

Win32: When using Korean IME making it active didn't work properly. (Moon,
Yu-sung, 2005 March 21)

Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
Paul)

--- fixes since Vim 7.0b ---

Getting the GCC version in configure didn't work with Solaris sed.  First
strip any "darwin." and then get the version number.

The "autoload" directory was missing from the self-installing executable for
MS-Windows.

The MS-Windows install program would find "vimtutor.bat" in the install
directory.  After changing to "c:" also change to "\" to avoid looking in the
install directory.

To make the 16 bit DOS version compile exclude not used highlight
initializations and build a tiny instead of small version.

finddir() and findfile() accept a negative count and return a List then.

The Python indent file contained a few debugging statements, removed.

Expanding {} for a function name, resulting in a name starting with "s:" was
not handled correctly.

Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX.  Added several items to be
able to handle the new Hungarian dictionary.

Mac: Default to building for the current platform only, that is much faster
than building a universal binary.  Also, using Perl/Python/etc. only works for
the current platform.

The time on undo messages disappeared for someone.  Using %T for strftime()
apparently doesn't work everywhere.  Use %H:%M:%S instead.

Typing BS at the "z=" prompt removed the prompt.

--- fixes and changes since Vim 7.0c ---

When jumping to another tab page the Vim window size was always set, even when
nothing in the layout changed.

Win32 GUI tab pages line wasn't always enabled.  Do a proper check for the
compiler version.

Win32: When switching between tab pages the Vim window was moved when part of
it was outside of the screen.  Now only do that in the direction of a size
change.

Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)

Mac: Added document icons. (Benji Fisher)

Insert mode completion: Using Enter to accept the current match causes
confusion.  Use CTRL-Y instead.  Also, use CTRL-E to go back to the typed
text.

GUI: When there are left and right scrollbars, ":tabedit" kept them instead of
using the one that isn't needed.

Using "gP" to replace al the text could leave the cursor below the last line,
causing ml_get errors.

When 'cursorline' is set don't use the highlighting when Visual mode is
active, otherwise it's difficult to see the selected area.

The matchparen plugin restricts the search to 100 lines, to avoid a long delay
when there are closed folds.

Sometimes using CTRL-X s to list spelling suggestions used text from another
line.

Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
because many people use Windows-1252 while 'encoding' is "latin1".

GTK: Added a workaround for gvim crashing when used over an untrusted ssh
link, caused by GTK doing something nasty. (Ed Catmur)

Win32: The font used for the tab page labels is too big.  Use the system menu
font. (George Reilly)

Win32: Adjusting the window position and size to keep it on the screen didn't
work properly when the taskbar is on the left or top of the screen.

The installman.sh and installml.sh scripts use ${10}, that didn't work with
old shells.  And use "test -f" instead of "test -e".

Win32: When 'encoding' was set in the vimrc then a directory argument for diff
mode didn't work.

GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
were still at their old position.

The parenmatch plugin didn't remember the highlighting per window.

Using ":bd" for a buffer that's the current window in another tab page caused
a crash.

For a new tab page the 'scroll' option wasn't set to a good default.

Using an end offset for a search "/pat/e" didn't work properly for multi-byte
text. (Yukihiro Nakadaira)

":s/\n/,/" doubled the text when used on the last line.

When "search" is in 'foldopen' "[s" and "]s" now open folds.

When using a numbered function "dict" can be omitted, but "self" didn't work
then.  Always add FC_DICT to the function flags when it's part of a
dictionary.

When "--remote-tab" executes locally it left an empty tab page.

"gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
text.  Do update further lines even though the "$" is displayed.

VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)

When highlighting of statusline or tabline is changed there was no redraw to
show the effect.

Mac: Added "CFBundleIdentifier" to infplist.xml.

Added tabpage-local variables t:var.

Win32: Added double-click in tab pages line creates new tab. (Yegappan
Lakshmanan)

Motif: Added GUI tab pages line. (Yegappan Lakshmanan)

Fixed crash when 'lines' was set to 1000 in a modeline.

When init_spellfile() finds a writable directory in 'runtimepath' but it
doesn't contain a "spell" directory, create one.

Win32: executable() also finds "xxd" in the directory where Vim was started,
but "!xxd" doesn't work.  Append the Vim starting directory to $PATH.

The tab page labels are shortened, directory names are reduced to a single
letter by default.  Added the pathshorten() function to allow a user to do the
same.

":saveas" now resets 'readonly' if the file was successfully written.

Set $MYVIMRC file to the first found .vimrc file.
Set $MYGVIMRC file to the first found .gvimrc file.
Added menu item "Startup Settings" that edits the $MYVIMRC file

Added matcharg().

Error message E745 appeared twice.  Renamed one to E786.

Fixed crash when using "au BufRead * Sexplore" and doing ":help".  Was wiping
out a buffer that's still in a window.

":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
'printencoding' is empty.  Now it assumes latin1. (Mike Williams)

The check for the toolbar feature for Motif, depending on certain included
files, wasn't detailed enough, causing building to fail in gui_xmebw.c.

Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
instead of the original text.

When displaying a UTF-8 character with a zero lower byte Vim might think the
previous character is double-wide.

The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.

Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
HAVE_XM_UNHIGHLIGHTT_H was missing a T.

Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
copied at once.  Adjusted the Info.plist file for three icons.

When Visual mode is active while switching to another tabpage could get ml_get
errors.

When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
to move to the right.

When a line wraps, 'cursorcolumn' was never displayed past the end of the
line.

'autochdir' was only available when compiled with NetBeans and GUI.  Now it's
a separate feature, also available in the "big" version.

Added CTRL-W gf: open file under cursor in new tab page.

When using the menu in the tab pages line, "New Tab" opens the new tab before
where the click was.  Beyond the labels the new tab appears at the end instead
of after the current tab page.

Inside a mapping with an expression getchar() could not be used.

When vgetc is used recursively vgetc_busy protects it from being used
recursively.  But after a ":normal" command the protection was reset.

":s/a/b/n" didn't work when 'modifiable' was off.

When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
found. (Yukihiro Nakadaira)

":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
needed on the spell file.

glob('/dir/\$ABC/*') didn't work.

When using several tab pages and changing 'cmdheight' the display could become
messed up.  Now store the value of 'cmdheight' separately for each tab page.

The user of the Enter key while the popup menu is visible was still confusing.
Now use Enter to select the match after using a cursor key.

Added "usetab" to 'switchbuf'.


--- fixes and changes since Vim 7.0d ---

Added CTRL-W T: move a window to a new tab page.

Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
deleted characters before the bad word.

A few small fixes for the VMS makefile. (Zoltan Arpadffy)

With a window of 91 lines 45 cols, ":vsp" scrolled the window.  Copy w_wrow
when splitting a window and skip setting the height when it's already at the
right value.

Using <silent> in a mapping with a shell command and the GUI caused redraw
to use wrong attributes.

Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
created in the administrator directory instead of "All Users".  Define the
CSIDL_ items if they are missing.

Motif: The GUI tabline did not use the space above the right scrollbar.  Work
around a bug in the Motif library. (Yegappan Lakshmanan)

The extra files for XML Omni completion are now also installed.
|xml-omni-datafile|

GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
<F10> GTK produced error messages.  Now do create the menu but disable it just
after the first gui_mch_update().

":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
project.  Back to the Myspell dictionary.

In help files hide the | used around tags.

Renamed pycomplete to pythoncomplete.

Added "tabpages" to 'sessionoptions'.

When 'guitablabel' is set the effect wasn't visible right away.

Fixed a few 'cindent' errors.

When completing menu names, e.g., after ":emenu", don't sort the entries but
keep them in the original order.

Fixed a crash when editing a directory in diff mode.  Don't trigger
autocommands when executing the diff command.

Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
typing a special key.

When 'foldignore' is set the folds were not updated right away.

When a list is indexed with [a : b] and b was greater than the length an error
message was given.  Now silently truncate the result.

When using BS during Insert mode completion go back to the original text, so
that CTRL-N selects the first matching entry.

Added the 'M' flag to 'cinoptions'.

Win32: Make the "gvim --help" window appear in the middle of the screen
instead of at an arbitrary position. (Randall W. Morris)

Added gettabwinvar() and settabwinvar().

Command line completion: pressing <Tab> after ":e /usr/*" expands the whole
tree, because it becomes ":e /usr/**".  Don't add a star if there already is
one.

Added grey10 to grey90 to all GUIs, so that they can all be used for
initializing highlighting.  Use grey40 for CursorColumn and CursorLine when
'background' is "dark".

When reading a file and using iconv for conversion, an incomplete byte
sequence at the end caused problems. (Yukihiro Nakadaira)


--- fixes and changes since Vim 7.0e ---

Default color for MatchParen when 'background' is "dark" is now DarkCyan.

":syn off" had to be used twice in a file that sets 'syntax' in a modeline.
(Michael Geddes)

When using ":vsp" or ":sp" the available space wasn't used equally between
windows. (Servatius Brandt)

Expanding <cWORD> on a trailing blank resulted in the first word in the line
if 'encoding' is a multi-byte encoding.

Spell checking: spellbadword() didn't see a missing capital in the first word
of a line.  Popup menu now only suggest the capitalized word when appropriate.

When using whole line completion CTRL-L moves through the matches but it
didn't work when at the original text.

When completion finds the longest match, don't go to the first match but stick
at the original text, so that CTRL-N selects the first one.

Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James
Vega)

When using ":map <expr>" and the expression results in something with a
special byte (NUL or CSI) then it didn't work properly.  Now escape special
bytes.

The default Visual highlighting for a color xterm with 8 colors was a magenta
background, which made magenta text disappear.  Now use reverse in this
specific situation.

After completing the longest match "." didn't insert the same text.  Repeating
also didn't work correctly for multi-byte text.

When using Insert mode completion and BS the whole word that was completed
would result in all possible matches.  Now stop completion.  Also fixes that
for spell completion the previous word was deleted.

GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name
the tab page label was wrong and an error message would be given.

The taglist() function could hang on a tags line with a non-ASCII character.

Win32: When 'encoding' differs from the system encoding tab page labels with
non-ASCII characters looked wrong. (Yegappan Lakshmanan)

Motif: building failed when Xm/Notebook.h doesn't exist.  Added a configure
check, disable GUI tabline when it's missing.

Mac: When compiled without multi-byte feature the clipboard didn't work.

It was possible to switch to another tab page when the cmdline window is open.

Completion could hang when 'lines' is 6 and a preview window was opened.

Added CTRL-W gF: open file under cursor in new tab page and jump to the line
number following the file name.
Added 'guitabtooltip'.  Implemented for Win32 (Yegappan Lakshmanan).

Added "throw" to 'debug' option: throw an exception for error messages even
whey they would otherwise be ignored.

When 'keymap' is set and a line contains an invalid entry could get a "No
mapping found" warning instead of a proper error message.

Motif: default to using XpmAttributes instead of XpmAttributes_21.

A few more changes for 64 bit MS-Windows. (George Reilly)

Got ml_get errors when doing "o" and selecting in other window where there are
less lines shorter than the cursor position in the other window.  ins_mouse()
was using position in wrong window.

Win32 GUI: Crash when giving a lot of messages during startup.  Allocate twice
as much memory for the dialog template.

Fixed a few leaks and wrong pointer use reported by coverity.

When showing menus the mode character was sometimes wrong.

Added feedkeys(). (Yakov Lerner)

Made matchlist() always return all submatches.

Moved triggering QuickFixCmdPost to before jumping to the first location.

Mac: Added the 'macatsui' option as a temporary work around for text drawing
problems.

Line completion on "/**" gave error messages when scanning an unloaded buffer.

--- fixes and changes since Vim 7.0f ---

Win32: The height of the tab page labels is now adjusted to the font height.
(Yegappan Lakshmanan)

Win32: selecting the tab label was off by one. (Yegappan Lakshmanan)

Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan)

When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and
the file was not converted from latin1 to utf-8.  Now retry with latin1 if
reading the file as utf-8 results in illegal bytes.

Escape the argument of feedkeys() before putting it in the typeahead buffer.
(Yukihiro Nakadaira)

Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira)

With 8 colors Search highlighting combined with Statement highlighted text
made the text disappear.

VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy)

When 'virtualedit' includes "onemore", stopping Visual selection would still
move the cursor left.

Prevent that using CTRL-R = in Insert mode can start Visual mode.

Fixed a crash that occurred when in Insert mode with completion active and a
mapping caused edit() to be called recursively.

When using CTRL-O in Insert mode just after the last character while
'virtualedit' is "all", then typing CR moved the last character to the next
line.  Call coladvance() before starting the new line.

When using |:shell| ignore clicks on the tab page labels.  Also when using the
command line window.

When 'eventignore' is "all" then adding more to ignoring some events, e.g.,
for ":vimgrep", would actually trigger more events.

Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname"
didn't find it.  When looking for a server name that doesn't end in a digit
and it is not found then use another server with that name and a number (just
like on Unix).

When using "double" in 'spellsuggest' when the language doesn't support sound
folding resulted in too many suggestions.

Win32: Dropping a shortcut on the Vim icon didn't edit the referred file like
editing it in another way would.  Use fname_expand() in buf_set_name() instead
of simply make the file name a full path.

Using feedkeys() could cause Vim to hang.

When closing another tab page from the tabline menu in Insert mode the tabline
was not updated right away.

The syntax menu didn't work in compatible mode.

After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts"
reported no matching tag.  Clear the cached tag name.

In Insert mode the matchparen plugin highlighted the wrong paren when there is
a string just next to a paren.

GTK: After opening a new tab page the text was sometimes not drawn correctly.
Flush output and catch up with events when updating the tab page labels.

In the GUI, using CTRL-W q to close the last window of a tab page could cause
a crash.

GTK: The tab pages line menu was not converted from 'encoding' to utf-8.

Typing a multi-byte character or a special key at the hit-enter prompt did not
work.

When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
cursor left when it was after the end of the line, even though it's allowed to
be there.

Added test for using tab pages.

towupper() and towlower() were not used, because of checking for
__STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz)

For ":map <expr>" forbid changing the text, jumping to another buffer and
using ":normal" to avoid nasty side effects.

--- fixes and changes since Vim 7.0g ---

Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef.
(Gary Johnson)

Report +reltime feature in ":version" output.

The tar and zip plugins detect failure to get the contents of the archive and
edit the file as-is.

When the result of 'guitablabel' is empty fall back to the default label.

Fixed crash when using ":insert" in a while loop and missing "endwhile".

"gt" and other commands could move to another window when |textlock| active
and when the command line window was open.

Spell checking a file with syntax highlighting and a bad word at the end of
the line is ignored could make "]s" hang.

Mac: inputdialog() didn't work when compiled with big features.

Interrupting ":vimgrep" while it is busy loading a file left a modified and
hidden buffer behind.  Use enter_cleanup() and leave_cleanup() around
wipe_buffer().

When making 'keymap' empty the b:keymap_name variable wasn't deleted.

Using CTRL-N that searches a long time, pressing space to interrupt the
searching and accept the first match, the popup menu was still displayed
briefly.

When setting the Vim window height with -geometry the 'window' option could be
at a value that makes CTRL-F behave differently.

When opening a quickfix window in two tabs they used different buffers,
causing redrawing problems later.  Now use the same buffer for all quickfix
windows. (Yegappan Lakshmanan)

When 'mousefocus' is set moving the mouse to the text tab pages line would
move focus to the first window.  Also, the mouse pointer would jump to the
active window.

In a session file, when an empty buffer is wiped out, do this silently.

When one window has the cursor on the last line and another window is resized
to make that window smaller, the cursor line could go below the displayed
lines.  In win_new_height() subtract one from the available space.
Also avoid that using "~" lines makes the window scroll down.

Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the
'cpo' option isn't set properly, because it was already set and restored.
Added the <special> argument to ":map", so that 'cpo' doesn't need to be
changed to be able to use <> notation.  Also do this for ":menu" for
consistency.

When using "/encoding=abc" in a spell word list, only "bc" was used.

When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't
work. (Mike Williams)

Mac: When building with "--disable-gui" the install directory would still be
"/Applications" and Vim.app would be installed.  Now install in /usr/local as
usual for a console application.

GUI: when doing completion and there is one match and still searching for
another, the cursor was displayed at the end of the line instead of after the
match.  Now show the cursor after the match while still searching for matches.

GUI: The mouse shape changed on the statusline even when 'mouse' was empty and
they can't be dragged.

GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and
hitting Enter didn't select that button.  Removed GTK 1 specific code. (Neil
Bird)

When evaluating 'balloonexpr' takes a long time it could be called
recursively, which could cause a crash.

exists() could not be used to detect whether ":2match" is supported.  Added a
check for it specifically.

GTK1: Tab page labels didn't work. (Yegappan Lakshmanan)

Insert mode completion: When finding matches use 'ignorecase', but when adding
matches to the list don't use it, so that all words with different case are
added, "word", "Word" and "WORD".

When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n"
the rest of the line was highlighted as a match.

Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and
redirects the output.  Don't move the cursor to the command line if msg_silent
is set.

exists() ignored text after a function name and option name, which could
result in false positives.

exists() ignored characters after the recognized word, which can be wrong when
using a name with non-keyword characters.  Specifically, these calls no longer
allow characters after the name: exists('*funcname') exists('*funcname(...')
exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]')
exists('g:name.n')

Trigger the TabEnter autocommand only after entering the current window of the
tab page, otherwise the commands are executed with an invalid current window.

Win32: When using two monitors and Vim is on the second monitor, changing the
width of the Vim window could make it jump to the first monitor.

When scrolling back at the more prompt and the quitting a line of text would
be left behind when 'cmdheight' is 2 or more.

Fixed a few things for Insert mode completion, especially when typing BS,
CTRL-N or a printable character while still searching for matches.


==============================================================================
VERSION 7.1					*version-7.1* *version7.1*

This section is about improvements made between version 7.0 and 7.1.

This is a bug-fix release, there are no fancy new features.


Changed							*changed-7.1*
-------

Added setting 'mouse' in vimrc_example.vim.

When building with MZscheme also look for include files in the "plt"
subdirectory.  That's where they are for FreeBSD.

The Ruby interface module is now called "Vim" instead of "VIM".  But "VIM" is
an alias, so it's backwards compatible. (Tim Pope)


Added							*added-7.1*
-----

New syntax files:
	/var/log/messages (Yakov Lerner)
	Autohotkey (Nikolai Weibull)
	AutoIt v3 (Jared Breland)
	Bazaar commit file "bzr". (Dmitry Vasiliev)
	Cdrdao TOC (Nikolai Weibull)
	Cmusrc (Nikolai Weibull)
	Conary recipe (rPath Inc)
	Framescript (Nikolai Weibull)
	FreeBasic (Mark Manning)
	Hamster (David Fishburn)
	IBasic (Mark Manning)
	Initng (Elan Ruusamae)
	Ldapconf (Nikolai Weibull)
	Litestep (Nikolai Weibull)
	Privoxy actions file (Doug Kearns)
	Streaming Descriptors "sd" (Puria Nafisi Azizi)

New tutor files:
	Czech (Lubos Turek)
	Hungarian (Arpad Horvath)
	Turkish (Serkan kkk)
	utf-8 version of Greek tutor.
	utf-8 version of Russian tutor.
	utf-8 version of Slowak tutor.

New filetype plugins:
	Bst (Tim Pope)
	Cobol (Tim Pope)
	Fvwm (Gautam Iyer)
	Hamster (David Fishburn)
	Django HTML template (Dave Hodder)

New indent files:
	Bst (Tim Pope)
	Cobol (Tim Pope)
	Hamster (David Fishburn)
	Django HTML template (Dave Hodder)
	Javascript
	JSP (David Fishburn)

New keymap files:
	Bulgarian (Boyko Bantchev)
	Mongolian (Natsagdorj Shagdar)
	Thaana (Ibrahim Fayaz)
	Vietnamese (Samuel Thibault)

Other new runtime files:
	Ada support files. (Neil Bird, Martin Krischik)
	Slovenian menu translations (Mojca Miklavec)
	Mono C# compiler plugin (Jarek Sobiecki)


Fixed							*fixed-7.1*
-----

Could not build the Win32s version.  Added a few structure definitions in
src/gui_w32.c


Patch 7.0.001
Problem:    ":set spellsuggest+=10" does not work. (Suresh Govindachar)
Solution:   Add P_COMMA to the 'spellsuggest' flags.
Files:	    src/option.c

Patch 7.0.002
Problem:    C omni completion has a problem with tags files with a path
	    containing "#" or "%".
Solution:   Escape these characters. (Sebastian Baberowski)
Files:	    runtime/autoload/ccomplete.vim

Patch 7.0.003
Problem:    GUI: clicking in the lower part of a label in the tab pages line
	    while 'mousefocus' is set may warp the mouse pointer. (Robert
	    Webb)
Solution:   Check for a negative mouse position.
Files:	    src/gui.c

Patch 7.0.004
Problem:    Compiler warning for debug_saved used before set. (Todd Blumer)
Solution:   Remove the "else" for calling save_dbg_stuff().
Files:	    src/ex_docmd.c

Patch 7.0.005 (extra)
Problem:    Win32: The installer doesn't remove the "autoload" and "spell"
	    directories. (David Fishburn)
Solution:   Add the directories to the list to be removed.
Files:	    nsis/gvim.nsi

Patch 7.0.006
Problem:    Mac: "make shadow" doesn't make a link for infplist.xml. (Axel
	    Kielhorn)
Solution:   Make the link.
Files:	    src/Makefile

Patch 7.0.007
Problem:    AIX: compiling fails for message.c. (Ruediger Hornig)
Solution:   Move the #if outside of memchr().
Files:	    src/message.c

Patch 7.0.008
Problem:    Can't call a function that uses both <SID> and {expr}. (Thomas)
Solution:   Check both the expanded and unexpanded name for <SID>.
Files:	    src/eval.c

Patch 7.0.009
Problem:    ml_get errors with both 'sidescroll' and 'spell' set.
Solution:   Use ml_get_buf() instead of ml_get(), get the line from the right
	    buffer, not the current one.
Files:	    src/spell.c

Patch 7.0.010
Problem:    The spellfile plugin required typing login name and password.
Solution:   Use "anonymous" and "vim7user" by default.  No need to setup a
	    .netrc file.
Files:	    runtime/autoload/spellfile.vim

Patch 7.0.011
Problem:    Can't compile without the folding and with the eval feature.
Solution:   Add an #ifdef. (Vallimar)
Files:	    src/option.c

Patch 7.0.012
Problem:    Using the matchparen plugin, moving the cursor in Insert mode to a
	    shorter line that ends in a brace, changes the preferred column
Solution:   Use winsaveview()/winrestview() instead of getpos()/setpos().
Files:	    runtime/plugin/matchparen.vim

Patch 7.0.013
Problem:    Insert mode completion: using CTRL-L to add an extra character
	    also deselects the current match, making it impossible to use
	    CTRL-L a second time.
Solution:   Keep the current match.  Also make CTRL-L work at the original
	    text, using the first displayed match.
Files:	    src/edit.c

Patch 7.0.014
Problem:    Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
Solution:   Disable some code for Motif 1.2 and older.
Files:	    src/gui_xmebw.c

Patch 7.0.015
Problem:    Athena: compilation problems with modern compiler.
Solution:   Avoid type casts for lvalue. (Alexey Froloff)
Files:	    src/gui_at_fs.c

Patch 7.0.016
Problem:    Printing doesn't work for "dec-mcs" encoding.
Solution:   Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of
	    recognized 8-bit encodings. (Mike Williams)
Files:	    src/mbyte.c

Patch 7.0.017 (after 7.0.014)
Problem:    Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
Solution:   Adjust defines for Motif 1.2 and older.
Files:	    src/gui_xmebw.c

Patch 7.0.018
Problem:    VMS: plugins are not loaded on startup.
Solution:   Remove "**" from the path. (Zoltan Arpadffy)
Files:	    src/main.c

Patch 7.0.019
Problem:    Repeating "VjA789" may cause a crash. (James Vega)
Solution:   Check the cursor column after moving it to another line.
Files:	    src/ops.c

Patch 7.0.020
Problem:    Crash when using 'mousefocus'. (William Fulton)
Solution:   Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert)
Files:	    src/gui.c

Patch 7.0.021
Problem:    Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber)
Solution:   Check for valid submatches after matching the pattern.
Files:	    src/quickfix.c

Patch 7.0.022
Problem:    Using buffer.append() in Ruby may append the line to the wrong
	    buffer. (Alex Norman)
Solution:   Properly switch to the buffer to do the appending.  Also for
	    buffer.delete() and setting a buffer line.
Files:	    src/if_ruby.c

Patch 7.0.023
Problem:    Crash when doing spell completion in an empty line and pressing
	    CTRL-E.
Solution:   Check for a zero pointer. (James Vega)
	    Also handle a situation without a matching pattern better, report
	    "No matches" instead of remaining in undefined CTRL-X mode.  And
	    get out of CTRL-X mode when typing a letter.
Files:	    src/edit.c

Patch 7.0.024
Problem:    It is possible to set arbitrary "v:" variables.
Solution:   Disallow setting "v:" variables that are not predefined.
Files:	    src/eval.c

Patch 7.0.025
Problem:    Crash when removing an element of a:000.  (Nikolai Weibull)
Solution:   Mark the a:000 list with VAR_FIXED.
Files:	    src/eval.c

Patch 7.0.026
Problem:    Using libcall() may show an old error.
Solution:   Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira)
Files:	    src/os_unix.c

Patch 7.0.027 (extra)
Problem:    Win32: When compiled with SNIFF gvim may hang on exit.
Solution:   Translate and dispatch the WM_USER message. (Mathias Michaelis)
Files:	    src/gui_w48.c

Patch 7.0.028 (extra)
Problem:    OS/2: Vim doesn't compile with gcc 3.2.1.
Solution:   Add argument to after_pathsep(), don't define vim_handle_signal(),
	    define HAVE_STDARG_H. (David Sanders)
Files:	    src/os_unix.c, src/vim.h, src/os_os2_cfg.h

Patch 7.0.029
Problem:    getchar() may not position the cursor after a space.
Solution:   Position the cursor explicitly.
Files:	    src/eval.c

Patch 7.0.030
Problem:    The ":compiler" command can't be used in a FileChangedRO event.
	    (Hari Krishna Dara)
Solution:   Add the CMDWIN flag to the ":compiler" command.
Files:	    src/ex_cmds.h

Patch 7.0.031
Problem:    When deleting a buffer the buffer-local mappings for Select mode
	    remain.
Solution:   Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner)
Files:	    src/vim.h

Patch 7.0.032 (extra, after 7.0.027)
Problem:    Missing semicolon.
Solution:   Add the semicolon.
Files:	    src/gui_w48.c

Patch 7.0.033
Problem:    When pasting text, with the menu or CTRL-V, autoindent is removed.
Solution:   Use "x<BS>" to avoid indent to be removed. (Benji Fisher)
Files:	    runtime/autoload/paste.vim

Patch 7.0.034
Problem:    After doing completion and typing more characters or using BS
	    repeating with "." didn't work properly. (Martin Stubenschrott)
Solution:   Don't put BS and other characters in the redo buffer right away,
	    do this when finishing completion.
Files:	    src/edit.c

Patch 7.0.035
Problem:    Insert mode completion works when typed but not when replayed from
	    a register. (Hari Krishna Dara)
	    Also: Mappings for Insert mode completion don't always work.
Solution:   When finding a non-completion key in the input don't interrupt
	    completion when it wasn't typed.
	    Do use mappings when checking for typeahead while still finding
	    completions.  Avoids that completion is interrupted too soon.
	    Use "compl_pending" in a different way.
Files:	    src/edit.c

Patch 7.0.036
Problem:    Can't compile with small features and syntax highlighting or the
	    diff feature.
Solution:   Define LINE_ATTR whenever syntax highlighting or the diff feature
	    is enabled.
Files:	    src/screen.c

Patch 7.0.037
Problem:    Crash when resizing the GUI window vertically when there is a line
	    that doesn't fit.
Solution:   Don't redraw while the screen data is invalid.
Files:	    src/screen.c

Patch 7.0.038
Problem:    When calling complete() from an Insert mode expression mapping
	    text could be inserted in an improper way.
Solution:   Make undo_allowed() global and use it in complete().
Files:	    src/undo.c, src/proto/undo.pro, src/eval.c

Patch 7.0.039
Problem:    Calling inputdialog() with a third argument in the console doesn't
	    work.
Solution:   Make a separate function for input() and inputdialog(). (Yegappan
	    Lakshmanan)
Files:	    src/eval.c

Patch 7.0.040
Problem:    When 'cmdheight' is larger than 1 using inputlist() or selecting
	    a spell suggestion with the mouse gets the wrong entry.
Solution:   Start listing the first alternative on the last line of the screen.
Files:	    src/eval.c, src/spell.c

Patch 7.0.041
Problem:    cursor([1, 1]) doesn't work. (Peter Hodge)
Solution:   Allow leaving out the third item of the list and use zero for the
	    virtual column offset.
Files:	    src/eval.c

Patch 7.0.042
Problem:    When pasting a block of text in Insert mode Vim hangs or crashes.
	    (Noam Halevy)
Solution:   Avoid that the cursor is positioned past the NUL of a line.
Files:	    src/ops.c

Patch 7.0.043
Problem:    Using "%!" at the start of 'statusline' doesn't work.
Solution:   Recognize the special item when the option is being set.
Files:	    src/option.c

Patch 7.0.044
Problem:    Perl: setting a buffer line in another buffer may result in
	    changing the current buffer.
Solution:   Properly change to the buffer to be changed.
Files:	    src/if_perl.xs

Patch 7.0.045 (extra)
Problem:    Win32: Warnings when compiling OLE version with MSVC 2005.
Solution:   Move including vim.h to before windows.h. (Ilya Bobir)
Files:	    src/if_ole.cpp

Patch 7.0.046
Problem:    The matchparen plugin ignores parens in strings, but not in single
	    quotes, often marked with "character".
Solution:   Also ignore parens in syntax items matching "character".
Files:	    runtime/plugin/matchparen.vim

Patch 7.0.047
Problem:    When running configure the exit status is wrong.
Solution:   Handle the exit status properly. (Matthew Woehlke)
Files:	    configure, src/configure

Patch 7.0.048
Problem:    Writing a compressed file fails when there are parens in the name.
	    (Wang Jian)
Solution:   Put quotes around the temp file name.
Files:	    runtime/autoload/gzip.vim

Patch 7.0.049
Problem:    Some TCL scripts are not recognized. (Steven Atkinson)
Solution:   Check for "exec wish" in the file.
Files:	    runtime/scripts.vim

Patch 7.0.050
Problem:    After using the netbeans interface close command a stale pointer
	    may be used.
Solution:   Clear the pointer to the closed buffer. (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.0.051 (after 7.0.44)
Problem:    The Perl interface doesn't compile or doesn't work properly.
Solution:   Remove the spaces before #ifdef and avoid an empty line above it.
Files:	    src/if_perl.xs

Patch 7.0.052
Problem:    The user may not be aware that the Vim server allows others more
	    functionality than desired.
Solution:   When running Vim as root don't become a Vim server without an
	    explicit --servername argument.
Files:	    src/main.c

Patch 7.0.053
Problem:    Shortening a directory name may fail when there are multi-byte
	    characters.
Solution:   Copy the correct bytes. (Titov Anatoly)
Files:	    src/misc1.c

Patch 7.0.054
Problem:    Mac: Using a menu name that only has a mnemonic or accelerator
	    causes a crash.  (Elliot Shank)
Solution:   Check for an empty menu name.  Also delete empty submenus that
	    were created before detecting the error.
Files:	    src/menu.c

Patch 7.0.055
Problem:    ":startinsert" in a CmdwinEnter autocommand doesn't take immediate
	    effect. (Bradley White)
Solution:   Put a NOP key in the typeahead buffer.  Also avoid that using
	    CTRL-C to go back to the command line moves the cursor left.
Files:	    src/edit.c, src/ex_getln.c

Patch 7.0.056
Problem:    "#!something" gives an error message.
Solution:   Ignore this line, so that it can be used in an executable Vim
	    script.
Files:	    src/ex_docmd.c

Patch 7.0.057 (extra, after 7.0.45)
Problem:    Win32: Compilation problem with Borland C 5.5.
Solution:   Include vim.h as before. (Mark S. Williams)
Files:	    src/if_ole.cpp

Patch 7.0.058
Problem:    The gbk and gb18030 encodings are not recognized.
Solution:   Add aliases to cp936. (Edward L. Fox)
Files:	    src/mbyte.c

Patch 7.0.059
Problem:    The Perl interface doesn't compile with ActiveState Perl 5.8.8.
Solution:   Remove the __attribute__() items. (Liu Yubao)
Files:	    src/if_perl.xs

Patch 7.0.060 (after 7.0.51)
Problem:    Code for temporarily switching to another buffer is duplicated in
	    quite a few places.
Solution:   Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is
	    not defined.
Files:	    src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c,
	    src/if_perl.xs, src/quickfix.c, src/structs.h

Patch 7.0.061
Problem:    Insert mode completion for Vim commands may crash if there is
	    nothing to complete.
Solution:   Instead of freeing the pattern make it empty, so that a "not
	    found" error is given. (Yukihiro Nakadaira)
Files:	    src/edit.c

Patch 7.0.062
Problem:    Mac: Crash when using the popup menu for spell correction.  The
	    popup menu appears twice when letting go of the right mouse button
	    early.
Solution:   Don't show the popup menu on the release of the right mouse
	    button.  Also check that a menu pointer is actually valid.
Files:	    src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c

Patch 7.0.063
Problem:    Tiny chance for a memory leak. (coverity)
Solution:   Free pointer when next memory allocation fails.
Files:	    src/eval.c

Patch 7.0.064
Problem:    Using uninitialized variable. (Tony Mechelynck)
Solution:   When not used set "temp" to zero.  Also avoid a warning for
	    "files" in ins_compl_dictionaries().
Files:	    src/edit.c

Patch 7.0.065 (extra)
Problem:    Mac: left-right movement of the scrollwheel causes up-down
	    scrolling.
Solution:   Ignore mouse wheel events that are not up-down. (Nicolas Weber)
Files:	    src/gui_mac.c

Patch 7.0.066
Problem:    After the popup menu for Insert mode completion overlaps the tab
	    pages line it is not completely removed.
Solution:   Redraw the tab pages line after removing the popup menu. (Ori
	    Avtalion)
Files:	    src/popupmnu.c

Patch 7.0.067
Problem:    Undo doesn't always work properly when using "scim" input method.
	    Undo is split up when using preediting.
Solution:   Reset xim_has_preediting also when preedit_start_col is not
	    MAXCOL.  Don't split undo when <Left> is used while preediting.
	    (Yukihiro Nakadaira)
Files:	    src/edit.c, src/mbyte.c

Patch 7.0.068
Problem:    When 'ignorecase' is set and using Insert mode completion,
	    typing characters to change the list of matches, case is not
	    ignored. (Hugo Ahlenius)
Solution:   Store the 'ignorecase' flag with the matches where needed.
Files:	    src/edit.c, src/search.c, src/spell.c

Patch 7.0.069
Problem:    Setting 'guitablabel' to %!expand(\%)  causes Vim to free an
	    invalid pointer. (Kim Schulz)
Solution:   Don't try freeing a constant string pointer.
Files:	    src/buffer.c

Patch 7.0.070
Problem:    Compiler warnings for shadowed variables and uninitialized
	    variables.
Solution:   Rename variables such as "index", "msg" and "dup".  Initialize
	    variables.
Files:	    src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c,
	    src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c,
	    src/memline.c, src/netbeans.c, src/normal.c, src/option.c,
	    src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c,
	    src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c,
	    src/version.c

Patch 7.0.071
Problem:    Using an empty search pattern may cause a crash.
Solution:   Avoid using a NULL pointer.
Files:	    src/search.c

Patch 7.0.072
Problem:    When starting the GUI fails there is no way to adjust settings or
	    do something else.
Solution:   Add the GUIFailed autocommand event.
Files:	    src/fileio.c, src/gui.c, src/vim.h

Patch 7.0.073
Problem:    Insert mode completion: Typing <CR> sometimes selects the original
	    text instead of keeping what was typed.  (Justin Constantino)
Solution:   Don't let <CR> select the original text if there is no popup menu.
Files:	    src/edit.c

Patch 7.0.074 (extra)
Problem:    Win32: tooltips were not converted from 'encoding' to Unicode.
Solution:   Set the tooltip to use Unicode and do the conversion.  Also
	    cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira)
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 7.0.075
Problem:    winsaveview() did not store the actual value of the desired cursor
	    column.  This could move the cursor in the matchparen plugin.
Solution:   Call update_curswant() before using the value w_curswant.
Files:	    src/eval.c

Patch 7.0.076 (after 7.0.010)
Problem:    Automatic downloading of spell files only works for ftp.
Solution:   Don't add login and password for non-ftp URLs. (Alexander Patrakov)
Files:	    runtime/autoload/spellfile.vim

Patch 7.0.077
Problem:    ":unlet v:this_session" causes a crash. (Marius Roets)
Solution:   When trying to unlet a fixed variable give an error message.
Files:	    src/eval.c

Patch 7.0.078
Problem:    There are two error messages E46.
Solution:   Change the number for the sandbox message to E794.
Files:	    src/globals.h

Patch 7.0.079
Problem:    Russian tutor doesn't work when 'encoding' is "utf-8".
Solution:   Use tutor.ru.utf-8 as the master, and generate the other encodings
	    from it.  Select the right tutor depending on 'encoding'. (Alexey
	    Froloff)
Files:	    runtime/tutor/Makefile, runtime/tutor/tutor.vim,
	    runtime/tutor/tutor.ru.utf-8

Patch 7.0.080
Problem:    Generating auto/pathdef.c fails for CFLAGS with a backslash.
Solution:   Double backslashes in the string. (Alexey Froloff)
Files:	    src/Makefile

Patch 7.0.081
Problem:    Command line completion doesn't work for a shell command with an
	    absolute path.
Solution:   Don't use $PATH when there is an absolute path.
Files:	    src/ex_getln.c

Patch 7.0.082
Problem:    Calling a function that waits for input may cause List and
	    Dictionary arguments to be freed by the garbage collector.
Solution:   Keep a list of all arguments to internal functions.
Files:	    src/eval.c

Patch 7.0.083
Problem:    Clicking with the mouse on an item for inputlist() doesn't work
	    when 'compatible' is set and/or when 'cmdheight' is more than one.
	    (Christian J.  Robinson)
Solution:   Also decrement "lines_left" when 'more' isn't set.  Set
	    "cmdline_row" to zero to get all mouse events.
Files:	    src/message.c, src/misc1.c

Patch 7.0.084
Problem:    The garbage collector may do its work while some Lists or
	    Dictionaries are used internally, e.g., by ":echo" that runs into
	    the more-prompt or ":echo [garbagecollect()]".
Solution:   Only do garbage collection when waiting for a character at the
	    toplevel.  Let garbagecollect() set a flag that is handled at the
	    toplevel before waiting for a character.
Files:	    src/eval.c, src/getchar.c, src/globals.h, src/main.c

Patch 7.0.085
Problem:    When doing "make test" the viminfo file is modified.
Solution:   Use another viminfo file after setting 'compatible'.
Files:	    src/testdir/test56.in

Patch 7.0.086
Problem:    getqflist() returns entries for pattern and text with the number
	    zero.  Passing these to setqflist() results in the string "0".
Solution:   Use an empty string instead of the number zero.
Files:	    src/quickfix.c

Patch 7.0.087
Problem:    After ":file fname" and ":saveas fname" the 'autochdir' option
	    does not take effect. (Yakov Lerner)
	    Commands for handling 'autochdir' are repeated many times.
Solution:   Add the DO_AUTOCHDIR macro and do_autochdir().  Use it for
	    ":file fname" and ":saveas fname".
Files:	    src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h,
	    src/netbeans.c, src/option.c, src/window.c

Patch 7.0.088
Problem:    When compiled with Perl the generated prototypes have "extern"
	    unnecessarily added.
Solution:   Remove the "-pipe" argument from PERL_CFLAGS.
Files:	    src/auto/configure, src/configure.in

Patch 7.0.089
Problem:    "ga" does not work properly for a non-Unicode multi-byte encoding.
Solution:   Only check for composing chars for utf-8. (Taro Muraoka)
Files:	    src/ex_cmds.c

Patch 7.0.090
Problem:    Cancelling the conform() dialog on the console with Esc requires
	    typing it twice. (Benji Fisher)
Solution:   When the start of an escape sequence is found use 'timeoutlen' or
	    'ttimeoutlen'.
Files:	    src/misc1.c

Patch 7.0.091
Problem:    Using winrestview() while 'showcmd' is set causes the cursor to be
	    displayed in the wrong position. (Yakov Lerner)
Solution:   Set the window topline properly.
Files:	    src/eval.c

Patch 7.0.092 (after 7.0.082 and 7.0.084)
Problem:    The list of internal function arguments is obsolete now that
	    garbage collection is only done at the toplevel.
Solution:   Remove the list of all arguments to internal functions.
Files:	    src/eval.c

Patch 7.0.093
Problem:    The matchparen plugin can't handle a 'matchpairs' value where a
	    colon is matched.
Solution:   Change the split() that is used to change 'matchpairs' into a
	    List.
Files:	    runtime/plugin/matchparen.vim

Patch 7.0.094
Problem:    When a hidden buffer is made the current buffer and another file
	    edited later, the file message will still be given.  Using
	    ":silent" also doesn't prevent the file message. (Marvin Renich)
Solution:   Reset the need_fileinfo flag when reading a file.  Don't set
	    need_fileinfo when msg_silent is set.
Files:	    src/buffer.c, src/fileio.c

Patch 7.0.095
Problem:    The Greek tutor is not available in utf-8.  "el" is used for the
	    language, only "gr" for the country is recognized.
Solution:   Add the utf-8 Greek tutor.  Use it for conversion to iso-8859-7
	    and cp737.  (Lefteris Dimitroulakis)
Files:	    runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8,
	    runtime/tutor/tutor.vim

Patch 7.0.096
Problem:    taglist() returns the filename relative to the tags file, while
	    the directory of the tags file is unknown. (Hari Krishna Dara)
Solution:   Expand the file name. (Yegappan Lakshmanan)
Files:	    src/tag.c

Patch 7.0.097
Problem:    ":tabclose N" that closes another tab page does not remove the tab
	    pages line.  Same problem when using the mouse.
Solution:   Adjust the tab pages line when needed in tabpage_close_other().
Files:	    src/ex_docmd.c

Patch 7.0.098
Problem:    Redirecting command output in a cmdline completion function
	    doesn't work. (Hari Krishna Dara)
Solution:   Enable redirection when redirection is started.
Files:	    src/ex_docmd.c, src/ex_getln.c

Patch 7.0.099
Problem:    GUI: When the popup menu is visible using the scrollbar messes up
	    the display.
Solution:   Disallow scrolling the current window.  Redraw the popup menu
	    after scrolling another window.
Files:	    src/gui.c

Patch 7.0.100
Problem:    "zug" may report the wrong filename. (Lawrence Kesteloot)
Solution:   Call home_replace() to fill NameBuff[].
Files:	    src/spell.c

Patch 7.0.101
Problem:    When the "~/.vim/spell" directory does not exist "zg" may create
	    a wrong directory.  "zw" doesn't work.
Solution:   Use the directory of the file name instead of NameBuff.  For "zw"
	    not only remove a good word but also add the word with "!".
Files:	    src/spell.c

Patch 7.0.102
Problem:    Redrawing cmdline is not correct when using SCIM.
Solution:   Don't call im_get_status(). (Yukihiro Nakadaira)
Files:	    src/ex_getln.c

Patch 7.0.103 (after 7.0.101)
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Init variable.
Files:	    src/spell.c

Patch 7.0.104
Problem:    The CursorHoldI event only triggers once in Insert mode.  It also
	    triggers after CTRL-V and other two-key commands.
Solution:   Set "did_cursorhold" before getting a second key.  Reset
	    "did_cursorhold" after handling a command.
Files:	    src/edit.c, src/fileio.c

Patch 7.0.105
Problem:    When using incremental search the statusline ruler isn't updated.
	    (Christoph Koegl)
Solution:   Update the statusline when it contains the ruler.
Files:	    src/ex_getln.c

Patch 7.0.106
Problem:    The spell popup menu uses ":amenu", triggering mappings.  Other
	    PopupMenu autocommands are removed. (John Little)
Solution:   Use ":anoremenu" and use an autocmd group.
Files:	    runtime/menu.vim

Patch 7.0.107
Problem:    Incremental search doesn't redraw the text tabline. (Ilya Bobir)
	    Also happens in other situations with one window in a tab page.
Solution:   Redraw the tabline after clearing the screen.
Files:	    src/screen.c

Patch 7.0.108 (extra)
Problem:    Amiga: Compilation problem.
Solution:   Have mch_mkdir() return a failure flag. (Willy Catteau)
Files:	    src/os_amiga.c, src/proto/os_amiga.pro

Patch 7.0.109
Problem:    Lisp indenting is confused by escaped quotes in strings. (Dorai
	    Sitaram)
Solution:   Check for backslash inside strings. (Sergey Khorev)
Files:	    src/misc1.c

Patch 7.0.110
Problem:    Amiga: Compilation problems when not using libnix.
Solution:   Change a few #ifdefs. (Willy Catteau)
Files:	    src/memfile.c

Patch 7.0.111
Problem:    The gzip plugin can't handle filenames with single quotes.
Solution:   Add and use the shellescape() function. (partly by Alexey Froloff)
Files:	    runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c,
	    src/mbyte.c, src/misc2.c, src/proto/misc2.pro

Patch 7.0.112
Problem:    Python interface does not work with Python 2.5.
Solution:   Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes)
Files:	    src/if_python.c

Patch 7.0.113
Problem:    Using CTRL-L in Insert completion when there is no current match
	    may cause a crash. (Yukihiro Nakadaira)
Solution:   Check for compl_leader to be NULL
Files:	    src/edit.c

Patch 7.0.114
Problem:    When aborting an insert with CTRL-C an extra undo point is
	    created in the GUI. (Yukihiro Nakadaira)
Solution:   Call gotchars() only when advancing.
Files:	    src/getchar.c

Patch 7.0.115
Problem:    When 'ignorecase' is set, Insert mode completion only adds "foo"
	    and not "Foo" when both are found.
	    A found match isn't displayed right away when 'completeopt' does
	    not have "menu" or "menuone".
Solution:   Do not ignore case when checking if a completion match already
	    exists.  call ins_compl_check_keys() also when not using a popup
	    menu. (Yukihiro Nakadaira)
Files:	    src/edit.c

Patch 7.0.116
Problem:    64 bit Windows version reports "32 bit" in the ":version" output.
	    (M. Veerman)
Solution:   Change the text for Win64.
Files:	    src/version.c

Patch 7.0.117
Problem:    Using "extend" on a syntax item inside a region with "keepend", an
	    intermediate item may be truncated.
	    When applying the "keepend" and there is an offset to the end
	    pattern the highlighting of a contained item isn't adjusted.
Solution:   Use the seen_keepend flag to remember when to apply the "keepend"
	    flag.  Adjust the keepend highlighting properly. (Ilya Bobir)
Files:	    src/syntax.c

Patch 7.0.118
Problem:    printf() does not do zero padding for strings.
Solution:   Do allow zero padding for strings.
Files:	    src/message.c

Patch 7.0.119
Problem:    When going back from Insert to Normal mode the CursorHold event
	    doesn't trigger. (Yakov Lerner)
Solution:   Reset "did_cursorhold" when leaving Insert mode.
Files:	    src/edit.c

Patch 7.0.120
Problem:    Crash when using CTRL-R = at the command line and entering
	    "getreg('=')". (James Vega)
Solution:   Avoid recursiveness of evaluating the = register.
Files:	    src/ops.c

Patch 7.0.121
Problem:    GUI: Dragging the last status line doesn't work when there is a
	    text tabline.  (Markus Wolf)
Solution:   Take the text tabline into account when deciding to start modeless
	    selection.
Files:	    src/gui.c

Patch 7.0.122
Problem:    GUI: When clearing after a bold, double-wide character half a
	    character may be drawn.
Solution:   Check for double-wide character and redraw it. (Yukihiro Nakadaira)
Files:	    src/screen.c

Patch 7.0.123
Problem:    On SCO Openserver configure selects the wrong terminal library.
Solution:   Put terminfo before the other libraries. (Roger Cornelius)
	    Also fix a small problem compiling on Mac without Darwin.
Files:	    src/configure.in, src/auto/configure

Patch 7.0.124
Problem:    getwinvar() obtains a dictionary with window-local variables, but
	    it's always for the current window.
Solution:   Get the variables of the specified window. (Geoff Reedy)
Files:	    src/eval.c

Patch 7.0.125
Problem:    When "autoselect" is in the 'clipboard' option then the '< and '>
	    marks are set while Visual mode is still active.
Solution:   Don't set the '< and '> marks when yanking the selected area for
	    the clipboard.
Files:	    src/normal.c

Patch 7.0.126
Problem:    When 'formatexpr' uses setline() and later internal formatting is
	    used undo information is not correct. (Jiri Cerny, Benji Fisher)
Solution:   Set ins_need_undo after using 'formatexpr'.
Files:	    src/edit.c

Patch 7.0.127
Problem:    Crash when swap files has invalid timestamp.
Solution:   Check return value of ctime() for being NULL.
Files:	    src/memline.c

Patch 7.0.128
Problem:    GUI: when closing gvim is cancelled because there is a changed
	    buffer the screen isn't updated to show the changed buffer in the
	    current window.  (Krzysztof Kacprzak)
Solution:   Redraw when closing gvim is cancelled.
Files:	    src/gui.c

Patch 7.0.129
Problem:    GTK GUI: the GTK file dialog can't handle a relative path.
Solution:   Make the initial directory a full path before passing it to GTK.
	    (James Vega)  Also postpone adding the default file name until
	    after setting the directory.
Files:	    src/gui_gtk.c

Patch 7.0.130 (extra)
Problem:    Win32: Trying to edit or write devices may cause Vim to get stuck.
Solution:   Add the 'opendevice' option, default off.  Disallow
	    reading/writing from/to devices when it's off.
	    Also detect more devices by the full name starting with "\\.\".
Files:	    runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h,
	    src/os_win32.c

Patch 7.0.131
Problem:    Win32: "vim -r" does not list all the swap files.
Solution:   Also check for swap files starting with a dot.
Files:	    src/memline.c

Patch 7.0.132 (after 7.0.130)
Problem:    Win32: Crash when Vim reads from stdin.
Solution:   Only use mch_nodetype() when there is a file name.
Files:	    src/fileio.c

Patch 7.0.133
Problem:    When searching included files messages are added to the history.
Solution:   Set msg_hist_off for messages about scanning included files.
            Set msg_silent to avoid message about wrapping around.
Files:	    src/edit.c, src/globals.h, src/message.c, src/search.c

Patch 7.0.134
Problem:    Crash when comparing a recursively looped List or Dictionary.
Solution:   Limit recursiveness for comparing to 1000.
Files:	    src/eval.c

Patch 7.0.135
Problem:    Crash when garbage collecting list or dict with loop.
Solution:   Don't use DEL_REFCOUNT but don't recurse into Lists and
	    Dictionaries when freeing them in the garbage collector.
	    Also add allocated Dictionaries to the list of Dictionaries to
	    avoid leaking memory.
Files:	    src/eval.c, src/proto/eval.pro, src/tag.c

Patch 7.0.136
Problem:    Using "O" while matching parens are highlighted may not remove the
	    highlighting. (Ilya Bobir)
Solution:   Also trigger CursorMoved when a line is inserted under the cursor.
Files:	    src/misc1.c

Patch 7.0.137
Problem:    Configure check for big features is wrong.
Solution:   Change "==" to "=". (Martti Kuparinen)
Files:	    src/auto/configure, src/configure.in

Patch 7.0.138 (extra)
Problem:    Mac: modifiers don't work with function keys.
Solution:   Use GetEventParameter() to obtain modifiers. (Nicolas Weber)
Files:	    src/gui_mac.c

Patch 7.0.139
Problem:    Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another
	    tab page does not prepare for undo properly. (Stefano Zacchiroli)
Solution:   Call start_arrow() before switching tab page.
Files:	    src/edit.c

Patch 7.0.140 (after 7.0.134)
Problem:    Comparing recursively looped List or Dictionary doesn't work well.
Solution:   Detect comparing a List or Dictionary with itself.
Files:	    src/eval.c

Patch 7.0.141
Problem:    When pasting a while line on the command line an extra CR is added
	    literally.
Solution:   Don't add the trailing CR when pasting with the mouse.
Files:	    src/ex_getln.c, src/proto/ops.pro, src/ops.c

Patch 7.0.142
Problem:    Using the middle mouse button in Select mode to paste text results
	    in an extra "y". (Kriton Kyrimis)
Solution:   Let the middle mouse button replace the selected text with the
	    contents of the clipboard.
Files:	    src/normal.c

Patch 7.0.143
Problem:    Setting 'scroll' to its default value was not handled correctly.
Solution:   Compare the right field to PV_SCROLL.
Files:	    src/option.c

Patch 7.0.144
Problem:    May compare two unrelated pointers when matching a pattern against
	    a string.  (Dominique Pelle)
Solution:   Avoid calling reg_getline() when REG_MULTI is false.
Files:	    src/regexp.c

Patch 7.0.145 (after 7.0.142)
Problem:    Compiler warning.
Solution:   Add type cast.
Files:	    src/normal.c

Patch 7.0.146
Problem:    When 'switchbuf' is set to "usetab" and the current tab has only a
	    quickfix window, jumping to an error always opens a new window.
	    Also, when the buffer is open in another tab page it's not found.
Solution:   Check for the "split" value of 'switchbuf' properly.  Search in
	    other tab pages for the desired buffer. (Yegappan Lakshmanan)
Files:	    src/buffer.c, src/quickfix.c

Patch 7.0.147
Problem:    When creating a session file and there are several tab pages and
	    some windows have a local directory a short file name may be used
	    when it's not valid. (Marius Roets)
	    A session with multiple tab pages may result in "No Name" buffers.
	    (Bill McCarthy)
Solution:   Don't enter tab pages when going through the list, only use a
	    pointer to the first window in each tab page.
            Use "tabedit" instead of "tabnew | edit" when possible.
Files:	    src/ex_docmd.c

Patch 7.0.148
Problem:    When doing "call a.xyz()" and "xyz" does not exist in dictionary
	    "a" there is no error message. (Yegappan Lakshmanan)
Solution:   Add the error message.
Files:	    src/eval.c

Patch 7.0.149
Problem:    When resizing a window that shows "~" lines the text sometimes
	    jumps down.
Solution:   Remove code that uses "~" lines in some situations.  Fix the
            computation of the screen line of the cursor.  Also set w_skipcol
	    to handle very long lines.
Files:	    src/misc1.c, src/window.c

Patch 7.0.150
Problem:    When resizing the Vim window scrollbinding doesn't work. (Yakov
	    Lerner)
Solution:   Do scrollbinding in set_shellsize().
Files:	    src/term.c

Patch 7.0.151
Problem:    Buttons in file dialog are not according to Gnome guidelines.
Solution:   Swap Cancel and Open buttons. (Stefano Zacchiroli)
Files:	    src/gui_gtk.c

Patch 7.0.152
Problem:    Crash when using lesstif 2.
Solution:   Fill in the extension field. (Ben Hutchings)
Files:	    src/gui_xmebw.c

Patch 7.0.153
Problem:    When using cscope and opening the temp file fails Vim crashes.
	    (Kaya Bekiroglu)
Solution:   Check for NULL pointer returned from mch_open().
Files:	    src/if_cscope.c

Patch 7.0.154
Problem:    When 'foldnestmax' is negative Vim can hang. (James Vega)
Solution:   Avoid the fold level becoming negative.
Files:	    src/fold.c, src/syntax.c

Patch 7.0.155
Problem:    When getchar() returns a mouse button click there is no way to get
	    the mouse coordinates.
Solution:   Add v:mouse_win, v:mouse_lnum and v:mouse_col.
Files:	    runtime/doc/eval.txt, src/eval.c, src/vim.h

Patch 7.0.156 (extra)
Problem:    Vim doesn't compile for Amiga OS 4.
Solution:   Various changes for Amiga OS4. (Peter Bengtsson)
Files:	    src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c,
	    src/os_amiga.c, src/os_amiga.h, src/pty.c

Patch 7.0.157
Problem:    When a function is used recursively the profiling information is
	    invalid. (Mikolaj Machowski)
Solution:   Put the start time on the stack instead of in the function.
Files:	    src/eval.c

Patch 7.0.158
Problem:    In a C file with ":set foldmethod=syntax", typing {<CR> on the
	    last line results in the cursor being in a closed fold. (Gautam
	    Iyer)
Solution:   Open fold after inserting a new line.
Files:	    src/edit.c

Patch 7.0.159
Problem:    When there is an I/O error in the swap file the cause of the error
	    cannot be seen.
Solution:   Use PERROR() instead of EMSG() where possible.
Files:	    src/memfile.c

Patch 7.0.160
Problem:    ":@a" echoes the command, Vi doesn't do that.
Solution:   Set the silent flag in the typeahead buffer to avoid echoing the
	    command.
Files:	    src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro

Patch 7.0.161
Problem:    Win32: Tab pages line popup menu isn't using the right encoding.
            (Yongwei Wu)
Solution:   Convert the text when necessary.  Also fixes the Find/Replace
	    dialog title. (Yegappan Lakshmanan)
Files:	    src/gui_w48.c

Patch 7.0.162
Problem:    "vim -o a b" when file "a" triggers the ATTENTION dialog,
	    selecting "Quit" exits Vim instead of editing "b" only.
	    When file "b" triggers the ATTENTION dialog selecting "Quit" or
	    "Abort" results in editing file "a" in that window.
Solution:   When selecting "Abort" exit Vim.  When selecting "Quit" close the
	    window.  Also avoid hit-enter prompt when selecting Abort.
Files:	    src/buffer.c, src/main.c

Patch 7.0.163
Problem:    Can't retrieve the position of a sign after it was set.
Solution:   Add the netbeans interface getAnno command. (Xavier de Gaye)
Files:	    runtime/doc/netbeans.txt, src/netbeans.c

Patch 7.0.164
Problem:    ":redir @+" doesn't work.
Solution:   Accept "@+" just like "@*". (Yegappan Lakshmanan)
Files:	    src/ex_docmd.c

Patch 7.0.165
Problem:    Using CTRL-L at the search prompt adds a "/" and other characters
	    without escaping, causing the pattern not to match.
Solution:   Escape special characters with a backslash.
Files:	    src/ex_getln.c

Patch 7.0.166
Problem:    Crash in cscope code when connection could not be opened.
	    (Kaya Bekiroglu)
Solution:   Check for the file descriptor to be NULL.
Files:	    src/if_cscope.c

Patch 7.0.167
Problem:    ":function" redefining a dict function doesn't work properly.
	    (Richard Emberson)
Solution:   Allow a function name to be a number when it's a function
	    reference.
Files:	    src/eval.c

Patch 7.0.168
Problem:    Using uninitialized memory and memory leak. (Dominique Pelle)
Solution:   Use alloc_clear() instead of alloc() for w_lines.  Free
	    b_ml.ml_stack after recovery.
Files:	    src/memline.c, src/window.c

Patch 7.0.169
Problem:    With a Visual block selection, with the cursor in the left upper
	    corner, pressing "I" doesn't remove the highlighting. (Guopeng
	    Wen)
Solution:   When checking if redrawing is needed also check if Visual
	    selection is still active.
Files:	    src/screen.c

Patch 7.0.170 (extra)
Problem:    Win32: Using "gvim --remote-tab foo" when gvim is minimized while
	    it previously was maximized, un-maximizing doesn't work properly.
	    And the labels are not displayed properly when 'encoding' is
	    utf-8.
Solution:   When minimized check for SW_SHOWMINIMIZED.  When updating the tab
	    pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu
	    Yubao)
Files:	    src/gui_w48.c

Patch 7.0.171 (extra)
Problem:    VMS: A file name with multiple paths is written in the wrong file.
Solution:   Get the actually used file name. (Zoltan Arpadffy)
	    Also add info to the :version command about compilation.
Files:	    src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c

Patch 7.0.172
Problem:    Crash when recovering and quitting at the "press-enter" prompt.
Solution:   Check for "msg_list" to be NULL. (Liu Yubao)
Files:	    src/ex_eval.c

Patch 7.0.173
Problem:    ":call f().TT()" doesn't work.  (Richard Emberson)
Solution:   When a function returns a Dictionary or another composite continue
	    evaluating what follows.
Files:	    src/eval.c

Patch 7.0.174
Problem:    ":mksession" doesn't restore window layout correctly in tab pages
	    other than the current one. (Zhibin He)
Solution:   Use the correct topframe for producing the window layout commands.
Files:	    src/ex_docmd.c

Patch 7.0.175
Problem:    The result of tr() is missing the terminating NUL. (Ingo Karkat)
Solution:   Add the NUL.
Files:	    src/eval.c

Patch 7.0.176
Problem:    ":emenu" isn't executed directly, causing the encryption key
	    prompt to fail. (Life Jazzer)
Solution:   Fix wrong #ifdef.
Files:	    src/menu.c

Patch 7.0.177
Problem:    When the press-enter prompt gets a character from a non-remappable
	    mapping, it's put back in the typeahead buffer as remappable,
	    which may cause an endless loop.
Solution:   Restore the non-remappable flag and the silent flag when putting a
	    char back in the typeahead buffer.
Files:	    src/getchar.c, src/message.c, src/normal.c

Patch 7.0.178
Problem:    When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo
	    ("\xe4" == "\xe4")" varies.
Solution:   In mb_strnicmp() avoid looking past NUL bytes.
Files:	    src/mbyte.c

Patch 7.0.179
Problem:    Using ":recover" or "vim -r" without a swapfile crashes Vim.
Solution:   Check for "buf" to be unequal NULL. (Yukihiro Nakadaira)
Files:	    src/memline.c

Patch 7.0.180 (extra, after 7.0.171)
Problem:    VMS: build failed.  Problem with swapfiles.
Solution:   Add "compiled_arch".  Always expand path and pass it to
	    buf_modname().  (Zoltan Arpadffy)
Files:	    src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim

Patch 7.0.181
Problem:    When reloading a file that starts with an empty line, the reloaded
	    buffer has an extra empty line at the end. (Motty Lentzitzky)
Solution:   Delete all lines, don't use bufempty().
Files:	    src/fileio.c

Patch 7.0.182
Problem:    When using a mix of undo and "g-" it may no longer be possible to
	    go to every point in the undo tree.  (Andy Wokula)
Solution:   Correctly update pointers in the undo tree.
Files:	    src/undo.c

Patch 7.0.183
Problem:    Crash in ":let" when redirecting to a variable that's being
	    displayed. (Thomas Link)
Solution:   When redirecting to a variable only do the assignment when
	    stopping redirection to avoid that setting the variable causes a
	    freed string to be accessed.
Files:	    src/eval.c

Patch 7.0.184
Problem:    When the cscope program is called "mlcscope" the Cscope interface
	    doesn't work.
Solution:   Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik)
Files:	    src/if_cscope.c

Patch 7.0.185
Problem:    Multi-byte characters in a message are displayed with attributes
	    from what comes before it.
Solution:   Don't use the attributes for a multi-byte character.  Do use
	    attributes for special characters. (Yukihiro Nakadaira)
Files:	    src/message.c

Patch 7.0.186
Problem:    Get an ml_get error when 'encoding' is "utf-8" and searching for
	    "/\_s*/e" in an empty buffer.  (Andrew Maykov)
Solution:   Don't try getting the line just below the last line.
Files:	    src/search.c

Patch 7.0.187
Problem:    Can't source a remote script properly.
Solution:   Add the SourceCmd event. (Charles Campbell)
Files:	    runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h

Patch 7.0.188 (after 7.0.186)
Problem:    Warning for wrong pointer type.
Solution:   Add a type cast.
Files:	    src/search.c

Patch 7.0.189
Problem:    Translated message about finding matches is truncated. (Yukihiro
	    Nakadaira)
Solution:   Enlarge the buffer.  Also use vim_snprintf().
Files:	    src/edit.c

Patch 7.0.190
Problem:    "syntax spell default" results in an error message.
Solution:   Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado)
Files:	    src/syntax.c

Patch 7.0.191
Problem:    The items used by getqflist() and setqflist() don't match.
Solution:   Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan)
Files:	    runtime/doc/eval.txt, src/quickfix.c

Patch 7.0.192
Problem:    When 'swapfile' is switched off in an empty file it is possible
	    that not all blocks are loaded into memory, causing ml_get errors
	    later.
Solution:   Rename "dont_release" to "mf_dont_release" and also use it to
	    avoid using the cached line and locked block.
Files:	    src/globals.h, src/memfile.c, src/memline.c

Patch 7.0.193
Problem:    Using --remote or --remote-tab with an argument that matches
	    'wildignore' causes a crash.
Solution:   Check the argument count before using ARGLIST[0].
Files:	    src/ex_cmds.c

Patch 7.0.194
Problem:    Once an ml_get error is given redrawing part of the screen may
	    cause it again, resulting in an endless loop.
Solution:   Don't give the error message for a recursive call.
Files:	    src/memline.c

Patch 7.0.195
Problem:    When a buffer is modified and 'autowriteall' is set, ":quit"
	    results in an endless loop when there is a conversion error while
	    writing. (Nikolai Weibull)
Solution:   Make autowrite() return FAIL if the buffer is still changed after
	    writing it.
	    /* put the cursor on the last char, for 'tw' formatting */
Files:	    src/ex_cmds2.c

Patch 7.0.196
Problem:    When using ":vert ball" the computation of the mouse pointer
	    position may be off by one column. (Stefan Karlsson)
Solution:   Recompute the frame width when moving the vertical separator from
	    one window to another.
Files:	    src/window.c

Patch 7.0.197 (extra)
Problem:    Win32: Compiling with EXITFREE doesn't work.
Solution:   Adjust a few #ifdefs. (Alexei Alexandrof)
Files:	    src/misc2.c, src/os_mswin.c

Patch 7.0.198 (extra)
Problem:    Win32: Compiler warnings.  No need to generate gvim.exe.mnf.
Solution:   Add type casts.  Use "*" for processorArchitecture. (George Reilly)
Files:	    src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c

Patch 7.0.199
Problem:    When using multi-byte characters the combination of completion and
	    formatting may result in a wrong cursor position.
Solution:   Don't decrement the cursor column, use dec_cursor(). (Yukihiro
	    Nakadaira)  Also check for the column to be zero.
Files:	    src/edit.c

Patch 7.0.200
Problem:    Memory leaks when out of memory.
Solution:   Free the memory.
Files:	    src/edit.c, src/diff.c

Patch 7.0.201
Problem:    Message for ":diffput" about buffer not being in diff mode may be
	    wrong.
Solution:   Check for buffer in diff mode but not modifiable.
Files:	    src/diff.c

Patch 7.0.202
Problem:    Problems on Tandem systems while compiling and at runtime.
Solution:   Recognize root uid is 65535.  Check select() return value for it
	    not being supported.  Avoid wrong function prototypes.  Mention
	    use of -lfloss.  (Matthew Woehlke)
Files:	    src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c,
	    src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c,
	    src/vim.h

Patch 7.0.203
Problem:    0x80 characters in a register are not handled correctly for the
	    "@" command.
Solution:   Escape CSI and 0x80 characters. (Yukihiro Nakadaira)
Files:	    src/ops.c

Patch 7.0.204
Problem:    Cscope: Parsing matches for listing isn't done properly.
Solution:   Check for line number being found. (Yu Zhao)
Files:	    src/if_cscope.c

Patch 7.0.205 (after 7.0.203)
Problem:    Can't compile.
Solution:   Always include the vim_strsave_escape_csi function.
Files:	    src/getchar.c

Patch 7.0.206 (after 7.0.058)
Problem:    Some characters of the "gb18030" encoding are not handled
	    properly.
Solution:   Do not use "cp936" as an alias for "gb18030" encoding.  Instead
	    initialize 'encoding' to "cp936".
Files:	    src/mbyte.c, src/option.c

Patch 7.0.207
Problem:    After patch 2.0.203 CSI and K_SPECIAL characters are escaped when
	    recorded and then again when the register is executed.
Solution:   Remove escaping before putting the recorded characters in a
	    register.  (Yukihiro Nakadaira)
Files:	    src/getchar.c, src/ops.c, src/proto/getchar.pro

Patch 7.0.208 (after 7.0.171 and 7.0.180)
Problem:    VMS: changes to path handling cause more trouble than they solve.
Solution:   Revert changes.
Files:	    src/buffer.c, src/memline.c, src/os_unix.c

Patch 7.0.209
Problem:    When replacing a line through Python the cursor may end up beyond
	    the end of the line.
Solution:   Check the cursor column after replacing the line.
Files:	    src/if_python.c

Patch 7.0.210
Problem:    ":cbuffer" and ":lbuffer" always fail when the buffer is modified.
	    (Gary Johnson)
Solution:   Support adding a !. (Yegappan Lakshmanan)
Files:	    runtime/doc/quickfix.txt, src/ex_cmds.h

Patch 7.0.211
Problem:    With ":set cindent noai bs=0" using CTRL-U in Insert mode will
	    delete auto-indent.  After ":set ai" it doesn't.
Solution:   Also check 'cindent' being set. (Ryan Lortie)
Files:	    src/edit.c

Patch 7.0.212
Problem:    The GUI can't be terminated with SIGTERM. (Mark Logan)
Solution:   Use the signal protection in the GUI as in the console, allow
	    signals when waiting for 100 msec or longer.
Files:	    src/ui.c

Patch 7.0.213
Problem:    When 'spellfile' has two regions that use the same sound folding
	    using "z=" will cause memory to be freed twice. (Mark Woodward)
Solution:   Clear the hashtable properly so that the items are only freed once.
Files:	    src/spell.c

Patch 7.0.214
Problem:    When using <f-args> in a user command it's not possible to have an
	    argument end in '\ '.
Solution:   Change the handling of backslashes. (Yakov Lerner)
Files:	    runtime/doc/map.txt, src/ex_docmd.c

Patch 7.0.215 (extra)
Problem:    Mac: Scrollbar size isn't set.  Context menu has disabled useless
	    Help entry.  Call to MoreMasterPointers() is ignored.
Solution:   Call SetControlViewSize() in gui_mch_set_scrollbar_thumb().  Use
	    kCMHelpItemRemoveHelp for ContextualMenuSelect().  Remove call to
	    MoreMasterPointers(). (Nicolas Weber)
Files:	    src/gui_mac.c

Patch 7.0.216
Problem:    ":tab wincmd ]" does not open a tab page. (Tony Mechelynck)
Solution:   Copy the cmdmod.tab value to postponed_split_tab and use it.
Files:	    src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c

Patch 7.0.217
Problem:    This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion)
Solution:   Set "skip_match" to advance to the next line.
Files:	    src/ex_cmds.c

Patch 7.0.218
Problem:    "%B" in 'statusline' always shows zero in Insert mode. (DervishD)
Solution:   Remove the exception for Insert mode, check the column for being
	    valid instead.
Files:	    src/buffer.c

Patch 7.0.219
Problem:    When using the 'editexisting.vim' script and a file is being
	    edited in another tab page the window is split.  The "+123"
	    argument is not used.
Solution:   Make the tab page with the file the current tab page.  Set
	    v:swapcommand when starting up to the first "+123" or "-c" command
	    line argument.
Files:	    runtime/macros/editexisting.vim, src/main.c

Patch 7.0.220
Problem:    Crash when using winnr('#') in a new tab page. (Andy Wokula)
Solution:   Check for not finding the window.
Files:	    src/eval.c

Patch 7.0.221
Problem:    finddir() uses 'path' by default, where "." means relative to the
	    current file.  But it works relative to the current directory.
	    (Tye Zdrojewski)
Solution:   Add the current buffer name to find_file_in_path_option() for the
	    relative file name.
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.0.222
Problem:    Perl indenting using 'cindent' works almost right.
Solution:   Recognize '#' to start a comment. (Alex Manoussakis)  Added '#'
	    flag in 'cinoptions'.
Files:	    runtime/doc/indent.txt, src/misc1.c

Patch 7.0.223
Problem:    Unprintable characters in completion text mess up the popup menu.
	    (Gombault Damien)
Solution:   Use strtrans() to make the text printable.
Files:	    src/charset.c, src/popupmnu.c

Patch 7.0.224
Problem:    When expanding "##" spaces are escaped twice.  (Pavol Juhas)
Solution:   Don't escape the spaces that separate arguments.
Files:	    src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro

Patch 7.0.225
Problem:    When using setline() in an InsertEnter autocommand and doing "A"
	    the cursor ends up on the last byte in the line. (Yukihiro
	    Nakadaira)
Solution:   Only adjust the column when using setline() for the cursor line.
	    Move it back to the head byte if necessary.
Files:	    src/eval.c, src/misc2.c

Patch 7.0.226
Problem:    Display flickering when updating signs through the netbeans
	    interface. (Xavier de Gaye)
Solution:   Remove the redraw_later(CLEAR) call.
Files:	    src/netbeans.c

Patch 7.0.227
Problem:    Crash when closing a window in the GUI. (Charles Campbell)
Solution:   Don't call out_flush() from win_free().
Files:	    src/window.c

Patch 7.0.228
Problem:    Cygwin: problem with symlink to DOS style path.
Solution:   Invoke cygwin_conv_to_posix_path(). (Luca Masini)
Files:	    src/os_unix.c

Patch 7.0.229
Problem:    When 'pastetoggle' starts with Esc then pressing Esc in Insert
	    mode will not time out. (Jeffery Small)
Solution:   Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies
	    to the 'pastetoggle' key.
Files:	    src/getchar.c

Patch 7.0.230
Problem:    After using ":lcd" a script doesn't know how to restore the
	    current directory.
Solution:   Add the haslocaldir() function. (Bob Hiestand)
Files:	    runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c

Patch 7.0.231
Problem:    When recovering from a swap file the page size is likely to be
	    different from the minimum.  The block used for the first page
	    then has a buffer of the wrong size, causing a crash when it's
	    reused later.  (Zephaniah Hull)
Solution:   Reallocate the buffer when the page size changes.  Also check that
	    the page size is at least the minimum value.
Files:	    src/memline.c

Patch 7.0.232 (extra)
Problem:    Mac: doesn't support GUI tab page labels.
Solution:   Add GUI tab page labels. (Nicolas Weber)
Files:	    src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c,
	    src/proto/gui_mac.pro

Patch 7.0.233 (extra)
Problem:    Mac: code formatted badly.
Solution:   Fix code formatting
Files:	    src/gui_mac.c

Patch 7.0.234
Problem:    It's possible to use feedkeys() from a modeline.  That is a
	    security issue, can be used for a trojan horse.
Solution:   Disallow using feedkeys() in the sandbox.
Files:	    src/eval.c

Patch 7.0.235
Problem:    It is possible to use writefile() in the sandbox.
Solution:   Add a few more checks for the sandbox.
Files:	    src/eval.c

Patch 7.0.236
Problem:    Linux 2.4 uses sysinfo() with a mem_unit field, which is not
	    backwards compatible.
Solution:   Add an autoconf check for sysinfo.mem_unit.  Let mch_total_mem()
	    return Kbyte to avoid overflow.
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/option.c, src/os_unix.c

Patch 7.0.237
Problem:    For root it is recommended to not use 'modeline', but in
	    not-compatible mode the default is on.
Solution:   Let 'modeline' default to off for root.
Files:	    runtime/doc/options.txt, src/option.c

Patch 7.0.238
Problem:    Crash when ":match" pattern runs into 'maxmempattern'. (Yakov
	    Lerner)
Solution:   Don't free the regexp program of match_hl.
Files:	    src/screen.c

Patch 7.0.239
Problem:    When using local directories and tab pages ":mksession" uses a
	    short file name when it shouldn't.  Window-local options from a
	    modeline may be applied to the wrong window. (Teemu Likonen)
Solution:   Add the did_lcd flag, use the full path when it's set.  Don't use
	    window-local options from the modeline when using the current
	    window for another buffer in ":doautoall".
Files:	    src/fileio.c,  src/ex_docmd.c

Patch 7.0.240
Problem:    Crash when splitting a window in the GUI. (opposite of 7.0.227)
Solution:   Don't call out_flush() from win_alloc().  Also avoid this for
	    win_delete().  Also block autocommands while the window structure
	    is invalid.
Files:	    src/window.c

Patch 7.0.241
Problem:    ":windo throw 'foo'" loops forever. (Andy Wokula)
Solution:   Detect that win_goto() doesn't work.
Files:	    src/ex_cmds2.c

Patch 7.0.242 (extra)
Problem:    Win32: Using "-register" in a Vim that does not support OLE causes
	    a crash.
Solution:   Don't use EMSG() but mch_errmsg().  Check p_go for being NULL.
	    (partly by Michael Wookey)
Files:	    src/gui_w32.c

Patch 7.0.243 (extra)
Problem:    Win32: When GvimExt is built with MSVC 2005 or later, the "Edit
	    with vim" context menu doesn't appear in the Windows Explorer.
Solution:   Embed the linker manifest file into the resources of GvimExt.dll.
	    (Mathias Michaelis)
Files:	    src/GvimExt/Makefile


Fixes after Vim 7.1a BETA:

The extra archive had CVS directories included below "farsi" and
"runtime/icons".  CVS was missing the farsi icon files.

Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel
Drake)

Mac: "make install" didn't copy rgb.txt.

When editing a compressed file while there are folds caused "ml_get" errors
and some lines could be missing.  When decompressing failed option values were
not restored.


Patch 7.1a.001
Problem:    Crash when downloading a spell file.  (Szabolcs Horvat)
Solution:   Avoid that did_set_spelllang() is used recursively when a new
	    window is opened for the download.
	    Also avoid wiping out the wrong buffer.
Files:	    runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c,
            src/spell.c

Patch 7.1a.002 (extra)
Problem:    Compilation error with MingW.
Solution:   Check for LPTOOLTIPTEXT to be defined.
Files:	    src/gui_w32.c


Fixes after Vim 7.1b BETA:

Made the Mzscheme interface build both with old and new versions of Mzscheme,
using an #ifdef. (Sergey Khorev)
Mzscheme interface didn't link, missing function.  Changed order of libraries
in the configure script.

Ruby interface didn't compile on Mac.  Changed #ifdef. (Kevin Ballard)

Patch 7.1b.001 (extra)
Problem:    Random text in a source file.  No idea how it got there.
Solution:   Delete the text.
Files:	    src/gui_w32.c

Patch 7.1b.002
Problem:    When 'maxmem' is large there can be an overflow in computations.
	    (Thomas Wiegner)
Solution:   Use the same mechanism as in mch_total_mem(): first reduce the
	    multiplier as much as possible.
Files:	    src/memfile.c

==============================================================================
VERSION 7.2					*version-7.2* *version7.2*

This section is about improvements made between version 7.1 and 7.2.

This is mostly a bug-fix release.  The main new feature is floating point
support. |Float|


Changed							*changed-7.2*
-------

Changed the command line buffer name from "command-line" to "[Command Line]".

Removed optional ! for ":caddexpr", ":cgetexpr", ":cgetfile", ":laddexpr",
":lgetexpr" and ":lgetfile".  They are not needed.  (Yegappan Lakshmanan)

An offset for syntax matches worked on bytes instead of characters.  That is
inconsistent and can easily be done wrong.  Use character offsets now.
(Yukihiro Nakadaira)

The FileChangedShellPost event was also given when a file didn't change.
(John Little)

When the current line is long (doesn't fit) the popup menu can't be seen.
Display it below the screen line instead of below the text line.
(Francois Ingelrest)

Switched to autoconf version 2.62.

Moved including fcntl.h to vim.h and removed it from all .c files.

Introduce macro STRMOVE(d, s), like STRCPY() for overlapping strings.
Use it instead of mch_memmove(p, p + x, STRLEN(p + x) + 1).

Removed the bulgarian.vim keymap file, two more standard ones replace it.
(Boyko Bantchev)

Increased the maximum number of tag matches for command line completion from
200 to 300.

Renamed help file sql.txt to ft_sql.txt and ada.txt to ft_ada.txt.


Added							*added-7.2*
-----

New syntax files:
	CUDA (Timothy B. Terriberry)
	Cdrdao config (Nikolai Weibull)
	Coco/R (Ashish Shukla)
	Denyhosts config (Nikolai Weibull)
	Dtrace script (Nicolas Weber)
	Git output, commit, config, rebase, send-email (Tim Pope)
	HASTE and HastePreProc (M. Tranchero)
	Haml (Tim Pope)
	Host conf (Nikolai Weibull)
	Linden script (Timo Frenay)
	MS messages (Kevin Locke)
	PDF (Tim Pope)
	ProMeLa (Maurizio Tranchero)
	Reva Foth (Ron Aaron)
	Sass (Tim Pope)
	Symbian meta-makefile, MMP (Ron Aaron)
	VOS CM macro (Andrew McGill)
	XBL (Doug Kearns)

New tutor files:
	Made UTF-8 versions of all the tutor files.
	Greek renamed from ".gr" to ".el" (Greek vs Greece).
	Esperanto (Dominique Pelle)
	Croatian (Paul B. Mahol)

New filetype plugins:
	Cdrdao config (Nikolai Weibull)
	Debian control files (Debian Vim maintainers)
	Denyhosts (Nikolai Weibull)
	Dos .ini file (Nikolai Weibull)
	Dtrace script (Nicolas Weber)
	FnameScript (Nikolai Weibull)
	Git, Git config, Git commit, Git rebase, Git send-email (Tim Pope)
	Haml (Tim Pope)
	Host conf (Nikolai Weibull)
	Host access (Nikolai Weibull)
	Logtalk (Paulo Moura)
	MS messages (Kevin Locke)
	NSIS script (Nikolai Weibull)
	PDF (Tim Pope)
	Reva Forth (Ron Aaron)
	Sass (Tim Pope)

New indent files:
	DTD (Nikolai Weibull)
	Dtrace script (Nicolas Weber)
	Erlang (Csaba Hoch)
	FrameScript (Nikolai Weibull)
	Git config (Tim Pope)
	Haml (Tim Pope)
	Logtalk (Paulo Moura)
	Sass (Tim Pope)
	Tiny Fugue (Christian J. Robinson)

New compiler plugins:
	RSpec (Tim Pope)

New keymap files:
	Croatian (Paul B. Mahol)
	Russian Dvorak (Serhiy Boiko)
	Ukrainian Dvorak (Serhiy Boiko)
	Removed plain Bulgarian, "bds" and phonetic are sufficient.

Other new runtime files:
	Esperanto menu and message translations. (Dominique Pelle)
	Finnish menu and message translations. (Flammie Pirinen)
	Brazilian Portuguese message translations. (Eduardo Dobay)

Added floating point support. |Float|

Added argument to mode() to return a bit more detail about the current mode.
(Ben Schmidt)

Added support for BSD console mouse: |sysmouse|.  (Paul B. Mahol)

Added the "newtab" value for the 'switchbuf' option.  (partly by Yegappan
Lakshmanan)

Improved error messages for the netbeans interface. (Philippe Fremy)

Added support for using xterm mouse codes for screen. (Micah Cowan)

Added support for cross compiling:
Adjusted configure.in and added INSTALLcross.txt. (Marc Haisenko)  Fixed
mistakes in configure.in after that.
Don't use /usr/local/include and /usr/local/lib in configure. (Philip
Prindeville)
For cross compiling the Cygwin version on Unix, change VIM.TLB to vim.tlb in
src/vim.rc. (Tsuneo Nakagawa)

Added v:searchforward variable: What direction we're searching in.  (Yakov
Lerner)


Fixed							*fixed-7.2*
-----

Patch 7.1.001
Problem:    Still can't build with Gnome libraries.
Solution:   Fix typo in bind_textdomain_codeset. (Mike Kelly)
Files:	    src/gui_gtk.c, src/gui_gtk_x11.c

Patch 7.1.002
Problem:    Oracle Pro*C/C++ files are not detected.
Solution:   Add the missing star. (Micah J. Cowan)
Files:	    runtime/filetype.vim

Patch 7.1.003 (extra)
Problem:    The "Tear off this menu" message appears in the message history
	    when using a menu. (Yongwei Wu)
Solution:   Disable message history when displaying the menu tip.
Files:	    src/gui_w32.c

Patch 7.1.004
Problem:    Crash when doing ":next directory". (Raphael Finkel)
Solution:   Do not use "buf", it may be invalid after autocommands.
Files:	    src/ex_cmds.c

Patch 7.1.005
Problem:    "cit" used on <foo></foo> deletes <foo>.  Should not delete
	    anything and start insertion, like "ci'" does on "". (Michal
	    Bozon)
Solution:   Handle an empty object specifically.  Made it work consistent for
	    various text objects.
Files:	    src/search.c

Patch 7.1.006
Problem:    Resetting 'modified' in a StdinReadPost autocommand doesn't work.
Solution:   Set 'modified' before the autocommands instead of after it.
Files:	    src/buffer.c

Patch 7.1.007 (extra)
Problem:    Mac: Context menu doesn't work on Intel Macs.
	    Scrollbars are not dimmed when Vim is not the active application.
Solution:   Remove the test whether context menus are supported.  They are
	    always there in OS/X.  Handle the dimming. (Nicolas Weber)
Files:	    src/gui_mac.c, src/gui.h

Patch 7.1.008
Problem:    getfsize() returns a negative number for very big files.
Solution:   Check for overflow and return -2.
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.1.009
Problem:    In diff mode, displaying the difference between a tab and spaces
	    is not highlighted correctly.
Solution:   Only change highlighting at the end of displaying a tab.
Files:	    src/screen.c

Patch 7.1.010
Problem:    The Gnome session file doesn't restore tab pages.
Solution:   Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio)
Files:	    src/gui_gtk_x11.c

Patch 7.1.011
Problem:    Possible buffer overflow when $VIMRUNTIME is very long. (Victor
	    Stinner)
Solution:   Use vim_snprintf().
Files:	    src/main.c

Patch 7.1.012
Problem:    ":let &shiftwidth = 'asdf'" doesn't produce an error message.
Solution:   Check for a string argument. (Chris Lubinski)
Files:	    src/option.c

Patch 7.1.013
Problem:    ":syn include" only loads the first file, while it is documented
	    as doing the equivalent of ":runtime!".
Solution:   Change the argument to source_runtime(). (James Vega)
Files:	    src/syntax.c

Patch 7.1.014
Problem:    Crash when doing C indenting. (Chris Monson)
Solution:   Obtain the current line again after invoking cin_islabel().
Files:	    src/edit.c

Patch 7.1.015
Problem:    MzScheme interface: current-library-collection-paths produces no
	    list.  Interface doesn't build on a Mac.
Solution:   Use a list instead of a pair. (Bernhard Fisseni)  Use "-framework"
	    argument for MZSCHEME_LIBS in configure.
Files:	    src/configure.in, src/if_mzsch.c, src/auto/configure

Patch 7.1.016 (after patch 7.1.012)
Problem:    Error message about setting 'diff' to a string.
Solution:   Don't pass an empty string to set_option_value() when setting
	    'diff'.
Files:	    src/quickfix.c, src/popupmnu.c

Patch 7.1.017
Problem:    ":confirm w" does give a prompt when 'readonly' is set, but not
	    when the file permissions are read-only.  (Michael Schaap)
Solution:   Provide a dialog in both situations.  (Chris Lubinski)
Files:	    src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro

Patch 7.1.018
Problem:    When 'virtualedit' is set a "p" of a block just past the end of
	    the line inserts before the cursor. (Engelke)
Solution:   Check for the cursor being just after the line (Chris Lubinski)
Files:	    src/ops.c

Patch 7.1.019
Problem:    ":py" asks for an argument, ":py asd" then gives the error that
	    ":py" isn't implemented.  Should already happen for ":py".
Solution:   Compare with ex_script_ni. (Chris Lubinski)
Files:	    src/ex_docmd.c

Patch 7.1.020
Problem:    Reading from uninitialized memory when using a dialog. (Dominique
	    Pelle)
Solution:   In msg_show_console_dialog() append a NUL after every appended
	    character.
Files:	    src/message.c

Patch 7.1.021 (after 7.1.015)
Problem:    Mzscheme interface doesn't compile on Win32.
Solution:   Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev)
Files:	    src/if_mzsch.c

Patch 7.1.022
Problem:    When setting 'keymap' twice the b:keymap_name variable isn't set.
	    (Milan Berta)
Solution:   Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft)
Files:	    src/digraph.c

Patch 7.1.023
Problem:    "dw" in a line with one character deletes the line.  Vi and nvi
	    don't do this.  (Kjell Arne Rekaa)
Solution:   Check for one-character words especially.
Files:	    src/search.c

Patch 7.1.024
Problem:    Using a pointer that has become invalid. (Chris Monson)
Solution:   Obtain the line pointer again after we looked at another line.
Files:	    src/search.c

Patch 7.1.025
Problem:    search() and searchpos() don't use match under cursor at start of
	    line when using 'bc' flags. (Viktor Kojouharov)
Solution:   Don't go to the previous line when the 'c' flag is present.
	    Also fix that "j" doesn't move the cursor to the right column.
Files:	    src/eval.c, src/search.c

Patch 7.1.026
Problem:    "[p" doesn't work in Visual mode. (David Brown)
Solution:   Use checkclearop() instead of checkclearopq().
Files:	    src/normal.c

Patch 7.1.027
Problem:    On Sun systems opening /dev/fd/N doesn't work, and they are used
	    by process substitutions.
Solution:   Allow opening specific character special files for Sun systems.
	    (Gary Johnson)
Files:	    src/fileio.c, src/os_unix.h

Patch 7.1.028
Problem:    Can't use last search pattern for ":sort". (Brian McKee)
Solution:   When the pattern is empty use the last search pattern. (Martin
	    Toft)
Files:	    runtime/doc/change.txt, src/ex_cmds.c

Patch 7.1.029 (after 7.1.019)
Problem:    Can't compile when all interfaces are used. (Taylor Venable)
Solution:   Only check for ex_script_ni when it's defined.
Files:	    src/ex_docmd.c

Patch 7.1.030
Problem:    The "vimtutor" shell script checks for "vim6" but not for "vim7".
	    (Christian Robinson)
Solution:   Check for more versions, but prefer using "vim".
Files:	    src/vimtutor

Patch 7.1.031
Problem:    virtcol([123, '$']) doesn't work. (Michael Schaap)
Solution:   When '$' is used for the column number get the last column.
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.1.032
Problem:    Potential crash when editing a command line. (Chris Monson)
Solution:   Check the position to avoid access before the start of an array.
Files:	    src/ex_getln.c

Patch 7.1.033
Problem:    A buffer is marked modified when it was first deleted and then
	    added again using a ":next" command. (John Mullin)
Solution:   When checking if a buffer is modified use the BF_NEVERLOADED flag.
Files:	    src/option.c

Patch 7.1.034
Problem:    Win64: A few compiler warnings.  Problems with optimizer.
Solution:   Use int instead of size_t.  Disable the optimizer in one function.
	    (George V.  Reilly)
Files:	    src/eval.c, src/spell.c

Patch 7.1.035
Problem:    After ":s/./&/#" all listed lines have a line number. (Yakov
	    Lerner)
Solution:   Reset the line number flag when not using the "&" flag.
Files:	    src/ex_cmds.c

Patch 7.1.036
Problem:    Completing ":echohl" argument should include "None". (Ori
	    Avtalion)  ":match" should have "none" too.
Solution:   Add flags to use expand_highlight().  Also fix that when disabling
	    FEAT_CMDL_COMPL compilation fails.  (Chris Lubinski)
Files:	    src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro
	    src/syntax.c

Patch 7.1.037
Problem:    strcpy() used for overlapping strings. (Chris Monson)
Solution:   Use mch_memmove() instead.
Files:	    src/option.c

Patch 7.1.038
Problem:    When 'expandtab' is set then a Tab copied for 'copyindent' is
	    expanded to spaces, even when 'preserveindent' is set. (Alexei
	    Alexandrov)
Solution:   Remove the check for 'expandtab'.  Also fix that ">>" doesn't obey
	    'preserveindent'. (Chris Lubinski)
Files:	    src/misc1.c

Patch 7.1.039
Problem:    A tag in a help file that starts with "help-tags" and contains a
	    percent sign may make Vim crash. (Ulf Harnhammar)
Solution:   Use puts() instead of fprintf().
Files:	    src/ex_cmds.c

Patch 7.1.040
Problem:    ":match" only supports three matches.
Solution:   Add functions clearmatches(), getmatches(), matchadd(),
	    matchdelete() and setmatches().  Changed the data structures for
	    this.  A small bug in syntax.c is fixed, so newly created
	    highlight groups can have their name resolved correctly from their
	    ID.  (Martin Toft)
Files:	    runtime/doc/eval.txt, runtime/doc/pattern.txt,
	    runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c,
	    src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c,
	    src/testdir/Makefile, src/testdir/test63.in,
	    src/testdir/test63.ok, src/window.c

Patch 7.1.041 (extra, after 7.1.040)
Problem:    Some changes for patch 7.1.040 are in extra files.
Solution:   Update the extra files.
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.1.042 (after 7.1.040)
Problem:    Internal error when using matchadd(). (David Larson)
Solution:   Check the third argument to be present before using the fourth
	    argument. (Martin Toft)
Files:	    src/eval.c

Patch 7.1.043
Problem:    In Ex mode using CTRL-D twice may cause a crash.  Cursor isn't
	    positioned properly after CTRL-D.
Solution:   Set prev_char properly.  Position the cursor correctly. (Antony
	    Scriven)
Files:	    src/ex_getln.c

Patch 7.1.044
Problem:    In Insert mode 0 CTRL-T deletes all indent, it should add indent.
	    (Gautam Iyer)
Solution:   Check for CTRL-D typed.
Files:	    src/edit.c

Patch 7.1.045
Problem:    Unnecessary screen redrawing. (Jjgod Jiang)
Solution:   Reset "must_redraw" after clearing the screen.
Files:	    src/screen.c

Patch 7.1.046
Problem:    ":s" command removes combining characters. (Ron Aaron)
Solution:   Copy composing characters individually. (Chris Lubinski)
Files:	    src/regexp.c

Patch 7.1.047
Problem:    vim_regcomp() called with invalid argument. (Xiaozhou Liu)
Solution:   Change TRUE to RE_MAGIC + RE_STRING.
Files:	    src/ex_eval.c

Patch 7.1.048
Problem:    The matchparen plugin doesn't update the match when scrolling with
	    the mouse wheel. (Ilya Bobir)
Solution:   Set the match highlighting for text that can be scrolled into the
	    viewable area without moving the cursor. (Chris Lubinski)
Files:	    runtime/plugin/matchparen.vim

Patch 7.1.049
Problem:    Cannot compile GTK2 version with Hangul input feature.
Solution:   Don't define FEAT_XFONTSET when using GTK2.
Files:	    src/feature.h

Patch 7.1.050
Problem:    Possible crash when using C++ indenting. (Chris Monson)
Solution:   Keep the line pointer to the line to compare with.  Avoid going
	    past the end of line.
Files:	    src/misc1.c

Patch 7.1.051
Problem:    Accessing uninitialized memory when finding spell suggestions.
Solution:   Don't try swapping characters at the end of a word.
Files:	    src/spell.c

Patch 7.1.052
Problem:    When creating a new match not all fields are initialized, which
	    may lead to unpredictable results.
Solution:   Initialise rmm_ic and rmm_maxcol.
Files:	    src/window.c

Patch 7.1.053
Problem:    Accessing uninitialized memory when giving a message.
Solution:   Check going the length before checking for a NUL byte.
Files:	    src/message.c

Patch 7.1.054
Problem:    Accessing uninitialized memory when displaying the fold column.
Solution:   Add a NUL to the extra array. (Dominique Pelle).  Also do this in
	    a couple of other situations.
Files:	    src/screen.c

Patch 7.1.055
Problem:    Using strcpy() with arguments that overlap.
Solution:   Use mch_memmove() instead.
Files:	    src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c,
	    src/misc1.c, src/regexp.c, src/termlib.c

Patch 7.1.056
Problem:    More prompt does not behave correctly after scrolling back.
	    (Randall W. Morris)
Solution:   Avoid lines_left becomes negative. (Chris Lubinski)  Don't check
	    mp_last when deciding to show the more prompt. (Martin Toft)
Files:	    src/message.c

Patch 7.1.057
Problem:    Problem with CursorHoldI when using "r" in Visual mode (Max
	    Dyckhoff)
Solution:   Ignore CursorHold(I) when getting a second character for a Normal
	    mode command.  Also abort the "r" command in Visual when a special
	    key is typed.
Files:	    src/normal.c

Patch 7.1.058
Problem:    When 'rightleft' is set the completion menu is positioned wrong.
	    (Baha-Eddine MOKADEM)
Solution:   Fix the completion menu. (Martin Toft)
Files:	    src/popupmnu.c, src/proto/search.pro, src/search.c

Patch 7.1.059
Problem:    When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim
	    hangs and beeps. (Antony Scriven)
Solution:   Clear "got_int" in the main loop to avoid the hang.  When typing
	    CTRL-C twice in a row abort the ":g" command.  This is Vi
	    compatible.
Files:	    src/main.c

Patch 7.1.060
Problem:    Splitting quickfix window messes up window layout. (Marius
	    Gedminas)
Solution:   Compute the window size in a smarter way. (Martin Toft)
Files:	    src/window.c

Patch 7.1.061
Problem:    Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for
	    characters with umlaut. (Joachim Hofmann)
Solution:   Do not use islower()/isupper()/tolower()/toupper() but our own
	    functions. (Chris Lubinski)
Files:	    src/mbyte.c, src/regexp.c, src/vim.h

Patch 7.1.062 (after 7.1.038)
Problem:    Indents of C comments can be wrong. (John Mullin)
Solution:   Adjust ind_len. (Chris Lubinski)
Files:	    src/misc1.c

Patch 7.1.063 (after 7.1.040)
Problem:    Warning for uninitialized variable.
Solution:   Initialise it to NULL.
Files:	    src/ex_docmd.c

Patch 7.1.064
Problem:    On Interix some files appear not to exist.
Solution:   Remove the top bit from st_mode. (Ligesh)
Files:	    src/os_unix.c

Patch 7.1.065 (extra)
Problem:    Win32: Compilation problem for newer version of w32api.
Solution:   Only define __IID_DEFINED__ when needed. (Chris Sutcliffe)
Files:	    src/Make_ming.mak, src/iid_ole.c

Patch 7.1.066
Problem:    When 'bomb' is set or reset the file should be considered
	    modified.  (Tony Mechelynck)
Solution:   Handle like 'endofline'. (Martin Toft)
Files:	    src/buffer.c, src/fileio.c, src/option.c, src/structs.h

Patch 7.1.067
Problem:    'thesaurus' doesn't work when 'infercase' is set. (Mohsin)
Solution:   Don't copy the characters being completed but check the case and
	    apply it to the suggested word.  Also fix that the first word in
	    the thesaurus line is not used.  (Martin Toft)
Files:	    src/edit.c

Patch 7.1.068
Problem:    When 'equalalways' is set and splitting a window, it's possible
	    that another small window gets bigger.
Solution:   Only equalize window sizes when after a split the windows are
	    smaller than another window. (Martin Toft)
Files:	    runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c

Patch 7.1.069
Problem:    GTK GUI: When using confirm() without a default button there still
	    is a default choice.
Solution:   Ignore Enter and Space when there is no default button. (Chris
	    Lubinski)
Files:	    src/gui_gtk.c

Patch 7.1.070 (extra)
Problem:    Win32 GUI: When using confirm() without a default button there
	    still is a default choice.
Solution:   Set focus on something else than a button. (Chris Lubinski)
Files:	    src/gui_w32.c

Patch 7.1.071 (after 7.1.040)
Problem:    Regexp patterns are not tested.
Solution:   Add a basic test, to be expanded later.
	    Also add (commented-out) support for valgrind.
Files:	    src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.1.072 (extra, after 7.1.041 and 7.1.071)
Problem:    Some changes for patch 7.1.071 are in extra files.
Solution:   Update the extra files.  Also fix a few warnings from the DOS test
	    makefile.
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.1.073 (after 7.1.062)
Problem:    Wrong cursor position and crash when 'preserveindent' is set.
	    (Charles Campbell)
Solution:   Handle the situation that we start without indent. (Chris
	    Lubinski)
Files:	    src/misc1.c

Patch 7.1.074
Problem:    Crash when calling string() on a recursively nested List.
Solution:   Check result value for being NULL. (Yukihiro Nakadaira)
Files:	    src/eval.c

Patch 7.1.075
Problem:    ":let v:statusmsg" reads memory already freed.
Solution:   Don't set v:statusmsg when listing it.
Files:	    src/eval.c

Patch 7.1.076
Problem:    Another strcpy() with overlapping arguments.
Solution:   Use mch_memmove(). (Dominique Pelle)  And another one.
Files:	    src/ex_docmd.c, src/normal.c

Patch 7.1.077
Problem:    Using "can_spell" without initializing it. (Dominique Pelle)
Solution:   Set a default for get_syntax_attr().
Files:	    src/syntax.c

Patch 7.1.078
Problem:    Dropping a file name on gvim that contains a CSI byte doesn't work
	    when editing the command line.
Solution:   Escape the CSI byte when inserting in the input buffer. (Yukihiro
	    Nakadaira)
Files:	    src/gui.c, src/ui.c

Patch 7.1.079
Problem:    When the locale is "C" and 'encoding' is "latin1" then the "@"
	    character in 'isfname', 'isprint', etc. doesn't pick up accented
	    characters.
Solution:   Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER().
Files:	    src/charset.c, src/macros.h

Patch 7.1.080 (extra)
Problem:    Compiler warnings for using "const char *" for "char *".
Solution:   Add type casts. (Chris Sutcliffe)
Files:	    src/GvimExt/gvimext.cpp

Patch 7.1.081
Problem:    Command line completion for a shell command: "cat </tmp/file<Tab>"
	    doesn't work.
Solution:   Start the file name at any character that can't be in a file name.
	    (Martin Toft)
Files:	    src/ex_docmd.c

Patch 7.1.082
Problem:    After a ":split" the matchparen highlighting isn't there.
Solution:   Install a WinEnter autocommand.  Also fixes that after
	    ":NoMatchParen" only the current window is updated. (Martin Toft)
Files:	    runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim

Patch 7.1.083 (after 7.1.081)
Problem:    Command line completion doesn't work with wildcards.
Solution:   Add vim_isfilec_or_wc() and use it. (Martin Toft)
Files:	    src/charset.c, src/proto/charset.pro, src/ex_docmd.c

Patch 7.1.084
Problem:    Using the "-nb" argument twice causes netbeans not to get
	    fileOpened events.
Solution:   Change "&" to "&&". (Xavier de Gaye)
Files:	    src/ex_cmds.c

Patch 7.1.085
Problem:    ":e fold.c" then ":sp fold.c" results in folds of original window
	    to disappear. (Akita Noek)
Solution:   Invoke foldUpdateAll() for all windows of the changed buffer.
	    (Martin Toft)
Files:	    src/ex_cmds.c

Patch 7.1.086
Problem:    Crash when using specific Python syntax highlighting.  (Quirk)
Solution:   Check for a negative index, coming from a keyword match at the
	    start of a line from a saved state.
Files:	    src/syntax.c

Patch 7.1.087
Problem:    Reading past ":cscope find" command.  Writing past end of a buffer.
Solution:   Check length of the argument before using the pattern.  Use
	    vim_strncpy().  (Dominique Pelle)
Files:	    if_cscope.c

Patch 7.1.088 (extra)
Problem:    The coordinates used by ":winpos" differ from what getwinposx()
	    and getwinposy() return.
Solution:   Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry)
Files:	    src/gui_mac.c

Patch 7.1.089
Problem:    ":let loaded_getscriptPlugin" doesn't clear to eol, result is
	    "#1in".
Solution:   Clear to the end of the screen after displaying the first variable
	    value.
Files:	    src/eval.c

Patch 7.1.090
Problem:    Compiler warning on Mac OS X 10.5.
Solution:   Don't redeclare sigaltstack(). (Hisashi T Fujinaka)
Files:	    src/os_unix.c

Patch 7.1.091 (extra)
Problem:    Win32: Can't embed Vim inside another application.
Solution:   Add the --windowid argument. (Nageshwar)
Files:	    runtime/doc/gui_w32.txt, runtime/doc/starting.txt,
	    runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c

Patch 7.1.092 (extra, after 7.1.088)
Problem:    Wrong arguments for MoveWindowStructure().
Solution:   Remove "TRUE". (Michael Henry)
Files:	    src/gui_mac.c

Patch 7.1.093
Problem:    Reading past end of a screen line when determining cell width.
	    (Dominique Pelle)
Solution:   Add an argument to mb_off2cells() for the maximum offset.
Files:	    src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro,
	    src/screen.c

Patch 7.1.094
Problem:    When checking if syntax highlighting is present, looking in the
	    current buffer instead of the specified one.
Solution:   Use "buf" instead of "curbuf".
Files:	    src/syntax.c

Patch 7.1.095
Problem:    The FocusLost and FocusGained autocommands are triggered
	    asynchronously in the GUI.  This may cause arbitrary problems.
Solution:   Put the focus event in the input buffer and handle it when ready
	    for it.
Files:	    src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c,
	    src/keymap.h

Patch 7.1.096
Problem:    Reading past end of a string when resizing Vim. (Dominique Pelle)
Solution:   Check the string pointer before getting the char it points to.
Files:	    src/message.c

Patch 7.1.097
Problem:    ":setlocal stl=%!1+1" does not work.
Solution:   Adjust check for pointer. (Politz)
Files:	    src/option.c

Patch 7.1.098
Problem:    ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula)
Solution:   Before converting "s:" into a script ID, check if it is a Funcref.
Files:	    src/eval.c

Patch 7.1.099
Problem:    When the 'keymap' and 'paste' options have a non-default value,
	    ":mkexrc" and ":mksession" do not correctly set the options.
Solution:   Set the options with side effects before other options.
Files:	    src/option.c

Patch 7.1.100
Problem:    Win32: Executing cscope doesn't always work properly.
Solution:   Use another way to invoke cscope. (Mike Williams)
Files:	    src/if_cscope.c, src/if_cscope.h, src/main.c,
	    src/proto/if_cscope.pro

Patch 7.1.101
Problem:    Ruby: The Buffer.line= method does not work.
Solution:   Add the "self" argument to set_current_line(). (Jonathan Hankins)
Files:	    src/if_ruby.c

Patch 7.1.102
Problem:    Perl interface doesn't compile with new version of Perl.
Solution:   Add two variables to the dynamic library loading. (Suresh
	    Govindachar)
Files:	    src/if_perl.xs

Patch 7.1.103
Problem:    Using "dw" with the cursor past the end of the last line (using
	    CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase)
Solution:   Don't move the cursor back when the movement failed.
Files:	    src/normal.c

Patch 7.1.104 (after 7.1.095)
Problem:    When 'lazyredraw' is set a focus event causes redraw to be
	    postponed until a key is pressed.
Solution:   Instead of not returning from vgetc() when a focus event is
	    encountered return K_IGNORE.  Add plain_vgetc() for when the
	    caller doesn't want to get K_IGNORE.
Files:	    src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
	    src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c

Patch 7.1.105
Problem:    Internal error when using "0 ? {'a': 1} : {}". (A.Politz)
Solution:   When parsing a dictionary value without using the value, don't try
	    obtaining the key name.
Files:	    src/eval.c

Patch 7.1.106
Problem:    ":messages" doesn't quit listing on ":".
Solution:   Break the loop when "got_int" is set.
Files:	    src/message.c

Patch 7.1.107
Problem:    When doing a block selection and using "s" to change the text,
	    while triggering auto-indenting, causes the wrong text to be
	    repeated in other lines. (Adri Verhoef)
Solution:   Compute the change of indent and compensate for that.
Files:	    src/ops.c

Patch 7.1.108 (after 7.1.100)
Problem:    Win32: Compilation problems in Cscope code. (Jeff Lanzarotta)
Solution:   Use (long) instead of (intptr_t) when it's not defined.
Files:	    src/if_cscope.c

Patch 7.1.109
Problem:    GTK: when there are many tab pages, clicking on the arrow left of
	    the labels moves to the next tab page on the right. (Simeon Bird)
Solution:   Check the X coordinate of the click and pass -1 as value for the
	    left arrow.
Files:	    src/gui_gtk_x11.c, src/term.c

Patch 7.1.110 (after 7.1.102)
Problem:    Win32: Still compilation problems with Perl.
Solution:   Change the #ifdefs. (Suresh Govindachar)
Files:	    src/if_perl.xs

Patch 7.1.111
Problem:    When using ":vimgrep" with the "j" flag folds from another buffer
	    may be displayed. (A.Politz)
Solution:   When not jumping to another buffer update the folds.
Files:	    src/quickfix.c

Patch 7.1.112
Problem:    Using input() with a wrong argument may crash Vim. (A.Politz)
Solution:   Init the input() return value to NULL.
Files:	    src/eval.c

Patch 7.1.113
Problem:    Using map() to go over an empty list causes memory to be freed
	    twice. (A.Politz)
Solution:   Don't clear the typeval in restore_vimvar().
Files:	    src/eval.c

Patch 7.1.114
Problem:    Memory leak in getmatches().
Solution:   Don't increment the refcount twice.
Files:	    src/eval.c

Patch 7.1.115 (after 7.1.105)
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Init variable to NULL.
Files:	    src/eval.c

Patch 7.1.116
Problem:    Cannot display Unicode characters above 0x10000.
Solution:   Remove the replacement with a question mark when UNICODE16 is not
	    defined. (partly by Nicolas Weber)
Files:	    src/screen.c

Patch 7.1.117
Problem:    Can't check whether Vim was compiled with Gnome. (Tony Mechelynck)
Solution:   Add gui_gnome to the has() list.
Files:	    src/eval.c

Patch 7.1.118 (after 7.1.107)
Problem:    Compiler warning for Visual C compiler.
Solution:   Add typecast. (Mike Williams)
Files:	    src/ops.c

Patch 7.1.119
Problem:    Crash when 'cmdheight' set to very large value. (A.Politz)
Solution:   Limit 'cmdheight' to 'lines' minus one.  Store right value of
	    'cmdheight' when running out of room.
Files:	    src/option.c, src/window.c

Patch 7.1.120
Problem:    Can't properly check memory leaks while running tests.
Solution:   Add an argument to garbagecollect().  Delete functions and
	    variables in the test scripts.
Files:	    runtime/doc/eval.txt src/eval.c, src/globals.h, src/main.c,
	    src/testdir/Makefile, src/testdir/test14.in,
	    src/testdir/test26.in, src/testdir/test34.in,
	    src/testdir/test45.in, src/testdir/test47.in,
	    src/testdir/test49.in, src/testdir/test55.in,
	    src/testdir/test56.in, src/testdir/test58.in,
	    src/testdir/test59.in, src/testdir/test60.in,
	    src/testdir/test60.vim, src/testdir/test62.in,
	    src/testdir/test63.in, src/testdir/test64.in,

Patch 7.1.121
Problem:    Using ":cd %:h" when editing a file in the current directory
	    results in an error message for using an empty string.
Solution:   When "%:h" results in an empty string use ".".
Files:	    src/eval.c

Patch 7.1.122
Problem:    Mac: building Vim.app fails.  Using wrong architecture.
Solution:   Use line continuation for the gui_bundle dependency.  Detect the
	    system architecture with "uname -a".
Files:	    src/main.aap

Patch 7.1.123
Problem:    Win32: ":edit foo ~ foo" expands "~".
Solution:   Change the call to expand_env().
Files:	    src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c

Patch 7.1.124 (extra)
Problem:    Mac: When dropping a file on Vim.app that is already in the buffer
	    list (from .viminfo) results in editing an empty, unnamed buffer.
	    (Axel Kielhorn)  Also: warning for unused variable.
Solution:   Move to the buffer of the first argument.  Delete unused variable.
Files:	    src/gui_mac.c

Patch 7.1.125
Problem:    The TermResponse autocommand event is not always triggered. (Aron
	    Griffis)
Solution:   When unblocking autocommands check if v:termresponse changed and
	    trigger the event then.
Files:	    src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c,
	    src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c

Patch 7.1.126 (extra)
Problem:    ":vimgrep */*" fails when a BufRead autocommand changes directory.
	    (Bernhard Kuhn)
Solution:   Change back to the original directory after loading a file.
	    Also: use shorten_fname1() to avoid duplicating code.
Files:	    src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c,
	    src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro,
	    src/quickfix.c

Patch 7.1.127
Problem:    Memory leak when doing cmdline completion. (Dominique Pelle)
Solution:   Free "orig" argument of ExpandOne() when it's not used.
Files:	    src/ex_getln.c

Patch 7.1.128 (extra)
Problem:    Build problems with new version of Cygwin.
Solution:   Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen)
Files:	    src/Make_cyg.mak

Patch 7.1.129 (extra)
Problem:    Win32: Can't get the user name when it is longer than 15
	    characters.
Solution:   Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov)
Files:	    src/os_win32.c

Patch 7.1.130
Problem:    Crash with specific order of undo and redo. (A.Politz)
Solution:   Clear and adjust pointers properly.  Add u_check() for debugging.
Files:	    src/undo.c, src/structs.h

Patch 7.1.131
Problem:    ":mksession" always adds ":setlocal autoread". (Christian J.
	    Robinson)
Solution:   Skip boolean global/local option using global value.
Files:	    src/option.c

Patch 7.1.132
Problem:    getpos("'>") may return a negative column number for a Linewise
	    selection. (A.Politz)
Solution:   Don't add one to MAXCOL.
Files:	    src/eval.c

Patch 7.1.133 (after 7.1.126)
Problem:    shorten_fname1() linked when it's not needed.
Solution:   Add #ifdef.
Files:	    src/fileio.c

Patch 7.1.134 (extra)
Problem:    Win32: Can't build with VC8
Solution:   Detect the MSVC version instead of using NMAKE_VER.
	    (Mike Williams)
Files:	    src/Make_mvc.mak

Patch 7.1.135
Problem:    Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two
	    buffers for the same file. (Suresh Govindachar)
Solution:   Invoke FullName_save() when a path contains "//" or "\\".
Files:	    src/buffer.c

Patch 7.1.136
Problem:    Memory leak when using Ruby syntax highlighting. (Dominique Pelle)
Solution:   Free the contained-in list.
Files:	    src/syntax.c

Patch 7.1.137
Problem:    Build failure when using EXITFREE. (Dominique Pelle)
Solution:   Add an #ifdef around using clip_exclude_prog.
Files:	    src/misc2.c

Patch 7.1.138
Problem:    The Perl Msg() function doesn't stop when "q" is typed at the more
	    prompt. (Hari Krishna Dara)
Solution:   Check got_int.
Files:	    src/if_perl.xs

Patch 7.1.139
Problem:    When using marker folding and ending Insert mode with CTRL-C the
	    current fold is truncated. (Fred Kater)
Solution:   Ignore got_int while updating folds.
Files:	    src/fold.c

Patch 7.1.140
Problem:    v:count is set only after typing a non-digit, that makes it
	    difficult to make a nice mapping.
Solution:   Set v:count while still typing the count.
Files:	    src/normal.c

Patch 7.1.141
Problem:    GTK: -geom argument doesn't support a negative offset.
Solution:   Compute position from the right/lower corner.
Files:	    src/gui_gtk_x11.c

Patch 7.1.142
Problem:    ":redir @A>" doesn't work.
Solution:   Ignore the extra ">" also when appending. (James Vega)
Files:	    src/ex_docmd.c

Patch 7.1.143
Problem:    Uninitialized memory read when diffing three files. (Dominique
	    Pelle)
Solution:   Remove "+ !notset" so that we don't use fields that were not
	    computed.
Files:	    src/diff.c

Patch 7.1.144
Problem:    After ":diffup" cursor can be in the wrong position.
Solution:   Force recomputing the cursor position.
Files:	    src/diff.c

Patch 7.1.145
Problem:    Insert mode completion: When using the popup menu, after
	    completing a word and typing a non-word character Vim is still
	    completing the same word, following CTRL-N doesn't work.
	    Insert mode Completion: When using CTRL-X O and there is only
	    "struct." before the cursor, typing one char to reduce the
	    matches, then BS completion stops.
Solution:   When typing a character that is not part of the item being
	    completed, stop complete mode.  For whole line completion also
	    accept a space.  For file name completion stop at a path
	    separator.
	    For omni completion stay in completion mode even if completing
	    with empty string.
Files:	    src/edit.c

Patch 7.1.146 (extra)
Problem:    VMS: Files with a very rare record organization (VFC) cannot be
	    properly written by Vim.
	    On older VAX systems mms runs into a syntax error.
Solution:   Check for this special situation.  Do not wrap a comment, make it
	    one long line.  (Zoltan Arpadffy)
Files:	    src/fileio.c, src/Make_vms.mms

Patch 7.1.147 (after 7.1.127)
Problem:    Freeing memory already freed when completing user name. (Meino
	    Cramer)
Solution:   Use a flag to remember if "orig" needs to be freed.
Files:	    src/ex_getln.c

Patch 7.1.148
Problem:    Some types are not found by configure.
Solution:   Test for the sys/types.h header file. (Sean Boudreau)
Files:	    src/configure.in, src/auto/configure

Patch 7.1.149
Problem:    GTK GUI: When the completion popup menu is used scrolling another
	    window by the scrollbar is OK, but using the scroll wheel it
	    behaves line <Enter>.
Solution:   Ignore K_MOUSEDOWN and K_MOUSEUP.  Fix redrawing the popup menu.
Files:	    src/edit.c, src/gui.c

Patch 7.1.150
Problem:    When 'clipboard' has "unnamed" using "p" in Visual mode doesn't
	    work correctly. (Jianrong Yu)
Solution:   When 'clipboard' has "unnamed" also obtain the selection when
	    getting the default register.
Files:	    src/ops.c

Patch 7.1.151
Problem:    Using whole line completion with 'ignorecase' and 'infercase' set
	    and the line is empty get an lalloc(0) error.
Solution:   Don't try changing case for an empty match. (Matthew Wozniski)
Files:	    src/edit.c

Patch 7.1.152
Problem:    Display problem when 'hls' and 'cursorcolumn' are set and
	    searching for "$".  (John Mullin)  Also when scrolling
	    horizontally when 'wrap' is off.
Solution:   Keep track of the column where highlighting was set.  Check the
	    column offset when skipping characters.
Files:	    src/screen.c

Patch 7.1.153
Problem:    Compiler warnings on SGI.  Undefined XpmAllocColor (Charles
	    Campbell)
Solution:   Add type casts.  Init st_dev and st_ino separately.  Don't use
	    type casts for vim_snprintf() when HAVE_STDARG_H is defined.
	    Define XpmAllocColor when needed.
Files:	    src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c,
	    src/gui_xmebw.c

Patch 7.1.154
Problem:    Compiler warning for signed/unsigned compare.
Solution:   Add type cast.
Files:	    src/screen.c

Patch 7.1.155
Problem:    Crash when 'undolevels' is 0 and repeating "udd". (James Vega)
Solution:   When there is only one branch use u_freeheader() to delete it.
Files:	    src/undo.c

Patch 7.1.156
Problem:    Overlapping arguments for strcpy() when expanding command line
	    variables.
Solution:   Use mch_memmove() instead of STRCPY().  Also fix a few typos.
	    (Dominique Pelle)
Files:	    src/ex_docmd.c

Patch 7.1.157
Problem:    In Ex mode, :" gives an error at end-of-file. (Michael Hordijk)
Solution:   Only give an error for an empty line, not for a comment.
Files:	    src/ex_docmd.c

Patch 7.1.158 (extra)
Problem:    Win32 console: When 'encoding' is "utf-8" and typing Alt-y the
	    result is wrong.  Win32 GUI: Alt-y results in "u" when 'encoding'
	    is "cp1250" (Lukas Cerman)
Solution:   For utf-8 don't set the 7th bit in a byte, convert to the correct
	    byte sequence.  For cp1250, when conversion to 'encoding' results
	    in the 7th bit not set, set the 7th bit after conversion.
Files:	    src/os_win32.c, src/gui_w48.c

Patch 7.1.159
Problem:    strcpy() has overlapping arguments.
Solution:   Use mch_memmove() instead. (Dominique Pelle)
Files:	    src/ex_cmds.c

Patch 7.1.160
Problem:    When a focus autocommand is defined, getting or losing focus
	    causes the hit-enter prompt to be redrawn. (Bjorn Winckler)
Solution:   Overwrite the last line.
Files:	    src/message.c

Patch 7.1.161
Problem:    Compilation errors with tiny features and EXITFREE.
Solution:   Add #ifdefs. (Dominique Pelle)
Files:	    src/edit.c, src/misc2.c

Patch 7.1.162
Problem:    Crash when using a modifier before "while" or "for". (A.Politz)
Solution:   Skip modifiers when checking for a loop command.
Files:	    src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c

Patch 7.1.163
Problem:    Warning for the unknown option 'bufsecret'.
Solution:   Remove the lines .vim that use this option. (Andy Wokula)
Files:	    runtime/menu.vim

Patch 7.1.164
Problem:    Reading past end of regexp pattern. (Dominique Pelle)
Solution:   Use utf_ptr2len().
Files:	    src/regexp.c

Patch 7.1.165
Problem:    Crash related to getting X window ID. (Dominique Pelle)
Solution:   Don't trust the window ID that we got in the past, check it every
	    time.
Files:	    src/os_unix.c

Patch 7.1.166
Problem:    Memory leak for using "gp" in Visual mode.
Solution:   Free memory in put_register(). (Dominique Pelle)
Files:	    src/ops.c

Patch 7.1.167
Problem:    Xxd crashes when using "xxd -b -c 110". (Debian bug 452789)
Solution:   Allocate more memory.  Fix check for maximum number of columns.
Files:	    src/xxd/xxd.c

Patch 7.1.168 (extra)
Problem:    Win32 GUI: Since patch 7.1.095, when the Vim window does not have
	    focus, clicking in it doesn't position the cursor. (Juergen
	    Kraemer)
Solution:   Don't reset s_button_pending just after receiving focus.
Files:	    src/gui_w48.c

Patch 7.1.169
Problem:    Using uninitialized variable when system() fails. (Dominique
	    Pelle)
Solution:   Let system() return an empty string when it fails.
Files:	    src/eval.c

Patch 7.1.170
Problem:    Valgrind warning for overlapping arguments for strcpy().
Solution:   Use mch_memmove() instead. (Dominique Pelle)
Files:	    src/getchar.c

Patch 7.1.171
Problem:    Reading one byte before allocated memory.
Solution:   Check index not to become negative. (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.1.172
Problem:    When 'buftype' is "acwrite" Vim still checks if the file or
	    directory exists before overwriting.
Solution:   Don't check for overwriting when the buffer name is not a file
	    name.
Files:	    src/ex_cmds.c

Patch 7.1.173
Problem:    Accessing freed memory. (Dominique Pelle)
Solution:   Don't call reg_getline() to check if a line is the first in the
	    file.
Files:	    src/regexp.c

Patch 7.1.174
Problem:    Writing NUL past end of a buffer.
Solution:   Copy one byte less when using strncat(). (Dominique Pelle)
Files:	    src/ex_cmds.c, src/ex_docmd.c,

Patch 7.1.175
Problem:    <BS> doesn't work with some combination of 'sts', 'linebreak' and
	    'backspace'. (Francois Ingelrest)
Solution:   When adding white space results in not moving back delete one
	    character.
Files:	    src/edit.c

Patch 7.1.176
Problem:    Building with Aap fails when the "compiledby" argument contains
	    '<' or '>' characters. (Alex Yeh)
Solution:   Change how quoting is done in the Aap recipe.
Files:	    src/main.aap

Patch 7.1.177
Problem:    Freeing memory twice when in debug mode while reading a script.
Solution:   Ignore script input while in debug mode.
Files:	    src/ex_cmds2.c, src/getchar.c, src/globals.h

Patch 7.1.178
Problem:    "%" doesn't work on "/* comment *//* comment */".
Solution:   Don't handle the "//" in "*//*" as a C++ comment. (Markus
	    Heidelberg)
Files:	    src/search.c

Patch 7.1.179
Problem:    Need to check for TCL 8.5.
Solution:   Adjust configure script. (Alexey Froloff)
Files:	    src/configure.in, src/auto/configure

Patch 7.1.180
Problem:    Regexp patterns not tested sufficiently.
Solution:   Add more checks to the regexp test.
Files:	    src/testdir/test64.in, src/testdir/test64.ok

Patch 7.1.181
Problem:    Accessing uninitialized memory in Farsi mode. (Dominique Pelle)
Solution:   Only invoke lrF_sub() when there is something to do.
Files:	    src/ex_cmds.c

Patch 7.1.182
Problem:    When using tab pages and an argument list the session file may
	    contain wrong "next" commands. (Alexander Bluem)
Solution:   Use "argu" commands and only when needed.
Files:	    src/ex_docmd.c

Patch 7.1.183
Problem:    "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu
	    Paul)
Solution:   Inside "\%[]" detect \&, \| and \) as an error.
Files:	    src/regexp.c

Patch 7.1.184
Problem:    Crash when deleting backwards over a line break in Insert mode.
Solution:   Don't advance the cursor when it's already on the NUL after a
	    line. (Matthew Wozniski)
Files:	    src/normal.c

Patch 7.1.185
Problem:    Using "gR" with a multi-byte encoding and typing a CR pushes
	    characters onto the replace stack incorrectly, resulting in BS
	    putting back the wrong characters. (Paul B. Mahol)
Solution:   Push multi-byte characters onto the replace stack in reverse byte
	    order.  Add replace_push_mb().
Files:	    src/edit.c, src/misc1.c, src/proto/edit.pro

Patch 7.1.186
Problem:    "expand('<afile>')" returns a bogus value after changing
	    directory. (Dave Fishburn)
Solution:   Copy "autocmd_fname" to allocated memory and expand to full
	    filename.  Shorten the path when expanding <afile>.
Files:	    src/ex_docmd.c, src/fileio.c

Patch 7.1.187
Problem:    Win32 GUI: Custom completion using system() no longer works
	    after patch 7.1.104. (Erik Falor)
Solution:   Loop when safe_vgetc() returns K_IGNORE.
Files:	    src/ex_getln.c

Patch 7.1.188
Problem:    When 'showmode' is off the message for changing a readonly file is
	    given in the second column instead of the first.  (Payl B. Mahol)
Solution:   Put the W10 message in the first column.
Files:	    src/edit.c

Patch 7.1.189 (after 7.1.104)
Problem:    Patch 7.1.104 was incomplete.
Solution:   Also call plain_vgetc() in ask_yesno().
Files:	    src/misc1.c

Patch 7.1.190
Problem:    Cursor after end-of-line: "iA sentence.<Esc>)"
Solution:   Move cursor back and make motion inclusive.
Files:	    src/normal.c

Patch 7.1.191
Problem:    Win32 GUI: after patch 7.1.168 there is still a problem when
	    clicking in a scrollbar. (Juergen Jottkaerr)
Solution:   Don't check the input buffer when dragging the scrollbar.
Files:	    src/gui.c

Patch 7.1.192
Problem:    With Visual block selection, "s" and typing something, CTRL-C
	    doesn't stop Vim from repeating the replacement in other lines,
	    like happens for "I".
Solution:   Check for "got_int" to be set.
Files:	    src/ops.c

Patch 7.1.193
Problem:    Some Vim 5.x digraphs are missing in Vim 7, even though the
	    character pairs are not used. (Philippe de Muyter)
Solution:   Add those Vim 5.x digraphs that don't conflict with others.
Files:	    src/digraph.c

Patch 7.1.194
Problem:    ":echo glob('~/{}')" results in /home/user//.
Solution:   Don't add a slash if there already is one.
Files:	    src/os_unix.c

Patch 7.1.195
Problem:    '0 mark doesn't work for "~/foo ~ foo".
Solution:   Don't expand the whole file name, only "~/".
Files:	    src/mark.c

Patch 7.1.196 (extra)
Problem:    Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik
	    Falor)
Solution:   Use the TTM_SETMAXTIPWIDTH message.
Files:	    src/gui_w32.c

Patch 7.1.197
Problem:    Mac: "make install" doesn't work when prefix defined.
Solution:   Pass different arguments to "make installruntime".  (Jjgod Jiang)
Files:	    src/Makefile

Patch 7.1.198
Problem:    Hang when using ":s/\n//gn". (Burak Gorkemli)
Solution:   Set "skip_match".
Files:	    src/ex_cmds.c

Patch 7.1.199
Problem:    Can't do command line completion for a specific file name
	    extension.
Solution:   When the pattern ends in "$" don't add a star for completion and
	    remove the "$" before matching with file names.
Files:	    runtime/doc/cmdline.txt, src/ex_getln.c

Patch 7.1.200 (after 7.1.177 and 7.1.182)
Problem:    Compiler warnings for uninitialized variables.
Solution:   Init variables.
Files:	    src/ex_cmds2.c, src/ex_docmd.c

Patch 7.1.201
Problem:    When reading stdin 'fenc' and 'ff' are not set.
Solution:   Set the options after reading stdin. (Ben Schmidt)
Files:	    src/fileio.c

Patch 7.1.202
Problem:    Incomplete utf-8 byte sequence is not checked for validity.
Solution:   Check the bytes that are present for being valid. (Ben Schmidt)
Files:	    src/mbyte.c

Patch 7.1.203
Problem:    When 'virtualedit' is "onemore" then "99|" works but ":normal 99|"
	    doesn't.  (Andy Wokula)
Solution:   Check for "onemore" flag in check_cursor_col().
Files:	    src/misc2.c

Patch 7.1.204 (extra)
Problem:    Win32: Using the example at 'balloonexpr' the balloon disappears
	    after four seconds and then comes back again.  Also moves the
	    mouse pointer a little bit.  (Yongwei Wu)
Solution:   Set the autopop time to 30 seconds (the max value).  (Sergey
	    Khorev)  Move the mouse two pixels forward and one back to end up
	    in the same position (really!).
Files:	    src/gui_w32.c

Patch 7.1.205
Problem:    Can't get the operator in an ":omap".
Solution:   Add the "v:operator" variable. (Ben Schmidt)
Files:	    runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h

Patch 7.1.206
Problem:    Compiler warnings when using MODIFIED_BY.
Solution:   Add type casts. (Ben Schmidt)
Files:	    src/version.c

Patch 7.1.207
Problem:    Netbeans: "remove" cannot delete one line.
Solution:   Remove partial lines and whole lines properly.  Avoid a memory
	    leak.  (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.1.208
Problem:    On Alpha get an unaligned access error.
Solution:   Store the dictitem pointer before using it. (Matthew Luckie)
Files:	    src/eval.c

Patch 7.1.209
Problem:    GTK: When using the netrw plugin and doing ":gui" Vim hangs.
Solution:   Stop getting a selection after three seconds.  This is a hack.
Files:	    src/gui_gtk_x11.c

Patch 7.1.210
Problem:    Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony
	    Mechelynck)
Solution:   Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte.
Files:	    src/mbyte.c

Patch 7.1.211
Problem:    The matchparen plugin may take an unexpected amount of time, so
	    that it looks like Vim hangs.
Solution:   Add a timeout to searchpair(), searchpairpos(), search() and
	    searchpos().  Use half a second timeout in the plugin.
Files:	    runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c,
	    src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c,
	    src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro,
	    src/search.c

Patch 7.1.212
Problem:    Accessing a byte before a line.
Solution:   Check that the column is 1 or more. (Dominique Pelle)
Files:	    src/edit.c

Patch 7.1.213
Problem:    A ":tabedit" command that results in the "swap file exists" dialog
	    and selecting "abort" doesn't close the new tab. (Al Budden)
Solution:   Pass "old_curwin" to do_exedit().
Files:	    src/ex_docmd.c

Patch 7.1.214
Problem:    ":1s/g\n\zs1//" deletes characters from the first line. (A Politz)
Solution:   Start replacing in the line where the match starts.
Files:	    src/ex_cmds.c

Patch 7.1.215
Problem:    It is difficult to figure out what syntax items are nested at a
	    certain position.
Solution:   Add the synstack() function.
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro,
	    src/syntax.c

Patch 7.1.216
Problem:    Variants of --remote-tab are not mentioned for "vim --help".
Solution:   Display optional -wait and -silent.
Files:	    src/main.c

Patch 7.1.217
Problem:    The "help-tags" tag may be missing from runtime/doc/tags when it
	    was generated during "make install".
Solution:   Add the "++t" argument to ":helptags" to force adding the tag.
Files:	    runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c,
	    src/ex_cmds.h

Patch 7.1.218
Problem:    A syntax region without a "keepend", containing a region with
	    "extend" could be truncated at the end of the containing region.
Solution:   Do not call syn_update_ends() when there are no keepend items.
Files:	    src/syntax.c

Patch 7.1.219 (after 7.1.215)
Problem:    synstack() returns situation after the current character, can't
	    see the state for a one-character region.
Solution:   Don't update ending states in the requested column.
Files:	    runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
	    src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c

Patch 7.1.220
Problem:    When a ")" or word movement command moves the cursor back from the
	    end of the line it may end up on the trail byte of a multi-byte
	    character.  It's also moved back when it isn't needed.
Solution:   Add the adjust_cursor() function.
Files:	    src/normal.c

Patch 7.1.221
Problem:    When inserting a "(", triggering the matchparen plugin, the
	    following highlighting may be messed up.
Solution:   Before triggering the CursorMovedI autocommands update the display
	    to update the stored syntax stacks for the change.
Files:	    src/edit.c

Patch 7.1.222 (after 7.1.217)
Problem:    Wildcards in argument of ":helptags" are not expanded.  (Marcel
	    Svitalsky)
Solution:   Expand wildcards in the directory name.
Files:	    src/ex_cmds.c

Patch 7.1.223
Problem:    glob() doesn't work properly when 'shell' is "sh" or "bash" and
	    the expanded name contains spaces, '~', single quotes and other
	    special characters.  (Adri Verhoef, Charles Campbell)
Solution:   For Posix shells define a vimglob() function to list the matches
	    instead of using "echo" directly.
Files:	    src/os_unix.c

Patch 7.1.224
Problem:    When using "vim -F -o file1 file2" only one window is
	    right-to-left.  Same for "-H".  (Ben Schmidt)
Solution:   use set_option_value() to set 'rightleft'.
Files:	    src/main.c

Patch 7.1.225
Problem:    Using uninitialized value when XGetWMNormalHints() fails.
Solution:   Check the return value. (Dominique Pelle)
Files:	    src/os_unix.c

Patch 7.1.226
Problem:    Command line completion doesn't work when a file name contains a
	    '&' character.
Solution:   Accept all characters in a file name, except ones that end a
	    command or white space.
Files:	    src/ex_docmd.c

Patch 7.1.227
Problem:    Hang in syntax HL when moving over a ")". (Dominique Pelle)
Solution:   Avoid storing a syntax state in the wrong position in the list of
	    remembered states.
Files:	    src/syntax.c

Patch 7.1.228
Problem:    When 'foldmethod' is "indent" and a fold is created with ">>" it
	    can't be closed with "zc".  (Daniel Shahaf)
Solution:   Reset the "small" flag of a fold when adding a line to it.
Files:	    src/fold.c

Patch 7.1.229
Problem:    A fold is closed when it shouldn't when 'foldmethod' is "indent"
	    and backspacing a non-white character so that the indent increases.
Solution:   Keep the fold open after backspacing a character.
Files:	    src/edit.c

Patch 7.1.230
Problem:    Memory leak when executing SourceCmd autocommands.
Solution:   Free the memory. (Dominique Pelle)
Files:	    src/ex_cmds2.c

Patch 7.1.231
Problem:    When shifting lines the change is acted upon multiple times.
Solution:   Don't have shift_line() call changed_bytes.
Files:	    src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro

Patch 7.1.232 (after 7.1.207 and 7.1.211)
Problem:    Compiler warnings with MSVC.
Solution:   Add type casts. (Mike Williams)
Files:	    src/ex_cmds2.c, src/netbeans.c

Patch 7.1.233
Problem:    Crash when doing Insert mode completion for a user defined
	    command.  (Yegappan Lakshmanan)
Solution:   Don't use the non-existing command line.
Files:	    src/ex_getln.c

Patch 7.1.234
Problem:    When diff'ing three files the third one isn't displayed correctly.
	    (Gary Johnson)
Solution:   Compute the size of diff blocks correctly when merging blocks.
	    Compute filler lines correctly when scrolling.
Files:	    src/diff.c

Patch 7.1.235
Problem:    Pattern matching is slow when using a lot of simple patterns.
Solution:   Avoid allocating memory by not freeing it when it's not so much.
	    (Alexei Alexandrov)
Files:	    src/regexp.c

Patch 7.1.236
Problem:    When using 'incsearch' and 'hlsearch' a complicated pattern may
	    make Vim hang until CTRL-C is pressed.
Solution:   Add the 'redrawtime' option.
Files:	    runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c,
	    src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c,
	    src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro,
	    src/proto/search.pro, src/search.c, src/screen.c,
	    src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c,
	    src/vim.h

Patch 7.1.237
Problem:    Compiler warning on an Alpha processor in Motif code.
Solution:   Change a typecast. (Adri Verhoef)
Files:	    src/gui_motif.c

Patch 7.1.238
Problem:    Using the 'c' flag with searchpair() may cause it to fail.  Using
	    the 'r' flag doesn't work when 'wrapscan' is set.  (A.Politz)
Solution:   Only use the 'c' flag for the first search, not for repeating.
	    When using 'r' imply 'W'. (Antony Scriven)
Files:	    src/eval.c

Patch 7.1.239 (after 7.1.233)
Problem:    Compiler warning for sprintf() argument.
Solution:   Add a typecast. (Nico Weber)
Files:	    src/ex_getln.c

Patch 7.1.240
Problem:    When "gUe" turns a German sharp s into SS the operation stops
	    before the end of the word.  Latin2 has the same sharp s but it's
	    not changed to SS there.
Solution:   Make sure all the characters are operated upon.  Detect the sharp
	    s in latin2.  Also fixes that changing case of a multi-byte
	    character that changes the byte count doesn't always work.
Files:	    src/ops.c

Patch 7.1.241
Problem:    Focus change events not always ignored.  (Erik Falor)
Solution:   Ignore K_IGNORE in Insert mode in a few more places.
Files:	    src/edit.c

Patch 7.1.242 (after 7.1.005)
Problem:    "cib" doesn't work properly on "(x)". (Tim Pope)
Solution:   Use ltoreq() instead of lt().  Also fix "ciT" on "<a>x</a>".
Files:	    src/search.c

Patch 7.1.243 (after 7.1.240)
Problem:    "U" doesn't work on all text in Visual mode. (Adri Verhoef)
Solution:   Loop over all the lines to be changed.  Add tests for this.
Files:	    src/ops.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.1.244
Problem:    GUI may have part of the command line cut off.
Solution:   Don't round the number of lines up, always round down.
	    (Tony Houghton, Scott Dillard)
Files:	    src/gui.c

Patch 7.1.245
Problem:    Pressing CTRL-\ three times causes Vim to quit.  (Ranganath Rao).
	    Also for f CTRL-\ CTRL-\.
Solution:   When going to cooked mode in mch_delay() set a flag to ignore
	    SIGQUIT.
Files:	    src/os_unix.c

Patch 7.1.246
Problem:    Configure hangs when the man pager is something strange. (lorien)
Solution:   Set MANPAGER and PAGER to "cat". (Micah Cowan)
Files:	    src/auto/configure, src/configure.in

Patch 7.1.247
Problem:    When using Netbeans backspacing in Insert mode skips a character
	    now and then. (Ankit Jain)
Solution:   Avoid calling netbeans_removed(), it frees the line pointer.
	    (partly by Dominique Pelle).
Files:	    src/misc1.c

Patch 7.1.248
Problem:    Can't set the '" mark.  Can't know if setpos() was successful.
Solution:   Allow setting the '" mark with setpos().  Have setpos() return a
	    value indicating success/failure.
Files:	    runtime/doc/eval.txt, src/eval.c, src/mark.c

Patch 7.1.249
Problem:    After "U" the cursor can be past end of line.  (Adri Verhoef)
Solution:   Adjust the cursor position in u_undoline().
Files:	    src/undo.c

Patch 7.1.250
Problem:    ":setglobal fenc=anything" gives an error message in a buffer
	    where 'modifiable' is off.  (Ben Schmidt)
Solution:   Don't give an error if 'modifiable' doesn't matter.
Files:	    src/option.c

Patch 7.1.251
Problem:    Using freed memory when spell checking enabled.
Solution:   Obtain the current line again after calling spell_move_to().
	    (Dominique Pelle)
Files:	    src/screen.c

Patch 7.1.252 (after 7.1.243)
Problem:    Test 39 fails when the environment has a utf-8 locale. (Dominique
	    Pelle)
Solution:   Force 'encoding' to be latin1.
Files:	    src/testdir/test39.in

Patch 7.1.253
Problem:    ":sort" doesn't work in a one line file. (Patrick Texier)
Solution:   Don't sort if there is only one line. (Dominique Pelle)
Files:	    src/ex_cmds.c

Patch 7.1.254
Problem:    Tests 49 and 55 fail when the locale is French.
Solution:   Using C messages for test 49.  Filter the error message in test 55
	    such that it works when the number is halfway the message.
Files:	    src/testdir/test49.in, src/testdir/test55.in

Patch 7.1.255
Problem:    Vim doesn't support utf-32. (Yongwei Wu)
Solution:   Add aliases for utf-32, it's the same as ucs-4.
Files:	    src/mbyte.c

Patch 7.1.256
Problem:    findfile() also returns directories.
Solution:   Cleanup the code for finding files and directories in a list of
	    directories.  Remove the ugly global ff_search_ctx.
Files:	    src/eval.c, src/misc2.c, src/vim.h, src/tag.c

Patch 7.1.257
Problem:    Configure can't always find the Tcl header files.
Solution:   Also look in /usr/local/include/tcl$tclver and
	    /usr/include/tcl$tclver (James Vega)
Files:	    src/auto/configure, src/configure.in

Patch 7.1.258
Problem:    Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula)
Solution:   Avoid that the column becomes negative.  Also fixes other problems
	    with the end of a pattern match is in column zero. (A.Politz)
Files:	    src/search.c

Patch 7.1.259
Problem:    Cursor is in the wrong position when 'rightleft' is set,
	    'encoding' is "utf-8" and on an illegal byte.  (Dominique Pelle)
Solution:   Only put the cursor in the first column when actually on a
	    double-wide character.  (Yukihiro Nakadaira)
Files:	    src/screen.c

Patch 7.1.260
Problem:    Cursor positioning problem after ^@ wrapping halfway when
	    'encoding' is utf-8.
Solution:   Only count a position for printable characters.  (partly by
	    Yukihiro Nakadaira)
Files:	    src/charset.c

Patch 7.1.261
Problem:    When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work
	    for UTF-16 text. (Tony Mechelynck)
Solution:   Default to UTF-16.
Files:	    src/fileio.c, src/testdir/test42.ok

Patch 7.1.262
Problem:    Can't get the process ID of Vim.
Solution:   Implement getpid().
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 7.1.263
Problem:    The filetype can consist of two dot separated names.  This works
	    for syntax and ftplugin, but not for indent. (Brett Stahlman)
Solution:   Use split() and loop over each dot separated name.
Files:	    runtime/indent.vim

Patch 7.1.264
Problem:    Crash when indenting lines. (Dominique Pelle)
Solution:   Set the cursor column when changing the cursor line.
Files:	    src/ops.c, src/misc1.c

Patch 7.1.265
Problem:    When 'isfname' contains a space, cmdline completion can hang.
	    (James Vega)
Solution:   Reset the "len" variable.
Files:	    src/ex_docmd.c

Patch 7.1.266
Problem:    When the version string returned by the terminal contains
	    unexpected characters, it is used as typed input. (James Vega)
Solution:   Assume the escape sequence ends in a letter.
Files:	    src/term.c

Patch 7.1.267
Problem:    When changing folds cursor may be positioned in the wrong place.
Solution:   Call changed_window_setting_win() instead of
	    changed_window_setting().
Files:	    src/fold.c

Patch 7.1.268
Problem:    Always shows "+" at end of screen line with: ":set
	    listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson)
Solution:   Check for lcs_eol_one instead of lcs_eol.
Files:	    src/screen.c

Patch 7.1.269
Problem:    The matchparen plugin has an arbitrary limit for the number of
	    lines to look for a match.
Solution:   Rely on the searchpair() timeout.
Files:	    runtime/plugin/matchparen.vim

Patch 7.1.270
Problem:    ":?foo?" matches in current line since patch 7.1.025. (A.Politz)
Solution:   Remove the SEARCH_START flag.
Files:	    src/ex_docmd.c, src/search.c

Patch 7.1.271
Problem:    In a Vim build without autocommands, checking a file that was
	    changed externally causes the current buffer to be changed
	    unexpectedly.  (Karsten Hopp)
Solution:   Store "curbuf" instead of "buf".
Files:	    src/fileio.c

Patch 7.1.272
Problem:    The special buffer name [Location List] is not used for a buffer
	    displayed in another tab page.
Solution:   Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki
	    Nishihara)
Files:	    src/buffer.c

Patch 7.1.273
Problem:    When profiling on Linux Vim exits early. (Liu Yubao)
Solution:   When profiling don't exit on SIGPROF.
Files:	    src/Makefile, src/os_unix.c

Patch 7.1.274 (after 7.1.272)
Problem:    Compiler warning for optimized build.
Solution:   Init win to NULL.
Files:	    src/buffer.c

Patch 7.1.275 (extra)
Problem:    Mac: ATSUI and 'antialias' don't work properly together.
Solution:   Fix this and the input method. (Jjgod Jiang)
Files:	    src/vim.h, src/gui_mac.c

Patch 7.1.276
Problem:    "gw" uses 'formatexpr', even though the docs say it doesn't.
Solution:   Don't use 'formatexpr' for "gw".
Files:	    src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro

Patch 7.1.277
Problem:    Default for 'paragraphs' misses some items (Colin Watson)
Solution:   Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega)
Files:	    runtime/doc/options.txt, src/option.c

Patch 7.1.278 (extra, after 7.1.275)
Problem:    Build failure when USE_CARBONKEYHANDLER is not defined.
Solution:   Remove #ifdef.
Files:	    src/gui_mac.c

Patch 7.1.279
Problem:    When using cscope temporary files are left behind.
Solution:   Send the quit command to cscope and give it two seconds to exit
	    nicely before killing it. (partly by Dominique Pelle)
Files:	    src/if_cscope.c

Patch 7.1.280  (after 7.1.275)
Problem:    Mac: build problems when not using multibyte feature. (Nicholas
	    Stallard)
Solution:   Don't define USE_IM_CONTROL when not using multibyte.
Files:	    src/vim.h

Patch 7.1.281 (after 7.1.279)
Problem:    sa.sa_mask is not initialized.  Cscope may not exit.
Solution:   Use sigemptyset().  Use SIGKILL instead of SIGTERM. (Dominique
	    Pelle)
Files:	    src/if_cscope.c

Patch 7.1.282 (extra)
Problem:    Win64: Edit with Vim context menu isn't installed correctly.
	    Compiler warnings and a few other things.
Solution:   Add [ and ] to entry of class name.  Use UINT_PTR instead of UINT.
	    And fixes for other things. (George V.  Reilly)
Files:	    src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h,
	    src/if_ole.idl, src/INSTALLpc.txt,  src/Make_mvc.mak,
	    src/os_win32.c,

Patch 7.1.283
Problem:    Non-extra part for 7.1.282.
Solution:   Various changes.
Files:	    src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c,
	    src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h,
	    src/window.c

Patch 7.1.284
Problem:    Compiler warnings for functions without prototype.
Solution:   Add the function prototypes. (Patrick Texier)
Files:	    src/eval.c, src/quickfix.c

Patch 7.1.285 (extra)
Problem:    Mac: dialog hotkeys don't work.
Solution:   Add hotkey support. (Dan Sandler)
Files:	    src/gui_mac.c

Patch 7.1.286 (after 7.1.103)
Problem:    "w" at the end of the buffer moves the cursor past the end of the
	    line. (Markus Heidelberg)
Solution:   Move the cursor back from the NUL when it was moved forward.
Files:	    src/normal.c

Patch 7.1.287
Problem:    Crash when reversing a list after using it. (Andy Wokula)
Solution:   Update the pointer to the last used element. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.1.288 (after 7.1.281)
Problem:    Cscope still leaves behind temp files when using gvim.
Solution:   When getting the ECHILD error loop for a while until cscope exits.
	    (Dominique Pelle)
Files:	    if_cscope.c

Patch 7.1.289
Problem:    When EXITFREE is defined and 'acd' is set freed memory is used.
	    (Dominique Pelle)
Solution:   Reset p_acd before freeing all buffers.
Files:	    src/misc2.c

Patch 7.1.290
Problem:    Reading bytes that were not written when spell checking and a line
	    has a very large indent.
Solution:   Don't copy the start of the next line when it only contains
	    spaces. (Dominique Pelle)
Files:	    src/spell.c

Patch 7.1.291 (after 7.1.288)
Problem:    Compiler warning.
Solution:   Change 50 to 50L.
Files:	    src/if_cscope.c

Patch 7.1.292
Problem:    When using a pattern with "\@<=" the submatches can be wrong.
	    (Brett Stahlman)
Solution:   Save the submatches when attempting a look-behind match.
Files:	    src/regexp.c

Patch 7.1.293
Problem:    Spell checking considers super- and subscript characters as word
	    characters.
Solution:   Recognize the Unicode super and subscript characters.
Files:	    src/spell.c

Patch 7.1.294
Problem:    Leaking memory when executing a shell command.
Solution:   Free memory when not able to save for undo. (Dominique Pelle)
Files:	    src/ex_cmds.c

Patch 7.1.295
Problem:    Vimtutor only works with vim, not gvim.
Solution:   Add the -g flag to vimtutor. (Dominique Pelle)  Add gvimtutor.
Files:	    src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1

Patch 7.1.296
Problem:    SELinux is not supported.
Solution:   Detect the selinux library and use mch_copy_sec(). (James Vega)
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro

Patch 7.1.297
Problem:    When using the search/replace dialog the parenmatch highlighting
	    can be wrong. (Tim Duncan)
Solution:   In the GUI redraw function invoke the CursorMoved autocmd.
Files:	    src/gui.c

Patch 7.1.298 (after 7.1.295)
Problem:    src/gvimtutor is not distributed.
Solution:   Add it to the list of distributed files.
Files:	    Filelist

Patch 7.1.299
Problem:    Filetype detection doesn't work properly for file names ending in
	    a part that is ignored and contain a space or other special
	    characters.
Solution:   Escape the special characters using the new fnameescape function.
Files:	    runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c,
	    src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h

Patch 7.1.300
Problem:    Value of asmsyntax argument isn't checked for valid characters.
Solution:   Only accepts letters and digits.
Files:	    runtime/filetype.vim

Patch 7.1.301
Problem:    When the "File/Save" menu is used in Insert mode, a tab page label
	    is not updated to remove the "+".
Solution:   Call draw_tabline() from showruler(). (Bjorn Winckler)
Files:	    src/screen.c

Patch 7.1.302 (after 7.1.299)
Problem:    Compilation error on MS-Windows.
Solution:   Don't use xp_shell when it's not defined.
Files:	    src/ex_getln.c

Patch 7.1.303 (after 7.1.302)
Problem:    Compilation error on MS-Windows, again.
Solution:   Declare p.
Files:	    src/ex_getln.c

Patch 7.1.304
Problem:    Shortpath_for_invalid_fname() does not work correctly and is
	    unnecessary complex.
Solution:   Clean up shortpath_for_invalid_fname(). (mostly by Yegappan
	    Lakshmanan)
Files:	    src/eval.c

Patch 7.1.305
Problem:    Editing a compressed file with special characters in the name
	    doesn't work properly.
Solution:   Escape special characters.
Files:	    runtime/autoload/gzip.vim

Patch 7.1.306
Problem:    Some Unicode characters are handled like word characters while
	    they are symbols.
Solution:   Adjust the table for Unicode classification.
Files:	    src/mbyte.c

Patch 7.1.307
Problem:    Many warnings when compiling with Python 2.5.
Solution:   Use ssize_t instead of int for some types. (James Vega)
Files:	    src/if_python.c

Patch 7.1.308
Problem:    When in readonly mode ":options" produces an error.
Solution:   Reset 'readonly'. (Gary Johnson)
Files:	    runtime/optwin.vim

Patch 7.1.309
Problem:    Installing and testing with a shadow directory doesn't work.
	    (James Vega)
Solution:   Add "po" to the list of directories to link.  Also link the Vim
	    scripts in testdir.  And a few more small fixes.
Files:	    src/Makefile

Patch 7.1.310
Problem:    Incomplete utf-8 byte sequence at end of the file is not detected.
	    Accessing memory that wasn't written.
Solution:   Check the last bytes in the buffer for being a valid utf-8
	    character. (mostly by Ben Schmidt)
	    Also fix that the reported line number of the error was wrong.
Files:	    src/fileio.c

Patch 7.1.311
Problem:    Compiler warning for missing sentinel in X code.
Solution:   Change 0 to NULL. (Markus Heidelberg)
Files:	    src/mbyte.c

Patch 7.1.312
Problem:    The .po files have mistakes in error numbers.
Solution:   Search for these mistakes in the check script. (Dominique Pelle)
Files:	    src/po/check.vim

Patch 7.1.313
Problem:    When the netbeans interface setModified call is used the status
	    lines and window title are not updated.
Solution:   Redraw the status lines and title. (Philippe Fremy)
Files:	    src/netbeans.c

Patch 7.1.314
Problem:    The value of 'pastetoggle' is written to the session file without
	    any escaping. (Randall Hansen)
Solution:   Use put_escstr(). (Ben Schmidt)
Files:	    src/option.c

Patch 7.1.315
Problem:    Crash with specific search pattern using look-behind match.
	    (Andreas Politz)
Solution:   Also save the value of "need_clear_subexpr".
Files:	    src/regexp.c

Patch 7.1.316
Problem:    When 'cscopetag' is set ":tag" gives an error message instead of
	    going to the next tag in the tag stack.
Solution:   Don't call do_cstag() when there is no argument. (Mark Goldman)
Files:	    src/ex_docmd.c

Patch 7.1.317
Problem:    Compiler warnings in Motif calls.
Solution:   Change zero to NULL. (Dominique Pelle)
Files:	    src/gui_motif.c

Patch 7.1.318
Problem:    Memory leak when closing xsmp connection.  Crash on exit when
	    using Lesstif.
Solution:   Don't close the X display to work around a Lesstif bug.  Free
	    clientid.  Also fix a leak for Motif and Athena. (Dominique Pelle)
Files:	    src/gui_x11.c, src/os_unix.c

Patch 7.1.319
Problem:    When a register has an illegal utf-8 sequence, pasting it on the
	    command line causes an illegal memory access.
Solution:   Use mb_cptr2char_adv(). (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.1.320 (extra)
Problem:    Win64: Warnings while compiling Python interface.
Solution:   Use PyInt in more places.  Also update version message for the
	    console. (George Reilly)
Files:	    src/if_python.c, src/version.c

Patch 7.1.321 (extra)
Problem:    Win32 / Win64: Install file is outdated.
Solution:   Update the text for recent compiler. (George Reilly)
Files:	    src/INSTALLpc.txt

Patch 7.1.322
Problem:    Can't get start of Visual area in an <expr> mapping.
Solution:   Add the 'v' argument to getpos().
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.1.323
Problem:    Test 19 fails with some termcaps. (Dominique Pelle)
Solution:   Set the t_kb and t_kD termcap values.
Files:	    src/testdir/test19.in, src/testdir/test38.in

Patch 7.1.324
Problem:    File name path length on Unix is limited to 1024.
Solution:   Use PATH_MAX when it's more than 1000.
Files:	    src/os_unix.h

Patch 7.1.325
Problem:    When editing a command line that's longer than available space in
	    the window, the characters at the end are in reverse order.
Solution:   Increment the insert position even when the command line doesn't
	    fit.  (Ingo Karkat)
Files:	    src/ex_getln.c

Patch 7.1.326
Problem:    ":s!from!to!" works, but ":smagic!from!to!" doesn't.  It sees the
	    "!" as a flag to the command.  Same for ":snomagic". (Johan Spetz)
Solution:   When checking for a forced command also ignore ":smagic" and
	    ":snomagic". (Ian Kelling)
Files:	    src/ex_docmd.c

Patch 7.1.327
Problem:    The GUI tutor is installed when there is no GUI version.
Solution:   Only install gvimtutor when building a GUI version.
Files:	    src/Makefile

Patch 7.1.328
Problem:    Crash when using Cygwin and non-posix path name in tags file.
Solution:   Use separate buffer for posix path. (Ben Schmidt)
Files:	    src/os_unix.c

Patch 7.1.329
Problem:    When the popup menu is removed a column of cells, the right halve
	    of double-wide characters, may not be redrawn.
Solution:   Check if the right halve of a character needs to be redrawn.
	    (Yukihiro Nakadaira)
Files:	    src/screen.c

Patch 7.1.330
Problem:    Reading uninitialized memory when using Del in replace mode.
Solution:   Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle)
Files:	    src/misc1.c


Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle)

A search offset from the end of a match didn't work properly for multi-byte
characters.  (Yukihiro Nakadaira)

When displaying the value of 'key' don't show "*****" when the value is empty.
(Ben Schmidt)

Internal error when compiled with EXITFREE and using the nerd_tree plugin.
Set last_msg_hist to NULL when history becomes empty.  Call
free_all_functions() after garbage collection.  (Dominique Pelle)

GTK with XIM: <S-Space> does not work.  (Yukihiro Nakadaira)

Some shells do not support "echo -n", which breaks glob().  Use "echo" instead
of "echo -n $1; echo".  (Gary Johnson)

"echo 22,44" printed "22" on top of the command, the error messages caused
the rest not to be cleared.  Added the need_clr_eos flag.

Netbeans events are handled while updating the screen, causing a crash.
Change the moment when events are handled.  Rename nb_parse_messages() to
netbeans_parse_messages().  (Xavier de Gaye)

Test 11 was broken after patch 7.1.186 on Win32 console. (Daniel Shahaf)
Use shellescape() on the file name.

IM was turned off in im_preedit_end_cb() for no good reason.  (Takuhiro
Nishioka)

A corrupted spell file could cause Vim to use lots of memory.  Better
detection for running into the end of the file.  (idea from James Vega)

Mac: Included a patch to make it build with GTK.  Moved language init to
mac_lang_init() function.  (Ben Schmidt)

Problem with 'wildmenu' after ":lcd", up/down arrows don't work. (Erik Falor)

Fix configure.in to avoid "implicitly declared" warnings when running
configure.

Fixed a memory leak when redefining a keymap. (Dominique Pelle)

Setting 'pastetoggle' to "jj" didn't work.

'ic' and 'smartcase' don't work properly when using \%V in a search pattern.
(Kana Natsuno)

Patch 7.2a.001
Problem:    On some systems X11/Xlib.h exists (from X11-dev package) but
	    X11/Intrinsic.h does not (in Xt-dev package).  This breaks the
	    build.  Also, on Solaris 9 sys/ptem.h isn't found.
Solution:   Have configure only accept X11 when X11/Intrinsic.h exists.
	    Check for sys/ptem.h while including sys/stream.h. (Vladimir
	    Marek)
Files:	    src/auto/configure, src/configure.in

Patch 7.2a.002
Problem:    getbufvar(N, "") gets the dictionary of the current buffer instead
	    of buffer N.
Solution:   Set curbuf before calling find_var_in_ht(). (Kana Natsuno)
Files:	    src/eval.c

Patch 7.2a.003
Problem:    Leaking memory when using ":file name" and using access control
	    lists.
Solution:   Invoke mch_free_acl() in vim_rename(). (Dominique Pelle)
Files:	    src/fileio.c

Patch 7.2a.004
Problem:    Some systems can't get spell files by ftp.
Solution:   Use http when it looks like it's possible. (James Vega)
Files:	    runtime/autoload/spellfile.vim

Patch 7.2a.005
Problem:    A few error messages use confusing names.  Misspelling.
Solution:   Change "dissallows" to "disallows". (Dominique Pelle)  Change
	    "number" to "Number".
Files:	    src/eval.c, src/fileio.c

Patch 7.2a.006
Problem:    Reading past NUL in a string.
Solution:   Check for invalid utf-8 byte sequence. (Dominique Pelle)
Files:	    src/charset.c

Patch 7.2a.007
Problem:    ":let v = 1.2.3" was OK in Vim 7.1, now it gives an error.
Solution:   Don't look for a floating point number after the "." operator.
Files:	    src/eval.c

Patch 7.2a.008
Problem:    printf("%g", 1) doesn't work.
Solution:   Convert Number to Float when needed.
Files:	    src/message.c

Patch 7.2a.009
Problem:    cygwin_conv_to_posix_path() does not specify buffer size.
Solution:   Use new Cygwin function: cygwin_conv_path(). (Corinna Vinschen)
Files:	    src/main.c, src/os_unix.c

Patch 7.2a.010
Problem:    When a file name has an illegal byte sequence Vim may read
	    uninitialised memory.
Solution:   Don't use UTF_COMPOSINGLIKE() on an illegal byte.  In
	    msg_outtrans_len_attr() use char2cells() instead of ptr2cells().
	    In utf_ptr2char() don't check second byte when first byte is
	    illegal.  (Dominique Pelle)
Files:	    src/mbyte.c, src/message.c

Patch 7.2a.011
Problem:    The Edit/Startup Settings menu doesn't work.
Solution:   Expand environment variables. (Ben Schmidt)
Files:	    runtime/menu.vim

Patch 7.2a.012
Problem:    Compiler warnings for casting int to pointer.
Solution:   Add cast to long in between. (Martin Toft)
Files:	    src/gui_gtk_x11.c

Patch 7.2a.013
Problem:    shellescape() does not escape "%" and "#" characters.
Solution:   Add find_cmdline_var() and use it when the second argument to
	    shellescape() is non-zero.
Files:	    runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c,
	    src/proto/ex_docmd.pro, src/proto/misc2.pro, src/misc2.c

Patch 7.2a.014
Problem:    Problem with % in message.
Solution:   Put % in single quotes.
Files:	    src/eval.c

Patch 7.2a.015 (after 7.2a.010)
Problem:    Misaligned messages.
Solution:   Compute length of unprintable chars correctly.
Files:	    src/message.c

Patch 7.2a.016
Problem:    Using CTRL-W v in the quickfix window results in two quickfix
	    windows, which is not allowed.  ":tab split" should be allowed to
	    open a new quickfix window in another tab.
Solution:   For CTRL-W v instead of splitting the window open a new one.
	    When using ":tab" do allow splitting the quickfix window (was
	    already included in patch 7.2a.013).
Files:	    src/window.c

Patch 7.2a.017
Problem:    ":doautoall" executes autocommands for all buffers instead of just
	    for loaded buffers.
Solution:   Change "curbuf" to "buf".
Files:	    src/fileio.c

Patch 7.2a.018
Problem:    Compiler warnings when compiling with Gnome. (Tony Mechelynck)
Solution:   Add type casts.
Files:	    src/gui_gtk_x11.c

Patch 7.2a.019
Problem:    ":let &g:tw = 44" sets the local option value. (Cyril Slobin)
Solution:   Use get_varp_scope() instead of get_varp(). (Ian Kelling)
Files:	    src/option.c

There is no way to avoid adding /usr/local/{include|lib} to the build
commands.  Add the --with-local-dir argument to configure. (Michael
Haubenwallner)

When using CTRL-D after ":help", the number of matches could be thousands.
Restrict to TAG_MANY to avoid this taking too long. (Ian Kelling)

The popup menu could be placed at a weird location.  Caused by w_wcol computed
by curs_columns().  (Dominique Pelle)

Overlapping STRCPY() arguments when using %r item in 'errorformat'.  Use
STRMOVE() instead. (Ralf Wildenhues)

Mac: On Leopard gvim, when using the mouse wheel nothing would happen until
another event occurs, such as moving the mouse.  Then the recorded scrolling
would take place all at once. (Eckehard Berns)

Solution for cursor color not reflecting IM status for GTK 2.  Add
preedit_is_active flag. (SungHyun Nam)

filereadable() can hang on a FIFO on Linux.  Use open() instead of fopen(),
with O_NONBLOCK. (suggested by Lars Kotthoff)

Included patch to support Perl 5.10. (Yasuhiro Matsumoto)

When files are dropped on gvim while the screen is being updated, ignore the
drop command to avoid freeing memory that is being used.

In a terminal, when drawing the popup menu over double-wide characters, half
characters may not be cleared properly. (Yukihiro Nakadaira)

The #ifdef for including "vimio.h" was inconsistent.  In a few files it
depended on MSWIN, which isn't defined until later.

Patch 7.2b.001
Problem:    Compilation problem: mb_fix_col() missing with multi-byte feature
	    but without GUI or clipboard.
Solution:   Remove #ifdef.
Files:	    src/mbyte.c

Patch 7.2b.002
Problem:    Compiler warnings for signed/unsigned mismatch.
Solution:   Add type casts.
Files:	    src/screen.c

Patch 7.2b.003
Problem:    Still a compilation problem, check_col() and check_row() missing.
Solution:   Add FEAT_MBYTE to the #if.
Files:	    src/ui.c

Patch 7.2b.004
Problem:    Trying to free memory for a static string when using ":helpgrep".
	    (George Reilly)
Solution:   Set 'cpo' to empty_option instead of an empty string.  Also for
	    searchpair() and substitute().
Files:	    src/quickfix.c, src/eval.c

Patch 7.2b.005
Problem:    The special character "!" isn't handled properly in shellescape().
	    (Jan Minar)
Solution:   Escape "!" when using a "csh" like shell and with
	    shellescape(s, 1).  Twice for both.  Also escape <NL>.
Files:	    src/misc2.c

Patch 7.2b.006
Problem:    Reading past end of string when reading info from tags line.
Solution:   Break the loop when encountering a NUL. (Dominique Pelle)
Files:	    src/tag.c

Patch 7.2b.007
Problem:    Part of a message cannot be translated.
Solution:   Put _() around the message.
Files:	    src/search.c

Patch 7.2b.008
Problem:    A few filetypes are not detected or not detected properly.
Solution:   Add filetype detection patterns. (Nikolai Weibull)
Files:	    runtime/filetype.vim

Patch 7.2b.009
Problem:    Reading past end of screen line. (Epicurus)
Solution:   Avoid going past the value of Columns.
Files:	    src/screen.c

Patch 7.2b.010
Problem:    ":mksession" doesn't work for ":map , foo", ":sunmap ,". (Ethan
	    Mallove)
Solution:   Check for "nxo", "nso" and other strange mapping combinations.
Files:	    src/getchar.c

Patch 7.2b.011
Problem:    Configure for TCL ends up with include file in compiler command.
	    (Richard Hogg)
Solution:   Delete items from $TCL_DEFS that do not start with a dash.
Files:	    src/auto/configure, src/configure.in

Patch 7.2b.012
Problem:    Build failure with +multi_byte but without +diff.
Solution:   Add #ifdef. (Patrick Texier)
Files:	    src/main.c

Patch 7.2b.013
Problem:    Build fails with tiny features and Perl. (Dominique Pelle)
Solution:   Define missing functions.  Also when compiling Python.
Files:	    src/if_perl.xs, src/if_python.c

Patch 7.2b.014
Problem:    Configure uses an unsafe temp file to store commands.
Solution:   Create the temp file in local directory.
Files:	    src/auto/configure, src/configure.in

Patch 7.2b.015
Problem:    Build fails on Mac when using Aap.
Solution:   Fix typo in configure script.
Files:	    src/auto/configure, src/configure.in

Patch 7.2b.016
Problem:    Build fails with normal features but without +autocmd.
Solution:   Fix #ifdefs. (Ian Kelling)
Files:	    src/eval.c, src/ex_cmds.c, src/quickfix.c, src/option.c,
	    src/ex_docmd.c

Patch 7.2b.017
Problem:    "vim -O foo foo" results in only one window.  (Zdenek Sekera)
Solution:   Handle result of ATTENTION prompt properly. (Ian Kelling)
Files:	    src/main.c

Patch 7.2b.018
Problem:    When doing command line completion on a file name for a csh-like
	    shell argument a '!' character isn't escaped properly.
Solution:   Add another backslash.
Files:	    src/ex_getln.c, src/misc2.c, src/proto/misc2.pro, src/screen.c

Patch 7.2b.019 (extra)
Problem:    Win32: Various compiler warnings.
Solution:   Use __w64 attribute.  Comment-out unused parameters.  Adjust a few
	    #ifdefs. (George Reilly)
Files:	    src/gui_w48.c, src/GvimExt/gvimext.cpp, src/Make_mvc.mak,
	    src/os_mswin.c, src/os_win32.c, src/vim.h

Patch 7.2b.020
Problem:    ":sort n" doesn't handle negative numbers. (James Vega)
Solution:   Include '-' in the number.
Files:	    src/charset.c, src/ex_cmds.c

Patch 7.2b.021
Problem:    Reloading doesn't read the BOM correctly. (Steve Gardner)
Solution:   Accept utf-8 BOM when specified file encoding is utf-8.
Files:	    src/fileio.c

Patch 7.2b.022
Problem:    When using ":normal" while updating the status line the count of
	    an operator is lost. (Dominique Pelle)
Solution:   Save and restore "opcount".
Files:	    src/ex_docmd.c, src/globals.h, src/normal.c

Patch 7.2b.023
Problem:    Crash when using the result of synstack(0,0). (Matt Wozniski)
Solution:   Check for v_list to be NULL in a few more places.
Files:	    src/eval.c

Patch 7.2b.024
Problem:    Using ":gui" while the netrw plugin is active causes a delay in
	    updating the display.
Solution:   Don't check for terminal codes when starting the GUI.
Files:	    src/term.c

Patch 7.2b.025
Problem:    When the CursorHold event triggers a pending count is lost.
	    (Juergen Kraemer)
Solution:   Save the counts and restore them.
Files:	    src/normal.c, src/structs.h

Patch 7.2b.026
Problem:    The GTK 2 file chooser causes the ~/.recently-used.xbel file to be
	    written over and over again.  This may cause a significant
	    slowdown. (Guido Berhoerster)
Solution:   Don't use the GTK 2 file chooser.
Files:	    src/gui_gtk.c

Patch 7.2b.027
Problem:    Memory leak for Python, Perl, etc. script command with end marker.
Solution:   Free the memory of the end marker. (Andy Kittner)
Files:	    src/ex_getln.c

Patch 7.2b.028
Problem:    Reading uninitialized memory when doing ":gui -f". (Dominique
	    Pelle)
Solution:   Don't position the cursor when the screen size is invalid.
Files:	    src/gui.c

Patch 7.2b.029
Problem:    ":help a" doesn't jump to "a" tag in docs. (Tony Mechelynck)
Solution:   Get all tags and throw away more than TAG_MANY after sorting.
	    When there is no argument find matches for "help" to avoid a long
	    delay.
Files:	    src/ex_cmds.c, src/ex_getln.c

Patch 7.2b.030
Problem:    When changing the value of t_Co from 8 to 16 the Visual
	    highlighting keeps both reverse and a background color.
Solution:   Remove the attribute when setting the default highlight color.
	    (Markus Heidelberg)
Files:	    src/syntax.c

Error when cancelling completion menu and auto-formatting. (fixed by Ian
Kelling)

Patch 7.2c.001
Problem:    ":let x=[''] | let x += x" causes hang. (Matt Wozniski)
Solution:   Only insert elements up to the original length of the List.
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.2c.002
Problem:    fnameescape() doesn't handle a leading '+' or '>'. (Jan Minar)
Solution:   Escape a leading '+' and '>'.  And a single '-'.
Files:	    runtime/doc/eval.txt, src/ex_getln.c

Patch 7.2c.003
Problem:    Searching for "foo\%[bar]\+" gives a "Corrupted regexp program"
	    error. (Joachim Hofmann)
Solution:   Mark the \%[] item as not being simple.
Files:	    src/regexp.c

On Vista access to system directories is virtualized. (Michael Mutschler)
Adjusted the manifest file to avoid this. (George Reilly)

Memory leak when using CTRL-C to cancel listing the jump list. (Dominique
Pelle)

Mac: Could not build with Perl interface.

==============================================================================
VERSION 7.3					*version-7.3* *version7.3*

This section is about improvements made between version 7.2 and 7.3.

This release has hundreds of bug fixes and there are a few new features.  The
most notable new features are:


Persistent undo					*new-persistent-undo*
---------------

Store undo information in a file.  Can undo to before when the file was read,
also for unloaded buffers. See |undo-persistence| (partly by Jordan Lewis)

Added the ":earlier 1f" and ":later 1f" commands.
Added file save counter to undo information.
Added the |undotree()| and |undofile()| functions.

Also added the 'undoreload' option.  This makes it possible to save the
current text when reloading the buffer, so that the reload can be undone.


More encryption					*new-more-encryption*
---------------

Support for Blowfish encryption.  Added the 'cryptmethod' option.
Mostly by Mohsin Ahmed.

Also encrypt the text in the swap file and the undo file.


Conceal text					*new-conceal*
------------

Added the |+conceal| feature.  (Vince Negri)
This allows hiding stretches of text, based on syntax highlighting.
It also allows replacing a stretch of text by a character |:syn-cchar|.
The 'conceallevel' option specifies what happens with text matching a syntax
item that has the conceal attribute.
The 'concealcursor' option specifies what happens in the cursor line.

The help files conceal characters used to mark tags and examples.

Added the |synconcealed()| function and use it for :TOhtml. (Benjamin Fritz)

Added the 'cursorbind' option, keeps the cursor in two windows with the same
text in sync.


Lua interface					*new-lua*
-------------

Added the |Lua| interface.  (Luis Carvalho)


Python3 interface				*new-python3*
-----------------

Added the Python3 interface.  It exists next to Python 2.x, both can be used
at the same time.  See |python3| (Roland Puntaier)


Changed							*changed-7.3*
-------

The MS-Windows installer no longer requires the user to type anything in the
console windows.  The installer now also works on 64 bit systems, including
the "Edit with Vim" context menu.
The gvim executable is 32 bits, the installed gvimext.dll is either a 32 or 64
bit version. (mostly by George Reilly)
Made the DOS installer work with more compilers.
The MS-Windows big gvim is now built with Python 2.7 and 3.1.2, Perl 5.12 and
Ruby 1.9.1.  You need the matching .dll files to use them.

The extra and language files are no longer distributed separately.
The source files for all systems are included in one distribution.

After using ":recover" or recovering a file in another way, ":x" and "ZZ"
didn't save what you see.  This could result in work being lost.  Now the text
after recovery is compared to the original file contents.  When they differ
the buffer is marked as modified.

When Vim is exiting because of a deadly signal, when v:dying is 2 or more,
VimLeavePre, VimLeave, BufWinLeave and BufUnload autocommands are not
executed.

Removed support for GTK 1.  It was no longer maintained and required a lot of
#ifdefs in the source code.  GTK 2 should be available for every system.
(James Vega)

It is no longer allowed to set the 'encoding' option from a modeline.  It
would corrupt the text.  (Patrick Texier)

Renamed runtime/spell/fixdup to runtime/spell/fixdup.vim.

Removed obsolete Mac code.

Updated spell files for Ubuntu locale names.

Switched from autoconf 2.63 to 2.65.

Removed Mupad indent and ftplugin files, they are not useful.

The maximum number of messages remembered in the history is now 200 (was 100).


Added							*added-7.3*
-----

Added the 'relativenumber' option. (Markus Heidelberg)

Added the 'colorcolumn' option: highlight one or more columns in a window.
E.g. to highlight the column after 'textwidth'. (partly by Gregor Uhlenheuer)

Added support for NetBeans in a terminal.  Added |:nbstart| and |:nbclose|.
(Xavier de Gaye)

More floating point functions: |acos()|, |asin()|, |atan2()|, |cosh()|,
|exp()|, |fmod()|, |log()|, |sinh()|, |tan()|, |tanh()|.  (Bill McCarthy)

Added the |gettabvar()| and |settabvar()| functions. (Yegappan Lakshmanan)

Added the |strchars()|, |strwidth()| and |strdisplaywidth()| functions.

Support GDK_SUPER_MASK for GTK on Mac. (Stephan Schulz)

Made CTRL and ALT modifier work for mouse wheel. (Benjamin Haskell)

Added support for horizontal scroll wheel. (Bjorn Winckler)

When the buffer is in diff mode, have :TOhtml create HTML to show the diff
side-by-side.  (Christian Brabandt)

Various improvements to ":TOhtml" and the 2html.vim script.  (Benjamin Fritz)

Add the 'L' item to 'cinoptions'. (Manuel Konig)

Improve Javascript indenting.  Add "J" flag to 'cinoptions'. (Hari Kumar G)

Mac: Support disabling antialias. (LC Mi)

Mac: Add clipboard support in the Mac console. (Bjorn Winckler)

Make it possible to drag a tab page label to another position. (Paul B. Mahol)

Better implementation of creating the Color Scheme menu. (Juergen Kraemer)

In Visual mode with 'showcmd' display the number of bytes and characters.

Allow synIDattr() getting GUI attributes when built without GUI.  (Matt
Wozniski)

Support completion for ":find".  Added test 73. (Nazri Ramliy)

Command line completion for :ownsyntax and :setfiletype. (Dominique Pelle)

Command line completion for :lmap and :lunmap.

Support syntax and filetype completion for user commands. (Christian Brabandt)

Avoid use of the GTK main_loop() so that the GtkFileChooser can be used.
(James Vega)

When 'formatexpr' evaluates to non-zero fall back to internal formatting, also
for "gq". (James Vega)

Support :browse for commands that use an error file argument. (Lech Lorens)

Support wide file names in gvimext. (Szabolcs Horvat)

Improve test for joining lines. (Milan Vancura)
Make joining a range of lines much faster. (Milan Vancura)

Add patch to improve support of z/OS (OS/390). (Ralf Schandl)

Added the helphelp.txt file.  Moved text from various.txt to it.

Added "q" item for 'statusline'.  Added |w:quickfix_title|. (Lech Lorens)

Various improvements for VMS. (Zoltan Arpadffy)


New syntax files: ~
Haskell Cabal build file (Vincent Berthoux)
ChaiScript (Jason Turner)
Cucumber (Tim Pope)
Datascript (Dominique Pelle)
Fantom (Kamil Toman)
Liquid (Tim Pope)
Markdown (Tim Pope)
wavefront's obj file (Vincent Berthoux)
Perl 6 (Andy Lester)
SDC - Synopsys Design Constraints (Maurizio Tranchero)
SVG - Scalable Vector Graphics (Vincent Berthoux)
task data (John Florian)
task 42 edit (John Florian)

New filetype plugins: ~
Cucumber (Tim Pope)
Liquid (Tim Pope)
Logcheck (Debian)
Markdown (Tim Pope)
Perl 6 (Andy Lester)
Quickfix window (Lech Lorens)
Tcl (Robert L Hicks)

New indent plugins: ~
CUDA (Bram Moolenaar)
ChaiScript (Jason Turner)
Cucumber (Tim Pope)
LifeLines (Patrick Texier)
Liquid (Tim Pope)
Mail (Bram Moolenaar)
Perl 6 (Andy Lester)

Other new runtime files: ~
Breton spell file (Dominique Pelle)
Dvorak keymap (Ashish Shukla)
Korean translations. (SungHyun Nam)
Python 3 completion (Aaron Griffin)
Serbian menu translations (Aleksandar Jelenak)
Tetum spell files
Tutor Bairish (Sepp Hell)
Tutor in Esperanto. (Dominique Pellé)
Tutor in Portuguese.
Norwegian Tutor now also available as tutor.nb

Removed the Mupad runtime files, they were not maintained.


Fixed							*fixed-7.3*
-----

Patch 7.2.001
Problem:    Mac: pseudo-ttys don't work properly on Leopard, resulting in the
	    shell not to have a prompt, CTRL-C not working, etc.
Solution:   Don't use SVR4 compatible ptys, even though they are detected.
	    (Ben Schmidt)
Files:	    src/pty.c

Patch 7.2.002
Problem:    Leaking memory when displaying menus.
Solution:   Free allocated memory. (Dominique Pelle)
Files:	    src/menu.c

Patch 7.2.003
Problem:    Typo in translated message.  Message not translated.
Solution:   Correct spelling. Add _(). (Dominique Pelle)
Files:	    src/spell.c, src/version.c

Patch 7.2.004
Problem:    Cscope help message is not translated.
Solution:   Put it in _(). (Dominique Pelle)
Files:	    src/if_cscope.c, src/if_cscope.h

Patch 7.2.005
Problem:    A few problems when profiling.  Using flag pointer instead of flag
	    value.  Allocating zero bytes.  Not freeing used memory.
Solution:   Remove wrong '&' characters.  Skip dumping when there is nothing
	    to dump.  Free used memory. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.2.006
Problem:    HTML files are not recognized by contents.
Solution:   Add a rule to the scripts file. (Nico Weber)
Files:	    runtime/scripts.vim

Patch 7.2.007 (extra)
Problem:    Minor issues for VMS.
Solution:   Minor fixes for VMS.  Add float support. (Zoltan Arpadffy)
Files:	    runtime/doc/os_vms.txt, src/os_vms_conf.h, src/Make_vms.mms,
	    src/testdir/Make_vms.mms, src/testdir/test30.in,
	    src/testdir/test54.in

Patch 7.2.008
Problem:    With a BufHidden autocommand that invokes ":bunload" the window
	    count for a buffer can be wrong. (Bob Hiestand)
Solution:   Don't call enter_buffer() when already in that buffer.
Files:	    src/buffer.c

Patch 7.2.009
Problem:    Can't compile with Perl 5.10 on MS-Windows. (Cesar Romani)
Solution:   Add the Perl_sv_free2 function for dynamic loading. (Dan Sharp)
Files:	    src/if_perl.xs

Patch 7.2.010
Problem:    When using "K" in Visual mode not all characters are properly
	    escaped. (Ben Schmidt)
Solution:   Use a function with the functionality of shellescape(). (Jan
	    Minar)
Files:	    src/mbyte.c, src/misc2.c, src/normal.c

Patch 7.2.011
Problem:    Get an error when inserting a float value from the expression
	    register.
Solution:   Convert the Float to a String automatically in the same place
	    where a List would be converted to a String.
Files:	    src/eval.c

Patch 7.2.012
Problem:    Compiler warnings when building with startup timing.
Solution:   Add type casts.
Files:	    src/ex_cmds2.c

Patch 7.2.013
Problem:    While waiting for the X selection Vim consumes a lot of CPU time
	    and hangs until a response is received.
Solution:   Sleep a bit when the selection event hasn't been received yet.
	    Time out after a couple of seconds to avoid a hang when the
	    selection owner isn't responding.
Files:	    src/ui.c

Patch 7.2.014
Problem:    synstack() doesn't work in an empty line.
Solution:   Accept column zero as a valid position.
Files:	    src/eval.c

Patch 7.2.015
Problem:    "make all test install" doesn't stop when the test fails. (Daniel
	    Shahaf)
Solution:   When test.log contains failures exit with non-zero status.
Files:	    src/testdir/Makefile

Patch 7.2.016
Problem:    The pattern being completed may be in freed memory when the
	    command line is being reallocated. (Dominique Pelle)
Solution:   Keep a pointer to the expand_T in the command line structure.
	    Don't use <S-Tab> as CTRL-P when there are no results.  Clear the
	    completion when using a command line from the history.
Files:	    src/ex_getln.c

Patch 7.2.017
Problem:    strlen() used on text that may not end in a NUL. (Dominique Pelle)
	    Pasting a very big selection doesn't work.
Solution:   Use the length passed to the XtSelectionCallbackProc() function.
	    After getting the SelectionNotify event continue dispatching
	    events until the callback is actually called.  Also dispatch the
	    PropertyNotify event.
Files:	    src/ui.c

Patch 7.2.018
Problem:    Memory leak when substitute is aborted.
Solution:   Free the buffer allocated for the new text. (Dominique Pelle)
Files:	    src/ex_cmds.c

Patch 7.2.019
Problem:    Completion of ":noautocmd" doesn't work and exists(":noautocmd")
	    returns zero. (Ben Fritz)
Solution:   Add "noautocmd" to the list of modifiers and commands.
Files:	    src/ex_cmds.h, src/ex_docmd.c

Patch 7.2.020
Problem:    Starting the GUI when the executable starts with 'k', but the KDE
	    version no longer exists.
Solution:   Don't have "kvim" start the GUI.
Files:	    src/main.c

Patch 7.2.021
Problem:    When executing autocommands getting the full file name may be
	    slow. (David Kotchan)
Solution:   Postpone calling FullName_save() until autocmd_fname is used.
Files:	    src/ex_docmd.c, src/fileio.c, src/globals.h

Patch 7.2.022 (extra)
Problem:    Testing is not possible when compiling with MingW.
Solution:   Add a MingW specific test Makefile. (Bill McCarthy)
Files:	    Filelist, src/testdir/Make_ming.mak

Patch 7.2.023
Problem:    'cursorcolumn' is in the wrong place in a closed fold when the
	    display is shifted left. (Gary Johnson)
Solution:   Subtract w_skipcol or w_leftcol when needed.
Files:	    src/screen.c

Patch 7.2.024
Problem:    It's possible to set 'history' to a negative value and that causes
	    an out-of-memory error.
Solution:   Check that 'history' has a positive value. (Doug Kearns)
Files:	    src/option.c

Patch 7.2.025
Problem:    When a CursorHold event invokes system() it is retriggered over
	    and over again.
Solution:   Don't reset did_cursorhold when getting K_IGNORE.
Files:	    src/normal.c

Patch 7.2.026 (after 7.2.010)
Problem:    "K" doesn't use the length of the identifier but uses the rest of
	    the line.
Solution:   Copy the desired number of characters first.
Files:	    src/normal.c

Patch 7.2.027
Problem:    Can use cscope commands in the sandbox.
Solution:   Disallow them, they might not be safe.
Files:	    src/ex_cmds.h

Patch 7.2.028
Problem:    Confusing error message for missing ().
Solution:   Change "braces" to "parentheses". (Gary Johnson)
Files:	    src/eval.c

Patch 7.2.029
Problem:    No completion for ":doautoall".
Solution:   Complete ":doautoall" like ":doautocmd".  (Doug Kearns)
Files:	    src/ex_docmd.c

Patch 7.2.030 (after 7.2.027)
Problem:    Can't compile.
Solution:   Remove prematurely added ex_oldfiles.
Files:	    src/ex_cmds.h

Patch 7.2.031
Problem:    Information in the viminfo file about previously edited files is
	    not available to the user.  There is no way to get a complete list
	    of files edited in previous Vim sessions.
Solution:   Add v:oldfiles and fill it with the list of old file names when
	    first reading the viminfo file.  Add the ":oldfiles" command,
	    ":browse oldfiles" and the "#<123" special file name.  Increase
	    the default value for 'viminfo' from '20 to '100.
Files:	    runtime/doc/cmdline.txt, runtime/doc/eval.txt,
	    runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c,
	    src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h,
	    src/fileio.c, src/main.c, src/mark.c, src/misc1.c,
	    src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro,
	    src/option.c, src/structs.h, src/vim.h

Patch 7.2.032 (after 7.2.031)
Problem:    Can't build with EXITFREE defined. (Dominique Pelle)
Solution:   Change vv_string to vv_str.
Files:	    src/eval.c

Patch 7.2.033
Problem:    When detecting a little endian BOM "ucs-2le" is used, but the text
	    might be "utf-16le".
Solution:   Default to "utf-16le", it also works for "ucs-2le". (Jia Yanwei)
Files:	    src/fileio.c, src/testdir/test42.ok

Patch 7.2.034
Problem:    Memory leak in spell info when deleting buffer.
Solution:   Free the memory. (Dominique Pelle)
Files:	    src/buffer.c

Patch 7.2.035
Problem:    Mismatches between alloc/malloc, free/vim_free,
	    realloc/vim_realloc.
Solution:   Use the right function. (Dominique Pelle)
Files:	    src/gui_x11.c, src/mbyte.c, src/misc2.c, src/os_unix.c

Patch 7.2.036 (extra)
Problem:    Mismatches between alloc/malloc, free/vim_free,
	    realloc/vim_realloc.
Solution:   Use the right function. (Dominique Pelle)
Files:	    src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c,
	    src/os_w32exe.c, src/os_win16.c

Patch 7.2.037
Problem:    Double free with GTK 1 and compiled with EXITFREE.
Solution:   Don't close display. (Dominique Pelle)
Files:	    src/os_unix.c

Patch 7.2.038
Problem:    Overlapping arguments to memcpy().
Solution:   Use mch_memmove(). (Dominique Pelle)
Files:	    src/if_xcmdsrv.c

Patch 7.2.039
Problem:    Accessing freed memory on exit when EXITFREE is defined.
Solution:   Call hash_init() on the v: hash table.
Files:	    src/eval.c

Patch 7.2.040
Problem:    When using ":e ++ff=dos fname" and the file contains a NL without
	    a CR before it and 'ffs' contains "unix" then the fileformat
	    becomes unix.
Solution:   Ignore 'ffs' when using the ++ff argument. (Ben Schmidt)
	    Also remove unreachable code.
Files:	    src/fileio.c

Patch 7.2.041
Problem:    In diff mode, when using two tabs, each with two diffed buffers,
	    editing a buffer of the other tab messes up the diff.  (Matt
	    Mzyzik)
Solution:   Only copy options from a window where the buffer was edited that
	    doesn't have 'diff' set or is for the current tab page.
	    Also fix that window options for a buffer are stored with the
	    wrong window.
Files:	    src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
	    src/ex_getln.c, src/if_sniff.c, src/main.c, src/netbeans.c,
	    src/normal.c, src/popupmnu.c, src/proto/buffer.pro,
	    src/proto/ex_cmds.pro src/quickfix.c, src/window.c

Patch 7.2.042
Problem:    When using winrestview() in a BufWinEnter autocommand the window
	    is scrolled anyway. (Matt Zyzik)
Solution:   Don't recompute topline when above 'scrolloff' from the bottom.
	    Don't always put the cursor halfway when entering a buffer.  Add
	    "w_topline_was_set".
Files:	    src/buffer.c, src/move.c, src/structs.h

Patch 7.2.043
Problem:    VMS: Too many characters are escaped in filename and shell
	    commands.
Solution:   Escape fewer characters. (Zoltan Arpadffy)
Files:	    src/vim.h

Patch 7.2.044
Problem:    Crash because of STRCPY() being over protective of the destination
	    size. (Dominique Pelle)
Solution:   Add -D_FORTIFY_SOURCE=1 to CFLAGS.  Use an intermediate variable
	    for the pointer to avoid a warning.
Files:	    src/auto/configure, src/configure.in, src/eval.c

Patch 7.2.045
Problem:    The Python interface has an empty entry in sys.path.
Solution:   Filter out the empty entry. (idea from James Vega)
Files:	    src/if_python.c

Patch 7.2.046
Problem:    Wrong check for filling buffer with encoding. (Danek Duvall)
Solution:   Remove pointers. (Dominique Pelle)
Files:	    src/mbyte.c

Patch 7.2.047
Problem:    Starting Vim with the -nb argument while it's not supported causes
	    the other side to hang.
Solution:   When -nb is used while it's not supported exit Vim. (Xavier de
	    Gaye)
Files:	    src/main.c, src/vim.h

Patch 7.2.048
Problem:    v:prevcount is changed too often.  Counts are not multiplied when
	    setting v:count.
Solution:   Set v:prevcount properly.  Multiply counts. (idea by Ben Schmidt)
Files:	    src/eval.c, src/normal.c, src/proto/eval.pro

Patch 7.2.049 (extra)
Problem:    Win32: the clipboard doesn't support UTF-16.
Solution:   Change UCS-2 support to UTF-16 support. (Jia Yanwei)
Files:	    src/gui_w32.c, src/gui_w48.c, src/mbyte.c, src/misc1.c,
	    src/os_mswin.c, src/os_win32.c, src/proto/os_mswin.pro

Patch 7.2.050
Problem:    Warnings for not checking return value of fwrite(). (Chip Campbell)
Solution:   Use the return value.
Files:	    src/spell.c

Patch 7.2.051
Problem:    Can't avoid 'wildignore' and 'suffixes' for glob() and globpath().
Solution:   Add an extra argument to these functions. (Ingo Karkat)
Files:	    src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro,
	    runtime/doc/eval.txt, runtime/doc/options.txt

Patch 7.2.052
Problem:    synIDattr() doesn't support "sp" for special color.
Solution:   Recognize "sp" and "sp#".  (Matt Wozniski)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.2.053
Problem:    Crash when using WorkShop command ":ws foo". (Dominique Pelle)
Solution:   Avoid using a NULL pointer.
Files:	    src/workshop.c

Patch 7.2.054
Problem:    Compilation warnings for format in getchar.c.
Solution:   Use fputs() instead of fprintf().  (Dominique Pelle)
Files:	    src/getchar.c

Patch 7.2.055
Problem:    Various compiler warnings with strict checking.
Solution:   Avoid the warnings by using return values and renaming.
Files:	    src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
	    src/fileio.c, src/fold.c, src/globals.h, src/gui.c,
	    src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c,
	    src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c,
	    src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c,
	    src/ui.c, src/window.c

Patch 7.2.056 (after 7.2.050)
Problem:    Tests 58 and 59 fail.
Solution:   Don't invoke fwrite() with a zero length. (Dominique Pelle)
Files:	    src/spell.c

Patch 7.2.057 (after 7.2.056)
Problem:    Combination of int and size_t may not work.
Solution:   Use size_t for variable.
Files:	    src/spell.c

Patch 7.2.058
Problem:    Can't add a patch name to the ":version" output.
Solution:   Add the extra_patches array.
Files:	    src/version.c

Patch 7.2.059
Problem:    Diff display is not always updated.
Solution:   Update the display more often.
Files:	    src/diff.c

Patch 7.2.060
Problem:    When a spell files has many compound rules it may take a very long
	    time making the list of suggestions.  Displaying also can be slow
	    when there are misspelled words.
	    Can't parse some Hunspell .aff files.
Solution:   Check if a compounding can possibly work before trying a
	    combination, if the compound rules don't contain wildcards.
	    Implement using CHECKCOMPOUNDPATTERN.
	    Ignore COMPOUNDRULES.  Ignore a comment after most items.
	    Accept ONLYINCOMPOUND as an alias for NEEDCOMPOUND.
	    Accept FORBIDDENWORD as an alias for BAD.
Files:	    runtime/doc/spell.txt, src/spell.c

Patch 7.2.061
Problem:    Can't create a funcref for an autoload function without loading
	    the script first. (Marc Weber)
Solution:   Accept autoload functions that don't exist yet in function().
Files:	    src/eval.c

Patch 7.2.062
Problem:    "[Scratch]" is not translated.
Solution:   Mark the string for translation. (Dominique Pelle)
Files:	    src/buffer.c

Patch 7.2.063
Problem:    Warning for NULL argument of Perl_sys_init3().
Solution:   Use Perl_sys_init() instead. (partly by Dominique Pelle)
Files:	    src/if_perl.xs

Patch 7.2.064
Problem:    Screen update bug when repeating "~" on a Visual block and the
	    last line doesn't change.
Solution:   Keep track of changes for all lines.  (Moritz Orbach)
Files:	    src/ops.c

Patch 7.2.065
Problem:    GTK GUI: the cursor disappears when doing ":vsp" and the Vim
	    window is maximized.  (Dominique Pelle, Denis Smolyar)
Solution:   Don't change "Columns" back to an old value at a wrong moment.
	    Do change "Rows" when it should not be a problem.
Files:	    src/gui.c

Patch 7.2.066
Problem:    It's not easy to see whether 'encoding' is a multi-byte encoding.
Solution:   Add has('multi_byte_encoding').
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.2.067
Problem:    Session file can't load extra file when the path contains special
	    characters.
Solution:   Escape the file name. (Lech Lorens)
Files:	    src/ex_docmd.c

Patch 7.2.068
Problem:    Emacs tags file lines can be too long, resulting in an error
	    message. (James Vega)
Solution:   Ignore lines with errors if they are too long.
Files:	    src/tag.c

Patch 7.2.069 (after 7.2.060)
Problem:    Compiler warning for storing size_t in int.
Solution:   Add type cast.
Files:	    src/spell.c

Patch 7.2.070
Problem:    Crash when a function returns a:000. (Matt Wozniski)
Solution:   Don't put the function struct on the stack, allocate it.  Free it
	    only when nothing in it is used.
Files:	    src/eval.c

Patch 7.2.071 (extra)
Problem:    Win32: Handling netbeans events while Vim is busy updating the
	    screen may cause a crash.
Solution:   Like with GTK, only handle netbeans messages in the main loop.
	    (Xavier de Gaye)
Files:	    src/gui_w48.c, src/netbeans.c

Patch 7.2.072 (extra)
Problem:    Compiler warning in Sniff code.
Solution:   Use return value of pipe(). (Dominique Pelle)
Files:	    src/if_sniff.c

Patch 7.2.073
Problem:    ":set <xHome>" has the same output as ":set <Home>". (Matt
	    Wozniski)
Solution:   Don't translate "x" keys to its alternative for ":set".
Files:	    src/gui_mac.c, src/misc2.c, src/option.c, src/proto/misc2.pro

Patch 7.2.074 (extra, after 7.2.073)
Problem:    ":set <xHome>" has the same output as ":set <Home>". (Matt
	    Wozniski)
Solution:   Don't translate "x" keys to its alternative for ":set".
Files:	    src/gui_mac.c

Patch 7.2.075 (after 7.2.058)
Problem:    Explanation about making a diff for extra_patches is unclear.
Solution:   Adjust comment.
Files:	    src/version.c

Patch 7.2.076
Problem:    rename(from, to) deletes the file if "from" and "to" are not equal
	    but still refer to the same file.  E.g., on a FAT32 filesystem
	    under Unix.
Solution:   Go through another file name.
Files:	    src/fileio.c

Patch 7.2.077 (after 7.2.076)
Problem:    rename(from, to) doesn't work if "from" and "to" differ only in
	    case on a system that ignores case in file names.
Solution:   Go through another file name.
Files:	    src/fileio.c

Patch 7.2.078
Problem:    When deleting a fold that is specified with markers the cursor
	    position may be wrong.  Folds may not be displayed properly after
	    a delete.  Wrong fold may be deleted.
Solution:   Fix the problems. (mostly by Lech Lorens)
Files:	    src/fold.c

Patch 7.2.079
Problem:    "killed" netbeans events are not handled correctly.
Solution:   A "killed" netbeans event is sent when the buffer is deleted or
	    wiped out (in this case, the netbeans annotations in this buffer
	    have been removed).  A user can still remove a sign with the
	    command ":sign unplace" and this does not trigger a "killed"
	    event.  (Xavier de Gaye)
Files:	    runtime/doc/netbeans.txt, src/buffer.c, src/globals.h,
	    src/netbeans.c, src/proto/netbeans.pro

Patch 7.2.080
Problem:    When typing a composing character just after starting completion
	    may access memory before its allocation point. (Dominique Pelle)
Solution:   Don't delete before the completion start column.  Add extra checks
	    for the offset not being negative.
Files:	    src/edit.c

Patch 7.2.081
Problem:    Compiler warning for floating point overflow on VAX.
Solution:   For VAX use a smaller number. (Zoltan Arpadffy)
Files:	    src/message.c

Patch 7.2.082
Problem:    When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a.
	    (Andy Wokula)
Solution:   Use NL for this situation. (Lech Lorens)
Files:	    src/ex_cmds.c

Patch 7.2.083
Problem:    ":tag" does not return to the right tag entry from the tag stack.
Solution:   Don't change the current match when there is no argument.
	    (Erik Falor)
Files:	    src/tag.c

Patch 7.2.084
Problem:    Recursive structures are not handled properly in Python
	    vim.eval().
Solution:   Keep track of references in a better way. (Yukihiro Nakadaira)
Files:	    src/if_python.c

Patch 7.2.085
Problem:    ":set <M-b>=<Esc>b" does not work when 'encoding' is utf-8.
Solution:   Put the <M-b> character in the input buffer as valid utf-8.
	    (partly by Matt Wozniski)
Files:	    src/term.c

Patch 7.2.086
Problem:    Using ":diffget 1" in buffer 1 corrupts the text.
Solution:   Don't do anything when source and destination of ":diffget" or
	    ":diffput" is the same buffer. (Dominique Pelle)
Files:	    src/diff.c

Patch 7.2.087
Problem:    Adding URL to 'path' doesn't work to edit a file.
Solution:   Skip simplify_filename() for URLs. (Matt Wozniski)
Files:	    src/misc2.c

Patch 7.2.088 (extra)
Problem:    OpenClipboard() may fail when another application is using the
	    clipboard.
Solution:   Retry OpenClipboard() a few times. (Jianrong Yu)
Files:	    src/os_mswin.c

Patch 7.2.089 (extra)
Problem:    Win32: crash when using Ultramon buttons.
Solution:   Don't use a WM_OLE message of zero size. (Ray Megal)
Files:	    src/if_ole.cpp, src/gui_w48.c

Patch 7.2.090
Problem:    User command containing 0x80 in multi-byte character does not work
	    properly. (Yasuhiro Matsumoto)
Solution:   Undo replacement of K_SPECIAL and CSI characters when executing
	    the command.
Files:	    src/ex_docmd.c

Patch 7.2.091
Problem:    ":cs help" output is not aligned for some languages.
Solution:   Compute character size instead of byte size. (Dominique Pelle)
Files:	    src/if_cscope.c

Patch 7.2.092
Problem:    Some error messages are not translated.
Solution:   Add _() around the messages. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.2.093 (extra)
Problem:    Win32: inputdialog() and find/replace dialogs can't handle
	    multi-byte text.
Solution:   Use the wide version of dialog functions when available. (Yanwei
	    Jia)
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 7.2.094
Problem:    Compiler warning for signed/unsigned compare.
Solution:   Add type cast.  Also fix a few typos.
Files:	    src/edit.c

Patch 7.2.095
Problem:    With Visual selection, "r" and then CTRL-C Visual mode is stopped
	    but the highlighting is not removed.
Solution:   Call reset_VIsual().
Files:	    src/normal.c

Patch 7.2.096
Problem:    After ":number" the "Press Enter" message may be on the wrong
	    screen, if switching screens for shell commands.
Solution:   Reset info_message. (James Vega)
Files:	    src/ex_cmds.c

Patch 7.2.097
Problem:    "!xterm&" doesn't work when 'shell' is "bash".
Solution:   Ignore SIGHUP after calling setsid(). (Simon Schubert)
Files:	    src/os_unix.c

Patch 7.2.098
Problem:    Warning for signed/unsigned pointer.
Solution:   Add type cast.
Files:	    src/eval.c

Patch 7.2.099
Problem:    Changing GUI options causes an unnecessary redraw when the GUI
	    isn't active.
Solution:   Avoid the redraw. (Lech Lorens)
Files:	    src/option.c

Patch 7.2.100
Problem:    When using ":source" on a FIFO or something else that can't rewind
	    the first three bytes are skipped.
Solution:   Instead of rewinding read the first line and detect a BOM in that.
	    (mostly by James Vega)
Files:	    src/ex_cmds2.c

Patch 7.2.101 (extra)
Problem:    MSVC version not recognized.
Solution:   Add the version number to the list.  (Zhong Zhang)
Files:	    src/Make_mvc.mak

Patch 7.2.102 (after 7.2.100)
Problem:    When 'encoding' is "utf-8" a BOM at the start of a Vim script is
	    not removed. (Tony Mechelynck)
Solution:   When no conversion is taking place make a copy of the line without
	    the BOM.
Files:	    src/ex_cmds2.c

Patch 7.2.103
Problem:    When 'bomb' is changed the window title is updated to show/hide a
	    "+", but the tab page label isn't. (Patrick Texier)
Solution:   Set "redraw_tabline" in most places where "need_maketitle" is set.
	    (partly by Lech Lorens)
Files:	    src/option.c

Patch 7.2.104
Problem:    When using ":saveas bar.c" the tab label isn't updated right away.
Solution:   Set redraw_tabline. (Francois Ingelrest)
Files:	    src/ex_cmds.c

Patch 7.2.105
Problem:    Modeline setting for 'foldmethod' overrules diff options. (Ingo
	    Karkat)
Solution:   Don't set 'foldmethod' and 'wrap' from a modeline when 'diff' is
	    on.
Files:	    src/option.c

Patch 7.2.106
Problem:    Endless loop when using "]s" in HTML when there are no
	    misspellings. (Ingo Karkat)
Solution:   Break the search loop.  Also fix pointer alignment for systems
	    with pointers larger than int.
Files:	    src/spell.c

Patch 7.2.107
Problem:    When using a GUI dialog and ":echo" commands the messages are
	    deleted after the dialog. (Vincent Birebent)
Solution:   Don't call msg_end_prompt() since there was no prompt.
Files:	    src/message.c

Patch 7.2.108 (after 7.2.105)
Problem:    Can't build without the diff feature.
Solution:   Add #ifdef.
Files:	    src/option.c

Patch 7.2.109
Problem:    'langmap' does not work for multi-byte characters.
Solution:   Add a list of mapped multi-byte characters. (based on work by
	    Konstantin Korikov, Agathoklis Hatzimanikas)
Files:	    runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h,
	    src/normal.c, src/option.c, src/proto/option.pro, src/window.c

Patch 7.2.110
Problem:    Compiler warning for unused variable.
Solution:   Init the variable.
Files:	    src/ex_docmd.c

Patch 7.2.111
Problem:    When using Visual block mode with 'cursorcolumn' it's unclear what
	    is selected.
Solution:   Don't use 'cursorcolumn' highlighting inside the Visual selection.
	    (idea by Dominique Pelle)
Files:	    src/screen.c

Patch 7.2.112
Problem:    Cursor invisible in Visual mode when 'number' is set and cursor in
	    first column. (Matti Niemenmaa, Renato Alves)
Solution:   Check that vcol_prev is smaller than vcol.
Files:	    src/screen.c

Patch 7.2.113
Problem:    Crash for substitute() call using submatch(1) while there is no
	    such submatch. (Yukihiro Nakadaira)
Solution:   Also check the start of the submatch is set, it can be NULL when
	    an attempted match didn't work out.
Files:	    src/regexp.c

Patch 7.2.114
Problem:    Using wrong printf format.
Solution:   Use "%ld" instead of "%d". (Dominique Pelle)
Files:	    src/netbeans.c

Patch 7.2.115
Problem:    Some debugging code is never used.
Solution:   Remove nbtrace() and nbprt(). (Dominique Pelle)
Files:	    src/nbdebug.c, src/nbdebug.h

Patch 7.2.116
Problem:    Not all memory is freed when EXITFREE is defined.
Solution:   Free allocated memory on exit. (Dominique Pelle)
Files:	    src/ex_docmd.c, src/gui_gtk_x11.c, src/misc2.c, src/search.c,
	    src/tag.c

Patch 7.2.117
Problem:    Location list incorrectly labelled "Quickfix List".
Solution:   Break out of both loops for finding window for location list
	    buffer. (Lech Lorens)
Files:	    src/buffer.c, src/quickfix.c, src/screen.c

Patch 7.2.118
Problem:    <PageUp> at the more prompt only does half a page.
Solution:   Make <PageUp> go up a whole page.  Also make 'f' go a page
	    forward, but not quit the more prompt. (Markus Heidelberg)
Files:	    src/message.c

Patch 7.2.119
Problem:    Status line is redrawn too often.
Solution:   Check ScreeenLinesUC[] properly. (Yukihiro Nakadaira)
Files:	    src/screen.c

Patch 7.2.120
Problem:    When opening the quickfix window or splitting the window and
	    setting the location list, the location list is copied and then
	    deleted, which is inefficient.
Solution:   Don't copy the location list when not needed. (Lech Lorens)
Files:	    src/quickfix.c, src/vim.h, src/window.c

Patch 7.2.121
Problem:    In gvim "!grep a *.c" spews out a lot of text that can't be
	    stopped with CTRL-C.
Solution:   When looping to read and show text, do check for typed characters
	    every two seconds.
Files:	    src/os_unix.c

Patch 7.2.122
Problem:    Invalid memory access when the VimResized autocommand changes
	    'columns' and/or 'lines'.
Solution:   After VimResized check for changed values. (Dominique Pelle)
Files:	    src/screen.c

Patch 7.2.123
Problem:    Typing 'q' at more prompt for ":map" output still displays another
	    line, causing another more prompt. (Markus Heidelberg)
Solution:   Quit listing maps when 'q' typed.
Files:	    src/getchar.c

Patch 7.2.124
Problem:    Typing 'q' at more prompt for ":tselect" output still displays
	    more lines, causing another more prompt. (Markus Heidelberg)
Solution:   Quit listing tags when 'q' typed.
Files:	    src/tag.c

Patch 7.2.125
Problem:    Leaking memory when reading XPM bitmap for a sign.
Solution:   Don't allocate the memory twice. (Dominique Pelle)
Files:	    src/gui_x11.c

Patch 7.2.126
Problem:    When EXITFREE is defined signs are not freed.
Solution:   Free all signs on exit.  Also free keymaps. (Dominique Pelle)
Files:	    src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro

Patch 7.2.127
Problem:    When listing mappings and a wrapping line causes the more prompt,
	    after typing 'q' there can be another more prompt. (Markus
	    Heidelberg)
Solution:   Set "lines_left" to allow more lines to be displayed.
Files:	    src/message.c

Patch 7.2.128 (after 7.2.055)
Problem:    Using ":lcd" makes session files not work.
Solution:   Compare return value of mch_chdir() properly. (Andreas Bernauer)
Files:	    src/ex_docmd.c

Patch 7.2.129
Problem:    When opening a command window from input() it uses the search
	    history.
Solution:   Use get_cmdline_type(). (James Vega)
Files:	    src/ex_getln.c

Patch 7.2.130
Problem:    Vim may hang until CTRL-C is typed when using CTRL-Z.
Solution:   Avoid using pause().  Also use "volatile" for variables used in
	    signal functions. (Dominique Pelle)
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/globals.h, src/os_unix.c

Patch 7.2.131
Problem:    When 'keymap' is cleared may still use the cursor highlighting for
	    when it's enabled.
Solution:   Reset 'iminsert' and 'imsearch'. (partly by Dominique Pelle)
	    Also avoid ":setlocal" for these options have a global effect.
Files:	    src/option.c

Patch 7.2.132
Problem:    When changing directory during a SwapExists autocmd freed memory
	    may be accessed. (Dominique Pelle)
Solution:   Add the allbuf_lock flag.
Files:	    src/ex_getln.c, src/globals.h, src/fileio.c,
	    src/proto/ex_getln.pro

Patch 7.2.133
Problem:    ":diffoff!" changes settings in windows not in diff mode.
Solution:   Only change settings in other windows when 'diff' is set, always
	    do it for the current window. (Lech Lorens)
Files:	    src/diff.c

Patch 7.2.134
Problem:    Warning for discarding "const" from pointer.
Solution:   Don't pass const pointer to mch_memmove().
Files:	    src/fileio.c

Patch 7.2.135
Problem:    Memory leak when redefining user command with complete argument.
Solution:   Free the old complete argument. (Dominique Pelle)
Files:	    src/ex_docmd.c

Patch 7.2.136 (after 7.2.132)
Problem:    ":cd" is still possible in a SwapExists autocmd.
Solution:   Check the allbuf_lock flag in ex_cd().
Files:	    src/ex_docmd.c

Patch 7.2.137
Problem:    When 'virtualedit' is set, a left shift of a blockwise selection
	    that starts and ends inside a tab shifts too much. (Helmut
	    Stiegler)
Solution:   Redo the block left shift code. (Lech Lorens)
Files:	    src/ops.c, src/testdir/Makefile, src/testdir/test66.in,
	    src/testdir/test66.ok

Patch 7.2.138 (extra part of 7.2.137)
Problem:    See 7.2.137.
Solution:   See 7.2.137.
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms

Patch 7.2.139
Problem:    Crash when 'virtualedit' is "all". (James Vega)
Solution:   Avoid overflow when column is MAXCOL. (Dominique Pelle)
Files:	    src/misc2.c

Patch 7.2.140
Problem:    Diff highlighting isn't displayed before the Visual area if it
	    starts at the cursor position. (Markus Heidelberg)
Solution:   Also check fromcol_prev.
Files:	    src/screen.c

Patch 7.2.141
Problem:    When redrawing a character for bold spill this causes the next
	    character to be redrawn as well.
Solution:   Only redraw one extra character. (Yukihiro Nakadaira)
Files:	    src/screen.c

Patch 7.2.142
Problem:    Motif and Athena balloons don't use tooltip colors.
Solution:   Set the colors. (Matt Wozniski)
Files:	    src/gui_beval.c

Patch 7.2.143
Problem:    No command line completion for ":cscope" command.
Solution:   Add the completion for ":cscope". (Dominique Pelle)
Files:	    src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c,
	    src/proto/if_cscope.pro, src/vim.h

Patch 7.2.144
Problem:    When 't_Co' is set to the value it already had the color scheme is
	    reloaded anyway.
Solution:   Only load the colorscheme when the t_Co value changes. (Dominique
	    Pelle)
Files:	    src/option.c

Patch 7.2.145
Problem:    White space in ":cscope find" is not ignored.
Solution:   Ignore the white space, but not when the leading white space is
	    useful for the argument.
Files:	    runtime/doc/if_scop.txt, src/if_cscope.c

Patch 7.2.146
Problem:    v:warningmsg isn't used for all warnings.
Solution:   Set v:warningmsg for relevant warnings. (Ingo Karkat)
Files:	    src/fileio.c, src/misc1.c, src/option.c

Patch 7.2.147
Problem:    When compiled as small version and 'number' is on the cursor is
	    displayed in the wrong position after a tab. (James Vega)
Solution:   Don't increment vcol when still displaying the line number.
Files:	    src/screen.c

Patch 7.2.148
Problem:    When searching for "$" while 'hlsearch' is set, highlighting the
	    character after the line does not work in the cursor column.
	    Also highlighting for Visual mode after the line end when this
	    isn't needed.  (Markus Heidelberg)
Solution:   Only compare the cursor column in the cursor line.  Only highlight
	    for Visual selection after the last character when it's needed to
	    see where the Visual selection ends.
Files:	    src/screen.c

Patch 7.2.149
Problem:    Using return value of function that doesn't return a value results
	    in reading uninitialized memory.
Solution:   Set the default to return zero.  Make cursor() return -1 on
	    failure.  Let complete() return an empty string in case of an
	    error.  (partly by Dominique Pelle)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.2.150 (extra)
Problem:    Can't use tab pages from VisVim.
Solution:   Add tab page support to VisVim. (Adam Slater)
Files:	    src/VisVim/Commands.cpp, src/VisVim/Resource.h,
	    src/VisVim/VisVim.rc

Patch 7.2.151
Problem:    ":hist a" doesn't work like ":hist all" as the docs suggest.
Solution:   Make ":hist a" and ":hist al" work. (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.2.152
Problem:    When using "silent echo x" inside ":redir" a next echo may start
	    halfway the line. (Tony Mechelynck, Dennis Benzinger)
Solution:   Reset msg_col after redirecting silently.
Files:	    src/ex_docmd.c, src/message.c, src/proto/message.pro

Patch 7.2.153
Problem:    Memory leak for ":recover empty_dir/".
Solution:   Free files[] when it becomes empty. (Dominique Pelle)
Files:	    src/memline.c

Patch 7.2.154 (after 7.2.132)
Problem:    ":cd" is still possible in a SwapExists autocmd.
Solution:   Set allbuf_lock in do_swapexists().
Files:	    src/memline.c

Patch 7.2.155
Problem:    Memory leak in ":function /pat".
Solution:   Free the memory. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.2.156 (after 7.2.143)
Problem:    No completion for :scscope and :lcscope commands.
Solution:   Implement the completion. (Dominique Pelle)
Files:	    src/if_cscope.c, src/ex_docmd.c, src/proto/if_cscope.pro

Patch 7.2.157
Problem:    Illegal memory access when searching in path.
Solution:   Avoid looking at a byte after end of a string. (Dominique Pelle)
Files:	    src/search.c

Patch 7.2.158
Problem:    Warnings from VisualC compiler.
Solution:   Add type casts. (George Reilly)
Files:	    src/ops.c

Patch 7.2.159
Problem:    When $x_includes ends up being "NONE" configure fails.
Solution:   Check for $x_includes not to be "NONE" (Rainer)
Files:	    src/auto/configure, src/configure.in

Patch 7.2.160
Problem:    Search pattern not freed on exit when 'rightleft' set.
Solution:   Free mr_pattern_alloced.
Files:	    src/search.c

Patch 7.2.161
Problem:    Folds messed up in other tab page. (Vlad Irnov)
Solution:   Instead of going over all windows in current tab page go over all
	    windows in all tab pages.  Also free memory for location lists in
	    other tab pages when exiting. (Lech Lorens)
Files:	    src/fileio.c, src/mark.c, src/misc1.c, src/misc2.c

Patch 7.2.162
Problem:    The quickfix window may get wrong filetype.
Solution:   Do not detect the filetype for the quickfix window. (Lech Lorens)
Files:	    src/quickfix.c

Patch 7.2.163
Problem:    The command line window may get folding.
Solution:   Default to no/manual folding. (Lech Lorens)
Files:	    src/ex_getln.c

Patch 7.2.164
Problem:    When 'showbreak' is set the size of the Visual block may be
	    reported wrong. (Eduardo Daudt Flach)
Solution:   Temporarily make 'sbr' empty.
Files:	    src/normal.c, src/ops.c

Patch 7.2.165
Problem:    The argument for the FuncUndefined autocmd event is expanded like
	    a file name.
Solution:   Don't try expanding it. (Wang Xu)
Files:	    src/fileio.c

Patch 7.2.166
Problem:    No completion for ":sign" command.
Solution:   Add ":sign" completion. (Dominique Pelle)
Files:	    src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/vim.h,
	    src/proto/ex_cmds.pro

Patch 7.2.167
Problem:    Splint doesn't work well for checking the code.
Solution:   Add splint arguments in the Makefile.  Exclude some code from
	    splint that it can't handle.  Tune splint arguments to give
	    reasonable errors.  Add a filter for removing false warnings from
	    splint output.  Many small changes to avoid warnings.  More to
	    follow...
Files:	    Filelist, src/Makefile, src/buffer.c, src/charset.c,
	    src/cleanlint.vim, src/digraph.c, src/edit.c, src/ex_cmds.c,
	    src/globals.h, src/ops.c, src/os_unix.c, src/os_unix.h,
	    src/proto/buffer.pro, src/proto/edit.pro, src/screen.c,
	    src/structs.h

Patch 7.2.168
Problem:    When no ctags program can be found, "make tags" attempts to
	    execute the first C file.
Solution:   Default to "ctags" when no ctags program can be found.
Files:	    src/configure.in, src/auto/configure

Patch 7.2.169
Problem:    Splint complains about a lot of things.
Solution:   Add type casts, #ifdefs and other changes to avoid warnings.
	    Change colnr_T from unsigned to int.  Avoids mistakes with
	    subtracting columns.
Files:	    src/cleanlint.vim, src/diff.c, src/edit.c, src/ex_cmds.c,
	    src/ex_cmds2.c, src/ex_docmd.c, src/proto/ex_cmds.pro,
	    src/proto/spell.pro, src/quickfix.c, src/spell.c, src/structs.h,
	    src/term.h, src/vim.h

Patch 7.2.170
Problem:    Using b_dev while it was not set. (Dominique Pelle)
Solution:   Add the b_dev_valid flag.
Files:	    src/buffer.c, src/fileio.c, src/structs.h

Patch 7.2.171 (after 7.2.169)
Problem:    Compiler warnings. (Tony Mechelynck)
Solution:   Add function prototype. (Patrick Texier)  Init variable.
Files:	    src/ex_cmds.c

Patch 7.2.172 (extra)
Problem:    Compiler warning.
Solution:   Adjust function prototype. (Patrick Texier)
Files:	    src/os_mswin.c

Patch 7.2.173
Problem:    Without lint there is no check for unused function arguments.
Solution:   Use gcc -Wunused-parameter instead of lint.  For a few files add
	    attributes to arguments that are known not to be used.
Files:	    src/auto/configure, src/buffer.c, src/charset.c, src/diff.c,
	    src/configure.in, src/config.h.in, src/edit.c, src/ex_cmds.c,
	    src/ex_cmds2.c, src/version.c, src/vim.h

Patch 7.2.174
Problem:    Too many warnings from gcc -Wextra.
Solution:   Change initializer.  Add UNUSED.  Add type casts.
Files:	    src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
	    src/ex_getln.c, src/fileio.c, getchar.c, globals.h, main.c,
	    memline.c, message.c, src/misc1.c, src/move.c, src/normal.c,
	    src/option.c, src/os_unix.c, src/os_unix.h, src/regexp.c,
	    src/search.c, src/tag.c

Patch 7.2.175
Problem:    Compiler warning in OpenBSD.
Solution:   Add type cast for NULL. (Dasn)
Files:	    src/if_cscope.c

Patch 7.2.176
Problem:    Exceptions for splint are not useful.
Solution:   Remove the S_SPLINT_S ifdefs.
Files:	    src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/os_unix.c,
	    src/os_unix.h, src/os_unixx.h, src/structs.h, src/term.h

Patch 7.2.177
Problem:    Compiler warnings when using -Wextra
Solution:   Add UNUSED and type casts.
Files:	    src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
	    src/fileio.c, src/hardcopy.c, src/if_cscope.c, src/if_xcmdsrv.c,
	    src/farsi.c, src/mark.c, src/menu.c

Patch 7.2.178
Problem:    Using negative value for device number might not work.
Solution:   Use a separate flag for whether ffv_dev was set.
Files:	    src/misc2.c

Patch 7.2.179
Problem:    Using negative value for device number might not work.
Solution:   Use a separate flag for whether sn_dev was set.
Files:	    src/ex_cmds2.c

Patch 7.2.180
Problem:    Some more compiler warnings when using gcc -Wextra.
Solution:   Add UNUSED and type casts.
Files:	    src/buffer.c, src/ex_cmds.c, src/macros.h, src/main.c,
	    src/menu.c, src/message.c, src/misc1.c, src/mbyte.c,
	    src/normal.c, src/option.c, src/os_unix.c, src/quickfix.c,
	    src/screen.c, src/search.c, src/spell.c, src/syntax.c, src/tag.c,
	    src/term.c, src/ui.c

Patch 7.2.181
Problem:    Some more compiler warnings when using gcc -Wextra.
Solution:   Add UNUSED and type casts.
Files:	    src/if_mzsch.c, src/gui.c, src/gui_gtk.c, src/gui_gtk_x11.c,
	    src/gui_gtk_f.c, src/gui_beval.c, src/netbeans.c

Patch 7.2.182 (after 7.2.181)
Problem:    Compilation problems after previous patch for Motif.  Gvim with
	    GTK crashes on startup.
Solution:   Add comma.  Init form structure to zeroes.
Files:	    src/netbeans.c, src/gui_gtk_f.c

Patch 7.2.183
Problem:    Configure problem for sys/sysctl.h on OpenBSD. (Dasn)
Solution:   Add separate check for this header file.  Also switch to newer
	    version of autoconf.
Files:	    src/auto/configure, src/configure.in

Patch 7.2.184
Problem:    Some more compiler warnings when using gcc -Wextra.
Solution:   Add UNUSED and type casts.  Autoconf check for wchar_t.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/gui_athena.c, src/gui_x11.c, src/gui.c, src/gui_beval.c,
	    src/gui_at_sb.c, src/gui_at_fs.c, src/gui_motif.c,
	    src/gui_xmdlg.c, src/gui_xmebw.c, src/if_python.c, src/window.c,
	    src/workshop.c

Patch 7.2.185
Problem:    Some more compiler warnings when using gcc -Wextra.
Solution:   Add UNUSED and type casts.
Files:	    src/Makefile, src/if_tlc.c, src/if_ruby.c

Patch 7.2.186
Problem:    Some more compiler warnings when using gcc -Wextra.
Solution:   Now with the intended if_tcl.c changes.
Files:	    src/if_tcl.c

Patch 7.2.187 (after 7.2.186)
Problem:    Doesn't build with older versions of TCL. (Yongwei Wu)
Solution:   Add #ifdefs. (Dominique Pelle)
Files:	    src/if_tcl.c

Patch 7.2.188
Problem:    Crash with specific use of function calls. (Meikel Brandmeyer)
Solution:   Make sure the items referenced by a function call are not freed
	    twice.  (based on patch from Nico Weber)
Files:	    src/eval.c

Patch 7.2.189
Problem:    Possible hang for deleting auto-indent. (Dominique Pelle)
Solution:   Make sure the position is not beyond the end of the line.
Files:	    src/edit.c

Patch 7.2.190
Problem:    The register executed by @@ isn't restored.
Solution:   Mark the executable register in the viminfo file.
Files:	    src/ops.c

Patch 7.2.191
Problem:    Mzscheme interface doesn't work on Ubuntu.
Solution:   Change autoconf rules.  Define missing macro.  Some changes to
	    avoid gcc warnings.  Remove per-buffer namespace. (Sergey Khorev)
Files:	    runtime/doc/if_mzsch.txt, src/Makefile, src/Make_ming.mak,
	    src/Make_mvc.mak, src/auto/configure, src/configure.in,
	    src/config.mk.in, src/eval.c, src/if_mzsch.c, src/if_mzsch.h,
	    src/main.c, src/proto/if_mzsch.pro

Patch 7.2.192 (after 7.2.188)
Problem:    Still a crash in the garbage collector for a very rare situation.
Solution:   Make sure current_copyID is always incremented correctly. (Kent
	    Sibilev)
Files:	    src/eval.c

Patch 7.2.193
Problem:    Warning for uninitialized values.
Solution:   Initialize all the struct items.
Files:	    src/eval.c

Patch 7.2.194 (extra)
Problem:    MSVC: rem commands are echoed.
Solution:   Add commands to switch off echo. (Wang Xu)
Files:	    src/msvc2008.bat

Patch 7.2.195
Problem:    Leaking memory for the command Vim was started with.
Solution:   Remember the pointer and free it.
Files:	    src/gui_gtk_x11.c

Patch 7.2.196 (after 7.2.167)
Problem:    Turns out splint doesn't work well enough to be usable.
Solution:   Remove splint support.
Files:	    Filelist, src/cleanlint.vim

Patch 7.2.197
Problem:    Warning for uninitialized values.
Solution:   Initialize all the struct items of typebuf.
Files:	    src/globals.h

Patch 7.2.198
Problem:    Size of buffer used for tgetent() may be too small.
Solution:   Use the largest known size everywhere.
Files:	    src/vim.h

Patch 7.2.199
Problem:    Strange character in comment.
Solution:   Change to "message". (Yongwei Wu)
Files:	    src/term.c

Patch 7.2.200
Problem:    Reading past end of string when navigating the menu bar or
	    resizing the window.
Solution:   Add and use mb_ptr2len_len(). (partly by Dominique Pelle)
	    Also add mb_ptr2cells_len() to prevent more trouble.
Files:	    src/gui_gtk_x11.c, src/os_unix.c, src/globals.h, src/mbyte.c,
	    src/proto/mbyte.pro

Patch 7.2.201
Problem:    Cannot copy/paste HTML to/from Firefox via the clipboard.
Solution:   Implement this for GTK.  Add the "html" value to 'clipboard'.
Files:	    runtime/doc/options.txt, src/globals.h, src/gui_gtk_x11.c,
	    src/mbyte.c, src/proto/mbyte.pro, src/option.c

Patch 7.2.202
Problem:    BufWipeout autocommand that edits another buffer causes problems.
Solution:   Check for the situation, give an error and quit the operation.
Files:	    src/fileio.c

Patch 7.2.203
Problem:    When reloading a buffer or doing anything else with a buffer that
	    is not displayed in a visible window, autocommands may be applied
	    to the current window, folds messed up, etc.
Solution:   Instead of using the current window for the hidden buffer use a
	    special window, splitting the current one temporarily.
Files:	    src/fileio.c, src/globals.h, src/gui.c, src/if_perl.xs,
	    src/progo/gui.pro, src/proto/window.pro, src/screen.c,
	    src/structs.h, src/window.c

Patch 7.2.204 (extra)
Problem:    Win32: Can't build with Visual Studio 2010 beta 1.
Solution:   Fix the makefile. (George Reilly)
Files:	    src/Make_mvc.mak

Patch 7.2.205 (extra)
Problem:    Win32: No support for High DPI awareness.
Solution:   Fix the manifest file. (George Reilly)
Files:	    src/Make_mvc.mak, src/gvim.exe.mnf

Patch 7.2.206
Problem:    Win32: Can't build netbeans interface with Visual Studio 2010.
Solution:   Undefine ECONNREFUSED. (George Reilly)
Files:	    src/netbeans.c

Patch 7.2.207
Problem:    Using freed memory with ":redrawstatus" when it works recursively.
Solution:   Prevent recursively updating the status line. (partly by Dominique
	    Pelle)
Files:	    src/screen.c

Patch 7.2.208
Problem:    "set novice" gives an error message, it should be ignored.
Solution:   Don't see "no" in "novice" as unsetting an option.  (Patrick
	    Texier)
Files:	    src/option.c

Patch 7.2.209
Problem:    For xxd setmode() is undefined on Cygwin.
Solution:   Include io.h. (Dominique Pelle)
Files:	    src/xxd/xxd.c

Patch 7.2.210
Problem:    When a file that is being edited has its timestamp updated outside
	    of Vim and ":checktime" is used still get a warning when writing
	    the file. (Matt Mueller)
Solution:   Store the timestamp in b_mtime_read when the timestamp is the only
	    thing that changed.
Files:	    src/fileio.c

Patch 7.2.211
Problem:    Memory leak when expanding a series of file names.
Solution:   Use ga_clear_strings() instead of ga_clear().
Files:	    src/misc1.c

Patch 7.2.212 (extra)
Problem:    Warnings for redefining SIG macros.
Solution:   Don't define them if already defined. (Bjorn Winckler)
Files:	    src/os_mac.h

Patch 7.2.213
Problem:    Warning for using vsprintf().
Solution:   Use vim_vsnprintf().
Files:	    src/netbeans.c

Patch 7.2.214
Problem:    Crash with complete function for user command. (Andy Wokula)
Solution:   Avoid using a NULL pointer (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.2.215
Problem:    ml_get error when using ":vimgrep".
Solution:   Load the memfile for the hidden buffer before putting it in a
	    window.  Correct the order of splitting the window and filling
	    the window and buffer with data.
Files:	    src/fileio.c, src/proto/window.pro, src/quickfix.c, src/window.c

Patch 7.2.216
Problem:    Two error messages have the same number E812.
Solution:   Give one message a different number.
Files:	    runtime/doc/autocmd.txt, runtime/doc/if_mzsch.txt, src/if_mzsch.c

Patch 7.2.217
Problem:    Running tests with valgrind doesn't work as advertised.
Solution:   Fix the line in the Makefile.
Files:	    src/testdir/Makefile

Patch 7.2.218
Problem:    Cannot build GTK with hangul_input feature. (Dominique Pelle)
Solution:   Adjust #ifdef.  (SungHyun Nam)
Files:	    src/gui.c

Patch 7.2.219 (extra)
Problem:    Photon GUI is outdated.
Solution:   Updates for QNX 6.4.0. (Sean Boudreau)
Files:	    src/gui_photon.c

Patch 7.2.220 (after 7.2.215)
Problem:    a BufEnter autocommand that changes directory causes problems.
	    (Ajit Thakkar)
Solution:   Disable autocommands when opening a hidden buffer in a window.
Files:	    src/fileio.c

Patch 7.2.221
Problem:    X cut_buffer0 text is used as-is, it may be in the wrong encoding.
Solution:   Convert between 'enc' and latin1. (James Vega)
Files:	    src/gui_gtk_x11.c, src/message.c, src/ops.c, src/proto/ui.pro,
	    src/ui.c

Patch 7.2.222
Problem:   ":mksession" doesn't work properly with 'acd' set.
Solution:   Make it work. (Yakov Lerner)
Files:	    src/ex_docmd.c

Patch 7.2.223
Problem:    When a script is run with ":silent" it is not able to give warning
	    messages.
Solution:   Add the ":unsilent" command.
Files:	    runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c

Patch 7.2.224
Problem:    Crash when using 'completefunc'. (Ingo Karkat)
Solution:   Disallow entering edit() recursively when doing completion.
Files:	    src/edit.c

Patch 7.2.225
Problem:    When using ":normal" a saved character may be executed.
Solution:   Also store old_char when saving typeahead.
Files:	    src/getchar.c, src/structs.h

Patch 7.2.226
Problem:    ml_get error after deleting the last line. (Xavier de Gaye)
Solution:   When adjusting marks a callback may be invoked.  Adjust the cursor
	    position before invoking deleted_lines_mark().
Files:	    src/ex_cmds.c, src/ex_docmd.c, src/if_mzsch.c, src/if_python.c,
	    src/if_perl.xs, src/misc1.c

Patch 7.2.227
Problem:    When using ":cd" in a script there is no way to track this.
Solution:   Display the directory when 'verbose' is 5 or higher.
Files:	    src/ex_docmd.c

Patch 7.2.228
Problem:    Cscope is limited to 8 connections.
Solution:   Allocated the connection array to handle any number of
	    connections. (Dominique Pelle)
Files:	    runtime/doc/if_cscop.txt, src/if_cscope.h, src/if_cscope.c

Patch 7.2.229
Problem:    Warning for shadowed variable.
Solution:   Rename "wait" to "wait_time".
Files:	    src/os_unix.c

Patch 7.2.230
Problem:    A few old lint-style ARGUSED comments.
Solution:   Change to the new UNUSED style.
Files:	    src/getchar.c

Patch 7.2.231
Problem:    Warning for unreachable code.
Solution:   Add #ifdef.
Files:	    src/if_perl.xs

Patch 7.2.232
Problem:    Cannot debug problems with being in a wrong directory.
Solution:   When 'verbose' is 5 or higher report directory changes.
Files:	    src/os_unix.c, src/os_unix.h, src/proto/os_unix.pro

Patch 7.2.233 (extra part of 7.2.232)
Problem:    Cannot debug problems with being in a wrong directory.
Solution:   When 'verbose' is 5 or higher report directory changes.
Files:	    src/os_msdos.c, src/os_mswin.c, src/os_riscos.c, src/os_mac.h

Patch 7.2.234
Problem:    It is not possible to ignore file names without a suffix.
Solution:   Use an empty entry in 'suffixes' for file names without a dot.
Files:	    runtime/doc/cmdline.txt, src/misc1.c

Patch 7.2.235
Problem:    Using CTRL-O z= in Insert mode has a delay before redrawing.
Solution:   Reset msg_didout and msg_scroll.
Files:	    src/misc1.c, src/spell.c

Patch 7.2.236
Problem:    Mac: Compiling with Ruby doesn't always work.
Solution:   In configure filter out the --arch argument (Bjorn Winckler)
Files:	    src/configure.in, src/auto/configure

Patch 7.2.237
Problem:    Crash on exit when window icon not set.
Solution:   Copy terminal name when using it for the icon name.
Files:	    src/os_unix.c

Patch 7.2.238
Problem:    Leaking memory when setting term to "builtin_dumb".
Solution:   Free memory when resetting term option t_Co.
Files:	    src/option.c, src/proto/option.pro, src/term.c

Patch 7.2.239
Problem:    Using :diffpatch twice or when patching fails causes memory
	    corruption and/or a crash.  (Bryan Venteicher)
Solution:   Detect missing output file.  Avoid using non-existing buffer.
Files:	    src/diff.c

Patch 7.2.240
Problem:    Crash when using find/replace dialog repeatedly. (Michiel
	    Hartsuiker)
Solution:   Avoid doing the operation while busy or recursively.  Also refuse
	    replace when text is locked.
Files:	    src/gui.c

Patch 7.2.241
Problem:    When using a combination of ":bufdo" and "doautoall" we may end up
	    in the wrong directory. (Ajit Thakkar)
	    Crash when triggering an autocommand in ":vimgrep".  (Yukihiro
	    Nakadaira)
Solution:   Clear w_localdir and globaldir when using the aucmd_win.
	    Use a separate flag to decide aucmd_win needs to be restored.
Files:	    src/fileio.c, src/globals.h, src/structs.h

Patch 7.2.242
Problem:    Setting 'lazyredraw' causes the cursor column to be recomputed.
	    (Tom Link)
Solution:   Only recompute the cursor column for a boolean option if changes
	    the cursor position.
Files:	    src/option.c

Patch 7.2.243
Problem:    Memory leak when using :vimgrep and resizing. (Dominique Pelle)
Solution:   Free memory for aucmd_win when resizing and don't allocate it
	    twice.
Files:	    src/screen.c

Patch 7.2.244
Problem:    When 'enc' is utf-8 and 'fenc' is latin1, writing a non-latin1
	    character gives a conversion error without any hint what is wrong.
Solution:   When known add the line number to the error message.
Files:	    src/fileio.c

Patch 7.2.245
Problem:    When 'enc' is "utf-16" and 'fenc' is "utf-8" writing a file does
	    conversion while none should be done. (Yukihiro Nakadaira) When
	    'fenc' is empty the file is written as utf-8 instead of utf-16.
Solution:   Do proper comparison of encodings, taking into account that all
	    Unicode values for 'enc' use utf-8 internally.
Files:	    src/fileio.c

Patch 7.2.246
Problem:    Cscope home page link is wrong.
Solution:   Update the URL. (Sergey Khorev)
Files:	    runtime/doc/if_cscop.txt

Patch 7.2.247
Problem:    Mzscheme interface minor problem.
Solution:   Better error message when build fails. (Sergey Khorev)
Files:	    src/if_mzsch.c

Patch 7.2.248 (extra)
Problem:    Mzscheme interface building minor problems.
Solution:   Update Win32 makefiles. (Sergey Khorev)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak

Patch 7.2.249
Problem:    The script to check .po files can't handle '%' in plural forms.
Solution:   Remove "Plural-Forms:" from the checked string.
Files:	    src/po/check.vim

Patch 7.2.250 (extra)
Problem:    Possible buffer overflow.
Solution:   Compute the remaining space. (Dominique Pelle)
Files:	    src/GvimExt/gvimext.cpp

Patch 7.2.251 (after 7.2.044)
Problem:    Compiler adds invalid memory bounds check.
Solution:   Remove _FORTIFY_SOURCE=2 from CFLAGS. (Dominique Pelle)
Files:	    src/auto/configure, src/configure.in

Patch 7.2.252
Problem:    When using a multi-byte 'enc' the 'iskeyword' option cannot
	    contain characters above 128.
Solution:   Use mb_ptr2char_adv().
Files:	    src/charset.c

Patch 7.2.253
Problem:    Netbeans interface: getLength always uses current buffer.
Solution:   Use ml_get_buf() instead of ml_get(). (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.2.254
Problem:    Compiler warning for assigning size_t to int.
Solution:   Use size_t for the variable. (George Reilly)
Files:	    src/fileio.c

Patch 7.2.255 (after 7.2.242)
Problem:    Setting 'rightleft', 'linebreak' and 'wrap' may cause cursor to be
	    in wrong place.
Solution:   Recompute the cursor column for these options.
Files:	    src/option.c

Patch 7.2.256
Problem:    When 'guifont' was not set GTK font dialog doesn't have a default.
	    (Andreas Metzler)
Solution:   Set default to DEFAULT_FONT. (James Vega)
Files:	    src/gui_gtk_x11.c

Patch 7.2.257
Problem:    With GTK 2.17 lots of assertion error messages.
Solution:   Remove check for static gravity. (Sebastian Droege)
Files:	    src/gui_gtk_f.c

Patch 7.2.258
Problem:    v:beval_col and b:beval_text are wrong in UTF-8 text. (Tony
	    Mechelynck)
Solution:   Use byte number instead of character number for the column.
Files:	    src/ui.c

Patch 7.2.259
Problem:    exists() doesn't work properly for an empty aucmd group.
Solution:   Change how au_exists() handles a missing pattern.  Also add a
	    test for this. (Bob Hiestand)
Files:	    src/fileio.c, src/testdir/Makefile, src/testdir/test67.in,
	    src/testdir/test67.ok

Patch 7.2.260 (extra part of 7.2.259)
Problem:    exists() doesn't work properly for empty aucmd group.
Solution:   Change how au_exists() handles a missing pattern.  Also add a
	    test for this. (Bob Hiestand)
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms

Patch 7.2.261
Problem:    When deleting lines with a specific folding configuration E38 may
	    appear. (Shahaf)
Solution:   When adjusting nested folds for deleted lines take into account
	    that they don't start at the top of the enclosing fold.
Files:	    src/fold.c

Patch 7.2.262
Problem:    When using custom completion for a user command the pattern string
	    goes beyond the cursor position. (Hari Krishna Dara)
Solution:   Truncate the string at the cursor position.
Files:	    src/ex_getln.c, src/structs.h

Patch 7.2.263
Problem:    GTK2: when using the -geom argument with an offset from the right
	    edge and the size is smaller than the default, the Vim window is
	    not positioned properly.
Solution:   Use another function to set the size. (Vitaly Minko)
Files:	    src/gui_gtk_x11.c

Patch 7.2.264
Problem:    GTK2: When the Vim window is maximized setting 'columns' or
	    'lines' doesn't work.
Solution:   Unmaximize the window before setting the size. (Vitaly Minko)
Files:	    src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro

Patch 7.2.265
Problem:    When using ":silent broken" inside try/catch silency may persist.
	    (dr-dr xp)
Solution:   Set msg_silent when there is an error and it's bigger than the
	    saved value.
Files:	    src/ex_docmd.c

Patch 7.2.266
Problem:    When an expression abbreviation is triggered, the typed character
	    is unknown.
Solution:   Make the typed character available in v:char.
Files:	    runtime/doc/map.txt, src/eval.c, src/getchar.c, src/ops.c,
	    src/proto/eval.pro

Patch 7.2.267
Problem:    Crash for narrow window and double-width character.
Solution:   Check for zero width.  (Taro Muraoka)
Files:	    src/charset.c

Patch 7.2.268
Problem:    Crash when using Python to set cursor beyond end of line.
	    (winterTTr)
Solution:   Check the column to be valid.
Files:	    src/if_python.c

Patch 7.2.269
Problem:    Many people struggle to find out why Vim startup is slow.
Solution:   Add the --startuptime command line flag.
Files:	    runtime/doc/starting.txt, src/globals.h, src/feature.h,
	    src/main.c, src/macros.h

Patch 7.2.270
Problem:    Using ":@c" when the c register contains a CR causes the rest to
	    be executed later. (Dexter Douglas)
Solution:   Don't check for typeahead to start with ':', keep executing
	    commands until all added typeahead has been used.
Files:	    src/ex_docmd.c

Patch 7.2.271
Problem:    Using freed memory in Motif GUI version when making a choice.
Solution:   Free memory only after using it. (Dominique Pelle)
Files:	    src/gui_xmdlg.c

Patch 7.2.272
Problem:    "_.svz" is not recognized as a swap file. (David M. Besonen)
Solution:   Accept .s[uvw][a-z] as a swap file name extension.
Files:	    src/memline.c

Patch 7.2.273
Problem:    Crash with redir to unknown array. (Christian Brabandt)
Solution:   Don't assign the redir result when there was an error.
Files:	    src/eval.c

Patch 7.2.274
Problem:    Syntax folding doesn't work properly when adding a comment.
Solution:   Fix it and add a test. (Lech Lorens)
Files:	    src/fold.c, src/testdir/test45.in, src/testdir/test45.ok

Patch 7.2.275
Problem:    Warning for unused argument and comparing signed and unsigned.
Solution:   Add type cast.
Files:	    src/memline.c

Patch 7.2.276
Problem:    Crash when setting 'isprint' to a small bullet. (Raul Coronado)
Solution:   Check for the character to be < 256.  Also make it possible to
	    specify a range of multi-byte characters. (Lech Lorens)
Files:	    src/charset.c

Patch 7.2.277
Problem:    CTRL-Y in a diff'ed window may move the cursor outside of the
	    window. (Lech Lorens)
Solution:   Limit the number of filler lines to the height of the window.
	    Don't reset filler lines to zero for an empty buffer.
Files:	    src/move.c

Patch 7.2.278
Problem:    Using magic number in the folding code.
Solution:   Use the defined MAX_LEVEL.
Files:	    src/fold.c

Patch 7.2.279
Problem:    Invalid memory read with visual mode "r". (Dominique Pelle)
Solution:   Make sure the cursor position is valid.  Don't check the cursor
	    position but the position being used.  And make sure we get the
	    right line.
Files:	    src/misc2.c, src/ops.c

Patch 7.2.280
Problem:    A redraw in a custom statusline with %! may cause a crash.
	    (Yukihiro Nakadaira)
Solution:   Make a copy of 'statusline'.  Also fix typo in function name
	    redraw_custom_statusline. (partly by Dominique Pelle)
Files:	    src/screen.c

Patch 7.2.281
Problem:    'cursorcolumn' highlighting is wrong in diff mode.
Solution:   Adjust the column computation. (Lech Lorens)
Files:	    src/screen.c

Patch 7.2.282
Problem:    A fold can't be closed.
Solution:   Initialize fd_small to MAYBE. (Lech Lorens)
Files:	    src/fold.c

Patch 7.2.283
Problem:    Changing font while the window is maximized doesn't keep the
	    window maximized.
Solution:   Recompute number of lines and columns after changing font. (James
	    Vega)
Files:	    src/gui_gtk_x11.c

Patch 7.2.284
Problem:    When editing the same buffer in two windows, one with folding,
	    display may be wrong after changes.
Solution:   Call set_topline() to take care of side effects. (Lech Lorens)
Files:	    src/misc1.c

Patch 7.2.285 (after 7.2.169)
Problem:    CTRL-U in Insert mode also deletes indent. (Andrey Voropaev)
Solution:   Fix mistake made in patch 7.2.169.
Files:	    src/edit.c

Patch 7.2.286 (after 7.2.269)
Problem:    The "--startuptime=<file>" argument is not consistent with other
	    arguments.
Solution:   Use "--startuptime <file>".  Added the +startuptime feature.
Files:	    runtime/doc/eval.txt, runtime/doc/starting.txt,
	    runtime/doc/various.txt, src/eval.c, src/main.c, src/version.c

Patch 7.2.287
Problem:    Warning from gcc 3.4 about uninitialized variable.
Solution:   Move assignment outside of #ifdef.
Files:	    src/if_perl.xs

Patch 7.2.288
Problem:    Python 2.6 pyconfig.h redefines macros.
Solution:   Undefine the macros before including pyconfig.h.
Files:	    src/if_python.c

Patch 7.2.289
Problem:    Checking wrong struct member.
Solution:   Change tb_buf to tb_noremap. (Dominique Pelle)
Files:	    src/getchar.c

Patch 7.2.290
Problem:    Not freeing memory from ":lmap", ":xmap" and ":menutranslate".
Solution:   Free the memory when exiting. (Dominique Pelle)
Files:	    src/misc2.c

Patch 7.2.291
Problem:    Reading uninitialised memory in arabic mode.
Solution:   Use utfc_ptr2char_len() rather than utfc_ptr2char().  (Dominique
	    Pelle)
Files:	    src/screen.c

Patch 7.2.292
Problem:    Block right-shift doesn't work properly with multi-byte encoding
	    and 'list' set.
Solution:   Add the missing "else". (Lech Lorens)
Files:	    src/ops.c

Patch 7.2.293
Problem:    When setting 'comments' option it may be used in a wrong way.
Solution:   Don't increment after skipping over digits. (Yukihiro Nakadaira)
Files:	    src/misc1.c

Patch 7.2.294
Problem:    When using TEMPDIRS dir name could get too long.
Solution:   Overwrite tail instead of appending each time.  Use mkdtemp() when
	    available. (James Vega)
Files:	    src/auto/configure, src/config.h.in, src/configure.in, src/fileio.c

Patch 7.2.295
Problem:    When using map() on a List the index is not known.
Solution:   Set v:key to the  index. (Hari Krishna Dara)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.2.296
Problem:    Help message about startuptime is wrong. (Dominique Pelle)
Solution:   Remove the equal sign.
Files:	    src/main.c

Patch 7.2.297
Problem:    Reading freed memory when writing ":reg" output to a register.
	    (Dominique Pelle)
Solution:   Skip the register being written to.
Files:	    src/ops.c

Patch 7.2.298
Problem:    ":vimgrep" crashes when there is an autocommand that sets a
	    window-local variable.
Solution:   Initialize the w: hashtab for re-use. (Yukihiro Nakadaira)
Files:	    src/fileio.c

Patch 7.2.299
Problem:    Crash when comment middle is longer than start.
Solution:   Fix size computation. (Lech Lorens)
Files:	    src/misc1.c

Patch 7.2.300
Problem:    Vim doesn't close file descriptors when forking and executing
	    another command, e.g., ":shell".
Solution:   Use FD_CLOEXEC when available. (James Vega)
Files:	    auto/configure, src/config.h.in, src/configure.in,
	    src/ex_cmdds2.c, src/fileio.c, src/memfile.c, src/memline.c

Patch 7.2.301
Problem:    Formatting is wrong when 'tw' is set to a small value.
Solution:   Fix it and add tests.  Also fix behavior of "1" in 'fo'. (Yukihiro
	    Nakadaira)
Files:	    src/edit.c, src/testdir/Makefile, src/testdir/test68.in,
	    src/testdir/test68.ok, src/testdir/test69.in,
	    src/testdir/test69,ok

Patch 7.2.302 (extra part of 7.2.301)
Problem:    Formatting wrong with small 'tw' value.
Solution:   Add build rules for tests.
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms

Patch 7.2.303 (after 7.2.294)
Problem:    Can't build on MS-Windows.
Solution:   Add #ifdef around vim_settempdir(). (James Vega)
Files:	    src/fileio.c

Patch 7.2.304
Problem:    Compiler warning for bad pointer cast.
Solution:   Use another variable for int pointer.
Files:	    src/ops.c

Patch 7.2.305
Problem:    Recursively redrawing causes a memory leak. (Dominique Pelle)
Solution:   Disallow recursive screen updating.
Files:	    src/screen.c

Patch 7.2.306
Problem:    shellescape("10%%", 1) only escapes first %. (Christian Brabandt)
Solution:   Don't copy the character after the escaped one.
Files:	    src/misc2.c

Patch 7.2.307
Problem:    Crash with a very long syntax match statement. (Guy Gur Ari)
Solution:   When the offset does not fit in the two bytes available give an
	    error instead of continuing with invalid pointers.
Files:	    src/regexp.c

Patch 7.2.308
Problem:    When using a regexp in the "\=" expression of a substitute
	    command, submatch() returns empty strings for further lines.
	    (Clockwork Jam)
Solution:   Save and restore the line number and line count when calling
	    reg_getline().
Files:	    src/regexp.c

Patch 7.2.309 (after 7.2.308)
Problem:    Warning for missing function prototype. (Patrick Texier)
Solution:   Add the prototype.
Files:	    src/regexp.c

Patch 7.2.310
Problem:    When a filetype plugin in ~/.vim/ftdetect uses ":setfiletype" and
	    the file starts with a "# comment" it gets "conf" filetype.
Solution:   Check for "conf" filetype after using ftdetect plugins.
Files:	    runtime/filetype.vim

Patch 7.2.311
Problem:    Can't compile with FreeMiNT.
Solution:   Change #ifdef for limits.h. (Alan Hourihane)
Files:	    src/fileio.c

Patch 7.2.312
Problem:    iconv() returns an invalid character sequence when conversion
	    fails.  It should return an empty string. (Yongwei Wu)
Solution:   Be more strict about invalid characters in the input.
Files:	    src/mbyte.c

Patch 7.2.313
Problem:    Command line completion doesn't work after "%:h" and similar.
Solution:   Expand these items before doing the completion.
Files:	    src/ex_getln.c, src/misc1.c, src/proto/misc1.pro

Patch 7.2.314
Problem:    Missing function in small build.
Solution:   Always include concat_str.
Files:	    src/misc1.c

Patch 7.2.315
Problem:    Python libs can't be found on 64 bit system.
Solution:   Add lib64 to the list of directories. (Michael Henry)
Files:	    src/auto/configure, src/configure.in

Patch 7.2.316
Problem:    May get multiple _FORTIFY_SOURCE arguments. (Tony Mechelynck)
Solution:   First remove all these arguments and then add the one we want.
	    (Dominique Pelle)
Files:	    src/auto/configure, src/configure.in

Patch 7.2.317
Problem:    Memory leak when adding a highlight group with unprintable
	    characters, resulting in E669.
Solution:   Free the memory.  And fix a few typos. (Dominique Pelle)
Files:	    src/syntax.c

Patch 7.2.318
Problem:    Wrong locale value breaks floating point numbers for gvim.
Solution:   Set the locale again after doing GUI inits. (Dominique Pelle)
Files:	    src/main.c

Patch 7.2.319
Problem:    Motif: accessing freed memory when cancelling font dialog.
Solution:   Destroy the widget only after accessing it. (Dominique Pelle)
Files:	    src/gui_xmdlg.c

Patch 7.2.320
Problem:    Unused function in Mzscheme interface.
Solution:   Remove the function and what depends on it. (Dominique Pelle)
Files:	    src/if_mzsch.c, src/proto/if_mzsch.pro

Patch 7.2.321
Problem:    histadd() and searching with "*" fails to add entry to history
	    when it is empty.
Solution:   Initialize the history. (Lech Lorens)
Files:	    src/eval.c, src/normal.c

Patch 7.2.322
Problem:    Wrong indenting in virtual replace mode with CTRL-Y below a short
	    line.
Solution:   Check for character to be NUL. (suggested by Lech Lorens)
Files:	    src/edit.c

Patch 7.2.323 (extra)
Problem:    Balloon evaluation crashes on Win64.
Solution:   Change pointer types. (Sergey Khorev)
Files:	    src/gui_w32.c

Patch 7.2.324
Problem:    A negative column argument in setpos() may cause a crash.
Solution:   Check for invalid column number. (James Vega)
Files:	    src/eval.c, src/misc2.c

Patch 7.2.325
Problem:    A stray "w" in the startup vimrc file causes the edited file to be
	    replaced with an empty file. (Stone Kang).
Solution:   Do not write a buffer when it has never been loaded.
Files:	    src/fileio.c

Patch 7.2.326
Problem:    Win32: $HOME doesn't work when %HOMEPATH% is not defined.
Solution:   Use "\" for %HOMEPATH% when it is not defined.
Files:	    src/misc1.c

Patch 7.2.327
Problem:    Unused functions in Workshop.
Solution:   Add "#if 0" and minor cleanup. (Dominique Pelle)
Files:	    src/workshop.c, src/integration.c, src/integration.h

Patch 7.2.328
Problem:    has("win64") does not return 1 on 64 bit MS-Windows version.
Solution:   Also check for _WIN64 besides WIN64.
Files:	    src/eval.c

Patch 7.2.329
Problem:    "g_" doesn't position cursor correctly when in Visual mode and
	    'selection' is "exclusive". (Ben Fritz)
Solution:   Call adjust_for_sel().
Files:	    src/normal.c

Patch 7.2.330
Problem:    Tables for Unicode case operators are outdated.
Solution:   Add a Vim script for generating the tables.  Include tables for
	    Unicode 5.2.
Files:	    runtime/tools/README.txt, runtime/tools/unicode.vim, src/mbyte.c

Patch 7.2.331
Problem:    Can't interrupt "echo list" for a very long list.
Solution:   Call line_breakcheck() in list_join().
Files:	    src/eval.c

Patch 7.2.332
Problem:    Crash when spell correcting triggers an autocommand that reloads
	    the buffer.
Solution:   Make a copy of the line to be modified. (Dominique Pelle)
Files:	    src/spell.c

Patch 7.2.333
Problem:    Warnings from static code analysis.
Solution:   Small changes to various lines. (Dominique Pelle)
Files:	    src/buffer.c, src/edit.c, src/ex_getln.c, src/fileio.c,
	    src/if_cscope.c, src/netbeans.c, src/ops.c, src/quickfix.c,
	    src/syntax.c, src/ui.c

Patch 7.2.334
Problem:    Postponing keys in Netbeans interface does not work properly.
Solution:   Store the key string instead of the number.  Avoid an infinite
	    loop. (Mostly by Xavier de Gaye)
Files:	    src/netbeans.c, src/proto/netbeans.pro

Patch 7.2.335
Problem:    The CTRL-] command escapes too many characters.
Solution:   Use a different list of characters to be escaped. (Sergey Khorev)
Files:	    src/normal.c

Patch 7.2.336
Problem:    MzScheme interface can't evaluate an expression.
Solution:   Add mzeval(). (Sergey Khorev)
Files:	    runtime/doc/eval.txt, runtime/doc/if_mzsch.txt,
	    runtime/doc/usr_41.txt, src/eval.c, src/if_mzsch.c,
	    src/proto/eval.pro, src/proto/if_mzsch.pro,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Makefile, src/testdir/main.aap, src/testdir/test1.in,
	    src/testdir/test70.in, src/testdir/test70.ok

Patch 7.2.337
Problem:    The :compiler command doesn't function properly when invoked in a
	    function.
Solution:   Add "g:" before "current_compiler". (Yukihiro Nakadaira)
Files:	    src/ex_cmds2.c

Patch 7.2.338 (after 7.2.300)
Problem:    Part of FD_CLOEXEC change is missing.
Solution:   Include source file skipped because of typo.
Files:	    src/ex_cmds2.c

Patch 7.2.339 (after 7.2.269)
Problem:    Part of --startuptime patch is missing.
Solution:   Add check for time_fd.
Files:	    src/ex_cmds2.c

Patch 7.2.340
Problem:    Gcc warning for condition that can never be true. (James Vega)
Solution:   Use start_lvl instead flp->lvl.
Files:	    src/fold.c

Patch 7.2.341
Problem:    Popup menu wraps to next line when double-wide character doesn't
	    fit. (Jiang Ma)
Solution:   Display a ">" instead. (Dominique Pelle)
Files:	    src/screen.c

Patch 7.2.342
Problem:    Popup menu displayed wrong in 'rightleft' mode when there are
	    multi-byte characters.
Solution:   Adjust the column computations. (Dominique Pelle)
Files:	    src/popupmnu.c

Patch 7.2.343 (after 7.2.338)
Problem:    Can't compile on Win32.
Solution:   Insert the missing '|'.
Files:	    src/ex_cmds2.c

Patch 7.2.344 (after 7.2.343)
Problem:    Can't compile on some systems
Solution:   Move the #ifdef outside of the mch_open macro. (Patrick Texier)
Files:	    src/ex_cmds2.c

Patch 7.2.345
Problem:    Tab line is not updated when the value of 'bt' is changed.
Solution:   Call redraw_titles(). (Lech Lorens)
Files:	    src/option.c

Patch 7.2.346
Problem:    Repeating a command with @: causes a mapping to be applied twice.
Solution:   Do not remap characters inserted in the typeahead buffer. (Kana
	    Natsuno)
Files:	    src/ops.c

Patch 7.2.347
Problem:    Crash when executing <expr> mapping redefines that same mapping.
Solution:   Save the values used before evaluating the expression.
Files:	    src/getchar.c

Patch 7.2.348 (after 7.2.330)
Problem:    Unicode double-width characters are not up-to date.
Solution:   Produce the double-width table like the others.
Files:	    runtime/tools/unicode.vim, src/mbyte.c

Patch 7.2.349
Problem:    CTRL-W gf doesn't put the new tab in the same place as "tab split"
	    and "gf". (Tony Mechelynck)
Solution:   Store the tab number in cmdmod.tab.
Files:	    src/window.c

Patch 7.2.350
Problem:    Win32: When changing font the window may jump from the secondary
	    to the primary screen. (Michael Wookey)
Solution:   When the screen position was negative don't correct it to zero.
Files:	    src/gui.c

Patch 7.2.351 (after 7.2.347)
Problem:    Can't build with some compilers.
Solution:   Move the #ifdef outside of a macro.  Cleanup the code.
Files:	    src/getchar.c

Patch 7.2.352 (extra)
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
Files:	    src/gui_w48.c

Patch 7.2.353
Problem:    No command line completion for ":profile".
Solution:   Complete the subcommand and file name.
Files:	    src/ex_docmd.c, src/ex_cmds2.c, src/ex_getln.c,
	    src/proto/ex_cmds2.pro, src/vim.h

Patch 7.2.354
Problem:    Japanese single-width double-byte characters not handled correctly.
Solution:   Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
	    (partly by Kikuchan)
Files:	    src/screen.c

Patch 7.2.355
Problem:    Computing the cursor column in validate_cursor_col() is wrong when
	    line numbers are used and 'n' is not in 'cpoptions', causing the
	    popup menu to be positioned wrong.
Solution:   Correctly use the offset. (partly by Dominique Pelle)
Files:	    src/move.c

Patch 7.2.356
Problem:    When 'foldmethod' is changed not all folds are closed as expected.
Solution:   In foldUpdate() correct the start position and reset fd_flags when
	    w_foldinvalid is set. (Lech Lorens)
Files:	    src/fold.c

Patch 7.2.357
Problem:    When changing 'fileformat' from/to "mac" and there is a CR in the
	    text the display is wrong.
Solution:   Redraw the text when 'fileformat' is changed. (Ben Schmidt)
Files:	    src/option.c

Patch 7.2.358
Problem:    Compiler warnings on VMS. (Zoltan Arpadffy)
Solution:   Pass array itself instead its address.  Return a value.
Files:	    src/gui_gtk_x11.c, src/os_unix.c

Patch 7.2.359
Problem:    Crash when using the Netbeans join command.
Solution:   Make sure the ml_flush_line() function is not used recursively.
	    (Xavier de Gaye)
Files:	    src/memline.c

Patch 7.2.360
Problem:    Ruby on MS-Windows: can't use sockets.
Solution:   Call NtInitialize() during initialization. (Ariya Mizutani)
Files:	    src/if_ruby.c

Patch 7.2.361
Problem:    Ruby 1.9 is not supported.
Solution:   Add Ruby 1.9 support. (Masaki Suketa)
Files:	    src/Makefile, src/auto/configure, src/configure.in, src/if_ruby.c

Patch 7.2.362 (extra, after 7.2.352)
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Instead of handling WM_NCCREATE, create wide text area window
	    class if the parent window iw side. (Sergey Khorev)
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 7.2.363
Problem:    Can't dynamically load Perl 5.10.
Solution:   Add the function Perl_croak_xs_usage. (Sergey Khorev)
Files:	    src/if_perl.xs

Patch 7.2.364 (extra)
Problem:    Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
Solution:   Check if _MSC_VER is defined. (Andy Kittner)
Files:	    src/GvimExt/gvimext.h

Patch 7.2.365 (extra)
Problem:    MS-Windows with MingW: "File->Save As" does not work. (John
	    Marriott)
Solution:   Correctly fill in structure size. (Andy Kittner)
Files:	    src/gui_w48.c

Patch 7.2.366
Problem:    CTRL-B doesn't go back to the first line of the buffer.
Solution:   Avoid an overflow when adding MAXCOL.
Files:	    src/move.c

Patch 7.2.367
Problem:    "xxd -r -p" doesn't work as documented.
Solution:   Skip white space. (James Vega)
Files:	    src/xxd/xxd.c

Patch 7.2.368 (after 7.2.361)
Problem:    Ruby interface: Appending line doesn't work. (Michael Henry)
Solution:   Reverse check for NULL line. (James Vega)
Files:	    src/if_ruby.c

Patch 7.2.369
Problem:    Error message is not easy to understand.
Solution:   Add quotes. (SungHyun Nam)
Files:	    src/ex_cmds2.c

Patch 7.2.370 (after 7.2.356)
Problem:    A redraw may cause folds to be closed.
Solution:   Revert part of the previous patch.  Add a test. (Lech Lorens)
Files:	    src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in,
	    src/testdir/test45.ok

Patch 7.2.371
Problem:    Build problems on Tandem NonStop.
Solution:   A few changes to #ifdefs (Joachim Schmitz)
Files:	    src/auto/configure, src/configure.in, src/config.h.in, src/vim.h,
	    src/if_cscope.c, src/osdef1.h.in, src/tag.c

Patch 7.2.372 (extra)
Problem:    Cross-compiling GvimExt and xxd doesn't work.
Solution:   Change the build files. (Markus Heidelberg)
Files:	    src/INSTALLpc.txt, src/GvimExt/Make_ming.mak, src/Make_cyg.mak,
	    src/Make_ming.mak, src/xxd/Make_cyg.mak

Patch 7.2.373
Problem:    Gcc 4.5 adds more error messages. (Chris Indy)
Solution:   Update default 'errorformat'.
Files:	    src/option.h

Patch 7.2.374
Problem:    Ruby eval() doesn't understand Vim types.
Solution:   Add the vim_to_ruby() function.  (George Gensure)
Files:	    src/eval.c, src/if_ruby.c

Patch 7.2.375
Problem:    ml_get errors when using ":bprevious" in a BufEnter autocmd.
	    (Dominique Pelle)
Solution:   Clear w_valid when entering another buffer.
Files:	    src/buffer.c

Patch 7.2.376
Problem:    ml_get error when using SiSU syntax. (Nathan Thomas)
Solution:   If the match ends below the last line move it to the end of the
	    last line.
Files:	    src/syntax.c

Patch 7.2.377 (extra, after 7.2.372)
Problem:    Misplaced assignment.  Duplicate build line for gvimext.dll.
Solution:   Move setting CROSS_COMPILE to before ifneq.  Remove the wrong
	    build line. (Markus Heidelberg)
Files:	    src/Make_ming.mak

Patch 7.2.378
Problem:    C function declaration indented too much. (Rui)
Solution:   Don't see a line containing { or } as a type. (Matt Wozniski)
Files:	    src/misc1.c

Patch 7.2.379
Problem:    'eventignore' is set to an invalid value inside ":doau". (Antony
	    Scriven)
Solution:   Don't include the leading comma when the option was empty.
Files:	    src/fileio.c

Patch 7.2.380 (after 7.2.363)
Problem:    Perl interface builds with 5.10.1 but not with 5.10.0.
Solution:   Change the #ifdefs. (Sergey Khorev)
Files:	    src/if_perl.xs

Patch 7.2.381
Problem:    No completion for :behave.
Solution:   Add :behave completion.  Minor related fixes. (Dominique Pelle)
Files:	    src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro, src/vim.h

Patch 7.2.382
Problem:    Accessing freed memory when closing the cmdline window when
	    'bufhide' is set to "wipe".
Solution:   Check if the buffer still exists before invoking close_buffer()
	    (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.2.383
Problem:    Vim doesn't build cleanly with MSVC 2010.
Solution:   Change a few types. (George Reilly)
Files:	    src/ex_cmds2.c, src/if_python.c, src/syntax.c

Patch 7.2.384 (extra)
Problem:    Vim doesn't build properly with MSVC 2010.
Solution:   Add the nmake version to the build file. (George Reilly)
Files:	    src/Make_mvc.mak, src/testdir/Make_dos.mak

Patch 7.2.385
Problem:    When in the command line window dragging status line only works
	    for last-but-one window. (Jean Johner)
Solution:   Remove the code that disallows this.
Files:	    src/ui.c

Patch 7.2.386
Problem:    Focus hack for KDE 3.1 causes problems for other window managers.
Solution:   Remove the hack. (forwarded by Joel Bradshaw)
Files:	    src/gui_gtk.c

Patch 7.2.387
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   More #ifdefs for the  Ruby code. (Sergey Khorev)
Files:	    src/if_ruby.c

Patch 7.2.388 (extra part of 7.2.387)
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   Different approach to build file. (Sergey Khorev)
Files:	    src/Make_ming.mak

Patch 7.2.389
Problem:    synIDattr() cannot return the font.
Solution:   Support the "font" argument. (Christian Brabandt)
Files:	    runtime/doc/eval.txt, src/eval.c, src/syntax.c

Patch 7.2.390
Problem:    In some situations the popup menu can be displayed wrong.
Solution:   Remove the popup menu if the cursor moved. (Lech Lorens)
Files:	    src/edit.c

Patch 7.2.391
Problem:    Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
Solution:   Fix computations in getvcol(). (partly by Lech Lorens)
Files:	    src/charset.c, src/memline.c

Patch 7.2.392
Problem:    Netbeans hangs reading from a socket at the maximum block size.
Solution:   Use select() or poll(). (Xavier de Gaye)
Files:	    src/vim.h, src/os_unixx.h, src/if_xcmdsrv.c, src/netbeans.c

Patch 7.2.393
Problem:    Mac: Can't build with different Xcode developer tools directory.
Solution:   make "Developer" directory name configurable. (Rainer Muller)
Files:	    src/configure.in, src/auto/configure

Patch 7.2.394
Problem:    .lzma and .xz files are not supported.
Solution:   Recognize .lzma and .xz files so that they can be edited.
Files:	    runtime/plugin/gzip.vim

Patch 7.2.395
Problem:    In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony
	    Mechelynck)
Solution:   Don't escape ? for a help command. (Sergey Khorev)
Files:	    src/normal.c

Patch 7.2.396
Problem:    Get E38 errors. (Dasn)
Solution:   Set cursor to line 1 instead of 0. (Dominique Pelle)
Files:	    src/popupmnu.c

Patch 7.2.397
Problem:    Redundant check for w_lines_valid.
Solution:   Remove the if.  (Lech Lorens)
Files:	    src/fold.c

Patch 7.2.398
Problem:    When moving windows the cursor ends up in the wrong line.
Solution:   Set the window width and height properly. (Lech Lorens)
Files:	    src/window.c

Patch 7.2.399 (extra, after 7.2.388)
Problem:    Cannot compile on MingW.
Solution:   Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle)
Files:	    src/Make_ming.mak

Patch 7.2.400 (after 7.2.387)
Problem:    Dynamic Ruby is not initialised properly for version 1.9.1.
	    Ruby cannot create strings from NULL.
Solution:   Cleanup #ifdefs.  Handle NULL like an empty string.  Add
	    ruby_init_stack. (Sergey Khorev)
Files:	    src/if_ruby.c

Patch 7.2.401
Problem:    ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
	    directory names with a space. (Alexandre Provencio)
Solution:   Remove the backslash before checking if the name is a directory.
	    (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.2.402
Problem:    This gives a #705 error: let X = function('haslocaldir')
	    let X = function('getcwd')
Solution:   Don't give E705 when the name is found in the hashtab. (Sergey
	    Khorev)
Files:	    src/eval.c

Patch 7.2.403 (after 7.2.400)
Problem:    Compiler warning for pointer type. (Tony Mechelynck)
Solution:   Move type cast to the right place.
Files:	    src/if_ruby.c

Patch 7.2.404
Problem:    Pointers for composing characters are not properly initialized.
Solution:   Compute the size of the pointer, not what it points to. (Yukihiro
	    Nakadaira)
Files:	    src/screen.c

Patch 7.2.405
Problem:    When built with small features the matching text is not
	    highlighted for ":s/pat/repl/c".
Solution:   Remove the #ifdef for IncSearch. (James Vega)
Files:	    src/syntax.c

Patch 7.2.406
Problem:    Patch 7.2.119 introduces uninit mem read. (Dominique Pelle)
Solution:   Only used ScreeenLinesC when ScreeenLinesUC is not zero. (Yukihiro
	    Nakadaira)  Also clear ScreeenLinesC when allocating.
Files:	    src/screen.c

Patch 7.2.407
Problem:    When using an expression in ":s" backslashes in the result are
	    dropped. (Sergey Goldgaber, Christian Brabandt)
Solution:   Double backslashes.
Files:	    src/regexp.c

Patch 7.2.408
Problem:    With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line
	    that was not changed.
Solution:   Only set '[ and '] marks when a substitution was done.
Files:	    src/ex_cmds.c

Patch 7.2.409
Problem:    Summary of number of substitutes is incorrect for ":folddo". (Jean
	    Johner)
Solution:   Reset sub_nsubs and sub_nlines in global_exe().
Files:	    src/ex_cmds.c

Patch 7.2.410
Problem:    Highlighting directories for completion doesn't work properly.
Solution:   Don't halve backslashes when not needed, expanded "~/".
	    (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.2.411
Problem:    When parsing 'cino' a comma isn't skipped properly.
Solution:   Skip the comma. (Lech Lorens)
Files:	    src/misc1.c

Patch 7.2.412
Problem:    [ or ] followed by mouse click doesn't work.
Solution:   Reverse check for key being a mouse event. (Dominique Pelle)
Files:	    src/normal.c

Patch 7.2.413
Problem:    Large file support is incorrect.
Solution:   Add AC_SYS_LARGEFILE to configure. (James Vega)
Files:	    src/configure.in, src/config.h.in, src/auto/configure

Patch 7.2.414
Problem:    CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
	    Mechelynck)
Solution:   Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
	    not valid characters.
Files:	    src/digraph.c

Patch 7.2.415
Problem:    Win32: Can't open a remote file when starting Vim.
Solution:   Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi)
Files:	    src/main.c

Patch 7.2.416
Problem:    Logtalk.dict is not installed.
Solution:   Add it to the install target. (Markus Heidelberg)
Files:	    src/Makefile

Patch 7.2.417
Problem:    When 'shell' has an argument with a slash then 'shellpipe' is not
	    set properly. (Britton Kerin)
Solution:   Assume there are no spaces in the path, arguments follow.
Files:	    src/option.c

Patch 7.2.418
Problem:    Vim tries to set the background or foreground color in a terminal
	    to -1.  (Graywh)  Happens with ":hi Normal ctermbg=NONE".
Solution:   When resetting the foreground or background color don't set the
	    color, let the clear screen code do that.
Files:	    src/syntax.c

Patch 7.2.419
Problem:    Memory leak in Motif when clicking on "Search Vim Help".
Solution:   Free string returned by XmTextGetString(). (Dominique Pelle)
Files:	    src/gui_motif.c

Patch 7.2.420
Problem:    ":argedit" does not accept "++enc=utf8" as documented. (Dominique
	    Pelle)
Solution:   Add the ARGOPT flag to ":argedit".
Files:	    src/ex_cmds.h

Patch 7.2.421
Problem:    Folds are sometimes not updated properly and there is no way to
	    force an update.
Solution:   Make "zx" and "zX" recompute folds (suggested by Christian
	    Brabandt)
Files:	    src/normal.c

Patch 7.2.422
Problem:    May get E763 when using spell dictionaries.
Solution:   Avoid utf-8 case folded character to be truncated to 8 bits and
	    differ from latin1. (Dominique Pelle)
Files:	    src/spell.c

Patch 7.2.423
Problem:    Crash when assigning s: to variable. (Yukihiro Nakadaira)
Solution:   Make ga_scripts contain pointer to scriptvar_T instead of
	    scriptvar_T itself. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.2.424
Problem:    ":colorscheme" without an argument doesn't do anything.
Solution:   Make it echo the current color scheme name.  (partly by Christian
	    Brabandt)
Files:	    runtime/doc/syntax.txt, src/ex_cmds.h, src/ex_docmd.c

Patch 7.2.425
Problem:    Some compilers complain about fourth EX() argument.
Solution:   Add cast to long_u.
Files:	    src/ex_cmds.h

Patch 7.2.426
Problem:    Commas in 'langmap' are not always handled correctly.
Solution:   Require commas to be backslash escaped. (James Vega)
Files:	    src/option.c

Patch 7.2.427
Problem:    The swapfile is created using the destination of a symlink, but
	    recovery doesn't follow symlinks.
Solution:   When recovering, resolve symlinks. (James Vega)
Files:	    src/memline.c

Patch 7.2.428
Problem:    Using setqflist([]) to clear the error list doesn't work properly.
Solution:   Set qf_nonevalid to TRUE when appropriate. (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.2.429
Problem:    A file that exists but access is denied may result in a "new file"
	    message.  E.g. when its directory is unreadable.
Solution:   Specifically check for ENOENT to decide a file doesn't exist.
	    (partly by James Vega)
Files:	    src/fileio.c

Patch 7.2.430
Problem:    The ++bad argument is handled wrong, resulting in an invalid
	    memory access.
Solution:   Use the bad_char field only for the replacement character, add
	    bad_char_idx to store the position. (Dominique Pelle)
Files:	    src/eval.c, src/ex_cmds.h, src/ex_docmd.c

Patch 7.2.431
Problem:    ":amenu" moves the cursor when in Insert mode.
Solution:   Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt)
Files:	    src/menu.c

Patch 7.2.432
Problem:    When menus are translated they can only be found by the translated
	    name.  That makes ":emenu" difficult to use.
Solution:   Store the untranslated name and use it for completion and :emenu.
	    (Liang Peng (Bezetek James), Edward L. Fox)
Files:	    src/menu.c, src/structs.h

Patch 7.2.433
Problem:    Can't use cscope with QuickFixCmdPre and QuickFixCmdPost.
Solution:   Add cscope support for these autocmd events. (Bryan Venteicher)
Files:	    runtime/doc/autocmd.txt, src/if_cscope.c

Patch 7.2.434 (after 7.2.432)
Problem:    Compilation fails without the multi-lang feature.
Solution:   Add #ifdefs. (John Marriott)
Files:	    src/menu.c

Patch 7.2.435 (after 7.2.430)
Problem:    Crash when using bad_char_idx uninitialized. (Patrick Texier)
Solution:   Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
Files:	    src/eval.c, src/ex_cmds.h, src/ex_docmd.c

Patch 7.2.436
Problem:    Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
Solution:   Make sst_stacksize an int instead of short. (Dominique Pelle)
Files:	    src/structs.h

Patch 7.2.437 (after 7.2.407)
Problem:    When "\\\n" appears in the expression result the \n doesn't result
	    in a line break. (Andy Wokula)
Solution:   Also replace a \n after a backslash into \r.
Files:	    src/regexp.c

Patch 7.2.438 (after 7.2.427)
Problem:    "vim -r" crashes.
Solution:   Don't use NULL pointer argument.
Files:	    src/memline.c

Patch 7.2.439
Problem:    Invalid memory access when doing thesaurus completion and
	    'infercase' is set.
Solution:   Use the minimal length of completed word and replacement.
	    (Dominique Pelle)
Files:	    src/edit.c

Patch 7.2.440
Problem:    Calling a function through a funcref, where the function deletes
	    the funcref, leads to an invalid memory access.
Solution:   Make a copy of the function name. (Lech Lorens)
Files:	    src/eval.c, src/testdir/test34.in, src/testdir/test34.ok

Patch 7.2.441
Problem:    When using ":earlier" undo information may be wrong.
Solution:   When changing alternate branches also adjust b_u_oldhead.
Files:	    src/undo.c

Patch 7.2.442 (after 7.2.201)
Problem:    Copy/paste with OpenOffice doesn't work.
Solution:   Do not offer the HTML target when it is not supported. (James
	    Vega)
Files:	    src/gui_gtk_x11.c, src/option.c, src/proto/gui_gtk_x11.pro

Patch 7.2.443
Problem:    Using taglist() on a tag file with duplicate fields generates an
	    internal error. (Peter Odding)
Solution:   Check for duplicate field names.
Files:	    src/eval.c, src/proto/eval.pro, src/tag.c

Patch 7.2.444 (after 7.2.442)
Problem:    Can't build with GTK 1, gtk_selection_clear_targets() is not
	    available. (Patrick Texier)
Solution:   Don't change the targets for GTK 1, set them once.
Files:	    src/gui_gtk_x11.c, src/option.c

Patch 7.2.445
Problem:    Crash when using undo/redo and a FileChangedRO autocmd event that
	    reloads the buffer. (Dominique Pelle)
Solution:   Do not allow autocommands while performing and undo or redo.
Files:	    src/misc1.c, src/undo.c

Patch 7.2.446
Problem:    Crash in GUI when closing the last window in a tabpage. (ryo7000)
Solution:   Remove the tabpage from the list before freeing the window.
Files:	    src/window.c

When writing a file, switching tab pages and selecting a word the file write
message would be displayed again.  This happened in Insert mode and with
'cmdheight' set to 2.

When using ":lang" to set a locale that uses a comma for decimal separator and
using GTK floating point numbers stop working.  Use gtk_disable_setlocale().
(James Vega)

"g8" didn't produce the right value on a NUL. (Dominique Pelle)

Use BASEMODLIBS instead of MODLIBS for Python configuration to pick up the
right compiler flags. (Michael Bienia)

Window title was not updated after dropping a file on Vim. (Hari G)

synstack() did not return anything when just past the end of the line.  Useful
when using the cursor position in Insert mode.

When entering a digraph or special character after a line that fits the window
the '?' or '^' on the next line is not redrawn. (Ian Kelling)

Composing characters in |:s| substitute text were dropped.

|exists()| was causing an autoload script to be loaded.

Filter out -pthread for cproto.

Make CTRL-L in command line mode respect 'ignorecase' and 'smartcase'. (Martin
Toft)

Spell menu moved the cursor, causing Copy not to work.  Spell replacement
didn't work in 'compatible' mode.

Various small fixes from Dominique Pelle.

Fix that :mksession may generate "2argu" even though there is no such
argument. (Peter Odding)

Fixes for time in clipboard request.  Also fix ownership.  (David Fries)

Fixed completion of file names with '%' and '*'.

Fixed MSVC makefile use of /Wp64 flag.

Correct use of long instead of off_t for file size. (James Vega)

Add a few #ifdefs to exclude functions that are not used. (Dominique Pelle)

Remove old and unused method to allocate memory for undo.

Fix definition of UINT_PTR for 64 bit systems.

Some versions of Ruby redefine rb_str_new2 to rb_str_new_cstr.

Window title not updated after file dropped.

Fixed crash for ":find" completion, might also happen in other path expansion
usage.

When 'searchhl' causes a hang make CTRL-C disable 'searchhl'.

When resetting both 'title' and 'icon' the title would be set after a shell
command.

Reset 'title' and 'icon' in test47 to avoid the xterm title getting messed up.

Fix for compiler warning about function prototype in pty.c.

Added 'window' to the options window.

Fixed: errors for allocating zero bytes when profiling an empty function.

Remove -arch flag from build flags for Perl. (Bjorn Wickler)

Fix 'autochdir' not showing up in :options window. (Dominique Pelle)

Fix: test 69 didn't work on MS-Windows.  Test 72 beeped too often.

Avoid illegal memory access in spell suggestion. (Dominique Pelle)
Fix: crash in spell checking with a 0x300 character.

Avoid that running tests changes viminfo.

Fix: changing case of a character removed combining characters.
Fixed: CTRL-R in Insert mode doesn't insert composing characters.

Added the WOW64 flag to OLE registration, for 64 bit Windows systems.

Various fixes for coverity warnings.

Fix compile warnings, esp. for 64-bit systems.  (Mike Williams)

Fix: :redir to a dictionary that is changed before ":redir END" causes a
memory access error.

Fix: terminal title not properly restored when there are multi-byte
characters.  (partly by James Vega)

Set 'wrapscan' when checking the .po files. (Mike Williams)

Win32: Put quotes around the gvim.exe path for the "Open with" menu entry.

On MS-Windows sometimes files with number 4913 or higher are left behind.

'suffixesadd' was used for finding tags file.

Removed unused code.

Improved positioning of combining characters in GTK.

Made test 11 pass when there is no gzip program. (John Beckett)

Changed readfile() to ignore byte order marks, unless in binary mode.

On MS-Windows completion of shell commands didn't work.

An unprintable multi-byte character at the start of the screen line caused the
following text to be drawn at the wrong position.

Got ml_get errors when using undo with 'virtualedit'.

Call gui_mch_update() before triggering GuiEnter autocmd. (Ron Aaron)

Unix "make install" installed a few Amiga .info files.

Disallow setting 'ambiwidth' to "double" when 'listchars' or 'fillchars'
contains a character that would become double width.

Set 'wrapscan' when checking the .po files. (Mike Williams)

Fixed: using expression in command line may cause a crash.

Avoid warnings from the clang compiler. (Dominique Pelle)

Fix: Include wchar.h in charset.c for towupper().

Fixed: Using ":read file" in an empty buffer when 'compatible' is set caused
an error.  Was caused by patch 7.2.132.

Make the references to features in the help more consistent. (Sylvain Hitier)

==============================================================================
VERSION 7.4				*version-7.4* *version7.4* *vim-7.4*

This section is about improvements made between version 7.3 and 7.4.

This release has hundreds of bug fixes and there are a few new features.  The
most notable new features are:

- New regexp engine			|new-regexp-engine|
- A more pythonic Python interface	|better-python-interface|


New regexp engine					*new-regexp-engine*
-----------------

What is now called the "old" regexp engine uses a backtracking algorithm.  It
tries to match the pattern with the text in one way, and when that fails it
goes back and tries another way.  This works fine for simple patterns, but
complex patterns can be very slow on longer text.

The new engine uses a state machine.  It tries all possible alternatives at
the current character and stores the possible states of the pattern.  This is
a bit slower for simple patterns, but much faster for complex patterns and
long text.

Most notably, syntax highlighting for Javascript and XML files with long lines
is now working fine.  Previously Vim could get stuck.

More information here: |two-engines|


Better Python interface				*better-python-interface*
-----------------------

Added |python-bindeval| function. Unlike |python-eval| this one returns
|python-Dictionary|, |python-List| and |python-Function| objects for
dictionaries lists and functions respectively in place of their Python
built-in equivalents (or None if we are talking about function references).
   For simple types this function returns Python built-in types and not only
Python `str()` like |python-eval| does. On Python 3 it will return `bytes()`
objects in place of `str()` ones avoiding possibility of UnicodeDecodeError.
   Interface of new objects mimics standard Python `dict()` and `list()`
interfaces to some extent. Extent will be improved in the future.

Added special |python-vars| objects also available for |python-buffer| and
|python-window|. They ease access to Vim script variables from Python.

Now you no longer need to alter `sys.path` to import your module: special
hooks are responsible for importing from {rtp}/python2, {rtp}/python3 and
{rtp}/pythonx directories (for Python 2, Python 3 and both respectively).
See |python-special-path|.

Added possibility to work with |tabpage|s through |python-tabpage| object.

Added automatic conversion of Vim errors and exceptions to Python
exceptions.

Changed the behavior of the |python-buffers| object: it now uses buffer numbers
as keys in place of the index of the buffer in the internal buffer list.
This should not break anything as the only way to get this index was
iterating over |python-buffers|.

Added |:pydo| and |:py3do| commands.

Added the |pyeval()| and |py3eval()| functions.

Now in all places which previously accepted `str()` objects, `str()` and
`unicode()` (Python 2) or `bytes()` and `str()` (Python 3) are accepted.

|python-window| has gained `.col` and `.row` attributes that are currently
the only way to get internal window positions.

Added or fixed support for `dir()` in Vim Python objects.


Changed							*changed-7.4*
-------

Old Python versions (≤2.2) are no longer supported. Building with them did
not work anyway.

Options:
	Added ability to automatically save the selection into the system
	clipboard when using non-GUI version of Vim (autoselectplus in
	'clipboard'). Also added ability to use the system clipboard as
	default register (previously only primary selection could be used).
	(Ivan Krasilnikov, Christian Brabandt, Bram Moolenaar)

	Added a special 'shiftwidth' value that makes 'sw' follow 'tabstop'.
	As indenting via 'indentexpr' became tricky |shiftwidth()| function
	was added. Also added equivalent special value to 'softtabstop'
	option.  (Christian Brabandt, so8res)

	Show absolute number in number column when 'relativenumber' option is
	on.  Now there are four combinations with 'number' and
	'relativenumber'.  (Christian Brabandt)

Commands:
	|:diffoff| now saves the local values of some settings and restores
	them in place of blindly resetting them to the defaults. (Christian
	Brabandt)

Other:
	Lua interface now also uses userdata binded to Vim structures. (Taro
	Muraoka, Luis Carvalho)

	glob() and autocommand patterns used to work with the undocumented
	"\{n,m\}" item from a regexp.  "\{" is now used for a literal "{", as
	this is normal in shell file patterns.  Now used "\\\{n,m\}" to get
	"\{n,m}" in the regexp pattern.

Added							*added-7.4*
-----

Various syntax, indent and other plugins were added.

Added support for |Lists| and |Dictionaries| in |viminfo|. (Christian
Brabandt)

Functions:
	Bitwise functions: |and()|, |or()|, |invert()|, |xor()|.

	Added |luaeval()| function. (Taro Muraoka, Luis Carvalho)

	Added |sha256()| function. (Tyru, Hirohito Higashi)

	Added |wildmenumode()| function. (Christian Brabandt)

	Debugging functions: |screenattr()|, |screenchar()|, |screencol()|,
	|screenrow()|. (Simon Ruderich, Bram Moolenaar)

	Added ability to use |Dictionary-function|s for |sort()|ing, via
	optional third argument. (Nikolay Pavlov)

	Added special |expand()| argument that expands to the current line
	number.

	Made it possible to force |char2nr()| to always give unicode codepoints
	regardless of current encoding. (Yasuhiro Matsumoto)

	Made it possible for functions generating file list generate |List|
	and not NL-separated string. (e.g. |glob()|, |expand()|) (Christian
	Brabandt)

	Functions that obtain variables from the specific window, tabpage or
	buffer scope dictionary can now return specified default value in
	place of empty string in case variable is not found. (|gettabvar()|,
	|getwinvar()|, |getbufvar()|) (Shougo Matsushita, Hirohito Higashi)

Autocommands:
	Added |InsertCharPre| event launched before inserting character.
	(Jakson A. Aquino)

	Added |CompleteDone| event launched after finishing completion in
	insert mode. (idea by Florian Klein)

	Added |QuitPre| event launched when commands that can either close Vim
	or only some window(s) are launched.

	Added |TextChanged| and |TextChangedI| events launched when text is
	changed.

Commands:
	|:syntime| command useful for debugging.

	Made it possible to remove all signs from the current buffer using
	|:sign-unplace|. (Christian Brabandt)

	Added |:language| autocompletion. (Dominique Pelle)

	Added more |:command-complete| completion types: |:behave| suboptions,
	color schemes, compilers, |:cscope| suboptions, files from 'path',
	|:history| suboptions, locale names, |:syntime| suboptions, user
	names. (Dominique Pelle)

	Added |:map-nowait| creating mapping which when having lhs that is the
	prefix of another mapping’s lhs will not allow Vim to wait for user to
	type more characters to resolve ambiguity, forcing Vim to take the
	shorter alternative: one with <nowait>.

Options:
	Made it possible to ignore case when completing: 'wildignorecase'.

	Added ability to delete comment leader when using |J| by `j` flag in
	'formatoptions' (|fo-table|). (Lech Lorens)

	Added ability to control indentation inside namespaces: |cino-N|.
	(Konstantin Lepa)

	Added ability to control alignment inside `if` condition separately
	from alignment inside function arguments: |cino-k|. (Lech Lorens)

Other:
	Improved support for cmd.exe. (Ben Fritz, Bram Moolenaar)

	Added |v:windowid| variable containing current window number in GUI
	Vim. (Christian J. Robinson, Lech Lorens)

	Added rxvt-unicode and SGR mouse support. (Yiding Jia, Hayaki Saito)


All changes in 7.4						*fixed-7.4*
------------------

Patch 7.3.001
Problem:    When editing "src/main.c" and 'path' set to "./proto",
	    ":find e<C-D" shows ./proto/eval.pro instead of eval.pro.
Solution:   Check for path separator when comparing names. (Nazri Ramliy)
Files:	    src/misc1.c

Patch 7.3.002
Problem:    ":find" completion doesn't work when halfway an environment
	    variable. (Dominique Pelle)
Solution:   Only use in-path completion when expanding file names. (Nazri
	    Ramliy)
Files:	    src/ex_docmd.c

Patch 7.3.003
Problem:    Crash with specific BufWritePost autocmd. (Peter Odding)
Solution:   Don't free the quickfix title twice. (Lech Lorens)
Files:	    src/quickfix.c

Patch 7.3.004
Problem:    Crash when using very long regexp. (Peter Odding)
Solution:   Reset reg_toolong. (Carlo Teubner)
Files:	    src/regexp.c

Patch 7.3.005
Problem:    Crash when using undotree(). (Christian Brabandt)
Solution:   Increase the list reference count.  Add a test for undotree()
	    (Lech Lorens)
Files:	    src/eval.c, src/testdir/Makefile, src/testdir/test61.in

Patch 7.3.006
Problem:    Can't build some multi-byte code with C89.
Solution:   Move code to after declarations. (Joachim Schmitz)
Files:	    src/mbyte.c, src/spell.c

Patch 7.3.007
Problem:    Python code defines global "buffer".  Re-implements a grow-array.
Solution:   Use a grow-array instead of coding the same functionality.  Handle
	    out-of-memory situation properly.
Files:	    src/if_py_both.h

Patch 7.3.008
Problem:    'cursorbind' is kept in places where 'scrollbind' is reset.
Solution:   Reset 'cursorbind'.
Files:	    src/buffer.c, src/diff.c, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, src/macros.h,
	    src/quickfix.c, src/search.c, src/tag.c, src/window.c

Patch 7.3.009
Problem:    Win32: Crash on Windows when using a bad argument for strftime().
	    (Christian Brabandt)
Solution:   Use the bad_param_handler(). (Mike Williams)
Files:	    src/os_win32.c

Patch 7.3.010
Problem:    Mac GUI: Missing break statements.
Solution:   Add the break statements. (Dominique Pelle)
Files:	    src/gui_mac.c

Patch 7.3.011
Problem:    X11 clipboard doesn't work in Athena/Motif GUI.  First selection
	    after a shell command doesn't work.
Solution:   When using the GUI use XtLastTimestampProcessed() instead of
	    changing a property.  (partly by Toni Ronkko)
	    When executing a shell command disown the selection.
Files:	    src/ui.c, src/os_unix.c

Patch 7.3.012
Problem:    Problems building with MingW.
Solution:   Adjust the MingW makefiles. (Jon Maken)
Files:	    src/Make_ming.mak, src/GvimExt/Make_ming.mak

Patch 7.3.013
Problem:    Dynamic loading with Ruby doesn't work for 1.9.2.
Solution:   Handle rb_str2cstr differently.  Also support dynamic loading on
	    Unix. (Jon Maken)
Files:	    src/if_ruby.c

Patch 7.3.014
Problem:    Ending a line in a backslash inside an ":append" or ":insert"
	    command in Ex mode doesn't work properly. (Ray Frush)
Solution:   Halve the number of backslashes, only insert a NUL after an odd
	    number of backslashes.
Files:	    src/ex_getln.c

Patch 7.3.015
Problem:    Test is using error message that no longer exists.
Solution:   Change E106 to E121. (Dominique Pelle)
Files:	    src/testdir/test49.vim

Patch 7.3.016
Problem:    Netbeans doesn't work under Athena.
Solution:   Support Athena, just like Motif. (Xavier de Gaye)
Files:	    runtime/doc/netbeans.txt, src/gui.c, src/main.c, src/netbeans.c

Patch 7.3.017
Problem:    smatch reports errors.
Solution:   Fix the reported errors. (Dominique Pelle)
Files:	    src/spell.c, src/syntax.c

Patch 7.3.018 (after 7.3.012)
Problem:    Missing argument to windres in MingW makefiles.
Solution:   Add the argument that was wrapped in the patch. (Jon Maken)
Files:	    src/Make_ming.mak, src/GvimExt/Make_ming.mak

Patch 7.3.019
Problem:    ":nbstart" can fail silently.
Solution:   Give an error when netbeans is not supported by the GUI. (Xavier
	    de Gaye)
Files:	    src/netbeans.c

Patch 7.3.020
Problem:    Cursor position wrong when joining multiple lines and
	    'formatoptions' contains "a". (Moshe Kamensky)
Solution:   Adjust cursor position for skipped indent. (Carlo Teubner)
Files:	    src/ops.c, src/testdir/test68.in, src/testdir/test68.ok

Patch 7.3.021
Problem:    Conflict for defining Boolean in Mac header files.
Solution:   Define NO_X11_INCLUDES. (Rainer Muller)
Files:	    src/os_macosx.m, src/vim.h

Patch 7.3.022
Problem:    When opening a new window the 'spellcapcheck' option is cleared.
Solution:   Copy the correct option value. (Christian Brabandt)
Files:	    src/option.c

Patch 7.3.023
Problem:    External program may hang when it tries to write to the tty.
Solution:   Don't close the slave tty until after the child exits. (Nikola
	    Knezevic)
Files:	    src/os_unix.c

Patch 7.3.024
Problem:    Named signs do not use a negative number as intended.
Solution:   Fix the numbering of named signs. (Xavier de Gaye)
Files:	    src/ex_cmds.c

Patch 7.3.025
Problem:    ":mksession" does not square brackets escape file name properly.
Solution:   Improve escaping of file names. (partly by Peter Odding)
Files:	    src/ex_docmd.c

Patch 7.3.026
Problem:    CTRL-] in a help file doesn't always work. (Tony Mechelynck)
Solution:   Don't escape special characters. (Carlo Teubner)
Files:	    src/normal.c

Patch 7.3.027
Problem:    Opening a file on a network share is very slow.
Solution:   When fixing file name case append "\*" to directory, server and
	    network share names. (David Anderson, John Beckett)
Files:	    src/os_win32.c

Patch 7.3.028 (after 7.3.024)
Problem:    Signs don't show up. (Charles Campbell)
Solution:   Don't use negative numbers.  Also assign a number to signs that
	    have a name of all digits to avoid using a sign number twice.
Files:	    src/ex_cmds.c

Patch 7.3.029
Problem:    ":sort n" sorts lines without a number as number zero. (Beeyawned)
Solution:   Make lines without a number sort before lines with a number.  Also
	    fix sorting negative numbers.
Files:	    src/ex_cmds.c, src/testdir/test57.in, src/testdir/test57.ok

Patch 7.3.030
Problem:    Cannot store Dict and List in viminfo file.
Solution:   Add support for this. (Christian Brabandt)
Files:	    runtime/doc/options.txt, src/eval.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/main.aap, src/testdir/test74.in,
	    src/testdir/test74.ok

Patch 7.3.031
Problem:    Can't pass the X window ID to another application.
Solution:   Add v:windowid. (Christian J. Robinson, Lech Lorens)
Files:	    runtime/doc/eval.txt, src/eval.c, src/gui.c, src/vim.h,
	    src/os_unix.c

Patch 7.3.032
Problem:    maparg() doesn't return the flags, such as <buffer>, <script>,
	    <silent>.  These are needed to save and restore a mapping.
Solution:   Improve maparg(). (also by Christian Brabandt)
Files:	    runtime/doc/eval.txt, src/eval.c, src/getchar.c, src/gui_w48.c,
	    src/message.c, src/proto/getchar.pro, src/proto/message.pro,
	    src/structs.h src/testdir/test75.in, src/testdir/test75.ok

Patch 7.3.033 (after 7.3.032)
Problem:    Can't build without FEAT_LOCALMAP.
Solution:   Add an #ifdef. (John Marriott)
Files:	    src/getchar.c

Patch 7.3.034
Problem:    Win32: may be loading .dll from the wrong directory.
Solution:   Go to the Vim executable directory when opening a library.
Files:	    src/gui_w32.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs,
	    src/if_python.c, src/if_python3.c, src/if_ruby.c, src/mbyte.c,
	    src/os_mswin.c, src/os_win32.c, src/proto/os_win32.pro

Patch 7.3.035 (after 7.3.034)
Problem:    Stray semicolon after if statement. (Hari G)
Solution:   Remove the semicolon.
Files:	    src/os_win32.c

Patch 7.3.036
Problem:    Win32 GUI: When building without menus, the font for dialogs and
	    tab page headers also changes.
Solution:   Define USE_SYSMENU_FONT always. (Harig G.)
Files:	    src/gui_w32.c

Patch 7.3.037
Problem:    Compiler warnings for loss of data. (Mike Williams)
Solution:   Add type casts.
Files:	    src/if_py_both.h, src/getchar.c, src/os_win32.c

Patch 7.3.038
Problem:    v:windowid isn't set on MS-Windows.
Solution:   Set it to the window handle. (Chris Sutcliffe)
Files:	    runtime/doc/eval.txt, src/gui_w32.c

Patch 7.3.039
Problem:    Crash when using skk.vim plugin.
Solution:   Get length of expression evaluation result only after checking for
	    NULL.  (Noriaki Yagi, Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.3.040
Problem:    Comparing strings while ignoring case goes beyond end of the
	    string when there are illegal bytes. (Dominique Pelle)
Solution:   Explicitly check for illegal bytes.
Files:	    src/mbyte.c

Patch 7.3.041
Problem:    Compiler warning for accessing mediumVersion. (Tony Mechelynck)
Solution:   Use the pointer instead of the array itself. (Dominique Pelle)
Files:	    src/version.c

Patch 7.3.042
Problem:    No spell highlighting when re-using an empty buffer.
Solution:   Clear the spell checking info only when clearing the options for a
	    buffer. (James Vega)
Files:	    src/buffer.c

Patch 7.3.043
Problem:    Can't load Ruby dynamically on Unix.
Solution:   Adjust the configure script. (James Vega)
Files:	    src/Makefile, src/config.h.in, src/configure.in,
	    src/auto/configure, src/if_ruby.c

Patch 7.3.044
Problem:    The preview window opened by the popup menu is larger than
	    specified with 'previewheight'. (Benjamin Haskell)
Solution:   Use 'previewheight' if it's set and smaller.
Files:	    src/popupmnu.c

Patch 7.3.045
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize the variable always.
Files:	    src/getchar.c

Patch 7.3.046 (after 7.3.043)
Problem:    Can't build Ruby on MS-Windows.
Solution:   Add #ifdef, don't use WIN3264 before including vim.h.
Files:	    src/if_ruby.c

Patch 7.3.047 (after 7.3.032)
Problem:    Missing makefile updates for test 75.
Solution:   Update the makefiles.
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Makefile, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.3.048
Problem:    ":earlier 1f" doesn't work after loading undo file.
Solution:   Set b_u_save_nr_cur when loading an undo file. (Christian
	    Brabandt)
	    Fix only showing time in ":undolist"
Files:	    src/undo.c

Patch 7.3.049
Problem:    PLT has rebranded their Scheme to Racket.
Solution:   Add support for Racket 5.x. (Sergey Khorev)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
	    src/auto/configure, src/configure.in, src/if_mzsch.c

Patch 7.3.050
Problem:    The link script is clumsy.
Solution:   Use the --as-needed linker option if available. (Kirill A.
	    Shutemov)
Files:	    src/Makefile, src/auto/configure, src/config.mk.in,
	    src/configure.in, src/link.sh

Patch 7.3.051
Problem:    Crash when $PATH is empty.
Solution:   Check for vim_getenv() returning NULL. (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c, src/os_win32.c

Patch 7.3.052
Problem:    When 'completefunc' opens a new window all kinds of errors follow.
	    (Xavier Deguillard)
Solution:   When 'completefunc' goes to another window or buffer and when it
	    deletes text abort completion.  Add a test for 'completefunc'.
Files:	    src/edit.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test76.in, src/testdir/test76.ok

Patch 7.3.053
Problem:    complete() function doesn't reset complete direction.  Can't use
	    an empty string in the list of matches.
Solution:   Set compl_direction to FORWARD.  Add "empty" key to allow empty
	    words. (Kikuchan)
Files:	    src/edit.c

Patch 7.3.054
Problem:    Can define a user command for :Print, but it doesn't work. (Aaron
	    Thoma)
Solution:   Let user command :Print overrule the builtin command (Christian
	    Brabandt)  Disallow :X and :Next as a user defined command.
Files:	    src/ex_docmd.c

Patch 7.3.055
Problem:    Recursively nested lists and dictionaries cause a near-endless
	    loop when comparing them with a copy. (ZyX)
Solution:   Limit recursiveness in a way that non-recursive structures can
	    still be nested very deep.
Files:	    src/eval.c, src/testdir/test55.in, src/testdir/test55.ok

Patch 7.3.056
Problem:    "getline" argument in do_cmdline() shadows global.
Solution:   Rename the argument.
Files:	    src/ex_docmd.c

Patch 7.3.057
Problem:    Segfault with command line abbreviation. (Randy Morris)
Solution:   Don't retrigger the abbreviation when abandoning the command line.
	    Continue editing the command line after the error.
Files:	    src/ex_getln.c

Patch 7.3.058
Problem:    Error "code converter not found" when loading Ruby script.
Solution:   Load Gem module. (Yasuhiro Matsumoto)
Files:	    src/if_ruby.c

Patch 7.3.059
Problem:    Netbeans: Problem with recursively handling messages for Athena
	    and Motif.
Solution:   Call netbeans_parse_messages() in the main loop, like it's done
	    for GTK. (Xavier de Gaye)
Files:	    src/gui_x11.c, src/netbeans.c

Patch 7.3.060
Problem:    Netbeans: crash when socket is disconnected unexpectedly.
Solution:   Don't cleanup when a read fails, put a message in the queue and
	    disconnect later. (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.3.061
Problem:    Remote ":drop" does not respect 'autochdir'. (Peter Odding)
Solution:   Don't restore the directory when 'autochdir' is set. (Benjamin
	    Fritz)
Files:	    src/main.c

Patch 7.3.062
Problem:    Python doesn't work properly when installed in another directory
	    than expected.
Solution:   Figure out home directory in configure and use Py_SetPythonHome()
	    at runtime. (Roland Puntaier)
Files:	    src/configure.in, src/auto/configure, src/if_python.c,
	    src/if_python3.c

Patch 7.3.063
Problem:    Win32: Running a filter command makes Vim lose focus.
Solution:   Use SW_SHOWMINNOACTIVE instead of SW_SHOWMINIMIZED. (Hong Xu)
Files:	    src/os_win32.c

Patch 7.3.064
Problem:    Win32: ":dis +" shows nothing, but "+p does insert text.
Solution:   Display the * register, since that's what will be inserted.
	    (Christian Brabandt)
Files:	    src/globals.h, src/ops.c

Patch 7.3.065
Problem:    Can't get current line number in a source file.
Solution:   Add the <slnum> item, similar to <sfile>.
Files:	    src/ex_docmd.c

Patch 7.3.066
Problem:    Crash when changing to another window while in a :vimgrep command.
	    (Christian Brabandt)
Solution:   When wiping out the dummy before, remove it from aucmd_win.
Files:	    src/quickfix.c

Patch 7.3.067 (after 7.3.058)
Problem:    Ruby: Init_prelude is not always available.
Solution:   Remove use of Init_prelude. (Yasuhiro Matsumoto)
Files:	    src/if_ruby.c

Patch 7.3.068
Problem:    Using freed memory when doing ":saveas" and an autocommand sets
	    'autochdir'. (Kevin Klement)
Solution:   Get the value of fname again after executing autocommands.
Files:	    src/ex_cmds.c

Patch 7.3.069
Problem:    GTK: pressing Enter in inputdialog() doesn't work like clicking OK
	    as documented.
Solution:   call gtk_entry_set_activates_default(). (Britton Kerin)
Files:	    src/gui_gtk.c

Patch 7.3.070
Problem:    Can set environment variables in the sandbox, could be abused.
Solution:   Disallow it.
Files:	    src/eval.c

Patch 7.3.071
Problem:    Editing a file in a window that's in diff mode resets 'diff'
	    but not cursor binding.
Solution:   Reset cursor binding in two more places.
Files:	    src/quickfix.c, src/option.c

Patch 7.3.072
Problem:    Can't complete file names while ignoring case.
Solution:   Add 'wildignorecase'.
Files:	    src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/option.c,
	    src/option.h, src/vim.h, src/runtime/options.txt

Patch 7.3.073
Problem:    Double free memory when netbeans command follows DETACH.
Solution:   Only free the node when owned. (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.3.074
Problem:    Can't use the "+ register like "* for yank and put.
Solution:   Add "unnamedplus" to the 'clipboard' option. (Ivan Krasilnikov)
Files:	    runtime/doc/options.txt, src/eval.c, src/globals.h, src/ops.c,
	    src/option.c

Patch 7.3.075 (after 7.3.072)
Problem:    Missing part of 'wildignorecase'
Solution:   Also adjust expand()
Files:	    src/eval.c

Patch 7.3.076
Problem:    Clang warnings for dead code.
Solution:   Remove it. (Carlo Teubner)
Files:	    src/gui_gtk.c, src/if_ruby.c, src/misc2.c, src/netbeans.c,
	    src/spell.c

Patch 7.3.077
Problem:    When updating crypt of swapfile fails there is no error message.
	    (Carlo Teubner)
Solution:   Add the error message.
Files:	    src/memline.c

Patch 7.3.078
Problem:    Warning for unused variable.
Solution:   Adjust #ifdefs.
Files:	    src/ops.c

Patch 7.3.079
Problem:    Duplicate lines in makefile.
Solution:   Remove the lines. (Hong Xu)
Files:	    src/Make_mvc.mak

Patch 7.3.080
Problem:    Spell doesn't work on VMS.
Solution:   Use different file names. (Zoltan Bartos, Zoltan Arpadffy)
Files:	    src/spell.c

Patch 7.3.081
Problem:    Non-printable characters in 'statusline' cause trouble. (ZyX)
Solution:   Use transstr(). (partly by Caio Ariede)
Files:	    src/screen.c

Patch 7.3.082
Problem:    Leaking file descriptor when hostname doesn't exist.
Solution:   Remove old debugging lines.
Files:	    src/netbeans.c

Patch 7.3.083
Problem:    When a read() or write() is interrupted by a signal it fails.
Solution:   Add read_eintr() and write_eintr().
Files:	    src/fileio.c, src/proto/fileio.pro, src/memfile.c, src/memline.c,
	    src/os_unix.c, src/undo.c, src/vim.h

Patch 7.3.084
Problem:    When splitting the window, the new one scrolls with the cursor at
	    the top.
Solution:   Compute w_fraction before setting the new height.
Files:	    src/window.c

Patch 7.3.085 (after 7.3.083)
Problem:    Inconsistency with preproc symbols.  void * computation.
Solution:   Include vimio.h from vim.h.  Add type cast.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/fileio.c,
	    src/if_cscope.c, src/if_sniff.c, src/main.c, src/memfile.c,
	    src/memline.c, src/netbeans.c, src/os_msdos.c, src/os_mswin.c,
	    src/os_win16.c, src/os_win32.c, src/spell.c, src/tag.c,
	    src/undo.c, src/vim.h

Patch 7.3.086
Problem:    When using a mapping with an expression and there was no count,
	    v:count has the value of the previous command. (ZyX)
Solution:   Also set v:count and v:count1 before getting the character that
	    could be a command or a count.
Files:	    src/normal.c

Patch 7.3.087
Problem:    EINTR is not always defined.
Solution:   Include errno.h in vim.h.
Files:	    src/if_cscope.c, src/if_tcl.c, src/integration.c, src/memline.c,
	    src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h,
	    src/workshop.c

Patch 7.3.088
Problem:    Ruby can't load Gems sometimes, may cause a crash.
Solution:   Undefine off_t.  Use ruby_process_options(). (Yasuhiro Matsumoto)
Files:	    src/if_ruby.c

Patch 7.3.089
Problem:    Compiler warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
Files:	    src/netbeans.c

Patch 7.3.090
Problem:    Wrong help text for Cscope.
Solution:   Adjust the help text for "t". (Dominique Pelle)
Files:	    src/if_cscope.c

Patch 7.3.091
Problem:    "vim -w foo" writes special key codes for removed escape
	    sequences. (Josh Triplett)
Solution:   Don't write K_IGNORE codes.
Files:	    src/getchar.c, src/misc1.c, src/term.c, src/vim.h

Patch 7.3.092
Problem:    Resizing the window when exiting.
Solution:   Don't resize when exiting.
Files:	    src/term.c

Patch 7.3.093
Problem:    New DLL dependencies in MingW with gcc 4.5.0.
Solution:   Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen)
Files:	    src/GvimExt/Make_ming.mak, src/Make_ming.mak

Patch 7.3.094
Problem:    Using abs() requires type cast to int.
Solution:   Use labs() so that the value remains long. (Hong Xu)
Files:	    src/screen.c

Patch 7.3.095
Problem:    Win32: In Chinese tear-off menu doesn't work. (Weasley)
Solution:   Use menu_name_equal().  (Alex Jakushev)
Files:	    src/menu.c

Patch 7.3.096
Problem:    "gvim -nb" is not interruptible.  Leaking file descriptor on
	    netbeans connection error.
Solution:   Check for CTRL-C typed.  Free file descriptor.  (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.3.097
Problem:    Using ":call" inside "if 0" does not see that a function returns a
	    Dict and gives error for "." as string concatenation.
Solution:   Use eval0() to skip over the expression.  (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.3.098
Problem:    Function that ignores error still causes called_emsg to be set.
	    E.g. when expand() fails the status line is disabled.
Solution:   Move check for emsg_not_now() up. (James Vega)
Files:	    src/message.c

Patch 7.3.099
Problem:    Crash when splitting a window with zero height. (Yukihiro
	    Nakadaira)
Solution:   Don't set the fraction in a window with zero height.
Files:	    src/window.c

Patch 7.3.100
Problem:    When using :normal v:count isn't set.
Solution:   Call normal_cmd() with toplevel set to TRUE.
Files:	    src/ex_docmd.c

Patch 7.3.101
Problem:    ino_t defined with wrong size.
Solution:   Move including auto/config.h before other includes. (Marius
	    Geminas)
Files:	    src/if_ruby.c, src/if_lua.c

Patch 7.3.102
Problem:    When using ":make", typing the next command and then getting the
	    "reload" prompt the next command is (partly) eaten by the reload
	    prompt.
Solution:   Accept ':' as a special character at the reload prompt to accept
	    the default choice and execute the command.
Files:	    src/eval.c, src/fileio.c, src/gui.c, src/gui_xmdlg.c,
	    src/memline.c, src/message.c, src/proto/message.pro,
	    src/gui_athena.c, src/gui_gtk.c, src/gui_mac.c, src/gui_motif.c,
	    src/gui_photon.c, src/gui_w16.c, src/gui_w32.c, src/os_mswin.c
	    src/proto/gui_athena.pro, src/proto/gui_gtk.pro,
	    src/proto/gui_mac.pro, src/proto/gui_motif.pro,
	    src/proto/gui_photon.pro, src/proto/gui_w16.pro,
	    src/proto/gui_w32.pro

Patch 7.3.103
Problem:    Changing 'fileformat' and then using ":w" in an empty file sets
	    the 'modified' option.
Solution:   In unchanged() don't ignore 'ff' for an empty file.
Files:	    src/misc1.c, src/option.c, src/proto/option.pro, src/undo.c

Patch 7.3.104
Problem:    Conceal: using Tab for cchar causes problems. (ZyX)
Solution:   Do not accept a control character for cchar.
Files:	    src/syntax.c

Patch 7.3.105
Problem:    Can't get the value of "b:changedtick" with getbufvar().
Solution:   Make it work. (Christian Brabandt)
Files:	    src/eval.c

Patch 7.3.106
Problem:    When 'cursorbind' is set another window may scroll unexpectedly
	    when 'scrollbind' is also set. (Xavier Wang)
Solution:   Don't call update_topline() if 'scrollbind' is set.
Files:	    src/move.c

Patch 7.3.107
Problem:    Year number for :undolist can be confused with month or day.
Solution:   Change "%y" to "%Y".
Files:	    src/undo.c

Patch 7.3.108
Problem:    Useless check for NULL when calling vim_free().
Solution:   Remove the check. (Dominique Pelle)
Files:	    src/eval.c, src/ex_cmds.c, src/os_win32.c

Patch 7.3.109
Problem:    Processing new Esperanto spell file fails and crashes Vim.
	    (Dominique Pelle)
Solution:   When running out of memory give an error.  Handle '?' in
	    COMPOUNDRULE properly.
Files:	    src/spell.c

Patch 7.3.110
Problem:    The "nbsp" item in 'listchars' isn't used for ":list".
Solution:   Make it work. (Christian Brabandt)
Files:	    src/message.c

Patch 7.3.111 (after 7.3.100)
Problem:    Executing a :normal command in 'statusline' evaluation causes the
	    cursor to move. (Dominique Pelle)
Solution:   When updating the cursor for 'cursorbind' allow the cursor beyond
	    the end of the line.  When evaluating 'statusline' temporarily
	    reset 'cursorbind'.
Files:	    src/move.c, src/screen.c

Patch 7.3.112
Problem:    Setting 'statusline' to "%!'asdf%' reads uninitialized memory.
Solution:   Check for NUL after %.
Files:	    src/buffer.c

Patch 7.3.113
Problem:    Windows: Fall back directory for creating temp file is wrong.
Solution:   Use "." instead of empty string. (Hong Xu)
Files:	    src/fileio.c

Patch 7.3.114
Problem:    Potential problem in initialization when giving an error message
	    early.
Solution:   Initialize 'verbosefile' empty. (Ben Schmidt)
Files:	    src/option.h

Patch 7.3.115
Problem:    Vim can crash when tmpnam() returns NULL.
Solution:   Check for NULL. (Hong Xu)
Files:	    src/fileio.c

Patch 7.3.116
Problem:    'cursorline' is displayed too short when there are concealed
	    characters and 'list' is set.  (Dennis Preiser)
Solution:   Check for 'cursorline' when 'list' is set. (Christian Brabandt)
Files:	    src/screen.c

Patch 7.3.117
Problem:    On some systems --as-needed does not work, because the "tinfo"
	    library is included indirectly from "ncurses". (Charles Campbell)
Solution:   In configure prefer using "tinfo" instead of "ncurses".
Files:	    src/configure.in, src/auto/configure

Patch 7.3.118
Problem:    Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica)
Solution:   Ignore SIGVTALARM. (Dominique Pelle)
Files:	    src/os_unix.c

Patch 7.3.119
Problem:    Build problem on Mac. (Nicholas Stallard)
Solution:   Use "extern" instead of "EXTERN" for p_vfile.
Files:	    src/option.h

Patch 7.3.120
Problem:    The message for an existing swap file is too long to fit in a 25
	    line terminal.
Solution:   Make the message shorter. (Chad Miller)
Files:	    src/memline.c

Patch 7.3.121
Problem:    Complicated 'statusline' causes a crash. (Christian Brabandt)
Solution:   Check that the number of items is not too big.
Files:	    src/buffer.c

Patch 7.3.122
Problem:    Having auto/config.mk in the repository causes problems.
Solution:   Remove auto/config.mk from the distribution.  In the toplevel
	    Makefile copy it from the "dist" file.
Files:	    Makefile, src/Makefile, src/auto/config.mk

Patch 7.3.123
Problem:    ml_get error when executing register being recorded into, deleting
	    lines and 'conceallevel' is set. (ZyX)
Solution:   Don't redraw a line for concealing when it doesn't exist.
Files:	    src/main.c

Patch 7.3.124
Problem:    When writing a file in binary mode it may be missing the final EOL
	    if a file previously read was missing the EOL. (Kevin Goodsell)
Solution:   Move the write_no_eol_lnum into the buffer struct.
Files:	    src/structs.h, src/fileio.c, src/globals.h, src/os_unix.c

Patch 7.3.125
Problem:    MSVC: Problem with quotes in link argument.
Solution:   Escape backslashes and quotes. (Weasley)
Files:	    src/Make_mvc.mak

Patch 7.3.126
Problem:    Compiler warning for signed pointer.
Solution:   Use unsigned int argument for sscanf().
Files:	    src/blowfish.c

Patch 7.3.127
Problem:    Compiler complains about comma.
Solution:   Remove comma after last enum element.
Files:	    src/ex_cmds2.c

Patch 7.3.128
Problem:    Another compiler warning for signed pointer.
Solution:   Use unsigned int argument for sscanf().
Files:	    src/mark.c

Patch 7.3.129
Problem:    Using integer like a boolean.
Solution:   Nicer check for integer being non-zero.
Files:	    src/tag.c

Patch 7.3.130
Problem:    Variable misplaced in #ifdef.
Solution:   Move clipboard_event_time outside of #ifdef.
Files:	    src/gui_gtk_x11.c

Patch 7.3.131
Problem:    Including errno.h too often.
Solution:   Don't include errno.h in Unix header file.
Files:	    src/os_unix.h

Patch 7.3.132
Problem:    C++ style comments.
Solution:   Change to C comments.
Files:	    src/if_python3.c

Patch 7.3.133
Problem:    When using encryption it's not clear what method was used.
Solution:   In the file message show "blowfish" when using blowfish.
Files:	    src/fileio.c

Patch 7.3.134
Problem:    Drag-n-drop doesn't work in KDE Dolphin.
Solution:   Add GDK_ACTION_MOVE flag. (Florian Degner)
Files:	    src/gui_gtk_x11.c

Patch 7.3.135
Problem:    When there is no previous substitute pattern, the previous search
	    pattern is used.  The other way around doesn't work.
Solution:   When there is no previous search pattern, use the previous
	    substitute pattern if possible. (Christian Brabandt)
Files:	    src/search.c

Patch 7.3.136
Problem:    Duplicate include of assert.h.
Solution:   Remove it.
Files:	    src/if_cscope.c

Patch 7.3.137 (after 7.3.091)
Problem:    When 'lazyredraw' is set the screen may not be updated. (Ivan
	    Krasilnikov)
Solution:   Call update_screen() before waiting for input.
Files:	    src/misc1.c, src/getchar.c

Patch 7.3.138
Problem:    ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
Solution:   Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
Files:	    src/ex_docmd.c

Patch 7.3.139 (after 7.3.137)
Problem:    When 'lazyredraw' is set ":ver" output can't be read.
Solution:   Don't redraw the screen when at a prompt or command line.
Files:	    src/getchar.c, src/message.c, src/misc1.c

Patch 7.3.140
Problem:    Crash when drawing the "$" at end-of-line for list mode just after
	    the window border and 'cursorline' is set.
Solution:   Don't check for 'cursorline'. (Quentin Carbonneaux)
Files:	    src/screen.c

Patch 7.3.141
Problem:    When a key code is not set get a confusing error message.
Solution:   Change the error message to say the key code is not set.
Files:	    src/option.c, runtime/doc/options.txt

Patch 7.3.142
Problem:    Python stdout doesn't have a flush() method, causing an import to
	    fail.
Solution:   Add a dummy flush() method. (Tobias Columbus)
Files:	    src/if_py_both.h

Patch 7.3.143
Problem:    Memfile is not tested sufficiently.  Looking up blocks in a
	    memfile is slow when there are many blocks.
Solution:   Add high level test and unittest.  Adjust the number of hash
	    buckets to the number of blocks.  (Ivan Krasilnikov)
Files:	    Filelist, src/Makefile, src/main.c, src/memfile.c,
	    src/memfile_test.c src/structs.h src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mak,
	    src/testdir/Makefile, src/testdir/test77.in, src/testdir/test77.ok

Patch 7.3.144
Problem:    Crash with ":python help(dir)". (Kearn Holliday)
Solution:   Fix the way the type is set on objects. (Tobias Columbus)
Files:	    src/if_python.c

Patch 7.3.145 (after 7.3.144)
Problem:    Can't build with Python dynamically loading.
Solution:   Add dll_PyType_Ready.
Files:	    src/if_python.c

Patch 7.3.146
Problem:    It's possible to assign to a read-only member of a dict.
	    It's possible to create a global variable "0". (ZyX)
            It's possible to add a v: variable with ":let v:.name = 1".
Solution:   Add check for dict item being read-only.
	    Check the name of g: variables.
	    Disallow adding v: variables.
Files:	    src/eval.c

Patch 7.3.147 (after 7.3.143)
Problem:    Can't build on HP-UX.
Solution:   Remove an unnecessary backslash. (John Marriott)
Files:	    src/Makefile

Patch 7.3.148
Problem:    A syntax file with a huge number of items or clusters causes weird
	    behavior, a hang or a crash. (Yukihiro Nakadaira)
Solution:   Check running out of IDs. (partly by Ben Schmidt)
Files:	    src/syntax.c

Patch 7.3.149
Problem:    The cursor disappears after the processing of the 'setDot'
	    netbeans command when vim runs in a terminal.
Solution:   Show the cursor after a screen update. (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.3.150
Problem:    readline() does not return the last line when the NL is missing.
	    (Hong Xu)
Solution:   When at the end of the file Also check for a previous line.
Files:	    src/eval.c

Patch 7.3.151 (after 7.3.074)
Problem:    When "unnamedplus" is in 'clipboard' the selection is sometimes
	    also copied to the star register.
Solution:   Avoid copy to the star register when undesired. (James Vega)
Files:	    src/ops.c

Patch 7.3.152
Problem:    Xxd does not check for errors from library functions.
Solution:   Add error checks. (Florian Zumbiehl)
Files:	    src/xxd/xxd.c

Patch 7.3.153 (after 7.3.152)
Problem:    Compiler warning for ambiguous else, missing prototype.
Solution:   Add braces. (Dominique Pelle)  Add prototype for die().
Files:	    src/xxd/xxd.c

Patch 7.3.154 (after 7.3.148)
Problem:    Can't compile with tiny features. (Tony Mechelynck)
Solution:   Move #define outside of #ifdef.
Files:	    src/syntax.c

Patch 7.3.155
Problem:    Crash when using map(), filter() and remove() on v:. (ZyX)
            Also for extend(). (Yukihiro Nakadaira)
Solution:   Mark v: as locked.  Also correct locking error messages.
Files:	    src/eval.c

Patch 7.3.156
Problem:    Tty names possibly left unterminated.
Solution:   Use vim_strncpy() instead of strncpy().
Files:	    src/pty.c

Patch 7.3.157
Problem:    Superfluous assignment.
Solution:   Remove assignment.
Files:	    src/misc1.c

Patch 7.3.158
Problem:    Might use uninitialized memory in C indenting.
Solution:   Init arrays to empty.
Files:	    src/misc1.c

Patch 7.3.159
Problem:    Using uninitialized pointer when out of memory.
Solution:   Check for NULL return value.
Files:	    src/mbyte.c

Patch 7.3.160
Problem:    Unsafe string copying.
Solution:   Use vim_strncpy() instead of strcpy().  Use vim_strcat() instead
	    of strcat().
Files:	    src/buffer.c, src/ex_docmd.c, src/hardcopy.c, src/menu.c,
	    src/misc1.c, src/misc2.c, src/proto/misc2.pro, src/netbeans.c,
	    src/os_unix.c, src/spell.c, src/syntax.c, src/tag.c

Patch 7.3.161
Problem:    Items on the stack may be too big.
Solution:   Make items static or allocate them.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
	    src/fileio.c, src/hardcopy.c, src/quickfix.c, src/main.c,
	    src/netbeans.c, src/spell.c, src/tag.c, src/vim.h, src/xxd/xxd.c

Patch 7.3.162
Problem:    No error message when assigning to a list with an index out of
	    range. (Yukihiro Nakadaira)
Solution:   Add the error message.
Files:	    src/eval.c

Patch 7.3.163
Problem:    For the default of 'shellpipe' "mksh" and "pdksh" are not
	    recognized.
Solution:   Recognize these shell names.
Files:	    src/option.c

Patch 7.3.164
Problem:    C-indenting: a preprocessor statement confuses detection of a
	    function declaration.
Solution:   Ignore preprocessor lines. (Lech Lorens)  Also recognize the style
	    to put a comma before the argument name.
Files:	    src/misc1.c, testdir/test3.in, testdir/test3.ok

Patch 7.3.165
Problem:    ":find" completion does not escape spaces in a directory name.
	    (Isz)
Solution:   Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner)
Files:	    src/ex_getln.c

Patch 7.3.166
Problem:    Buffer on the stack may be too big
Solution:   Allocate the space.
Files:	    src/option.c

Patch 7.3.167
Problem:    When using the internal grep QuickFixCmdPost is not triggered.
	    (Yukihiro Nakadaira)
Solution:   Change the place where autocommands are triggered.
Files:	    src/quickfix.c

Patch 7.3.168
Problem:    When the second argument of input() contains a CR the text up to
	    that is used without asking the user. (Yasuhiro Matsumoto)
Solution:   Change CR, NL and ESC in the text to a space.
Files:	    src/getchar.c

Patch 7.3.169
Problem:    Freeing memory already freed, warning from static code analyzer.
Solution:   Initialize pointers to NULL, correct use of "mustfree". (partly by
	    Dominique Pelle)
Files:	    src/mis1.c

Patch 7.3.170
Problem:    VMS Makefile for testing was not updated for test77.
Solution:   Add test77 to the Makefile.
Files:	    src/testdir/Make_vms.mms

Patch 7.3.171
Problem:    When the clipboard isn't supported: ":yank*" gives a confusing
	    error message.
Solution:   Specifically mention that the register name is invalid.
	    (Jean-Rene David)
Files:	    runtime/doc/change.txt, src/ex_docmd.c, src/globals.h

Patch 7.3.172
Problem:    MS-Windows: rename() might delete the file if the name differs but
	    it's actually the same file.
Solution:   Use the file handle to check if it's the same file. (Yukihiro
	    Nakadaira)
Files:	    src/if_cscope.c, src/fileio.c, src/os_win32.c,
	    src/proto/os_win32.pro, src/vim.h

Patch 7.3.173
Problem:    After using setqflist() to make the quickfix list empty ":cwindow"
	    may open the window anyway.  Also after ":vimgrep".
Solution:   Correctly check whether the list is empty. (Ingo Karkat)
Files:	    src/quickfix.c

Patch 7.3.174
Problem:    When Exuberant ctags binary is exctags it's not found.
Solution:   Add configure check for exctags. (Hong Xu)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.175
Problem:    When 'colorcolumn' is set locally to a window, ":new" opens a
	    window with the same highlighting but 'colorcolumn' is empty.
	    (Tyru)
Solution:   Call check_colorcolumn() after clearing and copying options.
	    (Christian Brabandt)
Files:	    src/buffer.c

Patch 7.3.176
Problem:    Ruby linking doesn't work properly on Mac OS X.
Solution:   Fix the configure check for Ruby. (Bjorn Winckler)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.177
Problem:    MS-Windows: mkdir() doesn't work properly when 'encoding' is
	    "utf-8".
Solution:   Convert to utf-16. (Yukihiro Nakadaira)
Files:	    src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro

Patch 7.3.178
Problem:    C-indent doesn't handle code right after { correctly.
Solution:   Fix detecting unterminated line. (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.179
Problem:    C-indent doesn't handle colon in string correctly.
Solution:   Skip the string. (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.180
Problem:    When both a middle part of 'comments' matches and an end part, the
	    middle part was used erroneously.
Solution:   After finding the middle part match continue looking for a better
	    end part match. (partly by Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.181
Problem:    When repeating the insert of CTRL-V or a digraph the display may
	    not be updated correctly.
Solution:   Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
Files:	    src/edit.c

Patch 7.3.182 (after 7.3.180)
Problem:    Compiler warning for uninitialized variable.
Solution:   Add dummy initializer.
Files:	    src/misc1.c

Patch 7.3.183 (after 7.3.174)
Problem:    When Exuberant ctags binary is exuberant-ctags it's not found.
Solution:   Add configure check for exuberant-ctags.
Files:	    src/configure.in, src/auto/configure

Patch 7.3.184
Problem:    Static code analysis errors in riscOS.
Solution:   Make buffer size bigger. (Dominique Pelle)
Files:	    src/gui_riscos.c

Patch 7.3.185
Problem:    ":windo g/pattern/q" closes windows and reports "N more lines".
	    (Tim Chase)
Solution:   Remember what buffer ":global" started in. (Jean-Rene David)
Files:	    src/ex_cmds.c

Patch 7.3.186
Problem:    When 'clipboard' contains "unnamed" or "unnamedplus" the value of
	    v:register is wrong for operators without a specific register.
Solution:   Adjust the register according to 'clipboard'. (Ingo Karkat)
Files:	    src/normal.c

Patch 7.3.187
Problem:    The RISC OS port has obvious errors and is not being maintained.
Solution:   Remove the RISC OS files and code.
Files:	    src/ascii.h, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/fileio.c, src/globals.h, src/gui.c, src/gui.h,
	    src/main.c, src/memfile.c, src/memline.c, src/misc1.c,
	    src/proto.h, src/quickfix.c, src/search.c, src/structs.h,
	    src/term.c, src/termlib.c, src/version.c, src/vim.h,
	    src/gui_riscos.h, src/os_riscos.h, src/gui_riscos.c,
	    src/os_riscos.c, runtime/doc/os_risc.txt

Patch 7.3.188
Problem:    More RISC OS files to remove.
Solution:   Remove them.  Update the file list.
Files:	    src/proto/gui_riscos.pro, src/proto/os_riscos.pro, Filelist

Patch 7.3.189 (after 7.3.186)
Problem:    Can't build without +clipboard feature. (Christian Ebert)
Solution:   Add the missing #ifdef.
Files:	    src/normal.c

Patch 7.3.190
Problem:    When there is a "containedin" syntax argument highlighting may be
	    wrong. (Radek)
Solution:   Reset current_next_list. (Ben Schmidt)
Files:	    src/syntax.c

Patch 7.3.191
Problem:    Still some RISC OS stuff to remove.
Solution:   Remove files and lines. (Hong Xu)
	    Remove the 'osfiletype' option code.
Files:	    README_extra.txt, src/Make_ro.mak, src/INSTALL, src/Makefile,
	    src/buffer.c, src/eval.c, src/feature.h, src/option.c,
	    src/option.h, src/structs.h, src/version.c, src/pty.c, Filelist

Patch 7.3.192
Problem:    Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
	    (Dominique Pelle)
Solution:   Advance over whole character instead of one byte.
Files:	    src/ex_cmds.c

Patch 7.3.193
Problem:    In the command line window ":close" doesn't work properly. (Tony
	    Mechelynck)
Solution:   Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene
	    David)
Files:	    src/ex_docmd.c, src/ex_getln.c

Patch 7.3.194
Problem:    When "b" is a symlink to directory "a", resolve("b/") doesn't
	    result in "a/".  (ZyX)
Solution:   Remove the trailing slash. (Jean-Rene David)
Files:	    src/eval.c

Patch 7.3.195
Problem:    "} else" causes following lines to be indented too much. (Rouben
	    Rostamian)
Solution:   Better detection for the "else". (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.196
Problem:    Can't intercept a character that is going to be inserted.
Solution:   Add the InsertCharPre autocommand event. (Jakson A. Aquino)
Files:	    runtime/doc/autocmd.txt, runtime/doc/eval.txt,
	    runtime/doc/map.txt, src/edit.c, src/eval.c, src/fileio.c,
	    src/vim.h

Patch 7.3.197
Problem:    When a QuickfixCmdPost event removes all errors, Vim still tries
	    to jump to the first error, resulting in E42.
Solution:   Get the number of error after the autocmd event. (Mike Lundy)
Files:	    src/quickfix.c

Patch 7.3.198
Problem:    No completion for ":lang".
Solution:   Get locales to complete from. (Dominique Pelle)
Files:	    src/eval.c, src/ex_cmds2.c, src/ex_getln.c,
	    src/proto/ex_cmds2.pro, src/proto/ex_getln.pro, src/vim.h

Patch 7.3.199
Problem:    MS-Windows: Compilation problem of OLE with MingW compiler.
Solution:   Put #ifdef around declarations. (Guopeng Wen)
Files:	    src/if_ole.h

Patch 7.3.200 (after 7.3.198)
Problem:    CTRL-D doesn't complete :lang.
Solution:   Add the missing part of the change. (Dominique Pelle)
Files:	    src/ex_docmd.c

Patch 7.3.201 (after 7.3.195)
Problem:    "} else" still causes following lines to be indented too much.
Solution:   Better detection for the "else" block. (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.202
Problem:    Cannot influence the indent inside a namespace.
Solution:   Add the "N" 'cino' parameter. (Konstantin Lepa)
Files:	    runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
	    src/testdir/test3.ok

Patch 7.3.203
Problem:    MS-Windows: Can't run an external command without a console window.
Solution:   Support ":!start /b cmd". (Xaizek)
Files:	    runtime/doc/os_win32.txt, src/os_win32.c

Patch 7.3.204 (after 7.3.201)
Problem:    Compiler warning.
Solution:   Add type cast. (Mike Williams)
Files:	    src/misc1.c

Patch 7.3.205
Problem:    Syntax "extend" doesn't work correctly.
Solution:   Avoid calling check_state_ends() recursively (Ben Schmidt)
Files:	    src/syntax.c

Patch 7.3.206
Problem:    64bit MS-Windows compiler warning.
Solution:   Use HandleToLong() instead of type cast. (Mike Williams)
Files:	    src/gui_w32.c

Patch 7.3.207
Problem:    Can't compile with MSVC with pentium4 and 64 bit.
Solution:   Only use SSE2 for 32 bit. (Mike Williams)
Files:	    src/Make_mvc.mak

Patch 7.3.208
Problem:    Early terminated if statement.
Solution:   Remove the semicolon. (Lech Lorens)
Files:	    src/gui_mac.c

Patch 7.3.209
Problem:    MSVC Install instructions point to wrong batch file.
Solution:   Add a batch file for use with MSVC 10.
Files:	    src/msvc2010.bat, src/INSTALLpc.txt, Filelist

Patch 7.3.210
Problem:    Can't always find the file when using cscope.
Solution:   Add the 'cscoperelative' option. (Raghavendra D Prabhu)
Files:	    runtime/doc/if_cscop.txt, runtime/doc/options.txt,
	    src/if_cscope.c

Patch 7.3.211 (after 7.3.210)
Problem:    Compiler warning.
Solution:   Add type cast.
Files:	    src/if_cscope.c

Patch 7.3.212
Problem:    With Python 3.2 ":py3" fails.
Solution:   Move PyEval_InitThreads() to after Py_Initialize(). (Roland
	    Puntaier)  Check abiflags in configure. (Andreas Behr)
Files:	    src/if_python3.c, src/auto/configure, src/configure.in

Patch 7.3.213
Problem:    Javascript object literal is not indented correctly.
Solution:   Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.214
Problem:    The text displayed by ":z-" isn't exactly like old Vi.
Solution:   Add one to the start line number. (ChangZhuo Chen)
Files:	    src/ex_cmds.c

Patch 7.3.215 (after 7.3.210)
Problem:    Wrong file names in previous patch. (Toothpik)
Solution:   Include the option changes.
Files:	    src/option.c, src/option.h

Patch 7.3.216
Problem:    When recovering a file a range of lines is missing. (Charles Jie)
Solution:   Reset the index when advancing to the next pointer block.  Add a
	    test to verify recovery works.
Files:	    src/memline.c, src/testdir/test78.in, src/testdir/test78.ok,
	    src/testdir/Makefile, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.3.217
Problem:    Inside an "if" a ":wincmd" causes problems.
Solution:   When skipping commands let ":wincmd" skip over its argument.
Files:	    src/ex_docmd.c

Patch 7.3.218 (after 7.3.212)
Problem:    Tiny configuration problem with Python 3.
Solution:   Add abiflags in one more place. (Andreas Behr)
Files:	    src/auto/configure, src/configure.in

Patch 7.3.219
Problem:    Can't compile with GTK on Mac.
Solution:   Add some #ifdef trickery. (Ben Schmidt)
Files:	    src/os_mac_conv.c, src/os_macosx.m, src/vim.h

Patch 7.3.220
Problem:    Python 3: vim.error is a 'str' instead of an 'Exception' object,
	    so 'except' or 'raise' it causes a 'SystemError' exception.
	    Buffer objects do not support slice assignment.
	    When exchanging text between Vim and Python, multibyte texts become
	    garbage or cause Unicode Exceptions, etc.
	    'py3file' tries to read in the file as Unicode, sometimes causes
	    UnicodeDecodeException
Solution:   Fix the problems. (lilydjwg)
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.3.221
Problem:    Text from the clipboard is sometimes handled as linewise, but not
	    consistently.
Solution:   Assume the text is linewise when it ends in a CR or NL.
Files:	    src/gui_gtk_x11.c, src/gui_mac.c, src/ops.c, src/os_msdos.c,
	    src/os_mswin.c, src/os_qnx.c, src/ui.c

Patch 7.3.222
Problem:    Warning for building GvimExt.
Solution:   Comment-out the DESCRIPTION line. (Mike Williams)
Files:	    src/GvimExt/gvimext.def, src/GvimExt/gvimext_ming.def

Patch 7.3.223
Problem:    MingW cross compilation doesn't work with tiny features.
Solution:   Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
	    "#ifdef CLIPBOARD".  Fix typo in makefile.
Files:	    src/Make_ming.mak, src/os_mswin.c

Patch 7.3.224
Problem:    Can't pass dict to sort function.
Solution:   Add the optional {dict} argument to sort(). (ZyX)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.3.225
Problem:    Using "\n" in a substitute inside ":s" does not result in a line
	    break.
Solution:   Change behavior inside vim_regexec_nl().   Add tests.  (Motoya
	    Kurotsu)
Files:	    src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok,
	    src/testdir/test80.in, src/testdir/test80.ok,
	    src/testdir/Makefile, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.3.226
Problem:    On a 64 bit system "syn sync fromstart" is very slow.  (Bjorn
	    Steinbrink)
Solution:   Store the state when starting to parse from the first line.
Files:	    src/syntax.c

Patch 7.3.227 (after 7.3.221)
Problem:    Mac OS doesn't have the linewise clipboard fix.
Solution:   Also change the Mac OS file. (Bjorn Winckler)
Files:	    src/os_macosx.m

Patch 7.3.228
Problem:    "2gj" does not always move to the correct position.
Solution:   Get length of line after moving to a next line. (James Vega)
Files:	    src/normal.c

Patch 7.3.229
Problem:    Using fork() makes gvim crash on Mac when build with
	    CoreFoundation.
Solution:   Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka)
Files:	    src/gui.c

Patch 7.3.230
Problem:    ":wundo" and ":rundo" don't unescape their argument.  (Aaron
	    Thoma)
Solution:   Use FILE1 instead of XFILE.
Files:	    src/ex_cmds.h

Patch 7.3.231
Problem:    Runtime file patches failed.
Solution:   Redo the patches made against the patched files instead of the
	    files in the mercurial repository.
Files:	    runtime/doc/indent.txt, runtime/doc/os_win32.txt

Patch 7.3.232
Problem:    Python doesn't compile without +multi_byte
Solution:   Use "latin1" when MULTI_BYTE is not defined.
Files:	    src/if_py_both.h

Patch 7.3.233
Problem:    ":scriptnames" and ":breaklist" show long file names.
Solution:   Shorten to use "~/" when possible. (Jean-Rene David)
Files:	    src/ex_cmds2.c

Patch 7.3.234
Problem:    With GTK menu may be popping down.
Solution:   Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
Files:	    src/gui.c, src/gui.h, src/gui_gtk.c, src/gui_gtk_x11.c

Patch 7.3.235
Problem:    ";" gets stuck on a "t" command, it's not useful.
Solution:   Add the ';' flag in 'cpo'. (Christian Brabandt)
Files:	    runtime/doc/motion.txt, runtime/doc/options.txt, src/option.h,
	    src/search.c src/testdir/test81.in, src/testdir/test81.ok,
	    src/testdir/Makefile, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.3.236 (after 7.3.232)
Problem:    Python 3 doesn't compile without +multi_byte
Solution:   Use "latin1" when MULTI_BYTE is not defined. (lilydjwg)
Files:	    src/if_python3.c

Patch 7.3.237
Problem:    "filetype" completion doesn't work on Windows. (Yue Wu)
Solution:   Don't use a glob pattern for the directories, use a list of
	    directories. (Dominique Pelle)
Files:	    src/ex_getln.c

Patch 7.3.238
Problem:    Compiler warning for conversion.
Solution:   Add type cast. (Mike Williams)
Files:	    src/ex_getln.c

Patch 7.3.239
Problem:    Python corrects the cursor column without taking 'virtualedit'
	    into account. (lilydjwg)
Solution:   Call check_cursor_col_win().
Files:	    src/if_py_both.h, src/mbyte.c, src/misc2.c, src/normal.c,
	    src/proto/mbyte.pro, src/proto/misc2.pro

Patch 7.3.240
Problem:    External commands can't use pipes on MS-Windows.
Solution:   Implement pipes and use them when 'shelltemp' isn't set. (Vincent
	    Berthoux)
Files:	    src/eval.c, src/ex_cmds.c, src/misc2.c, src/os_unix.c,
	    src/os_win32.c, src/proto/misc2.pro, src/ui.c

Patch 7.3.241
Problem:    Using CTRL-R CTRL-W on the command line may insert only part of
	    the word.
Solution:   Use the cursor position instead of assuming it is at the end of
	    the command. (Tyru)
Files:	    src/ex_getln.c

Patch 7.3.242
Problem:    Illegal memory access in after_pathsep().
Solution:   Check that the pointer is not at the start of the file name.
	    (Dominique Pelle)
Files:	    src/misc2.c

Patch 7.3.243
Problem:    Illegal memory access in readline().
Solution:   Swap the conditions. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.3.244
Problem:    MS-Windows: Build problem with old compiler. (John Beckett)
Solution:   Only use HandleToLong() when available. (Mike Williams)
Files:	    src/gui_w32.c

Patch 7.3.245
Problem:    Python 3.2 libraries not correctly detected.
Solution:   Add the suffix to the library name. (Niclas Zeising)
Files:	    src/auto/configure, src/configure.in

Patch 7.3.246 (after 7.3.235)
Problem:    Repeating "f4" in "4444" skips one 4.
Solution:   Check the t_cmd flag. (Christian Brabandt)
Files:	    src/search.c

Patch 7.3.247
Problem:    Running tests changes the users viminfo file.  Test for patch
	    7.3.246 missing.
Solution:   Add "nviminfo" to the 'viminfo' option.  Include the test.
Files:	    src/testdir/test78.in, src/testdir/test81.in

Patch 7.3.248
Problem:    PC Install instructions missing install instructions.
Solution:   Step-by-step explanation. (Michael Soyka)
Files:	    src/INSTALLpc.txt

Patch 7.3.249
Problem:    Wrong indenting for array initializer.
Solution:   Detect '}' in a better way. (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.250
Problem:    Python: Errors in Unicode characters not handled nicely.
Solution:   Add the surrogateescape error handler. (lilydjwg)
Files:	    src/if_python3.c

Patch 7.3.251
Problem:    "gH<Del>" deletes the current line, except when it's the last
	    line.
Solution:   Set the "include" flag to indicate the last line is to be deleted.
Files:	    src/normal.c, src/ops.c

Patch 7.3.252 (after 7.3.247)
Problem:    Tests fail. (David Northfield)
Solution:   Add missing update for .ok file.
Files:	    src/testdir/test81.ok

Patch 7.3.253
Problem:    "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
	    Checks in mb_strnicmp() for illegal and truncated bytes are
	    wrong.  Should not assume that byte length is equal before case
	    folding.
Solution:   Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for
	    this. (Ivan Krasilnikov)
Files:	    src/mbyte.c src/testdir/test82.in, src/testdir/test82.ok,
	    src/testdir/Makefile, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.3.254
Problem:    The coladd field is not reset when setting the line number for a
	    ":call" command.
Solution:   Reset it.
Files:	    src/eval.c

Patch 7.3.255
Problem:    When editing a file such as "File[2010-08-15].vim" an E16 error is
	    given. (Manuel Stol)
Solution:   Don't give an error for failing to compile the regexp.
Files:	    src/ex_docmd.c, src/misc1.c, src/vim.h

Patch 7.3.256
Problem:    Javascript indenting not sufficiently tested.
Solution:   Add more tests. (Luc Deschenaux)  Mark the lines that are indented
	    wrong.
Files:	    src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.257
Problem:    Not all completions are available to user commands.
Solution:   Add "color", "compiler", "file_in_path" and "locale". (Dominique
	    Pelle)
Files:	    src/ex_docmd.c, runtime/doc/map.txt

Patch 7.3.258
Problem:    MS-Windows: The edit with existing vim context menu entries can be
	    unwanted.
Solution:   Let a registry entry disable them. (Jerome Vuarand)
Files:	    src/GvimExt/gvimext.cpp

Patch 7.3.259
Problem:    Equivalence classes only work for latin characters.
Solution:   Add the Unicode equivalence characters. (Dominique Pelle)
Files:	    runtime/doc/pattern.txt, src/regexp.c, src/testdir/test44.in,
	    src/testdir/test44.ok

Patch 7.3.260
Problem:    CursorHold triggers on an incomplete mapping. (Will Gray)
Solution:   Don't trigger CursorHold when there is typeahead.
Files:	    src/fileio.c

Patch 7.3.261
Problem:    G++ error message erroneously recognized as error.
Solution:   Ignore "In file included from" line also when it ends in a colon.
	    (Fernando Castillo)
Files:	    src/option.h

Patch 7.3.262
Problem:    Photon code style doesn't match Vim style.
Solution:   Clean up some of it.  (Elias Diem)
Files:	    src/gui_photon.c

Patch 7.3.263
Problem:    Perl and Tcl have a few code style problems.
Solution:   Clean it up.  (Elias Diem)
Files:	    src/if_perl.xs, src/if_tcl.c

Patch 7.3.264
Problem:    When the current directory name contains wildcard characters, such
	    as "foo[with]bar", the tags file can't be found.  (Jeremy
	    Erickson)
Solution:   When searching for matching files also match without expanding
	    wildcards.  This is a bit of a hack.
Files:	    src/vim.h, src/misc1.c, src/misc2.c

Patch 7.3.265
Problem:    When storing a pattern in search history there is no proper check
	    for the separator character.
Solution:   Pass the separator character to in_history(). (Taro Muraoka)
Files:	    src/ex_getln.c

Patch 7.3.266
Problem:    In gvim with iBus typing space in Insert mode doesn't work.
Solution:   Clear xim_expected_char after checking it.
Files:	    src/mbyte.c

Patch 7.3.267
Problem:    Ruby on Mac OS X 10.7 may crash.
Solution:   Avoid alloc(0). (Bjorn Winckler)
Files:	    src/if_ruby.c

Patch 7.3.268
Problem:    Vim freezes when executing an external command with zsh.
Solution:   Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
Files:	    src/os_unix.c

Patch 7.3.269
Problem:    'shellcmdflag' only works with one flag.
Solution:   Split into multiple arguments. (Gary Johnson)
Files:	    src/os_unix.c

Patch 7.3.270
Problem:    Illegal memory access.
Solution:   Swap conditions. (Dominique Pelle)
Files:	    src/ops.c

Patch 7.3.271
Problem:    Code not following Vim coding style.
Solution:   Fix the style. (Elias Diem)
Files:	    src/gui_photon.c

Patch 7.3.272
Problem:    ":put =list" does not add an empty line for a trailing empty
	    item.
Solution:   Add a trailing NL when turning a list into a string.
Files:	    src/eval.c

Patch 7.3.273
Problem:    A BOM in an error file is seen as text. (Aleksey Baibarin)
Solution:   Remove the BOM from the text before evaluating. (idea by Christian
	    Brabandt)
Files:	    src/quickfix.c, src/mbyte.c, src/proto/mbyte.pro,
	    src/testdir/test10.in

Patch 7.3.274
Problem:    With concealed characters tabs do not have the right size.
Solution:   Use VCOL_HLC instead of vcol. (Eiichi Sato)
Files:	    src/screen.c

Patch 7.3.275
Problem:    MS-Windows: When using a black background some screen updates
	    cause the window to flicker.
Solution:   Add WS_CLIPCHILDREN to CreateWindow().  (René Aguirre)
Files:	    src/gui_w32.c

Patch 7.3.276
Problem:    GvimExt sets $LANG in the wrong way.
Solution:   Save the environment and use it for gvim. (Yasuhiro Matsumoto)
Files:	    src/GvimExt/gvimext.cpp

Patch 7.3.277
Problem:    MS-Windows: some characters do not show in dialogs.
Solution:   Use the wide methods when available. (Yanwei Jia)
Files:	    src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c,
	    src/os_win32.h

Patch 7.3.278
Problem:    Passing the file name to open in VisVim doesn't work.
Solution:   Adjust the index and check for end of buffer. (Jiri Sedlak)
Files:	    src/VisVim/Commands.cpp

Patch 7.3.279
Problem:    With GTK, when gvim is full-screen and a tab is opened and using a
	    specific monitor configuration the window is too big.
Solution:   Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
Files:	    src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro

Patch 7.3.280
Problem:    ":lmake" does not update the quickfix window title.
Solution:   Update the title. (Lech Lorens)
Files:	    src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok

Patch 7.3.281
Problem:    After using "expand('%:8')" the buffer name is changed.
Solution:   Make a copy of the file name before shortening it.
Files:	    src/eval.c

Patch 7.3.282
Problem:    When using input() and :echo in a loop the displayed text is
	    incorrect. (Benjamin Fritz)
Solution:   Only restore the cursor position when there is a command line.
	    (Ben Schmidt)
Files:	    src/ex_getln.c

Patch 7.3.283
Problem:    An expression mapping with a multi-byte character containing a
	    0x80 byte gets messed up. (ZyX)
Solution:   Unescape the expression before evaluating it (Yukihiro Nakadaira)
Files:	    src/getchar.c

Patch 7.3.284
Problem:    The str2special() function doesn't handle multi-byte characters
	    properly.
Solution:   Recognize multi-byte characters. (partly by Vladimir Vichniakov)
Files:	    src/getchar.c, src/message.c, src/misc2.c

Patch 7.3.285 (after 7.3.284)
Problem:    Mapping <Char-123> no longer works.
Solution:   Properly check for "char-".  Add a test for it.
Files:	    src/misc2.c, src/testdir/test75.in, src/testdir/test75.ok

Patch 7.3.286
Problem:    Crash when using "zd" on a large number of folds. (Sam King)
Solution:   Recompute pointer after reallocating array.  Move fewer entries
	    when making room.
Files:	    src/fold.c

Patch 7.3.287
Problem:    Can't compile with MSVC and tiny options.
Solution:   Move variables and #ifdefs. (Sergey Khorev)
Files:	    src/os_win32.c

Patch 7.3.288
Problem:    has('python') may give an error message for not being able to load
	    the library after using python3.
Solution:   Only give the error when the verbose argument is true.
Files:	    src/if_python.c, src/if_python3.c

Patch 7.3.289
Problem:    Complete function isn't called when the leader changed.
Solution:   Call ins_compl_restart() when the leader changed.  (Taro Muraoka)
Files:	    src/edit.c

Patch 7.3.290
Problem:    When a BufWriteCmd autocommand resets 'modified' this doesn't
	    change older buffer states to be marked as 'modified' like
	    ":write" does.  (Yukihiro Nakadaira)
Solution:   When the BufWriteCmd resets 'modified' then adjust the undo
	    information like ":write" does.
Files:	    src/fileio.c

Patch 7.3.291
Problem:    Configure doesn't work properly with Python3.
Solution:   Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
	    Puntaier)
Files:	    src/config.h.in, src/auto/configure, src/configure.in

Patch 7.3.292
Problem:    Crash when using fold markers and selecting a visual block that
	    includes a folded line and goes to end of line. (Sam Lidder)
Solution:   Check for the column to be MAXCOL. (James Vega)
Files:	    src/screen.c

Patch 7.3.293
Problem:    MSVC compiler has a problem with non-ASCII characters.
Solution:   Avoid non-ASCII characters. (Hong Xu)
Files:	    src/ascii.h, src/spell.c

Patch 7.3.294 (after 7.3.289)
Problem:    Patch 289 causes more problems than it solves.
Solution:   Revert the patch until a better solution is found.
Files:	    src/edit.c

Patch 7.3.295
Problem:    When filtering text with an external command Vim may not read all
	    the output.
Solution:   When select() is interrupted loop and try again. (James Vega)
Files:	    src/os_unix.c

Patch 7.3.296
Problem:    When writing to an external command a zombie process may be left
	    behind.
Solution:   Wait on the process. (James Vega)
Files:	    src/os_unix.c

Patch 7.3.297
Problem:    Can't load Perl 5.14 dynamically.
Solution:   Add code in #ifdefs. (Charles Cooper)
Files:	    if_perl.xs

Patch 7.3.298
Problem:    Built-in colors are different from rgb.txt.
Solution:   Adjust the color values. (Benjamin Haskell)
Files:	    src/gui_photon.c, src/gui_w48.c

Patch 7.3.299
Problem:    Source code not in Vim style.
Solution:   Adjust the style. (Elias Diem)
Files:	    src/gui_photon.c

Patch 7.3.300
Problem:    Python doesn't parse multi-byte argument correctly.
Solution:   Use "t" instead of "s". (lilydjwg)
Files:	    src/if_py_both.h

Patch 7.3.301
Problem:    When 'smartindent' and 'copyindent' are set a Tab is used even
	    though 'expandtab' is set.
Solution:   Do not insert Tabs. Add a test. (Christian Brabandt)
Files:	    src/misc1.c, src/testdir/test19.in, src/testdir/test19.ok

Patch 7.3.302 (after 7.3.301)
Problem:    Test 19 fails without 'smartindent' and +eval.
Solution:   Don't use ":exe". Source small.vim.
Files:	    src/testdir/test19.in

Patch 7.3.303 (after 7.3.296)
Problem:    Compilation error.
Solution:   Correct return type from int to pid_t. (Danek Duvall)
Files:	    src/os_unix.c

Patch 7.3.304
Problem:    Strawberry Perl doesn't work on MS-Windows.
Solution:   Use xsubpp if needed. (Yasuhiro Matsumoto)
Files:	    src/Make_ming.mak, src/Make_mvc.mak

Patch 7.3.305
Problem:    Auto-loading a function while editing the command line causes
	    scrolling up the display.
Solution:   Don't set msg_scroll when defining a function and the user is not
	    typing. (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.3.306
Problem:    When closing a window there is a chance that deleting a scrollbar
	    triggers a GUI resize, which uses the window while it is not in a
	    valid state.
Solution:   Set the buffer pointer to NULL to be able to detect the invalid
	    situation.  Fix a few places that used the buffer pointer
	    incorrectly.
Files:	    src/buffer.c, src/ex_cmds.c, src/term.c, src/window.c

Patch 7.3.307
Problem:    Python 3 doesn't support slice assignment.
Solution:   Implement slices. (Brett Overesch, Roland Puntaier)
Files:	    src/if_python3.c

Patch 7.3.308
Problem:    Writing to 'verbosefile' has problems, e.g. for :highlight.
Solution:   Do not use a separate verbose_write() function but write with the
	    same code that does redirecting. (Yasuhiro Matsumoto)
Files:	    src/message.c

Patch 7.3.309 (after 7.3.307)
Problem:    Warnings for pointer types.
Solution:   Change PySliceObject to PyObject.
Files:	    src/if_python3.c

Patch 7.3.310
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
Files:	    src/gui_photon.c

Patch 7.3.311 (replaces 7.3.289)
Problem:    Complete function isn't called when the leader changed.
Solution:   Allow the complete function to return a dictionary with a flag
	    that indicates ins_compl_restart() is to be called when the leader
	    changes. (Taro Muraoka)
Files:	    runtime/insert.txt, src/edit.c, src/eval.c, src/proto/eval.pro

Patch 7.3.312 (after 7.3.306)
Problem:    Can't compile with tiny features.
Solution:   Add #ifdef around win_valid().
Files:	    src/buffer.c

Patch 7.3.313 (after 7.3.307)
Problem:    One more warning when compiling with dynamic Python 3.
Solution:   Change PySliceObject to PyObject.
Files:	    src/if_python3.c

Patch 7.3.314 (after 7.3.304)
Problem:    Missing parenthesis.
Solution:   Add it. (Benjamin R. Haskell)
Files:	    src/Make_mvc.mak

Patch 7.3.315
Problem:    Opening a window before forking causes problems for GTK.
Solution:   Fork first, create the window in the child and report back to the
	    parent process whether it worked.  If successful the parent exits,
	    if unsuccessful the child exits and the parent continues in the
	    terminal. (Tim Starling)
Files:	    src/gui.c

Patch 7.3.316 (after 7.3.306)
Problem:    Crash when 'colorcolumn' is set and closing buffer.
Solution:   Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
Files:	    src/option.c

Patch 7.3.317
Problem:    Calling debug.debug() in Lua may cause Vim to hang.
Solution:   Add a better debug method. (Rob Hoelz, Luis Carvalho)
Files:	    src/if_lua.c

Patch 7.3.318
Problem:    "C" on the last line deletes that line if it's blank.
Solution:   Only delete the last line for a delete operation. (James Vega)
Files:	    src/ops.c

Patch 7.3.319 (after 7.3.311)
Problem:    Redobuff doesn't always include changes of the completion leader.
Solution:   Insert backspaces as needed. (idea by Taro Muraoka)
Files:	    src/edit.c

Patch 7.3.320
Problem:    When a 0xa0 character is in a sourced file the error message for
	    unrecognized command does not show the problem.
Solution:   Display 0xa0 as <a0>.
Files:	    src/ex_docmd.c

Patch 7.3.321
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
Files:	    src/os_qnx.c

Patch 7.3.322
Problem:    #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
Solution:   Check the MSC version and 64 bit flags. (Sergiu Dotenco)
Files:	    src/os_mswin.c

Patch 7.3.323
Problem:    The default 'errorformat' does not ignore some "included from"
	    lines.
Solution:   Add a few more patterns. (Ben Boeckel)
Files:	    src/option.h

Patch 7.3.324 (after 7.3.237)
Problem:    Completion for ":compiler" shows color scheme names.
Solution:   Fix the directory name. (James Vega)
Files:	    src/ex_getln.c

Patch 7.3.325
Problem:    A duplicated function argument gives an internal error.
Solution:   Give a proper error message. (based on patch by Tyru)
Files:	    src/eval.c

Patch 7.3.326
Problem:    MingW 4.6 no longer supports the -mno-cygwin option.
Solution:   Split the Cygwin and MingW makefiles. (Matsushita Shougo)
Files:	    src/GvimExt/Make_cyg.mak, src/GvimExt/Make_ming.mak,
	    src/Make_cyg.mak, src/Make_ming.mak, src/xxd/Make_ming.mak,
	    Filelist

Patch 7.3.327
Problem:    When jumping to a help tag a closed fold doesn't open.
Solution:   Save and restore KeyTyped. (Yasuhiro Matsumoto)
Files:	    src/ex_cmds.c

Patch 7.3.328
Problem:    When command line wraps the cursor may be displayed wrong when
	    there are multi-byte characters.
Solution:   Position the cursor before drawing the text. (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c

Patch 7.3.329
Problem:    When skipping over code from ":for" to ":endfor" get an error for
	    calling a dict function. (Yasuhiro Matsumoto)
Solution:   Ignore errors when skipping over :call command.
Files:	    src/ex_docmd.c, src/eval.c

Patch 7.3.330
Problem:    When longjmp() is invoked if the X server gives an error the state
	    is not properly restored.
Solution:   Reset vgetc_busy. (Yukihiro Nakadaira)
Files:	    src/main.c

Patch 7.3.331
Problem:    "vit" selects wrong text when a tag name starts with the same text
	    as an outer tag name. (Ben Fritz)
Solution:   Add "\>" to the pattern to check for word boundary.
Files:	    src/search.c

Patch 7.3.332 (after 7.3.202)
Problem:    Indent after "public:" is not increased in C++ code. (Lech Lorens)
Solution:   Check for namespace after the regular checks. (partly by Martin
	    Gieseking)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.333
Problem:    Using "." to repeat a Visual delete counts the size in bytes, not
	    characters.  (Connor Lane Smith)
Solution:   Store the virtual column numbers instead of byte positions.
Files:	    src/normal.c

Patch 7.3.334
Problem:    Latest MingW about XSUBPP referencing itself. (Gongqian Li)
Solution:   Rename the first use to XSUBPPTRY.
Files:	    src/Make_ming.mak

Patch 7.3.335
Problem:    When 'imdisable' is reset from an autocommand in Insert mode it
	    doesn't take effect.
Solution:   Call im_set_active() in Insert mode. (Taro Muraoka)
Files:	    src/option.c

Patch 7.3.336
Problem:    When a tags file specifies an encoding different from 'enc' it
	    may hang and using a pattern doesn't work.
Solution:   Convert the whole line.  Continue reading the header after the
	    SORT tag.  Add test83. (Yukihiro Nakadaira)
Files:	    src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test83-tags2, src/testdir/test83-tags3,
	    src/testdir/test83.in, src/testdir/test83.ok

Patch 7.3.337 (after 7.3.295)
Problem:    Screen doesn't update after resizing the xterm until a character
	    is typed.
Solution:   When the select call is interrupted check do_resize. (Taylor
	    Hedberg)
Files:	    src/os_unix.c

Patch 7.3.338
Problem:    Using getchar() in an expression mapping doesn't work well.
Solution:   Don't save and restore the typeahead. (James Vega)
Files:	    src/getchar.c, src/testdir/test34.ok

Patch 7.3.339
Problem:    "make shadow" doesn't link all test files.
Solution:   Add a line in Makefile and Filelist.
Files:	    src/Makefile, Filelist

Patch 7.3.340
Problem:    When 'verbosefile' is set ftplugof.vim can give an error.
Solution:   Only remove filetypeplugin autocommands when they exist. (Yasuhiro
	    Matsumoto)
Files:	    runtime/ftplugof.vim

Patch 7.3.341
Problem:    Local help files are only listed in help.txt, not in translated
	    help files.
Solution:   Also find translated help files. (Yasuhiro Matsumoto)
Files:	    src/ex_cmds.c

Patch 7.3.342
Problem:    Code not in Vim style.
Solution:   Fix the style. (Elias Diem)
Files:	    src/os_amiga.c, src/os_mac_conv.c, src/os_win16.c

Patch 7.3.343
Problem:    No mouse support for urxvt.
Solution:   Implement urxvt mouse support, also for > 252 columns.  (Yiding
	    Jia)
Files:	    src/feature.h, src/keymap.h, src/option.h, src/os_unix.c,
	    src/term.c, src/version.c

Patch 7.3.344
Problem:    Problem with GUI startup related to XInitThreads.
Solution:   Use read() and write() instead of fputs() and fread(). (James
	    Vega)
Files:	    src/gui.c

Patch 7.3.345
Problem:    When switching language with ":lang" the window title doesn't
	    change until later.
Solution:   Update the window title right away. (Dominique Pelle)
Files:	    src/ex_cmds2.c

Patch 7.3.346
Problem:    It's hard to test netbeans commands.
Solution:   Process netbeans commands after :sleep. (Xavier de Gaye)
Files:	    runtime/doc/netbeans.txt, src/ex_docmd.c, src/netbeans.c

Patch 7.3.347
Problem:    When dropping text from a browser on Vim it receives HTML even
	    though "html" is excluded from 'clipboard'. (Andrei Avk)
Solution:   Fix the condition for TARGET_HTML.
Files:	    src/gui_gtk_x11.c

Patch 7.3.348
Problem:    "call range(1, 947948399)" causes a crash. (ZyX)
Solution:   Avoid a loop in the out of memory message.
Files:	    src/misc2.c

Patch 7.3.349
Problem:    When running out of memory during startup trying to open a
	    swapfile will loop forever.
Solution:   Let findswapname() set dirp to NULL if out of memory.
Files:	    src/memline.c

Patch 7.3.350
Problem:    Block of code after ":lua << EOF" may not work. (Paul Isambert)
Solution:   Recognize the ":lua" command, skip to EOF.
Files:	    src/eval.c

Patch 7.3.351
Problem:    Text formatting uses start of insert position when it should not.
	    (Peter Wagenaar)
Solution:   Do not use Insstart when intentionally formatting.
Files:	    src/edit.c

Patch 7.3.352
Problem:    When completing methods dict functions and script-local functions
	    get in the way.
Solution:   Sort function names starting with "<" to the end. (Yasuhiro
	    Matsumoto)
Files:	    src/ex_getln.c

Patch 7.3.353 (after 7.3.343)
Problem:    Missing part of the urxvt patch.
Solution:   Add the change in term.c
Files:	    src/term.c

Patch 7.3.354
Problem:    ":set backspace+=eol" doesn't work when 'backspace' has a
	    backwards compatible value of 2.
Solution:   Convert the number to a string. (Hirohito Higashi)
Files:	    src/option.c

Patch 7.3.355
Problem:    GTK warnings when using netrw.vim. (Ivan Krasilnikov)
Solution:   Do not remove the beval event handler twice.
Files:	    src/option.c

Patch 7.3.356
Problem:    Using "o" with 'cindent' set may freeze Vim. (lolilolicon)
Solution:   Skip over {} correctly. (Hari G)
Files:	    src/misc1.c

Patch 7.3.357
Problem:    Compiler warning in MS-Windows console build.
Solution:   Adjust return type of PrintHookProc(). (Mike Williams)
Files:	    src/os_mswin.c

Patch 7.3.358 (after 7.3.353)
Problem:    Mouse support doesn't work properly.
Solution:   Add HMT_URXVT. (lilydjwg, James McCoy)
Files:	    src/term.c

Patch 7.3.359
Problem:    Command line completion shows dict functions.
Solution:   Skip dict functions for completion. (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.3.360
Problem:    Interrupting the load of an autoload function may cause a crash.
Solution:   Do not use the hashitem when not valid. (Yukihiro Nakadaira)
Files:	    src/eval.c

Patch 7.3.361
Problem:    Accessing memory after it is freed when EXITFREE is defined.
Solution:   Don't access curwin when firstwin is NULL. (Dominique Pelle)
Files:	    src/buffer.c

Patch 7.3.362
Problem:    ml_get error when using ":g" with folded lines.
Solution:   Adjust the line number for changed_lines(). (Christian Brabandt)
Files:	    src/ex_cmds.c

Patch 7.3.363
Problem:    C indenting is wrong after #endif followed by a semicolon.
Solution:   Add special handling for a semicolon in a line by itself. (Lech
	    Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.364 (after 7.3.353)
Problem:    Can't compile on HP-UX. (John Marriott)
Solution:   Only use TTYM_URXVT when it is defined.
Files:	    src/term.c

Patch 7.3.365
Problem:    Crash when using a large Unicode character in a file that has
	    syntax highlighting. (ngollan)
Solution:   Check for going past the end of the utf tables. (Dominique Pelle)
Files:	    src/mbyte.c

Patch 7.3.366
Problem:    A tags file with an extremely long name causes errors.
Solution:   Ignore tags that are too long. (Arno Renevier)
Files:	    src/tag.c

Patch 7.3.367
Problem:    :wundo and :rundo use a wrong checksum.
Solution:   Include the last line when computing the hash. (Christian Brabandt)
Files:	    src/undo.c

Patch 7.3.368
Problem:    Gcc complains about redefining _FORTIFY_SOURCE.
Solution:   Undefine it before redefining it.
Files:	    src/Makefile, src/configure.in, src/auto/configure

Patch 7.3.369
Problem:    When compiled with Gnome get an error message when using --help.
Solution:   Don't fork. (Ivan Krasilnikov)
Files:	    src/main.c

Patch 7.3.370
Problem:    Compiler warns for unused variable in Lua interface.
Solution:   Remove the variable.
Files:	    src/if_lua.c

Patch 7.3.371
Problem:    Crash in autocomplete. (Greg Weber)
Solution:   Check not going over allocated buffer size.
Files:	    src/misc2.c

Patch 7.3.372
Problem:    When using a command line mapping to <Up> with file name
	    completion to go one directory up, 'wildchar' is inserted.
	    (Yasuhiro Matsumoto)
Solution:   Set the KeyTyped flag.
Files:	    src/ex_getln.c

Patch 7.3.373 (after 7.3.366)
Problem:    A tags file with an extremely long name may cause an infinite loop.
Solution:   When encountering a long name switch to linear search.
Files:	    src/tag.c

Patch 7.3.374
Problem:    ++encoding does not work properly.
Solution:   Recognize ++encoding before ++enc. (Charles Cooper)
Files:	    src/ex_docmd.c

Patch 7.3.375
Problem:    Duplicate return statement.
Solution:   Remove the superfluous one. (Dominique Pelle)
Files:	    src/gui_mac.c

Patch 7.3.376
Problem:    Win32: Toolbar repainting does not work when the mouse pointer
	    hovers over a button.
Solution:   Call DefWindowProc() when not handling an event. (Sergiu Dotenco)
Files:	    src/gui_w32.c

Patch 7.3.377
Problem:    No support for bitwise AND, OR, XOR and invert.
Solution:   Add and(), or(), invert() and xor() functions.
Files:	    src/eval.c, src/testdir/test49.in, src/testdir/test65.in,
	    src/testdir/test65.ok, runtime/doc/eval.txt

Patch 7.3.378
Problem:    When cross-compiling the check for uint32_t fails.
Solution:   Only give a warning message. (Maksim Melnikau)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.379
Problem:    C-indenting wrong for static enum.
Solution:   Skip over "static". (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.380
Problem:    C-indenting wrong for a function header.
Solution:   Skip to the start paren. (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.381
Problem:    Configure silently skips interfaces that won't work.
Solution:   Add the --enable-fail_if_missing argument. (Shlomi Fish)
Files:	    src/Makefile, src/configure.in, src/auto/configure

Patch 7.3.382 (after 7.3.376)
Problem:    IME characters are inserted twice.
Solution:   Do not call DefWindowProc() if the event was handled. (Yasuhiro
	    Matsumoto)
Files:	    src/gui_w32.c

Patch 7.3.383
Problem:    For EBCDIC pound sign is defined as 't'.
Solution:   Correctly define POUND.
Files:	    src/ascii.h

Patch 7.3.384
Problem:    Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
	    completion.
Solution:   Add CTRL-K to the list of recognized keys. (James McCoy)
Files:	    src/edit.c

Patch 7.3.385
Problem:    When using an expression mapping on the command line the cursor
	    ends up in the wrong place. (Yasuhiro Matsumoto)
Solution:   Save and restore msg_col and msg_row when evaluating the
	    expression.
Files:	    src/getchar.

Patch 7.3.386
Problem:    Test 83 fails when iconv does not support cp932. (raf)
Solution:   Test if conversion works. (Yukihiro Nakadaira)
Files:	    src/testdir/test83.in

Patch 7.3.387 (after 7.3.386)
Problem:    Test 83 may fail for some encodings.
Solution:   Set 'encoding' to utf-8 earlier.
Files:	    src/testdir/test83.in

Patch 7.3.388
Problem:    Crash on exit when EXITFREE is defined and using tiny features.
Solution:   Check for NULL window pointer. (Dominique Pelle)
Files:	    src/buffer.c

Patch 7.3.389
Problem:    After typing at a prompt the "MORE" message appears too soon.
Solution:   reset lines_left in msg_end_prompt(). (Eswald)
Files:	    src/message.c

Patch 7.3.390
Problem:    Using NULL buffer pointer in a window.
Solution:   Check for w_buffer being NULL in more places. (Bjorn Winckler)
Files:	    src/ex_cmds.c, src/quickfix.c, src/window.c

Patch 7.3.391
Problem:    Can't check if the XPM_W32 feature is enabled.
Solution:   Add xpm_w32 to the list of features. (kat)
Files:	    src/eval.c

Patch 7.3.392
Problem:    When setting 'undofile' while the file is already loaded but
	    unchanged, try reading the undo file. (Andy Wokula)
Solution:   Compute a checksum of the text when 'undofile' is set. (Christian
	    Brabandt)
Files:	    src/option.c, src/testdir/test72.in, src/testdir/test72.ok

Patch 7.3.393
Problem:    Win32: When resizing Vim it is always moved to the primary monitor
	    if the secondary monitor is on the left.
Solution:   Use the nearest monitor. (Yukihiro Nakadaira)
Files:	    src/gui_w32.c

Patch 7.3.394
Problem:    When placing a mark while starting up a screen redraw messes up
	    the screen. (lith)
Solution:   Don't redraw while still starting up. (Christian Brabandt)
Files:	    src/screen.c

Patch 7.3.395 (after 7.3.251)
Problem:    "dv?bar" in the last line deletes too much and breaks undo.
Solution:   Only adjust the cursor position when it's after the last line of
	    the buffer.  Add a test. (Christian Brabandt)
Files:	    src/ops.c, src/testdir/test43.in, src/testdir/test43.ok

Patch 7.3.396
Problem:    After forcing an operator to be characterwise it can still become
	    linewise when spanning whole lines.
Solution:   Don't make the operator linewise when motion_force was set.
	    (Christian Brabandt)
Files:	    src/ops.c

Patch 7.3.397
Problem:    ":helpgrep" does not work properly when 'encoding' is not utf-8 or
	    latin1.
Solution:   Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
Files:	    src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro

Patch 7.3.398
Problem:    When creating more than 10 location lists and adding items one by
	    one a previous location may be used. (Audrius Kažukauskas)
Solution:   Clear the location list completely when adding the tenth one.
Files:	    src/quickfix.c

Patch 7.3.399
Problem:    ":cd" doesn't work when the path contains wildcards. (Yukihiro
	    Nakadaira)
Solution:   Ignore wildcard errors when the EW_NOTWILD flag is used.
Files:	    src/misc1.c

Patch 7.3.400
Problem:    Compiler warnings for shadowed variables.
Solution:   Remove or rename the variables.
Files:	    src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c,
	    src/getchar.c, src/message.c, src/misc2.c, src/move.c,
	    src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c,
	    src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c

Patch 7.3.401
Problem:    A couple more shadowed variables.
Solution:   Rename the variables.
Files:	    src/netbeans.c

Patch 7.3.402
Problem:    When jumping to the first error a line of the buffer is sometimes
	    redrawn on top of the list of errors.
Solution:   Do not call update_topline_redraw() if the display was scrolled
	    up.
Files:	    src/quickfix.c

Patch 7.3.403
Problem:    ":helpgrep" does not trigger QuickFixCmd* autocommands.
Solution:   Trigger the autocommands. (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.3.404
Problem:    When a complete function uses refresh "always" redo will not work
	    properly.
Solution:   Do not reset compl_leader when compl_opt_refresh_always is set.
	    (Yasuhiro Matsumoto)
Files:	    src/edit.c

Patch 7.3.405
Problem:    When xterm gets back the function keys it may delete the urxvt
	    mouse termcap code.
Solution:   Check for the whole code, not just the start. (Egmont Koblinger)
Files:	    src/keymap.h, src/misc2.c, src/term.c

Patch 7.3.406
Problem:    Multi-byte characters in b:browsefilter are not handled correctly.
Solution:   First use convert_filter() normally and then convert to wide
	    characters. (Taro Muraoka)
Files:	    src/gui_w48.c

Patch 7.3.407
Problem:    ":12verbose call F()" may duplicate text while trying to truncate.
	    (Thinca)
Solution:   Only truncate when there is not enough room.  Also check the byte
	    length of the buffer.
Files:	    src/buffer.c, src/eval.c, src/ex_getln.c, src/message.c,
	    src/proto/message.pro

Patch 7.3.408 (after 7.3.406)
Problem:    Missing declaration.
Solution:   Add the declaration. (John Marriott)
Files:	    src/gui_w48.c

Patch 7.3.409
Problem:    The license in pty.c is unclear.
Solution:   Add a comment about the license.
Files:	    src/pty.c

Patch 7.3.410
Problem:    Compiler error for // comment. (Joachim Schmitz)
Solution:   Turn into /* comment */.
Files:	    src/message.c

Patch 7.3.411
Problem:    Pasting in Visual mode using the "" register does not work. (John
	    Beckett)
Solution:   Detect that the write is overwriting the pasted register.
	    (Christian Brabandt)
Files:	    src/normal.c

Patch 7.3.412
Problem:    Storing a float in a session file has an additional '&'.
Solution:   Remove the '&'. (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.3.413
Problem:    Build warnings on MS-Windows.
Solution:   Add type casts. (Mike Williams)
Files:	    src/ex_getln.c, src/message.c, src/term.c

Patch 7.3.414
Problem:    Using CTRL-A on "000" drops the leading zero, while on "001" it
	    doesn't.
Solution:   Detect "000" as an octal number. (James McCoy)
Files:	    src/charset.c

Patch 7.3.415 (after 7.3.359)
Problem:    Completion of functions stops once a dictionary is encountered.
	    (James McCoy)
Solution:   Return an empty string instead of NULL.
Files:	    src/eval.c

Patch 7.3.416 (after 7.3.415)
Problem:    Compiler warning for wrong pointer.
Solution:   Add type cast.
Files:	    src/eval.c

Patch 7.3.417 (after 7.3.395)
Problem:    Test 43 fails with a tiny build.
Solution:   Only run test 43 with at least a small build.
Files:	    src/testdir/test43.in

Patch 7.3.418
Problem:    When a user complete function returns -1 an error message is
	    given.
Solution:   When -2 is returned stop completion silently. (Yasuhiro Matsumoto)
Files:	    src/edit.

Patch 7.3.419
Problem:    DBCS encoding in a user command does not always work.
Solution:   Skip over DBCS characters. (Yasuhiro Matsumoto)
Files:	    src/ex_docmd.c

Patch 7.3.420
Problem:    "it" and "at" don't work properly with a dash in the tag name.
Solution:   Require a space to match the tag name. (Christian Brabandt)
Files:	    src/search.c

Patch 7.3.421
Problem:    Get E832 when setting 'undofile' in vimrc and there is a file to
	    be edited on the command line. (Toothpik)
Solution:   Do not try reading the undo file for a file that wasn't loaded.
Files:	    src/option.c

Patch 7.3.422
Problem:    Python 3 does not have __members__.
Solution:   Add "name" and "number" in another way. (lilydjwg)
Files:	    src/if_py_both.h, src/if_python3.c

Patch 7.3.423
Problem:    Small mistakes in comments, proto and indent.
Solution:   Fix the mistakes.
Files:	    src/ex_cmds2.c, src/structs.h, src/ui.c, src/proto/ex_docmd.pro

Patch 7.3.424
Problem:    Win16 version missing some functions.
Solution:   Add #defines for the functions.
Files:	    src/gui_w16.c

Patch 7.3.425 (after 7.3.265)
Problem:    Search history lines are duplicated. (Edwin Steiner)
Solution:   Convert separator character from space to NUL.
Files:	    src/ex_getln.c

Patch 7.3.426
Problem:    With '$' in 'cpoptions' the $ is not displayed in the first
	    column.
Solution:   Use -1 instead of 0 as a special value. (Hideki Eiraku and
	    Hirohito Higashi)
Files:	    src/edit.c, src/globals.h, src/move.c, src/screen.c, src/search.c

Patch 7.3.427
Problem:    readfile() can be slow with long lines.
Solution:   Use realloc() instead of alloc(). (John Little)
Files:	    src/eval.c

Patch 7.3.428
Problem:    Win32: an xpm file without a mask crashes Vim.
Solution:   Fail when the mask is missing. (Dave Bodenstab)
Files:	    src/xpm_w32.c

Patch 7.3.429
Problem:    When 'cpoptions' includes "E" "c0" in the first column is an
	    error. The redo register is then set to the erroneous command.
Solution:   Do not set the redo register if the command fails because of an
	    empty region. (Hideki Eiraku)
Files:	    src/getchar.c, src/normal.c, src/proto/getchar.pro

Patch 7.3.430
Problem:    When a custom filetype detection uses "augroup END" the conf
	    fileytpe detection does not have the filetypedetect group.
Solution:   Always end the group and include filetypedetect in the conf
	    autocommand. (Lech Lorens)
Files:	    runtime/filetype.vim

Patch 7.3.431
Problem:    Fetching a key at a prompt may be confused by escape sequences.
	    Especially when getting a prompt at a VimEnter autocommand.
	    (Alex Efros)
Solution:   Properly handle escape sequences deleted by check_termcode().
Files:	    src/getchar.c, src/misc1.c, src/term.c, src/proto/term.pro

Patch 7.3.432
Problem:    ACLs are not supported for ZFS or NFSv4 on Solaris.
Solution:   Add configure check and code. (Danek Duvall)
Files:	    src/configure.in, src/auto/configure, src/config.h.in,
	    src/os_unix.c

Patch 7.3.433
Problem:    Using continued lines in a Vim script can be slow.
Solution:   Instead of reallocating for every line use a growarray. (Yasuhiro
	    Matsumoto)
Files:	    src/ex_cmds2.c

Patch 7.3.434
Problem:    Using join() can be slow.
Solution:   Compute the size of the result before allocation to avoid a lot of
	    allocations and copies. (Taro Muraoka)
Files:	    src/eval.c

Patch 7.3.435
Problem:    Compiler warning for unused variable.
Solution:   Move the variable inside #ifdef.
Files:	    src/ex_cmds2.c

Patch 7.3.436
Problem:    Compiler warnings for types on Windows.
Solution:   Add type casts. (Mike Williams)
Files:	    src/eval.c

Patch 7.3.437
Problem:    Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
Solution:   Use goto instead of break. (Hirohito Higashi)
Files:	    src/fileio.c, src/globals.h

Patch 7.3.438
Problem:    There is no way to avoid ":doautoall" reading modelines.
Solution:   Add the <nomodeline> argument. Adjust documentation.
Files:	    src/fileio.c, runtime/doc/autocmd.txt

Patch 7.3.439
Problem:    Compiler warnings to size casts in Perl interface.
Solution:   Use XS macros. (James McCoy)
Files:	    src/if_perl.xs, src/typemap

Patch 7.3.440
Problem:    Vim does not support UTF8_STRING for the X selection.
Solution:   Add UTF8_STRING atom support. (Alex Efros) Use it only when
	    'encoding' is set to Unicode.
Files:	    src/ui.c

Patch 7.3.441
Problem:    Newer versions of MzScheme (Racket) require earlier (trampolined)
	    initialisation.
Solution:   Call mzscheme_main() early in main(). (Sergey Khorev)
Files:	    src/Make_mvc.mak, src/if_mzsch.c, src/main.c,
	    src/proto/if_mzsch.pro

Patch 7.3.442 (after 7.3.438)
Problem:    Still read modelines for ":doautocmd".
Solution:   Move check for <nomodeline> to separate function.
Files:	    src/fileio.c, src/ex_docmd.c, src/proto/fileio.pro,
	    runtime/doc/autocmd.txt

Patch 7.3.443
Problem:    MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
Solution:   Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
Files:	    src/option.c, runtime/doc/options.txt

Patch 7.3.444
Problem:    ":all!" and ":sall!" give error E477, even though the
	    documentation says these are valid commands.
Solution:   Support the exclamation mark. (Hirohito Higashi)
Files:	    src/ex_cmds.h, src/testdir/test31.in, src/testdir/test31.ok

Patch 7.3.445 (after 7.3.443)
Problem:    Can't properly escape commands for cmd.exe.
Solution:   Default 'shellxquote' to '('.  Append ')' to make '(command)'.
	    No need to use "/s" for 'shellcmdflag'.
Files:	    src/misc2.c, src/option.c, src/os_win32.c

Patch 7.3.446 (after 7.3.445)
Problem:    Win32: External commands with special characters don't work.
Solution:   Add the 'shellxescape' option.
Files:	    src/misc2.c, src/option.c, src/option.h, runtime/doc/options.txt

Patch 7.3.447 (after 7.3.446)
Problem:    Win32: External commands with "start" do not work.
Solution:   Unescape part of the command. (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.3.448 (after 7.3.447)
Problem:    Win32: Still a problem with "!start /b".
Solution:   Escape only '|'. (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.3.449
Problem:    Crash when a BufWinLeave autocommand closes the only other window.
	    (Daniel Hunt)
Solution:   Abort closing a buffer when it becomes the only one.
Files:	    src/buffer.c, src/proto/buffer.pro, src/ex_cmds.c, src/ex_getln.c,
	    src/misc2.c, src/quickfix.c, src/window.c, src/proto/window.pro

Patch 7.3.450 (after 7.3.448)
Problem:    Win32: Still a problem with "!start /b".
Solution:   Fix pointer use. (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.3.451
Problem:    Tcl doesn't work on 64 MS-Windows.
Solution:   Make it work. (Dave Bodenstab)
Files:	    src/Make_mvc.mak, src/if_tcl.c

Patch 7.3.452
Problem:    Undo broken when pasting close to the last line. (Andrey Radev)
Solution:   Use a flag to remember if the deleted included the last line.
	    (Christian Brabandt)
Files:	    src/ops.c

Patch 7.3.453
Problem:    Pasting in the command line is slow.
Solution:   Don't redraw if there is another character to read. (Dominique
	    Pelle)
Files:	    src/ex_getln.c

Patch 7.3.454
Problem:    Re-allocating memory slows Vim down.
Solution:   Use realloc() in ga_grow(). (Dominique Pelle)
Files:	    src/misc2.c

Patch 7.3.455
Problem:    Using many continuation lines can be slow.
Solution:   Adjust the reallocation size to the current length.
Files:	    src/ex_cmds2.c

Patch 7.3.456
Problem:    ":tab drop file" has several problems, including moving the
	    current window and opening a new tab for a file that already has a
	    window.
Solution:   Refactor ":tab drop" handling. (Hirohito Higashi)
Files:	    src/buffer.c, src/testdir/test62.in, src/testdir/test62.ok

Patch 7.3.457
Problem:    When setting $VIMRUNTIME later the directory for fetching
	    translated messages is not adjusted.
Solution:   Put bindtextdomain() in vim_setenv().
Files:	    src/misc1.c

Patch 7.3.458
Problem:    Crash when calling smsg() during startup.
Solution:   Don't use 'shortmess' when it is not set yet.
Files:	    src/option.c

Patch 7.3.459
Problem:    Win32: Warnings for type conversion.
Solution:   Add type casts. (Mike Williams)
Files:	    src/misc2.c, src/os_win32.c

Patch 7.3.460
Problem:    Win32: UPX does not compress 64 bit binaries.
Solution:   Mention and add the alternative: mpress. (Dave Bodenstab)
Files:	    src/INSTALLpc.txt, src/Make_ming.mak

Patch 7.3.461
Problem:    The InsertCharPre autocommand event is not triggered during
	    completion and when typing several characters quickly.
Solution:   Also trigger InsertCharPre during completion.  Do not read ahead
	    when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto)
Files:	    src/edit.c, src/fileio.c, src/proto/fileio.pro

Patch 7.3.462
Problem:    When using ":loadview" folds may be closed unexpectedly.
Solution:   Take into account foldlevel. (Xavier de Gaye)
Files:	    src/fold.c

Patch 7.3.463
Problem:    When using ":s///c" the cursor is moved away from the match.
	    (Lawman)
Solution:   Don't move the cursor when do_ask is set. (Christian Brabandt)
Files:	    src/ex_cmds.c

Patch 7.3.464
Problem:    Compiler warning for sprintf.
Solution:   Put the length in a variable. (Dominique Pelle)
Files:	    src/version.c

Patch 7.3.465
Problem:    Cannot get file name with newline from glob().
Solution:   Add argument to glob() and expand() to indicate they must return a
	    list. (Christian Brabandt)
Files:	    runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/vim.h

Patch 7.3.466
Problem:    Get ml_get error hen ":behave mswin" was used and selecting
	    several lines.  (A. Sinan Unur)
Solution:   Adjust the end of the operation. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.3.467
Problem:    Cursor positioned wrong at the command line when regaining focus
	    and using some input method.
Solution:   Do not position the cursor in command line mode.
Files:	    src/mbyte.c

Patch 7.3.468
Problem:    For some compilers the error file is not easily readable.
Solution:   Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
Files:	    runtime/doc/autocmd.txt, src/quickfix.c

Patch 7.3.469
Problem:    Compiler warning for unused argument without some features.
Solution:   Add UNUSED.
Files:	    src/buffer.c

Patch 7.3.470
Problem:    Test 62 fails when compiled without GUI and X11.
Solution:   Don't test :drop when it is not supported.
Files:	    src/testdir/test62.in

Patch 7.3.471
Problem:    Can't abort listing placed signs.
Solution:   Check "got_int". (Christian Brabandt)
Files:	    src/buffer.c, src/ex_cmds.c

Patch 7.3.472
Problem:    Crash when using ":redraw" in a BufEnter autocommand and
	    switching to another tab. (驼峰)
Solution:   Move triggering the autocommands to after correcting the
	    option values. Also check the row value to be out of bounds.
	    (Christian Brabandt, Sergey Khorev)
Files:	    src/screen.c, src/window.c

Patch 7.3.473
Problem:    'cursorbind' does not work correctly in combination with
	    'virtualedit' set to "all".
Solution:   Copy coladd. (Gary Johnson)
Files:	    src/move.c

Patch 7.3.474
Problem:    Perl build with gcc 4 fails.
Solution:   Remove XS() statements. (Yasuhiro Matsumoto)
Files:	    src/if_perl.xs

Patch 7.3.475
Problem:    In a terminal with few colors the omnicomplete menu may be hard to
	    see when using the default colors.
Solution:   Use more explicit colors. (suggested by Alex Henrie)
Files:	    src/syntax.c

Patch 7.3.476
Problem:    When selecting a block, using "$" to include the end of each line
	    and using "A" and typing a backspace strange things happen.
	    (Yuangchen Xie)
Solution:   Avoid using a negative length. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.3.477
Problem:    Using ":echo" to output enough lines to scroll, then using "j" and
	    "k" at the more prompt, displays the command on top of the output.
	    (Marcin Szamotulski)
Solution:   Put the output below the command. (Christian Brabandt)
Files:	    src/eval.c

Patch 7.3.478
Problem:    Memory leak using the ':rv!' command when reading dictionary or
	    list global variables i.e. with 'viminfo' containing !.
Solution:   Free the typeval. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.3.479
Problem:    When 'cursorline' is set the line number highlighting can't be set
	    separately.
Solution:   Add "CursorLineNr". (Howard Buchholz)
Files:	    src/option.c, src/screen.c, src/syntax.c, src/vim.h

Patch 7.3.480
Problem:    When using ":qa" and there is a changed buffer picking the buffer
	    to jump to is not very good.
Solution:   Consider current and other tab pages. (Hirohito Higashi)
Files:	    src/ex_cmds2.c

Patch 7.3.481
Problem:    Changing 'virtualedit' in an operator function to "all" does not
	    have the desired effect. (Aaron Bohannon)
Solution:   Save, reset and restore virtual_op when executing an operator
	    function.
Files:	    src/normal.c

Patch 7.3.482
Problem:    With 'cursorbind' set moving up/down does not always keep the same
	    column.
Solution:   Set curswant appropriately. (Gary Johnson)
Files:	    src/move.c

Patch 7.3.483  (after 7.3.477)
Problem:    More prompt shows up too often.
Solution:   Instead of adding a line break, only start a new line in the
	    message history. (Christian Brabandt)
Files:	    src/eval.c, src/message.c, src/proto/message.pro

Patch 7.3.484
Problem:    The -E and --echo-wid command line arguments are not mentioned in
	    "vim --help".
Solution:   Add the help lines. (Dominique Pelle)
Files:	    src/main.c

Patch 7.3.485
Problem:    When building Vim LDFLAGS isn't passed on to building xxd.
Solution:   Pass the LDFLAGS value. (James McCoy)
Files:	    src/Makefile

Patch 7.3.486
Problem:    Build error with mingw64 on Windows 7.
Solution:   Avoid the step of going through vimres.res. (Guopeng Wen)
Files:	    src/Make_ming.mak

Patch 7.3.487
Problem:    When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
	    movement is reset unnecessarily.
Solution:   Do not set w_set_curswant for every option. Add a test for this.
	    (Kana Natsuno) Add the P_CURSWANT flag for options.
Files:	    src/option.c, src/testdir/test84.in, src/testdir/test84.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.3.488
Problem:    ":help!" in a help file does not work as documented.
Solution:   When in a help file don't give an error message. (thinca)
Files:	    src/ex_cmds.c

Patch 7.3.489
Problem:    CTRL-] in Insert mode does not expand abbreviation when used in a
	    mapping. (Yichao Zhou)
Solution:   Special case using CTRL-]. (Christian Brabandt)
Files:	    src/getchar.c, src/edit.c

Patch 7.3.490
Problem:    Member confusion in Lua interface.
Solution:   Fix it.  Add luaeval(). (Taro Muraoka, Luis Carvalho)
Files:	    runtime/doc/if_lua.txt, src/eval.c, src/if_lua.c,
	    src/proto/if_lua.pro

Patch 7.3.491
Problem:    No tests for Lua.
Solution:   Add some simple tests for Lua. (Luis Carvalho)
Files:	    src/testdir/test1.in, src/testdir/test85.in, src/testdir/test85.ok
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.3.492
Problem:    Can't indent conditions separately from function arguments.
Solution:   Add the 'k' flag in 'cino'. (Lech Lorens)
Files:	    runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
	    src/testdir/test3.ok

Patch 7.3.493 (after 7.3.492)
Problem:    Two unused variables.
Solution:   Remove them. (Hong Xu)
Files:	    src/misc1.c

Patch 7.3.494 (after 7.3.491)
Problem:    Can't compile with Lua 5.1 or dynamic Lua.
Solution:   Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho)
Files:	    src/if_lua.c

Patch 7.3.495 (after 7.3.492)
Problem:    Compiler warnings.
Solution:   Add function declaration.  Remove "offset" argument.
Files:	    src/misc1.c

Patch 7.3.496
Problem:    MS-DOS: When "diff" trips over difference in line separators some
	    tests fail.
Solution:   Make some .ok files use unix line separators. (David Pope)
Files:	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak

Patch 7.3.497
Problem:    Crash when doing ":python print" and compiled with gcc and
	    the optimizer enabled.
Solution:   Avoid the crash, doesn't really fix the problem. (Christian
	    Brabandt)
Files:	    src/if_py_both.h

Patch 7.3.498
Problem:    The behavior of the "- register changes depending on value of
	    the 'clipboard' option. (Szamotulski)
Solution:   Also set the "- register when the register is "*" or "+".
	    (Christian Brabandt)
Files:	    src/ops.c

Patch 7.3.499
Problem:    When using any interface language when Vim is waiting for a child
	    process it gets confused by a child process started through the
	    interface.
Solution:   Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
Files:	    src/os_unix.c

Patch 7.3.500
Problem:    Ming makefile unconditionally sets WINVER.
Solution:   Only defined when not already defined. (Yasuhiro Matsumoto)
Files:	    src/Make_ming.mak

Patch 7.3.501
Problem:    Error for "flush" not being defined when using Ruby command.
Solution:   Defined "flush" as a no-op method. (Kent Sibilev)
Files:	    src/if_ruby.c

Patch 7.3.502
Problem:    Netbeans insert halfway a line actually appends to the line.
Solution:   Insert halfway the line. (Brian Victor)
Files:	    src/netbeans.c

Patch 7.3.503 (after 7.3.501)
Problem:    Warning for unused argument.
Solution:   Add UNUSED.
Files:	    src/if_ruby.c

Patch 7.3.504
Problem:    Commands in help files are not highlighted.
Solution:   Allow for commands in backticks.  Adjust CTRL-] to remove the
	    backticks.
Files:	    src/ex_cmds.c

Patch 7.3.505
Problem:    Test 11 fails on MS-Windows in some versions.
Solution:   Fix #ifdefs for whether filtering through a pipe is possible. Move
	    setting b_no_eol_lnum back to where it was before patch 7.3.124.
	    (David Pope)
Files:	    src/feature.h, src/eval.c, src/ex_cmds.c, src/fileio.c

Patch 7.3.506
Problem:    GTK gives an error when selecting a non-existent file.
Solution:   Add a handler to avoid the error. (Christian Brabandt)
Files:	    src/gui_gtk.c

Patch 7.3.507
Problem:    When exiting with unsaved changes, selecting an existing file in
	    the file dialog, there is no dialog to ask whether the existing
	    file should be overwritten. (Felipe G. Nievinski)
Solution:   Call check_overwrite() before writing. (Christian Brabandt)
Files:	    src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds.pro

Patch 7.3.508
Problem:    Default for v:register is not set.
Solution:   Init v:register in eval_init(). Correct for 'clipboard' before the
	    main loop. (Ingo Karkat)
Files:	    src/eval.c, src/main.c

Patch 7.3.509
Problem:    ":vimgrep" fails when 'autochdir' is set.
Solution:   A more generic solution for changing directory. (Ben Fritz)
Files:	    src/quickfix.c

Patch 7.3.510
Problem:    Test 77 fails on Solaris 7. (Michael Soyka)
Solution:   Replace any tabs with spaces.
Files:	    src/testdir/test77.in

Patch 7.3.511
Problem:    Using a FileReadCmd autocommand that does ":e! {file}" may cause a
	    crash. (Christian Brabandt)
Solution:   Properly restore curwin->w_s.
Files:	    src/fileio.c

Patch 7.3.512
Problem:    undofile() returns a useless name when passed an empty string.
Solution:   Return an empty string. (Christian Brabandt)
Files:	    src/eval.c

Patch 7.3.513
Problem:    Cannot use CTRL-E and CTRL-Y with "r".
Solution:   Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
	    Brabandt)
Files:	    src/edit.c, src/normal.c, src/proto/edit.pro

Patch 7.3.514
Problem:    No completion for :history command.
Solution:   Add the completion and update the docs. Also fix ":behave"
	    completion. (Dominique Pelle)
Files:	    runtime/doc/cmdline.txt, runtime/doc/map.txt, src/ex_docmd.c,
	    src/ex_getln.c, src/vim.h

Patch 7.3.515
Problem:    'wildignorecase' only applies to the last part of the path.
Solution:   Also ignore case for letters earlier in the path.
Files:	    src/misc1.c

Patch 7.3.516
Problem:    extend(o, o) may crash Vim.
Solution:   Fix crash and add test. (Thinca and Hirohito Higashi)
Files:	    src/eval.c, src/testdir/test55.in, src/testdir/test55.ok

Patch 7.3.517
Problem:    Crash when using "vipvv". (Alexandre Provencio)
Solution:   Don't let the text length become negative.
Files:	    src/ops.c

Patch 7.3.518
Problem:    When 'encoding' is a double-byte encoding ":helptags" may not find
	    tags correctly.
Solution:   Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
Files:	    src/ex_cmds.c

Patch 7.3.519
Problem:    When completefunction returns it cannot indicate end of completion
	    mode.
Solution:   Recognize completefunction returning -3.  (Matsushita Shougo)
Files:	    src/edit.c

Patch 7.3.520
Problem:    gvim starts up slow on Ubuntu 12.04.
Solution:   Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
	    Matsumoto)  Do check $DISPLAY being set.
Files:	    src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro

Patch 7.3.521
Problem:    Using "z=" on a multi-byte character may cause a crash.
Solution:   Don't use strlen() on an int pointer.
Files:	    src/spell.c

Patch 7.3.522
Problem:    Crash in vim_realloc() when using MEM_PROFILE.
Solution:   Avoid using a NULL argument. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.3.523
Problem:    ":diffupdate" doesn't check for files changed elsewhere.
Solution:   Add the ! flag. (Christian Brabandt)
Files:	    runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h

Patch 7.3.524 (after 7.3.523)
Problem:    Missing comma.
Solution:   Add the comma.
Files:	    src/version.c

Patch 7.3.525
Problem:    Compiler warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
Files:	    src/ex_getln.c

Patch 7.3.526
Problem:    Confusing indenting for #ifdef.
Solution:   Remove and add indent. (Elias Diem)
Files:	    src/normal.c

Patch 7.3.527
Problem:    Clang complains about non-ASCII characters in a string.
Solution:   Change to \x88 form. (Dominique Pelle)
Files:	    src/charset.c

Patch 7.3.528
Problem:    Crash when closing last window in a tab. (Alex Efros)
Solution:   Use common code in close_last_window_tabpage(). (Christian
	    Brabandt)
Files:	    src/window.c

Patch 7.3.529
Problem:    Using a count before "v" and "V" does not work (Kikyous)
Solution:   Make the count select that many characters or lines. (Christian
	    Brabandt)
Files:	    src/normal.c

Patch 7.3.530 (after 7.3.520)
Problem:    gvim does not work when 'guioptions' includes "f". (Davido)
Solution:   Call gui_mch_init_check() when running GUI in the foreground.
	    (Yasuhiro Matsumoto)
Files:	    src/gui.c

Patch 7.3.531 (after 7.3.530)
Problem:    GUI does not work on MS-Windows.
Solution:   Add the missing #ifdef. (Patrick Avery)
Files:	    src/gui.c

Patch 7.3.532
Problem:    Compiler warning from Clang.
Solution:   Use a different way to point inside a string. (Dominique Pelle)
Files:	    src/syntax.c

Patch 7.3.533
Problem:    Memory leak when writing undo file.
Solution:   Free the ACL. (Dominique Pelle)
Files:	    src/undo.c

Patch 7.3.534 (after 7.3.461)
Problem:    When using an InsertCharPre autocommand autoindent fails.
Solution:   Proper handling of v:char. (Alexey Radkov)
Files:	    src/edit.c

Patch 7.3.535
Problem:    Many #ifdefs for MB_MAXBYTES.
Solution:   Also define MB_MAXBYTES without the +multi_byte feature.  Fix
	    places where the buffer didn't include space for a NUL byte.
Files:	    src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c,
	    src/misc1.c, src/screen.c, src/spell.c, src/vim.h

Patch 7.3.536
Problem:    When spell checking the German sharp s is not seen as a word
	    character. (Aexl Bender)
Solution:   In utf_islower() return true for the sharp s. Note: also need
	    updated spell file for this to take effect.
Files:	    src/mbyte.c

Patch 7.3.537
Problem:    Unnecessary call to init_spell_chartab().
Solution:   Delete the call.
Files:	    src/spell.c

Patch 7.3.538
Problem:    'efm' does not handle Tabs in pointer lines.
Solution:   Add Tab support. Improve tests. (Lech Lorens)
Files:	    src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok

Patch 7.3.539
Problem:    Redrawing a character on the command line does not work properly
	    for multi-byte characters.
Solution:   Count the number of bytes in a character. (Yukihiro Nakadaira)
Files:	    src/ex_getln.c

Patch 7.3.540
Problem:    Cursor is left on the text instead of the command line.
Solution:   Don't call setcursor() in command line mode.
Files:	    src/getchar.c

Patch 7.3.541
Problem:    When joining lines comment leaders need to be removed manually.
Solution:   Add the 'j' flag to 'formatoptions'. (Lech Lorens)
Files:	    runtime/doc/change.txt, src/edit.c, src/ex_docmd.c, src/misc1.c,
	    src/normal.c, src/ops.c, src/option.h, src/proto/misc1.pro,
	    src/proto/ops.pro, src/search.c, src/testdir/test29.in,
	    src/testdir/test29.ok

Patch 7.3.542 (after 7.3.506)
Problem:    Function is sometimes unused.
Solution:   Add #ifdef.
Files:	    src/gui_gtk.c

Patch 7.3.543
Problem:    The cursor is in the wrong line after using ":copen". (John
	    Beckett)
Solution:   Invoke more drastic redraw method.
Files:	    src/eval.c

Patch 7.3.544
Problem:    There is no good way to close a quickfix window when closing the
	    last ordinary window.
Solution:   Add the QuitPre autocommand.
Files:	    src/ex_docmd.c, src/fileio.c, src/vim.h

Patch 7.3.545
Problem:    When closing a window or buffer autocommands may close it too,
	    causing problems for where the autocommand was invoked from.
Solution:   Add the w_closing and b_closing flags.  When set disallow ":q" and
	    ":close" to prevent recursive closing.
Files:	    src/structs.h, src/buffer.c, src/ex_docmd.c, src/window.c

Patch 7.3.546
Problem:    Bogus line break.
Solution:   Remove the line break.
Files:	    src/screen.c

Patch 7.3.547 (after 7.3.541)
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it.
Files:	    src/ops.c

Patch 7.3.548
Problem:    Compiler warning on 64 bit Windows.
Solution:   Add type cast. (Mike Williams)
Files:	    src/ops.c

Patch 7.3.549
Problem:    In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
	    Pineau)
Solution:   Use the zero as zero. (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.550 (after 7.3.541)
Problem:    With "j" in 'formatoptions' a list leader is not removed. (Gary
	    Johnson)
Solution:   Don't ignore the start of a three part comment. (Lech Lorens)
Files:	    src/ops.c, src/testdir/test29.in, src/testdir/test29.ok

Patch 7.3.551
Problem:    When using :tablose a TabEnter autocommand is triggered too early.
	    (Karthick)
Solution:   Don't trigger *Enter autocommands before closing the tab.
	    (Christian Brabandt)
Files:	    src/buffer.c, src/eval.c, src/ex_cmds2.c, src/fileio.c,
	    src/proto/window.pro, src/window.c

Patch 7.3.552
Problem:    Formatting inside comments does not use the "2" flag in
	    'formatoptions'.
Solution:   Support the "2" flag.  (Tor Perkins)
Files:	    src/vim.h, src/ops.c, src/edit.c, src/misc1.c,
	    src/testdir/test68.in, src/testdir/test68.ok

Patch 7.3.553
Problem:    With double-width characters and 'listchars' containing "precedes"
	    the text is displayed one cell off.
Solution:   Check for double-width character being overwritten by the
	    "precedes" character. (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 7.3.554 (after 7.3.551)
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
Files:	    src/window.c

Patch 7.3.555
Problem:    Building on IBM z/OS fails.
Solution:   Adjust configure. Use the QUOTESED value from config.mk instead of
	    the hard coded one in Makefile. (Stephen Bovy)
Files:	    src/configure.in, src/auto/configure, src/Makefile

Patch 7.3.556
Problem:    Compiler warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)
Files:	    src/misc1.c

Patch 7.3.557
Problem:    Crash when an autocommand wipes out a buffer when it is hidden.
Solution:   Restore the current window when needed. (Christian Brabandt)
Files:	    src/buffer.c

Patch 7.3.558
Problem:    Memory access error. (Gary Johnson)
Solution:   Allocate one more byte. (Dominique Pelle)
Files:	    src/misc1.c

Patch 7.3.559
Problem:    home_replace() does not work with 8.3 filename.
Solution:   Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto)
Files:	    src/eval.c, src/misc1.c

Patch 7.3.560
Problem:    Get an error for a locked argument in extend().
Solution:   Initialize the lock flag for a dictionary. (Yukihiro Nakadaira)
Files:	    src/eval.c

Patch 7.3.561
Problem:    Using refresh: always in a complete function breaks the "."
	    command. (Val Markovic)
Solution:   Add match leader to the redo buffer. (Yasuhiro Matsumoto)
Files:	    src/edit.c

Patch 7.3.562
Problem:    ":profdel" should not work when the +profile feature is disabled.
Solution:   Call ex_ni(). (Yasuhiro Matsumoto)
Files:	    src/ex_cmds2.c

Patch 7.3.563 (after 7.3.557)
Problem:    Can't build with tiny features.
Solution:   Add #ifdef.
Files:	    src/buffer.c

Patch 7.3.564 (after 7.3.559)
Problem:    Warning for pointer conversion.
Solution:   Add type cast.
Files:	    src/misc1.c

Patch 7.3.565
Problem:    Can't generate proto file for Python 3.
Solution:   Add PYTHON3_CFLAGS to LINT_CFLAGS.
Files:	    src/Makefile

Patch 7.3.566 (after 7.3.561)
Problem:    Redo after completion does not work correctly when refresh: always
	    is not used. (Raymond Ko)
Solution:   Check the compl_opt_refresh_always flag. (Christian Brabandt)
Files:	    src/edit.c

Patch 7.3.567
Problem:    Missing copyright notice.
Solution:   Add Vim copyright notice. (Taro Muraoka)
Files:	    src/dehqx.py

Patch 7.3.568
Problem:    Bad indents for #ifdefs.
Solution:   Add and remove spaces. (Elias Diem)
Files:	    src/globals.h

Patch 7.3.569
Problem:    Evaluating Vim expression in Python is insufficient.
Solution:   Add vim.bindeval().  Also add pyeval() and py3eval(). (ZyX)
Files:	    runtime/doc/eval.txt, runtime/doc/if_pyth.txt, src/eval.c,
	    src/if_lua.c, src/if_py_both.h, src/if_python.c, src/if_python3.c,
	    src/proto/eval.pro, src/proto/if_python.pro,
	    src/proto/if_python3.pro, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Makefile,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.570
Problem:    ":vimgrep" does not obey 'wildignore'.
Solution:   Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
Files:	    src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/quickfix.c, src/spell.c

Patch 7.3.571
Problem:    Duplicated condition.
Solution:   Remove one. (Dominique Pelle)
Files:	    src/os_win32.c

Patch 7.3.572
Problem:    Duplicate statement in if and else. (Dominique Pelle)
Solution:   Remove the condition and add a TODO.
Files:	    src/gui_xmebw.c

Patch 7.3.573
Problem:    Using array index before bounds checking.
Solution:   Swap the parts of the condition. (Dominique Pelle)
Files:	    src/ops.c

Patch 7.3.574
Problem:    When pasting a register in the search command line a CTRL-L
	    character is not pasted. (Dominique Pelle)
Solution:   Escape the CTRL-L. (Christian Brabandt)
Files:	    src/ex_getln.c

Patch 7.3.575
Problem:    "ygt" tries to yank instead of giving an error. (Daniel Mueller)
Solution:   Check for a pending operator.
Files:	    src/normal.c

Patch 7.3.576
Problem:    Formatting of lists inside comments is not right yet.
Solution:   Use another solution and add a test. (Tor Perkins)
Files:	    src/edit.c, src/misc1.c, src/testdir/test68.in,
	    src/testdir/test69.ok

Patch 7.3.577
Problem:    Size of memory does not fit in 32 bit unsigned.
Solution:   Use Kbyte instead of byte.  Call GlobalMemoryStatusEx() instead of
	    GlobalMemoryStatus() when available.
Files:	    src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c,
	    src/os_win16.c, src/os_win32.c

Patch 7.3.578
Problem:    Misplaced declaration.
Solution:   Move declaration to start of block.
Files:	    src/if_py_both.h

Patch 7.3.579 (after 7.3.569)
Problem:    Can't compile with Python 2.5.
Solution:   Use PyCObject when Capsules are not available.
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.3.580
Problem:    Warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
Files:	    src/if_py_both.h

Patch 7.3.581
Problem:    Problems compiling with Python.
Solution:   Pick UCS2 or UCS4 function at runtime. (lilydjwg)
Files:	    src/if_python.c

Patch 7.3.582 (after 7.3.576)
Problem:    Missing parts of the test OK file.
Solution:   Add the missing parts.
Files:	    src/testdir/test68.ok

Patch 7.3.583
Problem:    PyObject_NextNotImplemented is not defined before Python 2.7.
	    (Danek Duvall)
Solution:   Add #ifdefs.
Files:	    src/if_python.c

Patch 7.3.584
Problem:    PyCObject is not always defined.
Solution:   Use PyObject instead.
Files:	    src/if_py_both.h, src/if_python.c

Patch 7.3.585
Problem:    Calling changed_bytes() too often.
Solution:   Move changed_bytes() out of a loop. (Tor Perkins)
Files:	    src/edit.c

Patch 7.3.586
Problem:    When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined.
Solution:   Set the default for WINVER to 0x0500.
Files:	    src/Make_ming.mak, src/Make_cyg.mak

Patch 7.3.587
Problem:    Compiler warning for local var shadowing global var.
Solution:   Rename the var and move it to an inner block. (Christian Brabandt)
Files:	    src/buffer.c

Patch 7.3.588
Problem:    Crash on NULL pointer.
Solution:   Fix the immediate problem by checking for NULL. (Lech Lorens)
Files:	    src/window.c

Patch 7.3.589
Problem:    Crash when $HOME is not set.
Solution:   Check for a NULL pointer. (Chris Webb)
Files:	    src/misc1.c

Patch 7.3.590
Problem:    The '< and '> marks cannot be set directly.
Solution:   Allow setting '< and '>. (Christian Brabandt)
Files:	    src/mark.c

Patch 7.3.591
Problem:    Can only move to a tab by absolute number.
Solution:   Move a number of tabs to the left or the right. (Lech Lorens)
Files:	    runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/testdir/test62.in, src/testdir/test62.ok, src/window.c

Patch 7.3.592
Problem:    Vim on GTK does not support g:browsefilter.
Solution:   Add a GtkFileFilter to the file chooser. (Christian Brabandt)
Files:	    src/gui_gtk.c

Patch 7.3.593
Problem:    No easy way to decide if b:browsefilter will work.
Solution:   Add the browsefilter feature.
Files:	    src/gui_gtk.c, src/eval.c, src/vim.h

Patch 7.3.594
Problem:    The X command server doesn't work perfectly. It sends an empty
	    reply for as-keys requests.
Solution:   Remove duplicate ga_init2(). Do not send a reply for as-keys
	    requests. (Brian Burns)
Files:	    src/if_xcmdsrv.c

Patch 7.3.595
Problem:    The X command server responds slowly
Solution:   Change the loop that waits for replies. (Brian Burns)
Files:	    src/if_xcmdsrv.c

Patch 7.3.596
Problem:    Can't remove all signs for a file or buffer.
Solution:   Support "*" for the sign id. (Christian Brabandt)
Files:	    runtime/doc/sign.txt, src/buffer.c, src/ex_cmds.c,
	    src/proto/buffer.pro

Patch 7.3.597
Problem:    'clipboard' "autoselect" only applies to the * register. (Sergey
	    Vakulenko)
Solution:   Make 'autoselect' work for the + register. (Christian Brabandt)
	    Add the "autoselectplus" option in 'clipboard' and the "P" flag in
	    'guioptions'.
Files:	    runtime/doc/options.txt, src/normal.c, src/ops.c, src/screen.c,
	    src/ui.c, src/globals.h, src/proto/ui.pro, src/option.h, src/gui.c

Patch 7.3.598
Problem:    Cannot act upon end of completion. (Taro Muraoka)
Solution:   Add an autocommand event that is triggered when completion has
	    finished. (Idea by Florian Klein)
Files:	    src/edit.c, src/fileio.c, src/vim.h

Patch 7.3.599 (after 7.3.597)
Problem:    Missing change in one file.
Solution:   Patch for changed clip_autoselect().
Files:	    src/option.c

Patch 7.3.600
Problem:    <f-args> is not expanded properly with DBCS encoding.
Solution:   Skip over character instead of byte. (Yukihiro Nakadaira)
Files:	    src/ex_docmd.c

Patch 7.3.601
Problem:    Bad code style.
Solution:   Insert space, remove parens.
Files:	    src/farsi.c

Patch 7.3.602
Problem:    Missing files in distribution.
Solution:   Update the list of files.
Files:	    Filelist

Patch 7.3.603
Problem:    It is possible to add replace builtin functions by calling
	    extend() on g:.
Solution:   Add a flag to a dict to indicate it is a scope.  Check for
	    existing functions. (ZyX)
Files:	    src/buffer.c, src/eval.c, src/proto/eval.pro, src/structs.h,
	    src/testdir/test34.in, src/testdir/test34.ok, src/window.c

Patch 7.3.604
Problem:    inputdialog() doesn't use the cancel argument in the console.
	    (David Fishburn)
Solution:   Use the third argument. (Christian Brabandt)
Files:	    src/eval.c

Patch 7.3.605 (after 7.3.577)
Problem:    MS-Windows: Can't compile with older compilers. (Titov Anatoly)
Solution:   Add #ifdef for MEMORYSTATUSEX.
Files:	    src/os_win32.c

Patch 7.3.606
Problem:    CTRL-P completion has a problem with multi-byte characters.
Solution:   Check for next character being NUL properly.  (Yasuhiro Matsumoto)
Files:	    src/search.c, src/macros.h

Patch 7.3.607
Problem:    With an 8 color terminal the selected menu item is black on black,
	    because darkGrey as bg is the same as black.
Solution:   Swap fg and bg colors. (James McCoy)
Files:	    src/syntax.c

Patch 7.3.608
Problem:    winrestview() does not always restore the view correctly.
Solution:   Call win_new_height() and win_new_width(). (Lech Lorens)
Files:	    src/eval.c, src/proto/window.pro, src/window.c

Patch 7.3.609
Problem:    File names in :checkpath! output are garbled.
Solution:   Check for \zs in the pattern. (Lech Lorens)
Files:	    src/search.c, src/testdir/test17.in, src/testdir/test17.ok

Patch 7.3.610
Problem:    Cannot operate on the text that a search pattern matches.
Solution:   Add the "gn" and "gN" commands. (Christian Brabandt)
Files:	    runtime/doc/index.txt, runtime/doc/visual.txt, src/normal.c,
	    src/proto/search.pro, src/search.c, src/testdir/test53.in,
	    src/testdir/test53.ok

Patch 7.3.611
Problem:    Can't use Vim dictionary as self argument in Python.
Solution:   Fix the check for the "self" argument. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.612
Problem:    Auto formatting messes up text when 'fo' contains "2". (ZyX)
Solution:   Decrement "less_cols". (Tor Perkins)
Files:	    src/misc1.c, src/testdir/test68.in, src/testdir/test68.ok

Patch 7.3.613
Problem:    Including Python's config.c in the build causes trouble.  It is
	    not clear why it was there.
Solution:   Omit the config file. (James McCoy)
Files:	    src/Makefile, src/auto/configure, src/configure.in

Patch 7.3.614
Problem:    Number argument gets turned into a number while it should be a
	    string.
Solution:   Add flag to the call_vim_function() call. (Yasuhiro Matsumoto)
Files:	    src/edit.c, src/eval.c, src/proto/eval.pro

Patch 7.3.615
Problem:    Completion for a user command does not recognize backslash before
	    a space.
Solution:   Recognize escaped characters. (Yasuhiro Matsumoto)
Files:	    src/ex_docmd.c

Patch 7.3.616 (after 7.3.610)
Problem:    Can't compile without +visual.
Solution:   Add #ifdef.
Files:	    src/normal.c

Patch 7.3.617 (after 7.3.615)
Problem:    Hang on completion.
Solution:   Skip over the space. (Yasuhiro Matsumoto)
Files:	    src/ex_docmd.c

Patch 7.3.618 (after 7.3.616)
Problem:    Still doesn't compile with small features.
Solution:   Move current_search() out of #ifdef. (Dominique Pelle)
Files:	    src/normal.c, src/search.c

Patch 7.3.619
Problem:    When executing a shell command Vim may become slow to respond.
Solution:   Don't wait after every processed message. (idea by Yasuhiro
	    Matsumoto)
Files:	    src/os_win32.c

Patch 7.3.620
Problem:    Building with recent Ruby on Win32 doesn't work.
Solution:   Add a separate argument for the API version. (Yasuhiro Matsumoto)
Files:	    src/Make_ming.mak, src/Make_mvc.mak

Patch 7.3.621
Problem:    Compiler warnings on 64 bit windows.
Solution:   Add type casts. (Mike Williams)
Files:	    src/ex_docmd.c, src/search.c

Patch 7.3.622
Problem:    XPM library for Win32 can't be found.
Solution:   Suggest using the one from the Vim ftp site.
Files:	    src/Make_mvc.mak

Patch 7.3.623
Problem:    Perl 5.14 commands crash Vim on MS-Windows.
Solution:   Use perl_get_sv() instead of GvSV(). (Raymond Ko)
Files:	    src/if_perl.xs

Patch 7.3.624
Problem:    When cancelling input() it returns the third argument. That should
	    only happen for inputdialog().
Solution:   Check if inputdialog() was used. (Hirohito Higashi)
Files:	    src/eval.c

Patch 7.3.625
Problem:    "gn" does not handle zero-width matches correctly.
Solution:   Handle zero-width patterns specially. (Christian Brabandt)
Files:	    src/search.c

Patch 7.3.626
Problem:    Python interface doesn't build with Python 2.4 or older.
Solution:   Define Py_ssize_t. (Benjamin Bannier)
Files:	    src/if_py_both.h

Patch 7.3.627
Problem:    When using the "n" flag with the ":s" command a \= substitution
	    will not be evaluated.
Solution:   Do perform the evaluation, so that a function can be invoked at
	    every matching position without changing the text. (Christian
	    Brabandt)
Files:	    src/ex_cmds.c

Patch 7.3.628
Problem:    ":open" does not allow for a !, which results in a confusing error
	    message. (Shawn Wilson)
Solution:   Allow ! on ":open". (Christian Brabandt)
Files:	    src/ex_cmds.h

Patch 7.3.629
Problem:    There is no way to make 'shiftwidth' follow 'tabstop'.
Solution:   When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
	    Brabandt)
Files:	    src/edit.c, src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
	    src/option.c, src/proto/option.pro

Patch 7.3.630
Problem:    "|" does not behave correctly when 'virtualedit' is set.
Solution:   Call validate_virtcol(). (David Bürgin)
Files:	    src/normal.c

Patch 7.3.631
Problem:    Cannot complete user names.
Solution:   Add user name completion.  (Dominique Pelle)
Files:	    runtime/doc/map.txt, src/auto/configure, src/config.h.in,
	    src/configure.in, src/ex_docmd.c, src/ex_getln.c, src/misc1.c,
	    src/misc2.c, src/proto/misc1.pro, src/vim.h

Patch 7.3.632
Problem:    Cannot select beyond 222 columns with the mouse in xterm.
Solution:   Add support for SGR mouse tracking. (Hayaki Saito)
Files:	    runtime/doc/options.txt, src/feature.h, src/keymap.h, src/misc2.c,
	    src/option.h, src/os_unix.c, src/term.c, src/version.c

Patch 7.3.633
Problem:    Selection remains displayed as selected after selecting another
	    text.
Solution:   Call xterm_update() before select(). (Andrew Pimlott)
Files:	    src/os_unix.c

Patch 7.3.634
Problem:    Month/Day format for undo is confusing. (Marcin Szamotulski)
Solution:   Always use Year/Month/Day, should work for everybody.
Files:	    src/undo.c

Patch 7.3.635
Problem:    Issue 21: System call during startup sets 'lines' to a wrong
	    value. (Karl Yngve)
Solution:   Don't set the shell size while the GUI is still starting up.
	    (Christian Brabandt)
Files:	    src/ui.c

Patch 7.3.636 (after 7.3.625)
Problem:    Not all zero-width matches handled correctly for "gn".
Solution:   Move zero-width detection to a separate function. (Christian
	    Brabandt)
Files:	    src/search.c

Patch 7.3.637
Problem:    Cannot catch the error caused by a foldopen when there is no fold.
	    (ZyX, Issue 48)
Solution:   Do not break out of the loop early when inside try/catch.
	    (Christian Brabandt) Except when there is a syntax error.
Files:	    src/ex_docmd.c, src/globals.h

Patch 7.3.638
Problem:    Unnecessary redraw of the previous character.
Solution:   Check if the character is double-width. (Jon Long)
Files:	    src/screen.c

Patch 7.3.639
Problem:    It's not easy to build Vim on Windows with XPM support.
Solution:   Include the required files, they are quite small.  Update the
	    MSVC makefile to use them.  Binary files are in the next patch.
	    (Sergey Khorev)
Files:	    src/xpm/COPYRIGHT, src/xpm/README.txt, src/xpm/include/simx.h,
	    src/xpm/include/xpm.h, src/Make_mvc.mak, src/bigvim.bat,
	    src/bigvim64.bat, Filelist

Patch 7.3.640
Problem:    It's not easy to build Vim on Windows with XPM support.
Solution:   Binary files for 7.3.639. (Sergey Khorev)
Files:	    src/xpm/x64/lib/libXpm.lib, src/xpm/x86/lib/libXpm.a,
	    src/xpm/x86/lib/libXpm.lib

Patch 7.3.641
Problem:    ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan)
Solution:   Add the bang. (Christian Brabandt)
Files:	    src/fold.c

Patch 7.3.642
Problem:    Segfault with specific autocommands.  Was OK after 7.3.449 and
	    before 7.3.545. (Richard Brown)
Solution:   Pass TRUE for abort_if_last in the call to close_buffer().
	    (Christian Brabandt)
Files:	    src/window.c

Patch 7.3.643 (after 7.3.635)
Problem:    MS-Windows: When starting gvim maximized 'lines' and 'columns' are
	    wrong. (Christian Robinson)
Solution:   Move the check for gui.starting from ui_get_shellsize() to
	    check_shellsize().
Files:	    src/ui.c, src/term.c

Patch 7.3.644
Problem:    Dead code for BeOS GUI.
Solution:   Remove unused __BEOS__ stuff.
Files:	    src/gui.c

Patch 7.3.645
Problem:    No tests for patch 7.3.625 and 7.3.637.
Solution:   Add more tests for the "gn" command and try/catch. (Christian
	    Brabandt)
Files:	    src/testdir/test53.in, src/testdir/test53.ok,
	    src/testdir/test55.in, src/testdir/test55.ok

Patch 7.3.646
Problem:    When reloading a buffer the undo file becomes unusable unless ":w"
	    is executed. (Dmitri Frank)
Solution:   After reloading the buffer write the undo file. (Christian
	    Brabandt)
Files:	    src/fileio.c

Patch 7.3.647
Problem:    "gnd" doesn't work correctly in Visual mode.
Solution:   Handle Visual mode differently in "gn". (Christian Brabandt)
Files:	    src/search.c, src/testdir/test53.in, src/testdir/test53.ok

Patch 7.3.648
Problem:    Crash when using a very long file name. (ZyX)
Solution:   Properly check length of buffer space.
Files:	    src/buffer.c

Patch 7.3.649
Problem:    When 'clipboard' is set to "unnamed" small deletes end up in the
	    numbered registers. (Ingo Karkat)
Solution:   Use the original register name to decide whether to put a delete
	    in a numbered register. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.3.650
Problem:    Completion after ":help \{-" gives an error message and messes up
	    the command line.
Solution:   Cancel the tag search if the pattern can't be compiled. (Yasuhiro
	    Matsumoto)
Files:	    src/tag.c

Patch 7.3.651
Problem:    Completion after ":help \{-" gives an error message.
Solution:   Prepend a backslash.
Files:	    src/ex_cmds.c

Patch 7.3.652
Problem:    Workaround for Python crash isn't perfect.
Solution:   Change the type of the length argument. (Sean Estabrooks)
Files:	    src/if_py_both.h

Patch 7.3.653
Problem:    MingW needs build rule for included XPM files.  Object directory
	    for 32 and 64 builds is the same, also for MSVC.
Solution:   Add MingW build rule to use included XPM files.  Add the CPU or
	    architecture to the object directory name. (Sergey Khorev)
Files:	    src/Make_ming.mak, src/Make_mvc.mak, src/xpm/README.txt

Patch 7.3.654
Problem:    When creating a Vim dictionary from Python objects an empty key
	    might be used.
Solution:   Do not use empty keys, throw an IndexError. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.655
Problem:    64 bit MingW xpm .a file is missing.
Solution:   Add the file. (Sergey Khorev)
Files:	    src/xpm/x64/lib/libXpm.a

Patch 7.3.656
Problem:    Internal error in :pyeval.
Solution:   Handle failed object conversion. (ZyX)
Files:	    src/if_python.c, src/if_python3.c

Patch 7.3.657
Problem:    Python bindings silently truncate string values containing NUL.
Solution:   Fail when a string contains NUL. (ZyX)
Files:	    src/if_python.c, src/if_python3.c

Patch 7.3.658
Problem:    NUL bytes truncate strings when converted from Python.
Solution:   Handle truncation as an error. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c

Patch 7.3.659
Problem:    Recent Python changes are not tested.
Solution:   Add tests for Python bindings. (ZyX)
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.660
Problem:    ":help !" jumps to help for ":!".
Solution:   Adjust check for tag header line. (Andy Wokula)
Files:	    src/tag.c

Patch 7.3.661 (after 7.3.652)
Problem:    SEGV in Python code.
Solution:   Initialize len to zero.  Use the right function depending on
	    version. (Maxim Philippov)
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.3.662
Problem:    Can't build Ruby interface with Ruby 1.9.3.
Solution:   Add missing functions. (V. Ondruch)
Files:	    src/if_ruby.c

Patch 7.3.663
Problem:    End of color scheme name not clear in E185. (Aaron Lewis)
Solution:   Put the name in single quotes.
Files:	    src/ex_docmd.c

Patch 7.3.664
Problem:    Buffer overflow in unescaping text. (Raymond Ko)
Solution:   Limit check for multi-byte character to 4 bytes.
Files:	    src/mbyte.c

Patch 7.3.665
Problem:    MSVC 11 is not supported. (Raymond Ko)
Solution:   Recognize MSVC 11. (Gary Willoughby)
Files:	    src/Make_mvc.mak

Patch 7.3.666
Problem:    With MSVC 11 Win32.mak is not found.
Solution:   Add the SDK_INCLUDE_DIR variable. (Raymond Ko)
Files:	    src/Make_mvc.mak

Patch 7.3.667
Problem:    Unused variables in Perl interface.
Solution:   Adjust #ifdefs.
Files:	    src/if_perl.xs

Patch 7.3.668
Problem:    Building with Perl loaded dynamically  still uses static library.
Solution:   Adjust use of PL_thr_key. (Ken Takata)
Files:	    src/if_perl.xs

Patch 7.3.669
Problem:    When building with Cygwin loading Python dynamically fails.
Solution:   Use DLLLIBRARY instead of INSTSONAME. (Ken Takata)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.670
Problem:    Python: memory leaks when there are exceptions.
Solution:   Add DICTKEY_UNREF in the right places. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.671
Problem:    More Python code can be shared between Python 2 and 3.
Solution:   Move code to if_py_both.h. (ZyX)
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.3.672
Problem:    Not possible to lock/unlock lists in Python interface.
Solution:   Add .locked and .scope attributes. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c,
	    src/if_python3.c, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.673
Problem:    Using "gN" while 'selection' is "exclusive" misses one character.
	    (Ben Fritz)
Solution:   Check the direction when compensating for exclusive selection.
	    (Christian Brabandt)
Files:	    src/search.c

Patch 7.3.674
Problem:    Can't compile with Lua/dyn on Cygwin.
Solution:   Adjust configure to use the right library name. (Ken Takata)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.675
Problem:    Using uninitialized memory with very long file name.
Solution:   Put NUL after text when it is truncated. (ZyX)
Files:	    src/buffer.c

Patch 7.3.676
Problem:    Ruby compilation on Windows 32 bit doesn't work.
Solution:   Only use some functions for 64 bit. (Ken Takata)
Files:	    src/if_ruby.c

Patch 7.3.677
Problem:    buf_spname() is used inconsistently.
Solution:   Make the return type a char_u pointer.  Check the size of the
	    returned string.
Files:	    src/buffer.c, src/proto/buffer.pro, src/ex_cmds2.c,
	    src/ex_docmd.c, src/memline.c, src/screen.c

Patch 7.3.678
Problem:    Ruby .so name may not be correct.
Solution:   Use the LIBRUBY_SO entry from the config. (Vit Ondruch)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.679
Problem:    Ruby detection uses Config, newer Ruby versions use RbConfig.
Solution:   Detect the need to use RbConfig. (Vit Ondruch)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.680
Problem:    Some files missing in the list of distributed files.
Solution:   Add lines for new files.
Files:	    Filelist

Patch 7.3.681 (after 7.3.680)
Problem:    List of distributed files picks up backup files.
Solution:   Make tutor patterns more specific.
Files:	    Filelist

Patch 7.3.682 (after 7.3.677)
Problem:    Compiler complains about incompatible types.
Solution:   Remove type casts. (hint by Danek Duvall)
Files:	    src/edit.c

Patch 7.3.683
Problem:    ":python" may crash when vimbindeval() returns None.
Solution:   Check for v_string to be NULL. (Yukihiro Nakadaira)
Files:	    src/if_py_both.h

Patch 7.3.684
Problem:    "make test" does not delete lua.vim.
Solution:   Add lua.vim to the clean target. (Simon Ruderich)
Files:	    src/testdir/Makefile, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_vms.mms

Patch 7.3.685
Problem:    No test for what patch 7.3.673 fixes.
Solution:   Add a test. (Christian Brabandt)
Files:	    src/testdir/test53.in, src/testdir/test53.ok

Patch 7.3.686
Problem:    Using CTRL-\ e mappings is useful also when entering an
	    expression, but it doesn't work. (Marcin Szamotulski)
Solution:   Allow using CTRL-\ e when entering an expression if it was not
	    typed.
Files:	    src/ex_getln.c

Patch 7.3.687
Problem:    Test 16 fails when $DISPLAY is not set.
Solution:   Skip the test when $DISPLAY is not set.
Files:	    src/testdir/test16.in

Patch 7.3.688
Problem:    Python 3.3 is not supported.
Solution:   Add Python 3.3 support (Ken Takata)
Files:	    src/if_python3.c

Patch 7.3.689
Problem:    MzScheme and Lua may use a NULL string.
Solution:   Use an empty string instead of NULL. (Yukihiro Nakadaira)
Files:	    src/if_lua.c, src/if_mzsch.c

Patch 7.3.690
Problem:    When the current directory name is exactly the maximum path length
	    Vim may crash.
Solution:   Only add "/" when there is room. (Danek Duvall)
Files:	    src/os_unix.c

Patch 7.3.691
Problem:    State specific to the Python thread is discarded.
Solution:   Keep state between threads. (Paul)
Files:	    src/if_python.c

Patch 7.3.692
Problem:    Can't build GTK version with GTK 2.0.
Solution:   Put GtkFileFilter declaration in the right place. (Yegappan
	    Lakshmanan)
Files:	    src/gui_gtk.c

Patch 7.3.693
Problem:    Can't make 'softtabstop' follow 'shiftwidth'.
Solution:   When 'softtabstop' is negative use the value of 'shiftwidth'.
	    (so8res)
Files:	    src/edit.c, src/option.c, src/proto/option.pro

Patch 7.3.694
Problem:    Now that 'shiftwidth' may use the value of 'tabstop' it is not so
	    easy to use in indent files.
Solution:   Add the shiftwidth() function. (so8res)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.3.695
Problem:    Balloon cannot show multi-byte text.
Solution:   Properly deal with multi-byte characters. (Dominique Pelle)
Files:	    src/gui_beval.c, src/ui.c

Patch 7.3.696
Problem:    Message about added spell language can be wrong.
Solution:   Give correct message. Add g:menutrans_set_lang_to to allow for
	    translation. (Jiri Sedlak)
Files:	    runtime/menu.vim

Patch 7.3.697
Problem:    Leaking resources when setting GUI font.
Solution:   Free the font. (Ken Takata)
Files:	    src/syntax.c

Patch 7.3.698
Problem:    Python 3 does not preserve state between commands.
Solution:   Preserve the state. (Paul Ollis)
Files:	    src/if_python.c, src/if_python3.c

Patch 7.3.699
Problem:    When 'ttymouse' is set to "sgr" manually, it is overruled by
	    automatic detection.
Solution:   Do not use automatic detection when 'ttymouse' was set manually.
	    (Hayaki Saito)
Files:	    src/term.c

Patch 7.3.700
Problem:    Cannot detect URXVT and SGR mouse support.
Solution:   add +mouse_urxvt and +mouse_sgr. (Hayaki Saito)
Files:	    src/feature.h, src/eval.c

Patch 7.3.701
Problem:    MS-Windows: Crash with stack overflow when setting 'encoding'.
Solution:   Handle that loading the iconv library may be called recursively.
	    (Jiri Sedlak)
Files:	    src/os_win32.c

Patch 7.3.702
Problem:    Nmake from VS6 service pack 6 is not recognized.
Solution:   Detect the version number. (Jiri Sedlak)
Files:	    src/Make_mvc.mak

Patch 7.3.703
Problem:    When 'undofile' is reset the hash is computed unnecessarily.
Solution:   Only compute the hash when the option was set. (Christian Brabandt)
Files:	    src/option.c

Patch 7.3.704
Problem:    Repeating "cgn" does not always work correctly.
Solution:   Also fetch the operator character. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.3.705
Problem:    Mouse features are not sorted properly. (Tony Mechelynck)
Solution:   Put the mouse features in alphabetical order.
Files:	    src/version.c

Patch 7.3.706 (after 7.3.697)
Problem:    Can't build Motif version.
Solution:   Fix wrongly named variable. (Ike Devolder)
Files:	    src/syntax.c

Patch 7.3.707 (after 7.3.701)
Problem:    Problems loading a library for a file name with non-latin
	    characters.
Solution:   Use wide system functions when possible. (Ken Takata)
Files:	    src/os_win32.c, src/os_win32.h

Patch 7.3.708
Problem:    Filler lines above the first line may be hidden when opening Vim.
Solution:   Change how topfill is computed. (Christian Brabandt)
Files:	    src/diff.c, src/testdir/test47.in, src/testdir/test47.ok

Patch 7.3.709
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
Files:	    src/eval.c

Patch 7.3.710 (after 7.3.704)
Problem:    Patch 7.3.704 breaks "fn".
Solution:   Add check for ca.cmdchar. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.3.711 (after 7.3.688)
Problem:    vim.current.buffer is not available. (lilydjwg)
Solution:   Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.
	    (Ken Takata)
Files:	    src/if_python3.c

Patch 7.3.712
Problem:    Nmake from VS2010 SP1 is not recognized.
Solution:   Add the version number. (Ken Takata)
Files:	    src/Make_mvc.mak

Patch 7.3.713
Problem:    printf() can only align to bytes, not characters.
Solution:   Add the "S" item. (Christian Brabandt)
Files:	    runtime/doc/eval.txt, src/message.c

Patch 7.3.714
Problem:    Inconsistency: :set can be used in the sandbox, but :setlocal and
	    :setglobal cannot. (Michael Henry)
Solution:   Fix the flags for :setlocal and :setglobal. (Christian Brabandt)
Files:	    src/ex_cmds.h

Patch 7.3.715
Problem:    Crash when calling setloclist() in BufUnload autocmd. (Marcin
	    Szamotulski)
Solution:   Set w_llist to NULL when it was freed.  Also add a test.
	    (Christian Brabandt)
Files:	    src/quickfix.c, src/testdir/test49.ok, src/testdir/test49.vim

Patch 7.3.716
Problem:    Error on exit when using Python 3.
Solution:   Remove PythonIO_Fini(). (Roland Puntaier)
Files:	    src/if_python3.c

Patch 7.3.717
Problem:    When changing the font size, only MS-Windows limits the window
	    size.
Solution:   Also limit the window size on other systems. (Roland Puntaier)
Files:	    src/gui.c

Patch 7.3.718
Problem:    When re-using the current buffer the buffer-local options stay.
Solution:   Re-initialize the buffer-local options. (Christian Brabandt)
Files:	    src/buffer.c

Patch 7.3.719
Problem:    Cannot run new version of cproto, it fails on missing include
	    files.
Solution:   Add lots of #ifndef PROTO
Files:	    src/os_amiga.c, src/os_amiga.h, src/gui_w16.c, src/gui_w48.c,
	    src/gui_w32.c, src/vimio.h, src/os_msdos.c, src/os_msdos.h,
	    src/os_win16.h, src/os_win16.c, src/os_win32.h, src/os_win32.c,
	    src/os_mswin.c, src/gui_photon.c, src/os_unix.h, src/os_beos.c,
	    src/os_beos.h

Patch 7.3.720
Problem:    Proto files are outdated.
Solution:   Update the newly generated proto files.
Files:	    src/proto/digraph.pro, src/proto/fold.pro, src/proto/misc1.pro,
	    src/proto/move.pro, src/proto/screen.pro, src/proto/search.pro,
	    src/proto/os_win32.pro, src/proto/os_mswin.pro,
	    src/proto/os_beos.pro

Patch 7.3.721
Problem:    Ruby interface defines local functions globally.
Solution:   Make the functions static.
Files:	    src/if_ruby.c

Patch 7.3.722
Problem:    Perl flags may contain "-g", which breaks "make proto".
Solution:   Filter out the "-g" flag for cproto. (Ken Takata)
Files:	    src/Makefile

Patch 7.3.723
Problem:    Various tiny problems.
Solution:   Various tiny fixes.
Files:	    src/gui_mac.c, src/xpm_w32.c, src/netbeans.c, src/sha256.c,
	    src/if_sniff.c, README.txt

Patch 7.3.724
Problem:    Building with Ruby and Tcl on MS-Windows 64 bit does not work.
Solution:   Remove Ruby and Tcl from the big MS-Windows build.
Files:	    src/bigvim64.bat

Patch 7.3.725
Problem:    :aboveleft and :belowright have no effect on :copen.
Solution:   Check for cmdmod.split. (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.3.726
Problem:    Typos and duplicate info in README.
Solution:   Fix the text.
Files:	    README.txt

Patch 7.3.727
Problem:    Can't always find Win32.mak when building GvimExt.
Solution:   Use same mechanism as in Make_mvc.mak. (Cade Foster)
Files:	    src/GvimExt/Makefile

Patch 7.3.728
Problem:    Cannot compile with MzScheme interface on Ubuntu 12.10.
Solution:   Find the collects directory under /usr/share.
Files:	    src/configure.in, src/auto/configure

Patch 7.3.729
Problem:    Building with Ruby fails on some systems.
Solution:   Remove "static" and add #ifndef PROTO. (Ken Takata)
Files:	    src/if_ruby.c

Patch 7.3.730
Problem:    Crash in PHP file when using syntastic. (Ike Devolder)
Solution:   Avoid using NULL pointer. (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.3.731
Problem:    Py3Init_vim() is exported unnecessarily.
Solution:   Make it static. (Ken Takata)
Files:	    src/if_python3.c

Patch 7.3.732
Problem:    Compiler warnings for function arguments.
Solution:   Use inteptr_t instead of long.
Files:	    src/if_mzsch.c, src/main.c

Patch 7.3.733
Problem:    Tests fail when including MzScheme.
Solution:   Change #ifdefs for vim_main2().
Files:	    src/main.c

Patch 7.3.734
Problem:    Cannot put help files in a sub-directory.
Solution:   Make :helptags work for sub-directories. (Charles Campbell)
Files:	    src/ex_cmds.c

Patch 7.3.735
Problem:    Cannot build Ruby 1.9 with MingW or Cygwin.
Solution:   Add another include directory. (Ken Takata)
Files:	    src/Make_cyg.mak, src/Make_ming.mak

Patch 7.3.736
Problem:    File name completion in input() escapes white space. (Frederic
	    Hardy)
Solution:   Do not escape white space. (Christian Brabandt)
Files:	    src/ex_getln.c

Patch 7.3.737
Problem:    When using do_cmdline() recursively did_endif is not reset,
	    causing messages to be overwritten.
Solution:   Reset did_endif. (Christian Brabandt)
Files:	    src/ex_docmd.c

Patch 7.3.738 (after 7.3.730)
Problem:    Unused function argument.
Solution:   Remove it. (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.3.739
Problem:    Computing number of lines may have an integer overflow.
Solution:   Check for MAXCOL explicitly. (Dominique Pelle)
Files:	    src/move.c

Patch 7.3.740
Problem:    IOC tool complains about undefined behavior for int.
Solution:   Change to unsigned int. (Dominique Pelle)
Files:	    src/hashtab.c, src/misc2.c

Patch 7.3.741 (after 7.3.737)
Problem:    Tiny build fails.
Solution:   Move #ifdef. (Ike Devolder)
Files:	    src/ex_docmd.c

Patch 7.3.742
Problem:    Leaking memory when :vimgrep restores the directory.
Solution:   Free the allocated memory. (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.3.743 (after 7.3.741)
Problem:    Tiny build still fails.
Solution:   Add #else in the right place.
Files:	    src/ex_docmd.c

Patch 7.3.744
Problem:    64 bit compiler warning.
Solution:   Add type cast. (Mike Williams)
Files:	    src/ex_cmds.c

Patch 7.3.745
Problem:    Automatically setting 'ttymouse' doesn't work.
Solution:   Reset the "option was set" flag when using the default.
Files:	    src/option.c, src/proto/option.pro, src/term.c

Patch 7.3.746
Problem:    Memory leaks when using location lists.
Solution:   Set qf_title to something. (Christian Brabandt)
Files:	    src/eval.c, src/quickfix.c

Patch 7.3.747
Problem:    When characters are concealed text aligned with tabs are no longer
	    aligned, e.g. at ":help :index".
Solution:   Compensate space for tabs for concealed characters. (Dominique
	    Pelle)
Files:	    src/screen.c

Patch 7.3.748
Problem:    Cannot properly test conceal mode.
Solution:   Add the screencol() and screenrow() functions.  Use them in
	    test88. (Simon Ruderich)
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/screen.pro,
	    src/screen.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
	    src/testdir/Makefile, src/testdir/test88.in,
	    src/testdir/test88.ok,

Patch 7.3.749
Problem:    Python interface doesn't build without the multi-byte feature.
Solution:   Add #ifdef. (Ken Takata)
Files:	    src/if_py_both.h

Patch 7.3.750
Problem:    The justify macro does not always work correctly.
Solution:   Fix off-by-one error (James McCoy)
Files:	    runtime/macros/justify.vim

Patch 7.3.751
Problem:    Test 61 is flaky, it fails once in a while.
Solution:   When it fails retry once.
Files:	    src/testdir/Makefile

Patch 7.3.752
Problem:    Test 49 script file doesn't fold properly.
Solution:   Add a colon.
Files:	    src/testdir/test49.vim

Patch 7.3.753
Problem:    When there is a QuitPre autocommand using ":q" twice does not work
	    for exiting when there are more files to edit.
Solution:   Do not decrement quitmore in an autocommand. (Techlive Zheng)
Files:	    src/ex_docmd.c, src/fileio.c, src/proto/fileio.pro

Patch 7.3.754
Problem:    Latest nmake is not recognized.
Solution:   Add nmake version 11.00.51106.1. (Raymond Ko)
Files:	    src/Make_mvc.mak

Patch 7.3.755
Problem:    Autoconf doesn't find Python 3 if it's called "python".
Solution:   Search for "python2" and "python3" first, then "python".
Files:	    src/configure.in, src/auto/configure

Patch 7.3.756
Problem:    A location list can get a wrong count in :lvimgrep.
Solution:   Check if the list was changed by autocommands. (mostly by
	    Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.3.757
Problem:    Issue 96: May access freed memory when a put command triggers
	    autocommands. (Dominique Pelle)
Solution:   Call u_save() before getting y_array.
Files:	    src/ops.c

Patch 7.3.758
Problem:    Matchit plugin does not handle space in #ifdef.
Solution:   Change matching pattern to allow spaces. (Mike Morearty)
Files:	    runtime/macros/matchit.vim

Patch 7.3.759
Problem:    MS-Windows: Updating the tabline is slow when there are many tabs.
Solution:   Disable redrawing while performing the update. (Arseny Kapoulkine)
Files:	    src/gui_w48.c

Patch 7.3.760
Problem:    dv_ deletes the white space before the line.
Solution:   Move the cursor to the first non-white. (Christian Brabandt)
Files:	    src/normal.c, src/testdir/test19.in, src/testdir/test19.ok

Patch 7.3.761
Problem:    In Visual mode a "-p does not work. (Marcin Szamotulski)
Solution:   Avoid writing to "- before putting it. (Christian Brabandt)
Files:	    src/normal.c, src/testdir/test48.in, src/testdir/test48.ok

Patch 7.3.762 (after 7.3.759)
Problem:    On some systems the tabline is not redrawn.
Solution:   Call RedrawWindow(). (Charles Peacech)
Files:	    src/gui_w48.c

Patch 7.3.763
Problem:    Jumping to a mark does not open a fold if it is in the same line.
	    (Wiktor Ruben)
Solution:   Also compare the column after the jump. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.3.764
Problem:    Not all message translation files are installed.
Solution:   Also install the converted files.
Files:	    src/po/Makefile

Patch 7.3.765
Problem:    Segfault when doing "cclose" on BufUnload in a python function.
	    (Sean Reifschneider)
Solution:   Skip window with NULL buffer. (Christian Brabandt)
Files:	    src/main.c, src/window.c

Patch 7.3.766
Problem:    ":help cpo-*" jumps to the wrong place.
Solution:   Make it equivalent to ":help cpo-star".
Files:	    src/ex_cmds.c

Patch 7.3.767
Problem:    (Win32) The _errno used for iconv may be the wrong one.
Solution:   Use the _errno from iconv.dll. (Ken Takata)
Files:	    src/mbyte.c

Patch 7.3.768
Problem:    settabvar() and setwinvar() may move the cursor.
Solution:   Save and restore the cursor position when appropriate. (idea by
	    Yasuhiro Matsumoto)
Files:	    src/edit.c

Patch 7.3.769
Problem:    'matchpairs' does not work with multi-byte characters.
Solution:   Make it work. (Christian Brabandt)
Files:	    src/misc1.c, src/option.c, src/proto/option.pro, src/search.c,
	    src/testdir/test69.in, src/testdir/test69.ok

Patch 7.3.770
Problem:    Vim.h indentation is inconsistent.
Solution:   Adjust the indentation. (Elias Diem)
Files:	    src/vim.h

Patch 7.3.771 (after 7.3.769)
Problem:    Uninitialized variable. (Yasuhiro Matsumoto)
Solution:   Set x2 to -1.
Files:	    src/option.c

Patch 7.3.772
Problem:    Cursor is at the wrong location and below the end of the file
	    after doing substitutions with confirm flag: %s/x/y/c
	    (Dominique Pelle)
Solution:   Update the cursor position. (Christian Brabandt & Dominique)
Files:	    src/ex_cmds.c

Patch 7.3.773 (after 7.3.767)
Problem:    Crash when OriginalFirstThunk is zero.
Solution:   Skip items with OriginalFirstThunk not set. (Ken Takata)
Files:	    src/mbyte.c

Patch 7.3.774
Problem:    Tiny GUI version misses console dialog feature.
Solution:   Define FEAT_CON_DIALOG when appropriate. (Christian Brabandt)
Files:	    src/feature.h, src/gui.h

Patch 7.3.775
Problem:    Cygwin and Mingw builds miss dependency on gui_w48.c.
Solution:   Add a build rule. (Ken Takata)
Files:	    src/Make_cyg.mak, src/Make_ming.mak

Patch 7.3.776
Problem:    ml_get error when searching, caused by curwin not matching curbuf.
Solution:   Avoid changing curbuf. (Lech Lorens)
Files:	    src/charset.c, src/eval.c, src/mark.c, src/proto/charset.pro,
	    src/proto/mark.pro, src/regexp.c, src/syntax.c,

Patch 7.3.777
Problem:    When building with Gnome locale gets reset.
Solution:   Set locale after gnome_program_init(). (Christian Brabandt)
Files:	    src/gui_gtk_x11.c

Patch 7.3.778
Problem:    Compiler error for adding up two pointers. (Titov Anatoly)
Solution:   Add a type cast. (Ken Takata)
Files:	    src/mbyte.c

Patch 7.3.779
Problem:    Backwards search lands in wrong place when started on a multibyte
	    character.
Solution:   Do not set extra_col for a backwards search. (Sung Pae)
Files:	    src/search.c, src/testdir/test44.in, src/testdir/test44.ok

Patch 7.3.780
Problem:    char2nr() and nr2char() always use 'encoding'.
Solution:   Add argument to use utf-8 characters. (Yasuhiro Matsumoto)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.3.781
Problem:    Drawing with 'guifontwide' can be slow.
Solution:   Draw multiple characters at a time. (Taro Muraoka)
Files:	    src/gui.c

Patch 7.3.782
Problem:    Windows: IME composition may use a wrong font.
Solution:   Use 'guifontwide' for IME when it is set. (Taro Muraoka)
Files:	    runtime/doc/options.txt, src/gui.c, src/gui_w48.c,
	    src/proto/gui_w16.pro, src/proto/gui_w32.pro

Patch 7.3.783
Problem:    Crash when mark is not set. (Dominique Pelle)
Solution:   Check for NULL.
Files:	    src/normal.c

Patch 7.3.784 (after 7.3.781)
Problem:    Error when 'guifontwide' has a comma.
Solution:   Use gui.wide_font. (Taro Muraoka)
Files:	    src/gui_w48.c

Patch 7.3.785 (after 7.3.776)
Problem:    Crash with specific use of search pattern.
Solution:   Initialize reg_buf to curbuf.
Files:	    src/regexp.c

Patch 7.3.786
Problem:    Python threads don't run in the background (issue 103).
Solution:   Move the statements to manipulate thread state.
Files:	    src/if_python.c

Patch 7.3.787
Problem:    With 'relativenumber' set it is not possible to see the absolute
	    line number.
Solution:   For the cursor line show the absolute line number instead of a
	    zero. (Nazri Ramliy)
Files:	    src/screen.c

Patch 7.3.788
Problem:    When only using patches build fails on missing nl.po.
Solution:   Create an empty nl.po file.
Files:	    src/po/Makefile

Patch 7.3.789 (after 7.3.776)
Problem:    "\k" in regexp does not work in other window.
Solution:   Use the right buffer. (Yukihiro Nakadaira)
Files:	    src/mbyte.c, src/proto/mbyte.pro, src/regexp.c

Patch 7.3.790
Problem:    After reloading a buffer the modelines are not processed.
Solution:   call do_modelines(). (Ken Takata)
Files:	    src/fileio.c

Patch 7.3.791
Problem:    MzScheme interface doesn't work properly.
Solution:   Make it work better. (Sergey Khorev)
Files:	    runtime/doc/if_mzsch.txt, src/configure.in, src/auto/configure,
	    src/eval.c, src/if_mzsch.c, src/if_mzsch.h, src/Make_ming.mak,
	    src/Make_mvc.mak, src/os_unix.c, src/proto/eval.pro,
	    src/testdir/test70.in, src/testdir/test70.ok

Patch 7.3.792
Problem:    ":substitute" works differently without confirmation.
Solution:   Do not change the text when asking for confirmation, only display
	    it.
Files:	    src/ex_cmds.c

Patch 7.3.793 (after 7.3.792)
Problem:    New interactive :substitute behavior is not tested.
Solution:   Add tests. (Christian Brabandt)
Files:	    src/testdir/test80.in, src/testdir/test80.ok

Patch 7.3.794
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Adjust #ifdefs.
Files:	    src/charset.c

Patch 7.3.795
Problem:    MzScheme does not build with tiny features.
Solution:   Add #ifdefs.  Also add UNUSED to avoid warnings.  And change
	    library ordering.
Files:	    src/if_mzsch.c, src/Makefile

Patch 7.3.796
Problem:    "/[^\n]" does match at a line break.
Solution:   Make it do the same as "/.". (Christian Brabandt)
Files:	    src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok

Patch 7.3.797 (after 7.3.792)
Problem:    Compiler warning for size_t to int conversion. (Skeept)
Solution:   Add type casts.
Files:	    src/ex_cmds.c

Patch 7.3.798 (after 7.3.791)
Problem:    MzScheme: circular list does not work correctly.
Solution:   Separate Mac-specific code from generic code. (Sergey Khorev)
Files:	    src/if_mzsch.c, src/testdir/test70.in

Patch 7.3.799
Problem:    The color column is not correct when entering a buffer. (Ben
	    Fritz)
Solution:   Call check_colorcolumn() if 'textwidth' changed. (Christian
	    Brabandt)
Files:	    src/buffer.c

Patch 7.3.800
Problem:    The " mark is not adjusted when inserting lines. (Roland Eggner)
Solution:   Adjust the line number. (Christian Brabandt)
Files:	    src/mark.c

Patch 7.3.801
Problem:    ":window set nu?" displays the cursor line. (Nazri Ramliy)
Solution:   Do not update the cursor line when conceallevel is zero or the
	    screen has scrolled. (partly by Christian Brabandt)
Files:	    src/window.c

Patch 7.3.802
Problem:    After setting 'isk' to a value ending in a comma appending to the
	    option fails.
Solution:   Disallow a trailing comma for 'isk' and similar options.
Files:	    src/charset.c

Patch 7.3.803 (after 7.3.792)
Problem:    Substitute with confirmation and then "q" does not replace
	    anything.  (John McGowan)
Solution:   Do not break the loop, skip to the end.
Files:	    src/ex_cmds.c, src/testdir/test80.in, src/testdir/test80.ok

Patch 7.3.804 (after 7.3.799)
Problem:    Compiler warning for tiny build. (Tony Mechelynck)
Solution:   Add #ifdefs around variable.
Files:	    src/buffer.c

Patch 7.3.805
Problem:    Lua version 5.2 is not detected properly on Arch Linux.
Solution:   Adjust autoconf. (lilydjwg)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.806
Problem:    Compiler warnings in Perl code when building with Visual studio
	    2012. (skeept)
Solution:   Add type casts. (Christian Brabandt, 2013 Jan 30)
Files:	    src/if_perl.xs

Patch 7.3.807
Problem:    Popup menu does not work properly with the preview window, folds
	    and 'cursorcolumn'.
Solution:   Redraw the popup menu after redrawing windows. (Christian
	    Brabandt)
Files:	    src/screen.c

Patch 7.3.808
Problem:    Python threads still do not work properly.
Solution:   Fix both Python 2 and 3.  Add tests. (Ken Takata)
Files:	    src/if_python.c, src/if_python3.c, src/testdir/test86.in,
	    src/testdir/test86.ok, src/testdir/test87.in,
	    src/testdir/test87.ok

Patch 7.3.809
Problem:    The dosinst.c program has a buffer overflow. (Thomas Gwae)
Solution:   Ignore $VIMRUNTIME if it is too long.
Files:	    src/dosinst.c

Patch 7.3.810
Problem:    'relativenumber' is reset unexpectedly. (François Ingelrest)
Solution:   After an option was reset also reset the global value. Add a test.
	    (Christian Brabandt)
Files:	    src/option.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test89.in,
	    src/testdir/test89.ok

Patch 7.3.811
Problem:    Useless termresponse parsing for SGR mouse.
Solution:   Skip the parsing. (Hayaki Saito)
Files:	    src/term.c

Patch 7.3.812
Problem:    When 'indentexpr' moves the cursor "curswant" not restored.
Solution:   Restore "curswant". (Sung Pae)
Files:	    src/misc1.c

Patch 7.3.813
Problem:    The CompleteDone event is not triggered when there are no pattern
	    matches. (Jianjun Mao)
Solution:   Trigger the event. (Christian Brabandt)
Files:	    src/edit.c

Patch 7.3.814
Problem:    Can't input multibyte characters on Win32 console if 'encoding' is
	    different from current codepage.
Solution:   Use convert_input_safe() instead of convert_input().  Make
	    string_convert_ext() return an error for incomplete input. (Ken
	    Takata)
Files:	    src/mbyte.c, src/os_win32.c

Patch 7.3.815
Problem:    Building with Cygwin and Ruby doesn't work.
Solution:   Copy some things from the MingW build file. (Ken Takata)
Files:	    src/Make_cyg.mak

Patch 7.3.816
Problem:    Can't compute a hash.
Solution:   Add the sha256() function. (Tyru, Hirohito Higashi)
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/sha256.pro,
	    src/sha256.c, src/testdir/test90.in, src/testdir/test90.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.3.817
Problem:    Test 89 fails with tiny and small features.
Solution:   Add sourcing small.vim.
Files:	    src/testdir/test89.in

Patch 7.3.818
Problem:    When test 40 fails because of a bad build it may leave files
	    behind that cause it to fail later.
Solution:   Let the file names start with "X".
Files:	    src/testdir/test40.in

Patch 7.3.819
Problem:    Compiling without +eval and with Python isn't working.
Solution:   Add the eval feature when building with Python.
Files:	    src/if_py_both.h, src/feature.h, src/eval.c, src/ex_docmd.c,
	    src/normal.c, src/ex_docmd.c, src/gui_gtk_x11.c

Patch 7.3.820
Problem:    Build errors and warnings when building with small features and
	    Lua, Perl or Ruby.
Solution:   Add #ifdefs and UNUSED.
Files:	    src/if_perl.xs, src/if_lua.c, src/if_ruby.c

Patch 7.3.821
Problem:    Build with OLE and Cygwin is broken. (Steve Hall)
Solution:   Select static or shared stdc library. (Ken Takata)
Files:	    src/Make_cyg.mak

Patch 7.3.822 (after 7.3.799)
Problem:    Crash when accessing freed buffer.
Solution:   Get 'textwidth' in caller of enter_buffer(). (Christian Brabandt)
Files:	    src/buffer.c

Patch 7.3.823 (after 7.3.821)
Problem:    Building with Cygwin: '-lsupc++' is not needed.
Solution:   Remove it. (Ken Takata)
Files:	    src/Make_cyg.mak

Patch 7.3.824
Problem:    Can redefine builtin functions.  (ZyX)
Solution:   Disallow adding a function to g:.
Files:	    src/eval.c

Patch 7.3.825
Problem:    With Python errors are not always clear.
Solution:   Print the stack trace, unless :silent is used. (ZyX)
Files:	    src/if_python3.c, src/if_python.c

Patch 7.3.826
Problem:    List of features in :version output is hard to read.
Solution:   Make columns. (Nazri Ramliy)
Files:	    src/version.c

Patch 7.3.827 (after 7.3.825)
Problem:    Python tests fail.
Solution:   Adjust the output for the stack trace.
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.ok

Patch 7.3.828
Problem:    Mappings are not aware of wildmenu mode.
Solution:   Add wildmenumode(). (Christian Brabandt)
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 7.3.829
Problem:    When compiled with the +rightleft feature 'showmatch' also shows a
	    match for the opening paren.  When 'revins' is set the screen may
	    scroll.
Solution:   Only check the opening paren when the +rightleft feature was
	    enabled.  Do not show a match that is not visible. (partly by
	    Christian Brabandt)
Files:	    src/search.c

Patch 7.3.830
Problem:    :mksession confuses bytes, columns and characters when positioning
	    the cursor.
Solution:   Use w_virtcol with "|" instead of w_cursor.col with "l".
Files:	    src/ex_docmd.c

Patch 7.3.831
Problem:    Clumsy to handle the situation that a variable does not exist.
Solution:   Add default value to getbufvar() et al. (Shougo Matsushita,
	    Hirohito Higashi)
Files:	    runtime/doc/eval.txt, src/eval.c src/testdir/test91.in,
	    src/testdir/test91.ok, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile

Patch 7.3.832
Problem:    Compiler warning.
Solution:   Add type cast. (Mike Williams)
Files:	    src/version.c

Patch 7.3.833
Problem:    In the terminal the scroll wheel always scrolls the active window.
Solution:   Scroll the window under the mouse pointer, like in the GUI.
	    (Bradie Rao)
Files:	    src/edit.c, src/normal.c

Patch 7.3.834
Problem:    Ruby 2.0 has a few API changes.
Solution:   Add handling of Ruby 2.0. (Yasuhiro Matsumoto)
Files:	    src/if_ruby.c

Patch 7.3.835
Problem:    "xxd -i" fails on an empty file.
Solution:   Do output the closing } for an empty file. (partly by Lawrence
	    Woodman)
Files:	    src/xxd/xxd.c

Patch 7.3.836
Problem:    Clipboard does not work on Win32 when compiled with Cygwin.
Solution:   Move the Win32 clipboard code to a separate file and use it when
	    building with os_unix.c. (Frodak Baksik, Ken Takata)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ivc.mak,
	    src/Make_ming.mak, src/Make_mvc.mak, src/Make_w16.mak,
	    src/Makefile, src/config.h.in, src/configure.in,
	    src/auto/configure, src/feature.h, src/globals.h, src/mbyte.c,
	    src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/proto.h,
	    src/proto/os_mswin.pro, src/proto/winclip.pro, src/term.c,
	    src/vim.h, src/winclip.c

Patch 7.3.837 (after 7.3.826)
Problem:    Empty lines in :version output when 'columns' is 320.
Solution:   Simplify the logic of making columns. (Nazri Ramliy, Roland
	    Eggner)
Files:	    src/version.c

Patch 7.3.838 (after 7.3.830)
Problem:    Insufficient testing for mksession.
Solution:   Add tests. (mostly by Roland Eggner)
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test92.in, src/testdir/test92.ok,
	    src/testdir/test93.in, src/testdir/test93.ok,
	    src/ex_docmd.c

Patch 7.3.839
Problem:    Some files missing in the list of distributed files.
Solution:   Add lines for new files.
Files:	    Filelist

Patch 7.3.840
Problem:    "\@<!" in regexp does not work correctly with multi-byte
	    characters, especially cp932.
Solution:   Move column to start of multi-byte character. (Yasuhiro Matsumoto)
Files:	    src/regexp.c

Patch 7.3.841
Problem:    When a "cond ? one : two" expression has a subscript it is not
	    parsed correctly. (Andy Wokula)
Solution:   Handle a subscript also when the type is unknown. (Christian
	    Brabandt)
Files:	    src/eval.c

Patch 7.3.842
Problem:    Compiler warning for signed/unsigned pointer.
Solution:   Add type cast. (Christian Brabandt)
Files:	    src/eval.c

Patch 7.3.843 (after 7.3.841)
Problem:    Missing test file changes.
Solution:   Change the tests.
Files:	    src/testdir/test49.vim, src/testdir/test49.ok

Patch 7.3.844
Problem:    Enum is not indented correctly with "public" etc.
Solution:   Skip "public", "private" and "protected". (Hong Xu)
Files:	    src/misc1.c

Patch 7.3.845 (after 7.3.844)
Problem:    Enum indenting is not tested.
Solution:   Add tests. (Hong Xu)
Files:	    src/testdir/test3.in, src/testdir/test3.ok

Patch 7.3.846
Problem:    Missing proto files.
Solution:   Add the files.
Files:	    Filelist, src/proto/os_beos.pro

Patch 7.3.847
Problem:    Test 55 fails when messages are translated.
Solution:   Set language to C. (Ken Takata)
Files:	    src/testdir/test55.in

Patch 7.3.848
Problem:    Can't build with Ruby 2.0 when using MinGW x64 or MSVC10.
Solution:   Fix it. Also detect RUBY_PLATFORM and RUBY_INSTALL_NAME for x64.
	    (Ken Takata)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/if_ruby.c

Patch 7.3.849
Problem:    ":g//" gives "Pattern not found error" with E486.  Should not use
	    the error number, it's not a regular error message.
Solution:   Use a normal message. (David Bürgin)
Files:	    src/ex_cmds.c

Patch 7.3.850
Problem:    ":vimgrep //" matches everywhere.
Solution:   Make it use the previous search pattern. (David Bürgin)
Files:	    runtime/doc/quickfix.txt, src/quickfix.c

Patch 7.3.851
Problem:    Using an empty pattern with :sort silently continues when there is
	    no previous search pattern.
Solution:   Give an error message. (David Bürgin)
Files:	    src/ex_cmds.c

Patch 7.3.852
Problem:    system() breaks clipboard text. (Yukihiro Nakadaira)
Solution:   Use Xutf8TextPropertyToTextList(). (Christian Brabandt)
	    Also do not put the text in the clip buffer if conversion fails.
Files:	    src/ui.c, src/ops.c

Patch 7.3.853
Problem:    Using "ra" in multiple lines on multi-byte characters leaves a few
	    characters not replaced.
Solution:   Adjust the end column only in the last line. (Yasuhiro Matsumoto)
Files:	    src/testdir/test69.in, src/testdir/test69.ok, src/ops.c

Patch 7.3.854
Problem:    After using backspace in insert mode completion, CTRL-N and CTRL-P
	    do not highlight the right entry. (Olivier Teuliere)
Solution:   Set the current item to the shown item after using backspace.
Files:	    src/edit.c

Patch 7.3.855
Problem:    Compiler warnings.
Solution:   Add type casts. (Mike Williams)
Files:	    src/misc1.c

Patch 7.3.856
Problem:    When calling system() multi-byte clipboard contents is garbled.
Solution:   Save and restore the clipboard contents.  (Yukihiro Nakadaira)
Files:	    src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/ops.c,
	    src/proto/ops.pro, src/os_unix.c, src/proto/ui.pro, src/ui.c

Patch 7.3.857
Problem:    The QuitPre autocommand event does not trigger for :qa and :wq.
Solution:   Trigger the event. (Tatsuro Fujii)
Files:	    src/ex_docmd.c

Patch 7.3.858
Problem:    "gv" selects the wrong area after some operators.
Solution:   Save and restore the type of selection. (Christian Brabandt)
Files:	    src/testdir/test66.in, src/testdir/test66.ok, src/normal.c

Patch 7.3.859
Problem:    'ambiwidth' must be set by the user.
Solution:   Detects East Asian ambiguous width (UAX #11) state of the terminal
	    at the start-up time and 'ambiwidth' accordingly.  (Hayaki Saito)
Files:	    src/main.c, src/option.c, src/term.c, src/term.h,
	    src/proto/term.pro

Patch 7.3.860
Problem:    When using --remote-expr try/catch does not work. (Andrey Radev)
Solution:   Set emsg_silent instead of emsg_skip.
Files:	    src/main.c

Patch 7.3.861
Problem:    ":setlocal number" clears global value of 'relativenumber'.
Solution:   Do it properly. (Markus Heidelberg)
Files:	    src/testdir/test89.in, src/testdir/test89.ok, src/option.c

Patch 7.3.862
Problem:    Dragging the status line can be slow.
Solution:   Look ahead and drop the drag event if there is a next one.
Files:	    src/eval.c, src/misc1.c, src/proto/misc1.pro, src/normal.c

Patch 7.3.863 (after 7.3.859)
Problem:    Problem with 'ambiwidth' detection for ANSI terminal.
Solution:   Work around not recognizing a term response. (Hayaki Saito)
Files:	    src/term.c

Patch 7.3.864 (after 7.3.862)
Problem:    Can't build without the mouse feature.
Solution:   Add an #ifdef. (Ike Devolder)
Files:	    src/misc1.c

Patch 7.3.865 (after 7.3.862)
Problem:    Mouse position may be wrong.
Solution:   Let vungetc() restore the mouse position.
Files:	    src/getchar.c

Patch 7.3.866
Problem:    Not serving the X selection during system() isn't nice.
Solution:   When using fork() do not loose the selection, keep serving it.
	    Add a loop similar to handling I/O. (Yukihiro Nakadaira)
Files:	    src/os_unix.c

Patch 7.3.867
Problem:    Matchparen does not update match when using auto-indenting.
	    (Marc Aldorasi)
Solution:   Add the TextChanged and TextChangedI autocommand events.
Files:	    runtime/plugin/matchparen.vim, src/main.c, src/edit.c,
	    src/globals.h, src/vim.h, src/fileio.c, src/proto/fileio.pro,
	    runtime/doc/autocmd.txt

Patch 7.3.868
Problem:    When at the hit-return prompt and using "k" while no text has
	    scrolled off screen, then using "j", an empty line is displayed.
Solution:   Only act on "k" when text scrolled off screen.  Also accept
	    page-up and page-down.  (cptstubing)
Files:	    src/message.c

Patch 7.3.869
Problem:    bufwinnr() matches buffers in other tabs.
Solution:   For bufwinnr() and ? only match buffers in the current tab.
	    (Alexey Radkov)
Files:	    src/buffer.c, src/diff.c, src/eval.c, src/ex_docmd.c,
	    src/if_perl.xs, src/proto/buffer.pro

Patch 7.3.870
Problem:    Compiler warnings when using MingW 4.5.3.
Solution:   Do not use MAKEINTRESOURCE. Adjust #if. (Ken Takata)
Files:	    src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c,
	    src/os_win32.h

Patch 7.3.871
Problem:    search('^$', 'c') does not use the empty match under the cursor.
Solution:   Special handling of the 'c' flag. (Christian Brabandt)
	    Add tests.
Files:	    src/search.c, src/testdir/test14.in, src/testdir/test14.ok

Patch 7.3.872
Problem:    On some systems case of file names is always ignored, on others
	    never.
Solution:   Add the 'fileignorecase' option to control this at runtime.
	    Implies 'wildignorecase'.
Files:	    src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
	    src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
	    src/option.h, src/vim.h, runtime/doc/options.txt

Patch 7.3.873
Problem:    Cannot easily use :s to make title case.
Solution:   Have "\L\u" result in title case. (James McCoy)
Files:	    src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok,
	    src/testdir/test80.in, src/testdir/test80.ok

Patch 7.3.874
Problem:    Comparing file names does not handle multi-byte characters
	    properly.
Solution:   Implement multi-byte handling.
Files:	    src/misc1.c, src/misc2.c

Patch 7.3.875 (after 7.3.866)
Problem:    Build problem with some combination of features.
Solution:   Use FEAT_XCLIPBOARD instead of FEAT_CLIPBOARD.
Files:	    src/os_unix.c

Patch 7.3.876
Problem:    #if indents are off.
Solution:   Insert a space where appropriate. (Taro Muraoka)
Files:	    src/gui.c

Patch 7.3.877 (after 7.3.871)
Problem:    Forward searching with search() is broken.
Solution:   Fix it and add tests. (Sung Pae)
Files:	    src/search.c, src/testdir/test14.in, src/testdir/test14.ok

Patch 7.3.878
Problem:    'fileignorecase' is missing in options window and quickref.
Solution:   Add the option.
Files:	    runtime/optwin.vim, runtime/doc/quickref.txt

Patch 7.3.879
Problem:    When using an ex command in operator pending mode, using Esc to
	    abort the command still executes the operator. (David Bürgin)
Solution:   Clear the operator when the ex command fails. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.3.880
Problem:    When writing viminfo, old history lines may replace lines written
	    more recently by another Vim instance.
Solution:   Mark history entries that were read from viminfo and overwrite
	    them when merging with the current viminfo.
Files:	    src/ex_getln.c

Patch 7.3.881
Problem:    Python list does not work correctly.
Solution:   Fix it and add a test. (Yukihiro Nakadaira)
Files:	    src/testdir/test86.in, src/testdir/test86.ok, src/if_py_both.h

Patch 7.3.882
Problem:    CursorHold may trigger after receiving the termresponse.
Solution:   Set the did_cursorhold flag. (Hayaki Saito)
Files:	    src/term.c

Patch 7.3.883 (after 7.3.880)
Problem:    Can't build with some combination of features.
Solution:   Adjust #ifdefs.
Files:	    src/ex_getln.c

Patch 7.3.884
Problem:    Compiler warning for variable shadowing another. (John Little)
Solution:   Rename the variable. (Christian Brabandt)
Files:	    src/term.c

Patch 7.3.885
Problem:    Double free for list and dict in Lua. (Shougo Matsu)
Solution:   Do not unref list and dict. (Yasuhiro Matsumoto)
Files:	    src/if_lua.c

Patch 7.3.886
Problem:    Can't build with multi-byte on Solaris 10.
Solution:   Add #ifdef X_HAVE_UTF8_STRING. (Laurent Blume)
Files:	    src/ui.c

Patch 7.3.887
Problem:    No tests for Visual mode operators, what 7.3.879 fixes.
Solution:   Add a new test file. (David Bürgin)
Files:	    src/testdir/test94.in, src/testdir/test94.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.3.888
Problem:    Filename completion with 'fileignorecase' does not work for
	    multi-byte characters.
Solution:   Make 'fileignorecase' work properly. (Hirohito Higashi)
Files:	    src/misc2.c

Patch 7.3.889
Problem:    Can't build with Ruby 2.0 on a 64 bit system.
Solution:   Define rb_fix2int and rb_num2int. (Kohei Suzuki)
Files:	    src/if_ruby.c

Patch 7.3.890
Problem:    Test 79 fails on Windows. (Michael Soyka)
Solution:   Add comment below line causing an error.
Files:	    src/testdir/test79.in

Patch 7.3.891
Problem:    Merging viminfo history doesn't work well.
Solution:   Don't stop when one type of history is empty. Don't merge history
	    when writing viminfo.
Files:	    src/ex_getln.c

Patch 7.3.892 (after 7.3.891)
Problem:    Still merging problems for viminfo history.
Solution:   Do not merge lines when writing, don't write old viminfo lines.
Files:	    src/ex_getln.c, src/ex_cmds.c, src/proto/ex_getln.pro

Patch 7.3.893
Problem:    Crash when using b:, w: or t: after closing the buffer, window or
	    tabpage.
Solution:   Allocate the dictionary instead of having it part of the
	    buffer/window/tabpage struct. (Yukihiro Nakadaira)
Files:	    src/buffer.c, src/eval.c, src/fileio.c, src/structs.h,
	    src/window.c, src/proto/eval.pro

Patch 7.3.894
Problem:    Using wrong RUBY_VER causing Ruby build to break.
Solution:   Correct the RUBY_VER value. (Yongwei Wu)
Files:	    src/bigvim.bat

Patch 7.3.895
Problem:    Valgrind error in test 91. (Issue 128)
Solution:   Pass scope name to find_var_in_ht().
Files:	    src/eval.c

Patch 7.3.896
Problem:    Memory leaks in Lua interface.
Solution:   Fix the leaks, add tests. (Yukihiro Nakadaira)
Files:	    src/testdir/test85.in, src/testdir/test85.ok, src/if_lua.c

Patch 7.3.897
Problem:    Configure doesn't always find the shared library.
Solution:   Change the configure script. (Ken Takata)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.898
Problem:    Memory leak reported by valgrind in test 91.
Solution:   Only use default argument when needed.
Files:	    src/eval.c, src/testdir/test91.in, src/testdir/test91.ok

Patch 7.3.899
Problem:    #if indents are off.
Solution:   Fix the indents.
Files:	    src/os_unix.c

Patch 7.3.900
Problem:    Not obvious that some mouse features are mutual-exclusive.
Solution:   Add a comment.
Files:	    src/feature.h

Patch 7.3.901
Problem:    Outdated comment, ugly condition.
Solution:   Update a few comments, break line.
Files:	    src/getchar.c, src/misc1.c, src/undo.c

Patch 7.3.902
Problem:    When deleting last buffer in other tab the tabline is not updated.
Solution:   Set the redraw_tabline flag. (Yukihiro Nakadaira)
Files:	    src/window.c

Patch 7.3.903 (after 7.3.892)
Problem:    Crash on exit writing viminfo. (Ron Aaron)
Solution:   Check for the history to be empty.
Files:	    src/ex_getln.c

Patch 7.3.904 (after 7.3.893)
Problem:    Using memory freed by the garbage collector.
Solution:   Mark items in aucmd_win as used.
Files:	    src/eval.c

Patch 7.3.905 (after 7.3.903)
Problem:    Crash when writing viminfo. (Ron Aaron)
Solution:   Prevent freed history info to be used.
Files:	    src/ex_getln.c

Patch 7.3.906
Problem:    The "sleep .2" for running tests does not work on Solaris.
Solution:   Fall back to using "sleep 1". (Laurent Blume)
Files:	    src/testdir/Makefile

Patch 7.3.907
Problem:    Python uses IndexError when a dict key is not found.
Solution:   Use KeyError instead. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.908
Problem:    Possible crash when using a list in Python.
Solution:   Return early if the list is NULL. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.909
Problem:    Duplicate Python code.
Solution:   Move more items to if_py_both.h. (ZyX)  Also avoid compiler
	    warnings for missing initializers.
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.910
Problem:    Python code in #ifdef branches with only minor differences.
Solution:   Merge the #ifdef branches. (ZyX)
Files:	    src/if_py_both.h, src/if_python.c

Patch 7.3.911
Problem:    Python: Access to Vim variables is not so easy.
Solution:   Define vim.vars and vim.vvars. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/eval.c, src/globals.h,
	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.912
Problem:    Typing a ":" command at the hit-enter dialog does not work if the
	    "file changed" dialog happens next.
Solution:   Check for changed files before giving the hit-enter dialog.
Files:	    src/message.c

Patch 7.3.913 (after 7.3.905)
Problem:    Still a crash when writing viminfo.
Solution:   Add checks for NULL pointers. (Ron Aaron)
Files:	    src/ex_getln.c

Patch 7.3.914
Problem:    ~/.viminfo is messed up when running tests.
Solution:   Set the viminfo filename.
Files:	    src/testdir/test89.in, src/testdir/test94.in

Patch 7.3.915
Problem:    When reading a file with encoding conversion fails at the end the
	    next encoding in 'fencs' is not used.
Solution:   Retry with another encoding when possible. (Taro Muraoka)
Files:	    src/fileio.c

Patch 7.3.916
Problem:    Using freed memory when pasting with the mouse (Issue 130).
Solution:   Get the byte value early. (hint by Dominique Pelle)
Files:	    src/buffer.c

Patch 7.3.917
Problem:    When a path ends in a backslash appending a comma has the wrong
	    effect.
Solution:   Replace a trailing backslash with a slash. (Nazri Ramliy)
Files:	    src/misc1.c, src/testdir/test73.in, src/testdir/test73.ok

Patch 7.3.918
Problem:    Repeating an Ex command after using a Visual motion does not work.
Solution:   Check for an Ex command being used. (David Bürgin)
Files:	    src/normal.c

Patch 7.3.919 (after 7.3.788)
Problem:    An empty nl.po file does not work with an old msgfmt.
Solution:   Put a single # in the file. (Laurent Blume)
Files:	    src/po/Makefile

Patch 7.3.920
Problem:    Compiler warning for size_t to int.
Solution:   Add a type cast. (Mike Williams)
Files:	    src/misc1.c

Patch 7.3.921 (after 7.3.697)
Problem:    Trying to create a fontset handle when 'guifontset' is not set.
Solution:   Add curly braces around the code block. (Max Kirillov)
Files:	    src/syntax.c

Patch 7.3.922
Problem:    No test for what 7.3.918 fixes.
Solution:   Add a test. (David Bürgin)
Files:	    src/testdir/test94.in, src/testdir/test94.ok

Patch 7.3.923
Problem:    Check for X11 header files fails on Solaris.
Solution:   Only use -Werror for gcc. (Laurent Blume)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.924
Problem:    Python interface can't easily access options.
Solution:   Add vim.options, vim.window.options and vim.buffer.options. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h,
	    src/if_python.c, src/if_python3.c, src/option.c,
	    src/proto/eval.pro, src/proto/option.pro, src/testdir/test86.in,
	    src/testdir/test86.ok, src/testdir/test87.in,
	    src/testdir/test87.ok, src/vim.h

Patch 7.3.925
Problem:    Typos in source files.
Solution:   Fix the typos. (Ken Takata)
Files:	    runtime/plugin/matchparen.vim, runtime/tools/vim_vs_net.cmd,
	    src/GvimExt/gvimext.cpp, src/INSTALLvms.txt, src/Make_cyg.mak,
	    src/Make_mvc.mak, src/Make_sas.mak, src/Make_vms.mms,
	    src/Make_w16.mak, src/Makefile, src/VisVim/OleAut.cpp,
	    src/VisVim/README_VisVim.txt, src/auto/configure, src/buffer.c,
	    src/configure.in, src/diff.c, src/dosinst.c, src/edit.c,
	    src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
	    src/farsi.c, src/feature.h, src/fileio.c, src/glbl_ime.cpp,
	    src/gui.c, src/gui_athena.c, src/gui_beval.c, src/gui_gtk_x11.c,
	    src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w16.c,
	    src/gui_w32.c, src/gui_w48.c, src/gui_xmebw.c, src/gui_xmebwp.h,
	    src/hardcopy.c, src/if_cscope.c, src/if_mzsch.c, src/if_ole.cpp,
	    src/if_perl.xs, src/if_py_both.h, src/if_python.c,
	    src/if_python3.c, src/if_ruby.c, src/main.aap, src/mbyte.c,
	    src/memfile.c, src/memline.c, src/misc1.c, src/misc2.c,
	    src/nbdebug.c, src/normal.c, src/ops.c, src/os_amiga.c,
	    src/os_mac.h, src/os_msdos.c, src/os_mswin.c, src/os_win16.h,
	    src/os_win32.c, src/os_win32.h, src/quickfix.c, src/screen.c,
	    src/search.c, src/spell.c, src/structs.h, src/syntax.c,
	    src/window.c, vimtutor.com


Patch 7.3.926
Problem:    Autocommands are triggered by setwinvar() et al. Missing BufEnter
	    on :tabclose. Duplicate WinEnter on :tabclose. Wrong order of
	    events for :tablose and :tabnew.
Solution:   Fix these autocommand events. (ZyX)
Files:	    runtime/doc/eval.txt, src/buffer.c, src/eval.c, src/ex_cmds2.c,
	    src/fileio.c, src/proto/window.pro, src/testdir/test62.in,
	    src/testdir/test62.ok, src/window.c

Patch 7.3.927
Problem:    Missing combining characters when putting text in a register.
Solution:   Include combining characters. (David Bürgin)
Files:	    src/getchar.c, src/testdir/test44.in, src/testdir/test44.ok

Patch 7.3.928 (after 7.3.924)
Problem:    Can't build with strict C compiler.
Solution:   Move declaration to start of block. (Taro Muraoka)
Files:	    src/if_py_both.h

Patch 7.3.929 (after 7.3.924)
Problem:    Compiler warning for unused variable. Not freeing unused string.
Solution:   Remove the variable. Clear the options.
Files:	    src/option.c

Patch 7.3.930
Problem:    MSVC 2012 update is not recognized.
Solution:   Update the version in the makefile. (Raymond Ko)
Files:	    src/Make_mvc.mak

Patch 7.3.931
Problem:    No completion for :xmap and :smap. (Yukihiro Nakadaira)
Solution:   Add the case statements. (Christian Brabandt)
Files:	    src/ex_docmd.c

Patch 7.3.932
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize the variable.
Files:	    src/option.c

Patch 7.3.933
Problem:    Ruby on Mac crashes due to GC failure.
Solution:   Init the stack from main(). (Hiroshi Shirosaki)
Files:	    src/main.c, src/if_ruby.c, src/proto/if_ruby.pro

Patch 7.3.934
Problem:    E381 and E380 make the user think nothing happened.
Solution:   Display the message indicating what error list is now active.
	    (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.3.935 (after 7.3.933)
Problem:    Ruby: Init stack works differently on 64 bit systems.
Solution:   Handle 64 bit systems and also static library. (Yukihiro
	    Nakadaira)
Files:	    src/if_ruby.c

Patch 7.3.936 (after 7.3.935)
Problem:    Ruby 1.8: Missing piece for static linking on 64 bit systems.
Solution:   Define ruby_init_stack() (Hiroshi Shirosaki)
	    Also fix preprocessor indents.
Files:	    src/if_ruby.c

Patch 7.3.937
Problem:    More can be shared between Python 2 and 3.
Solution:   Move code to if_py_both.h. (ZyX)
Files:	    src/if_python.c, src/if_python3.c, src/if_py_both.h

Patch 7.3.938
Problem:    Python: not easy to get to window number.
Solution:   Add vim.window.number. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/proto/window.pro,
	    src/window.c

Patch 7.3.939
Problem:    Using Py_BuildValue is inefficient sometimes.
Solution:   Use PyLong_FromLong(). (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.940
Problem:    Python: Can't get position of window.
Solution:   Add window.row and window.col. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h

Patch 7.3.941
Problem:    Stuff in if_py_both.h is ordered badly.
Solution:   Reorder by type. (ZyX)
Files:	    src/if_py_both.h, src/if_python.c

Patch 7.3.942
Problem:    Python: SEGV in Buffer functions.
Solution:   Call CheckBuffer() at the right time. (ZyX)
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.3.943
Problem:    Python: Negative indices were failing.
Solution:   Fix negative indices. Add tests. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/testdir/test86.in,
	    src/testdir/test86.ok, src/testdir/test87.in,
	    src/testdir/test87.ok

Patch 7.3.944
Problem:    External program receives the termresponse.
Solution:   Insert a delay and discard input. (Hayaki Saito)
Files:	    src/term.c

Patch 7.3.945
Problem:    Python: List of buffers is not very useful.
Solution:   Make vim.buffers a map. No iterator yet. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
	    src/if_python.c, src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.946
Problem:    Sometimes get stuck in waiting for cursor position report,
	    resulting in keys starting with <Esc>[ not working.
Solution:   Only wait for more characters after <Esc>[ if followed by '?', '>'
	    or a digit.
Files:	    src/term.c

Patch 7.3.947
Problem:    Python: No iterator for vim.list and vim.bufferlist.
Solution:   Add the iterators. Also fix name of FunctionType. Add tests for
	    vim.buffers.  (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h,
	    src/if_python3.c, src/if_python.c, src/proto/eval.pro,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.948
Problem:    Cannot build with Python 2.2
Solution:   Make Python interface work with Python 2.2
	    Make 2.2 the first supported version. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.ok, src/configure.in, src/auto/configure

Patch 7.3.949
Problem:    Python: no easy access to tabpages.
Solution:   Add vim.tabpages and vim.current.tabpage. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
	    src/if_python.c, src/proto/if_python3.pro,
	    src/proto/if_python.pro, src/proto/window.pro, src/structs.h,
	    src/window.c

Patch 7.3.950
Problem:    Python: Stack trace printer can't handle messages.
Solution:   Make KeyErrors use PyErr_SetObject. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.951
Problem:    Python exceptions have problems.
Solution:   Change some IndexErrors to TypeErrors. Make “line number out of
	    range” an IndexError.  Make “unable to get option value” a
	    RuntimeError. Make all PyErr_SetString messages start with
	    lowercase letter and use _(). (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.952
Problem:    Python: It's not easy to change window/buffer/tabpage.
Solution:   Add ability to assign to vim.current.{tabpage,buffer,window}.
	    (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h

Patch 7.3.953
Problem:    Python: string exceptions are deprecated.
Solution:   Make vim.error an Exception subclass. (ZyX)
Files:	    src/if_python.c, src/if_python3.c

Patch 7.3.954
Problem:    No check if PyObject_IsTrue fails.
Solution:   Add a check for -1 value. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.955
Problem:    Python: Not enough tests.
Solution:   Add tests for vim.{current,window*,tabpage*}. (ZyX)
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.956
Problem:    Python vim.bindeval() causes SIGABRT.
Solution:   Make pygilstate a local variable. (Yukihiro Nakadaira)
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.3.957
Problem:    Python does not have a "do" command like Perl or Lua.
Solution:   Add the ":py3do" command. (Lilydjwg)
Files:	    runtime/doc/if_pyth.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/if_python3.c, src/proto/if_python3.pro

Patch 7.3.958
Problem:    Python: Iteration destructor not set.
Solution:   Put IterDestructor to use. (ZyX)
Files:	    src/if_py_both.c

Patch 7.3.959 (after 7.3.957)
Problem:    Missing error number.
Solution:   Assign an error number.
Files:	    src/if_python3.c

Patch 7.3.960
Problem:    Compiler warning for unused variable.
Solution:   Put declaration in #ifdef.
Files:	    src/window.c

Patch 7.3.961
Problem:    Tests 86 and 87 fail when using another language than English.
Solution:   Set the language to C in the test. (Dominique Pelle)
Files:	    src/testdir/test86.in, src/testdir/test87.in,
	    src/testdir/test87.ok

Patch 7.3.962
Problem:    Python tests are not portable.
Solution:   Use shiftwidth instead of iminsert. (ZyX)
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.963
Problem:    Setting curbuf without curwin causes trouble.
Solution:   Add switch_buffer() and restore_buffer().  Block autocommands to
	    avoid trouble.
Files:	    src/eval.c, src/proto/eval.pro, src/proto/window.pro,
	    src/if_py_both.h, src/window.c, src/testdir/test86.ok

Patch 7.3.964
Problem:    Python: not so easy to access tab pages.
Solution:   Add window.tabpage, make window.number work with non-current tab
	    pages. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
	    src/if_python.c, src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.965
Problem:    Python garbage collection not working properly.
Solution:   Add support for garbage collection. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.966
Problem:    There is ":py3do" but no ":pydo".
Solution:   Add the ":pydo" command. (Lilydjwg)
Files:	    runtime/doc/if_pyth.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/if_py_both.h, src/if_python.c, src/if_python3.c,
	    src/proto/if_python.pro

Patch 7.3.967 (after 7.3.965)
Problem:    Build fails on Mac OSX. (Greg Novack)
Solution:   Undefine clear().
Files:	    src/if_py_both.h

Patch 7.3.968
Problem:    Multi-byte support is only available when compiled with "big"
	    features.
Solution:   Include multi-byte by default, with "normal" features.
Files:	    src/feature.h

Patch 7.3.969
Problem:    Can't build with Python 3 and without Python 2.
Solution:   Adjust #ifdef. (Xavier de Gaye)
Files:	    src/window.c

Patch 7.3.970
Problem:    Syntax highlighting can be slow.
Solution:   Include the NFA regexp engine.  Add the 'regexpengine' option to
	    select which one is used. (various authors, including Ken Takata,
	    Andrei Aiordachioaie, Russ Cox, Xiaozhou Liua, Ian Young)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
	    src/Makefile, src/regexp.c, src/regexp.h, src/regexp_nfa.c,
	    src/structs.h, src/testdir/Makefile, src/testdir/test64.in,
	    src/testdir/test64.ok, Filelist, runtime/doc/pattern.txt,
	    runtime/doc/option.txt, src/option.c, src/option.h,
	    src/testdir/test95.in, src/testdir/test95.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.3.971
Problem:    No support for VS2012 static code analysis.
Solution:   Add the ANALYZE option. (Mike Williams)
Files:	    src/Make_mvc.mak

Patch 7.3.972
Problem:    Cursor not restored after InsertEnter autocommand if it moved to
	    another line.
Solution:   Also restore if the saved line number is still valid.  Allow
	    setting v:char to skip restoring.
Files:	    src/edit.c, runtime/doc/autocmd.txt

Patch 7.3.973
Problem:    Compiler warnings. Crash on startup. (Tony Mechelynck)
Solution:   Change EMSG2 to EMSGN. Make array one character longer.
Files:	    src/regexp_nfa.c

Patch 7.3.974
Problem:    Can't build with ruby 1.8.5.
Solution:   Only use ruby_init_stack() when RUBY_INIT_STACK is defined.
	    (Yukihiro Nakadaira)
Files:	    src/if_ruby.c

Patch 7.3.975
Problem:    Crash in regexp parsing.
Solution:   Correctly compute the end of allocated memory.
Files:	    src/regexp_nfa.c

Patch 7.3.976
Problem:    Can't build on HP-UX.
Solution:   Remove modern initialization. (John Marriott)
Files:	    src/regexp_nfa.c

Patch 7.3.977
Problem:    Compiler warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)  Also fix some white space and
	    uncomment what was commented-out for testing.
Files:	    src/regexp_nfa.c

Patch 7.3.978
Problem:    Regexp debug logs don't have a good name.
Solution:   Use clear names and make it possible to write logs for the old and
	    new engines separately. (Taro Muraoka)
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.979
Problem:    Complex NFA regexp doesn't work.
Solution:   Set actual state stack end instead of using an arbitrary number.
	    (Yasuhiro Matsumoto)
Files:	    src/regexp_nfa.c

Patch 7.3.980
Problem:    Regexp logs may contain garbage. Character classes don't work
	    correctly for multi-byte characters.
Solution:   Check for end of post list.  Only use "is" functions for
	    characters up to 255. (Ken Takata)
Files:	    src/regexp_nfa.c

Patch 7.3.981
Problem:    In the old regexp engine \i, \I, \f and \F don't work on
	    multi-byte characters.
Solution:   Dereference pointer properly.
Files:	    src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.982
Problem:    In the new regexp engine \p does not work on multi-byte
	    characters.
Solution:   Don't point to an integer but the characters.
Files:	    src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.983
Problem:    Unnecessary temp variable.
Solution:   Remove the variable.
Files:	    src/regexp_nfa.c

Patch 7.3.984
Problem:    A Visual mapping that uses CTRL-G works differently when started
	    from Insert mode. (Ein Brown)
Solution:   Reset old_mapped_len when handling typed text in Select mode.
Files:	    src/normal.c

Patch 7.3.985
Problem:    GTK vim not started as gvim doesn't set WM_CLASS property to a
	    useful value.
Solution:   Call g_set_prgname() on startup. (James McCoy)
Files:	    src/gui_gtk_x11.c

Patch 7.3.986
Problem:    Test 95 doesn't pass when 'encoding' isn't utf-8. (Yasuhiro
	    Matsumoto)
Solution:   Force 'encoding' to be utf-8.
Files:	    src/testdir/test95.in

Patch 7.3.987
Problem:    No easy to run an individual test.  Tests 64 fails when
	    'encoding' is not utf-8.
Solution:   Add individual test targets to the Makefile.  Move some lines from
	    test 64 to 95.
Files:	    src/Makefile, src/testdir/test64.in, src/testdir/test64.ok,
	    src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.988
Problem:    New regexp engine is slow.
Solution:   Break out of the loop when the state list is empty.
Files:	    src/regexp_nfa.c

Patch 7.3.989
Problem:    New regexp engine compares negative numbers to character.
Solution:   Add missing case statements.
Files:	    src/regexp_nfa.c

Patch 7.3.990
Problem:    Memory leak in new regexp engine.
Solution:   Jump to end of function to free memory. (Dominique Pelle)
Files:	    src/regexp_nfa.c

Patch 7.3.991
Problem:    More can be shared by Python 2 and 3.
Solution:   Move more stuff to if_py_both. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test87.ok

Patch 7.3.992
Problem:    Python: Too many type casts.
Solution:   Change argument types. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.993
Problem:    Python: Later patch does things slightly differently.
Solution:   Adjusted argument type changes. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.994
Problem:    Python: using magic constants.
Solution:   Use descriptive values for ml_flags. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c

Patch 7.3.995
Problem:    Python: Module initialization is duplicated.
Solution:   Move to shared file. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.996
Problem:    Python: Can't check types of what is returned by bindeval().
Solution:   Add vim.List, vim.Dictionary and vim.Function types. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/testdir/test86.in,
	    src/testdir/test86.ok, src/testdir/test87.in,
	    src/testdir/test87.ok

Patch 7.3.997
Problem:    Vim and Python exceptions are different.
Solution:   Make Vim exceptions be Python exceptions. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.998
Problem:    Python: garbage collection issues.
Solution:   Fix the GC issues: Use proper DESTRUCTOR_FINISH: avoids negative
	    refcounts, use PyObject_GC_* for objects with tp_traverse and
	    tp_clear, add RangeTraverse and RangeClear, use Py_XDECREF in some
	    places. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.999
Problem:    New regexp engine sets curbuf temporarily.
Solution:   Use reg_buf instead, like the old engine.
Files:	    src/regexp_nfa.c

Patch 7.3.1000 (whoa!)
Problem:    Typo in char value causes out of bounds access.
Solution:   Fix character value.  (Klemens Baum)
Files:	    src/regexp.c

Patch 7.3.1001
Problem:    Duplicate condition in if.
Solution:   Remove one condition.
Files:	    src/regexp_nfa.c

Patch 7.3.1002
Problem:    Valgrind errors for Python interface.
Solution:   Fix memory leaks when running tests. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1003
Problem:    Python interface does not compile with Python 2.2
Solution:   Fix thread issues and True/False. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1004
Problem:    No error when option could not be set.
Solution:   Report an error. (ZyX)
Files:	    src/if_py_both.h, src/option.c, src/proto/option.pro,
	    src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.1005
Problem:    Get stuck on regexp "\n*" and on "%s/^\n\+/\r".
Solution:   Fix handling of matching a line break. (idea by Hirohito Higashi)
Files:	    src/regexp_nfa.c

Patch 7.3.1006
Problem:    NFA engine not used for "\_[0-9]".
Solution:   Enable this, fixed in patch 1005.
Files:	    src/regexp_nfa.c

Patch 7.3.1007
Problem:    Can't build on Minix 3.2.1.
Solution:   Add a condition to an #ifdef. (Gautam Tirumala)
Files:	    src/memfile.c

Patch 7.3.1008
Problem:    Test 95 fails on MS-Windows.
Solution:   Set 'nomore'. Change \i to \f.  Change multi-byte character to
	    something that is not matching \i. (Ken Takata)
Files:	    src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1009
Problem:    Compiler warning for ambiguous else.
Solution:   Add curly braces.
Files:	    src/if_py_both.h

Patch 7.3.1010
Problem:    New regexp: adding \Z makes every character match.
Solution:   Only apply ireg_icombine for composing characters.
	    Also add missing change from patch 1008. (Ken Takata)
Files:	    src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1011
Problem:    New regexp engine is inefficient with multi-byte characters.
Solution:   Handle a character at a time instead of a byte at a time.  Also
	    make \Z partly work.
Files:	    src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1012
Problem:    \Z does not work properly with the new regexp engine.
Solution:   Make \Z work.  Add tests.
Files:	    src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1013
Problem:    New regexp logging is a bit messy.
Solution:   Consistently use #defines, add explanatory comment. (Taro Muraoka)
Files:	    src/regexp_nfa.c

Patch 7.3.1014
Problem:    New regexp state dump is hard to read.
Solution:   Make the state dump more pretty. (Taro Muraoka)
Files:	    src/regexp_nfa.c

Patch 7.3.1015
Problem:    New regexp engine: Matching composing characters is wrong.
Solution:   Fix matching composing characters.
Files:	    src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1016
Problem:    Unused field in nfa_state.
Solution:   Remove lastthread.
Files:	    src/regexp.h, src/regexp_nfa.c

Patch 7.3.1017
Problem:    Zero width match changes length of match.
Solution:   For a zero width match put new states in the current position in
	    the state list.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
	    src/regexp.h

Patch 7.3.1018
Problem:    New regexp engine wastes memory.
Solution:   Allocate prog with actual number of states, not estimated maximum
	    number of sates.
Files:	    src/regexp_nfa.c

Patch 7.3.1019
Problem:    These do not work with the new regexp engine: \%o123, \%x123,
	    \%d123, \%u123 and \%U123.
Solution:   Implement these items.
Files:	    src/regexp_nfa.c

Patch 7.3.1020
Problem:    Not all patterns are tested with auto / old / new engine.
Solution:   Test patterns with three values of 'regexpengine'.
Files:	    src/testdir/test64.in, src/testdir/test64.ok,
	    src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1021
Problem:    New regexp engine does not ignore order of composing chars.
Solution:   Ignore composing chars order.
Files:	    src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1022
Problem:    Compiler warning for shadowed variable. (John Little)
Solution:   Move declaration, rename variables.
Files:	    src/regexp_nfa.c

Patch 7.3.1023
Problem:    Searching for composing char only and using \Z has different
	    results.
Solution:   Make it match the composing char, matching everything is not
	    useful.
Files:	    src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.3.1024
Problem:    New regexp: End of matching pattern not set correctly. (Cesar
	    Romani)
Solution:   Quit the loop after finding the match.  Store nfa_has_zend in the
	    program.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
	    src/regexp.h

Patch 7.3.1025
Problem:    New regexp: not matching newline in string. (Marc Weber)
Solution:   Check for "\n" character.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1026
Problem:    New regexp: pattern that includes a new-line matches too early.
	    (John McGowan)
Solution:   Do not start searching in the second line.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1027
Problem:    New regexp performance: Calling no_Magic() very often.
Solution:   Remove magicness inline.
Files:	    src/regexp_nfa.c

Patch 7.3.1028
Problem:    New regexp performance: Copying a lot of position state.
Solution:   Only copy the sub-expressions that are being used.
Files:	    src/regexp_nfa.c, src/regexp.h

Patch 7.3.1029
Problem:    New regexp performance: Unused position state being copied.
Solution:   Keep track of which positions are actually valid.
Files:	    src/regexp_nfa.c

Patch 7.3.1030 (after 7.3.1028)
Problem:    Can't build for debugging.
Solution:   Fix struct member names.
Files:	    src/regexp_nfa.c

Patch 7.3.1031
Problem:    Compiler warnings for shadowed variable. (John Little)
Solution:   Move the variable declarations to the scope where they are used.
Files:	    src/regexp_nfa.c

Patch 7.3.1032
Problem:    "\ze" is not supported by the new regexp engine.
Solution:   Make "\ze" work.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1033
Problem:    "\1" .. "\9" are not supported in the new regexp engine.
Solution:   Implement them.  Add a few more tests.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
	    src/regexp.h

Patch 7.3.1034
Problem:    New regexp code using strange multi-byte code.
Solution:   Use the normal code to advance and backup pointers.
Files:	    src/regexp_nfa.c

Patch 7.3.1035
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
Files:	    src/if_py_both.h

Patch 7.3.1036
Problem:    Can't build on HP-UX.
Solution:   Give the union a name. (John Marriott)
Files:	    src/regexp_nfa.c

Patch 7.3.1037
Problem:    Look-behind matching is very slow on long lines.
Solution:   Add a byte limit to how far back an attempt is made.
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1038
Problem:    Crash when using Cscope.
Solution:   Avoid negative argument to vim_strncpy(). (Narendran
	    Gopalakrishnan)
Files:	    src/if_cscope.c

Patch 7.3.1039
Problem:    New regexp engine does not support \%23c, \%<23c and the like.
Solution:   Implement them. (partly by Yasuhiro Matsumoto)
Files:	    src/regexp.h, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1040
Problem:    Python: Problems with debugging dynamic build.
Solution:   Python patch 1. (ZyX)
Files:	    src/if_python.c, src/if_python3.c

Patch 7.3.1041
Problem:    Python: Invalid read valgrind errors.
Solution:   Python patch 2: defer DICTKEY_UNREF until key is no longer needed.
	    (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1042
Problem:    Python: can't assign to vim.Buffer.name.
Solution:   Python patch 3. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/ex_cmds.c, src/if_py_both.h,
	    src/if_python3.c, src/if_python.c, src/proto/ex_cmds.pro,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1043
Problem:    Python: Dynamic compilation with 2.3 fails.
Solution:   Python patch 4. (ZyX)
Files:	    src/if_python.c

Patch 7.3.1044
Problem:    Python: No {Buffer,TabPage,Window}.valid attributes.
Solution:   Python patch 5: add .valid (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1045
Problem:    Python: No error handling for VimToPython function.
Solution:   Python patch 6. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1046
Problem:    Python: Using Py_BuildValue for building strings.
Solution:   Python patch 7 and 7.5: Replace Py_BuildValue with
	    PyString_FromString. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1047
Problem:    Python: dir() does not work properly.
Solution:   Python patch 8.  Add __dir__ method to all objects with custom
	    tp_getattr supplemented by __members__ attribute for at least
	    python-2* versions.  __members__ is not mentioned in python-3*
	    dir() output even if it is accessible. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1048
Problem:    Python: no consistent naming.
Solution:   Python patch 9: Rename d to dict and lookupDict to lookup_dict.
	    (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1049
Problem:    Python: no consistent naming
Solution:   Python patch 10: Rename DICTKEY_GET_NOTEMPTY to DICTKEY_GET. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1050
Problem:    Python: Typo in pyiter_to_tv.
Solution:   Python patch 11. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1051
Problem:    Python: possible memory leaks.
Solution:   Python patch 12: fix the leaks (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1052
Problem:    Python: possible SEGV and negative refcount.
Solution:   Python patch 13: Fix IterIter function. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1053
Problem:    Python: no flag for types with tp_traverse+tp_clear.
Solution:   Python patch 14: Add Py_TPFLAGS_HAVE_GC. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1054 (after 7.3.1042)
Problem:    Can't build without the +autocmd feature. (Elimar Riesebieter)
Solution:   Fix use of buf and curbuf.
Files:	    src/ex_cmds.c, src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.1055
Problem:    Negated collection does not match newline.
Solution:   Handle newline differently. (Hiroshi Shirosaki)
Files:	    src/regexp_nfa.c, src/testdir/test64.ok, src/testdir/test64.in

Patch 7.3.1056
Problem:    Python: possible memory leaks.
Solution:   Python patch 15. (ZyX) Fix will follow later.
Files:	    src/eval.c, src/if_py_both.h, src/proto/eval.pro

Patch 7.3.1057
Problem:    Python: not enough compatibility.
Solution:   Python patch 16: Make OutputWritelines support any sequence object
	    (ZyX) Note: tests fail
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1058
Problem:    Call of funcref does not succeed in other script.
Solution:   Python patch 17: add get_expanded_name(). (ZyX)
Files:	    src/eval.c, src/proto/eval.pro

Patch 7.3.1059
Problem:    Python: Using fixed size buffers.
Solution:   Python patch 18: Use python's own formatter. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.1060
Problem:    Python: can't repr() a function.
Solution:   Python patch 19: add FunctionRepr(). (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1061
Problem:    Python: Dictionary is not standard.
Solution:   Python patch 20: Add standard methods and fields. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h,
	    src/if_python3.c, src/if_python.c, src/proto/eval.pro,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1062
Problem:    Python: List is not standard.
Solution:   Python patch 21: Add standard methods and fields. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1063
Problem:    Python: Function is not standard.
Solution:   Python patch 22: make Function subclassable. (ZyX)
Files:	    src/eval.c, src/if_py_both.h, src/proto/eval.pro,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1064
Problem:    Python: insufficient error checking.
Solution:   Python patch 23. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1065
Problem:    Python: key mapping is not standard.
Solution:   Python patch 24: use PyMapping_Keys. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.1066
Problem:    Python: Insufficient exception and error testing.
Solution:   Python patch 25. (ZyX)
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1067
Problem:    Python: documentation lags behind.
Solution:   Python patch 26. (ZyX)
Files:	    runtime/doc/if_pyth.txt

Patch 7.3.1068
Problem:    Python: Script is auto-loaded on function creation.
Solution:   Python patch 27. (ZyX)
Files:	    src/eval.c, src/if_py_both.h, src/proto/eval.pro,
	    src/testdir/test86.ok, src/testdir/test87.ok, src/vim.h

Patch 7.3.1069
Problem:    Python: memory leaks.
Solution:   Python patch 28: Purge out DICTKEY_CHECK_EMPTY macros. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1070
Problem:    Vim crashes in Python tests. Compiler warning for unused function.
Solution:   Disable the tests for now. Move the function.
Files:	    src/if_py_both.h, src/if_python.c, src/testdir/test86.in,
	    src/testdir/test87.in

Patch 7.3.1071
Problem:    New regexp engine: backreferences don't work correctly.
Solution:   Add every possible start/end position on the state stack.
Files:	    src/regexp_nfa.c, src/regexp.h, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1072
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it.
Files:	    src/regexp_nfa.c

Patch 7.3.1073
Problem:    New regexp engine may run out of states.
Solution:   Allocate states dynamically.  Also make the test report errors.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
	    src/testdir/test95.in

Patch 7.3.1074
Problem:    Compiler warning for printf format. (Manuel Ortega)
Solution:   Add type casts.
Files:	    src/if_py_both.h

Patch 7.3.1075
Problem:    Compiler warning for storing a long_u in an int.
Solution:   Declare the number as an int. (Mike Williams)
Files:	    src/regexp_nfa.c

Patch 7.3.1076
Problem:    New regexp engine: \@= and \& don't work.
Solution:   Make these items work.  Add column info to logging.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1077
Problem:    Python: Allocating dict the wrong way, causing a crash.
Solution:   Use py_dict_alloc(). Fix some exception problems. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1078
Problem:    New regexp engine: \@! doesn't work.
Solution:   Implement the negated version of \@=.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1079
Problem:    Test 87 fails.
Solution:   Fix the test for Python 3.3. (ZyX)  Make it pass on 32 bit systems.
Files:	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1080
Problem:    Test 86 fails.
Solution:   Comment out the parts that don't work.  Make it pass on 32 bit
	    systems.
Files:	    src/testdir/test86.in, src/testdir/test86.ok

Patch 7.3.1081
Problem:    Compiler warnings on 64-bit Windows.
Solution:   Change variable types. (Mike Williams)
Files:	    src/if_py_both.h, src/regexp_nfa.c

Patch 7.3.1082
Problem:    New regexp engine: Problem with \@= matching.
Solution:   Save and restore nfa_match.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1083
Problem:    New regexp engine: Does not support \%^ and \%$.
Solution:   Support matching start and end of file.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1084
Problem:    New regexp engine: only accepts up to \{,10}.
Solution:   Remove upper limit.  Remove dead code with NFA_PLUS.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1085
Problem:    New regexp engine: Non-greedy multi doesn't work.
Solution:   Implement \{-}.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1086
Problem:    Old regexp engine accepts illegal range, new one doesn't.
Solution:   Also accept the illegal range with the new engine.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1087
Problem:    A leading star is not seen as a normal char when \{} follows.
Solution:   Save and restore the parse state properly.
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1088
Problem:    New regexp engine: \@<= and \@<! are not implemented.
Solution:   Implement look-behind matching.  Fix off-by-one error in old
	    regexp engine.
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1089
Problem:    Tests 86 and 87 fail on MS-Windows. (Ken Takata)
Solution:   Fix platform-specific stuff. (ZyX)
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1090
Problem:    New regexp engine does not support \z1 .. \z9 and \z(.
Solution:   Implement the syntax submatches.
Files:	    src/regexp.h, src/regexp_nfa.c

Patch 7.3.1091
Problem:    New regexp engine: no error when using \z1 or \z( where it does
	    not work.
Solution:   Give an error message.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.1092
Problem:    Can't build with regexp debugging.  NFA debug output shows wrong
	    pattern.
Solution:   Fix debugging code for recent changes.  Add the pattern to the
	    program.
Files:	    src/regexp_nfa.c, src/regexp.h

Patch 7.3.1093
Problem:    New regexp engine: When a sub expression is empty \1 skips a
	    character.
Solution:   Make \1 try the current position when the match is empty.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1094
Problem:    New regexp engine: Attempts to match "^" at every character.
Solution:   Only try "^" at the start of a line.
Files:	    src/regexp_nfa.c

Patch 7.3.1095
Problem:    Compiler warnings for shadowed variables. (Christian Brabandt)
Solution:   Rename new_state() to alloc_state().  Remove unnecessary
	    declaration.
Files:	    src/regexp_nfa.c

Patch 7.3.1096
Problem:    Python: popitem() was not defined in a standard way.
Solution:   Remove the argument from popitem(). (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/testdir/test86.in,
	    src/testdir/test86.ok, src/testdir/test87.in,
	    src/testdir/test87.ok

Patch 7.3.1097
Problem:    Python: a few recently added items are not documented.
Solution:   Update the documentation. (ZyX)
Files:	    runtime/doc/if_pyth.txt

Patch 7.3.1098
Problem:    Python: Possible memory leaks
Solution:   Add Py_XDECREF() calls. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1099
Problem:    Python: Changing directory with os.chdir() causes problems for
	    Vim's notion of directories.
Solution:   Add vim.chdir() and vim.fchdir(). (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/ex_docmd.c, src/if_py_both.h,
	    src/if_python3.c, src/if_python.c, src/proto/ex_docmd.pro,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1100
Problem:    Python: a few more memory problems.
Solution:   Add and remove Py_XDECREF(). (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1101
Problem:    Configure doesn't find Python 3 on Ubuntu 13.04.
Solution:   First try distutils.sysconfig. Also fix some indents.  (Ken
	    Takata)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.1102
Problem:    Completion of ":py3do" and ":py3file" does not work after ":py3".
Solution:   Make completion work. (Taro Muraoka)
Files:	    src/ex_docmd.c

Patch 7.3.1103
Problem:    New regexp engine: overhead in saving and restoring.
Solution:   Make saving and restoring list IDs faster.  Don't copy or check \z
	    subexpressions when they are not used.
Files:	    src/regexp_nfa.c

Patch 7.3.1104
Problem:    New regexp engine does not handle "~".
Solution:   Add support for "~".
Files:	    src/regexp_nfa.c, src/testdir/test24.in, src/testdir/test24.ok

Patch 7.3.1105
Problem:    New regexp engine: too much code in one function.  Dead code.
Solution:   Move the recursive nfa_regmatch call to a separate function.
	    Remove the dead code.
Files:	    src/regexp_nfa.c

Patch 7.3.1106
Problem:    New regexp engine: saving and restoring lastlist in the states
	    takes a lot of time.
Solution:   Use a second lastlist value for the first recursive call.
Files:	    src/regexp.h, src/regexp_nfa.c

Patch 7.3.1107
Problem:    Compiler warnings for unused variables.
Solution:   Put the variables inside #ifdef.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.1108
Problem:    Error message for os.fchdir() (Charles Peacech)
Solution:   Clear the error. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1109
Problem:    Building on MS-Windows doesn't see changes in if_py_both.h.
Solution:   Add a dependency. (Ken Takata)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak,
	    src/Make_mvc.mak

Patch 7.3.1110
Problem:    New regexp matching: Using \@= and the like can be slow.
Solution:   Decide whether to first try matching the zero-width part or what
	    follows, whatever is more likely to fail.
Files:	    src/regexp_nfa.c

Patch 7.3.1111
Problem:    nfa_recognize_char_class() implementation is inefficient.
Solution:   Use bits in an int instead of chars in a string. (Dominique Pelle)
Files:	    src/regexp_nfa.c, src/testdir/test36.in, src/testdir/test36.ok

Patch 7.3.1112
Problem:    New regexp engine: \%V not supported.
Solution:   Implement \%V.  Add tests.
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1113
Problem:    New regexp engine: \%'m not supported.
Solution:   Implement \%'m.  Add tests.
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1114 (after 7.3.1110)
Problem:    Can't build without the syntax feature.
Solution:   Add #ifdefs. (Erik Falor)
Files:	    src/regexp_nfa.c

Patch 7.3.1115
Problem:    Many users don't like the cursor line number when 'relativenumber'
	    is set.
Solution:   Have four combinations with 'number' and 'relativenumber'.
	    (Christian Brabandt)
Files:	    runtime/doc/options.txt, src/option.c, src/screen.c,
	    src/testdir/test89.in, src/testdir/test89.ok

Patch 7.3.1116
Problem:    Can't build without Visual mode.
Solution:   Add #ifdefs.
Files:	    src/regexp_nfa.c

Patch 7.3.1117
Problem:    New regexp engine: \%[abc] not supported.
Solution:   Implement \%[abc].  Add tests.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1118
Problem:    Match failure rate is not very specific.
Solution:   Tune the failure rate for match items.
Files:	    src/regexp_nfa.c

Patch 7.3.1119
Problem:    Flags in 'cpo' are search for several times.
Solution:   Store the result and re-use the flags.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.1120
Problem:    Crash when regexp logging is enabled.
Solution:   Avoid using NULL pointers. Advance over count argument.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.1121
Problem:    New regexp engine: adding states that are not used.
Solution:   Don't add the states.
Files:	    src/regexp_nfa.c

Patch 7.3.1122
Problem:    New regexp engine: \@> not supported.
Solution:   Implement \%>.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1123
Problem:    Can't build tiny Vim on MS-Windows.
Solution:   Adjust #ifdef around using modif_fname(). (Mike Williams)
Files:	    src/misc1.c

Patch 7.3.1124
Problem:    Python: Crash on MS-Windows when os.fchdir() is not available.
Solution:   Check for _chdir to be NULL. (Ken Takata)
Files:	    src/if_py_both.h

Patch 7.3.1125
Problem:    Error for using \%V in a pattern in tiny Vim.
Solution:   Allow using \%V but never match. (Dominique Pelle)
Files:	    src/regexp_nfa.c

Patch 7.3.1126
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Assign something to the variable.
Files:	    src/regexp_nfa.c

Patch 7.3.1127
Problem:    No error for using empty \%[].
Solution:   Give error message.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.1128
Problem:    Now that the NFA engine handles everything every failure is a
	    syntax error.
Solution:   Remove the syntax_error flag.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.1129
Problem:    Can't see what pattern in syntax highlighting is slow.
Solution:   Add the ":syntime" command.
Files:	    src/structs.h, src/syntax.c, src/ex_cmds.h, src/ex_docmd.c,
	    src/proto/syntax.pro, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
	    runtime/doc/syntax.txt

Patch 7.3.1130 (after 7.3.1129)
Problem:    Can't build with anything but huge features.
Solution:   Check for FEAT_PROFILE. (Yasuhiro Matsumoto)
Files:	    src/ex_docmd.c, src/structs.h, src/syntax.c

Patch 7.3.1131
Problem:    New regexp engine is a bit slow.
Solution:   Do not clear the state list.  Don't copy syntax submatches when
	    not used.
Files:	    src/regexp_nfa.c

Patch 7.3.1132
Problem:    Crash when debugging regexp.
Solution:   Do not try to dump subexpr that were not set.  Skip over count of
	    \% items.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.3.1133
Problem:    New regexp engine is a bit slow.
Solution:   Skip ahead to a character that must match.  Don't try matching a
	    "^" patter past the start of line.
Files:	    src/regexp_nfa.c, src/regexp.h

Patch 7.3.1134
Problem:    Running test 49 takes a long time.
Solution:   Don't have it grep all files.
Files:	    src/testdir/test49.vim

Patch 7.3.1135
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
Files:	    src/syntax.c

Patch 7.3.1136
Problem:    ":func Foo" does not show attributes.
Solution:   Add "abort", "dict" and "range". (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.3.1137
Problem:    New regexp engine: collections are slow.
Solution:   Handle all characters in one go.
Files:	    src/regexp_nfa.c

Patch 7.3.1138
Problem:    New regexp engine: neglist no longer used.
Solution:   Remove the now unused neglist.
Files:	    src/regexp_nfa.c

Patch 7.3.1139
Problem:    New regexp engine: negated flag is hardly used.
Solution:   Add separate _NEG states, remove negated flag.
Files:	    src/regexp_nfa.c, src/regexp.h

Patch 7.3.1140
Problem:    New regexp engine: trying expensive match while the result is not
	    going to be used.
Solution:   Check for output state already being in the state list.
Files:	    src/regexp_nfa.c

Patch 7.3.1141
Problem:    Win32: Check for available memory is not reliable and adds
	    overhead.
Solution:   Remove mch_avail_mem(). (Mike Williams)
Files:	    src/os_win32.c, src/os_win32.h

Patch 7.3.1142
Problem:    Memory leak in ":syntime report".
Solution:   Clear the grow array. (Dominique Pelle)
Files:	    src/syntax.c

Patch 7.3.1143
Problem:    When mapping NUL it is displayed as an X.
Solution:   Check for KS_ZERO instead of K_ZERO. (Yasuhiro Matsumoto)
Files:	    src/message.c

Patch 7.3.1144
Problem:    "RO" is not translated everywhere.
Solution:   Put inside _(). (Sergey Alyoshin)
Files:	    src/buffer.c, src/screen.c

Patch 7.3.1145
Problem:    New regexp engine: addstate() is called very often.
Solution:   Optimize adding the start state.
Files:	    src/regexp_nfa.c

Patch 7.3.1146
Problem:    New regexp engine: look-behind match not checked when followed by
	    zero-width match.
Solution:   Do the look-behind match before adding the zero-width state.
Files:	    src/regexp_nfa.c

Patch 7.3.1147
Problem:    New regexp engine: regstart is only used to find the first match.
Solution:   Use regstart whenever adding the start state.
Files:	    src/regexp_nfa.c

Patch 7.3.1148
Problem:    No command line completion for ":syntime".
Solution:   Implement the completion. (Dominique Pelle)
Files:	    runtime/doc/map.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/ex_getln.c, src/proto/syntax.pro, src/syntax.c, src/vim.h

Patch 7.3.1149
Problem:    New regexp engine: Matching plain text could be faster.
Solution:   Detect a plain text match and handle it specifically.  Add
	    vim_regfree().
Files:	    src/regexp.c, src/regexp.h, src/regexp_nfa.c,
	    src/proto/regexp.pro, src/buffer.c, src/edit.c, src/eval.c,
	    src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
	    src/ex_getln.c, src/fileio.c, src/gui.c, src/misc1.c, src/misc2.c,
	    src/option.c, src/syntax.c, src/quickfix.c, src/search.c,
	    src/spell.c, src/tag.c, src/window.c, src/screen.c, src/macros.h,
	    src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1150
Problem:    New regexp engine: Slow when a look-behind match does not have a
	    width specified.
Solution:   Try to compute the maximum width.
Files:	    src/regexp_nfa.c

Patch 7.3.1151
Problem:    New regexp engine: Slow when a look-behind match is followed by a
	    zero-width match.
Solution:   Postpone the look-behind match more often.
Files:	    src/regexp_nfa.c

Patch 7.3.1152
Problem:    In tiny build ireg_icombine is undefined. (Tony Mechelynck)
Solution:   Add #ifdef.
Files:	    src/regexp_nfa.c

Patch 7.3.1153
Problem:    New regexp engine: Some look-behind matches are very expensive.
Solution:   Postpone invisible matches further, until a match is almost found.
Files:	    src/regexp_nfa.c

Patch 7.3.1154
Problem:    New regexp_nfa engine: Unnecessary code.
Solution:   Remove unnecessary code.
Files:	    src/regexp_nfa.c

Patch 7.3.1155
Problem:    MS-DOS: "make test" uses external rmdir command.
Solution:   Rename "rmdir" to "rd". (Taro Muraoka)
Files:	    src/testdir/Make_dos.mak

Patch 7.3.1156
Problem:    Compiler warnings. (dv1445)
Solution:   Initialize variables, even when the value isn't really used.
Files:	    src/regexp_nfa.c, src/eval.c

Patch 7.3.1157
Problem:    New regexp engine fails on "\(\<command\)\@<=.*"
Solution:   Fix rule for postponing match.  Further tune estimating whether
	    postponing works better.  Add test.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1158
Problem:    Crash when running test 86. (Jun Takimoto)
Solution:   Define PY_SSIZE_T_CLEAN early. (Elimar Riesebieter)
Files:	    src/if_python.c, src/if_python3.c

Patch 7.3.1159
Problem:    The round() function is not always available. (Christ van
	    Willegen)
Solution:   Use the solution from f_round().
Files:	    src/ex_cmds2.c, src/eval.c, src/proto/eval.pro

Patch 7.3.1160
Problem:    Mixing long and pointer doesn't always work.
Solution:   Avoid cast to pointer.
Files:	    src/undo.c

Patch 7.3.1161
Problem:    Python: PyList_SetItem() is inefficient.
Solution:   Use PyList_SET_ITEM() (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1162
Problem:    Python: Memory leaks
Solution:   Add more Py_DECREF(). (ZyX)
Files:	    src/if_py_both.h, src/if_python.c

Patch 7.3.1163
Problem:    Not easy to load Python modules.
Solution:   Search "python2", "python3" and "pythonx" directories in
	    'runtimepath' for Python modules. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/configure.in, src/ex_cmds2.c,
	    src/if_py_both.h, src/if_python.c, src/if_python3.c,
	    src/testdir/test86.in, src/testdir/test87.in, src/auto/configure

Patch 7.3.1164
Problem:    Can't test what is actually displayed on screen.
Solution:   Add the screenchar() and screenattr() functions.
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 7.3.1165
Problem:    HP-UX compiler can't handle zero size array. (Charles Cooper)
Solution:   Make the array one item big.
Files:	    src/regexp.h, src/regexp_nfa.c

Patch 7.3.1166
Problem:    Loading Python modules is not tested.
Solution:   Enable commented-out tests, add missing files. (ZyX)
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok,
	    src/testdir/python2/module.py, src/testdir/python3/module.py,
	    src/testdir/pythonx/module.py, src/testdir/pythonx/modulex.py,
	    Filelist

Patch 7.3.1167
Problem:    Python configure check doesn't reject Python 2 when requesting
	    Python 3.  Some systems need -pthreads instead of -pthread.
Solution:   Adjust configure accordingly. (Andrei Olsen)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.1168
Problem:    Python "sane" configure checks give a warning message.
Solution:   Use single quotes instead of escaped double quotes. (Ben Fritz)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.1169
Problem:    New regexp engine: some work is done while executing a pattern,
	    even though the result is predictable.
Solution:   Do the work while compiling the pattern.
Files:	    src/regexp_nfa.c

Patch 7.3.1170
Problem:    Patch 7.3.1058 breaks backwards compatibility, not possible to use
	    a function reference as a string. (lilydjwg)
Solution:   Instead of translating the function name only translate "s:".
Files:	    src/eval.c

Patch 7.3.1171
Problem:    Check for digits and ascii letters can be faster.
Solution:   Use a trick with one comparison. (Dominique Pelle)
Files:	    src/macros.h

Patch 7.3.1172
Problem:    Python 2: loading modules doesn't work well.
Solution:   Fix the code. Add more tests. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c,
	    src/testdir/python2/module.py, src/testdir/python3/module.py,
	    src/testdir/python_after/after.py,
	    src/testdir/python_before/before.py, src/testdir/test86.in,
	    src/testdir/test86.ok, src/testdir/test87.in,
	    src/testdir/test87.ok, Filelist

Patch 7.3.1173
Problem:    Python 2 tests don't have the same output everywhere.
Solution:   Make the Python 2 tests more portable. (ZyX)
Files:	    src/testdir/test86.in, src/testdir/test86.ok

Patch 7.3.1174
Problem:    Python 2 and 3 use different ways to load modules.
Solution:   Use the same method. (ZyX)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
	    src/if_python.c

Patch 7.3.1175
Problem:    Using isalpha() and isalnum() can be slow.
Solution:   Use range checks. (Mike Williams)
Files:	    src/ex_docmd.c, src/macros.h

Patch 7.3.1176
Problem:    Compiler warnings on 64 bit system.
Solution:   Add type casts. (Mike Williams)
Files:	    src/eval.c, src/if_py_both.h

Patch 7.3.1177
Problem:    Wasting memory on padding.
Solution:   Reorder struct fields. (Dominique Pelle)
Files:	    src/structs.h, src/fileio.c

Patch 7.3.1178
Problem:    Can't put all Vim config files together in one directory.
Solution:   Load ~/.vim/vimrc if ~/.vimrc does not exist. (Lech Lorens)
Files:	    runtime/doc/gui.txt, runtime/doc/starting.txt, src/gui.c,
	    src/main.c, src/os_amiga.h, src/os_dos.h, src/os_unix.h

Patch 7.3.1179
Problem:    When a global mapping starts with the same characters as a
	    buffer-local mapping Vim waits for a character to be typed to find
	    out whether the global mapping is to be used. (Andy Wokula)
Solution:   Use the local mapping without waiting. (Michael Henry)
Files:	    runtime/doc/map.txt, src/getchar.c

Patch 7.3.1180
Problem:    When current directory changes, path from cscope may no longer be
	    valid. (AS Budden)
Solution:   Always store the absolute path. (Christian Brabandt)
Files:	    src/if_cscope.c

Patch 7.3.1181
Problem:    Wrong error message for 1.0[0].
Solution:   Check for funcref and float separately. (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.3.1182
Problem:    'backupcopy' default on MS-Windows does not work for hard and soft
	    links.
Solution:   Check for links. (David Pope, Ken Takata)
Files:	    src/fileio.c, src/os_win32.c, src/proto/os_win32.pro

Patch 7.3.1183
Problem:    Python tests 86 and 87 fail.
Solution:   Add "empty" files. (ZyX)
Files:	    src/testdir/python_before/before_1.py,
	    src/testdir/python_before/before_2.py

Patch 7.3.1184
Problem:    Highlighting is sometimes wrong. (Axel Bender)
Solution:   Fetch regline again when returning from recursive regmatch.
Files:	    src/regexp_nfa.c

Patch 7.3.1185
Problem:    New regexp engine: no match with ^ after \n. (SungHyun Nam)
Solution:   Fix it, add a test.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1186
Problem:    Python 3: test 87 may crash.
Solution:   Use _PyArg_Parse_SizeT instead of PyArg_Parse. (Jun Takimoto)
Files:	    src/if_python3.c

Patch 7.3.1187 (after 7.3.1170)
Problem:    "s:" is recognized but "<SID>" is not. (ZyX)
Solution:   Translate "<SID>" like "s:".
Files:	    src/eval.c

Patch 7.3.1188
Problem:    Newline characters messing up error message.
Solution:   Remove the newlines. (Kazunobu Kuriyama)
Files:	    src/gui_x11.c

Patch 7.3.1189 (after 7.3.1185)
Problem:    Highlighting is still wrong sometimes. (Dominique Pelle)
Solution:   Also restore reginput properly.
Files:	    src/regexp_nfa.c

Patch 7.3.1190
Problem:    Compiler warning for parentheses. (Christian Wellenbrock)
Solution:   Change #ifdef.
Files:	    src/ex_docmd.c

Patch 7.3.1191
Problem:    Backreference to previous line doesn't work. (Lech Lorens)
Solution:   Implement looking in another line.
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok

Patch 7.3.1192
Problem:    Valgrind reports errors when using backreferences. (Dominique
	    Pelle)
Solution:   Do not check the end of submatches.
Files:	    src/regexp_nfa.c

Patch 7.3.1193
Problem:    fail_if_missing not used for Python 3.
Solution:   Give an error when Python 3 can't be configured. (Andrei Olsen)
Files:	    src/configure.in, src/auto/configure

Patch 7.3.1194
Problem:    Yaml highlighting is slow.
Solution:   Tune the estimation of pattern failure chance.
Files:	    src/regexp_nfa.c

Patch 7.3.1195
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Set the length to the matching backref.
Files:	    src/regexp.c

Patch 7.3.1196
Problem:    Old regexp engine does not match pattern with backref correctly.
	    (Dominique Pelle)
Solution:   Fix setting status.  Test multi-line patterns better.
Files:	    src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1197
Problem:    ":wviminfo!" does not write history previously read from a viminfo
	    file.  (Roland Eggner)
Solution:   When not merging history write all entries.
Files:	    src/ex_cmds.c, src/ex_getln.c, src/proto/ex_getln.pro

Patch 7.3.1198
Problem:    Build error when using Perl 5.18.0 and dynamic loading.
Solution:   Change #ifdefs for Perl_croak_xs_usage. (Ike Devolder)
Files:	    src/if_perl.xs

Patch 7.3.1199
Problem:    When evaluating 'foldexpr' causes an error this is silently
	    ignored and evaluation is retried every time.
Solution:   Set emsg_silent instead of emsg_off. Stop evaluating 'foldexpr' is
	    it is causing errors.  (Christian Brabandt)
Files:	    src/fold.c

Patch 7.3.1200
Problem:    When calling setline() from Insert mode, using CTRL-R =, undo does
	    not work properly. (Israel Chauca)
Solution:   Sync undo after evaluating the expression. (Christian Brabandt)
Files:	    src/edit.c, src/testdir/test61.in, src/testdir/test61.ok

Patch 7.3.1201
Problem:    When a startup script creates a preview window, it probably
	    becomes the current window.
Solution:   Make another window the current one. (Christian Brabandt)
Files:	    src/main.c

Patch 7.3.1202 (after 7.3.660)
Problem:    Tags are not found in case-folded tags file. (Darren cole, Issue
	    90)
Solution:   Take into account that when case folding was used for the tags
	    file "!rm" sorts before the "!_TAG" header lines.
Files:	    src/tag.c

Patch 7.3.1203
Problem:    Matches from matchadd() might be highlighted incorrectly when they
	    are at a fixed position and inserting lines. (John Szakmeister)
Solution:   Redraw all lines below a change if there are highlighted matches.
	    (idea by Christian Brabandt)
Files:	    src/screen.c

Patch 7.3.1204
Problem:    Calling gettabwinvar() in 'tabline' cancels Visual mode. (Hirohito
	    Higashi)
Solution:   Don't always use goto_tabpage_tp().
Files:	    src/window.c, src/proto/window.pro, src/eval.c, src/if_py_both.h

Patch 7.3.1205
Problem:    logtalk.dict is not removed on uninstall.
Solution:   Remove the file. (Kazunobu Kuriyama)
Files:	    src/Makefile

Patch 7.3.1206
Problem:    Inconsistent function argument declarations.
Solution:   Use ANSI style.
Files:	    src/if_py_both.h

Patch 7.3.1207
Problem:    New regexp engine: no match found on "#if FOO". (Lech Lorens)
Solution:   When adding a state gets skipped don't adjust the index.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1208
Problem:    Compiler warnings on MS-Windows.
Solution:   Add type cast.  Move variable declaration. (Mike Williams)
Files:	    src/option.c, src/os_mswin.c

Patch 7.3.1209
Problem:    No completion for ":tabdo".
Solution:   Add tabdo to the list of modifiers. (Dominique Pelle)
Files:	    src/ex_docmd.c

Patch 7.3.1210 (after 7.3.1182)
Problem:    'backupcopy' default on MS-Windows is wrong when 'encoding' equals
	    the current codepage.
Solution:   Change the #else block. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.3.1211
Problem:    MS-Windows: When 'encoding' differs from the current codepage
	    ":hardcopy" does not work properly.
Solution:   Use TextOutW() and SetDlgItemTextW(). (Ken Takata)
Files:	    src/os_mswin.c, src/vim.rc

Patch 7.3.1212
Problem:    "make test" on MS-Windows does not report failure like Unix does.
Solution:   Make it work like on Unix. (Taro Muraoka)
Files:	    src/testdir/Make_dos.mak

Patch 7.3.1213
Problem:    Can't build with small features and Python.
Solution:   Adjust #ifdefs.
Files:	    src/eval.c, src/buffer.c, src/eval.c, src/window.c

Patch 7.3.1214
Problem:    Missing declaration for init_users() and realloc_post_list().
	    (Salman Halim)
Solution:   Add the declarations.
Files:	    src/misc1.c, src/regexp_nfa.c

Patch 7.3.1215
Problem:    Compiler warning for function not defined.
Solution:   Add #ifdef.
Files:	    src/misc1.c

Patch 7.3.1216
Problem:    Configure can't find Motif on Ubuntu.
Solution:   Search for libXm in /usr/lib/*-linux-gnu.
Files:	    src/configure.in, src/auto/configure

Patch 7.3.1217
Problem:    New regexp engine: Can't handle \%[[ao]]. (Yukihiro Nakadaira)
Solution:   Support nested atoms inside \%[].
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1218
Problem:    "make test" on MS-Windows does not clean all temporary files and
	    gives some unnecessary message.
Solution:   Clean the right files.  Create .failed files. (Ken Takata)
Files:	    src/testdir/Make_dos.mak

Patch 7.3.1219
Problem:    No test for using []] inside \%[].
Solution:   Add a test.
Files:	    src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1220
Problem:    MS-Windows: When using wide font italic and bold are not included.
Solution:   Support wide-bold, wide-italic and wide-bold-italic. (Ken Takata,
	    Taro Muraoka)
Files:	    src/gui.c, src/gui.h, src/gui_w48.c

Patch 7.3.1221
Problem:    When build flags change "make distclean" run into a configure
	    error.
Solution:   When CFLAGS changes delete auto/config.cache.  Also avoid adding
	    duplicate text to flags. (Ken Takata)
Files:	    src/Makefile, src/configure.in, src/auto/configure

Patch 7.3.1222
Problem:    Cannot execute some tests from the src directly.
Solution:   Add missing targets.
Files:	    src/Makefile

Patch 7.3.1223
Problem:    Tests fail on MS-Windows.
Solution:   Avoid depending on OS version. Use DOS commands instead of Unix
	    commands. (Taro Muraoka, Ken Takata)
Files:	    src/testdir/test17.in, src/testdir/test50.in,
	    src/testdir/test71.in, src/testdir/test77.in

Patch 7.3.1224
Problem:    Clang gives warnings on xxd.
Solution:   Change how to use part of a string. (Dominique Pelle) Also avoid
	    warning for return not reached.
Files:	    src/xxd/xxd.c, src/regexp_nfa.c

Patch 7.3.1225
Problem:    Compiler warnings when building with Motif.
Solution:   Change set_label() argument. (Kazunobu Kuriyama)
Files:	    src/gui_motif.c

Patch 7.3.1226
Problem:    Python: duplicate code.
Solution:   Share code between OutputWrite() and OutputWritelines(). (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.1227
Problem:    Inconsistent string conversion.
Solution:   Use 'encoding' instead of utf-8. Use METH_O in place of
	    METH_VARARGS where appropriate. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.1228
Problem:    Python: various inconsistencies and problems.
Solution:   StringToLine now supports both bytes() and unicode() objects.
	    Make function names consistent.  Fix memory leak fixed in
	    StringToLine. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c

Patch 7.3.1229
Problem:    Python: not so easy to delete/restore translating.
Solution:   Make macros do translation of exception messages. (ZyX)
	    Note: this breaks translations!
Files:	    src/if_py_both.h, src/if_python3.c

Patch 7.3.1230
Problem:    Python: Exception messages are not clear.
Solution:   Make exception messages more verbose. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.1231
Problem:    Python: use of numbers not consistent.
Solution:   Add support for Number protocol. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.1232
Problem:    Python: inconsistencies in variable names.
Solution:   Rename variables. (ZyX)
Files:	    src/eval.c, src/if_py_both.h

Patch 7.3.1233
Problem:    Various Python problems.
Solution:   Fix VimTryEnd. Crash with debug build and PYTHONDUMPREFS=1. Memory
	    leaks in StringToLine(), BufferMark() and convert_dl. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.3.1234 (after 7.3.1229)
Problem:    Python: Strings are not marked for translation.
Solution:   Add N_() where appropriate. (ZyX)
Files:	    src/if_py_both.h

Patch 7.3.1235
Problem:    In insert mode CTRL-] is not inserted, on the command-line it is.
Solution:   Don't insert CTRL-] on the command line. (Yukihiro Nakadaira)
Files:	    src/ex_getln.c

Patch 7.3.1236
Problem:    Python: WindowSetattr() missing support for NUMBER_UNSIGNED.
Solution:   Add NUMBER_UNSIGNED, add more tests. Various fixes. (ZyX)
Files:	    src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/testdir/pythonx/failing.py,
	    src/testdir/pythonx/failing_import.py, src/testdir/test86.in,
	    src/testdir/test86.ok, src/testdir/test87.in,
	    src/testdir/test87.ok, src/testdir/pythonx/topmodule/__init__.py,
	    src/testdir/pythonx/topmodule/submodule/__init__.py,
	    src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py,
	    src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py

Patch 7.3.1237
Problem:    Python: non-import errors not handled correctly.
Solution:   Let non-ImportError exceptions pass the finder. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok

Patch 7.3.1238
Problem:    Crash in Python interface on 64 bit machines.
Solution:   Change argument type of PyString_AsStringAndSize. (Taro Muraoka,
	    Jun Takimoto)
Files:	    src/if_python.c

Patch 7.3.1239
Problem:    Can't build with Python and MSVC10.
Solution:   Move #if outside of macro. (Taro Muraoka)
Files:	    src/if_py_both.h

Patch 7.3.1240
Problem:    Memory leak in findfile().
Solution:   Free the memory. (Christian Brabandt)
Files:	    src/eval.c

Patch 7.3.1241 (after 7.3.1236)
Problem:    Some test files missing from the distribution.
Solution:   Update the list of files.
Files:	    Filelist

Patch 7.3.1242
Problem:    No failure when trying to use a number as a string.
Solution:   Give an error when StringToLine() is called with an instance of
	    the wrong type. (Jun Takimoto)
Files:	    src/if_py_both.h

Patch 7.3.1243
Problem:    New regexp engine: back references in look-behind match don't
	    work. (Lech Lorens)
Solution:   Copy the submatches before a recursive match. Also fix function
	    prototypes.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1244
Problem:    MS-Windows: confirm() dialog text may not fit.
Solution:   Use GetTextWidthEnc() instead of GetTextWidth(). (Yasuhiro
	    Matsumoto)
Files:	    src/gui_w32.c

Patch 7.3.1245
Problem:    MS-Windows: confirm() dialog text may still not fit.
Solution:   Use GetTextWidthEnc() instead of GetTextWidth() in two more
	    places. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 7.3.1246
Problem:    When setting 'winfixheight' and resizing the window causes the
	    window layout to be wrong.
Solution:   Add frame_check_height() and frame_check_width() (Yukihiro
	    Nakadaira)
Files:	    src/window.c

Patch 7.3.1247
Problem:    New regexp engine: '[ ]\@!\p\%([ ]\@!\p\)*:' does not always match.
Solution:   When there is a PIM add a duplicate state that starts at another
	    position.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1248
Problem:    Still have old hacking code for Input Method.
Solution:   Add 'imactivatefunc' and 'imstatusfunc' as a generic solution to
	    Input Method activation. (Yukihiro Nakadaira)
Files:	    runtime/doc/options.txt, src/fileio.c, src/mbyte.c, src/option.c,
	    src/option.h, src/proto/fileio.pro

Patch 7.3.1249
Problem:    Modeline not recognized when using "Vim" instead of "vim".
Solution:   Also accept "Vim".
Files:	    src/buffer.c

Patch 7.3.1250
Problem:    Python tests fail on MS-Windows.
Solution:   Change backslashes to slashes. (Taro Muraoka)
Files:	    src/testdir/test86.in, src/testdir/test87.in

Patch 7.3.1251
Problem:    Test 61 messes up viminfo.
Solution:   Specify a separate viminfo file.
Files:	    src/testdir/test61.in

Patch 7.3.1252
Problem:    gvim does not find the toolbar bitmap files in ~/vimfiles/bitmaps
	    if the corresponding menu command contains additional characters
	    like the shortcut marker '&' or if you use a non-english locale.
Solution:   Use menu->en_dname or menu->dname. (Martin Gieseking)
Files:	    src/gui_w32.c

Patch 7.3.1253 (after 7.3.1200)
Problem:    Still undo problem after using CTRL-R = setline(). (Hirohito
	    Higashi)
Solution:   Set the ins_need_undo flag.
Files:	    src/edit.c

Patch 7.3.1254 (after 7.3.1252)
Problem:    Can't build without the multi-lang feature. (John Marriott)
Solution:   Add #ifdef.
Files:	    src/gui_w32.c

Patch 7.3.1255
Problem:    Clang warnings when building with Athena.
Solution:   Add type casts. (Dominique Pelle)
Files:	    src/gui_at_fs.c

Patch 7.3.1256
Problem:    Can't build without eval or autocmd feature.
Solution:   Add #ifdefs.
Files:	    src/mbyte.c, src/window.c

Patch 7.3.1257
Problem:    With GNU gettext() ":lang de_DE.utf8" does not always result in
	    German messages.
Solution:   Clear the $LANGUAGE environment variable.
Files:	    src/ex_cmds2.c

Patch 7.3.1258
Problem:    Using submatch() may crash Vim. (Ingo Karkat)
Solution:   Restore the number of subexpressions used.
Files:	    src/regexp_nfa.c

Patch 7.3.1259
Problem:    No test for patch 7.3.1258
Solution:   Add a test entry.
Files:	    src/testdir/test64.in, src/testdir/test64.ok

Patch 7.3.1260
Problem:    User completion does not get the whole command line in the command
	    line window.
Solution:   Pass on the whole command line. (Daniel Thau)
Files:	    src/ex_getln.c, src/structs.h

Patch 7.3.1261 (after patch 7.3.1179)
Problem:    A buffer-local language mapping from a keymap stops a global
	    insert mode mapping from working. (Ron Aaron)
Solution:   Do not wait for more characters to be typed only when the mapping
	    was defined with <nowait>.
Files:	    runtime/doc/map.txt, src/eval.c, src/getchar.c,
	    src/testdir/test75.in, src/testdir/test75.ok

Patch 7.3.1262
Problem:    Crash and compilation warnings with Cygwin.
Solution:   Check return value of XmbTextListToTextProperty(). Add type casts.
	    Adjust #ifdefs. (Lech Lorens)
Files:	    src/main.c, src/os_unix.c, src/ui.c

Patch 7.3.1263
Problem:    Typo in short option name.
Solution:   Change "imse" to "imsf".
Files:	    src/option.c

Patch 7.3.1264 (after 7.3.1261)
Problem:    Missing m_nowait.
Solution:   Include missing part of the patch.
Files:	    src/structs.h

Patch 7.3.1265 (after 7.3.1249)
Problem:    Accepting "Vim:" for a modeline causes errors too often.
Solution:   Require "Vim:" to be followed by "set".
Files:	    src/buffer.c

Patch 7.3.1266
Problem:    QNX: GUI fails to start.
Solution:   Remove the QNX-specific #ifdef. (Sean Boudreau)
Files:	    src/gui.c

Patch 7.3.1267
Problem:    MS-Windows ACL support doesn't work well.
Solution:   Implement more ACL support. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.3.1268
Problem:    ACL support doesn't work when compiled with MingW.
Solution:   Support ACL on MingW. (Ken Takata)
Files:	    src/os_win32.c, src/os_win32.h

Patch 7.3.1269
Problem:    Insert completion keeps entry selected even though the list has
	    changed. (Olivier Teuliere)
Solution:   Reset compl_shown_match and compl_curr_match. (Christian Brabandt)
Files:	    src/edit.c

Patch 7.3.1270
Problem:    Using "Vp" in an empty buffer can't be undone. (Hauke Petersen)
Solution:   Save one line in an empty buffer. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.3.1271 (after 7.3.1260)
Problem:    Command line completion does not work.
Solution:   Move setting xp_line down. (Daniel Thau)
Files:	    src/ex_getln.c

Patch 7.3.1272
Problem:    Crash when editing Ruby file. (Aliaksandr Rahalevich)
Solution:   Reallocate the state list when necessary.
Files:	    src/regexp_nfa.c

Patch 7.3.1273
Problem:    When copying a location list the index might be wrong.
Solution:   Set the index to one when using the first entry. (Lech Lorens)
Files:	    src/quickfix.c

Patch 7.3.1274
Problem:    When selecting an entry from a location list it may pick an
	    arbitrary window or open a new one.
Solution:   Prefer using a window related to the location list. (Lech Lorens)
Files:	    src/quickfix.c

Patch 7.3.1275
Problem:    "gn" does not work when the match is a single character.
Solution:   Fix it, add a test. (Christian Brabandt)
Files:	    src/search.c, src/testdir/test53.in, src/testdir/test53.ok

Patch 7.3.1276
Problem:    When using a cscope connection resizing the window may send
	    SIGWINCH to cscope and it quits.
Solution:   Call setpgid(0, 0) in the child process. (Narendran Gopalakrishnan)
Files:	    src/if_cscope.c

Patch 7.3.1277
Problem:    In diff mode 'cursorline' also draws in the non-active window.
	    When 'nu' and 'sbr' are set the 'sbr' string is not underlined.
Solution:   Only draw the cursor line in the current window. Combine the
	    'cursorline' and other highlighting attributes. (Christian
	    Brabandt)
Files:	    src/screen.c

Patch 7.3.1278
Problem:    When someone sets the screen size to a huge value with "stty" Vim
	    runs out of memory before reducing the size.
Solution:   Limit Rows and Columns in more places.
Files:	    src/gui.c, src/gui_gtk_x11.c, src/option.c, src/os_unix.c,
	    src/proto/term.pro, src/term.c

Patch 7.3.1279
Problem:    Compiler warning for variable uninitialized. (Tony Mechelynck)
Solution:   Add an init.
Files:	    src/ex_getln.c

Patch 7.3.1280
Problem:    Reading memory already freed since patch 7.3.1247. (Simon
	    Ruderich, Dominique Pelle)
Solution:   Copy submatches before reallocating the state list.
Files:	    src/regexp_nfa.c

Patch 7.3.1281
Problem:    When 'ttymouse' is set to "xterm2" clicking in column 123 moves
	    the cursor to column 96. (Kevin Goodsell)
Solution:   Decode KE_CSI.
Files:	    src/term.c

Patch 7.3.1282 (after 7.3.1277)
Problem:    'cursorline' not drawn in any other window. (Charles Campbell)
Solution:   Do draw the cursor line in other windows.
Files:	    src/screen.c

Patch 7.3.1283
Problem:    Test 71 fails on MS-Windows.
Solution:   Put the binary data in a separate file. (Ken Takata)
Files:	    src/testdir/test71.in, src/testdir/test71a.in

Patch 7.3.1284
Problem:    Compiler warnings in MS-Windows clipboard handling.
Solution:   Add type casts. (Ken Takata)
Files:	    src/winclip.c

Patch 7.3.1285
Problem:    No tests for picking a window when selecting an entry in a
	    location list.  Not picking the right window sometimes.
Solution:   Add test 96. Set usable_win appropriately. (Lech Lorens)
Files:	    src/quickfix.c, src/testdir/Makefile, src/testdir/test96.in,
	    src/testdir/test96.ok, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.3.1286
Problem:    Check for screen size missing for Athena and Motif.
Solution:   Add call to limit_screen_size().
Files:	    src/gui_x11.c

Patch 7.3.1287
Problem:    Python SystemExit exception is not handled properly.
Solution:   Catch the exception and give an error. (Yasuhiro Matsumoto, Ken
	    Takata)
Files:	    runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c,
	    src/if_python3.c

Patch 7.3.1288
Problem:    The first ":echo 'hello'" command output doesn't show.  Mapping
	    for <S-F3> gets triggered during startup.
Solution:   Add debugging code for the termresponse.  When receiving the "Co"
	    entry and when setting 'ambiwidth' redraw right away if possible.
	    Add redraw_asap().  Don't set 'ambiwidth' if it already had the
	    right value.  Do the 'ambiwidth' check in the second row to avoid
	    confusion with <S-F3>.
Files:	    src/term.c, src/screen.c, src/proto/screen.pro

Patch 7.3.1289
Problem:    Get GLIB warning when removing a menu item.
Solution:   Reference menu-id and also call gtk_container_remove().  (Ivan
	    Krasilnikov)
Files:	    src/gui_gtk.c

Patch 7.3.1290 (after 7.3.1253)
Problem:    CTRL-R = in Insert mode changes the start of the insert position.
	    (Ingo Karkat)
Solution:   Only break undo, don't start a new insert.
Files:	    src/edit.c

Patch 7.3.1291 (after 7.3.1288)
Problem:    Compiler warnings for uninitialized variables. (Tony Mechelynck)
Solution:   Initialize the variables.
Files:	    src/screen.c

Patch 7.3.1292
Problem:    Possibly using invalid pointer when searching for window. (Raichoo)
Solution:   Use "firstwin" instead of "tp_firstwin" for current tab.
Files:	    src/window.c

Patch 7.3.1293
Problem:    Put in empty buffer cannot be undone.
Solution:   Save one more line for undo. (Ozaki)
Files:	    src/ops.c

Patch 7.3.1294
Problem:    ":diffoff" resets options.
Solution:   Save and restore option values. (Christian Brabandt)
Files:	    src/diff.c, src/structs.h, src/option.c

Patch 7.3.1295
Problem:    glob() and globpath() do not handle escaped special characters
	    properly.
Solution:   Handle escaped characters differently. (Adnan Zafar)
Files:	    src/testdir/Makefile, src/testdir/test97.in,
	    src/testdir/test97.ok, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, src/fileio.c,
	    src/misc1.c

Patch 7.3.1296
Problem:    Only MS-Windows limits the GUI window size to what fits on the
	    monitor.
Solution:   Limit the size for all systems. (Daniel Harding)
Files:	    src/ui.c

Patch 7.3.1297
Problem:    findfile() directory matching does not work when a star follows
	    text. (Markus Braun)
Solution:   Make a wildcard work properly. (Christian Brabandt)
Files:	    src/misc2.c, src/testdir/test89.in, src/testdir/test89.ok

Patch 7.3.1298 (after 7.3.1297)
Problem:    Crash.
Solution:   Use STRCPY() instead of STRCAT() and allocate one more byte.
Files:	    src/misc2.c

Patch 7.3.1299
Problem:    Errors when doing "make proto".  Didn't do "make depend" for a
	    while.
Solution:   Add #ifdefs.  Update dependencies.  Update proto files.
Files:	    src/if_python3.c, src/os_win32.c, src/Makefile,
	    src/proto/ex_docmd.pro, src/proto/if_python.pro,
	    src/proto/if_python3.pro, src/proto/gui_w16.pro,
	    src/proto/gui_w32.pro, src/proto/os_win32.pro

Patch 7.3.1300
Problem:    Mac: tiny and small build fails.
Solution:   Don't include os_macosx.m in tiny build. Include mouse support in
	    small build. (Kazunobu Kuriyama)
Files:	    src/configure.in, src/auto/configure, src/vim.h

Patch 7.3.1301
Problem:    Some tests fail on MS-Windows.
Solution:   Fix path separators in test 89 and 96.  Omit test 97, escaping
	    works differently.  Make findfile() work on MS-Windows.
Files:	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/test89.in,
	    src/testdir/test96.in, src/misc2.c

Patch 7.3.1302
Problem:    Test 17 fails on MS-Windows.  Includes line break in file name
	    everywhere.
Solution:   Fix 'fileformat'. Omit CR-LF from a line read from an included
	    file.
Files:	    src/search.c, src/testdir/test17.in, src/testdir/test17.ok

Patch 7.3.1303 (after 7.3.1290)
Problem:    Undo is synced whenever CTRL-R = is called, breaking some plugins.
Solution:   Only break undo when calling setline() or append().
Files:	    src/globals.h, src/eval.c, src/edit.c, src/testdir/test61.in,
	    src/testdir/test61.ok

Patch 7.3.1304
Problem:    Test 89 still fails on MS-Windows.
Solution:   Set 'shellslash'. (Taro Muraoka)
Files:	    src/testdir/test89.in

Patch 7.3.1305
Problem:    Warnings from 64 bit compiler.
Solution:   Add type casts.
Files:	    src/misc2.c

Patch 7.3.1306
Problem:    When redrawing the screen during startup the intro message may be
	    cleared.
Solution:   Redisplay the intro message when appropriate.
Files:	    src/screen.c, src/version.c, src/proto/version.pro

Patch 7.3.1307
Problem:    MS-Windows build instructions are outdated.
Solution:   Adjust for building on Windows 7.  Drop Windows 95/98/ME support.
Files:	    Makefile, nsis/gvim.nsi

Patch 7.3.1308
Problem:    Typos in MS-Windows build settings and README.
Solution:   Minor changes to MS-Windows files.
Files:	    src/msvc2008.bat, src/msvc2010.bat, src/VisVim/README_VisVim.txt

Patch 7.3.1309
Problem:    When a script defines a function the flag to wait for the user to
	    hit enter is reset.
Solution:   Restore the flag. (Yasuhiro Matsumoto)  Except when the user was
	    typing the function.
Files:	    src/eval.c

Patch 7.3.1310
Problem:    Typos in nsis script. Can use better compression.
Solution:   Fix typos.  Use lzma compression. (Ken Takata)
Files:	    nsis/gvim.nsi

Patch 7.3.1311
Problem:    Compiler warnings on Cygwin.
Solution:   Add type casts. Add windows include files. (Ken Takata)
Files:	    src/mbyte.c, src/ui.c

Patch 7.3.1312 (after 7.3.1287)
Problem:    Not giving correct error messages for SystemExit().
Solution:   Move E858 into an else. (Ken Takata)
Files:	    src/if_py_both.h

Patch 7.3.1313
Problem:    :py and :py3 don't work when compiled with Cygwin or MingW with 64
	    bit.
Solution:   Add -DMS_WIN64 to the build command. (Ken Takata)
Files:	    src/Make_cyg.mak, src/Make_ming.mak

Patch 7.3.1314
Problem:    Test 87 fails with Python 3.3.
Solution:   Filter the error messages. (Taro Muraoka)
Files:	    src/testdir/test87.in

Patch 7.4a.001
Problem:    Script to update syntax menu is outdated.
Solution:   Add the missing items.
Files:	    runtime/makemenu.vim

Patch 7.4a.002
Problem:    Valgrind errors in test 89. (Simon Ruderich)
Solution:   Allocate one more byte. (Dominique Pelle)
Files:	    src/misc2.c

Patch 7.4a.003
Problem:    Copyright year is outdated.
Solution:   Only use the first year.
Files:	    src/vim.rc, src/vim16.rc

Patch 7.4a.004
Problem:    MSVC 2012 Update 3 is not recognized.
Solution:   Add the version number. (Raymond Ko)
Files:	    src/Make_mvc.mak

Patch 7.4a.005
Problem:    Scroll binding causes unexpected scroll.
Solution:   Store the topline after updating scroll binding.  Add a test.
	    (Lech Lorens)
Files:	    src/testdir/test98.in, src/testdir/test98a.in,
	    src/testdir/test98.ok, src/option.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile

Patch 7.4a.006
Problem:    Failure in po file check goes unnoticed.
Solution:   Fail "make test" if the po file check fails.
Files:	    src/Makefile

Patch 7.4a.007
Problem:    After "g$" with 'virtualedit' set, "k" moves to a different
	    column.  (Dimitar Dimitrov)
Solution:   Set w_curswant. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.4a.008
Problem:    Python 3 doesn't handle multibyte characters properly when
	    'encoding' is not utf-8.
Solution:   Use PyUnicode_Decode() instead of PyUnicode_FromString(). (Ken
	    Takata)
Files:	    src/if_python3.c

Patch 7.4a.009
Problem:    Compiler warnings for function prototypes.
Solution:   Add "void".  Move list_features() prototype. (Ken Takata)
Files:	    src/gui_w48.c, src/if_py_both.h, src/version.c

Patch 7.4a.010
Problem:    Test 86 and 87 fail when building with Python or Python 3 and
	    using a static library.
Solution:   Add configure check to add -fPIE compiler flag.
Files:	    src/configure.in, src/auto/configure

Patch 7.4a.011
Problem:    Configure check for Python 3 config name isn't right.
Solution:   Always include vi_cv_var_python3_version. (Tim Harder)
Files:	    src/configure.in, src/auto/configure

Patch 7.4a.012
Problem:    "make test" fails when using a shadow directory.
Solution:   Create links for files in src/po. (James McCoy)
Files:	    src/Makefile

Patch 7.4a.013
Problem:    Setting/resetting 'lbr' in the main help file changes alignment
	    after a Tab. (Dimitar Dimitrov)
Solution:   Also use the code for conceal mode where n_extra is computed for
	    'lbr'.
Files:	    src/screen.c, src/testdir/test88.in, src/testdir/test88.ok

Patch 7.4a.014
Problem:    Test 86 and 89 have a problem with using a shadow dir.
Solution:   Adjust for the different directory structure. (James McCoy)
Files:	    src/testdir/test89.in, src/testdir/test86.in, src/Makefile

Patch 7.4a.015
Problem:    No Japanese man pages.
Solution:   Add Japanese translations of man pages. (Ken Takata, Yukihiro
	    Nakadaira, et al.)
Files:	    Filelist, src/Makefile, runtime/doc/evim-ja.UTF-8.1,
	    runtime/doc/vim-ja.UTF-8.1, runtime/doc/vimdiff-ja.UTF-8.1,
	    runtime/doc/vimtutor-ja.UTF-8.1, runtime/doc/xxd-ja.UTF-8.1

Patch 7.4a.016 (after 7.4a.014)
Problem:    Features enabled in Makefile.
Solution:   Undo accidental changes.
Files:	    src/Makefile

Patch 7.4a.017
Problem:    When 'foldmethod' is "indent", using ">>" on a line just above a
	    fold makes the cursor line folded. (Evan Laforge)
Solution:   Call foldOpenCursor(). (Christian Brabandt)
Files:	    src/ops.c

Patch 7.4a.018
Problem:    Compiler warning for code unreachable. (Charles Campbell)
Solution:   Use "while" instead of endless loop.  Change break to continue.
Files:	    src/regexp_nfa.c, src/ui.c

Patch 7.4a.019
Problem:    Invalid closing parenthesis in test 62. Command truncated at
	    double quote.
Solution:   Remove the parenthesis. Change double quote to ''. (ZyX)
Files:	    src/testdir/test62.in, src/testdir/test62.ok

Patch 7.4a.020
Problem:    Superfluous mb_ptr_adv().
Solution:   Remove the call. (Dominique Pelle)
Files:	    src/regexp_nfa.c

Patch 7.4a.021
Problem:    Using feedkeys() doesn't always work.
Solution:   Omit feedkeys(). (Ken Takata)
Files:	    src/testdir/test98a.in

Patch 7.4a.022
Problem:    Using "d2g$" does not delete the last character. (ZyX)
Solution:   Set the "inclusive" flag properly.
Files:	    src/normal.c

Patch 7.4a.023 (after 7.4a.019)
Problem:    Still another superfluous parenthesis. (ZyX)
Solution:   Remove it.
Files:	    src/testdir/test62.in

Patch 7.4a.024
Problem:    X11 GUI: Checking icon height twice.
Solution:   Check height and width. (Dominique Pelle)
Files:	    src/gui_x11.c

Patch 7.4a.025
Problem:    Get the press-Enter prompt even after using :redraw.
Solution:   Clear need_wait_return when executing :redraw.
Files:	    src/ex_docmd.c

Patch 7.4a.026
Problem:    ":diffoff" does not remove folds. (Ramel)
Solution:   Do not restore 'foldenable' when 'foldmethod' is "manual".
Files:	    src/diff.c

Patch 7.4a.027
Problem:    When Python adds lines to another buffer the cursor position is
	    wrong, it might be below the last line causing ml_get errors.
	    (Vlad Irnov)
Solution:   Temporarily change the current window, so that marks are corrected
	    properly.
Files:	    src/if_py_both.h, src/window.c, src/proto/buffer.pro

Patch 7.4a.028
Problem:    Crash when spell checking in new buffer.
Solution:   Set the b_p_key field.  (Mike Williams)
Files:	    src/spell.c, src/testdir/test58.in

Patch 7.4a.029
Problem:    Can't build with MzScheme on Ubuntu 13.04.
Solution:   Add configure check for the "ffi" library.
Files:	    src/configure.in, src/auto/configure

Patch 7.4a.030 (after 7.4.027)
Problem:    Missing find_win_for_buf(). (toothpik)
Solution:   Add missing changes.
Files:	    src/buffer.c

Patch 7.4a.031
Problem:    Compiler warnings. (Charles Campbell)
Solution:   Initialize variables even when not needed.
Files:	    src/regexp_nfa.c, src/search.c

Patch 7.4a.032
Problem:    New regexp engine: Does not match shorter alternative. (Ingo
	    Karkat)
Solution:   Do not drop a new state when the PIM info is different.
Files:	    src/regexp_nfa.c

Patch 7.4a.033
Problem:    Test 98 always passes.
Solution:   Include test98a.in in test98.in, execute the crucial command in
	    one line. (Yukihiro Nakadaira)
Files:	    src/testdir/test98.in, src/testdir/test98a.in

Patch 7.4a.034
Problem:    The tabline may flicker when opening a new tab after 7.3.759 on
	    Win32.
Solution:   Move call to TabCtrl_SetCurSel(). (Ken Takata)
Files:	    src/gui_w48.c

Patch 7.4a.035
Problem:    Fix in patch 7.4a.032 is not tested.
Solution:   Add test.
Files:	    src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4a.036
Problem:    "\p" in a regexp does not match double-width characters.
	    (Yukihiro Nakadaira)
Solution:   Don't count display cells, use vim_isprintc().
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
	    src/testdir/test64.ok, src/testdir/test95.in,
	    src/testdir/test95.ok

Patch 7.4a.037
Problem:    Win32: When mouse is hidden and in the toolbar, moving it won't
	    make it appear. (Sami Salonen)
Solution:   Add tabline_wndproc() and toolbar_wndproc(). (Ken Takata)
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 7.4a.038
Problem:    When using MSVC 2012 there are various issues, including GUI size
	    computations.
Solution:   Use SM_CXPADDEDBORDER. (Mike Williams)
Files:	    src/gui_w32.c, src/gui_w48.c, src/os_win32.h

Patch 7.4a.039
Problem:    New regexp engine doesn't match pattern. (Ingo Karkat)
Solution:   When adding a state also check for different PIM if the list of
	    states has any state with a PIM.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4a.040
Problem:    Win32: using uninitialized variable.
Solution:   (Yukihiro Nakadaira)
Files:	    src/os_win32.c

Patch 7.4a.041
Problem:    When using ":new ++ff=unix" and "dos" is first in 'fileformats'
	    then 'ff' is set to "dos" instead of "unix". (Ingo Karkat)
Solution:   Create set_file_options() and invoke it from do_ecmd().
Files:	    src/fileio.c, src/proto/fileio.pro, src/ex_cmds.c,
	    src/testdir/test91.in, src/testdir/test91.ok

Patch 7.4a.042
Problem:    Crash when BufUnload autocommands close all buffers. (Andrew
	    Pimlott)
Solution:   Set curwin->w_buffer to curbuf to avoid NULL.
Files:	    src/window.c, src/testdir/test8.in, src/testdir/test8.ok

Patch 7.4a.043
Problem:    More ml_get errors when adding or deleting lines from Python.
	    (Vlad Irnov)
Solution:   Switch to a window with the buffer when possible.
Files:	    src/if_py_both.h

Patch 7.4a.044
Problem:    Test 96 sometimes fails.
Solution:   Clear window from b_wininfo in win_free().  (Suggestion by
	    Yukihiro Nakadaira)
Files:	    src/window.c

Patch 7.4a.045
Problem:    Configure does not always find the right library for Lua.  Missing
	    support for LuaJit.
Solution:   Improve the configure detection of Lua. (Hiroshi Shirosaki)
Files:	    src/Makefile, src/configure.in, src/auto/configure

Patch 7.4a.046
Problem:    Can't build without mbyte feature.
Solution:   Add #ifdefs.
Files:	    src/ex_cmds.c

Patch 7.4a.047
Problem:    Some comments are not so nice.
Solution:   Change the comments.
Files:	    src/ex_docmd.c, src/message.c, src/ops.c, src/option.c

Patch 7.4b.001
Problem:    Win32: dialog may extend off-screen.
Solution:   Reduce the size, use correct borders. (Andrei Olsen)
Files:	    src/gui_w32.c

Patch 7.4b.002
Problem:    Crash searching for \%(\%(\|\d\|-\|\.\)*\|\*\). (Marcin
	    Szamotulski)  Also for \(\)*.
Solution:   Do add a state for opening parenthesis, so that we can check if it
	    was added before at the same position.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4b.003
Problem:    Regexp code is not nicely aligned.
Solution:   Adjust white space. (Ken Takata)
Files:	    src/regexp_nfa.c

Patch 7.4b.004
Problem:    Regexp crash on pattern "@\%[\w\-]*". (Axel Kielhorn)
Solution:   Add \%(\) around \%[] internally.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4b.005
Problem:    Finding %s in shellpipe and shellredir does not ignore %%s.
Solution:   Skip over %%. (lcd 47)
Files:	    src/ex_cmds.c

Patch 7.4b.006 (after 7.3.1295)
Problem:    Using \{n,m} in an autocommand pattern no longer works.
	    Specifically, mutt temp files are not recognized. (Gary Johnson)
Solution:   Make \\\{n,m\} work.
Files:	    runtime/doc/autocmd.txt, src/fileio.c

Patch 7.4b.007
Problem:    On 32 bit MS-Windows :perldo does not work.
Solution:   Make sure time_t uses 32 bits. (Ken Takata)
Files:	    src/if_perl.xs, src/vim.h

Patch 7.4b.008
Problem:    'autochdir' causes setbufvar() to change the current directory.
	    (Ben Fritz)
Solution:   When disabling autocommands also reset 'acd' temporarily.
	    (Christian Brabandt)
Files:	    src/fileio.c

Patch 7.4b.009
Problem:    When setting the Visual area manually and 'selection' is
	    exclusive, a yank includes one character too much. (Ingo Karkat)
Solution:   Default the Visual operation to "v". (Christian Brabandt)
Files:	    src/mark.c

Patch 7.4b.010
Problem:    Win32: Tcl library load does not use standard mechanism.
Solution:   Call vimLoadLib() instead of LoadLibraryEx(). (Ken Takata)
Files:	    src/if_perl.xs, src/if_tcl.c

Patch 7.4b.011
Problem:    ":he \%(\)" does not work. (ZyX)
Solution:   Add an exception to the list.
Files:	    src/ex_cmds.c

Patch 7.4b.012
Problem:    Output from a shell command is truncated at a NUL. (lcd 47)
Solution:   Change every NUL into an SOH.
Files:	    src/misc1.c

Patch 7.4b.013
Problem:    Install dir for JP man pages is wrong.
Solution:   Remove ".UTF-8" from the directory name. (Ken Takata)
Files:	    src/Makefile

Patch 7.4b.014 (after 7.4b.012)
Problem:    Stupid mistake.
Solution:   Changle "len" to "i".
Files:	    src/misc1.c

Patch 7.4b.015 (after 7.4b.008)
Problem:    Can't compile without the 'acd' feature.
Solution:   Add #ifdefs. (Kazunobu Kuriyama)
Files:	    src/fileio.c

Patch 7.4b.016
Problem:    Ruby detection fails on Fedora 19.
Solution:   Use one way to get the Ruby version. (Michael Henry)
Files:	    src/configure.in, src/auto/configure

Patch 7.4b.017
Problem:    ":he \^x" gives a strange error message. (glts)
Solution:   Do not translate \^x to \_CTRL-x.
Files:	    src/ex_cmds.c

Patch 7.4b.018 (after 7.4b.001)
Problem:    Win32: Dialog can still be too big.
Solution:   Move the check for height further down. (Andrei Olsen)
Files:	    src/gui_w32.c

Patch 7.4b.019 (after 7.4a.034)
Problem:    Tabline is not updated properly when closing a tab on Win32.
Solution:   Only reduce flickering when adding a tab. (Ken Takata)
Files:	    src/gui_w48.c

Patch 7.4b.020
Problem:    "g~ap" changes first character of next paragraph. (Manuel Ortega)
Solution:   Avoid subtracting (0 - 1) from todo.  (Mike Williams)
Files:	    src/ops.c, src/testdir/test82.in, src/testdir/test82.ok

Patch 7.4b.021
Problem:    Pressing "u" after an external command results in multiple
	    press-enter messages. (glts)
Solution:   Don't call hit_return_msg() when we have K_IGNORE. (Christian
	    Brabandt)
Files:	    src/message.c

Patch 7.4b.022
Problem:    Not waiting for a character when the tick count overflows.
Solution:   Subtract the unsigned numbers and cast to int. (Ken Takata)
Files:	    src/os_win32.c



 vim:tw=78:ts=8:ft=help:norl:
PK�j�ZhW��GGGGvim80/doc/ft_ada.txtnu�[���*ft_ada.txt*	For Vim version 8.0.  Last change: 2010 Jul 20


		    ADA FILE TYPE PLUG-INS REFERENCE MANUAL~

ADA								      *ada.vim*

1.  Syntax Highlighting			    |ft-ada-syntax|
2.  File type Plug-in			    |ft-ada-plugin|
3.  Omni Completion			    |ft-ada-omni|
    3.1 Omni Completion with "gnat xref"	|gnat-xref|
    3.2 Omni Completion with "ctags"		|ada-ctags|
4.  Compiler Support			    |ada-compiler|
    4.1 GNAT					|compiler-gnat|
    4.2 Dec Ada					|compiler-decada|
5.  References				    |ada-reference|
    5.1 Options					|ft-ada-options|
    5.2 Commands				|ft-ada-commands|
    5.3 Variables				|ft-ada-variables|
    5.4 Constants				|ft-ada-constants|
    5.5 Functions				|ft-ada-functions|
6.  Extra Plug-ins			    |ada-extra-plugins|

==============================================================================
1. Syntax Highlighting ~
							       *ft-ada-syntax*

This mode is designed for the 2005 edition of Ada ("Ada 2005"), which includes
support for objected-programming, protected types, and so on.  It handles code
written for the original Ada language ("Ada83", "Ada87", "Ada95") as well,
though code which uses Ada 2005-only keywords will be wrongly colored (such
code should be fixed anyway).  For more information about Ada, see
http://www.adapower.com.

The Ada mode handles a number of situations cleanly.

For example, it knows that the "-" in "-5" is a number, but the same character
in "A-5" is an operator.  Normally, a "with" or "use" clause referencing
another compilation unit is coloured the same way as C's "#include" is coloured.
If you have "Conditional" or "Repeat" groups coloured differently, then "end
if" and "end loop" will be coloured as part of those respective groups.

You can set these to different colours using vim's "highlight" command (e.g.,
to change how loops are displayed, enter the command ":hi Repeat" followed by
the colour specification; on simple terminals the colour specification
ctermfg=White often shows well).

There are several options you can select in this Ada mode. See |ft-ada-options|
for a complete list.

To enable them, assign a value to the option.  For example, to turn one on:
 >
    > let g:ada_standard_types = 1
>
To disable them use ":unlet".  Example:
>
    > unlet g:ada_standard_types

You can just use ":" and type these into the command line to set these
temporarily before loading an Ada file.  You can make these option settings
permanent by adding the "let" command(s), without a colon, to your "~/.vimrc"
file.

Even on a slow (90Mhz) PC this mode works quickly, but if you find the
performance unacceptable, turn on |g:ada_withuse_ordinary|.

Syntax folding instructions (|fold-syntax|) are added when |g:ada_folding| is
set.

==============================================================================
2. File type Plug-in ~
					       *ft-ada-indent* *ft-ada-plugin*

The Ada plug-in provides support for:

 - auto indenting	(|indent.txt|)
 - insert completion	(|i_CTRL-N|)
 - user completion	(|i_CTRL-X_CTRL-U|)
 - tag searches		(|tagsrch.txt|)
 - Quick Fix		(|quickfix.txt|)
 - backspace handling	(|'backspace'|)
 - comment handling	(|'comments'|, |'commentstring'|)

The plug-in only activates the features of the Ada mode whenever an Ada
file is opened and adds Ada related entries to the main and pop-up menu.

==============================================================================
3. Omni Completion ~
								 *ft-ada-omni*

The Ada omni-completions (|i_CTRL-X_CTRL-O|) uses tags database created either
by "gnat xref -v" or the "exuberant Ctags (http://ctags.sourceforge.net).  The
complete function will automatically detect which tool was used to create the
tags file.

------------------------------------------------------------------------------
3.1 Omni Completion with "gnat xref" ~
								   *gnat-xref*

GNAT XREF uses the compiler internal information (ali-files) to produce the
tags file. This has the advantage to be 100% correct and the option of deep
nested analysis. However the code must compile, the generator is quite
slow and the created tags file contains only the basic Ctags information for
each entry - not enough for some of the more advanced Vim code browser
plug-ins.

NOTE: "gnat xref -v" is very tricky to use as it has almost no diagnostic
       output - If nothing is printed then usually the parameters are wrong.
       Here some important tips:

1)  You need to compile your code first and use the "-aO" option to point to
    your .ali files.
2)  "gnat xref -v ../Include/adacl.ads" won't work - use  the "gnat xref -v
    -aI../Include adacl.ads" instead.
3)  "gnat xref -v -aI../Include *.ad?" won't work - use "cd ../Include" and
    then "gnat xref -v *.ad?"
4)  Project manager support is completely broken - don't even try "gnat xref
    -Padacl.gpr".
5)  Vim is faster when the tags file is sorted - use "sort --unique
    --ignore-case --output=tags tags" .
6)  Remember to insert "!_TAG_FILE_SORTED 2 %sort ui" as first line to mark
    the file assorted.

------------------------------------------------------------------------------
3.2 Omni Completion with "ctags"~
								   *ada-ctags*

Exuberant Ctags uses its own multi-language code parser. The parser is quite
fast, produces a lot of extra information (hence the name "Exuberant Ctags")
and can run on files which currently do not compile.

There are also lots of other Vim-tools which use exuberant Ctags.

You will need to install a version of the Exuberant Ctags which has Ada
support patched in. Such a version is available from the GNU Ada Project
(http://gnuada.sourceforge.net).

The Ada parser for Exuberant Ctags is fairly new - don't expect complete
support yet.

==============================================================================
4. Compiler Support ~
								*ada-compiler*

The Ada mode supports more than one Ada compiler and will automatically load the
compiler set in |g:ada_default_compiler| whenever an Ada source is opened. The
provided compiler plug-ins are split into the actual compiler plug-in and a
collection of support functions and variables. This allows the easy
development of specialized compiler plug-ins fine tuned to your development
environment.

------------------------------------------------------------------------------
4.1 GNAT ~
							       *compiler-gnat*

GNAT is the only free (beer and speech) Ada compiler available. There are
several versions available which differ in the licence terms used.

The GNAT compiler plug-in will perform a compile on pressing <F7> and then
immediately shows the result. You can set the project file to be used by
setting:
 >
 > call g:gnat.Set_Project_File ('my_project.gpr')

Setting a project file will also create a Vim session (|views-sessions|) so -
like with the GPS - opened files, window positions etc. will be remembered
separately for all projects.

								*gnat_members*
GNAT OBJECT ~

							       *g:gnat.Make()*
g:gnat.Make()
		Calls |g:gnat.Make_Command| and displays the result inside a
               |quickfix| window.

							     *g:gnat.Pretty()*
g:gnat.Pretty()
		Calls |g:gnat.Pretty_Program|

							       *g:gnat.Find()*
g:gnat.Find()
		Calls |g:gnat.Find_Program|

							       *g:gnat.Tags()*
g:gnat.Tags()
		Calls |g:gnat.Tags_Command|

						   *g:gnat.Set_Project_File()*
g:gnat.Set_Project_File([{file}])
		Set gnat project file and load associated session.  An open
		project will be closed and the session written.  If called
		without file name the file selector opens for selection of a
		project file. If called with an empty string then the project
		and associated session are closed.

							 *g:gnat.Project_File*
g:gnat.Project_File	string
		Current project file.

							 *g:gnat.Make_Command*
g:gnat.Make_Command	string
		External command used for |g:gnat.Make()| (|'makeprg'|).

						       *g:gnat.Pretty_Program*
g:gnat.Pretty_Program	string
		External command used for |g:gnat.Pretty()|

							 *g:gnat.Find_Program*
g:gnat.Find_Program	string
		External command used for |g:gnat.Find()|

							 *g:gnat.Tags_Command*
g:gnat.Tags_Command	string
		External command used for |g:gnat.Tags()|

							 *g:gnat.Error_Format*
g:gnat.Error_Format	string
		Error format (|'errorformat'|)

------------------------------------------------------------------------------
4.2 Dec Ada ~
					    *compiler-hpada* *compiler-decada*
					*compiler-vaxada* *compiler-compaqada*

Dec Ada (also known by - in chronological order - VAX Ada, Dec Ada, Compaq Ada
and HP Ada) is a fairly dated Ada 83 compiler. Support is basic: <F7> will
compile the current unit.

The Dec Ada compiler expects the package name and not the file name to be
passed as a parameter. The compiler plug-in supports the usual file name
convention to convert the file into a unit name. Both '-' and '__' are allowed
as separators.

							      *decada_members*
DEC ADA OBJECT ~

							     *g:decada.Make()*
g:decada.Make()		function
		Calls |g:decada.Make_Command| and displays the result inside a
		|quickfix| window.

							*g:decada.Unit_Name()*
g:decada.Unit_Name()	function
		Get the Unit name for the current file.

						       *g:decada.Make_Command*
g:decada.Make_Command	string
		External command used for |g:decada.Make()| (|'makeprg'|).

						       *g:decada.Error_Format*
g:decada.Error_Format|	string
		Error format (|'errorformat'|).

==============================================================================
5. References ~
							       *ada-reference*

------------------------------------------------------------------------------
5.1 Options ~
							      *ft-ada-options*

							*g:ada_standard_types*
g:ada_standard_types	bool (true when exists)
		Highlight types in package Standard (e.g., "Float").

							  *g:ada_space_errors*
						  *g:ada_no_trail_space_error*
						    *g:ada_no_tab_space_error*
							 *g:ada_all_tab_usage*
g:ada_space_errors	 bool (true when exists)
		Highlight extraneous errors in spaces ...
		g:ada_no_trail_space_error
		    - but ignore trailing spaces at the end of a line
		g:ada_no_tab_space_error
		    - but ignore tabs after spaces
		g:ada_all_tab_usage
		    - highlight all tab use

							   *g:ada_line_errors*
g:ada_line_errors	  bool (true when exists)
		Highlight lines which are too long. Note: This highlighting
		option is quite CPU intensive.

							 *g:ada_rainbow_color*
g:ada_rainbow_color	  bool (true when exists)
		Use rainbow colours for '(' and ')'. You need the
		rainbow_parenthesis for this to work.

							       *g:ada_folding*
g:ada_folding		  set ('sigpft')
		Use folding for Ada sources.
		    's':    activate syntax folding on load
			'p':    fold packages
			'f':    fold functions and procedures
			't':    fold types
			'c':    fold conditionals
		    'g':    activate gnat pretty print folding on load
			'i':    lone 'is' folded with line above
			'b':	lone 'begin' folded with line above
			'p':	lone 'private' folded with line above
			'x':	lone 'exception' folded with line above
		    'i':    activate indent folding on load

		Note: Syntax folding is in an early (unusable) stage and
		      indent or gnat pretty folding is suggested.

		For gnat pretty folding to work the following settings are
		suggested: -cl3 -M79 -c2 -c3 -c4 -A1 -A2 -A3 -A4 -A5

		For indent folding to work the following settings are
		suggested: shiftwidth=3 softtabstop=3

								*g:ada_abbrev*
g:ada_abbrev		  bool (true when exists)
		Add some abbreviations. This feature is more or less superseded
		by the various completion methods.

						      *g:ada_withuse_ordinary*
g:ada_withuse_ordinary	  bool (true when exists)
		Show "with" and "use" as ordinary keywords (when used to
		reference other compilation units they're normally highlighted
		specially).

							 *g:ada_begin_preproc*
g:ada_begin_preproc	  bool (true when exists)
		Show all begin-like keywords using the colouring of C
		preprocessor commands.

						    *g:ada_omni_with_keywords*
g:ada_omni_with_keywords
		Add Keywords, Pragmas, Attributes to omni-completions
		(|compl-omni|). Note: You can always complete then with user
		completion (|i_CTRL-X_CTRL-U|).

						      *g:ada_extended_tagging*
g:ada_extended_tagging	  enum ('jump', 'list')
		use extended tagging, two options are available
		    'jump': use tjump to jump.
		    'list': add tags quick fix list.
		Normal tagging does not support function or operator
		overloading as these features are not available in C and
		tagging was originally developed for C.

						   *g:ada_extended_completion*
g:ada_extended_completion
		Uses extended completion for <C-N> and <C-R> completions
		(|i_CTRL-N|). In this mode the '.' is used as part of the
		identifier so that 'Object.Method' or 'Package.Procedure' are
		completed together.

						       *g:ada_gnat_extensions*
g:ada_gnat_extensions	  bool (true when exists)
		 Support GNAT extensions.

					       *g:ada_with_gnat_project_files*
g:ada_with_gnat_project_files	 bool (true when exists)
		 Add gnat project file keywords and Attributes.

						      *g:ada_default_compiler*
g:ada_default_compiler	  string
		set default compiler. Currently supported are 'gnat' and
		'decada'.

An "exists" type is a boolean considered true when the variable is defined and
false when the variable is undefined. The value to which the variable is set
makes no difference.

------------------------------------------------------------------------------
5.2 Commands ~
							     *ft-ada-commands*

:AdaRainbow							 *:AdaRainbow*
		Toggles rainbow colour (|g:ada_rainbow_color|) mode for
		'(' and ')'.

:AdaLines							   *:AdaLines*
		Toggles line error (|g:ada_line_errors|) display.

:AdaSpaces							  *:AdaSpaces*
		Toggles space error (|g:ada_space_errors|) display.

:AdaTagDir							  *:AdaTagDir*
		Creates tags file for the directory of the current file.

:AdaTagFile							 *:AdaTagFile*
		Creates tags file for the current file.

:AdaTypes							   *:AdaTypes*
		Toggles standard types (|g:ada_standard_types|) colour.

:GnatFind							   *:GnatFind*
		Calls |g:gnat.Find()|

:GnatPretty							 *:GnatPretty*
		Calls |g:gnat.Pretty()|

:GnatTags							   *:GnatTags*
		Calls |g:gnat.Tags()|

------------------------------------------------------------------------------
5.3 Variables ~
							    *ft-ada-variables*

								      *g:gnat*
g:gnat			    object
		Control object which manages GNAT compiles.  The object
		is created when the first Ada source code is loaded provided
		that |g:ada_default_compiler| is set to 'gnat'. See
		|gnat_members| for details.

								    *g:decada*
g:decada		      object
		Control object which manages Dec Ada compiles.	The object
		is created when the first Ada source code is loaded provided
		that |g:ada_default_compiler| is set to 'decada'. See
		|decada_members| for details.

------------------------------------------------------------------------------
5.4 Constants ~
							    *ft-ada-constants*

All constants are locked. See |:lockvar| for details.

							     *g:ada#WordRegex*
g:ada#WordRegex		string
		Regular expression to search for Ada words.

							  *g:ada#DotWordRegex*
g:ada#DotWordRegex	string
		Regular expression to search for Ada words separated by dots.

							       *g:ada#Comment*
g:ada#Comment		string
		Regular expression to search for Ada comments.

							      *g:ada#Keywords*
g:ada#Keywords		list of dictionaries
		List of keywords, attributes etc. pp. in the format used by
		omni completion. See |complete-items| for details.

							   *g:ada#Ctags_Kinds*
g:ada#Ctags_Kinds	dictionary of lists
		Dictionary of the various kinds of items which the Ada support
		for Ctags generates.

------------------------------------------------------------------------------
5.5 Functions ~
							    *ft-ada-functions*

ada#Word([{line}, {col}])					  *ada#Word()*
		Return full name of Ada entity under the cursor (or at given
		line/column), stripping white space/newlines as necessary.

ada#List_Tag([{line}, {col}])				      *ada#Listtags()*
		List all occurrences of the Ada entity under the cursor (or at
		given line/column) inside the quick-fix window.

ada#Jump_Tag ({ident}, {mode})				      *ada#Jump_Tag()*
		List all occurrences of the Ada entity under the cursor (or at
		given line/column) in the tag jump list. Mode can either be
		'tjump' or 'stjump'.

ada#Create_Tags ({option})				   *ada#Create_Tags()*
		Creates tag file using Ctags. The option can either be 'file'
		for the current file, 'dir' for the directory of the current
		file or a file name.

gnat#Insert_Tags_Header()			   *gnat#Insert_Tags_Header()*
		Adds the tag file header (!_TAG_) information to the current
		file which are missing from the GNAT XREF output.

ada#Switch_Syntax_Option ({option})		  *ada#Switch_Syntax_Option()*
		Toggles highlighting options on or off. Used for the Ada menu.

								  *gnat#New()*
gnat#New ()
		Create a new gnat object. See |g:gnat| for details.


==============================================================================
6. Extra Plugins ~
							   *ada-extra-plugins*

You can optionally install the following extra plug-ins. They work well with
Ada and enhance the ability of the Ada mode:

backup.vim
	http://www.vim.org/scripts/script.php?script_id=1537
	Keeps as many backups as you like so you don't have to.

rainbow_parenthsis.vim
	http://www.vim.org/scripts/script.php?script_id=1561
	Very helpful since Ada uses only '(' and ')'.

nerd_comments.vim
	http://www.vim.org/scripts/script.php?script_id=1218
	Excellent commenting and uncommenting support for almost any
	programming language.

matchit.vim
	http://www.vim.org/scripts/script.php?script_id=39
	'%' jumping for any language. The normal '%' jump only works for '{}'
	style languages. The Ada mode will set the needed search patterns.

taglist.vim
	http://www.vim.org/scripts/script.php?script_id=273
	Source code explorer sidebar. There is a patch for Ada available.

The GNU Ada Project distribution (http://gnuada.sourceforge.net) of Vim
contains all of the above.

==============================================================================
vim: textwidth=78 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab
vim: filetype=help
PK�j�ZT�d:��vim80/doc/indent.txtnu�[���*indent.txt*    For Vim version 8.0.  Last change: 2018 Apr 04


		  VIM REFERENCE MANUAL    by Bram Moolenaar


This file is about indenting C programs and other files.

1. Indenting C style programs	|C-indenting|
2. Indenting by expression	|indent-expression|

==============================================================================
1. Indenting C style programs				*C-indenting*

The basics for C style indenting are explained in section |30.2| of the user
manual.

Vim has options for automatically indenting C style program files. Many
programming languages including Java and C++ follow very closely the
formatting conventions established with C.  These options affect only the
indent and do not perform other formatting.  There are additional options that
affect other kinds of formatting as well as indenting, see |format-comments|,
|fo-table|, |gq| and |formatting| for the main ones.

Note that this will not work when the |+smartindent| or |+cindent| features
have been disabled at compile time.

There are in fact four main methods available for indentation, each one
overrides the previous if it is enabled, or non-empty for 'indentexpr':
'autoindent'	uses the indent from the previous line.
'smartindent'	is like 'autoindent' but also recognizes some C syntax to
		increase/reduce the indent where appropriate.
'cindent'	Works more cleverly than the other two and is configurable to
		different indenting styles.
'indentexpr'	The most flexible of all: Evaluates an expression to compute
		the indent of a line.  When non-empty this method overrides
		the other ones.  See |indent-expression|.
The rest of this section describes the 'cindent' option.

Note that 'cindent' indenting does not work for every code scenario.  Vim
is not a C compiler: it does not recognize all syntax.  One requirement is
that toplevel functions have a '{' in the first column.  Otherwise they are
easily confused with declarations.

These four options control C program indenting:
'cindent'	Enables Vim to perform C program indenting automatically.
'cinkeys'	Specifies which keys trigger reindenting in insert mode.
'cinoptions'	Sets your preferred indent style.
'cinwords'	Defines keywords that start an extra indent in the next line.

If 'lisp' is not on and 'equalprg' is empty, the "=" operator indents using
Vim's built-in algorithm rather than calling an external program.

See |autocommand| for how to set the 'cindent' option automatically for C code
files and reset it for others.

					*cinkeys-format* *indentkeys-format*
The 'cinkeys' option is a string that controls Vim's indenting in response to
typing certain characters or commands in certain contexts.  Note that this not
only triggers C-indenting.  When 'indentexpr' is not empty 'indentkeys' is
used instead.  The format of 'cinkeys' and 'indentkeys' is equal.

The default is "0{,0},0),:,0#,!^F,o,O,e" which specifies that indenting occurs
as follows:

	"0{"	if you type '{' as the first character in a line
	"0}"	if you type '}' as the first character in a line
	"0)"	if you type ')' as the first character in a line
	":"	if you type ':' after a label or case statement
	"0#"	if you type '#' as the first character in a line
	"!^F"	if you type CTRL-F (which is not inserted)
	"o"	if you type a <CR> anywhere or use the "o" command (not in
		insert mode!)
	"O"	if you use the "O" command (not in insert mode!)
	"e"	if you type the second 'e' for an "else" at the start of a
		line

Characters that can precede each key:				*i_CTRL-F*
!	When a '!' precedes the key, Vim will not insert the key but will
	instead reindent the current line.  This allows you to define a
	command key for reindenting the current line.  CTRL-F is the default
	key for this.  Be careful if you define CTRL-I for this because CTRL-I
	is the ASCII code for <Tab>.
*	When a '*' precedes the key, Vim will reindent the line before
	inserting the key.  If 'cinkeys' contains "*<Return>", Vim reindents
	the current line before opening a new line.
0	When a zero precedes the key (but appears after '!' or '*') Vim will
	reindent the line only if the key is the first character you type in
	the line.  When used before "=" Vim will only reindent the line if
	there is only white space before the word.

When neither '!' nor '*' precedes the key, Vim reindents the line after you
type the key.  So ';' sets the indentation of a line which includes the ';'.

Special key names:
<>	Angle brackets mean spelled-out names of keys.  For example: "<Up>",
	"<Ins>" (see |key-notation|).
^	Letters preceded by a caret (^) are control characters.  For example:
	"^F" is CTRL-F.
o	Reindent a line when you use the "o" command or when Vim opens a new
	line below the current one (e.g., when you type <Enter> in insert
	mode).
O	Reindent a line when you use the "O" command.
e	Reindent a line that starts with "else" when you type the second 'e'.
:	Reindent a line when a ':' is typed which is after a label or case
	statement.  Don't reindent for a ":" in "class::method" for C++.  To
	Reindent for any ":", use "<:>".
=word	Reindent when typing the last character of "word".  "word" may
	actually be part of another word.  Thus "=end" would cause reindenting
	when typing the "d" in "endif" or "endwhile".  But not when typing
	"bend".  Also reindent when completion produces a word that starts
	with "word".  "0=word" reindents when there is only white space before
	the word.
=~word	Like =word, but ignore case.

If you really want to reindent when you type 'o', 'O', 'e', '0', '<', '>',
'*', ':' or '!', use "<o>", "<O>", "<e>", "<0>", "<<>", "<>>", "<*>", "<:>" or
"<!>", respectively, for those keys.

For an emacs-style indent mode where lines aren't indented every time you
press <Enter> but only if you press <Tab>, I suggest:
	:set cinkeys=0{,0},:,0#,!<Tab>,!^F
You might also want to switch off 'autoindent' then.

Note: If you change the current line's indentation manually, Vim ignores the
cindent settings for that line.  This prevents vim from reindenting after you
have changed the indent by typing <BS>, <Tab>, or <Space> in the indent or
used CTRL-T or CTRL-D.

						*cinoptions-values*
The 'cinoptions' option sets how Vim performs indentation.  The value after
the option character can be one of these (N is any number):
	N	indent N spaces
	-N	indent N spaces to the left
	Ns	N times 'shiftwidth' spaces
	-Ns	N times 'shiftwidth' spaces to the left

In the list below,
"N" represents a number of your choice (the number can be negative).  When
there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
"1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc.  You can use a
decimal point, too: "-0.5s" is minus half a 'shiftwidth'.
The examples below assume a 'shiftwidth' of 4.
							*cino->*
	>N    Amount added for "normal" indent.  Used after a line that should
	      increase the indent (lines starting with "if", an opening brace,
	      etc.).  (default 'shiftwidth').

		cino=		    cino=>2		cino=>2s >
		  if (cond)	      if (cond)		  if (cond)
		  {		      {			  {
		      foo;		foo;			  foo;
		  }		      }			  }
<
							*cino-e*
	eN    Add N to the prevailing indent inside a set of braces if the
	      opening brace at the End of the line (more precise: is not the
	      first character in a line).  This is useful if you want a
	      different indent when the '{' is at the start of the line from
	      when '{' is at the end of the line.  (default 0).

		cino=		    cino=e2		cino=e-2 >
		  if (cond) {	      if (cond) {	  if (cond) {
		      foo;		    foo;	    foo;
		  }		      }			  }
		  else		      else		  else
		  {		      {			  {
		      bar;		  bar;		      bar;
		  }		      }			  }
<
							*cino-n*
	nN    Add N to the prevailing indent for a statement after an "if",
	      "while", etc., if it is NOT inside a set of braces.  This is
	      useful if you want a different indent when there is no '{'
	      before the statement from when there is a '{' before it.
	      (default 0).

		cino=		    cino=n2		cino=n-2 >
		  if (cond)	      if (cond)		  if (cond)
		      foo;		    foo;	    foo;
		  else		      else		  else
		  {		      {			  {
		      bar;		  bar;		      bar;
		  }		      }			  }
<
							*cino-f*
	fN    Place the first opening brace of a function or other block in
	      column N.  This applies only for an opening brace that is not
	      inside other braces and is at the start of the line.  What comes
	      after the brace is put relative to this brace.  (default 0).

		cino=		    cino=f.5s		cino=f1s >
		  func()	      func()		  func()
		  {			{		      {
		      int foo;		    int foo;		  int foo;
<
							*cino-{*
	{N    Place opening braces N characters from the prevailing indent.
	      This applies only for opening braces that are inside other
	      braces.  (default 0).

		cino=		    cino={.5s		cino={1s >
		  if (cond)	      if (cond)		  if (cond)
		  {			{		      {
		      foo;		  foo;		      foo;
<
							*cino-}*
	}N    Place closing braces N characters from the matching opening
	      brace.  (default 0).

		cino=		    cino={2,}-0.5s	cino=}2 >
		  if (cond)	      if (cond)		  if (cond)
		  {			{		  {
		      foo;		  foo;		      foo;
		  }		      }			    }
<
							*cino-^*
	^N    Add N to the prevailing indent inside a set of braces if the
	      opening brace is in column 0.  This can specify a different
	      indent for whole of a function (some may like to set it to a
	      negative number).  (default 0).

		cino=		    cino=^-2		cino=^-s >
		  func()	      func()		  func()
		  {		      {			  {
		      if (cond)		if (cond)	  if (cond)
		      {			{		  {
			  a = b;	    a = b;	      a = b;
		      }			}		  }
		  }		      }			  }
<
							*cino-L*
	LN    Controls placement of jump labels. If N is negative, the label
	      will be placed at column 1. If N is non-negative, the indent of
	      the label will be the prevailing indent minus N.  (default -1).

		cino=               cino=L2             cino=Ls >
		  func()              func()              func()
		  {                   {                   {
		      {                   {                   {
		          stmt;               stmt;               stmt;
		  LABEL:                    LABEL:            LABEL:
		      }                   }                   }
		  }                   }                   }
<
							*cino-:*
	:N    Place case labels N characters from the indent of the switch().
	      (default 'shiftwidth').

		cino=		    cino=:0 >
		  switch (x)	      switch(x)
		  {		      {
		      case 1:	      case 1:
			  a = b;	  a = b;
		      default:	      default:
		  }		      }
<
							*cino-=*
	=N    Place statements occurring after a case label N characters from
	      the indent of the label.  (default 'shiftwidth').

		cino=		    cino==10 >
		   case 11:		case 11:  a = a + 1;
		       a = a + 1;		  b = b + 1;
<
							*cino-l*
	lN    If N != 0 Vim will align with a case label instead of the
	      statement after it in the same line.

		cino=			    cino=l1 >
		    switch (a) {	      switch (a) {
			case 1: {		  case 1: {
				    break;	      break;
				}		  }
<
							*cino-b*
	bN    If N != 0 Vim will align a final "break" with the case label,
	      so that case..break looks like a sort of block.  (default: 0).
	      When using 1, consider adding "0=break" to 'cinkeys'.

		cino=		    cino=b1 >
		  switch (x)	      switch(x)
		  {		      {
		      case 1:		  case 1:
			  a = b;	      a = b;
			  break;	  break;

		      default:		  default:
			  a = 0;	      a = 0;
			  break;	  break;
		  }		      }
<
							*cino-g*
	gN    Place C++ scope declarations N characters from the indent of the
	      block they are in.  (default 'shiftwidth').  A scope declaration
	      can be "public:", "protected:" or "private:".

		cino=		    cino=g0 >
		  {		      {
		      public:	      public:
			  a = b;	  a = b;
		      private:	      private:
		  }		      }
<
							*cino-h*
	hN    Place statements occurring after a C++ scope declaration N
	      characters from the indent of the label.  (default
	      'shiftwidth').

		cino=		    cino=h10 >
		   public:		public:   a = a + 1;
		       a = a + 1;		  b = b + 1;
<
							*cino-N*
	NN    Indent inside C++ namespace N characters extra compared to a
	      normal block.  (default 0).

		cino=			   cino=N-s >
		  namespace {                namespace {
		      void function();       void function();
		  }                          }

		  namespace my               namespace my
		  {                          {
		      void function();       void function();
		  }                          }
<
							*cino-E*
	EN    Indent inside C++ linkage specifications (extern "C" or
	      extern "C++") N characters extra compared to a normal block.
	      (default 0).

		cino=			   cino=E-s >
		  extern "C" {               extern "C" {
		      void function();       void function();
		  }                          }

		  extern "C"                 extern "C"
		  {                          {
		      void function();       void function();
		  }                          }
<
							*cino-p*
	pN    Parameter declarations for K&R-style function declarations will
	      be indented N characters from the margin.  (default
	      'shiftwidth').

		cino=		    cino=p0		cino=p2s >
		  func(a, b)	      func(a, b)	  func(a, b)
		      int a;	      int a;			  int a;
		      char b;	      char b;			  char b;
<
							*cino-t*
	tN    Indent a function return type declaration N characters from the
	      margin.  (default 'shiftwidth').

		cino=		    cino=t0		cino=t7 >
		      int	      int			 int
		  func()	      func()		  func()
<
							*cino-i*
	iN    Indent C++ base class declarations and constructor
	      initializations, if they start in a new line (otherwise they
	      are aligned at the right side of the ':').
	      (default 'shiftwidth').

		cino=			  cino=i0 >
		  class MyClass :	    class MyClass :
		      public BaseClass      public BaseClass
		  {}			    {}
		  MyClass::MyClass() :	    MyClass::MyClass() :
		      BaseClass(3)	    BaseClass(3)
		  {}			    {}
<
							*cino-+*
	+N    Indent a continuation line (a line that spills onto the next)
              inside a function N additional characters.  (default
              'shiftwidth').
              Outside of a function, when the previous line ended in a
              backslash, the 2 * N is used.

		cino=			  cino=+10 >
		  a = b + 9 *		    a = b + 9 *
		      c;			      c;
<
							*cino-c*
	cN    Indent comment lines after the comment opener, when there is no
	      other text with which to align, N characters from the comment
	      opener.  (default 3).  See also |format-comments|.

		cino=			  cino=c5 >
		  /*			    /*
		     text.			 text.
		   */			     */
<
							*cino-C*
	CN    When N is non-zero, indent comment lines by the amount specified
	      with the c flag above even if there is other text behind the
	      comment opener.  (default 0).

		cino=c0			  cino=c0,C1 >
		  /********		    /********
		    text.		    text.
		  ********/		    ********/
<	      (Example uses ":set comments& comments-=s1:/* comments^=s0:/*")

							*cino-/*
	/N    Indent comment lines N characters extra.  (default 0).
		cino=			  cino=/4 >
		  a = b;		    a = b;
		  /* comment */			/* comment */
		  c = d;		    c = d;
<
							*cino-(*
	(N    When in unclosed parentheses, indent N characters from the line
	      with the unclosed parentheses.  Add a 'shiftwidth' for every
	      extra unclosed parentheses.  When N is 0 or the unclosed
	      parentheses is the first non-white character in its line, line
	      up with the next non-white character after the unclosed
	      parentheses.  (default 'shiftwidth' * 2).

		cino=			  cino=(0 >
		  if (c1 && (c2 ||	    if (c1 && (c2 ||
			      c3))		       c3))
		      foo;			foo;
		  if (c1 &&		    if (c1 &&
			  (c2 || c3))		(c2 || c3))
		     {			       {
<
							*cino-u*
	uN    Same as (N, but for one nesting level deeper.
	      (default 'shiftwidth').

		cino=			  cino=u2 >
		  if (c123456789	    if (c123456789
			  && (c22345		    && (c22345
			      || c3))		      || c3))
<
							*cino-U*
	UN    When N is non-zero, do not ignore the indenting specified by
	      ( or u in case that the unclosed parentheses is the first
	      non-white character in its line.  (default 0).

		cino= or cino=(s	  cino=(s,U1 >
		  c = c1 &&		    c = c1 &&
		      (				(
		       c2 ||			    c2 ||
		       c3			    c3
		      ) && c4;			) && c4;
<
							*cino-w*
	wN    When in unclosed parentheses and N is non-zero and either
	      using "(0" or "u0", respectively, or using "U0" and the unclosed
	      parentheses is the first non-white character in its line, line
	      up with the character immediately after the unclosed parentheses
	      rather than the first non-white character.  (default 0).

		cino=(0			  cino=(0,w1 >
		  if (   c1		    if (   c1
			 && (   c2		&& (   c2
				|| c3))		    || c3))
		      foo;			foo;
<
							*cino-W*
	WN    When in unclosed parentheses and N is non-zero and either
	      using "(0" or "u0", respectively and the unclosed parentheses is
	      the last non-white character in its line and it is not the
	      closing parentheses, indent the following line N characters
	      relative to the outer context (i.e. start of the line or the
	      next unclosed parentheses).  (default: 0).

		cino=(0			   cino=(0,W4 >
		  a_long_line(		    a_long_line(
			      argument,		argument,
			      argument);	argument);
		  a_short_line(argument,    a_short_line(argument,
			       argument);		 argument);
<
							*cino-k*
	kN    When in unclosed parentheses which follow "if", "for" or
	      "while" and N is non-zero, overrides the behaviour defined by
	      "(N": causes the indent to be N characters relative to the outer
	      context (i.e. the line where "if", "for" or "while" is).  Has
	      no effect on deeper levels of nesting.  Affects flags like "wN"
	      only for the "if", "for" and "while" conditions.  If 0, defaults
	      to behaviour defined by the "(N" flag.  (default: 0).

		cino=(0			   cino=(0,ks >
		  if (condition1	    if (condition1
		      && condition2)		    && condition2)
		      action();			action();
		  function(argument1	    function(argument1
			   && argument2);	     && argument2);
<
							*cino-m*
	mN    When N is non-zero, line up a line starting with a closing
	      parentheses with the first character of the line with the
	      matching opening parentheses.  (default 0).

		cino=(s			  cino=(s,m1 >
		  c = c1 && (		    c = c1 && (
		      c2 ||			c2 ||
		      c3			c3
		      ) && c4;		    ) && c4;
		  if (			    if (
		      c1 && c2			c1 && c2
		     )			    )
		      foo;			foo;
<
							*cino-M*
	MN    When N is non-zero, line up a line starting with a closing
	      parentheses with the first character of the previous line.
	      (default 0).

		cino=			  cino=M1 >
		  if (cond1 &&		    if (cond1 &&
			 cond2			   cond2
		     )				   )
<
				*java-cinoptions* *java-indenting* *cino-j*
	jN    Indent Java anonymous classes correctly.  Also works well for
	      Javascript.  The value 'N' is currently unused but must be
	      non-zero (e.g. 'j1').  'j1' will indent for example the
	      following code snippet correctly: >

		object.add(new ChangeListener() {
		    public void stateChanged(ChangeEvent e) {
			do_something();
		    }
		});
<
			*javascript-cinoptions* *javascript-indenting* *cino-J*
	JN    Indent JavaScript object declarations correctly by not confusing
	      them with labels.  The value 'N' is currently unused but must be 
	      non-zero (e.g. 'J1').  If you enable this you probably also want
	      to set |cino-j|. >

		var bar = {
		    foo: {
			that: this,
			some: ok,
		    },
		    "bar":{ 
			a : 2,
			b: "123abc",
			x: 4,
			"y": 5
		    }
		}
<
								*cino-)*
	)N    Vim searches for unclosed parentheses at most N lines away.
	      This limits the time needed to search for parentheses.  (default
	      20 lines).

								*cino-star*
	*N    Vim searches for unclosed comments at most N lines away.  This
	      limits the time needed to search for the start of a comment.
	      If your /* */ comments stop indenting after N lines this is the
	      value you will want to change.
	      (default 70 lines).

								*cino-#*
	#N    When N is non-zero recognize shell/Perl comments starting with
	      '#', do not recognize preprocessor lines; allow right-shifting
	      lines that start with "#".
	      When N is zero (default): don't recognize '#' comments, do
	      recognize preprocessor lines; right-shifting lines that start
	      with "#" does not work.


The defaults, spelled out in full, are:
	cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,E0,ps,ts,is,+s,
			c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0

Vim puts a line in column 1 if:
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'.
- It starts with a label (a keyword followed by ':', other than "case" and
  "default") and 'cinoptions' does not contain an 'L' entry with a positive
  value.
- Any combination of indentations causes the line to have less than 0
  indentation.

==============================================================================
2. Indenting by expression				*indent-expression*

The basics for using flexible indenting are explained in section |30.3| of the
user manual.

If you want to write your own indent file, it must set the 'indentexpr'
option.  Setting the 'indentkeys' option is often useful.  See the
$VIMRUNTIME/indent directory for examples.


REMARKS ABOUT SPECIFIC INDENT FILES ~


CLOJURE					*ft-clojure-indent* *clojure-indent*

Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.

If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.

							*g:clojure_maxlines*

Set maximum scan distance of searchpairpos(). Larger values trade performance
for correctness when dealing with very long forms. A value of 0 will scan
without limits.
>
	" Default
	let g:clojure_maxlines = 100
<
						*g:clojure_fuzzy_indent*
					*g:clojure_fuzzy_indent_patterns*
					*g:clojure_fuzzy_indent_blacklist*

The 'lispwords' option is a list of comma-separated words that mark special
forms whose subforms must be indented with two spaces.

For example:
>
	(defn bad []
	      "Incorrect indentation")

	(defn good []
	  "Correct indentation")
<
If you would like to specify 'lispwords' with a |pattern| instead, you can use
the fuzzy indent feature:
>
	" Default
	let g:clojure_fuzzy_indent = 1
	let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
	let g:clojure_fuzzy_indent_blacklist =
		\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']

	" Legacy comma-delimited string version; the list format above is
	" recommended. Note that patterns are implicitly anchored with ^ and $
	let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
<
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|Lists| of patterns that will be matched against the unquoted, unqualified
symbol at the head of a list. This means that a pattern like "^foo" will match
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".

Each candidate word is tested for special treatment in this order:

	1. Return true if word is literally in 'lispwords'
	2. Return false if word matches a pattern in
	   |g:clojure_fuzzy_indent_blacklist|
	3. Return true if word matches a pattern in
	   |g:clojure_fuzzy_indent_patterns|
	4. Return false and indent normally otherwise

					*g:clojure_special_indent_words*

Some forms in Clojure are indented so that every subform is indented only two
spaces, regardless of 'lispwords'. If you have a custom construct that should
be indented in this idiosyncratic fashion, you can add your symbols to the
default list below.
>
	" Default
	let g:clojure_special_indent_words =
	   \ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
<
					*g:clojure_align_multiline_strings*

Align subsequent lines in multiline strings to the column after the opening
quote, instead of the same column.

For example:
>
	(def default
	  "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
	  eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
	  enim ad minim veniam, quis nostrud exercitation ullamco laboris
	  nisi ut aliquip ex ea commodo consequat.")

	(def aligned
	  "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
	   eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
	   enim ad minim veniam, quis nostrud exercitation ullamco laboris
	   nisi ut aliquip ex ea commodo consequat.")
<
This option is off by default.
>
	" Default
	let g:clojure_align_multiline_strings = 0
<
						*g:clojure_align_subforms*

By default, parenthesized compound forms that look like function calls and
whose head subform is on its own line have subsequent subforms indented by
two spaces relative to the opening paren:
>
	(foo
	  bar
	  baz)
<
Setting this option changes this behavior so that all subforms are aligned to
the same column, emulating the default behavior of clojure-mode.el:
>
	(foo
	 bar
	 baz)
<
This option is off by default.
>
	" Default
	let g:clojure_align_subforms = 0
<

FORTRAN							*ft-fortran-indent*

Block if, select case, where, and forall constructs are indented.  So are
type, interface, associate, block, and enum constructs.  The indenting of
subroutines, functions, modules, and program blocks is optional.  Comments,
labelled statements and continuation lines are indented if the Fortran is in
free source form, whereas they are not indented if the Fortran is in fixed
source form because of the left margin requirements.  Hence manual indent
corrections will be necessary for labelled statements and continuation lines
when fixed source form is being used.  For further discussion of the method
used for the detection of source format see |ft-fortran-syntax|.

Do loops ~
All do loops are left unindented by default.  Do loops can be unstructured in
Fortran with (possibly multiple) loops ending on a labelled executable
statement of almost arbitrary type.  Correct indentation requires
compiler-quality parsing.  Old code with do loops ending on labelled statements
of arbitrary type can be indented with elaborate programs such as Tidy
(http://www.unb.ca/chem/ajit/f_tidy.htm).  Structured do/continue loops are
also left unindented because continue statements are also used for purposes
other than ending a do loop.  Programs such as Tidy can convert structured
do/continue loops to the do/enddo form.  Do loops of the do/enddo variety can
be indented.  If you use only structured loops of the do/enddo form, you should
declare this by setting the fortran_do_enddo variable in your .vimrc as
follows >

   let fortran_do_enddo=1

in which case do loops will be indented.  If all your loops are of do/enddo
type only in, say, .f90 files, then you should set a buffer flag with an
autocommand such as >

  au! BufRead,BufNewFile *.f90 let b:fortran_do_enddo=1

to get do loops indented in .f90 files and left alone in Fortran files with
other extensions such as .for.

Program units ~
The indenting of program units (subroutines, functions, modules, and program
blocks) is enabled by default but can be suppressed if a lighter, screen-width
preserving indent style is desired.  To suppress the indenting of program
units for all fortran files set the global fortran_indent_less variable in
your .vimrc as follows >

  let fortran_indent_less=1

A finer level of suppression can be achieved by setting the corresponding
buffer-local variable as follows >

  let b:fortran_indent_less=1


HTML				*ft-html-indent* *html-indent* *html-indenting*

This is about variables you can set in your vimrc to customize HTML indenting.

You can set the indent for the first line after <script> and <style>
"blocktags" (default "zero"): >

      :let g:html_indent_script1 = "inc"
      :let g:html_indent_style1 = "inc"
<
      VALUE	MEANING ~
      "zero"	zero indent
      "auto"	auto indent (same indent as the blocktag)
      "inc"	auto indent + one indent step

Many tags increase the indent for what follows per default (see "Add Indent
Tags" in the script).  You can add further tags with: >

      :let g:html_indent_inctags = "html,body,head,tbody"

You can also remove such tags with: >

      :let g:html_indent_autotags = "th,td,tr,tfoot,thead"

Default value is empty for both variables.  Note: the initial "inctags" are
only defined once per Vim session.

User variables are only read when the script is sourced.  To enable your
changes during a session, without reloading the HTML file, you can manually
do: >

      :call HtmlIndent_CheckUserSettings()

Detail:
  Calculation of indent inside "blocktags" with "alien" content:
      BLOCKTAG   INDENT EXPR	    WHEN APPLICABLE ~
      <script> : {customizable}	    if first line of block
	       : cindent(v:lnum)    if attributes empty or contain "java"
	       : -1		    else (vbscript, tcl, ...)
      <style>  : {customizable}	    if first line of block
	       : GetCSSIndent()	    else
      <!-- --> : -1


PHP				*ft-php-indent* *php-indent* *php-indenting*

NOTE:	PHP files will be indented correctly only if PHP |syntax| is active.

If you are editing a file in Unix 'fileformat' and '\r' characters are present
before new lines, indentation won't proceed correctly ; you have to remove
those useless characters first with a command like: >

    :%s /\r$//g

Or, you can simply |:let| the variable PHP_removeCRwhenUnix to 1 and the
script will silently remove them when Vim loads a PHP file (at each |BufRead|).

OPTIONS: ~

PHP indenting can be altered in several ways by modifying the values of some
global variables:

					*php-comment* *PHP_autoformatcomment*
To not enable auto-formatting of comments by default (if you want to use your
own 'formatoptions'): >
    :let g:PHP_autoformatcomment = 0

Else, 't' will be removed from the 'formatoptions' string and "qrowcb" will be
added, see |fo-table| for more information.
-------------

							*PHP_outdentSLComments*
To add extra indentation to single-line comments: >
    :let g:PHP_outdentSLComments = N

With N being the number of 'shiftwidth' to add.

Only single-line comments will be affected such as: >
    # Comment
    // Comment
    /* Comment */
-------------

							*PHP_default_indenting*
To add extra indentation to every PHP lines with N being the number of
'shiftwidth' to add: >
    :let g:PHP_default_indenting = N

For example, with N = 1, this will give:
>
    <?php
	if (!isset($History_lst_sel))
	    if (!isset($History_lst_sel))
		if (!isset($History_lst_sel)) {
		    $History_lst_sel=0;
		} else
		    $foo="bar";

	$command_hist = TRUE;
    ?>
(Notice the extra indentation between the PHP container markers and the code)
-------------

							*PHP_outdentphpescape*
To indent PHP escape tags as the surrounding non-PHP code (only affects the
PHP escape tags): >
:let g:PHP_outdentphpescape = 0
-------------

							*PHP_removeCRwhenUnix*
To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
    :let g:PHP_removeCRwhenUnix = 1
-------------

							*PHP_BracesAtCodeLevel*
To indent braces at the same level than the code they contain: >
    :let g:PHP_BracesAtCodeLevel = 1
    
This will give the following result: >
    if ($foo)
	{
	foo();
	}
Instead of: >
    if ($foo)
    {
	foo();
    }

NOTE:	Indenting will be a bit slower if this option is used because some
	optimizations won't be available.
-------------

							*PHP_vintage_case_default_indent*
To indent 'case:' and 'default:' statements in switch() blocks: >
    :let g:PHP_vintage_case_default_indent = 1

In PHP braces are not required inside 'case/default' blocks therefore 'case:'
and 'default:' are indented at the same level than the 'switch()' to avoid
meaningless indentation. You can use the above option to return to the
traditional way.


PYTHON							*ft-python-indent*

The amount of indent can be set for the following situations.  The examples
given are the defaults.  Note that the variables are set to an expression, so
that you can change the value of 'shiftwidth' later.

Indent after an open paren: >
	let g:pyindent_open_paren = '&sw * 2'
Indent after a nested paren: >
	let g:pyindent_nested_paren = '&sw'
Indent for a continuation line: >
	let g:pyindent_continue = '&sw * 2'


R								*ft-r-indent*

Function arguments are aligned if they span for multiple lines. If you prefer
do not have the arguments of functions aligned, put in your |vimrc|:
>
   let r_indent_align_args = 0
<
All lines beginning with a comment character, #, get the same indentation
level of the normal R code. Users of Emacs/ESS may be used to have lines
beginning with a single # indented in the 40th column, ## indented as R code,
and ### not indented. If you prefer that lines beginning with comment
characters are aligned as they are by Emacs/ESS, put in your |vimrc|:
>
   let r_indent_ess_comments = 1
<
If you prefer that lines beginning with a single # are aligned at a column
different from the 40th one, you should set a new value to the variable
r_indent_comment_column, as in the example below:
>
   let r_indent_comment_column = 30
<
Any code after a line that ends with "<-" is indented. Emacs/ESS does not
indent the code if it is a top level function. If you prefer that the
Vim-R-plugin behaves like Emacs/ESS in this regard, put in your |vimrc|:
>
   let r_indent_ess_compatible = 1
<
Below is an example of indentation with and without this option enabled:
>
   ### r_indent_ess_compatible = 1           ### r_indent_ess_compatible = 0
   foo <-                                    foo <-
       function(x)                               function(x)
   {                                             {
       paste(x)                                      paste(x)
   }                                             }
<

SHELL							*ft-sh-indent*

The amount of indent applied under various circumstances in a shell file can
be configured by setting the following keys in the |Dictionary|
b:sh_indent_defaults to a specific amount or to a |Funcref| that references a
function that will return the amount desired:

b:sh_indent_options['default']	Default amount of indent.

b:sh_indent_options['continuation-line']
				Amount of indent to add to a continued line.

b:sh_indent_options['case-labels']
				Amount of indent to add for case labels.
				(not actually implemented)

b:sh_indent_options['case-statements']
				Amount of indent to add for case statements.

b:sh_indent_options['case-breaks']
				Amount of indent to add (or more likely
				remove) for case breaks.

VERILOG							*ft-verilog-indent*

General block statements such as if, for, case, always, initial, function,
specify and begin, etc., are indented.  The module block statements (first
level blocks) are not indented by default.  you can turn on the indent with
setting a variable in the .vimrc as follows: >

  let b:verilog_indent_modules = 1

then the module blocks will be indented.  To stop this, remove the variable: >

  :unlet b:verilog_indent_modules

To set the variable only for Verilog file.  The following statements can be
used: >

  au BufReadPost * if exists("b:current_syntax")
  au BufReadPost *   if b:current_syntax == "verilog"
  au BufReadPost *     let b:verilog_indent_modules = 1
  au BufReadPost *   endif
  au BufReadPost * endif

Furthermore, setting the variable b:verilog_indent_width to change the
indenting width (default is 'shiftwidth'): >

  let b:verilog_indent_width = 4
  let b:verilog_indent_width = &sw * 2

In addition, you can turn the verbose mode for debug issue: >

  let b:verilog_indent_verbose = 1

Make sure to do ":set cmdheight=2" first to allow the display of the message.


VHDL							*ft-vhdl-indent*

Alignment of generic/port mapping statements are performed by default. This
causes the following alignment example: >

  ENTITY sync IS
  PORT (
         clk        : IN  STD_LOGIC;
         reset_n    : IN  STD_LOGIC;
         data_input : IN  STD_LOGIC;
         data_out   : OUT STD_LOGIC
       );
  END ENTITY sync;

To turn this off, add >

  let g:vhdl_indent_genportmap = 0

to the .vimrc file, which causes the previous alignment example to change: >

  ENTITY sync IS
  PORT (
    clk        : IN  STD_LOGIC;
    reset_n    : IN  STD_LOGIC;
    data_input : IN  STD_LOGIC;
    data_out   : OUT STD_LOGIC
  );
  END ENTITY sync;

----------------------------------------

Alignment of right-hand side assignment "<=" statements are performed by
default. This causes the following alignment example: >

  sig_out <= (bus_a(1) AND
             (sig_b OR sig_c)) OR
             (bus_a(0) AND sig_d);

To turn this off, add >

  let g:vhdl_indent_rhsassign = 0

to the .vimrc file, which causes the previous alignment example to change: >

  sig_out <= (bus_a(1) AND
    (sig_b OR sig_c)) OR
    (bus_a(0) AND sig_d);

----------------------------------------

Full-line comments (lines that begin with "--") are indented to be aligned with
the very previous line's comment, PROVIDED that a whitespace follows after
"--".

For example: >

  sig_a <= sig_b; -- start of a comment
                  -- continuation of the comment
                  -- more of the same comment

While in Insert mode, after typing "-- " (note the space " "), hitting CTRL-F
will align the current "-- " with the previous line's "--".

If the very previous line does not contain "--", THEN the full-line comment
will be aligned with the start of the next non-blank line that is NOT a
full-line comment.

Indenting the following code: >

  sig_c <= sig_d; -- comment 0
         -- comment 1
               -- comment 2
    --debug_code:
    --PROCESS(debug_in)
         --BEGIN
            --  FOR i IN 15 DOWNTO 0 LOOP
             --    debug_out(8*i+7 DOWNTO 8*i) <= debug_in(15-i);
            --  END LOOP;
     --END PROCESS debug_code;

      -- comment 3
  sig_e <= sig_f; -- comment 4
           -- comment 5

results in: >

  sig_c <= sig_d; -- comment 0
                  -- comment 1
                  -- comment 2
  --debug_code:
  --PROCESS(debug_in)
  --BEGIN
  --  FOR i IN 15 DOWNTO 0 LOOP
  --    debug_out(8*i+7 DOWNTO 8*i) <= debug_in(15-i);
  --  END LOOP;
  --END PROCESS debug_code;

  -- comment 3
  sig_e <= sig_f; -- comment 4
                  -- comment 5

Notice that "--debug_code:" does not align with "-- comment 2"
because there is no whitespace that follows after "--" in "--debug_code:".

Given the dynamic nature of indenting comments, indenting should be done TWICE.
On the first pass, code will be indented. On the second pass, full-line
comments will be indented according to the correctly indented code.


VIM							*ft-vim-indent*

For indenting Vim scripts there is one variable that specifies the amount of
indent for a continuation line, a line that starts with a backslash: >

	:let g:vim_indent_cont = &sw * 3

Three times shiftwidth is the default value.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�
�@�@vim80/doc/undo.txtnu�[���*undo.txt*      For Vim version 8.0.  Last change: 2014 May 24


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Undo and redo						*undo-redo*

The basics are explained in section |02.5| of the user manual.

1. Undo and redo commands	|undo-commands|
2. Two ways of undo		|undo-two-ways|
3. Undo blocks			|undo-blocks|
4. Undo branches		|undo-branches|
5. Undo persistence		|undo-persistence|
6. Remarks about undo		|undo-remarks|

==============================================================================
1. Undo and redo commands				*undo-commands*

<Undo>		or					*undo* *<Undo>* *u*
u			Undo [count] changes.  {Vi: only one level}

							*:u* *:un* *:undo*
:u[ndo]			Undo one change.  {Vi: only one level}
								*E830*
:u[ndo] {N}		Jump to after change number {N}.  See |undo-branches|
			for the meaning of {N}.  {not in Vi}

							*CTRL-R*
CTRL-R			Redo [count] changes which were undone.  {Vi: redraw
			screen}

							*:red* *:redo* *redo*
:red[o]			Redo one change which was undone.  {Vi: no redo}

							*U*
U			Undo all latest changes on one line, the line where
			the latest change was made. |U| itself also counts as
			a change, and thus |U| undoes a previous |U|.
			{Vi: while not moved off of the last modified line}

The last changes are remembered.  You can use the undo and redo commands above
to revert the text to how it was before each change.  You can also apply the
changes again, getting back the text before the undo.

The "U" command is treated by undo/redo just like any other command.  Thus a
"u" command undoes a "U" command and a 'CTRL-R' command redoes it again.  When
mixing "U", "u" and 'CTRL-R' you will notice that the "U" command will
restore the situation of a line to before the previous "U" command.  This may
be confusing.  Try it out to get used to it.
The "U" command will always mark the buffer as changed.  When "U" changes the
buffer back to how it was without changes, it is still considered changed.
Use "u" to undo changes until the buffer becomes unchanged.

==============================================================================
2. Two ways of undo					*undo-two-ways*

How undo and redo commands work depends on the 'u' flag in 'cpoptions'.
There is the Vim way ('u' excluded) and the Vi-compatible way ('u' included).
In the Vim way, "uu" undoes two changes.  In the Vi-compatible way, "uu" does
nothing (undoes an undo).

'u' excluded, the Vim way:
You can go back in time with the undo command.  You can then go forward again
with the redo command.  If you make a new change after the undo command,
the redo will not be possible anymore.

'u' included, the Vi-compatible way:
The undo command undoes the previous change, and also the previous undo command.
The redo command repeats the previous undo command.  It does NOT repeat a
change command, use "." for that.

Examples	Vim way			Vi-compatible way	~
"uu"		two times undo		no-op
"u CTRL-R"	no-op			two times undo

Rationale:  Nvi uses the "." command instead of CTRL-R.  Unfortunately, this
	    is not Vi compatible.  For example "dwdwu." in Vi deletes two
	    words, in Nvi it does nothing.

==============================================================================
3. Undo blocks						*undo-blocks*

One undo command normally undoes a typed command, no matter how many changes
that command makes.  This sequence of undo-able changes forms an undo block.
Thus if the typed key(s) call a function, all the commands in the function are
undone together.

If you want to write a function or script that doesn't create a new undoable
change but joins in with the previous change use this command:

						*:undoj* *:undojoin* *E790*
:undoj[oin]		Join further changes with the previous undo block.
			Warning: Use with care, it may prevent the user from
			properly undoing changes.  Don't use this after undo
			or redo.
			{not in Vi}

This is most useful when you need to prompt the user halfway through a change.
For example in a function that calls |getchar()|.  Do make sure that there was
a related change before this that you must join with.

This doesn't work by itself, because the next key press will start a new
change again.  But you can do something like this: >

	:undojoin | delete

After this an "u" command will undo the delete command and the previous
change.

To do the opposite, break a change into two undo blocks, in Insert mode use
CTRL-G u.  This is useful if you want an insert command to be undoable in
parts.  E.g., for each sentence.  |i_CTRL-G_u|
Setting the value of 'undolevels' also breaks undo.  Even when the new value
is equal to the old value.

==============================================================================
4. Undo branches				*undo-branches* *undo-tree*

Above we only discussed one line of undo/redo.  But it is also possible to
branch off.  This happens when you undo a few changes and then make a new
change.  The undone changes become a branch.  You can go to that branch with
the following commands.

This is explained in the user manual: |usr_32.txt|.

							*:undol* *:undolist*
:undol[ist]		List the leafs in the tree of changes.  Example:
			   number changes  when               saved ~
			       88      88  2010/01/04 14:25:53
			      108     107  08/07 12:47:51
			      136      46  13:33:01             7
			      166     164  3 seconds ago

			The "number" column is the change number.  This number
			continuously increases and can be used to identify a
			specific undo-able change, see |:undo|.
			The "changes" column is the number of changes to this
			leaf from the root of the tree.
			The "when" column is the date and time when this
			change was made.  The four possible formats are:
			    N seconds ago
			    HH:MM:SS             hour, minute, seconds
			    MM/DD HH:MM:SS       idem, with month and day
			    YYYY/MM/DD HH:MM:SS  idem, with year
			The "saved" column specifies, if this change was
			written to disk and which file write it was. This can
			be used with the |:later| and |:earlier| commands.
			For more details use the |undotree()| function.

							*g-*
g-			Go to older text state.  With a count repeat that many
			times.  {not in Vi}
							*:ea* *:earlier*
:earlier {count}	Go to older text state {count} times.
:earlier {N}s		Go to older text state about {N} seconds before.
:earlier {N}m		Go to older text state about {N} minutes before.
:earlier {N}h		Go to older text state about {N} hours before.
:earlier {N}d		Go to older text state about {N} days before.

:earlier {N}f		Go to older text state {N} file writes before.
			When changes were made since the last write
			":earlier 1f" will revert the text to the state when
			it was written.  Otherwise it will go to the write
			before that.
			When at the state of the first file write, or when
			the file was not written, ":earlier 1f" will go to
			before the first change.

							*g+*
g+			Go to newer text state.  With a count repeat that many
			times.  {not in Vi}
							*:lat* *:later*
:later {count}		Go to newer text state {count} times.
:later {N}s		Go to newer text state about {N} seconds later.
:later {N}m		Go to newer text state about {N} minutes later.
:later {N}h		Go to newer text state about {N} hours later.
:later {N}d		Go to newer text state about {N} days later.

:later {N}f		Go to newer text state {N} file writes later.
			When at the state of the last file write, ":later 1f"
			will go to the newest text state.


Note that text states will become unreachable when undo information is cleared
for 'undolevels'.

Don't be surprised when moving through time shows multiple changes to take
place at a time.  This happens when moving through the undo tree and then
making a new change.

EXAMPLE

Start with this text:
	one two three ~

Delete the first word by pressing "x" three times:
	ne two three ~
	e two three ~
	 two three ~

Now undo that by pressing "u" three times:
	e two three ~
	ne two three ~
	one two three ~

Delete the second word by pressing "x" three times:
	one wo three ~
	one o three ~
	one  three ~

Now undo that by using "g-" three times:
	one o three ~
	one wo three ~
	 two three ~

You are now back in the first undo branch, after deleting "one".  Repeating
"g-" will now bring you back to the original text:
	e two three ~
	ne two three ~
	one two three ~

Jump to the last change with ":later 1h":
	one  three ~

And back to the start again with ":earlier 1h":
	one two three ~


Note that using "u" and CTRL-R will not get you to all possible text states
while repeating "g-" and "g+" does.

==============================================================================
5. Undo persistence		*undo-persistence* *persistent-undo*

When unloading a buffer Vim normally destroys the tree of undos created for
that buffer.  By setting the 'undofile' option, Vim will automatically save
your undo history when you write a file and restore undo history when you edit
the file again.

The 'undofile' option is checked after writing a file, before the BufWritePost
autocommands.  If you want to control what files to write undo information
for, you can use a BufWritePre autocommand: >
	au BufWritePre /tmp/* setlocal noundofile

Vim saves undo trees in a separate undo file, one for each edited file, using
a simple scheme that maps filesystem paths directly to undo files. Vim will
detect if an undo file is no longer synchronized with the file it was written
for (with a hash of the file contents) and ignore it when the file was changed
after the undo file was written, to prevent corruption.  An undo file is also
ignored if its owner differs from the owner of the edited file, except when
the owner of the undo file is the current user.  Set 'verbose' to get a
message about that when opening a file.

Undo files are normally saved in the same directory as the file.  This can be
changed with the 'undodir' option.

When the file is encrypted, the text in the undo file is also crypted.  The
same key and method is used. |encryption|

You can also save and restore undo histories by using ":wundo" and ":rundo"
respectively:
							*:wundo* *:rundo*
:wundo[!] {file}
		Write undo history to {file}.
		When {file} exists and it does not look like an undo file
		(the magic number at the start of the file is wrong), then
		this fails, unless the ! was added.
		If it exists and does look like an undo file it is
		overwritten. If there is no undo-history, nothing will be 
		written.
		Implementation detail: Overwriting happens by first deleting
		the existing file and then creating a new file with the same
		name. So it is not possible to overwrite an existing undofile
		in a write-protected directory.
		{not in Vi}

:rundo {file}	Read undo history from {file}.
		{not in Vi}

You can use these in autocommands to explicitly specify the name of the
history file.  E.g.: >

	au BufReadPost * call ReadUndo()
	au BufWritePost * call WriteUndo()
	func ReadUndo()
	  if filereadable(expand('%:h'). '/UNDO/' . expand('%:t'))
	    rundo %:h/UNDO/%:t
	  endif
	endfunc
	func WriteUndo()
	  let dirname = expand('%:h') . '/UNDO'
	  if !isdirectory(dirname)
	    call mkdir(dirname)
	  endif
	  wundo %:h/UNDO/%:t
	endfunc

You should keep 'undofile' off, otherwise you end up with two undo files for
every write.

You can use the |undofile()| function to find out the file name that Vim would
use.

Note that while reading/writing files and 'undofile' is set most errors will
be silent, unless 'verbose' is set.  With :wundo and :rundo you will get more
error messages, e.g., when the file cannot be read or written.

NOTE: undo files are never deleted by Vim.  You need to delete them yourself.

Reading an existing undo file may fail for several reasons:
*E822*	It cannot be opened, because the file permissions don't allow it.
*E823*	The magic number at the start of the file doesn't match.  This usually
	means it is not an undo file.
*E824*	The version number of the undo file indicates that it's written by a
	newer version of Vim.  You need that newer version to open it.  Don't
	write the buffer if you want to keep the undo info in the file.
"File contents changed, cannot use undo info"
	The file text differs from when the undo file was written.  This means
	the undo file cannot be used, it would corrupt the text.  This also
	happens when 'encoding' differs from when the undo file was written.
*E825*  The undo file does not contain valid contents and cannot be used.
*E826*  The undo file is encrypted but decryption failed.
*E827*  The undo file is encrypted but this version of Vim does not support
	encryption.  Open the file with another Vim.
*E832*  The undo file is encrypted but 'key' is not set, the text file is not
	encrypted.  This would happen if the text file was written by Vim
	encrypted at first, and later overwritten by not encrypted text.
	You probably want to delete this undo file.
"Not reading undo file, owner differs"
	The undo file is owned by someone else than the owner of the text
	file.  For safety the undo file is not used.

Writing an undo file may fail for these reasons:
*E828*	The file to be written cannot be created.  Perhaps you do not have
	write permissions in the directory.
"Cannot write undo file in any directory in 'undodir'"
	None of the directories in 'undodir' can be used.
"Will not overwrite with undo file, cannot read"
	A file exists with the name of the undo file to be written, but it
	cannot be read.  You may want to delete this file or rename it.
"Will not overwrite, this is not an undo file"
	A file exists with the name of the undo file to be written, but it
	does not start with the right magic number.  You may want to delete
	this file or rename it.
"Skipping undo file write, nothing to undo"
	There is no undo information to be written, nothing has been changed
	or 'undolevels' is negative.
*E829*	An error occurred while writing the undo file.  You may want to try
	again.

==============================================================================
6. Remarks about undo					*undo-remarks*

The number of changes that are remembered is set with the 'undolevels' option.
If it is zero, the Vi-compatible way is always used.  If it is negative no
undo is possible.  Use this if you are running out of memory.

							*clear-undo*
When you set 'undolevels' to -1 the undo information is not immediately
cleared, this happens at the next change.  To force clearing the undo
information you can use these commands: >
	:let old_undolevels = &undolevels
	:set undolevels=-1
	:exe "normal a \<BS>\<Esc>"
	:let &undolevels = old_undolevels
	:unlet old_undolevels

Marks for the buffer ('a to 'z) are also saved and restored, together with the
text.  {Vi does this a little bit different}

When all changes have been undone, the buffer is not considered to be changed.
It is then possible to exit Vim with ":q" instead of ":q!" {not in Vi}.  Note
that this is relative to the last write of the file.  Typing "u" after ":w"
actually changes the buffer, compared to what was written, so the buffer is
considered changed then.

When manual |folding| is being used, the folds are not saved and restored.
Only changes completely within a fold will keep the fold as it was, because
the first and last line of the fold don't change.

The numbered registers can also be used for undoing deletes.  Each time you
delete text, it is put into register "1.  The contents of register "1 are
shifted to "2, etc.  The contents of register "9 are lost.  You can now get
back the most recent deleted text with the put command: '"1P'.  (also, if the
deleted text was the result of the last delete or copy operation, 'P' or 'p'
also works as this puts the contents of the unnamed register).  You can get
back the text of three deletes ago with '"3P'.

						*redo-register*
If you want to get back more than one part of deleted text, you can use a
special feature of the repeat command ".".  It will increase the number of the
register used.  So if you first do ""1P", the following "." will result in a
'"2P'.  Repeating this will result in all numbered registers being inserted.

Example:	If you deleted text with 'dd....' it can be restored with
		'"1P....'.

If you don't know in which register the deleted text is, you can use the
:display command.  An alternative is to try the first register with '"1P', and
if it is not what you want do 'u.'.  This will remove the contents of the
first put, and repeat the put command for the second register.  Repeat the
'u.' until you got what you want.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�V��Q�Qvim80/doc/usr_24.txtnu�[���*usr_24.txt*	For Vim version 8.0.  Last change: 2018 Mar 18

		     VIM USER MANUAL - by Bram Moolenaar

			     Inserting quickly


When entering text, Vim offers various ways to reduce the number of keystrokes
and avoid typing mistakes.  Use Insert mode completion to repeat previously
typed words.  Abbreviate long words to short ones.  Type characters that
aren't on your keyboard.

|24.1|	Making corrections
|24.2|	Showing matches
|24.3|	Completion
|24.4|	Repeating an insert
|24.5|	Copying from another line
|24.6|	Inserting a register
|24.7|	Abbreviations
|24.8|	Entering special characters
|24.9|	Digraphs
|24.10|	Normal mode commands

     Next chapter: |usr_25.txt|  Editing formatted text
 Previous chapter: |usr_23.txt|  Editing other files
Table of contents: |usr_toc.txt|

==============================================================================
*24.1*	Making corrections

The <BS> key was already mentioned.  It deletes the character just before the
cursor.  The <Del> key does the same for the character under (after) the
cursor.
   When you typed a whole word wrong, use CTRL-W:

	The horse had fallen to the sky ~
				       CTRL-W
	The horse had fallen to the ~

If you really messed up a line and want to start over, use CTRL-U to delete
it.  This keeps the text after the cursor and the indent.  Only the text from
the first non-blank to the cursor is deleted.  With the cursor on the "f" of
"fallen" in the next line pressing CTRL-U does this:

	The horse had fallen to the ~
		      CTRL-U
	fallen to the ~

When you spot a mistake a few words back, you need to move the cursor there to
correct it.  For example, you typed this:

	The horse had follen to the ground ~

You need to change "follen" to "fallen".  With the cursor at the end, you
would type this to correct it: >

					<Esc>4blraA

<	get out of Insert mode		<Esc>
	four words back			     4b
	move on top of the "o"		       l
	replace with "a"			ra
	restart Insert mode			  A

Another way to do this: >

		<C-Left><C-Left><C-Left><C-Left><Right><Del>a<End>

<	four words back		     <C-Left><C-Left><C-Left><C-Left>
	move on top of the "o"			<Right>
	delete the "o"				       <Del>
	insert an "a"					    a
	go to end of the line				     <End>

This uses special keys to move around, while remaining in Insert mode.  This
resembles what you would do in a modeless editor.  It's easier to remember,
but takes more time (you have to move your hand from the letters to the cursor
keys, and the <End> key is hard to press without looking at the keyboard).
   These special keys are most useful when writing a mapping that doesn't
leave Insert mode.  The extra typing doesn't matter then.
   An overview of the keys you can use in Insert mode:

	<C-Home>	to start of the file
	<PageUp>	a whole screenful up
	<Home>		to start of line
	<S-Left>	one word left
	<C-Left>	one word left
	<S-Right>	one word right
	<C-Right>	one word right
	<End>		to end of the line
	<PageDown>	a whole screenful down
	<C-End>		to end of the file

There are a few more, see |ins-special-special|.

==============================================================================
*24.2*	Showing matches

When you type a ) it would be nice to see with which ( it matches.  To make
Vim do that use this command: >

	:set showmatch

When you now type a text like "(example)", as soon as you type the ) Vim will
briefly move the cursor to the matching (, keep it there for half a second,
and move back to where you were typing.
   In case there is no matching (, Vim will beep.  Then you know that you
might have forgotten the ( somewhere, or typed a ) too many.
   The match will also be shown for [] and {} pairs.  You don't have to wait
with typing the next character, as soon as Vim sees it the cursor will move
back and inserting continues as before.
   You can change the time Vim waits with the 'matchtime' option.  For
example, to make Vim wait one and a half second: >

	:set matchtime=15

The time is specified in tenths of a second.

==============================================================================
*24.3*	Completion

Vim can automatically complete words on insertion.  You type the first part of
a word, press CTRL-P, and Vim guesses the rest.
   Suppose, for example, that you are creating a C program and want to type in
the following:

	total = ch_array[0] + ch_array[1] + ch_array[2]; ~

You start by entering the following:

	total = ch_array[0] + ch_ ~

At this point, you tell Vim to complete the word using the command CTRL-P.
Vim searches for a word that starts with what's in front of the cursor.  In
this case, it is "ch_", which matches with the word ch_array.  So typing
CTRL-P gives you the following:

	total = ch_array[0] + ch_array ~

After a little more typing, you get this (ending in a space):

	total = ch_array[0] + ch_array[1] +  ~

If you now type CTRL-P Vim will search again for a word that completes the
word before the cursor.  Since there is nothing in front of the cursor, it
finds the first word backwards, which is "ch_array".  Typing CTRL-P again
gives you the next word that matches, in this case "total".  A third CTRL-P
searches further back.  If there is nothing else, it causes the editor to run
out of words, so it returns to the original text, which is nothing.  A fourth
CTRL-P causes the editor to start over again with "ch_array".

To search forward, use CTRL-N.  Since the search wraps around the end of the
file, CTRL-N and CTRL-P will find the same matches, but in a different
sequence.  Hint: CTRL-N is Next-match and CTRL-P is Previous-match.

The Vim editor goes through a lot of effort to find words to complete.  By
default, it searches the following places:

	1. Current file
	2. Files in other windows
	3. Other loaded files (hidden buffers)
	4. Files which are not loaded (inactive buffers)
	5. Tag files
	6. All files #included by the current file


OPTIONS

You can customize the search order with the 'complete' option.

The 'ignorecase' option is used.  When it is set, case differences are ignored
when searching for matches.

A special option for completion is 'infercase'.  This is useful to find
matches while ignoring case ('ignorecase' must be set) but still using the
case of the word typed so far.  Thus if you type "For" and Vim finds a match
"fortunately", it will result in "Fortunately".


COMPLETING SPECIFIC ITEMS

If you know what you are looking for, you can use these commands to complete
with a certain type of item:

	CTRL-X CTRL-F		file names
	CTRL-X CTRL-L		whole lines
	CTRL-X CTRL-D		macro definitions (also in included files)
	CTRL-X CTRL-I		current and included files
	CTRL-X CTRL-K		words from a dictionary
	CTRL-X CTRL-T		words from a thesaurus
	CTRL-X CTRL-]		tags
	CTRL-X CTRL-V		Vim command line

After each of them CTRL-N can be used to find the next match, CTRL-P to find
the previous match.
   More information for each of these commands here: |ins-completion|.


COMPLETING FILE NAMES

Let's take CTRL-X CTRL-F as an example.  This will find file names.  It scans
the current directory for files and displays each one that matches the word in
front of the cursor.
   Suppose, for example, that you have the following files in the current
directory:

	main.c  sub_count.c  sub_done.c  sub_exit.c

Now enter Insert mode and start typing:

	The exit code is in the file sub ~

At this point, you enter the command CTRL-X CTRL-F.  Vim now completes the
current word "sub" by looking at the files in the current directory.  The
first match is sub_count.c.  This is not the one you want, so you match the
next file by typing CTRL-N.  This match is sub_done.c.  Typing CTRL-N again
takes you to sub_exit.c.  The results:

	The exit code is in the file sub_exit.c ~

If the file name starts with / (Unix) or C:\ (MS-Windows) you can find all
files in the file system.  For example, type "/u" and CTRL-X CTRL-F.  This
will match "/usr" (this is on Unix):

	the file is found in /usr/ ~

If you now press CTRL-N you go back to "/u".  Instead, to accept the "/usr/"
and go one directory level deeper, use CTRL-X CTRL-F again:

	the file is found in /usr/X11R6/ ~

The results depend on what is found in your file system, of course.  The
matches are sorted alphabetically.


COMPLETING IN SOURCE CODE

Source code files are well structured.  That makes it possible to do
completion in an intelligent way.  In Vim this is called Omni completion.  In
some other editors it's called intellisense, but that is a trademark.

The key to Omni completion is CTRL-X CTRL-O.  Obviously the O stands for Omni
here, so that you can remember it easier.  Let's use an example for editing C
source:

	{ ~
	    struct foo *p; ~
	    p-> ~

The cursor is after "p->".  Now type CTRL-X CTRL-O.  Vim will offer you a list
of alternatives, which are the items that "struct foo" contains.  That is
quite different from using CTRL-P, which would complete any word, while only
members of "struct foo" are valid here.

For Omni completion to work you may need to do some setup.  At least make sure
filetype plugins are enabled.  Your vimrc file should contain a line like
this: >
	filetype plugin on
Or: >
	filetype plugin indent on

For C code you need to create a tags file and set the 'tags' option.  That is
explained |ft-c-omni|.  For other filetypes you may need to do something
similar, look below |compl-omni-filetypes|.  It only works for specific
filetypes.  Check the value of the 'omnifunc' option to find out if it would
work.

==============================================================================
*24.4*	Repeating an insert

If you press CTRL-A, the editor inserts the text you typed the last time you
were in Insert mode.
   Assume, for example, that you have a file that begins with the following:

	"file.h" ~
	/* Main program begins */ ~

You edit this file by inserting "#include " at the beginning of the first
line:

	#include "file.h" ~
	/* Main program begins */ ~

You go down to the beginning of the next line using the commands "j^".  You
now start to insert a new "#include" line.  So you type: >

	i CTRL-A

The result is as follows:

	#include "file.h" ~
	#include /* Main program begins */ ~

The "#include " was inserted because CTRL-A inserts the text of the previous
insert.  Now you type  "main.h"<Enter>  to finish the line:


	#include "file.h" ~
	#include "main.h" ~
	/* Main program begins */ ~

The CTRL-@ command does a CTRL-A and then exits Insert mode.  That's a quick
way of doing exactly the same insertion again.

==============================================================================
*24.5*	Copying from another line

The CTRL-Y command inserts the character above the cursor.  This is useful
when you are duplicating a previous line.  For example, you have this line of
C code:

	b_array[i]->s_next = a_array[i]->s_next; ~

Now you need to type the same line, but with "s_prev" instead of "s_next".
Start the new line, and press CTRL-Y 14 times, until you are at the "n" of
"next":

	b_array[i]->s_next = a_array[i]->s_next; ~
	b_array[i]->s_ ~

Now you type "prev":

	b_array[i]->s_next = a_array[i]->s_next; ~
	b_array[i]->s_prev ~

Continue pressing CTRL-Y until the following "next":

	b_array[i]->s_next = a_array[i]->s_next; ~
	b_array[i]->s_prev = a_array[i]->s_ ~

Now type "prev;" to finish it off.

The CTRL-E command acts like CTRL-Y except it inserts the character below the
cursor.

==============================================================================
*24.6*	Inserting a register

The command CTRL-R {register} inserts the contents of the register.  This is
useful to avoid having to type a long word.  For example, you need to type
this:

	r = VeryLongFunction(a) + VeryLongFunction(b) + VeryLongFunction(c) ~

The function name is defined in a different file.  Edit that file and move the
cursor on top of the function name there, and yank it into register v: >

	"vyiw

"v is the register specification, "yiw" is yank-inner-word.  Now edit the file
where the new line is to be inserted, and type the first letters:

	r = ~

Now use CTRL-R v to insert the function name:

	r = VeryLongFunction ~

You continue to type the characters in between the function name, and use
CTRL-R v two times more.
   You could have done the same with completion.  Using a register is useful
when there are many words that start with the same characters.

If the register contains characters such as <BS> or other special characters,
they are interpreted as if they had been typed from the keyboard.  If you do
not want this to happen (you really want the <BS> to be inserted in the text),
use the command CTRL-R CTRL-R {register}.

==============================================================================
*24.7*	Abbreviations

An abbreviation is a short word that takes the place of a long one.  For
example, "ad" stands for "advertisement".  Vim enables you to type an
abbreviation and then will automatically expand it for you.
   To tell Vim to expand "ad" into "advertisement" every time you insert it,
use the following command: >

	:iabbrev ad advertisement

Now, when you type "ad", the whole word "advertisement" will be inserted into
the text.  This is triggered by typing a character that can't be part of a
word, for example a space:

	What Is Entered		What You See
	I saw the a		I saw the a ~
	I saw the ad		I saw the ad ~
	I saw the ad<Space>	I saw the advertisement<Space> ~

The expansion doesn't happen when typing just "ad".  That allows you to type a
word like "add", which will not get expanded.  Only whole words are checked
for abbreviations.


ABBREVIATING SEVERAL WORDS

It is possible to define an abbreviation that results in multiple words.  For
example, to define "JB" as "Jack Benny", use the following command: >

	:iabbrev JB Jack Benny

As a programmer, I use two rather unusual abbreviations: >

	:iabbrev #b /****************************************
	:iabbrev #e <Space>****************************************/

These are used for creating boxed comments.  The comment starts with #b, which
draws the top line.  I then type the comment text and use #e to draw the
bottom line.
   Notice that the #e abbreviation begins with a space.  In other words, the
first two characters are space-star.  Usually Vim ignores spaces between the
abbreviation and the expansion.  To avoid that problem, I spell space as seven
characters: <, S, p, a, c, e, >.

	Note:
	":iabbrev" is a long word to type.  ":iab" works just as well.
	That's abbreviating the abbreviate command!


FIXING TYPING MISTAKES

It's very common to make the same typing mistake every time.  For example,
typing "teh" instead of "the".  You can fix this with an abbreviation: >

	:abbreviate teh the

You can add a whole list of these.  Add one each time you discover a common
mistake.


LISTING ABBREVIATIONS

The ":abbreviate" command lists the abbreviations:

	:abbreviate
	i  #e		  ****************************************/
	i  #b		 /****************************************
	i  JB		 Jack Benny
	i  ad		 advertisement
	!  teh		 the

The "i" in the first column indicates Insert mode.  These abbreviations are
only active in Insert mode.  Other possible characters are:

	c	Command-line mode			:cabbrev
	!	both Insert and Command-line mode	:abbreviate

Since abbreviations are not often useful in Command-line mode, you will mostly
use the ":iabbrev" command.  That avoids, for example, that "ad" gets expanded
when typing a command like: >

	:edit ad


DELETING ABBREVIATIONS

To get rid of an abbreviation, use the ":unabbreviate" command.  Suppose you
have the following abbreviation: >

	:abbreviate @f fresh

You can remove it with this command: >

	:unabbreviate @f

While you type this, you will notice that @f is expanded to "fresh".  Don't
worry about this, Vim understands it anyway (except when you have an
abbreviation for "fresh", but that's very unlikely).
   To remove all the abbreviations: >

	:abclear

":unabbreviate" and ":abclear" also come in the variants for Insert mode
(":iunabbreviate and ":iabclear") and Command-line mode (":cunabbreviate" and
":cabclear").


REMAPPING ABBREVIATIONS

There is one thing to watch out for when defining an abbreviation: The
resulting string should not be mapped.  For example: >

	:abbreviate @a adder
	:imap dd disk-door

When you now type @a, you will get "adisk-doorer".  That's not what you want.
To avoid this, use the ":noreabbrev" command.  It does the same as
":abbreviate", but avoids that the resulting string is used for mappings: >

	:noreabbrev @a adder

Fortunately, it's unlikely that the result of an abbreviation is mapped.

==============================================================================
*24.8*	Entering special characters

The CTRL-V command is used to insert the next character literally.  In other
words, any special meaning the character has, it will be ignored.  For
example: >

	CTRL-V <Esc>

Inserts an escape character.  Thus you don't leave Insert mode.  (Don't type
the space after CTRL-V, it's only to make this easier to read).

	Note:
	On MS-Windows CTRL-V is used to paste text.  Use CTRL-Q instead of
	CTRL-V.  On Unix, on the other hand, CTRL-Q does not work on some
	terminals, because it has a special meaning.

You can also use the command CTRL-V {digits} to insert a character with the
decimal number {digits}.  For example, the character number 127 is the <Del>
character (but not necessarily the <Del> key!).  To insert <Del> type: >

	CTRL-V 127

You can enter characters up to 255 this way.  When you type fewer than two
digits, a non-digit will terminate the command.  To avoid the need of typing a
non-digit, prepend one or two zeros to make three digits.
   All the next commands insert a <Tab> and then a dot:

	CTRL-V 9.
	CTRL-V 09.
	CTRL-V 009.

To enter a character in hexadecimal, use an "x" after the CTRL-V: >

	CTRL-V x7f

This also goes up to character 255 (CTRL-V xff).  You can use "o" to type a
character as an octal number and two more methods allow you to type up to
a 16 bit and a 32 bit number (e.g., for a Unicode character): >

	CTRL-V o123
	CTRL-V u1234
	CTRL-V U12345678

==============================================================================
*24.9*	Digraphs

Some characters are not on the keyboard.  For example, the copyright character
(©).  To type these characters in Vim, you use digraphs, where two characters
represent one.  To enter a ©, for example, you press three keys: >

	CTRL-K Co

To find out what digraphs are available, use the following command: >

	:digraphs

Vim will display the digraph table.  Here are three lines of it:

  AC ~_ 159  NS |  160  !I ¡  161  Ct ¢  162  Pd £  163  Cu ¤  164  Ye ¥  165 ~
  BB ¦  166  SE §  167  ': ¨  168  Co ©  169  -a ª  170  << «  171  NO ¬  172 ~
  -- ­  173  Rg ®  174  'm ¯  175  DG °  176  +- ±  177  2S ²  178  3S ³  179 ~

This shows, for example, that the digraph you get by typing CTRL-K Pd is the
character (£).  This is character number 163 (decimal).
   Pd is short for Pound.  Most digraphs are selected to give you a hint about
the character they will produce.  If you look through the list you will
understand the logic.
   You can exchange the first and second character, if there is no digraph for
that combination.  Thus CTRL-K dP also works.  Since there is no digraph for
"dP" Vim will also search for a "Pd" digraph.

	Note:
	The digraphs depend on the character set that Vim assumes you are
	using.  On MS-DOS they are different from MS-Windows.  Always use
	":digraphs" to find out which digraphs are currently available.

You can define your own digraphs.  Example: >

	:digraph a" ä

This defines that CTRL-K a" inserts an ä character.  You can also specify the
character with a decimal number.  This defines the same digraph: >

	:digraph a" 228

More information about digraphs here: |digraphs|
   Another way to insert special characters is with a keymap.  More about that
here: |45.5|

==============================================================================
*24.10*	Normal mode commands

Insert mode offers a limited number of commands.  In Normal mode you have many
more.  When you want to use one, you usually leave Insert mode with <Esc>,
execute the Normal mode command, and re-enter Insert mode with "i" or "a".
   There is a quicker way.  With CTRL-O {command} you can execute any Normal
mode command from Insert mode.  For example, to delete from the cursor to the
end of the line: >

	CTRL-O D

You can execute only one Normal mode command this way.  But you can specify a
register or a count.  A more complicated example: >

	CTRL-O "g3dw

This deletes up to the third word into register g.

==============================================================================

Next chapter: |usr_25.txt|  Editing formatted text

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z1`�Y&�&�vim80/doc/windows.txtnu�[���*windows.txt*   For Vim version 8.0.  Last change: 2018 Mar 29


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Editing with multiple windows and buffers.		*windows* *buffers*

The commands which have been added to use multiple windows and buffers are
explained here.  Additionally, there are explanations for commands that work
differently when used in combination with more than one window.

The basics are explained in chapter 7 and 8 of the user manual |usr_07.txt|
|usr_08.txt|.

1.  Introduction				|windows-intro|
2.  Starting Vim				|windows-starting|
3.  Opening and closing a window		|opening-window|
4.  Moving cursor to other windows		|window-move-cursor|
5.  Moving windows around			|window-moving|
6.  Window resizing				|window-resize|
7.  Argument and buffer list commands		|buffer-list|
8.  Do a command in all buffers or windows	|list-repeat|
9.  Tag or file name under the cursor		|window-tag|
10. The preview window				|preview-window|
11. Using hidden buffers			|buffer-hidden|
12. Special kinds of buffers			|special-buffers|

{Vi does not have any of these commands}
{not able to use multiple windows when the |+windows| feature was disabled at
compile time}
{not able to use vertically split windows when the |+vertsplit| feature was
disabled at compile time}

==============================================================================
1. Introduction					*windows-intro* *window*

Summary:
   A buffer is the in-memory text of a file.
   A window is a viewport on a buffer.
   A tab page is a collection of windows.

A window is a viewport onto a buffer.  You can use multiple windows on one
buffer, or several windows on different buffers.

A buffer is a file loaded into memory for editing.  The original file remains
unchanged until you write the buffer to the file.

A buffer can be in one of three states:

							*active-buffer*
active:   The buffer is displayed in a window.  If there is a file for this
	  buffer, it has been read into the buffer.  The buffer may have been
	  modified since then and thus be different from the file.
							*hidden-buffer*
hidden:   The buffer is not displayed.  If there is a file for this buffer, it
	  has been read into the buffer.  Otherwise it's the same as an active
	  buffer, you just can't see it.
							*inactive-buffer*
inactive: The buffer is not displayed and does not contain anything.  Options
	  for the buffer are remembered if the file was once loaded.  It can
	  contain marks from the |viminfo| file.  But the buffer doesn't
	  contain text.

In a table:

state		displayed	loaded		":buffers"  ~
		in window			shows	    ~
active		  yes		 yes		  'a'
hidden		  no		 yes		  'h'
inactive	  no		 no		  ' '

Note: All CTRL-W commands can also be executed with |:wincmd|, for those
places where a Normal mode command can't be used or is inconvenient.

The main Vim window can hold several split windows.  There are also tab pages
|tab-page|, each of which can hold multiple windows.
					*window-ID* *winid* *windowid*
Each window has a unique identifier called the window ID.  This identifier
will not change within a Vim session. The |win_getid()| and |win_id2tabwin()|
functions can be used to convert between the window/tab number and the
identifier.  There is also the window number, which may change whenever
windows are opened or closed, see |winnr()|.

Each buffer has a unique number and the number will not change within a Vim
session.  The |bufnr()| and |bufname()| functions can be used to convert
between a buffer name and the buffer number.

==============================================================================
2. Starting Vim						*windows-starting*

By default, Vim starts with one window, just like Vi.

The "-o" and "-O" arguments to Vim can be used to open a window for each file
in the argument list.  The "-o" argument will split the windows horizontally;
the "-O" argument will split the windows vertically.  If both "-o" and "-O"
are given, the last one encountered will be used to determine the split
orientation.  For example, this will open three windows, split horizontally: >
	vim -o file1 file2 file3

"-oN", where N is a decimal number, opens N windows split horizontally.  If
there are more file names than windows, only N windows are opened and some
files do not get a window.  If there are more windows than file names, the
last few windows will be editing empty buffers.  Similarly, "-ON" opens N
windows split vertically, with the same restrictions.

If there are many file names, the windows will become very small.  You might
want to set the 'winheight' and/or 'winwidth' options to create a workable
situation.

Buf/Win Enter/Leave |autocommand|s are not executed when opening the new
windows and reading the files, that's only done when they are really entered.

							*status-line*
A status line will be used to separate windows.  The 'laststatus' option tells
when the last window also has a status line:
	'laststatus' = 0	never a status line
	'laststatus' = 1	status line if there is more than one window
	'laststatus' = 2	always a status line

You can change the contents of the status line with the 'statusline' option.
This option can be local to the window, so that you can have a different
status line in each window.

Normally, inversion is used to display the status line.  This can be changed
with the 's' character in the 'highlight' option.  For example, "sb" sets it to
bold characters.  If no highlighting is used for the status line ("sn"), the
'^' character is used for the current window, and '=' for other windows.  If
the mouse is supported and enabled with the 'mouse' option, a status line can
be dragged to resize windows.

Note: If you expect your status line to be in reverse video and it isn't,
check if the 'highlight' option contains "si".  In version 3.0, this meant to
invert the status line.  Now it should be "sr", reverse the status line, as
"si" now stands for italic!  If italic is not available on your terminal, the
status line is inverted anyway; you will only see this problem on terminals
that have termcap codes for italics.

==============================================================================
3. Opening and closing a window				*opening-window* *E36*

CTRL-W s						*CTRL-W_s*
CTRL-W S						*CTRL-W_S*
CTRL-W CTRL-S						*CTRL-W_CTRL-S*
:[N]sp[lit] [++opt] [+cmd] [file]			*:sp* *:split*
		Split current window in two.  The result is two viewports on
		the same file.
		
		Make the new window N high (default is to use half the height
		of the current window).  Reduces the current window height to
		create room (and others, if the 'equalalways' option is set,
		'eadirection' isn't "hor", and one of them is higher than the
		current or the new window).

		If [file] is given it will be edited in the new window.  If it
		is not loaded in any buffer, it will be read.  Else the new
		window will use the already loaded buffer.

		Note: CTRL-S does not work on all terminals and might block
		further input, use CTRL-Q to get going again.
		Also see |++opt| and |+cmd|.

CTRL-W CTRL-V						*CTRL-W_CTRL-V*
CTRL-W v						*CTRL-W_v*
:[N]vs[plit] [++opt] [+cmd] [file]			*:vs* *:vsplit*
		Like |:split|, but split vertically.  The windows will be
		spread out horizontally if
		1. a width was not specified,
		2. 'equalalways' is set,
		3. 'eadirection' isn't "ver", and
		4. one of the other windows is wider than the current or new
		   window.
		Note: In other places CTRL-Q does the same as CTRL-V, but here
		it doesn't!

CTRL-W n						*CTRL-W_n*
CTRL-W CTRL_N						*CTRL-W_CTRL-N*
:[N]new [++opt] [+cmd]					*:new*
		Create a new window and start editing an empty file in it.
		Make new window N high (default is to use half the existing
		height).  Reduces the current window height to create room (and
		others, if the 'equalalways' option is set and 'eadirection'
		isn't "hor").
		Also see |++opt| and |+cmd|.
		If 'fileformats' is not empty, the first format given will be
		used for the new buffer.  If 'fileformats' is empty, the
		'fileformat' of the current buffer is used.  This can be
		overridden with the |++opt| argument.
		Autocommands are executed in this order:
		1. WinLeave for the current window
		2. WinEnter for the new window
		3. BufLeave for the current buffer
		4. BufEnter for the new buffer
		This behaves like a ":split" first, and then an ":enew"
		command.

:[N]vne[w] [++opt] [+cmd] [file]			*:vne* *:vnew*
		Like |:new|, but split vertically.  If 'equalalways' is set
		and 'eadirection' isn't "ver" the windows will be spread out
		horizontally, unless a width was specified.

:[N]new [++opt] [+cmd] {file}
:[N]sp[lit] [++opt] [+cmd] {file}			*:split_f*
		Create a new window and start editing file {file} in it.  This
		behaves like a ":split" first, and then an ":e" command.
		If [+cmd] is given, execute the command when the file has been
		loaded |+cmd|.
		Also see |++opt|.
		Make new window N high (default is to use half the existing
		height).  Reduces the current window height to create room
		(and others, if the 'equalalways' option is set).

:[N]sv[iew] [++opt] [+cmd] {file}		*:sv* *:sview* *splitview*
		Same as ":split", but set 'readonly' option for this buffer.

:[N]sf[ind] [++opt] [+cmd] {file}		*:sf* *:sfind* *splitfind*
		Same as ":split", but search for {file} in 'path' like in
		|:find|.  Doesn't split if {file} is not found.

CTRL-W CTRL-^					*CTRL-W_CTRL-^* *CTRL-W_^*
CTRL-W ^	Does ":split #", split window in two and edit alternate file.
		When a count is given, it becomes ":split #N", split window
		and edit buffer N.

						*CTRL-W_:*
CTRL-W :	Does the same as typing |:| : edit a command line.  Useful in a
		terminal window, where all Vim commands must be preceded with
		CTRL-W or 'termkey'.

Note that the 'splitbelow' and 'splitright' options influence where a new
window will appear.

						*:vert* *:vertical*
:vert[ical] {cmd}
		Execute {cmd}.  If it contains a command that splits a window,
		it will be split vertically.
		Doesn't work for |:execute| and |:normal|.

:lefta[bove] {cmd}				*:lefta* *:leftabove*
:abo[veleft] {cmd}				*:abo* *:aboveleft*
		Execute {cmd}.  If it contains a command that splits a window,
		it will be opened left (vertical split) or above (horizontal
		split) the current window.  Overrules 'splitbelow' and
		'splitright'.
		Doesn't work for |:execute| and |:normal|.

:rightb[elow] {cmd}				*:rightb* *:rightbelow*
:bel[owright] {cmd}				*:bel* *:belowright*
		Execute {cmd}.  If it contains a command that splits a window,
		it will be opened right (vertical split) or below (horizontal
		split) the current window.  Overrules 'splitbelow' and
		'splitright'.
		Doesn't work for |:execute| and |:normal|.

						*:topleft* *E442*
:to[pleft] {cmd}
		Execute {cmd}.  If it contains a command that splits a window,
		it will appear at the top and occupy the full width of the Vim
		window.  When the split is vertical the window appears at the
		far left and occupies the full height of the Vim window.
		Doesn't work for |:execute| and |:normal|.

						*:bo* *:botright*
:bo[tright] {cmd}
		Execute {cmd}.  If it contains a command that splits a window,
		it will appear at the bottom and occupy the full width of the
		Vim window.  When the split is vertical the window appears at
		the far right and occupies the full height of the Vim window.
		Doesn't work for |:execute| and |:normal|.

These command modifiers can be combined to make a vertically split window
occupy the full height.  Example: >
	:vertical topleft split tags
Opens a vertically split, full-height window on the "tags" file at the far
left of the Vim window.


Closing a window
----------------

:q[uit]
:{count}q[uit]
CTRL-W q						*CTRL-W_q*
CTRL-W CTRL-Q						*CTRL-W_CTRL-Q*
		Without {count}: Quit the current window.  If {count} is
		given quit the {count} window.

		When quitting the last window (not counting a help window),
		exit Vim.
		
		When 'hidden' is set, and there is only one window for the
		current buffer, it becomes hidden.  When 'hidden' is not set,
		and there is only one window for the current buffer, and the
		buffer was changed, the command fails.
		
		(Note: CTRL-Q does not work on all terminals).
		
		If [count] is greater than the last window number the last
		window will be closed: >
		    :1quit  " quit the first window
		    :$quit  " quit the last window
		    :9quit  " quit the last window
			    " if there are fewer than 9 windows opened
		    :-quit  " quit the previous window
		    :+quit  " quit the next window
		    :+2quit " quit the second next window
<
:q[uit]!
:{count}q[uit]!
		Without {count}: Quit the current window.  If {count} is
		given quit the {count} window.

		If this was the last window for a buffer, any changes to that
		buffer are lost.  When quitting the last window (not counting
		help windows), exit Vim.  The contents of the buffer are lost,
		even when 'hidden' is set.

:clo[se][!]
:{count}clo[se][!]
CTRL-W c					*CTRL-W_c* *:clo* *:close*
		Without {count}: Close the current window.  If {count} is
		given close the {count} window.

		When the 'hidden' option is set, or when the buffer was
		changed and the [!] is used, the buffer becomes hidden (unless
		there is another window editing it).
		
		When there is only one window in the current tab page and
		there is another tab page, this closes the current tab page.
		|tab-page|.

		This command fails when:			*E444*
		- There is only one window on the screen.
		- When 'hidden' is not set, [!] is not used, the buffer has
		  changes, and there is no other window on this buffer.
		Changes to the buffer are not written and won't get lost, so
		this is a "safe" command.

CTRL-W CTRL-C						*CTRL-W_CTRL-C*
		You might have expected that CTRL-W CTRL-C closes the current
		window, but that does not work, because the CTRL-C cancels the
		command.

							*:hide*
:hid[e]
:{count}hid[e]
		Without {count}: Quit the current window, unless it is the
		last window on the screen.
		If {count} is given quit the {count} window.
		
		The buffer becomes hidden (unless there is another window
		editing it or 'bufhidden' is "unload", "delete" or "wipe").
		If the window is the last one in the current tab page the tab
		page is closed.  |tab-page| 
		
		The value of 'hidden' is irrelevant for this command.  Changes
		to the buffer are not written and won't get lost, so this is a
		"safe" command.

:hid[e] {cmd}	Execute {cmd} with 'hidden' is set.  The previous value of
		'hidden' is restored after {cmd} has been executed.
		Example: >
		    :hide edit Makefile
<		This will edit "Makefile", and hide the current buffer if it
		has any changes.

:on[ly][!]
:{count}on[ly][!]
CTRL-W o						*CTRL-W_o* *E445*
CTRL-W CTRL-O					*CTRL-W_CTRL-O* *:on* *:only*
		Make the current window the only one on the screen.  All other
		windows are closed.  For {count} see |:quit| command.
		
		When the 'hidden' option is set, all buffers in closed windows
		become hidden.
		
		When 'hidden' is not set, and the 'autowrite' option is set,
		modified buffers are written.  Otherwise, windows that have
		buffers that are modified are not removed, unless the [!] is
		given, then they become hidden.  But modified buffers are
		never abandoned, so changes cannot get lost.

==============================================================================
4. Moving cursor to other windows			*window-move-cursor*

CTRL-W <Down>					*CTRL-W_<Down>*
CTRL-W CTRL-J					*CTRL-W_CTRL-J* *CTRL-W_j*
CTRL-W j	Move cursor to Nth window below current one.  Uses the cursor
		position to select between alternatives.

CTRL-W <Up>					*CTRL-W_<Up>*
CTRL-W CTRL-K					*CTRL-W_CTRL-K* *CTRL-W_k*
CTRL-W k	Move cursor to Nth window above current one.  Uses the cursor
		position to select between alternatives.

CTRL-W <Left>					*CTRL-W_<Left>*
CTRL-W CTRL-H					*CTRL-W_CTRL-H*
CTRL-W <BS>					*CTRL-W_<BS>* *CTRL-W_h*
CTRL-W h	Move cursor to Nth window left of current one.  Uses the
		cursor position to select between alternatives.

CTRL-W <Right>					*CTRL-W_<Right>*
CTRL-W CTRL-L					*CTRL-W_CTRL-L* *CTRL-W_l*
CTRL-W l	Move cursor to Nth window right of current one.  Uses the
		cursor position to select between alternatives.

CTRL-W w					*CTRL-W_w* *CTRL-W_CTRL-W*
CTRL-W CTRL-W	Without count: move cursor to window below/right of the
		current one.  If there is no window below or right, go to
		top-left window.
		With count: go to Nth window (windows are numbered from
		top-left to bottom-right).  To obtain the window number see
		|bufwinnr()| and |winnr()|.  When N is larger than the number
		of windows go to the last window.

						*CTRL-W_W*
CTRL-W W	Without count: move cursor to window above/left of current
		one.  If there is no window above or left, go to bottom-right
		window.  With count: go to Nth window, like with CTRL-W w.

CTRL-W t					*CTRL-W_t* *CTRL-W_CTRL-T*
CTRL-W CTRL-T	Move cursor to top-left window.

CTRL-W b					*CTRL-W_b* *CTRL-W_CTRL-B*
CTRL-W CTRL-B	Move cursor to bottom-right window.

CTRL-W p					*CTRL-W_p* *CTRL-W_CTRL-P*
CTRL-W CTRL-P	Go to previous (last accessed) window.

						*CTRL-W_P* *E441*
CTRL-W P	Go to preview window.  When there is no preview window this is
		an error.
		{not available when compiled without the |+quickfix| feature}

If Visual mode is active and the new window is not for the same buffer, the
Visual mode is ended.  If the window is on the same buffer, the cursor
position is set to keep the same Visual area selected.

						*:winc* *:wincmd*
These commands can also be executed with ":wincmd":

:[count]winc[md] {arg}
		Like executing CTRL-W [count] {arg}.  Example: >
			:wincmd j
<		Moves to the window below the current one.
		This command is useful when a Normal mode cannot be used (for
		the |CursorHold| autocommand event).  Or when a Normal mode
		command is inconvenient.
		The count can also be a window number.  Example: >
			:exe nr . "wincmd w"
<		This goes to window "nr".

==============================================================================
5. Moving windows around				*window-moving*

CTRL-W r				*CTRL-W_r* *CTRL-W_CTRL-R* *E443*
CTRL-W CTRL-R	Rotate windows downwards/rightwards.  The first window becomes
		the second one, the second one becomes the third one, etc.
		The last window becomes the first window.  The cursor remains
		in the same window.
		This only works within the row or column of windows that the
		current window is in.

						*CTRL-W_R*
CTRL-W R	Rotate windows upwards/leftwards.  The second window becomes
		the first one, the third one becomes the second one, etc.  The
		first window becomes the last window.  The cursor remains in
		the same window.
		This only works within the row or column of windows that the
		current window is in.

CTRL-W x					*CTRL-W_x* *CTRL-W_CTRL-X*
CTRL-W CTRL-X	Without count: Exchange current window with next one.  If there
		is no next window, exchange with previous window.
		With count: Exchange current window with Nth window (first
		window is 1).  The cursor is put in the other window.
		When vertical and horizontal window splits are mixed, the
		exchange is only done in the row or column of windows that the
		current window is in.

The following commands can be used to change the window layout.  For example,
when there are two vertically split windows, CTRL-W K will change that in
horizontally split windows.  CTRL-W H does it the other way around.

						*CTRL-W_K*
CTRL-W K	Move the current window to be at the very top, using the full
		width of the screen.  This works like closing the current
		window and then creating another one with ":topleft split",
		except that the current window contents is used for the new
		window.

						*CTRL-W_J*
CTRL-W J	Move the current window to be at the very bottom, using the
		full width of the screen.  This works like closing the current
		window and then creating another one with ":botright split",
		except that the current window contents is used for the new
		window.

						*CTRL-W_H*
CTRL-W H	Move the current window to be at the far left, using the
		full height of the screen.  This works like closing the
		current window and then creating another one with
		":vert topleft split", except that the current window contents
		is used for the new window.
		{not available when compiled without the |+vertsplit| feature}

						*CTRL-W_L*
CTRL-W L	Move the current window to be at the far right, using the full
		height of the screen.  This works like closing the
		current window and then creating another one with
		":vert botright split", except that the current window
		contents is used for the new window.
		{not available when compiled without the |+vertsplit| feature}

						*CTRL-W_T*
CTRL-W T	Move the current window to a new tab page.  This fails if
		there is only one window in the current tab page.
		When a count is specified the new tab page will be opened
		before the tab page with this index.  Otherwise it comes after
		the current tab page.

==============================================================================
6. Window resizing					*window-resize*

						*CTRL-W_=*
CTRL-W =	Make all windows (almost) equally high and wide, but use
		'winheight' and 'winwidth' for the current window.
		Windows with 'winfixheight' set keep their height and windows
		with 'winfixwidth' set keep their width.

:res[ize] -N					*:res* *:resize* *CTRL-W_-*
CTRL-W -	Decrease current window height by N (default 1).
		If used after |:vertical|: decrease width by N.

:res[ize] +N					*CTRL-W_+*
CTRL-W +	Increase current window height by N (default 1).
		If used after |:vertical|: increase width by N.

:res[ize] [N]
CTRL-W CTRL-_					*CTRL-W_CTRL-_* *CTRL-W__*
CTRL-W _	Set current window height to N (default: highest possible).

z{nr}<CR>	Set current window height to {nr}.

						*CTRL-W_<*
CTRL-W <	Decrease current window width by N (default 1).

						*CTRL-W_>*
CTRL-W >	Increase current window width by N (default 1).

:vertical res[ize] [N]			*:vertical-resize* *CTRL-W_bar*
CTRL-W |	Set current window width to N (default: widest possible).

You can also resize a window by dragging a status line up or down with the
mouse.  Or by dragging a vertical separator line left or right.  This only
works if the version of Vim that is being used supports the mouse and the
'mouse' option has been set to enable it.

The option 'winheight' ('wh') is used to set the minimal window height of the
current window.  This option is used each time another window becomes the
current window.  If the option is '0', it is disabled.  Set 'winheight' to a
very large value, e.g., '9999', to make the current window always fill all
available space.  Set it to a reasonable value, e.g., '10', to make editing in
the current window comfortable.

The equivalent 'winwidth' ('wiw') option is used to set the minimal width of
the current window.

When the option 'equalalways' ('ea') is set, all the windows are automatically
made the same size after splitting or closing a window.  If you don't set this
option, splitting a window will reduce the size of the current window and
leave the other windows the same.  When closing a window, the extra lines are
given to the window above it.

The 'eadirection' option limits the direction in which the 'equalalways'
option is applied.  The default "both" resizes in both directions.  When the
value is "ver" only the heights of windows are equalized.  Use this when you
have manually resized a vertically split window and want to keep this width.
Likewise, "hor" causes only the widths of windows to be equalized.

The option 'cmdheight' ('ch') is used to set the height of the command-line.
If you are annoyed by the |hit-enter| prompt for long messages, set this
option to 2 or 3.

If there is only one window, resizing that window will also change the command
line height.  If there are several windows, resizing the current window will
also change the height of the window below it (and sometimes the window above
it).

The minimal height and width of a window is set with 'winminheight' and
'winminwidth'.  These are hard values, a window will never become smaller.

==============================================================================
7. Argument and buffer list commands			*buffer-list*

      args list		       buffer list	   meaning ~
1. :[N]argument [N]	11. :[N]buffer [N]	to arg/buf N
2. :[N]next [file ..]	12. :[N]bnext [N]	to Nth next arg/buf
3. :[N]Next [N]		13. :[N]bNext [N]	to Nth previous arg/buf
4. :[N]previous	[N]	14. :[N]bprevious [N]	to Nth previous arg/buf
5. :rewind / :first	15. :brewind / :bfirst	to first arg/buf
6. :last		16. :blast		to last arg/buf
7. :all			17. :ball		edit all args/buffers
			18. :unhide		edit all loaded buffers
			19. :[N]bmod [N]	to Nth modified buf

  split & args list	  split & buffer list	   meaning ~
21. :[N]sargument [N]   31. :[N]sbuffer [N]	split + to arg/buf N
22. :[N]snext [file ..] 32. :[N]sbnext [N]      split + to Nth next arg/buf
23. :[N]sNext [N]       33. :[N]sbNext [N]      split + to Nth previous arg/buf
24. :[N]sprevious [N]   34. :[N]sbprevious [N]  split + to Nth previous arg/buf
25. :srewind / :sfirst	35. :sbrewind / :sbfirst split + to first arg/buf
26. :slast		36. :sblast		split + to last arg/buf
27. :sall		37. :sball		edit all args/buffers
			38. :sunhide		edit all loaded buffers
			39. :[N]sbmod [N]	split + to Nth modified buf

40. :args		list of arguments
41. :buffers		list of buffers

The meaning of [N] depends on the command:
 [N] is the number of buffers to go forward/backward on 2/12/22/32,
     3/13/23/33, and 4/14/24/34
 [N] is an argument number, defaulting to current argument, for 1 and 21
 [N] is a buffer number, defaulting to current buffer, for 11 and 31
 [N] is a count for 19 and 39

Note: ":next" is an exception, because it must accept a list of file names
for compatibility with Vi.


The argument list and multiple windows
--------------------------------------

The current position in the argument list can be different for each window.
Remember that when doing ":e file", the position in the argument list stays
the same, but you are not editing the file at that position.  To indicate
this, the file message (and the title, if you have one) shows
"(file (N) of M)", where "(N)" is the current position in the file list, and
"M" the number of files in the file list.

All the entries in the argument list are added to the buffer list.  Thus, you
can also get to them with the buffer list commands, like ":bnext".

:[N]al[l][!] [N]				*:al* *:all* *:sal* *:sall*
:[N]sal[l][!] [N]
		Rearrange the screen to open one window for each argument.
		All other windows are closed.  When a count is given, this is
		the maximum number of windows to open.
		With the |:tab| modifier open a tab page for each argument.
		When there are more arguments than 'tabpagemax' further ones
		become split windows in the last tab page.
		When the 'hidden' option is set, all buffers in closed windows
		become hidden.
		When 'hidden' is not set, and the 'autowrite' option is set,
		modified buffers are written.  Otherwise, windows that have
		buffers that are modified are not removed, unless the [!] is
		given, then they become hidden.  But modified buffers are
		never abandoned, so changes cannot get lost.
		[N] is the maximum number of windows to open.  'winheight'
		also limits the number of windows opened ('winwidth' if
		|:vertical| was prepended).
		Buf/Win Enter/Leave autocommands are not executed for the new
		windows here, that's only done when they are really entered.

:[N]sa[rgument][!] [++opt] [+cmd] [N]			*:sa* *:sargument*
		Short for ":split | argument [N]": split window and go to Nth
		argument.  But when there is no such argument, the window is
		not split.  Also see |++opt| and |+cmd|.

:[N]sn[ext][!] [++opt] [+cmd] [file ..]			*:sn* *:snext*
		Short for ":split | [N]next": split window and go to Nth next
		argument.  But when there is no next file, the window is not
		split.  Also see |++opt| and |+cmd|.

:[N]spr[evious][!] [++opt] [+cmd] [N]			*:spr* *:sprevious*
:[N]sN[ext][!] [++opt] [+cmd] [N]			*:sN* *:sNext*
		Short for ":split | [N]Next": split window and go to Nth
		previous argument.  But when there is no previous file, the
		window is not split.  Also see |++opt| and |+cmd|.

						*:sre* *:srewind*
:sre[wind][!] [++opt] [+cmd]
		Short for ":split | rewind": split window and go to first
		argument.  But when there is no argument list, the window is
		not split.  Also see |++opt| and |+cmd|.

						*:sfir* *:sfirst*
:sfir[st] [++opt] [+cmd]
		Same as ":srewind".

						*:sla* *:slast*
:sla[st][!] [++opt] [+cmd]
		Short for ":split | last": split window and go to last
		argument.  But when there is no argument list, the window is
		not split.  Also see |++opt| and |+cmd|.

						*:dr* *:drop*
:dr[op] [++opt] [+cmd] {file} ..
		Edit the first {file} in a window.
		- If the file is already open in a window change to that
		  window.
		- If the file is not open in a window edit the file in the
		  current window.  If the current buffer can't be |abandon|ed,
		  the window is split first.
		- Windows that are not in the argument list or are not full
		  width will be closed if possible.
		The |argument-list| is set, like with the |:next| command.
		The purpose of this command is that it can be used from a
		program that wants Vim to edit another file, e.g., a debugger.
		When using the |:tab| modifier each argument is opened in a
		tab page.  The last window is used if it's empty.
		Also see |++opt| and |+cmd|.

==============================================================================
8. Do a command in all buffers or windows			*list-repeat*

							*:windo*
:[range]windo {cmd}	Execute {cmd} in each window or if [range] is given
			only in windows for which the window number lies in
			the [range].  It works like doing this: >
				CTRL-W t
				:{cmd}
				CTRL-W w
				:{cmd}
				etc.
<			This only operates in the current tab page.
			When an error is detected on one window, further
			windows will not be visited.
			The last window (or where an error occurred) becomes
			the current window.
			{cmd} can contain '|' to concatenate several commands.
			{cmd} must not open or close windows or reorder them.
			{not in Vi}
			Also see |:tabdo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|,
			|:cfdo| and |:lfdo|

							*:bufdo*
:[range]bufdo[!] {cmd}	Execute {cmd} in each buffer in the buffer list or if
			[range] is given only for buffers for which their
			buffer number is in the [range].  It works like doing
			this: >
				:bfirst
				:{cmd}
				:bnext
				:{cmd}
				etc.
<			When the current file can't be |abandon|ed and the [!]
			is not present, the command fails.
			When an error is detected on one buffer, further
			buffers will not be visited.
			Unlisted buffers are skipped.
			The last buffer (or where an error occurred) becomes
			the current buffer.
			{cmd} can contain '|' to concatenate several commands.
			{cmd} must not delete buffers or add buffers to the
			buffer list.
			Note: While this command is executing, the Syntax
			autocommand event is disabled by adding it to
			'eventignore'.  This considerably speeds up editing
			each buffer.
			{not in Vi}
			Also see |:tabdo|, |:argdo|, |:windo|, |:cdo|, |:ldo|,
			|:cfdo| and |:lfdo|

Examples: >

	:windo set nolist nofoldcolumn | normal zn

This resets the 'list' option and disables folding in all windows. >

	:bufdo set fileencoding= | update

This resets the 'fileencoding' in each buffer and writes it if this changed
the buffer.  The result is that all buffers will use the 'encoding' encoding
(if conversion works properly).

==============================================================================
9. Tag or file name under the cursor			*window-tag*

							*:sta* *:stag*
:sta[g][!] [tagname]
		Does ":tag[!] [tagname]" and splits the window for the found
		tag.  See also |:tag|.

CTRL-W ]					*CTRL-W_]* *CTRL-W_CTRL-]*
CTRL-W CTRL-]	Split current window in two.  Use identifier under cursor as a
		tag and jump to it in the new upper window.
		In Visual mode uses the Visually selected text as a tag.
		Make new window N high.

							*CTRL-W_g]*
CTRL-W g ]	Split current window in two.  Use identifier under cursor as a
		tag and perform ":tselect" on it in the new upper window.
		In Visual mode uses the Visually selected text as a tag.
		Make new window N high.

							*CTRL-W_g_CTRL-]*
CTRL-W g CTRL-]	Split current window in two.  Use identifier under cursor as a
		tag and perform ":tjump" on it in the new upper window.
		In Visual mode uses the Visually selected text as a tag.
		Make new window N high.

CTRL-W f					*CTRL-W_f* *CTRL-W_CTRL-F*
CTRL-W CTRL-F	Split current window in two.  Edit file name under cursor.
		Like ":split gf", but window isn't split if the file does not
		exist.
		Uses the 'path' variable as a list of directory names where to
		look for the file.  Also the path for current file is
		used to search for the file name.
		If the name is a hypertext link that looks like
		"type://machine/path", only "/path" is used.
		If a count is given, the count'th matching file is edited.
		{not available when the |+file_in_path| feature was disabled
		at compile time}

CTRL-W F						*CTRL-W_F*
		Split current window in two.  Edit file name under cursor and
		jump to the line number following the file name. See |gF| for
		details on how the line number is obtained.
		{not available when the |+file_in_path| feature was disabled
		at compile time}

CTRL-W gf						*CTRL-W_gf*
		Open a new tab page and edit the file name under the cursor.
		Like "tab split" and "gf", but the new tab page isn't created
		if the file does not exist.
		{not available when the |+file_in_path| feature was disabled
		at compile time}

CTRL-W gF						*CTRL-W_gF*
		Open a new tab page and edit the file name under the cursor
		and jump to the line number following the file name.  Like
		"tab split" and "gF", but the new tab page isn't created if
		the file does not exist.
		{not available when the |+file_in_path| feature was disabled
		at compile time}

Also see |CTRL-W_CTRL-I|: open window for an included file that includes
the keyword under the cursor.

==============================================================================
10. The preview window				*preview-window*

The preview window is a special window to show (preview) another file.  It is
normally a small window used to show an include file or definition of a
function.
{not available when compiled without the |+quickfix| feature}

There can be only one preview window (per tab page).  It is created with one
of the commands below.  The 'previewheight' option can be set to specify the
height of the preview window when it's opened.  The 'previewwindow' option is
set in the preview window to be able to recognize it.  The 'winfixheight'
option is set to have it keep the same height when opening/closing other
windows.

						*:pta* *:ptag*
:pta[g][!] [tagname]
		Does ":tag[!] [tagname]" and shows the found tag in a
		"Preview" window without changing the current buffer or cursor
		position.  If a "Preview" window already exists, it is re-used
		(like a help window is).  If a new one is opened,
		'previewheight' is used for the height of the window.   See
		also |:tag|.
		See below for an example. |CursorHold-example|
		Small difference from |:tag|: When [tagname] is equal to the
		already displayed tag, the position in the matching tag list
		is not reset.  This makes the CursorHold example work after a
		|:ptnext|.

CTRL-W z					*CTRL-W_z*
CTRL-W CTRL-Z					*CTRL-W_CTRL-Z* *:pc* *:pclose*
:pc[lose][!]	Close any "Preview" window currently open.  When the 'hidden'
		option is set, or when the buffer was changed and the [!] is
		used, the buffer becomes hidden (unless there is another
		window editing it).  The command fails if any "Preview" buffer
		cannot be closed.  See also |:close|.

							*:pp* *:ppop*
:[count]pp[op][!]
		Does ":[count]pop[!]" in the preview window.  See |:pop| and
		|:ptag|.  {not in Vi}

CTRL-W }						*CTRL-W_}*
		Use identifier under cursor as a tag and perform a :ptag on
		it.  Make the new Preview window (if required) N high.  If N is
		not given, 'previewheight' is used.

CTRL-W g }						*CTRL-W_g}*
		Use identifier under cursor as a tag and perform a :ptjump on
		it.  Make the new Preview window (if required) N high.  If N is
		not given, 'previewheight' is used.

							*:ped* *:pedit*
:ped[it][!] [++opt] [+cmd] {file}
		Edit {file} in the preview window.  The preview window is
		opened like with |:ptag|.  The current window and cursor
		position isn't changed.  Useful example: >
			:pedit +/fputc /usr/include/stdio.h
<
							*:ps* *:psearch*
:[range]ps[earch][!] [count] [/]pattern[/]
		Works like |:ijump| but shows the found match in the preview
		window.  The preview window is opened like with |:ptag|.  The
		current window and cursor position isn't changed.  Useful
		example: >
			:psearch popen
<		Like with the |:ptag| command, you can use this to
		automatically show information about the word under the
		cursor.  This is less clever than using |:ptag|, but you don't
		need a tags file and it will also find matches in system
		include files.  Example: >
  :au! CursorHold *.[ch] nested exe "silent! psearch " . expand("<cword>")
<		Warning: This can be slow.

Example						*CursorHold-example*  >

  :au! CursorHold *.[ch] nested exe "silent! ptag " . expand("<cword>")

This will cause a ":ptag" to be executed for the keyword under the cursor,
when the cursor hasn't moved for the time set with 'updatetime'.  The "nested"
makes other autocommands be executed, so that syntax highlighting works in the
preview window.  The "silent!" avoids an error message when the tag could not
be found.  Also see |CursorHold|.  To disable this again: >

  :au! CursorHold

A nice addition is to highlight the found tag, avoid the ":ptag" when there
is no word under the cursor, and a few other things: >

  :au! CursorHold *.[ch] nested call PreviewWord()
  :func PreviewWord()
  :  if &previewwindow			" don't do this in the preview window
  :    return
  :  endif
  :  let w = expand("<cword>")		" get the word under cursor
  :  if w =~ '\a'			" if the word contains a letter
  :
  :    " Delete any existing highlight before showing another tag
  :    silent! wincmd P			" jump to preview window
  :    if &previewwindow			" if we really get there...
  :      match none			" delete existing highlight
  :      wincmd p			" back to old window
  :    endif
  :
  :    " Try displaying a matching tag for the word under the cursor
  :    try
  :       exe "ptag " . w
  :    catch
  :      return
  :    endtry
  :
  :    silent! wincmd P			" jump to preview window
  :    if &previewwindow		" if we really get there...
  :	 if has("folding")
  :	   silent! .foldopen		" don't want a closed fold
  :	 endif
  :	 call search("$", "b")		" to end of previous line
  :	 let w = substitute(w, '\\', '\\\\', "")
  :	 call search('\<\V' . w . '\>')	" position cursor on match
  :	 " Add a match highlight to the word at this position
  :      hi previewWord term=bold ctermbg=green guibg=green
  :	 exe 'match previewWord "\%' . line(".") . 'l\%' . col(".") . 'c\k*"'
  :      wincmd p			" back to old window
  :    endif
  :  endif
  :endfun

==============================================================================
11. Using hidden buffers				*buffer-hidden*

A hidden buffer is not displayed in a window, but is still loaded into memory.
This makes it possible to jump from file to file, without the need to read or
write the file every time you get another buffer in a window.

							*:buffer-!*
If the option 'hidden' ('hid') is set, abandoned buffers are kept for all
commands that start editing another file: ":edit", ":next", ":tag", etc.  The
commands that move through the buffer list sometimes make the current buffer
hidden although the 'hidden' option is not set.  This happens when a buffer is
modified, but is forced (with '!') to be removed from a window, and
'autowrite' is off or the buffer can't be written.

You can make a hidden buffer not hidden by starting to edit it with any
command.  Or by deleting it with the ":bdelete" command.

The 'hidden' is global, it is used for all buffers.  The 'bufhidden' option
can be used to make an exception for a specific buffer.  It can take these
values:
	<empty>		Use the value of 'hidden'.
	hide		Hide this buffer, also when 'hidden' is not set.
	unload		Don't hide but unload this buffer, also when 'hidden'
			is set.
	delete		Delete the buffer.

							*hidden-quit*
When you try to quit Vim while there is a hidden, modified buffer, you will
get an error message and Vim will make that buffer the current buffer.  You
can then decide to write this buffer (":wq") or quit without writing (":q!").
Be careful: there may be more hidden, modified buffers!

A buffer can also be unlisted.  This means it exists, but it is not in the
list of buffers. |unlisted-buffer|


:files[!] [flags]				*:files*
:buffers[!] [flags]				*:buffers* *:ls*
:ls[!] [flags]
		Show all buffers.  Example:

			1 #h   "/test/text"		line 1 ~
			2u     "asdf"			line 0 ~
			3 %a + "version.c"		line 1 ~

		When the [!] is included the list will show unlisted buffers
		(the term "unlisted" is a bit confusing then...).

		Each buffer has a unique number.  That number will not change,
		thus you can always go to a specific buffer with ":buffer N"
		or "N CTRL-^", where N is the buffer number.

		Indicators (chars in the same column are mutually exclusive):
		u	an unlisted buffer (only displayed when [!] is used)
			   |unlisted-buffer|
		 %	the buffer in the current window
		 #	the alternate buffer for ":e #" and CTRL-^
		  a	an active buffer: it is loaded and visible
		  h	a hidden buffer: It is loaded, but currently not
			   displayed in a window |hidden-buffer|
		   -	a buffer with 'modifiable' off
		   =	a readonly buffer
		   R	a terminal buffer with a running job
		   F	a terminal buffer with a finished job
		   ?    a terminal buffer without a job: `:terminal NONE`
		    +	a modified buffer
		    x   a buffer with read errors

		[flags] can be a combination of the following characters,
		which restrict the buffers to be listed:
		     +   modified buffers
		     -   buffers with 'modifiable' off
		     =   readonly buffers
		     a   active buffers
		     u   unlisted buffers (overrides the "!")
		     h   hidden buffers
		     x   buffers with a read error
		     %   current buffer
		     #   alternate buffer
		     R	 terminal buffers with a running job
		     F	 terminal buffers with a finished job
		     ?   terminal buffers without a job: `:terminal NONE`
		Combining flags means they are "and"ed together, e.g.:
		     h+   hidden buffers which are modified
		     a+   active buffers which are modified

		When using |:filter| the pattern is matched against the
		displayed buffer name, e.g.: >
			filter /\.vim/ ls
<
						*:bad* *:badd*
:bad[d]	[+lnum] {fname}
		Add file name {fname} to the buffer list, without loading it.
		If "lnum" is specified, the cursor will be positioned at that
		line when the buffer is first entered.  Note that other
		commands after the + will be ignored.

:[N]bd[elete][!]			*:bd* *:bdel* *:bdelete* *E516*
:bd[elete][!] [N]
		Unload buffer [N] (default: current buffer) and delete it from
		the buffer list.  If the buffer was changed, this fails,
		unless when [!] is specified, in which case changes are lost.
		The file remains unaffected.  Any windows for this buffer are
		closed.  If buffer [N] is the current buffer, another buffer
		will be displayed instead.  This is the most recent entry in
		the jump list that points into a loaded buffer.
		Actually, the buffer isn't completely deleted, it is removed
		from the buffer list |unlisted-buffer| and option values,
		variables and mappings/abbreviations for the buffer are
		cleared. Examples: >
		    :.,$-bdelete    " delete buffers from the current one to
				    " last but one
		    :%bdelete	    " delete all buffers
<

:bdelete[!] {bufname}						*E93* *E94*
		Like ":bdelete[!] [N]", but buffer given by name.  Note that a
		buffer whose name is a number cannot be referenced by that
		name; use the buffer number instead.  Insert a backslash
		before a space in a buffer name.

:bdelete[!] N1 N2 ...
		Do ":bdelete[!]" for buffer N1, N2, etc.  The arguments can be
		buffer numbers or buffer names (but not buffer names that are
		a number).  Insert a backslash before a space in a buffer
		name.

:N,Mbdelete[!]	Do ":bdelete[!]" for all buffers in the range N to M
		|inclusive|.

:[N]bw[ipeout][!]			*:bw* *:bwipe* *:bwipeout* *E517*
:bw[ipeout][!] {bufname}
:N,Mbw[ipeout][!]
:bw[ipeout][!] N1 N2 ...
		Like |:bdelete|, but really delete the buffer.  Everything
		related to the buffer is lost.  All marks in this buffer
		become invalid, option settings are lost, etc.  Don't use this
		unless you know what you are doing. Examples: >
		    :.+,$bwipeout   " wipe out all buffers after the current
				    " one
		    :%bwipeout	    " wipe out all buffers
<

:[N]bun[load][!]				*:bun* *:bunload* *E515*
:bun[load][!] [N]
		Unload buffer [N] (default: current buffer).  The memory
		allocated for this buffer will be freed.  The buffer remains
		in the buffer list.
		If the buffer was changed, this fails, unless when [!] is
		specified, in which case the changes are lost.
		Any windows for this buffer are closed.  If buffer [N] is the
		current buffer, another buffer will be displayed instead.
		This is the most recent entry in the jump list that points
		into a loaded buffer.

:bunload[!] {bufname}
		Like ":bunload[!] [N]", but buffer given by name.  Note that a
		buffer whose name is a number cannot be referenced by that
		name; use the buffer number instead.  Insert a backslash
		before a space in a buffer name.

:N,Mbunload[!]	Do ":bunload[!]" for all buffers in the range N to M
		|inclusive|.

:bunload[!] N1 N2 ...
		Do ":bunload[!]" for buffer N1, N2, etc.  The arguments can be
		buffer numbers or buffer names (but not buffer names that are
		a number).  Insert a backslash before a space in a buffer
		name.

:[N]b[uffer][!] [+cmd] [N]		*:b* *:bu* *:buf* *:buffer* *E86*
		Edit buffer [N] from the buffer list.  If [N] is not given,
		the current buffer remains being edited.  See |:buffer-!| for
		[!].  This will also edit a buffer that is not in the buffer
		list, without setting the 'buflisted' flag.
		Also see |+cmd|.

:[N]b[uffer][!] [+cmd] {bufname}
		Edit buffer for {bufname} from the buffer list.  See
		|:buffer-!| for [!].  This will also edit a buffer that is not
		in the buffer list, without setting the 'buflisted' flag.
		Also see |+cmd|.

:[N]sb[uffer] [+cmd] [N]				*:sb* *:sbuffer*
		Split window and edit buffer [N] from the buffer list.  If [N]
		is not given, the current buffer is edited.  Respects the
		"useopen" setting of 'switchbuf' when splitting.  This will
		also edit a buffer that is not in the buffer list, without
		setting the 'buflisted' flag.
		Also see |+cmd|.

:[N]sb[uffer] [+cmd] {bufname}
		Split window and edit buffer for {bufname} from the buffer
		list.  This will also edit a buffer that is not in the buffer
		list, without setting the 'buflisted' flag.
		Note: If what you want to do is split the buffer, make a copy
		under another name, you can do it this way: >
			:w foobar | sp #
<		Also see |+cmd|.

:[N]bn[ext][!] [+cmd] [N]				*:bn* *:bnext* *E87*
		Go to [N]th next buffer in buffer list.  [N] defaults to one.
		Wraps around the end of the buffer list.
		See |:buffer-!| for [!].
		Also see |+cmd|.
		If you are in a help buffer, this takes you to the next help
		buffer (if there is one).  Similarly, if you are in a normal
		(non-help) buffer, this takes you to the next normal buffer.
		This is so that if you have invoked help, it doesn't get in
		the way when you're browsing code/text buffers.  The next three
		commands also work like this.


							*:sbn* *:sbnext*
:[N]sbn[ext] [+cmd] [N]
		Split window and go to [N]th next buffer in buffer list.
		Wraps around the end of the buffer list.  Uses 'switchbuf'
		Also see |+cmd|.

:[N]bN[ext][!] [+cmd] [N]		*:bN* *:bNext* *:bp* *:bprevious* *E88*
:[N]bp[revious][!] [+cmd] [N]
		Go to [N]th previous buffer in buffer list.  [N] defaults to
		one.  Wraps around the start of the buffer list.
		See |:buffer-!| for [!] and 'switchbuf'.
		Also see |+cmd|.

:[N]sbN[ext] [+cmd] [N]			*:sbN* *:sbNext* *:sbp* *:sbprevious*
:[N]sbp[revious] [+cmd] [N]
		Split window and go to [N]th previous buffer in buffer list.
		Wraps around the start of the buffer list.
		Uses 'switchbuf'.
		Also see |+cmd|.

:br[ewind][!] [+cmd]					*:br* *:brewind*
		Go to first buffer in buffer list.  If the buffer list is
		empty, go to the first unlisted buffer.
		See |:buffer-!| for [!].

:bf[irst] [+cmd]					*:bf* *:bfirst*
		Same as |:brewind|.
		Also see |+cmd|.

:sbr[ewind] [+cmd]					*:sbr* *:sbrewind*
		Split window and go to first buffer in buffer list.  If the
		buffer list is empty, go to the first unlisted buffer.
		Respects the 'switchbuf' option.
		Also see |+cmd|.

:sbf[irst] [+cmd]					*:sbf* *:sbfirst*
		Same as ":sbrewind".

:bl[ast][!] [+cmd]					*:bl* *:blast*
		Go to last buffer in buffer list.  If the buffer list is
		empty, go to the last unlisted buffer.
		See |:buffer-!| for [!].

:sbl[ast] [+cmd]					*:sbl* *:sblast*
		Split window and go to last buffer in buffer list.  If the
		buffer list is empty, go to the last unlisted buffer.
		Respects 'switchbuf' option.

:[N]bm[odified][!] [+cmd] [N]			*:bm* *:bmodified* *E84*
		Go to [N]th next modified buffer.  Note: this command also
		finds unlisted buffers.  If there is no modified buffer the
		command fails.

:[N]sbm[odified] [+cmd] [N]				*:sbm* *:sbmodified*
		Split window and go to [N]th next modified buffer.
		Respects 'switchbuf' option.
		Note: this command also finds buffers not in the buffer list.

:[N]unh[ide] [N]			*:unh* *:unhide* *:sun* *:sunhide*
:[N]sun[hide] [N]
		Rearrange the screen to open one window for each loaded buffer
		in the buffer list.  When a count is given, this is the
		maximum number of windows to open.

:[N]ba[ll] [N]					*:ba* *:ball* *:sba* *:sball*
:[N]sba[ll] [N]	Rearrange the screen to open one window for each buffer in
		the buffer list.  When a count is given, this is the maximum
		number of windows to open.  'winheight' also limits the number
		of windows opened ('winwidth' if |:vertical| was prepended).
		Buf/Win Enter/Leave autocommands are not executed for the new
		windows here, that's only done when they are really entered.
		When the |:tab| modifier is used new windows are opened in a
		new tab, up to 'tabpagemax'.

Note: All the commands above that start editing another buffer, keep the
'readonly' flag as it was.  This differs from the ":edit" command, which sets
the 'readonly' flag each time the file is read.

==============================================================================
12. Special kinds of buffers			*special-buffers*

Instead of containing the text of a file, buffers can also be used for other
purposes.  A few options can be set to change the behavior of a buffer:
	'bufhidden'	what happens when the buffer is no longer displayed
			in a window.
	'buftype'	what kind of a buffer this is
	'swapfile'	whether the buffer will have a swap file
	'buflisted'	buffer shows up in the buffer list

A few useful kinds of a buffer:

quickfix	Used to contain the error list or the location list.  See
		|:cwindow| and |:lwindow|.  This command sets the 'buftype'
		option to "quickfix".  You are not supposed to change this!
		'swapfile' is off.

help		Contains a help file.  Will only be created with the |:help|
		command.  The flag that indicates a help buffer is internal
		and can't be changed.  The 'buflisted' option will be reset
		for a help buffer.

terminal	A terminal window buffer, see |terminal|. The contents cannot
		be read or changed until the job ends.

directory	Displays directory contents.  Can be used by a file explorer
		plugin.  The buffer is created with these settings: >
			:setlocal buftype=nowrite
			:setlocal bufhidden=delete
			:setlocal noswapfile
<		The buffer name is the name of the directory and is adjusted
		when using the |:cd| command.

scratch		Contains text that can be discarded at any time.  It is kept
		when closing the window, it must be deleted explicitly.
		Settings: >
			:setlocal buftype=nofile
			:setlocal bufhidden=hide
			:setlocal noswapfile
<		The buffer name can be used to identify the buffer, if you
		give it a meaningful name.

						*unlisted-buffer*
unlisted	The buffer is not in the buffer list.  It is not used for
		normal editing, but to show a help file, remember a file name
		or marks.  The ":bdelete" command will also set this option,
		thus it doesn't completely delete the buffer.  Settings: >
			:setlocal nobuflisted
<

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�}�vim80/doc/debug.txtnu�[���*debug.txt*     For Vim version 8.0.  Last change: 2017 Jul 15


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Debugging Vim						*debug-vim*

This is for debugging Vim itself, when it doesn't work properly.
For debugging Vim scripts, functions, etc. see |debug-scripts|

1. Location of a crash, using gcc and gdb	|debug-gcc|
2. Locating memory leaks			|debug-leaks|
3. Windows Bug Reporting			|debug-win32|

==============================================================================

1. Location of a crash, using gcc and gdb		*debug-gcc* *gdb*

When Vim crashes in one of the test files, and you are using gcc for
compilation, here is what you can do to find out exactly where Vim crashes.
This also applies when using the MingW tools.

1. Compile Vim with the "-g" option (there is a line in the src/Makefile for
   this, which you can uncomment).  Also make sure "strip" is disabled (do not
   install it, or use the line "STRIP = /bin/true").

2. Execute these commands (replace "11" with the test that fails): >
	cd testdir
	gdb ../vim
	run -u unix.vim -U NONE -s dotest.in test11.in

3. Check where Vim crashes, gdb should give a message for this.

4. Get a stack trace from gdb with this command: >
	where
<  You can check out different places in the stack trace with: >
	frame 3
<  Replace "3" with one of the numbers in the stack trace.

==============================================================================

2. Locating memory leaks			*debug-leaks* *valgrind*

If you suspect Vim is leaking memory and you are using Linux, the valgrind
tool is very useful to pinpoint memory leaks.

First of all, build Vim with EXITFREE defined.  Search for this in MAKEFILE
and uncomment the line.

Use this command to start Vim:
>
	valgrind --log-file=valgrind.log --leak-check=full ./vim

Note: Vim will run much slower.  If your .vimrc is big or you have several
plugins you need to be patient for startup, or run with the "--clean"
argument.

There are often a few leaks from libraries, such as getpwuid() and
XtVaAppCreateShell().  Those are unavoidable.  The number of bytes should be
very small a Kbyte or less.

==============================================================================

3. Windows Bug Reporting				*debug-win32*

If the Windows version of Vim crashes in a reproducible manner, you can take
some steps to provide a useful bug report.


3.1 GENERIC ~

You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the
same place that you obtained the executable. Be sure to use the PDB that
matches the EXE (same date).

If you built the executable yourself with the Microsoft Visual C++ compiler,
then the PDB was built with the EXE.

Alternatively, if you have the source files, you can import Make_ivc.mak into
Visual Studio as a workspace.  Then select a debug configuration, build and
you can do all kinds of debugging (set breakpoints, watch variables, etc.).

If you have Visual Studio, use that instead of the VC Toolkit and WinDbg.

For other compilers, you should always use the corresponding debugger: TD for
a Vim executable compiled with the Borland compiler; gdb (see above
|debug-gcc|) for the Cygwin and MinGW compilers.


								*debug-vs2005*
3.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~

First launch vim.exe or gvim.exe and then launch Visual Studio.  (If you don't
have Visual Studio, follow the instructions at |get-ms-debuggers| to obtain a
free copy of Visual C++ 2005 Express Edition.)

On the Tools menu, click Attach to Process.  Choose the Vim process.

In Vim, reproduce the crash.  A dialog will appear in Visual Studio, telling
you about the unhandled exception in the Vim process.  Click Break to break
into the process.

Visual Studio will pop up another dialog, telling you that no symbols are
loaded and that the source code cannot be displayed.  Click OK.

Several windows will open.  Right-click in the Call Stack window.  Choose Load
Symbols.  The Find Symbols dialog will open, looking for (g)vim.pdb.  Navigate
to the directory where you have the PDB file and click Open.

At this point, you should have a full call stack with vim function names and
line numbers.  Double-click one of the lines and the Find Source dialog will
appear.  Navigate to the directory where the Vim source is (if you have it.)

If you don't know how to debug this any further, follow the instructions
at ":help bug-reports".  Paste the call stack into the bug report.

If you have a non-free version of Visual Studio, you can save a minidump via
the Debug menu and send it with the bug report.  A minidump is a small file
(<100KB), which contains information about the state of your process.
Visual C++ 2005 Express Edition cannot save minidumps and it cannot be
installed as a just-in-time debugger. Use WinDbg, |debug-windbg|, if you
need to save minidumps or you want a just-in-time (postmortem) debugger.

								*debug-windbg*
3.3 Debugging Vim crashes with WinDbg ~

See |get-ms-debuggers| to obtain a copy of WinDbg.

As with the Visual Studio IDE, you can attach WinDbg to a running Vim process.
You can also have your system automatically invoke WinDbg as a postmortem
debugger. To set WinDbg as your postmortem debugger, run "windbg -I".

To attach WinDbg to a running Vim process, launch WinDbg. On the File menu,
choose Attach to a Process. Select the Vim process and click OK.

At this point, choose Symbol File Path on the File menu, and add the folder
containing your Vim PDB to the sympath. If you have Vim source available,
use Source File Path on the File menu. You can now open source files in WinDbg
and set breakpoints, if you like. Reproduce your crash. WinDbg should open the
source file at the point of the crash. Using the View menu, you can examine
the call stack, local variables, watch windows, and so on.

If WinDbg is your postmortem debugger, you do not need to attach WinDbg to
your Vim process. Simply reproduce the crash and WinDbg will launch
automatically. As above, set the Symbol File Path and the Source File Path.

To save a minidump, type the following at the WinDbg command line: >
        .dump vim.dmp
<
							*debug-minidump*
3.4 Opening a Minidump ~

If you have a minidump file, you can open it in Visual Studio or in WinDbg.

In Visual Studio 2005: on the File menu, choose Open, then Project/Solution.
Navigate to the .dmp file and open it. Now press F5 to invoke the debugger.
Follow the instructions in |debug-vs2005| to set the Symbol File Path.

In WinDbg: choose Open Crash Dump on the File menu. Follow the instructions in
|debug-windbg| to set the Symbol File Path.

							*get-ms-debuggers*
3.5 Obtaining Microsoft Debugging Tools ~

The Debugging Tools for Windows (including WinDbg) can be downloaded from
    http://www.microsoft.com/whdc/devtools/debugging/default.mspx
This includes the WinDbg debugger.

Visual C++ 2005 Express Edition can be downloaded for free from:
    http://msdn.microsoft.com/vstudio/express/visualC/default.aspx

=========================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z5
7���vim80/doc/usr_01.txtnu�[���*usr_01.txt*	For Vim version 8.0.  Last change: 2017 Jul 15

		     VIM USER MANUAL - by Bram Moolenaar

			      About the manuals


This chapter introduces the manuals available with Vim.  Read this to know the
conditions under which the commands are explained.

|01.1|	Two manuals
|01.2|	Vim installed
|01.3|	Using the Vim tutor
|01.4|	Copyright

     Next chapter: |usr_02.txt|  The first steps in Vim
Table of contents: |usr_toc.txt|

==============================================================================
*01.1*	Two manuals

The Vim documentation consists of two parts:

1. The User manual
   Task oriented explanations, from simple to complex.  Reads from start to
   end like a book.

2. The Reference manual
   Precise description of how everything in Vim works.

The notation used in these manuals is explained here: |notation|


JUMPING AROUND

The text contains hyperlinks between the two parts, allowing you to quickly
jump between the description of an editing task and a precise explanation of
the commands and options used for it.  Use these two commands:

	Press  CTRL-]  to jump to a subject under the cursor.
	Press  CTRL-O  to jump back (repeat to go further back).

Many links are in vertical bars, like this: |bars|.  The bars themselves may
be hidden or invisible, see below.  An option name, like 'number', a command
in double quotes like ":write" and any other word can also be used as a link.
Try it out: Move the cursor to  CTRL-]  and press CTRL-] on it.

Other subjects can be found with the ":help" command, see |help.txt|.

The bars and stars are usually hidden with the |conceal| feature.  They also
use |hl-Ignore|, using the same color for the text as the background.  You can
make them visible with: >
	:set conceallevel=0
	:hi link HelpBar Normal
	:hi link HelpStar Normal

==============================================================================
*01.2*	Vim installed

Most of the manuals assume that Vim has been properly installed.  If you
didn't do that yet, or if Vim doesn't run properly (e.g., files can't be found
or in the GUI the menus do not show up) first read the chapter on
installation: |usr_90.txt|.
							*not-compatible*
The manuals often assume you are using Vim with Vi-compatibility switched
off.  For most commands this doesn't matter, but sometimes it is important,
e.g., for multi-level undo.  An easy way to make sure you are using a nice
setup is to copy the example vimrc file.  By doing this inside Vim you don't
have to check out where it is located.  How to do this depends on the system
you are using:

Unix: >
	:!cp -i $VIMRUNTIME/vimrc_example.vim ~/.vimrc
MS-DOS, MS-Windows, OS/2: >
	:!copy $VIMRUNTIME/vimrc_example.vim $VIM/_vimrc
Amiga: >
	:!copy $VIMRUNTIME/vimrc_example.vim $VIM/.vimrc

If the file already exists you probably want to keep it.

If you start Vim now, the 'compatible' option should be off.  You can check it
with this command: >

	:set compatible?

If it responds with "nocompatible" you are doing well.  If the response is
"compatible" you are in trouble.  You will have to find out why the option is
still set.  Perhaps the file you wrote above is not found.  Use this command
to find out: >

	:scriptnames

If your file is not in the list, check its location and name.  If it is in the
list, there must be some other place where the 'compatible' option is switched
back on.

For more info see |vimrc| and |compatible-default|.

	Note:
	This manual is about using Vim in the normal way.  There is an
	alternative called "evim" (easy Vim).  This is still Vim, but used in
	a way that resembles a click-and-type editor like Notepad.  It always
	stays in Insert mode, thus it feels very different.  It is not
	explained in the user manual, since it should be mostly self
	explanatory.  See |evim-keys| for details.

==============================================================================
*01.3*	Using the Vim tutor				*tutor* *vimtutor*

Instead of reading the text (boring!) you can use the vimtutor to learn your
first Vim commands.  This is a 30 minute tutorial that teaches the most basic
Vim functionality hands-on.

On Unix, if Vim has been properly installed, you can start it from the shell:
>
	vimtutor

On MS-Windows you can find it in the Program/Vim menu.  Or execute
vimtutor.bat in the $VIMRUNTIME directory.

This will make a copy of the tutor file, so that you can edit it without
the risk of damaging the original.
   There are a few translated versions of the tutor.  To find out if yours is
available, use the two-letter language code.  For French: >

	vimtutor fr

On Unix, if you prefer using the GUI version of Vim, use "gvimtutor" or
"vimtutor -g" instead of "vimtutor".

For OpenVMS, if Vim has been properly installed, you can start vimtutor from a
VMS prompt with: >

	@VIM:vimtutor

Optionally add the two-letter language code as above.


On other systems, you have to do a little work:

1. Copy the tutor file.  You can do this with Vim (it knows where to find it):
>
	vim --clean -c 'e $VIMRUNTIME/tutor/tutor' -c 'w! TUTORCOPY' -c 'q'
<
   This will write the file "TUTORCOPY" in the current directory.  To use a
translated version of the tutor, append the two-letter language code to the
filename.  For French:
>
	vim --clean -c 'e $VIMRUNTIME/tutor/tutor.fr' -c 'w! TUTORCOPY' -c 'q'
<
2. Edit the copied file with Vim:
>
	vim --clean TUTORCOPY
<
   The --clean argument makes sure Vim is started with nice defaults.

3. Delete the copied file when you are finished with it:
>
	del TUTORCOPY
<
==============================================================================
*01.4*	Copyright					*manual-copyright*

The Vim user manual and reference manual are Copyright (c) 1988-2003 by Bram
Moolenaar.  This material may be distributed only subject to the terms and
conditions set forth in the Open Publication License, v1.0 or later.  The
latest version is presently available at:
	     http://www.opencontent.org/openpub/

People who contribute to the manuals must agree with the above copyright
notice.
							*frombook*
Parts of the user manual come from the book "Vi IMproved - Vim" by Steve
Oualline (published by New Riders Publishing, ISBN: 0735710015).  The Open
Publication License applies to this book.  Only selected parts are included
and these have been modified (e.g., by removing the pictures, updating the
text for Vim 6.0 and later, fixing mistakes).  The omission of the |frombook|
tag does not mean that the text does not come from the book.

Many thanks to Steve Oualline and New Riders for creating this book and
publishing it under the OPL!  It has been a great help while writing the user
manual.  Not only by providing literal text, but also by setting the tone and
style.

If you make money through selling the manuals, you are strongly encouraged to
donate part of the profit to help AIDS victims in Uganda.  See |iccf|.

==============================================================================

Next chapter: |usr_02.txt|  The first steps in Vim

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�ZN�]̆���vim80/doc/netbeans.txtnu�[���*netbeans.txt*  For Vim version 8.0.  Last change: 2016 Jul 15


		  VIM REFERENCE MANUAL    by Gordon Prieur et al.


					*netbeans* *netbeans-support*

Vim NetBeans Protocol: a socket interface for Vim integration into an IDE.

1.  Introduction				|netbeans-intro|
2.  Integration features			|netbeans-integration|
3.  Configuring Vim for NetBeans		|netbeans-configure|
4.  Error Messages				|netbeans-messages|
5.  Running Vim in NetBeans mode		|netbeans-run|
6.  NetBeans protocol				|netbeans-protocol|
7.  NetBeans commands				|netbeans-commands|
8.  Known problems				|netbeans-problems|
9.  Debugging NetBeans protocol			|netbeans-debugging|
10. NetBeans External Editor
    10.1. Downloading NetBeans			|netbeans-download|
    10.2. NetBeans Key Bindings			|netbeans-keybindings|
    10.3. Preparing NetBeans for Vim		|netbeans-preparation|
    10.4. Obtaining the External Editor Module	|obtaining-exted|
    10.5. Setting up NetBeans to run with Vim	|netbeans-setup|

{Vi does not have any of these features}
{only available when compiled with the |+netbeans_intg| feature}

==============================================================================
1. Introduction						*netbeans-intro*

The NetBeans interface was initially developed to integrate Vim into the
NetBeans Java IDE, using the external editor plugin.  This NetBeans plugin no
longer exists for recent versions of NetBeans but the protocol was developed
in such a way that any IDE can use it to integrate Vim.

The NetBeans protocol of Vim is a text based communication protocol, over a
classical TCP socket. There is no dependency on Java or NetBeans. Any language
or environment providing a socket interface can control Vim using this
protocol. There are existing implementations in C, C++, Python and Java. The
name NetBeans is kept today for historical reasons.

Current projects using the NetBeans protocol of Vim are:
- VimIntegration, description of various projects doing Vim Integration:
	http://www.freehackers.org/VimIntegration
- Agide, an IDE for the AAP project, written in Python:
	http://www.a-a-p.org
- Clewn, a gdb integration into Vim, written in C:
	http://clewn.sourceforge.net/
- Pyclewn, a gdb integration into Vim, written in Python:
	http://pyclewn.sourceforge.net/
- VimPlugin, integration of Vim inside Eclipse:
	http://vimplugin.sourceforge.net/wiki/pmwiki.php
- PIDA, IDE written in Python integrating Vim:
	http://pida.co.uk/
- VimWrapper, library to easy Vim integration into IDE:
	http://www.freehackers.org/VimWrapper

Check the specific project pages to see how to use Vim with these projects.

An alternative is to use a channel, see |channel|.

In the rest of this help page, we will use the term "Vim Controller" to
describe the program controlling Vim through the NetBeans socket interface.


About the NetBeans IDE ~

NetBeans is an open source Integrated Development Environment developed
jointly by Sun Microsystems, Inc. and the netbeans.org developer community.
Initially just a Java IDE, NetBeans has had C, C++, and Fortran support added
in recent releases.

For more information visit the main NetBeans web site http://www.netbeans.org.
The External Editor is now, unfortunately, declared obsolete.  See
 http://externaleditor.netbeans.org.

Sun Microsystems, Inc. also ships NetBeans under the name Sun ONE Studio.
Visit http://www.sun.com for more information regarding the Sun ONE Studio
product line.

Current releases of NetBeans provide full support for Java and limited support
for C, C++, and Fortran.  Current releases of Sun ONE Studio provide full
support for Java, C, C++, and Fortran.

==============================================================================
2. Integration features					*netbeans-integration*

The NetBeans socket interface of Vim allows to get information from Vim or to
ask Vim to perform specific actions:
- get information about buffer: buffer name, cursor position, buffer content,
  etc.
- be notified when buffers are open or closed
- be notified of how the buffer content is modified
- load and save files
- modify the buffer content
- installing special key bindings
- raise the window, control the window geometry

For sending key strokes to Vim or for evaluating functions in Vim, you must
use the |clientserver| interface.


==============================================================================
3. Configuring Vim for NetBeans			*netbeans-configure*

For more help about installing Vim, please read |usr_90.txt| in the Vim User
Manual.


On Unix:
--------

When running configure without arguments the NetBeans interface should be
included.  That is, if the configure check to find out if your system supports
the required features succeeds.

In case you do not want the NetBeans interface you can disable it by
uncommenting a line with "--disable-netbeans" in the Makefile.

Currently the NetBeans interface is supported by Vim running in a terminal and
by gvim when it is run with one of the following GUIs: GTK, GNOME, Windows,
Athena and Motif.

If Motif support is required the user must supply XPM libraries.  See
|workshop-xpm| for details on obtaining the latest version of XPM.


On MS-Windows:
--------------

The Win32 support is now in beta stage.

To use XPM signs on Win32 (e.g. when using with NetBeans) you can compile
XPM by yourself or use precompiled libraries from http://iamphet.nm.ru/misc/
(for MS Visual C++) or http://gnuwin32.sourceforge.net (for MinGW).

Enable debugging:
-----------------

To enable debugging of Vim and of the NetBeans protocol, the "NBDEBUG" macro
needs to be defined.  Search in the Makefile of the platform you are using for
"NBDEBUG" to see what line needs to be uncommented.  This effectively adds
"-DNBDEBUG" to the compile command.  Also see |netbeans-debugging|

==============================================================================
4. Error Messages					*netbeans-messages*

These error messages are specific to NetBeans socket protocol:

							*E463*
Region is guarded, cannot modify
		The Vim Controller has defined guarded areas in the text,
		which you cannot change.  Also sets the current buffer, if
		necessary.

							*E532*
The defineAnnoType highlighting color name is too long
		The maximum length of the "fg" or "bg" color argument in the
		defineAnnoType command is 32 characters.
		New in version 2.5.

							*E656*
Writes of unmodified buffers forbidden
		Writes of unmodified buffers that were opened from the
		Vim Controller are not possible.

							*E657*
Partial writes disallowed
		Partial writes for buffers that were opened from the
		Vim Controller are not allowed.

							*E658*
Connection lost for this buffer
		The Vim Controller has become confused about the state of
		this file.  Rather than risk data corruption, it has severed
		the connection for this file.  Vim will take over
		responsibility for saving changes to this file and the
		Vim Controller will no longer know of these changes.

							*E744*
Read-only file
		Vim normally allows changes to a read-only file and only
		enforces the read-only rule if you try to write the file.
		However, NetBeans does not let you make changes to a file
		which is read-only and becomes confused if Vim does this.
		So Vim does not allow modifications to files when run
		in NetBeans mode.

==============================================================================
5. Running Vim in NetBeans mode				*netbeans-run*

There are two different ways to run Vim in NetBeans mode:

	+ an IDE may start Vim with the |-nb| command line argument
	+ NetBeans can be started from within Vim with the |:nbstart| command

Vim uses a 3 second timeout on trying to make the connection.

							*netbeans-parameters*
Three forms can be used to setup the NetBeans connection parameters.
When started from the command line, the |-nb| command line argument may be:

	-nb={fname}				from a file
	-nb:{hostname}:{addr}:{password}	directly
	-nb					from a file or environment

When started from within Vim, the |:nbstart| optional argument may be:

	={fname}				from a file
	:{hostname}:{addr}:{password}	        directly
	<MISSING ARGUMENT>			from a file or environment

							*E660* *E668*
When NetBeans is started from the command line, for security reasons, the best
method is to write the information in a file readable only by the user.  The
name of the file can be passed with the "-nb={fname}" argument or, when "-nb"
is used without a parameter, the environment variable "__NETBEANS_CONINFO".
The file must contain these three lines, in any order:

	host={hostname}
	port={addr}
	auth={password}

Other lines are ignored.  The Vim Controller is responsible for deleting the
file afterwards.

{hostname} is the name of the machine where Vim Controller is running.  When
omitted the environment variable "__NETBEANS_HOST" is used or the default
"localhost".

{addr} is the port number for the NetBeans interface.  When omitted the
environment variable "__NETBEANS_SOCKET" is used or the default 3219.

{password} is the password for connecting to NetBeans.  When omitted the
environment variable "__NETBEANS_VIM_PASSWORD" is used or "changeme".

Vim will initiate a socket connection (client side) to the specified host and
port upon startup. The password will be sent with the AUTH event when the
connection has been established.


==============================================================================
6. NetBeans protocol					*netbeans-protocol*

The communication between the Vim Controller and Vim uses plain text
messages.  This protocol was first designed to work with the external editor
module of NetBeans.  Later it was extended to work with Agide (A-A-P GUI IDE,
see http://www.a-a-p.org) and then with other IDE. The extensions are marked
with "version 2.1".

Version 2.2 of the protocol has several minor changes which should only affect
NetBeans users (ie, not Agide users).  However, a bug was fixed which could
cause confusion.  The netbeans_saved() function sent a "save" protocol
command.  In protocol version 2.1 and earlier this was incorrectly interpreted
as a notification that a write had taken place.  In reality, it told NetBeans
to save the file so multiple writes were being done.  This caused various
problems and has been fixed in 2.2.  To decrease the likelihood of this
confusion happening again, netbeans_saved() has been renamed to
netbeans_save_buffer().

We are now at version 2.5.  For the differences between 2.4 and 2.5 search for
"2.5" below.

The messages are currently sent over a socket.  Since the messages are in
plain UTF-8 text this protocol could also be used with any other communication
mechanism.

Netbeans messages are processed when Vim is idle, waiting for user input.
When Vim is run in non-interactive mode, for example when running an automated
test case that sources a Vim script, the idle loop may not be called often
enough. In that case, insert |:sleep| commands in the Vim script. The |:sleep|
command does invoke Netbeans messages processing.

6.1 Kinds of messages		|nb-messages|
6.2 Terms			|nb-terms|
6.3 Commands			|nb-commands|
6.4 Functions and Replies	|nb-functions|
6.5 Events			|nb-events|
6.6 Special messages		|nb-special|
6.7 Protocol errors		|nb-protocol_errors|


6.1 Kinds of messages					*nb-messages*

There are four kinds of messages:

kind		direction	comment ~
Command		IDE -> editor	no reply necessary
Function	IDE -> editor	editor must send back a reply
Reply		editor -> IDE	only in response to a Function
Event		editor -> IDE	no reply necessary

The messages are sent as a single line with a terminating newline character.
Arguments are separated by a single space.  The first item of the message
depends on the kind of message:

kind		first item		example ~
Command		bufID:name!seqno	11:showBalloon!123 "text"
Function	bufID:name/seqno	11:getLength/123
Reply		seqno			123 5000
Event		bufID:name=seqno	11:keyCommand=123 "S-F2"



6.2 Terms						*nb-terms*

bufID		Buffer number.  A message may be either for a specific buffer
		or generic.  Generic messages use a bufID of zero.  NOTE: this
		buffer ID is assigned by the IDE, it is not Vim's buffer
		number.  The bufID must be a sequentially rising number,
		starting at one.  When the 'switchbuf' option is set to
		"usetab" and the "bufID" buffer is not found in the current
		tab page, the netbeans commands and functions that set this
		buffer as the current buffer will jump to the first open
		window that contains this buffer in other tab pages instead of
		replacing the buffer in the current window.

seqno		The IDE uses a sequence number for Commands and Functions.  A
		Reply must use the sequence number of the Function that it is
		associated with.  A zero sequence number can be used for
		Events (the seqno of the last received Command or Function can
		also be used).

string		Argument in double quotes.  Text is in UTF-8 encoding.  This
		means ASCII is passed as-is.  Special characters are
		represented with a backslash:
			\"	double quote
			\n	newline
			\r	carriage-return
			\t	tab (optional, also works literally)
			\\	backslash
		NUL bytes are not allowed!

boolean		Argument with two possible values:
			T	true
			F	false

number		Argument with a decimal number.

color		Argument with either a decimal number, "none" (without the
		quotes) or the name of a color (without the quotes) defined
		both in the color list in |highlight-ctermfg| and in the color
		list in |gui-colors|.
		New in version 2.5.

offset		A number argument that indicates a byte position in a buffer.
		The first byte has offset zero.  Line breaks are counted for
		how they appear in the file (CR/LF counts for two bytes).
		Note that a multi-byte character is counted for the number of
		bytes it takes.

lnum/col	Argument with a line number and column number position.  The
		line number starts with one, the column is the byte position,
		starting with zero.  Note that a multi-byte character counts
		for several columns.

pathname	String argument: file name with full path.


6.3 Commands						*nb-commands*

actionMenuItem	Not implemented.

actionSensitivity
		Not implemented.

addAnno serNum typeNum off len
		Place an annotation in this buffer.
		Arguments:
		   serNum	number	serial number of this placed
					annotation, used to be able to remove
					it
		   typeNum	number	sequence number of the annotation
					defined with defineAnnoType for this
					buffer
		   off		number	offset where annotation is to be placed
		   len		number	not used
		In version 2.1 "lnum/col" can be used instead of "off".

balloonResult text
		Not implemented.

close		Close the buffer.  This leaves us without current buffer, very
		dangerous to use!

create		Creates a buffer without a name.  Replaces the current buffer
		(it's hidden when it was changed).
		The Vim Controller should use this as the first command for a
		file that is being opened.  The sequence of commands could be:
			create
			setCaretListener	(ignored)
			setModified		(no effect)
			setContentType		(ignored)
			startDocumentListen
			setTitle
			setFullName

defineAnnoType typeNum typeName tooltip glyphFile fg bg
		Define a type of annotation for this buffer.
		Arguments:
		   typeNum	number	sequence number (not really used)
		   typeName	string	name that identifies this annotation
		   tooltip	string	not used
		   glyphFile	string	name of icon file
		   fg		color	foreground color for line highlighting
		   bg		color	background color for line highlighting
		Vim will define a sign for the annotation.
		When color is a number, this is the "#rrggbb" Red, Green and
		Blue values of the color (see |gui-colors|) and the
		highlighting is only defined for GVim.
		When color is a name, this color is defined both for Vim
		running in a color terminal and for GVim.
		When both "fg" and "bg" are "none" no line highlighting is
		used (new in version 2.1).
		When "glyphFile" is empty, no text sign is used (new in
		version 2.1).
		When "glyphFile" is one or two characters long, a text sign is
		defined (new in version 2.1).
		Note: the annotations will be defined in sequence, and the
		sequence number is later used with addAnno.

editFile pathname
		Set the name for the buffer and edit the file "pathname", a
		string argument.
		Normal way for the IDE to tell the editor to edit a file.

		You must set a bufId different of 0 with this command to
		assign a bufId to the buffer. It will trigger an event
		fileOpened with a bufId of 0 but the buffer has been assigned.

		If the IDE is going to pass the file text to the editor use
		these commands instead:
			setFullName
			insert
			initDone
		New in version 2.1.

enableBalloonEval
		Not implemented.

endAtomic	End an atomic operation.  The changes between "startAtomic"
		and "endAtomic" can be undone as one operation.  But it's not
		implemented yet.  Redraw when necessary.

guard off len
		Mark an area in the buffer as guarded.  This means it cannot
		be edited.  "off" and "len" are numbers and specify the text
		to be guarded.

initDone	Mark the buffer as ready for use.  Implicitly makes the buffer
		the current buffer.  Fires the BufReadPost autocommand event.

insertDone
		Sent by Vim Controller to tell Vim an initial file insert is
		done.  This triggers a read message being printed.  Prior to
		version 2.3, no read messages were displayed after opening a
		file.  New in version 2.3.

moveAnnoToFront serNum
		Not implemented.

netbeansBuffer isNetbeansBuffer
		If "isNetbeansBuffer" is "T" then this buffer is "owned" by
		NetBeans.
		New in version 2.2.

putBufferNumber pathname
		Associate a buffer number with the Vim buffer by the name
		"pathname", a string argument.  To be used when the editor
		reported editing another file to the IDE and the IDE needs to
		tell the editor what buffer number it will use for this file.
		Also marks the buffer as initialized.
		New in version 2.1.

raise		Bring the editor to the foreground.
		Only when Vim is run with a GUI.
		New in version 2.1.

removeAnno serNum
		Remove a previously placed annotation for this buffer.
		"serNum" is the same number used in addAnno.

save		Save the buffer when it was modified.  The other side of the
		interface is expected to write the buffer and invoke
		"setModified" to reset the "changed" flag of the buffer.
		The writing is skipped when one of these conditions is true:
		- 'write' is not set
		- the buffer is read-only
		- the buffer does not have a file name
		- 'buftype' disallows writing
		New in version 2.2.

saveDone
		Sent by Vim Controller to tell Vim a save is done.  This
		triggers a save message being printed.  Prior to version 2.3,
		no save messages were displayed after a save.
		New in version 2.3.

setAsUser	Not implemented.

setBufferNumber pathname
		Associate a buffer number with Vim buffer by the name
		"pathname".  To be used when the editor reported editing
		another file to the IDE and the IDE needs to tell the editor
		what buffer number it will use for this file.
		Has the side effect of making the buffer the current buffer.
		See "putBufferNumber" for a more useful command.

setContentType
		Not implemented.

setDot off	Make the buffer the current buffer and set the cursor at the
		specified position.  If the buffer is open in another window
		than make that window the current window.
		If there are folds they are opened to make the cursor line
		visible.
		In version 2.1 "lnum/col" can be used instead of "off".

setExitDelay seconds
		Set the delay for exiting to "seconds", a number.
		This delay is used to give the IDE a chance to handle things
		before really exiting.  The default delay is two seconds.
		New in version 2.1.
		Obsolete in version 2.3.

setFullName pathname
		Set the file name to be used for a buffer to "pathname", a
		string argument.
		Used when the IDE wants to edit a file under control of the
		IDE.  This makes the buffer the current buffer, but does not
		read the file.  "insert" commands will be used next to set the
		contents.

setLocAndSize	Not implemented.

setMark		Not implemented.

setModified modified
		When the boolean argument "modified" is "T" mark the buffer as
		modified, when it is "F" mark it as unmodified.

setModtime time
		Update a buffers modification time after the file has been
		saved directly by the Vim Controller.
		New in version 2.3.

setReadOnly
		Set a file as readonly
		Implemented in version 2.3.

setStyle	Not implemented.

setTitle name
		Set the title for the buffer to "name", a string argument.
		The title is only used for the Vim Controller functions, not
		by Vim.

setVisible visible
		When the boolean argument "visible" is "T", goto the buffer.
		The "F" argument does nothing.

showBalloon text
		Show a balloon (popup window) at the mouse pointer position,
		containing "text", a string argument.  The balloon should
		disappear when the mouse is moved more than a few pixels.
		Only when Vim is run with a GUI.
		New in version 2.1.

specialKeys
		Map a set of keys (mostly function keys) to be passed back
		to the Vim Controller for processing.  This lets regular IDE
		hotkeys be used from Vim.
		Implemented in version 2.3.

startAtomic	Begin an atomic operation.  The screen will not be updated
		until "endAtomic" is given.

startCaretListen
		Not implemented.

startDocumentListen
		Mark the buffer to report changes to the IDE with the
		"insert" and "remove" events.  The default is to report
		changes.

stopCaretListen
		Not implemented.

stopDocumentListen
		Mark the buffer to stop reporting changes to the IDE.
		Opposite of startDocumentListen.
		NOTE: if "netbeansBuffer" was used to mark this buffer as a
		NetBeans buffer, then the buffer is deleted in Vim.  This is
		for compatibility with Sun Studio 10.

unguard off len
		Opposite of "guard", remove guarding for a text area.
		Also sets the current buffer, if necessary.

version		Not implemented.


6.4 Functions and Replies				*nb-functions*

getDot		Not implemented.

getCursor	Return the current buffer and cursor position.
		The reply is:
			seqno bufID lnum col off
		seqno = sequence number of the function
		bufID = buffer ID of the current buffer (if this is unknown -1
			is used)
		lnum  = line number of the cursor (first line is one)
		col   = column number of the cursor (in bytes, zero based)
		off   = offset of the cursor in the buffer (in bytes)
		New in version 2.1.

getLength	Return the length of the buffer in bytes.
		Reply example for a buffer with 5000 bytes:
			123 5000
		TODO: explain use of partial line.

getMark		Not implemented.

getAnno serNum
		Return the line number of the annotation in the buffer.
		Argument:
			serNum		serial number of this placed annotation
		The reply is:
			123 lnum	line number of the annotation
			123 0		invalid annotation serial number
		New in version 2.4.

getModified	When a buffer is specified: Return zero if the buffer does not
		have changes, one if it does have changes.
		When no buffer is specified (buffer number zero): Return the
		number of buffers with changes.  When the result is zero it's
		safe to tell Vim to exit.
		New in version 2.1.

getText		Return the contents of the buffer as a string.
		Reply example for a buffer with two lines
			123 "first line\nsecond line\n"
		NOTE: docs indicate an offset and length argument, but this is
		not implemented.

insert off text
		Insert "text" before position "off".  "text" is a string
		argument, "off" a number.
		"text" should have a "\n" (newline) at the end of each line.
		Or "\r\n" when 'fileformat' is "dos".  When using "insert" in
		an empty buffer Vim will set 'fileformat' accordingly.
		When "off" points to the start of a line the text is inserted
		above this line.  Thus when "off" is zero lines are inserted
		before the first line.
		When "off" points after the start of a line, possibly on the
		NUL at the end of a line, the first line of text is appended
		to this line.  Further lines come below it.
		Possible replies:
			123		no problem
			123 !message	failed
		Note that the message in the reply is not quoted.
		Also sets the current buffer, if necessary.
		Does not move the cursor to the changed text.
		Resets undo information.

remove off length
		Delete "length" bytes of text at position "off".  Both
		arguments are numbers.
		Possible replies:
			123		no problem
			123 !message	failed
		Note that the message in the reply is not quoted.
		Also sets the current buffer, if necessary.

saveAndExit	Perform the equivalent of closing Vim: ":confirm qall".
		If there are no changed files or the user does not cancel the
		operation Vim exits and no result is sent back.  The IDE can
		consider closing the connection as a successful result.
		If the user cancels the operation the number of modified
		buffers that remains is returned and Vim does not exit.
		New in version 2.1.


6.5 Events						*nb-events*

balloonEval off len type
		The mouse pointer rests on text for a short while.  When "len"
		is zero, there is no selection and the pointer is at position
		"off".  When "len" is non-zero the text from position "off" to
		"off" + "len" is selected.
		Only sent after "enableBalloonEval" was used for this buffer.
		"type" is not yet defined.
		Not implemented yet.

balloonText text
		Used when 'ballooneval' is set and the mouse pointer rests on
		some text for a moment.  "text" is a string, the text under
		the mouse pointer.
		Only when Vim is run with a GUI.
		New in version 2.1.

buttonRelease button lnum col
		Report which button was pressed and the location of the cursor
		at the time of the release.  Only for buffers that are owned
		by the Vim Controller.  This event is not sent if the button
		was released while the mouse was in the status line or in a
		separator line.  If col is less than 1 the button release was
		in the sign area.
		New in version 2.2.

disconnect
		Tell the Vim Controller that Vim is exiting and not to try and
		read or write more commands.
		New in version 2.3.

fileClosed	Not implemented.

fileModified	Not implemented.

fileOpened pathname open modified
		A file was opened by the user.
		Arguments:
		   pathname	string	  name of the file
		   open		boolean   always "T"
		   modified	boolean   always "F"

geometry cols rows x y
		Report the size and position of the editor window.
		Arguments:
		   cols		number	  number of text columns
		   rows		number	  number of text rows
		   x		number	  pixel position on screen
		   y		number	  pixel position on screen
		Only works for Motif.

insert off text
		Text "text" has been inserted in Vim at position "off".
		Only fired when enabled, see "startDocumentListen".

invokeAction	Not implemented.

keyCommand keyName
		Reports a special key being pressed with name "keyName", which
		is a string.
		Supported key names:
			F1		function key 1
			F2		function key 2
			...
			F12		function key 12

			' '		space (without the quotes)
			!		exclamation mark
			...		any other ASCII printable character
			~		tilde

			X		any unrecognized key

		The key may be prepended by "C", "S" and/or "M" for Control,
		Shift and Meta (Alt) modifiers.  If there is a modifier a dash
		is used to separate it from the key name.  For example:
		"C-F2".
		ASCII characters are new in version 2.1.

keyAtPos keyName lnum/col
		Like "keyCommand" and also report the line number and column
		of the cursor.
		New in version 2.1.

killed		A file was deleted or wiped out by the user and the buffer
		annotations have been removed.  The bufID number for this
		buffer has become invalid.  Only for files that have been
		assigned a bufID number by the IDE.

newDotAndMark off off
		Reports the position of the cursor being at "off" bytes into
		the buffer.  Only sent just before a "keyCommand" event.

quit		Not implemented.

remove off len
		Text was deleted in Vim at position "off" with byte length
		"len".
		Only fired when enabled, see "startDocumentListen".

revert		Not implemented.

save		The buffer has been saved and is now unmodified.
		Only fired when enabled, see "startDocumentListen".

startupDone	The editor has finished its startup work and is ready for
		editing files.
		New in version 2.1.

unmodified	The buffer is now unmodified.
		Only fired when enabled, see "startDocumentListen".

version vers	Report the version of the interface implementation.  Vim
		reports "2.4" (including the quotes).


6.6 Special messages					*nb-special*

These messages do not follow the style of the messages above.  They are
terminated by a newline character.

ACCEPT		Not used.

AUTH password	editor -> IDE: First message that the editor sends to the IDE.
		Must contain the password for the socket server, as specified
		with the |-nb| argument.  No quotes are used!

DISCONNECT	IDE -> editor: break the connection.  The editor will exit.
		The IDE must only send this message when there are no unsaved
		changes!

DETACH		IDE -> editor: break the connection without exiting the
		editor.  Used when the IDE exits without bringing down the
		editor as well.
		New in version 2.1.

REJECT		Not used.


6.7 Protocol errors					*nb-protocol_errors*

These errors occur when a message violates the protocol:
*E627* *E628* *E629* *E632* *E633* *E634* *E635* *E636*
*E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
*E647* *E648* *E649* *E650* *E651* *E652*


==============================================================================
7. NetBeans commands					*netbeans-commands*

							*:nbstart* *E511* *E838*
:nbs[tart] {connection}	Start a new Netbeans session with {connection} as the
			socket connection parameters.  The format of
			{connection} is described in |netbeans-parameters|.
			At any time, one may check if the netbeans socket is
			connected by running the command:
			':echo has("netbeans_enabled")'

							*:nbclose*
:nbc[lose]		Close the current NetBeans session. Remove all placed
			signs.

							*:nbkey*
:nb[key] {key}		Pass the {key} to the Vim Controller for processing.
			When a hot-key has been installed with the specialKeys
			command, this command can be used to generate a hotkey
			message to the Vim Controller.
			This command can also be used to pass any text to the
			Vim  Controller. It is used by Pyclewn, for example,
			to build the complete set of gdb commands as Vim user
			commands.
			The events newDotAndMark, keyCommand and keyAtPos are
			generated (in this order).


==============================================================================
8. Known problems					*netbeans-problems*

NUL bytes are not possible.  For editor -> IDE they will appear as NL
characters.  For IDE -> editor they cannot be inserted.

A NetBeans session may be initiated with Vim running in a terminal, and
continued later in a GUI environment after running the |:gui| command. In this
case, the highlighting defined for the NetBeans annotations may be cleared
when the ":gui" command sources .gvimrc and this file loads a colorscheme
that runs the command ":highlight clear".
New in version 2.5.


==============================================================================
9. Debugging NetBeans protocol				*netbeans-debugging*

To debug the Vim protocol, you must first compile Vim with debugging support
and NetBeans debugging support.  See |netbeans-configure| for instructions
about Vim compiling and how to enable debug support.

When running Vim, set the following environment variables:

    export SPRO_GVIM_DEBUG=netbeans.log
    export SPRO_GVIM_DLEVEL=0xffffffff

Vim will then log all the incoming and outgoing messages of the NetBeans
protocol to the file netbeans.log .

The content of netbeans.log after a session looks like this:
Tue May 20 17:19:27 2008
EVT: 0:startupDone=0
CMD 1: (1) create
CMD 2: (1) setTitle "testfile1.txt"
CMD 3: (1) setFullName "testfile1.txt"
EVT(suppressed): 1:remove=3 0 -1
EVT: 1:fileOpened=0 "d:\\work\\vimWrapper\\vimWrapper2\\pyvimwrapper\\tests\\testfile1.txt" T F
CMD 4: (1) initDone
FUN 5: (0) getCursor
REP 5: 1 1 0 0
CMD 6: (2) create
CMD 7: (2) setTitle "testfile2.txt"
CMD 8: (2) setFullName "testfile2.txt"
EVT(suppressed): 2:remove=8 0 -1
EVT: 2:fileOpened=0 "d:\\work\\vimWrapper\\vimWrapper2\\pyvimwrapper\\tests\\testfile2.txt" T F
CMD 9: (2) initDone


==============================================================================
10. NetBeans External Editor

NOTE: This information is obsolete!  Only relevant if you are using an old
version of NetBeans.


10.1. Downloading NetBeans			*netbeans-download*

The NetBeans IDE is available for download from netbeans.org.  You can download
a released version, download sources, or use CVS to download the current
source tree.  If you choose to download sources, follow directions from
netbeans.org on building NetBeans.

Depending on the version of NetBeans you download, you may need to do further
work to get the required External Editor module.  This is the module which lets
NetBeans work with gvim (or xemacs :-).  See http://externaleditor.netbeans.org
for details on downloading this module if your NetBeans release does not have
it.

For C, C++, and Fortran support you will also need the cpp module.  See
http://cpp.netbeans.org for information regarding this module.

You can also download Sun ONE Studio from Sun Microsystems, Inc for a 30 day
free trial.  See http://www.sun.com for further details.


10.2. NetBeans Key Bindings			*netbeans-keybindings*

Vim understands a number of key bindings that execute NetBeans commands.
These are typically all the Function key combinations.  To execute a NetBeans
command, the user must press the Pause key followed by a NetBeans key binding.
For example, in order to compile a Java file, the NetBeans key binding is
"F9".  So, while in vim, press "Pause F9" to compile a java file.  To toggle a
breakpoint at the current line, press "Pause Shift F8".

The Pause key is Function key 21.  If you don't have a working Pause key and
want to use F8 instead, use: >

	:map <F8> <F21>

The External Editor module dynamically reads the NetBeans key bindings so vim
should always have the latest key bindings, even when NetBeans changes them.


10.3. Preparing NetBeans for Vim		*netbeans-preparation*

In order for NetBeans to work with vim, the NetBeans External Editor module
must be loaded and enabled.  If you have a Sun ONE Studio Enterprise Edition
then this module should be loaded and enabled.  If you have a NetBeans release
you may need to find another way of obtaining this open source module.

You can check if you have this module by opening the Tools->Options dialog
and drilling down to the "Modules" list (IDE Configuration->System->Modules).
If your Modules list has an entry for "External Editor" you must make sure
it is enabled (the "Enabled" property should have the value "True").  If your
Modules list has no External Editor see the next section on |obtaining-exted|.


10.4. Obtaining the External Editor Module	*obtaining-exted*

There are 2 ways of obtaining the External Editor module.  The easiest way
is to use the NetBeans Update Center to download and install the module.
Unfortunately, some versions do not have this module in their update
center.  If you cannot download via the update center you will need to
download sources and build the module.  I will try and get the module
available from the NetBeans Update Center so building will be unnecessary.
Also check http://externaleditor.netbeans.org for other availability options.

To download the External Editor sources via CVS and build your own module,
see http://externaleditor.netbeans.org and http://www.netbeans.org.
Unfortunately, this is not a trivial procedure.


10.5. Setting up NetBeans to run with Vim	*netbeans-setup*

Assuming you have loaded and enabled the NetBeans External Editor module
as described in |netbeans-preparation| all you need to do is verify that
the gvim command line is properly configured for your environment.

Open the Tools->Options dialog and open the Editing category.  Select the
External Editor.  The right hand pane should contain a Properties tab and
an Expert tab.  In the Properties tab make sure the "Editor Type" is set
to "Vim".  In the Expert tab make sure the "Vim Command" is correct.

You should be careful if you change the "Vim Command".  There are command
line options there which must be there for the connection to be properly
set up.  You can change the command name but that's about it.  If your gvim
can be found by your $PATH then the Vim Command can start with "gvim".  If
you don't want gvim searched from your $PATH then hard code in the full
Unix path name.  At this point you should get a gvim for any source file
you open in NetBeans.

If some files come up in gvim and others (with different file suffixes) come
up in the default NetBeans editor you should verify the MIME type in the
Expert tab MIME Type property.  NetBeans is MIME oriented and the External
Editor will only open MIME types specified in this property.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�ZW�%�\�\vim80/doc/fold.txtnu�[���*fold.txt*      For Vim version 8.0.  Last change: 2017 Mar 18


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Folding						*Folding* *folding* *folds*

You can find an introduction on folding in chapter 28 of the user manual.
|usr_28.txt|

1. Fold methods		|fold-methods|
2. Fold commands	|fold-commands|
3. Fold options		|fold-options|
4. Behavior of folds	|fold-behavior|

{Vi has no Folding}
{not available when compiled without the |+folding| feature}

==============================================================================
1. Fold methods					*fold-methods*

The folding method can be set with the 'foldmethod' option.

When setting 'foldmethod' to a value other than "manual", all folds are
deleted and new ones created.  Switching to the "manual" method doesn't remove
the existing folds.  This can be used to first define the folds automatically
and then change them manually.

There are six methods to select folds:
	manual		manually define folds
	indent		more indent means a higher fold level
	expr		specify an expression to define folds
	syntax		folds defined by syntax highlighting
	diff		folds for unchanged text
	marker		folds defined by markers in the text


MANUAL						*fold-manual*

Use commands to manually define the fold regions.  This can also be used by a
script that parses text to find folds.

The level of a fold is only defined by its nesting.  To increase the fold
level of a fold for a range of lines, define a fold inside it that has the
same lines.

The manual folds are lost when you abandon the file.  To save the folds use
the |:mkview| command.  The view can be restored later with |:loadview|.


INDENT						*fold-indent*

The folds are automatically defined by the indent of the lines.

The foldlevel is computed from the indent of the line, divided by the
'shiftwidth' (rounded down).  A sequence of lines with the same or higher fold
level form a fold, with the lines with a higher level forming a nested fold.

The nesting of folds is limited with 'foldnestmax'.

Some lines are ignored and get the fold level of the line above or below it,
whichever is lower.  These are empty or white lines and lines starting
with a character in 'foldignore'.  White space is skipped before checking for
characters in 'foldignore'.  For C use "#" to ignore preprocessor lines.

When you want to ignore lines in another way, use the "expr" method.  The
|indent()| function can be used in 'foldexpr' to get the indent of a line.


EXPR						*fold-expr*

The folds are automatically defined by their foldlevel, like with the "indent"
method.  The value of the 'foldexpr' option is evaluated to get the foldlevel
of a line.  Examples:
This will create a fold for all consecutive lines that start with a tab: >
	:set foldexpr=getline(v:lnum)[0]==\"\\t\"
This will call a function to compute the fold level: >
	:set foldexpr=MyFoldLevel(v:lnum)
This will make a fold out of paragraphs separated by blank lines: >
	:set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
This does the same: >
	:set foldexpr=getline(v:lnum-1)=~'^\\s*$'&&getline(v:lnum)=~'\\S'?'>1':1

Note that backslashes must be used to escape characters that ":set" handles
differently (space, backslash, double quote, etc., see |option-backslash|).

These are the conditions with which the expression is evaluated:
- The current buffer and window are set for the line.
- The variable "v:lnum" is set to the line number.
- The result is used for the fold level in this way:
  value			meaning ~
  0			the line is not in a fold
  1, 2, ..		the line is in a fold with this level
  -1			the fold level is undefined, use the fold level of a
			line before or after this line, whichever is the
			lowest.
  "="			use fold level from the previous line
  "a1", "a2", ..	add one, two, .. to the fold level of the previous
			line, use the result for the current line
  "s1", "s2", ..	subtract one, two, .. from the fold level of the
			previous line, use the result for the next line
  "<1", "<2", ..	a fold with this level ends at this line
  ">1", ">2", ..	a fold with this level starts at this line

It is not required to mark the start (end) of a fold with ">1" ("<1"), a fold
will also start (end) when the fold level is higher (lower) than the fold
level of the previous line.

There must be no side effects from the expression.  The text in the buffer,
cursor position, the search patterns, options etc. must not be changed.
You can change and restore them if you are careful.

If there is some error in the expression, or the resulting value isn't
recognized, there is no error message and the fold level will be zero.
For debugging the 'debug' option can be set to "msg", the error messages will
be visible then.

Note: Since the expression has to be evaluated for every line, this fold
method can be very slow!

Try to avoid the "=", "a" and "s" return values, since Vim often has to search
backwards for a line for which the fold level is defined.  This can be slow.

An example of using "a1" and "s1": For a multi-line C comment, a line
containing "/*" would return "a1" to start a fold, and a line containing "*/"
would return "s1" to end the fold after that line: >
  if match(thisline, '/\*') >= 0
    return 'a1'
  elseif match(thisline, '\*/') >= 0
    return 's1'
  else
    return '='
  endif
However, this won't work for single line comments, strings, etc.

|foldlevel()| can be useful to compute a fold level relative to a previous
fold level.  But note that foldlevel() may return -1 if the level is not known
yet.  And it returns the level at the start of the line, while a fold might
end in that line.

It may happen that folds are not updated properly.  You can use |zx| or |zX|
to force updating folds.


SYNTAX						*fold-syntax*

A fold is defined by syntax items that have the "fold" argument. |:syn-fold|

The fold level is defined by nesting folds.  The nesting of folds is limited
with 'foldnestmax'.

Be careful to specify proper syntax syncing.  If this is not done right, folds
may differ from the displayed highlighting.  This is especially relevant when
using patterns that match more than one line.  In case of doubt, try using
brute-force syncing: >
	:syn sync fromstart


DIFF						*fold-diff*

The folds are automatically defined for text that is not part of a change or
close to a change.

This method only works properly when the 'diff' option is set for the current
window and changes are being displayed.  Otherwise the whole buffer will be
one big fold.

The 'diffopt' option can be used to specify the context.  That is, the number
of lines between the fold and a change that are not included in the fold.  For
example, to use a context of 8 lines: >
	:set diffopt=filler,context:8
The default context is six lines.

When 'scrollbind' is also set, Vim will attempt to keep the same folds open in
other diff windows, so that the same text is visible.


MARKER						*fold-marker*

Markers in the text tell where folds start and end.  This allows you to
precisely specify the folds.  This will allow deleting and putting a fold,
without the risk of including the wrong lines.  The 'foldtext' option is
normally set such that the text before the marker shows up in the folded line.
This makes it possible to give a name to the fold.

Markers can have a level included, or can use matching pairs.  Including a
level is easier, you don't have to add end markers and avoid problems with
non-matching marker pairs.  Example: >
	/* global variables {{{1 */
	int varA, varB;

	/* functions {{{1 */
	/* funcA() {{{2 */
	void funcA() {}

	/* funcB() {{{2 */
	void funcB() {}

A fold starts at a "{{{" marker.  The following number specifies the fold
level.  What happens depends on the difference between the current fold level
and the level given by the marker:
1. If a marker with the same fold level is encountered, the previous fold
   ends and another fold with the same level starts.
2. If a marker with a higher fold level is found, a nested fold is started.
3. If a marker with a lower fold level is found, all folds up to and including
   this level end and a fold with the specified level starts.

The number indicates the fold level.  A zero cannot be used (a marker with
level zero is ignored).  You can use "}}}" with a digit to indicate the level
of the fold that ends.  The fold level of the following line will be one less
than the indicated level.  Note that Vim doesn't look back to the level of the
matching marker (that would take too much time).  Example: >

	{{{1
	fold level here is 1
	{{{3
	fold level here is 3
	}}}3
	fold level here is 2

You can also use matching pairs of "{{{" and "}}}" markers to define folds.
Each "{{{" increases the fold level by one, each "}}}" decreases the fold
level by one.  Be careful to keep the markers matching!  Example: >

	{{{
	fold level here is 1
	{{{
	fold level here is 2
	}}}
	fold level here is 1

You can mix using markers with a number and without a number.  A useful way of
doing this is to use numbered markers for large folds, and unnumbered markers
locally in a function.  For example use level one folds for the sections of
your file like "structure definitions", "local variables" and "functions".
Use level 2 markers for each definition and function,  Use unnumbered markers
inside functions.  When you make changes in a function to split up folds, you
don't have to renumber the markers.

The markers can be set with the 'foldmarker' option.  It is recommended to
keep this at the default value of "{{{,}}}", so that files can be exchanged
between Vim users.  Only change it when it is required for the file (e.g., it
contains markers from another folding editor, or the default markers cause
trouble for the language of the file).

							*fold-create-marker*
"zf" can be used to create a fold defined by markers.  Vim will insert the
markers for you.  Vim will append the start and end marker, as specified with
'foldmarker'.  The markers are appended to the end of the line.
'commentstring' is used if it isn't empty.
This does not work properly when:
- The line already contains a marker with a level number.  Vim then doesn't
  know what to do.
- Folds nearby use a level number in their marker which gets in the way.
- The line is inside a comment, 'commentstring' isn't empty and nested
  comments don't work.  For example with C: adding /* {{{ */ inside a comment
  will truncate the existing comment.  Either put the marker before or after
  the comment, or add the marker manually.
Generally it's not a good idea to let Vim create markers when you already have
markers with a level number.

							*fold-delete-marker*
"zd" can be used to delete a fold defined by markers.  Vim will delete the
markers for you.  Vim will search for the start and end markers, as specified
with 'foldmarker', at the start and end of the fold.  When the text around the
marker matches with 'commentstring', that text is deleted as well.
This does not work properly when:
- A line contains more than one marker and one of them specifies a level.
  Only the first one is removed, without checking if this will have the
  desired effect of deleting the fold.
- The marker contains a level number and is used to start or end several folds
  at the same time.

==============================================================================
2. Fold commands				*fold-commands* *E490*

All folding commands start with "z".  Hint: the "z" looks like a folded piece
of paper, if you look at it from the side.


CREATING AND DELETING FOLDS ~
							*zf* *E350*
zf{motion}  or
{Visual}zf	Operator to create a fold.
		This only works when 'foldmethod' is "manual" or "marker".
		The new fold will be closed for the "manual" method.
		'foldenable' will be set.
		Also see |fold-create-marker|.

							*zF*
zF		Create a fold for [count] lines.  Works like "zf".

:{range}fo[ld]						*:fold* *:fo*
		Create a fold for the lines in {range}.  Works like "zf".

							*zd* *E351*
zd		Delete one fold at the cursor.  When the cursor is on a folded
		line, that fold is deleted.  Nested folds are moved one level
		up.  In Visual mode one level of all folds (partially) in the
		selected area are deleted.
		Careful: This easily deletes more folds than you expect and
		there is no undo for manual folding.
		This only works when 'foldmethod' is "manual" or "marker".
		Also see |fold-delete-marker|.

							*zD*
zD		Delete folds recursively at the cursor.  In Visual mode all
		folds (partially) in the selected area and all nested folds in
		them are deleted.
		This only works when 'foldmethod' is "manual" or "marker".
		Also see |fold-delete-marker|.

							*zE* *E352*
zE		Eliminate all folds in the window.
		This only works when 'foldmethod' is "manual" or "marker".
		Also see |fold-delete-marker|.


OPENING AND CLOSING FOLDS ~

A fold smaller than 'foldminlines' will always be displayed like it was open.
Therefore the commands below may work differently on small folds.

							*zo*
zo		Open one fold under the cursor.  When a count is given, that
		many folds deep will be opened.  In Visual mode one level of
		folds is opened for all lines in the selected area.

							*zO*
zO		Open all folds under the cursor recursively.  Folds that don't
		contain the cursor line are unchanged.
		In Visual mode it opens all folds that are in the selected
		area, also those that are only partly selected.

							*zc*
zc		Close one fold under the cursor.  When a count is given, that
		many folds deep are closed.  In Visual mode one level of folds
		is closed for all lines in the selected area.
		'foldenable' will be set.

							*zC*
zC		Close all folds under the cursor recursively.  Folds that
		don't contain the cursor line are unchanged.
		In Visual mode it closes all folds that are in the selected
		area, also those that are only partly selected.
		'foldenable' will be set.

							*za*
za		When on a closed fold: open it.  When folds are nested, you
		may have to use "za" several times.  When a count is given,
		that many closed folds are opened.
		When on an open fold: close it and set 'foldenable'.  This
		will only close one level, since using "za" again will open
		the fold.  When a count is given that many folds will be
		closed (that's not the same as repeating "za" that many
		times).

							*zA*
zA		When on a closed fold: open it recursively.
		When on an open fold: close it recursively and set
		'foldenable'.

							*zv*
zv		View cursor line: Open just enough folds to make the line in
		which the cursor is located not folded.

							*zx*
zx		Update folds: Undo manually opened and closed folds: re-apply
		'foldlevel', then do "zv": View cursor line.
		Also forces recomputing folds.  This is useful when using
		'foldexpr' and the buffer is changed in a way that results in
		folds not to be updated properly.

							*zX*
zX		Undo manually opened and closed folds: re-apply 'foldlevel'.
		Also forces recomputing folds, like |zx|.

							*zm*
zm		Fold more: Subtract |v:count1| from 'foldlevel'.  If 'foldlevel' was
		already zero nothing happens.
		'foldenable' will be set.

							*zM*
zM		Close all folds: set 'foldlevel' to 0.
		'foldenable' will be set.

							*zr*
zr		Reduce folding: Add |v:count1| to 'foldlevel'.

							*zR*
zR		Open all folds.  This sets 'foldlevel' to highest fold level.

							*:foldo* *:foldopen*
:{range}foldo[pen][!]
		Open folds in {range}.  When [!] is added all folds are
		opened.  Useful to see all the text in {range}.  Without [!]
		one level of folds is opened.

							*:foldc* *:foldclose*
:{range}foldc[lose][!]
		Close folds in {range}.  When [!] is added all folds are
		closed.  Useful to hide all the text in {range}.  Without [!]
		one level of folds is closed.

							*zn*
zn		Fold none: reset 'foldenable'.  All folds will be open.

							*zN*
zN		Fold normal: set 'foldenable'.  All folds will be as they
		were before.

							*zi*
zi		Invert 'foldenable'.


MOVING OVER FOLDS ~
							*[z*
[z		Move to the start of the current open fold.  If already at the
		start, move to the start of the fold that contains it.  If
		there is no containing fold, the command fails.
		When a count is used, repeats the command [count] times.

							*]z*
]z		Move to the end of the current open fold.  If already at the
		end, move to the end of the fold that contains it.  If there
		is no containing fold, the command fails.
		When a count is used, repeats the command [count] times.

							*zj*
zj		Move downwards to the start of the next fold.  A closed fold
		is counted as one fold.
		When a count is used, repeats the command [count] times.
		This command can be used after an |operator|.

							*zk*
zk		Move upwards to the end of the previous fold.  A closed fold
		is counted as one fold.
		When a count is used, repeats the command [count] times.
		This command can be used after an |operator|.


EXECUTING COMMANDS ON FOLDS ~

:[range]foldd[oopen] {cmd}			*:foldd* *:folddoopen*
		Execute {cmd} on all lines that are not in a closed fold.
		When [range] is given, only these lines are used.
		Each time {cmd} is executed the cursor is positioned on the
		line it is executed for.
		This works like the ":global" command: First all lines that
		are not in a closed fold are marked.  Then the {cmd} is
		executed for all marked lines.  Thus when {cmd} changes the
		folds, this has no influence on where it is executed (except
		when lines are deleted, of course).
		Example: >
			:folddoopen s/end/loop_end/ge
<		Note the use of the "e" flag to avoid getting an error message
		where "end" doesn't match.

:[range]folddoc[losed] {cmd}			*:folddoc* *:folddoclosed*
		Execute {cmd} on all lines that are in a closed fold.
		Otherwise like ":folddoopen".

==============================================================================
3. Fold options					*fold-options*

COLORS							*fold-colors*

The colors of a closed fold are set with the Folded group |hl-Folded|.  The
colors of the fold column are set with the FoldColumn group |hl-FoldColumn|.
Example to set the colors: >

	:highlight Folded guibg=grey guifg=blue
	:highlight FoldColumn guibg=darkgrey guifg=white


FOLDLEVEL						*fold-foldlevel*

'foldlevel' is a number option: The higher the more folded regions are open.
When 'foldlevel' is 0, all folds are closed.
When 'foldlevel' is positive, some folds are closed.
When 'foldlevel' is very high, all folds are open.
'foldlevel' is applied when it is changed.  After that manually folds can be
opened and closed.
When increased, folds above the new level are opened.  No manually opened
folds will be closed.
When decreased, folds above the new level are closed.  No manually closed
folds will be opened.


FOLDTEXT						*fold-foldtext*

'foldtext' is a string option that specifies an expression.  This expression
is evaluated to obtain the text displayed for a closed fold.  Example: >

    :set foldtext=v:folddashes.substitute(getline(v:foldstart),'/\\*\\\|\\*/\\\|{{{\\d\\=','','g')

This shows the first line of the fold, with "/*", "*/" and "{{{" removed.
Note the use of backslashes to avoid some characters to be interpreted by the
":set" command.  It's simpler to define a function and call that: >

    :set foldtext=MyFoldText()
    :function MyFoldText()
    :  let line = getline(v:foldstart)
    :  let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
    :  return v:folddashes . sub
    :endfunction

Evaluating 'foldtext' is done in the |sandbox|.  The current window is set to
the window that displays the line.  Errors are ignored.

The default value is |foldtext()|.  This returns a reasonable text for most
types of folding.  If you don't like it, you can specify your own 'foldtext'
expression.  It can use these special Vim variables:
	v:foldstart	line number of first line in the fold
	v:foldend	line number of last line in the fold
	v:folddashes	a string that contains dashes to represent the
			foldlevel.
	v:foldlevel	the foldlevel of the fold

In the result a TAB is replaced with a space and unprintable characters are
made into printable characters.

The resulting line is truncated to fit in the window, it never wraps.
When there is room after the text, it is filled with the character specified
by 'fillchars'.

Note that backslashes need to be used for characters that the ":set" command
handles differently: Space, backslash and double-quote. |option-backslash|


FOLDCOLUMN						*fold-foldcolumn*

'foldcolumn' is a number, which sets the width for a column on the side of the
window to indicate folds.  When it is zero, there is no foldcolumn.  A normal
value is 4 or 5.  The minimal useful value is 2, although 1 still provides
some information.  The maximum is 12.

An open fold is indicated with a column that has a '-' at the top and '|'
characters below it.  This column stops where the open fold stops.  When folds
nest, the nested fold is one character right of the fold it's contained in.

A closed fold is indicated with a '+'.

Where the fold column is too narrow to display all nested folds, digits are
shown to indicate the nesting level.

The mouse can also be used to open and close folds by clicking in the
fold column:
- Click on a '+' to open the closed fold at this row.
- Click on any other non-blank character to close the open fold at this row.


OTHER OPTIONS

'foldenable'  'fen':	Open all folds while not set.
'foldexpr'    'fde':	Expression used for "expr" folding.
'foldignore'  'fdi':	Characters used for "indent" folding.
'foldmarker'  'fmr':	Defined markers used for "marker" folding.
'foldmethod'  'fdm':	Name of the current folding method.
'foldminlines' 'fml':	Minimum number of screen lines for a fold to be
			displayed closed.
'foldnestmax' 'fdn':	Maximum nesting for "indent" and "syntax" folding.
'foldopen'    'fdo':	Which kinds of commands open closed folds.
'foldclose'   'fcl':	When the folds not under the cursor are closed.

==============================================================================
4. Behavior of folds					*fold-behavior*

When moving the cursor upwards or downwards and when scrolling, the cursor
will move to the first line of a sequence of folded lines.  When the cursor is
already on a folded line, it moves to the next unfolded line or the next
closed fold.

While the cursor is on folded lines, the cursor is always displayed in the
first column.  The ruler does show the actual cursor position, but since the
line is folded, it cannot be displayed there.

Many movement commands handle a sequence of folded lines like an empty line.
For example, the "w" command stops once in the first column.

When in Insert mode, the cursor line is never folded.  That allows you to see
what you type!

When using an operator, a closed fold is included as a whole.  Thus "dl"
deletes the whole closed fold under the cursor.

For Ex commands that work on buffer lines the range is adjusted to always
start at the first line of a closed fold and end at the last line of a closed
fold.  Thus this command: >
	:s/foo/bar/g
when used with the cursor on a closed fold, will replace "foo" with "bar" in
all lines of the fold.
This does not happen for |:folddoopen| and |:folddoclosed|.

When editing a buffer that has been edited before, the last used folding
settings are used again.  For manual folding the defined folds are restored.
For all folding methods the manually opened and closed folds are restored.
If this buffer has been edited in this window, the values from back then are
used.  Otherwise the values from the window where the buffer was edited last
are used.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�ZV<F/��vim80/doc/usr_32.txtnu�[���*usr_32.txt*	For Vim version 8.0.  Last change: 2010 Jul 20

		     VIM USER MANUAL - by Bram Moolenaar

			      The undo tree


Vim provides multi-level undo.  If you undo a few changes and then make a new
change you create a branch in the undo tree.  This text is about moving
through the branches.

|32.1|	Undo up to a file write
|32.2|	Numbering changes
|32.3|	Jumping around the tree
|32.4|	Time travelling

     Next chapter: |usr_40.txt|  Make new commands
 Previous chapter: |usr_31.txt|  Exploiting the GUI
Table of contents: |usr_toc.txt|

==============================================================================
*32.1*	Undo up to a file write

Sometimes you make several changes, and then discover you want to go back to
when you have last written the file.  You can do that with this command: >

	:earlier 1f

The "f" stands for "file" here.

You can repeat this command to go further back in the past.  Or use a count
different from 1 to go back faster.

If you go back too far, go forward again with: >

	:later 1f

Note that these commands really work in time sequence.  This matters if you
made changes after undoing some changes.  It's explained in the next section.

Also note that we are talking about text writes here.  For writing the undo
information in a file see |undo-persistence|.

==============================================================================
*32.2*	Numbering changes

In section |02.5| we only discussed one line of undo/redo.  But it is also
possible to branch off.  This happens when you undo a few changes and then
make a new change.  The new changes become a branch in the undo tree.

Let's start with the text "one".  The first change to make is to append
" too".  And then move to the first 'o' and change it into 'w'.  We then have
two changes, numbered 1 and 2, and three states of the text:

		one ~
		 |
	      change 1
		 |
	      one too ~
		 |
	      change 2
		 |
	      one two ~

If we now undo one change, back to "one too", and change "one" to "me" we
create a branch in the undo tree:

		one ~
		 |
	      change 1
		 |
	      one too ~
	      /     \
	 change 2  change 3
	    |	      |
	 one two    me too ~

You can now use the |u| command to undo.  If you do this twice you get to
"one".  Use |CTRL-R| to redo, and you will go to "one too".  One more |CTRL-R|
takes you to "me too".  Thus undo and redo go up and down in the tree, using
the branch that was last used.

What matters here is the order in which the changes are made.  Undo and redo
are not considered changes in this context.  After each change you have a new
state of the text.

Note that only the changes are numbered, the text shown in the tree above has
no identifier.  They are mostly referred to by the number of the change above
it.  But sometimes by the number of one of the changes below it, especially
when moving up in the tree, so that you know which change was just undone.

==============================================================================
*32.3*	Jumping around the tree

So how do you get to "one two" now?  You can use this command: >

	:undo 2

The text is now "one two", you are below change 2.  You can use the |:undo|
command to jump to below any change in the tree.

Now make another change: change "one" to "not":

		one ~
		 |
	      change 1
		 |
	      one too ~
	      /     \
	 change 2  change 3
	    |	      |
	 one two    me too ~
	    |
	 change 4
	    |
	 not two ~

Now you change your mind and want to go back to "me too".  Use the |g-|
command.  This moves back in time.  Thus it doesn't walk the tree upwards or
downwards, but goes to the change made before.

You can repeat |g-| and you will see the text change:
	me too ~
	one two ~
	one too ~
	one ~

Use |g+| to move forward in time:
	one ~
	one too ~
	one two ~
	me too ~
	not two ~

Using |:undo| is useful if you know what change you want to jump to.  |g-| and
|g+| are useful if you don't know exactly what the change number is.

You can type a count before |g-| and |g+| to repeat them.

==============================================================================
*32.4*	Time travelling

When you have been working on text for a while the tree grows to become big.
Then you may want to go to the text of some minutes ago.

To see what branches there are in the undo tree use this command: >

	:undolist
<	number changes  time ~
	     3       2  16 seconds ago
	     4       3  5 seconds ago

Here you can see the number of the leaves in each branch and when the change
was made.  Assuming we are below change 4, at "not two", you can go back ten
seconds with this command: >

	:earlier 10s

Depending on how much time you took for the changes you end up at a certain
position in the tree.  The |:earlier| command argument can be "m" for minutes,
"h" for hours and "d" for days.  To go all the way back use a big number: >

	:earlier 100d

To travel forward in time again use the |:later| command: >

	:later 1m

The arguments are "s", "m" and "h", just like with |:earlier|.

If you want even more details, or want to manipulate the information, you can
use the |undotree()| function.  To see what it returns: >

	:echo undotree()

==============================================================================

Next chapter: |usr_40.txt|  Make new commands

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Zʻ���vim80/doc/hangulin.txtnu�[���*hangulin.txt*  For Vim version 8.0.  Last change: 2015 Nov 24


		  VIM REFERENCE MANUAL    by Chi-Deok Hwang and Sung-Hyun Nam


Introduction					*hangul*
------------
It is to input hangul, the Korean language, with Vim GUI version.
If you have a XIM program, you can use another |+xim| feature.
Basically, it is for anybody who has no XIM program.

Compile
-------
Next is a basic option.  You can add any other configure option. >

   ./configure --with-x --enable-multibyte --enable-hangulinput \
            --disable-xim

And you should check feature.h.  If |+hangul_input| feature is enabled
by configure, you can select more options such as keyboard type, 2 bulsik
or 3 bulsik.  You can find keywords like next in there. >

	#define HANGUL_DEFAULT_KEYBOARD 2
	#define ESC_CHG_TO_ENG_MODE
	/* #define X_LOCALE */

Environment variables
---------------------
You should set LANG variable to Korean locale such as ko, ko_KR.eucKR
or ko_KR.UTF-8.
If you set LC_ALL variable, it should be set to Korean locale also.

Vim resource
------------
You may want to set 'encoding' and 'fileencodings'.
Next are examples: >

	:set encoding=euc-kr
	:set encoding=utf-8
	:set fileencodings=ucs-bom,utf-8,cp949,euc-kr,latin1

Keyboard
--------
You can change keyboard type (2 bulsik or 3 bulsik) using VIM_KEYBOARD
or HANGUL_KEYBOARD_TYPE environment variables.  For sh, just do (2 bulsik): >

    export VIM_KEYBOARD="2"
or >
    export HANGUL_KEYBOARD_TYPE="2"

If both are set, VIM_KEYBOARD has higher priority.

Hangul Fonts
------------
If you use GTK version of gvim, you should set 'guifont' and 'guifontwide'.
For example: >
    set guifont=Courier\ 12
    set guifontwide=NanumGothicCoding\ 12

If you use Motif or Athena version of gvim, you should set 'guifontset' in
your vimrc.  You can set fontset in the .Xdefaults file.

$HOME/.gvimrc: >
    set guifontset=english_font,hangul_font

$HOME/.Xdefaults: >
    Vim.font: english_font

    ! Nexts are for hangul menu with Athena
    *international: True
    Vim*fontSet: english_font,hangul_font

    ! Nexts are for hangul menu with Motif
    *international: True
    Vim*fontList: english_font;hangul_font:

attention! the , (comma) or ; (semicolon)

And there should be no ':set guifont'.  If it exists, then gvim ignores
':set guifontset'.  It means Vim runs without fontset supporting.
So, you can see only English.  Hangul does not be correctly displayed.

After "fontset" feature is enabled, Vim does not allow using english
font only in "font" setting for syntax.
For example, if you use >
   :set guifontset=eng_font,your_font
in your .gvimrc, then you should do for syntax >
   :hi Comment guifg=Cyan font=another_eng_font,another_your_font
If you just do >
   :hi Comment font=another_eng_font
then you can see a error message.  Be careful!

hangul_font width should be twice than english_font width.

Unsupported Feature
-------------------
We don't support Johab font.
We don't support Hanja input.
And We don't have any plan to support them.

If you really need such features, you can use console version of Vim with a
capable terminal emulator.

Bug or Comment
--------------
Send comments, patches and suggestions to:

				    SungHyun Nam <goweol@gmail.com>
				    Chi-Deok Hwang <...>

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�F�p]]vim80/doc/usr_05.txtnu�[���*usr_05.txt*	For Vim version 8.0.  Last change: 2018 Feb 20

		     VIM USER MANUAL - by Bram Moolenaar

			      Set your settings


Vim can be tuned to work like you want it to.  This chapter shows you how to
make Vim start with options set to different values.  Add plugins to extend
Vim's capabilities.  Or define your own macros.

|05.1|	The vimrc file
|05.2|	The example vimrc file explained
|05.3|	Simple mappings
|05.4|	Adding a package
|05.5|	Adding a plugin
|05.6|	Adding a help file
|05.7|	The option window
|05.8|	Often used options

     Next chapter: |usr_06.txt|  Using syntax highlighting
 Previous chapter: |usr_04.txt|  Making small changes
Table of contents: |usr_toc.txt|

==============================================================================
*05.1*	The vimrc file					*vimrc-intro*

You probably got tired of typing commands that you use very often.  To start
Vim with all your favorite option settings and mappings, you write them in
what is called the vimrc file.  Vim executes the commands in this file when it
starts up.

If you already have a vimrc file (e.g., when your sysadmin has one setup for
you), you can edit it this way: >

	:edit $MYVIMRC

If you don't have a vimrc file yet, see |vimrc| to find out where you can
create a vimrc file.  Also, the ":version" command mentions the name of the
"user vimrc file" Vim looks for.

For Unix and Macintosh this file is always used and is recommended:

	~/.vimrc ~

For MS-DOS and MS-Windows you can use one of these:

	$HOME/_vimrc ~
	$VIM/_vimrc ~

If you are creating the vimrc file for the first time, it is recommended to
put this line at the top: >

	source $VIMRUNTIME/defaults.vim

This initializes Vim for new users (as opposed to traditional Vi users). See
|defaults.vim| for the details.

The vimrc file can contain all the commands that you type after a colon.  The
most simple ones are for setting options.  For example, if you want Vim to
always start with the 'incsearch' option on, add this line your vimrc file: >

	set incsearch

For this new line to take effect you need to exit Vim and start it again.
Later you will learn how to do this without exiting Vim.

This chapter only explains the most basic items.  For more information on how
to write a Vim script file: |usr_41.txt|.

==============================================================================
*05.2*	The example vimrc file explained		*vimrc_example.vim*

In the first chapter was explained how the example vimrc (included in the
Vim distribution) file can be used to make Vim startup in not-compatible mode
(see |not-compatible|).  The file can be found here:

	$VIMRUNTIME/vimrc_example.vim ~

In this section we will explain the various commands used in this file.  This
will give you hints about how to set up your own preferences.  Not everything
will be explained though.  Use the ":help" command to find out more.

>
	set nocompatible

As mentioned in the first chapter, these manuals explain Vim working in an
improved way, thus not completely Vi compatible.  Setting the 'compatible'
option off, thus 'nocompatible' takes care of this.

>
	set backspace=indent,eol,start

This specifies where in Insert mode the <BS> is allowed to delete the
character in front of the cursor.  The three items, separated by commas, tell
Vim to delete the white space at the start of the line, a line break and the
character before where Insert mode started.
>

	set autoindent

This makes Vim use the indent of the previous line for a newly created line.
Thus there is the same amount of white space before the new line.  For example
when pressing <Enter> in Insert mode, and when using the "o" command to open a
new line.
>

	if has("vms")
	  set nobackup
	else
	  set backup
	endif

This tells Vim to keep a backup copy of a file when overwriting it.  But not
on the VMS system, since it keeps old versions of files already.  The backup
file will have the same name as the original file with "~" added.  See |07.4|
>

	set history=50

Keep 50 commands and 50 search patterns in the history.  Use another number if
you want to remember fewer or more lines.
>

	set ruler

Always display the current cursor position in the lower right corner of the
Vim window.

>
	set showcmd

Display an incomplete command in the lower right corner of the Vim window,
left of the ruler.  For example, when you type "2f", Vim is waiting for you to
type the character to find and "2f" is displayed.  When you press "w" next,
the "2fw" command is executed and the displayed "2f" is removed.

	+-------------------------------------------------+
	|text in the Vim window				  |
	|~						  |
	|~						  |
	|-- VISUAL --			2f     43,8   17% |
	+-------------------------------------------------+
	 ^^^^^^^^^^^		      ^^^^^^^^ ^^^^^^^^^^
	  'showmode'		     'showcmd'	'ruler'

>
	set incsearch

Display the match for a search pattern when halfway typing it.

>
	map Q gq

This defines a key mapping.  More about that in the next section.  This
defines the "Q" command to do formatting with the "gq" operator.  This is how
it worked before Vim 5.0.  Otherwise the "Q" command starts Ex mode, but you
will not need it.

>
	vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h"<CR>

This mapping yanks the visually selected text and searches for it in C files.
This is a complicated mapping.  You can see that mappings can be used to do
quite complicated things.  Still, it is just a sequence of commands that are
executed like you typed them.

>
	if &t_Co > 2 || has("gui_running")
	  syntax on
	  set hlsearch
	endif

This switches on syntax highlighting, but only if colors are available.  And
the 'hlsearch' option tells Vim to highlight matches with the last used search
pattern.  The "if" command is very useful to set options only when some
condition is met.  More about that in |usr_41.txt|.

							*vimrc-filetype*  >
	filetype plugin indent on

This switches on three very clever mechanisms:
1. Filetype detection.
   Whenever you start editing a file, Vim will try to figure out what kind of
   file this is.  When you edit "main.c", Vim will see the ".c" extension and
   recognize this as a "c" filetype.  When you edit a file that starts with
   "#!/bin/sh", Vim will recognize it as a "sh" filetype.
   The filetype detection is used for syntax highlighting and the other two
   items below.
   See |filetypes|.

2. Using filetype plugin files
   Many different filetypes are edited with different options.  For example,
   when you edit a "c" file, it's very useful to set the 'cindent' option to
   automatically indent the lines.  These commonly useful option settings are
   included with Vim in filetype plugins.  You can also add your own, see
   |write-filetype-plugin|.

3. Using indent files
   When editing programs, the indent of a line can often be computed
   automatically.  Vim comes with these indent rules for a number of
   filetypes.  See |:filetype-indent-on| and 'indentexpr'.

>
	autocmd FileType text setlocal textwidth=78

This makes Vim break text to avoid lines getting longer than 78 characters.
But only for files that have been detected to be plain text.  There are
actually two parts here.  "autocmd FileType text" is an autocommand.  This
defines that when the file type is set to "text" the following command is
automatically executed.  "setlocal textwidth=78" sets the 'textwidth' option
to 78, but only locally in one file.

							*restore-cursor*  >
	autocmd BufReadPost *
	    \ if line("'\"") > 1 && line("'\"") <= line("$") |
	    \   exe "normal! g`\"" |
	    \ endif

Another autocommand.  This time it is used after reading any file.  The
complicated stuff after it checks if the '" mark is defined, and jumps to it
if so.  The backslash at the start of a line is used to continue the command
from the previous line.  That avoids a line getting very long.
See |line-continuation|.  This only works in a Vim script file, not when
typing commands at the command-line.

==============================================================================
*05.3*	Simple mappings

A mapping enables you to bind a set of Vim commands to a single key.  Suppose,
for example, that you need to surround certain words with curly braces.  In
other words, you need to change a word such as "amount" into "{amount}".  With
the :map command, you can tell Vim that the F5 key does this job.  The command
is as follows: >

	:map <F5> i{<Esc>ea}<Esc>
<
	Note:
	When entering this command, you must enter <F5> by typing four
	characters.  Similarly, <Esc> is not entered by pressing the <Esc>
	key, but by typing five characters.  Watch out for this difference
	when reading the manual!

Let's break this down:
    <F5>	The F5 function key.  This is the trigger key that causes the
		command to be executed as the key is pressed.

    i{<Esc>	Insert the { character.  The <Esc> key ends Insert mode.

    e		Move to the end of the word.

    a}<Esc>	Append the } to the word.

After you execute the ":map" command, all you have to do to put {} around a
word is to put the cursor on the first character and press F5.

In this example, the trigger is a single key; it can be any string.  But when
you use an existing Vim command, that command will no longer be available.
You better avoid that.
   One key that can be used with mappings is the backslash.  Since you
probably want to define more than one mapping, add another character.  You
could map "\p" to add parentheses around a word, and "\c" to add curly braces,
for example: >

	:map \p i(<Esc>ea)<Esc>
	:map \c i{<Esc>ea}<Esc>

You need to type the \ and the p quickly after another, so that Vim knows they
belong together.

The ":map" command (with no arguments) lists your current mappings.  At
least the ones for Normal mode.  More about mappings in section |40.1|.

==============================================================================
*05.4*	Adding a package			*add-package* *matchit-install*

A package is a set of files that you can add to Vim.  There are two kinds of
packages: optional and automatically loaded on startup.

The Vim distribution comes with a few packages that you can optionally use.
For example, the matchit plugin.  This plugin makes the "%" command jump to
matching HTML tags, if/else/endif in Vim scripts, etc.  Very useful, although
it's not backwards compatible (that's why it is not enabled by default).

To start using the matchit plugin, add one line to your vimrc file: >
	packadd! matchit

That's all!  After restarting Vim you can find help about this plugin: >
	:help matchit

This works, because when `:packadd` loaded the plugin it also added the
package directory in 'runtimepath', so that the help file can be found.

You can find packages on the Internet in various places.  It usually comes as
an archive or as a repository.  For an archive you can follow these steps:
	1. create the package directory: >
		mkdir -p ~/.vim/pack/fancy
<	   "fancy" can be any name of your liking.  Use one that describes the
	   package.
	2. unpack the archive in that directory.  This assumes the top
	   directory in the archive is "start": >
	   	cd ~/.vim/pack/fancy
		unzip /tmp/fancy.zip
<	   If the archive layout is different make sure that you end up with a
	   path like this:
		~/.vim/pack/fancy/start/fancytext/plugin/fancy.vim ~
	   Here "fancytext" is the name of the package, it can be anything
	   else.

More information about packages can be found here: |packages|.

==============================================================================
*05.5*	Adding a plugin					*add-plugin* *plugin*

Vim's functionality can be extended by adding plugins.  A plugin is nothing
more than a Vim script file that is loaded automatically when Vim starts.  You
can add a plugin very easily by dropping it in your plugin directory.
{not available when Vim was compiled without the |+eval| feature}

There are two types of plugins:

    global plugin: Used for all kinds of files
  filetype plugin: Only used for a specific type of file

The global plugins will be discussed first, then the filetype ones
|add-filetype-plugin|.


GLOBAL PLUGINS						*standard-plugin*

When you start Vim, it will automatically load a number of global plugins.
You don't have to do anything for this.  They add functionality that most
people will want to use, but which was implemented as a Vim script instead of
being compiled into Vim.  You can find them listed in the help index
|standard-plugin-list|.  Also see |load-plugins|.

							*add-global-plugin*
You can add a global plugin to add functionality that will always be present
when you use Vim.  There are only two steps for adding a global plugin:
1. Get a copy of the plugin.
2. Drop it in the right directory.


GETTING A GLOBAL PLUGIN

Where can you find plugins?
- Some come with Vim.  You can find them in the directory $VIMRUNTIME/macros
  and its sub-directories.
- Download from the net.  There is a large collection on http://www.vim.org.
- They are sometimes posted in a Vim |maillist|.
- You could write one yourself, see |write-plugin|.

Some plugins come as a vimball archive, see |vimball|.
Some plugins can be updated automatically, see |getscript|.


USING A GLOBAL PLUGIN

First read the text in the plugin itself to check for any special conditions.
Then copy the file to your plugin directory:

	system		plugin directory ~
	Unix		~/.vim/plugin/
	PC and OS/2	$HOME/vimfiles/plugin or $VIM/vimfiles/plugin
	Amiga		s:vimfiles/plugin
	Macintosh	$VIM:vimfiles:plugin
	Mac OS X	~/.vim/plugin/
	RISC-OS		Choices:vimfiles.plugin

Example for Unix (assuming you didn't have a plugin directory yet): >

	mkdir ~/.vim
	mkdir ~/.vim/plugin
	cp /tmp/yourplugin.vim ~/.vim/plugin

That's all!  Now you can use the commands defined in this plugin.

Instead of putting plugins directly into the plugin/ directory, you may
better organize them by putting them into subdirectories under plugin/.
As an example, consider using "~/.vim/plugin/perl/*.vim" for all your Perl
plugins.


FILETYPE PLUGINS			*add-filetype-plugin* *ftplugins*

The Vim distribution comes with a set of plugins for different filetypes that
you can start using with this command: >

	:filetype plugin on

That's all!  See |vimrc-filetype|.

If you are missing a plugin for a filetype you are using, or you found a
better one, you can add it.  There are two steps for adding a filetype plugin:
1. Get a copy of the plugin.
2. Drop it in the right directory.


GETTING A FILETYPE PLUGIN

You can find them in the same places as the global plugins.  Watch out if the
type of file is mentioned, then you know if the plugin is a global or a
filetype one.  The scripts in $VIMRUNTIME/macros are global ones, the filetype
plugins are in $VIMRUNTIME/ftplugin.


USING A FILETYPE PLUGIN					*ftplugin-name*

You can add a filetype plugin by dropping it in the right directory.  The
name of this directory is in the same directory mentioned above for global
plugins, but the last part is "ftplugin".  Suppose you have found a plugin for
the "stuff" filetype, and you are on Unix.  Then you can move this file to the
ftplugin directory: >

	mv thefile ~/.vim/ftplugin/stuff.vim

If that file already exists you already have a plugin for "stuff".  You might
want to check if the existing plugin doesn't conflict with the one you are
adding.  If it's OK, you can give the new one another name: >

	mv thefile ~/.vim/ftplugin/stuff_too.vim

The underscore is used to separate the name of the filetype from the rest,
which can be anything.  If you use "otherstuff.vim" it wouldn't work, it would
be loaded for the "otherstuff" filetype.

On MS-DOS you cannot use long filenames.  You would run into trouble if you
add a second plugin and the filetype has more than six characters.  You can
use an extra directory to get around this: >

	mkdir $VIM/vimfiles/ftplugin/fortran
	copy thefile $VIM/vimfiles/ftplugin/fortran/too.vim

The generic names for the filetype plugins are: >

	ftplugin/<filetype>.vim
	ftplugin/<filetype>_<name>.vim
	ftplugin/<filetype>/<name>.vim

Here "<name>" can be any name that you prefer.
Examples for the "stuff" filetype on Unix: >

	~/.vim/ftplugin/stuff.vim
	~/.vim/ftplugin/stuff_def.vim
	~/.vim/ftplugin/stuff/header.vim

The <filetype> part is the name of the filetype the plugin is to be used for.
Only files of this filetype will use the settings from the plugin.  The <name>
part of the plugin file doesn't matter, you can use it to have several plugins
for the same filetype.  Note that it must end in ".vim".


Further reading:
|filetype-plugins|	Documentation for the filetype plugins and information
			about how to avoid that mappings cause problems.
|load-plugins|		When the global plugins are loaded during startup.
|ftplugin-overrule|	Overruling the settings from a global plugin.
|write-plugin|		How to write a plugin script.
|plugin-details|	For more information about using plugins or when your
			plugin doesn't work.
|new-filetype|		How to detect a new file type.

==============================================================================
*05.6*	Adding a help file				*add-local-help*

If you are lucky, the plugin you installed also comes with a help file.  We
will explain how to install the help file, so that you can easily find help
for your new plugin.
   Let us use the "doit.vim" plugin as an example.  This plugin comes with
documentation: "doit.txt".  Let's first copy the plugin to the right
directory.  This time we will do it from inside Vim.  (You may skip some of
the "mkdir" commands if you already have the directory.) >

	:!mkdir ~/.vim
	:!mkdir ~/.vim/plugin
	:!cp /tmp/doit.vim ~/.vim/plugin

The "cp" command is for Unix, on MS-DOS you can use "copy".

Now create a "doc" directory in one of the directories in 'runtimepath'. >

	:!mkdir ~/.vim/doc

Copy the help file to the "doc" directory. >

	:!cp /tmp/doit.txt ~/.vim/doc

Now comes the trick, which allows you to jump to the subjects in the new help
file: Generate the local tags file with the |:helptags| command. >

	:helptags ~/.vim/doc

Now you can use the >

	:help doit

command to find help for "doit" in the help file you just added.  You can see
an entry for the local help file when you do: >

	:help local-additions

The title lines from the local help files are automagically added to this
section.  There you can see which local help files have been added and jump to
them through the tag.

For writing a local help file, see |write-local-help|.

==============================================================================
*05.7*	The option window

If you are looking for an option that does what you want, you can search in
the help files here: |options|.  Another way is by using this command: >

	:options

This opens a new window, with a list of options with a one-line explanation.
The options are grouped by subject.  Move the cursor to a subject and press
<Enter> to jump there.  Press <Enter> again to jump back.  Or use CTRL-O.

You can change the value of an option.  For example, move to the "displaying
text" subject.  Then move the cursor down to this line:

	set wrap	nowrap ~

When you hit <Enter>, the line will change to:

	set nowrap	wrap ~

The option has now been switched off.

Just above this line is a short description of the 'wrap' option.  Move the
cursor one line up to place it in this line.  Now hit <Enter> and you jump to
the full help on the 'wrap' option.

For options that take a number or string argument you can edit the value.
Then press <Enter> to apply the new value.  For example, move the cursor a few
lines up to this line:

	set so=0 ~

Position the cursor on the zero with "$".  Change it into a five with "r5".
Then press <Enter> to apply the new value.  When you now move the cursor
around you will notice that the text starts scrolling before you reach the
border.  This is what the 'scrolloff' option does, it specifies an offset
from the window border where scrolling starts.

==============================================================================
*05.8*	Often used options

There are an awful lot of options.  Most of them you will hardly ever use.
Some of the more useful ones will be mentioned here.  Don't forget you can
find more help on these options with the ":help" command, with single quotes
before and after the option name.  For example: >

	:help 'wrap'

In case you have messed up an option value, you can set it back to the
default by putting an ampersand (&) after the option name.  Example: >

	:set iskeyword&


NOT WRAPPING LINES

Vim normally wraps long lines, so that you can see all of the text.  Sometimes
it's better to let the text continue right of the window.  Then you need to
scroll the text left-right to see all of a long line.  Switch wrapping off
with this command: >

	:set nowrap

Vim will automatically scroll the text when you move to text that is not
displayed.  To see a context of ten characters, do this: >

	:set sidescroll=10

This doesn't change the text in the file, only the way it is displayed.


WRAPPING MOVEMENT COMMANDS

Most commands for moving around will stop moving at the start and end of a
line.  You can change that with the 'whichwrap' option.  This sets it to the
default value: >

	:set whichwrap=b,s

This allows the <BS> key, when used in the first position of a line, to move
the cursor to the end of the previous line.  And the <Space> key moves from
the end of a line to the start of the next one.

To allow the cursor keys <Left> and <Right> to also wrap, use this command: >

	:set whichwrap=b,s,<,>

This is still only for Normal mode.  To let <Left> and <Right> do this in
Insert mode as well: >

	:set whichwrap=b,s,<,>,[,]

There are a few other flags that can be added, see 'whichwrap'.


VIEWING TABS

When there are tabs in a file, you cannot see where they are.  To make them
visible: >

	:set list

Now every tab is displayed as ^I.  And a $ is displayed at the end of each
line, so that you can spot trailing spaces that would otherwise go unnoticed.
   A disadvantage is that this looks ugly when there are many Tabs in a file.
If you have a color terminal, or are using the GUI, Vim can show the spaces
and tabs as highlighted characters.  Use the 'listchars' option: >

	:set listchars=tab:>-,trail:-

Now every tab will be displayed as ">---" (with more or less "-") and trailing
white space as "-".  Looks a lot better, doesn't it?


KEYWORDS

The 'iskeyword' option specifies which characters can appear in a word: >

	:set iskeyword
<	  iskeyword=@,48-57,_,192-255 ~

The "@" stands for all alphabetic letters.  "48-57" stands for ASCII
characters 48 to 57, which are the numbers 0 to 9.  "192-255" are the
printable latin characters.
   Sometimes you will want to include a dash in keywords, so that commands
like "w" consider "upper-case" to be one word.  You can do it like this: >

	:set iskeyword+=-
	:set iskeyword
<	  iskeyword=@,48-57,_,192-255,- ~

If you look at the new value, you will see that Vim has added a comma for you.
   To remove a character use "-=".  For example, to remove the underscore: >

	:set iskeyword-=_
	:set iskeyword
<	  iskeyword=@,48-57,192-255,- ~

This time a comma is automatically deleted.


ROOM FOR MESSAGES

When Vim starts there is one line at the bottom that is used for messages.
When a message is long, it is either truncated, thus you can only see part of
it, or the text scrolls and you have to press <Enter> to continue.
   You can set the 'cmdheight' option to the number of lines used for
messages.  Example: >

	:set cmdheight=3

This does mean there is less room to edit text, thus it's a compromise.

==============================================================================

Next chapter: |usr_06.txt|  Using syntax highlighting

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��=t�G�Gvim80/doc/usr_21.txtnu�[���*usr_21.txt*	For Vim version 8.0.  Last change: 2012 Nov 02

		     VIM USER MANUAL - by Bram Moolenaar

			   Go away and come back


This chapter goes into mixing the use of other programs with Vim.  Either by
executing program from inside Vim or by leaving Vim and coming back later.
Furthermore, this is about the ways to remember the state of Vim and restore
it later.

|21.1|	Suspend and resume
|21.2|	Executing shell commands
|21.3|	Remembering information; viminfo
|21.4|	Sessions
|21.5|	Views
|21.6|	Modelines

     Next chapter: |usr_22.txt|  Finding the file to edit
 Previous chapter: |usr_20.txt|  Typing command-line commands quickly
Table of contents: |usr_toc.txt|

==============================================================================
*21.1*	Suspend and resume

Like most Unix programs Vim can be suspended by pressing CTRL-Z.  This stops
Vim and takes you back to the shell it was started in.  You can then do any
other commands until you are bored with them.  Then bring back Vim with the
"fg" command. >

	CTRL-Z
	{any sequence of shell commands}
	fg

You are right back where you left Vim, nothing has changed.
   In case pressing CTRL-Z doesn't work, you can also use ":suspend".
Don't forget to bring Vim back to the foreground, you would lose any changes
that you made!

Only Unix has support for this.  On other systems Vim will start a shell for
you.  This also has the functionality of being able to execute shell commands.
But it's a new shell, not the one that you started Vim from.
   When you are running the GUI you can't go back to the shell where Vim was
started.  CTRL-Z will minimize the Vim window instead.

==============================================================================
*21.2*	Executing shell commands

To execute a single shell command from Vim use ":!{command}".  For example, to
see a directory listing: >

	:!ls
	:!dir

The first one is for Unix, the second one for MS-Windows.
   Vim will execute the program.  When it ends you will get a prompt to hit
<Enter>.  This allows you to have a look at the output from the command before
returning to the text you were editing.
   The "!" is also used in other places where a program is run.  Let's take
a look at an overview:

	:!{program}		execute {program}
	:r !{program}		execute {program} and read its output
	:w !{program}		execute {program} and send text to its input
	:[range]!{program}	filter text through {program}

Notice that the presence of a range before "!{program}" makes a big
difference.  Without it executes the program normally, with the range a number
of text lines is filtered through the program.

Executing a whole row of programs this way is possible.  But a shell is much
better at it.  You can start a new shell this way: >

	:shell

This is similar to using CTRL-Z to suspend Vim.  The difference is that a new
shell is started.

When using the GUI the shell will be using the Vim window for its input and
output.  Since Vim is not a terminal emulator, this will not work perfectly.
If you have trouble, try toggling the 'guipty' option.  If this still doesn't
work well enough, start a new terminal to run the shell in.  For example with:
>
	:!xterm&

==============================================================================
*21.3*	Remembering information; viminfo

After editing for a while you will have text in registers, marks in various
files, a command line history filled with carefully crafted commands.  When
you exit Vim all of this is lost.  But you can get it back!

The viminfo file is designed to store status information:

	Command-line and Search pattern history
	Text in registers
	Marks for various files
	The buffer list
	Global variables

Each time you exit Vim it will store this information in a file, the viminfo
file.  When Vim starts again, the viminfo file is read and the information
restored.

The 'viminfo' option is set by default to restore a limited number of items.
You might want to set it to remember more information.  This is done through
the following command: >

	:set viminfo=string

The string specifies what to save.  The syntax of this string is an option
character followed by an argument.  The option/argument pairs are separated by
commas.
   Take a look at how you can build up your own viminfo string.  First, the '
option is used to specify how many files for which you save marks (a-z).  Pick
a nice even number for this option (1000, for instance).  Your command now
looks like this: >

	:set viminfo='1000

The f option controls whether global marks (A-Z and 0-9) are stored.  If this
option is 0, none are stored.  If it is 1 or you do not specify an f option,
the marks are stored.  You want this feature, so now you have this: >

	:set viminfo='1000,f1

The < option controls how many lines are saved for each of the registers.  By
default, all the lines are saved.  If 0, nothing is saved.  To avoid adding
thousands of lines to your viminfo file (which might never get used and makes
starting Vim slower) you use a maximum of 500 lines: >

	:set viminfo='1000,f1,<500
<
Other options you might want to use:
	:	number of lines to save from the command line history
	@	number of lines to save from the input line history
	/	number of lines to save from the search history
	r	removable media, for which no marks will be stored (can be
		used several times)
	!	global variables that start with an uppercase letter and
		don't contain lowercase letters
	h	disable 'hlsearch' highlighting when starting
	%	the buffer list (only restored when starting Vim without file
		arguments)
	c	convert the text using 'encoding'
	n	name used for the viminfo file (must be the last option)

See the 'viminfo' option and |viminfo-file| for more information.

When you run Vim multiple times, the last one exiting will store its
information.  This may cause information that previously exiting Vims stored
to be lost.  Each item can be remembered only once.


GETTING BACK TO WHERE YOU STOPPED VIM

You are halfway editing a file and it's time to leave for holidays.  You exit
Vim and go enjoy yourselves, forgetting all about your work.  After a couple
of weeks you start Vim, and type:
>
	'0

And you are right back where you left Vim.  So you can get on with your work.
   Vim creates a mark each time you exit Vim.  The last one is '0.  The
position that '0 pointed to is made '1.  And '1 is made to '2, and so forth.
Mark '9 is lost.
   The |:marks| command is useful to find out where '0 to '9 will take you.


GETTING BACK TO SOME FILE

If you want to go back to a file that you edited recently, but not when
exiting Vim, there is a slightly more complicated way.  You can see a list of
files by typing the command: >

	:oldfiles
<	1: ~/.viminfo ~
	2: ~/text/resume.txt ~
	3: /tmp/draft ~

Now you would like to edit the second file, which is in the list preceded by
"2:".  You type: >

	:e #<2

Instead of ":e" you can use any command that has a file name argument, the
"#<2" item works in the same place as "%" (current file name) and "#"
(alternate file name).  So you can also split the window to edit the third
file: >

	:split #<3

That #<123 thing is a bit complicated when you just want to edit a file.
Fortunately there is a simpler way: >

	:browse oldfiles
<	1: ~/.viminfo ~
	2: ~/text/resume.txt ~
	3: /tmp/draft ~
	-- More --

You get the same list of files as with |:oldfiles|.  If you want to edit
"resume.txt" first press "q" to stop the listing.  You will get a prompt:

	Type number and <Enter> (empty cancels): ~

Type "2" and press <Enter> to edit the second file.

More info at |:oldfiles|, |v:oldfiles| and |c_#<|.


MOVE INFO FROM ONE VIM TO ANOTHER

You can use the ":wviminfo" and ":rviminfo" commands to save and restore the
information while still running Vim.  This is useful for exchanging register
contents between two instances of Vim, for example.  In the first Vim do: >

	:wviminfo! ~/tmp/viminfo

And in the second Vim do: >

	:rviminfo! ~/tmp/viminfo

Obviously, the "w" stands for "write" and the "r" for "read".
   The ! character is used by ":wviminfo" to forcefully overwrite an existing
file.  When it is omitted, and the file exists, the information is merged into
the file.
   The ! character used for ":rviminfo" means that all the information is
used, this may overwrite existing information.  Without the ! only information
that wasn't set is used.
   These commands can also be used to store info and use it again later.  You
could make a directory full of viminfo files, each containing info for a
different purpose.

==============================================================================
*21.4*	Sessions

Suppose you are editing along, and it is the end of the day.  You want to quit
work and pick up where you left off the next day.  You can do this by saving
your editing session and restoring it the next day.
   A Vim session contains all the information about what you are editing.
This includes things such as the file list, window layout, global variables,
options and other information.  (Exactly what is remembered is controlled by
the 'sessionoptions' option, described below.)
   The following command creates a session file: >

	:mksession vimbook.vim

Later if you want to restore this session, you can use this command: >

	:source vimbook.vim

If you want to start Vim and restore a specific session, you can use the
following command: >

	vim -S vimbook.vim

This tells Vim to read a specific file on startup.  The 'S' stands for
session (actually, you can source any Vim script with -S, thus it might as
well stand for "source").

The windows that were open are restored, with the same position and size as
before.  Mappings and option values are like before.
   What exactly is restored depends on the 'sessionoptions' option.  The
default value is "blank,buffers,curdir,folds,help,options,winsize".

	blank		keep empty windows
	buffers		all buffers, not only the ones in a window
	curdir		the current directory
	folds		folds, also manually created ones
	help		the help window
	options		all options and mappings
	winsize		window sizes

Change this to your liking.  To also restore the size of the Vim window, for
example, use: >

	:set sessionoptions+=resize


SESSION HERE, SESSION THERE

The obvious way to use sessions is when working on different projects.
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"
project: >

	:wall
	:mksession! ~/.vim/secret.vim
	:source ~/.vim/boring.vim

This first uses ":wall" to write all modified files.  Then the current session
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
point.  And finally you load the new "boring" session.

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: >

	:source ~/.vim/boring.vim

Thus you have complete control over whether you want to continue next time
where you are now, by saving the current setup in a session, or keep the
session file as a starting point.
   Another way of using sessions is to create a window layout that you like to
use, and save this in a session.  Then you can go back to this layout whenever
you want.
   For example, this is a nice layout to use:

	+----------------------------------------+
	|		   VIM - main help file  |
	|					 |
	|Move around:  Use the cursor keys, or "h|
	|help.txt================================|
	|explorer   |				 |
	|dir	    |~				 |
	|dir	    |~				 |
	|file	    |~				 |
	|file	    |~				 |
	|file	    |~				 |
	|file	    |~				 |
	|~/=========|[No File]===================|
	|					 |
	+----------------------------------------+

This has a help window at the top, so that you can read this text.  The narrow
vertical window on the left contains a file explorer.  This is a Vim plugin
that lists the contents of a directory.  You can select files to edit there.
More about this in the next chapter.
   Create this from a just started Vim with: >

	:help
	CTRL-W w
	:vertical split ~/

You can resize the windows a bit to your liking.  Then save the session with:
>
	:mksession ~/.vim/mine.vim

Now you can start Vim with this layout: >

	vim -S ~/.vim/mine.vim

Hint: To open a file you see listed in the explorer window in the empty
window, move the cursor to the filename and press "O".  Double clicking with
the mouse will also do this.


UNIX AND MS-WINDOWS

Some people have to do work on MS-Windows systems one day and on Unix another
day.  If you are one of them, consider adding "slash" and "unix" to
'sessionoptions'.  The session files will then be written in a format that can
be used on both systems.  This is the command to put in your vimrc file: >

	:set sessionoptions+=unix,slash

Vim will use the Unix format then, because the MS-Windows Vim can read and
write Unix files, but Unix Vim can't read MS-Windows format session files.
Similarly, MS-Windows Vim understands file names with / to separate names, but
Unix Vim doesn't understand \.


SESSIONS AND VIMINFO

Sessions store many things, but not the position of marks, contents of
registers and the command line history.  You need to use the viminfo feature
for these things.
   In most situations you will want to use sessions separately from viminfo.
This can be used to switch to another session, but keep the command line
history.  And yank text into registers in one session, and paste it back in
another session.
   You might prefer to keep the info with the session.  You will have to do
this yourself then.  Example: >

	:mksession! ~/.vim/secret.vim
	:wviminfo! ~/.vim/secret.viminfo

And to restore this again: >

	:source ~/.vim/secret.vim
	:rviminfo! ~/.vim/secret.viminfo

==============================================================================
*21.5*	Views

A session stores the looks of the whole of Vim.  When you want to store the
properties for one window only, use a view.
   The use of a view is for when you want to edit a file in a specific way.
For example, you have line numbers enabled with the 'number' option and
defined a few folds.  Just like with sessions, you can remember this view on
the file and restore it later.  Actually, when you store a session, it stores
the view of each window.
   There are two basic ways to use views.  The first is to let Vim pick a name
for the view file.  You can restore the view when you later edit the same
file.  To store the view for the current window: >

	:mkview

Vim will decide where to store the view.  When you later edit the same file
you get the view back with this command: >

	:loadview

That's easy, isn't it?
   Now you want to view the file without the 'number' option on, or with all
folds open, you can set the options to make the window look that way.  Then
store this view with: >

	:mkview 1

Obviously, you can get this back with: >

	:loadview 1

Now you can switch between the two views on the file by using ":loadview" with
and without the "1" argument.
   You can store up to ten views for the same file this way, one unnumbered
and nine numbered 1 to 9.


A VIEW WITH A NAME

The second basic way to use views is by storing the view in a file with a name
you choose.  This view can be loaded while editing another file.  Vim will
then switch to editing the file specified in the view.  Thus you can use this
to quickly switch to editing another file, with all its options set as you
saved them.
   For example, to save the view of the current file: >

	:mkview ~/.vim/main.vim

You can restore it with: >

	:source ~/.vim/main.vim

==============================================================================
*21.6*	Modelines

When editing a specific file, you might set options specifically for that
file.  Typing these commands each time is boring.  Using a session or view for
editing a file doesn't work when sharing the file between several people.
   The solution for this situation is adding a modeline to the file.  This is
a line of text that tells Vim the values of options, to be used in this file
only.
   A typical example is a C program where you make indents by a multiple of 4
spaces.  This requires setting the 'shiftwidth' option to 4.  This modeline
will do that:

	/* vim:set shiftwidth=4: */ ~

Put this line as one of the first or last five lines in the file.  When
editing the file, you will notice that 'shiftwidth' will have been set to
four.  When editing another file, it's set back to the default value of eight.
   For some files the modeline fits well in the header, thus it can be put at
the top of the file.  For text files and other files where the modeline gets
in the way of the normal contents, put it at the end of the file.

The 'modelines' option specifies how many lines at the start and end of the
file are inspected for containing a modeline.  To inspect ten lines: >

	:set modelines=10

The 'modeline' option can be used to switch this off.  Do this when you are
working as root on Unix or Administrator on MS-Windows, or when you don't
trust the files you are editing: >

	:set nomodeline

Use this format for the modeline:

	any-text vim:set {option}={value} ... : any-text ~

The "any-text" indicates that you can put any text before and after the part
that Vim will use.  This allows making it look like a comment, like what was
done above with /* and */.
   The " vim:" part is what makes Vim recognize this line.  There must be
white space before "vim", or "vim" must be at the start of the line.  Thus
using something like "gvim:" will not work.
   The part between the colons is a ":set" command.  It works the same way as
typing the ":set" command, except that you need to insert a backslash before a
colon (otherwise it would be seen as the end of the modeline).

Another example:

	// vim:set textwidth=72 dir=c\:\tmp:  use c:\tmp here ~

There is an extra backslash before the first colon, so that it's included in
the ":set" command.  The text after the second colon is ignored, thus a remark
can be placed there.

For more details see |modeline|.

==============================================================================

Next chapter: |usr_22.txt|  Finding the file to edit

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�.9�s%s%vim80/doc/usr_06.txtnu�[���*usr_06.txt*	For Vim version 8.0.  Last change: 2009 Oct 28

		     VIM USER MANUAL - by Bram Moolenaar

			  Using syntax highlighting


Black and white text is boring.  With colors your file comes to life.  This
not only looks nice, it also speeds up your work.  Change the colors used for
the different sorts of text.  Print your text, with the colors you see on the
screen.

|06.1|	Switching it on
|06.2|	No or wrong colors?
|06.3|	Different colors
|06.4|	With colors or without colors
|06.5|	Printing with colors
|06.6|	Further reading

     Next chapter: |usr_07.txt|  Editing more than one file
 Previous chapter: |usr_05.txt|  Set your settings
Table of contents: |usr_toc.txt|

==============================================================================
*06.1*	Switching it on

It all starts with one simple command: >

	:syntax enable

That should work in most situations to get color in your files.  Vim will
automagically detect the type of file and load the right syntax highlighting.
Suddenly comments are blue, keywords brown and strings red.  This makes it
easy to overview the file.  After a while you will find that black&white text
slows you down!

If you always want to use syntax highlighting, put the ":syntax enable"
command in your |vimrc| file.

If you want syntax highlighting only when the terminal supports colors, you
can put this in your |vimrc| file: >

	if &t_Co > 1
	   syntax enable
	endif

If you want syntax highlighting only in the GUI version, put the ":syntax
enable" command in your |gvimrc| file.

==============================================================================
*06.2*	No or wrong colors?

There can be a number of reasons why you don't see colors:

- Your terminal does not support colors.
	Vim will use bold, italic and underlined text, but this doesn't look
	very nice.  You probably will want to try to get a terminal with
	colors.  For Unix, I recommend the xterm from the XFree86 project:
	|xfree-xterm|.

- Your terminal does support colors, but Vim doesn't know this.
	Make sure your $TERM setting is correct.  For example, when using an
	xterm that supports colors: >

		setenv TERM xterm-color
<
	or (depending on your shell): >

		TERM=xterm-color; export TERM

<	The terminal name must match the terminal you are using.  If it
	still doesn't work, have a look at |xterm-color|, which shows a few
	ways to make Vim display colors (not only for an xterm).

- The file type is not recognized.
	Vim doesn't know all file types, and sometimes it's near to impossible
	to tell what language a file uses.  Try this command: >

		:set filetype
<
	If the result is "filetype=" then the problem is indeed that Vim
	doesn't know what type of file this is.  You can set the type
	manually: >

		:set filetype=fortran

<	To see which types are available, look in the directory
	$VIMRUNTIME/syntax.  For the GUI you can use the Syntax menu.
	Setting the filetype can also be done with a |modeline|, so that the
	file will be highlighted each time you edit it.  For example, this
	line can be used in a Makefile (put it near the start or end of the
	file): >

		# vim: syntax=make

<	You might know how to detect the file type yourself.  Often the file
	name extension (after the dot) can be used.
	See |new-filetype| for how to tell Vim to detect that file type.

- There is no highlighting for your file type.
	You could try using a similar file type by manually setting it as
	mentioned above.  If that isn't good enough, you can write your own
	syntax file, see |mysyntaxfile|.


Or the colors could be wrong:

- The colored text is very hard to read.
	Vim guesses the background color that you are using.  If it is black
	(or another dark color) it will use light colors for text.  If it is
	white (or another light color) it will use dark colors for text.  If
	Vim guessed wrong the text will be hard to read.  To solve this, set
	the 'background' option.  For a dark background: >

		:set background=dark

<	And for a light background: >

		:set background=light

<	Make sure you put this _before_ the ":syntax enable" command,
	otherwise the colors will already have been set.  You could do
	":syntax reset" after setting 'background' to make Vim set the default
	colors again.

- The colors are wrong when scrolling bottom to top.
	Vim doesn't read the whole file to parse the text.  It starts parsing
	wherever you are viewing the file.  That saves a lot of time, but
	sometimes the colors are wrong.  A simple fix is hitting CTRL-L.  Or
	scroll back a bit and then forward again.
	For a real fix, see |:syn-sync|.  Some syntax files have a way to make
	it look further back, see the help for the specific syntax file.  For
	example, |tex.vim| for the TeX syntax.

==============================================================================
*06.3*	Different colors				*:syn-default-override*

If you don't like the default colors, you can select another color scheme.  In
the GUI use the Edit/Color Scheme menu.  You can also type the command: >

	:colorscheme evening

"evening" is the name of the color scheme.  There are several others you might
want to try out.  Look in the directory $VIMRUNTIME/colors.

When you found the color scheme that you like, add the ":colorscheme" command
to your |vimrc| file.

You could also write your own color scheme.  This is how you do it:

1. Select a color scheme that comes close.  Copy this file to your own Vim
   directory.  For Unix, this should work: >

	!mkdir ~/.vim/colors
	!cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim
<
   This is done from Vim, because it knows the value of $VIMRUNTIME.

2. Edit the color scheme file.  These entries are useful:

	term		attributes in a B&W terminal
	cterm		attributes in a color terminal
	ctermfg		foreground color in a color terminal
	ctermbg		background color in a color terminal
	gui		attributes in the GUI
	guifg		foreground color in the GUI
	guibg		background color in the GUI

   For example, to make comments green: >

	:highlight Comment ctermfg=green guifg=green
<
   Attributes you can use for "cterm" and "gui" are "bold" and "underline".
   If you want both, use "bold,underline".  For details see the |:highlight|
   command.

3. Tell Vim to always use your color scheme.  Put this line in your |vimrc|: >

	colorscheme mine

If you want to see what the most often used color combinations look like, use
this command: >

	:runtime syntax/colortest.vim

You will see text in various color combinations.  You can check which ones are
readable and look nice.

==============================================================================
*06.4*	With colors or without colors

Displaying text in color takes a lot of effort.  If you find the displaying
too slow, you might want to disable syntax highlighting for a moment: >

	:syntax clear

When editing another file (or the same one) the colors will come back.

							*:syn-off*
If you want to stop highlighting completely use: >

	:syntax off

This will completely disable syntax highlighting and remove it immediately for
all buffers.

							*:syn-manual*
If you want syntax highlighting only for specific files, use this: >

	:syntax manual

This will enable the syntax highlighting, but not switch it on automatically
when starting to edit a buffer.  To switch highlighting on for the current
buffer, set the 'syntax' option: >

	:set syntax=ON
<
==============================================================================
*06.5*	Printing with colors				*syntax-printing*

In the MS-Windows version you can print the current file with this command: >

	:hardcopy

You will get the usual printer dialog, where you can select the printer and a
few settings.  If you have a color printer, the paper output should look the
same as what you see inside Vim.  But when you use a dark background the
colors will be adjusted to look good on white paper.

There are several options that change the way Vim prints:
	'printdevice'
	'printheader'
	'printfont'
	'printoptions'

To print only a range of lines,  use Visual mode to select the lines and then
type the command: >

	v100j:hardcopy

"v" starts Visual mode.  "100j" moves a hundred lines down, they will be
highlighted.  Then ":hardcopy" will print those lines.  You can use other
commands to move in Visual mode, of course.

This also works on Unix, if you have a PostScript printer.  Otherwise, you
will have to do a bit more work.  You need to convert the text to HTML first,
and then print it from a web browser.

Convert the current file to HTML with this command: >

	:TOhtml

In case that doesn't work: >

	:source $VIMRUNTIME/syntax/2html.vim

You will see it crunching away, this can take quite a while for a large file.
Some time later another window shows the HTML code.  Now write this somewhere
(doesn't matter where, you throw it away later):
>
	:write main.c.html

Open this file in your favorite browser and print it from there.  If all goes
well, the output should look exactly as it does in Vim.  See |2html.vim| for
details.  Don't forget to delete the HTML file when you are done with it.

Instead of printing, you could also put the HTML file on a web server, and let
others look at the colored text.

==============================================================================
*06.6*	Further reading

|usr_44.txt|  Your own syntax highlighted.
|syntax|      All the details.

==============================================================================

Next chapter: |usr_07.txt|  Editing more than one file

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z!}$}$vim80/doc/change.txtnu�[���*change.txt*    For Vim version 8.0.  Last change: 2018 Apr 17


		  VIM REFERENCE MANUAL    by Bram Moolenaar


This file describes commands that delete or change text.  In this context,
changing text means deleting the text and replacing it with other text using
one command.  You can undo all of these commands.  You can repeat the non-Ex
commands with the "." command.

1. Deleting text		|deleting|
2. Delete and insert		|delete-insert|
3. Simple changes		|simple-change|		*changing*
4. Complex changes		|complex-change|
   4.1 Filter commands		   |filter|
   4.2 Substitute		   |:substitute|
   4.3 Search and replace	   |search-replace|
   4.4 Changing tabs		   |change-tabs|
5. Copying and moving text	|copy-move|
6. Formatting text		|formatting|
7. Sorting text			|sorting|

For inserting text see |insert.txt|.

==============================================================================
1. Deleting text					*deleting* *E470*

["x]<Del>	or					*<Del>* *x* *dl*
["x]x			Delete [count] characters under and after the cursor
			[into register x] (not |linewise|).  Does the same as
			"dl".
			The <Del> key does not take a [count].  Instead, it
			deletes the last character of the count.
			See |:fixdel| if the <Del> key does not do what you
			want.  See |'whichwrap'| for deleting a line break
			(join lines).  {Vi does not support <Del>}

							*X* *dh*
["x]X			Delete [count] characters before the cursor [into
			register x] (not |linewise|).  Does the same as "dh".
			Also see |'whichwrap'|.

							*d*
["x]d{motion}		Delete text that {motion} moves over [into register
			x].  See below for exceptions.

							*dd*
["x]dd			Delete [count] lines [into register x] |linewise|.

							*D*
["x]D			Delete the characters under the cursor until the end
			of the line and [count]-1 more lines [into register
			x]; synonym for "d$".
			(not |linewise|)
			When the '#' flag is in 'cpoptions' the count is
			ignored.

{Visual}["x]x	or					*v_x* *v_d* *v_<Del>*
{Visual}["x]d   or
{Visual}["x]<Del>	Delete the highlighted text [into register x] (for
			{Visual} see |Visual-mode|).  {not in Vi}

{Visual}["x]CTRL-H   or					*v_CTRL-H* *v_<BS>*
{Visual}["x]<BS>	When in Select mode: Delete the highlighted text [into
			register x].

{Visual}["x]X	or					*v_X* *v_D* *v_b_D*
{Visual}["x]D		Delete the highlighted lines [into register x] (for
			{Visual} see |Visual-mode|).  In Visual block mode,
			"D" deletes the highlighted text plus all text until
			the end of the line.  {not in Vi}

					*:d* *:de* *:del* *:delete* *:dl* *:dp*
:[range]d[elete] [x]	Delete [range] lines (default: current line) [into
			register x].
			Note these weird abbreviations:
			   :dl		delete and list
			   :dell	idem
			   :delel	idem
			   :deletl	idem
			   :deletel	idem
			   :dp		delete and print
			   :dep		idem
			   :delp	idem
			   :delep	idem
			   :deletp	idem
			   :deletep	idem

:[range]d[elete] [x] {count}
			Delete {count} lines, starting with [range]
			(default: current line |cmdline-ranges|) [into
			register x].

These commands delete text.  You can repeat them with the `.` command
(except `:d`) and undo them.  Use Visual mode to delete blocks of text.  See
|registers| for an explanation of registers.

An exception for the d{motion} command: If the motion is not linewise, the
start and end of the motion are not in the same line, and there are only
blanks before the start and there are no non-blanks after the end of the
motion, the delete becomes linewise.  This means that the delete also removes
the line of blanks that you might expect to remain. Use the |o_v| operator to
force the motion to be characterwise.

Trying to delete an empty region of text (e.g., "d0" in the first column)
is an error when 'cpoptions' includes the 'E' flag.

							*J*
J			Join [count] lines, with a minimum of two lines.
			Remove the indent and insert up to two spaces (see
			below).  Fails when on the last line of the buffer.
			If [count] is too big it is reduce to the number of
			lines available.

							*v_J*
{Visual}J		Join the highlighted lines, with a minimum of two
			lines.  Remove the indent and insert up to two spaces
			(see below).  {not in Vi}

							*gJ*
gJ			Join [count] lines, with a minimum of two lines.
			Don't insert or remove any spaces.  {not in Vi}

							*v_gJ*
{Visual}gJ		Join the highlighted lines, with a minimum of two
			lines.  Don't insert or remove any spaces.  {not in
			Vi}

							*:j* *:join*
:[range]j[oin][!] [flags]
			Join [range] lines.  Same as "J", except with [!]
			the join does not insert or delete any spaces.
			If a [range] has equal start and end values, this
			command does nothing.  The default behavior is to
			join the current line with the line below it.
			{not in Vi: !}
			See |ex-flags| for [flags].

:[range]j[oin][!] {count} [flags]
			Join {count} lines, starting with [range] (default:
			current line |cmdline-ranges|).  Same as "J", except
			with [!] the join does not insert or delete any
			spaces.
			{not in Vi: !}
			See |ex-flags| for [flags].

These commands delete the <EOL> between lines.  This has the effect of joining
multiple lines into one line.  You can repeat these commands (except `:j`) and
undo them.

These commands, except "gJ", insert one space in place of the <EOL> unless
there is trailing white space or the next line starts with a ')'.  These
commands, except "gJ", delete any leading white space on the next line.  If
the 'joinspaces' option is on, these commands insert two spaces after a '.',
'!' or '?' (but if 'cpoptions' includes the 'j' flag, they insert two spaces
only after a '.').
The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting
spaces before and after a multi-byte character |fo-table|.

The '[ mark is set at the end of the first line that was joined, '] at the end
of the resulting line.


==============================================================================
2. Delete and insert				*delete-insert* *replacing*

							*R*
R			Enter Replace mode: Each character you type replaces
			an existing character, starting with the character
			under the cursor.  Repeat the entered text [count]-1
			times.  See |Replace-mode| for more details.

							*gR*
gR			Enter Virtual Replace mode: Each character you type
			replaces existing characters in screen space.  So a
			<Tab> may replace several characters at once.
			Repeat the entered text [count]-1 times.  See
			|Virtual-Replace-mode| for more details.
			{not available when compiled without the |+vreplace|
			feature}

							*c*
["x]c{motion}		Delete {motion} text [into register x] and start
			insert.  When  'cpoptions' includes the 'E' flag and
			there is no text to delete (e.g., with "cTx" when the
			cursor is just after an 'x'), an error occurs and
			insert mode does not start (this is Vi compatible).
			When  'cpoptions' does not include the 'E' flag, the
			"c" command always starts insert mode, even if there
			is no text to delete.

							*cc*
["x]cc			Delete [count] lines [into register x] and start
			insert |linewise|.  If 'autoindent' is on, preserve
			the indent of the first line.

							*C*
["x]C			Delete from the cursor position to the end of the
			line and [count]-1 more lines [into register x], and
			start insert.  Synonym for c$ (not |linewise|).

							*s*
["x]s			Delete [count] characters [into register x] and start
			insert (s stands for Substitute).  Synonym for "cl"
			(not |linewise|).

							*S*
["x]S			Delete [count] lines [into register x] and start
			insert.  Synonym for "cc" |linewise|.

{Visual}["x]c	or					*v_c* *v_s*
{Visual}["x]s		Delete the highlighted text [into register x] and
			start insert (for {Visual} see |Visual-mode|).  {not
			in Vi}

							*v_r*
{Visual}["x]r{char}	Replace all selected characters by {char}.

							*v_C*
{Visual}["x]C		Delete the highlighted lines [into register x] and
			start insert.  In Visual block mode it works
			differently |v_b_C|.  {not in Vi}
							*v_S*
{Visual}["x]S		Delete the highlighted lines [into register x] and
			start insert (for {Visual} see |Visual-mode|).  {not
			in Vi}
							*v_R*
{Visual}["x]R		Currently just like {Visual}["x]S.  In a next version
			it might work differently. {not in Vi}

Notes:
- You can end Insert and Replace mode with <Esc>.
- See the section "Insert and Replace mode" |mode-ins-repl| for the other
  special characters in these modes.
- The effect of [count] takes place after Vim exits Insert or Replace mode.
- When the 'cpoptions' option contains '$' and the change is within one line,
  Vim continues to show the text to be deleted and puts a '$' at the last
  deleted character.

See |registers| for an explanation of registers.

Replace mode is just like Insert mode, except that every character you enter
deletes one character.  If you reach the end of a line, Vim appends any
further characters (just like Insert mode).  In Replace mode, the backspace
key restores the original text (if there was any).  (See section "Insert and
Replace mode" |mode-ins-repl|).

						*cw* *cW*
Special case: When the cursor is in a word, "cw" and "cW" do not include the
white space after a word, they only change up to the end of the word.  This is
because Vim interprets "cw" as change-word, and a word does not include the
following white space.
{Vi: "cw" when on a blank followed by other blanks changes only the first
blank; this is probably a bug, because "dw" deletes all the blanks; use the
'w' flag in 'cpoptions' to make it work like Vi anyway}

If you prefer "cw" to include the space after a word, use this mapping: >
	:map cw dwi
Or use "caw" (see |aw|).

							*:c* *:ch* *:change*
:{range}c[hange][!]	Replace lines of text with some different text.
			Type a line containing only "." to stop replacing.
			Without {range}, this command changes only the current
			line.
			Adding [!] toggles 'autoindent' for the time this
			command is executed.

==============================================================================
3. Simple changes					*simple-change*

							*r*
r{char}			Replace the character under the cursor with {char}.
			If {char} is a <CR> or <NL>, a line break replaces the
			character.  To replace with a real <CR>, use CTRL-V
			<CR>.  CTRL-V <NL> replaces with a <Nul>.
			{Vi: CTRL-V <CR> still replaces with a line break,
			cannot replace something with a <CR>}

			If {char} is CTRL-E or CTRL-Y the character from the
			line below or above is used, just like with |i_CTRL-E|
			and |i_CTRL-Y|.  This also works with a count, thus
			`10r<C-E>` copies 10 characters from the line below.

			If you give a [count], Vim replaces [count] characters
			with [count] {char}s.  When {char} is a <CR> or <NL>,
			however, Vim inserts only one <CR>: "5r<CR>" replaces
			five characters with a single line break.
			When {char} is a <CR> or <NL>, Vim performs
			autoindenting.  This works just like deleting the
			characters that are replaced and then doing
			"i<CR><Esc>".
			{char} can be entered as a digraph |digraph-arg|.
			|:lmap| mappings apply to {char}.  The CTRL-^ command
			in Insert mode can be used to switch this on/off
			|i_CTRL-^|.  See |utf-8-char-arg| about using
			composing characters when 'encoding' is Unicode.

							*gr*
gr{char}		Replace the virtual characters under the cursor with
			{char}.  This replaces in screen space, not file
			space.  See |gR| and |Virtual-Replace-mode| for more
			details.  As with |r| a count may be given.
			{char} can be entered like with |r|.
			{not available when compiled without the |+vreplace|
			feature}

						*digraph-arg*
The argument for Normal mode commands like |r| and |t| is a single character.
When 'cpo' doesn't contain the 'D' flag, this character can also be entered
like |digraphs|.  First type CTRL-K and then the two digraph characters.
{not available when compiled without the |+digraphs| feature}

						*case*
The following commands change the case of letters.  The currently active
|locale| is used.  See |:language|.  The LC_CTYPE value matters here.

							*~*
~			'notildeop' option: Switch case of the character
			under the cursor and move the cursor to the right.
			If a [count] is given, do that many characters. {Vi:
			no count}

~{motion}		'tildeop' option: switch case of {motion} text. {Vi:
			tilde cannot be used as an operator}

							*g~*
g~{motion}		Switch case of {motion} text. {not in Vi}

g~g~							*g~g~* *g~~*
g~~			Switch case of current line. {not in Vi}.

							*v_~*
{Visual}~		Switch case of highlighted text (for {Visual} see
			|Visual-mode|). {not in Vi}

							*v_U*
{Visual}U		Make highlighted text uppercase (for {Visual} see
			|Visual-mode|). {not in Vi}

							*gU* *uppercase*
gU{motion}		Make {motion} text uppercase. {not in Vi}
			Example: >
				:map! <C-F> <Esc>gUiw`]a
<			This works in Insert mode: press CTRL-F to make the
			word before the cursor uppercase.  Handy to type
			words in lowercase and then make them uppercase.


gUgU							*gUgU* *gUU*
gUU			Make current line uppercase. {not in Vi}.

							*v_u*
{Visual}u		Make highlighted text lowercase (for {Visual} see
			|Visual-mode|).  {not in Vi}

							*gu* *lowercase*
gu{motion}		Make {motion} text lowercase. {not in Vi}

gugu							*gugu* *guu*
guu			Make current line lowercase. {not in Vi}.

							*g?* *rot13*
g?{motion}		Rot13 encode {motion} text. {not in Vi}

							*v_g?*
{Visual}g?		Rot13 encode the highlighted text (for {Visual} see
			|Visual-mode|).  {not in Vi}

g?g?							*g?g?* *g??*
g??			Rot13 encode current line. {not in Vi}.

To turn one line into title caps, make every first letter of a word
uppercase: >
	:s/\v<(.)(\w*)/\u\1\L\2/g


Adding and subtracting ~
							*CTRL-A*
CTRL-A			Add [count] to the number or alphabetic character at
			or after the cursor.  {not in Vi}

							*v_CTRL-A*
{Visual}CTRL-A		Add [count] to the number or alphabetic character in
			the highlighted text.  {not in Vi}

							*v_g_CTRL-A*
{Visual}g CTRL-A	Add [count] to the number or alphabetic character in
			the highlighted text. If several lines are
		        highlighted, each one will be incremented by an
			additional [count] (so effectively creating a
			[count] incrementing sequence).  {not in Vi}
			For Example, if you have this list of numbers:
				1. ~
				1. ~
				1. ~
				1. ~
			Move to the second "1." and Visually select three
			lines, pressing g CTRL-A results in:
				1. ~
				2. ~
				3. ~
				4. ~

							*CTRL-X*
CTRL-X			Subtract [count] from the number or alphabetic
			character at or after the cursor.  {not in Vi}

							*v_CTRL-X*
{Visual}CTRL-X		Subtract [count] from the number or alphabetic
			character in the highlighted text.  {not in Vi}

			On MS-Windows, this is mapped to cut Visual text
			|dos-standard-mappings|.  If you want to disable the
			mapping, use this: >
				silent! vunmap <C-X>
<
							*v_g_CTRL-X*
{Visual}g CTRL-X	Subtract [count] from the number or alphabetic
			character in the highlighted text. If several lines
			are highlighted, each value will be decremented by an
			additional [count] (so effectively creating a [count]
			decrementing sequence).  {not in Vi}

The CTRL-A and CTRL-X commands can work for:
- signed and unsigned decimal numbers
- unsigned binary, octal and hexadecimal numbers
- alphabetic characters

This depends on the 'nrformats' option:
- When 'nrformats' includes "bin", Vim assumes numbers starting with '0b' or
  '0B' are binary.
- When 'nrformats' includes "octal", Vim considers numbers starting with a '0'
  to be octal, unless the number includes a '8' or '9'.  Other numbers are
  decimal and may have a preceding minus sign.
  If the cursor is on a number, the commands apply to that number; otherwise
  Vim uses the number to the right of the cursor.
- When 'nrformats' includes "hex", Vim assumes numbers starting with '0x' or
  '0X' are hexadecimal.  The case of the rightmost letter in the number
  determines the case of the resulting hexadecimal number.  If there is no
  letter in the current number, Vim uses the previously detected case.
- When 'nrformats' includes "alpha", Vim will change the alphabetic character
  under or after the cursor.  This is useful to make lists with an alphabetic
  index.

For decimals a leading negative sign is considered for incrementing/
decrementing, for binary, octal and hex values, it won't be considered.  To
ignore the sign Visually select the number before using CTRL-A or CTRL-X. 

For numbers with leading zeros (including all octal and hexadecimal numbers),
Vim preserves the number of characters in the number when possible.  CTRL-A on
"0077" results in "0100", CTRL-X on "0x100" results in "0x0ff".
There is one exception: When a number that starts with a zero is found not to
be octal (it contains a '8' or '9'), but 'nrformats' does include "octal",
leading zeros are removed to avoid that the result may be recognized as an
octal number.

Note that when 'nrformats' includes "octal", decimal numbers with leading
zeros cause mistakes, because they can be confused with octal numbers.

Note similarly, when 'nrformats' includes "bin", binary numbers with a leading
'0x' or '0X' can be interpreted as hexadecimal rather than binary since '0b'
are valid hexadecimal digits.

The CTRL-A command is very useful in a macro.  Example: Use the following
steps to make a numbered list.

1. Create the first list entry, make sure it starts with a number.
2. qa	     - start recording into register 'a'
3. Y	     - yank the entry
4. p	     - put a copy of the entry below the first one
5. CTRL-A    - increment the number
6. q	     - stop recording
7. <count>@a - repeat the yank, put and increment <count> times


SHIFTING LINES LEFT OR RIGHT				*shift-left-right*

							*<*
<{motion}		Shift {motion} lines one 'shiftwidth' leftwards.

							*<<*
<<			Shift [count] lines one 'shiftwidth' leftwards.

							*v_<*
{Visual}[count]<	Shift the highlighted lines [count] 'shiftwidth'
			leftwards (for {Visual} see |Visual-mode|).  {not in
			Vi}

							*>*
 >{motion}		Shift {motion} lines one 'shiftwidth' rightwards.

							*>>*
 >>			Shift [count] lines one 'shiftwidth' rightwards.

							*v_>*
{Visual}[count]>	Shift the highlighted lines [count] 'shiftwidth'
			rightwards (for {Visual} see |Visual-mode|).  {not in
			Vi}

							*:<*
:[range]<		Shift [range] lines one 'shiftwidth' left.  Repeat '<'
			for shifting multiple 'shiftwidth's.

:[range]< {count}	Shift {count} lines one 'shiftwidth' left, starting
			with [range] (default current line |cmdline-ranges|).
			Repeat '<' for shifting multiple 'shiftwidth's.

:[range]le[ft] [indent]	left align lines in [range].  Sets the indent in the
			lines to [indent] (default 0).  {not in Vi}

							*:>*
:[range]> [flags]	Shift {count} [range] lines one 'shiftwidth' right.
			Repeat '>' for shifting multiple 'shiftwidth's.
			See |ex-flags| for [flags].

:[range]> {count} [flags]
			Shift {count} lines one 'shiftwidth' right, starting
			with [range] (default current line |cmdline-ranges|).
			Repeat '>' for shifting multiple 'shiftwidth's.
			See |ex-flags| for [flags].

The ">" and "<" commands are handy for changing the indentation within
programs.  Use the 'shiftwidth' option to set the size of the white space
which these commands insert or delete.  Normally the 'shiftwidth' option is 8,
but you can set it to, say, 3 to make smaller indents.  The shift leftwards
stops when there is no indent.  The shift right does not affect empty lines.

If the 'shiftround' option is on, the indent is rounded to a multiple of
'shiftwidth'.

If the 'smartindent' option is on, or 'cindent' is on and 'cinkeys' contains
'#' with a zero value, shift right does not affect lines starting with '#'
(these are supposed to be C preprocessor lines that must stay in column 1).
This can be changed with the 'cino' option, see |cino-#|.

When the 'expandtab' option is off (this is the default) Vim uses <Tab>s as
much as possible to make the indent.  You can use ">><<" to replace an indent
made out of spaces with the same indent made out of <Tab>s (and a few spaces
if necessary).  If the 'expandtab' option is on, Vim uses only spaces.  Then
you can use ">><<" to replace <Tab>s in the indent by spaces (or use
`:retab!`).

To move a line several 'shiftwidth's, use Visual mode or the `:` commands.
For example: >
	Vjj4>		move three lines 4 indents to the right
	:<<<		move current line 3 indents to the left
	:>> 5		move 5 lines 2 indents to the right
	:5>>		move line 5 2 indents to the right

==============================================================================
4. Complex changes					*complex-change*

4.1 Filter commands					*filter*

A filter is a program that accepts text at standard input, changes it in some
way, and sends it to standard output.  You can use the commands below to send
some text through a filter, so that it is replaced by the filter output.
Examples of filters are "sort", which sorts lines alphabetically, and
"indent", which formats C program files (you need a version of indent that
works like a filter; not all versions do).  The 'shell' option specifies the
shell Vim uses to execute the filter command (See also the 'shelltype'
option).  You can repeat filter commands with ".".  Vim does not recognize a
comment (starting with '"') after the `:!` command.

							*!*
!{motion}{filter}	Filter {motion} text lines through the external
			program {filter}.

							*!!*
!!{filter}		Filter [count] lines through the external program
			{filter}.

							*v_!*
{Visual}!{filter}	Filter the highlighted lines through the external
			program {filter} (for {Visual} see |Visual-mode|).
			{not in Vi}

:{range}![!]{filter} [!][arg]				*:range!*
			Filter {range} lines through the external program
			{filter}.  Vim replaces the optional bangs with the
			latest given command and appends the optional [arg].
			Vim saves the output of the filter command in a
			temporary file and then reads the file into the buffer
			|tempfile|.  Vim uses the 'shellredir' option to
			redirect the filter output to the temporary file.
			However, if the 'shelltemp' option is off then pipes
			are used when possible (on Unix).
			When the 'R' flag is included in 'cpoptions' marks in
			the filtered lines are deleted, unless the
			|:keepmarks| command is used.  Example: >
				:keepmarks '<,'>!sort
<			When the number of lines after filtering is less than
			before, marks in the missing lines are deleted anyway.

							*=*
={motion}		Filter {motion} lines through the external program
			given with the 'equalprg' option.  When the 'equalprg'
			option is empty (this is the default), use the
			internal formatting function |C-indenting| and
			|'lisp'|.  But when 'indentexpr' is not empty, it will
			be used instead |indent-expression|.  When Vim was
			compiled without internal formatting then the "indent"
			program is used as a last resort.

							*==*
==			Filter [count] lines like with ={motion}.

							*v_=*
{Visual}=		Filter the highlighted lines like with ={motion}.
			{not in Vi}


						*tempfile* *setuid*
Vim uses temporary files for filtering, generating diffs and also for
tempname().  For Unix, the file will be in a private directory (only
accessible by the current user) to avoid security problems (e.g., a symlink
attack or other people reading your file).  When Vim exits the directory and
all files in it are deleted.  When Vim has the setuid bit set this may cause
problems, the temp file is owned by the setuid user but the filter command
probably runs as the original user.
On MS-DOS and OS/2 the first of these directories that works is used: $TMP,
$TEMP, c:\TMP, c:\TEMP.
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
For MS-Windows the GetTempFileName() system function is used.
For other systems the tmpnam() library function is used.



4.2 Substitute						*:substitute*
							*:s* *:su*
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
			For each line in [range] replace a match of {pattern}
			with {string}.
			For the {pattern} see |pattern|.
			{string} can be a literal string, or something
			special; see |sub-replace-special|.
							*E939*
			When [range] and [count] are omitted, replace in the
			current line only.  When [count] is given, replace in
			[count] lines, starting with the last line in [range].
			When [range] is omitted start in the current line.
			[count] must be a positive number.  Also see
			|cmdline-ranges|.

			See |:s_flags| for [flags].

:[range]s[ubstitute] [flags] [count]
:[range]&[&][flags] [count]					*:&*
			Repeat last :substitute with same search pattern and
			substitute string, but without the same flags.  You
			may add [flags], see |:s_flags|.
			Note that after `:substitute` the '&' flag can't be
			used, it's recognized as a pattern separator.
			The space between `:substitute` and the 'c', 'g',
			'i', 'I' and 'r' flags isn't required, but in scripts
			it's a good idea to keep it to avoid confusion.

:[range]~[&][flags] [count]					*:~*
			Repeat last substitute with same substitute string
			but with last used search pattern.  This is like
			`:&r`.  See |:s_flags| for [flags].

								*&*
&			Synonym for `:s` (repeat last substitute).  Note
			that the flags are not remembered, thus it might
			actually work differently.  You can use `:&&` to keep
			the flags.

								*g&*
g&			Synonym for `:%s//~/&` (repeat last substitute with
			last search pattern on all lines with the same flags).
			For example, 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}

						*:snomagic* *:sno*
:[range]sno[magic] ...	Same as `:substitute`, but always use 'nomagic'.
			{not in Vi}

						*:smagic* *:sm*
:[range]sm[agic] ...	Same as `:substitute`, but always use 'magic'.
			{not in Vi}

							*:s_flags*
The flags that you can use for the substitute commands:

							*:&&*
[&]	Must be the first one: Keep the flags from the previous substitute
	command.  Examples: >
		:&&
		:s/this/that/&
<	Note that `:s` and `:&` don't keep the flags.
	{not in Vi}

[c]	Confirm each substitution.  Vim highlights the matching string (with
	|hl-IncSearch|).  You can type:				*:s_c*
	    'y'	    to substitute this match
	    'l'	    to substitute this match and then quit ("last")
	    'n'	    to skip this match
	    <Esc>   to quit substituting
	    'a'	    to substitute this and all remaining matches {not in Vi}
	    'q'	    to quit substituting {not in Vi}
	    CTRL-E  to scroll the screen up {not in Vi, not available when
			compiled without the |+insert_expand| feature}
	    CTRL-Y  to scroll the screen down {not in Vi, not available when
			compiled without the |+insert_expand| feature}
	If the 'edcompatible' option is on, Vim remembers the [c] flag and
	toggles it each time you use it, but resets it when you give a new
	search pattern.
	{not in Vi: highlighting of the match, other responses than 'y' or 'n'}

[e]     When the search pattern fails, do not issue an error message and, in
	particular, continue in maps as if no error occurred.  This is most
	useful to prevent the "No match" error from breaking a mapping.  Vim
	does not suppress the following error messages, however:
		Regular expressions can't be delimited by letters
		\ should be followed by /, ? or &
		No previous substitute regular expression
		Trailing characters
		Interrupted
	{not in Vi}

[g]	Replace all occurrences in the line.  Without this argument,
	replacement occurs only for the first occurrence in each line.  If
	the 'edcompatible' option is on, Vim remembers this flag and toggles
	it each time you use it, but resets it when you give a new search
	pattern.  If the 'gdefault' option is on, this flag is on by default
	and the [g] argument switches it off.

[i]	Ignore case for the pattern.  The 'ignorecase' and 'smartcase' options
	are not used.
	{not in Vi}

[I]	Don't ignore case for the pattern.  The 'ignorecase' and 'smartcase'
	options are not used.
	{not in Vi}

[n]	Report the number of matches, do not actually substitute.  The [c]
	flag is ignored.  The matches are reported as if 'report' is zero.
	Useful to |count-items|.
	If \= |sub-replace-expression| is used, the expression will be
	evaluated in the |sandbox| at every match.

[p]	Print the line containing the last substitute.

[#]	Like [p] and prepend the line number.

[l]	Like [p] but print the text like |:list|.

[r]	Only useful in combination with `:&` or `:s` without arguments.  `:&r`
	works the same way as `:~`:  When the search pattern is empty, use the
	previously used search pattern instead of the search pattern from the
	last substitute or `:global`.  If the last command that did a search
	was a substitute or `:global`, there is no effect.  If the last
	command was a search command such as "/", use the pattern from that
	command.
	For `:s` with an argument this already happens: >
		:s/blue/red/
		/green
		:s//red/   or  :~   or  :&r
<	The last commands will replace "green" with "red". >
		:s/blue/red/
		/green
		:&
<	The last command will replace "blue" with "red".
	{not in Vi}

Note that there is no flag to change the "magicness" of the pattern.  A
different command is used instead, or you can use |/\v| and friends.  The
reason is that the flags can only be found by skipping the pattern, and in
order to skip the pattern the "magicness" must be known.  Catch 22!

If the {pattern} for the substitute command is empty, the command uses the
pattern from the last substitute or `:global` command.  If there is none, but
there is a previous search pattern, that one is used.  With the [r] flag, the
command uses the pattern from the last substitute, `:global`, or search
command.

If the {string} is omitted the substitute is done as if it's empty.  Thus the
matched pattern is deleted.  The separator after {pattern} can also be left
out then.  Example: >
	:%s/TESTING
This deletes "TESTING" from all lines, but only one per line.

For compatibility with Vi these two exceptions are allowed:
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
"\&{string}&" does the same as "//{string}/".
							*E146*
Instead of the '/' which surrounds the pattern and replacement string, you
can use any other single-byte character, but not an alphanumeric character,
'\', '"' or '|'.  This is useful if you want to include a '/' in the search
pattern or replacement string.  Example: >
	:s+/+//+

For the definition of a pattern, see |pattern|.  In Visual block mode, use
|/\%V| in the pattern to have the substitute work in the block only.
Otherwise it works on whole lines anyway.

					*sub-replace-special* *:s\=*
When the {string} starts with "\=" it is evaluated as an expression, see
|sub-replace-expression|.  You can use that for complex replacement or special
characters.

Otherwise these characters in {string} have a special meaning:
								*:s%*
When {string} is equal to "%" and '/' is included with the 'cpoptions' option,
then the {string} of the previous substitute command is used, see |cpo-/|

magic	nomagic	  action    ~
  &	  \&	  replaced with the whole matched pattern	     *s/\&*
 \&	   &	  replaced with &
      \0	  replaced with the whole matched pattern	   *\0* *s/\0*
      \1	  replaced with the matched pattern in the first
		  pair of ()					     *s/\1*
      \2	  replaced with the matched pattern in the second
		  pair of ()					     *s/\2*
      ..	  ..						     *s/\3*
      \9	  replaced with the matched pattern in the ninth
		  pair of ()					     *s/\9*
  ~	  \~	  replaced with the {string} of the previous
		  substitute					     *s~*
 \~	   ~	  replaced with ~				     *s/\~*
      \u	  next character made uppercase			     *s/\u*
      \U	  following characters made uppercase, until \E      *s/\U*
      \l	  next character made lowercase			     *s/\l*
      \L	  following characters made lowercase, until \E      *s/\L*
      \e	  end of \u, \U, \l and \L (NOTE: not <Esc>!)	     *s/\e*
      \E	  end of \u, \U, \l and \L			     *s/\E*
      <CR>	  split line in two at this point
		  (Type the <CR> as CTRL-V <Enter>)		     *s<CR>*
      \r	  idem						     *s/\r*
      \<CR>	  insert a carriage-return (CTRL-M)
		  (Type the <CR> as CTRL-V <Enter>)		     *s/\<CR>*
      \n	  insert a <NL> (<NUL> in the file)
		  (does NOT break the line)			     *s/\n*
      \b	  insert a <BS>					     *s/\b*
      \t	  insert a <Tab>				     *s/\t*
      \\	  insert a single backslash			     *s/\\*
      \x	  where x is any character not mentioned above:
		  Reserved for future expansion

The special meaning is also used inside the third argument {sub} of
the |substitute()| function with the following exceptions:
  - A % inserts a percent literally without regard to 'cpoptions'.
  - magic is always set without regard to 'magic'.
  - A ~ inserts a tilde literally.
  - <CR> and \r inserts a carriage-return (CTRL-M).
  - \<CR> does not have a special meaning. it's just one of \x.

Examples: >
  :s/a\|b/xxx\0xxx/g		 modifies "a b"	     to "xxxaxxx xxxbxxx"
  :s/\([abc]\)\([efg]\)/\2\1/g	 modifies "af fa bg" to "fa fa gb"
  :s/abcde/abc^Mde/		 modifies "abcde"    to "abc", "de" (two lines)
  :s/$/\^M/			 modifies "abcde"    to "abcde^M"
  :s/\w\+/\u\0/g		 modifies "bla bla"  to "Bla Bla"
  :s/\w\+/\L\u\0/g		 modifies "BLA bla"  to "Bla Bla"

Note: "\L\u" can be used to capitalize the first letter of a word.  This is
not compatible with Vi and older versions of Vim, where the "\u" would cancel
out the "\L". Same for "\U\l".

Note: In previous versions CTRL-V was handled in a special way.  Since this is
not Vi compatible, this was removed.  Use a backslash instead.

command		text	result ~
:s/aa/a^Ma/	aa	a<line-break>a
:s/aa/a\^Ma/	aa	a^Ma
:s/aa/a\\^Ma/	aa	a\<line-break>a

(you need to type CTRL-V <CR> to get a ^M here)

The numbering of "\1", "\2" etc. is done based on which "\(" comes first in
the pattern (going left to right).  When a parentheses group matches several
times, the last one will be used for "\1", "\2", etc.  Example: >
  :s/\(\(a[a-d] \)*\)/\2/      modifies "aa ab x" to "ab x"
The "\2" is for "\(a[a-d] \)".  At first it matches "aa ", secondly "ab ".

When using parentheses in combination with '|', like in \([ab]\)\|\([cd]\),
either the first or second pattern in parentheses did not match, so either
\1 or \2 is empty.  Example: >
  :s/\([ab]\)\|\([cd]\)/\1x/g   modifies "a b c d"  to "ax bx x x"
<

		*:sc* *:sce* *:scg* *:sci* *:scI* *:scl* *:scp* *:sg* *:sgc*
		*:sge* *:sgi* *:sgI* *:sgl* *:sgn* *:sgp* *:sgr* *:sI* *:si*
		*:sic* *:sIc* *:sie* *:sIe* *:sIg* *:sIl* *:sin* *:sIn* *:sIp*
		*:sip* *:sIr* *:sir* *:sr* *:src* *:srg* *:sri* *:srI* *:srl*
		*:srn* *:srp*
2-letter and 3-letter :substitute commands ~

     List of :substitute commands
     |      c    e    g    i    I    n    p    l    r
     | c  :sc  :sce :scg :sci :scI :scn :scp :scl  ---
     | e
     | g  :sgc :sge :sg  :sgi :sgI :sgn :sgp :sgl :sgr
     | i  :sic :sie  --- :si  :siI :sin :sip  --- :sir
     | I  :sIc :sIe :sIg :sIi :sI  :sIn :sIp :sIl :sIr
     | n
     | p
     | l
     | r  :src  --- :srg :sri :srI :srn :srp :srl :sr

Exceptions:
     :scr  is  `:scriptnames`
     :se   is  `:set`
     :sig  is  `:sign`
     :sil  is  `:silent`
     :sn   is  `:snext`
     :sp   is  `:split`
     :sl   is  `:sleep`
     :sre  is  `:srewind`


Substitute with an expression			*sub-replace-expression*
						*sub-replace-\=* *s/\=*
When the substitute string starts with "\=" the remainder is interpreted as an
expression.

The special meaning for characters as mentioned at |sub-replace-special| does
not apply except for "<CR>".  A <NL> character is used as a line break, you
can get one with a double-quote string: "\n".  Prepend a backslash to get a
real <NL> character (which will be a NUL in the file).

The "\=" notation can also be used inside the third argument {sub} of
|substitute()| function.  In this case, the special meaning for characters as
mentioned at |sub-replace-special| does not apply at all. Especially, <CR> and
<NL> are interpreted not as a line break but as a carriage-return and a
new-line respectively.

When the result is a |List| then the items are joined with separating line
breaks.  Thus each item becomes a line, except that they can contain line
breaks themselves.

The whole matched text can be accessed with "submatch(0)".  The text matched
with the first pair of () with "submatch(1)".  Likewise for further
sub-matches in ().

Be careful: The separation character must not appear in the expression!
Consider using a character like "@" or ":".  There is no problem if the result
of the expression contains the separation character.

Examples: >
	:s@\n@\="\r" . expand("$HOME") . "\r"@
This replaces an end-of-line with a new line containing the value of $HOME. >

	s/E/\="\<Char-0x20ac>"/g
This replaces each 'E' character with a euro sign.  Read more in |<Char->|.


4.3 Search and replace					*search-replace*

							*:pro* *:promptfind*
:promptf[ind] [string]
			Put up a Search dialog.  When [string] is given, it is
			used as the initial search string.
			{only for Win32, Motif and GTK GUI}

						*:promptr* *:promptrepl*
:promptr[epl] [string]
			Put up a Search/Replace dialog.  When [string] is
			given, it is used as the initial search string.
			{only for Win32, Motif and GTK GUI}


4.4 Changing tabs					*change-tabs*
							*:ret* *:retab* *:retab!*
:[range]ret[ab][!] [new_tabstop]
			Replace all sequences of white-space containing a
			<Tab> with new strings of white-space using the new
			tabstop value given.  If you do not specify a new
			tabstop size or it is zero, Vim uses the current value
			of 'tabstop'.
			The current value of 'tabstop' is always used to
			compute the width of existing tabs.
			With !, Vim also replaces strings of only normal
			spaces with tabs where appropriate.
			With 'expandtab' on, Vim replaces all tabs with the
			appropriate number of spaces.
			This command sets 'tabstop' to the new value given,
			and if performed on the whole file, which is default,
			should not make any visible change.
			Careful: This command modifies any <Tab> characters
			inside of strings in a C program.  Use "\t" to avoid
			this (that's a good habit anyway).
			`:retab!` may also change a sequence of spaces by
			<Tab> characters, which can mess up a printf().
			{not in Vi}

							*retab-example*
Example for using autocommands and ":retab" to edit a file which is stored
with tabstops at 8 but edited with tabstops set at 4.  Warning: white space
inside of strings can change!  Also see 'softtabstop' option. >

  :auto BufReadPost	*.xx	retab! 4
  :auto BufWritePre	*.xx	retab! 8
  :auto BufWritePost	*.xx	retab! 4
  :auto BufNewFile	*.xx	set ts=4

==============================================================================
5. Copying and moving text				*copy-move*

							*quote*
"{a-zA-Z0-9.%#:-"}	Use register {a-zA-Z0-9.%#:-"} for next delete, yank
			or put (use uppercase character to append with
			delete and yank) ({.%#:} only work with put).

							*:reg* *:registers*
:reg[isters]		Display the contents of all numbered and named
			registers.  If a register is written to for |:redir|
			it will not be listed.
			{not in Vi}


:reg[isters] {arg}	Display the contents of the numbered and named
			registers that are mentioned in {arg}.  For example: >
				:reg 1a
<			to display registers '1' and 'a'.  Spaces are allowed
			in {arg}.  {not in Vi}

							*:di* *:display*
:di[splay] [arg]	Same as :registers.  {not in Vi}

							*y* *yank*
["x]y{motion}		Yank {motion} text [into register x].  When no
			characters are to be yanked (e.g., "y0" in column 1),
			this is an error when 'cpoptions' includes the 'E'
			flag.

							*yy*
["x]yy			Yank [count] lines [into register x] |linewise|.

							*Y*
["x]Y			yank [count] lines [into register x] (synonym for
			yy, |linewise|).  If you like "Y" to work from the
			cursor to the end of line (which is more logical,
			but not Vi-compatible) use ":map Y y$".

							*v_y*
{Visual}["x]y		Yank the highlighted text [into register x] (for
			{Visual} see |Visual-mode|).  {not in Vi}

							*v_Y*
{Visual}["x]Y		Yank the highlighted lines [into register x] (for
			{Visual} see |Visual-mode|).  {not in Vi}

							*:y* *:yank* *E850*
:[range]y[ank] [x]	Yank [range] lines [into register x]. Yanking to the
			"* or "+ registers is possible only when the
			|+clipboard| feature is included.

:[range]y[ank] [x] {count}
			Yank {count} lines, starting with last line number
			in [range] (default: current line |cmdline-ranges|),
			[into register x].

							*p* *put* *E353*
["x]p			Put the text [from register x] after the cursor
			[count] times.  {Vi: no count}

							*P*
["x]P			Put the text [from register x] before the cursor
			[count] times.  {Vi: no count}

							*<MiddleMouse>*
["x]<MiddleMouse>	Put the text from a register before the cursor [count]
			times.  Uses the "* register, unless another is
			specified.
			Leaves the cursor at the end of the new text.
			Using the mouse only works when 'mouse' contains 'n'
			or 'a'.
			{not in Vi}
			If you have a scrollwheel and often accidentally paste
			text, you can use these mappings to disable the
			pasting with the middle mouse button: >
				:map <MiddleMouse> <Nop>
				:imap <MiddleMouse> <Nop>
<			You might want to disable the multi-click versions
			too, see |double-click|.

							*gp*
["x]gp			Just like "p", but leave the cursor just after the new
			text.  {not in Vi}

							*gP*
["x]gP			Just like "P", but leave the cursor just after the new
			text.  {not in Vi}

							*:pu* *:put*
:[line]pu[t] [x]	Put the text [from register x] after [line] (default
			current line).  This always works |linewise|, thus
			this command can be used to put a yanked block as new
			lines.
			If no register is specified, it depends on the 'cb'
			option: If 'cb' contains "unnamedplus", paste from the
			+ register |quoteplus|.  Otherwise, if 'cb' contains
			"unnamed", paste from the * register |quotestar|.
			Otherwise, paste from the unnamed register
			|quote_quote|.
			The register can also be '=' followed by an optional
			expression.  The expression continues until the end of
			the command.  You need to escape the '|' and '"'
			characters to prevent them from terminating the
			command.  Example: >
				:put ='path' . \",/test\"
<			If there is no expression after '=', Vim uses the
			previous expression.  You can see it with ":dis =".

:[line]pu[t]! [x]	Put the text [from register x] before [line] (default
			current line).

["x]]p		    or					*]p* *]<MiddleMouse>*
["x]]<MiddleMouse>	Like "p", but adjust the indent to the current line.
			Using the mouse only works when 'mouse' contains 'n'
			or 'a'.  {not in Vi}

["x][P		    or					*[P*
["x]]P		    or					*]P*
["x][p		    or					*[p* *[<MiddleMouse>*
["x][<MiddleMouse>	Like "P", but adjust the indent to the current line.
			Using the mouse only works when 'mouse' contains 'n'
			or 'a'.  {not in Vi}

You can use these commands to copy text from one place to another.  Do this
by first getting the text into a register with a yank, delete or change
command, then inserting the register contents with a put command.  You can
also use these commands to move text from one file to another, because Vim
preserves all registers when changing buffers (the CTRL-^ command is a quick
way to toggle between two files).

				*linewise-register* *characterwise-register*
You can repeat the put commands with "." (except for :put) and undo them.  If
the command that was used to get the text into the register was |linewise|,
Vim inserts the text below ("p") or above ("P") the line where the cursor is.
Otherwise Vim inserts the text after ("p") or before ("P") the cursor.  With
the ":put" command, Vim always inserts the text in the next line.  You can
exchange two characters with the command sequence "xp".  You can exchange two
lines with the command sequence "ddp".  You can exchange two words with the
command sequence "deep" (start with the cursor in the blank space before the
first word).  You can use the "']" or "`]" command after the put command to
move the cursor to the end of the inserted text, or use "'[" or "`[" to move
the cursor to the start.

						*put-Visual-mode* *v_p* *v_P*
When using a put command like |p| or |P| in Visual mode, Vim will try to
replace the selected text with the contents of the register.  Whether this
works well depends on the type of selection and the type of the text in the
register.  With blockwise selection it also depends on the size of the block
and whether the corners are on an existing character.  (Implementation detail:
it actually works by first putting the register after the selection and then
deleting the selection.)
The previously selected text is put in the unnamed register.  If you want to
put the same text into a Visual selection several times you need to use
another register.  E.g., yank the text to copy, Visually select the text to
replace and use "0p .  You can repeat this as many times as you like, the
unnamed register will be changed each time.

When you use a blockwise Visual mode command and yank only a single line into
a register, a paste on a visual selected area will paste that single line on
each of the selected lines (thus replacing the blockwise selected region by a
block of the pasted line).

							*blockwise-register*
If you use a blockwise Visual mode command to get the text into the register,
the block of text will be inserted before ("P") or after ("p") the cursor
column in the current and next lines.  Vim makes the whole block of text start
in the same column.  Thus the inserted text looks the same as when it was
yanked or deleted.  Vim may replace some <Tab> characters with spaces to make
this happen.  However, if the width of the block is not a multiple of a <Tab>
width and the text after the inserted block contains <Tab>s, that text may be
misaligned.

Note that after a characterwise yank command, Vim leaves the cursor on the
first yanked character that is closest to the start of the buffer.  This means
that "yl" doesn't move the cursor, but "yh" moves the cursor one character
left.
Rationale:	In Vi the "y" command followed by a backwards motion would
		sometimes not move the cursor to the first yanked character,
		because redisplaying was skipped.  In Vim it always moves to
		the first character, as specified by Posix.
With a linewise yank command the cursor is put in the first line, but the
column is unmodified, thus it may not be on the first yanked character.

There are ten types of registers:			*registers* *E354*
1. The unnamed register ""
2. 10 numbered registers "0 to "9
3. The small delete register "-
4. 26 named registers "a to "z or "A to "Z
5. three read-only registers ":, "., "%
6. alternate buffer register "#
7. the expression register "=
8. The selection and drop registers "*, "+ and "~ 
9. The black hole register "_
10. Last search pattern register "/

1. Unnamed register ""				*quote_quote* *quotequote*
Vim fills this register with text deleted with the "d", "c", "s", "x" commands
or copied with the yank "y" command, regardless of whether or not a specific
register was used (e.g.  "xdd).  This is like the unnamed register is pointing
to the last used register.  Thus when appending using an uppercase register
name, the unnamed register contains the same text as the named register.
An exception is the '_' register: "_dd does not store the deleted text in any
register.
Vim uses the contents of the unnamed register for any put command (p or P)
which does not specify a register.  Additionally you can access it with the
name '"'.  This means you have to type two double quotes.  Writing to the ""
register writes to register "0.
{Vi: register contents are lost when changing files, no '"'}

2. Numbered registers "0 to "9		*quote_number* *quote0* *quote1*
					*quote2* *quote3* *quote4* *quote9*
Vim fills these registers with text from yank and delete commands.
   Numbered register 0 contains the text from the most recent yank command,
unless the command specified another register with ["x].
   Numbered register 1 contains the text deleted by the most recent delete or
change command, unless the command specified another register or the text is
less than one line (the small delete register is used then).  An exception is
made for the delete operator with these movement commands: |%|, |(|, |)|, |`|,
|/|, |?|, |n|, |N|, |{| and |}|.  Register "1 is always used then (this is Vi
compatible).  The "- register is used as well if the delete is within a line.
Note that these characters may be mapped.  E.g. |%| is mapped by the matchit
plugin.
   With each successive deletion or change, Vim shifts the previous contents
of register 1 into register 2, 2 into 3, and so forth, losing the previous
contents of register 9.
{Vi: numbered register contents are lost when changing files; register 0 does
not exist}

3. Small delete register "-				*quote_-* *quote-*
This register contains text from commands that delete less than one line,
except when the command specifies a register with ["x].
{not in Vi}

4. Named registers "a to "z or "A to "Z			*quote_alpha* *quotea*
Vim fills these registers only when you say so.  Specify them as lowercase
letters to replace their previous contents or as uppercase letters to append
to their previous contents.  When the '>' flag is present in 'cpoptions' then
a line break is inserted before the appended text.

5. Read-only registers ":, ". and "%
These are '%', '#', ':' and '.'.  You can use them only with the "p", "P",
and ":put" commands and with CTRL-R.  {not in Vi}
						*quote_.* *quote.* *E29*
	".	Contains the last inserted text (the same as what is inserted
		with the insert mode commands CTRL-A and CTRL-@).  Note: this
		doesn't work with CTRL-R on the command-line.  It works a bit
		differently, like inserting the text instead of putting it
		('textwidth' and other options affect what is inserted).
							*quote_%* *quote%*
	"%	Contains the name of the current file.
						*quote_:* *quote:* *E30*
	":	Contains the most recent executed command-line.  Example: Use
		"@:" to repeat the previous command-line command.
		The command-line is only stored in this register when at least
		one character of it was typed.  Thus it remains unchanged if
		the command was completely from a mapping.
		{not available when compiled without the |+cmdline_hist|
		feature}
							*quote_#* *quote#*
6. Alternate file register "#
Contains the name of the alternate file for the current window.  It will
change how the |CTRL-^| command works.
This register is writable, mainly to allow for restoring it after a plugin has
changed it.  It accepts buffer number: >
    let altbuf = bufnr(@#)
    ...
    let @# = altbuf
It will give error |E86| if you pass buffer number and this buffer does not
exist.
It can also accept a match with an existing buffer name: >
    let @# = 'buffer_name'
Error |E93| if there is more than one buffer matching the given name or |E94|
if none of buffers matches the given name.

7. Expression register "=			*quote_=* *quote=* *@=*
This is not really a register that stores text, but is a way to use an
expression in commands which use a register.  The expression register is
read-write.

When typing the '=' after " or CTRL-R the cursor moves to the command-line,
where you can enter any expression (see |expression|).  All normal
command-line editing commands are available, including a special history for
expressions.  When you end the command-line by typing <CR>, Vim computes the
result of the expression.  If you end it with <Esc>, Vim abandons the
expression.  If you do not enter an expression, Vim uses the previous
expression (like with the "/" command).

The expression must evaluate to a String.  A Number is always automatically
converted to a String.  For the "p" and ":put" command, if the result is a
Float it's converted into a String.  If the result is a List each element is
turned into a String and used as a line.  A Dictionary or FuncRef results in
an error message (use string() to convert).

If the "= register is used for the "p" command, the String is split up at <NL>
characters.  If the String ends in a <NL>, it is regarded as a linewise
register.  {not in Vi}

8. Selection and drop registers "*, "+ and "~ 
Use these registers for storing and retrieving the selected text for the GUI.
See |quotestar| and |quoteplus|.  When the clipboard is not available or not
working, the unnamed register is used instead.  For Unix systems the clipboard
is only available when the |+xterm_clipboard| feature is present.  {not in Vi}

Note that there is only a distinction between "* and "+ for X11 systems.  For
an explanation of the difference, see |x11-selection|.  Under MS-Windows, use
of "* and "+ is actually synonymous and refers to the |gui-clipboard|.

						*quote_~* *quote~* *<Drop>*
The read-only "~ register stores the dropped text from the last drag'n'drop
operation.  When something has been dropped onto Vim, the "~ register is
filled in and the <Drop> pseudo key is sent for notification.  You can remap
this key if you want; the default action (for all modes) is to insert the
contents of the "~ register at the cursor position.  {not in Vi}
{only available when compiled with the |+dnd| feature, currently only with the
GTK GUI}

Note: The "~ register is only used when dropping plain text onto Vim.
Drag'n'drop of URI lists is handled internally.

9. Black hole register "_				*quote_*
When writing to this register, nothing happens.  This can be used to delete
text without affecting the normal registers.  When reading from this register,
nothing is returned.  {not in Vi}

10. Last search pattern register	"/			*quote_/* *quote/*
Contains the most recent search-pattern.  This is used for "n" and 'hlsearch'.
It is writable with `:let`, you can change it to have 'hlsearch' highlight
other matches without actually searching.  You can't yank or delete into this
register.  The search direction is available in |v:searchforward|.
Note that the value is restored when returning from a function
|function-search-undo|.
{not in Vi}

							*@/*
You can write to a register with a `:let` command |:let-@|.  Example: >
	:let @/ = "the"

If you use a put command without specifying a register, Vim uses the register
that was last filled (this is also the contents of the unnamed register).  If
you are confused, use the `:dis` command to find out what Vim will put (this
command displays all named and numbered registers; the unnamed register is
labelled '"').

The next three commands always work on whole lines.

:[range]co[py] {address}				*:co* *:copy*
			Copy the lines given by [range] to below the line
			given by {address}.

							*:t*
:t			Synonym for copy.

:[range]m[ove] {address}			*:m* *:mo* *:move* *E134*
			Move the lines given by [range] to below the line
			given by {address}.

==============================================================================
6. Formatting text					*formatting*

:[range]ce[nter] [width]				*:ce* *:center*
			Center lines in [range] between [width] columns
			(default 'textwidth' or 80 when 'textwidth' is 0).
			{not in Vi}

:[range]ri[ght] [width]					*:ri* *:right*
			Right-align lines in [range] at [width] columns
			(default 'textwidth' or 80 when 'textwidth' is 0).
			{not in Vi}

							*:le* *:left*
:[range]le[ft] [indent]
			Left-align lines in [range].  Sets the indent in the
			lines to [indent] (default 0).  {not in Vi}

							*gq*
gq{motion}		Format the lines that {motion} moves over.
			Formatting is done with one of three methods:
			1. If 'formatexpr' is not empty the expression is
			   evaluated.  This can differ for each buffer.
			2. If 'formatprg' is not empty an external program
			   is used.
			3. Otherwise formatting is done internally.

			In the third case the 'textwidth' option controls the
			length of each formatted line (see below).
			If the 'textwidth' option is 0, the formatted line
			length is the screen width (with a maximum width of
			79).
			The 'formatoptions' option controls the type of
			formatting |fo-table|.
			The cursor is left on the first non-blank of the last
			formatted line.
			NOTE: The "Q" command formerly performed this
			function.  If you still want to use "Q" for
			formatting, use this mapping: >
				:nnoremap Q gq

gqgq							*gqgq* *gqq*
gqq			Format the current line.  With a count format that
			many lines.  {not in Vi}

							*v_gq*
{Visual}gq		Format the highlighted text.  (for {Visual} see
			|Visual-mode|).  {not in Vi}

							*gw*
gw{motion}		Format the lines that {motion} moves over.  Similar to
			|gq| but puts the cursor back at the same position in
			the text.  However, 'formatprg' and 'formatexpr' are
			not used.  {not in Vi}

gwgw							*gwgw* *gww*
gww			Format the current line as with "gw".  {not in Vi}

							*v_gw*
{Visual}gw		Format the highlighted text as with "gw".  (for
			{Visual} see |Visual-mode|).  {not in Vi}

Example: To format the current paragraph use:			*gqap*  >
	gqap

The "gq" command leaves the cursor in the line where the motion command takes
the cursor.  This allows you to repeat formatting repeated with ".".  This
works well with "gqj" (format current and next line) and "gq}" (format until
end of paragraph).  Note: When 'formatprg' is set, "gq" leaves the cursor on
the first formatted line (as with using a filter command).

If you want to format the current paragraph and continue where you were, use: >
	gwap
If you always want to keep paragraphs formatted you may want to add the 'a'
flag to 'formatoptions'.  See |auto-format|.

If the 'autoindent' option is on, Vim uses the indent of the first line for
the following lines.

Formatting does not change empty lines (but it does change lines with only
white space!).

The 'joinspaces' option is used when lines are joined together.

You can set the 'formatexpr' option to an expression or the 'formatprg' option
to the name of an external program for Vim to use for text formatting.  The
'textwidth' and other options have no effect on formatting by an external
program.

							*right-justify*
There is no command in Vim to right justify text.  You can do it with
an external command, like "par" (e.g.: "!}par" to format until the end of the
paragraph) or set 'formatprg' to "par".

							*format-comments*
An overview of comment formatting is in section |30.6| of the user manual.

Vim can automatically insert and format comments in a special way.  Vim
recognizes a comment by a specific string at the start of the line (ignoring
white space).  Three types of comments can be used:

- A comment string that repeats at the start of each line.  An example is the
  type of comment used in shell scripts, starting with "#".
- A comment string that occurs only in the first line, not in the following
  lines.  An example is this list with dashes.
- Three-piece comments that have a start string, an end string, and optional
  lines in between.  The strings for the start, middle and end are different.
  An example is the C style comment:
	/*
	 * this is a C comment
	 */

The 'comments' option is a comma-separated list of parts.  Each part defines a
type of comment string.  A part consists of:
	{flags}:{string}

{string} is the literal text that must appear.

{flags}:
  n	Nested comment.  Nesting with mixed parts is allowed.  If 'comments'
	is "n:),n:>" a line starting with "> ) >" is a comment.

  b	Blank (<Space>, <Tab> or <EOL>) required after {string}.

  f	Only the first line has the comment string.  Do not repeat comment on
	the next line, but preserve indentation (e.g., a bullet-list).

  s	Start of three-piece comment

  m	Middle of a three-piece comment

  e	End of a three-piece comment

  l	Left align. Used together with 's' or 'e', the leftmost character of
	start or end will line up with the leftmost character from the middle.
	This is the default and can be omitted. See below for more details.

  r	Right align. Same as above but rightmost instead of leftmost. See
	below for more details.

  O	Don't consider this comment for the "O" command.

  x	Allows three-piece comments to be ended by just typing the last
	character of the end-comment string as the first action on a new
	line when the middle-comment string has been inserted automatically.
	See below for more details.

  {digits}
	When together with 's' or 'e': add {digit} amount of offset to an
	automatically inserted middle or end comment leader. The offset begins
	from a left alignment. See below for more details.

  -{digits}
	Like {digits} but reduce the indent.  This only works when there is
	some indent for the start or end part that can be removed.

When a string has none of the 'f', 's', 'm' or 'e' flags, Vim assumes the
comment string repeats at the start of each line.  The flags field may be
empty.

Any blank space in the text before and after the {string} is part of the
{string}, so do not include leading or trailing blanks unless the blanks are a
required part of the comment string.

When one comment leader is part of another, specify the part after the whole.
For example, to include both "-" and "->", use >
	:set comments=f:->,f:-

A three-piece comment must always be given as start,middle,end, with no other
parts in between.  An example of a three-piece comment is >
	sr:/*,mb:*,ex:*/
for C-comments.  To avoid recognizing "*ptr" as a comment, the middle string
includes the 'b' flag.  For three-piece comments, Vim checks the text after
the start and middle strings for the end string.  If Vim finds the end string,
the comment does not continue on the next line.  Three-piece comments must
have a middle string because otherwise Vim can't recognize the middle lines.

Notice the use of the "x" flag in the above three-piece comment definition.
When you hit Return in a C-comment, Vim will insert the middle comment leader
for the new line: " * ".  To close this comment you just have to type "/"
before typing anything else on the new line.  This will replace the
middle-comment leader with the end-comment leader and apply any specified
alignment, leaving just " */".  There is no need to hit Backspace first.

When there is a match with a middle part, but there also is a matching end
part which is longer, the end part is used.  This makes a C style comment work
without requiring the middle part to end with a space.

Here is an example of alignment flags at work to make a comment stand out
(kind of looks like a 1 too). Consider comment string: >
	:set comments=sr:/***,m:**,ex-2:******/
<
                                   /*** ~
                                     **<--right aligned from "r" flag ~
                                     ** ~
offset 2 spaces for the "-2" flag--->** ~
                                   ******/ ~
In this case, the first comment was typed, then return was pressed 4 times,
then "/" was pressed to end the comment.

Here are some finer points of three part comments. There are three times when
alignment and offset flags are taken into consideration: opening a new line
after a start-comment, opening a new line before an end-comment, and
automatically ending a three-piece comment.  The end alignment flag has a
backwards perspective; the result is that the same alignment flag used with
"s" and "e" will result in the same indent for the starting and ending pieces.
Only one alignment per comment part is meant to be used, but an offset number
will override the "r" and "l" flag.

Enabling 'cindent' will override the alignment flags in many cases.
Reindenting using a different method like |gq| or |=| will not consult
alignment flags either. The same behaviour can be defined in those other
formatting options. One consideration is that 'cindent' has additional options
for context based indenting of comments but cannot replicate many three piece
indent alignments.  However, 'indentexpr' has the ability to work better with
three piece comments.

Other examples: >
   "b:*"	Includes lines starting with "*", but not if the "*" is
		followed by a non-blank.  This avoids a pointer dereference
		like "*str" to be recognized as a comment.
   "n:>"	Includes a line starting with ">", ">>", ">>>", etc.
   "fb:-"	Format a list that starts with "- ".

By default, "b:#" is included.  This means that a line that starts with
"#include" is not recognized as a comment line.  But a line that starts with
"# define" is recognized.  This is a compromise.

{not available when compiled without the |+comments| feature}

							*fo-table*
You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter	 meaning when present in 'formatoptions'    ~

t	Auto-wrap text using textwidth
c	Auto-wrap comments using textwidth, inserting the current comment
	leader automatically.
r	Automatically insert the current comment leader after hitting
	<Enter> in Insert mode.
o	Automatically insert the current comment leader after hitting 'o' or
	'O' in Normal mode.
q	Allow formatting of comments with "gq".
	Note that formatting will not change blank lines or lines containing
	only the comment leader.  A new paragraph starts after such a line,
	or when the comment leader changes.
w	Trailing white space indicates a paragraph continues in the next line.
	A line that ends in a non-white character ends a paragraph.
a	Automatic formatting of paragraphs.  Every time text is inserted or
	deleted the paragraph will be reformatted.  See |auto-format|.
	When the 'c' flag is present this only happens for recognized
	comments.
n	When formatting text, recognize numbered lists.  This actually uses
	the 'formatlistpat' option, thus any kind of list can be used.  The
	indent of the text after the number is used for the next line.  The
	default is to find a number, optionally followed by '.', ':', ')',
	']' or '}'.  Note that 'autoindent' must be set too.  Doesn't work
	well together with "2".
	Example: >
		1. the first item
		   wraps
		2. the second item
2	When formatting text, use the indent of the second line of a paragraph
	for the rest of the paragraph, instead of the indent of the first
	line.  This supports paragraphs in which the first line has a
	different indent than the rest.  Note that 'autoindent' must be set
	too.  Example: >
			first line of a paragraph
		second line of the same paragraph
		third line.
<	This also works inside comments, ignoring the comment leader.
v	Vi-compatible auto-wrapping in insert mode: Only break a line at a
	blank that you have entered during the current insert command.  (Note:
	this is not 100% Vi compatible.  Vi has some "unexpected features" or
	bugs in this area.  It uses the screen column instead of the line
	column.)
b	Like 'v', but only auto-wrap if you enter a blank at or before
	the wrap margin.  If the line was longer than 'textwidth' when you
	started the insert, or you do not enter a blank in the insert before
	reaching 'textwidth', Vim does not perform auto-wrapping.
l	Long lines are not broken in insert mode: When a line was longer than
	'textwidth' when the insert command started, Vim does not
	automatically format it.
m	Also break at a multi-byte character above 255.  This is useful for
	Asian text where every character is a word on its own.
M	When joining lines, don't insert a space before or after a multi-byte
	character.  Overrules the 'B' flag.
B	When joining lines, don't insert a space between two multi-byte
	characters.  Overruled by the 'M' flag.
1	Don't break a line after a one-letter word.  It's broken before it
	instead (if possible).
j	Where it makes sense, remove a comment leader when joining lines.  For
	example, joining:
		int i;   // the index ~
		         // in the list ~
	Becomes:
		int i;   // the index in the list ~


With 't' and 'c' you can specify when Vim performs auto-wrapping:
value	action	~
""	no automatic formatting (you can use "gq" for manual formatting)
"t"	automatic formatting of text, but not comments
"c"	automatic formatting for comments, but not text (good for C code)
"tc"	automatic formatting for text and comments

Note that when 'textwidth' is 0, Vim does no automatic formatting anyway (but
does insert comment leaders according to the 'comments' option).  An exception
is when the 'a' flag is present. |auto-format|

Note that when 'paste' is on, Vim does no formatting at all.

Note that 'textwidth' can be non-zero even if Vim never performs auto-wrapping;
'textwidth' is still useful for formatting with "gq".

If the 'comments' option includes "/*", "*" and/or "*/", then Vim has some
built in stuff to treat these types of comments a bit more cleverly.
Opening a new line before or after "/*" or "*/" (with 'r' or 'o' present in
'formatoptions') gives the correct start of the line automatically.  The same
happens with formatting and auto-wrapping.  Opening a line after a line
starting with "/*" or "*" and containing "*/", will cause no comment leader to
be inserted, and the indent of the new line is taken from the line containing
the start of the comment.
E.g.:
    /* ~
     * Your typical comment. ~
     */ ~
    The indent on this line is the same as the start of the above
    comment.

All of this should be really cool, especially in conjunction with the new
:autocmd command to prepare different settings for different types of file.

Some examples:
  for C code (only format comments): >
	:set fo=croq
< for Mail/news	(format all, don't start comment with "o" command): >
	:set fo=tcrq
<

Automatic formatting				*auto-format* *autoformat*

When the 'a' flag is present in 'formatoptions' text is formatted
automatically when inserting text or deleting text.  This works nice for
editing text paragraphs.  A few hints on how to use this:

- You need to properly define paragraphs.  The simplest is paragraphs that are
  separated by a blank line.  When there is no separating blank line, consider
  using the 'w' flag and adding a space at the end of each line in the
  paragraphs except the last one.

- You can set the 'formatoptions' based on the type of file |filetype| or
  specifically for one file with a |modeline|.

- Set 'formatoptions' to "aw2tq" to make text with indents like this:

	    bla bla foobar bla 
	bla foobar bla foobar bla
	    bla bla foobar bla 
	bla foobar bla bla foobar

- Add the 'c' flag to only auto-format comments.  Useful in source code.

- Set 'textwidth' to the desired width.  If it is zero then 79 is used, or the
  width of the screen if this is smaller.

And a few warnings:

- When part of the text is not properly separated in paragraphs, making
  changes in this text will cause it to be formatted anyway.  Consider doing >

	:set fo-=a

- When using the 'w' flag (trailing space means paragraph continues) and
  deleting the last line of a paragraph with |dd|, the paragraph will be
  joined with the next one.

- Changed text is saved for undo.  Formatting is also a change.  Thus each
  format action saves text for undo.  This may consume quite a lot of memory.

- Formatting a long paragraph and/or with complicated indenting may be slow.

==============================================================================
7. Sorting text						*sorting*

Vim has a sorting function and a sorting command.  The sorting function can be
found here: |sort()|, |uniq()|.

							*:sor* *:sort*
:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
			Sort lines in [range].  When no range is given all
			lines are sorted.

			With [!] the order is reversed.

			With [i] case is ignored.

			Options [n][f][x][o][b] are mutually exclusive.

			With [n] sorting is done on the first decimal number
			in the line (after or inside a {pattern} match).
			One leading '-' is included in the number.

			With [f] sorting is done on the Float in the line.
			The value of Float is determined similar to passing
			the text (after or inside a {pattern} match) to
			str2float() function. This option is available only
			if Vim was compiled with Floating point support.

			With [x] sorting is done on the first hexadecimal
			number in the line (after or inside a {pattern}
			match).  A leading "0x" or "0X" is ignored.
			One leading '-' is included in the number.

			With [o] sorting is done on the first octal number in
			the line (after or inside a {pattern} match).

			With [b] sorting is done on the first binary number in
			the line (after or inside a {pattern} match).

			With [u] (u stands for unique) only keep the first of
			a sequence of identical lines (ignoring case when [i]
			is used).  Without this flag, a sequence of identical
			lines will be kept in their original order.
			Note that leading and trailing white space may cause
			lines to be different.

			When /{pattern}/ is specified and there is no [r] flag
			the text matched with {pattern} is skipped, so that
			you sort on what comes after the match.
			Instead of the slash any non-letter can be used.
			For example, to sort on the second comma-separated
			field: >
				:sort /[^,]*,/
<			To sort on the text at virtual column 10 (thus
			ignoring the difference between tabs and spaces): >
				:sort /.*\%10v/
<			To sort on the first number in the line, no matter
			what is in front of it: >
				:sort /.\{-}\ze\d/
<			(Explanation: ".\{-}" matches any text, "\ze" sets the
			end of the match and \d matches a digit.)
			With [r] sorting is done on the matching {pattern}
			instead of skipping past it as described above.
			For example, to sort on only the first three letters
			of each line: >
				:sort /\a\a\a/ r

<			If a {pattern} is used, any lines which don't have a
			match for {pattern} are kept in their current order,
			but separate from the lines which do match {pattern}.
			If you sorted in reverse, they will be in reverse
			order after the sorted lines, otherwise they will be
			in their original order, right before the sorted
			lines.

			If {pattern} is empty (e.g. // is specified), the
			last search pattern is used.  This allows trying out
			a pattern first.

Note that using `:sort` with `:global` doesn't sort the matching lines, it's
quite useless.

The details about sorting depend on the library function used.  There is no
guarantee that sorting obeys the current locale.  You will have to try it out.
Vim does do a "stable" sort.

The sorting can be interrupted, but if you interrupt it too late in the
process you may end up with duplicated lines.  This also depends on the system
library function used.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z݇�6%6%vim80/doc/ft_rust.txtnu�[���*ft_rust.txt*      Filetype plugin for Rust

==============================================================================
CONTENTS                                                      *rust*

1. Introduction                                                   |rust-intro|
2. Settings                                                    |rust-settings|
3. Commands                                                    |rust-commands|
4. Mappings                                                    |rust-mappings|

==============================================================================
INTRODUCTION                                                      *rust-intro*

This plugin provides syntax and supporting functionality for the Rust
filetype.

==============================================================================
SETTINGS                                                       *rust-settings*

This plugin has a few variables you can define in your vimrc that change the
behavior of the plugin.

                                                                *g:rustc_path*
g:rustc_path~
	Set this option to the path to rustc for use in the |:RustRun| and
	|:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
	    let g:rustc_path = $HOME."/bin/rustc"
<

                                                  *g:rustc_makeprg_no_percent*
g:rustc_makeprg_no_percent~
	Set this option to 1 to have 'makeprg' default to "rustc" instead of
	"rustc %": >
	    let g:rustc_makeprg_no_percent = 1
<

                                                              *g:rust_conceal*
g:rust_conceal~
	Set this option to turn on the basic |conceal| support: >
	    let g:rust_conceal = 1
<

                                                     *g:rust_conceal_mod_path*
g:rust_conceal_mod_path~
	Set this option to turn on |conceal| for the path connecting token
	"::": >
	    let g:rust_conceal_mod_path = 1
<

                                                          *g:rust_conceal_pub*
g:rust_conceal_pub~
	Set this option to turn on |conceal| for the "pub" token: >
	    let g:rust_conceal_pub = 1
<

                                                     *g:rust_recommended_style*
g:rust_recommended_style~
        Set this option to enable vim indentation and textwidth settings to
        conform to style conventions of the rust standard library (i.e. use 4
        spaces for indents and sets 'textwidth' to 99). This option is enabled
	by default. To disable it: >
	    let g:rust_recommended_style = 0
<

                                                                 *g:rust_fold*
g:rust_fold~
	Set this option to turn on |folding|: >
	    let g:rust_fold = 1
<
	Value		Effect ~
	0		No folding
	1		Braced blocks are folded. All folds are open by
			default.
	2		Braced blocks are folded. 'foldlevel' is left at the
			global value (all folds are closed by default).

                                                  *g:rust_bang_comment_leader*
g:rust_bang_comment_leader~
	Set this option to 1 to preserve the leader on multi-line doc comments
	using the /*! syntax: >
	    let g:rust_bang_comment_leader = 1
<

                                                 *g:ftplugin_rust_source_path*
g:ftplugin_rust_source_path~
	Set this option to a path that should be prepended to 'path' for Rust
	source files: >
	    let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
<

                                                       *g:rustfmt_command*
g:rustfmt_command~
	Set this option to the name of the 'rustfmt' executable in your $PATH. If
	not specified it defaults to 'rustfmt' : >
	    let g:rustfmt_command = 'rustfmt'
<
                                                       *g:rustfmt_autosave*
g:rustfmt_autosave~
	Set this option to 1 to run |:RustFmt| automatically when saving a
	buffer. If not specified it defaults to 0 : >
	    let g:rustfmt_autosave = 0
<
                                                       *g:rustfmt_fail_silently*
g:rustfmt_fail_silently~
	Set this option to 1 to prevent 'rustfmt' from populating the
	|location-list| with errors. If not specified it defaults to 0: >
	    let g:rustfmt_fail_silently = 0
<
                                                       *g:rustfmt_options*
g:rustfmt_options~
	Set this option to a string of options to pass to 'rustfmt'. The
	write-mode is already set to 'overwrite'. If not specified it
	defaults to '' : >
	    let g:rustfmt_options = ''
<

                                                          *g:rust_playpen_url*
g:rust_playpen_url~
	Set this option to override the URL for the playpen to use: >
	    let g:rust_playpen_url = 'https://play.rust-lang.org/'
<

                                                        *g:rust_shortener_url*
g:rust_shortener_url~
	Set this option to override the URL for the URL shortener: >
	    let g:rust_shortener_url = 'https://is.gd/'
<


==============================================================================
COMMANDS                                                       *rust-commands*

:RustRun  [args]                                                    *:RustRun*
:RustRun! [rustc-args] [--] [args]
		Compiles and runs the current file. If it has unsaved changes,
		it will be saved first using |:update|. If the current file is
		an unnamed buffer, it will be written to a temporary file
		first. The compiled binary is always placed in a temporary
		directory, but is run from the current directory.

		The arguments given to |:RustRun| will be passed to the
		compiled binary.

		If ! is specified, the arguments are passed to rustc instead.
		A "--" argument will separate the rustc arguments from the
		arguments passed to the binary.

		If |g:rustc_path| is defined, it is used as the path to rustc.
		Otherwise it is assumed rustc can be found in $PATH.

:RustExpand  [args]                                              *:RustExpand*
:RustExpand! [TYPE] [args]
		Expands the current file using --pretty and displays the
		results in a new split. If the current file has unsaved
		changes, it will be saved first using |:update|. If the
		current file is an unnamed buffer, it will be written to a
		temporary file first.

		The arguments given to |:RustExpand| will be passed to rustc.
		This is largely intended for specifying various --cfg
		configurations.

		If ! is specified, the first argument is the expansion type to
		pass to rustc --pretty. Otherwise it will default to
		"expanded".

		If |g:rustc_path| is defined, it is used as the path to rustc.
		Otherwise it is assumed rustc can be found in $PATH.

:RustEmitIr [args]                                               *:RustEmitIr*
		Compiles the current file to LLVM IR and displays the results
		in a new split. If the current file has unsaved changes, it
		will be saved first using |:update|. If the current file is an
		unnamed buffer, it will be written to a temporary file first.

		The arguments given to |:RustEmitIr| will be passed to rustc.

		If |g:rustc_path| is defined, it is used as the path to rustc.
		Otherwise it is assumed rustc can be found in $PATH.

:RustEmitAsm [args]                                             *:RustEmitAsm*
		Compiles the current file to assembly and displays the results
		in a new split. If the current file has unsaved changes, it
		will be saved first using |:update|. If the current file is an
		unnamed buffer, it will be written to a temporary file first.

		The arguments given to |:RustEmitAsm| will be passed to rustc.

		If |g:rustc_path| is defined, it is used as the path to rustc.
		Otherwise it is assumed rustc can be found in $PATH.

:RustPlay                                                          *:RustPlay*
		This command will only work if you have web-api.vim installed
		(available at https://github.com/mattn/webapi-vim).  It sends the
		current selection, or if nothing is selected, the entirety of the
		current buffer to the Rust playpen, and emits a message with the
		shortened URL to the playpen.

		|g:rust_playpen_url| is the base URL to the playpen, by default
		"https://play.rust-lang.org/".

		|g:rust_shortener_url| is the base URL for the shortener, by
		default "https://is.gd/"

:RustFmt                                                       *:RustFmt*
		Runs |g:rustfmt_command| on the current buffer. If
		|g:rustfmt_options| is set then those will be passed to the
		executable.

		If |g:rustfmt_fail_silently| is 0 (the default) then it
		will populate the |location-list| with the errors from
		|g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
		then it will not populate the |location-list|.

:RustFmtRange                                                  *:RustFmtRange*
		Runs |g:rustfmt_command| with selected range. See
		|:RustFmt| for any other information.

==============================================================================
MAPPINGS                                                       *rust-mappings*

This plugin defines mappings for |[[| and |]]| to support hanging indents.

It also has a few other mappings:

							*rust_<D-r>*
<D-r>			Executes |:RustRun| with no arguments.
			Note: This binding is only available in MacVim.

							*rust_<D-R>*
<D-R>			Populates the command line with |:RustRun|! using the
			arguments given to the last invocation, but does not
			execute it.
			Note: This binding is only available in MacVim.

==============================================================================
 vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
PK�j�Z D���vim80/doc/pi_paren.txtnu�[���*pi_paren.txt*  For Vim version 8.0.  Last change: 2013 May 08


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Highlighting matching parens			*matchparen*

The functionality mentioned here is a |standard-plugin|.
This plugin is only available if 'compatible' is not set.

You can avoid loading this plugin by setting the "loaded_matchparen" variable: >
	:let loaded_matchparen = 1

The plugin installs CursorMoved, CursorMovedI and WinEnter autocommands to
redefine the match highlighting.

					*:NoMatchParen* *:DoMatchParen*
To disable the plugin after it was loaded use this command: >

	:NoMatchParen

And to enable it again: >

	:DoMatchParen

The highlighting used is MatchParen.  You can specify different colors with
the ":highlight" command.  Example: >

	:hi MatchParen ctermbg=blue guibg=lightblue

The characters to be matched come from the 'matchpairs' option.  You can
change the value to highlight different matches.  Note that not everything is
possible.  For example, you can't highlight single or double quotes, because
the start and end are equal.

The syntax highlighting attributes are used.  When the cursor currently is not
in a string or comment syntax item, then matches inside string and comment
syntax items are ignored.  Any syntax items with "string" or "comment"
somewhere in their name are considered string or comment items.

The search is limited to avoid a delay when moving the cursor.  The limits
are:
- What is visible in the window.
- 100 lines above or below the cursor to avoid a long delay when there are
  closed folds.
- 'synmaxcol' times 2 bytes before or after the cursor to avoid a delay
  in a long line with syntax highlighting.
- A timeout of 300 msec (60 msec in Insert mode). This can be changed with the
  g:matchparen_timeout and g:matchparen_insert_timeout variables and their
  buffer-local equivalents b:matchparen_timeout and
  b:matchparen_insert_timeout.

If you would like the |%| command to work better, the matchit plugin can be
used, see |matchit-install|.  This plugin also helps to skip matches in
comments.  This is unrelated to the matchparen highlighting, they use a
different mechanism.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��6ZZvim80/doc/pi_logipat.txtnu�[���*pi_logipat.txt*	Logical Patterns			Jun 22, 2015

Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
Copyright: (c) 2004-2015 by Charles E. Campbell	*logiPat-copyright*
           The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
           (see |copyright|) except use "LogiPat" instead of "Vim"
	   No warranty, express or implied.  Use At-Your-Own-Risk.

==============================================================================
1. Contents					*logiPat* *logiPat-contents*

	1. Contents.................: |logiPat-contents|
	2. LogiPat Manual...........: |logiPat-manual|
	3. LogiPat Examples.........: |logiPat-examples|
	4. Caveat...................: |logiPat-caveat|
	5. LogiPat History..........: |logiPat-history|


==============================================================================
2. LogiPat Manual			*logiPat-manual* *logiPat-man*

	*logiPat-arg* *logiPat-input* *logiPat-pattern* *logiPat-operators*
	Boolean logic patterns are composed of

			operators  ! = not
			           | = logical-or
			           & = logical-and
			grouping   ( ... )
			patterns   "pattern"

	:LogiPat {boolean-logic pattern}		*:LogiPat*
		:LogiPat is a command which takes a boolean-logic
		argument (|logiPat-arg|).

	:LP {boolean-logic pattern}			*:LP*
		:LP is a shorthand command version of :LogiPat

	:LPE {boolean-logic pattern}			*:LPE*
		No search is done, but the conversion from the
		boolean logic pattern to the regular expression
		is performed and echoed onto the display.

	:LogiPatFlags {search flags}			*LogiPat-flags*
		:LogiPatFlags {search flags}
		LogiPat uses the |search()| command.  The flags
		passed to that call to search() may be specified
		by the :LogiPatFlags command.

	:LPF {search flags}				*:LPF*
		:LPF is a shorthand version of :LogiPatFlags.

	:let pat=LogiPat({boolean-logic pattern})	*LogiPat()*
		If one calls LogiPat() directly, no search
		is done, but the transformation from the boolean
		logic pattern into a regular expression pattern
		is performed and returned.

	To get a " inside a pattern, as opposed to having it delimit
	the pattern, double it.


==============================================================================
3. LogiPat Examples					*logiPat-examples*

	LogiPat takes Boolean logic arguments and produces a regular
	expression which implements the choices.  A series of examples
	follows:
>
	:LogiPat "abc"
<		will search for lines containing the string  :abc:
>
	:LogiPat "ab""cd"
<		will search for lines containing the string  :ab"c:
>
	:LogiPat !"abc"
<		will search for lines which don't contain the string  :abc:
>
	:LogiPat "abc"|"def"
<		will search for lines which contain either the string
		:abc:  or the string  :def:
>
	:LogiPat !("abc"|"def")
<		will search for lines which don't contain either
		of the strings  :abc:  or  :def:
>
	:LogiPat "abc"&"def"
<		will search for lines which contain both of the strings
		:abc:  and  :def:
>
	:let pat= LogiPat('!"abc"')
<		will return the regular expression which will match
		all lines not containing  :abc: .  The double quotes
		are needed to pass normal patterns to LogiPat, and
		differentiate such patterns from boolean logic
		operators.


==============================================================================
4. Caveat						*logiPat-caveat*

	The "not" operator may be fragile; ie. it may not always play well
	with the & (logical-and) and | (logical-or) operators.  Please try out
	your patterns, possibly with :set hls, to insure that what is matching
	is what you want.


==============================================================================
3. LogiPat History					*logiPat-history*

	v4 Jun 22, 2015 * LogiPat has been picked up by Bram M for standard
			  plugin distribution; hence the name change
	v3 Sep 25, 2006 * LP_Or() fixed; it now encapsulates its output
	                  in \%(...\) parentheses
	   Dec 12, 2011 * |:LPE| added
			* "" is mapped to a single " and left inside patterns
	v2 May 31, 2005	* LPF and LogiPatFlags commands weren't working
	v1 May 23, 2005	* initial release


==============================================================================
vim:tw=78:ts=8:ft=help
PK�j�Z!`�rrvim80/doc/usr_44.txtnu�[���*usr_44.txt*	For Vim version 8.0.  Last change: 2017 May 06

		     VIM USER MANUAL - by Bram Moolenaar

			 Your own syntax highlighted


Vim comes with highlighting for a couple of hundred different file types.  If
the file you are editing isn't included, read this chapter to find out how to
get this type of file highlighted.  Also see |:syn-define| in the reference
manual.

|44.1|	Basic syntax commands
|44.2|	Keywords
|44.3|	Matches
|44.4|	Regions
|44.5|	Nested items
|44.6|	Following groups
|44.7|	Other arguments
|44.8|	Clusters
|44.9|	Including another syntax file
|44.10|	Synchronizing
|44.11|	Installing a syntax file
|44.12|	Portable syntax file layout

     Next chapter: |usr_45.txt|  Select your language
 Previous chapter: |usr_43.txt|  Using filetypes
Table of contents: |usr_toc.txt|

==============================================================================
*44.1*	Basic syntax commands

Using an existing syntax file to start with will save you a lot of time.  Try
finding a syntax file in $VIMRUNTIME/syntax for a language that is similar.
These files will also show you the normal layout of a syntax file.  To
understand it, you need to read the following.

Let's start with the basic arguments.  Before we start defining any new
syntax, we need to clear out any old definitions: >

	:syntax clear

This isn't required in the final syntax file, but very useful when
experimenting.

There are more simplifications in this chapter.  If you are writing a syntax
file to be used by others, read all the way through the end to find out the
details.


LISTING DEFINED ITEMS

To check which syntax items are currently defined, use this command: >

	:syntax

You can use this to check which items have actually been defined.  Quite
useful when you are experimenting with a new syntax file.  It also shows the
colors used for each item, which helps to find out what is what.
   To list the items in a specific syntax group use: >

	:syntax list {group-name}

This also can be used to list clusters (explained in |44.8|).  Just include
the @ in the name.


MATCHING CASE

Some languages are not case sensitive, such as Pascal.  Others, such as C, are
case sensitive.  You need to tell which type you have with the following
commands: >
	:syntax case match
	:syntax case ignore

The "match" argument means that Vim will match the case of syntax elements.
Therefore, "int" differs from "Int" and "INT".  If the "ignore" argument is
used, the following are equivalent: "Procedure", "PROCEDURE" and "procedure".
   The ":syntax case" commands can appear anywhere in a syntax file and affect
the syntax definitions that follow.  In most cases, you have only one ":syntax
case" command in your syntax file; if you work with an unusual language that
contains both case-sensitive and non-case-sensitive elements, however, you can
scatter the ":syntax case" command throughout the file.

==============================================================================
*44.2*	Keywords

The most basic syntax elements are keywords.  To define a keyword, use the
following form: >

	:syntax keyword {group} {keyword} ...

The {group} is the name of a syntax group.  With the ":highlight" command you
can assign colors to a {group}.  The {keyword} argument is an actual keyword.
Here are a few examples: >

	:syntax keyword xType int long char
	:syntax keyword xStatement if then else endif

This example uses the group names "xType" and "xStatement".  By convention,
each group name is prefixed by the filetype for the language being defined.
This example defines syntax for the x language (eXample language without an
interesting name).  In a syntax file for "csh" scripts the name "cshType"
would be used.  Thus the prefix is equal to the value of 'filetype'.
   These commands cause the words "int", "long" and "char" to be highlighted
one way and the words "if", "then", "else" and "endif" to be highlighted
another way.  Now you need to connect the x group names to standard Vim
names.  You do this with the following commands: >

	:highlight link xType Type
	:highlight link xStatement Statement

This tells Vim to highlight "xType" like "Type" and "xStatement" like
"Statement".  See |group-name| for the standard names.


UNUSUAL KEYWORDS

The characters used in a keyword must be in the 'iskeyword' option.  If you
use another character, the word will never match.  Vim doesn't give a warning
message for this.
   The x language uses the '-' character in keywords.  This is how it's done:
>
	:setlocal iskeyword+=-
	:syntax keyword xStatement when-not

The ":setlocal" command is used to change 'iskeyword' only for the current
buffer.  Still it does change the behavior of commands like "w" and "*".  If
that is not wanted, don't define a keyword but use a match (explained in the
next section).

The x language allows for abbreviations.  For example, "next" can be
abbreviated to "n", "ne" or "nex".  You can define them by using this command:
>
	:syntax keyword xStatement n[ext]

This doesn't match "nextone", keywords always match whole words only.

==============================================================================
*44.3*	Matches

Consider defining something a bit more complex.  You want to match ordinary
identifiers.  To do this, you define a match syntax item.  This one matches
any word consisting of only lowercase letters: >

	:syntax match xIdentifier /\<\l\+\>/
<
	Note:
	Keywords overrule any other syntax item.  Thus the keywords "if",
	"then", etc., will be keywords, as defined with the ":syntax keyword"
	commands above, even though they also match the pattern for
	xIdentifier.

The part at the end is a pattern, like it's used for searching.  The // is
used to surround the pattern (like how it's done in a ":substitute" command).
You can use any other character, like a plus or a quote.

Now define a match for a comment.  In the x language it is anything from # to
the end of a line: >

	:syntax match xComment /#.*/

Since you can use any search pattern, you can highlight very complex things
with a match item.  See |pattern| for help on search patterns.

==============================================================================
*44.4*	Regions

In the example x language, strings are enclosed in double quotation marks (").
To highlight strings you define a region.  You need a region start (double
quote) and a region end (double quote).  The definition is as follows: >

	:syntax region xString start=/"/ end=/"/

The "start" and "end" directives define the patterns used to find the start
and end of the region.  But what about strings that look like this?

	"A string with a double quote (\") in it" ~

This creates a problem: The double quotation marks in the middle of the string
will end the region.  You need to tell Vim to skip over any escaped double
quotes in the string.  Do this with the skip keyword: >

	:syntax region xString start=/"/ skip=/\\"/ end=/"/

The double backslash matches a single backslash, since the backslash is a
special character in search patterns.

When to use a region instead of a match?  The main difference is that a match
item is a single pattern, which must match as a whole.  A region starts as
soon as the "start" pattern matches.  Whether the "end" pattern is found or
not doesn't matter.  Thus when the item depends on the "end" pattern to match,
you cannot use a region.  Otherwise, regions are often simpler to define.  And
it is easier to use nested items, as is explained in the next section.

==============================================================================
*44.5*	Nested items

Take a look at this comment:

	%Get input  TODO: Skip white space ~

You want to highlight TODO in big yellow letters, even though it is in a
comment that is highlighted blue.  To let Vim know about this, you define the
following syntax groups: >

	:syntax keyword xTodo TODO contained
	:syntax match xComment /%.*/ contains=xTodo

In the first line, the "contained" argument tells Vim that this keyword can
exist only inside another syntax item.  The next line has "contains=xTodo".
This indicates that the xTodo syntax element is inside it.  The result is that
the comment line as a whole is matched with "xComment" and made blue.  The
word TODO inside it is matched by xTodo and highlighted yellow (highlighting
for xTodo was setup for this).


RECURSIVE NESTING

The x language defines code blocks in curly braces.  And a code block may
contain other code blocks.  This can be defined this way: >

	:syntax region xBlock start=/{/ end=/}/ contains=xBlock

Suppose you have this text:

	while i < b { ~
		if a { ~
			b = c; ~
		} ~
	} ~

First a xBlock starts at the { in the first line.  In the second line another
{ is found.  Since we are inside a xBlock item, and it contains itself, a
nested xBlock item will start here.  Thus the "b = c" line is inside the
second level xBlock region.  Then a } is found in the next line, which matches
with the end pattern of the region.  This ends the nested xBlock.  Because the
} is included in the nested region, it is hidden from the first xBlock region.
Then at the last } the first xBlock region ends.


KEEPING THE END

Consider the following two syntax items: >

	:syntax region xComment start=/%/ end=/$/ contained
	:syntax region xPreProc start=/#/ end=/$/ contains=xComment

You define a comment as anything from % to the end of the line.  A
preprocessor directive is anything from # to the end of the line.  Because you
can have a comment on a preprocessor line, the preprocessor definition
includes a "contains=xComment" argument.  Now look what happens with this
text:

	#define X = Y  % Comment text ~
	int foo = 1; ~

What you see is that the second line is also highlighted as xPreProc.  The
preprocessor directive should end at the end of the line.  That is why
you have used "end=/$/".  So what is going wrong?
   The problem is the contained comment.  The comment starts with % and ends
at the end of the line.  After the comment ends, the preprocessor syntax
continues.  This is after the end of the line has been seen, so the next
line is included as well.
   To avoid this problem and to avoid a contained syntax item eating a needed
end of line, use the "keepend" argument.  This takes care of
the double end-of-line matching: >

	:syntax region xComment start=/%/ end=/$/ contained
	:syntax region xPreProc start=/#/ end=/$/ contains=xComment keepend


CONTAINING MANY ITEMS

You can use the contains argument to specify that everything can be contained.
For example: >

	:syntax region xList start=/\[/ end=/\]/ contains=ALL

All syntax items will be contained in this one.  It also contains itself, but
not at the same position (that would cause an endless loop).
   You can specify that some groups are not contained.  Thus contain all
groups but the ones that are listed:
>
	:syntax region xList start=/\[/ end=/\]/ contains=ALLBUT,xString

With the "TOP" item you can include all items that don't have a "contained"
argument.  "CONTAINED" is used to only include items with a "contained"
argument.  See |:syn-contains| for the details.

==============================================================================
*44.6*	Following groups

The x language has statements in this form:

	if (condition) then ~

You want to highlight the three items differently.  But "(condition)" and
"then" might also appear in other places, where they get different
highlighting.  This is how you can do this: >

	:syntax match xIf /if/ nextgroup=xIfCondition skipwhite
	:syntax match xIfCondition /([^)]*)/ contained nextgroup=xThen skipwhite
	:syntax match xThen /then/ contained

The "nextgroup" argument specifies which item can come next.  This is not
required.  If none of the items that are specified are found, nothing happens.
For example, in this text:

	if not (condition) then ~

The "if" is matched by xIf.  "not" doesn't match the specified nextgroup
xIfCondition, thus only the "if" is highlighted.

The "skipwhite" argument tells Vim that white space (spaces and tabs) may
appear in between the items.  Similar arguments are "skipnl", which allows a
line break in between the items, and "skipempty", which allows empty lines.
Notice that "skipnl" doesn't skip an empty line, something must match after
the line break.

==============================================================================
*44.7*	Other arguments

MATCHGROUP

When you define a region, the entire region is highlighted according to the
group name specified.  To highlight the text enclosed in parentheses () with
the group xInside, for example, use the following command: >

	:syntax region xInside start=/(/ end=/)/

Suppose, that you want to highlight the parentheses differently.  You can do
this with a lot of convoluted region statements, or you can use the
"matchgroup" argument.  This tells Vim to highlight the start and end of a
region with a different highlight group (in this case, the xParen group): >

	:syntax region xInside matchgroup=xParen start=/(/ end=/)/

The "matchgroup" argument applies to the start or end match that comes after
it.  In the previous example both start and end are highlighted with xParen.
To highlight the end with xParenEnd: >

	:syntax region xInside matchgroup=xParen start=/(/
		\ matchgroup=xParenEnd end=/)/

A side effect of using "matchgroup" is that contained items will not match in
the start or end of the region.  The example for "transparent" uses this.


TRANSPARENT

In a C language file you would like to highlight the () text after a "while"
differently from the () text after a "for".  In both of these there can be
nested () items, which should be highlighted in the same way.  You must make
sure the () highlighting stops at the matching ).  This is one way to do this:
>
	:syntax region cWhile matchgroup=cWhile start=/while\s*(/ end=/)/
		\ contains=cCondNest
	:syntax region cFor matchgroup=cFor start=/for\s*(/ end=/)/
		\ contains=cCondNest
	:syntax region cCondNest start=/(/ end=/)/ contained transparent

Now you can give cWhile and cFor different highlighting.  The cCondNest item
can appear in either of them, but take over the highlighting of the item it is
contained in.  The "transparent" argument causes this.
   Notice that the "matchgroup" argument has the same group as the item
itself.  Why define it then?  Well, the side effect of using a matchgroup is
that contained items are not found in the match with the start item then.
This avoids that the cCondNest group matches the ( just after the "while" or
"for".  If this would happen, it would span the whole text until the matching
) and the region would continue after it.  Now cCondNest only matches after
the match with the start pattern, thus after the first (.


OFFSETS

Suppose you want to define a region for the text between ( and ) after an
"if".  But you don't want to include the "if" or the ( and ).  You can do this
by specifying offsets for the patterns.  Example: >

	:syntax region xCond start=/if\s*(/ms=e+1 end=/)/me=s-1

The offset for the start pattern is "ms=e+1".  "ms" stands for Match Start.
This defines an offset for the start of the match.  Normally the match starts
where the pattern matches.  "e+1" means that the match now starts at the end
of the pattern match, and then one character further.
   The offset for the end pattern is "me=s-1".  "me" stands for Match End.
"s-1" means the start of the pattern match and then one character back.  The
result is that in this text:

	if (foo == bar) ~

Only the text "foo == bar" will be highlighted as xCond.

More about offsets here: |:syn-pattern-offset|.


ONELINE

The "oneline" argument indicates that the region does not cross a line
boundary.  For example: >

	:syntax region xIfThen start=/if/ end=/then/ oneline

This defines a region that starts at "if" and ends at "then".  But if there is
no "then" after the "if", the region doesn't match.

	Note:
	When using "oneline" the region doesn't start if the end pattern
	doesn't match in the same line.  Without "oneline" Vim does _not_
	check if there is a match for the end pattern.  The region starts even
	when the end pattern doesn't match in the rest of the file.


CONTINUATION LINES AND AVOIDING THEM

Things now become a little more complex.  Let's define a preprocessor line.
This starts with a # in the first column and continues until the end of the
line.  A line that ends with \ makes the next line a continuation line.  The
way you handle this is to allow the syntax item to contain a continuation
pattern: >

	:syntax region xPreProc start=/^#/ end=/$/ contains=xLineContinue
	:syntax match xLineContinue "\\$" contained

In this case, although xPreProc normally matches a single line, the group
contained in it (namely xLineContinue) lets it go on for more than one line.
For example, it would match both of these lines:

	#define SPAM  spam spam spam \ ~
			bacon and spam ~

In this case, this is what you want.  If it is not what you want, you can call
for the region to be on a single line by adding "excludenl" to the contained
pattern.  For example, you want to highlight "end" in xPreProc, but only at
the end of the line.  To avoid making the xPreProc continue on the next line,
like xLineContinue does, use "excludenl" like this: >

	:syntax region xPreProc start=/^#/ end=/$/
		\ contains=xLineContinue,xPreProcEnd
	:syntax match xPreProcEnd excludenl /end$/ contained
	:syntax match xLineContinue "\\$" contained

"excludenl" must be placed before the pattern.  Since "xLineContinue" doesn't
have "excludenl", a match with it will extend xPreProc to the next line as
before.

==============================================================================
*44.8*	Clusters

One of the things you will notice as you start to write a syntax file is that
you wind up generating a lot of syntax groups.  Vim enables you to define a
collection of syntax groups called a cluster.
   Suppose you have a language that contains for loops, if statements, while
loops, and functions.  Each of them contains the same syntax elements: numbers
and identifiers.  You define them like this: >

	:syntax match xFor /^for.*/ contains=xNumber,xIdent
	:syntax match xIf /^if.*/ contains=xNumber,xIdent
	:syntax match xWhile /^while.*/ contains=xNumber,xIdent

You have to repeat the same "contains=" every time.  If you want to add
another contained item, you have to add it three times.  Syntax clusters
simplify these definitions by enabling you to have one cluster stand for
several syntax groups.
   To define a cluster for the two items that the three groups contain, use
the following command: >

	:syntax cluster xState contains=xNumber,xIdent

Clusters are used inside other syntax items just like any syntax group.
Their names start with @.  Thus, you can define the three groups like this: >

	:syntax match xFor /^for.*/ contains=@xState
	:syntax match xIf /^if.*/ contains=@xState
	:syntax match xWhile /^while.*/ contains=@xState

You can add new group names to this cluster with the "add" argument: >

	:syntax cluster xState add=xString

You can remove syntax groups from this list as well: >

	:syntax cluster xState remove=xNumber

==============================================================================
*44.9*	Including another syntax file

The C++ language syntax is a superset of the C language.  Because you do not
want to write two syntax files, you can have the C++ syntax file read in the
one for C by using the following command: >

	:runtime! syntax/c.vim

The ":runtime!" command searches 'runtimepath' for all "syntax/c.vim" files.
This makes the C parts of the C++ syntax be defined like for C files.  If you
have replaced the c.vim syntax file, or added items with an extra file, these
will be loaded as well.
   After loading the C syntax items the specific C++ items can be defined.
For example, add keywords that are not used in C: >

	:syntax keyword cppStatement	new delete this friend using

This works just like in any other syntax file.

Now consider the Perl language.  A Perl script consists of two distinct parts:
a documentation section in POD format, and a program written in Perl itself.
The POD section starts with "=head" and ends with "=cut".
   You want to define the POD syntax in one file, and use it from the Perl
syntax file.  The ":syntax include" command reads in a syntax file and stores
the elements it defined in a syntax cluster.  For Perl, the statements are as
follows: >

	:syntax include @Pod <sfile>:p:h/pod.vim
	:syntax region perlPOD start=/^=head/ end=/^=cut/ contains=@Pod

When "=head" is found in a Perl file, the perlPOD region starts.  In this
region the @Pod cluster is contained.  All the items defined as top-level
items in the pod.vim syntax files will match here.  When "=cut" is found, the
region ends and we go back to the items defined in the Perl file.
   The ":syntax include" command is clever enough to ignore a ":syntax clear"
command in the included file.  And an argument such as "contains=ALL" will
only contain items defined in the included file, not in the file that includes
it.
   The "<sfile>:p:h/" part uses the name of the current file (<sfile>),
expands it to a full path (:p) and then takes the head (:h).  This results in
the directory name of the file.  This causes the pod.vim file in the same
directory to be included.

==============================================================================
*44.10*	Synchronizing

Compilers have it easy.  They start at the beginning of a file and parse it
straight through.  Vim does not have it so easy.  It must start in the middle,
where the editing is being done.  So how does it tell where it is?
   The secret is the ":syntax sync" command.  This tells Vim how to figure out
where it is.  For example, the following command tells Vim to scan backward
for the beginning or end of a C-style comment and begin syntax coloring from
there: >

	:syntax sync ccomment

You can tune this processing with some arguments.  The "minlines" argument
tells Vim the minimum number of lines to look backward, and "maxlines" tells
the editor the maximum number of lines to scan.
   For example, the following command tells Vim to look at least 10 lines
before the top of the screen: >

	:syntax sync ccomment minlines=10 maxlines=500

If it cannot figure out where it is in that space, it starts looking farther
and farther back until it figures out what to do.  But it looks no farther
back than 500 lines.  (A large "maxlines" slows down processing.  A small one
might cause synchronization to fail.)
   To make synchronizing go a bit faster, tell Vim which syntax items can be
skipped.  Every match and region that only needs to be used when actually
displaying text can be given the "display" argument.
   By default, the comment to be found will be colored as part of the Comment
syntax group.  If you want to color things another way, you can specify a
different syntax group: >

	:syntax sync ccomment xAltComment

If your programming language does not have C-style comments in it, you can try
another method of synchronization.  The simplest way is to tell Vim to space
back a number of lines and try to figure out things from there.  The following
command tells Vim to go back 150 lines and start parsing from there: >

	:syntax sync minlines=150

A large "minlines" value can make Vim slower, especially when scrolling
backwards in the file.
   Finally, you can specify a syntax group to look for by using this command:
>
	:syntax sync match {sync-group-name}
		\ grouphere {group-name} {pattern}

This tells Vim that when it sees {pattern} the syntax group named {group-name}
begins just after the pattern given.  The {sync-group-name} is used to give a
name to this synchronization specification.  For example, the sh scripting
language begins an if statement with "if" and ends it with "fi":

	if [ --f file.txt ] ; then ~
		echo "File exists" ~
	fi ~

To define a "grouphere" directive for this syntax, you use the following
command: >

	:syntax sync match shIfSync grouphere shIf "\<if\>"

The "groupthere" argument tells Vim that the pattern ends a group.  For
example, the end of the if/fi group is as follows: >

	:syntax sync match shIfSync groupthere NONE "\<fi\>"

In this example, the NONE tells Vim that you are not in any special syntax
region.  In particular, you are not inside an if block.

You also can define matches and regions that are with no "grouphere" or
"groupthere" arguments.  These groups are for syntax groups skipped during
synchronization.  For example, the following skips over anything inside {},
even if it would normally match another synchronization method: >

	:syntax sync match xSpecial /{.*}/

More about synchronizing in the reference manual: |:syn-sync|.

==============================================================================
*44.11*	Installing a syntax file

When your new syntax file is ready to be used, drop it in a "syntax" directory
in 'runtimepath'.  For Unix that would be "~/.vim/syntax".
  The name of the syntax file must be equal to the file type, with ".vim"
added.  Thus for the x language, the full path of the file would be:

	~/.vim/syntax/x.vim ~

You must also make the file type be recognized.  See |43.2|.

If your file works well, you might want to make it available to other Vim
users.  First read the next section to make sure your file works well for
others.  Then e-mail it to the Vim maintainer: <maintainer@vim.org>.  Also
explain how the filetype can be detected.  With a bit of luck your file will
be included in the next Vim version!


ADDING TO AN EXISTING SYNTAX FILE

We were assuming you were adding a completely new syntax file.  When an existing
syntax file works, but is missing some items, you can add items in a separate
file.  That avoids changing the distributed syntax file, which will be lost
when installing a new version of Vim.
   Write syntax commands in your file, possibly using group names from the
existing syntax.  For example, to add new variable types to the C syntax file:
>
	:syntax keyword cType off_t uint

Write the file with the same name as the original syntax file.  In this case
"c.vim".  Place it in a directory near the end of 'runtimepath'.  This makes
it loaded after the original syntax file.  For Unix this would be:

	~/.vim/after/syntax/c.vim ~

==============================================================================
*44.12*	Portable syntax file layout

Wouldn't it be nice if all Vim users exchange syntax files?  To make this
possible, the syntax file must follow a few guidelines.

Start with a header that explains what the syntax file is for, who maintains
it and when it was last updated.  Don't include too much information about
changes history, not many people will read it.  Example: >

	" Vim syntax file
	" Language:	C
	" Maintainer:	Bram Moolenaar <Bram@vim.org>
	" Last Change:	2001 Jun 18
	" Remark:	Included by the C++ syntax.

Use the same layout as the other syntax files.  Using an existing syntax file
as an example will save you a lot of time.

Choose a good, descriptive name for your syntax file.  Use lowercase letters
and digits.  Don't make it too long, it is used in many places: The name of
the syntax file "name.vim", 'filetype', b:current_syntax and the start of each
syntax group (nameType, nameStatement, nameString, etc).

Start with a check for "b:current_syntax".  If it is defined, some other
syntax file, earlier in 'runtimepath' was already loaded: >

	if exists("b:current_syntax")
	  finish
	endif

To be compatible with Vim 5.8 use: >

	if version < 600
	  syntax clear
	elseif exists("b:current_syntax")
	  finish
	endif

Set "b:current_syntax" to the name of the syntax at the end.  Don't forget
that included files do this too, you might have to reset "b:current_syntax" if
you include two files.

If you want your syntax file to work with Vim 5.x, add a check for v:version.
Find an syntax file in the Vim 7.2 distribution for an example.

Do not include anything that is a user preference.  Don't set 'tabstop',
'expandtab', etc.  These belong in a filetype plugin.

Do not include mappings or abbreviations.  Only include setting 'iskeyword' if
it is really necessary for recognizing keywords.

To allow users select their own preferred colors, make a different group name
for every kind of highlighted item.  Then link each of them to one of the
standard highlight groups.  That will make it work with every color scheme.
If you select specific colors it will look bad with some color schemes.  And
don't forget that some people use a different background color, or have only
eight colors available.

For the linking use "hi def link", so that the user can select different
highlighting before your syntax file is loaded.  Example: >

	  hi def link nameString	String
	  hi def link nameNumber	Number
	  hi def link nameCommand	Statement
	  ... etc ...

Add the "display" argument to items that are not used when syncing, to speed
up scrolling backwards and CTRL-L.

==============================================================================

Next chapter: |usr_45.txt|  Select your language

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�ZF�at��vim80/doc/tagsnu�[���!	change.txt	/*!*
!!	change.txt	/*!!*
#	pattern.txt	/*#*
$	motion.txt	/*$*
$HOME	options.txt	/*$HOME*
$HOME-use	version5.txt	/*$HOME-use*
$HOME-windows	options.txt	/*$HOME-windows*
$MYGVIMRC	gui.txt	/*$MYGVIMRC*
$MYVIMRC	starting.txt	/*$MYVIMRC*
$VIM	starting.txt	/*$VIM*
$VIM-use	version5.txt	/*$VIM-use*
$VIMRUNTIME	starting.txt	/*$VIMRUNTIME*
$VIM_POSIX	vi_diff.txt	/*$VIM_POSIX*
%	motion.txt	/*%*
%:.	cmdline.txt	/*%:.*
%:8	cmdline.txt	/*%:8*
%:S	cmdline.txt	/*%:S*
%:e	cmdline.txt	/*%:e*
%:gs	cmdline.txt	/*%:gs*
%:h	cmdline.txt	/*%:h*
%:p	cmdline.txt	/*%:p*
%:r	cmdline.txt	/*%:r*
%:s	cmdline.txt	/*%:s*
%:t	cmdline.txt	/*%:t*
%:~	cmdline.txt	/*%:~*
&	change.txt	/*&*
'	motion.txt	/*'*
''	motion.txt	/*''*
'(	motion.txt	/*'(*
')	motion.txt	/*')*
'.	motion.txt	/*'.*
'0	motion.txt	/*'0*
'<	motion.txt	/*'<*
'>	motion.txt	/*'>*
'A	motion.txt	/*'A*
'[	motion.txt	/*'[*
']	motion.txt	/*']*
'^	motion.txt	/*'^*
'a	motion.txt	/*'a*
'acd'	options.txt	/*'acd'*
'ai'	options.txt	/*'ai'*
'akm'	options.txt	/*'akm'*
'al'	options.txt	/*'al'*
'aleph'	options.txt	/*'aleph'*
'allowrevins'	options.txt	/*'allowrevins'*
'altkeymap'	options.txt	/*'altkeymap'*
'ambiwidth'	options.txt	/*'ambiwidth'*
'ambw'	options.txt	/*'ambw'*
'anti'	options.txt	/*'anti'*
'antialias'	options.txt	/*'antialias'*
'ap'	vi_diff.txt	/*'ap'*
'ar'	options.txt	/*'ar'*
'arab'	options.txt	/*'arab'*
'arabic'	options.txt	/*'arabic'*
'arabicshape'	options.txt	/*'arabicshape'*
'ari'	options.txt	/*'ari'*
'arshape'	options.txt	/*'arshape'*
'as'	todo.txt	/*'as'*
'autochdir'	options.txt	/*'autochdir'*
'autoindent'	options.txt	/*'autoindent'*
'autoprint'	vi_diff.txt	/*'autoprint'*
'autoread'	options.txt	/*'autoread'*
'autosave'	todo.txt	/*'autosave'*
'autowrite'	options.txt	/*'autowrite'*
'autowriteall'	options.txt	/*'autowriteall'*
'aw'	options.txt	/*'aw'*
'awa'	options.txt	/*'awa'*
'background'	options.txt	/*'background'*
'backspace'	options.txt	/*'backspace'*
'backup'	options.txt	/*'backup'*
'backupcopy'	options.txt	/*'backupcopy'*
'backupdir'	options.txt	/*'backupdir'*
'backupext'	options.txt	/*'backupext'*
'backupskip'	options.txt	/*'backupskip'*
'balloondelay'	options.txt	/*'balloondelay'*
'ballooneval'	options.txt	/*'ballooneval'*
'balloonevalterm'	options.txt	/*'balloonevalterm'*
'balloonexpr'	options.txt	/*'balloonexpr'*
'bdir'	options.txt	/*'bdir'*
'bdlay'	options.txt	/*'bdlay'*
'beautify'	vi_diff.txt	/*'beautify'*
'belloff'	options.txt	/*'belloff'*
'beval'	options.txt	/*'beval'*
'bevalterm'	options.txt	/*'bevalterm'*
'bex'	options.txt	/*'bex'*
'bexpr'	options.txt	/*'bexpr'*
'bf'	vi_diff.txt	/*'bf'*
'bg'	options.txt	/*'bg'*
'bh'	options.txt	/*'bh'*
'bin'	options.txt	/*'bin'*
'binary'	options.txt	/*'binary'*
'biosk'	options.txt	/*'biosk'*
'bioskey'	options.txt	/*'bioskey'*
'bk'	options.txt	/*'bk'*
'bkc'	options.txt	/*'bkc'*
'bl'	options.txt	/*'bl'*
'bo'	options.txt	/*'bo'*
'bomb'	options.txt	/*'bomb'*
'breakat'	options.txt	/*'breakat'*
'breakindent'	options.txt	/*'breakindent'*
'breakindentopt'	options.txt	/*'breakindentopt'*
'bri'	options.txt	/*'bri'*
'briopt'	options.txt	/*'briopt'*
'brk'	options.txt	/*'brk'*
'browsedir'	options.txt	/*'browsedir'*
'bs'	options.txt	/*'bs'*
'bsdir'	options.txt	/*'bsdir'*
'bsk'	options.txt	/*'bsk'*
'bt'	options.txt	/*'bt'*
'bufhidden'	options.txt	/*'bufhidden'*
'buflisted'	options.txt	/*'buflisted'*
'buftype'	options.txt	/*'buftype'*
'casemap'	options.txt	/*'casemap'*
'cb'	options.txt	/*'cb'*
'cc'	options.txt	/*'cc'*
'ccv'	options.txt	/*'ccv'*
'cd'	options.txt	/*'cd'*
'cdpath'	options.txt	/*'cdpath'*
'cedit'	options.txt	/*'cedit'*
'cf'	options.txt	/*'cf'*
'cfu'	options.txt	/*'cfu'*
'ch'	options.txt	/*'ch'*
'character'	intro.txt	/*'character'*
'charconvert'	options.txt	/*'charconvert'*
'ci'	options.txt	/*'ci'*
'cin'	options.txt	/*'cin'*
'cindent'	options.txt	/*'cindent'*
'cink'	options.txt	/*'cink'*
'cinkeys'	options.txt	/*'cinkeys'*
'cino'	options.txt	/*'cino'*
'cinoptions'	options.txt	/*'cinoptions'*
'cinw'	options.txt	/*'cinw'*
'cinwords'	options.txt	/*'cinwords'*
'clipboard'	options.txt	/*'clipboard'*
'cm'	options.txt	/*'cm'*
'cmdheight'	options.txt	/*'cmdheight'*
'cmdwinheight'	options.txt	/*'cmdwinheight'*
'cmp'	options.txt	/*'cmp'*
'cms'	options.txt	/*'cms'*
'co'	options.txt	/*'co'*
'cocu'	options.txt	/*'cocu'*
'cole'	options.txt	/*'cole'*
'colorcolumn'	options.txt	/*'colorcolumn'*
'columns'	options.txt	/*'columns'*
'com'	options.txt	/*'com'*
'comments'	options.txt	/*'comments'*
'commentstring'	options.txt	/*'commentstring'*
'compatible'	options.txt	/*'compatible'*
'complete'	options.txt	/*'complete'*
'completefunc'	options.txt	/*'completefunc'*
'completeopt'	options.txt	/*'completeopt'*
'concealcursor'	options.txt	/*'concealcursor'*
'conceallevel'	options.txt	/*'conceallevel'*
'confirm'	options.txt	/*'confirm'*
'consk'	options.txt	/*'consk'*
'conskey'	options.txt	/*'conskey'*
'copyindent'	options.txt	/*'copyindent'*
'cot'	options.txt	/*'cot'*
'cp'	options.txt	/*'cp'*
'cpo'	options.txt	/*'cpo'*
'cpoptions'	options.txt	/*'cpoptions'*
'cpt'	options.txt	/*'cpt'*
'crb'	options.txt	/*'crb'*
'cryptmethod'	options.txt	/*'cryptmethod'*
'cscopepathcomp'	options.txt	/*'cscopepathcomp'*
'cscopeprg'	options.txt	/*'cscopeprg'*
'cscopequickfix'	options.txt	/*'cscopequickfix'*
'cscoperelative'	options.txt	/*'cscoperelative'*
'cscopetag'	options.txt	/*'cscopetag'*
'cscopetagorder'	options.txt	/*'cscopetagorder'*
'cscopeverbose'	options.txt	/*'cscopeverbose'*
'cspc'	options.txt	/*'cspc'*
'csprg'	options.txt	/*'csprg'*
'csqf'	options.txt	/*'csqf'*
'csre'	options.txt	/*'csre'*
'cst'	options.txt	/*'cst'*
'csto'	options.txt	/*'csto'*
'csverb'	options.txt	/*'csverb'*
'cuc'	options.txt	/*'cuc'*
'cul'	options.txt	/*'cul'*
'cursorbind'	options.txt	/*'cursorbind'*
'cursorcolumn'	options.txt	/*'cursorcolumn'*
'cursorline'	options.txt	/*'cursorline'*
'cwh'	options.txt	/*'cwh'*
'debug'	options.txt	/*'debug'*
'deco'	options.txt	/*'deco'*
'def'	options.txt	/*'def'*
'define'	options.txt	/*'define'*
'delcombine'	options.txt	/*'delcombine'*
'dex'	options.txt	/*'dex'*
'dg'	options.txt	/*'dg'*
'dict'	options.txt	/*'dict'*
'dictionary'	options.txt	/*'dictionary'*
'diff'	options.txt	/*'diff'*
'diffexpr'	options.txt	/*'diffexpr'*
'diffopt'	options.txt	/*'diffopt'*
'digraph'	options.txt	/*'digraph'*
'dip'	options.txt	/*'dip'*
'dir'	options.txt	/*'dir'*
'directory'	options.txt	/*'directory'*
'display'	options.txt	/*'display'*
'dy'	options.txt	/*'dy'*
'ea'	options.txt	/*'ea'*
'ead'	options.txt	/*'ead'*
'eadirection'	options.txt	/*'eadirection'*
'eb'	options.txt	/*'eb'*
'ed'	options.txt	/*'ed'*
'edcompatible'	options.txt	/*'edcompatible'*
'ef'	options.txt	/*'ef'*
'efm'	options.txt	/*'efm'*
'ei'	options.txt	/*'ei'*
'ek'	options.txt	/*'ek'*
'emo'	options.txt	/*'emo'*
'emoji'	options.txt	/*'emoji'*
'enc'	options.txt	/*'enc'*
'encoding'	options.txt	/*'encoding'*
'endofline'	options.txt	/*'endofline'*
'eol'	options.txt	/*'eol'*
'ep'	options.txt	/*'ep'*
'equalalways'	options.txt	/*'equalalways'*
'equalprg'	options.txt	/*'equalprg'*
'errorbells'	options.txt	/*'errorbells'*
'errorfile'	options.txt	/*'errorfile'*
'errorformat'	options.txt	/*'errorformat'*
'esckeys'	options.txt	/*'esckeys'*
'et'	options.txt	/*'et'*
'eventignore'	options.txt	/*'eventignore'*
'ex'	options.txt	/*'ex'*
'expandtab'	options.txt	/*'expandtab'*
'exrc'	options.txt	/*'exrc'*
'fcl'	options.txt	/*'fcl'*
'fcs'	options.txt	/*'fcs'*
'fdc'	options.txt	/*'fdc'*
'fde'	options.txt	/*'fde'*
'fdi'	options.txt	/*'fdi'*
'fdl'	options.txt	/*'fdl'*
'fdls'	options.txt	/*'fdls'*
'fdm'	options.txt	/*'fdm'*
'fdn'	options.txt	/*'fdn'*
'fdo'	options.txt	/*'fdo'*
'fdt'	options.txt	/*'fdt'*
'fe'	options.txt	/*'fe'*
'fen'	options.txt	/*'fen'*
'fenc'	options.txt	/*'fenc'*
'fencs'	options.txt	/*'fencs'*
'fex'	options.txt	/*'fex'*
'ff'	options.txt	/*'ff'*
'ffs'	options.txt	/*'ffs'*
'fic'	options.txt	/*'fic'*
'fileencoding'	options.txt	/*'fileencoding'*
'fileencodings'	options.txt	/*'fileencodings'*
'fileformat'	options.txt	/*'fileformat'*
'fileformats'	options.txt	/*'fileformats'*
'fileignorecase'	options.txt	/*'fileignorecase'*
'filetype'	options.txt	/*'filetype'*
'fillchars'	options.txt	/*'fillchars'*
'fixendofline'	options.txt	/*'fixendofline'*
'fixeol'	options.txt	/*'fixeol'*
'fk'	options.txt	/*'fk'*
'fkmap'	options.txt	/*'fkmap'*
'fl'	vi_diff.txt	/*'fl'*
'flash'	vi_diff.txt	/*'flash'*
'flp'	options.txt	/*'flp'*
'fml'	options.txt	/*'fml'*
'fmr'	options.txt	/*'fmr'*
'fo'	options.txt	/*'fo'*
'foldclose'	options.txt	/*'foldclose'*
'foldcolumn'	options.txt	/*'foldcolumn'*
'foldenable'	options.txt	/*'foldenable'*
'foldexpr'	options.txt	/*'foldexpr'*
'foldignore'	options.txt	/*'foldignore'*
'foldlevel'	options.txt	/*'foldlevel'*
'foldlevelstart'	options.txt	/*'foldlevelstart'*
'foldmarker'	options.txt	/*'foldmarker'*
'foldmethod'	options.txt	/*'foldmethod'*
'foldminlines'	options.txt	/*'foldminlines'*
'foldnestmax'	options.txt	/*'foldnestmax'*
'foldopen'	options.txt	/*'foldopen'*
'foldtext'	options.txt	/*'foldtext'*
'formatexpr'	options.txt	/*'formatexpr'*
'formatlistpat'	options.txt	/*'formatlistpat'*
'formatoptions'	options.txt	/*'formatoptions'*
'formatprg'	options.txt	/*'formatprg'*
'fp'	options.txt	/*'fp'*
'fs'	options.txt	/*'fs'*
'fsync'	options.txt	/*'fsync'*
'ft'	options.txt	/*'ft'*
'gcr'	options.txt	/*'gcr'*
'gd'	options.txt	/*'gd'*
'gdefault'	options.txt	/*'gdefault'*
'gfm'	options.txt	/*'gfm'*
'gfn'	options.txt	/*'gfn'*
'gfs'	options.txt	/*'gfs'*
'gfw'	options.txt	/*'gfw'*
'ghr'	options.txt	/*'ghr'*
'go'	options.txt	/*'go'*
'go-!'	options.txt	/*'go-!'*
'go-A'	options.txt	/*'go-A'*
'go-F'	options.txt	/*'go-F'*
'go-L'	options.txt	/*'go-L'*
'go-M'	options.txt	/*'go-M'*
'go-P'	options.txt	/*'go-P'*
'go-R'	options.txt	/*'go-R'*
'go-T'	options.txt	/*'go-T'*
'go-a'	options.txt	/*'go-a'*
'go-b'	options.txt	/*'go-b'*
'go-c'	options.txt	/*'go-c'*
'go-e'	options.txt	/*'go-e'*
'go-f'	options.txt	/*'go-f'*
'go-g'	options.txt	/*'go-g'*
'go-h'	options.txt	/*'go-h'*
'go-i'	options.txt	/*'go-i'*
'go-k'	options.txt	/*'go-k'*
'go-l'	options.txt	/*'go-l'*
'go-m'	options.txt	/*'go-m'*
'go-p'	options.txt	/*'go-p'*
'go-r'	options.txt	/*'go-r'*
'go-t'	options.txt	/*'go-t'*
'go-v'	options.txt	/*'go-v'*
'gp'	options.txt	/*'gp'*
'gr'	vi_diff.txt	/*'gr'*
'graphic'	vi_diff.txt	/*'graphic'*
'grepformat'	options.txt	/*'grepformat'*
'grepprg'	options.txt	/*'grepprg'*
'gtl'	options.txt	/*'gtl'*
'gtt'	options.txt	/*'gtt'*
'guicursor'	options.txt	/*'guicursor'*
'guifont'	options.txt	/*'guifont'*
'guifontset'	options.txt	/*'guifontset'*
'guifontwide'	options.txt	/*'guifontwide'*
'guiheadroom'	options.txt	/*'guiheadroom'*
'guioptions'	options.txt	/*'guioptions'*
'guipty'	options.txt	/*'guipty'*
'guitablabel'	options.txt	/*'guitablabel'*
'guitabtooltip'	options.txt	/*'guitabtooltip'*
'hardtabs'	vi_diff.txt	/*'hardtabs'*
'helpfile'	options.txt	/*'helpfile'*
'helpheight'	options.txt	/*'helpheight'*
'helplang'	options.txt	/*'helplang'*
'hf'	options.txt	/*'hf'*
'hh'	options.txt	/*'hh'*
'hi'	options.txt	/*'hi'*
'hid'	options.txt	/*'hid'*
'hidden'	options.txt	/*'hidden'*
'highlight'	options.txt	/*'highlight'*
'history'	options.txt	/*'history'*
'hk'	options.txt	/*'hk'*
'hkmap'	options.txt	/*'hkmap'*
'hkmapp'	options.txt	/*'hkmapp'*
'hkp'	options.txt	/*'hkp'*
'hl'	options.txt	/*'hl'*
'hlg'	options.txt	/*'hlg'*
'hls'	options.txt	/*'hls'*
'hlsearch'	options.txt	/*'hlsearch'*
'ht'	vi_diff.txt	/*'ht'*
'ic'	options.txt	/*'ic'*
'icon'	options.txt	/*'icon'*
'iconstring'	options.txt	/*'iconstring'*
'ignorecase'	options.txt	/*'ignorecase'*
'im'	options.txt	/*'im'*
'imactivatefunc'	options.txt	/*'imactivatefunc'*
'imactivatekey'	options.txt	/*'imactivatekey'*
'imaf'	options.txt	/*'imaf'*
'imak'	options.txt	/*'imak'*
'imc'	options.txt	/*'imc'*
'imcmdline'	options.txt	/*'imcmdline'*
'imd'	options.txt	/*'imd'*
'imdisable'	options.txt	/*'imdisable'*
'imi'	options.txt	/*'imi'*
'iminsert'	options.txt	/*'iminsert'*
'ims'	options.txt	/*'ims'*
'imsearch'	options.txt	/*'imsearch'*
'imsf'	options.txt	/*'imsf'*
'imst'	options.txt	/*'imst'*
'imstatusfunc'	options.txt	/*'imstatusfunc'*
'imstyle'	options.txt	/*'imstyle'*
'inc'	options.txt	/*'inc'*
'include'	options.txt	/*'include'*
'includeexpr'	options.txt	/*'includeexpr'*
'incsearch'	options.txt	/*'incsearch'*
'inde'	options.txt	/*'inde'*
'indentexpr'	options.txt	/*'indentexpr'*
'indentkeys'	options.txt	/*'indentkeys'*
'indk'	options.txt	/*'indk'*
'inex'	options.txt	/*'inex'*
'inf'	options.txt	/*'inf'*
'infercase'	options.txt	/*'infercase'*
'insertmode'	options.txt	/*'insertmode'*
'is'	options.txt	/*'is'*
'isf'	options.txt	/*'isf'*
'isfname'	options.txt	/*'isfname'*
'isi'	options.txt	/*'isi'*
'isident'	options.txt	/*'isident'*
'isk'	options.txt	/*'isk'*
'iskeyword'	options.txt	/*'iskeyword'*
'isp'	options.txt	/*'isp'*
'isprint'	options.txt	/*'isprint'*
'joinspaces'	options.txt	/*'joinspaces'*
'js'	options.txt	/*'js'*
'key'	options.txt	/*'key'*
'keymap'	options.txt	/*'keymap'*
'keymodel'	options.txt	/*'keymodel'*
'keywordprg'	options.txt	/*'keywordprg'*
'km'	options.txt	/*'km'*
'kmp'	options.txt	/*'kmp'*
'kp'	options.txt	/*'kp'*
'langmap'	options.txt	/*'langmap'*
'langmenu'	options.txt	/*'langmenu'*
'langnoremap'	options.txt	/*'langnoremap'*
'langremap'	options.txt	/*'langremap'*
'laststatus'	options.txt	/*'laststatus'*
'lazyredraw'	options.txt	/*'lazyredraw'*
'lbr'	options.txt	/*'lbr'*
'lcs'	options.txt	/*'lcs'*
'linebreak'	options.txt	/*'linebreak'*
'lines'	options.txt	/*'lines'*
'linespace'	options.txt	/*'linespace'*
'lisp'	options.txt	/*'lisp'*
'lispwords'	options.txt	/*'lispwords'*
'list'	options.txt	/*'list'*
'listchars'	options.txt	/*'listchars'*
'lm'	options.txt	/*'lm'*
'lmap'	options.txt	/*'lmap'*
'lnr'	options.txt	/*'lnr'*
'loadplugins'	options.txt	/*'loadplugins'*
'lpl'	options.txt	/*'lpl'*
'lrm'	options.txt	/*'lrm'*
'ls'	options.txt	/*'ls'*
'lsp'	options.txt	/*'lsp'*
'luadll'	options.txt	/*'luadll'*
'lw'	options.txt	/*'lw'*
'lz'	options.txt	/*'lz'*
'ma'	options.txt	/*'ma'*
'macatsui'	options.txt	/*'macatsui'*
'magic'	options.txt	/*'magic'*
'makeef'	options.txt	/*'makeef'*
'makeencoding'	options.txt	/*'makeencoding'*
'makeprg'	options.txt	/*'makeprg'*
'mat'	options.txt	/*'mat'*
'matchpairs'	options.txt	/*'matchpairs'*
'matchtime'	options.txt	/*'matchtime'*
'maxcombine'	options.txt	/*'maxcombine'*
'maxfuncdepth'	options.txt	/*'maxfuncdepth'*
'maxmapdepth'	options.txt	/*'maxmapdepth'*
'maxmem'	options.txt	/*'maxmem'*
'maxmempattern'	options.txt	/*'maxmempattern'*
'maxmemtot'	options.txt	/*'maxmemtot'*
'mco'	options.txt	/*'mco'*
'mef'	options.txt	/*'mef'*
'menc'	options.txt	/*'menc'*
'menuitems'	options.txt	/*'menuitems'*
'mesg'	vi_diff.txt	/*'mesg'*
'mfd'	options.txt	/*'mfd'*
'mh'	options.txt	/*'mh'*
'mis'	options.txt	/*'mis'*
'mkspellmem'	options.txt	/*'mkspellmem'*
'ml'	options.txt	/*'ml'*
'mls'	options.txt	/*'mls'*
'mm'	options.txt	/*'mm'*
'mmd'	options.txt	/*'mmd'*
'mmp'	options.txt	/*'mmp'*
'mmt'	options.txt	/*'mmt'*
'mod'	options.txt	/*'mod'*
'modeline'	options.txt	/*'modeline'*
'modelines'	options.txt	/*'modelines'*
'modifiable'	options.txt	/*'modifiable'*
'modified'	options.txt	/*'modified'*
'more'	options.txt	/*'more'*
'mouse'	options.txt	/*'mouse'*
'mousef'	options.txt	/*'mousef'*
'mousefocus'	options.txt	/*'mousefocus'*
'mousehide'	options.txt	/*'mousehide'*
'mousem'	options.txt	/*'mousem'*
'mousemodel'	options.txt	/*'mousemodel'*
'mouses'	options.txt	/*'mouses'*
'mouseshape'	options.txt	/*'mouseshape'*
'mouset'	options.txt	/*'mouset'*
'mousetime'	options.txt	/*'mousetime'*
'mp'	options.txt	/*'mp'*
'mps'	options.txt	/*'mps'*
'msm'	options.txt	/*'msm'*
'mzq'	options.txt	/*'mzq'*
'mzquantum'	options.txt	/*'mzquantum'*
'mzschemedll'	options.txt	/*'mzschemedll'*
'mzschemegcdll'	options.txt	/*'mzschemegcdll'*
'nf'	options.txt	/*'nf'*
'noacd'	options.txt	/*'noacd'*
'noai'	options.txt	/*'noai'*
'noakm'	options.txt	/*'noakm'*
'noallowrevins'	options.txt	/*'noallowrevins'*
'noaltkeymap'	options.txt	/*'noaltkeymap'*
'noanti'	options.txt	/*'noanti'*
'noantialias'	options.txt	/*'noantialias'*
'noar'	options.txt	/*'noar'*
'noarab'	options.txt	/*'noarab'*
'noarabic'	options.txt	/*'noarabic'*
'noarabicshape'	options.txt	/*'noarabicshape'*
'noari'	options.txt	/*'noari'*
'noarshape'	options.txt	/*'noarshape'*
'noas'	todo.txt	/*'noas'*
'noautochdir'	options.txt	/*'noautochdir'*
'noautoindent'	options.txt	/*'noautoindent'*
'noautoread'	options.txt	/*'noautoread'*
'noautosave'	todo.txt	/*'noautosave'*
'noautowrite'	options.txt	/*'noautowrite'*
'noautowriteall'	options.txt	/*'noautowriteall'*
'noaw'	options.txt	/*'noaw'*
'noawa'	options.txt	/*'noawa'*
'nobackup'	options.txt	/*'nobackup'*
'noballooneval'	options.txt	/*'noballooneval'*
'noballoonevalterm'	options.txt	/*'noballoonevalterm'*
'nobeval'	options.txt	/*'nobeval'*
'nobevalterm'	options.txt	/*'nobevalterm'*
'nobin'	options.txt	/*'nobin'*
'nobinary'	options.txt	/*'nobinary'*
'nobiosk'	options.txt	/*'nobiosk'*
'nobioskey'	options.txt	/*'nobioskey'*
'nobk'	options.txt	/*'nobk'*
'nobl'	options.txt	/*'nobl'*
'nobomb'	options.txt	/*'nobomb'*
'nobreakindent'	options.txt	/*'nobreakindent'*
'nobri'	options.txt	/*'nobri'*
'nobuflisted'	options.txt	/*'nobuflisted'*
'nocf'	options.txt	/*'nocf'*
'noci'	options.txt	/*'noci'*
'nocin'	options.txt	/*'nocin'*
'nocindent'	options.txt	/*'nocindent'*
'nocompatible'	options.txt	/*'nocompatible'*
'noconfirm'	options.txt	/*'noconfirm'*
'noconsk'	options.txt	/*'noconsk'*
'noconskey'	options.txt	/*'noconskey'*
'nocopyindent'	options.txt	/*'nocopyindent'*
'nocp'	options.txt	/*'nocp'*
'nocrb'	options.txt	/*'nocrb'*
'nocscoperelative'	options.txt	/*'nocscoperelative'*
'nocscopetag'	options.txt	/*'nocscopetag'*
'nocscopeverbose'	options.txt	/*'nocscopeverbose'*
'nocsre'	options.txt	/*'nocsre'*
'nocst'	options.txt	/*'nocst'*
'nocsverb'	options.txt	/*'nocsverb'*
'nocuc'	options.txt	/*'nocuc'*
'nocul'	options.txt	/*'nocul'*
'nocursorbind'	options.txt	/*'nocursorbind'*
'nocursorcolumn'	options.txt	/*'nocursorcolumn'*
'nocursorline'	options.txt	/*'nocursorline'*
'nodeco'	options.txt	/*'nodeco'*
'nodelcombine'	options.txt	/*'nodelcombine'*
'nodg'	options.txt	/*'nodg'*
'nodiff'	options.txt	/*'nodiff'*
'nodigraph'	options.txt	/*'nodigraph'*
'noea'	options.txt	/*'noea'*
'noeb'	options.txt	/*'noeb'*
'noed'	options.txt	/*'noed'*
'noedcompatible'	options.txt	/*'noedcompatible'*
'noek'	options.txt	/*'noek'*
'noemo'	options.txt	/*'noemo'*
'noemoji'	options.txt	/*'noemoji'*
'noendofline'	options.txt	/*'noendofline'*
'noeol'	options.txt	/*'noeol'*
'noequalalways'	options.txt	/*'noequalalways'*
'noerrorbells'	options.txt	/*'noerrorbells'*
'noesckeys'	options.txt	/*'noesckeys'*
'noet'	options.txt	/*'noet'*
'noex'	options.txt	/*'noex'*
'noexpandtab'	options.txt	/*'noexpandtab'*
'noexrc'	options.txt	/*'noexrc'*
'nofen'	options.txt	/*'nofen'*
'nofic'	options.txt	/*'nofic'*
'nofileignorecase'	options.txt	/*'nofileignorecase'*
'nofixendofline'	options.txt	/*'nofixendofline'*
'nofixeol'	options.txt	/*'nofixeol'*
'nofk'	options.txt	/*'nofk'*
'nofkmap'	options.txt	/*'nofkmap'*
'nofoldenable'	options.txt	/*'nofoldenable'*
'nofs'	options.txt	/*'nofs'*
'nofsync'	options.txt	/*'nofsync'*
'nogd'	options.txt	/*'nogd'*
'nogdefault'	options.txt	/*'nogdefault'*
'noguipty'	options.txt	/*'noguipty'*
'nohid'	options.txt	/*'nohid'*
'nohidden'	options.txt	/*'nohidden'*
'nohk'	options.txt	/*'nohk'*
'nohkmap'	options.txt	/*'nohkmap'*
'nohkmapp'	options.txt	/*'nohkmapp'*
'nohkp'	options.txt	/*'nohkp'*
'nohls'	options.txt	/*'nohls'*
'nohlsearch'	options.txt	/*'nohlsearch'*
'noic'	options.txt	/*'noic'*
'noicon'	options.txt	/*'noicon'*
'noignorecase'	options.txt	/*'noignorecase'*
'noim'	options.txt	/*'noim'*
'noimc'	options.txt	/*'noimc'*
'noimcmdline'	options.txt	/*'noimcmdline'*
'noimd'	options.txt	/*'noimd'*
'noimdisable'	options.txt	/*'noimdisable'*
'noincsearch'	options.txt	/*'noincsearch'*
'noinf'	options.txt	/*'noinf'*
'noinfercase'	options.txt	/*'noinfercase'*
'noinsertmode'	options.txt	/*'noinsertmode'*
'nois'	options.txt	/*'nois'*
'nojoinspaces'	options.txt	/*'nojoinspaces'*
'nojs'	options.txt	/*'nojs'*
'nolangnoremap'	options.txt	/*'nolangnoremap'*
'nolangremap'	options.txt	/*'nolangremap'*
'nolazyredraw'	options.txt	/*'nolazyredraw'*
'nolbr'	options.txt	/*'nolbr'*
'nolinebreak'	options.txt	/*'nolinebreak'*
'nolisp'	options.txt	/*'nolisp'*
'nolist'	options.txt	/*'nolist'*
'nolnr'	options.txt	/*'nolnr'*
'noloadplugins'	options.txt	/*'noloadplugins'*
'nolpl'	options.txt	/*'nolpl'*
'nolrm'	options.txt	/*'nolrm'*
'nolz'	options.txt	/*'nolz'*
'noma'	options.txt	/*'noma'*
'nomacatsui'	options.txt	/*'nomacatsui'*
'nomagic'	options.txt	/*'nomagic'*
'nomh'	options.txt	/*'nomh'*
'noml'	options.txt	/*'noml'*
'nomod'	options.txt	/*'nomod'*
'nomodeline'	options.txt	/*'nomodeline'*
'nomodifiable'	options.txt	/*'nomodifiable'*
'nomodified'	options.txt	/*'nomodified'*
'nomore'	options.txt	/*'nomore'*
'nomousef'	options.txt	/*'nomousef'*
'nomousefocus'	options.txt	/*'nomousefocus'*
'nomousehide'	options.txt	/*'nomousehide'*
'nonu'	options.txt	/*'nonu'*
'nonumber'	options.txt	/*'nonumber'*
'noodev'	options.txt	/*'noodev'*
'noopendevice'	options.txt	/*'noopendevice'*
'nopaste'	options.txt	/*'nopaste'*
'nopi'	options.txt	/*'nopi'*
'nopreserveindent'	options.txt	/*'nopreserveindent'*
'nopreviewwindow'	options.txt	/*'nopreviewwindow'*
'noprompt'	options.txt	/*'noprompt'*
'nopvw'	options.txt	/*'nopvw'*
'noreadonly'	options.txt	/*'noreadonly'*
'norelativenumber'	options.txt	/*'norelativenumber'*
'noremap'	options.txt	/*'noremap'*
'norestorescreen'	options.txt	/*'norestorescreen'*
'norevins'	options.txt	/*'norevins'*
'nori'	options.txt	/*'nori'*
'norightleft'	options.txt	/*'norightleft'*
'norl'	options.txt	/*'norl'*
'nornu'	options.txt	/*'nornu'*
'noro'	options.txt	/*'noro'*
'nors'	options.txt	/*'nors'*
'noru'	options.txt	/*'noru'*
'noruler'	options.txt	/*'noruler'*
'nosb'	options.txt	/*'nosb'*
'nosc'	options.txt	/*'nosc'*
'noscb'	options.txt	/*'noscb'*
'noscrollbind'	options.txt	/*'noscrollbind'*
'noscs'	options.txt	/*'noscs'*
'nosecure'	options.txt	/*'nosecure'*
'nosft'	options.txt	/*'nosft'*
'noshellslash'	options.txt	/*'noshellslash'*
'noshelltemp'	options.txt	/*'noshelltemp'*
'noshiftround'	options.txt	/*'noshiftround'*
'noshortname'	options.txt	/*'noshortname'*
'noshowcmd'	options.txt	/*'noshowcmd'*
'noshowfulltag'	options.txt	/*'noshowfulltag'*
'noshowmatch'	options.txt	/*'noshowmatch'*
'noshowmode'	options.txt	/*'noshowmode'*
'nosi'	options.txt	/*'nosi'*
'nosm'	options.txt	/*'nosm'*
'nosmartcase'	options.txt	/*'nosmartcase'*
'nosmartindent'	options.txt	/*'nosmartindent'*
'nosmarttab'	options.txt	/*'nosmarttab'*
'nosmd'	options.txt	/*'nosmd'*
'nosn'	options.txt	/*'nosn'*
'nosol'	options.txt	/*'nosol'*
'nospell'	options.txt	/*'nospell'*
'nosplitbelow'	options.txt	/*'nosplitbelow'*
'nosplitright'	options.txt	/*'nosplitright'*
'nospr'	options.txt	/*'nospr'*
'nosr'	options.txt	/*'nosr'*
'nossl'	options.txt	/*'nossl'*
'nosta'	options.txt	/*'nosta'*
'nostartofline'	options.txt	/*'nostartofline'*
'nostmp'	options.txt	/*'nostmp'*
'noswapfile'	options.txt	/*'noswapfile'*
'noswf'	options.txt	/*'noswf'*
'nota'	options.txt	/*'nota'*
'notagbsearch'	options.txt	/*'notagbsearch'*
'notagrelative'	options.txt	/*'notagrelative'*
'notagstack'	options.txt	/*'notagstack'*
'notbi'	options.txt	/*'notbi'*
'notbidi'	options.txt	/*'notbidi'*
'notbs'	options.txt	/*'notbs'*
'notermbidi'	options.txt	/*'notermbidi'*
'noterse'	options.txt	/*'noterse'*
'notextauto'	options.txt	/*'notextauto'*
'notextmode'	options.txt	/*'notextmode'*
'notf'	options.txt	/*'notf'*
'notgst'	options.txt	/*'notgst'*
'notildeop'	options.txt	/*'notildeop'*
'notimeout'	options.txt	/*'notimeout'*
'notitle'	options.txt	/*'notitle'*
'noto'	options.txt	/*'noto'*
'notop'	options.txt	/*'notop'*
'notr'	options.txt	/*'notr'*
'nottimeout'	options.txt	/*'nottimeout'*
'nottybuiltin'	options.txt	/*'nottybuiltin'*
'nottyfast'	options.txt	/*'nottyfast'*
'notx'	options.txt	/*'notx'*
'noudf'	options.txt	/*'noudf'*
'noundofile'	options.txt	/*'noundofile'*
'novb'	options.txt	/*'novb'*
'novice'	vi_diff.txt	/*'novice'*
'novisualbell'	options.txt	/*'novisualbell'*
'nowa'	options.txt	/*'nowa'*
'nowarn'	options.txt	/*'nowarn'*
'nowb'	options.txt	/*'nowb'*
'noweirdinvert'	options.txt	/*'noweirdinvert'*
'nowfh'	options.txt	/*'nowfh'*
'nowfw'	options.txt	/*'nowfw'*
'nowic'	options.txt	/*'nowic'*
'nowildignorecase'	options.txt	/*'nowildignorecase'*
'nowildmenu'	options.txt	/*'nowildmenu'*
'nowinfixheight'	options.txt	/*'nowinfixheight'*
'nowinfixwidth'	options.txt	/*'nowinfixwidth'*
'nowiv'	options.txt	/*'nowiv'*
'nowmnu'	options.txt	/*'nowmnu'*
'nowrap'	options.txt	/*'nowrap'*
'nowrapscan'	options.txt	/*'nowrapscan'*
'nowrite'	options.txt	/*'nowrite'*
'nowriteany'	options.txt	/*'nowriteany'*
'nowritebackup'	options.txt	/*'nowritebackup'*
'nows'	options.txt	/*'nows'*
'nrformats'	options.txt	/*'nrformats'*
'nu'	options.txt	/*'nu'*
'number'	options.txt	/*'number'*
'numberwidth'	options.txt	/*'numberwidth'*
'nuw'	options.txt	/*'nuw'*
'odev'	options.txt	/*'odev'*
'oft'	options.txt	/*'oft'*
'ofu'	options.txt	/*'ofu'*
'omnifunc'	options.txt	/*'omnifunc'*
'op'	vi_diff.txt	/*'op'*
'open'	vi_diff.txt	/*'open'*
'opendevice'	options.txt	/*'opendevice'*
'operatorfunc'	options.txt	/*'operatorfunc'*
'opfunc'	options.txt	/*'opfunc'*
'optimize'	vi_diff.txt	/*'optimize'*
'option'	intro.txt	/*'option'*
'osfiletype'	options.txt	/*'osfiletype'*
'pa'	options.txt	/*'pa'*
'packpath'	options.txt	/*'packpath'*
'para'	options.txt	/*'para'*
'paragraphs'	options.txt	/*'paragraphs'*
'paste'	options.txt	/*'paste'*
'pastetoggle'	options.txt	/*'pastetoggle'*
'patchexpr'	options.txt	/*'patchexpr'*
'patchmode'	options.txt	/*'patchmode'*
'path'	options.txt	/*'path'*
'pdev'	options.txt	/*'pdev'*
'penc'	options.txt	/*'penc'*
'perldll'	options.txt	/*'perldll'*
'pex'	options.txt	/*'pex'*
'pexpr'	options.txt	/*'pexpr'*
'pfn'	options.txt	/*'pfn'*
'ph'	options.txt	/*'ph'*
'pheader'	options.txt	/*'pheader'*
'pi'	options.txt	/*'pi'*
'pm'	options.txt	/*'pm'*
'pmbcs'	options.txt	/*'pmbcs'*
'pmbfn'	options.txt	/*'pmbfn'*
'popt'	options.txt	/*'popt'*
'pp'	options.txt	/*'pp'*
'preserveindent'	options.txt	/*'preserveindent'*
'previewheight'	options.txt	/*'previewheight'*
'previewwindow'	options.txt	/*'previewwindow'*
'printdevice'	options.txt	/*'printdevice'*
'printencoding'	options.txt	/*'printencoding'*
'printexpr'	options.txt	/*'printexpr'*
'printfont'	options.txt	/*'printfont'*
'printheader'	options.txt	/*'printheader'*
'printmbcharset'	options.txt	/*'printmbcharset'*
'printmbfont'	options.txt	/*'printmbfont'*
'printoptions'	options.txt	/*'printoptions'*
'prompt'	options.txt	/*'prompt'*
'pt'	options.txt	/*'pt'*
'pumheight'	options.txt	/*'pumheight'*
'pumwidth'	options.txt	/*'pumwidth'*
'pvh'	options.txt	/*'pvh'*
'pvw'	options.txt	/*'pvw'*
'pw'	options.txt	/*'pw'*
'pythondll'	options.txt	/*'pythondll'*
'pythonhome'	options.txt	/*'pythonhome'*
'pythonthreedll'	options.txt	/*'pythonthreedll'*
'pythonthreehome'	options.txt	/*'pythonthreehome'*
'pyx'	options.txt	/*'pyx'*
'pyxversion'	options.txt	/*'pyxversion'*
'qe'	options.txt	/*'qe'*
'quote	motion.txt	/*'quote*
'quoteescape'	options.txt	/*'quoteescape'*
'rdt'	options.txt	/*'rdt'*
're'	options.txt	/*'re'*
'readonly'	options.txt	/*'readonly'*
'redraw'	vi_diff.txt	/*'redraw'*
'redrawtime'	options.txt	/*'redrawtime'*
'regexpengine'	options.txt	/*'regexpengine'*
'relativenumber'	options.txt	/*'relativenumber'*
'remap'	options.txt	/*'remap'*
'renderoptions'	options.txt	/*'renderoptions'*
'report'	options.txt	/*'report'*
'restorescreen'	options.txt	/*'restorescreen'*
'revins'	options.txt	/*'revins'*
'ri'	options.txt	/*'ri'*
'rightleft'	options.txt	/*'rightleft'*
'rightleftcmd'	options.txt	/*'rightleftcmd'*
'rl'	options.txt	/*'rl'*
'rlc'	options.txt	/*'rlc'*
'rnu'	options.txt	/*'rnu'*
'ro'	options.txt	/*'ro'*
'rop'	options.txt	/*'rop'*
'rs'	options.txt	/*'rs'*
'rtp'	options.txt	/*'rtp'*
'ru'	options.txt	/*'ru'*
'rubydll'	options.txt	/*'rubydll'*
'ruf'	options.txt	/*'ruf'*
'ruler'	options.txt	/*'ruler'*
'rulerformat'	options.txt	/*'rulerformat'*
'runtimepath'	options.txt	/*'runtimepath'*
'sb'	options.txt	/*'sb'*
'sbo'	options.txt	/*'sbo'*
'sbr'	options.txt	/*'sbr'*
'sc'	options.txt	/*'sc'*
'scb'	options.txt	/*'scb'*
'scl'	options.txt	/*'scl'*
'scr'	options.txt	/*'scr'*
'scroll'	options.txt	/*'scroll'*
'scrollbind'	options.txt	/*'scrollbind'*
'scrolljump'	options.txt	/*'scrolljump'*
'scrolloff'	options.txt	/*'scrolloff'*
'scrollopt'	options.txt	/*'scrollopt'*
'scs'	options.txt	/*'scs'*
'sect'	options.txt	/*'sect'*
'sections'	options.txt	/*'sections'*
'secure'	options.txt	/*'secure'*
'sel'	options.txt	/*'sel'*
'selection'	options.txt	/*'selection'*
'selectmode'	options.txt	/*'selectmode'*
'sessionoptions'	options.txt	/*'sessionoptions'*
'sft'	options.txt	/*'sft'*
'sh'	options.txt	/*'sh'*
'shcf'	options.txt	/*'shcf'*
'shell'	options.txt	/*'shell'*
'shellcmdflag'	options.txt	/*'shellcmdflag'*
'shellpipe'	options.txt	/*'shellpipe'*
'shellquote'	options.txt	/*'shellquote'*
'shellredir'	options.txt	/*'shellredir'*
'shellslash'	options.txt	/*'shellslash'*
'shelltemp'	options.txt	/*'shelltemp'*
'shelltype'	options.txt	/*'shelltype'*
'shellxescape'	options.txt	/*'shellxescape'*
'shellxquote'	options.txt	/*'shellxquote'*
'shiftround'	options.txt	/*'shiftround'*
'shiftwidth'	options.txt	/*'shiftwidth'*
'shm'	options.txt	/*'shm'*
'shortmess'	options.txt	/*'shortmess'*
'shortname'	options.txt	/*'shortname'*
'showbreak'	options.txt	/*'showbreak'*
'showcmd'	options.txt	/*'showcmd'*
'showfulltag'	options.txt	/*'showfulltag'*
'showmatch'	options.txt	/*'showmatch'*
'showmode'	options.txt	/*'showmode'*
'showtabline'	options.txt	/*'showtabline'*
'shq'	options.txt	/*'shq'*
'si'	options.txt	/*'si'*
'sidescroll'	options.txt	/*'sidescroll'*
'sidescrolloff'	options.txt	/*'sidescrolloff'*
'signcolumn'	options.txt	/*'signcolumn'*
'siso'	options.txt	/*'siso'*
'sj'	options.txt	/*'sj'*
'slm'	options.txt	/*'slm'*
'slow'	vi_diff.txt	/*'slow'*
'slowopen'	vi_diff.txt	/*'slowopen'*
'sm'	options.txt	/*'sm'*
'smartcase'	options.txt	/*'smartcase'*
'smartindent'	options.txt	/*'smartindent'*
'smarttab'	options.txt	/*'smarttab'*
'smc'	options.txt	/*'smc'*
'smd'	options.txt	/*'smd'*
'sn'	options.txt	/*'sn'*
'so'	options.txt	/*'so'*
'softtabstop'	options.txt	/*'softtabstop'*
'sol'	options.txt	/*'sol'*
'sourceany'	vi_diff.txt	/*'sourceany'*
'sp'	options.txt	/*'sp'*
'spc'	options.txt	/*'spc'*
'spell'	options.txt	/*'spell'*
'spellcapcheck'	options.txt	/*'spellcapcheck'*
'spellfile'	options.txt	/*'spellfile'*
'spelllang'	options.txt	/*'spelllang'*
'spellsuggest'	options.txt	/*'spellsuggest'*
'spf'	options.txt	/*'spf'*
'spl'	options.txt	/*'spl'*
'splitbelow'	options.txt	/*'splitbelow'*
'splitright'	options.txt	/*'splitright'*
'spr'	options.txt	/*'spr'*
'sps'	options.txt	/*'sps'*
'sr'	options.txt	/*'sr'*
'srr'	options.txt	/*'srr'*
'ss'	options.txt	/*'ss'*
'ssl'	options.txt	/*'ssl'*
'ssop'	options.txt	/*'ssop'*
'st'	options.txt	/*'st'*
'sta'	options.txt	/*'sta'*
'stal'	options.txt	/*'stal'*
'startofline'	options.txt	/*'startofline'*
'statusline'	options.txt	/*'statusline'*
'stl'	options.txt	/*'stl'*
'stmp'	options.txt	/*'stmp'*
'sts'	options.txt	/*'sts'*
'su'	options.txt	/*'su'*
'sua'	options.txt	/*'sua'*
'suffixes'	options.txt	/*'suffixes'*
'suffixesadd'	options.txt	/*'suffixesadd'*
'sw'	options.txt	/*'sw'*
'swapfile'	options.txt	/*'swapfile'*
'swapsync'	options.txt	/*'swapsync'*
'swb'	options.txt	/*'swb'*
'swf'	options.txt	/*'swf'*
'switchbuf'	options.txt	/*'switchbuf'*
'sws'	options.txt	/*'sws'*
'sxe'	options.txt	/*'sxe'*
'sxq'	options.txt	/*'sxq'*
'syn'	options.txt	/*'syn'*
'synmaxcol'	options.txt	/*'synmaxcol'*
'syntax'	options.txt	/*'syntax'*
't_#2'	term.txt	/*'t_#2'*
't_#4'	term.txt	/*'t_#4'*
't_%1'	term.txt	/*'t_%1'*
't_%i'	term.txt	/*'t_%i'*
't_&8'	term.txt	/*'t_&8'*
't_8b'	term.txt	/*'t_8b'*
't_8f'	term.txt	/*'t_8f'*
't_@7'	term.txt	/*'t_@7'*
't_AB'	term.txt	/*'t_AB'*
't_AF'	term.txt	/*'t_AF'*
't_AL'	term.txt	/*'t_AL'*
't_BD'	term.txt	/*'t_BD'*
't_BE'	term.txt	/*'t_BE'*
't_CS'	term.txt	/*'t_CS'*
't_CV'	term.txt	/*'t_CV'*
't_Ce'	term.txt	/*'t_Ce'*
't_Co'	term.txt	/*'t_Co'*
't_Cs'	term.txt	/*'t_Cs'*
't_DL'	term.txt	/*'t_DL'*
't_EC'	term.txt	/*'t_EC'*
't_EI'	term.txt	/*'t_EI'*
't_F1'	term.txt	/*'t_F1'*
't_F2'	term.txt	/*'t_F2'*
't_F3'	term.txt	/*'t_F3'*
't_F4'	term.txt	/*'t_F4'*
't_F5'	term.txt	/*'t_F5'*
't_F6'	term.txt	/*'t_F6'*
't_F7'	term.txt	/*'t_F7'*
't_F8'	term.txt	/*'t_F8'*
't_F9'	term.txt	/*'t_F9'*
't_GP'	term.txt	/*'t_GP'*
't_IE'	term.txt	/*'t_IE'*
't_IS'	term.txt	/*'t_IS'*
't_K1'	term.txt	/*'t_K1'*
't_K3'	term.txt	/*'t_K3'*
't_K4'	term.txt	/*'t_K4'*
't_K5'	term.txt	/*'t_K5'*
't_K6'	term.txt	/*'t_K6'*
't_K7'	term.txt	/*'t_K7'*
't_K8'	term.txt	/*'t_K8'*
't_K9'	term.txt	/*'t_K9'*
't_KA'	term.txt	/*'t_KA'*
't_KB'	term.txt	/*'t_KB'*
't_KC'	term.txt	/*'t_KC'*
't_KD'	term.txt	/*'t_KD'*
't_KE'	term.txt	/*'t_KE'*
't_KF'	term.txt	/*'t_KF'*
't_KG'	term.txt	/*'t_KG'*
't_KH'	term.txt	/*'t_KH'*
't_KI'	term.txt	/*'t_KI'*
't_KJ'	term.txt	/*'t_KJ'*
't_KK'	term.txt	/*'t_KK'*
't_KL'	term.txt	/*'t_KL'*
't_PE'	term.txt	/*'t_PE'*
't_PS'	term.txt	/*'t_PS'*
't_RB'	term.txt	/*'t_RB'*
't_RC'	term.txt	/*'t_RC'*
't_RF'	term.txt	/*'t_RF'*
't_RI'	term.txt	/*'t_RI'*
't_RS'	term.txt	/*'t_RS'*
't_RV'	term.txt	/*'t_RV'*
't_SC'	term.txt	/*'t_SC'*
't_SH'	term.txt	/*'t_SH'*
't_SI'	term.txt	/*'t_SI'*
't_SR'	term.txt	/*'t_SR'*
't_Sb'	term.txt	/*'t_Sb'*
't_Sf'	term.txt	/*'t_Sf'*
't_Te'	term.txt	/*'t_Te'*
't_Ts'	term.txt	/*'t_Ts'*
't_VS'	term.txt	/*'t_VS'*
't_WP'	term.txt	/*'t_WP'*
't_WS'	term.txt	/*'t_WS'*
't_ZH'	term.txt	/*'t_ZH'*
't_ZR'	term.txt	/*'t_ZR'*
't_al'	term.txt	/*'t_al'*
't_bc'	term.txt	/*'t_bc'*
't_cd'	term.txt	/*'t_cd'*
't_ce'	term.txt	/*'t_ce'*
't_cl'	term.txt	/*'t_cl'*
't_cm'	term.txt	/*'t_cm'*
't_cs'	term.txt	/*'t_cs'*
't_da'	term.txt	/*'t_da'*
't_db'	term.txt	/*'t_db'*
't_dl'	term.txt	/*'t_dl'*
't_fs'	term.txt	/*'t_fs'*
't_k1'	term.txt	/*'t_k1'*
't_k2'	term.txt	/*'t_k2'*
't_k3'	term.txt	/*'t_k3'*
't_k4'	term.txt	/*'t_k4'*
't_k5'	term.txt	/*'t_k5'*
't_k6'	term.txt	/*'t_k6'*
't_k7'	term.txt	/*'t_k7'*
't_k8'	term.txt	/*'t_k8'*
't_k9'	term.txt	/*'t_k9'*
't_k;'	term.txt	/*'t_k;'*
't_kB'	term.txt	/*'t_kB'*
't_kD'	term.txt	/*'t_kD'*
't_kI'	term.txt	/*'t_kI'*
't_kN'	term.txt	/*'t_kN'*
't_kP'	term.txt	/*'t_kP'*
't_kb'	term.txt	/*'t_kb'*
't_kd'	term.txt	/*'t_kd'*
't_ke'	term.txt	/*'t_ke'*
't_kh'	term.txt	/*'t_kh'*
't_kl'	term.txt	/*'t_kl'*
't_kr'	term.txt	/*'t_kr'*
't_ks'	term.txt	/*'t_ks'*
't_ku'	term.txt	/*'t_ku'*
't_le'	term.txt	/*'t_le'*
't_mb'	term.txt	/*'t_mb'*
't_md'	term.txt	/*'t_md'*
't_me'	term.txt	/*'t_me'*
't_mr'	term.txt	/*'t_mr'*
't_ms'	term.txt	/*'t_ms'*
't_nd'	term.txt	/*'t_nd'*
't_op'	term.txt	/*'t_op'*
't_se'	term.txt	/*'t_se'*
't_so'	term.txt	/*'t_so'*
't_sr'	term.txt	/*'t_sr'*
't_star7'	term.txt	/*'t_star7'*
't_te'	term.txt	/*'t_te'*
't_ti'	term.txt	/*'t_ti'*
't_ts'	term.txt	/*'t_ts'*
't_u7'	term.txt	/*'t_u7'*
't_ue'	term.txt	/*'t_ue'*
't_us'	term.txt	/*'t_us'*
't_ut'	term.txt	/*'t_ut'*
't_vb'	term.txt	/*'t_vb'*
't_ve'	term.txt	/*'t_ve'*
't_vi'	term.txt	/*'t_vi'*
't_vs'	term.txt	/*'t_vs'*
't_xn'	term.txt	/*'t_xn'*
't_xs'	term.txt	/*'t_xs'*
'ta'	options.txt	/*'ta'*
'tabline'	options.txt	/*'tabline'*
'tabpagemax'	options.txt	/*'tabpagemax'*
'tabstop'	options.txt	/*'tabstop'*
'tag'	options.txt	/*'tag'*
'tagbsearch'	options.txt	/*'tagbsearch'*
'tagcase'	options.txt	/*'tagcase'*
'taglength'	options.txt	/*'taglength'*
'tagrelative'	options.txt	/*'tagrelative'*
'tags'	options.txt	/*'tags'*
'tagstack'	options.txt	/*'tagstack'*
'tal'	options.txt	/*'tal'*
'tb'	options.txt	/*'tb'*
'tbi'	options.txt	/*'tbi'*
'tbidi'	options.txt	/*'tbidi'*
'tbis'	options.txt	/*'tbis'*
'tbs'	options.txt	/*'tbs'*
'tc'	options.txt	/*'tc'*
'tcldll'	options.txt	/*'tcldll'*
'tenc'	options.txt	/*'tenc'*
'term'	options.txt	/*'term'*
'termbidi'	options.txt	/*'termbidi'*
'termencoding'	options.txt	/*'termencoding'*
'termguicolors'	options.txt	/*'termguicolors'*
'termwinkey'	options.txt	/*'termwinkey'*
'termwinscroll'	options.txt	/*'termwinscroll'*
'termwinsize'	options.txt	/*'termwinsize'*
'terse'	options.txt	/*'terse'*
'textauto'	options.txt	/*'textauto'*
'textmode'	options.txt	/*'textmode'*
'textwidth'	options.txt	/*'textwidth'*
'tf'	options.txt	/*'tf'*
'tgc'	options.txt	/*'tgc'*
'tgst'	options.txt	/*'tgst'*
'thesaurus'	options.txt	/*'thesaurus'*
'tildeop'	options.txt	/*'tildeop'*
'timeout'	options.txt	/*'timeout'*
'timeoutlen'	options.txt	/*'timeoutlen'*
'title'	options.txt	/*'title'*
'titlelen'	options.txt	/*'titlelen'*
'titleold'	options.txt	/*'titleold'*
'titlestring'	options.txt	/*'titlestring'*
'tl'	options.txt	/*'tl'*
'tm'	options.txt	/*'tm'*
'to'	options.txt	/*'to'*
'toolbar'	options.txt	/*'toolbar'*
'toolbariconsize'	options.txt	/*'toolbariconsize'*
'top'	options.txt	/*'top'*
'tpm'	options.txt	/*'tpm'*
'tr'	options.txt	/*'tr'*
'ts'	options.txt	/*'ts'*
'tsl'	options.txt	/*'tsl'*
'tsr'	options.txt	/*'tsr'*
'ttimeout'	options.txt	/*'ttimeout'*
'ttimeoutlen'	options.txt	/*'ttimeoutlen'*
'ttm'	options.txt	/*'ttm'*
'tty'	options.txt	/*'tty'*
'ttybuiltin'	options.txt	/*'ttybuiltin'*
'ttyfast'	options.txt	/*'ttyfast'*
'ttym'	options.txt	/*'ttym'*
'ttymouse'	options.txt	/*'ttymouse'*
'ttyscroll'	options.txt	/*'ttyscroll'*
'ttytype'	options.txt	/*'ttytype'*
'tw'	options.txt	/*'tw'*
'twk'	options.txt	/*'twk'*
'tws'	options.txt	/*'tws'*
'twsl'	options.txt	/*'twsl'*
'tx'	options.txt	/*'tx'*
'uc'	options.txt	/*'uc'*
'udf'	options.txt	/*'udf'*
'udir'	options.txt	/*'udir'*
'ul'	options.txt	/*'ul'*
'undodir'	options.txt	/*'undodir'*
'undofile'	options.txt	/*'undofile'*
'undolevels'	options.txt	/*'undolevels'*
'undoreload'	options.txt	/*'undoreload'*
'updatecount'	options.txt	/*'updatecount'*
'updatetime'	options.txt	/*'updatetime'*
'ur'	options.txt	/*'ur'*
'ut'	options.txt	/*'ut'*
'vb'	options.txt	/*'vb'*
'vbs'	options.txt	/*'vbs'*
'vdir'	options.txt	/*'vdir'*
've'	options.txt	/*'ve'*
'verbose'	options.txt	/*'verbose'*
'verbosefile'	options.txt	/*'verbosefile'*
'vfile'	options.txt	/*'vfile'*
'vi'	options.txt	/*'vi'*
'viewdir'	options.txt	/*'viewdir'*
'viewoptions'	options.txt	/*'viewoptions'*
'vif'	options.txt	/*'vif'*
'viminfo'	options.txt	/*'viminfo'*
'viminfofile'	options.txt	/*'viminfofile'*
'virtualedit'	options.txt	/*'virtualedit'*
'visualbell'	options.txt	/*'visualbell'*
'vop'	options.txt	/*'vop'*
'w1200'	vi_diff.txt	/*'w1200'*
'w300'	vi_diff.txt	/*'w300'*
'w9600'	vi_diff.txt	/*'w9600'*
'wa'	options.txt	/*'wa'*
'wak'	options.txt	/*'wak'*
'warn'	options.txt	/*'warn'*
'wb'	options.txt	/*'wb'*
'wc'	options.txt	/*'wc'*
'wcm'	options.txt	/*'wcm'*
'wd'	options.txt	/*'wd'*
'weirdinvert'	options.txt	/*'weirdinvert'*
'wfh'	options.txt	/*'wfh'*
'wfw'	options.txt	/*'wfw'*
'wh'	options.txt	/*'wh'*
'whichwrap'	options.txt	/*'whichwrap'*
'wi'	options.txt	/*'wi'*
'wic'	options.txt	/*'wic'*
'wig'	options.txt	/*'wig'*
'wildchar'	options.txt	/*'wildchar'*
'wildcharm'	options.txt	/*'wildcharm'*
'wildignore'	options.txt	/*'wildignore'*
'wildignorecase'	options.txt	/*'wildignorecase'*
'wildmenu'	options.txt	/*'wildmenu'*
'wildmode'	options.txt	/*'wildmode'*
'wildoptions'	options.txt	/*'wildoptions'*
'wim'	options.txt	/*'wim'*
'winaltkeys'	options.txt	/*'winaltkeys'*
'window'	options.txt	/*'window'*
'winfixheight'	options.txt	/*'winfixheight'*
'winfixwidth'	options.txt	/*'winfixwidth'*
'winheight'	options.txt	/*'winheight'*
'winminheight'	options.txt	/*'winminheight'*
'winminwidth'	options.txt	/*'winminwidth'*
'winptydll'	options.txt	/*'winptydll'*
'winwidth'	options.txt	/*'winwidth'*
'wiv'	options.txt	/*'wiv'*
'wiw'	options.txt	/*'wiw'*
'wm'	options.txt	/*'wm'*
'wmh'	options.txt	/*'wmh'*
'wmnu'	options.txt	/*'wmnu'*
'wmw'	options.txt	/*'wmw'*
'wop'	options.txt	/*'wop'*
'wrap'	options.txt	/*'wrap'*
'wrapmargin'	options.txt	/*'wrapmargin'*
'wrapscan'	options.txt	/*'wrapscan'*
'write'	options.txt	/*'write'*
'writeany'	options.txt	/*'writeany'*
'writebackup'	options.txt	/*'writebackup'*
'writedelay'	options.txt	/*'writedelay'*
'ws'	options.txt	/*'ws'*
'ww'	options.txt	/*'ww'*
'{	motion.txt	/*'{*
'}	motion.txt	/*'}*
(	motion.txt	/*(*
)	motion.txt	/*)*
+	motion.txt	/*+*
++bad	editing.txt	/*++bad*
++bin	editing.txt	/*++bin*
++builtin_terms	various.txt	/*++builtin_terms*
++edit	editing.txt	/*++edit*
++enc	editing.txt	/*++enc*
++ff	editing.txt	/*++ff*
++nobin	editing.txt	/*++nobin*
++opt	editing.txt	/*++opt*
+ARP	various.txt	/*+ARP*
+GUI_Athena	various.txt	/*+GUI_Athena*
+GUI_GTK	various.txt	/*+GUI_GTK*
+GUI_Motif	various.txt	/*+GUI_Motif*
+GUI_Photon	various.txt	/*+GUI_Photon*
+GUI_neXtaw	various.txt	/*+GUI_neXtaw*
+X11	various.txt	/*+X11*
+acl	various.txt	/*+acl*
+arabic	various.txt	/*+arabic*
+autocmd	various.txt	/*+autocmd*
+autoservername	various.txt	/*+autoservername*
+balloon_eval	various.txt	/*+balloon_eval*
+balloon_eval_term	various.txt	/*+balloon_eval_term*
+browse	various.txt	/*+browse*
+builtin_terms	various.txt	/*+builtin_terms*
+byte_offset	various.txt	/*+byte_offset*
+channel	various.txt	/*+channel*
+cindent	various.txt	/*+cindent*
+clientserver	various.txt	/*+clientserver*
+clipboard	various.txt	/*+clipboard*
+cmd	editing.txt	/*+cmd*
+cmdline_compl	various.txt	/*+cmdline_compl*
+cmdline_hist	various.txt	/*+cmdline_hist*
+cmdline_info	various.txt	/*+cmdline_info*
+comments	various.txt	/*+comments*
+conceal	various.txt	/*+conceal*
+cryptv	various.txt	/*+cryptv*
+cscope	various.txt	/*+cscope*
+cursorbind	various.txt	/*+cursorbind*
+cursorshape	various.txt	/*+cursorshape*
+debug	various.txt	/*+debug*
+dialog_con	various.txt	/*+dialog_con*
+dialog_con_gui	various.txt	/*+dialog_con_gui*
+dialog_gui	various.txt	/*+dialog_gui*
+diff	various.txt	/*+diff*
+digraphs	various.txt	/*+digraphs*
+directx	various.txt	/*+directx*
+dnd	various.txt	/*+dnd*
+emacs_tags	various.txt	/*+emacs_tags*
+eval	various.txt	/*+eval*
+ex_extra	various.txt	/*+ex_extra*
+extra_search	various.txt	/*+extra_search*
+farsi	various.txt	/*+farsi*
+feature-list	various.txt	/*+feature-list*
+file_in_path	various.txt	/*+file_in_path*
+find_in_path	various.txt	/*+find_in_path*
+float	various.txt	/*+float*
+folding	various.txt	/*+folding*
+footer	various.txt	/*+footer*
+fork	various.txt	/*+fork*
+gettext	various.txt	/*+gettext*
+hangul_input	various.txt	/*+hangul_input*
+iconv	various.txt	/*+iconv*
+iconv/dyn	various.txt	/*+iconv\/dyn*
+insert_expand	various.txt	/*+insert_expand*
+job	various.txt	/*+job*
+jumplist	various.txt	/*+jumplist*
+keymap	various.txt	/*+keymap*
+lambda	various.txt	/*+lambda*
+langmap	various.txt	/*+langmap*
+libcall	various.txt	/*+libcall*
+linebreak	various.txt	/*+linebreak*
+lispindent	various.txt	/*+lispindent*
+listcmds	various.txt	/*+listcmds*
+localmap	various.txt	/*+localmap*
+lua	various.txt	/*+lua*
+lua/dyn	various.txt	/*+lua\/dyn*
+menu	various.txt	/*+menu*
+mksession	various.txt	/*+mksession*
+modify_fname	various.txt	/*+modify_fname*
+mouse	various.txt	/*+mouse*
+mouse_dec	various.txt	/*+mouse_dec*
+mouse_gpm	various.txt	/*+mouse_gpm*
+mouse_jsbterm	various.txt	/*+mouse_jsbterm*
+mouse_netterm	various.txt	/*+mouse_netterm*
+mouse_pterm	various.txt	/*+mouse_pterm*
+mouse_sgr	various.txt	/*+mouse_sgr*
+mouse_sysmouse	various.txt	/*+mouse_sysmouse*
+mouse_urxvt	various.txt	/*+mouse_urxvt*
+mouse_xterm	various.txt	/*+mouse_xterm*
+mouseshape	various.txt	/*+mouseshape*
+multi_byte	various.txt	/*+multi_byte*
+multi_byte_ime	various.txt	/*+multi_byte_ime*
+multi_lang	various.txt	/*+multi_lang*
+mzscheme	various.txt	/*+mzscheme*
+mzscheme/dyn	various.txt	/*+mzscheme\/dyn*
+netbeans_intg	various.txt	/*+netbeans_intg*
+num64	various.txt	/*+num64*
+ole	various.txt	/*+ole*
+packages	various.txt	/*+packages*
+path_extra	various.txt	/*+path_extra*
+perl	various.txt	/*+perl*
+perl/dyn	various.txt	/*+perl\/dyn*
+persistent_undo	various.txt	/*+persistent_undo*
+postscript	various.txt	/*+postscript*
+printer	various.txt	/*+printer*
+profile	various.txt	/*+profile*
+python	various.txt	/*+python*
+python/dyn	various.txt	/*+python\/dyn*
+python3	various.txt	/*+python3*
+python3/dyn	various.txt	/*+python3\/dyn*
+quickfix	various.txt	/*+quickfix*
+reltime	various.txt	/*+reltime*
+rightleft	various.txt	/*+rightleft*
+ruby	various.txt	/*+ruby*
+ruby/dyn	various.txt	/*+ruby\/dyn*
+scrollbind	various.txt	/*+scrollbind*
+signs	various.txt	/*+signs*
+smartindent	various.txt	/*+smartindent*
+startuptime	various.txt	/*+startuptime*
+statusline	various.txt	/*+statusline*
+sun_workshop	various.txt	/*+sun_workshop*
+syntax	various.txt	/*+syntax*
+system()	various.txt	/*+system()*
+tag_any_white	various.txt	/*+tag_any_white*
+tag_binary	various.txt	/*+tag_binary*
+tag_old_static	various.txt	/*+tag_old_static*
+tcl	various.txt	/*+tcl*
+tcl/dyn	various.txt	/*+tcl\/dyn*
+termguicolors	various.txt	/*+termguicolors*
+terminal	various.txt	/*+terminal*
+terminfo	various.txt	/*+terminfo*
+termresponse	various.txt	/*+termresponse*
+textobjects	various.txt	/*+textobjects*
+tgetent	various.txt	/*+tgetent*
+timers	various.txt	/*+timers*
+title	various.txt	/*+title*
+toolbar	various.txt	/*+toolbar*
+unix	eval.txt	/*+unix*
+user_commands	various.txt	/*+user_commands*
+vertsplit	various.txt	/*+vertsplit*
+viminfo	various.txt	/*+viminfo*
+virtualedit	various.txt	/*+virtualedit*
+visual	various.txt	/*+visual*
+visualextra	various.txt	/*+visualextra*
+vreplace	various.txt	/*+vreplace*
+vtp	various.txt	/*+vtp*
+wildignore	various.txt	/*+wildignore*
+wildmenu	various.txt	/*+wildmenu*
+windows	various.txt	/*+windows*
+writebackup	various.txt	/*+writebackup*
+xfontset	various.txt	/*+xfontset*
+xim	various.txt	/*+xim*
+xpm	various.txt	/*+xpm*
+xpm_w32	various.txt	/*+xpm_w32*
+xsmp	various.txt	/*+xsmp*
+xsmp_interact	various.txt	/*+xsmp_interact*
+xterm_clipboard	various.txt	/*+xterm_clipboard*
+xterm_save	various.txt	/*+xterm_save*
,	motion.txt	/*,*
-	motion.txt	/*-*
-+	starting.txt	/*-+*
-+/	starting.txt	/*-+\/*
-+c	starting.txt	/*-+c*
-+reverse	gui_x11.txt	/*-+reverse*
-+rv	gui_x11.txt	/*-+rv*
--	starting.txt	/*--*
---	starting.txt	/*---*
--clean	starting.txt	/*--clean*
--cmd	starting.txt	/*--cmd*
--echo-wid	starting.txt	/*--echo-wid*
--help	starting.txt	/*--help*
--literal	starting.txt	/*--literal*
--nofork	starting.txt	/*--nofork*
--noplugin	starting.txt	/*--noplugin*
--not-a-term	starting.txt	/*--not-a-term*
--remote	remote.txt	/*--remote*
--remote-expr	remote.txt	/*--remote-expr*
--remote-send	remote.txt	/*--remote-send*
--remote-silent	remote.txt	/*--remote-silent*
--remote-tab	remote.txt	/*--remote-tab*
--remote-tab-silent	remote.txt	/*--remote-tab-silent*
--remote-tab-wait	remote.txt	/*--remote-tab-wait*
--remote-tab-wait-silent	remote.txt	/*--remote-tab-wait-silent*
--remote-wait	remote.txt	/*--remote-wait*
--remote-wait-silent	remote.txt	/*--remote-wait-silent*
--role	starting.txt	/*--role*
--serverlist	remote.txt	/*--serverlist*
--servername	remote.txt	/*--servername*
--socketid	starting.txt	/*--socketid*
--startuptime	starting.txt	/*--startuptime*
--ttyfail	starting.txt	/*--ttyfail*
--version	starting.txt	/*--version*
--windowid	starting.txt	/*--windowid*
-A	starting.txt	/*-A*
-C	starting.txt	/*-C*
-D	starting.txt	/*-D*
-E	starting.txt	/*-E*
-F	starting.txt	/*-F*
-H	starting.txt	/*-H*
-L	starting.txt	/*-L*
-M	starting.txt	/*-M*
-N	starting.txt	/*-N*
-O	starting.txt	/*-O*
-P	starting.txt	/*-P*
-R	starting.txt	/*-R*
-S	starting.txt	/*-S*
-T	starting.txt	/*-T*
-U	starting.txt	/*-U*
-V	starting.txt	/*-V*
-W	starting.txt	/*-W*
-X	starting.txt	/*-X*
-Z	starting.txt	/*-Z*
-b	starting.txt	/*-b*
-background	gui_x11.txt	/*-background*
-bg	gui_x11.txt	/*-bg*
-boldfont	gui_x11.txt	/*-boldfont*
-borderwidth	gui_x11.txt	/*-borderwidth*
-bw	gui_x11.txt	/*-bw*
-c	starting.txt	/*-c*
-d	starting.txt	/*-d*
-dev	starting.txt	/*-dev*
-display	gui_x11.txt	/*-display*
-e	starting.txt	/*-e*
-f	starting.txt	/*-f*
-fg	gui_x11.txt	/*-fg*
-file	starting.txt	/*-file*
-fn	gui_x11.txt	/*-fn*
-font	gui_x11.txt	/*-font*
-foreground	gui_x11.txt	/*-foreground*
-g	starting.txt	/*-g*
-geom	gui_x11.txt	/*-geom*
-geometry	gui_x11.txt	/*-geometry*
-geometry-example	gui_x11.txt	/*-geometry-example*
-gui	gui_x11.txt	/*-gui*
-h	starting.txt	/*-h*
-i	starting.txt	/*-i*
-iconic	gui_x11.txt	/*-iconic*
-italicfont	gui_x11.txt	/*-italicfont*
-l	starting.txt	/*-l*
-m	starting.txt	/*-m*
-menufont	gui_x11.txt	/*-menufont*
-menufontset	gui_x11.txt	/*-menufontset*
-menuheight	gui_x11.txt	/*-menuheight*
-mf	gui_x11.txt	/*-mf*
-mh	gui_x11.txt	/*-mh*
-n	starting.txt	/*-n*
-nb	starting.txt	/*-nb*
-o	starting.txt	/*-o*
-p	starting.txt	/*-p*
-q	starting.txt	/*-q*
-qf	starting.txt	/*-qf*
-r	starting.txt	/*-r*
-register	if_ole.txt	/*-register*
-reverse	gui_x11.txt	/*-reverse*
-rv	gui_x11.txt	/*-rv*
-s	starting.txt	/*-s*
-s-ex	starting.txt	/*-s-ex*
-scrollbarwidth	gui_x11.txt	/*-scrollbarwidth*
-silent	if_ole.txt	/*-silent*
-sw	gui_x11.txt	/*-sw*
-t	starting.txt	/*-t*
-tag	starting.txt	/*-tag*
-u	starting.txt	/*-u*
-ul	gui_x11.txt	/*-ul*
-unregister	if_ole.txt	/*-unregister*
-v	starting.txt	/*-v*
-vim	starting.txt	/*-vim*
-w	starting.txt	/*-w*
-w_nr	starting.txt	/*-w_nr*
-x	starting.txt	/*-x*
-xrm	gui_x11.txt	/*-xrm*
-y	starting.txt	/*-y*
.	repeat.txt	/*.*
...	eval.txt	/*...*
.Xdefaults	gui_x11.txt	/*.Xdefaults*
.aff	spell.txt	/*.aff*
.dic	spell.txt	/*.dic*
.exrc	starting.txt	/*.exrc*
.gvimrc	gui.txt	/*.gvimrc*
.netrwbook	pi_netrw.txt	/*.netrwbook*
.netrwhist	pi_netrw.txt	/*.netrwhist*
.vimrc	starting.txt	/*.vimrc*
/	pattern.txt	/*\/*
/$	pattern.txt	/*\/$*
/.	pattern.txt	/*\/.*
//	version7.txt	/*\/\/*
//;	pattern.txt	/*\/\/;*
/<CR>	pattern.txt	/*\/<CR>*
/[[.	pattern.txt	/*\/[[.*
/[[=	pattern.txt	/*\/[[=*
/[\n]	pattern.txt	/*\/[\\n]*
/[]	pattern.txt	/*\/[]*
/\	pattern.txt	/*\/\\*
/\$	pattern.txt	/*\/\\$*
/\%#	pattern.txt	/*\/\\%#*
/\%#=	pattern.txt	/*\/\\%#=*
/\%$	pattern.txt	/*\/\\%$*
/\%'m	pattern.txt	/*\/\\%'m*
/\%(	pattern.txt	/*\/\\%(*
/\%(\)	pattern.txt	/*\/\\%(\\)*
/\%<'m	pattern.txt	/*\/\\%<'m*
/\%<c	pattern.txt	/*\/\\%<c*
/\%<l	pattern.txt	/*\/\\%<l*
/\%<v	pattern.txt	/*\/\\%<v*
/\%>'m	pattern.txt	/*\/\\%>'m*
/\%>c	pattern.txt	/*\/\\%>c*
/\%>l	pattern.txt	/*\/\\%>l*
/\%>v	pattern.txt	/*\/\\%>v*
/\%C	pattern.txt	/*\/\\%C*
/\%U	pattern.txt	/*\/\\%U*
/\%V	pattern.txt	/*\/\\%V*
/\%[]	pattern.txt	/*\/\\%[]*
/\%^	pattern.txt	/*\/\\%^*
/\%c	pattern.txt	/*\/\\%c*
/\%d	pattern.txt	/*\/\\%d*
/\%l	pattern.txt	/*\/\\%l*
/\%o	pattern.txt	/*\/\\%o*
/\%u	pattern.txt	/*\/\\%u*
/\%v	pattern.txt	/*\/\\%v*
/\%x	pattern.txt	/*\/\\%x*
/\&	pattern.txt	/*\/\\&*
/\(	pattern.txt	/*\/\\(*
/\(\)	pattern.txt	/*\/\\(\\)*
/\)	pattern.txt	/*\/\\)*
/\+	pattern.txt	/*\/\\+*
/\.	pattern.txt	/*\/\\.*
/\1	pattern.txt	/*\/\\1*
/\2	pattern.txt	/*\/\\2*
/\3	pattern.txt	/*\/\\3*
/\9	pattern.txt	/*\/\\9*
/\<	pattern.txt	/*\/\\<*
/\=	pattern.txt	/*\/\\=*
/\>	pattern.txt	/*\/\\>*
/\?	pattern.txt	/*\/\\?*
/\@!	pattern.txt	/*\/\\@!*
/\@<!	pattern.txt	/*\/\\@<!*
/\@<=	pattern.txt	/*\/\\@<=*
/\@=	pattern.txt	/*\/\\@=*
/\@>	pattern.txt	/*\/\\@>*
/\A	pattern.txt	/*\/\\A*
/\C	pattern.txt	/*\/\\C*
/\D	pattern.txt	/*\/\\D*
/\F	pattern.txt	/*\/\\F*
/\H	pattern.txt	/*\/\\H*
/\I	pattern.txt	/*\/\\I*
/\K	pattern.txt	/*\/\\K*
/\L	pattern.txt	/*\/\\L*
/\M	pattern.txt	/*\/\\M*
/\O	pattern.txt	/*\/\\O*
/\P	pattern.txt	/*\/\\P*
/\S	pattern.txt	/*\/\\S*
/\U	pattern.txt	/*\/\\U*
/\V	pattern.txt	/*\/\\V*
/\W	pattern.txt	/*\/\\W*
/\X	pattern.txt	/*\/\\X*
/\Z	pattern.txt	/*\/\\Z*
/\[]	pattern.txt	/*\/\\[]*
/\\	pattern.txt	/*\/\\\\*
/\]	pattern.txt	/*\/\\]*
/\^	pattern.txt	/*\/\\^*
/\_	pattern.txt	/*\/\\_*
/\_$	pattern.txt	/*\/\\_$*
/\_.	pattern.txt	/*\/\\_.*
/\_A	pattern.txt	/*\/\\_A*
/\_D	pattern.txt	/*\/\\_D*
/\_F	pattern.txt	/*\/\\_F*
/\_H	pattern.txt	/*\/\\_H*
/\_I	pattern.txt	/*\/\\_I*
/\_K	pattern.txt	/*\/\\_K*
/\_L	pattern.txt	/*\/\\_L*
/\_O	pattern.txt	/*\/\\_O*
/\_P	pattern.txt	/*\/\\_P*
/\_S	pattern.txt	/*\/\\_S*
/\_U	pattern.txt	/*\/\\_U*
/\_W	pattern.txt	/*\/\\_W*
/\_X	pattern.txt	/*\/\\_X*
/\_[]	pattern.txt	/*\/\\_[]*
/\_^	pattern.txt	/*\/\\_^*
/\_a	pattern.txt	/*\/\\_a*
/\_d	pattern.txt	/*\/\\_d*
/\_f	pattern.txt	/*\/\\_f*
/\_h	pattern.txt	/*\/\\_h*
/\_i	pattern.txt	/*\/\\_i*
/\_k	pattern.txt	/*\/\\_k*
/\_l	pattern.txt	/*\/\\_l*
/\_o	pattern.txt	/*\/\\_o*
/\_p	pattern.txt	/*\/\\_p*
/\_s	pattern.txt	/*\/\\_s*
/\_u	pattern.txt	/*\/\\_u*
/\_w	pattern.txt	/*\/\\_w*
/\_x	pattern.txt	/*\/\\_x*
/\a	pattern.txt	/*\/\\a*
/\b	pattern.txt	/*\/\\b*
/\bar	pattern.txt	/*\/\\bar*
/\c	pattern.txt	/*\/\\c*
/\d	pattern.txt	/*\/\\d*
/\e	pattern.txt	/*\/\\e*
/\f	pattern.txt	/*\/\\f*
/\h	pattern.txt	/*\/\\h*
/\i	pattern.txt	/*\/\\i*
/\k	pattern.txt	/*\/\\k*
/\l	pattern.txt	/*\/\\l*
/\m	pattern.txt	/*\/\\m*
/\n	pattern.txt	/*\/\\n*
/\o	pattern.txt	/*\/\\o*
/\p	pattern.txt	/*\/\\p*
/\r	pattern.txt	/*\/\\r*
/\s	pattern.txt	/*\/\\s*
/\star	pattern.txt	/*\/\\star*
/\t	pattern.txt	/*\/\\t*
/\u	pattern.txt	/*\/\\u*
/\v	pattern.txt	/*\/\\v*
/\w	pattern.txt	/*\/\\w*
/\x	pattern.txt	/*\/\\x*
/\z(	syntax.txt	/*\/\\z(*
/\z(\)	syntax.txt	/*\/\\z(\\)*
/\z1	syntax.txt	/*\/\\z1*
/\z2	syntax.txt	/*\/\\z2*
/\z3	syntax.txt	/*\/\\z3*
/\z4	syntax.txt	/*\/\\z4*
/\z5	syntax.txt	/*\/\\z5*
/\z6	syntax.txt	/*\/\\z6*
/\z7	syntax.txt	/*\/\\z7*
/\z8	syntax.txt	/*\/\\z8*
/\z9	syntax.txt	/*\/\\z9*
/\ze	pattern.txt	/*\/\\ze*
/\zs	pattern.txt	/*\/\\zs*
/\{	pattern.txt	/*\/\\{*
/\{-	pattern.txt	/*\/\\{-*
/\~	pattern.txt	/*\/\\~*
/^	pattern.txt	/*\/^*
/_CTRL-G	cmdline.txt	/*\/_CTRL-G*
/_CTRL-L	cmdline.txt	/*\/_CTRL-L*
/_CTRL-T	cmdline.txt	/*\/_CTRL-T*
/atom	pattern.txt	/*\/atom*
/bar	pattern.txt	/*\/bar*
/branch	pattern.txt	/*\/branch*
/character-classes	pattern.txt	/*\/character-classes*
/collection	pattern.txt	/*\/collection*
/concat	pattern.txt	/*\/concat*
/dyn	various.txt	/*\/dyn*
/ignorecase	pattern.txt	/*\/ignorecase*
/magic	pattern.txt	/*\/magic*
/multi	pattern.txt	/*\/multi*
/ordinary-atom	pattern.txt	/*\/ordinary-atom*
/pattern	pattern.txt	/*\/pattern*
/piece	pattern.txt	/*\/piece*
/star	pattern.txt	/*\/star*
/zero-width	pattern.txt	/*\/zero-width*
/~	pattern.txt	/*\/~*
0	motion.txt	/*0*
01.1	usr_01.txt	/*01.1*
01.2	usr_01.txt	/*01.2*
01.3	usr_01.txt	/*01.3*
01.4	usr_01.txt	/*01.4*
02.1	usr_02.txt	/*02.1*
02.2	usr_02.txt	/*02.2*
02.3	usr_02.txt	/*02.3*
02.4	usr_02.txt	/*02.4*
02.5	usr_02.txt	/*02.5*
02.6	usr_02.txt	/*02.6*
02.7	usr_02.txt	/*02.7*
02.8	usr_02.txt	/*02.8*
03.1	usr_03.txt	/*03.1*
03.10	usr_03.txt	/*03.10*
03.2	usr_03.txt	/*03.2*
03.3	usr_03.txt	/*03.3*
03.4	usr_03.txt	/*03.4*
03.5	usr_03.txt	/*03.5*
03.6	usr_03.txt	/*03.6*
03.7	usr_03.txt	/*03.7*
03.8	usr_03.txt	/*03.8*
03.9	usr_03.txt	/*03.9*
04.1	usr_04.txt	/*04.1*
04.10	usr_04.txt	/*04.10*
04.2	usr_04.txt	/*04.2*
04.3	usr_04.txt	/*04.3*
04.4	usr_04.txt	/*04.4*
04.5	usr_04.txt	/*04.5*
04.6	usr_04.txt	/*04.6*
04.7	usr_04.txt	/*04.7*
04.8	usr_04.txt	/*04.8*
04.9	usr_04.txt	/*04.9*
05.1	usr_05.txt	/*05.1*
05.2	usr_05.txt	/*05.2*
05.3	usr_05.txt	/*05.3*
05.4	usr_05.txt	/*05.4*
05.5	usr_05.txt	/*05.5*
05.6	usr_05.txt	/*05.6*
05.7	usr_05.txt	/*05.7*
05.8	usr_05.txt	/*05.8*
06.1	usr_06.txt	/*06.1*
06.2	usr_06.txt	/*06.2*
06.3	usr_06.txt	/*06.3*
06.4	usr_06.txt	/*06.4*
06.5	usr_06.txt	/*06.5*
06.6	usr_06.txt	/*06.6*
07.1	usr_07.txt	/*07.1*
07.2	usr_07.txt	/*07.2*
07.3	usr_07.txt	/*07.3*
07.4	usr_07.txt	/*07.4*
07.5	usr_07.txt	/*07.5*
07.6	usr_07.txt	/*07.6*
07.7	usr_07.txt	/*07.7*
08.1	usr_08.txt	/*08.1*
08.2	usr_08.txt	/*08.2*
08.3	usr_08.txt	/*08.3*
08.4	usr_08.txt	/*08.4*
08.5	usr_08.txt	/*08.5*
08.6	usr_08.txt	/*08.6*
08.7	usr_08.txt	/*08.7*
08.8	usr_08.txt	/*08.8*
08.9	usr_08.txt	/*08.9*
09.1	usr_09.txt	/*09.1*
09.2	usr_09.txt	/*09.2*
09.3	usr_09.txt	/*09.3*
09.4	usr_09.txt	/*09.4*
10.1	usr_10.txt	/*10.1*
10.2	usr_10.txt	/*10.2*
10.3	usr_10.txt	/*10.3*
10.4	usr_10.txt	/*10.4*
10.5	usr_10.txt	/*10.5*
10.6	usr_10.txt	/*10.6*
10.7	usr_10.txt	/*10.7*
10.8	usr_10.txt	/*10.8*
10.9	usr_10.txt	/*10.9*
11.1	usr_11.txt	/*11.1*
11.2	usr_11.txt	/*11.2*
11.3	usr_11.txt	/*11.3*
11.4	usr_11.txt	/*11.4*
12.1	usr_12.txt	/*12.1*
12.2	usr_12.txt	/*12.2*
12.3	usr_12.txt	/*12.3*
12.4	usr_12.txt	/*12.4*
12.5	usr_12.txt	/*12.5*
12.6	usr_12.txt	/*12.6*
12.7	usr_12.txt	/*12.7*
12.8	usr_12.txt	/*12.8*
1gD	pattern.txt	/*1gD*
1gd	pattern.txt	/*1gd*
20.1	usr_20.txt	/*20.1*
20.2	usr_20.txt	/*20.2*
20.3	usr_20.txt	/*20.3*
20.4	usr_20.txt	/*20.4*
20.5	usr_20.txt	/*20.5*
21.1	usr_21.txt	/*21.1*
21.2	usr_21.txt	/*21.2*
21.3	usr_21.txt	/*21.3*
21.4	usr_21.txt	/*21.4*
21.5	usr_21.txt	/*21.5*
21.6	usr_21.txt	/*21.6*
22.1	usr_22.txt	/*22.1*
22.2	usr_22.txt	/*22.2*
22.3	usr_22.txt	/*22.3*
22.4	usr_22.txt	/*22.4*
23.1	usr_23.txt	/*23.1*
23.2	usr_23.txt	/*23.2*
23.3	usr_23.txt	/*23.3*
23.4	usr_23.txt	/*23.4*
23.5	usr_23.txt	/*23.5*
24.1	usr_24.txt	/*24.1*
24.10	usr_24.txt	/*24.10*
24.2	usr_24.txt	/*24.2*
24.3	usr_24.txt	/*24.3*
24.4	usr_24.txt	/*24.4*
24.5	usr_24.txt	/*24.5*
24.6	usr_24.txt	/*24.6*
24.7	usr_24.txt	/*24.7*
24.8	usr_24.txt	/*24.8*
24.9	usr_24.txt	/*24.9*
25.1	usr_25.txt	/*25.1*
25.2	usr_25.txt	/*25.2*
25.3	usr_25.txt	/*25.3*
25.4	usr_25.txt	/*25.4*
25.5	usr_25.txt	/*25.5*
26.1	usr_26.txt	/*26.1*
26.2	usr_26.txt	/*26.2*
26.3	usr_26.txt	/*26.3*
26.4	usr_26.txt	/*26.4*
27.1	usr_27.txt	/*27.1*
27.2	usr_27.txt	/*27.2*
27.3	usr_27.txt	/*27.3*
27.4	usr_27.txt	/*27.4*
27.5	usr_27.txt	/*27.5*
27.6	usr_27.txt	/*27.6*
27.7	usr_27.txt	/*27.7*
27.8	usr_27.txt	/*27.8*
27.9	usr_27.txt	/*27.9*
28.1	usr_28.txt	/*28.1*
28.10	usr_28.txt	/*28.10*
28.2	usr_28.txt	/*28.2*
28.3	usr_28.txt	/*28.3*
28.4	usr_28.txt	/*28.4*
28.5	usr_28.txt	/*28.5*
28.6	usr_28.txt	/*28.6*
28.7	usr_28.txt	/*28.7*
28.8	usr_28.txt	/*28.8*
28.9	usr_28.txt	/*28.9*
29.1	usr_29.txt	/*29.1*
29.2	usr_29.txt	/*29.2*
29.3	usr_29.txt	/*29.3*
29.4	usr_29.txt	/*29.4*
29.5	usr_29.txt	/*29.5*
2html.vim	syntax.txt	/*2html.vim*
30.1	usr_30.txt	/*30.1*
30.2	usr_30.txt	/*30.2*
30.3	usr_30.txt	/*30.3*
30.4	usr_30.txt	/*30.4*
30.5	usr_30.txt	/*30.5*
30.6	usr_30.txt	/*30.6*
31.1	usr_31.txt	/*31.1*
31.2	usr_31.txt	/*31.2*
31.3	usr_31.txt	/*31.3*
31.4	usr_31.txt	/*31.4*
31.5	usr_31.txt	/*31.5*
32.1	usr_32.txt	/*32.1*
32.2	usr_32.txt	/*32.2*
32.3	usr_32.txt	/*32.3*
32.4	usr_32.txt	/*32.4*
40.1	usr_40.txt	/*40.1*
40.2	usr_40.txt	/*40.2*
40.3	usr_40.txt	/*40.3*
41.1	usr_41.txt	/*41.1*
41.10	usr_41.txt	/*41.10*
41.11	usr_41.txt	/*41.11*
41.12	usr_41.txt	/*41.12*
41.13	usr_41.txt	/*41.13*
41.14	usr_41.txt	/*41.14*
41.15	usr_41.txt	/*41.15*
41.16	usr_41.txt	/*41.16*
41.2	usr_41.txt	/*41.2*
41.3	usr_41.txt	/*41.3*
41.4	usr_41.txt	/*41.4*
41.5	usr_41.txt	/*41.5*
41.6	usr_41.txt	/*41.6*
41.7	usr_41.txt	/*41.7*
41.8	usr_41.txt	/*41.8*
41.9	usr_41.txt	/*41.9*
42	usr_42.txt	/*42*
42.1	usr_42.txt	/*42.1*
42.2	usr_42.txt	/*42.2*
42.3	usr_42.txt	/*42.3*
42.4	usr_42.txt	/*42.4*
43.1	usr_43.txt	/*43.1*
43.2	usr_43.txt	/*43.2*
44.1	usr_44.txt	/*44.1*
44.10	usr_44.txt	/*44.10*
44.11	usr_44.txt	/*44.11*
44.12	usr_44.txt	/*44.12*
44.2	usr_44.txt	/*44.2*
44.3	usr_44.txt	/*44.3*
44.4	usr_44.txt	/*44.4*
44.5	usr_44.txt	/*44.5*
44.6	usr_44.txt	/*44.6*
44.7	usr_44.txt	/*44.7*
44.8	usr_44.txt	/*44.8*
44.9	usr_44.txt	/*44.9*
45.1	usr_45.txt	/*45.1*
45.2	usr_45.txt	/*45.2*
45.3	usr_45.txt	/*45.3*
45.4	usr_45.txt	/*45.4*
45.5	usr_45.txt	/*45.5*
8g8	various.txt	/*8g8*
90.1	usr_90.txt	/*90.1*
90.2	usr_90.txt	/*90.2*
90.3	usr_90.txt	/*90.3*
90.4	usr_90.txt	/*90.4*
90.5	usr_90.txt	/*90.5*
:	cmdline.txt	/*:*
:!	various.txt	/*:!*
:!!	various.txt	/*:!!*
:!cmd	various.txt	/*:!cmd*
:!start	os_win32.txt	/*:!start*
:#	various.txt	/*:#*
:#!	various.txt	/*:#!*
:$	cmdline.txt	/*:$*
:%	cmdline.txt	/*:%*
:&	change.txt	/*:&*
:&&	change.txt	/*:&&*
:'	cmdline.txt	/*:'*
:,	cmdline.txt	/*:,*
:.	cmdline.txt	/*:.*
:/	cmdline.txt	/*:\/*
:0file	editing.txt	/*:0file*
:2match	pattern.txt	/*:2match*
:3match	pattern.txt	/*:3match*
::.	cmdline.txt	/*::.*
::8	cmdline.txt	/*::8*
::S	cmdline.txt	/*::S*
::e	cmdline.txt	/*::e*
::gs	cmdline.txt	/*::gs*
::h	cmdline.txt	/*::h*
::p	cmdline.txt	/*::p*
::r	cmdline.txt	/*::r*
::s	cmdline.txt	/*::s*
::t	cmdline.txt	/*::t*
::~	cmdline.txt	/*::~*
:;	cmdline.txt	/*:;*
:<	change.txt	/*:<*
:<abuf>	cmdline.txt	/*:<abuf>*
:<afile>	cmdline.txt	/*:<afile>*
:<amatch>	cmdline.txt	/*:<amatch>*
:<cWORD>	cmdline.txt	/*:<cWORD>*
:<cexpr>	cmdline.txt	/*:<cexpr>*
:<cfile>	cmdline.txt	/*:<cfile>*
:<cword>	cmdline.txt	/*:<cword>*
:<sfile>	cmdline.txt	/*:<sfile>*
:=	various.txt	/*:=*
:>	change.txt	/*:>*
:?	cmdline.txt	/*:?*
:@	repeat.txt	/*:@*
:@:	repeat.txt	/*:@:*
:@@	repeat.txt	/*:@@*
:AdaLines	ft_ada.txt	/*:AdaLines*
:AdaRainbow	ft_ada.txt	/*:AdaRainbow*
:AdaSpaces	ft_ada.txt	/*:AdaSpaces*
:AdaTagDir	ft_ada.txt	/*:AdaTagDir*
:AdaTagFile	ft_ada.txt	/*:AdaTagFile*
:AdaTypes	ft_ada.txt	/*:AdaTypes*
:Arguments	terminal.txt	/*:Arguments*
:Break	terminal.txt	/*:Break*
:Clear	terminal.txt	/*:Clear*
:CompilerSet	usr_41.txt	/*:CompilerSet*
:Continue	terminal.txt	/*:Continue*
:DiffOrig	diff.txt	/*:DiffOrig*
:DoMatchParen	pi_paren.txt	/*:DoMatchParen*
:Evaluate	terminal.txt	/*:Evaluate*
:Explore	pi_netrw.txt	/*:Explore*
:Finish	terminal.txt	/*:Finish*
:GLVS	pi_getscript.txt	/*:GLVS*
:Gdb	terminal.txt	/*:Gdb*
:GetLatestVimScripts_dat	pi_getscript.txt	/*:GetLatestVimScripts_dat*
:GnatFind	ft_ada.txt	/*:GnatFind*
:GnatPretty	ft_ada.txt	/*:GnatPretty*
:GnatTags	ft_ada.txt	/*:GnatTags*
:Hexplore	pi_netrw.txt	/*:Hexplore*
:LP	pi_logipat.txt	/*:LP*
:LPE	pi_logipat.txt	/*:LPE*
:LPF	pi_logipat.txt	/*:LPF*
:Lexplore	pi_netrw.txt	/*:Lexplore*
:LogiPat	pi_logipat.txt	/*:LogiPat*
:Man	filetype.txt	/*:Man*
:MkVimball	pi_vimball.txt	/*:MkVimball*
:N	editing.txt	/*:N*
:NetrwClean	pi_netrw.txt	/*:NetrwClean*
:Nexplore	pi_netrw.txt	/*:Nexplore*
:Next	editing.txt	/*:Next*
:NoMatchParen	pi_paren.txt	/*:NoMatchParen*
:Nr	pi_netrw.txt	/*:Nr*
:Nread	pi_netrw.txt	/*:Nread*
:Ns	pi_netrw.txt	/*:Ns*
:Nsource	pi_netrw.txt	/*:Nsource*
:Ntree	pi_netrw.txt	/*:Ntree*
:Nw	pi_netrw.txt	/*:Nw*
:Nwrite	pi_netrw.txt	/*:Nwrite*
:Over	terminal.txt	/*:Over*
:P	various.txt	/*:P*
:Pexplore	pi_netrw.txt	/*:Pexplore*
:Print	various.txt	/*:Print*
:Program	terminal.txt	/*:Program*
:Rexplore	pi_netrw.txt	/*:Rexplore*
:RmVimball	pi_vimball.txt	/*:RmVimball*
:Run	terminal.txt	/*:Run*
:RustEmitAsm	ft_rust.txt	/*:RustEmitAsm*
:RustEmitIr	ft_rust.txt	/*:RustEmitIr*
:RustExpand	ft_rust.txt	/*:RustExpand*
:RustFmt	ft_rust.txt	/*:RustFmt*
:RustFmtRange	ft_rust.txt	/*:RustFmtRange*
:RustPlay	ft_rust.txt	/*:RustPlay*
:RustRun	ft_rust.txt	/*:RustRun*
:Sexplore	pi_netrw.txt	/*:Sexplore*
:Source	terminal.txt	/*:Source*
:Step	terminal.txt	/*:Step*
:Stop	terminal.txt	/*:Stop*
:TOhtml	syntax.txt	/*:TOhtml*
:TarDiff	pi_tar.txt	/*:TarDiff*
:Termdebug	terminal.txt	/*:Termdebug*
:TermdebugCommand	terminal.txt	/*:TermdebugCommand*
:Texplore	pi_netrw.txt	/*:Texplore*
:UseVimball	pi_vimball.txt	/*:UseVimball*
:Vexplore	pi_netrw.txt	/*:Vexplore*
:VimballList	pi_vimball.txt	/*:VimballList*
:Vimuntar	pi_tar.txt	/*:Vimuntar*
:Winbar	terminal.txt	/*:Winbar*
:X	editing.txt	/*:X*
:XMLent	insert.txt	/*:XMLent*
:XMLns	insert.txt	/*:XMLns*
:[range]	motion.txt	/*:[range]*
:\bar	cmdline.txt	/*:\\bar*
:_!	cmdline.txt	/*:_!*
:_#	cmdline.txt	/*:_#*
:_##	cmdline.txt	/*:_##*
:_#0	cmdline.txt	/*:_#0*
:_#<	cmdline.txt	/*:_#<*
:_#n	cmdline.txt	/*:_#n*
:_%	cmdline.txt	/*:_%*
:_%:	cmdline.txt	/*:_%:*
:_%<	cmdline.txt	/*:_%<*
:a	insert.txt	/*:a*
:ab	map.txt	/*:ab*
:abbreviate	map.txt	/*:abbreviate*
:abbreviate-<buffer>	map.txt	/*:abbreviate-<buffer>*
:abbreviate-local	map.txt	/*:abbreviate-local*
:abbreviate-verbose	map.txt	/*:abbreviate-verbose*
:abc	map.txt	/*:abc*
:abclear	map.txt	/*:abclear*
:abo	windows.txt	/*:abo*
:aboveleft	windows.txt	/*:aboveleft*
:al	windows.txt	/*:al*
:all	windows.txt	/*:all*
:am	gui.txt	/*:am*
:amenu	gui.txt	/*:amenu*
:an	gui.txt	/*:an*
:anoremenu	gui.txt	/*:anoremenu*
:append	insert.txt	/*:append*
:ar	editing.txt	/*:ar*
:arga	editing.txt	/*:arga*
:argadd	editing.txt	/*:argadd*
:argd	editing.txt	/*:argd*
:argdelete	editing.txt	/*:argdelete*
:argdo	editing.txt	/*:argdo*
:arge	editing.txt	/*:arge*
:argedit	editing.txt	/*:argedit*
:argglobal	editing.txt	/*:argglobal*
:arglocal	editing.txt	/*:arglocal*
:args	editing.txt	/*:args*
:args_f	editing.txt	/*:args_f*
:args_f!	editing.txt	/*:args_f!*
:argu	editing.txt	/*:argu*
:argument	editing.txt	/*:argument*
:as	various.txt	/*:as*
:ascii	various.txt	/*:ascii*
:au	autocmd.txt	/*:au*
:aug	autocmd.txt	/*:aug*
:augroup	autocmd.txt	/*:augroup*
:augroup-delete	autocmd.txt	/*:augroup-delete*
:aun	gui.txt	/*:aun*
:aunmenu	gui.txt	/*:aunmenu*
:autocmd	autocmd.txt	/*:autocmd*
:autocmd-verbose	autocmd.txt	/*:autocmd-verbose*
:b	windows.txt	/*:b*
:bN	windows.txt	/*:bN*
:bNext	windows.txt	/*:bNext*
:ba	windows.txt	/*:ba*
:bad	windows.txt	/*:bad*
:badd	windows.txt	/*:badd*
:ball	windows.txt	/*:ball*
:bar	cmdline.txt	/*:bar*
:bd	windows.txt	/*:bd*
:bdel	windows.txt	/*:bdel*
:bdelete	windows.txt	/*:bdelete*
:be	gui.txt	/*:be*
:behave	gui.txt	/*:behave*
:bel	windows.txt	/*:bel*
:belowright	windows.txt	/*:belowright*
:bf	windows.txt	/*:bf*
:bfirst	windows.txt	/*:bfirst*
:bl	windows.txt	/*:bl*
:blast	windows.txt	/*:blast*
:bm	windows.txt	/*:bm*
:bmodified	windows.txt	/*:bmodified*
:bn	windows.txt	/*:bn*
:bnext	windows.txt	/*:bnext*
:bo	windows.txt	/*:bo*
:botright	windows.txt	/*:botright*
:bp	windows.txt	/*:bp*
:bprevious	windows.txt	/*:bprevious*
:br	windows.txt	/*:br*
:brea	eval.txt	/*:brea*
:break	eval.txt	/*:break*
:breaka	repeat.txt	/*:breaka*
:breakadd	repeat.txt	/*:breakadd*
:breakd	repeat.txt	/*:breakd*
:breakdel	repeat.txt	/*:breakdel*
:breakl	repeat.txt	/*:breakl*
:breaklist	repeat.txt	/*:breaklist*
:brewind	windows.txt	/*:brewind*
:bro	editing.txt	/*:bro*
:browse	editing.txt	/*:browse*
:browse-set	options.txt	/*:browse-set*
:bu	windows.txt	/*:bu*
:buf	windows.txt	/*:buf*
:bufdo	windows.txt	/*:bufdo*
:buffer	windows.txt	/*:buffer*
:buffer-!	windows.txt	/*:buffer-!*
:buffers	windows.txt	/*:buffers*
:bun	windows.txt	/*:bun*
:bunload	windows.txt	/*:bunload*
:bw	windows.txt	/*:bw*
:bwipe	windows.txt	/*:bwipe*
:bwipeout	windows.txt	/*:bwipeout*
:c	change.txt	/*:c*
:cN	quickfix.txt	/*:cN*
:cNext	quickfix.txt	/*:cNext*
:cNf	quickfix.txt	/*:cNf*
:cNfile	quickfix.txt	/*:cNfile*
:ca	map.txt	/*:ca*
:cabbrev	map.txt	/*:cabbrev*
:cabc	map.txt	/*:cabc*
:cabclear	map.txt	/*:cabclear*
:cad	quickfix.txt	/*:cad*
:caddbuffer	quickfix.txt	/*:caddbuffer*
:cadde	quickfix.txt	/*:cadde*
:caddexpr	quickfix.txt	/*:caddexpr*
:caddf	quickfix.txt	/*:caddf*
:caddfile	quickfix.txt	/*:caddfile*
:cal	eval.txt	/*:cal*
:call	eval.txt	/*:call*
:cat	eval.txt	/*:cat*
:catch	eval.txt	/*:catch*
:cb	quickfix.txt	/*:cb*
:cbo	quickfix.txt	/*:cbo*
:cbottom	quickfix.txt	/*:cbottom*
:cbuffer	quickfix.txt	/*:cbuffer*
:cc	quickfix.txt	/*:cc*
:ccl	quickfix.txt	/*:ccl*
:cclose	quickfix.txt	/*:cclose*
:cd	editing.txt	/*:cd*
:cd-	editing.txt	/*:cd-*
:cdo	quickfix.txt	/*:cdo*
:ce	change.txt	/*:ce*
:center	change.txt	/*:center*
:cex	quickfix.txt	/*:cex*
:cexpr	quickfix.txt	/*:cexpr*
:cf	quickfix.txt	/*:cf*
:cfdo	quickfix.txt	/*:cfdo*
:cfile	quickfix.txt	/*:cfile*
:cfir	quickfix.txt	/*:cfir*
:cfirst	quickfix.txt	/*:cfirst*
:cg	quickfix.txt	/*:cg*
:cgetb	quickfix.txt	/*:cgetb*
:cgetbuffer	quickfix.txt	/*:cgetbuffer*
:cgete	quickfix.txt	/*:cgete*
:cgetexpr	quickfix.txt	/*:cgetexpr*
:cgetfile	quickfix.txt	/*:cgetfile*
:ch	change.txt	/*:ch*
:change	change.txt	/*:change*
:changes	motion.txt	/*:changes*
:chd	editing.txt	/*:chd*
:chdir	editing.txt	/*:chdir*
:che	tagsrch.txt	/*:che*
:checkpath	tagsrch.txt	/*:checkpath*
:checkt	editing.txt	/*:checkt*
:checktime	editing.txt	/*:checktime*
:chi	quickfix.txt	/*:chi*
:chistory	quickfix.txt	/*:chistory*
:cl	quickfix.txt	/*:cl*
:cla	quickfix.txt	/*:cla*
:clast	quickfix.txt	/*:clast*
:cle	motion.txt	/*:cle*
:clearjumps	motion.txt	/*:clearjumps*
:clist	quickfix.txt	/*:clist*
:clo	windows.txt	/*:clo*
:close	windows.txt	/*:close*
:cm	map.txt	/*:cm*
:cmap	map.txt	/*:cmap*
:cmap_l	map.txt	/*:cmap_l*
:cmapc	map.txt	/*:cmapc*
:cmapclear	map.txt	/*:cmapclear*
:cme	gui.txt	/*:cme*
:cmenu	gui.txt	/*:cmenu*
:cn	quickfix.txt	/*:cn*
:cnew	quickfix.txt	/*:cnew*
:cnewer	quickfix.txt	/*:cnewer*
:cnext	quickfix.txt	/*:cnext*
:cnf	quickfix.txt	/*:cnf*
:cnfile	quickfix.txt	/*:cnfile*
:cno	map.txt	/*:cno*
:cnorea	map.txt	/*:cnorea*
:cnoreabbrev	map.txt	/*:cnoreabbrev*
:cnoremap	map.txt	/*:cnoremap*
:cnoreme	gui.txt	/*:cnoreme*
:cnoremenu	gui.txt	/*:cnoremenu*
:co	change.txt	/*:co*
:col	quickfix.txt	/*:col*
:colder	quickfix.txt	/*:colder*
:colo	syntax.txt	/*:colo*
:colorscheme	syntax.txt	/*:colorscheme*
:com	map.txt	/*:com*
:comc	map.txt	/*:comc*
:comclear	map.txt	/*:comclear*
:command	map.txt	/*:command*
:command-addr	map.txt	/*:command-addr*
:command-bang	map.txt	/*:command-bang*
:command-bar	map.txt	/*:command-bar*
:command-buffer	map.txt	/*:command-buffer*
:command-complete	map.txt	/*:command-complete*
:command-completion	map.txt	/*:command-completion*
:command-completion-custom	map.txt	/*:command-completion-custom*
:command-completion-customlist	map.txt	/*:command-completion-customlist*
:command-count	map.txt	/*:command-count*
:command-nargs	map.txt	/*:command-nargs*
:command-range	map.txt	/*:command-range*
:command-register	map.txt	/*:command-register*
:command-verbose	map.txt	/*:command-verbose*
:comment	cmdline.txt	/*:comment*
:comp	quickfix.txt	/*:comp*
:compiler	quickfix.txt	/*:compiler*
:con	eval.txt	/*:con*
:conf	editing.txt	/*:conf*
:confirm	editing.txt	/*:confirm*
:continue	eval.txt	/*:continue*
:cope	quickfix.txt	/*:cope*
:copen	quickfix.txt	/*:copen*
:copy	change.txt	/*:copy*
:cp	quickfix.txt	/*:cp*
:cpf	quickfix.txt	/*:cpf*
:cpfile	quickfix.txt	/*:cpfile*
:cprevious	quickfix.txt	/*:cprevious*
:cq	quickfix.txt	/*:cq*
:cquit	quickfix.txt	/*:cquit*
:cr	quickfix.txt	/*:cr*
:crewind	quickfix.txt	/*:crewind*
:cs	if_cscop.txt	/*:cs*
:cscope	if_cscop.txt	/*:cscope*
:cstag	if_cscop.txt	/*:cstag*
:cu	map.txt	/*:cu*
:cuna	map.txt	/*:cuna*
:cunabbrev	map.txt	/*:cunabbrev*
:cunmap	map.txt	/*:cunmap*
:cunme	gui.txt	/*:cunme*
:cunmenu	gui.txt	/*:cunmenu*
:cw	quickfix.txt	/*:cw*
:cwindow	quickfix.txt	/*:cwindow*
:d	change.txt	/*:d*
:de	change.txt	/*:de*
:debug	repeat.txt	/*:debug*
:debug-name	repeat.txt	/*:debug-name*
:debugg	repeat.txt	/*:debugg*
:debuggreedy	repeat.txt	/*:debuggreedy*
:del	change.txt	/*:del*
:delc	map.txt	/*:delc*
:delcommand	map.txt	/*:delcommand*
:delcr	todo.txt	/*:delcr*
:delete	change.txt	/*:delete*
:delf	eval.txt	/*:delf*
:delfunction	eval.txt	/*:delfunction*
:delm	motion.txt	/*:delm*
:delmarks	motion.txt	/*:delmarks*
:di	change.txt	/*:di*
:dif	diff.txt	/*:dif*
:diffg	diff.txt	/*:diffg*
:diffget	diff.txt	/*:diffget*
:diffo	diff.txt	/*:diffo*
:diffoff	diff.txt	/*:diffoff*
:diffp	diff.txt	/*:diffp*
:diffpatch	diff.txt	/*:diffpatch*
:diffpu	diff.txt	/*:diffpu*
:diffput	diff.txt	/*:diffput*
:diffs	diff.txt	/*:diffs*
:diffsplit	diff.txt	/*:diffsplit*
:difft	diff.txt	/*:difft*
:diffthis	diff.txt	/*:diffthis*
:diffupdate	diff.txt	/*:diffupdate*
:dig	digraph.txt	/*:dig*
:digraphs	digraph.txt	/*:digraphs*
:display	change.txt	/*:display*
:dj	tagsrch.txt	/*:dj*
:djump	tagsrch.txt	/*:djump*
:dl	change.txt	/*:dl*
:dli	tagsrch.txt	/*:dli*
:dlist	tagsrch.txt	/*:dlist*
:do	autocmd.txt	/*:do*
:doau	autocmd.txt	/*:doau*
:doautoa	autocmd.txt	/*:doautoa*
:doautoall	autocmd.txt	/*:doautoall*
:doautocmd	autocmd.txt	/*:doautocmd*
:dp	change.txt	/*:dp*
:dr	windows.txt	/*:dr*
:drop	windows.txt	/*:drop*
:ds	tagsrch.txt	/*:ds*
:dsearch	tagsrch.txt	/*:dsearch*
:dsp	tagsrch.txt	/*:dsp*
:dsplit	tagsrch.txt	/*:dsplit*
:e	editing.txt	/*:e*
:ea	undo.txt	/*:ea*
:earlier	undo.txt	/*:earlier*
:ec	eval.txt	/*:ec*
:echo	eval.txt	/*:echo*
:echo-redraw	eval.txt	/*:echo-redraw*
:echoe	eval.txt	/*:echoe*
:echoerr	eval.txt	/*:echoerr*
:echoh	eval.txt	/*:echoh*
:echohl	eval.txt	/*:echohl*
:echom	eval.txt	/*:echom*
:echomsg	eval.txt	/*:echomsg*
:echon	eval.txt	/*:echon*
:edit	editing.txt	/*:edit*
:edit!	editing.txt	/*:edit!*
:edit!_f	editing.txt	/*:edit!_f*
:edit_f	editing.txt	/*:edit_f*
:el	eval.txt	/*:el*
:else	eval.txt	/*:else*
:elsei	eval.txt	/*:elsei*
:elseif	eval.txt	/*:elseif*
:em	gui.txt	/*:em*
:emenu	gui.txt	/*:emenu*
:en	eval.txt	/*:en*
:endf	eval.txt	/*:endf*
:endfo	eval.txt	/*:endfo*
:endfor	eval.txt	/*:endfor*
:endfunction	eval.txt	/*:endfunction*
:endif	eval.txt	/*:endif*
:endt	eval.txt	/*:endt*
:endtry	eval.txt	/*:endtry*
:endw	eval.txt	/*:endw*
:endwhile	eval.txt	/*:endwhile*
:ene	editing.txt	/*:ene*
:ene!	editing.txt	/*:ene!*
:enew	editing.txt	/*:enew*
:enew!	editing.txt	/*:enew!*
:ex	editing.txt	/*:ex*
:exe	eval.txt	/*:exe*
:exe-comment	eval.txt	/*:exe-comment*
:execute	eval.txt	/*:execute*
:exi	editing.txt	/*:exi*
:exit	editing.txt	/*:exit*
:exu	helphelp.txt	/*:exu*
:exusage	helphelp.txt	/*:exusage*
:f	editing.txt	/*:f*
:fi	editing.txt	/*:fi*
:file	editing.txt	/*:file*
:file_f	editing.txt	/*:file_f*
:filename	editing.txt	/*:filename*
:files	windows.txt	/*:files*
:filet	filetype.txt	/*:filet*
:filetype	filetype.txt	/*:filetype*
:filetype-indent-off	filetype.txt	/*:filetype-indent-off*
:filetype-indent-on	filetype.txt	/*:filetype-indent-on*
:filetype-off	filetype.txt	/*:filetype-off*
:filetype-overview	filetype.txt	/*:filetype-overview*
:filetype-plugin-off	filetype.txt	/*:filetype-plugin-off*
:filetype-plugin-on	filetype.txt	/*:filetype-plugin-on*
:filt	various.txt	/*:filt*
:filter	various.txt	/*:filter*
:fin	editing.txt	/*:fin*
:fina	eval.txt	/*:fina*
:finally	eval.txt	/*:finally*
:find	editing.txt	/*:find*
:fini	repeat.txt	/*:fini*
:finish	repeat.txt	/*:finish*
:fir	editing.txt	/*:fir*
:first	editing.txt	/*:first*
:fix	options.txt	/*:fix*
:fixdel	options.txt	/*:fixdel*
:fo	fold.txt	/*:fo*
:fold	fold.txt	/*:fold*
:foldc	fold.txt	/*:foldc*
:foldclose	fold.txt	/*:foldclose*
:foldd	fold.txt	/*:foldd*
:folddoc	fold.txt	/*:folddoc*
:folddoclosed	fold.txt	/*:folddoclosed*
:folddoopen	fold.txt	/*:folddoopen*
:foldo	fold.txt	/*:foldo*
:foldopen	fold.txt	/*:foldopen*
:for	eval.txt	/*:for*
:fu	eval.txt	/*:fu*
:func-abort	eval.txt	/*:func-abort*
:func-closure	eval.txt	/*:func-closure*
:func-dict	eval.txt	/*:func-dict*
:func-range	eval.txt	/*:func-range*
:function	eval.txt	/*:function*
:function-verbose	eval.txt	/*:function-verbose*
:g	repeat.txt	/*:g*
:global	repeat.txt	/*:global*
:go	motion.txt	/*:go*
:goto	motion.txt	/*:goto*
:gr	quickfix.txt	/*:gr*
:grep	quickfix.txt	/*:grep*
:grepa	quickfix.txt	/*:grepa*
:grepadd	quickfix.txt	/*:grepadd*
:gu	gui_x11.txt	/*:gu*
:gui	gui_x11.txt	/*:gui*
:gv	gui_x11.txt	/*:gv*
:gvim	gui_x11.txt	/*:gvim*
:h	helphelp.txt	/*:h*
:ha	print.txt	/*:ha*
:hardcopy	print.txt	/*:hardcopy*
:help	helphelp.txt	/*:help*
:helpc	helphelp.txt	/*:helpc*
:helpclose	helphelp.txt	/*:helpclose*
:helpf	helphelp.txt	/*:helpf*
:helpfind	helphelp.txt	/*:helpfind*
:helpg	helphelp.txt	/*:helpg*
:helpgrep	helphelp.txt	/*:helpgrep*
:helpt	helphelp.txt	/*:helpt*
:helptags	helphelp.txt	/*:helptags*
:hi	syntax.txt	/*:hi*
:hi-default	syntax.txt	/*:hi-default*
:hi-link	syntax.txt	/*:hi-link*
:hi-normal	syntax.txt	/*:hi-normal*
:hi-normal-cterm	syntax.txt	/*:hi-normal-cterm*
:hide	windows.txt	/*:hide*
:highlight	syntax.txt	/*:highlight*
:highlight-default	syntax.txt	/*:highlight-default*
:highlight-link	syntax.txt	/*:highlight-link*
:highlight-normal	syntax.txt	/*:highlight-normal*
:highlight-verbose	syntax.txt	/*:highlight-verbose*
:his	cmdline.txt	/*:his*
:history	cmdline.txt	/*:history*
:history-indexing	cmdline.txt	/*:history-indexing*
:i	insert.txt	/*:i*
:ia	map.txt	/*:ia*
:iabbrev	map.txt	/*:iabbrev*
:iabc	map.txt	/*:iabc*
:iabclear	map.txt	/*:iabclear*
:if	eval.txt	/*:if*
:ij	tagsrch.txt	/*:ij*
:ijump	tagsrch.txt	/*:ijump*
:il	tagsrch.txt	/*:il*
:ilist	tagsrch.txt	/*:ilist*
:im	map.txt	/*:im*
:imap	map.txt	/*:imap*
:imap_l	map.txt	/*:imap_l*
:imapc	map.txt	/*:imapc*
:imapclear	map.txt	/*:imapclear*
:ime	gui.txt	/*:ime*
:imenu	gui.txt	/*:imenu*
:in	insert.txt	/*:in*
:index	index.txt	/*:index*
:ino	map.txt	/*:ino*
:inorea	map.txt	/*:inorea*
:inoreabbrev	map.txt	/*:inoreabbrev*
:inoremap	map.txt	/*:inoremap*
:inoreme	gui.txt	/*:inoreme*
:inoremenu	gui.txt	/*:inoremenu*
:insert	insert.txt	/*:insert*
:intro	starting.txt	/*:intro*
:is	tagsrch.txt	/*:is*
:isearch	tagsrch.txt	/*:isearch*
:isp	tagsrch.txt	/*:isp*
:isplit	tagsrch.txt	/*:isplit*
:iu	map.txt	/*:iu*
:iuna	map.txt	/*:iuna*
:iunabbrev	map.txt	/*:iunabbrev*
:iunmap	map.txt	/*:iunmap*
:iunme	gui.txt	/*:iunme*
:iunmenu	gui.txt	/*:iunmenu*
:j	change.txt	/*:j*
:join	change.txt	/*:join*
:ju	motion.txt	/*:ju*
:jumps	motion.txt	/*:jumps*
:k	motion.txt	/*:k*
:kee	motion.txt	/*:kee*
:keepa	editing.txt	/*:keepa*
:keepalt	editing.txt	/*:keepalt*
:keepj	motion.txt	/*:keepj*
:keepjumps	motion.txt	/*:keepjumps*
:keepmarks	motion.txt	/*:keepmarks*
:keepp	cmdline.txt	/*:keepp*
:keeppatterns	cmdline.txt	/*:keeppatterns*
:l	various.txt	/*:l*
:lN	quickfix.txt	/*:lN*
:lNext	quickfix.txt	/*:lNext*
:lNf	quickfix.txt	/*:lNf*
:lNfile	quickfix.txt	/*:lNfile*
:la	editing.txt	/*:la*
:lad	quickfix.txt	/*:lad*
:laddb	quickfix.txt	/*:laddb*
:laddbuffer	quickfix.txt	/*:laddbuffer*
:laddexpr	quickfix.txt	/*:laddexpr*
:laddf	quickfix.txt	/*:laddf*
:laddfile	quickfix.txt	/*:laddfile*
:lan	mlang.txt	/*:lan*
:lang	mlang.txt	/*:lang*
:language	mlang.txt	/*:language*
:last	editing.txt	/*:last*
:lat	undo.txt	/*:lat*
:later	undo.txt	/*:later*
:lb	quickfix.txt	/*:lb*
:lbo	quickfix.txt	/*:lbo*
:lbottom	quickfix.txt	/*:lbottom*
:lbuffer	quickfix.txt	/*:lbuffer*
:lc	editing.txt	/*:lc*
:lcd	editing.txt	/*:lcd*
:lch	editing.txt	/*:lch*
:lchdir	editing.txt	/*:lchdir*
:lcl	quickfix.txt	/*:lcl*
:lclose	quickfix.txt	/*:lclose*
:lcs	if_cscop.txt	/*:lcs*
:lcscope	if_cscop.txt	/*:lcscope*
:ldo	quickfix.txt	/*:ldo*
:le	change.txt	/*:le*
:left	change.txt	/*:left*
:lefta	windows.txt	/*:lefta*
:leftabove	windows.txt	/*:leftabove*
:let	eval.txt	/*:let*
:let+=	eval.txt	/*:let+=*
:let-$	eval.txt	/*:let-$*
:let-&	eval.txt	/*:let-&*
:let-=	eval.txt	/*:let-=*
:let-@	eval.txt	/*:let-@*
:let-environment	eval.txt	/*:let-environment*
:let-option	eval.txt	/*:let-option*
:let-register	eval.txt	/*:let-register*
:let-unpack	eval.txt	/*:let-unpack*
:let.=	eval.txt	/*:let.=*
:lex	quickfix.txt	/*:lex*
:lexpr	quickfix.txt	/*:lexpr*
:lf	quickfix.txt	/*:lf*
:lfdo	quickfix.txt	/*:lfdo*
:lfile	quickfix.txt	/*:lfile*
:lfir	quickfix.txt	/*:lfir*
:lfirst	quickfix.txt	/*:lfirst*
:lg	quickfix.txt	/*:lg*
:lgetb	quickfix.txt	/*:lgetb*
:lgetbuffer	quickfix.txt	/*:lgetbuffer*
:lgete	quickfix.txt	/*:lgete*
:lgetexpr	quickfix.txt	/*:lgetexpr*
:lgetfile	quickfix.txt	/*:lgetfile*
:lgr	quickfix.txt	/*:lgr*
:lgrep	quickfix.txt	/*:lgrep*
:lgrepa	quickfix.txt	/*:lgrepa*
:lgrepadd	quickfix.txt	/*:lgrepadd*
:lh	helphelp.txt	/*:lh*
:lhelpgrep	helphelp.txt	/*:lhelpgrep*
:lhi	quickfix.txt	/*:lhi*
:lhistory	quickfix.txt	/*:lhistory*
:list	various.txt	/*:list*
:ll	quickfix.txt	/*:ll*
:lla	quickfix.txt	/*:lla*
:llast	quickfix.txt	/*:llast*
:lli	quickfix.txt	/*:lli*
:llist	quickfix.txt	/*:llist*
:lm	map.txt	/*:lm*
:lmak	quickfix.txt	/*:lmak*
:lmake	quickfix.txt	/*:lmake*
:lmap	map.txt	/*:lmap*
:lmap_l	map.txt	/*:lmap_l*
:lmapc	map.txt	/*:lmapc*
:lmapclear	map.txt	/*:lmapclear*
:ln	map.txt	/*:ln*
:lne	quickfix.txt	/*:lne*
:lnew	quickfix.txt	/*:lnew*
:lnewer	quickfix.txt	/*:lnewer*
:lnext	quickfix.txt	/*:lnext*
:lnf	quickfix.txt	/*:lnf*
:lnfile	quickfix.txt	/*:lnfile*
:lnoremap	map.txt	/*:lnoremap*
:lo	starting.txt	/*:lo*
:loadk	mbyte.txt	/*:loadk*
:loadkeymap	mbyte.txt	/*:loadkeymap*
:loadview	starting.txt	/*:loadview*
:loc	motion.txt	/*:loc*
:lockmarks	motion.txt	/*:lockmarks*
:lockv	eval.txt	/*:lockv*
:lockvar	eval.txt	/*:lockvar*
:lol	quickfix.txt	/*:lol*
:lolder	quickfix.txt	/*:lolder*
:lop	quickfix.txt	/*:lop*
:lopen	quickfix.txt	/*:lopen*
:lp	quickfix.txt	/*:lp*
:lpf	quickfix.txt	/*:lpf*
:lpfile	quickfix.txt	/*:lpfile*
:lprevious	quickfix.txt	/*:lprevious*
:lr	quickfix.txt	/*:lr*
:lrewind	quickfix.txt	/*:lrewind*
:ls	windows.txt	/*:ls*
:lt	tagsrch.txt	/*:lt*
:ltag	tagsrch.txt	/*:ltag*
:lu	map.txt	/*:lu*
:lua	if_lua.txt	/*:lua*
:luado	if_lua.txt	/*:luado*
:luafile	if_lua.txt	/*:luafile*
:lunmap	map.txt	/*:lunmap*
:lv	quickfix.txt	/*:lv*
:lvimgrep	quickfix.txt	/*:lvimgrep*
:lvimgrepa	quickfix.txt	/*:lvimgrepa*
:lvimgrepadd	quickfix.txt	/*:lvimgrepadd*
:lw	quickfix.txt	/*:lw*
:lwindow	quickfix.txt	/*:lwindow*
:m	change.txt	/*:m*
:ma	motion.txt	/*:ma*
:mak	quickfix.txt	/*:mak*
:make	quickfix.txt	/*:make*
:make_makeprg	quickfix.txt	/*:make_makeprg*
:map	map.txt	/*:map*
:map!	map.txt	/*:map!*
:map-<buffer>	map.txt	/*:map-<buffer>*
:map-<expr>	map.txt	/*:map-<expr>*
:map-<nowait>	map.txt	/*:map-<nowait>*
:map-<script>	map.txt	/*:map-<script>*
:map-<silent>	map.txt	/*:map-<silent>*
:map-<special>	map.txt	/*:map-<special>*
:map-<unique>	map.txt	/*:map-<unique>*
:map-alt-keys	map.txt	/*:map-alt-keys*
:map-arguments	map.txt	/*:map-arguments*
:map-commands	map.txt	/*:map-commands*
:map-expression	map.txt	/*:map-expression*
:map-local	map.txt	/*:map-local*
:map-modes	map.txt	/*:map-modes*
:map-nowait	map.txt	/*:map-nowait*
:map-operator	map.txt	/*:map-operator*
:map-script	map.txt	/*:map-script*
:map-silent	map.txt	/*:map-silent*
:map-special	map.txt	/*:map-special*
:map-special-chars	map.txt	/*:map-special-chars*
:map-special-keys	map.txt	/*:map-special-keys*
:map-undo	map.txt	/*:map-undo*
:map-verbose	map.txt	/*:map-verbose*
:map_l	map.txt	/*:map_l*
:map_l!	map.txt	/*:map_l!*
:mapc	map.txt	/*:mapc*
:mapc!	map.txt	/*:mapc!*
:mapclear	map.txt	/*:mapclear*
:mapclear!	map.txt	/*:mapclear!*
:mark	motion.txt	/*:mark*
:marks	motion.txt	/*:marks*
:mat	pattern.txt	/*:mat*
:match	pattern.txt	/*:match*
:me	gui.txt	/*:me*
:menu	gui.txt	/*:menu*
:menu-<script>	gui.txt	/*:menu-<script>*
:menu-<silent>	gui.txt	/*:menu-<silent>*
:menu-<special>	gui.txt	/*:menu-<special>*
:menu-disable	gui.txt	/*:menu-disable*
:menu-enable	gui.txt	/*:menu-enable*
:menu-script	gui.txt	/*:menu-script*
:menu-silent	gui.txt	/*:menu-silent*
:menu-special	gui.txt	/*:menu-special*
:menut	mlang.txt	/*:menut*
:menutrans	mlang.txt	/*:menutrans*
:menutranslate	mlang.txt	/*:menutranslate*
:mes	message.txt	/*:mes*
:messages	message.txt	/*:messages*
:mk	starting.txt	/*:mk*
:mkexrc	starting.txt	/*:mkexrc*
:mks	starting.txt	/*:mks*
:mksession	starting.txt	/*:mksession*
:mksp	spell.txt	/*:mksp*
:mkspell	spell.txt	/*:mkspell*
:mkv	starting.txt	/*:mkv*
:mkvie	starting.txt	/*:mkvie*
:mkview	starting.txt	/*:mkview*
:mkvimrc	starting.txt	/*:mkvimrc*
:mo	change.txt	/*:mo*
:mod	term.txt	/*:mod*
:mode	term.txt	/*:mode*
:move	change.txt	/*:move*
:mz	if_mzsch.txt	/*:mz*
:mzf	if_mzsch.txt	/*:mzf*
:mzfile	if_mzsch.txt	/*:mzfile*
:mzscheme	if_mzsch.txt	/*:mzscheme*
:n	editing.txt	/*:n*
:nbclose	netbeans.txt	/*:nbclose*
:nbkey	netbeans.txt	/*:nbkey*
:nbstart	netbeans.txt	/*:nbstart*
:ne	editing.txt	/*:ne*
:new	windows.txt	/*:new*
:next	editing.txt	/*:next*
:next_f	editing.txt	/*:next_f*
:nm	map.txt	/*:nm*
:nmap	map.txt	/*:nmap*
:nmap_l	map.txt	/*:nmap_l*
:nmapc	map.txt	/*:nmapc*
:nmapclear	map.txt	/*:nmapclear*
:nme	gui.txt	/*:nme*
:nmenu	gui.txt	/*:nmenu*
:nn	map.txt	/*:nn*
:nnoremap	map.txt	/*:nnoremap*
:nnoreme	gui.txt	/*:nnoreme*
:nnoremenu	gui.txt	/*:nnoremenu*
:no	map.txt	/*:no*
:no!	map.txt	/*:no!*
:noa	autocmd.txt	/*:noa*
:noautocmd	autocmd.txt	/*:noautocmd*
:noh	pattern.txt	/*:noh*
:nohlsearch	pattern.txt	/*:nohlsearch*
:nor	map.txt	/*:nor*
:nore	map.txt	/*:nore*
:norea	map.txt	/*:norea*
:noreabbrev	map.txt	/*:noreabbrev*
:norem	map.txt	/*:norem*
:noremap	map.txt	/*:noremap*
:noremap!	map.txt	/*:noremap!*
:noreme	gui.txt	/*:noreme*
:noremenu	gui.txt	/*:noremenu*
:norm	various.txt	/*:norm*
:normal	various.txt	/*:normal*
:normal-range	various.txt	/*:normal-range*
:nos	recover.txt	/*:nos*
:noswapfile	recover.txt	/*:noswapfile*
:nu	various.txt	/*:nu*
:number	various.txt	/*:number*
:nun	map.txt	/*:nun*
:nunmap	map.txt	/*:nunmap*
:nunme	gui.txt	/*:nunme*
:nunmenu	gui.txt	/*:nunmenu*
:o	vi_diff.txt	/*:o*
:ol	starting.txt	/*:ol*
:oldfiles	starting.txt	/*:oldfiles*
:om	map.txt	/*:om*
:omap	map.txt	/*:omap*
:omap_l	map.txt	/*:omap_l*
:omapc	map.txt	/*:omapc*
:omapclear	map.txt	/*:omapclear*
:ome	gui.txt	/*:ome*
:omenu	gui.txt	/*:omenu*
:on	windows.txt	/*:on*
:only	windows.txt	/*:only*
:ono	map.txt	/*:ono*
:onoremap	map.txt	/*:onoremap*
:onoreme	gui.txt	/*:onoreme*
:onoremenu	gui.txt	/*:onoremenu*
:op	vi_diff.txt	/*:op*
:open	vi_diff.txt	/*:open*
:opt	options.txt	/*:opt*
:options	options.txt	/*:options*
:ou	map.txt	/*:ou*
:ounmap	map.txt	/*:ounmap*
:ounme	gui.txt	/*:ounme*
:ounmenu	gui.txt	/*:ounmenu*
:ownsyntax	syntax.txt	/*:ownsyntax*
:p	various.txt	/*:p*
:pa	repeat.txt	/*:pa*
:packadd	repeat.txt	/*:packadd*
:packl	repeat.txt	/*:packl*
:packloadall	repeat.txt	/*:packloadall*
:pc	windows.txt	/*:pc*
:pclose	windows.txt	/*:pclose*
:pe	if_perl.txt	/*:pe*
:ped	windows.txt	/*:ped*
:pedit	windows.txt	/*:pedit*
:perl	if_perl.txt	/*:perl*
:perld	if_perl.txt	/*:perld*
:perldo	if_perl.txt	/*:perldo*
:po	tagsrch.txt	/*:po*
:pop	tagsrch.txt	/*:pop*
:popu	gui.txt	/*:popu*
:popup	gui.txt	/*:popup*
:pp	windows.txt	/*:pp*
:ppop	windows.txt	/*:ppop*
:pr	various.txt	/*:pr*
:pre	recover.txt	/*:pre*
:preserve	recover.txt	/*:preserve*
:prev	editing.txt	/*:prev*
:previous	editing.txt	/*:previous*
:print	various.txt	/*:print*
:pro	change.txt	/*:pro*
:prof	repeat.txt	/*:prof*
:profd	repeat.txt	/*:profd*
:profdel	repeat.txt	/*:profdel*
:profile	repeat.txt	/*:profile*
:promptfind	change.txt	/*:promptfind*
:promptr	change.txt	/*:promptr*
:promptrepl	change.txt	/*:promptrepl*
:ps	windows.txt	/*:ps*
:psearch	windows.txt	/*:psearch*
:ptN	tagsrch.txt	/*:ptN*
:ptNext	tagsrch.txt	/*:ptNext*
:pta	windows.txt	/*:pta*
:ptag	windows.txt	/*:ptag*
:ptf	tagsrch.txt	/*:ptf*
:ptfirst	tagsrch.txt	/*:ptfirst*
:ptj	tagsrch.txt	/*:ptj*
:ptjump	tagsrch.txt	/*:ptjump*
:ptl	tagsrch.txt	/*:ptl*
:ptlast	tagsrch.txt	/*:ptlast*
:ptn	tagsrch.txt	/*:ptn*
:ptnext	tagsrch.txt	/*:ptnext*
:ptp	tagsrch.txt	/*:ptp*
:ptprevious	tagsrch.txt	/*:ptprevious*
:ptr	tagsrch.txt	/*:ptr*
:ptrewind	tagsrch.txt	/*:ptrewind*
:pts	tagsrch.txt	/*:pts*
:ptselect	tagsrch.txt	/*:ptselect*
:pu	change.txt	/*:pu*
:put	change.txt	/*:put*
:pw	editing.txt	/*:pw*
:pwd	editing.txt	/*:pwd*
:py	if_pyth.txt	/*:py*
:py3	if_pyth.txt	/*:py3*
:py3do	if_pyth.txt	/*:py3do*
:py3file	if_pyth.txt	/*:py3file*
:pydo	if_pyth.txt	/*:pydo*
:pyf	if_pyth.txt	/*:pyf*
:pyfile	if_pyth.txt	/*:pyfile*
:python	if_pyth.txt	/*:python*
:python3	if_pyth.txt	/*:python3*
:pythonx	if_pyth.txt	/*:pythonx*
:pyx	if_pyth.txt	/*:pyx*
:pyxdo	if_pyth.txt	/*:pyxdo*
:pyxfile	if_pyth.txt	/*:pyxfile*
:q	editing.txt	/*:q*
:qa	editing.txt	/*:qa*
:qall	editing.txt	/*:qall*
:quit	editing.txt	/*:quit*
:quita	editing.txt	/*:quita*
:quitall	editing.txt	/*:quitall*
:quote	cmdline.txt	/*:quote*
:r	insert.txt	/*:r*
:r!	insert.txt	/*:r!*
:range	cmdline.txt	/*:range*
:range!	change.txt	/*:range!*
:re	insert.txt	/*:re*
:read	insert.txt	/*:read*
:read!	insert.txt	/*:read!*
:rec	recover.txt	/*:rec*
:recover	recover.txt	/*:recover*
:recover-crypt	recover.txt	/*:recover-crypt*
:red	undo.txt	/*:red*
:redi	various.txt	/*:redi*
:redir	various.txt	/*:redir*
:redo	undo.txt	/*:redo*
:redr	various.txt	/*:redr*
:redraw	various.txt	/*:redraw*
:redraws	various.txt	/*:redraws*
:redrawstatus	various.txt	/*:redrawstatus*
:reg	change.txt	/*:reg*
:registers	change.txt	/*:registers*
:res	windows.txt	/*:res*
:resize	windows.txt	/*:resize*
:ret	change.txt	/*:ret*
:retab	change.txt	/*:retab*
:retab!	change.txt	/*:retab!*
:retu	eval.txt	/*:retu*
:return	eval.txt	/*:return*
:rew	editing.txt	/*:rew*
:rewind	editing.txt	/*:rewind*
:ri	change.txt	/*:ri*
:right	change.txt	/*:right*
:rightb	windows.txt	/*:rightb*
:rightbelow	windows.txt	/*:rightbelow*
:ru	repeat.txt	/*:ru*
:rub	if_ruby.txt	/*:rub*
:ruby	if_ruby.txt	/*:ruby*
:rubyd	if_ruby.txt	/*:rubyd*
:rubydo	if_ruby.txt	/*:rubydo*
:rubyf	if_ruby.txt	/*:rubyf*
:rubyfile	if_ruby.txt	/*:rubyfile*
:rundo	undo.txt	/*:rundo*
:runtime	repeat.txt	/*:runtime*
:rv	starting.txt	/*:rv*
:rviminfo	starting.txt	/*:rviminfo*
:s	change.txt	/*:s*
:s%	change.txt	/*:s%*
:sI	change.txt	/*:sI*
:sIc	change.txt	/*:sIc*
:sIe	change.txt	/*:sIe*
:sIg	change.txt	/*:sIg*
:sIl	change.txt	/*:sIl*
:sIn	change.txt	/*:sIn*
:sIp	change.txt	/*:sIp*
:sIr	change.txt	/*:sIr*
:sN	windows.txt	/*:sN*
:sNext	windows.txt	/*:sNext*
:s\=	change.txt	/*:s\\=*
:s_c	change.txt	/*:s_c*
:s_flags	change.txt	/*:s_flags*
:sa	windows.txt	/*:sa*
:sal	windows.txt	/*:sal*
:sall	windows.txt	/*:sall*
:san	eval.txt	/*:san*
:sandbox	eval.txt	/*:sandbox*
:sargument	windows.txt	/*:sargument*
:sav	editing.txt	/*:sav*
:saveas	editing.txt	/*:saveas*
:sb	windows.txt	/*:sb*
:sbN	windows.txt	/*:sbN*
:sbNext	windows.txt	/*:sbNext*
:sba	windows.txt	/*:sba*
:sball	windows.txt	/*:sball*
:sbf	windows.txt	/*:sbf*
:sbfirst	windows.txt	/*:sbfirst*
:sbl	windows.txt	/*:sbl*
:sblast	windows.txt	/*:sblast*
:sbm	windows.txt	/*:sbm*
:sbmodified	windows.txt	/*:sbmodified*
:sbn	windows.txt	/*:sbn*
:sbnext	windows.txt	/*:sbnext*
:sbp	windows.txt	/*:sbp*
:sbprevious	windows.txt	/*:sbprevious*
:sbr	windows.txt	/*:sbr*
:sbrewind	windows.txt	/*:sbrewind*
:sbuffer	windows.txt	/*:sbuffer*
:sc	change.txt	/*:sc*
:scI	change.txt	/*:scI*
:sce	change.txt	/*:sce*
:scg	change.txt	/*:scg*
:sci	change.txt	/*:sci*
:scl	change.txt	/*:scl*
:scp	change.txt	/*:scp*
:scr	repeat.txt	/*:scr*
:scripte	repeat.txt	/*:scripte*
:scriptencoding	repeat.txt	/*:scriptencoding*
:scriptnames	repeat.txt	/*:scriptnames*
:scs	if_cscop.txt	/*:scs*
:scscope	if_cscop.txt	/*:scscope*
:se	options.txt	/*:se*
:search-args	tagsrch.txt	/*:search-args*
:set	options.txt	/*:set*
:set+=	options.txt	/*:set+=*
:set-!	options.txt	/*:set-!*
:set-&	options.txt	/*:set-&*
:set-&vi	options.txt	/*:set-&vi*
:set-&vim	options.txt	/*:set-&vim*
:set-=	options.txt	/*:set-=*
:set-args	options.txt	/*:set-args*
:set-browse	options.txt	/*:set-browse*
:set-default	options.txt	/*:set-default*
:set-inv	options.txt	/*:set-inv*
:set-termcap	options.txt	/*:set-termcap*
:set-verbose	options.txt	/*:set-verbose*
:set^=	options.txt	/*:set^=*
:set_env	options.txt	/*:set_env*
:setf	options.txt	/*:setf*
:setfiletype	options.txt	/*:setfiletype*
:setg	options.txt	/*:setg*
:setglobal	options.txt	/*:setglobal*
:setl	options.txt	/*:setl*
:setlocal	options.txt	/*:setlocal*
:sf	windows.txt	/*:sf*
:sfind	windows.txt	/*:sfind*
:sfir	windows.txt	/*:sfir*
:sfirst	windows.txt	/*:sfirst*
:sg	change.txt	/*:sg*
:sgI	change.txt	/*:sgI*
:sgc	change.txt	/*:sgc*
:sge	change.txt	/*:sge*
:sgi	change.txt	/*:sgi*
:sgl	change.txt	/*:sgl*
:sgn	change.txt	/*:sgn*
:sgp	change.txt	/*:sgp*
:sgr	change.txt	/*:sgr*
:sh	various.txt	/*:sh*
:shell	various.txt	/*:shell*
:si	change.txt	/*:si*
:sic	change.txt	/*:sic*
:sie	change.txt	/*:sie*
:sig	sign.txt	/*:sig*
:sign	sign.txt	/*:sign*
:sign-define	sign.txt	/*:sign-define*
:sign-fname	sign.txt	/*:sign-fname*
:sign-jump	sign.txt	/*:sign-jump*
:sign-list	sign.txt	/*:sign-list*
:sign-place	sign.txt	/*:sign-place*
:sign-place-list	sign.txt	/*:sign-place-list*
:sign-undefine	sign.txt	/*:sign-undefine*
:sign-unplace	sign.txt	/*:sign-unplace*
:sil	various.txt	/*:sil*
:silent	various.txt	/*:silent*
:silent!	various.txt	/*:silent!*
:sim	gui_w32.txt	/*:sim*
:simalt	gui_w32.txt	/*:simalt*
:sin	change.txt	/*:sin*
:sip	change.txt	/*:sip*
:sir	change.txt	/*:sir*
:sl	various.txt	/*:sl*
:sla	windows.txt	/*:sla*
:slast	windows.txt	/*:slast*
:sleep	various.txt	/*:sleep*
:sm	change.txt	/*:sm*
:smagic	change.txt	/*:smagic*
:smap	map.txt	/*:smap*
:smap_l	map.txt	/*:smap_l*
:smapc	map.txt	/*:smapc*
:smapclear	map.txt	/*:smapclear*
:sme	gui.txt	/*:sme*
:smenu	gui.txt	/*:smenu*
:smile	index.txt	/*:smile*
:sn	windows.txt	/*:sn*
:snext	windows.txt	/*:snext*
:sno	change.txt	/*:sno*
:snomagic	change.txt	/*:snomagic*
:snor	map.txt	/*:snor*
:snoremap	map.txt	/*:snoremap*
:snoreme	gui.txt	/*:snoreme*
:snoremenu	gui.txt	/*:snoremenu*
:so	repeat.txt	/*:so*
:sor	change.txt	/*:sor*
:sort	change.txt	/*:sort*
:source	repeat.txt	/*:source*
:source_crnl	repeat.txt	/*:source_crnl*
:sp	windows.txt	/*:sp*
:spe	spell.txt	/*:spe*
:spelld	spell.txt	/*:spelld*
:spelldump	spell.txt	/*:spelldump*
:spellgood	spell.txt	/*:spellgood*
:spelli	spell.txt	/*:spelli*
:spellinfo	spell.txt	/*:spellinfo*
:spellr	spell.txt	/*:spellr*
:spellrepall	spell.txt	/*:spellrepall*
:spellu	spell.txt	/*:spellu*
:spellundo	spell.txt	/*:spellundo*
:spellw	spell.txt	/*:spellw*
:spellwrong	spell.txt	/*:spellwrong*
:split	windows.txt	/*:split*
:split_f	windows.txt	/*:split_f*
:spr	windows.txt	/*:spr*
:sprevious	windows.txt	/*:sprevious*
:sr	change.txt	/*:sr*
:srI	change.txt	/*:srI*
:src	change.txt	/*:src*
:sre	windows.txt	/*:sre*
:srewind	windows.txt	/*:srewind*
:srg	change.txt	/*:srg*
:sri	change.txt	/*:sri*
:srl	change.txt	/*:srl*
:srn	change.txt	/*:srn*
:srp	change.txt	/*:srp*
:st	starting.txt	/*:st*
:sta	windows.txt	/*:sta*
:stag	windows.txt	/*:stag*
:star	repeat.txt	/*:star*
:start	insert.txt	/*:start*
:startgreplace	insert.txt	/*:startgreplace*
:startinsert	insert.txt	/*:startinsert*
:startreplace	insert.txt	/*:startreplace*
:stj	tagsrch.txt	/*:stj*
:stjump	tagsrch.txt	/*:stjump*
:stop	starting.txt	/*:stop*
:stopi	insert.txt	/*:stopi*
:stopinsert	insert.txt	/*:stopinsert*
:sts	tagsrch.txt	/*:sts*
:stselect	tagsrch.txt	/*:stselect*
:su	change.txt	/*:su*
:substitute	change.txt	/*:substitute*
:sun	windows.txt	/*:sun*
:sunhide	windows.txt	/*:sunhide*
:sunm	map.txt	/*:sunm*
:sunmap	map.txt	/*:sunmap*
:sunme	gui.txt	/*:sunme*
:sunmenu	gui.txt	/*:sunmenu*
:sus	starting.txt	/*:sus*
:suspend	starting.txt	/*:suspend*
:sv	windows.txt	/*:sv*
:sview	windows.txt	/*:sview*
:sw	recover.txt	/*:sw*
:swapname	recover.txt	/*:swapname*
:sy	syntax.txt	/*:sy*
:syn	syntax.txt	/*:syn*
:syn-arguments	syntax.txt	/*:syn-arguments*
:syn-case	syntax.txt	/*:syn-case*
:syn-cchar	syntax.txt	/*:syn-cchar*
:syn-clear	syntax.txt	/*:syn-clear*
:syn-cluster	syntax.txt	/*:syn-cluster*
:syn-conceal	syntax.txt	/*:syn-conceal*
:syn-conceal-implicit	syntax.txt	/*:syn-conceal-implicit*
:syn-concealends	syntax.txt	/*:syn-concealends*
:syn-contained	syntax.txt	/*:syn-contained*
:syn-containedin	syntax.txt	/*:syn-containedin*
:syn-contains	syntax.txt	/*:syn-contains*
:syn-context	syntax.txt	/*:syn-context*
:syn-default-override	usr_06.txt	/*:syn-default-override*
:syn-define	syntax.txt	/*:syn-define*
:syn-display	syntax.txt	/*:syn-display*
:syn-enable	syntax.txt	/*:syn-enable*
:syn-end	syntax.txt	/*:syn-end*
:syn-excludenl	syntax.txt	/*:syn-excludenl*
:syn-ext-match	syntax.txt	/*:syn-ext-match*
:syn-extend	syntax.txt	/*:syn-extend*
:syn-file-remarks	syntax.txt	/*:syn-file-remarks*
:syn-files	syntax.txt	/*:syn-files*
:syn-fold	syntax.txt	/*:syn-fold*
:syn-include	syntax.txt	/*:syn-include*
:syn-iskeyword	syntax.txt	/*:syn-iskeyword*
:syn-keepend	syntax.txt	/*:syn-keepend*
:syn-keyword	syntax.txt	/*:syn-keyword*
:syn-lc	syntax.txt	/*:syn-lc*
:syn-leading	syntax.txt	/*:syn-leading*
:syn-list	syntax.txt	/*:syn-list*
:syn-manual	usr_06.txt	/*:syn-manual*
:syn-match	syntax.txt	/*:syn-match*
:syn-matchgroup	syntax.txt	/*:syn-matchgroup*
:syn-multi-line	syntax.txt	/*:syn-multi-line*
:syn-nextgroup	syntax.txt	/*:syn-nextgroup*
:syn-off	usr_06.txt	/*:syn-off*
:syn-on	syntax.txt	/*:syn-on*
:syn-oneline	syntax.txt	/*:syn-oneline*
:syn-pattern	syntax.txt	/*:syn-pattern*
:syn-pattern-offset	syntax.txt	/*:syn-pattern-offset*
:syn-priority	syntax.txt	/*:syn-priority*
:syn-qstart	syntax.txt	/*:syn-qstart*
:syn-region	syntax.txt	/*:syn-region*
:syn-reset	syntax.txt	/*:syn-reset*
:syn-skip	syntax.txt	/*:syn-skip*
:syn-skipempty	syntax.txt	/*:syn-skipempty*
:syn-skipnl	syntax.txt	/*:syn-skipnl*
:syn-skipwhite	syntax.txt	/*:syn-skipwhite*
:syn-spell	syntax.txt	/*:syn-spell*
:syn-start	syntax.txt	/*:syn-start*
:syn-sync	syntax.txt	/*:syn-sync*
:syn-sync-ccomment	syntax.txt	/*:syn-sync-ccomment*
:syn-sync-first	syntax.txt	/*:syn-sync-first*
:syn-sync-fourth	syntax.txt	/*:syn-sync-fourth*
:syn-sync-linebreaks	syntax.txt	/*:syn-sync-linebreaks*
:syn-sync-maxlines	syntax.txt	/*:syn-sync-maxlines*
:syn-sync-minlines	syntax.txt	/*:syn-sync-minlines*
:syn-sync-second	syntax.txt	/*:syn-sync-second*
:syn-sync-third	syntax.txt	/*:syn-sync-third*
:syn-transparent	syntax.txt	/*:syn-transparent*
:sync	scroll.txt	/*:sync*
:syncbind	scroll.txt	/*:syncbind*
:syntax	syntax.txt	/*:syntax*
:syntax-enable	syntax.txt	/*:syntax-enable*
:syntax-on	syntax.txt	/*:syntax-on*
:syntax-reset	syntax.txt	/*:syntax-reset*
:syntime	syntax.txt	/*:syntime*
:t	change.txt	/*:t*
:tN	tagsrch.txt	/*:tN*
:tNext	tagsrch.txt	/*:tNext*
:ta	tagsrch.txt	/*:ta*
:tab	tabpage.txt	/*:tab*
:tabN	tabpage.txt	/*:tabN*
:tabNext	tabpage.txt	/*:tabNext*
:tabc	tabpage.txt	/*:tabc*
:tabclose	tabpage.txt	/*:tabclose*
:tabd	tabpage.txt	/*:tabd*
:tabdo	tabpage.txt	/*:tabdo*
:tabe	tabpage.txt	/*:tabe*
:tabedit	tabpage.txt	/*:tabedit*
:tabf	tabpage.txt	/*:tabf*
:tabfind	tabpage.txt	/*:tabfind*
:tabfir	tabpage.txt	/*:tabfir*
:tabfirst	tabpage.txt	/*:tabfirst*
:tabl	tabpage.txt	/*:tabl*
:tablast	tabpage.txt	/*:tablast*
:tabm	tabpage.txt	/*:tabm*
:tabmove	tabpage.txt	/*:tabmove*
:tabn	tabpage.txt	/*:tabn*
:tabnew	tabpage.txt	/*:tabnew*
:tabnext	tabpage.txt	/*:tabnext*
:tabo	tabpage.txt	/*:tabo*
:tabonly	tabpage.txt	/*:tabonly*
:tabp	tabpage.txt	/*:tabp*
:tabprevious	tabpage.txt	/*:tabprevious*
:tabr	tabpage.txt	/*:tabr*
:tabrewind	tabpage.txt	/*:tabrewind*
:tabs	tabpage.txt	/*:tabs*
:tag	tagsrch.txt	/*:tag*
:tags	tagsrch.txt	/*:tags*
:tc	if_tcl.txt	/*:tc*
:tcl	if_tcl.txt	/*:tcl*
:tcld	if_tcl.txt	/*:tcld*
:tcldo	if_tcl.txt	/*:tcldo*
:tclf	if_tcl.txt	/*:tclf*
:tclfile	if_tcl.txt	/*:tclfile*
:te	gui_w32.txt	/*:te*
:tearoff	gui_w32.txt	/*:tearoff*
:ter	terminal.txt	/*:ter*
:terminal	terminal.txt	/*:terminal*
:tf	tagsrch.txt	/*:tf*
:tfirst	tagsrch.txt	/*:tfirst*
:th	eval.txt	/*:th*
:throw	eval.txt	/*:throw*
:tj	tagsrch.txt	/*:tj*
:tjump	tagsrch.txt	/*:tjump*
:tl	tagsrch.txt	/*:tl*
:tlast	tagsrch.txt	/*:tlast*
:tm	gui.txt	/*:tm*
:tma	map.txt	/*:tma*
:tmap	map.txt	/*:tmap*
:tmap_l	map.txt	/*:tmap_l*
:tmapc	map.txt	/*:tmapc*
:tmapclear	map.txt	/*:tmapclear*
:tmenu	gui.txt	/*:tmenu*
:tn	tagsrch.txt	/*:tn*
:tnext	tagsrch.txt	/*:tnext*
:tno	map.txt	/*:tno*
:tnoremap	map.txt	/*:tnoremap*
:topleft	windows.txt	/*:topleft*
:tp	tagsrch.txt	/*:tp*
:tprevious	tagsrch.txt	/*:tprevious*
:tr	tagsrch.txt	/*:tr*
:trewind	tagsrch.txt	/*:trewind*
:try	eval.txt	/*:try*
:ts	tagsrch.txt	/*:ts*
:tselect	tagsrch.txt	/*:tselect*
:tu	gui.txt	/*:tu*
:tunma	map.txt	/*:tunma*
:tunmap	map.txt	/*:tunmap*
:tunmenu	gui.txt	/*:tunmenu*
:u	undo.txt	/*:u*
:un	undo.txt	/*:un*
:una	map.txt	/*:una*
:unabbreviate	map.txt	/*:unabbreviate*
:undo	undo.txt	/*:undo*
:undoj	undo.txt	/*:undoj*
:undojoin	undo.txt	/*:undojoin*
:undol	undo.txt	/*:undol*
:undolist	undo.txt	/*:undolist*
:unh	windows.txt	/*:unh*
:unhide	windows.txt	/*:unhide*
:unl	eval.txt	/*:unl*
:unlet	eval.txt	/*:unlet*
:unlo	eval.txt	/*:unlo*
:unlockvar	eval.txt	/*:unlockvar*
:unm	map.txt	/*:unm*
:unm!	map.txt	/*:unm!*
:unmap	map.txt	/*:unmap*
:unmap!	map.txt	/*:unmap!*
:unme	gui.txt	/*:unme*
:unmenu	gui.txt	/*:unmenu*
:unmenu-all	gui.txt	/*:unmenu-all*
:uns	various.txt	/*:uns*
:unsilent	various.txt	/*:unsilent*
:up	editing.txt	/*:up*
:update	editing.txt	/*:update*
:v	repeat.txt	/*:v*
:ve	various.txt	/*:ve*
:verb	various.txt	/*:verb*
:verbose	various.txt	/*:verbose*
:verbose-cmd	various.txt	/*:verbose-cmd*
:version	various.txt	/*:version*
:vert	windows.txt	/*:vert*
:vertical	windows.txt	/*:vertical*
:vertical-resize	windows.txt	/*:vertical-resize*
:vglobal	repeat.txt	/*:vglobal*
:vi	editing.txt	/*:vi*
:vie	editing.txt	/*:vie*
:view	editing.txt	/*:view*
:vim	quickfix.txt	/*:vim*
:vimgrep	quickfix.txt	/*:vimgrep*
:vimgrepa	quickfix.txt	/*:vimgrepa*
:vimgrepadd	quickfix.txt	/*:vimgrepadd*
:visual	editing.txt	/*:visual*
:visual_example	visual.txt	/*:visual_example*
:viu	helphelp.txt	/*:viu*
:viusage	helphelp.txt	/*:viusage*
:vm	map.txt	/*:vm*
:vmap	map.txt	/*:vmap*
:vmap_l	map.txt	/*:vmap_l*
:vmapc	map.txt	/*:vmapc*
:vmapclear	map.txt	/*:vmapclear*
:vme	gui.txt	/*:vme*
:vmenu	gui.txt	/*:vmenu*
:vn	map.txt	/*:vn*
:vne	windows.txt	/*:vne*
:vnew	windows.txt	/*:vnew*
:vnoremap	map.txt	/*:vnoremap*
:vnoreme	gui.txt	/*:vnoreme*
:vnoremenu	gui.txt	/*:vnoremenu*
:vs	windows.txt	/*:vs*
:vsplit	windows.txt	/*:vsplit*
:vu	map.txt	/*:vu*
:vunmap	map.txt	/*:vunmap*
:vunme	gui.txt	/*:vunme*
:vunmenu	gui.txt	/*:vunmenu*
:w	editing.txt	/*:w*
:w!	editing.txt	/*:w!*
:wN	editing.txt	/*:wN*
:wNext	editing.txt	/*:wNext*
:w_a	editing.txt	/*:w_a*
:w_c	editing.txt	/*:w_c*
:w_f	editing.txt	/*:w_f*
:wa	editing.txt	/*:wa*
:wall	editing.txt	/*:wall*
:wh	eval.txt	/*:wh*
:while	eval.txt	/*:while*
:win	gui.txt	/*:win*
:winc	windows.txt	/*:winc*
:wincmd	windows.txt	/*:wincmd*
:windo	windows.txt	/*:windo*
:winp	gui.txt	/*:winp*
:winpos	gui.txt	/*:winpos*
:winsize	gui.txt	/*:winsize*
:wn	editing.txt	/*:wn*
:wnext	editing.txt	/*:wnext*
:wp	editing.txt	/*:wp*
:wprevious	editing.txt	/*:wprevious*
:wq	editing.txt	/*:wq*
:wqa	editing.txt	/*:wqa*
:wqall	editing.txt	/*:wqall*
:write	editing.txt	/*:write*
:write_a	editing.txt	/*:write_a*
:write_c	editing.txt	/*:write_c*
:write_f	editing.txt	/*:write_f*
:ws	workshop.txt	/*:ws*
:wsverb	workshop.txt	/*:wsverb*
:wundo	undo.txt	/*:wundo*
:wv	starting.txt	/*:wv*
:wviminfo	starting.txt	/*:wviminfo*
:x	editing.txt	/*:x*
:xa	editing.txt	/*:xa*
:xall	editing.txt	/*:xall*
:xit	editing.txt	/*:xit*
:xm	map.txt	/*:xm*
:xmap	map.txt	/*:xmap*
:xmap_l	map.txt	/*:xmap_l*
:xmapc	map.txt	/*:xmapc*
:xmapclear	map.txt	/*:xmapclear*
:xme	gui.txt	/*:xme*
:xmenu	gui.txt	/*:xmenu*
:xn	map.txt	/*:xn*
:xnoremap	map.txt	/*:xnoremap*
:xnoreme	gui.txt	/*:xnoreme*
:xnoremenu	gui.txt	/*:xnoremenu*
:xu	map.txt	/*:xu*
:xunmap	map.txt	/*:xunmap*
:xunme	gui.txt	/*:xunme*
:xunmenu	gui.txt	/*:xunmenu*
:y	change.txt	/*:y*
:yank	change.txt	/*:yank*
:z	various.txt	/*:z*
:z#	various.txt	/*:z#*
:~	change.txt	/*:~*
;	motion.txt	/*;*
<	change.txt	/*<*
<2-LeftMouse>	term.txt	/*<2-LeftMouse>*
<3-LeftMouse>	term.txt	/*<3-LeftMouse>*
<4-LeftMouse>	term.txt	/*<4-LeftMouse>*
<<	change.txt	/*<<*
<>	intro.txt	/*<>*
<A-	intro.txt	/*<A-*
<A-LeftMouse>	term.txt	/*<A-LeftMouse>*
<A-RightMouse>	term.txt	/*<A-RightMouse>*
<BS>	motion.txt	/*<BS>*
<Bar>	intro.txt	/*<Bar>*
<Bslash>	intro.txt	/*<Bslash>*
<C-	intro.txt	/*<C-*
<C-Del>	os_dos.txt	/*<C-Del>*
<C-End>	motion.txt	/*<C-End>*
<C-Home>	motion.txt	/*<C-Home>*
<C-Insert>	os_dos.txt	/*<C-Insert>*
<C-Left>	motion.txt	/*<C-Left>*
<C-LeftMouse>	tagsrch.txt	/*<C-LeftMouse>*
<C-PageDown>	tabpage.txt	/*<C-PageDown>*
<C-PageUp>	tabpage.txt	/*<C-PageUp>*
<C-Right>	motion.txt	/*<C-Right>*
<C-RightMouse>	tagsrch.txt	/*<C-RightMouse>*
<C-ScrollWheelDown>	scroll.txt	/*<C-ScrollWheelDown>*
<C-ScrollWheelLeft>	scroll.txt	/*<C-ScrollWheelLeft>*
<C-ScrollWheelRight>	scroll.txt	/*<C-ScrollWheelRight>*
<C-ScrollWheelUp>	scroll.txt	/*<C-ScrollWheelUp>*
<CR>	motion.txt	/*<CR>*
<CSI>	intro.txt	/*<CSI>*
<Char->	map.txt	/*<Char->*
<Char>	map.txt	/*<Char>*
<CursorHold>	autocmd.txt	/*<CursorHold>*
<D-	intro.txt	/*<D-*
<D-c>	os_mac.txt	/*<D-c>*
<D-v>	os_mac.txt	/*<D-v>*
<D-x>	os_mac.txt	/*<D-x>*
<Del>	change.txt	/*<Del>*
<Down>	motion.txt	/*<Down>*
<Drop>	change.txt	/*<Drop>*
<EOL>	intro.txt	/*<EOL>*
<End>	motion.txt	/*<End>*
<Enter>	intro.txt	/*<Enter>*
<Esc>	intro.txt	/*<Esc>*
<F10>	term.txt	/*<F10>*
<F11>	term.txt	/*<F11>*
<F12>	term.txt	/*<F12>*
<F13>	term.txt	/*<F13>*
<F14>	term.txt	/*<F14>*
<F15>	term.txt	/*<F15>*
<F16>	term.txt	/*<F16>*
<F17>	term.txt	/*<F17>*
<F18>	term.txt	/*<F18>*
<F19>	term.txt	/*<F19>*
<F1>	helphelp.txt	/*<F1>*
<F2>	term.txt	/*<F2>*
<F3>	term.txt	/*<F3>*
<F4>	term.txt	/*<F4>*
<F5>	term.txt	/*<F5>*
<F6>	term.txt	/*<F6>*
<F7>	term.txt	/*<F7>*
<F8>	term.txt	/*<F8>*
<F9>	term.txt	/*<F9>*
<Help>	helphelp.txt	/*<Help>*
<Home>	motion.txt	/*<Home>*
<Insert>	insert.txt	/*<Insert>*
<Leader>	map.txt	/*<Leader>*
<Left>	motion.txt	/*<Left>*
<LeftDrag>	term.txt	/*<LeftDrag>*
<LeftMouse>	visual.txt	/*<LeftMouse>*
<LeftRelease>	visual.txt	/*<LeftRelease>*
<LocalLeader>	map.txt	/*<LocalLeader>*
<M-	intro.txt	/*<M-*
<MiddleDrag>	term.txt	/*<MiddleDrag>*
<MiddleMouse>	change.txt	/*<MiddleMouse>*
<MiddleRelease>	term.txt	/*<MiddleRelease>*
<Mouse>	term.txt	/*<Mouse>*
<MouseDown>	scroll.txt	/*<MouseDown>*
<MouseUp>	scroll.txt	/*<MouseUp>*
<NL>	motion.txt	/*<NL>*
<Nop>	map.txt	/*<Nop>*
<Nul>	intro.txt	/*<Nul>*
<PageDown>	scroll.txt	/*<PageDown>*
<PageUp>	scroll.txt	/*<PageUp>*
<Plug>	map.txt	/*<Plug>*
<Return>	intro.txt	/*<Return>*
<Right>	motion.txt	/*<Right>*
<RightDrag>	term.txt	/*<RightDrag>*
<RightMouse>	visual.txt	/*<RightMouse>*
<RightRelease>	term.txt	/*<RightRelease>*
<S-	intro.txt	/*<S-*
<S-Del>	os_dos.txt	/*<S-Del>*
<S-Down>	scroll.txt	/*<S-Down>*
<S-End>	term.txt	/*<S-End>*
<S-F10>	term.txt	/*<S-F10>*
<S-F11>	term.txt	/*<S-F11>*
<S-F12>	term.txt	/*<S-F12>*
<S-F1>	intro.txt	/*<S-F1>*
<S-F2>	term.txt	/*<S-F2>*
<S-F3>	term.txt	/*<S-F3>*
<S-F4>	term.txt	/*<S-F4>*
<S-F5>	term.txt	/*<S-F5>*
<S-F6>	term.txt	/*<S-F6>*
<S-F7>	term.txt	/*<S-F7>*
<S-F8>	term.txt	/*<S-F8>*
<S-F9>	term.txt	/*<S-F9>*
<S-Home>	term.txt	/*<S-Home>*
<S-Insert>	os_dos.txt	/*<S-Insert>*
<S-Left>	motion.txt	/*<S-Left>*
<S-LeftMouse>	term.txt	/*<S-LeftMouse>*
<S-Right>	motion.txt	/*<S-Right>*
<S-RightMouse>	term.txt	/*<S-RightMouse>*
<S-ScrollWheelDown>	scroll.txt	/*<S-ScrollWheelDown>*
<S-ScrollWheelLeft>	scroll.txt	/*<S-ScrollWheelLeft>*
<S-ScrollWheelRight>	scroll.txt	/*<S-ScrollWheelRight>*
<S-ScrollWheelUp>	scroll.txt	/*<S-ScrollWheelUp>*
<S-Tab>	term.txt	/*<S-Tab>*
<S-Up>	scroll.txt	/*<S-Up>*
<S-xF1>	term.txt	/*<S-xF1>*
<S-xF2>	term.txt	/*<S-xF2>*
<S-xF3>	term.txt	/*<S-xF3>*
<S-xF4>	term.txt	/*<S-xF4>*
<SID>	map.txt	/*<SID>*
<SNR>	map.txt	/*<SNR>*
<ScrollWheelDown>	scroll.txt	/*<ScrollWheelDown>*
<ScrollWheelLeft>	scroll.txt	/*<ScrollWheelLeft>*
<ScrollWheelRight>	scroll.txt	/*<ScrollWheelRight>*
<ScrollWheelUp>	scroll.txt	/*<ScrollWheelUp>*
<Space>	motion.txt	/*<Space>*
<Tab>	motion.txt	/*<Tab>*
<Undo>	undo.txt	/*<Undo>*
<Up>	motion.txt	/*<Up>*
<abuf>	cmdline.txt	/*<abuf>*
<afile>	cmdline.txt	/*<afile>*
<amatch>	cmdline.txt	/*<amatch>*
<args>	map.txt	/*<args>*
<bang>	map.txt	/*<bang>*
<buffer=N>	autocmd.txt	/*<buffer=N>*
<buffer=abuf>	autocmd.txt	/*<buffer=abuf>*
<cexpr>	cmdline.txt	/*<cexpr>*
<cfile>	cmdline.txt	/*<cfile>*
<character>	intro.txt	/*<character>*
<count>	map.txt	/*<count>*
<f-args>	map.txt	/*<f-args>*
<k0>	term.txt	/*<k0>*
<k1>	term.txt	/*<k1>*
<k2>	term.txt	/*<k2>*
<k3>	term.txt	/*<k3>*
<k4>	term.txt	/*<k4>*
<k5>	term.txt	/*<k5>*
<k6>	term.txt	/*<k6>*
<k7>	term.txt	/*<k7>*
<k8>	term.txt	/*<k8>*
<k9>	term.txt	/*<k9>*
<kDivide>	term.txt	/*<kDivide>*
<kEnd>	motion.txt	/*<kEnd>*
<kEnter>	term.txt	/*<kEnter>*
<kHome>	motion.txt	/*<kHome>*
<kMinus>	term.txt	/*<kMinus>*
<kMultiply>	term.txt	/*<kMultiply>*
<kPageDown>	scroll.txt	/*<kPageDown>*
<kPageUp>	scroll.txt	/*<kPageUp>*
<kPlus>	term.txt	/*<kPlus>*
<kPoint>	term.txt	/*<kPoint>*
<line1>	map.txt	/*<line1>*
<line2>	map.txt	/*<line2>*
<lt>	intro.txt	/*<lt>*
<mods>	map.txt	/*<mods>*
<nomodeline>	autocmd.txt	/*<nomodeline>*
<q-args>	map.txt	/*<q-args>*
<range>	map.txt	/*<range>*
<reg>	map.txt	/*<reg>*
<register>	map.txt	/*<register>*
<sfile>	cmdline.txt	/*<sfile>*
<slnum>	cmdline.txt	/*<slnum>*
<xCSI>	intro.txt	/*<xCSI>*
<xDown>	term.txt	/*<xDown>*
<xEnd>	term.txt	/*<xEnd>*
<xEnd>-xterm	term.txt	/*<xEnd>-xterm*
<xF1>	term.txt	/*<xF1>*
<xF1>-xterm	term.txt	/*<xF1>-xterm*
<xF2>	term.txt	/*<xF2>*
<xF2>-xterm	term.txt	/*<xF2>-xterm*
<xF3>	term.txt	/*<xF3>*
<xF3>-xterm	term.txt	/*<xF3>-xterm*
<xF4>	term.txt	/*<xF4>*
<xF4>-xterm	term.txt	/*<xF4>-xterm*
<xHome>	term.txt	/*<xHome>*
<xHome>-xterm	term.txt	/*<xHome>-xterm*
<xLeft>	term.txt	/*<xLeft>*
<xRight>	term.txt	/*<xRight>*
<xUp>	term.txt	/*<xUp>*
=	change.txt	/*=*
==	change.txt	/*==*
>	change.txt	/*>*
>>	change.txt	/*>>*
>backtrace	repeat.txt	/*>backtrace*
>bt	repeat.txt	/*>bt*
>cont	repeat.txt	/*>cont*
>down	repeat.txt	/*>down*
>finish	repeat.txt	/*>finish*
>frame	repeat.txt	/*>frame*
>interrupt	repeat.txt	/*>interrupt*
>next	repeat.txt	/*>next*
>quit	repeat.txt	/*>quit*
>step	repeat.txt	/*>step*
>up	repeat.txt	/*>up*
>where	repeat.txt	/*>where*
?	pattern.txt	/*?*
?<CR>	pattern.txt	/*?<CR>*
@	repeat.txt	/*@*
@/	change.txt	/*@\/*
@:	repeat.txt	/*@:*
@=	change.txt	/*@=*
@@	repeat.txt	/*@@*
@r	eval.txt	/*@r*
A	insert.txt	/*A*
ACL	editing.txt	/*ACL*
ATTENTION	usr_11.txt	/*ATTENTION*
Abbreviations	map.txt	/*Abbreviations*
Aleph	options.txt	/*Aleph*
Amiga	os_amiga.txt	/*Amiga*
Arabic	arabic.txt	/*Arabic*
Atari	os_mint.txt	/*Atari*
Athena	gui_x11.txt	/*Athena*
B	motion.txt	/*B*
BeBox	os_beos.txt	/*BeBox*
BeOS	os_beos.txt	/*BeOS*
Bram	intro.txt	/*Bram*
BufAdd	autocmd.txt	/*BufAdd*
BufCreate	autocmd.txt	/*BufCreate*
BufDelete	autocmd.txt	/*BufDelete*
BufEnter	autocmd.txt	/*BufEnter*
BufFilePost	autocmd.txt	/*BufFilePost*
BufFilePre	autocmd.txt	/*BufFilePre*
BufHidden	autocmd.txt	/*BufHidden*
BufLeave	autocmd.txt	/*BufLeave*
BufNew	autocmd.txt	/*BufNew*
BufNewFile	autocmd.txt	/*BufNewFile*
BufRead	autocmd.txt	/*BufRead*
BufReadCmd	autocmd.txt	/*BufReadCmd*
BufReadPost	autocmd.txt	/*BufReadPost*
BufReadPre	autocmd.txt	/*BufReadPre*
BufUnload	autocmd.txt	/*BufUnload*
BufWinEnter	autocmd.txt	/*BufWinEnter*
BufWinLeave	autocmd.txt	/*BufWinLeave*
BufWipeout	autocmd.txt	/*BufWipeout*
BufWrite	autocmd.txt	/*BufWrite*
BufWriteCmd	autocmd.txt	/*BufWriteCmd*
BufWritePost	autocmd.txt	/*BufWritePost*
BufWritePre	autocmd.txt	/*BufWritePre*
C	change.txt	/*C*
C-editing	tips.txt	/*C-editing*
C-indenting	indent.txt	/*C-indenting*
COMSPEC	starting.txt	/*COMSPEC*
CR-used-for-NL	pattern.txt	/*CR-used-for-NL*
CTRL-6	editing.txt	/*CTRL-6*
CTRL-<PageDown>	tabpage.txt	/*CTRL-<PageDown>*
CTRL-<PageUp>	tabpage.txt	/*CTRL-<PageUp>*
CTRL-A	change.txt	/*CTRL-A*
CTRL-B	scroll.txt	/*CTRL-B*
CTRL-C	pattern.txt	/*CTRL-C*
CTRL-D	scroll.txt	/*CTRL-D*
CTRL-E	scroll.txt	/*CTRL-E*
CTRL-F	scroll.txt	/*CTRL-F*
CTRL-G	editing.txt	/*CTRL-G*
CTRL-H	motion.txt	/*CTRL-H*
CTRL-I	motion.txt	/*CTRL-I*
CTRL-J	motion.txt	/*CTRL-J*
CTRL-L	various.txt	/*CTRL-L*
CTRL-M	motion.txt	/*CTRL-M*
CTRL-N	motion.txt	/*CTRL-N*
CTRL-O	motion.txt	/*CTRL-O*
CTRL-P	motion.txt	/*CTRL-P*
CTRL-Q	gui_w32.txt	/*CTRL-Q*
CTRL-R	undo.txt	/*CTRL-R*
CTRL-T	tagsrch.txt	/*CTRL-T*
CTRL-U	scroll.txt	/*CTRL-U*
CTRL-U-changed	version6.txt	/*CTRL-U-changed*
CTRL-V	visual.txt	/*CTRL-V*
CTRL-V-alternative	gui_w32.txt	/*CTRL-V-alternative*
CTRL-W	index.txt	/*CTRL-W*
CTRL-W_+	windows.txt	/*CTRL-W_+*
CTRL-W_-	windows.txt	/*CTRL-W_-*
CTRL-W_.	terminal.txt	/*CTRL-W_.*
CTRL-W_:	windows.txt	/*CTRL-W_:*
CTRL-W_<	windows.txt	/*CTRL-W_<*
CTRL-W_<BS>	windows.txt	/*CTRL-W_<BS>*
CTRL-W_<CR>	quickfix.txt	/*CTRL-W_<CR>*
CTRL-W_<Down>	windows.txt	/*CTRL-W_<Down>*
CTRL-W_<Enter>	quickfix.txt	/*CTRL-W_<Enter>*
CTRL-W_<Left>	windows.txt	/*CTRL-W_<Left>*
CTRL-W_<Right>	windows.txt	/*CTRL-W_<Right>*
CTRL-W_<Up>	windows.txt	/*CTRL-W_<Up>*
CTRL-W_=	windows.txt	/*CTRL-W_=*
CTRL-W_>	windows.txt	/*CTRL-W_>*
CTRL-W_CTRL-B	windows.txt	/*CTRL-W_CTRL-B*
CTRL-W_CTRL-C	windows.txt	/*CTRL-W_CTRL-C*
CTRL-W_CTRL-D	tagsrch.txt	/*CTRL-W_CTRL-D*
CTRL-W_CTRL-F	windows.txt	/*CTRL-W_CTRL-F*
CTRL-W_CTRL-H	windows.txt	/*CTRL-W_CTRL-H*
CTRL-W_CTRL-I	tagsrch.txt	/*CTRL-W_CTRL-I*
CTRL-W_CTRL-J	windows.txt	/*CTRL-W_CTRL-J*
CTRL-W_CTRL-K	windows.txt	/*CTRL-W_CTRL-K*
CTRL-W_CTRL-L	windows.txt	/*CTRL-W_CTRL-L*
CTRL-W_CTRL-N	windows.txt	/*CTRL-W_CTRL-N*
CTRL-W_CTRL-O	windows.txt	/*CTRL-W_CTRL-O*
CTRL-W_CTRL-P	windows.txt	/*CTRL-W_CTRL-P*
CTRL-W_CTRL-Q	windows.txt	/*CTRL-W_CTRL-Q*
CTRL-W_CTRL-R	windows.txt	/*CTRL-W_CTRL-R*
CTRL-W_CTRL-S	windows.txt	/*CTRL-W_CTRL-S*
CTRL-W_CTRL-T	windows.txt	/*CTRL-W_CTRL-T*
CTRL-W_CTRL-V	windows.txt	/*CTRL-W_CTRL-V*
CTRL-W_CTRL-W	windows.txt	/*CTRL-W_CTRL-W*
CTRL-W_CTRL-X	windows.txt	/*CTRL-W_CTRL-X*
CTRL-W_CTRL-Z	windows.txt	/*CTRL-W_CTRL-Z*
CTRL-W_CTRL-]	windows.txt	/*CTRL-W_CTRL-]*
CTRL-W_CTRL-^	windows.txt	/*CTRL-W_CTRL-^*
CTRL-W_CTRL-_	windows.txt	/*CTRL-W_CTRL-_*
CTRL-W_F	windows.txt	/*CTRL-W_F*
CTRL-W_H	windows.txt	/*CTRL-W_H*
CTRL-W_J	windows.txt	/*CTRL-W_J*
CTRL-W_K	windows.txt	/*CTRL-W_K*
CTRL-W_L	windows.txt	/*CTRL-W_L*
CTRL-W_N	terminal.txt	/*CTRL-W_N*
CTRL-W_P	windows.txt	/*CTRL-W_P*
CTRL-W_R	windows.txt	/*CTRL-W_R*
CTRL-W_S	windows.txt	/*CTRL-W_S*
CTRL-W_T	windows.txt	/*CTRL-W_T*
CTRL-W_W	windows.txt	/*CTRL-W_W*
CTRL-W_]	windows.txt	/*CTRL-W_]*
CTRL-W_^	windows.txt	/*CTRL-W_^*
CTRL-W__	windows.txt	/*CTRL-W__*
CTRL-W_b	windows.txt	/*CTRL-W_b*
CTRL-W_bar	windows.txt	/*CTRL-W_bar*
CTRL-W_c	windows.txt	/*CTRL-W_c*
CTRL-W_d	tagsrch.txt	/*CTRL-W_d*
CTRL-W_f	windows.txt	/*CTRL-W_f*
CTRL-W_gF	windows.txt	/*CTRL-W_gF*
CTRL-W_g]	windows.txt	/*CTRL-W_g]*
CTRL-W_g_CTRL-]	windows.txt	/*CTRL-W_g_CTRL-]*
CTRL-W_gf	windows.txt	/*CTRL-W_gf*
CTRL-W_g}	windows.txt	/*CTRL-W_g}*
CTRL-W_h	windows.txt	/*CTRL-W_h*
CTRL-W_i	tagsrch.txt	/*CTRL-W_i*
CTRL-W_j	windows.txt	/*CTRL-W_j*
CTRL-W_k	windows.txt	/*CTRL-W_k*
CTRL-W_l	windows.txt	/*CTRL-W_l*
CTRL-W_n	windows.txt	/*CTRL-W_n*
CTRL-W_o	windows.txt	/*CTRL-W_o*
CTRL-W_p	windows.txt	/*CTRL-W_p*
CTRL-W_q	windows.txt	/*CTRL-W_q*
CTRL-W_quote	terminal.txt	/*CTRL-W_quote*
CTRL-W_r	windows.txt	/*CTRL-W_r*
CTRL-W_s	windows.txt	/*CTRL-W_s*
CTRL-W_t	windows.txt	/*CTRL-W_t*
CTRL-W_v	windows.txt	/*CTRL-W_v*
CTRL-W_w	windows.txt	/*CTRL-W_w*
CTRL-W_x	windows.txt	/*CTRL-W_x*
CTRL-W_z	windows.txt	/*CTRL-W_z*
CTRL-W_}	windows.txt	/*CTRL-W_}*
CTRL-X	change.txt	/*CTRL-X*
CTRL-Y	scroll.txt	/*CTRL-Y*
CTRL-Z	starting.txt	/*CTRL-Z*
CTRL-\_CTRL-G	intro.txt	/*CTRL-\\_CTRL-G*
CTRL-\_CTRL-N	intro.txt	/*CTRL-\\_CTRL-N*
CTRL-]	tagsrch.txt	/*CTRL-]*
CTRL-^	editing.txt	/*CTRL-^*
CTRL-{char}	intro.txt	/*CTRL-{char}*
Channel	eval.txt	/*Channel*
Channels	eval.txt	/*Channels*
Chinese	mbyte.txt	/*Chinese*
Cmd-event	autocmd.txt	/*Cmd-event*
CmdUndefined	autocmd.txt	/*CmdUndefined*
Cmdline	cmdline.txt	/*Cmdline*
Cmdline-mode	cmdline.txt	/*Cmdline-mode*
CmdlineChanged	autocmd.txt	/*CmdlineChanged*
CmdlineEnter	autocmd.txt	/*CmdlineEnter*
CmdlineLeave	autocmd.txt	/*CmdlineLeave*
CmdwinEnter	autocmd.txt	/*CmdwinEnter*
CmdwinLeave	autocmd.txt	/*CmdwinLeave*
ColorScheme	autocmd.txt	/*ColorScheme*
Command-line	cmdline.txt	/*Command-line*
Command-line-mode	cmdline.txt	/*Command-line-mode*
CompleteDone	autocmd.txt	/*CompleteDone*
Contents	quickref.txt	/*Contents*
Cscope	if_cscop.txt	/*Cscope*
CursorHold	autocmd.txt	/*CursorHold*
CursorHold-example	windows.txt	/*CursorHold-example*
CursorHoldI	autocmd.txt	/*CursorHoldI*
CursorIM	mbyte.txt	/*CursorIM*
CursorMoved	autocmd.txt	/*CursorMoved*
CursorMovedI	autocmd.txt	/*CursorMovedI*
D	change.txt	/*D*
DOS	os_dos.txt	/*DOS*
DOS-format	editing.txt	/*DOS-format*
DOS-format-write	editing.txt	/*DOS-format-write*
Dictionaries	eval.txt	/*Dictionaries*
Dictionary	eval.txt	/*Dictionary*
Dictionary-function	eval.txt	/*Dictionary-function*
Digraphs	digraph.txt	/*Digraphs*
DirChanged	autocmd.txt	/*DirChanged*
E	motion.txt	/*E*
E10	message.txt	/*E10*
E100	diff.txt	/*E100*
E101	diff.txt	/*E101*
E102	diff.txt	/*E102*
E103	diff.txt	/*E103*
E104	digraph.txt	/*E104*
E105	mbyte.txt	/*E105*
E107	eval.txt	/*E107*
E108	eval.txt	/*E108*
E109	eval.txt	/*E109*
E11	cmdline.txt	/*E11*
E110	eval.txt	/*E110*
E111	eval.txt	/*E111*
E112	eval.txt	/*E112*
E113	eval.txt	/*E113*
E114	eval.txt	/*E114*
E115	eval.txt	/*E115*
E116	eval.txt	/*E116*
E117	eval.txt	/*E117*
E118	eval.txt	/*E118*
E119	eval.txt	/*E119*
E12	message.txt	/*E12*
E120	eval.txt	/*E120*
E121	eval.txt	/*E121*
E122	eval.txt	/*E122*
E123	eval.txt	/*E123*
E124	eval.txt	/*E124*
E125	eval.txt	/*E125*
E126	eval.txt	/*E126*
E127	eval.txt	/*E127*
E128	eval.txt	/*E128*
E129	eval.txt	/*E129*
E13	message.txt	/*E13*
E130	eval.txt	/*E130*
E131	eval.txt	/*E131*
E132	eval.txt	/*E132*
E133	eval.txt	/*E133*
E134	change.txt	/*E134*
E135	autocmd.txt	/*E135*
E136	starting.txt	/*E136*
E137	starting.txt	/*E137*
E138	starting.txt	/*E138*
E139	message.txt	/*E139*
E14	cmdline.txt	/*E14*
E140	message.txt	/*E140*
E141	message.txt	/*E141*
E142	message.txt	/*E142*
E143	autocmd.txt	/*E143*
E144	various.txt	/*E144*
E145	starting.txt	/*E145*
E146	change.txt	/*E146*
E147	repeat.txt	/*E147*
E148	repeat.txt	/*E148*
E149	helphelp.txt	/*E149*
E15	eval.txt	/*E15*
E150	helphelp.txt	/*E150*
E151	helphelp.txt	/*E151*
E152	helphelp.txt	/*E152*
E153	helphelp.txt	/*E153*
E154	helphelp.txt	/*E154*
E155	sign.txt	/*E155*
E156	sign.txt	/*E156*
E157	sign.txt	/*E157*
E158	sign.txt	/*E158*
E159	sign.txt	/*E159*
E16	cmdline.txt	/*E16*
E160	sign.txt	/*E160*
E161	repeat.txt	/*E161*
E162	message.txt	/*E162*
E163	editing.txt	/*E163*
E164	editing.txt	/*E164*
E165	editing.txt	/*E165*
E166	message.txt	/*E166*
E167	repeat.txt	/*E167*
E168	repeat.txt	/*E168*
E169	message.txt	/*E169*
E17	message.txt	/*E17*
E170	eval.txt	/*E170*
E171	eval.txt	/*E171*
E173	message.txt	/*E173*
E174	map.txt	/*E174*
E175	map.txt	/*E175*
E176	map.txt	/*E176*
E177	map.txt	/*E177*
E178	map.txt	/*E178*
E179	map.txt	/*E179*
E18	eval.txt	/*E18*
E180	map.txt	/*E180*
E181	map.txt	/*E181*
E182	map.txt	/*E182*
E183	map.txt	/*E183*
E184	map.txt	/*E184*
E185	syntax.txt	/*E185*
E186	editing.txt	/*E186*
E187	editing.txt	/*E187*
E188	gui.txt	/*E188*
E189	message.txt	/*E189*
E19	message.txt	/*E19*
E190	message.txt	/*E190*
E191	motion.txt	/*E191*
E192	message.txt	/*E192*
E193	eval.txt	/*E193*
E194	message.txt	/*E194*
E195	starting.txt	/*E195*
E196	various.txt	/*E196*
E197	mlang.txt	/*E197*
E198	options.txt	/*E198*
E199	cmdline.txt	/*E199*
E20	motion.txt	/*E20*
E200	autocmd.txt	/*E200*
E201	autocmd.txt	/*E201*
E202	options.txt	/*E202*
E203	autocmd.txt	/*E203*
E204	autocmd.txt	/*E204*
E205	options.txt	/*E205*
E206	options.txt	/*E206*
E207	editing.txt	/*E207*
E208	message.txt	/*E208*
E209	message.txt	/*E209*
E21	options.txt	/*E21*
E210	message.txt	/*E210*
E211	message.txt	/*E211*
E212	message.txt	/*E212*
E213	options.txt	/*E213*
E214	options.txt	/*E214*
E215	autocmd.txt	/*E215*
E216	autocmd.txt	/*E216*
E217	autocmd.txt	/*E217*
E218	autocmd.txt	/*E218*
E219	message.txt	/*E219*
E22	message.txt	/*E22*
E220	message.txt	/*E220*
E222	message.txt	/*E222*
E223	options.txt	/*E223*
E224	map.txt	/*E224*
E225	map.txt	/*E225*
E226	map.txt	/*E226*
E227	map.txt	/*E227*
E228	message.txt	/*E228*
E229	gui.txt	/*E229*
E23	message.txt	/*E23*
E230	starting.txt	/*E230*
E231	options.txt	/*E231*
E232	message.txt	/*E232*
E233	gui.txt	/*E233*
E234	options.txt	/*E234*
E235	options.txt	/*E235*
E236	options.txt	/*E236*
E237	print.txt	/*E237*
E238	print.txt	/*E238*
E239	sign.txt	/*E239*
E24	message.txt	/*E24*
E240	remote.txt	/*E240*
E241	eval.txt	/*E241*
E243	if_ole.txt	/*E243*
E244	options.txt	/*E244*
E245	options.txt	/*E245*
E246	autocmd.txt	/*E246*
E247	remote.txt	/*E247*
E248	remote.txt	/*E248*
E25	message.txt	/*E25*
E250	options.txt	/*E250*
E251	remote.txt	/*E251*
E252	options.txt	/*E252*
E253	mbyte.txt	/*E253*
E254	message.txt	/*E254*
E255	sign.txt	/*E255*
E256	message.txt	/*E256*
E257	if_cscop.txt	/*E257*
E258	remote.txt	/*E258*
E259	if_cscop.txt	/*E259*
E26	rileft.txt	/*E26*
E261	if_cscop.txt	/*E261*
E262	if_cscop.txt	/*E262*
E263	if_pyth.txt	/*E263*
E264	if_pyth.txt	/*E264*
E265	if_ruby.txt	/*E265*
E266	if_ruby.txt	/*E266*
E267	if_ruby.txt	/*E267*
E268	if_ruby.txt	/*E268*
E269	if_ruby.txt	/*E269*
E27	farsi.txt	/*E27*
E270	if_ruby.txt	/*E270*
E271	if_ruby.txt	/*E271*
E272	if_ruby.txt	/*E272*
E273	if_ruby.txt	/*E273*
E277	remote.txt	/*E277*
E28	syntax.txt	/*E28*
E280	if_tcl.txt	/*E280*
E282	starting.txt	/*E282*
E283	motion.txt	/*E283*
E284	mbyte.txt	/*E284*
E285	mbyte.txt	/*E285*
E286	mbyte.txt	/*E286*
E287	mbyte.txt	/*E287*
E288	mbyte.txt	/*E288*
E289	mbyte.txt	/*E289*
E29	change.txt	/*E29*
E293	message.txt	/*E293*
E294	message.txt	/*E294*
E295	message.txt	/*E295*
E296	message.txt	/*E296*
E297	message.txt	/*E297*
E298	message.txt	/*E298*
E299	if_perl.txt	/*E299*
E30	change.txt	/*E30*
E300	message.txt	/*E300*
E301	message.txt	/*E301*
E302	message.txt	/*E302*
E303	message.txt	/*E303*
E304	message.txt	/*E304*
E305	recover.txt	/*E305*
E306	recover.txt	/*E306*
E307	recover.txt	/*E307*
E308	recover.txt	/*E308*
E309	recover.txt	/*E309*
E31	message.txt	/*E31*
E310	recover.txt	/*E310*
E311	recover.txt	/*E311*
E312	recover.txt	/*E312*
E313	recover.txt	/*E313*
E314	recover.txt	/*E314*
E315	message.txt	/*E315*
E316	message.txt	/*E316*
E317	message.txt	/*E317*
E318	message.txt	/*E318*
E319	message.txt	/*E319*
E32	message.txt	/*E32*
E320	message.txt	/*E320*
E321	editing.txt	/*E321*
E322	message.txt	/*E322*
E323	message.txt	/*E323*
E324	print.txt	/*E324*
E325	usr_11.txt	/*E325*
E326	recover.txt	/*E326*
E327	gui.txt	/*E327*
E328	gui.txt	/*E328*
E329	gui.txt	/*E329*
E33	message.txt	/*E33*
E330	gui.txt	/*E330*
E331	gui.txt	/*E331*
E332	gui.txt	/*E332*
E333	gui.txt	/*E333*
E334	gui.txt	/*E334*
E335	gui.txt	/*E335*
E336	gui.txt	/*E336*
E337	gui.txt	/*E337*
E338	editing.txt	/*E338*
E339	message.txt	/*E339*
E34	various.txt	/*E34*
E340	vi_diff.txt	/*E340*
E341	message.txt	/*E341*
E342	message.txt	/*E342*
E343	options.txt	/*E343*
E344	options.txt	/*E344*
E345	options.txt	/*E345*
E346	options.txt	/*E346*
E347	options.txt	/*E347*
E348	pattern.txt	/*E348*
E349	pattern.txt	/*E349*
E35	message.txt	/*E35*
E350	fold.txt	/*E350*
E351	fold.txt	/*E351*
E352	fold.txt	/*E352*
E353	change.txt	/*E353*
E354	change.txt	/*E354*
E355	options.txt	/*E355*
E356	message.txt	/*E356*
E357	options.txt	/*E357*
E358	options.txt	/*E358*
E359	term.txt	/*E359*
E36	windows.txt	/*E36*
E360	various.txt	/*E360*
E363	options.txt	/*E363*
E364	eval.txt	/*E364*
E365	print.txt	/*E365*
E367	autocmd.txt	/*E367*
E368	eval.txt	/*E368*
E369	pattern.txt	/*E369*
E37	message.txt	/*E37*
E370	various.txt	/*E370*
E371	various.txt	/*E371*
E372	quickfix.txt	/*E372*
E373	quickfix.txt	/*E373*
E374	quickfix.txt	/*E374*
E375	quickfix.txt	/*E375*
E376	quickfix.txt	/*E376*
E377	quickfix.txt	/*E377*
E378	quickfix.txt	/*E378*
E379	quickfix.txt	/*E379*
E38	message.txt	/*E38*
E380	quickfix.txt	/*E380*
E381	quickfix.txt	/*E381*
E382	options.txt	/*E382*
E383	pattern.txt	/*E383*
E384	options.txt	/*E384*
E385	options.txt	/*E385*
E386	pattern.txt	/*E386*
E387	tagsrch.txt	/*E387*
E388	tagsrch.txt	/*E388*
E389	tagsrch.txt	/*E389*
E39	digraph.txt	/*E39*
E390	syntax.txt	/*E390*
E391	syntax.txt	/*E391*
E392	syntax.txt	/*E392*
E393	syntax.txt	/*E393*
E394	syntax.txt	/*E394*
E395	syntax.txt	/*E395*
E397	syntax.txt	/*E397*
E398	syntax.txt	/*E398*
E399	syntax.txt	/*E399*
E40	message.txt	/*E40*
E400	syntax.txt	/*E400*
E401	syntax.txt	/*E401*
E402	syntax.txt	/*E402*
E403	syntax.txt	/*E403*
E404	syntax.txt	/*E404*
E405	syntax.txt	/*E405*
E406	syntax.txt	/*E406*
E407	syntax.txt	/*E407*
E408	syntax.txt	/*E408*
E409	syntax.txt	/*E409*
E41	message.txt	/*E41*
E410	syntax.txt	/*E410*
E411	syntax.txt	/*E411*
E412	syntax.txt	/*E412*
E413	syntax.txt	/*E413*
E414	syntax.txt	/*E414*
E415	syntax.txt	/*E415*
E416	syntax.txt	/*E416*
E417	syntax.txt	/*E417*
E418	syntax.txt	/*E418*
E419	syntax.txt	/*E419*
E42	quickfix.txt	/*E42*
E420	syntax.txt	/*E420*
E421	syntax.txt	/*E421*
E422	syntax.txt	/*E422*
E423	syntax.txt	/*E423*
E424	message.txt	/*E424*
E425	tagsrch.txt	/*E425*
E426	tagsrch.txt	/*E426*
E427	tagsrch.txt	/*E427*
E428	tagsrch.txt	/*E428*
E429	tagsrch.txt	/*E429*
E43	message.txt	/*E43*
E430	tagsrch.txt	/*E430*
E431	tagsrch.txt	/*E431*
E432	message.txt	/*E432*
E433	options.txt	/*E433*
E434	tagsrch.txt	/*E434*
E435	tagsrch.txt	/*E435*
E436	term.txt	/*E436*
E437	term.txt	/*E437*
E438	message.txt	/*E438*
E439	message.txt	/*E439*
E44	message.txt	/*E44*
E440	message.txt	/*E440*
E441	windows.txt	/*E441*
E442	windows.txt	/*E442*
E443	windows.txt	/*E443*
E444	windows.txt	/*E444*
E445	windows.txt	/*E445*
E446	editing.txt	/*E446*
E447	editing.txt	/*E447*
E448	various.txt	/*E448*
E449	eval.txt	/*E449*
E45	message.txt	/*E45*
E455	print.txt	/*E455*
E456	print.txt	/*E456*
E457	print.txt	/*E457*
E458	message.txt	/*E458*
E459	message.txt	/*E459*
E46	message.txt	/*E46*
E460	message.txt	/*E460*
E461	eval.txt	/*E461*
E462	editing.txt	/*E462*
E463	netbeans.txt	/*E463*
E464	message.txt	/*E464*
E465	gui.txt	/*E465*
E466	gui.txt	/*E466*
E467	map.txt	/*E467*
E468	map.txt	/*E468*
E469	if_cscop.txt	/*E469*
E47	message.txt	/*E47*
E470	change.txt	/*E470*
E471	message.txt	/*E471*
E472	editing.txt	/*E472*
E473	message.txt	/*E473*
E474	message.txt	/*E474*
E475	message.txt	/*E475*
E476	pattern.txt	/*E476*
E477	message.txt	/*E477*
E478	message.txt	/*E478*
E479	editing.txt	/*E479*
E48	eval.txt	/*E48*
E480	editing.txt	/*E480*
E481	message.txt	/*E481*
E482	message.txt	/*E482*
E483	message.txt	/*E483*
E484	message.txt	/*E484*
E485	message.txt	/*E485*
E486	pattern.txt	/*E486*
E487	options.txt	/*E487*
E488	message.txt	/*E488*
E49	message.txt	/*E49*
E490	fold.txt	/*E490*
E492	message.txt	/*E492*
E493	cmdline.txt	/*E493*
E494	editing.txt	/*E494*
E495	cmdline.txt	/*E495*
E496	cmdline.txt	/*E496*
E497	cmdline.txt	/*E497*
E498	cmdline.txt	/*E498*
E499	cmdline.txt	/*E499*
E50	syntax.txt	/*E50*
E500	cmdline.txt	/*E500*
E501	intro.txt	/*E501*
E502	editing.txt	/*E502*
E503	editing.txt	/*E503*
E504	editing.txt	/*E504*
E505	editing.txt	/*E505*
E506	editing.txt	/*E506*
E507	editing.txt	/*E507*
E508	editing.txt	/*E508*
E509	editing.txt	/*E509*
E51	pattern.txt	/*E51*
E510	editing.txt	/*E510*
E511	netbeans.txt	/*E511*
E512	editing.txt	/*E512*
E513	options.txt	/*E513*
E514	editing.txt	/*E514*
E515	windows.txt	/*E515*
E516	windows.txt	/*E516*
E517	windows.txt	/*E517*
E518	options.txt	/*E518*
E519	options.txt	/*E519*
E52	syntax.txt	/*E52*
E520	options.txt	/*E520*
E521	options.txt	/*E521*
E522	options.txt	/*E522*
E523	options.txt	/*E523*
E524	options.txt	/*E524*
E525	options.txt	/*E525*
E526	options.txt	/*E526*
E527	options.txt	/*E527*
E528	options.txt	/*E528*
E529	options.txt	/*E529*
E53	pattern.txt	/*E53*
E530	options.txt	/*E530*
E531	options.txt	/*E531*
E532	netbeans.txt	/*E532*
E533	options.txt	/*E533*
E534	options.txt	/*E534*
E535	options.txt	/*E535*
E536	options.txt	/*E536*
E537	options.txt	/*E537*
E538	options.txt	/*E538*
E539	options.txt	/*E539*
E54	pattern.txt	/*E54*
E540	options.txt	/*E540*
E541	options.txt	/*E541*
E542	options.txt	/*E542*
E543	options.txt	/*E543*
E544	options.txt	/*E544*
E545	options.txt	/*E545*
E546	options.txt	/*E546*
E547	options.txt	/*E547*
E548	options.txt	/*E548*
E549	options.txt	/*E549*
E55	pattern.txt	/*E55*
E550	options.txt	/*E550*
E551	options.txt	/*E551*
E552	options.txt	/*E552*
E553	quickfix.txt	/*E553*
E554	pattern.txt	/*E554*
E555	tagsrch.txt	/*E555*
E556	tagsrch.txt	/*E556*
E557	term.txt	/*E557*
E558	term.txt	/*E558*
E559	term.txt	/*E559*
E560	if_cscop.txt	/*E560*
E561	if_cscop.txt	/*E561*
E562	if_cscop.txt	/*E562*
E563	if_cscop.txt	/*E563*
E564	if_cscop.txt	/*E564*
E566	if_cscop.txt	/*E566*
E567	if_cscop.txt	/*E567*
E568	if_cscop.txt	/*E568*
E570	message.txt	/*E570*
E571	if_tcl.txt	/*E571*
E572	if_tcl.txt	/*E572*
E573	remote.txt	/*E573*
E574	starting.txt	/*E574*
E575	starting.txt	/*E575*
E576	starting.txt	/*E576*
E577	starting.txt	/*E577*
E579	eval.txt	/*E579*
E580	eval.txt	/*E580*
E581	eval.txt	/*E581*
E582	eval.txt	/*E582*
E583	eval.txt	/*E583*
E584	eval.txt	/*E584*
E585	eval.txt	/*E585*
E586	eval.txt	/*E586*
E587	eval.txt	/*E587*
E588	eval.txt	/*E588*
E589	options.txt	/*E589*
E59	pattern.txt	/*E59*
E590	options.txt	/*E590*
E591	options.txt	/*E591*
E592	options.txt	/*E592*
E593	options.txt	/*E593*
E594	options.txt	/*E594*
E595	options.txt	/*E595*
E596	options.txt	/*E596*
E597	options.txt	/*E597*
E598	options.txt	/*E598*
E599	options.txt	/*E599*
E60	pattern.txt	/*E60*
E600	eval.txt	/*E600*
E601	eval.txt	/*E601*
E602	eval.txt	/*E602*
E603	eval.txt	/*E603*
E604	eval.txt	/*E604*
E605	eval.txt	/*E605*
E606	eval.txt	/*E606*
E607	eval.txt	/*E607*
E608	eval.txt	/*E608*
E609	if_cscop.txt	/*E609*
E61	pattern.txt	/*E61*
E612	sign.txt	/*E612*
E613	print.txt	/*E613*
E614	editing.txt	/*E614*
E615	editing.txt	/*E615*
E616	editing.txt	/*E616*
E617	options.txt	/*E617*
E618	print.txt	/*E618*
E619	print.txt	/*E619*
E62	pattern.txt	/*E62*
E620	print.txt	/*E620*
E621	print.txt	/*E621*
E622	if_cscop.txt	/*E622*
E623	if_cscop.txt	/*E623*
E624	print.txt	/*E624*
E625	if_cscop.txt	/*E625*
E626	if_cscop.txt	/*E626*
E627	netbeans.txt	/*E627*
E628	netbeans.txt	/*E628*
E629	netbeans.txt	/*E629*
E63	pattern.txt	/*E63*
E630	channel.txt	/*E630*
E631	channel.txt	/*E631*
E632	netbeans.txt	/*E632*
E633	netbeans.txt	/*E633*
E634	netbeans.txt	/*E634*
E635	netbeans.txt	/*E635*
E636	netbeans.txt	/*E636*
E637	netbeans.txt	/*E637*
E638	netbeans.txt	/*E638*
E639	netbeans.txt	/*E639*
E64	pattern.txt	/*E64*
E640	netbeans.txt	/*E640*
E641	netbeans.txt	/*E641*
E642	netbeans.txt	/*E642*
E643	netbeans.txt	/*E643*
E644	netbeans.txt	/*E644*
E645	netbeans.txt	/*E645*
E646	netbeans.txt	/*E646*
E647	netbeans.txt	/*E647*
E648	netbeans.txt	/*E648*
E649	netbeans.txt	/*E649*
E65	pattern.txt	/*E65*
E650	netbeans.txt	/*E650*
E651	netbeans.txt	/*E651*
E652	netbeans.txt	/*E652*
E655	eval.txt	/*E655*
E656	netbeans.txt	/*E656*
E657	netbeans.txt	/*E657*
E658	netbeans.txt	/*E658*
E659	if_pyth.txt	/*E659*
E66	syntax.txt	/*E66*
E660	netbeans.txt	/*E660*
E661	helphelp.txt	/*E661*
E662	motion.txt	/*E662*
E663	motion.txt	/*E663*
E664	motion.txt	/*E664*
E665	gui_x11.txt	/*E665*
E666	quickfix.txt	/*E666*
E667	editing.txt	/*E667*
E668	netbeans.txt	/*E668*
E669	syntax.txt	/*E669*
E67	syntax.txt	/*E67*
E670	helphelp.txt	/*E670*
E671	starting.txt	/*E671*
E672	starting.txt	/*E672*
E673	print.txt	/*E673*
E674	print.txt	/*E674*
E675	print.txt	/*E675*
E676	options.txt	/*E676*
E677	eval.txt	/*E677*
E678	pattern.txt	/*E678*
E679	syntax.txt	/*E679*
E68	pattern.txt	/*E68*
E680	autocmd.txt	/*E680*
E681	quickfix.txt	/*E681*
E682	quickfix.txt	/*E682*
E683	quickfix.txt	/*E683*
E684	eval.txt	/*E684*
E685	message.txt	/*E685*
E686	eval.txt	/*E686*
E687	eval.txt	/*E687*
E688	eval.txt	/*E688*
E689	eval.txt	/*E689*
E69	pattern.txt	/*E69*
E690	eval.txt	/*E690*
E691	eval.txt	/*E691*
E692	eval.txt	/*E692*
E694	eval.txt	/*E694*
E695	eval.txt	/*E695*
E696	eval.txt	/*E696*
E697	eval.txt	/*E697*
E698	eval.txt	/*E698*
E699	eval.txt	/*E699*
E70	pattern.txt	/*E70*
E700	eval.txt	/*E700*
E701	eval.txt	/*E701*
E702	eval.txt	/*E702*
E703	eval.txt	/*E703*
E704	eval.txt	/*E704*
E705	eval.txt	/*E705*
E707	eval.txt	/*E707*
E708	eval.txt	/*E708*
E709	eval.txt	/*E709*
E71	pattern.txt	/*E71*
E710	eval.txt	/*E710*
E711	eval.txt	/*E711*
E712	eval.txt	/*E712*
E713	eval.txt	/*E713*
E714	eval.txt	/*E714*
E715	eval.txt	/*E715*
E716	eval.txt	/*E716*
E717	eval.txt	/*E717*
E718	eval.txt	/*E718*
E719	eval.txt	/*E719*
E72	message.txt	/*E72*
E720	eval.txt	/*E720*
E721	eval.txt	/*E721*
E722	eval.txt	/*E722*
E723	eval.txt	/*E723*
E724	eval.txt	/*E724*
E725	eval.txt	/*E725*
E726	eval.txt	/*E726*
E727	eval.txt	/*E727*
E728	eval.txt	/*E728*
E729	eval.txt	/*E729*
E73	tagsrch.txt	/*E73*
E730	eval.txt	/*E730*
E731	eval.txt	/*E731*
E732	eval.txt	/*E732*
E733	eval.txt	/*E733*
E734	eval.txt	/*E734*
E735	eval.txt	/*E735*
E736	eval.txt	/*E736*
E737	eval.txt	/*E737*
E738	eval.txt	/*E738*
E739	eval.txt	/*E739*
E74	message.txt	/*E74*
E740	eval.txt	/*E740*
E741	eval.txt	/*E741*
E742	eval.txt	/*E742*
E743	eval.txt	/*E743*
E744	netbeans.txt	/*E744*
E745	eval.txt	/*E745*
E746	eval.txt	/*E746*
E747	editing.txt	/*E747*
E748	repeat.txt	/*E748*
E749	various.txt	/*E749*
E75	vi_diff.txt	/*E75*
E750	repeat.txt	/*E750*
E751	spell.txt	/*E751*
E752	spell.txt	/*E752*
E753	spell.txt	/*E753*
E754	spell.txt	/*E754*
E755	spell.txt	/*E755*
E756	spell.txt	/*E756*
E757	options.txt	/*E757*
E758	spell.txt	/*E758*
E759	spell.txt	/*E759*
E76	pattern.txt	/*E76*
E760	spell.txt	/*E760*
E761	spell.txt	/*E761*
E762	spell.txt	/*E762*
E763	spell.txt	/*E763*
E764	options.txt	/*E764*
E765	options.txt	/*E765*
E766	eval.txt	/*E766*
E767	eval.txt	/*E767*
E768	message.txt	/*E768*
E769	pattern.txt	/*E769*
E77	message.txt	/*E77*
E770	spell.txt	/*E770*
E771	spell.txt	/*E771*
E772	spell.txt	/*E772*
E773	recover.txt	/*E773*
E774	map.txt	/*E774*
E775	map.txt	/*E775*
E776	quickfix.txt	/*E776*
E777	quickfix.txt	/*E777*
E778	spell.txt	/*E778*
E779	spell.txt	/*E779*
E78	motion.txt	/*E78*
E780	spell.txt	/*E780*
E781	spell.txt	/*E781*
E782	spell.txt	/*E782*
E783	spell.txt	/*E783*
E784	tabpage.txt	/*E784*
E785	eval.txt	/*E785*
E786	eval.txt	/*E786*
E787	diff.txt	/*E787*
E788	autocmd.txt	/*E788*
E789	syntax.txt	/*E789*
E79	message.txt	/*E79*
E790	undo.txt	/*E790*
E791	mbyte.txt	/*E791*
E792	gui.txt	/*E792*
E793	diff.txt	/*E793*
E794	eval.txt	/*E794*
E795	eval.txt	/*E795*
E796	editing.txt	/*E796*
E797	spell.txt	/*E797*
E798	eval.txt	/*E798*
E799	eval.txt	/*E799*
E80	message.txt	/*E80*
E800	arabic.txt	/*E800*
E801	eval.txt	/*E801*
E802	eval.txt	/*E802*
E803	eval.txt	/*E803*
E804	eval.txt	/*E804*
E805	eval.txt	/*E805*
E806	eval.txt	/*E806*
E807	eval.txt	/*E807*
E808	eval.txt	/*E808*
E809	cmdline.txt	/*E809*
E81	map.txt	/*E81*
E810	diff.txt	/*E810*
E811	autocmd.txt	/*E811*
E812	autocmd.txt	/*E812*
E813	editing.txt	/*E813*
E814	editing.txt	/*E814*
E815	if_mzsch.txt	/*E815*
E816	diff.txt	/*E816*
E817	editing.txt	/*E817*
E818	editing.txt	/*E818*
E819	editing.txt	/*E819*
E82	message.txt	/*E82*
E820	editing.txt	/*E820*
E821	options.txt	/*E821*
E822	undo.txt	/*E822*
E823	undo.txt	/*E823*
E824	undo.txt	/*E824*
E825	undo.txt	/*E825*
E826	undo.txt	/*E826*
E827	undo.txt	/*E827*
E828	undo.txt	/*E828*
E829	undo.txt	/*E829*
E83	message.txt	/*E83*
E830	undo.txt	/*E830*
E831	editing.txt	/*E831*
E832	undo.txt	/*E832*
E833	editing.txt	/*E833*
E834	options.txt	/*E834*
E835	options.txt	/*E835*
E836	if_pyth.txt	/*E836*
E837	if_pyth.txt	/*E837*
E838	netbeans.txt	/*E838*
E839	insert.txt	/*E839*
E84	windows.txt	/*E84*
E840	insert.txt	/*E840*
E841	map.txt	/*E841*
E842	cmdline.txt	/*E842*
E843	editing.txt	/*E843*
E844	syntax.txt	/*E844*
E845	spell.txt	/*E845*
E846	options.txt	/*E846*
E847	syntax.txt	/*E847*
E848	syntax.txt	/*E848*
E849	syntax.txt	/*E849*
E85	options.txt	/*E85*
E850	change.txt	/*E850*
E851	gui_x11.txt	/*E851*
E852	gui_x11.txt	/*E852*
E853	eval.txt	/*E853*
E854	options.txt	/*E854*
E855	autocmd.txt	/*E855*
E858	eval.txt	/*E858*
E859	eval.txt	/*E859*
E86	windows.txt	/*E86*
E862	eval.txt	/*E862*
E864	pattern.txt	/*E864*
E865	pattern.txt	/*E865*
E866	pattern.txt	/*E866*
E867	pattern.txt	/*E867*
E868	pattern.txt	/*E868*
E869	pattern.txt	/*E869*
E87	windows.txt	/*E87*
E870	pattern.txt	/*E870*
E871	pattern.txt	/*E871*
E872	pattern.txt	/*E872*
E873	pattern.txt	/*E873*
E874	pattern.txt	/*E874*
E875	pattern.txt	/*E875*
E876	pattern.txt	/*E876*
E877	pattern.txt	/*E877*
E878	pattern.txt	/*E878*
E879	syntax.txt	/*E879*
E88	windows.txt	/*E88*
E880	if_pyth.txt	/*E880*
E881	autocmd.txt	/*E881*
E882	eval.txt	/*E882*
E883	eval.txt	/*E883*
E884	eval.txt	/*E884*
E885	sign.txt	/*E885*
E886	starting.txt	/*E886*
E887	if_pyth.txt	/*E887*
E888	pattern.txt	/*E888*
E89	message.txt	/*E89*
E890	syntax.txt	/*E890*
E891	eval.txt	/*E891*
E892	eval.txt	/*E892*
E893	eval.txt	/*E893*
E894	eval.txt	/*E894*
E895	if_mzsch.txt	/*E895*
E898	channel.txt	/*E898*
E90	message.txt	/*E90*
E901	channel.txt	/*E901*
E902	channel.txt	/*E902*
E903	channel.txt	/*E903*
E904	channel.txt	/*E904*
E905	channel.txt	/*E905*
E906	channel.txt	/*E906*
E907	eval.txt	/*E907*
E908	eval.txt	/*E908*
E909	eval.txt	/*E909*
E91	options.txt	/*E91*
E910	eval.txt	/*E910*
E911	eval.txt	/*E911*
E912	eval.txt	/*E912*
E913	eval.txt	/*E913*
E914	eval.txt	/*E914*
E915	channel.txt	/*E915*
E916	eval.txt	/*E916*
E917	eval.txt	/*E917*
E918	channel.txt	/*E918*
E919	repeat.txt	/*E919*
E92	message.txt	/*E92*
E920	channel.txt	/*E920*
E921	channel.txt	/*E921*
E922	eval.txt	/*E922*
E923	eval.txt	/*E923*
E924	quickfix.txt	/*E924*
E925	quickfix.txt	/*E925*
E926	quickfix.txt	/*E926*
E927	eval.txt	/*E927*
E928	eval.txt	/*E928*
E929	starting.txt	/*E929*
E93	windows.txt	/*E93*
E930	eval.txt	/*E930*
E931	message.txt	/*E931*
E932	eval.txt	/*E932*
E933	eval.txt	/*E933*
E934	sign.txt	/*E934*
E935	eval.txt	/*E935*
E936	autocmd.txt	/*E936*
E937	autocmd.txt	/*E937*
E938	eval.txt	/*E938*
E939	change.txt	/*E939*
E94	windows.txt	/*E94*
E940	eval.txt	/*E940*
E941	eval.txt	/*E941*
E942	eval.txt	/*E942*
E943	message.txt	/*E943*
E944	pattern.txt	/*E944*
E945	pattern.txt	/*E945*
E946	terminal.txt	/*E946*
E947	terminal.txt	/*E947*
E948	terminal.txt	/*E948*
E949	editing.txt	/*E949*
E95	message.txt	/*E95*
E950	message.txt	/*E950*
E951	pattern.txt	/*E951*
E952	autocmd.txt	/*E952*
E953	eval.txt	/*E953*
E954	options.txt	/*E954*
E955	eval.txt	/*E955*
E96	diff.txt	/*E96*
E97	diff.txt	/*E97*
E98	diff.txt	/*E98*
E981	starting.txt	/*E981*
E99	diff.txt	/*E99*
EX	intro.txt	/*EX*
EXINIT	starting.txt	/*EXINIT*
Elvis	intro.txt	/*Elvis*
EncodingChanged	autocmd.txt	/*EncodingChanged*
Eterm	syntax.txt	/*Eterm*
Ex	intro.txt	/*Ex*
Ex-mode	intro.txt	/*Ex-mode*
ExitPre	autocmd.txt	/*ExitPre*
Exuberant_ctags	tagsrch.txt	/*Exuberant_ctags*
F	motion.txt	/*F*
FALSE	eval.txt	/*FALSE*
FAQ	intro.txt	/*FAQ*
Farsi	farsi.txt	/*Farsi*
FileAppendCmd	autocmd.txt	/*FileAppendCmd*
FileAppendPost	autocmd.txt	/*FileAppendPost*
FileAppendPre	autocmd.txt	/*FileAppendPre*
FileChangedRO	autocmd.txt	/*FileChangedRO*
FileChangedShell	autocmd.txt	/*FileChangedShell*
FileChangedShellPost	autocmd.txt	/*FileChangedShellPost*
FileEncoding	autocmd.txt	/*FileEncoding*
FileReadCmd	autocmd.txt	/*FileReadCmd*
FileReadPost	autocmd.txt	/*FileReadPost*
FileReadPre	autocmd.txt	/*FileReadPre*
FileType	autocmd.txt	/*FileType*
FileWriteCmd	autocmd.txt	/*FileWriteCmd*
FileWritePost	autocmd.txt	/*FileWritePost*
FileWritePre	autocmd.txt	/*FileWritePre*
FilterReadPost	autocmd.txt	/*FilterReadPost*
FilterReadPre	autocmd.txt	/*FilterReadPre*
FilterWritePost	autocmd.txt	/*FilterWritePost*
FilterWritePre	autocmd.txt	/*FilterWritePre*
Float	eval.txt	/*Float*
FocusGained	autocmd.txt	/*FocusGained*
FocusLost	autocmd.txt	/*FocusLost*
Folding	fold.txt	/*Folding*
FuncUndefined	autocmd.txt	/*FuncUndefined*
Funcref	eval.txt	/*Funcref*
G	motion.txt	/*G*
GNOME	gui_x11.txt	/*GNOME*
GTK	gui_x11.txt	/*GTK*
GTK+	gui_x11.txt	/*GTK+*
GTK3	gui_x11.txt	/*GTK3*
GUI	gui.txt	/*GUI*
GUI-X11	gui_x11.txt	/*GUI-X11*
GUIEnter	autocmd.txt	/*GUIEnter*
GUIFailed	autocmd.txt	/*GUIFailed*
GetLatestVimScripts	pi_getscript.txt	/*GetLatestVimScripts*
GetLatestVimScripts-copyright	pi_getscript.txt	/*GetLatestVimScripts-copyright*
GetLatestVimScripts_dat	pi_getscript.txt	/*GetLatestVimScripts_dat*
Gnome	gui_x11.txt	/*Gnome*
H	motion.txt	/*H*
I	insert.txt	/*I*
ICCF	uganda.txt	/*ICCF*
IM-server	mbyte.txt	/*IM-server*
IME	mbyte.txt	/*IME*
Insert	insert.txt	/*Insert*
Insert-mode	insert.txt	/*Insert-mode*
InsertChange	autocmd.txt	/*InsertChange*
InsertCharPre	autocmd.txt	/*InsertCharPre*
InsertEnter	autocmd.txt	/*InsertEnter*
InsertLeave	autocmd.txt	/*InsertLeave*
J	change.txt	/*J*
Japanese	mbyte.txt	/*Japanese*
Job	eval.txt	/*Job*
Jobs	eval.txt	/*Jobs*
K	various.txt	/*K*
KDE	gui_x11.txt	/*KDE*
KVim	gui_x11.txt	/*KVim*
Kibaale	uganda.txt	/*Kibaale*
Korean	mbyte.txt	/*Korean*
L	motion.txt	/*L*
Linux-backspace	options.txt	/*Linux-backspace*
List	eval.txt	/*List*
Lists	eval.txt	/*Lists*
LogiPat()	pi_logipat.txt	/*LogiPat()*
LogiPat-flags	pi_logipat.txt	/*LogiPat-flags*
Lua	if_lua.txt	/*Lua*
M	motion.txt	/*M*
MDI	starting.txt	/*MDI*
MS-DOS	os_msdos.txt	/*MS-DOS*
MS-Windows	os_win32.txt	/*MS-Windows*
MSDOS	os_msdos.txt	/*MSDOS*
MSVisualStudio	if_ole.txt	/*MSVisualStudio*
MVS	os_390.txt	/*MVS*
Mac	os_mac.txt	/*Mac*
Mac-format	editing.txt	/*Mac-format*
Mac-format-write	editing.txt	/*Mac-format-write*
Macintosh	os_mac.txt	/*Macintosh*
Mark	motion.txt	/*Mark*
MenuPopup	autocmd.txt	/*MenuPopup*
MiNT	os_mint.txt	/*MiNT*
Moolenaar	intro.txt	/*Moolenaar*
MorphOS	os_amiga.txt	/*MorphOS*
Motif	gui_x11.txt	/*Motif*
Myspell	spell.txt	/*Myspell*
MzScheme	if_mzsch.txt	/*MzScheme*
N	pattern.txt	/*N*
N%	motion.txt	/*N%*
N:	cmdline.txt	/*N:*
N<Del>	various.txt	/*N<Del>*
NFA	pattern.txt	/*NFA*
NL-used-for-Nul	pattern.txt	/*NL-used-for-Nul*
NetBSD-backspace	options.txt	/*NetBSD-backspace*
NetUserPass()	pi_netrw.txt	/*NetUserPass()*
Normal	intro.txt	/*Normal*
Normal-mode	intro.txt	/*Normal-mode*
Number	eval.txt	/*Number*
Nvi	intro.txt	/*Nvi*
O	insert.txt	/*O*
OS/2	os_os2.txt	/*OS\/2*
OS2	os_os2.txt	/*OS2*
OS390	os_390.txt	/*OS390*
OS390-Motif	os_390.txt	/*OS390-Motif*
OS390-PuTTY	os_390.txt	/*OS390-PuTTY*
OS390-bugs	os_390.txt	/*OS390-bugs*
OS390-has-ebcdic	os_390.txt	/*OS390-has-ebcdic*
OS390-limitations	os_390.txt	/*OS390-limitations*
OS390-open-source	os_390.txt	/*OS390-open-source*
OffTheSpot	mbyte.txt	/*OffTheSpot*
OnTheSpot	mbyte.txt	/*OnTheSpot*
Operator-pending	intro.txt	/*Operator-pending*
Operator-pending-mode	intro.txt	/*Operator-pending-mode*
OptionSet	autocmd.txt	/*OptionSet*
OverTheSpot	mbyte.txt	/*OverTheSpot*
P	change.txt	/*P*
PATHEXT	eval.txt	/*PATHEXT*
PEP8	filetype.txt	/*PEP8*
PHP_BracesAtCodeLevel	indent.txt	/*PHP_BracesAtCodeLevel*
PHP_autoformatcomment	indent.txt	/*PHP_autoformatcomment*
PHP_default_indenting	indent.txt	/*PHP_default_indenting*
PHP_outdentSLComments	indent.txt	/*PHP_outdentSLComments*
PHP_outdentphpescape	indent.txt	/*PHP_outdentphpescape*
PHP_removeCRwhenUnix	indent.txt	/*PHP_removeCRwhenUnix*
PHP_vintage_case_default_indent	indent.txt	/*PHP_vintage_case_default_indent*
Partial	eval.txt	/*Partial*
Pattern	pattern.txt	/*Pattern*
Perl	if_perl.txt	/*Perl*
Posix	intro.txt	/*Posix*
Python	if_pyth.txt	/*Python*
Q	intro.txt	/*Q*
Q-command-changed	version5.txt	/*Q-command-changed*
QNX	os_qnx.txt	/*QNX*
Q_ab	quickref.txt	/*Q_ab*
Q_ac	quickref.txt	/*Q_ac*
Q_ai	quickref.txt	/*Q_ai*
Q_bu	quickref.txt	/*Q_bu*
Q_ce	quickref.txt	/*Q_ce*
Q_ch	quickref.txt	/*Q_ch*
Q_cm	quickref.txt	/*Q_cm*
Q_co	quickref.txt	/*Q_co*
Q_ct	help.txt	/*Q_ct*
Q_de	quickref.txt	/*Q_de*
Q_di	quickref.txt	/*Q_di*
Q_ed	quickref.txt	/*Q_ed*
Q_et	quickref.txt	/*Q_et*
Q_ex	quickref.txt	/*Q_ex*
Q_fl	quickref.txt	/*Q_fl*
Q_fo	quickref.txt	/*Q_fo*
Q_gu	quickref.txt	/*Q_gu*
Q_in	quickref.txt	/*Q_in*
Q_km	quickref.txt	/*Q_km*
Q_lr	quickref.txt	/*Q_lr*
Q_ma	quickref.txt	/*Q_ma*
Q_op	quickref.txt	/*Q_op*
Q_pa	quickref.txt	/*Q_pa*
Q_qf	quickref.txt	/*Q_qf*
Q_ra	quickref.txt	/*Q_ra*
Q_re	quickref.txt	/*Q_re*
Q_sc	quickref.txt	/*Q_sc*
Q_si	quickref.txt	/*Q_si*
Q_ss	quickref.txt	/*Q_ss*
Q_st	quickref.txt	/*Q_st*
Q_sy	quickref.txt	/*Q_sy*
Q_ta	quickref.txt	/*Q_ta*
Q_tm	quickref.txt	/*Q_tm*
Q_to	quickref.txt	/*Q_to*
Q_ud	quickref.txt	/*Q_ud*
Q_ur	quickref.txt	/*Q_ur*
Q_vc	quickref.txt	/*Q_vc*
Q_vi	quickref.txt	/*Q_vi*
Q_vm	quickref.txt	/*Q_vm*
Q_wi	quickref.txt	/*Q_wi*
Q_wq	quickref.txt	/*Q_wq*
QuickFixCmdPost	autocmd.txt	/*QuickFixCmdPost*
QuickFixCmdPost-example	quickfix.txt	/*QuickFixCmdPost-example*
QuickFixCmdPre	autocmd.txt	/*QuickFixCmdPre*
Quickfix	quickfix.txt	/*Quickfix*
QuitPre	autocmd.txt	/*QuitPre*
R	change.txt	/*R*
RISC-OS	os_risc.txt	/*RISC-OS*
RISCOS	os_risc.txt	/*RISCOS*
RemoteReply	autocmd.txt	/*RemoteReply*
Replace	insert.txt	/*Replace*
Replace-mode	insert.txt	/*Replace-mode*
Root	mbyte.txt	/*Root*
Ruby	if_ruby.txt	/*Ruby*
Russian	russian.txt	/*Russian*
S	change.txt	/*S*
SHELL	starting.txt	/*SHELL*
SQLGetType	ft_sql.txt	/*SQLGetType*
SQLSetType	ft_sql.txt	/*SQLSetType*
Select	visual.txt	/*Select*
Select-mode	visual.txt	/*Select-mode*
Select-mode-mapping	visual.txt	/*Select-mode-mapping*
Session	starting.txt	/*Session*
SessionLoad-variable	starting.txt	/*SessionLoad-variable*
SessionLoadPost	autocmd.txt	/*SessionLoadPost*
ShellCmdPost	autocmd.txt	/*ShellCmdPost*
ShellFilterPost	autocmd.txt	/*ShellFilterPost*
SourceCmd	autocmd.txt	/*SourceCmd*
SourcePre	autocmd.txt	/*SourcePre*
Special	eval.txt	/*Special*
SpellFileMissing	autocmd.txt	/*SpellFileMissing*
StdinReadPost	autocmd.txt	/*StdinReadPost*
StdinReadPre	autocmd.txt	/*StdinReadPre*
String	eval.txt	/*String*
SwapExists	autocmd.txt	/*SwapExists*
Syntax	autocmd.txt	/*Syntax*
T	motion.txt	/*T*
TCL	if_tcl.txt	/*TCL*
TERM	starting.txt	/*TERM*
TOhtml-encoding	syntax.txt	/*TOhtml-encoding*
TOhtml-encoding-detect	syntax.txt	/*TOhtml-encoding-detect*
TOhtml-performance	syntax.txt	/*TOhtml-performance*
TOhtml-uncopyable-text	syntax.txt	/*TOhtml-uncopyable-text*
TOhtml-wrap-text	syntax.txt	/*TOhtml-wrap-text*
TRUE	eval.txt	/*TRUE*
TSQL	ft_sql.txt	/*TSQL*
TTpro-telnet	syntax.txt	/*TTpro-telnet*
Tab	intro.txt	/*Tab*
TabClosed	autocmd.txt	/*TabClosed*
TabEnter	autocmd.txt	/*TabEnter*
TabLeave	autocmd.txt	/*TabLeave*
TabNew	autocmd.txt	/*TabNew*
Tcl	if_tcl.txt	/*Tcl*
TermChanged	autocmd.txt	/*TermChanged*
TermResponse	autocmd.txt	/*TermResponse*
Terminal-Job	terminal.txt	/*Terminal-Job*
Terminal-Normal	terminal.txt	/*Terminal-Normal*
Terminal-mode	terminal.txt	/*Terminal-mode*
TerminalOpen	autocmd.txt	/*TerminalOpen*
TextChanged	autocmd.txt	/*TextChanged*
TextChangedI	autocmd.txt	/*TextChangedI*
TextChangedP	autocmd.txt	/*TextChangedP*
TextYankPost	autocmd.txt	/*TextYankPost*
Transact-SQL	ft_sql.txt	/*Transact-SQL*
U	undo.txt	/*U*
UTF-8	mbyte.txt	/*UTF-8*
UTF8-xterm	mbyte.txt	/*UTF8-xterm*
Uganda	uganda.txt	/*Uganda*
Unicode	mbyte.txt	/*Unicode*
Unix	os_unix.txt	/*Unix*
Unix-format	editing.txt	/*Unix-format*
Unix-format-write	editing.txt	/*Unix-format-write*
User	autocmd.txt	/*User*
UserGettingBored	autocmd.txt	/*UserGettingBored*
V	visual.txt	/*V*
VIMINIT	starting.txt	/*VIMINIT*
VMS	os_vms.txt	/*VMS*
Vi	intro.txt	/*Vi*
View	starting.txt	/*View*
VimEnter	autocmd.txt	/*VimEnter*
VimLeave	autocmd.txt	/*VimLeave*
VimLeavePre	autocmd.txt	/*VimLeavePre*
VimResized	autocmd.txt	/*VimResized*
Vimball-copyright	pi_vimball.txt	/*Vimball-copyright*
Virtual-Replace-mode	insert.txt	/*Virtual-Replace-mode*
VisVim	if_ole.txt	/*VisVim*
Visual	visual.txt	/*Visual*
Visual-mode	visual.txt	/*Visual-mode*
W	motion.txt	/*W*
W10	message.txt	/*W10*
W11	message.txt	/*W11*
W12	message.txt	/*W12*
W13	message.txt	/*W13*
W14	message.txt	/*W14*
W15	repeat.txt	/*W15*
W16	message.txt	/*W16*
W17	arabic.txt	/*W17*
W18	syntax.txt	/*W18*
W19	autocmd.txt	/*W19*
W20	if_pyth.txt	/*W20*
W21	if_pyth.txt	/*W21*
W22	eval.txt	/*W22*
WORD	motion.txt	/*WORD*
WWW	intro.txt	/*WWW*
Win32	os_win32.txt	/*Win32*
WinBar	gui.txt	/*WinBar*
WinEnter	autocmd.txt	/*WinEnter*
WinLeave	autocmd.txt	/*WinLeave*
WinNew	autocmd.txt	/*WinNew*
X	change.txt	/*X*
X11	options.txt	/*X11*
X11-icon	gui_x11.txt	/*X11-icon*
X11_mouse_shapes	gui_x11.txt	/*X11_mouse_shapes*
X1Drag	term.txt	/*X1Drag*
X1Mouse	term.txt	/*X1Mouse*
X1Release	term.txt	/*X1Release*
X2Drag	term.txt	/*X2Drag*
X2Mouse	term.txt	/*X2Mouse*
X2Release	term.txt	/*X2Release*
XIM	mbyte.txt	/*XIM*
XLFD	mbyte.txt	/*XLFD*
Y	change.txt	/*Y*
Y2K	intro.txt	/*Y2K*
ZQ	editing.txt	/*ZQ*
ZZ	editing.txt	/*ZZ*
[	index.txt	/*[*
[#	motion.txt	/*[#*
['	motion.txt	/*['*
[(	motion.txt	/*[(*
[++opt]	editing.txt	/*[++opt]*
[+cmd]	editing.txt	/*[+cmd]*
[..]	pattern.txt	/*[..]*
[/	motion.txt	/*[\/*
[:alnum:]	pattern.txt	/*[:alnum:]*
[:alpha:]	pattern.txt	/*[:alpha:]*
[:backspace:]	pattern.txt	/*[:backspace:]*
[:blank:]	pattern.txt	/*[:blank:]*
[:cntrl:]	pattern.txt	/*[:cntrl:]*
[:digit:]	pattern.txt	/*[:digit:]*
[:escape:]	pattern.txt	/*[:escape:]*
[:graph:]	pattern.txt	/*[:graph:]*
[:lower:]	pattern.txt	/*[:lower:]*
[:print:]	pattern.txt	/*[:print:]*
[:punct:]	pattern.txt	/*[:punct:]*
[:return:]	pattern.txt	/*[:return:]*
[:space:]	pattern.txt	/*[:space:]*
[:tab:]	pattern.txt	/*[:tab:]*
[:upper:]	pattern.txt	/*[:upper:]*
[:xdigit:]	pattern.txt	/*[:xdigit:]*
[<MiddleMouse>	change.txt	/*[<MiddleMouse>*
[==]	pattern.txt	/*[==]*
[D	tagsrch.txt	/*[D*
[I	tagsrch.txt	/*[I*
[M	motion.txt	/*[M*
[P	change.txt	/*[P*
[S	spell.txt	/*[S*
[[	motion.txt	/*[[*
[]	motion.txt	/*[]*
[_CTRL-D	tagsrch.txt	/*[_CTRL-D*
[_CTRL-I	tagsrch.txt	/*[_CTRL-I*
[`	motion.txt	/*[`*
[c	diff.txt	/*[c*
[count]	intro.txt	/*[count]*
[d	tagsrch.txt	/*[d*
[f	editing.txt	/*[f*
[i	tagsrch.txt	/*[i*
[m	motion.txt	/*[m*
[p	change.txt	/*[p*
[pattern]	pattern.txt	/*[pattern]*
[quotex]	intro.txt	/*[quotex]*
[range]	cmdline.txt	/*[range]*
[s	spell.txt	/*[s*
[star	motion.txt	/*[star*
[z	fold.txt	/*[z*
[{	motion.txt	/*[{*
\0	change.txt	/*\\0*
]	index.txt	/*]*
]#	motion.txt	/*]#*
]'	motion.txt	/*]'*
])	motion.txt	/*])*
]/	motion.txt	/*]\/*
]<MiddleMouse>	change.txt	/*]<MiddleMouse>*
]D	tagsrch.txt	/*]D*
]I	tagsrch.txt	/*]I*
]M	motion.txt	/*]M*
]P	change.txt	/*]P*
]S	spell.txt	/*]S*
][	motion.txt	/*][*
]]	motion.txt	/*]]*
]_CTRL-D	tagsrch.txt	/*]_CTRL-D*
]_CTRL-I	tagsrch.txt	/*]_CTRL-I*
]`	motion.txt	/*]`*
]c	diff.txt	/*]c*
]d	tagsrch.txt	/*]d*
]f	editing.txt	/*]f*
]i	tagsrch.txt	/*]i*
]m	motion.txt	/*]m*
]p	change.txt	/*]p*
]s	spell.txt	/*]s*
]star	motion.txt	/*]star*
]z	fold.txt	/*]z*
]}	motion.txt	/*]}*
^	motion.txt	/*^*
_	motion.txt	/*_*
_exrc	starting.txt	/*_exrc*
_gvimrc	gui.txt	/*_gvimrc*
_vimrc	starting.txt	/*_vimrc*
`	motion.txt	/*`*
`(	motion.txt	/*`(*
`)	motion.txt	/*`)*
`-expansion	editing.txt	/*`-expansion*
`.	motion.txt	/*`.*
`0	motion.txt	/*`0*
`<	motion.txt	/*`<*
`=	editing.txt	/*`=*
`>	motion.txt	/*`>*
`A	motion.txt	/*`A*
`[	motion.txt	/*`[*
`]	motion.txt	/*`]*
`^	motion.txt	/*`^*
``	motion.txt	/*``*
`a	motion.txt	/*`a*
`quote	motion.txt	/*`quote*
`{	motion.txt	/*`{*
`}	motion.txt	/*`}*
a	insert.txt	/*a*
a'	motion.txt	/*a'*
a(	motion.txt	/*a(*
a)	motion.txt	/*a)*
a4	print.txt	/*a4*
a:0	eval.txt	/*a:0*
a:000	eval.txt	/*a:000*
a:1	eval.txt	/*a:1*
a:firstline	eval.txt	/*a:firstline*
a:lastline	eval.txt	/*a:lastline*
a:var	eval.txt	/*a:var*
a<	motion.txt	/*a<*
a>	motion.txt	/*a>*
aB	motion.txt	/*aB*
aW	motion.txt	/*aW*
a[	motion.txt	/*a[*
a]	motion.txt	/*a]*
a`	motion.txt	/*a`*
ab	motion.txt	/*ab*
abandon	editing.txt	/*abandon*
abbreviations	map.txt	/*abbreviations*
abel.vim	syntax.txt	/*abel.vim*
abs()	eval.txt	/*abs()*
acos()	eval.txt	/*acos()*
active-buffer	windows.txt	/*active-buffer*
ada#Create_Tags()	ft_ada.txt	/*ada#Create_Tags()*
ada#Jump_Tag()	ft_ada.txt	/*ada#Jump_Tag()*
ada#Listtags()	ft_ada.txt	/*ada#Listtags()*
ada#Switch_Syntax_Option()	ft_ada.txt	/*ada#Switch_Syntax_Option()*
ada#Word()	ft_ada.txt	/*ada#Word()*
ada-compiler	ft_ada.txt	/*ada-compiler*
ada-ctags	ft_ada.txt	/*ada-ctags*
ada-extra-plugins	ft_ada.txt	/*ada-extra-plugins*
ada-reference	ft_ada.txt	/*ada-reference*
ada.vim	ft_ada.txt	/*ada.vim*
add()	eval.txt	/*add()*
add-filetype-plugin	usr_05.txt	/*add-filetype-plugin*
add-global-plugin	usr_05.txt	/*add-global-plugin*
add-local-help	usr_05.txt	/*add-local-help*
add-option-flags	options.txt	/*add-option-flags*
add-package	usr_05.txt	/*add-package*
add-plugin	usr_05.txt	/*add-plugin*
added-5.1	version5.txt	/*added-5.1*
added-5.2	version5.txt	/*added-5.2*
added-5.3	version5.txt	/*added-5.3*
added-5.4	version5.txt	/*added-5.4*
added-5.5	version5.txt	/*added-5.5*
added-5.6	version5.txt	/*added-5.6*
added-5.7	version5.txt	/*added-5.7*
added-5.8	version5.txt	/*added-5.8*
added-6.1	version6.txt	/*added-6.1*
added-6.2	version6.txt	/*added-6.2*
added-6.3	version6.txt	/*added-6.3*
added-6.4	version6.txt	/*added-6.4*
added-7.1	version7.txt	/*added-7.1*
added-7.2	version7.txt	/*added-7.2*
added-7.3	version7.txt	/*added-7.3*
added-7.4	version7.txt	/*added-7.4*
added-BeOS	version5.txt	/*added-BeOS*
added-Mac	version5.txt	/*added-Mac*
added-VMS	version5.txt	/*added-VMS*
added-cmdline-args	version5.txt	/*added-cmdline-args*
added-options	version5.txt	/*added-options*
added-regexp	version5.txt	/*added-regexp*
added-various	version5.txt	/*added-various*
added-win32-GUI	version5.txt	/*added-win32-GUI*
aff-dic-format	spell.txt	/*aff-dic-format*
after-directory	options.txt	/*after-directory*
aleph	options.txt	/*aleph*
alt	intro.txt	/*alt*
alt-input	debugger.txt	/*alt-input*
alternate-file	editing.txt	/*alternate-file*
amiga-window	starting.txt	/*amiga-window*
and()	eval.txt	/*and()*
anonymous-function	eval.txt	/*anonymous-function*
ant.vim	syntax.txt	/*ant.vim*
ap	motion.txt	/*ap*
apache.vim	syntax.txt	/*apache.vim*
append()	eval.txt	/*append()*
aquote	motion.txt	/*aquote*
arabic.txt	arabic.txt	/*arabic.txt*
arabicfonts	arabic.txt	/*arabicfonts*
arabickeymap	arabic.txt	/*arabickeymap*
arg-functions	usr_41.txt	/*arg-functions*
argc()	eval.txt	/*argc()*
argidx()	eval.txt	/*argidx()*
arglist	editing.txt	/*arglist*
arglist-position	editing.txt	/*arglist-position*
arglist-quit	usr_07.txt	/*arglist-quit*
arglistid()	eval.txt	/*arglistid()*
argument-list	editing.txt	/*argument-list*
argv()	eval.txt	/*argv()*
as	motion.txt	/*as*
asin()	eval.txt	/*asin()*
asm.vim	syntax.txt	/*asm.vim*
asm68k	syntax.txt	/*asm68k*
asmh8300.vim	syntax.txt	/*asmh8300.vim*
assert_beeps()	eval.txt	/*assert_beeps()*
assert_equal()	eval.txt	/*assert_equal()*
assert_equalfile()	eval.txt	/*assert_equalfile()*
assert_exception()	eval.txt	/*assert_exception()*
assert_fails()	eval.txt	/*assert_fails()*
assert_false()	eval.txt	/*assert_false()*
assert_inrange()	eval.txt	/*assert_inrange()*
assert_match()	eval.txt	/*assert_match()*
assert_notequal()	eval.txt	/*assert_notequal()*
assert_notmatch()	eval.txt	/*assert_notmatch()*
assert_report()	eval.txt	/*assert_report()*
assert_true()	eval.txt	/*assert_true()*
at	motion.txt	/*at*
atan()	eval.txt	/*atan()*
atan2()	eval.txt	/*atan2()*
athena-intellimouse	gui.txt	/*athena-intellimouse*
attr-list	syntax.txt	/*attr-list*
author	intro.txt	/*author*
auto-format	change.txt	/*auto-format*
auto-setting	options.txt	/*auto-setting*
auto-shortname	editing.txt	/*auto-shortname*
autocmd-<>	tips.txt	/*autocmd-<>*
autocmd-buffer-local	autocmd.txt	/*autocmd-buffer-local*
autocmd-buflocal	autocmd.txt	/*autocmd-buflocal*
autocmd-changes	autocmd.txt	/*autocmd-changes*
autocmd-define	autocmd.txt	/*autocmd-define*
autocmd-disable	autocmd.txt	/*autocmd-disable*
autocmd-events	autocmd.txt	/*autocmd-events*
autocmd-events-abc	autocmd.txt	/*autocmd-events-abc*
autocmd-execute	autocmd.txt	/*autocmd-execute*
autocmd-groups	autocmd.txt	/*autocmd-groups*
autocmd-intro	autocmd.txt	/*autocmd-intro*
autocmd-list	autocmd.txt	/*autocmd-list*
autocmd-nested	autocmd.txt	/*autocmd-nested*
autocmd-osfiletypes	filetype.txt	/*autocmd-osfiletypes*
autocmd-patterns	autocmd.txt	/*autocmd-patterns*
autocmd-remove	autocmd.txt	/*autocmd-remove*
autocmd-searchpat	autocmd.txt	/*autocmd-searchpat*
autocmd-use	autocmd.txt	/*autocmd-use*
autocmd.txt	autocmd.txt	/*autocmd.txt*
autocmds-kept	version5.txt	/*autocmds-kept*
autocommand	autocmd.txt	/*autocommand*
autocommand-events	autocmd.txt	/*autocommand-events*
autocommand-pattern	autocmd.txt	/*autocommand-pattern*
autoformat	change.txt	/*autoformat*
autoload	eval.txt	/*autoload*
autoload-functions	eval.txt	/*autoload-functions*
avoid-hit-enter	version5.txt	/*avoid-hit-enter*
aw	motion.txt	/*aw*
a{	motion.txt	/*a{*
a}	motion.txt	/*a}*
b	motion.txt	/*b*
b:	eval.txt	/*b:*
b:changedtick	eval.txt	/*b:changedtick*
b:changelog_name	filetype.txt	/*b:changelog_name*
b:clojure_syntax_keywords	syntax.txt	/*b:clojure_syntax_keywords*
b:clojure_syntax_without_core_keywords	syntax.txt	/*b:clojure_syntax_without_core_keywords*
b:current_syntax-variable	syntax.txt	/*b:current_syntax-variable*
b:netrw_lastfile	pi_netrw.txt	/*b:netrw_lastfile*
b:tex_stylish	syntax.txt	/*b:tex_stylish*
b:var	eval.txt	/*b:var*
b:yaml_schema	syntax.txt	/*b:yaml_schema*
baan-folding	syntax.txt	/*baan-folding*
baan-syntax	syntax.txt	/*baan-syntax*
baan.vim	syntax.txt	/*baan.vim*
backslash	intro.txt	/*backslash*
backspace	intro.txt	/*backspace*
backspace-delete	version4.txt	/*backspace-delete*
backtick-expansion	editing.txt	/*backtick-expansion*
backup	editing.txt	/*backup*
backup-changed	version4.txt	/*backup-changed*
backup-extension	version4.txt	/*backup-extension*
backup-table	editing.txt	/*backup-table*
balloon-eval	debugger.txt	/*balloon-eval*
balloon_show()	eval.txt	/*balloon_show()*
balloon_split()	eval.txt	/*balloon_split()*
bar	motion.txt	/*bar*
bars	help.txt	/*bars*
base_font_name_list	mbyte.txt	/*base_font_name_list*
basic.vim	syntax.txt	/*basic.vim*
beep	options.txt	/*beep*
beos-colors	os_beos.txt	/*beos-colors*
beos-compiling	os_beos.txt	/*beos-compiling*
beos-dragndrop	os_beos.txt	/*beos-dragndrop*
beos-fonts	os_beos.txt	/*beos-fonts*
beos-general	os_beos.txt	/*beos-general*
beos-gui	os_beos.txt	/*beos-gui*
beos-launch	os_beos.txt	/*beos-launch*
beos-meta	os_beos.txt	/*beos-meta*
beos-mouse	os_beos.txt	/*beos-mouse*
beos-perl	os_beos.txt	/*beos-perl*
beos-timeout	os_beos.txt	/*beos-timeout*
beos-unicode	os_beos.txt	/*beos-unicode*
beos-utf8	os_beos.txt	/*beos-utf8*
beos-vimdir	os_beos.txt	/*beos-vimdir*
better-python-interface	version7.txt	/*better-python-interface*
beval_bufnr-variable	eval.txt	/*beval_bufnr-variable*
beval_col-variable	eval.txt	/*beval_col-variable*
beval_lnum-variable	eval.txt	/*beval_lnum-variable*
beval_text-variable	eval.txt	/*beval_text-variable*
beval_winid-variable	eval.txt	/*beval_winid-variable*
beval_winnr-variable	eval.txt	/*beval_winnr-variable*
binary-number	eval.txt	/*binary-number*
bitwise-function	usr_41.txt	/*bitwise-function*
blockwise-examples	visual.txt	/*blockwise-examples*
blockwise-operators	visual.txt	/*blockwise-operators*
blockwise-register	change.txt	/*blockwise-register*
blockwise-visual	visual.txt	/*blockwise-visual*
blowfish	options.txt	/*blowfish*
blowfish2	options.txt	/*blowfish2*
bold	syntax.txt	/*bold*
bom-bytes	mbyte.txt	/*bom-bytes*
book	intro.txt	/*book*
bookmark	usr_03.txt	/*bookmark*
boolean	options.txt	/*boolean*
break-finally	eval.txt	/*break-finally*
browse()	eval.txt	/*browse()*
browsedir()	eval.txt	/*browsedir()*
browsefilter	editing.txt	/*browsefilter*
bufexists()	eval.txt	/*bufexists()*
buffer-functions	usr_41.txt	/*buffer-functions*
buffer-hidden	windows.txt	/*buffer-hidden*
buffer-list	windows.txt	/*buffer-list*
buffer-variable	eval.txt	/*buffer-variable*
buffer-write	editing.txt	/*buffer-write*
buffer_exists()	eval.txt	/*buffer_exists()*
buffer_name()	eval.txt	/*buffer_name()*
buffer_number()	eval.txt	/*buffer_number()*
buffers	windows.txt	/*buffers*
buffers-menu	gui.txt	/*buffers-menu*
buflisted()	eval.txt	/*buflisted()*
bufloaded()	eval.txt	/*bufloaded()*
bufname()	eval.txt	/*bufname()*
bufnr()	eval.txt	/*bufnr()*
bufwinid()	eval.txt	/*bufwinid()*
bufwinnr()	eval.txt	/*bufwinnr()*
bug-fixes-5	version5.txt	/*bug-fixes-5*
bug-fixes-6	version6.txt	/*bug-fixes-6*
bug-fixes-7	version7.txt	/*bug-fixes-7*
bug-fixes-8	version8.txt	/*bug-fixes-8*
bug-reports	intro.txt	/*bug-reports*
bugreport.vim	intro.txt	/*bugreport.vim*
bugs	intro.txt	/*bugs*
builtin-terms	term.txt	/*builtin-terms*
builtin-tools	gui.txt	/*builtin-tools*
builtin_terms	term.txt	/*builtin_terms*
byte-count	editing.txt	/*byte-count*
byte2line()	eval.txt	/*byte2line()*
byteidx()	eval.txt	/*byteidx()*
byteidxcomp()	eval.txt	/*byteidxcomp()*
bzip2	pi_gzip.txt	/*bzip2*
c	change.txt	/*c*
c.vim	syntax.txt	/*c.vim*
cW	change.txt	/*cW*
c_#	cmdline.txt	/*c_#*
c_##	cmdline.txt	/*c_##*
c_#<	cmdline.txt	/*c_#<*
c_#n	cmdline.txt	/*c_#n*
c_%	cmdline.txt	/*c_%*
c_<BS>	cmdline.txt	/*c_<BS>*
c_<C-Left>	cmdline.txt	/*c_<C-Left>*
c_<C-R>	cmdline.txt	/*c_<C-R>*
c_<C-R>_<C-A>	cmdline.txt	/*c_<C-R>_<C-A>*
c_<C-R>_<C-F>	cmdline.txt	/*c_<C-R>_<C-F>*
c_<C-R>_<C-O>	cmdline.txt	/*c_<C-R>_<C-O>*
c_<C-R>_<C-P>	cmdline.txt	/*c_<C-R>_<C-P>*
c_<C-R>_<C-R>	cmdline.txt	/*c_<C-R>_<C-R>*
c_<C-R>_<C-W>	cmdline.txt	/*c_<C-R>_<C-W>*
c_<C-Right>	cmdline.txt	/*c_<C-Right>*
c_<CR>	cmdline.txt	/*c_<CR>*
c_<Del>	cmdline.txt	/*c_<Del>*
c_<Down>	cmdline.txt	/*c_<Down>*
c_<End>	cmdline.txt	/*c_<End>*
c_<Esc>	cmdline.txt	/*c_<Esc>*
c_<Home>	cmdline.txt	/*c_<Home>*
c_<Insert>	cmdline.txt	/*c_<Insert>*
c_<Left>	cmdline.txt	/*c_<Left>*
c_<LeftMouse>	cmdline.txt	/*c_<LeftMouse>*
c_<MiddleMouse>	cmdline.txt	/*c_<MiddleMouse>*
c_<NL>	cmdline.txt	/*c_<NL>*
c_<PageDown>	cmdline.txt	/*c_<PageDown>*
c_<PageUp>	cmdline.txt	/*c_<PageUp>*
c_<Right>	cmdline.txt	/*c_<Right>*
c_<S-Down>	cmdline.txt	/*c_<S-Down>*
c_<S-Left>	cmdline.txt	/*c_<S-Left>*
c_<S-Right>	cmdline.txt	/*c_<S-Right>*
c_<S-Tab>	cmdline.txt	/*c_<S-Tab>*
c_<S-Up>	cmdline.txt	/*c_<S-Up>*
c_<Tab>	cmdline.txt	/*c_<Tab>*
c_<Up>	cmdline.txt	/*c_<Up>*
c_BS	cmdline.txt	/*c_BS*
c_CR	cmdline.txt	/*c_CR*
c_CTRL-A	cmdline.txt	/*c_CTRL-A*
c_CTRL-B	cmdline.txt	/*c_CTRL-B*
c_CTRL-C	cmdline.txt	/*c_CTRL-C*
c_CTRL-D	cmdline.txt	/*c_CTRL-D*
c_CTRL-E	cmdline.txt	/*c_CTRL-E*
c_CTRL-F	cmdline.txt	/*c_CTRL-F*
c_CTRL-G	cmdline.txt	/*c_CTRL-G*
c_CTRL-H	cmdline.txt	/*c_CTRL-H*
c_CTRL-I	cmdline.txt	/*c_CTRL-I*
c_CTRL-J	cmdline.txt	/*c_CTRL-J*
c_CTRL-K	cmdline.txt	/*c_CTRL-K*
c_CTRL-L	cmdline.txt	/*c_CTRL-L*
c_CTRL-M	cmdline.txt	/*c_CTRL-M*
c_CTRL-N	cmdline.txt	/*c_CTRL-N*
c_CTRL-P	cmdline.txt	/*c_CTRL-P*
c_CTRL-Q	cmdline.txt	/*c_CTRL-Q*
c_CTRL-R	cmdline.txt	/*c_CTRL-R*
c_CTRL-R_=	cmdline.txt	/*c_CTRL-R_=*
c_CTRL-R_CTRL-A	cmdline.txt	/*c_CTRL-R_CTRL-A*
c_CTRL-R_CTRL-F	cmdline.txt	/*c_CTRL-R_CTRL-F*
c_CTRL-R_CTRL-O	cmdline.txt	/*c_CTRL-R_CTRL-O*
c_CTRL-R_CTRL-P	cmdline.txt	/*c_CTRL-R_CTRL-P*
c_CTRL-R_CTRL-R	cmdline.txt	/*c_CTRL-R_CTRL-R*
c_CTRL-R_CTRL-W	cmdline.txt	/*c_CTRL-R_CTRL-W*
c_CTRL-T	cmdline.txt	/*c_CTRL-T*
c_CTRL-U	cmdline.txt	/*c_CTRL-U*
c_CTRL-V	cmdline.txt	/*c_CTRL-V*
c_CTRL-W	cmdline.txt	/*c_CTRL-W*
c_CTRL-Y	cmdline.txt	/*c_CTRL-Y*
c_CTRL-[	cmdline.txt	/*c_CTRL-[*
c_CTRL-\_CTRL-G	intro.txt	/*c_CTRL-\\_CTRL-G*
c_CTRL-\_CTRL-N	intro.txt	/*c_CTRL-\\_CTRL-N*
c_CTRL-\_e	cmdline.txt	/*c_CTRL-\\_e*
c_CTRL-]	cmdline.txt	/*c_CTRL-]*
c_CTRL-^	cmdline.txt	/*c_CTRL-^*
c_CTRL-_	cmdline.txt	/*c_CTRL-_*
c_Del	cmdline.txt	/*c_Del*
c_Down	cmdline.txt	/*c_Down*
c_End	cmdline.txt	/*c_End*
c_Esc	cmdline.txt	/*c_Esc*
c_Home	cmdline.txt	/*c_Home*
c_Insert	cmdline.txt	/*c_Insert*
c_Left	cmdline.txt	/*c_Left*
c_Right	cmdline.txt	/*c_Right*
c_Up	cmdline.txt	/*c_Up*
c_ansi_constants	syntax.txt	/*c_ansi_constants*
c_ansi_typedefs	syntax.txt	/*c_ansi_typedefs*
c_comment_strings	syntax.txt	/*c_comment_strings*
c_curly_error	syntax.txt	/*c_curly_error*
c_digraph	cmdline.txt	/*c_digraph*
c_gnu	syntax.txt	/*c_gnu*
c_no_ansi	syntax.txt	/*c_no_ansi*
c_no_bracket_error	syntax.txt	/*c_no_bracket_error*
c_no_bsd	syntax.txt	/*c_no_bsd*
c_no_c11	syntax.txt	/*c_no_c11*
c_no_c99	syntax.txt	/*c_no_c99*
c_no_cformat	syntax.txt	/*c_no_cformat*
c_no_curly_error	syntax.txt	/*c_no_curly_error*
c_no_if0	syntax.txt	/*c_no_if0*
c_no_tab_space_error	syntax.txt	/*c_no_tab_space_error*
c_no_trail_space_error	syntax.txt	/*c_no_trail_space_error*
c_no_utf	syntax.txt	/*c_no_utf*
c_space_errors	syntax.txt	/*c_space_errors*
c_syntax_for_h	syntax.txt	/*c_syntax_for_h*
c_wildchar	cmdline.txt	/*c_wildchar*
call()	eval.txt	/*call()*
carriage-return	intro.txt	/*carriage-return*
case	change.txt	/*case*
catch-all	eval.txt	/*catch-all*
catch-errors	eval.txt	/*catch-errors*
catch-interrupt	eval.txt	/*catch-interrupt*
catch-order	eval.txt	/*catch-order*
catch-text	eval.txt	/*catch-text*
cc	change.txt	/*cc*
ceil()	eval.txt	/*ceil()*
ch.vim	syntax.txt	/*ch.vim*
ch_canread()	eval.txt	/*ch_canread()*
ch_close()	eval.txt	/*ch_close()*
ch_close_in()	eval.txt	/*ch_close_in()*
ch_evalexpr()	eval.txt	/*ch_evalexpr()*
ch_evalraw()	eval.txt	/*ch_evalraw()*
ch_getbufnr()	eval.txt	/*ch_getbufnr()*
ch_getjob()	eval.txt	/*ch_getjob()*
ch_info()	eval.txt	/*ch_info()*
ch_log()	eval.txt	/*ch_log()*
ch_logfile()	eval.txt	/*ch_logfile()*
ch_open()	eval.txt	/*ch_open()*
ch_read()	eval.txt	/*ch_read()*
ch_readraw()	eval.txt	/*ch_readraw()*
ch_sendexpr()	eval.txt	/*ch_sendexpr()*
ch_sendraw()	eval.txt	/*ch_sendraw()*
ch_setoptions()	eval.txt	/*ch_setoptions()*
ch_status()	eval.txt	/*ch_status()*
change-list-jumps	motion.txt	/*change-list-jumps*
change-name	tips.txt	/*change-name*
change-tabs	change.txt	/*change-tabs*
change.txt	change.txt	/*change.txt*
changed-5.1	version5.txt	/*changed-5.1*
changed-5.2	version5.txt	/*changed-5.2*
changed-5.3	version5.txt	/*changed-5.3*
changed-5.4	version5.txt	/*changed-5.4*
changed-5.5	version5.txt	/*changed-5.5*
changed-5.6	version5.txt	/*changed-5.6*
changed-5.7	version5.txt	/*changed-5.7*
changed-5.8	version5.txt	/*changed-5.8*
changed-6.1	version6.txt	/*changed-6.1*
changed-6.2	version6.txt	/*changed-6.2*
changed-6.3	version6.txt	/*changed-6.3*
changed-6.4	version6.txt	/*changed-6.4*
changed-7.1	version7.txt	/*changed-7.1*
changed-7.2	version7.txt	/*changed-7.2*
changed-7.3	version7.txt	/*changed-7.3*
changed-7.4	version7.txt	/*changed-7.4*
changelist	motion.txt	/*changelist*
changelog.vim	syntax.txt	/*changelog.vim*
changenr()	eval.txt	/*changenr()*
changetick	eval.txt	/*changetick*
changing	change.txt	/*changing*
channel	channel.txt	/*channel*
channel-callback	channel.txt	/*channel-callback*
channel-close	channel.txt	/*channel-close*
channel-close-in	channel.txt	/*channel-close-in*
channel-commands	channel.txt	/*channel-commands*
channel-demo	channel.txt	/*channel-demo*
channel-drop	channel.txt	/*channel-drop*
channel-functions	usr_41.txt	/*channel-functions*
channel-mode	channel.txt	/*channel-mode*
channel-more	channel.txt	/*channel-more*
channel-open	channel.txt	/*channel-open*
channel-open-options	channel.txt	/*channel-open-options*
channel-raw	channel.txt	/*channel-raw*
channel-timeout	channel.txt	/*channel-timeout*
channel-use	channel.txt	/*channel-use*
channel.txt	channel.txt	/*channel.txt*
char-variable	eval.txt	/*char-variable*
char2nr()	eval.txt	/*char2nr()*
characterwise	motion.txt	/*characterwise*
characterwise-register	change.txt	/*characterwise-register*
characterwise-visual	visual.txt	/*characterwise-visual*
charconvert_from-variable	eval.txt	/*charconvert_from-variable*
charconvert_to-variable	eval.txt	/*charconvert_to-variable*
charity	uganda.txt	/*charity*
charset	mbyte.txt	/*charset*
charset-conversion	mbyte.txt	/*charset-conversion*
chill.vim	syntax.txt	/*chill.vim*
chmod	eval.txt	/*chmod*
cindent()	eval.txt	/*cindent()*
cinkeys-format	indent.txt	/*cinkeys-format*
cino-#	indent.txt	/*cino-#*
cino-(	indent.txt	/*cino-(*
cino-)	indent.txt	/*cino-)*
cino-+	indent.txt	/*cino-+*
cino-/	indent.txt	/*cino-\/*
cino-:	indent.txt	/*cino-:*
cino-=	indent.txt	/*cino-=*
cino->	indent.txt	/*cino->*
cino-C	indent.txt	/*cino-C*
cino-E	indent.txt	/*cino-E*
cino-J	indent.txt	/*cino-J*
cino-L	indent.txt	/*cino-L*
cino-M	indent.txt	/*cino-M*
cino-N	indent.txt	/*cino-N*
cino-U	indent.txt	/*cino-U*
cino-W	indent.txt	/*cino-W*
cino-^	indent.txt	/*cino-^*
cino-b	indent.txt	/*cino-b*
cino-c	indent.txt	/*cino-c*
cino-e	indent.txt	/*cino-e*
cino-f	indent.txt	/*cino-f*
cino-g	indent.txt	/*cino-g*
cino-h	indent.txt	/*cino-h*
cino-i	indent.txt	/*cino-i*
cino-j	indent.txt	/*cino-j*
cino-k	indent.txt	/*cino-k*
cino-l	indent.txt	/*cino-l*
cino-m	indent.txt	/*cino-m*
cino-n	indent.txt	/*cino-n*
cino-p	indent.txt	/*cino-p*
cino-star	indent.txt	/*cino-star*
cino-t	indent.txt	/*cino-t*
cino-u	indent.txt	/*cino-u*
cino-w	indent.txt	/*cino-w*
cino-{	indent.txt	/*cino-{*
cino-}	indent.txt	/*cino-}*
cinoptions-values	indent.txt	/*cinoptions-values*
clear-undo	undo.txt	/*clear-undo*
clearmatches()	eval.txt	/*clearmatches()*
client-server	remote.txt	/*client-server*
client-server-name	remote.txt	/*client-server-name*
clientserver	remote.txt	/*clientserver*
clipboard	gui.txt	/*clipboard*
clipboard-autoselect	options.txt	/*clipboard-autoselect*
clipboard-autoselectml	options.txt	/*clipboard-autoselectml*
clipboard-autoselectplus	options.txt	/*clipboard-autoselectplus*
clipboard-exclude	options.txt	/*clipboard-exclude*
clipboard-html	options.txt	/*clipboard-html*
clipboard-unnamed	options.txt	/*clipboard-unnamed*
clipboard-unnamedplus	options.txt	/*clipboard-unnamedplus*
clojure-indent	indent.txt	/*clojure-indent*
close_cb	channel.txt	/*close_cb*
closure	eval.txt	/*closure*
cmdarg-variable	eval.txt	/*cmdarg-variable*
cmdbang-variable	eval.txt	/*cmdbang-variable*
cmdline-arguments	vi_diff.txt	/*cmdline-arguments*
cmdline-changed	version5.txt	/*cmdline-changed*
cmdline-completion	cmdline.txt	/*cmdline-completion*
cmdline-editing	cmdline.txt	/*cmdline-editing*
cmdline-history	cmdline.txt	/*cmdline-history*
cmdline-lines	cmdline.txt	/*cmdline-lines*
cmdline-ranges	cmdline.txt	/*cmdline-ranges*
cmdline-special	cmdline.txt	/*cmdline-special*
cmdline-too-long	cmdline.txt	/*cmdline-too-long*
cmdline-window	cmdline.txt	/*cmdline-window*
cmdline.txt	cmdline.txt	/*cmdline.txt*
cmdwin	cmdline.txt	/*cmdwin*
cmdwin-char	cmdline.txt	/*cmdwin-char*
cobol.vim	syntax.txt	/*cobol.vim*
codeset	mbyte.txt	/*codeset*
coding-style	develop.txt	/*coding-style*
col()	eval.txt	/*col()*
coldfusion.vim	syntax.txt	/*coldfusion.vim*
collapse	tips.txt	/*collapse*
color-xterm	syntax.txt	/*color-xterm*
coloring	syntax.txt	/*coloring*
colortest.vim	syntax.txt	/*colortest.vim*
command-line-functions	usr_41.txt	/*command-line-functions*
command-line-window	cmdline.txt	/*command-line-window*
command-mode	intro.txt	/*command-mode*
compatible-default	starting.txt	/*compatible-default*
compile-changes-5	version5.txt	/*compile-changes-5*
compile-changes-6	version6.txt	/*compile-changes-6*
compile-changes-7	version7.txt	/*compile-changes-7*
compile-changes-8	version8.txt	/*compile-changes-8*
compiler-compaqada	ft_ada.txt	/*compiler-compaqada*
compiler-decada	ft_ada.txt	/*compiler-decada*
compiler-gcc	quickfix.txt	/*compiler-gcc*
compiler-gnat	ft_ada.txt	/*compiler-gnat*
compiler-hpada	ft_ada.txt	/*compiler-hpada*
compiler-manx	quickfix.txt	/*compiler-manx*
compiler-perl	quickfix.txt	/*compiler-perl*
compiler-pyunit	quickfix.txt	/*compiler-pyunit*
compiler-select	quickfix.txt	/*compiler-select*
compiler-tex	quickfix.txt	/*compiler-tex*
compiler-vaxada	ft_ada.txt	/*compiler-vaxada*
compl-current	insert.txt	/*compl-current*
compl-define	insert.txt	/*compl-define*
compl-dictionary	insert.txt	/*compl-dictionary*
compl-filename	insert.txt	/*compl-filename*
compl-function	insert.txt	/*compl-function*
compl-generic	insert.txt	/*compl-generic*
compl-keyword	insert.txt	/*compl-keyword*
compl-omni	insert.txt	/*compl-omni*
compl-omni-filetypes	insert.txt	/*compl-omni-filetypes*
compl-spelling	insert.txt	/*compl-spelling*
compl-tag	insert.txt	/*compl-tag*
compl-vim	insert.txt	/*compl-vim*
compl-whole-line	insert.txt	/*compl-whole-line*
complete()	eval.txt	/*complete()*
complete-functions	insert.txt	/*complete-functions*
complete-items	insert.txt	/*complete-items*
complete_CTRL-E	insert.txt	/*complete_CTRL-E*
complete_CTRL-Y	insert.txt	/*complete_CTRL-Y*
complete_add()	eval.txt	/*complete_add()*
complete_check()	eval.txt	/*complete_check()*
completed_item-variable	eval.txt	/*completed_item-variable*
completion-functions	usr_41.txt	/*completion-functions*
complex-change	change.txt	/*complex-change*
complex-repeat	repeat.txt	/*complex-repeat*
compress	pi_gzip.txt	/*compress*
conceal	syntax.txt	/*conceal*
confirm()	eval.txt	/*confirm()*
connection-refused	message.txt	/*connection-refused*
console-menus	gui.txt	/*console-menus*
control	intro.txt	/*control*
conversion-server	mbyte.txt	/*conversion-server*
convert-to-HTML	syntax.txt	/*convert-to-HTML*
convert-to-XHTML	syntax.txt	/*convert-to-XHTML*
convert-to-XML	syntax.txt	/*convert-to-XML*
copy()	eval.txt	/*copy()*
copy-diffs	diff.txt	/*copy-diffs*
copy-move	change.txt	/*copy-move*
copying	uganda.txt	/*copying*
copyright	uganda.txt	/*copyright*
cos()	eval.txt	/*cos()*
cosh()	eval.txt	/*cosh()*
count	intro.txt	/*count*
count()	eval.txt	/*count()*
count-bytes	tips.txt	/*count-bytes*
count-items	tips.txt	/*count-items*
count-variable	eval.txt	/*count-variable*
count1-variable	eval.txt	/*count1-variable*
cp-default	version5.txt	/*cp-default*
cpo	options.txt	/*cpo*
cpo-!	options.txt	/*cpo-!*
cpo-#	options.txt	/*cpo-#*
cpo-$	options.txt	/*cpo-$*
cpo-%	options.txt	/*cpo-%*
cpo-&	options.txt	/*cpo-&*
cpo-+	options.txt	/*cpo-+*
cpo--	options.txt	/*cpo--*
cpo-.	options.txt	/*cpo-.*
cpo-/	options.txt	/*cpo-\/*
cpo-;	options.txt	/*cpo-;*
cpo-<	options.txt	/*cpo-<*
cpo->	options.txt	/*cpo->*
cpo-A	options.txt	/*cpo-A*
cpo-B	options.txt	/*cpo-B*
cpo-C	options.txt	/*cpo-C*
cpo-D	options.txt	/*cpo-D*
cpo-E	options.txt	/*cpo-E*
cpo-F	options.txt	/*cpo-F*
cpo-H	options.txt	/*cpo-H*
cpo-I	options.txt	/*cpo-I*
cpo-J	options.txt	/*cpo-J*
cpo-K	options.txt	/*cpo-K*
cpo-L	options.txt	/*cpo-L*
cpo-M	options.txt	/*cpo-M*
cpo-O	options.txt	/*cpo-O*
cpo-P	options.txt	/*cpo-P*
cpo-R	options.txt	/*cpo-R*
cpo-S	options.txt	/*cpo-S*
cpo-W	options.txt	/*cpo-W*
cpo-X	options.txt	/*cpo-X*
cpo-Z	options.txt	/*cpo-Z*
cpo-\	options.txt	/*cpo-\\*
cpo-a	options.txt	/*cpo-a*
cpo-b	options.txt	/*cpo-b*
cpo-bar	options.txt	/*cpo-bar*
cpo-c	options.txt	/*cpo-c*
cpo-d	options.txt	/*cpo-d*
cpo-e	options.txt	/*cpo-e*
cpo-f	options.txt	/*cpo-f*
cpo-g	options.txt	/*cpo-g*
cpo-i	options.txt	/*cpo-i*
cpo-j	options.txt	/*cpo-j*
cpo-k	options.txt	/*cpo-k*
cpo-l	options.txt	/*cpo-l*
cpo-m	options.txt	/*cpo-m*
cpo-n	options.txt	/*cpo-n*
cpo-o	options.txt	/*cpo-o*
cpo-p	options.txt	/*cpo-p*
cpo-q	options.txt	/*cpo-q*
cpo-r	options.txt	/*cpo-r*
cpo-s	options.txt	/*cpo-s*
cpo-star	options.txt	/*cpo-star*
cpo-t	options.txt	/*cpo-t*
cpo-u	options.txt	/*cpo-u*
cpo-v	options.txt	/*cpo-v*
cpo-w	options.txt	/*cpo-w*
cpo-x	options.txt	/*cpo-x*
cpo-y	options.txt	/*cpo-y*
cpo-{	options.txt	/*cpo-{*
cpp.vim	syntax.txt	/*cpp.vim*
crash-recovery	recover.txt	/*crash-recovery*
creating-menus	gui.txt	/*creating-menus*
credits	intro.txt	/*credits*
crontab	options.txt	/*crontab*
cs-find	if_cscop.txt	/*cs-find*
cs7-problem	term.txt	/*cs7-problem*
cscope	if_cscop.txt	/*cscope*
cscope-commands	if_cscop.txt	/*cscope-commands*
cscope-find	if_cscop.txt	/*cscope-find*
cscope-howtouse	if_cscop.txt	/*cscope-howtouse*
cscope-info	if_cscop.txt	/*cscope-info*
cscope-intro	if_cscop.txt	/*cscope-intro*
cscope-limitations	if_cscop.txt	/*cscope-limitations*
cscope-options	if_cscop.txt	/*cscope-options*
cscope-suggestions	if_cscop.txt	/*cscope-suggestions*
cscope-win32	if_cscop.txt	/*cscope-win32*
cscope_connection()	eval.txt	/*cscope_connection()*
cscopepathcomp	if_cscop.txt	/*cscopepathcomp*
cscopeprg	if_cscop.txt	/*cscopeprg*
cscopequickfix	if_cscop.txt	/*cscopequickfix*
cscoperelative	if_cscop.txt	/*cscoperelative*
cscopetag	if_cscop.txt	/*cscopetag*
cscopetagorder	if_cscop.txt	/*cscopetagorder*
cscopeverbose	if_cscop.txt	/*cscopeverbose*
csh.vim	syntax.txt	/*csh.vim*
cspc	if_cscop.txt	/*cspc*
csprg	if_cscop.txt	/*csprg*
csqf	if_cscop.txt	/*csqf*
csre	if_cscop.txt	/*csre*
cst	if_cscop.txt	/*cst*
csto	if_cscop.txt	/*csto*
csverb	if_cscop.txt	/*csverb*
ctags	tagsrch.txt	/*ctags*
ctags-gone	version6.txt	/*ctags-gone*
cterm-colors	syntax.txt	/*cterm-colors*
ctrl	intro.txt	/*ctrl*
ctype-variable	eval.txt	/*ctype-variable*
curly-braces-function-names	eval.txt	/*curly-braces-function-names*
curly-braces-names	eval.txt	/*curly-braces-names*
curpos-visual	version6.txt	/*curpos-visual*
current-directory	editing.txt	/*current-directory*
current-file	editing.txt	/*current-file*
current_compiler	quickfix.txt	/*current_compiler*
cursor()	eval.txt	/*cursor()*
cursor-blinking	options.txt	/*cursor-blinking*
cursor-down	intro.txt	/*cursor-down*
cursor-functions	usr_41.txt	/*cursor-functions*
cursor-left	intro.txt	/*cursor-left*
cursor-motions	motion.txt	/*cursor-motions*
cursor-position	pattern.txt	/*cursor-position*
cursor-right	intro.txt	/*cursor-right*
cursor-up	intro.txt	/*cursor-up*
cursor_down	intro.txt	/*cursor_down*
cursor_left	intro.txt	/*cursor_left*
cursor_right	intro.txt	/*cursor_right*
cursor_up	intro.txt	/*cursor_up*
cw	change.txt	/*cw*
cweb.vim	syntax.txt	/*cweb.vim*
cynlib.vim	syntax.txt	/*cynlib.vim*
d	change.txt	/*d*
daB	motion.txt	/*daB*
daW	motion.txt	/*daW*
dab	motion.txt	/*dab*
dap	motion.txt	/*dap*
das	motion.txt	/*das*
date-functions	usr_41.txt	/*date-functions*
dav	pi_netrw.txt	/*dav*
davs	pi_netrw.txt	/*davs*
daw	motion.txt	/*daw*
dd	change.txt	/*dd*
debug-gcc	debug.txt	/*debug-gcc*
debug-highlight	debugger.txt	/*debug-highlight*
debug-leaks	debug.txt	/*debug-leaks*
debug-minidump	debug.txt	/*debug-minidump*
debug-mode	repeat.txt	/*debug-mode*
debug-scripts	repeat.txt	/*debug-scripts*
debug-signs	debugger.txt	/*debug-signs*
debug-vim	debug.txt	/*debug-vim*
debug-vs2005	debug.txt	/*debug-vs2005*
debug-win32	debug.txt	/*debug-win32*
debug-windbg	debug.txt	/*debug-windbg*
debug.txt	debug.txt	/*debug.txt*
debugger-compilation	debugger.txt	/*debugger-compilation*
debugger-features	debugger.txt	/*debugger-features*
debugger-integration	debugger.txt	/*debugger-integration*
debugger-support	debugger.txt	/*debugger-support*
debugger.txt	debugger.txt	/*debugger.txt*
dec-mouse	options.txt	/*dec-mouse*
decada_members	ft_ada.txt	/*decada_members*
deepcopy()	eval.txt	/*deepcopy()*
defaults.vim	starting.txt	/*defaults.vim*
definition-search	tagsrch.txt	/*definition-search*
definitions	intro.txt	/*definitions*
delete()	eval.txt	/*delete()*
delete-insert	change.txt	/*delete-insert*
delete-menus	gui.txt	/*delete-menus*
deleting	change.txt	/*deleting*
demoserver.py	channel.txt	/*demoserver.py*
design-assumptions	develop.txt	/*design-assumptions*
design-compatible	develop.txt	/*design-compatible*
design-decisions	develop.txt	/*design-decisions*
design-documented	develop.txt	/*design-documented*
design-flexible	develop.txt	/*design-flexible*
design-goals	develop.txt	/*design-goals*
design-improved	develop.txt	/*design-improved*
design-maintain	develop.txt	/*design-maintain*
design-multi-platform	develop.txt	/*design-multi-platform*
design-not	develop.txt	/*design-not*
design-speed-size	develop.txt	/*design-speed-size*
desktop.vim	syntax.txt	/*desktop.vim*
develop-spell	develop.txt	/*develop-spell*
develop-spell-suggestions	develop.txt	/*develop-spell-suggestions*
develop.txt	develop.txt	/*develop.txt*
development	develop.txt	/*development*
dgn	motion.txt	/*dgn*
dh	change.txt	/*dh*
diB	motion.txt	/*diB*
diW	motion.txt	/*diW*
dialog	gui_w32.txt	/*dialog*
dialogs-added	version5.txt	/*dialogs-added*
dib	motion.txt	/*dib*
dict	eval.txt	/*dict*
dict-functions	usr_41.txt	/*dict-functions*
dict-identity	eval.txt	/*dict-identity*
dict-modification	eval.txt	/*dict-modification*
did_filetype()	eval.txt	/*did_filetype()*
diff	diff.txt	/*diff*
diff-diffexpr	diff.txt	/*diff-diffexpr*
diff-mode	diff.txt	/*diff-mode*
diff-options	diff.txt	/*diff-options*
diff-original-file	diff.txt	/*diff-original-file*
diff-patchexpr	diff.txt	/*diff-patchexpr*
diff-slow	diff.txt	/*diff-slow*
diff.txt	diff.txt	/*diff.txt*
diff.vim	syntax.txt	/*diff.vim*
diff_filler()	eval.txt	/*diff_filler()*
diff_hlID()	eval.txt	/*diff_hlID()*
diff_translations	diff.txt	/*diff_translations*
digraph	digraph.txt	/*digraph*
digraph-arg	change.txt	/*digraph-arg*
digraph-encoding	digraph.txt	/*digraph-encoding*
digraph-table	digraph.txt	/*digraph-table*
digraph-table-mbyte	digraph.txt	/*digraph-table-mbyte*
digraph.txt	digraph.txt	/*digraph.txt*
digraphs	digraph.txt	/*digraphs*
digraphs-changed	version6.txt	/*digraphs-changed*
digraphs-default	digraph.txt	/*digraphs-default*
digraphs-define	digraph.txt	/*digraphs-define*
digraphs-use	digraph.txt	/*digraphs-use*
dip	motion.txt	/*dip*
dircolors.vim	syntax.txt	/*dircolors.vim*
dis	motion.txt	/*dis*
disable-menus	gui.txt	/*disable-menus*
discard	editing.txt	/*discard*
distribute-script	usr_41.txt	/*distribute-script*
distribution	intro.txt	/*distribution*
diw	motion.txt	/*diw*
dl	change.txt	/*dl*
do	diff.txt	/*do*
doc-file-list	help.txt	/*doc-file-list*
docbk.vim	syntax.txt	/*docbk.vim*
docbksgml.vim	syntax.txt	/*docbksgml.vim*
docbkxml.vim	syntax.txt	/*docbkxml.vim*
docbook	syntax.txt	/*docbook*
documentation-6	version6.txt	/*documentation-6*
donate	uganda.txt	/*donate*
dos	os_dos.txt	/*dos*
dos-:cd	os_dos.txt	/*dos-:cd*
dos-CTRL-Break	os_dos.txt	/*dos-CTRL-Break*
dos-backslash	os_dos.txt	/*dos-backslash*
dos-colors	os_dos.txt	/*dos-colors*
dos-file-formats	os_dos.txt	/*dos-file-formats*
dos-locations	os_dos.txt	/*dos-locations*
dos-shell	os_dos.txt	/*dos-shell*
dos-standard-mappings	os_dos.txt	/*dos-standard-mappings*
dos-temp-files	os_dos.txt	/*dos-temp-files*
dosbatch.vim	syntax.txt	/*dosbatch.vim*
double-click	term.txt	/*double-click*
download	intro.txt	/*download*
doxygen-syntax	syntax.txt	/*doxygen-syntax*
doxygen.vim	syntax.txt	/*doxygen.vim*
dp	diff.txt	/*dp*
drag-n-drop	gui.txt	/*drag-n-drop*
drag-n-drop-win32	gui_w32.txt	/*drag-n-drop-win32*
drag-status-line	term.txt	/*drag-status-line*
dtd.vim	syntax.txt	/*dtd.vim*
dtd2vim	insert.txt	/*dtd2vim*
dying-variable	eval.txt	/*dying-variable*
e	motion.txt	/*e*
easy	starting.txt	/*easy*
edit-a-file	editing.txt	/*edit-a-file*
edit-binary	editing.txt	/*edit-binary*
edit-dialogs	editing.txt	/*edit-dialogs*
edit-files	editing.txt	/*edit-files*
edit-intro	editing.txt	/*edit-intro*
edit-no-break	usr_25.txt	/*edit-no-break*
edit-paragraph-join	usr_25.txt	/*edit-paragraph-join*
editing.txt	editing.txt	/*editing.txt*
efm-%>	quickfix.txt	/*efm-%>*
efm-entries	quickfix.txt	/*efm-entries*
efm-ignore	quickfix.txt	/*efm-ignore*
eiffel.vim	syntax.txt	/*eiffel.vim*
emacs-keys	tips.txt	/*emacs-keys*
emacs-tags	tagsrch.txt	/*emacs-tags*
emacs_tags	tagsrch.txt	/*emacs_tags*
empty()	eval.txt	/*empty()*
encoding-names	mbyte.txt	/*encoding-names*
encoding-table	mbyte.txt	/*encoding-table*
encoding-values	mbyte.txt	/*encoding-values*
encryption	editing.txt	/*encryption*
end	intro.txt	/*end*
end-of-file	pattern.txt	/*end-of-file*
enlightened-terminal	syntax.txt	/*enlightened-terminal*
erlang.vim	syntax.txt	/*erlang.vim*
err_buf	channel.txt	/*err_buf*
err_cb	channel.txt	/*err_cb*
err_mode	channel.txt	/*err_mode*
err_modifiable	channel.txt	/*err_modifiable*
err_msg	channel.txt	/*err_msg*
err_name	channel.txt	/*err_name*
err_timeout	channel.txt	/*err_timeout*
errmsg-variable	eval.txt	/*errmsg-variable*
error-file-format	quickfix.txt	/*error-file-format*
error-messages	message.txt	/*error-messages*
errorformat	quickfix.txt	/*errorformat*
errorformat-Jikes	quickfix.txt	/*errorformat-Jikes*
errorformat-LaTeX	quickfix.txt	/*errorformat-LaTeX*
errorformat-Perl	quickfix.txt	/*errorformat-Perl*
errorformat-ant	quickfix.txt	/*errorformat-ant*
errorformat-changed	version4.txt	/*errorformat-changed*
errorformat-jade	quickfix.txt	/*errorformat-jade*
errorformat-javac	quickfix.txt	/*errorformat-javac*
errorformat-multi-line	quickfix.txt	/*errorformat-multi-line*
errorformat-separate-filename	quickfix.txt	/*errorformat-separate-filename*
errorformats	quickfix.txt	/*errorformats*
errors	message.txt	/*errors*
errors-variable	eval.txt	/*errors-variable*
escape	intro.txt	/*escape*
escape()	eval.txt	/*escape()*
escape-bar	version4.txt	/*escape-bar*
euphoria3.vim	syntax.txt	/*euphoria3.vim*
euphoria4.vim	syntax.txt	/*euphoria4.vim*
eval	eval.txt	/*eval*
eval()	eval.txt	/*eval()*
eval-examples	eval.txt	/*eval-examples*
eval-sandbox	eval.txt	/*eval-sandbox*
eval.txt	eval.txt	/*eval.txt*
event-variable	eval.txt	/*event-variable*
eventhandler()	eval.txt	/*eventhandler()*
eview	starting.txt	/*eview*
evim	starting.txt	/*evim*
evim-keys	starting.txt	/*evim-keys*
evim.vim	starting.txt	/*evim.vim*
ex	starting.txt	/*ex*
ex-cmd-index	index.txt	/*ex-cmd-index*
ex-edit-index	index.txt	/*ex-edit-index*
ex-flags	cmdline.txt	/*ex-flags*
ex:	options.txt	/*ex:*
except-autocmd	eval.txt	/*except-autocmd*
except-autocmd-Cmd	eval.txt	/*except-autocmd-Cmd*
except-autocmd-Post	eval.txt	/*except-autocmd-Post*
except-autocmd-Pre	eval.txt	/*except-autocmd-Pre*
except-autocmd-ill	eval.txt	/*except-autocmd-ill*
except-compat	eval.txt	/*except-compat*
except-examine	eval.txt	/*except-examine*
except-from-finally	eval.txt	/*except-from-finally*
except-hier-param	eval.txt	/*except-hier-param*
except-several-errors	eval.txt	/*except-several-errors*
except-single-line	eval.txt	/*except-single-line*
except-syntax-err	eval.txt	/*except-syntax-err*
except-syntax-error	eval.txt	/*except-syntax-error*
exception-handling	eval.txt	/*exception-handling*
exception-variable	eval.txt	/*exception-variable*
exclusive	motion.txt	/*exclusive*
exclusive-linewise	motion.txt	/*exclusive-linewise*
executable()	eval.txt	/*executable()*
execute()	eval.txt	/*execute()*
execute-menus	gui.txt	/*execute-menus*
exepath()	eval.txt	/*exepath()*
exim	starting.txt	/*exim*
exists()	eval.txt	/*exists()*
exiting	starting.txt	/*exiting*
exp()	eval.txt	/*exp()*
expand()	eval.txt	/*expand()*
expand-env	options.txt	/*expand-env*
expand-environment-var	options.txt	/*expand-environment-var*
expr	eval.txt	/*expr*
expr-!	eval.txt	/*expr-!*
expr-!=	eval.txt	/*expr-!=*
expr-!=#	eval.txt	/*expr-!=#*
expr-!=?	eval.txt	/*expr-!=?*
expr-!~	eval.txt	/*expr-!~*
expr-!~#	eval.txt	/*expr-!~#*
expr-!~?	eval.txt	/*expr-!~?*
expr-%	eval.txt	/*expr-%*
expr-&&	eval.txt	/*expr-&&*
expr-'	eval.txt	/*expr-'*
expr-+	eval.txt	/*expr-+*
expr--	eval.txt	/*expr--*
expr-.	eval.txt	/*expr-.*
expr-/	eval.txt	/*expr-\/*
expr-<	eval.txt	/*expr-<*
expr-<#	eval.txt	/*expr-<#*
expr-<=	eval.txt	/*expr-<=*
expr-<=#	eval.txt	/*expr-<=#*
expr-<=?	eval.txt	/*expr-<=?*
expr-<?	eval.txt	/*expr-<?*
expr-==	eval.txt	/*expr-==*
expr-==#	eval.txt	/*expr-==#*
expr-==?	eval.txt	/*expr-==?*
expr-=~	eval.txt	/*expr-=~*
expr-=~#	eval.txt	/*expr-=~#*
expr-=~?	eval.txt	/*expr-=~?*
expr->	eval.txt	/*expr->*
expr->#	eval.txt	/*expr->#*
expr->=	eval.txt	/*expr->=*
expr->=#	eval.txt	/*expr->=#*
expr->=?	eval.txt	/*expr->=?*
expr->?	eval.txt	/*expr->?*
expr-[:]	eval.txt	/*expr-[:]*
expr-[]	eval.txt	/*expr-[]*
expr-barbar	eval.txt	/*expr-barbar*
expr-entry	eval.txt	/*expr-entry*
expr-env	eval.txt	/*expr-env*
expr-env-expand	eval.txt	/*expr-env-expand*
expr-function	eval.txt	/*expr-function*
expr-is	eval.txt	/*expr-is*
expr-is#	eval.txt	/*expr-is#*
expr-is?	eval.txt	/*expr-is?*
expr-isnot	eval.txt	/*expr-isnot*
expr-isnot#	eval.txt	/*expr-isnot#*
expr-isnot?	eval.txt	/*expr-isnot?*
expr-lambda	eval.txt	/*expr-lambda*
expr-nesting	eval.txt	/*expr-nesting*
expr-number	eval.txt	/*expr-number*
expr-option	eval.txt	/*expr-option*
expr-quote	eval.txt	/*expr-quote*
expr-register	eval.txt	/*expr-register*
expr-star	eval.txt	/*expr-star*
expr-string	eval.txt	/*expr-string*
expr-unary-+	eval.txt	/*expr-unary-+*
expr-unary--	eval.txt	/*expr-unary--*
expr-variable	eval.txt	/*expr-variable*
expr1	eval.txt	/*expr1*
expr2	eval.txt	/*expr2*
expr3	eval.txt	/*expr3*
expr4	eval.txt	/*expr4*
expr5	eval.txt	/*expr5*
expr6	eval.txt	/*expr6*
expr7	eval.txt	/*expr7*
expr8	eval.txt	/*expr8*
expr9	eval.txt	/*expr9*
expression	eval.txt	/*expression*
expression-commands	eval.txt	/*expression-commands*
expression-syntax	eval.txt	/*expression-syntax*
exrc	starting.txt	/*exrc*
extend()	eval.txt	/*extend()*
extension-removal	cmdline.txt	/*extension-removal*
extensions-improvements	todo.txt	/*extensions-improvements*
f	motion.txt	/*f*
false-variable	eval.txt	/*false-variable*
faq	intro.txt	/*faq*
farsi	farsi.txt	/*farsi*
farsi-fonts	farsi.txt	/*farsi-fonts*
farsi.txt	farsi.txt	/*farsi.txt*
fasm.vim	syntax.txt	/*fasm.vim*
fcs_choice-variable	eval.txt	/*fcs_choice-variable*
fcs_reason-variable	eval.txt	/*fcs_reason-variable*
feature-list	eval.txt	/*feature-list*
feedkeys()	eval.txt	/*feedkeys()*
fetch	pi_netrw.txt	/*fetch*
file-browser-5.2	version5.txt	/*file-browser-5.2*
file-formats	editing.txt	/*file-formats*
file-functions	usr_41.txt	/*file-functions*
file-pattern	autocmd.txt	/*file-pattern*
file-read	insert.txt	/*file-read*
file-searching	editing.txt	/*file-searching*
file-type	filetype.txt	/*file-type*
file-types	filetype.txt	/*file-types*
file_readable()	eval.txt	/*file_readable()*
fileencoding-changed	version6.txt	/*fileencoding-changed*
filename-backslash	cmdline.txt	/*filename-backslash*
filename-modifiers	cmdline.txt	/*filename-modifiers*
filereadable()	eval.txt	/*filereadable()*
filetype	filetype.txt	/*filetype*
filetype-detect	filetype.txt	/*filetype-detect*
filetype-ignore	filetype.txt	/*filetype-ignore*
filetype-overrule	filetype.txt	/*filetype-overrule*
filetype-plugin	usr_43.txt	/*filetype-plugin*
filetype-plugins	filetype.txt	/*filetype-plugins*
filetype.txt	filetype.txt	/*filetype.txt*
filetypedetect-changed	version6.txt	/*filetypedetect-changed*
filetypes	filetype.txt	/*filetypes*
filewritable()	eval.txt	/*filewritable()*
filter	change.txt	/*filter*
filter()	eval.txt	/*filter()*
find-manpage	usr_12.txt	/*find-manpage*
find-replace	usr_10.txt	/*find-replace*
finddir()	eval.txt	/*finddir()*
findfile()	eval.txt	/*findfile()*
fixed-5.1	version5.txt	/*fixed-5.1*
fixed-5.2	version5.txt	/*fixed-5.2*
fixed-5.3	version5.txt	/*fixed-5.3*
fixed-5.4	version5.txt	/*fixed-5.4*
fixed-5.5	version5.txt	/*fixed-5.5*
fixed-5.6	version5.txt	/*fixed-5.6*
fixed-5.7	version5.txt	/*fixed-5.7*
fixed-5.8	version5.txt	/*fixed-5.8*
fixed-6.1	version6.txt	/*fixed-6.1*
fixed-6.2	version6.txt	/*fixed-6.2*
fixed-6.3	version6.txt	/*fixed-6.3*
fixed-6.4	version6.txt	/*fixed-6.4*
fixed-7.1	version7.txt	/*fixed-7.1*
fixed-7.2	version7.txt	/*fixed-7.2*
fixed-7.3	version7.txt	/*fixed-7.3*
fixed-7.4	version7.txt	/*fixed-7.4*
flexwiki.vim	syntax.txt	/*flexwiki.vim*
float-e	eval.txt	/*float-e*
float-functions	usr_41.txt	/*float-functions*
float-pi	eval.txt	/*float-pi*
float2nr()	eval.txt	/*float2nr()*
floating-point-format	eval.txt	/*floating-point-format*
floating-point-precision	eval.txt	/*floating-point-precision*
floor()	eval.txt	/*floor()*
fmod()	eval.txt	/*fmod()*
fname_diff-variable	eval.txt	/*fname_diff-variable*
fname_in-variable	eval.txt	/*fname_in-variable*
fname_new-variable	eval.txt	/*fname_new-variable*
fname_out-variable	eval.txt	/*fname_out-variable*
fnameescape()	eval.txt	/*fnameescape()*
fnamemodify()	eval.txt	/*fnamemodify()*
fo-table	change.txt	/*fo-table*
fold-behavior	fold.txt	/*fold-behavior*
fold-colors	fold.txt	/*fold-colors*
fold-commands	fold.txt	/*fold-commands*
fold-create-marker	fold.txt	/*fold-create-marker*
fold-delete-marker	fold.txt	/*fold-delete-marker*
fold-diff	fold.txt	/*fold-diff*
fold-expr	fold.txt	/*fold-expr*
fold-foldcolumn	fold.txt	/*fold-foldcolumn*
fold-foldlevel	fold.txt	/*fold-foldlevel*
fold-foldtext	fold.txt	/*fold-foldtext*
fold-indent	fold.txt	/*fold-indent*
fold-manual	fold.txt	/*fold-manual*
fold-marker	fold.txt	/*fold-marker*
fold-methods	fold.txt	/*fold-methods*
fold-options	fold.txt	/*fold-options*
fold-syntax	fold.txt	/*fold-syntax*
fold.txt	fold.txt	/*fold.txt*
foldclosed()	eval.txt	/*foldclosed()*
foldclosedend()	eval.txt	/*foldclosedend()*
folddashes-variable	eval.txt	/*folddashes-variable*
foldend-variable	eval.txt	/*foldend-variable*
folding	fold.txt	/*folding*
folding-functions	usr_41.txt	/*folding-functions*
foldlevel()	eval.txt	/*foldlevel()*
foldlevel-variable	eval.txt	/*foldlevel-variable*
folds	fold.txt	/*folds*
foldstart-variable	eval.txt	/*foldstart-variable*
foldtext()	eval.txt	/*foldtext()*
foldtextresult()	eval.txt	/*foldtextresult()*
font-sizes	gui_x11.txt	/*font-sizes*
fontset	mbyte.txt	/*fontset*
foreground()	eval.txt	/*foreground()*
fork	os_unix.txt	/*fork*
form.vim	syntax.txt	/*form.vim*
format-bullet-list	tips.txt	/*format-bullet-list*
format-comments	change.txt	/*format-comments*
formatting	change.txt	/*formatting*
formfeed	intro.txt	/*formfeed*
fortran.vim	syntax.txt	/*fortran.vim*
friendship	intro.txt	/*friendship*
frombook	usr_01.txt	/*frombook*
ft-abel-syntax	syntax.txt	/*ft-abel-syntax*
ft-ada-commands	ft_ada.txt	/*ft-ada-commands*
ft-ada-constants	ft_ada.txt	/*ft-ada-constants*
ft-ada-functions	ft_ada.txt	/*ft-ada-functions*
ft-ada-indent	ft_ada.txt	/*ft-ada-indent*
ft-ada-omni	ft_ada.txt	/*ft-ada-omni*
ft-ada-options	ft_ada.txt	/*ft-ada-options*
ft-ada-plugin	ft_ada.txt	/*ft-ada-plugin*
ft-ada-syntax	ft_ada.txt	/*ft-ada-syntax*
ft-ada-variables	ft_ada.txt	/*ft-ada-variables*
ft-ant-syntax	syntax.txt	/*ft-ant-syntax*
ft-apache-syntax	syntax.txt	/*ft-apache-syntax*
ft-asm-syntax	syntax.txt	/*ft-asm-syntax*
ft-asm68k-syntax	syntax.txt	/*ft-asm68k-syntax*
ft-asmh8300-syntax	syntax.txt	/*ft-asmh8300-syntax*
ft-aspperl-syntax	syntax.txt	/*ft-aspperl-syntax*
ft-aspvbs-syntax	syntax.txt	/*ft-aspvbs-syntax*
ft-bash-syntax	syntax.txt	/*ft-bash-syntax*
ft-basic-syntax	syntax.txt	/*ft-basic-syntax*
ft-c-omni	insert.txt	/*ft-c-omni*
ft-c-syntax	syntax.txt	/*ft-c-syntax*
ft-ch-syntax	syntax.txt	/*ft-ch-syntax*
ft-changelog-plugin	filetype.txt	/*ft-changelog-plugin*
ft-changelog-syntax	syntax.txt	/*ft-changelog-syntax*
ft-chill-syntax	syntax.txt	/*ft-chill-syntax*
ft-clojure-indent	indent.txt	/*ft-clojure-indent*
ft-clojure-syntax	syntax.txt	/*ft-clojure-syntax*
ft-cobol-syntax	syntax.txt	/*ft-cobol-syntax*
ft-coldfusion-syntax	syntax.txt	/*ft-coldfusion-syntax*
ft-cpp-syntax	syntax.txt	/*ft-cpp-syntax*
ft-csh-syntax	syntax.txt	/*ft-csh-syntax*
ft-css-omni	insert.txt	/*ft-css-omni*
ft-cweb-syntax	syntax.txt	/*ft-cweb-syntax*
ft-cynlib-syntax	syntax.txt	/*ft-cynlib-syntax*
ft-dash-syntax	syntax.txt	/*ft-dash-syntax*
ft-desktop-syntax	syntax.txt	/*ft-desktop-syntax*
ft-dircolors-syntax	syntax.txt	/*ft-dircolors-syntax*
ft-docbk-syntax	syntax.txt	/*ft-docbk-syntax*
ft-docbksgml-syntax	syntax.txt	/*ft-docbksgml-syntax*
ft-docbkxml-syntax	syntax.txt	/*ft-docbkxml-syntax*
ft-dosbatch-syntax	syntax.txt	/*ft-dosbatch-syntax*
ft-dtd-syntax	syntax.txt	/*ft-dtd-syntax*
ft-eiffel-syntax	syntax.txt	/*ft-eiffel-syntax*
ft-erlang-syntax	syntax.txt	/*ft-erlang-syntax*
ft-euphoria-syntax	syntax.txt	/*ft-euphoria-syntax*
ft-flexwiki-syntax	syntax.txt	/*ft-flexwiki-syntax*
ft-form-syntax	syntax.txt	/*ft-form-syntax*
ft-fortran-indent	indent.txt	/*ft-fortran-indent*
ft-fortran-plugin	filetype.txt	/*ft-fortran-plugin*
ft-fortran-syntax	syntax.txt	/*ft-fortran-syntax*
ft-fvwm-syntax	syntax.txt	/*ft-fvwm-syntax*
ft-gitcommit-plugin	filetype.txt	/*ft-gitcommit-plugin*
ft-groff-syntax	syntax.txt	/*ft-groff-syntax*
ft-gsp-syntax	syntax.txt	/*ft-gsp-syntax*
ft-haskell-syntax	syntax.txt	/*ft-haskell-syntax*
ft-html-indent	indent.txt	/*ft-html-indent*
ft-html-omni	insert.txt	/*ft-html-omni*
ft-html-syntax	syntax.txt	/*ft-html-syntax*
ft-htmlos-syntax	syntax.txt	/*ft-htmlos-syntax*
ft-ia64-syntax	syntax.txt	/*ft-ia64-syntax*
ft-inform-syntax	syntax.txt	/*ft-inform-syntax*
ft-java-syntax	syntax.txt	/*ft-java-syntax*
ft-javascript-omni	insert.txt	/*ft-javascript-omni*
ft-ksh-syntax	syntax.txt	/*ft-ksh-syntax*
ft-lace-syntax	syntax.txt	/*ft-lace-syntax*
ft-lex-syntax	syntax.txt	/*ft-lex-syntax*
ft-lifelines-syntax	syntax.txt	/*ft-lifelines-syntax*
ft-lisp-syntax	syntax.txt	/*ft-lisp-syntax*
ft-lite-syntax	syntax.txt	/*ft-lite-syntax*
ft-lpc-syntax	syntax.txt	/*ft-lpc-syntax*
ft-lua-syntax	syntax.txt	/*ft-lua-syntax*
ft-mail-plugin	filetype.txt	/*ft-mail-plugin*
ft-mail.vim	syntax.txt	/*ft-mail.vim*
ft-make-syntax	syntax.txt	/*ft-make-syntax*
ft-man-plugin	filetype.txt	/*ft-man-plugin*
ft-maple-syntax	syntax.txt	/*ft-maple-syntax*
ft-masm-syntax	syntax.txt	/*ft-masm-syntax*
ft-mathematica-syntax	syntax.txt	/*ft-mathematica-syntax*
ft-mma-syntax	syntax.txt	/*ft-mma-syntax*
ft-moo-syntax	syntax.txt	/*ft-moo-syntax*
ft-msql-syntax	syntax.txt	/*ft-msql-syntax*
ft-n1ql-syntax	syntax.txt	/*ft-n1ql-syntax*
ft-nasm-syntax	syntax.txt	/*ft-nasm-syntax*
ft-ncf-syntax	syntax.txt	/*ft-ncf-syntax*
ft-nroff-syntax	syntax.txt	/*ft-nroff-syntax*
ft-ocaml-syntax	syntax.txt	/*ft-ocaml-syntax*
ft-papp-syntax	syntax.txt	/*ft-papp-syntax*
ft-pascal-syntax	syntax.txt	/*ft-pascal-syntax*
ft-pdf-plugin	filetype.txt	/*ft-pdf-plugin*
ft-perl-syntax	syntax.txt	/*ft-perl-syntax*
ft-php-indent	indent.txt	/*ft-php-indent*
ft-php-omni	insert.txt	/*ft-php-omni*
ft-php-syntax	syntax.txt	/*ft-php-syntax*
ft-php3-syntax	syntax.txt	/*ft-php3-syntax*
ft-phtml-syntax	syntax.txt	/*ft-phtml-syntax*
ft-plaintex-syntax	syntax.txt	/*ft-plaintex-syntax*
ft-posix-synax	syntax.txt	/*ft-posix-synax*
ft-postscr-syntax	syntax.txt	/*ft-postscr-syntax*
ft-ppwiz-syntax	syntax.txt	/*ft-ppwiz-syntax*
ft-printcap-syntax	syntax.txt	/*ft-printcap-syntax*
ft-progress-syntax	syntax.txt	/*ft-progress-syntax*
ft-ptcap-syntax	syntax.txt	/*ft-ptcap-syntax*
ft-python-indent	indent.txt	/*ft-python-indent*
ft-python-plugin	filetype.txt	/*ft-python-plugin*
ft-python-syntax	syntax.txt	/*ft-python-syntax*
ft-quake-syntax	syntax.txt	/*ft-quake-syntax*
ft-r-indent	indent.txt	/*ft-r-indent*
ft-readline-syntax	syntax.txt	/*ft-readline-syntax*
ft-rexx-syntax	syntax.txt	/*ft-rexx-syntax*
ft-rst-syntax	syntax.txt	/*ft-rst-syntax*
ft-ruby-omni	insert.txt	/*ft-ruby-omni*
ft-ruby-syntax	syntax.txt	/*ft-ruby-syntax*
ft-rust	filetype.txt	/*ft-rust*
ft-scheme-syntax	syntax.txt	/*ft-scheme-syntax*
ft-sdl-syntax	syntax.txt	/*ft-sdl-syntax*
ft-sed-syntax	syntax.txt	/*ft-sed-syntax*
ft-sgml-syntax	syntax.txt	/*ft-sgml-syntax*
ft-sh-indent	indent.txt	/*ft-sh-indent*
ft-sh-syntax	syntax.txt	/*ft-sh-syntax*
ft-spec-plugin	filetype.txt	/*ft-spec-plugin*
ft-spup-syntax	syntax.txt	/*ft-spup-syntax*
ft-sql	filetype.txt	/*ft-sql*
ft-sql-omni	insert.txt	/*ft-sql-omni*
ft-sql-syntax	syntax.txt	/*ft-sql-syntax*
ft-sqlanywhere-syntax	syntax.txt	/*ft-sqlanywhere-syntax*
ft-sqlinformix-syntax	syntax.txt	/*ft-sqlinformix-syntax*
ft-syntax-omni	insert.txt	/*ft-syntax-omni*
ft-tcsh-syntax	syntax.txt	/*ft-tcsh-syntax*
ft-termcap-syntax	syntax.txt	/*ft-termcap-syntax*
ft-tex-plugin	filetype.txt	/*ft-tex-plugin*
ft-tex-syntax	syntax.txt	/*ft-tex-syntax*
ft-tf-syntax	syntax.txt	/*ft-tf-syntax*
ft-vb-syntax	syntax.txt	/*ft-vb-syntax*
ft-verilog-indent	indent.txt	/*ft-verilog-indent*
ft-vhdl-indent	indent.txt	/*ft-vhdl-indent*
ft-vim-indent	indent.txt	/*ft-vim-indent*
ft-vim-plugin	filetype.txt	/*ft-vim-plugin*
ft-vim-syntax	syntax.txt	/*ft-vim-syntax*
ft-xf86conf-syntax	syntax.txt	/*ft-xf86conf-syntax*
ft-xhtml-omni	insert.txt	/*ft-xhtml-omni*
ft-xml-omni	insert.txt	/*ft-xml-omni*
ft-xml-syntax	syntax.txt	/*ft-xml-syntax*
ft-xpm-syntax	syntax.txt	/*ft-xpm-syntax*
ft-yaml-syntax	syntax.txt	/*ft-yaml-syntax*
ft-zimbu-plugin	filetype.txt	/*ft-zimbu-plugin*
ft-zsh-syntax	syntax.txt	/*ft-zsh-syntax*
ft_ada.txt	ft_ada.txt	/*ft_ada.txt*
ft_rust.txt	ft_rust.txt	/*ft_rust.txt*
ft_sql.txt	ft_sql.txt	/*ft_sql.txt*
ftdetect	filetype.txt	/*ftdetect*
ftp	pi_netrw.txt	/*ftp*
ftplugin	usr_41.txt	/*ftplugin*
ftplugin-docs	filetype.txt	/*ftplugin-docs*
ftplugin-name	usr_05.txt	/*ftplugin-name*
ftplugin-overrule	filetype.txt	/*ftplugin-overrule*
ftplugin-special	usr_41.txt	/*ftplugin-special*
ftplugins	usr_05.txt	/*ftplugins*
funcref()	eval.txt	/*funcref()*
function()	eval.txt	/*function()*
function-argument	eval.txt	/*function-argument*
function-key	intro.txt	/*function-key*
function-list	usr_41.txt	/*function-list*
function-range-example	eval.txt	/*function-range-example*
function-search-undo	eval.txt	/*function-search-undo*
function_key	intro.txt	/*function_key*
functions	eval.txt	/*functions*
fvwm.vim	syntax.txt	/*fvwm.vim*
fvwm2rc	syntax.txt	/*fvwm2rc*
fvwmrc	syntax.txt	/*fvwmrc*
g	index.txt	/*g*
g#	pattern.txt	/*g#*
g$	motion.txt	/*g$*
g&	change.txt	/*g&*
g'	motion.txt	/*g'*
g'a	motion.txt	/*g'a*
g+	undo.txt	/*g+*
g,	motion.txt	/*g,*
g-	undo.txt	/*g-*
g0	motion.txt	/*g0*
g8	various.txt	/*g8*
g:	eval.txt	/*g:*
g:NetrwTopLvlMenu	pi_netrw.txt	/*g:NetrwTopLvlMenu*
g:Netrw_UserMaps	pi_netrw.txt	/*g:Netrw_UserMaps*
g:Netrw_corehandler	pi_netrw.txt	/*g:Netrw_corehandler*
g:Netrw_funcref	pi_netrw.txt	/*g:Netrw_funcref*
g:actual_curbuf	options.txt	/*g:actual_curbuf*
g:ada#Comment	ft_ada.txt	/*g:ada#Comment*
g:ada#Ctags_Kinds	ft_ada.txt	/*g:ada#Ctags_Kinds*
g:ada#DotWordRegex	ft_ada.txt	/*g:ada#DotWordRegex*
g:ada#Keywords	ft_ada.txt	/*g:ada#Keywords*
g:ada#WordRegex	ft_ada.txt	/*g:ada#WordRegex*
g:ada_abbrev	ft_ada.txt	/*g:ada_abbrev*
g:ada_all_tab_usage	ft_ada.txt	/*g:ada_all_tab_usage*
g:ada_begin_preproc	ft_ada.txt	/*g:ada_begin_preproc*
g:ada_default_compiler	ft_ada.txt	/*g:ada_default_compiler*
g:ada_extended_completion	ft_ada.txt	/*g:ada_extended_completion*
g:ada_extended_tagging	ft_ada.txt	/*g:ada_extended_tagging*
g:ada_folding	ft_ada.txt	/*g:ada_folding*
g:ada_gnat_extensions	ft_ada.txt	/*g:ada_gnat_extensions*
g:ada_line_errors	ft_ada.txt	/*g:ada_line_errors*
g:ada_no_tab_space_error	ft_ada.txt	/*g:ada_no_tab_space_error*
g:ada_no_trail_space_error	ft_ada.txt	/*g:ada_no_trail_space_error*
g:ada_omni_with_keywords	ft_ada.txt	/*g:ada_omni_with_keywords*
g:ada_rainbow_color	ft_ada.txt	/*g:ada_rainbow_color*
g:ada_space_errors	ft_ada.txt	/*g:ada_space_errors*
g:ada_standard_types	ft_ada.txt	/*g:ada_standard_types*
g:ada_with_gnat_project_files	ft_ada.txt	/*g:ada_with_gnat_project_files*
g:ada_withuse_ordinary	ft_ada.txt	/*g:ada_withuse_ordinary*
g:clojure_align_multiline_strings	indent.txt	/*g:clojure_align_multiline_strings*
g:clojure_align_subforms	indent.txt	/*g:clojure_align_subforms*
g:clojure_fold	syntax.txt	/*g:clojure_fold*
g:clojure_fuzzy_indent	indent.txt	/*g:clojure_fuzzy_indent*
g:clojure_fuzzy_indent_blacklist	indent.txt	/*g:clojure_fuzzy_indent_blacklist*
g:clojure_fuzzy_indent_patterns	indent.txt	/*g:clojure_fuzzy_indent_patterns*
g:clojure_maxlines	indent.txt	/*g:clojure_maxlines*
g:clojure_special_indent_words	indent.txt	/*g:clojure_special_indent_words*
g:clojure_syntax_keywords	syntax.txt	/*g:clojure_syntax_keywords*
g:colors_name	options.txt	/*g:colors_name*
g:decada	ft_ada.txt	/*g:decada*
g:decada.Error_Format	ft_ada.txt	/*g:decada.Error_Format*
g:decada.Make()	ft_ada.txt	/*g:decada.Make()*
g:decada.Make_Command	ft_ada.txt	/*g:decada.Make_Command*
g:decada.Unit_Name()	ft_ada.txt	/*g:decada.Unit_Name()*
g:filetype_csh	syntax.txt	/*g:filetype_csh*
g:filetype_r	syntax.txt	/*g:filetype_r*
g:ftplugin_rust_source_path	ft_rust.txt	/*g:ftplugin_rust_source_path*
g:gnat	ft_ada.txt	/*g:gnat*
g:gnat.Error_Format	ft_ada.txt	/*g:gnat.Error_Format*
g:gnat.Find()	ft_ada.txt	/*g:gnat.Find()*
g:gnat.Find_Program	ft_ada.txt	/*g:gnat.Find_Program*
g:gnat.Make()	ft_ada.txt	/*g:gnat.Make()*
g:gnat.Make_Command	ft_ada.txt	/*g:gnat.Make_Command*
g:gnat.Pretty()	ft_ada.txt	/*g:gnat.Pretty()*
g:gnat.Pretty_Program	ft_ada.txt	/*g:gnat.Pretty_Program*
g:gnat.Project_File	ft_ada.txt	/*g:gnat.Project_File*
g:gnat.Set_Project_File()	ft_ada.txt	/*g:gnat.Set_Project_File()*
g:gnat.Tags()	ft_ada.txt	/*g:gnat.Tags()*
g:gnat.Tags_Command	ft_ada.txt	/*g:gnat.Tags_Command*
g:html_charset_override	syntax.txt	/*g:html_charset_override*
g:html_diff_one_file	syntax.txt	/*g:html_diff_one_file*
g:html_dynamic_folds	syntax.txt	/*g:html_dynamic_folds*
g:html_encoding_override	syntax.txt	/*g:html_encoding_override*
g:html_end_line	syntax.txt	/*g:html_end_line*
g:html_expand_tabs	syntax.txt	/*g:html_expand_tabs*
g:html_font	syntax.txt	/*g:html_font*
g:html_hover_unfold	syntax.txt	/*g:html_hover_unfold*
g:html_id_expr	syntax.txt	/*g:html_id_expr*
g:html_ignore_conceal	syntax.txt	/*g:html_ignore_conceal*
g:html_ignore_folding	syntax.txt	/*g:html_ignore_folding*
g:html_line_ids	syntax.txt	/*g:html_line_ids*
g:html_no_foldcolumn	syntax.txt	/*g:html_no_foldcolumn*
g:html_no_invalid	syntax.txt	/*g:html_no_invalid*
g:html_no_pre	syntax.txt	/*g:html_no_pre*
g:html_no_progress	syntax.txt	/*g:html_no_progress*
g:html_number_lines	syntax.txt	/*g:html_number_lines*
g:html_pre_wrap	syntax.txt	/*g:html_pre_wrap*
g:html_prevent_copy	syntax.txt	/*g:html_prevent_copy*
g:html_start_line	syntax.txt	/*g:html_start_line*
g:html_use_css	syntax.txt	/*g:html_use_css*
g:html_use_encoding	syntax.txt	/*g:html_use_encoding*
g:html_use_xhtml	syntax.txt	/*g:html_use_xhtml*
g:html_whole_filler	syntax.txt	/*g:html_whole_filler*
g:netrw_altfile	pi_netrw.txt	/*g:netrw_altfile*
g:netrw_alto	pi_netrw.txt	/*g:netrw_alto*
g:netrw_altv	pi_netrw.txt	/*g:netrw_altv*
g:netrw_banner	pi_netrw.txt	/*g:netrw_banner*
g:netrw_bannerbackslash	pi_netrw.txt	/*g:netrw_bannerbackslash*
g:netrw_browse_split	pi_netrw.txt	/*g:netrw_browse_split*
g:netrw_browsex_viewer	pi_netrw.txt	/*g:netrw_browsex_viewer*
g:netrw_bufsettings	pi_netrw.txt	/*g:netrw_bufsettings*
g:netrw_chgperm	pi_netrw.txt	/*g:netrw_chgperm*
g:netrw_chgwin	pi_netrw.txt	/*g:netrw_chgwin*
g:netrw_compress	pi_netrw.txt	/*g:netrw_compress*
g:netrw_ctags	pi_netrw.txt	/*g:netrw_ctags*
g:netrw_cursor	pi_netrw.txt	/*g:netrw_cursor*
g:netrw_cygwin	pi_netrw.txt	/*g:netrw_cygwin*
g:netrw_dav_cmd	pi_netrw.txt	/*g:netrw_dav_cmd*
g:netrw_decompress	pi_netrw.txt	/*g:netrw_decompress*
g:netrw_dirhistmax	pi_netrw.txt	/*g:netrw_dirhistmax*
g:netrw_dynamic_maxfilenamelen	pi_netrw.txt	/*g:netrw_dynamic_maxfilenamelen*
g:netrw_errorlvl	pi_netrw.txt	/*g:netrw_errorlvl*
g:netrw_fastbrowse	pi_netrw.txt	/*g:netrw_fastbrowse*
g:netrw_fetch_cmd	pi_netrw.txt	/*g:netrw_fetch_cmd*
g:netrw_ffkeep	pi_netrw.txt	/*g:netrw_ffkeep*
g:netrw_file_cmd	pi_netrw.txt	/*g:netrw_file_cmd*
g:netrw_fname_escape	pi_netrw.txt	/*g:netrw_fname_escape*
g:netrw_ftp	pi_netrw.txt	/*g:netrw_ftp*
g:netrw_ftp_browse_reject	pi_netrw.txt	/*g:netrw_ftp_browse_reject*
g:netrw_ftp_cmd	pi_netrw.txt	/*g:netrw_ftp_cmd*
g:netrw_ftp_list_cmd	pi_netrw.txt	/*g:netrw_ftp_list_cmd*
g:netrw_ftp_options	pi_netrw.txt	/*g:netrw_ftp_options*
g:netrw_ftp_sizelist_cmd	pi_netrw.txt	/*g:netrw_ftp_sizelist_cmd*
g:netrw_ftp_timelist_cmd	pi_netrw.txt	/*g:netrw_ftp_timelist_cmd*
g:netrw_ftpextracmd	pi_netrw.txt	/*g:netrw_ftpextracmd*
g:netrw_ftpmode	pi_netrw.txt	/*g:netrw_ftpmode*
g:netrw_glob_escape	pi_netrw.txt	/*g:netrw_glob_escape*
g:netrw_gx	pi_netrw.txt	/*g:netrw_gx*
g:netrw_hide	pi_netrw.txt	/*g:netrw_hide*
g:netrw_home	pi_netrw.txt	/*g:netrw_home*
g:netrw_http_cmd	pi_netrw.txt	/*g:netrw_http_cmd*
g:netrw_http_put_cmd	pi_netrw.txt	/*g:netrw_http_put_cmd*
g:netrw_http_xcmd	pi_netrw.txt	/*g:netrw_http_xcmd*
g:netrw_ignorenetrc	pi_netrw.txt	/*g:netrw_ignorenetrc*
g:netrw_keepdir	pi_netrw.txt	/*g:netrw_keepdir*
g:netrw_keepj	pi_netrw.txt	/*g:netrw_keepj*
g:netrw_list_cmd	pi_netrw.txt	/*g:netrw_list_cmd*
g:netrw_list_cmd_options	pi_netrw.txt	/*g:netrw_list_cmd_options*
g:netrw_list_hide	pi_netrw.txt	/*g:netrw_list_hide*
g:netrw_liststyle	pi_netrw.txt	/*g:netrw_liststyle*
g:netrw_localcopycmd	pi_netrw.txt	/*g:netrw_localcopycmd*
g:netrw_localcopycmdopt	pi_netrw.txt	/*g:netrw_localcopycmdopt*
g:netrw_localcopydircmd	pi_netrw.txt	/*g:netrw_localcopydircmd*
g:netrw_localcopydircmdopt	pi_netrw.txt	/*g:netrw_localcopydircmdopt*
g:netrw_localmkdir	pi_netrw.txt	/*g:netrw_localmkdir*
g:netrw_localmkdiropt	pi_netrw.txt	/*g:netrw_localmkdiropt*
g:netrw_localmovecmd	pi_netrw.txt	/*g:netrw_localmovecmd*
g:netrw_localmovecmdopt	pi_netrw.txt	/*g:netrw_localmovecmdopt*
g:netrw_localrmdir	pi_netrw.txt	/*g:netrw_localrmdir*
g:netrw_localrmdiropt	pi_netrw.txt	/*g:netrw_localrmdiropt*
g:netrw_maxfilenamelen	pi_netrw.txt	/*g:netrw_maxfilenamelen*
g:netrw_menu	pi_netrw.txt	/*g:netrw_menu*
g:netrw_mkdir_cmd	pi_netrw.txt	/*g:netrw_mkdir_cmd*
g:netrw_mousemaps	pi_netrw.txt	/*g:netrw_mousemaps*
g:netrw_nobeval	pi_netrw.txt	/*g:netrw_nobeval*
g:netrw_nogx	pi_netrw.txt	/*g:netrw_nogx*
g:netrw_preview	pi_netrw.txt	/*g:netrw_preview*
g:netrw_rcp_cmd	pi_netrw.txt	/*g:netrw_rcp_cmd*
g:netrw_remote_mkdir	pi_netrw.txt	/*g:netrw_remote_mkdir*
g:netrw_rename_cmd	pi_netrw.txt	/*g:netrw_rename_cmd*
g:netrw_retmap	pi_netrw.txt	/*g:netrw_retmap*
g:netrw_rm_cmd	pi_netrw.txt	/*g:netrw_rm_cmd*
g:netrw_rmdir_cmd	pi_netrw.txt	/*g:netrw_rmdir_cmd*
g:netrw_rmf_cmd	pi_netrw.txt	/*g:netrw_rmf_cmd*
g:netrw_rsync_cmd	pi_netrw.txt	/*g:netrw_rsync_cmd*
g:netrw_rsync_sep	pi_netrw.txt	/*g:netrw_rsync_sep*
g:netrw_scp_cmd	pi_netrw.txt	/*g:netrw_scp_cmd*
g:netrw_scpport	pi_netrw.txt	/*g:netrw_scpport*
g:netrw_sepchr	pi_netrw.txt	/*g:netrw_sepchr*
g:netrw_servername	pi_netrw.txt	/*g:netrw_servername*
g:netrw_sftp_cmd	pi_netrw.txt	/*g:netrw_sftp_cmd*
g:netrw_silent	pi_netrw.txt	/*g:netrw_silent*
g:netrw_sizestyle	pi_netrw.txt	/*g:netrw_sizestyle*
g:netrw_sort_by	pi_netrw.txt	/*g:netrw_sort_by*
g:netrw_sort_direction	pi_netrw.txt	/*g:netrw_sort_direction*
g:netrw_sort_options	pi_netrw.txt	/*g:netrw_sort_options*
g:netrw_sort_sequence	pi_netrw.txt	/*g:netrw_sort_sequence*
g:netrw_special_syntax	pi_netrw.txt	/*g:netrw_special_syntax*
g:netrw_ssh_browse_reject	pi_netrw.txt	/*g:netrw_ssh_browse_reject*
g:netrw_ssh_cmd	pi_netrw.txt	/*g:netrw_ssh_cmd*
g:netrw_sshport	pi_netrw.txt	/*g:netrw_sshport*
g:netrw_suppress_gx_mesg	pi_netrw.txt	/*g:netrw_suppress_gx_mesg*
g:netrw_timefmt	pi_netrw.txt	/*g:netrw_timefmt*
g:netrw_tmpfile_escape	pi_netrw.txt	/*g:netrw_tmpfile_escape*
g:netrw_uid	pi_netrw.txt	/*g:netrw_uid*
g:netrw_use_errorwindow	pi_netrw.txt	/*g:netrw_use_errorwindow*
g:netrw_use_noswf	pi_netrw.txt	/*g:netrw_use_noswf*
g:netrw_use_nt_rcp	pi_netrw.txt	/*g:netrw_use_nt_rcp*
g:netrw_usetab	pi_netrw.txt	/*g:netrw_usetab*
g:netrw_win95ftp	pi_netrw.txt	/*g:netrw_win95ftp*
g:netrw_winsize	pi_netrw.txt	/*g:netrw_winsize*
g:netrw_wiw	pi_netrw.txt	/*g:netrw_wiw*
g:netrw_xstrlen	pi_netrw.txt	/*g:netrw_xstrlen*
g:rust_bang_comment_leader	ft_rust.txt	/*g:rust_bang_comment_leader*
g:rust_conceal	ft_rust.txt	/*g:rust_conceal*
g:rust_conceal_mod_path	ft_rust.txt	/*g:rust_conceal_mod_path*
g:rust_conceal_pub	ft_rust.txt	/*g:rust_conceal_pub*
g:rust_fold	ft_rust.txt	/*g:rust_fold*
g:rust_playpen_url	ft_rust.txt	/*g:rust_playpen_url*
g:rust_recommended_style	ft_rust.txt	/*g:rust_recommended_style*
g:rust_shortener_url	ft_rust.txt	/*g:rust_shortener_url*
g:rustc_makeprg_no_percent	ft_rust.txt	/*g:rustc_makeprg_no_percent*
g:rustc_path	ft_rust.txt	/*g:rustc_path*
g:rustfmt_autosave	ft_rust.txt	/*g:rustfmt_autosave*
g:rustfmt_command	ft_rust.txt	/*g:rustfmt_command*
g:rustfmt_fail_silently	ft_rust.txt	/*g:rustfmt_fail_silently*
g:rustfmt_options	ft_rust.txt	/*g:rustfmt_options*
g:syntax_on	syntax.txt	/*g:syntax_on*
g:tar_browseoptions	pi_tar.txt	/*g:tar_browseoptions*
g:tar_cmd	pi_tar.txt	/*g:tar_cmd*
g:tar_copycmd	pi_tar.txt	/*g:tar_copycmd*
g:tar_extractcmd	pi_tar.txt	/*g:tar_extractcmd*
g:tar_nomax	pi_tar.txt	/*g:tar_nomax*
g:tar_readoptions	pi_tar.txt	/*g:tar_readoptions*
g:tar_secure	pi_tar.txt	/*g:tar_secure*
g:tar_writeoptions	pi_tar.txt	/*g:tar_writeoptions*
g:terminal_ansi_colors	terminal.txt	/*g:terminal_ansi_colors*
g:tex_comment_nospell	syntax.txt	/*g:tex_comment_nospell*
g:tex_conceal	syntax.txt	/*g:tex_conceal*
g:tex_fast	syntax.txt	/*g:tex_fast*
g:tex_flavor	filetype.txt	/*g:tex_flavor*
g:tex_fold_enabled	syntax.txt	/*g:tex_fold_enabled*
g:tex_isk	syntax.txt	/*g:tex_isk*
g:tex_no_error	syntax.txt	/*g:tex_no_error*
g:tex_nospell	syntax.txt	/*g:tex_nospell*
g:tex_stylish	syntax.txt	/*g:tex_stylish*
g:tex_subscripts	syntax.txt	/*g:tex_subscripts*
g:tex_superscripts	syntax.txt	/*g:tex_superscripts*
g:tex_verbspell	syntax.txt	/*g:tex_verbspell*
g:var	eval.txt	/*g:var*
g:vimball_home	pi_vimball.txt	/*g:vimball_home*
g:vimball_mkdir	pi_vimball.txt	/*g:vimball_mkdir*
g:vimsyn_embed	syntax.txt	/*g:vimsyn_embed*
g:vimsyn_folding	syntax.txt	/*g:vimsyn_folding*
g:vimsyn_maxlines	syntax.txt	/*g:vimsyn_maxlines*
g:vimsyn_minlines	syntax.txt	/*g:vimsyn_minlines*
g:vimsyn_noerror	syntax.txt	/*g:vimsyn_noerror*
g:yaml_schema	syntax.txt	/*g:yaml_schema*
g:zipPlugin_ext	pi_zip.txt	/*g:zipPlugin_ext*
g:zip_extractcmd	pi_zip.txt	/*g:zip_extractcmd*
g:zip_nomax	pi_zip.txt	/*g:zip_nomax*
g:zip_shq	pi_zip.txt	/*g:zip_shq*
g:zip_unzipcmd	pi_zip.txt	/*g:zip_unzipcmd*
g:zip_zipcmd	pi_zip.txt	/*g:zip_zipcmd*
g;	motion.txt	/*g;*
g<	message.txt	/*g<*
g<Down>	motion.txt	/*g<Down>*
g<End>	motion.txt	/*g<End>*
g<Home>	motion.txt	/*g<Home>*
g<LeftMouse>	tagsrch.txt	/*g<LeftMouse>*
g<RightMouse>	tagsrch.txt	/*g<RightMouse>*
g<Up>	motion.txt	/*g<Up>*
g?	change.txt	/*g?*
g??	change.txt	/*g??*
g?g?	change.txt	/*g?g?*
g@	map.txt	/*g@*
gD	pattern.txt	/*gD*
gE	motion.txt	/*gE*
gF	editing.txt	/*gF*
gH	visual.txt	/*gH*
gI	insert.txt	/*gI*
gJ	change.txt	/*gJ*
gN	visual.txt	/*gN*
gP	change.txt	/*gP*
gQ	intro.txt	/*gQ*
gR	change.txt	/*gR*
gT	tabpage.txt	/*gT*
gU	change.txt	/*gU*
gUU	change.txt	/*gUU*
gUgU	change.txt	/*gUgU*
gV	visual.txt	/*gV*
g]	tagsrch.txt	/*g]*
g^	motion.txt	/*g^*
g_	motion.txt	/*g_*
g_CTRL-A	various.txt	/*g_CTRL-A*
g_CTRL-G	editing.txt	/*g_CTRL-G*
g_CTRL-H	visual.txt	/*g_CTRL-H*
g_CTRL-]	tagsrch.txt	/*g_CTRL-]*
g`	motion.txt	/*g`*
g`a	motion.txt	/*g`a*
ga	various.txt	/*ga*
garbagecollect()	eval.txt	/*garbagecollect()*
gd	pattern.txt	/*gd*
gdb	debug.txt	/*gdb*
gdb-version	terminal.txt	/*gdb-version*
ge	motion.txt	/*ge*
get()	eval.txt	/*get()*
get-ms-debuggers	debug.txt	/*get-ms-debuggers*
getbufinfo()	eval.txt	/*getbufinfo()*
getbufline()	eval.txt	/*getbufline()*
getbufvar()	eval.txt	/*getbufvar()*
getchangelist()	eval.txt	/*getchangelist()*
getchar()	eval.txt	/*getchar()*
getcharmod()	eval.txt	/*getcharmod()*
getcharsearch()	eval.txt	/*getcharsearch()*
getcmdline()	eval.txt	/*getcmdline()*
getcmdpos()	eval.txt	/*getcmdpos()*
getcmdtype()	eval.txt	/*getcmdtype()*
getcmdwintype()	eval.txt	/*getcmdwintype()*
getcompletion()	eval.txt	/*getcompletion()*
getcurpos()	eval.txt	/*getcurpos()*
getcwd()	eval.txt	/*getcwd()*
getfontname()	eval.txt	/*getfontname()*
getfperm()	eval.txt	/*getfperm()*
getfsize()	eval.txt	/*getfsize()*
getftime()	eval.txt	/*getftime()*
getftype()	eval.txt	/*getftype()*
getjumplist()	eval.txt	/*getjumplist()*
getlatestvimscripts-install	pi_getscript.txt	/*getlatestvimscripts-install*
getline()	eval.txt	/*getline()*
getloclist()	eval.txt	/*getloclist()*
getmatches()	eval.txt	/*getmatches()*
getpid()	eval.txt	/*getpid()*
getpos()	eval.txt	/*getpos()*
getqflist()	eval.txt	/*getqflist()*
getreg()	eval.txt	/*getreg()*
getregtype()	eval.txt	/*getregtype()*
getscript	pi_getscript.txt	/*getscript*
getscript-autoinstall	pi_getscript.txt	/*getscript-autoinstall*
getscript-data	pi_getscript.txt	/*getscript-data*
getscript-history	pi_getscript.txt	/*getscript-history*
getscript-plugins	pi_getscript.txt	/*getscript-plugins*
getscript-start	pi_getscript.txt	/*getscript-start*
gettabinfo()	eval.txt	/*gettabinfo()*
gettabvar()	eval.txt	/*gettabvar()*
gettabwinvar()	eval.txt	/*gettabwinvar()*
getwininfo()	eval.txt	/*getwininfo()*
getwinpos()	eval.txt	/*getwinpos()*
getwinposx()	eval.txt	/*getwinposx()*
getwinposy()	eval.txt	/*getwinposy()*
getwinvar()	eval.txt	/*getwinvar()*
gex	starting.txt	/*gex*
gf	editing.txt	/*gf*
gg	motion.txt	/*gg*
gh	visual.txt	/*gh*
gi	insert.txt	/*gi*
gj	motion.txt	/*gj*
gk	motion.txt	/*gk*
glob()	eval.txt	/*glob()*
glob2regpat()	eval.txt	/*glob2regpat()*
global-ime	mbyte.txt	/*global-ime*
global-local	options.txt	/*global-local*
global-variable	eval.txt	/*global-variable*
global_markfilelist	pi_netrw.txt	/*global_markfilelist*
globpath()	eval.txt	/*globpath()*
glvs	pi_getscript.txt	/*glvs*
glvs-alg	pi_getscript.txt	/*glvs-alg*
glvs-algorithm	pi_getscript.txt	/*glvs-algorithm*
glvs-autoinstall	pi_getscript.txt	/*glvs-autoinstall*
glvs-contents	pi_getscript.txt	/*glvs-contents*
glvs-copyright	pi_getscript.txt	/*glvs-copyright*
glvs-data	pi_getscript.txt	/*glvs-data*
glvs-dist-install	pi_getscript.txt	/*glvs-dist-install*
glvs-hist	pi_getscript.txt	/*glvs-hist*
glvs-install	pi_getscript.txt	/*glvs-install*
glvs-options	pi_getscript.txt	/*glvs-options*
glvs-plugins	pi_getscript.txt	/*glvs-plugins*
glvs-usage	pi_getscript.txt	/*glvs-usage*
gm	motion.txt	/*gm*
gn	visual.txt	/*gn*
gnat#Insert_Tags_Header()	ft_ada.txt	/*gnat#Insert_Tags_Header()*
gnat#New()	ft_ada.txt	/*gnat#New()*
gnat-xref	ft_ada.txt	/*gnat-xref*
gnat_members	ft_ada.txt	/*gnat_members*
gnome-session	gui_x11.txt	/*gnome-session*
go	motion.txt	/*go*
gp	change.txt	/*gp*
gpm-mouse	term.txt	/*gpm-mouse*
gq	change.txt	/*gq*
gqap	change.txt	/*gqap*
gqgq	change.txt	/*gqgq*
gqq	change.txt	/*gqq*
gr	change.txt	/*gr*
graphic-option-gone	version4.txt	/*graphic-option-gone*
greek	options.txt	/*greek*
grep	quickfix.txt	/*grep*
groff.vim	syntax.txt	/*groff.vim*
gross-national-happiness	intro.txt	/*gross-national-happiness*
group-name	syntax.txt	/*group-name*
gs	various.txt	/*gs*
gsp.vim	syntax.txt	/*gsp.vim*
gstar	pattern.txt	/*gstar*
gt	tabpage.txt	/*gt*
gtk-css	gui_x11.txt	/*gtk-css*
gtk-tooltip-colors	gui_x11.txt	/*gtk-tooltip-colors*
gu	change.txt	/*gu*
gugu	change.txt	/*gugu*
gui	gui.txt	/*gui*
gui-IME	gui.txt	/*gui-IME*
gui-clipboard	gui_w32.txt	/*gui-clipboard*
gui-colors	syntax.txt	/*gui-colors*
gui-extras	gui.txt	/*gui-extras*
gui-footer	debugger.txt	/*gui-footer*
gui-fork	gui_x11.txt	/*gui-fork*
gui-functions	usr_41.txt	/*gui-functions*
gui-gnome	gui_x11.txt	/*gui-gnome*
gui-gnome-session	gui_x11.txt	/*gui-gnome-session*
gui-gtk	gui_x11.txt	/*gui-gtk*
gui-gtk-socketid	gui_x11.txt	/*gui-gtk-socketid*
gui-horiz-scroll	gui.txt	/*gui-horiz-scroll*
gui-init	gui.txt	/*gui-init*
gui-kde	gui_x11.txt	/*gui-kde*
gui-mouse	gui.txt	/*gui-mouse*
gui-mouse-focus	gui.txt	/*gui-mouse-focus*
gui-mouse-mapping	gui.txt	/*gui-mouse-mapping*
gui-mouse-modeless	gui.txt	/*gui-mouse-modeless*
gui-mouse-move	gui.txt	/*gui-mouse-move*
gui-mouse-select	gui.txt	/*gui-mouse-select*
gui-mouse-status	gui.txt	/*gui-mouse-status*
gui-mouse-various	gui.txt	/*gui-mouse-various*
gui-pty	gui_x11.txt	/*gui-pty*
gui-pty-erase	gui_x11.txt	/*gui-pty-erase*
gui-resources	gui_x11.txt	/*gui-resources*
gui-scrollbars	gui.txt	/*gui-scrollbars*
gui-selections	gui.txt	/*gui-selections*
gui-shell	gui.txt	/*gui-shell*
gui-shell-win32	gui_w32.txt	/*gui-shell-win32*
gui-start	gui.txt	/*gui-start*
gui-toolbar	gui.txt	/*gui-toolbar*
gui-vert-scroll	gui.txt	/*gui-vert-scroll*
gui-w32	gui_w32.txt	/*gui-w32*
gui-w32-cmdargs	gui_w32.txt	/*gui-w32-cmdargs*
gui-w32-dialogs	gui_w32.txt	/*gui-w32-dialogs*
gui-w32-printing	gui_w32.txt	/*gui-w32-printing*
gui-w32-start	gui_w32.txt	/*gui-w32-start*
gui-w32-various	gui_w32.txt	/*gui-w32-various*
gui-w32-windowid	gui_w32.txt	/*gui-w32-windowid*
gui-w32s	os_win32.txt	/*gui-w32s*
gui-win32-maximized	gui_w32.txt	/*gui-win32-maximized*
gui-x11	gui_x11.txt	/*gui-x11*
gui-x11-athena	gui_x11.txt	/*gui-x11-athena*
gui-x11-compiling	gui_x11.txt	/*gui-x11-compiling*
gui-x11-gtk	gui_x11.txt	/*gui-x11-gtk*
gui-x11-kde	gui_x11.txt	/*gui-x11-kde*
gui-x11-misc	gui_x11.txt	/*gui-x11-misc*
gui-x11-motif	gui_x11.txt	/*gui-x11-motif*
gui-x11-neXtaw	gui_x11.txt	/*gui-x11-neXtaw*
gui-x11-printing	gui_x11.txt	/*gui-x11-printing*
gui-x11-start	gui_x11.txt	/*gui-x11-start*
gui-x11-various	gui_x11.txt	/*gui-x11-various*
gui.txt	gui.txt	/*gui.txt*
gui_w32.txt	gui_w32.txt	/*gui_w32.txt*
gui_x11.txt	gui_x11.txt	/*gui_x11.txt*
guifontwide_gtk	options.txt	/*guifontwide_gtk*
guifontwide_win_mbyte	options.txt	/*guifontwide_win_mbyte*
guioptions_a	options.txt	/*guioptions_a*
guu	change.txt	/*guu*
gv	visual.txt	/*gv*
gview	starting.txt	/*gview*
gvim	starting.txt	/*gvim*
gvimdiff	diff.txt	/*gvimdiff*
gvimrc	gui.txt	/*gvimrc*
gw	change.txt	/*gw*
gwgw	change.txt	/*gwgw*
gww	change.txt	/*gww*
gzip	pi_gzip.txt	/*gzip*
gzip-autocmd	pi_gzip.txt	/*gzip-autocmd*
gzip-example	autocmd.txt	/*gzip-example*
gzip-helpfile	tips.txt	/*gzip-helpfile*
g~	change.txt	/*g~*
g~g~	change.txt	/*g~g~*
g~~	change.txt	/*g~~*
h	motion.txt	/*h*
hangul	hangulin.txt	/*hangul*
hangulin.txt	hangulin.txt	/*hangulin.txt*
has()	eval.txt	/*has()*
has-patch	eval.txt	/*has-patch*
has-python	if_pyth.txt	/*has-python*
has-pythonx	if_pyth.txt	/*has-pythonx*
has_key()	eval.txt	/*has_key()*
haskell.vim	syntax.txt	/*haskell.vim*
haslocaldir()	eval.txt	/*haslocaldir()*
hasmapto()	eval.txt	/*hasmapto()*
hebrew	hebrew.txt	/*hebrew*
hebrew.txt	hebrew.txt	/*hebrew.txt*
help	helphelp.txt	/*help*
help-context	help.txt	/*help-context*
help-summary	usr_02.txt	/*help-summary*
help-tags	tags	1
help-translated	helphelp.txt	/*help-translated*
help-writing	helphelp.txt	/*help-writing*
help-xterm-window	helphelp.txt	/*help-xterm-window*
help.txt	help.txt	/*help.txt*
helpfile_name.txt	helphelp.txt	/*helpfile_name.txt*
helphelp	helphelp.txt	/*helphelp*
helphelp.txt	helphelp.txt	/*helphelp.txt*
hex-editing	tips.txt	/*hex-editing*
hex-number	eval.txt	/*hex-number*
hidden-buffer	windows.txt	/*hidden-buffer*
hidden-changed	version5.txt	/*hidden-changed*
hidden-menus	gui.txt	/*hidden-menus*
hidden-options	options.txt	/*hidden-options*
hidden-quit	windows.txt	/*hidden-quit*
highlight-args	syntax.txt	/*highlight-args*
highlight-changed	version4.txt	/*highlight-changed*
highlight-cterm	syntax.txt	/*highlight-cterm*
highlight-ctermbg	syntax.txt	/*highlight-ctermbg*
highlight-ctermfg	syntax.txt	/*highlight-ctermfg*
highlight-default	syntax.txt	/*highlight-default*
highlight-font	syntax.txt	/*highlight-font*
highlight-groups	syntax.txt	/*highlight-groups*
highlight-gui	syntax.txt	/*highlight-gui*
highlight-guibg	syntax.txt	/*highlight-guibg*
highlight-guifg	syntax.txt	/*highlight-guifg*
highlight-guisp	syntax.txt	/*highlight-guisp*
highlight-start	syntax.txt	/*highlight-start*
highlight-stop	syntax.txt	/*highlight-stop*
highlight-term	syntax.txt	/*highlight-term*
highlightID()	eval.txt	/*highlightID()*
highlight_exists()	eval.txt	/*highlight_exists()*
highlighting-functions	usr_41.txt	/*highlighting-functions*
hist-names	eval.txt	/*hist-names*
histadd()	eval.txt	/*histadd()*
histdel()	eval.txt	/*histdel()*
histget()	eval.txt	/*histget()*
histnr()	eval.txt	/*histnr()*
history	cmdline.txt	/*history*
history-functions	usr_41.txt	/*history-functions*
hit-enter	message.txt	/*hit-enter*
hit-enter-prompt	message.txt	/*hit-enter-prompt*
hit-return	message.txt	/*hit-return*
hitest.vim	syntax.txt	/*hitest.vim*
hjkl	usr_02.txt	/*hjkl*
hl-ColorColumn	syntax.txt	/*hl-ColorColumn*
hl-Conceal	syntax.txt	/*hl-Conceal*
hl-Cursor	syntax.txt	/*hl-Cursor*
hl-CursorColumn	syntax.txt	/*hl-CursorColumn*
hl-CursorIM	syntax.txt	/*hl-CursorIM*
hl-CursorLine	syntax.txt	/*hl-CursorLine*
hl-CursorLineNr	syntax.txt	/*hl-CursorLineNr*
hl-DiffAdd	syntax.txt	/*hl-DiffAdd*
hl-DiffChange	syntax.txt	/*hl-DiffChange*
hl-DiffDelete	syntax.txt	/*hl-DiffDelete*
hl-DiffText	syntax.txt	/*hl-DiffText*
hl-Directory	syntax.txt	/*hl-Directory*
hl-EndOfBuffer	syntax.txt	/*hl-EndOfBuffer*
hl-ErrorMsg	syntax.txt	/*hl-ErrorMsg*
hl-FoldColumn	syntax.txt	/*hl-FoldColumn*
hl-Folded	syntax.txt	/*hl-Folded*
hl-Ignore	syntax.txt	/*hl-Ignore*
hl-IncSearch	syntax.txt	/*hl-IncSearch*
hl-LineNr	syntax.txt	/*hl-LineNr*
hl-MatchParen	syntax.txt	/*hl-MatchParen*
hl-Menu	syntax.txt	/*hl-Menu*
hl-ModeMsg	syntax.txt	/*hl-ModeMsg*
hl-MoreMsg	syntax.txt	/*hl-MoreMsg*
hl-NonText	syntax.txt	/*hl-NonText*
hl-Normal	syntax.txt	/*hl-Normal*
hl-Pmenu	syntax.txt	/*hl-Pmenu*
hl-PmenuSbar	syntax.txt	/*hl-PmenuSbar*
hl-PmenuSel	syntax.txt	/*hl-PmenuSel*
hl-PmenuThumb	syntax.txt	/*hl-PmenuThumb*
hl-Question	syntax.txt	/*hl-Question*
hl-QuickFixLine	syntax.txt	/*hl-QuickFixLine*
hl-Scrollbar	syntax.txt	/*hl-Scrollbar*
hl-Search	syntax.txt	/*hl-Search*
hl-SignColumn	syntax.txt	/*hl-SignColumn*
hl-SpecialKey	syntax.txt	/*hl-SpecialKey*
hl-SpellBad	syntax.txt	/*hl-SpellBad*
hl-SpellCap	syntax.txt	/*hl-SpellCap*
hl-SpellLocal	syntax.txt	/*hl-SpellLocal*
hl-SpellRare	syntax.txt	/*hl-SpellRare*
hl-StatusLine	syntax.txt	/*hl-StatusLine*
hl-StatusLineNC	syntax.txt	/*hl-StatusLineNC*
hl-StatusLineTerm	syntax.txt	/*hl-StatusLineTerm*
hl-StatusLineTermNC	syntax.txt	/*hl-StatusLineTermNC*
hl-TabLine	syntax.txt	/*hl-TabLine*
hl-TabLineFill	syntax.txt	/*hl-TabLineFill*
hl-TabLineSel	syntax.txt	/*hl-TabLineSel*
hl-Terminal	syntax.txt	/*hl-Terminal*
hl-Title	syntax.txt	/*hl-Title*
hl-Tooltip	syntax.txt	/*hl-Tooltip*
hl-User1	syntax.txt	/*hl-User1*
hl-User1..9	syntax.txt	/*hl-User1..9*
hl-User9	syntax.txt	/*hl-User9*
hl-VertSplit	syntax.txt	/*hl-VertSplit*
hl-Visual	syntax.txt	/*hl-Visual*
hl-VisualNOS	syntax.txt	/*hl-VisualNOS*
hl-WarningMsg	syntax.txt	/*hl-WarningMsg*
hl-WildMenu	syntax.txt	/*hl-WildMenu*
hl-debugBreakpoint	terminal.txt	/*hl-debugBreakpoint*
hl-debugPC	terminal.txt	/*hl-debugPC*
hlID()	eval.txt	/*hlID()*
hlexists()	eval.txt	/*hlexists()*
hlsearch-variable	eval.txt	/*hlsearch-variable*
holy-grail	index.txt	/*holy-grail*
home	intro.txt	/*home*
home-replace	editing.txt	/*home-replace*
hostname()	eval.txt	/*hostname()*
how-do-i	howto.txt	/*how-do-i*
how-to	howto.txt	/*how-to*
howdoi	howto.txt	/*howdoi*
howto	howto.txt	/*howto*
howto.txt	howto.txt	/*howto.txt*
hpterm	term.txt	/*hpterm*
hpterm-color	syntax.txt	/*hpterm-color*
html-flavor	insert.txt	/*html-flavor*
html-indent	indent.txt	/*html-indent*
html-indenting	indent.txt	/*html-indenting*
html.vim	syntax.txt	/*html.vim*
htmlos.vim	syntax.txt	/*htmlos.vim*
http	pi_netrw.txt	/*http*
i	insert.txt	/*i*
i'	motion.txt	/*i'*
i(	motion.txt	/*i(*
i)	motion.txt	/*i)*
i<	motion.txt	/*i<*
i>	motion.txt	/*i>*
iB	motion.txt	/*iB*
iBus	gui.txt	/*iBus*
iW	motion.txt	/*iW*
i[	motion.txt	/*i[*
i]	motion.txt	/*i]*
i_0_CTRL-D	insert.txt	/*i_0_CTRL-D*
i_<BS>	insert.txt	/*i_<BS>*
i_<C-End>	insert.txt	/*i_<C-End>*
i_<C-Home>	insert.txt	/*i_<C-Home>*
i_<C-Left>	insert.txt	/*i_<C-Left>*
i_<C-PageDown>	tabpage.txt	/*i_<C-PageDown>*
i_<C-PageUp>	tabpage.txt	/*i_<C-PageUp>*
i_<C-Right>	insert.txt	/*i_<C-Right>*
i_<CR>	insert.txt	/*i_<CR>*
i_<Del>	insert.txt	/*i_<Del>*
i_<Down>	insert.txt	/*i_<Down>*
i_<End>	insert.txt	/*i_<End>*
i_<Esc>	insert.txt	/*i_<Esc>*
i_<F1>	helphelp.txt	/*i_<F1>*
i_<Help>	helphelp.txt	/*i_<Help>*
i_<Home>	insert.txt	/*i_<Home>*
i_<Insert>	insert.txt	/*i_<Insert>*
i_<Left>	insert.txt	/*i_<Left>*
i_<LeftMouse>	insert.txt	/*i_<LeftMouse>*
i_<NL>	insert.txt	/*i_<NL>*
i_<PageDown>	insert.txt	/*i_<PageDown>*
i_<PageUp>	insert.txt	/*i_<PageUp>*
i_<Right>	insert.txt	/*i_<Right>*
i_<S-Down>	insert.txt	/*i_<S-Down>*
i_<S-Left>	insert.txt	/*i_<S-Left>*
i_<S-Right>	insert.txt	/*i_<S-Right>*
i_<S-ScrollWheelDown>	insert.txt	/*i_<S-ScrollWheelDown>*
i_<S-ScrollWheelLeft>	insert.txt	/*i_<S-ScrollWheelLeft>*
i_<S-ScrollWheelRight>	insert.txt	/*i_<S-ScrollWheelRight>*
i_<S-ScrollWheelUp>	insert.txt	/*i_<S-ScrollWheelUp>*
i_<S-Up>	insert.txt	/*i_<S-Up>*
i_<ScrollWheelDown>	insert.txt	/*i_<ScrollWheelDown>*
i_<ScrollWheelLeft>	insert.txt	/*i_<ScrollWheelLeft>*
i_<ScrollWheelRight>	insert.txt	/*i_<ScrollWheelRight>*
i_<ScrollWheelUp>	insert.txt	/*i_<ScrollWheelUp>*
i_<Tab>	insert.txt	/*i_<Tab>*
i_<Up>	insert.txt	/*i_<Up>*
i_BS	insert.txt	/*i_BS*
i_CTRL-<PageDown>	tabpage.txt	/*i_CTRL-<PageDown>*
i_CTRL-<PageUp>	tabpage.txt	/*i_CTRL-<PageUp>*
i_CTRL-@	insert.txt	/*i_CTRL-@*
i_CTRL-A	insert.txt	/*i_CTRL-A*
i_CTRL-B-gone	version5.txt	/*i_CTRL-B-gone*
i_CTRL-C	insert.txt	/*i_CTRL-C*
i_CTRL-D	insert.txt	/*i_CTRL-D*
i_CTRL-E	insert.txt	/*i_CTRL-E*
i_CTRL-F	indent.txt	/*i_CTRL-F*
i_CTRL-G_<Down>	insert.txt	/*i_CTRL-G_<Down>*
i_CTRL-G_<Up>	insert.txt	/*i_CTRL-G_<Up>*
i_CTRL-G_CTRL-J	insert.txt	/*i_CTRL-G_CTRL-J*
i_CTRL-G_CTRL-K	insert.txt	/*i_CTRL-G_CTRL-K*
i_CTRL-G_U	insert.txt	/*i_CTRL-G_U*
i_CTRL-G_j	insert.txt	/*i_CTRL-G_j*
i_CTRL-G_k	insert.txt	/*i_CTRL-G_k*
i_CTRL-G_u	insert.txt	/*i_CTRL-G_u*
i_CTRL-H	insert.txt	/*i_CTRL-H*
i_CTRL-I	insert.txt	/*i_CTRL-I*
i_CTRL-J	insert.txt	/*i_CTRL-J*
i_CTRL-K	insert.txt	/*i_CTRL-K*
i_CTRL-L	insert.txt	/*i_CTRL-L*
i_CTRL-M	insert.txt	/*i_CTRL-M*
i_CTRL-N	insert.txt	/*i_CTRL-N*
i_CTRL-O	insert.txt	/*i_CTRL-O*
i_CTRL-P	insert.txt	/*i_CTRL-P*
i_CTRL-Q	insert.txt	/*i_CTRL-Q*
i_CTRL-R	insert.txt	/*i_CTRL-R*
i_CTRL-R_=	insert.txt	/*i_CTRL-R_=*
i_CTRL-R_CTRL-O	insert.txt	/*i_CTRL-R_CTRL-O*
i_CTRL-R_CTRL-P	insert.txt	/*i_CTRL-R_CTRL-P*
i_CTRL-R_CTRL-R	insert.txt	/*i_CTRL-R_CTRL-R*
i_CTRL-T	insert.txt	/*i_CTRL-T*
i_CTRL-U	insert.txt	/*i_CTRL-U*
i_CTRL-V	insert.txt	/*i_CTRL-V*
i_CTRL-V_digit	insert.txt	/*i_CTRL-V_digit*
i_CTRL-W	insert.txt	/*i_CTRL-W*
i_CTRL-X	insert.txt	/*i_CTRL-X*
i_CTRL-X_CTRL-D	insert.txt	/*i_CTRL-X_CTRL-D*
i_CTRL-X_CTRL-E	insert.txt	/*i_CTRL-X_CTRL-E*
i_CTRL-X_CTRL-F	insert.txt	/*i_CTRL-X_CTRL-F*
i_CTRL-X_CTRL-I	insert.txt	/*i_CTRL-X_CTRL-I*
i_CTRL-X_CTRL-K	insert.txt	/*i_CTRL-X_CTRL-K*
i_CTRL-X_CTRL-L	insert.txt	/*i_CTRL-X_CTRL-L*
i_CTRL-X_CTRL-N	insert.txt	/*i_CTRL-X_CTRL-N*
i_CTRL-X_CTRL-O	insert.txt	/*i_CTRL-X_CTRL-O*
i_CTRL-X_CTRL-P	insert.txt	/*i_CTRL-X_CTRL-P*
i_CTRL-X_CTRL-S	insert.txt	/*i_CTRL-X_CTRL-S*
i_CTRL-X_CTRL-T	insert.txt	/*i_CTRL-X_CTRL-T*
i_CTRL-X_CTRL-U	insert.txt	/*i_CTRL-X_CTRL-U*
i_CTRL-X_CTRL-V	insert.txt	/*i_CTRL-X_CTRL-V*
i_CTRL-X_CTRL-Y	insert.txt	/*i_CTRL-X_CTRL-Y*
i_CTRL-X_CTRL-]	insert.txt	/*i_CTRL-X_CTRL-]*
i_CTRL-X_index	index.txt	/*i_CTRL-X_index*
i_CTRL-X_s	insert.txt	/*i_CTRL-X_s*
i_CTRL-Y	insert.txt	/*i_CTRL-Y*
i_CTRL-Z	options.txt	/*i_CTRL-Z*
i_CTRL-[	insert.txt	/*i_CTRL-[*
i_CTRL-\_CTRL-G	intro.txt	/*i_CTRL-\\_CTRL-G*
i_CTRL-\_CTRL-N	intro.txt	/*i_CTRL-\\_CTRL-N*
i_CTRL-\_CTRL-O	insert.txt	/*i_CTRL-\\_CTRL-O*
i_CTRL-]	insert.txt	/*i_CTRL-]*
i_CTRL-^	insert.txt	/*i_CTRL-^*
i_CTRL-_	insert.txt	/*i_CTRL-_*
i_DEL	insert.txt	/*i_DEL*
i_Tab	insert.txt	/*i_Tab*
i_^_CTRL-D	insert.txt	/*i_^_CTRL-D*
i_backspacing	insert.txt	/*i_backspacing*
i_digraph	digraph.txt	/*i_digraph*
i_esc	intro.txt	/*i_esc*
i`	motion.txt	/*i`*
ia64.vim	syntax.txt	/*ia64.vim*
ib	motion.txt	/*ib*
iccf	uganda.txt	/*iccf*
iccf-donations	uganda.txt	/*iccf-donations*
icon-changed	version4.txt	/*icon-changed*
iconise	starting.txt	/*iconise*
iconize	starting.txt	/*iconize*
iconv()	eval.txt	/*iconv()*
iconv-dynamic	mbyte.txt	/*iconv-dynamic*
ident-search	tips.txt	/*ident-search*
idl-syntax	syntax.txt	/*idl-syntax*
idl.vim	syntax.txt	/*idl.vim*
if_cscop.txt	if_cscop.txt	/*if_cscop.txt*
if_lua.txt	if_lua.txt	/*if_lua.txt*
if_mzsch.txt	if_mzsch.txt	/*if_mzsch.txt*
if_ole.txt	if_ole.txt	/*if_ole.txt*
if_perl.txt	if_perl.txt	/*if_perl.txt*
if_pyth.txt	if_pyth.txt	/*if_pyth.txt*
if_ruby.txt	if_ruby.txt	/*if_ruby.txt*
if_sniff.txt	if_sniff.txt	/*if_sniff.txt*
if_tcl.txt	if_tcl.txt	/*if_tcl.txt*
ignore-errors	eval.txt	/*ignore-errors*
improved-autocmds-5.4	version5.txt	/*improved-autocmds-5.4*
improved-quickfix	version5.txt	/*improved-quickfix*
improved-sessions	version5.txt	/*improved-sessions*
improved-viminfo	version5.txt	/*improved-viminfo*
improvements-5	version5.txt	/*improvements-5*
improvements-6	version6.txt	/*improvements-6*
improvements-7	version7.txt	/*improvements-7*
improvements-8	version8.txt	/*improvements-8*
in_bot	channel.txt	/*in_bot*
in_buf	channel.txt	/*in_buf*
in_io-buffer	channel.txt	/*in_io-buffer*
in_mode	channel.txt	/*in_mode*
in_name	channel.txt	/*in_name*
in_top	channel.txt	/*in_top*
inactive-buffer	windows.txt	/*inactive-buffer*
include-search	tagsrch.txt	/*include-search*
inclusive	motion.txt	/*inclusive*
incomp-small-6	version6.txt	/*incomp-small-6*
incompatible-5	version5.txt	/*incompatible-5*
incompatible-6	version6.txt	/*incompatible-6*
incompatible-7	version7.txt	/*incompatible-7*
incompatible-8	version8.txt	/*incompatible-8*
indent()	eval.txt	/*indent()*
indent-expression	indent.txt	/*indent-expression*
indent.txt	indent.txt	/*indent.txt*
indentkeys-format	indent.txt	/*indentkeys-format*
index	index.txt	/*index*
index()	eval.txt	/*index()*
index.txt	index.txt	/*index.txt*
info-message	starting.txt	/*info-message*
inform.vim	syntax.txt	/*inform.vim*
informix	ft_sql.txt	/*informix*
initialization	starting.txt	/*initialization*
input()	eval.txt	/*input()*
inputdialog()	eval.txt	/*inputdialog()*
inputlist()	eval.txt	/*inputlist()*
inputrestore()	eval.txt	/*inputrestore()*
inputsave()	eval.txt	/*inputsave()*
inputsecret()	eval.txt	/*inputsecret()*
ins-completion	insert.txt	/*ins-completion*
ins-completion-menu	insert.txt	/*ins-completion-menu*
ins-expandtab	insert.txt	/*ins-expandtab*
ins-reverse	rileft.txt	/*ins-reverse*
ins-smarttab	insert.txt	/*ins-smarttab*
ins-softtabstop	insert.txt	/*ins-softtabstop*
ins-special-keys	insert.txt	/*ins-special-keys*
ins-special-special	insert.txt	/*ins-special-special*
ins-textwidth	insert.txt	/*ins-textwidth*
insert	insert.txt	/*insert*
insert()	eval.txt	/*insert()*
insert-index	index.txt	/*insert-index*
insert.txt	insert.txt	/*insert.txt*
insert_expand	insert.txt	/*insert_expand*
inserting	insert.txt	/*inserting*
inserting-ex	insert.txt	/*inserting-ex*
inserting-file	insert.txt	/*inserting-file*
insertmode-variable	eval.txt	/*insertmode-variable*
install	usr_90.txt	/*install*
install-home	usr_90.txt	/*install-home*
install-registry	gui_w32.txt	/*install-registry*
intel-itanium	syntax.txt	/*intel-itanium*
intellimouse-wheel-problems	gui_w32.txt	/*intellimouse-wheel-problems*
interactive-functions	usr_41.txt	/*interactive-functions*
interfaces-5.2	version5.txt	/*interfaces-5.2*
internal-variables	eval.txt	/*internal-variables*
internal-wordlist	spell.txt	/*internal-wordlist*
internet	intro.txt	/*internet*
intro	intro.txt	/*intro*
intro.txt	intro.txt	/*intro.txt*
inverse	syntax.txt	/*inverse*
invert()	eval.txt	/*invert()*
ip	motion.txt	/*ip*
iquote	motion.txt	/*iquote*
is	motion.txt	/*is*
isdirectory()	eval.txt	/*isdirectory()*
islocked()	eval.txt	/*islocked()*
isnan()	eval.txt	/*isnan()*
it	motion.txt	/*it*
italic	syntax.txt	/*italic*
items()	eval.txt	/*items()*
iw	motion.txt	/*iw*
i{	motion.txt	/*i{*
i}	motion.txt	/*i}*
j	motion.txt	/*j*
java-cinoptions	indent.txt	/*java-cinoptions*
java-indenting	indent.txt	/*java-indenting*
java.vim	syntax.txt	/*java.vim*
javascript-cinoptions	indent.txt	/*javascript-cinoptions*
javascript-indenting	indent.txt	/*javascript-indenting*
job	channel.txt	/*job*
job-callback	channel.txt	/*job-callback*
job-channel-overview	channel.txt	/*job-channel-overview*
job-close_cb	channel.txt	/*job-close_cb*
job-control	channel.txt	/*job-control*
job-drop	channel.txt	/*job-drop*
job-err_cb	channel.txt	/*job-err_cb*
job-err_io	channel.txt	/*job-err_io*
job-exit_cb	channel.txt	/*job-exit_cb*
job-functions	usr_41.txt	/*job-functions*
job-in_io	channel.txt	/*job-in_io*
job-options	channel.txt	/*job-options*
job-out_cb	channel.txt	/*job-out_cb*
job-out_io	channel.txt	/*job-out_io*
job-start	channel.txt	/*job-start*
job-start-if-needed	channel.txt	/*job-start-if-needed*
job-start-nochannel	channel.txt	/*job-start-nochannel*
job-stoponexit	channel.txt	/*job-stoponexit*
job-term	channel.txt	/*job-term*
job-timeout	channel.txt	/*job-timeout*
job_getchannel()	eval.txt	/*job_getchannel()*
job_info()	eval.txt	/*job_info()*
job_setoptions()	eval.txt	/*job_setoptions()*
job_start()	eval.txt	/*job_start()*
job_status()	eval.txt	/*job_status()*
job_stop()	eval.txt	/*job_stop()*
join()	eval.txt	/*join()*
js_decode()	eval.txt	/*js_decode()*
js_encode()	eval.txt	/*js_encode()*
jsbterm-mouse	options.txt	/*jsbterm-mouse*
json_decode()	eval.txt	/*json_decode()*
json_encode()	eval.txt	/*json_encode()*
jtags	tagsrch.txt	/*jtags*
jump-motions	motion.txt	/*jump-motions*
jumplist	motion.txt	/*jumplist*
jumpto-diffs	diff.txt	/*jumpto-diffs*
k	motion.txt	/*k*
kcc	uganda.txt	/*kcc*
kde	gui_x11.txt	/*kde*
key-codes	intro.txt	/*key-codes*
key-codes-changed	version4.txt	/*key-codes-changed*
key-mapping	map.txt	/*key-mapping*
key-notation	intro.txt	/*key-notation*
key-variable	eval.txt	/*key-variable*
keycodes	intro.txt	/*keycodes*
keymap-accents	mbyte.txt	/*keymap-accents*
keymap-file-format	mbyte.txt	/*keymap-file-format*
keymap-hebrew	mbyte.txt	/*keymap-hebrew*
keypad-0	intro.txt	/*keypad-0*
keypad-9	intro.txt	/*keypad-9*
keypad-comma	term.txt	/*keypad-comma*
keypad-divide	intro.txt	/*keypad-divide*
keypad-end	intro.txt	/*keypad-end*
keypad-enter	intro.txt	/*keypad-enter*
keypad-home	intro.txt	/*keypad-home*
keypad-minus	intro.txt	/*keypad-minus*
keypad-multiply	intro.txt	/*keypad-multiply*
keypad-page-down	intro.txt	/*keypad-page-down*
keypad-page-up	intro.txt	/*keypad-page-up*
keypad-plus	intro.txt	/*keypad-plus*
keypad-point	intro.txt	/*keypad-point*
keys()	eval.txt	/*keys()*
known-bugs	todo.txt	/*known-bugs*
l	motion.txt	/*l*
l:	eval.txt	/*l:*
l:var	eval.txt	/*l:var*
lCursor	mbyte.txt	/*lCursor*
lace.vim	syntax.txt	/*lace.vim*
lambda	eval.txt	/*lambda*
lang-variable	eval.txt	/*lang-variable*
language-mapping	map.txt	/*language-mapping*
last-pattern	pattern.txt	/*last-pattern*
last-position-jump	eval.txt	/*last-position-jump*
last_buffer_nr()	eval.txt	/*last_buffer_nr()*
latex-syntax	syntax.txt	/*latex-syntax*
lc_time-variable	eval.txt	/*lc_time-variable*
lcs-conceal	options.txt	/*lcs-conceal*
lcs-eol	options.txt	/*lcs-eol*
lcs-extends	options.txt	/*lcs-extends*
lcs-nbsp	options.txt	/*lcs-nbsp*
lcs-precedes	options.txt	/*lcs-precedes*
lcs-space	options.txt	/*lcs-space*
lcs-tab	options.txt	/*lcs-tab*
lcs-trail	options.txt	/*lcs-trail*
left-right-motions	motion.txt	/*left-right-motions*
len()	eval.txt	/*len()*
less	various.txt	/*less*
letter	print.txt	/*letter*
lex.vim	syntax.txt	/*lex.vim*
lhaskell.vim	syntax.txt	/*lhaskell.vim*
libcall()	eval.txt	/*libcall()*
libcallnr()	eval.txt	/*libcallnr()*
license	uganda.txt	/*license*
lid	quickfix.txt	/*lid*
lifelines.vim	syntax.txt	/*lifelines.vim*
limits	vi_diff.txt	/*limits*
line()	eval.txt	/*line()*
line-continuation	repeat.txt	/*line-continuation*
line2byte()	eval.txt	/*line2byte()*
linefeed	intro.txt	/*linefeed*
linewise	motion.txt	/*linewise*
linewise-register	change.txt	/*linewise-register*
linewise-visual	visual.txt	/*linewise-visual*
lisp.vim	syntax.txt	/*lisp.vim*
lispindent()	eval.txt	/*lispindent()*
list	eval.txt	/*list*
list-functions	usr_41.txt	/*list-functions*
list-identity	eval.txt	/*list-identity*
list-index	eval.txt	/*list-index*
list-modification	eval.txt	/*list-modification*
list-repeat	windows.txt	/*list-repeat*
lite.vim	syntax.txt	/*lite.vim*
literal-string	eval.txt	/*literal-string*
lnum-variable	eval.txt	/*lnum-variable*
load-plugins	starting.txt	/*load-plugins*
load-vim-script	repeat.txt	/*load-vim-script*
local-additions	help.txt	/*local-additions*
local-function	eval.txt	/*local-function*
local-options	options.txt	/*local-options*
local-variable	eval.txt	/*local-variable*
local-variables	eval.txt	/*local-variables*
local_markfilelist	pi_netrw.txt	/*local_markfilelist*
locale	mbyte.txt	/*locale*
locale-name	mbyte.txt	/*locale-name*
localtime()	eval.txt	/*localtime()*
location-list	quickfix.txt	/*location-list*
location-list-window	quickfix.txt	/*location-list-window*
log()	eval.txt	/*log()*
log10()	eval.txt	/*log10()*
logiPat	pi_logipat.txt	/*logiPat*
logiPat-arg	pi_logipat.txt	/*logiPat-arg*
logiPat-caveat	pi_logipat.txt	/*logiPat-caveat*
logiPat-contents	pi_logipat.txt	/*logiPat-contents*
logiPat-copyright	pi_logipat.txt	/*logiPat-copyright*
logiPat-examples	pi_logipat.txt	/*logiPat-examples*
logiPat-history	pi_logipat.txt	/*logiPat-history*
logiPat-input	pi_logipat.txt	/*logiPat-input*
logiPat-man	pi_logipat.txt	/*logiPat-man*
logiPat-manual	pi_logipat.txt	/*logiPat-manual*
logiPat-operators	pi_logipat.txt	/*logiPat-operators*
logiPat-pattern	pi_logipat.txt	/*logiPat-pattern*
long-lines	version5.txt	/*long-lines*
love	intro.txt	/*love*
lowercase	change.txt	/*lowercase*
lpc.vim	syntax.txt	/*lpc.vim*
lua	if_lua.txt	/*lua*
lua-buffer	if_lua.txt	/*lua-buffer*
lua-commands	if_lua.txt	/*lua-commands*
lua-dict	if_lua.txt	/*lua-dict*
lua-dynamic	if_lua.txt	/*lua-dynamic*
lua-eval	if_lua.txt	/*lua-eval*
lua-funcref	if_lua.txt	/*lua-funcref*
lua-list	if_lua.txt	/*lua-list*
lua-luaeval	if_lua.txt	/*lua-luaeval*
lua-vim	if_lua.txt	/*lua-vim*
lua-window	if_lua.txt	/*lua-window*
lua.vim	syntax.txt	/*lua.vim*
luaeval()	eval.txt	/*luaeval()*
m	motion.txt	/*m*
m'	motion.txt	/*m'*
m<	motion.txt	/*m<*
m>	motion.txt	/*m>*
m[	motion.txt	/*m[*
m]	motion.txt	/*m]*
m`	motion.txt	/*m`*
mac	os_mac.txt	/*mac*
mac-bug	os_mac.txt	/*mac-bug*
mac-compile	os_mac.txt	/*mac-compile*
mac-darwin-feature	os_mac.txt	/*mac-darwin-feature*
mac-faq	os_mac.txt	/*mac-faq*
mac-filename	os_mac.txt	/*mac-filename*
mac-lack	os_mac.txt	/*mac-lack*
mac-standard-mappings	os_mac.txt	/*mac-standard-mappings*
mac-vimfile	os_mac.txt	/*mac-vimfile*
macintosh	os_mac.txt	/*macintosh*
macro	map.txt	/*macro*
mail-list	intro.txt	/*mail-list*
mail.vim	syntax.txt	/*mail.vim*
maillist	intro.txt	/*maillist*
maillist-archive	intro.txt	/*maillist-archive*
make.vim	syntax.txt	/*make.vim*
man.vim	filetype.txt	/*man.vim*
manpager.vim	filetype.txt	/*manpager.vim*
manual-copyright	usr_01.txt	/*manual-copyright*
map()	eval.txt	/*map()*
map-<SID>	map.txt	/*map-<SID>*
map-CTRL-C	map.txt	/*map-CTRL-C*
map-ambiguous	map.txt	/*map-ambiguous*
map-backslash	map.txt	/*map-backslash*
map-backtick	tips.txt	/*map-backtick*
map-bar	map.txt	/*map-bar*
map-comments	map.txt	/*map-comments*
map-empty-rhs	map.txt	/*map-empty-rhs*
map-error	map.txt	/*map-error*
map-examples	map.txt	/*map-examples*
map-keys-fails	map.txt	/*map-keys-fails*
map-listing	map.txt	/*map-listing*
map-modes	map.txt	/*map-modes*
map-multibyte	map.txt	/*map-multibyte*
map-overview	map.txt	/*map-overview*
map-precedence	map.txt	/*map-precedence*
map-return	map.txt	/*map-return*
map-self-destroy	tips.txt	/*map-self-destroy*
map-space_in_lhs	map.txt	/*map-space_in_lhs*
map-space_in_rhs	map.txt	/*map-space_in_rhs*
map-typing	map.txt	/*map-typing*
map-which-keys	map.txt	/*map-which-keys*
map.txt	map.txt	/*map.txt*
map_CTRL-C	map.txt	/*map_CTRL-C*
map_backslash	map.txt	/*map_backslash*
map_bar	map.txt	/*map_bar*
map_empty_rhs	map.txt	/*map_empty_rhs*
map_return	map.txt	/*map_return*
map_space_in_lhs	map.txt	/*map_space_in_lhs*
map_space_in_rhs	map.txt	/*map_space_in_rhs*
maparg()	eval.txt	/*maparg()*
mapcheck()	eval.txt	/*mapcheck()*
maple.vim	syntax.txt	/*maple.vim*
mapleader	map.txt	/*mapleader*
maplocalleader	map.txt	/*maplocalleader*
mapmode-c	map.txt	/*mapmode-c*
mapmode-i	map.txt	/*mapmode-i*
mapmode-ic	map.txt	/*mapmode-ic*
mapmode-l	map.txt	/*mapmode-l*
mapmode-n	map.txt	/*mapmode-n*
mapmode-nvo	map.txt	/*mapmode-nvo*
mapmode-o	map.txt	/*mapmode-o*
mapmode-s	map.txt	/*mapmode-s*
mapmode-t	map.txt	/*mapmode-t*
mapmode-v	map.txt	/*mapmode-v*
mapmode-x	map.txt	/*mapmode-x*
mapping	map.txt	/*mapping*
mapping-functions	usr_41.txt	/*mapping-functions*
mark	motion.txt	/*mark*
mark-functions	usr_41.txt	/*mark-functions*
mark-motions	motion.txt	/*mark-motions*
markfilelist	pi_netrw.txt	/*markfilelist*
masm.vim	syntax.txt	/*masm.vim*
match()	eval.txt	/*match()*
match-highlight	pattern.txt	/*match-highlight*
match-parens	tips.txt	/*match-parens*
matchadd()	eval.txt	/*matchadd()*
matchaddpos()	eval.txt	/*matchaddpos()*
matcharg()	eval.txt	/*matcharg()*
matchdelete()	eval.txt	/*matchdelete()*
matchend()	eval.txt	/*matchend()*
matchit-install	usr_05.txt	/*matchit-install*
matchlist()	eval.txt	/*matchlist()*
matchparen	pi_paren.txt	/*matchparen*
matchstr()	eval.txt	/*matchstr()*
matchstrpos()	eval.txt	/*matchstrpos()*
max()	eval.txt	/*max()*
mbyte-IME	mbyte.txt	/*mbyte-IME*
mbyte-XIM	mbyte.txt	/*mbyte-XIM*
mbyte-combining	mbyte.txt	/*mbyte-combining*
mbyte-composing	mbyte.txt	/*mbyte-composing*
mbyte-conversion	mbyte.txt	/*mbyte-conversion*
mbyte-encoding	mbyte.txt	/*mbyte-encoding*
mbyte-first	mbyte.txt	/*mbyte-first*
mbyte-fonts-MSwin	mbyte.txt	/*mbyte-fonts-MSwin*
mbyte-fonts-X11	mbyte.txt	/*mbyte-fonts-X11*
mbyte-func	mbyte.txt	/*mbyte-func*
mbyte-keymap	mbyte.txt	/*mbyte-keymap*
mbyte-locale	mbyte.txt	/*mbyte-locale*
mbyte-options	mbyte.txt	/*mbyte-options*
mbyte-terminal	mbyte.txt	/*mbyte-terminal*
mbyte-utf8	mbyte.txt	/*mbyte-utf8*
mbyte.txt	mbyte.txt	/*mbyte.txt*
menu-changes-5.4	version5.txt	/*menu-changes-5.4*
menu-examples	gui.txt	/*menu-examples*
menu-priority	gui.txt	/*menu-priority*
menu-separator	gui.txt	/*menu-separator*
menu.vim	gui.txt	/*menu.vim*
menus	gui.txt	/*menus*
merge	diff.txt	/*merge*
message-history	message.txt	/*message-history*
message.txt	message.txt	/*message.txt*
messages	message.txt	/*messages*
meta	intro.txt	/*meta*
min()	eval.txt	/*min()*
missing-options	vi_diff.txt	/*missing-options*
mkdir()	eval.txt	/*mkdir()*
mlang.txt	mlang.txt	/*mlang.txt*
mma.vim	syntax.txt	/*mma.vim*
mode()	eval.txt	/*mode()*
mode-Ex	intro.txt	/*mode-Ex*
mode-cmdline	cmdline.txt	/*mode-cmdline*
mode-ins-repl	insert.txt	/*mode-ins-repl*
mode-replace	insert.txt	/*mode-replace*
mode-switching	intro.txt	/*mode-switching*
modeless-and-clipboard	version6.txt	/*modeless-and-clipboard*
modeless-selection	gui.txt	/*modeless-selection*
modeline	options.txt	/*modeline*
modeline-local	options.txt	/*modeline-local*
modeline-version	options.txt	/*modeline-version*
moo.vim	syntax.txt	/*moo.vim*
more-compatible	version5.txt	/*more-compatible*
more-prompt	message.txt	/*more-prompt*
more-variables	eval.txt	/*more-variables*
motion.txt	motion.txt	/*motion.txt*
mouse-mode-table	term.txt	/*mouse-mode-table*
mouse-overview	term.txt	/*mouse-overview*
mouse-swap-buttons	term.txt	/*mouse-swap-buttons*
mouse-using	term.txt	/*mouse-using*
mouse_col-variable	eval.txt	/*mouse_col-variable*
mouse_lnum-variable	eval.txt	/*mouse_lnum-variable*
mouse_win-variable	eval.txt	/*mouse_win-variable*
mouse_winid-variable	eval.txt	/*mouse_winid-variable*
movement	intro.txt	/*movement*
ms-dos	os_msdos.txt	/*ms-dos*
msdos	os_msdos.txt	/*msdos*
msql.vim	syntax.txt	/*msql.vim*
mswin.vim	gui_w32.txt	/*mswin.vim*
multi-byte	mbyte.txt	/*multi-byte*
multi-lang	mlang.txt	/*multi-lang*
multi-repeat	repeat.txt	/*multi-repeat*
multibyte	mbyte.txt	/*multibyte*
multibyte-ime	mbyte.txt	/*multibyte-ime*
multibyte-input	mbyte.txt	/*multibyte-input*
multilang	mlang.txt	/*multilang*
multilang-menus	mlang.txt	/*multilang-menus*
multilang-messages	mlang.txt	/*multilang-messages*
multilang-scripts	mlang.txt	/*multilang-scripts*
myfiletypefile	syntax.txt	/*myfiletypefile*
myscriptsfile	syntax.txt	/*myscriptsfile*
mysql	ft_sql.txt	/*mysql*
mysyntaxfile	syntax.txt	/*mysyntaxfile*
mysyntaxfile-add	syntax.txt	/*mysyntaxfile-add*
mysyntaxfile-replace	syntax.txt	/*mysyntaxfile-replace*
mzeval()	eval.txt	/*mzeval()*
mzscheme	if_mzsch.txt	/*mzscheme*
mzscheme-buffer	if_mzsch.txt	/*mzscheme-buffer*
mzscheme-commands	if_mzsch.txt	/*mzscheme-commands*
mzscheme-dynamic	if_mzsch.txt	/*mzscheme-dynamic*
mzscheme-examples	if_mzsch.txt	/*mzscheme-examples*
mzscheme-funcref	if_mzsch.txt	/*mzscheme-funcref*
mzscheme-mzeval	if_mzsch.txt	/*mzscheme-mzeval*
mzscheme-sandbox	if_mzsch.txt	/*mzscheme-sandbox*
mzscheme-setup	if_mzsch.txt	/*mzscheme-setup*
mzscheme-threads	if_mzsch.txt	/*mzscheme-threads*
mzscheme-vim	if_mzsch.txt	/*mzscheme-vim*
mzscheme-vimext	if_mzsch.txt	/*mzscheme-vimext*
mzscheme-window	if_mzsch.txt	/*mzscheme-window*
n	pattern.txt	/*n*
n1ql.vim	syntax.txt	/*n1ql.vim*
nasm.vim	syntax.txt	/*nasm.vim*
navigation	motion.txt	/*navigation*
nb-commands	netbeans.txt	/*nb-commands*
nb-events	netbeans.txt	/*nb-events*
nb-functions	netbeans.txt	/*nb-functions*
nb-messages	netbeans.txt	/*nb-messages*
nb-protocol_errors	netbeans.txt	/*nb-protocol_errors*
nb-special	netbeans.txt	/*nb-special*
nb-terms	netbeans.txt	/*nb-terms*
ncf.vim	syntax.txt	/*ncf.vim*
netbeans	netbeans.txt	/*netbeans*
netbeans-commands	netbeans.txt	/*netbeans-commands*
netbeans-configure	netbeans.txt	/*netbeans-configure*
netbeans-debugging	netbeans.txt	/*netbeans-debugging*
netbeans-download	netbeans.txt	/*netbeans-download*
netbeans-integration	netbeans.txt	/*netbeans-integration*
netbeans-intro	netbeans.txt	/*netbeans-intro*
netbeans-keybindings	netbeans.txt	/*netbeans-keybindings*
netbeans-messages	netbeans.txt	/*netbeans-messages*
netbeans-parameters	netbeans.txt	/*netbeans-parameters*
netbeans-preparation	netbeans.txt	/*netbeans-preparation*
netbeans-problems	netbeans.txt	/*netbeans-problems*
netbeans-protocol	netbeans.txt	/*netbeans-protocol*
netbeans-run	netbeans.txt	/*netbeans-run*
netbeans-setup	netbeans.txt	/*netbeans-setup*
netbeans-support	netbeans.txt	/*netbeans-support*
netbeans.txt	netbeans.txt	/*netbeans.txt*
netreadfixup	pi_netrw.txt	/*netreadfixup*
netrw	pi_netrw.txt	/*netrw*
netrw-%	pi_netrw.txt	/*netrw-%*
netrw--	pi_netrw.txt	/*netrw--*
netrw-:Explore	pi_netrw.txt	/*netrw-:Explore*
netrw-:Hexplore	pi_netrw.txt	/*netrw-:Hexplore*
netrw-:Lexplore	pi_netrw.txt	/*netrw-:Lexplore*
netrw-:MF	pi_netrw.txt	/*netrw-:MF*
netrw-:MT	pi_netrw.txt	/*netrw-:MT*
netrw-:NetrwC	pi_netrw.txt	/*netrw-:NetrwC*
netrw-:NetrwMB	pi_netrw.txt	/*netrw-:NetrwMB*
netrw-:Rexplore	pi_netrw.txt	/*netrw-:Rexplore*
netrw-:Sexplore	pi_netrw.txt	/*netrw-:Sexplore*
netrw-:Texplore	pi_netrw.txt	/*netrw-:Texplore*
netrw-:Vexplore	pi_netrw.txt	/*netrw-:Vexplore*
netrw-C	pi_netrw.txt	/*netrw-C*
netrw-D	pi_netrw.txt	/*netrw-D*
netrw-I	pi_netrw.txt	/*netrw-I*
netrw-O	pi_netrw.txt	/*netrw-O*
netrw-P	pi_netrw.txt	/*netrw-P*
netrw-P18	pi_netrw.txt	/*netrw-P18*
netrw-P19	pi_netrw.txt	/*netrw-P19*
netrw-P20	pi_netrw.txt	/*netrw-P20*
netrw-P21	pi_netrw.txt	/*netrw-P21*
netrw-P22	pi_netrw.txt	/*netrw-P22*
netrw-R	pi_netrw.txt	/*netrw-R*
netrw-S	pi_netrw.txt	/*netrw-S*
netrw-Tb	pi_netrw.txt	/*netrw-Tb*
netrw-Th	pi_netrw.txt	/*netrw-Th*
netrw-U	pi_netrw.txt	/*netrw-U*
netrw-X	pi_netrw.txt	/*netrw-X*
netrw-a	pi_netrw.txt	/*netrw-a*
netrw-activate	pi_netrw.txt	/*netrw-activate*
netrw-bookmark	pi_netrw.txt	/*netrw-bookmark*
netrw-bookmarks	pi_netrw.txt	/*netrw-bookmarks*
netrw-browse	pi_netrw.txt	/*netrw-browse*
netrw-browse-cmds	pi_netrw.txt	/*netrw-browse-cmds*
netrw-browse-maps	pi_netrw.txt	/*netrw-browse-maps*
netrw-browser	pi_netrw.txt	/*netrw-browser*
netrw-browser-options	pi_netrw.txt	/*netrw-browser-options*
netrw-browser-settings	pi_netrw.txt	/*netrw-browser-settings*
netrw-browser-var	pi_netrw.txt	/*netrw-browser-var*
netrw-browsing	pi_netrw.txt	/*netrw-browsing*
netrw-c	pi_netrw.txt	/*netrw-c*
netrw-c-tab	pi_netrw.txt	/*netrw-c-tab*
netrw-cB	pi_netrw.txt	/*netrw-cB*
netrw-cadaver	pi_netrw.txt	/*netrw-cadaver*
netrw-call	pi_netrw.txt	/*netrw-call*
netrw-cb	pi_netrw.txt	/*netrw-cb*
netrw-cd	pi_netrw.txt	/*netrw-cd*
netrw-chgup	pi_netrw.txt	/*netrw-chgup*
netrw-clean	pi_netrw.txt	/*netrw-clean*
netrw-contents	pi_netrw.txt	/*netrw-contents*
netrw-copyright	pi_netrw.txt	/*netrw-copyright*
netrw-cr	pi_netrw.txt	/*netrw-cr*
netrw-createfile	pi_netrw.txt	/*netrw-createfile*
netrw-credits	pi_netrw.txt	/*netrw-credits*
netrw-ctrl-h	pi_netrw.txt	/*netrw-ctrl-h*
netrw-ctrl-l	pi_netrw.txt	/*netrw-ctrl-l*
netrw-ctrl-r	pi_netrw.txt	/*netrw-ctrl-r*
netrw-ctrl_l	pi_netrw.txt	/*netrw-ctrl_l*
netrw-curdir	pi_netrw.txt	/*netrw-curdir*
netrw-d	pi_netrw.txt	/*netrw-d*
netrw-debug	pi_netrw.txt	/*netrw-debug*
netrw-del	pi_netrw.txt	/*netrw-del*
netrw-delete	pi_netrw.txt	/*netrw-delete*
netrw-dir	pi_netrw.txt	/*netrw-dir*
netrw-dirlist	pi_netrw.txt	/*netrw-dirlist*
netrw-downdir	pi_netrw.txt	/*netrw-downdir*
netrw-edithide	pi_netrw.txt	/*netrw-edithide*
netrw-editwindow	pi_netrw.txt	/*netrw-editwindow*
netrw-enter	pi_netrw.txt	/*netrw-enter*
netrw-ex	pi_netrw.txt	/*netrw-ex*
netrw-explore	pi_netrw.txt	/*netrw-explore*
netrw-explore-cmds	pi_netrw.txt	/*netrw-explore-cmds*
netrw-expose	pi_netrw.txt	/*netrw-expose*
netrw-externapp	pi_netrw.txt	/*netrw-externapp*
netrw-file	pi_netrw.txt	/*netrw-file*
netrw-filigree	pi_netrw.txt	/*netrw-filigree*
netrw-fixup	pi_netrw.txt	/*netrw-fixup*
netrw-ftp	pi_netrw.txt	/*netrw-ftp*
netrw-ftype	pi_netrw.txt	/*netrw-ftype*
netrw-gb	pi_netrw.txt	/*netrw-gb*
netrw-gd	pi_netrw.txt	/*netrw-gd*
netrw-getftype	pi_netrw.txt	/*netrw-getftype*
netrw-gf	pi_netrw.txt	/*netrw-gf*
netrw-gh	pi_netrw.txt	/*netrw-gh*
netrw-gitignore	pi_netrw.txt	/*netrw-gitignore*
netrw-gn	pi_netrw.txt	/*netrw-gn*
netrw-gp	pi_netrw.txt	/*netrw-gp*
netrw-grep	pi_netrw.txt	/*netrw-grep*
netrw-gx	pi_netrw.txt	/*netrw-gx*
netrw-handler	pi_netrw.txt	/*netrw-handler*
netrw-help	pi_netrw.txt	/*netrw-help*
netrw-hexplore	pi_netrw.txt	/*netrw-hexplore*
netrw-hide	pi_netrw.txt	/*netrw-hide*
netrw-hiding	pi_netrw.txt	/*netrw-hiding*
netrw-history	pi_netrw.txt	/*netrw-history*
netrw-horiz	pi_netrw.txt	/*netrw-horiz*
netrw-i	pi_netrw.txt	/*netrw-i*
netrw-incompatible	pi_netrw.txt	/*netrw-incompatible*
netrw-internal-variables	pi_netrw.txt	/*netrw-internal-variables*
netrw-intro-browse	pi_netrw.txt	/*netrw-intro-browse*
netrw-leftmouse	pi_netrw.txt	/*netrw-leftmouse*
netrw-lexplore	pi_netrw.txt	/*netrw-lexplore*
netrw-list	pi_netrw.txt	/*netrw-list*
netrw-listbookmark	pi_netrw.txt	/*netrw-listbookmark*
netrw-listhack	pi_netrw.txt	/*netrw-listhack*
netrw-login	pi_netrw.txt	/*netrw-login*
netrw-mA	pi_netrw.txt	/*netrw-mA*
netrw-mB	pi_netrw.txt	/*netrw-mB*
netrw-mF	pi_netrw.txt	/*netrw-mF*
netrw-mT	pi_netrw.txt	/*netrw-mT*
netrw-mX	pi_netrw.txt	/*netrw-mX*
netrw-ma	pi_netrw.txt	/*netrw-ma*
netrw-mb	pi_netrw.txt	/*netrw-mb*
netrw-mc	pi_netrw.txt	/*netrw-mc*
netrw-md	pi_netrw.txt	/*netrw-md*
netrw-me	pi_netrw.txt	/*netrw-me*
netrw-mf	pi_netrw.txt	/*netrw-mf*
netrw-mg	pi_netrw.txt	/*netrw-mg*
netrw-mh	pi_netrw.txt	/*netrw-mh*
netrw-middlemouse	pi_netrw.txt	/*netrw-middlemouse*
netrw-ml_get	pi_netrw.txt	/*netrw-ml_get*
netrw-mm	pi_netrw.txt	/*netrw-mm*
netrw-modify	pi_netrw.txt	/*netrw-modify*
netrw-mouse	pi_netrw.txt	/*netrw-mouse*
netrw-move	pi_netrw.txt	/*netrw-move*
netrw-mp	pi_netrw.txt	/*netrw-mp*
netrw-mr	pi_netrw.txt	/*netrw-mr*
netrw-ms	pi_netrw.txt	/*netrw-ms*
netrw-mt	pi_netrw.txt	/*netrw-mt*
netrw-mu	pi_netrw.txt	/*netrw-mu*
netrw-mv	pi_netrw.txt	/*netrw-mv*
netrw-mx	pi_netrw.txt	/*netrw-mx*
netrw-mz	pi_netrw.txt	/*netrw-mz*
netrw-netrc	pi_netrw.txt	/*netrw-netrc*
netrw-newfile	pi_netrw.txt	/*netrw-newfile*
netrw-nexplore	pi_netrw.txt	/*netrw-nexplore*
netrw-noload	pi_netrw.txt	/*netrw-noload*
netrw-nread	pi_netrw.txt	/*netrw-nread*
netrw-ntree	pi_netrw.txt	/*netrw-ntree*
netrw-nwrite	pi_netrw.txt	/*netrw-nwrite*
netrw-o	pi_netrw.txt	/*netrw-o*
netrw-obtain	pi_netrw.txt	/*netrw-obtain*
netrw-options	pi_netrw.txt	/*netrw-options*
netrw-p	pi_netrw.txt	/*netrw-p*
netrw-p1	pi_netrw.txt	/*netrw-p1*
netrw-p10	pi_netrw.txt	/*netrw-p10*
netrw-p11	pi_netrw.txt	/*netrw-p11*
netrw-p12	pi_netrw.txt	/*netrw-p12*
netrw-p13	pi_netrw.txt	/*netrw-p13*
netrw-p14	pi_netrw.txt	/*netrw-p14*
netrw-p15	pi_netrw.txt	/*netrw-p15*
netrw-p16	pi_netrw.txt	/*netrw-p16*
netrw-p17	pi_netrw.txt	/*netrw-p17*
netrw-p2	pi_netrw.txt	/*netrw-p2*
netrw-p3	pi_netrw.txt	/*netrw-p3*
netrw-p4	pi_netrw.txt	/*netrw-p4*
netrw-p5	pi_netrw.txt	/*netrw-p5*
netrw-p6	pi_netrw.txt	/*netrw-p6*
netrw-p7	pi_netrw.txt	/*netrw-p7*
netrw-p8	pi_netrw.txt	/*netrw-p8*
netrw-p9	pi_netrw.txt	/*netrw-p9*
netrw-passwd	pi_netrw.txt	/*netrw-passwd*
netrw-password	pi_netrw.txt	/*netrw-password*
netrw-path	pi_netrw.txt	/*netrw-path*
netrw-pexplore	pi_netrw.txt	/*netrw-pexplore*
netrw-preview	pi_netrw.txt	/*netrw-preview*
netrw-problems	pi_netrw.txt	/*netrw-problems*
netrw-protocol	pi_netrw.txt	/*netrw-protocol*
netrw-prvwin	pi_netrw.txt	/*netrw-prvwin*
netrw-pscp	pi_netrw.txt	/*netrw-pscp*
netrw-psftp	pi_netrw.txt	/*netrw-psftp*
netrw-putty	pi_netrw.txt	/*netrw-putty*
netrw-qF	pi_netrw.txt	/*netrw-qF*
netrw-qL	pi_netrw.txt	/*netrw-qL*
netrw-qb	pi_netrw.txt	/*netrw-qb*
netrw-qf	pi_netrw.txt	/*netrw-qf*
netrw-quickcom	pi_netrw.txt	/*netrw-quickcom*
netrw-quickcoms	pi_netrw.txt	/*netrw-quickcoms*
netrw-quickhelp	pi_netrw.txt	/*netrw-quickhelp*
netrw-quickmap	pi_netrw.txt	/*netrw-quickmap*
netrw-quickmaps	pi_netrw.txt	/*netrw-quickmaps*
netrw-r	pi_netrw.txt	/*netrw-r*
netrw-read	pi_netrw.txt	/*netrw-read*
netrw-ref	pi_netrw.txt	/*netrw-ref*
netrw-refresh	pi_netrw.txt	/*netrw-refresh*
netrw-rename	pi_netrw.txt	/*netrw-rename*
netrw-reverse	pi_netrw.txt	/*netrw-reverse*
netrw-rexplore	pi_netrw.txt	/*netrw-rexplore*
netrw-rightmouse	pi_netrw.txt	/*netrw-rightmouse*
netrw-s	pi_netrw.txt	/*netrw-s*
netrw-s-cr	pi_netrw.txt	/*netrw-s-cr*
netrw-settings	pi_netrw.txt	/*netrw-settings*
netrw-settings-window	pi_netrw.txt	/*netrw-settings-window*
netrw-sexplore	pi_netrw.txt	/*netrw-sexplore*
netrw-sort	pi_netrw.txt	/*netrw-sort*
netrw-sort-sequence	pi_netrw.txt	/*netrw-sort-sequence*
netrw-sortsequence	pi_netrw.txt	/*netrw-sortsequence*
netrw-source	pi_netrw.txt	/*netrw-source*
netrw-ssh-hack	pi_netrw.txt	/*netrw-ssh-hack*
netrw-star	pi_netrw.txt	/*netrw-star*
netrw-starpat	pi_netrw.txt	/*netrw-starpat*
netrw-starstar	pi_netrw.txt	/*netrw-starstar*
netrw-starstarpat	pi_netrw.txt	/*netrw-starstarpat*
netrw-start	pi_netrw.txt	/*netrw-start*
netrw-t	pi_netrw.txt	/*netrw-t*
netrw-texplore	pi_netrw.txt	/*netrw-texplore*
netrw-todo	pi_netrw.txt	/*netrw-todo*
netrw-trailingslash	pi_netrw.txt	/*netrw-trailingslash*
netrw-transparent	pi_netrw.txt	/*netrw-transparent*
netrw-u	pi_netrw.txt	/*netrw-u*
netrw-updir	pi_netrw.txt	/*netrw-updir*
netrw-urls	pi_netrw.txt	/*netrw-urls*
netrw-usermaps	pi_netrw.txt	/*netrw-usermaps*
netrw-userpass	pi_netrw.txt	/*netrw-userpass*
netrw-v	pi_netrw.txt	/*netrw-v*
netrw-var	pi_netrw.txt	/*netrw-var*
netrw-variables	pi_netrw.txt	/*netrw-variables*
netrw-vexplore	pi_netrw.txt	/*netrw-vexplore*
netrw-windows-netrc	pi_netrw.txt	/*netrw-windows-netrc*
netrw-windows-s	pi_netrw.txt	/*netrw-windows-s*
netrw-write	pi_netrw.txt	/*netrw-write*
netrw-x	pi_netrw.txt	/*netrw-x*
netrw-xfer	pi_netrw.txt	/*netrw-xfer*
netrw.vim	pi_netrw.txt	/*netrw.vim*
netrw_filehandler	pi_netrw.txt	/*netrw_filehandler*
netterm-mouse	options.txt	/*netterm-mouse*
network	pi_netrw.txt	/*network*
new-5	version5.txt	/*new-5*
new-6	version6.txt	/*new-6*
new-7	version7.txt	/*new-7*
new-8	version8.txt	/*new-8*
new-GTK-GUI	version5.txt	/*new-GTK-GUI*
new-MzScheme	version7.txt	/*new-MzScheme*
new-Select-mode	version5.txt	/*new-Select-mode*
new-View	version6.txt	/*new-View*
new-argument-list	version6.txt	/*new-argument-list*
new-buftype	version6.txt	/*new-buftype*
new-cmdwin	version6.txt	/*new-cmdwin*
new-color-schemes	version6.txt	/*new-color-schemes*
new-commands	version5.txt	/*new-commands*
new-commands-5.4	version5.txt	/*new-commands-5.4*
new-conceal	version7.txt	/*new-conceal*
new-debug-itf	version6.txt	/*new-debug-itf*
new-debug-mode	version6.txt	/*new-debug-mode*
new-debug-support	version7.txt	/*new-debug-support*
new-define-operator	version7.txt	/*new-define-operator*
new-diff-mode	version6.txt	/*new-diff-mode*
new-encryption	version5.txt	/*new-encryption*
new-evim	version6.txt	/*new-evim*
new-ex-commands-5.2	version5.txt	/*new-ex-commands-5.2*
new-file-browser	version6.txt	/*new-file-browser*
new-file-writing	version6.txt	/*new-file-writing*
new-filetype	filetype.txt	/*new-filetype*
new-filetype-5.4	version5.txt	/*new-filetype-5.4*
new-filetype-plugins	version6.txt	/*new-filetype-plugins*
new-filetype-scripts	filetype.txt	/*new-filetype-scripts*
new-folding	version6.txt	/*new-folding*
new-functions-5.2	version5.txt	/*new-functions-5.2*
new-global-values	version6.txt	/*new-global-values*
new-highlighting	version5.txt	/*new-highlighting*
new-indent-flex	version6.txt	/*new-indent-flex*
new-items-6	version6.txt	/*new-items-6*
new-items-7	version7.txt	/*new-items-7*
new-items-8	version8.txt	/*new-items-8*
new-line-continuation	version5.txt	/*new-line-continuation*
new-location-list	version7.txt	/*new-location-list*
new-lua	version7.txt	/*new-lua*
new-manpage-trans	version7.txt	/*new-manpage-trans*
new-map-expression	version7.txt	/*new-map-expression*
new-map-select	version7.txt	/*new-map-select*
new-more-encryption	version7.txt	/*new-more-encryption*
new-more-highlighting	version7.txt	/*new-more-highlighting*
new-more-unicode	version7.txt	/*new-more-unicode*
new-multi-byte	version5.txt	/*new-multi-byte*
new-multi-lang	version6.txt	/*new-multi-lang*
new-netrw-explore	version7.txt	/*new-netrw-explore*
new-network-files	version6.txt	/*new-network-files*
new-omni-completion	version7.txt	/*new-omni-completion*
new-onemore	version7.txt	/*new-onemore*
new-operator-mod	version6.txt	/*new-operator-mod*
new-options-5.2	version5.txt	/*new-options-5.2*
new-options-5.4	version5.txt	/*new-options-5.4*
new-perl-python	version5.txt	/*new-perl-python*
new-persistent-undo	version7.txt	/*new-persistent-undo*
new-plugins	version6.txt	/*new-plugins*
new-posix	version7.txt	/*new-posix*
new-print-multi-byte	version7.txt	/*new-print-multi-byte*
new-printing	version6.txt	/*new-printing*
new-python3	version7.txt	/*new-python3*
new-regexp-engine	version7.txt	/*new-regexp-engine*
new-runtime-dir	version5.txt	/*new-runtime-dir*
new-script	version5.txt	/*new-script*
new-script-5.4	version5.txt	/*new-script-5.4*
new-scroll-back	version7.txt	/*new-scroll-back*
new-search-path	version6.txt	/*new-search-path*
new-searchpat	version6.txt	/*new-searchpat*
new-session-files	version5.txt	/*new-session-files*
new-spell	version7.txt	/*new-spell*
new-style-testing	eval.txt	/*new-style-testing*
new-tab-pages	version7.txt	/*new-tab-pages*
new-undo-branches	version7.txt	/*new-undo-branches*
new-unlisted-buffers	version6.txt	/*new-unlisted-buffers*
new-user-defined	version5.txt	/*new-user-defined*
new-user-manual	version6.txt	/*new-user-manual*
new-utf-8	version6.txt	/*new-utf-8*
new-vertsplit	version6.txt	/*new-vertsplit*
new-vim-script	version7.txt	/*new-vim-script*
new-vim-script-8	version8.txt	/*new-vim-script-8*
new-vim-server	version6.txt	/*new-vim-server*
new-vimgrep	version7.txt	/*new-vimgrep*
new-virtedit	version6.txt	/*new-virtedit*
news	intro.txt	/*news*
nextnonblank()	eval.txt	/*nextnonblank()*
nice	todo.txt	/*nice*
no-eval-feature	eval.txt	/*no-eval-feature*
no-type-checking	eval.txt	/*no-type-checking*
no_buffers_menu	gui.txt	/*no_buffers_menu*
no_mail_maps	filetype.txt	/*no_mail_maps*
no_plugin_maps	filetype.txt	/*no_plugin_maps*
nocombine	syntax.txt	/*nocombine*
non-greedy	pattern.txt	/*non-greedy*
non-zero-arg	eval.txt	/*non-zero-arg*
none-variable	eval.txt	/*none-variable*
normal-index	index.txt	/*normal-index*
not-compatible	usr_01.txt	/*not-compatible*
not-edited	editing.txt	/*not-edited*
notation	intro.txt	/*notation*
notepad	gui_w32.txt	/*notepad*
nr2char()	eval.txt	/*nr2char()*
nroff.vim	syntax.txt	/*nroff.vim*
null-variable	eval.txt	/*null-variable*
number_relativenumber	options.txt	/*number_relativenumber*
numbered-function	eval.txt	/*numbered-function*
o	insert.txt	/*o*
o_CTRL-V	motion.txt	/*o_CTRL-V*
o_V	motion.txt	/*o_V*
o_v	motion.txt	/*o_v*
object-motions	motion.txt	/*object-motions*
object-select	motion.txt	/*object-select*
objects	index.txt	/*objects*
obtaining-exted	netbeans.txt	/*obtaining-exted*
ocaml.vim	syntax.txt	/*ocaml.vim*
octal	eval.txt	/*octal*
octal-nrformats	options.txt	/*octal-nrformats*
octal-number	eval.txt	/*octal-number*
old-style-testing	eval.txt	/*old-style-testing*
oldfiles-variable	eval.txt	/*oldfiles-variable*
ole-activation	if_ole.txt	/*ole-activation*
ole-eval	if_ole.txt	/*ole-eval*
ole-gethwnd	if_ole.txt	/*ole-gethwnd*
ole-interface	if_ole.txt	/*ole-interface*
ole-methods	if_ole.txt	/*ole-methods*
ole-normal	if_ole.txt	/*ole-normal*
ole-registration	if_ole.txt	/*ole-registration*
ole-sendkeys	if_ole.txt	/*ole-sendkeys*
ole-setforeground	if_ole.txt	/*ole-setforeground*
omap-info	map.txt	/*omap-info*
omni-sql-completion	ft_sql.txt	/*omni-sql-completion*
online-help	helphelp.txt	/*online-help*
opening-window	windows.txt	/*opening-window*
operator	motion.txt	/*operator*
operator-variable	eval.txt	/*operator-variable*
option-backslash	options.txt	/*option-backslash*
option-list	quickref.txt	/*option-list*
option-summary	options.txt	/*option-summary*
option-window	options.txt	/*option-window*
option_restore()	todo.txt	/*option_restore()*
option_save()	todo.txt	/*option_save()*
options	options.txt	/*options*
options-changed	version5.txt	/*options-changed*
options-in-terminal	terminal.txt	/*options-in-terminal*
options.txt	options.txt	/*options.txt*
optwin	options.txt	/*optwin*
or()	eval.txt	/*or()*
oracle	ft_sql.txt	/*oracle*
os2	os_os2.txt	/*os2*
os390	os_390.txt	/*os390*
os_390.txt	os_390.txt	/*os_390.txt*
os_amiga.txt	os_amiga.txt	/*os_amiga.txt*
os_beos.txt	os_beos.txt	/*os_beos.txt*
os_dos.txt	os_dos.txt	/*os_dos.txt*
os_mac.txt	os_mac.txt	/*os_mac.txt*
os_mint.txt	os_mint.txt	/*os_mint.txt*
os_msdos.txt	os_msdos.txt	/*os_msdos.txt*
os_os2.txt	os_os2.txt	/*os_os2.txt*
os_qnx.txt	os_qnx.txt	/*os_qnx.txt*
os_risc.txt	os_risc.txt	/*os_risc.txt*
os_unix.txt	os_unix.txt	/*os_unix.txt*
os_vms.txt	os_vms.txt	/*os_vms.txt*
os_win32.txt	os_win32.txt	/*os_win32.txt*
other-features	vi_diff.txt	/*other-features*
out_buf	channel.txt	/*out_buf*
out_cb	channel.txt	/*out_cb*
out_io-buffer	channel.txt	/*out_io-buffer*
out_mode	channel.txt	/*out_mode*
out_modifiable	channel.txt	/*out_modifiable*
out_msg	channel.txt	/*out_msg*
out_name	channel.txt	/*out_name*
out_timeout	channel.txt	/*out_timeout*
p	change.txt	/*p*
pack-add	repeat.txt	/*pack-add*
package-create	repeat.txt	/*package-create*
packages	repeat.txt	/*packages*
packload-two-steps	repeat.txt	/*packload-two-steps*
page-down	intro.txt	/*page-down*
page-up	intro.txt	/*page-up*
page_down	intro.txt	/*page_down*
page_up	intro.txt	/*page_up*
pager	message.txt	/*pager*
papp.vim	syntax.txt	/*papp.vim*
paragraph	motion.txt	/*paragraph*
pascal.vim	syntax.txt	/*pascal.vim*
patches-8	version8.txt	/*patches-8*
pathshorten()	eval.txt	/*pathshorten()*
pattern	pattern.txt	/*pattern*
pattern-atoms	pattern.txt	/*pattern-atoms*
pattern-multi-byte	pattern.txt	/*pattern-multi-byte*
pattern-multi-items	pattern.txt	/*pattern-multi-items*
pattern-overview	pattern.txt	/*pattern-overview*
pattern-searches	pattern.txt	/*pattern-searches*
pattern.txt	pattern.txt	/*pattern.txt*
patterns-composing	pattern.txt	/*patterns-composing*
pdev-option	print.txt	/*pdev-option*
peace	intro.txt	/*peace*
penc-option	print.txt	/*penc-option*
perl	if_perl.txt	/*perl*
perl-Append	if_perl.txt	/*perl-Append*
perl-Buffer	if_perl.txt	/*perl-Buffer*
perl-Buffers	if_perl.txt	/*perl-Buffers*
perl-Count	if_perl.txt	/*perl-Count*
perl-Delete	if_perl.txt	/*perl-Delete*
perl-DoCommand	if_perl.txt	/*perl-DoCommand*
perl-Eval	if_perl.txt	/*perl-Eval*
perl-Get	if_perl.txt	/*perl-Get*
perl-GetCursor	if_perl.txt	/*perl-GetCursor*
perl-Msg	if_perl.txt	/*perl-Msg*
perl-Name	if_perl.txt	/*perl-Name*
perl-Number	if_perl.txt	/*perl-Number*
perl-Set	if_perl.txt	/*perl-Set*
perl-SetHeight	if_perl.txt	/*perl-SetHeight*
perl-SetOption	if_perl.txt	/*perl-SetOption*
perl-Windows	if_perl.txt	/*perl-Windows*
perl-compiling	if_perl.txt	/*perl-compiling*
perl-dynamic	if_perl.txt	/*perl-dynamic*
perl-editing	if_perl.txt	/*perl-editing*
perl-overview	if_perl.txt	/*perl-overview*
perl-patterns	pattern.txt	/*perl-patterns*
perl-using	if_perl.txt	/*perl-using*
perl.vim	syntax.txt	/*perl.vim*
perleval()	eval.txt	/*perleval()*
persistent-undo	undo.txt	/*persistent-undo*
pexpr-option	print.txt	/*pexpr-option*
pfn-option	print.txt	/*pfn-option*
pheader-option	print.txt	/*pheader-option*
photon-fonts	os_qnx.txt	/*photon-fonts*
photon-gui	os_qnx.txt	/*photon-gui*
php-comment	indent.txt	/*php-comment*
php-indent	indent.txt	/*php-indent*
php-indenting	indent.txt	/*php-indenting*
php.vim	syntax.txt	/*php.vim*
php3.vim	syntax.txt	/*php3.vim*
phtml.vim	syntax.txt	/*phtml.vim*
pi_getscript.txt	pi_getscript.txt	/*pi_getscript.txt*
pi_gzip.txt	pi_gzip.txt	/*pi_gzip.txt*
pi_logipat.txt	pi_logipat.txt	/*pi_logipat.txt*
pi_netrw.txt	pi_netrw.txt	/*pi_netrw.txt*
pi_paren.txt	pi_paren.txt	/*pi_paren.txt*
pi_spec.txt	pi_spec.txt	/*pi_spec.txt*
pi_tar.txt	pi_tar.txt	/*pi_tar.txt*
pi_vimball.txt	pi_vimball.txt	/*pi_vimball.txt*
pi_zip.txt	pi_zip.txt	/*pi_zip.txt*
pkzip	options.txt	/*pkzip*
plaintex.vim	syntax.txt	/*plaintex.vim*
plsql	ft_sql.txt	/*plsql*
plugin	usr_05.txt	/*plugin*
plugin-details	filetype.txt	/*plugin-details*
plugin-filetype	usr_41.txt	/*plugin-filetype*
plugin-special	usr_41.txt	/*plugin-special*
pmbcs-option	print.txt	/*pmbcs-option*
pmbfn-option	print.txt	/*pmbfn-option*
popt-option	print.txt	/*popt-option*
popup-menu	gui.txt	/*popup-menu*
popup-menu-added	version5.txt	/*popup-menu-added*
popupmenu-completion	insert.txt	/*popupmenu-completion*
popupmenu-keys	insert.txt	/*popupmenu-keys*
ports-5.2	version5.txt	/*ports-5.2*
ports-6	version6.txt	/*ports-6*
posix	vi_diff.txt	/*posix*
posix-compliance	vi_diff.txt	/*posix-compliance*
posix-screen-size	vi_diff.txt	/*posix-screen-size*
postgresql	ft_sql.txt	/*postgresql*
postscr.vim	syntax.txt	/*postscr.vim*
postscript-cjk-printing	print.txt	/*postscript-cjk-printing*
postscript-print-encoding	print.txt	/*postscript-print-encoding*
postscript-print-trouble	print.txt	/*postscript-print-trouble*
postscript-print-util	print.txt	/*postscript-print-util*
postscript-printing	print.txt	/*postscript-printing*
pow()	eval.txt	/*pow()*
ppwiz.vim	syntax.txt	/*ppwiz.vim*
press-enter	message.txt	/*press-enter*
press-return	message.txt	/*press-return*
prevcount-variable	eval.txt	/*prevcount-variable*
preview-window	windows.txt	/*preview-window*
prevnonblank()	eval.txt	/*prevnonblank()*
print-intro	print.txt	/*print-intro*
print-options	print.txt	/*print-options*
print.txt	print.txt	/*print.txt*
printf()	eval.txt	/*printf()*
printf-%	eval.txt	/*printf-%*
printf-B	eval.txt	/*printf-B*
printf-E	eval.txt	/*printf-E*
printf-G	eval.txt	/*printf-G*
printf-S	eval.txt	/*printf-S*
printf-X	eval.txt	/*printf-X*
printf-b	eval.txt	/*printf-b*
printf-c	eval.txt	/*printf-c*
printf-d	eval.txt	/*printf-d*
printf-e	eval.txt	/*printf-e*
printf-f	eval.txt	/*printf-f*
printf-g	eval.txt	/*printf-g*
printf-o	eval.txt	/*printf-o*
printf-s	eval.txt	/*printf-s*
printf-x	eval.txt	/*printf-x*
printing	print.txt	/*printing*
printing-formfeed	print.txt	/*printing-formfeed*
profile	repeat.txt	/*profile*
profiling	repeat.txt	/*profiling*
profiling-variable	eval.txt	/*profiling-variable*
progname-variable	eval.txt	/*progname-variable*
progpath-variable	eval.txt	/*progpath-variable*
progress.vim	syntax.txt	/*progress.vim*
pronounce	intro.txt	/*pronounce*
psql	ft_sql.txt	/*psql*
ptcap.vim	syntax.txt	/*ptcap.vim*
pterm-mouse	options.txt	/*pterm-mouse*
pumvisible()	eval.txt	/*pumvisible()*
put	change.txt	/*put*
put-Visual-mode	change.txt	/*put-Visual-mode*
py3eval()	eval.txt	/*py3eval()*
pyeval()	eval.txt	/*pyeval()*
python	if_pyth.txt	/*python*
python-.locked	if_pyth.txt	/*python-.locked*
python-2-and-3	if_pyth.txt	/*python-2-and-3*
python-Dictionary	if_pyth.txt	/*python-Dictionary*
python-Function	if_pyth.txt	/*python-Function*
python-List	if_pyth.txt	/*python-List*
python-VIM_SPECIAL_PATH	if_pyth.txt	/*python-VIM_SPECIAL_PATH*
python-_get_paths	if_pyth.txt	/*python-_get_paths*
python-bindeval	if_pyth.txt	/*python-bindeval*
python-bindeval-objects	if_pyth.txt	/*python-bindeval-objects*
python-buffer	if_pyth.txt	/*python-buffer*
python-buffers	if_pyth.txt	/*python-buffers*
python-building	if_pyth.txt	/*python-building*
python-chdir	if_pyth.txt	/*python-chdir*
python-command	if_pyth.txt	/*python-command*
python-commands	if_pyth.txt	/*python-commands*
python-current	if_pyth.txt	/*python-current*
python-dynamic	if_pyth.txt	/*python-dynamic*
python-error	if_pyth.txt	/*python-error*
python-eval	if_pyth.txt	/*python-eval*
python-examples	if_pyth.txt	/*python-examples*
python-fchdir	if_pyth.txt	/*python-fchdir*
python-find_module	if_pyth.txt	/*python-find_module*
python-foreach_rtp	if_pyth.txt	/*python-foreach_rtp*
python-input	if_pyth.txt	/*python-input*
python-options	if_pyth.txt	/*python-options*
python-output	if_pyth.txt	/*python-output*
python-path_hook	if_pyth.txt	/*python-path_hook*
python-pyeval	if_pyth.txt	/*python-pyeval*
python-range	if_pyth.txt	/*python-range*
python-special-path	if_pyth.txt	/*python-special-path*
python-strwidth	if_pyth.txt	/*python-strwidth*
python-tabpage	if_pyth.txt	/*python-tabpage*
python-tabpages	if_pyth.txt	/*python-tabpages*
python-vars	if_pyth.txt	/*python-vars*
python-vim	if_pyth.txt	/*python-vim*
python-vvars	if_pyth.txt	/*python-vvars*
python-window	if_pyth.txt	/*python-window*
python-windows	if_pyth.txt	/*python-windows*
python.vim	syntax.txt	/*python.vim*
python2-directory	if_pyth.txt	/*python2-directory*
python3	if_pyth.txt	/*python3*
python3-directory	if_pyth.txt	/*python3-directory*
python_x	if_pyth.txt	/*python_x*
python_x-special-comments	if_pyth.txt	/*python_x-special-comments*
pythonx	if_pyth.txt	/*pythonx*
pythonx-directory	if_pyth.txt	/*pythonx-directory*
pyxeval()	eval.txt	/*pyxeval()*
q	repeat.txt	/*q*
q/	cmdline.txt	/*q\/*
q:	cmdline.txt	/*q:*
q?	cmdline.txt	/*q?*
qnx	os_qnx.txt	/*qnx*
qnx-compiling	os_qnx.txt	/*qnx-compiling*
qnx-general	os_qnx.txt	/*qnx-general*
qnx-terminal	os_qnx.txt	/*qnx-terminal*
quake.vim	syntax.txt	/*quake.vim*
quickfix	quickfix.txt	/*quickfix*
quickfix-6	version6.txt	/*quickfix-6*
quickfix-ID	quickfix.txt	/*quickfix-ID*
quickfix-changedtick	quickfix.txt	/*quickfix-changedtick*
quickfix-context	quickfix.txt	/*quickfix-context*
quickfix-directory-stack	quickfix.txt	/*quickfix-directory-stack*
quickfix-error-lists	quickfix.txt	/*quickfix-error-lists*
quickfix-functions	usr_41.txt	/*quickfix-functions*
quickfix-gcc	quickfix.txt	/*quickfix-gcc*
quickfix-manx	quickfix.txt	/*quickfix-manx*
quickfix-parse	quickfix.txt	/*quickfix-parse*
quickfix-perl	quickfix.txt	/*quickfix-perl*
quickfix-size	quickfix.txt	/*quickfix-size*
quickfix-title	quickfix.txt	/*quickfix-title*
quickfix-valid	quickfix.txt	/*quickfix-valid*
quickfix-window	quickfix.txt	/*quickfix-window*
quickfix-window-ID	quickfix.txt	/*quickfix-window-ID*
quickfix.txt	quickfix.txt	/*quickfix.txt*
quickref	quickref.txt	/*quickref*
quickref.txt	quickref.txt	/*quickref.txt*
quote	change.txt	/*quote*
quote#	change.txt	/*quote#*
quote%	change.txt	/*quote%*
quote+	gui_x11.txt	/*quote+*
quote-	change.txt	/*quote-*
quote.	change.txt	/*quote.*
quote/	change.txt	/*quote\/*
quote0	change.txt	/*quote0*
quote1	change.txt	/*quote1*
quote2	change.txt	/*quote2*
quote3	change.txt	/*quote3*
quote4	change.txt	/*quote4*
quote9	change.txt	/*quote9*
quote:	change.txt	/*quote:*
quote=	change.txt	/*quote=*
quote_	change.txt	/*quote_*
quote_#	change.txt	/*quote_#*
quote_%	change.txt	/*quote_%*
quote_-	change.txt	/*quote_-*
quote_.	change.txt	/*quote_.*
quote_/	change.txt	/*quote_\/*
quote_:	change.txt	/*quote_:*
quote_=	change.txt	/*quote_=*
quote_alpha	change.txt	/*quote_alpha*
quote_number	change.txt	/*quote_number*
quote_quote	change.txt	/*quote_quote*
quote_~	change.txt	/*quote_~*
quotea	change.txt	/*quotea*
quotecommandquote	intro.txt	/*quotecommandquote*
quoteplus	gui_x11.txt	/*quoteplus*
quotequote	change.txt	/*quotequote*
quotes	quotes.txt	/*quotes*
quotes.txt	quotes.txt	/*quotes.txt*
quotestar	gui.txt	/*quotestar*
quote~	change.txt	/*quote~*
r	change.txt	/*r*
range()	eval.txt	/*range()*
raw-terminal-mode	term.txt	/*raw-terminal-mode*
rcp	pi_netrw.txt	/*rcp*
read-in-close-cb	channel.txt	/*read-in-close-cb*
read-messages	insert.txt	/*read-messages*
read-only-share	editing.txt	/*read-only-share*
read-stdin	version5.txt	/*read-stdin*
readfile()	eval.txt	/*readfile()*
readline.vim	syntax.txt	/*readline.vim*
recording	repeat.txt	/*recording*
recover.txt	recover.txt	/*recover.txt*
recovery	recover.txt	/*recovery*
recursive_mapping	map.txt	/*recursive_mapping*
redo	undo.txt	/*redo*
redo-register	undo.txt	/*redo-register*
ref	intro.txt	/*ref*
reference	intro.txt	/*reference*
reference_toc	help.txt	/*reference_toc*
regexp	pattern.txt	/*regexp*
regexp-changes-5.4	version5.txt	/*regexp-changes-5.4*
register	sponsor.txt	/*register*
register-faq	sponsor.txt	/*register-faq*
register-variable	eval.txt	/*register-variable*
registers	change.txt	/*registers*
regular-expression	pattern.txt	/*regular-expression*
reload	editing.txt	/*reload*
reltime()	eval.txt	/*reltime()*
reltimefloat()	eval.txt	/*reltimefloat()*
reltimestr()	eval.txt	/*reltimestr()*
remote.txt	remote.txt	/*remote.txt*
remote_expr()	eval.txt	/*remote_expr()*
remote_foreground()	eval.txt	/*remote_foreground()*
remote_peek()	eval.txt	/*remote_peek()*
remote_read()	eval.txt	/*remote_read()*
remote_send()	eval.txt	/*remote_send()*
remote_startserver()	eval.txt	/*remote_startserver()*
remove()	eval.txt	/*remove()*
remove-filetype	filetype.txt	/*remove-filetype*
remove-option-flags	options.txt	/*remove-option-flags*
rename()	eval.txt	/*rename()*
rename-files	tips.txt	/*rename-files*
repeat()	eval.txt	/*repeat()*
repeat.txt	repeat.txt	/*repeat.txt*
repeating	repeat.txt	/*repeating*
replacing	change.txt	/*replacing*
replacing-ex	insert.txt	/*replacing-ex*
reselect-Visual	visual.txt	/*reselect-Visual*
resolve()	eval.txt	/*resolve()*
restore-cursor	usr_05.txt	/*restore-cursor*
restore-position	tips.txt	/*restore-position*
restricted-mode	starting.txt	/*restricted-mode*
retab-example	change.txt	/*retab-example*
rethrow	eval.txt	/*rethrow*
reverse()	eval.txt	/*reverse()*
rexx.vim	syntax.txt	/*rexx.vim*
rgb.txt	gui_w32.txt	/*rgb.txt*
rgview	starting.txt	/*rgview*
rgvim	starting.txt	/*rgvim*
right-justify	change.txt	/*right-justify*
rileft	rileft.txt	/*rileft*
rileft.txt	rileft.txt	/*rileft.txt*
riscos	os_risc.txt	/*riscos*
rot13	change.txt	/*rot13*
round()	eval.txt	/*round()*
rst.vim	syntax.txt	/*rst.vim*
rsync	pi_netrw.txt	/*rsync*
ruby	if_ruby.txt	/*ruby*
ruby-buffer	if_ruby.txt	/*ruby-buffer*
ruby-command	if_ruby.txt	/*ruby-command*
ruby-commands	if_ruby.txt	/*ruby-commands*
ruby-dynamic	if_ruby.txt	/*ruby-dynamic*
ruby-evaluate	if_ruby.txt	/*ruby-evaluate*
ruby-globals	if_ruby.txt	/*ruby-globals*
ruby-message	if_ruby.txt	/*ruby-message*
ruby-set_option	if_ruby.txt	/*ruby-set_option*
ruby-vim	if_ruby.txt	/*ruby-vim*
ruby-window	if_ruby.txt	/*ruby-window*
ruby.vim	syntax.txt	/*ruby.vim*
ruby_fold	syntax.txt	/*ruby_fold*
ruby_foldable_groups	syntax.txt	/*ruby_foldable_groups*
ruby_minlines	syntax.txt	/*ruby_minlines*
ruby_no_expensive	syntax.txt	/*ruby_no_expensive*
ruby_operators	syntax.txt	/*ruby_operators*
ruby_space_errors	syntax.txt	/*ruby_space_errors*
ruby_spellcheck_strings	syntax.txt	/*ruby_spellcheck_strings*
russian	russian.txt	/*russian*
russian-intro	russian.txt	/*russian-intro*
russian-issues	russian.txt	/*russian-issues*
russian-keymap	russian.txt	/*russian-keymap*
russian-l18n	russian.txt	/*russian-l18n*
russian.txt	russian.txt	/*russian.txt*
rust	ft_rust.txt	/*rust*
rust-commands	ft_rust.txt	/*rust-commands*
rust-intro	ft_rust.txt	/*rust-intro*
rust-mappings	ft_rust.txt	/*rust-mappings*
rust-settings	ft_rust.txt	/*rust-settings*
rust_<D-R>	ft_rust.txt	/*rust_<D-R>*
rust_<D-r>	ft_rust.txt	/*rust_<D-r>*
rview	starting.txt	/*rview*
rvim	starting.txt	/*rvim*
rxvt	syntax.txt	/*rxvt*
s	change.txt	/*s*
s/\&	change.txt	/*s\/\\&*
s/\0	change.txt	/*s\/\\0*
s/\1	change.txt	/*s\/\\1*
s/\2	change.txt	/*s\/\\2*
s/\3	change.txt	/*s\/\\3*
s/\9	change.txt	/*s\/\\9*
s/\<CR>	change.txt	/*s\/\\<CR>*
s/\=	change.txt	/*s\/\\=*
s/\E	change.txt	/*s\/\\E*
s/\L	change.txt	/*s\/\\L*
s/\U	change.txt	/*s\/\\U*
s/\\	change.txt	/*s\/\\\\*
s/\b	change.txt	/*s\/\\b*
s/\e	change.txt	/*s\/\\e*
s/\l	change.txt	/*s\/\\l*
s/\n	change.txt	/*s\/\\n*
s/\r	change.txt	/*s\/\\r*
s/\t	change.txt	/*s\/\\t*
s/\u	change.txt	/*s\/\\u*
s/\~	change.txt	/*s\/\\~*
s:netrw_passwd	pi_netrw.txt	/*s:netrw_passwd*
s:var	eval.txt	/*s:var*
s<CR>	change.txt	/*s<CR>*
sandbox	eval.txt	/*sandbox*
sandbox-option	eval.txt	/*sandbox-option*
save-file	editing.txt	/*save-file*
save-settings	starting.txt	/*save-settings*
scheme.vim	syntax.txt	/*scheme.vim*
scp	pi_netrw.txt	/*scp*
screenattr()	eval.txt	/*screenattr()*
screenchar()	eval.txt	/*screenchar()*
screencol()	eval.txt	/*screencol()*
screenrow()	eval.txt	/*screenrow()*
script	usr_41.txt	/*script*
script-here	if_perl.txt	/*script-here*
script-local	map.txt	/*script-local*
script-variable	eval.txt	/*script-variable*
scriptnames-dictionary	eval.txt	/*scriptnames-dictionary*
scriptout-changed	version4.txt	/*scriptout-changed*
scroll-binding	scroll.txt	/*scroll-binding*
scroll-cursor	scroll.txt	/*scroll-cursor*
scroll-down	scroll.txt	/*scroll-down*
scroll-horizontal	scroll.txt	/*scroll-horizontal*
scroll-insert	tips.txt	/*scroll-insert*
scroll-mouse-wheel	scroll.txt	/*scroll-mouse-wheel*
scroll-region	term.txt	/*scroll-region*
scroll-smooth	tips.txt	/*scroll-smooth*
scroll-up	scroll.txt	/*scroll-up*
scroll.txt	scroll.txt	/*scroll.txt*
scrollbind-quickadj	scroll.txt	/*scrollbind-quickadj*
scrollbind-relative	scroll.txt	/*scrollbind-relative*
scrolling	scroll.txt	/*scrolling*
scrollstart-variable	eval.txt	/*scrollstart-variable*
sdl.vim	syntax.txt	/*sdl.vim*
search()	eval.txt	/*search()*
search()-sub-match	eval.txt	/*search()-sub-match*
search-commands	pattern.txt	/*search-commands*
search-offset	pattern.txt	/*search-offset*
search-pattern	pattern.txt	/*search-pattern*
search-range	pattern.txt	/*search-range*
search-replace	change.txt	/*search-replace*
searchdecl()	eval.txt	/*searchdecl()*
searchforward-variable	eval.txt	/*searchforward-variable*
searchpair()	eval.txt	/*searchpair()*
searchpairpos()	eval.txt	/*searchpairpos()*
searchpos()	eval.txt	/*searchpos()*
section	motion.txt	/*section*
sed.vim	syntax.txt	/*sed.vim*
self	eval.txt	/*self*
send-money	sponsor.txt	/*send-money*
send-to-menu	gui_w32.txt	/*send-to-menu*
sendto	gui_w32.txt	/*sendto*
sentence	motion.txt	/*sentence*
server-functions	usr_41.txt	/*server-functions*
server2client()	eval.txt	/*server2client()*
serverlist()	eval.txt	/*serverlist()*
servername-variable	eval.txt	/*servername-variable*
session-file	starting.txt	/*session-file*
set-option	options.txt	/*set-option*
set-spc-auto	spell.txt	/*set-spc-auto*
setbufline()	eval.txt	/*setbufline()*
setbufvar()	eval.txt	/*setbufvar()*
setcharsearch()	eval.txt	/*setcharsearch()*
setcmdpos()	eval.txt	/*setcmdpos()*
setfperm()	eval.txt	/*setfperm()*
setline()	eval.txt	/*setline()*
setloclist()	eval.txt	/*setloclist()*
setmatches()	eval.txt	/*setmatches()*
setpos()	eval.txt	/*setpos()*
setqflist()	eval.txt	/*setqflist()*
setreg()	eval.txt	/*setreg()*
settabvar()	eval.txt	/*settabvar()*
settabwinvar()	eval.txt	/*settabwinvar()*
setting-guifont	gui.txt	/*setting-guifont*
setting-guitablabel	tabpage.txt	/*setting-guitablabel*
setting-tabline	tabpage.txt	/*setting-tabline*
setuid	change.txt	/*setuid*
setwinvar()	eval.txt	/*setwinvar()*
sftp	pi_netrw.txt	/*sftp*
sgml.vim	syntax.txt	/*sgml.vim*
sgr-mouse	options.txt	/*sgr-mouse*
sh-awk	syntax.txt	/*sh-awk*
sh-embed	syntax.txt	/*sh-embed*
sh.vim	syntax.txt	/*sh.vim*
sha256()	eval.txt	/*sha256()*
shell-window	tips.txt	/*shell-window*
shell_error-variable	eval.txt	/*shell_error-variable*
shellescape()	eval.txt	/*shellescape()*
shift	intro.txt	/*shift*
shift-left-right	change.txt	/*shift-left-right*
shiftwidth()	eval.txt	/*shiftwidth()*
short-name-changed	version4.txt	/*short-name-changed*
showing-menus	gui.txt	/*showing-menus*
sign-commands	sign.txt	/*sign-commands*
sign-intro	sign.txt	/*sign-intro*
sign-support	sign.txt	/*sign-support*
sign.txt	sign.txt	/*sign.txt*
signs	sign.txt	/*signs*
simple-change	change.txt	/*simple-change*
simplify()	eval.txt	/*simplify()*
simulated-command	vi_diff.txt	/*simulated-command*
sin()	eval.txt	/*sin()*
single-repeat	repeat.txt	/*single-repeat*
sinh()	eval.txt	/*sinh()*
skeleton	autocmd.txt	/*skeleton*
skip_defaults_vim	starting.txt	/*skip_defaults_vim*
slice	eval.txt	/*slice*
slow-fast-terminal	term.txt	/*slow-fast-terminal*
slow-start	starting.txt	/*slow-start*
slow-terminal	term.txt	/*slow-terminal*
socket-interface	channel.txt	/*socket-interface*
sort()	eval.txt	/*sort()*
sorting	change.txt	/*sorting*
soundfold()	eval.txt	/*soundfold()*
space	intro.txt	/*space*
spec-customizing	pi_spec.txt	/*spec-customizing*
spec-how-to-use-it	pi_spec.txt	/*spec-how-to-use-it*
spec-setting-a-map	pi_spec.txt	/*spec-setting-a-map*
spec_chglog_format	pi_spec.txt	/*spec_chglog_format*
spec_chglog_prepend	pi_spec.txt	/*spec_chglog_prepend*
spec_chglog_release_info	pi_spec.txt	/*spec_chglog_release_info*
special-buffers	windows.txt	/*special-buffers*
speed-up	tips.txt	/*speed-up*
spell	spell.txt	/*spell*
spell-ACCENT	spell.txt	/*spell-ACCENT*
spell-AUTHOR	spell.txt	/*spell-AUTHOR*
spell-BAD	spell.txt	/*spell-BAD*
spell-BREAK	spell.txt	/*spell-BREAK*
spell-CHECKCOMPOUNDCASE	spell.txt	/*spell-CHECKCOMPOUNDCASE*
spell-CHECKCOMPOUNDDUP	spell.txt	/*spell-CHECKCOMPOUNDDUP*
spell-CHECKCOMPOUNDPATTERN	spell.txt	/*spell-CHECKCOMPOUNDPATTERN*
spell-CHECKCOMPOUNDREP	spell.txt	/*spell-CHECKCOMPOUNDREP*
spell-CHECKCOMPOUNDTRIPLE	spell.txt	/*spell-CHECKCOMPOUNDTRIPLE*
spell-CIRCUMFIX	spell.txt	/*spell-CIRCUMFIX*
spell-COMMON	spell.txt	/*spell-COMMON*
spell-COMPLEXPREFIXES	spell.txt	/*spell-COMPLEXPREFIXES*
spell-COMPOUND	spell.txt	/*spell-COMPOUND*
spell-COMPOUNDBEGIN	spell.txt	/*spell-COMPOUNDBEGIN*
spell-COMPOUNDEND	spell.txt	/*spell-COMPOUNDEND*
spell-COMPOUNDFIRST	spell.txt	/*spell-COMPOUNDFIRST*
spell-COMPOUNDFLAG	spell.txt	/*spell-COMPOUNDFLAG*
spell-COMPOUNDFORBIDFLAG	spell.txt	/*spell-COMPOUNDFORBIDFLAG*
spell-COMPOUNDMIDDLE	spell.txt	/*spell-COMPOUNDMIDDLE*
spell-COMPOUNDMIN	spell.txt	/*spell-COMPOUNDMIN*
spell-COMPOUNDPERMITFLAG	spell.txt	/*spell-COMPOUNDPERMITFLAG*
spell-COMPOUNDROOT	spell.txt	/*spell-COMPOUNDROOT*
spell-COMPOUNDRULE	spell.txt	/*spell-COMPOUNDRULE*
spell-COMPOUNDRULES	spell.txt	/*spell-COMPOUNDRULES*
spell-COMPOUNDSYLLABLE	spell.txt	/*spell-COMPOUNDSYLLABLE*
spell-COMPOUNDSYLMAX	spell.txt	/*spell-COMPOUNDSYLMAX*
spell-COMPOUNDWORDMAX	spell.txt	/*spell-COMPOUNDWORDMAX*
spell-COPYRIGHT	spell.txt	/*spell-COPYRIGHT*
spell-EMAIL	spell.txt	/*spell-EMAIL*
spell-FLAG	spell.txt	/*spell-FLAG*
spell-FOL	spell.txt	/*spell-FOL*
spell-FORBIDDENWORD	spell.txt	/*spell-FORBIDDENWORD*
spell-HOME	spell.txt	/*spell-HOME*
spell-IGNOREEXTRA	spell.txt	/*spell-IGNOREEXTRA*
spell-KEEPCASE	spell.txt	/*spell-KEEPCASE*
spell-KEY	spell.txt	/*spell-KEY*
spell-LANG	spell.txt	/*spell-LANG*
spell-LEMMA_PRESENT	spell.txt	/*spell-LEMMA_PRESENT*
spell-LOW	spell.txt	/*spell-LOW*
spell-MAP	spell.txt	/*spell-MAP*
spell-MAXNGRAMSUGS	spell.txt	/*spell-MAXNGRAMSUGS*
spell-NAME	spell.txt	/*spell-NAME*
spell-NEEDAFFIX	spell.txt	/*spell-NEEDAFFIX*
spell-NEEDCOMPOUND	spell.txt	/*spell-NEEDCOMPOUND*
spell-NOBREAK	spell.txt	/*spell-NOBREAK*
spell-NOCOMPOUNDSUGS	spell.txt	/*spell-NOCOMPOUNDSUGS*
spell-NOSPLITSUGS	spell.txt	/*spell-NOSPLITSUGS*
spell-NOSUGFILE	spell.txt	/*spell-NOSUGFILE*
spell-NOSUGGEST	spell.txt	/*spell-NOSUGGEST*
spell-ONLYINCOMPOUND	spell.txt	/*spell-ONLYINCOMPOUND*
spell-PFX	spell.txt	/*spell-PFX*
spell-PFXPOSTPONE	spell.txt	/*spell-PFXPOSTPONE*
spell-PSEUDOROOT	spell.txt	/*spell-PSEUDOROOT*
spell-RARE	spell.txt	/*spell-RARE*
spell-REP	spell.txt	/*spell-REP*
spell-SAL	spell.txt	/*spell-SAL*
spell-SET	spell.txt	/*spell-SET*
spell-SFX	spell.txt	/*spell-SFX*
spell-SLASH	spell.txt	/*spell-SLASH*
spell-SOFOFROM	spell.txt	/*spell-SOFOFROM*
spell-SOFOTO	spell.txt	/*spell-SOFOTO*
spell-SUGSWITHDOTS	spell.txt	/*spell-SUGSWITHDOTS*
spell-SYLLABLE	spell.txt	/*spell-SYLLABLE*
spell-SYLLABLENUM	spell.txt	/*spell-SYLLABLENUM*
spell-SpellFileMissing	spell.txt	/*spell-SpellFileMissing*
spell-TRY	spell.txt	/*spell-TRY*
spell-UPP	spell.txt	/*spell-UPP*
spell-VERSION	spell.txt	/*spell-VERSION*
spell-WORDCHARS	spell.txt	/*spell-WORDCHARS*
spell-aff-format	spell.txt	/*spell-aff-format*
spell-affix-chars	spell.txt	/*spell-affix-chars*
spell-affix-comment	spell.txt	/*spell-affix-comment*
spell-affix-flags	spell.txt	/*spell-affix-flags*
spell-affix-mbyte	spell.txt	/*spell-affix-mbyte*
spell-affix-not-supported	spell.txt	/*spell-affix-not-supported*
spell-affix-vim	spell.txt	/*spell-affix-vim*
spell-cjk	spell.txt	/*spell-cjk*
spell-compound	spell.txt	/*spell-compound*
spell-dic-format	spell.txt	/*spell-dic-format*
spell-double-scoring	spell.txt	/*spell-double-scoring*
spell-file-format	spell.txt	/*spell-file-format*
spell-functions	usr_41.txt	/*spell-functions*
spell-german	spell.txt	/*spell-german*
spell-load	spell.txt	/*spell-load*
spell-midword	spell.txt	/*spell-midword*
spell-mkspell	spell.txt	/*spell-mkspell*
spell-quickstart	spell.txt	/*spell-quickstart*
spell-remarks	spell.txt	/*spell-remarks*
spell-russian	spell.txt	/*spell-russian*
spell-sug-file	spell.txt	/*spell-sug-file*
spell-syntax	spell.txt	/*spell-syntax*
spell-wordlist-format	spell.txt	/*spell-wordlist-format*
spell-yiddish	spell.txt	/*spell-yiddish*
spell.txt	spell.txt	/*spell.txt*
spellbadword()	eval.txt	/*spellbadword()*
spellfile-cleanup	spell.txt	/*spellfile-cleanup*
spellfile.vim	spell.txt	/*spellfile.vim*
spellsuggest()	eval.txt	/*spellsuggest()*
split()	eval.txt	/*split()*
splitfind	windows.txt	/*splitfind*
splitview	windows.txt	/*splitview*
sponsor	sponsor.txt	/*sponsor*
sponsor-faq	sponsor.txt	/*sponsor-faq*
sponsor.txt	sponsor.txt	/*sponsor.txt*
spoon	os_unix.txt	/*spoon*
spup.vim	syntax.txt	/*spup.vim*
sql-adding-dialects	ft_sql.txt	/*sql-adding-dialects*
sql-completion	ft_sql.txt	/*sql-completion*
sql-completion-columns	ft_sql.txt	/*sql-completion-columns*
sql-completion-customization	ft_sql.txt	/*sql-completion-customization*
sql-completion-dynamic	ft_sql.txt	/*sql-completion-dynamic*
sql-completion-filetypes	ft_sql.txt	/*sql-completion-filetypes*
sql-completion-maps	ft_sql.txt	/*sql-completion-maps*
sql-completion-procedures	ft_sql.txt	/*sql-completion-procedures*
sql-completion-static	ft_sql.txt	/*sql-completion-static*
sql-completion-tables	ft_sql.txt	/*sql-completion-tables*
sql-completion-tutorial	ft_sql.txt	/*sql-completion-tutorial*
sql-completion-views	ft_sql.txt	/*sql-completion-views*
sql-dialects	ft_sql.txt	/*sql-dialects*
sql-macros	ft_sql.txt	/*sql-macros*
sql-matchit	ft_sql.txt	/*sql-matchit*
sql-navigation	ft_sql.txt	/*sql-navigation*
sql-object-motions	ft_sql.txt	/*sql-object-motions*
sql-predefined-objects	ft_sql.txt	/*sql-predefined-objects*
sql-type-default	ft_sql.txt	/*sql-type-default*
sql-types	ft_sql.txt	/*sql-types*
sql.vim	syntax.txt	/*sql.vim*
sqlanywhere	ft_sql.txt	/*sqlanywhere*
sqlanywhere.vim	syntax.txt	/*sqlanywhere.vim*
sqlgettype	ft_sql.txt	/*sqlgettype*
sqlinformix.vim	syntax.txt	/*sqlinformix.vim*
sqlj	ft_sql.txt	/*sqlj*
sqlserver	ft_sql.txt	/*sqlserver*
sqlsettype	ft_sql.txt	/*sqlsettype*
sqrt()	eval.txt	/*sqrt()*
sscanf	eval.txt	/*sscanf*
standard-plugin	usr_05.txt	/*standard-plugin*
standard-plugin-list	help.txt	/*standard-plugin-list*
standout	syntax.txt	/*standout*
star	pattern.txt	/*star*
starstar	editing.txt	/*starstar*
starstar-wildcard	editing.txt	/*starstar-wildcard*
start-of-file	pattern.txt	/*start-of-file*
start-vimdiff	diff.txt	/*start-vimdiff*
starting	starting.txt	/*starting*
starting-amiga	starting.txt	/*starting-amiga*
starting.txt	starting.txt	/*starting.txt*
startup	starting.txt	/*startup*
startup-options	starting.txt	/*startup-options*
startup-terminal	term.txt	/*startup-terminal*
static-tag	tagsrch.txt	/*static-tag*
status-line	windows.txt	/*status-line*
statusmsg-variable	eval.txt	/*statusmsg-variable*
str2float()	eval.txt	/*str2float()*
str2nr()	eval.txt	/*str2nr()*
strcasestr()	eval.txt	/*strcasestr()*
strcharpart()	eval.txt	/*strcharpart()*
strchars()	eval.txt	/*strchars()*
strchr()	eval.txt	/*strchr()*
strcspn()	eval.txt	/*strcspn()*
strdisplaywidth()	eval.txt	/*strdisplaywidth()*
strftime()	eval.txt	/*strftime()*
strgetchar()	eval.txt	/*strgetchar()*
stridx()	eval.txt	/*stridx()*
strikethrough	syntax.txt	/*strikethrough*
string	eval.txt	/*string*
string()	eval.txt	/*string()*
string-functions	usr_41.txt	/*string-functions*
string-match	eval.txt	/*string-match*
strlen()	eval.txt	/*strlen()*
strpart()	eval.txt	/*strpart()*
strpbrk()	eval.txt	/*strpbrk()*
strrchr()	eval.txt	/*strrchr()*
strridx()	eval.txt	/*strridx()*
strspn()	eval.txt	/*strspn()*
strstr()	eval.txt	/*strstr()*
strtrans()	eval.txt	/*strtrans()*
strwidth()	eval.txt	/*strwidth()*
style-changes	develop.txt	/*style-changes*
style-compiler	develop.txt	/*style-compiler*
style-examples	develop.txt	/*style-examples*
style-functions	develop.txt	/*style-functions*
style-names	develop.txt	/*style-names*
style-spaces	develop.txt	/*style-spaces*
style-various	develop.txt	/*style-various*
sub-menu-priority	gui.txt	/*sub-menu-priority*
sub-replace-\=	change.txt	/*sub-replace-\\=*
sub-replace-expression	change.txt	/*sub-replace-expression*
sub-replace-special	change.txt	/*sub-replace-special*
sublist	eval.txt	/*sublist*
submatch()	eval.txt	/*submatch()*
subscribe-maillist	intro.txt	/*subscribe-maillist*
subscript	eval.txt	/*subscript*
substitute()	eval.txt	/*substitute()*
substitute-CR	version6.txt	/*substitute-CR*
suffixes	cmdline.txt	/*suffixes*
suspend	starting.txt	/*suspend*
swap-exists-choices	usr_11.txt	/*swap-exists-choices*
swap-file	recover.txt	/*swap-file*
swapchoice-variable	eval.txt	/*swapchoice-variable*
swapcommand-variable	eval.txt	/*swapcommand-variable*
swapfile-changed	version4.txt	/*swapfile-changed*
swapname-variable	eval.txt	/*swapname-variable*
sybase	ft_sql.txt	/*sybase*
syn-sync-grouphere	syntax.txt	/*syn-sync-grouphere*
syn-sync-groupthere	syntax.txt	/*syn-sync-groupthere*
syn-sync-linecont	syntax.txt	/*syn-sync-linecont*
synID()	eval.txt	/*synID()*
synIDattr()	eval.txt	/*synIDattr()*
synIDtrans()	eval.txt	/*synIDtrans()*
syncbind	scroll.txt	/*syncbind*
syncolor	syntax.txt	/*syncolor*
synconcealed()	eval.txt	/*synconcealed()*
synload-1	syntax.txt	/*synload-1*
synload-2	syntax.txt	/*synload-2*
synload-3	syntax.txt	/*synload-3*
synload-4	syntax.txt	/*synload-4*
synload-5	syntax.txt	/*synload-5*
synload-6	syntax.txt	/*synload-6*
synstack()	eval.txt	/*synstack()*
syntax	syntax.txt	/*syntax*
syntax-functions	usr_41.txt	/*syntax-functions*
syntax-highlighting	syntax.txt	/*syntax-highlighting*
syntax-loading	syntax.txt	/*syntax-loading*
syntax-printing	usr_06.txt	/*syntax-printing*
syntax.txt	syntax.txt	/*syntax.txt*
syntax_cmd	syntax.txt	/*syntax_cmd*
sys-file-list	help.txt	/*sys-file-list*
sysmouse	term.txt	/*sysmouse*
system()	eval.txt	/*system()*
system-functions	usr_41.txt	/*system-functions*
system-vimrc	starting.txt	/*system-vimrc*
systemlist()	eval.txt	/*systemlist()*
s~	change.txt	/*s~*
t	motion.txt	/*t*
t:	eval.txt	/*t:*
t:var	eval.txt	/*t:var*
t_#2	term.txt	/*t_#2*
t_#4	term.txt	/*t_#4*
t_%1	term.txt	/*t_%1*
t_%i	term.txt	/*t_%i*
t_&8	term.txt	/*t_&8*
t_8b	term.txt	/*t_8b*
t_8f	term.txt	/*t_8f*
t_@7	term.txt	/*t_@7*
t_AB	term.txt	/*t_AB*
t_AF	term.txt	/*t_AF*
t_AL	term.txt	/*t_AL*
t_BD	term.txt	/*t_BD*
t_BE	term.txt	/*t_BE*
t_CS	term.txt	/*t_CS*
t_CTRL-W_CTRL-C	terminal.txt	/*t_CTRL-W_CTRL-C*
t_CTRL-\_CTRL-N	terminal.txt	/*t_CTRL-\\_CTRL-N*
t_CV	term.txt	/*t_CV*
t_Ce	term.txt	/*t_Ce*
t_Co	term.txt	/*t_Co*
t_Cs	term.txt	/*t_Cs*
t_DL	term.txt	/*t_DL*
t_EC	term.txt	/*t_EC*
t_EI	term.txt	/*t_EI*
t_F1	term.txt	/*t_F1*
t_F2	term.txt	/*t_F2*
t_F3	term.txt	/*t_F3*
t_F4	term.txt	/*t_F4*
t_F5	term.txt	/*t_F5*
t_F6	term.txt	/*t_F6*
t_F7	term.txt	/*t_F7*
t_F8	term.txt	/*t_F8*
t_F9	term.txt	/*t_F9*
t_GP	term.txt	/*t_GP*
t_IE	term.txt	/*t_IE*
t_IS	term.txt	/*t_IS*
t_K1	term.txt	/*t_K1*
t_K3	term.txt	/*t_K3*
t_K4	term.txt	/*t_K4*
t_K5	term.txt	/*t_K5*
t_K6	term.txt	/*t_K6*
t_K7	term.txt	/*t_K7*
t_K8	term.txt	/*t_K8*
t_K9	term.txt	/*t_K9*
t_KA	term.txt	/*t_KA*
t_KB	term.txt	/*t_KB*
t_KC	term.txt	/*t_KC*
t_KD	term.txt	/*t_KD*
t_KE	term.txt	/*t_KE*
t_KF	term.txt	/*t_KF*
t_KG	term.txt	/*t_KG*
t_KH	term.txt	/*t_KH*
t_KI	term.txt	/*t_KI*
t_KJ	term.txt	/*t_KJ*
t_KK	term.txt	/*t_KK*
t_KL	term.txt	/*t_KL*
t_PE	term.txt	/*t_PE*
t_PS	term.txt	/*t_PS*
t_RB	term.txt	/*t_RB*
t_RC	term.txt	/*t_RC*
t_RF	term.txt	/*t_RF*
t_RI	term.txt	/*t_RI*
t_RS	term.txt	/*t_RS*
t_RV	term.txt	/*t_RV*
t_SC	term.txt	/*t_SC*
t_SH	term.txt	/*t_SH*
t_SI	term.txt	/*t_SI*
t_SR	term.txt	/*t_SR*
t_Sb	term.txt	/*t_Sb*
t_Sf	term.txt	/*t_Sf*
t_Te	term.txt	/*t_Te*
t_Ts	term.txt	/*t_Ts*
t_VS	term.txt	/*t_VS*
t_WP	term.txt	/*t_WP*
t_WS	term.txt	/*t_WS*
t_ZH	term.txt	/*t_ZH*
t_ZR	term.txt	/*t_ZR*
t_al	term.txt	/*t_al*
t_bc	term.txt	/*t_bc*
t_bool-variable	eval.txt	/*t_bool-variable*
t_cd	term.txt	/*t_cd*
t_cdl	version4.txt	/*t_cdl*
t_ce	term.txt	/*t_ce*
t_channel-variable	eval.txt	/*t_channel-variable*
t_ci	version4.txt	/*t_ci*
t_cil	version4.txt	/*t_cil*
t_cl	term.txt	/*t_cl*
t_cm	term.txt	/*t_cm*
t_cri	version4.txt	/*t_cri*
t_cs	term.txt	/*t_cs*
t_csc	version4.txt	/*t_csc*
t_cv	version4.txt	/*t_cv*
t_cvv	version4.txt	/*t_cvv*
t_da	term.txt	/*t_da*
t_db	term.txt	/*t_db*
t_dict-variable	eval.txt	/*t_dict-variable*
t_dl	term.txt	/*t_dl*
t_ed	version4.txt	/*t_ed*
t_el	version4.txt	/*t_el*
t_f1	version4.txt	/*t_f1*
t_f10	version4.txt	/*t_f10*
t_f2	version4.txt	/*t_f2*
t_f3	version4.txt	/*t_f3*
t_f4	version4.txt	/*t_f4*
t_f5	version4.txt	/*t_f5*
t_f6	version4.txt	/*t_f6*
t_f7	version4.txt	/*t_f7*
t_f8	version4.txt	/*t_f8*
t_f9	version4.txt	/*t_f9*
t_float-variable	eval.txt	/*t_float-variable*
t_fs	term.txt	/*t_fs*
t_func-variable	eval.txt	/*t_func-variable*
t_help	version4.txt	/*t_help*
t_il	version4.txt	/*t_il*
t_job-variable	eval.txt	/*t_job-variable*
t_k1	term.txt	/*t_k1*
t_k2	term.txt	/*t_k2*
t_k3	term.txt	/*t_k3*
t_k4	term.txt	/*t_k4*
t_k5	term.txt	/*t_k5*
t_k6	term.txt	/*t_k6*
t_k7	term.txt	/*t_k7*
t_k8	term.txt	/*t_k8*
t_k9	term.txt	/*t_k9*
t_k;	term.txt	/*t_k;*
t_kB	term.txt	/*t_kB*
t_kD	term.txt	/*t_kD*
t_kI	term.txt	/*t_kI*
t_kN	term.txt	/*t_kN*
t_kP	term.txt	/*t_kP*
t_kb	term.txt	/*t_kb*
t_kd	term.txt	/*t_kd*
t_ke	term.txt	/*t_ke*
t_kh	term.txt	/*t_kh*
t_kl	term.txt	/*t_kl*
t_kr	term.txt	/*t_kr*
t_ks	term.txt	/*t_ks*
t_ku	term.txt	/*t_ku*
t_le	term.txt	/*t_le*
t_list-variable	eval.txt	/*t_list-variable*
t_mb	term.txt	/*t_mb*
t_md	term.txt	/*t_md*
t_me	term.txt	/*t_me*
t_mr	term.txt	/*t_mr*
t_ms	term.txt	/*t_ms*
t_nd	term.txt	/*t_nd*
t_none-variable	eval.txt	/*t_none-variable*
t_number-variable	eval.txt	/*t_number-variable*
t_op	term.txt	/*t_op*
t_se	term.txt	/*t_se*
t_sf1	version4.txt	/*t_sf1*
t_sf10	version4.txt	/*t_sf10*
t_sf2	version4.txt	/*t_sf2*
t_sf3	version4.txt	/*t_sf3*
t_sf4	version4.txt	/*t_sf4*
t_sf5	version4.txt	/*t_sf5*
t_sf6	version4.txt	/*t_sf6*
t_sf7	version4.txt	/*t_sf7*
t_sf8	version4.txt	/*t_sf8*
t_sf9	version4.txt	/*t_sf9*
t_skd	version4.txt	/*t_skd*
t_skl	version4.txt	/*t_skl*
t_skr	version4.txt	/*t_skr*
t_sku	version4.txt	/*t_sku*
t_so	term.txt	/*t_so*
t_sr	term.txt	/*t_sr*
t_star7	term.txt	/*t_star7*
t_string-variable	eval.txt	/*t_string-variable*
t_tb	version4.txt	/*t_tb*
t_te	term.txt	/*t_te*
t_ti	term.txt	/*t_ti*
t_tp	version4.txt	/*t_tp*
t_ts	term.txt	/*t_ts*
t_ts_old	version4.txt	/*t_ts_old*
t_u7	term.txt	/*t_u7*
t_ue	term.txt	/*t_ue*
t_undo	version4.txt	/*t_undo*
t_us	term.txt	/*t_us*
t_ut	term.txt	/*t_ut*
t_vb	term.txt	/*t_vb*
t_ve	term.txt	/*t_ve*
t_vi	term.txt	/*t_vi*
t_vs	term.txt	/*t_vs*
t_xn	term.txt	/*t_xn*
t_xs	term.txt	/*t_xs*
tab	intro.txt	/*tab*
tab-page	tabpage.txt	/*tab-page*
tab-page-commands	tabpage.txt	/*tab-page-commands*
tab-page-intro	tabpage.txt	/*tab-page-intro*
tab-page-other	tabpage.txt	/*tab-page-other*
tabline-menu	tabpage.txt	/*tabline-menu*
tabnew-autocmd	tabpage.txt	/*tabnew-autocmd*
tabpage	tabpage.txt	/*tabpage*
tabpage-variable	eval.txt	/*tabpage-variable*
tabpage.txt	tabpage.txt	/*tabpage.txt*
tabpagebuflist()	eval.txt	/*tabpagebuflist()*
tabpagenr()	eval.txt	/*tabpagenr()*
tabpagewinnr()	eval.txt	/*tabpagewinnr()*
tag	tagsrch.txt	/*tag*
tag-!	tagsrch.txt	/*tag-!*
tag-any-white	tagsrch.txt	/*tag-any-white*
tag-binary-search	tagsrch.txt	/*tag-binary-search*
tag-blocks	motion.txt	/*tag-blocks*
tag-commands	tagsrch.txt	/*tag-commands*
tag-details	tagsrch.txt	/*tag-details*
tag-highlight	syntax.txt	/*tag-highlight*
tag-matchlist	tagsrch.txt	/*tag-matchlist*
tag-old-static	tagsrch.txt	/*tag-old-static*
tag-overloaded	version5.txt	/*tag-overloaded*
tag-preview	tagsrch.txt	/*tag-preview*
tag-priority	tagsrch.txt	/*tag-priority*
tag-regexp	tagsrch.txt	/*tag-regexp*
tag-search	tagsrch.txt	/*tag-search*
tag-security	tagsrch.txt	/*tag-security*
tag-skip-file	tagsrch.txt	/*tag-skip-file*
tag-stack	tagsrch.txt	/*tag-stack*
tagfiles()	eval.txt	/*tagfiles()*
taglist()	eval.txt	/*taglist()*
tags	tagsrch.txt	/*tags*
tags-and-searches	tagsrch.txt	/*tags-and-searches*
tags-file-changed	version5.txt	/*tags-file-changed*
tags-file-format	tagsrch.txt	/*tags-file-format*
tags-option	tagsrch.txt	/*tags-option*
tagsrch.txt	tagsrch.txt	/*tagsrch.txt*
tagstack	tagsrch.txt	/*tagstack*
tan()	eval.txt	/*tan()*
tanh()	eval.txt	/*tanh()*
tar	pi_tar.txt	/*tar*
tar-contents	pi_tar.txt	/*tar-contents*
tar-copyright	pi_tar.txt	/*tar-copyright*
tar-history	pi_tar.txt	/*tar-history*
tar-manual	pi_tar.txt	/*tar-manual*
tar-options	pi_tar.txt	/*tar-options*
tar-usage	pi_tar.txt	/*tar-usage*
tcl	if_tcl.txt	/*tcl*
tcl-beep	if_tcl.txt	/*tcl-beep*
tcl-buffer	if_tcl.txt	/*tcl-buffer*
tcl-buffer-append	if_tcl.txt	/*tcl-buffer-append*
tcl-buffer-cmds	if_tcl.txt	/*tcl-buffer-cmds*
tcl-buffer-command	if_tcl.txt	/*tcl-buffer-command*
tcl-buffer-count	if_tcl.txt	/*tcl-buffer-count*
tcl-buffer-delcmd	if_tcl.txt	/*tcl-buffer-delcmd*
tcl-buffer-delete	if_tcl.txt	/*tcl-buffer-delete*
tcl-buffer-expr	if_tcl.txt	/*tcl-buffer-expr*
tcl-buffer-get	if_tcl.txt	/*tcl-buffer-get*
tcl-buffer-insert	if_tcl.txt	/*tcl-buffer-insert*
tcl-buffer-last	if_tcl.txt	/*tcl-buffer-last*
tcl-buffer-mark	if_tcl.txt	/*tcl-buffer-mark*
tcl-buffer-option	if_tcl.txt	/*tcl-buffer-option*
tcl-buffer-set	if_tcl.txt	/*tcl-buffer-set*
tcl-buffer-windows	if_tcl.txt	/*tcl-buffer-windows*
tcl-bugs	if_tcl.txt	/*tcl-bugs*
tcl-command	if_tcl.txt	/*tcl-command*
tcl-commands	if_tcl.txt	/*tcl-commands*
tcl-dynamic	if_tcl.txt	/*tcl-dynamic*
tcl-ex-commands	if_tcl.txt	/*tcl-ex-commands*
tcl-examples	if_tcl.txt	/*tcl-examples*
tcl-expr	if_tcl.txt	/*tcl-expr*
tcl-linenumbers	if_tcl.txt	/*tcl-linenumbers*
tcl-misc	if_tcl.txt	/*tcl-misc*
tcl-option	if_tcl.txt	/*tcl-option*
tcl-output	if_tcl.txt	/*tcl-output*
tcl-var-current	if_tcl.txt	/*tcl-var-current*
tcl-var-lbase	if_tcl.txt	/*tcl-var-lbase*
tcl-var-line	if_tcl.txt	/*tcl-var-line*
tcl-var-lnum	if_tcl.txt	/*tcl-var-lnum*
tcl-var-range	if_tcl.txt	/*tcl-var-range*
tcl-variables	if_tcl.txt	/*tcl-variables*
tcl-window	if_tcl.txt	/*tcl-window*
tcl-window-buffer	if_tcl.txt	/*tcl-window-buffer*
tcl-window-cmds	if_tcl.txt	/*tcl-window-cmds*
tcl-window-command	if_tcl.txt	/*tcl-window-command*
tcl-window-cursor	if_tcl.txt	/*tcl-window-cursor*
tcl-window-delcmd	if_tcl.txt	/*tcl-window-delcmd*
tcl-window-expr	if_tcl.txt	/*tcl-window-expr*
tcl-window-height	if_tcl.txt	/*tcl-window-height*
tcl-window-option	if_tcl.txt	/*tcl-window-option*
tcsh-style	cmdline.txt	/*tcsh-style*
tcsh.vim	syntax.txt	/*tcsh.vim*
tear-off-menus	gui.txt	/*tear-off-menus*
telnet-CTRL-]	tagsrch.txt	/*telnet-CTRL-]*
temp-file-name	eval.txt	/*temp-file-name*
tempfile	change.txt	/*tempfile*
template	autocmd.txt	/*template*
tempname()	eval.txt	/*tempname()*
term++close	terminal.txt	/*term++close*
term++open	terminal.txt	/*term++open*
term-dependent-settings	term.txt	/*term-dependent-settings*
term-list	syntax.txt	/*term-list*
term.txt	term.txt	/*term.txt*
term_dumpdiff()	eval.txt	/*term_dumpdiff()*
term_dumpload()	eval.txt	/*term_dumpload()*
term_dumpwrite()	eval.txt	/*term_dumpwrite()*
term_getaltscreen()	eval.txt	/*term_getaltscreen()*
term_getansicolors()	eval.txt	/*term_getansicolors()*
term_getattr()	eval.txt	/*term_getattr()*
term_getcursor()	eval.txt	/*term_getcursor()*
term_getjob()	eval.txt	/*term_getjob()*
term_getline()	eval.txt	/*term_getline()*
term_getscrolled()	eval.txt	/*term_getscrolled()*
term_getsize()	eval.txt	/*term_getsize()*
term_getstatus()	eval.txt	/*term_getstatus()*
term_gettitle()	eval.txt	/*term_gettitle()*
term_gettty()	eval.txt	/*term_gettty()*
term_list()	eval.txt	/*term_list()*
term_scrape()	eval.txt	/*term_scrape()*
term_sendkeys()	eval.txt	/*term_sendkeys()*
term_setansicolors()	eval.txt	/*term_setansicolors()*
term_setkill()	eval.txt	/*term_setkill()*
term_setrestore()	eval.txt	/*term_setrestore()*
term_setsize()	eval.txt	/*term_setsize()*
term_start()	eval.txt	/*term_start()*
term_wait()	eval.txt	/*term_wait()*
termcap	term.txt	/*termcap*
termcap-changed	version4.txt	/*termcap-changed*
termcap-colors	term.txt	/*termcap-colors*
termcap-cursor-color	term.txt	/*termcap-cursor-color*
termcap-cursor-shape	term.txt	/*termcap-cursor-shape*
termcap-options	term.txt	/*termcap-options*
termcap-title	term.txt	/*termcap-title*
termdebug-commands	terminal.txt	/*termdebug-commands*
termdebug-communication	terminal.txt	/*termdebug-communication*
termdebug-customizing	terminal.txt	/*termdebug-customizing*
termdebug-example	terminal.txt	/*termdebug-example*
termdebug-starting	terminal.txt	/*termdebug-starting*
termdebug-stepping	terminal.txt	/*termdebug-stepping*
termdebug-variables	terminal.txt	/*termdebug-variables*
termdebug_popup	terminal.txt	/*termdebug_popup*
termdebug_wide	terminal.txt	/*termdebug_wide*
terminal	terminal.txt	/*terminal*
terminal-api	terminal.txt	/*terminal-api*
terminal-client-server	terminal.txt	/*terminal-client-server*
terminal-colors	os_unix.txt	/*terminal-colors*
terminal-communication	terminal.txt	/*terminal-communication*
terminal-cursor-style	terminal.txt	/*terminal-cursor-style*
terminal-debug	terminal.txt	/*terminal-debug*
terminal-diff	terminal.txt	/*terminal-diff*
terminal-diffscreendump	terminal.txt	/*terminal-diffscreendump*
terminal-dumptest	terminal.txt	/*terminal-dumptest*
terminal-functions	usr_41.txt	/*terminal-functions*
terminal-info	term.txt	/*terminal-info*
terminal-key-codes	term.txt	/*terminal-key-codes*
terminal-ms-windows	terminal.txt	/*terminal-ms-windows*
terminal-options	term.txt	/*terminal-options*
terminal-output-codes	term.txt	/*terminal-output-codes*
terminal-resizing	terminal.txt	/*terminal-resizing*
terminal-screendump	terminal.txt	/*terminal-screendump*
terminal-session	terminal.txt	/*terminal-session*
terminal-size-color	terminal.txt	/*terminal-size-color*
terminal-special-keys	terminal.txt	/*terminal-special-keys*
terminal-testing	terminal.txt	/*terminal-testing*
terminal-to-job	terminal.txt	/*terminal-to-job*
terminal-typing	terminal.txt	/*terminal-typing*
terminal-unix	terminal.txt	/*terminal-unix*
terminal-use	terminal.txt	/*terminal-use*
terminal.txt	terminal.txt	/*terminal.txt*
terminfo	term.txt	/*terminfo*
termresponse-variable	eval.txt	/*termresponse-variable*
test-functions	usr_41.txt	/*test-functions*
test_alloc_fail()	eval.txt	/*test_alloc_fail()*
test_autochdir()	eval.txt	/*test_autochdir()*
test_feedinput()	eval.txt	/*test_feedinput()*
test_garbagecollect_now()	eval.txt	/*test_garbagecollect_now()*
test_ignore_error()	eval.txt	/*test_ignore_error()*
test_null_channel()	eval.txt	/*test_null_channel()*
test_null_dict()	eval.txt	/*test_null_dict()*
test_null_job()	eval.txt	/*test_null_job()*
test_null_list()	eval.txt	/*test_null_list()*
test_null_partial()	eval.txt	/*test_null_partial()*
test_null_string()	eval.txt	/*test_null_string()*
test_override()	eval.txt	/*test_override()*
test_settime()	eval.txt	/*test_settime()*
testing	eval.txt	/*testing*
testing-variable	eval.txt	/*testing-variable*
tex-cchar	syntax.txt	/*tex-cchar*
tex-cole	syntax.txt	/*tex-cole*
tex-conceal	syntax.txt	/*tex-conceal*
tex-error	syntax.txt	/*tex-error*
tex-folding	syntax.txt	/*tex-folding*
tex-math	syntax.txt	/*tex-math*
tex-morecommands	syntax.txt	/*tex-morecommands*
tex-nospell	syntax.txt	/*tex-nospell*
tex-package	syntax.txt	/*tex-package*
tex-runon	syntax.txt	/*tex-runon*
tex-slow	syntax.txt	/*tex-slow*
tex-stopzone	syntax.txt	/*tex-stopzone*
tex-style	syntax.txt	/*tex-style*
tex-supersub	syntax.txt	/*tex-supersub*
tex-sync	syntax.txt	/*tex-sync*
tex-verb	syntax.txt	/*tex-verb*
tex.vim	syntax.txt	/*tex.vim*
text-functions	usr_41.txt	/*text-functions*
text-objects	motion.txt	/*text-objects*
text-objects-changed	version5.txt	/*text-objects-changed*
textlock	eval.txt	/*textlock*
tf.vim	syntax.txt	/*tf.vim*
this_session-variable	eval.txt	/*this_session-variable*
throw-catch	eval.txt	/*throw-catch*
throw-expression	eval.txt	/*throw-expression*
throw-from-catch	eval.txt	/*throw-from-catch*
throw-variables	eval.txt	/*throw-variables*
throwpoint-variable	eval.txt	/*throwpoint-variable*
time-functions	usr_41.txt	/*time-functions*
timer	eval.txt	/*timer*
timer-functions	usr_41.txt	/*timer-functions*
timer_info()	eval.txt	/*timer_info()*
timer_pause()	eval.txt	/*timer_pause()*
timer_start()	eval.txt	/*timer_start()*
timer_stop()	eval.txt	/*timer_stop()*
timer_stopall()	eval.txt	/*timer_stopall()*
timers	eval.txt	/*timers*
timestamp	editing.txt	/*timestamp*
timestamps	editing.txt	/*timestamps*
tips	tips.txt	/*tips*
tips.txt	tips.txt	/*tips.txt*
todo	todo.txt	/*todo*
todo.txt	todo.txt	/*todo.txt*
toggle	options.txt	/*toggle*
toggle-revins	version4.txt	/*toggle-revins*
tolower()	eval.txt	/*tolower()*
toolbar-icon	gui.txt	/*toolbar-icon*
toupper()	eval.txt	/*toupper()*
tr()	eval.txt	/*tr()*
trim()	eval.txt	/*trim()*
trojan-horse	starting.txt	/*trojan-horse*
true-variable	eval.txt	/*true-variable*
trunc()	eval.txt	/*trunc()*
try-conditionals	eval.txt	/*try-conditionals*
try-echoerr	eval.txt	/*try-echoerr*
try-finally	eval.txt	/*try-finally*
try-nested	eval.txt	/*try-nested*
try-nesting	eval.txt	/*try-nesting*
tutor	usr_01.txt	/*tutor*
twice	if_cscop.txt	/*twice*
two-engines	pattern.txt	/*two-engines*
type()	eval.txt	/*type()*
type-mistakes	tips.txt	/*type-mistakes*
typecorr-settings	usr_41.txt	/*typecorr-settings*
typecorr.txt	usr_41.txt	/*typecorr.txt*
u	undo.txt	/*u*
uganda	uganda.txt	/*uganda*
uganda.txt	uganda.txt	/*uganda.txt*
undercurl	syntax.txt	/*undercurl*
underline	syntax.txt	/*underline*
undo	undo.txt	/*undo*
undo-blocks	undo.txt	/*undo-blocks*
undo-branches	undo.txt	/*undo-branches*
undo-commands	undo.txt	/*undo-commands*
undo-persistence	undo.txt	/*undo-persistence*
undo-redo	undo.txt	/*undo-redo*
undo-remarks	undo.txt	/*undo-remarks*
undo-tree	undo.txt	/*undo-tree*
undo-two-ways	undo.txt	/*undo-two-ways*
undo.txt	undo.txt	/*undo.txt*
undo_ftplugin	usr_41.txt	/*undo_ftplugin*
undo_indent	usr_41.txt	/*undo_indent*
undofile()	eval.txt	/*undofile()*
undotree()	eval.txt	/*undotree()*
unicode	mbyte.txt	/*unicode*
uniq()	eval.txt	/*uniq()*
unix	os_unix.txt	/*unix*
unlisted-buffer	windows.txt	/*unlisted-buffer*
up-down-motions	motion.txt	/*up-down-motions*
uppercase	change.txt	/*uppercase*
urxvt-mouse	options.txt	/*urxvt-mouse*
use-cpo-save	usr_41.txt	/*use-cpo-save*
use-visual-cmds	version4.txt	/*use-visual-cmds*
useful-mappings	tips.txt	/*useful-mappings*
usenet	intro.txt	/*usenet*
user-cmd-ambiguous	map.txt	/*user-cmd-ambiguous*
user-commands	map.txt	/*user-commands*
user-functions	eval.txt	/*user-functions*
user-manual	usr_toc.txt	/*user-manual*
using-<Plug>	usr_41.txt	/*using-<Plug>*
using-menus	gui.txt	/*using-menus*
using-scripts	repeat.txt	/*using-scripts*
using-xxd	tips.txt	/*using-xxd*
using_CTRL-V	map.txt	/*using_CTRL-V*
usr_01.txt	usr_01.txt	/*usr_01.txt*
usr_02.txt	usr_02.txt	/*usr_02.txt*
usr_03.txt	usr_03.txt	/*usr_03.txt*
usr_04.txt	usr_04.txt	/*usr_04.txt*
usr_05.txt	usr_05.txt	/*usr_05.txt*
usr_06.txt	usr_06.txt	/*usr_06.txt*
usr_07.txt	usr_07.txt	/*usr_07.txt*
usr_08.txt	usr_08.txt	/*usr_08.txt*
usr_09.txt	usr_09.txt	/*usr_09.txt*
usr_10.txt	usr_10.txt	/*usr_10.txt*
usr_11.txt	usr_11.txt	/*usr_11.txt*
usr_12.txt	usr_12.txt	/*usr_12.txt*
usr_20.txt	usr_20.txt	/*usr_20.txt*
usr_21.txt	usr_21.txt	/*usr_21.txt*
usr_22.txt	usr_22.txt	/*usr_22.txt*
usr_23.txt	usr_23.txt	/*usr_23.txt*
usr_24.txt	usr_24.txt	/*usr_24.txt*
usr_25.txt	usr_25.txt	/*usr_25.txt*
usr_26.txt	usr_26.txt	/*usr_26.txt*
usr_27.txt	usr_27.txt	/*usr_27.txt*
usr_28.txt	usr_28.txt	/*usr_28.txt*
usr_29.txt	usr_29.txt	/*usr_29.txt*
usr_30.txt	usr_30.txt	/*usr_30.txt*
usr_31.txt	usr_31.txt	/*usr_31.txt*
usr_32.txt	usr_32.txt	/*usr_32.txt*
usr_40.txt	usr_40.txt	/*usr_40.txt*
usr_41.txt	usr_41.txt	/*usr_41.txt*
usr_42.txt	usr_42.txt	/*usr_42.txt*
usr_43.txt	usr_43.txt	/*usr_43.txt*
usr_44.txt	usr_44.txt	/*usr_44.txt*
usr_45.txt	usr_45.txt	/*usr_45.txt*
usr_90.txt	usr_90.txt	/*usr_90.txt*
usr_toc.txt	usr_toc.txt	/*usr_toc.txt*
utf-8	mbyte.txt	/*utf-8*
utf-8-char-arg	mbyte.txt	/*utf-8-char-arg*
utf-8-in-xwindows	mbyte.txt	/*utf-8-in-xwindows*
utf-8-typing	mbyte.txt	/*utf-8-typing*
utf8	mbyte.txt	/*utf8*
v	visual.txt	/*v*
v:	eval.txt	/*v:*
v:beval_bufnr	eval.txt	/*v:beval_bufnr*
v:beval_col	eval.txt	/*v:beval_col*
v:beval_lnum	eval.txt	/*v:beval_lnum*
v:beval_text	eval.txt	/*v:beval_text*
v:beval_winid	eval.txt	/*v:beval_winid*
v:beval_winnr	eval.txt	/*v:beval_winnr*
v:char	eval.txt	/*v:char*
v:charconvert_from	eval.txt	/*v:charconvert_from*
v:charconvert_to	eval.txt	/*v:charconvert_to*
v:cmdarg	eval.txt	/*v:cmdarg*
v:cmdbang	eval.txt	/*v:cmdbang*
v:completed_item	eval.txt	/*v:completed_item*
v:count	eval.txt	/*v:count*
v:count1	eval.txt	/*v:count1*
v:ctype	eval.txt	/*v:ctype*
v:dying	eval.txt	/*v:dying*
v:errmsg	eval.txt	/*v:errmsg*
v:errors	eval.txt	/*v:errors*
v:event	eval.txt	/*v:event*
v:exception	eval.txt	/*v:exception*
v:false	eval.txt	/*v:false*
v:fcs_choice	eval.txt	/*v:fcs_choice*
v:fcs_reason	eval.txt	/*v:fcs_reason*
v:fname_diff	eval.txt	/*v:fname_diff*
v:fname_in	eval.txt	/*v:fname_in*
v:fname_new	eval.txt	/*v:fname_new*
v:fname_out	eval.txt	/*v:fname_out*
v:folddashes	eval.txt	/*v:folddashes*
v:foldend	eval.txt	/*v:foldend*
v:foldlevel	eval.txt	/*v:foldlevel*
v:foldstart	eval.txt	/*v:foldstart*
v:hlsearch	eval.txt	/*v:hlsearch*
v:insertmode	eval.txt	/*v:insertmode*
v:key	eval.txt	/*v:key*
v:lang	eval.txt	/*v:lang*
v:lc_time	eval.txt	/*v:lc_time*
v:lnum	eval.txt	/*v:lnum*
v:mouse_col	eval.txt	/*v:mouse_col*
v:mouse_lnum	eval.txt	/*v:mouse_lnum*
v:mouse_win	eval.txt	/*v:mouse_win*
v:mouse_winid	eval.txt	/*v:mouse_winid*
v:none	eval.txt	/*v:none*
v:null	eval.txt	/*v:null*
v:oldfiles	eval.txt	/*v:oldfiles*
v:operator	eval.txt	/*v:operator*
v:option_new	eval.txt	/*v:option_new*
v:option_old	eval.txt	/*v:option_old*
v:option_type	eval.txt	/*v:option_type*
v:prevcount	eval.txt	/*v:prevcount*
v:profiling	eval.txt	/*v:profiling*
v:progname	eval.txt	/*v:progname*
v:progpath	eval.txt	/*v:progpath*
v:register	eval.txt	/*v:register*
v:scrollstart	eval.txt	/*v:scrollstart*
v:searchforward	eval.txt	/*v:searchforward*
v:servername	eval.txt	/*v:servername*
v:shell_error	eval.txt	/*v:shell_error*
v:statusmsg	eval.txt	/*v:statusmsg*
v:swapchoice	eval.txt	/*v:swapchoice*
v:swapcommand	eval.txt	/*v:swapcommand*
v:swapname	eval.txt	/*v:swapname*
v:t_TYPE	eval.txt	/*v:t_TYPE*
v:t_bool	eval.txt	/*v:t_bool*
v:t_channel	eval.txt	/*v:t_channel*
v:t_dict	eval.txt	/*v:t_dict*
v:t_float	eval.txt	/*v:t_float*
v:t_func	eval.txt	/*v:t_func*
v:t_job	eval.txt	/*v:t_job*
v:t_list	eval.txt	/*v:t_list*
v:t_none	eval.txt	/*v:t_none*
v:t_number	eval.txt	/*v:t_number*
v:t_string	eval.txt	/*v:t_string*
v:termblinkresp	eval.txt	/*v:termblinkresp*
v:termrbgresp	eval.txt	/*v:termrbgresp*
v:termresponse	eval.txt	/*v:termresponse*
v:termrfgresp	eval.txt	/*v:termrfgresp*
v:termstyleresp	eval.txt	/*v:termstyleresp*
v:termu7resp	eval.txt	/*v:termu7resp*
v:testing	eval.txt	/*v:testing*
v:this_session	eval.txt	/*v:this_session*
v:throwpoint	eval.txt	/*v:throwpoint*
v:true	eval.txt	/*v:true*
v:val	eval.txt	/*v:val*
v:var	eval.txt	/*v:var*
v:version	eval.txt	/*v:version*
v:vim_did_enter	eval.txt	/*v:vim_did_enter*
v:warningmsg	eval.txt	/*v:warningmsg*
v:windowid	eval.txt	/*v:windowid*
v_!	change.txt	/*v_!*
v_$	visual.txt	/*v_$*
v_:	cmdline.txt	/*v_:*
v_<	change.txt	/*v_<*
v_<BS>	change.txt	/*v_<BS>*
v_<Del>	change.txt	/*v_<Del>*
v_<Esc>	visual.txt	/*v_<Esc>*
v_=	change.txt	/*v_=*
v_>	change.txt	/*v_>*
v_C	change.txt	/*v_C*
v_CTRL-A	change.txt	/*v_CTRL-A*
v_CTRL-C	visual.txt	/*v_CTRL-C*
v_CTRL-G	visual.txt	/*v_CTRL-G*
v_CTRL-H	change.txt	/*v_CTRL-H*
v_CTRL-O	visual.txt	/*v_CTRL-O*
v_CTRL-V	visual.txt	/*v_CTRL-V*
v_CTRL-X	change.txt	/*v_CTRL-X*
v_CTRL-Z	starting.txt	/*v_CTRL-Z*
v_CTRL-\_CTRL-G	intro.txt	/*v_CTRL-\\_CTRL-G*
v_CTRL-\_CTRL-N	intro.txt	/*v_CTRL-\\_CTRL-N*
v_CTRL-]	tagsrch.txt	/*v_CTRL-]*
v_D	change.txt	/*v_D*
v_J	change.txt	/*v_J*
v_K	various.txt	/*v_K*
v_O	visual.txt	/*v_O*
v_P	change.txt	/*v_P*
v_R	change.txt	/*v_R*
v_S	change.txt	/*v_S*
v_U	change.txt	/*v_U*
v_V	visual.txt	/*v_V*
v_X	change.txt	/*v_X*
v_Y	change.txt	/*v_Y*
v_a	motion.txt	/*v_a*
v_a'	motion.txt	/*v_a'*
v_a(	motion.txt	/*v_a(*
v_a)	motion.txt	/*v_a)*
v_a<	motion.txt	/*v_a<*
v_a>	motion.txt	/*v_a>*
v_aB	motion.txt	/*v_aB*
v_aW	motion.txt	/*v_aW*
v_a[	motion.txt	/*v_a[*
v_a]	motion.txt	/*v_a]*
v_a`	motion.txt	/*v_a`*
v_ab	motion.txt	/*v_ab*
v_ap	motion.txt	/*v_ap*
v_aquote	motion.txt	/*v_aquote*
v_as	motion.txt	/*v_as*
v_at	motion.txt	/*v_at*
v_aw	motion.txt	/*v_aw*
v_a{	motion.txt	/*v_a{*
v_a}	motion.txt	/*v_a}*
v_b_<	visual.txt	/*v_b_<*
v_b_<_example	visual.txt	/*v_b_<_example*
v_b_>	visual.txt	/*v_b_>*
v_b_>_example	visual.txt	/*v_b_>_example*
v_b_A	visual.txt	/*v_b_A*
v_b_A_example	visual.txt	/*v_b_A_example*
v_b_C	visual.txt	/*v_b_C*
v_b_D	change.txt	/*v_b_D*
v_b_I	visual.txt	/*v_b_I*
v_b_I_example	visual.txt	/*v_b_I_example*
v_b_c	visual.txt	/*v_b_c*
v_b_r	visual.txt	/*v_b_r*
v_b_r_example	visual.txt	/*v_b_r_example*
v_c	change.txt	/*v_c*
v_d	change.txt	/*v_d*
v_g?	change.txt	/*v_g?*
v_gF	editing.txt	/*v_gF*
v_gJ	change.txt	/*v_gJ*
v_gN	visual.txt	/*v_gN*
v_gV	visual.txt	/*v_gV*
v_g]	tagsrch.txt	/*v_g]*
v_g_CTRL-A	change.txt	/*v_g_CTRL-A*
v_g_CTRL-G	editing.txt	/*v_g_CTRL-G*
v_g_CTRL-X	change.txt	/*v_g_CTRL-X*
v_g_CTRL-]	tagsrch.txt	/*v_g_CTRL-]*
v_gf	editing.txt	/*v_gf*
v_gn	visual.txt	/*v_gn*
v_gq	change.txt	/*v_gq*
v_gv	visual.txt	/*v_gv*
v_gw	change.txt	/*v_gw*
v_i	motion.txt	/*v_i*
v_i'	motion.txt	/*v_i'*
v_i(	motion.txt	/*v_i(*
v_i)	motion.txt	/*v_i)*
v_i<	motion.txt	/*v_i<*
v_i>	motion.txt	/*v_i>*
v_iB	motion.txt	/*v_iB*
v_iW	motion.txt	/*v_iW*
v_i[	motion.txt	/*v_i[*
v_i]	motion.txt	/*v_i]*
v_i`	motion.txt	/*v_i`*
v_ib	motion.txt	/*v_ib*
v_ip	motion.txt	/*v_ip*
v_iquote	motion.txt	/*v_iquote*
v_is	motion.txt	/*v_is*
v_it	motion.txt	/*v_it*
v_iw	motion.txt	/*v_iw*
v_i{	motion.txt	/*v_i{*
v_i}	motion.txt	/*v_i}*
v_o	visual.txt	/*v_o*
v_p	change.txt	/*v_p*
v_r	change.txt	/*v_r*
v_s	change.txt	/*v_s*
v_u	change.txt	/*v_u*
v_v	visual.txt	/*v_v*
v_x	change.txt	/*v_x*
v_y	change.txt	/*v_y*
v_~	change.txt	/*v_~*
vab	motion.txt	/*vab*
val-variable	eval.txt	/*val-variable*
valgrind	debug.txt	/*valgrind*
values()	eval.txt	/*values()*
var-functions	usr_41.txt	/*var-functions*
variables	eval.txt	/*variables*
various	various.txt	/*various*
various-cmds	various.txt	/*various-cmds*
various-functions	usr_41.txt	/*various-functions*
various-motions	motion.txt	/*various-motions*
various.txt	various.txt	/*various.txt*
vb.vim	syntax.txt	/*vb.vim*
vba	pi_vimball.txt	/*vba*
verbose	starting.txt	/*verbose*
version-5.1	version5.txt	/*version-5.1*
version-5.2	version5.txt	/*version-5.2*
version-5.3	version5.txt	/*version-5.3*
version-5.4	version5.txt	/*version-5.4*
version-5.5	version5.txt	/*version-5.5*
version-5.6	version5.txt	/*version-5.6*
version-5.7	version5.txt	/*version-5.7*
version-5.8	version5.txt	/*version-5.8*
version-6.1	version6.txt	/*version-6.1*
version-6.2	version6.txt	/*version-6.2*
version-6.3	version6.txt	/*version-6.3*
version-6.4	version6.txt	/*version-6.4*
version-7.0	version7.txt	/*version-7.0*
version-7.1	version7.txt	/*version-7.1*
version-7.2	version7.txt	/*version-7.2*
version-7.3	version7.txt	/*version-7.3*
version-7.4	version7.txt	/*version-7.4*
version-8.0	version8.txt	/*version-8.0*
version-variable	eval.txt	/*version-variable*
version4.txt	version4.txt	/*version4.txt*
version5.txt	version5.txt	/*version5.txt*
version6.txt	version6.txt	/*version6.txt*
version7.0	version7.txt	/*version7.0*
version7.1	version7.txt	/*version7.1*
version7.2	version7.txt	/*version7.2*
version7.3	version7.txt	/*version7.3*
version7.4	version7.txt	/*version7.4*
version7.txt	version7.txt	/*version7.txt*
version8.0	version8.txt	/*version8.0*
version8.txt	version8.txt	/*version8.txt*
vi	intro.txt	/*vi*
vi-differences	vi_diff.txt	/*vi-differences*
vi:	options.txt	/*vi:*
vi_diff.txt	vi_diff.txt	/*vi_diff.txt*
vib	motion.txt	/*vib*
view	starting.txt	/*view*
view-diffs	diff.txt	/*view-diffs*
view-file	starting.txt	/*view-file*
views-sessions	starting.txt	/*views-sessions*
vim-7.4	version7.txt	/*vim-7.4*
vim-8	version8.txt	/*vim-8*
vim-additions	vi_diff.txt	/*vim-additions*
vim-announce	intro.txt	/*vim-announce*
vim-arguments	starting.txt	/*vim-arguments*
vim-default-editor	gui_w32.txt	/*vim-default-editor*
vim-dev	intro.txt	/*vim-dev*
vim-mac	intro.txt	/*vim-mac*
vim-modes	intro.txt	/*vim-modes*
vim-modes-intro	intro.txt	/*vim-modes-intro*
vim-script-intro	usr_41.txt	/*vim-script-intro*
vim-use	intro.txt	/*vim-use*
vim-variable	eval.txt	/*vim-variable*
vim.vim	syntax.txt	/*vim.vim*
vim7	version7.txt	/*vim7*
vim8	version8.txt	/*vim8*
vim:	options.txt	/*vim:*
vim_announce	intro.txt	/*vim_announce*
vim_dev	intro.txt	/*vim_dev*
vim_did_enter-variable	eval.txt	/*vim_did_enter-variable*
vim_mac	intro.txt	/*vim_mac*
vim_starting	eval.txt	/*vim_starting*
vim_use	intro.txt	/*vim_use*
vimball	pi_vimball.txt	/*vimball*
vimball-contents	pi_vimball.txt	/*vimball-contents*
vimball-extract	pi_vimball.txt	/*vimball-extract*
vimball-history	pi_vimball.txt	/*vimball-history*
vimball-intro	pi_vimball.txt	/*vimball-intro*
vimball-manual	pi_vimball.txt	/*vimball-manual*
vimball-windows	pi_vimball.txt	/*vimball-windows*
vimdev	intro.txt	/*vimdev*
vimdiff	diff.txt	/*vimdiff*
vimfiles	options.txt	/*vimfiles*
viminfo	starting.txt	/*viminfo*
viminfo-!	options.txt	/*viminfo-!*
viminfo-%	options.txt	/*viminfo-%*
viminfo-'	options.txt	/*viminfo-'*
viminfo-/	options.txt	/*viminfo-\/*
viminfo-:	options.txt	/*viminfo-:*
viminfo-<	options.txt	/*viminfo-<*
viminfo-@	options.txt	/*viminfo-@*
viminfo-c	options.txt	/*viminfo-c*
viminfo-encoding	starting.txt	/*viminfo-encoding*
viminfo-errors	starting.txt	/*viminfo-errors*
viminfo-f	options.txt	/*viminfo-f*
viminfo-file	starting.txt	/*viminfo-file*
viminfo-file-marks	starting.txt	/*viminfo-file-marks*
viminfo-file-name	starting.txt	/*viminfo-file-name*
viminfo-h	options.txt	/*viminfo-h*
viminfo-n	options.txt	/*viminfo-n*
viminfo-quote	options.txt	/*viminfo-quote*
viminfo-r	options.txt	/*viminfo-r*
viminfo-read	starting.txt	/*viminfo-read*
viminfo-read-write	starting.txt	/*viminfo-read-write*
viminfo-s	options.txt	/*viminfo-s*
viminfo-timestamp	starting.txt	/*viminfo-timestamp*
viminfo-write	starting.txt	/*viminfo-write*
vimrc	starting.txt	/*vimrc*
vimrc-filetype	usr_05.txt	/*vimrc-filetype*
vimrc-intro	usr_05.txt	/*vimrc-intro*
vimrc-option-example	starting.txt	/*vimrc-option-example*
vimrc_example.vim	usr_05.txt	/*vimrc_example.vim*
vimtutor	usr_01.txt	/*vimtutor*
virtcol()	eval.txt	/*virtcol()*
visual-block	visual.txt	/*visual-block*
visual-change	visual.txt	/*visual-change*
visual-examples	visual.txt	/*visual-examples*
visual-index	index.txt	/*visual-index*
visual-mode	visual.txt	/*visual-mode*
visual-operators	visual.txt	/*visual-operators*
visual-repeat	visual.txt	/*visual-repeat*
visual-search	visual.txt	/*visual-search*
visual-start	visual.txt	/*visual-start*
visual-use	visual.txt	/*visual-use*
visual.txt	visual.txt	/*visual.txt*
visualmode()	eval.txt	/*visualmode()*
vms	os_vms.txt	/*vms*
vms-authors	os_vms.txt	/*vms-authors*
vms-changes	os_vms.txt	/*vms-changes*
vms-compiling	os_vms.txt	/*vms-compiling*
vms-deploy	os_vms.txt	/*vms-deploy*
vms-download	os_vms.txt	/*vms-download*
vms-gui	os_vms.txt	/*vms-gui*
vms-notes	os_vms.txt	/*vms-notes*
vms-problems	os_vms.txt	/*vms-problems*
vms-started	os_vms.txt	/*vms-started*
vms-usage	os_vms.txt	/*vms-usage*
vote-for-features	sponsor.txt	/*vote-for-features*
votes-counted	sponsor.txt	/*votes-counted*
votes-for-changes	todo.txt	/*votes-for-changes*
vreplace-mode	insert.txt	/*vreplace-mode*
vt100-cursor-keys	term.txt	/*vt100-cursor-keys*
vt100-function-keys	term.txt	/*vt100-function-keys*
w	motion.txt	/*w*
w32-clientserver	remote.txt	/*w32-clientserver*
w32-xpm-support	gui_w32.txt	/*w32-xpm-support*
w:	eval.txt	/*w:*
w:current_syntax	syntax.txt	/*w:current_syntax*
w:quickfix_title	quickfix.txt	/*w:quickfix_title*
w:var	eval.txt	/*w:var*
waittime	channel.txt	/*waittime*
warningmsg-variable	eval.txt	/*warningmsg-variable*
white-space	pattern.txt	/*white-space*
whitespace	pattern.txt	/*whitespace*
wildcard	editing.txt	/*wildcard*
wildcards	editing.txt	/*wildcards*
wildmenumode()	eval.txt	/*wildmenumode()*
win32	os_win32.txt	/*win32*
win32-!start	gui_w32.txt	/*win32-!start*
win32-PATH	os_win32.txt	/*win32-PATH*
win32-backslashes	os_win32.txt	/*win32-backslashes*
win32-cmdargs	os_win32.txt	/*win32-cmdargs*
win32-colors	gui_w32.txt	/*win32-colors*
win32-compiling	os_win32.txt	/*win32-compiling*
win32-curdir	os_win32.txt	/*win32-curdir*
win32-faq	os_win32.txt	/*win32-faq*
win32-gettext	mlang.txt	/*win32-gettext*
win32-gui	gui_w32.txt	/*win32-gui*
win32-hidden-menus	gui.txt	/*win32-hidden-menus*
win32-mouse	os_win32.txt	/*win32-mouse*
win32-open-with-menu	gui_w32.txt	/*win32-open-with-menu*
win32-popup-menu	gui_w32.txt	/*win32-popup-menu*
win32-problems	os_win32.txt	/*win32-problems*
win32-quotes	os_win32.txt	/*win32-quotes*
win32-restore	os_win32.txt	/*win32-restore*
win32-startup	os_win32.txt	/*win32-startup*
win32-term	os_win32.txt	/*win32-term*
win32-vimrun	gui_w32.txt	/*win32-vimrun*
win32-win3.1	os_win32.txt	/*win32-win3.1*
win32-win95	os_win32.txt	/*win32-win95*
win32s	os_win32.txt	/*win32s*
win_findbuf()	eval.txt	/*win_findbuf()*
win_getid()	eval.txt	/*win_getid()*
win_gotoid()	eval.txt	/*win_gotoid()*
win_id2tabwin()	eval.txt	/*win_id2tabwin()*
win_id2win()	eval.txt	/*win_id2win()*
win_screenpos()	eval.txt	/*win_screenpos()*
winbufnr()	eval.txt	/*winbufnr()*
wincol()	eval.txt	/*wincol()*
window	windows.txt	/*window*
window-ID	windows.txt	/*window-ID*
window-contents	intro.txt	/*window-contents*
window-exit	editing.txt	/*window-exit*
window-functions	usr_41.txt	/*window-functions*
window-move-cursor	windows.txt	/*window-move-cursor*
window-moving	windows.txt	/*window-moving*
window-resize	windows.txt	/*window-resize*
window-size	term.txt	/*window-size*
window-size-functions	usr_41.txt	/*window-size-functions*
window-tag	windows.txt	/*window-tag*
window-toolbar	gui.txt	/*window-toolbar*
window-variable	eval.txt	/*window-variable*
windowid	windows.txt	/*windowid*
windowid-variable	eval.txt	/*windowid-variable*
windows	windows.txt	/*windows*
windows-3.1	os_win32.txt	/*windows-3.1*
windows-icon	os_win32.txt	/*windows-icon*
windows-intro	windows.txt	/*windows-intro*
windows-starting	windows.txt	/*windows-starting*
windows.txt	windows.txt	/*windows.txt*
windows95	os_win32.txt	/*windows95*
windows98	os_win32.txt	/*windows98*
windowsme	os_win32.txt	/*windowsme*
winheight()	eval.txt	/*winheight()*
winid	windows.txt	/*winid*
winline()	eval.txt	/*winline()*
winnr()	eval.txt	/*winnr()*
winrestcmd()	eval.txt	/*winrestcmd()*
winrestview()	eval.txt	/*winrestview()*
winsaveview()	eval.txt	/*winsaveview()*
winwidth()	eval.txt	/*winwidth()*
word	motion.txt	/*word*
word-count	editing.txt	/*word-count*
word-motions	motion.txt	/*word-motions*
wordcount()	eval.txt	/*wordcount()*
workbench	starting.txt	/*workbench*
workshop	workshop.txt	/*workshop*
workshop-commands	workshop.txt	/*workshop-commands*
workshop-compiling	workshop.txt	/*workshop-compiling*
workshop-configure	workshop.txt	/*workshop-configure*
workshop-intro	workshop.txt	/*workshop-intro*
workshop-support	workshop.txt	/*workshop-support*
workshop-xpm	workshop.txt	/*workshop-xpm*
workshop.txt	workshop.txt	/*workshop.txt*
wrap-off	intro.txt	/*wrap-off*
write-compiler-plugin	usr_41.txt	/*write-compiler-plugin*
write-device	editing.txt	/*write-device*
write-fail	editing.txt	/*write-fail*
write-filetype-plugin	usr_41.txt	/*write-filetype-plugin*
write-library-script	usr_41.txt	/*write-library-script*
write-local-help	usr_41.txt	/*write-local-help*
write-permissions	editing.txt	/*write-permissions*
write-plugin	usr_41.txt	/*write-plugin*
write-plugin-quickload	usr_41.txt	/*write-plugin-quickload*
write-quit	editing.txt	/*write-quit*
write-readonly	editing.txt	/*write-readonly*
writefile()	eval.txt	/*writefile()*
writing	editing.txt	/*writing*
www	intro.txt	/*www*
x	change.txt	/*x*
x-input-method	mbyte.txt	/*x-input-method*
x-resources	version5.txt	/*x-resources*
x11-clientserver	remote.txt	/*x11-clientserver*
x11-cut-buffer	gui_x11.txt	/*x11-cut-buffer*
x11-selection	gui_x11.txt	/*x11-selection*
xf86conf.vim	syntax.txt	/*xf86conf.vim*
xfontset	mbyte.txt	/*xfontset*
xfree-xterm	syntax.txt	/*xfree-xterm*
xim	mbyte.txt	/*xim*
xim-input-style	mbyte.txt	/*xim-input-style*
xiterm	syntax.txt	/*xiterm*
xml-folding	syntax.txt	/*xml-folding*
xml-omni-datafile	insert.txt	/*xml-omni-datafile*
xml.vim	syntax.txt	/*xml.vim*
xor()	eval.txt	/*xor()*
xpm.vim	syntax.txt	/*xpm.vim*
xterm-8-bit	term.txt	/*xterm-8-bit*
xterm-8bit	term.txt	/*xterm-8bit*
xterm-blink	syntax.txt	/*xterm-blink*
xterm-blinking-cursor	syntax.txt	/*xterm-blinking-cursor*
xterm-bracketed-paste	term.txt	/*xterm-bracketed-paste*
xterm-clipboard	term.txt	/*xterm-clipboard*
xterm-codes	term.txt	/*xterm-codes*
xterm-color	syntax.txt	/*xterm-color*
xterm-command-server	term.txt	/*xterm-command-server*
xterm-copy-paste	term.txt	/*xterm-copy-paste*
xterm-cursor-keys	term.txt	/*xterm-cursor-keys*
xterm-end-home-keys	term.txt	/*xterm-end-home-keys*
xterm-function-keys	term.txt	/*xterm-function-keys*
xterm-modifier-keys	term.txt	/*xterm-modifier-keys*
xterm-mouse	options.txt	/*xterm-mouse*
xterm-mouse-wheel	scroll.txt	/*xterm-mouse-wheel*
xterm-resize	term.txt	/*xterm-resize*
xterm-save-screen	tips.txt	/*xterm-save-screen*
xterm-screens	tips.txt	/*xterm-screens*
xterm-scroll-region	term.txt	/*xterm-scroll-region*
xterm-shifted-keys	term.txt	/*xterm-shifted-keys*
xterm-true-color	term.txt	/*xterm-true-color*
y	change.txt	/*y*
yaml.vim	syntax.txt	/*yaml.vim*
yank	change.txt	/*yank*
ye-option-gone	version4.txt	/*ye-option-gone*
year-2000	intro.txt	/*year-2000*
your-runtime-dir	usr_43.txt	/*your-runtime-dir*
yy	change.txt	/*yy*
z	index.txt	/*z*
z+	scroll.txt	/*z+*
z-	scroll.txt	/*z-*
z.	scroll.txt	/*z.*
z/OS	os_390.txt	/*z\/OS*
z<CR>	scroll.txt	/*z<CR>*
z<Left>	scroll.txt	/*z<Left>*
z<Right>	scroll.txt	/*z<Right>*
z=	spell.txt	/*z=*
zA	fold.txt	/*zA*
zC	fold.txt	/*zC*
zD	fold.txt	/*zD*
zE	fold.txt	/*zE*
zF	fold.txt	/*zF*
zG	spell.txt	/*zG*
zH	scroll.txt	/*zH*
zL	scroll.txt	/*zL*
zM	fold.txt	/*zM*
zN	fold.txt	/*zN*
zN<CR>	scroll.txt	/*zN<CR>*
zO	fold.txt	/*zO*
zOS	os_390.txt	/*zOS*
zOS-Bugs	os_390.txt	/*zOS-Bugs*
zOS-Motif	os_390.txt	/*zOS-Motif*
zOS-PuTTY	os_390.txt	/*zOS-PuTTY*
zOS-has-ebcdic	os_390.txt	/*zOS-has-ebcdic*
zOS-limitations	os_390.txt	/*zOS-limitations*
zOS-open-source	os_390.txt	/*zOS-open-source*
zR	fold.txt	/*zR*
zW	spell.txt	/*zW*
zX	fold.txt	/*zX*
z^	scroll.txt	/*z^*
za	fold.txt	/*za*
zb	scroll.txt	/*zb*
zc	fold.txt	/*zc*
zd	fold.txt	/*zd*
ze	scroll.txt	/*ze*
zf	fold.txt	/*zf*
zg	spell.txt	/*zg*
zh	scroll.txt	/*zh*
zi	fold.txt	/*zi*
zip	pi_zip.txt	/*zip*
zip-contents	pi_zip.txt	/*zip-contents*
zip-copyright	pi_zip.txt	/*zip-copyright*
zip-extension	pi_zip.txt	/*zip-extension*
zip-history	pi_zip.txt	/*zip-history*
zip-manual	pi_zip.txt	/*zip-manual*
zip-usage	pi_zip.txt	/*zip-usage*
zip-x	pi_zip.txt	/*zip-x*
zj	fold.txt	/*zj*
zk	fold.txt	/*zk*
zl	scroll.txt	/*zl*
zm	fold.txt	/*zm*
zn	fold.txt	/*zn*
zo	fold.txt	/*zo*
zr	fold.txt	/*zr*
zs	scroll.txt	/*zs*
zsh.vim	syntax.txt	/*zsh.vim*
zt	scroll.txt	/*zt*
zuG	spell.txt	/*zuG*
zuW	spell.txt	/*zuW*
zug	spell.txt	/*zug*
zuw	spell.txt	/*zuw*
zv	fold.txt	/*zv*
zw	spell.txt	/*zw*
zx	fold.txt	/*zx*
zz	scroll.txt	/*zz*
{	motion.txt	/*{*
{Visual}	intro.txt	/*{Visual}*
{address}	cmdline.txt	/*{address}*
{arglist}	editing.txt	/*{arglist}*
{char1-char2}	intro.txt	/*{char1-char2}*
{event}	autocmd.txt	/*{event}*
{file}	editing.txt	/*{file}*
{group-name}	syntax.txt	/*{group-name}*
{lhs}	map.txt	/*{lhs}*
{motion}	intro.txt	/*{motion}*
{move-around}	visual.txt	/*{move-around}*
{offset}	pattern.txt	/*{offset}*
{pat}	autocmd.txt	/*{pat}*
{rhs}	map.txt	/*{rhs}*
{subject}	helphelp.txt	/*{subject}*
{}	intro.txt	/*{}*
}	motion.txt	/*}*
~	change.txt	/*~*
PK�j�Z�m�O�.�.vim80/doc/os_dos.txtnu�[���*os_dos.txt*    For Vim version 8.0.  Last change: 2006 Mar 30


		  VIM REFERENCE MANUAL    by Bram Moolenaar


							*dos* *DOS*
This file documents the common particularities of the MS-DOS and Win32
versions of Vim.  Also see |os_win32.txt| and |os_msdos.txt|.

1. File locations		|dos-locations|
2. Using backslashes		|dos-backslash|
3. Standard mappings		|dos-standard-mappings|
4. Screen output and colors	|dos-colors|
5. File formats			|dos-file-formats|
6. :cd command			|dos-:cd|
7. Interrupting			|dos-CTRL-Break|
8. Temp files			|dos-temp-files|
9. Shell option default		|dos-shell|

==============================================================================
1. File locations					*dos-locations*

If you keep the Vim executable in the directory that contains the help and
syntax subdirectories, there is no need to do anything special for Vim to
work.  No registry entries or environment variables need to be set.  Just make
sure that the directory is in your search path, or use a shortcut on the
desktop.

Your vimrc files ("_vimrc" and "_gvimrc") are normally located one directory
up from the runtime files.  If you want to put them somewhere else, set the
environment variable $VIM to the directory where you keep them.  Example: >
	set VIM=C:\user\piet
Will find "c:\user\piet\_vimrc".
Note: This would only be needed when the computer is used by several people.
Otherwise it's simpler to keep your _vimrc file in the default place.

If you move the executable to another location, you also need to set the $VIM
environment variable.  The runtime files will be found in "$VIM/vim{version}".
Example: >
	set VIM=E:\vim
Will find the version 5.4 runtime files in "e:\vim\vim54".
Note: This is _not_ recommended.  The preferred way is to keep the executable
in the runtime directory.

If you move your executable AND want to put your "_vimrc" and "_gvimrc" files
somewhere else, you must set $VIM to where you vimrc files are, and set
$VIMRUNTIME to the runtime files.  Example: >
	set VIM=C:\usr\piet
	set VIMRUNTIME=E:\vim\vim54
Will find "c:\user\piet\_vimrc" and the runtime files in "e:\vim\vim54".

See |$VIM| and |$VIMRUNTIME| for more information.

Under Windows 95, you can set $VIM in your C:\autoexec.bat file.  For
example: >
  set VIM=D:\vim
Under Windows NT, you can set environment variables for each user separately
under "Start/Settings/Control Panel->System", or through the properties in the
menu of "My Computer", under the Environment Tab.

==============================================================================
2. Using backslashes					*dos-backslash*

Using backslashes in file names can be a problem.  Vi halves the number of
backslashes for some commands.  Vim is a bit more tolerant and does not remove
backslashes from a file name, so ":e c:\foo\bar" works as expected.  But when
a backslash occurs before a special character (space, comma, backslash, etc.),
Vim removes the backslash.  Use slashes to avoid problems: ":e c:/foo/bar"
works fine.  Vim replaces the slashes with backslashes internally to avoid
problems with some MS-DOS programs and Win32 programs.

When you prefer to use forward slashes, set the 'shellslash' option.  Vim will
then replace backslashes with forward slashes when expanding file names.  This
is especially useful when using a Unix-like 'shell'.

==============================================================================
3. Standard mappings				*dos-standard-mappings*

The mappings for CTRL-PageUp and CTRL-PageDown have been removed, they now
jump to the next or previous tab page |<C-PageUp>| |<C-PageDown>|

If you want them to move to the first and last screen line you can use these
mappings:

key		key code     Normal/Visual mode	    Insert mode ~
CTRL-PageUp	<M-N><M-C-D>	    H		    <C-O>H
CTRL-PageDown	<M-N>v		    L$		    <C-O>L<C-O>$

Additionally, these keys are available for copy/cut/paste.  In the Win32
and DJGPP versions, they also use the clipboard.

Shift-Insert	paste text (from clipboard)			*<S-Insert>*
CTRL-Insert	copy Visual text (to clipboard)			*<C-Insert>*
CTRL-Del	cut Visual text (to clipboard)			*<C-Del>*
Shift-Del	cut Visual text (to clipboard)			*<S-Del>*
CTRL-X		cut Visual text (to clipboard)

These mappings accomplish this (Win32 and DJGPP versions of Vim):

key		key code     Normal	Visual	    Insert ~
Shift-Insert	<M-N><M-T>   "*P	"-d"*P      <C-R><C-O>*
CTRL-Insert	<M-N><M-U>		"*y
Shift-Del	<M-N><M-W>		"*d
CTRL-Del	<M-N><M-X>		"*d
CTRL-X		<C-X>			"*d

Or these mappings (non-Win32 version of Vim):

key		key code     Normal	Visual	    Insert ~
Shift-Insert	<M-N><M-T>   P		"-dP	    <C-R><C-O>"
CTRL-Insert	<M-N><M-U>		y
Shift-Del	<M-N><M-W>		d
CTRL-Del	<M-N><M-X>		d

When the clipboard is supported, the "* register is used.

==============================================================================
4. Screen output and colors				*dos-colors*

The default output method for the screen is to use bios calls.  This works
right away on most systems.  You do not need ansi.sys.  You can use ":mode" to
set the current screen mode.  See |:mode|.

To change the screen colors that Vim uses, you can use the |:highlight|
command.  The Normal highlight group specifies the colors Vim uses for normal
text.  For example, to get grey text on a blue background: >
	:hi Normal ctermbg=Blue ctermfg=grey
See |highlight-groups| for other groups that are available.

A DOS console does not support attributes like bold and underlining.  You can
set the color used in five modes with nine terminal options.  Note that this
is not necessary since you can set the color directly with the ":highlight"
command; these options are for backward compatibility with older Vim versions.
The |'highlight'| option specifies which of the five modes is used for which
action. >

	:set t_mr=^V^[\|xxm		start of invert mode
	:set t_md=^V^[\|xxm		start of bold mode
	:set t_me=^V^[\|xxm		back to normal text

	:set t_so=^V^[\|xxm		start of standout mode
	:set t_se=^V^[\|xxm		back to normal text

	:set t_us=^V^[\|xxm		start of underline mode
	:set t_ue=^V^[\|xxm		back to normal text

	:set t_ZH=^V^[\|xxm		start of italics mode
	:set t_ZR=^V^[\|xxm		back to normal text

^V is CTRL-V
^[ is <Esc>
You must replace xx with a decimal code, which is the foreground color number
and background color number added together:

COLOR			FOREGROUND	BACKGROUND	~
Black			    0		    0
DarkBlue		    1		   16
DarkGreen		    2		   32
DarkCyan		    3		   48
DarkRed			    4		   64
DarkMagenta		    5		   80
Brown, DarkYellow	    6		   96
LightGray		    7		  112
DarkGray		    8		  128 *
Blue, LightBlue		    9		  144 *
Green, LightGreen	   10		  160 *
Cyan, LightCyan		   11		  176 *
Red, LightRed		   12		  192 *
Magenta, LightMagenta	   13		  208 *
Yellow, LightYellow	   14		  224 *
White			   15		  240 *

* Depending on the display mode, the color codes above 128 may not be
  available, and code 128 will make the text blink.

When you use 0, the color is reset to the one used when you started Vim
(usually 7, lightgray on black, but you can override this.  If you have
overridden the default colors in a command prompt, you may need to adjust
some of the highlight colors in your vimrc---see below).
This is the default for t_me.

The defaults for the various highlight modes are:
	t_mr	112	 reverse mode: Black text (0) on LightGray (112)
	t_md	 15	 bold mode: White text (15) on Black (0)
	t_me	  0	 normal mode (revert to default)

	t_so	 31	 standout mode: White (15) text on DarkBlue (16)
	t_se	  0	 standout mode end (revert to default)

	t_czh	225	 italic mode: DarkBlue text (1) on Yellow (224)
	t_czr	  0	 italic mode end (revert to default)

	t_us	 67	 underline mode: DarkCyan text (3) on DarkRed (64)
	t_ue	  0	 underline mode end (revert to default)

These colors were chosen because they also look good when using an inverted
display, but you can change them to your liking.

Example: >
  :set t_mr=^V^[\|97m	" start of invert mode: DarkBlue (1) on Brown (96)
  :set t_md=^V^[\|67m	" start of bold mode: DarkCyan (3) on DarkRed (64)
  :set t_me=^V^[\|112m	" back to normal mode: Black (0) on LightGray (112)

  :set t_so=^V^[\|37m	" start of standout mode: DarkMagenta (5) on DarkGreen
									(32)
  :set t_se=^V^[\|112m	" back to normal mode: Black (0) on LightGray (112)

==============================================================================
5. File formats						*dos-file-formats*

If the 'fileformat' option is set to "dos" (which is the default), Vim accepts
a single <NL> or a <CR><NL> pair for end-of-line (<EOL>).  When writing a
file, Vim uses <CR><NL>.  Thus, if you edit a file and write it, Vim replaces
<NL> with <CR><NL>.

If the 'fileformat' option is set to "unix", Vim uses a single <NL> for <EOL>
and shows <CR> as ^M.

You can use Vim to replace <NL> with <CR><NL> by reading in any mode and
writing in Dos mode (":se ff=dos").
You can use Vim to replace <CR><NL> with <NL> by reading in Dos mode and
writing in Unix mode (":se ff=unix").

Vim sets 'fileformat' automatically when 'fileformats' is not empty (which is
the default), so you don't really have to worry about what you are doing.
					|'fileformat'| |'fileformats'|

If you want to edit a script file or a binary file, you should set the
'binary' option before loading the file.  Script files and binary files may
contain single <NL> characters which Vim would replace with <CR><NL>.  You can
set 'binary' automatically by starting Vim with the "-b" (binary) option.

==============================================================================
6. :cd command						*dos-:cd*

The ":cd" command recognizes the drive specifier and changes the current
drive.  Use ":cd c:" to make drive C the active drive.  Use ":cd d:\foo" to go
to the directory "foo" in the root of drive D.  Vim also recognizes UNC names
if the system supports them; e.g., ":cd \\server\share\dir".  |:cd|

==============================================================================
7. Interrupting						*dos-CTRL-Break*

Use CTRL-Break instead of CTRL-C to interrupt searches.  Vim does not detect
the CTRL-C until it tries to read a key.

==============================================================================
8. Temp files						*dos-temp-files*

Only for the 16 bit and 32 bit DOS version:
Vim puts temporary files (for filtering) in the first of these directories
that exists and in which Vim can create a file:
	$TMP
	$TEMP
	C:\TMP
	C:\TEMP
	current directory

For the Win32 version (both console and GUI):
Vim uses standard Windows functions to obtain a temporary file name (for
filtering).  The first of these directories that exists and in which Vim can
create a file is used:
	$TMP
	$TEMP
	current directory

==============================================================================
9. Shell option default					*dos-shell*

The default for the 'sh' ('shell') option is "command.com" on Windows 95 and
"cmd.exe" on Windows NT.  If SHELL is defined, Vim uses SHELL instead, and if
SHELL is not defined but COMSPEC is, Vim uses COMSPEC.  Vim starts external
commands with "<shell> /c <command_name>".  Typing CTRL-Z starts a new command
subshell.  Return to Vim with "exit".	|'shell'| |CTRL-Z|

If you are running a third-party shell, you may need to set the
|'shellcmdflag'| ('shcf') and |'shellquote'| ('shq') or |'shellxquote'|
('sxq') options.  Unfortunately, this also depends on the version of Vim used.
For example, with the MKS Korn shell or with bash, the values of the options
should be:

		DOS 16 bit	    DOS 32 bit		Win32  ~
'shellcmdflag'	   -c			-c		 -c
'shellquote'	   "
'shellxquote'						 "

For Dos 16 bit this starts the shell as:
	<shell> -c "command name" >file
For Win32 as:
	<shell> -c "command name >file"
For DOS 32 bit, DJGPP does this internally somehow.

When starting up, Vim checks for the presence of "sh" anywhere in the 'shell'
option.  If it is present, Vim sets the 'shellcmdflag' and 'shellquote' or
'shellxquote' options will be set as described above.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z����K�Kvim80/doc/usr_08.txtnu�[���*usr_08.txt*	For Vim version 8.0.  Last change: 2017 Aug 11

		     VIM USER MANUAL - by Bram Moolenaar

			      Splitting windows


Display two different files above each other.  Or view two locations in the
file at the same time.  See the difference between two files by putting them
side by side.  All this is possible with split windows.

|08.1|	Split a window
|08.2|	Split a window on another file
|08.3|	Window size
|08.4|	Vertical splits
|08.5|	Moving windows
|08.6|	Commands for all windows
|08.7|	Viewing differences with vimdiff
|08.8|	Various
|08.9|	Tab pages

     Next chapter: |usr_09.txt|  Using the GUI
 Previous chapter: |usr_07.txt|  Editing more than one file
Table of contents: |usr_toc.txt|

==============================================================================
*08.1*	Split a window

The easiest way to open a new window is to use the following command: >

	:split

This command splits the screen into two windows and leaves the cursor in the
top one:

	+----------------------------------+
	|/* file one.c */		   |
	|~				   |
	|~				   |
	|one.c=============================|
	|/* file one.c */		   |
	|~				   |
	|one.c=============================|
	|				   |
	+----------------------------------+

What you see here is two windows on the same file.  The line with "====" is
the status line.  It displays information about the window above it.  (In
practice the status line will be in reverse video.)
   The two windows allow you to view two parts of the same file.  For example,
you could make the top window show the variable declarations of a program, and
the bottom one the code that uses these variables.

The CTRL-W w command can be used to jump between the windows.  If you are in
the top window, CTRL-W w jumps to the window below it.  If you are in the
bottom window it will jump to the first window.  (CTRL-W CTRL-W does the same
thing, in case you let go of the CTRL key a bit later.)


CLOSE THE WINDOW

To close a window, use the command: >

	:close

Actually, any command that quits editing a file works, like ":quit" and "ZZ".
But ":close" prevents you from accidentally exiting Vim when you close the
last window.


CLOSING ALL OTHER WINDOWS

If you have opened a whole bunch of windows, but now want to concentrate on
one of them, this command will be useful: >

	:only

This closes all windows, except for the current one.  If any of the other
windows has changes, you will get an error message and that window won't be
closed.

==============================================================================
*08.2*	Split a window on another file

The following command opens a second window and starts editing the given file:
>
	:split two.c

If you were editing one.c, then the result looks like this:

	+----------------------------------+
	|/* file two.c */		   |
	|~				   |
	|~				   |
	|two.c=============================|
	|/* file one.c */		   |
	|~				   |
	|one.c=============================|
	|				   |
	+----------------------------------+

To open a window on a new, empty file, use this: >

	:new

You can repeat the ":split" and ":new" commands to create as many windows as
you like.

==============================================================================
*08.3*	Window size

The ":split" command can take a number argument.  If specified, this will be
the height of the new window.  For example, the following opens a new window
three lines high and starts editing the file alpha.c: >

	:3split alpha.c

For existing windows you can change the size in several ways.  When you have a
working mouse, it is easy: Move the mouse pointer to the status line that
separates two windows, and drag it up or down.

To increase the size of a window: >

	CTRL-W +

To decrease it: >

	CTRL-W -

Both of these commands take a count and increase or decrease the window size
by that many lines.  Thus "4 CTRL-W +" make the window four lines higher.

To set the window height to a specified number of lines: >

	{height}CTRL-W _

That's: a number {height}, CTRL-W and then an underscore (the - key with Shift
on English-US keyboards).
   To make a window as high as it can be, use the CTRL-W _ command without a
count.


USING THE MOUSE

In Vim you can do many things very quickly from the keyboard.  Unfortunately,
the window resizing commands require quite a bit of typing.  In this case,
using the mouse is faster.  Position the mouse pointer on a status line.  Now
press the left mouse button and drag.  The status line will move, thus making
the window on one side higher and the other smaller.


OPTIONS

The 'winheight' option can be set to a minimal desired height of a window and
'winminheight' to a hard minimum height.
   Likewise, there is 'winwidth' for the minimal desired width and
'winminwidth' for the hard minimum width.
   The 'equalalways' option, when set, makes Vim equalize the windows sizes
when a window is closed or opened.

==============================================================================
*08.4*	Vertical splits

The ":split" command creates the new window above the current one.  To make
the window appear at the left side, use: >

	:vsplit

or: >
	:vsplit two.c

The result looks something like this:

	+--------------------------------------+
	|/* file two.c */   |/* file one.c */  |
	|~		    |~		       |
	|~		    |~		       |
	|~		    |~		       |
	|two.c===============one.c=============|
	|				       |
	+--------------------------------------+

Actually, the | lines in the middle will be in reverse video.  This is called
the vertical separator.  It separates the two windows left and right of it.

There is also the ":vnew" command, to open a vertically split window on a new,
empty file.  Another way to do this: >

	:vertical new

The ":vertical" command can be inserted before another command that splits a
window.  This will cause that command to split the window vertically instead
of horizontally.  (If the command doesn't split a window, it works
unmodified.)


MOVING BETWEEN WINDOWS

Since you can split windows horizontally and vertically as much as you like,
you can create almost any layout of windows.  Then you can use these commands
to move between them:

	CTRL-W h	move to the window on the left
	CTRL-W j	move to the window below
	CTRL-W k	move to the window above
	CTRL-W l	move to the window on the right

	CTRL-W t	move to the TOP window
	CTRL-W b	move to the BOTTOM window

You will notice the same letters as used for moving the cursor.  And the
cursor keys can also be used, if you like.
   More commands to move to other windows: |Q_wi|.

==============================================================================
*08.5*	Moving windows

You have split a few windows, but now they are in the wrong place.  Then you
need a command to move the window somewhere else.  For example, you have three
windows like this:

	+----------------------------------+
	|/* file two.c */		   |
	|~				   |
	|~				   |
	|two.c=============================|
	|/* file three.c */		   |
	|~				   |
	|~				   |
	|three.c===========================|
	|/* file one.c */		   |
	|~				   |
	|one.c=============================|
	|				   |
	+----------------------------------+

Clearly the last one should be at the top.  Go to that window (using CTRL-W w)
and the type this command: >

	CTRL-W K

This uses the uppercase letter K.  What happens is that the window is moved to
the very top.  You will notice that K is again used for moving upwards.
   When you have vertical splits, CTRL-W K will move the current window to the
top and make it occupy the full width of the Vim window.  If this is your
layout:

	+-------------------------------------------+
	|/* two.c */  |/* three.c */  |/* one.c */  |
	|~	      |~	      |~	    |
	|~	      |~	      |~	    |
	|~	      |~	      |~	    |
	|~	      |~	      |~	    |
	|~	      |~	      |~	    |
	|two.c=========three.c=========one.c========|
	|					    |
	+-------------------------------------------+

Then using CTRL-W K in the middle window (three.c) will result in:

	+-------------------------------------------+
	|/* three.c */				    |
	|~					    |
	|~					    |
	|three.c====================================|
	|/* two.c */	       |/* one.c */	    |
	|~		       |~		    |
	|two.c==================one.c===============|
	|					    |
	+-------------------------------------------+

The other three similar commands (you can probably guess these now):

	CTRL-W H	move window to the far left
	CTRL-W J	move window to the bottom
	CTRL-W L	move window to the far right

==============================================================================
*08.6*	Commands for all windows

When you have several windows open and you want to quit Vim, you can close
each window separately.  A quicker way is using this command: >

	:qall

This stands for "quit all".  If any of the windows contain changes, Vim will
not exit.  The cursor will automatically be positioned in a window with
changes.  You can then either use ":write" to save the changes, or ":quit!" to
throw them away.

If you know there are windows with changes, and you want to save all these
changes, use this command: >

	:wall

This stands for "write all".  But actually, it only writes files with
changes.  Vim knows it doesn't make sense to write files that were not
changed.
   And then there is the combination of ":qall" and ":wall": the "write and
quit all" command: >

	:wqall

This writes all modified files and quits Vim.
   Finally, there is a command that quits Vim and throws away all changes: >

	:qall!

Be careful, there is no way to undo this command!


OPENING A WINDOW FOR ALL ARGUMENTS

To make Vim open a window for each file, start it with the "-o" argument: >

	vim -o one.txt two.txt three.txt

This results in:

	+-------------------------------+
	|file one.txt			|
	|~				|
	|one.txt========================|
	|file two.txt			|
	|~				|
	|two.txt========================|
	|file three.txt			|
	|~				|
	|three.txt======================|
	|				|
	+-------------------------------+

The "-O" argument is used to get vertically split windows.
   When Vim is already running, the ":all" command opens a window for each
file in the argument list.  ":vertical all" does it with vertical splits.

==============================================================================
*08.7*	Viewing differences with vimdiff

There is a special way to start Vim, which shows the differences between two
files.  Let's take a file "main.c" and insert a few characters in one line.
Write this file with the 'backup' option set, so that the backup file
"main.c~" will contain the previous version of the file.
   Type this command in a shell (not in Vim): >

	vimdiff main.c~ main.c

Vim will start, with two windows side by side.  You will only see the line
in which you added characters, and a few lines above and below it.

	 VV		      VV
	+-----------------------------------------+
	|+ +--123 lines: /* a|+ +--123 lines: /* a|  <- fold
	|  text		     |	text		  |
	|  text		     |	text		  |
	|  text		     |	text		  |
	|  text		     |	changed text	  |  <- changed line
	|  text		     |	text		  |
	|  text		     |	------------------|  <- deleted line
	|  text		     |	text		  |
	|  text		     |	text		  |
	|  text		     |	text		  |
	|+ +--432 lines: text|+ +--432 lines: text|  <- fold
	|  ~		     |	~		  |
	|  ~		     |	~		  |
	|main.c~==============main.c==============|
	|					  |
	+-----------------------------------------+

(This picture doesn't show the highlighting, use the vimdiff command for a
better look.)

The lines that were not modified have been collapsed into one line.  This is
called a closed fold.  They are indicated in the picture with "<- fold".  Thus
the single fold line at the top stands for 123 text lines.  These lines are
equal in both files.
   The line marked with "<- changed line" is highlighted, and the inserted
text is displayed with another color.  This clearly shows what the difference
is between the two files.
   The line that was deleted is displayed with "---" in the main.c window.
See the "<- deleted line" marker in the picture.  These characters are not
really there.  They just fill up main.c, so that it displays the same number
of lines as the other window.


THE FOLD COLUMN

Each window has a column on the left with a slightly different background.  In
the picture above these are indicated with "VV".  You notice there is a plus
character there, in front of each closed fold.  Move the mouse pointer to that
plus and click the left button.  The fold will open, and you can see the text
that it contains.
   The fold column contains a minus sign for an open fold.  If you click on
this -, the fold will close.
   Obviously, this only works when you have a working mouse.  You can also use
"zo" to open a fold and "zc" to close it.


DIFFING IN VIM

Another way to start in diff mode can be done from inside Vim.  Edit the
"main.c" file, then make a split and show the differences: >

	:edit main.c
	:vertical diffsplit main.c~ 

The ":vertical" command is used to make the window split vertically.  If you
omit this, you will get a horizontal split.

If you have a patch or diff file, you can use the third way to start diff
mode.  First edit the file to which the patch applies.  Then tell Vim the name
of the patch file: >

	:edit main.c
	:vertical diffpatch main.c.diff

WARNING: The patch file must contain only one patch, for the file you are
editing.  Otherwise you will get a lot of error messages, and some files might
be patched unexpectedly.
   The patching will only be done to the copy of the file in Vim.  The file on
your harddisk will remain unmodified (until you decide to write the file).


SCROLL BINDING

When the files have more changes, you can scroll in the usual way.  Vim will
try to keep both the windows start at the same position, so you can easily see
the differences side by side.
   When you don't want this for a moment, use this command: >

	:set noscrollbind


JUMPING TO CHANGES

When you have disabled folding in some way, it may be difficult to find the
changes.  Use this command to jump forward to the next change: >

	]c

To go the other way use: >

	[c

Prepended a count to jump further away.


REMOVING CHANGES

You can move text from one window to the other.  This either removes
differences or adds new ones.  Vim doesn't keep the highlighting updated in
all situations.  To update it use this command: >

	:diffupdate

To remove a difference, you can move the text in a highlighted block from one
window to another.  Take the "main.c" and "main.c~" example above.  Move the
cursor to the left window, on the line that was deleted in the other window.
Now type this command: >

	dp

The change will be removed by putting the text of the current window in the
other window.  "dp" stands for "diff put".
   You can also do it the other way around.  Move the cursor to the right
window, to the line where "changed" was inserted.  Now type this command: >

	do

The change will now be removed by getting the text from the other window.
Since there are no changes left now, Vim puts all text in a closed fold.
"do" stands for "diff obtain".  "dg" would have been better, but that already
has a different meaning ("dgg" deletes from the cursor until the first line).

For details about diff mode, see |vimdiff|.

==============================================================================
*08.8*	Various

The 'laststatus' option can be used to specify when the last window has a
statusline:

	0	never
	1	only when there are split windows (the default)
	2	always

Many commands that edit another file have a variant that splits the window.
For Command-line commands this is done by prepending an "s".  For example:
":tag" jumps to a tag, ":stag" splits the window and jumps to a
tag.
   For Normal mode commands a CTRL-W is prepended.  CTRL-^ jumps to the
alternate file, CTRL-W CTRL-^ splits the window and edits the alternate file.

The 'splitbelow' option can be set to make a new window appear below the
current window.  The 'splitright' option can be set to make a vertically split
window appear right of the current window.

When splitting a window you can prepend a modifier command to tell where the
window is to appear:

	:leftabove {cmd}	left or above the current window
	:aboveleft {cmd}	idem
	:rightbelow {cmd}	right or below the current window
	:belowright {cmd}	idem
	:topleft {cmd}		at the top or left of the Vim window
	:botright {cmd}		at the bottom or right of the Vim window


==============================================================================
*08.9*	Tab pages

You will have noticed that windows never overlap.  That means you quickly run
out of screen space.  The solution for this is called Tab pages.

Assume you are editing "thisfile".  To create a new tab page use this command: >

	:tabedit thatfile

This will edit the file "thatfile" in a window that occupies the whole Vim
window.  And you will notice a bar at the top with the two file names:

	+----------------------------------+
	| thisfile | /thatfile/ __________X|    (thatfile is bold)
	|/* thatfile */			   |
	|that				   |
	|that				   |
	|~				   |
	|~				   |
	|~				   |
	|				   |
	+----------------------------------+

You now have two tab pages.  The first one has a window for "thisfile" and the
second one a window for "thatfile".  It's like two pages that are on top of
each other, with a tab sticking out of each page showing the file name.

Now use the mouse to click on "thisfile" in the top line.  The result is

	+----------------------------------+
	| /thisfile/ | thatfile __________X|    (thisfile is bold)
	|/* thisfile */			   |
	|this				   |
	|this				   |
	|~				   |
	|~				   |
	|~				   |
	|				   |
	+----------------------------------+

Thus you can switch between tab pages by clicking on the label in the top
line.  If you don't have a mouse or don't want to use it, you can use the "gt"
command.  Mnemonic: Goto Tab.

Now let's create another tab page with the command: >

	:tab split

This makes a new tab page with one window that is editing the same buffer as
the window we were in:

	+-------------------------------------+
	| thisfile | /thisfile/ | thatfile __X|   (thisfile is bold)
	|/* thisfile */			      |
	|this				      |
	|this				      |
	|~				      |
	|~				      |
	|~				      |
	|				      |
	+-------------------------------------+

You can put ":tab" before any Ex command that opens a window.  The window will
be opened in a new tab page.  Another example: >

	:tab help gt

Will show the help text for "gt" in a new tab page.

A few more things you can do with tab pages:

- click with the mouse in the space after the last label
	The next tab page will be selected, like with "gt".

- click with the mouse on the "X" in the top right corner
	The current tab page will be closed.  Unless there are unsaved
	changes in the current tab page.

- double click with the mouse in the top line
	A new tab page will be created.

- the "tabonly" command
	Closes all tab pages except the current one.  Unless there are unsaved
	changes in other tab pages.

For more information about tab pages see |tab-page|.

==============================================================================

Next chapter: |usr_09.txt|  Using the GUI

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��}#
#
vim80/doc/os_unix.txtnu�[���*os_unix.txt*   For Vim version 8.0.  Last change: 2005 Mar 29


		  VIM REFERENCE MANUAL    by Bram Moolenaar


							*unix* *Unix*
This file contains the particularities for the Unix version of Vim.

For compiling Vim on Unix see "INSTALL" and "Makefile" in the src directory.

The default help file name is "/usr/local/lib/vim/help.txt"
The files "$HOME/.vimrc" and "$HOME/.exrc" are used instead of "s:.vimrc" and
"s:.exrc".  Additionally "/usr/local/etc/vimrc" is used first.
If "/usr/local/share" exists it is used instead of "/usr/local/lib".

Temporary files (for filtering) are put in "/tmp".  If you want to place them
somewhere else, set the environment variable $TMPDIR to the directory you
prefer.

With wildcard expansion you can use '~' (home directory) and '$'
(environment variable).

							*fork* *spoon*
For executing external commands fork()/exec() is used when possible, otherwise
system() is used, which is a bit slower.  The output of ":version" includes
|+fork| when fork()/exec() is used, |+system()| when system() is used.  This
can be changed at compile time.
(For forking of the GUI version see |gui-fork|.)

Because terminal updating under Unix is often slow (e.g. serial line
terminal, shell window in suntools), the 'showcmd' and 'ruler' options
are default off.  If you have a fast terminal, try setting them on.  You might
also want to set 'ttyfast'.

When using Vim in an xterm the mouse clicks can be used by Vim by setting
'mouse' to "a".  If there is access to an X-server gui style copy/paste will
be used and visual feedback will be provided while dragging with the mouse.
If you then still want the xterm copy/paste with the mouse, press the shift
key when using the mouse.  See |mouse-using|.  Visual feedback while dragging
can also be achieved via the 'ttymouse' option if your xterm is new enough.

							*terminal-colors*
To use colors in Vim you can use the following example (if your terminal
supports colors, but "T_Co" is empty or zero): >
   :set t_me=^[[0;1;36m     " normal mode (undoes t_mr and t_md)
   :set t_mr=^[[0;1;33;44m  " reverse (invert) mode
   :set t_md=^[[1;33;41m    " bold mode
   :set t_se=^[[1;36;40m    " standout end
   :set t_so=^[[1;32;45m    " standout mode
   :set t_ue=^[[0;1;36m     " underline end
   :set t_us=^[[1;32m       " underline mode start
[the ^[ is an <Esc>, type CTRL-V <Esc> to enter it]

For real color terminals the ":highlight" command can be used.

The file "tools/vim132" is a shell script that can be used to put Vim in 132
column mode on a vt100 and lookalikes.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��@��Y�Yvim80/doc/if_tcl.txtnu�[���*if_tcl.txt*    For Vim version 8.0.  Last change: 2016 Jan 01


		  VIM REFERENCE MANUAL    by Ingo Wilken


The Tcl Interface to Vim				*tcl* *Tcl* *TCL*

1. Commands				|tcl-ex-commands|
2. Tcl commands				|tcl-commands|
3. Tcl variables			|tcl-variables|
4. Tcl window commands			|tcl-window-cmds|
5. Tcl buffer commands			|tcl-buffer-cmds|
6. Miscellaneous; Output from Tcl	|tcl-misc| |tcl-output|
7. Known bugs & problems		|tcl-bugs|
8. Examples				|tcl-examples|
9. Dynamic loading			|tcl-dynamic|

{Vi does not have any of these commands} *E280*

The Tcl interface only works when Vim was compiled with the |+tcl| feature.

WARNING: There are probably still some bugs.  Please send bug reports,
comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>

==============================================================================
1. Commands				*tcl-ex-commands* *E571* *E572*

							*:tcl* *:tc*
:tc[l] {cmd}		Execute Tcl command {cmd}.  A simple check if `:tcl`
			is working: >
				:tcl puts "Hello"

:[range]tc[l] << {endmarker}
{script}
{endmarker}
			Execute Tcl script {script}.
			Note: This command doesn't work when the Tcl feature
			wasn't compiled in.  To avoid errors, see
			|script-here|.

{endmarker} must NOT be preceded by any white space.  If {endmarker} is
omitted from after the "<<", a dot '.' must be used after {script}, like for
the |:append| and |:insert| commands.
This form of the |:tcl| command is mainly useful for including tcl code in Vim
scripts.

Example: >
	function! DefineDate()
	    tcl << EOF
	    proc date {} {
		return [clock format [clock seconds]]
	    }
	EOF
	endfunction
<
To see what version of Tcl you have: >
	:tcl puts [info patchlevel]
<

							*:tcldo* *:tcld*
:[range]tcld[o] {cmd}	Execute Tcl command {cmd} for each line in [range]
			with the variable "line" being set to the text of each
			line in turn, and "lnum" to the line number.  Setting
			"line" will change the text, but note that it is not
			possible to add or delete lines using this command.
			If {cmd} returns an error, the command is interrupted.
			The default for [range] is the whole file: "1,$".
			See |tcl-var-line| and |tcl-var-lnum|.  {not in Vi}

							*:tclfile* *:tclf*
:tclf[ile] {file}	Execute the Tcl script in {file}.  This is the same as
			":tcl source {file}", but allows file name completion.
			{not in Vi}


Note that Tcl objects (like variables) persist from one command to the next,
just as in the Tcl shell.

Executing Tcl commands is not possible in the |sandbox|.

==============================================================================
2. Tcl commands						*tcl-commands*

Tcl code gets all of its access to vim via commands in the "::vim" namespace.
The following commands are implemented: >

	::vim::beep			# Guess.
	::vim::buffer {n}		# Create Tcl command for one buffer.
	::vim::buffer list		# Create Tcl commands for all buffers.
	::vim::command [-quiet] {cmd}	# Execute an Ex command.
	::vim::expr {expr}		# Use Vim's expression evaluator.
	::vim::option {opt}		# Get vim option.
	::vim::option {opt} {val}	# Set vim option.
	::vim::window list		# Create Tcl commands for all windows.

Commands:
	::vim::beep					*tcl-beep*
	Honk.  Does not return a result.

	::vim::buffer {n}				*tcl-buffer*
	::vim::buffer exists {n}
	::vim::buffer list
	Provides access to vim buffers.  With an integer argument, creates a
	buffer command (see |tcl-buffer-cmds|) for the buffer with that
	number, and returns its name as the result.  Invalid buffer numbers
	result in a standard Tcl error.  To test for valid buffer numbers,
	vim's internal functions can be used: >
		set nbufs [::vim::expr bufnr("$")]
		set isvalid [::vim::expr "bufexists($n)"]
<	The "list" option creates a buffer command for each valid buffer, and
	returns a list of the command names as the result.
	Example: >
		set bufs [::vim::buffer list]
		foreach b $bufs { $b append end "The End!" }
<	The "exists" option checks if a buffer with the given number exists.
	Example: >
		if { [::vim::buffer exists $n] } { ::vim::command ":e #$n" }
<	This command might be replaced by a variable in future versions.
	See also |tcl-var-current| for the current buffer.

	::vim::command {cmd}				*tcl-command*
	::vim::command -quiet {cmd}
	Execute the vim (ex-mode) command {cmd}.  Any Ex command that affects
	a buffer or window uses the current buffer/current window.  Does not
	return a result other than a standard Tcl error code.  After this
	command is completed, the "::vim::current" variable is updated.
	The "-quiet" flag suppresses any error messages from vim.
	Examples: >
		::vim::command "set ts=8"
		::vim::command "%s/foo/bar/g"
<	To execute normal-mode commands, use "normal" (see |:normal|): >
		set cmd "jj"
		::vim::command "normal $cmd"
<	See also |tcl-window-command| and |tcl-buffer-command|.

	::vim::expr {expr}				*tcl-expr*
	Evaluates the expression {expr} using vim's internal expression
	evaluator (see |expression|).   Any expression that queries a buffer
	or window property uses the current buffer/current window.  Returns
	the result as a string.  A |List| is turned into a string by joining
	the items and inserting line breaks.
	Examples: >
		set perl_available [::vim::expr has("perl")]
<	See also |tcl-window-expr| and |tcl-buffer-expr|.

	::vim::option {opt}				*tcl-option*
	::vim::option {opt} {value}
	Without second argument, queries the value of a vim option.  With this
	argument, sets the vim option to {value}, and returns the previous
	value as the result.  Any options that are marked as 'local to buffer'
	or 'local to window' affect the current buffer/current window.  The
	global value is not changed, use the ":set" command for that.  For
	boolean options, {value} should be "0" or "1", or any of the keywords
	"on", "off" or "toggle".  See |option-summary| for a list of options.
	Example: >
		::vim::option ts 8
<	See also |tcl-window-option| and |tcl-buffer-option|.

	::vim::window {option}				*tcl-window*
	Provides access to vim windows.  Currently only the "list" option is
	implemented.  This creates a window command (see |tcl-window-cmds|) for
	each window, and returns a list of the command names as the result.
	Example: >
		set wins [::vim::window list]
		foreach w $wins { $w height 4 }
<	This command might be replaced by a variable in future versions.
	See also |tcl-var-current| for the current window.

==============================================================================
3. Tcl variables					*tcl-variables*

The ::vim namespace contains a few variables.  These are created when the Tcl
interpreter is called from vim and set to current values. >

	::vim::current		# array containing "current" objects
	::vim::lbase		# number of first line
	::vim::range		# array containing current range numbers
	line			# current line as a string (:tcldo only)
	lnum			# current line number (:tcldo only)

Variables:
	::vim::current					*tcl-var-current*
	This is an array providing access to various "current" objects
	available in vim.  The contents of this array are updated after
	"::vim::command" is called, as this might change vim's current
	settings (e.g., by deleting the current buffer).
	The "buffer" element contains the name of the buffer command for the
	current buffer.  This can be used directly to invoke buffer commands
	(see |tcl-buffer-cmds|).  This element is read-only.
	Example: >
		$::vim::current(buffer) insert begin "Hello world"
<	The "window" element contains the name of the window command for the
	current window.  This can be used directly to invoke window commands
	(see |tcl-window-cmds|).  This element is read-only.
	Example: >
		$::vim::current(window) height 10
<
	::vim::lbase					*tcl-var-lbase*
	This variable controls how Tcl treats line numbers.  If it is set to
	'1', then lines and columns start at 1.  This way, line numbers from
	Tcl commands and vim expressions are compatible.  If this variable is
	set to '0', then line numbers and columns start at 0 in Tcl.  This is
	useful if you want to treat a buffer as a Tcl list or a line as a Tcl
	string and use standard Tcl commands that return an index ("lsort" or
	"string first", for example).  The default value is '1'.  Currently,
	any non-zero values is treated as '1', but your scripts should not
	rely on this.  See also |tcl-linenumbers|.

	::vim::range					*tcl-var-range*
	This is an array with three elements, "start", "begin" and "end".  It
	contains the line numbers of the start and end row of the current
	range.  "begin" is the same as "start".  This variable is read-only.
	See |tcl-examples|.

	line						*tcl-var-line*
	lnum						*tcl-var-lnum*
	These global variables are only available if the ":tcldo" Ex command
	is being executed.  They contain the text and line number of the
	current line.  When the Tcl command invoked by ":tcldo" is completed,
	the current line is set to the contents of the "line" variable, unless
	the variable was unset by the Tcl command.  The "lnum" variable is
	read-only.  These variables are not in the "::vim" namespace so they
	can be used in ":tcldo" without much typing (this might be changed in
	future versions).  See also |tcl-linenumbers|.

==============================================================================
4. Tcl window commands					*tcl-window-cmds*

Window commands represent vim windows.  They are created by several commands:
	::vim::window list			|tcl-window|
	"windows" option of a buffer command	|tcl-buffer-windows|
The ::vim::current(window) variable contains the name of the window command
for the current window.  A window command is automatically deleted when the
corresponding vim window is closed.

Let's assume the name of the window command is stored in the Tcl variable "win",
i.e. "$win" calls the command.  The following options are available: >

	$win buffer		# Create Tcl command for window's buffer.
	$win command {cmd}	# Execute Ex command in windows context.
	$win cursor		# Get current cursor position.
	$win cursor {var}	# Set cursor position from array variable.
	$win cursor {row} {col}	# Set cursor position.
	$win delcmd {cmd}	# Call Tcl command when window is closed.
	$win expr {expr}	# Evaluate vim expression in windows context.
	$win height		# Report the window's height.
	$win height {n}		# Set the window's height.
	$win option {opt} [val]	# Get/Set vim option in windows context.

Options:
	$win buffer					*tcl-window-buffer*
	Creates a Tcl command for the window's buffer, and returns its name as
	the result.  The name should be stored in a variable: >
		set buf [$win buffer]
<	$buf is now a valid Tcl command.  See |tcl-buffer-cmds| for the
	available options.

	$win cursor					*tcl-window-cursor*
	$win cursor {var}
	$win cursor {row} {col}
	Without argument, reports the current cursor position as a string.
	This can be converted to a Tcl array variable: >
		array set here [$win cursor]
<	"here(row)" and "here(column)" now contain the cursor position.
	With a single argument, the argument is interpreted as the name of a
	Tcl array variable, which must contain two elements "row" and "column".
	These are used to set the cursor to the new position: >
		$win cursor here	;# not $here !
<	With two arguments, sets the cursor to the specified row and column: >
		$win cursor $here(row) $here(column)
<	Invalid positions result in a standard Tcl error, which can be caught
	with "catch".  The row and column values depend on the "::vim::lbase"
	variable.  See |tcl-var-lbase|.

	$win delcmd {cmd}				*tcl-window-delcmd*
	Registers the Tcl command {cmd} as a deletion callback for the window.
	This command is executed (in the global scope) just before the window
	is closed.  Complex commands should be build with "list": >
		$win delcmd [list puts vimerr "window deleted"]
<	See also |tcl-buffer-delcmd|.

	$win height					*tcl-window-height*
	$win height {n}
	Without argument, reports the window's current height.  With an
	argument, tries to set the window's height to {n}, then reports the
	new height (which might be different from {n}).

	$win command [-quiet] {cmd}			*tcl-window-command*
	$win expr {expr}				*tcl-window-expr*
	$win option {opt} [val]				*tcl-window-option*
	These are similar to "::vim::command" etc., except that everything is
	done in the context of the window represented by $win, instead of the
	current window.  For example, setting an option that is marked 'local
	to window' affects the window $win.  Anything that affects or queries
	a buffer uses the buffer displayed in this window (i.e. the buffer
	that is represented by "$win buffer").  See |tcl-command|, |tcl-expr|
	and |tcl-option| for more information.
	Example: >
		$win option number on

==============================================================================
5. Tcl buffer commands					*tcl-buffer-cmds*

Buffer commands represent vim buffers.  They are created by several commands:
	::vim::buffer {N}			|tcl-buffer|
	::vim::buffer list			|tcl-buffer|
	"buffer" option of a window command	|tcl-window-buffer|
The ::vim::current(buffer) variable contains the name of the buffer command
for the current buffer.  A buffer command is automatically deleted when the
corresponding vim buffer is destroyed.  Whenever the buffer's contents are
changed, all marks in the buffer are automatically adjusted.  Any changes to
the buffer's contents made by Tcl commands can be undone with the "undo" vim
command (see |undo|).

Let's assume the name of the buffer command is stored in the Tcl variable "buf",
i.e. "$buf" calls the command.  The following options are available: >

	$buf append {n} {str}	# Append a line to buffer, after line {n}.
	$buf command {cmd}	# Execute Ex command in buffers context.
	$buf count		# Report number of lines in buffer.
	$buf delcmd {cmd}	# Call Tcl command when buffer is deleted.
	$buf delete {n}		# Delete a single line.
	$buf delete {n} {m}	# Delete several lines.
	$buf expr {expr}	# Evaluate vim expression in buffers context.
	$buf get {n}		# Get a single line as a string.
	$buf get {n} {m}	# Get several lines as a list.
	$buf insert {n} {str}	# Insert a line in buffer, as line {n}.
	$buf last		# Report line number of last line in buffer.
	$buf mark {mark}	# Report position of buffer mark.
	$buf name		# Report name of file in buffer.
	$buf number		# Report number of this buffer.
	$buf option {opt} [val]	# Get/Set vim option in buffers context.
	$buf set {n} {text}	# Replace a single line.
	$buf set {n} {m} {list}	# Replace several lines.
	$buf windows		# Create Tcl commands for buffer's windows.
<
							*tcl-linenumbers*
Most buffer commands take line numbers as arguments.  How Tcl treats these
numbers depends on the "::vim::lbase" variable (see |tcl-var-lbase|).  Instead
of line numbers, several keywords can be also used: "top", "start", "begin",
"first", "bottom", "end" and "last".

Options:
	$buf append {n} {str}				*tcl-buffer-append*
	$buf insert {n} {str}				*tcl-buffer-insert*
	Add a line to the buffer.  With the "insert" option, the string
	becomes the new line {n}, with "append" it is inserted after line {n}.
	Example: >
		$buf insert top "This is the beginning."
		$buf append end "This is the end."
<	To add a list of lines to the buffer, use a loop: >
		foreach line $list { $buf append $num $line ; incr num }
<
	$buf count					*tcl-buffer-count*
	Reports the total number of lines in the buffer.

	$buf delcmd {cmd}				*tcl-buffer-delcmd*
	Registers the Tcl command {cmd} as a deletion callback for the buffer.
	This command is executed (in the global scope) just before the buffer
	is deleted.  Complex commands should be build with "list": >
		$buf delcmd [list puts vimerr "buffer [$buf number] gone"]
<	See also |tcl-window-delcmd|.

	$buf delete {n}					*tcl-buffer-delete*
	$buf delete {n} {m}
	Deletes line {n} or lines {n} through {m} from the buffer.
	This example deletes everything except the last line: >
		$buf delete first [expr [$buf last] - 1]
<
	$buf get {n}					*tcl-buffer-get*
	$buf get {n} {m}
	Gets one or more lines from the buffer.  For a single line, the result
	is a string; for several lines, a list of strings.
	Example: >
		set topline [$buf get top]
<
	$buf last					*tcl-buffer-last*
	Reports the line number of the last line.  This value depends on the
	"::vim::lbase" variable.  See |tcl-var-lbase|.

	$buf mark {mark}				*tcl-buffer-mark*
	Reports the position of the named mark as a string, similar to the
	cursor position of the "cursor" option of a window command (see
	|tcl-window-cursor|).  This can be converted to a Tcl array variable: >
		array set mpos [$buf mark "a"]
<	"mpos(column)" and "mpos(row)" now contain the position of the mark.
	If the mark is not set, a standard Tcl error results.

	$buf name
	Reports the name of the file in the buffer.  For a buffer without a
	file, this is an empty string.

	$buf number
	Reports the number of this buffer.  See |:buffers|.
	This example deletes a buffer from vim: >
		::vim::command "bdelete [$buf number]"
<
	$buf set {n} {string}				*tcl-buffer-set*
	$buf set {n} {m} {list}
	Replace one or several lines in the buffer.  If the list contains more
	elements than there are lines to replace, they are inserted into the
	buffer.  If the list contains fewer elements, any unreplaced line is
	deleted from the buffer.

	$buf windows					*tcl-buffer-windows*
	Creates a window command for each window that displays this buffer, and
	returns a list of the command names as the result.
	Example: >
		set winlist [$buf windows]
		foreach win $winlist { $win height 4 }
<	See |tcl-window-cmds| for the available options.

	$buf command [-quiet] {cmd}			*tcl-buffer-command*
	$buf expr {expr}				*tcl-buffer-expr*
	$buf option {opt} [val]				*tcl-buffer-option*
	These are similar to "::vim::command" etc., except that everything is
	done in the context of the buffer represented by $buf, instead of the
	current buffer.  For example, setting an option that is marked 'local
	to buffer' affects the buffer $buf.  Anything that affects or queries
	a window uses the first window in vim's window list that displays this
	buffer (i.e. the first entry in the list returned by "$buf windows").
	See |tcl-command|, |tcl-expr| and |tcl-option| for more information.
	Example: >
		if { [$buf option modified] } { $buf command "w" }

==============================================================================
6. Miscellaneous; Output from Tcl		*tcl-misc* *tcl-output*

The standard Tcl commands "exit" and "catch" are replaced by custom versions.
"exit" terminates the current Tcl script and returns to vim, which deletes the
Tcl interpreter.  Another call to ":tcl" then creates a new Tcl interpreter.
"exit" does NOT terminate vim!  "catch" works as before, except that it does
not prevent script termination from "exit".  An exit code != 0 causes the ex
command that invoked the Tcl script to return an error.

Two new I/O streams are available in Tcl, "vimout" and "vimerr".  All output
directed to them is displayed in the vim message area, as information messages
and error messages, respectively.  The standard Tcl output streams stdout and
stderr are mapped to vimout and vimerr, so that a normal "puts" command can be
used to display messages in vim.

==============================================================================
7. Known bugs & problems				*tcl-bugs*

Calling one of the Tcl Ex commands from inside Tcl (via "::vim::command") may
have unexpected side effects.  The command creates a new interpreter, which
has the same abilities as the standard interpreter - making "::vim::command"
available in a safe child interpreter therefore makes the child unsafe.  (It
would be trivial to block nested :tcl* calls or ensure that such calls from a
safe interpreter create only new safe interpreters, but quite pointless -
depending on vim's configuration, "::vim::command" may execute arbitrary code
in any number of other scripting languages.)  A call to "exit" within this new
interpreter does not affect the old interpreter; it only terminates the new
interpreter, then script processing continues normally in the old interpreter.

Input from stdin is currently not supported.

==============================================================================
8. Examples:						*tcl-examples*

Here are a few small (and maybe useful) Tcl scripts.

This script sorts the lines of the entire buffer (assume it contains a list
of names or something similar):
	set buf $::vim::current(buffer)
	set lines [$buf get top bottom]
	set lines [lsort -dictionary $lines]
	$buf set top bottom $lines

This script reverses the lines in the buffer.  Note the use of "::vim::lbase"
and "$buf last" to work with any line number setting.
	set buf $::vim::current(buffer)
	set t $::vim::lbase
	set b [$buf last]
	while { $t < $b } {
		set tl [$buf get $t]
		set bl [$buf get $b]
		$buf set $t $bl
		$buf set $b $tl
		incr t
		incr b -1
	}

This script adds a consecutive number to each line in the current range:
	set buf $::vim::current(buffer)
	set i $::vim::range(start)
	set n 1
	while { $i <= $::vim::range(end) } {
		set line [$buf get $i]
		$buf set $i "$n\t$line"
		incr i ; incr n
	}

The same can also be done quickly with two Ex commands, using ":tcldo":
	:tcl set n 1
	:[range]tcldo set line "$n\t$line" ; incr n

This procedure runs an Ex command on each buffer (idea stolen from Ron Aaron):
	proc eachbuf { cmd } {
		foreach b [::vim::buffer list] {
			$b command $cmd
		}
	}
Use it like this:
	:tcl eachbuf %s/foo/bar/g
Be careful with Tcl's string and backslash substitution, tough.  If in doubt,
surround the Ex command with curly braces.


If you want to add some Tcl procedures permanently to vim, just place them in
a file (e.g. "~/.vimrc.tcl" on Unix machines), and add these lines to your
startup file (usually "~/.vimrc" on Unix):
	if has("tcl")
		tclfile ~/.vimrc.tcl
	endif

==============================================================================
9. Dynamic loading					*tcl-dynamic*

On MS-Windows and Unix the Tcl library can be loaded dynamically.  The
|:version| output then includes |+tcl/dyn|.

This means that Vim will search for the Tcl DLL or shared library file only
when needed.  When you don't use the Tcl interface you don't need it, thus you
can use Vim without this file.


MS-Windows ~

To use the Tcl interface the Tcl DLL must be in your search path.  In a
console window type "path" to see what directories are used.  The 'tcldll'
option can be also used to specify the Tcl DLL.

The name of the DLL must match the Tcl version Vim was compiled with.
Currently the name is "tcl86.dll".  That is for Tcl 8.6.  To know for sure
edit "gvim.exe" and search for "tcl\d*.dll\c".


Unix ~

The 'tcldll' option can be used to specify the Tcl shared library file instead
of DYNAMIC_TCL_DLL file what was specified at compile time.  The version of
the shared library must match the Tcl version Vim was compiled with.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�ZD]�]�D�Dvim80/doc/insert.txtnu�[���*insert.txt*    For Vim version 8.0.  Last change: 2018 Feb 10


		  VIM REFERENCE MANUAL    by Bram Moolenaar


						*Insert* *Insert-mode*
Inserting and replacing text				*mode-ins-repl*

Most of this file is about Insert and Replace mode.  At the end are a few
commands for inserting text in other ways.

An overview of the most often used commands can be found in chapter 24 of the
user manual |usr_24.txt|.

1. Special keys						|ins-special-keys|
2. Special special keys					|ins-special-special|
3. 'textwidth' and 'wrapmargin' options			|ins-textwidth|
4. 'expandtab', 'smarttab' and 'softtabstop'  options	|ins-expandtab|
5. Replace mode						|Replace-mode|
6. Virtual Replace mode					|Virtual-Replace-mode|
7. Insert mode completion				|ins-completion|
8. Insert mode commands					|inserting|
9. Ex insert commands					|inserting-ex|
10. Inserting a file					|inserting-file|

Also see 'virtualedit', for moving the cursor to positions where there is no
character.  Useful for editing a table.

==============================================================================
1. Special keys						*ins-special-keys*

In Insert and Replace mode, the following characters have a special meaning;
other characters are inserted directly.  To insert one of these special
characters into the buffer, precede it with CTRL-V.  To insert a <Nul>
character use "CTRL-V CTRL-@" or "CTRL-V 000".  On some systems, you have to
use "CTRL-V 003" to insert a CTRL-C.  Note: When CTRL-V is mapped you can
often use CTRL-Q instead |i_CTRL-Q|.

If you are working in a special language mode when inserting text, see the
'langmap' option, |'langmap'|, on how to avoid switching this mode on and off
all the time.

If you have 'insertmode' set, <Esc> and a few other keys get another meaning.
See |'insertmode'|.

char		action	~
-----------------------------------------------------------------------
						*i_CTRL-[* *i_<Esc>*
<Esc> or CTRL-[	End insert or Replace mode, go back to Normal mode.  Finish
		abbreviation.
		Note: If your <Esc> key is hard to hit on your keyboard, train
		yourself to use CTRL-[.
		If Esc doesn't work and you are using a Mac, try CTRL-Esc.
		Or disable Listening under Accessibility preferences.
						*i_CTRL-C*
CTRL-C		Quit insert mode, go back to Normal mode.  Do not check for
		abbreviations.  Does not trigger the |InsertLeave| autocommand
		event.

						*i_CTRL-@*
CTRL-@		Insert previously inserted text and stop insert.  {Vi: only
		when typed as first char, only up to 128 chars}
						*i_CTRL-A*
CTRL-A		Insert previously inserted text.  {not in Vi}

						*i_CTRL-H* *i_<BS>* *i_BS*
<BS> or CTRL-H	Delete the character before the cursor (see |i_backspacing|
		about joining lines).
		See |:fixdel| if your <BS> key does not do what you want.
		{Vi: does not delete autoindents}
						*i_<Del>* *i_DEL*
<Del>		Delete the character under the cursor.  If the cursor is at
		the end of the line, and the 'backspace' option includes
		"eol", delete the <EOL>; the next line is appended after the
		current one.
		See |:fixdel| if your <Del> key does not do what you want.
		{not in Vi}
						*i_CTRL-W*
CTRL-W		Delete the word before the cursor (see |i_backspacing| about
		joining lines).  See the section "word motions",
		|word-motions|, for the definition of a word.
						*i_CTRL-U*
CTRL-U		Delete all entered characters before the cursor in the current
		line.  If there are no newly entered characters and
		'backspace' is not empty, delete all characters before the
		cursor in the current line.
		See |i_backspacing| about joining lines.
						*i_CTRL-I* *i_<Tab>* *i_Tab*
<Tab> or CTRL-I Insert a tab.  If the 'expandtab' option is on, the
		equivalent number of spaces is inserted (use CTRL-V <Tab> to
		avoid the expansion; use CTRL-Q <Tab> if CTRL-V is mapped
		|i_CTRL-Q|).  See also the 'smarttab' option and
		|ins-expandtab|.
						*i_CTRL-J* *i_<NL>*
<NL> or CTRL-J	Begin new line.
						*i_CTRL-M* *i_<CR>*
<CR> or CTRL-M	Begin new line.
						*i_CTRL-K*
CTRL-K {char1} [char2]
		Enter digraph (see |digraphs|).  When {char1} is a special
		key, the code for that key is inserted in <> form.  For
		example, the string "<S-Space>" can be entered by typing
		<C-K><S-Space> (two keys).  Neither char is considered for
		mapping.  {not in Vi}

CTRL-N		Find next keyword (see |i_CTRL-N|).  {not in Vi}
CTRL-P		Find previous keyword (see |i_CTRL-P|).  {not in Vi}

CTRL-R {0-9a-z"%#*+:.-=}					*i_CTRL-R*
		Insert the contents of a register.  Between typing CTRL-R and
		the second character, '"' will be displayed to indicate that
		you are expected to enter the name of a register.
		The text is inserted as if you typed it, but mappings and
		abbreviations are not used.  If you have options like
		'textwidth', 'formatoptions', or 'autoindent' set, this will
		influence what will be inserted.  This is different from what
		happens with the "p" command and pasting with the mouse.
		Special registers:
			'"'	the unnamed register, containing the text of
				the last delete or yank
			'%'	the current file name
			'#'	the alternate file name
			'*'	the clipboard contents (X11: primary selection)
			'+'	the clipboard contents
			'/'	the last search pattern
			':'	the last command-line
			'.'	the last inserted text
			'-'	the last small (less than a line) delete
							*i_CTRL-R_=*
			'='	the expression register: you are prompted to
				enter an expression (see |expression|)
				Note that 0x80 (128 decimal) is used for
				special keys.  E.g., you can use this to move
				the cursor up:
					CTRL-R ="\<Up>"
				Use CTRL-R CTRL-R to insert text literally.
				When the result is a |List| the items are used
				as lines.  They can have line breaks inside
				too.
				When the result is a Float it's automatically
				converted to a String.
				When append() or setline() is invoked the undo
				sequence will be broken.
		See |registers| about registers.  {not in Vi}

CTRL-R CTRL-R {0-9a-z"%#*+/:.-=}			*i_CTRL-R_CTRL-R*
		Insert the contents of a register.  Works like using a single
		CTRL-R, but the text is inserted literally, not as if typed.
		This differs when the register contains characters like <BS>.
		Example, where register a contains "ab^Hc": >
	CTRL-R a		results in "ac".
	CTRL-R CTRL-R a		results in "ab^Hc".
<		Options 'textwidth', 'formatoptions', etc. still apply.  If
		you also want to avoid these, use CTRL-R CTRL-O, see below.
		The '.' register (last inserted text) is still inserted as
		typed.  {not in Vi}

CTRL-R CTRL-O {0-9a-z"%#*+/:.-=}			*i_CTRL-R_CTRL-O*
		Insert the contents of a register literally and don't
		auto-indent.  Does the same as pasting with the mouse
		|<MiddleMouse>|. When the register is linewise this will
		insert the text above the current line, like with `P`.
		Does not replace characters!
		The '.' register (last inserted text) is still inserted as
		typed.  {not in Vi}

CTRL-R CTRL-P {0-9a-z"%#*+/:.-=}			*i_CTRL-R_CTRL-P*
		Insert the contents of a register literally and fix the
		indent, like |[<MiddleMouse>|.
		Does not replace characters!
		The '.' register (last inserted text) is still inserted as
		typed.  {not in Vi}

						*i_CTRL-T*
CTRL-T		Insert one shiftwidth of indent at the start of the current
		line.  The indent is always rounded to a 'shiftwidth' (this is
		vi compatible).  {Vi: only when in indent}
						*i_CTRL-D*
CTRL-D		Delete one shiftwidth of indent at the start of the current
		line.  The indent is always rounded to a 'shiftwidth' (this is
		vi compatible).  {Vi: CTRL-D works only when used after
		autoindent}
						*i_0_CTRL-D*
0 CTRL-D	Delete all indent in the current line.  {Vi: CTRL-D works
		only when used after autoindent}
						*i_^_CTRL-D*
^ CTRL-D	Delete all indent in the current line.  The indent is
		restored in the next line.  This is useful when inserting a
		label.  {Vi: CTRL-D works only when used after autoindent}

						*i_CTRL-V*
CTRL-V		Insert next non-digit literally.  For special keys, the
		terminal code is inserted.  It's also possible to enter the
		decimal, octal or hexadecimal value of a character
		|i_CTRL-V_digit|.
		The characters typed right after CTRL-V are not considered for
		mapping.  {Vi: no decimal byte entry}
		Note: When CTRL-V is mapped (e.g., to paste text) you can
		often use CTRL-Q instead |i_CTRL-Q|.

						*i_CTRL-Q*
CTRL-Q		Same as CTRL-V.
		Note: Some terminal connections may eat CTRL-Q, it doesn't
		work then.  It does work in the GUI.

CTRL-X		Enter CTRL-X mode.  This is a sub-mode where commands can
		be given to complete words or scroll the window.  See
		|i_CTRL-X| and |ins-completion|. {not in Vi}

						*i_CTRL-E*
CTRL-E		Insert the character which is below the cursor.  {not in Vi}
						*i_CTRL-Y*
CTRL-Y		Insert the character which is above the cursor.  {not in Vi}
		Note that for CTRL-E and CTRL-Y 'textwidth' is not used, to be
		able to copy characters from a long line.

						*i_CTRL-_*
CTRL-_		Switch between languages, as follows:
		-  When in a rightleft window, revins and nohkmap are toggled,
		   since English will likely be inserted in this case.
		-  When in a norightleft window, revins and hkmap are toggled,
		   since Hebrew will likely be inserted in this case.

		CTRL-_ moves the cursor to the end of the typed text.

		This command is only available when the 'allowrevins' option
		is set.
		Please refer to |rileft.txt| for more information about
		right-to-left mode.
		{not in Vi}
		Only if compiled with the |+rightleft| feature.

						*i_CTRL-^*
CTRL-^		Toggle the use of typing language characters.
		When language |:lmap| mappings are defined:
		- If 'iminsert' is 1 (langmap mappings used) it becomes 0 (no
		  langmap mappings used).
		- If 'iminsert' has another value it becomes 1, thus langmap
		  mappings are enabled.
		When no language mappings are defined:
		- If 'iminsert' is 2 (Input Method used) it becomes 0 (no
		  Input Method used).
		- If 'iminsert' has another value it becomes 2, thus the Input
		  Method is enabled.
		When set to 1, the value of the "b:keymap_name" variable, the
		'keymap' option or "<lang>" appears in the status line.
		The language mappings are normally used to type characters
		that are different from what the keyboard produces.  The
		'keymap' option can be used to install a whole number of them.
		{not in Vi}

						*i_CTRL-]*
CTRL-]		Trigger abbreviation, without inserting a character.  {not in
		Vi}

						*i_<Insert>*
<Insert>	Toggle between Insert and Replace mode.  {not in Vi}
-----------------------------------------------------------------------

						*i_backspacing*
The effect of the <BS>, CTRL-W, and CTRL-U depend on the 'backspace' option
(unless 'revins' is set).  This is a comma separated list of items:

item	    action ~
indent	    allow backspacing over autoindent
eol	    allow backspacing over end-of-line (join lines)
start	    allow backspacing over the start position of insert; CTRL-W and
	    CTRL-U stop once at the start position

When 'backspace' is empty, Vi compatible backspacing is used.  You cannot
backspace over autoindent, before column 1 or before where insert started.

For backwards compatibility the values "0", "1" and "2" are also allowed, see
|'backspace'|.

If the 'backspace' option does contain "eol" and the cursor is in column 1
when one of the three keys is used, the current line is joined with the
previous line.  This effectively deletes the <EOL> in front of the cursor.
{Vi: does not cross lines, does not delete past start position of insert}

						*i_CTRL-V_digit*
With CTRL-V the decimal, octal or hexadecimal value of a character can be
entered directly.  This way you can enter any character, except a line break
(<NL>, value 10).  There are five ways to enter the character value:

first char	mode	     max nr of chars   max value ~
(none)		decimal		   3		255
o or O		octal		   3		377	 (255)
x or X		hexadecimal	   2		ff	 (255)
u		hexadecimal	   4		ffff	 (65535)
U		hexadecimal	   8		7fffffff (2147483647)

Normally you would type the maximum number of characters.  Thus to enter a
space (value 32) you would type <C-V>032.  You can omit the leading zero, in
which case the character typed after the number must be a non-digit.  This
happens for the other modes as well: As soon as you type a character that is
invalid for the mode, the value before it will be used and the "invalid"
character is dealt with in the normal way.

If you enter a value of 10, it will end up in the file as a 0.  The 10 is a
<NL>, which is used internally to represent the <Nul> character.  When writing
the buffer to a file, the <NL> character is translated into <Nul>.  The <NL>
character is written at the end of each line.  Thus if you want to insert a
<NL> character in a file you will have to make a line break.

						*i_CTRL-X* *insert_expand*
CTRL-X enters a sub-mode where several commands can be used.  Most of these
commands do keyword completion; see |ins-completion|.  These are not available
when Vim was compiled without the |+insert_expand| feature.

Two commands can be used to scroll the window up or down, without exiting
insert mode:

						*i_CTRL-X_CTRL-E*
CTRL-X CTRL-E		scroll window one line up.
			When doing completion look here: |complete_CTRL-E|

						*i_CTRL-X_CTRL-Y*
CTRL-X CTRL-Y		scroll window one line down.
			When doing completion look here: |complete_CTRL-Y|

After CTRL-X is pressed, each CTRL-E (CTRL-Y) scrolls the window up (down) by
one line unless that would cause the cursor to move from its current position
in the file.  As soon as another key is pressed, CTRL-X mode is exited and
that key is interpreted as in Insert mode.


==============================================================================
2. Special special keys				*ins-special-special*

The following keys are special.  They stop the current insert, do something,
and then restart insertion.  This means you can do something without getting
out of Insert mode.  This is very handy if you prefer to use the Insert mode
all the time, just like editors that don't have a separate Normal mode.  You
may also want to set the 'backspace' option to "indent,eol,start" and set the
'insertmode' option.  You can use CTRL-O if you want to map a function key to
a command.

The changes (inserted or deleted characters) before and after these keys can
be undone separately.  Only the last change can be redone and always behaves
like an "i" command.

char		action	~
-----------------------------------------------------------------------
<Up>		cursor one line up			     *i_<Up>*
<Down>		cursor one line down			     *i_<Down>*
CTRL-G <Up>	cursor one line up, insert start column	     *i_CTRL-G_<Up>*
CTRL-G k	cursor one line up, insert start column	     *i_CTRL-G_k*
CTRL-G CTRL-K	cursor one line up, insert start column	     *i_CTRL-G_CTRL-K*
CTRL-G <Down>	cursor one line down, insert start column    *i_CTRL-G_<Down>*
CTRL-G j	cursor one line down, insert start column    *i_CTRL-G_j*
CTRL-G CTRL-J	cursor one line down, insert start column    *i_CTRL-G_CTRL-J*
<Left>		cursor one character left		     *i_<Left>*
<Right>		cursor one character right		     *i_<Right>*
<S-Left>	cursor one word back (like "b" command)	     *i_<S-Left>*
<C-Left>	cursor one word back (like "b" command)	     *i_<C-Left>*
<S-Right>	cursor one word forward (like "w" command)   *i_<S-Right>*
<C-Right>	cursor one word forward (like "w" command)   *i_<C-Right>*
<Home>		cursor to first char in the line	     *i_<Home>*
<End>		cursor to after last char in the line	     *i_<End>*
<C-Home>	cursor to first char in the file	     *i_<C-Home>*
<C-End>		cursor to after last char in the file	     *i_<C-End>*
<LeftMouse>	cursor to position of mouse click	     *i_<LeftMouse>*
<S-Up>		move window one page up			     *i_<S-Up>*
<PageUp>	move window one page up			     *i_<PageUp>*
<S-Down>	move window one page down		     *i_<S-Down>*
<PageDown>	move window one page down		     *i_<PageDown>*
<ScrollWheelDown>    move window three lines down	*i_<ScrollWheelDown>*
<S-ScrollWheelDown>  move window one page down		*i_<S-ScrollWheelDown>*
<ScrollWheelUp>      move window three lines up		*i_<ScrollWheelUp>*
<S-ScrollWheelUp>    move window one page up		*i_<S-ScrollWheelUp>*
<ScrollWheelLeft>    move window six columns left	*i_<ScrollWheelLeft>*
<S-ScrollWheelLeft>  move window one page left		*i_<S-ScrollWheelLeft>*
<ScrollWheelRight>   move window six columns right	*i_<ScrollWheelRight>*
<S-ScrollWheelRight> move window one page right		*i_<S-ScrollWheelRight>*
CTRL-O		execute one command, return to Insert mode   *i_CTRL-O*
CTRL-\ CTRL-O	like CTRL-O but don't move the cursor	     *i_CTRL-\_CTRL-O*
CTRL-L		when 'insertmode' is set: go to Normal mode  *i_CTRL-L*
CTRL-G u	break undo sequence, start new change	     *i_CTRL-G_u*
CTRL-G U	don't break undo with next left/right cursor *i_CTRL-G_U*
		movement (but only if the cursor stays
		within same the line)
-----------------------------------------------------------------------

Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
option.

The CTRL-O command sometimes has a side effect: If the cursor was beyond the
end of the line, it will be put on the last character in the line.  In
mappings it's often better to use <Esc> (first put an "x" in the text, <Esc>
will then always put the cursor on it).  Or use CTRL-\ CTRL-O, but then
beware of the cursor possibly being beyond the end of the line.  Note that the
command following CTRL-\ CTRL-O can still move the cursor, it is not restored
to its original position.

The CTRL-O command takes you to Normal mode.  If you then use a command enter
Insert mode again it normally doesn't nest.  Thus when typing "a<C-O>a" and
then <Esc> takes you back to Normal mode, you do not need to type <Esc> twice.
An exception is when not typing the command, e.g. when executing a mapping or
sourcing a script.  This makes mappings work that briefly switch to Insert
mode.

The shifted cursor keys are not available on all terminals.

Another side effect is that a count specified before the "i" or "a" command is
ignored.  That is because repeating the effect of the command after CTRL-O is
too complicated.

An example for using CTRL-G u: >

	:inoremap <C-H> <C-G>u<C-H>

This redefines the backspace key to start a new undo sequence.  You can now
undo the effect of the backspace key, without changing what you typed before
that, with CTRL-O u.  Another example: >

	:inoremap <CR> <C-]><C-G>u<CR>

This breaks undo at each line break.  It also expands abbreviations before
this.

An example for using CTRL-G U: >

	inoremap <Left>  <C-G>U<Left>
	inoremap <Right> <C-G>U<Right>
	inoremap <expr> <Home> col('.') == match(getline('.'), '\S') + 1 ?
	 \ repeat('<C-G>U<Left>', col('.') - 1) :
	 \ (col('.') < match(getline('.'), '\S') ?
	 \     repeat('<C-G>U<Right>', match(getline('.'), '\S') + 0) :
	 \     repeat('<C-G>U<Left>', col('.') - 1 - match(getline('.'), '\S')))
	inoremap <expr> <End> repeat('<C-G>U<Right>', col('$') - col('.'))
	inoremap ( ()<C-G>U<Left>

This makes it possible to use the cursor keys in Insert mode, without breaking
the undo sequence and therefore using |.| (redo) will work as expected.
Also entering a text like (with the "(" mapping from above): >

   Lorem ipsum (dolor

will be repeatable by the |.|to the expected

   Lorem ipsum (dolor)

Using CTRL-O splits undo: the text typed before and after it is undone
separately.  If you want to avoid this (e.g., in a mapping) you might be able
to use CTRL-R = |i_CTRL-R|.  E.g., to call a function: >
	:imap <F2> <C-R>=MyFunc()<CR>

When the 'whichwrap' option is set appropriately, the <Left> and <Right>
keys on the first/last character in the line make the cursor wrap to the
previous/next line.

The CTRL-G j and CTRL-G k commands can be used to insert text in front of a
column.  Example: >
   int i;
   int j;
Position the cursor on the first "int", type "istatic <C-G>j       ".  The
result is: >
   static int i;
	  int j;
When inserting the same text in front of the column in every line, use the
Visual blockwise command "I" |v_b_I|.

==============================================================================
3. 'textwidth' and 'wrapmargin' options			*ins-textwidth*

The 'textwidth' option can be used to automatically break a line before it
gets too long.  Set the 'textwidth' option to the desired maximum line
length.  If you then type more characters (not spaces or tabs), the
last word will be put on a new line (unless it is the only word on the
line).  If you set 'textwidth' to 0, this feature is disabled.

The 'wrapmargin' option does almost the same.  The difference is that
'textwidth' has a fixed width while 'wrapmargin' depends on the width of the
screen.  When using 'wrapmargin' this is equal to using 'textwidth' with a
value equal to (columns - 'wrapmargin'), where columns is the width of the
screen.

When 'textwidth' and 'wrapmargin' are both set, 'textwidth' is used.

If you don't really want to break the line, but view the line wrapped at a
convenient place, see the 'linebreak' option.

The line is only broken automatically when using Insert mode, or when
appending to a line.  When in replace mode and the line length is not
changed, the line will not be broken.

Long lines are broken if you enter a non-white character after the margin.
The situations where a line will be broken can be restricted by adding
characters to the 'formatoptions' option:
"l"  Only break a line if it was not longer than 'textwidth' when the insert
     started.
"v"  Only break at a white character that has been entered during the
     current insert command.  This is mostly Vi-compatible.
"lv" Only break if the line was not longer than 'textwidth' when the insert
     started and only at a white character that has been entered during the
     current insert command.  Only differs from "l" when entering non-white
     characters while crossing the 'textwidth' boundary.

Normally an internal function will be used to decide where to break the line.
If you want to do it in a different way set the 'formatexpr' option to an
expression that will take care of the line break.

If you want to format a block of text, you can use the "gq" operator.  Type
"gq" and a movement command to move the cursor to the end of the block.  In
many cases, the command "gq}" will do what you want (format until the end of
paragraph).  Alternatively, you can use "gqap", which will format the whole
paragraph, no matter where the cursor currently is.  Or you can use Visual
mode: hit "v", move to the end of the block, and type "gq".  See also |gq|.

==============================================================================
4. 'expandtab', 'smarttab' and 'softtabstop' options	*ins-expandtab*

If the 'expandtab' option is on, spaces will be used to fill the amount of
whitespace of the tab.  If you want to enter a real <Tab>, type CTRL-V first
(use CTRL-Q when CTRL-V is mapped |i_CTRL-Q|).
The 'expandtab' option is off by default.  Note that in Replace mode, a single
character is replaced with several spaces.  The result of this is that the
number of characters in the line increases.  Backspacing will delete one
space at a time.  The original character will be put back for only one space
that you backspace over (the last one).  {Vi does not have the 'expandtab'
option}

							*ins-smarttab*
When the 'smarttab' option is on, a <Tab> inserts 'shiftwidth' positions at
the beginning of a line and 'tabstop' positions in other places.  This means
that often spaces instead of a <Tab> character are inserted.  When 'smarttab'
is off, a <Tab> always inserts 'tabstop' positions, and 'shiftwidth' is only
used for ">>" and the like.  {not in Vi}

							*ins-softtabstop*
When the 'softtabstop' option is non-zero, a <Tab> inserts 'softtabstop'
positions, and a <BS> used to delete white space, will delete 'softtabstop'
positions.  This feels like 'tabstop' was set to 'softtabstop', but a real
<Tab> character still takes 'tabstop' positions, so your file will still look
correct when used by other applications.

If 'softtabstop' is non-zero, a <BS> will try to delete as much white space to
move to the previous 'softtabstop' position, except when the previously
inserted character is a space, then it will only delete the character before
the cursor.  Otherwise you cannot always delete a single character before the
cursor.  You will have to delete 'softtabstop' characters first, and then type
extra spaces to get where you want to be.

==============================================================================
5. Replace mode				*Replace* *Replace-mode* *mode-replace*

Enter Replace mode with the "R" command in normal mode.

In Replace mode, one character in the line is deleted for every character you
type.  If there is no character to delete (at the end of the line), the
typed character is appended (as in Insert mode).  Thus the number of
characters in a line stays the same until you get to the end of the line.
If a <NL> is typed, a line break is inserted and no character is deleted.

Be careful with <Tab> characters.  If you type a normal printing character in
its place, the number of characters is still the same, but the number of
columns will become smaller.

If you delete characters in Replace mode (with <BS>, CTRL-W, or CTRL-U), what
happens is that you delete the changes.  The characters that were replaced
are restored.  If you had typed past the existing text, the characters you
added are deleted.  This is effectively a character-at-a-time undo.

If the 'expandtab' option is on, a <Tab> will replace one character with
several spaces.  The result of this is that the number of characters in the
line increases.  Backspacing will delete one space at a time.  The original
character will be put back for only one space that you backspace over (the
last one).  {Vi does not have the 'expandtab' option}

==============================================================================
6. Virtual Replace mode		*vreplace-mode* *Virtual-Replace-mode*

Enter Virtual Replace mode with the "gR" command in normal mode.
{not available when compiled without the |+vreplace| feature}
{Vi does not have Virtual Replace mode}

Virtual Replace mode is similar to Replace mode, but instead of replacing
actual characters in the file, you are replacing screen real estate, so that
characters further on in the file never appear to move.

So if you type a <Tab> it may replace several normal characters, and if you
type a letter on top of a <Tab> it may not replace anything at all, since the
<Tab> will still line up to the same place as before.

Typing a <NL> still doesn't cause characters later in the file to appear to
move.  The rest of the current line will be replaced by the <NL> (that is,
they are deleted), and replacing continues on the next line.  A new line is
NOT inserted unless you go past the end of the file.

Interesting effects are seen when using CTRL-T and CTRL-D.  The characters
before the cursor are shifted sideways as normal, but characters later in the
line still remain still.  CTRL-T will hide some of the old line under the
shifted characters, but CTRL-D will reveal them again.

As with Replace mode, using <BS> etc will bring back the characters that were
replaced.  This still works in conjunction with 'smartindent', CTRL-T and
CTRL-D, 'expandtab', 'smarttab', 'softtabstop', etc.

In 'list' mode, Virtual Replace mode acts as if it was not in 'list' mode,
unless "L" is in 'cpoptions'.

Note that the only situations for which characters beyond the cursor should
appear to move are in List mode |'list'|, and occasionally when 'wrap' is set
(and the line changes length to become shorter or wider than the width of the
screen).  In other cases spaces may be inserted to avoid following characters
to move.

This mode is very useful for editing <Tab> separated columns in tables, for
entering new data while keeping all the columns aligned.

==============================================================================
7. Insert mode completion				*ins-completion*

In Insert and Replace mode, there are several commands to complete part of a
keyword or line that has been typed.  This is useful if you are using
complicated keywords (e.g., function names with capitals and underscores).

These commands are not available when the |+insert_expand| feature was
disabled at compile time.

Completion can be done for:

1. Whole lines						|i_CTRL-X_CTRL-L|
2. keywords in the current file				|i_CTRL-X_CTRL-N|
3. keywords in 'dictionary'				|i_CTRL-X_CTRL-K|
4. keywords in 'thesaurus', thesaurus-style		|i_CTRL-X_CTRL-T|
5. keywords in the current and included files		|i_CTRL-X_CTRL-I|
6. tags							|i_CTRL-X_CTRL-]|
7. file names						|i_CTRL-X_CTRL-F|
8. definitions or macros				|i_CTRL-X_CTRL-D|
9. Vim command-line					|i_CTRL-X_CTRL-V|
10. User defined completion				|i_CTRL-X_CTRL-U|
11. omni completion					|i_CTRL-X_CTRL-O|
12. Spelling suggestions				|i_CTRL-X_s|
13. keywords in 'complete'				|i_CTRL-N| |i_CTRL-P|

All these, except CTRL-N and CTRL-P, are done in CTRL-X mode.  This is a
sub-mode of Insert and Replace modes.  You enter CTRL-X mode by typing CTRL-X
and one of the CTRL-X commands.  You exit CTRL-X mode by typing a key that is
not a valid CTRL-X mode command.  Valid keys are the CTRL-X command itself,
CTRL-N (next), and CTRL-P (previous).

Also see the 'infercase' option if you want to adjust the case of the match.

							*complete_CTRL-E*
When completion is active you can use CTRL-E to stop it and go back to the
originally typed text.  The CTRL-E will not be inserted.

							*complete_CTRL-Y*
When the popup menu is displayed you can use CTRL-Y to stop completion and
accept the currently selected entry.  The CTRL-Y is not inserted.  Typing a
space, Enter, or some other unprintable character will leave completion mode
and insert that typed character.

When the popup menu is displayed there are a few more special keys, see
|popupmenu-keys|.

Note: The keys that are valid in CTRL-X mode are not mapped.  This allows for
":map ^F ^X^F" to work (where ^F is CTRL-F and ^X is CTRL-X).  The key that
ends CTRL-X mode (any key that is not a valid CTRL-X mode command) is mapped.
Also, when doing completion with 'complete' mappings apply as usual.

Note: While completion is active Insert mode can't be used recursively.
Mappings that somehow invoke ":normal i.." will generate an E523 error.

The following mappings are suggested to make typing the completion commands
a bit easier (although they will hide other commands): >
    :inoremap ^] ^X^]
    :inoremap ^F ^X^F
    :inoremap ^D ^X^D
    :inoremap ^L ^X^L

As a special case, typing CTRL-R to perform register insertion (see
|i_CTRL-R|) will not exit CTRL-X mode.  This is primarily to allow the use of
the '=' register to call some function to determine the next operation.  If
the contents of the register (or result of the '=' register evaluation) are
not valid CTRL-X mode keys, then CTRL-X mode will be exited as if those keys
had been typed.

For example, the following will map <Tab> to either actually insert a <Tab> if
the current line is currently only whitespace, or start/continue a CTRL-N
completion operation: >

	function! CleverTab()
	   if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
	      return "\<Tab>"
	   else
	      return "\<C-N>"
	   endif
	endfunction
	inoremap <Tab> <C-R>=CleverTab()<CR>



Completing whole lines					*compl-whole-line*

							*i_CTRL-X_CTRL-L*
CTRL-X CTRL-L		Search backwards for a line that starts with the
			same characters as those in the current line before
			the cursor.  Indent is ignored.  The matching line is
			inserted in front of the cursor.
			The 'complete' option is used to decide which buffers
			are searched for a match.  Both loaded and unloaded
			buffers are used.
	CTRL-L	or
	CTRL-P		Search backwards for next matching line.  This line
			replaces the previous matching line.

	CTRL-N		Search forward for next matching line.  This line
			replaces the previous matching line.

	CTRL-X CTRL-L	After expanding a line you can additionally get the
			line next to it by typing CTRL-X CTRL-L again, unless
			a double CTRL-X is used.  Only works for loaded
			buffers.

Completing keywords in current file			*compl-current*

							*i_CTRL-X_CTRL-P*
							*i_CTRL-X_CTRL-N*
CTRL-X CTRL-N		Search forwards for words that start with the keyword
			in front of the cursor.  The found keyword is inserted
			in front of the cursor.

CTRL-X CTRL-P		Search backwards for words that start with the keyword
			in front of the cursor.  The found keyword is inserted
			in front of the cursor.

	CTRL-N		Search forward for next matching keyword.  This
			keyword replaces the previous matching keyword.

	CTRL-P		Search backwards for next matching keyword.  This
			keyword replaces the previous matching keyword.

	CTRL-X CTRL-N or
	CTRL-X CTRL-P	Further use of CTRL-X CTRL-N or CTRL-X CTRL-P will
			copy the words following the previous expansion in
			other contexts unless a double CTRL-X is used.

If there is a keyword in front of the cursor (a name made out of alphabetic
characters and characters in 'iskeyword'), it is used as the search pattern,
with "\<" prepended (meaning: start of a word).  Otherwise "\<\k\k" is used
as search pattern (start of any keyword of at least two characters).

In Replace mode, the number of characters that are replaced depends on the
length of the matched string.  This works like typing the characters of the
matched string in Replace mode.

If there is not a valid keyword character before the cursor, any keyword of
at least two characters is matched.
	e.g., to get:
	    printf("(%g, %g, %g)", vector[0], vector[1], vector[2]);
	just type:
	    printf("(%g, %g, %g)", vector[0], ^P[1], ^P[2]);

The search wraps around the end of the file, the value of 'wrapscan' is not
used here.

Multiple repeats of the same completion are skipped; thus a different match
will be inserted at each CTRL-N and CTRL-P (unless there is only one
matching keyword).

Single character matches are never included, as they usually just get in
the way of what you were really after.
	e.g., to get:
		printf("name = %s\n", name);
	just type:
		printf("name = %s\n", n^P);
	or even:
		printf("name = %s\n", ^P);
The 'n' in '\n' is skipped.

After expanding a word, you can use CTRL-X CTRL-P or CTRL-X CTRL-N to get the
word following the expansion in other contexts.  These sequences search for
the text just expanded and further expand by getting an extra word.  This is
useful if you need to repeat a sequence of complicated words.  Although CTRL-P
and CTRL-N look just for strings of at least two characters, CTRL-X CTRL-P and
CTRL-X CTRL-N can be used to expand words of just one character.
	e.g., to get:
		M&eacute;xico
	you can type:
		M^N^P^X^P^X^P
CTRL-N starts the expansion and then CTRL-P takes back the single character
"M", the next two CTRL-X CTRL-P's get the words "&eacute" and ";xico".

If the previous expansion was split, because it got longer than 'textwidth',
then just the text in the current line will be used.

If the match found is at the end of a line, then the first word in the next
line will be inserted and the message "word from next line" displayed, if
this word is accepted the next CTRL-X CTRL-P or CTRL-X CTRL-N will search
for those lines starting with this word.


Completing keywords in 'dictionary'			*compl-dictionary*

							*i_CTRL-X_CTRL-K*
CTRL-X CTRL-K		Search the files given with the 'dictionary' option
			for words that start with the keyword in front of the
			cursor.  This is like CTRL-N, but only the dictionary
			files are searched, not the current file.  The found
			keyword is inserted in front of the cursor.  This
			could potentially be pretty slow, since all matches
			are found before the first match is used.  By default,
			the 'dictionary' option is empty.
			For suggestions where to find a list of words, see the
			'dictionary' option.

	CTRL-K	or
	CTRL-N		Search forward for next matching keyword.  This
			keyword replaces the previous matching keyword.

	CTRL-P		Search backwards for next matching keyword.  This
			keyword replaces the previous matching keyword.

							*i_CTRL-X_CTRL-T*
CTRL-X CTRL-T		Works as CTRL-X CTRL-K, but in a special way.  It uses
			the 'thesaurus' option instead of 'dictionary'.  If a
			match is found in the thesaurus file, all the
			remaining words on the same line are included as
			matches, even though they don't complete the word.
			Thus a word can be completely replaced.

			For an example, imagine the 'thesaurus' file has a
			line like this: >
				angry furious mad enraged
<			Placing the cursor after the letters "ang" and typing
			CTRL-X CTRL-T would complete the word "angry";
			subsequent presses would change the word to "furious",
			"mad" etc.
			Other uses include translation between two languages,
			or grouping API functions by keyword.

	CTRL-T	or
	CTRL-N		Search forward for next matching keyword.  This
			keyword replaces the previous matching keyword.

	CTRL-P		Search backwards for next matching keyword.  This
			keyword replaces the previous matching keyword.


Completing keywords in the current and included files	*compl-keyword*

The 'include' option is used to specify a line that contains an include file
name.  The 'path' option is used to search for include files.

							*i_CTRL-X_CTRL-I*
CTRL-X CTRL-I		Search for the first keyword in the current and
			included files that starts with the same characters
			as those before the cursor.  The matched keyword is
			inserted in front of the cursor.

	CTRL-N		Search forwards for next matching keyword.  This
			keyword replaces the previous matching keyword.
			Note: CTRL-I is the same as <Tab>, which is likely to
			be typed after a successful completion, therefore
			CTRL-I is not used for searching for the next match.

	CTRL-P		Search backward for previous matching keyword.  This
			keyword replaces the previous matching keyword.

	CTRL-X CTRL-I	Further use of CTRL-X CTRL-I will copy the words
			following the previous expansion in other contexts
			unless a double CTRL-X is used.

Completing tags						*compl-tag*
							*i_CTRL-X_CTRL-]*
CTRL-X CTRL-]		Search for the first tag that starts with the same
			characters as before the cursor.  The matching tag is
			inserted in front of the cursor.  Alphabetic
			characters and characters in 'iskeyword' are used
			to decide which characters are included in the tag
			name (same as for a keyword).  See also |CTRL-]|.
			The 'showfulltag' option can be used to add context
			from around the tag definition.
	CTRL-]	or
	CTRL-N		Search forwards for next matching tag.  This tag
			replaces the previous matching tag.

	CTRL-P		Search backward for previous matching tag.  This tag
			replaces the previous matching tag.


Completing file names					*compl-filename*
							*i_CTRL-X_CTRL-F*
CTRL-X CTRL-F		Search for the first file name that starts with the
			same characters as before the cursor.  The matching
			file name is inserted in front of the cursor.
			Alphabetic characters and characters in 'isfname'
			are used to decide which characters are included in
			the file name.  Note: the 'path' option is not used
			here (yet).
	CTRL-F	or
	CTRL-N		Search forwards for next matching file name.  This
			file name replaces the previous matching file name.

	CTRL-P		Search backward for previous matching file name.
			This file name replaces the previous matching file
			name.


Completing definitions or macros			*compl-define*

The 'define' option is used to specify a line that contains a definition.
The 'include' option is used to specify a line that contains an include file
name.  The 'path' option is used to search for include files.

							*i_CTRL-X_CTRL-D*
CTRL-X CTRL-D		Search in the current and included files for the
			first definition (or macro) name that starts with
			the same characters as before the cursor.  The found
			definition name is inserted in front of the cursor.
	CTRL-D	or
	CTRL-N		Search forwards for next matching macro name.  This
			macro name replaces the previous matching macro
			name.

	CTRL-P		Search backward for previous matching macro name.
			This macro name replaces the previous matching macro
			name.

	CTRL-X CTRL-D	Further use of CTRL-X CTRL-D will copy the words
			following the previous expansion in other contexts
			unless a double CTRL-X is used.


Completing Vim commands					*compl-vim*

Completion is context-sensitive.  It works like on the Command-line.  It
completes an Ex command as well as its arguments.  This is useful when writing
a Vim script.

							*i_CTRL-X_CTRL-V*
CTRL-X CTRL-V		Guess what kind of item is in front of the cursor and
			find the first match for it.
			Note: When CTRL-V is mapped you can often use CTRL-Q
			instead of |i_CTRL-Q|.
	CTRL-V	or
	CTRL-N		Search forwards for next match.  This match replaces
			the previous one.

	CTRL-P		Search backwards for previous match.  This match
			replaces the previous one.

	CTRL-X CTRL-V	Further use of CTRL-X CTRL-V will do the same as
			CTRL-V.  This allows mapping a key to do Vim command
			completion, for example: >
				:imap <Tab> <C-X><C-V>

User defined completion					*compl-function*

Completion is done by a function that can be defined by the user with the
'completefunc' option.  See below for how the function is called and an
example |complete-functions|.

							*i_CTRL-X_CTRL-U*
CTRL-X CTRL-U		Guess what kind of item is in front of the cursor and
			find the first match for it.
	CTRL-U	or
	CTRL-N		Use the next match.  This match replaces the previous
			one.

	CTRL-P		Use the previous match.  This match replaces the
			previous one.


Omni completion						*compl-omni*

Completion is done by a function that can be defined by the user with the
'omnifunc' option.  This is to be used for filetype-specific completion.

See below for how the function is called and an example |complete-functions|.
For remarks about specific filetypes see |compl-omni-filetypes|.
More completion scripts will appear, check www.vim.org.  Currently there is a
first version for C++.

							*i_CTRL-X_CTRL-O*
CTRL-X CTRL-O		Guess what kind of item is in front of the cursor and
			find the first match for it.
	CTRL-O	or
	CTRL-N		Use the next match.  This match replaces the previous
			one.

	CTRL-P		Use the previous match.  This match replaces the
			previous one.


Spelling suggestions					*compl-spelling*

A word before or at the cursor is located and correctly spelled words are
suggested to replace it.  If there is a badly spelled word in the line, before
or under the cursor, the cursor is moved to after it.  Otherwise the word just
before the cursor is used for suggestions, even though it isn't badly spelled.

NOTE: CTRL-S suspends display in many Unix terminals.  Use 's' instead.  Type
CTRL-Q to resume displaying.

						*i_CTRL-X_CTRL-S* *i_CTRL-X_s*
CTRL-X CTRL-S   or
CTRL-X s		Locate the word in front of the cursor and find the
			first spell suggestion for it.
	CTRL-S	or
	CTRL-N		Use the next suggestion.  This replaces the previous
			one.  Note that you can't use 's' here.

	CTRL-P		Use the previous suggestion.  This replaces the
			previous one.


Completing keywords from different sources		*compl-generic*

							*i_CTRL-N*
CTRL-N			Find next match for words that start with the
			keyword in front of the cursor, looking in places
			specified with the 'complete' option.  The found
			keyword is inserted in front of the cursor.

							*i_CTRL-P*
CTRL-P			Find previous match for words that start with the
			keyword in front of the cursor, looking in places
			specified with the 'complete' option.  The found
			keyword is inserted in front of the cursor.

	CTRL-N		Search forward for next matching keyword.  This
			keyword replaces the previous matching keyword.

	CTRL-P		Search backwards for next matching keyword.  This
			keyword replaces the previous matching keyword.

	CTRL-X CTRL-N or
	CTRL-X CTRL-P	Further use of CTRL-X CTRL-N or CTRL-X CTRL-P will
			copy the words following the previous expansion in
			other contexts unless a double CTRL-X is used.


FUNCTIONS FOR FINDING COMPLETIONS			*complete-functions*

This applies to 'completefunc' and 'omnifunc'.

The function is called in two different ways:
- First the function is called to find the start of the text to be completed.
- Later the function is called to actually find the matches.

On the first invocation the arguments are:
   a:findstart  1
   a:base	empty

The function must return the column where the completion starts.  It must be a
number between zero and the cursor column "col('.')".  This involves looking
at the characters just before the cursor and including those characters that
could be part of the completed item.  The text between this column and the
cursor column will be replaced with the matches.

Special return values:
   -1 If no completion can be done, the completion will be cancelled with an
      error message.
   -2 To cancel silently and stay in completion mode.
   -3 To cancel silently and leave completion mode.

On the second invocation the arguments are:
   a:findstart  0
   a:base	the text with which matches should match; the text that was
		located in the first call (can be empty)

The function must return a List with the matching words.  These matches
usually include the "a:base" text.  When there are no matches return an empty
List.

In order to return more information than the matching words, return a Dict
that contains the List.  The Dict can have these items:
	words		The List of matching words (mandatory).
	refresh		A string to control re-invocation of the function
			(optional).
			The only value currently recognized is "always", the
			effect is that the function is called whenever the
			leading text is changed.
Other items are ignored.

For acting upon end of completion, see the |CompleteDone| autocommand event.

For example, the function can contain this: >
	let matches = ... list of words ...
	return {'words': matches, 'refresh': 'always'}
<
						*complete-items*
Each list item can either be a string or a Dictionary.  When it is a string it
is used as the completion.  When it is a Dictionary it can contain these
items:
	word		the text that will be inserted, mandatory
	abbr		abbreviation of "word"; when not empty it is used in
			the menu instead of "word"
	menu		extra text for the popup menu, displayed after "word"
			or "abbr"
	info		more information about the item, can be displayed in a
			preview window
	kind		single letter indicating the type of completion
	icase		when non-zero case is to be ignored when comparing
			items to be equal; when omitted zero is used, thus
			items that only differ in case are added
	dup		when non-zero this match will be added even when an
			item with the same word is already present.
	empty		when non-zero this match will be added even when it is
			an empty string
	user_data 	custom data which is associated with the item and
			available in |v:completed_item|

All of these except "icase", "dup" and "empty" must be a string.  If an item
does not meet these requirements then an error message is given and further
items in the list are not used.  You can mix string and Dictionary items in
the returned list.

The "menu" item is used in the popup menu and may be truncated, thus it should
be relatively short.  The "info" item can be longer, it will  be displayed in
the preview window when "preview" appears in 'completeopt'.  The "info" item
will also remain displayed after the popup menu has been removed.  This is
useful for function arguments.  Use a single space for "info" to remove
existing text in the preview window.  The size of the preview window is three
lines, but 'previewheight' is used when it has a value of 1 or 2.

The "kind" item uses a single letter to indicate the kind of completion.  This
may be used to show the completion differently (different color or icon).
Currently these types can be used:
	v	variable
	f	function or method
	m	member of a struct or class
	t	typedef
	d	#define or macro

When searching for matches takes some time call |complete_add()| to add each
match to the total list.  These matches should then not appear in the returned
list!  Call |complete_check()| now and then to allow the user to press a key
while still searching for matches.  Stop searching when it returns non-zero.

							*E839* *E840*
The function is allowed to move the cursor, it is restored afterwards.
The function is not allowed to move to another window or delete text.

An example that completes the names of the months: >
	fun! CompleteMonths(findstart, base)
	  if a:findstart
	    " locate the start of the word
	    let line = getline('.')
	    let start = col('.') - 1
	    while start > 0 && line[start - 1] =~ '\a'
	      let start -= 1
	    endwhile
	    return start
	  else
	    " find months matching with "a:base"
	    let res = []
	    for m in split("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec")
	      if m =~ '^' . a:base
		call add(res, m)
	      endif
	    endfor
	    return res
	  endif
	endfun
	set completefunc=CompleteMonths
<
The same, but now pretending searching for matches is slow: >
	fun! CompleteMonths(findstart, base)
	  if a:findstart
	    " locate the start of the word
	    let line = getline('.')
	    let start = col('.') - 1
	    while start > 0 && line[start - 1] =~ '\a'
	      let start -= 1
	    endwhile
	    return start
	  else
	    " find months matching with "a:base"
	    for m in split("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec")
	      if m =~ '^' . a:base
		call complete_add(m)
	      endif
	      sleep 300m	" simulate searching for next match
	      if complete_check()
		break
	      endif
	    endfor
	    return []
	  endif
	endfun
	set completefunc=CompleteMonths
<

INSERT COMPLETION POPUP MENU				*ins-completion-menu*
							*popupmenu-completion*
Vim can display the matches in a simplistic popup menu.

The menu is used when:
- The 'completeopt' option contains "menu" or "menuone".
- The terminal supports at least 8 colors.
- There are at least two matches.  One if "menuone" is used.

The 'pumheight' option can be used to set a maximum height.  The default is to
use all space available.
The 'pumwidth' option can be used to set a minimum width.  The default is 15
characters.

There are three states:
1. A complete match has been inserted, e.g., after using CTRL-N or CTRL-P.
2. A cursor key has been used to select another match.  The match was not
   inserted then, only the entry in the popup menu is highlighted.
3. Only part of a match has been inserted and characters were typed or the
   backspace key was used.  The list of matches was then adjusted for what is
   in front of the cursor.

You normally start in the first state, with the first match being inserted.
When "longest" is in 'completeopt' and there is more than one match you start
in the third state.

If you select another match, e.g., with CTRL-N or CTRL-P, you go to the first
state.  This doesn't change the list of matches.

When you are back at the original text then you are in the third state.  To
get there right away you can use a mapping that uses CTRL-P right after
starting the completion: >
	:imap <F7> <C-N><C-P>
<
						*popupmenu-keys*
In the first state these keys have a special meaning:
<BS> and CTRL-H   Delete one character, find the matches for the word before
		  the cursor.  This reduces the list of matches, often to one
		  entry, and switches to the second state.
Any non-special character:
		  Stop completion without changing the match and insert the
		  typed character.

In the second and third state these keys have a special meaning:
<BS> and CTRL-H   Delete one character, find the matches for the shorter word
		  before the cursor.  This may find more matches.
CTRL-L		  Add one character from the current match, may reduce the
		  number of matches.
any printable, non-white character:
		  Add this character and reduce the number of matches.

In all three states these can be used:
CTRL-Y		  Yes: Accept the currently selected match and stop completion.
CTRL-E		  End completion, go back to what was there before selecting a
		  match (what was typed or longest common string).
<PageUp>	  Select a match several entries back, but don't insert it.
<PageDown>	  Select a match several entries further, but don't insert it.
<Up>		  Select the previous match, as if CTRL-P was used, but don't
		  insert it.
<Down>		  Select the next match, as if CTRL-N was used, but don't
		  insert it.
<Space> or <Tab>  Stop completion without changing the match and insert the
		  typed character.

The behavior of the <Enter> key depends on the state you are in:
first state:	  Use the text as it is and insert a line break.
second state:	  Insert the currently selected match.
third state:	  Use the text as it is and insert a line break.

In other words: If you used the cursor keys to select another entry in the
list of matches then the <Enter> key inserts that match.  If you typed
something else then <Enter> inserts a line break.


The colors of the menu can be changed with these highlight groups:
Pmenu		normal item  |hl-Pmenu|
PmenuSel	selected item  |hl-PmenuSel|
PmenuSbar	scrollbar  |hl-PmenuSbar|
PmenuThumb	thumb of the scrollbar  |hl-PmenuThumb|

There are no special mappings for when the popup menu is visible.  However,
you can use an Insert mode mapping that checks the |pumvisible()| function to
do something different.  Example: >
	:inoremap <Down> <C-R>=pumvisible() ? "\<lt>C-N>" : "\<lt>Down>"<CR>

You can use of <expr> in mapping to have the popup menu used when typing a
character and some condition is met.  For example, for typing a dot: >
	inoremap <expr> . MayComplete()
	func MayComplete()
	    if (can complete)
	      return ".\<C-X>\<C-O>"
	    endif
	    return '.'
	endfunc

See |:map-<expr>| for more info.


FILETYPE-SPECIFIC REMARKS FOR OMNI COMPLETION	    *compl-omni-filetypes*

The file used for {filetype} should be autoload/{filetype}complete.vim
in 'runtimepath'.  Thus for "java" it is autoload/javacomplete.vim.


C							*ft-c-omni*

Completion of C code requires a tags file.  You should use Exuberant ctags,
because it adds extra information that is needed for completion.  You can find
it here: http://ctags.sourceforge.net/  Version 5.6 or later is recommended.

For version 5.5.4 you should add a patch that adds the "typename:" field:
	ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
A compiled .exe for MS-Windows can be found at:
	http://ctags.sourceforge.net/
	https://github.com/universal-ctags/ctags-win32

If you want to complete system functions you can do something like this.  Use
ctags to generate a tags file for all the system header files: >
	% ctags -R -f ~/.vim/systags /usr/include /usr/local/include
In your vimrc file add this tags file to the 'tags' option: >
	set tags+=~/.vim/systags

When using CTRL-X CTRL-O after a name without any "." or "->" it is completed
from the tags file directly.  This works for any identifier, also function
names.  If you want to complete a local variable name, which does not appear
in the tags file, use CTRL-P instead.

When using CTRL-X CTRL-O after something that has "." or "->" Vim will attempt
to recognize the type of the variable and figure out what members it has.
This means only members valid for the variable will be listed.

When a member name already was complete, CTRL-X CTRL-O will add a "." or
"->" for composite types.

Vim doesn't include a C compiler, only the most obviously formatted
declarations are recognized.  Preprocessor stuff may cause confusion.
When the same structure name appears in multiple places all possible members
are included.


CSS							*ft-css-omni*

Complete properties and their appropriate values according to CSS 2.1
specification.


HTML							*ft-html-omni*
XHTML							*ft-xhtml-omni*

CTRL-X CTRL-O provides completion of various elements of (X)HTML files.  It is
designed to support writing of XHTML 1.0 Strict files but will also work for
other versions of HTML. Features:

- after "<" complete tag name depending on context (no div suggestion inside
  of an a tag); '/>' indicates empty tags
- inside of tag complete proper attributes (no width attribute for an a tag);
  show also type of attribute; '*' indicates required attributes
- when attribute has limited number of possible values help to complete them
- complete names of entities
- complete values of "class" and "id" attributes with data obtained from
  <style> tag and included CSS files
- when completing value of "style" attribute or working inside of "style" tag
  switch to |ft-css-omni| completion
- when completing values of events attributes or working inside of "script"
  tag switch to |ft-javascript-omni| completion
- when used after "</" CTRL-X CTRL-O will close the last opened tag

Note: When used first time completion menu will be shown with little delay
- this is time needed for loading of data file.
Note: Completion may fail in badly formatted documents. In such case try to
run |:make| command to detect formatting problems.


HTML flavor						*html-flavor*

The default HTML completion depends on the filetype.  For HTML files it is
HTML 4.01 Transitional ('filetype' is "html"), for XHTML it is XHTML 1.0
Strict ('filetype' is "xhtml").

When doing completion outside of any other tag you will have possibility to
choose DOCTYPE and the appropriate data file will be loaded and used for all
next completions.

More about format of data file in |xml-omni-datafile|. Some of the data files
may be found on the Vim website (|www|).

Note that b:html_omni_flavor may point to a file with any XML data.  This
makes possible to mix PHP (|ft-php-omni|) completion with any XML dialect
(assuming you have data file for it).  Without setting that variable XHTML 1.0
Strict will be used.


JAVASCRIPT					       *ft-javascript-omni*

Completion of most elements of JavaScript language and DOM elements.

Complete:

- variables
- function name; show function arguments
- function arguments
- properties of variables trying to detect type of variable
- complete DOM objects and properties depending on context
- keywords of language

Completion works in separate JavaScript files (&ft==javascript), inside of
<script> tag of (X)HTML and in values of event attributes (including scanning
of external files).

DOM compatibility

At the moment (beginning of 2006) there are two main browsers - MS Internet
Explorer and Mozilla Firefox. These two applications are covering over 90% of
market. Theoretically standards are created by W3C organisation
(http://www.w3c.org) but they are not always followed/implemented.

		IE	FF	W3C  Omni completion ~
		+/-	+/-	+    +		     ~
		+	+	-    +		     ~
		+	-	-    -		     ~
		-	+	-    -		     ~

Regardless from state of implementation in browsers but if element is defined
in standards, completion plugin will place element in suggestion list. When
both major engines implemented element, even if this is not in standards it
will be suggested. All other elements are not placed in suggestion list.


PHP							*ft-php-omni*

Completion of PHP code requires a tags file for completion of data from
external files and for class aware completion. You should use Exuberant ctags
version 5.5.4 or newer. You can find it here: http://ctags.sourceforge.net/

Script completes:

- after $ variables name
  - if variable was declared as object add "->", if tags file is available show
    name of class
  - after "->" complete only function and variable names specific for given
    class. To find class location and contents tags file is required. Because
    PHP isn't strongly typed language user can use @var tag to declare class: >

	/* @var $myVar myClass */
	$myVar->
<
    Still, to find myClass contents tags file is required.

- function names with additional info:
  - in case of built-in functions list of possible arguments and after | type
    data returned by function
  - in case of user function arguments and name of file where function was
    defined (if it is not current file)

- constants names
- class names after "new" declaration


Note: when doing completion first time Vim will load all necessary data into
memory. It may take several seconds. After next use of completion delay
should not be noticeable.

Script detects if cursor is inside <?php ?> tags. If it is outside it will
automatically switch to HTML/CSS/JavaScript completion. Note: contrary to
original HTML files completion of tags (and only tags) isn't context aware.


RUBY							*ft-ruby-omni*

Completion of Ruby code requires that vim be built with |+ruby|.

Ruby completion will parse your buffer on demand in order to provide a list of
completions.  These completions will be drawn from modules loaded by 'require'
and modules defined in the current buffer.

The completions provided by CTRL-X CTRL-O are sensitive to the context:

	  CONTEXT			   COMPLETIONS PROVIDED ~

 1. Not inside a class definition    Classes, constants and globals

 2. Inside a class definition	     Methods or constants defined in the class

 3. After '.', '::' or ':'	     Methods applicable to the object being
				       dereferenced

 4. After ':' or ':foo'		     Symbol name (beginning with 'foo')

Notes:
 - Vim will load/evaluate code in order to provide completions.  This may
   cause some code execution, which may be a concern. This is no longer
   enabled by default, to enable this feature add >
     let g:rubycomplete_buffer_loading = 1
<- In context 1 above, Vim can parse the entire buffer to add a list of
   classes to the completion results. This feature is turned off by default,
   to enable it add >
     let g:rubycomplete_classes_in_global = 1
<  to your vimrc
 - In context 2 above, anonymous classes are not supported.
 - In context 3 above, Vim will attempt to determine the methods supported by
   the object.
 - Vim can detect and load the Rails environment for files within a rails
   project. The feature is disabled by default, to enable it add >
     let g:rubycomplete_rails = 1
<  to your vimrc


SYNTAX							*ft-syntax-omni*

Vim has the ability to color syntax highlight nearly 500 languages.  Part of
this highlighting includes knowing what keywords are part of a language.  Many
filetypes already have custom completion scripts written for them, the
syntaxcomplete plugin provides basic completion for all other filetypes.  It
does this by populating the omni completion list with the text Vim already
knows how to color highlight.  It can be used for any filetype and provides a
minimal language-sensitive completion.

To enable syntax code completion you can run: >
    setlocal omnifunc=syntaxcomplete#Complete

You can automate this by placing the following in your |.vimrc| (after any
":filetype" command): >
    if has("autocmd") && exists("+omnifunc")
	autocmd Filetype *
		    \	if &omnifunc == "" |
		    \		setlocal omnifunc=syntaxcomplete#Complete |
		    \	endif
    endif

The above will set completion to this script only if a specific plugin does
not already exist for that filetype.

Each filetype can have a wide range of syntax items.  The plugin allows you to
customize which syntax groups to include or exclude from the list.  Let's have
a look at the PHP filetype to see how this works.

If you edit a file called, index.php, run the following command: >
    syntax list

The first thing you will notice is that there are many different syntax groups.
The PHP language can include elements from different languages like HTML,
JavaScript and many more.  The syntax plugin will only include syntax groups
that begin with the filetype, "php", in this case.  For example these syntax
groups are included by default with the PHP: phpEnvVar, phpIntVar,
phpFunctions.

If you wish non-filetype syntax items to also be included, you can use a
regular expression syntax (added in version 13.0 of
autoload\syntaxcomplete.vim) to add items.  Looking at the output from
":syntax list" while editing a PHP file I can see some of these entries: >
    htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects

To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
file, you can use 3 different regexs, one for each language.  Or you can
simply restrict the include groups to a particular value, without using
a regex string: >
    let g:omni_syntax_group_include_php = 'php\w\+,javaScript\w\+,html\w\+'
    let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods'
<
The basic form of this variable is: >
    let g:omni_syntax_group_include_{filetype} = 'regex,comma,separated'

The PHP language has an enormous number of items which it knows how to syntax
highlight.  These items will be available within the omni completion list.

Some people may find this list unwieldy or are only interested in certain
items.  There are two ways to prune this list (if necessary).  If you find
certain syntax groups you do not wish displayed you can use two different
methods to identify these groups.  The first specifically lists the syntax
groups by name.  The second uses a regular expression to identify both
syntax groups.  Simply add one the following to your vimrc: >
    let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant'
    let g:omni_syntax_group_exclude_php = 'php\w*Constant'

Add as many syntax groups to this list by comma separating them.  The basic
form of this variable is: >
    let g:omni_syntax_group_exclude_{filetype} = 'regex,comma,separated'

You can create as many of these variables as you need, varying only the
filetype at the end of the variable name.

The plugin uses the isKeyword option to determine where word boundaries are
for the syntax items.  For example, in the Scheme language completion should
include the "-", call-with-output-file.  Depending on your filetype, this may
not provide the words you are expecting.  Setting the
g:omni_syntax_use_iskeyword option to 0 will force the syntax plugin to break
on word characters.   This can be controlled adding the following to your
vimrc: >
    let g:omni_syntax_use_iskeyword = 0

For plugin developers, the plugin exposes a public function OmniSyntaxList.
This function can be used to request a List of syntax items.  When editing a
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
various groups and syntax items.  For example: >
    syntax list

Yields data similar to this:
    sqlOperator    xxx some prior all like and any escape exists in is not ~
                       or intersect minus between distinct ~
                       links to Operator ~
    sqlType        xxx varbit varchar nvarchar bigint int uniqueidentifier ~
                       date money long tinyint unsigned xml text smalldate ~
                       double datetime nchar smallint numeric time bit char ~
                       varbinary binary smallmoney ~
                       image float integer timestamp real decimal ~

There are two syntax groups listed here: sqlOperator and sqlType.  To retrieve
a List of syntax items you can call OmniSyntaxList a number of different
ways.  To retrieve all syntax items regardless of syntax group:  >
    echo OmniSyntaxList( [] )

To retrieve only the syntax items for the sqlOperator syntax group: >
    echo OmniSyntaxList( ['sqlOperator'] )

To retrieve all syntax items for both the sqlOperator and sqlType groups: >
    echo OmniSyntaxList( ['sqlOperator', 'sqlType'] )

A regular expression can also be used: >
    echo OmniSyntaxList( ['sql\w\+'] )

From within a plugin, you would typically assign the output to a List: >
    let myKeywords = []
    let myKeywords = OmniSyntaxList( ['sqlKeyword'] )


SQL							*ft-sql-omni*

Completion for the SQL language includes statements, functions, keywords.
It will also dynamically complete tables, procedures, views and column lists
with data pulled directly from within a database.  For detailed instructions
and a tutorial see |omni-sql-completion|.

The SQL completion plugin can be used in conjunction with other completion
plugins.  For example, the PHP filetype has its own completion plugin.
Since PHP is often used to generate dynamic website by accessing a database,
the SQL completion plugin can also be enabled.  This allows you to complete
PHP code and SQL code at the same time.


XML							*ft-xml-omni*

Vim 7 provides a mechanism for context aware completion of XML files.  It
depends on a special |xml-omni-datafile| and two commands: |:XMLns| and
|:XMLent|.  Features are:

- after "<" complete the tag name, depending on context
- inside of a tag complete proper attributes
- when an attribute has a limited number of possible values help to complete
  them
- complete names of entities (defined in |xml-omni-datafile| and in the
  current file with "<!ENTITY" declarations)
- when used after "</" CTRL-X CTRL-O will close the last opened tag

Format of XML data file					*xml-omni-datafile*

XML data files are stored in the "autoload/xml" directory in 'runtimepath'.
Vim distribution provides examples of data files in the
"$VIMRUNTIME/autoload/xml" directory.  They have a meaningful name which will
be used in commands.  It should be a unique name which will not create
conflicts.  For example, the name xhtml10s.vim means it is the data file for
XHTML 1.0 Strict.

Each file contains a variable with a name like g:xmldata_xhtml10s . It is
a compound from two parts:

1. "g:xmldata_"  general prefix, constant for all data files
2. "xhtml10s"    the name of the file and the name of the described XML
		 dialect; it will be used as an argument for the |:XMLns|
		 command

Part two must be exactly the same as name of file.

The variable is a |Dictionary|.  Keys are tag names and each value is a two
element |List|.  The first element of the List is also a List with the names
of possible children.  The second element is a |Dictionary| with the names of
attributes as keys and the possible values of attributes as values.  Example: >

    let g:xmldata_crippled = {
    \ "vimxmlentities": ["amp", "lt", "gt", "apos", "quot"],
    \ 'vimxmlroot': ['tag1'],
    \ 'tag1':
    \ [ ['childoftag1a', 'childoftag1b'], {'attroftag1a': [],
    \ 'attroftag1b': ['valueofattr1', 'valueofattr2']}],
    \ 'childoftag1a':
    \ [ [], {'attrofchild': ['attrofchild']}],
    \ 'childoftag1b':
    \ [ ['childoftag1a'], {'attrofchild': []}],
    \ "vimxmltaginfo": {
    \ 'tag1': ['Menu info', 'Long information visible in preview window']},
    \ 'vimxmlattrinfo': {
    \ 'attrofchild': ['Menu info', 'Long information visible in preview window']}}

This example would be put in the "autoload/xml/crippled.vim" file and could
help to write this file: >

    <tag1 attroftag1b="valueofattr1">
        <childoftag1a attrofchild>
                &amp; &lt;
        </childoftag1a>
        <childoftag1b attrofchild="5">
            <childoftag1a>
                &gt; &apos; &quot;
            </childoftag1a>
        </childoftag1b>
    </tag1>

In the example four special elements are visible:

1. "vimxmlentities" - a special key with List containing entities of this XML
   dialect.
2. If the list containing possible values of attributes has one element and
   this element is equal to the name of the attribute this attribute will be
   treated as boolean and inserted as 'attrname' and not as 'attrname="'
3. "vimxmltaginfo" - a special key with a Dictionary containing tag
   names as keys and two element List as values, for additional menu info and
   the long description.
4. "vimxmlattrinfo" - special key with Dictionary containing attribute names
   as keys and two element List as values, for additional menu info and long
   description.

Note: Tag names in the data file MUST not contain a namespace description.
Check xsl.vim for an example.
Note: All data and functions are publicly available as global
variables/functions and can be used for personal editing functions.


DTD -> Vim							*dtd2vim*

On |www| is the script |dtd2vim| which parses DTD and creates an XML data file
for Vim XML omni completion.

    dtd2vim: http://www.vim.org/scripts/script.php?script_id=1462

Check the beginning of that file for usage details.
The script requires perl and:

    perlSGML: http://savannah.nongnu.org/projects/perlsgml


Commands

:XMLns {name} [{namespace}]					*:XMLns*

Vim has to know which data file should be used and with which namespace.  For
loading of the data file and connecting data with the proper namespace use
|:XMLns| command.  The first (obligatory) argument is the name of the data
(xhtml10s, xsl).  The second argument is the code of namespace (h, xsl).  When
used without a second argument the dialect will be used as default - without
namespace declaration.  For example to use XML completion in .xsl files: >

	:XMLns xhtml10s
	:XMLns xsl xsl


:XMLent {name}							*:XMLent*

By default entities will be completed from the data file of the default
namespace.  The XMLent command should be used in case when there is no default
namespace: >

	:XMLent xhtml10s

Usage

While used in this situation (after declarations from previous part, | is
cursor position): >

	<|

Will complete to an appropriate XHTML tag, and in this situation: >

	<xsl:|

Will complete to an appropriate XSL tag.


The script xmlcomplete.vim, provided through the |autoload| mechanism,
has the xmlcomplete#GetLastOpenTag() function which can be used in XML files
to get the name of the last open tag (b:unaryTagsStack has to be defined): >

	:echo xmlcomplete#GetLastOpenTag("b:unaryTagsStack")



==============================================================================
8. Insert mode commands					*inserting*

The following commands can be used to insert new text into the buffer.  They
can all be undone and repeated with the "." command.

							*a*
a			Append text after the cursor [count] times.  If the
			cursor is in the first column of an empty line Insert
			starts there.  But not when 'virtualedit' is set!

							*A*
A			Append text at the end of the line [count] times.

<insert>	or				*i* *insert* *<Insert>*
i			Insert text before the cursor [count] times.
			When using CTRL-O in Insert mode |i_CTRL-O| the count
			is not supported.

							*I*
I			Insert text before the first non-blank in the line
			[count] times.
			When the 'H' flag is present in 'cpoptions' and the
			line only contains blanks, insert start just before
			the last blank.

							*gI*
gI			Insert text in column 1 [count] times.  {not in Vi}

							*gi*
gi			Insert text in the same position as where Insert mode
			was stopped last time in the current buffer.
			This uses the |'^| mark.  It's different from "`^i"
			when the mark is past the end of the line.
			The position is corrected for inserted/deleted lines,
			but NOT for inserted/deleted characters.
			When the |:keepjumps| command modifier is used the |'^|
			mark won't be changed.
			{not in Vi}

							*o*
o			Begin a new line below the cursor and insert text,
			repeat [count] times.  {Vi: blank [count] screen
			lines}
			When the '#' flag is in 'cpoptions' the count is
			ignored.

							*O*
O			Begin a new line above the cursor and insert text,
			repeat [count] times.  {Vi: blank [count] screen
			lines}
			When the '#' flag is in 'cpoptions' the count is
			ignored.

These commands are used to start inserting text.  You can end insert mode with
<Esc>.  See |mode-ins-repl| for the other special characters in Insert mode.
The effect of [count] takes place after Insert mode is exited.

When 'autoindent' is on, the indent for a new line is obtained from the
previous line.  When 'smartindent' or 'cindent' is on, the indent for a line
is automatically adjusted for C programs.

'textwidth' can be set to the maximum width for a line.  When a line becomes
too long when appending characters a line break is automatically inserted.


==============================================================================
9. Ex insert commands					*inserting-ex*

							*:a* *:append*
:{range}a[ppend][!]	Insert several lines of text below the specified
			line.  If the {range} is missing, the text will be
			inserted after the current line.
			Adding [!] toggles 'autoindent' for the time this
			command is executed.

							*:i* *:in* *:insert*
:{range}i[nsert][!]	Insert several lines of text above the specified
			line.  If the {range} is missing, the text will be
			inserted before the current line.
			Adding [!] toggles 'autoindent' for the time this
			command is executed.

These two commands will keep on asking for lines, until you type a line
containing only a ".".  Watch out for lines starting with a backslash, see
|line-continuation|.

When in Ex mode (see |-e|) a backslash at the end of the line can be used to
insert a NUL character.  To be able to have a line ending in a backslash use
two backslashes.  This means that the number of backslashes is halved, but
only at the end of the line.

NOTE: These commands cannot be used with |:global| or |:vglobal|.
":append" and ":insert" don't work properly in between ":if" and
":endif", ":for" and ":endfor", ":while" and ":endwhile".

							*:start* *:startinsert*
:star[tinsert][!]	Start Insert mode just after executing this command.
			Works like typing "i" in Normal mode.  When the ! is
			included it works like "A", append to the line.
			Otherwise insertion starts at the cursor position.
			Note that when using this command in a function or
			script, the insertion only starts after the function
			or script is finished.
			This command does not work from |:normal|.
			{not in Vi}

							*:stopi* *:stopinsert*
:stopi[nsert]		Stop Insert mode as soon as possible.  Works like
			typing <Esc> in Insert mode.
			Can be used in an autocommand, example: >
				:au BufEnter scratch stopinsert
<
					*replacing-ex* *:startreplace*
:startr[eplace][!]	Start Replace mode just after executing this command.
			Works just like typing "R" in Normal mode.  When the
			! is included it acts just like "$R" had been typed
			(ie. begin replace mode at the end-of-line).  Other-
			wise replacement begins at the cursor position.
			Note that when using this command in a function or
			script that the replacement will only start after
			the function or script is finished.
			{not in Vi}

							*:startgreplace*
:startg[replace][!]	Just like |:startreplace|, but use Virtual Replace
			mode, like with |gR|.
			{not in Vi}

==============================================================================
10. Inserting a file					*inserting-file*

							*:r* *:re* *:read*
:r[ead] [++opt] [name]
			Insert the file [name] (default: current file) below
			the cursor.
			See |++opt| for the possible values of [++opt].

:{range}r[ead] [++opt] [name]
			Insert the file [name] (default: current file) below
			the specified line.
			See |++opt| for the possible values of [++opt].

							*:r!* *:read!*
:[range]r[ead] [++opt] !{cmd}
			Execute {cmd} and insert its standard output below
			the cursor or the specified line.  A temporary file is
			used to store the output of the command which is then
			read into the buffer.  'shellredir' is used to save
			the output of the command, which can be set to include
			stderr or not.  {cmd} is executed like with ":!{cmd}",
			any '!' is replaced with the previous command |:!|.
			See |++opt| for the possible values of [++opt].

These commands insert the contents of a file, or the output of a command,
into the buffer.  They can be undone.  They cannot be repeated with the "."
command.  They work on a line basis, insertion starts below the line in which
the cursor is, or below the specified line.  To insert text above the first
line use the command ":0r {name}".

After the ":read" command, the cursor is left on the first non-blank in the
first new line.  Unless in Ex mode, then the cursor is left on the last new
line (sorry, this is Vi compatible).

If a file name is given with ":r", it becomes the alternate file.  This can be
used, for example, when you want to edit that file instead: ":e! #".  This can
be switched off by removing the 'a' flag from the 'cpoptions' option.

Of the [++opt] arguments one is specifically for ":read", the ++edit argument.
This is useful when the ":read" command is actually used to read a file into
the buffer as if editing that file.  Use this command in an empty buffer: >
	:read ++edit filename
The effect is that the 'fileformat', 'fileencoding', 'bomb', etc. options are
set to what has been detected for "filename".  Note that a single empty line
remains, you may want to delete it.

							*file-read*
The 'fileformat' option sets the <EOL> style for a file:
'fileformat'    characters	   name				~
  "dos"		<CR><NL> or <NL>   DOS format
  "unix"	<NL>		   Unix format
  "mac"		<CR>		   Mac format
Previously 'textmode' was used.  It is obsolete now.

If 'fileformat' is "dos", a <CR> in front of an <NL> is ignored and a CTRL-Z
at the end of the file is ignored.

If 'fileformat' is "mac", a <NL> in the file is internally represented by a
<CR>.  This is to avoid confusion with a <NL> which is used to represent a
<NUL>.  See |CR-used-for-NL|.

If the 'fileformats' option is not empty Vim tries to recognize the type of
<EOL> (see |file-formats|).  However, the 'fileformat' option will not be
changed, the detected format is only used while reading the file.
A similar thing happens with 'fileencodings'.

On non-MS-DOS, Win32, and OS/2 systems the message "[dos format]" is shown if
a file is read in DOS format, to remind you that something unusual is done.
On Macintosh, MS-DOS, Win32, and OS/2 the message "[unix format]" is shown if
a file is read in Unix format.
On non-Macintosh systems, the message "[Mac format]" is shown if a file is
read in Mac format.

An example on how to use ":r !": >
	:r !uuencode binfile binfile
This command reads "binfile", uuencodes it and reads it into the current
buffer.  Useful when you are editing e-mail and want to include a binary
file.

							*read-messages*
When reading a file Vim will display a message with information about the read
file.  In the table is an explanation for some of the items.  The others are
self explanatory.  Using the long or the short version depends on the
'shortmess' option.

	long		short		meaning ~
	[readonly]	{RO}		the file is write protected
	[fifo/socket]			using a stream
	[fifo]				using a fifo stream
	[socket]			using a socket stream
	[CR missing]			reading with "dos" 'fileformat' and a
					NL without a preceding CR was found.
	[NL found]			reading with "mac" 'fileformat' and a
					NL was found (could be "unix" format)
	[long lines split]		at least one line was split in two
	[NOT converted]			conversion from 'fileencoding' to
					'encoding' was desired but not
					possible
	[converted]			conversion from 'fileencoding' to
					'encoding' done
	[crypted]			file was decrypted
	[READ ERRORS]			not all of the file could be read


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Zb����y�yvim80/doc/message.txtnu�[���*message.txt*   For Vim version 8.0.  Last change: 2018 Feb 04


		  VIM REFERENCE MANUAL    by Bram Moolenaar


This file contains an alphabetical list of messages and error messages that
Vim produces.  You can use this if you don't understand what the message
means.  It is not complete though.

1. Old messages		|:messages|
2. Error messages	|error-messages|
3. Messages		|messages|

==============================================================================
1. Old messages			*:messages* *:mes* *message-history*

The ":messages" command can be used to view previously given messages.  This
is especially useful when messages have been overwritten or truncated.  This
depends on the 'shortmess' option.

	:messages		Show all messages.

	:{count}messages	Show the {count} most recent messages.

	:messages clear		Clear all messages.

	:{count}messages clear	Clear messages, keeping only the {count} most
				recent ones.

The number of remembered messages is fixed at 20 for the tiny version and 200
for other versions.

								*g<*
The "g<" command can be used to see the last page of previous command output.
This is especially useful if you accidentally typed <Space> at the hit-enter
prompt.  You are then back at the hit-enter prompt and can then scroll further
back.
Note: If the output has been stopped with "q" at the more prompt, it will only
be displayed up to this point.
The previous command output is cleared when another command produces output.
The "g<" output is not redirected.

If you are using translated messages, the first printed line tells who
maintains the messages or the translations.  You can use this to contact the
maintainer when you spot a mistake.

If you want to find help on a specific (error) message, use the ID at the
start of the message.  For example, to get help on the message: >

	E72: Close error on swap file

or (translated): >

	E72: Errore durante chiusura swap file

Use: >

	:help E72

If you are lazy, it also works without the shift key: >

	:help e72

==============================================================================
2. Error messages				*error-messages* *errors*

When an error message is displayed, but it is removed before you could read
it, you can see it again with: >
  :echo errmsg
Or view a list of recent messages with: >
  :messages
See `:messages` above.


LIST OF MESSAGES
			*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
			*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
			*E323* *E341* *E473* *E570* *E685* *E950*  >
  Add to read buffer
  makemap: Illegal mode
  Cannot create BalloonEval with both message and callback
  Hangul automata ERROR
  block was not locked
  Didn't get block nr {N}?
  ml_upd_block0(): Didn't get block 0??
  pointer block id wrong {N}
  Updated too many blocks?
  get_varp ERROR
  u_undo: line numbers wrong
  undo list corrupt
  undo line missing
  ml_get: cannot find line {N}
  cannot find line {N}
  line number out of range: {N} past the end
  line count wrong in block {N}
  Internal error
  Internal error: {function}
  fatal error in cs_manage_matches
  Invalid count for del_bytes(): {N}

This is an internal error.  If you can reproduce it, please send in a bug
report. |bugs|

>
  ATTENTION
  Found a swap file by the name ...

See |ATTENTION|.

							*E92*  >
  Buffer {N} not found

The buffer you requested does not exist.  This can also happen when you have
wiped out a buffer which contains a mark or is referenced in another way.
|:bwipeout|

							*E95*  >
  Buffer with this name already exists

You cannot have two buffers with the same name.

							*E72*  >
  Close error on swap file

The |swap-file|, that is used to keep a copy of the edited text, could not be
closed properly.  Mostly harmless.

							*E169*  >
  Command too recursive

This happens when an Ex command executes an Ex command that executes an Ex
command, etc.  The limit is 200 or the value of 'maxfuncdepth', whatever is
larger.  When it's more there probably is an endless loop.  Probably a
|:execute| or |:source| command is involved.

							*E254*  >
  Cannot allocate color {name}

The color name {name} is unknown.  See |gui-colors| for a list of colors that
are available on most systems.

							*E458*  >
  Cannot allocate colormap entry, some colors may be incorrect

This means that there are not enough colors available for Vim.  It will still
run, but some of the colors will not appear in the specified color.  Try
stopping other applications that use many colors, or start them after starting
gvim.
Browsers are known to consume a lot of colors.  You can avoid this with
netscape by telling it to use its own colormap: >
	netscape -install
Or tell it to limit to a certain number of colors (64 should work well): >
	netscape -ncols 64
This can also be done with a line in your Xdefaults file: >
	Netscape*installColormap: Yes
or >
	Netscape*maxImageColors:  64
<
							*E79*  >
  Cannot expand wildcards

A filename contains a strange combination of characters, which causes Vim to
attempt expanding wildcards but this fails.  This does NOT mean that no
matching file names could be found, but that the pattern was illegal.

							*E459*  >
  Cannot go back to previous directory

While expanding a file name, Vim failed to go back to the previously used
directory.  All file names being used may be invalid now!  You need to have
execute permission on the current directory.

							*E190* *E212*  >
  Cannot open "{filename}" for writing
  Can't open file for writing

For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.

							*E166*  >
  Can't open linked file for writing

You are trying to write to a file which can't be overwritten, and the file is
a link (either a hard link or a symbolic link).  Writing might still be
possible if the directory that contains the link or the file is writable, but
Vim now doesn't know if you want to delete the link and write the file in its
place, or if you want to delete the file itself and write the new file in its
place.  If you really want to write the file under this name, you have to
manually delete the link or the file, or change the permissions so that Vim
can overwrite.

							*E46*  >
  Cannot change read-only variable "{name}"

You are trying to assign a value to an argument of a function |a:var| or a Vim
internal variable |v:var| which is read-only.

							*E90*  >
  Cannot unload last buffer

Vim always requires one buffer to be loaded, otherwise there would be nothing
to display in the window.

							*E40*  >
  Can't open errorfile <filename>

When using the ":make" or ":grep" commands: The file used to save the error
messages or grep output cannot be opened.  This can have several causes:
- 'shellredir' has a wrong value.
- The shell changes directory, causing the error file to be written in another
  directory.  This could be fixed by changing 'makeef', but then the make
  command is still executed in the wrong directory.
- 'makeef' has a wrong value.
- The 'grepprg' or 'makeprg' could not be executed.  This cannot always be
  detected (especially on MS-Windows).  Check your $PATH.

 >
  Can't open file C:\TEMP\VIoD243.TMP

On MS-Windows, this message appears when the output of an external command was
to be read, but the command didn't run successfully.  This can be caused by
many things.  Check the 'shell', 'shellquote', 'shellxquote', 'shellslash' and
related options.  It might also be that the external command was not found,
there is no different error message for that.

							*E12*  >
  Command not allowed from exrc/vimrc in current dir or tag search

Some commands are not allowed for security reasons.  These commands mostly
come from a .exrc or .vimrc file in the current directory, or from a tags
file.  Also see 'secure'.

							*E74*  >
  Command too complex

A mapping resulted in a very long command string.  Could be caused by a
mapping that indirectly calls itself.

>
  CONVERSION ERROR

When writing a file and the text "CONVERSION ERROR" appears, this means that
some bits were lost when converting text from the internally used UTF-8 to the
format of the file.  The file will not be marked unmodified.  If you care
about the loss of information, set the 'fileencoding' option to another value
that can handle the characters in the buffer and write again.  If you don't
care, you can abandon the buffer or reset the 'modified' option.

							*E302*  >
  Could not rename swap file

When the file name changes, Vim tries to rename the |swap-file| as well.
This failed and the old swap file is now still used.  Mostly harmless.

							*E43* *E44*  >
  Damaged match string
  Corrupted regexp program

Something inside Vim went wrong and resulted in a corrupted regexp.  If you
know how to reproduce this problem, please report it. |bugs|

							*E208* *E209* *E210*  >
  Error writing to "{filename}"
  Error closing "{filename}"
  Error reading "{filename}"

This occurs when Vim is trying to rename a file, but a simple change of file
name doesn't work.  Then the file will be copied, but somehow this failed.
The result may be that both the original file and the destination file exist
and the destination file may be incomplete.

>
  Vim: Error reading input, exiting...

This occurs when Vim cannot read typed characters while input is required.
Vim got stuck, the only thing it can do is exit.  This can happen when both
stdin and stderr are redirected and executing a script that doesn't exit Vim.

							*E47*  >
  Error while reading errorfile

Reading the error file was not possible.  This is NOT caused by an error
message that was not recognized.

							*E80*  >
  Error while writing

Writing a file was not completed successfully.  The file is probably
incomplete.

							*E13* *E189*  >
  File exists (add ! to override)
  "{filename}" exists (add ! to override)

You are protected from accidentally overwriting a file.  When you want to
write anyway, use the same command, but add a "!" just after the command.
Example: >
	:w /tmp/test
changes to: >
	:w! /tmp/test
<
							*E768*  >
  Swap file exists: {filename} (:silent! overrides)

You are protected from overwriting a file that is being edited by Vim.  This
happens when you use ":w! filename" and a swapfile is found.
- If the swapfile was left over from an old crashed edit session you may want
  to delete the swapfile.  Edit {filename} to find out information about the
  swapfile.
- If you want to write anyway prepend ":silent!" to the command.  For example: >
	:silent! w! /tmp/test
< The special command is needed, since you already added the ! for overwriting
  an existing file.

							*E139*  >
  File is loaded in another buffer

You are trying to write a file under a name which is also used in another
buffer.  This would result in two versions of the same file.

							*E142*  >
  File not written: Writing is disabled by 'write' option

The 'write' option is off.  This makes all commands that try to write a file
generate this message.  This could be caused by a |-m| commandline argument.
You can switch the 'write' option on with ":set write".

							*E25*  >
  GUI cannot be used: Not enabled at compile time

You are running a version of Vim that doesn't include the GUI code.  Therefore
"gvim" and ":gui" don't work.

							*E49*  >
  Invalid scroll size

This is caused by setting an invalid value for the 'scroll', 'scrolljump' or
'scrolloff' options.

							*E17*  >
  "{filename}" is a directory

You tried to write a file with the name of a directory.  This is not possible.
You probably need to append a file name.

							*E19*  >
  Mark has invalid line number

You are using a mark that has a line number that doesn't exist.  This can
happen when you have a mark in another file, and some other program has
deleted lines from it.

							*E219* *E220*  >
  Missing {.
  Missing }.

Using a {} construct in a file name, but there is a { without a matching } or
the other way around.  It should be used like this: {foo,bar}.  This matches
"foo" and "bar".

							*E315*  >
  ml_get: invalid lnum: {number}

This is an internal Vim error.  Please try to find out how it can be
reproduced, and submit a bug report |bugreport.vim|.

							*E173*  >
  {number} more files to edit

You are trying to exit, while the last item in the argument list has not been
edited.  This protects you from accidentally exiting when you still have more
files to work on.  See |argument-list|.  If you do want to exit, just do it
again and it will work.

							*E23* *E194*  >
  No alternate file
  No alternate file name to substitute for '#'

The alternate file is not defined yet.  See |alternate-file|.

							*E32*  >
  No file name

The current buffer has no name.  To write it, use ":w fname".  Or give the
buffer a name with ":file fname".

							*E141*  >
  No file name for buffer {number}

One of the buffers that was changed does not have a file name.  Therefore it
cannot be written.  You need to give the buffer a file name: >
	:buffer {number}
	:file {filename}
<
							*E33*  >
  No previous substitute regular expression

When using the '~' character in a pattern, it is replaced with the previously
used pattern in a ":substitute" command.  This fails when no such command has
been used yet.  See |/~|.  This also happens when using ":s/pat/%/", where the
"%" stands for the previous substitute string.

							*E35*  >
  No previous regular expression

When using an empty search pattern, the previous search pattern is used.  But
that is not possible if there was no previous search.

							*E24*  >
  No such abbreviation

You have used an ":unabbreviate" command with an argument which is not an
existing abbreviation.  All variations of this command give the same message:
":cunabbrev", ":iunabbrev", etc.  Check for trailing white space.

>
  /dev/dsp: No such file or directory

Only given for GTK GUI with Gnome support.  Gnome tries to use the audio
device and it isn't present.  You can ignore this error.

							*E31*  >
  No such mapping

You have used an ":unmap" command with an argument which is not an existing
mapping.  All variations of this command give the same message: ":cunmap",
":unmap!", etc.  A few hints:
- Check for trailing white space.
- If the mapping is buffer-local you need to use ":unmap <buffer>".
  |:map-<buffer>|

							*E37* *E89*  >
  No write since last change (add ! to override)
  No write since last change for buffer {N} (add ! to override)

You are trying to |abandon| a file that has changes.  Vim protects you from
losing your work.  You can either write the changed file with ":w", or, if you
are sure, |abandon| it anyway, and lose all the changes.  This can be done by
adding a '!' character just after the command you used.  Example: >
	:e other_file
changes to: >
	:e! other_file
<
							*E162*  >
  No write since last change for buffer "{name}"

This appears when you try to exit Vim while some buffers are changed.  You
will either have to write the changed buffer (with |:w|), or use a command to
abandon the buffer forcefully, e.g., with ":qa!".  Careful, make sure you
don't throw away changes you really want to keep.  You might have forgotten
about a buffer, especially when 'hidden' is set.

>
  [No write since last change]

This appears when executing a shell command while at least one buffer was
changed.  To avoid the message reset the 'warn' option.

							*E38*  >
  Null argument

Something inside Vim went wrong and resulted in a NULL pointer.  If you know
how to reproduce this problem, please report it. |bugs|

						*E41* *E82* *E83* *E342*  >
  Out of memory!
  Out of memory!  (allocating {number} bytes)
  Cannot allocate any buffer, exiting...
  Cannot allocate buffer, using other one...

Oh, oh.  You must have been doing something complicated, or some other program
is consuming your memory.  Be careful!  Vim is not completely prepared for an
out-of-memory situation.  First make sure that any changes are saved.  Then
try to solve the memory shortage.  To stay on the safe side, exit Vim and
start again.

Buffers are only partly kept in memory, thus editing a very large file is
unlikely to cause an out-of-memory situation.  Undo information is completely
in memory, you can reduce that with these options:
- 'undolevels'  Set to a low value, or to -1 to disable undo completely.  This
  helps for a change that affects all lines.
- 'undoreload' Set to zero to disable.

							*E339*  >
  Pattern too long

This happens on systems with 16 bit ints: The compiled regexp pattern is
longer than about 65000 characters.  Try using a shorter pattern.
It also happens when the offset of a rule doesn't fit in the space available.
Try simplifying the pattern.

							*E45*  >
  'readonly' option is set (add ! to override)

You are trying to write a file that was marked as read-only.  To write the
file anyway, either reset the 'readonly' option, or add a '!' character just
after the command you used.  Example: >
	:w
changes to: >
	:w!
<
							*E294* *E295* *E301*  >
  Read error in swap file
  Seek error in swap file read
  Oops, lost the swap file!!!

Vim tried to read text from the |swap-file|, but something went wrong.  The
text in the related buffer may now be corrupted!  Check carefully before you
write a buffer.  You may want to write it in another file and check for
differences.

							*E192*  >
  Recursive use of :normal too deep

You are using a ":normal" command, whose argument again uses a ":normal"
command in a recursive way.  This is restricted to 'maxmapdepth' levels.  This
example illustrates how to get this message: >
	:map gq :normal gq<CR>
If you type "gq", it will execute this mapping, which will call "gq" again.

							*E22*  >
  Scripts nested too deep

Scripts can be read with the "-s" command-line argument and with the ":source"
command.  The script can then again read another script.  This can continue
for about 14 levels.  When more nesting is done, Vim assumes that there is a
recursive loop somewhere and stops with this error message.

							*E319*  >
  Sorry, the command is not available in this version

You have used a command that is not present in the version of Vim you are
using.  When compiling Vim, many different features can be enabled or
disabled.  This depends on how big Vim has chosen to be and the operating
system.  See |+feature-list| for when which feature is available.  The
|:version| command shows which feature Vim was compiled with.

							*E300*  >
  Swap file already exists (symlink attack?)

This message appears when Vim is trying to open a swap file and finds it
already exists or finds a symbolic link in its place.  This shouldn't happen,
because Vim already checked that the file doesn't exist.  Either someone else
opened the same file at exactly the same moment (very unlikely) or someone is
attempting a symlink attack (could happen when editing a file in /tmp or when
'directory' starts with "/tmp", which is a bad choice).

							*E432*  >
  Tags file not sorted: {file name}

Vim (and Vi) expect tags files to be sorted in ASCII order.  Binary searching
can then be used, which is a lot faster than a linear search.  If your tags
files are not properly sorted, reset the |'tagbsearch'| option.
This message is only given when Vim detects a problem when searching for a
tag.  Sometimes this message is not given, even though the tags file is not
properly sorted.

							*E460*  >
  The resource fork would be lost (add ! to override)

On the Macintosh (classic), when writing a file, Vim attempts to preserve all
info about a file, including its resource fork.  If this is not possible you
get this error message.  Append "!" to the command name to write anyway (and
lose the info).

							*E424*  >
  Too many different highlighting attributes in use

Vim can only handle about 223 different kinds of highlighting.  If you run
into this limit, you have used too many |:highlight| commands with different
arguments.  A ":highlight link" is not counted.

							*E77*  >
  Too many file names

When expanding file names, more than one match was found.  Only one match is
allowed for the command that was used.

							*E303*  >
  Unable to open swap file for "{filename}", recovery impossible

Vim was not able to create a swap file.  You can still edit the file, but if
Vim unexpectedly exits the changes will be lost.  And Vim may consume a lot of
memory when editing a big file.  You may want to change the 'directory' option
to avoid this error.  See |swap-file|.

							*E140*  >
  Use ! to write partial buffer

When using a range to write part of a buffer, it is unusual to overwrite the
original file.  It is probably a mistake (e.g., when Visual mode was active
when using ":w"), therefore Vim requires using a !  after the command, e.g.:
":3,10w!".
>

  Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type
  VirtualBinding

Messages like this appear when starting up.  This is not a Vim problem, your
X11 configuration is wrong.  You can find a hint on how to solve this here:
http://groups.yahoo.com/group/solarisonintel/message/12179.
[this URL is no longer valid]

							*W10*  >
  Warning: Changing a readonly file

The file is read-only and you are making a change to it anyway.  You can use
the |FileChangedRO| autocommand event to avoid this message (the autocommand
must reset the 'readonly' option).  See 'modifiable' to completely disallow
making changes to a file.
This message is only given for the first change after 'readonly' has been set.

							*W13*  >
  Warning: File "{filename}" has been created after editing started

You are editing a file in Vim when it didn't exist, but it does exist now.
You will have to decide if you want to keep the version in Vim or the newly
created file.  This message is not given when 'buftype' is not empty.

							*W11*  >
  Warning: File "{filename}" has changed since editing started

The file which you have started editing has got another timestamp and the
contents changed (more precisely: When reading the file again with the current
option settings and autocommands you would end up with different text).  This
probably means that some other program changed the file.  You will have to
find out what happened, and decide which version of the file you want to keep.
Set the 'autoread' option if you want to do this automatically.
This message is not given when 'buftype' is not empty.

There is one situation where you get this message even though there is nothing
wrong: If you save a file in Windows on the day the daylight saving time
starts.  It can be fixed in one of these ways:
- Add this line in your autoexec.bat: >
	   SET TZ=-1
< Adjust the "-1" for your time zone.
- Disable "automatically adjust clock for daylight saving changes".
- Just write the file again the next day.  Or set your clock to the next day,
  write the file twice and set the clock back.

If you get W11 all the time, you may need to disable "Acronis Active
Protection" or register Vim as a trusted service/application.

							*W12*  >
  Warning: File "{filename}" has changed and the buffer was changed in Vim as well

Like the above, and the buffer for the file was changed in this Vim as well.
You will have to decide if you want to keep the version in this Vim or the one
on disk.  This message is not given when 'buftype' is not empty.

							*W16*  >
  Warning: Mode of file "{filename}" has changed since editing started

When the timestamp for a buffer was changed and the contents are still the
same but the mode (permissions) have changed.  This usually occurs when
checking out a file from a version control system, which causes the read-only
bit to be reset.  It should be safe to reload the file.  Set 'autoread' to
automatically reload the file.

							*E211*  >
  File "{filename}" no longer available

The file which you have started editing has disappeared, or is no longer
accessible.  Make sure you write the buffer somewhere to avoid losing
changes.  This message is not given when 'buftype' is not empty.

							*W14*  >
  Warning: List of file names overflow

You must be using an awful lot of buffers.  It's now possible that two buffers
have the same number, which causes various problems.  You might want to exit
Vim and restart it.

							*E931*  >
  Buffer cannot be registered

Out of memory or a duplicate buffer number.  May happen after W14.  Looking up
a buffer will not always work, better restart Vim.

							*E296* *E297*  >
  Seek error in swap file write
  Write error in swap file

This mostly happens when the disk is full.  Vim could not write text into the
|swap-file|.  It's not directly harmful, but when Vim unexpectedly exits some
text may be lost without recovery being possible.  Vim might run out of memory
when this problem persists.

						*connection-refused*  >
  Xlib: connection to "<machine-name:0.0" refused by server

This happens when Vim tries to connect to the X server, but the X server does
not allow a connection.  The connection to the X server is needed to be able
to restore the title and for the xterm clipboard support.  Unfortunately this
error message cannot be avoided, except by disabling the |+xterm_clipboard|
and |+X11| features.

							*E10*  >
  \\ should be followed by /, ? or &

A command line started with a backslash or the range of a command contained a
backslash in a wrong place.  This is often caused by command-line continuation
being disabled.  Remove the 'C' flag from the 'cpoptions' option to enable it.
Or use ":set nocp".

							*E471*  >
  Argument required

This happens when an Ex command with mandatory argument(s) was executed, but
no argument has been specified.

							*E474* *E475*  >
  Invalid argument
  Invalid argument: {arg}

An Ex command has been executed, but an invalid argument has been specified.

							*E488*  >
  Trailing characters

An argument has been added to an Ex command that does not permit one.

							*E477* *E478*  >
  No ! allowed
  Don't panic!

You have added a "!" after an Ex command that doesn't permit one.

							*E481*  >
  No range allowed

A range was specified for an Ex command that doesn't permit one.  See
|cmdline-ranges|.

							*E482* *E483*  >
  Can't create file {filename}
  Can't get temp file name

Vim cannot create a temporary file.

							*E484* *E485*  >
  Can't open file {filename}
  Can't read file {filename}

Vim cannot read a temporary file.  Especially on Windows, this can be caused
by wrong escaping of special characters for cmd.exe; the approach was
changed with patch 7.3.443.  Try using |shellescape()| for all shell arguments
given to |system()|, or explicitly add escaping with ^.  Also see
'shellxquote' and 'shellxescape'.

							*E464*  >
  Ambiguous use of user-defined command

There are two user-defined commands with a common name prefix, and you used
Command-line completion to execute one of them. |user-cmd-ambiguous|
Example: >
	:command MyCommand1 echo "one"
	:command MyCommand2 echo "two"
	:MyCommand
<
							*E492*  >
  Not an editor command

You tried to execute a command that is neither an Ex command nor
a user-defined command.

							*E943*  >
  Command table needs to be updated, run 'make cmdidxs'

This can only happen when changing the source code, when adding a command in
src/ex_cmds.h.  The lookup table then needs to be updated, by running: >
	make cmdidxs

==============================================================================
3. Messages						*messages*

This is an (incomplete) overview of various messages that Vim gives:

			*hit-enter* *press-enter* *hit-return*
			*press-return* *hit-enter-prompt*

  Press ENTER or type command to continue

This message is given when there is something on the screen for you to read,
and the screen is about to be redrawn:
- After executing an external command (e.g., ":!ls" and "=").
- Something is displayed on the status line that is longer than the width of
  the window, or runs into the 'showcmd' or 'ruler' output.

-> Press <Enter> or <Space> to redraw the screen and continue, without that
   key being used otherwise.
-> Press ':' or any other Normal mode command character to start that command.
-> Press 'k', <Up>, 'u', 'b' or 'g' to scroll back in the messages.  This
   works the same way as at the |more-prompt|.  Only works when 'compatible'
   is off and 'more' is on.
-> Pressing 'j', 'f', 'd' or <Down> is ignored when messages scrolled off the
   top of the screen, 'compatible' is off and 'more' is on, to avoid that
   typing one 'j' or 'f' too many causes the messages to disappear.
-> Press <C-Y> to copy (yank) a modeless selection to the clipboard register.
-> Use a menu.  The characters defined for Cmdline-mode are used.
-> When 'mouse' contains the 'r' flag, clicking the left mouse button works
   like pressing <Space>.  This makes it impossible to select text though.
-> For the GUI clicking the left mouse button in the last line works like
   pressing <Space>.
{Vi: only ":" commands are interpreted}

If you accidentally hit <Enter> or <Space> and you want to see the displayed
text then use |g<|.  This only works when 'more' is set.

To reduce the number of hit-enter prompts:
- Set 'cmdheight' to 2 or higher.
- Add flags to 'shortmess'.
- Reset 'showcmd' and/or 'ruler'.

If your script causes the hit-enter prompt and you don't know why, you may
find the |v:scrollstart| variable useful.

Also see 'mouse'.  The hit-enter message is highlighted with the |hl-Question|
group.


						*more-prompt* *pager*  >
  -- More --
  -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit

This message is given when the screen is filled with messages.  It is only
given when the 'more' option is on.  It is highlighted with the |hl-MoreMsg|
group.

Type					effect ~
     <CR> or <NL> or j or <Down>	one more line
     d					down a page (half a screen)
     <Space> or f or <PageDown>		down a screen
     G					down all the way, until the hit-enter
					prompt

     <BS> or k or <Up>			one line back (*)
     u					up a page (half a screen) (*)
     b or <PageUp>			back a screen (*)
     g					back to the start (*)

     q, <Esc> or CTRL-C			stop the listing
     :					stop the listing and enter a
					     command-line
    <C-Y>				yank (copy) a modeless selection to
					the clipboard ("* and "+ registers)
    {menu-entry}			what the menu is defined to in
					Cmdline-mode.
    <LeftMouse> (**)			next page

Any other key causes the meaning of the keys to be displayed.

(*)  backwards scrolling is {not in Vi}.  Only scrolls back to where messages
     started to scroll.
(**) Clicking the left mouse button only works:
     - For the GUI: in the last line of the screen.
     - When 'r' is included in 'mouse' (but then selecting text won't work).


Note: The typed key is directly obtained from the terminal, it is not mapped
and typeahead is ignored.

The |g<| command can be used to see the last page of previous command output.
This is especially useful if you accidentally typed <Space> at the hit-enter
prompt.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z������vim80/doc/mbyte.txtnu�[���*mbyte.txt*     For Vim version 8.0.  Last change: 2018 Jan 21


		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.


Multi-byte support				*multibyte* *multi-byte*
						*Chinese* *Japanese* *Korean*
This is about editing text in languages which have many characters that can
not be represented using one byte (one octet).  Examples are Chinese, Japanese
and Korean.  Unicode is also covered here.

For an introduction to the most common features, see |usr_45.txt| in the user
manual.
For changing the language of messages and menus see |mlang.txt|.

{not available when compiled without the |+multi_byte| feature}


1.  Getting started			|mbyte-first|
2.  Locale				|mbyte-locale|
3.  Encoding				|mbyte-encoding|
4.  Using a terminal			|mbyte-terminal|
5.  Fonts on X11			|mbyte-fonts-X11|
6.  Fonts on MS-Windows			|mbyte-fonts-MSwin|
7.  Input on X11			|mbyte-XIM|
8.  Input on MS-Windows			|mbyte-IME|
9.  Input with a keymap			|mbyte-keymap|
10. Input with imactivatefunc()		|mbyte-func|
11. Using UTF-8				|mbyte-utf8|
12. Overview of options			|mbyte-options|

NOTE: This file contains UTF-8 characters.  These may show up as strange
characters or boxes when using another encoding.

==============================================================================
1. Getting started					*mbyte-first*

This is a summary of the multibyte features in Vim.  If you are lucky it works
as described and you can start using Vim without much trouble.  If something
doesn't work you will have to read the rest.  Don't be surprised if it takes
quite a bit of work and experimenting to make Vim use all the multi-byte
features.  Unfortunately, every system has its own way to deal with multibyte
languages and it is quite complicated.


COMPILING

If you already have a compiled Vim program, check if the |+multi_byte| feature
is included.  The |:version| command can be used for this.

If +multi_byte is not included, you should compile Vim with "normal", "big" or
"huge" features.  You can further tune what features are included.  See the
INSTALL files in the source directory.


LOCALE

First of all, you must make sure your current locale is set correctly.  If
your system has been installed to use the language, it probably works right
away.  If not, you can often make it work by setting the $LANG environment
variable in your shell: >

	setenv LANG ja_JP.EUC

Unfortunately, the name of the locale depends on your system.  Japanese might
also be called "ja_JP.EUCjp" or just "ja".  To see what is currently used: >

	:language

To change the locale inside Vim use: >

	:language ja_JP.EUC

Vim will give an error message if this doesn't work.  This is a good way to
experiment and find the locale name you want to use.  But it's always better
to set the locale in the shell, so that it is used right from the start.

See |mbyte-locale| for details.


ENCODING

If your locale works properly, Vim will try to set the 'encoding' option
accordingly.  If this doesn't work you can overrule its value: >

	:set encoding=utf-8

See |encoding-values| for a list of acceptable values.

The result is that all the text that is used inside Vim will be in this
encoding.  Not only the text in the buffers, but also in registers, variables,
etc.  This also means that changing the value of 'encoding' makes the existing
text invalid!  The text doesn't change, but it will be displayed wrong.

You can edit files in another encoding than what 'encoding' is set to.  Vim
will convert the file when you read it and convert it back when you write it.
See 'fileencoding', 'fileencodings' and |++enc|.


DISPLAY AND FONTS

If you are working in a terminal (emulator) you must make sure it accepts the
same encoding as which Vim is working with.  If this is not the case, you can
use the 'termencoding' option to make Vim convert text automatically.

For the GUI you must select fonts that work with the current 'encoding'.  This
is the difficult part.  It depends on the system you are using, the locale and
a few other things.  See the chapters on fonts: |mbyte-fonts-X11| for
X-Windows and |mbyte-fonts-MSwin| for MS-Windows.

For GTK+ 2, you can skip most of this section.  The option 'guifontset' does
no longer exist.  You only need to set 'guifont' and everything should "just
work".  If your system comes with Xft2 and fontconfig and the current font
does not contain a certain glyph, a different font will be used automatically
if available.  The 'guifontwide' option is still supported but usually you do
not need to set it.  It is only necessary if the automatic font selection does
not suit your needs.

For X11 you can set the 'guifontset' option to a list of fonts that together
cover the characters that are used.  Example for Korean: >

	:set guifontset=k12,r12

Alternatively, you can set 'guifont' and 'guifontwide'.  'guifont' is used for
the single-width characters, 'guifontwide' for the double-width characters.
Thus the 'guifontwide' font must be exactly twice as wide as 'guifont'.
Example for UTF-8: >

	:set guifont=-misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1
	:set guifontwide=-misc-fixed-medium-r-normal-*-18-120-100-100-c-180-iso10646-1

You can also set 'guifont' alone, Vim will try to find a matching
'guifontwide' for you.


INPUT

There are several ways to enter multi-byte characters:
- For X11 XIM can be used.  See |XIM|.
- For MS-Windows IME can be used.  See |IME|.
- For all systems keymaps can be used.  See |mbyte-keymap|.

The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
the different input methods or disable them temporarily.

==============================================================================
2.  Locale						*mbyte-locale*

The easiest setup is when your whole system uses the locale you want to work
in.  But it's also possible to set the locale for one shell you are working
in, or just use a certain locale inside Vim.


WHAT IS A LOCALE?					*locale*

There are many of languages in the world.  And there are different cultures
and environments at least as much as the number of languages.	A linguistic
environment corresponding to an area is called "locale".  This includes
information about the used language, the charset, collating order for sorting,
date format, currency format and so on.  For Vim only the language and charset
really matter.

You can only use a locale if your system has support for it.  Some systems
have only a few locales, especially in the USA.  The language which you want
to use may not be on your system.  In that case you might be able to install
it as an extra package.  Check your system documentation for how to do that.

The location in which the locales are installed varies from system to system.
For example, "/usr/share/locale" or "/usr/lib/locale".  See your system's
setlocale() man page.

Looking in these directories will show you the exact name of each locale.
Mostly upper/lowercase matters, thus "ja_JP.EUC" and "ja_jp.euc" are
different.  Some systems have a locale.alias file, which allows translation
from a short name like "nl" to the full name "nl_NL.ISO_8859-1".

Note that X-windows has its own locale stuff.  And unfortunately uses locale
names different from what is used elsewhere.  This is confusing!  For Vim it
matters what the setlocale() function uses, which is generally NOT the
X-windows stuff.  You might have to do some experiments to find out what
really works.

							*locale-name*
The (simplified) format of |locale| name is:

	language
or	language_territory
or	language_territory.codeset

Territory means the country (or part of it), codeset means the |charset|.  For
example, the locale name "ja_JP.eucJP" means:
	ja	the language is Japanese
	JP	the country is Japan
	eucJP	the codeset is EUC-JP
But it also could be "ja", "ja_JP.EUC", "ja_JP.ujis", etc.  And unfortunately,
the locale name for a specific language, territory and codeset is not unified
and depends on your system.

Examples of locale name:
    charset	    language		  locale name ~
    GB2312	    Chinese (simplified)  zh_CN.EUC, zh_CN.GB2312
    Big5	    Chinese (traditional) zh_TW.BIG5, zh_TW.Big5
    CNS-11643	    Chinese (traditional) zh_TW
    EUC-JP	    Japanese		  ja, ja_JP.EUC, ja_JP.ujis, ja_JP.eucJP
    Shift_JIS	    Japanese		  ja_JP.SJIS, ja_JP.Shift_JIS
    EUC-KR	    Korean		  ko, ko_KR.EUC


USING A LOCALE

To start using a locale for the whole system, see the documentation of your
system.  Mostly you need to set it in a configuration file in "/etc".

To use a locale in a shell, set the $LANG environment value.  When you want to
use Korean and the |locale| name is "ko", do this:

    sh:    export LANG=ko
    csh:   setenv LANG ko

You can put this in your ~/.profile or ~/.cshrc file to always use it.

To use a locale in Vim only, use the |:language| command: >

	:language ko

Put this in your ~/.vimrc file to use it always.

Or specify $LANG when starting Vim:

   sh:    LANG=ko vim {vim-arguments}
   csh:	  env LANG=ko vim {vim-arguments}

You could make a small shell script for this.

==============================================================================
3.  Encoding				*mbyte-encoding*

Vim uses the 'encoding' option to specify how characters are identified and
encoded when they are used inside Vim.  This applies to all the places where
text is used, including buffers (files loaded into memory), registers and
variables.

							*charset* *codeset*
Charset is another name for encoding.  There are subtle differences, but these
don't matter when using Vim.  "codeset" is another similar name.

Each character is encoded as one or more bytes.  When all characters are
encoded with one byte, we call this a single-byte encoding.  The most often
used one is called "latin1".  This limits the number of characters to 256.
Some of these are control characters, thus even fewer can be used for text.

When some characters use two or more bytes, we call this a multi-byte
encoding.  This allows using much more than 256 characters, which is required
for most East Asian languages.

Most multi-byte encodings use one byte for the first 127 characters.  These
are equal to ASCII, which makes it easy to exchange plain-ASCII text, no
matter what language is used.  Thus you might see the right text even when the
encoding was set wrong.

							*encoding-names*
Vim can use many different character encodings.  There are three major groups:

1   8bit	Single-byte encodings, 256 different characters.  Mostly used
		in USA and Europe.  Example: ISO-8859-1 (Latin1).  All
		characters occupy one screen cell only.

2   2byte	Double-byte encodings, over 10000 different characters.
		Mostly used in Asian countries.  Example: euc-kr (Korean)
		The number of screen cells is equal to the number of bytes
		(except for euc-jp when the first byte is 0x8e).

u   Unicode	Universal encoding, can replace all others.  ISO 10646.
		Millions of different characters.  Example: UTF-8.  The
		relation between bytes and screen cells is complex.

Other encodings cannot be used by Vim internally.  But files in other
encodings can be edited by using conversion, see 'fileencoding'.
Note that all encodings must use ASCII for the characters up to 128 (except
when compiled for EBCDIC).

Supported 'encoding' values are:			*encoding-values*
1   latin1	8-bit characters (ISO 8859-1, also used for cp1252)
1   iso-8859-n	ISO_8859 variant (n = 2 to 15)
1   koi8-r	Russian
1   koi8-u	Ukrainian
1   macroman    MacRoman (Macintosh encoding)
1   8bit-{name} any 8-bit encoding (Vim specific name)
1   cp437	similar to iso-8859-1
1   cp737	similar to iso-8859-7
1   cp775	Baltic
1   cp850	similar to iso-8859-4
1   cp852	similar to iso-8859-1
1   cp855	similar to iso-8859-2
1   cp857	similar to iso-8859-5
1   cp860	similar to iso-8859-9
1   cp861	similar to iso-8859-1
1   cp862	similar to iso-8859-1
1   cp863	similar to iso-8859-8
1   cp865	similar to iso-8859-1
1   cp866	similar to iso-8859-5
1   cp869	similar to iso-8859-7
1   cp874	Thai
1   cp1250	Czech, Polish, etc.
1   cp1251	Cyrillic
1   cp1253	Greek
1   cp1254	Turkish
1   cp1255	Hebrew
1   cp1256	Arabic
1   cp1257	Baltic
1   cp1258	Vietnamese
1   cp{number}	MS-Windows: any installed single-byte codepage
2   cp932	Japanese (Windows only)
2   euc-jp	Japanese (Unix only)
2   sjis	Japanese (Unix only)
2   cp949	Korean (Unix and Windows)
2   euc-kr	Korean (Unix only)
2   cp936	simplified Chinese (Windows only)
2   euc-cn	simplified Chinese (Unix only)
2   cp950	traditional Chinese (on Unix alias for big5)
2   big5	traditional Chinese (on Windows alias for cp950)
2   euc-tw	traditional Chinese (Unix only)
2   2byte-{name} Unix: any double-byte encoding (Vim specific name)
2   cp{number}	MS-Windows: any installed double-byte codepage
u   utf-8	32 bit UTF-8 encoded Unicode (ISO/IEC 10646-1)
u   ucs-2	16 bit UCS-2 encoded Unicode (ISO/IEC 10646-1)
u   ucs-2le	like ucs-2, little endian
u   utf-16	ucs-2 extended with double-words for more characters
u   utf-16le	like utf-16, little endian
u   ucs-4	32 bit UCS-4 encoded Unicode (ISO/IEC 10646-1)
u   ucs-4le	like ucs-4, little endian

The {name} can be any encoding name that your system supports.  It is passed
to iconv() to convert between the encoding of the file and the current locale.
For MS-Windows "cp{number}" means using codepage {number}.
Examples: >
		:set encoding=8bit-cp1252
		:set encoding=2byte-cp932

The MS-Windows codepage 1252 is very similar to latin1.  For practical reasons
the same encoding is used and it's called latin1.  'isprint' can be used to
display the characters 0x80 - 0xA0 or not.

Several aliases can be used, they are translated to one of the names above.
An incomplete list:

1   ansi	same as latin1 (obsolete, for backward compatibility)
2   japan	Japanese: on Unix "euc-jp", on MS-Windows cp932
2   korea	Korean: on Unix "euc-kr", on MS-Windows cp949
2   prc		simplified Chinese: on Unix "euc-cn", on MS-Windows cp936
2   chinese     same as "prc"
2   taiwan	traditional Chinese: on Unix "euc-tw", on MS-Windows cp950
u   utf8	same as utf-8
u   unicode	same as ucs-2
u   ucs2be	same as ucs-2 (big endian)
u   ucs-2be	same as ucs-2 (big endian)
u   ucs-4be	same as ucs-4 (big endian)
u   utf-32	same as ucs-4
u   utf-32le	same as ucs-4le
    default     stands for the default value of 'encoding', depends on the
		environment

For the UCS codes the byte order matters.  This is tricky, use UTF-8 whenever
you can.  The default is to use big-endian (most significant byte comes
first):
	    name	bytes		char ~
	    ucs-2	      11 22	    1122
	    ucs-2le	      22 11	    1122
	    ucs-4	11 22 33 44	11223344
	    ucs-4le	44 33 22 11	11223344

On MS-Windows systems you often want to use "ucs-2le", because it uses little
endian UCS-2.

There are a few encodings which are similar, but not exactly the same.  Vim
treats them as if they were different encodings, so that conversion will be
done when needed.  You might want to use the similar name to avoid conversion
or when conversion is not possible:

	cp932, shift-jis, sjis
	cp936, euc-cn

							*encoding-table*
Normally 'encoding' is equal to your current locale and 'termencoding' is
empty.  This means that your keyboard and display work with characters encoded
in your current locale, and Vim uses the same characters internally.

You can make Vim use characters in a different encoding by setting the
'encoding' option to a different value.  Since the keyboard and display still
use the current locale, conversion needs to be done.  The 'termencoding' then
takes over the value of the current locale, so Vim converts between 'encoding'
and 'termencoding'.  Example: >
	:let &termencoding = &encoding
	:set encoding=utf-8

However, not all combinations of values are possible.  The table below tells
you how each of the nine combinations works.  This is further restricted by
not all conversions being possible, iconv() being present, etc.  Since this
depends on the system used, no detailed list can be given.

('tenc' is the short name for 'termencoding' and 'enc' short for 'encoding')

'tenc'	    'enc'	remark ~

 8bit	    8bit	Works.  When 'termencoding' is different from
			'encoding' typing and displaying may be wrong for some
			characters, Vim does NOT perform conversion (set
			'encoding' to "utf-8" to get this).
 8bit      2byte	MS-Windows: works for all codepages installed on your
			system; you can only type 8bit characters;
			Other systems: does NOT work.
 8bit	   Unicode	Works, but only 8bit characters can be typed directly
			(others through digraphs, keymaps, etc.); in a
			terminal you can only see 8bit characters; the GUI can
			show all characters that the 'guifont' supports.

 2byte	    8bit	Works, but typing non-ASCII characters might
			be a problem.
 2byte	   2byte	MS-Windows: works for all codepages installed on your
			system; typing characters might be a problem when
			locale is different from 'encoding'.
			Other systems: Only works when 'termencoding' is equal
			to 'encoding', you might as well leave it empty.
 2byte	   Unicode	works, Vim will translate typed characters.

 Unicode    8bit	works (unusual)
 Unicode    2byte	does NOT work
 Unicode   Unicode	works very well (leaving 'termencoding' empty works
			the same way, because all Unicode is handled
			internally as UTF-8)

CONVERSION						*charset-conversion*

Vim will automatically convert from one to another encoding in several places:
- When reading a file and 'fileencoding' is different from 'encoding'
- When writing a file and 'fileencoding' is different from 'encoding'
- When displaying characters and 'termencoding' is different from 'encoding'
- When reading input and 'termencoding' is different from 'encoding'
- When displaying messages and the encoding used for LC_MESSAGES differs from
  'encoding' (requires a gettext version that supports this).
- When reading a Vim script where |:scriptencoding| is different from
  'encoding'.
- When reading or writing a |viminfo| file.
Most of these require the |+iconv| feature.  Conversion for reading and
writing files may also be specified with the 'charconvert' option.

Useful utilities for converting the charset:
    All:	    iconv
	GNU iconv can convert most encodings.  Unicode is used as the
	intermediate encoding, which allows conversion from and to all other
	encodings.  See http://www.gnu.org/directory/libiconv.html.

    Japanese:	    nkf
	Nkf is "Network Kanji code conversion Filter".  One of the most unique
	facility of nkf is the guess of the input Kanji code.  So, you don't
	need to know what the inputting file's |charset| is.  When convert to
	EUC-JP from ISO-2022-JP or Shift_JIS, simply do the following command
	in Vim:
	    :%!nkf -e
	Nkf can be found at:
	http://www.sfc.wide.ad.jp/~max/FreeBSD/ports/distfiles/nkf-1.62.tar.gz

    Chinese:	    hc
	Hc is "Hanzi Converter".  Hc convert a GB file to a Big5 file, or Big5
	file to GB file.  Hc can be found at:
	ftp://ftp.cuhk.hk/pub/chinese/ifcss/software/unix/convert/hc-30.tar.gz

    Korean:	    hmconv
	Hmconv is Korean code conversion utility especially for E-mail.  It can
	convert between EUC-KR and ISO-2022-KR.  Hmconv can be found at:
	ftp://ftp.kaist.ac.kr/pub/hangul/code/hmconv/

    Multilingual:   lv
	Lv is a Powerful Multilingual File Viewer.  And it can be worked as
	|charset| converter.  Supported |charset|: ISO-2022-CN, ISO-2022-JP,
	ISO-2022-KR, EUC-CN, EUC-JP, EUC-KR, EUC-TW, UTF-7, UTF-8, ISO-8859
	series, Shift_JIS, Big5 and HZ.  Lv can be found at:
	http://www.ff.iij4u.or.jp/~nrt/lv/index.html


							*mbyte-conversion*
When reading and writing files in an encoding different from 'encoding',
conversion needs to be done.  These conversions are supported:
- All conversions between Latin-1 (ISO-8859-1), UTF-8, UCS-2 and UCS-4 are
  handled internally.
- For MS-Windows, when 'encoding' is a Unicode encoding, conversion from and
  to any codepage should work.
- Conversion specified with 'charconvert'
- Conversion with the iconv library, if it is available.
	Old versions of GNU iconv() may cause the conversion to fail (they
	request a very large buffer, more than Vim is willing to provide).
	Try getting another iconv() implementation.

							*iconv-dynamic*
On MS-Windows Vim can be compiled with the |+iconv/dyn| feature.  This means
Vim will search for the "iconv.dll" and "libiconv.dll" libraries.  When
neither of them can be found Vim will still work but some conversions won't be
possible.

==============================================================================
4. Using a terminal					*mbyte-terminal*

The GUI fully supports multi-byte characters.  It is also possible in a
terminal, if the terminal supports the same encoding that Vim uses.  Thus this
is less flexible.

For example, you can run Vim in a xterm with added multi-byte support and/or
|XIM|.  Examples are kterm (Kanji term) and hanterm (for Korean), Eterm
(Enlightened terminal) and rxvt.

If your terminal does not support the right encoding, you can set the
'termencoding' option.  Vim will then convert the typed characters from
'termencoding' to 'encoding'.  And displayed text will be converted from
'encoding' to 'termencoding'.  If the encoding supported by the terminal
doesn't include all the characters that Vim uses, this leads to lost
characters.  This may mess up the display.  If you use a terminal that
supports Unicode, such as the xterm mentioned below, it should work just fine,
since nearly every character set can be converted to Unicode without loss of
information.


UTF-8 IN XFREE86 XTERM					*UTF8-xterm*

This is a short explanation of how to use UTF-8 character encoding in the
xterm that comes with XFree86 by Thomas Dickey (text by Markus Kuhn).

Get the latest xterm version which has now UTF-8 support:

	http://invisible-island.net/xterm/xterm.html

Compile it with "./configure --enable-wide-chars ; make"

Also get the ISO 10646-1 version of various fonts, which is available on

	http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz

and install the font as described in the README file.

Now start xterm with >

  xterm -u8 -fn -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
or, for bigger character: >
  xterm -u8 -fn -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1

and you will have a working UTF-8 terminal emulator.  Try both >

   cat utf-8-demo.txt
   vim utf-8-demo.txt

with the demo text that comes with ucs-fonts.tar.gz in order to see
whether there are any problems with UTF-8 in your xterm.

For Vim you may need to set 'encoding' to "utf-8".

==============================================================================
5.  Fonts on X11					*mbyte-fonts-X11*

Unfortunately, using fonts in X11 is complicated.  The name of a single-byte
font is a long string.  For multi-byte fonts we need several of these...

Note: Most of this is no longer relevant for GTK+ 2.  Selecting a font via
its XLFD is not supported; see 'guifont' for an example of how to
set the font.  Do yourself a favor and ignore the |XLFD| and |xfontset|
sections below.

First of all, Vim only accepts fixed-width fonts for displaying text.  You
cannot use proportionally spaced fonts.  This excludes many of the available
(and nicer looking) fonts.  However, for menus and tooltips any font can be
used.

Note that Display and Input are independent.  It is possible to see your
language even though you have no input method for it.

You should get a default font for menus and tooltips that works, but it might
be ugly.  Read the following to find out how to select a better font.


X LOGICAL FONT DESCRIPTION (XLFD)
							*XLFD*
XLFD is the X font name and contains the information about the font size,
charset, etc.  The name is in this format:

FOUNDRY-FAMILY-WEIGHT-SLANT-WIDTH-STYLE-PIXEL-POINT-X-Y-SPACE-AVE-CR-CE

Each field means:

- FOUNDRY:  FOUNDRY field.  The company that created the font.
- FAMILY:   FAMILY_NAME field.  Basic font family name.  (helvetica, gothic,
	    times, etc)
- WEIGHT:   WEIGHT_NAME field.  How thick the letters are.  (light, medium,
	    bold, etc)
- SLANT:    SLANT field.
		r:  Roman (no slant)
		i:  Italic
		o:  Oblique
		ri: Reverse Italic
		ro: Reverse Oblique
		ot: Other
		number:	Scaled font
- WIDTH:    SETWIDTH_NAME field.  Width of characters.  (normal, condensed,
	    narrow, double wide)
- STYLE:    ADD_STYLE_NAME field.  Extra info to describe font.  (Serif, Sans
	    Serif, Informal, Decorated, etc)
- PIXEL:    PIXEL_SIZE field.  Height, in pixels, of characters.
- POINT:    POINT_SIZE field.  Ten times height of characters in points.
- X:	    RESOLUTION_X field.  X resolution (dots per inch).
- Y:	    RESOLUTION_Y field.  Y resolution (dots per inch).
- SPACE:    SPACING field.
		p:  Proportional
		m:  Monospaced
		c:  CharCell
- AVE:	    AVERAGE_WIDTH field.  Ten times average width in pixels.
- CR:	    CHARSET_REGISTRY field.  The name of the charset group.
- CE:	    CHARSET_ENCODING field.  The rest of the charset name.  For some
	    charsets, such as JIS X 0208, if this field is 0, code points has
	    the same value as GL, and GR if 1.

For example, in case of a 16 dots font corresponding to JIS X 0208, it is
written like:
    -misc-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1990-0


X FONTSET
						*fontset* *xfontset*
A single-byte charset is typically associated with one font.  For multi-byte
charsets a combination of fonts is often used.  This means that one group of
characters are used from one font and another group from another font (which
might be double wide).  This collection of fonts is called a fontset.

Which fonts are required in a fontset depends on the current locale.  X
windows maintains a table of which groups of characters are required for a
locale.  You have to specify all the fonts that a locale requires in the
'guifontset' option.

NOTE: The fontset always uses the current locale, even though 'encoding' may
be set to use a different charset.  In that situation you might want to use
'guifont' and 'guifontwide' instead of 'guifontset'.

Example:
    |charset| language		    "groups of characters" ~
    GB2312    Chinese (simplified)  ISO-8859-1 and GB 2312
    Big5      Chinese (traditional) ISO-8859-1 and Big5
    CNS-11643 Chinese (traditional) ISO-8859-1, CNS 11643-1 and CNS 11643-2
    EUC-JP    Japanese		    JIS X 0201 and JIS X 0208
    EUC-KR    Korean		    ISO-8859-1 and KS C 5601 (KS X 1001)

You can search for fonts using the xlsfonts command.  For example, when you're
searching for a font for KS C 5601: >
    xlsfonts | grep ksc5601

This is complicated and confusing.  You might want to consult the X-Windows
documentation if there is something you don't understand.

						*base_font_name_list*
When you have found the names of the fonts you want to use, you need to set
the 'guifontset' option.  You specify the list by concatenating the font names
and putting a comma in between them.

For example, when you use the ja_JP.eucJP locale, this requires JIS X 0201
and JIS X 0208.  You could supply a list of fonts that explicitly specifies
the charsets, like: >

 :set guifontset=-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0,
	\-misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0

Alternatively, you can supply a base font name list that omits the charset
name, letting X-Windows select font characters required for the locale.  For
example: >

 :set guifontset=-misc-fixed-medium-r-normal--14-130-75-75-c-140,
	\-misc-fixed-medium-r-normal--14-130-75-75-c-70

Alternatively, you can supply a single base font name that allows X-Windows to
select from all available fonts.  For example: >

 :set guifontset=-misc-fixed-medium-r-normal--14-*

Alternatively, you can specify alias names.  See the fonts.alias file in the
fonts directory (e.g., /usr/X11R6/lib/X11/fonts/).  For example: >

 :set guifontset=k14,r14
<
							*E253*
Note that in East Asian fonts, the standard character cell is square.  When
mixing a Latin font and an East Asian font, the East Asian font width should
be twice the Latin font width.

If 'guifontset' is not empty, the "font" argument of the |:highlight| command
is also interpreted as a fontset.  For example, you should use for
highlighting: >
	:hi Comment font=english_font,your_font
If you use a wrong "font" argument you will get an error message.
Also make sure that you set 'guifontset' before setting fonts for highlight
groups.


USING RESOURCE FILES

Instead of specifying 'guifontset', you can set X11 resources and Vim will
pick them up.  This is only for people who know how X resource files work.

For Motif and Athena insert these three lines in your $HOME/.Xdefaults file:

	Vim.font: |base_font_name_list|
	Vim*fontSet: |base_font_name_list|
	Vim*fontList: your_language_font

Note: Vim.font is for text area.
      Vim*fontSet is for menu.
      Vim*fontList is for menu (for Motif GUI)

For example, when you are using Japanese and a 14 dots font, >

	Vim.font: -misc-fixed-medium-r-normal--14-*
	Vim*fontSet: -misc-fixed-medium-r-normal--14-*
	Vim*fontList: -misc-fixed-medium-r-normal--14-*
<
or: >

	Vim*font: k14,r14
	Vim*fontSet: k14,r14
	Vim*fontList: k14,r14
<
To have them take effect immediately you will have to do >

	xrdb -merge ~/.Xdefaults

Otherwise you will have to stop and restart the X server before the changes
take effect.


The GTK+ version of GUI Vim does not use .Xdefaults, use ~/.gtkrc instead.
The default mostly works OK.  But for the menus you might have to change
it.  Example: >

	style "default"
	{
		fontset="-*-*-medium-r-normal--14-*-*-*-c-*-*-*"
	}
	widget_class "*" style "default"

==============================================================================
6.  Fonts on MS-Windows				*mbyte-fonts-MSwin*

The simplest is to use the font dialog to select fonts and try them out.  You
can find this at the "Edit/Select Font..." menu.  Once you find a font name
that works well you can use this command to see its name: >

	:set guifont

Then add a command to your |gvimrc| file to set 'guifont': >

	:set guifont=courier_new:h12

==============================================================================
7.  Input on X11				*mbyte-XIM*

X INPUT METHOD (XIM) BACKGROUND			*XIM* *xim* *x-input-method*

XIM is an international input module for X.  There are two kinds of structures,
Xlib unit type and |IM-server| (Input-Method server) type.  |IM-server| type
is suitable for complex input, such as CJK.

- IM-server
							*IM-server*
  In |IM-server| type input structures, the input event is handled by either
  of the two ways: FrontEnd system and BackEnd system.  In the FrontEnd
  system, input events are snatched by the |IM-server| first, then |IM-server|
  give the application the result of input.  On the other hand, the BackEnd
  system works reverse order.  MS Windows adopt BackEnd system.  In X, most of
  |IM-server|s adopt FrontEnd system.  The demerit of BackEnd system is the
  large overhead in communication, but it provides safe synchronization with
  no restrictions on applications.

  For example, there are xwnmo and kinput2 Japanese |IM-server|, both are
  FrontEnd system.  Xwnmo is distributed with Wnn (see below), kinput2 can be
  found at: ftp://ftp.sra.co.jp/pub/x11/kinput2/

  For Chinese, there's a great XIM server named "xcin", you can input both
  Traditional and Simplified Chinese characters.  And it can accept other
  locale if you make a correct input table.  Xcin can be found at:
  http://cle.linux.org.tw/xcin/
  Others are scim: http://scim.freedesktop.org/ and fcitx:
  http://www.fcitx.org/

- Conversion Server
							*conversion-server*
  Some system needs additional server: conversion server.  Most of Japanese
  |IM-server|s need it, Kana-Kanji conversion server.  For Chinese inputting,
  it depends on the method of inputting, in some methods, PinYin or ZhuYin to
  HanZi conversion server is needed.  For Korean inputting, if you want to
  input Hanja, Hangul-Hanja conversion server is needed.

  For example, the Japanese inputting process is divided into 2 steps.  First
  we pre-input Hira-gana, second Kana-Kanji conversion.  There are so many
  Kanji characters (6349 Kanji characters are defined in JIS X 0208) and the
  number of Hira-gana characters are 76.  So, first, we pre-input text as
  pronounced in Hira-gana, second, we convert Hira-gana to Kanji or Kata-Kana,
  if needed.  There are some Kana-Kanji conversion server: jserver
  (distributed with Wnn, see below) and canna.  Canna can be found at:
  http://canna.sourceforge.jp/

There is a good input system: Wnn4.2.  Wnn 4.2 contains,
    xwnmo (|IM-server|)
    jserver (Japanese Kana-Kanji conversion server)
    cserver (Chinese PinYin or ZhuYin to simplified HanZi conversion server)
    tserver (Chinese PinYin or ZhuYin to traditional HanZi conversion server)
    kserver (Hangul-Hanja conversion server)
Wnn 4.2 for several systems can be found at various places on the internet.
Use the RPM or port for your system.


- Input Style
							*xim-input-style*
  When inputting CJK, there are four areas:
      1. The area to display of the input while it is being composed
      2. The area to display the currently active input mode.
      3. The area to display the next candidate for the selection.
      4. The area to display other tools.

  The third area is needed when converting.  For example, in Japanese
  inputting, multiple Kanji characters could have the same pronunciation, so
  a sequence of Hira-gana characters could map to a distinct sequence of Kanji
  characters.

  The first and second areas are defined in international input of X with the
  names of "Preedit Area", "Status Area" respectively.  The third and fourth
  areas are not defined and are left to be managed by the |IM-server|.  In the
  international input, four input styles have been defined using combinations
  of Preedit Area and Status Area: |OnTheSpot|, |OffTheSpot|, |OverTheSpot|
  and |Root|.

  Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and
  |Root|.
  When compiled with |+GUI_GTK| feature, GUI Vim supports two styles,
  |OnTheSpot| and |OverTheSpot|.  You can select the style with the 'imstyle'
  option.

*.  on-the-spot						*OnTheSpot*
    Preedit Area and Status Area are performed by the client application in
    the area of application.  The client application is directed by the
    |IM-server| to display all pre-edit data at the location of text
    insertion.  The client registers callbacks invoked by the input method
    during pre-editing.
*.  over-the-spot					*OverTheSpot*
    Status Area is created in a fixed position within the area of application,
    in case of Vim, the position is the additional status line.  Preedit Area
    is made at present input position of application.  The input method
    displays pre-edit data in a window which it brings up directly over the
    text insertion position.
*.  off-the-spot					*OffTheSpot*
    Preedit Area and Status Area are performed in the area of application, in
    case of Vim, the area is additional status line.  The client application
    provides display windows for the pre-edit data to the input method which
    displays into them directly.
*.  root-window						*Root*
    Preedit Area and Status Area are outside of the application.  The input
    method displays all pre-edit data in a separate area of the screen in a
    window specific to the input method.


USING XIM			*multibyte-input* *E284* *E286* *E287* *E288*
				*E285* *E289*

Note that Display and Input are independent.  It is possible to see your
language even though you have no input method for it.  But when your Display
method doesn't match your Input method, the text will be displayed wrong.

	Note: You can not use IM unless you specify 'guifontset'.
	      Therefore, Latin users, you have to also use 'guifontset'
	      if you use IM.

To input your language you should run the |IM-server| which supports your
language and |conversion-server| if needed.

The next 3 lines should be put in your ~/.Xdefaults file.  They are common for
all X applications which uses |XIM|.  If you already use |XIM|, you can skip
this. >

	*international: True
	*.inputMethod: your_input_server_name
	*.preeditType: your_input_style
<
input_server_name	is your |IM-server| name (check your |IM-server|
			manual).
your_input_style	is one of |OverTheSpot|, |OffTheSpot|, |Root|.  See
			also |xim-input-style|.

*international may not necessary if you use X11R6.
*.inputMethod and *.preeditType are optional if you use X11R6.

For example, when you are using kinput2 as |IM-server|, >

	*international: True
	*.inputMethod: kinput2
	*.preeditType: OverTheSpot
<
When using |OverTheSpot|, GUI Vim always connects to the IM Server even in
Normal mode, so you can input your language with commands like "f" and "r".
But when using one of the other two methods, GUI Vim connects to the IM Server
only if it is not in Normal mode.

If your IM Server does not support |OverTheSpot|, and if you want to use your
language with some Normal mode command like "f" or "r", then you should use a
localized xterm  or an xterm which supports |XIM|

If needed, you can set the XMODIFIERS environment variable:

	sh:  export XMODIFIERS="@im=input_server_name"
	csh: setenv XMODIFIERS "@im=input_server_name"

For example, when you are using kinput2 as |IM-server| and sh, >

	export XMODIFIERS="@im=kinput2"
<

FULLY CONTROLLED XIM

You can fully control XIM, like with IME of MS-Windows (see |multibyte-ime|).
This is currently only available for the GTK GUI.

Before using fully controlled XIM, one setting is required.  Set the
'imactivatekey' option to the key that is used for the activation of the input
method.  For example, when you are using kinput2 + canna as IM Server, the
activation key is probably Shift+Space: >

	:set imactivatekey=S-space

See 'imactivatekey' for the format.

==============================================================================
8.  Input on MS-Windows					*mbyte-IME*

(Windows IME support)				*multibyte-ime* *IME*

{only works Windows GUI and compiled with the |+multi_byte_ime| feature}

To input multibyte characters on Windows, you can use an Input Method Editor
(IME).  In process of your editing text, you must switch status (on/off) of
IME many many many times.  Because IME with status on is hooking all of your
key inputs, you cannot input 'j', 'k', or almost all of keys to Vim directly.

This |+multi_byte_ime| feature help this.  It reduce times of switch status of
IME manually.  In normal mode, there are almost no need working IME, even
editing multibyte text.  So exiting insert mode with ESC, Vim memorize last
status of IME and force turn off IME.  When re-enter insert mode, Vim revert
IME status to that memorized automatically.

This works on not only insert-normal mode, but also search-command input and
replace mode.
The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
the different input methods or disable them temporarily.

WHAT IS IME
    IME is a part of East asian version Windows.  That helps you to input
    multibyte character.  English and other language version Windows does not
    have any IME.  (Also there is no need usually.) But there is one that
    called Microsoft Global IME.  Global IME is a part of Internet Explorer
    4.0 or above.  You can get more information about Global IME, at below
    URL.

WHAT IS GLOBAL IME					*global-ime*
    Global IME makes capability to input Chinese, Japanese, and Korean text
    into Vim buffer on any language version of Windows 98, Windows 95, and
    Windows NT 4.0.
    On Windows 2000 and XP it should work as well (without downloading).  On
    Windows 2000 Professional, Global IME is built in, and the Input Locales
    can be added through Control Panel/Regional Options/Input Locales.
    Please see below URL for detail of Global IME.  You can also find various
    language version of Global IME at same place.

    - Global IME detailed information.
	http://search.microsoft.com/results.aspx?q=global+ime

    - Active Input Method Manager (Global IME)
	http://msdn.microsoft.com/en-us/library/aa741221(v=VS.85).aspx

    Support for Global IME is an experimental feature.

NOTE: For IME to work you must make sure the input locales of your language
are added to your system.  The exact location of this depends on the version
of Windows you use.  For example, on my Windows 2000 box:
1. Control Panel
2. Regional Options
3. Input Locales Tab
4. Add Installed input locales -> Chinese(PRC)
   The default is still English (United Stated)


Cursor color when IME or XIM is on				*CursorIM*
    There is a little cute feature for IME.  Cursor can indicate status of IME
    by changing its color.  Usually status of IME was indicated by little icon
    at a corner of desktop (or taskbar).  It is not easy to verify status of
    IME.  But this feature help this.
    This works in the same way when using XIM.

    You can select cursor color when status is on by using highlight group
    CursorIM.  For example, add these lines to your |gvimrc|: >

	if has('multi_byte_ime')
	    highlight Cursor guifg=NONE guibg=Green
	    highlight CursorIM guifg=NONE guibg=Purple
	endif
<
    Cursor color with off IME is green.  And purple cursor indicates that
    status is on.

==============================================================================
9. Input with a keymap					*mbyte-keymap*

When the keyboard doesn't produce the characters you want to enter in your
text, you can use the 'keymap' option.  This will translate one or more
(English) characters to another (non-English) character.  This only happens
when typing text, not when typing Vim commands.  This avoids having to switch
between two keyboard settings.
{only available when compiled with the |+keymap| feature}

The value of the 'keymap' option specifies a keymap file to use.  The name of
this file is one of these two:

	keymap/{keymap}_{encoding}.vim
	keymap/{keymap}.vim

Here {keymap} is the value of the 'keymap' option and {encoding} of the
'encoding' option.  The file name with the {encoding} included is tried first.

'runtimepath' is used to find these files.  To see an overview of all
available keymap files, use this: >
	:echo globpath(&rtp, "keymap/*.vim")

In Insert and Command-line mode you can use CTRL-^ to toggle between using the
keyboard map or not. |i_CTRL-^| |c_CTRL-^|
This flag is remembered for Insert mode with the 'iminsert' option.  When
leaving and entering Insert mode the previous value is used.  The same value
is also used for commands that take a single character argument, like |f| and
|r|.
For Command-line mode the flag is NOT remembered.  You are expected to type an
Ex command first, which is ASCII.
For typing search patterns the 'imsearch' option is used.  It can be set to
use the same value as for 'iminsert'.
								*lCursor*
It is possible to give the GUI cursor another color when the language mappings
are being used.  This is disabled by default, to avoid that the cursor becomes
invisible when you use a non-standard background color.  Here is an example to
use a brightly colored cursor: >
	:highlight Cursor guifg=NONE guibg=Green
	:highlight lCursor guifg=NONE guibg=Cyan
<
		*keymap-file-format* *:loadk* *:loadkeymap* *E105* *E791*
The keymap file looks something like this: >

	" Maintainer:	name <email@address>
	" Last Changed:	2001 Jan 1

	let b:keymap_name = "short"

	loadkeymap
	a	A
	b	B	comment

The lines starting with a " are comments and will be ignored.  Blank lines are
also ignored.  The lines with the mappings may have a comment after the useful
text.

The "b:keymap_name" can be set to a short name, which will be shown in the
status line.  The idea is that this takes less room than the value of
'keymap', which might be long to distinguish between different languages,
keyboards and encodings.

The actual mappings are in the lines below "loadkeymap".  In the example "a"
is mapped to "A" and "b" to "B".  Thus the first item is mapped to the second
item.  This is done for each line, until the end of the file.
These items are exactly the same as what can be used in a |:lnoremap| command,
using "<buffer>" to make the mappings local to the buffer.
You can check the result with this command: >
	:lmap
The two items must be separated by white space.  You cannot include white
space inside an item, use the special names "<Tab>" and "<Space>" instead.
The length of the two items together must not exceed 200 bytes.

It's possible to have more than one character in the first column.  This works
like a dead key.  Example: >
	'a	á
Since Vim doesn't know if the next character after a quote is really an "a",
it will wait for the next character.  To be able to insert a single quote,
also add this line: >
	''	'
Since the mapping is defined with |:lnoremap| the resulting quote will not be
used for the start of another character.
The "accents" keymap uses this.				*keymap-accents*

The first column can also be in |<>| form:
	<C-c>		Ctrl-C
	<A-c>		Alt-c
	<A-C>		Alt-C
Note that the Alt mappings may not work, depending on your keyboard and
terminal.

Although it's possible to have more than one character in the second column,
this is unusual.  But you can use various ways to specify the character: >
	A	a		literal character
	A	<char-97>	decimal value
	A	<char-0x61>	hexadecimal value
	A	<char-0141>	octal value
	x	<Space>		special key name

The characters are assumed to be encoded for the current value of 'encoding'.
It's possible to use ":scriptencoding" when all characters are given
literally.  That doesn't work when using the <char-> construct, because the
conversion is done on the keymap file, not on the resulting character.

The lines after "loadkeymap" are interpreted with 'cpoptions' set to "C".
This means that continuation lines are not used and a backslash has a special
meaning in the mappings.  Examples: >

	" a comment line
	\"	x	maps " to x
	\\	y	maps \ to y

If you write a keymap file that will be useful for others, consider submitting
it to the Vim maintainer for inclusion in the distribution:
<maintainer@vim.org>


HEBREW KEYMAP						*keymap-hebrew*

This file explains what characters are available in UTF-8 and CP1255 encodings,
and what the keymaps are to get those characters:

glyph   encoding	   keymap ~
Char   utf-8 cp1255  hebrew  hebrewp  name ~
א    0x5d0  0xe0     t	      a     'alef
ב    0x5d1  0xe1     c	      b     bet
ג    0x5d2  0xe2     d	      g     gimel
ד    0x5d3  0xe3     s	      d     dalet
ה    0x5d4  0xe4     v	      h     he
ו    0x5d5  0xe5     u	      v     vav
ז    0x5d6  0xe6     z	      z     zayin
ח    0x5d7  0xe7     j	      j     het
ט    0x5d8  0xe8     y	      T     tet
י    0x5d9  0xe9     h	      y     yod
ך    0x5da  0xea     l	      K     kaf sofit
כ    0x5db  0xeb     f	      k     kaf
ל    0x5dc  0xec     k	      l     lamed
ם    0x5dd  0xed     o	      M     mem sofit
מ    0x5de  0xee     n	      m     mem
ן    0x5df  0xef     i	      N     nun sofit
נ    0x5e0  0xf0     b	      n     nun
ס    0x5e1  0xf1     x	      s     samech
ע    0x5e2  0xf2     g	      u     `ayin
ף    0x5e3  0xf3     ;	      P     pe sofit
פ    0x5e4  0xf4     p	      p     pe
ץ    0x5e5  0xf5     .	      X     tsadi sofit
צ    0x5e6  0xf6     m	      x     tsadi
ק    0x5e7  0xf7     e	      q     qof
ר    0x5e8  0xf8     r	      r     resh
ש    0x5e9  0xf9     a	      w     shin
ת    0x5ea  0xfa     ,	      t     tav

Vowel marks and special punctuation:
הְ    0x5b0  0xc0     A:      A:   sheva
הֱ    0x5b1  0xc1     HE      HE   hataf segol
הֲ    0x5b2  0xc2     HA      HA   hataf patah
הֳ    0x5b3  0xc3     HO      HO   hataf qamats
הִ    0x5b4  0xc4     I       I    hiriq
הֵ    0x5b5  0xc5     AY      AY   tsere
הֶ    0x5b6  0xc6     E       E    segol
הַ    0x5b7  0xc7     AA      AA   patah
הָ    0x5b8  0xc8     AO      AO   qamats
הֹ    0x5b9  0xc9     O       O    holam
הֻ    0x5bb  0xcb     U       U    qubuts
כּ    0x5bc  0xcc     D       D    dagesh
הֽ    0x5bd  0xcd     ]T      ]T   meteg
ה־   0x5be  0xce     ]Q      ]Q   maqaf
בֿ    0x5bf  0xcf     ]R      ]R   rafe
ב׀   0x5c0  0xd0     ]p      ]p   paseq
שׁ    0x5c1  0xd1     SR      SR   shin-dot
שׂ    0x5c2  0xd2     SL      SL   sin-dot
׃    0x5c3  0xd3     ]P      ]P   sof-pasuq
װ    0x5f0  0xd4     VV      VV   double-vav
ױ    0x5f1  0xd5     VY      VY   vav-yod
ײ    0x5f2  0xd6     YY      YY   yod-yod

The following are only available in utf-8

Cantillation marks:
glyph
Char utf-8 hebrew name
ב֑    0x591   C:   etnahta
ב֒    0x592   Cs   segol
ב֓    0x593   CS   shalshelet
ב֔    0x594   Cz   zaqef qatan
ב֕    0x595   CZ   zaqef gadol
ב֖    0x596   Ct   tipeha
ב֗    0x597   Cr   revia
ב֘    0x598   Cq   zarqa
ב֙    0x599   Cp   pashta
ב֚    0x59a   C!   yetiv
ב֛    0x59b   Cv   tevir
ב֜    0x59c   Cg   geresh
ב֝    0x59d   C*   geresh qadim
ב֞    0x59e   CG   gershayim
ב֟    0x59f   CP   qarnei-parah
ב֪    0x5aa   Cy   yerach-ben-yomo
ב֫    0x5ab   Co   ole
ב֬    0x5ac   Ci   iluy
ב֭    0x5ad   Cd   dehi
ב֮    0x5ae   Cn   zinor
ב֯    0x5af   CC   masora circle

Combining forms:
ﬠ    0xfb20  X`   Alternative `ayin
ﬡ    0xfb21  X'   Alternative 'alef
ﬢ    0xfb22  X-d  Alternative dalet
ﬣ    0xfb23  X-h  Alternative he
ﬤ    0xfb24  X-k  Alternative kaf
ﬥ    0xfb25  X-l  Alternative lamed
ﬦ    0xfb26  X-m  Alternative mem-sofit
ﬧ    0xfb27  X-r  Alternative resh
ﬨ    0xfb28  X-t  Alternative tav
﬩    0xfb29  X-+  Alternative plus
שׁ    0xfb2a  XW   shin+shin-dot
שׂ    0xfb2b  Xw   shin+sin-dot
שּׁ    0xfb2c  X..W  shin+shin-dot+dagesh
שּׂ    0xfb2d  X..w  shin+sin-dot+dagesh
אַ    0xfb2e  XA   alef+patah
אָ    0xfb2f  XO   alef+qamats
אּ    0xfb30  XI   alef+hiriq (mapiq)
בּ    0xfb31  X.b  bet+dagesh
גּ    0xfb32  X.g  gimel+dagesh
דּ    0xfb33  X.d  dalet+dagesh
הּ    0xfb34  X.h  he+dagesh
וּ    0xfb35  Xu  vav+dagesh
זּ    0xfb36  X.z  zayin+dagesh
טּ    0xfb38  X.T  tet+dagesh
יּ    0xfb39  X.y  yud+dagesh
ךּ    0xfb3a  X.K  kaf sofit+dagesh
כּ    0xfb3b  X.k  kaf+dagesh
לּ    0xfb3c  X.l  lamed+dagesh
מּ    0xfb3e  X.m  mem+dagesh
נּ    0xfb40  X.n  nun+dagesh
סּ    0xfb41  X.s  samech+dagesh
ףּ    0xfb43  X.P  pe sofit+dagesh
פּ    0xfb44  X.p  pe+dagesh
צּ    0xfb46  X.x  tsadi+dagesh
קּ    0xfb47  X.q  qof+dagesh
רּ    0xfb48  X.r  resh+dagesh
שּ    0xfb49  X.w  shin+dagesh
תּ    0xfb4a  X.t  tav+dagesh
וֹ    0xfb4b  Xo   vav+holam
בֿ    0xfb4c  XRb  bet+rafe
כֿ    0xfb4d  XRk  kaf+rafe
פֿ    0xfb4e  XRp  pe+rafe
ﭏ    0xfb4f  Xal  alef-lamed

==============================================================================
10.  Input with imactivatefunc()				*mbyte-func*

Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to
activate/deactivate the input method from Vim in any way, also with an external
command. For example, fcitx provide fcitx-remote command: >

	set iminsert=2
	set imsearch=2
	set imcmdline

	set imactivatefunc=ImActivate
	function! ImActivate(active)
	  if a:active
	    call system('fcitx-remote -o')
	  else
	    call system('fcitx-remote -c')
	  endif
	endfunction

	set imstatusfunc=ImStatus
	function! ImStatus()
	  return system('fcitx-remote')[0] is# '2'
	endfunction

Using this script, you can activate/deactivate XIM via Vim even when it is not
compiled with |+xim|.

==============================================================================
11. Using UTF-8				*mbyte-utf8* *UTF-8* *utf-8* *utf8*
							*Unicode* *unicode*
The Unicode character set was designed to include all characters from other
character sets.  Therefore it is possible to write text in any language using
Unicode (with a few rarely used languages excluded).  And it's mostly possible
to mix these languages in one file, which is impossible with other encodings.

Unicode can be encoded in several ways.  The most popular one is UTF-8, which
uses one or more bytes for each character and is backwards compatible with
ASCII.   On MS-Windows UTF-16 is also used (previously UCS-2), which uses
16-bit words.  Vim can support all of these encodings, but always uses UTF-8
internally.

Vim has comprehensive UTF-8 support.  It works well in:
- xterm with utf-8 support enabled
- Athena, Motif and GTK GUI
- MS-Windows GUI
- several other platforms

Double-width characters are supported.  This works best with 'guifontwide' or
'guifontset'.  When using only 'guifont' the wide characters are drawn in the
normal width and a space to fill the gap.  Note that the 'guifontset' option
is no longer relevant in the GTK+ 2 GUI.

							*bom-bytes*
When reading a file a BOM (Byte Order Mark) can be used to recognize the
Unicode encoding:
	EF BB BF     utf-8
	FE FF        utf-16 big endian
	FF FE        utf-16 little endian
	00 00 FE FF  utf-32 big endian
	FF FE 00 00  utf-32 little endian

Utf-8 is the recommended encoding.  Note that it's difficult to tell utf-16
and utf-32 apart.  Utf-16 is often used on MS-Windows, utf-32 is not
widespread as file format.


					*mbyte-combining* *mbyte-composing*
A composing or combining character is used to change the meaning of the
character before it.  The combining characters are drawn on top of the
preceding character.
Up to two combining characters can be used by default.  This can be changed
with the 'maxcombine' option.
When editing text a composing character is mostly considered part of the
preceding character.  For example "x" will delete a character and its
following composing characters by default.
If the 'delcombine' option is on, then pressing 'x' will delete the combining
characters, one at a time, then the base character.  But when inserting, you
type the first character and the following composing characters separately,
after which they will be joined.  The "r" command will not allow you to type a
combining character, because it doesn't know one is coming.  Use "R" instead.

Bytes which are not part of a valid UTF-8 byte sequence are handled like a
single character and displayed as <xx>, where "xx" is the hex value of the
byte.

Overlong sequences are not handled specially and displayed like a valid
character.  However, search patterns may not match on an overlong sequence.
(an overlong sequence is where more bytes are used than required for the
character.)  An exception is NUL (zero) which is displayed as "<00>".

In the file and buffer the full range of Unicode characters can be used (31
bits).  However, displaying only works for the characters present in the
selected font.

Useful commands:
- "ga" shows the decimal, hexadecimal and octal value of the character under
  the cursor.  If there are composing characters these are shown too.  (If the
  message is truncated, use ":messages").
- "g8" shows the bytes used in a UTF-8 character, also the composing
  characters, as hex numbers.
- ":set encoding=utf-8 fileencodings=" forces using UTF-8 for all files.  The
  default is to use the current locale for 'encoding' and set 'fileencodings'
  to automatically detect the encoding of a file.


STARTING VIM

If your current locale is in an utf-8 encoding, Vim will automatically start
in utf-8 mode.

If you are using another locale: >

	set encoding=utf-8

You might also want to select the font used for the menus.  Unfortunately this
doesn't always work.  See the system specific remarks below, and 'langmenu'.


USING UTF-8 IN X-Windows				*utf-8-in-xwindows*

Note: This section does not apply to the GTK+ 2 GUI.

You need to specify a font to be used.  For double-wide characters another
font is required, which is exactly twice as wide.  There are three ways to do
this:

1. Set 'guifont' and let Vim find a matching 'guifontwide'
2. Set 'guifont' and 'guifontwide'
3. Set 'guifontset'

See the documentation for each option for details.  Example: >

   :set guifont=-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1

You might also want to set the font used for the menus.  This only works for
Motif.  Use the ":hi Menu font={fontname}" command for this. |:highlight|


TYPING UTF-8						*utf-8-typing*

If you are using X-Windows, you should find an input method that supports
utf-8.

If your system does not provide support for typing utf-8, you can use the
'keymap' feature.  This allows writing a keymap file, which defines a utf-8
character as a sequence of ASCII characters.  See |mbyte-keymap|.

Another method is to set the current locale to the language you want to use
and for which you have a XIM available.  Then set 'termencoding' to that
language and Vim will convert the typed characters to 'encoding' for you.

If everything else fails, you can type any character as four hex bytes: >

	CTRL-V u 1234

"1234" is interpreted as a hex number.  You must type four characters, prepend
a zero if necessary.


COMMAND ARGUMENTS					*utf-8-char-arg*

Commands like |f|, |F|, |t| and |r| take an argument of one character.  For
UTF-8 this argument may include one or two composing characters.  These need
to be produced together with the base character, Vim doesn't wait for the next
character to be typed to find out if it is a composing character or not.
Using 'keymap' or |:lmap| is a nice way to type these characters.

The commands that search for a character in a line handle composing characters
as follows.  When searching for a character without a composing character,
this will find matches in the text with or without composing characters.  When
searching for a character with a composing character, this will only find
matches with that composing character.  It was implemented this way, because
not everybody is able to type a composing character.


==============================================================================
12. Overview of options					*mbyte-options*

These options are relevant for editing multi-byte files.  Check the help in
options.txt for detailed information.

'encoding'	Encoding used for the keyboard and display.  It is also the
		default encoding for files.

'fileencoding'	Encoding of a file.  When it's different from 'encoding'
		conversion is done when reading or writing the file.

'fileencodings'	List of possible encodings of a file.  When opening a file
		these will be tried and the first one that doesn't cause an
		error is used for 'fileencoding'.

'charconvert'	Expression used to convert files from one encoding to another.

'formatoptions' The 'm' flag can be included to have formatting break a line
		at a multibyte character of 256 or higher.  Thus is useful for
		languages where a sequence of characters can be broken
		anywhere.

'guifontset'	The list of font names used for a multi-byte encoding.  When
		this option is not empty, it replaces 'guifont'.

'keymap'	Specify the name of a keyboard mapping.

==============================================================================

Contributions specifically for the multi-byte features by:
	Chi-Deok Hwang <hwang@mizi.co.kr>
	SungHyun Nam <goweol@gmail.com>
	K.Nagano <nagano@atese.advantest.co.jp>
	Taro Muraoka  <koron@tka.att.ne.jp>
	Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>

 vim:tw=78:ts=8:ft=help:norl:
PK�j�ZɻVP�5�5vim80/doc/usr_42.txtnu�[���*usr_42.txt*	For Vim version 8.0.  Last change: 2008 May 05

		     VIM USER MANUAL - by Bram Moolenaar

			      Add new menus


By now you know that Vim is very flexible.  This includes the menus used in
the GUI.  You can define your own menu entries to make certain commands easily
accessible.  This is for mouse-happy users only.

|42.1|	Introduction
|42.2|	Menu commands
|42.3|	Various
|42.4|	Toolbar and popup menus

     Next chapter: |usr_43.txt|  Using filetypes
 Previous chapter: |usr_41.txt|  Write a Vim script
Table of contents: |usr_toc.txt|

==============================================================================
*42.1*	Introduction

The menus that Vim uses are defined in the file "$VIMRUNTIME/menu.vim".  If
you want to write your own menus, you might first want to look through that
file.
   To define a menu item, use the ":menu" command.  The basic form of this
command is as follows: >

	:menu {menu-item} {keys}

The {menu-item} describes where on the menu to put the item.  A typical
{menu-item} is "File.Save", which represents the item "Save" under the
"File" menu.  A dot is used to separate the names.  Example: >

	:menu File.Save  :update<CR>

The ":update" command writes the file when it was modified.
   You can add another level: "Edit.Settings.Shiftwidth" defines a submenu
"Settings" under the "Edit" menu, with an item "Shiftwidth".  You could use
even deeper levels.  Don't use this too much, you need to move the mouse quite
a bit to use such an item.
   The ":menu" command is very similar to the ":map" command: the left side
specifies how the item is triggered and the right hand side defines the
characters that are executed.  {keys} are characters, they are used just like
you would have typed them.  Thus in Insert mode, when {keys} is plain text,
that text is inserted.


ACCELERATORS

The ampersand character (&) is used to indicate an accelerator.  For instance,
you can use Alt-F to select "File" and S to select "Save".  (The 'winaltkeys'
option may disable this though!).  Therefore, the {menu-item} looks like
"&File.&Save".  The accelerator characters will be underlined in the menu.
   You must take care that each key is used only once in each menu.  Otherwise
you will not know which of the two will actually be used.  Vim doesn't warn
you for this.


PRIORITIES

The actual definition of the File.Save menu item is as follows: >

	:menu 10.340 &File.&Save<Tab>:w  :confirm w<CR>

The number 10.340 is called the priority number.  It is used by the editor to
decide where it places the menu item.  The first number (10) indicates the
position on the menu bar.  Lower numbered menus are positioned to the left,
higher numbers to the right.
   These are the priorities used for the standard menus:

	  10	20     40     50      60       70		9999

	+------------------------------------------------------------+
	| File	Edit  Tools  Syntax  Buffers  Window		Help |
	+------------------------------------------------------------+

Notice that the Help menu is given a very high number, to make it appear on
the far right.
   The second number (340) determines the location of the item within the
pull-down menu.  Lower numbers go on top, higher number on the bottom.  These
are the priorities in the File menu:

			+-----------------+
	    10.310	|Open...	  |
	    10.320	|Split-Open...	  |
	    10.325	|New		  |
	    10.330	|Close		  |
	    10.335	|---------------- |
	    10.340	|Save		  |
	    10.350	|Save As...	  |
	    10.400	|---------------- |
	    10.410	|Split Diff with  |
	    10.420	|Split Patched By |
	    10.500	|---------------- |
	    10.510	|Print		  |
	    10.600	|---------------- |
	    10.610	|Save-Exit	  |
	    10.620	|Exit		  |
			+-----------------+

Notice that there is room in between the numbers.  This is where you can
insert your own items, if you really want to (it's often better to leave the
standard menus alone and add a new menu for your own items).
   When you create a submenu, you can add another ".number" to the priority.
Thus each name in {menu-item} has its priority number.


SPECIAL CHARACTERS

The {menu-item} in this example is "&File.&Save<Tab>:w".  This brings up an
important point: {menu-item} must be one word.  If you want to put a dot,
space or tabs in the name, you either use the <> notation (<Space> and <Tab>,
for instance) or use the backslash (\) escape. >

	:menu 10.305 &File.&Do\ It\.\.\. :exit<CR>

In this example, the name of the menu item "Do It..." contains a space and the
command is ":exit<CR>".

The <Tab> character in a menu name is used to separate the part that defines
the menu name from the part that gives a hint to the user.  The part after the
<Tab> is displayed right aligned in the menu.  In the File.Save menu the name
used is "&File.&Save<Tab>:w".  Thus the menu name is "File.Save" and the hint
is ":w".


SEPARATORS

The separator lines, used to group related menu items together, can be defined
by using a name that starts and ends in a '-'.  For example "-sep-".  When
using several separators the names must be different.  Otherwise the names
don't matter.
   The command from a separator will never be executed, but you have to define
one anyway.  A single colon will do.  Example: >

	:amenu 20.510 Edit.-sep3- :

==============================================================================
*42.2*	Menu commands

You can define menu items that exist for only certain modes.  This works just
like the variations on the ":map" command:

	:menu		Normal, Visual and Operator-pending mode
	:nmenu		Normal mode
	:vmenu		Visual mode
	:omenu		Operator-pending mode
	:menu!		Insert and Command-line mode
	:imenu		Insert mode
	:cmenu		Command-line mode
	:amenu		All modes

To avoid that the commands of a menu item are being mapped, use the command
":noremenu", ":nnoremenu", ":anoremenu", etc.


USING :AMENU

The ":amenu" command is a bit different.  It assumes that the {keys} you
give are to be executed in Normal mode.  When Vim is in Visual or Insert mode
when the menu is used, Vim first has to go back to Normal mode.  ":amenu"
inserts a CTRL-C or CTRL-O for you.  For example, if you use this command:
>
	:amenu  90.100 Mine.Find\ Word  *

Then the resulting menu commands will be:

	Normal mode:		*
	Visual mode:		CTRL-C *
	Operator-pending mode:	CTRL-C *
	Insert mode:		CTRL-O *
	Command-line mode:	CTRL-C *

When in Command-line mode the CTRL-C will abandon the command typed so far.
In Visual and Operator-pending mode CTRL-C will stop the mode.  The CTRL-O in
Insert mode will execute the command and then return to Insert mode.
   CTRL-O only works for one command.  If you need to use two or more
commands, put them in a function and call that function.  Example: >

	:amenu  Mine.Next\ File  :call <SID>NextFile()<CR>
	:function <SID>NextFile()
	:  next
	:  1/^Code
	:endfunction

This menu entry goes to the next file in the argument list with ":next".  Then
it searches for the line that starts with "Code".
   The <SID> before the function name is the script ID.  This makes the
function local to the current Vim script file.  This avoids problems when a
function with the same name is defined in another script file.  See |<SID>|.


SILENT MENUS

The menu executes the {keys} as if you typed them.  For a ":" command this
means you will see the command being echoed on the command line.  If it's a
long command, the hit-Enter prompt will appear.  That can be very annoying!
   To avoid this, make the menu silent.  This is done with the <silent>
argument.  For example, take the call to NextFile() in the previous example.
When you use this menu, you will see this on the command line:

	:call <SNR>34_NextFile() ~

To avoid this text on the command line, insert "<silent>" as the first
argument: >

	:amenu <silent> Mine.Next\ File :call <SID>NextFile()<CR>

Don't use "<silent>" too often.  It is not needed for short commands.  If you
make a menu for someone else, being able the see the executed command will
give him a hint about what he could have typed, instead of using the mouse.


LISTING MENUS

When a menu command is used without a {keys} part, it lists the already
defined menus.  You can specify a {menu-item}, or part of it, to list specific
menus.  Example: >

	:amenu

This lists all menus.  That's a long list!  Better specify the name of a menu
to get a shorter list: >

	:amenu Edit

This lists only the "Edit" menu items for all modes.  To list only one
specific menu item for Insert mode: >

	:imenu Edit.Undo

Take care that you type exactly the right name.  Case matters here.  But the
'&' for accelerators can be omitted.  The <Tab> and what comes after it can be
left out as well.


DELETING MENUS

To delete a menu, the same command is used as for listing, but with "menu"
changed to "unmenu".  Thus ":menu" becomes, ":unmenu", ":nmenu" becomes
":nunmenu", etc.  To delete the "Tools.Make" item for Insert mode: >

	:iunmenu Tools.Make

You can delete a whole menu, with all its items, by using the menu name.
Example: >

	:aunmenu Syntax

This deletes the Syntax menu and all the items in it.

==============================================================================
*42.3*	Various

You can change the appearance of the menus with flags in 'guioptions'.  In the
default value they are all included, except "M".  You can remove a flag with a
command like: >

	:set guioptions-=m
<
	m		When removed the menubar is not displayed.

	M		When added the default menus are not loaded.

	g		When removed the inactive menu items are not made grey
			but are completely removed.  (Does not work on all
			systems.)

	t		When removed the tearoff feature is not enabled.

The dotted line at the top of a menu is not a separator line.  When you select
this item, the menu is "teared-off": It is displayed in a separate window.
This is called a tearoff menu.  This is useful when you use the same menu
often.

For translating menu items, see |:menutrans|.

Since the mouse has to be used to select a menu item, it is a good idea to use
the ":browse" command for selecting a file.  And ":confirm" to get a dialog
instead of an error message, e.g., when the current buffer contains changes.
These two can be combined: >

	:amenu File.Open  :browse confirm edit<CR>

The ":browse" makes a file browser appear to select the file to edit.  The
":confirm" will pop up a dialog when the current buffer has changes.  You can
then select to save the changes, throw them away or cancel the command.
   For more complicated items, the confirm() and inputdialog() functions can
be used.  The default menus contain a few examples.

==============================================================================
*42.4*	Toolbar and popup menus

There are two special menus: ToolBar and PopUp.  Items that start with these
names do not appear in the normal menu bar.


TOOLBAR

The toolbar appears only when the "T" flag is included in the 'guioptions'
option.
   The toolbar uses icons rather than text to represent the command.  For
example, the {menu-item} named "ToolBar.New" causes the "New" icon to appear
on the toolbar.
   The Vim editor has 28 built-in icons.  You can find a table here:
|builtin-tools|.  Most of them are used in the default toolbar.  You can
redefine what these items do (after the default menus are setup).
   You can add another bitmap for a toolbar item.  Or define a new toolbar
item with a bitmap.  For example, define a new toolbar item with: >

	:tmenu ToolBar.Compile  Compile the current file
	:amenu ToolBar.Compile  :!cc %:S -o %:r:S<CR>

Now you need to create the icon.  For MS-Windows it must be in bitmap format,
with the name "Compile.bmp".  For Unix XPM format is used, the file name is
"Compile.xpm".  The size must be 18 by 18 pixels.  On MS-Windows other sizes
can be used as well, but it will look ugly.
   Put the bitmap in the directory "bitmaps" in one of the directories from
'runtimepath'.  E.g., for Unix "~/.vim/bitmaps/Compile.xpm".

You can define tooltips for the items in the toolbar.  A tooltip is a short
text that explains what a toolbar item will do.  For example "Open file".  It
appears when the mouse pointer is on the item, without moving for a moment.
This is very useful if the meaning of the picture isn't that obvious.
Example: >

	:tmenu ToolBar.Make  Run make in the current directory
<
	Note:
	Pay attention to the case used.  "Toolbar" and "toolbar" are different
	from "ToolBar"!

To remove a tooltip, use the |:tunmenu| command.

The 'toolbar' option can be used to display text instead of a bitmap, or both
text and a bitmap.  Most people use just the bitmap, since the text takes
quite a bit of space.


POPUP MENU

The popup menu pops up where the mouse pointer is.  On MS-Windows you activate
it by clicking the right mouse button.  Then you can select an item with the
left mouse button.  On Unix the popup menu is used by pressing and holding the
right mouse button.
   The popup menu only appears when the 'mousemodel' has been set to "popup"
or "popup_setpos".  The difference between the two is that "popup_setpos"
moves the cursor to the mouse pointer position.  When clicking inside a
selection, the selection will be used unmodified.  When there is a selection
but you click outside of it, the selection is removed.
   There is a separate popup menu for each mode.  Thus there are never grey
items like in the normal menus.

What is the meaning of life, the universe and everything?  *42*
Douglas Adams, the only person who knew what this question really was about is
now dead, unfortunately.  So now you might wonder what the meaning of death
is...

==============================================================================

Next chapter: |usr_43.txt|  Using filetypes

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���I�Ivim80/doc/gui_w32.txtnu�[���*gui_w32.txt*   For Vim version 8.0.  Last change: 2017 Oct 27


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Vim's Win32 Graphical User Interface			*gui-w32* *win32-gui*

1. Starting the GUI		|gui-w32-start|
2. Vim as default editor	|vim-default-editor|
3. Using the clipboard		|gui-clipboard|
4. Shell Commands		|gui-shell-win32|
5. Special colors		|win32-colors|
6. Windows dialogs & browsers	|gui-w32-dialogs|
7. Command line arguments	|gui-w32-cmdargs|
8. Various			|gui-w32-various|

Other relevant documentation:
|gui.txt|	For generic items of the GUI.
|os_win32.txt| 	For Win32 specific items.

{Vi does not have a Windows GUI}

==============================================================================
1. Starting the GUI					*gui-w32-start*

The Win32 GUI version of Vim will always start the GUI, no matter how you
start it or what it's called.

The GUI will always run in the Windows subsystem.  Mostly shells automatically
return with a command prompt after starting gvim.  If not, you should use the
"start" command: >
	start gvim [options] file ..

Note: All fonts (bold, italic) must be of the same size!!!  If you don't do
this, text will disappear or mess up the display.  Vim does not check the font
sizes.  It's the size in screen pixels that must be the same.  Note that some
fonts that have the same point size don't have the same pixel size!
Additionally, the positioning of the fonts must be the same (ascent and
descent).

The Win32 GUI has an extra menu item:  "Edit/Select Font".  It brings up the
standard Windows font selector.

Setting the menu height doesn't work for the Win32 GUI.

							*gui-win32-maximized*
If you want Vim to start with a maximized window, add this command to your
vimrc or gvimrc file: >
	au GUIEnter * simalt ~x
<

Using Vim as a plugin					*gui-w32-windowid*

When gvim starts up normally, it creates its own top level window.  If you
pass Vim the command-line option |--windowid| with a decimal or hexadecimal
value, Vim will create a window that is a child of the window with the given
ID.  This enables Vim to act as a plugin in another application.  This really
is a programmer's interface, and is of no use without a supporting application
to spawn Vim correctly.

==============================================================================
2. Vim as default editor				*vim-default-editor*

To set Vim as the default editor for a file type:
1. Start a Windows Explorer
2. Choose View/Options -> File Types
3. Select the path to gvim for every file type that you want to use it for.
   (you can also use three spaces in the file type field, for files without an
   extension).
   In the "open" action, use: >
	gvim "%1"
<  The quotes are required for using file names with embedded spaces.
   You can also use this: >
	gvim "%L"
<  This should avoid short (8.3 character) file names in some situations.  But
   I'm not sure if this works everywhere.

When you open a file in Vim by double clicking it, Vim changes to that
file's directory.

If you want Vim to start full-screen, use this for the Open action: >
	gvim -c "simalt ~x" "%1"

Another method, which also works when you put Vim in another directory (e.g.,
when you have got a new version):
1. select a file you want to use Vim with
2. <Shift-F10>
3. select "Open With..." menu entry
4. click "Other..."
5. browse to the (new) location of Vim and click "Open"
6. make "Always Use this program..." checked
7. <OK>

						*send-to-menu* *sendto*
You can also install Vim in the "Send To" menu:
1. Start a Windows Explorer
2. Navigate to your sendto directory:
   Windows NT: %windir%\profiles\%user%\sendto (e.g.
	       "c:\winnt\profiles\mattha\sendto")
   Windows XP: C:\Documents and Settings\%user%\SendTo
   Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
3. Right-click in the file pane and select New->Shortcut
4. Follow the shortcut wizard, using the full path to VIM/GVIM.

When you 'send a file to Vim', Vim changes to that file's directory.  Note,
however, that any long directory names will appear in their short (MS-DOS)
form.  This is a limitation of the Windows "Send To" mechanism.

						*notepad*
You could replace notepad.exe with gvim.exe, but that has a few side effects.
Some programs rely on notepad arguments, which are not recognized by Vim.  For
example "notepad -p" is used by some applications to print a file.  It's
better to leave notepad where it is and use another way to start Vim.

						*win32-popup-menu*
A more drastic approach is to install an "Edit with Vim" entry in the popup
menu for the right mouse button.  With this you can edit any file with Vim.

This can co-exist with the file associations mentioned above.  The difference
is that the file associations will make starting Vim the default action.  With
the "Edit with Vim" menu entry you can keep the existing file association for
double clicking on the file, and edit the file with Vim when you want.  For
example, you can associate "*.mak" with your make program.  You can execute
the makefile by double clicking it and use the "Edit with Vim" entry to edit
the makefile.

You can select any files and right-click to see a menu option called "Edit
with gvim".  Choosing this menu option will invoke gvim with the file you have
selected.  If you select multiple files, you will find two gvim-related menu
options:
"Edit with multiple gvims"  -- one gvim for each file in the selection
"Edit with single gvim"     -- one gvim for all the files in the selection
And if there already is a gvim running:
"Edit with existing gvim"   -- edit the file with the running gvim

The "edit with existing Vim" entries can be disabled by adding an entry in the
registry under HKLM\Software\Vim\Gvim, named DisableEditWithExisting, and with
any value.
						*install-registry*
You can add the "Edit with Vim" menu entry in an easy way by using the
"install.exe" program.  It will add several registry entries for you.

You can also do this by hand.  This is complicated!  Use the install.exe if
you can.

1. Start the registry editor with "regedit".
2. Add these keys:
   key		value name		    value ~
   HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}
		{default}		    Vim Shell Extension
   HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}\InProcServer32
		{default}		    {path}\gvimext.dll
		ThreadingModel		    Apartment
   HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\gvim
		{default}		    {51EEE242-AD87-11d3-9C1E-0090278BBD99}
   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved
		{51EEE242-AD87-11d3-9C1E-0090278BBD99}
					    Vim Shell Extension
   HKEY_LOCAL_MACHINE\Software\Vim\Gvim
		path			    {path}\gvim.exe
   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 5.6
		DisplayName		    Vim 5.6: Edit with Vim popup menu entry
		UninstallString		    {path}\uninstal.exe

   Replace {path} with the path that leads to the executable.
   Don't type {default}, this is the value for the key itself.

To remove "Edit with Vim" from the popup menu, just remove the registry
entries mentioned above.  The "uninstal.exe" program can do this for you.  You
can also use the entry in the Windows standard "Add/Remove Programs" list.

If you notice that this entry overrules other file type associations, set
those associations again by hand (using Windows Explorer, see above).  This
only seems to happen on some Windows NT versions (Windows bug?).  Procedure:
1. Find the name of the file type.  This can be done by starting the registry
   editor, and searching for the extension in \\HKEY_CLASSES_ROOT
2. In a Windows Explorer, use View/Options/File Types.  Search for the file
   type in the list and click "Edit".  In the actions list, you can select on
   to be used as the default (normally the "open" action) and click on the
   "Set Default" button.


Vim in the "Open With..." context menu			*win32-open-with-menu*

If you use the Vim install program you have the choice to add Vim to the "Open
With..." menu.  This means you can use Vim to edit many files.  Not every file
(for unclear reasons...), thus the "Edit with Vim" menu entry is still useful.

One reason to add this is to be able to edit HTML files directly from Internet
Explorer.  To enable this use the "Tools" menu, "Internet Options..." entry.
In the dialog select the "Programs" tab and select Vim in the "HTML editor"
choice.  If it's not there than installing didn't work properly.

Doing this manually can be done with this script:

----------------------------------------------------------
REGEDIT4

[HKEY_CLASSES_ROOT\Applications\gvim.exe]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
@="c:\\vim\\vim62\\gvim.exe \"%1\""

[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]

[HKEY_CLASSES_ROOT\*\OpenWithList\gvim.exe]

----------------------------------------------------------

Change the "c:\\vim\\vim62" bit to where gvim.exe is actually located.

To uninstall this run the Vim uninstall program or manually delete the
registry entries with "regedit".

==============================================================================
3. Using the clipboard					*gui-clipboard*

Windows has a clipboard, where you can copy text to, and paste text from.  Vim
supports this in several ways.  For other systems see |gui-selections|.

The "* register reflects the contents of the clipboard.  |quotestar|

When the "unnamed" string is included in the 'clipboard' option, the unnamed
register is the same.  Thus you can yank to and paste from the clipboard
without prepending "* to commands.

The 'a' flag in 'guioptions' is not included by default.  This means that text
is only put on the clipboard when an operation is performed on it.  Just
Visually selecting text doesn't put it on the clipboard.  When the 'a' flag is
included, the text is copied to the clipboard even when it is not operated
upon.

							*mswin.vim*
To use the standard MS-Windows way of CTRL-X, CTRL-C and CTRL-V, use the
$VIMRUNTIME/mswin.vim script.  You could add this line to your _vimrc file: >
	source $VIMRUNTIME/mswin.vim

Since CTRL-C is used to copy the text to the clipboard, it can't be used to
cancel an operation.  Use CTRL-Break for that.

CTRL-Z is used for undo.  This means you can't suspend Vim with this key, use
|:suspend| instead (if it's supported at all).

						*CTRL-V-alternative* *CTRL-Q*
Since CTRL-V is used to paste, you can't use it to start a blockwise Visual
selection.  You can use CTRL-Q instead.  You can also use CTRL-Q in Insert
mode and Command-line mode to get the old meaning of CTRL-V.  But CTRL-Q
doesn't work for terminals when it's used for control flow.

NOTE: The clipboard support still has a number of bugs.  See |todo|.

==============================================================================
4. Shell Commands					*gui-shell-win32*

Vim uses another window for external commands, to make it possible to run any
command.  The external command gets its own environment for running, just like
it was started from a DOS prompt.

							*win32-vimrun*
Executing an external command is done indirectly by the "vimrun" command.  The
"vimrun.exe" must be in the path for this to work.  Or it must be in the same
directory as the Vim executable.  If "vimrun" cannot be found, the command is
executed directly, but then the DOS window closes immediately after the
external command has finished.
WARNING: If you close this window with the "X" button, and confirm the
question if you really want to kill the application, Vim may be killed too!
(This does not apply to commands run asynchronously with ":!start".)

The window in which the commands are executed will be the default you have set
up for "Console" in Control Panel.

							*win32-!start*
Normally, Vim waits for a command to complete before continuing (this makes
sense for most shell commands which produce output for Vim to use).  If you
want Vim to start a program and return immediately, you can use the following
syntax: >
	:!start [/min] {command}
The optional "/min" causes the window to be minimized.

==============================================================================
5. Special colors					*win32-colors*

On Win32, the normal DOS colors can be used.  See |dos-colors|.

Additionally the system configured colors can also be used.  These are known
by the names Sys_XXX, where XXX is the appropriate system color name, from the
following list (see the Win32 documentation for full descriptions).  Case is
ignored.

Sys_3DDKShadow		Sys_3DFace			Sys_BTNFace
Sys_3DHilight		Sys_3DHighlight			Sys_BTNHilight
Sys_BTNHighlight	Sys_3DLight			Sys_3DShadow
Sys_BTNShadow		Sys_ActiveBorder		Sys_ActiveCaption
Sys_AppWorkspace	Sys_Background			Sys_Desktop
Sys_BTNText		Sys_CaptionText			Sys_GrayText
Sys_Highlight		Sys_HighlightText		Sys_InactiveBorder
Sys_InactiveCaption	Sys_InactiveCaptionText		Sys_InfoBK
Sys_InfoText		Sys_Menu			Sys_MenuText
Sys_ScrollBar		Sys_Window			Sys_WindowFrame
Sys_WindowText

Probably the most useful values are
	Sys_Window	    Normal window background
	Sys_WindowText      Normal window text
	Sys_Highlight       Highlighted background
	Sys_HighlightText   Highlighted text

These extra colors are also available:
Gray, Grey, LightYellow, SeaGreen, Orange, Purple, SlateBlue, Violet,

								*rgb.txt*
Additionally, colors defined by a "rgb.txt" file can be used.  This file is
well known from X11.  A few lines from it: >

  255 218 185		   peach puff
  205 133  63		   peru
  255 181 197		   pink

This shows the layout of the file:  First the R, G and B value as a decimal
number, followed by the name of the color.  The four fields are separated by
spaces.

You can get an rgb.txt file from any X11 distribution.  It is located in a
directory like "/usr/X11R6/lib/X11/".  For Vim it must be located in the
$VIMRUNTIME directory.  Thus the file can be found with "$VIMRUNTIME/rgb.txt".

==============================================================================
						*gui-w32-dialogs* *dialog*
6. Windows dialogs & browsers

The Win32 GUI can use familiar Windows components for some operations, as well
as the traditional interface shared with the console version.


6.1 Dialogs

The dialogs displayed by the "confirm" family (i.e. the 'confirm' option,
|:confirm| command and |confirm()| function) are GUI-based rather than the
console-based ones used by other versions.  The 'c' flag in 'guioptions'
changes this.


6.2 File Browsers

When prepending ":browse" before file editing commands, a file requester is
used to allow you to select an existing file.  See |:browse|.


6.3 Tearoff Menus

The Win32 GUI emulates Motif's tear-off menus.  At the top of each menu you
will see a small graphic "rip here" sign.  Selecting it will cause a floating
window to be created with the same menu entries on it.  The floating menu can
then be accessed just as if it was the original (including sub-menus), but
without having to go to the menu bar each time.
This is most useful if you find yourself using a command buried in a sub-menu
over and over again.
The tearoff menus can be positioned where you like, and always stay just above
the Main Vim window.  You can get rid of them by closing them as usual; they
also of course close when you exit Vim.

							*:tearoff* *:te*
:te[aroff] {name}	Tear-off the menu {name}.  The menu named must have at
			least one subentry, but need not appear on the
			menu-bar (see |win32-hidden-menus|).

Example: >
	:tearoff File
will make the "File" menu (if there is one) appear as a tearoff menu. >

	:amenu ]Toolbar.Make	:make<CR>
	:tearoff ]Toolbar
This creates a floating menu that doesn't exist on the main menu-bar.

Note that a menu that starts with ']' will not be displayed.

==============================================================================
7. Command line arguments				*gui-w32-cmdargs*

Command line arguments behave the same way as with the console application,
see |win32-cmdargs|.

==============================================================================
8. Various						*gui-w32-various*

							*gui-w32-printing*
The "File/Print" menu prints the text with syntax highlighting, see
|:hardcopy|.  If you just want to print the raw text and have a default
printer installed this should also work: >
	:w >>prn

Vim supports a number of standard MS Windows features.  Some of these are
detailed elsewhere: see |'mouse'|, |win32-hidden-menus|.

							*drag-n-drop-win32*
You can drag and drop one or more files into the Vim window, where they will
be opened as normal.  See |drag-n-drop|.

							*:simalt* *:sim*
:sim[alt] {key}		simulate pressing {key} while holding Alt pressed.
			{not in Vi} {only for Win32 versions}
			Note: ":si" means ":s" with the "i" flag.

Normally, Vim takes control of all Alt-<Key> combinations, to increase the
number of possible mappings.  This clashes with the standard use of Alt as the
key for accessing menus.
The quick way of getting standard behavior is to set the 'winaltkeys' option
to "yes".  This however prevents you from mapping Alt keys at all.
Another way is to set 'winaltkeys' to "menu".  Menu shortcut keys are then
handled by windows, other ALT keys can be mapped.  This doesn't allow a
dependency on the current state though.
To get round this, the :simalt command allows Vim (when 'winaltkeys' is not
"yes") to fake a Windows-style Alt keypress.  You can use this to map Alt key
combinations (or anything else for that matter) to produce standard Windows
actions.  Here are some examples: >

	:map <M-f> :simalt f<CR>
This makes Alt-F pop down the 'File' menu (with the stock Menu.vim) by
simulating the keystrokes Alt, F. >
	:map <M-Space> :simalt ~<CR>
This maps Alt-Space to pop down the system menu for the Vim window.  Note that
~ is used by simalt to represent the <Space> character. >
	:map <C-n> :simalt ~n<CR>
Maps Control-N to produce the keys Alt-Space followed by N.  This minimizes the
Vim window via the system menu.

Note that the key changes depending on the language you are using.

						*intellimouse-wheel-problems*
When using the Intellimouse mouse wheel causes Vim to stop accepting input, go
to:
	ControlPanel - Mouse - Wheel - UniversalScrolling - Exceptions

And add gvim to the list of applications.  This problem only appears to happen
with the Intellimouse driver 2.2 and when "Universal Scrolling" is turned on.


XPM support						*w32-xpm-support*

Gvim can be build on MS-Windows with support for XPM files.  |+xpm_w32|
See the Make_mvc.mak file for instructions, search for XPM.

To try out if XPM support works do this: >
	:help
	:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm'
	:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')
<

 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z\wF$5\5\vim80/doc/usr_03.txtnu�[���*usr_03.txt*	For Vim version 8.0.  Last change: 2017 Jul 21

		     VIM USER MANUAL - by Bram Moolenaar

			     Moving around


Before you can insert or delete text the cursor has to be moved to the right
place.  Vim has a large number of commands to position the cursor.  This
chapter shows you how to use the most important ones.  You can find a list of
these commands below |Q_lr|.

|03.1|	Word movement
|03.2|	Moving to the start or end of a line
|03.3|	Moving to a character
|03.4|	Matching a parenthesis
|03.5|	Moving to a specific line
|03.6|	Telling where you are
|03.7|	Scrolling around
|03.8|	Simple searches
|03.9|	Simple search patterns
|03.10|	Using marks

     Next chapter: |usr_04.txt|  Making small changes
 Previous chapter: |usr_02.txt|  The first steps in Vim
Table of contents: |usr_toc.txt|

==============================================================================
*03.1*	Word movement

To move the cursor forward one word, use the "w" command.  Like most Vim
commands, you can use a numeric prefix to move past multiple words.  For
example, "3w" moves three words.  This figure shows how it works:

	This is a line with example text ~
	  --->-->->----------------->
	   w  w  w    3w

Notice that "w" moves to the start of the next word if it already is at the
start of a word.
   The "b" command moves backward to the start of the previous word:

	This is a line with example text ~
	<----<--<-<---------<---
	   b   b b    2b      b

There is also the "e" command that moves to the next end of a word and "ge",
which moves to the previous end of a word:

	This is a line with example text ~
	   <-   <--- ----->   ---->
	   ge    ge     e       e

If you are at the last word of a line, the "w" command will take you to the
first word in the next line.  Thus you can use this to move through a
paragraph, much faster than using "l".  "b" does the same in the other
direction.

A word ends at a non-word character, such as a ".", "-" or ")".  To change
what Vim considers to be a word, see the 'iskeyword' option.  If you try this
out in the help directly, 'iskeyword' needs to be reset for the examples to
work: >
	:set iskeyword&
It is also possible to move by white-space separated WORDs.  This is not a
word in the normal sense, that's why the uppercase is used.  The commands for
moving by WORDs are also uppercase, as this figure shows:

	       ge      b	  w				e
	       <-     <-	 --->			       --->
	This is-a line, with special/separated/words (and some more). ~
	   <----- <-----	 -------------------->	       ----->
	     gE      B			 W			 E

With this mix of lowercase and uppercase commands, you can quickly move
forward and backward through a paragraph.

==============================================================================
*03.2*	Moving to the start or end of a line

The "$" command moves the cursor to the end of a line.  If your keyboard has
an <End> key it will do the same thing.

The "^" command moves to the first non-blank character of the line.  The "0"
command (zero) moves to the very first character of the line.  The <Home> key
does the same thing.  In a picture:

		  ^
	     <------------
	.....This is a line with example text ~
	<-----------------   --------------->
		0		   $

(the "....." indicates blanks here)

   The "$" command takes a count, like most movement commands.  But moving to
the end of the line several times doesn't make sense.  Therefore it causes the
editor to move to the end of another line.  For example, "1$" moves you to
the end of the first line (the one you're on), "2$" to the end of the next
line, and so on.
   The "0" command doesn't take a count argument, because the "0" would be
part of the count.  Unexpectedly, using a count with "^" doesn't have any
effect.

==============================================================================
*03.3*	Moving to a character

One of the most useful movement commands is the single-character search
command.  The command "fx" searches forward in the line for the single
character x.  Hint: "f" stands for "Find".
   For example, you are at the beginning of the following line.  Suppose you
want to go to the h of human.  Just execute the command "fh" and the cursor
will be positioned over the h:

	To err is human.  To really foul up you need a computer. ~
	---------->--------------->
	    fh		 fy

This also shows that the command "fy" moves to the end of the word really.
   You can specify a count; therefore, you can go to the "l" of "foul" with
"3fl":

	To err is human.  To really foul up you need a computer. ~
		  --------------------->
			   3fl

The "F" command searches to the left:

	To err is human.  To really foul up you need a computer. ~
		  <---------------------
			    Fh

The "tx" command works like the "fx" command, except it stops one character
before the searched character.  Hint: "t" stands for "To".  The backward
version of this command is "Tx".

	To err is human.  To really foul up you need a computer. ~
		   <------------  ------------->
			Th		tn

These four commands can be repeated with ";".  "," repeats in the other
direction.  The cursor is never moved to another line.  Not even when the
sentence continues.

Sometimes you will start a search, only to realize that you have typed the
wrong command.  You type "f" to search backward, for example, only to realize
that you really meant "F".  To abort a search, press <Esc>.  So "f<Esc>" is an
aborted forward search and doesn't do anything.  Note: <Esc> cancels most
operations, not just searches.

==============================================================================
*03.4*	Matching a parenthesis

When writing a program you often end up with nested () constructs.  Then the
"%" command is very handy: It moves to the matching paren.  If the cursor is
on a "(" it will move to the matching ")".  If it's on a ")" it will move to
the matching "(".

			    %
			 <----->
		if (a == (b * c) / d) ~
		   <---------------->
			    %

This also works for [] and {} pairs.  (This can be defined with the
'matchpairs' option.)

When the cursor is not on a useful character, "%" will search forward to find
one.  Thus if the cursor is at the start of the line of the previous example,
"%" will search forward and find the first "(".  Then it moves to its match:

		if (a == (b * c) / d) ~
		---+---------------->
			   %

==============================================================================
*03.5*	Moving to a specific line

If you are a C or C++ programmer, you are familiar with error messages such as
the following:

	prog.c:33: j   undeclared (first use in this function) ~

This tells you that you might want to fix something on line 33.  So how do you
find line 33?  One way is to do "9999k" to go to the top of the file and "32j"
to go down thirty-two lines.  It is not a good way, but it works.  A much
better way of doing things is to use the "G" command.  With a count, this
command positions you at the given line number.  For example, "33G" puts you
on line 33.  (For a better way of going through a compiler's error list, see
|usr_30.txt|, for information on the :make command.)
   With no argument, "G" positions you at the end of the file.  A quick way to
go to the start of a file use "gg".  "1G" will do the same, but is a tiny bit
more typing.

	    |	first line of a file   ^
	    |	text text text text    |
	    |	text text text text    |  gg
	7G  |	text text text text    |
	    |	text text text text
	    |	text text text text
	    V	text text text text    |
		text text text text    |  G
		text text text text    |
		last line of a file    V

Another way to move to a line is using the "%" command with a count.  For
example "50%" moves you to halfway the file.  "90%" goes to near the end.

The previous assumes that you want to move to a line in the file, no matter if
it's currently visible or not.  What if you want to move to one of the lines
you can see?  This figure shows the three commands you can use:

			+---------------------------+
		H -->	| text sample text	    |
			| sample text		    |
			| text sample text	    |
			| sample text		    |
		M -->	| text sample text	    |
			| sample text		    |
			| text sample text	    |
			| sample text		    |
		L -->	| text sample text	    |
			+---------------------------+

Hints: "H" stands for Home, "M" for Middle and "L" for Last.

==============================================================================
*03.6*	Telling where you are

To see where you are in a file, there are three ways:

1.  Use the CTRL-G command.  You get a message like this (assuming the 'ruler'
    option is off):

	"usr_03.txt" line 233 of 650 --35%-- col 45-52 ~

    This shows the name of the file you are editing, the line number where the
    cursor is, the total number of lines, the percentage of the way through
    the file and the column of the cursor.
       Sometimes you will see a split column number.  For example, "col 2-9".
    This indicates that the cursor is positioned on the second character, but
    because character one is a tab, occupying eight spaces worth of columns,
    the screen column is 9.

2.  Set the 'number' option.  This will display a line number in front of
    every line: >

	:set number
<
    To switch this off again: >

	:set nonumber
<
    Since 'number' is a boolean option, prepending "no" to its name has the
    effect of switching it off.  A boolean option has only these two values,
    it is either on or off.
       Vim has many options.  Besides the boolean ones there are options with
    a numerical value and string options.  You will see examples of this where
    they are used.

3.  Set the 'ruler' option.  This will display the cursor position in the
    lower right corner of the Vim window: >

	:set ruler

Using the 'ruler' option has the advantage that it doesn't take much room,
thus there is more space for your text.

==============================================================================
*03.7*	Scrolling around

The CTRL-U command scrolls down half a screen of text.  Think of looking
through a viewing window at the text and moving this window up by half the
height of the window.  Thus the window moves up over the text, which is
backward in the file.  Don't worry if you have a little trouble remembering
which end is up.  Most users have the same problem.
   The CTRL-D command moves the viewing window down half a screen in the file,
thus scrolls the text up half a screen.

				       +----------------+
				       | some text	|
				       | some text	|
				       | some text	|
	+---------------+	       | some text	|
	| some text	|  CTRL-U  --> |		|
	|		|	       | 123456		|
	| 123456	|	       +----------------+
	| 7890		|
	|		|	       +----------------+
	| example	|  CTRL-D -->  | 7890		|
	+---------------+	       |		|
				       | example	|
				       | example	|
				       | example	|
				       | example	|
				       +----------------+

To scroll one line at a time use CTRL-E (scroll up) and CTRL-Y (scroll down).
Think of CTRL-E to give you one line Extra.  (If you use MS-Windows compatible
key mappings CTRL-Y will redo a change instead of scroll.)

To scroll forward by a whole screen (except for two lines) use CTRL-F.  The
other way is backward, CTRL-B is the command to use.  Fortunately CTRL-F is
Forward and CTRL-B is Backward, that's easy to remember.

A common issue is that after moving down many lines with "j" your cursor is at
the bottom of the screen.  You would like to see the context of the line with
the cursor.  That's done with the "zz" command.

	+------------------+		 +------------------+
	| some text	   |		 | some text	    |
	| some text	   |		 | some text	    |
	| some text	   |		 | some text	    |
	| some text	   |   zz  -->	 | line with cursor |
	| some text	   |		 | some text	    |
	| some text	   |		 | some text	    |
	| line with cursor |		 | some text	    |
	+------------------+		 +------------------+

The "zt" command puts the cursor line at the top, "zb" at the bottom.  There
are a few more scrolling commands, see |Q_sc|.  To always keep a few lines of
context around the cursor, use the 'scrolloff' option.

==============================================================================
*03.8*	Simple searches

To search for a string, use the "/string" command.  To find the word include,
for example, use the command: >

	/include

You will notice that when you type the "/" the cursor jumps to the last line
of the Vim window, like with colon commands.  That is where you type the word.
You can press the backspace key (backarrow or <BS>) to make corrections.  Use
the <Left> and <Right> cursor keys when necessary.
   Pressing <Enter> executes the command.

	Note:
	The characters .*[]^%/\?~$ have special meanings.  If you want to use
	them in a search you must put a \ in front of them.  See below.

To find the next occurrence of the same string use the "n" command.  Use this
to find the first #include after the cursor: >

	/#include

And then type "n" several times.  You will move to each #include in the text.
You can also use a count if you know which match you want.  Thus "3n" finds
the third match.  Using a count with "/" doesn't work.

The "?" command works like "/" but searches backwards: >

	?word

The "N" command repeats the last search the opposite direction.  Thus using
"N" after a "/" command searches backwards, using "N" after "?" searches
forward.


IGNORING CASE

Normally you have to type exactly what you want to find.  If you don't care
about upper or lowercase in a word, set the 'ignorecase' option: >

	:set ignorecase

If you now search for "word", it will also match "Word" and "WORD".  To match
case again: >

	:set noignorecase


HISTORY

Suppose you do three searches: >

	/one
	/two
	/three

Now let's start searching by typing a simple "/" without pressing <Enter>.  If
you press <Up> (the cursor key), Vim puts "/three" on the command line.
Pressing <Enter> at this point searches for three.  If you do not press
<Enter>, but press <Up> instead, Vim changes the prompt to "/two".  Another
press of <Up> moves you to "/one".
   You can also use the <Down> cursor key to move through the history of
search commands in the other direction.

If you know what a previously used pattern starts with, and you want to use it
again, type that character before pressing <Up>.  With the previous example,
you can type "/o<Up>" and Vim will put "/one" on the command line.

The commands starting with ":" also have a history.  That allows you to recall
a previous command and execute it again.  These two histories are separate.


SEARCHING FOR A WORD IN THE TEXT

Suppose you see the word "TheLongFunctionName" in the text and you want to
find the next occurrence of it.  You could type "/TheLongFunctionName", but
that's a lot of typing.  And when you make a mistake Vim won't find it.
   There is an easier way: Position the cursor on the word and use the "*"
command.  Vim will grab the word under the cursor and use it as the search
string.
   The "#" command does the same in the other direction.  You can prepend a
count: "3*" searches for the third occurrence of the word under the cursor.


SEARCHING FOR WHOLE WORDS

If you type "/the" it will also match "there".  To only find words that end
in "the" use: >

	/the\>

The "\>" item is a special marker that only matches at the end of a word.
Similarly "\<" only matches at the beginning of a word.  Thus to search for
the word "the" only: >

	/\<the\>

This does not match "there" or "soothe".  Notice that the "*" and "#" commands
use these start-of-word and end-of-word markers to only find whole words (you
can use "g*" and "g#" to match partial words).


HIGHLIGHTING MATCHES

While editing a program you see a variable called "nr".  You want to check
where it's used.  You could move the cursor to "nr" and use the "*" command
and press "n" to go along all the matches.
   There is another way.  Type this command: >

	:set hlsearch

If you now search for "nr", Vim will highlight all matches.  That is a very
good way to see where the variable is used, without the need to type commands.
   To switch this off: >

	:set nohlsearch

Then you need to switch it on again if you want to use it for the next search
command.  If you only want to remove the highlighting, use this command: >

	:nohlsearch

This doesn't reset the option.  Instead, it disables the highlighting.  As
soon as you execute a search command, the highlighting will be used again.
Also for the "n" and "N" commands.


TUNING SEARCHES

There are a few options that change how searching works.  These are the
essential ones:
>
	:set incsearch

This makes Vim display the match for the string while you are still typing it.
Use this to check if the right match will be found.  Then press <Enter> to
really jump to that location.  Or type more to change the search string.
>
	:set nowrapscan

This stops the search at the end of the file.  Or, when you are searching
backwards, at the start of the file.  The 'wrapscan' option is on by default,
thus searching wraps around the end of the file.


INTERMEZZO

If you like one of the options mentioned before, and set it each time you use
Vim, you can put the command in your Vim startup file.
   Edit the file, as mentioned at |not-compatible|.  Or use this command to
find out where it is: >

	:scriptnames

Edit the file, for example with: >

	:edit ~/.vimrc

Then add a line with the command to set the option, just like you typed it in
Vim.  Example: >

	Go:set hlsearch<Esc>

"G" moves to the end of the file.  "o" starts a new line, where you type the
":set" command.  You end insert mode with <Esc>.  Then write the file: >

	ZZ

If you now start Vim again, the 'hlsearch' option will already be set.

==============================================================================
*03.9*	Simple search patterns

The Vim editor uses regular expressions to specify what to search for.
Regular expressions are an extremely powerful and compact way to specify a
search pattern.  Unfortunately, this power comes at a price, because regular
expressions are a bit tricky to specify.
   In this section we mention only a few essential ones.  More about search
patterns and commands in chapter 27 |usr_27.txt|.  You can find the full
explanation here: |pattern|.


BEGINNING AND END OF A LINE

The ^ character matches the beginning of a line.  On an English-US keyboard
you find it above the 6.  The pattern "include" matches the word include
anywhere on the line.  But the pattern "^include" matches the word include
only if it is at the beginning of a line.
   The $ character matches the end of a line.  Therefore, "was$" matches the
word was only if it is at the end of a line.

Let's mark the places where "/the" matches in this example line with "x"s:

	the solder holding one of the chips melted and the ~
	xxx			  xxx		       xxx

Using "/the$" we find this match:

	the solder holding one of the chips melted and the ~
						       xxx

And with "/^the" we find this one:
	the solder holding one of the chips melted and the ~
	xxx

You can try searching with "/^the$", it will only match a single line
consisting of "the".  White space does matter here, thus if a line contains a
space after the word, like "the ", the pattern will not match.


MATCHING ANY SINGLE CHARACTER

The . (dot) character matches any existing character.  For example, the
pattern "c.m" matches a string whose first character is a c, whose second
character is anything, and whose third character is m.  Example:

	We use a computer that became the cummin winter. ~
		 xxx		 xxx	  xxx


MATCHING SPECIAL CHARACTERS

If you really want to match a dot, you must avoid its special meaning by
putting a backslash before it.
   If you search for "ter.", you will find these matches:

	We use a computer that became the cummin winter. ~
		      xxxx			    xxxx

Searching for "ter\." only finds the second match.

==============================================================================
*03.10*	Using marks

When you make a jump to a position with the "G" command, Vim remembers the
position from before this jump.  This position is called a mark.  To go back
where you came from, use this command: >

	``

This ` is a backtick or open single-quote character.
   If you use the same command a second time you will jump back again.  That's
because the ` command is a jump itself, and the position from before this jump
is remembered.

Generally, every time you do a command that can move the cursor further than
within the same line, this is called a jump.  This includes the search
commands "/" and "n" (it doesn't matter how far away the match is).  But not
the character searches with "fx" and "tx" or the word movements "w" and "e".
   Also, "j" and "k" are not considered to be a jump.  Even when you use a
count to make them move the cursor quite a long way away.

The `` command jumps back and forth, between two points.  The CTRL-O command
jumps to older positions (Hint: O for older).  CTRL-I then jumps back to newer
positions (Hint: I is just next to O on the keyboard).  Consider this sequence
of commands: >

	33G
	/^The
	CTRL-O

You first jump to line 33, then search for a line that starts with "The".
Then with CTRL-O you jump back to line 33.  Another CTRL-O takes you back to
where you started.  If you now use CTRL-I you jump to line 33 again.  And
to the match for "The" with another CTRL-I.


	     |	example text   ^	     |
	33G  |	example text   |  CTRL-O     | CTRL-I
	     |	example text   |	     |
	     V	line 33 text   ^	     V
	     |	example text   |	     |
       /^The |	example text   |  CTRL-O     | CTRL-I
	     V	There you are  |	     V
		example text

	Note:
	CTRL-I is the same as <Tab>.

The ":jumps" command gives a list of positions you jumped to.  The entry which
you used last is marked with a ">".


NAMED MARKS							*bookmark*

Vim enables you to place your own marks in the text.  The command "ma" marks
the place under the cursor as mark a.  You can place 26 marks (a through z) in
your text.  You can't see them, it's just a position that Vim remembers.
   To go to a mark, use the command `{mark}, where {mark} is the mark letter.
Thus to move to the a mark:
>
	`a

The command 'mark (single quotation mark, or apostrophe) moves you to the
beginning of the line containing the mark.  This differs from the `mark
command, which moves you to marked column.

The marks can be very useful when working on two related parts in a file.
Suppose you have some text near the start of the file you need to look at,
while working on some text near the end of the file.
   Move to the text at the start and place the s (start) mark there: >

	ms

Then move to the text you want to work on and put the e (end) mark there: >

	me

Now you can move around, and when you want to look at the start of the file,
you use this to jump there: >

	's

Then you can use '' to jump back to where you were, or 'e to jump to the text
you were working on at the end.
   There is nothing special about using s for start and e for end, they are
just easy to remember.

You can use this command to get a list of marks: >

	:marks

You will notice a few special marks.  These include:

	'	The cursor position before doing a jump
	"	The cursor position when last editing the file
	[	Start of the last change
	]	End of the last change

==============================================================================

Next chapter: |usr_04.txt|  Making small changes

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���> > vim80/doc/usr_26.txtnu�[���*usr_26.txt*	For Vim version 8.0.  Last change: 2006 Apr 24

		     VIM USER MANUAL - by Bram Moolenaar

				  Repeating


An editing task is hardly ever unstructured.  A change often needs to be made
several times.  In this chapter a number of useful ways to repeat a change
will be explained.

|26.1|	Repeating with Visual mode
|26.2|	Add and subtract
|26.3|	Making a change in many files
|26.4|	Using Vim from a shell script

     Next chapter: |usr_27.txt|  Search commands and patterns
 Previous chapter: |usr_25.txt|  Editing formatted text
Table of contents: |usr_toc.txt|

==============================================================================
*26.1*	Repeating with Visual mode

Visual mode is very handy for making a change in any sequence of lines.  You
can see the highlighted text, thus you can check if the correct lines are
changed.  But making the selection takes some typing.  The "gv" command
selects the same area again.  This allows you to do another operation on the
same text.
   Suppose you have some lines where you want to change "2001" to "2002" and
"2000" to "2001":

	The financial results for 2001 are better ~
	than for 2000.  The income increased by 50%, ~
	even though 2001 had more rain than 2000. ~
			2000		2001 ~
	income		45,403		66,234 ~

First change "2001" to "2002".  Select the lines in Visual mode, and use: >

	:s/2001/2002/g

Now use "gv" to reselect the same text.  It doesn't matter where the cursor
is.  Then use ":s/2000/2001/g" to make the second change.
   Obviously, you can repeat these changes several times.

==============================================================================
*26.2*	Add and subtract

When repeating the change of one number into another, you often have a fixed
offset.  In the example above, one was added to each year.  Instead of typing
a substitute command for each year that appears, the CTRL-A command can be
used.
   Using the same text as above, search for a year: >

	/19[0-9][0-9]\|20[0-9][0-9]

Now press CTRL-A.  The year will be increased by one:

	The financial results for 2002 are better ~
	than for 2000.  The income increased by 50%, ~
	even though 2001 had more rain than 2000. ~
			2000		2001 ~
	income		45,403		66,234 ~

Use "n" to find the next year, and press "." to repeat the CTRL-A ("." is a
bit quicker to type).  Repeat "n" and "." for all years that appear.
   Hint: set the 'hlsearch' option to see the matches you are going to change,
then you can look ahead and do it faster.

Adding more than one can be done by prepending the number to CTRL-A.  Suppose
you have this list:

	1.  item four ~
	2.  item five ~
	3.  item six ~

Move the cursor to "1." and type: >

	3 CTRL-A

The "1." will change to "4.".  Again, you can use "." to repeat this on the
other numbers.

Another example:

	006	foo bar ~
	007	foo bar ~

Using CTRL-A on these numbers results in:

	007	foo bar ~
	010	foo bar ~

7 plus one is 10?  What happened here is that Vim recognized "007" as an octal
number, because there is a leading zero.  This notation is often used in C
programs.  If you do not want a number with leading zeros to be handled as
octal, use this: >

	:set nrformats-=octal

The CTRL-X command does subtraction in a similar way.

==============================================================================
*26.3*	Making a change in many files

Suppose you have a variable called "x_cnt" and you want to change it to
"x_counter".  This variable is used in several of your C files.  You need to
change it in all files.  This is how you do it.
   Put all the relevant files in the argument list: >

	:args *.c
<
This finds all C files and edits the first one.  Now you can perform a
substitution command on all these files: >

	:argdo %s/\<x_cnt\>/x_counter/ge | update

The ":argdo" command takes an argument that is another command.  That command
will be executed on all files in the argument list.
   The "%s" substitute command that follows works on all lines.  It finds the
word "x_cnt" with "\<x_cnt\>".  The "\<" and "\>" are used to match the whole
word only, and not "px_cnt" or "x_cnt2".
   The flags for the substitute command include "g" to replace all occurrences
of "x_cnt" in the same line.  The "e" flag is used to avoid an error message
when "x_cnt" does not appear in the file.  Otherwise ":argdo" would abort on
the first file where "x_cnt" was not found.
   The "|" separates two commands.  The following "update" command writes the
file only if it was changed.  If no "x_cnt" was changed to "x_counter" nothing
happens.

There is also the ":windo" command, which executes its argument in all
windows.  And ":bufdo" executes its argument on all buffers.  Be careful with
this, because you might have more files in the buffer list than you think.
Check this with the ":buffers" command (or ":ls").

==============================================================================
*26.4*	Using Vim from a shell script

Suppose you have a lot of files in which you need to change the string
"-person-" to "Jones" and then print it.  How do you do that?  One way is to
do a lot of typing.  The other is to write a shell script to do the work.
   The Vim editor does a superb job as a screen-oriented editor when using
Normal mode commands.  For batch processing, however, Normal mode commands do
not result in clear, commented command files; so here you will use Ex mode
instead.  This mode gives you a nice command-line interface that makes it easy
to put into a batch file.  ("Ex command" is just another name for a
command-line (:) command.)
   The Ex mode commands you need are as follows: >

	%s/-person-/Jones/g
	write tempfile
	quit

You put these commands in the file "change.vim".  Now to run the editor in
batch mode, use this shell script: >

	for file in *.txt; do
	  vim -e -s $file < change.vim
	  lpr -r tempfile
	done

The for-done loop is a shell construct to repeat the two lines in between,
while the $file variable is set to a different file name each time.
   The second line runs the Vim editor in Ex mode (-e argument) on the file
$file and reads commands from the file "change.vim".  The -s argument tells
Vim to operate in silent mode.  In other words, do not keep outputting the
:prompt, or any other prompt for that matter.
   The "lpr -r tempfile" command prints the resulting "tempfile" and deletes
it (that's what the -r argument does).


READING FROM STDIN

Vim can read text on standard input.  Since the normal way is to read commands
there, you must tell Vim to read text instead.  This is done by passing the
"-" argument in place of a file.  Example: >

	ls | vim -

This allows you to edit the output of the "ls" command, without first saving
the text in a file.
   If you use the standard input to read text from, you can use the "-S"
argument to read a script: >

	producer | vim -S change.vim -


NORMAL MODE SCRIPTS

If you really want to use Normal mode commands in a script, you can use it
like this: >

	vim -s script file.txt ...
<
	Note:
	"-s" has a different meaning when it is used without "-e".  Here it
	means to source the "script" as Normal mode commands.  When used with
	"-e" it means to be silent, and doesn't use the next argument as a
	file name.

The commands in "script" are executed like you typed them.  Don't forget that
a line break is interpreted as pressing <Enter>.  In Normal mode that moves
the cursor to the next line.
   To create the script you can edit the script file and type the commands.
You need to imagine what the result would be, which can be a bit difficult.
Another way is to record the commands while you perform them manually.  This
is how you do that: >

	vim -w script file.txt ...

All typed keys will be written to "script".  If you make a small mistake you
can just continue and remember to edit the script later.
   The "-w" argument appends to an existing script.  That is good when you
want to record the script bit by bit.  If you want to start from scratch and
start all over, use the "-W" argument.  It overwrites any existing file.

==============================================================================

Next chapter: |usr_27.txt|  Search commands and patterns

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�:-��6�6vim80/doc/uganda.txtnu�[���*uganda.txt*    For Vim version 8.0.  Last change: 2013 Jul 06


		  VIM REFERENCE MANUAL    by Bram Moolenaar


			*uganda* *Uganda* *copying* *copyright* *license*
SUMMARY
								*iccf* *ICCF*
Vim is Charityware.  You can use and copy it as much as you like, but you are
encouraged to make a donation for needy children in Uganda.  Please see |kcc|
below or visit the ICCF web site, available at these URLs:

	http://iccf-holland.org/
	http://www.vim.org/iccf/
	http://www.iccf.nl/

You can also sponsor the development of Vim.  Vim sponsors can vote for
features.  See |sponsor|.  The money goes to Uganda anyway.

The Open Publication License applies to the Vim documentation, see
|manual-copyright|.

=== begin of license ===

VIM LICENSE

I)  There are no restrictions on distributing unmodified copies of Vim except
    that they must include this license text.  You can also distribute
    unmodified parts of Vim, likewise unrestricted except that they must
    include this license text.  You are also allowed to include executables
    that you made from the unmodified Vim sources, plus your own usage
    examples and Vim scripts.

II) It is allowed to distribute a modified (or extended) version of Vim,
    including executables and/or source code, when the following four
    conditions are met:
    1) This license text must be included unmodified.
    2) The modified Vim must be distributed in one of the following five ways:
       a) If you make changes to Vim yourself, you must clearly describe in
	  the distribution how to contact you.  When the maintainer asks you
	  (in any way) for a copy of the modified Vim you distributed, you
	  must make your changes, including source code, available to the
	  maintainer without fee.  The maintainer reserves the right to
	  include your changes in the official version of Vim.  What the
	  maintainer will do with your changes and under what license they
	  will be distributed is negotiable.  If there has been no negotiation
	  then this license, or a later version, also applies to your changes.
	  The current maintainer is Bram Moolenaar <Bram@vim.org>.  If this
	  changes it will be announced in appropriate places (most likely
	  vim.sf.net, www.vim.org and/or comp.editors).  When it is completely
	  impossible to contact the maintainer, the obligation to send him
	  your changes ceases.  Once the maintainer has confirmed that he has
	  received your changes they will not have to be sent again.
       b) If you have received a modified Vim that was distributed as
	  mentioned under a) you are allowed to further distribute it
	  unmodified, as mentioned at I).  If you make additional changes the
	  text under a) applies to those changes.
       c) Provide all the changes, including source code, with every copy of
	  the modified Vim you distribute.  This may be done in the form of a
	  context diff.  You can choose what license to use for new code you
	  add.  The changes and their license must not restrict others from
	  making their own changes to the official version of Vim.
       d) When you have a modified Vim which includes changes as mentioned
	  under c), you can distribute it without the source code for the
	  changes if the following three conditions are met:
	  - The license that applies to the changes permits you to distribute
	    the changes to the Vim maintainer without fee or restriction, and
	    permits the Vim maintainer to include the changes in the official
	    version of Vim without fee or restriction.
	  - You keep the changes for at least three years after last
	    distributing the corresponding modified Vim.  When the maintainer
	    or someone who you distributed the modified Vim to asks you (in
	    any way) for the changes within this period, you must make them
	    available to him.
	  - You clearly describe in the distribution how to contact you.  This
	    contact information must remain valid for at least three years
	    after last distributing the corresponding modified Vim, or as long
	    as possible.
       e) When the GNU General Public License (GPL) applies to the changes,
	  you can distribute the modified Vim under the GNU GPL version 2 or
	  any later version.
    3) A message must be added, at least in the output of the ":version"
       command and in the intro screen, such that the user of the modified Vim
       is able to see that it was modified.  When distributing as mentioned
       under 2)e) adding the message is only required for as far as this does
       not conflict with the license used for the changes.
    4) The contact information as required under 2)a) and 2)d) must not be
       removed or changed, except that the person himself can make
       corrections.

III) If you distribute a modified version of Vim, you are encouraged to use
     the Vim license for your changes and make them available to the
     maintainer, including the source code.  The preferred way to do this is
     by e-mail or by uploading the files to a server and e-mailing the URL.
     If the number of changes is small (e.g., a modified Makefile) e-mailing a
     context diff will do.  The e-mail address to be used is
     <maintainer@vim.org>

IV)  It is not allowed to remove this license from the distribution of the Vim
     sources, parts of it or from a modified version.  You may use this
     license for previous Vim releases instead of the license that they came
     with, at your option.

=== end of license ===

Note:

- If you are happy with Vim, please express that by reading the rest of this
  file and consider helping needy children in Uganda.

- If you want to support further Vim development consider becoming a
  |sponsor|.  The money goes to Uganda anyway.

- According to Richard Stallman the Vim license is GNU GPL compatible.
  A few minor changes have been made since he checked it, but that should not
  make a difference.

- If you link Vim with a library that goes under the GNU GPL, this limits
  further distribution to the GNU GPL.  Also when you didn't actually change
  anything in Vim.

- Once a change is included that goes under the GNU GPL, this forces all
  further changes to also be made under the GNU GPL or a compatible license.

- If you distribute a modified version of Vim, you can include your name and
  contact information with the "--with-modified-by" configure argument or the
  MODIFIED_BY define.

==============================================================================
Kibaale Children's Centre		*kcc* *Kibaale*  *charity*

Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
south of Uganda, near Tanzania, in East Africa.  The area is known as Rakai
District.  The population is mostly farmers.  Although people are poor, there
is enough food.  But this district is suffering from AIDS more than any other
part of the world.  Some say that it started there.  Estimations are that 10
to 30% of the Ugandans are infected with HIV.  Because parents die, there are
many orphans.  In this district about 60,000 children have lost one or both
parents, out of a population of 350,000.  And this is still continuing.

The children need a lot of help.  The KCC is working hard to provide the needy
with food, medical care and education.  Food and medical care to keep them
healthy now, and education so that they can take care of themselves in the
future.  KCC works on a Christian base, but help is given to children of any
religion.

The key to solving the problems in this area is education.  This has been
neglected in the past years with president Idi Amin and the following civil
wars.  Now that the government is stable again, the children and parents have
to learn how to take care of themselves and how to avoid infections.  There is
also help for people who are ill and hungry, but the primary goal is to
prevent people from getting ill and to teach them how to grow healthy food.

Most of the orphans are living in an extended family.  An uncle or older
sister is taking care of them.  Because these families are big and the income
(if any) is low, a child is lucky if it gets healthy food.  Clothes, medical
care and schooling is beyond its reach.  To help these needy children, a
sponsorship program was put into place.  A child can be financially adopted.
For a few dollars a month KCC sees to it that the child gets indispensable
items, is healthy, goes to school and KCC takes care of anything else that
needs to be done for the child and the family that supports it.

Besides helping the child directly, the environment where the child grows up
needs to be improved.  KCC helps schools to improve their teaching methods.
There is a demonstration school at the centre and teacher trainings are given.
Health workers are being trained, hygiene education is carried out and
households are stimulated to build a proper latrine.  I helped setting up a
production site for cement slabs.  These are used to build a good latrine.
They are sold below cost price.

There is a small clinic at the project, which provides children and their
family with medical help.  When needed, transport to a hospital is offered.
Immunization programs are carried out and help is provided when an epidemic is
breaking out (measles and cholera have been a problem).
							*donate*
Summer 1994 to summer 1995 I spent a whole year at the centre, working as a
volunteer.  I have helped to expand the centre and worked in the area of water
and sanitation.  I learned that the help that the KCC provides really helps.
When I came back to Holland, I wanted to continue supporting KCC.  To do this
I'm raising funds and organizing the sponsorship program.  Please consider one
of these possibilities:

1.  Sponsor a child in primary school: 17 euro a month (or more).
2.  Sponsor a child in secondary school: 25 euro a month (or more).
3.  Sponsor the clinic: Any amount a month or quarter
4.  A one-time donation

Compared with other organizations that do child sponsorship the amounts are
very low.  This is because the money goes directly to the centre.  Less than
5% is used for administration.  This is possible because this is a small
organization that works with volunteers.  If you would like to sponsor a
child, you should have the intention to do this for at least one year.

How do you know that the money will be spent right?  First of all you have my
personal guarantee as the author of Vim.  I trust the people that are working
at the centre, I know them personally.  Furthermore, the centre has been
co-sponsored and inspected by World Vision, Save the Children Fund and is now
under the supervision of Pacific Academy Outreach Society.  The centre is
visited about once a year to check the progress (at our own cost).  I have
visited the centre myself many times, starting in 1993.  The visit reports are
on the ICCF web site.

If you have any further questions, send me e-mail: <Bram@vim.org>.

The address of the centre is:
			Kibaale Children's Centre
			p.o. box 1658
			Masaka, Uganda, East Africa

Sending money:						*iccf-donations*

Check the ICCF web site for the latest information!  See |iccf| for the URL.


USA:		The methods mentioned below can be used.
		Sending a check to the Nehemiah Group Outreach Society (NGOS)
		is no longer possible, unfortunately. We are looking for
		another way to get you an IRS tax receipt. 
		For sponsoring a child contact KCF in Canada (see below). US
		checks can be sent to them to lower banking costs.

Canada:		Contact Kibaale Children's Fund (KCF) in Surrey, Canada.  They
		take care of the Canadian sponsors for the children in
		Kibaale.  KCF forwards 100% of the money to the project in
		Uganda.  You can send them a one time donation directly.
		Please send me a note so that I know what has been donated
		because of Vim.  Ask KCF for information about sponsorship.
			Kibaale Children's Fund c/o Pacific Academy
			10238-168 Street
			Surrey, B.C. V4N 1Z4
			Canada
			Phone: 604-581-5353
		If you make a donation to Kibaale Children's Fund (KCF) you
		will receive a tax receipt which can be submitted with your
		tax return.

Holland:	Transfer to the account of "Stichting ICCF Holland" in Lisse.
		This will allow for tax deduction if you live in Holland.
			Postbank, nr. 4548774
			IBAN: NL95 INGB 0004 5487 74

Germany:	It is possible to make donations that allow for a tax return.
		Check the ICCF web site for the latest information:
			http://iccf-holland.org/germany.html

World:		Use a postal money order.  That should be possible from any
		country, mostly from the post office.  Use this name (which is
		in my passport): "Abraham Moolenaar".  Use Euro for the
		currency if possible.

Europe:		Use a bank transfer if possible.  Your bank should have a form
		that you can use for this.  See "Others" below for the swift
		code and IBAN number.
		Any other method should work.  Ask for information about
		sponsorship.

Credit Card:	You can use PayPal to send money with a Credit card.  This is
		the most widely used Internet based payment system.  It's
		really simple to use.  Use this link to find more info:
		    https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q
		The e-mail address for sending the money to is:
		    Bram@iccf-holland.org
		For amounts above 400 Euro ($500) sending a check is
		preferred.

Others:		Transfer to one of these accounts if possible:
		    Postbank, account 4548774
				Swift code: INGB NL 2A
				IBAN: NL95 INGB 0004 5487 74
			under the name "stichting ICCF Holland", Lisse
		    If that doesn't work:
		    Rabobank Lisse, account 3765.05.117
				Swift code: RABO NL 2U
			under the name "Bram Moolenaar", Lisse
		Otherwise, send a check in euro or US dollars to the address
		below.  Minimal amount: $70 (my bank does not accept smaller
		amounts for foreign check, sorry)

Address to send checks to:
			Bram Moolenaar
			Finsterruetihof 1
			8134 Adliswil
			Switzerland

This address is expected to be valid for a long time.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��aB

vim80/doc/if_sniff.txtnu�[���*if_sniff.txt*	For Vim version 8.0.  Last change: 2016 Feb 27


		  VIM REFERENCE MANUAL
		by Anton Leherbauer (toni@takefive.co.at)


The SNiFF+ support was removed at patch 7.4.1433.  If you want to check it out
sync to before that.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�k��\�\vim80/doc/usr_41.txtnu�[���*usr_41.txt*	For Vim version 8.0.  Last change: 2018 Apr 11

		     VIM USER MANUAL - by Bram Moolenaar

			      Write a Vim script


The Vim script language is used for the startup vimrc file, syntax files, and
many other things.  This chapter explains the items that can be used in a Vim
script.  There are a lot of them, thus this is a long chapter.

|41.1|	Introduction
|41.2|	Variables
|41.3|	Expressions
|41.4|	Conditionals
|41.5|	Executing an expression
|41.6|	Using functions
|41.7|	Defining a function
|41.8|	Lists and Dictionaries
|41.9|	Exceptions
|41.10|	Various remarks
|41.11|	Writing a plugin
|41.12|	Writing a filetype plugin
|41.13|	Writing a compiler plugin
|41.14|	Writing a plugin that loads quickly
|41.15|	Writing library scripts
|41.16|	Distributing Vim scripts

     Next chapter: |usr_42.txt|  Add new menus
 Previous chapter: |usr_40.txt|  Make new commands
Table of contents: |usr_toc.txt|

==============================================================================
*41.1*	Introduction				*vim-script-intro* *script*

Your first experience with Vim scripts is the vimrc file.  Vim reads it when
it starts up and executes the commands.  You can set options to values you
prefer.  And you can use any colon command in it (commands that start with a
":"; these are sometimes referred to as Ex commands or command-line commands).
   Syntax files are also Vim scripts.  As are files that set options for a
specific file type.  A complicated macro can be defined by a separate Vim
script file.  You can think of other uses yourself.

Let's start with a simple example: >

	:let i = 1
	:while i < 5
	:  echo "count is" i
	:  let i += 1
	:endwhile
<
	Note:
	The ":" characters are not really needed here.  You only need to use
	them when you type a command.  In a Vim script file they can be left
	out.  We will use them here anyway to make clear these are colon
	commands and make them stand out from Normal mode commands.
	Note:
	You can try out the examples by yanking the lines from the text here
	and executing them with :@"

The output of the example code is:

	count is 1 ~
	count is 2 ~
	count is 3 ~
	count is 4 ~

In the first line the ":let" command assigns a value to a variable.  The
generic form is: >

	:let {variable} = {expression}

In this case the variable name is "i" and the expression is a simple value,
the number one.
   The ":while" command starts a loop.  The generic form is: >

	:while {condition}
	:  {statements}
	:endwhile

The statements until the matching ":endwhile" are executed for as long as the
condition is true.  The condition used here is the expression "i < 5".  This
is true when the variable i is smaller than five.
	Note:
	If you happen to write a while loop that keeps on running, you can
	interrupt it by pressing CTRL-C (CTRL-Break on MS-Windows).

The ":echo" command prints its arguments.  In this case the string "count is"
and the value of the variable i.  Since i is one, this will print:

	count is 1 ~

Then there is the ":let i += 1" command.  This does the same thing as
":let i = i + 1".  This adds one to the variable i and assigns the new value
to the same variable.

The example was given to explain the commands, but would you really want to
make such a loop, it can be written much more compact: >

	:for i in range(1, 4)
	:  echo "count is" i
	:endfor

We won't explain how |:for| and |range()| work until later.  Follow the links
if you are impatient.


THREE KINDS OF NUMBERS

Numbers can be decimal, hexadecimal or octal.  A hexadecimal number starts
with "0x" or "0X".  For example "0x1f" is decimal 31.  An octal number starts
with a zero.  "017" is decimal 15.  Careful: don't put a zero before a decimal
number, it will be interpreted as an octal number!
   The ":echo" command always prints decimal numbers.  Example: >

	:echo 0x7f 036
<	127 30 ~

A number is made negative with a minus sign.  This also works for hexadecimal
and octal numbers.   A minus sign is also used for subtraction.  Compare this
with the previous example: >

	:echo 0x7f -036
<	97 ~

White space in an expression is ignored.  However, it's recommended to use it
for separating items, to make the expression easier to read.  For example, to
avoid the confusion with a negative number above, put a space between the
minus sign and the following number: >

	:echo 0x7f - 036

==============================================================================
*41.2*	Variables

A variable name consists of ASCII letters, digits and the underscore.  It
cannot start with a digit.  Valid variable names are:

	counter
	_aap3
	very_long_variable_name_with_underscores
	FuncLength
	LENGTH

Invalid names are "foo+bar" and "6var".
   These variables are global.  To see a list of currently defined variables
use this command: >

	:let

You can use global variables everywhere.  This also means that when the
variable "count" is used in one script file, it might also be used in another
file.  This leads to confusion at least, and real problems at worst.  To avoid
this, you can use a variable local to a script file by prepending "s:".  For
example, one script contains this code: >

	:let s:count = 1
	:while s:count < 5
	:  source other.vim
	:  let s:count += 1
	:endwhile

Since "s:count" is local to this script, you can be sure that sourcing the
"other.vim" script will not change this variable.  If "other.vim" also uses an
"s:count" variable, it will be a different copy, local to that script.  More
about script-local variables here: |script-variable|.

There are more kinds of variables, see |internal-variables|.  The most often
used ones are:

	b:name		variable local to a buffer
	w:name		variable local to a window
	g:name		global variable (also in a function)
	v:name		variable predefined by Vim


DELETING VARIABLES

Variables take up memory and show up in the output of the ":let" command.  To
delete a variable use the ":unlet" command.  Example: >

	:unlet s:count

This deletes the script-local variable "s:count" to free up the memory it
uses.  If you are not sure if the variable exists, and don't want an error
message when it doesn't, append !: >

	:unlet! s:count

When a script finishes, the local variables used there will not be
automatically freed.  The next time the script executes, it can still use the
old value.  Example: >

	:if !exists("s:call_count")
	:  let s:call_count = 0
	:endif
	:let s:call_count = s:call_count + 1
	:echo "called" s:call_count "times"

The "exists()" function checks if a variable has already been defined.  Its
argument is the name of the variable you want to check.  Not the variable
itself!  If you would do this: >

	:if !exists(s:call_count)

Then the value of s:call_count will be used as the name of the variable that
exists() checks.  That's not what you want.
   The exclamation mark ! negates a value.  When the value was true, it
becomes false.  When it was false, it becomes true.  You can read it as "not".
Thus "if !exists()" can be read as "if not exists()".
   What Vim calls true is anything that is not zero.  Zero is false.
	Note:
	Vim automatically converts a string to a number when it is looking for
	a number.  When using a string that doesn't start with a digit the
	resulting number is zero.  Thus look out for this: >
		:if "true"
<	The "true" will be interpreted as a zero, thus as false!


STRING VARIABLES AND CONSTANTS

So far only numbers were used for the variable value.  Strings can be used as
well.  Numbers and strings are the basic types of variables that Vim supports.
The type is dynamic, it is set each time when assigning a value to the
variable with ":let".  More about types in |41.8|.
   To assign a string value to a variable, you need to use a string constant.
There are two types of these.  First the string in double quotes: >

	:let name = "peter"
	:echo name
<	peter ~

If you want to include a double quote inside the string, put a backslash in
front of it: >

	:let name = "\"peter\""
	:echo name
<	"peter" ~

To avoid the need for a backslash, you can use a string in single quotes: >

	:let name = '"peter"'
	:echo name
<	"peter" ~

Inside a single-quote string all the characters are as they are.  Only the
single quote itself is special: you need to use two to get one.  A backslash
is taken literally, thus you can't use it to change the meaning of the
character after it.
   In double-quote strings it is possible to use special characters.  Here are
a few useful ones:

	\t		<Tab>
	\n		<NL>, line break
	\r		<CR>, <Enter>
	\e		<Esc>
	\b		<BS>, backspace
	\"		"
	\\		\, backslash
	\<Esc>		<Esc>
	\<C-W>		CTRL-W

The last two are just examples.  The  "\<name>" form can be used to include
the special key "name".
   See |expr-quote| for the full list of special items in a string.

==============================================================================
*41.3*	Expressions

Vim has a rich, yet simple way to handle expressions.  You can read the
definition here: |expression-syntax|.  Here we will show the most common
items.
   The numbers, strings and variables mentioned above are expressions by
themselves.  Thus everywhere an expression is expected, you can use a number,
string or variable.  Other basic items in an expression are:

	$NAME		environment variable
	&name		option
	@r		register

Examples: >

	:echo "The value of 'tabstop' is" &ts
	:echo "Your home directory is" $HOME
	:if @a > 5

The &name form can be used to save an option value, set it to a new value,
do something and restore the old value.  Example: >

	:let save_ic = &ic
	:set noic
	:/The Start/,$delete
	:let &ic = save_ic

This makes sure the "The Start" pattern is used with the 'ignorecase' option
off.  Still, it keeps the value that the user had set.  (Another way to do
this would be to add "\C" to the pattern, see |/\C|.)


MATHEMATICS

It becomes more interesting if we combine these basic items.  Let's start with
mathematics on numbers:

	a + b		add
	a - b		subtract
	a * b		multiply
	a / b		divide
	a % b		modulo

The usual precedence is used.  Example: >

	:echo 10 + 5 * 2
<	20 ~

Grouping is done with parentheses.  No surprises here.  Example: >

	:echo (10 + 5) * 2
<	30 ~

Strings can be concatenated with ".".  Example: >

	:echo "foo" . "bar"
<	foobar ~

When the ":echo" command gets multiple arguments, it separates them with a
space.  In the example the argument is a single expression, thus no space is
inserted.

Borrowed from the C language is the conditional expression:

	a ? b : c

If "a" evaluates to true "b" is used, otherwise "c" is used.  Example: >

	:let i = 4
	:echo i > 5 ? "i is big" : "i is small"
<	i is small ~

The three parts of the constructs are always evaluated first, thus you could
see it work as:

	(a) ? (b) : (c)

==============================================================================
*41.4*	Conditionals

The ":if" commands executes the following statements, until the matching
":endif", only when a condition is met.  The generic form is:

	:if {condition}
	   {statements}
	:endif

Only when the expression {condition} evaluates to true (non-zero) will the
{statements} be executed.  These must still be valid commands.  If they
contain garbage, Vim won't be able to find the ":endif".
   You can also use ":else".  The generic form for this is:

	:if {condition}
	   {statements}
	:else
	   {statements}
	:endif

The second {statements} is only executed if the first one isn't.
   Finally, there is ":elseif":

	:if {condition}
	   {statements}
	:elseif {condition}
	   {statements}
	:endif

This works just like using ":else" and then "if", but without the need for an
extra ":endif".
   A useful example for your vimrc file is checking the 'term' option and
doing something depending upon its value: >

	:if &term == "xterm"
	:  " Do stuff for xterm
	:elseif &term == "vt100"
	:  " Do stuff for a vt100 terminal
	:else
	:  " Do something for other terminals
	:endif


LOGIC OPERATIONS

We already used some of them in the examples.  These are the most often used
ones:

	a == b		equal to
	a != b		not equal to
	a >  b		greater than
	a >= b		greater than or equal to
	a <  b		less than
	a <= b		less than or equal to

The result is one if the condition is met and zero otherwise.  An example: >

	:if v:version >= 700
	:  echo "congratulations"
	:else
	:  echo "you are using an old version, upgrade!"
	:endif

Here "v:version" is a variable defined by Vim, which has the value of the Vim
version.  600 is for version 6.0.  Version 6.1 has the value 601.  This is
very useful to write a script that works with multiple versions of Vim.
|v:version|

The logic operators work both for numbers and strings.  When comparing two
strings, the mathematical difference is used.  This compares byte values,
which may not be right for some languages.
   When comparing a string with a number, the string is first converted to a
number.  This is a bit tricky, because when a string doesn't look like a
number, the number zero is used.  Example: >

	:if 0 == "one"
	:  echo "yes"
	:endif

This will echo "yes", because "one" doesn't look like a number, thus it is
converted to the number zero.

For strings there are two more items:

	a =~ b		matches with
	a !~ b		does not match with

The left item "a" is used as a string.  The right item "b" is used as a
pattern, like what's used for searching.  Example: >

	:if str =~ " "
	:  echo "str contains a space"
	:endif
	:if str !~ '\.$'
	:  echo "str does not end in a full stop"
	:endif

Notice the use of a single-quote string for the pattern.  This is useful,
because backslashes would need to be doubled in a double-quote string and
patterns tend to contain many backslashes.

The 'ignorecase' option is used when comparing strings.  When you don't want
that, append "#" to match case and "?" to ignore case.  Thus "==?" compares
two strings to be equal while ignoring case.  And "!~#" checks if a pattern
doesn't match, also checking the case of letters.  For the full table see
|expr-==|.


MORE LOOPING

The ":while" command was already mentioned.  Two more statements can be used
in between the ":while" and the ":endwhile":

	:continue		Jump back to the start of the while loop; the
				loop continues.
	:break			Jump forward to the ":endwhile"; the loop is
				discontinued.

Example: >

	:while counter < 40
	:  call do_something()
	:  if skip_flag
	:    continue
	:  endif
	:  if finished_flag
	:    break
	:  endif
	:  sleep 50m
	:endwhile

The ":sleep" command makes Vim take a nap.  The "50m" specifies fifty
milliseconds.  Another example is ":sleep 4", which sleeps for four seconds.

Even more looping can be done with the ":for" command, see below in |41.8|.

==============================================================================
*41.5*	Executing an expression

So far the commands in the script were executed by Vim directly.  The
":execute" command allows executing the result of an expression.  This is a
very powerful way to build commands and execute them.
   An example is to jump to a tag, which is contained in a variable: >

	:execute "tag " . tag_name

The "." is used to concatenate the string "tag " with the value of variable
"tag_name".  Suppose "tag_name" has the value "get_cmd", then the command that
will be executed is: >

	:tag get_cmd

The ":execute" command can only execute colon commands.  The ":normal" command
executes Normal mode commands.  However, its argument is not an expression but
the literal command characters.  Example: >

	:normal gg=G

This jumps to the first line and formats all lines with the "=" operator.
   To make ":normal" work with an expression, combine ":execute" with it.
Example: >

	:execute "normal " . normal_commands

The variable "normal_commands" must contain the Normal mode commands.
   Make sure that the argument for ":normal" is a complete command.  Otherwise
Vim will run into the end of the argument and abort the command.  For example,
if you start Insert mode, you must leave Insert mode as well.  This works: >

	:execute "normal Inew text \<Esc>"

This inserts "new text " in the current line.  Notice the use of the special
key "\<Esc>".  This avoids having to enter a real <Esc> character in your
script.

If you don't want to execute a string but evaluate it to get its expression
value, you can use the eval() function: >

	:let optname = "path"
	:let optval = eval('&' . optname)

A "&" character is prepended to "path", thus the argument to eval() is
"&path".  The result will then be the value of the 'path' option.
   The same thing can be done with: >
	:exe 'let optval = &' . optname

==============================================================================
*41.6*	Using functions

Vim defines many functions and provides a large amount of functionality that
way.  A few examples will be given in this section.  You can find the whole
list here: |functions|.

A function is called with the ":call" command.  The parameters are passed in
between parentheses separated by commas.  Example: >

	:call search("Date: ", "W")

This calls the search() function, with arguments "Date: " and "W".  The
search() function uses its first argument as a search pattern and the second
one as flags.  The "W" flag means the search doesn't wrap around the end of
the file.

A function can be called in an expression.  Example: >

	:let line = getline(".")
	:let repl = substitute(line, '\a', "*", "g")
	:call setline(".", repl)

The getline() function obtains a line from the current buffer.  Its argument
is a specification of the line number.  In this case "." is used, which means
the line where the cursor is.
   The substitute() function does something similar to the ":substitute"
command.  The first argument is the string on which to perform the
substitution.  The second argument is the pattern, the third the replacement
string.  Finally, the last arguments are the flags.
   The setline() function sets the line, specified by the first argument, to a
new string, the second argument.  In this example the line under the cursor is
replaced with the result of the substitute().  Thus the effect of the three
statements is equal to: >

	:substitute/\a/*/g

Using the functions becomes more interesting when you do more work before and
after the substitute() call.


FUNCTIONS						*function-list*

There are many functions.  We will mention them here, grouped by what they are
used for.  You can find an alphabetical list here: |functions|.  Use CTRL-] on
the function name to jump to detailed help on it.

String manipulation:					*string-functions*
	nr2char()		get a character by its ASCII value
	char2nr()		get ASCII value of a character
	str2nr()		convert a string to a Number
	str2float()		convert a string to a Float
	printf()		format a string according to % items
	escape()		escape characters in a string with a '\'
	shellescape()		escape a string for use with a shell command
	fnameescape()		escape a file name for use with a Vim command
	tr()			translate characters from one set to another
	strtrans()		translate a string to make it printable
	tolower()		turn a string to lowercase
	toupper()		turn a string to uppercase
	match()			position where a pattern matches in a string
	matchend()		position where a pattern match ends in a string
	matchstr()		match of a pattern in a string
	matchstrpos()		match and positions of a pattern in a string
	matchlist()		like matchstr() and also return submatches
	stridx()		first index of a short string in a long string
	strridx()		last index of a short string in a long string
	strlen()		length of a string in bytes
	strchars()		length of a string in characters
	strwidth()		size of string when displayed
	strdisplaywidth()	size of string when displayed, deals with tabs
	substitute()		substitute a pattern match with a string
	submatch()		get a specific match in ":s" and substitute()
	strpart()		get part of a string using byte index
	strcharpart()		get part of a string using char index
	strgetchar()		get character from a string using char index
	expand()		expand special keywords
	iconv()			convert text from one encoding to another
	byteidx()		byte index of a character in a string
	byteidxcomp()		like byteidx() but count composing characters
	repeat()		repeat a string multiple times
	eval()			evaluate a string expression
	execute()		execute an Ex command and get the output

List manipulation:					*list-functions*
	get()			get an item without error for wrong index
	len()			number of items in a List
	empty()			check if List is empty
	insert()		insert an item somewhere in a List
	add()			append an item to a List
	extend()		append a List to a List
	remove()		remove one or more items from a List
	copy()			make a shallow copy of a List
	deepcopy()		make a full copy of a List
	filter()		remove selected items from a List
	map()			change each List item
	sort()			sort a List
	reverse()		reverse the order of a List
	uniq()			remove copies of repeated adjacent items
	split()			split a String into a List
	join()			join List items into a String
	range()			return a List with a sequence of numbers
	string()		String representation of a List
	call()			call a function with List as arguments
	index()			index of a value in a List
	max()			maximum value in a List
	min()			minimum value in a List
	count()			count number of times a value appears in a List
	repeat()		repeat a List multiple times

Dictionary manipulation:				*dict-functions*
	get()			get an entry without an error for a wrong key
	len()			number of entries in a Dictionary
	has_key()		check whether a key appears in a Dictionary
	empty()			check if Dictionary is empty
	remove()		remove an entry from a Dictionary
	extend()		add entries from one Dictionary to another
	filter()		remove selected entries from a Dictionary
	map()			change each Dictionary entry
	keys()			get List of Dictionary keys
	values()		get List of Dictionary values
	items()			get List of Dictionary key-value pairs
	copy()			make a shallow copy of a Dictionary
	deepcopy()		make a full copy of a Dictionary
	string()		String representation of a Dictionary
	max()			maximum value in a Dictionary
	min()			minimum value in a Dictionary
	count()			count number of times a value appears

Floating point computation:				*float-functions*
	float2nr()		convert Float to Number
	abs()			absolute value (also works for Number)
	round()			round off
	ceil()			round up
	floor()			round down
	trunc()			remove value after decimal point
	fmod()			remainder of division
	exp()			exponential
	log()			natural logarithm (logarithm to base e)
	log10()			logarithm to base 10
	pow()			value of x to the exponent y
	sqrt()			square root
	sin()			sine
	cos()			cosine
	tan()			tangent
	asin()			arc sine
	acos()			arc cosine
	atan()			arc tangent
	atan2()			arc tangent
	sinh()			hyperbolic sine
	cosh()			hyperbolic cosine
	tanh()			hyperbolic tangent
	isnan()			check for not a number

Other computation:					*bitwise-function*
	and()			bitwise AND
	invert()		bitwise invert
	or()			bitwise OR
	xor()			bitwise XOR
	sha256()		SHA-256 hash

Variables:						*var-functions*
	type()			type of a variable
	islocked()		check if a variable is locked
	funcref()		get a Funcref for a function reference
	function()		get a Funcref for a function name
	getbufvar()		get a variable value from a specific buffer
	setbufvar()		set a variable in a specific buffer
	getwinvar()		get a variable from specific window
	gettabvar()		get a variable from specific tab page
	gettabwinvar()		get a variable from specific window & tab page
	setwinvar()		set a variable in a specific window
	settabvar()		set a variable in a specific tab page
	settabwinvar()		set a variable in a specific window & tab page
	garbagecollect()	possibly free memory

Cursor and mark position:		*cursor-functions* *mark-functions*
	col()			column number of the cursor or a mark
	virtcol()		screen column of the cursor or a mark
	line()			line number of the cursor or mark
	wincol()		window column number of the cursor
	winline()		window line number of the cursor
	cursor()		position the cursor at a line/column
	screencol()		get screen column of the cursor
	screenrow()		get screen row of the cursor
	getcurpos()		get position of the cursor
	getpos()		get position of cursor, mark, etc.
	setpos()		set position of cursor, mark, etc.
	byte2line()		get line number at a specific byte count
	line2byte()		byte count at a specific line
	diff_filler()		get the number of filler lines above a line
	screenattr()		get attribute at a screen line/row
	screenchar()		get character code at a screen line/row

Working with text in the current buffer:		*text-functions*
	getline()		get a line or list of lines from the buffer
	setline()		replace a line in the buffer
	append()		append line or list of lines in the buffer
	indent()		indent of a specific line
	cindent()		indent according to C indenting
	lispindent()		indent according to Lisp indenting
	nextnonblank()		find next non-blank line
	prevnonblank()		find previous non-blank line
	search()		find a match for a pattern
	searchpos()		find a match for a pattern
	searchpair()		find the other end of a start/skip/end
	searchpairpos()		find the other end of a start/skip/end
	searchdecl()		search for the declaration of a name
	getcharsearch()		return character search information
	setcharsearch()		set character search information

					*system-functions* *file-functions*
System functions and manipulation of files:
	glob()			expand wildcards
	globpath()		expand wildcards in a number of directories
	glob2regpat()		convert a glob pattern into a search pattern
	findfile()		find a file in a list of directories
	finddir()		find a directory in a list of directories
	resolve()		find out where a shortcut points to
	fnamemodify()		modify a file name
	pathshorten()		shorten directory names in a path
	simplify()		simplify a path without changing its meaning
	executable()		check if an executable program exists
	exepath()		full path of an executable program
	filereadable()		check if a file can be read
	filewritable()		check if a file can be written to
	getfperm()		get the permissions of a file
	setfperm()		set the permissions of a file
	getftype()		get the kind of a file
	isdirectory()		check if a directory exists
	getfsize()		get the size of a file
	getcwd()		get the current working directory
	haslocaldir()		check if current window used |:lcd|
	tempname()		get the name of a temporary file
	mkdir()			create a new directory
	delete()		delete a file
	rename()		rename a file
	system()		get the result of a shell command as a string
	systemlist()		get the result of a shell command as a list
	hostname()		name of the system
	readfile()		read a file into a List of lines
	writefile()		write a List of lines into a file

Date and Time:				*date-functions* *time-functions*
	getftime()		get last modification time of a file
	localtime()		get current time in seconds
	strftime()		convert time to a string
	reltime()		get the current or elapsed time accurately
	reltimestr()		convert reltime() result to a string
	reltimefloat()		convert reltime() result to a Float

			*buffer-functions* *window-functions* *arg-functions*
Buffers, windows and the argument list:
	argc()			number of entries in the argument list
	argidx()		current position in the argument list
	arglistid()		get id of the argument list
	argv()			get one entry from the argument list
	bufexists()		check if a buffer exists
	buflisted()		check if a buffer exists and is listed
	bufloaded()		check if a buffer exists and is loaded
	bufname()		get the name of a specific buffer
	bufnr()			get the buffer number of a specific buffer
	tabpagebuflist()	return List of buffers in a tab page
	tabpagenr()		get the number of a tab page
	tabpagewinnr()		like winnr() for a specified tab page
	winnr()			get the window number for the current window
	bufwinid()		get the window ID of a specific buffer
	bufwinnr()		get the window number of a specific buffer
	winbufnr()		get the buffer number of a specific window
	getbufline()		get a list of lines from the specified buffer
	win_findbuf()		find windows containing a buffer
	win_getid()		get window ID of a window
	win_gotoid()		go to window with ID
	win_id2tabwin()		get tab and window nr from window ID
	win_id2win()		get window nr from window ID
	getbufinfo()		get a list with buffer information
	gettabinfo()		get a list with tab page information
	getwininfo()		get a list with window information
	getchangelist()		get a list of change list entries
	getjumplist()		get a list of jump list entries

Command line:					*command-line-functions*
	getcmdline()		get the current command line
	getcmdpos()		get position of the cursor in the command line
	setcmdpos()		set position of the cursor in the command line
	getcmdtype()		return the current command-line type
	getcmdwintype()		return the current command-line window type
	getcompletion()		list of command-line completion matches

Quickfix and location lists:			*quickfix-functions*
	getqflist()		list of quickfix errors
	setqflist()		modify a quickfix list
	getloclist()		list of location list items
	setloclist()		modify a location list

Insert mode completion:				*completion-functions*
	complete()		set found matches
	complete_add()		add to found matches
	complete_check()	check if completion should be aborted
	pumvisible()		check if the popup menu is displayed

Folding:					*folding-functions*
	foldclosed()		check for a closed fold at a specific line
	foldclosedend()		like foldclosed() but return the last line
	foldlevel()		check for the fold level at a specific line
	foldtext()		generate the line displayed for a closed fold
	foldtextresult()	get the text displayed for a closed fold

Syntax and highlighting:	  *syntax-functions* *highlighting-functions*
	clearmatches()		clear all matches defined by |matchadd()| and
				the |:match| commands
	getmatches()		get all matches defined by |matchadd()| and
				the |:match| commands
	hlexists()		check if a highlight group exists
	hlID()			get ID of a highlight group
	synID()			get syntax ID at a specific position
	synIDattr()		get a specific attribute of a syntax ID
	synIDtrans()		get translated syntax ID
	synstack()		get list of syntax IDs at a specific position
	synconcealed()		get info about concealing
	diff_hlID()		get highlight ID for diff mode at a position
	matchadd()		define a pattern to highlight (a "match")
	matchaddpos()		define a list of positions to highlight
	matcharg()		get info about |:match| arguments
	matchdelete()		delete a match defined by |matchadd()| or a
				|:match| command
	setmatches()		restore a list of matches saved by
				|getmatches()|

Spelling:					*spell-functions*
	spellbadword()		locate badly spelled word at or after cursor
	spellsuggest()		return suggested spelling corrections
	soundfold()		return the sound-a-like equivalent of a word

History:					*history-functions*
	histadd()		add an item to a history
	histdel()		delete an item from a history
	histget()		get an item from a history
	histnr()		get highest index of a history list

Interactive:					*interactive-functions*
	browse()		put up a file requester
	browsedir()		put up a directory requester
	confirm()		let the user make a choice
	getchar()		get a character from the user
	getcharmod()		get modifiers for the last typed character
	feedkeys()		put characters in the typeahead queue
	input()			get a line from the user
	inputlist()		let the user pick an entry from a list
	inputsecret()		get a line from the user without showing it
	inputdialog()		get a line from the user in a dialog
	inputsave()		save and clear typeahead
	inputrestore()		restore typeahead

GUI:						*gui-functions*
	getfontname()		get name of current font being used
	getwinpos()		position of the Vim window
	getwinposx()		X position of the Vim window
	getwinposy()		Y position of the Vim window
	balloon_show()		set the balloon content
	balloon_split()		split a message for a balloon

Vim server:					*server-functions*
	serverlist()		return the list of server names
	remote_startserver()	run a server
	remote_send()		send command characters to a Vim server
	remote_expr()		evaluate an expression in a Vim server
	server2client()		send a reply to a client of a Vim server
	remote_peek()		check if there is a reply from a Vim server
	remote_read()		read a reply from a Vim server
	foreground()		move the Vim window to the foreground
	remote_foreground()	move the Vim server window to the foreground

Window size and position:			*window-size-functions*
	winheight()		get height of a specific window
	winwidth()		get width of a specific window
	win_screenpos()		get screen position of a window
	winrestcmd()		return command to restore window sizes
	winsaveview()		get view of current window
	winrestview()		restore saved view of current window

Mappings:				    *mapping-functions*
	hasmapto()		check if a mapping exists
	mapcheck()		check if a matching mapping exists
	maparg()		get rhs of a mapping
	wildmenumode()		check if the wildmode is active

Testing:				    *test-functions*
	assert_equal()		assert that two expressions values are equal
	assert_notequal()	assert that two expressions values are not equal
	assert_inrange()	assert that an expression is inside a range
	assert_match()		assert that a pattern matches the value
	assert_notmatch()	assert that a pattern does not match the value
	assert_false()		assert that an expression is false
	assert_true()		assert that an expression is true
	assert_exception()	assert that a command throws an exception
	assert_beeps()		assert that a command beeps
	assert_fails()		assert that a command fails
	assert_report()		report a test failure
	test_alloc_fail()	make memory allocation fail
	test_autochdir()	enable 'autochdir' during startup
	test_override()		test with Vim internal overrides
	test_garbagecollect_now()   free memory right now
	test_ignore_error()	ignore a specific error message
	test_null_channel()	return a null Channel
	test_null_dict()	return a null Dict
	test_null_job()		return a null Job
	test_null_list()	return a null List
	test_null_partial()	return a null Partial function
	test_null_string()	return a null String
	test_settime()		set the time Vim uses internally

Inter-process communication:		    *channel-functions*
	ch_canread()		check if there is something to read
	ch_open()		open a channel
	ch_close()		close a channel
	ch_close_in()		close the in part of a channel
	ch_read()		read a message from a channel
	ch_readraw()		read a raw message from a channel
	ch_sendexpr()		send a JSON message over a channel
	ch_sendraw()		send a raw message over a channel
	ch_evalexpr()		evaluates an expression over channel
	ch_evalraw()		evaluates a raw string over channel
	ch_status()		get status of a channel
	ch_getbufnr()		get the buffer number of a channel
	ch_getjob()		get the job associated with a channel
	ch_info()		get channel information
	ch_log()		write a message in the channel log file
	ch_logfile()		set the channel log file
	ch_setoptions()		set the options for a channel
	json_encode()		encode an expression to a JSON string
	json_decode()		decode a JSON string to Vim types
	js_encode()		encode an expression to a JSON string
	js_decode()		decode a JSON string to Vim types

Jobs:		    			        *job-functions*
	job_start()		start a job
	job_stop()		stop a job
	job_status()		get the status of a job
	job_getchannel()	get the channel used by a job
	job_info()		get information about a job
	job_setoptions()	set options for a job

Terminal window:				*terminal-functions*
	term_start()		open a terminal window and run a job
	term_list()		get the list of terminal buffers
	term_sendkeys()		send keystrokes to a terminal
	term_wait()		wait for screen to be updated
	term_getjob()		get the job associated with a terminal
	term_scrape()		get row of a terminal screen
	term_getline()		get a line of text from a terminal
	term_getattr()		get the value of attribute {what}
	term_getcursor()	get the cursor position of a terminal
	term_getscrolled()	get the scroll count of a terminal
	term_getaltscreen()	get the alternate screen flag
	term_getsize()		get the size of a terminal
	term_getstatus()	get the status of a terminal
	term_gettitle()		get the title of a terminal
	term_gettty()		get the tty name of a terminal
	term_setansicolors()	set 16 ANSI colors, used for GUI
	term_getansicolors()	get 16 ANSI colors, used for GUI

Timers:						*timer-functions*
	timer_start()		create a timer
	timer_pause()		pause or unpause a timer
	timer_stop()		stop a timer
	timer_stopall()		stop all timers
	timer_info()		get information about timers

Various:					*various-functions*
	mode()			get current editing mode
	visualmode()		last visual mode used
	exists()		check if a variable, function, etc. exists
	has()			check if a feature is supported in Vim
	changenr()		return number of most recent change
	cscope_connection()	check if a cscope connection exists
	did_filetype()		check if a FileType autocommand was used
	eventhandler()		check if invoked by an event handler
	getpid()		get process ID of Vim

	libcall()		call a function in an external library
	libcallnr()		idem, returning a number

	undofile()		get the name of the undo file
	undotree()		return the state of the undo tree

	getreg()		get contents of a register
	getregtype()		get type of a register
	setreg()		set contents and type of a register

	shiftwidth()		effective value of 'shiftwidth'

	wordcount()		get byte/word/char count of buffer

	taglist()		get list of matching tags
	tagfiles()		get a list of tags files

	luaeval()		evaluate Lua expression
	mzeval()		evaluate |MzScheme| expression
	perleval()		evaluate Perl expression (|+perl|)
	py3eval()		evaluate Python expression (|+python3|)
	pyeval()		evaluate Python expression (|+python|)
	pyxeval()		evaluate |python_x| expression

==============================================================================
*41.7*	Defining a function

Vim enables you to define your own functions.  The basic function declaration
begins as follows: >

	:function {name}({var1}, {var2}, ...)
	:  {body}
	:endfunction
<
	Note:
	Function names must begin with a capital letter.

Let's define a short function to return the smaller of two numbers.  It starts
with this line: >

	:function Min(num1, num2)

This tells Vim that the function is named "Min" and it takes two arguments:
"num1" and "num2".
   The first thing you need to do is to check to see which number is smaller:
   >
	:  if a:num1 < a:num2

The special prefix "a:" tells Vim that the variable is a function argument.
Let's assign the variable "smaller" the value of the smallest number: >

	:  if a:num1 < a:num2
	:    let smaller = a:num1
	:  else
	:    let smaller = a:num2
	:  endif

The variable "smaller" is a local variable.  Variables used inside a function
are local unless prefixed by something like "g:", "a:", or "s:".

	Note:
	To access a global variable from inside a function you must prepend
	"g:" to it.  Thus "g:today" inside a function is used for the global
	variable "today", and "today" is another variable, local to the
	function.

You now use the ":return" statement to return the smallest number to the user.
Finally, you end the function: >

	:  return smaller
	:endfunction

The complete function definition is as follows: >

	:function Min(num1, num2)
	:  if a:num1 < a:num2
	:    let smaller = a:num1
	:  else
	:    let smaller = a:num2
	:  endif
	:  return smaller
	:endfunction

For people who like short functions, this does the same thing: >

	:function Min(num1, num2)
	:  if a:num1 < a:num2
	:    return a:num1
	:  endif
	:  return a:num2
	:endfunction

A user defined function is called in exactly the same way as a built-in
function.  Only the name is different.  The Min function can be used like
this: >

	:echo Min(5, 8)

Only now will the function be executed and the lines be interpreted by Vim.
If there are mistakes, like using an undefined variable or function, you will
now get an error message.  When defining the function these errors are not
detected.

When a function reaches ":endfunction" or ":return" is used without an
argument, the function returns zero.

To redefine a function that already exists, use the ! for the ":function"
command: >

	:function!  Min(num1, num2, num3)


USING A RANGE

The ":call" command can be given a line range.  This can have one of two
meanings.  When a function has been defined with the "range" keyword, it will
take care of the line range itself.
  The function will be passed the variables "a:firstline" and "a:lastline".
These will have the line numbers from the range the function was called with.
Example: >

	:function Count_words() range
	:  let lnum = a:firstline
	:  let n = 0
	:  while lnum <= a:lastline
	:    let n = n + len(split(getline(lnum)))
	:    let lnum = lnum + 1
	:  endwhile
	:  echo "found " . n . " words"
	:endfunction

You can call this function with: >

	:10,30call Count_words()

It will be executed once and echo the number of words.
   The other way to use a line range is by defining a function without the
"range" keyword.  The function will be called once for every line in the
range, with the cursor in that line.  Example: >

	:function  Number()
	:  echo "line " . line(".") . " contains: " . getline(".")
	:endfunction

If you call this function with: >

	:10,15call Number()

The function will be called six times.


VARIABLE NUMBER OF ARGUMENTS

Vim enables you to define functions that have a variable number of arguments.
The following command, for instance, defines a function that must have 1
argument (start) and can have up to 20 additional arguments: >

	:function Show(start, ...)

The variable "a:1" contains the first optional argument, "a:2" the second, and
so on.  The variable "a:0" contains the number of extra arguments.
   For example: >

	:function Show(start, ...)
	:  echohl Title
	:  echo "start is " . a:start
	:  echohl None
	:  let index = 1
	:  while index <= a:0
	:    echo "  Arg " . index . " is " . a:{index}
	:    let index = index + 1
	:  endwhile
	:  echo ""
	:endfunction

This uses the ":echohl" command to specify the highlighting used for the
following ":echo" command.  ":echohl None" stops it again.  The ":echon"
command works like ":echo", but doesn't output a line break.

You can also use the a:000 variable, it is a List of all the "..." arguments.
See |a:000|.


LISTING FUNCTIONS

The ":function" command lists the names and arguments of all user-defined
functions: >

	:function
<	function Show(start, ...) ~
	function GetVimIndent() ~
	function SetSyn(name) ~

To see what a function does, use its name as an argument for ":function": >

	:function SetSyn
<	1     if &syntax == '' ~
	2       let &syntax = a:name ~
	3     endif ~
	   endfunction ~


DEBUGGING

The line number is useful for when you get an error message or when debugging.
See |debug-scripts| about debugging mode.
   You can also set the 'verbose' option to 12 or higher to see all function
calls.  Set it to 15 or higher to see every executed line.


DELETING A FUNCTION

To delete the Show() function: >

	:delfunction Show

You get an error when the function doesn't exist.


FUNCTION REFERENCES

Sometimes it can be useful to have a variable point to one function or
another.  You can do it with the function() function.  It turns the name of a
function into a reference: >

	:let result = 0		" or 1
	:function! Right()
	:  return 'Right!'
	:endfunc
	:function! Wrong()
	:  return 'Wrong!'
	:endfunc
	:
	:if result == 1
	:  let Afunc = function('Right')
	:else
	:  let Afunc = function('Wrong')
	:endif
	:echo call(Afunc, [])
<	Wrong! ~

Note that the name of a variable that holds a function reference must start
with a capital.  Otherwise it could be confused with the name of a builtin
function.
   The way to invoke a function that a variable refers to is with the call()
function.  Its first argument is the function reference, the second argument
is a List with arguments.

Function references are most useful in combination with a Dictionary, as is
explained in the next section.

==============================================================================
*41.8*	Lists and Dictionaries

So far we have used the basic types String and Number.  Vim also supports two
composite types: List and Dictionary.

A List is an ordered sequence of things.  The things can be any kind of value,
thus you can make a List of numbers, a List of Lists and even a List of mixed
items.  To create a List with three strings: >

	:let alist = ['aap', 'mies', 'noot']

The List items are enclosed in square brackets and separated by commas.  To
create an empty List: >

	:let alist = []

You can add items to a List with the add() function: >

	:let alist = []
	:call add(alist, 'foo')
	:call add(alist, 'bar')
	:echo alist
<	['foo', 'bar'] ~

List concatenation is done with +: >

	:echo alist + ['foo', 'bar']
<	['foo', 'bar', 'foo', 'bar'] ~

Or, if you want to extend a List directly: >

	:let alist = ['one']
	:call extend(alist, ['two', 'three'])
	:echo alist
<	['one', 'two', 'three'] ~

Notice that using add() will have a different effect: >

	:let alist = ['one']
	:call add(alist, ['two', 'three'])
	:echo alist
<	['one', ['two', 'three']] ~

The second argument of add() is added as a single item.


FOR LOOP

One of the nice things you can do with a List is iterate over it: >

	:let alist = ['one', 'two', 'three']
	:for n in alist
	:  echo n
	:endfor
<	one ~
	two ~
	three ~

This will loop over each element in List "alist", assigning the value to
variable "n".  The generic form of a for loop is: >

	:for {varname} in {listexpression}
	:  {commands}
	:endfor

To loop a certain number of times you need a List of a specific length.  The
range() function creates one for you: >

	:for a in range(3)
	:  echo a
	:endfor
<	0 ~
	1 ~
	2 ~

Notice that the first item of the List that range() produces is zero, thus the
last item is one less than the length of the list.
   You can also specify the maximum value, the stride and even go backwards: >

	:for a in range(8, 4, -2)
	:  echo a
	:endfor
<	8 ~
	6 ~
	4 ~

A more useful example, looping over lines in the buffer: >

	:for line in getline(1, 20)
	:  if line =~ "Date: "
	:    echo matchstr(line, 'Date: \zs.*')
	:  endif
	:endfor

This looks into lines 1 to 20 (inclusive) and echoes any date found in there.


DICTIONARIES

A Dictionary stores key-value pairs.  You can quickly lookup a value if you
know the key.  A Dictionary is created with curly braces: >

	:let uk2nl = {'one': 'een', 'two': 'twee', 'three': 'drie'}

Now you can lookup words by putting the key in square brackets: >

	:echo uk2nl['two']
<	twee ~

The generic form for defining a Dictionary is: >

	{<key> : <value>, ...}

An empty Dictionary is one without any keys: >

	{}

The possibilities with Dictionaries are numerous.  There are various functions
for them as well.  For example, you can obtain a list of the keys and loop
over them: >

	:for key in keys(uk2nl)
	:  echo key
	:endfor
<	three ~
	one ~
	two ~

You will notice the keys are not ordered.  You can sort the list to get a
specific order: >

	:for key in sort(keys(uk2nl))
	:  echo key
	:endfor
<	one ~
	three ~
	two ~

But you can never get back the order in which items are defined.  For that you
need to use a List, it stores items in an ordered sequence.


DICTIONARY FUNCTIONS

The items in a Dictionary can normally be obtained with an index in square
brackets: >

	:echo uk2nl['one']
<	een ~

A method that does the same, but without so many punctuation characters: >

	:echo uk2nl.one
<	een ~

This only works for a key that is made of ASCII letters, digits and the
underscore.  You can also assign a new value this way: >

	:let uk2nl.four = 'vier'
	:echo uk2nl
<	{'three': 'drie', 'four': 'vier', 'one': 'een', 'two': 'twee'} ~

And now for something special: you can directly define a function and store a
reference to it in the dictionary: >

	:function uk2nl.translate(line) dict
	:  return join(map(split(a:line), 'get(self, v:val, "???")'))
	:endfunction

Let's first try it out: >

	:echo uk2nl.translate('three two five one')
<	drie twee ??? een ~

The first special thing you notice is the "dict" at the end of the ":function"
line.  This marks the function as being used from a Dictionary.  The "self"
local variable will then refer to that Dictionary.
   Now let's break up the complicated return command: >

	split(a:line)

The split() function takes a string, chops it into whitespace separated words
and returns a list with these words.  Thus in the example it returns: >

	:echo split('three two five one')
<	['three', 'two', 'five', 'one'] ~

This list is the first argument to the map() function.  This will go through
the list, evaluating its second argument with "v:val" set to the value of each
item.  This is a shortcut to using a for loop.  This command: >

	:let alist = map(split(a:line), 'get(self, v:val, "???")')

Is equivalent to: >

	:let alist = split(a:line)
	:for idx in range(len(alist))
	:  let alist[idx] = get(self, alist[idx], "???")
	:endfor

The get() function checks if a key is present in a Dictionary.  If it is, then
the value is retrieved.  If it isn't, then the default value is returned, in
the example it's '???'.  This is a convenient way to handle situations where a
key may not be present and you don't want an error message.

The join() function does the opposite of split(): it joins together a list of
words, putting a space in between.
  This combination of split(), map() and join() is a nice way to filter a line
of words in a very compact way.


OBJECT ORIENTED PROGRAMMING

Now that you can put both values and functions in a Dictionary, you can
actually use a Dictionary like an object.
   Above we used a Dictionary for translating Dutch to English.  We might want
to do the same for other languages.  Let's first make an object (aka
Dictionary) that has the translate function, but no words to translate: >

	:let transdict = {}
	:function transdict.translate(line) dict
	:  return join(map(split(a:line), 'get(self.words, v:val, "???")'))
	:endfunction

It's slightly different from the function above, using 'self.words' to lookup
word translations.  But we don't have a self.words.  Thus you could call this
an abstract class.

Now we can instantiate a Dutch translation object: >

	:let uk2nl = copy(transdict)
	:let uk2nl.words = {'one': 'een', 'two': 'twee', 'three': 'drie'}
	:echo uk2nl.translate('three one')
<	drie een ~

And a German translator: >

	:let uk2de = copy(transdict)
	:let uk2de.words = {'one': 'eins', 'two': 'zwei', 'three': 'drei'}
	:echo uk2de.translate('three one')
<	drei eins ~

You see that the copy() function is used to make a copy of the "transdict"
Dictionary and then the copy is changed to add the words.  The original
remains the same, of course.

Now you can go one step further, and use your preferred translator: >

	:if $LANG =~ "de"
	:  let trans = uk2de
	:else
	:  let trans = uk2nl
	:endif
	:echo trans.translate('one two three')
<	een twee drie ~

Here "trans" refers to one of the two objects (Dictionaries).  No copy is
made.  More about List and Dictionary identity can be found at |list-identity|
and |dict-identity|.

Now you might use a language that isn't supported.  You can overrule the
translate() function to do nothing: >

	:let uk2uk = copy(transdict)
	:function! uk2uk.translate(line)
	:  return a:line
	:endfunction
	:echo uk2uk.translate('three one wladiwostok')
<	three one wladiwostok ~

Notice that a ! was used to overwrite the existing function reference.  Now
use "uk2uk" when no recognized language is found: >

	:if $LANG =~ "de"
	:  let trans = uk2de
	:elseif $LANG =~ "nl"
	:  let trans = uk2nl
	:else
	:  let trans = uk2uk
	:endif
	:echo trans.translate('one two three')
<	one two three ~

For further reading see |Lists| and |Dictionaries|.

==============================================================================
*41.9*	Exceptions

Let's start with an example: >

	:try
	:   read ~/templates/pascal.tmpl
	:catch /E484:/
	:   echo "Sorry, the Pascal template file cannot be found."
	:endtry

The ":read" command will fail if the file does not exist.  Instead of
generating an error message, this code catches the error and gives the user a
nice message.

For the commands in between ":try" and ":endtry" errors are turned into
exceptions.  An exception is a string.  In the case of an error the string
contains the error message.  And every error message has a number.  In this
case, the error we catch contains "E484:".  This number is guaranteed to stay
the same (the text may change, e.g., it may be translated).

When the ":read" command causes another error, the pattern "E484:" will not
match in it.  Thus this exception will not be caught and result in the usual
error message.

You might be tempted to do this: >

	:try
	:   read ~/templates/pascal.tmpl
	:catch
	:   echo "Sorry, the Pascal template file cannot be found."
	:endtry

This means all errors are caught.  But then you will not see errors that are
useful, such as "E21: Cannot make changes, 'modifiable' is off".

Another useful mechanism is the ":finally" command: >

	:let tmp = tempname()
	:try
	:   exe ".,$write " . tmp
	:   exe "!filter " . tmp
	:   .,$delete
	:   exe "$read " . tmp
	:finally
	:   call delete(tmp)
	:endtry

This filters the lines from the cursor until the end of the file through the
"filter" command, which takes a file name argument.  No matter if the
filtering works, something goes wrong in between ":try" and ":finally" or the
user cancels the filtering by pressing CTRL-C, the "call delete(tmp)" is
always executed.  This makes sure you don't leave the temporary file behind.

More information about exception handling can be found in the reference
manual: |exception-handling|.

==============================================================================
*41.10*	Various remarks

Here is a summary of items that apply to Vim scripts.  They are also mentioned
elsewhere, but form a nice checklist.

The end-of-line character depends on the system.  For Unix a single <NL>
character is used.  For MS-DOS, Windows, OS/2 and the like, <CR><LF> is used.
This is important when using mappings that end in a <CR>.  See |:source_crnl|.


WHITE SPACE

Blank lines are allowed and ignored.

Leading whitespace characters (blanks and TABs) are always ignored.  The
whitespaces between parameters (e.g. between the "set" and the "cpoptions" in
the example below) are reduced to one blank character and plays the role of a
separator, the whitespaces after the last (visible) character may or may not
be ignored depending on the situation, see below.

For a ":set" command involving the "=" (equal) sign, such as in: >

	:set cpoptions    =aABceFst

the whitespace immediately before the "=" sign is ignored.  But there can be
no whitespace after the "=" sign!

To include a whitespace character in the value of an option, it must be
escaped by a "\" (backslash)  as in the following example: >

	:set tags=my\ nice\ file

The same example written as: >

	:set tags=my nice file

will issue an error, because it is interpreted as: >

	:set tags=my
	:set nice
	:set file


COMMENTS

The character " (the double quote mark) starts a comment.  Everything after
and including this character until the end-of-line is considered a comment and
is ignored, except for commands that don't consider comments, as shown in
examples below.  A comment can start on any character position on the line.

There is a little "catch" with comments for some commands.  Examples: >

	:abbrev dev development		" shorthand
	:map <F3> o#include		" insert include
	:execute cmd			" do it
	:!ls *.c			" list C files

The abbreviation 'dev' will be expanded to 'development     " shorthand'.  The
mapping of <F3> will actually be the whole line after the 'o# ....' including
the '" insert include'.  The "execute" command will give an error.  The "!"
command will send everything after it to the shell, causing an error for an
unmatched '"' character.
   There can be no comment after ":map", ":abbreviate", ":execute" and "!"
commands (there are a few more commands with this restriction).  For the
":map", ":abbreviate" and ":execute" commands there is a trick: >

	:abbrev dev development|" shorthand
	:map <F3> o#include|" insert include
	:execute cmd			|" do it

With the '|' character the command is separated from the next one.  And that
next command is only a comment.  For the last command you need to do two
things: |:execute| and use '|': >
	:exe '!ls *.c'			|" list C files

Notice that there is no white space before the '|' in the abbreviation and
mapping.  For these commands, any character until the end-of-line or '|' is
included.  As a consequence of this behavior, you don't always see that
trailing whitespace is included: >

	:map <F4> o#include  

To spot these problems, you can set the 'list' option when editing vimrc
files.

For Unix there is one special way to comment a line, that allows making a Vim
script executable: >
	#!/usr/bin/env vim -S
	echo "this is a Vim script"
	quit

The "#" command by itself lists a line with the line number.  Adding an
exclamation mark changes it into doing nothing, so that you can add the shell
command to execute the rest of the file. |:#!| |-S|


PITFALLS

Even bigger problem arises in the following example: >

	:map ,ab o#include
	:unmap ,ab 

Here the unmap command will not work, because it tries to unmap ",ab ".  This
does not exist as a mapped sequence.  An error will be issued, which is very
hard to identify, because the ending whitespace character in ":unmap ,ab " is
not visible.

And this is the same as what happens when one uses a comment after an 'unmap'
command: >

	:unmap ,ab     " comment

Here the comment part will be ignored.  However, Vim will try to unmap
',ab     ', which does not exist.  Rewrite it as: >

	:unmap ,ab|    " comment


RESTORING THE VIEW

Sometimes you want to make a change and go back to where the cursor was.
Restoring the relative position would also be nice, so that the same line
appears at the top of the window.
   This example yanks the current line, puts it above the first line in the
file and then restores the view: >

	map ,p ma"aYHmbgg"aP`bzt`a

What this does: >
	ma"aYHmbgg"aP`bzt`a
<	ma			set mark a at cursor position
	  "aY			yank current line into register a
	     Hmb		go to top line in window and set mark b there
		gg		go to first line in file
		  "aP		put the yanked line above it
		     `b		go back to top line in display
		       zt	position the text in the window as before
			 `a	go back to saved cursor position


PACKAGING

To avoid your function names to interfere with functions that you get from
others, use this scheme:
- Prepend a unique string before each function name.  I often use an
  abbreviation.  For example, "OW_" is used for the option window functions.
- Put the definition of your functions together in a file.  Set a global
  variable to indicate that the functions have been loaded.  When sourcing the
  file again, first unload the functions.
Example: >

	" This is the XXX package

	if exists("XXX_loaded")
	  delfun XXX_one
	  delfun XXX_two
	endif

	function XXX_one(a)
		... body of function ...
	endfun

	function XXX_two(b)
		... body of function ...
	endfun

	let XXX_loaded = 1

==============================================================================
*41.11*	Writing a plugin				*write-plugin*

You can write a Vim script in such a way that many people can use it.  This is
called a plugin.  Vim users can drop your script in their plugin directory and
use its features right away |add-plugin|.

There are actually two types of plugins:

  global plugins: For all types of files.
filetype plugins: Only for files of a specific type.

In this section the first type is explained.  Most items are also relevant for
writing filetype plugins.  The specifics for filetype plugins are in the next
section |write-filetype-plugin|.


NAME

First of all you must choose a name for your plugin.  The features provided
by the plugin should be clear from its name.  And it should be unlikely that
someone else writes a plugin with the same name but which does something
different.  And please limit the name to 8 characters, to avoid problems on
old Windows systems.

A script that corrects typing mistakes could be called "typecorr.vim".  We
will use it here as an example.

For the plugin to work for everybody, it should follow a few guidelines.  This
will be explained step-by-step.  The complete example plugin is at the end.


BODY

Let's start with the body of the plugin, the lines that do the actual work: >

 14	iabbrev teh the
 15	iabbrev otehr other
 16	iabbrev wnat want
 17	iabbrev synchronisation
 18		\ synchronization
 19	let s:count = 4

The actual list should be much longer, of course.

The line numbers have only been added to explain a few things, don't put them
in your plugin file!


HEADER

You will probably add new corrections to the plugin and soon have several
versions lying around.  And when distributing this file, people will want to
know who wrote this wonderful plugin and where they can send remarks.
Therefore, put a header at the top of your plugin: >

  1	" Vim global plugin for correcting typing mistakes
  2	" Last Change:	2000 Oct 15
  3	" Maintainer:	Bram Moolenaar <Bram@vim.org>

About copyright and licensing: Since plugins are very useful and it's hardly
worth restricting their distribution, please consider making your plugin
either public domain or use the Vim |license|.  A short note about this near
the top of the plugin should be sufficient.  Example: >

  4	" License:	This file is placed in the public domain.


LINE CONTINUATION, AVOIDING SIDE EFFECTS		*use-cpo-save*

In line 18 above, the line-continuation mechanism is used |line-continuation|.
Users with 'compatible' set will run into trouble here, they will get an error
message.  We can't just reset 'compatible', because that has a lot of side
effects.  To avoid this, we will set the 'cpoptions' option to its Vim default
value and restore it later.  That will allow the use of line-continuation and
make the script work for most people.  It is done like this: >

 11	let s:save_cpo = &cpo
 12	set cpo&vim
 ..
 42	let &cpo = s:save_cpo
 43	unlet s:save_cpo

We first store the old value of 'cpoptions' in the s:save_cpo variable.  At
the end of the plugin this value is restored.

Notice that a script-local variable is used |s:var|.  A global variable could
already be in use for something else.  Always use script-local variables for
things that are only used in the script.


NOT LOADING

It's possible that a user doesn't always want to load this plugin.  Or the
system administrator has dropped it in the system-wide plugin directory, but a
user has his own plugin he wants to use.  Then the user must have a chance to
disable loading this specific plugin.  This will make it possible: >

  6	if exists("g:loaded_typecorr")
  7	  finish
  8	endif
  9	let g:loaded_typecorr = 1

This also avoids that when the script is loaded twice it would cause error
messages for redefining functions and cause trouble for autocommands that are
added twice.

The name is recommended to start with "loaded_" and then the file name of the
plugin, literally.  The "g:" is prepended just to avoid mistakes when using
the variable in a function (without "g:" it would be a variable local to the
function).

Using "finish" stops Vim from reading the rest of the file, it's much quicker
than using if-endif around the whole file.


MAPPING

Now let's make the plugin more interesting: We will add a mapping that adds a
correction for the word under the cursor.  We could just pick a key sequence
for this mapping, but the user might already use it for something else.  To
allow the user to define which keys a mapping in a plugin uses, the <Leader>
item can be used: >

 22	  map <unique> <Leader>a  <Plug>TypecorrAdd

The "<Plug>TypecorrAdd" thing will do the work, more about that further on.

The user can set the "mapleader" variable to the key sequence that he wants
this mapping to start with.  Thus if the user has done: >

	let mapleader = "_"

the mapping will define "_a".  If the user didn't do this, the default value
will be used, which is a backslash.  Then a map for "\a" will be defined.

Note that <unique> is used, this will cause an error message if the mapping
already happened to exist. |:map-<unique>|

But what if the user wants to define his own key sequence?  We can allow that
with this mechanism: >

 21	if !hasmapto('<Plug>TypecorrAdd')
 22	  map <unique> <Leader>a  <Plug>TypecorrAdd
 23	endif

This checks if a mapping to "<Plug>TypecorrAdd" already exists, and only
defines the mapping from "<Leader>a" if it doesn't.  The user then has a
chance of putting this in his vimrc file: >

	map ,c  <Plug>TypecorrAdd

Then the mapped key sequence will be ",c" instead of "_a" or "\a".


PIECES

If a script gets longer, you often want to break up the work in pieces.  You
can use functions or mappings for this.  But you don't want these functions
and mappings to interfere with the ones from other scripts.  For example, you
could define a function Add(), but another script could try to define the same
function.  To avoid this, we define the function local to the script by
prepending it with "s:".

We will define a function that adds a new typing correction: >

 30	function s:Add(from, correct)
 31	  let to = input("type the correction for " . a:from . ": ")
 32	  exe ":iabbrev " . a:from . " " . to
 ..
 36	endfunction

Now we can call the function s:Add() from within this script.  If another
script also defines s:Add(), it will be local to that script and can only
be called from the script it was defined in.  There can also be a global Add()
function (without the "s:"), which is again another function.

<SID> can be used with mappings.  It generates a script ID, which identifies
the current script.  In our typing correction plugin we use it like this: >

 24	noremap <unique> <script> <Plug>TypecorrAdd  <SID>Add
 ..
 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), 1)<CR>

Thus when a user types "\a", this sequence is invoked: >

	\a  ->  <Plug>TypecorrAdd  ->  <SID>Add  ->  :call <SID>Add()

If another script would also map <SID>Add, it would get another script ID and
thus define another mapping.

Note that instead of s:Add() we use <SID>Add() here.  That is because the
mapping is typed by the user, thus outside of the script.  The <SID> is
translated to the script ID, so that Vim knows in which script to look for
the Add() function.

This is a bit complicated, but it's required for the plugin to work together
with other plugins.  The basic rule is that you use <SID>Add() in mappings and
s:Add() in other places (the script itself, autocommands, user commands).

We can also add a menu entry to do the same as the mapping: >

 26	noremenu <script> Plugin.Add\ Correction      <SID>Add

The "Plugin" menu is recommended for adding menu items for plugins.  In this
case only one item is used.  When adding more items, creating a submenu is
recommended.  For example, "Plugin.CVS" could be used for a plugin that offers
CVS operations "Plugin.CVS.checkin", "Plugin.CVS.checkout", etc.

Note that in line 28 ":noremap" is used to avoid that any other mappings cause
trouble.  Someone may have remapped ":call", for example.  In line 24 we also
use ":noremap", but we do want "<SID>Add" to be remapped.  This is why
"<script>" is used here.  This only allows mappings which are local to the
script. |:map-<script>|  The same is done in line 26 for ":noremenu".
|:menu-<script>|


<SID> AND <Plug>					*using-<Plug>*

Both <SID> and <Plug> are used to avoid that mappings of typed keys interfere
with mappings that are only to be used from other mappings.  Note the
difference between using <SID> and <Plug>:

<Plug>	is visible outside of the script.  It is used for mappings which the
	user might want to map a key sequence to.  <Plug> is a special code
	that a typed key will never produce.
	To make it very unlikely that other plugins use the same sequence of
	characters, use this structure: <Plug> scriptname mapname
	In our example the scriptname is "Typecorr" and the mapname is "Add".
	This results in "<Plug>TypecorrAdd".  Only the first character of
	scriptname and mapname is uppercase, so that we can see where mapname
	starts.

<SID>	is the script ID, a unique identifier for a script.
	Internally Vim translates <SID> to "<SNR>123_", where "123" can be any
	number.  Thus a function "<SID>Add()" will have a name "<SNR>11_Add()"
	in one script, and "<SNR>22_Add()" in another.  You can see this if
	you use the ":function" command to get a list of functions.  The
	translation of <SID> in mappings is exactly the same, that's how you
	can call a script-local function from a mapping.


USER COMMAND

Now let's add a user command to add a correction: >

 38	if !exists(":Correct")
 39	  command -nargs=1  Correct  :call s:Add(<q-args>, 0)
 40	endif

The user command is defined only if no command with the same name already
exists.  Otherwise we would get an error here.  Overriding the existing user
command with ":command!" is not a good idea, this would probably make the user
wonder why the command he defined himself doesn't work.  |:command|


SCRIPT VARIABLES

When a variable starts with "s:" it is a script variable.  It can only be used
inside a script.  Outside the script it's not visible.  This avoids trouble
with using the same variable name in different scripts.  The variables will be
kept as long as Vim is running.  And the same variables are used when sourcing
the same script again. |s:var|

The fun is that these variables can also be used in functions, autocommands
and user commands that are defined in the script.  In our example we can add
a few lines to count the number of corrections: >

 19	let s:count = 4
 ..
 30	function s:Add(from, correct)
 ..
 34	  let s:count = s:count + 1
 35	  echo s:count . " corrections now"
 36	endfunction

First s:count is initialized to 4 in the script itself.  When later the
s:Add() function is called, it increments s:count.  It doesn't matter from
where the function was called, since it has been defined in the script, it
will use the local variables from this script.


THE RESULT

Here is the resulting complete example: >

  1	" Vim global plugin for correcting typing mistakes
  2	" Last Change:	2000 Oct 15
  3	" Maintainer:	Bram Moolenaar <Bram@vim.org>
  4	" License:	This file is placed in the public domain.
  5
  6	if exists("g:loaded_typecorr")
  7	  finish
  8	endif
  9	let g:loaded_typecorr = 1
 10
 11	let s:save_cpo = &cpo
 12	set cpo&vim
 13
 14	iabbrev teh the
 15	iabbrev otehr other
 16	iabbrev wnat want
 17	iabbrev synchronisation
 18		\ synchronization
 19	let s:count = 4
 20
 21	if !hasmapto('<Plug>TypecorrAdd')
 22	  map <unique> <Leader>a  <Plug>TypecorrAdd
 23	endif
 24	noremap <unique> <script> <Plug>TypecorrAdd  <SID>Add
 25
 26	noremenu <script> Plugin.Add\ Correction      <SID>Add
 27
 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), 1)<CR>
 29
 30	function s:Add(from, correct)
 31	  let to = input("type the correction for " . a:from . ": ")
 32	  exe ":iabbrev " . a:from . " " . to
 33	  if a:correct | exe "normal viws\<C-R>\" \b\e" | endif
 34	  let s:count = s:count + 1
 35	  echo s:count . " corrections now"
 36	endfunction
 37
 38	if !exists(":Correct")
 39	  command -nargs=1  Correct  :call s:Add(<q-args>, 0)
 40	endif
 41
 42	let &cpo = s:save_cpo
 43	unlet s:save_cpo

Line 33 wasn't explained yet.  It applies the new correction to the word under
the cursor.  The |:normal| command is used to use the new abbreviation.  Note
that mappings and abbreviations are expanded here, even though the function
was called from a mapping defined with ":noremap".

Using "unix" for the 'fileformat' option is recommended.  The Vim scripts will
then work everywhere.  Scripts with 'fileformat' set to "dos" do not work on
Unix.  Also see |:source_crnl|.  To be sure it is set right, do this before
writing the file: >

	:set fileformat=unix


DOCUMENTATION						*write-local-help*

It's a good idea to also write some documentation for your plugin.  Especially
when its behavior can be changed by the user.  See |add-local-help| for how
they are installed.

Here is a simple example for a plugin help file, called "typecorr.txt": >

  1	*typecorr.txt*	Plugin for correcting typing mistakes
  2
  3	If you make typing mistakes, this plugin will have them corrected
  4	automatically.
  5
  6	There are currently only a few corrections.  Add your own if you like.
  7
  8	Mappings:
  9	<Leader>a   or   <Plug>TypecorrAdd
 10		Add a correction for the word under the cursor.
 11
 12	Commands:
 13	:Correct {word}
 14		Add a correction for {word}.
 15
 16							*typecorr-settings*
 17	This plugin doesn't have any settings.

The first line is actually the only one for which the format matters.  It will
be extracted from the help file to be put in the "LOCAL ADDITIONS:" section of
help.txt |local-additions|.  The first "*" must be in the first column of the
first line.  After adding your help file do ":help" and check that the entries
line up nicely.

You can add more tags inside ** in your help file.  But be careful not to use
existing help tags.  You would probably use the name of your plugin in most of
them, like "typecorr-settings" in the example.

Using references to other parts of the help in || is recommended.  This makes
it easy for the user to find associated help.


FILETYPE DETECTION					*plugin-filetype*

If your filetype is not already detected by Vim, you should create a filetype
detection snippet in a separate file.  It is usually in the form of an
autocommand that sets the filetype when the file name matches a pattern.
Example: >

	au BufNewFile,BufRead *.foo			set filetype=foofoo

Write this single-line file as "ftdetect/foofoo.vim" in the first directory
that appears in 'runtimepath'.  For Unix that would be
"~/.vim/ftdetect/foofoo.vim".  The convention is to use the name of the
filetype for the script name.

You can make more complicated checks if you like, for example to inspect the
contents of the file to recognize the language.  Also see |new-filetype|.


SUMMARY							*plugin-special*

Summary of special things to use in a plugin:

s:name			Variables local to the script.

<SID>			Script-ID, used for mappings and functions local to
			the script.

hasmapto()		Function to test if the user already defined a mapping
			for functionality the script offers.

<Leader>		Value of "mapleader", which the user defines as the
			keys that plugin mappings start with.

:map <unique>		Give a warning if a mapping already exists.

:noremap <script>	Use only mappings local to the script, not global
			mappings.

exists(":Cmd")		Check if a user command already exists.

==============================================================================
*41.12*	Writing a filetype plugin	*write-filetype-plugin* *ftplugin*

A filetype plugin is like a global plugin, except that it sets options and
defines mappings for the current buffer only.  See |add-filetype-plugin| for
how this type of plugin is used.

First read the section on global plugins above |41.11|.  All that is said there
also applies to filetype plugins.  There are a few extras, which are explained
here.  The essential thing is that a filetype plugin should only have an
effect on the current buffer.


DISABLING

If you are writing a filetype plugin to be used by many people, they need a
chance to disable loading it.  Put this at the top of the plugin: >

	" Only do this when not done yet for this buffer
	if exists("b:did_ftplugin")
	  finish
	endif
	let b:did_ftplugin = 1

This also needs to be used to avoid that the same plugin is executed twice for
the same buffer (happens when using an ":edit" command without arguments).

Now users can disable loading the default plugin completely by making a
filetype plugin with only this line: >

	let b:did_ftplugin = 1

This does require that the filetype plugin directory comes before $VIMRUNTIME
in 'runtimepath'!

If you do want to use the default plugin, but overrule one of the settings,
you can write the different setting in a script: >

	setlocal textwidth=70

Now write this in the "after" directory, so that it gets sourced after the
distributed "vim.vim" ftplugin |after-directory|.  For Unix this would be
"~/.vim/after/ftplugin/vim.vim".  Note that the default plugin will have set
"b:did_ftplugin", but it is ignored here.


OPTIONS

To make sure the filetype plugin only affects the current buffer use the >

	:setlocal

command to set options.  And only set options which are local to a buffer (see
the help for the option to check that).  When using |:setlocal| for global
options or options local to a window, the value will change for many buffers,
and that is not what a filetype plugin should do.

When an option has a value that is a list of flags or items, consider using
"+=" and "-=" to keep the existing value.  Be aware that the user may have
changed an option value already.  First resetting to the default value and
then changing it is often a good idea.  Example: >

	:setlocal formatoptions& formatoptions+=ro


MAPPINGS

To make sure mappings will only work in the current buffer use the >

	:map <buffer>

command.  This needs to be combined with the two-step mapping explained above.
An example of how to define functionality in a filetype plugin: >

	if !hasmapto('<Plug>JavaImport')
	  map <buffer> <unique> <LocalLeader>i <Plug>JavaImport
	endif
	noremap <buffer> <unique> <Plug>JavaImport oimport ""<Left><Esc>

|hasmapto()| is used to check if the user has already defined a map to
<Plug>JavaImport.  If not, then the filetype plugin defines the default
mapping.  This starts with |<LocalLeader>|, which allows the user to select
the key(s) he wants filetype plugin mappings to start with.  The default is a
backslash.
"<unique>" is used to give an error message if the mapping already exists or
overlaps with an existing mapping.
|:noremap| is used to avoid that any other mappings that the user has defined
interferes.  You might want to use ":noremap <script>" to allow remapping
mappings defined in this script that start with <SID>.

The user must have a chance to disable the mappings in a filetype plugin,
without disabling everything.  Here is an example of how this is done for a
plugin for the mail filetype: >

	" Add mappings, unless the user didn't want this.
	if !exists("no_plugin_maps") && !exists("no_mail_maps")
	  " Quote text by inserting "> "
	  if !hasmapto('<Plug>MailQuote')
	    vmap <buffer> <LocalLeader>q <Plug>MailQuote
	    nmap <buffer> <LocalLeader>q <Plug>MailQuote
	  endif
	  vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>
	  nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>
	endif

Two global variables are used:
|no_plugin_maps|	disables mappings for all filetype plugins
|no_mail_maps|		disables mappings for the "mail" filetype


USER COMMANDS

To add a user command for a specific file type, so that it can only be used in
one buffer, use the "-buffer" argument to |:command|.  Example: >

	:command -buffer  Make  make %:r.s


VARIABLES

A filetype plugin will be sourced for each buffer of the type it's for.  Local
script variables |s:var| will be shared between all invocations.  Use local
buffer variables |b:var| if you want a variable specifically for one buffer.


FUNCTIONS

When defining a function, this only needs to be done once.  But the filetype
plugin will be sourced every time a file with this filetype will be opened.
This construct makes sure the function is only defined once: >

	:if !exists("*s:Func")
	:  function s:Func(arg)
	:    ...
	:  endfunction
	:endif
<

UNDO						*undo_indent* *undo_ftplugin*

When the user does ":setfiletype xyz" the effect of the previous filetype
should be undone.  Set the b:undo_ftplugin variable to the commands that will
undo the settings in your filetype plugin.  Example: >

	let b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
		\ . "| unlet b:match_ignorecase b:match_words b:match_skip"

Using ":setlocal" with "<" after the option name resets the option to its
global value.  That is mostly the best way to reset the option value.

This does require removing the "C" flag from 'cpoptions' to allow line
continuation, as mentioned above |use-cpo-save|.

For undoing the effect of an indent script, the b:undo_indent variable should
be set accordingly.


FILE NAME

The filetype must be included in the file name |ftplugin-name|.  Use one of
these three forms:

	.../ftplugin/stuff.vim
	.../ftplugin/stuff_foo.vim
	.../ftplugin/stuff/bar.vim

"stuff" is the filetype, "foo" and "bar" are arbitrary names.


SUMMARY							*ftplugin-special*

Summary of special things to use in a filetype plugin:

<LocalLeader>		Value of "maplocalleader", which the user defines as
			the keys that filetype plugin mappings start with.

:map <buffer>		Define a mapping local to the buffer.

:noremap <script>	Only remap mappings defined in this script that start
			with <SID>.

:setlocal		Set an option for the current buffer only.

:command -buffer	Define a user command local to the buffer.

exists("*s:Func")	Check if a function was already defined.

Also see |plugin-special|, the special things used for all plugins.

==============================================================================
*41.13*	Writing a compiler plugin		*write-compiler-plugin*

A compiler plugin sets options for use with a specific compiler.  The user can
load it with the |:compiler| command.  The main use is to set the
'errorformat' and 'makeprg' options.

Easiest is to have a look at examples.  This command will edit all the default
compiler plugins: >

	:next $VIMRUNTIME/compiler/*.vim

Use |:next| to go to the next plugin file.

There are two special items about these files.  First is a mechanism to allow
a user to overrule or add to the default file.  The default files start with: >

	:if exists("current_compiler")
	:  finish
	:endif
	:let current_compiler = "mine"

When you write a compiler file and put it in your personal runtime directory
(e.g., ~/.vim/compiler for Unix), you set the "current_compiler" variable to
make the default file skip the settings.
							*:CompilerSet*
The second mechanism is to use ":set" for ":compiler!" and ":setlocal" for
":compiler".  Vim defines the ":CompilerSet" user command for this.  However,
older Vim versions don't, thus your plugin should define it then.  This is an
example: >

  if exists(":CompilerSet") != 2
    command -nargs=* CompilerSet setlocal <args>
  endif
  CompilerSet errorformat&		" use the default 'errorformat'
  CompilerSet makeprg=nmake

When you write a compiler plugin for the Vim distribution or for a system-wide
runtime directory, use the mechanism mentioned above.  When
"current_compiler" was already set by a user plugin nothing will be done.

When you write a compiler plugin to overrule settings from a default plugin,
don't check "current_compiler".  This plugin is supposed to be loaded
last, thus it should be in a directory at the end of 'runtimepath'.  For Unix
that could be ~/.vim/after/compiler.

==============================================================================
*41.14*	Writing a plugin that loads quickly	*write-plugin-quickload*

A plugin may grow and become quite long.  The startup delay may become
noticeable, while you hardly ever use the plugin.  Then it's time for a
quickload plugin.

The basic idea is that the plugin is loaded twice.  The first time user
commands and mappings are defined that offer the functionality.  The second
time the functions that implement the functionality are defined.

It may sound surprising that quickload means loading a script twice.  What we
mean is that it loads quickly the first time, postponing the bulk of the
script to the second time, which only happens when you actually use it.  When
you always use the functionality it actually gets slower!

Note that since Vim 7 there is an alternative: use the |autoload|
functionality |41.15|.

The following example shows how it's done: >

	" Vim global plugin for demonstrating quick loading
	" Last Change:	2005 Feb 25
	" Maintainer:	Bram Moolenaar <Bram@vim.org>
	" License:	This file is placed in the public domain.

	if !exists("s:did_load")
		command -nargs=* BNRead  call BufNetRead(<f-args>)
		map <F19> :call BufNetWrite('something')<CR>

		let s:did_load = 1
		exe 'au FuncUndefined BufNet* source ' . expand('<sfile>')
		finish
	endif

	function BufNetRead(...)
		echo 'BufNetRead(' . string(a:000) . ')'
		" read functionality here
	endfunction

	function BufNetWrite(...)
		echo 'BufNetWrite(' . string(a:000) . ')'
		" write functionality here
	endfunction

When the script is first loaded "s:did_load" is not set.  The commands between
the "if" and "endif" will be executed.  This ends in a |:finish| command, thus
the rest of the script is not executed.

The second time the script is loaded "s:did_load" exists and the commands
after the "endif" are executed.  This defines the (possible long)
BufNetRead() and BufNetWrite() functions.

If you drop this script in your plugin directory Vim will execute it on
startup.  This is the sequence of events that happens:

1. The "BNRead" command is defined and the <F19> key is mapped when the script
   is sourced at startup.  A |FuncUndefined| autocommand is defined.  The
   ":finish" command causes the script to terminate early.

2. The user types the BNRead command or presses the <F19> key.  The
   BufNetRead() or BufNetWrite() function will be called.

3. Vim can't find the function and triggers the |FuncUndefined| autocommand
   event.  Since the pattern "BufNet*" matches the invoked function, the
   command "source fname" will be executed.  "fname" will be equal to the name
   of the script, no matter where it is located, because it comes from
   expanding "<sfile>" (see |expand()|).

4. The script is sourced again, the "s:did_load" variable exists and the
   functions are defined.

Notice that the functions that are loaded afterwards match the pattern in the
|FuncUndefined| autocommand.  You must make sure that no other plugin defines
functions that match this pattern.

==============================================================================
*41.15*	Writing library scripts			*write-library-script*

Some functionality will be required in several places.  When this becomes more
than a few lines you will want to put it in one script and use it from many
scripts.  We will call that one script a library script.

Manually loading a library script is possible, so long as you avoid loading it
when it's already done.  You can do this with the |exists()| function.
Example: >

	if !exists('*MyLibFunction')
	   runtime library/mylibscript.vim
	endif
	call MyLibFunction(arg)

Here you need to know that MyLibFunction() is defined in a script
"library/mylibscript.vim" in one of the directories in 'runtimepath'.

To make this a bit simpler Vim offers the autoload mechanism.  Then the
example looks like this: >

	call mylib#myfunction(arg)

That's a lot simpler, isn't it?  Vim will recognize the function name and when
it's not defined search for the script "autoload/mylib.vim" in 'runtimepath'.
That script must define the "mylib#myfunction()" function.

You can put many other functions in the mylib.vim script, you are free to
organize your functions in library scripts.  But you must use function names
where the part before the '#' matches the script name.  Otherwise Vim would
not know what script to load.

If you get really enthusiastic and write lots of library scripts, you may
want to use subdirectories.  Example: >

	call netlib#ftp#read('somefile')

For Unix the library script used for this could be:

	~/.vim/autoload/netlib/ftp.vim

Where the function is defined like this: >

	function netlib#ftp#read(fname)
		"  Read the file fname through ftp
	endfunction

Notice that the name the function is defined with is exactly the same as the
name used for calling the function.  And the part before the last '#'
exactly matches the subdirectory and script name.

You can use the same mechanism for variables: >

	let weekdays = dutch#weekdays

This will load the script "autoload/dutch.vim", which should contain something
like: >

	let dutch#weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
		\ 'donderdag', 'vrijdag', 'zaterdag']

Further reading: |autoload|.

==============================================================================
*41.16*	Distributing Vim scripts			*distribute-script*

Vim users will look for scripts on the Vim website: http://www.vim.org.
If you made something that is useful for others, share it!

Vim scripts can be used on any system.  There might not be a tar or gzip
command.  If you want to pack files together and/or compress them the "zip"
utility is recommended.

For utmost portability use Vim itself to pack scripts together.  This can be
done with the Vimball utility.  See |vimball|.

It's good if you add a line to allow automatic updating.  See |glvs-plugins|.

==============================================================================

Next chapter: |usr_42.txt|  Add new menus

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z®�,1,1vim80/doc/usr_23.txtnu�[���*usr_23.txt*	For Vim version 8.0.  Last change: 2006 Apr 24

		     VIM USER MANUAL - by Bram Moolenaar

			     Editing other files


This chapter is about editing files that are not ordinary files.  With Vim you
can edit files that are compressed or encrypted.  Some files need to be
accessed over the internet.  With some restrictions, binary files can be
edited as well.

|23.1|	DOS, Mac and Unix files
|23.2|	Files on the internet
|23.3|	Encryption
|23.4|	Binary files
|23.5|	Compressed files

     Next chapter: |usr_24.txt|  Inserting quickly
 Previous chapter: |usr_22.txt|  Finding the file to edit
Table of contents: |usr_toc.txt|

==============================================================================
*23.1*	DOS, Mac and Unix files

Back in the early days, the old Teletype machines used two characters to
start a new line.  One to move the carriage back to the first position
(carriage return, <CR>), another to move the paper up (line feed, <LF>).
   When computers came out, storage was expensive.  Some people decided that
they did not need two characters for end-of-line.  The UNIX people decided
they could use <Line Feed> only for end-of-line.  The Apple people
standardized on <CR>.  The MS-DOS (and Microsoft Windows) folks decided to
keep the old <CR><LF>.
   This means that if you try to move a file from one system to another, you
have line-break problems.  The Vim editor automatically recognizes the
different file formats and handles things properly behind your back.
   The option 'fileformats' contains the various formats that will be tried
when a new file is edited.  The following command, for example, tells Vim to
try UNIX format first and MS-DOS format second: >

	:set fileformats=unix,dos

You will notice the format in the message you get when editing a file.  You
don't see anything if you edit a native file format.  Thus editing a Unix file
on Unix won't result in a remark.  But when you edit a dos file, Vim will
notify you of this:

	"/tmp/test" [dos] 3L, 71C ~

For a Mac file you would see "[mac]".
   The detected file format is stored in the 'fileformat' option.  To see
which format you have, execute the following command: >

	:set fileformat?

The three names that Vim uses are:

	unix		<LF>
	dos		<CR><LF>
	mac		<CR>


USING THE MAC FORMAT

On Unix, <LF> is used to break a line.  It's not unusual to have a <CR>
character halfway a line.  Incidentally, this happens quite often in Vi (and
Vim) scripts.
   On the Macintosh, where <CR> is the line break character, it's possible to
have a <LF> character halfway a line.
   The result is that it's not possible to be 100% sure whether a file
containing both <CR> and <LF> characters is a Mac or a Unix file.  Therefore,
Vim assumes that on Unix you probably won't edit a Mac file, and doesn't check
for this type of file.  To check for this format anyway, add "mac" to
'fileformats': >

	:set fileformats+=mac

Then Vim will take a guess at the file format.  Watch out for situations where
Vim guesses wrong.


OVERRULING THE FORMAT

If you use the good old Vi and try to edit an MS-DOS format file, you will
find that each line ends with a ^M character.  (^M is <CR>).  The automatic
detection avoids this.  Suppose you do want to edit the file that way?  Then
you need to overrule the format: >

	:edit ++ff=unix file.txt

The "++" string is an item that tells Vim that an option name follows, which
overrules the default for this single command.  "++ff" is used for
'fileformat'.  You could also use "++ff=mac" or "++ff=dos".
   This doesn't work for any option, only "++ff" and "++enc" are currently
implemented.  The full names "++fileformat" and "++encoding" also work.


CONVERSION

You can use the 'fileformat' option to convert from one file format to
another.  Suppose, for example, that you have an MS-DOS file named README.TXT
that you want to convert to UNIX format.  Start by editing the MS-DOS format
file: >
	vim README.TXT

Vim will recognize this as a dos format file.  Now change the file format to
UNIX: >

	:set fileformat=unix
	:write

The file is written in Unix format.

==============================================================================
*23.2*	Files on the internet

Someone sends you an e-mail message, which refers to a file by its URL.  For
example:

	You can find the information here: ~
		ftp://ftp.vim.org/pub/vim/README ~

You could start a program to download the file, save it on your local disk and
then start Vim to edit it.
   There is a much simpler way.  Move the cursor to any character of the URL.
Then use this command: >

	gf

With a bit of luck, Vim will figure out which program to use for downloading
the file, download it and edit the copy.  To open the file in a new window use
CTRL-W f.
   If something goes wrong you will get an error message.  It's possible that
the URL is wrong, you don't have permission to read it, the network connection
is down, etc.  Unfortunately, it's hard to tell the cause of the error.  You
might want to try the manual way of downloading the file.

Accessing files over the internet works with the netrw plugin.  Currently URLs
with these formats are recognized:

	ftp://		uses ftp
	rcp://		uses rcp
	scp://		uses scp
	http://		uses wget (reading only)

Vim doesn't do the communication itself, it relies on the mentioned programs
to be available on your computer.  On most Unix systems "ftp" and "rcp" will
be present.  "scp" and "wget" might need to be installed.

Vim detects these URLs for each command that starts editing a new file, also
with ":edit" and ":split", for example.  Write commands also work, except for
http://.

For more information, also about passwords, see |netrw|.

==============================================================================
*23.3*	Encryption

Some information you prefer to keep to yourself.  For example, when writing
a test on a computer that students also use.  You don't want clever students
to figure out a way to read the questions before the exam starts.  Vim can
encrypt the file for you, which gives you some protection.
   To start editing a new file with encryption, use the "-x" argument to start
Vim.  Example: >

	vim -x exam.txt

Vim prompts you for a key used for encrypting and decrypting the file:

	Enter encryption key: ~

Carefully type the secret key now.  You cannot see the characters you type,
they will be replaced by stars.  To avoid the situation that a typing mistake
will cause trouble, Vim asks you to enter the key again:

	Enter same key again: ~

You can now edit this file normally and put in all your secrets.  When you
finish editing the file and tell Vim to exit, the file is encrypted and
written.
   When you edit the file with Vim, it will ask you to enter the same key
again.  You don't need to use the "-x" argument.  You can also use the normal
":edit" command.  Vim adds a magic string to the file by which it recognizes
that the file was encrypted.
   If you try to view this file using another program, all you get is garbage.
Also, if you edit the file with Vim and enter the wrong key, you get garbage.
Vim does not have a mechanism to check if the key is the right one (this makes
it much harder to break the key).


SWITCHING ENCRYPTION ON AND OFF

To disable the encryption of a file, set the 'key' option to an empty string:
>
	:set key=

The next time you write the file this will be done without encryption.
   Setting the 'key' option to enable encryption is not a good idea, because
the password appears in the clear.  Anyone shoulder-surfing can read your
password.
   To avoid this problem, the ":X" command was created.  It asks you for an
encryption key, just like the "-x" argument did: >

	:X
	Enter encryption key: ******
	Enter same key again: ******


LIMITS ON ENCRYPTION

The encryption algorithm used by Vim is weak.  It is good enough to keep out
the casual prowler, but not good enough to keep out a cryptology expert with
lots of time on his hands.  Also you should be aware that the swap file is not
encrypted; so while you are editing, people with superuser privileges can read
the unencrypted text from this file.
   One way to avoid letting people read your swap file is to avoid using one.
If the -n argument is supplied on the command line, no swap file is used
(instead, Vim puts everything in memory).  For example, to edit the encrypted
file "file.txt" without a swap file use the following command: >

	vim -x -n file.txt

When already editing a file, the swapfile can be disabled with: >

	:setlocal noswapfile

Since there is no swapfile, recovery will be impossible.  Save the file a bit
more often to avoid the risk of losing your changes.

While the file is in memory, it is in plain text.  Anyone with privilege can
look in the editor's memory and discover the contents of the file.
   If you use a viminfo file, be aware that the contents of text registers are
written out in the clear as well.
   If you really want to secure the contents of a file, edit it only on a
portable computer not connected to a network, use good encryption tools, and
keep the computer locked up in a big safe when not in use.

==============================================================================
*23.4*	Binary files

You can edit binary files with Vim.  Vim wasn't really made for this, thus
there are a few restrictions.  But you can read a file, change a character and
write it back, with the result that only that one character was changed and
the file is identical otherwise.
   To make sure that Vim does not use its clever tricks in the wrong way, add
the "-b" argument when starting Vim: >

	vim -b datafile

This sets the 'binary' option.  The effect of this is that unexpected side
effects are turned off.  For example, 'textwidth' is set to zero, to avoid
automatic formatting of lines.  And files are always read in Unix file format.

Binary mode can be used to change a message in a program.  Be careful not to
insert or delete any characters, it would stop the program from working.  Use
"R" to enter replace mode.

Many characters in the file will be unprintable.  To see them in Hex format: >

	:set display=uhex

Otherwise, the "ga" command can be used to see the value of the character
under the cursor.  The output, when the cursor is on an <Esc>, looks like
this:

	<^[>  27,  Hex 1b,  Octal 033 ~

There might not be many line breaks in the file.  To get some overview switch
the 'wrap' option off: >

	:set nowrap


BYTE POSITION

To see on which byte you are in the file use this command: >

	g CTRL-G

The output is verbose:

    Col 9-16 of 9-16; Line 277 of 330; Word 1806 of 2058; Byte 10580 of 12206 ~

The last two numbers are the byte position in the file and the total number of
bytes.  This takes into account how 'fileformat' changes the number of bytes
that a line break uses.
    To move to a specific byte in the file, use the "go" command.  For
example, to move to byte 2345: >

	2345go


USING XXD

A real binary editor shows the text in two ways: as it is and in hex format.
You can do this in Vim by first converting the file with the "xxd" program.
This comes with Vim.
   First edit the file in binary mode: >

	vim -b datafile

Now convert the file to a hex dump with xxd: >

	:%!xxd

The text will look like this:

	0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49  ....9..;..tt.+NI ~
	0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30  K,.`.....b..4^.0 ~
	0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9  7;'1.".....i.59. ~

You can now view and edit the text as you like.  Vim treats the information as
ordinary text.  Changing the hex does not cause the printable character to be
changed, or the other way around.
   Finally convert it back with:
>
	:%!xxd -r

Only changes in the hex part are used.  Changes in the printable text part on
the right are ignored.

See the manual page of xxd for more information.

==============================================================================
*23.5*	Compressed files

This is easy: You can edit a compressed file just like any other file.  The
"gzip" plugin takes care of decompressing the file when you edit it.  And
compressing it again when you write it.
   These compression methods are currently supported:

	.Z	compress
	.gz	gzip
	.bz2	bzip2

Vim uses the mentioned programs to do the actual compression and
decompression.  You might need to install the programs first.

==============================================================================

Next chapter: |usr_24.txt|  Inserting quickly

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Zw:�M.M.vim80/doc/pi_vimball.txtnu�[���*pi_vimball.txt*	For Vim version 8.0.  Last change: 2016 Apr 11

			       ----------------
			       Vimball Archiver
			       ----------------

Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
	  (remove NOSPAM from Campbell's email first)
Copyright: (c) 2004-2015 by Charles E. Campbell		*Vimball-copyright*
	The VIM LICENSE (see |copyright|) applies to the files in this
	package, including vimballPlugin.vim, vimball.vim, and pi_vimball.txt.
	except use "vimball" instead of "VIM".  Like anything else that's free,
	vimball.vim and its associated files are provided *as is* and comes with
	no warranty of any kind, either expressed or implied.  No guarantees
	of merchantability.  No guarantees of suitability for any purpose.  By
	using this plugin, you agree that in no event will the copyright
	holder be liable for any damages resulting from the use of this
	software. Use at your own risk!

==============================================================================
1. Contents				*vba* *vimball* *vimball-contents*

	1. Contents......................................: |vimball-contents|
	2. Vimball Introduction..........................: |vimball-intro|
	3. Vimball Manual................................: |vimball-manual|
	   MkVimball.....................................: |:MkVimball|
	   UseVimball....................................: |:UseVimball|
	   RmVimball.....................................: |:RmVimball|
	4. Vimball History...............................: |vimball-history|


==============================================================================
2. Vimball Introduction						*vimball-intro*

	Vimball is intended to make life simpler for users of plugins.  All
	a user needs to do with a vimball is: >
		vim someplugin.vba
		:so %
		:q
<	and the plugin and all its components will be installed into their
	appropriate directories.  Note that one doesn't need to be in any
	particular directory when one does this.  Plus, any help for the
	plugin will also be automatically installed.

	If a user has decided to use the AsNeeded plugin, vimball is smart
	enough to put scripts nominally intended for .vim/plugin/ into
	.vim/AsNeeded/ instead.

	Removing a plugin that was installed with vimball is really easy: >
		vim
		:RmVimball someplugin
<	This operation is not at all easy for zips and tarballs, for example.

	Vimball examines the user's |'runtimepath'| to determine where to put
	the scripts.  The first directory mentioned on the runtimepath is
	usually used if possible.  Use >
		:echo &rtp
<	to see that directory.


==============================================================================
3. Vimball Manual					*vimball-manual*

MAKING A VIMBALL						*:MkVimball*
		:[range]MkVimball[!] filename [path]

	The range is composed of lines holding paths to files to be included
	in your new vimball, omitting the portion of the paths that is
	normally specified by the runtimepath (|'rtp'|).  As an example: >
		plugin/something.vim
		doc/something.txt
<	using >
		:[range]MkVimball filename
<
	on this range of lines will create a file called "filename.vba" which
	can be used by Vimball.vim to re-create these files.  If the
	"filename.vba" file already exists, then MkVimball will issue a
	warning and not create the file.  Note that these paths are relative
	to your .vim (vimfiles) directory, and the files should be in that
	directory.  The vimball plugin normally uses the first |'runtimepath'|
	directory that exists as a prefix; don't use absolute paths, unless
	the user has specified such a path.

	If you use the exclamation point (!), then MkVimball will create the
	"filename.vba" file, overwriting it if it already exists.  This
	behavior resembles that for |:w|.

	If you wish to force slashes into the filename, that can also be done
	by using the exclamation mark (ie. :MkVimball! path/filename).

	The tip at http://vim.wikia.com/wiki/Using_VimBall_with_%27Make%27
	has a good idea on how to automate the production of vimballs using
	make.


MAKING DIRECTORIES VIA VIMBALLS				*g:vimball_mkdir*

	First, the |mkdir()| command is tried (not all systems support it).

	If it doesn't exist, then if g:vimball_mkdir doesn't exist, it is set
	as follows: >
	  |g:netrw_localmkdir|, if it exists
	  "mkdir"             , if it is executable
	  "makedir"           , if it is executable
	  Otherwise           , it is undefined.
<	One may explicitly specify the directory making command using
	g:vimball_mkdir.  This command is used to make directories that
	are needed as indicated by the vimball.


CONTROLLING THE VIMBALL EXTRACTION DIRECTORY		*g:vimball_home*

	You may override the use of the |'runtimepath'| by specifying a
	variable, g:vimball_home.

							*vimball-extract*
		vim filename.vba

	Simply editing a Vimball will cause Vimball.vim to tell the user to
	source the file to extract its contents.

	Extraction will only proceed if the first line of a putative vimball
	file holds the "Vimball Archiver by Charles E. Campbell" line.

LISTING FILES IN A VIMBALL					*:VimballList*

		:VimballList

	This command will tell Vimball to list the files in the archive, along
	with their lengths in lines.

MANUALLY INVOKING VIMBALL EXTRACTION				*:UseVimball*

		:UseVimball [path]

	This command is contained within the vimball itself; it invokes the
	vimball#Vimball() routine which is responsible for unpacking the
	vimball.  One may choose to execute it by hand instead of sourcing
	the vimball; one may also choose to specify a path for the
	installation, thereby overriding the automatic choice of the first
	existing directory on the |'runtimepath'|.

REMOVING A VIMBALL						*:RmVimball*

		:RmVimball vimballfile [path]

	This command removes all files generated by the specified vimball
	(but not any directories it may have made).  One may choose a path
	for de-installation, too (see |'runtimepath'|); otherwise, the
	default is the first existing directory on the |'runtimepath'|.
	To implement this, a file (.VimballRecord) is made in that directory
	containing a record of what files need to be removed for all vimballs
	used thus far.

PREVENTING LOADING

	If for some reason you don't want to be able to extract plugins
	using vimballs: you may prevent the loading of vimball.vim by
	putting the following two variables in your <.vimrc>: >

		let g:loaded_vimballPlugin= 1
		let g:loaded_vimball      = 1
<
WINDOWS							*vimball-windows*

	Many vimball files are compressed with gzip.  Windows, unfortunately,
	does not come provided with a tool to decompress gzip'ped files.
	Fortunately, there are a number of tools available for Windows users
	to un-gzip files:
>
	    Item     Tool/Suite   Free   Website
	    ----     ----------   ----   -------
	    7zip        tool       y     http://www.7-zip.org/
	    Winzip      tool       n     http://www.winzip.com/downwz.htm
	    unxutils    suite      y     http://unxutils.sourceforge.net/
	    cygwin      suite      y     http://www.cygwin.com/
	    GnuWin32    suite      y     http://gnuwin32.sourceforge.net/
	    MinGW       suite      y     http://www.mingw.org/
<

==============================================================================
4. Vimball History					*vimball-history* {{{1

	37 : Jul 18, 2014 * (by request of T. Miedema) added augroup around
			    the autocmds in vimballPlugin.vim
	     Jul 06, 2015 * there are two uses of tabc; changed to tabc!
	34 : Sep 22, 2011 * "UseVimball path" now supports a non-full path by
			    prepending the current directory to it.
	33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
			  * Changed silent! to sil! (shorter)
			  * Safed |'swf'| setting (during vimball extraction,
			    its now turned off)
	32 : May 19, 2010 * (Christian Brabrandt) :so someplugin.vba and
			    :so someplugin.vba.gz (and the other supported
			    compression types) now works
			  * (Jan Steffens) added support for xz compression
			  * fenc extraction was erroneously picking up the
			    end of the line number when no file encoding
			    was present.  Fixed.
			  * By request, beginning the switchover from the vba
			    extension to vmb.  Currently both are supported;
			    MkVimball, however, now will create *.vmb files.
	     Feb 11, 2011 * motoyakurotsu reported an error with vimball's
			    handling of zero-length files
	     Feb 18, 2016 * Changed =~ to =~# where appropriate
	30 : Dec 08, 2008 * fnameescape() inserted to protect error
			    messaging using corrupted filenames from
			    causing problems
			  * RmVimball supports filenames that would
			    otherwise be considered to have "magic"
			    characters (ie. Abc[1].vba)
	     Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq
			    removed (shellescape() used directly)
	     Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball
			    be allowed to use slashes in the filename.
	26 : May 27, 2008 * g:vimball_mkdir usage installed.  Makes the
	                    $HOME/.vim (or $HOME\vimfiles) directory if
			    necessary.
	     May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug:
			    vimball wasn't updating plugins to AsNeeded/
			    when it should
	25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x
			    files as help files, too.
	     Apr 18, 2008 * RmVimball command is now protected by saving and
	                    restoring settings -- in particular, acd was
			    causing problems as reported by Zhang Shuhan
	24 : Nov 15, 2007 * g:vimball_path_escape used by s:Path() to
	                    prevent certain characters from causing trouble
			    (defunct: |fnameescape()| and |shellescape()|
			    now used instead)
	22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
	21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
	                    handling problem and it now changes \s to /s
	20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag
	                    removed.
	18 : Aug 01, 2006 * vimballs now use folding to easily display their
	                    contents.
			  * if a user has AsNeeded/somefile, then vimball
			    will extract plugin/somefile to the AsNeeded/
			    directory
	17 : Jun 28, 2006 * changes all \s to /s internally for Windows
	16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify
			    installation root paths implemented for
			    UseVimball, MkVimball, and RmVimball.
			  * RmVimball implemented
	15 : Jun 13, 2006 * bugfix
	14 : May 26, 2006 * bugfixes
	13 : May 01, 2006 * exists("&acd") used to determine if the acd
			    option exists
	12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined
	11 : Apr 27, 2006 * VimballList would create missing subdirectories that
			    the vimball specified were needed.  Fixed.
	10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
			    functions.  Included some more settings in them
			    which frequently cause trouble.
	9  : Apr 26, 2006 * various changes to support Windows' predilection
			    for backslashes and spaces in file and directory
			    names.
	7  : Apr 25, 2006 * bypasses foldenable
			  * uses more exe and less norm! (:yank :put etc)
			  * does better at insuring a "Press ENTER" prompt
			    appears to keep its messages visible
	4  : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter
			    only fires once, so the "Source this file..."
			    message is now issued only once.
	3  : Mar 20, 2006 * removed query, now requires sourcing to be
			    extracted (:so %).  Message to that effect
			    included.
			  * :VimballList  now shows files that would be
			    extracted.
	2  : Mar 20, 2006 * query, :UseVimball included
	1  : Mar 20, 2006 * initial release


==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
PK�j�ZK�i��vim80/doc/tagsrch.txtnu�[���*tagsrch.txt*   For Vim version 8.0.  Last change: 2017 Oct 20


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Tags and special searches				*tags-and-searches*

See section |29.1| of the user manual for an introduction.

1. Jump to a tag		|tag-commands|
2. Tag stack			|tag-stack|
3. Tag match list		|tag-matchlist|
4. Tags details			|tag-details|
5. Tags file format		|tags-file-format|
6. Include file searches	|include-search|

==============================================================================
1. Jump to a tag					*tag-commands*

							*tag* *tags*
A tag is an identifier that appears in a "tags" file.  It is a sort of label
that can be jumped to.  For example: In C programs each function name can be
used as a tag.  The "tags" file has to be generated by a program like ctags,
before the tag commands can be used.

With the ":tag" command the cursor will be positioned on the tag.  With the
CTRL-] command, the keyword on which the cursor is standing is used as the
tag.  If the cursor is not on a keyword, the first keyword to the right of the
cursor is used.

The ":tag" command works very well for C programs.  If you see a call to a
function and wonder what that function does, position the cursor inside of the
function name and hit CTRL-].  This will bring you to the function definition.
An easy way back is with the CTRL-T command.  Also read about the tag stack
below.

						*:ta* *:tag* *E426* *E429*
:[count]ta[g][!] {ident}
			Jump to the definition of {ident}, using the
			information in the tags file(s).  Put {ident} in the
			tag stack.  See |tag-!| for [!].
			{ident} can be a regexp pattern, see |tag-regexp|.
			When there are several matching tags for {ident}, jump
			to the [count] one.  When [count] is omitted the
			first one is jumped to. See |tag-matchlist| for
			jumping to other matching tags.

g<LeftMouse>						*g<LeftMouse>*
<C-LeftMouse>					*<C-LeftMouse>* *CTRL-]*
CTRL-]			Jump to the definition of the keyword under the
			cursor.  Same as ":tag {ident}", where {ident} is the
			keyword under or after cursor.
			When there are several matching tags for {ident}, jump
			to the [count] one.  When no [count] is given the
			first one is jumped to. See |tag-matchlist| for
			jumping to other matching tags.
			{Vi: identifier after the cursor}

							*v_CTRL-]*
{Visual}CTRL-]		Same as ":tag {ident}", where {ident} is the text that
			is highlighted.  {not in Vi}

							*telnet-CTRL-]*
CTRL-] is the default telnet escape key.  When you type CTRL-] to jump to a
tag, you will get the telnet prompt instead.  Most versions of telnet allow
changing or disabling the default escape key.  See the telnet man page.  You
can 'telnet -E {Hostname}' to disable the escape character, or 'telnet -e
{EscapeCharacter} {Hostname}' to specify another escape character.  If
possible, try to use "ssh" instead of "telnet" to avoid this problem.

							*tag-priority*
When there are multiple matches for a tag, this priority is used:
1. "FSC"  A full matching static tag for the current file.
2. "F C"  A full matching global tag for the current file.
3. "F  "  A full matching global tag for another file.
4. "FS "  A full matching static tag for another file.
5. " SC"  An ignore-case matching static tag for the current file.
6. "  C"  An ignore-case matching global tag for the current file.
7. "   "  An ignore-case matching global tag for another file.
8. " S "  An ignore-case matching static tag for another file.

Note that when the current file changes, the priority list is mostly not
changed, to avoid confusion when using ":tnext".  It is changed when using
":tag {ident}".

The ignore-case matches are not found for a ":tag" command when:
- the 'ignorecase' option is off and 'tagcase' is "followic"
- 'tagcase' is "match"
- 'tagcase' is "smart" and the pattern contains an upper case character.
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
  contains an upper case character.

The ignore-case matches are found when:
- a pattern is used (starting with a "/")
- for ":tselect"
- when 'tagcase' is "followic" and 'ignorecase' is off
- when 'tagcase' is "match"
- when 'tagcase' is "followscs" and the 'smartcase' option is off

Note that using ignore-case tag searching disables binary searching in the
tags file, which causes a slowdown.  This can be avoided by fold-case sorting
the tag file. See the 'tagbsearch' option for an explanation.

==============================================================================
2. Tag stack				*tag-stack* *tagstack* *E425*

On the tag stack is remembered which tags you jumped to, and from where.
Tags are only pushed onto the stack when the 'tagstack' option is set.

g<RightMouse>						*g<RightMouse>*
<C-RightMouse>					*<C-RightMouse>* *CTRL-T*
CTRL-T			Jump to [count] older entry in the tag stack
			(default 1).  {not in Vi}

						*:po* *:pop* *E555* *E556*
:[count]po[p][!]	Jump to [count] older entry in tag stack (default 1).
			See |tag-!| for [!].  {not in Vi}

:[count]ta[g][!]	Jump to [count] newer entry in tag stack (default 1).
			See |tag-!| for [!].  {not in Vi}

							*:tags*
:tags			Show the contents of the tag stack.  The active
			entry is marked with a '>'.  {not in Vi}

The output of ":tags" looks like this:

   # TO tag      FROM line  in file/text
   1  1 main		 1  harddisk2:text/vim/test
 > 2  2 FuncA		58  i = FuncA(10);
   3  1 FuncC	       357  harddisk2:text/vim/src/amiga.c

This list shows the tags that you jumped to and the cursor position before
that jump.  The older tags are at the top, the newer at the bottom.

The '>' points to the active entry.  This is the tag that will be used by the
next ":tag" command.  The CTRL-T and ":pop" command will use the position
above the active entry.

Below the "TO" is the number of the current match in the match list.  Note
that this doesn't change when using ":pop" or ":tag".

The line number and file name are remembered to be able to get back to where
you were before the tag command.  The line number will be correct, also when
deleting/inserting lines, unless this was done by another program (e.g.
another instance of Vim).

For the current file, the "file/text" column shows the text at the position.
An indent is removed and a long line is truncated to fit in the window.

You can jump to previously used tags with several commands.  Some examples:

	":pop" or CTRL-T	to position before previous tag
	{count}CTRL-T		to position before {count} older tag
	":tag"			to newer tag
	":0tag"			to last used tag

The most obvious way to use this is while browsing through the call graph of
a program.  Consider the following call graph:

	main  --->  FuncA  --->  FuncC
	      --->  FuncB

(Explanation: main calls FuncA and FuncB; FuncA calls FuncC).
You can get from main to FuncA by using CTRL-] on the call to FuncA.  Then
you can CTRL-] to get to FuncC.  If you now want to go back to main you can
use CTRL-T twice.  Then you can CTRL-] to FuncB.

If you issue a ":ta {ident}" or CTRL-] command, this tag is inserted at the
current position in the stack.  If the stack was full (it can hold up to 20
entries), the oldest entry is deleted and the older entries shift one
position up (their index number is decremented by one).  If the last used
entry was not at the bottom, the entries below the last used one are
deleted.  This means that an old branch in the call graph is lost.  After the
commands explained above the tag stack will look like this:

   # TO tag	FROM line  in file/text
   1  1 main		1  harddisk2:text/vim/test
   2  1 FuncB	       59  harddisk2:text/vim/src/main.c

							*E73*
When you try to use the tag stack while it doesn't contain anything you will
get an error message.

==============================================================================
3. Tag match list				*tag-matchlist* *E427* *E428*

When there are several matching tags, these commands can be used to jump
between them.  Note that these commands don't change the tag stack, they keep
the same entry.

							*:ts* *:tselect*
:ts[elect][!] [ident]	List the tags that match [ident], using the
			information in the tags file(s).
			When [ident] is not given, the last tag name from the
			tag stack is used.
			See |tag-!| for [!].
			With a '>' in the first column is indicated which is
			the current position in the list (if there is one).
			[ident] can be a regexp pattern, see |tag-regexp|.
			See |tag-priority| for the priorities used in the
			listing.  {not in Vi}
			Example output:

>
	 nr pri kind tag		file
	  1 F	f    mch_delay		os_amiga.c
			mch_delay(msec, ignoreinput)
	> 2 F	f    mch_delay		os_msdos.c
			mch_delay(msec, ignoreinput)
	  3 F	f    mch_delay		os_unix.c
			mch_delay(msec, ignoreinput)
	Enter nr of choice (<CR> to abort):
<
			See |tag-priority| for the "pri" column.  Note that
			this depends on the current file, thus using
			":tselect xxx" can produce different results.
			The "kind" column gives the kind of tag, if this was
			included in the tags file.
			The "info" column shows information that could be
			found in the tags file.  It depends on the program
			that produced the tags file.
			When the list is long, you may get the |more-prompt|.
			If you already see the tag you want to use, you can
			type 'q' and enter the number.

							*:sts* *:stselect*
:sts[elect][!] [ident]	Does ":tselect[!] [ident]" and splits the window for
			the selected tag.  {not in Vi}

							*g]*
g]			Like CTRL-], but use ":tselect" instead of ":tag".
			{not in Vi}

							*v_g]*
{Visual}g]		Same as "g]", but use the highlighted text as the
			identifier.  {not in Vi}

							*:tj* *:tjump*
:tj[ump][!] [ident]	Like ":tselect", but jump to the tag directly when
			there is only one match.  {not in Vi}

							*:stj* *:stjump*
:stj[ump][!] [ident]	Does ":tjump[!] [ident]" and splits the window for the
			selected tag.  {not in Vi}

							*g_CTRL-]*
g CTRL-]		Like CTRL-], but use ":tjump" instead of ":tag".
			{not in Vi}

							*v_g_CTRL-]*
{Visual}g CTRL-]	Same as "g CTRL-]", but use the highlighted text as
			the identifier.  {not in Vi}

							*:tn* *:tnext*
:[count]tn[ext][!]	Jump to [count] next matching tag (default 1).  See
			|tag-!| for [!].  {not in Vi}

							*:tp* *:tprevious*
:[count]tp[revious][!]	Jump to [count] previous matching tag (default 1).
			See |tag-!| for [!].  {not in Vi}

							*:tN* *:tNext*
:[count]tN[ext][!]	Same as ":tprevious".  {not in Vi}

							*:tr* *:trewind*
:[count]tr[ewind][!]	Jump to first matching tag.  If [count] is given, jump
			to [count]th matching tag.  See |tag-!| for [!].  {not
			in Vi}

							*:tf* *:tfirst*
:[count]tf[irst][!]	Same as ":trewind".  {not in Vi}

							*:tl* *:tlast*
:tl[ast][!]		Jump to last matching tag.  See |tag-!| for [!].  {not
			in Vi}

							*:lt* *:ltag*
:lt[ag][!] [ident]	Jump to tag [ident] and add the matching tags to a new
			location list for the current window.  [ident] can be
			a regexp pattern, see |tag-regexp|.  When [ident] is
			not given, the last tag name from the tag stack is
			used.  The search pattern to locate the tag line is
			prefixed with "\V" to escape all the special
			characters (very nomagic). The location list showing
			the matching tags is independent of the tag stack.
			See |tag-!| for [!].
			{not in Vi}

When there is no other message, Vim shows which matching tag has been jumped
to, and the number of matching tags: >
	tag 1 of 3 or more
The " or more" is used to indicate that Vim didn't try all the tags files yet.
When using ":tnext" a few times, or with ":tlast", more matches may be found.

When you didn't see this message because of some other message, or you just
want to know where you are, this command will show it again (and jump to the
same tag as last time): >
	:0tn
<
							*tag-skip-file*
When a matching tag is found for which the file doesn't exist, this match is
skipped and the next matching tag is used.  Vim reports this, to notify you of
missing files.  When the end of the list of matches has been reached, an error
message is given.

							*tag-preview*
The tag match list can also be used in the preview window.  The commands are
the same as above, with a "p" prepended.
{not available when compiled without the |+quickfix| feature}

							*:pts* *:ptselect*
:pts[elect][!] [ident]	Does ":tselect[!] [ident]" and shows the new tag in a
			"Preview" window.  See |:ptag| for more info.
			{not in Vi}

							*:ptj* *:ptjump*
:ptj[ump][!] [ident]	Does ":tjump[!] [ident]" and shows the new tag in a
			"Preview" window.  See |:ptag| for more info.
			{not in Vi}

							*:ptn* *:ptnext*
:[count]ptn[ext][!]	":tnext" in the preview window.  See |:ptag|.
			{not in Vi}

							*:ptp* *:ptprevious*
:[count]ptp[revious][!]	":tprevious" in the preview window.  See |:ptag|.
			{not in Vi}

							*:ptN* *:ptNext*
:[count]ptN[ext][!]	Same as ":ptprevious".  {not in Vi}

							*:ptr* *:ptrewind*
:[count]ptr[ewind][!]	":trewind" in the preview window.  See |:ptag|.
			{not in Vi}

							*:ptf* *:ptfirst*
:[count]ptf[irst][!]	Same as ":ptrewind".  {not in Vi}

							*:ptl* *:ptlast*
:ptl[ast][!]		":tlast" in the preview window.  See |:ptag|.
			{not in Vi}

==============================================================================
4. Tags details						*tag-details*

							*static-tag*
A static tag is a tag that is defined for a specific file.  In a C program
this could be a static function.

In Vi jumping to a tag sets the current search pattern.  This means that
the "n" command after jumping to a tag does not search for the same pattern
that it did before jumping to the tag.  Vim does not do this as we consider it
to be a bug.  You can still find the tag search pattern in the search history.
If you really want the old Vi behavior, set the 't' flag in 'cpoptions'.

							*tag-binary-search*
Vim uses binary searching in the tags file to find the desired tag quickly
(when enabled at compile time |+tag_binary|).  But this only works if the
tags file was sorted on ASCII byte value.  Therefore, if no match was found,
another try is done with a linear search.  If you only want the linear search,
reset the 'tagbsearch' option.  Or better: Sort the tags file!

Note that the binary searching is disabled when not looking for a tag with a
specific name.  This happens when ignoring case and when a regular expression
is used that doesn't start with a fixed string.  Tag searching can be a lot
slower then.  The former can be avoided by case-fold sorting the tags file.
See 'tagbsearch' for details.

							*tag-regexp*
The ":tag" and ":tselect" commands accept a regular expression argument.  See
|pattern| for the special characters that can be used.
When the argument starts with '/', it is used as a pattern.  If the argument
does not start with '/', it is taken literally, as a full tag name.
Examples: >
    :tag main
<	jumps to the tag "main" that has the highest priority. >
    :tag /^get
<	jumps to the tag that starts with "get" and has the highest priority. >
    :tag /norm
<	lists all the tags that contain "norm", including "id_norm".
When the argument both exists literally, and match when used as a regexp, a
literal match has a higher priority.  For example, ":tag /open" matches "open"
before "open_file" and "file_open".
When using a pattern case is ignored.  If you want to match case use "\C" in
the pattern.

							*tag-!*
If the tag is in the current file this will always work.  Otherwise the
performed actions depend on whether the current file was changed, whether a !
is added to the command and on the 'autowrite' option:

  tag in       file	   autowrite			~
current file  changed	!   option	  action	~
-----------------------------------------------------------------------------
    yes		 x	x     x	  goto tag
    no		 no	x     x	  read other file, goto tag
    no		yes    yes    x   abandon current file, read other file, goto
				  tag
    no		yes	no    on  write current file, read other file, goto
				  tag
    no		yes	no   off  fail
-----------------------------------------------------------------------------

- If the tag is in the current file, the command will always work.
- If the tag is in another file and the current file was not changed, the
  other file will be made the current file and read into the buffer.
- If the tag is in another file, the current file was changed and a ! is
  added to the command, the changes to the current file are lost, the other
  file will be made the current file and read into the buffer.
- If the tag is in another file, the current file was changed and the
  'autowrite' option is on, the current file will be written, the other
  file will be made the current file and read into the buffer.
- If the tag is in another file, the current file was changed and the
  'autowrite' option is off, the command will fail.  If you want to save
  the changes, use the ":w" command and then use ":tag" without an argument.
  This works because the tag is put on the stack anyway.  If you want to lose
  the changes you can use the ":tag!" command.

							*tag-security*
Note that Vim forbids some commands, for security reasons.  This works like
using the 'secure' option for exrc/vimrc files in the current directory.  See
|trojan-horse| and |sandbox|.
When the {tagaddress} changes a buffer, you will get a warning message:
	"WARNING: tag command changed a buffer!!!"
In a future version changing the buffer will be impossible.  All this for
security reasons: Somebody might hide a nasty command in the tags file, which
would otherwise go unnoticed.  Example: >
	:$d|/tag-function-name/
{this security prevention is not present in Vi}

In Vi the ":tag" command sets the last search pattern when the tag is searched
for.  In Vim this is not done, the previous search pattern is still remembered,
unless the 't' flag is present in 'cpoptions'.  The search pattern is always
put in the search history, so you can modify it if searching fails.

					*emacs-tags* *emacs_tags* *E430*
Emacs style tag files are only supported if Vim was compiled with the
|+emacs_tags| feature enabled.  Sorry, there is no explanation about Emacs tag
files here, it is only supported for backwards compatibility :-).

Lines in Emacs tags files can be very long.  Vim only deals with lines of up
to about 510 bytes.  To see whether lines are ignored set 'verbose' to 5 or
higher.

							*tags-option*
The 'tags' option is a list of file names.  Each of these files is searched
for the tag.  This can be used to use a different tags file than the default
file "tags".  It can also be used to access a common tags file.

The next file in the list is not used when:
- A matching static tag for the current buffer has been found.
- A matching global tag has been found.
This also depends on whether case is ignored.  Case is ignored when:
- 'tagcase' is "followic" and 'ignorecase' is set
- 'tagcase' is "ignore"
- 'tagcase' is "smart" and the pattern only contains lower case
  characters.
- 'tagcase' is "followscs" and 'smartcase' is set and the pattern only
  contains lower case characters.
If case is not ignored, and the tags file only has a match without matching
case, the next tags file is searched for a match with matching case.  If no
tag with matching case is found, the first match without matching case is
used.  If case is ignored, and a matching global tag with or without matching
case is found, this one is used, no further tags files are searched.

When a tag file name starts with "./", the '.' is replaced with the path of
the current file.  This makes it possible to use a tags file in the directory
where the current file is (no matter what the current directory is).  The idea
of using "./" is that you can define which tag file is searched first: In the
current directory ("tags,./tags") or in the directory of the current file
("./tags,tags").

For example: >
	:set tags=./tags,tags,/home/user/commontags

In this example the tag will first be searched for in the file "tags" in the
directory where the current file is.  Next the "tags" file in the current
directory.  If it is not found there, then the file "/home/user/commontags"
will be searched for the tag.

This can be switched off by including the 'd' flag in 'cpoptions', to make
it Vi compatible.  "./tags" will then be the tags file in the current
directory, instead of the tags file in the directory where the current file
is.

Instead of the comma a space may be used.  Then a backslash is required for
the space to be included in the string option: >
	:set tags=tags\ /home/user/commontags

To include a space in a file name use three backslashes.  To include a comma
in a file name use two backslashes.  For example, use: >
	:set tags=tag\\\ file,/home/user/common\\,tags

for the files "tag file" and "/home/user/common,tags".  The 'tags' option will
have the value "tag\ file,/home/user/common\,tags".

If the 'tagrelative' option is on (which is the default) and using a tag file
in another directory, file names in that tag file are relative to the
directory where the tag file is.

==============================================================================
5. Tags file format				*tags-file-format* *E431*

						*ctags* *jtags*
A tags file can be created with an external command, for example "ctags".  It
will contain a tag for each function.  Some versions of "ctags" will also make
a tag for each "#defined" macro, typedefs, enums, etc.

Some programs that generate tags files:
ctags			As found on most Unix systems.  Only supports C.  Only
			does the basic work.
							*Exuberant_ctags*
exuberant ctags		This a very good one.  It works for C, C++, Java,
			Fortran, Eiffel and others.  It can generate tags for
			many items.  See http://ctags.sourceforge.net.
etags			Connected to Emacs.  Supports many languages.
JTags			For Java, in Java.  It can be found at
			http://www.fleiner.com/jtags/.
ptags.py		For Python, in Python.  Found in your Python source
			directory at Tools/scripts/ptags.py.
ptags			For Perl, in Perl.  It can be found at
			http://www.eleves.ens.fr:8080/home/nthiery/Tags/.
gnatxref		For Ada.  See http://www.gnuada.org/.  gnatxref is
			part of the gnat package.


The lines in the tags file must have one of these three formats:

1.  {tagname}		{TAB} {tagfile} {TAB} {tagaddress}
2.  {tagfile}:{tagname} {TAB} {tagfile} {TAB} {tagaddress}
3.  {tagname}		{TAB} {tagfile} {TAB} {tagaddress} {term} {field} ..

The first is a normal tag, which is completely compatible with Vi.  It is the
only format produced by traditional ctags implementations.  This is often used
for functions that are global, also referenced in other files.

The lines in the tags file can end in <LF> or <CR><LF>.  On the Macintosh <CR>
also works.  The <CR> and <NL> characters can never appear inside a line.

							*tag-old-static*
The second format is for a static tag only.  It is obsolete now, replaced by
the third format.  It is only supported by Elvis 1.x and Vim and a few
versions of ctags.  A static tag is often used for functions that are local,
only referenced in the file {tagfile}.  Note that for the static tag, the two
occurrences of {tagfile} must be exactly the same.  Also see |tags-option|
below, for how static tags are used.

The third format is new.  It includes additional information in optional
fields at the end of each line.  It is backwards compatible with Vi.  It is
only supported by new versions of ctags (such as Exuberant ctags).

{tagname}	The identifier.  Normally the name of a function, but it can
		be any identifier.  It cannot contain a <Tab>.
{TAB}		One <Tab> character.  Note: previous versions allowed any
		white space here.  This has been abandoned to allow spaces in
		{tagfile}.  It can be re-enabled by including the
		|+tag_any_white| feature at compile time. *tag-any-white*
{tagfile}	The file that contains the definition of {tagname}.  It can
		have an absolute or relative path.  It may contain environment
		variables and wildcards (although the use of wildcards is
		doubtful).  It cannot contain a <Tab>.
{tagaddress}	The Ex command that positions the cursor on the tag.  It can
		be any Ex command, although restrictions apply (see
		|tag-security|).  Posix only allows line numbers and search
		commands, which are mostly used.
{term}		;" The two characters semicolon and double quote.  This is
		interpreted by Vi as the start of a comment, which makes the
		following be ignored.  This is for backwards compatibility
		with Vi, it ignores the following fields.
{field} ..	A list of optional fields.  Each field has the form:

			<Tab>{fieldname}:{value}

		The {fieldname} identifies the field, and can only contain
		alphabetical characters [a-zA-Z].
		The {value} is any string, but cannot contain a <Tab>.
		These characters are special:
			"\t" stands for a <Tab>
			"\r" stands for a <CR>
			"\n" stands for a <NL>
			"\\" stands for a single '\' character

		There is one field that doesn't have a ':'.  This is the kind
		of the tag.  It is handled like it was preceded with "kind:".
		See the documentation of ctags for the kinds it produces.

		The only other field currently recognized by Vim is "file:"
		(with an empty value).  It is used for a static tag.

The first lines in the tags file can contain lines that start with
	!_TAG_
These are sorted to the first lines, only rare tags that start with "!" can
sort to before them.  Vim recognizes two items.  The first one is the line
that indicates if the file was sorted.  When this line is found, Vim uses
binary searching for the tags file:
	!_TAG_FILE_SORTED<Tab>1<Tab>{anything} ~

A tag file may be case-fold sorted to avoid a linear search when case is
ignored.  (Case is ignored when 'ignorecase' is set and 'tagcase' is
"followic", or when 'tagcase' is "ignore".)  See 'tagbsearch' for details.
The value '2' should be used then:
	!_TAG_FILE_SORTED<Tab>2<Tab>{anything} ~

The other tag that Vim recognizes, but only when compiled with the
|+multi_byte| feature, is the encoding of the tags file:
	!_TAG_FILE_ENCODING<Tab>utf-8<Tab>{anything} ~
Here "utf-8" is the encoding used for the tags.  Vim will then convert the tag
being searched for from 'encoding' to the encoding of the tags file.  And when
listing tags the reverse happens.  When the conversion fails the unconverted
tag is used.

							*tag-search*
The command can be any Ex command, but often it is a search command.
Examples:
	tag1	file1	/^main(argc, argv)/ ~
	tag2	file2	108 ~

The command is always executed with 'magic' not set.  The only special
characters in a search pattern are "^" (begin-of-line) and "$" (<EOL>).
See |pattern|.  Note that you must put a backslash before each backslash in
the search text.  This is for backwards compatibility with Vi.

							*E434* *E435*
If the command is a normal search command (it starts and ends with "/" or
"?"), some special handling is done:
- Searching starts on line 1 of the file.
  The direction of the search is forward for "/", backward for "?".
  Note that 'wrapscan' does not matter, the whole file is always searched.  (Vi
  does use 'wrapscan', which caused tags sometimes not be found.)  {Vi starts
  searching in line 2 of another file.  It does not find a tag in line 1 of
  another file when 'wrapscan' is not set}
- If the search fails, another try is done ignoring case.  If that fails too,
  a search is done for:
	"^tagname[ \t]*("
  (the tag with '^' prepended and "[ \t]*(" appended).  When using function
  names, this will find the function name when it is in column 0.  This will
  help when the arguments to the function have changed since the tags file was
  made.  If this search also fails another search is done with:
	"^[#a-zA-Z_].*\<tagname[ \t]*("
  This means: A line starting with '#' or an identifier and containing the tag
  followed by white space and a '('.  This will find macro names and function
  names with a type prepended.  {the extra searches are not in Vi}

==============================================================================
6. Include file searches		*include-search* *definition-search*
							*E387* *E388* *E389*

These commands look for a string in the current file and in all encountered
included files (recursively).  This can be used to find the definition of a
variable, function or macro.  If you only want to search in the current
buffer, use the commands listed at |pattern-searches|.

These commands are not available when the |+find_in_path| feature was disabled
at compile time.

When a line is encountered that includes another file, that file is searched
before continuing in the current buffer.  Files included by included files are
also searched.  When an include file could not be found it is silently
ignored.  Use the |:checkpath| command to discover which files could not be
found, possibly your 'path' option is not set up correctly.  Note: the
included file is searched, not a buffer that may be editing that file.  Only
for the current file the lines in the buffer are used.

The string can be any keyword or a defined macro.  For the keyword any match
will be found.  For defined macros only lines that match with the 'define'
option will be found.  The default is "^#\s*define", which is for C programs.
For other languages you probably want to change this.  See 'define' for an
example for C++.  The string cannot contain an end-of-line, only matches
within a line are found.

When a match is found for a defined macro, the displaying of lines continues
with the next line when a line ends in a backslash.

The commands that start with "[" start searching from the start of the current
file.  The commands that start with "]" start at the current cursor position.

The 'include' option is used to define a line that includes another file.  The
default is "\^#\s*include", which is for C programs.  Note: Vim does not
recognize C syntax, if the 'include' option matches a line inside
"#ifdef/#endif" or inside a comment, it is searched anyway.  The 'isfname'
option is used to recognize the file name that comes after the matched
pattern.

The 'path' option is used to find the directory for the include files that
do not have an absolute path.

The 'comments' option is used for the commands that display a single line or
jump to a line.  It defines patterns that may start a comment.  Those lines
are ignored for the search, unless [!] is used.  One exception: When the line
matches the pattern "^# *define" it is not considered to be a comment.

If you want to list matches, and then select one to jump to, you could use a
mapping to do that for you.  Here is an example: >

  :map <F4> [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>
<
							*[i*
[i			Display the first line that contains the keyword
			under the cursor.  The search starts at the beginning
			of the file.  Lines that look like a comment are
			ignored (see 'comments' option).  If a count is given,
			the count'th matching line is displayed, and comment
			lines are not ignored.  {not in Vi}

							*]i*
]i			like "[i", but start at the current cursor position.
			{not in Vi}

							*:is* *:isearch*
:[range]is[earch][!] [count] [/]pattern[/]
			Like "[i"  and "]i", but search in [range] lines
			(default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}

							*[I*
[I			Display all lines that contain the keyword under the
			cursor.  Filenames and line numbers are displayed
			for the found lines.  The search starts at the
			beginning of the file.  {not in Vi}

							*]I*
]I			like "[I", but start at the current cursor position.
			{not in Vi}

							*:il* *:ilist*
:[range]il[ist][!] [/]pattern[/]
			Like "[I" and "]I", but search in [range] lines
			(default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}

							*[_CTRL-I*
[ CTRL-I		Jump to the first line that contains the keyword
			under the cursor.  The search starts at the beginning
			of the file.  Lines that look like a comment are
			ignored (see 'comments' option).  If a count is given,
			the count'th matching line is jumped to, and comment
			lines are not ignored.  {not in Vi}

							*]_CTRL-I*
] CTRL-I		like "[ CTRL-I", but start at the current cursor
			position.  {not in Vi}

							*:ij* *:ijump*
:[range]ij[ump][!] [count] [/]pattern[/]
			Like "[ CTRL-I"  and "] CTRL-I", but search in
			[range] lines (default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}

CTRL-W CTRL-I					*CTRL-W_CTRL-I* *CTRL-W_i*
CTRL-W i		Open a new window, with the cursor on the first line
			that contains the keyword under the cursor.  The
			search starts at the beginning of the file.  Lines
			that look like a comment line are ignored (see
			'comments' option).  If a count is given, the count'th
			matching line is jumped to, and comment lines are not
			ignored.  {not in Vi}

							*:isp* *:isplit*
:[range]isp[lit][!] [count] [/]pattern[/]
			Like "CTRL-W i"  and "CTRL-W i", but search in
			[range] lines (default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}

							*[d*
[d			Display the first macro definition that contains the
			macro under the cursor.  The search starts from the
			beginning of the file.  If a count is given, the
			count'th matching line is displayed.  {not in Vi}

							*]d*
]d			like "[d", but start at the current cursor position.
			{not in Vi}

							*:ds* *:dsearch*
:[range]ds[earch][!] [count] [/]string[/]
			Like "[d"  and "]d", but search in [range] lines
			(default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}

							*[D*
[D			Display all macro definitions that contain the macro
			under the cursor.  Filenames and line numbers are
			displayed for the found lines.  The search starts
			from the beginning of the file.  {not in Vi}

							*]D*
]D			like "[D", but start at the current cursor position.
			{not in Vi}

							*:dli* *:dlist*
:[range]dli[st][!] [/]string[/]
			Like `[D`  and `]D`, but search in [range] lines
			(default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}
			Note that `:dl` works like `:delete` with the "l"
			flag, not `:dlist`.

							*[_CTRL-D*
[ CTRL-D		Jump to the first macro definition that contains the
			keyword under the cursor.  The search starts from
			the beginning of the file.  If a count is given, the
			count'th matching line is jumped to.  {not in Vi}

							*]_CTRL-D*
] CTRL-D		like "[ CTRL-D", but start at the current cursor
			position.  {not in Vi}

							*:dj* *:djump*
:[range]dj[ump][!] [count] [/]string[/]
			Like "[ CTRL-D"  and "] CTRL-D", but search  in
			[range] lines (default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}

CTRL-W CTRL-D					*CTRL-W_CTRL-D* *CTRL-W_d*
CTRL-W d		Open a new window, with the cursor on the first
			macro definition line that contains the keyword
			under the cursor.  The search starts from the
			beginning of the file.  If a count is given, the
			count'th matching line is jumped to.  {not in Vi}

							*:dsp* *:dsplit*
:[range]dsp[lit][!] [count] [/]string[/]
			Like "CTRL-W d", but search in [range] lines
			(default: whole file).
			See |:search-args| for [/] and [!].  {not in Vi}

							*:che* *:checkpath*
:che[ckpath]		List all the included files that could not be found.
			{not in Vi}

:che[ckpath]!		List all the included files.  {not in Vi}

								*:search-args*
Common arguments for the commands above:
[!]	When included, find matches in lines that are recognized as comments.
	When excluded, a match is ignored when the line is recognized as a
	comment (according to 'comments'), or the match is in a C comment
	(after "//" or inside /* */).  Note that a match may be missed if a
	line is recognized as a comment, but the comment ends halfway the line.
	And if the line is a comment, but it is not recognized (according to
	'comments') a match may be found in it anyway.  Example: >
		/* comment
		   foobar */
<	A match for "foobar" is found, because this line is not recognized as
	a comment (even though syntax highlighting does recognize it).
	Note: Since a macro definition mostly doesn't look like a comment, the
	[!] makes no difference for ":dlist", ":dsearch" and ":djump".
[/]	A pattern can be surrounded by '/'.  Without '/' only whole words are
	matched, using the pattern "\<pattern\>".  Only after the second '/' a
	next command can be appended with '|'.  Example: >
	:isearch /string/ | echo "the last one"
<	For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
	is used as a literal string, not as a search pattern.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�[388vim80/doc/helphelp.txtnu�[���*helphelp.txt*	For Vim version 8.0.  Last change: 2017 Mar 19


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Help on help files					*helphelp*

1. Help commands		|online-help|
2. Translated help files	|help-translated|
3. Writing help files		|help-writing|

==============================================================================
1. Help commands					*online-help*

			*help* *<Help>* *:h* *:help* *<F1>* *i_<F1>* *i_<Help>*
<Help>		or
:h[elp]			Open a window and display the help file in read-only
			mode.  If there is a help window open already, use
			that one.  Otherwise, if the current window uses the
			full width of the screen or is at least 80 characters
			wide, the help window will appear just above the
			current window.  Otherwise the new window is put at
			the very top.
			The 'helplang' option is used to select a language, if
			the main help file is available in several languages.
			{not in Vi}

						*{subject}* *E149* *E661*
:h[elp] {subject}	Like ":help", additionally jump to the tag {subject}.
			For example:  >
				:help options

<			{subject} can include wildcards such as "*", "?" and
			"[a-z]":
			   :help z?	jump to help for any "z" command
			   :help z.	jump to the help for "z."
			But when a tag exists it is taken literally:
			   :help :?	jump to help for ":?"

			If there is no full match for the pattern, or there
			are several matches, the "best" match will be used.
			A sophisticated algorithm is used to decide which
			match is better than another one.  These items are
			considered in the computation:
			- A match with same case is much better than a match
			  with different case.
			- A match that starts after a non-alphanumeric
			  character is better than a match in the middle of a
			  word.
			- A match at or near the beginning of the tag is
			  better than a match further on.
			- The more alphanumeric characters match, the better.
			- The shorter the length of the match, the better.

			The 'helplang' option is used to select a language, if
			the {subject} is available in several languages.
			To find a tag in a specific language, append "@ab",
			where "ab" is the two-letter language code.  See
			|help-translated|.

			Note that the longer the {subject} you give, the less
			matches will be found.  You can get an idea how this
			all works by using commandline completion (type CTRL-D
			after ":help subject" |c_CTRL-D|).
			If there are several matches, you can have them listed
			by hitting CTRL-D.  Example: >
				:help cont<Ctrl-D>

<			Instead of typing ":help CTRL-V" to search for help
			for CTRL-V you can type: >
				:help ^V
<			This also works together with other characters, for
			example to find help for CTRL-V in Insert mode: >
				:help i^V
<
			It is also possible to first do ":help" and then
			use ":tag {pattern}" in the help window.  The
			":tnext" command can then be used to jump to other
			matches, "tselect" to list matches and choose one. >
				:help index
				:tselect /.*mode

<			When there is no argument you will see matches for
			"help", to avoid listing all possible matches (that
			would be very slow).
			The number of matches displayed is limited to 300.

			The `:help` command can be followed by '|' and another
			command, but you don't need to escape the '|' inside a
			help command.  So these both work: >
				:help |
				:help k| only
<			Note that a space before the '|' is seen as part of
			the ":help" argument.
			You can also use <LF> or <CR> to separate the help
			command from a following command.  You need to type
			CTRL-V first to insert the <LF> or <CR>.  Example: >
				:help so<C-V><CR>only
<			{not in Vi}

:h[elp]! [subject]	Like ":help", but in non-English help files prefer to
			find a tag in a file with the same language as the
			current file.  See |help-translated|.

						 	*:helpc* *:helpclose*
:helpc[lose]            Close one help window, if there is one.

							*:helpg* *:helpgrep*
:helpg[rep] {pattern}[@xx]
			Search all help text files and make a list of lines
			in which {pattern} matches.  Jumps to the first match.
			The optional [@xx] specifies that only matches in the
			"xx" language are to be found.
			You can navigate through the matches with the
			|quickfix| commands, e.g., |:cnext| to jump to the
			next one.  Or use |:cwindow| to get the list of
			matches in the quickfix window.
			{pattern} is used as a Vim regexp |pattern|.
			'ignorecase' is not used, add "\c" to ignore case.
			Example for case sensitive search: >
				:helpgrep Uganda
<			Example for case ignoring search: >
				:helpgrep uganda\c
<			Example for searching in French help: >
				:helpgrep backspace@fr
<			The pattern does not support line breaks, it must
			match within one line.  You can use |:grep| instead,
			but then you need to get the list of help files in a
			complicated way.
			Cannot be followed by another command, everything is
			used as part of the pattern.  But you can use
			|:execute| when needed.
			Compressed help files will not be searched (Fedora
			compresses the help files).
			{not in Vi}

							*:lh* *:lhelpgrep*
:lh[elpgrep] {pattern}[@xx]
			Same as ":helpgrep", except the location list is used
			instead of the quickfix list.  If the help window is
			already opened, then the location list for that window
			is used.  Otherwise, a new help window is opened and
			the location list for that window is set.  The
			location list for the current window is not changed
			then.

							*:exu* *:exusage*
:exu[sage]		Show help on Ex commands.  Added to simulate the Nvi
			command. {not in Vi}

							*:viu* *:viusage*
:viu[sage]		Show help on Normal mode commands.  Added to simulate
			the Nvi command. {not in Vi}

When no argument is given to |:help| the file given with the 'helpfile' option
will be opened.  Otherwise the specified tag is searched for in all "doc/tags"
files in the directories specified in the 'runtimepath' option.

The initial height of the help window can be set with the 'helpheight' option
(default 20).

Jump to specific subjects by using tags.  This can be done in two ways:
- Use the "CTRL-]" command while standing on the name of a command or option.
  This only works when the tag is a keyword.  "<C-Leftmouse>" and
  "g<LeftMouse>" work just like "CTRL-]".
- use the ":ta {subject}" command.  This also works with non-keyword
  characters.

Use CTRL-T or CTRL-O to jump back.
Use ":q" to close the help window.

If there are several matches for an item you are looking for, this is how you
can jump to each one of them:
1. Open a help window
2. Use the ":tag" command with a slash prepended to the tag.  E.g.: >
	:tag /min
3. Use ":tnext" to jump to the next matching tag.

It is possible to add help files for plugins and other items.  You don't need
to change the distributed help files for that.  See |add-local-help|.

To write a local help file, see |write-local-help|.

Note that the title lines from the local help files are automagically added to
the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|.
This is done when viewing the file in Vim, the file itself is not changed.  It
is done by going through all help files and obtaining the first line of each
file.  The files in $VIMRUNTIME/doc are skipped.

							*help-xterm-window*
If you want to have the help in another xterm window, you could use this
command: >
	:!xterm -e vim +help &
<

			*:helpfind* *:helpf*
:helpf[ind]		Like |:help|, but use a dialog to enter the argument.
			Only for backwards compatibility.  It now executes the
			ToolBar.FindHelp menu entry instead of using a builtin
			dialog.  {only when compiled with |+GUI_GTK|}
			{not in Vi}

					*:helpt* *:helptags*
				*E154* *E150* *E151* *E152* *E153* *E670*
:helpt[ags] [++t] {dir}
			Generate the help tags file(s) for directory {dir}.
			When {dir} is ALL then all "doc" directories in
			'runtimepath' will be used.

			All "*.txt" and "*.??x" files in the directory and
			sub-directories are scanned for a help tag definition
			in between stars.  The "*.??x" files are for
			translated docs, they generate the "tags-??" file, see
			|help-translated|.  The generated tags files are
			sorted.
			When there are duplicates an error message is given.
			An existing tags file is silently overwritten.

			The optional "++t" argument forces adding the
			"help-tags" tag.  This is also done when the {dir} is
			equal to $VIMRUNTIME/doc.

			To rebuild the help tags in the runtime directory
			(requires write permission there): >
				:helptags $VIMRUNTIME/doc
<			{not in Vi}


==============================================================================
2. Translated help files				*help-translated*

It is possible to add translated help files, next to the original English help
files.  Vim will search for all help in "doc" directories in 'runtimepath'.
This is only available when compiled with the |+multi_lang| feature.

At this moment translations are available for:
	Chinese  - multiple authors
	French   - translated by David Blanchet
	Italian  - translated by Antonio Colombo
	Japanese - multiple authors
	Polish   - translated by Mikolaj Machowski
	Russian  - translated by Vassily Ragosin
See the Vim website to find them: http://www.vim.org/translations.php

A set of translated help files consists of these files:

	help.abx
	howto.abx
	...
	tags-ab

"ab" is the two-letter language code.  Thus for Italian the names are:

	help.itx
	howto.itx
	...
	tags-it

The 'helplang' option can be set to the preferred language(s).  The default is
set according to the environment.  Vim will first try to find a matching tag
in the preferred language(s).  English is used when it cannot be found.

To find a tag in a specific language, append "@ab" to a tag, where "ab" is the
two-letter language code.  Example: >
	:he user-manual@it
	:he user-manual@en
The first one finds the Italian user manual, even when 'helplang' is empty.
The second one finds the English user manual, even when 'helplang' is set to
"it".

When using command-line completion for the ":help" command, the "@en"
extension is only shown when a tag exists for multiple languages.  When the
tag only exists for English "@en" is omitted.  When the first candidate has an
"@ab" extension and it matches the first language in 'helplang' "@ab" is also
omitted.

When using |CTRL-]| or ":help!" in a non-English help file Vim will try to
find the tag in the same language.  If not found then 'helplang' will be used
to select a language.

Help files must use latin1 or utf-8 encoding.  Vim assumes the encoding is
utf-8 when finding non-ASCII characters in the first line.  Thus you must
translate the header with "For Vim version".

The same encoding must be used for the help files of one language in one
directory.  You can use a different encoding for different languages and use
a different encoding for help files of the same language but in a different
directory.

Hints for translators:
- Do not translate the tags.  This makes it possible to use 'helplang' to
  specify the preferred language.  You may add new tags in your language.
- When you do not translate a part of a file, add tags to the English version,
  using the "tag@en" notation.
- Make a package with all the files and the tags file available for download.
  Users can drop it in one of the "doc" directories and start use it.
  Report this to Bram, so that he can add a link on www.vim.org.
- Use the |:helptags| command to generate the tags files.  It will find all
  languages in the specified directory.

==============================================================================
3. Writing help files					*help-writing*

For ease of use, a Vim help file for a plugin should follow the format of the
standard Vim help files.  If you are writing a new help file it's best to copy
one of the existing files and use it as a template.

The first line in a help file should have the following format:

*helpfile_name.txt*	For Vim version 7.3	Last change: 2010 June 4

The first field is a link to the help file name.  The second field describes
the applicable Vim version.  The last field specifies the last modification
date of the file.  Each field is separated by a tab.

At the bottom of the help file, place a Vim modeline to set the 'textwidth'
and 'tabstop' options and the 'filetype' to "help".  Never set a global option
in such a modeline, that can have consequences undesired by whoever reads that
help.


TAGS

To define a help tag, place the name between asterisks (*tag-name*).  The
tag-name should be different from all the Vim help tag names and ideally
should begin with the name of the Vim plugin.  The tag name is usually right
aligned on a line.

When referring to an existing help tag and to create a hot-link, place the
name between two bars (|) eg. |help-writing|.

When referring to a Vim command and to create a hot-link, place the
name between two backticks, eg. inside `:filetype`.  You will see this is
highlighted as a command, like a code block (see below).

When referring to a Vim option in the help file, place the option name between
two single quotes, eg. 'statusline'


HIGHLIGHTING

To define a column heading, use a tilde character at the end of the line.
This will highlight the column heading in a different color.  E.g.

Column heading~

To separate sections in a help file, place a series of '=' characters in a
line starting from the first column.  The section separator line is highlighted
differently.

To quote a block of ex-commands verbatim, place a greater than (>) character
at the end of the line before the block and a less than (<) character as the
first non-blank on a line following the block.  Any line starting in column 1
also implicitly stops the block of ex-commands before it.  E.g. >
    function Example_Func()
	echo "Example"
    endfunction
<

The following are highlighted differently in a Vim help file:
  - a special key name expressed either in <> notation as in <PageDown>, or
    as a Ctrl character as in CTRL-X
  - anything between {braces}, e.g. {lhs} and {rhs}

The word "Note", "Notes" and similar automagically receive distinctive
highlighting.  So do these:
	*Todo	something to do
	*Error	something wrong

You can find the details in $VIMRUNTIME/syntax/help.vim

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�ЯL�L�vim80/doc/todo.txtnu�[���*todo.txt*      For Vim version 8.0.  Last change: 2018 Apr 20


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


			      TODO list for Vim		*todo*

This is a veeeery long list of known bugs, current work and desired
improvements.  To make it a little bit accessible, the older items are grouped
by subject.  In the first column of the line a classification is used to be
able to look for "the next thing to do":

Priority classification:
9   next point release
8   next release
7   as soon as possible
6   soon
5   should be included
4   nice to have
3   consider including
2   maybe not
1   probably not
-   unclassified

						    *votes-for-changes*
See |develop.txt| for development plans.  You can vote for which items should
be worked on, but only if you sponsor Vim development.  See |sponsor|.

Issues can also be entered online: https://github.com/vim/vim/issues
Only use this for bug reports, not for questions!  Those belong on the
maillist.  Updates will be forwarded to the |vim_dev| maillist.  Issues
entered there will not be repeated below, unless there is extra information.

							*known-bugs*
-------------------- Known bugs and current work -----------------------

Terminal emulator window:
- Still some stuff to implement and bugs to fix, see src/terminal.c

Problem with sudo. #2758

Errors found with random data:
    heap-buffer-overflow in alist_add (#2472)

Patch to avoid bad highlighting caused by #if. (ichizok, #2731)

Patch to refactor qf_set_properties(). (Yegappan, Apr 17, #2812)

Patch for static analysis warnings. (Christian Brabandt, 2018 Apr 1, #2770)
Ther are more here: https://lgtm.com/projects/g/vim/vim/alerts/?mode=list

Patch to refactor ex_helpgrep. (Yegappan, #2766, 2018 Mar 30)
Also in email, take the one with a test.

Allow for C99 features, decide which ones are OK:
- "inline"
- "long long"
- flexible array members (change code to avoid FORTIFY_SOURCE problems)

Looks like an error for inserting register makes ":file other" not work.
(Tom M, 2018 Mar 28)  Reset did_emsg after inserting a register.
Or at the top of the loop? (Apr 4)

Patch to fix mouse pointer after :tselect. (Hirohito Higashi, #2709)
How to reproduce the problem?  Remarks by Hirohito, Apr 8.

Patch to avoid job killed when I/O is disconnected. (ichizok, #2734)

When opening foo/x.txt and bar/x.txt get swap file warning.  Should check the
file name. (Juergen Weigert)

Compiler warnings (geeknik, 2017 Oct 26):
- signed integer overflow in do_sub() (#2249)
- signed integer overflow in get_address() (#2248)
- signed integer overflow in getdecchrs() (#2254)
- undefined left shift in get_string_tv() (#2250)

Tests failing for "make testgui" with GTK:
- Test_setbufvar_options()
- Test_exit_callback_interval()

Mouse pointer sticks to stop shape.  Only on Windows GUI?  #2709

Patch to make log_tr() use variable arguments. (Ichizok, 2018 Mar 20, #2730)

balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
20, #2481)
Also see #2352, want better control over balloon, perhaps set the position.

Try out background make plugin: 
  https://github.com/AndrewVos/vim-make-background
or asyncmake: 
  https://github.com/yegappan/asyncmake

Add a ModeChanged autocommand that has an argument indicating the old and new
mode.  Also used for switching Terminal mode.

Cursor in status line after search. (#2530)

Add an option with file patterns, to be used when unloading a buffer: If there
is a match, remove entries for the buffer from marks, jumplist, etc.  To be
used for git temp files.

Patch to fix that an empty buffer remains when using :argedit. (Christian,
#2713)  Updated patch.

Patch to fix interaction between 'virtualedit' and i_CTRL-G_j. (Christian
Brabandt, #2743)

Cursor in wrong position when line wraps. (#2540)

Add an option similar to 'lazyredraw' to skip redrawing while executing a
script or function.

Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)

Patch to add more flags to :ls. (Marcin Szamotulski, #2751)

Does setting 'cursorline' cause syntax highlighting to slow down?  Perhaps is
mess up the cache?  (Mike Lee Williams, 2018 Jan 27, #2539)
Also: 'foldtext' is evaluated too often. (Daniel Hahler, #2773)

When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994)

Column number is wrong when using 'linebreak' and 'wrap'. (Keith Smiley, 2018
Jan 15, #2555)

":bufdo e" disabled syntax HL in windows other than the current. (BPJ)

Check argument of systemlist(). (Pavlov)

Patch to add reg_executing() and reg_recording(). (Hirohito Higashi, #2745)

No maintainer for Vietnamese translations.
No maintainer for Simplified Chinese translations.

When 'inchsearch' and 'hlsearch' are set /\v highlights everything.
Also see #2337

Python indenting: alternative way to indent arguments:
http://orchistro.tistory.com/236
Should be supported with a flag.

Starting job with cwd option, when the directory does not exist, gives a
confusing error message. (Wang Shidong, 2018 Jan 2, #2519)

Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
8, #1757)  Now part of #2322.  Or #2327?  #1757 was re-opened, include that
first.

Add the debug command line history to viminfo.

Avoid that "sign unplace id" does a redraw right away, esp. when there is a
sequence of these commands. (Andy Stewart, 2018 Mar 16)

ch_sendraw() with long string does not try to read inbetween, which may cause
a deadlock if the reading side is waiting for the write to finish. (Nate
Bosch, 2018 Jan 13, #2548)

Add Makefiles to the runtime/spell directory tree, since nobody uses Aap.
Will have to explain the manual steps (downloading the .aff and .dic files,
applying the diff, etc.

User dictionary ~/.vim/spell/lang.utf-8.add not used for spell checking until a
word is re-added to it. (Matej Cepl, 2018 Feb 6)

Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)

With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
(Marcin Szewczyk, 2017 Apr 26)

Using 'wildignore' also applies to literally entered file name.  Also with
:drop (remote commands).

Patch to use the xdiff library instead of external diff. (Christian Brabandt,
2018 Mar 20, #2732)

Implement option_save() and option_restore():
option_restore({list})					*option_restore()*
		Restore options previously saved by option_save().
		When buffer-local options have been saved, this function must
		be called when the same buffer is the current buffer.
		When window-local options have been saved, this function must
		be called when the same window is the current window.
		When in the wrong buffer and/or window an error is given and
		the local options won't be restored.

option_save({list})					*option_save()*
		Saves the options named in {list}.  The returned value can be
		passed to option_restore().  Example: >
			let s:saved_options = option_save([
			    \ 'ignorecase',
			    \ 'iskeyword',
			    \ ])
			 au <buffer> BufLeave *
			    \ call option_restore(s:saved_options)
<		The advantage over using `:let` is that global and local
		values are handled and the script ID is restored, so that
		`:verbose set` will show where the option was originally set,
		not where it was restored.

"gvim --remote" from a directory with non-word characters changes the current
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
Also see #1689.

ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
Lemonboy can reproduce (2017 Jun 5)

crash when removing an element while inside map(). (Nikolai Pavlov, 2018 Feb
17, #2652)

When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be
highlighted. (van-de-bugger, 2018 Jan 23, #2576)

Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
#2546)  Fixes #1057.  Missing a test.

Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4)

No profile information for function that executes ":quit". (Daniel Hahler,
2017 Dec 26, #2501)

Get a "No Name" buffer when 'hidden' is set and opening a new window from the
quickfix list. (bfrg, 2018 Jan 22, #2574)

CTRL-X on zero gets stuck on 0xfffffffffffffffe. (Hengyang Zhao, #2746)

A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)

Patch to fix E806. (Dominique, 2017 Nov 22, #2368)
Kazunobu Kuriyama: caused by XtSetLanguageProc().

Patch to fix GUI find/replace dialog. (kiloliter, 2017 Dec 11, report in
#2418, fix in #2435)

Invalid range error when using BufWinLeave for closing terminal.
(Gabriel Barta, 2017 Nov 15, #2339)

Using an external diff is inefficient.  Not all systems have a good diff
program available (esp. MS-Windows).  Would be nice to have in internal diff
implementation.  Can then also use this for displaying changes within a line.
Olaf Dabrunz is working on this. (10 Jan 2016)
9   Instead invoking an external diff program, use builtin code.  One can be
    found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
    It's complicated and badly documented.
Alternative: use the xdiff library.  Patch from Christian Brabandt, 2018 Mar
2018, #2732)

ml_get errors with buggy script. (Dominique, 2017 Apr 30)

Error in emsg with buggy script. (Dominique, 2017 Apr 30)

Using CTRL-G j in insert mode in combination with 'virtualedit' doesn't work
as expected. (Rich, 2018 March 23, #2743)

Patch to fix encoding in print document name (Yasuhiro Matsumoto, 2017 Dec 20,
#2478)

Patch to copy buffer-local options before buffer leaves the window. (Bjorn
Linse, 2017 Nov 14, #2336)

Join truncates xml comment. (Dmitrii Tcyganok, 2017 Dec 24, #2494)
Requires 'formatoptions' to include "j". (Gary Johnson, 2017 Dec 24)

Patch to support hunspell. (Matej Cepl, Jan 2018, #2500) Based on older patch
in #846)
Doesn't work on Windows yet.  Not ready to included, hard coded paths.

Win32 GUI: when running a fast timer, the cursor no longer blinks.
Was reported: cursor blinks in terminal on widows with a timer. (xtal8, #2142)

When a timer is running and typing CTRL-R on the command line, it is not
redrawn properly. (xtal8, 2017 Oct 23, #2241)

In an optional package the "after" directory is not scanned?
(Renato Fabbri, 2018 Feb 22)

Universal solution to detect if t_RS is working, using cursor position.
Koichi Iwamoto, #2126

Patch to fix cmdline abbreviation after '<,'>. (Christian Brabandt, 2017 Nov
13, on issue #2320)

Patch for Neovim concerning restoring when closing help window. (glacambre
neovim #7431)

Default install on MS-Windows should source defaults.vim.
Ask whether to use Windows or Vim key behavior?

Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017
Nov 21)

When using command line window, CmdlineLeave is triggered without
CmdlineEnter.  (xtal8, 2017 Oct 30, #2263)
Add some way to get the nested state.  Although CmdwinEnter is obviously
always nested.

matchit hasn't been maintained for a long time.  #955.

Patch to add variable name after "scope add". (Eddie Lebow, 2018 Feb 7, #2620)
Maybe not needed?

Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)

MS-Windows: buffer completion doesn't work when using backslash (or slash)
for a path separator. (xtal8, #2201)

Patch to adjust to DPI setting for GTK. (Roel van de Kraats, 2017 Nov 20,
#2357)

Test runtime files.
Start with filetype detection: testdir/test_filetype.vim

Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)

Duplication of completion suggestions for ":!hom".  Issue #539.
Patch by Christian, 2016 Jan 29
Another patch in #2733.
>
Add options_default() / options_restore() to set several options to Vim
defaults for a plugin. Comments from Zyx, 2017 May 10.
Perhaps use a vimcontext / endvimcontext command block.

After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
13, #2084).  Set old position after the command.

Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Still happens (2017 Jul 9)

When bracketed paste is used, pasting at the ":append" prompt does not get the
line breaks. (Ken Takata, 2017 Aug 22)

The ":move" command does not honor closed folds. (Ryan Lue, #2351)

Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)

Memory leaks in test_channel? (or is it because of fork())
Using uninitialized value in test_crypt.
Memory leaks in test_escaped_glob

Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)

Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)

Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
It can replace the BeOS code, which is likely not used anymore.
Now on github: #1856.  Updated Oct 2017
Got permission to include this under the Vim license.

Refactored HTML indent file. (Michael Lee, #1821)

Test_writefile_fails_conversion failure on Solaris because if different iconv
behavior.  Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)

'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221)

All functions are global, which makes functions like get() and len() awkward.
For the future use the ~get() and ~len() syntax, e.g.:
    mylist~get(idx)
    mydict~get(idx)
    mystring~len()
Alternatives for ~:
    ^  list^get()    could also be used
    .  list.get()    already means concatenate
    $  list$get()    harder to read
    @  list@get()    harder to read
    ->  list->get()  two characters, used for lambda

The ++ options for the :edit command are also useful on the Vim command line.

When recovering a file, put the swap file name in b:recovered_swapfile.  Then
a command can delete it.

Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089)  Patch with possible solution by Björn Linse.

The change list index is local to a buffer, but it doesn't make sense using it
for another buffer.  (lacygoll) Copy w_changelistidx to wininfo_S and back.

X11: Putting more than about 262040 characters of text on the clipboard and
pasting it in another Vim doesn't work.  (Dominique Pelle, 2008 Aug 21-23)
clip_x11_request_selection_cb() is called with zero value and length.
Also: Get an error message from free() in the process that owns the selection.
Seems to happen when the selection is requested the second time, but before
clip_x11_convert_selection_cb() is invoked, thus in X library code.
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)

Include a few color schemes, based on popularity:
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://vimawesome.com/?q=tag:color-scheme
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4) 
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox -  Christian Brabandt (2017 Aug 3) (simplified version from
      Lifepillar, 2018 Jan 22, #2573)
- janah - Marco Hinz (2017 Aug 4)
- apprentice - Romain Lafourcade (2017 Aug 6)  remarks about help file #1964
Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?, it does not support termguicolors.
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)

Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)

Creating a partial with an autoload function is confused about the "self"
attribute of the function.  For an unknown function assume "self" and make
that optiona? (Bjorn Linse, 2017 Aug 5)

Cindent: returning a structure has more indent for the second item.
(Sam Pagenkopf, 2017 Sep 14, #2090)

Completion mixes results from the current buffer with tags and other files.
Happens when typing CTRL-N while still search for results.  E.g., type "b_" in
terminal.c and then CTRL-N twice.
Should do current file first and not split it up when more results are found.
(Also #1890)

Patch from Christian Brabandt to preserve upper case marks when wiping out a
buffer. (2013 Dec 9)
Also fixes #2166?

Patch to add argument to :cquit. (Thinca, 2014 Oct 12)

Python: After "import vim" error messages only show the first line of the
stack trace. (Yggdroot, 2017 Jul 28, #1887)

Profile of a dict function is lost when the dict is deleted.  Would it be
possible to collect this?  (Daniel Hahler, #2350)

Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
#2322)  Now in #2327?

When checking if a bufref is valid, also check the buffer number, to catch the
case of :bwipe followed by :new.

Patch to skip writing a temp file for diffing if the buffer is equal to the
existing file. (Akria Sheng, 2017 Jul 22)
Could also skip writing lines that are the same.

Patch with Files for Latvian language. (Vitolins, 2017 May 3, #1675)

MS-Windows: Opening same file in a second gvim hangs. (Sven Bruggemann, 2017
Jul 4)

Setting 'clipboard' to "unnamed" makes a global command very slow (Daniel
Drucker, 2017 May 8).
This was supposed to be fixed, did it break again somehow?
Christian cannot reproduce it.

Using composing char in mapping does not work properly. maparg() shows the
wrong thing. (Nikolai Pavlov, 2017 Jul 8, #1827)
Or is this not an actual problem?

Better TeX indent file. (Christian Brabandt, 2017 May 3)

Openhab syntax file (mueller, #1678)

Patch to use a separate code for BS on Windows. (Linwei, #1823)

Use gvimext.dll from the nightly build? (Issue #249)

'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
#1736)

Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
8, #1690)

Running test_gui and test_gui_init with Motif sometimes kills the window
manager.  Problem with Motif?

Bogus characters inserted when triggering indent while changing text.
(Vitor Antunes, 2016 Nov 22, #1269)

Using "wviminfo /tmp/viminfo" does not store file marks that Vim knows about,
it only works when merging with an existing file.  (Shougo, 2017 Jun 19, #1781)

Segmentation fault with complete(). (Lifepillar, 2017 Apr 29, #1668)
Check for "pat" to be NULL in search_for_exact_line()?
How did it get NULL?  Comment by Christian, Apr 30.

Is it possible to keep the complete menu open when calling complete()?
(Prabir Shrestha, 2017 May 19, #1713)

Memory leak in test97?  The string is actually freed.  Weird.

Patch to add configure flags to skip rtl, farsi and arabic support.
(Diego Carrión, #1867)

assert_fails() can only check for the first error.  Make it possible to have
it catch multiple errors and check all of them.

New value "uselast" for 'switchbuf'. (Lemonboy, 2017 Apr 23, #1652)

Add a toolbar in the terminal.  Can be global, above all windows, or specific
for one window.

Make maparg() also return the raw rhs, so that it doesn't depend on 'cpo'.
(Brett Stahlman, 2017 May 23)
Even better: add a way to disable a mapping temporarily and re-enable it
later.  This is for a sub-mode that is active for a short while (one buffer).
Still need maplist() to find the mappings.  What can we use to identify a
mapping?  Something unique would be better than the LHS.
Perhaps simpler: actually delete the mappings.  Use maplist() to list matching
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
maprestore() to restore (using the output of maplist()).

Add an argument to :mkvimrc (or add another command) to skip mappings from
plugins (source is a Vim script).  No need to put these in a .vimrc, they will
be defined when the plugin is loaded.

Use tb_set(winid, [{'text': 'stop', 'cb': callback, 'hi': 'Green'}])
    tb_highlight(winid, 'ToolBar')
    tb_get(winid)

json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
What if there is an invalid character?

Json string with trailing \u should be an error. (Lcd)

import can't be used in define option when include matches too.
(Romain Lafourcade, 2017 Jun 18, #1519)

When session file has name in argument list but the buffer was deleted, the
buffer is not deleted when using the session file. (#1393)
Should add the buffer in hidden state.

When an item in the quickfix list has a file name that does not exist, behave
like the item was not a match for :cnext.

Wrong diff highlighting with three files. (2016 Oct 20, #1186)
Also get E749 on exit.
Another example in #1309

When deleting a mark or register, leave a tombstone, so that it's also deleted
when writing viminfo (and the delete was the most recent action). #1339

Suggestion to improve pt-br spell checking. (Marcelo D Montu, 2016 Dec 15,
#1330)

Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)

Completion for :!cmd shows each match twice. #1435

GTK: When adding a timer from 'balloonexpr' it won't fire, because
g_main_context_iteration() doesn't return.  Need to trigger an event when the
timer expires.

Screen update bug related to matchparen.  (Chris Heath, 2017 Mar 4, #1532)

Rule to use "^" for statusline does not work if a space is defined with
highlighting for both stl and stlnc.  Patch by Ken Hamada (itchyny, 2016 Dec 11)

8   "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
    Patch by Christian Wellenbrock, 2013 Jul 5.

Using CTRL-G_U in InsertCharPre causes trouble for redo. (Israel Chauca
Fuentes, 2017 Feb 12, #1470)

Add a "keytrans()" function, which turns the internal byte representation of a
key into a form that can be used for :map.  E.g.
    let xx = "\<C-Home>"
    echo keytrans(xx)
    <C-Home>

Check for errors E704 and E705 only does VAR_FUNC, should also do VAR_PARTIAL.
(Nikolai Pavlov, 2017 Mar 13, #1557)
Make a function to check for function-like type?

Screen updated delayed when using CTRL-O u in Insert mode.
(Barlik, #1191)  Perhaps because status message?

Implement optional arguments for functions.
    func Foo(start, count = 1 all = 1)
    call Foo(12)
    call Foo(12, all = 0)
    call Foo(12, 15, 0)

Change the Farsi code to work with UTF-8.  Possibly combined with the Arabic
support, or similar.
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)

Add a command to take a range of lines, filter them and put the output
somewhere else.  :{range}copy {dest} !cmd

Patch to fix that empty first tab is not in session.
(Hirohito Higashi, 2016 Nov 25, #1282)

Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
Alternative from Christian Brabandt. (2010 Sep 19)
New one from Yasuhiro Matsumoto, #1277.

Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
Update Aug 2017: #1954

The TermResponse event is not triggered when a plugin has set 'eventignore' to
"all".  Netrw does this. (Gary Johnson, 2017 Jan 24)
Postpone the event until 'eventignore' is reset.

Expanding /**/ is slow.  Idea by Luc Hermitte, 2017 Apr 14.

Once .exe with updated installer is available: Add remark to download page
about /S and /D options (Ken Takata, 2016 Apr 13)
Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases

Problem passing non-UTF-8 strings to Python 3. (Björn Linse, 2016 Sep 11,
#1053)  With patch, does it work?

Using --remote to open a file in which a # appears does not work on
MS-Windows.  Perhaps in \#  the \ is seen as a path separator. (Axel Bender,
2017 Feb 9)  Can we expand wildcards first and send the path literally to the
receiving Vim?  Or make an exception for #, it's not useful remotely.

":sbr" docs state it respects 'switchbuf', but "vsplit" does not cause a
vertical split. (Haldean Brown, 2017 Mar 1)

Use ADDR_OTHER instead of ADDR_LINES for many more commands.
Add tests for using number larger than number of lines in buffer.

Might be useful to have isreadonly(), like we have islocked().
Avoids exceptions, e.g. when using the b: namespace as a dict.

Patch to make v:shell_error writable. (Christian Brabandt, 2016 Sep 27)
Useful to restore it.  Is there another solution?

"ci[" does not look for next [ like ci" does look for next ".
(J.F. 2017 Jan 7)

Patch for wrong cursor position on wrapped line, involving breakindent.
(Ozaki Kiichi, 2016 Nov 25)
Does this also fix #1408 ?

'cursorline' and match interfere. (Ozaki Kiichi, 2017 Jun 23, #1792)

Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)

Patch to be able to separately map CTRL-H and BS on Windows.
(Linwei, 2017 Jul 11, #1833)

When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
Apr 23, #1653)

Window resizing with 'winfixheight': With a vertical split the height changes
anyway. (Tommy allen, 2017 Feb 21, #1502)

When adding an item to a new quickfix list make ":cnext" jump to that item.
Make a difference being at the first item and not having used :cnext at all.
(Afanasiy Fet, 2017 Jan 3)

Invalid behavior with NULL list. (Nikolai Pavlov, #768)
E.g. deepcopy(test_null_list())

Patch to make it possible to extend a list with itself.
(Nikolai Pavlov, 2016 Sep 23)

Patch to add Zstandard compressed file support. (Nick Terrell, 2016 Oct 24)

Patch to add MODIFIED_BY to MSVC build file. (Chen Lei, 2016 Nov 24, #1275)

Patch to change argument of :marks. (LemonBoy, 2017 Jan 29, #1426)

On Windows buffer completion sees backslash as escape char instead of path
separator. (Toffanim, 2016 Nov 24, #1274)

min() and max() spawn lots of error messages if sorted list/dictionary
contains invalid data (Nikolay Pavlov, 2016 Sep 4, #1039)

Should :vmap in matchit.vim be :xmap?  (Tony Mechelynck)

Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)

Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)

Add "unicode true" to NSIS installer.  Doesn't work with Windows 95, which we
no longer support.

sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
4#1038)

+channel:
- Add a separate timeout for opening a socket.  Currently it's fixed at 50
  msec, which is too small for a remote connection. (tverniquet, #2130)
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
- Writing raw mode to a buffer should still handle NL characters as line
  breaks. (Dmitry Zotikov, 2017 Aug 16)
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
  2016 Dec 11, #1320)
- Implement |job-term| ?
- Channel test fails with Motif.  Sometimes kills the X11 server.
- When a message in the queue but there is no callback, drop it after a while?
  Add timestamp to queued messages and callbacks with ID, remove after a
  minute.  Option to set the droptime.
- Add an option to drop text of very long lines?  Default to 1 Mbyte.
- Add remark about undo sync, is there a way to force it?
- When starting a job, have an option to open the server socket, so we know
  the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
  Feb 9)  How to do this on MS-Windows?
- For connection to server, a "keep open" flag would be useful.  Retry
  connecting in the main loop with zero timeout.
- job_start(): run job in a newly opened terminal (not a terminal window).
    With xterm could use -S{pty}.
    Although user could use "xterm -e 'cmd arg'".

Regexp problems:
- When search pattern has the base character both with and without combining
  character, search fails.  E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
- [:space:] only matches ASCII spaces.  Add [:white:] for all space-like
  characters, esp. including 0xa0.  Use character class zero.
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
  (Manuel Ortega, 2016 Apr 24)
  Test fails on Mac.  Avoid using isalpha(), isalnum(), etc?  Depends on
  LC_CTYPE
- The old engine does not find a match for "/\%#=1\(\)\{80}", the new engine
  matches everywhere.
- Using win_linetabsize() can still be slow. Cache the result, store col and
  vcol. Reset them when moving to another line.
- Very slow with a long line and Ruby highlighting. (John Whitley, 2014 Dec 4)
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
  (Lech Lorens, 2014 Feb 3)
- Issue 164: freeze on regexp search.
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
  2013 Dec 11)
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin
  Szamotulski; Remark from Brett 2014 Jan 6 and 7.
- NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
- Does not work with NFA regexp engine:
  \%u, \%x, \%o, \%d followed by a composing character
- Search for \%d0\+ may fail with E363. (Christian Brabandt, 2016 Oct 4)
- \%'[ does not work.  '%'] does work.  (Masaaki Nakamura, 2016 Apr 4)
- Bug relating to back references. (Ingo Karkat, 2014 Jul 24)
- New RE does not give an error for empty group: "\(\)\{2}" (Dominique Pelle,
  2015 Feb 7)
- Using back reference before the capturing group sometimes works with the old
  engine, can we do this with the new engine?  E.g. with
  "/\%(<\1>\)\@<=.*\%(<\/\(\w\+\)>\)\@=" matching text inside HTML tags.
  This problem is probably the same: "\%(^\1.*$\n\)\@<=\(\d\+\).*$".
  (guotuofeng, 2015 Jun 22)
- Strange matching with "\(Hello\n\)\@<=A". (Anas Syed, 2015 Feb 12)
- Problem with \v(A)@<=b+\1c. (Issue 334)
- Diff highlighting can be very slow. (Issue 309)
- Using %> for a virtual column has a check based on 'tabsize'.  Better would
  be to cache the result of win_linetabsize(col), storing both col and vcol,
  and use them to decide whether win_linetabsize() needs to be called.  Reset
  col and vcol when moving to another line.
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/".  Leaving
  out the \& works.  Seems any column check after \& fails.
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
  (Chris Paul, 2016 Nov 13)  New engine not greedy enough?
  Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
  (2017 May 15, #1252)

Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140)

Feature request: Complete members of a dictionary. (Luc Hermitte, 2017 Jan 4,
#1350)

Undo message is not always properly displayed.  Patch by Ken Takata, 2013 oct
3.  Doesn't work properly according to Yukihiro Nakadaira.
Also see #1635.

Patch for systemlist(), add empty item. (thinca, Sep 30, #1135)
Add an argument to choose binary or non-binary (like readfile()), when omitted
use the current behavior.
Include the test.

Patch to add tagfunc().  Cleaned up by Christian Brabandt, 2013 Jun 22.
New update 2017 Apr 10, #1628

When 'keywordprg' starts with ":" the argument is still escaped as a shell
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)

Patch to support CamelCase for spell checking: See a lower-to-upper case
change as a word boundary. (btucker-MPCData, 2016 Nov 6, #1235)
patch for 'spellcamelcase' option: spellcheck each CamelCased word.
(Ben Tucker, 2016 Dec 2)

Idea from Sven: record sequence of keys.  Useful to show others what they are
doing (look over the shoulder), and also to see what happened.
Probably list of keystrokes, with some annotations for mode changes.
Could store in logfile to be able to analyse it with an external command.
E.g. to see when's the last time a plugin command was used.

execute() cannot be used with command completion. (Daniel Hahler, 2016 Oct 1,
#1141)

cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)

:map X may print invalid data. (Nikolay Pavlov, 2017 Jul 3, #1816)

Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25)

When using ":diffput" through a mapping, undo in the target buffer isn't
synced.  (Ryan Carney, 2016 Sep 14)

Syntax highlighting for messages with RFC3339 timestamp (#946)
Did maintainer reply?

Patch to avoid problem with special characters in file name.
(Shougo, 2016 Sept 19, #1099)  Not finished?

ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
Also with latest version.

Cannot delete a file with square brackets with delete(). (#696)

Patch to add ":syn foldlevel" to use fold level further down the line.
(Brad King, 2016 Oct 19, update 2017 Jan 30)

Completion for input() does not expand environment variables. (chdiza, 2016
Jul 25, #948)

Patch to add 'systemencoding', convert between 'encoding' and this for file
names, shell commands and the like.  (Kikuchan, 2010 Oct 14)
Assume the system converts between the actual encoding of the filesystem to
the system encoding (usually utf-8).

Using ":tab drop file" does not trigger BufEnter or TabEnter events.
(Andy Stewart, 2017 Apr 27, #1660)
Autocommands blocked in do_arg_all().  Supposed to happen later?

'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9)

MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c?
Otherwise task flickers in taskbar.

Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26)
Also for ":@.".

Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)

Have a way to get the call stack, in a function and from an exception.
#1125

Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)

This does not work: :set cscopequickfix=a-
(Linewi, 2015 Jul 12, #914)

Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)

Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)

Patch to improve map documentation. Issue #799.

Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)

We can use '. to go to the last change in the current buffer, but how about
the last change in any buffer?  Can we use ', (, is next to .)?

Ramel Eshed: system() is much slower than job_start(), why? (Aug 26)

When generating the Unicode tables with runtime/tools/unicode.vim the
emoji_width table has only one entry.

It's possible to add ",," to 'wildignore', an empty entry.  Causes problems.
Reject the value? #710.

When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
Because of using the initial buffer? (Dun Peal, 2016 May 12)

Patch to add the :bvimgrep command.  (Christian Brabandt, 2014 Nov 12)
Updated 2016 Jun 10, #858  Update 2017 Mar 28: use <buffer>

Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)

Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
No test, needs some work to include.

Patch to improve indenting for C++ constructor with initializer list.
(Hirohito Higashi, 2016 Mar 31)

Zero-out krypt key information when no longer in use. (Ben Fritz, 2017 May 15)

Add stronger encryption.  Could use libsodium (NaCl).
https://github.com/jedisct1/libsodium/
Possibly include the needed code so that it can be build everywhere.

Add a way to restart a timer.  It's similar to timer_stop() and timer_start(),
but the reference remains valid.

Need to try out instructions in INSSTALLpc.txt about how to install all
interfaces and how to build Vim with them.
Appveyor build with self-installing executable, includes getting most
interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build
result: https://ci.appveyor.com/project/k-takata/vim/history

Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)

Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)

Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)

Add ":read :command", to insert the output of an Ex command?
Can already do it with ":$put =execute('command')".

When repeating the 'confirm' dialog one needs to press Enter. (ds26gte, 2016
Apr 17)  #762

exists(":tearoff") does not tell you if the command is implemented. (Tony
Mechelynck)  Perhaps use exists("::tearoff") to check?

Use vim.vim syntax highlighting for help file examples, but without ":" in
'iskeyword' for syntax.

Patch to make "%:h:h" return "." instead of the full path.
(Coot, 2016 Jan 24, #592)

Remove SPACE_IN_FILENAME ? What could possibly go wrong?

When command names are very long :command output is difficult to read.  Use a
maximum for the column width?  (#871)
Patcy by varmanishant, 2016 Jun 18, #876

Installation of .desktop files does not work everywhere.
It's now fixed, but the target directory probably isn't right.
Add configure check?
Should use /usr/local/share/applications or /usr/share/applications.
Or use $XDG_DATA_DIRS.
Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)

Test object i{ and it do not behave the same. #1379
Do not include the linebreak at the start?

Patch to have text objects defined by arbitrary single characters. (Daniel
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
Added tests (James McCoy, 2016 Aug 3).  Still needs more work.

Feature request: add the "al" text object, to manipulate a screen line.
Especially useful when using 'linebreak'

Access to uninitialized memory in match_backref() regexp_nda.c:4882
(Dominique Pelle, 2015 Nov 6)

":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)

In debug mode one can inspect variables, but not the function parameters
(starting with a:). (Luc Hermitte, 2017 Jan 4, #1352)

If ":bd" also closes a Tab page then the " mark is not set.  (Harm te Hennepe,
2016 Apr 25, #780)

Patch to avoid redrawing tabline when the popup menu is visible.
(Christian Brabandt, 2016 Jan 28)

Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24)
Update 2016 Jun 10, #861

Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7.  Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.

Patch to show search statistics. (Christian Brabandt, 2016 Jul 22)

When the CursorMovedI event triggers, and CTRL-X was typed, a script cannot
restore the mode properly. (Andrew Stewart, 2016 Apr 20)
Do not trigger the event?

Using ":windo" to set options in all windows has the side effect that it
changes the window layout and the current window.  Make a variant that saves
and restores.  Use in the matchparen plugin.
Perhaps we can use ":windo <restore> {cmd}"?
Patch to add <restore> to :windo, :bufdo, etc. (Christian Brabandt, 2015 Jan
6, 2nd message)
Alternative: ":keeppos" command modifier: ":keeppos windo {cmd}".

Patch to fix that executable() may fail on very long filename in MS-Windows.
(Ken Takata, 2016 Feb 1)

Patch to fix display of listchars on the cursorline. (Nayuri Aohime, 2013)
Update suggested by Yasuhiro Matsumoto, 2014 Nov 25:
https://gist.github.com/presuku/d3d6b230b9b6dcfc0477

Patch to make the behavior of "w" more straightforward, but not Vi compatible.
With a 'cpo' flag.  (Christian Brabandt, 2016 Feb 8)

Patch to add optionproperties(). (Anton Lindqvist, 2016 Mar 27, update Apr 13)

Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3)

Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 17)
Only remembers one error.

Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.

Unexpected delay when using CTRL-O u.  It's not timeoutlen.
(Gary Johnson, 2015 Aug 28)

Instead of separately uploading patches to the ftp site, we can get them from
github with a URL like this:
   https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
Diff for version.c contains more context, can't skip a patch.

When t_Co is changed from termresponse, the OptionSet autocmmand event isn't
triggered.  Use the code from the end of set_num_option() in
set_color_count().

Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)

Comparing nested structures with "==" uses a different comparator than when
comparing individual items.
Also, "'' == 0" evaluates to true, which isn't nice.
Add "===" to have a strict comparison (type and value match).
Add "==*" (?) to have a value match, but no automatic conversion, and v:true
equals 1 and 1.0, v:false equals 0 and 0.0.?

Using uninitialized memory. (Dominique Pelle, 2015 Nov 4)

MS-Windows: When editing a file with a leading space, writing it uses the
wrong name. (Aram, 2014 Nov 7)  Vim 7.4.

Can't recognize the $ProgramFiles(x86) environment variable.  Recognize it
specifically?  First try with the parens, then without.

Patch to add :mapgroup, put mappings in a group like augroup.
(Yasuhiro Matsumoto, 2016 Feb 19)

Value returned by virtcol() changes depending on how lines wrap.  This is
inconsistent with the documentation.

Value of virtcol() for '[ and '] depend on multi-byte character.
(Luchr, #277)

Can we cache the syntax attributes, so that updates for 'relativenumber' and
'cursorline'/'cursorcolumn' are a lot faster?  Thus store the attributes
before combining them.

C highlighting: modern C allows: /* comment */ #ifdef
and also line continuation after #include.
I can't recommend it though.

Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28)

Patch to add arguments to argc() and argv(). (Yegappan Lakshmanan, 2016 Jan
24)  Also need a way to get the global arg list?  Update later on Jan 24
Update Mar 5. Update Apr 7.  Update Jun 5.

To support Thai (and other languages) word boundaries, include the ICU
library:  http://userguide.icu-project.org/boundaryanalysis

When complete() first argument is before where insert started and 'backspace'
is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)

Patch to use two highlight groups for relative numbers. (Shaun Brady, 2016 Jan
30)

MS-Windows: Crash opening very long file name starting with "\\".
(Christian Brock, 2012 Jun 29)

The OptionSet autocommand event is not always triggered. (Rick Howe, 2015 Sep
24): :diffthis, :diffoff.

":set all&" still does not handle all side effects.  Centralize handling side
effects for when set by the user, on init and when reset to default.

":tag" does not jump to the right entry of a :tselect. (James Speros, 2015 Oct
9)

The argument for "-S" is not taken literally, the ":so" command expands
wildcards.  Add a ":nowild" command modifier?  (ZyX, 2015 March 4)

Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
Update Aug 14.

When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)

Example in editing.txt uses $HOME with the expectation that it ends in a
slash.  For me it does, but perhaps not for everybody.  Add a function that
inserts a slash when needed?  pathconcat(dir, path) (Thilo Six, 2015 Aug 12)

ml_updatechunk() is slow when retrying for another encoding. (John Little,
2014 Sep 11)

Patch to fix checking global option value when not using it.
(Arnaud Decara, 2015 Jul 23)

When 'showbreak' is set repeating a Visual operation counts the size of the
'showbreak' text as part of the operation. (Axel Bender, 2015 Jul 20)

Patch for multi-byte characters in langmap and applying a mapping on them.
(Christian Brabandt, 2015 Jun 12, update July 25)
Is this the right solution?  Need to cleanup langmap behavior:
- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
  a copy-buffer, only when langmap is appropriate for the current mode. Then
  check for mapping and let gotchars() work on the copy-buffer.
- Remove LANGMAP_ADJUST() in other parts of the code.  Make sure the mode is
  covered by the above change.
So that replaying the register doesn't use keymap/langmap and still does the
same thing.  Remarks on issue 543 (Roland Puntaier).
Also see #737: langmap not applied to replaying recording.

Patch to add grepfile(). (Scott Prager, 2015 May 26)
Work in progress.

Would be useful to have a treemap() or deepmap() function.  Like map() but
when an item is a list or dict would recurse into it.

Patch for global-local options consistency. (Arnaud Decara, 2015 Jul 22)
Is this right?

Patch to make getregtype() return the right size for non-linux systems.
(Yasuhiro Matsumoto, 2014 Jul 8)
Breaks test_eval.  Inefficient, can we only compute y_width when needed?

Patch to use different terminal mode settings for system(). (Hayaki Saito)
Does this work for everybody?

Patch for man.vim. (SungHyun Nam, 2015 May 20)
Doesn't work completely (Dominique Orban)

Patch to add a "literal" argument to bufnr().  (Olaf Dabrunz, 2015 Aug 4)

When a session file is created and there are "nofile" buffers, these are not
filled.  Need to trigger BufReadCmd autocommands.  Also handle deleting the
initial empty buffer better. (ZyX, 2015 March 8)

Extended file attributes lost on write (backupcopy=no).  Issue 306.

Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
OK to not block marks?

Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)

Patch on Issue 72: 'autochdir' causes problems for :vimgrep.

When two SIGWINCH arrive very quickly, the second one may be lost.
(Josh Triplett, 2015 Sep 17)

Make comments in the test Makefile silent. (Kartik Agaram, 2014 Sep 24)

Result of systemlist() does not show whether text ended in line break.
(Bjorn Linse, 2014 Nov 27)

When in 'comments' "n:x" follows after three-part comment directly it repeats
any one-character from the previous line. (Kartik Agaram, 2014 Sep 19)

Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)

Adding "~" to 'cdpath' doesn't work for completion?  (Davido, 2013 Aug 19)

Should be easy to highlight all matches with 'incsearch'.  Idea by Itchyny,
2015 Feb 6.

Wrong scrolling when using incsearch.  Patch by Christian Brabandt, 2014 Dec 4.
Is this a good solution?

Patch: Let rare word highlighting overrule good word highlighting.
(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)

Patch to add digits argument to round(). (Yasuhiro Matsumoto, 2015 Apr 26)

Can assign to s:type when a function s:type has been defined.
Also the other way around: define a function while a variable with that name
was already defined.
(Yasuhiro Matsumoto, 2014 Nov 3)

Patch for ordered dict. (Ozaki Kiichi, 2015 May 7)

Patch to make closed folds line up. (Charles Campbell, 2014 Sep 12)
Remark from Roland Eggner: does it cause crashes? (2014 Dec 12)
Updated patch by Roland Eggner, Dec 16
Updated patch from Charles, 2016 Jul 2

Patch to open folds for 'incsearch'. (Christian Brabandt, 2015 Jan 6)

Patch for building a 32bit Vim with 64bit MingW compiler.
(Michael Soyka, 2014 Oct 15)

Patch: On MS-Windows shellescape() may have to triple double quotes.
(Ingo Karkat, 2015 Jan 16)

Patch for variable tabstops.  On github (Christian Brabandt, 2014 May 15)
Update 2018 March 12, #2711

Redo only remembers the last change.  Could use "{count}g." to redo an older
change.  How does the user know which change?  At least have a way to list
them: ":repeats".

Patch for glob(), adding slash to normal files. (Ingo Karkat, 2014 Dec 22)

When entering and leaving the preview window autocommands are triggered, but
these may not work well.  Perhaps set a flag to indicate that the preview
window is involved? (John Otter, 2015 Oct 27)

Using "." to repeat an Ex command puts that command in history.  Probably
should not happen.  If the command is the result of a mapping it's not put in
history either. (Jacob Niehus, 2014 Nov 2)
Patch from Jacob, Nov 2.

"hi link" does not respect groups with GUI settings only. (Mark Lodato, 2014
Jun 8)

Bug: Autocompleting ":tag/pat" replaces "/pat" with a match but does not
insert a space. (Micha Mos, 2014 Nov 7)

No error for missing endwhile. (ZyX, 2014 Mar 20)

Patch to make extend() fail early when it might fail at some point.
(Olaf Dabrunz, 2015 May 2)  Makes extend() slower, do we still want it?
Perhaps only the checks that can be done without looping over the dict or
arguments.

Problem with transparent and matchgroup.  Issue #475

Patch to add :arglocal and :arglists. (Marcin Szamotulski, 2014 Aug 6)

Spell files use a latin single quote. Unicode also has another single quote:
0x2019.  (Ron Aaron, 2014 Apr 4)
New OpenOffice spell files support this with ICONV.  But they are not
compatible with Vim spell files.  The old files can no longer be downloaded.

Spell checking: Add a feature to only consider two spaces after a dot to start
a new sentence.  Don't give the capitalization error when there is one space.

xterm should be able to pass focus changes to Vim, so that Vim can check for
buffers that changed.  Perhaps in misc.c, function selectwindow().
Xterm 224 supports it!
Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
Saito, 2013 Apr 24) Update 2016 Aug 12.
Also see issue #609.
We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.

Idea: For a window in the middle (has window above and below it), use
right-mouse-drag on the status line to move a window up/down without changing
its height?  It's like dragging the status bar above it at the same time.

Can we make ":unlet $VAR" use unsetenv() to delete the env var?
What for systems that don't have unsetenv()?  (Issue #1116)

Patch to add a :domodeline command. (Christian Brabandt, 2014 Oct 21)

This does not give an error: (Andre Sihera, 2014 Mar 21)
    vim -u NONE 1 2 3 -c 'bufdo if 1 | echo 1'
This neither: (ZyX)
    vim -u NONE 1 2 3 -c 'bufdo while 1 | echo 1'

'viewdir' default on MS-Windows is not a good choice, it's a system directory.
Change 'viewdir' to "$HOME/vimfiles/view" and use 'viewdiralt' to also read
from?

Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman,
2014 Jun 8)

Include a plugin manager with Vim? Neobundle seems to be the best currently.
Also Vundle: https://github.com/gmarik/vundle
Long message about this from ZyX, 2014 Mar 23.  And following replies.
Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
User view:
- Support multiple sources, basically any http:// URL. Or a central place that
  will work for everybody (github?  redirects from vim.org?).
  Be able to look into the files before deciding to install.
- Be able to try out a plugin and remove it again with (almost) no traces.
- Each plugin needs a "manifest" file that has the version, dependencies
  (including Vim version and features), conflicts, list of files, etc.
  Updater uses that to decide what/how to update.
  Dependencies can use a URL for specific versions, or short name for scripts
  on vim.org.
- Once a plugin is installed it remembers where it came from, updater checks
  there.  Can manually update when really needed.
- Must be possible to install for one user.  Also system wide?
- Can edit plugin config with Vim. Can temporarily disable a plugin.
- Run the update manually, find latest version and install.
- Be able to download without special tools, must work for 95% of users.
Implementation:
- Avoid the 'runtimepath' getting long.  Need some other way to keep each
  plugin separate.
- When installing or updating, first figure out what needs to be done. This
  may involve recursively fetching manifest files for dependencies.  Then show
  the user what's going to change and ask for OK.
- Scripts on Vim.org must be able to consist of several files.  Is zip format
  sufficient?  Upload the manifest?  Or refer to a site that has the manifest?
- Best is to fetch individual files or use a Vimball. Reduces dependency on
  tools that might be missing and allows inspection of the files before
  installing.
Out of scope:
- Overview of plugins, ratings, comments, etc.  That's another world.
- Development work on plugins (although diff with distributed version would be
  useful).

Setting the spell file in a session only reads the local additions, not the
normal spell file. (Enno Nagel, 2014 Mar 29)

When typing the first character of a command, e.g. "f", then using a menu, the
menu item doesn't work.  Clear typeahead when using a menu?

Editing an ascii file as ucs-2 or ucs-4 causes display errors.
(ZyX, 2014 Mar 30)

":Next 1 some-arg" does not complain about trailing argument.  Also for
various other commands.  (ZyX, 2014 Mar 30)

Patch to skip sort if no line matches the expression.
(Christian Brabandt, 2014 Jun 25)

VMS: Select() doesn't work properly, typing ESC may hang Vim.  Use sys$qiow
instead. (Samuel Ferencik, 2013 Sep 28)

Patch for XDG base directory support. (Jean François Bignolles, 2014 Mar 4)
Remark on the docs.  Should not be a compile time feature.  But then what?

Completion of ":e" is ":earlier", should be ":edit".  Complete to the matching
command instead of doing this alphabetically. (Mikel Jorgensen)

Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)

Several syntax file match "^\s*" which may get underlined if that's in the
highlight group.  Add a "\zs" after it?

The undo file name can get too long. (Issue 346)
For the path use a hash instead of dir%dir%dir%name  hash%name.

Patch to add ":undorecover", get as much text out of the undo file as
possible. (Christian Brabandt, 2014 Mar 12, update Aug 22)

Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)

Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)

Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)

Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel
Braun, pragm, 2013 Oct 13)  A better solution 2014 Mar 5.

7   Windows XP: When using "ClearType" for text smoothing, a column of yellow
    pixels remains when typing spaces in front of a "D" ('guifont' set to
    "lucida_console:h8").
Patch by Thomas Tuegel, also for GTK, 2013 Nov 24

:help gives example for z?, but it does not work.  m? and t? do work.

Patch to add funcref to Lua.  (Luis Carvalho, 2013 Sep 4)
With tests: Sep 5.

Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)

Checking runtime scripts: Thilo Six, 2012 Jun 6.

When evaluating expression in backticks, autoload doesn't work.
(Andy Wokula, 2013 Dec 14)

Using <nr>ifoobar<esc> can slow down Vim.  Patch by Christian Brabandt, 2013
Dec 13.

GTK: problem with 'L' in 'guioptions' changing the window width.
(Aaron Cornelius, 2012 Feb 6)

Patch to add option that tells whether small deletes go into the numbered
registers. (Aryeh Leib Taurog, 2013 Nov 18)

Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.

The BufUnload event is triggered when re-using the empty buffer.
(Pokey Rule, 2013 Jul 22)
Patch by Marcin Szamotulski, 2013 Jul 22.

The CompleteDone autocommand needs some info passed to it:
- The word that was selected (empty if abandoned complete)
- Type of completion: tag, omnifunc, user func.

Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5)
Doesn't work for string in list.  Other way to pass all types of variables
reliably?

Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
(Christian Brabandt, 2013 Dec 9)

Exception caused by argument of return is not caught by try/catch.
(David Barnett, 2013 Nov 19)

Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
2013 Mar 19, later message)

Patch to view coverage of the tests. (Nazri Ramliy, 2013 Feb 15)

Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May
5)

Patch to add "Q" and "A" responses to interactive :substitute. They are
carried over when using :global. (Christian Brabandt, 2013 Jun 19)

Bug with 'cursorline' in diff mode.  Line being scrolled into view gets
highlighted as the cursor line.  (Alessandro Ivaldi, 2013 Jun 4)

Two highlighting bugs. (ZyX, 2013 Aug 18)

Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
28)  With tests: Oct 9.

Patch from Christian Brabandt to make the "buffer" argument for ":sign place"
optional. (2013 Jul 12)

Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)

Improve the installer for MS-Windows.  There are a few alternatives:
- Add silent install option. (Shane Lee, #751)
- Installer from Cream (Steve Hall).
- Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
    https://github.com/gpwen/vim-installer-mui2
-  make it possible to do a silent install, see
    http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
    Version from Guopeng Wen does this.
- MSI installer: https://github.com/petrkle/vim-msi/
- The one on Issue 279.
Problem: they all work slightly different (e.g. don't install vimrun.exe).
How to test that it works well for all Vim users?

Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)

-   Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'.  Combine
    the two into a regex for searching. (Ned Konz)
Patch by Christian Brabandt, 2013 Apr 20, unfinished.

Bug: findfile("any", "file:///tmp;") does not work.

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
a reboot.

patch to add "combine" flag to  syntax commands. (so8res, 2012 Dec 6)

Syntax update problem in one buffer opened in two windows, bottom window is
not correctly updated. (Paul Harris, 2012 Feb 27)

Patch to add getsid(). (Tyru, 2011 Oct 2)  Do we want this?  Update Oct 4.
Or use expand('<sid>')?

Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)

Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)

Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15)

Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)

b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
7)

Win32: The Python interface only works with one version of Python, selected at
compile time.  Can this be made to work with version 2.1 and 2.2 dynamically?

Python: Be able to define a Python function that can be called directly from
Vim script.  Requires converting the arguments and return value, like with
vim.bindeval().

Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers,
2012 Aug 4)

Patch to improve equivalence classes in regexp patterns.
(Christian Brabandt, 2013 Jan 16, update Jan 17)

Patch to add new regexp classes :ident:, :keyword:, :fname:.
(ichizok, 2016 Jan 12, #1373)

Patch with suggestions for starting.txt. (Tony Mechelynck, 2012 Oct 24)
But use Gnome instead of GTK?

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)

Session file creation: 'autochdir' causes trouble.  Keep it off until after
loading all files.

MS-Windows resizing problems:
- Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun
  20.  Uses getWindowRect() instead of GetWindowPlacement()
- Win32: When the taskbar is at the top of the screen creating the tabbar
  causes the window to move unnecessarily. (William E. Skeith III, 2012 Jan
  12) Patch: 2012 Jan 13  Needs more work (2012 Feb 2)

'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23)

Patch to append regexp to tag commands to make it possible to select one out
of many matches. (Cody Cutler, 2013 Mar 28)

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)
But use "gi" instead of "a".  Or use CTRL-\ CTRL-O.

Patch to support user name completion on MS-Windows. (Yasuhiro Matsumoto, 2012
Aug 16)

When there are no command line arguments ":next" and ":argu" give E163, which
is confusing.  Should say "the argument list is empty".

URXVT:
- will get stuck if byte sequence does not contain the expected semicolon.
- Use urxvt mouse support also in xterm.  Explanations:
  http://www.midnight-commander.org/ticket/2662

Patch to have the fold and sign column and at the last line of the buffer.
(Marco Hinz, 2014 Sep 25)
Alternate suggestion: let all columns continue, also the number column.

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.

When running Vim in silent ex mode, an existing swapfile causes Vim to wait
for a user action without a prompt. (Maarten Billemont, 2012 Feb 3)
Do give the prompt? Quit with an error?

Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)

Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
24)

Patch for input method status. (Hirohito Higashi, 2012 Apr 18)

Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6)

Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
Apr 18)

Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
And one for gui_x11.txt.

":cd" doesn't work when current directory path contains "**".
finddir() has the same problem.  (Yukihiro Nakadaira, 2012 Jan 10)
Requires a rewrite of the file_file_in_path code.

Should use has("browsefilter") in ftplugins.  Requires patch 7.3.593.

Update for vim2html.pl. (Tyru, 2013 Feb 22)

Patch to sort functions starting with '<' after others.  Omit dict functions,
they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11)

Patch to pass list to or(), and() and xor(). (Yasuhiro Matsumoto, 2012 Feb 8)

Patch to improve "it" and "at" text object matching. (Christian Brabandt, 2011
Nov 20)

Patch to improve GUI find/replace dialog. (Christian Brabandt, 2012 May 26)
Update Jun 2.

`] moves to character after insert, instead of the last inserted character.
(Yukihiro Nakadaira, 2011 Dec 9)

Plugin for Modeleasy. (Massimiliano Tripoli, 2011 Nov 29)

BufWinLeave triggers too late when quitting last window in a tab page. (Lech
Lorens, 2012 Feb 21)

Patch for 'transparency' option. (Sergiu Dotenco, 2011 Sep 17)
Only for MS-Windows.  No documentation.  Do we want this?

Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27)

On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz,
2012 Jun 19)

'cursorline' is displayed too short when there are concealed characters and
'list' is set.  (Dennis Preiser)
Patch 7.3.116 was the wrong solution.
Christian Brabandt has another incomplete patch. (2011 Jul 13)

With concealed text mouse click doesn't put the cursor in the right position.
(Herb Sitz)  Fix by Christian Brabandt, 2011 Jun 16.  Doesn't work properly,
need to make the change in where RET_WIN_BUF_CHARTABSIZE() is called.

Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
21, Ben Fritz, 2010 Sep 14)

The :syntax cchar value can only be a single character.  It would be useful to
support combining characters. (Charles Campbell)

'cursorline' works on a text line only.  Add 'cursorscreenline' for
highlighting the screen line. (Christian Brabandt, 2012 Mar 31)

Win32: Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 17)
New feature, requires testing.  Made some remarks.

Win32: Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011
Sep 17)  Asked for feedback from others.

Win32: Cannot cd into a directory that starts with a space. (Andy Wokula, 2012
Jan 19)

Need to escape $HOME on Windows for fnameescape()?  (ZyX, 2011 Jul 21,
discussion 2013 Jul 4) Can't simply use a backslash, \$HOME has a different
meaning already.  Would be possible to use $$HOME where $HOME is to be used.

"2" in 'formatoptions' not working in comments. (Christian Corneliussen, 2011
Oct 26)

Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)

With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
register. (Michael Seiwald, 2011 Jun 28)  I can't reproduce it.

Windows keys not set properly on Windows 7?  (cncyber, 2010 Aug 26)

When using a Vim server, a # in the path causes an error message.
(Jeff Lanzarotta, 2011 Feb 17)

When there is a ">" in a line that "gq" wraps to the start of the next line,
then the following line will pick it up as a leader.  Should get the leader
from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)

Using ":break" or something else that stops executing commands inside a
":finally" does not rethrow a previously uncaught exception. (ZyX, 2010 Oct
15)

Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)

BT regexp engine: After trying a \@> match and failing, submatches are not
cleared.  See test64.

Patch to make "z=" work when 'spell' is off.  Does this have nasty side
effects?  (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
Would also need to do this for spellbadword() and spellsuggest().

On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
64 bits value.  Change all number options to use nropt_T and define it to the
right type.

string() can't parse back "inf" and "nan".  Fix documentation or fix code?
(ZyX, 2010 Aug 23)

When doing "redir => s:foo" in a script and then "redir END" somewhere else
(e.g. in a function) it can't find s:foo.
When a script contains "redir => s:foo" but doesn't end redirection, a
following "redir" command gives an error for not being able to access s:foo.
(ZyX, 2011 Mar 27)

When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim
doesn't jump to the correct line with :cfirst. (ZyX,  2011 Sep 18)

Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)

maparg() does not show the <script> flag.  When temporarily changing a
mapping, how to restore the script ID?

Bug in try/catch: return with invalid compare throws error that isn't caught.
(ZyX, 2011 Jan 26)

When setting a local option value from the global value, add a script ID that
indicates this, so that ":verbose set" can give a hint.  Check with options in
the help file.

After patch 7.3.097 still get E15. (Yukihiro Nakadaira, 2011 Jan 18)
Also for another example (ZyX, 2011 Jan 24)

Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)

"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)

Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)

Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27)

Loading autoload script even when usage is inside "if 0". (Christian Brabandt,
2010 Dec 18)

With a filler line in diff mode, it isn't displayed in the column with line
number, but it is in the sign column.  Doesn't look right. (ZyX 2011 Jun 5)
Patch by Christian Brabandt, 2011 Jun 5.  Introduces new problems.

Add jump() function. (Marcin Szamotulski, 2013 Aug 29)
Is this needed?  CTRL-O and CTRL-I do the same, just more difficult to use.

8   Add a command to jump to the next character highlighted with "Error".
Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.

Add event for when the text scrolls.  A bit like CursorMoved.  Also a similar
one for insert mode.  Use the event in matchparen to update the highlight if
the match scrolls into view.

7   Use "++--", "+++--" for different levels instead of "+---" "+----".
Patch by Christian Brabandt, 2011 Jul 27.
Update by Ben Fritz, with fix for TOhtml. (2011 Jul 30)

9   Add %F to 'errorformat': file name without spaces.  Useful on Unix to
    avoid matching something up to a time 11:22:33.
Patch by Christian Brabandt, 2011 Jul 27.

Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
Also add named groups: \%{name}(re)  and \%{name}g

In the sandbox it's not allowed to do many things, but it's possible to change
or set variables.  Add a way to prevent variables from being changed in the
sandbox?  E.g.: ":protect g:restore_settings".

GTK: drawing a double-width combining character over single-width characters
doesn't look right. (Dominique Pelle, 2010 Aug 8)

GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)

Win32: tear-off menu does not work when menu language is German. (Markus
Bossler, 2011 Mar 2)  Fixed by 7.3.095?

Wish for NetBeans commands:
    - make it possible to have 'defineAnnoType' also handle terminal colors.

Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)

7.3.014 changed how backslash at end of line works, but still get a NUL when
there is one backslash. (Ray Frush, 2010 Nov 18)  What does the original ex
do?

Searching mixed with Visual mode doesn't redraw properly. (James Vega, 2010 Nov
22)

New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
- move compflags to separate growarray?
- instead of a regexp use a hashtable.  Expand '?', '*', '+'.  What would be
  the maximum repeat for * and +?

"L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
2011 Feb 27)

Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
^M is displayed as ^J sometimes.  Getting 'ff' value from wrong window/buffer?

When Vim is put in the background (SIGTSTP) and then gets a SIGHUP it doesn't
exit.  It exists as soon as back in the foreground. (Stephen Liang, 2011 Jan
9)  Caused by vim_handle_signal(SIGNAL_BLOCK); in ui.c.

g` not working correctly when using :edit.  It works OK when editing a file on
the command line. (Ingo Karkat, 2011 Jan 25)

Since patch 7.2.46 Yankring plugin has become very slow, eventually make Vim
crash? (Raiwil, 2010 Nov 17)

Patch to add FoldedLineNr highlighting: different highlighting for the line
number of a closed fold. (eXerigumo Clanjor, 2013 Jul 15)

Regexp engine performance:
- Profiling:
	./vim -u NONE -s ~/vim/test/ruby.vim
	./vim -u NONE -s ~/vim/test/loop.vim
	./vim -u NONE -s ~/vim/test/alsa.vim
	./vim -s ~/vim/test/todo.vim
	./vim -s ~/vim/test/xml.vim
    Dominique Pelle:  xmlSyncDT is particularly slow (Jun 7)
- More test files from the src/pkg/regexp/testdata directory in the Go repo.
- Performance tests:
  - Using asciidoc syntax. (Marek Schimara, 2013 Jun 6)
  - ~/vim/text/FeiqCfg.xml (file from Netjune)
  - ~/vim/text/edl.svg  (also XML)
  - glts has five tests. (May 25)
  - ~/vim/test/slowsearch
  - ~/vim/test/rgb.vim
  - search for  a.*e*exn  in the vim executable.  Go to last line to use
    'hlsearch'.
  - Slow combination of folding and PHP syntax highlighting.  Script to
    reproduce it.  Caused by "syntax sync fromstart" in combination with patch
    7.2.274.  (Christian Brabandt, 2010 May 27) Generally, folding with
    'foldmethod' set to "syntax" is slow.  Do profiling to find out why.

Problem producing tags file when hebrew.frx is present.  It has a BOM.
Results in E670. (Tony Mechelynck, 2010 May 2)

'beval' option should be global-local.

Ruby: ":ruby print $buffer.number" returns zero.

setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)

7   The 'directory' option supports changing path separators to "%" to make
    file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
    Patch by Christian Brabandt, 2010 Oct 21.
    Is this an update:  related to: #179
    https://github.com/chrisbra/vim-mq-patches/blob/master/backupdir
    Fixed patch 2017 Jul 1.

With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
2010 Oct 24)

Messages in message.txt are highlighted as examples.

When using cp850 the NBSP (0xff) is not drawn correctly. (Brett Stahlman, 2010
Oct 22)  'isprint' is set to "@,161-255".

":echo "\x85" =~# '[\u0085]'" returns 1 instead of 0. (ZyX, 2010 Oct 3)

'cindent' not correct when 'list' is set. (Zdravi Korusef, 2010 Apr 15)

C-indenting: A matching { in a comment is ignored, but intermediate { are not
checked to be in a comment.  Implement FM_SKIPCOMM flag of findmatchlimit().
Issue 46.

Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)

Using CompilerSet doesn't record where an option was set from.  E.g., in the
gcc compiler plugin. (Gary Johnson, 2010 Dec 13)

":helpgrep" does not put the cursor in the correct column when preceded by
accented character. (Tony Mechelynck, 2010 Apr 15)

Don't call check_restricted() for histadd(), setbufvar(), settabvar(),
setwinvar().

Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)

When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
instead of one. (Constantin Pan, 2010 Sep 10)

Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
Winckler, 2011 May 11)
Requires a map mode for Insert mode started from blockwise Visual mode.

Writing nested List and Dict in viminfo gives error message and can't be read
back. (Yukihiro Nakadaira, 2010 Nov 13)

Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
Additional info by Dominique Pelle. (also on 2010 Apr 10)

CreateFile and CreateFileW are used without sharing, filewritable() fails when
the file was already open (e.g. script is being sourced).  Add FILE_SHARE_READ|
FILE_SHARE_WRITE in mch_access()? (Phillippe Vaucher, 2010 Nov 2)

Is ~/bin (literally) in $PATH supposed to work?  (Paul, 2010 March 29)
Looks like only bash can do it. (Yakov Lerner)

Cscope "cs add" stopped working somewhat before 7.2.438. (Gary Johnson, 2010
Jun 29)  Caused by 7.2.433?

I often see pasted text (from Firefox, to Vim in xterm) appear twice.
Also, Vim in xterm sometimes loses copy/paste ability (probably after running
an external command).

Jumplist doesn't work properly in Insert mode? (Jean Johner, 2010 Mar 20)

Problem with transparent cmdline.  Also: Terminal title is wrong with
non-ASCII character. (Lily White, 2010 Mar 7)

iconv() doesn't fail on an illegal character, as documented. (Yongwei Wu, 2009
Nov 15, example Nov 26)  Add argument to specify whether iconv() should fail
or replace with a character and continue?

Add local time at start of --startuptime output.
Requires configure check for localtime().
Use format year-month-day hr:min:sec.

Patch to add "combine" to :syntax, combines highlight attributes. (Nate
Soares, 2012 Dec 3)

Patch to make ":hi link" also take arguments. (Nate Soares, 2012 Dec 4)

Shell not recognized properly if it ends in "csh -f". (James Vega, 2009 Nov 3)
Find tail?  Might have a / in argument.  Find space?  Might have space in
path.

Test 51 fails when language set to German. (Marco, 2011 Jan 9)
Dominique can't reproduce it.

'ambiwidth' should be global-local.

":function f(x) keepjumps" creates a function where every command is executed
like it has ":keepjumps" before it.

Coverity: Check if there are new reported defects:
https://scan.coverity.com/projects/241

Patch to support :undo absolute jump to file save number. (Christian Brabandt,
2010 Nov 5)

Patch to use 'foldnestmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
Jan 7)

Bug with 'incsearch' going to wrong line. (Wolfram Kresse, 2009 Aug 17)
Only with "vim -u NONE".

Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)

With 'wildmode' set to "longest:full,full" and pressing Tab once the first
entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe, 2011
Feb 12)

Display error when 'tabline' that includes a file name with double-width
characters. (2010 Aug 14, bootleq)

Problem with stop directory in findfile(). (Adam Simpkins, 2009 Aug 26)

Using ']' as the end of a range in a pattern requires double escaping:
     /[@-\\]]  (Andy Wokula, 2011 Jun 28)

Syntax priority problem. (Charles Campbell, 2011 Sep 15)

When completion inserts the first match, it may trigger the line to be folded.
Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)

When a:base in 'completefunc' starts with a number it's passed as a number,
not a string. (Sean Ma)  Need to add flag to call_func_retlist() to force a
string value.

For running gvim on a USB stick: avoid the OLE registration.  Use a command
line argument -noregister.

When using an expression in 'statusline' leading white space sometimes goes
missing (but not always). (ZyX, 2010 Nov 1)

When a mapping exists both for insert mode and lang-insert mode, the last one
doesn't work. (Tyru, 2010 May 6)  Or is this intended?

Still a problem with ":make" in the wrong directory.  Caused by ":bufdo".
(Ajit Thakkar, 2009 Jul 1) More information Jul 9, Jul 15.
Caused by "doautoall syntaxset BufEnter *" in syntax/nosyntax.vim ?
There also is a BufLeave/BufEnter aucmd to save/restore view.
Does the patch to save/restore globaldir work?

":bufdo normal gg" while 'hidden' is set leaves buffers without syntax
highlighting.  Don't disable Syntax autocommands then?  Or add a flag/modifier
to avoid changing 'eventignore'?

Patch for displaying 0x200c and 0x200d. (Ali Gholami Rudi, 2009 May 6)
Probably needs a bit of work.

Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
Added test, updates, June 23.
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
With modification for Tatweel character: https://dpaste.de/VmFw
Remark from Ameretat Reith (2014 Oct 13)

List of encoding aliases. (Takao Fujiwara, 2009 Jul 18)
Are they all OK?  Update Jul 22.

Win32: Improved Makefile for MSVC. (Leonardo Valeri Manera, 2010 Aug 18)

Win32: Expanding 'path' runs into a maximum size limit. (bgold12, 2009 Nov 15)

Win32: Patch for enabling quick edit mode in console. (Craig Barkhouse, 2010
Sep 1)

Win32: Patch for using .png files for icons. (Charles Peacech, 2012 Feb 5)

Putting a Visual block while 'visualedit' is "all" does not leave the cursor
on the first character. (John Beckett, 2010 Aug 7)

Setting 'tags' to "tagsdir/*" does not find "tagsdir/tags". (Steven K. Wong,
2009 Jul 18)

Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in
window that doesn't have focus. (Jonathon Mah, 2009 Jan 12)
Needs more work.

Problem with <script> mappings (Andy Wokula, 2009 Mar 8)

When starting Vim with "gvim -f -u non_existent_file > foo.txt" there are a
few control characters in the output. (Dale Wiles, 2009 May 28)

'cmdwinheight' is only used in last window when 'winheight' is a large value.
(Tony Mechelynck, 2009 Apr 15)

Status line containing winnr() isn't updated when splitting the window (Clark
J.  Wang, 2009 Mar 31)

When $VIMRUNTIME is set in .vimrc, need to reload lang files.  Already done
for GTK, how about others? (Ron Aaron, 2010 Apr 10)

Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010 Aug 9)

Motif: Build on Ubuntu can't enter any text in dialog text fields.

":tab split fname" doesn't set the alternate file in the original window,
because win_valid() always returns FALSE.  Below win_new_tabpage() in
ex_docmd.c.

Space before comma in function definition not allowed: "function x(a , b)"
Give a more appropriate error message.  Add a remark to the docs.

string_convert() should be able to convert between utf-8 and utf-16le.  Used
for GTK clipboard.  Avoid requirement for iconv.

Now that colnr_T is int instead of unsigned, more type casts can be removed.

'delcombine' does not work for the command line. (Tony Mechelynck, 2009 Jul
20)

Don't load macmap.vim on startup, turn it into a plugin. (Ron Aaron,
2009 Apr 7)  Reminder Apr 14.

Add "no_hlsearch" to winsaveview().

Cursorline highlighting combines with Search ('hlsearch') but not with
SpellBad. (Jim Karsten, 2009 Mar 18)

When 'foldmethod' is "indent", adding an empty line below a fold and then
indented text, creates a new fold instead of joining it with the previous one.
(Evan Laforge, 2009 Oct 17)

Bug: When reloading a buffer changed outside of Vim, BufRead autocommands
are applied to the wrong buffer/window. (Ben Fritz, 2009 Apr 2, May 11)
Ignore window options when not in the right window?
Perhaps we need to use a hidden window for applying autocommands to a buffer
that doesn't have a window.

When using "ab foo bar" and mapping <Tab> to <Esc>, pressing <Tab> after foo
doesn't trigger the abbreviation like <Esc> would. (Ramana Kumar, 2009 Sep 6)

getbufvar() to get a window-local option value for a buffer that's not
displayed in a window should return the value that's stored for that buffer.

":he ctrl_u" can be auto-corrected to ":he ctrl-u".

There should be a way after an abbreviation has expanded to go back to what
was typed.  CTRL-G h ?  Would also undo last word or line break inserted
perhaps.  And undo CTRL-W.  CTRL-G l would redo.

Diff mode out of sync. (Gary Johnson, 2010 Aug 4)

Win32 GUI: last message from startup doesn't show up when there is an echoerr
command. (Cyril Slobin, 2009 Mar 13)

Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)

opening/closing window causes other window with 'winfixheight' to change
height.  Also happens when there is another window in the frame, if it's not
very high. (Yegappan Lakshmanan, 2010 Jul 22, Michael Peeters, 2010 Jul 22)

Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
(Felix Kater, 2009 Mar 3)

Session file generates error upon loading, cause by --remote-silent-tab.
(7tommm (ytommm) 2010 Nov 24)

Using ~ works OK on 'a' with composing char, but not on 0x0418  with composing
char 0x0301. (Tony Mechelynck, 2009 Mar 4)

Searching for composing char works, but not when inside []. (ZyX, Benjamin R.
Haskell, 2010 Aug 24)

This does not work yet: "a\(%C\)" (get composing characters into a submatch).

Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
messages, even though locale is not supported.  But ":lang messages
es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
2009 Jan 26)

When $HOME contains special characters, such as a comma, escape them when used
in an option. (Michael Hordijk, 2009 May 5)
Turn "esc" argument of expand_env_esc() into string of chars to be escaped.

Should make 'ignorecase' global-local, so that it makes sense setting it from
a modeline.

Add cscope target to Makefile. (Tony Mechelynck, 2009 Jun 18, replies by
Sergey Khorev)

Consider making YankRing or something else that keeps a list of yanked text
part of standard Vim.  The "1 to "9 registers are not sufficient.

After doing "su" $HOME can be the old user's home, thus ~root/file is not
correct.  Don't use it in the swap file.

Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
(Henrik Ohman, 2009, Jan 29)

shellescape() depends on 'shellslash' for quoting.  That doesn't work when
'shellslash' is set but using cmd.exe. (Ben Fritz)
Use a different option or let it depend on whether 'shell' looks like a
unix-like shell?

Bug: in Ex mode (after "Q") backslash before line break, when yanked into a
register and executed, results in <Nul>: instead of line break.
(Konrad Schwarz, 2010 Apr 16)

Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
Now at: http://vimgadgets.sourceforge.net/liblinebreak/

Greek sigma character should be lower cased depending on the context.  Can we
make this work?  (Dominique Pelle, 2009 Sep 24)

When changing 'encoding' convert all the swap file names, so that we can
still delete them.  Also convert all buffer file names?

"gqip" in Insert mode has an off-by-one error, causing it to reflow text.
(Raul Coronado, 2009 Nov 2)

Update src/testdir/main.aap.

Something wrong with session that has "cd" commands and "badd", in such a way
that Vim doesn't find the edited file in the buffer list, causing the
ATTENTION message?  (Tony Mechelynck, 2008 Dec 1)
Also: swap files are in ~/tmp/  One has relative file name ".mozilla/...".

Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
Maybe call it v:motiontype.

MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
doesn't set 'ff' to "unix".  (Ben Fritz, 2008 Dec 5) Reusing the old buffer
probably causes this.

'scrollbind' is not respected when deleting lines or undo. (Milan Vancura,
2009 Jan 16)

Document that default font in Athena can be set with resources:
   XtDefaultFont: "9x15"
   XtDefaultFontSet: "9x15"
(Richard Sherman, 2009 Apr 12)

Having "Syntax" in 'eventignore' for :bufdo may cause problems, e.g. for
":bufdo e" when buffers are open in windows.  ex_listdo(eap) could set the
option only for when jumping to another buffer, not when the command argument
is executed.

":pedit %" with a BufReadPre autocommand causes the cursor to move to the
first line. (Ingo Karkat, 2008 Jul 1)  Ian Kelling is working on this.
Similar problem with ":e". (Marc Montu, 2014 Apr 22)

Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
Works OK with Vim in an xterm.

Cursor line moves in other window when using CTRL-W J that doesn't change
anything.  (Dasn, 2009 Apr 7)

On Unix "glob('does not exist~')" returns the string.  Without the "~" it
doesn't. (John Little, 2008 Nov 9)
Shell expansion returns unexpanded string?
Don't use shell when "~" is not at the start?

When using ":e ++enc=foo file" and the file is already loaded with
'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though the
fileencoding differs.  Reload the buffer in this situation?  Need to check for
the buffer to be unmodified.
Unfinished patch by Ian Kelling, 2008 Jul 11.  Followup Jul 14, need to have
another look at it.

c.vim: XXX in a comment is colored yellow, but not when it's after "#if 0".
(Ilya Dogolazky, 2009 Aug 7)

You can type ":w ++bad=x fname", but the ++bad argument is ignored.  Give an
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
at the other match for 0xBF.

When adding "-complete=file" to a user command this also changes how the
argument is processed for <f-args>. (Ivan Tishchenko, 2008 Aug 19)

Win32: associating a type with Vim doesn't take care of space after a
backslash? (Robert Vibrant, 2008 Jun 5)

When 'rightleft' is set, cursorcolumn isn't highlighted after the end of a
line.  It's also wrong in folds. (Dominique Pelle, 2010 Aug 21)

Using an insert mode expression mapping, cursor is not in the expected
position. (ZyX, 2010 Aug 29)

After using <Tab> for command line completion after ":ta blah" and getting E33
(no tags file), further editing the command to e.g., ":echo 'blah'", the
command is not executed.  Fix by Ian Kelling?

":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
Chase)  Fix by Ian Kelling, 2008 Jul 14.

When mapping : to ; and ; to :, @; doesn't work like @: and @: doesn't work
either.  Matt Wozniski:  nv_at() calls do_execreg() which uses
put_in_typebuf().  Char mapped twice?

Despite adding save_subexpr() this still doesn't work properly:
Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?')
Returns ['12a4', 'aaa', '4aaa'], should be ['12a4', 'aaa', '']
Backreference not cleared when retrying after \@<= fails?
(Brett Stahlman, 2008 March 8)

Problem with remote_send(). (Charles Campbell, 2008 Aug 12)

ftplugin for help file should set 'isk' to help file value.

Win32: remote editing fails when the current directory name contains "[".
(Ivan Tishchenko, Liu Yubao)  Suggested patch by Chris Lubinski: Avoid
escaping characters where the backslash is not removed later.  Asked Chris for
an alternate solution, also for src/ex_getln.c.
This also fails when the file or directory name contains "%". (Thoml, 2008
July 7)
Using --remote-silent while the current directory has a # in the name does not
work, the # needs to be escaped. (Tramblay Bruno, 2012 Sep 15)

When using remote-silent the -R flag is not passed on. (Axel Bender, 2012 May
31)

Win32: A --remote command that has a directory name starting with a ( doesn't
work, the backslash is removed, assuming that it escapes the (. (Valery
Kondakoff, 2009 May 13)

Win32: Using "gvim --remote-tab-silent elŝuti.txt" doesn't work, the
multi-byte character isn't passed and edits elsuti.txt.
(Raúl Núñez de Arenas Coronado, 2015 Dec 18)

Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
2008 May 14)
Possibly related problem: Alexey Muranov, 2015 Apr 2

Problem with CTRL-F. (Charles Campbell, 2008 March 21)
Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
'lines' is 54. (2008 March 27)

Problem with pointer wrapping around in getvcol(). (Wolfgang Kroworsch, 2008
Oct 19)  Check for "col" being "MAXCOL" separately?

Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23)
Works OK when 'cmdheight' is 2.

8   Use a mechanism similar to omni completion to figure out the kind of tab
    for CTRL-] and jump to the appropriate matching tag (if there are
    several).
    Alternative: be able to define a function that takes the tag name and uses
    taglist() to find the right location.  With indication of using CTRL-] so
    that the context can be taken into account. (Robert Webb)
Patch by Christian Brabandt, 2013 May 31.

The utf class table is missing some entries:
	0x2212, minus sign 
	0x2217, star
	0x2500, bar
	0x26ab, circle

Visual line mode doesn't highlight properly when 'showbreak' is used and the
line doesn't fit. (Dasn, 2008 May 1)

GUI: In Normal mode can't yank the modeless selection.  Make "gy" do this?
Works like CTRL-Y in Command line mode.

Mac: Move Carbon todo items to os_mac.txt.  Note that this version is frozen,
try the Cocoa version.

Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
changed or the window is resized.

GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
the window isn't redrawn properly, see two vertical bars.

Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008
Mar 5)  Alternative: Kazuki Sakamoto, Mar 7.

Mac: trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug
1)  Reply by Ben Schmidt.

C't: On utf-8 system, editing file with umlaut through Gnome results in URL
with %nn%nn, which is taken as two characters instead of one.
Try to reproduce at work.

Patch for default choice in file changed dialog. (Bjorn Winckler, 2008 Oct 19)
Is there a way to list all the files first?

When 'smartcase' is set and using CTRL-L to add to the search pattern it may
result in no matches.  Convert chars to lower case? (Erik Wognsen, 2009 Apr
16)

Fail to edit file after failed register access.  Error flag remains set?
(Lech Lorens, 2010 Aug 30)

Patch for redo register. (Ben Schmidt, 2007 Oct 19)
Await response to question to make the register writable.

Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
1)

In the swapfile dialog, add a H(elp) option that gives more info about what
each choice does.  Similar to  ":help swap-exists-choices"

try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)

try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)

":tab help" always opens a new tab, while ":help" re-uses an existing window.
Would be more consistent when an existing tab is re-used. (Tony Mechelynck)

Add ":nofold".  Range will apply without expanding to closed fold.

Using Aap to build Vim: add remarks about how to set personal preferences.
Example on http://www.calmar.ws/tmp/aap.html

Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007
Jul 31)

C syntax: {} inside () causes following {} to be highlighted as error.
(Michalis Giannakidis, 2006 Jun 1)

When 'diffopt' has "context:0" a single deleted line causes two folds to merge
and mess up syncing. (Austin Jennings, 2008 Jan 31)

Gnome improvements: Edward Catmur, 2007 Jan 7
    Also use Save/Discard for other GUIs

New PHP syntax file, use it? (Peter Hodge)

":echoe" in catch block stops processing, while this doesn't happen outside of
a catch block. (ZyX, 2011 Jun 2)

'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
Likonen, March 19)

Test 54 uses shell commands, that doesn't work on non-Unix systems.  Use some
other way to test buffer-local autocommands.

The documentation mentions the priority for ":2match" and ":3match", but it
appears the last one wins. (John Beckett, 2008 Jul 22)  Caused by adding
matchadd()?  Suggested patch by John, 2008 Jul 24.

When 'encoding' is utf-8 the command line is redrawn as a whole on every
character typed. (Tyler Spivey, 2008 Sep 3)  Only redraw cmdline for
'arabicshape' when there is a character on the command line for which
(ARABIC_CHAR(u8c)) is TRUE.

Cheng Fang made javacomplete. (2007 Aug 11)
Asked about latest version: 0.77.1 is on www.vim.org.

More AmigaOS4 patches. (Peter Bengtsson, Nov 9)

Amiga patches with vbcc. (Adrien Destugues, 2010 Aug 30)
http://pulkomandy.ath.cx/drop/vim73_vbcc_amiga.diff

Insert mode completion: When editing the text and pressing CTRL-N again goes
back to originally completed text, edited text is gone. (Peng Yu, 2008 Jul 24)
Suggestion by Ben Schmidt, 2008 Aug 6.

Problem with compound words?  (Bert, 2008 May 6)
No warning for when flags are defined after they are used in an affix.

Screen redrawing when continuously updating the buffer and resizing the
terminal. (Yakov Lerner, 2006 Sept 7)

Add option settings to help ftplugin. (David Eggum, 2006 Dec 18)

Autoconf problem: when checking for iconv library we may add -L/usr/local/lib,
but when compiling further tests -liconv is added without the -L argument,
that may fail (e.g., sizeof(int)). (Blaine, 2007 Aug 21)

When opening quickfix window, disable spell checking?

Problem with ".add" files when using two languages and restarting Vim. (Raul
Coronado, 2008 Oct 30)

Popup menu redraw: Instead of first redrawing the text and then drawing the
popup menu over it, first draw the new popup menu, remember its position and
size and then redraw the text, skipping the characters under the popup menu.
This should avoid flicker.  Other solution by A.Politz, 2007 Aug 22.

When a register contains illegal bytes, writing viminfo in utf-8 and reading
it back doesn't result in utf-8. (Devin Bayer)

Command line completion: Scanning for tags doesn't check for typed key now and
then?  Hangs for about 5 seconds.  Appears to be caused by finding include
files with "foo/**" in 'path'.  (Kalisiak, 2006 July 15)
Additional info: When using the |wildcards| ** globing, vim hangs
indefinitely on lots of directories. The |file-searching| globing, like in
":set path=/**" does not hang as often as with globing with |wildcards|, like
in ":1find /**/file".  This is for files that unix "find" can find very
quickly. Merging the 2 kinds of globing might make this an easier fix. (Ian
Kelling, 2008 July 4)

When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the
parenthesis escaped but not the space.  That's inconsistent.  Either escape
neither or both.  No escaping might be best, because it doesn't depend on
particularities of the shell. (Zvi Har'El, 2007 Nov 10) (Teemu Likonen, 2008
Jun 3)
However, for backwards compatibility escaping might be necessary.  Check if
the user put quotes around the expanded item?

A throw in a function causes missing an endif below the call. (Spiros
Bousbouras, 2011 May 16)

Error E324 can be given when a cron script has wiped out our temp directory.
Give a clear error message about this (and tell them not to wipe out /tmp).

Color for cUserLabel should differ from case label, so that a mistake in a
switch list is noticed:
    switch (i)
    {
    case 1:
    foobar:
    }

Look at http://www.gtk-server.org/ .  It has a Vim script implementation.

Netbeans problem.  Use "nc -l 127.0.0.1 55555" for the server, then run gvim
with "gvim -nb:localhost:55555:foo".  From nc do: '1:editFile!0 "foo"'.  Then
go to Insert mode and add a few lines.  Then backspacing every other time
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)

Windows installer could add a "open in new tab of existing Vim" menu entry.
Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
Just have two choices, always using one Vim and selecting between using an
argument list or opening each file in a separate tab.
(Erik Falor, 2008 May 21, 2008 Jun 26)

Windows installer: licence text should not use indent, causes bad word wrap.
(Benjamin Fritz, 2010 Aug 16)

Dos uninstal may delete vim.bat from the wrong directory (e.g., when someone
makes his own wrapper).  Add a magic string with the version number to the
.bat file and check for it in the uninstaller.  E.g.
          # uninstall key: vim7.3*

Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
2007 Feb 8)

Win32: Can't complete shell command names.  Why is setting xp_context in
set_one_cmd_context() inside #ifndef BACKSLASH_IN_FILENAME?

Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)

Win32: XPM support only works with path without spaces.  Patch by Mathias
Michaelis, 2006 Jun 9.  Another patch for more path names, 2006 May 31.
New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other
patches by Mathias, see mail Feb 22)

Win32: compiling with normal features and OLE fails.  Patch by Mathias
Michaelis, 2006 Jun 4.

Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis,
2007 Feb 18)
Patch by Alex Dobrynin, 2007 Jun 3.  Also fixes other scroll wheel problems.

Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages
label.  (Tsakiridis, 2007 Feb 18)  Patch from Ian Kelling, 2008 Aug 6.

Win32: using "gvim --remote-tab-silent fname" sometimes gives an empty screen
with the more prompt.  Caused by setting the guitablabel?  (Thomas Michael
Engelke, 2007 Dec 20 - 2008 Jan 17)

Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17)

Win32: When 'shell' is bash shellescape() doesn't always do the right thing.
Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape()
only takes 'shellslash' into account.

Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16.
Check for this and use iconv?  (Edward L. Fox, 2007 Sep 12)
Does the conversion in the other direction work when 'fileencodings' is set
properly?

Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
2007 Jun 21)

When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008
Jun 18)

If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.

Feature request: Command to go to previous tab, like what CTRL-W p does for
windows. (Adam George)

F1 - F4 in an xterm produce a different escape sequence when used with a
modifier key.  Need to catch three different sequences.  Use K_ZF1, like
K_ZHOME? (Dickey, 2007 Dec 2)

In debug mode, using CTRL-R = to evaluate a function causes stepping through
the function. (Hari Krishna Dara, 2006 Jun 28)

C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)

":lockvar" should use copyID to avoid endless loop.

When using --remote-silent and the file name matches 'wildignore' get an E479
error.  without --remote-silent it works fine. (Ben Fritz, 2008 Jun 20)

Gvim: dialog for closing Vim should check if Vim is busy writing a file.  Then
use a different dialog: "busy saving, really quit? yes / no".

Check other interfaces for changing curbuf in a wrong way.  Patch like for
if_ruby.c.

":helpgrep" should use the directory from 'helpfile'.

The need_fileinfo flag is messy.  Instead make the message right away and put
it in keep_msg?

Editing a file remotely that matches 'wildignore' results in a "no match"
error.  Should only happen when there are wildcards, not when giving the file
name literally, and esp. if there is only one name.

Test 61 fails sometimes.  This is a timing problem: "sleep 2" sometimes takes
longer than 2 seconds.

Using ":au CursorMoved * cmd" invokes mch_FullName(), which can be slow.
Can this be avoided? (Thomas Waba, 2008 Aug 24)
Also for ":w" without a file name.
The buffer has the full path in ffname, should pass this to the autocommand.

"vim -C" often has 'nocompatible', because it's set in some startup script.
Set 'compatible' after startup is done?  Patch by James Vega, 2008 Feb 7.

VMS: while editing a file found in complex, Vim will save file into the first
directory of the path and not to the original location of the file.
(Zoltan Arpadffy)

VMS: VFC files are in some cases truncated during reading (Zoltan Arpadffy)

input() completion should not insert a backslash to escape a space in a file
name?

Ruby completion is insecure.  Can this be fixed?

When 'backupskip' is set from $TEMP special characters need to be escaped.
(patch by Grembowietz, 2007 Feb 26, not quite right)
Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\(" 
will be seen as a path separator plus "\(".

gvim d:\path\path\(FILE).xml should not remove the \ before the (.
This also fails with --remote.

When doing ":quit" the Netbeans "killed" event isn't sent.  (Xavier de Gaye,
2008 Nov 10)  call netbeans_file_closed() at the end of buf_freeall(), or in
all places where buf_freeall() is called?

aucmd_prepbuf() should also use a window in another tab page.

When unloading a buffer in a BufHidden autocommand the hidden flag is reset?
(Bob Hiestand, 2008 Aug 26, Aug 27)

Substituting an area with a line break with almost the same area does change
the Visual area.  Can this be fixed? (James Vega, 2006 Sept 15)

GUI: When combining fg en bg make sure they are not equal.

Spell checking: Add a way to specify punctuation characters.  Add the
superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.

Spell checking in popup menu: If the only problem is the case of the first
character, don't offer "ignore" and "add to word list".

Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
Jun 5)

Use different romanian dictionary for spell checking. (Andrei Popescu, Nov
2008)  Use http://downloads.sourceforge.net/rospell/ro_RO.3.2.zip
Or the hunspell-ro.3.2.tar.gz file, it also has a iso-8859-2 list.

In a C file with spell checking, in "% integer" "nteger" is seen as an error,
but "]s" doesn't find it.  "nteger" by itself is found. (Ralf Wildenhues, 2008
Jul 22)

There should be something about spell checking in the user manual.

Spell menu: When using the Popup menu to select a replacement word,
":spellrepeat" doesn't work.  SpellReplace() uses setline().  Can it use "z="
somehow?  Or use a new function.

Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)

Add an option to specify the character to use when a double-width character is
moved to the next line.  Default '>', set to a space to blank it out.  Check
that char is single width when it's set (compare with 'listchars').

The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)

When showing a diff between a non-existent file and an existing one, with the
cursor in the empty buffer, the other buffer only shows the last line.  Change
the "insert" into a change from one line to many? (Yakov Lerner, 2008 May 27)

These two abbreviations don't give the same result:
	let asdfasdf = "xyz\<Left>"
	cabbr XXX <C-R>=asdfasdf<CR>
	cabbr YYY xyz<Left>

Michael Dietrich: maximized gvim sometimes displays output of external command
partly. (2006 Dec 7)

In FileChangedShell command it's no longer allowed to switch to another
buffer.  But the changed buffer may differ from the current buffer, how to
reload it then?

For Aap: include a config.arg.example file with hints how to use config.arg.

Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
only one buffer line displayed, causes display errors.

Completing with 'wildmenu' and using <Up> and <Down> to move through directory
tree stops unexpectedly when using ":cd " and entering a directory that
doesn't contain other directories.

Default for 'background' is wrong when using xterm with 256 colors.
Table with estimates from Matteo Cavalleri, 2014 Jan 10.

Setting 'background' resets the Normal background color:
   highlight Normal ctermbg=DarkGray
   set background=dark
This is undesired, 'background' is supposed to tell Vim what the background
color is, not reset it.

Linux distributions:
- Suggest compiling xterm with --enable-tcap-query, so that nr of colors is
  known to Vim.  88 colors instead of 16 works better.  See ":help
  xfree-xterm".
- Suggest including bare "vi" and "vim" with X11, syntax, etc.

Completion menu: For a wrapping line, completing a long file name, only the
start of the path is shown in the menu.  Should move the menu to the right to
show more text of the completions.  Shorten the items that don't fit in the
middle?

Accessing file#var in a function should not need the g: prepended.

When exiting detects a modified buffer, instead of opening the buffer in the
current tab, use an existing tab, if possible.  Like finding a window where
the buffer is displayed. (Antonios Tsakiridis)

When ":cn" moves to an error in the same line the message isn't shortened.
Only skip shortening for ":cc"?

Write "making vim work better" for the docs (mostly pointers): *nice*
    - sourcing $VIMRUNTIME/vimrc_example.vim
    - setting 'mouse' to "a"
    - getting colors in xterm
    - compiling Vim with X11, GUI, etc.

Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
Campbell 2006 Jul 06.

Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)

A custom completion function in a ":command" cannot be a Funcref. (Andy
Wokula, 2007 Aug 25)

Problem with using :redir in user command completion function? (Hari Krishna
Dara, 2006 June 21)

Another resizing problem when setting 'columns' and 'lines' to a very large
number. (Tony Mechelynck, 2007 Feb 6)

After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center
the cursor line.  It works OK after some other commands.

Win32: Is it possible to have both postscript and Win32 printing?

Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006
Jul 26, Gary Johnson)

Using UTF-8 character with ":command" does not work properly. (Matt Wozniski,
2008 Sep 29)

In the Netbeans interface add a "vimeval" function, so that the other side can
check the result of has("patch13").

Cursor line at bottom of window instead of halfway after saving view and
restoring.  Only with 'nowrap'. (Robert Webb, 2008 Aug 25)

Netrw has trouble executing autocommands only for a directory.  Add <isdir>
and <notisdir> to autocommand patterns?  Also <isfile>?

Add command modifier that skips wildcard expansion, so that you don't need to
put backslashes before special chars, only for white space.

Syntax HL: open two windows on the same C code, delete a ")" in one window,
resulting in highlighted "{" in that window, not in the other.

In mswin.vim: Instead of mapping <C-V> for Insert mode in a complicated way,
can it be done like ":imap <C-V> <MiddleMouse>" without negative side effects?

GTK: when the Tab pages bar appears or disappears while the window is
maximized the window is no longer maximized.  Patch that has some idea but
doesn't work from Geoffrey Antos, 2008 May 5.
Also: the window may no longer fit on the screen, thus the command line is not
visible.

When right after "vim file", "M" then CTRL-W v the windows are scrolled
differently and unexpectedly.  Caused by patch 7.2.398?

The magic clipboard format "VimClipboard2" appears in several places.  Should
be only one.

Win32, NTFS: When editing a specific infostream directly and 'backupcopy' is
"auto" should detect this situation and work like 'backupcopy' is "yes".  File
name is something like "c:\path\foo.txt:bar", includes a colon.  (Alex
Jakushev, 2008 Feb 1)

Small problem displaying diff filler line when opening windows with a script.
(David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 )

Is it allowed that 'backupext' is empty?  Problems when backup is in same dir
as original file?  If it's OK don't compare with 'patchmode'. (Thierry Closen)

Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro, 2007
Jan 1)

Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update 2008 Apr
23)

":mkview" isn't called with the right buffer argument.  Happens when using
tabs and the autocommand "autocmd BufWinLeave * mkview".  (James Vega, 2007
Jun 18)

When completing from another file that uses a different encoding completion
text has the wrong encoding.  E.g., when 'encoding' is utf-8 and file is
latin1.  Example from Gombault Damien, 2007 Mar 24.

Syntax HL: When using "nextgroup" and the group has an empty match, there is
no search at that position for another match. (Lukas Mai, 2008 April 11)

In gvim the backspace key produces a backspace character, but on Linux the
VERASE key is Delete.  Set VERASE to Backspace? (patch by Stephane Chazelas,
2007 Oct 16)

TermResponse autocommand isn't always triggered when using vimdiff. (Aron
Griffis, 2007 Sep 19)

Create a gvimtutor.1 file and change Makefiles to install it.

When 'encoding' is utf-8 typing text at the end of the line causes previously
typed characters to be redrawn.  Caused by patch 7.1.329. (Tyler Spivey, 2008
Sep 3, 11)

When Vim in an xterm owns the selection and the user does ":shell" Vim doesn't
respond to selection requests.  Invoking XtDisownSelection() before executing
the shell doesn't help.  Would require forking and doing a message loop, like
what happens for the GUI.

":vimgrep" does not recognize a recursive symlink.  Is it possible to detect
this, at least for Unix (using device/inode)?

When switching between windows the cursor is often put in the middle.
Remember the relative position and restore that, just like lnum and col are
restored. (Luc St-Louis)

Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
2010 Jun 30)

Add an option for a minimal text length before inserting a line break for
'textwidth'.  Avoids very short lines when a very long word follows.
(Kartik Agaram)


Better plugin support (not plugin manager, see elsewhere for that):
- Avoid use of feedkeys, add eval functions where needed:
  - manipulating the Visual selection?
- Add createmark(): add a mark like mM, but return a unique ID.  Need some way
  to clean them up again...  Use a name + the script ID.
  Add createmark( , 'c') to track inserts/deletes before the column.
- Plugins need to make a lot of effort, lots of mappings, to know what
  happened before pressing the key that triggers a plugin action.  How about
  keeping the last N pressed keys, so that they do not need to be mapped?
- equivalent of netbeans_beval_cb().  With an autocommand?
- Add something to enable debugging when a remote message is received.


More patches:
-   Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11)
    Needs a few tests.
-   Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
-   Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs
    patch May 10)
-   Extra argument to strtrans() to translate special keys to their name (Eric
    Arnold, 2006 May 22)
-   'threglookexp' option: only match with first word in thesaurus file.
    (Jakson A. Aquino, 2006 Jun 14)
-   Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30)
-   Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16)
-   ml_append_string(): efficiently append to an existing line. (Brad
    Beveridge, 2006 Aug 26)  Use in some situations, e.g., when pasting a
    character at a time?
-   recognize hex numbers better. (Mark Manning, 2006 Sep 13)
-   Add <AbbrExpand> key, to expand an abbreviation in a mapping. (Kana
    Natsuno, 2008 Jul 17)
-   Add 'wspara' option, also accept blank lines like empty lines for "{" and
    "}". (Mark Lundquist, 2008 Jul 18)
-   Patch to add CTRL-T to delete part of a path on cmdline. (Adek, 2008 Jul
    21)
-   Instead of creating a copy of the tutor in all the shell scripts, do it in
    vimtutor.vim. (Jan Minar, 2008 Jul 20)
-   When fsync() fails there is no hint about what went wrong.  Patch by Ben
    Schmidt, 2008 Jul 22.
-   testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008
    Sep 13)
-   Replace ccomplete.vim by cppcomplete.vim from www.vim.org?  script 1520 by
    Vissale Neang.  (Martin Stubenschrott) Asked Vissale to make the scripts
    more friendly for the Vim distribution.
    New version received 2008 Jan 6.
    No maintenance in two years...
-   Patch to open dropped files in new tabs. (Michael Trim, 2010 Aug 3)

Awaiting updated patches:
9   Mac unicode patch (Da Woon Jung, Eckehard Berns):
    8   Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
	New patch 2004 Jun 16
    - selecting proportional font breaks display
    - UTF-8 text causes display problems.  Font replacement causes this.
    - Command-key mappings do not work. (Alan Schmitt)
    - With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work.
      (Alan Schmitt)
    - remove 'macatsui' option when this has been fixed.
    - when 'macatsui' is off should we always convert to "macroman" and ignore
      'termencoding'?
9   HTML indenting can be slow.  Caused by using searchpair().  Can search()
    be used instead?  A.Politz is looking into a solution.
8   Win32: Add minidump generation. (George Reilly, 2006 Apr 24)
7   Completion of network shares, patch by Yasuhiro Matsumoto.
    Update 2004 Sep 6.
    How does this work?  Missing comments.
8   Add a few more command names to the menus.  Patch from Jiri Brezina
    (28 feb 2002).  Will mess the translations...
7   ATTENTION dialog choices are more logical when "Delete it" appears
    before "Quit".  Patch by Robert Webb, 2004 May 3.
-   Include flipcase patch: ~/vim/patches/wall.flipcase2 ?  Make it work
    for multi-byte characters.
-   Win32: add options to print dialog.  Patch from Vipin Aravind.
-   Patch to add highlighting for whitespace. (Tom Schumm, 2003 Jul 5)
    use the patch that keeps using HLF_8 if HLF_WS has not
    been given values.
    Add section in help files for these highlight groups?
8   "fg" and "bg" don't work in an xterm.  Get default colors from xterm
    with an ESC sequence.
    xterm can send colors for many things.  E.g. for the cursor:
	<Esc>]12;?<Bel>
    Can use this to get the background color and restore the colors on exit.
7   Add "DefaultFG" and "DefaultBG" for the colors of the menu. (Marcin
    Dalecki has a patch for Motif and Carbon)
-   Add possibility to highlight specific columns (for Fortran).  Or put a
    line in between columns (e.g., for 'textwidth').
    Patch to add 'hlcolumn' from Vit Stradal, 2004 May 20.
8   Add functions:
    gettext()		Translate a message.  (Patch from Yasuhiro Matsumoto)
			Update 2004 Sep 10
			Another patch from Edward L. Fox (2005 Nov 24)
			Search in 'runtimepath'?
			More docs needed about how to use this.
			How to get the messages into the .po files?
    confirm()		add "flags" argument, with 'v' for vertical
			    layout and 'c' for console dialog. (Haegg)
			    Flemming Madsen has a patch for the 'c' flag
			    (2003 May 13)
    raisewin()		raise gvim window (see HierAssist patch for
			    Tcl implementation ~/vim/HierAssist/ )
    taglist()		add argument to specify maximum number of matches.
			useful for interactive things or completion.
    col('^')            column of first non-white character.
			Can use "len(substitute(getline('.'), '\S.*', '', ''))
			+ 1", but that's ugly.
7   Add patch from Benoit Cerrina to integrate Vim and Perl functions
    better.  Now also works for Ruby (2001 Nov 10)
-   Patch from Herculano de Lima Einloft Neto for better formatting of the
    quickfix window (2004 dec 2)
7   When 'rightleft' is set, the search pattern should be displayed right
    to left as well?  See patch of Dec 26. (Nadim Shaikli)
8   Option to lock all used memory so that it doesn't get swapped to disk
    (uncrypted).  Patch by Jason Holt, 2003 May 23.  Uses mlock.
7   Add ! register, for shell commands. (patch from Grenie)
8   In the gzip plugin, also recognize *.gz.orig, *.gz.bak, etc.  Like it's
    done for filetype detection.  Patch from Walter Briscoe, 2003 Jul 1.
7   Add a "-@ filelist" argument: read file names from a file. (David
    Kotchan has a patch for it)
7   Add ":justify" command.  Patch from Vit Stradal 2002 Nov 25.
-   findmatch() should be adjusted for Lisp.  See remark at
    get_lisp_indent().  Esp. \( and \) should be skipped. (Dorai Sitaram,
    incomplete patch Mar 18)
-   For GUI Find/Replace dialog support using a regexp.  Patch for Motif
    and GTK by degreneir (nov 10 and nov 18).
-   Patch for "paranoid mode" by Kevin Collins, March 7.  Needs much more work.


Vi incompatibility:
-   Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
    Version 1.5 is in ~/src/posix/1.5. (Lynne Canal)
8   With undo/redo only marks in the changed lines should be changed.  Other
    marks should be kept.  Vi keeps each mark at the same text, even when it
    is deleted or restored. (Webb)
    Also: A mark is lost after: make change, undo, redo and undo.
    Example: "{d''" then "u" then "d''": deletes an extra line, because the ''
    position is one line down. (Veselinovic)
8   When stdin is not a tty, and Vim reads commands from it, an error should
    make Vim exit.
7   Unix Vim (not gvim): Typing CTRL-C in Ex mode should finish the line
    (currently you can continue typing, but it's truncated later anyway).
    Requires a way to make CTRL-C interrupt select() when in cooked input.
8   When loading a file in the .exrc, Vi loads the argument anyway.  Vim skips
    loading the argument if there is a file already.  When no file argument
    given, Vi starts with an empty buffer, Vim keeps the loaded file. (Bearded)
6   In Insert mode, when using <BS> or <Del>, don't wipe out the text, but
    only move back the cursor.	Behaves like '$' in 'cpoptions'.  Use a flag
    in 'cpoptions' to switch this on/off.
8   When editing a file which is a symbolic link, and then opening another
    symbolic link on the same file, Vim uses the name of the first one.
    Adjust the file name in the buffer to the last one used?  Use several file
    names in one buffer???
    Also: When first editing file "test", which is symlink to "test2", and
    then editing "test2", you end up editing buffer "test" again.  It's not
    logical that the name that was first used sticks with the buffer.
7   The ":undo" command works differently in Ex mode.  Edit a file, make some
    changes, "Q", "undo" and _all_ changes are undone, like the ":visual"
    command was one command.
    On the other hand, an ":undo" command in an Ex script only undoes the last
    change (e.g., use two :append commands, then :undo).
7   The ":map" command output overwrites the command.  Perhaps it should keep
    the ":map" when it's used without arguments?
7   CTRL-L is not the end of a section?  It is for Posix!  Make it an option.
7   Implement 'prompt' option.	Init to off when stdin is not a tty.
7   Add a way to send an email for a crashed edit session.  Create a file when
    making changes (containing name of the swap file), delete it when writing
    the file.  Supply a program that can check for crashed sessions (either
    all, for a system startup, or for one user, for in a .login file).
7   Vi doesn't do autoindenting when input is not from a tty (in Ex mode).
7   "z3<CR>" should still use the whole window, but only redisplay 3 lines.
7   ":tag xx" should move the cursor to the first non-blank.  Or should it go
    to the match with the tag?	Option?
7   Implement 'autoprint'/'ap' option.
7   Add flag in 'cpoptions' that makes <BS> after a count work like <Del>
    (Sayre).
7   Add flag in 'cpoptions' that makes operator (yank, filter) not move the
    cursor, at least when cancelled. (default Vi compatible).
7   This Vi-trick doesn't work: "Q" to go to Ex mode, then "g/pattern/visual".
    In Vi you can edit in visual mode, and when doing "Q" you jump to the next
    match.  Nvi can do it too.
7   Support '\' for line continuation in Ex mode for these commands: (Luebking)
	g/./a\		    g/pattern1/ s/pattern2/rep1\\
	line 1\		    line 2\\
	line 2\		    line 3\\
	.		    line4/
6   ":e /tmp/$tty" doesn't work.  ":e $uid" does.  Is $tty not set because of
    the way the shell is started?
6   Vi compatibility (optional): make "ia<CR><ESC>10." do the same strange
    thing.  (only repeat insert for the first line).


GTK+ GUI known bugs:
9   Crash with X command server over ssh. (Ciaran McCreesh, 2006 Feb 6)
8   GTK 2: Combining UTF-8 characters not displayed properly in menus (Mikolaj
    Machowski)  They are displayed as separate characters.  Problem in
    creating a label?
8   GTK 2: Combining UTF-8 characters are sometimes not drawn properly.
    Depends on the font size, "monospace 13" has the problem.  Vim seems to do
    everything right, must be a GTK bug.  Is there a way to work around it?
9   Can't paste a Visual selection from GTK-gvim to vim in xterm or Motif gvim
    when it is longer than 4000 characters.  Works OK from gvim to gvim and
    vim to vim.  Pasting through xterm (using the shift key) also works.
    It starts working after GTK gvim loses the selection and gains it again.
-   Gnome2: When moving the toolbar out of the dock, so that it becomes
    floating, it can no longer be moved.  Therefore making it float has been
    blocked for now.


Win32 GUI known bugs:
-   Win32: tearoff menu window should have a scrollbar when it's taller than
    the screen.
8   The -P argument doesn't work very well with many MDI applications.
    The last argument of CreateWindowEx() should be used, see MSDN docs.
    Tutorial: http://win32assembly.online.fr/tut32.html
8   In eval.c, io.h is included when MSWIN32 is defined.  Shouldn't this be
    WIN32?  Or can including io.h be moved to vim.h? (Dan Sharp)
6   Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
    of ":only" is highlighted like the cursor.  (Lipelis)
8   When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
    characters to make Asian languages work.  Win32 fonts contain both
    type of characters.
7   When font smoothing is enabled, redrawing can become very slow.  The reason
    appears to be drawing with a transparent background.  Would it be possible
    to use an opaque background in most places?
7   The cursor color indicating IME mode doesn't work properly. (Shizhu Pan,
    2004 May 9)
8   Win32: When clicking on the gvim title bar, which gives it focus, produces
    a file-changed dialog, after clicking on a button in that dialog the gvim
    window follows the mouse.  The button-up event is lost.  Only with
    MS-Windows 98?
    Try this: ":set sw ts", get enter-prompt, then change the file in a
    console, go back to Vim and click "reload" in the dialog for the changed
    file: Window moves with the cursor!
    Put focus event in input buffer and let generic Vim code handle it?
8   Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that
    comes available. (Poucet)  It works OK on Win 98 but doesn't work on Win
    NT 4.0.  Leaves a grey area where the scrollbar was.  ":set go+=r" also
    doesn't work properly.
8   When Vim is minimized and when maximizing it a file-changed dialog pops
    up, Vim isn't maximized.  It should be done before the dialog, so that it
    appears in the right position. (Webb)
9   When selecting at the more-prompt or hit-enter-prompt, the right mouse
    button doesn't give popup menu.
    At the hit-enter prompt CTRL-Y doesn't work to copy the modeless
    selection.
    On the command line, don't get a popup menu for the right mouse button.
    Let the middle button paste selected text (not the clipboard but the
    non-Visual selection)?  Otherwise CTRL-Y has to be used to copy the text.
8   When 'grepprg' doesn't execute, the error only flashes by, the
    user can hardly see what is wrong. (Moore)
    Could use vimrun with an "-nowait" argument to only wait when an error
    occurs, but "command.com" doesn't return an error code.
8   When the 'shell' cannot be executed, should give an appropriate error msg.
    Esp. for a filter command, currently it only complains the file could not
    be read.
7   Add an option to add one pixel column to the character width?  Lucida
    Console italic is wider than the normal font ("d" overlaps with next char).
    Opposite of 'linespace': 'columnspace'.
7   At the hit-enter prompt scrolling now no longer works.  Need to use the
    keyboard to get around this.  Pretend <CR> was hit when the user tries to
    scroll?
7   Scrollbar width doesn't change when selecting other windows appearance.
    Also background color of Toolbar and rectangle below vert. scrollbar.
6   Drawing text transparently doesn't seem to work (when drawing part cursor).
8   CTRL key doesn't always work in combination with ALT key.  It does work
    for function keys, not for alphabetic characters.  Perhaps this is because
    CTRL-ALT is used by Windows as AltGr?
8   CTRL-- doesn't work for AZERTY, because it's CTRL-[ for QWERTY.  How do we
    know which keyboard is being used?
7   When scrolling, and a background color is dithered, the dither pattern
    doesn't always join correctly between the scrolled area and the new drawn
    area (Koloseike).
8   When gui_init_font() is called with "*", p_guifont is freed while it might
    still be used somewhere.  This is too tricky, do the font selection first,
    then set the new font by name (requires putting all logfont parameters in
    the font name).


Athena and Motif:
6   New Motif toolbar button from Marcin Dalecki:
    - When the mouse pointer is over an Agide button the red becomes black.
      Something with the way colors are specified in the .xpm file.
    - The pixmap is two pixels smaller than it should be.  The gap is filled
      with grey instead of the current toolbar background color.
9   Can configure be changed to disable netbeans if the Xpm library is
    required and it's missing?
8   When using the resource "Vim*borderwidth 2" the widgets are positioned
    wrong.
9   XIM is disabled by default for SGI/IRIX.  Fix XIM so that 'imdisable' can
    be off by default.
9   XIM doesn't work properly for Athena/Motif. (Yasuhiro Matsumoto)  For now,
    keep XIM active at all times when the input method has the preediting
    flag.
8   X11: A menu that contains an umlaut is truncated at that character.
    Happens when the locale is "C", which uses ASCII instead of IS0-8859-1.
    Is there a way to use latin1 by default?  Gnome_init() seems to do this.
8   Perhaps use fontsets for everything?
6   When starting in English and switching the language to Japanese, setting
    the locale with ":lang", 'guifontset' and "hi menu font=", deleting all
    menus and setting them again, the menus don't use the new font.  Most of
    the tooltips work though...
7   Motif: when using a file selection dialog, the specified file name is not
    always used (when specifying a filter or another directory).
8   When 'encoding' is different from the current locale (e.g., utf-8) the
    menu strings don't work.  Requires conversion from 'encoding' to the
    current locale.  Workaround: set 'langmenu'.


Athena GUI:
9   The first event for any button in the menu or toolbar appears to get lost.
    The second click on a menu does work.
9   When dragging the scrollbar thumb very fast, focus is only obtained in
    the scrollbar itself.  And the thumb is no longer updated when moving
    through files.
7   The file selector is not resizable.  With a big font it is difficult to
    read long file names. (Schroeder)
4   Re-write the widget attachments and code so that we will not have to go
    through and calculate the absolute position of every widget every time the
    window is refreshed/changes size.  This will help the "flashing-widgets"
    problem during a refresh.
5   When starting gvim with all the default colors and then typing
    ":hi Menu guibg=cyan", the menus change color but the background of the
    pullright pixmap doesn't change colors.
    If you type ":hi Menu guibg=cyan font=anyfont", then the pixmap changes
    colors as it should.
    Allocating a new pixmap and setting the resource doesn't change the
    pullright pixmap's colors.  Why?  Possible Athena bug?


Motif GUI:
-   gui_mch_browsedir() is missing, browsedir() doesn't work nicely.
7   Use XmStringCreateLocalized() instead of XmStringCreateSimple()?
    David Harrison says it's OK (it exists in Motif 1.2).
8   Lesstif: When deleting a menu that's torn off, the torn off menu becomes
    very small instead of disappearing.  When closing it, Vim crashes.
    (Phillipps)


GUI:
9   On Solaris, creating the popup menu causes the right mouse button no
    longer to work for extending the selection. (Halevy)
9   When running an external program, it can't always be killed with CTRL-C.
    e.g., on Solaris 5.5, when using "K" (Keech).  Other 'guipty' problems on
    Solaris 2.6. (Marley)
9   On Solaris: Using a "-geometry" argument, bigger than the window where Vim
    is started from, causes empty lines below the cmdline. (raf)
8   X11 GUI: When menu is disabled by excluding 'm' from 'guioptions', ALT key
    should not be used to trigger a menu (like the Win32 version).
8   When setting 'langmenu', it should be effective immediately.  Store both
    the English and the translated text in the menu structure.  Re-generate
    the translation when 'langmenu' has changed.
8   Basic flaw in the GUI code: NextScreen is updated before calling
    gui_write(), but the GUI code relies on NextScreen to represent the state
    of where it is processing the output.
    Need better separation of Vim core and GUI code.
8   When fontset support is enabled, setting 'guifont' to a single font
    doesn't work.
8   Menu priority for sub-menus for: Amiga.
8   When translating menus ignore the part after the Tab, the shortcut.  So
    that the same menu item with a different shortcut (e.g., for the Mac) are
    still translated.
8   Add menu separators for Amiga.
8   Add way to specify the file filter for the browse dialog.  At least for
    browse().
8   Add dialog for search/replace to other GUIs?  Tk has something for this,
    use that code?  Or use console dialog.
8   When selecting a font with the font dialog and the font is invalid, the
    error message disappears too quick.
7   More features in the find/replace dialog:
    - regexp on/off
    - search in selection/buffer/all buffers/directory
       when all buffers/directory is used:
	- filter for file name
       when directory is used:
	- subdirectory on/off
	- top directory browser
8   gui_check_colors() is not called at the right moment.  Do it much later,
    to avoid problems.
8   gui_update_cursor() is called for a cursor shape change, even when there
    are mappings to be processed.  Only do something when going to wait for
    input.  Or maybe every 100 ms?
8   X11: When the window size is reduced to fit on screen, there are blank
    lines below the text and bottom scrollbar.  "gvim -geometry 80x78+0+0".
    When the "+0+0" is omitted it works.
8   When starting an external command, and 'guipty' set, BS and DEL are mixed
    up.  Set erase character somehow?
8   A dead circumflex followed by a space should give the '^' character
    (Rommel).  Look how xterm does this.
    Also: Bednar has some code for dead key handling.
    Also: Nedit 5.0.2 with USE_XMIM does it right. (Gaya)
8   The compose key doesn't work properly (Cepas).  Both for Win32 and X11.
7   The cursor in an inactive window should be hollow.  Currently it's not
    visible.
7   GUI on Solaris 2.5.1, using /usr/dt/..: When gvim starts, cursor is
    hollow, after window lowered/raised it's OK. (Godfrey)
7   When starting GUI with ":gui", and window is made smaller because it
    doesn't fit on the screen, there is an extra redraw.
8   When setting font with .Xdefaults, there is an extra empty line at the
    bottom, which disappears when using ":set guifont=<Tab>". (Chadzelek)
8   When font shape changes, but not the size, doing ":set font=" does not
    redraw the screen with the new font.  Also for Win32.
    When the size changes, on Solaris 2.5 there isn't a redraw for the
    remaining part of the window (Phillipps).
-   Flashes really badly in certain cases when running remotely from a Sun.
4   Re-write the code so that the highlighting isn't changed multiple times
    when doing a ":hi clear".  The color changes happen three or more times
    currently.  This is very obvious on a 66Mhz 486.


Win32 console:
8   Should $USERPROFILE be preferred above $HOMEDRIVE/$HOMEPATH?  No, but it's
    a good fallback, thus use:
	    $HOME
	    $HOMEDRIVE$HOMEPATH
	    SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_APPDATA, FALSE);
	    $USERPROFILE
	    SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_COMMON_APPDATA, FALSE);
	    $ALLUSERSPROFILE
	    $SYSTEMDRIVE\
	    C:\
8   Win32 console: <M-Up> and <M-Down> don't work. (Geddes)  We don't have
    special keys for these.  Should use modifier + key.
8   Win32 console: caps-lock makes non-alpha keys work like with shift.
    Should work like in the GUI version.
8   Environment variables in DOS are not case sensitive.  Make a define for
    STRCMP_ENV(), and use it when comparing environment var names.
8   Setting 'shellslash' has no immediate effect.  Change all file names when
    it is set/reset?  Or only use it when actually executing a shell command?
8   When editing a file on a Samba server, case might matter.  ":e file"
    followed by ":e FILE" will edit "file" again, even though "FILE" might be
    another one.  Set last used name in buflist_new()?  Fix do_ecmd(), etc.
8   When a buffer is editing a file like "ftp://mach/file", which is not going
    to be used like a normal file name, don't change the slashes to
    backslashes. (Ronald Hoellwarth)


Win32 console:
9   When editing a file by its short file name, it should be expanded into its
    long file name, to avoid problems like these: (Mccollister)
     1) Create a file called ".bashrc" using some other editor.
     2) Drag that file onto a shortcut or the actual executable.
     3) Note that the file name is something like BASHRC~1
     4) Go to File->Save As menu item and type ".bashrc" as the file name.
     5) Press "Yes" to indicate that I want to overwrite the file.
     6) Note that the message "File exists (add ! to override)" is displayed
	and the file is not saved.
    Use FindFirstFile() to expand a file name and directory in the path to its
    long name.
8   Also implement 'conskey' option for the Win32 console version?  Look at
    how Xvi does console I/O under Windows NT.
7   Re-install the use of $TERM and support the use of different terminals,
    besides the console.
8   Use of <altgr> modifier doesn't work?  5.3 was OK. (Garcia-Suarez/Guckes)
9   Mapping <C-S-Tab> doesn't work correctly.  How to see the difference with
    <C-S-i>?
9   tmpnam() uses file in root of file system: "\asdf".  That doesn't work on
    a Netware network drive.  Use same function as for Win32 GUI?
8   In os_win32.h, HAVE_STRICMP and HAVE_STRNICMP are defined only if __GNUC__
    is not defined.  Shouldn't that be the other way around?


Amiga:
8   In mch_inchar() should use convert_input_safe() to handle incomplete byte
    sequences.
9   In mch_expandpath() a "*" is to be expanded, but "\*" isn't.  Remove
    backslashes in result.
8   Executing a shell, only one option for 'shell' is separated.  Should do
    all options, using white space separation.


Macintosh:
-   GUI: gui_mch_browsedir() is missing.
7   Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
    Load the Perl library dynamically see Python sources file dynload_mac
    (Jack)
    dynamic linking: http://developer.apple.com/technotes/tn2002/tn2064.html
8   inputdialog() doesn't resize when giving more text lines. (David Fishburn,
    2006 Sept 28)
8   Define vim_mkdir() for Macintosh.
8   Define mch_writable() for Macintosh.
9   When DiskLock is running, using a swap file causes a crash.  Appears to be
    a problem with writing a file that starts with a dot. (Giacalone)
9   In mac_expandpath() check that handling of backslashes is done properly.


"Small" problems:
-   Can't disable terminal flow control, to enable the use of CTRL-S and
    CTRL-Q.  Add an option for it?
-   When using e_secure in do_one_cmd() mention the command being executed,
    otherwise it's not clear where it comes from.
-   When the quickfix window is open and executing ":echo 'hello'" using the
    Command-line window, the text is immediately removed by the redrawing.
    (Michael Henry, 2008 Nov 1)
    Generic solution: When redrawing while there is a message on the
    cmdline, don't erase the display but draw over the existing text.
    Other solution, redraw after closing the cmdline window, before executing
    the command.
9   For Turkish vim_tolower() and vim_toupper() also need to use utf_
    functions for characters below 0x80. (Sertacyildiz)
9   When the last edited file is a help file, using '0 in a new Vim doesn't
    edit the file as a help file.  'filetype' is OK, but 'iskeyword' isn't,
    file isn't readonly, etc.
8   When an ":edit" is inside a try command and the ATTENTION prompt is used,
    the :catch commands are always executed, also when the file is edited
    normally.  Should reset did_emsg and undo side effects.  Also make sure
    the ATTENTION message shows up.  Servatius Brandt works on this.
7   Vimtutor leaves escape sequence in terminal. This is the xterm response to
    requesting the version number.  (Yasuhiro Matsumoto)
8   When redirecting and using ":silent" the current column for displaying and
    redirection can be different.  Use a separate variable to hold the column
    for redirection.
7   The messages for "vim --help" and "vim --version" don't use
    'termencoding'.
-   Could the hit-enter prompt be avoided when a message only overlaps the
    'showcmd' area?  Clear that area when the next cmd is typed.
8   When 'scrollbind' is set, a window won't scroll horizontally if the cursor
    line is too short.  Add a word in 'scrollopt' to allow moving the cursor
    to longer line that is visible.  A similar thing is done for the GUI when
    using the horizontal scrollbar.
7   VisVim can only open one file.  Hard to solve: each opened file is passed
    with a separate invocation, would need to use timestamps to know the
    invocations belong together.
8   When giving a ":bwipeout" command a file-changed dialog may popup for this
    buffer, which is pointless.  (Mike Williams)
8   On MS-Windows ":make" doesn't show output while it is working.  Use the
    tee.exe from  http://unxutils.sourceforge.net/ ?  About 16 Kbyte in the
    UnxUtils.zip archive.
    Is it better than what we have in src/tee?
8   When doing Insert mode completion a mapping cannot recursively call
    edit(), because the completion information is global.  Put everything in
    an allocated structure?
8   Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
    ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7   mb_off2cells() doesn't work correctly on the tail byte of a double-byte
    character. (Yasuhiro Matsumoto)  It should return 1 when used on a tail
    byte, like for utf-8.  Store second byte of double-byte in ScreenLines2[]
    (like for DBCS_JPNU) and put a zero in the second byte (like for UTF-8).
7   Inside a function with "perl <<EOF" a line with "$i++" is recognized as an
    ":insert" command, causing the following "endfunction" not to be found.
    Add skipping this perl construction inside function definitions.
7   When 'ttimeoutlen' is 10 and 'timeoutlen' is 1000, there is a keycode
    "<Esc>a" and a mapping <Esc>x", when typing "<Esc>a" with half a second
    delay should not be interpreted as a keycode. (Hans Ginzel)
7   ":botright 1 new" twice causes all window heights to be changed.  Make the
    bottom window only bigger as much as needed.
7   The Cygwin and MingW makefiles define "PC", but it's not used anywhere.
    Remove? (Dan Sharp)
9   User commands use the context of the script they were defined in.  This
    causes a "s:var" argument to unexpectedly use a variable in the defining
    script, not the calling script.  Add an argument to ":command":
    "-keepcontext".  Do replace <SID>, so that a function in the defining
    script can be called.
8   The Japanese message translations for MS-Windows are called ja.sjis.po,
    but they use encoding cp932.  Rename the file and check that it still
    works.
8   A very long message in confirm() can't be quit.  Make this possible with
    CTRL-C.
8   "gf" always excludes trailing punctuation characters.  file_name_in_line()
    is currently fixed to use ".,:;!".  Add an option to make this
    configurable?
8   'hkmap' should probably be global-local.
8   Using ":s" in a function changes the previous replacement string.  Save
    "old_sub" in save_search_patterns()?
8   Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+"
    is a multi-byte character.
8   When appending to a file and 'patchmode' isn't empty, a backup file is
    always written, even when the original file already exists.
9   When getting focus while writing a large file, could warn for this file
    being changed outside of Vim.  Avoid checking this while the file is being
    written.
7   The message in bt_dontwrite_msg() could be clearer.
8   The script ID that is stored with an option and displayed with ":verbose
    set" isn't reset when the option is set internally.  For example when
    'foldlevel' is set from 'foldlevelstart'.
8   Also store the line number with the script ID and use it for ":verbose",
    so that "set nocompatible" is found when it changes other option values.
    When an option is set indirectly mention the command?  E.g. when
    ":diffsplit" sets 'foldmethod'.
8   In the fileformat dialog, "Cancel" isn't translated.  Add a global
    variable for this. (Eduardo Fernandez)
9   When editing a file with 'readonly' set, there is no check for an existing
    swap file.  Then using ":write" (without making any changes) doesn't give
    a warning either.  Should check for an existing swap file without creating
    one. Unfinished patch by Ian Kelling, 2008 July 14.
7   When 'showbreak' is set, the amount of space a Tab occupies changes.
    Should work like 'showbreak' is inserted without changing the Tabs.
7   When 'mousefocus' is set and switching to another window with a typed
    command, the mouse pointer may be moved to a part of the window that's
    covered by another window and we lose focus.  Only move in the y
    direction, not horizontally?
8   ":hardcopy":
    - Using the cterm_color[] table is wrong when t_colors is > 16.
    - Need to handle unprintable characters.
    - Win32: On a B&W printer syntax highlighting isn't visible.  Perform
      dithering to make grey text?
    - Add a flag in 'printoptions' to add an empty page to make the total
      number even.  "addempty"? (Mike Williams)
    - Respect 'linebreak'.  Perhaps also 'showbreak'?
    - Should interpret CTRL-L as a page break.
    - Grey line numbers are not always readable.  Add field in 'printoptions'.
      Default to black when no syntax highlighting.
    - Be able to print a window in diff mode.
    - Be able to specify a colorscheme to use for printing.  And a separate
      one for B&W printing (if that can be detected).
8   When 'virtualedit' is "block,insert" and encoding is "utf-8", selecting a
    block of one double-wide character, then "d" deletes only half of it.
8   When 'virtualedit' is set, should "I" in blockwise visual mode also insert
    in lines that don't extend into the block?
8   With 'virtualedit' set, in Insert mode just after the end of line, CTRL-O
    yh does not yank the last character of the line. (Pavel Papushev)
    Doing "hl" first appears to make it work.
8   With 'virtualedit' set it's possible to move into the blank area from
    'linebreak'.
8   With 'virtualedit' set and 'selection' "exclusive", a Visual selection
    that ends in or after a tab, "d" doesn't delete (part of) the tab.
    (Helmut Stiegler)
9   When jumping to a tag, the search pattern is put in the history.  When
    'magic' is on, the pattern may not work.  Translate the pattern depending
    on p_magic when putting it in the history?  Alternative: Store value of
    'magic' in history.  (Margo)
9   optwin.vim: Restoring a mapping for <Space> or <CR> is not correct for
    ":noremap".  Add "mapcmd({string}, {mode})?  Use code from ":mkexrc".
9   incsearch is incorrect for "/that/<Return>/this/;//" (last search pattern
    isn't updated).
9   term_console is used before it is set (msdos, Amiga).
9   Get out-of-memory for ":g/^/,$s//@/" on 1000 lines, this is not handled
    correctly.  Get many error messages while redrawing the screen, which
    cause another redraw, etc.
8   [<C-I> doesn't work when '*' is in 'iskeyword'.  find_pattern_in_path()
    must escape special characters in the pattern.
8   Vim can overwrite a read-only file with ":w!".  ":w" can't overwrite an
    existing file, "w!" can, but perhaps not a read-only file?  Then use
    ":w!!" for that.
    Or ask for permission to overwrite it (if file can be made writable) and
    restore file to readonly afterwards.
    Overwriting a file for which a swap file exists is similar issue.
7   When compiled with "xterm_clipboard", startup can be slower and might get
    error message for invalid $DISPLAY.  Try connecting to the X server in the
    background (forked), so that Vim starts up quicker?  Connect as soon as
    the clipboard is to be used (Visual select mode starts, paste from
    clipboard)
7   X11: Some people prefer to use CLIPBOARD instead of PRIMARY for the normal
    selection.  Add an "xclipboard" argument to the 'clipboard' option? (Mark
    Waggoner)
8   For xterm need to open a connection to the X server to get the window
    title, which can be slow.  Can also get the title with "<Esc>[21t", no
    need to use X11 calls.  This returns "<Esc>]l{title}<Esc>\".
6   When the xterm reports the number of colors, a redraw occurs.  This is
    annoying on a slow connection.  Wait for the xterm to report the number of
    colors before drawing the screen.  With a timeout.
8   When the builtin xterm termcap contains codes that are not wanted, need a
    way to avoid using the builtin termcap.
8   Xterm sends ^[[H for <Home> and ^[[F for <End> in some mode.  Also
    recognize these keys?  Mostly useful for xterm simulators, like gnometerm.
    See http://dickey.his.com/xterm/xterm.faq.html#xterm_pc_style.
8   For xterm also recognize keypad up/down/left/right and insert.
8   '[ and '] should be set to start/end of line when using a linewise operator
    (e.g., ":w").
8   CTRL-A can't handle big "long" numbers, they become negative.  Check for
    "-" character, if not present, use unsigned long.
8   Add suspending with CTRL-Z at the "more" prompt, and when executing a long
    script in do_cmdline().
8   When using 'hidden', many swap files will be open.  When Vim runs into the
    maximum number of open files, error messages will appear.  Detect that
    this problem is present, and close any hidden files that don't have
    changes.
8   With 'viminfo' set such that the ".viminfo" file is written on a FAT
    filesystem, an illegal file name may be created: ".vim".
8   For each buffer that is opened, the viminfo file is opened and read to
    check for file marks.  This can be slow.
7   In xterm, recognize both vt100 and vt220 cursor keys.  Change
    add_termcode() to not remove an existing entry for a name, when it's
    needed.
    Need a generic solution to recognize different codes for the same key.
8   Core dump within signal function: gdb doesn't show stack backtrace!  Option
    to skip catch_signals()?
9   Repeating a "cw" with "." doesn't work if the text was pasted from the
    clipboard. (Thomas Jones)  It's because the menu/toolbar item exits Insert
    mode and uses "gP".  How to fix this without breaking inserting a block of
    text?
8   In Replace mode pasting from the clipboard (using menu or toolbar) inserts
    all the text.  Add ":rmenu"?
8   Pasting with the mouse in Replace mode inserts the text, instead of
    overwriting, when it is more than one line.  Same for using <C-R>.
9   CTRL-E and CTRL-Y don't work in small window when 'so' is 4 and lines are
    wrapping (Acevedo/in.226).  E.g., when using CTRL-E, window height 7,
    window might actually scroll down when last line of buffer is displayed.
    --> Remember if the previous command was "cursor follows screen" or
    "screen follow cursor" and use this in cursupdate().
7   tilde_replace() can only handle "~/", should also do "~user/".
    Get the list of home directories (from /etc/passwd?  Use getpwent()) and
    use some clever algorithm to match a path with that.  Find common strings
    in the list?
8   When dragging status line with mouse, sometimes a jump when first clicking
    on the status line (caused by 'winheight').  Select window on button up,
    instead of on button down.
8   Dragging the status line doesn't scroll but redraw.
9   Evaluating 'statusline' in build_stl_str_hl() does not properly check for
    reaching the end of the available buffer.
    Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006
    May 14)
8   When performing incremental search, should abort searching as soon as a
    character is typed.
8   When the value of $MAKE contains a path, configure can't handle this.
    It's an autoconf bug.  Remove the path from $MAKE to work around it.
8   How to set VIMRC_FILE to \"something\" for configure?  Why does this not
    work: CFLAGS='-DVIMRC_FILE=\"/mydir/myfile\"' ./configure
8   The temporary file is sometimes not writable.  Check for this, and use an
    alternate name when it isn't.  Or add the 'temptemplate' option: template
    for the temp file name ":set temptemplate=/usr/tmp/?????.tmp".
    Also: Win32 version uses Windows temp directory, which might not work for
    cygwin bash.
7   Get error "*, \+ or \( operand could be empty" for pattern "\(.\)\1\{3}".
    Remember flags for backreferences.
7   When switching to Daylight Saving Time, Vim complains that a file has been
    changed since last read.  Can we use a function that uses GMT?
7   When completing an environment variable after a '$', check for file names
    that contain a '$' after all have been found.
8   When "cm" termcap entry is missing, starting gvim shouldn't complain about
    it. (Lohner)  Try out with "vt100" entry, cm replaced with cX.
7   When an include file starts with "../", the check for already visiting
    this file doesn't work.  Need to simplify the file name.
7   The names and comments for the arguments of do_browse() are confusing.
    "dflt" isn't the default file name when "initdir" is not NULL and
    "initdir" is the default path to be used.
7   When 'scrolloff' is exactly half the window height, "j" causes a scroll of
    two lines at a time.  "k" doesn't do this. (Cory T. Echols)
8   When write_viminfo() is used while there are many orphaned viminfo
    tempfiles writing the viminfo file fails.  Give a clear error message so
    that the user knows he has to delete the files.
7   It's possible to redefine a script-local function with ":func
    <SNR>123_Test()". (Krishna)  Disallow this.


I can't reproduce these (if you can, let me know how!):
9   NT 4.0 on NTFS file system: Editing ".bashrc" (drag and drop), file
    disappears.  Editing ".xyz" is OK.  Also, drag&drop only works for three
    files. (McCollister)


Problems that will (probably) not be solved:
-   GTK: when using the popup menu with spelling suggestions and releasing the
    right mouse button before the menu appears selecting an item with the
    right mouse button has no effect.  GTK does not produce an event for this.
-   GTK 2: Cannot use the file selector.  When using it many things become
    slow.  This is caused by some code in GTK that writes
    ~/.recently-used.xbel every time an event is handled.  It assumes the main
    loop is never quit, which is a wrong assumption.  Also, it overwrites the
    file with different file permissions, which is a privacy issue.  This
    needs to be fixed in GTK.  A solution in Vim would be really complicated.
    (2008 Jul 31)  This appears to be fixed in Vim 7.3.
-   xterm title: The following scenario may occur (esp. when running the Vim
    test script): Vim 1 sets the title to "file1", then restores the title to
    "xterm" with an ESC sequence when exiting.  Vim 2 obtains the old title
    with an X library call, this may result in "file1", because the window
    manager hasn't processed the "xterm" title yet.  Can apparently only be
    worked around with a delay.
-   In a terminal with 'mouse' set such that the mouse is active when entering
    a command line, after executing a shell command that scrolls up the
    display and then pressing ":": Selecting text with the mouse works like
    the display wasn't scrolled.  Vim doesn't know how much the external
    command scrolled up the display.  Use Shift to select text.
-   X windows: When $DISPLAY points to a X server where there is no access
    permission, trying to connect to the X server causes an error message.
    XtOpenDisplay() prints this directly, there is no way to avoid it.
-   X windows: Setting 'guifontset' to an illegal value sometimes crashes Vim.
    This is caused by a fault in a X library function, can't be solved in Vim.
-   Win32 tcl: has("tcl") hangs when the tcl84.dll is from cygwin.
-   Motif: When adding a menu item "Find this &Symbol", the "s" in "this" will
    be underlined, instead of in "Symbol".  Motif doesn't let us specify which
    character gets the highlighting.
-   Moving the cursor removes color in color-xterm.  This is a color-xterm
    problem!  color-xterm ver. 6.1 beta 3 and later work properly.
-   In zsh, "gvim&" changes the terminal settings.  This is a zsh problem.
    (Jennings)
-   Problem with HPterm under X: old contents of window is lost (Cosentino).
-   Amiga: When using quickfix with the Manx compiler we only get the first 25
    errors.  How do we get the rest?
-   Amiga: The ":cq" command does not always abort the Manx compiler.  Why?
-   Linux: A file with protection r--rw-rw- is seen readonly for others.  The
    access() function in GNU libc is probably wrong.
-   When doing a CTRL-Z and typing a command for the shell, while Vim is busy
    (e.g. writing a file), the command for the shell is sometimes eaten by Vim,
    because the terminal mode is changed from RAW to CBREAK.
-   An old version of GNU tgoto can't handle the terminfo code for "AF".  The
    "%p1" is interpreted as "%p" and "1", causing color not to be working.
    Fix: Change the "%p1" in the "AF" and "AB" terminfo entries to "%p".
    (Benzinger).
-   When running an external command from the GUI, typeahead is going to that
    program, not to Vim.  It looks like the shell eats the characters, Vim
    can't get back what the external command didn't use.
-   Win32 GUI: Error code from external command not returned in shell_error.
    It appears that cmd.exe and command.com don't return an error code.
-   Win32 GUI: The Toolbar is a bit too high when the flat style is being
    used.  We don't have control over the height of the Toolbar.
-   Win32: All files created on the day of switching from winter to summer
    time cause "changed since editing started" messages.  It goes away when
    the file is written again the next day, or the timezone is adjusted.
    DJGPP version is OK. (Zaimi)  Looks like a problem with the Win32 library.
    Rebooting doesn't help.  Time stamps look OK in directory. (Penn)
    Is this on FAT (stores wall clock time) or NTFS (stores UTS)?
-   Win32, MS-Windows XP: $HOME uses the wrong drive when the user profiles
    are not on the boot disk.  This is caused by a wrong value of $HOMEDRIVE.
    This is a bug in XP, see MSKB article 818134.
-   Win32, MS-Windows: expanding plugin/**/*.vim also picks up
    dir/ctags.vim,v.  This is because the short file name is something like
    "ctags~1.vim" and that matches the pattern.
-   SunOS 5.5.1 with Motif: The file open dialog does not have a horizontal
    scroll bar for the "files" selection.  This is a problem in the Motif
    libraries, get a patch from Sun.
-   Solaris 2.6 with GTK and Perl: gvim crashes when started.  Problem with X
    input method called from GDK code.  Without Perl it doesn't crash.
-   VMS: Vimdiff doesn't work with the VMS diff, because the output looks
    different.  This makes test 47 fail.  Install a Unix-compatible diff.
-   Win32 GUI: mouse wheel always scrolls rightmost window.  The events arrive
    in Vim as if the rightmost scrollbar was used.
-   GTK with Gnome: Produces an error message when starting up:
	Gdk-WARNING **: locale not supported by C library
    This is caused by the gnome library gnome_init() setting $LC_CTYPE to
    "en_US".  Not all systems support this locale name, thus causing the
    error.  Hopefully a newer version of GTK/Gnome fixes this problem.
-   GTK 2: With this mapping the hit-enter prompt is _sometimes_ below the
    screen, at other times there is a grey area below the command line:
	:nmap <F11> :if &guioptions=~'m' \| set guioptions-=m \| else \| set guioptions+=m \| endif<cr>
-   GTK: When pasting a selection from Vim to xclipboard gvim crashes with a
    ABRT signal.  Probably an error in the file gdkselection.c, the assert
    always fails when XmbTextListToTextProperty() fails. (Tom Allard)
-   GTK 2: gives an assertion error for every non-builtin icon in the toolbar.
    This is a GTK 2.4.x bug, fixed in GTK 2.4.2. (Thomas de Grenier de Latour)
-   When using an xterm that supports the termresponse feature, and the 't_Co'
    termcap option was wrong when Vim started, it will be corrected when the
    termresponse is received.  Since the number of colors changes, the
    highlighting needs to be initialized again.  This may cause colors defined
    in the vimrc file to be lost.
-   On Windows NT 4.0 the number of files passed to Vim with drag&drop and
    "Edit with Vim" is limited.  The maximum command line length is 255 chars.

---------------------  extensions and improvements ----------------------
						    *extensions-improvements*

Most interesting new features to be added when all bugs have been fixed:
-   Using ":exe edit fname" has escaping problems.  Use ":edit ++(fname)".
    Thus use "++=" to give arguments as expressions, comma separated as if
    calling a function.
    With options: ":edit ++(['!', '++enc=abc'], ['+/pat'], fname)".
    Alternative: Make a function for Ex commands: cmd_edit().
-   Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd".  Block
    can be selected with CTRL-V.  Allow '$' (end of line) for col2.
-   ECLIPSE plugin.  Problem is: the interface is very complicated.  Need to
    implement part in Java and then connect to Vim.  Some hints from Alexandru
    Roman, 2004 Dec 15.  Should then also work with Oracle Jdeveloper, see JSR
    198 standard http://www.jcp.org/en/jsr/detail?id=198.
    Eclim does it: http://eclim.sourceforge.net/  (Eric Van Dewoestine)
    Plugin that uses a terminal emulator: http://vimplugin.sf.net
    And another one: http://www.satokar.com/viplugin/index.php
-   STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
    Especially when using the scrollbar.  Typing a cursor-movement command
    scrolls back to where the cursor is.
-   Scroll commands by screen line. g CTRL-E and g CTRL-Y ?  Requires the
    first line to be able to start halfway.
8   Add a command to jump to a certain kind of tag.  Allow the user to specify
    values for the optional fields.  E.g., ":tag size type=m".
    Also allow specifying the file and command, so that the result of
    taglist() can be used.
-   X11: Make it possible to run Vim inside a window of another program.
    This can be done with XReparentWindow().  But how exactly?


Documentation:
8   List of Vim runtime directories.  dotvim.txt from Charles Campbell, 2007
    Feb 20.
8   The GUI help should explain the Find and Find/Replace dialogs.  Add a link
    to it from ":promptrepl" and ":promptfind".
8   List of options should mention whether environment variables are expanded
    or not.
8   Extend usr_27.txt a bit. (Adam Seyfarth)
9   Make the Reference Manual more precise.  For each command mention:
    - change to cursor position and curswant
    - if it can be undone (u/CTRL-R) and redone (.)
    - how it works for folded lines
    - how it works with multi-byte characters
9   In change.txt, remark about Javadoc isn't right.  Right alignment would
    work too.
8   Spread the windows commands over the other files.  For example, ":stag"
    should be with ":tag".  Cross-link with tags to avoid too much double
    text.
8   Add tags for all features, e.g. "gui_running".
7   MS-Windows: When a wrong command is typed with an ALT key, give a hint to
    look at the help for 'winaltkeys'.
7   Add a help.vim plugin that maps <Tab> to jump to the next tag in || and
    <C-Tab> (and <S-Tab>) to the previous tag.
    Patch by Balazs Kezes, 2007 Dec 30.  Remark from A. Politz.
-   Check text editor compendium for vi and Vim remarks.


Help:
-   First try using the ":help" argument literally, before using it as a
    pattern.  And then match it as part of a tag.
-   When a help item has multiple matches make it possible to use ":tn" to go
    to the other matches.
-   Support a way to view (and edit) .info files.
-   Implement a "sticky" help window, some help text lines that are always
    displayed in a window with fixed height. (Guckes)  Use "~/.vimhelp" file,
    user can edit it to insert his favorite commands, new account can contain a
    default contents.
-   Make 'winminheight' a local option, so that the user can set a minimal
    height for the help window (and other windows).
-   ":help :s^I" should expand to ":help :substitute".
-   Make the help key (<F1>) context sensitive?
-   Learn mode: show short help while typing commands.


User Friendlier:
8   Windows install with install.exe: Use .exe instead of .bat files for
    links, so that command line arguments are passed on unmodified? (Walter
    Briscoe)
8   Windows install: Be able to associate Vim with a selection of file types?
8   Windows uninstall: Have uninstal.c delete the vimfiles directories that
    dosinst.c creates.  List the contents of the directory (recursively) if
    the user asks for it.  Requires an implementation of "rm -rf".
8   Remember the name of the vimrc file that was used (~/.vimrc, $VIM/_vimrc,
    $HOME/_vimrc, etc.) and add "edit vimrc" to the File menu.
-   Add a way to save local settings and mappings into a new plugin file.
    ":mkplugin <file>"?
-   Add mappings local to a window: ":map <window> ..."?
9   Add buffer-local menu.  Should offer a choice between removing the menu or
    disabling it.  Be careful that tear-offs don't disappear (keep one empty
    item?).
    Alternative: use BufEnter and BufLeave autocommands.
8   make a vimtutor script for Amiga and other systems.
7   When Vim detects a file is being edited elsewhere and it's a gvim session
    of the same user it should offer a "Raise" button, so that the other gvim
    window can be displayed. (Eduard)
8   Support saving and restoring session for X windows?  It should work to do
    ":mksession" and use "-S fname" for the restart command.  The
    gui_x11_wm_protocol_handler() already takes care of the rest.
    global_event_filter() for GTK.


Tab pages:
9   GUI implementation for the tab pages line for other systems.
7   GUI: Control over the appearance of the text in the labels (bold, color,
    font, etc.)
8   Make GUI menu in tab pages line configurable.  Like the popup menu.
8   balloons for the tab page labels that are shortened to show the full path.
7   :tabdup	 duplicate the tab with all its windows.
7   Option to put tab line at the left or right?  Need an option to specify
    its width.  It's like a separate window with ":tabs" output.
8   Add local options for each tab page?  E.g., 'diffopt' could differ between
    tab pages.
7   Add local highlighting for each tab page?
7   Add local directory for tab pages?  How would this interfere with
    window-local directories?


Spell checking:
-   Support more regions? Caolan McNamara argues it's needed for es_XX.
    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777    
-   Unicode defines another quote character: 0x2019.  Use it as an equivalent
    of a single quote, thus use it as a word character like a quote and match
    with words, replacing the curly quote with a single quote.
-   Could filter &eacute; things for HTML before doing spell checking.
    Similarly for TeX.
-   The Hungarian spell file uses four extra characters in the FOL/UPP/LOW
    items than other spell files with the ISO-8859-2 encoding, that causes
    problem when changing 'spelllang'.  There is no obvious way to fix this.
-   Considering Hunspell 1.1.4:
    What does MAXNGRAMSUGS do?
    Is COMPLEXPREFIXES necessary when we have flags for affixes?
-   Support spelling words in CamelCase as if they were two separate words.
    Requires some option to enable it. (Timothy Knox)
-   There is no Finnish spell checking file.  For openoffice Voikko is now
    used, which is based on Malaga: http://home.arcor.de/bjoern-beutel/malaga/
    (Teemu Likonen)
8   ":mkspell" still takes much too long in Hungarian dictionary from
    hunspell.  Only solution appears to be to postpone secondary suffixes.
8   Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
    WFP_COMPPERMIT and WFP_COMPFORBID
8   implement use of <compoptions> in .spl file:
    implement CHECKCOMPOUNDREP: when a compound word seems to be OK apply REP
    items and check if the result is a valid word.
    implement CHECKCOMPOUNDDUP
    implement CHECKCOMPOUNDTRIPLE
    Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
    How is it supposed to work?
-   Add a command the repeats ]s and z=, showing the misspelled word in its
    context.  Thus to spell-check a whole file.
-   suggestion for "KG" to "kg" when it's keepcase.
-   For flags on affixes: Use a "AFFCOMPSET" flag; means the compound flags of
    the word are not used.
-   Support breakpoint character ? 0xb7 and ignore it?  Makes it possible to
    use same wordlist for hyphenation.
-   Compound word is accepted if nr of words is <= COMPOUNDWORDMAX OR nr of
    syllables <= COMPOUNDSYLMAX.  Specify using AND in the affix file?
-   NEEDCOMPOUND also used for affix?  Or is this called ONLYINCOMPOUND now?
    Or is ONLYINCOMPOUND only for inside a compound, not at start or end?
-   Do we need a flag for the rule that when compounding is done the following
    word doesn't have a capital after a word character, even for Onecap words?
-   New hunspell home page: http://hunspell.sourceforge.net/
    - Version 1.1.0 is out now, look into that.
    - Lots of code depends on LANG, that isn't right.  Enable each mechanism
      in the affix file separately.
    - Example with compounding dash is bad, gets in the way of setting
      COMPOUNDMIN and COMPOUNDWORDMAX to a reasonable value.
    - PSEUDOROOT == NEEDAFFIX
    - COMPOUNDROOT -> COMPOUNDED?  For a word that already is a compound word
	    Or use COMPOUNDED2, COMPOUNDED3, etc.
-   CIRCUMFIX: when a word uses a prefix marked with the CIRCUMFIX flag, then
    the word must also have a suffix marked with the CIRCUMFIX flag.  It's a
    bit primitive, since only one flag is used, which doesn't allow matching
    specific prefixes with suffixes.
    Alternative:
	PSFX {flag} {pchop} {padd} {pcond} {schop} {sadd}[/flags] {scond}
    We might not need this at all, you can use the NEEDAFFIX flag and the
    affix which is required.
-   When a suffix has more than one syllable, it may count as a word for
    COMPOUNDWORDMAX.
-   Add flags to count extra syllables in a word.  SYLLABLEADD1 SYLLABLEADD2,
    etc.?  Or make it possible to specify the syllable count of a word
    directly, e.g., after another slash: /abc/3
-   MORPHO item in affix file: ignore TAB and morphological field after
    word/flags and affix.
-   Implement multiple flags for compound words and CMP item?
    Await comments from other spell checking authors.
-   Also see tklspell: http://tkltrans.sourceforge.net/
8   Charles Campbell asks for method to add "contained" groups to existing
    syntax items (to add @Spell).
    Add ":syntax contains {pattern} add=@Spell" command?  A bit like ":syn
    cluster" but change the contains list directly for matching syntax items.
-   References: MySpell library (in OpenOffice.org).
	http://spellchecker.mozdev.org/source.html
	http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
      author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
8   It is currently not possible to mark "can not" as rare, because "can" and
    "not" are good words.  Find a way to let "rare" overrule "good"?
8   Make "en-rare" spell file?  Ask Charles Campbell.
8   The English dictionaries for different regions are not consistent in their
    use of words with a dash.
7   Insert mode completion mechanism that uses the spell word lists.
8   Add hl groups to 'spelllang'?
	:set spelllang=en_us,en-rare/SpellRare,en-math/SpellMath
    More complicated: Regions with different languages?  E.g., comments
    in English, strings in German (po file).


Diff mode:
9   When making small changes, e.g. deleting a character, update the diff.
    Possibly without running diff.
8   Also show difference with the file when editing started?  Should show what
    can be undone. (Tom Popovich)

Folding:
    (commands still available: zI zJ zK zp zP zq zQ zV zy zY;
    secondary: zB zS zT zZ, z=)
8   Vertical folds: looks like vertically split windows, but the cursor moves
    through the vertical separator, separator moves when scrolling.
8   Add "z/" and "z?" for searching in not folded text only.
8   When a closed fold is displayed open because of 'foldminlines', the
    behavior of commands is still like the fold is closed.  How to make the
    user aware of this?
8   Add an option 'foldskip' with values like 'foldopen' that specifies which
    commands skip over a closed fold.
8   "H" and "L" count buffer lines instead of window lines. (Servatius Brandt)
8   Add a way to add fold-plugins.  Johannes Zellner has one for VB.
7   When using manual folding, the undo command should also restore folds.
-   Allow completely hiding a closed fold.  E.g., by setting 'foldtext' to an
    empty string.  Require showing a character in 'foldcolumn' to avoid the
    missing line goes unnoticed.
    How to implement this?
-   When pressing the down arrow of a scrollbar, a closed fold doesn't scroll
    until after a long time.  How to make scrolling with closed folds
    smoother?
-   When creating a session, also store folds for buffers in the buffer list,
    using the wininfo in wi_folds.
-   When currently editing the first file in the argument list the session
    file can contain:
	args version.c main.c
	edit version.c
    Can editing version.c twice be avoided?
-   'foldmethod' "textobject": fold on sections and paragraph text objects.
-   "zuf": undo change in manual fold. "zUf" redo change in manual fold.  How
    to implement this?
-   "zJ" command: add the line or fold below the fold in the fold under the
    cursor.
-   'foldmethod' "syntax": "fold=3" argument: set fold level for a region or
    match.
-   Apply a new foldlevel to a range of lines. (Steve Litt)

Multi-byte characters:
-   When editing a file with both utf-8 and latin1 text Vim always falls back
    to latin1.  Add a command to convert the latin1 characters to utf-8?
	:unmix utf-8,latin1 filename
    Would only work when 'encoding' is utf-8.
9   When the tail byte of a double-byte character is illegal (e.g., a CR), the
    display is messed up (Yasuhiro Matsumoto).  Should check for illegal
    double-byte characters and display them differently (display each single
    byte).
9   'fenc' in modeline problem: add option to reload the file when 'fenc' is
    set to a different value in a modeline?  Option can be default on.  Could
    it be done with an autocommand?
8   Add an item in 'fileencodings' to check the first lines of a file for
    the encoding.  See Python PEP: http://www.python.org/peps/pep-0263.html.
    To avoid getting a wrong encoding only accept something Emacs-like:
    "-*- coding: enc-na_me.foo -*-" and "-*- coding= enc-na_me.foo -*-"
    Match with "-\*-\s*coding[:=]\s*\([::word::-_.]\+\)\s*-\*-" and use first
    item.
8   Add an item in 'fileencodings' to check the first line of an XML file for
    the encoding.  <?xml version="1.0" encoding="UTF-8"?>  Or "charset=UTF-8"?
    For HTML look for "charset=utf-8".
8   The quickfix file is read without conversion, thus in 'encoding'.  Add an
    option to specify the encoding of the errorfile and convert it.  Also for
    ":grep" and ":helpgrep".
    More generic solution: support a filter (e.g., by calling a function).
8   When a file was converted from 'fileencoding' to 'encoding', a tag search
    should also do this on the search pattern. (Andrzej M. Ostruszka)
8   When filtering changes the encoding 'fileencoding' may not work.  E.g.,
    when using xxd and 'fileencoding' is "utf-16".  Add an option to set a
    different fileencoding for filter output?
7   When converting a file fails, mention which byte could not be converted,
    so that the user can fix the problem.
8   Add configure option to be able to disable using the iconv library. (Udo
    Schweigert)
9   'aleph' should be set to 1488 for Unicode. (Zvi Har'El)
8   Should add test for using various commands with multi-byte characters.
8   'infercase' doesn't work with multi-byte characters.
8   toupper() function doesn't handle byte count changes.
7   Searching and composing characters:
    When searching, should order of composing characters be ignored?
    Add a special item to match with a composing character, so that composing
    characters can be manipulated.
8   Should implement 'delcombine' for command line editing.
8   Detect overlong UTF-8 sequences and handle them like illegal bytes.
8   ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte
    characters.
8   UTF-8: "r" in Visual mode doesn't take composing characters.
8   UTF-8: When there is a precomposed character in the font, use it instead
    of a character and a composing character.  See xterm for an example.
7   When a character can't be displayed, display its digraph instead.
    'display' option to specify this.
7   Use ideas for nl_langinfo() from Markus Kuhn in enc_default():
    (www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c)
-   GTK and Win32: Allow selecting fonts for 'guifontset' with the
    fontselector somehow.
-   GTK and Win32: make it possible to set the font for the menu to make it
    possible to have 'encoding' different from the current locale.
-   dbcs_class() only works for Japanese and Korean.  Implement this for
    other encodings.  The "euc-jp" and "euc-kr" choices might be wrong.
-   Find some way to automatically select the right GUI font or fontset,
    depending on the default value of 'encoding'.
    Irrelevant in the GTK+ 2 GUI so long as UTF-8 is used.
    For Windows, the charset_pairs[] table could be used.  But how do we know
    if a font exists?
-   Do keyboard conversion from 'termencoding' to 'encoding' with
    convert_input() for Mac GUI.
-   Add mnemonics from RFC1345 longer than two characters.
    Support CTRL-K _{mnemonic}_
-   Make 'breakat' accept multi-byte characters.  Problem: can't use a lookup
    table anymore (breakat_flags[]).
    Simplistic solution: when 'formatoptions' contains "m" also break a line
    at a multi-byte character >= 0x100.
-   Add the possibility to enter mappings which are used whenever normal text
    could be entered.  E.g., for "f" command.  But not in Normal mode.  Sort
    of opposite of 'langmap'.  Use ":amap" command?
-   When breaking a line, take properties of multi-byte characters into
    account.  The "linebreak" program from Bruno Haible can do it:
    ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
    But it's very complicated...


Printing:
7   Implement "undercurl" for printing.
-   Add "page width" to wrap long lines.
-   Win32: use a font dialog for setting 'printfont'.  Can reuse the code for
    the 'guifont' dialog, put the common code in a separate function.
-   Add the file timestamp to the page header (with an option). (George
    Reilly)
-   Win32: when 'printfont' is empty use 'guifont'.
-   Unix: Use some dialog box to do the obvious settings (paper size, printer
    name, portrait/landscape, etc).
-   PostScript: Only works for text that can be converted to an 8-bit
    character set.  How to support Unicode fully?
-   Allow specifying the paper size, instead of using a standard size.  Same
    units as for the margins.
-   Support right-to-left text?
8   Make the foreground color darkening function preserve the hue of the
    color.


Syntax highlighting:
8   Make ":syn off" use 'runtimepath' instead of $VIMRUNTIME. (Gary Johnson)
    Should do the same for ":syn on" and ":syn manual".
8   Support "containedin" argument for ":syn include", so that the defined
    cluster can be added to existing syntax items.
8   C syntax: Don't highlight {} as errors inside () when used like this:
    "({ something })", often used in GCC code.
7   Add a "startgroup" to a region.  Used like "nextgroup" inside the region,
    preferred item at the start of the region. (Charles Campbell)
8   When editing a new file without a name and giving it a name (by writing
    it) and 'filetype' is not set, detect the filetype.  Avoid doing it for
    ":wq file".
7   For "nextgroup" we have skipwhite, skipnl and skipempty.  It would be
    really nice to be able to skip with a pattern.  Or skip with a syntax
    group. (Nikolai Weibull, 2007 Feb 27)
8   Make conversion to HTML faster (Write it in C or pre-compile the script).
9   There is still a redraw bug somewhere.  Probably because a cached state is
    used in a wrong way.  I can't reproduce it...
7   Be able to change only the background highlighting.  Useful for Diff* and
    Search highlighting.
7   When 'number' is set highlight the number of the current line.
    Must be enabled with an option, because it slows down display updating.
8   Allow the user to add items to the Syntax menu sorted, without having to
    change this for each release.
8   Add a "matchcontains" for regions: items contained in the start or end
    pattern, but not in the body.
8   Add a "keepend-contained" argument: Don't change the end of an item this
    one is contained in.  Like "keepend" but specified on the contained item,
    instead of the containing item.
8   cpp.vim: In C++ it's allowed to use {} inside ().
8   Some syntax files set 'iskeyword', they should use "syn iskeyword".
    Also need a separate 'iskeyword' for the command line, e.g., in a help
    window ":e /asdf/asdf/" CTRL-W works different.
8   Add specific syntax item to match with parens/braces that don't have a
    "%" match.  :syntax nomatch cMatchError (,{,[,),},] [contained]
8   Highlight the text between two matching parens (e.g., with a grey
    background) when on one of the parens or in between them.
    Option for the matchparen plugin?
8   When using a cterm, and no ctermfg or ctermbg are defined, use start/stop
    sequences.	Add remark in docs that :if 'term' == "term-name" should be
    used.
8   Add @spell cluster to String and Comment groups for many languages.  Will
    allow spell checking. (Fleiner)
8   When listing syntax items, try to sort the keywords alphabetically.  And
    re-insert the [] if possible.
8   Make it possible to use color of text for Visual highlight group (like for
    the Cursor).
8   It would be useful to make the highlight group name an expression.  Then
    when there is a match, the expression would be evaluated to find out what
    highlight group to use.  Could be used to check if the shell used in a
    password file appears in /etc/shells. (Nikolai Weibull)
	syn match =s:checkShell(v:match) contained 'pattern'
8   Make it possible to only highlight a sub-expression of a match.  Like
    using "\1" in a ":s" command.
8   Support for deleting syntax items:
    :syn keyword cTodo remove this
    :syn match cTodo remove "pattern"
    :syn region cString remove start="this" end="that"
8   Add possibility to sync on something else, when the syncing in one way
    doesn't find match.  For HTML: When no {script} is found, try looking for
    a '<'.  (Fleiner)
7   Replace the synchronizing method with a state machine specification?
    Should be able to start at any line in the file, search forwards or
    backwards, and use the result of matching a pattern.
7   Use parsing like awk, so that e.g., a ( without a matching ) can be
    detected.
8   Make it possible to use "inverted" highlighting, invert the original
    character.  For Visual mode.  (xterm-selection already does this).
8   Highlight non-printable characters with "SpecialChar", linked to
    "Special".  Display them with the digraph characters, if possible.
8   Highlight the clipboard-selection with a highlight group.
8   Be able to reset highlighting to its original (default) values.
7   Be able to write current highlighting to a file as commands, similar to
    ":mkvimrc".
8   Improve c.vim:
    - Add check for unterminated strings, with a variable to switch it on:
      "c_strict_ansi".
    - Detect unbalanced "#endif".  Requires looking back a long way...
8   Add an option to restrict the updating of syntax highlighting to the
    current line while in Insert mode.
8   When guessing value of 'background', the syntax file has already been
    loaded (from the .gvimrc).	After changing 'background', load it again?
8   Add ":syn resync" command, to re-parse the whole file until the current
    display position.
8   Should support "me" offset for a region start pattern.  To be used to
    allow searching for the end pattern inside the match of the end pattern.
    Example: syn region pikeXX start="([^{]" end=")" should work on "()".
8   When using a regexp for "contains=", should delay matching with it until
    redrawing happens.  Set a flag when a group is added, check this flag when
    highlighting starts.
7   It's possible for an item to be transparent, so that the colors of an item
    lower on the stack is used.  Also do this with highlighting, so that the
    user can set transparent highlighting?  E.g. a number in a C comment would
    get the color of a comment, a number in an assignment Normal. (Nikolai
    Weibull)
7   Add "semitrans": Add highlighting.  E.g., make the text bold, but keep the
    colors.  And add colors, so that Green+Red becomes Yellow.
    E.g. for this html:
	<B> bold text <I> italic+bold text </B> italic text </I>
7   CTRL-] checks the highlight group for finding out what the tag is.
7   Add an explanation how a list of words can be used to highlight misspelled
    words.
8   Add more command line completion for :syntax.
8   Add more command line completion for :highlight.
7   Should find a better way to parse the :syntax and :highlight commands.
    Use tables or lists that can be shared by parsing for execution and
    completion?
8   Add ColorSchemePost autocommand event, so that scripts can set up their
    highlighting. (Salman Halim)
7   Add a few sets of colors (e.g. Borland Turbo C one).  With a menu to
    select one of the sets.
8   Add offsets to sub-matches: "\(a*\) *"he=e1-1
    'e' is end of match 'e1' is end of sub-match 1, 's2' is start of submatch
    2, etc.
8   In Insert mode, when there are typeahead characters, postpone the
    highlighting (for "." command).
8   Syncing on comments isn't 100% correct when / / lines mix with / * and * /.
    For example: What about a line that starts with / / and contains * /?
8   Ignore / * and  * / inside strings, when syncing.
7   Build a few more syntax files from the file "/usr/share/misc/vgrindefs":
    ISP, LDL, Icon, ratfor.  And check "nedit/source/highlight.c".
6   Add possibility to have background color continue until the right edge of
    the window.  Useful for comment blocks and function headings. (Rogall)
-   Make it possible to add "contains" items for all items in a group.	Useful
    when extending an already existing syntax file.
-   Add line-continuation pattern for non-syncing items too?
-   Add possibility to highlight the whole line, including the right margin
    (for comment blocks).
-   Add 'hlmatch' option: List of flags:
    'c': highlight match for character under the cursor.
    'b': highlight the previous (, and its match.
    'a': highlight all text from the previous ( until its match.
	 Also for {}, <>, etc.?
    'e': highlight all braces without a match (slow?)
    OR: add an argument "cursor" to the syntax command, which means that the
    region/match/keyword is only highlighted when the cursor is on it.
    (Campbell)
    Or do it like Elvis: define text objects and how to highlight them around
    the cursor. (Iain Truskett)
7   Make it possible to use all words in the tags files as Keyword.
    Can also be done with a script (but it's slow).
7   Make it possible to call a ":" command when a match is found.  Should
    allow for adding keywords from the text (e.g. variables that are set).
    And allows for sections with different highlighting.
7   Add highlight group for commandline: "Commandline".  Make sure it
    highlights the command line while typing a command, and any output from
    messages.  And external commands?
8   Make a version that works like less, but with highlighting: read stdin for
    text, exit at end of file, don't allow editing, etc.  moreim?  lessim?
7   SpecialKey highlighting overrules syntax highlighting.  Can't give an
    unprintable char another color.  Would be useful for ^M at end of line.


Vim script language:
8   Make the filename and line number available to script functions, so that
    they can give useful debugging info.  The whole call stack would be ideal.
    At least use this for error messages.
7   Execute a function with standard option values.  No need to save and
    restore option values.  Especially useful for new options.  Problem: how
    to avoid a performance penalty (esp. for string options)?
8   Add referring to key options with "&t_xx".  Both for "echo &t_xx" and
    ":let &t_xx =".  Useful for making portable mappings.
-   Add ":let var ?= value", conditional assignment.  Patch by Dave Eggum,
    2006 Dec 11.
-   range for ":exec", pass it on to the executed command.  (Webb)
8   ":{range}source": source the lines from the current file.
	You can already yank lines and use :@" to execute them.
	Most of do_source() would not be used, need a new function.
	It's easy when not doing breakpoints or profiling.
    Requires copying the lines into a list and then creating a function to
    execute lines from the list.  Similar to getnextac().
7   ":include" command: just like ":source" but doesn't start a new scriptID?
    Will be tricky for the list of script names.
8   Have a look at VSEL.  Would it be useful to include? (Bigham)
8   Have a prefix for a function to make it unique.  When using packages it
    can be the plugin name.
    Perhaps also have a way to remove everything that the package added?
    including autocommands.
7   Pre-parse or compile Vim scripts into a bytecode.
    1. Put the bytecode with the original script, with an ":if
       has('bytecode')" around it, so that it's only used with a Vim that
       supports it.  Update the code with a command, can be used in an
       autocommand.
    2. Use a ".vic" file (like Python use .pyc).  Create it when writing a
       .vim file.  Problem: distribution.
    3. Use a cache directory for each user.  How to recognize which cached
       file belongs to a sourced script?
7   Add argument to winwidth() to subtract the space taken by 'foldcolumn',
    signs and/or 'number'.
6   Add ++ and -- operators?  They only work on variables (lvals), how to
    implement this?
8   Add functions:
	has(":command")		Check if ":command" works.  compare function
				with "ex_ni".  E.g. for ":simalt".
	escape()		Add argument to specify what to escape with.
	modestack()		Instead of just the current mode return the
				stack of Insert / CTRL-O / :normal things.
	realname()		Get user name (first, last, full)
				user_fullname() patch by Nikolai Weibull, Nov
				3 2002
				Only add this when also implemented for
				non-Unix systems, otherwise a shell cmd could
				be used.
				get_user_name() gets login name.
	menuprop({name}, {idx}, {what})
				Get menu property of menu {name} item {idx}.
				menuprop("", 1, "name") returns "File".
				menuprop("File", 1, "n") returns "nmenu
				File.Open..." argument.
				Patch by Ilya Sher, 2004 Apr 22
				Return a list of menus and/or a dictionary
				with properties instead.
	mapname({idx}, mode)	return the name of the idx'th mapping.
				Patch by Ilya Sher, 2004 Mar 4.
				Return a list instead.
	char2hex()		convert char string to hex string.
	crypt()			encrypt string
	decrypt()		decrypt string
	base64enc()		base 64 encoding
	base64dec()		base 64 decoding
	attributes()		return file protection flags "drwxrwxrwx"
	filecopy(from, to)	Copy a file
	shorten(fname)		shorten a file name, like home_replace()
	perl(cmd)		call Perl and return string
	inputrl()		like input() but right-to-left
	typed()			return the characters typed and consumed (to
				find out what happened)
	virtualmode()		add argument to obtain whether "$" was used in
				Visual block mode.
	getacp()		Win32: get codepage (Glenn Maynard)
	deletebufline()		delete line in any buffer
	appendbufline()		append line in any buffer
	libcall()		Allow more than one argument.
	libcallext()		Like libcall(), but using a callback function
				to allow the library to execute a command or
				evaluate an expression.
7   Make bufname("'0") return the buffer name from mark '0.  How to get the
    column and line number?  col("'0") currently returns zero.
8   argc() returns 0 when using "vim -t tag".  How to detect that no file was
    specified in any way?  To be able to jump to the last edited file.
8   Pass the command line arguments to Vim scripts in some way.  As v:args
    List?  Or extra parameter to argv()?
8   Add command arguments with three dashes, passed on to Vim scripts.
9   Add optional arguments to user functions:
	:func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
6   User functions: Functions local to buffer "b:func()"?
8   For Strings add ":let var[{expr}] = {expr}".  When past the end of "var"
    just ignore.
8   The "= register should be writable, if followed by the name of a variable,
    option or environment variable.
8   ":let &option" should list the value of the option.
8   ":let Func().foo = value" should work, also when "foo" doesn't exist.
    Also: ":let Func()[foo] = value" should work.  Same for a List.
7   Add synIDlist(), making the whole list of syntax items on the syntax stack
    available as a List.
8   Add autocommand-event for when a variable is changed:
	:au VarChanged {varname} {commands}
8   Add "has("gui_capable")", to check if the GUI can be started.
8   Add possibility to use variables like registers: characterwise (default),
    linewise (when ending in '\n'), blockwise (when ending in '\001').	reg0,
    rega, reg%, etc.  Add functions linewise({expr}), blockwise({expr}) and
    charwise({expr}).
7   Make it possible to do any command on a string variable (make a buffer
    with one line, containing the string).  Maybe add an (invisible) scratch
    buffer for this?
	result = scratch(string, command)
	result = apply(string, command)
	result = execute(string, command)
    "command" would use <> notation.
    Does scratch buffer have a number?  Or re-use same number?
7   Add function to generate unique number (date in milliseconds).


Robustness:
6   Add file locking.  Lock a file when starting to edit it with flock() or
    fcntl().  This patch has advisory file locking while reading/writing
    the file for Vim 5.4: ~/vim/patches/kahn_file_locking .
    The patch is incomplete (needs support for more systems, autoconf).
    Andy doesn't have time to work on it.
    Disadvantage: Need to find ways to gracefully handle failure to obtain a
    lock.  When to release a lock: When buffer is unloaded?


Performance:
7   For string variables up to 3 bytes don't allocate memory, use v_list
    itself as a character array.  Use VAR_SSTRING (short string).
7   Add 'lazysize' option: Above this size Vim doesn't load everything before
    starting to edit a file.  Things like 'fileencodings' only work up to this
    size, modelines only work at the top.  Useful for large log files where
    you only want to look at the first few pages.  Use zero to disable it.
8   move_lines() copies every line into allocated memory, making reloading a
    buffer a lot slower than re-editing the file.  Can the memline be locked
    so that we don't need to make a copy?  Or avoid invoking ml_updatechunk(),
    that is taking a lot of time.  (Ralf Wildenhues, 2008 Jul 7)
    With a patch, but does it work?
8   Turn b_syn_ic and b_syn_containedin into b_syn_flags.
9   Loading menu.vim still takes quite a bit of time.  How to make it faster?
8   in_id_list() takes much time for syntax highlighting.  Cache the result?
7   setpcmark() shifts the jumplist, this takes quite a bit of time when
    jumping around.  Instead use an index for the start?
8   When displaying a space with only foreground highlighting, it's the same
    as a space without attributes.  Avoid displaying spaces for the "~" lines
    when starting up in a color terminal.
8   Avoid alloc() for scratch buffer use, esp. in syntax.c.  It's very slow on
    Win16.
8   Profiling shows that in_id_list() is used very often for C code.  Can this
    function be improved?
8   For an existing file, the page size of the swap file is always the
    default, instead of using the block size of the device, because the swap
    file is created only after setting the block size in mf_open().  How can
    this be improved?
8   Set default for 'ttyscroll' to half a screen height?  Should speed up
    MS-DOS version. (Negri)
7   C syntax highlighting gets a lot slower after ":set foldmethod=syntax".
    (Charles Campbell)  Inserting a "{" is very slow. (dman)
7   HTML syntax highlighting is slow for long lines.  Try displaying
    http://www.theregister.co.uk/content/4/22908.html. (Andre Pang)
7   Check how performance of loading the wordlist can be improved (adding a
    lot of abbreviations).
7   Compile Ex commands to byte codes.  Store byte codes in a vim script file
    at the end, after "compiled:.  Make it look like a single comment line
    for old Vim versions.  Insert first line "Vim script compiled <timestamp>.
    Only used compiled code when timestamp matches the file stat.
    Add command to compile a vim script and add it to the file in-place.
    Split Ex command executing into a parsing and executing phase.
    Use compiled code for functions, while loops, etc.
8   When defining autocommands (e.g., from $VIMRUNTIME/filetype.vim), need to
    compare each pattern with all existing patterns.  Use a hash code to avoid
    using strcmp() too often?
7   Include turbo_loader patches, speeding up reading a file?
    Speed up reading a file by reading it into a fixed-size buffer, creating
    the list of indexes in another buffer, and then copying the result into a
    memfile block with two copies.  Then read the next block into another
    fixed-size buffer, create the second list of indexes and copy text from
    the two blocks to the memfile block.
7   do_cmdline(): Avoid that the command line is copied to allocated memory
    and freed again later all the time.  For while loops, and for when called
    with an argument that can be messed with.
    Generic solution: Make a struct that contains a pointer and a flag that
    indicates if the pointer should be freed when replaced.
7   Check that the file size is not more than "sizeof(long)".
-   Further improve finding mappings in maphash[] in vgetorpeek()
8   Syntax highlighting is slow when deleting lines.  Try in
    $VIMRUNTIME/filetype.vim.
-   "out of memory" after deleting (1,$d) and changing (:%s/^/> /) a lot of
    lines (27000) a few times.  Memory fragmentation?
-   Have a look at how pdksh does memory allocation (alloc.c). (Dalecki)
-   Do profiling on:
    - :g/pat/normal cmd
    - 1000ii<Esc>
    - deleting 10Mbyte worth of lines (netscape binary)
    - "[i" and "[d" (Yegappan Lakshmanan)
    - ":g/^/m0" on a 450Kbyte file.  And the "u".
    - highlighting "~/vim/test/longline.tex", "~/vim/test/scwoop.tcl" and
      "~/vim/test/lockup.pl".
    - loading a syntax file to highlight all words not from a dictionary.
    - editing a Vim script with syntax highlighting on (loading vim.vim).
7   Screen updating can be further improved by only redrawing lines that were
    changed (and lines after them, when syntax highlighting was used, and it
    changed).
    - On each change, remember start and end of the change.
    - When inserting/deleting lines, remember begin, end, and line count.
-   Use macros/duarte/capicua for profiling.  Nvi 1.71 is the fastest!
-   When using a file with one long line (1Mbyte), then do "$hhhh", is still
    very slow.  Avoid calling getvcol() for each "h"?
-   Executing a register, e.g. "10000@@" is slow, because ins_typebuf has to
    move the previous commands forward each time.  Pass count from
    normal_cmd() down to do_execreg().
-   Repeating insert "1000i-<Esc>" displays --INSERT-- all the time, because of
    the <Esc> at the end.  Make this work faster (disable redrawing).
-   Avoid calls to plines() for cursor line, use w_cline_height.
-   After ":set nowrap" remove superfluous redraw with wrong hor. offset if
    cursor is right of the screen.
8   Make CTRL-C on Unix generate a signal, avoid using select() to check for a
    CTRL-C (it's slow).


Code size:
8   GUI: When NO_CONSOLE is defined, more code can be excluded.
-   Put getline() and cookie in a struct, so only one argument has to be
    passed to do_cmdline() and other functions.
8   Make a GUI-only version for Unix?
8   In buf_write _() isn't needed when setting errmsg, do it once when using
    it.
7   When compiling with a GUI-only version, the code for cterm colors can be
    left out.
8   When compiled with a GUI-only version, the termcap entries for terminals
    can be removed.
8   Can the check for libelf in configure.ac be removed?


Messages:
8   When using ":q" in a changed file, the error says to "add !".  Add the
    command so that beginners understand it: "use :q!".
8   For 'verbose' level 12 prints commands from source'ed files.  How to skip
    lines that aren't executed?  Perhaps move the echoing to do_cmdline()?
8   Use 'report' for ":bdel"?  (Krishna)  To avoid these messages when using a
    script.
-   Delete message after new command has been entered and have waited for key.
    Perhaps after ten seconds?
-   Make message history available in "msg" variables: msg1, msg2, .. msg9.
8   When reading from stdin allow suppressing the "reading from stdin"
    message.
9   Check handling of overwriting of messages and delays:
    Very wrong: errors while redrawing cause endless loop.
    When switching to another file and screen scrolls because of the long
    message and return must be typed, don't scroll the screen back before
    redrawing.
8   When address range is wrong you only get "Invalid range".  Be a bit more
    specific: Negative, beyond last line, reverse range?  Include the text.
8   Make it possible to ignore errors for a moment ('errorignore'?).  Another
    option to switch off giving error messages ('errorquiet'?).  Also an option
    not to give any messages ('quiet')?  Or ":quiet on", ":quiet off".
    Careful: For a severe error (out of memory), and when the user starts
    typing, error messages must be switched back on.
    Also a flag to ignore error messages for shell commands (for mappings).
-   Option to set time for emsg() sleep.  Interrupt sleep when key is typed?
    Sleep before second message?
8   In Ex silent mode or when reading commands from a file, what exactly is
    not printed and what is?  Check ":print", ":set all", ":args", ":vers",
    etc.  At least there should be no prompt. (Smulders)  And don't clear the
    screen when reading commands from stdin. (Kendall)
    --> Make a difference between informative messages, prompts, etc. and
	error messages, printing text, etc.
8   Window should be redrawn when resizing at the hit-enter prompt.
    Also at the ":tselect" prompt.  Find a generic solution for redrawing when
    a prompt is present (with a callback function?).


Screen updating:
7   Add a string to the 'display' option to make CTRL-E and CTRL-Y scroll one
    screen line, also if this means the first line doesn't start with the
    first character (like what happens with a single line that doesn't fit).
-   screen_line():
    - insert/delete character stuff.
    - improve delete rest of line (spaces at end of line).
-   When moving or resizing window, try to avoid a complete redraw (esp. when
    dragging the status line with the mouse).
-   When 'lazyredraw' set, don't echo :ex commands?  Need a flag to redraw when
    waiting for a character.
8   Add a ":refresh [winnr]" command, to force updating a window.  Useful from
    an event handler where ":normal" can't be used.  Also useful when
    'lazyredraw' is set in a mapping.

Scrolling:
8   Add "zy" command: scroll horizontally to put the cursor in the middle.
6   Add option to set the overlap for CTRL-F and CTRL-B. (Garhi)
-   extend 'scrollbind' option: 'scrollopt' words "search", "relative", etc..
    Also 'e'xecute some commands (search, vertical movements) in all bound
    windows.
7   Add 'scrollbind' feature to make the offset of one window with the next
    one equal to the window height.  When editing one file in both windows it
    looks like each window displays a page of the buffer.
-   Allow scrolling by dragging with the mouse (grab a character and move it
    up/down).  Like the "hand" in Acrobat reader.  Use Alt-LeftMouse for this?
    (Goldfarb)
-   Add command to execute some commands (search, vertical movements) in all
    bound windows.
-   Add 'search' option to 'scrollopt' to allow 'scrollbind' windows to
    be bound by regexp searches
-   Add "z>" and "z<": scroll sideways one screenful. (Campbell)
-   Add option to set the number of lines when not to scroll, instead of the
    fixed number used now (for terminals that scroll slow with a large number
    of lines but not with a single line).


Autoconf:
8   Should use acconfig.h to define prototypes that are used by autoheader.
8   Some compilers don't give an error for "-OPT:Olimit" but a warning. (Webb)
    Add a check for the warning, so that "Olimit" can be added automatically?
-   Autoconf: Use @datadir@ for the system independent files.  Make sure the
    system dependent and system independent files are separated. (Leitner).
-   Add autoconf check for waitpid()/wait4().
-   Remove fcntl() from autoconf, all systems have it?
-   Set default for 'dictionary', add search for dictionary to autoconf.


Perl interface:
8   Rename typemap file to something else?
7   Make buffers accessed as Perl arrays. (Clark)
7   Make it possible to compile with non-ANSI C?
6   Tcl/Tk has the "load" command: load a shared library (.so or .dll).


Shared libraries:
8   libcall() can keep the library around instead of always calling dlclose().
    (Jason Felice, 2018 Mar 20)
6   Add support for loading shared libraries, and calling functions in it.
	:libload internal-name libname
	:libunload internal-name
	:liblist
	:libcall internal-name function(arg1, arg2, ...)
	:libcall function(arg1, arg2, ...)
    libcall() can have only one integer or String argument at the moment.
6   Have a look on how Perl handles loading dynamic libraries.


Tags:
9   With ":set tags=./tags,../tags" and a tag appears in both tags files it is
    added twice.  Requires figuring out the actual file name for each found
    match.  Remove tag_fname from the match and combine it with the fname in
    the match (without expanding or other things that take time).  When
    'tagrelative' is off tag_fname isn't needed at all.
8   For 'tags' wildcard in the file name is not supported, only in the path.
    This is due to it using |file-searching|. Suboptimal solution would be to
    make the filename or the whole option use |wildcards| globing, better
    would be to merge the 2 kinds of globing. originally (Erik Falor, 2008
    April 18), updated (Ian Kelling, 2008 July 4)
7   Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
    number of possible matches? Check tags file for an item that has members.
    (Flemming Madsen)
8   Scope arguments for ":tag", e.g.: ":tag class:cPage open", like Elvis.
8   When output of ":tselect" is long, getting the more-prompt, should be able
    to type the tag number directly.
7   Add the possibility to use the "-t {tag}" argument multiple times.  Open a
    window for each tag.
7   Make output of ":tselect" a bit nicer.  Use highlighting?
7   Highlight the "tag 1 of >2" message.  New highlight group, or same as "hit
    bottom" search message.
7   When using ":tag" at the top of the tag stack, should add another entry,
    so CTRL-T can bring you back to where you are now AND to where you were
    before the previous ":tag" command. (Webb)
-   When doing "[^I" or "[^D" add position to tag stack.
-   Add command to put current position to tag stack: ":tpush".
-   Add functions to save and restore the tag stack?  Or a command to switch
    to another tag stack?  So that you can do something else and come back to
    what you were working on.
7   When using CTRL-] on someClass::someMethod, separate class from method and
    use ":ta class:someClass someMethod".
    Include C++ tags changes (Bertin).	Change "class::func" tag into "func"
    with "class=class"?  Docs in oldmail/bertin/in.xxx.
7   Add ":tagargs", to set values for fields:
	:tagargs class:someclass file:version.c
	:tagargs clear
    These are then the default values (changes the order of priority in tag
    matching).
7   Support for "gtags" and "global"?  With ":rtag" command?
    There is an example for how to do this in Nvi.
    Or do it like Elvis: 'tagprg' and 'tagprgonce' options. (Yamaguchi)
    The Elvis method is far more flexible, do it that way.
7   Support "col:99" extra field, to position the cursor in that column.  With
    a flag in 'cpoptions' to switch it off again.
7   Better support for jumping to where a function or variable is used.  Use
    the id-utils, with a connection to "gid" (Emacs can do it too).  Add
    ":idselect", which uses an "ID" database (made by "mkid") like "tselect".


Win32 GUI:
8   Make debug mode work while starting up (vim -D).  Open console window for
    the message and input?
7   GvimExt: when there are several existing Vims, move the list to a submenu.
    (Mike McCollister)
8   When using "Edit with Vim" for one file it changes directory, when several
    files are selected and using "Edit with single Vim" the directory isn't
    changed.  At least change directory when the path is the same for all
    files.  Perhaps just use the path of the first file or use the longest
    common part of the path.
8   Add font argument to set the lfCharSet. (Bobcik)
8   Somehow automatically detect the system language and set $LANG, so that
    gettext and menus work.
8   Could keep console open to run multiple commands, to avoid the need to hit
    return in every console.
    Also: Look at how Emacs does run external commands:
	http://www.cs.washington.edu/homes/voelker/ntemacs.html.
8   Need a separate PopUp menu for modeless selection.  Need two new commands:
    Copy selection to clipboard, Paste selection (as typed text).
8   Support copy/paste for other file formats.  At least HTML, perhaps RTF.
    Add "copy special" and "paste special" commands?
7   Use different default colors, to match the current Windows color scheme.
    Sys_WindowText, Sys_Window, etc. (Lionel Schaffhauser)
7   Use <C-Tab> to cycle through open windows (e.g., the find dialog).
7   <Esc> should close a dialog.
7   Keep the console for external commands open.  Don't wait for a key to be
    hit.  Re-open it when the user has closed it anyway.  Or use a prepended
    command: ":nowait {cmd}", or ":quiet", which executes {cmd} without any
    prompts.
7   Should be able to set an option so that when you double click a file that
    is associated with Vim, you can either get a new instance of Vim, or have
    the file added into an already running Vim.
7   The "-P" argument only works for the current codepage.  Use wide
    functions to find the window title.


GUI:
8   Make inputdialog() work for Photon, Amiga.
-   <C--> cannot be mapped.  Should be possible to recognize this as a
    normal "-" with the Ctrl modifier.
7   Implement ":popup" for other systems than Windows.
8   Implement ":tearoff" for other systems than Win32 GUI.
6   Implement ":untearoff": hide a torn-off menu.
8   When using the scrollbar to scroll, don't move the cursor position.  When
    moving the cursor: scroll to the cursor position.
9   Make <S-Insert> paste from the clipboard by default. (Kunze)
7   Menu local to a buffer, like mappings.  Or local to a filetype?
8   In Buffers menu, add a choice whether selecting a buffer opens it in the
    current window, splits the window or uses ":hide".
8   Dragging the mouse pointer outside of a Vim Window should make the text
    scroll.  Return a value from gui_send_mouse_event() to the machine
    specific code to indicate the time in which the event should be repeated.
8   Make it possible to ignore a mouse click when it's used to give Vim (gvim)
    window focus.  Also when a mouse click is used to bring a window to front.
8   Make the split into system independent code and system specific code more
    explicit.  There are too many #ifdefs in gui.c.
    If possible, separate the Vim code completely from the GUI code, to allow
    running them in separate processes.
7   X11: Support cursorColor resource and "-cr" argument.
8   X11 (and others): CTRL-; is not different from ';'.  Set the modifier mask
    to include CTRL for keys where CTRL produces the same ASCII code.
7   Add some code to handle proportional fonts on more systems?  Need to draw
    each character separately (like xterm).  Also for when a double-width font
    is not exactly double-width. (Maeda)
8   Should take font from xterm where gvim was started (if no other default).
8   Selecting font names in X11 is difficult, make a script or something to
    select one.
8   Visual highlighting should keep the same font (bold, italic, etc.).
8   Add flag to 'guioptions' to not put anything in the clipboard at all?
8   Should support a way to use keys that we don't recognize yet.  Add a
    command that adds entries to special_keys somehow.	How do we make this
    portable (X11, Win32, ..)?
7   Add a flag to 'guioptions' that tells not to remove inactive menu items.
    For systems where greying-out or removing menu items is very slow.  The
    menu items would remain visibly normally, but not do anything.
7   Add ":minimize" and ":maximize", which iconize the window and back.
    Useful when using gvim to run a script (e.g. 2html.vim).
7   X11: Is it possible to free allocated colors, so that other programs can
    use them again?  Otherwise, allow disabling allocating the default colors.
    Or allocate an own colormap (check UAE).  With an option to use it.  For
    the commandline, "-install" is mostly used for X11 programs.
7   Should support multi-column menus.
-   Should add option for where to put the "Help" menu: like Motif at the far
    right, or with the other menus (but still at the right).
-   Add menu item to "Keep Insert mode".
8   ":mkgvimrc" command, that includes menus.
6   Big change: Move GUI to separate program "vimgui", to make startup of vim a
    lot faster, but still be able to do "vim -g" or ":gui".
7   More explicit mouse button binding instead of 'mousemodel'?
7   Add option to set the position of the window on the screen.  'windowpos',
    which has a value of "123,456": <x>,<y>.
    Or add a command, like ":winsize"?
7   Add toolbar for more GUIs.
8   Make it possible to use "amenu icon=BuiltIn##", so that the toolbar item
    name can be chosen free.
7   Make it possible to put the toolbar on top, left, right and/or bottom of
    the window?  Allows for softkey-like use.
6   Separate the part of Vim that does the editing from the part that runs the
    GUI.  Communicate through a pseudo-tty.  Vim starts up, creates a
    pty that is connected to the terminal.  When the GUI starts, the pty is
    reconnected to the GUI process.  When the GUI stops, it is connected to
    the terminal again.  Also use the pty for external processes, it looks
    like a vt100 terminal to them.  Vim uses extra commands to communicate GUI
    things.
7   Motif: For a confirm() dialog <Enter> should be ignored when no default
    button selected, <Esc> should close the dialog.
7   When using a pseudo-tty Vim should behave like some terminal (vt52 looks
    simple enough).  Terminal codes to/from shell should be translated.
-   Would it be useful to be able to quit the GUI and go back to the terminal
    where it was started from?
7   Support "-visual <type>" command line argument.


Autocommands:
9   Rework the code from FEAT_OSFILETYPE for autocmd-osfiletypes to use
    'filetype'.  Only for when the current buffer is known.
-   Put autocommand event names in a hashtable for faster lookup?
8   When the SwapExists event is triggered, provide information about the
    swap file, e.g., whether the process is running, file was modified, etc.
    Must be possible to check the situation that it's probably OK to delete
    the swap file. (Marc Merlin)
8   When all the patterns for an event are "*" there is no need to expand
    buffer names to a full path.  This can be slow for NFS.
7   For autocommand events that trigger multiple times per buffer (e.g.,
    CursorHold), go through the list once and cache the result for a specific
    buffer.  Invalidate the cache when adding/deleting autocommands or
    changing the buffer name.
7   Add TagJump event: do something after jumping to a tag.
8   Add "TagJumpFile" autocommand: When jumping to another file for a tag.
    Can be used to open "main.c.gz" when "main.c" isn't found.
8   Use another option than 'updatetime' for the CursorHold event.  The two
    things are unrelated for the user (but the implementation is more
    difficult).
7   Add autocommand event for when a buffer cannot be abandoned.  So that the
    user can define the action taking (autowrite, dialog, fail) based on the
    kind of file. (Yakov Lerner)  Or is BufLeave sufficient?
8   Autocommand for when modified files have been found, when getting input
    focus again (e.g., FileChangedFocus).
    Check when: getting focus, jumping to another buffer, ...
8   Autocommands should not change registers.  And marks?  And the jumplist?
    And anything else?  Add a command to save and restore these things.
8   Add autocommands, user functions and user commands to ":mkvimrc".
6   Add KeymapChanged event, so that the effects of a different keymap can be
    handled (e.g., other font) (Ron Aaron)
7   When trying to open a directory, trigger an OpenDirectory event.
7   Add file type in front of file pattern: <d> for directory, <l> for link,
    <x> for executable, etc.  With commas to separate alternatives.  The
    autocommand is only executed when both the file type AND the file pattern
    match. (Leonard)
5   Add option that specifies extensions which are to be discarded from the
    file name.  E.g. 'ausuffix', with ".gz,.orig".  Such that file.c.gz will
    trigger the "*.c" autocommands.  (Belabas)
7   Add something to break the autocommands for the current event, and for
    what follows.  Useful for a "BufWritePre" that wants to avoid writing the
    file.
8   When editing "tt.gz", which is in DOS format, 'fileformat' stays at
    "unix", thus writing the file changes it.  Somehow detect that the read
    command used dos fileformat.  Same for 'fileencoding'.
-   Add events to autocommands:
    Error	    - When an error happens
    NormalEnter	    - Entering Normal mode
    ReplaceEnter    - Entering Replace mode
    VisualEnter	    - Entering Visual mode
    *Leave	    - Leaving a mode (in pair with the above *Enter)
    VimLeaveCheck    - Before Vim decides to exit, so that it can be cancelled
		      when exiting isn't a good idea.
    CursorHoldC     - CursorHold while command-line editing
    WinMoved	    - when windows have been moved around, e.g, ":wincmd J"
    SearchPost	    - After doing a search command (e.g. to do "M")
    PreDirChanged/PostDirChanged
		    - Before/after ":cd" has been used (for changing the
		      window title)
    ShutDown	    - when the system is about to shut down
    InsertCharPost  - user typed a character in Insert mode, after inserting
		      the char.
    BufModified	    - When a buffer becomes modified, or unmodified (for
		      putting a [+] in the window title or checking out the
		      file from CVS).
    BufFirstChange  - When making a change, when 'modified' is set.  Can be
		      used to do a :preserve for remote files.
    BufChange	    - after a change was made.  Set some variables to indicate
		      the position and number of inserted/deleted lines, so
		      that marks can be updated.  HierAssist has patch to add
		      BufChangePre, BufChangePost and RevertBuf. (Shah)
    ViewChanged	    - triggered when the text scrolls and when the window size
		      changes.
    WinResized	    - After a window has been resized
    WinClose	    - Just before closing a window
-   Write the file now and then ('autosave'):
				  *'autosave'* *'as'* *'noautosave'* *'noas'*
    'autosave' 'as' number  (default 0)
	    Automatically write the current buffer to file N seconds after the
	    last change has been made and when |'modified'| is still set.
	    Default: 0 = do not autosave the buffer.
    Alternative: have 'autosave' use 'updatetime' and 'updatecount' but make
    them save the file itself besides the swapfile.


Omni completion:
-   Add a flag to 'complete' to be able to do omni completion with CTRL-N (and
    mix it with other kinds of completion).
-   Ideas from the Vim 7 BOF at SANE:
	- For interpreted languages, use the interpreter to obtain information.
	  Should work for Java (Eclipse does this), Python, Tcl, etc.
	  Richard Emberson mentioned working on an interface to Java.
	- Check Readline for its completion interface.
-   Ideas from others:
	http://www.wholetomato.com/
	http://www.vim.org/scripts/script.php?script_id=747
	    http://sourceforge.net/projects/insenvim
		or http://insenvim.sourceforge.net
	    Java, XML, HTML, C++, JSP, SQL, C#
	    MS-Windows only, lots of dependencies (e.g. Perl, Internet
		explorer), uses .dll shared libraries.
	    For C++ uses $INCLUDE environment var.
	    Uses Perl for C++.
	    Uses ctags to find the info:
		ctags -f $allTagsFile --fields=+aiKmnsSz --language-force=C++ --C++-kinds=+cefgmnpsut-dlux -u $files
	www.vim.org script 1213 (Java Development Environment) (Fuchuan Wang)
	IComplete: http://www.vim.org/scripts/script.php?script_id=1265
	    and http://stud4.tuwien.ac.at/~e0125672/icomplete/
	http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
	Ivan Villanueva has something for Java.
	Emacs: http://www.xref-tech.com/xrefactory/more_c_completion.html
	Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
-   Pre-expand abbreviations, show which abbrevs would match?


Insert mode completion/expansion:
-   GUI implementation of the popup menu.
7   When searching in other files the name flash by, too fast to read.  Only
    display a name every second or so, like with ":vimgrep".
7   When expanding file names with an environment variable, add the match with
    the unexpanded var.  So $HOME/tm expands to "/home/guy/tmp" and
    "$HOME/tmp"
8   When there is no word before the cursor but something like "sys." complete
    with "sys.".  Works well for C and similar languages.
9   ^X^L completion doesn't repeat correctly.  It uses the first match with
    the last added line, instead of continuing where the last match ended.
    (Webb)
8   Add option to set different behavior for Insert mode completion:
    - ignore/match case
    - different characters than 'iskeyword'
8   Add option 'isexpand', containing characters when doing expansion (so that
    "." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
    Also: 'istagword': characters used for CTRL-].
    When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
    Alternative: Use a pattern so that start and end of a keyword can be
    defined, only allow dash in the middle, etc.
8   Add a command to undo the completion, go back to the original text.
7   Completion of an abbreviation: Can leave letters out, like what Instant
    text does: www.textware.com
8   Use the class information in the tags file to do context-sensitive
    completion.  After "foo." complete all member functions/variables of
    "foo".  Need to search backwards for the class definition of foo.
    Should work for C++ and Java.
    Even more context would be nice: "import java.^N" -> "io", "lang", etc.
7   When expanding $HOME/dir with ^X^F keep the $HOME (with an option?).
7   Add CTRL-X command in Insert mode like CTRL-X CTRL-N, that completes WORDS
    instead of words.
8   Add CTRL-X CTRL-R: complete words from register contents.
8   Add completion of previously inserted texts (like what CTRL-A does).
    Requires remembering a number of insertions.
8   Add 'f' flag to 'complete': Expand file names.
    Also apply 'complete' to whole line completion.
-   Add a flag to 'complete' to only scan local header files, not system
    header files. (Andri Moell)
-   Make it possible to search include files in several places.  Use the
    'path' option?  Can this be done with the dictionary completion (use
    wildcards in the file name)?
-   Make CTRL-X CTRL-K do a binary search in the dictionary (if it's sorted).
-   Speed up CTRL-X CTRL-K dictionary searching (don't use a regexp?).
-   Set a mark at the position where the match was found (file mark, could
    be in another file).
-   Add CTRL-A command in CTRL-X mode: show all matches.
-   Make CTRL-X CTRL-L use the 'complete' option?
-   Add command in CTRL-X mode to add following words to the completed string
    (e.g. to complete "Pointer->element" with CTRL-X CTRL-P CTRL-W CTRL-W)
-   CTRL-X CTRL-F: Use 'path' to find completions.
-   CTRL-X CTRL-F: Option to use forward slashes on MS-Windows?
-   CTRL-X CTRL-F: Don't replace "$VIM" with the actual value. (Kelly)
-   Allow listing all matches in some way (and picking one from the list).


Command line editing:
7   Add commands (keys) to delete from the cursor to the end of the command
    line.
8   Custom completion of user commands can't use the standard completion
    functions.  Add a hook to invoke a user function that returns the type of
    completion to be done: "file", "tag", "custom", etc.
-   Add flags to 'whichwrap' for command line editing (cursor right at end of
    lines wraps to start of line).
-   Make editing the command line work like Insert mode in a single-line view
    on a buffer that contains the command line history.  But this has many
    disadvantages, only implement it when these can be solved.  Elvis has run
    into these, see remarks from Steve (~/Mail/oldmail/kirkendall/in.00012).
    - Going back in history and editing a line there would change the history.
      Would still need to keep a copy of the history elsewhere.  Like the
      cmdwin does now already.
    - Use CTRL-O to execute one Normal mode command.  How to switch to normal
      mode for more commands?  <Esc> should cancel the command line.  CTRL-T?
    - To allow "/" and "= need to recursively call getcmdline(), overwrite the
      cmdline.  But then we are editing a command-line again.  How to avoid
      that the user gets confused by the stack of command lines?
    - Use edit() for normal cmdline editing?  Would have to integrate
      getcmdline() into edit().  Need to solve conflicts between Insert mode
      and Command-line mode commands.  Make it work like Korn shell and tcsh.
      Problems:
	- Insert: completion with 'wildchar'
	- Insert: use cmdline abbreviations
	- Insert: CTRL-D deletes indent instead of listing matches
	- Normal: no CTRL-W commands
	- Normal: no ":" commands?
	- Normal: allow Visual mode only within one line.
    - where to show insert/normal mode message?  Change highlighting of
      character in first column?
    - Implementation ideas:
      - Set "curwin" and "curbuf" to the command line window and buffer.
      - curwin->w_topline is always equal to curwin->w_cursor.lnum.
      - never set 'number', no folding, etc.  No status line.
      - sync undo after entering a command line?
      - use NV_NOCL flag for commands that are not allowed in Command-line
	Mode.


Command line completion:
8   Change expand_interactively into a flag that is passed as an argument.
8   With command line completion after '%' and '#', expand current/alternate
    file name, so it can be edited.  Also with modifiers, such as "%:h".
8   When completing command names, either sort them on the long name, or list
    them with the optional part inside [].
8   Add an option to ignore case when doing interactive completion.  So that
    ":e file<Tab>" also lists "Filelist" (sorted after matching case matches).
7   Completion of ":map x ": fill in the current mapping, so that it can be
    edited. (Sven Guckes)
-   For 'wildmenu': Simplify "../bar" when possible.
-   When using <Up> in wildmenu mode for a submenu, should go back to the
    current menu, not the first one.  E.g., ":emenu File.Save<Up>".
8   When using backtick expansion, the external command may write a greeting
    message.  Add an option or commands to remove lines that match a regexp?
7   When listing matches of files, display the common path separately from the
    file names, if this makes the listing shorter. (Webb)
-   Add command line completion for ":ilist" and friends, show matching
    identifiers (Webb).
8   Add command line completion for "old value" of a command.  ":args <key>"
    would result in the current list of arguments, which you can then edit.
7   Add command line completion with CTRL-X, just like Insert mode completion.
    Useful for ":s/word/xx/".
-   Add command to go back to the text as it was before completion started.
    Also to be used for <Up> in the command line.
-   Add 'wildlongest' option: Key to use to find longest common match for
    command line completion (default CTRL-L), like 'wildchar'. (Cregut)
    Also: when there are several matches, show them line a CTRL-D.


Command line history:
-   Add "KeyWasTyped" flag: It's reset before each command and set when a
    character from the keyboard is consumed. Value is used to decide to put a
    command line in history or not. Put line in history if it didn't
    completely result from one mapping.
-   When using ":browse", also put the resulting edit command in the history,
    so that it can be repeated. (Demirel)


Insert mode:
9   When 'autoindent' is set, hitting <CR> twice, while there is text after
    the cursor, doesn't delete the autoindent in the resulting blank line.
    (Rich Wales) This is Vi compatible, but it looks like a bug.
8   When using CTRL-O in Insert mode, then executing an insert command
    "a" or "i", should we return to Insert mode after <Esc>? (Eggink)
    Perhaps it can be allowed a single time, to be able to do
    "<C-O>10axyz<Esc>".  Nesting this further is confusing.
    ":map <F2> 5aabc<Esc>" works only once from Insert mode.
8   When using CTRL-G CTRL-O do like CTRL-\ CTRL-O, but when returning with
    the cursor in the same position and the text didn't change continue the
    same change, so that "." repeats the whole insert.
7   Use CTRL-G <count> to repeat what follows.  Useful for inserting a
    character multiple times or repeating CTRL-Y.
-   Make 'revins' work in Replace mode.
7   Use 'matchpairs' for 'showmatch': When inserting a character check if it
    appears in the rhs of 'matchpairs'.
-   In Insert mode (and command line editing?): Allow undo of the last typed
    character.	This is useful for CTRL-U, CTRL-W, delete and backspace, and
    also for characters that wrap to the next line.
    Also: be able to undo CTRL-R (insert register).
    Possibly use 'backspace'="whole" for a mode where at least a <CR> that
    inserts autoindent is undone by a single <BS>.
-   Use CTRL-G in Insert mode for an extra range of commands, like "g" in
    Normal mode.
-   Make 'paste' work without resetting other options, but override their
    value.  Avoids problems when changing files and modelines or autocommands
    are used.
-   When typing CTRL-V and a digit higher than 2, only expect two digits.
-   Insert binary numbers with CTRL-V b.
-   Make it possible to undo <BS>, <C-W> and <C-U>.  Bash uses CTRL-Y.


'cindent', 'smartindent':
9   Wrapping a variable initialization should have extra indent:
	char * veryLongName =
		"very long string"
    Also check if "cino=+10" is used correctly.
8   Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
8   Why are continuation lines outside of a {} block not indented?  E.g.:
	long_type foo =
	value;
8   Java: Inside an anonymous class, after an "else" or "try" the indent is
    too small. (Vincent Bergbauer)
    Problem of using {} inside (), 'cindent' doesn't work then.
8   In C++ it's possible to have {} inside (): (Kirshna)
		func(
			new String[] {
			    "asdf",
			    "asdf"
			}
		    );
8   In C++ a function isn't recognized inside a namespace:
    (Chow Loong Jin)
	namespace {
	    int
		 func(int arg) {
		 }
	}
6   Add 'cino' flag for this function argument layout: (Spencer Collyer)
	    func( arg1
	        , arg2
		, arg3
		);
7   Add separate "(0" option into inside/outside a function (Zellner):
	func(
	   int x)	// indent like "(4"
	{
	   if (a
	       && b)	// indent like "(0"
9   Using "{" in a comment: (Helmut Stiegler)
    if (a)
    {
	    if (b)
	    {
		    // {
	    }
	    } <-- this is indented incorrect
    Problem is that find_start_brace() checks for the matching brace to be in
    a comment, but not braces in between.  Requires adding a comment check to
    findmatchlimit().
-   Make smartindenting configurable.  Add 'sioptions', e.g. '#' setting the
    indent to 0 should be switched on/off.
7   Support ANSI style function header, with each argument on its own line.
-   "[p" and "]p" should use 'cindent' code if it's on (only for the first
    line).
-   Add option to 'cindent' to set indent for comments outside of {}?
-   Make a command to line up a comment after a code line with a previous
    comment after a code line.	Can 'cindent' do this automatically?
-   When 'cindent'ing a '}', showmatch is done before fixing the indent.  It
    looks better when the indent is fixed before the showmatch. (Webb)
-   Add option to make indenting work in comments too (for commented-out
    code), unless the line starts with "*".
-   Don't use 'cindent' when doing formatting with "gq"?
-   When formatting a comment after some text, insert the '*' for the new line
    (indent is correct if 'cindent' is set, but '*' doesn't get inserted).
8   When 'comments' has both "s1:/*,mb:*,ex:*/" and "s1:(*,mb:*,ex:*)", the
    'x' flag always uses the first match.  Need to continue looking for more
    matches of "*" and remember all characters that could end the comment.
-   For smartindent: When typing 'else' line it up with matching 'if'.
-   'smartindent': allow patterns in 'cinwords', for e.g. TeX files, where
    lines start with "\item".
-   Support this style of comments (with an option): (Brown)
	/* here is a comment that
	is just autoindented, and
	nothing else */
-   Add words to 'cinwords' to reduce the indent, e.g., "end" or "fi".
7   Use Tabs for the indent of starting lines, pad with spaces for
    continuation lines.  Allows changing 'tabstop' without messing up the
    indents.
    Patch by Lech Lorens, 2010 Mar.  Update by James McCoy, 2014 Mar 15.


Java:
8   Can have {} constructs inside parens.  Include changes from Steve
    Odendahl?
8   Recognize "import java.util.Vector" and use $CLASSPATH to find files for
    "[i" commands and friends.
-   For files found with 'include': handle "*" in included name, for Java.
    (Jason)
-   How to make a "package java.util" cause all classes in the package to be
    searched?  Also for "import java.util.*". (Mark Brophy)


'comments':
8   When formatting C comments that are after code, the "*" isn't repeated
    like it's done when there is no code.  And there is no automatic wrapping.
    Recognize comments that come after code.  Should insert the comment leader
    when it's "#" or "//".
    Other way around: when a C command starts with "* 4" the "*" is repeated
    while it should not.  Use syntax HL comment recognition?
7   When using "comments=fg:--", Vim inserts three spaces for a new line.
    When hitting a TAB, these spaces could be removed.
7   The 'n'esting flag doesn't do the indenting of the last (rightmost) item.
6   Make strings in 'comments' option a RE, to be able to match more
    complicated things. (Phillipps)  Use a special flag to indicate that a
    regexp is used.
8   Make the 'comments' option with "/* * */" lines only repeat the "*" line
    when there is a "/*" before it?  Or include this in 'cindent'?


Virtual edit:
8   Make the horizontal scrollbar work to move the text further left.
7   Allow specifying it separately for Tabs and beyond end-of-line?


Text objects:
8   Add text object for fold, so that it can be yanked when it's open.
8   Add test script for text object commands "aw", "iW", etc.
8   Add text object for part of a CamelHumpedWord and under_scored_word.
    (Scott Graham)  "ac" and "au"?
8   Add a text object for any kind of quoting, also with multi-byte
    characters.  Option to specify what quotes are recognized (default: all)
    use "aq" and "iq".  Use 'quotepairs' to define pairs of quotes, like
    'matchpairs'?
8   Add text object for any kind of parens, also multi-byte ones.
8   Add a way to make an ":omap" for a user-defined text object.  Requires
    changing the starting position in oap->start.
8   Add "gp" and "gP" commands: insert text and make sure there is a single
    space before it, unless at the start of the line, and after it, unless at
    the end of the line or before a ".".
7   Add objects with backwards extension?  Use "I" and "A".  Thus "2dAs"
    deletes the current and previous sentence. (Jens Paulus)
7   Add "g{" and "g}" to move to the first/last character of a paragraph
    (instead of the line just before/after a paragraph as with "{" and "}").
6   Ignore comment leaders for objects.  Make "das" work in reply-email.
5   Make it possible to use syntax group matches as a text object.  For
    example, define a "ccItem" group, then do "da<ccItem>" to delete one.
    Or, maybe just define "dai", delete-an-item, to delete the syntax item the
    cursor is on.


Select mode:
8   In blockwise mode, typed characters are inserted in front of the block,
    backspace deletes a column before the block. (Steve Hall)
7   Alt-leftmouse starts block mode selection in MS Word.
    See http://vim.wikia.com/wiki/Use_Alt-Mouse_to_select_blockwise.
7   Add Cmdline-select mode.  Like Select mode, but used on the command line.
    - Change gui_send_mouse_event() to pass on mouse events when 'mouse'
      contains 'C' or 'A'.
    - Catch mouse events in ex_getln.c.  Also shift-cursor, etc., like in
      normal_cmd().
    - remember start and end of selection in cmdline_info.
    - Typing text replaces the selection.


Visual mode:
8   Support using "." in Visual mode. Use the operator applied to the Visual
    selection, if possible.
-   When dragging the Visual selection with the mouse and 'scrolloff' is zero,
    behave like 'scrolloff' is one, so that the text scrolls when the pointer
    is in the top line.
-   Displaying size of Visual area: use 24-33 column display.
    When selecting multiple lines, up to about a screenful, also count the
    characters.
8   When using "I" or "A" in Visual block mode, short lines do not get the new
    text.  Make it possible to add the text to short lines too, with padding
    where needed.
7   With a Visual block selected, "2x" deletes a block of double the width,
    "3y" yanks a block of triple width, etc.
7   When selecting linewise, using "itext" should insert "text" at the start
    of each selected line.
8   What is "R" supposed to do in Visual mode?
8   Make Visual mode local to the buffer.  Allow changing to another buffer.
    When starting a new Visual selection, remove the Visual selection in any
    other buffer. (Ron Aaron)
8   Support dragging the Visual area to drop it somewhere else. (Ron Aaron,
    Ben Godfrey)
7   Support dragging the Visual area to drop it in another program, and
    receive dropped text from another program. (Ben Godfrey)
7   With blockwise Visual mode and "c", "C", "I", "A", etc., allow the use of
    a <CR>.  The entered lines are repeated over the Visual area.
7   Filtering a block should only apply to the block, not to the whole lines.
    When the number of lines is increased, add lines. When decreased, pad with
    spaces or delete? Use ":`<,`>" on the command line.
8   After filtering the Visual area, make "gv" select the filtered text?
    Currently "gv" only selects a single line, not useful.
7   Don't move the cursor when scrolling?  Needed when the selection should
    stay the same.  Scroll to the cursor at any movement command.  With an
    option!
7   In Visual block mode, need to be able to define a corner on a position
    that doesn't have text?  Also: when using the mouse, be able to select
    part of a TAB.  Even more: Add a mode where the cursor can be on a screen
    position where there is no text.  When typing, add spaces to fill the gap.
    Other solution: Always use curswant, so that you can move the cursor to
    the right column, and then use up/down movements to select the line,
    without changing the column.
6   ":left" and ":right" should work in Visual block mode.
7   CTRL-I and CTRL-O should work in Visual mode, but only jump to marks in the
    current buffer.
6   In non-Block mode, "I" should insert the same text in front of each line,
    before the first non-blank, "gI" in column 1.
6   In non-Block mode, "A" should append the same text after each line.
6   When in blockwise visual selection (CTRL-V), allow cursor to be placed
    right of the line.  Could also allow cursor to be placed anywhere on a TAB
    or other special character.
6   Add commands to move selected text, without deselecting.


More advanced repeating commands:
-   Add "." command for visual mode: redo last visual command (e.g. ":fmt").
-   Add command to repeat last movement.  Including count.
-   Add "." command after operator: repeat last command of same operator.  E.g.
    "c." will repeat last change, also when "x" used since then (Webb).
    "y." will repeat last yank.
    "c2." will repeat the last but one change?
    Also: keep history of Normal mode commands, add command to list the history
    and/or pick an older command.
-   History stack for . command?  Use "g." command.


Mappings and Abbreviations:
8   When "0" is mapped (it is a movement command) this mapping should not be
    used after typing another number, e.g. "20l". (Charles Campbell)
    Is this possible without disabling the mapping of the following command?
8   Should mapping <C-A> and <C-S-A> both work?
7   ":abbr b byte", append "b " to an existing word still expands to "byte".
    This is Vi compatible, but can we avoid it anyway?
8   To make a mapping work with a prepended "x to select a register, store the
    last _typed_ register name and access it with "&.
8   Add ":amap", like ":amenu".
7   Add a mapping that works always, for remapping the keyboard.
8   Add ":cab!", abbreviations that only apply to Command-line mode and not to
    entering search strings.
8   Add a flag to ":abbrev" to eat the character that triggers the
    abbreviation.  Thus "abb ab xxx" and typing "ab<Space>" inserts "xxx" and
    not the <Space>.
8   Give a warning when using CTRL-C in the lhs of a mapping.  It will never
    (?) work.
7   Add <0x8f> (hex), <033> (octal) and <123> (decimal) to <> notation?
7   When someone tries to unmap with a trailing space, and it fails, try
    unmapping without the trailing space.  Helps for ":unmap xx | unmap yy".
6   Context-sensitive abbreviations: Specify syntax group(s) in which the
    abbreviations are to be used.
-   Add mappings that take arguments.  Could work like the ":s" command.  For
    example, for a mouse escape sequence:
	:mapexp  <Esc>{\([0-9]*\),\([0-9]*\);	H\1j\2l
-   Add optional <Number> argument for mappings:
    :map <Number>q	     ^W^W<Number>G
    :map <Number>q<Number>t  ^W^W<Number1-1>G<Number2>l
    :map q<Char>	    :s/<Char>/\u\0/g
    Or implicit:
    :map q			<Register>d<Number>$
-   Add command to repeat a whole mapping ("." only repeats the last change in
    a mapping).  Also: Repeat a whole insert command, including any mappings
    that it included.  Sort-of automatic recording?
-   Include an option (or flag to 'cpoptions') that makes errors in mappings
    not flush the rest of the mapping (like nvi does).
-   Use context sensitiveness of completion to switch abbreviations and
    mappings off for :unab and :unmap.
6   When using mappings in Insert mode, insert characters for incomplete
    mappings first, then remove them again when a mapping matches.  Avoids
    that characters that are the start of some mapping are not shown until you
    hit another character.
-   Add mappings for replace mode: ":rmap".  How do we then enter mappings for
    non-replace Insert mode?
-   Add separate mappings for Visual-character/block/line mode?
-   Add 'mapstop' command, to stop recursive mappings.
-   List mappings that have a raw escape sequence both with the name of the key
    for that escape sequence (if there is one) and the sequence itself.
-   List mappings: Once with special keys listed as <>, once with meta chars as
    <M-a>, once with the byte values (octal?).  Sort of "spell mapping" command?
-   When entering mappings: Add the possibility to enter meta keys like they
    are displayed, within <>: <M-a>, <~@> or <|a>.
-   Allow multiple arguments to :unmap.
-   Command to show keys that are not used and available for mapping
    ":freekeys".
-   Allow any character except white space in abbreviations lhs (Riehm).


Incsearch:
-   Add a limit to the number of lines that are searched for 'incsearch'?
-   When no match is found and the user types more, the screen is redrawn
    anyway.  Could skip that.  Esp. if the line wraps and the text is scrolled
    up every time.
-   Temporarily open folds to show where the search ends up.  Restore the
    folds when going to another line.
-   When incsearch used and hitting return, no need to search again in many
    cases, saves a lot of time in big files. (Slootman wants to work on this?)
    When not using special characters, can continue search from the last match
    (or not at all, when there was no match).  See oldmail/webb/in.872.


Searching:
9   Should have an option for :vimgrep to find lines without a match.
8   Add "g/" and "gb" to search for a pattern in the Visually selected text?
    "g?" is already used for rot13.
    The vis.vim script has a ":S" command that does something like this.
    Can use "g/" in Normal mode, uses the '< to '> area.
    Use "&/" for searching the text in the Visual area?
9   Add "v" offset: "/pat/v": search for pattern and start Visual mode on the
    matching text.
8   Add a modifier to interpret a space like "\_s\+" to make it much easier to
    search for a phrase.
8   Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)".  \@g stands
    for "go recursive here" and \@( \) marks the recursive part.
    Perl does it this way:
	    $paren = qr/ \(( [^()] | (??{ $paren }) )* \) /x;
    Here $paren is evaluated when it's encountered.  This is like a regexp
    inside a regexp.  In the above terms it would be:
	    \@((\([^()]\|\@g\)*)\)
8   Show the progress every second.  Could use the code that checks for CTRL-C
    to find out how much time has passed.  Or use SIGALRM.  Where to show the
    number?
7   Support for approximate-regexps to find similar words (agrep
    http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
8   Add an item for a big character range, so that one can search for a
    chinese character: \z[234-1234]  or \z[XX-YY] or \z[0x23-0x234].
7   Add an item stack to allow matching ().  One side is "push X on
    the stack if previous atom matched".  Other side is "match with top of
    stack, pop it when it matches".  Use "\@pX" and "\@m"?
	Example: \((\@p).\{-}\@m\)*
7   Add a flag to "/pat/" to discard an error.  Useful to continue a mapping
    when a search fails.  Could be "/pat/E" (e is already used for end offset).
7   Add pattern item to use properties of Unicode characters.  In Perl it's
    "\p{L}" for a letter.  See Regular Expression Pocket Reference.
8   Would it be possible to allow ":23,45/pat/flags" to search for "pat" in
    lines 23 to 45?  Or does this conflict with Ex range syntax?
8   Allow identical pairs in 'matchpairs'.  Restrict the search to the current
    line.
7   Allow longer pairs in 'matchpairs'.  Use matchit.vim as an
    example.
8   Make it possible to define the character that "%" checks for in
    #if/#endif.  For nmake it's !if/!endif.
-   For "%" command: set hierarchy for which things include other things that
    should be ignored (like "*/" or "#endif" inside /* */).
    Also: use "%" to jump from start to end of syntax region and back.
    Alternative: use matchit.vim
8   A pattern like "\([^a]\+\)\+" takes an awful long time.  Recognize that
    the recursive "\+" is meaningless and optimize for it.
    This one is also very slow on "/* some comment */": "^\/\*\(.*[^/]\)*$".
7   Recognize "[a-z]", "[0-9]", etc. and replace them with the faster "\l" and
    "\d".
7   Add a way to specify characters in <C-M> or <Key> form.  Could be
    \%<C-M>.
8   Add an argument after ":s/pat/str/" for a range of matches.  For example,
    ":s/pat/str/#3-4" to replace only the third and fourth "pat" in a line.
8   When 'iskeyword' is changed the matches from 'hlsearch' may change. (Benji
    Fisher)  redraw if some options are set while 'hlsearch' is set?
8   Add an option not to use 'hlsearch' highlighting for ":s" and ":g"
    commands. (Kahn)  It would work like ":noh" is used after that command.
    Also: An extra flag to do this once, and a flag to keep the existing
    search pattern.
-   Make 'hlsearch' a local/global option, so that it can be disabled in some
    of the windows.
-   Add \%h{group-name}; to search for a specific highlight group.
    Add \%s{syntax-group}; to search for a specific syntax group.
-   Support Perl regexp.  Use PCRE (Perl Compatible RE) package. (Shade)
    Or translate the pattern to a Vim one.
    Don't switch on with an option for typed commands/mappings/functions, it's
    too confusing.  Use "\@@" in the pattern, to avoid incompatibilities.
8   Add a way to access the last substitute text, what is used for ":s//~/".
    Can't use the ~ register, it's already used for drag & drop.
-   Remember flags for backreferenced items, so that "*" can be used after it.
    Check with "\(\S\)\1\{3}". (Hemmerling)
8   Flags that apply to the whole pattern.
    This works for all places where a regexp is used.
    Add "\q" to not store this pattern as the last search pattern?
-   Add flags to search command (also for ":s"?):
    i	ignore case
    I	use case
    p	use Perl regexp syntax (or POSIX?)
    v	use Vi regexp syntax
    f	forget pattern, don't keep it for "n" command
    F   remember pattern, keep it for "n" command
    Perl uses these too:
    e	evaluate the right side as an expression (Perl only)
    m	multiple line expression (we don't need it)
    o	compile only once (Perl only)
    s	single line expression (we don't need it)
    x	extended regexp (we don't need it)
    When used after ":g" command, backslash needed to avoid confusion with the
    following command.
    Add 'searchflags' for default flags (replaces 'gdefault').
-   Add command to display the last used substitute pattern and last used
    pattern. (Margo)  Maybe make it accessible through a register (like "/
    for search string)?
7   Use T-search algorithm, to speed up searching for strings without special
    characters.  See C't article, August 1997.
-   Add 'fuzzycase' option, so that case doesn't matter, and '-' and '_' are
    equivalent (for Unix filenames).
-   Add 'v' flag to search command: enter Visual mode, with the matching text
    as Visual area. (variation on idea from Bertin)
-   Searching: "/this//that/" should find "that" after "this".
-   Add global search commands: Instead of wrapping at the end of the buffer,
    they continue in another buffer.  Use flag after search pattern:
    a	for the next file in the argument list
    f	for file in the buffer list
    w	for file edited in a window.
    e.g. "/pat/f".  Then "n" and "N" work through files too.  "f" flag also for
    ":s/pat/foo/f"???  Then when 'autowrite' and 'hidden' are both not set, ask
    before saving files: "Save modified buffer "/path/file"? (Yes/Hide/No
    Save-all/hide-All/Quit) ".
-   ":s/pat/foo/3": find 3rd match of "pat", like sed. (Thomas Koehler)
7   When searching with 'n' give message when getting back where the search
    first started.  Remember start of search in '/ mark.
7   Add option that scrolls screen to put cursor in middle of screen after
    search always/when off-screen/never.  And after a ":tag" command.  Maybe
    specify how many lines below the screen causes a redraw with the cursor in
    the middle (default would be half a screen, zero means always).
6   Support multiple search buffers, so macros can be made without side
    effects.
7   From xvim: Allow a newline in search patterns (also for :s, can delete
    newline).  Add BOW, EOW, NEWL, NLORANY, NLBUTANY, magic 'n' and 'r', etc.
    [not in xvim:] Add option to switch on matches crossing ONE line boundary.
7   Add ":iselect", a combination of ":ilist" and ":tselect". (Aaron) (Zellner)
    Also ":dselect".


Undo:
9   ":gundo" command: global undo.  Undoes changes spread over multiple files
    in the order they were made.  Also ":gredo".  Both with a count.  Useful
    when tests fail after making changes and you forgot in which files.
9   After undo/redo, in the message show whether the buffer is modified or
    not.
8   Search for pattern in undo tree, showing when it happened and the text
    state, so that you can jump to it.
8   Undo tree: visually show the tree somehow (Damian Conway)
    Show only the leaves, indicating how many changed from the branch and the
    timestamp?
    Put branch with most recent change on the left, older changes get more
    indent?
-   Make it possible to undo all the commands from a mapping, including a
    trailing unfinished command, e.g. for ":map K iX^[r".
-   When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not
    possible, even when typing <Esc> immediately. (Grahn)  Also for "i", "a",
    etc.  Postpone saving for undo until something is really inserted?
8   When Inserting a lot of text, it can only be undone as a whole.  Make undo
    sync points at every line or word.  Could recognize the start of a new
    word (white space and then non-white space) and backspacing.
    Can already use CTRL-G u, but that requires remapping a lot of things.
8   Make undo more memory-efficient: Compare text before and after change,
    only remember the lines that really changed.
7   Add undo for a range of lines.  Can change these back to a previous
    version without changing the rest of the file.  Stop doing this when a
    change includes only some of these lines and changes the line count.  Need
    to store these undo actions as a separate change that can be undone.
-   For u_save() include the column number. This can be used to set '[ and '].
    And in the future the undo can be made more efficient (Webb).
-   In out-of-memory situations: Free allocated space in undo, and reduce the
    number of undo levels (with confirmation).
-   Instead of [+], give the number of changes since the last write: [+123].
    When undoing to before the last write, change this to a negative number:
    [-99].
-   With undo with simple line delete/insert: optimize screen updating.
-   When executing macro's: Save each line for undo only once.
-   When doing a global substitute, causing almost all lines to be changed,
    undo info becomes very big.  Put undo info in swap file??


Buffer list:
7   Command to execute a command in another buffer: ":inbuf {bufname} {cmd}".
    Also for other windows: ":inwin {winnr} {cmd}".  How to make sure that
    this works properly for all commands, and still be able to return to the
    current buffer/window?  E.g.: ":inbuf xxx only".
8   Add File.{recent_files} menu entries: Recently edited files.
    Ron Aaron has a plugin for this: mru.vim.
8   Unix: Check all uses of fnamecmp() and fnamencmp() if they should check
    inode too.
7   Add another number for a buffer, which is visible for the user.  When
    creating a new buffer, use the lowest number not in use (or the highest
    number in use plus one?).
7   Offer some buffer selection from the command line?  Like using ":ls" and
    asking for a buffer number. (Zachmann)
-   When starting to edit a file that is already in the buffer list, use the
    file name argument for the new short file name. (Webb)
-   Add an option to make ":bnext" and ":bprev" wrap around the end of the
    buffer list.  Also for ":next" and ":prev"?
7   Add argument to ":ls" which is a pattern for buffers to list.
    E.g. ":ls *.c". (Thompson)
7   Add expansion of buffer names, so that "*.c" is expanded to all buffer
    names.  Needed for ":bdel *.c", ":bunload *.c", etc.
8   Support for <afile> where a buffer name is expected.
7   Add an option to mostly use slashes in file names.  Separately for
    internal use and for when executing an external program?
8   Some file systems are case-sensitive, some are not.  Besides
    'wildignorecase' there might be more parts inside
    CASE_INSENSITIVE_FILENAME that are useful on Unix.


Swap (.swp) files:
8   If writing to the swap file fails, should try to open one in another
    directory from 'dir'.  Useful in case the file system is full and when
    there are short file name problems.
8   Also use the code to try using a short file name for the backup and swap
    file for the Win32 and Dos 32 bit versions.
8   When a file is edited by root, add $LOGNAME to know who did su.
8   When the edited file is a symlink, try to put the swap file in the same
    dir as the actual file.  Adjust FullName().  Avoids editing the same file
    twice (e.g. when using quickfix).  Also try to make the name of the backup
    file the same as the actual file?
    Use the code for resolve()?
7   When using 64 bit inode numbers, also store the top 32 bits.  Add another
    field for this, using part of bo_fname[], to keep it compatible.
7   When editing a file on removable media, should put swap file somewhere
    else.  Use something like 'r' flag in 'viminfo'.  'diravoid'?
    Also: Be able to specify minimum disk space, skip directory when not
    enough room.
7   Add a configure check for which directory should be used: /tmp, /var/tmp
    or /var/preserve.
-   Add an option to create a swap file only when making the first change to
    the buffer.  (Liang)  Or only when the buffer is not read-only.
-   Add option to set "umask" for backup files and swap files (Antwerpen).
    'backupumask' and 'swapumask'?  Or 'umaskbackup' and 'umaskswap'?
-   When editing a readonly file, don't use a swap file but read parts from the
    original file.  Also do this when the file is huge (>'maxmem').  We do
    need to load the file once to count the number of lines?  Perhaps keep a
    cached list of which line is where.


Viminfo:
7   Can probably remove the code that checks for a writable viminfo file,
    because we now do the chown() for root, and others can't overwrite someone
    else's viminfo file.
8   When there is no .viminfo file and someone does "su", runs Vim, a
    root-owned .viminfo file is created.  Is there a good way to avoid this?
    Perhaps check the owner of the directory.  Only when root?
8   Add argument to keep the list of buffers when Vim is started with a file
    name. (Schild)
8   Keep the last used directory of the file browser (File/Open menu).
8   Remember the last used register for "@@".
8   Remember the redo buffer, so that "." works after restarting.
8   Remember a list of last accessed files.  To be used in the
    "File.Open Recent" menu.  Default is to remember 10 files or so.
    Also remember which files have been read and written.  How to display
    this?
7   Also store the ". register (last inserted text).
7   Make it possible to store buffer names in viminfo file relative to some
    directory, to make them portable over a network. (Aaron)
6   Store a snapshot of the currently opened windows.  So that when quitting
    Vim, and then starting again (without a file name argument), you see the
    same files in the windows.  Use ":mksession" code?
-   Make marks present in .viminfo usable as file marks: Display a list of
    "last visited files" and select one to jump to.


Modelines:
8   Before trying to execute a modeline, check that it looks like one (valid
    option names).  If it's very wrong, silently ignore it.
    Ignore a line that starts with "Subject: ".
-   Add an option to whitelist options that are allowed in a modeline.  This
    would allow careful users to use modelines, e.g., only allowing
    'shiftwidth'.
-   Add an option to let modelines only set local options, not global ones
    such as 'encoding'.
-   When an option value is coming from a modeline, do not carry it over to
    another edited file?  Would need to remember the value from before the
    modeline setting.
-   Allow setting a variable from a modeline?  Only allow using fixed strings,
    no function calls, to avoid a security problem.
-   Allow ":doauto BufRead x.cpp" in modelines, to execute autocommands for
    .cpp files.
-   Support the "abbreviate" command in modelines (Kearns).  Careful for
    characters after <Esc>, that is a security leak.
-   Add option setting to ask user if he wants to have the modelines executed
    or not.  Same for .exrc in local dir.


Sessions:
8   DOS/Windows: ":mksession" generates a "cd" command where "aa\#bb" means
    directory "#bb" in "aa", but it's used as "aa#bb". (Ronald Hoellwarth)
7   When there is a "help.txt" window in a session file, restoring that
    session will not get the "LOCAL ADDITIONS" back.
8   With ":mksession" always store the 'sessionoptions' option, even when
    "options" isn't in it. (St-Amant)
8   When using ":mksession", also store a command to reset all options to
    their default value, before setting the options that are not at their
    default value.
7   With ":mksession" also store the tag stack and jump history. (Michal
    Malecki)
7   Persistent variables: "p:var"; stored in viminfo file and sessions files.


Options:
7   ":with option=value | command": temporarily set an option value and
    restore it after the command has executed.
8   Make "old" number options that really give a number of effects into string
    options that are a comma separated list.  The old number values should
    also be supported.
8   Add commands to save and restore an option, which also preserves the flag
    that marks if the option was set.  Useful to keep the effect of setting
    'compatible' after ":syntax on" has been used.
7   There is 'titleold', why is there no 'iconold'? (Chazelas)
7   Make 'scrolloff' a global-local option, so that it can be different in the
    quickfix window, for example. (Gary Holloway)
    Also do 'sidescrolloff'.


External commands:
8   When filtering text, redirect stderr so that it can't mess up the screen
    and Vim doesn't need to redraw it.  Also for ":r !cmd".
4   Set separate shell for ":sh", piping "range!filter", reading text "r !ls"
    and writing text "w !wc". (Deutsche)  Allow arguments for fast start (e.g.
    -f).
4   Allow direct execution, without using a shell.
4   Run an external command in the background.  But how about I/O in the GUI?
    Careful: don't turn Vim into a shell!
4   Add feature to disable using a shell or external commands.


Multiple Windows:
7   "vim -oO file ..." use both horizontal and vertical splits.
8   Add CTRL-W T: go to the top window in the column of the current window.
    And CTRL-W B: go to bottom window.
7   Use CTRL-W <Tab>, like alt-tab, to switch between buffers.  Repeat <Tab>
    to select another buffer (only loaded ones?), <BS> to go back, <Enter> to
    select buffer, <Esc> to go back to original buffer.
7   Make it possible to edit a new buffer in the preview window.  A script can
    then fill it with something.  ":popen"?
7   Add a 'tool' window: behaves like a preview window but there can be
    several.  Don't count it in only_one_window(). (Alexei Alexandrov)
6   Add an option to resize the shell when splitting and/or closing a window.
    ":vsp" would make the shell wider by as many columns as needed for the new
    window.  Specify a maximum size (or use the screen size).  ":close" would
    shrink the shell by as many columns as come available. (Demirel)
7   When starting Vim several times, instantiate a Vim server, that allows
    communication between the different Vims.  Feels like one Vim running with
    multiple top-level windows.  Esp. useful when Vim is started from an IDE
    too.  Requires some form of inter process communication.
-   Support a connection to an external viewer.  Could call the viewer
    automatically after some seconds of non-activity, or with a command.
    Allow some way of reporting scrolling and cursor positioning in the viewer
    to Vim, so that the link between the viewed and edited text can be made.


Marks:
8   Add ten marks for last changed files: ':0, ':1, etc.  One mark per file.
8   When cursor is first moved because of scrolling, set a mark at this
    position.  (Rimon Barr)  Use '-.
8   Add a command to jump to a mark and make the motion inclusive.  g'm and g`m?
8   The '" mark is set to the first line, even when doing ":next" a few times.
    Only set the '" mark when the cursor was really moved in a file.
8   Make `` and '', which would position the new cursor position in the middle
    of the window, restore the old topline (or relative position) from when
    the mark was set.
7   Make a list of file marks in a separate window.  For listing all buffers,
    matching tags, errors, etc.  Normal commands to move around.  Add commands
    to jump to the mark (in current window or new window).  Start it with
    ":browse marks"?
6   Add a menu that lists the Marks like ":marks". (Amerige)
7   For ":jumps", ":tags" and ":marks", for not loaded buffers, remember the
    text at the mark.  Highlight the column with the mark.
7   Highlight each mark in some way (With "Mark" highlight group).
    Or display marks in a separate column, like 'number' does.
7   Use d"m to delete rectangular area from cursor to mark m (like Vile's \m
    command).
7   Try to keep marks in the same position when:
    - replacing with a line break, like in ":s/pat/^M/", move marks after the
      line break column to the next line. (Acevedo)
    - inserting/deleting characters in a line.
5   Include marks for start/end of the current word and section.  Useful in
    mappings.
6   Add "unnamed mark" feature: Like marks for the ":g" command, but place and
    unplace them with commands before doing something with the lines.
    Highlight the marked lines somehow.


Digraphs:
7   Make "ga" show the keymap for a character, if it exists.
    Also show the code of the character after conversion to 'fileencoding'.
-   Use digraph table to tell Vim about the collating sequence of special
    characters?
8   Add command to remove one or more (all) digraphs. (Brown)
7   Support different sets of digraphs (depending on the character set?).  At
    least Latin1/Unicode, Latin-2, MS-DOS (esp. for Win32).


Writing files:
-   In vim_rename(), should lock "from" file when deleting "to" file for
    systems other than Amiga.  Avoids problems with unexpected longname to
    shortname conversion.
8   write mch_isdevice() for Amiga, Mac, VMS, etc.
8   When appending to a file, Vim should also make a backup and a 'patchmode'
    file.
8   'backupskip' doesn't write a backup file at all, a bit dangerous for some
    applications.  Add 'backupelsewhere' to write a backup file in another
    directory?  Or add a flag to 'backupdir'?
6   Add an option to write a new, numbered, backup file each time.  Like
    'patchmode', e.g., 'backupmode'.
6   Make it possible to write 'patchmode' files to a different directory.
    E.g., ":set patchmode=~/backups/*.orig". (Thomas)
6   Add an option to prepend something to the backup file name.  E.g., "#".
    Or maybe allow a function to modify the backup file name?
8   Only make a backup when overwriting a file for the first time.  Avoids
    losing the original when writing twice. (Slootman)
7   On non-Unix machines, also overwrite the original file in some situations
    (file system full, it's a link on an NFS partition).
7   When editing a file, check that it has been change outside of Vim more
    often, not only when writing over it.  E.g., at the time the swap file is
    flushed.  Or every ten seconds or so (use the time of day, check it before
    waiting for a character to be typed).
8   When a file was changed since editing started, show this in the status
    line of the window, like "[time]".
    Make it easier to reload all outdated files that don't have changes.
    Automatic and/or with a command.


Substitute:
8   Substitute with hex/unicode number "\%xff" and "\%uabcd".  Just like
    "\%uabcd" in search pattern.
8   Make it easier to replace in all files in the argument list.  E.g.:
    ":argsub/oldword/newword/".  Works like ":argdo %s/oldword/newword/g|w".
-   :s///p prints the line after a substitution.
-   With :s///c replace \&, ~, etc. when showing the replacement pattern.
8   With :s///c allow scrolling horizontally when 'nowrap' is effective.
    Also allow a count before the scrolling keys.
-   Add number option to ":s//2": replace second occurrence of string?  Or:
    :s///N substitutes N times.
-   Add answers to ":substitute" with 'c' flag, used in a ":global", e.g.:
    ":g/pat1/s/pat2/pat3/cg": 'A' do all remaining replacements, 'Q' don't do
    any replacements, 'u' undo last substitution.
7   Substitute in a block of text.  Use {line}.{column} notation in an Ex
    range, e.g.: ":1.3,$.5s" means to substitute from line 1 column 3 to the
    last line column 5.
5   Add commands to bookmark lines, display bookmarks, remove bookmarks,
    operate on lines with bookmarks, etc.  Like ":global" but with the
    possibility to keep the bookmarks and use them with several commands.
    (Stanislav Sitar)


Mouse support:
8   Add 'o' flag to 'mouse'?
7   Be able to set a 'mouseshape' for the popup menu.
8   Add 'mouse' flag, which sets a behavior like Visual mode, but automatic
    yanking at the button-up event.  Or like Select mode, but typing gets you
    out of Select mode, instead of replacing the text. (Bhaskar)
-   Implement mouse support for the Amiga console.
-   Using right mouse button to extend a blockwise selection should attach to
    the nearest corner of the rectangle (four possible corners).
-   Precede mouse click by a number to simulate double clicks?!?
-   When mouse click after 'r' command, get character that was pointed to.


Argument list:
6   Add command to put all filenames from the tag files in the argument list.
    When given an argument, only use the files where that argument matches
    (like `grep -l ident`) and jump to the first match.
6   Add command to form an args list from all the buffers?


Registers:
8   Don't display empty registers with ":display". (Etienne)
8   Add put command that overwrites existing text.  Should also work for
    blocks.  Useful to move text around in a table.  Works like using "R ^R r"
    for every line.
6   When yanking into the unnamed registers several times, somehow make the
    previous contents also available (like it's done for deleting).  What
    register names to use?  g"1, g"2, etc.?
-   When appending to a register, also report the total resulting number of
    lines.  Or just say "99 more lines yanked", add the "more".
-   When inserting a register in Insert mode with CTRL-R, don't insert comment
    leader when line wraps?
-   The ":@r" commands should take a range and execute the register for each
    line in the range.
-   Add "P" command to insert contents of unnamed register, move selected text
	to position of previous deleted (to swap foo and bar in " + foo")
8   Should be able to yank and delete into the "/ register.
    How to take care of the flags (offset, magic)?


Debug mode:
8   Add breakpoints for setting an option
8   Add breakpoints for assigning to a variable.
7   Store the history from debug mode in viminfo.
7   Make the debug mode history available with histget() et al.


Various improvements:
7   Add plugins for formatting?  Should be able to make a choice depending on
    the language of a file (English/Korean/Japanese/etc.).
    Setting the 'langformat' option to "chinese" would load the
    "format/chinese.vim" plugin.
    The plugin would set 'formatexpr' and define the function being called.
    Edward L. Fox explains how it should be done for most Asian languages.
    (2005 Nov 24)
    Alternative: patch for utf-8 line breaking. (Yongwei Wu, 2008 Feb 23)
7   [t to move to previous xml/html tag (like "vatov"), ]t to move to next
    ("vatv").
7   [< to move to previous xml/html tag, e.g., previous <li>. ]< to move to
    next <li>, ]< to next </li>, [< to previous </li>.
8   Add ":rename" command: rename the file of the current buffer and rename
    the buffer.  Buffer may be modified.
7   Instead of filtering errors with a shell script it should be possible to
    do this with Vim script.  A function that filters the raw text that comes
    from the 'makeprg'?
-   Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
    Govindachar)
7   Add a command that goes back to the position from before jumping to the
    first quickfix location.  ":cbefore"?
7   Allow a window not to have a statusline.  Makes it possible to use a
    window as a buffer-tab selection.
8   Allow non-active windows to have a different statusline. (Yakov Lerner)
7   Add an invisible buffer which can be edited.  For use in scripts that want
    to manipulate text without changing the window layout.
8   Add a command to revert to the saved version of file; undo or redo until
    all changes are gone.
6   "vim -q -" should read the list of errors from stdin. (Gautam Mudunuri)
8   Add "--remote-fail": When contacting the server fails, exit Vim.
    Add "--remote-self": When contacting the server fails, do it in this Vim.
    Overrules the default of "--remote-send" to fail and "--remote" to do it
    in this Vim.
8   When Vim was started without a server, make it possible to start one, as
    if the "--servername" argument was given.  ":startserver <name>"?
8   No address range can be used before the command modifiers.  This makes
    them difficult to use in a menu for Visual mode.  Accept the range and
    have it apply to the following command.
8   Add the possibility to set 'fileformats' to force a format and strip other
    CR characters.  For example, for "dos" files remove CR characters at the
    end of the line, so that a file with mixed line endings is cleaned up.
    To just not display the CR characters: Add a flag to 'display'?
7   Some compilers give error messages in which the file name does not have a
    path.  Be able to specify that 'path' is used for these files.
7   Xterm sends <Esc>O3F for <M-End>.  Similarly for other <M-Home>, <M-Left>,
    etc.  Combinations of Alt, Ctrl and Shift are also possible.  Recognize
    these to avoid inserting the raw byte sequence, handle like the key
    without modifier (unless mapped).
6   Add "gG": like what "gj" is to "j": go to the N'th window line.
8   Add command like ":normal" that accepts <Key> notation like ":map".
9   Support ACLs on more systems.
7   Add ModeMsgVisual, ModeMsgInsert, etc. so that each mode message can be
    highlighted differently.
7   Add a message area for the user.  Set some option to reserve space (above
    the command line?).  Use an ":echouser" command to display the message
    (truncated to fit in the space).
7   Add %s to 'keywordprg': replace with word under the cursor. (Zellner)
8   Support printing on Unix.  Can use "lpansi.c" as an example. (Bookout)
8   Add put command that replaces the text under it.  Esp. for blockwise
    Visual mode.
7   Enhance termresponse stuff: Add t_CV(?): pattern of term response, use
    regexp: "\e\[[>?][0-9;]*c", but only check just after sending t_RV.
7   Add "g|" command: move to N'th column from the left margin (after wrapping
    and applying 'leftcol').  Works as "|" like what "g0" is to "0".
7   Support setting 'equalprg' to a user function name.
7   Highlight the characters after the end-of-line differently.
7   When 'whichwrap' contains "l", "$dl" should join lines?
8   Add an argument to configure to use $CFLAGS and not modify it? (Mooney)
8   Enabling features is a mix of configure arguments and defines in
    feature.h.  How to make this consistent?  Feature.h is required for
    non-unix systems.  Perhaps let configure define CONF_XXX, and use #ifdef
    CONF_XXX in feature.h?  Then what should min-features and max-features do?
8   Add "g^E" and "g^Y", to scroll a screen-full line up and down.
8   Add ":confirm" handling in open_exfile(), for when file already exists.
8   When quitting with changed files, make the dialog list the changed file
    and allow "write all", "discard all", "write some".  The last one would
    then ask "write" or "discard" for each changed file.  Patch in HierAssist
    does something like this. (Shah)
7   Use growarray for replace stack.
7   Have a look at viH (Hellenic or Greek version of Vim).  But a solution
    outside of Vim might be satisfactory (Haritsis).
3   Make "2d%" work like "d%d%" instead of "d2%"?
7   "g CTRL-O" jumps back to last used buffer.	Skip CTRL-O jumps in the same
    buffer.  Make jumplist remember the last ten accessed buffers?
7   Make it possible to set the size of the jumplist (also to a smaller number
    than the default). (Nikolai Weibull)
-   Add code to disable the CAPS key when going from Insert to Normal mode.
-   Set date/protection/etc. of the patchfile the same as the original file.
-   Use growarray for termcodes[] in term.c
-   Add <window-99>, like <cword> but use filename of 99'th window.
7   Add a way to change an operator to always work characterwise-inclusive
    (like "v" makes the operator characterwise-exclusive).  "x" could be used.
-   Make a set of operations on list of names: expand wildcards, replace home
    dir, append a string, delete a string, etc.
-   Remove using mktemp() and use tmpname() only?  Ctags does this.
-   When replacing environment variables, and there is one that is not set,
    turn it into an empty string?  Only when expanding options? (Hiebert)
-   Option to set command to be executed instead of producing a beep (e.g. to
    call "play newbeep.au").
-   Add option to show the current function name in the status line.  More or
    less what you find with "[[k", like how 'cindent' recognizes a function.
    (Bhatt).
-   "[r" and "]r": like "p" and "P", but replace instead of insert (esp. for
    blockwise registers).
-   Add 'timecheck' option, on by default.  Makes it possible to switch off the
    timestamp warning and question. (Dodt).
-   Add an option to set the time after which Vim should check the timestamps
    of the files.  Only check when an event occurs (e.g., character typed,
    mouse moved).  Useful for non-GUI versions where keyboard focus isn't
    noticeable.
-   Make 'smartcase' work even though 'ic' isn't set (Webb).
7   When formatting text, allow to break the line at a number of characters.
    Use an option for this: 'breakchars'?  Useful for formatting Fortran code.
-   Add flag to 'formatoptions' to be able to format book-style paragraphs
    (first line of paragraph has larger indent, no empty lines between
    paragraphs).  Complements the '2' flag.  Use '>' flag when larger indent
    starts a new paragraph, use '<' flag when smaller indent starts a new
    paragraph.	Both start a new paragraph on any indent change.
8   The 'a' flag in 'formatoptions' is too dangerous.  In some way only do
    auto-formatting in specific regions, e.g. defined by syntax highlighting.
8   Allow using a trailing space to signal a paragraph that continues on the
    next line (MIME text/plain; format=flowed, RFC 2646).  Can be used for
    continuous formatting.  Could use 'autoformat' option, which specifies a
    regexp which triggers auto-formatting (for one line).
    ":set autoformat=\\s$".
-   Be able to redefine where a sentence stops.  Use a regexp pattern?
-   Support multi-byte characters for sentences.  Example from Ben Peterson.
7   Add command "g)" to go to the end of a sentence, "g(" to go back to the
    end of a sentence. (Servatius Brandt)
-   Be able to redefine where a paragraph starts.  For "[[" where the '{' is
    not in column 1.
6   Add ":cdprev": go back to the previous directory.  Need to remember a
    stack of previous directories.  We also need ":cdnext".
7   Should ":cd" for MS-DOS go to $HOME, when it's defined?
-   Make "gq<CR>" work on the last line in the file.  Maybe for every operator?
-   Add more redirecting of Ex commands:
	:redir #>  bufname
	:redir #>> bufname   (append)
-   Give error message when starting :redir: twice or using END when no
    redirection was active.
-   Setting of options, specifically for a buffer or window, with
    ":set window.option" or ":set buffer.option=val".  Or use ":buffer.set".
    Also: "buffer.map <F1> quit".
6   Would it be possible to change the color of the cursor in the Win32
    console?  (Klaus Hast)
-   Add :delcr command:
			    *:delcr*
     :[range]delcr[!]	Check [range] lines (default: whole buffer) for lines
			ending in <CR>.  If all lines end in <CR>, or [!] is
			used, remove the <CR> at the end of lines in [range].
			A CTRL-Z at the end of the file is removed.  If
			[range] is omitted, or it is the whole file, and all
			lines end in <CR> 'textmode' is set.  {not in Vi}
-   Should integrate addstar() and file_pat_to_reg_pat().
-   When working over a serial line with 7 bit characters, remove meta
    characters from 'isprint'.
-   Use fchdir() in init_homedir(), like in FullName().
-   In win_update(), when the GUI is active, always use the scrolling area.
    Avoid that the last status line is deleted and needs to be redrawn.
-   That "cTx" fails when the cursor is just after 'x' is Vi compatible, but
    may not be what you expect.  Add a flag in 'cpoptions' for this?  More
    general: Add an option to allow "c" to work with a null motion.
-   Give better error messages by using errno (strerror()).
-   Give "Usage:" error message when command used with wrong arguments (like
    Nvi).
-   Make 'restorescreen' option also work for xterm (and others), replaces the
    SAVE_XTERM_SCREEN define.
7   Support for ":winpos" In xterm: report the current window position.
-   Give warning message when using ":set t_xx=asdf" for a termcap code that
    Vim doesn't know about.  Add flag in 'shortmess'?
6   Add ":che <file>", list all the include paths which lead to this file.
-   For a commandline that has several commands (:s, :d, etc.) summarize the
    changes all together instead of for each command (e.g. for the rot13
    macro).
-   Add command like "[I" that also shows the tree of included files.
-   ":set sm^L" results in ":set s", because short names of options are also
    expanded.  Is there a better way to do this?
-   Add ":@!" command, to ":@" like what ":source!" is to ":source".
8   Add ":@:!": repeat last command with forceit set.
-   Add 't_normal': Used whenever t_me, t_se, t_ue or t_Zr is empty.
-   ":cab map test ^V| je", ":cunab map" doesn't work.	This is vi compatible!
-   CTRL-W CTRL-E and CTRL-W CTRL-Y should move the current window up or down
    if it is not the first or last window.
-   Include-file-search commands should look in the loaded buffer of a file (if
    there is one) instead of the file itself.
7   Change 'nrformats' to include the leader for each format.  Example:
	nrformats=hex:$,binary:b,octal:0
    Add setting of 'nrformats' to syntax files.
-   'path' can become very long, don't use NameBuff for expansion.
-   When unhiding a hidden buffer, put the same line at top of the window as
    the one before hiding it.  Or: keep the same relative cursor position (so
    many percent down the windows).
-   Make it possible for the 'showbreak' to be displayed at the end of the
    line.  Use a comma to separate the part at the end and the start of the
    line?  Highlight the linebreak characters, add flag in 'highlight'.
    Make 'showbreak' local to a window.
-   Some string options should be expanded if they have wildcards, e.g.
    'dictionary' when it is "*.h".
-   Use a specific type for number and boolean options, making it possible to
    change it for specific machines (e.g. when a long is 64 bit).
-   Add option for <Insert> in replace mode going to normal mode. (Nugent)
-   Add a next/previous possibility to "[^I" and friends.
-   Add possibility to change the HOME directory.  Use the directory from the
    passwd file? (Antwerpen)
8   Add commands to push and pop all or individual options. ":setpush tw",
    ":setpop tw", ":setpush all".  Maybe pushing/popping all options is
    sufficient.  ":setflush" resets the option stack?
    How to handle an aborted mapping?  Remember position in tag stack when
    mapping starts, restore it when an error aborts the mapping?
-   Change ":fixdel" into option 'fixdel', t_del will be adjusted each time
    t_bs is set? (Webb)
-   "gc": goto character, move absolute character positions forward, also
    counting newlines.  "gC" goes backwards (Weigert).
-   When doing CTRL-^, redraw buffer with the same topline. (Demirel)  Store
    cursor row and window height to redraw cursor at same percentage of window
    (Webb).
-   Besides remembering the last used line number of a file, also remember the
    column.  Use it with CTRL-^ et. al.
-   Check for non-digits when setting a number option (careful when entering
    hex codes like 0xff).
-   Add option to make "." redo the "@r" command, instead of the last command
    executed by it.  Also to make "." redo the whole mapping.  Basically: redo
    the last TYPED command.
-   Support URL links for ^X^F in Insert mode, like for "gf".
-   Support %name% expansion for "gf" on Windows.
-   Make "gf" work on "file://c:/path/name".  "file:/c:/" and "file:///c:/"
    should also work?
-   Add 'urlpath', used like 'path' for when "gf" used on a URL?
8   When using "gf" on an absolute file name, while editing a remote file
    (starts with scp:// or http://) should prepend the method and machine
    name.
-   When finding a URL or file name, and it doesn't exist, try removing a
    trailing '.'.
-   Add ":path" command modifier.  Should work for every command that takes a
    file name argument, to search for the file name in 'path'.	Use
    find_file_in_path().
-   Highlight control characters on the screen: Shows the difference between
    CTRL-X and "^" followed by "X" (Colon).
-   Integrate parsing of cmdline command and parsing for expansion.
-   Create a program that can translate a .swp file from any machine into a
    form usable by Vim on the current machine.
-   Add ":noro" command: Reset 'ro' flag for all buffers, except ones that have
    a readonly file.  ":noro!" will reset all 'ro' flags.
-   Add a variant of CTRL-V that stops interpretation of more than one
    character.	For entering mappings on the command line where a key contains
    several special characters, e.g. a trailing newline.
-   Make '2' option in 'formatoptions' also work inside comments.
-   Add 's' flag to 'formatoptions': Do not break when inside a string. (Dodt)
-   When window size changed (with the mouse) and made too small, set it back
    to the minimal size.
-   Add "]>" and "[<", shift comment at end of line (command;  /* comment */).
-   Should not call cursorcmd() for each vgetc() in getcmdline().
-   ":split file1 file2" adds two more windows (Webb).
-   Don't give message "Incomplete last line" when editing binary file.
-   Add ":a", ":i" for preloading of named buffers.
-   When entering text, keep other windows on same buffer updated (when a line
    entered)?
-   Check out how screen does output optimizing.  Apparently this is possible
    as an output filter.
-   In dosub() regexec is called twice for the same line.  Try to avoid this.
-   Window updating from memline.c: insert/delete/replace line.
-   Optimize ml_append() for speed, esp. for reading a file.
-   V..c should keep indent when 'ai' is set, just like [count]cc.
-   Updatescript() can be done faster with a string instead of a char.
-   Screen updating is inefficient with CTRL-F and CTRL-B when there are long
    lines.
-   Uppercase characters in Ex commands can be made lowercase?
8   Add option to show characters in text not as "|A" but as decimal ("^129"),
    hex ("\x81") or octal ("\201") or meta (M-x).  Nvi has the 'octal' option
    to switch from hex to octal.  Vile can show unprintable characters in hex
    or in octal.
7   Tighter integration with xxd to edit binary files.  Make it more
    easy/obvious to use.  Command line argument?
-   How does vi detect whether a filter has messed up the screen?  Check source.
    After ":w !command" a wait_return?
-   Improve screen updating code for doput() (use s_ins()).
-   With 'p' command on last line: scroll screen up (also for terminals without
    insert line command).
-   Use insert/delete char when terminal supports it.
-   Optimize screen redraw for slow terminals.
-   Optimize "dw" for long row of spaces (say, 30000).
-   Add "-d null" for editing from a script file without displaying.
-   In Insert mode: Remember the characters that were removed with backspace
    and re-insert them one at a time with <key1>, all together with <key2>.
-   Amiga: Add possibility to set a keymap.  The code in amiga.c does not work
    yet.
-   Implement 'redraw' option.
-   Add special code to 'sections' option to define something else but '{' or
    '}' as the start of a section (e.g. one shiftwidth to the right).
7   Allow using Vim in a pipe: "ls | vim -u xxx.vim - | yyy".  Only needs
    implementing ":w" to stdout in the buffer that was read from stdin.
    Perhaps writing to stdout will work, since stderr is used for the terminal
    I/O.
8   Allow opening an unnamed buffer with ":e !cmd" and ":sp !cmd".  Vile can
    do it.
-   Add commands like ]] and [[ that do not include the line jumped to.
-   When :unab without matching "from" part and several matching "to" parts,
    delete the entry that was used last, instead of the first in the list.
-   Add text justification option.
-   Set boolean options on/off with ":set paste=off", ":set paste=on".
-   After "inv"ing an option show the value: ":set invpaste" gives "paste is
    off".
-   Check handling of CTRL-V and '\' for ":" commands that do not have TRLBAR.
-   When a file cannot be opened but does exist, give error message.
-   Amiga: When 'r' protection bit is not set, file can still be opened but
    gives read errors.  Check protection before opening.
-   When writing check for file exists but no permission, "Permission denied".
-   If file does not exist, check if directory exists.
-   Settings edit mode: make file with ":set opt=xx", edit it, parse it as ex
    commands.
-   ":set -w all": list one option per line.
-   Amiga: test for 'w' flag when reading a file.
-   :table command (Webb)
-   Add new operator: clear, make area white (replace with spaces): "g ".
-   Add command to ":read" a file at a certain column (blockwise read?).
-   Add sort of replace mode where case is taken from the old text (Goldfarb).
-   Allow multiple arguments for ":read", read all the files.
-   Support for tabs in specific columns: ":set tabcol=8,20,34,56" (Demirel).
-   Add 'searchdir' option: Directories to search for file name being edited
    (Demirel).
-   Modifier for the put command: Change to linewise, charwise, blockwise, etc.
-   Add commands for saving and restoring options ":set save" "set restore",
    for use in macro's and the like.
-   Keep output from listings in a window, so you can have a look at it while
    working in another window.  Put cmdline in a separate window?
-   Add possibility to put output of Ex commands in a buffer or file, e.g. for
    ":set all".  ":r :set all"?
-   When the 'equalalways' option is set, creating a new window should not
    result in windows to become bigger.  Deleting a window should not result in
    a window to become smaller (Webb).
-   When resizing the whole Vim window, the windows inside should be resized
    proportionally (Webb).
-   Include options directly in option table, no indirect pointers.  Use
    mkopttab to make option table?
-   When doing ":w dir", where "dir" is a directory name, write the current
    file into that directory, with the current file name (without the path)?
-   Support for 'dictionary's that are sorted, makes access a lot faster
    (Haritsis).
-   Add "^Vrx" on the command line, replace with contents of register x.  Used
    instead of CTRL-R to make repeating possible. (Marinichev)
-   Add "^Vb" on the command line, replace with word before or under the
    cursor?
-   Support mapping for replace mode and "r" command (Vi doesn't do this)?
8   Sorting of filenames for completion is wrong on systems that ignore
    case of filenames.  Add 'ignorefncase' option.  When set, case in
    filenames is ignored for sorting them. Patch by Mike Williams:
    ~/vim/patches/ignorefncase.  Also change what matches?  Or use another
    option name.
8   Should be able to compile Vim in another directory, with $(srcdir) set to
    where the sources are. Add $(srcdir) in the Makefile in a lot of places.
    (Netherton)
6   Make it configurable when "J" inserts a space or not.  Should not add a
    space after "(", for example.
5   When inserting spaces after the end-of-line for 'virtualedit', use tabs
    when the user wants this (e.g., add a "tab" field to 'virtualedit').
    (Servatius Brandt)


From Elvis:
-   Use "instman.sh" to install manpages?
-   Add ":alias" command.
-   Search patterns:
      \@	match word under cursor.
    but do:
      \@w	match the word under the cursor?
      \@W	match the WORD under the cursor?
8   ":window" command:
    :win +	next window (up)
    :win ++	idem, wrapping
    :win -	previous window (down)
    :win --	idem, wrapping
    :win nr	to window number "nr"
    :win name	to window editing buffer "name"
7   ":cc" compiles a single file (default: current one).  'ccprg'   option is
    program to use with ":cc".  Use ":compile" instead of ":cc"?


From xvi:
-   CTRL-_ : swap 8th bit of character.
-   Add egrep-like regex type, like xvi (Ned Konz) or Perl (Emmanuel Mogenet)


From vile:
-   When horizontal scrolling, use '>' for lines continuing right of a window.
-   Support putting .swp files in /tmp: Command in rc.local to move .swp files
    from /tmp to some directory before deleting files.


Far future and "big" extensions:
-   Instead of using a Makefile and autoconf, use a simple shell script to
    find the C compiler and do everything with C code.  Translate something
    like an Aap recipe and configure.ac to C.  Avoids depending on Python,
    thus will work everywhere.  With batch file to find the C compiler it
    would also work on MS-Windows.
-   Make it easy to setup Vim for groups of users: novice vi users, novice
    Vim users, C programmers, xterm users, GUI users,...
-   Change layout of blocks in swap file: Text at the start, with '\n' in
    between lines (just load the file without changes, except for Mac).
    Indexes for lines are from the end of the block backwards.  It's the
    current layout mirrored.
-   Make it possible to edit a register, in a window, like a buffer.
-   Add stuff to syntax highlighting to change the text (upper-case keywords,
    set indent, define other highlighting, etc.).
-   Mode to keep C-code formatted all the time (sort of on-line indent).
-   Several top-level windows in one Vim session.  Be able to use a different
    font in each top-level window.
-   Allow editing above start and below end of buffer (flag in 'virtualedit').
-   Smart cut/paste: recognize words and adjust spaces before/after them.
-   Add open mode, use it when terminal has no cursor positioning.
-   Special "drawing mode": a line is drawn where the cursor is moved to.
    Backspace deletes along the line (from jvim).
-   Support for underlining (underscore-BS-char), bold (char-BS-char) and other
    standout modes switched on/off with , 'overstrike' option (Reiter).
-   Add vertical mode (Paul Jury, Demirel): "5vdw" deletes a word in five
    lines, "3vitextESC" will insert "text" in three lines, etc..
4   Recognize l, #, p as 'flags' to EX commands:
    :g/RE/#l shall print lines with line numbers and in list format.
    :g/RE/dp shall print lines that are deleted.
    POSIX: Commands where flags shall apply to all lines written: list,
    number, open, print, substitute, visual, &, z.  For other commands, flags
    shall apply to the current line after the command completes.  Examples:
    :7,10j #l Join the lines 7-10 and print the result in list
-   Allow two or more users to edit the same file at the same time.  Changes
    are reflected in each Vim immediately.  Could work with local files but
    also over the internet.  See http://www.codingmonkeys.de/subethaedit/.

vim:tw=78:sw=4:sts=4:ts=8:ft=help:norl:
vim: set fo+=n :
PK�j�Z[(����vim80/doc/usr_43.txtnu�[���*usr_43.txt*	For Vim version 8.0.  Last change: 2015 Oct 23

		     VIM USER MANUAL - by Bram Moolenaar

			       Using filetypes


When you are editing a file of a certain type, for example a C program or a
shell script, you often use the same option settings and mappings.  You
quickly get tired of manually setting these each time.  This chapter explains
how to do it automatically.

|43.1|	Plugins for a filetype
|43.2|	Adding a filetype

     Next chapter: |usr_44.txt|  Your own syntax highlighted
 Previous chapter: |usr_42.txt|  Add new menus
Table of contents: |usr_toc.txt|

==============================================================================
*43.1*	Plugins for a filetype				*filetype-plugin*

How to start using filetype plugins has already been discussed here:
|add-filetype-plugin|.  But you probably are not satisfied with the default
settings, because they have been kept minimal.  Suppose that for C files you
want to set the 'softtabstop' option to 4 and define a mapping to insert a
three-line comment.  You do this with only two steps:

							*your-runtime-dir*
1. Create your own runtime directory.  On Unix this usually is "~/.vim".  In
   this directory create the "ftplugin" directory: >

	mkdir ~/.vim
	mkdir ~/.vim/ftplugin
<
   When you are not on Unix, check the value of the 'runtimepath' option to
   see where Vim will look for the "ftplugin" directory: >

	set runtimepath

<  You would normally use the first directory name (before the first comma).
   You might want to prepend a directory name to the 'runtimepath' option in
   your |vimrc| file if you don't like the default value.

2. Create the file "~/.vim/ftplugin/c.vim", with the contents: >

	setlocal softtabstop=4
	noremap <buffer> <LocalLeader>c o/**************<CR><CR>/<Esc>
	let b:undo_ftplugin = "setl softtabstop< | unmap <buffer> <LocalLeader>c"

Try editing a C file.  You should notice that the 'softtabstop' option is set
to 4.  But when you edit another file it's reset to the default zero.  That is
because the ":setlocal" command was used.  This sets the 'softtabstop' option
only locally to the buffer.  As soon as you edit another buffer, it will be
set to the value set for that buffer.  For a new buffer it will get the
default value or the value from the last ":set" command.

Likewise, the mapping for "\c" will disappear when editing another buffer.
The ":map <buffer>" command creates a mapping that is local to the current
buffer.  This works with any mapping command: ":map!", ":vmap", etc.  The
|<LocalLeader>| in the mapping is replaced with the value of the
"maplocalleader" variable.

The line to set b:undo_ftplugin is for when the filetype is set to another
value.  In that case you will want to undo your preferences.  The
b:undo_ftplugin variable is executed as a command. Watch out for characters
with a special meaning inside a string, such as a backslash.

You can find examples for filetype plugins in this directory: >

	$VIMRUNTIME/ftplugin/

More details about writing a filetype plugin can be found here:
|write-plugin|.

==============================================================================
*43.2*	Adding a filetype

If you are using a type of file that is not recognized by Vim, this is how to
get it recognized.  You need a runtime directory of your own.  See
|your-runtime-dir| above.

Create a file "filetype.vim" which contains an autocommand for your filetype.
(Autocommands were explained in section |40.3|.)  Example: >

	augroup filetypedetect
	au BufNewFile,BufRead *.xyz	setf xyz
	augroup END

This will recognize all files that end in ".xyz" as the "xyz" filetype.  The
":augroup" commands put this autocommand in the "filetypedetect" group.  This
allows removing all autocommands for filetype detection when doing ":filetype
off".  The "setf" command will set the 'filetype' option to its argument,
unless it was set already.  This will make sure that 'filetype' isn't set
twice.

You can use many different patterns to match the name of your file.  Directory
names can also be included.  See |autocmd-patterns|.  For example, the files
under "/usr/share/scripts/" are all "ruby" files, but don't have the expected
file name extension.  Adding this to the example above: >

	augroup filetypedetect
	au BufNewFile,BufRead *.xyz			setf xyz
	au BufNewFile,BufRead /usr/share/scripts/*	setf ruby
	augroup END

However, if you now edit a file /usr/share/scripts/README.txt, this is not a
ruby file.  The danger of a pattern ending in "*" is that it quickly matches
too many files.  To avoid trouble with this, put the filetype.vim file in
another directory, one that is at the end of 'runtimepath'.  For Unix for
example, you could use "~/.vim/after/filetype.vim".
   You now put the detection of text files in ~/.vim/filetype.vim: >

	augroup filetypedetect
	au BufNewFile,BufRead *.txt			setf text
	augroup END

That file is found in 'runtimepath' first.  Then use this in
~/.vim/after/filetype.vim, which is found last: >

	augroup filetypedetect
	au BufNewFile,BufRead /usr/share/scripts/*	setf ruby
	augroup END

What will happen now is that Vim searches for "filetype.vim" files in each
directory in 'runtimepath'.  First ~/.vim/filetype.vim is found.  The
autocommand to catch *.txt files is defined there.  Then Vim finds the
filetype.vim file in $VIMRUNTIME, which is halfway 'runtimepath'.  Finally
~/.vim/after/filetype.vim is found and the autocommand for detecting ruby
files in /usr/share/scripts is added.
   When you now edit /usr/share/scripts/README.txt, the autocommands are
checked in the order in which they were defined.  The *.txt pattern matches,
thus "setf text" is executed to set the filetype to "text".  The pattern for
ruby matches too, and the "setf ruby" is executed.  But since 'filetype' was
already set to "text", nothing happens here.
   When you edit the file /usr/share/scripts/foobar the same autocommands are
checked.  Only the one for ruby matches and "setf ruby" sets 'filetype' to
ruby.


RECOGNIZING BY CONTENTS

If your file cannot be recognized by its file name, you might be able to
recognize it by its contents.  For example, many script files start with a
line like:

	#!/bin/xyz ~

To recognize this script create a file "scripts.vim" in your runtime directory
(same place where filetype.vim goes).  It might look like this: >

	if did_filetype()
	  finish
	endif
	if getline(1) =~ '^#!.*[/\\]xyz\>'
	  setf xyz
	endif

The first check with did_filetype() is to avoid that you will check the
contents of files for which the filetype was already detected by the file
name.  That avoids wasting time on checking the file when the "setf" command
won't do anything.
   The scripts.vim file is sourced by an autocommand in the default
filetype.vim file.  Therefore, the order of checks is:

	1. filetype.vim files before $VIMRUNTIME in 'runtimepath'
	2. first part of $VIMRUNTIME/filetype.vim
	3. all scripts.vim files in 'runtimepath'
	4. remainder of $VIMRUNTIME/filetype.vim
	5. filetype.vim files after $VIMRUNTIME in 'runtimepath'

If this is not sufficient for you, add an autocommand that matches all files
and sources a script or executes a function to check the contents of the file.

==============================================================================

Next chapter: |usr_44.txt|  Your own syntax highlighted

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�(i�>�>vim80/doc/usr_28.txtnu�[���*usr_28.txt*	For Vim version 8.0.  Last change: 2008 Jun 14

		     VIM USER MANUAL - by Bram Moolenaar

				   Folding


Structured text can be separated in sections.  And sections in sub-sections.
Folding allows you to display a section as one line, providing an overview.
This chapter explains the different ways this can be done.

|28.1|	What is folding?
|28.2|	Manual folding
|28.3|	Working with folds
|28.4|	Saving and restoring folds
|28.5|	Folding by indent
|28.6|	Folding with markers
|28.7|	Folding by syntax
|28.8|	Folding by expression
|28.9|	Folding unchanged lines
|28.10|	Which fold method to use?

     Next chapter: |usr_29.txt|  Moving through programs
 Previous chapter: |usr_27.txt|  Search commands and patterns
Table of contents: |usr_toc.txt|

==============================================================================
*28.1*	What is folding?

Folding is used to show a range of lines in the buffer as a single line on the
screen.  Like a piece of paper which is folded to make it shorter:

	+------------------------+
	| line 1		 |
	| line 2		 |
	| line 3		 |
	|_______________________ |
	\			 \
	 \________________________\
	 / folded lines		  /
	/________________________/
	| line 12		 |
	| line 13		 |
	| line 14		 |
	+------------------------+

The text is still in the buffer, unchanged.  Only the way lines are displayed
is affected by folding.

The advantage of folding is that you can get a better overview of the
structure of text, by folding lines of a section and replacing it with a line
that indicates that there is a section.

==============================================================================
*28.2*	Manual folding

Try it out: Position the cursor in a paragraph and type: >

	zfap

You will see that the paragraph is replaced by a highlighted line.  You have
created a fold.  |zf| is an operator and |ap| a text object selection.  You
can use the |zf| operator with any movement command to create a fold for the
text that it moved over.  |zf| also works in Visual mode.

To view the text again, open the fold by typing: >

	zo

And you can close the fold again with: >

	zc

All the folding commands start with "z".  With some fantasy, this looks like a
folded piece of paper, seen from the side.  The letter after the "z" has a
mnemonic meaning to make it easier to remember the commands:

	zf	F-old creation
	zo	O-pen a fold
	zc	C-lose a fold

Folds can be nested: A region of text that contains folds can be folded
again.  For example, you can fold each paragraph in this section, and then
fold all the sections in this chapter.  Try it out.  You will notice that
opening the fold for the whole chapter will restore the nested folds as they
were, some may be open and some may be closed.

Suppose you have created several folds, and now want to view all the text.
You could go to each fold and type "zo".  To do this faster, use this command: >

	zr

This will R-educe the folding.  The opposite is: >

	zm

This folds M-ore.  You can repeat "zr" and "zm" to open and close nested folds
of several levels.

If you have nested several levels deep, you can open all of them with: >

	zR

This R-educes folds until there are none left.  And you can close all folds
with: >

	zM

This folds M-ore and M-ore.

You can quickly disable the folding with the |zn| command.  Then |zN| brings
back the folding as it was.  |zi| toggles between the two.  This is a useful
way of working:
- create folds to get overview on your file
- move around to where you want to do your work
- do |zi| to look at the text and edit it
- do |zi| again to go back to moving around

More about manual folding in the reference manual: |fold-manual|

==============================================================================
*28.3*	Working with folds

When some folds are closed, movement commands like "j" and "k" move over a
fold like it was a single, empty line.  This allows you to quickly move around
over folded text.

You can yank, delete and put folds as if it was a single line.  This is very
useful if you want to reorder functions in a program.  First make sure that
each fold contains a whole function (or a bit less) by selecting the right
'foldmethod'.  Then delete the function with "dd", move the cursor and put it
with "p".  If some lines of the function are above or below the fold, you can
use Visual selection:
- put the cursor on the first line to be moved
- hit "V" to start Visual mode
- put the cursor on the last line to be moved
- hit "d" to delete the selected lines.
- move the cursor to the new position and "p"ut the lines there.

It is sometimes difficult to see or remember where a fold is located, thus
where a |zo| command would actually work.  To see the defined folds: >

	:set foldcolumn=4

This will show a small column on the left of the window to indicate folds.
A "+" is shown for a closed fold.  A "-" is shown at the start of each open
fold and "|" at following lines of the fold.

You can use the mouse to open a fold by clicking on the "+" in the foldcolumn.
Clicking on the "-" or a "|" below it will close an open fold.

To open all folds at the cursor line use |zO|.
To close all folds at the cursor line use |zC|.
To delete a fold at the cursor line use |zd|.
To delete all folds at the cursor line use |zD|.

When in Insert mode, the fold at the cursor line is never closed.  That allows
you to see what you type!

Folds are opened automatically when jumping around or moving the cursor left
or right.  For example, the "0" command opens the fold under the cursor
(if 'foldopen' contains "hor", which is the default).  The 'foldopen' option
can be changed to open folds for specific commands.  If you want the line
under the cursor always to be open, do this: >

	:set foldopen=all

Warning: You won't be able to move onto a closed fold then.  You might want to
use this only temporarily and then set it back to the default: >

	:set foldopen&

You can make folds close automatically when you move out of it: >

	:set foldclose=all

This will re-apply 'foldlevel' to all folds that don't contain the cursor.
You have to try it out if you like how this feels.  Use |zm| to fold more and
|zr| to fold less (reduce folds).

The folding is local to the window.  This allows you to open two windows on
the same buffer, one with folds and one without folds.  Or one with all folds
closed and one with all folds open.

==============================================================================
*28.4*	Saving and restoring folds

When you abandon a file (starting to edit another one), the state of the folds
is lost.  If you come back to the same file later, all manually opened and
closed folds are back to their default.  When folds have been created
manually, all folds are gone!  To save the folds use the |:mkview| command: >

	:mkview

This will store the settings and other things that influence the view on the
file.  You can change what is stored with the 'viewoptions' option.
When you come back to the same file later, you can load the view again: >

	:loadview

You can store up to ten views on one file.  For example, to save the current
setup as the third view and load the second view: >

	:mkview 3
	:loadview 2

Note that when you insert or delete lines the views might become invalid.
Also check out the 'viewdir' option, which specifies where the views are
stored.  You might want to delete old views now and then.

==============================================================================
*28.5*	Folding by indent

Defining folds with |zf| is a lot of work.  If your text is structured by
giving lower level items a larger indent, you can use the indent folding
method.  This will create folds for every sequence of lines with the same
indent.  Lines with a larger indent will become nested folds.  This works well
with many programming languages.

Try this by setting the 'foldmethod' option: >

	:set foldmethod=indent

Then you can use the |zm| and |zr| commands to fold more and reduce folding.
It's easy to see on this example text:

This line is not indented
	This line is indented once
		This line is indented twice
		This line is indented twice
	This line is indented once
This line is not indented
	This line is indented once
	This line is indented once

Note that the relation between the amount of indent and the fold depth depends
on the 'shiftwidth' option.  Each 'shiftwidth' worth of indent adds one to the
depth of the fold.  This is called a fold level.

When you use the |zr| and |zm| commands you actually increase or decrease the
'foldlevel' option.  You could also set it directly: >

	:set foldlevel=3

This means that all folds with three times a 'shiftwidth' indent or more will
be closed.  The lower the foldlevel, the more folds will be closed.  When
'foldlevel' is zero, all folds are closed.  |zM| does set 'foldlevel' to zero.
The opposite command |zR| sets 'foldlevel' to the deepest fold level that is
present in the file.

Thus there are two ways to open and close the folds:
(A) By setting the fold level.
    This gives a very quick way of "zooming out" to view the structure of the
    text, move the cursor, and "zoom in" on the text again.

(B) By using |zo| and |zc| commands to open or close specific folds.
    This allows opening only those folds that you want to be open, while other
    folds remain closed.

This can be combined: You can first close most folds by using |zm| a few times
and then open a specific fold with |zo|.  Or open all folds with |zR| and
then close specific folds with |zc|.

But you cannot manually define folds when 'foldmethod' is "indent", as that
would conflict with the relation between the indent and the fold level.

More about folding by indent in the reference manual: |fold-indent|

==============================================================================
*28.6*	Folding with markers

Markers in the text are used to specify the start and end of a fold region.
This gives precise control over which lines are included in a fold.  The
disadvantage is that the text needs to be modified.

Try it: >

	:set foldmethod=marker

Example text, as it could appear in a C program:

	/* foobar () {{{ */
	int foobar()
	{
		/* return a value {{{ */
		return 42;
		/* }}} */
	}
	/* }}} */

Notice that the folded line will display the text before the marker.  This is
very useful to tell what the fold contains.

It's quite annoying when the markers don't pair up correctly after moving some
lines around.  This can be avoided by using numbered markers.  Example:

	/* global variables {{{1 */
	int varA, varB;

	/* functions {{{1 */
	/* funcA() {{{2 */
	void funcA() {}

	/* funcB() {{{2 */
	void funcB() {}
	/* }}}1 */

At every numbered marker a fold at the specified level begins.  This will make
any fold at a higher level stop here.  You can just use numbered start markers
to define all folds.  Only when you want to explicitly stop a fold before
another starts you need to add an end marker.

More about folding with markers in the reference manual: |fold-marker|

==============================================================================
*28.7*	Folding by syntax

For each language Vim uses a different syntax file.  This defines the colors
for various items in the file.  If you are reading this in Vim, in a terminal
that supports colors, the colors you see are made with the "help" syntax file.
   In the syntax files it is possible to add syntax items that have the "fold"
argument.  These define a fold region.  This requires writing a syntax file
and adding these items in it.  That's not so easy to do.  But once it's done,
all folding happens automatically.
   Here we'll assume you are using an existing syntax file.  Then there is
nothing more to explain.  You can open and close folds as explained above.
The folds will be created and deleted automatically when you edit the file.

More about folding by syntax in the reference manual: |fold-syntax|

==============================================================================
*28.8*	Folding by expression

This is similar to folding by indent, but instead of using the indent of a
line a user function is called to compute the fold level of a line.  You can
use this for text where something in the text indicates which lines belong
together.  An example is an e-mail message where the quoted text is indicated
by a ">" before the line.  To fold these quotes use this: >

	:set foldmethod=expr
	:set foldexpr=strlen(substitute(substitute(getline(v:lnum),'\\s','',\"g\"),'[^>].*','',''))

You can try it out on this text:

> quoted text he wrote
> quoted text he wrote
> > double quoted text I wrote
> > double quoted text I wrote

Explanation for the 'foldexpr' used in the example (inside out):
   getline(v:lnum)			gets the current line
   substitute(...,'\\s','','g')		removes all white space from the line
   substitute(...,'[^>].*','','')	removes everything after leading '>'s
   strlen(...)				counts the length of the string, which
					is the number of '>'s found

Note that a backslash must be inserted before every space, double quote and
backslash for the ":set" command.  If this confuses you, do >

	:set foldexpr

to check the actual resulting value.  To correct a complicated expression, use
the command-line completion: >

	:set foldexpr=<Tab>

Where <Tab> is a real Tab.  Vim will fill in the previous value, which you can
then edit.

When the expression gets more complicated you should put it in a function and
set 'foldexpr' to call that function.

More about folding by expression in the reference manual: |fold-expr|

==============================================================================
*28.9*	Folding unchanged lines

This is useful when you set the 'diff' option in the same window.  The
|vimdiff| command does this for you.  Example: >

	:setlocal diff foldmethod=diff scrollbind nowrap foldlevel=1

Do this in every window that shows a different version of the same file.  You
will clearly see the differences between the files, while the text that didn't
change is folded.

For more details see |fold-diff|.

==============================================================================
*28.10* Which fold method to use?

All these possibilities make you wonder which method you should choose.
Unfortunately, there is no golden rule.  Here are some hints.

If there is a syntax file with folding for the language you are editing, that
is probably the best choice.  If there isn't one, you might try to write it.
This requires a good knowledge of search patterns.  It's not easy, but when
it's working you will not have to define folds manually.

Typing commands to manually fold regions can be used for unstructured text.
Then use the |:mkview| command to save and restore your folds.

The marker method requires you to change the file.  If you are sharing the
files with other people or you have to meet company standards, you might not
be allowed to add them.
   The main advantage of markers is that you can put them exactly where you
want them.  That avoids that a few lines are missed when you cut and paste
folds.  And you can add a comment about what is contained in the fold.

Folding by indent is something that works in many files, but not always very
well.  Use it when you can't use one of the other methods.  However, it is
very useful for outlining.  Then you specifically use one 'shiftwidth' for
each nesting level.

Folding with expressions can make folds in almost any structured text.  It is
quite simple to specify, especially if the start and end of a fold can easily
be recognized.
   If you use the "expr" method to define folds, but they are not exactly how
you want them, you could switch to the "manual" method.  This will not remove
the defined folds.  Then you can delete or add folds manually.

==============================================================================

Next chapter: |usr_29.txt|  Moving through programs

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�C'�����vim80/doc/pattern.txtnu�[���*pattern.txt*   For Vim version 8.0.  Last change: 2018 Mar 13


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Patterns and search commands				*pattern-searches*

The very basics can be found in section |03.9| of the user manual.  A few more
explanations are in chapter 27 |usr_27.txt|.

1. Search commands		|search-commands|
2. The definition of a pattern	|search-pattern|
3. Magic			|/magic|
4. Overview of pattern items	|pattern-overview|
5. Multi items			|pattern-multi-items|
6. Ordinary atoms		|pattern-atoms|
7. Ignoring case in a pattern	|/ignorecase|
8. Composing characters		|patterns-composing|
9. Compare with Perl patterns	|perl-patterns|
10. Highlighting matches	|match-highlight|

==============================================================================
1. Search commands				*search-commands*

							*/*
/{pattern}[/]<CR>	Search forward for the [count]'th occurrence of
			{pattern} |exclusive|.

/{pattern}/{offset}<CR>	Search forward for the [count]'th occurrence of
			{pattern} and go |{offset}| lines up or down.
			|linewise|.

							*/<CR>*
/<CR>			Search forward for the [count]'th occurrence of the
			latest used pattern |last-pattern| with latest used
			|{offset}|.

//{offset}<CR>		Search forward for the [count]'th occurrence of the
			latest used pattern |last-pattern| with new
			|{offset}|.  If {offset} is empty no offset is used.

							*?*
?{pattern}[?]<CR>	Search backward for the [count]'th previous
			occurrence of {pattern} |exclusive|.

?{pattern}?{offset}<CR>	Search backward for the [count]'th previous
			occurrence of {pattern} and go |{offset}| lines up or
			down |linewise|.

							*?<CR>*
?<CR>			Search backward for the [count]'th occurrence of the
			latest used pattern |last-pattern| with latest used
			|{offset}|.

??{offset}<CR>		Search backward for the [count]'th occurrence of the
			latest used pattern |last-pattern| with new
			|{offset}|.  If {offset} is empty no offset is used.

							*n*
n			Repeat the latest "/" or "?" [count] times.
			If the cursor doesn't move the search is repeated with
			count + 1.
			|last-pattern| {Vi: no count}

							*N*
N			Repeat the latest "/" or "?" [count] times in
			opposite direction. |last-pattern| {Vi: no count}

							*star* *E348* *E349*
*			Search forward for the [count]'th occurrence of the
			word nearest to the cursor.  The word used for the
			search is the first of:
				1. the keyword under the cursor |'iskeyword'|
				2. the first keyword after the cursor, in the
				   current line
				3. the non-blank word under the cursor
				4. the first non-blank word after the cursor,
				   in the current line
			Only whole keywords are searched for, like with the
			command "/\<keyword\>".  |exclusive|  {not in Vi}
			'ignorecase' is used, 'smartcase' is not.

							*#*
#			Same as "*", but search backward.  The pound sign
			(character 163) also works.  If the "#" key works as
			backspace, try using "stty erase <BS>" before starting
			Vim (<BS> is CTRL-H or a real backspace).  {not in Vi}

							*gstar*
g*			Like "*", but don't put "\<" and "\>" around the word.
			This makes the search also find matches that are not a
			whole word.  {not in Vi}

							*g#*
g#			Like "#", but don't put "\<" and "\>" around the word.
			This makes the search also find matches that are not a
			whole word.  {not in Vi}

							*gd*
gd			Goto local Declaration.  When the cursor is on a local
			variable, this command will jump to its declaration.
			First Vim searches for the start of the current
			function, just like "[[".  If it is not found the
			search stops in line 1.  If it is found, Vim goes back
			until a blank line is found.  From this position Vim
			searches for the keyword under the cursor, like with
			"*", but lines that look like a comment are ignored
			(see 'comments' option).
			Note that this is not guaranteed to work, Vim does not
			really check the syntax, it only searches for a match
			with the keyword.  If included files also need to be
			searched use the commands listed in |include-search|.
			After this command |n| searches forward for the next
			match (not backward).
			{not in Vi}

							*gD*
gD			Goto global Declaration.  When the cursor is on a
			global variable that is defined in the file, this
			command will jump to its declaration.  This works just
			like "gd", except that the search for the keyword
			always starts in line 1.  {not in Vi}

							*1gd*
1gd			Like "gd", but ignore matches inside a {} block that
			ends before the cursor position. {not in Vi}

							*1gD*
1gD			Like "gD", but ignore matches inside a {} block that
			ends before the cursor position. {not in Vi}

							*CTRL-C*
CTRL-C			Interrupt current (search) command.  Use CTRL-Break on
			MS-DOS |dos-CTRL-Break|.
			In Normal mode, any pending command is aborted.

							*:noh* *:nohlsearch*
:noh[lsearch]		Stop the highlighting for the 'hlsearch' option.  It
			is automatically turned back on when using a search
			command, or setting the 'hlsearch' option.
			This command doesn't work in an autocommand, because
			the highlighting state is saved and restored when
			executing autocommands |autocmd-searchpat|.
			Same thing for when invoking a user function.

While typing the search pattern the current match will be shown if the
'incsearch' option is on.  Remember that you still have to finish the search
command with <CR> to actually position the cursor at the displayed match.  Or
use <Esc> to abandon the search.

All matches for the last used search pattern will be highlighted if you set
the 'hlsearch' option.  This can be suspended with the |:nohlsearch| command.

When no match is found you get the error: *E486* Pattern not found
Note that for the |:global| command this behaves like a normal message, for Vi
compatibility.  For the |:s| command the "e" flag can be used to avoid the
error message |:s_flags|.

					*search-offset* *{offset}*
These commands search for the specified pattern.  With "/" and "?" an
additional offset may be given.  There are two types of offsets: line offsets
and character offsets.  {the character offsets are not in Vi}

The offset gives the cursor position relative to the found match:
    [num]	[num] lines downwards, in column 1
    +[num]	[num] lines downwards, in column 1
    -[num]	[num] lines upwards, in column 1
    e[+num]	[num] characters to the right of the end of the match
    e[-num]	[num] characters to the left of the end of the match
    s[+num]	[num] characters to the right of the start of the match
    s[-num]	[num] characters to the left of the start of the match
    b[+num]	[num] identical to s[+num] above (mnemonic: begin)
    b[-num]	[num] identical to s[-num] above (mnemonic: begin)
    ;{pattern}  perform another search, see |//;|

If a '-' or '+' is given but [num] is omitted, a count of one will be used.
When including an offset with 'e', the search becomes inclusive (the
character the cursor lands on is included in operations).

Examples:

pattern			cursor position	~
/test/+1		one line below "test", in column 1
/test/e			on the last t of "test"
/test/s+2		on the 's' of "test"
/test/b-3		three characters before "test"

If one of these commands is used after an operator, the characters between
the cursor position before and after the search is affected.  However, if a
line offset is given, the whole lines between the two cursor positions are
affected.

An example of how to search for matches with a pattern and change the match
with another word: >
	/foo<CR>	find "foo"
	c//e<CR>	change until end of match
	bar<Esc>	type replacement
	//<CR>		go to start of next match
	c//e<CR>	change until end of match
	beep<Esc>	type another replacement
			etc.
<
							*//;* *E386*
A very special offset is ';' followed by another search command.  For example: >

   /test 1/;/test
   /test.*/+1;?ing?

The first one first finds the next occurrence of "test 1", and then the first
occurrence of "test" after that.

This is like executing two search commands after each other, except that:
- It can be used as a single motion command after an operator.
- The direction for a following "n" or "N" command comes from the first
  search command.
- When an error occurs the cursor is not moved at all.

							*last-pattern*
The last used pattern and offset are remembered.  They can be used to repeat
the search, possibly in another direction or with another count.  Note that
two patterns are remembered: One for 'normal' search commands and one for the
substitute command ":s".  Each time an empty pattern is given, the previously
used pattern is used.  However, if there is no previous search command, a
previous substitute pattern is used, if possible.

The 'magic' option sticks with the last used pattern.  If you change 'magic',
this will not change how the last used pattern will be interpreted.
The 'ignorecase' option does not do this.  When 'ignorecase' is changed, it
will result in the pattern to match other text.

All matches for the last used search pattern will be highlighted if you set
the 'hlsearch' option.

To clear the last used search pattern: >
	:let @/ = ""
This will not set the pattern to an empty string, because that would match
everywhere.  The pattern is really cleared, like when starting Vim.

The search usually skips matches that don't move the cursor.  Whether the next
match is found at the next character or after the skipped match depends on the
'c' flag in 'cpoptions'.  See |cpo-c|.
	   with 'c' flag:   "/..." advances 1 to 3 characters
	without 'c' flag:   "/..." advances 1 character
The unpredictability with the 'c' flag is caused by starting the search in the
first column, skipping matches until one is found past the cursor position.

When searching backwards, searching starts at the start of the line, using the
'c' flag in 'cpoptions' as described above.  Then the last match before the
cursor position is used.

In Vi the ":tag" command sets the last search pattern when the tag is searched
for.  In Vim this is not done, the previous search pattern is still remembered,
unless the 't' flag is present in 'cpoptions'.  The search pattern is always
put in the search history.

If the 'wrapscan' option is on (which is the default), searches wrap around
the end of the buffer.  If 'wrapscan' is not set, the backward search stops
at the beginning and the forward search stops at the end of the buffer.  If
'wrapscan' is set and the pattern was not found the error message "pattern
not found" is given, and the cursor will not be moved.  If 'wrapscan' is not
set the message becomes "search hit BOTTOM without match" when searching
forward, or "search hit TOP without match" when searching backward.  If
wrapscan is set and the search wraps around the end of the file the message
"search hit TOP, continuing at BOTTOM" or "search hit BOTTOM, continuing at
TOP" is given when searching backwards or forwards respectively.  This can be
switched off by setting the 's' flag in the 'shortmess' option.  The highlight
method 'w' is used for this message (default: standout).

							*search-range*
You can limit the search command "/" to a certain range of lines by including
\%>l items.  For example, to match the word "limit" below line 199 and above
line 300: >
	/\%>199l\%<300llimit
Also see |/\%>l|.

Another way is to use the ":substitute" command with the 'c' flag.  Example: >
   :.,300s/Pattern//gc
This command will search from the cursor position until line 300 for
"Pattern".  At the match, you will be asked to type a character.  Type 'q' to
stop at this match, type 'n' to find the next match.

The "*", "#", "g*" and "g#" commands look for a word near the cursor in this
order, the first one that is found is used:
- The keyword currently under the cursor.
- The first keyword to the right of the cursor, in the same line.
- The WORD currently under the cursor.
- The first WORD to the right of the cursor, in the same line.
The keyword may only contain letters and characters in 'iskeyword'.
The WORD may contain any non-blanks (<Tab>s and/or <Space>s).
Note that if you type with ten fingers, the characters are easy to remember:
the "#" is under your left hand middle finger (search to the left and up) and
the "*" is under your right hand middle finger (search to the right and down).
(this depends on your keyboard layout though).

==============================================================================
2. The definition of a pattern		*search-pattern* *pattern* *[pattern]*
					*regular-expression* *regexp* *Pattern*
					*E76* *E383* *E476*

For starters, read chapter 27 of the user manual |usr_27.txt|.

						*/bar* */\bar* */pattern*
1. A pattern is one or more branches, separated by "\|".  It matches anything
   that matches one of the branches.  Example: "foo\|beep" matches "foo" and
   matches "beep".  If more than one branch matches, the first one is used.

   pattern ::=	    branch
		or  branch \| branch
		or  branch \| branch \| branch
		etc.

						*/branch* */\&*
2. A branch is one or more concats, separated by "\&".  It matches the last
   concat, but only if all the preceding concats also match at the same
   position.  Examples:
	"foobeep\&..." matches "foo" in "foobeep".
	".*Peter\&.*Bob" matches in a line containing both "Peter" and "Bob"

   branch ::=	    concat
		or  concat \& concat
		or  concat \& concat \& concat
		etc.

						*/concat*
3. A concat is one or more pieces, concatenated.  It matches a match for the
   first piece, followed by a match for the second piece, etc.  Example:
   "f[0-9]b", first matches "f", then a digit and then "b".

   concat  ::=	    piece
		or  piece piece
		or  piece piece piece
		etc.

						*/piece*
4. A piece is an atom, possibly followed by a multi, an indication of how many
   times the atom can be matched.  Example: "a*" matches any sequence of "a"
   characters: "", "a", "aa", etc.  See |/multi|.

   piece   ::=	    atom
		or  atom  multi

						*/atom*
5. An atom can be one of a long list of items.  Many atoms match one character
   in the text.  It is often an ordinary character or a character class.
   Braces can be used to make a pattern into an atom.  The "\z(\)" construct
   is only for syntax highlighting.

   atom    ::=	    ordinary-atom		|/ordinary-atom|
		or  \( pattern \)		|/\(|
		or  \%( pattern \)		|/\%(|
		or  \z( pattern \)		|/\z(|


				*/\%#=* *two-engines* *NFA*
Vim includes two regexp engines:
1. An old, backtracking engine that supports everything.
2. A new, NFA engine that works much faster on some patterns, possibly slower
   on some patterns.

Vim will automatically select the right engine for you.  However, if you run
into a problem or want to specifically select one engine or the other, you can
prepend one of the following to the pattern:

	\%#=0	Force automatic selection.  Only has an effect when
	        'regexpengine' has been set to a non-zero value.
	\%#=1	Force using the old engine.
	\%#=2	Force using the NFA engine.

You can also use the 'regexpengine' option to change the default.

			 *E864* *E868* *E874* *E875* *E876* *E877* *E878*
If selecting the NFA engine and it runs into something that is not implemented
the pattern will not match.  This is only useful when debugging Vim.

==============================================================================
3. Magic							*/magic*

Some characters in the pattern are taken literally.  They match with the same
character in the text.  When preceded with a backslash however, these
characters get a special meaning.

Other characters have a special meaning without a backslash.  They need to be
preceded with a backslash to match literally.

If a character is taken literally or not depends on the 'magic' option and the
items mentioned next.
							*/\m* */\M*
Use of "\m" makes the pattern after it be interpreted as if 'magic' is set,
ignoring the actual value of the 'magic' option.
Use of "\M" makes the pattern after it be interpreted as if 'nomagic' is used.
							*/\v* */\V*
Use of "\v" means that in the pattern after it all ASCII characters except
'0'-'9', 'a'-'z', 'A'-'Z' and '_' have a special meaning.  "very magic"

Use of "\V" means that in the pattern after it only the backslash and the
terminating character (/ or ?) has a special meaning.  "very nomagic"

Examples:
after:	  \v	   \m	    \M	     \V		matches ~
		'magic' 'nomagic'
	  $	   $	    $	     \$		matches end-of-line
	  .	   .	    \.	     \.		matches any character
	  *	   *	    \*	     \*		any number of the previous atom
	  ~	   ~	    \~	     \~		latest substitute string
	  ()	   \(\)     \(\)     \(\)	grouping into an atom
	  |	   \|	    \|	     \|		separating alternatives
	  \a	   \a	    \a	     \a		alphabetic character
	  \\	   \\	    \\	     \\		literal backslash
	  \.	   \.	    .	     .		literal dot
	  \{	   {	    {	     {		literal '{'
	  a	   a	    a	     a		literal 'a'

{only Vim supports \m, \M, \v and \V}

It is recommended to always keep the 'magic' option at the default setting,
which is 'magic'.  This avoids portability problems.  To make a pattern immune
to the 'magic' option being set or not, put "\m" or "\M" at the start of the
pattern.

==============================================================================
4. Overview of pattern items				*pattern-overview*
						*E865* *E866* *E867* *E869*

Overview of multi items.				*/multi* *E61* *E62*
More explanation and examples below, follow the links.		*E64* *E871*

	  multi ~
     'magic' 'nomagic'	matches of the preceding atom ~
|/star|	*	\*	0 or more	as many as possible
|/\+|	\+	\+	1 or more	as many as possible (*)
|/\=|	\=	\=	0 or 1		as many as possible (*)
|/\?|	\?	\?	0 or 1		as many as possible (*)

|/\{|	\{n,m}	\{n,m}	n to m		as many as possible (*)
	\{n}	\{n}	n		exactly (*)
	\{n,}	\{n,}	at least n	as many as possible (*)
	\{,m}	\{,m}	0 to m		as many as possible (*)
	\{}	\{}	0 or more	as many as possible (same as *) (*)

|/\{-|	\{-n,m}	\{-n,m}	n to m		as few as possible (*)
	\{-n}	\{-n}	n		exactly (*)
	\{-n,}	\{-n,}	at least n	as few as possible (*)
	\{-,m}	\{-,m}	0 to m		as few as possible (*)
	\{-}	\{-}	0 or more	as few as possible (*)

							*E59*
|/\@>|	\@>	\@>	1, like matching a whole pattern (*)
|/\@=|	\@=	\@=	nothing, requires a match |/zero-width| (*)
|/\@!|	\@!	\@!	nothing, requires NO match |/zero-width| (*)
|/\@<=|	\@<=	\@<=	nothing, requires a match behind |/zero-width| (*)
|/\@<!|	\@<!	\@<!	nothing, requires NO match behind |/zero-width| (*)

(*) {not in Vi}


Overview of ordinary atoms.				*/ordinary-atom*
More explanation and examples below, follow the links.

      ordinary atom ~
      magic   nomagic	matches ~
|/^|	^	^	start-of-line (at start of pattern) |/zero-width|
|/\^|	\^	\^	literal '^'
|/\_^|	\_^	\_^	start-of-line (used anywhere) |/zero-width|
|/$|	$	$	end-of-line (at end of pattern) |/zero-width|
|/\$|	\$	\$	literal '$'
|/\_$|	\_$	\_$	end-of-line (used anywhere) |/zero-width|
|/.|	.	\.	any single character (not an end-of-line)
|/\_.|	\_.	\_.	any single character or end-of-line
|/\<|	\<	\<	beginning of a word |/zero-width|
|/\>|	\>	\>	end of a word |/zero-width|
|/\zs|	\zs	\zs	anything, sets start of match
|/\ze|	\ze	\ze	anything, sets end of match
|/\%^|	\%^	\%^	beginning of file |/zero-width|		*E71*
|/\%$|	\%$	\%$	end of file |/zero-width|
|/\%V|	\%V	\%V	inside Visual area |/zero-width|
|/\%#|	\%#	\%#	cursor position |/zero-width|
|/\%'m|	\%'m	\%'m	mark m position |/zero-width|
|/\%l|	\%23l	\%23l	in line 23 |/zero-width|
|/\%c|	\%23c	\%23c	in column 23 |/zero-width|
|/\%v|	\%23v	\%23v	in virtual column 23 |/zero-width|

Character classes {not in Vi}:				*/character-classes*
      magic   nomagic	matches ~
|/\i|	\i	\i	identifier character (see 'isident' option)
|/\I|	\I	\I	like "\i", but excluding digits
|/\k|	\k	\k	keyword character (see 'iskeyword' option)
|/\K|	\K	\K	like "\k", but excluding digits
|/\f|	\f	\f	file name character (see 'isfname' option)
|/\F|	\F	\F	like "\f", but excluding digits
|/\p|	\p	\p	printable character (see 'isprint' option)
|/\P|	\P	\P	like "\p", but excluding digits
|/\s|	\s	\s	whitespace character: <Space> and <Tab>
|/\S|	\S	\S	non-whitespace character; opposite of \s
|/\d|	\d	\d	digit:				[0-9]
|/\D|	\D	\D	non-digit:			[^0-9]
|/\x|	\x	\x	hex digit:			[0-9A-Fa-f]
|/\X|	\X	\X	non-hex digit:			[^0-9A-Fa-f]
|/\o|	\o	\o	octal digit:			[0-7]
|/\O|	\O	\O	non-octal digit:		[^0-7]
|/\w|	\w	\w	word character:			[0-9A-Za-z_]
|/\W|	\W	\W	non-word character:		[^0-9A-Za-z_]
|/\h|	\h	\h	head of word character:		[A-Za-z_]
|/\H|	\H	\H	non-head of word character:	[^A-Za-z_]
|/\a|	\a	\a	alphabetic character:		[A-Za-z]
|/\A|	\A	\A	non-alphabetic character:	[^A-Za-z]
|/\l|	\l	\l	lowercase character:		[a-z]
|/\L|	\L	\L	non-lowercase character:	[^a-z]
|/\u|	\u	\u	uppercase character:		[A-Z]
|/\U|	\U	\U	non-uppercase character		[^A-Z]
|/\_|	\_x	\_x	where x is any of the characters above: character
			class with end-of-line included
(end of character classes)

      magic   nomagic	matches ~
|/\e|	\e	\e	<Esc>
|/\t|	\t	\t	<Tab>
|/\r|	\r	\r	<CR>
|/\b|	\b	\b	<BS>
|/\n|	\n	\n	end-of-line
|/~|	~	\~	last given substitute string
|/\1|	\1	\1	same string as matched by first \(\) {not in Vi}
|/\2|	\2	\2	Like "\1", but uses second \(\)
	   ...
|/\9|	\9	\9	Like "\1", but uses ninth \(\)
								*E68*
|/\z1|	\z1	\z1	only for syntax highlighting, see |:syn-ext-match|
	   ...
|/\z1|	\z9	\z9	only for syntax highlighting, see |:syn-ext-match|

	x	x	a character with no special meaning matches itself

|/[]|	[]	\[]	any character specified inside the []
|/\%[]|	\%[]	\%[]	a sequence of optionally matched atoms

|/\c|	\c	\c	ignore case, do not use the 'ignorecase' option
|/\C|	\C	\C	match case, do not use the 'ignorecase' option
|/\Z|	\Z	\Z	ignore differences in Unicode "combining characters".
			Useful when searching voweled Hebrew or Arabic text.

      magic   nomagic	matches ~
|/\m|	\m	\m	'magic' on for the following chars in the pattern
|/\M|	\M	\M	'magic' off for the following chars in the pattern
|/\v|	\v	\v	the following chars in the pattern are "very magic"
|/\V|	\V	\V	the following chars in the pattern are "very nomagic"
|/\%#=|   \%#=1   \%#=1   select regexp engine |/zero-width|

|/\%d|	\%d	\%d	match specified decimal character (eg \%d123)
|/\%x|	\%x	\%x	match specified hex character (eg \%x2a)
|/\%o|	\%o	\%o	match specified octal character (eg \%o040)
|/\%u|	\%u	\%u	match specified multibyte character (eg \%u20ac)
|/\%U|	\%U	\%U	match specified large multibyte character (eg
			\%U12345678)
|/\%C|	\%C	\%C	match any composing characters

Example			matches ~
\<\I\i*		or
\<\h\w*
\<[a-zA-Z_][a-zA-Z0-9_]*
			An identifier (e.g., in a C program).

\(\.$\|\. \)		A period followed by <EOL> or a space.

[.!?][])"']*\($\|[ ]\)	A search pattern that finds the end of a sentence,
			with almost the same definition as the ")" command.

cat\Z			Both "cat" and "càt" ("a" followed by 0x0300)
			Does not match "càt" (character 0x00e0), even
			though it may look the same.


==============================================================================
5. Multi items						*pattern-multi-items*

An atom can be followed by an indication of how many times the atom can be
matched and in what way.  This is called a multi.  See |/multi| for an
overview.

							*/star* */\star*
*	(use \* when 'magic' is not set)
	Matches 0 or more of the preceding atom, as many as possible.
	Example  'nomagic'	matches ~
	a*	   a\*		"", "a", "aa", "aaa", etc.
	.*	   \.\*		anything, also an empty string, no end-of-line
	\_.*	   \_.\*	everything up to the end of the buffer
	\_.*END	   \_.\*END	everything up to and including the last "END"
				in the buffer

	Exception: When "*" is used at the start of the pattern or just after
	"^" it matches the star character.

	Be aware that repeating "\_." can match a lot of text and take a long
	time.  For example, "\_.*END" matches all text from the current
	position to the last occurrence of "END" in the file.  Since the "*"
	will match as many as possible, this first skips over all lines until
	the end of the file and then tries matching "END", backing up one
	character at a time.

							*/\+*
\+	Matches 1 or more of the preceding atom, as many as possible. {not in
	Vi}
	Example		matches ~
	^.\+$		any non-empty line
	\s\+		white space of at least one character

							*/\=*
\=	Matches 0 or 1 of the preceding atom, as many as possible. {not in Vi}
	Example		matches ~
	foo\=		"fo" and "foo"

							*/\?*
\?	Just like \=.  Cannot be used when searching backwards with the "?"
	command. {not in Vi}

					*/\{* *E60* *E554* *E870*
\{n,m}	Matches n to m of the preceding atom, as many as possible
\{n}	Matches n of the preceding atom
\{n,}	Matches at least n of the preceding atom, as many as possible
\{,m}	Matches 0 to m of the preceding atom, as many as possible
\{}	Matches 0 or more of the preceding atom, as many as possible (like *)
							*/\{-*
\{-n,m}	matches n to m of the preceding atom, as few as possible
\{-n}	matches n of the preceding atom
\{-n,}	matches at least n of the preceding atom, as few as possible
\{-,m}	matches 0 to m of the preceding atom, as few as possible
\{-}	matches 0 or more of the preceding atom, as few as possible
	{Vi does not have any of these}

	n and m are positive decimal numbers or zero
								*non-greedy*
	If a "-" appears immediately after the "{", then a shortest match
	first algorithm is used (see example below).  In particular, "\{-}" is
	the same as "*" but uses the shortest match first algorithm.  BUT: A
	match that starts earlier is preferred over a shorter match: "a\{-}b"
	matches "aaab" in "xaaab".

	Example			matches ~
	ab\{2,3}c		"abbc" or "abbbc"
	a\{5}			"aaaaa"
	ab\{2,}c		"abbc", "abbbc", "abbbbc", etc.
	ab\{,3}c		"ac", "abc", "abbc" or "abbbc"
	a[bc]\{3}d		"abbbd", "abbcd", "acbcd", "acccd", etc.
	a\(bc\)\{1,2}d		"abcd" or "abcbcd"
	a[bc]\{-}[cd]		"abc" in "abcd"
	a[bc]*[cd]		"abcd" in "abcd"

	The } may optionally be preceded with a backslash: \{n,m\}.

							*/\@=*
\@=	Matches the preceding atom with zero width. {not in Vi}
	Like "(?=pattern)" in Perl.
	Example			matches ~
	foo\(bar\)\@=		"foo" in "foobar"
	foo\(bar\)\@=foo	nothing
							*/zero-width*
	When using "\@=" (or "^", "$", "\<", "\>") no characters are included
	in the match.  These items are only used to check if a match can be
	made.  This can be tricky, because a match with following items will
	be done in the same position.  The last example above will not match
	"foobarfoo", because it tries match "foo" in the same position where
	"bar" matched.

	Note that using "\&" works the same as using "\@=": "foo\&.." is the
	same as "\(foo\)\@=..".  But using "\&" is easier, you don't need the
	braces.


							*/\@!*
\@!	Matches with zero width if the preceding atom does NOT match at the
	current position. |/zero-width| {not in Vi}
	Like "(?!pattern)" in Perl.
	Example			matches ~
	foo\(bar\)\@!		any "foo" not followed by "bar"
	a.\{-}p\@!		"a", "ap", "app", "appp", etc. not immediately
				followed by a "p"
	if \(\(then\)\@!.\)*$	"if " not followed by "then"

	Using "\@!" is tricky, because there are many places where a pattern
	does not match.  "a.*p\@!" will match from an "a" to the end of the
	line, because ".*" can match all characters in the line and the "p"
	doesn't match at the end of the line.  "a.\{-}p\@!" will match any
	"a", "ap", "app", etc. that isn't followed by a "p", because the "."
	can match a "p" and "p\@!" doesn't match after that.

	You can't use "\@!" to look for a non-match before the matching
	position: "\(foo\)\@!bar" will match "bar" in "foobar", because at the
	position where "bar" matches, "foo" does not match.  To avoid matching
	"foobar" you could use "\(foo\)\@!...bar", but that doesn't match a
	bar at the start of a line.  Use "\(foo\)\@<!bar".

	Useful example: to find "foo" in a line that does not contain "bar": >
		/^\%(.*bar\)\@!.*\zsfoo
<	This pattern first checks that there is not a single position in the
	line where "bar" matches.  If ".*bar" matches somewhere the \@! will
	reject the pattern.  When there is no match any "foo" will be found.
	The "\zs" is to have the match start just before "foo".

							*/\@<=*
\@<=	Matches with zero width if the preceding atom matches just before what
	follows. |/zero-width| {not in Vi}
	Like "(?<=pattern)" in Perl, but Vim allows non-fixed-width patterns.
	Example			matches ~
	\(an\_s\+\)\@<=file	"file" after "an" and white space or an
				end-of-line
	For speed it's often much better to avoid this multi.  Try using "\zs"
	instead |/\zs|.  To match the same as the above example:
		an\_s\+\zsfile
	At least set a limit for the look-behind, see below.

	"\@<=" and "\@<!" check for matches just before what follows.
	Theoretically these matches could start anywhere before this position.
	But to limit the time needed, only the line where what follows matches
	is searched, and one line before that (if there is one).  This should
	be sufficient to match most things and not be too slow.

	In the old regexp engine the part of the pattern after "\@<=" and
	"\@<!" are checked for a match first, thus things like "\1" don't work
	to reference \(\) inside the preceding atom.  It does work the other
	way around:
	Bad example			matches ~
	\%#=1\1\@<=,\([a-z]\+\)		",abc" in "abc,abc"

	However, the new regexp engine works differently, it is better to not
	rely on this behavior, do not use \@<= if it can be avoided:
	Example				matches ~
	\([a-z]\+\)\zs,\1		",abc" in "abc,abc"

\@123<=
	Like "\@<=" but only look back 123 bytes. This avoids trying lots
	of matches that are known to fail and make executing the pattern very
	slow.  Example, check if there is a "<" just before "span":
		/<\@1<=span
	This will try matching "<" only one byte before "span", which is the
	only place that works anyway.
	After crossing a line boundary, the limit is relative to the end of
	the line.  Thus the characters at the start of the line with the match
	are not counted (this is just to keep it simple).
	The number zero is the same as no limit.

							*/\@<!*
\@<!	Matches with zero width if the preceding atom does NOT match just
	before what follows.  Thus this matches if there is no position in the
	current or previous line where the atom matches such that it ends just
	before what follows.  |/zero-width| {not in Vi}
	Like "(?<!pattern)" in Perl, but Vim allows non-fixed-width patterns.
	The match with the preceding atom is made to end just before the match
	with what follows, thus an atom that ends in ".*" will work.
	Warning: This can be slow (because many positions need to be checked
	for a match).  Use a limit if you can, see below.
	Example			matches ~
	\(foo\)\@<!bar		any "bar" that's not in "foobar"
	\(\/\/.*\)\@<!in	"in" which is not after "//"

\@123<!
	Like "\@<!" but only look back 123 bytes. This avoids trying lots of
	matches that are known to fail and make executing the pattern very
	slow.

							*/\@>*
\@>	Matches the preceding atom like matching a whole pattern. {not in Vi}
	Like "(?>pattern)" in Perl.
	Example		matches ~
	\(a*\)\@>a	nothing (the "a*" takes all the "a"'s, there can't be
			another one following)

	This matches the preceding atom as if it was a pattern by itself.  If
	it doesn't match, there is no retry with shorter sub-matches or
	anything.  Observe this difference: "a*b" and "a*ab" both match
	"aaab", but in the second case the "a*" matches only the first two
	"a"s.  "\(a*\)\@>ab" will not match "aaab", because the "a*" matches
	the "aaa" (as many "a"s as possible), thus the "ab" can't match.


==============================================================================
6.  Ordinary atoms					*pattern-atoms*

An ordinary atom can be:

							*/^*
^	At beginning of pattern or after "\|", "\(", "\%(" or "\n": matches
	start-of-line; at other positions, matches literal '^'. |/zero-width|
	Example		matches ~
	^beep(		the start of the C function "beep" (probably).

							*/\^*
\^	Matches literal '^'.  Can be used at any position in the pattern.

							*/\_^*
\_^	Matches start-of-line. |/zero-width|  Can be used at any position in
	the pattern.
	Example		matches ~
	\_s*\_^foo	white space and blank lines and then "foo" at
			start-of-line

							*/$*
$	At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
	matches end-of-line <EOL>; at other positions, matches literal '$'.
	|/zero-width|

							*/\$*
\$	Matches literal '$'.  Can be used at any position in the pattern.

							*/\_$*
\_$	Matches end-of-line. |/zero-width|  Can be used at any position in the
	pattern.  Note that "a\_$b" never matches, since "b" cannot match an
	end-of-line.  Use "a\nb" instead |/\n|.
	Example		matches ~
	foo\_$\_s*	"foo" at end-of-line and following white space and
			blank lines

.	(with 'nomagic': \.)				*/.* */\.*
	Matches any single character, but not an end-of-line.

							*/\_.*
\_.	Matches any single character or end-of-line.
	Careful: "\_.*" matches all text to the end of the buffer!

							*/\<*
\<	Matches the beginning of a word: The next char is the first char of a
	word.  The 'iskeyword' option specifies what is a word character.
	|/zero-width|

							*/\>*
\>	Matches the end of a word: The previous char is the last char of a
	word.  The 'iskeyword' option specifies what is a word character.
	|/zero-width|

							*/\zs*
\zs	Matches at any position, and sets the start of the match there: The
	next char is the first char of the whole match. |/zero-width|
	Example: >
		/^\s*\zsif
<	matches an "if" at the start of a line, ignoring white space.
	Can be used multiple times, the last one encountered in a matching
	branch is used.  Example: >
		/\(.\{-}\zsFab\)\{3}
<	Finds the third occurrence of "Fab".
	This cannot be followed by a multi. *E888*
	{not in Vi} {not available when compiled without the |+syntax| feature}
							*/\ze*
\ze	Matches at any position, and sets the end of the match there: The
	previous char is the last char of the whole match. |/zero-width|
	Can be used multiple times, the last one encountered in a matching
	branch is used.
	Example: "end\ze\(if\|for\)" matches the "end" in "endif" and
	"endfor".
	This cannot be followed by a multi. |E888|
	{not in Vi} {not available when compiled without the |+syntax| feature}

						*/\%^* *start-of-file*
\%^	Matches start of the file.  When matching with a string, matches the
	start of the string. {not in Vi}
	For example, to find the first "VIM" in a file: >
		/\%^\_.\{-}\zsVIM
<
						*/\%$* *end-of-file*
\%$	Matches end of the file.  When matching with a string, matches the
	end of the string. {not in Vi}
	Note that this does NOT find the last "VIM" in a file: >
		/VIM\_.\{-}\%$
<	It will find the next VIM, because the part after it will always
	match.  This one will find the last "VIM" in the file: >
		/VIM\ze\(\(VIM\)\@!\_.\)*\%$
<	This uses |/\@!| to ascertain that "VIM" does NOT match in any
	position after the first "VIM".
	Searching from the end of the file backwards is easier!

						*/\%V*
\%V	Match inside the Visual area.  When Visual mode has already been
	stopped match in the area that |gv| would reselect.
	This is a |/zero-width| match.  To make sure the whole pattern is
	inside the Visual area put it at the start and just before the end of
	the pattern, e.g.: >
		/\%Vfoo.*ba\%Vr
<	This also works if only "foo bar" was Visually selected. This: >
		/\%Vfoo.*bar\%V
<	would match "foo bar" if the Visual selection continues after the "r".
	Only works for the current buffer.

						*/\%#* *cursor-position*
\%#	Matches with the cursor position.  Only works when matching in a
	buffer displayed in a window. {not in Vi}
	WARNING: When the cursor is moved after the pattern was used, the
	result becomes invalid.  Vim doesn't automatically update the matches.
	This is especially relevant for syntax highlighting and 'hlsearch'.
	In other words: When the cursor moves the display isn't updated for
	this change.  An update is done for lines which are changed (the whole
	line is updated) or when using the |CTRL-L| command (the whole screen
	is updated).  Example, to highlight the word under the cursor: >
		/\k*\%#\k*
<	When 'hlsearch' is set and you move the cursor around and make changes
	this will clearly show when the match is updated or not.

						*/\%'m* */\%<'m* */\%>'m*
\%'m	Matches with the position of mark m.
\%<'m	Matches before the position of mark m.
\%>'m	Matches after the position of mark m.
	Example, to highlight the text from mark 's to 'e: >
		/.\%>'s.*\%<'e..
<	Note that two dots are required to include mark 'e in the match.  That
	is because "\%<'e" matches at the character before the 'e mark, and
	since it's a |/zero-width| match it doesn't include that character.
	{not in Vi}
	WARNING: When the mark is moved after the pattern was used, the result
	becomes invalid.  Vim doesn't automatically update the matches.
	Similar to moving the cursor for "\%#" |/\%#|.

						*/\%l* */\%>l* */\%<l* *E951*
\%23l	Matches in a specific line.
\%<23l	Matches above a specific line (lower line number).
\%>23l	Matches below a specific line (higher line number).
	These three can be used to match specific lines in a buffer.  The "23"
	can be any line number.  The first line is 1. {not in Vi}
	WARNING: When inserting or deleting lines Vim does not automatically
	update the matches.  This means Syntax highlighting quickly becomes
	wrong.
	Example, to highlight the line where the cursor currently is: >
		:exe '/\%' . line(".") . 'l.*'
<	When 'hlsearch' is set and you move the cursor around and make changes
	this will clearly show when the match is updated or not.

						*/\%c* */\%>c* */\%<c*
\%23c	Matches in a specific column.
\%<23c	Matches before a specific column.
\%>23c	Matches after a specific column.
	These three can be used to match specific columns in a buffer or
	string.  The "23" can be any column number.  The first column is 1.
	Actually, the column is the byte number (thus it's not exactly right
	for multi-byte characters).  {not in Vi}
	WARNING: When inserting or deleting text Vim does not automatically
	update the matches.  This means Syntax highlighting quickly becomes
	wrong.
	Example, to highlight the column where the cursor currently is: >
		:exe '/\%' . col(".") . 'c'
<	When 'hlsearch' is set and you move the cursor around and make changes
	this will clearly show when the match is updated or not.
	Example for matching a single byte in column 44: >
		/\%>43c.\%<46c
<	Note that "\%<46c" matches in column 45 when the "." matches a byte in
	column 44.
						*/\%v* */\%>v* */\%<v*
\%23v	Matches in a specific virtual column.
\%<23v	Matches before a specific virtual column.
\%>23v	Matches after a specific virtual column.
	These three can be used to match specific virtual columns in a buffer
	or string.  When not matching with a buffer in a window, the option
	values of the current window are used (e.g., 'tabstop').
	The "23" can be any column number.  The first column is 1.
	Note that some virtual column positions will never match, because they
	are halfway through a tab or other character that occupies more than
	one screen character.  {not in Vi}
	WARNING: When inserting or deleting text Vim does not automatically
	update highlighted matches.  This means Syntax highlighting quickly
	becomes wrong.
	Example, to highlight all the characters after virtual column 72: >
		/\%>72v.*
<	When 'hlsearch' is set and you move the cursor around and make changes
	this will clearly show when the match is updated or not.
	To match the text up to column 17: >
		/^.*\%17v
<	Column 17 is not included, because this is a |/zero-width| match. To
	include the column use: >
		/^.*\%17v.
<	This command does the same thing, but also matches when there is no
	character in column 17: >
		/^.*\%<18v.
<	Note that without the "^" to anchor the match in the first column,
	this will also highlight column 17: >
		/.*\%17v
<	Column 17 is highlighted by 'hlsearch' because there is another match
	where ".*" matches zero characters.
<

Character classes: {not in Vi}
\i	identifier character (see 'isident' option)	*/\i*
\I	like "\i", but excluding digits			*/\I*
\k	keyword character (see 'iskeyword' option)	*/\k*
\K	like "\k", but excluding digits			*/\K*
\f	file name character (see 'isfname' option)	*/\f*
\F	like "\f", but excluding digits			*/\F*
\p	printable character (see 'isprint' option)	*/\p*
\P	like "\p", but excluding digits			*/\P*

NOTE: the above also work for multi-byte characters.  The ones below only
match ASCII characters, as indicated by the range.

						*whitespace* *white-space*
\s	whitespace character: <Space> and <Tab>		*/\s*
\S	non-whitespace character; opposite of \s	*/\S*
\d	digit:				[0-9]		*/\d*
\D	non-digit:			[^0-9]		*/\D*
\x	hex digit:			[0-9A-Fa-f]	*/\x*
\X	non-hex digit:			[^0-9A-Fa-f]	*/\X*
\o	octal digit:			[0-7]		*/\o*
\O	non-octal digit:		[^0-7]		*/\O*
\w	word character:			[0-9A-Za-z_]	*/\w*
\W	non-word character:		[^0-9A-Za-z_]	*/\W*
\h	head of word character:		[A-Za-z_]	*/\h*
\H	non-head of word character:	[^A-Za-z_]	*/\H*
\a	alphabetic character:		[A-Za-z]	*/\a*
\A	non-alphabetic character:	[^A-Za-z]	*/\A*
\l	lowercase character:		[a-z]		*/\l*
\L	non-lowercase character:	[^a-z]		*/\L*
\u	uppercase character:		[A-Z]		*/\u*
\U	non-uppercase character:	[^A-Z]		*/\U*

	NOTE: Using the atom is faster than the [] form.

	NOTE: 'ignorecase', "\c" and "\C" are not used by character classes.

			*/\_* *E63* */\_i* */\_I* */\_k* */\_K* */\_f* */\_F*
			*/\_p* */\_P* */\_s* */\_S* */\_d* */\_D* */\_x* */\_X*
			*/\_o* */\_O* */\_w* */\_W* */\_h* */\_H* */\_a* */\_A*
			*/\_l* */\_L* */\_u* */\_U*
\_x	Where "x" is any of the characters above: The character class with
	end-of-line added
(end of character classes)

\e	matches <Esc>					*/\e*
\t	matches <Tab>					*/\t*
\r	matches <CR>					*/\r*
\b	matches <BS>					*/\b*
\n	matches an end-of-line				*/\n*
	When matching in a string instead of buffer text a literal newline
	character is matched.

~	matches the last given substitute string	*/~* */\~*

\(\)	A pattern enclosed by escaped parentheses.	*/\(* */\(\)* */\)*
	E.g., "\(^a\)" matches 'a' at the start of a line.
	*E51* *E54* *E55* *E872* *E873*

\1      Matches the same string that was matched by	*/\1* *E65*
	the first sub-expression in \( and \). {not in Vi}
	Example: "\([a-z]\).\1" matches "ata", "ehe", "tot", etc.
\2      Like "\1", but uses second sub-expression,	*/\2*
   ...							*/\3*
\9      Like "\1", but uses ninth sub-expression.	*/\9*
	Note: The numbering of groups is done based on which "\(" comes first
	in the pattern (going left to right), NOT based on what is matched
	first.

\%(\)	A pattern enclosed by escaped parentheses.	*/\%(\)* */\%(* *E53*
	Just like \(\), but without counting it as a sub-expression.  This
	allows using more groups and it's a little bit faster.
	{not in Vi}

x	A single character, with no special meaning, matches itself

							*/\* */\\*
\x	A backslash followed by a single character, with no special meaning,
	is reserved for future expansions

[]	(with 'nomagic': \[])		*/[]* */\[]* */\_[]* */collection*
\_[]
	A collection.  This is a sequence of characters enclosed in brackets.
	It matches any single character in the collection.
	Example		matches ~
	[xyz]		any 'x', 'y' or 'z'
	[a-zA-Z]$	any alphabetic character at the end of a line
	\c[a-z]$	same
	[А-яЁё]		Russian alphabet (with utf-8 and cp1251)

								*/[\n]*
	With "\_" prepended the collection also includes the end-of-line.
	The same can be done by including "\n" in the collection.  The
	end-of-line is also matched when the collection starts with "^"!  Thus
	"\_[^ab]" matches the end-of-line and any character but "a" and "b".
	This makes it Vi compatible: Without the "\_" or "\n" the collection
	does not match an end-of-line.
								*E769*
	When the ']' is not there Vim will not give an error message but
	assume no collection is used.  Useful to search for '['.  However, you
	do get E769 for internal searching.  And be aware that in a
	`:substitute` command the whole command becomes the pattern.  E.g.
	":s/[/x/" searches for "[/x" and replaces it with nothing.  It does
	not search for "[" and replaces it with "x"!

								*E944* *E945*
	If the sequence begins with "^", it matches any single character NOT
	in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
	- If two characters in the sequence are separated by '-', this is
	  shorthand for the full list of ASCII characters between them.  E.g.,
	  "[0-9]" matches any decimal digit. If the starting character exceeds
	  the ending character, e.g. [c-a], E944 occurs. Non-ASCII characters
	  can be used, but the character values must not be more than 256 apart
	  in the old regexp engine. For example, searching by [\u3000-\u4000]
	  after setting re=1 emits a E945 error. Prepending \%#=2 will fix it.
	- A character class expression is evaluated to the set of characters
	  belonging to that character class.  The following character classes
	  are supported:
		  Name	      Func	Contents ~
*[:alnum:]*	  [:alnum:]   isalnum	ASCII letters and digits
*[:alpha:]*	  [:alpha:]   isalpha  	ASCII letters
*[:blank:]*	  [:blank:]     	space and tab
*[:cntrl:]*	  [:cntrl:]   iscntrl 	ASCII control characters
*[:digit:]*	  [:digit:]     	decimal digits '0' to '9'
*[:graph:]*	  [:graph:]   isgraph	ASCII printable characters excluding
					space
*[:lower:]*	  [:lower:]   (1)	lowercase letters (all letters when
					'ignorecase' is used)
*[:print:]*	  [:print:]   (2) 	printable characters including space
*[:punct:]*	  [:punct:]   ispunct	ASCII punctuation characters
*[:space:]*	  [:space:]     	whitespace characters: space, tab, CR,
					NL, vertical tab, form feed
*[:upper:]*	  [:upper:]   (3)	uppercase letters (all letters when
					'ignorecase' is used)
*[:xdigit:]*	  [:xdigit:]    	hexadecimal digits: 0-9, a-f, A-F
*[:return:]*	  [:return:]		the <CR> character
*[:tab:]*	  [:tab:]		the <Tab> character
*[:escape:]*	  [:escape:]		the <Esc> character
*[:backspace:]*	  [:backspace:]		the <BS> character
	  The brackets in character class expressions are additional to the
	  brackets delimiting a collection.  For example, the following is a
	  plausible pattern for a UNIX filename: "[-./[:alnum:]_~]\+" That is,
	  a list of at least one character, each of which is either '-', '.',
	  '/', alphabetic, numeric, '_' or '~'.
	  These items only work for 8-bit characters, except [:lower:] and
	  [:upper:] also work for multi-byte characters when using the new
	  regexp engine.  See |two-engines|.  In the future these items may
	  work for multi-byte characters.  For now, to get all "alpha"
	  characters you can use: [[:lower:][:upper:]].

	  The "Func" column shows what library function is used.  The
	  implementation depends on the system.  Otherwise:
	  (1) Uses islower() for ASCII and Vim builtin rules for other
	  characters when built with the |+multi_byte| feature.
	  (2) Uses Vim builtin rules
	  (3) As with (1) but using isupper()
							*/[[=* *[==]*
	- An equivalence class.  This means that characters are matched that
	  have almost the same meaning, e.g., when ignoring accents.  This
	  only works for Unicode, latin1 and latin9.  The form is:
		[=a=]
							*/[[.* *[..]*
	- A collation element.  This currently simply accepts a single
	  character in the form:
		[.a.]
							  */\]*
	- To include a literal ']', '^', '-' or '\' in the collection, put a
	  backslash before it: "[xyz\]]", "[\^xyz]", "[xy\-z]" and "[xyz\\]".
	  (Note: POSIX does not support the use of a backslash this way).  For
	  ']' you can also make it the first character (following a possible
	  "^"):  "[]xyz]" or "[^]xyz]" {not in Vi}.
	  For '-' you can also make it the first or last character: "[-xyz]",
	  "[^-xyz]" or "[xyz-]".  For '\' you can also let it be followed by
	  any character that's not in "^]-\bdertnoUux".  "[\xyz]" matches '\',
	  'x', 'y' and 'z'.  It's better to use "\\" though, future expansions
	  may use other characters after '\'.
	- Omitting the trailing ] is not considered an error. "[]" works like
	  "[]]", it matches the ']' character.
	- The following translations are accepted when the 'l' flag is not
	  included in 'cpoptions' {not in Vi}:
		\e	<Esc>
		\t	<Tab>
		\r	<CR>	(NOT end-of-line!)
		\b	<BS>
		\n	line break, see above |/[\n]|
		\d123	decimal number of character
		\o40	octal number of character up to 0377
		\x20	hexadecimal number of character up to 0xff
		\u20AC	hex. number of multibyte character up to 0xffff
		\U1234	hex. number of multibyte character up to 0xffffffff
	  NOTE: The other backslash codes mentioned above do not work inside
	  []!
	- Matching with a collection can be slow, because each character in
	  the text has to be compared with each character in the collection.
	  Use one of the other atoms above when possible.  Example: "\d" is
	  much faster than "[0-9]" and matches the same characters.  However,
	  the new |NFA| regexp engine deals with this better than the old one.

						*/\%[]* *E69* *E70* *E369*
\%[]	A sequence of optionally matched atoms.  This always matches.
	It matches as much of the list of atoms it contains as possible.  Thus
	it stops at the first atom that doesn't match.  For example: >
		/r\%[ead]
<	matches "r", "re", "rea" or "read".  The longest that matches is used.
	To match the Ex command "function", where "fu" is required and
	"nction" is optional, this would work: >
		/\<fu\%[nction]\>
<	The end-of-word atom "\>" is used to avoid matching "fu" in "full".
	It gets more complicated when the atoms are not ordinary characters.
	You don't often have to use it, but it is possible.  Example: >
		/\<r\%[[eo]ad]\>
<	Matches the words "r", "re", "ro", "rea", "roa", "read" and "road".
	There can be no \(\), \%(\) or \z(\) items inside the [] and \%[] does
	not nest.
	To include a "[" use "[[]" and for "]" use []]", e.g.,: >
		/index\%[[[]0[]]]
<	matches "index" "index[", "index[0" and "index[0]".
	{not available when compiled without the |+syntax| feature}

				*/\%d* */\%x* */\%o* */\%u* */\%U* *E678*

\%d123	Matches the character specified with a decimal number.  Must be
	followed by a non-digit.
\%o40	Matches the character specified with an octal number up to 0377.
	Numbers below 040 must be followed by a non-octal digit or a non-digit.
\%x2a	Matches the character specified with up to two hexadecimal characters.
\%u20AC	Matches the character specified with up to four hexadecimal
	characters.
\%U1234abcd	Matches the character specified with up to eight hexadecimal
	characters.

==============================================================================
7. Ignoring case in a pattern					*/ignorecase*

If the 'ignorecase' option is on, the case of normal letters is ignored.
'smartcase' can be set to ignore case when the pattern contains lowercase
letters only.
							*/\c* */\C*
When "\c" appears anywhere in the pattern, the whole pattern is handled like
'ignorecase' is on.  The actual value of 'ignorecase' and 'smartcase' is
ignored.  "\C" does the opposite: Force matching case for the whole pattern.
{only Vim supports \c and \C}
Note that 'ignorecase', "\c" and "\C" are not used for the character classes.

Examples:
      pattern	'ignorecase'  'smartcase'	matches ~
	foo	  off		-		foo
	foo	  on		-		foo Foo FOO
	Foo	  on		off		foo Foo FOO
	Foo	  on		on		    Foo
	\cfoo	  -		-		foo Foo FOO
	foo\C	  -		-		foo

Technical detail:				*NL-used-for-Nul*
<Nul> characters in the file are stored as <NL> in memory.  In the display
they are shown as "^@".  The translation is done when reading and writing
files.  To match a <Nul> with a search pattern you can just enter CTRL-@ or
"CTRL-V 000".  This is probably just what you expect.  Internally the
character is replaced with a <NL> in the search pattern.  What is unusual is
that typing CTRL-V CTRL-J also inserts a <NL>, thus also searches for a <Nul>
in the file.  {Vi cannot handle <Nul> characters in the file at all}

						*CR-used-for-NL*
When 'fileformat' is "mac", <NL> characters in the file are stored as <CR>
characters internally.  In the text they are shown as "^J".  Otherwise this
works similar to the usage of <NL> for a <Nul>.

When working with expression evaluation, a <NL> character in the pattern
matches a <NL> in the string.  The use of "\n" (backslash n) to match a <NL>
doesn't work there, it only works to match text in the buffer.

						*pattern-multi-byte*
Patterns will also work with multi-byte characters, mostly as you would
expect.  But invalid bytes may cause trouble, a pattern with an invalid byte
will probably never match.

==============================================================================
8. Composing characters					*patterns-composing*

							*/\Z*
When "\Z" appears anywhere in the pattern, all composing characters are
ignored.  Thus only the base characters need to match, the composing
characters may be different and the number of composing characters may differ.
Only relevant when 'encoding' is "utf-8".
Exception: If the pattern starts with one or more composing characters, these
must match.
							*/\%C*
Use "\%C" to skip any composing characters.  For example, the pattern "a" does
not match in "càt" (where the a has the composing character 0x0300), but
"a\%C" does.  Note that this does not match "cát" (where the á is character
0xe1, it does not have a compositing character).  It does match "cat" (where
the a is just an a).

When a composing character appears at the start of the pattern of after an
item that doesn't include the composing character, a match is found at any
character that includes this composing character.

When using a dot and a composing character, this works the same as the
composing character by itself, except that it doesn't matter what comes before
this.

The order of composing characters does not matter.  Also, the text may have
more composing characters than the pattern, it still matches.  But all
composing characters in the pattern must be found in the text.

Suppose B is a base character and x and y are composing characters:
	pattern		text		match ~
	Bxy		Bxy		yes (perfect match)
	Bxy		Byx		yes (order ignored)
	Bxy		By		no (x missing)
	Bxy		Bx		no (y missing)
	Bx		Bx		yes (perfect match)
	Bx		By		no (x missing)
	Bx		Bxy		yes (extra y ignored)
	Bx		Byx		yes (extra y ignored)

==============================================================================
9. Compare with Perl patterns				*perl-patterns*

Vim's regexes are most similar to Perl's, in terms of what you can do.  The
difference between them is mostly just notation;  here's a summary of where
they differ:

Capability			in Vimspeak	in Perlspeak ~
----------------------------------------------------------------
force case insensitivity	\c		(?i)
force case sensitivity		\C		(?-i)
backref-less grouping		\%(atom\)	(?:atom)
conservative quantifiers	\{-n,m}		*?, +?, ??, {}?
0-width match			atom\@=		(?=atom)
0-width non-match		atom\@!		(?!atom)
0-width preceding match		atom\@<=	(?<=atom)
0-width preceding non-match	atom\@<!	(?<!atom)
match without retry		atom\@>		(?>atom)

Vim and Perl handle newline characters inside a string a bit differently:

In Perl, ^ and $ only match at the very beginning and end of the text,
by default, but you can set the 'm' flag, which lets them match at
embedded newlines as well.  You can also set the 's' flag, which causes
a . to match newlines as well.  (Both these flags can be changed inside
a pattern using the same syntax used for the i flag above, BTW.)

On the other hand, Vim's ^ and $ always match at embedded newlines, and
you get two separate atoms, \%^ and \%$, which only match at the very
start and end of the text, respectively.  Vim solves the second problem
by giving you the \_ "modifier":  put it in front of a . or a character
class, and they will match newlines as well.

Finally, these constructs are unique to Perl:
- execution of arbitrary code in the regex:  (?{perl code})
- conditional expressions:  (?(condition)true-expr|false-expr)

...and these are unique to Vim:
- changing the magic-ness of a pattern:  \v \V \m \M
   (very useful for avoiding backslashitis)
- sequence of optionally matching atoms:  \%[atoms]
- \& (which is to \| what "and" is to "or";  it forces several branches
   to match at one spot)
- matching lines/columns by number:  \%5l \%5c \%5v
- setting the start and end of the match:  \zs \ze

==============================================================================
10. Highlighting matches				*match-highlight*

							*:mat* *:match*
:mat[ch] {group} /{pattern}/
		Define a pattern to highlight in the current window.  It will
		be highlighted with {group}.  Example: >
			:highlight MyGroup ctermbg=green guibg=green
			:match MyGroup /TODO/
<		Instead of // any character can be used to mark the start and
		end of the {pattern}.  Watch out for using special characters,
		such as '"' and '|'.

		{group} must exist at the moment this command is executed.

		The {group} highlighting still applies when a character is
		to be highlighted for 'hlsearch', as the highlighting for
		matches is given higher priority than that of 'hlsearch'.
		Syntax highlighting (see 'syntax') is also overruled by
		matches.

		Note that highlighting the last used search pattern with
		'hlsearch' is used in all windows, while the pattern defined
		with ":match" only exists in the current window.  It is kept
		when switching to another buffer.

		'ignorecase' does not apply, use |/\c| in the pattern to
		ignore case.  Otherwise case is not ignored.

		'redrawtime' defines the maximum time searched for pattern
		matches.

		When matching end-of-line and Vim redraws only part of the
		display you may get unexpected results.  That is because Vim
		looks for a match in the line where redrawing starts.

		Also see |matcharg()| and |getmatches()|. The former returns
		the highlight group and pattern of a previous |:match|
		command.  The latter returns a list with highlight groups and
		patterns defined by both |matchadd()| and |:match|.

		Highlighting matches using |:match| are limited to three
		matches (aside from |:match|, |:2match| and |:3match| are
		available). |matchadd()| does not have this limitation and in
		addition makes it possible to prioritize matches.

		Another example, which highlights all characters in virtual
		column 72 and more: >
			:highlight rightMargin term=bold ctermfg=blue guifg=blue
			:match rightMargin /.\%>72v/
<		To highlight all character that are in virtual column 7: >
			:highlight col8 ctermbg=grey guibg=grey
			:match col8 /\%<8v.\%>7v/
<		Note the use of two items to also match a character that
		occupies more than one virtual column, such as a TAB.

:mat[ch]
:mat[ch] none
		Clear a previously defined match pattern.


:2mat[ch] {group} /{pattern}/					*:2match*
:2mat[ch]
:2mat[ch] none
:3mat[ch] {group} /{pattern}/					*:3match*
:3mat[ch]
:3mat[ch] none
		Just like |:match| above, but set a separate match.  Thus
		there can be three matches active at the same time.  The match
		with the lowest number has priority if several match at the
		same position.
		The ":3match" command is used by the |matchparen| plugin.  You
		are suggested to use ":match" for manual matching and
		":2match" for another plugin.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���__vim80/doc/howto.txtnu�[���*howto.txt*	For Vim version 8.0.  Last change: 2006 Apr 02


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


How to ...				*howdoi* *how-do-i* *howto* *how-to*

|tutor|			get started
|:quit|			exit?  I'm trapped, help me!
|initialization|	initialize Vim
|vimrc-intro|		write a Vim script file (vimrc)
|suspend|		suspend Vim
|usr_11.txt|		recover after a crash
|07.4|			keep a backup of my file when writing over it

|usr_07.txt|		edit files
|23.4|			edit binary files
|usr_24.txt|		insert text
|deleting|		delete text
|usr_04.txt|		change text
|04.5|			copy and move text
|usr_25.txt|		format text
|30.6|			format comments
|30.2|			indent C programs
|25.3|			automatically set indent

|usr_26.txt|		repeat commands
|02.5|			undo and redo

|usr_03.txt|		move around
|word-motions|		word motions
|left-right-motions|	left-right motions
|up-down-motions|	up-down motions
|object-motions|	text-object motions
|various-motions|	various motions
|object-select|		text-object selection
|'whichwrap'|		move over line breaks
|'virtualedit'|		move to where there is no text
|usr_27.txt|		specify pattern for searches
|tags-and-searches|	do tags and special searches
|29.4|			search in include'd files used to find
			variables, functions, or macros
|K|			look up manual for the keyword under cursor

|03.7|			scroll
|'sidescroll'|		scroll horizontally/sideways
|'scrolloff'|		set visible context lines

|mode-switching|	change modes
|04.4|			use Visual mode
|'insertmode'|		start Vim in Insert mode

|40.1|			map keys
|24.7|			create abbreviations

|ins-expandtab|		expand a tab to spaces in Insert mode
|i_CTRL-R|		insert contents of a register in Insert mode
|24.3|			complete words in Insert mode
|25.1|			break a line before it gets too long

|20.1|			do command-line editing
|20.3|			do command-line completion
|'cmdheight'|		increase the height of command-line
|10.3|			specify command-line ranges
|40.3|			specify commands to be executed automatically
			before/after reading/writing entering/leaving a
			buffer/window

|'autowrite'|		write automatically
|30.1|			speedup edit-compile-edit cycle or compile and fix
			errors within Vim

|options|		set options
|auto-setting|		set options automatically
|term-dependent-settings| set options depending on terminal name
|save-settings|		save settings
|:quote|		comment my .vim files
|'helpheight'|		change the default help height
|'highlight'|		set various highlighting modes
|'title'|		set the window title
|'icon'|		set window icon title
|'report'|		avoid seeing the change messages on every line
|'shortmess'|		avoid |hit-enter| prompts

|mouse-using|		use mouse with Vim
|usr_08.txt|		manage multiple windows and buffers
|gui.txt|		use the gui

|You can't! (yet)|	do dishes using Vim

|usr_06.txt|		switch on syntax highlighting
|2html.vim|		convert a colored file to HTML
|less|			use Vim like less or more with syntax highlighting

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�y��8�8�vim80/doc/if_pyth.txtnu�[���*if_pyth.txt*   For Vim version 8.0.  Last change: 2018 Jan 30


		  VIM REFERENCE MANUAL    by Paul Moore


The Python Interface to Vim				*python* *Python*

1. Commands					|python-commands|
2. The vim module				|python-vim|
3. Buffer objects				|python-buffer|
4. Range objects				|python-range|
5. Window objects				|python-window|
6. Tab page objects				|python-tabpage|
7. vim.bindeval objects				|python-bindeval-objects|
8. pyeval(), py3eval() Vim functions		|python-pyeval|
9. Dynamic loading				|python-dynamic|
10. Python 3					|python3|
11. Python X					|python_x|
12. Building with Python support		|python-building|

{Vi does not have any of these commands}

The Python 2.x interface is available only when Vim was compiled with the
|+python| feature.
The Python 3 interface is available only when Vim was compiled with the
|+python3| feature.
Both can be available at the same time, but read |python-2-and-3|.

==============================================================================
1. Commands						*python-commands*

					*:python* *:py* *E263* *E264* *E887*
:[range]py[thon] {stmt}
			Execute Python statement {stmt}.  A simple check if
			the `:python` command is working: >
				:python print "Hello"

:[range]py[thon] << {endmarker}
{script}
{endmarker}
			Execute Python script {script}.
			Note: This command doesn't work when the Python
			feature wasn't compiled in.  To avoid errors, see
			|script-here|.

{endmarker} must NOT be preceded by any white space.  If {endmarker} is
omitted from after the "<<", a dot '.' must be used after {script}, like
for the |:append| and |:insert| commands.
This form of the |:python| command is mainly useful for including python code
in Vim scripts.

Example: >
	function! IcecreamInitialize()
	python << EOF
	class StrawberryIcecream:
		def __call__(self):
			print 'EAT ME'
	EOF
	endfunction

To see what version of Python you have: >
	:python import sys
	:python print(sys.version)

Note: Python is very sensitive to the indenting.  Make sure the "class" line
and "EOF" do not have any indent.

							*:pydo*
:[range]pydo {body}	Execute Python function "def _vim_pydo(line, linenr):
			{body}" for each line in the [range], with the
			function arguments being set to the text of each line
			in turn, without a trailing <EOL>, and the current
			line number. The function should return a string or
			None. If a string is returned, it becomes the text of
			the line in the current turn. The default for [range]
			is the whole file: "1,$".
			{not in Vi}

Examples:
>
	:pydo return "%s\t%d" % (line[::-1], len(line))
	:pydo if line: return "%4d: %s" % (linenr, line)
<
							*:pyfile* *:pyf*
:[range]pyf[ile] {file}
			Execute the Python script in {file}.  The whole
			argument is used as a single file name.  {not in Vi}

Both of these commands do essentially the same thing - they execute a piece of
Python code, with the "current range" |python-range| set to the given line
range.

In the case of :python, the code to execute is in the command-line.
In the case of :pyfile, the code to execute is the contents of the given file.

Python commands cannot be used in the |sandbox|.

To pass arguments you need to set sys.argv[] explicitly.  Example: >

	:python import sys
	:python sys.argv = ["foo", "bar"]
	:pyfile myscript.py

Here are some examples					*python-examples*  >

	:python from vim import *
	:python from string import upper
	:python current.line = upper(current.line)
	:python print "Hello"
	:python str = current.buffer[42]

(Note that changes - like the imports - persist from one command to the next,
just like in the Python interpreter.)

==============================================================================
2. The vim module					*python-vim*

Python code gets all of its access to vim (with one exception - see
|python-output| below) via the "vim" module.  The vim module implements two
methods, three constants, and one error object.  You need to import the vim
module before using it: >
	:python import vim

Overview >
	:py print "Hello"		# displays a message
	:py vim.command(cmd)		# execute an Ex command
	:py w = vim.windows[n]		# gets window "n"
	:py cw = vim.current.window	# gets the current window
	:py b = vim.buffers[n]		# gets buffer "n"
	:py cb = vim.current.buffer	# gets the current buffer
	:py w.height = lines		# sets the window height
	:py w.cursor = (row, col)	# sets the window cursor position
	:py pos = w.cursor		# gets a tuple (row, col)
	:py name = b.name		# gets the buffer file name
	:py line = b[n]			# gets a line from the buffer
	:py lines = b[n:m]		# gets a list of lines
	:py num = len(b)		# gets the number of lines
	:py b[n] = str			# sets a line in the buffer
	:py b[n:m] = [str1, str2, str3]	# sets a number of lines at once
	:py del b[n]			# deletes a line
	:py del b[n:m]			# deletes a number of lines


Methods of the "vim" module

vim.command(str)					*python-command*
	Executes the vim (ex-mode) command str.  Returns None.
	Examples: >
	    :py vim.command("set tw=72")
	    :py vim.command("%s/aaa/bbb/g")
<	The following definition executes Normal mode commands: >
		def normal(str):
			vim.command("normal "+str)
		# Note the use of single quotes to delimit a string containing
		# double quotes
		normal('"a2dd"aP')
<								*E659*
	The ":python" command cannot be used recursively with Python 2.2 and
	older.  This only works with Python 2.3 and later: >
	    :py vim.command("python print 'Hello again Python'")

vim.eval(str)						*python-eval*
	Evaluates the expression str using the vim internal expression
	evaluator (see |expression|).  Returns the expression result as:
	- a string if the Vim expression evaluates to a string or number
	- a list if the Vim expression evaluates to a Vim list
	- a dictionary if the Vim expression evaluates to a Vim dictionary
	Dictionaries and lists are recursively expanded.
	Examples: >
	    :py text_width = vim.eval("&tw")
	    :py str = vim.eval("12+12")		# NB result is a string! Use
						# string.atoi() to convert to
						# a number.

	    :py tagList = vim.eval('taglist("eval_expr")')
<	The latter will return a python list of python dicts, for instance:
	[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~
	'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~

vim.bindeval(str)					*python-bindeval*
	Like |python-eval|, but returns special objects described in 
	|python-bindeval-objects|. These python objects let you modify (|List| 
	or |Dictionary|) or call (|Funcref|) vim objects.

vim.strwidth(str)					*python-strwidth*
	Like |strwidth()|: returns number of display cells str occupies, tab 
	is counted as one cell.

vim.foreach_rtp(callable)				*python-foreach_rtp*
	Call the given callable for each path in 'runtimepath' until either 
	callable returns something but None, the exception is raised or there 
	are no longer paths. If stopped in case callable returned non-None, 
	vim.foreach_rtp function returns the value returned by callable.

vim.chdir(*args, **kwargs)				*python-chdir*
vim.fchdir(*args, **kwargs)				*python-fchdir*
	Run os.chdir or os.fchdir, then all appropriate vim stuff.
	Note: you should not use these functions directly, use os.chdir and 
	      os.fchdir instead. Behavior of vim.fchdir is undefined in case 
	      os.fchdir does not exist.

Error object of the "vim" module

vim.error						*python-error*
	Upon encountering a Vim error, Python raises an exception of type
	vim.error.
	Example: >
		try:
			vim.command("put a")
		except vim.error:
			# nothing in register a

Constants of the "vim" module

	Note that these are not actually constants - you could reassign them.
	But this is silly, as you would then lose access to the vim objects
	to which the variables referred.

vim.buffers						*python-buffers*
	A mapping object providing access to the list of vim buffers.  The
	object supports the following operations: >
	    :py b = vim.buffers[i]	# Indexing (read-only)
	    :py b in vim.buffers	# Membership test
	    :py n = len(vim.buffers)	# Number of elements
	    :py for b in vim.buffers:	# Iterating over buffer list
<
vim.windows						*python-windows*
	A sequence object providing access to the list of vim windows.  The
	object supports the following operations: >
	    :py w = vim.windows[i]	# Indexing (read-only)
	    :py w in vim.windows	# Membership test
	    :py n = len(vim.windows)	# Number of elements
	    :py for w in vim.windows:	# Sequential access
<	Note: vim.windows object always accesses current tab page. 
	|python-tabpage|.windows objects are bound to parent |python-tabpage| 
	object and always use windows from that tab page (or throw vim.error 
	in case tab page was deleted). You can keep a reference to both 
	without keeping a reference to vim module object or |python-tabpage|, 
	they will not lose their properties in this case.

vim.tabpages						*python-tabpages*
	A sequence object providing access to the list of vim tab pages. The 
	object supports the following operations: >
	    :py t = vim.tabpages[i]	# Indexing (read-only)
	    :py t in vim.tabpages	# Membership test
	    :py n = len(vim.tabpages)	# Number of elements
	    :py for t in vim.tabpages:	# Sequential access
<
vim.current						*python-current*
	An object providing access (via specific attributes) to various
	"current" objects available in vim:
		vim.current.line	The current line (RW)		String
		vim.current.buffer	The current buffer (RW)		Buffer
		vim.current.window	The current window (RW)		Window
		vim.current.tabpage	The current tab page (RW)	TabPage
		vim.current.range	The current line range (RO)	Range

	The last case deserves a little explanation.  When the :python or
	:pyfile command specifies a range, this range of lines becomes the
	"current range".  A range is a bit like a buffer, but with all access
	restricted to a subset of lines.  See |python-range| for more details.

	Note: When assigning to vim.current.{buffer,window,tabpage} it expects 
	valid |python-buffer|, |python-window| or |python-tabpage| objects 
	respectively. Assigning triggers normal (with |autocommand|s) 
	switching to given buffer, window or tab page. It is the only way to 
	switch UI objects in python: you can't assign to 
	|python-tabpage|.window attribute. To switch without triggering 
	autocommands use >
	    py << EOF
	    saved_eventignore = vim.options['eventignore']
	    vim.options['eventignore'] = 'all'
	    try:
	        vim.current.buffer = vim.buffers[2] # Switch to buffer 2
	    finally:
	        vim.options['eventignore'] = saved_eventignore
	    EOF
<
vim.vars						*python-vars*
vim.vvars						*python-vvars*
	Dictionary-like objects holding dictionaries with global (|g:|) and 
	vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`, 
	but faster.

vim.options						*python-options*
	Object partly supporting mapping protocol (supports setting and 
	getting items) providing a read-write access to global options.
	Note: unlike |:set| this provides access only to global options. You
	cannot use this object to obtain or set local options' values or
	access local-only options in any fashion. Raises KeyError if no global
	option with such name exists (i.e. does not raise KeyError for
	|global-local| options and global only options, but does for window-
	and buffer-local ones).  Use |python-buffer| objects to access to
	buffer-local options and |python-window| objects to access to
	window-local options.

	Type of this object is available via "Options" attribute of vim 
	module.

Output from Python					*python-output*
	Vim displays all Python code output in the Vim message area.  Normal
	output appears as information messages, and error output appears as
	error messages.

	In implementation terms, this means that all output to sys.stdout
	(including the output from print statements) appears as information
	messages, and all output to sys.stderr (including error tracebacks)
	appears as error messages.

							*python-input*
	Input (via sys.stdin, including input() and raw_input()) is not
	supported, and may cause the program to crash.  This should probably be
	fixed.

		    *python2-directory* *python3-directory* *pythonx-directory*
Python 'runtimepath' handling				*python-special-path*

In python vim.VIM_SPECIAL_PATH special directory is used as a replacement for 
the list of paths found in 'runtimepath': with this directory in sys.path and 
vim.path_hooks in sys.path_hooks python will try to load module from 
{rtp}/python2 (or python3) and {rtp}/pythonx (for both python versions) for 
each {rtp} found in 'runtimepath'.

Implementation is similar to the following, but written in C: >

    from imp import find_module, load_module
    import vim
    import sys

    class VimModuleLoader(object):
        def __init__(self, module):
            self.module = module

        def load_module(self, fullname, path=None):
            return self.module

    def _find_module(fullname, oldtail, path):
        idx = oldtail.find('.')
        if idx > 0:
            name = oldtail[:idx]
            tail = oldtail[idx+1:]
            fmr = find_module(name, path)
            module = load_module(fullname[:-len(oldtail)] + name, *fmr)
            return _find_module(fullname, tail, module.__path__)
        else:
            fmr = find_module(fullname, path)
            return load_module(fullname, *fmr)

    # It uses vim module itself in place of VimPathFinder class: it does not 
    # matter for python which object has find_module function attached to as 
    # an attribute.
    class VimPathFinder(object):
        @classmethod
        def find_module(cls, fullname, path=None):
            try:
                return VimModuleLoader(_find_module(fullname, fullname, path or vim._get_paths()))
            except ImportError:
                return None

        @classmethod
        def load_module(cls, fullname, path=None):
            return _find_module(fullname, fullname, path or vim._get_paths())

    def hook(path):
        if path == vim.VIM_SPECIAL_PATH:
            return VimPathFinder
        else:
            raise ImportError

    sys.path_hooks.append(hook)

vim.VIM_SPECIAL_PATH					*python-VIM_SPECIAL_PATH*
	String constant used in conjunction with vim path hook. If path hook 
	installed by vim is requested to handle anything but path equal to 
	vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other 
	case it uses special loader.

	Note: you must not use value of this constant directly, always use 
	      vim.VIM_SPECIAL_PATH object.

vim.find_module(...)					*python-find_module*
vim.path_hook(path)					*python-path_hook*
	Methods or objects used to implement path loading as described above. 
	You should not be using any of these directly except for vim.path_hook 
	in case you need to do something with sys.meta_path. It is not 
	guaranteed that any of the objects will exist in the future vim 
	versions.

vim._get_paths						*python-_get_paths*
	Methods returning a list of paths which will be searched for by path 
	hook. You should not rely on this method being present in future 
	versions, but can use it for debugging.

	It returns a list of {rtp}/python2 (or {rtp}/python3) and 
	{rtp}/pythonx directories for each {rtp} in 'runtimepath'.

==============================================================================
3. Buffer objects					*python-buffer*

Buffer objects represent vim buffers.  You can obtain them in a number of ways:
	- via vim.current.buffer (|python-current|)
	- from indexing vim.buffers (|python-buffers|)
	- from the "buffer" attribute of a window (|python-window|)

Buffer objects have two read-only attributes - name - the full file name for
the buffer, and number - the buffer number.  They also have three methods
(append, mark, and range; see below).

You can also treat buffer objects as sequence objects.  In this context, they
act as if they were lists (yes, they are mutable) of strings, with each
element being a line of the buffer.  All of the usual sequence operations,
including indexing, index assignment, slicing and slice assignment, work as
you would expect.  Note that the result of indexing (slicing) a buffer is a
string (list of strings).  This has one unusual consequence - b[:] is different
from b.  In particular, "b[:] = None" deletes the whole of the buffer, whereas
"b = None" merely updates the variable b, with no effect on the buffer.

Buffer indexes start at zero, as is normal in Python.  This differs from vim
line numbers, which start from 1.  This is particularly relevant when dealing
with marks (see below) which use vim line numbers.

The buffer object attributes are:
	b.vars		Dictionary-like object used to access 
			|buffer-variable|s.
	b.options	Mapping object (supports item getting, setting and 
			deleting) that provides access to buffer-local options 
			and buffer-local values of |global-local| options. Use 
			|python-window|.options if option is window-local, 
			this object will raise KeyError. If option is 
			|global-local| and local value is missing getting it 
			will return None.
	b.name		String, RW. Contains buffer name (full path).
			Note: when assigning to b.name |BufFilePre| and 
			|BufFilePost| autocommands are launched.
	b.number	Buffer number. Can be used as |python-buffers| key.
			Read-only.
	b.valid		True or False. Buffer object becomes invalid when 
			corresponding buffer is wiped out.

The buffer object methods are:
	b.append(str)	Append a line to the buffer
	b.append(str, nr)  Idem, below line "nr"
	b.append(list)	Append a list of lines to the buffer
			Note that the option of supplying a list of strings to
			the append method differs from the equivalent method
			for Python's built-in list objects.
	b.append(list, nr)  Idem, below line "nr"
	b.mark(name)	Return a tuple (row,col) representing the position
			of the named mark (can also get the []"<> marks)
	b.range(s,e)	Return a range object (see |python-range|) which
			represents the part of the given buffer between line
			numbers s and e |inclusive|.

Note that when adding a line it must not contain a line break character '\n'.
A trailing '\n' is allowed and ignored, so that you can do: >
	:py b.append(f.readlines())

Buffer object type is available using "Buffer" attribute of vim module.

Examples (assume b is the current buffer) >
	:py print b.name		# write the buffer file name
	:py b[0] = "hello!!!"		# replace the top line
	:py b[:] = None			# delete the whole buffer
	:py del b[:]			# delete the whole buffer
	:py b[0:0] = [ "a line" ]	# add a line at the top
	:py del b[2]			# delete a line (the third)
	:py b.append("bottom")		# add a line at the bottom
	:py n = len(b)			# number of lines
	:py (row,col) = b.mark('a')	# named mark
	:py r = b.range(1,5)		# a sub-range of the buffer
	:py b.vars["foo"] = "bar"	# assign b:foo variable
	:py b.options["ff"] = "dos"	# set fileformat
	:py del b.options["ar"]		# same as :set autoread<

==============================================================================
4. Range objects					*python-range*

Range objects represent a part of a vim buffer.  You can obtain them in a
number of ways:
	- via vim.current.range (|python-current|)
	- from a buffer's range() method (|python-buffer|)

A range object is almost identical in operation to a buffer object.  However,
all operations are restricted to the lines within the range (this line range
can, of course, change as a result of slice assignments, line deletions, or
the range.append() method).

The range object attributes are:
	r.start		Index of first line into the buffer
	r.end		Index of last line into the buffer

The range object methods are:
	r.append(str)	Append a line to the range
	r.append(str, nr)  Idem, after line "nr"
	r.append(list)	Append a list of lines to the range
			Note that the option of supplying a list of strings to
			the append method differs from the equivalent method
			for Python's built-in list objects.
	r.append(list, nr)  Idem, after line "nr"

Range object type is available using "Range" attribute of vim module.

Example (assume r is the current range):
	# Send all lines in a range to the default printer
	vim.command("%d,%dhardcopy!" % (r.start+1,r.end+1))

==============================================================================
5. Window objects					*python-window*

Window objects represent vim windows.  You can obtain them in a number of ways:
	- via vim.current.window (|python-current|)
	- from indexing vim.windows (|python-windows|)
	- from indexing "windows" attribute of a tab page (|python-tabpage|)
	- from the "window" attribute of a tab page (|python-tabpage|)

You can manipulate window objects only through their attributes.  They have no
methods, and no sequence or other interface.

Window attributes are:
	buffer (read-only)	The buffer displayed in this window
	cursor (read-write)	The current cursor position in the window
				This is a tuple, (row,col).
	height (read-write)	The window height, in rows
	width (read-write)	The window width, in columns
	vars (read-only)	The window |w:| variables. Attribute is 
				unassignable, but you can change window 
				variables this way
	options (read-only)	The window-local options. Attribute is 
				unassignable, but you can change window 
				options this way. Provides access only to 
				window-local options, for buffer-local use 
				|python-buffer| and for global ones use 
				|python-options|. If option is |global-local| 
				and local value is missing getting it will 
				return None.
	number (read-only)	Window number.  The first window has number 1.
				This is zero in case it cannot be determined
				(e.g. when the window object belongs to other
				tab page).
	row, col (read-only)	On-screen window position in display cells.
				First position is zero.
	tabpage (read-only)	Window tab page.
	valid (read-write)	True or False. Window object becomes invalid 
				when corresponding window is closed.

The height attribute is writable only if the screen is split horizontally.
The width attribute is writable only if the screen is split vertically.

Window object type is available using "Window" attribute of vim module.

==============================================================================
6. Tab page objects					*python-tabpage*

Tab page objects represent vim tab pages. You can obtain them in a number of 
ways:
	- via vim.current.tabpage (|python-current|)
	- from indexing vim.tabpages (|python-tabpages|)

You can use this object to access tab page windows. They have no methods and 
no sequence or other interfaces.

Tab page attributes are:
	number		The tab page number like the one returned by 
			|tabpagenr()|.
	windows		Like |python-windows|, but for current tab page.
	vars		The tab page |t:| variables.
	window		Current tabpage window.
	valid		True or False. Tab page object becomes invalid when 
			corresponding tab page is closed.

TabPage object type is available using "TabPage" attribute of vim module.

==============================================================================
7. vim.bindeval objects				*python-bindeval-objects*

vim.Dictionary object				*python-Dictionary*
    Dictionary-like object providing access to vim |Dictionary| type.
    Attributes:
        Attribute  Description ~
        locked     One of                       *python-.locked*
                    Value           Description ~
                    zero            Variable is not locked
                    vim.VAR_LOCKED  Variable is locked, but can be unlocked
                    vim.VAR_FIXED   Variable is locked and can't be unlocked
                   Read-write. You can unlock locked variable by assigning 
                   `True` or `False` to this attribute. No recursive locking 
                   is supported.
        scope      One of
                    Value              Description ~
                    zero               Dictionary is not a scope one
                    vim.VAR_DEF_SCOPE  |g:| or |l:| dictionary
                    vim.VAR_SCOPE      Other scope dictionary,
                                       see |internal-variables|
    Methods (note: methods do not support keyword arguments):
        Method      Description ~
        keys()      Returns a list with dictionary keys.
        values()    Returns a list with dictionary values.
        items()     Returns a list of 2-tuples with dictionary contents.
        update(iterable), update(dictionary), update(**kwargs)
                    Adds keys to dictionary.
        get(key[, default=None])
                    Obtain key from dictionary, returning the default if it is 
                    not present.
        pop(key[, default])
                    Remove specified key from dictionary and return 
                    corresponding value. If key is not found and default is 
                    given returns the default, otherwise raises KeyError.
        popitem()
                    Remove random key from dictionary and return (key, value) 
                    pair.
        has_key(key)
                    Check whether dictionary contains specified key, similar 
                    to `key in dict`.

        __new__(), __new__(iterable), __new__(dictionary), __new__(update)
                    You can use `vim.Dictionary()` to create new vim 
                    dictionaries. `d=vim.Dictionary(arg)` is the same as 
                    `d=vim.bindeval('{}');d.update(arg)`. Without arguments 
                    constructs empty dictionary.

    Examples: >
        d = vim.Dictionary(food="bar")		# Constructor
        d['a'] = 'b'				# Item assignment
        print d['a']				# getting item
        d.update({'c': 'd'})			# .update(dictionary)
        d.update(e='f')				# .update(**kwargs)
        d.update((('g', 'h'), ('i', 'j')))	# .update(iterable)
        for key in d.keys():			# .keys()
        for val in d.values():			# .values()
        for key, val in d.items():		# .items()
        print isinstance(d, vim.Dictionary)	# True
        for key in d:				# Iteration over keys
        class Dict(vim.Dictionary):		# Subclassing
<
    Note: when iterating over keys you should not modify dictionary.

vim.List object					*python-List*
    Sequence-like object providing access to vim |List| type.
    Supports `.locked` attribute, see |python-.locked|. Also supports the 
    following methods:
        Method          Description ~
        extend(item)    Add items to the list.

        __new__(), __new__(iterable)
                        You can use `vim.List()` to create new vim lists. 
                        `l=vim.List(iterable)` is the same as 
                        `l=vim.bindeval('[]');l.extend(iterable)`. Without 
                        arguments constructs empty list.
    Examples: >
        l = vim.List("abc")		# Constructor, result: ['a', 'b', 'c']
        l.extend(['abc', 'def'])	# .extend() method
        print l[1:]			# slicing
        l[:0] = ['ghi', 'jkl']		# slice assignment
        print l[0]			# getting item
        l[0] = 'mno'			# assignment
        for i in l:			# iteration
        print isinstance(l, vim.List)	# True
        class List(vim.List):		# Subclassing

vim.Function object				*python-Function*
    Function-like object, acting like vim |Funcref| object. Accepts special 
    keyword argument `self`, see |Dictionary-function|. You can also use 
    `vim.Function(name)` constructor, it is the same as 
    `vim.bindeval('function(%s)'%json.dumps(name))`.

    Attributes (read-only):
        Attribute    Description ~
        name         Function name.
        args         `None` or a |python-List| object with arguments.  Note 
                     that this is a copy of the arguments list, constructed 
                     each time you request this attribute. Modifications made 
                     to the list will be ignored (but not to the containers 
                     inside argument list: this is like |copy()| and not 
                     |deepcopy()|).
        self         `None` or a |python-Dictionary| object with self 
                     dictionary. Note that explicit `self` keyword used when 
                     calling resulting object overrides this attribute.
        auto_rebind  Boolean. True if partial created from this Python object 
                     and stored in the Vim script dictionary should be
                     automatically rebound to the dictionary it is stored in
                     when this dictionary is indexed. Exposes Vim internal
                     difference between `dict.func` (auto_rebind=True) and
                     `function(dict.func,dict)` (auto_rebind=False). This
                     attribute makes no sense if `self` attribute is `None`.

    Constructor additionally accepts `args`, `self` and `auto_rebind` 
    keywords.  If `args` and/or `self` argument is given then it constructs 
    a partial, see |function()|.  `auto_rebind` is only used when `self` 
    argument is given, otherwise it is assumed to be `True` regardless of 
    whether it was given or not.  If `self` is given then it defaults to 
    `False`.

    Examples: >
        f = vim.Function('tr')			# Constructor
        print f('abc', 'a', 'b')		# Calls tr('abc', 'a', 'b')
        vim.command('''
            function DictFun() dict
                return self
            endfunction
        ''')
        f = vim.bindeval('function("DictFun")')
        print f(self={})			# Like call('DictFun', [], {})
        print isinstance(f, vim.Function)	# True

        p = vim.Function('DictFun', self={})
        print f()
        p = vim.Function('tr', args=['abc', 'a'])
        print f('b')

==============================================================================
8. pyeval() and py3eval() Vim functions			*python-pyeval*

To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()| 
functions to evaluate Python expressions and pass their values to Vim script.
|pyxeval()| is also available.

The Python value "None" is converted to v:none.

==============================================================================
9. Dynamic loading					*python-dynamic*

On MS-Windows and Unix the Python library can be loaded dynamically.  The
|:version| output then includes |+python/dyn| or |+python3/dyn|.

This means that Vim will search for the Python DLL or shared library file only
when needed.  When you don't use the Python interface you don't need it, thus
you can use Vim without this file.


MS-Windows ~

To use the Python interface the Python DLL must be in your search path.  In a
console window type "path" to see what directories are used.  The 'pythondll'
or 'pythonthreedll' option can be also used to specify the Python DLL.

The name of the DLL should match the Python version Vim was compiled with.
Currently the name for Python 2 is "python27.dll", that is for Python 2.7.
That is the default value for 'pythondll'.  For Python 3 it is python36.dll
(Python 3.6).  To know for sure edit "gvim.exe" and search for
"python\d*.dll\c".


Unix ~

The 'pythondll' or 'pythonthreedll' option can be used to specify the Python
shared library file instead of DYNAMIC_PYTHON_DLL or DYNAMIC_PYTHON3_DLL file
what were specified at compile time.  The version of the shared library must
match the Python 2.x or Python 3 version Vim was compiled with.

==============================================================================
10. Python 3						*python3*

							*:py3* *:python3*
The `:py3` and `:python3` commands work similar to `:python`.  A simple check
if the `:py3` command is working: >
	:py3 print("Hello")

To see what version of Python you have: >
	:py3 import sys
	:py3 print(sys.version)
<							*:py3file*
The `:py3file` command works similar to `:pyfile`.
							*:py3do*
The `:py3do` command works similar to `:pydo`.


Vim can be built in four ways (:version output):
1. No Python support	    (-python, -python3)
2. Python 2 support only    (+python or +python/dyn, -python3)
3. Python 3 support only    (-python, +python3 or +python3/dyn)
4. Python 2 and 3 support   (+python/dyn, +python3/dyn)

Some more details on the special case 4:  *python-2-and-3*

When Python 2 and Python 3 are both supported they must be loaded dynamically.

When doing this on Linux/Unix systems and importing global symbols, this leads
to a crash when the second Python version is used.  So either global symbols
are loaded but only one Python version is activated, or no global symbols are
loaded. The latter makes Python's "import" fail on libraries that expect the
symbols to be provided by Vim.
							*E836* *E837*
Vim's configuration script makes a guess for all libraries based on one
standard Python library (termios).  If importing this library succeeds for
both Python versions, then both will be made available in Vim at the same
time.  If not, only the version first used in a session will be enabled.
When trying to use the other one you will get the E836 or E837 error message.

Here Vim's behavior depends on the system in which it was configured.  In a
system where both versions of Python were configured with --enable-shared,
both versions of Python will be activated at the same time.  There will still
be problems with other third party libraries that were not linked to
libPython.

To work around such problems there are these options:
1. The problematic library is recompiled to link to the according
   libpython.so.
2. Vim is recompiled for only one Python version.
3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration.  This
   may crash Vim though.

							*E880*
Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
	:py vim.command("qall!")
<

							*has-python*
You can test what Python version is available with: >
	if has('python')
	  echo 'there is Python 2.x'
	endif
  	if has('python3')
	  echo 'there is Python 3.x'
	endif

Note however, that when Python 2 and 3 are both available and loaded
dynamically, these has() calls will try to load them.  If only one can be
loaded at a time, just checking if Python 2 or 3 are available will prevent
the other one from being available.

To avoid loading the dynamic library, only check if Vim was compiled with
python support: >
	if has('python_compiled')
	  echo 'compiled with Python 2.x support'
	  if has('python_dynamic')
	    echo 'Python 2.x dynamically loaded'
	  endif
	endif
  	if has('python3_compiled')
	  echo 'compiled with Python 3.x support'
	  if has('python3_dynamic')
	    echo 'Python 3.x dynamically loaded'
	  endif
	endif

This also tells you whether Python is dynamically loaded, which will fail if
the runtime library cannot be found.

==============================================================================
11. Python X						*python_x* *pythonx*

Because most python code can be written so that it works with python 2.6+ and
python 3 the pyx* functions and commands have been written.  They work exactly
the same as the Python 2 and 3 variants, but select the Python version using
the 'pyxversion' setting.

You should set 'pyxversion' in your |.vimrc| to prefer Python 2 or Python 3
for Python commands. If you change this setting at runtime you may risk that
state of plugins (such as initialization) may be lost.

If you want to use a module, you can put it in the {rtp}/pythonx directory.
See |pythonx-directory|.

							*:pyx* *:pythonx*
The `:pyx` and `:pythonx` commands work similar to `:python`.  A simple check
if the `:pyx` command is working: >
	:pyx print("Hello")

To see what version of Python is being used: >
	:pyx import sys
	:pyx print(sys.version)
<
					*:pyxfile* *python_x-special-comments*
The `:pyxfile` command works similar to `:pyfile`.  However you can add one of
these comments to force Vim using `:pyfile` or `:py3file`: >
  #!/any string/python2		" Shebang. Must be the first line of the file.
  #!/any string/python3		" Shebang. Must be the first line of the file.
  # requires python 2.x		" Maximum lines depend on 'modelines'.
  # requires python 3.x		" Maximum lines depend on 'modelines'.
Unlike normal modelines, the bottom of the file is not checked.
If none of them are found, the 'pyxversion' setting is used.
							*W20* *W21*
If Vim does not support the selected Python version a silent message will be
printed.  Use `:messages` to read them.

							*:pyxdo*
The `:pyxdo` command works similar to `:pydo`.

							*has-pythonx*
You can test if pyx* commands are available with: >
	if has('pythonx')
	  echo 'pyx* commands are available. (Python ' . &pyx . ')'
	endif

When compiled with only one of |+python| or |+python3|, the has() returns 1.
When compiled with both |+python| and |+python3|, the test depends on the
'pyxversion' setting.  If 'pyxversion' is 0, it tests Python 3 first, and if
it is not available then Python 2.  If 'pyxversion' is 2 or 3, it tests only
Python 2 or 3 respectively.

Note that for `has('pythonx')` to work it may try to dynamically load Python 3
or 2.  This may have side effects, especially when Vim can only load one of
the two.

If a user prefers Python 2 and want to fallback to Python 3, he needs to set
'pyxversion' explicitly in his |.vimrc|.  E.g.: >
	if has('python')
	  set pyx=2
	elseif has('python3')
	  set pyx=3
	endif

==============================================================================
12. Building with Python support			*python-building*

A few hints for building with Python 2 or 3 support.

UNIX

See src/Makefile for how to enable including the Python interface.

On Ubuntu you will want to install these packages for Python 2:
	python
	python-dev
For Python 3:
	python3
	python3-dev
For Python 3.6:
	python3.6
	python3.6-dev

If you have more than one version of Python 3, you need to link python3 to the
one you prefer, before running configure.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�ZO�5��p�pvim80/doc/various.txtnu�[���*various.txt*   For Vim version 8.0.  Last change: 2018 Mar 29


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Various commands					*various*

1. Various commands		|various-cmds|
2. Using Vim like less or more	|less|

==============================================================================
1. Various commands					*various-cmds*

							*CTRL-L*
CTRL-L			Clear and redraw the screen.  The redraw may happen
			later, after processing typeahead.

							*:redr* *:redraw*
:redr[aw][!]		Redraw the screen right now.  When ! is included it is
			cleared first.
			Useful to update the screen halfway executing a script
			or function.  Also when halfway a mapping and
			'lazyredraw' is set.

						*:redraws* *:redrawstatus*
:redraws[tatus][!]	Redraw the status line of the current window.  When !
			is included all status lines are redrawn.
			Useful to update the status line(s) when 'statusline'
			includes an item that doesn't cause automatic
			updating.

							*N<Del>*
<Del>			When entering a number: Remove the last digit.
			Note: if you like to use <BS> for this, add this
			mapping to your .vimrc: >
				:map CTRL-V <BS>   CTRL-V <Del>
<			See |:fixdel| if your <Del> key does not do what you
			want.

:as[cii]	or					*ga* *:as* *:ascii*
ga			Print the ascii value of the character under the
			cursor in decimal, hexadecimal and octal.
			Mnemonic: Get Ascii value.

			For example, when the cursor is on a 'R':
				<R>  82,  Hex 52,  Octal 122 ~
			When the character is a non-standard ASCII character,
			but printable according to the 'isprint' option, the
			non-printable version is also given.
			
			When the character is larger than 127, the <M-x> form
			is also printed.  For example:
				<~A>  <M-^A>  129,  Hex 81,  Octal 201 ~
				<p>  <|~>  <M-~>  254,  Hex fe,  Octal 376 ~
			(where <p> is a special character)

			The <Nul> character in a file is stored internally as
			<NL>, but it will be shown as:
				<^@>  0,  Hex 00,  Octal 000 ~

			If the character has composing characters these are
			also shown.  The value of 'maxcombine' doesn't matter.

			If the character can be inserted as a digraph, also
			output the two characters that can be used to create
			the character:
			    <ö> 246, Hex 00f6, Oct 366, Digr o: ~
			This shows you can type CTRL-K o : to insert ö.

			{not in Vi}

							*g8*
g8			Print the hex values of the bytes used in the
			character under the cursor, assuming it is in |UTF-8|
			encoding.  This also shows composing characters.  The
			value of 'maxcombine' doesn't matter.
			Example of a character with two composing characters:
				e0 b8 81 + e0 b8 b9 + e0 b9 89 ~
			{not in Vi} {only when compiled with the |+multi_byte|
			feature}

							*8g8*
8g8			Find an illegal UTF-8 byte sequence at or after the
			cursor.  This works in two situations:
			1. when 'encoding' is any 8-bit encoding
			2. when 'encoding' is "utf-8" and 'fileencoding' is
			   any 8-bit encoding
			Thus it can be used when editing a file that was
			supposed to be UTF-8 but was read as if it is an 8-bit
			encoding because it contains illegal bytes.
			Does not wrap around the end of the file.
			Note that when the cursor is on an illegal byte or the
			cursor is halfway a multi-byte character the command
			won't move the cursor.
			{not in Vi} {only when compiled with the |+multi_byte|
			feature}

						*:p* *:pr* *:print* *E749*
:[range]p[rint] [flags]
			Print [range] lines (default current line).
			Note: If you are looking for a way to print your text
			on paper see |:hardcopy|.  In the GUI you can use the
			File.Print menu entry.
			See |ex-flags| for [flags].
			The |:filter| command can be used to only show lines
			matching a pattern.

:[range]p[rint] {count} [flags]
			Print {count} lines, starting with [range] (default
			current line |cmdline-ranges|).
			See |ex-flags| for [flags].

							*:P* *:Print*
:[range]P[rint] [count] [flags]
			Just as ":print".  Was apparently added to Vi for
			people that keep the shift key pressed too long...
			Note: A user command can overrule this command.
			See |ex-flags| for [flags].

							*:l* *:list*
:[range]l[ist] [count] [flags]
			Same as :print, but display unprintable characters
			with '^' and put $ after the line.  This can be
			further changed with the 'listchars' option.
			See |ex-flags| for [flags].

							*:nu* *:number*
:[range]nu[mber] [count] [flags]
			Same as :print, but precede each line with its line
			number.  (See also 'highlight' and 'numberwidth'
			option).
			See |ex-flags| for [flags].

							*:#*
:[range]# [count] [flags]
			synonym for :number.

							*:#!*
:#!{anything}		Ignored, so that you can start a Vim script with: >
				#!vim -S
				echo "this is a Vim script"
				quit
<
							*:z* *E144*
:{range}z[+-^.=]{count}	Display several lines of text surrounding the line
			specified with {range}, or around the current line
			if there is no {range}.  If there is a {count}, that's
			how many lines you'll see; if there is only one window
			then twice the value of the 'scroll' option is used,
			otherwise the current window height minus 3 is used.

			If there is a {count} the 'window' option is set to
			its value.

			:z can be used either alone or followed by any of
			several punctuation marks.  These have the following
			effect:

			mark   first line    last line      new cursor line ~
			----   ----------    ---------      ------------
			+      current line  1 scr forward  1 scr forward
			-      1 scr back    current line   current line
			^      2 scr back    1 scr back     1 scr back
			.      1/2 scr back  1/2 scr fwd    1/2 scr fwd
			=      1/2 scr back  1/2 scr fwd    current line

			Specifying no mark at all is the same as "+".
			If the mark is "=", a line of dashes is printed
			around the current line.

:{range}z#[+-^.=]{count}				*:z#*
			Like ":z", but number the lines.
			{not in all versions of Vi, not with these arguments}

							*:=*
:= [flags]		Print the last line number.
			See |ex-flags| for [flags].

:{range}= [flags]	Prints the last line number in {range}.  For example,
			this prints the current line number: >
				:.=
<			See |ex-flags| for [flags].

:norm[al][!] {commands}					*:norm* *:normal*
			Execute Normal mode commands {commands}.  This makes
			it possible to execute Normal mode commands typed on
			the command-line.  {commands} are executed like they
			are typed.  For undo all commands are undone together.
			Execution stops when an error is encountered.

			If the [!] is given, mappings will not be used.
			Without it, when this command is called from a
			non-remappable mapping (|:noremap|), the argument can
			be mapped anyway.

			{commands} should be a complete command.  If
			{commands} does not finish a command, the last one
			will be aborted as if <Esc> or <C-C> was typed.
			This implies that an insert command must be completed
			(to start Insert mode, see |:startinsert|).  A ":"
			command must be completed as well.  And you can't use
			"Q" or "gQ" to start Ex mode.

			The display is not updated while ":normal" is busy.

			{commands} cannot start with a space.  Put a count of
			1 (one) before it, "1 " is one space.

			The 'insertmode' option is ignored for {commands}.

			This command cannot be followed by another command,
			since any '|' is considered part of the command.

			This command can be used recursively, but the depth is
			limited by 'maxmapdepth'.

			An alternative is to use |:execute|, which uses an
			expression as argument.  This allows the use of
			printable characters to represent special characters.

			Example: >
				:exe "normal \<c-w>\<c-w>"
<			{not in Vi, of course}

:{range}norm[al][!] {commands}				*:normal-range*
			Execute Normal mode commands {commands} for each line
			in the {range}.  Before executing the {commands}, the
			cursor is positioned in the first column of the range,
			for each line.  Otherwise it's the same as the
			":normal" command without a range.
			{not in Vi}

							*:sh* *:shell* *E371*
:sh[ell]		This command starts a shell.  When the shell exits
			(after the "exit" command) you return to Vim.  The
			name for the shell command comes from 'shell' option.
							*E360*
			Note: This doesn't work when Vim on the Amiga was
			started in QuickFix mode from a compiler, because the
			compiler will have set stdin to a non-interactive
			mode.

							*:!cmd* *:!* *E34*
:!{cmd}			Execute {cmd} with the shell.  See also the 'shell'
			and 'shelltype' option.

			Any '!' in {cmd} is replaced with the previous
			external command (see also 'cpoptions').  But not when
			there is a backslash before the '!', then that
			backslash is removed.  Example: ":!ls" followed by
			":!echo ! \! \\!" executes "echo ls ! \!".

			A '|' in {cmd} is passed to the shell, you cannot use
			it to append a Vim command.  See |:bar|.

			If {cmd} contains "%" it is expanded to the current
			file name.  Special characters are not escaped, use
			quotes to avoid their special meaning: >
				:!ls "%"
<			If the file name contains a "$" single quotes might
			work better (but a single quote causes trouble): >
				:!ls '%'
<			This should always work, but it's more typing: >
				:exe "!ls " . shellescape(expand("%"))
<
			A newline character ends {cmd}, what follows is
			interpreted as a following ":" command.  However, if
			there is a backslash before the newline it is removed
			and {cmd} continues.  It doesn't matter how many
			backslashes are before the newline, only one is
			removed.

			On Unix the command normally runs in a non-interactive
			shell.  If you want an interactive shell to be used
			(to use aliases) set 'shellcmdflag' to "-ic".
			For Win32 also see |:!start|.

			After the command has been executed, the timestamp and
			size of the current file is checked |timestamp|.

			Vim redraws the screen after the command is finished,
			because it may have printed any text.  This requires a
			hit-enter prompt, so that you can read any messages.
			To avoid this use: >
				:silent !{cmd}
<			The screen is not redrawn then, thus you have to use
			CTRL-L or ":redraw!" if the command did display
			something.
			Also see |shell-window|.

							*:!!*
:!!			Repeat last ":!{cmd}".

							*:ve* *:version*
:ve[rsion]		Print the version number of the editor.  If the
			compiler used understands "__DATE__" the compilation
			date is mentioned.  Otherwise a fixed release-date is
			shown.
			The following lines contain information about which
			features were enabled when Vim was compiled.  When
			there is a preceding '+', the feature is included,
			when there is a '-' it is excluded.  To change this,
			you have to edit feature.h and recompile Vim.
			To check for this in an expression, see |has()|.
			Here is an overview of the features.
			The first column shows the smallest version in which
			they are included:
			   T	tiny (always)
			   S	small
			   N	normal
			   B	big
			   H	huge
			   m	manually enabled or depends on other features
			 (none) system dependent
			Thus if a feature is marked with "N", it is included
			in the normal, big and huge versions of Vim.

							*+feature-list*
   *+acl*		|ACL| support included
   *+ARP*		Amiga only: ARP support included
B  *+arabic*		|Arabic| language support
T  *+autocmd*		|:autocmd|, automatic commands
H  *+autoservername*	Automatically enable |clientserver|
m  *+balloon_eval*	|balloon-eval| support in the GUI. Included when
			compiling with supported GUI (Motif, GTK, GUI) and
			either Netbeans/Sun Workshop integration or |+eval|
			feature.
H  *+balloon_eval_term*	|balloon-eval| support in the terminal,
			'balloonevalterm'
N  *+browse*		|:browse| command
N  *+builtin_terms*	some terminals builtin |builtin-terms|
B  *++builtin_terms*	maximal terminals builtin |builtin-terms|
N  *+byte_offset*	support for 'o' flag in 'statusline' option, "go"
			and ":goto" commands.
m  *+channel*		inter process communication |channel|
N  *+cindent*		|'cindent'|, C indenting
N  *+clientserver*	Unix and Win32: Remote invocation |clientserver|
   *+clipboard*		|clipboard| support
N  *+cmdline_compl*	command line completion |cmdline-completion|
S  *+cmdline_hist*	command line history |cmdline-history|
N  *+cmdline_info*	|'showcmd'| and |'ruler'|
N  *+comments*		|'comments'| support
B  *+conceal*		"conceal" support, see |conceal| |:syn-conceal| etc.
N  *+cryptv*		encryption support |encryption|
B  *+cscope*		|cscope| support
T  *+cursorbind*	|'cursorbind'| support
m  *+cursorshape*	|termcap-cursor-shape| support
m  *+debug*		Compiled for debugging.
N  *+dialog_gui*	Support for |:confirm| with GUI dialog.
N  *+dialog_con*	Support for |:confirm| with console dialog.
N  *+dialog_con_gui*	Support for |:confirm| with GUI and console dialog.
N  *+diff*		|vimdiff| and 'diff'
N  *+digraphs*		|digraphs| *E196*
   *+directx*		Win32 GUI only: DirectX and |'renderoptions'|
   *+dnd*		Support for DnD into the "~ register |quote_~|.
B  *+emacs_tags*	|emacs-tags| files
N  *+eval*		expression evaluation |eval.txt|
N  *+ex_extra*		always on now, used to be for Vim's extra Ex commands
N  *+extra_search*	|'hlsearch'| and |'incsearch'| options.
B  *+farsi*		|farsi| language
N  *+file_in_path*	|gf|, |CTRL-W_f| and |<cfile>|
N  *+find_in_path*	include file searches: |[I|, |:isearch|,
			|CTRL-W_CTRL-I|, |:checkpath|, etc.
N  *+folding*		|folding|
   *+footer*		|gui-footer|
   *+fork*		Unix only: |fork| shell commands
   *+float*		Floating point support
N  *+gettext*		message translations |multi-lang|
   *+GUI_Athena*	Unix only: Athena |GUI|
   *+GUI_neXtaw*	Unix only: neXtaw |GUI|
   *+GUI_GTK*		Unix only: GTK+ |GUI|
   *+GUI_Motif*		Unix only: Motif |GUI|
   *+GUI_Photon*	QNX only:  Photon |GUI|
m  *+hangul_input*	Hangul input support |hangul|
   *+iconv*		Compiled with the |iconv()| function
   *+iconv/dyn*		Likewise |iconv-dynamic| |/dyn|
N  *+insert_expand*	|insert_expand| Insert mode completion
m  *+job*		starting and stopping jobs |job|
S  *+jumplist*		|jumplist|
B  *+keymap*		|'keymap'|
N  *+lambda*		|lambda| and |closure|
B  *+langmap*		|'langmap'|
N  *+libcall*		|libcall()|
N  *+linebreak*		|'linebreak'|, |'breakat'| and |'showbreak'|
N  *+lispindent*	|'lisp'|
T  *+listcmds*		Vim commands for the list of buffers |buffer-hidden|
			and argument list |:argdelete|
N  *+localmap*		Support for mappings local to a buffer |:map-local|
m  *+lua*		|Lua| interface
m  *+lua/dyn*		|Lua| interface |/dyn|
N  *+menu*		|:menu|
N  *+mksession*		|:mksession|
N  *+modify_fname*	|filename-modifiers|
N  *+mouse*		Mouse handling |mouse-using|
N  *+mouseshape*	|'mouseshape'|
B  *+mouse_dec*		Unix only: Dec terminal mouse handling |dec-mouse|
N  *+mouse_gpm*		Unix only: Linux console mouse handling |gpm-mouse|
N  *+mouse_jsbterm*	JSB mouse handling |jsbterm-mouse|
B  *+mouse_netterm*	Unix only: netterm mouse handling |netterm-mouse|
N  *+mouse_pterm*	QNX only: pterm mouse handling |qnx-terminal|
N  *+mouse_sysmouse*	Unix only: *BSD console mouse handling |sysmouse|
B  *+mouse_sgr*		Unix only: sgr mouse handling |sgr-mouse|
B  *+mouse_urxvt*	Unix only: urxvt mouse handling |urxvt-mouse|
N  *+mouse_xterm*	Unix only: xterm mouse handling |xterm-mouse|
N  *+multi_byte*	16 and 32 bit characters |multibyte|
   *+multi_byte_ime*	Win32 input method for multibyte chars |multibyte-ime|
N  *+multi_lang*	non-English language support |multi-lang|
m  *+mzscheme*		Mzscheme interface |mzscheme|
m  *+mzscheme/dyn*	Mzscheme interface |mzscheme-dynamic| |/dyn|
m  *+netbeans_intg*	|netbeans|
   *+num64*		64-bit Number support |Number|
m  *+ole*		Win32 GUI only: |ole-interface|
N  *+packages*		Loading |packages|
N  *+path_extra*	Up/downwards search in 'path' and 'tags'
m  *+perl*		Perl interface |perl|
m  *+perl/dyn*		Perl interface |perl-dynamic| |/dyn|
N  *+persistent_undo*	Persistent undo |undo-persistence|
   *+postscript*	|:hardcopy| writes a PostScript file
N  *+printer*		|:hardcopy| command
H  *+profile*		|:profile| command
m  *+python*		Python 2 interface |python|
m  *+python/dyn*	Python 2 interface |python-dynamic| |/dyn|
m  *+python3*		Python 3 interface |python|
m  *+python3/dyn*	Python 3 interface |python-dynamic| |/dyn|
N  *+quickfix*		|:make| and |quickfix| commands
N  *+reltime*		|reltime()| function, 'hlsearch'/'incsearch' timeout,
			'redrawtime' option
B  *+rightleft*		Right to left typing |'rightleft'|
m  *+ruby*		Ruby interface |ruby|
m  *+ruby/dyn*		Ruby interface |ruby-dynamic| |/dyn|
T  *+scrollbind*	|'scrollbind'|
B  *+signs*		|:sign|
N  *+smartindent*	|'smartindent'|
N  *+startuptime*	|--startuptime| argument
N  *+statusline*	Options 'statusline', 'rulerformat' and special
			formats of 'titlestring' and 'iconstring'
m  *+sun_workshop*	|workshop|
N  *+syntax*		Syntax highlighting |syntax|
   *+system()*		Unix only: opposite of |+fork|
T  *+tag_binary*	binary searching in tags file |tag-binary-search|
N  *+tag_old_static*	old method for static tags |tag-old-static|
m  *+tag_any_white*	any white space allowed in tags file |tag-any-white|
m  *+tcl*		Tcl interface |tcl|
m  *+tcl/dyn*		Tcl interface |tcl-dynamic| |/dyn|
m  *+terminal*		Support for terminal window |terminal|
   *+terminfo*		uses |terminfo| instead of termcap
N  *+termresponse*	support for |t_RV| and |v:termresponse|
B  *+termguicolors*	24-bit color in xterm-compatible terminals support
N  *+textobjects*	|text-objects| selection
   *+tgetent*		non-Unix only: able to use external termcap
N  *+timers*		the |timer_start()| function
N  *+title*		Setting the window 'title' and 'icon'
N  *+toolbar*		|gui-toolbar|
N  *+user_commands*	User-defined commands. |user-commands|
N  *+viminfo*		|'viminfo'|
   *+vertsplit*		Vertically split windows |:vsplit|; Always enabled
			since 8.0.1118.
			in sync with the |+windows| feature
N  *+virtualedit*	|'virtualedit'|
S  *+visual*		Visual mode |Visual-mode| Always enabled since 7.4.200.
N  *+visualextra*	extra Visual mode commands |blockwise-operators|
N  *+vreplace*		|gR| and |gr|
   *+vtp*		on MS-Windows console: support for 'termguicolors'
N  *+wildignore*	|'wildignore'|
N  *+wildmenu*		|'wildmenu'|
   *+windows*		more than one window; Always enabled since 8.0.1118.
m  *+writebackup*	|'writebackup'| is default on
m  *+xim*		X input method |xim|
   *+xfontset*		X fontset support |xfontset|
   *+xpm*		pixmap support
m  *+xpm_w32*		Win32 GUI only: pixmap support |w32-xpm-support|
   *+xsmp*		XSMP (X session management) support
   *+xsmp_interact*	interactive XSMP (X session management) support
N  *+xterm_clipboard*	Unix only: xterm clipboard handling
m  *+xterm_save*	save and restore xterm screen |xterm-screens|
N  *+X11*		Unix only: can restore window title |X11|

							*/dyn* *E370* *E448*
			To some of the features "/dyn" is added when the
			feature is only available when the related library can
			be dynamically loaded.

:ve[rsion] {nr}		Is now ignored.  This was previously used to check the
			version number of a .vimrc file.  It was removed,
			because you can now use the ":if" command for
			version-dependent behavior.  {not in Vi}

							*:redi* *:redir*
:redi[r][!] > {file}	Redirect messages to file {file}.  The messages which
			are the output of commands are written to that file,
			until redirection ends.  The messages are also still
			shown on the screen.  When [!] is included, an
			existing file is overwritten.  When [!] is omitted,
			and {file} exists, this command fails.

			Only one ":redir" can be active at a time.  Calls to
			":redir" will close any active redirection before
			starting redirection to the new target.  For recursive
			use check out |execute()|.

			To stop the messages and commands from being echoed to
			the screen, put the commands in a function and call it
			with ":silent call Function()".
			An alternative is to use the 'verbosefile' option,
			this can be used in combination with ":redir".
			{not in Vi}

:redi[r] >> {file}	Redirect messages to file {file}.  Append if {file}
			already exists.  {not in Vi}

:redi[r] @{a-zA-Z}
:redi[r] @{a-zA-Z}>	Redirect messages to register {a-z}.  Append to the
			contents of the register if its name is given
			uppercase {A-Z}.  The ">" after the register name is
			optional. {not in Vi}
:redi[r] @{a-z}>>	Append messages to register {a-z}. {not in Vi}

:redi[r] @*>		
:redi[r] @+>		Redirect messages to the selection or clipboard. For
			backward compatibility, the ">" after the register
			name can be omitted. See |quotestar| and |quoteplus|.
			{not in Vi}
:redi[r] @*>>		
:redi[r] @+>>		Append messages to the selection or clipboard.
			{not in Vi}

:redi[r] @">		Redirect messages to the unnamed register. For
			backward compatibility, the ">" after the register
			name can be omitted. {not in Vi}
:redi[r] @">>		Append messages to the unnamed register. {not in Vi}

:redi[r] => {var}	Redirect messages to a variable.  If the variable
			doesn't exist, then it is created.  If the variable
			exists, then it is initialized to an empty string.
			The variable will remain empty until redirection ends.
			Only string variables can be used.  After the
			redirection starts, if the variable is removed or
			locked or the variable type is changed, then further
			command output messages will cause errors. {not in Vi}
			To get the output of one command the |execute()|
			function can be used.

:redi[r] =>> {var}	Append messages to an existing variable.  Only string
			variables can be used. {not in Vi}

:redi[r] END		End redirecting messages.  {not in Vi}

							*:filt* *:filter*
:filt[er][!] {pat} {command}
:filt[er][!] /{pat}/ {command}
			Restrict the output of {command} to lines matching
			with {pat}.  For example, to list only xml files: >
				:filter /\.xml$/ oldfiles
<			If the [!] is given, restrict the output of {command}
			to lines that do NOT match {pat}.

			{pat} is a Vim search pattern.  Instead of enclosing
			it in / any non-ID character (see |'isident'|) can be
			used, so long as it does not appear in {pat}.  Without
			the enclosing character the pattern cannot include the
			bar character.

			The pattern is matched against the relevant part of
			the output, not necessarily the whole line. Only some
			commands support filtering, try it out to check if it
			works.

			Only normal messages are filtered, error messages are
			not.

						*:sil* *:silent* *:silent!*
:sil[ent][!] {command}	Execute {command} silently.  Normal messages will not
			be given or added to the message history.
			When [!] is added, error messages will also be
			skipped, and commands and mappings will not be aborted
			when an error is detected.  |v:errmsg| is still set.
			When [!] is not used, an error message will cause
			further messages to be displayed normally.
			Redirection, started with |:redir|, will continue as
			usual, although there might be small differences.
			This will allow redirecting the output of a command
			without seeing it on the screen.  Example: >
			    :redir >/tmp/foobar
			    :silent g/Aap/p
			    :redir END
<			To execute a Normal mode command silently, use the
			|:normal| command.  For example, to search for a
			string without messages: >
			    :silent exe "normal /path\<CR>"
<			":silent!" is useful to execute a command that may
			fail, but the failure is to be ignored.  Example: >
			    :let v:errmsg = ""
			    :silent! /^begin
			    :if v:errmsg != ""
			    : ... pattern was not found
<			":silent" will also avoid the hit-enter prompt.  When
			using this for an external command, this may cause the
			screen to be messed up.  Use |CTRL-L| to clean it up
			then.
			":silent menu ..." defines a menu that will not echo a
			Command-line command.  The command will still produce
			messages though.  Use ":silent" in the command itself
			to avoid that: ":silent menu .... :silent command".

						*:uns* *:unsilent*
:uns[ilent] {command}	Execute {command} not silently.  Only makes a
			difference when |:silent| was used to get to this
			command.
			Use this for giving a message even when |:silent| was
			used.  In this example |:silent| is used to avoid the
			message about reading the file and |:unsilent| to be
			able to list the first line of each file. >
    		:silent argdo unsilent echo expand('%') . ": " . getline(1)
<

						*:verb* *:verbose*
:[count]verb[ose] {command}
			Execute {command} with 'verbose' set to [count].  If
			[count] is omitted one is used. ":0verbose" can be
			used to set 'verbose' to zero.
			The additional use of ":silent" makes messages
			generated but not displayed.
			The combination of ":silent" and ":verbose" can be
			used to generate messages and check them with
			|v:statusmsg| and friends.  For example: >
				:let v:statusmsg = ""
				:silent verbose runtime foobar.vim
				:if v:statusmsg != ""
				:  " foobar.vim could not be found
				:endif
<			When concatenating another command, the ":verbose"
			only applies to the first one: >
				:4verbose set verbose | set verbose
<				  verbose=4 ~
				  verbose=0 ~
			For logging verbose messages in a file use the
			'verbosefile' option.

							*:verbose-cmd*
When 'verbose' is non-zero, listing the value of a Vim option or a key map or
an abbreviation or a user-defined function or a command or a highlight group
or an autocommand will also display where it was last defined.  If it was
defined manually then there will be no "Last set" message.  When it was
defined while executing a function, user command or autocommand, the script in
which it was defined is reported.
{not available when compiled without the |+eval| feature}

							*K*
K			Run a program to lookup the keyword under the
			cursor.  The name of the program is given with the
			'keywordprg' (kp) option (default is "man").  The
			keyword is formed of letters, numbers and the
			characters in 'iskeyword'.  The keyword under or
			right of the cursor is used.  The same can be done
			with the command >
				:!{program} {keyword}
<			There is an example of a program to use in the tools
			directory of Vim.  It is called "ref" and does a
			simple spelling check.
			Special cases:
			- If 'keywordprg' begins with ":" it is invoked as
			  a Vim Ex command with [count].
			- If 'keywordprg' is empty, the ":help" command is
			  used.  It's a good idea to include more characters
			  in 'iskeyword' then, to be able to find more help.
			- When 'keywordprg' is equal to "man" or starts with
			  ":", a [count] before "K" is inserted after
			  keywordprg and before the keyword.  For example,
			  using "2K" while the cursor is on "mkdir", results
			  in: >
				!man 2 mkdir
<			- When 'keywordprg' is equal to "man -s", a count
			  before "K" is inserted after the "-s".  If there is
			  no count, the "-s" is removed.
			{not in Vi}

							*v_K*
{Visual}K		Like "K", but use the visually highlighted text for
			the keyword.  Only works when the highlighted text is
			not more than one line.  {not in Vi}

[N]gs							*gs* *:sl* *:sleep*
:[N]sl[eep] [N]	[m]	Do nothing for [N] seconds.  When [m] is included,
			sleep for [N] milliseconds.  The count for "gs" always
			uses seconds.  The default is one second. >
			     :sleep	     "sleep for one second
			     :5sleep	     "sleep for five seconds
			     :sleep 100m     "sleep for a hundred milliseconds
			     10gs	     "sleep for ten seconds
<			Can be interrupted with CTRL-C (CTRL-Break on MS-DOS).
			"gs" stands for "goto sleep".
			While sleeping the cursor is positioned in the text,
			if at a visible position.  {not in Vi}
			Also process the received netbeans messages. {only
			available when compiled with the |+netbeans_intg|
			feature}


							*g_CTRL-A*
g CTRL-A		Only when Vim was compiled with MEM_PROFILING defined
			(which is very rare): print memory usage statistics.
			Only useful for debugging Vim.
			For incrementing in Visual mode see |v_g_CTRL-A|.

==============================================================================
2. Using Vim like less or more					*less*

If you use the less or more program to view a file, you don't get syntax
highlighting.  Thus you would like to use Vim instead.  You can do this by
using the shell script "$VIMRUNTIME/macros/less.sh".

This shell script uses the Vim script "$VIMRUNTIME/macros/less.vim".  It sets
up mappings to simulate the commands that less supports.  Otherwise, you can
still use the Vim commands.

This isn't perfect.  For example, when viewing a short file Vim will still use
the whole screen.  But it works good enough for most uses, and you get syntax
highlighting.

The "h" key will give you a short overview of the available commands.

If you want to set options differently when using less, define the
LessInitFunc in your vimrc, for example: >

	func LessInitFunc()
	  set nocursorcolumn nocursorline
	endfunc
<

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�Gsӳ���vim80/doc/cmdline.txtnu�[���*cmdline.txt*   For Vim version 8.0.  Last change: 2017 Oct 19


		  VIM REFERENCE MANUAL    by Bram Moolenaar


				*Cmdline-mode* *Command-line-mode*
Command-line mode		*Cmdline* *Command-line* *mode-cmdline* *:*

Command-line mode is used to enter Ex commands (":"), search patterns
("/" and "?"), and filter commands ("!").

Basic command line editing is explained in chapter 20 of the user manual
|usr_20.txt|.

1. Command-line editing		|cmdline-editing|
2. Command-line completion	|cmdline-completion|
3. Ex command-lines		|cmdline-lines|
4. Ex command-line ranges	|cmdline-ranges|
5. Ex command-line flags	|ex-flags|
6. Ex special characters	|cmdline-special|
7. Command-line window		|cmdline-window|

==============================================================================
1. Command-line editing					*cmdline-editing*

Normally characters are inserted in front of the cursor position.  You can
move around in the command-line with the left and right cursor keys.  With the
<Insert> key, you can toggle between inserting and overstriking characters.
{Vi: can only alter the last character in the line}

Note that if your keyboard does not have working cursor keys or any of the
other special keys, you can use ":cnoremap" to define another key for them.
For example, to define tcsh style editing keys:		*tcsh-style*  >
	:cnoremap <C-A> <Home>
	:cnoremap <C-F> <Right>
	:cnoremap <C-B> <Left>
	:cnoremap <Esc>b <S-Left>
	:cnoremap <Esc>f <S-Right>
(<> notation |<>|; type all this literally)

							*cmdline-too-long*
When the command line is getting longer than what fits on the screen, only the
part that fits will be shown.  The cursor can only move in this visible part,
thus you cannot edit beyond that.

						*cmdline-history* *history*
The command-lines that you enter are remembered in a history table.  You can
recall them with the up and down cursor keys.  There are actually five
history tables:
- one for ':' commands
- one for search strings
- one for expressions
- one for input lines, typed for the |input()| function.
- one for debug mode commands
These are completely separate.  Each history can only be accessed when
entering the same type of line.
Use the 'history' option to set the number of lines that are remembered
(default: 50).
Notes:
- When you enter a command-line that is exactly the same as an older one, the
  old one is removed (to avoid repeated commands moving older commands out of
  the history).
- Only commands that are typed are remembered.  Ones that completely come from
  mappings are not put in the history.
- All searches are put in the search history, including the ones that come
  from commands like "*" and "#".  But for a mapping, only the last search is
  remembered (to avoid that long mappings trash the history).
{Vi: no history}
{not available when compiled without the |+cmdline_hist| feature}

There is an automatic completion of names on the command-line; see
|cmdline-completion|.

							*c_CTRL-V*
CTRL-V		Insert next non-digit literally.  Up to three digits form the
		decimal value of a single byte.  The non-digit and the three
		digits are not considered for mapping.  This works the same
		way as in Insert mode (see above, |i_CTRL-V|).
		Note: Under Windows CTRL-V is often mapped to paste text.
		Use CTRL-Q instead then.
							*c_CTRL-Q*
CTRL-Q		Same as CTRL-V.  But with some terminals it is used for
		control flow, it doesn't work then.

							*c_<Left>* *c_Left*
<Left>		cursor left
							*c_<Right>* *c_Right*
<Right>		cursor right
							*c_<S-Left>*
<S-Left> or <C-Left>					*c_<C-Left>*
		cursor one WORD left
							*c_<S-Right>*
<S-Right> or <C-Right>					*c_<C-Right>*
		cursor one WORD right
CTRL-B or <Home>				*c_CTRL-B* *c_<Home>* *c_Home*
		cursor to beginning of command-line
CTRL-E or <End>					*c_CTRL-E* *c_<End>* *c_End*
		cursor to end of command-line

							*c_<LeftMouse>*
<LeftMouse>	Move the cursor to the position of the mouse click.

							*c_<MiddleMouse>*
<MiddleMouse>	Paste the contents of the clipboard (for X11 the primary
		selection).  This is similar to using CTRL-R *, but no CR
		characters are inserted between lines.

CTRL-H						*c_<BS>* *c_CTRL-H* *c_BS*
<BS>		Delete the character in front of the cursor (see |:fixdel| if
		your <BS> key does not do what you want).
							*c_<Del>* *c_Del*
<Del>		Delete the character under the cursor (at end of line:
		character before the cursor) (see |:fixdel| if your <Del>
		key does not do what you want).
							*c_CTRL-W*
CTRL-W		Delete the |word| before the cursor.  This depends on the
		'iskeyword' option.
							*c_CTRL-U*
CTRL-U		Remove all characters between the cursor position and
		the beginning of the line.  Previous versions of vim
		deleted all characters on the line.  If that is the
		preferred behavior, add the following to your .vimrc: >
			:cnoremap <C-U> <C-E><C-U>
<
						*c_<Insert>* *c_Insert*
<Insert>	Toggle between insert and overstrike.  {not in Vi}

{char1} <BS> {char2}	or				*c_digraph*
CTRL-K {char1} {char2}					*c_CTRL-K*
		enter digraph (see |digraphs|).  When {char1} is a special
		key, the code for that key is inserted in <> form.  {not in Vi}

CTRL-R {0-9a-z"%#:-=.}					*c_CTRL-R* *c_<C-R>*
		Insert the contents of a numbered or named register.  Between
		typing CTRL-R and the second character '"' will be displayed
		to indicate that you are expected to enter the name of a
		register.
		The text is inserted as if you typed it, but mappings and
		abbreviations are not used.  Command-line completion through
		'wildchar' is not triggered though.  And characters that end
		the command line are inserted literally (<Esc>, <CR>, <NL>,
		<C-C>).  A <BS> or CTRL-W could still end the command line
		though, and remaining characters will then be interpreted in
		another mode, which might not be what you intended.
		Special registers:
			'"'	the unnamed register, containing the text of
				the last delete or yank
			'%'	the current file name
			'#'	the alternate file name
			'*'	the clipboard contents (X11: primary selection)
			'+'	the clipboard contents
			'/'	the last search pattern
			':'	the last command-line
			'-'	the last small (less than a line) delete
			'.'	the last inserted text
							*c_CTRL-R_=*
			'='	the expression register: you are prompted to
				enter an expression (see |expression|)
				(doesn't work at the expression prompt; some
				things such as changing the buffer or current
				window are not allowed to avoid side effects)
				When the result is a |List| the items are used
				as lines.  They can have line breaks inside
				too.
				When the result is a Float it's automatically
				converted to a String.
		See |registers| about registers.  {not in Vi}
		Implementation detail: When using the |expression| register
		and invoking setcmdpos(), this sets the position before
		inserting the resulting string.  Use CTRL-R CTRL-R to set the
		position afterwards.

CTRL-R CTRL-F				*c_CTRL-R_CTRL-F* *c_<C-R>_<C-F>*
CTRL-R CTRL-P				*c_CTRL-R_CTRL-P* *c_<C-R>_<C-P>*
CTRL-R CTRL-W				*c_CTRL-R_CTRL-W* *c_<C-R>_<C-W>*
CTRL-R CTRL-A				*c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
		Insert the object under the cursor:
			CTRL-F	the Filename under the cursor
			CTRL-P	the Filename under the cursor, expanded with
				'path' as in |gf|
			CTRL-W	the Word under the cursor
			CTRL-A	the WORD under the cursor; see |WORD|

		When 'incsearch' is set the cursor position at the end of the
		currently displayed match is used.  With CTRL-W the part of
		the word that was already typed is not inserted again.

		{not in Vi}
		CTRL-F and CTRL-P: {only when |+file_in_path| feature is
		included}

					*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
					*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A}
CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A}
		Insert register or object under the cursor.  Works like
		|c_CTRL-R| but inserts the text literally.  For example, if
		register a contains "xy^Hz" (where ^H is a backspace),
		"CTRL-R a" will insert "xz" while "CTRL-R CTRL-R a" will
		insert "xy^Hz".

CTRL-\ e {expr}						*c_CTRL-\_e*
		Evaluate {expr} and replace the whole command line with the
		result.  You will be prompted for the expression, type <Enter>
		to finish it.  It's most useful in mappings though.  See
		|expression|.
		See |c_CTRL-R_=| for inserting the result of an expression.
		Useful functions are |getcmdtype()|, |getcmdline()| and
		|getcmdpos()|.
		The cursor position is unchanged, except when the cursor was
		at the end of the line, then it stays at the end.
		|setcmdpos()| can be used to set the cursor position.
		The |sandbox| is used for evaluating the expression to avoid
		nasty side effects.
		Example: >
			:cmap <F7> <C-\>eAppendSome()<CR>
			:func AppendSome()
			   :let cmd = getcmdline() . " Some()"
			   :" place the cursor on the )
			   :call setcmdpos(strlen(cmd))
			   :return cmd
			:endfunc
<		This doesn't work recursively, thus not when already editing
		an expression.  But it is possible to use in a mapping.

							*c_CTRL-Y*
CTRL-Y		When there is a modeless selection, copy the selection into
		the clipboard. |modeless-selection|
		If there is no selection CTRL-Y is inserted as a character.

CTRL-M or CTRL-J		*c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
<CR> or <NL>	start entered command

CTRL-[						*c_CTRL-[* *c_<Esc>* *c_Esc*
<Esc>		When typed and 'x' not present in 'cpoptions', quit
		Command-line mode without executing.  In macros or when 'x'
		present in 'cpoptions', start entered command.
		Note: If your <Esc> key is hard to hit on your keyboard, train
		yourself to use CTRL-[.
							*c_CTRL-C*
CTRL-C		quit command-line without executing

							*c_<Up>* *c_Up*
<Up>		recall older command-line from history, whose beginning
		matches the current command-line (see below).
		{not available when compiled without the |+cmdline_hist|
		feature}
							*c_<Down>* *c_Down*
<Down>		recall more recent command-line from history, whose beginning
		matches the current command-line (see below).
		{not available when compiled without the |+cmdline_hist|
		feature}

							*c_<S-Up>* *c_<PageUp>*
<S-Up> or <PageUp>
		recall older command-line from history
		{not available when compiled without the |+cmdline_hist|
		feature}
						*c_<S-Down>* *c_<PageDown>*
<S-Down> or <PageDown>
		recall more recent command-line from history
		{not available when compiled without the |+cmdline_hist|
		feature}

CTRL-D		command-line completion (see |cmdline-completion|)
'wildchar' option
		command-line completion (see |cmdline-completion|)
CTRL-N		command-line completion (see |cmdline-completion|)
CTRL-P		command-line completion (see |cmdline-completion|)
CTRL-A		command-line completion (see |cmdline-completion|)
CTRL-L		command-line completion (see |cmdline-completion|)

							*c_CTRL-_*
CTRL-_		a - switch between Hebrew and English keyboard mode, which is
		private to the command-line and not related to hkmap.
		This is useful when Hebrew text entry is required in the
		command-line, searches, abbreviations, etc.  Applies only if
		Vim is compiled with the |+rightleft| feature and the
		'allowrevins' option is set.
		See |rileft.txt|.

		b - switch between Farsi and English keyboard mode, which is
		private to the command-line and not related to fkmap.  In
		Farsi keyboard mode the characters are inserted in reverse
		insert manner.  This is useful when Farsi text entry is
		required in the command-line, searches, abbreviations, etc.
		Applies only if Vim is compiled with the |+farsi| feature.
		See |farsi.txt|.

							*c_CTRL-^*
CTRL-^		Toggle the use of language |:lmap| mappings and/or Input
		Method.
		When typing a pattern for a search command and 'imsearch' is
		not -1, VAL is the value of 'imsearch', otherwise VAL is the
		value of 'iminsert'.
		When language mappings are defined:
		- If VAL is 1 (langmap mappings used) it becomes 0 (no langmap
		  mappings used).
		- If VAL was not 1 it becomes 1, thus langmap mappings are
		  enabled.
		When no language mappings are defined:
		- If VAL is 2 (Input Method is used) it becomes 0 (no input
		  method used)
		- If VAL has another value it becomes 2, thus the Input Method
		  is enabled.
		These language mappings are normally used to type characters
		that are different from what the keyboard produces.  The
		'keymap' option can be used to install a whole number of them.
		When entering a command line, langmap mappings are switched
		off, since you are expected to type a command.  After
		switching it on with CTRL-^, the new state is not used again
		for the next command or Search pattern.
		{not in Vi}

						*c_CTRL-]*
CTRL-]		Trigger abbreviation, without inserting a character.  {not in
		Vi}

For Emacs-style editing on the command-line see |emacs-keys|.

The <Up> and <Down> keys take the current command-line as a search string.
The beginning of the next/previous command-lines are compared with this
string.  The first line that matches is the new command-line.  When typing
these two keys repeatedly, the same string is used again.  For example, this
can be used to find the previous substitute command: Type ":s" and then <Up>.
The same could be done by typing <S-Up> a number of times until the desired
command-line is shown.  (Note: the shifted arrow keys do not work on all
terminals)

							*:his* *:history*
:his[tory]	Print the history of last entered commands.
		{not in Vi}
		{not available when compiled without the |+cmdline_hist|
		feature}

:his[tory] [{name}] [{first}][, [{last}]]
		List the contents of history {name} which can be:
		c[md]	 or :		command-line history
		s[earch] or / or ?	search string history
		e[xpr]	 or =		expression register history
		i[nput]	 or @		input line history
		d[ebug]	 or >		debug command history
		a[ll]			all of the above
		{not in Vi}

		If the numbers {first} and/or {last} are given, the respective
		range of entries from a history is listed.  These numbers can
		be specified in the following form:
							*:history-indexing*
		A positive number represents the absolute index of an entry
		as it is given in the first column of a :history listing.
		This number remains fixed even if other entries are deleted.

		A negative number means the relative position of an entry,
		counted from the newest entry (which has index -1) backwards.

		Examples:
		List entries 6 to 12 from the search history: >
			:history / 6,12
<
		List the penultimate entry from all histories: >
			:history all -2
<
		List the most recent two entries from all histories: >
			:history all -2,

:keepp[atterns] {command}			*:keepp* *:keeppatterns*
		Execute {command}, without adding anything to the search
		history

==============================================================================
2. Command-line completion				*cmdline-completion*

When editing the command-line, a few commands can be used to complete the
word before the cursor.  This is available for:

- Command names: At the start of the command-line.
- Tags: Only after the ":tag" command.
- File names: Only after a command that accepts a file name or a setting for
  an option that can be set to a file name.  This is called file name
  completion.
- Shell command names: After ":!cmd", ":r !cmd" and ":w !cmd".  $PATH is used.
- Options: Only after the ":set" command.
- Mappings: Only after a ":map" or similar command.
- Variable and function names: Only after a ":if", ":call" or similar command.

When Vim was compiled without the |+cmdline_compl| feature only file names,
directories and help items can be completed.  The number of help item matches
is limited (currently to 300) to avoid a long delay when there are very many
matches.

These are the commands that can be used:

							*c_CTRL-D*
CTRL-D		List names that match the pattern in front of the cursor.
		When showing file names, directories are highlighted (see
		'highlight' option).  Names where 'suffixes' matches are moved
		to the end.
		The 'wildoptions' option can be set to "tagfile" to list the
		file of matching tags.
					*c_CTRL-I* *c_wildchar* *c_<Tab>*
'wildchar' option
		A match is done on the pattern in front of the cursor.  The
		match (if there are several, the first match) is inserted
		in place of the pattern.  (Note: does not work inside a
		macro, because <Tab> or <Esc> are mostly used as 'wildchar',
		and these have a special meaning in some macros.) When typed
		again and there were multiple matches, the next
		match is inserted.  After the last match, the first is used
		again (wrap around).
		The behavior can be changed with the 'wildmode' option.
							*c_CTRL-N*
CTRL-N		After using 'wildchar' which got multiple matches, go to next
		match.  Otherwise recall more recent command-line from history.
<S-Tab>							*c_CTRL-P* *c_<S-Tab>*
CTRL-P		After using 'wildchar' which got multiple matches, go to
		previous match.  Otherwise recall older command-line from
		history.  <S-Tab> only works with the GUI, on the Amiga and
		with MS-DOS.
							*c_CTRL-A*
CTRL-A		All names that match the pattern in front of the cursor are
		inserted.
							*c_CTRL-L*
CTRL-L		A match is done on the pattern in front of the cursor.  If
		there is one match, it is inserted in place of the pattern.
		If there are multiple matches the longest common part is
		inserted in place of the pattern.  If the result is shorter
		than the pattern, no completion is done.
							*/_CTRL-L*
		When 'incsearch' is set, entering a search pattern for "/" or
		"?" and the current match is displayed then CTRL-L will add
		one character from the end of the current match.  If
		'ignorecase' and 'smartcase' are set and the command line has
		no uppercase characters, the added character is converted to
		lowercase.
	                                            *c_CTRL-G* */_CTRL-G*
CTRL-G		When 'incsearch' is set, entering a search pattern for "/" or
		"?" and the current match is displayed then CTRL-G will move
		to the next match (does not take |search-offset| into account)
		Use CTRL-T to move to the previous match.  Hint: on a regular
		keyboard T is above G.
	                                            *c_CTRL-T* */_CTRL-T*
CTRL-T		When 'incsearch' is set, entering a search pattern for "/" or
		"?" and the current match is displayed then CTRL-T will move
		to the previous match (does not take |search-offset| into
		account).
		Use CTRL-G to move to the next match.  Hint: on a regular
		keyboard T is above G.

The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
a previous version <Esc> was used).  In the pattern standard wildcards '*' and
'?' are accepted when matching file names.  '*' matches any string, '?'
matches exactly one character.

The 'wildignorecase' option can be set to ignore case in filenames.

The 'wildmenu' option can be set to show the matches just above the command
line.

If you like tcsh's autolist completion, you can use this mapping:
	:cnoremap X <C-L><C-D>
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
This will find the longest match and then list all matching files.

If you like tcsh's autolist completion, you can use the 'wildmode' option to
emulate it.  For example, this mimics autolist=ambiguous:
	:set wildmode=longest,list
This will find the longest match with the first 'wildchar', then list all
matching files with the next.

							*suffixes*
For file name completion you can use the 'suffixes' option to set a priority
between files with almost the same name.  If there are multiple matches,
those files with an extension that is in the 'suffixes' option are ignored.
The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending
in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored.

An empty entry, two consecutive commas, match a file name that does not
contain a ".", thus has no suffix.  This is useful to ignore "prog" and prefer
"prog.c".

Examples:

  pattern:	files:				match:	~
   test*	test.c test.h test.o		test.c
   test*	test.h test.o			test.h and test.o
   test*	test.i test.h test.c		test.i and test.c

It is impossible to ignore suffixes with two dots.

If there is more than one matching file (after ignoring the ones matching
the 'suffixes' option) the first file name is inserted.  You can see that
there is only one match when you type 'wildchar' twice and the completed
match stays the same.  You can get to the other matches by entering
'wildchar', CTRL-N or CTRL-P.  All files are included, also the ones with
extensions matching the 'suffixes' option.

To completely ignore files with some extension use 'wildignore'.

To match only files that end at the end of the typed text append a "$".  For
example, to match only files that end in ".c": >
	:e *.c$
This will not match a file ending in ".cpp".  Without the "$" it does match.

The old value of an option can be obtained by hitting 'wildchar' just after
the '='.  For example, typing 'wildchar' after ":set dir=" will insert the
current value of 'dir'.  This overrules file name completion for the options
that take a file name.

If you would like using <S-Tab> for CTRL-P in an xterm, put this command in
your .cshrc: >
	xmodmap -e "keysym Tab = Tab Find"
And this in your .vimrc: >
	:cmap <Esc>[1~ <C-P>

==============================================================================
3. Ex command-lines					*cmdline-lines*

The Ex commands have a few specialties:

							*:quote* *:comment*
'"' at the start of a line causes the whole line to be ignored.  '"'
after a command causes the rest of the line to be ignored.  This can be used
to add comments.  Example: >
	:set ai		"set 'autoindent' option
It is not possible to add a comment to a shell command ":!cmd" or to the
":map" command and a few others, because they see the '"' as part of their
argument.  This is mentioned where the command is explained.

							*:bar* *:\bar*
'|' can be used to separate commands, so you can give multiple commands in one
line.  If you want to use '|' in an argument, precede it with '\'.

These commands see the '|' as their argument, and can therefore not be
followed by another Vim command:
    :argdo
    :autocmd
    :bufdo
    :cdo
    :cfdo
    :command
    :cscope
    :debug
    :folddoopen
    :folddoclosed
    :function
    :global
    :help
    :helpfind
    :lcscope
    :ldo
    :lfdo
    :make
    :normal
    :perl
    :perldo
    :promptfind
    :promptrepl
    :pyfile
    :python
    :registers
    :read !
    :scscope
    :sign
    :tcl
    :tcldo
    :tclfile
    :vglobal
    :windo
    :write !
    :[range]!
    a user defined command without the "-bar" argument |:command|

Note that this is confusing (inherited from Vi): With ":g" the '|' is included
in the command, with ":s" it is not.

To be able to use another command anyway, use the ":execute" command.
Example (append the output of "ls" and jump to the first line): >
	:execute 'r !ls' | '[

There is one exception: When the 'b' flag is present in 'cpoptions', with the
":map" and ":abbr" commands and friends CTRL-V needs to be used instead of
'\'.  You can also use "<Bar>" instead.  See also |map_bar|.

Examples: >
	:!ls | wc		view the output of two commands
	:r !ls | wc		insert the same output in the text
	:%g/foo/p|>		moves all matching lines one shiftwidth
	:%s/foo/bar/|>		moves one line one shiftwidth
	:map q 10^V|		map "q" to "10|"
	:map q 10\| map \ l	map "q" to "10\" and map "\" to "l"
					(when 'b' is present in 'cpoptions')

You can also use <NL> to separate commands in the same way as with '|'.  To
insert a <NL> use CTRL-V CTRL-J.  "^@" will be shown.  Using '|' is the
preferred method.  But for external commands a <NL> must be used, because a
'|' is included in the external command.  To avoid the special meaning of <NL>
it must be preceded with a backslash.  Example: >
	:r !date<NL>-join
This reads the current date into the file and joins it with the previous line.

Note that when the command before the '|' generates an error, the following
commands will not be executed.


Because of Vi compatibility the following strange commands are supported: >
	:|			print current line (like ":p")
	:3|			print line 3 (like ":3p")
	:3			goto line 3

A colon is allowed between the range and the command name.  It is ignored
(this is Vi compatible).  For example: >
	:1,$:s/pat/string

When the character '%' or '#' is used where a file name is expected, they are
expanded to the current and alternate file name (see the chapter "editing
files" |:_%| |:_#|).

Embedded spaces in file names are allowed on the Amiga if one file name is
expected as argument.  Trailing spaces will be ignored, unless escaped with a
backslash or CTRL-V.  Note that the ":next" command uses spaces to separate
file names.  Escape the spaces to include them in a file name.  Example: >
	:next foo\ bar goes\ to school\
starts editing the three files "foo bar", "goes to" and "school ".

When you want to use the special characters '"' or '|' in a command, or want
to use '%' or '#' in a file name, precede them with a backslash.  The
backslash is not required in a range and in the ":substitute" command.
See also |`=|.

							*:_!*
The '!' (bang) character after an Ex command makes the command behave in a
different way.  The '!' should be placed immediately after the command, without
any blanks in between.  If you insert blanks the '!' will be seen as an
argument for the command, which has a different meaning.  For example:
	:w! name	write the current buffer to file "name", overwriting
			any existing file
	:w !name	send the current buffer as standard input to command
			"name"

==============================================================================
4. Ex command-line ranges	*cmdline-ranges* *[range]* *E16*

Some Ex commands accept a line range in front of them.  This is noted as
[range].  It consists of one or more line specifiers, separated with ',' or
';'.

The basics are explained in section |10.3| of the user manual.

						*:,* *:;*
When separated with ';' the cursor position will be set to that line
before interpreting the next line specifier.  This doesn't happen for ','.
Examples: >
   4,/this line/
<	from line 4 till match with "this line" after the cursor line. >
   5;/that line/
<	from line 5 till match with "that line" after line 5.

The default line specifier for most commands is the cursor position, but the
commands ":write" and ":global" have the whole file (1,$) as default.

If more line specifiers are given than required for the command, the first
one(s) will be ignored.

Line numbers may be specified with:		*:range* *E14* *{address}*
	{number}	an absolute line number
	.		the current line			  *:.*
	$		the last line in the file		  *:$*
	%		equal to 1,$ (the entire file)		  *:%*
	't		position of mark t (lowercase)		  *:'*
	'T		position of mark T (uppercase); when the mark is in
			another file it cannot be used in a range
	/{pattern}[/]	the next line where {pattern} matches	  *:/*
	?{pattern}[?]	the previous line where {pattern} matches *:?*
	\/		the next line where the previously used search
			pattern matches
	\?		the previous line where the previously used search
			pattern matches
	\&		the next line where the previously used substitute
			pattern matches

Each may be followed (several times) by '+' or '-' and an optional number.
This number is added or subtracted from the preceding line number.  If the
number is omitted, 1 is used.

The "/" and "?" after {pattern} are required to separate the pattern from
anything that follows.

The "/" and "?" may be preceded with another address.  The search starts from
there.  The difference from using ';' is that the cursor isn't moved.
Examples: >
	/pat1//pat2/	Find line containing "pat2" after line containing
			"pat1", without moving the cursor.
	7;/pat2/	Find line containing "pat2", after line 7, leaving
			the cursor in line 7.

The {number} must be between 0 and the number of lines in the file.  When
using a 0 (zero) this is interpreted as a 1 by most commands.  Commands that
use it as a count do use it as a zero (|:tag|, |:pop|, etc).  Some commands
interpret the zero as "before the first line" (|:read|, search pattern, etc).

Examples: >
	.+3		three lines below the cursor
	/that/+1	the line below the next line containing "that"
	.,$		from current line until end of file
	0;/that		the first line containing "that", also matches in the
			first line.
	1;/that		the first line after line 1 containing "that"

Some commands allow for a count after the command.  This count is used as the
number of lines to be used, starting with the line given in the last line
specifier (the default is the cursor line).  The commands that accept a count
are the ones that use a range but do not have a file name argument (because
a file name can also be a number).

Examples: >
	:s/x/X/g 5	substitute 'x' by 'X' in the current line and four
			following lines
	:23d 4		delete lines 23, 24, 25 and 26


Folds and Range

When folds are active the line numbers are rounded off to include the whole
closed fold.  See |fold-behavior|.


Reverse Range						*E493*

A range should have the lower line number first.  If this is not the case, Vim
will ask you if it should swap the line numbers.
	Backwards range given, OK to swap ~
This is not done within the global command ":g".

You can use ":silent" before a command to avoid the question, the range will
always be swapped then.


Count and Range						*N:*

When giving a count before entering ":", this is translated into:
		:.,.+(count - 1)
In words: The 'count' lines at and after the cursor.  Example: To delete
three lines: >
		3:d<CR>		is translated into: .,.+2d<CR>
<

Visual Mode and Range					*v_:*

{Visual}:	Starts a command-line with the Visual selected lines as a
		range.  The code `:'<,'>` is used for this range, which makes
		it possible to select a similar line from the command-line
		history for repeating a command on different Visually selected
		lines.
		When Visual mode was already ended, a short way to use the
		Visual area for a range is `:*`.  This requires that "*" does
		not appear in 'cpo', see |cpo-star|.  Otherwise you will have
		to type `:'<,'>`


==============================================================================
5. Ex command-line flags				*ex-flags*

These flags are supported by a selection of Ex commands.  They print the line
that the cursor ends up after executing the command:

	l	output like for |:list|
	#	add line number
	p	output like for |:print|

The flags can be combined, thus "l#" uses both a line number and |:list| style
output.

==============================================================================
6. Ex special characters				*cmdline-special*

Note: These are special characters in the executed command line.  If you want
to insert special things while typing you can use the CTRL-R command.  For
example, "%" stands for the current file name, while CTRL-R % inserts the
current file name right away.  See |c_CTRL-R|.

Note:  If you want to avoid the effects of special characters in a Vim script
you may want to use |fnameescape()|.  Also see |`=|.


In Ex commands, at places where a file name can be used, the following
characters have a special meaning.  These can also be used in the expression
function |expand()|.
	%	Is replaced with the current file name.		  *:_%* *c_%*
	#	Is replaced with the alternate file name.	  *:_#* *c_#*
		This is remembered for every window.
	#n	(where n is a number) is replaced with		  *:_#0* *:_#n*
		the file name of buffer n.  "#0" is the same as "#".     *c_#n*
	##	Is replaced with all names in the argument list	  *:_##* *c_##*
		concatenated, separated by spaces.  Each space in a name
		is preceded with a backslash.
	#<n	(where n is a number > 0) is replaced with old	  *:_#<* *c_#<*
		file name n.  See |:oldfiles| or |v:oldfiles| to get the
		number.							*E809*
		{only when compiled with the |+eval| and |+viminfo| features}

Note that these, except "#<n", give the file name as it was typed.  If an
absolute path is needed (when using the file name from a different directory),
you need to add ":p".  See |filename-modifiers|.

The "#<n" item returns an absolute path, but it will start with "~/" for files
below your home directory.

Note that backslashes are inserted before spaces, so that the command will
correctly interpret the file name.  But this doesn't happen for shell
commands.  For those you probably have to use quotes (this fails for files
that contain a quote and wildcards): >
	:!ls "%"
	:r !spell "%"

To avoid the special meaning of '%' and '#' insert a backslash before it.
Detail: The special meaning is always escaped when there is a backslash before
it, no matter how many backslashes.
	you type:		result	~
	   #			alternate.file
	   \#			#
	   \\#			\#
Also see |`=|.

			       *:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
			       *:<sfile>* *<sfile>* *:<afile>* *<afile>*
			       *:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
			       *:<cexpr>* *<cexpr>*
			       *<slnum>* *E495* *E496* *E497* *E499* *E500*
Note: these are typed literally, they are not special keys!
	<cword>    is replaced with the word under the cursor (like |star|)
	<cWORD>    is replaced with the WORD under the cursor (see |WORD|)
	<cexpr>    is replaced with the word under the cursor, including more
		   to form a C expression.  E.g., when the cursor is on "arg"
		   of "ptr->arg" then the result is "ptr->arg"; when the
		   cursor is on "]" of "list[idx]" then the result is
		   "list[idx]".  This is used for |v:beval_text|.
	<cfile>    is replaced with the path name under the cursor (like what
		   |gf| uses)
	<afile>    When executing autocommands, is replaced with the file name
		   of the buffer being manipulated, or the file for a read or
		   write.
	<abuf>     When executing autocommands, is replaced with the currently
		   effective buffer number (for ":r file" and ":so file" it is
		   the current buffer, the file being read/sourced is not in a
		   buffer).
	<amatch>   When executing autocommands, is replaced with the match for
		   which this autocommand was executed.  It differs from
		   <afile> only when the file name isn't used to match with
		   (for FileType, Syntax and SpellFileMissing events).
	<sfile>    When executing a ":source" command, is replaced with the
		   file name of the sourced file.  *E498*
		   When executing a function, is replaced with:
		   "function {function-name}[{lnum}]"
		   function call nesting is indicated like this:
		   "function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
		   Note that filename-modifiers are useless when <sfile> is
		   used inside a function.
	<slnum>	   When executing a ":source" command, is replaced with the
	           line number.  *E842*
		   When executing a function it's the line number relative to
		   the start of the function.

							 *filename-modifiers*
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S*
     *%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S*
The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>",
"<afile>" or "<abuf>".  They are also used with the |fnamemodify()| function.
These are not available when Vim has been compiled without the |+modify_fname|
feature.
These modifiers can be given, in this order:
	:p	Make file name a full path.  Must be the first modifier.  Also
		changes "~/" (and "~user/" for Unix and VMS) to the path for
		the home directory.  If the name is a directory a path
		separator is added at the end.  For a file name that does not
		exist and does not have an absolute path the result is
		unpredictable.  On MS-Windows an 8.3 filename is expanded to
		the long name.
	:8	Converts the path to 8.3 short format (currently only on
		MS-Windows).  Will act on as much of a path that is an
		existing path.
	:~	Reduce file name to be relative to the home directory, if
		possible.  File name is unmodified if it is not below the home
		directory.
	:.	Reduce file name to be relative to current directory, if
		possible.  File name is unmodified if it is not below the
		current directory.
		For maximum shortness, use ":~:.".
	:h	Head of the file name (the last component and any separators
		removed).  Cannot be used with :e, :r or :t.
		Can be repeated to remove several components at the end.
		When the file name ends in a path separator, only the path
		separator is removed.  Thus ":p:h" on a directory name results
		on the directory name itself (without trailing slash).
		When the file name is an absolute path (starts with "/" for
		Unix; "x:\" for MS-DOS, WIN32, OS/2; "drive:" for Amiga), that
		part is not removed.  When there is no head (path is relative
		to current directory) the result is empty.
	:t	Tail of the file name (last component of the name).  Must
		precede any :r or :e.
	:r	Root of the file name (the last extension removed).  When
		there is only an extension (file name that starts with '.',
		e.g., ".vimrc"), it is not removed.  Can be repeated to remove
		several extensions (last one first).
	:e	Extension of the file name.  Only makes sense when used alone.
		When there is no extension the result is empty.
		When there is only an extension (file name that starts with
		'.'), the result is empty.  Can be repeated to include more
		extensions.  If there are not enough extensions (but at least
		one) as much as possible are included.
	:s?pat?sub?
		Substitute the first occurrence of "pat" with "sub".  This
		works like the |:s| command.  "pat" is a regular expression.
		Any character can be used for '?', but it must not occur in
		"pat" or "sub".
		After this, the previous modifiers can be used again.  For
		example ":p", to make a full path after the substitution.
	:gs?pat?sub?
		Substitute all occurrences of "pat" with "sub".  Otherwise
		this works like ":s".
	:S	Escape special characters for use with a shell command (see
		|shellescape()|). Must be the last one. Examples: >
		    :!dir <cfile>:S
		    :call system('chmod +w -- ' . expand('%:S'))

Examples, when the file name is "src/version.c", current dir
"/home/mool/vim": >
  :p			/home/mool/vim/src/version.c
  :p:.				       src/version.c
  :p:~				 ~/vim/src/version.c
  :h				       src
  :p:h			/home/mool/vim/src
  :p:h:h		/home/mool/vim
  :t					   version.c
  :p:t					   version.c
  :r				       src/version
  :p:r			/home/mool/vim/src/version
  :t:r					   version
  :e						   c
  :s?version?main?		       src/main.c
  :s?version?main?:p	/home/mool/vim/src/main.c
  :p:gs?/?\\?		\home\mool\vim\src\version.c

Examples, when the file name is "src/version.c.gz": >
  :p			/home/mool/vim/src/version.c.gz
  :e						     gz
  :e:e						   c.gz
  :e:e:e					   c.gz
  :e:e:r					   c
  :r				       src/version.c
  :r:e						   c
  :r:r				       src/version
  :r:r:r			       src/version
<
					*extension-removal* *:_%<*
If a "<" is appended to "%", "#", "#n" or "CTRL-V p" the extension of the file
name is removed (everything after and including the last '.' in the file
name).  This is included for backwards compatibility with version 3.0, the
":r" form is preferred.  Examples: >

	%		current file name
	%<		current file name without extension
	#		alternate file name for current window
	#<		idem, without extension
	#31		alternate file number 31
	#31<		idem, without extension
	<cword>		word under the cursor
	<cWORD>		WORD under the cursor (see |WORD|)
	<cfile>		path name under the cursor
	<cfile><	idem, without extension

Note: Where a file name is expected wildcards expansion is done.  On Unix the
shell is used for this, unless it can be done internally (for speed).
Unless in |restricted-mode|, backticks work also, like in >
	:n `echo *.c`
But expansion is only done if there are any wildcards before expanding the
'%', '#', etc..  This avoids expanding wildcards inside a file name.  If you
want to expand the result of <cfile>, add a wildcard character to it.
Examples: (alternate file name is "?readme?")
	command		expands to  ~
	:e #		:e ?readme?
	:e `ls #`	:e {files matching "?readme?"}
	:e #.*		:e {files matching "?readme?.*"}
	:cd <cfile>	:cd {file name under cursor}
	:cd <cfile>*	:cd {file name under cursor plus "*" and then expanded}
Also see |`=|.

When the expanded argument contains a "!" and it is used for a shell command
(":!cmd", ":r !cmd" or ":w !cmd"), the "!" is escaped with a backslash to
avoid it being expanded into a previously used command.  When the 'shell'
option contains "sh", this is done twice, to avoid the shell trying to expand
the "!".

							*filename-backslash*
For filesystems that use a backslash as directory separator (MS-DOS, Windows,
OS/2), it's a bit difficult to recognize a backslash that is used to escape
the special meaning of the next character.  The general rule is: If the
backslash is followed by a normal file name character, it does not have a
special meaning.  Therefore "\file\foo" is a valid file name, you don't have
to type the backslash twice.

An exception is the '$' sign.  It is a valid character in a file name.  But
to avoid a file name like "$home" to be interpreted as an environment variable,
it needs to be preceded by a backslash.  Therefore you need to use "/\$home"
for the file "$home" in the root directory.  A few examples:

	FILE NAME	INTERPRETED AS	~
	$home		expanded to value of environment var $home
	\$home		file "$home" in current directory
	/\$home		file "$home" in root directory
	\\$home		file "\\", followed by expanded $home

Also see |`=|.

==============================================================================
7. Command-line window				*cmdline-window* *cmdwin*
							*command-line-window*
In the command-line window the command line can be edited just like editing
text in any window.  It is a special kind of window, because you cannot leave
it in a normal way.
{not available when compiled without the |+cmdline_hist| or |+vertsplit|
feature}


OPEN						*c_CTRL-F* *q:* *q/* *q?*

There are two ways to open the command-line window:
1. From Command-line mode, use the key specified with the 'cedit' option.
   The default is CTRL-F when 'compatible' is not set.
2. From Normal mode, use the "q:", "q/" or "q?" command.
   This starts editing an Ex command-line ("q:") or search string ("q/" or
   "q?").  Note that this is not possible while recording is in progress (the
   "q" stops recording then).

When the window opens it is filled with the command-line history.  The last
line contains the command as typed so far.  The left column will show a
character that indicates the type of command-line being edited, see
|cmdwin-char|.

Vim will be in Normal mode when the editor is opened, except when 'insertmode'
is set.

The height of the window is specified with 'cmdwinheight' (or smaller if there
is no room).  The window is always full width and is positioned just above the
command-line.


EDIT

You can now use commands to move around and edit the text in the window.  Both
in Normal mode and Insert mode.

It is possible to use ":", "/" and other commands that use the command-line,
but it's not possible to open another command-line window then.  There is no
nesting.
							*E11*
The command-line window is not a normal window.  It is not possible to move to
another window or edit another buffer.  All commands that would do this are
disabled in the command-line window.  Of course it _is_ possible to execute
any command that you entered in the command-line window.  Other text edits are
discarded when closing the window.


CLOSE							*E199*

There are several ways to leave the command-line window:

<CR>		Execute the command-line under the cursor.  Works both in
		Insert and in Normal mode.
CTRL-C		Continue in Command-line mode.  The command-line under the
		cursor is used as the command-line.  Works both in Insert and
		in Normal mode.  There is no redraw, thus the window will
		remain visible.
:quit		Discard the command line and go back to Normal mode.
		":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
:qall		Quit Vim, unless there are changes in some buffer.
:qall!		Quit Vim, discarding changes to any buffer.

Once the command-line window is closed the old window sizes are restored.  The
executed command applies to the window and buffer where the command-line was
started from.  This works as if the command-line window was not there, except
that there will be an extra screen redraw.
The buffer used for the command-line window is deleted.  Any changes to lines
other than the one that is executed with <CR> are lost.

If you would like to execute the command under the cursor and then have the
command-line window open again, you may find this mapping useful: >

	:autocmd CmdwinEnter * map <buffer> <F5> <CR>q:


VARIOUS

The command-line window cannot be used:
- when there already is a command-line window (no nesting)
- for entering an encryption key or when using inputsecret()
- when Vim was not compiled with the |+vertsplit| feature

Some options are set when the command-line window is opened:
'filetype'	"vim", when editing an Ex command-line; this starts Vim syntax
		highlighting if it was enabled
'rightleft'	off
'modifiable'	on
'buftype'	"nofile"
'swapfile'	off

It is allowed to write the buffer contents to a file.  This is an easy way to
save the command-line history and read it back later.

If the 'wildchar' option is set to <Tab>, and the command-line window is used
for an Ex command, then two mappings will be added to use <Tab> for completion
in the command-line window, like this: >
	:imap <buffer> <Tab> <C-X><C-V>
	:nmap <buffer> <Tab> a<C-X><C-V>
Note that hitting <Tab> in Normal mode will do completion on the next
character.  That way it works at the end of the line.
If you don't want these mappings, disable them with: >
	au CmdwinEnter [:>] iunmap <Tab>
	au CmdwinEnter [:>] nunmap <Tab>
You could put these lines in your vimrc file.

While in the command-line window you cannot use the mouse to put the cursor in
another window, or drag statuslines of other windows.  You can drag the
statusline of the command-line window itself and the statusline above it.
Thus you can resize the command-line window, but not others.

The |getcmdwintype()| function returns the type of the command-line being
edited as described in |cmdwin-char|.


AUTOCOMMANDS

Two autocommand events are used: |CmdwinEnter| and |CmdwinLeave|.  Since this
window is of a special type, the WinEnter, WinLeave, BufEnter and BufLeave
events are not triggered.  You can use the Cmdwin events to do settings
specifically for the command-line window.  Be careful not to cause side
effects!
Example: >
	:au CmdwinEnter :  let b:cpt_save = &cpt | set cpt=.
	:au CmdwinLeave :  let &cpt = b:cpt_save
This sets 'complete' to use completion in the current window for |i_CTRL-N|.
Another example: >
	:au CmdwinEnter [/?]  startinsert
This will make Vim start in Insert mode in the command-line window.

						*cmdwin-char*
The character used for the pattern indicates the type of command-line:
	:	normal Ex command
	>	debug mode command |debug-mode|
	/	forward search string
	?	backward search string
	=	expression for "= |expr-register|
	@	string for |input()|
	-	text for |:insert| or |:append|

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�rl�p
�p
vim80/doc/version8.txtnu�[���*version8.txt*  For Vim version 8.0.  Last change: 2017 Nov 24


		  VIM REFERENCE MANUAL    by Bram Moolenaar


				*vim8* *vim-8* *version-8.0* *version8.0*
Welcome to Vim 8!  A large number of bugs have been fixed and several nice
features have been added.  This file mentions all the new items and changes to
existing features since Vim 7.4. The patches up to Vim 7.4 can be found here:
|vim-7.4|.

Use this command to see the full version and features information of the Vim
program you are using: >
	:version

NEW FEATURES				|new-8|
	Vim script enhancements		|new-vim-script-8|
	Various new items		|new-items-8|

INCOMPATIBLE CHANGES			|incompatible-8|

IMPROVEMENTS				|improvements-8|

COMPILE TIME CHANGES			|compile-changes-8|

PATCHES					|patches-8|


See |vi_diff.txt| for an overview of differences between Vi and Vim 8.0.
See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for
differences between other versions.

==============================================================================
NEW FEATURES						*new-8*

First an overview of the more interesting new features.  A comprehensive list
is below.


Asynchronous I/O support, channels ~

Vim can now exchange messages with other processes in the background.  This
makes it possible to have servers do work and send back the results to Vim.
See |channel-demo| for an example, this shows communicating with a Python
server.

Closely related to channels is JSON support.  JSON is widely supported and can
easily be used for inter-process communication, allowing for writing a server
in any language.  The functions to use are |json_encode()| and |json_decode()|.

This makes it possible to build very complex plugins, written in any language
and running in a separate process.


Jobs ~

Vim can now start a job, communicate with it and stop it.  This is very useful
to run a process for completion, syntax checking, etc.  Channels are used to
communicate with the job.  Jobs can also read from or write to a buffer or a
file.  See |job_start()|.


Timers ~

Also asynchronous are timers.  They can fire once or repeatedly and invoke a
function to do any work.  For example: >
	let tempTimer = timer_start(4000, 'CheckTemp')
This will call the CheckTemp() function four seconds (4000 milli seconds)
later.  See |timer_start()|.


Partials ~

Vim already had a Funcref, a reference to a function.  A partial also refers
to a function, and additionally binds arguments and/or a dictionary.  This is
especially useful for callbacks on channels and timers.  E.g., for the timer
example above, to pass an argument to the function: >
	let tempTimer = timer_start(4000, function('CheckTemp', ['out']))
This will call CheckTemp('out') four seconds later.


Lambda and Closure ~

A short way to create a function has been added: {args -> expr}.  See |lambda|.
This is useful for functions such as `filter()` and `map()`, which now also
accept a function argument.  Example: >
	:call filter(mylist, {idx, val -> val > 20})

A lambda can use variables defined in the scope where the lambda is defined.
This is usually called a |closure|.

User defined functions can also be a closure by adding the "closure" argument
|:func-closure|.


Packages ~

Plugins keep growing and more of them are available than ever before.  To keep
the collection of plugins manageable package support has been added.  This is
a convenient way to get one or more plugins, drop them in a directory and
possibly keep them updated.  Vim will load them automatically, or only when
desired.  See |packages|.


New style tests ~

This is for Vim developers.  So far writing tests for Vim has not been easy.
Vim 8 adds assert functions and a framework to run tests.  This makes it a lot
simpler to write tests and keep them updated.  Also new are several functions
that are added specifically for testing. See |test-functions|.


Window IDs ~

Previously windows could only be accessed by their number. And every time a
window would open, close or move that number changes.  Each window now has a
unique ID, so that they are easy to find.  See |win_getid()| and |win_id2win()|.


Viminfo uses timestamps ~

Previously the information stored in viminfo was whatever the last Vim wrote
there.  Now timestamps are used to always keep the most recent items.
See |viminfo-timestamp|.


Wrapping lines with indent ~

The 'breakindent' option has been added to be able to wrap lines without
changing the amount of indent.


Windows: DirectX support ~

This adds the 'renderoptions' option to allow for switching on DirectX
(DirectWrite) support on MS-Windows.


GTK+ 3 support ~

The GTK+ 3 GUI works just like GTK+ 2 except for hardly noticeable technical
differences between them.  Configure still chooses GTK+ 2 if both 2 and 3 are
available.  See src/Makefile for how to use GTK+ 3 instead.  See
|gui-x11-compiling| for other details.


Vim script enhancements					*new-vim-script-8*
-----------------------

In Vim script the following types have been added:

	|Special|	|v:false|, |v:true|, |v:none| and |v:null|
	|Channel|	connection to another process for asynchronous I/O
	|Job|		process control

Many functions and commands have been added to support the new types.

On some systems the numbers used in Vim script are now 64 bit.  This can be
checked with the |+num64| feature.

Many items were added to support |new-style-testing|.

printf() now accepts any type of argument for %s.  It is converted to a string
like with string().


Various new items					*new-items-8*
-----------------

Visual mode commands: ~

|v_CTRL-A|	CTRL-A		add N to number in highlighted text
|v_CTRL-X|	CTRL-X		subtract N from number in highlighted text
|v_g_CTRL-A|	g CTRL-A	add N to number in highlighted text
|v_g_CTRL-X|	g CTRL-X	subtract N from number in highlighted text


Insert mode commands: ~

|i_CTRL-G_U|	CTRL-G U	don't break undo with next cursor movement


Cmdline mode commands: ~

|/_CTRL-G|	CTRL-G		move to the next match in 'incsearch' mode
|/_CTRL-T|	CTRL-T		move to the previous match in 'incsearch' mode


Options: ~

'belloff'		do not ring the bell for these reasons
'breakindent'		wrapped line repeats indent
'breakindentopt'	settings for 'breakindent'.
'emoji'			emoji characters are considered full width
'fixendofline'		make sure last line in file has <EOL>
'langremap'		do apply 'langmap' to mapped characters
'luadll'		name of the Lua dynamic library
'packpath'		list of directories used for packages
'perldll'		name of the Perl dynamic library
'pythondll'		name of the Python 2 dynamic library
'pythonthreedll'	name of the Python 3 dynamic library
'renderoptions'		options for text rendering on Windows
'rubydll'		name of the Ruby dynamic library
'signcolumn'		when to display the sign column
'tagcase'		how to handle case when searching in tags files
'tcldll'		name of the Tcl dynamic library
'termguicolors'		use GUI colors for the terminal


Ex commands: ~

|:cbottom|		scroll to the bottom of the quickfix window
|:cdo|			execute command in each valid error list entry
|:cfdo|			execute command in each file in error list
|:chistory|		display quickfix list stack
|:clearjumps|		clear the jump list
|:filter|		only output lines that (do not) match a pattern
|:helpclose|		close one help window
|:lbottom|		scroll to the bottom of the location window
|:ldo|			execute command in valid location list entries
|:lfdo|			execute command in each file in location list
|:lhistory|		display location list stack
|:noswapfile|		following commands don't create a swap file
|:packadd|		add a plugin from 'packpath'
|:packloadall|		load all packages under 'packpath'
|:smile|		make the user happy


Ex command modifiers: ~

|:keeppatterns|		following command keeps search pattern history
|<mods>|		supply command modifiers to user defined commands


New and extended functions: ~

|arglistid()|		get id of the argument list
|assert_equal()|	assert that two expressions values are equal
|assert_exception()|	assert that a command throws an exception
|assert_fails()|	assert that a function call fails
|assert_false()|	assert that an expression is false
|assert_inrange()|	assert that an expression is inside a range
|assert_match()|	assert that a pattern matches the value
|assert_notequal()|	assert that two expressions values are not equal
|assert_notmatch()|	assert that a pattern does not match the value
|assert_true()|		assert that an expression is true
|bufwinid()|		get the window ID of a specific buffer
|byteidxcomp()|		like byteidx() but count composing characters
|ch_close()|		close a channel
|ch_close_in()|		close the in part of a channel
|ch_evalexpr()|		evaluates an expression over channel
|ch_evalraw()|		evaluates a raw string over channel
|ch_getbufnr()|		get the buffer number of a channel
|ch_getjob()|		get the job associated with a channel
|ch_info()|		get channel information
|ch_log()|		write a message in the channel log file
|ch_logfile()|		set the channel log file
|ch_open()|		open a channel
|ch_read()|		read a message from a channel
|ch_readraw()|		read a raw message from a channel
|ch_sendexpr()|		send a JSON message over a channel
|ch_sendraw()|		send a raw message over a channel
|ch_setoptions()|	set the options for a channel
|ch_status()|		get status of a channel
|execute()|		execute an Ex command and get the output
|exepath()|		full path of an executable program
|funcref()|		return a reference to function {name}
|getbufinfo()|		get a list with buffer information
|getcharsearch()|	return character search information
|getcmdwintype()|	return the current command-line window type
|getcompletion()|	return a list of command-line completion matches
|getcurpos()|		get position of the cursor
|gettabinfo()|		get a list with tab page information
|getwininfo()|		get a list with window information
|glob2regpat()|		convert a glob pattern into a search pattern
|isnan()|		check for not a number
|job_getchannel()|	get the channel used by a job
|job_info()|		get information about a job
|job_setoptions()|	set options for a job
|job_start()|		start a job
|job_status()|		get the status of a job
|job_stop()|		stop a job
|js_decode()|		decode a JSON string to Vim types
|js_encode()|		encode an expression to a JSON string
|json_decode()|		decode a JSON string to Vim types
|json_encode()|		encode an expression to a JSON string
|matchaddpos()|		define a list of positions to highlight
|matchstrpos()|		match and positions of a pattern in a string
|perleval()|		evaluate Perl expression
|reltimefloat()|	convert reltime() result to a Float
|setcharsearch()|	set character search information
|setfperm()|		set the permissions of a file
|strcharpart()|		get part of a string using char index
|strgetchar()|		get character from a string using char index
|systemlist()|		get the result of a shell command as a list
|test_alloc_fail()|	make memory allocation fail
|test_autochdir()|	test 'autochdir' functionality
test_disable_char_avail() test without typeahead (removed later)
|test_garbagecollect_now()| free memory right now
|test_null_channel()|	return a null Channel
|test_null_dict()|	return a null Dict
|test_null_job()|	return a null Job
|test_null_list()|	return a null List
|test_null_partial()|	return a null Partial function
|test_null_string()|	return a null String
|test_settime()|	set the time Vim uses internally
|timer_info()|		get information about timers
|timer_pause()|		pause or unpause a timer
|timer_start()|		create a timer
|timer_stop()|		stop a timer
|timer_stopall()|	stop all timers
|uniq()|		remove copies of repeated adjacent items
|win_findbuf()|		find windows containing a buffer
|win_getid()|		get window ID of a window
|win_gotoid()|		go to window with ID
|win_id2tabwin()|	get tab and window nr from window ID
|win_id2win()|		get window nr from window ID
|wordcount()|		get byte/word/char count of buffer


New Vim variables: ~

|v:beval_winid|		Window ID of the window where the mouse pointer is
|v:completed_item|	complete items for the most recently completed word
|v:errors|		errors found by assert functions
|v:false|		a Number with value zero
|v:hlsearch|		indicates whether search highlighting is on
|v:mouse_winid|		Window ID for a mouse click obtained with |getchar()|
|v:none|		an empty String, used for JSON
|v:null|		an empty String, used for JSON
|v:option_new|    	new value of the option, used by |OptionSet|
|v:option_old|    	old value of the option, used by |OptionSet|
|v:option_type|   	scope of the set command, used by |OptionSet|
|v:progpath|		the command with which Vim was invoked
|v:t_bool|		value of Boolean type
|v:t_channel|		value of Channel type
|v:t_dict|		value of Dictionary type
|v:t_float|		value of Float type
|v:t_func|		value of Funcref type
|v:t_job|		value of Job type
|v:t_list|		value of List type
|v:t_none|		value of None type
|v:t_number|		value of Number type
|v:t_string|		value of String type
|v:testing|		must be set before using `test_garbagecollect_now()`
|v:true|		a Number with value one
|v:vim_did_enter|	set just before VimEnter autocommands are triggered


New autocommand events: ~

|CmdUndefined|		a user command is used but it isn't defined
|OptionSet|		after setting any option
|TabClosed|		after closing a tab page
|TabNew|		after creating a new tab page
|TextChangedI|		after a change was made to the text in Insert mode
|TextChanged|		after a change was made to the text in Normal mode
|WinNew|		after creating a new window


New highlight groups: ~

EndOfBuffer		filler lines (~) after the last line in the buffer.
			|hl-EndOfBuffer|


New items in search patterns: ~

|/\%C|	\%C		match any composing characters


New Syntax/Indent/FTplugin files: ~

AVR Assembler (Avra) syntax
Arduino syntax
Bazel syntax and indent and ftplugin
Dockerfile syntax and ftplugin
Eiffel ftplugin
Euphoria 3 and 4 syntax
Go syntax and indent and ftplugin
Godoc syntax
Groovy ftplugin
HGcommit ftplugin
Hog indent and ftplugin
Innovation Data Processing upstream.pt syntax
J syntax and indent and ftplugin
Jproperties ftplugin
Json syntax and indent and ftplugin
Kivy syntax
Less syntax and indent
Mix syntax
Motorola S-Record syntax
R ftplugin
ReStructuredText syntax and indent and ftplugin
Registry ftplugin
Rhelp indent and ftplugin
Rmd (markdown with R code chunks) syntax and indent
Rmd ftplugin
Rnoweb ftplugin
Rnoweb indent
Scala syntax and indent and ftplugin
SystemVerilog syntax and indent and ftplugin
Systemd syntax and indent and ftplugin
Teraterm (TTL) syntax and indent
Text ftplugin
Vroom syntax and indent and ftplugin


New Keymaps: ~

Armenian eastern and western
Russian jcukenwintype
Vietnamese telex and vni

==============================================================================
INCOMPATIBLE CHANGES				*incompatible-8*

These changes are incompatible with previous releases.  Check this list if you
run into a problem when upgrading from Vim 7.4 to 8.0.


Better defaults without a vimrc ~

When no vimrc file is found, the |defaults.vim| script is loaded to set more
useful default values for new users.  That includes setting 'nocompatible'.
Thus Vim no longer starts up in Vi compatible mode.  If you do want that,
either create a .vimrc file that does "set compatible" or start Vim with
"vim -C".


Support removed ~

The support for MS-DOS has been removed.  It hasn't been working for a while
(Vim doesn't fit in memory) and removing it cleans up the code quite a bit.

The support for Windows 16 bit (Windows 95 and older) has been removed.

The support for OS/2 has been removed.  It probably hasn't been working for a
while since nobody uses it.

The SNiFF+ support has been removed.


Minor incompatibilities: ~

Probably...

==============================================================================
IMPROVEMENTS						*improvements-8*

The existing blowfish encryption turned out to be much weaker than it was
supposed to be.  The blowfish2 method has been added to fix that.  Note that
this still isn't a state-of-the-art encryption, but good enough for most
usage.  See 'cryptmethod'.


==============================================================================
COMPILE TIME CHANGES					*compile-changes-8*

The Vim repository was moved from Google code to github, since Google code
was shut down.  It can now be found at https://github.com/vim/vim.

Functions now use ANSI-C declarations.  At least a C-89 compatible compiler is
required.

The +visual feature is now always included.

==============================================================================
PATCHES						*patches-8* *bug-fixes-8*

The list of patches that got included since 7.4.0.  This includes all the new
features, but does not include runtime file changes (syntax, indent, help,
etc.)

Patch 7.4.001
Problem:    Character classes such as [a-z] do not react to 'ignorecase'.
	    Breaks man page highlighting. (Mario Grgic)
Solution:   Add separate items for classes that react to 'ignorecase'.  Clean
	    up logic handling character classes.  Add more tests.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.002
Problem:    Pattern with two alternative look-behind matches does not match.
	    (Amadeus Demarzi)
Solution:   When comparing PIMs also compare their state ID to see if they are
	    different.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.003
Problem:    Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution:   Refresh stale pointer. (James McCoy)
Files:	    src/regexp_nfa.c

Patch 7.4.004
Problem:    When closing a window fails ":bwipe" may hang.
Solution:   Let win_close() return FAIL and break out of the loop.
Files:	    src/window.c, src/proto/window.pro, src/buffer.c

Patch 7.4.005
Problem:    Using "vaB" while 'virtualedit' is set selects the wrong area.
	    (Dimitar Dimitrov)
Solution:   Reset coladd when finding a match.
Files:	    src/search.c

Patch 7.4.006
Problem:    mkdir("foo/bar/", "p") gives an error message. (David Barnett)
Solution:   Remove the trailing slash. (lcd)
Files:	    src/eval.c

Patch 7.4.007
Problem:    Creating a preview window on startup leaves the screen layout in a
	    messed up state. (Marius Gedminas)
Solution:   Don't change firstwin. (Christian Brabandt)
Files:	    src/main.c

Patch 7.4.008
Problem:    New regexp engine can't be interrupted.
Solution:   Check for CTRL-C pressed. (Yasuhiro Matsumoto)
Files:	    src/regexp_nfa.c, src/regexp.c

Patch 7.4.009
Problem:    When a file was not decrypted (yet), writing it may destroy the
	    contents.
Solution:   Mark the file as readonly until decryption was done. (Christian
	    Brabandt)
Files:	    src/fileio.c

Patch 7.4.010 (after 7.4.006)
Problem:    Crash with invalid argument to mkdir().
Solution:   Check for empty string. (lcd47)
Files:	    src/eval.c

Patch 7.4.011
Problem:    Cannot find out if "acl" and "xpm" features are supported.
Solution:   Add "acl" and "xpm" to the list of features. (Ken Takata)
Files:	    src/eval.c, src/version.c

Patch 7.4.012
Problem:    MS-Windows: resolving shortcut does not work properly with
	    multi-byte characters.
Solution:   Use wide system functions. (Ken Takata)
Files:	    src/os_mswin.c

Patch 7.4.013
Problem:    MS-Windows: File name buffer too small for utf-8.
Solution:   Use character count instead of byte count. (Ken Takata)
Files:	    src/os_mswin.c

Patch 7.4.014
Problem:    MS-Windows: check for writing to device does not work.
Solution:   Fix #ifdefs. (Ken Takata)
Files:	    src/fileio.c

Patch 7.4.015
Problem:    MS-Windows: Detecting node type does not work for multi-byte
	    characters.
Solution:   Use wide character function when needed. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.016
Problem:    MS-Windows: File name case can be wrong.
Solution:   Add fname_casew(). (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.017
Problem:    ":help !!" does not find the "!!" tag in the help file. (Ben
	    Fritz)
Solution:   When reading the start of the tags file do parse lines that are
	    not header lines.
Files:	    src/tag.c

Patch 7.4.018
Problem:    When completing item becomes unselected. (Shougo Matsu)
Solution:   Revert patch 7.3.1269.
Files:	    src/edit.c

Patch 7.4.019
Problem:    MS-Windows: File name completion doesn't work properly with
	    Chinese characters. (Yue Wu)
Solution:   Take care of multi-byte characters when looking for the start of
	    the file name. (Ken Takata)
Files:	    src/edit.c

Patch 7.4.020
Problem:    NFA engine matches too much with \@>. (John McGowan)
Solution:   When a whole pattern match is found stop searching.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.021
Problem:    NFA regexp: Using \ze in one branch which doesn't match may cause
	    end of another branch to be wrong. (William Fugh)
Solution:   Set end position if it wasn't set yet.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.022
Problem:    Deadlock while exiting, because of allocating memory.
Solution:   Do not use gettext() in deathtrap(). (James McCoy)
Files:	    src/os_unix.c, src/misc1.c

Patch 7.4.023
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
Files:	    src/edit.c

Patch 7.4.024
Problem:    When root edits a file the undo file is owned by root while the
	    edited file may be owned by another user, which is not allowed.
	    (cac2s)
Solution:   Accept an undo file owned by the current user.
Files:	    src/undo.c

Patch 7.4.025 (after 7.4.019)
Problem:    Reading before start of a string.
Solution:   Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
Files:	    src/edit.c

Patch 7.4.026
Problem:    Clang warning for int shift overflow.
Solution:   Use unsigned and cast back to int. (Dominique Pelle)
Files:	    src/misc2.c

Patch 7.4.027 (after 7.4.025)
Problem:    Another valgrind error when using CTRL-X CTRL-F at the start of
	    the line. (Dominique Pelle)
Solution:   Don't call mb_ptr_back() at the start of the line.  Add a test.
Files:	    src/edit.c, src/testdir/test32.in

Patch 7.4.028
Problem:    Equivalence classes are not working for multi-byte characters.
Solution:   Copy the rules from the old to the new regexp engine. Add a test
	    to check both engines.
Files:	    src/regexp_nfa.c, src/testdir/test44.in, src/testdir/test99.in,
	    src/testdir/test99.ok, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile

Patch 7.4.029
Problem:    An error in a pattern is reported twice.
Solution:   Remove the retry with the backtracking engine, it won't work.
Files:	    src/regexp.c

Patch 7.4.030
Problem:    The -mno-cygwin argument is no longer supported by Cygwin.
Solution:   Remove the arguments. (Steve Hall)
Files:	    src/GvimExt/Make_cyg.mak, src/Make_cyg.mak, src/xxd/Make_cyg.mak

Patch 7.4.031
Problem:    ":diffoff!" resets options even when 'diff' is not set. (Charles
	    Cooper)
Solution:   Only resets related options in a window where 'diff' is set.
Files:	    src/diff.c

Patch 7.4.032
Problem:    NFA engine does not match the NUL character. (Jonathon Merz)
Solution:   Use 0x0a instead of NUL. (Christian Brabandt)
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.033
Problem:    When the terminal has only 20 lines test 92 and 93 overwrite the
	    input file.
Solution:   Explicitly write test.out. Check that the terminal is large enough
	    to run the tests.  (Hirohito Higashi)
Files:	    src/testdir/test92.in, src/testdir/test93.in,
	    src/testdir/test1.in, src/testdir/Makefile

Patch 7.4.034
Problem:    Using "p" in Visual block mode only changes the first line.
Solution:   Repeat the put in all text in the block. (Christian Brabandt)
Files:	    runtime/doc/change.txt, src/ops.c, src/normal.c,
	    src/testdir/test20.in, src/testdir/test20.ok

Patch 7.4.035
Problem:    MS-Windows: The mouse pointer flickers when going from command
	    line mode to Normal mode.
Solution:   Check for WM_NCMOUSEMOVE. (Ken Takata)
Files:	    src/gui_w48.c

Patch 7.4.036
Problem:    NFA engine does not capture group correctly when using \@>. (ZyX)
Solution:   Copy submatches before doing the recursive match.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.037
Problem:    Using "\ze" in a sub-pattern does not result in the end of the
	    match to be set. (Axel Bender)
Solution:   Copy the end of match position when a recursive match was
	    successful.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.038
Problem:    Using "zw" and "zg" when 'spell' is off give a confusing error
	    message. (Gary Johnson)
Solution:   Ignore the error when locating the word.  Explicitly mention what
	    word was added. (Christian Brabandt)
Files:	    src/normal.c, src/spell.c

Patch 7.4.039
Problem:    MS-Windows: MSVC10 and earlier can't handle symlinks to a
	    directory properly.
Solution:   Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
Files:	    src/os_mswin.c, src/os_win32.c, src/os_win32.h

Patch 7.4.040
Problem:    Valgrind error on exit when a script-local variable holds a
	    reference to the scope of another script.
Solution:   First clear all variables, then free the scopes. (ZyX)
Files:	    src/eval.c

Patch 7.4.041 (after 7.4.034)
Problem:    Visual selection does not remain after being copied over. (Axel
	    Bender)
Solution:   Move when VIsual_active is reset. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.4.042
Problem:    When using ":setlocal" for 'spell' and 'spelllang' then :spelldump
	    doesn't work. (Dimitar Dimitrov)
Solution:   Copy the option variables to the new window used to show the dump.
	    (Christian Brabandt)
Files:	    src/spell.c

Patch 7.4.043
Problem:    VMS can't handle long function names.
Solution:   Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
Files:	    src/main.c, src/term.c, src/proto/term.pro


Patch 7.4.044 (after 7.4.039)
Problem:    Can't build with old MSVC. (Wang Shoulin)
Solution:   Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
Files:	    src/os_mswin.c

Patch 7.4.045
Problem:    substitute() does not work properly when the pattern starts with
	    "\ze".
Solution:   Detect an empty match. (Christian Brabandt)
Files:	    src/eval.c, src/testdir/test80.in, src/testdir/test80.ok

Patch 7.4.046
Problem:    Can't use Tcl 8.6.
Solution:   Change how Tcl_FindExecutable is called. (Jan Nijtmans)
Files:	    src/if_tcl.c

Patch 7.4.047
Problem:    When using input() in a function invoked by a mapping it doesn't
	    work.
Solution:   Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.4.048
Problem:    Recent clang version complains about -fno-strength-reduce.
Solution:   Add a configure check for the clang version. (Kazunobu Kuriyama)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.049
Problem:    In Ex mode, when line numbers are enabled the substitute prompt is
	    wrong.
Solution:   Adjust for the line number size. (Benoit Pierre)
Files:	    src/ex_cmds.c

Patch 7.4.050
Problem:    "gn" selects too much for the pattern "\d" when there are two
	    lines with a single digit. (Ryan Carney)
Solution:   Adjust the logic of is_one_char(). (Christian Brabandt)
Files:	    src/search.c, src/testdir/test53.in, src/testdir/test53.ok

Patch 7.4.051
Problem:    Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution:   Copy the pim structure before calling addstate() to avoid it
	    becoming invalid when the state list is reallocated.
Files:	    src/regexp_nfa.c

Patch 7.4.052
Problem:    With 'fo' set to "a2" inserting a space in the first column may
	    cause the cursor to jump to the previous line.
Solution:   Handle the case when there is no comment leader properly. (Tor
	    Perkins)  Also fix that cursor is in the wrong place when spaces
	    get replaced with a Tab.
Files:	    src/misc1.c, src/ops.c, src/testdir/test68.in,
	    src/testdir/test68.ok

Patch 7.4.053
Problem:    Test75 has a wrong header. (ZyX)
Solution:   Fix the text and remove leading ".
Files:	    src/testdir/test75.in

Patch 7.4.054
Problem:    Reading past end of the 'stl' string.
Solution:   Don't increment pointer when already at the NUL. (Christian
	    Brabandt)
Files:	    src/buffer.c

Patch 7.4.055
Problem:    Mac: Where availability macros are defined depends on the system.
Solution:   Add a configure check. (Felix Bünemann)
Files:	    src/config.h.in, src/configure.in, src/auto/configure,
	    src/os_mac.h

Patch 7.4.056
Problem:    Mac: Compilation problem with OS X 10.9 Mavericks.
Solution:   Include AvailabilityMacros.h when available. (Kazunobu Kuriyama)
Files:	    src/os_unix.c

Patch 7.4.057
Problem:    byteidx() does not work for composing characters.
Solution:   Add byteidxcomp().
Files:	    src/eval.c, src/testdir/test69.in, src/testdir/test69.ok,
	    runtime/doc/eval.txt

Patch 7.4.058
Problem:    Warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)
Files:	    src/ops.c

Patch 7.4.059
Problem:    set_last_cursor() may encounter w_buffer being NULL.  (Matt
	    Mkaniaris)
Solution:   Check for NULL.
Files:	    src/mark.c

Patch 7.4.060
Problem:    Declaration has wrong return type for PyObject_SetAttrString().
Solution:   Use int instead of PyObject. (Andreas Schwab)
Files:	    src/if_python.c, src/if_python3.c

Patch 7.4.061 (after 7.4.055 and 7.4.056)
Problem:    Availability macros configure check in wrong place.
Solution:   Also check when not using Darwin. Remove version check.
Files:	    src/configure.in, src/auto/configure, src/os_unix.c

Patch 7.4.062 (after 7.4.061)
Problem:    Configure check for AvailabilityMacros.h is wrong.
Solution:   Use AC_CHECK_HEADERS().
Files:	    src/configure.in, src/auto/configure

Patch 7.4.063
Problem:    Crash when using invalid key in Python dictionary.
Solution:   Check for object to be NULL.  Add tests. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.064
Problem:    When replacing a character in Visual block mode, entering a CR
	    does not cause a repeated line break.
Solution:   Recognize the situation and repeat the line break. (Christian
	    Brabandt)
Files:	    src/normal.c, src/ops.c, src/testdir/test39.in,
	    src/testdir/test39.ok

Patch 7.4.065
Problem:    When recording, the character typed at the hit-enter prompt is
	    recorded twice. (Urtica Dioica)
Solution:   Avoid recording the character twice. (Christian Brabandt)
Files:	    src/message.c

Patch 7.4.066
Problem:    MS-Windows: When there is a colon in the file name (sub-stream
	    feature) the swap file name is wrong.
Solution:   Change the colon to "%". (Yasuhiro Matsumoto)
Files:	    src/fileio.c, src/memline.c, src/misc1.c, src/proto/misc1.pro

Patch 7.4.067
Problem:    After inserting comment leader, CTRL-\ CTRL-O does move the
	    cursor. (Wiktor Ruben)
Solution:   Avoid moving the cursor. (Christian Brabandt)
Files:	    src/edit.c

Patch 7.4.068
Problem:    Cannot build Vim on Mac with non-Apple compilers.
Solution:   Remove the -no-cpp-precomp flag. (Misty De Meo)
Files:	    src/configure.in, src/auto/configure, src/osdef.sh

Patch 7.4.069
Problem:    Cannot right shift lines starting with #.
Solution:   Allow the right shift when 'cino' contains #N with N > 0.
	    (Christian Brabandt)
	    Refactor parsing 'cino', store the values in the buffer.
Files:	    runtime/doc/indent.txt, src/buffer.c, src/edit.c, src/eval.c,
	    src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
	    src/proto/misc1.pro, src/proto/option.pro, src/structs.h,
	    src/option.c

Patch 7.4.070 (after 7.4.069)
Problem:    Can't compile with tiny features. (Tony Mechelynck)
Solution:   Add #ifdef.
Files:	    src/buffer.c

Patch 7.4.071 (after 7.4.069)
Problem:    Passing limits around too often.
Solution:   Use limits from buffer.
Files:	    src/edit.c, src/misc1.c, src/proto/misc1.pro

Patch 7.4.072
Problem:    Crash when using Insert mode completion.
Solution:   Avoid going past the end of pum_array. (idea by Francisco Lopes)
Files:	    src/popupmnu.c

Patch 7.4.073
Problem:    Setting undolevels for one buffer changes undo in another.
Solution:   Make 'undolevels' a global-local option. (Christian Brabandt)
Files:	    runtime/doc/options.txt, src/buffer.c, src/option.c, src/option.h
	    src/structs.h, src/undo.c

Patch 7.4.074
Problem:    When undo'ing all changes and creating a new change the undo
	    structure is incorrect. (Christian Brabandt)
Solution:   When deleting the branch starting at the old header, delete the
	    whole branch, not just the first entry.
Files:	    src/undo.c

Patch 7.4.075
Problem:    Locally setting 'undolevels' is not tested.
Solution:   Add a test. (Christian Brabandt)
Files:	    src/testdir/test100.in, src/testdir/test100.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile, src/Makefile

Patch 7.4.076
Problem:    "cgn" does not wrap around the end of the file. (Dimitar Dimitrov)
Solution:   Restore 'wrapscan' earlier. (Christian Brabandt)
Files:	    src/search.c

Patch 7.4.077
Problem:    DOS installer creates shortcut without a path, resulting in the
	    current directory to be C:\Windows\system32.
Solution:   Use environment variables.
Files:	    src/dosinst.c

Patch 7.4.078
Problem:    MSVC 2013 is not supported.
Solution:   Recognize and support MSVC 2013. (Ed Brown)
Files:	    src/Make_mvc.mak

Patch 7.4.079
Problem:    A script cannot detect whether 'hlsearch' highlighting is actually
	    displayed.
Solution:   Add the "v:hlsearch" variable. (ZyX)
Files:	    src/eval.c, src/ex_docmd.c,
	    src/option.c, src/screen.c, src/search.c, src/tag.c, src/vim.h,
	    src/testdir/test101.in, src/testdir/test101.ok, 
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.080 (after 7.4.079)
Problem:    Missing documentation for v:hlsearch.
Solution:   Include the right file in the patch.
Files:	    runtime/doc/eval.txt

Patch 7.4.081 (after 7.4.078)
Problem:    Wrong logic when ANALYZE is "yes".
Solution:   Use or instead of and. (KF Leong)
Files:	    src/Make_mvc.mak

Patch 7.4.082
Problem:    Using "gf" in a changed buffer suggests adding "!", which is not
	    possible. (Tim Chase)
Solution:   Pass a flag to check_changed() whether adding ! make sense.
Files:	    src/vim.h, src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/globals.h,
	    src/ex_cmds.c, src/ex_docmd.c

Patch 7.4.083
Problem:    It's hard to avoid adding a used pattern to the search history.
Solution:   Add the ":keeppatterns" modifier. (Christian Brabandt)
Files:	    runtime/doc/cmdline.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/ex_getln.c, src/structs.h

Patch 7.4.084
Problem:    Python: interrupt not being properly discarded. (Yggdroot Chen)
Solution:   Discard interrupt in VimTryEnd. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.085
Problem:    When inserting text in Visual block mode and moving the cursor the
	    wrong text gets repeated in other lines.
Solution:   Use the '[ mark to find the start of the actually inserted text.
	    (Christian Brabandt)
Files:	    src/ops.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.086
Problem:    Skipping over an expression when not evaluating it does not work
	    properly for dict members.
Solution:   Skip over unrecognized expression. (ZyX)
Files:	    src/eval.c, src/testdir/test34.in, src/testdir/test34.ok

Patch 7.4.087
Problem:    Compiler warning on 64 bit Windows systems.
Solution:   Fix type cast. (Mike Williams)
Files:	    src/ops.c

Patch 7.4.088
Problem:    When spell checking is enabled Asian characters are always marked
	    as error.
Solution:   When 'spelllang' contains "cjk" do not mark Asian characters as
	    error. (Ken Takata)
Files:	    runtime/doc/options.txt, runtime/doc/spell.txt, src/mbyte.c,
	    src/option.c, src/spell.c, src/structs.h

Patch 7.4.089
Problem:    When editing a file in a directory mounted through sshfs Vim
	    doesn't set the security context on a renamed file.
Solution:   Add mch_copy_sec() to vim_rename(). (Peter Backes)
Files:	    src/fileio.c

Patch 7.4.090
Problem:    Win32: When a directory name contains an exclamation mark,
	    completion doesn't complete the contents of the directory.
Solution:   Escape the exclamation mark. (Jan Stocker)
Files:	    src/ex_getln.c, src/testdir/test102.in, src/testdir/test102.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.091 (after 7.4.089)
Problem:    Missing semicolon.
Solution:   Add the semicolon.
Files:	    src/fileio.c

Patch 7.4.092 (after 7.4.088)
Problem:    Can't build small version.
Solution:   Add #ifdef where the b_cjk flag is used. (Ken Takata)
Files:	    src/spell.c

Patch 7.4.093
Problem:    Configure can't use LuaJIT on ubuntu 12.04.
Solution:   Adjust the configure regexp that locates the version number.
	    (Charles Strahan)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.094
Problem:    Configure may not find that -lint is needed for gettext().
Solution:   Check for gettext() with empty $LIBS.  (Thomas De Schampheleire)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.095 (after 7.4.093)
Problem:    Regexp for LuaJIT version doesn't work on BSD.
Solution:   Use "*" instead of "\+" and "\?". (Ozaki Kiichi)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.096
Problem:    Can't change directory to an UNC path.
Solution:   Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
Files:	    src/os_win32.c

Patch 7.4.097 (after 7.4.034)
Problem:    Unexpected behavior change related to 'virtualedit'. (Ingo Karkat)
Solution:   Update the valid cursor position. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.4.098
Problem:    When using ":'<,'>del" errors may be given for the visual line
	    numbers being out of range.
Solution:   Reset Visual mode in ":del". (Lech Lorens)
Files:	    src/ex_docmd.c, src/testdir/test103.in, src/testdir/test103.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.099
Problem:    Append in blockwise Visual mode with "$" is wrong.
Solution:   After "$" don't use the code that checks if the cursor was moved.
	    (Hirohito Higashi, Ken Takata)
Files:	    src/ops.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.100
Problem:    NFA regexp doesn't handle backreference correctly. (Ryuichi
	    Hayashida, Urtica Dioica)
Solution:   Always add NFA_SKIP, also when it already exists at the start
	    position.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.101
Problem:    Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution:   Only advance the match end for the matched characters in the last
	    line.
Files:	    src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.102
Problem:    Crash when interrupting "z=".
Solution:   Add safety check for word length. (Christian Brabandt, Dominique
	    Pelle)
Files:	    src/spell.c

Patch 7.4.103
Problem:    Dos installer uses an old way to escape spaces in the diff
	    command.
Solution:   Adjust the quoting to the new default shellxquote. (Ben Fritz)
Files:	    src/dosinst.c

Patch 7.4.104
Problem:    ":help s/\_" reports an internal error. (John Beckett)
Solution:   Check for NUL and invalid character classes.
Files:	    src/regexp_nfa.c

Patch 7.4.105
Problem:    Completing a tag pattern may give an error for invalid pattern.
Solution:   Suppress the error, just return no matches.
Files:	    src/tag.c

Patch 7.4.106
Problem:    Can't build with Ruby using Cygwin.
Solution:   Fix library name in makefile. (Steve Hall)
Files:	    src/Make_cyg.mak

Patch 7.4.107
Problem:    Python: When vim.eval() encounters a Vim error, a try/catch in the
	    Python code doesn't catch it. (Yggdroot Chen)
Solution:   Throw exceptions on errors in vim.eval(). (ZyX)
Files:	    src/ex_eval.c, src/if_py_both.h, src/proto/ex_eval.pro,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.108
Problem:    "zG" and "zW" leave temp files around on MS-Windows.
Solution:   Delete the temp files when exiting. (Ken Takata)
Files:	    src/memline.c, src/proto/spell.pro, src/spell.c

Patch 7.4.109
Problem:    ColorScheme autocommand matches with the current buffer name.
Solution:   Match with the colorscheme name. (Christian Brabandt)
Files:	    runtime/doc/autocmd.txt, src/fileio.c, src/syntax.c

Patch 7.4.110
Problem:    "gUgn" cannot be repeated. (Dimitar Dimitrov)
Solution:   Don't put "gn" in a different order in the redo buffer.  Restore
	    'wrapscan' when the pattern isn't found. (Christian Wellenbrock)
Files:	    src/normal.c, src/search.c, src/test53.in, src/test53.ok

Patch 7.4.111
Problem:    Memory leak in Python OptionsAssItem. (Ken Takata)
Solution:   Call Py_XDECREF() where needed. (ZyX)
Files:	    src/if_py_both.h

Patch 7.4.112
Problem:    The defaults for 'directory' and 'backupdir' on MS-Windows do not
	    include a directory that exists.
Solution:   Use $TEMP.
Files:	    src/os_dos.h

Patch 7.4.113
Problem:    MSVC static analysis gives warnings.
Solution:   Avoid the warnings and avoid possible bugs. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.114
Problem:    New GNU make outputs messages about changing directory in another
	    format.
Solution:   Recognize the new format.
Files:	    src/option.h

Patch 7.4.115
Problem:    When using Zsh expanding ~abc doesn't work when the result
	    contains a space.
Solution:   Off-by-one error in detecting the NUL. (Pavol Juhas)
Files:	    src/os_unix.c

Patch 7.4.116
Problem:    When a mapping starts with a space, the typed space does not show
	    up for 'showcmd'.
Solution:   Show "<20>". (Brook Hong)
Files:	    src/normal.c

Patch 7.4.117
Problem:    Can't build with Cygwin/MingW and Perl 5.18.
Solution:   Add a linker argument for the Perl library. (Cesar Romani)
	    Adjust CFLAGS and LIB. (Cesar Romani)
	    Move including inline.h further down. (Ken Takata)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/if_perl.xs

Patch 7.4.118
Problem:    It's possible that redrawing the status lines causes
	    win_redr_custom() to be called recursively.
Solution:   Protect against recursiveness. (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 7.4.119
Problem:    Vim doesn't work well on OpenVMS.
Solution:   Fix various problems. (Samuel Ferencik)
Files:	    src/os_unix.c, src/os_unix.h, src/os_vms.c

Patch 7.4.120 (after 7.4.117)
Problem:    Can't build with Perl 5.18 on Linux. (Lcd 47)
Solution:   Add #ifdef. (Ken Takata)
Files:	    src/if_perl.xs

Patch 7.4.121
Problem:    Completion doesn't work for ":py3d" and ":py3f". (Bohr Shaw)
Solution:   Skip over letters after ":py3".
Files:	    src/ex_docmd.c

Patch 7.4.122
Problem:    Win32: When 'encoding' is set to "utf-8" and the active codepage
	    is cp932 then ":grep" and other commands don't work for multi-byte
	    characters.
Solution:   (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.4.123
Problem:    Win32: Getting user name does not use wide function.
Solution:   Use GetUserNameW() if possible. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.124
Problem:    Win32: Getting host name does not use wide function.
Solution:   Use GetComputerNameW() if possible. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.125
Problem:    Win32: Dealing with messages may not work for multi-byte chars.
Solution:   Use pDispatchMessage(). (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.126
Problem:    Compiler warnings for "const" and incompatible types.
Solution:   Remove "const", add type cast. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.127
Problem:    Perl 5.18 on Unix doesn't work.
Solution:   Move workaround to after including vim.h. (Ken Takata)
Files:	    src/if_perl.xs

Patch 7.4.128
Problem:    Perl 5.18 for MSVC doesn't work.
Solution:   Add check in makefile and define __inline. (Ken Takata)
Files:	    src/Make_mvc.mak, src/if_perl.xs

Patch 7.4.129
Problem:    getline(-1) returns zero. (mvxxc)
Solution:   Return an empty string.
Files:	    src/eval.c

Patch 7.4.130
Problem:    Relative line numbers mix up windows when using folds.
Solution:   Use hasFoldingWin() instead of hasFolding(). (Lech Lorens)
Files:	    src/misc2.c

Patch 7.4.131
Problem:    Syncbind causes E315 errors in some situations. (Liang Li)
Solution:   Set and restore curbuf in ex_syncbind(). (Christian Brabandt)
Files:	    src/ex_docmd.c, src/testdir/test37.ok

Patch 7.4.132 (after 7.4.122)
Problem:    Win32: flags and inherit_handles arguments mixed up.
Solution:   Swap the argument. (cs86661)
Files:	    src/os_win32.c

Patch 7.4.133
Problem:    Clang warns for using NUL.
Solution:   Change NUL to NULL. (Dominique Pelle)
Files:	    src/eval.c, src/misc2.c

Patch 7.4.134
Problem:    Spurious space in MingW Makefile.
Solution:   Remove the space. (Michael Soyka)
Files:	    src/Make_ming.mak

Patch 7.4.135
Problem:    Missing dot in MingW test Makefile.
Solution:   Add the dot. (Michael Soyka)
Files:	    src/testdir/Make_ming.mak

Patch 7.4.136 (after 7.4.096)
Problem:    MS-Windows: When saving a file with a UNC path the file becomes
	    read-only.
Solution:   Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
Files:	    src/os_mswin.c, src/os_win32.c

Patch 7.4.137
Problem:    Cannot use IME with Windows 8 console.
Solution:   Change the user of ReadConsoleInput() and PeekConsoleInput().
	    (Nobuhiro Takasaki)
Files:	    src/os_win32.c

Patch 7.4.138 (after 7.4.114)
Problem:    Directory change messages are not recognized.
Solution:   Fix using a character range literally. (Lech Lorens)
Files:	    src/option.h

Patch 7.4.139
Problem:    Crash when using :cd in autocommand. (François Ingelrest)
Solution:   Set w_localdir to NULL after freeing it. (Dominique Pelle)
Files:	    src/ex_docmd.c, src/window.c

Patch 7.4.140
Problem:    Crash when wiping out buffer triggers autocommand that wipes out
	    only other buffer.
Solution:   Do not delete the last buffer, make it empty. (Hirohito Higashi)
Files:	    src/buffer.c

Patch 7.4.141
Problem:    Problems when building with Borland: st_mode is signed short;
	    can't build with Python; temp files not ignored by Mercurial;
	    building with DEBUG doesn't define _DEBUG.
Solution:   Fix the problems. (Ken Takata)
Files:	    src/Make_bc5.mak, src/if_py_both.h, src/os_win32.c

Patch 7.4.142 (after 7.4.137)
Problem:    On MS-Windows 8 IME input doesn't work correctly.
Solution:   Work around the problem. (Nobuhiro Takasaki)
Files:	    src/os_win32.c

Patch 7.4.143
Problem:    TextChangedI is not triggered.
Solution:   Reverse check for "ready". (lilydjwg)
Files:	    src/edit.c

Patch 7.4.144
Problem:    MingW also supports intptr_t for OPEN_OH_ARGTYPE.
Solution:   Adjust #ifdef. (Ken Takata)
Files:	    src/os_mswin.c

Patch 7.4.145
Problem:    getregtype() does not return zero for unknown register.
Solution:   Adjust documentation: return empty string for unknown register.
	    Check the register name to be valid. (Yukihiro Nakadaira)
Files:	    runtime/doc/eval.txt, src/ops.c

Patch 7.4.146
Problem:    When starting Vim with "-u NONE" v:oldfiles is NULL.
Solution:   Set v:oldfiles to an empty list. (Yasuhiro Matsumoto)
Files:	    src/main.c

Patch 7.4.147
Problem:    Cursor moves to wrong position when using "gj" after "$" and
	    virtual editing is active.
Solution:   Make "gj" behave differently when virtual editing is active.
	    (Hirohito Higashi)
Files:	    src/normal.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.148
Problem:    Cannot build with Cygwin and X11.
Solution:   Include Xwindows.h instead of windows.h. (Lech Lorens)
Files:	    src/mbyte.c

Patch 7.4.149
Problem:    Get E685 error when assigning a function to an autoload variable.
	    (Yukihiro Nakadaira)
Solution:   Instead of having a global no_autoload variable, pass an autoload
	    flag down to where it is used. (ZyX)
Files:	    src/eval.c, src/testdir/test55.in, src/testdir/test55.ok,
	    src/testdir/test60.in, src/testdir/test60.ok,
	    src/testdir/sautest/autoload/footest.vim

Patch 7.4.150
Problem:    :keeppatterns is not respected for :s.
Solution:   Check the keeppatterns flag. (Yasuhiro Matsumoto)
Files:	    src/search.c, src/testdir/test14.in, src/testdir/test14.ok

Patch 7.4.151
Problem:    Python: slices with steps are not supported.
Solution:   Support slices in Python vim.List. (ZyX)
Files:	    src/eval.c, src/if_py_both.h, src/if_python3.c, src/if_python.c,
	    src/proto/eval.pro, src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.152
Problem:    Python: Cannot iterate over options.
Solution:   Add options iterator. (ZyX)
Files:	    src/if_py_both.h, src/option.c, src/proto/option.pro,
	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok, src/vim.h

Patch 7.4.153
Problem:    Compiler warning for pointer type.
Solution:   Add type cast.
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.4.154 (after 7.4.149)
Problem:    Still a problem with auto-loading.
Solution:   Pass no_autoload to deref_func_name(). (Yukihiro Nakadaira)
Files:	    src/eval.c

Patch 7.4.155
Problem:    ":keeppatterns /pat" does not keep search pattern offset.
Solution:   Restore the offset after doing the search.
Files:	    src/search.c, src/testdir/test14.in, src/testdir/test14.ok

Patch 7.4.156
Problem:    Test file missing from distribution.
Solution:   Add new directory to file list.
Files:	    Filelist

Patch 7.4.157
Problem:    Error number used twice. (Yukihiro Nakadaira)
Solution:   Change the one not referred in the docs.
Files:	    src/undo.c

Patch 7.4.158 (after 7.4.045)
Problem:    Pattern containing \zs is not handled correctly by substitute().
Solution:   Change how an empty match is skipped. (Yukihiro Nakadaira)
Files:	    src/eval.c, src/testdir/test80.in, src/testdir/test80.ok

Patch 7.4.159
Problem:    Completion hangs when scanning the current buffer after doing
	    keywords. (Christian Brabandt)
Solution:   Set the first match position when starting to scan the current
	    buffer.
Files:	    src/edit.c

Patch 7.4.160
Problem:    Win32: Crash when executing external command.
Solution:   Only close the handle when it was created. (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.4.161
Problem:    Crash in Python exception handling.
Solution:   Only use exception variables if did_throw is set. (ZyX)
Files:	    if_py_both.h

Patch 7.4.162
Problem:    Running tests in shadow dir doesn't work.
Solution:   Add testdir/sautest to the shadow target. (James McCoy)
Files:	    src/Makefile

Patch 7.4.163 (after 7.4.142)
Problem:    MS-Windows input doesn't work properly on Windows 7 and earlier.
Solution:   Add a check for Windows 8. (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.4.164 (after 7.4.163)
Problem:    Problem with event handling on Windows 8.
Solution:   Ignore duplicate WINDOW_BUFFER_SIZE_EVENTs. (Nobuhiro Takasaki)
Files:	    src/os_win32.c

Patch 7.4.165
Problem:    By default, after closing a buffer changes can't be undone.
Solution:   In the example vimrc file set 'undofile'.
Files:	    runtime/vimrc_example.vim

Patch 7.4.166
Problem:    Auto-loading a function for code that won't be executed.
Solution:   Do not auto-load when evaluation is off. (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.4.167 (after 7.4.149)
Problem:    Fixes are not tested.
Solution:   Add a test for not autoloading on assignment. (Yukihiro Nakadaira)
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/sautest/autoload/Test104.vim, src/testdir/test104.in,
	    src/testdir/test104.ok

Patch 7.4.168
Problem:    Can't compile with Ruby 2.1.0.
Solution:   Add support for new GC. (Kohei Suzuki)
Files:	    src/if_ruby.c

Patch 7.4.169
Problem:    ":sleep" puts cursor in the wrong column. (Liang Li)
Solution:   Add the window offset. (Christian Brabandt)
Files:	    src/ex_docmd.c

Patch 7.4.170
Problem:    Some help tags don't work with ":help". (Tim Chase)
Solution:   Add exceptions.
Files:	    src/ex_cmds.c

Patch 7.4.171
Problem:    Redo does not set v:count and v:count1.
Solution:   Use a separate buffer for redo, so that we can set the counts when
	    performing redo.
Files:	    src/getchar.c, src/globals.h, src/normal.c, src/proto/getchar.pro,
	    src/structs.h

Patch 7.4.172
Problem:    The blowfish code mentions output feedback, but the code is
	    actually doing cipher feedback.
Solution:   Adjust names and comments.
Files:	    src/blowfish.c, src/fileio.c, src/proto/blowfish.pro,
	    src/memline.c

Patch 7.4.173
Problem:    When using scrollbind the cursor can end up below the last line.
	    (mvxxc)
Solution:   Reset w_botfill when scrolling up. (Christian Brabandt)
Files:	    src/move.c

Patch 7.4.174
Problem:    Compiler warnings for Python interface. (Tony Mechelynck)
Solution:   Add type casts, initialize variable.
Files:	    src/if_py_both.h

Patch 7.4.175
Problem:    When a wide library function fails, falling back to the non-wide
	    function may do the wrong thing.
Solution:   Check the platform, when the wide function is supported don't fall
	    back to the non-wide function. (Ken Takata)
Files:	    src/os_mswin.c, src/os_win32.c

Patch 7.4.176
Problem:    Dictionary.update() throws an error when used without arguments.
	    Python programmers don't expect that.
Solution:   Make Dictionary.update() without arguments do nothing. (ZyX)
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test87.in

Patch 7.4.177
Problem:    Compiler warning for unused variable. (Tony Mechelynck)
Solution:   Add #ifdef.
Files:	    src/move.c

Patch 7.4.178
Problem:    The J command does not update '[ and '] marks. (William Gardner)
Solution:   Set the marks. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.4.179
Problem:    Warning for type-punned pointer. (Tony Mechelynck)
Solution:   Use intermediate variable.
Files:	    src/if_py_both.h

Patch 7.4.180 (after 7.4.174)
Problem:    Older Python versions don't support %ld.
Solution:   Use %d instead. (ZyX)
Files:	    src/if_py_both.h

Patch 7.4.181
Problem:    When using 'pastetoggle' the status lines are not updated. (Samuel
	    Ferencik, Jan Christoph Ebersbach)
Solution:   Update the status lines. (Nobuhiro Takasaki)
Files:	    src/getchar.c

Patch 7.4.182
Problem:    Building with mzscheme and racket does not work. (David Chimay)
Solution:   Adjust autoconf. (Sergey Khorev)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.183
Problem:    MSVC Visual Studio update not supported.
Solution:   Add version number. (Mike Williams)
Files:	    src/Make_mvc.mak

Patch 7.4.184
Problem:    match() does not work properly with a {count} argument.
Solution:   Compute the length once and update it.  Quit the loop when at the
	    end. (Hirohito Higashi)
Files:	    src/eval.c, src/testdir/test53.in, src/testdir/test53.ok

Patch 7.4.185
Problem:    Clang gives warnings.
Solution:   Adjust how bigness is set. (Dominique Pelle)
Files:	    src/ex_cmds.c

Patch 7.4.186 (after 7.4.085)
Problem:    Insert in Visual mode sometimes gives incorrect results.
	    (Dominique Pelle)
Solution:   Remember the original insert start position. (Christian Brabandt,
	    Dominique Pelle)
Files:	    src/edit.c, src/globals.h, src/ops.c, src/structs.h

Patch 7.4.187
Problem:    Delete that crosses line break splits multi-byte character.
Solution:   Advance a character instead of a byte. (Cade Foster)
Files:	    src/normal.c, src/testdir/test69.in, src/testdir/test69.ok

Patch 7.4.188
Problem:    SIZEOF_LONG clashes with similar defines in header files.
Solution:   Rename to a name starting with VIM_.  Also for SIZEOF_INT.
Files:	    src/if_ruby.c, src/vim.h, src/configure.in, src/auto/configure,
	    src/config.h.in, src/fileio.c, src/if_python.c, src/message.c,
	    src/spell.c, src/feature.h, src/os_os2_cfg.h, src/os_vms_conf.h,
	    src/os_win16.h, src/structs.h

Patch 7.4.189
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
Files:	    src/eval.c

Patch 7.4.190
Problem:    Compiler warning for using %lld for off_t.
Solution:   Add type cast.
Files:	    src/fileio.c

Patch 7.4.191
Problem:    Escaping a file name for shell commands can't be done without a
	    function.
Solution:   Add the :S file name modifier.
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test105.in, src/testdir/test105.ok,
	    runtime/doc/cmdline.txt, runtime/doc/eval.txt,
	    runtime/doc/map.txt, runtime/doc/options.txt,
	    runtime/doc/quickfix.txt, runtime/doc/usr_30.txt,
	    runtime/doc/usr_40.txt, runtime/doc/usr_42.txt,
	    runtime/doc/vi_diff.txt, src/eval.c, src/misc2.c, src/normal.c,
	    src/proto/misc2.pro

Patch 7.4.192
Problem:    Memory leak when giving E853.
Solution:   Free the argument. (Dominique Pelle)
Files:	    src/eval.c

Patch 7.4.193
Problem:    Typos in messages.
Solution:   "then" -> "than". (Dominique Pelle)
Files:	    src/if_py_both.h, src/spell.c

Patch 7.4.194
Problem:    Can't build for Android.
Solution:   Add #if condition. (Fredrik Fornwall)
Files:	    src/mbyte.c

Patch 7.4.195 (after 7.4.193)
Problem:    Python tests fail.
Solution:   Change "then" to "than" in more places. (Dominique Pelle, Taro
	    Muraoka)
Files:	    src/testdir/test86.in, src/testdir/test86.ok,
	    src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.196
Problem:    Tests fail on Solaris 9 and 10.
Solution:   Use "test -f" instead of "test -e".  (Laurent Blume)
Files:	    src/testdir/Makefile

Patch 7.4.197
Problem:    Various problems on VMS.
Solution:   Fix several VMS problems. (Zoltan Arpadffy)
Files:	    runtime/doc/os_vms.txt, src/Make_vms.mms, src/fileio.c,
	    src/os_unix.c, src/os_unix.h, src/os_vms.c, src/os_vms_conf.h,
	    src/proto/os_vms.pro, src/testdir/Make_vms.mms,
	    src/testdir/test72.in, src/testdir/test77a.com,
	    src/testdir/test77a.in, src/testdir/test77a.ok src/undo.c

Patch 7.4.198
Problem:    Can't build Vim with Perl when -Dusethreads is not specified for
	    building Perl, and building Vim with --enable-perlinterp=dynamic.
Solution:   Adjust #ifdefs. (Yasuhiro Matsumoto)
Files:	    src/if_perl.xs

Patch 7.4.199
Problem:    (issue 197) ]P doesn't paste over Visual selection.
Solution:   Handle Visual mode specifically. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.4.200
Problem:    Too many #ifdefs in the code.
Solution:   Enable FEAT_VISUAL always, await any complaints
Files:	    src/feature.h

Patch 7.4.201
Problem:    'lispwords' is a global option.
Solution:   Make 'lispwords' global-local. (Sung Pae)
Files:	    runtime/doc/options.txt, runtime/optwin.vim, src/buffer.c,
	    src/misc1.c, src/option.c, src/option.h, src/structs.h,
	    src/testdir/test100.in, src/testdir/test100.ok

Patch 7.4.202
Problem:    MS-Windows: non-ASCII font names don't work.
Solution:   Convert between the current code page and 'encoding'. (Ken Takata)
Files:	    src/gui_w48.c, src/os_mswin.c, src/proto/winclip.pro,
	    src/winclip.c

Patch 7.4.203
Problem:    Parsing 'errorformat' is not correct.
Solution:   Reset "multiignore" at the start of a multi-line message. (Lcd)
Files:	    src/quickfix.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test106.in,
	    src/testdir/test106.ok

Patch 7.4.204
Problem:    A mapping where the second byte is 0x80 doesn't work.
Solution:   Unescape before checking for incomplete multi-byte char. (Nobuhiro
	    Takasaki)
Files:	    src/getchar.c, src/testdir/test75.in, src/testdir/test75.ok

Patch 7.4.205
Problem:    ":mksession" writes command to move to second argument while it
	    does not exist.  When it does exist the order might be wrong.
Solution:   Use ":argadd" for each argument instead of using ":args" with a
	    list of names. (Nobuhiro Takasaki)
Files:	    src/ex_docmd.c

Patch 7.4.206
Problem:    Compiler warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)
Files:	    src/gui_w48.c, src/os_mswin.c

Patch 7.4.207
Problem:    The cursor report sequence is sometimes not recognized and results
	    in entering replace mode.
Solution:   Also check for the cursor report when not asked for.
Files:	    src/term.c

Patch 7.4.208
Problem:    Mercurial picks up some files that are not distributed.
Solution:   Add patterns to the ignore list. (Cade Forester)
Files:	    .hgignore

Patch 7.4.209
Problem:    When repeating a filter command "%" and "#" are expanded.
Solution:   Escape the command when storing for redo. (Christian Brabandt)
Files:	    src/ex_cmds.c

Patch 7.4.210
Problem:    Visual block mode plus virtual edit doesn't work well with tabs.
	    (Liang Li) 
Solution:   Take coladd into account. (Christian Brabandt)
Files:	    src/ops.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.211
Problem:    ":lu" is an abbreviation for ":lua", but it should be ":lunmap".
	    (ZyX)
Solution:   Move "lunmap" to above "lua".
Files:	    src/ex_cmds.h

Patch 7.4.212 (after 7.4.200)
Problem:    Now that the +visual feature is always enabled the #ifdefs for it
	    are not useful.
Solution:   Remove the checks for FEAT_VISUAL.
Files:	    src/buffer.c, src/charset.c, src/edit.c, src/eval.c,
	    src/ex_cmds.c, src/ex_docmd.c, src/fold.c, src/getchar.c,
	    src/gui.c, src/gui_mac.c, src/gui_w48.c, src/main.c, src/mark.c,
	    src/menu.c, src/misc2.c, src/move.c, src/netbeans.c, src/normal.c,
	    src/ops.c, src/option.c, src/os_msdos.c, src/os_qnx.c,
	    src/quickfix.c, src/regexp.c, src/regexp_nfa.c, src/screen.c,
	    src/search.c, src/spell.c, src/syntax.c, src/term.c, src/ui.c,
	    src/undo.c, src/version.c, src/window.c, src/feature.h,
	    src/globals.h, src/option.h, src/os_win32.h, src/structs.h

Patch 7.4.213
Problem:    It's not possible to open a new buffer without creating a swap
	    file.
Solution:   Add the ":noswapfile" modifier. (Christian Brabandt)
Files:	    runtime/doc/recover.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/memline.c, src/structs.h

Patch 7.4.214
Problem:    Compilation problems on HP_nonStop (Tandem).
Solution:   Add #defines. (Joachim Schmitz)
Files:	    src/vim.h

Patch 7.4.215
Problem:    Inconsistency: ":sp foo" does not reload "foo", unless "foo" is
	    the current buffer. (Liang Li)
Solution:   Do not reload the current buffer on a split command.
Files:	    runtime/doc/windows.txt, src/ex_docmd.c

Patch 7.4.216
Problem:    Compiler warnings. (Tony Mechelynck)
Solution:   Initialize variables, add #ifdef.
Files:	    src/term.c, src/os_unix.h

Patch 7.4.217
Problem:    When src/auto/configure was updated, "make clean" would run
	    configure pointlessly.
Solution:   Do not run configure for "make clean" and "make distclean" when
	    the make program supports $MAKECMDGOALS. (Ken Takata)
Files:	    src/Makefile

Patch 7.4.218
Problem:    It's not easy to remove duplicates from a list.
Solution:   Add the uniq() function. (Lcd)
Files:	    runtime/doc/change.txt, runtime/doc/eval.txt,
	    runtime/doc/usr_41.txt, runtime/doc/version7.txt, src/eval.c,
	    src/testdir/test55.in, src/testdir/test55.ok

Patch 7.4.219
Problem:    When 'relativenumber' or 'cursorline' are set the window is
	    redrawn much to often. (Patrick Hemmer, Dominique Pelle)
Solution:   Check the VALID_CROW flag instead of VALID_WROW.
Files:	    src/move.c

Patch 7.4.220
Problem:    Test 105 does not work in a shadow dir. (James McCoy)
Solution:   Omit "src/" from the checked path.
Files:	    src/testdir/test105.in, src/testdir/test105.ok

Patch 7.4.221
Problem:    Quickfix doesn't resize on ":copen 20". (issue 199)
Solution:   Resize the window when requested. (Christian Brabandt)
Files:	    src/quickfix.c

Patch 7.4.222
Problem:    The Ruby directory is constructed from parts.
Solution:   Use 'rubyarchhdrdir' if it exists. (James McCoy)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.223
Problem:    Still using an older autoconf version.
Solution:   Switch to autoconf 2.69.
Files:	    src/Makefile, src/configure.in, src/auto/configure

Patch 7.4.224
Problem:    /usr/bin/grep on Solaris does not support -F.
Solution:   Add configure check to find a good grep. (Danek Duvall)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.225
Problem:    Dynamic Ruby doesn't work on Solaris.
Solution:   Always use the stubs. (Danek Duvall, Yukihiro Nakadaira)
Files:	    src/if_ruby.c

Patch 7.4.226 (after 7.4.219)
Problem:    Cursurline highlighting not redrawn when scrolling. (John
	    Marriott)
Solution:   Check for required redraw in two places.
Files:	    src/move.c

Patch 7.4.227 (after 7.4.225)
Problem:    Can't build with Ruby 1.8.
Solution:   Do include a check for the Ruby version. (Ken Takata)
Files:	    src/if_ruby.c

Patch 7.4.228
Problem:    Compiler warnings when building with Python 3.2.
Solution:   Make type cast depend on Python version. (Ken Takata)
Files:	    src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.4.229
Problem:    Using ":let" for listing variables and the second one is a curly
	    braces expression may fail.
Solution:   Check for an "=" in a better way. (ZyX)
Files:	    src/eval.c, src/testdir/test104.in, src/testdir/test104.ok

Patch 7.4.230
Problem:    Error when using ":options".
Solution:   Fix the entry for 'lispwords'. (Kenichi Ito)
Files:	    runtime/optwin.vim

Patch 7.4.231
Problem:    An error in ":options" is not caught by the tests.
Solution:   Add a test for ":options".  Set $VIMRUNTIME for the tests so that
	    it uses the current runtime files instead of the installed ones.
Files:	    src/Makefile, src/testdir/Makefile, src/testdir/test_options.in,
	    src/testdir/test_options.ok, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.4.232
Problem:    ":%s/\n//" uses a lot of memory. (Aidan Marlin)
Solution:   Turn this into a join command. (Christian Brabandt)
Files:	    src/ex_cmds.c, src/ex_docmd.c, src/proto/ex_docmd.pro

Patch 7.4.233
Problem:    Escaping special characters for using "%" with a shell command is
	    inconsistent, parentheses are escaped but spaces are not.
Solution:   Only escape "!". (Gary Johnson)
Files:	    src/ex_docmd.c

Patch 7.4.234
Problem:    Can't get the command that was used to start Vim.
Solution:   Add v:progpath. (Viktor Kojouharov)
Files:	    runtime/doc/eval.txt, src/eval.c, src/main.c, src/vim.h

Patch 7.4.235
Problem:    It is not easy to get the full path of a command.
Solution:   Add the exepath() function.
Files:	    src/eval.c, src/misc1.c, src/os_amiga.c, src/os_msdos.c,
	    src/os_unix.c, src/os_vms.c, src/os_win32.c,
	    src/proto/os_amiga.pro, src/proto/os_msdos.pro,
	    src/proto/os_unix.pro, src/proto/os_win32.pro,
	    runtime/doc/eval.txt

Patch 7.4.236
Problem:    It's not that easy to check the Vim patch version.
Solution:   Make has("patch-7.4.123") work. (partly by Marc Weber)
Files:	    runtime/doc/eval.txt, src/eval.c, src/testdir/test60.in,
	    src/testdir/test60.ok

Patch 7.4.237 (after 7.4.236)
Problem:    When some patches were not included has("patch-7.4.123") may return
	    true falsely.
Solution:   Check for the specific patch number.
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.4.238
Problem:    Vim does not support the smack library.
Solution:   Add smack support (Jose Bollo)
Files:	    src/config.h.in, src/configure.in, src/fileio.c, src/memfile.c,
	    src/os_unix.c, src/undo.c, src/auto/configure

Patch 7.4.239
Problem:    ":e +" does not position cursor at end of the file.
Solution:   Check for "+" being the last character (ZyX)
Files:	    src/ex_docmd.c

Patch 7.4.240
Problem:    ":tjump" shows "\n" as "\\n".
Solution:   Skip over "\" that escapes a backslash. (Gary Johnson)
Files:	    src/tag.c

Patch 7.4.241
Problem:    The string returned by submatch() does not distinguish between a
	    NL from a line break and a NL that stands for a NUL character.
Solution:   Add a second argument to return a list. (ZyX)
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/regexp.pro,
	    src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok,
	    src/testdir/test80.in, src/testdir/test80.ok

Patch 7.4.242
Problem:    getreg() does not distinguish between a NL used for a line break
	    and a NL used for a NUL character.
Solution:   Add another argument to return a list. (ZyX)
Files:	    runtime/doc/eval.txt, src/eval.c src/ops.c, src/proto/ops.pro,
	    src/vim.h, src/Makefile, src/testdir/test_eval.in,
	    src/testdir/test_eval.ok, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms

Patch 7.4.243
Problem:    Cannot use setreg() to add text that includes a NUL.
Solution:   Make setreg() accept a list.
Files:	    runtime/doc/eval.txt, src/eval.c, src/ops.c, src/proto/ops.pro,
	    src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.244 (after 7.4.238)
Problem:    The smack feature causes stray error messages.
Solution:   Remove the error messages.
Files:	    src/os_unix.c

Patch 7.4.245
Problem:    Crash for "vim -u NONE -N  -c '&&'".
Solution:   Check for the pattern to be NULL. (Dominique Pelle)
Files:	    src/ex_cmds.c

Patch 7.4.246
Problem:    Configure message for detecting smack are out of sequence.
Solution:   Put the messages in the right place. (Kazunobu Kuriyama)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.247
Problem:    When passing input to system() there is no way to keep NUL and
	    NL characters separate.
Solution:   Optionally use a list for the system() input. (ZyX)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 7.4.248
Problem:    Cannot distinguish between NL and NUL in output of system().
Solution:   Add systemlist(). (ZyX)
Files:	    runtime/doc/eval.txt, src/eval.c, src/ex_cmds2.c, src/misc1.c,
	    src/proto/misc1.pro

Patch 7.4.249
Problem:    Using setreg() with a list of numbers does not work.
Solution:   Use a separate buffer for numbers. (ZyX)
Files:	    src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.250
Problem:    Some test files missing from distribution.
Solution:   Add pattern for newly added tests.
Files:	    Filelist

Patch 7.4.251
Problem:    Crash when BufAdd autocommand wipes out the buffer.
Solution:   Check for buffer to still be valid. Postpone freeing the buffer
	    structure. (Hirohito Higashi)
Files:	    src/buffer.c, src/ex_cmds.c, src/fileio.c, src/globals.h

Patch 7.4.252
Problem:    Critical error in GTK, removing timer twice.
Solution:   Clear the timer after removing it. (James McCoy)
Files:	    src/gui_gtk_x11.c

Patch 7.4.253
Problem:    Crash when using cpp syntax file with pattern using external
	    match. (Havard Garnes)
Solution:   Discard match when end column is before start column.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.4.254
Problem:    Smack support detection is incomplete.
Solution:   Check for attr/xattr.h and specific macro.
Files:	    src/configure.in, src/auto/configure

Patch 7.4.255
Problem:    Configure check for smack doesn't work with all shells. (David
	    Larson)
Solution:   Remove spaces in set command.
Files:	    src/configure.in, src/auto/configure

Patch 7.4.256 (after 7.4.248)
Problem:    Using systemlist() may cause a crash and does not handle NUL
	    characters properly.
Solution:   Increase the reference count, allocate memory by length. (Yasuhiro
	    Matsumoto)
Files:	    src/eval.c

Patch 7.4.257
Problem:    Compiler warning, possibly for mismatch in parameter name.
Solution:   Rename the parameter in the declaration.
Files:	    src/ops.c

Patch 7.4.258
Problem:    Configure fails if $CC contains options.
Solution:   Remove quotes around $CC. (Paul Barker)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.259
Problem:    Warning for misplaced "const".
Solution:   Move the "const". (Yukihiro Nakadaira)
Files:	    src/os_unix.c

Patch 7.4.260
Problem:    It is possible to define a function with a colon in the name.  It
	    is possible to define a function with a lower case character if a
	    "#" appears after the name.
Solution:   Disallow using a colon other than with "s:".  Ignore "#" after the
	    name.
Files:	    runtime/doc/eval.txt, src/eval.c, src/testdir/test_eval.in,
	    src/testdir/test_eval.ok

Patch 7.4.261
Problem:    When updating the window involves a regexp pattern, an interactive
	    substitute to replace a "\n" with a line break fails. (Ingo
	    Karkat)
Solution:   Set reg_line_lbr in vim_regsub() and vim_regsub_multi().
Files:	    src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok

Patch 7.4.262
Problem:    Duplicate code in regexec().
Solution:   Add line_lbr flag to regexec_nl().
Files:	    src/regexp.c, src/regexp_nfa.c, src/regexp.h

Patch 7.4.263
Problem:    GCC 4.8 compiler warning for hiding a declaration (François Gannaz)
Solution:   Remove the second declaration.
Files:	    src/eval.c

Patch 7.4.264 (after 7.4.260)
Problem:    Can't define a function starting with "g:".  Can't assign a
	    funcref to a buffer-local variable.
Solution:   Skip "g:" at the start of a function name.  Don't check for colons
	    when assigning to a variable.
Files:	    src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.265 (after 7.4.260)
Problem:    Can't call a global function with "g:" in an expression.
Solution:   Skip the "g:" when looking up the function.
Files:	    src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.266
Problem:    Test 62 fails.
Solution:   Set the language to C. (Christian Brabandt)
Files:	    src/testdir/test62.in

Patch 7.4.267 (after 7.4.178)
Problem:    The '[ mark is in the wrong position after "gq". (Ingo Karkat)
Solution:   Add the setmark argument to do_join(). (Christian Brabandt)
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test_autoformat_join.in,
	    src/testdir/test_autoformat_join.ok, src/Makefile, src/edit.c,
	    src/ex_cmds.c, src/ex_docmd.c, src/normal.c, src/ops.c,
	    src/proto/ops.pro

Patch 7.4.268
Problem:    Using exists() on a funcref for a script-local function does not
	    work.
Solution:   Translate <SNR> to the special byte sequence.  Add a test.
Files:	    src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok,
	    src/testdir/test_eval_func.vim, Filelist

Patch 7.4.269
Problem:    CTRL-U in Insert mode does not work after using a cursor key.
	    (Pine Wu)
Solution:   Use the original insert start position. (Christian Brabandt)
Files:	    src/edit.c, src/testdir/test29.in, src/testdir/test29.ok

Patch 7.4.270
Problem:    Comparing pointers instead of the string they point to.
Solution:   Use strcmp(). (Ken Takata)
Files:	    src/gui_gtk_x11.c

Patch 7.4.271
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
Files:	    src/ops.c

Patch 7.4.272
Problem:    Using just "$" does not cause an error message.
Solution:   Check for empty environment variable name. (Christian Brabandt)
Files:	    src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.273
Problem:    "make autoconf" and "make reconfig" may first run configure and
	    then remove the output.
Solution:   Add these targets to the exceptions. (Ken Takata)
Files:	    src/Makefile

Patch 7.4.274
Problem:    When doing ":update" just before running an external command that
	    changes the file, the timestamp may be unchanged and the file
	    is not reloaded.
Solution:   Also check the file size.
Files:	    src/fileio.c

Patch 7.4.275
Problem:    When changing the type of a sign that hasn't been placed there is
	    no error message.
Solution:   Add an error message. (Christian Brabandt)
Files:	    src/ex_cmds.c

Patch 7.4.276
Problem:    The fish shell is not supported.
Solution:   Use begin/end instead of () for fish. (Andy Russell)
Files:	    src/ex_cmds.c, src/misc1.c, src/option.c, src/proto/misc1.pro

Patch 7.4.277
Problem:    Using ":sign unplace *" may leave the cursor in the wrong position
	    (Christian Brabandt)
Solution:   Update the cursor position when removing all signs.
Files:	    src/buffer.c

Patch 7.4.278
Problem:    list_remove() conflicts with function defined in Sun header file.
Solution:   Rename the function. (Richard Palo)
Files:	    src/eval.c, src/if_lua.c, src/if_py_both.h, src/proto/eval.pro

Patch 7.4.279
Problem:    globpath() returns a string, making it difficult to get a list of
	    matches. (Greg Novack)
Solution:   Add an optional argument like with glob(). (Adnan Zafar)
Files:	    runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/misc1.c,
	    src/misc2.c, src/proto/ex_getln.pro, src/proto/misc2.pro,
	    src/testdir/test97.in, src/testdir/test97.ok

Patch 7.4.280
Problem:    When using a session file the relative position of the cursor is
	    not restored if there is another tab. (Nobuhiro Takasaki)
Solution:   Update w_wrow before calculating the fraction.
Files:	    src/window.c

Patch 7.4.281
Problem:    When a session file has more than one tabpage and 'showtabline' is
	    one the positions may be slightly off.
Solution:   Set 'showtabline' to two while positioning windows.
Files:	    src/ex_docmd.c

Patch 7.4.282 (after 7.4.279)
Problem:    Test 97 fails on Mac.
Solution:   Do not ignore case in file names. (Jun Takimoto)
Files:	    src/testdir/test97.in

Patch 7.4.283 (after 7.4.276)
Problem:    Compiler warning about unused variable. (Charles Cooper)
Solution:   Move the variable inside the #if block.
Files:	    src/ex_cmds.c

Patch 7.4.284
Problem:    Setting 'langmap' in the modeline can cause trouble.  E.g. mapping
	    ":" breaks many commands. (Jens-Wolfhard Schicke-Uffmann)
Solution:   Disallow setting 'langmap' from the modeline.
Files:	    src/option.c

Patch 7.4.285
Problem:    When 'relativenumber' is set and deleting lines or undoing that,
	    line numbers are not always updated. (Robert Arkwright)
Solution:   (Christian Brabandt)
Files:	    src/misc1.c

Patch 7.4.286
Problem:    Error messages are inconsistent. (ZyX)
Solution:   Change "Lists" to "list".
Files:	    src/eval.c

Patch 7.4.287
Problem:    Patches for .hgignore don't work, since the file is not in the
	    distribution.
Solution:   Add .hgignore to the distribution.  Will be effective with the
	    next version.
Files:	    Filelist

Patch 7.4.288
Problem:    When 'spellfile' is set the screen is not redrawn.
Solution:   Redraw when updating the spelling info. (Christian Brabandt)
Files:	    src/spell.c

Patch 7.4.289
Problem:    Pattern with repeated backreference does not match with new regexp
	    engine. (Urtica Dioica)
Solution:   Also check the end of a submatch when deciding to put a state in
	    the state list.
Files:	    src/testdir/test64.in, src/testdir/test64.ok, src/regexp_nfa.c

Patch 7.4.290
Problem:    A non-greedy match followed by a branch is too greedy. (Ingo
	    Karkat)
Solution:   Add NFA_MATCH when it is already in the state list if the position
	    differs.
Files:	    src/testdir/test64.in, src/testdir/test64.ok, src/regexp_nfa.c

Patch 7.4.291
Problem:    Compiler warning for int to pointer of different size when DEBUG
	    is defined.
Solution:   use smsg() instead of EMSG3().
Files:	    src/regexp.c

Patch 7.4.292
Problem:    Searching for "a" does not match accented "a" with new regexp
	    engine, does match with old engine. (David Bürgin)
	    "ca" does not match "ca" with accented "a" with either engine.
Solution:   Change the old engine, check for following composing character
	    also for single-byte patterns.
Files:	    src/regexp.c, src/testdir/test95.in, src/testdir/test95.ok

Patch 7.4.293
Problem:    It is not possible to ignore composing characters at a specific
	    point in a pattern.
Solution:   Add the %C item.
Files:	    src/regexp.c, src/regexp_nfa.c, src/testdir/test95.in,
	    src/testdir/test95.ok, runtime/doc/pattern.txt

Patch 7.4.294 (7.4.293)
Problem:    Test files missing from patch.
Solution:   Patch the test files.
Files:	    src/testdir/test95.in, src/testdir/test95.ok

Patch 7.4.295
Problem:    Various typos, bad white space and unclear comments.
Solution:   Fix typos.  Improve white space. Update comments.
Files:	    src/testdir/test49.in, src/macros.h, src/screen.c, src/structs.h,
	    src/gui_gtk_x11.c, src/os_unix.c

Patch 7.4.296
Problem:    Can't run tests on Solaris.
Solution:   Change the way VIMRUNTIME is set. (Laurent Blume)
Files:	    src/testdir/Makefile

Patch 7.4.297
Problem:    Memory leak from result of get_isolated_shell_name().
Solution:   Free the memory. (Dominique Pelle)
Files:	    src/ex_cmds.c, src/misc1.c

Patch 7.4.298
Problem:    Can't have a funcref start with "t:".
Solution:   Add "t" to the list of accepted names. (Yukihiro Nakadaira)
Files:	    src/eval.c

Patch 7.4.299
Problem:    When running configure twice DYNAMIC_PYTHON_DLL may become empty.
Solution:   Use AC_CACHE_VAL. (Ken Takata)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.300
Problem:    The way config.cache is removed doesn't always work.
Solution:   Always remove config.cache. (Ken Takata)
Files:	    src/Makefile

Patch 7.4.301 (after 7.4.280)
Problem:    Still a scrolling problem when loading a session file.
Solution:   Fix off-by-one mistake. (Nobuhiro Takasaki)
Files:	    src/window.c

Patch 7.4.302
Problem:    Signs placed with 'foldcolumn' set don't show up after filler
	    lines.
Solution:   Take filler lines into account. (Olaf Dabrunz)
Files:	    src/screen.c

Patch 7.4.303
Problem:    When using double-width characters the text displayed on the
	    command line is sometimes truncated.
Solution:   Reset the string length. (Nobuhiro Takasaki)
Files:	    src/screen.c

Patch 7.4.304
Problem:    Cannot always use Python with Vim.
Solution:   Add the manifest to the executable. (Jacques Germishuys)
Files:	    src/Make_mvc.mak

Patch 7.4.305
Problem:    Making 'ttymouse' empty after the xterm version was requested
	    causes problems. (Elijah Griffin)
Solution:   Do not check for DEC mouse sequences when the xterm version was
	    requested.  Also don't request the xterm version when DEC mouse
	    was enabled.
Files:	    src/term.c, src/os_unix.c, src/proto/term.pro, src/globals.h

Patch 7.4.306
Problem:    getchar(0) does not return Esc.
Solution:   Do not wait for an Esc sequence to be complete.  (Yasuhiro
	    Matsumoto)
Files:	    src/eval.c, src/getchar.c

Patch 7.4.307 (after 7.4.305)
Problem:    Can't build without the +termresponse feature.
Solution:   Add proper #ifdefs.
Files:	    src/os_unix.c, src/term.c

Patch 7.4.308
Problem:    When using ":diffsplit" on an empty file the cursor is displayed
	    on the command line.
Solution:   Limit the value of w_topfill.
Files:	    src/diff.c

Patch 7.4.309
Problem:    When increasing the size of the lower window, the upper window
	    jumps back to the top. (Ron Aaron)
Solution:   Change setting the topline. (Nobuhiro Takasaki)
Files:	    src/window.c

Patch 7.4.310
Problem:    getpos()/setpos() don't include curswant.
Solution:   Add a fifth number when getting/setting the cursor.
Files:	    src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok,
	    runtime/doc/eval.txt

Patch 7.4.311
Problem:    Can't use winrestview to only restore part of the view.
Solution:   Handle missing items in the dict. (Christian Brabandt)
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 7.4.312
Problem:    Cannot figure out what argument list is being used for a window.
Solution:   Add the arglistid() function. (Marcin Szamotulski)
Files:	    runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
	    src/ex_docmd.c, src/globals.h, src/structs.h, src/main.c

Patch 7.4.313 (after 7.4.310)
Problem:    Changing the return value of getpos() causes an error. (Jie Zhu)
Solution:   Revert getpos() and add getcurpos().
Files:	    src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok,
	    runtime/doc/eval.txt

Patch 7.4.314
Problem:    Completion messages can get in the way of a plugin.
Solution:   Add 'c' flag to 'shortmess' option. (Shougo Matsu)
Files:	    runtime/doc/options.txt, src/edit.c, src/option.h, src/screen.c

Patch 7.4.315 (after 7.4.309)
Problem:    Fixes for computation of topline not tested.
Solution:   Add test. (Hirohito Higashi)
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test107.in, src/testdir/test107.ok

Patch 7.4.316
Problem:    Warning from 64-bit compiler.
Solution:   Add type cast. (Mike Williams)
Files:	    src/ex_getln.c

Patch 7.4.317
Problem:    Crash when starting gvim.  Issue 230.
Solution:   Check for a pointer to be NULL. (Christian Brabandt)
Files:	    src/window.c

Patch 7.4.318
Problem:    Check for whether a highlight group has settings ignores fg and bg
	    color settings.
Solution:   Also check cterm and GUI color settings. (Christian Brabandt)
Files:	    src/syntax.c

Patch 7.4.319
Problem:    Crash when putting zero bytes on the clipboard.
Solution:   Do not support the utf8_atom target when not using a Unicode
	    encoding. (Naofumi Honda)
Files:	    src/ui.c

Patch 7.4.320
Problem:    Possible crash when an BufLeave autocommand deletes the buffer.
Solution:   Check for the window pointer being valid.  Postpone freeing the
	    window until autocommands are done. (Yasuhiro Matsumoto)
Files:	    src/buffer.c, src/fileio.c, src/globals.h, src/window.c

Patch 7.4.321
Problem:    Can't build with strawberry perl 5.20 + mingw-w64-4.9.0.
Solution:   Define save_strlen. (Ken Takata)
Files:	    src/if_perl.xs

Patch 7.4.322
Problem:    Using "msgfmt" is hard coded, cannot use "gmsgfmt".
Solution:   Use the msgfmt command found by configure. (Danek Duvall)
Files:	    src/config.mk.in, src/po/Makefile

Patch 7.4.323
Problem:    Substitute() with zero width pattern breaks multi-byte character.
Solution:   Take multi-byte character size into account. (Yukihiro Nakadaira)
Files:	    src/eval.c src/testdir/test69.in, src/testdir/test69.ok

Patch 7.4.324
Problem:    In Ex mode, cyrillic characters are not handled. (Stas Malavin)
Solution:   Support multi-byte characters in Ex mode. (Yukihiro Nakadaira)
Files:	    src/ex_getln.c

Patch 7.4.325
Problem:    When starting the gui and changing the window size the status line
	    may not be drawn correctly.
Solution:   Catch new_win_height() being called recursively. (Christian
	    Brabandt)
Files:	    src/window.c

Patch 7.4.326
Problem:    Can't build Tiny version. (Elimar Riesebieter)
Solution:   Add #ifdef.
Files:	    src/window.c

Patch 7.4.327
Problem:    When 'verbose' is set to display the return value of a function,
	    may get E724 repeatedly.
Solution:   Do not give an error for verbose messages. Abort conversion to
	    string after an error.
Files:	    src/eval.c

Patch 7.4.328
Problem:    Selection of inner block is inconsistent.
Solution:   Skip indent not only for '}' but all parens. (Tom McDonald)
Files:	    src/search.c

Patch 7.4.329
Problem:    When moving the cursor and then switching to another window the
	    previous window isn't scrolled. (Yukihiro Nakadaira)
Solution:   Call update_topline() before leaving the window. (Christian
	    Brabandt)
Files:	    src/window.c

Patch 7.4.330
Problem:    Using a regexp pattern to highlight a specific position can be
	    slow.
Solution:   Add matchaddpos() to highlight specific positions efficiently.
	    (Alexey Radkov)
Files:	    runtime/doc/eval.txt, runtime/doc/usr_41.txt,
	    runtime/plugin/matchparen.vim, src/eval.c, src/ex_docmd.c,
	    src/proto/window.pro, src/screen.c, src/structs.h,
	    src/testdir/test63.in, src/testdir/test63.ok, src/window.c

Patch 7.4.331
Problem:    Relative numbering not updated after a linewise yank.  Issue 235.
Solution:   Redraw after the yank. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.4.332
Problem:    GTK: When a sign icon doesn't fit exactly there can be ugly gaps.
Solution:   Scale the sign to fit when the aspect ratio is not too far off.
	    (Christian Brabandt)
Files:	    src/gui_gtk_x11.c

Patch 7.4.333
Problem:    Compiler warning for unused function.
Solution:   Put the function inside the #ifdef.
Files:	    src/screen.c

Patch 7.4.334 (after 7.4.330)
Problem:    Uninitialized variables, causing some problems.
Solution:   Initialize the variables. (Dominique Pelle)
Files:	    src/screen.c, src/window.c

Patch 7.4.335
Problem:    No digraph for the new rouble sign.
Solution:   Add the digraphs =R and =P.
Files:	    src/digraph.c, runtime/doc/digraph.txt

Patch 7.4.336
Problem:    Setting 'history' to a big value causes out-of-memory errors.
Solution:   Limit the value to 10000. (Hirohito Higashi)
Files:	    runtime/doc/options.txt, src/option.c

Patch 7.4.337
Problem:    When there is an error preparing to edit the command line, the
	    command won't be executed. (Hirohito Higashi)
Solution:   Reset did_emsg before editing.
Files:	    src/ex_getln.c

Patch 7.4.338
Problem:    Cannot wrap lines taking indent into account.
Solution:   Add the 'breakindent' option. (many authors, final improvements by
	    Christian Brabandt)
Files:	    runtime/doc/eval.txt, runtime/doc/options.txt, runtime/optwin.vim,
	    src/buffer.c, src/charset.c, src/edit.c, src/ex_getln.c,
	    src/getchar.c, src/misc1.c, src/misc2.c, src/ops.c, src/option.c,
	    src/option.h, src/proto/charset.pro, src/proto/misc1.pro,
	    src/proto/option.pro, src/screen.c, src/structs.h,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test_breakindent.in, src/testdir/test_breakindent.ok,
	    src/ui.c, src/version.c

Patch 7.4.339
Problem:    Local function is available globally.
Solution:   Add "static".
Files:	    src/option.c, src/proto/option.pro

Patch 7.4.340
Problem:    Error from sed about illegal bytes when installing Vim.
Solution:   Prepend LC_ALL=C. (Itchyny)
Files:	    src/installman.sh

Patch 7.4.341
Problem:    sort() doesn't handle numbers well.
Solution:   Add an argument to specify sorting on numbers. (Christian Brabandt)
Files:	    runtime/doc/eval.txt, src/eval.c, src/testdir/test55.in,
	    src/testdir/test55.ok

Patch 7.4.342
Problem:    Clang gives warnings.
Solution:   Add an else block. (Dominique Pelle)
Files:	    src/gui_beval.c

Patch 7.4.343
Problem:    matchdelete() does not always update the right lines.
Solution:   Fix off-by-one error.  (Ozaki Kiichi)
Files:	    src/window.c

Patch 7.4.344
Problem:    Unnecessary initializations and other things related to
	    matchaddpos().
Solution:   Code cleanup. (Alexey Radkov)
Files:	    runtime/doc/eval.txt, src/screen.c, src/window.c

Patch 7.4.345 (after 7.4.338)
Problem:    Indent is not updated when deleting indent.
Solution:   Remember changedtick.
Files:	    src/misc1.c

Patch 7.4.346 (after 7.4.338)
Problem:    Indent is not updated when changing 'breakindentopt'. (itchyny)
Solution:   Do not cache "brishift". (Christian Brabandt)
Files:	    src/misc1.c

Patch 7.4.347
Problem:    test55 fails on some systems.
Solution:   Remove the elements that all result in zero and can end up in an
	    arbitrary position.
Files:	    src/testdir/test55.in, src/testdir/test55.ok

Patch 7.4.348
Problem:    When using "J1" in 'cinoptions' a line below a continuation line
	    gets too much indent.
Solution:   Fix parentheses in condition.
Files:	    src/misc1.c

Patch 7.4.349
Problem:    When there are matches to highlight the whole window is redrawn,
	    which is slow.
Solution:   Only redraw everything when lines were inserted or deleted.
	    Reset b_mod_xlines when needed.  (Alexey Radkov)
Files:	    src/screen.c, src/window.c

Patch 7.4.350
Problem:    Using C indenting for Javascript does not work well for a {} block
	    inside parentheses.
Solution:   When looking for a matching paren ignore one that is before the
	    start of a {} block.
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.351
Problem:    sort() is not stable.
Solution:   When the items are identical, compare the pointers.
Files:	    src/eval.c, src/testdir/test55.in, src/testdir/test55.ok

Patch 7.4.352
Problem:    With 'linebreak' a tab causes a missing line break.
Solution:   Count a tab for what it's worth also for shorter lines.
	    (Christian Brabandt)
Files:	    src/charset.c

Patch 7.4.353
Problem:    'linebreak' doesn't work with the 'list' option.
Solution:   Make it work. (Christian Brabandt)
Files:	    runtime/doc/options.txt, src/charset.c, src/screen.c,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test_listlbr.in, src/testdir/test_listlbr.ok

Patch 7.4.354
Problem:    Compiler warning.
Solution:   Change NUL to NULL. (Ken Takata)
Files:	    src/screen.c

Patch 7.4.355
Problem:    Several problems with Javascript indenting.
Solution:   Improve Javascript indenting.
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.356
Problem:    Mercurial does not ignore memfile_test. (Daniel Hahler)
Solution:   Add memfile_test to ignored files, remove trailing spaces.
Files:	    .hgignore

Patch 7.4.357
Problem:    After completion some characters are not redrawn.
Solution:   Clear the command line unconditionally. (Jacob Niehus)
Files:	    src/edit.c

Patch 7.4.358 (after 7.4.351)
Problem:    Sort is not always stable.
Solution:   Add an index instead of relying on the pointer to remain the same.
	    Idea by Jun Takimoto.
Files:	    src/eval.c

Patch 7.4.359
Problem:    When 'ttymouse' is set to 'uxterm' the xterm version is not
	    requested. (Tomas Janousek)
Solution:   Do not mark uxterm as a conflict mouse and add
	    resume_get_esc_sequence().
Files:	    src/term.c, src/os_unix.c, src/proto/term.pro

Patch 7.4.360
Problem:    In a regexp pattern a "$" followed by \v or \V is not seen as the
	    end-of-line.
Solution:   Handle the situation. (Ozaki Kiichi)
Files:	    src/regexp.c

Patch 7.4.361
Problem:    Lots of flickering when filling the preview window for 'omnifunc'.
Solution:   Disable redrawing. (Hirohito Higashi)
Files:	    src/popupmnu.c

Patch 7.4.362
Problem:    When matchaddpos() uses a length smaller than the number of bytes
	    in the (last) character the highlight continues until the end of
	    the line.
Solution:   Change condition from equal to larger-or-equal.
Files:	    src/screen.c

Patch 7.4.363
Problem:    In Windows console typing 0xCE does not work.
Solution:   Convert 0xCE to K_NUL 3. (Nobuhiro Takasaki et al.)
Files:	    src/os_win32.c, src/term.c

Patch 7.4.364
Problem:    When the viminfo file can't be renamed there is no error message.
	    (Vladimir Berezhnoy)
Solution:   Check for the rename to fail.
Files:	    src/ex_cmds.c

Patch 7.4.365
Problem:    Crash when using ":botright split" when there isn't much space.
Solution:   Add a check for the minimum width/height. (Yukihiro Nakadaira)
Files:	    src/window.c

Patch 7.4.366
Problem:    Can't run the linebreak test on MS-Windows.
Solution:   Fix the output file name. (Taro Muraoka)
Files:	    src/testdir/Make_dos.mak

Patch 7.4.367 (after 7.4.357)
Problem:    Other solution for redrawing after completion.
Solution:   Schedule a window redraw instead of just clearing the command
	    line. (Jacob Niehus)
Files:	    src/edit.c

Patch 7.4.368
Problem:    Restoring the window sizes after closing the command line window
	    doesn't work properly if there are nested splits.
Solution:   Restore the sizes twice. (Hirohito Higashi)
Files:	    src/window.c

Patch 7.4.369
Problem:    Using freed memory when exiting while compiled with EXITFREE.
Solution:   Set curwin to NULL and check for that. (Dominique Pelle)
Files:	    src/buffer.c, src/window.c

Patch 7.4.370
Problem:    Linebreak test fails when encoding is not utf-8. (Danek Duvall)
Solution:   Split the test in a single byte one and a utf-8 one. (Christian
	    Brabandt)
Files:	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test_listlbr.in, src/testdir/test_listlbr.ok,
	    src/testdir/test_listlbr_utf8.in, src/testdir/test_listlbr_utf8.ok

Patch 7.4.371
Problem:    When 'linebreak' is set control characters are not correctly
	    displayed. (Kimmy Lindvall)
Solution:   Set n_extra. (Christian Brabandt)
Files:	    src/screen.c

Patch 7.4.372
Problem:    When 'winminheight' is zero there might not be one line for the
	    current window.
Solution:   Change the size computations. (Yukihiro Nakadaira)
Files:	    src/window.c

Patch 7.4.373
Problem:    Compiler warning for unused argument and unused variable.
Solution:   Add UNUSED.  Move variable inside #ifdef.
Files:	    src/charset.c, src/window.c

Patch 7.4.374
Problem:    Character after "fb" command not mapped if it might be a composing
	    character.
Solution:   Don't disable mapping when looking for a composing character.
	    (Jacob Niehus)
Files:	    src/normal.c

Patch 7.4.375
Problem:    Test 63 fails when run with GUI-only Vim.
Solution:   Add guibg attributes. (suggested by Mike Soyka)
Files:	    src/testdir/test63.in

Patch 7.4.376 (after 7.4.367)
Problem:    Popup menu flickers too much.
Solution:   Remove the forced redraw. (Hirohito Higashi)
Files:	    src/edit.c

Patch 7.4.377
Problem:    When 'equalalways' is set a split may report "no room" even though
	    there is plenty of room.
Solution:   Compute the available room properly. (Yukihiro Nakadaira)
Files:	    src/window.c

Patch 7.4.378
Problem:    Title of quickfix list is not kept for setqflist(list, 'r').
Solution:   Keep the title.  Add a test. (Lcd)
Files:	    src/quickfix.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test_qf_title.in,
	    src/testdir/test_qf_title.ok

Patch 7.4.379
Problem:    Accessing freed memory after using setqflist(list, 'r'). (Lcd)
Solution:   Reset qf_index.
Files:	    src/quickfix.c

Patch 7.4.380
Problem:    Loading python may cause Vim to exit.
Solution:   Avoid loading the "site" module. (Taro Muraoka)
Files:	    src/if_python.c

Patch 7.4.381
Problem:    Get u_undo error when backspacing in Insert mode deletes more than
	    one line break. (Ayberk Ozgur)
Solution:   Also decrement Insstart.lnum.
Files:	    src/edit.c

Patch 7.4.382
Problem:    Mapping characters may not work after typing Esc in Insert mode.
Solution:   Fix the noremap flags for inserted characters. (Jacob Niehus)
Files:	    src/getchar.c

Patch 7.4.383
Problem:    Bad interaction between preview window and omnifunc.
Solution:   Avoid redrawing the status line. (Hirohito Higashi)
Files:	    src/popupmnu.c

Patch 7.4.384
Problem:    Test 102 fails when compiled with small features.
Solution:   Source small.vim. (Jacob Niehus)
Files:	    src/testdir/test102.in

Patch 7.4.385
Problem:    When building with tiny or small features building the .mo files
	    fails.
Solution:   In autoconf do not setup for building the .mo files when it would
	    fail.
Files:	    src/configure.in, src/auto/configure

Patch 7.4.386
Problem:    When splitting a window the changelist position is wrong.
Solution:   Copy the changelist position. (Jacob Niehus)
Files:	    src/window.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test_changelist.in,
	    src/testdir/test_changelist.ok

Patch 7.4.387
Problem:    "4gro" replaces one character then executes "ooo". (Urtica Dioica)
Solution:   Write the ESC in the second stuff buffer.
Files:	    src/getchar.c, src/proto/getchar.pro, src/edit.c,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test_insertcount.in, src/testdir/test_insertcount.ok

Patch 7.4.388
Problem:    With 'linebreak' set and 'list' unset a Tab is not counted
	    properly. (Kent Sibilev)
Solution:   Check the 'list' option. (Christian Brabandt)
Files:	    src/screen.c, src/testdir/test_listlbr_utf8.in,
	    src/testdir/test_listlbr_utf8.ok

Patch 7.4.389
Problem:    Still sometimes Vim enters Replace mode when starting up.
Solution:   Use a different solution in detecting the termresponse and
	    location response. (Hayaki Saito)
Files:	    src/globals.h, src/os_unix.c, src/term.c, src/proto/term.pro

Patch 7.4.390
Problem:    Advancing pointer over end of a string.
Solution:   Init quote character to -1 instead of zero. (Dominique Pelle)
Files:	    src/misc1.c

Patch 7.4.391
Problem:    No 'cursorline' highlighting when the cursor is on a line with
	    diff highlighting. (Benjamin Fritz)
Solution:   Combine the highlight attributes. (Christian Brabandt)
Files:	    src/screen.c

Patch 7.4.392
Problem:    Not easy to detect type of command line window.
Solution:   Add the getcmdwintype() function. (Jacob Niehus)
Files:	    src/eval.c

Patch 7.4.393
Problem:    Text drawing on newer MS-Windows systems is suboptimal.  Some
	    multi-byte characters are not displayed, even though the same font
	    in Notepad can display them. (Srinath Avadhanula)
Solution:   Add the 'renderoptions' option to enable DirectX drawing. (Taro
	    Muraoka)
Files:	    runtime/doc/eval.txt, runtime/doc/options.txt,
	    runtime/doc/various.txt, src/Make_cyg.mak, src/Make_ming.mak,
	    src/Make_mvc.mak, src/eval.c, src/gui_dwrite.cpp,
	    src/gui_dwrite.h, src/gui_w32.c, src/gui_w48.c, src/option.c,
	    src/option.h, src/version.c, src/vim.h, src/proto/gui_w32.pro

Patch 7.4.394 (after 7.4.393)
Problem:    When using DirectX last italic character is incomplete.
Solution:   Add one to the number of cells. (Ken Takata)
Files:	    src/gui_w32.c

Patch 7.4.395 (after 7.4.355)
Problem:    C indent is wrong below an if with wrapped condition followed by
	    curly braces. (Trevor Powell)
Solution:   Make a copy of tryposBrace.
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.396
Problem:    When 'clipboard' is "unnamed", :g/pat/d is very slow. (Praful)
Solution:   Only set the clipboard after the last delete. (Christian Brabandt)
Files:	    src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/globals.h,
	    src/ops.c, src/proto/ui.pro, src/ui.c

Patch 7.4.397
Problem:    Matchparen only uses the topmost syntax item.
Solution:   Go through the syntax stack to find items. (James McCoy)
	    Also use getcurpos() when possible.
Files:	    runtime/plugin/matchparen.vim

Patch 7.4.398 (after 7.4.393)
Problem:    Gcc error for the argument of InterlockedIncrement() and
	    InterlockedDecrement(). (Axel Bender)
Solution:   Remove "unsigned" from the cRefCount_ declaration.
Files:	    src/gui_dwrite.cpp

Patch 7.4.399
Problem:    Encryption implementation is messy.  Blowfish encryption has a
	    weakness.
Solution:   Refactor the encryption, store the state in an allocated struct
	    instead of using a save/restore mechanism.  Introduce the
	    "blowfish2" method, which does not have the weakness and encrypts
	    the whole undo file. (largely by David Leadbeater)
Files:	    runtime/doc/editing.txt, runtime/doc/options.txt, src/Makefile,
	    src/blowfish.c, src/crypt.c, src/crypt_zip.c, src/ex_docmd.c,
	    src/fileio.c, src/globals.h, src/main.c, src/memline.c,
	    src/misc2.c, src/option.c, src/proto.h, src/proto/blowfish.pro,
	    src/proto/crypt.pro, src/proto/crypt_zip.pro,
	    src/proto/fileio.pro, src/proto/misc2.pro, src/structs.h,
	    src/undo.c, src/testdir/test71.in, src/testdir/test71.ok,
	    src/testdir/test71a.in, src/testdir/test72.in,
	    src/testdir/test72.ok

Patch 7.4.400
Problem:    List of distributed files is incomplete.
Solution:   Add recently added files.
Files:	    Filelist

Patch 7.4.401 (after 7.4.399)
Problem:    Can't build on MS-Windows.
Solution:   Include the new files in all the Makefiles.
Files:	    src/Make_bc3.mak, src/Make_bc5.mak, src/Make_cyg.mak,
	    src/Make_dice.mak, src/Make_djg.mak, src/Make_ivc.mak,
	    src/Make_manx.mak, src/Make_ming.mak, src/Make_morph.mak,
	    src/Make_mvc.mak, src/Make_os2.mak, src/Make_sas.mak,
	    Make_vms.mms

Patch 7.4.402
Problem:    Test 72 crashes under certain conditions. (Kazunobu Kuriyama)
Solution:   Clear the whole bufinfo_T early.
Files:	    src/undo.c

Patch 7.4.403
Problem:    Valgrind reports errors when running test 72. (Dominique Pelle)
Solution:   Reset the local 'cryptmethod' option before storing the seed.
	    Set the seed in the memfile even when there is no block0 yet.
Files:	    src/fileio.c, src/option.c, src/memline.c

Patch 7.4.404
Problem:    Windows 64 bit compiler warnings.
Solution:   Add type casts. (Mike Williams)
Files:	    src/crypt.c, src/undo.c

Patch 7.4.405
Problem:    Screen updating is slow when using matches.
Solution:   Do not use the ">=" as in patch 7.4.362, check the lnum.
Files:	    src/screen.c, src/testdir/test63.in, src/testdir/test63.ok

Patch 7.4.406
Problem:    Test 72 and 100 fail on MS-Windows.
Solution:   Set fileformat to unix in the tests. (Taro Muraoka)
Files:	    src/testdir/test72.in, src/testdir/test100.in

Patch 7.4.407
Problem:    Inserting text for Visual block mode, with cursor movement,
	    repeats the wrong text. (Aleksandar Ivanov)
Solution:   Reset the update_Insstart_orig flag. (Christian Brabandt)
Files:	    src/edit.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.408
Problem:    Visual block insert breaks a multi-byte character.
Solution:   Calculate the position properly. (Yasuhiro Matsumoto)
Files:	    src/ops.c, src/testdir/test_utf8.in, src/testdir/test_utf8.ok,
	    src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.409
Problem:    Can't build with Perl on Fedora 20.
Solution:   Find xsubpp in another directory. (Michael Henry)
Files:	    src/Makefile, src/config.mk.in, src/configure.in,
	    src/auto/configure

Patch 7.4.410
Problem:    Fold does not open after search when there is a CmdwinLeave
	    autocommand.
Solution:   Restore KeyTyped. (Jacob Niehus)
Files:	    src/ex_getln.c

Patch 7.4.411
Problem:    "foo bar" sorts before "foo" with sort(). (John Little)
Solution:   Avoid putting quotes around strings before comparing them.
Files:	    src/eval.c

Patch 7.4.412
Problem:    Can't build on Windows XP with MSVC.
Solution:   Add SUBSYSTEM_VER to the Makefile. (Yongwei Wu)
Files:	    src/Make_mvc.mak, src/INSTALLpc.txt

Patch 7.4.413
Problem:    MS-Windows: Using US international keyboard layout, inserting dead
	    key by pressing space does not always work.  Issue 250.
Solution:   Let MS-Windows translate the message. (John Wellesz)
Files:	    src/gui_w48.c

Patch 7.4.414
Problem:    Cannot define a command only when it's used.
Solution:   Add the CmdUndefined autocommand event. (partly by Yasuhiro
	    Matsumoto)
Files:	    runtime/doc/autocmd.txt, src/ex_docmd.c, src/fileio.c,
	    src/proto/fileio.pro

Patch 7.4.415 (after 7.4.414)
Problem:    Cannot build.  Warning for shadowed variable. (John Little)
Solution:   Add missing change.  Remove declaration.
Files:	    src/vim.h, src/ex_docmd.c

Patch 7.4.416
Problem:    Problem with breakindent/showbreak and tabs.
Solution:   Handle tabs differently. (Christian Brabandt)
Files:	    src/testdir/test_breakindent.in, src/testdir/test_breakindent.ok,
	    src/charset.c

Patch 7.4.417
Problem:    After splitting a window and setting 'breakindent' the default
	    minimum with is not respected.
Solution:   Call briopt_check() when copying options to a new window.
Files:	    src/option.c, src/proto/option.pro,
	    src/testdir/test_breakindent.in

Patch 7.4.418
Problem:    When leaving ":append" the cursor shape is like in Insert mode.
	    (Jacob Niehus)
Solution:   Do not have State set to INSERT when calling getline().
Files:	    src/ex_cmds.c

Patch 7.4.419
Problem:    When part of a list is locked it's possible to make changes.
Solution:   Check if any of the list items is locked before make a change.
	    (ZyX)
Files:	    src/eval.c, src/testdir/test55.in, src/testdir/test55.ok

Patch 7.4.420
Problem:    It's not obvious how to add a new test.
Solution:   Add a README file. (Christian Brabandt)
Files:	    src/testdir/README.txt

Patch 7.4.421
Problem:    Crash when searching for "\ze*". (Urtica Dioica)
Solution:   Disallow a multi after \ze and \zs.
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.422
Problem:    When using conceal with linebreak some text is not displayed
	    correctly. (Grüner Gimpel)
Solution:   Check for conceal mode when using linebreak. (Christian Brabandt)
Files:	    src/screen.c, src/testdir/test_listlbr.in,
	    src/testdir/test_listlbr.ok

Patch 7.4.423
Problem:    expand("$shell") does not work as documented.
Solution:   Do not escape the $ when expanding environment variables.
Files:	    src/os_unix.c, src/misc1.c, src/vim.h

Patch 7.4.424
Problem:    Get ml_get error when using Python to delete lines in a buffer
	    that is not in a window.  issue 248.
Solution:   Do not try adjusting the cursor for a different buffer.
Files:	    src/if_py_both.h

Patch 7.4.425
Problem:    When 'showbreak' is used "gj" may move to the wrong position.
	    (Nazri Ramliy)
Solution:   Adjust virtcol when 'showbreak' is set. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.4.426
Problem:    README File missing from list of files.
Solution:   Update the list of files.
Files:	    Filelist

Patch 7.4.427
Problem:    When an InsertCharPre autocommand executes system() typeahead may
	    be echoed and messes up the display. (Jacob Niehus)
Solution:   Do not set cooked mode when invoked from ":silent".
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 7.4.428
Problem:    executable() may return a wrong result on MS-Windows.
Solution:   Change the way SearchPath() is called. (Yasuhiro Matsumoto, Ken
	    Takata)
Files:	    src/os_win32.c

Patch 7.4.429
Problem:    Build fails with fewer features. (Elimar Riesebieter)
Solution:   Add #ifdef.
Files:	    src/normal.c

Patch 7.4.430
Problem:    test_listlbr fails when compiled with normal features.
Solution:   Check for the +conceal feature.
Files:	    src/testdir/test_listlbr.in

Patch 7.4.431
Problem:    Compiler warning.
Solution:   Add type cast. (Mike Williams)
Files:	    src/ex_docmd.c

Patch 7.4.432
Problem:    When the startup code expands command line arguments, setting
	    'encoding' will not properly convert the arguments.
Solution:   Call get_cmd_argsW() early in main(). (Yasuhiro Matsumoto)
Files:	    src/os_win32.c, src/main.c, src/os_mswin.c

Patch 7.4.433
Problem:    Test 75 fails on MS-Windows.
Solution:   Use ":normal" instead of feedkeys(). (Michael Soyka)
Files:	    src/testdir/test75.in

Patch 7.4.434
Problem:    gettabvar() is not consistent with getwinvar() and getbufvar().
Solution:   Return a dict with all variables when the varname is empty.
	    (Yasuhiro Matsumoto)
Files:	    src/eval.c, runtime/doc/eval.txt, src/testdir/test91.in,
	    src/testdir/test91.ok

Patch 7.4.435
Problem:    Line formatting behaves differently when 'linebreak' is set.
	    (mvxxc)
Solution:   Disable 'linebreak' temporarily. (Christian Brabandt)
Files:	    src/edit.c

Patch 7.4.436
Problem:    ml_get error for autocommand that moves the cursor of the current
	    window.
Solution:   Check the cursor position after switching back to the current
	    buffer.  (Christian Brabandt)
Files:	    src/fileio.c

Patch 7.4.437
Problem:    New and old regexp engine are not consistent.
Solution:   Also give an error for "\ze*" for the old regexp engine.
Files:	    src/regexp.c, src/regexp_nfa.c

Patch 7.4.438
Problem:    Cached values for 'cino' not reset for ":set all&".
Solution:   Call parse_cino(). (Yukihiro Nakadaira)
Files:	    src/option.c

Patch 7.4.439
Problem:    Duplicate message in message history.  Some quickfix messages
	    appear twice. (Gary Johnson)
Solution:   Do not reset keep_msg too early. (Hirohito Higashi)
Files:	    src/main.c

Patch 7.4.440
Problem:    Omni complete popup drawn incorrectly.
Solution:   Call validate_cursor() instead of check_cursor(). (Hirohito
	    Higashi)
Files:	    src/edit.c

Patch 7.4.441
Problem:    Endless loop and other problems when 'cedit' is set to CTRL-C.
Solution:   Do not call ex_window() when ex_normal_busy or got_int was set.
	    (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c

Patch 7.4.442 (after 7.4.434)
Problem:    Using uninitialized variable.
Solution:   Pass the first window of the tabpage.
Files:	    src/eval.c

Patch 7.4.443
Problem:    Error reported by ubsan when running test 72.
Solution:   Add type cast to unsigned. (Dominique Pelle)
Files:	    src/undo.c

Patch 7.4.444
Problem:    Reversed question mark not recognized as punctuation. (Issue 258)
Solution:   Add the Supplemental Punctuation range.
Files:	    src/mbyte.c

Patch 7.4.445
Problem:    Clipboard may be cleared on startup.
Solution:   Set clip_did_set_selection to -1 during startup. (Christian
	    Brabandt)
Files:	    src/main.c, src/ui.c

Patch 7.4.446
Problem:    In some situations, when setting up an environment to trigger an
	    autocommand, the environment is not properly restored.
Solution:   Check the return value of switch_win() and call restore_win()
	    always.  (Daniel Hahler)
Files:	    src/eval.c, src/misc2.c, src/window.c

Patch 7.4.447
Problem:    Spell files from Hunspell may generate a lot of errors.
Solution:   Add the IGNOREEXTRA flag.
Files:	    src/spell.c, runtime/doc/spell.txt

Patch 7.4.448
Problem:    Using ETO_IGNORELANGUAGE causes problems.
Solution:   Remove this flag. (Paul Moore)
Files:	    src/gui_w32.c

Patch 7.4.449
Problem:    Can't easily close the help window. (Chris Gaal)
Solution:   Add ":helpclose". (Christian Brabandt)
Files:	    runtime/doc/helphelp.txt, runtime/doc/index.txt, src/ex_cmds.c,
	    src/ex_cmds.h, src/proto/ex_cmds.pro

Patch 7.4.450
Problem:    Not all commands that edit another buffer support the +cmd
	    argument.
Solution:   Add the +cmd argument to relevant commands. (Marcin Szamotulski)
Files:	    runtime/doc/windows.txt, src/ex_cmds.h, src/ex_docmd.c

Patch 7.4.451
Problem:    Calling system() with empty input gives an error for writing the
	    temp file.
Solution:   Do not try writing if the string length is zero. (Olaf Dabrunz)
Files:	    src/eval.c

Patch 7.4.452
Problem:    Can't build with tiny features. (Tony Mechelynck)
Solution:   Use "return" instead of "break".
Files:	    src/ex_cmds.c

Patch 7.4.453
Problem:    Still can't build with tiny features.
Solution:   Add #ifdef.
Files:	    src/ex_cmds.c

Patch 7.4.454
Problem:    When using a Visual selection of multiple words and doing CTRL-W_]
	    it jumps to the tag matching the word under the cursor, not the
	    selected text.  (Patrick hemmer)
Solution:   Do not reset Visual mode. (idea by Christian Brabandt)
Files:	    src/window.c

Patch 7.4.455
Problem:    Completion for :buf does not use 'wildignorecase'. (Akshay H)
Solution:   Pass the 'wildignorecase' flag around.
Files:	    src/buffer.c

Patch 7.4.456
Problem:    'backupcopy' is global, cannot write only some files in a
	    different way.
Solution:   Make 'backupcopy' global-local. (Christian Brabandt)
Files:	    runtime/doc/options.txt, src/buffer.c, src/fileio.c, src/option.c,
	    src/option.h, src/proto/option.pro, src/structs.h

Patch 7.4.457
Problem:    Using getchar() in an expression mapping may result in
	    K_CURSORHOLD, which can't be recognized.
Solution:   Add the <CursorHold> key.  (Hirohito Higashi)
Files:	    src/misc2.c

Patch 7.4.458
Problem:    Issue 252: Cursor moves in a zero-height window.
Solution:   Check for zero height. (idea by Christian Brabandt)
Files:	    src/move.c

Patch 7.4.459
Problem:    Can't change the icon after building Vim.
Solution:   Load the icon from a file on startup. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c, src/os_mswin.c, src/os_win32.c,
	    src/proto/os_mswin.pro

Patch 7.4.460 (after 7.4.454)
Problem:    Can't build without the quickfix feature. (Erik Falor)
Solution:   Add a #ifdef.
Files:	    src/window.c

Patch 7.4.461
Problem:    MS-Windows: When collate is on the number of copies is too high.
Solution:   Only set the collated/uncollated count when collate is on.
	    (Yasuhiro Matsumoto)
Files:	    src/os_mswin.c

Patch 7.4.462
Problem:    Setting the local value of 'backupcopy' empty gives an error.
	    (Peter Mattern)
Solution:   When using an empty value set the flags to zero. (Hirohito
	    Higashi)
Files:	    src/option.c

Patch 7.4.463
Problem:    Test 86 and 87 may hang on MS-Windows.
Solution:   Call inputrestore() after inputsave(). (Ken Takata)
Files:	    src/testdir/test86.in, src/testdir/test87.in

Patch 7.4.464 (after 7.4.459)
Problem:    Compiler warning.
Solution:   Add type cast. (Ken Takata)
Files:	    src/gui_w32.c

Patch 7.4.465 (after 7.4.016)
Problem:    Crash when expanding a very long string.
Solution:   Use wcsncpy() instead of wcscpy(). (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.466 (after 7.4.460)
Problem:    CTRL-W } does not open preview window. (Erik Falor)
Solution:   Don't set g_do_tagpreview for CTRL-W }.
Files:	    src/window.c

Patch 7.4.467
Problem:    'linebreak' does not work well together with Visual mode.
Solution:   Disable 'linebreak' while applying an operator.  Fix the test.
	    (Christian Brabandt)
Files:	    src/normal.c, src/screen.c, src/testdir/test_listlbr.in,
	    src/testdir/test_listlbr.ok

Patch 7.4.468
Problem:    Issue 26: CTRL-C does not interrupt after it was mapped and then
	    unmapped.
Solution:   Reset mapped_ctrl_c. (Christian Brabandt)
Files:	    src/getchar.c

Patch 7.4.469 (after 7.4.467)
Problem:    Can't build with MSVC. (Ken Takata)
Solution:   Move the assignment after the declarations.
Files:	    src/normal.c

Patch 7.4.470
Problem:    Test 11 and 100 do not work properly on Windows.
Solution:   Avoid using feedkeys(). (Ken Takata)
Files:	    src/testdir/Make_dos.mak, src/testdir/test11.in,
	    src/testdir/test100.in

Patch 7.4.471
Problem:    MS-Windows: When printer name contains multi-byte, the name is
	    displayed as ???.
Solution:   Convert the printer name from the active codepage to 'encoding'.
	    (Yasuhiro Matsumoto)
Files:	    src/os_mswin.c

Patch 7.4.472
Problem:    The "precedes" entry in 'listchar' will be drawn when 'showbreak'
	    is set and 'list' is not.
Solution:   Only draw this character when 'list' is on. (Christian Brabandt)
Files:	    src/screen.c

Patch 7.4.473
Problem:    Cursor movement is incorrect when there is a number/sign/fold
	    column and 'sbr' is displayed.
Solution:   Adjust the column for 'sbr'. (Christian Brabandt)
Files:	    src/charset.c

Patch 7.4.474
Problem:    AIX compiler can't handle // comment.  Issue 265.
Solution:   Remove that line.
Files:	    src/regexp_nfa.c

Patch 7.4.475
Problem:    Can't compile on a system where Xutf8SetWMProperties() is not in
	    the X11 library.  Issue 265.
Solution:   Add a configure check.
Files:	    src/configure.in, src/auto/configure, src/config.h.in,
	    src/os_unix.c

Patch 7.4.476
Problem:    MingW: compiling with "XPM=no" doesn't work.
Solution:   Check for the "no" value. (KF Leong)  Also for Cygwin. (Ken
	    Takata)
Files:	    src/Make_ming.mak, src/Make_cyg.mak

Patch 7.4.477
Problem:    When using ":%diffput" and the other file is empty an extra empty
	    line remains.
Solution:   Set the buf_empty flag.
Files:	    src/diff.c

Patch 7.4.478
Problem:    Using byte length instead of character length for 'showbreak'.
Solution:   Compute the character length. (Marco Hinz)
Files:	    src/charset.c

Patch 7.4.479
Problem:    MS-Windows: The console title can be wrong.
Solution:   Take the encoding into account. When restoring the title use the
	    right function. (Yasuhiro Matsumoto)
Files:	    src/os_mswin.c, src/os_win32.c

Patch 7.4.480 (after 7.4.479)
Problem:    MS-Windows: Can't build.
Solution:   Remove goto, use a flag instead.
Files:	    src/os_win32.c

Patch 7.4.481 (after 7.4.471)
Problem:    Compiler warning on MS-Windows.
Solution:   Add type casts. (Ken Takata)
Files:	    src/os_mswin.c

Patch 7.4.482
Problem:    When 'balloonexpr' results in a list, the text has a trailing
	    newline. (Lcd)
Solution:   Remove one trailing newline.
Files:	    src/gui_beval.c

Patch 7.4.483
Problem:    A 0x80 byte is not handled correctly in abbreviations.
Solution:   Unescape special characters. Add a test. (Christian Brabandt)
Files:	    src/getchar.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test_mapping.in,
	    src/testdir/test_mapping.ok

Patch 7.4.484 (after 7.4.483)
Problem:    Compiler warning on MS-Windows. (Ken Takata)
Solution:   Add type cast.
Files:	    src/getchar.c

Patch 7.4.485 (after 7.4.484)
Problem:    Abbreviations don't work. (Toothpik)
Solution:   Move the length computation inside the for loop.  Compare against
	    the unescaped key.
Files:	    src/getchar.c

Patch 7.4.486
Problem:    Check for writing to a yank register is wrong.
Solution:   Negate the check. (Zyx).  Also clean up the #ifdefs.
Files:	    src/ex_docmd.c, src/ex_cmds.h

Patch 7.4.487
Problem:    ":sign jump" may use another window even though the file is
	    already edited in the current window.
Solution:   First check if the file is in the current window. (James McCoy)
Files:	    src/window.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test_signs.in,
	    src/testdir/test_signs.ok

Patch 7.4.488
Problem:    test_mapping fails for some people.
Solution:   Set the 'encoding' option. (Ken Takata)
Files:	    src/testdir/test_mapping.in

Patch 7.4.489
Problem:    Cursor movement still wrong when 'lbr' is set and there is a
	    number column. (Hirohito Higashi)
Solution:   Add correction for number column. (Hiroyuki Takagi)
Files:	    src/charset.c

Patch 7.4.490
Problem:    Cannot specify the buffer to use for "do" and "dp", making them
	    useless for three-way diff.
Solution:   Use the count as the buffer number. (James McCoy)
Files:	    runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/diff.pro

Patch 7.4.491
Problem:    When winrestview() has a negative "topline" value there are
	    display errors.
Solution:   Correct a negative value to 1. (Hirohito Higashi)
Files:	    src/eval.c

Patch 7.4.492
Problem:    In Insert mode, after inserting a newline that inserts a comment
	    leader, CTRL-O moves to the right. (ZyX) Issue 57.
Solution:   Correct the condition for moving the cursor back to the NUL.
	    (Christian Brabandt)
Files:	    src/edit.c, src/testdir/test4.in, src/testdir/test4.ok

Patch 7.4.493
Problem:    A TextChanged autocommand is triggered when saving a file.
	    (William Gardner)
Solution:   Update last_changedtick after calling unchanged(). (Christian
	    Brabandt)
Files:	    src/fileio.c

Patch 7.4.494
Problem:    Cursor shape is wrong after a CompleteDone autocommand.
Solution:   Update the cursor and mouse shape after ":normal" restores the
	    state. (Jacob Niehus)
Files:	    src/ex_docmd.c

Patch 7.4.495
Problem:    XPM isn't used correctly in the Cygwin Makefile.
Solution:   Include the rules like in Make_ming.mak. (Ken Takata)
Files:	    src/Make_cyg.mak

Patch 7.4.496
Problem:    Many lines are both in Make_cyg.mak and Make_ming.mak
Solution:   Move the common parts to one file. (Ken Takata)
Files:	    src/INSTALLpc.txt, src/Make_cyg.mak, src/Make_cyg_ming.mak,
	    src/Make_ming.mak, src/Make_mvc.mak, Filelist

Patch 7.4.497
Problem:    With some regexp patterns the NFA engine uses many states and
	    becomes very slow.  To the user it looks like Vim freezes.
Solution:   When the number of states reaches a limit fall back to the old
	    engine. (Christian Brabandt)
Files:	    runtime/doc/options.txt, src/Makefile, src/regexp.c, src/regexp.h,
	    src/regexp_nfa.c, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Makefile, src/testdir/samples/re.freeze.txt,
	    src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.vim,
	    Filelist

Patch 7.4.498 (after 7.4.497)
Problem:    Typo in DOS makefile.
Solution:   Change exists to exist. (Ken Takata)
Files:	    src/testdir/Make_dos.mak

Patch 7.4.499
Problem:    substitute() can be slow with long strings.
Solution:   Store a pointer to the end, instead of calling strlen() every
	    time. (Ozaki Kiichi)
Files:	    src/eval.c

Patch 7.4.500
Problem:    Test 72 still fails once in a while.
Solution:   Don't set 'fileformat' to unix, reset it. (Ken Takata)
Files:	    src/testdir/test72.in

Patch 7.4.501 (after 7.4.497)
Problem:    Typo in file pattern.
Solution:   Insert a slash and remove a dot.
Files:	    Filelist

Patch 7.4.502
Problem:    Language mapping also applies to mapped characters.
Solution:   Add the 'langnoremap' option, when on 'langmap' does not apply to
	    mapped characters. (Christian Brabandt)
Files:	    runtime/doc/options.txt, runtime/vimrc_example.vim, src/macros.h,
	    src/option.c, src/option.h

Patch 7.4.503
Problem:    Cannot append a list of lines to a file.
Solution:   Add the append option to writefile(). (Yasuhiro Matsumoto)
Files:	    runtime/doc/eval.txt, src/Makefile, src/eval.c,
	    src/testdir/test_writefile.in, src/testdir/test_writefile.ok

Patch 7.4.504
Problem:    Restriction of the MS-Windows installer that the path must end in
	    "Vim" prevents installing more than one version.
Solution:   Remove the restriction. (Tim Lebedkov)
Files:	    nsis/gvim.nsi

Patch 7.4.505
Problem:    On MS-Windows when 'encoding' is a double-byte encoding a file
	    name longer than MAX_PATH bytes but shorter than that in
	    characters causes problems.
Solution:   Fail on file names longer than MAX_PATH bytes. (Ken Takata)
Files:	    src/os_win32.c

Patch 7.4.506
Problem:    MS-Windows: Cannot open a file with 259 characters.
Solution:   Fix off-by-one error. (Ken Takata)
Files:	    src/os_mswin.c

Patch 7.4.507 (after 7.4.496)
Problem:    Building with MingW and Perl.
Solution:   Remove quotes. (Ken Takata)
Files:	    src/Make_cyg_ming.mak

Patch 7.4.508
Problem:    When generating ja.sjis.po the header is not correctly adjusted.
Solution:   Check for the right header string. (Ken Takata)
Files:	    src/po/sjiscorr.c

Patch 7.4.509
Problem:    Users are not aware their encryption is weak.
Solution:   Give a warning when prompting for the key.
Files:	    src/crypt.c, src/ex_docmd.c, src/fileio.c, src/main.c,
	    src/proto/crypt.pro

Patch 7.4.510
Problem:    "-fwrapv" argument breaks use of cproto.
Solution:   Remove the alphabetic arguments in a drastic way.
Files:	    src/Makefile

Patch 7.4.511
Problem:    Generating proto for if_ruby.c uses type not defined elsewhere.
Solution:   Do not generate a prototype for
	    rb_gc_writebarrier_unprotect_promoted()
Files:	    src/if_ruby.c

Patch 7.4.512
Problem:    Cannot generate prototypes for Win32 files and VMS.
Solution:   Add typedefs and #ifdef
Files:	    src/os_win32.c, src/gui_w32.c, src/os_vms.c

Patch 7.4.513
Problem:    Crash because reference count is wrong for list returned by
	    getreg().
Solution:   Increment the reference count. (Kimmy Lindvall)
Files:	    src/eval.c

Patch 7.4.514 (after 7.4.492)
Problem:    Memory access error. (Dominique Pelle)
Solution:   Update tpos. (Christian Brabandt)
Files:	    src/edit.c

Patch 7.4.515
Problem:    In a help buffer the global 'foldmethod' is used.  (Paul Marshall)
Solution:   Reset 'foldmethod' when starting to edit a help file.  Move the
	    code to a separate function.
Files:	    src/ex_cmds.c

Patch 7.4.516
Problem:    Completing a function name containing a # does not work.  Issue
	    253.
Solution:   Recognize the # character. (Christian Brabandt)
Files:	    src/eval.c

Patch 7.4.517
Problem:    With a wrapping line the cursor may not end up in the right place.
	    (Nazri Ramliy)
Solution:   Adjust n_extra for a Tab that wraps. (Christian Brabandt)
Files:	    src/screen.c

Patch 7.4.518
Problem:    Using status line height in width computations.
Solution:   Use one instead. (Hirohito Higashi)
Files:	    src/window.c

Patch 7.4.519 (after 7.4.497)
Problem:    Crash when using syntax highlighting.
Solution:   When regprog is freed and replaced, store the result.
Files:	    src/buffer.c, src/regexp.c, src/syntax.c, src/spell.c,
	    src/ex_cmds2.c, src/fileio.c, src/proto/fileio.pro,
	    src/proto/regexp.pro, src/os_unix.c

Patch 7.4.520
Problem:    Sun PCK locale is not recognized.
Solution:   Add PCK in the table. (Keiichi Oono)
Files:	    src/mbyte.c

Patch 7.4.521
Problem:    When using "vep" a mark is moved to the next line. (Maxi Padulo,
	    Issue 283)
Solution:   Decrement the line number. (Christian Brabandt)
Files:	    src/ops.c

Patch 7.4.522
Problem:    Specifying wrong buffer size for GetLongPathName().
Solution:   Use the actual size. (Ken Takata)
Files:	    src/eval.c

Patch 7.4.523
Problem:    When the X11 server is stopped and restarted, while Vim is kept in
	    the background, copy/paste no longer works. (Issue 203)
Solution:   Setup the clipboard again. (Christian Brabandt)
Files:	    src/os_unix.c

Patch 7.4.524
Problem:    When using ":ownsyntax" spell checking is messed up. (Issue 78)
Solution:   Use the window-local option values. (Christian Brabandt)
Files:	    src/option.c, src/syntax.c

Patch 7.4.525
Problem:    map() leaks memory when there is an error in the expression.
Solution:   Call clear_tv(). (Christian Brabandt)
Files:	    src/eval.c

Patch 7.4.526
Problem:    matchstr() fails on long text. (Daniel Hahler)
Solution:   Return NFA_TOO_EXPENSIVE from regexec_nl(). (Christian Brabandt)
Files:	    src/regexp.c

Patch 7.4.527
Problem:    Still confusing regexp failure and NFA_TOO_EXPENSIVE.
Solution:   NFA changes equivalent of 7.4.526.
Files:	    src/regexp_nfa.c

Patch 7.4.528
Problem:    Crash when using matchadd() (Yasuhiro Matsumoto)
Solution:   Copy the match regprog.
Files:	    src/screen.c

Patch 7.4.529
Problem:    No test for what 7.4.517 fixes.
Solution:   Adjust the tests for breakindent. (Christian Brabandt)
Files:	    src/testdir/test_breakindent.in, src/testdir/test_breakindent.ok

Patch 7.4.530
Problem:    Many commands take a count or range that is not using line
	    numbers.
Solution:   For each command specify what kind of count it uses.  For windows,
	    buffers and arguments have "$" and "." have a relevant meaning.
	    (Marcin Szamotulski)
Files:	    runtime/doc/editing.txt, runtime/doc/tabpage.txt,
	    runtime/doc/windows.txt, src/Makefile, src/ex_cmds.h,
	    src/ex_docmd.c, src/testdir/Make_amiga.mak
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test_argument_count.in,
	    src/testdir/test_argument_count.ok,
	    src/testdir/test_close_count.in, src/testdir/test_close_count.ok,
	    src/window.c

Patch 7.4.531
Problem:    Comments about parsing an Ex command are wrong.
Solution:   Correct the step numbers.
Files:	    src/ex_docmd.c

Patch 7.4.532
Problem:    When using 'incsearch' "2/pattern/e" highlights the first match.
Solution:   Move the code to set extra_col inside the loop for count.  (Ozaki
	    Kiichi)
Files:	    src/search.c

Patch 7.4.533
Problem:    ":hardcopy" leaks memory in case of errors.
Solution:   Free memory in all code paths. (Christian Brabandt)
Files:	    src/hardcopy.c

Patch 7.4.534
Problem:    Warnings when compiling if_ruby.c.
Solution:   Avoid the warnings. (Ken Takata)
Files:	    src/if_ruby.c

Patch 7.4.535 (after 7.4.530)
Problem:    Can't build with tiny features.
Solution:   Add #ifdefs and skip a test.
Files:	    src/ex_docmd.c, src/testdir/test_argument_count.in

Patch 7.4.536
Problem:    Test 63 fails when using a black&white terminal.
Solution:   Add attributes for a non-color terminal. (Christian Brabandt)
Files:	    src/testdir/test63.in

Patch 7.4.537
Problem:    Value of v:hlsearch reflects an internal variable.
Solution:   Make the value reflect whether search highlighting is actually
	    displayed. (Christian Brabandt)
Files:	    runtime/doc/eval.txt, src/testdir/test101.in,
	    src/testdir/test101.ok, src/vim.h

Patch 7.4.538
Problem:    Tests fail with small features plus Python.
Solution:   Disallow weird combination of options.  Do not set "fdm" when
	    folding is disabled.
Files:	    src/option.c, src/ex_cmds.c, src/configure.in, src/auto/configure,
	    src/feature.h

Patch 7.4.539 (after 7.4.530)
Problem:    Crash when computing buffer count.  Problem with range for user
	    commands.  Line range wrong in Visual area.
Solution:   Avoid segfault in compute_buffer_local_count().  Check for
	    CMD_USER when checking type of range. (Marcin Szamotulski)
Files:	    runtime/doc/windows.txt, src/ex_docmd.c

Patch 7.4.540 (after 7.4.539)
Problem:    Cannot build with tiny and small features. (Taro Muraoka)
Solution:   Add #ifdef around CMD_USER.
Files:	    src/ex_docmd.c

Patch 7.4.541
Problem:    Crash when doing a range assign.
Solution:   Check for NULL pointer. (Yukihiro Nakadaira)
Files:	    src/eval.c, src/testdir/test55.in, src/testdir/test55.ok

Patch 7.4.542
Problem:    Using a range for window and buffer commands has a few problems.
	    Cannot specify the type of range for a user command.
Solution:   Add the -addr argument for user commands.  Fix problems. (Marcin
	    Szamotulski)
Files:	    src/testdir/test_command_count.in,
	    src/testdir/test_command_count.ok src/testdir/Make_amiga.mak
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, runtime/doc/map.txt, src/Makefile,
	    src/ex_cmds.h, src/ex_docmd.c, src/ex_getln.c,
	    src/proto/ex_docmd.pro, src/vim.h,

Patch 7.4.543
Problem:    Since patch 7.4.232 "1,3s/\n//" joins two lines instead of three.
	    (Eliseo Martínez)  Issue 287
Solution:   Correct the line count. (Christian Brabandt)
	    Also set the last used search pattern.
Files:	    src/ex_cmds.c, src/search.c, src/proto/search.pro

Patch 7.4.544
Problem:    Warnings for unused arguments when compiling with a combination of
	    features.
Solution:   Add "UNUSED".
Files:	    src/if_cscope.c

Patch 7.4.545
Problem:    Highlighting for multi-line matches is not correct.
Solution:   Stop highlight at the end of the match. (Hirohito Higashi)
Files:	    src/screen.c

Patch 7.4.546
Problem:    Repeated use of vim_snprintf() with a number.
Solution:   Move these vim_snprintf() calls into a function.
Files:	    src/window.c

Patch 7.4.547
Problem:    Using "vit" does not select a multi-byte character at the end
	    correctly.
Solution:   Advance the cursor over the multi-byte character. (Christian
	    Brabandt)
Files:	    src/search.c

Patch 7.4.548
Problem:    Compilation fails with native version of MinGW-w64, because
	    it doesn't have x86_64-w64-mingw32-windres.exe.
Solution:   Use windres instead. (Ken Takata)
Files:	    src/Make_cyg_ming.mak

Patch 7.4.549
Problem:    Function name not recognized correctly when inside a function.
Solution:   Don't check for an alpha character. (Ozaki Kiichi)
Files:	    src/eval.c, src/testdir/test_nested_function.in,
	    src/testdir/test_nested_function.ok, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile

Patch 7.4.550
Problem:    curs_rows() function is always called with the second argument
	    false.
Solution:   Remove the argument. (Christian Brabandt)
	    validate_botline_win() can then also be removed.
Files:	    src/move.c

Patch 7.4.551
Problem:    "ygn" may yank too much. (Fritzophrenic)  Issue 295.
Solution:   Check the width of the next match. (Christian Brabandt)
Files:	    src/search.c, src/testdir/test53.in, src/testdir/test53.ok

Patch 7.4.552
Problem:    Langmap applies to Insert mode expression mappings.
Solution:   Check for Insert mode. (Daniel Hahler)
Files:	    src/getchar.c, src/testdir/test_mapping.in,
	    src/testdir/test_mapping.ok

Patch 7.4.553
Problem:    Various small issues.
Solution:   Fix those issues.
Files:	    src/ex_cmds.h, src/gui.h, src/message.c, src/testdir/test39.in,
	    src/proto/eval.pro, src/proto/misc1.pro, src/proto/ops.pro,
	    src/proto/screen.pro, src/proto/window.pro. src/os_unix.c,
	    src/Make_vms.mms, src/proto/os_vms.pro, src/INSTALL

Patch 7.4.554
Problem:    Missing part of patch 7.4.519.
Solution:   Copy back regprog after calling vim_regexec.
Files:	    src/quickfix.c

Patch 7.4.555
Problem:    test_close_count may fail for some combination of features.
Solution:   Require normal features.
Files:	    src/testdir/test_close_count.in

Patch 7.4.556
Problem:    Failed commands in Python interface not handled correctly.
Solution:   Restore window and buffer on failure.
Files:	    src/if_py_both.h

Patch 7.4.557
Problem:    One more small issue.
Solution:   Update function proto.
Files:	    src/proto/window.pro

Patch 7.4.558
Problem:    When the X server restarts Vim may get stuck.
Solution:   Destroy the application context and create it again.  (Issue 203)
Files:	    src/os_unix.c

Patch 7.4.559
Problem:    Appending a block in the middle of a tab does not work correctly
	    when virtualedit is set.
Solution:   Decrement spaces and count, don't reset them. (James McCoy)
Files:	    src/ops.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.560
Problem:    Memory leak using :wviminfo. Issue 296.
Solution:   Free memory when needed. (idea by Christian Brabandt)
Files:	    src/ops.c

Patch 7.4.561
Problem:    Ex range handling is wrong for buffer-local user commands.
Solution:   Check for CMD_USER_BUF. (Marcin Szamotulski)
Files:	    src/ex_docmd.c, src/testdir/test_command_count.in,
	    src/testdir/test_command_count.ok

Patch 7.4.562
Problem:    Segfault with wide screen and error in 'rulerformat'. (Ingo Karkat)
Solution:   Check there is enough space. (Christian Brabandt)
Files:	    src/buffer.c, src/screen.c

Patch 7.4.563
Problem:    No test for replacing on a tab in Virtual replace mode.
Solution:   Add a test. (Elias Diem)
Files:	    src/testdir/test48.in, src/testdir/test48.ok

Patch 7.4.564
Problem:    FEAT_OSFILETYPE is used even though it's never defined.
Solution:   Remove the code. (Christian Brabandt)
Files:	    src/fileio.c

Patch 7.4.565
Problem:    Ranges for arguments, buffers, tabs, etc. are not checked to be
	    valid but limited to the maximum.  This can cause the wrong thing
	    to happen.
Solution:   Give an error for an invalid value. (Marcin Szamotulski)
	    Use windows range for ":wincmd".
Files:	    src/ex_docmd.c, src/ex_cmds.h, src/testdir/test62.in,
	    src/testdir/test_argument_count.in,
	    src/testdir/test_argument_count.ok,
	    src/testdir/test_close_count.in,
	    src/testdir/test_command_count.in,
	    src/testdir/test_command_count.ok

Patch 7.4.566
Problem:    :argdo, :bufdo, :windo and :tabdo don't take a range.
Solution:   Support the range. (Marcin Szamotulski)
Files:	    runtime/doc/editing.txt, runtime/doc/tabpage.txt,
	    runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmds2.c,
	    src/testdir/test_command_count.in,
	    src/testdir/test_command_count.ok

Patch 7.4.567
Problem:    Non-ascii vertical separator characters are always redrawn.
Solution:   Compare only the one byte that's stored. (Thiago Padilha)
Files:	    src/screen.c

Patch 7.4.568
Problem:    Giving an error for ":0wincmd w" is a problem for some plugins.
Solution:   Allow the zero in the range. (Marcin Szamotulski)
Files:	    src/ex_docmd.c, src/testdir/test_command_count.ok

Patch 7.4.569 (after 7.4.468)
Problem:    Having CTRL-C interrupt or not does not check the mode of the
	    mapping. (Ingo Karkat)
Solution:   Use a bitmask with the map mode. (Christian Brabandt)
Files:	    src/getchar.c, src/structs.h, src/testdir/test_mapping.in,
	    src/testdir/test_mapping.ok, src/ui.c, src/globals.h

Patch 7.4.570
Problem:    Building with dynamic library does not work for Ruby 2.2.0
Solution:   Change #ifdefs and #defines. (Ken Takata)
Files:	    src/if_ruby.c

Patch 7.4.571 (after 7.4.569)
Problem:    Can't build with tiny features. (Ike Devolder)
Solution:   Add #ifdef.
Files:	    src/getchar.c

Patch 7.4.572
Problem:    Address type of :wincmd depends on the argument.
Solution:   Check the argument.
Files:	    src/ex_docmd.c, src/window.c, src/proto/window.pro

Patch 7.4.573 (after 7.4.569)
Problem:    Mapping CTRL-C in Visual mode doesn't work. (Ingo Karkat)
Solution:   Call get_real_state() instead of using State directly.
Files:	    src/ui.c, src/testdir/test_mapping.in, src/testdir/test_mapping.ok

Patch 7.4.574
Problem:    No error for eval('$').
Solution:   Check for empty name. (Yasuhiro Matsumoto)
Files:	    src/eval.c

Patch 7.4.575
Problem:    Unicode character properties are outdated.
Solution:   Update the tables with the latest version.
Files:	    src/mbyte.c

Patch 7.4.576
Problem:    Redrawing problem with 'relativenumber' and 'linebreak'.
Solution:   Temporarily reset 'linebreak' and restore it in more places.
	    (Christian Brabandt)
Files:	    src/normal.c

Patch 7.4.577
Problem:    Matching with a virtual column has a lot of overhead on very long
	    lines. (Issue 310)
Solution:   Bail out early if there can't be a match. (Christian Brabandt)
	    Also check for CTRL-C at every position.
Files:	    src/regexp_nfa.c

Patch 7.4.578
Problem:    Using getcurpos() after "$" in an empty line returns a negative
	    number.
Solution:   Don't add one when this would overflow. (Hirohito Higashi)
Files:	    src/eval.c

Patch 7.4.579
Problem:    Wrong cursor positioning when 'linebreak' is set and lines wrap. 
Solution:   Fix it. (Christian Brabandt)
Files:	    src/charset.c, src/screen.c

Patch 7.4.580
Problem:    ":52wincmd v" still gives an invalid range error. (Charles
	    Campbell)
Solution:   Skip over white space.
Files:	    src/ex_docmd.c

Patch 7.4.581
Problem:    Compiler warnings for uninitialized variables. (John Little)
Solution:   Initialize the variables.
Files:	    src/ops.c

Patch 7.4.582 (after 7.4.577)
Problem:    Can't match "%>80v" properly. (Axel Bender)
Solution:   Correctly handle ">". (Christian Brabandt)
Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.583
Problem:    With tiny features test 16 may fail.
Solution:   Source small.vim. (Christian Brabandt)
Files:	    src/testdir/test16.in

Patch 7.4.584
Problem:    With tiny features test_command_count may fail.
Solution:   Source small.vim. (Christian Brabandt)
Files:	    src/testdir/test_command_count.in

Patch 7.4.585
Problem:    Range for :bdelete does not work. (Ronald Schild)
Solution:   Also allow unloaded buffers.
Files:	    src/ex_cmds.h, src/testdir/test_command_count.in,
	    src/testdir/test_command_count.ok

Patch 7.4.586
Problem:    Parallel building of the documentation html files is not reliable. 
Solution:   Remove a cyclic dependency. (Reiner Herrmann)
Files:	    runtime/doc/Makefile

Patch 7.4.587
Problem:    Conceal does not work properly with 'linebreak'. (cs86661)
Solution:   Save and restore boguscols. (Christian Brabandt)
Files:	    src/screen.c, src/testdir/test_listlbr_utf8.in,
	    src/testdir/test_listlbr_utf8.ok

Patch 7.4.588
Problem:    ":0argedit foo" puts the new argument in the second place instead
	    of the first.
Solution:   Adjust the range type. (Ingo Karkat)
Files:	    src/ex_cmds.h, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test_argument_0count.in,
	    src/testdir/test_argument_0count.ok

Patch 7.4.589
Problem:    In the MS-Windows console Vim can't handle greek characters when
	    encoding is utf-8.
Solution:   Escape K_NUL. (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.4.590
Problem:    Using ctrl_x_mode as if it contains flags.
Solution:   Don't use AND with CTRL_X_OMNI. (Hirohito Higashi)
Files:	    src/edit.c

Patch 7.4.591 (after 7.4.587)
Problem:    test_listlbr_utf8 fails when the conceal feature is not available.
Solution:   Check for the conceal feature. (Kazunobu Kuriyama)
Files:	    src/testdir/test_listlbr_utf8.in

Patch 7.4.592
Problem:    When doing ":e foobar" when already editing "foobar" and 'buftype'
	    is "nofile" the buffer is cleared. (Xavier de Gaye)
Solution:   Do no clear the buffer.
Files:	    src/ex_cmds.c

Patch 7.4.593
Problem:    Crash when searching for "x\{0,90000}". (Dominique Pelle)
Solution:   Bail out from the NFA engine when the max limit is much higher
	    than the min limit.
Files:	    src/regexp_nfa.c, src/regexp.c, src/vim.h

Patch 7.4.594
Problem:    Using a block delete while 'breakindent' is set does not work
	    properly.
Solution:   Use "line" instead of "prev_pend" as the first argument to
	    lbr_chartabsize_adv().  (Hirohito Higashi)
Files:	    src/ops.c, src/testdir/test_breakindent.in,
	    src/testdir/test_breakindent.ok

Patch 7.4.595
Problem:    The test_command_count test fails when using Japanese.
Solution:   Force the language to C. (Hirohito Higashi)
Files:	    src/testdir/test_command_count.in

Patch 7.4.596 (after 7.4.592)
Problem:    Tiny build doesn't compile.  (Ike Devolder)
Solution:   Add #ifdef.
Files:	    src/ex_cmds.c

Patch 7.4.597
Problem:    Cannot change the result of systemlist().
Solution:   Initialize v_lock. (Yukihiro Nakadaira)
Files:	    src/eval.c

Patch 7.4.598
Problem:    ":tabdo windo echo 'hi'" causes "* register not to be changed.
	    (Salman Halim)
Solution:   Change how clip_did_set_selection is used and add
	    clipboard_needs_update and global_change_count.  (Christian
	    Brabandt)
Files:	    src/main.c, src/ui.c, src/testdir/test_eval.in,
	    src/testdir/test_eval.ok

Patch 7.4.599
Problem:    Out-of-memory error.
Solution:   Avoid trying to allocate a negative amount of memory, use size_t
	    instead of int. (Dominique Pelle)
Files:	    src/regexp_nfa.c

Patch 7.4.600
Problem:    Memory wasted in struct because of aligning.
Solution:   Split pos in lnum and col. (Dominique Pelle)
Files:	    src/regexp_nfa.c

Patch 7.4.601
Problem:    It is not possible to have feedkeys() insert characters.
Solution:   Add the 'i' flag.
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 7.4.602
Problem:    ":set" does not accept hex numbers as documented.
Solution:   Use vim_str2nr(). (ZyX)
Files:	    src/option.c, runtime/doc/options.txt

Patch 7.4.603
Problem:    'foldcolumn' may be set such that it fills the whole window, not
	    leaving space for text.
Solution:   Reduce the foldcolumn width when there is not sufficient room.
	    (idea by Christian Brabandt)
Files:	    src/screen.c

Patch 7.4.604
Problem:    Running tests changes viminfo.
Solution:   Disable viminfo.
Files:	    src/testdir/test_breakindent.in

Patch 7.4.605
Problem:    The # register is not writable, it cannot be restored after
	    jumping around.
Solution:   Make the # register writable. (Marcin Szamotulski)
Files:	    runtime/doc/change.txt, src/ops.c, src/buffer.c, src/globals.h

Patch 7.4.606
Problem:    May crash when using a small window.
Solution:   Avoid dividing by zero. (Christian Brabandt)
Files:	    src/normal.c

Patch 7.4.607 (after 7.4.598)
Problem:    Compiler warnings for unused variables.
Solution:   Move them inside #ifdef. (Kazunobu Kuriyama)
Files:	    src/ui.c

Patch 7.4.608 (after 7.4.598)
Problem:    test_eval fails when the clipboard feature is missing.
Solution:   Skip part of the test. Reduce the text used.
Files:	    src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.609
Problem:    For complicated list and dict use the garbage collector can run
	    out of stack space.
Solution:   Use a stack of dicts and lists to be marked, thus making it
	    iterative instead of recursive. (Ben Fritz)
Files:	    src/eval.c, src/if_lua.c, src/if_py_both.h, src/if_python.c,
	    src/if_python3.c, src/proto/eval.pro, src/proto/if_lua.pro,
	    src/proto/if_python.pro, src/proto/if_python3.pro, src/structs.h

Patch 7.4.610
Problem:    Some function headers may be missing from generated .pro files.
Solution:   Add PROTO to the #ifdef.
Files:	    src/option.c, src/syntax.c

Patch 7.4.611 (after 7.4.609)
Problem:    Syntax error.
Solution:   Change statement to return.
Files:	    src/if_python3.c

Patch 7.4.612
Problem:    test_eval fails on Mac.
Solution:   Use the * register instead of the + register. (Jun Takimoto)
Files:	    src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.613
Problem:    The NFA engine does not implement the 'redrawtime' time limit.
Solution:   Implement the time limit.
Files:	    src/regexp_nfa.c

Patch 7.4.614
Problem:    There is no test for what patch 7.4.601 fixes.
Solution:   Add a test. (Christian Brabandt)
Files:	    src/testdir/test_mapping.in, src/testdir/test_mapping.ok

Patch 7.4.615
Problem:    Vim hangs when freeing a lot of objects.
Solution:   Do not go back to the start of the list every time.  (Yasuhiro
	    Matsumoto and Ariya Mizutani)
Files:	    src/eval.c

Patch 7.4.616
Problem:    Cannot insert a tab in front of a block.
Solution:   Correctly compute aop->start. (Christian Brabandt)
Files:	    src/ops.c, src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.617
Problem:    Wrong ":argdo" range does not cause an error.
Solution:   Reset "cmd" to NULL. (Marcin Szamotulski, Ingo Karkat)
Files:	    src/ex_docmd.c

Patch 7.4.618 (after 7.4.609)
Problem:    luaV_setref() is missing a return statement. (Ozaki Kiichi)
Solution:   Put the return statement back.
Files:	    src/if_lua.c

Patch 7.4.619 (after 7.4.618)
Problem:    luaV_setref() not returning the correct value.
Solution:   Return one.
Files:	    src/if_lua.c

Patch 7.4.620
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize "did_free". (Ben Fritz)
Files:	    src/eval.c

Patch 7.4.621 (after 7.4.619)
Problem:    Returning 1 in the wrong function. (Raymond Ko)
Solution:   Return 1 in the right function (hopefully).
Files:	    src/if_lua.c

Patch 7.4.622
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
Files:	    src/regexp_nfa.c

Patch 7.4.623
Problem:    Crash with pattern: \(\)\{80000}  (Dominique Pelle)
Solution:   When the max limit is large fall back to the old engine.
Files:	    src/regexp_nfa.c

Patch 7.4.624
Problem:    May leak memory or crash when vim_realloc() returns NULL.
Solution:   Handle a NULL value properly. (Mike Williams)
Files:	    src/if_cscope.c, src/memline.c, src/misc1.c, src/netbeans.c

Patch 7.4.625
Problem:    Possible NULL pointer dereference.
Solution:   Check for NULL before using it. (Mike Williams)
Files:	    src/if_py_both.h

Patch 7.4.626
Problem:    MSVC with W4 gives useless warnings.
Solution:   Disable more warnings. (Mike Williams)
Files:	    src/vim.h

Patch 7.4.627
Problem:    The last screen cell is not updated.
Solution:   Respect the "tn" termcap feature. (Hayaki Saito)
Files:	    runtime/doc/term.txt, src/option.c, src/screen.c, src/term.c,
	    src/term.h

Patch 7.4.628
Problem:    Compiler warning for variable might be clobbered by longjmp.
Solution:   Add volatile. (Michael Jarvis)
Files:	    src/main.c

Patch 7.4.629
Problem:    Coverity warning for Out-of-bounds read.
Solution:   Increase MAXWLEN to 254. (Eliseo Martínez)
Files:	    src/spell.c

Patch 7.4.630
Problem:    When using Insert mode completion combined with autocommands the
	    redo command may not work.
Solution:   Do not save the redo buffer when executing autocommands. (Yasuhiro
	    Matsumoto)
Files:	    src/fileio.c

Patch 7.4.631
Problem:    The default conceal character is documented to be a space but it's
	    initially a dash. (Christian Brabandt)
Solution:   Make the initial value a space.
Files:	    src/globals.h

Patch 7.4.632 (after 7.4.592)
Problem:    7.4.592 breaks the netrw plugin, because the autocommands are
	    skipped.
Solution:   Roll back the change.
Files:	    src/ex_cmds.c

Patch 7.4.633
Problem:    After 7.4.630 the problem persists.
Solution:   Also skip redo when calling a user function.
Files:	    src/eval.c

Patch 7.4.634
Problem:    Marks are not restored after redo + undo.
Solution:   Fix the way marks are restored. (Olaf Dabrunz)
Files:	    src/undo.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test_marks.in, src/testdir/test_marks.ok

Patch 7.4.635
Problem:    If no NL or CR is found in the first block of a file then the
	    'fileformat' may be set to "mac". (Issue 77)
Solution:   Check if a CR was found. (eswald)
Files:	    src/fileio.c

Patch 7.4.636
Problem:    A search with end offset gets stuck at end of file. (Gary Johnson)
Solution:   When a search doesn't move the cursor repeat it with a higher
	    count. (Christian Brabandt)
Files:	    src/normal.c, src/testdir/test44.in, src/testdir/test44.ok

Patch 7.4.637
Problem:    Incorrectly read the number of buffer for which an autocommand
	    should be registered.
Solution:   Reverse check for "<buffer=abuf>". (Lech Lorens)
Files:	    src/fileio.c

Patch 7.4.638
Problem:    Can't build with Lua 5.3 on Windows.
Solution:   use luaL_optinteger() instead of LuaL_optlong(). (Ken Takata)
Files:	    src/if_lua.c

Patch 7.4.639
Problem:    Combination of linebreak and conceal doesn't work well.
Solution:   Fix the display problems. (Christian Brabandt)
Files:	    src/screen.c, src/testdir/test88.in, src/testdir/test88.ok,
	    src/testdir/test_listlbr_utf8.in, src/testdir/test_listlbr_utf8.ok

Patch 7.4.640
Problem:    After deleting characters in Insert mode such that lines are
	    joined undo does not work properly. (issue 324)
Solution:   Use Insstart instead of Insstart_orig. (Christian Brabandt)
Files:	    src/edit.c

Patch 7.4.641
Problem:    The tabline menu was using ":999tabnew" which is now invalid.
Solution:   Use ":$tabnew" instead. (Florian Degner)
Files:	    src/normal.c

Patch 7.4.642
Problem:    When using "gf" escaped spaces are not handled.
Solution:   Recognize escaped spaces.
Files:	    src/vim.h, src/normal.h, src/window.c, src/misc2.c

Patch 7.4.643
Problem:    Using the default file format for Mac files. (Issue 77)
Solution:   Reset the try_mac counter in the right place. (Oswald)
Files:	    src/fileio.c, src/testdir/test30.in, src/testdir/test30.ok

Patch 7.4.644
Problem:    Stratus VOS doesn't have sync().
Solution:   Use fflush(). (Karli Aurelia)
Files:	    src/memfile.c

Patch 7.4.645
Problem:    When splitting the window in a BufAdd autocommand while still in
	    the first, empty buffer the window count is wrong.
Solution:   Do not reset b_nwindows to zero and don't increment it.
Files:	    src/buffer.c, src/ex_cmds.c

Patch 7.4.646
Problem:    ":bufdo" may start at a deleted buffer.
Solution:   Find the first not deleted buffer. (Shane Harper)
Files:	    src/ex_cmds2.c, src/testdir/test_command_count.in,
	    src/testdir/test_command_count.ok

Patch 7.4.647
Problem:    After running the tests on MS-Windows many files differ from their
	    originals as they were checked out.
Solution:   Use a temp directory for executing the tests. (Ken Takata, Taro
	    Muraoka)
Files:	    src/testdir/Make_dos.mak

Patch 7.4.648 (after 7.4.647)
Problem:    Tests broken on MS-Windows.
Solution:   Delete wrong copy line. (Ken Takata)
Files:	    src/testdir/Make_dos.mak

Patch 7.4.649
Problem:    Compiler complains about ignoring return value of fwrite().
	    (Michael Jarvis)
Solution:   Add (void).
Files:	    src/misc2.c

Patch 7.4.650
Problem:    Configure check may fail because the dl library is not used.
Solution:   Put "-ldl" in LIBS rather than LDFLAGS. (Ozaki Kiichi)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.651 (after 7.4.582)
Problem:    Can't match "%>80v" properly for multi-byte characters.
Solution:   Multiply the character number by the maximum number of bytes in a
	    character. (Yasuhiro Matsumoto)
Files:	    src/regexp_nfa.c

Patch 7.4.652
Problem:    Xxd lacks a few features.
Solution:   Use 8 characters for the file position.  Add the -e and -o
	    arguments. (Vadim Vygonets)
Files:	    src/xxd/xxd.c, runtime/doc/xxd.1

Patch 7.4.653
Problem:    Insert mode completion with complete() may have CTRL-L work like
	    CTRL-P.
Solution:   Handle completion with complete() differently. (Yasuhiro
	    Matsumoto, Christian Brabandt, Hirohito Higashi)
Files:	    src/edit.c

Patch 7.4.654
Problem:    glob() and globpath() cannot include links to non-existing files.
	    (Charles Campbell)
Solution:   Add an argument to include all links with glob(). (James McCoy)
	    Also for globpath().
Files:	    src/vim.h, src/eval.c, src/ex_getln.c

Patch 7.4.655
Problem:    Text deleted by "dit" depends on indent of closing tag.
	    (Jan Parthey)
Solution:   Do not adjust oap->end in do_pending_operator(). (Christian
	    Brabandt)
Files:	    src/normal.c, src/search.c, src/testdir/test53.in,
	    src/testdir/test53.ok

Patch 7.4.656 (after 7.4.654)
Problem:    Missing changes for glob() in one file.
Solution:   Add the missing changes.
Files:	    src/misc1.c

Patch 7.4.657 (after 7.4.656)
Problem:    Compiler warnings for pointer mismatch.
Solution:   Add a typecast. (John Marriott)
Files:	    src/misc1.c

Patch 7.4.658
Problem:    'formatexpr' is evaluated too often.
Solution:   Only invoke it when beyond the 'textwidth' column, as it is
	    documented. (James McCoy)
Files:	    src/edit.c

Patch 7.4.659
Problem:    When 'ruler' is set the preferred column is reset. (Issue 339)
Solution:   Don't set curswant when redrawing the status lines.
Files:	    src/option.c

Patch 7.4.660
Problem:    Using freed memory when g:colors_name is changed in the colors
	    script. (oni-link)
Solution:   Make a copy of the variable value.
Files:	    src/syntax.c

Patch 7.4.661
Problem:    Using "0 CTRL-D" in Insert mode may have CursorHoldI interfere.
	    (Gary Johnson)
Solution:   Don't store K_CURSORHOLD as the last character. (Christian
	    Brabandt)
Files:	    src/edit.c

Patch 7.4.662
Problem:    When 'M' is in the 'cpo' option then selecting a text object in
	    parentheses does not work correctly.
Solution:   Keep 'M' in 'cpo' when finding a match. (Hirohito Higashi)
Files:	    src/search.c, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
	    src/testdir/Makefile, src/testdir/test_textobjects.in,
	    src/testdir/test_textobjects.ok

Patch 7.4.663
Problem:    When using netbeans a buffer is not found in another tab.
Solution:   When 'switchbuf' is set to "usetab" then switch to another tab
	    when possible. (Xavier de Gaye)
Files:	    src/netbeans.c

Patch 7.4.664
Problem:    When 'compatible' is reset 'numberwidth' is set to 4, but the
	    effect doesn't show until a change is made.
Solution:   Check if 'numberwidth' changed. (Christian Brabandt)
Files:	    src/screen.c, src/structs.h

Patch 7.4.665
Problem:    'linebreak' does not work properly with multi-byte characters.
Solution:   Compute the pointer offset with mb_head_off().  (Yasuhiro
	    Matsumoto)
Files:	    src/screen.c

Patch 7.4.666
Problem:    There is a chance that Vim may lock up.
Solution:   Handle timer events differently. (Aaron Burrow)
Files:	    src/os_unix.c

Patch 7.4.667
Problem:    'colorcolumn' isn't drawn in a closed fold while 'cursorcolumn'
	    is. (Carlos Pita)
Solution:   Make it consistent. (Christian Brabandt)
Files:	    src/screen.c

Patch 7.4.668
Problem:    Can't use a glob pattern as a regexp pattern.
Solution:   Add glob2regpat(). (Christian Brabandt)
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 7.4.669
Problem:    When netbeans is active the sign column always shows up.
Solution:   Only show the sign column once a sign has been added. (Xavier de
	    Gaye)
Files:	    src/buffer.c, src/edit.c, src/move.c, src/netbeans.c,
	    src/screen.c, src/structs.h

Patch 7.4.670
Problem:    Using 'cindent' for Javascript is less than perfect.
Solution:   Improve indenting of continuation lines. (Hirohito Higashi)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.671 (after 7.4.665)
Problem:    Warning for shadowing a variable.
Solution:   Rename off to mb_off. (Kazunobu Kuriyama)
Files:	    src/screen.c

Patch 7.4.672
Problem:    When completing a shell command, directories in the current
	    directory are not listed.
Solution:   When "." is not in $PATH also look in the current directory for
	    directories.
Files:	    src/ex_getln.c, src/vim.h, src/misc1.c, src/eval.c,
	    src/os_amiga.c, src/os_msdos.c, src/os_unix.c, src/os_vms.c,
	    src/proto/os_amiga.pro, src/proto/os_msdos.pro,
	    src/proto/os_unix.pro, src/proto/os_win32.pro

Patch 7.4.673
Problem:    The first syntax entry gets sequence number zero, which doesn't
	    work. (Clinton McKay)
Solution:   Start at number one. (Bjorn Linse)
Files:	    src/syntax.c

Patch 7.4.674 (after 7.4.672)
Problem:    Missing changes in one file.
Solution:   Also change the win32 file.
Files:	    src/os_win32.c

Patch 7.4.675
Problem:    When a FileReadPost autocommand moves the cursor inside a line it
	    gets moved back.
Solution:   When checking whether an autocommand moved the cursor store the
	    column as well. (Christian Brabandt)
Files:	    src/ex_cmds.c

Patch 7.4.676
Problem:    On Mac, when not using the default Python framework configure
	    doesn't do the right thing.
Solution:   Use a linker search path. (Kazunobu Kuriyama)
Files:	    src/configure.in, src/auto/configure

Patch 7.4.677 (after 7.4.676)
Problem:    Configure fails when specifying a python-config-dir. (Lcd)
Solution:   Check if PYTHONFRAMEWORKPREFIX is set.
Files:	    src/configure.in, src/auto/configure

Patch 7.4.678
Problem:    When using --remote the directory may end up being wrong.
Solution:   Use localdir() to find out what to do. (Xaizek)
Files:	    src/main.c

Patch 7.4.679
Problem:    Color values greater than 255 cause problems on MS-Windows.
Solution:   Truncate to 255 colors. (Yasuhiro Matsumoto)
Files:	    src/os_win32.c

Patch 7.4.680
Problem:    CTRL-W in Insert mode does not work well for multi-byte
	    characters.
Solution:   Use mb_get_class(). (Yasuhiro Matsumoto)
Files:	    src/edit.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/Makefile,
	    src/testdir/test_erasebackword.in,
	    src/testdir/test_erasebackword.ok,

Patch 7.4.681
Problem:    MS-Windows: When Vim is minimized the window height is computed
	    incorrectly.
Solution:   When minimized use the previously computed size. (Ingo Karkat)
Files:	    src/gui_w32.c

Patch 7.4.682
Problem:    The search highlighting and match highlighting replaces the
	    cursorline highlighting, this doesn't look good.
Solution:   Combine the highlighting. (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 7.4.683
Problem:    Typo in the vimtutor command.
Solution:   Fix the typo. (Corey Farwell, github pull 349)
Files:	    vimtutor.com

Patch 7.4.684
Problem:    When starting several Vim instances in diff mode, the temp files
	    used may not be unique. (Issue 353)
Solution:   Add an argument to vim_tempname() to keep the file.
Files:	    src/diff.c, src/eval.c, src/ex_cmds.c, src/fileio.c,
	    src/hardcopy.c, src/proto/fileio.pro, src/if_cscope.c,
	    src/memline.c, src/misc1.c, src/os_unix.c, src/quickfix.c,
	    src/spell.c

Patch 7.4.685
Problem:    When there are illegal utf-8 characters the old regexp engine may
	    go past the end of a string.
Solution:   Only advance to the end of the string. (Dominique Pelle)
Files:	    src/regexp.c

Patch 7.4.686
Problem:    "zr" and "zm" do not take a count.
Solution:   Implement the count, restrict the fold level to the maximum
	    nesting depth.  (Marcin Szamotulski)
Files:	    runtime/doc/fold.txt, src/normal.c

Patch 7.4.687
Problem:    There is no way to use a different in Replace mode for a terminal.
Solution:   Add t_SR. (Omar Sandoval)
Files:	    runtime/doc/options.txt, runtime/doc/term.txt,
	    runtime/syntax/vim.vim, src/option.c, src/term.c, src/term.h

Patch 7.4.688
Problem:    When "$" is in 'cpo' the popup menu isn't undrawn correctly.
	    (Issue 166)
Solution:   When using the popup menu remove the "$".
Files:	    src/edit.c

Patch 7.4.689
Problem:    On MS-Windows, when 'autochdir' is set, diff mode with files in
	    different directories does not work. (Axel Bender)
Solution:   Remember the current directory and use it where needed. (Christian
	    Brabandt)
Files:	    src/main.c

Patch 7.4.690
Problem:    Memory access errors when changing indent in Ex mode. Also missing
	    redraw when using CTRL-U. (Knil Ino)
Solution:   Update pointers after calling ga_grow().
Files:	    src/ex_getln.c

Patch 7.4.691 (after 7.4.689)
Problem:    Can't build with MzScheme.
Solution:   Change "cwd" into the global variable "start_dir".
Files:	    src/main.c

Patch 7.4.692
Problem:    Defining SOLARIS for no good reason. (Danek Duvall)
Solution:   Remove it.
Files:	    src/os_unix.h

Patch 7.4.693
Problem:    Session file is not correct when there are multiple tab pages.
Solution:   Reset the current window number for each tab page. (Jacob Niehus)
Files:      src/ex_docmd.c

Patch 7.4.694
Problem:    Running tests changes the .viminfo file.
Solution:   Disable viminfo in the text objects test.
Files:      src/testdir/test_textobjects.in

Patch 7.4.695
Problem:    Out-of-bounds read, detected by Coverity.
Solution:   Remember the value of cmap for the first matching encoding.  Reset
            cmap to that value if first matching encoding is going to be used.
            (Eliseo Martínez)
Files:      src/hardcopy.c

Patch 7.4.696
Problem:    Not freeing memory when encountering an error.
Solution:   Free the stack before returning. (Eliseo Martínez)
Files:      src/regexp_nfa.c

Patch 7.4.697
Problem:    The filename used for ":profile" must be given literally.
Solution:   Expand "~" and environment variables. (Marco Hinz)
Files:      src/ex_cmds2.c

Patch 7.4.698
Problem:    Various problems with locked and fixed lists and dictionaries.
Solution:   Disallow changing locked items, fix a crash, add tests. (Olaf
            Dabrunz)
Files:      src/structs.h, src/eval.c, src/testdir/test55.in,
            src/testdir/test55.ok

Patch 7.4.699
Problem:    E315 when trying to delete a fold. (Yutao Yuan)
Solution:   Make sure the fold doesn't go beyond the last buffer line.
            (Christian Brabandt)
Files:      src/fold.c

Patch 7.4.700
Problem:    Fold can't be opened after ":move". (Ein Brown)
Solution:   Delete the folding information and update it afterwards.
            (Christian Brabandt)
Files:      src/ex_cmds.c, src/fold.c, src/testdir/test45.in,
            src/testdir/test45.ok

Patch 7.4.701
Problem:    Compiler warning for using uninitialized variable. (Yasuhiro
            Matsumoto)
Solution:   Initialize it.
Files:      src/hardcopy.c

Patch 7.4.702
Problem:    Joining an empty list does unnecessary work.
Solution:   Let join() return early. (Marco Hinz)
Files:      src/eval.c

Patch 7.4.703
Problem:    Compiler warning for start_dir unused when building unittests.
Solution:   Move start_dir inside the #ifdef.
Files:      src/main.c

Patch 7.4.704
Problem:    Searching for a character matches an illegal byte and causes
            invalid memory access. (Dominique Pelle)
Solution:   Do not match an invalid byte when search for a character in a
            string.  Fix equivalence classes using negative numbers, which
            result in illegal bytes.
Files:      src/misc2.c, src/regexp.c, src/testdir/test44.in

Patch 7.4.705
Problem:    Can't build with Ruby 2.2.
Solution:   Add #ifdefs to handle the incompatible change. (Andrei Olsen)
Files:      src/if_ruby.c

Patch 7.4.706
Problem:    Window drawn wrong when 'laststatus' is zero and there is a
            command-line window. (Yclept Nemo)
Solution:   Set the status height a bit later. (Christian Brabandt)
Files:      src/window.c

Patch 7.4.707
Problem:    Undo files can have their executable bit set.
Solution:   Strip of the executable bit. (Mikael Berthe)
Files:      src/undo.c

Patch 7.4.708
Problem:    gettext() is called too often.
Solution:   Do not call gettext() for messages until they are actually used.
            (idea by Yasuhiro Matsumoto)
Files:      src/eval.c

Patch 7.4.709
Problem:    ":tabmove" does not work as documented.
Solution:   Make it work consistently.  Update documentation and add tests.
            (Hirohito Higashi)
Files:      src/window.c, runtime/doc/tabpage.txt, src/ex_docmd.c,
            src/testdir/test62.in, src/testdir/test62.ok

Patch 7.4.710
Problem:    It is not possible to make spaces visible in list mode.
Solution:   Add the "space" item to 'listchars'. (David Bürgin, issue 350)
Files:      runtime/doc/options.txt, src/globals.h, src/message.h,
            src/screen.c, src/testdir/test_listchars.in,
            src/testdir/test_listchars.ok, src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile

Patch 7.4.711 (after 7.4.710)
Problem:    Missing change in one file.
Solution:   Also change option.c
Files:      src/option.c

Patch 7.4.712 (after 7.4.710)
Problem:    Missing change in another file.
Solution:   Also change message.c
Files:      src/message.c

Patch 7.4.713
Problem:    Wrong condition for #ifdef.
Solution:   Change USR_EXRC_FILE2 to USR_VIMRC_FILE2. (Mikael Fourrier)
Files:      src/os_unix.h

Patch 7.4.714
Problem:    Illegal memory access when there are illegal bytes.
Solution:   Check the byte length of the character. (Dominique Pelle)
Files:      src/regexp.c

Patch 7.4.715
Problem:    Invalid memory access when there are illegal bytes.
Solution:   Get the length from the text, not from the character. (Dominique
            Pelle)
Files:      src/regexp_nfa.c

Patch 7.4.716
Problem:    When using the 'c' flag of ":substitute" and selecting "a" or "l"
            at the prompt the flags are not remembered for ":&&". (Ingo
            Karkat)
Solution:   Save the flag values and restore them. (Hirohito Higashi)
Files:      src/ex_cmds.c

Patch 7.4.717
Problem:    ":let list += list" can change a locked list.
Solution:   Check for the lock earlier. (Olaf Dabrunz)
Files:      src/eval.c, src/testdir/test55.in, src/testdir/test55.ok

Patch 7.4.718
Problem:    Autocommands triggered by quickfix cannot get the current title
            value.
Solution:   Set w:quickfix_title earlier. (Yannick)
            Also move the check for a title into the function.
Files:      src/quickfix.c

Patch 7.4.719
Problem:    Overflow when adding MAXCOL to a pointer.
Solution:   Subtract pointers instead. (James McCoy)
Files:      src/screen.c

Patch 7.4.720
Problem:    Can't build with Visual Studio 2015.
Solution:   Recognize the "version 14" numbers and omit /nodefaultlib when
            appropriate. (Paul Moore)
Files:      src/Make_mvc.mak

Patch 7.4.721
Problem:    When 'list' is set Visual mode does not highlight anything in
            empty lines. (mgaleski)
Solution:   Check the value of lcs_eol in another place. (Christian Brabandt)
Files:      src/screen.c

Patch 7.4.722
Problem:    0x202f is not recognized as a non-breaking space character.
Solution:   Add 0x202f to the list. (Christian Brabandt)
Files:      runtime/doc/options.txt, src/message.c, src/screen.c

Patch 7.4.723
Problem:    For indenting, finding the C++ baseclass can be slow.
Solution:   Cache the result. (Hirohito Higashi)
Files:      src/misc1.c

Patch 7.4.724
Problem:    Vim icon does not show in Windows context menu. (issue 249)
Solution:   Load the icon in GvimExt.
Files:      src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h

Patch 7.4.725
Problem:    ":call setreg('"', [])" reports an internal error.
Solution:   Make the register empty. (Yasuhiro Matsumoto)
Files:      src/ops.c

Patch 7.4.726 (after 7.4.724)
Problem:    Cannot build GvimExt.
Solution:   Set APPVER to 5.0.  (KF Leong)
Files:      src/GvimExt/Makefile

Patch 7.4.727 (after 7.4.724)
Problem:    Cannot build GvimExt with MingW.
Solution:   Add -lgdi32.  (KF Leong)
Files:      src/GvimExt/Make_ming.mak

Patch 7.4.728
Problem:    Can't build with some version of Visual Studio 2015.
Solution:   Recognize another version 14 number. (Sinan)
Files:      src/Make_mvc.mak

Patch 7.4.729 (after 7.4.721)
Problem:    Occasional crash with 'list' set.
Solution:   Fix off-by-one error. (Christian Brabandt)
Files:      src/screen.c

Patch 7.4.730
Problem:    When setting the crypt key and using a swap file, text may be
            encrypted twice or unencrypted text remains in the swap file.
            (Issue 369)
Solution:   Call ml_preserve() before re-encrypting.  Set correct index for
            next pointer block.
Files:      src/memfile.c, src/memline.c, src/proto/memline.pro, src/option.c

Patch 7.4.731
Problem:    The tab menu shows "Close tab" even when it doesn't work.
Solution:   Don't show "Close tab" for the last tab. (John Marriott)
Files:      src/gui_w48.c, src/gui_gtk_x11.c, src/gui_mac.c, src/gui_motif.c

Patch 7.4.732
Problem:    The cursor line is not always updated for the "O" command.
Solution:   Reset the VALID_CROW flag. (Christian Brabandt)
Files:      src/normal.c

Patch 7.4.733
Problem:    test_listchars breaks on MS-Windows. (Kenichi Ito)
Solution:   Set fileformat to "unix". (Christian Brabandt)
Files:      src/testdir/test_listchars.in

Patch 7.4.734
Problem:    ml_get error when using "p" in a Visual selection in the last
            line.
Solution:   Change the behavior at the last line. (Yukihiro Nakadaira)
Files:      src/normal.c, src/ops.c, src/testdir/test94.in,
            src/testdir/test94.ok

Patch 7.4.735
Problem:    Wrong argument for sizeof().
Solution:   Use a pointer argument. (Chris Hall)
Files:      src/eval.c

Patch 7.4.736
Problem:    Invalid memory access.
Solution:   Avoid going over the end of a NUL terminated string. (Dominique
            Pelle)
Files:      src/regexp.c

Patch 7.4.737
Problem:    On MS-Windows vimgrep over arglist doesn't work (Issue 361)
Solution:   Only escape backslashes in ## expansion when it is not used as the
            path separator. (James McCoy)
Files:      src/ex_docmd.c

Patch 7.4.738 (after 7.4.732)
Problem:    Can't compile without the syntax highlighting feature.
Solution:   Add #ifdef around use of w_p_cul. (Hirohito Higashi)
Files:      src/normal.c, src/screen.c

Patch 7.4.739
Problem:    In a string "\U" only takes 4 digits, while after CTRL-V U eight
            digits can be used.
Solution:   Make "\U" also take eight digits. (Christian Brabandt)
Files:      src/eval.c

Patch 7.4.740
Problem:    ":1quit" works like ":.quit". (Bohr Shaw)
Solution:   Don't exit Vim when a range is specified. (Christian Brabandt)
Files:      src/ex_docmd.c, src/testdir/test13.in, src/testdir/test13.ok

Patch 7.4.741
Problem:    When using += with ":set" a trailing comma is not recognized.
            (Issue 365)
Solution:   Don't add a second comma. Add a test. (partly by Christian
            Brabandt)
Files:      src/option.c, src/testdir/test_set.in, src/testdir/test_set.ok,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.742
Problem:    Cannot specify a vertical split when loading a buffer for a
            quickfix command.
Solution:   Add the "vsplit" value to 'switchbuf'. (Brook Hong)
Files:      runtime/doc/options.txt, src/buffer.c, src/option.h

Patch 7.4.743
Problem:    "p" in Visual mode causes an unexpected line split.
Solution:   Advance the cursor first. (Yukihiro Nakadaira)
Files:      src/ops.c, src/testdir/test94.in, src/testdir/test94.ok

Patch 7.4.744
Problem:    No tests for Ruby and Perl.
Solution:   Add minimal tests. (Ken Takata)
Files:      src/testdir/test_perl.in, src/testdir/test_perl.ok,
            src/testdir/test_ruby.in, src/testdir/test_ruby.ok,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.745
Problem:    The entries added by matchaddpos() are returned by getmatches()
            but can't be set with setmatches(). (Lcd)
Solution:   Fix setmatches(). (Christian Brabandt)
Files:      src/eval.c, src/testdir/test63.in, src/testdir/test63.ok

Patch 7.4.746
Problem:    ":[count]tag" is not always working. (cs86661)
Solution:   Set cur_match a bit later. (Hirohito Higashi)
Files:      src/tag.c,

Patch 7.4.747
Problem:    ":cnext" may jump to the wrong column when setting
            'virtualedit=all' (cs86661)
Solution:   Reset the coladd field. (Hirohito Higashi)
Files:      src/quickfix.c

Patch 7.4.748 (after 7.4.745)
Problem:    Buffer overflow.
Solution:   Make the buffer larger. (Kazunobu Kuriyama)
Files:      src/eval.c

Patch 7.4.749 (after 7.4.741)
Problem:    For some options two consecutive commas are OK. (Nikolai Pavlov)
Solution:   Add the P_ONECOMMA flag.
Files:      src/option.c

Patch 7.4.750
Problem:    Cannot build with clang 3.5 on Cygwin with perl enabled.
Solution:   Strip "-fdebug-prefix-map" in configure. (Ken Takata)
Files:      src/configure.in, src/auto/configure

Patch 7.4.751
Problem:    It is not obvious how to enable the address sanitizer.
Solution:   Add commented-out flags in the Makefile. (Dominique Pelle)
            Also add missing test targets.
Files:      src/Makefile

Patch 7.4.752
Problem:    Unicode 8.0 not supported.
Solution:   Update tables for Unicode 8.0.  Avoid E36 when running the script.
            (James McCoy)
Files:      runtime/tools/unicode.vim, src/mbyte.c

Patch 7.4.753
Problem:    Appending in Visual mode with 'linebreak' set does not work
            properly.  Also when 'selection' is "exclusive". (Ingo Karkat)
Solution:   Recalculate virtual columns. (Christian Brabandt)
Files:      src/normal.c, src/testdir/test_listlbr.in,
            src/testdir/test_listlbr.ok, src/testdir/test_listlbr_utf8.in,
            src/testdir/test_listlbr_utf8.ok

Patch 7.4.754
Problem:    Using CTRL-A in Visual mode does not work well. (Gary Johnson)
Solution:   Make it increment all numbers in the Visual area. (Christian
            Brabandt)
Files:      runtime/doc/change.txt, src/normal.c, src/ops.c,
            src/proto/ops.pro, src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile, src/testdir/test_increment.in,
            src/testdir/test_increment.ok

Patch 7.4.755
Problem:    It is not easy to count the number of characters.
Solution:   Add the skipcc argument to strchars(). (Hirohito Higashi, Ken
            Takata)
Files:      runtime/doc/eval.txt, src/eval.c, src/testdir/test_utf8.in,
            src/testdir/test_utf8.ok

Patch 7.4.756
Problem:    Can't use strawberry Perl 5.22 x64 on MS-Windows.
Solution:   Add new defines and #if. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/if_perl.xs

Patch 7.4.757
Problem:    Cannot detect the background color of a terminal.
Solution:   Add T_RBG to request the background color if possible. (Lubomir
            Rintel)
Files:      src/main.c, src/term.c, src/term.h, src/proto/term.pro

Patch 7.4.758
Problem:    When 'conceallevel' is 1 and quitting the command-line window with
            CTRL-C the first character ':' is erased.
Solution:   Reset 'conceallevel' in the command-line window. (Hirohito
            Higashi)
Files:      src/ex_getln.c

Patch 7.4.759
Problem:    Building with Lua 5.3 doesn't work, symbols have changed.
Solution:   Use the new names for the new version. (Felix Schnizlein)
Files:      src/if_lua.c

Patch 7.4.760
Problem:    Spelling mistakes are not displayed after ":syn spell".
Solution:   Force a redraw after ":syn spell" command. (Christian Brabandt)
Files:      src/syntax.c

Patch 7.4.761 (after 7.4.757)
Problem:    The request-background termcode implementation is incomplete.
Solution:   Add the missing pieces.
Files:      src/option.c, src/term.c

Patch 7.4.762 (after 7.4.757)
Problem:    Comment for may_req_bg_color() is wrong. (Christ van Willegen)
Solution:   Rewrite the comment.
Files:      src/term.c

Patch 7.4.763 (after 7.4.759)
Problem:    Building with Lua 5.1 doesn't work.
Solution:   Define lua_replace and lua_remove. (KF Leong)
Files:      src/if_lua.c

Patch 7.4.764 (after 7.4.754)
Problem:    test_increment fails on MS-Windows. (Ken Takata)
Solution:   Clear Visual mappings. (Taro Muraoka)
Files:      src/testdir/test_increment.in

Patch 7.4.765 (after 7.4.754)
Problem:    CTRL-A and CTRL-X in Visual mode do not always work well.
Solution:   Improvements for increment and decrement. (Christian Brabandt)
Files:      src/normal.c, src/ops.c, src/testdir/test_increment.in,
            src/testdir/test_increment.ok

Patch 7.4.766 (after 7.4.757)
Problem:    Background color check does not work on Tera Term.
Solution:   Also recognize ST as a termination character. (Hirohito Higashi)
Files:      src/term.c

Patch 7.4.767
Problem:    --remote-tab-silent can fail on MS-Windows.
Solution:   Use single quotes to avoid problems with backslashes. (Idea by
            Weiyong Mao)
Files:      src/main.c

Patch 7.4.768
Problem:    :diffoff only works properly once.
Solution:   Also make :diffoff work when used a second time. (Olaf Dabrunz)
Files:      src/diff.c

Patch 7.4.769 (after 7.4 768)
Problem:    Behavior of :diffoff is not tested.
Solution:   Add a bit of testing. (Olaf Dabrunz)
Files:      src/testdir/test47.in, src/testdir/test47.ok

Patch 7.4.770 (after 7.4.766)
Problem:    Background color response with transparency is not ignored.
Solution:   Change the way escape sequences are recognized. (partly by
            Hirohito Higashi)
Files:      src/ascii.h, src/term.c

Patch 7.4.771
Problem:    Search does not handle multi-byte character at the start position
            correctly.
Solution:   Take byte size of character into account. (Yukihiro Nakadaira)
Files:      src/search.c, src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile, src/testdir/test_search_mbyte.in,
            src/testdir/test_search_mbyte.ok

Patch 7.4.772
Problem:    Racket 6.2 is not supported on MS-Windows.
Solution:   Check for the "racket" subdirectory. (Weiyong Mao)
Files:      src/Make_mvc.mak, src/if_mzsch.c

Patch 7.4.773
Problem:    'langmap' is used in command-line mode when checking for mappings.
            Issue 376.
Solution:   Do not use 'langmap' in command-line mode. (Larry Velazquez)
Files:      src/getchar.c, src/testdir/test_mapping.in,
            src/testdir/test_mapping.ok

Patch 7.4.774
Problem:    When using the CompleteDone autocommand event it's difficult to
            get to the completed items.
Solution:   Add the v:completed_items variable. (Shougo Matsu)
Files:      runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/edit.c,
            src/eval.c, src/macros.h, src/proto/eval.pro, src/vim.h

Patch 7.4.775
Problem:    It is not possible to avoid using the first item of completion.
Solution:   Add the "noinsert" and "noselect" values to 'completeopt'. (Shougo
            Matsu)
Files:      runtime/doc/options.txt, src/edit.c, src/option.c

Patch 7.4.776
Problem:    Equivalence class for 'd' does not work correctly.
Solution:   Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
Files:      src/regexp.c, src/regexp_nfa.c

Patch 7.4.777
Problem:    The README file doesn't look nice on github.
Solution:   Add a markdown version of the README file.
Files:      Filelist, README.md

Patch 7.4.778
Problem:    Coverity warns for uninitialized variable.
Solution:   Change condition of assignment.
Files:      src/ops.c

Patch 7.4.779
Problem:    Using CTRL-A in a line without a number moves the cursor. May
            cause a crash when at the start of the line. (Urtica Dioica)
Solution:   Do not move the cursor if no number was changed.
Files:      src/ops.c

Patch 7.4.780
Problem:    Compiler complains about uninitialized variable and clobbered
            variables.
Solution:   Add Initialization.  Make variables static.
Files:      src/ops.c, src/main.c

Patch 7.4.781
Problem:    line2byte() returns one less when 'bin' and 'noeol' are set.
Solution:   Only adjust the size for the last line. (Rob Wu)
Files:      src/memline.c

Patch 7.4.782
Problem:    Still a few problems with CTRL-A and CTRL-X in Visual mode.
Solution:   Fix the reported problems. (Christian Brabandt)
Files:      src/charset.c, src/eval.c, src/ex_cmds.c, src/ex_getln.c,
            src/misc2.c, src/normal.c, src/ops.c, src/option.c,
            src/proto/charset.pro, src/testdir/test_increment.in,
            src/testdir/test_increment.ok

Patch 7.4.783
Problem:    copy_chars() and copy_spaces() are inefficient.
Solution:   Use memset() instead. (Dominique Pelle)
Files:      src/ex_getln.c, src/misc2.c, src/ops.c, src/proto/misc2.pro,
            src/screen.c

Patch 7.4.784
Problem:    Using both "noinsert" and "noselect" in 'completeopt' does not
            work properly.
Solution:   Change the ins_complete() calls. (Ozaki Kiichi)
Files:      src/edit.c

Patch 7.4.785
Problem:    On some systems automatically adding the missing EOL causes
            problems. Setting 'binary' has too many side effects.
Solution:   Add the 'fixeol' option, default on. (Pavel Samarkin)
Files:      src/buffer.c, src/fileio.c, src/memline.c, src/netbeans.c,
            src/ops.c, src/option.c, src/option.h, src/os_unix.c,
            src/os_win32.c, src/structs.h, src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile, src/testdir/test_fixeol.in,
            src/testdir/test_fixeol.ok, runtime/doc/options.txt,
            runtime/optwin.vim

Patch 7.4.786
Problem:    It is not possible for a plugin to adjust to a changed setting.
Solution:   Add the OptionSet autocommand event. (Christian Brabandt)
Files:      runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/eval.c,
            src/fileio.c, src/option.c, src/proto/eval.pro,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile,
            src/testdir/test_autocmd_option.in,
            src/testdir/test_autocmd_option.ok, src/vim.h

Patch 7.4.787 (after 7.4.786)
Problem:    snprintf() isn't available everywhere.
Solution:   Use vim_snprintf(). (Ken Takata)
Files:      src/option.c

Patch 7.4.788 (after 7.4.787)
Problem:    Can't build without the crypt feature. (John Marriott)
Solution:   Add #ifdef's.
Files:      src/option.c

Patch 7.4.789 (after 7.4.788)
Problem:    Using freed memory and crash. (Dominique Pelle)
Solution:   Correct use of pointers. (Hirohito Higashi)
Files:      src/option.c

Patch 7.4.790 (after 7.4.786)
Problem:    Test fails when the autochdir feature is not available.  Test
            output contains the test script.
Solution:   Check for the autochdir feature. (Kazunobu Kuriyama)  Only write
            the relevant test output.
Files:      src/testdir/test_autocmd_option.in,
            src/testdir/test_autocmd_option.ok

Patch 7.4.791
Problem:    The buffer list can be very long.
Solution:   Add an argument to ":ls" to specify the type of buffer to list.
            (Marcin Szamotulski)
Files:      runtime/doc/windows.txt, src/buffer.c, src/ex_cmds.h

Patch 7.4.792
Problem:    Can only conceal text by defining syntax items.
Solution:   Use matchadd() to define concealing. (Christian Brabandt)
Files:      runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c,
            src/proto/window.pro, src/screen.c, src/structs.h,
            src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile, src/testdir/test_match_conceal.in,
            src/testdir/test_match_conceal.ok, src/window.c

Patch 7.4.793
Problem:    Can't specify when not to ring the bell.
Solution:   Add the 'belloff' option. (Christian Brabandt)
Files:      runtime/doc/options.txt, src/edit.c, src/ex_getln.c,
            src/hangulin.c, src/if_lua.c, src/if_mzsch.c, src/if_tcl.c,
            src/message.c, src/misc1.c, src/normal.c, src/option.c,
            src/option.h, src/proto/misc1.pro, src/search.c, src/spell.c

Patch 7.4.794
Problem:    Visual Studio 2015 is not recognized.
Solution:   Add the version numbers to the makefile. (Taro Muraoka)
Files:      src/Make_mvc.mak

Patch 7.4.795
Problem:    The 'fixeol' option is not copied to a new window.
Solution:   Copy the option value. (Yasuhiro Matsumoto)
Files:      src/option.c

Patch 7.4.796
Problem:    Warning from 64 bit compiler.
Solution:   Add type cast. (Mike Williams)
Files:      src/ops.c

Patch 7.4.797
Problem:    Crash when using more lines for the command line than
            'maxcombine'.
Solution:   Use the correct array index.  Also, do not try redrawing when
            exiting.  And use screen_Columns instead of Columns.
Files:      src/screen.c

Patch 7.4.798 (after 7.4.753)
Problem:    Repeating a change in Visual mode does not work as expected.
            (Urtica Dioica)
Solution:   Make redo in Visual mode work better. (Christian Brabandt)
Files:      src/normal.c, src/testdir/test_listlbr.in,
            src/testdir/test_listlbr.ok

Patch 7.4.799
Problem:    Accessing memory before an allocated block.
Solution:   Check for not going before the start of a pattern. (Dominique
            Pelle)
Files:      src/fileio.c

Patch 7.4.800
Problem:    Using freed memory when triggering CmdUndefined autocommands.
Solution:   Set pointer to NULL. (Dominique Pelle)
Files:      src/ex_docmd.c

Patch 7.4.801 (after 7.4.769)
Problem:    Test for ":diffoff" doesn't catch all potential problems.
Solution:   Add a :diffthis and a :diffoff command. (Olaf Dabrunz)
Files:      src/testdir/test47.in

Patch 7.4.802
Problem:    Using "A" in Visual mode while 'linebreak' is set is not tested.
Solution:   Add a test for this, verifies the problem is fixed. (Ingo Karkat)
Files:      src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.803
Problem:    C indent does not support C11 raw strings. (Mark Lodato)
Solution:   Do not change indent inside the raw string.
Files:      src/search.c, src/misc1.c, src/edit.c, src/ops.c,
            src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.804
Problem:    Xxd doesn't have a license notice.
Solution:   Add license as indicated by Juergen.
Files:      src/xxd/xxd.c

Patch 7.4.805
Problem:    The ruler shows "Bot" even when there are only filler lines
            missing. (Gary Johnson)
Solution:   Use "All" when the first line and one filler line are visible.
Files:      src/buffer.c

Patch 7.4.806
Problem:    CTRL-A in Visual mode doesn't work properly with "alpha" in
            'nrformats'.
Solution:   Make it work. (Christian Brabandt)
Files:      src/ops.c, src/testdir/test_increment.in,
            src/testdir/test_increment.ok

Patch 7.4.807 (after 7.4.798)
Problem:    After CTRL-V CTRL-A mode isn't updated. (Hirohito Higashi)
Solution:   Clear the command line or update the displayed command.
Files:      src/normal.c

Patch 7.4.808
Problem:    On MS-Windows 8 IME input doesn't work correctly.
Solution:   Read console input before calling MsgWaitForMultipleObjects().
            (vim-jp, Nobuhiro Takasaki)
Files:      src/os_win32.c

Patch 7.4.809 (after 7.4.802)
Problem:    Test is duplicated.
Solution:   Roll back 7.4.802.
Files:      src/testdir/test39.in, src/testdir/test39.ok

Patch 7.4.810
Problem:    With a sequence of commands using buffers in diff mode E749 is
            given. (itchyny)
Solution:   Skip unloaded buffer. (Hirohito Higashi)
Files:      src/diff.c

Patch 7.4.811
Problem:    Invalid memory access when using "exe 'sc'".
Solution:   Avoid going over the end of the string. (Dominique Pelle)
Files:      src/ex_docmd.c

Patch 7.4.812
Problem:    Gcc sanitizer complains about using a NULL pointer to memmove().
Solution:   Only call memmove when there is something to move. (Vittorio
            Zecca)
Files:      src/memline.c

Patch 7.4.813
Problem:    It is not possible to save and restore character search state.
Solution:   Add getcharsearch() and setcharsearch().  (James McCoy)
Files:      runtime/doc/eval.txt, src/eval.c, src/proto/search.pro,
            src/search.c, src/testdir/test_charsearch.in,
            src/testdir/test_charsearch.ok, src/testdir/Makefile,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms

Patch 7.4.814
Problem:    Illegal memory access with "sy match a fold".
Solution:   Check for empty string. (Dominique Pelle)
Files:      src/syntax.c

Patch 7.4.815
Problem:    Invalid memory access when doing ":call g:".
Solution:   Check for an empty name. (Dominique Pelle)
Files:      src/eval.c

Patch 7.4.816
Problem:    Invalid memory access when doing ":fun X(".
Solution:   Check for missing ')'. (Dominique Pelle)
Files:      src/eval.c

Patch 7.4.817
Problem:    Invalid memory access in file_pat_to_reg_pat().
Solution:   Use vim_isspace() instead of checking for a space only. (Dominique
            Pelle)
Files:      src/fileio.c

Patch 7.4.818
Problem:    'linebreak' breaks c% if the last Visual selection was block.
            (Chris Morganiser, Issue 389)
Solution:   Handle Visual block mode differently. (Christian Brabandt)
Files:      src/normal.c, src/testdir/test_listlbr.in,
            src/testdir/test_listlbr.ok

Patch 7.4.819
Problem:    Beeping when running the tests.
Solution:   Fix 41 beeps. (Roland Eggner)
Files:      src/testdir/test17.in, src/testdir/test29.in,
            src/testdir/test4.in, src/testdir/test61.in,
            src/testdir/test82.in, src/testdir/test83.in,
            src/testdir/test90.in, src/testdir/test95.in,
            src/testdir/test_autoformat_join.in

Patch 7.4.820
Problem:    Invalid memory access in file_pat_to_reg_pat.
Solution:   Avoid looking before the start of a string. (Dominique Pelle)
Files:      src/fileio.c

Patch 7.4.821
Problem:    Coverity reports a few problems.
Solution:   Avoid the warnings. (Christian Brabandt)
Files:      src/ex_docmd.c, src/option.c, src/screen.c

Patch 7.4.822
Problem:    More problems reported by coverity.
Solution:   Avoid the warnings. (Christian Brabandt)
Files:      src/os_unix.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
            src/ex_getln.c, src/fold.c, src/gui.c, src/gui_w16.c,
            src/gui_w32.c, src/if_cscope.c, src/if_xcmdsrv.c, src/move.c,
            src/normal.c, src/regexp.c, src/syntax.c, src/ui.c, src/window.c

Patch 7.4.823
Problem:    Cursor moves after CTRL-A on alphabetic character.
Solution:   (Hirohito Higashi, test by Christian Brabandt)
Files:      src/testdir/test_increment.in, src/testdir/test_increment.ok,
            src/ops.c

Patch 7.4.824 (after 7.4.813)
Problem:    Can't compile without the multi-byte feature. (John Marriott)
Solution:   Add #ifdef.
Files:      src/eval.c

Patch 7.4.825
Problem:    Invalid memory access for ":syn keyword x a[".
Solution:   Do not skip over the NUL. (Dominique Pelle)
Files:      src/syntax.c

Patch 7.4.826
Problem:    Compiler warnings and errors.
Solution:   Make it build properly without the multi-byte feature.
Files:      src/eval.c, src/search.c

Patch 7.4.827
Problem:    Not all test targets are in the Makefile.
Solution:   Add the missing targets.
Files:      src/Makefile

Patch 7.4.828
Problem:    Crash when using "syn keyword x c". (Dominique Pelle)
Solution:   Initialize the keyword table. (Raymond Ko, PR 397)
Files:      src/syntax.c

Patch 7.4.829
Problem:    Crash when clicking in beval balloon. (Travis Lebsock)
Solution:   Use PostMessage() instead of DestroyWindow(). (Raymond Ko, PR 298)
Files:      src/gui_w32.c

Patch 7.4.830
Problem:    Resetting 'encoding' when doing ":set all&" causes problems.
            (Bjorn Linse) Display is not updated.
Solution:   Do not reset 'encoding'. Do a full redraw.
Files:      src/option.c

Patch 7.4.831
Problem:    When expanding `=expr` on the command line and encountering an
            error, the command is executed anyway.
Solution:   Bail out when an error is detected.
Files:      src/misc1.c

Patch 7.4.832
Problem:    $HOME in `=$HOME . '/.vimrc'` is expanded too early.
Solution:   Skip over `=expr` when expanding environment names.
Files:      src/misc1.c

Patch 7.4.833
Problem:    More side effects of ":set all&" are missing. (Björn Linse)
Solution:   Call didset_options() and add didset_options2() to collect more
            side effects to take care of.  Still not everything...
Files:      src/option.c

Patch 7.4.834
Problem:    gettabvar() doesn't work after Vim start. (Szymon Wrozynski)
Solution:   Handle first window in tab still being NULL. (Christian Brabandt)
Files:      src/eval.c, src/testdir/test91.in, src/testdir/test91.ok

Patch 7.4.835
Problem:    Comparing utf-8 sequences does not handle different byte sizes
            correctly.
Solution:   Get the byte size of each character. (Dominique Pelle)
Files:      src/misc2.c

Patch 7.4.836
Problem:    Accessing uninitialized memory.
Solution:   Add missing calls to init_tv(). (Dominique Pelle)
Files:      src/eval.c

Patch 7.4.837
Problem:    Compiler warning with MSVC compiler when using +sniff.
Solution:   Use Sleep() instead of _sleep(). (Tux)
Files:      src/if_sniff.c

Patch 7.4.838 (after 7.4.833)
Problem:    Can't compile without the crypt feature. (John Marriott)
Solution:   Add #ifdef.
Files:      src/option.c

Patch 7.4.839
Problem:    Compiler warning on 64-bit system.
Solution:   Add cast to int. (Mike Williams)
Files:      src/search.c

Patch 7.4.840 (after 7.4.829)
Problem:    Tooltip window stays open.
Solution:   Send a WM_CLOSE message. (Jurgen Kramer)
Files:      src/gui_w32.c

Patch 7.4.841
Problem:    Can't compile without the multi-byte feature. (John Marriott)
Solution:   Add more #ifdef's.
Files:      src/option.c

Patch 7.4.842 (after 7.4.840)
Problem:    Sending too many messages to close the balloon.
Solution:   Only send a WM_CLOSE message. (Jurgen Kramer)
Files:      src/gui_w32.c

Patch 7.4.843 (after 7.4.835)
Problem:    Still possible to go beyond the end of a string.
Solution:   Check for NUL also in second string. (Dominique Pelle)
Files:      src/misc2.c

Patch 7.4.844
Problem:    When '#' is in 'isident' the is# comparator doesn't work.
Solution:   Don't use vim_isIDc(). (Yasuhiro Matsumoto)
Files:      src/eval.c, src/testdir/test_comparators.in,
            src/testdir/test_comparators.ok, src/testdir/Makefile,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms

Patch 7.4.845
Problem:    Compiler warning for possible loss of data.
Solution:   Add a type cast. (Erich Ritz)
Files:      src/misc1.c

Patch 7.4.846
Problem:    Some GitHub users don't know how to use issues.
Solution:   Add a file that explains the basics of contributing.
Files:      Filelist, CONTRIBUTING.md

Patch 7.4.847
Problem:    "vi)d" may leave a character behind.
Solution:   Skip over multi-byte character. (Christian Brabandt)
Files:      src/search.c

Patch 7.4.848
Problem:    CTRL-A on hex number in Visual block mode is incorrect.
Solution:   Account for the "0x". (Hirohito Higashi)
Files:      src/charset.c, src/testdir/test_increment.in,
            src/testdir/test_increment.ok

Patch 7.4.849
Problem:    Moving the cursor in Insert mode starts new undo sequence.
Solution:   Add CTRL-G U to keep the undo sequence for the following cursor
            movement command. (Christian Brabandt)
Files:      runtime/doc/insert.txt, src/edit.c, src/testdir/test_mapping.in,
            src/testdir/test_mapping.ok

Patch 7.4.850 (after 7.4.846)
Problem:    <Esc> does not show up.
Solution:   Use &gt; and &lt;. (Kazunobu Kuriyama)
Files:      CONTRIBUTING.md

Patch 7.4.851
Problem:    Saving and restoring the console buffer does not work properly.
Solution:   Instead of ReadConsoleOutputA/WriteConsoleOutputA use
            CreateConsoleScreenBuffer and SetConsoleActiveScreenBuffer.
            (Ken Takata)
Files:      src/os_win32.c

Patch 7.4.852
Problem:    On MS-Windows console Vim uses ANSI APIs for keyboard input and
            console output, it cannot input/output Unicode characters.
Solution:   Use Unicode APIs for console I/O. (Ken Takata, Yasuhiro Matsumoto)
Files:      src/os_win32.c, src/ui.c, runtime/doc/options.txt

Patch 7.4.853
Problem:    "zt" in diff mode does not always work properly. (Gary Johnson)
Solution:   Don't count filler lines twice. (Christian Brabandt)
Files:      src/move.c

Patch 7.4.854 (after 7.4.850)
Problem:    Missing information about runtime files.
Solution:   Add section about runtime files. (Christian Brabandt)
Files:      CONTRIBUTING.md

Patch 7.4.855
Problem:    GTK: font glitches for combining characters
Solution:   Use pango_shape_full() instead of pango_shape(). (luchr, PR #393)
Files:      src/gui_gtk_x11.c

Patch 7.4.856
Problem:    "zt" still doesn't work well with filler lines. (Gary Johnson)
Solution:   Check for filler lines above the cursor. (Christian Brabandt)
Files:      src/move.c

Patch 7.4.857
Problem:    Dragging the current tab with the mouse doesn't work properly.
Solution:   Take the current tabpage index into account. (Hirohito Higashi)
Files:      src/normal.c

Patch 7.4.858
Problem:    It's a bit clumsy to execute a command on a list of matches.
Solution:   Add the ":ldo", ":lfdo", ":cdo" and ":cfdo" commands. (Yegappan
            Lakshmanan)
Files:      runtime/doc/cmdline.txt, runtime/doc/editing.txt,
            runtime/doc/index.txt, runtime/doc/quickfix.txt,
            runtime/doc/tabpage.txt, runtime/doc/windows.txt, src/ex_cmds.h,
            src/ex_cmds2.c, src/ex_docmd.c, src/proto/quickfix.pro,
            src/quickfix.c, src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile, src/testdir/test_cdo.in,
            src/testdir/test_cdo.ok

Patch 7.4.859
Problem:    Vim doesn't recognize all htmldjango files.
Solution:   Recognize a comment. (Daniel Hahler, PR #410)
Files:      runtime/filetype.vim

Patch 7.4.860
Problem:    Filetype detection is outdated.
Solution:   Include all recent and not-so-recent changes.
Files:      runtime/filetype.vim

Patch 7.4.861 (after 7.4.855)
Problem:    pango_shape_full() is not always available.
Solution:   Add a configure check.
Files:      src/configure.in, src/auto/configure, src/config.h.in,
            src/gui_gtk_x11.c

Patch 7.4.862 (after 7.4.861)
Problem:    Still problems with pango_shape_full() not available.
Solution:   Change AC_TRY_COMPILE to AC_TRY_LINK.
Files:      src/configure.in, src/auto/configure

Patch 7.4.863 (after 7.4.856)
Problem:    plines_nofill() used without the diff feature.
Solution:   Define PLINES_NOFILL().
Files:      src/macros.h, src/move.c

Patch 7.4.864 (after 7.4.858)
Problem:    Tiny build fails.
Solution:   Put qf_ items inside #ifdef.
Files:      src/ex_docmd.c

Patch 7.4.865
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize.
Files:      src/ex_cmds2.c

Patch 7.4.866
Problem:    Crash when changing the 'tags' option from a remote command.
            (Benjamin Fritz)
Solution:   Instead of executing messages immediately, use a queue, like for
            netbeans. (James Kolb)
Files:      src/ex_docmd.c, src/getchar.c, src/gui_gtk_x11.c, src/gui_w48.c,
            src/gui_x11.c, src/if_xcmdsrv.c, src/misc2.c, src/os_unix.c,
            src/proto/if_xcmdsrv.pro, src/proto/misc2.pro, src/macros.h

Patch 7.4.867 (after 7.4.866)
Problem:    Can't build on MS-Windows. (Taro Muraoka)
Solution:   Adjust #ifdef.
Files:      src/misc2.c

Patch 7.4.868
Problem:    'smarttab' is also effective when 'paste' is enabled. (Alexander
            Monakov)
Solution:   Disable 'smarttab' when 'paste' is set. (Christian Brabandt)
            Do the same for 'expandtab'.
Files:      src/option.c, src/structs.h

Patch 7.4.869
Problem:    MS-Windows: scrolling may cause text to disappear when using an
            Intel GPU.
Solution:   Call GetPixel(). (Yohei Endo)
Files:      src/gui_w48.c

Patch 7.4.870
Problem:    May get into an invalid state when using getchar() in an
            expression mapping.
Solution:   Anticipate mod_mask to change. (idea by Yukihiro Nakadaira)
Files:      src/getchar.c

Patch 7.4.871
Problem:    Vim leaks memory, when 'wildignore' filters out all matches.
Solution:   Free the files array when it becomes empty.
Files:      src/misc1.c

Patch 7.4.872
Problem:    Not using CI services available.
Solution:   Add configuration files for travis and appveyor. (Ken Takata,
            vim-jp, PR #401)
Files:      .travis.yml, appveyor.yml, Filelist

Patch 7.4.873 (after 7.4.866)
Problem:    Compiler warning for unused variable. (Tony Mechelynck)
Solution:   Remove the variable.  Also fix int vs long_u mixup.
Files:      src/if_xcmdsrv.c

Patch 7.4.874
Problem:    MS-Windows: When Vim runs inside another application, the size
            isn't right.
Solution:   When in child mode compute the size differently. (Agorgianitis
            Loukas)
Files:      src/gui_w48.c

Patch 7.4.875
Problem:    Not obvious how to contribute.
Solution:   Add a remark about CONTRIBUTING.md to README.md
Files:      README.md

Patch 7.4.876
Problem:    Windows7: when using vim.exe with msys or msys2, conhost.exe
            (console window provider on Windows7) will freeze or crash.
Solution:   Make original screen buffer active, before executing external
            program.  And when the program is finished, revert to vim's one.
            (Taro Muraoka)
Files:      src/os_win32.c

Patch 7.4.877 (after 7.4.843)
Problem:    ":find" sometimes fails. (Excanoe)
Solution:   Compare current characters instead of previous ones.
Files:      src/misc2.c

Patch 7.4.878
Problem:    Coverity error for clearing only one byte of struct.
Solution:   Clear the whole struct. (Dominique Pelle)
Files:      src/ex_docmd.c

Patch 7.4.879
Problem:    Can't see line numbers in nested function calls.
Solution:   Add line number to the file name. (Alberto Fanjul)
Files:      src/eval.c

Patch 7.4.880
Problem:    No build and coverage status.
Solution:   Add links to the README file. (Christian Brabandt)
Files:      README.md

Patch 7.4.881 (after 7.4.879)
Problem:    Test 49 fails.
Solution:   Add line number to check of call stack.
Files:      src/testdir/test49.vim

Patch 7.4.882
Problem:    When leaving the command line window with CTRL-C while a
            completion menu is displayed the menu isn't removed.
Solution:   Force a screen update. (Hirohito Higashi)
Files:      src/edit.c

Patch 7.4.883 (after 7.4.818)
Problem:    Block-mode replace works characterwise instead of blockwise after
            column 147. (Issue #422)
Solution:   Set Visual mode. (Christian Brabandt)
Files:      src/normal.c, src/testdir/test_listlbr.in,
            src/testdir/test_listlbr.ok

Patch 7.4.884
Problem:    Travis also builds on a tag push.
Solution:   Filter out tag pushes. (Kenichi Ito)
Files:      .travis.yml

Patch 7.4.885
Problem:    When doing an upwards search without wildcards the search fails if
            the initial directory doesn't exist.
Solution:   Fix the non-wildcard case. (Stefan Kempf)
Files:      src/misc2.c

Patch 7.4.886 (after 7.4.876)
Problem:    Windows7: Switching screen buffer causes flicker when using
            system().
Solution:   Instead of actually switching screen buffer, duplicate the handle.
            (Yasuhiro Matsumoto)
Files:      src/os_win32.c

Patch 7.4.887
Problem:    Using uninitialized memory for regexp with back reference.
            (Dominique Pelle)
Solution:   Initialize end_lnum.
Files:      src/regexp_nfa.c

Patch 7.4.888
Problem:    The OptionSet autocommands are not triggered from setwinvar().
Solution:   Do not use switch_win() when not needed. (Hirohito Higashi)
Files:      src/eval.c

Patch 7.4.889
Problem:    Triggering OptionSet from setwinvar() isn't tested.
Solution:   Add a test. (Christian Brabandt)
Files:      src/testdir/test_autocmd_option.in,
            src/testdir/test_autocmd_option.ok

Patch 7.4.890
Problem:    Build failure when using dynamic python but not python3.
Solution:   Adjust the #if to also include DYNAMIC_PYTHON3 and UNIX.
Files:      src/if_python3.c

Patch 7.4.891
Problem:    Indentation of array initializer is wrong.
Solution:   Avoid that calling find_start_rawstring() changes the position
            returned by find_start_comment(), add a test. (Hirohito Higashi)
Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.892
Problem:    On MS-Windows the iconv DLL may have a different name.
Solution:   Also try libiconv2.dll and libiconv-2.dll. (Yasuhiro Matsumoto)
Files:      src/mbyte.c

Patch 7.4.893
Problem:    C indenting is wrong below a "case (foo):" because it is
            recognized as a C++ base class construct.  Issue #38.
Solution:   Check for the case keyword.
Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.894
Problem:    vimrun.exe is picky about the number of spaces before -s.
Solution:   Skip all spaces. (Cam Sinclair)
Files:      src/vimrun.c

Patch 7.4.895
Problem:    Custom command line completion does not work for a command
            containing digits.
Solution:   Skip over the digits. (suggested by Yasuhiro Matsumoto)
Files:      src/ex_docmd.c

Patch 7.4.896
Problem:    Editing a URL, which netrw should handle, doesn't work.
Solution:   Avoid changing slashes to backslashes. (Yasuhiro Matsumoto)
Files:      src/fileio.c, src/os_mswin.c

Patch 7.4.897
Problem:    Freeze and crash when there is a sleep in a remote command.
            (Karl Yngve Lervåg)
Solution:   Remove a message from the queue before dealing with it. (James
            Kolb)
Files:      src/if_xcmdsrv.c

Patch 7.4.898
Problem:    The 'fixendofline' option is set on with ":edit".
Solution:   Don't set the option when clearing a buffer. (Yasuhiro Matsumoto)
Files:      src/buffer.c

Patch 7.4.899
Problem:    README file is not optimal.
Solution:   Move buttons, update some text. (closes #460)
Files:      README.txt, README.md

Patch 7.4.900 (after 7.4.899)
Problem:    README file can still be improved
Solution:   Add a couple of links. (Christian Brabandt)
Files:      README.md

Patch 7.4.901
Problem:    When a BufLeave autocommand changes folding in a way it syncs
            undo, undo can be corrupted.
Solution:   Prevent undo sync. (Jacob Niehus)
Files:      src/popupmnu.c

Patch 7.4.902
Problem:    Problems with using the MS-Windows console.
Solution:   Revert patches 7.4.851, 7.4.876 and 7.4.886 until we find a better
            solution. (suggested by Ken Takata)
Files:      src/os_win32.c

Patch 7.4.903
Problem:    MS-Windows: When 'encoding' differs from the current code page,
            expanding wildcards may cause illegal memory access.
Solution:   Allocate a longer buffer. (Ken Takata)
Files:      src/misc1.c

Patch 7.4.904
Problem:    Vim does not provide .desktop files.
Solution:   Include and install .desktop files. (James McCoy, closes #455)
Files:      Filelist, runtime/vim.desktop, runtime/gvim.desktop, src/Makefile

Patch 7.4.905
Problem:    Python interface can produce error "vim.message' object has no
            attribute 'isatty'".
Solution:   Add dummy isatty(), readable(), etc. (closes #464)
Files:      src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
            src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.906
Problem:    On MS-Windows the viminfo file is (always) given the hidden
            attribute. (raulnac)
Solution:   Check the hidden attribute in a different way. (Ken Takata)
Files:      src/ex_cmds.c, src/os_win32.c, src/os_win32.pro

Patch 7.4.907
Problem:    Libraries for dynamically loading interfaces can only be defined
            at compile time.
Solution:   Add options to specify the dll names. (Kazuki Sakamoto,
            closes #452)
Files:      runtime/doc/if_lua.txt, runtime/doc/if_perl.txt,
            runtime/doc/if_pyth.txt, runtime/doc/if_ruby.txt,
            runtime/doc/options.txt, src/if_lua.c, src/if_perl.xs,
            src/if_python.c, src/if_python3.c, src/if_ruby.c, src/option.c,
            src/option.h

Patch 7.4.908 (after 7.4.907)
Problem:    Build error with MingW compiler. (Cesar Romani)
Solution:   Change #if into #ifdef.
Files:      src/if_perl.xs

Patch 7.4.909 (after 7.4.905)
Problem:    "make install" fails.
Solution:   Only try installing desktop files if the destination directory
            exists.
Files:      src/Makefile

Patch 7.4.910 (after 7.4.905)
Problem:    Compiler complains about type punned pointer.
Solution:   Use another way to increment the ref count.
Files:      src/if_py_both.h

Patch 7.4.911
Problem:    t_Ce and t_Cs are documented but not supported. (Hirohito Higashi)
Solution:   Define the options.
Files:      src/option.c

Patch 7.4.912
Problem:    Wrong indenting for C++ constructor.
Solution:   Recognize ::.  (Anhong)
Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 7.4.913
Problem:    No utf-8 support for the hangul input feature.
Solution:   Add utf-8 support. (Namsh)
Files:      src/gui.c, src/hangulin.c, src/proto/hangulin.pro, src/screen.c,
            src/ui.c, runtime/doc/hangulin.txt, src/feature.h

Patch 7.4.914
Problem:    New compiler warning: logical-not-parentheses
Solution:   Silence the warning.
Files:      src/term.c

Patch 7.4.915
Problem:    When removing from 'path' and then adding, a comma may go missing.
            (Malcolm Rowe)
Solution:   Fix the check for P_ONECOMMA. (closes #471)
Files:      src/option.c, src/testdir/test_options.in,
            src/testdir/test_options.ok

Patch 7.4.916
Problem:    When running out of memory while copying a dict memory may be
            freed twice. (ZyX)
Solution:   Do not call the garbage collector when running out of memory.
Files:      src/misc2.c

Patch 7.4.917
Problem:    Compiler warning for comparing signed and unsigned.
Solution:   Add a type cast.
Files:      src/hangulin.c

Patch 7.4.918
Problem:    A digit in an option name has problems.
Solution:   Rename 'python3dll' to 'pythonthreedll'.
Files:      src/option.c, src/option.h, runtime/doc/options.txt

Patch 7.4.919
Problem:    The dll options are not in the options window.
Solution:   Add the dll options.  And other fixes.
Files:	    runtime/optwin.vim

Patch 7.4.920
Problem:    The rubydll option is not in the options window.
Solution:   Add the rubydll option.
Files:	    runtime/optwin.vim

Patch 7.4.921 (after 7.4.906)
Problem:    Missing proto file update. (Randall W. Morris)
Solution:   Add the missing line for mch_ishidden.
Files:      src/proto/os_win32.pro

Patch 7.4.922
Problem:    Leaking memory with ":helpt {dir-not-exists}".
Solution:   Free dirname. (Dominique Pelle)
Files:      src/ex_cmds.c

Patch 7.4.923
Problem:    Prototypes not always generated.
Solution:   Change #if to OR with PROTO.
Files:      src/window.c

Patch 7.4.924
Problem:    DEVELOPER_DIR gets reset by configure.
Solution:   Do not reset DEVELOPER_DIR when there is no --with-developer-dir
            argument. (Kazuki Sakamoto, closes #482)
Files:      src/configure.in, src/auto/configure

Patch 7.4.925
Problem:    User may yank or put using the register being recorded in.
Solution:   Add the recording register in the message. (Christian Brabandt,
            closes #470)
Files:      runtime/doc/options.txt, runtime/doc/repeat.txt, src/ops.c,
            src/option.h, src/screen.c

Patch 7.4.926
Problem:    Completing the longest match doesn't work properly with multi-byte
            characters.
Solution:   When using multi-byte characters use another way to find the
            longest match. (Hirohito Higashi)
Files:      src/ex_getln.c, src/testdir/test_utf8.in, src/testdir/test_utf8.ok

Patch 7.4.927
Problem:    Ruby crashes when there is a runtime error.
Solution:   Use ruby_options() instead of ruby_process_options(). (Damien)
Files:      src/if_ruby.c

Patch 7.4.928
Problem:    A clientserver message interrupts handling keys of a mapping.
Solution:   Have mch_inchar() send control back to WaitForChar when it is
            interrupted by server message. (James Kolb)
Files:      src/os_unix.c

Patch 7.4.929
Problem:    "gv" after paste selects one character less if 'selection' is
            "exclusive".
Solution:   Increment the end position. (Christian Brabandt)
Files:      src/normal.c, src/testdir/test94.in, src/testdir/test94.ok

Patch 7.4.930
Problem:    MS-Windows: Most users appear not to like the window border.
Solution:   Remove WS_EX_CLIENTEDGE. (Ian Halliday)
Files:      src/gui_w32.c

Patch 7.4.931 (after 7.4.929)
Problem:    Test 94 fails on some systems.
Solution:   Set 'encoding' to utf-8.
Files:      src/testdir/test94.in

Patch 7.4.932 (after 7.4.926)
Problem:    test_utf8 has confusing dummy command.
Solution:   Use a real command instead of a colon.
Files:      src/testdir/test_utf8.in

Patch 7.4.933 (after 7.4.926)
Problem:    Crash when using longest completion match.
Solution:   Fix array index.
Files:      src/ex_getln.c

Patch 7.4.934
Problem:    Appveyor also builds on a tag push.
Solution:   Add a skip_tags line. (Kenichi Ito, closes #489)
Files:      appveyor.yml

Patch 7.4.935 (after 7.4.932)
Problem:    test_utf8 fails on MS-Windows when executed with gvim.
Solution:   Use the insert flag on feedkeys() to put the string before the
            ":" that was already read when checking for available chars.
Files:      src/testdir/test_utf8.in

Patch 7.4.936
Problem:    Crash when dragging with the mouse.
Solution:   Add safety check for NULL pointer. Check mouse position for valid
            value. (Hirohito Higashi)
Files:      src/window.c, src/term.c

Patch 7.4.937
Problem:    Segfault reading uninitialized memory.
Solution:   Do not read match \z0, it does not exist. (Marius Gedminas, closes
            #497)
Files:      src/regexp_nfa.c

Patch 7.4.938
Problem:    X11 and GTK have more mouse buttons than Vim supports.
Solution:   Recognize more mouse buttons. (Benoit Pierre, closes #498)
Files:      src/gui_gtk_x11.c, src/gui_x11.c

Patch 7.4.939
Problem:    Memory leak when encountering a syntax error.
Solution:   Free the memory. (Dominique Pelle)
Files:      src/ex_docmd.c

Patch 7.4.940
Problem:    vt52 terminal codes are not correct.
Solution:   Move entries outside of #if. (Random)  Adjustments based on
            documented codes.
Files:      src/term.c

Patch 7.4.941
Problem:    There is no way to ignore case only for tag searches.
Solution:   Add the 'tagcase' option. (Gary Johnson)
Files:      runtime/doc/options.txt, runtime/doc/quickref.txt,
            runtime/doc/tagsrch.txt, runtime/doc/usr_29.txt,
            runtime/optwin.vim, src/Makefile, src/buffer.c, src/option.c,
            src/option.h, src/structs.h, src/tag.c,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile,
            src/testdir/test_tagcase.in, src/testdir/test_tagcase.ok

Patch 7.4.942 (after 7.4.941)
Problem:    test_tagcase breaks for small builds.
Solution:   Bail out of the test early. (Hirohito Higashi)
Files:      src/testdir/test_tagcase.in

Patch 7.4.943
Problem:    Tests are not run.
Solution:   Add test_writefile to makefiles. (Ken Takata)
Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.944
Problem:    Writing tests for Vim script is hard.
Solution:   Add assertEqual(), assertFalse() and assertTrue() functions.  Add
            the v:errors variable.  Add the runtest script. Add a first new
            style test script.
Files:      src/eval.c, src/vim.h, src/misc2.c, src/testdir/Makefile,
            src/testdir/runtest.vim, src/testdir/test_assert.vim,
            runtime/doc/eval.txt

Patch 7.4.945 (after 7.4.944)
Problem:    New style testing is incomplete.
Solution:   Add the runtest script to the list of distributed files.
            Add the new functions to the function overview.
            Rename the functions to match Vim function style.
            Move undolevels testing into a new style test script.
Files:      Filelist, runtime/doc/usr_41.txt, runtime/doc/eval.txt,
            src/testdir/test_assert.vim, src/testdir/Makefile,
            src/testdir/test_undolevels.vim, src/testdir/test100.in,
            src/testdir/test100.ok

Patch 7.4.946 (after 7.4.945)
Problem:    Missing changes in source file.
Solution:   Include changes to the eval.c file.
Files:      src/eval.c

Patch 7.4.947
Problem:    Test_listchars fails with MingW. (Michael Soyka)
Solution:   Add the test to the ones that need the fileformat fixed.
            (Christian Brabandt)
Files:      src/testdir/Make_ming.mak

Patch 7.4.948
Problem:    Can't build when the insert_expand feature is disabled.
Solution:   Add #ifdefs. (Dan Pasanen, closes #499)
Files:      src/eval.c, src/fileio.c

Patch 7.4.949
Problem:    When using 'colorcolumn' and there is a sign with a fullwidth
            character the highlighting is wrong. (Andrew Stewart)
Solution:   Only increment vcol when in the right state. (Christian Brabandt)
Files:      src/screen.c, src/testdir/test_listlbr_utf8.in,
            src/testdir/test_listlbr_utf8.ok

Patch 7.4.950
Problem:    v:errors is not initialized.
Solution:   Initialize it to an empty list. (Thinca)
Files:      src/eval.c

Patch 7.4.951
Problem:    Sorting number strings does not work as expected. (Luc Hermitte)
Solution:   Add the "N" argument to sort()
Files:      src/eval.c, runtime/doc/eval.txt, src/testdir/test_alot.vim,
            src/testdir/test_sort.vim, src/testdir/Makefile

Patch 7.4.952
Problem:    'lispwords' is tested in the old way.
Solution:   Make a new style test for 'lispwords'.
Files:      src/testdir/test_alot.vim, src/testdir/test_lispwords.vim,
            src/testdir/test100.in, src/testdir/test100.ok,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.953
Problem:    When a test script navigates to another buffer the .res file is
            created with the wrong name.
Solution:   Use the "testname" for the .res file. (Damien)
Files:      src/testdir/runtest.vim

Patch 7.4.954
Problem:    When using Lua there may be a crash. (issue #468)
Solution:   Avoid using an uninitialized tv. (Yukihiro Nakadaira)
Files:      src/if_lua.c

Patch 7.4.955
Problem:    Vim doesn't recognize .pl6 and .pod6 files.
Solution:   Recognize them as perl6 and pod6. (Mike Eve, closes #511)
Files:      runtime/filetype.vim

Patch 7.4.956
Problem:    A few more file name extensions not recognized.
Solution:   Add .asciidoc, .bzl, .gradle, etc.
Files:      runtime/filetype.vim

Patch 7.4.957
Problem:    Test_tagcase fails when using another language than English.
Solution:   Set the messages language to C. (Kenichi Ito)
Files:      src/testdir/test_tagcase.in

Patch 7.4.958
Problem:    Vim checks if the directory "$TMPDIR" exists.
Solution:   Do not check if the name starts with "$".
Files:      src/fileio.c

Patch 7.4.959
Problem:    When setting 'term' the clipboard ownership is lost.
Solution:   Do not call clip_init(). (James McCoy)
Files:      src/term.c

Patch 7.4.960
Problem:    Detecting every version of nmake is clumsy.
Solution:   Use a tiny C program to get the version of _MSC_VER. (Ken Takata)
Files:      src/Make_mvc.mak

Patch 7.4.961
Problem:    Test107 fails in some circumstances.
Solution:   When using "zt", "zb" and "z=" recompute the fraction.
Files:      src/normal.c, src/window.c, src/proto/window.pro

Patch 7.4.962
Problem:    Cannot run the tests with gvim.  Cannot run individual new tests.
Solution:   Add the -f flag. Add new test targets in Makefile.
Files:      src/Makefile, src/testdir/Makefile

Patch 7.4.963
Problem:    test_listlbr_utf8 sometimes fails.
Solution:   Don't use a literal multibyte character but <C-V>uXXXX. Do not
            dump the screen highlighting. (Christian Brabandt, closes #518)
Files:      src/testdir/test_listlbr_utf8.in, src/testdir/test_listlbr_utf8.ok

Patch 7.4.964
Problem:    Test 87 doesn't work in a shadow directory.
Solution:   Handle the extra subdirectory. (James McCoy, closes #515)
Files:      src/testdir/test87.in

Patch 7.4.965
Problem:    On FreeBSD /dev/fd/ files are special.
Solution:   Use is_dev_fd_file() also for FreeBSD. (Derek Schrock, closes #521)
Files:      src/fileio.c

Patch 7.4.966
Problem:    Configure doesn't work with a space in a path.
Solution:   Put paths in quotes. (James McCoy, closes #525)
Files:      src/configure.in, src/auto/configure

Patch 7.4.967
Problem:    Cross compilation on MS-windows doesn't work well.
Solution:   Tidy up cross compilation across architectures with Visual Studio.
            (Mike Williams)
Files:      src/Make_mvc.mak

Patch 7.4.968
Problem:    test86 and test87 are flaky in Appveyor.
Solution:   Reduce the count from 8 to 7. (suggested by ZyX)
Files:      src/testdir/test86.in, src/testdir/test87.in

Patch 7.4.969
Problem:    Compiler warnings on Windows x64 build.
Solution:   Add type casts. (Mike Williams)
Files:      src/option.c

Patch 7.4.970
Problem:    Rare crash in getvcol(). (Timo Mihaljov)
Solution:   Check for the buffer being NULL in init_preedit_start_col.
            (Hirohito Higashi, Christian Brabandt)
Files:      src/mbyte.c

Patch 7.4.971
Problem:    The asin() function can't be used.
Solution:   Sort the function table properly. (Watiko)
Files:      src/eval.c

Patch 7.4.972
Problem:    Memory leak when there is an error in setting an option.
Solution:   Free the saved value (Christian Brabandt)
Files:      src/option.c

Patch 7.4.973
Problem:    When pasting on the command line line breaks result in literal
            <CR> characters. This makes pasting a long file name difficult.
Solution:   Skip the characters.
Files:      src/ex_getln.c, src/ops.c

Patch 7.4.974
Problem:    When using :diffsplit the cursor jumps to the first line.
Solution:   Put the cursor on the line related to where the cursor was before
            the split.
Files:      src/diff.c

Patch 7.4.975
Problem:    Using ":sort" on a very big file sometimes causes text to be
            corrupted. (John Beckett)
Solution:   Copy the line into a buffer before calling ml_append().
Files:      src/ex_cmds.c

Patch 7.4.976
Problem:    When compiling Vim for MSYS2 (linked with msys-2.0.dll), the Win32
            clipboard is not enabled.
Solution:   Recognize MSYS like CYGWIN. (Ken Takata)
Files:      src/configure.in, src/auto/configure

Patch 7.4.977
Problem:    'linebreak' does not work properly when using "space" in
            'listchars'.
Solution:   (Hirohito Higashi, Christian Brabandt)
Files:      src/screen.c, src/testdir/test_listlbr.in,
            src/testdir/test_listlbr.ok

Patch 7.4.978
Problem:    test_cdo fails when using another language than English.
Solution:   Set the language to C. (Dominique Pelle, Kenichi Ito)
Files:      src/testdir/test_cdo.in

Patch 7.4.979
Problem:    When changing the crypt key the blocks read from disk are not
            decrypted.
Solution:   Also call ml_decrypt_data() when mf_old_key is set. (Ken Takata)
Files:      src/memfile.c

Patch 7.4.980
Problem:    Tests for :cdo, :ldo, etc. are outdated.
Solution:   Add new style tests for these commands. (Yegappan Lakshmanan)
Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile,
            src/testdir/test_cdo.in, src/testdir/test_cdo.ok,
            src/testdir/test_cdo.vim

Patch 7.4.981
Problem:    An error in a test script goes unnoticed.
Solution:   Source the test script inside try/catch. (Hirohito Higashi)
Files:      src/testdir/runtest.vim

Patch 7.4.982
Problem:    Keeping the list of tests updated is a hassle.
Solution:   Move the list to a separate file, so that it only needs to be
            updated in one place.
Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile,
            src/testdir/Make_all.mak

Patch 7.4.983
Problem:    Executing one test after "make testclean" doesn't work.
Solution:   Add a dependency on test1.out.
Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile,
            src/testdir/Make_all.mak

Patch 7.4.984
Problem:    searchpos() always starts searching in the first column, which is
            not what some people expect. (Brett Stahlman)
Solution:   Add the 'z' flag: start at the specified column.
Files:      src/vim.h, src/eval.c, src/search.c,
            src/testdir/test_searchpos.vim, src/testdir/test_alot.vim,
            runtime/doc/eval.txt

Patch 7.4.985
Problem:    Can't build with Ruby 2.3.0.
Solution:   Use the new TypedData_XXX macro family instead of Data_XXX. Use
            TypedData. (Ken Takata)
Files:      src/if_ruby.c

Patch 7.4.986
Problem:    Test49 doesn't work on MS-Windows.  test70 is listed twice.
Solution:   Move test49 to the group not used on Amiga and MS-Windows.
            Remove test70 from SCRIPTS_WIN32.
Files:      src/testdir/Make_all.mak, src/testdir/Make_dos.mak

Patch 7.4.987 (after 7.4.985)
Problem:    Can't build with Ruby 1.9.2.
Solution:   Require Rub 2.0 for defining USE_TYPEDDATA.
Files:      src/if_ruby.c

Patch 7.4.988 (after 7.4.982)
Problem:    Default test target is test49.out.
Solution:   Add a build rule before including Make_all.mak.
Files:      src/testdir/Make_dos.mak, src/testdir/Make_amiga.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.989
Problem:    Leaking memory when hash_add() fails. Coverity error 99126.
Solution:   When hash_add() fails free the memory.
Files:      src/eval.c

Patch 7.4.990
Problem:    Test 86 fails on AppVeyor.
Solution:   Do some registry magic. (Ken Takata)
Files:      appveyor.yml

Patch 7.4.991
Problem:    When running new style tests the output is not visible.
Solution:   Add the testdir/messages file and show it.  Update the list of
            test names.
Files:      src/Makefile, src/testdir/Makefile, src/testdir/runtest.vim

Patch 7.4.992
Problem:    Makefiles for MS-Windows in src/po are outdated.
Solution:   Make them work. (Ken Takata, Taro Muraoka)
Files:      src/po/Make_cyg.mak, src/po/Make_ming.mak, src/po/Make_mvc.mak,
            src/po/README_mingw.txt, src/po/README_mvc.txt

Patch 7.4.993
Problem:    Test 87 is flaky on AppVeyor.
Solution:   Reduce the minimum background thread count.
Files:      src/testdir/test86.in, src/testdir/test87.in

Patch 7.4.994
Problem:    New style tests are not run on MS-Windows.
Solution:   Add the new style tests.
Files:      src/testdir/Make_dos.mak

Patch 7.4.995
Problem:    gdk_pixbuf_new_from_inline() is deprecated.
Solution:   Generate auto/gui_gtk_gresources.c. (Kazunobu Kuriyama,
            closes #507)
Files:      src/Makefile, src/auto/configure, src/config.h.in,
            src/config.mk.in, src/configure.in, src/gui_gtk.c,
            src/gui_gtk_gresources.xml, src/gui_gtk_x11.c,
            src/proto/gui_gtk_gresources.pro,
            pixmaps/stock_vim_build_tags.png, pixmaps/stock_vim_find_help.png,
            pixmaps/stock_vim_save_all.png,
            pixmaps/stock_vim_session_load.png,
            pixmaps/stock_vim_session_new.png,
            pixmaps/stock_vim_session_save.png, pixmaps/stock_vim_shell.png,
            pixmaps/stock_vim_window_maximize.png,
            pixmaps/stock_vim_window_maximize_width.png,
            pixmaps/stock_vim_window_minimize.png,
            pixmaps/stock_vim_window_minimize_width.png,
            pixmaps/stock_vim_window_split.png,
            pixmaps/stock_vim_window_split_vertical.png

Patch 7.4.996
Problem:    New GDK files and testdir/Make_all.mak missing from distribution.
            PC build instructions are outdated.
Solution:   Add the file to the list.  Update PC build instructions.
Files:      Filelist, Makefile

Patch 7.4.997
Problem:    "make shadow" was sometimes broken.
Solution:   Add a test for it. (James McCoy, closes #520)
Files:      .travis.yml

Patch 7.4.998
Problem:    Running tests in shadow directory fails.  Test 49 fails.
Solution:   Link more files for the shadow directory. Make test 49 ends up in
            the right buffer.
Files:      src/Makefile, src/testdir/test49.in

Patch 7.4.999
Problem:    "make shadow" creates a broken link. (Tony Mechelynck)
Solution:   Remove vimrc.unix from the list.
Files:      src/Makefile

Patch 7.4.1000
Problem:    Test 49 is slow and doesn't work on MS-Windows.
Solution:   Start moving parts of test 49 to test_viml.
Files:      src/Makefile, src/testdir/runtest.vim, src/testdir/test_viml.vim,
            src/testdir/test49.vim, src/testdir/test49.ok

Patch 7.4.1001 (after 7.4.1000)
Problem:    test_viml isn't run.
Solution:   Include change in makefile.
Files:      src/testdir/Make_all.mak

Patch 7.4.1002
Problem:    Cannot run an individual test on MS-Windows.
Solution:   Move the rule to run test1 downwards. (Ken Takata)
Files:      src/testdir/Make_dos.mak

Patch 7.4.1003
Problem:    Travis could check a few more things.
Solution:   Run autoconf on one of the builds. (James McCoy, closes #510)
            Also build with normal features.
Files:      .travis.yml

Patch 7.4.1004
Problem:    Using Makefile when auto/config.mk does not exist results in
            warnings.
Solution:   Use default values for essential variables.
Files:      src/Makefile

Patch 7.4.1005
Problem:    Vim users are not always happy.
Solution:   Make them happy.
Files:      src/ex_cmds.h, src/ex_cmds.c, src/proto/ex_cmds.pro

Patch 7.4.1006
Problem:    The fix in patch 7.3.192 is not tested.
Solution:   Add a test, one for each regexp engine. (Elias Diem)
Files:      src/testdir/test44.in, src/testdir/test44.ok,
            src/testdir/test99.in, src/testdir/test99.ok

Patch 7.4.1007
Problem:    When a symbolic link points to a file in the root directory, the
            swapfile is not correct.
Solution:   Do not try getting the full name of a file in the root directory.
            (Milly, closes #501)
Files:      src/os_unix.c

Patch 7.4.1008
Problem:    The OS/2 code pollutes the source while nobody uses it these days.
Solution:   Drop the support for OS/2. 
Files:      src/feature.h, src/globals.h, src/macros.h, src/option.h,
            src/os_unix.c, src/os_unix.h, src/proto/os_unix.pro, src/vim.h,
            src/digraph.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
            src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c,
            src/misc1.c, src/misc2.c, src/netbeans.c, src/option.c,
            src/term.c, src/ui.c, src/window.c, src/os_os2_cfg.h,
            src/Make_os2.mak, src/testdir/Make_os2.mak, src/testdir/os2.vim,
            src/INSTALL, runtime/doc/os_os2.txt

Patch 7.4.1009
Problem:    There are still #ifdefs for ARCHIE.
Solution:   Remove references to ARCHIE, the code was removed in Vim 5.
Files:      src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/main.c,
            src/memline.c, src/option.c, src/term.c

Patch 7.4.1010
Problem:    Some developers are unhappy while running tests.
Solution:   Add a test and some color.
Files:      src/ex_cmds.c, src/testdir/test_assert.vim

Patch 7.4.1011
Problem:    Can't build with Strawberry Perl.
Solution:   Include stdbool.h. (Ken Takata, closes #328)
Files:      Filelist, src/Make_mvc.mak, src/if_perl_msvc/stdbool.h

Patch 7.4.1012
Problem:    Vim overwrites the value of $PYTHONHOME.
Solution:   Do not set $PYTHONHOME if it is already set. (Kazuki Sakamoto,
            closes #500)
Files:      src/if_python.c, src/if_python3.c

Patch 7.4.1013
Problem:    The local value of 'errorformat' is not used for ":lexpr" and
            ":cexpr".
Solution:   Use the local value if it exists. (Christian Brabandt) Adjust the
            help for this.
Files:      runtime/doc/quickfix.txt, src/quickfix.c

Patch 7.4.1014
Problem:    `fnamemodify('.', ':.')` returns an empty string in Cygwin.
Solution:   Use CCP_RELATIVE in the call to cygwin_conv_path. (Jacob Niehus,
            closes #505)
Files:      src/os_unix.c

Patch 7.4.1015
Problem:    The column is not restored properly when the matchparen plugin is
            used in Insert mode and the cursor is after the end of the line.
Solution:   Set the curswant flag. (Christian Brabandt).  Also fix
            highlighting the match of the character before the cursor.
Files:      src/eval.c, runtime/plugin/matchparen.vim

Patch 7.4.1016
Problem:    Still a few OS/2 pieces remain.
Solution:   Delete more.
Files:      Filelist, README_os2.txt, testdir/todos.vim, src/xxd/Make_os2.mak

Patch 7.4.1017
Problem:    When there is a backslash in an option ":set -=" doesn't work.
Solution:   Handle a backslash better. (Jacob Niehus)  Add a new test, merge
            in old test.
Files:      src/testdir/test_cdo.vim, src/testdir/test_set.vim,
            src/testdir/test_alot.vim, src/option.c, src/testdir/test_set.in,
            src/testdir/test_set.ok, src/Makefile

Patch 7.4.1018 (after 7.4.1017)
Problem:    Failure running tests.
Solution:   Add missing change to list of old style tests.
Files:      src/testdir/Make_all.mak

Patch 7.4.1019
Problem:    Directory listing of "src" is too long.
Solution:   Rename the resources file to make it shorter.
Files:      src/gui_gtk_gresources.xml, src/gui_gtk_res.xml, src/Makefile,
            Filelist

Patch 7.4.1020
Problem:    On MS-Windows there is no target to run tests with gvim.
Solution:   Add the testgvim target.
Files:      src/Make_mvc.mak

Patch 7.4.1021
Problem:    Some makefiles are outdated.
Solution:   Add a note to warn developers.
Files:      src/Make_manx.mak, src/Make_bc3.mak, src/Make_bc5.mak,
            src/Make_djg.mak, src/Make_w16.mak

Patch 7.4.1022
Problem:    The README file contains some outdated information.
Solution:   Update the information about supported systems.
Files:      README.txt, README.md

Patch 7.4.1023
Problem:    The distribution files for MS-Windows use CR-LF, which is
            inconsistent with what one gets from github.
Solution:   Use LF in the distribution files.
Files:      Makefile

Patch 7.4.1024
Problem:    Interfaces for MS-Windows are outdated.
Solution:   Use Python 2.7.10, Python 3.4.4, Perl 5.22, TCL 8.6.
Files:      src/bigvim.bat

Patch 7.4.1025
Problem:    Version in installer needs to be updated manually.
Solution:   Generate a file with the version number. (Guopeng Wen)
Files:      Makefile, nsis/gvim.nsi, nsis/gvim_version.nsh

Patch 7.4.1026
Problem:    When using MingW the tests do not clean up all files.  E.g. test
            17 leaves Xdir1 behind. (Michael Soyka)
Solution:   Also delete directories, like Make_dos.mak.  Delete files after
            directories to reduce warnings.
Files:      src/testdir/Make_ming.mak, src/testdir/Make_dos.mak

Patch 7.4.1027
Problem:    No support for binary numbers.
Solution:   Add "bin" to 'nrformats'. (Jason Schulz)
Files:      runtime/doc/change.txt, runtime/doc/eval.txt,
            runtime/doc/version7.txt, src/charset.c, src/eval.c,
            src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/ops.c,
            src/option.c, src/proto/charset.pro, src/spell.c,
            src/testdir/test57.in, src/testdir/test57.ok,
            src/testdir/test58.in, src/testdir/test58.ok,
            src/testdir/test_increment.in, src/testdir/test_increment.ok,
            src/vim.h

Patch 7.4.1028
Problem:    Nsis version file missing from the distribution.
Solution:   Add the file to the list.
Files:      Filelist

Patch 7.4.1029 (after 7.4.1027)
Problem:    test_increment fails on systems with 32 bit long.
Solution:   Only test with 32 bits.
Files:      src/testdir/test_increment.in, src/testdir/test_increment.ok

Patch 7.4.1030
Problem:    test49 is still slow.
Solution:   Move more tests from old to new style.
Files:      src/testdir/test_viml.vim, src/testdir/test49.vim,
            src/testdir/test49.ok, src/testdir/runtest.vim

Patch 7.4.1031
Problem:    Can't build with Python interface using MingW.
Solution:   Update the Makefile. (Yasuhiro Matsumoto)
Files:      src/INSTALLpc.txt, src/Make_cyg_ming.mak

Patch 7.4.1032
Problem:    message from assert_false() does not look nice.
Solution:   Handle missing sourcing_name. Use right number of spaces. (Watiko)
            Don't use line number if it's zero.
Files:      src/eval.c

Patch 7.4.1033
Problem:    Memory use on MS-Windows is very conservative.
Solution:   Use the global memory status to estimate amount of memory.
            (Mike Williams)
Files:      src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro

Patch 7.4.1034
Problem:    There is no test for the 'backspace' option behavior.
Solution:   Add a test. (Hirohito Higashi)
Files:      src/testdir/test_alot.vim, src/testdir/test_backspace_opt.vim

Patch 7.4.1035
Problem:    An Ex range gets adjusted for folded lines even when the range is
            not using line numbers.
Solution:   Only adjust line numbers for folding. (Christian Brabandt)
Files:      runtime/doc/fold.txt, src/ex_docmd.c

Patch 7.4.1036
Problem:    Only terminals with up to 256 colors work properly.
Solution:   Use the 256 color behavior for all terminals with 256 or more
            colors. (Robert de Bath, closes #504)
Files:      src/syntax.c

Patch 7.4.1037
Problem:    Using "q!" when there is a modified hidden buffer does not unload
            the current buffer, resulting in the need to abandon it again.
Solution:   When using "q!" unload the current buffer when needed. (Yasuhiro
            Matsumoto, Hirohito Higashi)
Files:      src/testdir/test31.in, src/testdir/test31.ok,
            runtime/doc/editing.txt, src/ex_cmds2.c, src/ex_docmd.c,
            src/gui.c, src/gui_gtk_x11.c, src/os_unix.c,
            src/proto/ex_cmds2.pro

Patch 7.4.1038
Problem:    Still get a warning for a deprecated function with gdk-pixbuf
            2.31.
Solution:   Change minimum minor version from 32 to 31.
Files:      src/configure.in, src/auto/configure

Patch 7.4.1039 (after 7.4.1037)
Problem:    Test 31 fails with small build.
Solution:   Bail out for small build. (Hirohito Higashi)
Files:      src/testdir/test31.in

Patch 7.4.1040
Problem:    The tee command is not available on MS-Windows.
Solution:   Adjust tee.c for MSVC and add a makefile. (Yasuhiro Matsumoto)
Files:      src/tee/tee.c, src/tee/Make_mvc.mak, src/Make_mvc.mak

Patch 7.4.1041
Problem:    Various small things.
Solution:   Add file to list of distributed files.  Adjust README.  Fix typo.
Files:      Filelist, src/testdir/README.txt, src/testdir/test_charsearch.in,
            src/INSTALLmac.txt

Patch 7.4.1042
Problem:    g-CTRL-G shows the word count, but there is no way to get the word
            count in a script.
Solution:   Add the wordcount() function. (Christian Brabandt)
Files:      runtime/doc/editing.txt, runtime/doc/eval.txt,
            runtime/doc/usr_41.txt, src/eval.c, src/normal.c, src/ops.c,
            src/proto/ops.pro, src/testdir/test_wordcount.in,
            src/testdir/test_wordcount.ok, src/testdir/Make_all.mak

Patch 7.4.1043
Problem:    Another small thing.
Solution:   Now really update the Mac install text.
Files:      src/INSTALLmac.txt

Patch 7.4.1044 (after 7.4.1042)
Problem:    Can't build without the +eval feature.
Solution:   Add #ifdef.
Files:      src/ops.c

Patch 7.4.1045
Problem:    Having shadow and coverage on the same build results in the source
            files not being available in the coverage view.
Solution:   Move using shadow to the normal build.
Files:      .travis.yml

Patch 7.4.1046
Problem:    No test coverage for menus.
Solution:   Load the standard menus and check there is no error.
Files:      testdir/test_menu.vim, testdir/test_alot.vim

Patch 7.4.1047 (after patch 7.4.1042)
Problem:    Tests fail on MS-Windows.
Solution:   Set 'selection' to inclusive.
Files:      src/testdir/test_wordcount.in

Patch 7.4.1048 (after patch 7.4.1047)
Problem:    Wordcount test still fail on MS-Windows.
Solution:   Set 'fileformat' to "unix".
Files:      src/testdir/test_wordcount.in

Patch 7.4.1049 (after patch 7.4.1048)
Problem:    Wordcount test still fails on MS-Windows.
Solution:   Set 'fileformats' to "unix".
Files:      src/testdir/test_wordcount.in

Patch 7.4.1050
Problem:    Warning for unused var with tiny features. (Tony Mechelynck)
Solution:   Add #ifdef.  Use vim_snprintf().  Reduce number of statements.
Files:      src/ops.c

Patch 7.4.1051
Problem:    Segfault when unletting "count".
Solution:   Check for readonly and locked first. (Dominique Pelle)
            Add a test.
Files:      src/eval.c, src/testdir/test_alot.vim, src/testdir/test_unlet.vim

Patch 7.4.1052
Problem:    Illegal memory access with weird syntax command. (Dominique Pelle)
Solution:   Check for column past end of line.
Files:      src/syntax.c

Patch 7.4.1053
Problem:    Insufficient testing for quickfix commands.
Solution:   Add a new style quickfix test. (Yegappan Lakshmanan)
Files:      src/testdir/Make_all.mak, src/testdir/test_quickfix.vim

Patch 7.4.1054
Problem:    Illegal memory access.
Solution:   Check for missing pattern. (Dominique Pelle)
Files:      src/syntax.c

Patch 7.4.1055
Problem:    Running "make newtests" in src/testdir has no output.
Solution:   List the messages file when a test fails. (Christian Brabandt)
            Update the list of tests.
Files:      src/Makefile, src/testdir/Makefile

Patch 7.4.1056
Problem:    Don't know why finding spell suggestions is slow.
Solution:   Add some code to gather profiling information.
Files:      src/spell.c

Patch 7.4.1057
Problem:    Typos in the :options window.
Solution:   Fix the typos. (Dominique Pelle)
Files:      runtime/optwin.vim

Patch 7.4.1058
Problem:    It is not possible to test code that is only reached when memory
            allocation fails.
Solution:   Add the alloc_fail() function.  Try it out with :vimgrep.
Files:      runtime/doc/eval.txt, src/globals.h, src/eval.c, src/quickfix.c,
            src/misc2.c, src/proto/misc2.pro, src/testdir/test_quickfix.vim

Patch 7.4.1059
Problem:    Code will never be executed.
Solution:   Remove the code.
Files:      src/quickfix.c

Patch 7.4.1060
Problem:    Instructions for writing tests are outdated.
Solution:   Mention Make_all.mak.  Add steps for new style tests.
Files:      src/testdir/README.txt

Patch 7.4.1061
Problem:    Compiler warning for ignoring return value of fwrite().
Solution:   Do use the return value. (idea: Charles Campbell)
Files:      src/misc2.c, src/proto/misc2.pro

Patch 7.4.1062
Problem:    Building with Ruby on MS-Windows requires a lot of arguments.
Solution:   Make it simpler. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 7.4.1063
Problem:    TCL_VER_LONG and DYNAMIC_TCL_VER are not set when building with
            Cygwin and MingW.
Solution:   Add TCL_VER_LONG and DYNAMIC_TCL_VER to the makefile. (Ken Takata)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1064
Problem:    When a spell file has single letter compounding creating
            suggestions takes an awful long time.
Solution:   Add the NOCOMPOUNDSUGS flag.
Files:      runtime/doc/spell.txt, src/spell.c

Patch 7.4.1065
Problem:    Cannot use the "dll" options on MS-Windows.
Solution:   Support the options on all platforms.  Use the built-in name as
            the default, so that it's clear what Vim is looking for.
Files:      src/if_python.c, src/if_python3.c, src/if_lua.c, src/if_perl.xs,
            src/if_ruby.c, src/option.c, runtime/doc/options.txt, src/Makefile

Patch 7.4.1066 (after 7.4.1065)
Problem:    Build fails on MS-Windows.
Solution:   Adjust the #ifdefs for "dll" options.
Files:      src/option.h

Patch 7.4.1067 (after 7.4.1065)
Problem:    Can't build with MingW and Python on MS-Windows.
Solution:   Move the build flags to CFLAGS.
Files:      src/Make_cyg_ming.mak

Patch 7.4.1068
Problem:    Wrong way to check for unletting internal variables.
Solution:   Use a better way. (Olaf Dabrunz)
Files:      src/testdir/test_unlet.c, src/eval.c

Patch 7.4.1069
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
Files:      src/misc2.c

Patch 7.4.1070
Problem:    The Tcl interface can't be loaded dynamically on Unix.
Solution:   Make it possible to load it dynamically. (Ken Takata)
Files:      runtime/doc/if_tcl.txt, runtime/doc/options.txt,
            runtime/doc/quickref.txt, runtime/optwin.vim, src/Makefile,
            src/config.h.in, src/configure.in, src/auto/configure,
            src/if_tcl.c, src/option.c, src/option.h

Patch 7.4.1071
Problem:    New style tests are executed in arbitrary order.
Solution:   Sort the test function names. (Hirohito Higashi)
            Fix the quickfix test that depended on the order.
Files:      src/testdir/runtest.vim, src/testdir/test_quickfix.vim

Patch 7.4.1072
Problem:    Increment test is old style.
Solution:   Make the increment test a new style test. (Hirohito Higashi)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_increment.in, src/testdir/test_increment.ok,
            src/testdir/test_increment.vim

Patch 7.4.1073
Problem:    Alloc_id depends on numbers, may use the same one twice.  It's not
            clear from the number what it's for.
Solution:   Use an enum.  Add a function to lookup the enum value from the
            name.
Files:      src/misc2.c, src/vim.h, src/alloc.h, src/globals.h,
            src/testdir/runtest.vim, src/proto/misc2.pro,
            src/testdir/test_quickfix.vim

Patch 7.4.1074
Problem:    Warning from VC2015 compiler.
Solution:   Add a type cast. (Mike Williams)
Files:      src/gui_dwrite.cpp

Patch 7.4.1075
Problem:    Crash when using an invalid command.
Solution:   Fix generating the error message. (Dominique Pelle)
Files:      src/ex_docmd.c

Patch 7.4.1076
Problem:    CTRL-A does not work well in right-left mode.
Solution:   Remove reversing the line, add a test. (Hirohito Higashi)
Files:      src/ops.c, src/testdir/test_increment.vim

Patch 7.4.1077
Problem:    The build instructions for MS-Windows are incomplete.
Solution:   Add explanations for how to build with various interfaces. (Ken
            Takata)
Files:      src/INSTALLpc.txt

Patch 7.4.1078
Problem:    MSVC: "make clean" doesn't cleanup in the tee directory.
Solution:   Add the commands to cleanup tee. (Erich Ritz)
Files:      src/Make_mvc.mak

Patch 7.4.1079 (after 7.4.1073)
Problem:    New include file missing from distribution.  Missing changes to
            quickfix code.
Solution:   Add alloc.h to the list of distributed files. Use the enum in
            quickfix code.
Files:      Filelist, src/quickfix.c

Patch 7.4.1080
Problem:    VS2015 has a function HandleToLong() that is shadowed by the macro
            that Vim defines.
Solution:   Do not define HandleToLong() for MSVC version 1400 and later.
            (Mike Williams)
Files:      src/gui_w32.c

Patch 7.4.1081
Problem:    No test for what previously caused a crash.
Solution:   Add test for unletting errmsg.
Files:      src/testdir/test_unlet.vim

Patch 7.4.1082
Problem:    The Tcl interface is always skipping memory free on exit.
Solution:   Only skip for dynamically loaded Tcl.
Files:      src/if_tcl.c

Patch 7.4.1083
Problem:    Building GvimExt with VS2015 may fail.
Solution:   Adjust the makefile. (Mike Williams)
Files:      src/GvimExt/Makefile

Patch 7.4.1084
Problem:    Using "." to repeat CTRL-A in Visual mode increments the wrong
            numbers.
Solution:   Append right size to the redo buffer. (Ozaki Kiichi)
Files:      src/normal.c, src/testdir/test_increment.vim

Patch 7.4.1085
Problem:    The CTRL-A and CTRL-X commands do not update the '[ and '] marks.
Solution:   (Yukihiro Nakadaira)
Files:      src/ops.c, src/testdir/test_marks.in, src/testdir/test_marks.ok

Patch 7.4.1086
Problem:    Crash with an extremely long buffer name.
Solution:   Limit the return value of vim_snprintf(). (Dominique Pelle)
Files:      src/buffer.c

Patch 7.4.1087
Problem:    CTRL-A and CTRL-X do not work properly with blockwise visual
            selection if there is a mix of Tab and spaces.
Solution:   Add OP_NR_ADD and OP_NR_SUB. (Hirohito Higashi)
Files:      src/testdir/test_increment.vim, src/normal.c, src/ops.c,
            src/proto/ops.pro, src/vim.h

Patch 7.4.1088
Problem:    Coverity warns for uninitialized variables.  Only one is an actual
            problem.
Solution:   Move the conditions.  Don't use endpos if handling an error.
Files:      src/ops.c

Patch 7.4.1089
Problem:    Repeating CTRL-A doesn't work.
Solution:   Call prep_redo_cmd(). (Hirohito Higashi)
Files:      src/normal.c, src/testdir/test_increment.vim

Patch 7.4.1090
Problem:    No tests for :hardcopy and related options.
Solution:   Add test_hardcopy.
Files:      src/testdir/test_hardcopy.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 7.4.1091
Problem:    When making a change while need_wait_return is set there is a two
            second delay.
Solution:   Do not assume the ATTENTION prompt was given when need_wait_return
            was set already.
Files:      src/misc1.c

Patch 7.4.1092
Problem:    It is not simple to test for an exception and give a proper error
            message.
Solution:   Add assert_exception().
Files:      src/eval.c, runtime/doc/eval.txt

Patch 7.4.1093
Problem:    Typo in test goes unnoticed.
Solution:   Fix the typo. Give error for wrong arguments to cursor().
            (partly by Hirohito Higashi) Add a test for cursor().
Files:      src/testdir/test_searchpos.vim, src/testdir/test_cursor_func.vim,
            src/eval.c, src/testdir/test_alot.vim

Patch 7.4.1094
Problem:    Test for :hardcopy fails on MS-Windows.
Solution:   Check for the +postscript feature.
Files:      src/testdir/test_hardcopy.vim

Patch 7.4.1095
Problem:    Can't build GvimExt with SDK 7.1.
Solution:   Support using setenv.bat instead of vcvars32.bat. (Ken Takata)
Files:      src/Make_mvc.mak, src/GvimExt/Makefile

Patch 7.4.1096
Problem:    Need several lines to verify a command produces an error.
Solution:   Add assert_fails(). (suggested by Nikolai Pavlov)
            Make the quickfix alloc test actually work.
Files:      src/testdir/test_quickfix.vim, src/eval.c, runtime/doc/eval.txt,
            src/misc2.c, src/alloc.h

Patch 7.4.1097
Problem:    Looking up the alloc ID for tests fails.
Solution:   Fix the line computation.  Use assert_fails() for unlet test.
Files:      src/testdir/runtest.vim, src/testdir/test_unlet.vim

Patch 7.4.1098
Problem:    Still using old style C function declarations.
Solution:   Always define __ARGS() to include types.  Turn a few functions
            into ANSI style to find out if this causes problems for anyone.
Files:      src/vim.h, src/os_unix.h, src/eval.c, src/main.c

Patch 7.4.1099
Problem:    It's not easy to know if Vim supports blowfish. (Smu Johnson)
Solution:   Add has('crypt-blowfish') and has('crypt-blowfish2').
Files:      src/eval.c

Patch 7.4.1100
Problem:    Cygwin makefiles are unused.
Solution:   Remove them.
Files:      src/GvimExt/Make_ming.mak, src/GvimExt/Make_cyg.mak,
            src/xxd/Make_ming.mak, src/xxd/Make_cyg.mak

Patch 7.4.1101
Problem:    With 'rightleft' and concealing the cursor may move to the wrong
            position.
Solution:   Compute the column differently when 'rightleft' is set. (Hirohito
            Higashi)
Files:      src/screen.c

Patch 7.4.1102
Problem:    Debugger has no stack backtrace support.
Solution:   Add "backtrace", "frame", "up" and "down" commands. (Alberto
            Fanjul, closes #433)
Files:      runtime/doc/repeat.txt, src/eval.c, src/ex_cmds2.c, src/globals.h,
            src/testdir/Make_all.mak, src/testdir/test108.in,
            src/testdir/test108.ok

Patch 7.4.1103 (after 7.4.1100)
Problem:    Removed file still in distribution.
Solution:   Remove Make_cyg.mak from the list of files.
Files:      Filelist

Patch 7.4.1104
Problem:    Various problems building with MzScheme/Racket.
Solution:   Make it work with new versions of Racket. (Yukihiro Nakadaira, Ken
            Takata)
Files:      runtime/doc/if_mzsch.txt, src/INSTALLpc.txt,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
            src/configure.in, src/if_mzsch.c

Patch 7.4.1105
Problem:    When using slices there is a mixup of variable name and namespace.
Solution:   Recognize variables that can't be a namespace. (Hirohito Higashi)
Files:      src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok

Patch 7.4.1106
Problem:    The nsis script can't be used from the appveyor build.
Solution:   Add "ifndef" to allow for variables to be set from the command
            line. Remove duplicate SetCompressor command. Support using other
            gettext binaries. (Ken Takata)  Update build instructions to use
            libintl-8.dll.
Files:      Makefile, nsis/gvim.nsi, src/os_win32.c, src/proto/os_win32.pro,
            src/main.c, os_w32exe.c

Patch 7.4.1107
Problem:    Vim can create a directory but not delete it.
Solution:   Add an argument to delete() to make it possible to delete a
            directory, also recursively.
Files:      src/fileio.c, src/eval.c, src/proto/fileio.pro,
            src/testdir/test_delete.vim, src/testdir/test_alot.vim,
            runtime/doc/eval.txt

Patch 7.4.1108
Problem:    Expanding "~" halfway a file name.
Solution:   Handle the file name as one name. (Marco Hinz)  Add a test.
            Closes #564.
Files:      src/testdir/test27.in, src/testdir/test27.ok,
            src/testdir/test_expand.vim, src/testdir/test_alot.vim,
            src/Makefile, src/misc2.c

Patch 7.4.1109 (after 7.4.1107)
Problem:    MS-Windows doesn't have rmdir().
Solution:   Add mch_rmdir().
Files:      src/os_win32.c, src/proto/os_win32.pro

Patch 7.4.1110
Problem:    Test 108 fails when language is French.
Solution:   Force English messages. (Dominique Pelle)
Files:      src/testdir/test108.in

Patch 7.4.1111
Problem:    test_expand fails on MS-Windows.
Solution:   Always use forward slashes.  Remove references to test27.
Files:      src/testdir/runtest.vim, src/testdir/test_expand.vim,
            src/testdir/Make_dos.mak, src/testdir/Make_all.mak,
            src/testdir/Make_amiga.mak, src/testdir/Make_ming.mak

Patch 7.4.1112
Problem:    When using ":next" with an illegal file name no error is reported.
Solution:   Give an error message.
Files:      src/ex_cmds2.c

Patch 7.4.1113 (after 7.4.1105)
Problem:    Using {ns} in variable name does not work. (lilydjwg)
Solution:   Fix recognizing colon.  Add a test.
Files:      src/eval.c, src/testdir/test_viml.vim

Patch 7.4.1114 (after 7.4.1107)
Problem:    delete() does not work well with symbolic links.
Solution:   Recognize symbolic links.
Files:      src/eval.c, src/fileio.c, src/os_unix.c, src/proto/os_unix.pro,
            src/testdir/test_delete.vim, runtime/doc/eval.txt

Patch 7.4.1115
Problem:    MS-Windows: make clean in testdir doesn't clean everything.
Solution:   Add command to delete X* directories. (Ken Takata)
Files:      src/testdir/Make_dos.mak

Patch 7.4.1116
Problem:    delete(x, 'rf') does not delete files starting with a dot.
Solution:   Also delete files starting with a dot.
Files:      src/misc1.c, src/fileio.c, src/vim.h

Patch 7.4.1117 (after 7.4.1116)
Problem:    No longer get "." and ".." in directory list.
Solution:   Do not skip "." and ".." unless EW_DODOT is set.
Files:      src/mics1.c

Patch 7.4.1118
Problem:    Tests hang in 24 line terminal.
Solution:   Set the 'more' option off.
Files:      src/testdir/runtest.vim

Patch 7.4.1119
Problem:    argidx() has a wrong value after ":%argdelete". (Yegappan
            Lakshmanan)
Solution:   Correct the value of w_arg_idx.  Add a test.
Files:      src/ex_cmds2.c, src/testdir/test_arglist.vim,
            src/testdir/Make_all.mak

Patch 7.4.1120
Problem:    delete(x, 'rf') fails if a directory is empty. (Lcd)
Solution:   Ignore not finding matches in an empty directory.
Files:      src/fileio.c, src/misc1.c, src/vim.h, src/testdir/test_delete.vim

Patch 7.4.1121
Problem:    test_expand leaves files behind.
Solution:   Edit another file before deleting, otherwise the swap file
            remains.
Files:      src/testdir/test_expand.vim

Patch 7.4.1122
Problem:    Test 92 and 93 fail when using gvim on a system with a non utf-8
            locale.
Solution:   Avoid using .gvimrc by adding -U NONE. (Yukihiro Nakadaira)
Files:      src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile

Patch 7.4.1123
Problem:    Using ":argadd" when there are no arguments results in the second
            argument to be the current one. (Yegappan Lakshmanan)
Solution:   Correct the w_arg_idx value.
Files:      src/ex_cmds2.c, src/testdir/test_arglist.vim

Patch 7.4.1124
Problem:    MS-Windows: dead key behavior is not ideal.
Solution:   Handle dead keys differently when not in Insert or Select mode.
            (John Wellesz, closes #399)
Files:      src/gui_w48.c

Patch 7.4.1125
Problem:    There is no perleval().
Solution:   Add perleval(). (Damien)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
            src/if_perl.xs, src/proto/if_perl.pro, src/testdir/Make_all.mak,
            src/testdir/test_perl.vim

Patch 7.4.1126
Problem:    Can only get the directory of the current window.
Solution:   Add window and tab arguments to getcwd() and haslocaldir().
            (Thinca, Hirohito Higashi)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_getcwd.in, src/testdir/test_getcwd.ok,
            runtime/doc/eval.txt, patching file src/eval.c

Patch 7.4.1127
Problem:    Both old and new style tests for Perl.
Solution:   Merge the old tests with the new style tests.
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test_perl.in,
            src/testdir/test_perl.ok, src/testdir/test_perl.vim

Patch 7.4.1128
Problem:    MS-Windows: delete() does not recognize junctions.
Solution:   Add mch_isrealdir() for MS-Windows. Update mch_is_symbolic_link().
            (Ken Takata)
Files:      src/fileio.c, src/os_win32.c, src/proto/os_win32.pro

Patch 7.4.1129
Problem:    Python None value can't be converted to a Vim value.
Solution:   Just use zero. (Damien)
Files:      src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
            src/testdir/test87.in, src/testdir/test87.ok,

Patch 7.4.1130
Problem:    Memory leak in :vimgrep.
Solution:   Call FreeWild(). (Yegappan Lakshmanan)
Files:      src/quickfix.c

Patch 7.4.1131
Problem:    New lines in the viminfo file are dropped.
Solution:   Copy lines starting with "|".  Fix that when using :rviminfo in a
            function global variables were restored as function-local
            variables.
Files:      src/eval.c, src/structs.h, src/ex_cmds.c, src/misc2.c,
            src/proto/misc2.pro, src/testdir/test_viminfo.vim,
            src/testdir/Make_all.mak, src/testdir/test74.in,
            src/testdir/test74.ok

Patch 7.4.1132
Problem:    Old style tests for the argument list.
Solution:   Add more new style tests. (Yegappan Lakshmanan)
Files:      src/testdir/test_arglist.vim, src/testdir/test_argument_0count.in,
            src/testdir/test_argument_0count.ok,
            src/testdir/test_argument_count.in, src/Makefile,
            src/testdir/test_argument_count.ok, src/testdir/Make_all.mak

Patch 7.4.1133
Problem:    Generated function prototypes still have __ARGS().
Solution:   Generate function prototypes without __ARGS().
Files:      src/Makefile, src/if_ruby.c, src/os_win32.c,
            src/proto/blowfish.pro, src/proto/buffer.pro,
            src/proto/charset.pro, src/proto/crypt.pro,
            src/proto/crypt_zip.pro, src/proto/diff.pro,
            src/proto/digraph.pro, src/proto/edit.pro, src/proto/eval.pro,
            src/proto/ex_cmds2.pro, src/proto/ex_cmds.pro,
            src/proto/ex_docmd.pro, src/proto/ex_eval.pro,
            src/proto/ex_getln.pro, src/proto/fileio.pro, src/proto/fold.pro,
            src/proto/getchar.pro, src/proto/gui_athena.pro,
            src/proto/gui_beval.pro, src/proto/gui_gtk_gresources.pro,
            src/proto/gui_gtk.pro, src/proto/gui_gtk_x11.pro,
            src/proto/gui_mac.pro, src/proto/gui_motif.pro,
            src/proto/gui_photon.pro, src/proto/gui.pro,
            src/proto/gui_w16.pro, src/proto/gui_w32.pro,
            src/proto/gui_x11.pro, src/proto/gui_xmdlg.pro,
            src/proto/hangulin.pro, src/proto/hardcopy.pro,
            src/proto/hashtab.pro, src/proto/if_cscope.pro,
            src/proto/if_lua.pro, src/proto/if_mzsch.pro,
            src/proto/if_ole.pro, src/proto/if_perl.pro,
            src/proto/if_perlsfio.pro, src/proto/if_python3.pro,
            src/proto/if_python.pro, src/proto/if_ruby.pro,
            src/proto/if_tcl.pro, src/proto/if_xcmdsrv.pro,
            src/proto/main.pro, src/proto/mark.pro, src/proto/mbyte.pro,
            src/proto/memfile.pro, src/proto/memline.pro, src/proto/menu.pro,
            src/proto/message.pro, src/proto/misc1.pro, src/proto/misc2.pro,
            src/proto/move.pro, src/proto/netbeans.pro, src/proto/normal.pro,
            src/proto/ops.pro, src/proto/option.pro, src/proto/os_amiga.pro,
            src/proto/os_beos.pro, src/proto/os_mac_conv.pro,
            src/proto/os_msdos.pro, src/proto/os_mswin.pro,
            src/proto/os_qnx.pro, src/proto/os_unix.pro, src/proto/os_vms.pro,
            src/proto/os_win16.pro, src/proto/os_win32.pro,
            src/proto/popupmnu.pro, src/proto/pty.pro, src/proto/quickfix.pro,
            src/proto/regexp.pro, src/proto/screen.pro, src/proto/search.pro,
            src/proto/sha256.pro, src/proto/spell.pro, src/proto/syntax.pro,
            src/proto/tag.pro, src/proto/termlib.pro, src/proto/term.pro,
            src/proto/ui.pro, src/proto/undo.pro, src/proto/version.pro,
            src/proto/winclip.pro, src/proto/window.pro,
            src/proto/workshop.pro

Patch 7.4.1134
Problem:    The arglist test fails on MS-Windows.
Solution:   Only check for failure of argedit on Unix.
Files:      src/testdir/test_arglist.vim

Patch 7.4.1135
Problem:    One more arglist test fails on MS-Windows.
Solution:   Don't edit "Y" after editing "y".
Files:      src/testdir/test_arglist.vim

Patch 7.4.1136
Problem:    Wrong argument to assert_exception() causes a crash. (reported by
            Coverity)
Solution:   Check for NULL pointer.  Add a test.
Files:      src/eval.c, src/testdir/test_assert.vim

Patch 7.4.1137
Problem:    Illegal memory access when using :copen and :cclose.
Solution:   Avoid that curbuf is invalid. (suggestion by Justin M. Keyes)
            Add a test.
Files:      src/window.c, src/testdir/test_quickfix.vim

Patch 7.4.1138
Problem:    When running gvim in the foreground some icons are missing.
            (Taylor Venable)
Solution:   Move the call to gui_gtk_register_resource(). (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 7.4.1139
Problem:    MS-Windows: getftype() returns "file" for symlink to directory.
Solution:   Make it return "dir". (Ken Takata)
Files:      src/os_mswin.c

Patch 7.4.1140
Problem:    Recognizing <sid> does not work when the language is Turkish.
            (Christian Brabandt)
Solution:   Use MB_STNICMP() instead of STNICMP().
Files:      src/eval.c

Patch 7.4.1141
Problem:    Using searchpair() with a skip expression that uses syntax
            highlighting sometimes doesn't work. (David Fishburn)
Solution:   Reset next_match_idx. (Christian Brabandt)
Files:      src/syntax.c

Patch 7.4.1142
Problem:    Cannot define keyword characters for a syntax file.
Solution:   Add the ":syn iskeyword" command. (Christian Brabandt)
Files:      runtime/doc/options.txt, runtime/doc/syntax.txt, src/buffer.c,
            src/option.c, src/structs.h, src/syntax.c,
            src/testdir/Make_all.mak, src/testdir/test_syntax.vim

Patch 7.4.1143
Problem:    Can't sort on floating point numbers.
Solution:   Add the "f" flag to ":sort".  (Alex Jakushev)  Also add the "f"
            flag to sort().
Files:      runtime/doc/change.txt, src/ex_cmds.c, src/testdir/test_sort.vim,
            src/testdir/test57.in, src/testdir/test57.ok, src/eval.c

Patch 7.4.1144 (after 7.4.1143)
Problem:    Can't build on several systems.
Solution:   Include float.h. (Christian Robinson, closes #570 #571)
Files:      src/ex_cmds.c

Patch 7.4.1145
Problem:    Default features are conservative.
Solution:   Make the default feature set for most of today's systems "huge".
Files:      src/feature.h, src/configure.in, src/auto/configure

Patch 7.4.1146
Problem:    Can't build with Python 3 interface using MingW.
Solution:   Update the Makefile. (Yasuhiro Matsumoto, Ken Takata)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1147
Problem:    Conflict for "chartab". (Kazunobu Kuriyama)
Solution:   Rename the global one to something less obvious.  Move it into
            src/chartab.c.
Files:      src/macros.h, src/globals.h, src/charset.c, src/main.c,
            src/option.c, src/screen.c, src/vim.h

Patch 7.4.1148
Problem:    Default for MingW and Cygwin is still "normal".
Solution:   Use "huge" as default. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 7.4.1149 (after 7.4.1013)
Problem:    Using the local value of 'errorformat' causes more problems than
            it solves.
Solution:   Revert 7.4.1013.
Files:      runtime/doc/quickfix.txt, src/quickfix.c

Patch 7.4.1150
Problem:    'langmap' applies to the first character typed in Select mode.
            (David Watson)
Solution:   Check for SELECTMODE. (Christian Brabandt, closes #572)
            Add the 'x' flag to feedkeys().
Files:      src/getchar.c, src/normal.c, src/testdir/test_langmap.vim,
            src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/Make_all.mak,
            runtime/doc/eval.txt

Patch 7.4.1151 (after 7.4.1150)
Problem:    Missing change to eval.c
Solution:   Also change feedkeys().
Files:      src/eval.c

Patch 7.4.1152
Problem:    Langmap test fails with normal build.
Solution:   Check for +langmap feature.
Files:      src/testdir/test_langmap.vim

Patch 7.4.1153
Problem:    Autocommands triggered by quickfix cannot always get the current
            title value.
Solution:   Call qf_fill_buffer() later. (Christian Brabandt)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1154
Problem:    No support for JSON.
Solution:   Add jsonencode() and jsondecode().  Also add v:false, v:true,
            v:null and v:none.
Files:      src/json.c, src/eval.c, src/proto.h, src/structs.h, src/vim.h,
            src/if_lua.c, src/if_mzsch.c, src/if_ruby.c, src/if_py_both.h,
            src/globals.h, src/Makefile, src/Make_bc3.mak, src/Make_bc5.mak,
            src/Make_cyg_ming.mak, src/Make_dice.mak, src/Make_ivc.mak,
            src/Make_manx.mak, src/Make_morph.mak, src/Make_mvc.mak,
            src/Make_sas.mak, src/Make_vms.mms, src/proto/json.pro,
            src/proto/eval.pro, src/testdir/test_json.vim,
            src/testdir/test_alot.vim, Filelist, runtime/doc/eval.txt

Patch 7.4.1155
Problem:    Build with normal features fails.
Solution:   Always define dict_lookup().
Files:      src/eval.c

Patch 7.4.1156
Problem:    Coverity warns for NULL pointer and ignoring return value.
Solution:   Check for NULL pointer. When dict_add() returns FAIL free the item.
Files:      src/json.c

Patch 7.4.1157
Problem:    type() does not work for v:true, v:none, etc.
Solution:   Add new type numbers.
Files:      src/eval.c, src/testdir/test_json.vim, src/testdir/test_viml.vim

Patch 7.4.1158
Problem:    Still using __ARGS().
Solution:   Remove __ARGS() from eval.c
Files:      src/eval.c

Patch 7.4.1159
Problem:    Automatically generated function prototypes use __ARGS.
Solution:   Remove __ARGS from osdef.sh.
Files:      src/osdef.sh, src/osdef1.h.in, src/osdef2.h.in

Patch 7.4.1160
Problem:    No error for jsondecode('"').
Solution:   Give an error message for missing double quote.
Files:      src/json.c

Patch 7.4.1161
Problem:    ":argadd" without argument is supposed to add the current buffer
            name to the arglist.
Solution:   Make it work as documented. (Coot, closes #577)
Files:      src/ex_cmds.h, src/ex_cmds2.c, src/testdir/test_arglist.vim

Patch 7.4.1162
Problem:    Missing error number in MzScheme. (Dominique Pelle)
Solution:   Add a proper error number.
Files:      src/if_mzsch.c

Patch 7.4.1163
Problem:    Expressions "0 + v:true" and "'' . v:true" cause an error.
Solution:   Return something sensible when using a special variable as a
            number or as a string. (suggested by Damien)
Files:      src/eval.c, src/testdir/test_viml.vim

Patch 7.4.1164
Problem:    No tests for comparing special variables.  Error in jsondecode()
            not reported.  test_json does not work with Japanese system.
Solution:   Set scriptencoding. (Ken Takata) Add a few more tests. Add error.
Files:      src/json.c, src/testdir/test_viml.vim, src/testdir/test_json.vim

Patch 7.4.1165
Problem:    When defining DYNAMIC_ICONV_DLL in the makefile, the build fails.
Solution:   Add #ifdef's. (Taro Muraoka)  Try the newer version first.
Files:      src/mbyte.c, src/os_win32.c

Patch 7.4.1166
Problem:    Can't encode a Funcref into JSON.  jsonencode() doesn't handle the
            same list or dict twice properly.  (Nikolai Pavlov)
Solution:   Give an error.  Reset copyID when the list or dict is finished.
Files:      src/json.c, src/proto/json.pro, src/testdir/test_json.vim

Patch 7.4.1167
Problem:    No tests for "is" and "isnot" with the new variables.
Solution:   Add tests.
Files:      src/testdir/test_viml.vim

Patch 7.4.1168
Problem:    This doesn't give the right result: eval(string(v:true)). (Nikolai
            Pavlov)
Solution:   Make the string "v:true" instead of "true".
Files:      src/eval.c, src/testdir/test_viml.vim

Patch 7.4.1169
Problem:    The socket I/O is intertwined with the netbeans code.
Solution:   Start refactoring the netbeans communication to split off the
            socket I/O.  Add the +channel feature.
Files:      src/channel.c, src/netbeans.c, src/proto/channel.pro,
            src/proto/netbeans.pro, src/proto/gui_w32.pro, src/gui_w32.c,
            src/eval.c, src/os_mswin.c, src/ui.c, src/macros.h, Makefile,
            src/proto.h, src/feature.h, src/os_unix.c, src/vim.h,
            src/configure.in, src/auto/configure, src/config.mk.in,
            src/config.aap.in, src/config.h.in, src/Make_bc5.mak,
            src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 7.4.1170 (after 7.4.1169)
Problem:    Missing changes in src/Makefile, Filelist.
Solution:   Add the missing changes.
Files:      Filelist, src/Makefile

Patch 7.4.1171
Problem:    Makefile dependencies are outdated.
Solution:   Run "make depend". Add GTK resource dependencies.
Files:      src/Makefile

Patch 7.4.1172 (after 7.4.1169)
Problem:    Configure is overly positive.
Solution:   Insert "test".
Files:      src/configure.in, src/auto/configure

Patch 7.4.1173 (after 7.4.1168)
Problem:    No test for new behavior of v:true et al.
Solution:   Add a test.
Files:      src/testdir/test_viml.vim

Patch 7.4.1174
Problem:    Netbeans contains dead code inside #ifndef INIT_SOCKETS.
Solution:   Remove the dead code.
Files:      src/netbeans.c

Patch 7.4.1175 (after 7.4.1169)
Problem:    Can't build with Mingw and Cygwin.
Solution:   Remove extra "endif". (Christian J. Robinson)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1176
Problem:    Missing change to proto file.
Solution:   Update the proto file. (Charles Cooper)
Files:      src/proto/gui_w32.pro

Patch 7.4.1177
Problem:    The +channel feature is not in :version output. (Tony Mechelynck)
Solution:   Add the feature string.
Files:      src/version.c

Patch 7.4.1178
Problem:    empty() doesn't work for the new special variables.
Solution:   Make empty() work. (Damien)
Files:      src/eval.c, src/testdir/test_viml.vim

Patch 7.4.1179
Problem:    test_writefile and test_viml do not delete the tempfile.
Solution:   Delete the tempfile. (Charles Cooper)  Add DeleteTheScript().
Files:      src/testdir/test_writefile.in, src/testdir/test_viml.vim

Patch 7.4.1180
Problem:    Crash with invalid argument to glob2regpat().
Solution:   Check for NULL. (Justin M. Keyes, closes #596)  Add a test.
Files:      src/eval.c, src/testdir/test_glob2regpat.vim,
            src/testdir/test_alot.vim

Patch 7.4.1181
Problem:    free_tv() can't handle special variables. (Damien)
Solution:   Add the variable type.
Files:      src/eval.c, src/testdir/test_viml.vim

Patch 7.4.1182
Problem:    Still socket code intertwined with netbeans.
Solution:   Move code from netbeans.c to channel.c
Files:      src/channel.c, src/netbeans.c, src/proto/channel.pro,
            src/proto/netbeans.pro, src/gui.c, src/gui_w48.c

Patch 7.4.1183 (after 7.4.1182)
Problem:    MS-Windows build is broken.
Solution:   Remove init in wrong place.
Files:      src/channel.c

Patch 7.4.1184 (after 7.4.1182)
Problem:    MS-Windows build is still broken.
Solution:   Change nbsock to ch_fd.
Files:      src/channel.c

Patch 7.4.1185
Problem:    Can't build with TCL on some systems.
Solution:   Rename the channel_ functions.
Files:      src/if_tcl.c

Patch 7.4.1186
Problem:    Error messages for security context are hard to translate.
Solution:   Use one string with %s. (Ken Takata)
Files:      src/os_unix.c

Patch 7.4.1187
Problem:    MS-Windows channel code only supports one channel.  Doesn't build
            without netbeans support.
Solution:   Get the channel index from the socket in the message. Closes #600.
Files:      src/channel.c, src/netbeans.c, src/gui_w48.c,
            src/proto/channel.pro, src/proto/netbeans.pro

Patch 7.4.1188
Problem:    Using older JSON standard.
Solution:   Update the link.  Adjust the text a bit.
Files:      src/json.c, runtime/doc/eval.txt

Patch 7.4.1189 (after 7.4.1165)
Problem:    Using another language on MS-Windows does not work. (Yongwei Wu)
Solution:   Undo the change to try loading libintl-8.dll first.
Files:      src/os_win32.c

Patch 7.4.1190
Problem:    On OSX the default flag for dlopen() is different.
Solution:   Add RTLD_LOCAL in the configure check. (sv99, closes #604)
Files:      src/configure.in, src/auto/configure

Patch 7.4.1191
Problem:    The channel feature isn't working yet.
Solution:   Add the connect(), disconnect(), sendexpr() and sendraw()
            functions.  Add initial documentation.  Add a demo server.
Files:      src/channel.c, src/eval.c, src/proto/channel.pro,
            src/proto/eval.pro, runtime/doc/channel.txt, runtime/doc/eval.txt,
            runtime/doc/Makefile, runtime/tools/demoserver.py

Patch 7.4.1192
Problem:    Can't build with FEAT_EVAL but without FEAT_MBYTE. (John
            Marriott)
Solution:   Add #ifdef for FEAT_MBYTE.
Files:      src/json.c

Patch 7.4.1193
Problem:    Can't build the channel feature on MS-Windows.
Solution:   Add #ifdef HAVE_POLL.
Files:      src/channel.c

Patch 7.4.1194
Problem:    Compiler warning for not using return value of fwrite().
Solution:   Return OK/FAIL. (Charles Campbell)
Files:      src/channel.c, src/proto/channel.pro

Patch 7.4.1195
Problem:    The channel feature does not work in the MS-Windows console.
Solution:   Add win32 console support. (Yasuhiro Matsumoto)
Files:      src/channel.c, src/gui_w32.c, src/os_mswin.c, src/os_win32.c,
            src/proto/gui_w32.pro, src/proto/os_mswin.pro, src/vim.h

Patch 7.4.1196
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
Files:      src/arabic.c, src/buffer.c, src/charset.c, src/crypt_zip.c,
            src/diff.c, src/digraph.c, src/edit.c, src/ex_cmds.c,
            src/ex_cmds2.c, src/ex_docmd.c

Patch 7.4.1197
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
Files:      src/ex_eval.c, src/ex_getln.c, src/farsi.c, src/fileio.c,
            src/fold.c, src/getchar.c, src/gui.c, src/gui_at_fs.c,
            gui_at_sb.c, src/gui_athena.c, src/gui_beval.c, src/gui_motif.c,
            src/gui_w32.c, src/gui_w48.c

Patch 7.4.1198
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
            Also remove use of HAVE_STDARG_H.
Files:      src/gui_x11.c, src/hangulin.c, src/hardcopy.c, src/hashtab.c,
            src/if_cscope.c, src/if_python3.c, src/if_sniff.c,
            src/if_xcmdsrv.c, src/main.c, src/mark.c, src/mbyte.c,
            src/memfile.c, src/memfile_test.c, src/memline.c, src/menu.c,
            src/message.c, src/misc1.c, src/misc2.c, src/move.c,
            src/netbeans.c, src/normal.c

Patch 7.4.1199
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
Files:      src/ops.c, src/option.c, src/os_amiga.c, src/os_mac_conv.c,
            src/os_unix.c, src/os_vms.c, src/os_w32exe.c, src/popupmnu.c,
            src/pty.c, src/quickfix.c, src/regexp.c, src/regexp_nfa.c,
            src/screen.c, src/search.c, src/sha256.c, src/spell.c,
            src/syntax.c, src/tag.c, src/term.c, src/termlib.c, src/ui.c,
            src/undo.c, src/version.c, src/window.c

Patch 7.4.1200
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
Files:      src/blowfish.c, src/ex_cmds2.c, src/ex_getln.c, src/fold.c,
            src/gui_beval.c, src/gui_w32.c, src/os_unix.c, src/os_win16.c,
            src/pty.c, src/regexp.c, src/syntax.c, src/xpm_w32.c,
            src/ex_cmds.h, src/globals.h, src/gui_at_sb.h, src/gui_beval.h,
            src/if_cscope.h, src/if_sniff.h, src/nbdebug.h, src/os_unix.h,
            src/proto.h, src/structs.h, src/vim.h, src/xpm_w32.h,
            src/if_perl.xs, src/proto/if_lua.pro, src/proto/pty.pro,
            runtime/tools/xcmdsrv_client.c,
            src/Makefile

Patch 7.4.1201
Problem:    One more file still using __ARGS.
Solution:   Remove __ARGS in the last file. (script by Hirohito Higashi)
Files:      src/gui_at_sb.c

Patch 7.4.1202
Problem:    Still one more file still using __ARGS.
Solution:   Remove __ARGS in the last file. (script by Hirohito Higashi)
            (closes #612)
Files:      src/proto/os_mac_conv.pro, src/os_mac_conv.c, src/Makefile

Patch 7.4.1203
Problem:    Still more files still using __ARGS.
Solution:   Remove __ARGS in really the last files.
Files:      src/proto/if_mzsch.pro, src/if_mzsch.c, src/vim.h,
            src/proto/gui_gtk_gresources.pro, src/proto/gui_mac.pro,
            src/proto/if_ole.pro, src/proto/os_qnx.pro, src/Makefile

Patch 7.4.1204
Problem:    Latin1 characters cause encoding conversion.
Solution:   Remove the characters.
Files:      src/gui_motif.c

Patch 7.4.1205
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/arabic.c, src/blowfish.c, src/buffer.c, src/channel.c,
            src/charset.c, src/crypt.c, src/crypt_zip.c, src/diff.c,
            src/digraph.c, src/edit.c, src/eval.c

Patch 7.4.1206
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
            src/ex_getln.c, src/farsi.c, src/fileio.c

Patch 7.4.1207
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/fold.c, src/getchar.c, src/gui_at_fs.c, src/gui_athena.c,
            src/gui_at_sb.c, src/gui_beval.c, src/gui.c, src/gui_gtk.c,
            src/gui_gtk_x11.c, src/gui_mac.c, src/gui_motif.c

Patch 7.4.1208
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/gui_photon.c, src/gui_w32.c, src/gui_w48.c, src/gui_x11.c,
            src/hangulin.c, src/hardcopy.c, src/hashtab.c, src/if_cscope.c,
            src/if_mzsch.c, src/if_perlsfio.c, src/if_python.c,
            src/if_python3.c, src/if_ruby.c, src/if_sniff.c, src/if_tcl.c,
            src/if_xcmdsrv.c, src/integration.c

Patch 7.4.1209 (after 7.4.1207)
Problem:    Can't build with Athena. (Elimar Riesebieter)
Solution:   Fix function declarations.
Files:      src/gui_athena.c, src/gui_x11.c, src/gui_at_sb.c, src/gui_at_fs.c

Patch 7.4.1210
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/main.c, src/mark.c, src/mbyte.c, src/memfile.c,
            src/memfile_test.c, src/memline.c, src/menu.c, src/message.c

Patch 7.4.1211
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/misc1.c, src/misc2.c, src/move.c, src/netbeans.c,
            src/normal.c, src/ops.c, src/option.c

Patch 7.4.1212 (after 7.4.1207)
Problem:    Can't build with Motif.
Solution:   Fix function declaration.(Dominique Pelle)
Files:      src/gui_motif.c

Patch 7.4.1213
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/os_amiga.c, src/os_mac_conv.c, src/os_msdos.d, src/os_mswin.c,
            src/os_qnx.c, src/os_unix.c, src/os_vms.c, src/os_win16.c,
            src/os_win32.c, src/popupmnu.c, src/pty.c, src/quickfix.c,
            src/regexp.c, src/regexp_nfa.c, src/screen.c

Patch 7.4.1214
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/search.c, src/sha256.c, src/spell.c, src/syntax.c, src/tag.c,
            src/term.c, src/termlib.c, src/ui.c, src/undo.c

Patch 7.4.1215
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
Files:      src/version.c, src/winclip.c, src/window.c, src/workshop.c,
            src/xpm_w32.c, runtime/doc/doctags.c,
            runtime/tools/xcmdsrv_client.c, src/po/sjiscorr.c, src/xxd/xxd.c

Patch 7.4.1216
Problem:    Still using HAVE_STDARG_H.
Solution:   Assume it's always defined.
Files:      src/eval.c, src/misc2.c, src/vim.h, src/proto.h, src/configure.in,
            src/auto/configure, config.h.in, src/os_amiga.h, src/os_msdos.h,
            src/os_vms_conf.h, src/os_win32.h

Patch 7.4.1217
Problem:    Execution of command on channel doesn't work yet.
Solution:   Implement the "ex" and "normal" commands.
Files:      src/channel.c, src/proto/channel.pro, src/misc2.c, src/eval.c,
            src/ex_docmd.c, src/proto/ex_docmd.pro, src/feature.h

Patch 7.4.1218
Problem:    Missing change in configure.  More changes for function style.
Solution:   Avoid the typos.
Files:      src/configure.in, src/config.h.in, runtime/tools/ccfilter.c,
            src/os_msdos.c

Patch 7.4.1219
Problem:    Build fails with +channel but without +float.
Solution:   Add #ifdef.
Files:      src/ex_cmds.c

Patch 7.4.1220
Problem:    Warnings for unused variables in tiny build. (Tony Mechelynck)
Solution:   Move declarations inside #ifdef. (Hirohito Higashi)
Files:      src/ex_cmds.c

Patch 7.4.1221
Problem:    Including netbeans and channel support in small and tiny builds.
            Build fails with some interfaces.
Solution:   Only include these features in small build and above.  Let
            configure fail if trying to enable an interface that won't build.
Files:      src/configure.in, src/auto/configure

Patch 7.4.1222
Problem:    ":normal" command and others missing in tiny build.
Solution:   Graduate FEAT_EX_EXTRA.
Files:      src/feature.h, src/charset.c, src/eval.c, src/ex_cmds.c,
            src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/getchar.c,
            src/normal.c, src/ui.c, src/version.c, src/globals.h

Patch 7.4.1223
Problem:    Crash when setting v:errors to a number.
Solution:   Free the typval without assuming its type. (Yasuhiro Matsumoto)
Files:      src/eval.c, src/testdir/test_assert.vim

Patch 7.4.1224
Problem:    Build problems with GTK on BSD. (Mike Williams)
Solution:   Don't use "$<". Skip building gui_gtk_gresources.h when it doesn't
            work. (Kazunobu Kuriyama)
Files:      src/Makefile

Patch 7.4.1225
Problem:    Still a few old style function declarations.
Solution:   Make them new style. (Hirohito Higashi)
Files:      runtime/tools/blink.c, src/eval.c, src/ex_cmds2.c, src/ex_getln.c,
            src/fileio.c, src/gui_w32.c, src/gui_x11.c, src/if_perl.xs,
            src/os_unix.c, src/po/sjiscorr.c, src/pty.c

Patch 7.4.1226
Problem:    GRESOURCE_HDR is unused.
Solution:   Remove it. (Kazunobu Kuriyama)
Files:      src/configure.in, src/auto/configure, src/config.mk.in

Patch 7.4.1227
Problem:    Compiler warnings.
Solution:   Add UNUSED.  Add type cast. (Yegappan Lakshmanan)
Files:      src/getchar.c, src/os_macosx.m

Patch 7.4.1228
Problem:    copy() and deepcopy() fail with special variables. (Nikolai
            Pavlov)
Solution:   Make it work.  Add a test.  Closes #614.
Files:      src/eval.c, src/testdir/test_viml.vim

Patch 7.4.1229
Problem:    "eval" and "expr" channel commands don't work yet.
Solution:   Implement them.  Update the error numbers.  Also add "redraw".
Files:      src/channel.c, src/eval.c, src/json.c, src/ex_docmd.c,
            src/proto/channel.pro, src/proto/json.pro, src/proto/ex_docmd.pro,
            runtime/doc/channel.txt

Patch 7.4.1230
Problem:    Win32: opening a channel may hang.  Not checking for messages
            while waiting for characters.
Solution:   Add a zero timeout.  Call parse_queued_messages(). (Yasuhiro
            Matsumoto)
Files:      src/os_win32.c

Patch 7.4.1231
Problem:    JSON messages are not parsed properly.
Solution:   Queue received messages.
Files:      src/eval.c src/channel.c, src/json.c, src/proto/eval.pro,
            src/proto/channel.pro, src/proto/json.pro, src/structs.h

Patch 7.4.1232
Problem:    Compiler warnings when the Sniff feature is enabled.
Solution:   Add UNUSED.
Files:      src/gui_gtk_x11.c

Patch 7.4.1233
Problem:    Channel command may cause a crash.
Solution:   Check for NULL argument. (Damien)
Files:      src/channel.c

Patch 7.4.1234
Problem:    Demo server only runs with Python 2.
Solution:   Make it run with Python 3 as well. (Ken Takata)
Files:      runtime/tools/demoserver.py

Patch 7.4.1235 (after 7.4.1231)
Problem:    Missing change to eval.c.
Solution:   Include that change.
Files:      src/eval.c

Patch 7.4.1236
Problem:    When "syntax manual" was used switching between buffers removes
            the highlighting.
Solution:   Set the syntax option without changing the value. (Anton
            Lindqvist)
Files:      runtime/syntax/manual.vim

Patch 7.4.1237
Problem:    Can't translate message without adding a line break.
Solution:   Join the two parts of the message.
Files:      src/memline.c

Patch 7.4.1238
Problem:    Can't handle two messages right after each other.
Solution:   Find the end of the JSON.  Read more when incomplete.  Add a C
            test for the JSON decoding.
Files:      src/channel.c, src/json.c, src/proto/json.pro, src/eval.c,
            src/Makefile, src/json_test.c, src/memfile_test.c, src/structs.h

Patch 7.4.1239
Problem:    JSON message after the first one is dropped.
Solution:   Put remainder of message back in the queue.
Files:      src/channel.c

Patch 7.4.1240
Problem:    Visual studio tools are noisy.
Solution:   Suppress startup info. (Mike Williams)
Files:      src/GvimExt/Makefile, src/Make_mvc.mak, src/tee/Make_mvc.mak

Patch 7.4.1241 (after 7.4.1238)
Problem:    Missing change in Makefile due to diff mismatch
Solution:   Update the list of object files.
Files:      src/Makefile

Patch 7.4.1242 (after 7.4.1238)
Problem:    json_test fails without the eval feature.
Solution:   Add #ifdef.
Files:      src/json_test.c

Patch 7.4.1243
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it. (Elias Diem)
Files:      src/json.c

Patch 7.4.1244
Problem:    The channel functions don't sort together.
Solution:   Use a common "ch_" prefix.
Files:      src/eval.c, runtime/doc/eval.txt, runtime/tools/demoserver.py

Patch 7.4.1245
Problem:    File missing from distribution.
Solution:   Add json_test.c.
Files:      Filelist

Patch 7.4.1246
Problem:    The channel functionality isn't tested.
Solution:   Add a test using a Python test server.
Files:      src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, src/testdir/test_channel.py,
            src/testdir/Make_all.mak

Patch 7.4.1247
Problem:    The channel test doesn't run on MS-Windows.
Solution:   Make it work on the MS-Windows console. (Ken Takata)
Files:      src/testdir/test_channel.py, src/testdir/test_channel.vim

Patch 7.4.1248
Problem:    Can't reliably stop the channel test server.  Can't start the
            server if the python file is not executable.
Solution:   Use "pkill" instead of "killall".  Run the python file as an
            argument instead of as an executable.
Files:      src/testdir/test_channel.vim

Patch 7.4.1249
Problem:    Crash when the process a channel is connected to exits.
Solution:   Use the file descriptor properly.  Add a test. (Damien)
            Also add a test for eval().
Files:      src/channel.c, src/testdir/test_channel.py,
            src/testdir/test_channel.vim

Patch 7.4.1250
Problem:    Running tests in shadow directory fails.
Solution:   Also link testdir/*.py
Files:      src/Makefile

Patch 7.4.1251
Problem:    New test file missing from distribution.
Solution:   Add src/testdir/*.py.
Files:      Filelist

Patch 7.4.1252
Problem:    The channel test server may receive two messages concatenated.
Solution:   Split the messages.
Files:      src/testdir/test_channel.py

Patch 7.4.1253
Problem:    Python test server not displaying second of two commands.
            Solaris doesn't have "pkill --full".
Solution:   Also echo the second command. Use "pkill -f".
Files:      src/testdir/test_channel.py, src/testdir/test_channel.vim

Patch 7.4.1254
Problem:    Opening a second channel causes a crash. (Ken Takata)
Solution:   Don't re-allocate the array with channels.
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel.py

Patch 7.4.1255
Problem:    Crash for channel "eval" command without third argument.
Solution:   Check for missing argument.
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel.py

Patch 7.4.1256
Problem:    On Mac sys.exit(0) doesn't kill the test server.
Solution:   Use self.server.shutdown(). (Jun Takimoto)
Files:      src/testdir/test_channel.py

Patch 7.4.1257
Problem:    Channel test fails in some configurations.
Solution:   Add check for the +channel feature.
Files:      src/testdir/test_channel.vim

Patch 7.4.1258
Problem:    The channel test can fail if messages arrive later.
Solution:   Add a short sleep. (Jun Takimoto)
Files:      src/testdir/test_channel.vim

Patch 7.4.1259
Problem:    No test for what patch 7.3.414 fixed.
Solution:   Add a test. (Elias Diem)
Files:      src/testdir/test_increment.vim

Patch 7.4.1260
Problem:    The channel feature doesn't work on Win32 GUI.
Solution:   Use WSAGetLastError(). (Ken Takata)
Files:      src/channel.c, src/testdir/test_channel.vim, src/vim.h

Patch 7.4.1261
Problem:    Pending channel messages are garbage collected. Leaking memory in
            ch_sendexpr().  Leaking memory for a decoded JSON string.
Solution:   Mark the message list as used. Free the encoded JSON.  Don't save
            the JSON string.
Files:      src/eval.c, src/channel.c, src/json.c, src/proto/channel.pro

Patch 7.4.1262
Problem:    The channel callback is not invoked.
Solution:   Make a list of pending callbacks.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 7.4.1263
Problem:    ch_open() hangs when the server isn't running.
Solution:   Add a timeout. Use a dict to pass arguments. (Yasuhiro Matsumoto)
Files:      runtime/doc/eval.txt, runtime/doc/channel.txt, src/channel.c,
            src/eval.c, src/netbeans.c, src/os_win32.c, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 7.4.1264
Problem:    Crash when receiving an empty array.
Solution:   Check for array with wrong number of arguments. (Damien)
Files:      src/channel.c, src/eval.c, src/testdir/test_channel.py,
            src/testdir.test_channel.vim

Patch 7.4.1265
Problem:    Not all channel commands are tested.
Solution:   Add a test for "normal", "expr" and "redraw".
Files:      src/testdir/test_channel.py, src/testdir/test_channel.vim

Patch 7.4.1266
Problem:    A BufAdd autocommand may cause an ml_get error (Christian
            Brabandt)
Solution:   Increment RedrawingDisabled earlier.
Files:      src/ex_cmds.c

Patch 7.4.1267
Problem:    Easy to miss handling all types of variables.
Solution:   Change the variable type into an enum.
Files:      src/structs.h, src/eval.c

Patch 7.4.1268
Problem:    Waittime is used as seconds instead of milliseconds. (Hirohito
            Higashi)
Solution:   Divide by 1000.
Files:      src/channel.c

Patch 7.4.1269
Problem:    Encoding {'key':v:none} to JSON doesn't give an error (Tyru)
Solution:   Give an error.
Files:      src/json.c, src/testdir/test_json.vim

Patch 7.4.1270
Problem:    Warnings for missing values in switch.
Solution:   Change switch to if-else or add values.
Files:      src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 7.4.1271
Problem:    assert_false(v:false) reports an error. (Nikolai Pavlov)
Solution:   Recognize v:true and v:false. (Closes #625)
Files:      src/eval.c, src/testdir/test_assert.vim

Patch 7.4.1272 (after 7.4.1270)
Problem:    Using future enum value.
Solution:   Remove it.
Files:      src/if_python.c, src/if_python3.c

Patch 7.4.1273 (after 7.4.1271)
Problem:    assert_false(v:false) still fails.
Solution:   Fix the typo.
Files:      src/eval.c

Patch 7.4.1274
Problem:    Cannot run a job.
Solution:   Add job_start(), job_status() and job_stop(). Currently only works
            for Unix.
Files:      src/eval.c, src/structs.h, runtime/doc/eval.txt, src/os_unix.c,
            src/proto/os_unix.pro, src/feature.h, src/version.c,
            src/testdir/test_channel.vim

Patch 7.4.1275 (after 7.4.1274)
Problem:    Build fails on MS-Windows.
Solution:   Fix wrong #ifdef.
Files:      src/eval.c

Patch 7.4.1276
Problem:    Warning for not using return value of fcntl().
Solution:   Explicitly ignore the return value.
Files:      src/fileio.c, src/channel.c, src/memfile.c, src/memline.c

Patch 7.4.1277
Problem:    Compiler can complain about missing enum value in switch with some
            combination of features.
Solution:   Remove #ifdefs around case statements.
Files:      src/eval.c

Patch 7.4.1278
Problem:    When jsonencode() fails it still returns something.
Solution:   Return an empty string on failure.
Files:      src/json.c, src/channel.c, src/testdir/test_json.vim,
            src/testdir/test_channel.vim, src/testdir/test_channel.py

Patch 7.4.1279
Problem:    jsonencode() is not producing strict JSON.
Solution:   Add jsencode() and jsdecode().  Make jsonencode() and jsondecode()
            strict.
Files:      src/json.c, src/json_test.c, src/proto/json.pro, src/channel.c,
            src/proto/channel.pro, src/eval.c, src/vim.h, src/structs.h,
            runtime/doc/eval.txt, runtime/doc/channel.txt,
            src/testdir/test_json.vim

Patch 7.4.1280
Problem:    Missing case value.
Solution:   Add VAR_JOB.
Files:      src/if_python.c, src/if_python3.c

Patch 7.4.1281
Problem:    No test for skipping over code that isn't evaluated.
Solution:   Add a test with code that would fail when not skipped.
Files:      src/testdir/test_viml.vim

Patch 7.4.1282
Problem:    Crash when evaluating the pattern of ":catch" causes an error.
            (Dominique Pelle)
Solution:   Block error messages at this point.
Files:      src/ex_eval.c

Patch 7.4.1283
Problem:    The job feature isn't available on MS-Windows.
Solution:   Add the job feature.  Fix argument of job_stop(). (Yasuhiro
            Matsumoto)
Files:      src/eval.c, src/feature.h, src/os_win32.c, src/proto/os_win32.pro

Patch 7.4.1284 (after 7.4.1282)
Problem:    Test 49 fails.
Solution:   Check for a different error message.
Files:      src/testdir/test49.vim

Patch 7.4.1285
Problem:    Cannot measure elapsed time.
Solution:   Add reltimefloat().
Files:      src/ex_cmds2.c, src/eval.c, src/proto/ex_cmds2.pro,
            src/testdir/test_reltime.vim, src/testdir/test_alot.vim

Patch 7.4.1286
Problem:    ch_open() with a timeout doesn't work correctly.
Solution:   Change how select() is used.  Don't give an error on timeout.
            Add a test for ch_open() failing.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1287 (after 7.4.1286)
Problem:    Channel test fails.
Solution:   Use reltimefloat().
Files:      src/testdir/test_channel.vim

Patch 7.4.1288
Problem:    ch_sendexpr() does not use JS encoding.
Solution:   Use the encoding that fits the channel mode.  Refuse using
            ch_sendexpr() on a raw channel.
Files:      src/channel.c, src/proto/channel.pro, src/eval.c

Patch 7.4.1289
Problem:    Channel test fails on MS-Windows, connect() takes too long.
Solution:   Adjust the test for MS-Windows using "waittime".
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1290
Problem:    Coverity complains about unnecessary check for NULL.
Solution:   Remove the check.
Files:      src/eval.c

Patch 7.4.1291
Problem:    On MS-Windows the channel test server doesn't quit.
Solution:   Use return instead of break. (Ken Takata)
Files:      src/testdir/test_channel.py

Patch 7.4.1292
Problem:    Some compilers complain about uninitialized variable, even though
            all possible cases are handled. (Dominique Pelle)
Solution:   Add a default initialization.
Files:      src/eval.c

Patch 7.4.1293
Problem:    Sometimes a channel may hang waiting for a message that was
            already discarded. (Ken Takata)
Solution:   Store the ID of the message blocking on in the channel.
Files:      src/channel.c

Patch 7.4.1294
Problem:    job_stop() only kills the started process.
Solution:   Send the signal to the process group. (Olaf Dabrunz)
Files:      src/os_unix.c

Patch 7.4.1295
Problem:    string(job) doesn't work well on MS-Windows.
Solution:   Use the process ID. (Yasuhiro Matsumoto)
Files:      src/eval.c

Patch 7.4.1296
Problem:    Cursor changes column with up motion when the matchparen plugin
            saves and restores the cursor position. (Martin Kunev)
Solution:   Make sure curswant is updated before invoking the autocommand.
Files:      src/edit.c

Patch 7.4.1297
Problem:    On Mac test_channel leaves python instances running.
Solution:   Use a small waittime to make ch_open() work. (Ozaki Kiichi)
Files:      src/testdir/test_channel.vim

Patch 7.4.1298
Problem:    When the channel test fails in an unexpected way the server keeps
            running.
Solution:   Use try/catch. (Ozaki Kiichi)
Files:      src/testdir/test_channel.vim

Patch 7.4.1299
Problem:    When the server sends a message with ID zero the channel handler
            is not invoked. (Christian J. Robinson)
Solution:   Recognize zero value for the request ID.  Add a test for invoking
            the channel handler.
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel.py

Patch 7.4.1300
Problem:    Cannot test CursorMovedI because there is typeahead.
Solution:   Add disable_char_avail_for_testing().
Files:      src/eval.c, src/getchar.c, src/globals.h,
            src/testdir/test_cursor_func.vim, src/testdir/README.txt

Patch 7.4.1301
Problem:    Missing options in ch_open().
Solution:   Add s:chopt like in the other calls. (Ozaki Kiichi)
Files:      src/testdir/test_channel.vim

Patch 7.4.1302
Problem:    Typo in struct field name. (Ken Takata)
Solution:   Rename jf_pi to jv_pi.
Files:      src/eval.c, src/os_win32.c, src/structs.h

Patch 7.4.1303
Problem:    A Funcref is not accepted as a callback.
Solution:   Make a Funcref work. (Damien)
Files:      src/eval.c, src/testdir/test_channel.vim

Patch 7.4.1304
Problem:    Function names are difficult to read.
Solution:   Rename jsonencode to json_encode, jsondecode to json_decode,
            jsencode to js_encode and jsdecode to js_decode.
Files:      src/eval.c, runtime/doc/eval.txt, src/testdir/test_json.vim

Patch 7.4.1305
Problem:    "\%1l^#.*" does not match on a line starting with "#".
Solution:   Do not clear the start-of-line flag. (Christian Brabandt)
Files:      src/regexp.c, src/regexp_nfa.c, src/testdir/test36.in,
            src/testdir/test36.ok

Patch 7.4.1306
Problem:    Job control doesn't work well on MS-Windows.
Solution:   Various fixes. (Ken Takata, Ozaki Kiichi, Yukihiro Nakadaira,
            Yasuhiro Matsumoto)
Files:      src/Make_mvc.mak, src/eval.c, src/os_unix.c, src/os_win32.c,
            src/proto/os_unix.pro, src/proto/os_win32.pro, src/structs.h

Patch 7.4.1307
Problem:    Some channel tests fail on MS-Windows.
Solution:   Disable the failing tests temporarily.
Files:      src/testdir/test_channel.vim

Patch 7.4.1308 (after 7.4.1307)
Problem:    Typo in test.
Solution:   Change endf to endif.
Files:      src/testdir/test_channel.vim

Patch 7.4.1309
Problem:    When a test fails not all relevant info is listed.
Solution:   Add the errors to the messages.
Files:      src/testdir/runtest.vim

Patch 7.4.1310
Problem:    Jobs don't open a channel.
Solution:   Create pipes and add them to the channel.  Add ch_logfile().
            Only Unix for now.
Files:      src/channel.c, src/eval.c, src/os_unix.c, src/structs.h,
            src/gui_w48.c, src/proto/channel.pro, src/testdir/test_channel.vim,
            src/testdir/test_channel_pipe.py, runtime/doc/eval.txt

Patch 7.4.1311 (after 7.4.1310)
Problem:    sock_T is defined too late.
Solution:   Move it up.
Files:      src/vim.h

Patch 7.4.1312 (after 7.4.1311)
Problem:    sock_T is not defined without the +channel feature.
Solution:   Always define it.
Files:      src/vim.h

Patch 7.4.1313
Problem:    MS-Windows: Using socket after it was closed causes an exception.
Solution:   Don't give an error when handling WM_NETBEANS.  Re-enable tests
            for MS-Windows.
Files:      src/gui_w48.c, src/testdir/test_channel.vim

Patch 7.4.1314
Problem:    Warning for uninitialized variable.
Solution:   Initialize it. (Dominique Pelle)
Files:      src/channel.c

Patch 7.4.1315
Problem:    Using a channel handle does not allow for freeing it when unused.
Solution:   Add the Channel variable type.
Files:      src/structs.h, src/channel.c, src/misc2.c, src/eval.c,
            src/if_python.c, src/if_python3.c, src/json.c, src/gui_w48.c,
            src/netbeans.c, src/proto/channel.pro, src/os_unix.c,
            src/testdir/test_channel.py, src/testdir/test_channel.vim

Patch 7.4.1316
Problem:    Can't build MS-Windows console version. (Tux)
Solution:   Add #ifdefs.
Files:      src/eval.c

Patch 7.4.1317
Problem:    MS-Windows: channel test fails.
Solution:   Temporarily disable Test_connect_waittime().
Files:      src/testdir/test_channel.vim

Patch 7.4.1318
Problem:    Channel with pipes doesn't work in GUI.
Solution:   Register input handlers for pipes.
Files:      src/structs.h, src/feature.h, src/channel.c, src/eval.c,
            src/os_unix.c, src/os_win32.c, src/gui_w48.c, src/proto/channel.pro

Patch 7.4.1319 (after 7.4.1318)
Problem:    Tests fail on MS-Windows and on Unix with GUI.
Solution:   Fix unregistering.
Files:      src/structs.h, src/channel.c, src/os_unix.c, src/os_win32.c,
            src/proto/channel.pro

Patch 7.4.1320
Problem:    Building with Cygwin or MingW with channel but without Netbeans
            doesn't work.
Solution:   Set NETBEANS to "no" when not used.
Files:      src/Make_cyg_ming.mak

Patch 7.4.1321
Problem:    Compiler complains about missing statement.
Solution:   Add an empty statement. (Andrei Olsen)
Files:      src/os_win32.c

Patch 7.4.1322
Problem:    Crash when unletting the variable that holds the channel in a
            callback function.  (Christian Robinson)
Solution:   Increase the reference count while invoking the callback.
Files:      src/eval.c, src/channel.c, src/proto/eval.pro,
            src/testdir/test_channel.vim

Patch 7.4.1323
Problem:    Do not get warnings when building with MingW.
Solution:   Remove the -w flag. (Ken Takata)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1324
Problem:    Channels with pipes don't work on MS-Windows.
Solution:   Add pipe I/O support. (Yasuhiro Matsumoto)
Files:      src/channel.c, src/os_win32.c, src/proto/channel.pro,
            src/structs.h, src/vim.h, src/testdir/test_channel.vim

Patch 7.4.1325
Problem:    Channel test fails on difference between Unix and DOS line endings.
Solution:   Strip off CR.  Make assert show difference better.
Files:      src/eval.c, src/channel.c

Patch 7.4.1326
Problem:    Build rules are bit too complicated.
Solution:   Remove -lwsock32 from Netbeans, it's already added for the channel
            feature that it depends on. (Tony Mechelynck)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1327
Problem:    Channel test doesn't work if Python executable is python.exe.
Solution:   Find py.exe or python.exe. (Ken Takata)
Files:      src/testdir/test_channel.vim

Patch 7.4.1328
Problem:    Can't compile with +job but without +channel. (John Marriott)
Solution:   Add more #ifdefs.
Files:      src/os_unix.c

Patch 7.4.1329
Problem:    Crash when using channel that failed to open.
Solution:   Check for NULL.  Update messages. (Yukihiro Nakadaira)
Files:      src/channel.c, src/eval.c, src/testdir/test_channel.vim

Patch 7.4.1330
Problem:    fd_read() has an unused argument.
Solution:   Remove the timeout. (Yasuhiro Matsumoto)
Files:      src/channel.c

Patch 7.4.1331
Problem:    Crash when closing the channel in a callback. (Christian J.
            Robinson)
Solution:   Take the callback out of the list before invoking it.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1332
Problem:    Problem using Python3 when compiled with MingW.
Solution:   Define PYTHON3_HOME as a wide character string. (Yasuhiro
            Matsumoto)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1333
Problem:    Channel test fails on non-darwin builds.
Solution:   Add the "osx" feature and test for that. (Kazunobu Kuriyama)
Files:      runtime/doc/eval.txt, src/eval.c, src/testdir/test_channel.vim

Patch 7.4.1334
Problem:    Many compiler warnings with MingW.
Solution:   Add type casts. (Yasuhiro Matsumoto)
Files:      src/channel.c, src/dosinst.h, src/eval.c, src/ex_cmds2.c,
            src/ex_getln.c, src/fileio.c, src/if_cscope.c, src/if_perl.xs,
            src/if_python.c, src/if_python3.c, src/if_ruby.c, src/main.c,
            src/mbyte.c, src/misc1.c, src/option.c, src/os_mswin.c,
            src/os_win32.c

Patch 7.4.1335
Problem:    Can't build on MS-Windows with +job but without +channel. (Cesar
            Romani)
Solution:   Add #ifdefs. (Yasuhiro Matsumoto)
Files:      src/os_win32.c

Patch 7.4.1336
Problem:    Channel NL mode is not supported yet.
Solution:   Add NL mode support to channels.
Files:      src/channel.c, src/netbeans.c, src/structs.h, src/os_unix.d,
            src/os_win32.c, src/proto/channel.pro, src/proto/os_unix.pro,
            src/proto/os_win32.pro, src/testdir/test_channel.vim,
            src/testdir/test_channel_pipe.py

Patch 7.4.1337 (after 7.4.1336)
Problem:    Part of the change is missing.
Solution:   Add changes to eval.c
Files:      src/eval.c


Patch 7.4.1338 (after 7.4.1336)
Problem:    Another part of the change is missing.
Solution:   Type os_unix.c right this time.
Files:      src/os_unix.c

Patch 7.4.1339
Problem:    Warnings when building the GUI with MingW. (Cesar Romani)
Solution:   Add type casts. (Yasuhiro Matsumoto)
Files:      src/edit.c, src/gui_w32.c, src/gui_w48.c, src/os_mswin.c,
            src/os_win32.c

Patch 7.4.1340 (after 7.4.1339)
Problem:    Merge left extra #endif behind.
Solution:   Remove the #endif
Files:      src/os_win32.c

Patch 7.4.1341
Problem:    It's difficult to add more arguments to ch_sendraw() and
            ch_sendexpr().
Solution:   Make the third option a dictionary.
Files:      src/eval.c, src/structs.h, src/channel.c, src/os_unix.c,
            src/os_win32.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, runtime/doc/eval.txt

Patch 7.4.1342
Problem:    On Mac OS/X the waittime must be > 0 for connect to work.
Solution:   Use select() in a different way. (partly by Kazunobu Kuriyama)
            Always use a waittime of 1 or more.
Files:      src/eval.c, src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1343
Problem:    Can't compile with +job but without +channel. (Andrei Olsen)
Solution:   Move get_job_options up and adjust #ifdef.
Files:      src/eval.c

Patch 7.4.1344
Problem:    Can't compile Win32 GUI with tiny features.
Solution:   Add #ifdef. (Christian Brabandt)
Files:      src/gui_w32.c

Patch 7.4.1345
Problem:    A few more compiler warnings. (Axel Bender)
Solution:   Add type casts.
Files:      src/gui_w32.c, src/gui_w48.c

Patch 7.4.1346
Problem:    Compiler warnings in build with -O2.
Solution:   Add initializations.
Files:      src/eval.c

Patch 7.4.1347
Problem:    When there is any error Vim will use a non-zero exit code.
Solution:   When using ":silent!" do not set the exit code. (Yasuhiro
            Matsumoto)
Files:      src/message.c

Patch 7.4.1348
Problem:    More compiler warnings. (John Marriott)
Solution:   Add type casts, remove unused variable.
Files:      src/gui_w32.c

Patch 7.4.1349
Problem:    And some more MingW compiler warnings. (Cesar Romani)
Solution:   Add type casts.
Files:      src/if_mzsch.c

Patch 7.4.1350
Problem:    When the test server fails to start Vim hangs.
Solution:   Check that there is actually something to read from the tty fd.
Files:      src/os_unix.c

Patch 7.4.1351
Problem:    When the port isn't opened yet when ch_open() is called it may
            fail instead of waiting for the specified time.
Solution:   Loop when select() succeeds but when connect() failed. Also use
            channel logging for jobs.  Add ch_log().
Files:      src/channel.c, src/eval.c, src/netbeans.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, src/testdir/test_channel.py

Patch 7.4.1352
Problem:    The test script lists all functions before executing them.
Solution:   Only list the function currently being executed.
Files:      src/testdir/runtest.vim

Patch 7.4.1353
Problem:    Test_connect_waittime is skipped for MS-Windows.
Solution:   Add the test back, it works now.
Files:      src/testdir/test_channel.vim

Patch 7.4.1354
Problem:    MS-Windows: Mismatch between default compile options and what the
            code expects.
Solution:   Change the default WINVER from 0x0500 to 0x0501. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 7.4.1355
Problem:    Win32 console and GUI handle channels differently.
Solution:   Consolidate code between Win32 console and GUI.
Files:      src/channel.c, src/eval.c, src/gui_w48.c, src/os_win32.c,
            src/proto/channel.pro

Patch 7.4.1356
Problem:    Job and channel options parsing is scattered.
Solution:   Move all option value parsing to get_job_options();
Files:      src/channel.c, src/eval.c, src/structs.h, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 7.4.1357 (after 7.4.1356)
Problem:    Error for returning value from void function.
Solution:   Don't do that.
Files:      src/eval.c

Patch 7.4.1358
Problem:    Compiler warning when not building with +crypt.
Solution:   Add #ifdef. (John Marriott)
Files:      src/undo.c

Patch 7.4.1359 (after 7.4.1356)
Problem:    Channel test ch_sendexpr() times out.
Solution:   Increase the timeout
Files:      src/testdir/test_channel.vim

Patch 7.4.1360
Problem:    Can't remove a callback with ch_setoptions().
Solution:   When passing zero or an empty string remove the callback.
Files:      src/channel.c, src/proto/channel.pro, src/testdir/test_channel.vim

Patch 7.4.1361
Problem:    Channel test fails on Solaris.
Solution:   Use the 1 msec waittime for all systems.
Files:      src/channel.c

Patch 7.4.1362 (after 7.4.1356)
Problem:    Using uninitialized value.
Solution:   Initialize jo_set.
Files:      src/eval.c

Patch 7.4.1363
Problem:    Compiler warnings with tiny build.
Solution:   Add #ifdefs.
Files:      src/gui_w48.c, src/gui_w32.c

Patch 7.4.1364
Problem:    The Win 16 code is not maintained and unused.
Solution:   Remove the Win 16 support.
Files:      src/gui_w16.c, src/gui_w32.c, src/gui_w48.c, src/Make_w16.mak,
            src/Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak,
            src/proto/gui_w16.pro, src/proto/os_win16.pro, src/guiw16rc.h,
            src/vim16.rc, src/vim16.def, src/tools16.bmp, src/eval.c,
            src/gui.c, src/misc2.c, src/option.c, src/os_msdos.c,
            src/os_mswin.c, src/os_win16.c, src/os_win16.h, src/version.c,
            src/winclip.c, src/feature.h, src/proto.h, src/vim.h, Filelist

Patch 7.4.1365
Problem:    Cannot execute a single test function.
Solution:   Add an argument to filter the functions with. (Yasuhiro Matsumoto)
Files:      src/testdir/runtest.vim

Patch 7.4.1366
Problem:    Typo in test and resulting error in test result.
Solution:   Fix the typo and correct the result. (James McCoy, closes #650)
Files:      src/testdir/test_charsearch.in, src/testdir/test_charsearch.ok

Patch 7.4.1367
Problem:    Compiler warning for unreachable code.
Solution:   Remove a "break". (Danek Duvall)
Files:      src/json.c

Patch 7.4.1368
Problem:    One more Win16 file remains.
Solution:   Delete it.
Files:      src/proto/os_win16.pro

Patch 7.4.1369
Problem:    Channels don't have a queue for stderr.
Solution:   Have a queue for each part of the channel.
Files:      src/channel.c, src/eval.c, src/structs.h, src/netbeans.c,
            src/gui_w32.c, src/proto/channel.pro

Patch 7.4.1370
Problem:    The Python test script may keep on running.
Solution:   Join the threads. (Yasuhiro Matsumoto)
Files:      src/testdir/test_channel.py

Patch 7.4.1371
Problem:    X11 GUI callbacks don't specify the part of the channel.
Solution:   Pass the fd instead of the channel ID.
Files:      src/channel.c

Patch 7.4.1372
Problem:    channel read implementation is incomplete.
Solution:   Add ch_read() and options for ch_readraw().
Files:      src/channel.c, src/eval.c, src/structs.h, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 7.4.1373
Problem:    Calling a Vim function over a channel requires turning the
            arguments into a string.
Solution:   Add the "call" command. (Damien)  Also merge "expr" and "eval"
            into one.
Files:      src/channel.c, src/testdir/test_channel.py,
            src/testdir/test_channel.vim

Patch 7.4.1374
Problem:    Channel test hangs on MS-Windows.
Solution:   Disable the ch_read() that is supposed to time out.
Files:      src/testdir/test_channel.vim

Patch 7.4.1375
Problem:    Still some Win16 code.
Solution:   Remove FEAT_GUI_W16.(Hirohito Higashi)
Files:      src/eval.c, src/ex_cmds.h, src/feature.h, src/gui.h, src/menu.c,
            src/misc1.c, src/option.c, src/proto.h, src/structs.h, src/term.c,
            src/vim.h, runtime/doc/gui_w16.txt

Patch 7.4.1376
Problem:    ch_setoptions() cannot set all options.
Solution:   Support more options.
Files:      src/channel.c, src/eval.c, src/structs.h, runtime/doc/channel.txt,
            src/testdir/test_channel.vim

Patch 7.4.1377
Problem:    Test_connect_waittime() is flaky.
Solution:   Ignore the "Connection reset by peer" error.
Files:      src/testdir/test_channel.vim

Patch 7.4.1378
Problem:    Can't change job settings after it started.
Solution:   Add job_setoptions() with the "stoponexit" flag.
Files:      src/eval.c, src/main.c, src/structs.h, src/proto/eval.pro,
            src/testdir/test_channel.vim

Patch 7.4.1379
Problem:    Channel test fails on Win32 console.
Solution:   Don't sleep when timeout is zero. Call channel_wait() before
            channel_read(). Channels are not polled during ":sleep". (Yukihiro
            Nakadaira)
Files:      src/channel.c, src/misc2.c, src/gui_w32.c, src/os_win32.c

Patch 7.4.1380
Problem:    The job exit callback is not implemented.
Solution:   Add the "exit-cb" option.
Files:      src/structs.h, src/eval.c, src/channel.c, src/proto/eval.pro,
            src/misc2.c, src/macros.h, src/testdir/test_channel.vim

Patch 7.4.1381 (after 7.4.1380)
Problem:    Exit value not available on MS-Windows.
Solution:   Set the exit value.
Files:      src/structs.h, src/os_win32.c

Patch 7.4.1382
Problem:    Can't get the job of a channel.
Solution:   Add ch_getjob().
Files:      src/eval.c, runtime/doc/channel.txt, runtime/doc/eval.txt

Patch 7.4.1383
Problem:    GvimExt only loads the old libintl.dll.
Solution:   Also try loading libint-8.dll. (Ken Takata, closes #608)
Files:      src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h

Patch 7.4.1384
Problem:    It is not easy to use a set of plugins and their dependencies.
Solution:   Add packages, ":loadplugin", 'packpath'.
Files:      src/main.c, src/ex_cmds2.c, src/option.c, src/option.h,
            src/ex_cmds.h, src/eval.c, src/version.c, src/proto/ex_cmds2.pro,
            runtime/doc/repeat.txt, runtime/doc/options.txt,
            runtime/optwin.vim

Patch 7.4.1385
Problem:    Compiler warning for using array.
Solution:   Use the right member name. (Yegappan Lakshmanan)
Files:      src/eval.c

Patch 7.4.1386
Problem:    When the Job exit callback is invoked, the job may be freed too
            soon. (Yasuhiro Matsumoto)
Solution:   Increase refcount.
Files:      src/eval.c

Patch 7.4.1387
Problem:    Win16 docs still referenced.
Solution:   Remove Win16 files from the docs Makefile. (Kenichi Ito)
Files:      runtime/doc/Makefile

Patch 7.4.1388
Problem:    Compiler warning. (Cesar Romani)
Solution:   Initialize variable.
Files:      src/ex_cmds2.c

Patch 7.4.1389
Problem:    Incomplete function declaration.
Solution:   Add "void". (Yasuhiro Matsumoto)
Files:      src/eval.c

Patch 7.4.1390
Problem:    When building with GTK and glib-compile-resources cannot be found
            building Vim fails. (Michael Gehring)
Solution:   Make GLIB_COMPILE_RESOURCES empty instead of leaving it at "no".
            (nuko8, closes #655)
Files:      src/configure.in, src/auto/configure

Patch 7.4.1391
Problem:    Warning for uninitialized variable.
Solution:   Set it to zero. (Christian Brabandt)
Files:      src/eval.c

Patch 7.4.1392
Problem:    Some tests fail for Win32 console version.
Solution:   Move the tests to SCRIPTS_MORE2.  Pass VIMRUNTIME. (Christian
            Brabandt)
Files:      src/testdir/Make_all.mak

Patch 7.4.1393
Problem:    Starting a job hangs in the GUI. (Takuya Fujiwara)
Solution:   Don't check if ch_job is NULL when checking for an error.
            (Yasuhiro Matsumoto)
Files:      src/channel.c

Patch 7.4.1394
Problem:    Can't sort inside a sort function.
Solution:   Use a struct to store the sort parameters. (Jacob Niehus)
Files:      src/eval.c, src/testdir/test_sort.vim

Patch 7.4.1395
Problem:    Using DETACH in quotes is not compatible with the Netbeans
            interface. (Xavier de Gaye)
Solution:   Remove the quotes, only use them for JSON and JS mode.
Files:      src/netbeans.c, src/channel.c

Patch 7.4.1396
Problem:    Compiler warnings for conversions.
Solution:   Add type cast.
Files:      src/ex_cmds2.c

Patch 7.4.1397
Problem:    Sort test fails on MS-Windows.
Solution:   Correct the compare function.
Files:      src/testdir/test_sort.vim

Patch 7.4.1398
Problem:    The close-cb option is not implemented yet.
Solution:   Implement close-cb. (Yasuhiro Matsumoto)
Files:      src/channel.c, src/eval.c, src/structs.h, src/proto/channel.pro,
            src/testdir/test_channel.py, src/testdir/test_channel.vim

Patch 7.4.1399
Problem:    The MS-DOS code does not build.
Solution:   Remove the old MS-DOS code.
Files:      Filelist, src/Make_bc3.mak, src/Make_bc5.mak, src/Make_djg.mak,
            src/Makefile, src/blowfish.c, src/buffer.c, src/diff.c,
            src/digraph.c, src/dosinst.h, src/eval.c, src/ex_cmds.c,
            src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/feature.h,
            src/fileio.c, src/getchar.c, src/globals.h, src/macros.h,
            src/main.c, src/mbyte.c, src/memfile.c, src/memline.c,
            src/misc1.c, src/misc2.c, src/netbeans.c, src/option.c,
            src/option.h, src/os_msdos.c, src/os_msdos.h, src/proto.h,
            src/proto/os_msdos.pro, src/regexp.c, src/screen.c, src/structs.h,
            src/syntax.c, src/term.c, src/undo.c, src/uninstal.c,
            src/version.c, src/vim.h, src/window.c, src/xxd/Make_bc3.mak,
            src/xxd/Make_djg.mak


Patch 7.4.1400
Problem:    Perl eval doesn't work properly on 64-bit big-endian machine.
Solution:   Use 32 bit type for the key. (Danek Duvall)
Files:      src/if_perl.xs

Patch 7.4.1401
Problem:    Having 'autochdir' set during startup and using diff mode doesn't
            work. (Axel Bender)
Solution:   Don't use 'autochdir' while still starting up. (Christian
            Brabandt)
Files:      src/buffer.c

Patch 7.4.1402
Problem:    GTK 3 is not supported.
Solution:   Add GTK 3 support. (Kazunobu Kuriyama)
Files:      runtime/doc/eval.txt, runtime/doc/gui.txt,
            runtime/doc/gui_x11.txt, src/auto/configure, src/channel.c,
            src/config.h.in, src/configure.in, src/eval.c, src/gui.h,
            src/gui_beval.c, src/gui_beval.h, src/gui_gtk.c, src/gui_gtk_f.c,
            src/gui_gtk_f.h, src/gui_gtk_x11.c, src/if_mzsch.c, src/mbyte.c,
            src/netbeans.c, src/structs.h, src/version.c

Patch 7.4.1403
Problem:    Can't build without the quickfix feature.
Solution:   Add #ifdefs. Call ex_ni() for unimplemented commands. (Yegappan
            Lakshmanan)
Files:      src/ex_cmds2.c, src/popupmnu.c

Patch 7.4.1404
Problem:    ch_read() doesn't time out on MS-Windows.
Solution:   Instead of WM_NETBEANS use select(). (Yukihiro Nakadaira)
Files:      src/channel.c, src/gui_w32.c, src/os_win32.c, src/structs.h,
            src/testdir/test_channel.vim, src/vim.h

Patch 7.4.1405
Problem:    Completion menu flickers.
Solution:   Delay showing the popup menu. (Shougo Matsu, Justin M. Keyes,
	    closes #656)
Files:      src/edit.c

Patch 7.4.1406
Problem:    Leaking memory in cs_print_tags_priv().
Solution:   Free tbuf. (idea by Forrest Fleming)
Files:      src/if_cscope.c

Patch 7.4.1407
Problem:    json_encode() does not handle NaN and inf properly. (David
            Barnett)
Solution:   For JSON turn them into "null".  For JS use "NaN" and "Infinity".
            Add isnan().
Files:      src/eval.c, src/json.c, src/testdir/test_json.vim

Patch 7.4.1408
Problem:    MS-Windows doesn't have isnan() and isinf().
Solution:   Use _isnan() and _isinf().
Files:      src/eval.c, src/json.c

Patch 7.4.1409 (after 7.4.1402)
Problem:    Configure includes GUI despite --disable-gui flag.
Solution:   Add SKIP_GTK3. (Kazunobu Kuriyama)
Files:      src/configure.in, src/auto/configure

Patch 7.4.1410
Problem:    Leaking memory in cscope interface.
Solution:   Free memory when no tab is found. (Christian Brabandt)
Files:      src/if_cscope.c

Patch 7.4.1411
Problem:    Compiler warning for indent. (Ajit Thakkar)
Solution:   Indent normally.
Files:      src/ui.c

Patch 7.4.1412
Problem:    Compiler warning for indent. (Dominique Pelle)
Solution:   Fix the indent.
Files:      src/farsi.c

Patch 7.4.1413
Problem:    When calling ch_close() the close callback is invoked, even though
            the docs say it isn't. (Christian J. Robinson)
Solution:   Don't call the close callback.
Files:      src/eval.c, src/channel.c, src/netbeans.c, src/proto/channel.pro

Patch 7.4.1414
Problem:    Appveyor only builds one feature set.
Solution:   Build a combination of features and GUI/console. (Christian
            Brabandt)
Files:      appveyor.yml, src/appveyor.bat

Patch 7.4.1415 (after 7.4.1414)
Problem:    Dropped the skip-tags setting.
Solution:   Put it back.
Files:      appveyor.yml

Patch 7.4.1416
Problem:    Using "u_char" instead of "char_u", which doesn't work everywhere.
            (Jörg Plate)
Solution:   Use "char_u" always.
Files:      src/integration.c, src/macros.h

Patch 7.4.1417 (after 7.4.1414)
Problem:    Missing appveyor.bat from the distribution.
Solution:   Add it to the list of files.
Files:      Filelist

Patch 7.4.1418
Problem:    job_stop() on MS-Windows does not really stop the job.
Solution:   Make the default to stop the job forcefully. (Ken Takata)
            Make MS-Windows and Unix more similar.
Files:      src/os_win32.c, src/os_unix.c, runtime/doc/eval.txt

Patch 7.4.1419
Problem:    Tests slowed down because of the "not a terminal" warning.
Solution:   Add the --not-a-term command line argument.
Files:      src/main.c, src/testdir/Makefile, src/Make_all.mak,
            src/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_vms.mms,
            runtime/doc/starting.txt

Patch 7.4.1420 (after 7.4.1419)
Problem:    Missing makefile.
Solution:   Type the path correctly.
Files:      src/testdir/Make_all.mak

Patch 7.4.1421
Problem:    May free a channel when a callback may need to be invoked.
Solution:   Keep the channel when refcount is zero.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro

Patch 7.4.1422
Problem:    Error when reading fails uses wrong errno.  Keeping channel open
            after job stops results in test failing.
Solution:   Move the error up.  Add ch_job_killed.
Files:      src/channel.c, src/eval.c, src/structs.h

Patch 7.4.1423
Problem:    Channel test fails on MS-Windows.
Solution:   Do not give an error message when reading fails, assume the other
            end exited.
Files:      src/channel.c

Patch 7.4.1424
Problem:    Not using --not-a-term when running tests on MS-Windows.
Solution:   Use NO_PLUGIN. (Christian Brabandt)
Files:      src/testdir/Make_dos.mak

Patch 7.4.1425
Problem:    There are still references to MS-DOS support.
Solution:   Remove most of the help txt and install instructions. (Ken Takata)
Files:      src/INSTALLpc.txt, runtime/doc/os_msdos.txt, csdpmi4b.zip,
            Filelist

Patch 7.4.1426
Problem:    The "out-io" option for jobs is not implemented yet.
Solution:   Implement the "buffer" value: append job output to a buffer.
Files:      src/eval.c, src/channel.c, src/structs.h, src/netbeans.c,
            runtime/doc/channel.txt

Patch 7.4.1427
Problem:    Trailing comma in enums is not ANSI C.
Solution:   Remove the trailing commas.
Files:      src/alloc.h, src/gui_mac.c

Patch 7.4.1428
Problem:    Compiler warning for non-virtual destructor.
Solution:   Make it virtual. (Yasuhiro Matsumoto)
Files:      src/gui_dwrite.cpp

Patch 7.4.1429
Problem:    On MS-Windows, when not use renderoptions=type:directx, drawing
            emoji will be broken.
Solution:   Fix usage of unicodepdy. (Yasuhiro Matsumoto)
Files:      src/gui_w32.c

Patch 7.4.1430
Problem:    When encoding JSON, turning NaN and Infinity into null without
            giving an error is not useful.
Solution:   Pass NaN and Infinity on.  If the receiver can't handle them it
            will generate the error.
Files:      src/json.c, src/testdir/test_json.vim, runtime/doc/eval.txt

Patch 7.4.1431
Problem:    Including header files twice.
Solution:   Remove the extra includes.
Files:      src/if_cscope.h

Patch 7.4.1432
Problem:    Typo in button text.
Solution:   Fix the typo. (Dominique Pelle)
Files:      src/gui_gtk.c

Patch 7.4.1433
Problem:    The Sniff interface is no longer useful, the tool has not been
            available for may years.
Solution:   Delete the Sniff interface and related code.
Files:      src/if_sniff.c, src/if_sniff.h, src/charset.c, src/edit.c,
            src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c,
            src/gui_gtk_x11.c, src/gui_w32.c, src/gui_x11.c, src/normal.c,
            src/os_unix.c, src/os_win32.c, src/term.c, src/ui.c,
            src/version.c, src/ex_cmds.h, src/feature.h, src/keymap.h,
            src/structs.h, src/vim.h, src/Make_mvc.mak, src/Make_vms.mms,
            src/Makefile, src/configure.in, src/auto/configure,
            src/config.h.in, src/config.mk.in, runtime/doc/if_sniff.txt,
            src/config.aap.in, src/main.aap

Patch 7.4.1434
Problem:    JSON encoding doesn't handle surrogate pair.
Solution:   Improve multi-byte handling of JSON. (Yasuhiro Matsumoto)
Files:      src/json.c, src/testdir/test_json.vim

Patch 7.4.1435
Problem:    It is confusing that ch_sendexpr() and ch_sendraw() wait for a
            response.
Solution:   Add ch_evalexpr() and ch_evalraw().
Files:      src/eval.c, runtime/doc/channel.txt, runtime/doc/eval.txt,
            src/testdir/test_channel.vim

Patch 7.4.1436 (after 7.4.1433)
Problem:    Sniff files still referenced in distribution.
Solution:   Remove sniff files from distribution.
Files:      Filelist

Patch 7.4.1437
Problem:    Old system doesn't have isinf() and NAN. (Ben Fritz)
Solution:   Adjust #ifdefs.  Detect isnan() and isinf() functions with
            configure. Use a replacement when missing. (Kazunobu Kuriyama)
Files:      src/eval.c, src/json.c, src/macros.h, src/message.c,
            src/config.h.in, src/configure.in, src/auto/configure

Patch 7.4.1438
Problem:    Can't get buffer number of a channel.
Solution:   Add ch_getbufnr().
Files:      src/eval.c, src/channel.c, src/testdir/test_channel.vim,
            runtime/doc/channel.txt, runtime/doc/eval.txt

Patch 7.4.1439 (after 7.4.1434)
Problem:    Using uninitialized variable.
Solution:   Initialize vc_type.
Files:      src/json.c

Patch 7.4.1440 (after 7.4.1437)
Problem:    Can't build on Windows.
Solution:   Change #ifdefs.  Only define isnan when used.
Files:      src/macros.h, src/eval.c, src/json.c

Patch 7.4.1441
Problem:    Using empty name instead of no name for channel buffer.
Solution:   Remove the empty name.
Files:      src/channel.c

Patch 7.4.1442
Problem:    MS-Windows: more compilation warnings for destructor.
Solution:   Add "virtual". (Ken Takata)
Files:      src/if_ole.cpp

Patch 7.4.1443
Problem:    Can't build GTK3 with small features.
Solution:   Use gtk_widget_get_window().  Fix typos. (Dominique Pelle)
Files:      src/gui_gtk_x11.c

Patch 7.4.1444
Problem:    Can't build with JSON but without multi-byte.
Solution:   Fix pointer name.
Files:      src/json.c

Patch 7.4.1445
Problem:    Memory corruption when 'encoding' is not utf-8.
Solution:   Convert decoded string later.
Files:      src/json.c

Patch 7.4.1446
Problem:    Crash when using json_decode().
Solution:   Terminate string with a NUL byte.
Files:      src/json.c

Patch 7.4.1447
Problem:    Memory leak when using ch_read(). (Dominique Pelle)
            No log message when stopping a job and a few other situations.
            Too many "Nothing to read" messages.  Channels are not freed.
Solution:   Free the listtv.  Add more log messages. Remove "Nothing to read"
            message.  Remove the channel from the job when its refcount
            becomes zero.
Files:      src/eval.c, src/channel.c

Patch 7.4.1448
Problem:    JSON tests fail if 'encoding' is not utf-8.
Solution:   Force encoding to utf-8.
Files:      src/testdir/test_json.vim

Patch 7.4.1449
Problem:    Build fails with job feature but without channel feature.
Solution:   Add #ifdef.
Files:      src/eval.c

Patch 7.4.1450
Problem:    Json encoding still fails when encoding is not utf-8.
Solution:   Set 'encoding' before :scriptencoding.  Run the json test
            separately to avoid affecting other tests.
Files:      src/testdir/test_json.vim, src/testdir/Make_all.mak,
            src/testdir/test_alot.vim

Patch 7.4.1451
Problem:    Vim hangs when a channel has a callback but isn't referenced.
Solution:   Have channel_unref() only return TRUE when the channel was
            actually freed.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro

Patch 7.4.1452
Problem:    When a callback adds a syntax item either the redraw doesn't
            happen right away or in the GUI the cursor is in the wrong
            position for a moment. (Jakson Alves de Aquino)
Solution:   Redraw after the callback was invoked.
Files:      src/channel.c

Patch 7.4.1453
Problem:    Missing --not-a-term.
Solution:   Add the argument.
Files:      src/testdir/Make_amiga.mak

Patch 7.4.1454
Problem:    The exit callback test is flaky.
Solution:   Loop to wait for a short time up to a second.
Files:      src/testdir/test_channel.vim

Patch 7.4.1455
Problem:    JSON decoding test for surrogate pairs is in the wrong place.
Solution:   Move the test lines. (Ken Takata)
Files:      src/testdir/test_json.vim

Patch 7.4.1456
Problem:    Test 87 fails with Python 3.5.
Solution:   Work around difference. (Taro Muraoka)
Files:      src/testdir/test87.in

Patch 7.4.1457
Problem:    Opening a channel with select() is not done properly.
Solution:   Also used read-fds. Use getsockopt() to check for errors. (Ozaki
            Kiichi)
Files:      src/channel.c

Patch 7.4.1458
Problem:    When a JSON channel has a callback it may never be cleared.
Solution:   Do not write "DETACH" into a JS or JSON channel.
Files:      src/channel.c

Patch 7.4.1459 (after 7.4.1457)
Problem:    MS-Windows doesn't know socklen_t.
Solution:   Use previous method for WIN32.
Files:      src/channel.c

Patch 7.4.1460
Problem:    Syntax error in rarely used code.
Solution:   Fix the mch_rename() declaration. (Ken Takata)
Files:      src/os_unix.c, src/proto/os_unix.pro

Patch 7.4.1461
Problem:    When starting job on MS-Windows all parts of the command are put
            in quotes.
Solution:   Only use quotes when needed. (Yasuhiro Matsumoto)
Files:      src/eval.c

Patch 7.4.1462
Problem:    Two more rarely used functions with errors.
Solution:   Add proper argument types. (Dominique Pelle)
Files:      src/misc2.c, src/termlib.c

Patch 7.4.1463
Problem:    Configure doesn't find isinf() and isnan() on some systems.
Solution:   Use a configure check that includes math.h.
Files:      src/configure.in, src/auto/configure

Patch 7.4.1464
Problem:    When the argument of sort() is zero or empty it fails.
Solution:   Make zero work as documented. (suggested by Yasuhiro Matsumoto)
Files:      src/eval.c, src/testdir/test_sort.vim

Patch 7.4.1465
Problem:    Coverity reported possible use of NULL pointer when using buffer
            output with JSON mode.
Solution:   Make it actually possible to use JSON mode with a buffer.
            Re-encode the JSON to append it to the buffer.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1466
Problem:    Coverity reports dead code.
Solution:   Remove the two lines.
Files:      src/channel.c

Patch 7.4.1467
Problem:    Can't build without the float feature.
Solution:   Add #ifdefs. (Nick Owens, closes #667)
Files:      src/eval.c, src/json.c

Patch 7.4.1468
Problem:    Sort test doesn't test with "1" argument.
Solution:   Also test ignore-case sorting. (Yasuhiro Matsumoto)
Files:      src/testdir/test_sort.vim

Patch 7.4.1469
Problem:    Channel test sometimes fails, especially on OS/X. (Kazunobu
            Kuriyama)
Solution:   Change the && into ||, call getsockopt() in more situations.
            (Ozaki Kiichi)
Files:      src/channel.c

Patch 7.4.1470
Problem:    Coverity reports missing restore.
Solution:   Move json_encode() call up.
Files:      src/channel.c

Patch 7.4.1471
Problem:    Missing out-of-memory check.  And Coverity warning.
Solution:   Bail out when msg is NULL.
Files:      src/channel.c

Patch 7.4.1472
Problem:    Coverity warning for not using return value.
Solution:   Add "(void)".
Files:      src/os_unix.c

Patch 7.4.1473
Problem:    Can't build without the autocommand feature.
Solution:   Add #ifdefs. (Yegappan Lakshmanan)
Files:      src/edit.c, src/main.c, src/syntax.c

Patch 7.4.1474
Problem:    Compiler warnings without the float feature.
Solution:   Move #ifdefs. (John Marriott)
Files:      src/eval.c

Patch 7.4.1475
Problem:    When using hangulinput with utf-8 a CSI character is
            misinterpreted.
Solution:   Convert CSI to K_CSI. (SungHyun Nam)
Files:      src/ui.c

Patch 7.4.1476
Problem:    Function arguments marked as unused while they are not.
Solution:   Remove UNUSED. (Yegappan Lakshmanan)
Files:      src/diff.c, src/eval.c, src/ex_cmds2.c, src/ex_docmd.c,
            src/window.c

Patch 7.4.1477
Problem:    Test_reltime is flaky, it depends on timing.
Solution:   When it fails run it a second time.
Files:      src/testdir/runtest.vim

Patch 7.4.1478
Problem:    ":loadplugin" doesn't take care of ftdetect files.
Solution:   Also load ftdetect scripts when appropriate.
Files:      src/ex_cmds2.c

Patch 7.4.1479
Problem:    No testfor ":loadplugin".
Solution:   Add a test.  Fix how option is being set.
Files:      src/ex_cmds2.c, src/testdir/test_loadplugin.vim,
            src/testdir/Make_all.mak

Patch 7.4.1480
Problem:    Cannot add a pack directory without loading a plugin.
Solution:   Add the :packadd command.
Files:      src/ex_cmds.h, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
            src/testdir/test_loadplugin.vim, runtime/doc/repeat.txt

Patch 7.4.1481
Problem:    Can't build with small features.
Solution:   Add #ifdef.
Files:      src/ex_cmds2.c

Patch 7.4.1482
Problem:    "timeout" option not supported on ch_eval*().
Solution:   Get and use the timeout option from the argument.
Files:      src/eval.c, src/testdir/test_channel.vim

Patch 7.4.1483
Problem:    A one-time callback is not used for a raw channel.
Solution:   Use a one-time callback when it exists.
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel.py

Patch 7.4.1484
Problem:    Channel "err-io" value "out" is not supported.
Solution:   Connect stderr to stdout if wanted.
Files:      src/os_unix.c, src/os_win32.c, src/testdir/test_channel.vim,
            src/testdir/test_channel_pipe.py

Patch 7.4.1485
Problem:    Job input from buffer is not implemented.
Solution:   Implement it.  Add "in-top" and "in-bot" options.
Files:      src/structs.h, src/eval.c, src/channel.c, src/proto/channel.pro,
            src/os_unix.c, src/os_win32.c, src/testdir/test_channel.vim

Patch 7.4.1486
Problem:    ":loadplugin" is not optimal, some people find it confusing.
Solution:   Only use ":packadd" with an optional "!".
Files:      src/ex_cmds.h, src/ex_cmds2.c, src/testdir/test_loadplugin.vim,
            src/testdir/test_packadd.vim, src/testdir/Make_all.mak,
            runtime/doc/repeat.txt

Patch 7.4.1487
Problem:    For WIN32 isinf() is defined as a macro.
Solution:   Define it as an inline function. (ZyX)
Files:      src/macros.h

Patch 7.4.1488 (after 7.4.1475)
Problem:    Not using key when result from hangul_string_convert() is NULL.
Solution:   Fall back to not converted string.
Files:      src/ui.c

Patch 7.4.1489 (after 7.4.1487)
Problem:    "inline" is not supported by old MSVC.
Solution:   use "__inline". (Ken Takata)
Files:      src/macros.h

Patch 7.4.1490
Problem:    Compiler warning for unused function.
Solution:   Add #ifdef. (Dominique Pelle)
Files:      src/gui_gtk_x11.c

Patch 7.4.1491
Problem:    Visual-block shift breaks multi-byte characters.
Solution:   Compute column differently. (Yasuhiro Matsumoto) Add a test.
Files:      src/ops.c, src/testdir/test_visual.vim, src/testdir/Make_all.mak

Patch 7.4.1492
Problem:    No command line completion for ":packadd".
Solution:   Implement completion. (Hirohito Higashi)
Files:      src/ex_docmd.c, src/ex_getln.c, src/testdir/test_packadd.vim,
            src/vim.h

Patch 7.4.1493
Problem:    Wrong callback invoked for zero-id messages.
Solution:   Don't use the first one-time callback when the sequence number
            doesn't match.
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel.py

Patch 7.4.1494
Problem:    clr_history() does not work properly.
Solution:   Increment hisptr. Add a test. (Yegappan Lakshmanan)
Files:      src/ex_getln.c, src/testdir/test_history.vim,
            src/testdir/Make_all.mak

Patch 7.4.1495
Problem:    Compiler warnings when building on Unix with the job feature but
            without the channel feature.
Solution:   Move #ifdefs. (Dominique Pelle)
Files:      src/os_unix.c

Patch 7.4.1496
Problem:    Crash when built with GUI but it's not active. (Dominique Pelle)
Solution:   Check gui.in_use.
Files:      src/channel.c

Patch 7.4.1497
Problem:    Cursor drawing problem with GTK 3.
Solution:   Handle blinking differently. (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 7.4.1498
Problem:    Error for locked item when using json_decode(). (Shougo Matsu)
Solution:   Initialize v_lock.
Files:      src/json.c

Patch 7.4.1499
Problem:    No error message when :packadd does not find anything.
Solution:   Add an error message. (Hirohito Higashi)
Files:      runtime/doc/repeat.txt, src/ex_cmds.h, src/ex_cmds2.c,
            src/globals.h, src/testdir/test_packadd.vim

Patch 7.4.1500
Problem:    Should_free flag set to FALSE.
Solution:   Set it to TRUE. (Neovim 4415)
Files:      src/ex_eval.c

Patch 7.4.1501
Problem:    Garbage collection with an open channel is not tested.
Solution:   Call garbagecollect() in the test.
Files:      src/testdir/test_channel.vim

Patch 7.4.1502
Problem:    Writing last-but-one line of buffer to a channel isn't implemented
            yet.
Solution:   Implement it.  Fix leaving a swap file behind.
Files:      src/channel.c, src/structs.h, src/memline.c, src/proto/channel.pro

Patch 7.4.1503
Problem:    Crash when using ch_getjob(). (Damien)
Solution:   Check for a NULL job.
Files:      src/eval.c, src/testdir/test_channel.vim

Patch 7.4.1504 (after 7.4.1502)
Problem:    No test for reading last-but-one line.
Solution:   Add a test.
Files:      src/testdir/test_channel.vim

Patch 7.4.1505
Problem:    When channel log is enabled get too many "looking for messages"
            log entries.
Solution:   Only give the message after another message.
Files:      src/channel.c

Patch 7.4.1506
Problem:    Job cannot read from a file.
Solution:   Implement reading from a file for Unix.
Files:      src/eval.c, src/os_unix.c, src/os_win32.c,
            src/testdir/test_channel.vim

Patch 7.4.1507
Problem:    Crash when starting a job fails.
Solution:   Check for the channel to be NULL.  (idea by Yasuhiro Matsumoto)
Files:      src/eval.c

Patch 7.4.1508
Problem:    Can't build GvimExt with MingW.
Solution:   Adjust the makefile. (Ben Fritz)
Files:      src/GvimExt/Make_ming.mak

Patch 7.4.1509
Problem:    Keeping both a variable for a job and the channel it refers to is
            a hassle.
Solution:   Allow passing the job where a channel is expected. (Damien)
Files:      src/eval.c, src/testdir/test_channel.vim

Patch 7.4.1510
Problem:    Channel test fails on AppVeyor.
Solution:   Wait longer than 10 msec if needed.
Files:      src/testdir/test_channel.vim

Patch 7.4.1511
Problem:    Statusline highlighting is sometimes wrong.
Solution:   Check for Highlight type. (Christian Brabandt)
Files:      src/buffer.c

Patch 7.4.1512
Problem:    Channel input from file not supported on MS-Windows.
Solution:   Implement it. (Yasuhiro Matsumoto)
Files:      src/os_win32.c, src/testdir/test_channel.vim

Patch 7.4.1513
Problem:    "J" fails if there are not enough lines. (Christian Neukirchen)
Solution:   Reduce the count, only fail on the last line.
Files:      src/normal.c, src/testdir/test_join.vim, src/testdir/test_alot.vim

Patch 7.4.1514
Problem:    Channel output to file not implemented yet.
Solution:   Implement it for Unix.
Files:      src/os_unix.c, src/testdir/test_channel.vim,
            src/testdir/test_channel_pipe.py

Patch 7.4.1515
Problem:    Channel test is a bit flaky.
Solution:   Instead of a fixed sleep time wait until an expression evaluates
            to true.
Files:      src/testdir/test_channel.vim

Patch 7.4.1516
Problem:    Cannot change file permissions.
Solution:   Add setfperm().
Files:      src/eval.c, runtime/doc/eval.txt, src/testdir/test_alot.vim,
            src/testdir/test_file_perm.vim

Patch 7.4.1517
Problem:    Compiler warning with 64bit compiler.
Solution:   Add typecast. (Mike Williams)
Files:      src/channel.c

Patch 7.4.1518
Problem:    Channel with disconnected in/out/err is not supported.
Solution:   Implement it for Unix.
Files:      src/eval.c, src/os_unix.c, src/structs.h,
            src/testdir/test_channel.vim, src/testdir/test_channel_pipe.py

Patch 7.4.1519 (after 7.4.1514)
Problem:    Channel output to file not implemented for MS-Windows.
Solution:   Implement it. (Yasuhiro Matsumoto)
Files:      src/os_win32.c, src/testdir/test_channel.vim

Patch 7.4.1520
Problem:    Channel test: Waiting for a file to appear doesn't work.
Solution:   In waitFor() ignore errors.
Files:      src/testdir/test_channel.vim

Patch 7.4.1521 (after 7.4.1516)
Problem:    File permission test fails on MS-Windows.
Solution:   Expect a different permission.
Files:      src/testdir/test_file_perm.vim

Patch 7.4.1522
Problem:    Cannot write channel err to a buffer.
Solution:   Implement it.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1523
Problem:    Writing channel to a file fails on MS-Windows.
Solution:   Disable it for now.
Files:      src/testdir/test_channel.vim

Patch 7.4.1524
Problem:    Channel test fails on BSD.
Solution:   Break out of the loop when connect() succeeds. (Ozaki Kiichi)
Files:      src/channel.c

Patch 7.4.1525
Problem:    On a high resolution screen the toolbar icons are too small.
Solution:   Add "huge" and "giant" to 'toolbariconsize'. (Brian Gix)
Files:      src/gui_gtk_x11.c, src/option.h

Patch 7.4.1526
Problem:    Writing to file and not connecting a channel doesn't work for
            MS-Windows.
Solution:   Make it work. (Yasuhiro Matsumoto)
Files:      src/os_win32.c, src/testdir/test_channel.vim

Patch 7.4.1527
Problem:    Channel test is flaky on MS-Windows.
Solution:   Limit the select() timeout to 50 msec and try with a new socket if
            it fails.
Files:      src/channel.c

Patch 7.4.1528
Problem:    Using "ever" for packages is confusing.
Solution:   Use "start", as it's related to startup.
Files:      src/ex_cmds2.c, runtime/doc/repeat.txt

Patch 7.4.1529
Problem:    Specifying buffer number for channel not implemented yet.
Solution:   Implement passing a buffer number.
Files:      src/structs.h, src/channel.c, src/eval.c,
            src/testdir/test_channel.vim

Patch 7.4.1530
Problem:    MS-Windows job_start() closes wrong handle.
Solution:   Close hThread on the process info. (Ken Takata)
Files:      src/os_win32.c

Patch 7.4.1531
Problem:    Compiler warning for uninitialized variable. (Dominique Pelle)
Solution:   Always give the variable a value.
Files:      src/channel.c

Patch 7.4.1532
Problem:    MS-Windows channel leaks file descriptor.
Solution:   Use CreateFile with the right options. (Yasuhiro Matsumoto)
Files:      src/os_win32.c

Patch 7.4.1533
Problem:    Using feedkeys() with an empty string disregards 'x' option.
Solution:   Make 'x' work with an empty string. (Thinca)
Files:      src/eval.c, src/testdir/test_alot.vim,
            src/testdir/test_feedkeys.vim

Patch 7.4.1534
Problem:    Compiler warning for shadowed variable. (Kazunobu Kuriyama)
Solution:   Rename it.
Files:      src/eval.c

Patch 7.4.1535
Problem:    The feedkeys test has a one second delay.
Solution:   Avoid need_wait_return() to delay. (Hirohito Higashi)
Files:      src/eval.c

Patch 7.4.1536
Problem:    Cannot re-use a channel for another job.
Solution:   Add the "channel" option to job_start().
Files:      src/channel.c, src/eval.c, src/structs.h, src/os_unix.c,
            src/os_win32.c, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 7.4.1537
Problem:    Too many feature flags for pipes, jobs and channels.
Solution:   Only use FEAT_JOB_CHANNEL.
Files:      src/structs.h, src/feature.h, src/configure.in,
            src/auto/configure, src/config.h.in, src/channel.c, src/eval.c,
            src/gui.c, src/main.c, src/memline.c, src/misc2.c, src/os_mswin.c,
            src/os_unix.c, src/os_win32.c, src/ui.c, src/version.c,
            src/macros.h, src/proto.h, src/vim.h, src/Make_cyg_ming.mak,
            src/Make_bc5.mak, src/Make_mvc.mak

Patch 7.4.1538
Problem:    Selection with the mouse does not work in command line mode.
Solution:   Use cairo functions. (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 7.4.1539
Problem:    Too much code in eval.c.
Solution:   Move job and channel code to channel.c.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro,
            src/proto/eval.pro

Patch 7.4.1540
Problem:    Channel test is a bit flaky.
Solution:   Increase expected wait time.
Files:      src/testdir/test_channel.vim

Patch 7.4.1541
Problem:    Missing job_info().
Solution:   Implement it.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, runtime/doc/eval.txt

Patch 7.4.1542
Problem:    job_start() with a list is not tested.
Solution:   Call job_start() with a list.
Files:      src/testdir/test_channel.vim

Patch 7.4.1543
Problem:    Channel log methods are not tested.
Solution:   Log job activity and check it.
Files:      src/testdir/test_channel.vim

Patch 7.4.1544
Problem:    On Win32 escaping the command does not work properly.
Solution:   Reset 'ssl' when escaping the command. (Yasuhiro Matsumoto)
Files:      src/channel.c

Patch 7.4.1545
Problem:    GTK3: horizontal cursor movement in Visual selection not good.
Solution:   Make it work better. (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 7.4.1546
Problem:    Sticky type checking is more annoying than useful.
Solution:   Remove the error for changing a variable type.
Files:      src/eval.c, src/testdir/test_assign.vim,
            src/testdir/test_alot.vim, runtime/doc/eval.txt

Patch 7.4.1547
Problem:    Getting a cterm highlight attribute that is not set results in the
            string "-1".
Solution:   Return an empty string. (Taro Muraoka)
Files:      src/syntax.c, src/testdir/test_alot.vim,
            src/testdir/test_syn_attr.vim

Patch 7.4.1548 (after 7.4.1546)
Problem:    Two tests fail.
Solution:   Adjust the expected error number. Remove check for type.
Files:      src/testdir/test101.ok, src/testdir/test55.in,
            src/testdir/test55.ok

Patch 7.4.1549 (after 7.4.1547)
Problem:    Test for syntax attributes fails in Win32 GUI.
Solution:   Use an existing font name.
Files:      src/testdir/test_syn_attr.vim

Patch 7.4.1550
Problem:    Cannot load packages early.
Solution:   Add the ":packloadall" command.
Files:      src/ex_cmds.h, src/ex_cmds2.c, src/main.c,
            src/proto/ex_cmds2.pro, src/testdir/test_packadd.vim

Patch 7.4.1551
Problem:    Cannot generate help tags in all doc directories.
Solution:   Make ":helptags ALL" work.
Files:      src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/ex_cmds.c, src/vim.h
            src/testdir/test_packadd.vim

Patch 7.4.1552
Problem:    ":colorscheme" does not use 'packpath'.
Solution:   Also use in "start" and "opt" directories in 'packpath'.
Files:      src/ex_cmds2.c, src/gui.c, src/hardcopy.c, src/os_mswin.c,
            src/spell.c, src/tag.c, src/if_py_both.h, src/vim.h,
            src/digraph.c, src/eval.c, src/ex_docmd.c, src/main.c,
            src/option.c, src/syntax.c, src/testdir/test_packadd.vim

Patch 7.4.1553
Problem:    ":runtime" does not use 'packpath'.
Solution:   Add "what" argument.
Files:      src/ex_cmds2.c, src/vim.h, runtime/doc/repeat.txt,
            src/testdir/test_packadd.vim

Patch 7.4.1554
Problem:    Completion for :colorscheme does not use 'packpath'.
Solution:   Make it work, add a test. (Hirohito Higashi)
Files:      src/ex_getln.c, src/testdir/test_packadd.vim

Patch 7.4.1555
Problem:    List of test targets incomplete.
Solution:   Add newly added tests.
Files:      src/Makefile

Patch 7.4.1556
Problem:    "make install" changes the help tags file, causing it to differ
            from the repository.
Solution:   Move it aside and restore it.
Files:      src/Makefile

Patch 7.4.1557
Problem:    Windows cannot be identified.
Solution:   Add a unique window number to each window and functions to use it.
Files:      src/structs.h, src/window.c, src/eval.c, src/proto/eval.pro,
            src/proto/window.pro, src/testdir/test_window_id.vim,
            src/testdir/Make_all.mak, runtime/doc/eval.txt

Patch 7.4.1558
Problem:    It is not easy to find out what windows display a buffer.
Solution:   Add win_findbuf().
Files:      src/eval.c, src/window.c, src/proto/window.pro,
            src/testdir/test_window_id.vim, runtime/doc/eval.txt

Patch 7.4.1559
Problem:    Passing cookie to a callback is clumsy.
Solution:   Change function() to take arguments and return a partial.
Files:      src/structs.h, src/channel.c, src/eval.c, src/if_python.c,
            src/if_python3.c, src/if_py_both.h, src/json.c,
            src/proto/eval.pro, src/testdir/test_partial.vim,
            src/testdir/test_alot.vim, runtime/doc/eval.txt

Patch 7.4.1560
Problem:    Dict options with a dash are more difficult to use.
Solution:   Use an underscore, so that dict.err_io can be used.
Files:      src/channel.c, src/structs.h, src/testdir/test_channel.vim,
            runtime/doc/channel.txt

Patch 7.4.1561 (after 7.4.1559)
Problem:    Missing update to proto file.
Solution:   Change the proto file.
Files:      src/proto/channel.pro

Patch 7.4.1562
Problem:    ":helptags ALL" crashes. (Lcd)
Solution:   Don't free twice.
Files:      src/ex_cmds.c

Patch 7.4.1563
Problem:    Partial test fails on windows.
Solution:   Return 1 or -1 from compare function.
Files:      src/testdir/test_partial.vim

Patch 7.4.1564
Problem:    An empty list in function() causes an error.
Solution:   Handle an empty list like there is no list of arguments.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1565
Problem:    Crash when assert_equal() runs into a NULL string.
Solution:   Check for NULL. (Dominique) Add a test.
Files:      src/eval.c, src/testdir/test_assert.vim

Patch 7.4.1566
Problem:    Compiler warning for shadowed variable. (Kazunobu Kuriyama)
Solution:   Remove the inner one.
Files:      src/eval.c

Patch 7.4.1567
Problem:    Crash in assert_fails().
Solution:   Check for NULL. (Dominique Pelle)  Add a test.
Files:      src/eval.c, src/testdir/test_assert.vim

Patch 7.4.1568
Problem:    Using CTRL-] in help on option in parentheses doesn't work.
Solution:   Skip the "(" in "('". (Hirohito Higashi)
Files:      src/ex_cmds.c

Patch 7.4.1569
Problem:    Using old style tests for quickfix.
Solution:   Change them to new style tests. (Yegappan Lakshmanan)
Files:      src/testdir/Make_all.mak, src/testdir/test106.in,
            src/testdir/test106.ok, src/testdir/test_qf_title.in,
            src/testdir/test_qf_title.ok, src/testdir/test_quickfix.vim

Patch 7.4.1570
Problem:    There is no way to avoid the message when editing a file.
Solution:   Add the "F" flag to 'shortmess'. (Shougo Matsu, closes #686)
Files:      runtime/doc/options.txt, src/buffer.c, src/ex_cmds.c,
            src/option.h

Patch 7.4.1571
Problem:    No test for ":help".
Solution:   Add a test for what 7.4.1568 fixed. (Hirohito Higashi)
Files:      src/testdir/test_alot.vim, src/testdir/test_help_tagjump.vim

Patch 7.4.1572
Problem:    Setting 'compatible' in test influences following tests.
Solution:   Turn 'compatible' off again.
Files:      src/testdir/test_backspace_opt.vim

Patch 7.4.1573
Problem:    Tests get stuck at the more prompt.
Solution:   Move the backspace test out of test_alot.
Files:      src/testdir/test_alot.vim, src/testdir/Make_all.mak

Patch 7.4.1574
Problem:    ":undo 0" does not work. (Florent Fayolle)
Solution:   Make it undo all the way. (closes #688)
Files:      src/undo.c, src/testdir/test_undolevels.vim,
            src/testdir/test_ex_undo.vim, src/testdir/test_alot.vim

Patch 7.4.1575
Problem:    Using wrong size for struct.
Solution:   Use the size for wide API. (Ken Takata)
Files:      src/gui_w32.c

Patch 7.4.1576
Problem:    Write error of viminfo file is not handled properly. (Christian
            Neukirchen)
Solution:   Check the return value of fclose(). (closes #682)
Files:      src/ex_cmds.c

Patch 7.4.1577
Problem:    Cannot pass "dict.Myfunc" around as a partial.
Solution:   Create a partial when expected.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1578
Problem:    There is no way to invoke a function later or periodically.
Solution:   Add timer support.
Files:      src/eval.c, src/ex_cmds2.c, src/screen.c, src/ex_docmd.c,
            src/feature.h, src/gui.c, src/proto/eval.pro,
            src/proto/ex_cmds2.pro, src/proto/screen.pro, src/structs.h,
            src/version.c, src/testdir/test_alot.vim,
            src/testdir/test_timers.vim, runtime/doc/eval.txt

Patch 7.4.1579 (after 7.4.1578)
Problem:    Missing changes in channel.c
Solution:   Include the changes.
Files:      src/channel.c

Patch 7.4.1580
Problem:    Crash when using function reference. (Luchr)
Solution:   Set initial refcount. (Ken Takata, closes #690)
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1581
Problem:    Using ":call dict.func()" where the function is a partial does
            not work.  Using "dict.func()" where the function does not take a
            Dictionary does not work.
Solution:   Handle partial properly in ":call". (Yasuhiro Matsumoto)
Files:      src/eval.c, src/testdir/test_partial.vim, src/testdir/test55.ok

Patch 7.4.1582
Problem:    Get E923 when using function(dict.func, [], dict). (Kent Sibilev)
            Storing a function with a dict in a variable drops the dict if the
            function is script-local.
Solution:   Translate the function name.  Use dict arg if present.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1583
Problem:    Warning for uninitialized variable.
Solution:   Initialize it. (Dominique)
Files:      src/ex_cmds2.c

Patch 7.4.1584
Problem:    Timers don't work for Win32 console.
Solution:   Add check_due_timer() in WaitForChar().
Files:      src/os_win32.c

Patch 7.4.1585
Problem:    Partial is not recognized everywhere.
Solution:   Check for partial in trans_function_name(). (Yasuhiro Matsumoto)
            Add a test.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1586
Problem:    Nesting partials doesn't work.
Solution:   Append arguments. (Ken Takata)
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1587
Problem:    Compiler warnings with 64 bit compiler.
Solution:   Add type casts. (Mike Williams)
Files:      src/ex_cmds2.c

Patch 7.4.1588
Problem:    Old style test for quickfix.
Solution:   Turn test 96 into a new style test.
Files:      src/testdir/Make_all.mak, src/testdir/test96.in,
            src/testdir/test96.ok, src/testdir/test_quickfix.vim

Patch 7.4.1589
Problem:    Combining dict and args with partial doesn't always work.
Solution:   Use the arguments from the partial.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1590
Problem:    Warning for shadowed variable. (Christian Brabandt)
Solution:   Move the variable into a local block.
Files:      src/eval.c

Patch 7.4.1591
Problem:    The quickfix title is truncated.
Solution:   Save the command before it is truncated. (Anton Lindqvist)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1592
Problem:    Quickfix code using memory after being freed. (Dominique Pelle)
Solution:   Detect that the window was closed. (Hirohito Higashi)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1593
Problem:    Using channel timeout instead of request timeout. (Coverity)
Solution:   Remove the extra assignment.
Files:      src/channel.c

Patch 7.4.1594
Problem:    Timers don't work on Unix.
Solution:   Add missing code.
Files:      src/os_unix.c

Patch 7.4.1595
Problem:    Not checking for failed open(). (Coverity)
Solution:   Check file descriptor not being negative.
Files:      src/os_unix.c

Patch 7.4.1596
Problem:    Memory leak. (Coverity)
Solution:   Free the pattern.
Files:      src/ex_cmds2.c

Patch 7.4.1597
Problem:    Memory leak when out of memory. (Coverity)
Solution:   Free the name.
Files:      src/eval.c

Patch 7.4.1598
Problem:    When starting the GUI fails a swap file is left behind. (Joerg
            Plate)
Solution:   Preserve files before exiting. (closes #692)
Files:      src/main.c, src/gui.c

Patch 7.4.1599
Problem:    No link to Coverity.
Solution:   Add Coverity badge in README.
Files:      README.md

Patch 7.4.1600
Problem:    libs directory is not useful.
Solution:   Remove arp.library, it was only for very old Amiga versions.
Files:      libs/arp.library, Filelist

Patch 7.4.1601
Problem:    README files take a lot of space in the top directory.
Solution:   Move most of them to "READMEdir".
Files:      Filelist, Makefile, README.txt.info, README_ami.txt,
            README_ami.txt.info, README_amibin.txt, README_amibin.txt.info,
            README_amisrc.txt, README_amisrc.txt.info, README_bindos.txt,
            README_dos.txt, README_extra.txt, README_mac.txt, README_ole.txt,
            README_os2.txt, README_os390.txt, README_src.txt,
            README_srcdos.txt, README_unix.txt, README_vms.txt,
            README_w32s.txt, READMEdir/README.txt.info,
            READMEdir/README_ami.txt, READMEdir/README_ami.txt.info,
            READMEdir/README_amibin.txt, READMEdir/README_amibin.txt.info,
            READMEdir/README_amisrc.txt, READMEdir/README_amisrc.txt.info,
            READMEdir/README_bindos.txt, READMEdir/README_dos.txt,
            READMEdir/README_extra.txt, READMEdir/README_mac.txt,
            READMEdir/README_ole.txt, READMEdir/README_os2.txt,
            READMEdir/README_os390.txt, READMEdir/README_src.txt,
            READMEdir/README_srcdos.txt, READMEdir/README_unix.txt,
            READMEdir/README_vms.txt, READMEdir/README_w32s.txt,

Patch 7.4.1602
Problem:    Info files take space in the top directory.
Solution:   Move them to "READMEdir".
Files:      Filelist, src.info, Contents.info, runtime.info, vimdir.info,
            Vim.info, Xxd.info, READMEdir/src.info, READMEdir/Contents.info,
            READMEdir/runtime.info, READMEdir/vimdir.info, READMEdir/Vim.info,
            READMEdir/Xxd.info

Patch 7.4.1603
Problem:    Timer with an ":echo" command messes up display.
Solution:   Redraw depending on the mode. (Hirohito Higashi)  Avoid the more
            prompt being used recursively.
Files:      src/screen.c, src/message.c

Patch 7.4.1604
Problem:    Although emoji characters are ambiguous width, best is to treat
            them as full width.
Solution:   Update the Unicode character tables. Add the 'emoji' options.
            (Yasuhiro Matsumoto)
Files:      runtime/doc/options.txt, runtime/optwin.vim,
            runtime/tools/unicode.vim, src/mbyte.c, src/option.c, src/option.h

Patch 7.4.1605
Problem:    Catching exception that won't be thrown.
Solution:   Remove try/catch.
Files:      src/testdir/test55.in

Patch 7.4.1606
Problem:    Having type() handle a Funcref that is or isn't a partial
            differently causes problems for existing scripts.
Solution:   Make type() return the same value. (Thinca)
Files:      src/eval.c, src/testdir/test_viml.vim

Patch 7.4.1607
Problem:    Comparing a function that exists on two dicts is not backwards
            compatible. (Thinca)
Solution:   Only compare the function, not what the partial adds.
Files:      src/eval.c, src/testdir/test_alot.vim, src/testdir/test_expr.vim

Patch 7.4.1608
Problem:    string() doesn't handle a partial.
Solution:   Make a string from a partial.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1609
Problem:    Contents file is only for Amiga distro.
Solution:   Move it to "READMEdir".  Update some info.
Files:      Filelist, Contents, READMEdir/Contents

Patch 7.4.1610
Problem:    Compiler warnings for non-virtual destructor.
Solution:   Mark the classes final. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/gui_dwrite.cpp, src/if_ole.cpp

Patch 7.4.1611
Problem:    The versplit feature makes the code unnecessary complicated.
Solution:   Remove FEAT_VERTSPLIT, always support vertical splits when
            FEAT_WINDOWS is defined.
Files:      src/buffer.c, src/charset.c, src/eval.c, src/ex_cmds.c,
            src/ex_docmd.c, src/ex_getln.c, src/gui.c, src/if_lua.c,
            src/if_mzsch.c, src/if_ruby.c, src/main.c, src/misc1.c,
            src/misc2.c, src/move.c, src/normal.c, src/option.c,
            src/quickfix.c, src/screen.c, src/syntax.c, src/term.c, src/ui.c,
            src/window.c, src/globals.h, src/gui.h, src/if_py_both.h,
            src/option.h, src/structs.h, src/term.h
            src/feature.h, src/vim.h, src/version.c

Patch 7.4.1612 (after 7.4.1611)
Problem:    Can't build with small features.
Solution:   Move code and #ifdefs.
Files:      src/ex_getln.c

Patch 7.4.1613 (after 7.4.1612)
Problem:    Still can't build with small features.
Solution:   Adjust #ifdefs.
Files:      src/ex_getln.c

Patch 7.4.1614
Problem:    Still quickfix test in old style.
Solution:   Turn test 10 into a new style test.
Files:      src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/main.aap, src/testdir/test10.in,
            src/testdir/test10.ok, src/testdir/test_quickfix.vim,
            src/testdir/test10a.in, src/testdir/test10a.ok

Patch 7.4.1615
Problem:    Build fails with tiny features.
Solution:   Adjust #ifdefs.
Files:      src/normal.c, src/window.c

Patch 7.4.1616
Problem:    Malformed channel request causes a hang.
Solution:   Drop malformed message. (Damien)
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel.py

Patch 7.4.1617
Problem:    When a JSON message is split it isn't decoded.
Solution:   Wait a short time for the rest of the message to arrive.
Files:      src/channel.c, src/json.c, src/structs.h,
            src/testdir/test_channel.vim, src/testdir/test_channel.py

Patch 7.4.1618
Problem:    Starting job with output to buffer changes options in the current
            buffer.
Solution:   Set "curbuf" earlier. (Yasuhiro Matsumoto)
Files:      src/channel.c

Patch 7.4.1619
Problem:    When 'fileformats' is set in the vimrc it applies to new buffers
            but not the initial buffer.
Solution:   Set 'fileformat' when starting up. (Mike Williams)
Files:      src/option.c

Patch 7.4.1620
Problem:    Emoji characters are not considered as a kind of word character.
Solution:   Give emoji characters a word class number. (Yasuhiro Matsumoto)
Files:      src/mbyte.c

Patch 7.4.1621
Problem:    Channel test doesn't work with Python 2.6.
Solution:   Add number in formatting placeholder. (Wiredool)
Files:      src/testdir/test_channel.py

Patch 7.4.1622
Problem:    Channel demo doesn't work with Python 2.6.
Solution:   Add number in formatting placeholder
Files:      runtime/tools/demoserver.py

Patch 7.4.1623
Problem:    All Channels share the message ID, it keeps getting bigger.
Solution:   Use a message ID per channel.
Files:      src/channel.c, src/proto/channel.pro, src/structs.h

Patch 7.4.1624
Problem:    Can't get info about a channel.
Solution:   Add ch_info().
Files:      src/eval.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, runtime/doc/eval.txt

Patch 7.4.1625
Problem:    Trying to close file descriptor that isn't open.
Solution:   Check for negative number.
Files:      src/os_unix.c

Patch 7.4.1626 (after 7.4.1624)
Problem:    Missing changes to structs.
Solution:   Include the changes.
Files:      src/structs.h

Patch 7.4.1627
Problem:    Channel out_cb and err_cb are not tested.
Solution:   Add a test.
Files:      src/testdir/test_channel.vim

Patch 7.4.1628
Problem:    64-bit Compiler warning.
Solution:   Change type of variable. (Mike Williams)
Files:      src/channel.c

Patch 7.4.1629
Problem:    Handling emoji characters as full width has problems with
            backwards compatibility.
Solution:   Remove ambiguous and double width characters from the emoji table.
            Use a separate table for the character class.
            (partly by Yasuhiro Matsumoto)
Files:      runtime/tools/unicode.vim, src/mbyte.c

Patch 7.4.1630
Problem:    Unicode table for double width is outdated.
Solution:   Update to the latest Unicode standard.
Files:      src/mbyte.c

Patch 7.4.1631
Problem:    Compiler doesn't understand switch on all enum values. (Tony
            Mechelynck)
Solution:   Initialize variable.
Files:      src/channel.c

Patch 7.4.1632
Problem:    List of test targets is outdated.
Solution:   Update to current list of test targets.
Files:      src/Makefile

Patch 7.4.1633
Problem:    If the help tags file was removed "make install" fails. (Tony
            Mechelynck)
Solution:   Only try moving the file if it exists.
Files:      src/Makefile

Patch 7.4.1634
Problem:    Vertical movement after CTRL-A ends up in the wrong column.
            (Urtica Dioica)
Solution:   Set curswant when appropriate. (Hirohito Higashi)
Files:      src/ops.c, src/testdir/test_increment.vim

Patch 7.4.1635
Problem:    Channel test is a bit flaky.
Solution:   Remove 'DETACH' if it's there.
Files:      src/testdir/test_channel.vim

Patch 7.4.1636
Problem:    When 'F' is in 'shortmess' the prompt for the encryption key isn't
            displayed. (Toothpik)
Solution:   Reset msg_silent.
Files:      src/ex_getln.c

Patch 7.4.1637
Problem:    Can't build with older MinGW compiler.
Solution:   Change option from c++11 to gnu++11. (Ken Takata)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1638
Problem:    When binding a function to a dict the reference count is wrong.
Solution:   Decrement dict reference count, only reference the function when
            actually making a copy. (Ken Takata)
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1639
Problem:    Invoking garbage collection may cause a double free.
Solution:   Don't free the dict in a partial when recursive is FALSE.
Files:      src/eval.c

Patch 7.4.1640
Problem:    Crash when an autocommand changes a quickfix list. (Dominique)
Solution:   Check whether an entry is still valid. (Yegappan Lakshmanan,
            Hirohito Higashi)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1641
Problem:    Using unterminated string.
Solution:   Add NUL before calling vim_strsave_shellescape(). (James McCoy)
Files:      src/eval.c, src/testdir/test105.in, src/testdir/test105.ok

Patch 7.4.1642
Problem:    Handling emoji characters as full width has problems with
            backwards compatibility.
Solution:   Only put characters in the 1f000 range in the emoji table.
Files:      runtime/tools/unicode.vim, src/mbyte.c

Patch 7.4.1643 (after 7.4.1641)
Problem:    Terminating file name has side effects.
Solution:   Restore the character. (mostly by James McCoy, closes #713)
Files:      src/eval.c, src/testdir/test105.in, src/testdir/test105.ok

Patch 7.4.1644
Problem:    Using string() on a partial that exists in the dictionary it binds
            results in an error. (Nikolai Pavlov)
Solution:   Make string() not fail on a recursively nested structure. (Ken
            Takata)
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1645
Problem:    When a dict contains a partial it can't be redefined as a
            function. (Nikolai Pavlov)
Solution:   Remove the partial when overwriting with a function.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1646
Problem:    Using Python vim.bindeval() on a partial doesn't work. (Nikolai
            Pavlov)
Solution:   Add VAR_PARTIAL support in Python.
Files:      src/if_py_both.h, src/testdir/test_partial.vim

Patch 7.4.1647
Problem:    Using freed memory after setqflist() and ":caddbuffer".  (Dominique)
Solution:   Set qf_ptr when adding the first item to the quickfix list.
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1648
Problem:    Compiler has a problem copying a string into di_key[]. (Yegappan
            Lakshmanan)
Solution:   Add dictitem16_T.
Files:      src/structs.h, src/eval.c

Patch 7.4.1649
Problem:    The matchit plugin needs to be copied to be used.
Solution:   Put the matchit plugin in an optional package.
Files:      Filelist, runtime/macros/matchit.vim, runtime/macros/matchit.txt,
            runtime/macros/README.txt, src/Makefile,
            runtime/pack/dist/opt/matchit/plugin/matchit.vim,
            runtime/pack/dist/opt/matchit/doc/matchit.txt,
            runtime/pack/dist/opt/matchit/doc/tags,
            runtime/doc/usr_05.txt, runtime/doc/usr_toc.txt

Patch 7.4.1650
Problem:    Quickfix test fails.
Solution:   Accept any number of matches.
Files:      src/testdir/test_quickfix.vim

Patch 7.4.1651
Problem:    Some dead (MSDOS) code remains.
Solution:   Remove the unused lines. (Ken Takata)
Files:      src/misc1.c

Patch 7.4.1652
Problem:    Old style test for fnamemodify().
Solution:   Turn it into a new style test.
Files:      src/testdir/test105.in, src/testdir/test105.ok,
            src/testdir/test_fnamemodify.vim, src/testdir/test_alot.vim,
            src/testdir/Make_all.mak

Patch 7.4.1653 (after 7.4.1649)
Problem:    Users who loaded matchit.vim manually have to change their
            startup. (Gary Johnson)
Solution:   Add a file in the old location that loads the package.
Files:      runtime/macros/matchit.vim, Filelist

Patch 7.4.1654
Problem:    Crash when using expand('%:S') in a buffer without a name.
Solution:   Don't set a NUL. (James McCoy, closes #714)
Files:      src/eval.c, src/testdir/test_fnamemodify.vim

Patch 7.4.1655
Problem:    remote_expr() hangs. (Ramel)
Solution:   Check for messages in the waiting loop.
Files:      src/if_xcmdsrv.c

Patch 7.4.1656
Problem:    Crash when using partial with a timer.
Solution:   Increment partial reference count. (Hirohito Higashi)
Files:      src/eval.c, src/testdir/test_timers.vim

Patch 7.4.1657
Problem:    On Unix in a terminal: channel messages are not handled right away.
            (Jackson Alves de Aquino)
Solution:   Break the loop for timers when something was received.
Files:      src/os_unix.c

Patch 7.4.1658
Problem:    A plugin does not know when VimEnter autocommands were already
            triggered.
Solution:   Add the v:vim_did_enter variable.
Files:      src/eval.c, src/main.c, src/vim.h, src/testdir/test_autocmd.vim,
            src/testdir/test_alot.vim, runtime/doc/autocmd.txt,
            runtime/doc/eval.txt

Patch 7.4.1659 (after 7.4.1657)
Problem:    Compiler warning for argument type. (Manuel Ortega)
Solution:   Remove "&".
Files:      src/os_unix.c

Patch 7.4.1660
Problem:    has('patch-7.4.1') doesn't work.
Solution:   Fix off-by-one error. (Thinca)
Files:      src/eval.c, src/testdir/test_expr.vim, src/testdir/test60.in,
            src/testdir/test60.ok

Patch 7.4.1661
Problem:    No test for special characters in channel eval command.
Solution:   Testing sending and receiving text with special characters.
Files:      src/testdir/test_channel.vim, src/testdir/test_channel.py

Patch 7.4.1662
Problem:    No test for an invalid Ex command on a channel.
Solution:   Test handling an invalid command gracefully.  Avoid getting an
            error message, do write it to the channel log.
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel.py

Patch 7.4.1663
Problem:    In tests it's often useful to check if a pattern matches.
Solution:   Add assert_match().
Files:      src/eval.c, src/testdir/test_assert.vim,
            src/testdir/test_channel.vim, runtime/doc/eval.txt

Patch 7.4.1664
Problem:    Crash in :cgetexpr.
Solution:   Check for NULL pointer. (Dominique) Add a test.
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1665
Problem:    Crash when calling job_start() with a NULL string. (Dominique)
Solution:   Check for an invalid argument.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1666
Problem:    When reading JSON from a channel all readahead is used.
Solution:   Use the fill function to reduce overhead.
Files:      src/channel.c, src/json.c, src/structs.h

Patch 7.4.1667
Problem:    Win32: waiting on a pipe with fixed sleep time.
Solution:   Start with a short delay and increase it when looping.
Files:      src/channel.c

Patch 7.4.1668
Problem:    channel_get_all() does multiple allocations.
Solution:   Compute the size and allocate once.
Files:      src/channel.c

Patch 7.4.1669
Problem:    When writing buffer lines to a pipe Vim may block.
Solution:   Avoid blocking, write more lines later.
Files:      src/channel.c, src/misc2.c, src/os_unix.c, src/structs.h,
            src/vim.h, src/proto/channel.pro, src/testdir/test_channel.vim

Patch 7.4.1670
Problem:    Completion doesn't work well for a variable containing "#".
Solution:   Recognize the "#". (Watiko)
Files:      src/eval.c

Patch 7.4.1671
Problem:    When help exists in multiple languages, adding @ab while "ab" is
            the default help language is unnecessary.
Solution:   Leave out "@ab" when not needed. (Ken Takata)
Files:      src/ex_getln.c

Patch 7.4.1672
Problem:    The Dvorak support is a bit difficult to install.
Solution:   Turn it into an optional package.
Files:      runtime/macros/dvorak, runtime/macros/README.txt,
            runtime/pack/dist/opt/dvorak/plugin/dvorak.vim,
            runtime/pack/dist/opt/dvorak/dvorak/enable.vim,
            runtime/pack/dist/opt/dvorak/dvorak/disable.vim

Patch 7.4.1673
Problem:    The justify plugin has to be copied or sourced to be used.
Solution:   Turn it into a package.
Files:      runtime/macros/justify.vim, runtime/macros/README.txt,
            runtime/pack/dist/opt/justify/plugin/justify.vim, Filelist

Patch 7.4.1674
Problem:    The editexisting plugin has to be copied or sourced to be used.
Solution:   Turn it into a package.
Files:      runtime/macros/editexisting.vim, runtime/macros/README.txt,
            runtime/pack/dist/opt/editexisting/plugin/editexisting.vim,
            Filelist

Patch 7.4.1675
Problem:    The swapmous plugin has to be copied or sourced to be used.
Solution:   Turn it into the swapmouse package.
Files:      runtime/macros/swapmous.vim, runtime/macros/README.txt,
            runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim, Filelist

Patch 7.4.1676
Problem:    The shellmenu plugin has to be copied or sourced to be used.
Solution:   Turn it into a package.
Files:      runtime/macros/shellmenu.vim, runtime/macros/README.txt,
            runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim, Filelist

Patch 7.4.1677
Problem:    A reference to the removed file_select plugin remains.
Solution:   Remove it.
Files:      runtime/macros/README.txt

Patch 7.4.1678
Problem:    Warning for unused argument.
Solution:   Add UNUSED. (Dominique Pelle)
Files:      src/if_mzsch.c

Patch 7.4.1679
Problem:    Coverity: copying value of v_lock without initializing it.
Solution:   Init v_lock in rettv_list_alloc() and rettv_dict_alloc().
Files:      src/eval.c

Patch 7.4.1680
Problem:    Coverity warns for not checking name length (false positive).
Solution:   Only copy the characters we know are there.
Files:      src/channel.c

Patch 7.4.1681
Problem:    Coverity warns for fixed size buffer length (false positive).
Solution:   Add a check for the name length.
Files:      src/eval.c

Patch 7.4.1682
Problem:    Coverity: no check for NULL.
Solution:   Add check for invalid argument to assert_match().
Files:      src/eval.c

Patch 7.4.1683
Problem:    Generated .bat files do not support --nofork.
Solution:   Add check for --nofork.  Also add "setlocal". (Kevin Cantú,
            closes #659)
Files:      src/dosinst.c

Patch 7.4.1684
Problem:    README text is slightly outdated.
Solution:   Mention the READMEdir directory.
Files:      README.md, README.txt

Patch 7.4.1685
Problem:    There is no easy way to get all the information about a match.
Solution:   Add matchstrpos(). (Ozaki Kiichi)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
            src/testdir/test_alot.vim, src/testdir/test_matchstrpos.vim

Patch 7.4.1686
Problem:    When running tests $HOME/.viminfo is written. (James McCoy)
Solution:   Add 'nviminfo' to the 'viminfo' option. (closes #722)
Files:      src/testdir/test_backspace_opt.vim, src/testdir/test_viminfo.vim,
            src/testdir/runtest.vim.

Patch 7.4.1687
Problem:    The channel close_cb option does not work.
Solution:   Use jo_close_partial instead of jo_err_partial. (Damien)
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1688
Problem:    MzScheme does not support partial.
Solution:   Add minimal partial support. (Ken Takata)
Files:      src/if_mzsch.c

Patch 7.4.1689
Problem:    Ruby interface has inconsistent coding style.
Solution:   Fix the coding style. (Ken Takata)
Files:      src/if_ruby.c

Patch 7.4.1690
Problem:    Can't compile with the conceal feature but without multi-byte.
Solution:   Adjust #ifdef. (Owen Leibman)
Files:      src/eval.c, src/window.c

Patch 7.4.1691
Problem:    When switching to a new buffer and an autocommand applies syntax
            highlighting an ml_get error may occur.
Solution:   Check "syn_buf" against the buffer in the window. (Alexander von
            Buddenbrock, closes #676)
Files:      src/syntax.c

Patch 7.4.1692
Problem:    feedkeys('i', 'x') gets stuck, waits for a character to be typed.
Solution:   Behave like ":normal". (Yasuhiro Matsumoto)
Files:      src/eval.c, src/testdir/test_feedkeys.vim

Patch 7.4.1693
Problem:    Building the Perl interface gives compiler warnings.
Solution:   Remove a pragma. Add noreturn attributes. (Damien)
Files:      src/if_perl.xs

Patch 7.4.1694
Problem:    Win32 gvim doesn't work with "dvorakj" input method.
Solution:   Wait for QS_ALLINPUT instead of QS_ALLEVENTS. (Yukihiro Nakadaira)
Files:      src/gui_w32.c

Patch 7.4.1695
Problem:    ":syn reset" clears the effect ":syn iskeyword". (James McCoy)
Solution:   Remove clearing the syntax keywords.
Files:      src/syntax.c

Patch 7.4.1696
Problem:    When using :stopinsert in a silent mapping the "INSERT" message
            isn't cleared. (Coacher)
Solution:   Always clear the message. (Christian Brabandt, closes #718)
Files:      src/ex_docmd.c, src/proto/screen.pro, src/screen.c

Patch 7.4.1697
Problem:    Display problems when the 'ambiwidth' and 'emoji' options are not
            set properly or the terminal doesn't behave as expected.
Solution:   After drawing an ambiguous width character always position the
            cursor.
Files:      src/mbyte.c, src/screen.c, src/proto/mbyte.pro

Patch 7.4.1698
Problem:    Two tests fail when running tests with MinGW. (Michael Soyka)
Solution:   Convert test_getcwd.ok test_wordcount.ok to unix fileformat.
Files:      src/testdir/Make_ming.mak

Patch 7.4.1699
Problem:    :packadd does not work the same when used early or late.
Solution:   Always load plugins matching "plugin/**/*.vim".
Files:      src/ex_cmds2.c, src/testdir/test_packadd.vim

Patch 7.4.1700
Problem:    Equivalence classes are not properly tested.
Solution:   Add tests for multi-byte and latin1. Fix an error. (Owen Leibman)
Files:      src/regexp.c, src/testdir/Make_all.mak,
            src/testdir/test_alot_latin.vim, src/testdir/test_alot_utf8.vim,
            src/testdir/test_regexp_latin.vim,
            src/testdir/test_regexp_utf8.vim

Patch 7.4.1701
Problem:    Equivalence classes still tested in old style tests.
Solution:   Remove the duplicate.
Files:      src/testdir/test44.in, src/testdir/test44.ok,
            src/testdir/test99.in, src/testdir/test99.ok

Patch 7.4.1702
Problem:    Using freed memory when parsing 'printoptions' fails.
Solution:   Save the old options and restore them in case of an error.
            (Dominique)
Files:      src/hardcopy.c, src/testdir/test_hardcopy.vim

Patch 7.4.1703
Problem:    Can't assert for not equal and not matching.
Solution:   Add assert_notmatch() and assert_notequal().
Files:      src/eval.c, runtime/doc/eval.txt, src/testdir/test_assert.vim

Patch 7.4.1704
Problem:    Using freed memory with "wincmd p". (Dominique Pelle)
Solution:   Also clear "prevwin" in other tab pages.
Files:      src/window.c

Patch 7.4.1705
Problem:    The 'guifont' option does not allow for a quality setting.
Solution:   Add the "q" item, supported on MS-Windows. (Yasuhiro Matsumoto)
Files:      runtime/doc/options.txt, src/gui_w32.c, src/os_mswin.c,
            src/proto/os_mswin.pro

Patch 7.4.1706
Problem:    Old style function declaration breaks build.
Solution:   Remove __ARGS().
Files:      src/proto/os_mswin.pro

Patch 7.4.1707
Problem:    Cannot use empty dictionary key, even though it can be useful.
Solution:   Allow using an empty dictionary key.
Files:      src/hashtab.c, src/eval.c, src/testdir/test_expr.vim

Patch 7.4.1708
Problem:    New regexp engine does not work properly with EBCDIC.
Solution:   Define equivalence class characters. (Owen Leibman)
Files:      src/regexp_nfa.c

Patch 7.4.1709
Problem:    Mistake in #ifdef.
Solution:   Change PROOF_QUALITY to DRAFT_QUALITY. (Ken Takata)
Files:      src/os_mswin.c

Patch 7.4.1710
Problem:    Not all output of an external command is read.
Solution:   Avoid timing out when the process has exited. (closes #681)
Files:      src/os_unix.c

Patch 7.4.1711
Problem:    When using try/catch in 'statusline' it is still considered an
            error and the status line will be disabled.
Solution:   Check did_emsg instead of called_emsg. (haya14busa, closes #729)
Files:      src/screen.c, src/testdir/test_statusline.vim,
            src/testdir/test_alot.vim

Patch 7.4.1712
Problem:    For plugins in packages, plugin authors need to take care of all
            dependencies.
Solution:   When loading "start" packages and for :packloadall, first add all
            directories to 'runtimepath' before sourcing plugins.
Files:      src/ex_cmds2.c, src/testdir/test_packadd.vim

Patch 7.4.1713
Problem:    GTK GUI doesn't work on Wayland.
Solution:   Specify that only the X11 backend is allowed. (Simon McVittie)
Files:      src/gui_gtk_x11.c

Patch 7.4.1714
Problem:    Non-GUI specific settings in the gvimrc_example file.
Solution:   Move some settings to the vimrc_example file.  Remove setting
            'hlsearch' again. (suggested by Hirohito Higashi)
Files:      runtime/vimrc_example.vim, runtime/gvimrc_example.vim

Patch 7.4.1715
Problem:    Double free when a partial is in a cycle with a list or dict.
            (Nikolai Pavlov)
Solution:   Do not free a nested list or dict used by the partial.
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1716
Problem:    'autochdir' doesn't work for the first file. (Rob Hoelz)
Solution:   Call DO_AUTOCHDIR after startup. (Christian Brabandt, closes #704)
Files:      src/main.c

Patch 7.4.1717
Problem:    Leaking memory when opening a channel fails.
Solution:   Unreference partials in job options.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 7.4.1718
Problem:    Coverity: not using return value of set_ref_in_item().
Solution:   Use the return value.
Files:      src/eval.c

Patch 7.4.1719
Problem:    Leaking memory when there is a cycle involving a job and a
            partial.
Solution:   Add a copyID to job and channel.  Set references in items referred
            by them.  Go through all jobs and channels to find unreferenced
            items.  Also, decrement reference counts when garbage collecting.
Files:      src/eval.c, src/channel.c, src/netbeans.c, src/globals.h,
            src/ops.c, src/regexp.c, src/tag.c, src/proto/channel.pro,
            src/proto/eval.pro, src/testdir/test_partial.vim, src/structs.h

Patch 7.4.1720
Problem:    Tests fail without the job feature.
Solution:   Skip tests when the job feature is not present.
Files:      src/testdir/test_partial.vim

Patch 7.4.1721
Problem:    The vimtbar files are unused.
Solution:   Remove them. (Ken Takata)
Files:      src/vimtbar.dll, src/vimtbar.h, src/vimtbar.lib, Filelist

Patch 7.4.1722
Problem:    Crash when calling garbagecollect() after starting a job.
Solution:   Set the copyID on job and channel. (Hirohito Higashi, Ozaki
            Kiichi)
Files:      src/eval.c

Patch 7.4.1723
Problem:    When using try/catch in 'tabline' it is still considered an
            error and the tabline will be disabled.
Solution:   Check did_emsg instead of called_emsg. (haya14busa, closes #746)
Files:      src/screen.c, src/testdir/test_tabline.vim,
            src/testdir/test_alot.vim

Patch 7.4.1724 (after 7.4.1723)
Problem:    Tabline test fails in GUI.
Solution:   Remove 'e' from 'guioptions'.
Files:      src/testdir/test_tabline.vim

Patch 7.4.1725
Problem:    Compiler errors for non-ANSI compilers.
Solution:   Remove // comment.  Remove comma at end of enum. (Michael Jarvis)
Files:      src/eval.c

Patch 7.4.1726
Problem:    ANSI compiler complains about string length.
Solution:   Split long string in two parts. (Michael Jarvis)
Files:      src/ex_cmds.c

Patch 7.4.1727
Problem:    Cannot detect a crash in tests when caused by garbagecollect().
Solution:   Add garbagecollect_for_testing().  Do not free a job if is still
            useful.
Files:      src/channel.c, src/eval.c, src/getchar.c, src/main.c, src/vim.h,
            src/proto/eval.pro, src/testdir/runtest.vim,
            src/testdir/test_channel.vim, runtime/doc/eval.txt

Patch 7.4.1728
Problem:    The help for functions require a space after the "(".
Solution:   Make CTRL-] on a function name ignore the arguments. (Hirohito
            Higashi)
Files:      src/ex_cmds.c, src/testdir/test_help_tagjump.vim,
            runtime/doc/eval.txt

Patch 7.4.1729
Problem:    The Perl interface cannot use 'print' operator for writing
            directly in standard IO.
Solution:   Add a minimal implementation of PerlIO Layer feature and try to
            use it for STDOUT/STDERR. (Damien)
Files:      src/if_perl.xs, src/testdir/test_perl.vim

Patch 7.4.1730
Problem:    It is not easy to get a character out of a string.
Solution:   Add strgetchar() and strcharpart().
Files:      src/eval.c, src/testdir/test_expr.vim

Patch 7.4.1731
Problem:    Python: turns partial into simple funcref.
Solution:   Use partials like partials. (Nikolai Pavlov, closes #734)
Files:      runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h,
            src/if_python.c, src/if_python3.c, src/proto/eval.pro,
            src/testdir/test86.in, src/testdir/test86.ok,
            src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.1732
Problem:    Folds may close when using autocomplete. (Anmol Sethi)
Solution:   Increment/decrement disable_fold. (Christian Brabandt, closes
            #643)
Files:      src/edit.c, src/fold.c, src/globals.h

Patch 7.4.1733
Problem:    "make install" doesn't know about cross-compiling. (Christian
            Neukirchen)
Solution:   Add CROSS_COMPILING. (closes #740)
Files:      src/configure.in, src/auto/configure, src/config.mk.in,
            src/Makefile

Patch 7.4.1734 (after 7.4.1730)
Problem:    Test fails when not using utf-8.
Solution:   Split test in regular and utf-8 part.
Files:      src/testdir/test_expr.vim, src/testdir/test_expr_utf8.vim,
            src/testdir/test_alot_utf8.vim

Patch 7.4.1735
Problem:    It is not possible to only see part of the message history.  It is
            not possible to clear messages.
Solution:   Add a count to ":messages" and a clear argument. (Yasuhiro
            Matsumoto)
Files:      runtime/doc/message.txt, src/ex_cmds.h, src/message.c,
            src/testdir/test_messages.vim, src/testdir/test_alot.vim

Patch 7.4.1736 (after 7.4.1731)
Problem:    Unused variable.
Solution:   Remove it. (Yasuhiro Matsumoto)
Files:      src/if_py_both.h

Patch 7.4.1737
Problem:    Argument marked as unused is used.
Solution:   Remove UNUSED.
Files:      src/message.c

Patch 7.4.1738
Problem:    Count for ":messages" depends on number of lines.
Solution:   Add ADDR_OTHER address type.
Files:      src/ex_cmds.h

Patch 7.4.1739
Problem:    Messages test fails on MS-Windows.
Solution:   Adjust the asserts.  Skip the "messages maintainer" line if not
            showing all messages.
Files:      src/message.c, src/testdir/test_messages.vim

Patch 7.4.1740
Problem:    syn-cchar defined with matchadd() does not appear if there are no
            other syntax definitions which matches buffer text.
Solution:   Check for startcol. (Ozaki Kiichi, haya14busa, closes #757)
Files:      src/screen.c, src/testdir/Make_all.mak,
            src/testdir/test_alot_utf8.vim, src/testdir/test_match_conceal.in,
            src/testdir/test_match_conceal.ok,
            src/testdir/test_matchadd_conceal.vim,
            src/testdir/test_matchadd_conceal_utf8.vim,
            src/testdir/test_undolevels.vim

Patch 7.4.1741
Problem:    Not testing utf-8 characters.
Solution:   Move the right asserts to the test_expr_utf8 test.
Files:      src/testdir/test_expr.vim, src/testdir/test_expr_utf8.vim

Patch 7.4.1742
Problem:    strgetchar() does not work correctly.
Solution:   use mb_cptr2len().  Add a test. (Naruhiko Nishino)
Files:      src/eval.c, src/testdir/test_expr_utf8.vim

Patch 7.4.1743
Problem:    Clang warns for uninitialized variable. (Michael Jarvis)
Solution:   Initialize it.
Files:      src/if_py_both.h

Patch 7.4.1744
Problem:    Python: Converting a sequence may leak memory.
Solution:   Decrement a reference. (Nikolai Pavlov)
Files:      src/if_py_both.h

Patch 7.4.1745
Problem:    README file is not clear about where to get Vim.
Solution:   Add links to github, releases and the Windows installer.
            (Suggested by Christian Brabandt)
Files:      README.md, README.txt

Patch 7.4.1746
Problem:    Memory leak in Perl.
Solution:   Decrement the reference count.  Add a test. (Damien)
Files:      src/if_perl.xs, src/testdir/test_perl.vim

Patch 7.4.1747
Problem:    Coverity: missing check for NULL pointer.
Solution:   Check for out of memory.
Files:      src/if_py_both.h

Patch 7.4.1748
Problem:    "gD" does not find match in first column of first line. (Gary
            Johnson)
Solution:   Accept match at the cursor.
Files:      src/normal.c, src/testdir/test_goto.vim, src/testdir/test_alot.vim

Patch 7.4.1749
Problem:    When using GTK 3.20 there are a few warnings.
Solution:   Use new functions when available. (Kazunobu Kuriyama)
Files:      src/gui_beval.c src/gui_gtk_x11.c

Patch 7.4.1750
Problem:    When a buffer gets updated while in command line mode, the screen
            may be messed up.
Solution:   Postpone the redraw when the screen is scrolled.
Files:      src/channel.c

Patch 7.4.1751
Problem:    Crash when 'tagstack' is off. (Dominique Pelle)
Solution:   Fix it. (Hirohito Higashi)
Files:      src/tag.c, src/testdir/test_alot.vim, src/testdir/test_tagjump.vim

Patch 7.4.1752
Problem:    When adding to the quickfix list the current position is reset.
Solution:   Do not reset the position when not needed. (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1753
Problem:    "noinsert" in 'completeopt' is sometimes ignored.
Solution:   Set the variables when the 'completeopt' was set. (Ozaki Kiichi)
Files:      src/edit.c, src/option.c, src/proto/edit.pro

Patch 7.4.1754
Problem:    When 'filetype' was set and reloading a buffer which does not
            cause it to be set, the syntax isn't loaded. (KillTheMule)
Solution:   Remember whether the FileType event was fired and fire it if not.
            (Anton Lindqvist, closes #747)
Files:      src/fileio.c, src/testdir/test_syntax.vim

Patch 7.4.1755
Problem:    When using getreg() on a non-existing register a NULL list is
            returned. (Bjorn Linse)
Solution:   Allocate an empty list. Add a test.
Files:      src/eval.c, src/testdir/test_expr.vim

Patch 7.4.1756
Problem:    "dll" options are not expanded.
Solution:   Expand environment variables. (Ozaki Kiichi)
Files:      src/option.c, src/testdir/test_alot.vim,
            src/testdir/test_expand_dllpath.vim

Patch 7.4.1757
Problem:    When using complete() it may set 'modified' even though nothing
            was inserted.
Solution:   Use Down/Up instead of Next/Previous match. (Shougo Matsu, closes
	    #745)
Files:      src/edit.c

Patch 7.4.1758
Problem:    Triggering CursorHoldI when in CTRL-X mode causes problems.
Solution:   Do not trigger CursorHoldI in CTRL-X mode. Add "!" flag to
            feedkeys() (test with that didn't work though).
Files:      src/edit.c, src/eval.c

Patch 7.4.1759
Problem:    When using feedkeys() in a timer the inserted characters are not
            used right away.
Solution:   Break the wait loop when characters have been added to typebuf.
            use this for testing CursorHoldI.
Files:      src/gui.c, src/os_win32.c, src/os_unix.c,
            src/testdir/test_autocmd.vim

Patch 7.4.1760 (after 7.4.1759)
Problem:    Compiler warning for unused variable.
Solution:   Add #ifdef. (John Marriott)
Files:      src/os_win32.c

Patch 7.4.1761
Problem:    Coverity complains about ignoring return value.
Solution:   Add "(void)" to get rid of the warning.
Files:      src/eval.c

Patch 7.4.1762
Problem:    Coverity: useless assignments.
Solution:   Remove them.
Files:      src/search.c

Patch 7.4.1763
Problem:    Coverity: useless assignment.
Solution:   Add #if 0.
Files:      src/spell.c

Patch 7.4.1764
Problem:    C++ style comment. (Ken Takata)
Solution:   Finish the work started here: don't call perror() when stderr
            isn't working.
Files:      src/os_unix.c

Patch 7.4.1765
Problem:    Undo options are not together in the options window.
Solution:   Put them together.  (Gary Johnson)
Files:      runtime/optwin.vim

Patch 7.4.1766
Problem:    Building instructions for MS-Windows are outdated.
Solution:   Mention setting SDK_INCLUDE_DIR. (Ben Franklin, closes #771)  Move
            outdated instructions further down.
Files:      src/INSTALLpc.txt

Patch 7.4.1767
Problem:    When installing Vim on a GTK system the icon cache is not updated.
Solution:   Update the GTK icon cache when possible. (Kazunobu Kuriyama)
Files:      src/Makefile, src/configure.in, src/config.mk.in,
            src/auto/configure

Patch 7.4.1768
Problem:    Arguments of setqflist() are not checked properly.
Solution:   Add better checks, add a test. (Nikolai Pavlov, Hirohito Higashi,
            closes #661)
Files:      src/eval.c, src/testdir/test_quickfix.vim

Patch 7.4.1769
Problem:    No "closed", "errors" and "encoding" attribute on Python output.
Solution:   Add attributes and more tests. (Roland Puntaier, closes #622)
Files:      src/if_py_both.h, src/if_python.c, src/if_python3.c,
            src/testdir/test86.in, src/testdir/test86.ok,
            src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.1770
Problem:    Cannot use true color in the terminal.
Solution:   Add the 'guicolors' option. (Nikolai Pavlov)
Files:      runtime/doc/options.txt, runtime/doc/term.txt,
            runtime/doc/various.txt, src/auto/configure, src/config.h.in,
            src/configure.in, src/eval.c, src/globals.h, src/hardcopy.c,
            src/option.c, src/option.h, src/proto/term.pro, src/screen.c,
            src/structs.h, src/syntax.c, src/term.c, src/term.h,
            src/version.c, src/vim.h

Patch 7.4.1771 (after 7.4.1768)
Problem:    Warning for unused variable.
Solution:   Add #ifdef. (John Marriott)
Files:      src/eval.c

Patch 7.4.1772 (after 7.4.1767)
Problem:    Installation fails when $GTK_UPDATE_ICON_CACHE is empty.
Solution:   Add quotes. (Kazunobu Kuriyama)
Files:      src/Makefile

Patch 7.4.1773 (after 7.4.1770)
Problem:    Compiler warnings. (Dominique Pelle)
Solution:   Add UNUSED. Add type cast. Avoid a buffer overflow.
Files:      src/syntax.c, src/term.c

Patch 7.4.1774 (after 7.4.1770)
Problem:    Cterm true color feature has warnings.
Solution:   Add type casts.
Files:      src/screen.c, src/syntax.c, src/term.c

Patch 7.4.1775
Problem:    The rgb.txt file is not installed.
Solution:   Install the file. (Christian Brabandt)
Files:      src/Makefile

Patch 7.4.1776
Problem:    Using wrong buffer length.
Solution:   use the right name. (Kazunobu Kuriyama)
Files:      src/term.c

Patch 7.4.1777
Problem:    Newly added features can escape the sandbox.
Solution:   Add checks for restricted and secure. (Yasuhiro Matsumoto)
Files:      src/eval.c

Patch 7.4.1778
Problem:    When using the term truecolor feature, the t_8f and t_8b termcap
            options are not set by default.
Solution:   Move the values to before BT_EXTRA_KEYS. (Christian Brabandt)
Files:      src/term.c

Patch 7.4.1779
Problem:    Using negative index in strcharpart(). (Yegappan Lakshmanan)
Solution:   Assume single byte when using a negative index.
Files:      src/eval.c

Patch 7.4.1780
Problem:    Warnings reported by cppcheck.
Solution:   Fix the warnings. (Dominique Pelle)
Files:      src/ex_cmds2.c, src/json.c, src/misc1.c, src/ops.c,
            src/regexp_nfa.c

Patch 7.4.1781
Problem:    synIDattr() does not respect 'guicolors'.
Solution:   Change the condition for the mode. (Christian Brabandt)
Files:      src/eval.c

Patch 7.4.1782
Problem:    strcharpart() does not work properly with some multi-byte
            characters.
Solution:   Use mb_cptr2len() instead of mb_char2len(). (Hirohito Higashi)
Files:      src/eval.c, src/testdir/test_expr_utf8.vim

Patch 7.4.1783
Problem:    The old regexp engine doesn't handle character classes correctly.
            (Manuel Ortega)
Solution:   Use regmbc() instead of regc().  Add a test.
Files:      src/regexp.c, src/testdir/test_regexp_utf8.vim

Patch 7.4.1784
Problem:    The termtruecolor feature is enabled differently from many other
            features.
Solution:   Enable the termtruecolor feature for the big build, not through
            configure.
Files:      src/configure.in, src/config.h.in, src/auto/configure,
            src/feature.h

Patch 7.4.1785 (after 7.4.1783)
Problem:    Regexp test fails on windows.
Solution:   set 'isprint' to the right value for testing.
Files:      src/testdir/test_regexp_utf8.vim

Patch 7.4.1786
Problem:    Compiled-in colors do not match rgb.txt.
Solution:   Use the rgb.txt colors. (Kazunobu Kuriyama)
Files:      src/term.c

Patch 7.4.1787
Problem:    When a job ends the close callback is invoked before other
            callbacks. On Windows the close callback is not called.
Solution:   First invoke out/err callbacks before the close callback.
            Make the close callback work on Windows.
Files:      src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, src/testdir/test_channel_pipe.py

Patch 7.4.1788
Problem:    NSIS script is missing packages.
Solution:   Add the missing directories. (Ken Takata)
Files:      nsis/gvim.nsi

Patch 7.4.1789
Problem:    Cannot use ch_read() in the close callback.
Solution:   Do not discard the channel if there is readahead.  Do not discard
            readahead if there is a close callback.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 7.4.1790
Problem:    Leading white space in a job command matters. (Andrew Stewart)
Solution:   Skip leading white space.
Files:      src/os_unix.c

Patch 7.4.1791
Problem:    Channel could be garbage collected too early.
Solution:   Don't free a channel or remove it from a job when it is still
            useful.
Files:      src/channel.c

Patch 7.4.1792
Problem:    Color name decoding is implemented several times.
Solution:   Move it to term.c. (Christian Brabandt)
Files:      src/gui_mac.c, src/gui_photon.c, src/gui_w32.c,
            src/proto/term.pro, src/term.c

Patch 7.4.1793
Problem:    Some character classes may differ between systems.  On OS/X the
            regexp test fails.
Solution:   Make this less dependent on the system. (idea by Kazunobu Kuriyama)
Files:      src/regexp.c, src/regexp_nfa.c

Patch 7.4.1794 (after 7.4.1792)
Problem:    Can't build on MS-Windows.
Solution:   Add missing declaration.
Files:      src/gui_w32.c

Patch 7.4.1795
Problem:    Compiler warning for redefining RGB. (John Marriott)
Solution:   Rename it to TORGB.
Files:      src/term.c

Patch 7.4.1796 (after 7.4.1795)
Problem:    Colors are wrong on MS-Windows. (Christian Robinson)
Solution:   Use existing RGB macro if it exists. (Ken Takata)
Files:      src/term.c

Patch 7.4.1797
Problem:    Warning from Windows 64 bit compiler.
Solution:   Change int to size_t. (Mike Williams)
Files:      src/term.c

Patch 7.4.1798
Problem:    Still compiler warning for unused return value. (Charles Campbell)
Solution:   Assign to ignoredp.
Files:      src/term.c

Patch 7.4.1799
Problem:    'guicolors' is a confusing option name.
Solution:   Use 'termguicolors' instead. (Hirohito Higashi, Ken Takata)
Files:      runtime/doc/options.txt, runtime/doc/term.txt,
            runtime/doc/various.txt, runtime/syntax/dircolors.vim, src/eval.c,
            src/feature.h, src/globals.h, src/hardcopy.c, src/option.c,
            src/option.h, src/proto/term.pro, src/screen.c, src/structs.h,
            src/syntax.c, src/term.c, src/version.c, src/vim.h

Patch 7.4.1800 (after 7.4.1799)
Problem:    Unnecessary #ifdef.
Solution:   Just use USE_24BIT. (Ken Takata)
Files:      src/syntax.c

Patch 7.4.1801
Problem:    Make uninstall leaves file behind.
Solution:   Delete rgb.txt. (Kazunobu Kuriyama)
Files:      src/Makefile

Patch 7.4.1802
Problem:    Quickfix doesn't handle long lines well, they are split.
Solution:   Drop characters after a limit. (Anton Lindqvist)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim,
            src/testdir/samples/quickfix.txt

Patch 7.4.1803
Problem:    GTK3 doesn't handle menu separators properly.
Solution:   Use gtk_separator_menu_item_new(). (Kazunobu Kuriyama)
Files:      src/gui_gtk.c

Patch 7.4.1804
Problem:    Can't use Vim as MANPAGER.
Solution:   Add manpager.vim. (Enno Nagel, closes #491)
Files:      runtime/doc/filetype.txt, runtime/plugin/manpager.vim

Patch 7.4.1805
Problem:    Running tests in shadow dir fails.
Solution:   Link the samples directory
Files:      src/Makefile

Patch 7.4.1806
Problem:    'termguicolors' option missing from the options window.
Solution:   Add the entry.
Files:      runtime/optwin.vim

Patch 7.4.1807
Problem:    Test_out_close_cb sometimes fails.
Solution:   Always write DETACH to out, not err.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1808 (after 7.4.1806)
Problem:    Using wrong feature name to check for 'termguicolors'.
Solution:   Use the right feature name. (Ken Takata)
Files:      runtime/optwin.vim

Patch 7.4.1809 (after 7.4.1808)
Problem:    Using wrong short option name for 'termguicolors'.
Solution:   Use the option name.
Files:      runtime/optwin.vim

Patch 7.4.1810
Problem:    Sending DETACH after a channel was closed isn't useful.
Solution:   Only add DETACH for a netbeans channel.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1811
Problem:    Netbeans channel gets garbage collected.
Solution:   Set reference in nb_channel.
Files:      src/eval.c, src/netbeans.c, src/proto/netbeans.pro

Patch 7.4.1812
Problem:    Failure on startup with Athena and Motif.
Solution:   Check for INVALCOLOR. (Kazunobu Kuriyama)
Files:      src/syntax.c, src/vim.h

Patch 7.4.1813
Problem:    Memory access error when running test_quickfix.
Solution:   Allocate one more byte. (Yegappan Lakshmanan)
Files:      src/quickfix.c

Patch 7.4.1814
Problem:    A channel may be garbage collected while it's still being used by
            a job. (James McCoy)
Solution:   Mark the channel as used if the job is still used.  Do the same
            for channels that are still used.
Files:      src/eval.c, src/channel.c, src/proto/channel.pro

Patch 7.4.1815
Problem:    Compiler warnings for unused variables. (Ajit Thakkar)
Solution:   Add a dummy initialization. (Yasuhiro Matsumoto)
Files:      src/quickfix.c

Patch 7.4.1816
Problem:    Looping over a null list throws an error.
Solution:   Skip over the for loop.
Files:      src/eval.c, src/testdir/test_expr.vim

Patch 7.4.1817
Problem:    The screen is not updated if a callback is invoked when closing a
            channel.
Solution:   Invoke redraw_after_callback().
Files:      src/channel.c

Patch 7.4.1818
Problem:    Help completion adds @en to all matches except the first one.
Solution:   Remove "break", go over all items.
Files:      src/ex_getln.c

Patch 7.4.1819
Problem:    Compiler warnings when sprintf() is a macro.
Solution:   Don't interrupt sprintf() with an #ifdef. (Michael Jarvis,
            closes #788)
Files:      src/fileio.c, src/tag.c, src/term.c

Patch 7.4.1820
Problem:    Removing language from help tags too often.
Solution:   Only remove @en when not needed. (Hirohito Higashi)
Files:      src/ex_getln.c, src/testdir/test_help_tagjump.vim

Patch 7.4.1821 (after 7.4.1820)
Problem:    Test fails on MS-Windows.
Solution:   Sort the completion results.
Files:      src/testdir/test_help_tagjump.vim

Patch 7.4.1822
Problem:    Redirecting stdout of a channel to "null" doesn't work. (Nicola)
Solution:   Correct the file descriptor number.
Files:      src/os_unix.c

Patch 7.4.1823
Problem:    Warning from 64 bit compiler.
Solution:   Add type cast. (Mike Williams)
Files:      src/quickfix.c

Patch 7.4.1824
Problem:    When a job is no longer referenced and does not have an exit
            callback the process may hang around in defunct state. (Nicola)
Solution:   Call job_status() if the job is running and won't get freed
            because it might still be useful.
Files:      src/channel.c

Patch 7.4.1825
Problem:    When job writes to buffer nothing is written. (Nicola)
Solution:   Do not discard a channel before writing is done.
Files:      src/channel.c

Patch 7.4.1826
Problem:    Callbacks are invoked when it's not safe. (Andrew Stewart)
Solution:   When a channel is to be closed don't invoke callbacks right away,
            wait for a safe moment.
Files:      src/structs.h, src/channel.c

Patch 7.4.1827
Problem:    No error when invoking a callback when it's not safe.
Solution:   Add an error message.  Avoid the error when freeing a channel.
Files:      src/structs.h, src/channel.c

Patch 7.4.1828
Problem:    May try to access buffer that's already freed.
Solution:   When freeing a buffer remove it from any channel.
Files:      src/buffer.c, src/channel.c, src/proto/channel.pro

Patch 7.4.1829 (after 7.4.1828)
Problem:    No message on channel log when buffer was freed.
Solution:   Log a message.
Files:      src/channel.c

Patch 7.4.1830
Problem:    non-antialiased misnamed.
Solution:   Use NONANTIALIASED and NONANTIALIASED_QUALITY. (Kim Brouer,
            closes #793)
Files:      src/os_mswin.c, runtime/doc/options.txt

Patch 7.4.1831
Problem:    When timer_stop() is called with a string there is no proper error
            message.
Solution:   Require getting a number. (Bjorn Linse)
Files:      src/eval.c

Patch 7.4.1832
Problem:    Memory leak in debug commands.
Solution:   Free memory before overwriting the pointer. (hint by Justin Keyes)
Files:      src/ex_cmds2.c

Patch 7.4.1833
Problem:    Cannot use an Ex command for 'keywordprg'.
Solution:   Accept an Ex command. (Nelo-Thara Wallus)
Files:      src/normal.c, runtime/doc/options.txt

Patch 7.4.1834
Problem:    Possible crash when conceal is active.
Solution:   Check for the screen to be valid when redrawing a line.
Files:      src/screen.c

Patch 7.4.1835
Problem:    When splitting and closing a window the status height changes.
Solution:   Compute the frame height correctly. (Hirohito Higashi)
Files:      src/window.c, src/testdir/test_alot.vim,
            src/testdir/test_window_cmd.vim

Patch 7.4.1836
Problem:    When using a partial on a dictionary it always gets bound to that
            dictionary.
Solution:   Make a difference between binding a function to a dictionary
            explicitly or automatically.
Files:      src/structs.h, src/eval.c, src/testdir/test_partial.vim,
            runtime/doc/eval.txt

Patch 7.4.1837
Problem:    The BufUnload event is triggered twice, when :bunload is used with
            `bufhidden` set to `unload` or `delete`.
Solution:   Do not trigger the event when ml_mfp is NULL. (Hirohito Higashi)
Files:      src/buffer.c, src/testdir/test_autocmd.vim

Patch 7.4.1838
Problem:    Functions specifically for testing do not sort together.
Solution:   Rename garbagecollect_for_testing() to test_garbagecollect_now().
            Add test_null_list(), test_null_dict(), etc.
Files:      src/eval.c, src/testdir/test_expr.vim,
            src/testdir/test_channel.vim, runtime/doc/eval.txt

Patch 7.4.1839
Problem:    Cannot get the items stored in a partial.
Solution:   Support using get() on a partial.
Files:      src/eval.c, src/testdir/test_partial.vim, runtime/doc/eval.txt

Patch 7.4.1840
Problem:    When using packages an "after" directory cannot be used.
Solution:   Add the "after" directory of the package to 'runtimepath' if it
            exists.
Files:      src/ex_cmds2.c, src/testdir/test_packadd.vim

Patch 7.4.1841
Problem:    The code to reallocate the buffer used for quickfix is repeated.
Solution:   Move the code to a function. (Yegappan Lakshmanan, closes #831)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1842 (after 7.4.1839)
Problem:    get() works for Partial but not for Funcref.
Solution:   Accept Funcref.  Also return the function itself. (Nikolai Pavlov)
Files:      src/eval.c, src/testdir/test_partial.vim, runtime/doc/eval.txt

Patch 7.4.1843
Problem:    Tests involving Python are flaky.
Solution:   Set the pt_auto field.  Add tests. (Nikolai Pavlov)
Files:      runtime/doc/if_pyth.txt, src/if_py_both.h, src/testdir/test86.in,
            src/testdir/test86.ok, src/testdir/test87.in,
            src/testdir/test87.ok

Patch 7.4.1844
Problem:    Using old function name in comment.  More functions should start
            with test_.
Solution:   Rename function in comment. (Hirohito Higashi) Rename
            disable_char_avail_for_testing() to test_disable_char_avail().
            And alloc_fail() to test_alloc_fail().
Files:      src/eval.c, src/getchar.c, src/testdir/runtest.vim,
            src/testdir/test_cursor_func.vim, src/testdir/test_quickfix.vim,
            runtime/doc/eval.txt

Patch 7.4.1845
Problem:    Mentioning NetBeans when reading from channel. (Ramel Eshed)
Solution:   Make the text more generic.
Files:      src/channel.c

Patch 7.4.1846
Problem:    Ubsan detects a multiplication overflow.
Solution:   Don't use orig_mouse_time when it's zero. (Dominique Pelle)
Files:      src/term.c

Patch 7.4.1847
Problem:    Getting an item from a NULL dict crashes.  Setting a register to a
            NULL list crashes. (Nikolai Pavlov, issue #768)  Comparing a NULL
            dict with a NULL dict fails.
Solution:   Properly check for NULL.
Files:      src/eval.c, src/testdir/test_expr.vim

Patch 7.4.1848
Problem:    Can't build with Strawberry Perl 5.24.
Solution:   Define S_SvREFCNT_dec() if needed. (Damien, Ken Takata)
Files:      src/if_perl.xs

Patch 7.4.1849
Problem:    Still trying to read from channel that is going to be closed.
            (Ramel Eshed)
Solution:   Check if ch_to_be_closed is set.
Files:      src/channel.c

Patch 7.4.1850
Problem:    GUI freezes when using a job. (Shougo Matsu)
Solution:   Unregister the channel when there is an input error.
Files:      src/channel.c

Patch 7.4.1851
Problem:    test_syn_attr fails when using the GUI. (Dominique Pelle)
Solution:   Escape the font name properly.
Files:      src/testdir/test_syn_attr.vim

Patch 7.4.1852
Problem:    Unix: Cannot run all tests with the GUI.
Solution:   Add the "testgui" target.
Files:      src/Makefile, src/testdir/Makefile

Patch 7.4.1853
Problem:    Crash when job and channel are in the same dict while using
            partials. (Luc Hermitte)
Solution:   Do not decrement the channel reference count too early.
Files:      src/channel.c

Patch 7.4.1854
Problem:    When setting 'termguicolors' the Ignore highlighting doesn't work.
            (Charles Campbell)
Solution:   Handle the color names "fg" and "bg" when the GUI isn't running
            and no colors are specified, fall back to black and white.
Files:      src/syntax.c

Patch 7.4.1855
Problem:    Valgrind reports memory leak for job that is not freed.
Solution:   Free all jobs on exit.  Add test for failing job.
Files:      src/channel.c, src/misc2.c, src/proto/channel.pro,
            src/testdir/test_partial.vim

Patch 7.4.1856 (after 7.4.1855)
Problem:    failing job test fails on MS-Windows.
Solution:   Expect "fail" status instead of "dead".
Files:      src/testdir/test_partial.vim

Patch 7.4.1857
Problem:    When a channel appends to a buffer that is 'nomodifiable' there is
            an error but appending is done anyway.
Solution:   Add the 'modifiable' option.  Refuse to write to a 'nomodifiable'
            when the value is 1.
Files:      src/structs.h, src/channel.c, src/testdir/test_channel.vim,
            runtime/doc/channel.txt

Patch 7.4.1858
Problem:    When a channel writes to a buffer it doesn't find a buffer by the
            short name but re-uses it anyway.
Solution:   Find buffer also by the short name.
Files:      src/channel.c, src/buffer.c, src/vim.h

Patch 7.4.1859
Problem:    Cannot use a function reference for "exit_cb".
Solution:   Use get_callback(). (Yegappan Lakshmanan)
Files:      src/channel.c, src/structs.h

Patch 7.4.1860
Problem:    Using a partial for timer_start() may cause a crash.
Solution:   Set the copyID in timer objects. (Ozaki Kiichi)
Files:      src/testdir/test_timers.vim, src/eval.c, src/ex_cmds2.c,
            src/proto/ex_cmds2.pro

Patch 7.4.1861
Problem:    Compiler warnings with 64 bit compiler.
Solution:   Change int to size_t. (Mike Williams)
Files:      src/ex_cmds2.c

Patch 7.4.1862
Problem:    string() with repeated argument does not give a result usable by
            eval().
Solution:   Refactor echo_string and tv2string(), moving the common part to
            echo_string_core(). (Ken Takata)
Files:      src/eval.c, src/testdir/test_viml.vim, src/testdir/test86.ok,
            src/testdir/test87.ok

Patch 7.4.1863
Problem:    Compiler warnings on Win64.
Solution:   Adjust types, add type casts. (Ken Takata)
Files:      src/if_mzsch.c, src/if_perl.xs, src/if_ruby.c, src/version.c

Patch 7.4.1864
Problem:    Python: encoding error with Python 2.
Solution:   Use "getcwdu" instead of "getcwd". (Ken Takata)
Files:      src/if_py_both.h

Patch 7.4.1865
Problem:    Memory leaks in test49. (Dominique Pelle)
Solution:   Use NULL instead of an empty string.
Files:      src/eval.c

Patch 7.4.1866
Problem:    Invalid memory access when exiting with EXITFREE defined.
            (Dominique Pelle)
Solution:   Set "really_exiting" and skip error messages.
Files:      src/misc2.c, src/eval.c

Patch 7.4.1867
Problem:    Memory leak in test_matchstrpos.
Solution:   Free the string before overwriting. (Yegappan Lakshmanan)
Files:      src/eval.c

Patch 7.4.1868
Problem:    Setting really_exiting causes memory leaks to be reported.
Solution:   Add the in_free_all_mem flag.
Files:      src/globals.h, src/misc2.c, src/eval.c

Patch 7.4.1869
Problem:    Can't build with old version of Perl.
Solution:   Define PERLIO_FUNCS_DECL. (Tom G. Christensen)
Files:      src/if_perl.xs

Patch 7.4.1870 (after 7.4.1863)
Problem:    One more Win64 compiler warning.
Solution:   Change declared argument type. (Ken Takata)
Files:      src/if_mzsch.c

Patch 7.4.1871
Problem:    Appending to the quickfix list while the quickfix window is open
            is very slow.
Solution:   Do not delete all the lines, only append the new ones.  Avoid
            using a window while updating the list. (closes #841)
Files:      src/quickfix.c

Patch 7.4.1872
Problem:    Still build problem with old version of Perl.
Solution:   Also define SvREFCNT_inc_void_NN if needed. (Tom G. Christensen)
Files:      src/if_perl.xs

Patch 7.4.1873
Problem:    When a callback adds a timer the GUI doesn't use it until later.
            (Ramel Eshed)
Solution:   Return early if a callback adds a timer.
Files:      src/ex_cmds2.c, src/gui_gtk_x11.c, src/gui_w32.c, src/gui_x11.c,
            src/globals.h

Patch 7.4.1874
Problem:    Unused variable in Win32 code.
Solution:   Remove it. (Mike Williams)
Files:      src/gui_w32.c

Patch 7.4.1875
Problem:    Comparing functions and partials doesn't work well.
Solution:   Add tests. (Nikolai Pavlov)  Compare the dict and arguments in the
            partial. (closes #813)
Files:      src/eval.c, src/testdir/test_partial.vim

Patch 7.4.1876
Problem:    Typing "k" at the hit-enter prompt has no effect.
Solution:   Don't assume recursive use of the prompt if a character was typed.
            (Hirohito Higashi)
Files:      src/message.c

Patch 7.4.1877
Problem:    No test for invoking "close_cb" when writing to a buffer.
Solution:   Add using close_cb to a test case.
Files:      src/testdir/test_channel.vim

Patch 7.4.1878
Problem:    Whether a job has exited isn't detected until a character is
            typed.  After calling exit_cb the cursor is in the wrong place.
Solution:   Don't wait forever for a character to be typed when there is a
            pending job.  Update the screen if needed after calling exit_cb.
Files:      src/os_unix.c, src/channel.c, src/proto/channel.pro

Patch 7.4.1879 (after 7.4.1877)
Problem:    Channel test is flaky.
Solution:   Wait for close_cb to be invoked.
Files:      src/testdir/test_channel.vim

Patch 7.4.1880
Problem:    MS-Windows console build defaults to not having +channel.
Solution:   Include the channel feature if building with huge features.
Files:      src/Make_mvc.mak

Patch 7.4.1881
Problem:    Appending to a long quickfix list is slow.
Solution:   Add qf_last.
Files:      src/quickfix.c

Patch 7.4.1882
Problem:    Check for line break at end of line wrong. (Dominique Pelle)
Solution:   Correct the logic.
Files:      src/quickfix.c

Patch 7.4.1883
Problem:    Cppcheck found 2 incorrect printf formats.
Solution:   Use %ld and %lx. (Dominique Pelle)
Files:      src/VisVim/Commands.cpp, src/gui_mac.c

Patch 7.4.1884
Problem:    Updating marks in a quickfix list is very slow when the list is
            long.
Solution:   Only update marks if the buffer has a quickfix entry.
Files:      src/structs.h, src/quickfix.c

Patch 7.4.1885
Problem:    MinGW console build defaults to not having +channel.
Solution:   Include the channel feature if building with huge features. (Ken
            Takata)
Files:      src/Make_cyg_ming.mak

Patch 7.4.1886
Problem:    When waiting for a character is interrupted by receiving channel
            data and the first character of a mapping was typed, the mapping
            times out. (Ramel Eshed)
Solution:   When dealing with channel data don't return from mch_inchar().
Files:      src/getchar.c, src/proto/getchar.pro, src/os_unix.c

Patch 7.4.1887
Problem:    When receiving channel data 'updatetime' is not respected.
Solution:   Recompute the waiting time after being interrupted.
Files:      src/os_unix.c

Patch 7.4.1888
Problem:    Wrong computation of remaining wait time in RealWaitForChar()
Solution:   Remember the original waiting time.
Files:      src/os_unix.c

Patch 7.4.1889
Problem:    When umask is set to 0177 Vim can't create temp files. (Lcd)
Solution:   Also correct umask when using mkdtemp().
Files:      src/fileio.c

Patch 7.4.1890
Problem:    GUI: When channel data is received the cursor blinking is
            interrupted.  (Ramel Eshed)
Solution:   Don't update the cursor when it is blinking.
Files:      src/screen.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro,
            src/gui_mac.c, src/proto/gui_mac.pro, src/gui_photon.c,
            src/proto/gui_photon.pro, src/gui_w32.c, src/proto/gui_w32.pro,
            src/gui_x11.c, src/proto/gui_x11.pro

Patch 7.4.1891
Problem:    Channel reading very long lines is slow.
Solution:   Collapse multiple buffers until a NL is found.
Files:      src/channel.c, src/netbeans.c, src/proto/channel.pro,
            src/structs.h

Patch 7.4.1892
Problem:    balloon eval only gets the window number, not the ID.
Solution:   Add v:beval_winid.
Files:      src/eval.c, src/gui_beval.c, src/vim.h

Patch 7.4.1893
Problem:    Cannot easily get the window ID for a buffer.
Solution:   Add bufwinid().
Files:      src/eval.c, runtime/doc/eval.txt

Patch 7.4.1894
Problem:    Cannot get the window ID for a mouse click.
Solution:   Add v:mouse_winid.
Files:      src/eval.c, src/vim.h, runtime/doc/eval.txt

Patch 7.4.1895
Problem:    Cannot use a window ID where a window number is expected.
Solution:   Add LOWEST_WIN_ID, so that the window ID can be used where a
            number is expected.
Files:      src/window.c, src/eval.c, src/vim.h, runtime/doc/eval.txt,
            src/testdir/test_window_id.vim

Patch 7.4.1896
Problem:    Invoking mark_adjust() when adding a new line below the last line
            is pointless.
Solution:   Skip calling mark_adjust() when appending below the last line.
Files:      src/misc1.c, src/ops.c

Patch 7.4.1897
Problem:    Various typos, long lines and style mistakes.
Solution:   Fix the typos, wrap lines, improve style.
Files:      src/buffer.c, src/ex_docmd.c, src/getchar.c, src/option.c,
            src/main.aap, src/testdir/README.txt,
            src/testdir/test_reltime.vim, src/testdir/test_tagjump.vim,
            src/INSTALL, src/config.aap.in, src/if_mzsch.c

Patch 7.4.1898
Problem:    User commands don't support modifiers.
Solution:   Add the <mods> item. (Yegappan Lakshmanan, closes #829)
Files:      runtime/doc/map.txt, src/ex_docmd.c, src/testdir/Make_all.mak,
            src/testdir/test_usercommands.vim

Patch 7.4.1899
Problem:    GTK 3: cursor blinking doesn't work well.
Solution:   Instead of gui_gtk_window_clear() use gui_mch_clear_block().
            (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 7.4.1900
Problem:    Using CTRL-] in the help on "{address}." doesn't work.
Solution:   Recognize an item in {}. (Hirohito Higashi, closes #814)
Files:      src/ex_cmds.c, src/testdir/test_help_tagjump.vim

Patch 7.4.1901
Problem:    Win32: the "Disabled" menu items would appear enabled.
Solution:   Use submenu_id if there is a parent. (Shane Harper, closes #834)
Files:      src/gui_w32.c

Patch 7.4.1902
Problem:    No test for collapsing buffers for a channel.  Some text is lost.
Solution:   Add a simple test.  Set rq_buflen correctly.
Files:      src/channel.c, src/testdir/test_channel.vim,
            src/testdir/test_channel_pipe.py

Patch 7.4.1903
Problem:    When writing viminfo merging current history with history in
            viminfo may drop recent history entries.
Solution:   Add new format for viminfo lines, use it for history entries.  Use
            a timestamp for ordering the entries. Add test_settime().
            Add the viminfo version.  Does not do merging on timestamp yet.
Files:      src/eval.c, src/ex_getln.c, src/ex_cmds.c, src/structs.h,
            src/globals.h, src/proto/ex_cmds.pro, src/proto/ex_getln.pro,
            src/testdir/test_viminfo.vim

Patch 7.4.1904 (after 7.4.1903)
Problem:    Build fails.
Solution:   Add missing changes.
Files:      src/vim.h

Patch 7.4.1905 (after 7.4.1903)
Problem:    Some compilers can't handle a double semicolon.
Solution:   Remove one semicolon.
Files:      src/ex_cmds.c

Patch 7.4.1906
Problem:    Collapsing channel buffers and searching for NL does not work
            properly. (Xavier de Gaye, Ramel Eshed)
Solution:   Do not assume the buffer contains a NUL or not.  Change NUL bytes
            to NL to avoid the string is truncated.
Files:      src/channel.c, src/netbeans.c, src/proto/channel.pro

Patch 7.4.1907
Problem:    Warnings from 64 bit compiler.
Solution:   Change type to size_t. (Mike Williams)
Files:      src/ex_cmds.c

Patch 7.4.1908
Problem:    Netbeans uses uninitialized pointer and freed memory.
Solution:   Set "buffer" at the right place (hint by Ken Takata)
Files:      src/netbeans.c

Patch 7.4.1909
Problem:    Doubled semicolons.
Solution:   Reduce to one. (Dominique Pelle)
Files:      src/dosinst.c, src/fold.c, src/gui_gtk_x11.c, src/gui_w32.c,
            src/main.c, src/misc2.c

Patch 7.4.1910
Problem:    Tests using external command to delete directory.
Solution:   Use delete().
Files:      src/testdir/test17.in, src/testdir/test73.in,
            src/testdir/test_getcwd.in

Patch 7.4.1911
Problem:    Recent history lines may be lost when exiting Vim.
Solution:   Merge history using the timestamp.
Files:      src/ex_getln.c, src/ex_cmds.c, src/vim.h, src/proto/ex_getln.pro,
            src/testdir/test_viminfo.vim

Patch 7.4.1912
Problem:    No test for using setqflist() on an older quickfix list.
Solution:   Add a couple of tests.
Files:      src/testdir/test_quickfix.vim

Patch 7.4.1913
Problem:    When ":doautocmd" is used modelines are used even when no
            autocommands were executed. (Daniel Hahler)
Solution:   Skip processing modelines. (closes #854)
Files:      src/fileio.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/fileio.pro

Patch 7.4.1914
Problem:    Executing autocommands while using the signal stack has a high
            chance of crashing Vim.
Solution:   Don't invoke autocommands when on the signal stack.
Files:      src/os_unix.c

Patch 7.4.1915
Problem:    The effect of the PopupMenu autocommand isn't directly visible.
Solution:   Call gui_update_menus() before displaying the popup menu. (Shane
            Harper, closes #855)
Files:      src/menu.c

Patch 7.4.1916 (after 7.4.1906)
Problem:    No proper test for what 7.4.1906 fixes.
Solution:   Add a test for reading many lines.
Files:      src/testdir/test_channel.vim

Patch 7.4.1917
Problem:    History lines read from viminfo in different encoding than when
            writing are not converted.
Solution:   Convert the history lines.
Files:      src/ex_cmds.c, src/testdir/test_viminfo.vim

Patch 7.4.1918
Problem:    Not enough testing for parsing viminfo lines.
Solution:   Add test with viminfo lines in bad syntax.  Fix memory leak.
Files:      src/ex_cmds.c, src/ex_getln.c, src/testdir/test_viminfo.vim

Patch 7.4.1919
Problem:    Register contents is not merged when writing viminfo.
Solution:   Use timestamps for register contents.
Files:      src/ops.c, src/ex_getln.c, src/ex_cmds.c, src/proto/ex_cmds.pro,
            src/proto/ex_getln.pro, src/proto/ops.pro, src/vim.h

Patch 7.4.1920 (after 7.4.1919)
Problem:    Missing test changes.
Solution:   Update viminfo test.
Files:      src/testdir/test_viminfo.vim

Patch 7.4.1921 (after 7.4.1919)
Problem:    vim_time() not included when needed.
Solution:   Adjust #ifdef.
Files:      src/ex_cmds.c

Patch 7.4.1922
Problem:    Ruby 2.4.0 unifies Fixnum and Bignum into Integer.
Solution:   Use rb_cInteger. (Weiyong Mao)
Files:      src/if_ruby.c

Patch 7.4.1923
Problem:    Command line editing is not tested much.
Solution:   Add tests for expanding the file name and 'wildmenu'.
Files:      src/testdir/test_cmdline.vim, src/testdir/Make_all.mak

Patch 7.4.1924
Problem:    Missing "void" for functions without argument.
Solution:   Add "void". (Hirohito Higashi)
Files:      src/channel.c, src/edit.c, src/ex_cmds2.c, src/ops.c, src/screen.c

Patch 7.4.1925
Problem:    Viminfo does not merge file marks properly.
Solution:   Use a timestamp.  Add the :clearjumps command.
Files:      src/mark.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/mark.pro,
            src/structs.h, src/vim.h, src/ex_cmds.h,
            src/testdir/test_viminfo.vim

Patch 7.4.1926
Problem:    Possible crash with many history items.
Solution:   Avoid the index going past the last item.
Files:      src/ex_getln.c

Patch 7.4.1927
Problem:    Compiler warning for signed/unsigned.
Solution:   Add type cast.
Files:      src/if_mzsch.c

Patch 7.4.1928
Problem:    Overwriting pointer argument.
Solution:   Assign to what it points to. (Dominique Pelle)
Files:      src/fileio.c

Patch 7.4.1929
Problem:    Inconsistent indenting and weird name.
Solution:   Fix indent, make name all upper case. (Ken Takata)
Files:      src/if_ruby.c

Patch 7.4.1930
Problem:    Can't build without +spell but with +quickfix. (Charles)
Solution:   Add better #ifdef around ml_append_buf(). (closes #864)
Files:      src/memline.c

Patch 7.4.1931
Problem:    Using both old and new style file mark lines from viminfo.
Solution:   Skip the old style lines if the viminfo file was written with a
            Vim version that supports the new style.
Files:      src/ex_cmds.c

Patch 7.4.1932
Problem:    When writing viminfo the jumplist is not merged with the one in
            the viminfo file.
Solution:   Merge based on timestamp.
Files:      src/mark.c, src/testdir/test_viminfo.vim

Patch 7.4.1933
Problem:    Compiler warning about uninitialized variable. (Yegappan)
Solution:   Give it a dummy value.
Files:      src/ex_getln.c

Patch 7.4.1934
Problem:    New style tests not executed with MinGW compiler.
Solution:   Add new style test support. (Yegappan Lakshmanan)
Files:      src/testdir/Make_ming.mak

Patch 7.4.1935
Problem:    When using the GUI search/replace a second match right after the
            replacement is skipped.
Solution:   Add the SEARCH_START flag. (Mleddy)
Files:      src/gui.c

Patch 7.4.1936
Problem:    Off-by-one error in bounds check. (Coverity)
Solution:   Check register number properly.
Files:      src/ops.c

Patch 7.4.1937
Problem:    No test for directory stack in quickfix.
Solution:   Add a test. (Yegappan Lakshmanan)
Files:      src/testdir/test_quickfix.vim

Patch 7.4.1938
Problem:    When writing viminfo numbered marks were duplicated.
Solution:   Check for duplicates between current numbered marks and the ones
            read from viminfo.
Files:      src/mark.c

Patch 7.4.1939
Problem:    Memory access error when reading viminfo. (Dominique Pelle)
Solution:   Correct index in jumplist when at the end.
Files:      src/mark.c, src/testdir/test_viminfo.vim

Patch 7.4.1940
Problem:    "gd" hangs in some situations. (Eric Biggers)
Solution:   Remove the SEARCH_START flag when looping.  Add a test.
Files:      src/normal.c, src/testdir/test_goto.vim

Patch 7.4.1941
Problem:    Not all quickfix tests are also done with the location lists.
Solution:   Test more quickfix code.  Use user commands instead of "exe".
            (Yegappan Lakshmanan)
Files:      src/testdir/test_quickfix.vim

Patch 7.4.1942
Problem:    Background is not drawn properly when 'termguicolors' is set.
Solution:   Check cterm_normal_bg_color. (Jacob Niehus, closes #805)
Files:      src/screen.c

Patch 7.4.1943
Problem:    Coverity warns for unreachable code.
Solution:   Remove the code that won't do anything.
Files:      src/mark.c

Patch 7.4.1944
Problem:    Win32: Cannot compile with XPM feature using VC2015
Solution:   Add XPM libraries compiled with VC2015, and enable to build
            gvim.exe which supports XPM using VC2015. (Ken Takata)
Files:      src/Make_mvc.mak, src/xpm/x64/lib-vc14/libXpm.lib,
            src/xpm/x86/lib-vc14/libXpm.lib

Patch 7.4.1945
Problem:    The Man plugin doesn't work that well.
Solution:   Use "g:ft_man_open_mode" to be able open man pages in vert split
            or separate tab. Set nomodifiable for buffer with man content. Add
            a test. (Andrey Starodubtsev, closes #873)
Files:      runtime/ftplugin/man.vim, src/testdir/test_man.vim,
            src/testdir/Make_all.mak

Patch 7.4.1946 (after 7.4.1944)
Problem:    File list does not include new XPM libraries.
Solution:   Add the file list entries.
Files:      Filelist

Patch 7.4.1947
Problem:    Viminfo continuation line with wrong length isn't skipped. (Marius
            Gedminas)
Solution:   Skip a line when encountering an error, but not two lines.
Files:      src/ex_cmds.c

Patch 7.4.1948
Problem:    Using Ctrl-A with double-byte encoding may result in garbled text.
Solution:   Skip to the start of a character. (Hirohito Higashi)
Files:      src/ops.c

Patch 7.4.1949
Problem:    Minor problems with the quickfix code.
Solution:   Fix the problems. (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1950
Problem:    Quickfix long lines test not executed for buffer.
Solution:   Call the function to test long lines. (Yegappan Lakshmanan)
Files:      src/testdir/test_quickfix.vim

Patch 7.4.1951
Problem:    Ruby test is old style.
Solution:   Convert to a new style test. (Ken Takata)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test_ruby.in,
            src/testdir/test_ruby.ok, src/testdir/test_ruby.vim

Patch 7.4.1952
Problem:    Cscope interface does not support finding assignments.
Solution:   Add the "a" command. (ppettina, closes #882)
Files:      runtime/doc/if_cscop.txt, src/if_cscope.c

Patch 7.4.1953
Problem:    Not all parts of the quickfix code are tested.
Solution:   Add more tests. (Yegappan Lakshmanan)
Files:      src/testdir/samples/quickfix.txt,
            src/testdir/test_quickfix.vim

Patch 7.4.1954 (after 7.4.1948)
Problem:    No test for what 7.4.1948 fixes.
Solution:   Add a test. (Hirohito Higashi, closes #880)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_increment_dbcs.vim

Patch 7.4.1955
Problem:    Using 32-bit Perl with 64-bit time_t causes memory corruption.
            (Christian Brabandt)
Solution:   Use time_T instead of time_t for global variables. (Ken Takata)
Files:      src/ex_cmds.c, src/globals.h, src/misc2.c, src/proto/ex_cmds.pro,
            src/proto/misc2.pro, src/structs.h, src/vim.h

Patch 7.4.1956
Problem:    When using CTRL-W f and pressing "q" at the ATTENTION dialog the
            newly opened window is not closed.
Solution:   Close the window and go back to the original one. (Norio Takagi,
            Hirohito Higashi)
Files:      src/window.c, src/testdir/test_window_cmd.vim

Patch 7.4.1957
Problem:    Perl interface has obsolete workaround.
Solution:   Remove the workaround added by 7.3.623. (Ken Takata)
Files:      src/if_perl.xs

Patch 7.4.1958
Problem:    Perl interface preprocessor statements not nicely indented.
Solution:   Improve the indenting. (Ken Takata)
Files:      src/if_perl.xs

Patch 7.4.1959
Problem:    Crash when running test_channel.vim on Windows.
Solution:   Check for NULL pointer result from FormatMessage(). (Christian
            Brabandt)
Files:      src/channel.c

Patch 7.4.1960
Problem:    Unicode standard 9 was released.
Solution:   Update the character property tables. (Christian Brabandt)
Files:      src/mbyte.c

Patch 7.4.1961
Problem:    When 'insertmode' is reset while doing completion the popup menu
            remains even though Vim is in Normal mode.
Solution:   Ignore stop_insert_mode when the popup menu is visible.  Don't set
            stop_insert_mode when 'insertmode' was already off. (Christian
            Brabandt)
Files:      src/edit.c, src/option.c, src/Makefile, src/testdir/test_alot.vim,
            src/testdir/test_popup.vim

Patch 7.4.1962
Problem:    Two test files for increment/decrement.
Solution:   Move the old style test into the new style test. (Hirohito
            Higashi, closes #881)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/main.aap,
            src/testdir/test35.in, src/testdir/test35.ok,
            src/testdir/test_increment.vim

Patch 7.4.1963
Problem:    Running Win32 Vim in mintty does not work.
Solution:   Detect mintty and give a helpful error message. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/iscygpty.c,
            src/iscygpty.h, src/main.c, Filelist

Patch 7.4.1964
Problem:    The quickfix init function is too big.
Solution:   Factor out parsing 'errorformat' to a separate function. (Yegappan
            Lakshmanan)
Files:      src/quickfix.c

Patch 7.4.1965
Problem:    When using a job in raw mode to append to a buffer garbage
            characters are added.
Solution:   Do not replace the trailing NUL with a NL. (Ozaki Kiichi)
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.1966
Problem:    Coverity reports a resource leak.
Solution:   Close "fd" also when bailing out.
Files:      src/quickfix.c

Patch 7.4.1967
Problem:    Falling back from NFA to old regexp engine does not work properly.
            (fritzophrenic)
Solution:   Do not restore nfa_match. (Christian Brabandt, closes #867)
Files:      src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok

Patch 7.4.1968
Problem:    Invalid memory access with "\<C-">.
Solution:   Do not recognize this as a special character. (Dominique Pelle)
Files:      src/misc2.c, src/testdir/test_expr.vim

Patch 7.4.1969
Problem:    When the netbeans channel is closed consuming the buffer may cause
            a crash.
Solution:   Check for nb_channel not to be NULL. (Xavier de Gaye)
Files:      src/netbeans.c

Patch 7.4.1970
Problem:    Using ":insert" in an empty buffer sets the jump mark. (Ingo
            Karkat)
Solution:   Don't adjust marks when replacing the empty line in an empty
            buffer. (closes #892)
Files:      src/ex_cmds.c, src/testdir/test_jumps.vim,
            src/testdir/test_alot.vim

Patch 7.4.1971
Problem:    It is not easy to see unrecognized error lines below the current
            error position.
Solution:   Add ":clist +count".
Files:      src/quickfix.c, runtime/doc/quickfix.txt

Patch 7.4.1972
Problem:    On Solaris select() does not work as expected when there is
            typeahead.
Solution:   Add ICANON when sleeping. (Ozaki Kiichi)
Files:      src/os_unix.c

Patch 7.4.1973
Problem:    On MS-Windows the package directory may be added at the end
            because of forward/backward slash differences. (Matthew
            Desjardins)
Solution:   Ignore slash differences.
Files:      src/ex_cmds2.c

Patch 7.4.1974
Problem:    GUI has a problem with some termcodes.
Solution:   Handle negative numbers. (Kazunobu Kuriyama)
Files:      src/gui.c

Patch 7.4.1975
Problem:    On MS-Windows large files (> 2Gbyte) cause problems.
Solution:   Use "off_T" instead of "off_t".  Use "stat_T" instead of "struct
            stat".  Use 64 bit system functions if available.  (Ken Takata)
Files:      src/Makefile, src/buffer.c, src/diff.c, src/eval.c, src/ex_cmds.c,
            src/ex_cmds2.c, src/fileio.c, src/gui.c, src/gui_at_fs.c,
            src/if_cscope.c, src/main.c, src/memfile.c, src/memline.c,
            src/misc1.c, src/misc2.c, src/netbeans.c, src/os_mswin.c,
            src/os_win32.c, src/proto/fileio.pro, src/proto/memline.pro,
            src/proto/os_mswin.pro, src/pty.c, src/quickfix.c, src/spell.c,
            src/structs.h, src/tag.c, src/testdir/Make_all.mak,
            src/testdir/test_largefile.vim, src/testdir/test_stat.vim,
            src/undo.c, src/vim.h

Patch 7.4.1976
Problem:    Number variables are not 64 bits while they could be.
Solution:   Add the num64 feature. (Ken Takata, Yasuhiro Matsumoto)
Files:      runtime/doc/eval.txt, runtime/doc/various.txt,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/charset.c,
            src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/feature.h,
            src/fileio.c, src/fold.c, src/json.c, src/message.c, src/misc1.c,
            src/misc2.c, src/ops.c, src/option.c, src/proto/charset.pro,
            src/proto/eval.pro, src/quickfix.c, src/structs.h,
            src/testdir/test_viml.vim, src/version.c

Patch 7.4.1977
Problem:    With 64 bit changes don't need three calls to sprintf().
Solution:   Simplify the code, use vim_snprintf(). (Ken Takata)
Files:      src/fileio.c

Patch 7.4.1978 (after 7.4.1975)
Problem:    Large file test does not delete its output.
Solution:   Delete the output. Check size properly when possible. (Ken Takata)
Files:      src/testdir/test_largefile.vim

Patch 7.4.1979 (after 7.4.1976)
Problem:    Getting value of binary option is wrong. (Kent Sibilev)
Solution:   Fix type cast.  Add a test.
Files:      src/option.c, src/testdir/test_expr.vim

Patch 7.4.1980
Problem:    'errorformat' is parsed for every call to ":caddexpr".  Can't add
            to two location lists asynchronously.
Solution:   Keep the previously parsed data when appropriate. (mostly by
            Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.1981
Problem:    No testing for Farsi code.
Solution:   Add a minimal test.  Clean up Farsi code.
Files:      src/farsi.c, src/Makefile, src/charset.c, src/normal.c,
            src/proto/main.pro, src/testdir/Make_all.mak,
            src/testdir/test_farsi.vim

Patch 7.4.1982
Problem:    Viminfo file contains duplicate change marks.
Solution:   Drop duplicate marks.
Files:      src/mark.c

Patch 7.4.1983
Problem:    farsi.c and arabic.c are included in a strange way.
Solution:   Build them like other files.
Files:      src/main.c, src/farsi.c, src/arabic.c, src/proto.h,
            src/proto/main.pro, src/proto/farsi.pro, src/proto/arabic.pro,
            src/Makefile, src/Make_bc5.mak, src/Make_cyg_ming.mak,
            src/Make_dice.mak, src/Make_ivc.mak, src/Make_manx.mak,
            src/Make_morph.mak, src/Make_mvc.mak, src/Make_sas.mak,
            Filelist

Patch 7.4.1984
Problem:    Not all quickfix features are tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan)
Files:      src/testdir/test_quickfix.vim

Patch 7.4.1985 (after 7.4.1983)
Problem:    Missing changes in VMS build file.
Solution:   Use the right file name.
Files:      src/Make_vms.mms

Patch 7.4.1986
Problem:    Compiler warns for loss of data.
Solution:   Use size_t instead of int. (Christian Brabandt)
Files:      src/ex_cmds2.c

Patch 7.4.1987
Problem:    When copying unrecognized lines for viminfo, end up with useless
            continuation lines.
Solution:   Skip continuation lines.
Files:      src/ex_cmds.c

Patch 7.4.1988
Problem:    When updating viminfo with file marks there is no time order.
Solution:   Remember the time when a buffer was last used, store marks for
            the most recently used buffers.
Files:      src/buffer.c, src/structs.h, src/mark.c, src/main.c,
            src/ex_cmds.c, src/proto/mark.pro, src/testdir/test_viminfo.vim

Patch 7.4.1989
Problem:    filter() and map() only accept a string argument.
Solution:   Implement using a Funcref argument (Yasuhiro Matsumoto, Ken
            Takata)
Files:      runtime/doc/eval.txt, src/Makefile, src/eval.c,
            src/testdir/test_alot.vim, src/testdir/test_filter_map.vim,
            src/testdir/test_partial.vim

Patch 7.4.1990 (after 7.4.1952)
Problem:    Cscope items are not sorted.
Solution:   Put the new "a" command first. (Ken Takata)
Files:      src/if_cscope.c

Patch 7.4.1991
Problem:    glob() does not add a symbolic link when there are no wildcards.
Solution:   Remove the call to mch_getperm().
Files:      src/misc1.c

Patch 7.4.1992
Problem:    Values for true and false can be confusing.
Solution:   Update the documentation.  Add a test.  Make v:true evaluate to
            TRUE for a non-zero-arg.
Files:      runtime/doc/eval.txt, src/eval.c, src/Makefile,
            src/testdir/test_true_false.vim, src/testdir/test_alot.vim

Patch 7.4.1993
Problem:    Not all TRUE and FALSE arguments are tested.
Solution:   Add a few more tests.
Files:      src/testdir/test_true_false.vim

Patch 7.4.1994 (after 7.4.1993)
Problem:    True-false test fails.
Solution:   Filter the dict to only keep the value that matters.
Files:      src/testdir/test_true_false.vim

Patch 7.4.1995
Problem:    GUI: cursor drawn in wrong place if a timer callback causes a
            screen update. (David Samvelyan)
Solution:   Also redraw the cursor when it's blinking and on.
Files:      src/gui_gtk_x11.c, src/gui_mac.c, src/gui_photon.c, src/gui_w32.c,
            src/gui_x11.c, src/screen.c, src/proto/gui_gtk_x11.pro,
            src/proto/gui_mac.pro, src/proto/gui_photon.pro,
            src/proto/gui_w32.pro, src/proto/gui_x11.pro

Patch 7.4.1996
Problem:    Capturing the output of a command takes a few commands.
Solution:   Add evalcmd().
Files:      src/eval.c, runtime/doc/eval.txt, src/testdir/test_alot.vim,
            src/Makefile, src/testdir/test_evalcmd.vim

Patch 7.4.1997
Problem:    Cannot easily scroll the quickfix window.
Solution:   Add ":cbottom".
Files:      src/ex_cmds.h, src/quickfix.c, src/proto/quickfix.pro,
            src/ex_docmd.c, src/testdir/test_quickfix.vim,
            runtime/doc/quickfix.txt

Patch 7.4.1998
Problem:    When writing buffer lines to a job there is no NL to NUL
            conversion.
Solution:   Make it work symmetrical with writing lines from a job into a
            buffer.
Files:      src/channel.c, src/proto/channel.pro, src/netbeans.c

Patch 7.4.1999
Problem:    evalcmd() doesn't work recursively.
Solution:   Use redir_evalcmd instead of redir_vname.
Files:      src/message.c, src/eval.c, src/globals.h, src/proto/eval.pro,
            src/testdir/test_evalcmd.vim

Patch 7.4.2000 (after 7.4.1999)
Problem:    Evalcmd test fails.
Solution:   Add missing piece.
Files:      src/ex_docmd.c

Patch 7.4.2001 (after 7.4.2000)
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 7.4.2002
Problem:    Crash when passing number to filter() or map().
Solution:   Convert to a string. (Ozaki Kiichi)
Files:      src/eval.c, src/testdir/test_filter_map.vim

Patch 7.4.2003
Problem:    Still cursor flickering when a callback updates the screen. (David
            Samvelyan)
Solution:   Put the cursor in the right position after updating the screen.
Files:      src/screen.c

Patch 7.4.2004
Problem:    GUI: cursor displayed in the wrong position.
Solution:   Correct screen_cur_col and screen_cur_row.
Files:      src/screen.c

Patch 7.4.2005
Problem:    After using evalcmd() message output is in the wrong position.
            (Christian Brabandt)
Solution:   Reset msg_col.
Files:      src/eval.c

Patch 7.4.2006
Problem:    Crash when using tabnext in BufUnload autocmd. (Norio Takagi)
Solution:   First check that the current buffer is the right one. (Hirohito
            Higashi)
Files:      src/buffer.c, src/testdir/test_autocmd.vim

Patch 7.4.2007
Problem:    Running the tests leaves a viminfo file behind.
Solution:   Make the viminfo option empty.
Files:      src/testdir/runtest.vim

Patch 7.4.2008
Problem:    evalcmd() has a confusing name.
Solution:   Rename to execute().  Make silent optional.  Support a list of
            commands.
Files:      src/eval.c, src/ex_docmd.c, src/message.c, src/globals.h,
            src/proto/eval.pro, src/Makefile, src/testdir/test_evalcmd.vim,
            src/testdir/test_execute_func.vim, src/testdir/test_alot.vim,
            runtime/doc/eval.txt

Patch 7.4.2009 (after 7.4.2008)
Problem:    Messages test fails.
Solution:   Don't set redir_execute before returning.  Add missing version
            number.
Files:      src/eval.c

Patch 7.4.2010
Problem:    There is a :cbottom command but no :lbottom command.
Solution:   Add :lbottom. (Yegappan Lakshmanan)
Files:      runtime/doc/index.txt, runtime/doc/quickfix.txt, src/ex_cmds.h,
            src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.2011
Problem:    It is not easy to get a list of command arguments.
Solution:   Add getcompletion(). (Yegappan Lakshmanan)
Files:      runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c,
            src/proto/ex_docmd.pro, src/testdir/test_cmdline.vim

Patch 7.4.2012 (after 7.4.2011)
Problem:    Test for getcompletion() does not pass on all systems.
Solution:   Only test what is supported.
Files:      src/testdir/test_cmdline.vim

Patch 7.4.2013
Problem:    Using "noinsert" in 'completeopt' breaks redo.
Solution:   Set compl_curr_match. (Shougo Matsu, closes #874)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 7.4.2014
Problem:    Using "noinsert" in 'completeopt' does not insert match.
Solution:   Set compl_enter_selects. (Shougo Matsu, closes #875)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 7.4.2015
Problem:    When a file gets a name when writing it 'acd' is not effective.
            (Dan Church)
Solution:   Invoke DO_AUTOCHDIR after writing the file. (Allen Haim, closes
            #777, closes #803)  Add test_autochdir() to enable 'acd' before
            "starting" is reset.
Files:      src/ex_cmds.c, src/buffer.c, src/eval.c, src/globals.h,
            src/Makefile, src/testdir/test_autochdir.vim,
            src/testdir/Make_all.mak

Patch 7.4.2016
Problem:    Warning from MinGW about _WIN32_WINNT redefined. (John Marriott)
Solution:   First undefine it. (Ken Takata)
Files:      src/Make_cyg_ming.mak

Patch 7.4.2017
Problem:    When there are many errors adding them to the quickfix list takes
            a long time.
Solution:   Add BLN_NOOPT.  Don't call buf_valid() in buf_copy_options().
            Remember the last file name used.  When going through the buffer
            list start from the end of the list.  Only call buf_valid() when
            autocommands were executed.
Files:      src/buffer.c, src/option.c, src/quickfix.c, src/vim.h

Patch 7.4.2018
Problem:    buf_valid() can be slow when there are many buffers.
Solution:   Add bufref_valid(), only go through the buffer list when a buffer
            was freed.
Files:      src/structs.h, src/buffer.c, src/quickfix.c, src/proto/buffer.pro

Patch 7.4.2019
Problem:    When ignoring case utf_fold() may consume a lot of time.
Solution:   Optimize for ASCII.
Files:      src/mbyte.c

Patch 7.4.2020
Problem:    Can't build without +autocmd feature.
Solution:   Adjust #ifdefs.
Files:      src/buffer.c

Patch 7.4.2021
Problem:    Still too many buf_valid() calls.
Solution:   Make au_new_curbuf a bufref.  Use bufref_valid() in more places.
Files:      src/ex_cmds.c, src/buffer.c, src/globals.h

Patch 7.4.2022
Problem:    Warnings from 64 bit compiler.
Solution:   Add type casts. (Mike Williams)
Files:      src/eval.c

Patch 7.4.2023
Problem:    buflist_findname_stat() may find a dummy buffer.
Solution:   Set the BF_DUMMY flag after loading a dummy buffer.  Start
            finding buffers from the end of the list.
Files:      src/quickfix.c, src/buffer.c

Patch 7.4.2024
Problem:    More buf_valid() calls can be optimized.
Solution:   Use bufref_valid() instead.
Files:      src/buffer.c, src/ex_cmds.c, src/structs.h, src/channel.c,
            src/diff.c, src/eval.c, src/ex_cmds2.c, src/ex_docmd.c,
            src/ex_getln.c, src/fileio.c, src/main.c, src/misc2.c,
            src/netbeans.c, src/quickfix.c, src/spell.c, src/term.c,
            src/if_py_both.h, src/window.c, src/proto/buffer.pro,
            src/proto/window.pro

Patch 7.4.2025
Problem:    The cursor blinking stops or is irregular when receiving date over
            a channel and writing it in a buffer, and when updating the status
            line. (Ramel Eshed)
Solution:   Make it a bit better by flushing GUI output.  Don't redraw the
            cursor after updating the screen if the blink state is off.
Files:      src/gui_gtk_x11.c, src/screen.c

Patch 7.4.2026
Problem:    Reference counting for callbacks isn't right.
Solution:   Add free_callback(). (Ken Takata)  Fix reference count.
Files:      src/channel.c, src/eval.c, src/ex_cmds2.c, src/proto/eval.pro

Patch 7.4.2027
Problem:    Can't build with +eval but without +menu.
Solution:   Add #ifdef. (John Marriott)
Files:      src/eval.c

Patch 7.4.2028
Problem:    cppcheck warns for using index before limits check.
Solution:   Swap the expressions. (Dominique Pelle)
Files:      src/mbyte.c

Patch 7.4.2029
Problem:    printf() does not work with 64 bit numbers.
Solution:   use the "L" length modifier. (Ken Takata)
Files:      src/message.c, src/testdir/test_expr.vim

Patch 7.4.2030
Problem:    ARCH must be set properly when using MinGW.
Solution:   Detect the default value of ARCH from the current compiler. (Ken
            Takata)
Files:      src/Make_cyg_ming.mak

Patch 7.4.2031
Problem:    The list_lbr_utf8 test fails if ~/.vim/syntax/c.vim sets
            'textwidth' to a non-zero value. (Oyvind A. Holm)
Solution:   Add a setup.vim file that sets 'runtimepath' and $HOME to a safe
            value. (partly by Christian Brabandt, closes #912)
Files:      src/testdir/setup.vim, src/testdir/amiga.vim, src/testdir/dos.vim,
            src/testdir/unix.vim, src/testdir/vms.vim, src/testdir/runtest.vim

Patch 7.4.2032 (after 7.4.2030)
Problem:    Build fails with 64 bit MinGW. (Axel Bender)
Solution:   Handle dash vs. underscore. (Ken Takata, Hirohito Higashi)
Files:      src/Make_cyg_ming.mak

Patch 7.4.2033
Problem:    'cscopequickfix' option does not accept new value "a".
Solution:   Adjust list of command characters. (Ken Takata)
Files:      src/option.h, src/Makefile, src/testdir/test_cscope.vim,
            src/testdir/Make_all.mak

Patch 7.4.2034 (after 7.4.2032)
Problem:    Build fails with some version of MinGW. (illusorypan)
Solution:   Recognize mingw32. (Ken Takata, closes #921)
Files:      src/Make_cyg_ming.mak

Patch 7.4.2035
Problem:    On Solaris with ZFS the ACL may get removed.
Solution:   Always restore the ACL for Solaris ZFS. (Danek Duvall)
Files:      src/fileio.c

Patch 7.4.2036
Problem:    Looking up a buffer by number is slow if there are many.
Solution:   Use a hashtab.
Files:      src/structs.h, src/buffer.c

Patch 7.4.2037 (after 7.4.2036)
Problem:    Small build fails.
Solution:   Adjust #ifdefs.
Files:      src/hashtab.c

Patch 7.4.2038 (after 7.4.2036)
Problem:    Small build still fails.
Solution:   Adjust more #ifdefs.
Files:      src/globals.h, src/buffer.c

Patch 7.4.2039
Problem:    The Netbeans integration is not tested.
Solution:   Add a first Netbeans test.
Files:      src/testdir/test_netbeans.vim, src/testdir/test_netbeans.py,
            src/testdir/Make_all.mak, src/Makefile,
            src/testdir/test_channel.vim, src/testdir/shared.vim

Patch 7.4.2040
Problem:    New files missing from distribution.
Solution:   Add new test scripts.
Files:      Filelist

Patch 7.4.2041
Problem:    Netbeans file authentication not tested.
Solution:   Add a test.
Files:      src/testdir/test_netbeans.vim

Patch 7.4.2042
Problem:    GTK: display updating is not done properly and can be slow.
Solution:   Use gdk_display_flush() instead of gdk_display_sync(). Don't call
            gdk_window_process_updates().  (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 7.4.2043
Problem:    setbuvfar() causes a screen redraw.
Solution:   Only use aucmd_prepbuf() for options.
Files:      src/eval.c

Patch 7.4.2044
Problem:    filter() and map() either require a string or defining a function.
Solution:   Support lambda, a short way to define a function that evaluates an
            expression. (Yasuhiro Matsumoto, Ken Takata)
Files:      runtime/doc/eval.txt, src/eval.c, src/testdir/test_alot.vim,
            src/Makefile, src/testdir/test_channel.vim,
            src/testdir/test_lambda.vim

Patch 7.4.2045
Problem:    Memory leak when using a function callback.
Solution:   Don't save the function name when it's in the partial.
Files:      src/channel.c

Patch 7.4.2046
Problem:    The qf_init_ext() function is too big.
Solution:   Refactor it. (Yegappan Lakshmanan)
Files:      src/quickfix.c

Patch 7.4.2047
Problem:    Compiler warning for initializing a struct.
Solution:   Initialize in another way. (Anton Lindqvist)
Files:      src/quickfix.c

Patch 7.4.2048
Problem:    There is still code and help for unsupported systems.
Solution:   Remove the code and text. (Hirohito Higashi)
Files:      runtime/doc/eval.txt, runtime/lang/menu_sk_sk.vim,
            runtime/menu.vim, runtime/optwin.vim, src/Make_bc5.mak,
            src/ex_docmd.c, src/feature.h, src/fileio.c, src/globals.h,
            src/main.c, src/memfile.c, src/memline.c, src/misc1.c,
            src/misc2.c, src/option.c, src/option.h, src/os_unix.c,
            src/os_unix.h, src/proto.h, src/term.c, src/undo.c, src/version.c,
            src/vim.h, src/xxd/xxd.c

Patch 7.4.2049
Problem:    There is no way to get a list of the error lists.
Solution:   Add ":chistory" and ":lhistory".
Files:      src/ex_cmds.h, src/quickfix.c, src/ex_docmd.c, src/message.c,
            src/proto/quickfix.pro, src/testdir/test_quickfix.vim

Patch 7.4.2050
Problem:    When using ":vimgrep" may end up with duplicate buffers.
Solution:   When adding an error list entry pass the buffer number if possible.
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.2051
Problem:    No proper testing of trunc_string().
Solution:   Add a unittest for message.c.
Files:      src/Makefile, src/message.c, src/message_test.c, src/main.c,
            src/proto/main.pro, src/structs.h

Patch 7.4.2052
Problem:    Coverage report is messed up by the unittests.
Solution:   Add a separate test target for script tests.  Use that when
            collecting coverage information.
Files:      src/Makefile

Patch 7.4.2053
Problem:    Can't run scripttests in the top directory.
Solution:   Add targets to the top Makefile.
Files:      Makefile

Patch 7.4.2054 (after 7.4.2048)
Problem:    Wrong part of #ifdef removed.
Solution:   Use the right part. (Hirohito Higashi)
Files:      src/os_unix.c

Patch 7.4.2055
Problem:    eval.c is too big
Solution:   Move Dictionary functions to dict.c
Files:      src/eval.c, src/dict.c, src/vim.h, src/globals.h,
            src/proto/eval.pro, src/proto/dict.pro, src/Makefile, Filelist

Patch 7.4.2056 (after 7.4.2055)
Problem:    Build fails.
Solution:   Add missing changes.
Files:      src/proto.h

Patch 7.4.2057
Problem:    eval.c is too big.
Solution:   Move List functions to list.c
Files:      src/eval.c, src/dict.c, src/list.c, src/proto.h, src/Makefile,
            src/globals.h, src/proto/eval.pro, src/proto/list.pro, Filelist

Patch 7.4.2058
Problem:    eval.c is too big.
Solution:   Move user functions to userfunc.c
Files:      src/userfunc.c, src/eval.c, src/vim.h, src/globals.h,
            src/structs.h, src/proto.h, src/Makefile, src/proto/eval.pro,
            src/proto/userfunc.pro, Filelist

Patch 7.4.2059
Problem:    Non-Unix builds fail.
Solution:   Update Makefiles for new files.
Files:      src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_dice.mak,
            src/Make_ivc.mak, src/Make_manx.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_sas.mak

Patch 7.4.2060 (after 7.4.2059)
Problem:    Wrong file name.
Solution:   Fix typo.
Files:      src/Make_mvc.mak

Patch 7.4.2061
Problem:    qf_init_ext() is too big.
Solution:   Move code to qf_parse_line() (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.2062
Problem:    Using dummy variable to compute struct member offset.
Solution:   Use offsetof().
Files:      src/globals.h, src/macros.h, src/vim.h, src/spell.c

Patch 7.4.2063
Problem:    eval.c is still too big.
Solution:   Split off internal functions to evalfunc.c.
Files:      src/eval.c, src/evalfunc.c, src/list.c, src/proto.h,
            src/globals.h, src/vim.h, src/proto/eval.pro,
            src/proto/evalfunc.pro, src/proto/list.pro, src/Makefile, Filelist,
            src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_dice.mak,
            src/Make_ivc.mak, src/Make_manx.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_sas.mak

Patch 7.4.2064
Problem:    Coverity warns for possible buffer overflow.
Solution:   Use vim_strcat() instead of strcat().
Files:      src/quickfix.c

Patch 7.4.2065
Problem:    Compiler warns for uninitialized variable. (John Marriott)
Solution:   Set lnum to the right value.
Files:      src/evalfunc.c

Patch 7.4.2066
Problem:    getcompletion() not well tested.
Solution:   Add more testing.
Files:      src/testdir/test_cmdline.vim

Patch 7.4.2067
Problem:    Compiler warning for char/char_u conversion. (Tony Mechelynck)
            Inefficient code.
Solution:   Use more lines to fill with spaces. (Nikolai Pavlov) Add type cast.
Files:      src/quickfix.c

Patch 7.4.2068
Problem:    Not all arguments of trunc_string() are tested.  Memory access
            error when running the message tests.
Solution:   Add another test case. (Yegappan Lakshmanan)  Make it easy to run
            unittests with valgrind.  Fix the access error.
Files:      src/message.c, src/message_test.c, src/Makefile

Patch 7.4.2069
Problem:    spell.c is too big.
Solution:   Split it in spell file handling and spell checking.
Files:      src/spell.c, src/spellfile.c, src/spell.h, src/Makefile,
            src/proto/spell.pro, src/proto/spellfile.pro, src/proto.h
            Filelist, src/Make_bc5.mak, src/Make_cyg_ming.mak,
            src/Make_dice.mak, src/Make_ivc.mak, src/Make_manx.mak,
            src/Make_morph.mak, src/Make_mvc.mak, src/Make_sas.mak

Patch 7.4.2070 (after 7.4.2069)
Problem:    Missing change to include file.
Solution:   Include the spell header file.
Files:      src/vim.h

Patch 7.4.2071
Problem:    The return value of type() is difficult to use.
Solution:   Define v:t_ constants. (Ken Takata)
Files:      runtime/doc/eval.txt, src/eval.c, src/evalfunc.c,
            src/testdir/test_channel.vim, src/testdir/test_viml.vim, src/vim.h

Patch 7.4.2072
Problem:    substitute() does not support a Funcref argument.
Solution:   Support a Funcref like it supports  a string starting with "\=".
Files:      src/evalfunc.c, src/regexp.c, src/eval.c, src/proto/eval.pro,
            src/proto/regexp.pro, src/testdir/test_expr.vim

Patch 7.4.2073
Problem:    rgb.txt is read for every color name.
Solution:   Load rgb.txt once. (Christian Brabandt)  Add a test.
Files:      runtime/rgb.txt, src/term.c, src/testdir/test_syn_attr.vim

Patch 7.4.2074
Problem:    One more place using a dummy variable.
Solution:   Use offsetof(). (Ken Takata)
Files:      src/userfunc.c

Patch 7.4.2075
Problem:    No autocommand event to initialize a window or tab page.
Solution:   Add WinNew and TabNew events. (partly by Felipe Morales)
Files:      src/fileio.c, src/window.c, src/vim.h,
            src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt

Patch 7.4.2076
Problem:    Syntax error when dict has '>' key.
Solution:   Check for endchar. (Ken Takata)
Files:      src/userfunc.c, src/testdir/test_lambda.vim

Patch 7.4.2077
Problem:    Cannot update 'tabline' when a tab was closed.
Solution:   Add the TabClosed autocmd event. (partly by Felipe Morales)
Files:      src/fileio.c, src/window.c, src/vim.h,
            src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt

Patch 7.4.2078
Problem:    Running checks in po directory fails.
Solution:   Add colors used in syntax.c to the builtin color table.
Files:      src/term.c

Patch 7.4.2079
Problem:    Netbeans test fails on non-Unix systems.
Solution:   Only do the permission check on Unix systems.
Files:      src/testdir/test_netbeans.vim

Patch 7.4.2080
Problem:    When using PERROR() on some systems assert_fails() does not see
            the error.
Solution:   Make PERROR() always report the error.
Files:      src/vim.h, src/message.c, src/proto/message.pro

Patch 7.4.2081
Problem:    Line numbers in the error list are not always adjusted.
Solution:   Set b_has_qf_entry properly. (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/structs.h, src/testdir/test_quickfix.vim

Patch 7.4.2082
Problem:    Not much test coverage for digraphs.
Solution:   Add a new style digraph test. (Christian Brabandt)
Files:      src/Makefile, src/testdir/test_alot.vim,
            src/testdir/test_digraph.vim

Patch 7.4.2083
Problem:    Coverity complains about not restoring a value.
Solution:   Restore the value, although it's not really needed.  Change return
            to jump to cleanup, might leak memory.
Files:      src/userfunc.c

Patch 7.4.2084
Problem:    New digraph test makes testing hang.
Solution:   Don't set "nocp".
Files:      src/testdir/test_digraph.vim

Patch 7.4.2085
Problem:    Digraph tests fails on some systems.
Solution:   Run it separately and set 'encoding' early.
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,
            src/testdir/test_digraph.vim

Patch 7.4.2086
Problem:    Using the system default encoding makes tests unpredictable.
Solution:   Always use utf-8 or latin1 in the new style tests.  Remove setting
            encoding and scriptencoding where it is not needed.
Files:      src/testdir/runtest.vim, src/testdir/test_channel.vim,
            src/testdir/test_digraph.vim, src/testdir/test_expand_dllpath.vim,
            src/testdir/test_expr_utf8.vim, src/testdir/test_json.vim,
            src/testdir/test_matchadd_conceal_utf8.vim,
            src/testdir/test_regexp_utf8.vim, src/testdir/test_visual.vim,
            src/testdir/test_alot_utf8.vim,

Patch 7.4.2087
Problem:    Digraph code test coverage is still low.
Solution:   Add more tests. (Christian Brabandt)
Files:      src/testdir/test_digraph.vim

Patch 7.4.2088 (after 7.4.2087)
Problem:    Keymap test fails with normal features.
Solution:   Bail out if the keymap feature is not supported.
Files:      src/testdir/test_digraph.vim

Patch 7.4.2089
Problem:    Color handling of X11 GUIs is too complicated.
Solution:   Simplify the code.  Use RGBA where appropriate. (Kazunobu
            Kuriyama)
Files:      src/gui.h, src/gui_beval.c, src/gui_gtk_x11.c, src/netbeans.c

Patch 7.4.2090
Problem:    Using submatch() in a lambda passed to substitute() is verbose.
Solution:   Use a static list and pass it as an optional argument to the
            function.  Fix memory leak.
Files:      src/structs.h, src/list.c, src/userfunc.c, src/channel.c,
            src/eval.c, src/evalfunc.c, src/ex_cmds2.c, src/regexp.c,
            src/proto/list.pro, src/proto/userfunc.pro,
            src/testdir/test_expr.vim, runtime/doc/eval.txt

Patch 7.4.2091
Problem:    Coverity reports a resource leak when out of memory.
Solution:   Close the file before returning.
Files:      src/term.c

Patch 7.4.2092
Problem:    GTK 3 build fails with older GTK version.
Solution:   Check the pango version. (Kazunobu Kuriyama)
Files:      src/gui_beval.c

Patch 7.4.2093
Problem:    Netbeans test fails once in a while.  Leaving log file behind.
Solution:   Add it to the list of flaky tests.  Disable logfile.
Files:      src/testdir/runtest.vim, src/testdir/test_channel.vim

Patch 7.4.2094
Problem:    The color allocation in X11 is overly complicated.
Solution:   Remove find_closest_color(), XAllocColor() already does this.
            (Kazunobu Kuriyama)
Files:      src/gui_x11.c

Patch 7.4.2095
Problem:    Man test fails when run with the GUI.
Solution:   Adjust for different behavior of GUI.  Add assert_inrange().
Files:      src/eval.c, src/evalfunc.c, src/proto/eval.pro,
            src/testdir/test_assert.vim, src/testdir/test_man.vim,
            runtime/doc/eval.txt

Patch 7.4.2096
Problem:    Lambda functions show up with completion.
Solution:   Don't show lambda functions. (Ken Takata)
Files:      src/userfunc.c, src/testdir/test_cmdline.vim

Patch 7.4.2097
Problem:    Warning from 64 bit compiler.
Solution:   use size_t instead of int. (Mike Williams)
Files:      src/message.c

Patch 7.4.2098
Problem:    Text object tests are old style.
Solution:   Turn them into new style tests. (James McCoy, closes #941)
Files:      src/testdir/Make_all.mak, src/testdir/test_textobjects.in,
            src/testdir/test_textobjects.ok, src/testdir/test_textobjects.vim,
            src/Makefile

Patch 7.4.2099
Problem:    When a keymap is active only "(lang)" is displayed. (Ilya
            Dogolazky)
Solution:   Show the keymap name. (Dmitri Vereshchagin, closes #933)
Files:      src/buffer.c, src/proto/screen.pro, src/screen.c

Patch 7.4.2100
Problem:    "cgn" and "dgn" do not work correctly with a single character
            match and the replacement includes the searched pattern. (John
            Beckett)
Solution:   If the match is found in the wrong column try in the next column.
            Turn the test into new style. (Christian Brabandt)
Files:      src/search.c, src/testdir/Make_all.mak, src/Makefile,
            src/testdir/test53.in, src/testdir/test53.ok,
            src/testdir/test_gn.vim

Patch 7.4.2101
Problem:    Looping over windows, buffers and tab pages is inconsistent.
Solution:   Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)
Files:      src/buffer.c, src/diff.c, src/edit.c, src/eval.c, src/evalfunc.c,
            src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/fileio.c,
            src/globals.h, src/gui.c, src/gui_mac.c, src/if_lua.c,
            src/if_mzsch.c, src/if_perl.xs, src/if_ruby.c, src/if_tcl.c,
            src/main.c, src/mark.c, src/memfile.c, src/memline.c, src/misc1.c,
            src/move.c, src/netbeans.c, src/normal.c, src/option.c,
            src/quickfix.c, src/screen.c, src/spell.c, src/term.c,
            src/window.c, src/workshop.c

Patch 7.4.2102 (after 7.4.2101)
Problem:    Tiny build with GUI fails.
Solution:   Revert one FOR_ALL_ change.
Files:      src/gui.c

Patch 7.4.2103
Problem:    Can't have "augroup END" right after ":au!".
Solution:   Check for the bar character before the command argument.
Files:      src/fileio.c, src/testdir/test_autocmd.vim,
            runtime/doc/autocmd.txt

Patch 7.4.2104
Problem:    Code duplication when unreferencing a function.
Solution:   De-duplicate.
Files:      src/userfunc.c

Patch 7.4.2105
Problem:    Configure reports default features to be "normal" while it is
            "huge".
Solution:   Change the default text.  Build with newer autoconf.
Files:      src/configure.in, src/auto/configure

Patch 7.4.2106
Problem:    Clang warns about missing field in initializer.
Solution:   Define COMMA and use it.  (Kazunobu Kuriyama)
Files:      src/ex_cmds.c, src/globals.h, src/vim.h

Patch 7.4.2107 (after 7.4.2106)
Problem:    Misplaced equal sign.
Solution:   Remove it.
Files:      src/globals.h

Patch 7.4.2108
Problem:    Netbeans test is flaky.
Solution:   Wait for the cursor to be positioned.
Files:      src/testdir/test_netbeans.vim

Patch 7.4.2109
Problem:    Setting 'display' to "lastline" is a drastic change, while
            omitting it results in lots of "@" lines.
Solution:   Add "truncate" to show "@@@" for a truncated line.
Files:      src/option.h, src/screen.c, runtime/doc/options.txt

Patch 7.4.2110
Problem:    When there is an CmdUndefined autocmd then the error for a missing
            command is E464 instead of E492. (Manuel Ortega)
Solution:   Don't let the pointer be NULL.
Files:      src/ex_docmd.c, src/testdir/test_usercommands.vim

Patch 7.4.2111
Problem:    Defaults are very conservative.
Solution:   Move settings from vimrc_example.vim to defaults.vim.  Load
            defaults.vim if no .vimrc was found.
Files:      src/main.c, src/version.c, src/os_amiga.h, src/os_dos.h,
            src/os_mac.h, src/os_unix.h, src/feature.h, src/Makefile,
            runtime/vimrc_example.vim, runtime/defaults.vim,
            runtime/evim.vim, Filelist, runtime/doc/starting.txt

Patch 7.4.2112
Problem:    getcompletion(.., 'dir') returns a match with trailing "*" when
            there are no matches. (Chdiza)
Solution:   Return an empty list when there are no matches.  Add a trailing
            slash to directories. (Yegappan Lakshmanan)  Add tests for no
            matches. (closes #947)
Files:      src/evalfunc.c, src/testdir/test_cmdline.vim

Patch 7.4.2113
Problem:    Test for undo is flaky.
Solution:   Turn it into a new style test.  Use test_settime() to avoid
            flakyness.
Files:      src/Makefile, src/undo.c, src/testdir/test61.in,
            src/testdir/test61.ok, src/testdir/test_undo.vim,
            src/testdir/test_undolevels.vim, src/testdir/Make_all.mak,
            src/testdir/test_alot.vim

Patch 7.4.2114
Problem:    Tiny build fails.
Solution:   Always include vim_time().
Files:      src/ex_cmds.c

Patch 7.4.2115
Problem:    Loading defaults.vim with -C argument.
Solution:   Don't load the defaults script with -C argument.  Test sourcing
            the defaults script.  Set 'display' to "truncate".
Files:      src/main.c, src/Makefile, runtime/defaults.vim,
            src/testdir/test_startup.vim, src/testdir/Make_all.mak

Patch 7.4.2116
Problem:    The default vimrc for Windows is very conservative.
Solution:   Use the defaults.vim in the Windows installer.
Files:      src/dosinst.c

Patch 7.4.2117
Problem:    Deleting an augroup that still has autocmds does not give a
            warning.  The next defined augroup takes its place.
Solution:   Give a warning and prevent the index being used for another group
            name.
Files:      src/fileio.c, src/testdir/test_autocmd.vim

Patch 7.4.2118
Problem:    Mac: can't build with tiny features.
Solution:   Don't define FEAT_CLIPBOARD unconditionally. (Kazunobu Kuriyama)
Files:      src/vim.h

Patch 7.4.2119
Problem:    Closures are not supported.
Solution:   Capture variables in lambdas from the outer scope. (Yasuhiro
            Matsumoto, Ken Takata)
Files:      runtime/doc/eval.txt, src/eval.c, src/ex_cmds2.c, src/globals.h,
            src/proto/eval.pro, src/proto/userfunc.pro,
            src/testdir/test_lambda.vim, src/userfunc.c

Patch 7.4.2120
Problem:    User defined functions can't be a closure.
Solution:   Add the "closure" argument. Allow using :unlet on a bound
            variable. (Yasuhiro Matsumoto, Ken Takata)
Files:      runtime/doc/eval.txt, src/testdir/test_lambda.vim, src/userfunc.c,
            src/eval.c src/proto/userfunc.pro

Patch 7.4.2121
Problem:    No easy way to check if lambda and closure are supported.
Solution:   Add the +lambda feature.
Files:      src/evalfunc.c, src/version.c, src/testdir/test_lambda.vim

Patch 7.4.2122 (after 7.4.2118)
Problem:    Mac: don't get +clipboard in huge build.
Solution:   Move #define down below including feature.h
Files:      src/vim.h

Patch 7.4.2123
Problem:    No new style test for diff mode.
Solution:   Add a test.  Check that folds are in sync.
Files:      src/Makefile, src/testdir/test_diffmode.vim,
            src/testdir/Make_all.mak, src/testdir/test47.in,
            src/testdir/test47.ok

Patch 7.4.2124
Problem:    diffmode test leaves files behind, breaking another test.
Solution:   Delete the files.
Files:      src/testdir/test_diffmode.vim

Patch 7.4.2125
Problem:    Compiler warning for loss of data.
Solution:   Add a type cast. (Christian Brabandt)
Files:      src/message.c

Patch 7.4.2126
Problem:    No tests for :diffget and :diffput
Solution:   Add tests.
Files:      src/testdir/test_diffmode.vim

Patch 7.4.2127
Problem:    The short form of ":noswapfile" is ":noswap" instead of ":nos".
            (Kent Sibilev)
Solution:   Only require three characters.  Add a test for the short forms.
Files:      src/ex_docmd.c, src/testdir/test_usercommands.vim

Patch 7.4.2128
Problem:    Memory leak when saving for undo fails.
Solution:   Free allocated memory. (Hirohito Higashi)
Files:      src/ex_cmds.c

Patch 7.4.2129
Problem:    Memory leak when using timer_start(). (Dominique Pelle)
Solution:   Don't copy the callback when using a partial.
Files:      src/evalfunc.c

Patch 7.4.2130
Problem:    Pending timers cause false memory leak reports.
Solution:   Free all timers on exit.
Files:      src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/misc2.c

Patch 7.4.2131
Problem:    More memory leaks when using partial, e.g. for "exit-cb".
Solution:   Don't copy the callback when using a partial.
Files:      src/channel.c

Patch 7.4.2132
Problem:    test_partial has memory leaks reported.
Solution:   Add a note about why this happens.
Files:      src/testdir/test_partial.vim

Patch 7.4.2133 (after 7.4.2128)
Problem:    Can't build with tiny features.
Solution:   Add #ifdef.
Files:      src/ex_cmds.c

Patch 7.4.2134
Problem:    No error for using function() badly.
Solution:   Check for passing wrong function name. (Ken Takata)
Files:      src/eval.c, src/evalfunc.c, src/proto/userfunc.pro,
            src/testdir/test_expr.vim, src/userfunc.c, src/vim.h

Patch 7.4.2135
Problem:    Various tiny issues.
Solution:   Update comments, white space, etc.
Files:      src/diff.c, src/digraph.c, src/testdir/test80.in,
            src/testdir/test_channel.vim, src/testdir/Makefile,
            runtime/menu.vim, src/INSTALLpc.txt, src/xpm/README.txt

Patch 7.4.2136
Problem:    Closure function fails.
Solution:   Don't reset uf_scoped when it points to another funccal.
Files:      src/userfunc.c, src/testdir/test_lambda.vim

Patch 7.4.2137
Problem:    Using function() with a name will find another function when it is
            redefined.
Solution:   Add funcref().  Refer to lambda using a partial.  Fix several
            reference counting issues.
Files:      src/vim.h, src/structs.h, src/userfunc.c, src/eval.c,
            src/evalfunc.c, src/channel.c, src/proto/eval.pro,
            src/proto/userfunc.pro, src/if_mzsch.c, src/regexp.c, src/misc2.c,
            src/if_py_both.h, src/testdir/test_expr.vim, runtime/doc/eval.txt

Patch 7.4.2138
Problem:    Test 86 and 87 fail.
Solution:   Call func_ref() also for regular functions.
Files:      src/if_py_both.h

Patch 7.4.2139
Problem:    :delfunction causes illegal memory access.
Solution:   Correct logic when deciding to free a function.
Files:      src/userfunc.c, src/testdir/test_lambda.vim

Patch 7.4.2140
Problem:    Tiny build fails.
Solution:   Add dummy typedefs.
Files:      src/structs.h

Patch 7.4.2141
Problem:    Coverity reports bogus NULL check.
Solution:   When checking for a variable in the funccal scope don't pass the
            varname.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c

Patch 7.4.2142
Problem:    Leaking memory when redefining a function.
Solution:   Don't increment the function reference count when it's found by
            name. Don't remove the wrong function from the hashtab.  More
            reference counting fixes.
Files:      src/structs.h, src/userfunc.c

Patch 7.4.2143
Problem:    A funccal is garbage collected while it can still be used.
Solution:   Set copyID in all referenced functions.  Do not list lambda
            functions with ":function".
Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
            src/testdir/test_lambda.vim

Patch 7.4.2144
Problem:    On MS-Windows quickfix does not handle a line with 1023 bytes
            ending in CR-LF properly.
Solution:   Don't consider CR a line break. (Ken Takata)
Files:      src/quickfix.c

Patch 7.4.2145
Problem:    Win32: Using CreateThread/ExitThread is not safe.
Solution:   Use _beginthreadex and return from the thread. (Ken Takata)
Files:      src/os_win32.c

Patch 7.4.2146
Problem:    Not enough testing for popup menu.  CTRL-E does not always work
            properly.
Solution:   Add more tests.  When using CTRL-E check if the popup menu is
            visible. (Christian Brabandt)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 7.4.2147 (after 7.4.2146)
Problem:    test_alot fails.
Solution:   Close window.
Files:      src/testdir/test_popup.vim

Patch 7.4.2148
Problem:    Not much testing for cscope.
Solution:   Add a test that uses the cscope program. (Christian Brabandt)
Files:      src/testdir/test_cscope.vim

Patch 7.4.2149
Problem:    If a test leaves a window open a following test may fail.
Solution:   Always close extra windows after running a test.
Files:      src/testdir/runtest.vim, src/testdir/test_popup.vim

Patch 7.4.2150
Problem:    Warning with MinGW 64. (John Marriott)
Solution:   Change return type. (Ken Takata)
Files:      src/os_win32.c

Patch 7.4.2151
Problem:    Quickfix test fails on MS-Windows.
Solution:   Close the help window. (Christian Brabandt)
Files:      src/testdir/test_quickfix.vim

Patch 7.4.2152
Problem:    No proper translation of messages with a count.
Solution:   Use ngettext(). (Sergey Alyoshin)
Files:      src/evalfunc.c, src/fold.c, src/os_win32.c, src/screen.c, src/vim.h

Patch 7.4.2153
Problem:    GUI test isn't testing much.
Solution:   Turn into a new style test.  Execute a shell command.
Files:      src/testdir/test_gui.vim, src/testdir/test16.in,
            src/testdir/test16.ok, src/testdir/Make_all.mak, src/Makefile,
            src/testdir/Make_vms.mms

Patch 7.4.2154
Problem:    Test_communicate() fails sometimes.
Solution:   Add it to the flaky tests.
Files:      src/testdir/runtest.vim

Patch 7.4.2155
Problem:    Quotes make GUI test fail on MS-Windows.
Solution:   Remove quotes, strip white space.
Files:      src/testdir/test_gui.vim

Patch 7.4.2156
Problem:    Compiler warning.
Solution:   Add type cast. (Ken Takata, Mike Williams)
Files:      src/os_win32.c

Patch 7.4.2157
Problem:    Test_job_start_fails() is expected to report memory leaks, making
            it hard to see other leaks in test_partial.
Solution:   Move Test_job_start_fails() to a separate test file.
Files:      src/testdir/test_partial.vim, src/testdir/test_job_fails.vim,
            src/Makefile, src/testdir/Make_all.mak

Patch 7.4.2158
Problem:    Result of getcompletion('', 'cscope') depends on previous
            completion. (Christian Brabandt)
Solution:   Call set_context_in_cscope_cmd().
Files:      src/evalfunc.c, src/testdir/test_cmdline.vim

Patch 7.4.2159
Problem:    Insufficient testing for cscope.
Solution:   Add more tests. (Dominique Pelle)
Files:      src/testdir/test_cscope.vim

Patch 7.4.2160
Problem:    setmatches() mixes up values. (Nikolai Pavlov)
Solution:   Save the string instead of reusing a shared buffer.
Files:      src/dict.c, src/evalfunc.c, src/testdir/test_expr.vim,

Patch 7.4.2161 (after 7.4.2160)
Problem:    Expression test fails without conceal feature.
Solution:   Only check "conceal" with the conceal feature.
Files:      src/testdir/test_expr.vim

Patch 7.4.2162
Problem:    Result of getcompletion('', 'sign') depends on previous
            completion.
Solution:   Call set_context_in_sign_cmd(). (Dominique Pelle)
Files:      src/evalfunc.c, src/testdir/test_cmdline.vim

Patch 7.4.2163
Problem:    match() and related functions tested with old style test.
Solution:   Convert to new style test. (Hirohito Higashi)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test63.in,
            src/testdir/test63.ok, src/testdir/test_alot.vim,
            src/testdir/test_match.vim, src/testdir/test_matchstrpos.vim

Patch 7.4.2164
Problem:    It is not possible to use plugins in an "after" directory to tune
            the behavior of a package.
Solution:   First load plugins from non-after directories, then packages and
            finally plugins in after directories.
            Reset 'loadplugins' before executing --cmd arguments.
Files:      src/main.c, src/vim.h, src/ex_cmds2.c, src/testdir/Makefile,
            src/testdir/shared.vim, src/testdir/test_startup.vim,
            src/testdir/setup.vim, runtime/doc/starting.txt

Patch 7.4.2165 (after 7.4.2164)
Problem:    Startup test fails on MS-Windows.
Solution:   Don't check output if RunVim() returns zero.
Files:      src/testdir/test_startup.vim

Patch 7.4.2166 (after 7.4.2164)
Problem:    Small build can't run startup test.
Solution:   Skip the test.
Files:      src/testdir/test_startup.vim

Patch 7.4.2167 (after 7.4.2164)
Problem:    Small build can't run tests.
Solution:   Don't try setting 'packpath'.
Files:      src/testdir/setup.vim

Patch 7.4.2168
Problem:    Not running the startup test on MS-Windows.
Solution:   Write vimcmd.
Files:      src/testdir/Make_ming.mak, src/testdir/Make_dos.mak

Patch 7.4.2169 (after 7.4.2168)
Problem:    Startup test gets stuck on MS-Windows.
Solution:   Use double quotes.
Files:      src/testdir/shared.vim, src/testdir/test_startup.vim

Patch 7.4.2170
Problem:    Cannot get information about timers.
Solution:   Add timer_info().
Files:      src/evalfunc.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
            runtime/doc/eval.txt

Patch 7.4.2171 (after 7.4.2170)
Problem:    MS-Windows build fails.
Solution:   Add QueryPerformanceCounter().
Files:      src/ex_cmds2.c

Patch 7.4.2172
Problem:    No test for "vim --help".
Solution:   Add a test.
Files:      src/testdir/test_startup.vim, src/testdir/shared.vim

Patch 7.4.2173 (after 7.4.2172)
Problem:    Can't test help on MS-Windows.
Solution:   Skip the test.
Files:      src/testdir/test_startup.vim

Patch 7.4.2174
Problem:    Adding duplicate flags to 'whichwrap' leaves commas behind.
Solution:   Also remove the commas. (Naruhiko Nishino)
Files:      src/Makefile, src/option.c, src/testdir/Make_all.mak,
            src/testdir/test_alot.vim, src/testdir/test_options.in,
            src/testdir/test_options.ok, src/testdir/test_options.vim

Patch 7.4.2175
Problem:    Insufficient testing of cscope.
Solution:   Add more tests. (Dominique Pelle)
Files:      src/testdir/test_cscope.vim

Patch 7.4.2176
Problem:    #ifdefs in main() are complicated.
Solution:   Always define vim_main2().  Move params to the file level.
            (suggested by Ken Takata)
Files:      src/main.c, src/structs.h, src/vim.h, src/if_mzsch.c,
            src/proto/if_mzsch.pro

Patch 7.4.2177
Problem:    No testing for -C and -N command line flags, file arguments,
            startuptime.
Solution:   Add tests.
Files:      src/testdir/test_startup.vim, src/testdir/shared.vim

Patch 7.4.2178
Problem:    No test for reading from stdin.
Solution:   Add a test.
Files:      src/testdir/test_startup.vim, src/testdir/shared.vim

Patch 7.4.2179 (after 7.4.2178)
Problem:    Reading from stdin test fails on MS-Windows.
Solution:   Strip the extra space.
Files:      src/testdir/test_startup.vim

Patch 7.4.2180
Problem:    There is no easy way to stop all timers.  There is no way to
            temporary pause a timer.
Solution:   Add timer_stopall() and timer_pause().
Files:      src/evalfunc.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
            src/structs.h, src/testdir/test_timers.vim,
            src/testdir/shared.vim, runtime/doc/eval.txt

Patch 7.4.2181
Problem:    Compiler warning for unused variable.
Solution:   Remove it. (Dominique Pelle)
Files:      src/ex_cmds2.c

Patch 7.4.2182
Problem:    Color Grey40 used in startup but not in the short list.
Solution:   Add Grey40 to the builtin colors.
Files:      src/term.c

Patch 7.4.2183
Problem:    Sign tests are old style.
Solution:   Turn them into new style tests. (Dominique Pelle)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test_signs.in,
            src/testdir/test_signs.ok, src/testdir/test_signs.vim,

Patch 7.4.2184
Problem:    Tests that use RunVim() do not actually perform the test.
Solution:   Use "return" instead of "call". (Ken Takata)
Files:      src/testdir/shared.vim

Patch 7.4.2185
Problem:    Test glob2regpat does not test much.
Solution:   Add a few more test cases. (Dominique Pelle)
Files:      src/testdir/test_glob2regpat.vim

Patch 7.4.2186
Problem:    Timers test is flaky.
Solution:   Relax the sleep time check.
Files:      src/testdir/test_timers.vim

Patch 7.4.2187 (after 7.4.2185)
Problem:    glob2regpat test fails on Windows.
Solution:   Remove the checks that use backslashes.
Files:      src/testdir/test_glob2regpat.vim

Patch 7.4.2188 (after 7.4.2146)
Problem:    Completion does not work properly with some plugins.
Solution:   Revert the part related to typing CTRL-E. (closes #972)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 7.4.2189
Problem:    Cannot detect encoding in a fifo.
Solution:   Extend the stdin way of detecting encoding to fifo.  Add a test
            for detecting encoding on stdin and fifo. (Ken Takata)
Files:      src/buffer.c, src/fileio.c, src/Makefile,
            src/testdir/Make_all.mak, src/testdir/test_startup_utf8.vim,
            src/vim.h

Patch 7.4.2190
Problem:    When startup test fails it's not easy to find out why.
            GUI test fails with Gnome.
Solution:   Add the help entry matches to a list an assert that.
            Set $HOME for Gnome to create .gnome2 directory.
Files:      src/testdir/test_startup.vim, src/testdir/test_gui.vim

Patch 7.4.2191
Problem:    No automatic prototype for vim_main2().
Solution:   Move the #endif. (Ken Takata)
Files:      src/main.c, src/vim.h, src/proto/main.pro

Patch 7.4.2192
Problem:    Generating prototypes with Cygwin doesn't work well.
Solution:   Change #ifdefs. (Ken Takata)
Files:      src/gui.h, src/gui_w32.c, src/ops.c, src/proto/fileio.pro,
            src/proto/message.pro, src/proto/normal.pro, src/proto/ops.pro,
            src/vim.h

Patch 7.4.2193
Problem:    With Gnome when the GUI can't start test_startup hangs.
Solution:   Call gui_mch_early_init_check(). (Hirohito Higashi)
Files:      src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro

Patch 7.4.2194
Problem:    Sign tests don't cover enough.
Solution:   Add more test cases. (Dominique Pelle)
Files:      src/testdir/test_signs.vim

Patch 7.4.2195
Problem:    MS-Windows: The vimrun program does not support Unicode.
Solution:   Use GetCommandLineW().  Cleanup old #ifdefs. (Ken Takata)
Files:      src/vimrun.c

Patch 7.4.2196
Problem:    glob2regpat test doesn't test everything on MS-Windows.
Solution:   Add patterns with backslash handling.
Files:      src/testdir/test_glob2regpat.vim

Patch 7.4.2197
Problem:    All functions are freed on exit, which may hide leaks.
Solution:   Only free named functions, not reference counted ones.
Files:      src/userfunc.c

Patch 7.4.2198
Problem:    Test alot sometimes fails under valgrind. (Dominique Pelle)
Solution:   Avoid passing a callback with the wrong number of arguments.
Files:      src/testdir/test_partial.vim

Patch 7.4.2199
Problem:    In the GUI the cursor is hidden when redrawing any window,
            causing flicker.
Solution:   Only undraw the cursor when updating the window it's in.
Files:      src/screen.c, src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c

Patch 7.4.2200
Problem:    Cannot get all information about a quickfix list.
Solution:   Add an optional argument to get/set loc/qf list(). (Yegappan
            Lakshmanan)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/proto/quickfix.pro,
            src/quickfix.c, src/tag.c, src/testdir/test_quickfix.vim

Patch 7.4.2201
Problem:    The sign column disappears when the last sign is deleted.
Solution:   Add the 'signcolumn' option. (Christian Brabandt)
Files:      runtime/doc/options.txt, runtime/optwin.vim, src/edit.c,
            src/move.c, src/option.c, src/option.h, src/proto/option.pro,
            src/screen.c, src/structs.h, src/testdir/test_options.vim

Patch 7.4.2202
Problem:    Build fails with small features.
Solution:   Correct option initialization.
Files:      src/option.c

Patch 7.4.2203
Problem:    Test fails with normal features.
Solution:   Check is signs are supported.
Files:      src/testdir/test_options.vim

Patch 7.4.2204
Problem:    It is not easy to get information about buffers, windows and
            tabpages.
Solution:   Add getbufinfo(), getwininfo() and gettabinfo(). (Yegappan
            Lakshmanan)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/dict.c,
            src/evalfunc.c, src/option.c, src/proto/dict.pro,
            src/proto/option.pro, src/proto/window.pro,
            src/testdir/Make_all.mak, src/testdir/test_bufwintabinfo.vim,
            src/window.c, src/Makefile

Patch 7.4.2205
Problem:    'wildignore' always applies to getcompletion().
Solution:   Add an option to use 'wildignore' or not. (Yegappan Lakshmanan)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_cmdline.vim

Patch 7.4.2206
Problem:    Warning for unused function.
Solution:   Put the function inside #ifdef. (John Marriott)
Files:      src/evalfunc.c

Patch 7.4.2207
Problem:    The +xpm feature is not sorted properly in :version output.
Solution:   Move it up. (Tony Mechelynck)
Files:      src/version.c

Patch 7.4.2208
Problem:    Test for mappings is old style.
Solution:   Convert the test to new style.
Files:      src/testdir/test_mapping.vim, src/testdir/test_mapping.in,
            src/testdir/test_mapping.ok, src/Makefile,
            src/testdir/test_alot.vim, src/testdir/Make_all.mak

Patch 7.4.2209
Problem:    Cannot map <M-">. (Stephen Riehm)
Solution:   Solve the memory access problem in another way. (Dominique Pelle)
            Allow for using <M-\"> in a string.
Files:      src/eval.c, src/gui_mac.c, src/misc2.c, src/option.c,
            src/proto/misc2.pro, src/syntax.c, src/term.c,
            src/testdir/test_mapping.vim

Patch 7.4.2210
Problem:    On OSX configure mixes up a Python framework and the Unix layout.
Solution:   Make configure check properly. (Tim D. Smith, closes #980)
Files:      src/configure.in, src/auto/configure

Patch 7.4.2211
Problem:    Mouse support is not automatically enabled with simple term.
Solution:   Recognize "st" and other names. (Manuel Schiller, closes #963)
Files:      src/os_unix.c

Patch 7.4.2212
Problem:    Mark " is not set when closing a window in another tab. (Guraga)
Solution:   Check all tabs for the window to be valid. (based on patch by
            Hirohito Higashi, closes #974)
Files:      src/window.c, src/proto/window.pro, src/buffer.c,
            src/testdir/test_viminfo.vim

Patch 7.4.2213
Problem:    Cannot highlight the "~" lines at the end of a window differently.
Solution:   Add the EndOfBuffer highlighting. (Marco Hinz, James McCoy)
Files:      runtime/doc/options.txt, runtime/doc/syntax.txt, src/option.c,
            src/screen.c, src/syntax.c, src/vim.h

Patch 7.4.2214
Problem:    A font that uses ligatures messes up the screen display.
Solution:   Put spaces between characters when building the glyph table.
            (based on a patch from Manuel Schiller)
Files:      src/gui_gtk_x11.c

Patch 7.4.2215
Problem:    It's not easy to find out if a window is a quickfix or location
            list window.
Solution:   Add "loclist" and "quickfix" entries to the dict returned by
            getwininfo(). (Yegappan Lakshmanan)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_bufwintabinfo.vim

Patch 7.4.2216 (after 7.4.2215)
Problem:    Test fails without the +sign feature.
Solution:   Only check for signcolumn with the +sign feature.
Files:      src/testdir/test_bufwintabinfo.vim

Patch 7.4.2217
Problem:    When using matchaddpos() a character after the end of the line can
            be highlighted.
Solution:   Only highlight existing characters. (Hirohito Higashi)
Files:      src/screen.c, src/structs.h, src/testdir/test_match.vim

Patch 7.4.2218
Problem:    Can't build with +timers when +digraph is not included.
Solution:   Change #ifdef for e_number_exp. (Damien)
Files:      src/globals.h

Patch 7.4.2219
Problem:    Recursive call to substitute gets stuck in sandbox. (Nikolai
            Pavlov)
Solution:   Handle the recursive call. (Christian Brabandt, closes #950)
            Add a test.
Files:      src/ex_cmds.c, src/testdir/test_regexp_latin.vim

Patch 7.4.2220
Problem:    printf() gives an error when the argument for %s is not a string.
            (Ozaki Kiichi)
Solution:   Behave like invoking string() on the argument. (Ken Takata)
Files:      runtime/doc/eval.txt, src/message.c, src/testdir/test_expr.vim

Patch 7.4.2221
Problem:    printf() does not support binary format.
Solution:   Add %b and %B. (Ozaki Kiichi)
Files:      runtime/doc/eval.txt, src/message.c, src/testdir/test_expr.vim

Patch 7.4.2222
Problem:    Sourcing a script where a character has 0x80 as a second byte does
            not work. (Filipe L B Correia)
Solution:   Turn 0x80 into K_SPECIAL KS_SPECIAL KE_FILLER. (Christian
            Brabandt, closes #728)  Add a test case.
Files:      src/getchar.c, src/proto/getchar.pro, src/misc1.c,
            src/testdir/test_regexp_utf8.vim

Patch 7.4.2223
Problem:    Buffer overflow when using latin1 character with feedkeys().
Solution:   Check for an illegal character.  Add a test.
Files:      src/testdir/test_regexp_utf8.vim, src/testdir/test_source_utf8.vim,
            src/testdir/test_alot_utf8.vim, src/Makefile, src/getchar.c,
            src/macros.h, src/evalfunc.c, src/os_unix.c, src/os_win32.c,
            src/spell.c,

Patch 7.4.2224
Problem:    Compiler warnings with older compiler and 64 bit numbers.
Solution:   Add "LL" to large values. (Mike Williams)
Files:      src/eval.c, src/evalfunc.c

Patch 7.4.2225
Problem:    Crash when placing a sign in a deleted buffer.
Solution:   Check for missing buffer name. (Dominique Pelle). Add a test.
Files:      src/ex_cmds.c, src/testdir/test_signs.vim

Patch 7.4.2226
Problem:    The field names used by getbufinfo(), gettabinfo() and
            getwininfo() are not consistent.
Solution:   Use bufnr, winnr and tabnr. (Yegappan Lakshmanan)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_bufwintabinfo.vim

Patch 7.4.2227
Problem:    Tab page tests are old style.
Solution:   Change into new style tests. (Hirohito Higashi)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test62.in,
            src/testdir/test62.ok, src/testdir/test_alot.vim,
            src/testdir/test_tabpage.vim

Patch 7.4.2228
Problem:    Test files have inconsistent modelines.
Solution:   Don't set 'tabstop' to 2, use 'sts' and 'sw'.
Files:      src/testdir/README.txt, src/testdir/test_backspace_opt.vim,
            src/testdir/test_digraph.vim, src/testdir/test_gn.vim
            src/testdir/test_help_tagjump.vim,
            src/testdir/test_increment_dbcs.vim,
            src/testdir/test_increment.vim, src/testdir/test_match.vim,
            src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim,
            src/testdir/test_regexp_latin.vim, src/testdir/test_timers.vim

Patch 7.4.2229
Problem:    Startup test fails on Solaris.
Solution:   Recognize a character device. (Danek Duvall)
Files:      src/buffer.c, src/fileio.c, src/proto/fileio.pro, src/vim.h

Patch 7.4.2230
Problem:    There is no equivalent of 'smartcase' for a tag search.
Solution:   Add value "followscs" and "smart" to 'tagcase'. (Christian
            Brabandt, closes #712) Turn tagcase test into new style.
Files:      runtime/doc/options.txt, runtime/doc/tagsrch.txt, src/option.h,
            src/tag.c, src/search.c, src/proto/search.pro,
            src/testdir/test_tagcase.in, src/testdir/test_tagcase.ok,
            src/testdir/test_tagcase.vim, src/Makefile,
            src/testdir/Make_all.mak, src/testdir/test_alot.vim

Patch 7.4.2231
Problem:    ":oldfiles" output is a very long list.
Solution:   Add a pattern argument. (Coot, closes #575)
Files:      runtime/doc/starting.txt, src/ex_cmds.h, src/eval.c,
            src/ex_cmds.c, src/proto/eval.pro, src/proto/ex_cmds.pro,
            src/testdir/test_viminfo.vim

Patch 7.4.2232
Problem:    The default ttimeoutlen is very long.
Solution:   Use "100". (Hirohito Higashi)
Files:      runtime/defaults.vim

Patch 7.4.2233
Problem:    Crash when using funcref() with invalid name. (Dominique Pelle)
Solution:   Check for NULL translated name.
Files:      src/evalfunc.c, src/testdir/test_expr.vim

Patch 7.4.2234
Problem:    Can't build with +eval but without +quickfix. (John Marriott)
Solution:   Move skip_vimgrep_pat() to separate #ifdef block.
Files:      src/quickfix.c

Patch 7.4.2235
Problem:    submatch() does not check for a valid argument.
Solution:   Give an error if the argument is out of range. (Dominique Pelle)
Files:      src/evalfunc.c, src/testdir/test_expr.vim

Patch 7.4.2236
Problem:    The 'langnoremap' option leads to double negatives.  And it does
            not work for the last character of a mapping.
Solution:   Add 'langremap' with the opposite value.  Keep 'langnoremap' for
            backwards compatibility.  Make it work for the last character of a
            mapping.  Make the test work.
Files:      runtime/doc/options.txt, runtime/defaults.vim, src/option.c,
            src/option.h, src/macros.h, src/testdir/test_mapping.vim

Patch 7.4.2237
Problem:    Can't use "." and "$" with ":tab".
Solution:   Support a range for ":tab". (Hirohito Higashi)
Files:      runtime/doc/tabpage.txt, src/ex_docmd.c,
            src/testdir/test_tabpage.vim

Patch 7.4.2238
Problem:    With SGR mouse reporting (suckless terminal) the mouse release and
            scroll up/down is confused.
Solution:   Don't see a release as a scroll up/down. (Ralph Eastwood)
Files:      src/term.c

Patch 7.4.2239
Problem:    Warning for missing declaration of skip_vimgrep_pat(). (John
            Marriott)
Solution:   Move it to another file.
Files:      src/quickfix.c, src/proto/quickfix.pro, src/ex_cmds.c,
            src/proto/ex_cmds.pro

Patch 7.4.2240
Problem:    Tests using the sleep time can be flaky.
Solution:   Use reltime() if available. (Partly by Shane Harper)
Files:      src/testdir/shared.vim, src/testdir/test_timers.vim

Patch 7.4.2241 (after 7.4.2240)
Problem:    Timer test sometimes fails.
Solution:   Increase the maximum time for repeating timer.
Files:      src/testdir/test_timers.vim

Patch 7.4.2242 (after 7.4.2240)
Problem:    Timer test sometimes fails.
Solution:   Increase the maximum time for callback timer test.
Files:      src/testdir/test_timers.vim

Patch 7.4.2243
Problem:    Warning for assigning negative value to unsigned. (Danek Duvall)
Solution:   Make cterm_normal_fg_gui_color and _bg_ guicolor_T, cast to long_u
            only when an unsigned is needed.
Files:      src/structs.h, src/globals.h, src/screen.c, src/term.c,
            src/syntax.c, src/gui_gtk_x11.c, src/gui.c, src/gui_mac.c,
            src/gui_photon.c, src/gui_w32.c, src/gui_x11.c,
            src/proto/term.pro, src/proto/gui_gtk_x11.pro,
            src/proto/gui_mac.pro, src/proto/gui_photon.pro,
            src/proto/gui_w32.pro, src/proto/gui_x11.pro

Patch 7.4.2244
Problem:    Adding pattern to ":oldfiles" is not a generic solution.
Solution:   Add the ":filter /pat/ cmd" command modifier.  Only works for some
            commands right now.
Files:      src/structs.h, src/ex_docmd.c, src/ex_cmds.h, src/message.c,
            src/proto/message.pro, runtime/doc/starting.txt,
            runtime/doc/various.txt, src/testdir/test_viminfo.vim,
            src/testdir/test_alot.vim, src/testdir/test_filter_cmd.vim,
            src/Makefile

Patch 7.4.2245 (after 7.4.2244)
Problem:    Filter test fails.
Solution:   Include missing changes.
Files:      src/buffer.c

Patch 7.4.2246 (after 7.4.2244)
Problem:    Oldfiles test fails.
Solution:   Include missing changes.
Files:      src/ex_cmds.c

Patch 7.4.2247 (after 7.4.2244)
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Remove #ifdef.
Files:      src/ex_cmds.c

Patch 7.4.2248
Problem:    When cancelling the :ptjump prompt a preview window is opened for
            a following command.
Solution:   Reset g_do_tagpreview. (Hirohito Higashi)  Add a test.  Avoid that
            the test runner gets stuck in trying to close a window.
Files:      src/tag.c, src/testdir/test_tagjump.vim, src/testdir/runtest.vim

Patch 7.4.2249
Problem:    Missing colon in error message.
Solution:   Add the colon. (Dominique Pelle)
Files:      src/userfunc.c

Patch 7.4.2250
Problem:    Some error messages cannot be translated.
Solution:   Enclose them in _() and N_(). (Dominique Pelle)
Files:      src/channel.c, src/evalfunc.c, src/ex_cmds.c, src/spell.c,
            src/window.c

Patch 7.4.2251
Problem:    In rare cases diffing 4 buffers is not enough.
Solution:   Raise the limit to 8. (closes #1000)
Files:      src/structs.h, runtime/doc/diff.txt

Patch 7.4.2252
Problem:    Compiler warnings for signed/unsigned in expression.
Solution:   Remove type cast. (Dominique Pelle)
Files:      src/vim.h

Patch 7.4.2253
Problem:    Check for Windows 3.1 will always return false.  (Christian
            Brabandt)
Solution:   Remove the dead code.
Files:      src/gui_w32.c, src/evalfunc.c, src/ex_cmds.c, src/option.c,
            src/os_win32.c, src/version.c, src/proto/gui_w32.pro

Patch 7.4.2254
Problem:    Compiler warnings in MzScheme code.
Solution:   Add UNUSED.  Remove unreachable code.
Files:      src/if_mzsch.c

Patch 7.4.2255
Problem:    The script that checks translations can't handle plurals.
Solution:   Check for plural msgid and msgstr entries.  Leave the cursor on
            the first error.
Files:      src/po/check.vim

Patch 7.4.2256
Problem:    Coverity complains about null pointer check.
Solution:   Remove wrong and superfluous error check.
Files:      src/eval.c

Patch 7.4.2257
Problem:    Coverity complains about not checking for NULL.
Solution:   Check for out of memory.
Files:      src/if_py_both.h

Patch 7.4.2258
Problem:    Two JSON messages are sent without a separator.
Solution:   Separate messages with a NL. (closes #1001)
Files:      src/json.c, src/channel.c, src/vim.h, src/testdir/test_channel.py,
            src/testdir/test_channel.vim, runtime/doc/channel.txt

Patch 7.4.2259
Problem:    With 'incsearch' can only see the next match.
Solution:   Make CTRL-N/CTRL-P move to the previous/next match. (Christian
            Brabandt)
Files:      runtime/doc/cmdline.txt, src/ex_getln.c, src/testdir/Make_all.mak,
            src/testdir/test_search.vim, src/Makefile

Patch 7.4.2260 (after 7.4.2258)
Problem:    Channel test is flaky.
Solution:   Add a newline to separate JSON messages.
Files:      src/testdir/test_channel.vim

Patch 7.4.2261 (after 7.4.2259)
Problem:    Build fails with small features.
Solution:   Move "else" inside the #ifdef.
Files:      src/ex_getln.c

Patch 7.4.2262
Problem:    Fail to read register content from viminfo if it is 438 characters
            long. (John Chen)
Solution:   Adjust the check for line wrapping. (closes #1010)
Files:      src/testdir/test_viminfo.vim, src/ex_cmds.c

Patch 7.4.2263
Problem:    :filter does not work for many commands.  Can only get matching
            messages.
Solution:   Make :filter work for :command, :map, :list, :number and :print.
            Make ":filter!" show non-matching lines.
Files:      src/getchar.c, src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c,
            src/message.c, src/structs.h, src/testdir/test_filter_cmd.vim

Patch 7.4.2264
Problem:    When adding entries to an empty quickfix list the title is reset.
Solution:   Improve handling of the title. (Yegappan Lakshmanan)
Files:      src/testdir/test_quickfix.vim, src/quickfix.c

Patch 7.4.2265
Problem:    printf() isn't tested much.
Solution:   Add more tests for printf(). (Dominique Pelle)
Files:      src/testdir/test_expr.vim

Patch 7.4.2266 (after 7.4.2265)
Problem:    printf() test fails on Windows. "-inf" is not used.
Solution:   Check for Windows-specific values for "nan".  Add sign to "inf"
            when appropriate.
Files:      src/message.c, src/testdir/test_expr.vim

Patch 7.4.2267 (after 7.4.2266)
Problem:    Build fails on MS-Windows.
Solution:   Add define to get isinf().
Files:      src/message.c

Patch 7.4.2268 (after 7.4.2259)
Problem:    Using CTRL-N and CTRL-P for incsearch shadows completion keys.
Solution:   Use CTRL-T and CTRL-G instead.
Files:      runtime/doc/cmdline.txt, src/ex_getln.c,
            src/testdir/test_search.vim

Patch 7.4.2269
Problem:    Using 'hlsearch' highlighting instead of matchpos if there is no
            search match.
Solution:   Pass NULL as last item to next_search_hl() when searching for
            'hlsearch' match. (Shane Harper, closes #1013)
Files:      src/screen.c, src/testdir/test_match.vim.

Patch 7.4.2270
Problem:    Insufficient testing for NUL bytes on a raw channel.
Solution:   Add a test for writing and reading.
Files:      src/testdir/test_channel.vim

Patch 7.4.2271
Problem:    Netbeans test doesn't read settings from file.
Solution:   Use "-Xnbauth".
Files:      src/testdir/test_netbeans.vim

Patch 7.4.2272
Problem:    getbufinfo(), getwininfo() and gettabinfo() are inefficient.
Solution:   Instead of making a copy of the variables dictionary, use a
            reference.
Files:      src/evalfunc.c

Patch 7.4.2273
Problem:    getwininfo() and getbufinfo() are inefficient.
Solution:   Do not make a copy of all window/buffer-local options.  Make it
            possible to get them with gettabwinvar() or getbufvar().
Files:      src/evalfunc.c, src/eval.c, src/testdir/test_bufwintabinfo.vim,
            runtime/doc/eval.txt

Patch 7.4.2274
Problem:    Command line completion on "find **/filename" drops sub-directory.
Solution:   Handle this case separately. (Harm te Hennepe, closes #932, closes
            #939)
Files:      src/misc1.c, src/testdir/test_cmdline.vim

Patch 7.4.2275
Problem:    ":diffoff!" does not remove filler lines.
Solution:   Force a redraw and invalidate the cursor. (closes #1014)
Files:      src/diff.c, src/testdir/test_diffmode.vim

Patch 7.4.2276
Problem:    Command line test fails on Windows when run twice.
Solution:   Wipe the buffer so that the directory can be deleted.
Files:      src/testdir/test_cmdline.vim

Patch 7.4.2277
Problem:    Memory leak in getbufinfo() when there is a sign. (Dominique
            Pelle)
Solution:   Remove extra vim_strsave().
Files:      src/evalfunc.c

Patch 7.4.2278
Problem:    New users have no idea of the 'scrolloff' option.
Solution:   Set 'scrolloff' in defaults.vim.
Files:      runtime/defaults.vim

Patch 7.4.2279
Problem:    Starting diff mode with the cursor in the last line might end up
            only showing one closed fold. (John Beckett)
Solution:   Scroll the window to show the same relative cursor position.
Files:      src/diff.c, src/window.c, src/proto/window.pro

Patch 7.4.2280
Problem:    printf() doesn't handle infinity float values correctly.
Solution:   Add a table with possible infinity values. (Dominique Pelle)
Files:      src/message.c, src/testdir/test_expr.vim

Patch 7.4.2281
Problem:    Timer test fails sometimes.
Solution:   Reduce minimum time by 1 msec.
Files:      src/testdir/test_timers.vim

Patch 7.4.2282
Problem:    When a child process is very fast waiting 10 msec for it is
            noticeable. (Ramel Eshed)
Solution:   Start waiting for 1 msec and gradually increase.
Files:      src/os_unix.c

Patch 7.4.2283
Problem:    Part of ":oldfiles" command isn't cleared. (Lifepillar)
Solution:   Clear the rest of the line. (closes 1018)
Files:      src/ex_cmds.c

Patch 7.4.2284
Problem:    Comment in scope header file is outdated. (KillTheMule)
Solution:   Point to the help instead. (closes #1017)
Files:      src/if_cscope.h

Patch 7.4.2285
Problem:    Generated files are outdated.
Solution:   Generate the files.  Avoid errors when generating prototypes.
Files:      src/if_mzsch.h, src/Makefile, src/option.h, src/os_mac_conv.c,
            src/os_amiga.c, src/vim.h, src/structs.h, src/os_win32.c,
            src/if_lua.c, src/proto/mbyte.pro

Patch 7.4.2286
Problem:    The tee program isn't included.  Makefile contains build
            instructions that don't work.
Solution:   Update the Filelist and build instructions. Remove build
            instructions for DOS and old Windows.  Add the tee program.
Files:      Filelist, Makefile, nsis/gvim.nsi

Patch 7.4.2287
Problem:    The callback passed to ch_sendraw() is not used.
Solution:   Pass the read part, not the send part. (haya14busa, closes #1019)
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.2288
Problem:    MS-Windows build instructions are clumsy. "dosbin" doesn't build.
Solution:   Add rename.bat. Fix building "dosbin".
Files:      Makefile, Filelist, rename.bat

Patch 7.4.2289
Problem:    When installing and $DESTDIR is set the icons probably won't be
            installed.
Solution:   Create the icon directories if $DESTDIR is not empty. (Danek
            Duvall)
Files:      src/Makefile

Patch 7.4.2290
Problem:    Compiler warning in tiny build. (Tony Mechelynck)
Solution:   Add #ifdef around infinity_str().
Files:      src/message.c

Patch 7.4.2291
Problem:    printf() handles floats wrong when there is a sign.
Solution:   Fix placing the sign.  Add tests. (Dominique Pelle)
Files:      src/testdir/test_expr.vim, runtime/doc/eval.txt, src/message.c

Patch 7.4.2292 (after 7.4.2291)
Problem:    Not all systems understand %F in printf().
Solution:   Use %f.
Files:      src/message.c

Patch 7.4.2293
Problem:    Modelines in source code are inconsistent.
Solution:   Use the same line in most files.  Add 'noet'.  (Naruhiko Nishino)
Files:      src/alloc.h, src/arabic.c, src/arabic.h, src/ascii.h,
            src/blowfish.c, src/buffer.c, src/channel.c, src/charset.c,
            src/crypt.c, src/crypt_zip.c, src/dict.c, src/diff.c,
            src/digraph.c, src/dosinst.c, src/dosinst.h, src/edit.c,
            src/eval.c, src/evalfunc.c, src/ex_cmds.c, src/ex_cmds.h,
            src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
            src/farsi.c, src/farsi.h, src/feature.h, src/fileio.c, src/fold.c,
            src/getchar.c, src/glbl_ime.cpp, src/glbl_ime.h, src/globals.h,
            src/gui.c, src/gui.h, src/gui_at_fs.c, src/gui_at_sb.c,
            src/gui_at_sb.h, src/gui_athena.c, src/gui_beval.c,
            src/gui_beval.h, src/gui_gtk.c, src/gui_gtk_f.c, src/gui_gtk_f.h,
            src/gui_gtk_vms.h, src/gui_gtk_x11.c, src/gui_mac.c,
            src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/gui_x11.c,
            src/gui_x11_pm.h, src/gui_xmdlg.c, src/gui_xmebw.c,
            src/gui_xmebw.h, src/gui_xmebwp.h, src/hangulin.c, src/hardcopy.c,
            src/hashtab.c, src/if_cscope.c, src/if_cscope.h, src/if_mzsch.c,
            src/if_mzsch.h, src/if_ole.cpp, src/if_perl.xs, src/if_perlsfio.c,
            src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/if_xcmdsrv.c,
            src/integration.c, src/integration.h, src/iscygpty.c, src/json.c,
            src/json_test.c, src/keymap.h, src/list.c, src/macros.h,
            src/main.c, src/mark.c, src/mbyte.c, src/memfile.c,
            src/memfile_test.c, src/memline.c, src/menu.c, src/message.c,
            src/message_test.c, src/misc1.c, src/misc2.c, src/move.c,
            src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/normal.c,
            src/ops.c, src/option.c, src/option.h, src/os_amiga.c,
            src/os_amiga.h, src/os_beos.c, src/os_beos.h, src/os_dos.h,
            src/os_mac.h, src/os_mac_conv.c, src/os_macosx.m, src/os_mint.h,
            src/os_mswin.c, src/os_qnx.c, src/os_qnx.h, src/os_unix.c,
            src/os_unix.h, src/os_unixx.h, src/os_vms.c, src/os_w32dll.c,
            src/os_w32exe.c, src/os_win32.c, src/os_win32.h, src/popupmnu.c,
            src/proto.h, src/pty.c, src/quickfix.c, src/regexp.c,
            src/regexp.h, src/regexp_nfa.c, src/screen.c, src/search.c,
            src/sha256.c, src/spell.c, src/spell.h, src/spellfile.c,
            src/structs.h, src/syntax.c, src/tag.c, src/term.c, src/term.h,
            src/termlib.c, src/ui.c, src/undo.c, src/uninstal.c,
            src/userfunc.c, src/version.c, src/version.h, src/vim.h,
            src/vim.rc, src/vimio.h, src/vimrun.c, src/winclip.c,
            src/window.c, src/workshop.c, src/workshop.h, src/wsdebug.c,
            src/wsdebug.h, src/xpm_w32.c

Patch 7.4.2294
Problem:    Sign test fails on MS-Windows when using the distributed zip
            archives.
Solution:   Create dummy files instead of relying on files in the pixmaps
            directory.
Files:      src/testdir/test_signs.vim

Patch 7.4.2295 (after 7.4.2293)
Problem:    Cscope test fails.
Solution:   Avoid checking for specific line and column numbers.
Files:      src/testdir/test_cscope.vim

Patch 7.4.2296
Problem:    No tests for :undolist and "U" command.
Solution:   Add tests. (Dominique Pelle)
Files:      src/testdir/test_undo.vim

Patch 7.4.2297
Problem:    When starting a job that reads from a buffer and reaching the end,
            the job hangs.
Solution:   Close the pipe or socket when all lines were read.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 7.4.2298
Problem:    It is not possible to close the "in" part of a channel.
Solution:   Add ch_close_in().
Files:      src/evalfunc.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, runtime/doc/eval.txt,
            runtime/doc/channel.txt

Patch 7.4.2299
Problem:    QuickFixCmdPre and QuickFixCmdPost autocommands are not always
            triggered.
Solution:   Also trigger on ":cexpr", ":cbuffer", etc. (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 7.4.2300
Problem:    Get warning for deleting autocommand group when the autocommand
            using the group is scheduled for deletion. (Pavol Juhas)
Solution:   Check for deleted autocommand.
Files:      src/fileio.c, src/testdir/test_autocmd.vim

Patch 7.4.2301
Problem:    MS-Windows: some files remain after testing.
Solution:   Close the channel output file.  Wait for the file handle to be
            closed before deleting the file.
Files:      src/os_win32.c, src/testdir/test_channel.vim

Patch 7.4.2302
Problem:    Default interface versions for MS-Windows are outdated.
Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it work with
            Ruby 1.9.2.
Files:      src/bigvim.bat, src/bigvim64.bat, src/Make_mvc.mak

Patch 7.4.2303
Problem:    When using "is" the mode isn't always updated.
Solution:   Redraw the command line. (Christian Brabandt)
Files:      src/search.c

Patch 7.4.2304
Problem:    In a timer callback the timer itself can't be found or stopped.
            (Thinca)
Solution:   Do not remove the timer from the list, remember whether it was
            freed.
Files:      src/ex_cmds2.c, src/testdir/test_timers.vim

Patch 7.4.2305
Problem:    Marks, writefile and nested function tests are old style.
Solution:   Turn them into new style tests. (Yegappan Lakshmanan)
Files:      src/testdir/Make_all.mak, src/testdir/test_marks.in,
            src/testdir/test_marks.ok, src/testdir/test_marks.vim,
            src/testdir/test_nested_function.in,
            src/testdir/test_nested_function.ok,
            src/testdir/test_nested_function.vim,
            src/testdir/test_writefile.in, src/testdir/test_writefile.ok,
            src/testdir/test_writefile.vim, src/Makefile

Patch 7.4.2306
Problem:    Default value for 'langremap' is wrong.
Solution:   Set the right value. (Jürgen Krämer)  Add a test.
Files:      src/option.c, src/testdir/test_mapping.vim

Patch 7.4.2307
Problem:    Several tests are old style.
Solution:   Turn them into new style tests. (Yegappan Lakshmanan)
Files:      src/testdir/Make_all.mak, src/testdir/test102.in,
            src/testdir/test102.ok, src/testdir/test46.in,
            src/testdir/test46.ok, src/testdir/test81.in,
            src/testdir/test81.ok, src/testdir/test_charsearch.in,
            src/testdir/test_charsearch.ok, src/testdir/test_charsearch.vim,
            src/testdir/test_fnameescape.vim, src/testdir/test_substitute.vim,
            src/Makefile

Patch 7.4.2308 (after 7.4.2307)
Problem:    Old charsearch test still listed in Makefile.
Solution:   Remove the line.
Files:      src/testdir/Make_all.mak

Patch 7.4.2309
Problem:    Crash when doing tabnext in a BufUnload autocmd. (Dominique Pelle)
Solution:   When detecting that the tab page changed, don't just abort but
            delete the window where w_buffer is NULL.
Files:      src/window.c, src/testdir/test_tabpage.vim

Patch 7.4.2310 (after 7.4.2304)
Problem:    Accessing freed memory when a timer does not repeat.
Solution:   Free after removing it. (Dominique Pelle)
Files:      src/ex_cmds2.c

Patch 7.4.2311
Problem:    Appveyor 64 bit build still using Python 3.4
Solution:   Switch to Python 3.5. (Ken Takata, closes #1032)
Files:      appveyor.yml, src/appveyor.bat

Patch 7.4.2312
Problem:    Crash when autocommand moves to another tab. (Dominique Pelle)
Solution:   When navigating to another window halfway the :edit command go
            back to the right window.
Files:      src/buffer.c, src/ex_cmds.c, src/ex_getln.c, src/ex_docmd.c,
            src/window.c, src/proto/ex_getln.pro, src/testdir/test_tabpage.vim

Patch 7.4.2313
Problem:    Crash when deleting an augroup and listing an autocommand.
            (Dominique Pelle)
Solution:   Make sure deleted_augroup is valid.
Files:      src/fileio.c, src/testdir/test_autocmd.vim

Patch 7.4.2314
Problem:    No error when deleting an augroup while it's the current one.
Solution:   Disallow deleting an augroup when it's the current one.
Files:      src/fileio.c, src/testdir/test_autocmd.vim

Patch 7.4.2315
Problem:    Insufficient testing for Normal mode commands.
Solution:   Add a big test. (Christian Brabandt, closes #1029)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_normal.vim

Patch 7.4.2316
Problem:    Channel sort test is flaky.
Solution:   Add a check the output has been read.
Files:      src/testdir/test_channel.vim

Patch 7.4.2317 (after 7.4.2315)
Problem:    Normal mode tests fail on MS-Windows.
Solution:   Do some tests only on Unix.  Set 'fileformat' to "unix".
Files:      src/testdir/test_normal.vim

Patch 7.4.2318
Problem:    When 'incsearch' is not set CTRL-T and CTRL-G are not inserted as
            before.
Solution:   Move #ifdef and don't use goto.
Files:      src/ex_getln.c

Patch 7.4.2319
Problem:    No way for a system wide vimrc to stop loading defaults.vim.
            (Christian Hesse)
Solution:   Bail out of defaults.vim if skip_defaults_vim was set.
Files:      runtime/defaults.vim

Patch 7.4.2320
Problem:    Redraw problem when using 'incsearch'.
Solution:   Save the current view when deleting characters. (Christian
            Brabandt) Fix that the '" mark is set in the wrong position. Don't
            change the search start when using BS.
Files:      src/ex_getln.c, src/normal.c, src/testdir/test_search.vim

Patch 7.4.2321
Problem:    When a test is commented out we forget about it.
Solution:   Let a test throw an exception with "Skipped" and list skipped test
            functions. (Christian Brabandt)
Files:      src/testdir/Makefile, src/testdir/runtest.vim,
            src/testdir/test_popup.vim, src/testdir/README.txt

Patch 7.4.2322
Problem:    Access memory beyond the end of the line. (Dominique Pelle)
Solution:   Adjust the cursor column.
Files:      src/move.c, src/testdir/test_normal.vim

Patch 7.4.2323
Problem:    Using freed memory when using 'formatexpr'. (Dominique Pelle)
Solution:   Make a copy of 'formatexpr' before evaluating it.
Files:      src/ops.c, src/testdir/test_normal.vim

Patch 7.4.2324
Problem:    Crash when editing a new buffer and BufUnload autocommand wipes
            out the new buffer. (Norio Takagi)
Solution:   Don't allow wiping out this buffer. (partly by Hirohito Higashi)
            Move old style test13 into test_autocmd. Avoid ml_get error when
            editing a file.
Files:      src/structs.h, src/buffer.c, src/ex_cmds.c, src/ex_docmd.c,
            src/window.c, src/testdir/test13.in, src/testdir/test13.ok,
            src/testdir/test_autocmd.vim, src/testdir/Make_all.mak,
            src/Makefile

Patch 7.4.2325 (after 7.4.2324)
Problem:    Tiny build fails.
Solution:   Add #ifdef.
Files:      src/buffer.c

Patch 7.4.2326
Problem:    Illegal memory access when Visual selection starts in invalid
            position. (Dominique Pelle)
Solution:   Correct position when needed.
Files:      src/normal.c, src/misc2.c, src/proto/misc2.pro

Patch 7.4.2327
Problem:    Freeing a variable that is on the stack.
Solution:   Don't free res_tv or err_tv. (Ozaki Kiichi)
Files:      src/channel.c

Patch 7.4.2328
Problem:    Crash when BufWinLeave autocmd goes to another tab page. (Hirohito
            Higashi)
Solution:   Make close_buffer() go back to the right window.
Files:      src/buffer.c, src/testdir/test_autocmd.vim

Patch 7.4.2329
Problem:    Error for min() and max() contains %s. (Nikolai Pavlov)
Solution:   Pass the function name. (closes #1040)
Files:      src/evalfunc.c, src/testdir/test_expr.vim

Patch 7.4.2330
Problem:    Coverity complains about not checking curwin to be NULL.
Solution:   Use firstwin to avoid the warning.
Files:      src/buffer.c

Patch 7.4.2331
Problem:    Using CTRL-X CTRL-V to complete a command line from Insert mode
            does not work after entering an expression on the command line.
Solution:   Don't use "ccline" when not actually using a command line. (test
            by Hirohito Higashi)
Files:      src/edit.c, src/ex_getln.c, src/proto/ex_getln.pro,
            src/testdir/test_popup.vim

Patch 7.4.2332
Problem:    Crash when stop_timer() is called in a callback of a callback.
            Vim hangs when the timer callback uses too much time.
Solution:   Set tr_id to -1 when a timer is to be deleted. Don't keep calling
            callbacks forever. (Ozaki Kiichi)
Files:      src/evalfunc.c, src/ex_cmds2.c, src/structs.h,
            src/proto/ex_cmds2.pro, src/testdir/test_timers.vim

Patch 7.4.2333
Problem:    Outdated comments in test.
Solution:   Cleanup normal mode test. (Christian Brabandt)
Files:      src/testdir/test_normal.vim

Patch 7.4.2334
Problem:    On MS-Windows test_getcwd leaves Xtopdir behind.
Solution:   Set 'noswapfile'. (Michael Soyka)
Files:      src/testdir/test_getcwd.in

Patch 7.4.2335
Problem:    taglist() is slow. (Luc Hermitte)
Solution:   Check for CTRL-C less often when doing a linear search. (closes
            #1044)
Files:      src/tag.c

Patch 7.4.2336
Problem:    Running normal mode tests leave a couple of files behind.
            (Yegappan Lakshmanan)
Solution:   Delete the files. (Christian Brabandt)
Files:      src/testdir/test_normal.vim

Patch 7.4.2337
Problem:    taglist() is still slow. (Luc Hermitte)
Solution:   Check for CTRL-C less often when finding duplicates.
Files:      src/tag.c

Patch 7.4.2338
Problem:    Can't build with small features. (John Marriott)
Solution:   Nearly always define FEAT_TAG_BINS.
Files:      src/feature.h, src/tag.c

Patch 7.4.2339
Problem:    Tab page test fails when run as fake root.
Solution:   Check 'buftype' instead of 'filetype'. (James McCoy, closes #1042)
Files:      src/testdir/test_tabpage.vim

Patch 7.4.2340
Problem:    MS-Windows: Building with Ruby uses old version.
Solution:   Update to 2.2.X. Use clearer name for the API version. (Ken
            Takata)
Files:      Makefile, src/INSTALLpc.txt, src/Make_cyg_ming.mak,
            src/Make_mvc.mak, src/bigvim.bat

Patch 7.4.2341
Problem:    Tiny things.  Test doesn't clean up properly.
Solution:   Adjust comment and white space. Restore option value.
Files:      src/ex_cmds.c, src/message.c, src/testdir/test_autocmd.vim

Patch 7.4.2342
Problem:    Typo in MS-Windows build script.
Solution:   change "w2" to "22".
Files:      src/bigvim.bat

Patch 7.4.2343
Problem:    Too many old style tests.
Solution:   Turn several into new style tests. (Yegappan Lakshmanan)
Files:      src/testdir/Make_all.mak, src/testdir/test101.in,
            src/testdir/test101.ok, src/testdir/test18.in,
            src/testdir/test18.ok, src/testdir/test2.in, src/testdir/test2.ok,
            src/testdir/test21.in, src/testdir/test21.ok,
            src/testdir/test6.in, src/testdir/test6.ok,
            src/testdir/test_arglist.vim, src/testdir/test_charsearch.vim,
            src/testdir/test_fnameescape.vim, src/testdir/test_gf.vim,
            src/testdir/test_hlsearch.vim, src/testdir/test_smartindent.vim,
            src/testdir/test_tagjump.vim, src/Makefile

Patch 7.4.2344
Problem:    The "Reading from channel output..." message can be unwanted.
            Appending to a buffer leaves an empty first line behind.
Solution:   Add the "out_msg" and "err_msg" options. Writing the first line
            overwrites the first, empty line.
Files:      src/structs.h, src/channel.c, src/testdir/test_channel.vim,
            runtime/doc/channel.txt

Patch 7.4.2345 (after 7.4.2340)
Problem:    For MinGW RUBY_API_VER_LONG isn't set correctly.  Many default
            version numbers are outdated.
Solution:   Set RUBY_API_VER_LONG to RUBY_VER_LONG. Use latest stable releases
            for defaults. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 7.4.2346
Problem:    Autocommand test fails when run directly, passes when run as part
            of test_alot.
Solution:   Add command to make the cursor move.  Close a tab page.
Files:      src/testdir/test_autocmd.vim

Patch 7.4.2347
Problem:    Crash when closing a buffer while Visual mode is active.
            (Dominique Pelle)
Solution:   Adjust the position before computing the number of lines.
            When closing the current buffer stop Visual mode.
Files:      src/buffer.c, src/normal.c, src/testdir/test_normal.vim

Patch 7.4.2348
Problem:    Crash on exit when EXITFREE is defined. (Dominique Pelle)
Solution:   Don't access curwin when exiting.
Files:      src/buffer.c

Patch 7.4.2349
Problem:    Valgrind reports using uninitialized memory. (Dominique Pelle)
Solution:   Check the length before checking for a NUL.
Files:      src/message.c

Patch 7.4.2350
Problem:    Test 86 and 87 fail with some version of Python.
Solution:   Unify "can't" and "cannot".  Unify quotes.
Files:      src/testdir/test86.in, src/testdir/test86.ok,
            src/testdir/test87.in, src/testdir/test87.ok

Patch 7.4.2351
Problem:    Netbeans test fails when run from unpacked MS-Windows sources.
Solution:   Open README.txt instead of Makefile.
Files:      src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim

Patch 7.4.2352
Problem:    Netbeans test fails in shadow directory.
Solution:   Also copy README.txt to the shadow directory.
Files:      src/Makefile

Patch 7.4.2353
Problem:    Not enough test coverage for Normal mode commands.
Solution:   Add more tests. (Christian Brabandt)
Files:      src/testdir/test_normal.vim

Patch 7.4.2354
Problem:    The example that explains nested backreferences does not work
            properly with the new regexp engine. (Harm te Hennepe)
Solution:   Also save the end position when adding a state. (closes #990)
Files:      src/regexp_nfa.c, src/testdir/test_regexp_latin.vim

Patch 7.4.2355
Problem:    Regexp fails to match when using "\>\)\?". (Ramel)
Solution:   When a state is already in the list, but addstate_here() is used
            and the existing state comes later, add the new state anyway.
Files:      src/regexp_nfa.c, src/testdir/test_regexp_latin.vim

Patch 7.4.2356
Problem:    Reading past end of line when using previous substitute pattern.
            (Dominique Pelle)
Solution:   Don't set "pat" only set "searchstr".
Files:      src/search.c, src/testdir/test_search.vim

Patch 7.4.2357
Problem:    Attempt to read history entry while not initialized.
Solution:   Skip when the index is negative.
Files:      src/ex_getln.c

Patch 7.4.2358
Problem:    Compiler warnings with Solaris Studio when using GTK3. (Danek
            Duvall)
Solution:   Define FUNC2GENERIC depending on the system. (Kazunobu Kuriyama)
Files:      src/gui.h, src/gui_beval.c, src/gui_gtk_f.c

Patch 7.4.2359
Problem:    Memory leak in timer_start().
Solution:   Check the right field to be NULL.
Files:      src/evalfunc.c, src/testdir/test_timers.vim

Patch 7.4.2360
Problem:    Invalid memory access when formatting. (Dominique Pelle)
Solution:   Make sure cursor line and column are associated.
Files:      src/misc1.c

Patch 7.4.2361
Problem:    Checking for last_timer_id to overflow is not reliable. (Ozaki
            Kiichi)
Solution:   Check for the number not going up.
Files:      src/ex_cmds2.c

Patch 7.4.2362
Problem:    Illegal memory access with ":1@". (Dominique Pelle)
Solution:   Correct cursor column after setting the line number.  Also avoid
            calling end_visual_mode() when not in Visual mode.
Files:      src/ex_docmd.c, src/buffer.c

Patch 7.4.2363
Problem:    Superfluous function prototypes.
Solution:   Remove them.
Files:      src/regexp.c

Patch 7.4.2364
Problem:    Sort test sometimes fails.
Solution:   Add it to the list of flaky tests.
Files:      src/testdir/runtest.vim

Patch 7.4.2365
Problem:    Needless line break. Confusing directory name.
Solution:   Remove line break.  Prepend "../" to "tools".
Files:      Makefile, src/normal.c

Patch 7.4.2366
Problem:    MS-Windows gvim.exe does not have DirectX support.
Solution:   Add the DIRECTX to the script.
Files:      src/bigvim.bat

Patch 7.4.2367 (after 7.4.2364)
Problem:    Test runner misses a comma.
Solution:   Add the comma.
Files:      src/testdir/runtest.vim

Patch 8.0.0001
Problem:    Intro screen still mentions version7. (Paul)
Solution:   Change it to version8.
Files:	    src/version.c

Patch 8.0.0002
Problem:    The netrw plugin does not work.
Solution:   Make it accept version 8.0.
Files:      runtime/autoload/netrw.vim

Patch 8.0.0003
Problem:    getwinvar() returns wrong Value of boolean and number options,
            especially non big endian systems. (James McCoy)
Solution:   Cast the pointer to long or int. (closes #1060)
Files:      src/option.c, src/testdir/test_bufwintabinfo.vim

Patch 8.0.0004
Problem:    A string argument for function() that is not a function name
            results in an error message with NULL. (Christian Brabandt)
Solution:   Use the argument for the error message.
Files:      src/evalfunc.c, src/testdir/test_expr.vim

Patch 8.0.0005
Problem:    Netbeans test fails with Python 3. (Jonathonf)
Solution:   Encode the string before sending it. (closes #1070)
Files:      src/testdir/test_netbeans.py

Patch 8.0.0006
Problem:    ":lb" is interpreted as ":lbottom" while the documentation says it
            means ":lbuffer".
Solution:   Adjust the order of the commands. (haya14busa, closes #1093)
Files:      src/ex_cmds.h

Patch 8.0.0007
Problem:    Vim 7.4 is still mentioned in a few places.
Solution:   Update to Vim 8.  (Uncle Bill, closes #1094)
Files:      src/INSTALLpc.txt, src/vimtutor, uninstal.txt

Patch 8.0.0008
Problem:    Popup complete test is disabled.
Solution:   Enable the test and change the assert. (Hirohito Higashi)
Files:      src/testdir/test_popup.vim

Patch 8.0.0009
Problem:    Unnecessary workaround for AppVeyor.
Solution:   Revert patch 7.4.990. (Christian Brabandt)
Files:      appveyor.yml

Patch 8.0.0010
Problem:    Crash when editing file that starts with crypt header. (igor2x)
Solution:   Check for length of text. (Christian Brabandt) Add a test.
Files:      src/fileio.c, src/testdir/test_crypt.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 8.0.0011
Problem:    On OSX Test_pipe_through_sort_all() sometimes fails.
Solution:   Add the test to the list of flaky tests.
Files:      src/testdir/runtest.vim

Patch 8.0.0012
Problem:    Typos in comments.
Solution:   Change "its" to "it's". (Matthew Brener, closes #1088)
Files:      src/evalfunc.c, src/main.aap, src/nbdebug.c, src/netbeans.c,
            src/quickfix.c, src/workshop.c, src/wsdebug.c

Patch 8.0.0013 (after 8.0.0011)
Problem:    Missing comma in list.
Solution:   Add the comma.
Files:      src/testdir/runtest.vim

Patch 8.0.0014
Problem:    Crypt tests are old style.
Solution:   Convert to new style.
Files:      src/testdir/test71.in, src/testdir/test71.ok,
	    src/testdir/test71a.in, src/testdir/test_crypt.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 8.0.0015
Problem:    Can't tell which part of a channel has "buffered" status.
Solution:   Add an optional argument to ch_status().  Let ch_info() also
            return "buffered" for out_status and err_status.
Files:      src/evalfunc.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, runtime/doc/eval.txt

Patch 8.0.0016 (after 8.0.0015)
Problem:    Build fails.
Solution:   Include missing change.
Files:      src/eval.c

Patch 8.0.0017
Problem:    Cannot get the number of the current quickfix or location list.
Solution:   Use the current list if "nr" in "what" is zero. (Yegappan
            Lakshmanan)  Remove debug command from test.
Files:      src/quickfix.c, src/testdir/test_quickfix.vim,
            runtime/doc/eval.txt

Patch 8.0.0018
Problem:    When using ":sleep" channel input is not handled.
Solution:   When there is a channel check for input also when not in raw mode.
            Check every 100 msec.
Files:      src/channel.c, src/proto/channel.pro, src/ui.c, src/proto/ui.pro,
            src/ex_docmd.c, src/os_amiga.c, src/proto/os_amiga.pro,
            src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c,
            src/proto/os_win32.pro

Patch 8.0.0019
Problem:    Test_command_count is old style.
Solution:   Turn it into a new style test. (Naruhiko Nishino)
            Use more assert functions.
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test_alot.vim,
            src/testdir/test_autocmd.vim, src/testdir/test_command_count.in,
            src/testdir/test_command_count.ok,
            src/testdir/test_command_count.vim

Patch 8.0.0020
Problem:    The regexp engines are not reentrant.
Solution:   Add regexec_T and save/restore the state when needed.
Files:      src/regexp.c, src/regexp_nfa.c, src/testdir/test_expr.vim,
            runtime/doc/eval.txt, runtime/doc/change.txt

Patch 8.0.0021
Problem:    In the GUI when redrawing the cursor it may be on the second half
            of a double byte character.
Solution:   Correct the cursor column. (Yasuhiro Matsumoto)
Files:      src/screen.c

Patch 8.0.0022
Problem:    If a channel in NL mode is missing the NL at the end the remaining
            characters are dropped.
Solution:   When the channel is closed use the remaining text. (Ozaki Kiichi)
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 8.0.0023
Problem:    "gd" and "gD" may find a match in a comment or string.
Solution:   Ignore matches in comments and strings. (Anton Lindqvist)
Files:      src/normal.c, src/testdir/test_goto.vim

Patch 8.0.0024
Problem:    When the netbeans channel closes, "DETACH" is put in the output
            part. (Ozaki Kiichi)
Solution:   Write "DETACH" in the socket part.
Files:      src/channel.c, src/testdir/test_netbeans.vim

Patch 8.0.0025
Problem:    Inconsistent use of spaces vs tabs in gd test.
Solution:   Use tabs. (Anton Lindqvist)
Files:      src/testdir/test_goto.vim

Patch 8.0.0026
Problem:    Error format with %W, %C and %Z does not work. (Gerd Wachsmuth)
Solution:   Skip code when qf_multiignore is set. (Lcd)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0027
Problem:    A channel is closed when reading on stderr or stdout fails, but
            there may still be something to read on another part.
Solution:   Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
Files:      src/channel.c, src/eval.c, src/structs.h, src/proto/channel.pro,
            src/testdir/test_channel.vim

Patch 8.0.0028
Problem:    Superfluous semicolons.
Solution:   Remove them. (Ozaki Kiichi)
Files:      src/ex_cmds2.c

Patch 8.0.0029
Problem:    Code for MS-Windows is complicated because of the exceptions for
            old systems.
Solution:   Drop support for MS-Windows older than Windows XP. (Ken Takata)
Files:      runtime/doc/gui_w32.txt, runtime/doc/os_win32.txt,
            runtime/doc/todo.txt, src/GvimExt/Makefile, src/Make_mvc.mak,
            src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_w32.c,
            src/if_cscope.c, src/misc1.c, src/misc2.c, src/option.c,
            src/os_mswin.c, src/os_win32.c, src/os_win32.h,
            src/proto/os_mswin.pro, src/proto/os_win32.pro, src/version.c

Patch 8.0.0030
Problem:    Mouse mode is not automatically detected for tmux.
Solution:   Check for 'term' to be "tmux". (Michael Henry)
Files:      src/os_unix.c

Patch 8.0.0031
Problem:    After ":bwipeout" 'fileformat' is not set to the right default.
Solution:   Get the default from 'fileformats'. (Mike Williams)
Files:      src/option.c, src/Makefile, src/testdir/test_fileformat.vim,
            src/testdir/test_alot.vim

Patch 8.0.0032
Problem:    Tests may change the input file when something goes wrong.
Solution:   Avoid writing the input file.
Files:      src/testdir/test51.in, src/testdir/test67.in,
            src/testdir/test97.in, src/testdir/test_tabpage.vim

Patch 8.0.0033
Problem:    Cannot use overlapping positions with matchaddpos().
Solution:   Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi)
Files:      src/screen.c, src/testdir/test_match.vim

Patch 8.0.0034
Problem:    No completion for ":messages".
Solution:   Complete "clear" argument. (Hirohito Higashi)
Files:      src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro,
            src/testdir/test_cmdline.vim, src/vim.h,
            runtime/doc/eval.txt, runtime/doc/map.txt

Patch 8.0.0035 (after 7.4.2013)
Problem:    Order of matches for 'omnifunc' is messed up. (Danny Su)
Solution:   Do not set compl_curr_match when called from complete_check().
            (closes #1168)
Files:      src/edit.c, src/evalfunc.c, src/proto/edit.pro, src/search.c,
            src/spell.c, src/tag.c, src/testdir/test76.in,
            src/testdir/test76.ok, src/testdir/test_popup.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 8.0.0036
Problem:    Detecting that a job has finished may take a while.
Solution:   Check for a finished job more often (Ozaki Kiichi)
Files:      src/channel.c, src/os_unix.c, src/os_win32.c,
            src/proto/os_unix.pro, src/proto/os_win32.pro,
            src/testdir/test_channel.vim

Patch 8.0.0037
Problem:    Get E924 when switching tabs. ()
Solution:   Use win_valid_any_tab() instead of win_valid(). (Martin Vuille,
            closes #1167, closes #1171)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0038
Problem:    OPEN_CHR_FILES not defined for FreeBSD using Debian userland
            files.
Solution:   Check for __FreeBSD_kernel__. (James McCoy, closes #1166)
Files:      src/vim.h

Patch 8.0.0039
Problem:    When Vim 8 reads an old viminfo and exits, the next time marks are
            not read from viminfo. (Ned Batchelder)
Solution:   Set a mark when it wasn't set before, even when the timestamp is
            zero. (closes #1170)
Files:      src/mark.c, src/testdir/test_viminfo.vim

Patch 8.0.0040 (after 8.0.0033)
Problem:    Whole line highlighting with matchaddpos() does not work.
Solution:   Check for zero length. (Hirohito Higashi)
Files:      src/screen.c, src/testdir/test_match.vim

Patch 8.0.0041
Problem:    When using Insert mode completion but not actually inserting
            anything an undo item is still created. (Tommy Allen)
Solution:   Do not call stop_arrow() when not inserting anything.
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0042 (after 8.0.0041)
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" change is not saved for undo.  (Tommy Allen)
Solution:   Call stop_arrow() before inserting for pressing Enter.
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0043 (after 8.0.0041)
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" with CTRL-N the change is not saved for undo.  (Tommy
            Allen)
Solution:   Call stop_arrow() before inserting for any key.
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0044
Problem:    In diff mode the cursor may end up below the last line, resulting
            in an ml_get error.
Solution:   Check the line to be valid.
Files:      src/move.c, src/diff.c, src/proto/diff.pro,
            src/testdir/test_diffmode.vim

Patch 8.0.0045
Problem:    Calling job_stop() right after job_start() does not work.
Solution:   Block signals while fork is still busy. (Ozaki Kiichi, closes
            #1155)
Files:      src/auto/configure, src/config.h.in, src/configure.in,
            src/os_unix.c, src/testdir/test_channel.vim

Patch 8.0.0046
Problem:    Using NUL instead of NULL.
Solution:   Change to NULL. (Dominique Pelle)
Files:      src/ex_cmds.c, src/json.c

Patch 8.0.0047
Problem:    Crash when using the preview window from an unnamed buffer.
            (lifepillar)
Solution:   Do not clear the wrong buffer. (closes #1200)
Files:      src/popupmnu.c

Patch 8.0.0048
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. (Yasuhiro Matsumoto, closes #1184)
Files:      src/os_win32.c, src/structs.h

Patch 8.0.0049
Problem:    When a match ends in part of concealed text highlighting, it might
            mess up concealing by resetting prev_syntax_id.
Solution:   Do not reset prev_syntax_id and add a test to verify. (Christian
            Brabandt, closes #1092)
Files:      src/screen.c, src/testdir/test_matchadd_conceal.vim

Patch 8.0.0050
Problem:    An exiting job is detected with a large latency.
Solution:   Check for pending job more often. (Ozaki Kiichi)  Change the
            double loop in mch_inchar() into one.
Files:      src/channel.c, src/os_unix.c, src/testdir/shared.vim,
            src/testdir/test_channel.vim

Patch 8.0.0051 (after 8.0.0048)
Problem:    New code for job_stop() breaks channel test on AppVeyor.
Solution:   Revert the change.
Files:      src/os_win32.c, src/structs.h

Patch 8.0.0052 (after 8.0.0049)
Problem:    Conceal test passes even without the bug fix.
Solution:   Add a redraw command. (Christian Brabandt)
Files:      src/testdir/test_matchadd_conceal.vim

Patch 8.0.0053 (after 8.0.0047)
Problem:    No test for what 8.0.0047 fixes.
Solution:   Add a test. (Hirohito Higashi)
Files:      src/testdir/test_popup.vim

Patch 8.0.0054 (after 8.0.0051)
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. Now only when there is no job object.
            (Yasuhiro Matsumoto, closes #1203)
Files:      src/os_win32.c

Patch 8.0.0055
Problem:    Minor comment and style deficiencies.
Solution:   Update comments and fix style.
Files:      src/buffer.c, src/misc2.c, src/os_unix.c

Patch 8.0.0056
Problem:    When setting 'filetype' there is no check for a valid name.
Solution:   Only allow valid characters in 'filetype', 'syntax' and 'keymap'.
Files:      src/option.c, src/testdir/test_options.vim

Patch 8.0.0057 (after 8.0.0056)
Problem:    Tests fail without the 'keymap' features.
Solution:   Check for feature in test.
Files:      src/testdir/test_options.vim

Patch 8.0.0058
Problem:    Positioning of the popup menu is not good.
Solution:   Position it better. (Hirohito Higashi)
Files:      src/popupmnu.c

Patch 8.0.0059
Problem:    Vim does not build on VMS systems.
Solution:   Various changes for VMS. (Zoltan Arpadffy)
Files:      src/json.c, src/macros.h, src/Make_vms.mms, src/os_unix.c,
            src/os_unix.h, src/os_vms.c, src/os_vms_conf.h,
            src/proto/os_vms.pro, src/testdir/Make_vms.mms

Patch 8.0.0060
Problem:    When using an Ex command for 'keywordprg' it is escaped as with a
            shell command. (Romain Lafourcade)
Solution:   Escape for an Ex command. (closes #1175)
Files:      src/normal.c, src/testdir/test_normal.vim

Patch 8.0.0061 (after 8.0.0058)
Problem:    Compiler warning for unused variable.
Solution:   Add #ifdef. (John Marriott)
Files:      src/popupmnu.c

Patch 8.0.0062
Problem:    No digraph for HORIZONTAL ELLIPSIS.
Solution:   Use ",.". (Hans Ginzel, closes #1226)
Files:      src/digraph.c, runtime/doc/digraph.txt

Patch 8.0.0063
Problem:    Compiler warning for comparing with unsigned. (Zoltan Arpadffy)
Solution:   Change <= to ==.
Files:      src/undo.c

Patch 8.0.0064 (after 8.0.0060)
Problem:    Normal test fails on MS-Windows.
Solution:   Don't try using an illegal file name.
Files:      src/testdir/test_normal.vim

Patch 8.0.0065 (after 8.0.0056)
Problem:    Compiler warning for unused function in tiny build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
Files:      src/option.c

Patch 8.0.0066
Problem:    when calling an operator function when 'linebreak' is set, it is
            internally reset before calling the operator function.
Solution:   Restore 'linebreak' before calling op_function(). (Christian
            Brabandt)
Files:      src/normal.c, src/testdir/test_normal.vim

Patch 8.0.0067
Problem:    VMS has a problem with infinity.
Solution:   Avoid an overflow. (Zoltan Arpadffy)
Files:      src/json.c, src/macros.h

Patch 8.0.0068
Problem:    Checking did_throw after executing autocommands is wrong. (Daniel
            Hahler)
Solution:   Call aborting() instead, and only when autocommands were executed.
Files:      src/quickfix.c, src/if_cscope.c, src/testdir/test_quickfix.vim

Patch 8.0.0069
Problem:    Compiler warning for self-comparison.
Solution:   Define ONE_WINDOW and add #ifdef.
Files:      src/globals.h, src/buffer.c, src/ex_docmd.c, src/move.c,
            src/screen.c, src/quickfix.c, src/window.c

Patch 8.0.0070
Problem:    Tests referred in Makefile that no longer exist.
Solution:   Remove test71 and test74 entries. (Michael Soyka)
Files:      src/testdir/Mak_ming.mak

Patch 8.0.0071
Problem:    Exit value from a shell command is wrong. (Hexchain Tong)
Solution:   Do not check for ended jobs while waiting for a shell command.
            (ichizok, closes #1196)
Files:      src/os_unix.c

Patch 8.0.0072
Problem:    MS-Windows: Crash with long font name. (Henry Hu)
Solution:   Fix comparing with LF_FACESIZE. (Ken Takata, closes #1243)
Files:      src/os_mswin.c

Patch 8.0.0073 (after 8.0.0069)
Problem:    More comparisons between firstwin and lastwin.
Solution:   Use ONE_WINDOW for consistency. (Hirohito Higashi)
Files:      src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/option.c,
            src/window.c

Patch 8.0.0074
Problem:    Cannot make Vim fail on an internal error.
Solution:   Add IEMSG() and IEMSG2(). (Dominique Pelle)  Avoid reporting an
            internal error without mentioning where.
Files:      src/globals.h, src/blowfish.c, src/dict.c, src/edit.c, src/eval.c,
            src/evalfunc.c, src/ex_eval.c, src/getchar.c, src/gui_beval.c,
            src/gui_w32.c, src/hangulin.c, src/hashtab.c, src/if_cscope.c,
            src/json.c, src/memfile.c, src/memline.c, src/message.c,
            src/misc2.c, src/option.c, src/quickfix.c, src/regexp.c,
            src/spell.c, src/undo.c, src/userfunc.c, src/vim.h, src/window.c,
            src/proto/misc2.pro, src/proto/message.pro, src/Makefile

Patch 8.0.0075
Problem:    Using number for exception type lacks type checking.
Solution:   Use an enum.
Files:      src/structs.h, src/ex_docmd.c, src/ex_eval.c,
            src/proto/ex_eval.pro

Patch 8.0.0076
Problem:    Channel log has double parens ()().
Solution:   Remove () for write_buf_line. (Yasuhiro Matsumoto)
Files:      src/channel.c

Patch 8.0.0077
Problem:    The GUI code is not tested by Travis.
Solution:   Install the virtual framebuffer.
Files:      .travis.yml

Patch 8.0.0078
Problem:    Accessing freed memory in quickfix.
Solution:   Reset pointer when freeing 'errorformat'. (Dominique Pelle)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0079
Problem:    Accessing freed memory in quickfix. (Dominique Pelle)
Solution:   Do not free the current list when adding to it.
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0080
Problem:    The OS X build fails on Travis.
Solution:   Skip the virtual framebuffer on OS X.
Files:      .travis.yml

Patch 8.0.0081
Problem:    Inconsistent function names.
Solution:   Rename do_cscope to ex_cscope.  Clean up comments.
Files:      src/ex_cmds.h, src/if_cscope.c, src/ex_docmd.c,
            src/proto/if_cscope.pro

Patch 8.0.0082
Problem:    Extension for configure should be ".ac".
Solution:   Rename configure.in to configure.ac. (James McCoy, closes #1173)
Files:      src/configure.in, src/configure.ac, Filelist, src/Makefile,
            src/blowfish.c, src/channel.c, src/config.h.in, src/main.aap,
            src/os_unix.c, src/INSTALL, src/mysign

Patch 8.0.0083
Problem:    Using freed memory with win_getid(). (Dominique Pelle)
Solution:   For the current tab use curwin.
Files:      src/window.c, src/testdir/test_window_id.vim

Patch 8.0.0084
Problem:    Using freed memory when adding to a quickfix list. (Dominique
            Pelle)
Solution:   Clear the directory name.
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0085
Problem:    Using freed memory with recursive function call. (Dominique Pelle)
Solution:   Make a copy of the function name.
Files:      src/eval.c, src/testdir/test_nested_function.vim

Patch 8.0.0086
Problem:    Cannot add a comment after ":hide". (Norio Takagi)
Solution:   Make it work, add a test. (Hirohito Higashi)
Files:      src/Makefile, src/ex_cmds.h, src/ex_docmd.c,
            src/testdir/Make_all.mak, src/testdir/test_hide.vim

Patch 8.0.0087
Problem:    When the channel callback gets job info the job may already have
            been deleted. (lifepillar)
Solution:   Do not delete the job when the channel is still useful. (ichizok,
            closes #1242, closes #1245)
Files:      src/channel.c, src/eval.c, src/os_unix.c, src/os_win32.c,
            src/structs.h, src/testdir/test_channel.vim

Patch 8.0.0088
Problem:    When a test fails in Setup or Teardown the problem is not reported.
Solution:   Add a try/catch. (Hirohito Higashi)
Files:      src/testdir/runtest.vim

Patch 8.0.0089
Problem:    Various problems with GTK 3.22.2.
Solution:   Fix the problems, add #ifdefs. (Kazunobu Kuriyama)
Files:      src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c

Patch 8.0.0090
Problem:    Cursor moved after last character when using 'breakindent'.
Solution:   Fix the cursor positioning.  Turn the breakindent test into new
            style.  (Christian Brabandt)
Files:      src/screen.c, src/testdir/Make_all.mak,
            src/testdir/test_breakindent.in, src/testdir/test_breakindent.ok,
            src/testdir/test_breakindent.vim, src/Makefile

Patch 8.0.0091
Problem:    Test_help_complete sometimes fails in MS-Windows console.
Solution:   Use getcompletion() instead of feedkeys() and command line
            completion. (Hirohito Higashi)
Files:      src/testdir/test_help_tagjump.vim

Patch 8.0.0092
Problem:    C indenting does not support nested namespaces that C++ 17 has.
Solution:   Add check that passes double colon inside a name. (Pauli, closes
            #1214)
Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 8.0.0093
Problem:    Not using multiprocess build feature.
Solution:   Enable multiprocess build with MSVC 10. (Ken Takata)
Files:      src/Make_mvc.mak

Patch 8.0.0094
Problem:    When vimrun.exe is not found the error message is not properly
            encoded.
Solution:   Use utf-16 and MessageBoxW(). (Ken Takata)
Files:      src/os_win32.c

Patch 8.0.0095
Problem:    Problems with GTK 3.22.2 fixed in 3.22.4.
Solution:   Adjust the #ifdefs. (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 8.0.0096
Problem:    When the input or output is not a tty Vim appears to hang.
Solution:   Add the --ttyfail argument.  Also add the "ttyin" and "ttyout"
            features to be able to check in Vim script.
Files:      src/globals.h, src/structs.h, src/main.c, src/evalfunc.c,
            runtime/doc/starting.txt, runtime/doc/eval.txt

Patch 8.0.0097
Problem:    When a channel callback consumes a lot of time Vim becomes
            unresponsive. (skywind)
Solution:   Bail out of checking channel readahead after 100 msec.
Files:      src/os_unix.c, src/misc2.c, src/vim.h, src/os_win32.c,
            src/channel.c

Patch 8.0.0098 (after 8.0.0097)
Problem:    Can't build on MS-Windows.
Solution:   Add missing parenthesis.
Files:      src/vim.h

Patch 8.0.0099
Problem:    Popup menu always appears above the cursor when it is in the lower
            half of the screen. (Matt Gardner)
Solution:   Compute the available space better. (Hirohito Higashi,
            closes #1241)
Files:      src/popupmnu.c

Patch 8.0.0100
Problem:    Options that are a file name may contain non-filename characters.
Solution:   Check for more invalid characters.
Files:      src/option.c

Patch 8.0.0101
Problem:    Some options are not strictly checked.
Solution:   Add flags for stricter checks.
Files:      src/option.c

Patch 8.0.0102 (after 8.0.0101)
Problem:    Cannot set 'dictionary' to a path.
Solution:   Allow for slash and backslash.  Add a test (partly by Daisuke
            Suzuki, closes #1279, closes #1284)
Files:      src/option.c, src/testdir/test_options.vim

Patch 8.0.0103
Problem:    May not process channel readahead. (skywind)
Solution:   If there is readahead don't block on input.
Files:      src/channel.c, src/proto/channel.pro, src/os_unix.c,
            src/os_win32.c, src/misc2.c

Patch 8.0.0104
Problem:    Value of 'thesaurus' option not checked properly.
Solution:   Add P_NDNAME flag. (Daisuke Suzuki)
Files:      src/option.c, src/testdir/test_options.vim

Patch 8.0.0105
Problem:    When using ch_read() with zero timeout, can't tell the difference
            between reading an empty line and nothing available.
Solution:   Add ch_canread().
Files:      src/evalfunc.c, src/channel.c, src/proto/channel.pro,
            src/testdir/test_channel.vim, src/testdir/shared.vim,
            runtime/doc/eval.txt, runtime/doc/channel.txt

Patch 8.0.0106 (after 8.0.0100)
Problem:    Cannot use a semicolon in 'backupext'. (Jeff)
Solution:   Allow for a few more characters when "secure" isn't set.
Files:      src/option.c

Patch 8.0.0107
Problem:    When reading channel output in a timer, messages may go missing.
            (Skywind)
Solution:   Add the "drop" option.  Write error messages in the channel log.
            Don't have ch_canread() check for the channel being open.
Files:      src/structs.h, src/channel.c, src/message.c, src/evalfunc.c,
            src/proto/channel.pro, runtime/doc/channel.txt

Patch 8.0.0108 (after 8.0.0107)
Problem:    The channel "drop" option is not tested.
Solution:   Add a test.
Files:      src/testdir/test_channel.vim

Patch 8.0.0109
Problem:    Still checking if memcmp() exists while every system should have
            it now.
Solution:   Remove vim_memcmp().  (James McCoy, closes #1295)
Files:      src/config.h.in, src/configure.ac, src/misc2.c, src/os_vms_conf.h,
            src/osdef1.h.in, src/search.c, src/tag.c, src/vim.h

Patch 8.0.0110
Problem:    Drop command doesn't use existing window.
Solution:   Check the window width properly. (Hirohito Higashi)
Files:      src/buffer.c, src/testdir/test_tabpage.vim

Patch 8.0.0111
Problem:    The :history command is not tested.
Solution:   Add tests. (Dominique Pelle)
Files:      runtime/doc/cmdline.txt, src/testdir/test_history.vim

Patch 8.0.0112
Problem:    Tests 92 and 93 are old style.
Solution:   Make test92 and test93 new style. (Hirohito Higashi, closes #1289)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test92.in, src/testdir/test92.ok,
            src/testdir/test93.in, src/testdir/test93.ok,
            src/testdir/test_mksession.vim,
            src/testdir/test_mksession_utf8.vim

Patch 8.0.0113
Problem:    MS-Windows: message box to prompt for saving changes may appear on
            the wrong monitor.
Solution:   Adjust the CenterWindow function. (Ken Takata)
Files:      src/gui_w32.c

Patch 8.0.0114
Problem:    Coding style not optimal.
Solution:   Add spaces. (Ken Takata)
Files:      src/gui_w32.c, src/os_mswin.c

Patch 8.0.0115
Problem:    When building with Cygwin libwinpthread isn't found.
Solution:   Link winpthread statically. (jmmerz, closes #1255, closes #1256)
Files:      src/Make_cyg_ming.mak

Patch 8.0.0116
Problem:    When reading English help and using CTRl-] the language from
            'helplang' is used.
Solution:   Make help tag jumps keep the language. (Tatsuki, test by Hirohito
            Higashi, closes #1249)
Files:      src/tag.c, src/testdir/test_help_tagjump.vim

Patch 8.0.0117
Problem:    Parallel make fails. (J. Lewis Muir)
Solution:   Make sure the objects directory exists. (closes #1259)
Files:      src/Makefile

Patch 8.0.0118
Problem:    "make proto" adds extra function prototype.
Solution:   Add #ifdef.
Files:      src/misc2.c

Patch 8.0.0119
Problem:    No test for using CTRL-R on the command line.
Solution:   Add a test. (Dominique Pelle) And some more.
Files:      src/testdir/test_cmdline.vim

Patch 8.0.0120
Problem:    Channel test is still flaky on OS X.
Solution:   Set the drop argument to "never".
Files:      src/testdir/test_channel.vim

Patch 8.0.0121
Problem:    Setting 'cursorline' changes the curswant column. (Daniel Hahler)
Solution:   Add the P_RWINONLY flag. (closes #1297)
Files:      src/option.c, src/testdir/test_goto.vim

Patch 8.0.0122
Problem:    Channel test is still flaky on OS X.
Solution:   Add a short sleep.
Files:      src/testdir/test_channel.py

Patch 8.0.0123
Problem:    Modern Sun compilers define "__sun" instead of "sun".
Solution:   Use __sun. (closes #1296)
Files:      src/mbyte.c, src/pty.c, src/os_unixx.h, src/vim.h

Patch 8.0.0124
Problem:    Internal error for assert_inrange(1, 1).
Solution:   Adjust number of allowed arguments. (Dominique Pelle)
Files:      src/evalfunc.c, src/testdir/test_assert.vim

Patch 8.0.0125
Problem:    Not enough testing for entering Ex commands.
Solution:   Add test for CTRL-\ e {expr}. (Dominique Pelle)
Files:      src/testdir/test_cmdline.vim

Patch 8.0.0126
Problem:    Display problem with 'foldcolumn' and a wide character.
            (esiegerman)
Solution:   Don't use "extra" but an allocated buffer. (Christian Brabandt,
            closes #1310)
Files:      src/screen.c, src/testdir/Make_all.mak, src/Makefile,
            src/testdir/test_display.vim

Patch 8.0.0127
Problem:    Cancelling completion still inserts text when formatting is done 
            for 'textwidth'. (lacygoill)
Solution:   Don't format when CTRL-E was typed. (Hirohito Higashi,
            closes #1312)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0128 (after 8.0.0126)
Problem:    Display test fails on MS-Windows.
Solution:   Set 'isprint' to "@".
Files:      src/testdir/test_display.vim

Patch 8.0.0129
Problem:    Parallel make still doesn't work. (Lewis Muir)
Solution:   Define OBJ_MAIN.
Files:      src/Makefile

Patch 8.0.0130
Problem:    Configure uses "ushort" while the Vim code doesn't.
Solution:   Use "unsigned short" instead. (Fredrik Fornwall, closes #1314)
Files:      src/configure.ac, src/auto/configure

Patch 8.0.0131
Problem:    Not enough test coverage for syntax commands.
Solution:   Add more tests. (Dominique Pelle)
Files:      src/testdir/test_syntax.vim

Patch 8.0.0132 (after 8.0.0131)
Problem:    Test fails because of using :finish.
Solution:   Change to return.
Files:      src/testdir/test_syntax.vim

Patch 8.0.0133
Problem:    "2;'(" causes ml_get errors in an empty buffer.  (Dominique Pelle)
Solution:   Check the cursor line earlier.
Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

Patch 8.0.0134
Problem:    Null pointer access reported by UBsan.
Solution:   Check curwin->w_buffer is not NULL. (Yegappan Lakshmanan)
Files:      src/ex_cmds.c

Patch 8.0.0135
Problem:    An address relative to the current line, ":.,+3y", does not work
            properly on a closed fold. (Efraim Yawitz)
Solution:   Correct for including the closed fold. (Christian Brabandt)
Files:      src/ex_docmd.c, src/testdir/test_fold.vim,
            src/testdir/Make_all.mak, src/Makefile

Patch 8.0.0136
Problem:    When using indent folding and changing indent the wrong fold is
            opened. (Jonathan Fudger)
Solution:   Open the fold under the cursor a bit later. (Christian Brabandt)
Files:      src/ops.c, src/testdir/test_fold.vim

Patch 8.0.0137
Problem:    When 'maxfuncdepth' is set above 200 the nesting is limited to
            200. (Brett Stahlman)
Solution:   Allow for Ex command recursion depending on 'maxfuncdepth'.
Files:      src/ex_docmd.c, src/testdir/test_nested_function.vim

Patch 8.0.0138 (after 8.0.0137)
Problem:    Small build fails.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.0.0139 (after 8.0.0135)
Problem:    Warning for unused argument.
Solution:   Add UNUSED.
Files:      src/ex_docmd.c

Patch 8.0.0140
Problem:    Pasting inserted text in Visual mode does not work properly.
            (Matthew Malcomson)
Solution:   Stop Visual mode before stuffing the inserted text. (Christian
            Brabandt, from neovim #5709)
Files:      src/ops.c, src/testdir/test_visual.vim

Patch 8.0.0141 (after 8.0.0137)
Problem:    Nested function test fails on AppVeyor.
Solution:   Disable the test on Windows for now.
Files:      src/testdir/test_nested_function.vim

Patch 8.0.0142
Problem:    Normal colors are wrong with 'termguicolors'.
Solution:   Initialize to INVALCOLOR instead of zero. (Ben Jackson, closes
            #1344)
Files:      src/syntax.c

Patch 8.0.0143
Problem:    Line number of current buffer in getbufinfo() is wrong.
Solution:   For the current buffer use the current line number. (Ken Takata)
Files:      src/evalfunc.c

Patch 8.0.0144
Problem:    When using MSVC the GvimExt directory is cleaned twice.
Solution:   Remove the lines. (Ken Takata)
Files:      src/Make_mvc.mak

Patch 8.0.0145
Problem:    Running tests on MS-Windows is a little bit noisy.
Solution:   Redirect some output to "nul". (Ken Takata)
Files:      src/testdir/Make_dos.mak

Patch 8.0.0146
Problem:    When using 'termguicolors' on MS-Windows the RGB definition causes
            the colors to be wrong.
Solution:   Undefined RGB and use our own. (Gabriel Barta)
Files:      src/term.c

Patch 8.0.0147
Problem:    searchpair() does not work when 'magic' is off. (Chris Paul)
Solution:   Add \m in the pattern. (Christian Brabandt, closes #1341)
Files:      src/evalfunc.c, src/testdir/test_search.vim

Patch 8.0.0148
Problem:    When a C preprocessor statement has two line continuations the
            following line does not have the right indent. (Ken Takata)
Solution:   Add the indent of the previous continuation line. (Hirohito
            Higashi)
Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 8.0.0149
Problem:    ":earlier" and ":later" do not work after startup or reading the
            undo file.
Solution:   Use absolute time stamps instead of relative to the Vim start
            time. (Christian Brabandt, Pavel Juhas, closes #1300, closes
            #1254)
Files:      src/testdir/test_undo.vim, src/undo.c

Patch 8.0.0150
Problem:    When the pattern of :filter does not have a separator then
            completion of the command fails.
Solution:   Skip over the pattern. (Ozaki Kiichi, closes #1299)
Files:      src/ex_docmd.c, src/testdir/test_filter_cmd.vim

Patch 8.0.0151
Problem:    To pass buffer content to system() and systemlist() one has to
            first create a string or list.
Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
Files:      runtime/doc/eval.txt, src/Makefile, src/evalfunc.c,
            src/testdir/Make_all.mak, src/testdir/test_system.vim

Patch 8.0.0152
Problem:    Running the channel test creates channellog.
Solution:   Delete the debug line.
Files:      src/testdir/test_channel.vim

Patch 8.0.0153 (after 8.0.0151)
Problem:    system() test fails on MS-Windows.
Solution:   Deal with extra space and CR.
Files:      src/testdir/test_system.vim

Patch 8.0.0154 (after 8.0.0151)
Problem:    system() test fails on OS/X.
Solution:   Deal with leading spaces.
Files:      src/testdir/test_system.vim

Patch 8.0.0155
Problem:    When sorting zero elements a NULL pointer is passed to qsort(),
            which ubsan warns for.
Solution:   Don't call qsort() if there are no elements. (Dominique Pelle)
Files:      src/syntax.c

Patch 8.0.0156
Problem:    Several float functions are not covered by tests.
Solution:   Add float tests. (Dominique Pelle)
Files:      src/Makefile, src/testdir/test_alot.vim,
            src/testdir/test_float_func.vim

Patch 8.0.0157
Problem:    No command line completion for ":syntax spell" and ":syntax sync".
Solution:   Implement the completion. (Dominique Pelle)
Files:      src/syntax.c, src/testdir/test_syntax.vim

Patch 8.0.0158 (after 8.0.0156)
Problem:    On MS-Windows some float functions return a different value when
            passed unusual values.  strtod() doesn't work for "inf" and "nan".
Solution:   Accept both results.  Fix str2float() for MS-Windows.  Also
            reorder assert function arguments.
Files:      src/testdir/test_float_func.vim, src/eval.c

Patch 8.0.0159
Problem:    Using a NULL pointer when using feedkeys() to trigger drawing a
            tabline.
Solution:   Skip drawing a tabline if TabPageIdxs is NULL. (Dominique Pelle)
            Also fix recursing into getcmdline() from the cmd window.
Files:      src/screen.c, src/ex_getln.c

Patch 8.0.0160
Problem:    EMSG() is sometimes used for internal errors.
Solution:   Change them to IEMSG(). (Dominique Pelle)  And a few more.
Files:      src/regexp_nfa.c, src/channel.c, src/eval.c

Patch 8.0.0161 (after 8.0.0159)
Problem:    Build fails when using small features.
Solution:   Update #ifdef for using save_ccline. (Hirohito Higashi)
Files:      src/ex_getln.c

Patch 8.0.0162
Problem:    Build error on Fedora 23 with small features and gnome2.
Solution:   Undefine ngettext(). (Hirohito Higashi)
Files:      src/gui_gtk.c, src/gui_gtk_x11.c

Patch 8.0.0163
Problem:    Ruby 2.4 no longer supports rb_cFixnum.
Solution:   move rb_cFixnum into an #ifdef. (Kazuki Sakamoto, closes #1365)
Files:      src/if_ruby.c

Patch 8.0.0164
Problem:    Outdated and misplaced comments.
Solution:   Fix the comments.
Files:      src/charset.c, src/getchar.c, src/list.c, src/misc2.c,
            src/testdir/README.txt

Patch 8.0.0165
Problem:    Ubsan warns for integer overflow.
Solution:   Swap two conditions. (Dominique Pelle)
Files:      src/regexp_nfa.c

Patch 8.0.0166
Problem:    JSON with a duplicate key gives an internal error. (Lcd)
Solution:   Give a normal error.  Avoid an error when parsing JSON from a
            remote client fails.
Files:      src/evalfunc.c, src/json.c, src/channel.c,
            src/testdir/test_json.vim

Patch 8.0.0167
Problem:    str2nr() and str2float() do not always work with negative values.
Solution:   Be more flexible about handling signs. (LemonBoy, closes #1332)
            Add more tests.
Files:      src/evalfunc.c, src/testdir/test_float_func.vim,
            src/testdir/test_functions.vim, src/testdir/test_alot.vim,
            src/Makefile

Patch 8.0.0168
Problem:    Still some float functionality is not covered by tests.
Solution:   Add more tests. (Dominique Pelle, closes #1364)
Files:      src/testdir/test_float_func.vim

Patch 8.0.0169
Problem:    For complicated string json_decode() may run out of stack space.
Solution:   Change the recursive solution into an iterative solution.
Files:      src/json.c

Patch 8.0.0170 (after 8.0.0169)
Problem:    Channel test fails for using freed memory.
Solution:   Fix memory use in json_decode().
Files:      src/json.c

Patch 8.0.0171
Problem:    JS style JSON does not support single quotes.
Solution:   Allow for single quotes. (Yasuhiro Matsumoto, closes #1371)
Files:      src/json.c, src/testdir/test_json.vim, src/json_test.c,
            runtime/doc/eval.txt

Patch 8.0.0172 (after 8.0.0159)
Problem:    The command selected in the command line window is not executed.
            (Andrey Starodubtsev)
Solution:   Save and restore the command line at a lower level. (closes #1370)
Files:      src/ex_getln.c, src/testdir/test_history.vim

Patch 8.0.0173
Problem:    When compiling with EBCDIC defined the build fails. (Yaroslav
            Kuzmin)
Solution:   Move sortFunctions() to the right file.  Avoid warning for
            redefining __SUSV3.
Files:      src/eval.c, src/evalfunc.c, src/os_unixx.h

Patch 8.0.0174
Problem:    For completion "locale -a" is executed on MS-Windows, even though
            it most likely won't work.
Solution:   Skip executing "locale -a" on MS-Windows. (Ken Takata)
Files:      src/ex_cmds2.c

Patch 8.0.0175
Problem:    Setting language in gvim on MS-Windows does not work when
            libintl.dll is dynamically linked with msvcrt.dll.
Solution:   Use putenv() from libintl as well. (Ken Takata, closes #1082)
Files:      src/mbyte.c, src/misc1.c, src/os_win32.c, src/proto/os_win32.pro,
            src/vim.h

Patch 8.0.0176
Problem:    Using :change in between :function and :endfunction fails.
Solution:   Recognize :change inside a function. (ichizok, closes #1374)
Files:      src/userfunc.c, src/testdir/test_viml.vim

Patch 8.0.0177
Problem:    When opening a buffer on a directory and inside a try/catch then
            the BufEnter event is not triggered.
Solution:   Return NOTDONE from readfile() for a directory and deal with the
            three possible return values. (Justin M. Keyes, closes #1375,
            closes #1353)
Files:      src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/fileio.c,
            src/memline.c

Patch 8.0.0178
Problem:    test_command_count may fail when a previous test interferes, seen
            on MS-Windows.
Solution:   Run it separately.
Files:      src/testdir/test_alot.vim, src/testdir/Make_all.mak

Patch 8.0.0179
Problem:    'formatprg' is a global option but the value may depend on the
            type of buffer. (Sung Pae)
Solution:   Make 'formatprg' global-local. (closes #1380)
Files:      src/structs.h, src/option.h, src/option.c, src/normal.c,
            runtime/doc/options.txt, src/testdir/test_normal.vim

Patch 8.0.0180
Problem:    Error E937 is used both for duplicate key in JSON and for trying
            to delete a buffer that is in use.
Solution:   Rename the JSON error to E938. (Norio Takagi, closes #1376)
Files:      src/json.c, src/testdir/test_json.vim

Patch 8.0.0181
Problem:    When 'cursorbind' and 'cursorcolumn' are both on, the column
            highlight in non-current windows is wrong.
Solution:   Add validate_cursor(). (Masanori Misono, closes #1372)
Files:      src/move.c

Patch 8.0.0182
Problem:    When 'cursorbind' and 'cursorline' are set, but 'cursorcolumn' is
            not, then the cursor line highlighting is not updated. (Hirohito
            Higashi)
Solution:   Call redraw_later() with NOT_VALID.
Files:      src/move.c

Patch 8.0.0183
Problem:    Ubsan warns for using a pointer that is not aligned.
Solution:   First copy the address. (Yegappan Lakshmanan)
Files:      src/channel.c

Patch 8.0.0184
Problem:    When in Ex mode and an error is caught by try-catch, Vim still
            exits with a non-zero exit code.
Solution:   Don't set ex_exitval when inside a try-catch. (partly by Christian
            Brabandt)
Files:      src/message.c, src/testdir/test_system.vim

Patch 8.0.0185 (after 8.0.0184)
Problem:    The system() test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
Files:      src/testdir/test_system.vim

Patch 8.0.0186
Problem:    The error message from assert_notequal() is confusing.
Solution:   Only mention the expected value.
Files:      src/eval.c, src/testdir/test_assert.vim

Patch 8.0.0187
Problem:    Building with a new Ruby version fails.
Solution:   Use ruby_sysinit() instead of NtInitialize(). (Tomas Volf,
            closes #1382)
Files:      src/if_ruby.c

Patch 8.0.0188 (after 8.0.0182)
Problem:    Using NOT_VALID for redraw_later() to update the cursor
            line/column highlighting is not efficient.
Solution:   Call validate_cursor() when 'cul' or 'cuc' is set.
Files:      src/move.c

Patch 8.0.0189
Problem:    There are no tests for the :profile command.
Solution:   Add tests. (Dominique Pelle, closes #1383)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_profile.vim

Patch 8.0.0190
Problem:    Detecting duplicate tags uses a slow linear search.
Solution:   Use a much faster hash table solution. (James McCoy, closes #1046)
            But don't add hi_keylen, it makes hash tables 50% bigger.
Files:      src/tag.c

Patch 8.0.0191 (after 8.0.0187)
Problem:    Some systems do not have ruby_sysinit(), causing the build to
            fail.
Solution:   Clean up how ruby_sysinit() and NtInitialize() are used. (Taro
            Muraoka)
Files:      src/if_ruby.c

Patch 8.0.0192 (after 8.0.0190)
Problem:    Build fails with tiny features.
Solution:   Change #ifdef for hash_clear().  Avoid warning for unused
            argument.
Files:      src/hashtab.c, src/if_cscope.c

Patch 8.0.0193 (after 8.0.0188)
Problem:    Accidentally removed #ifdef.
Solution:   Put it back. (Masanori Misono)
Files:      src/move.c

Patch 8.0.0194 (after 8.0.0189)
Problem:    Profile tests fails if total and self time are equal.
Solution:   Make one time optional.
Files:      src/testdir/test_profile.vim

Patch 8.0.0195 (after 8.0.0190)
Problem:    Jumping to a tag that is a static item in the current file fails.
            (Kazunobu Kuriyama)
Solution:   Make sure the first byte of the tag key is not NUL. (Suggested by
            James McCoy, closes #1387)
Files:      src/tag.c, src/testdir/test_tagjump.vim

Patch 8.0.0196 (after 8.0.0194)
Problem:    The test for :profile is slow and does not work on MS-Windows.
Solution:   Use the "-es" argument. (Dominique Pelle)  Swap single and double
            quotes for system()
Files:      src/testdir/test_profile.vim

Patch 8.0.0197
Problem:    On MS-Windows the system() test skips a few parts.
Solution:   Swap single and double quotes for the command.
Files:      src/testdir/test_system.vim

Patch 8.0.0198
Problem:    Some syntax arguments take effect even after "if 0". (Taylor
            Venable)
Solution:   Properly skip the syntax statements.  Make "syn case" and "syn
            conceal" report the current state.  Fix that "syn clear" didn't
            reset the conceal flag.  Add tests for :syntax skipping properly.
Files:      src/syntax.c, src/testdir/test_syntax.vim

Patch 8.0.0199
Problem:    Warning for an unused parameter when the libcall feature is
            disabled.  Warning for a function type cast when compiling with
            -pedantic.
Solution:   Add UNUSED.  Use a different type cast. (Damien Molinier)
Files:      src/evalfunc.c, src/os_unix.c

Patch 8.0.0200
Problem:    Some syntax arguments are not tested.
Solution:   Add more syntax command tests.
Files:      src/testdir/test_syntax.vim

Patch 8.0.0201
Problem:    When completing a group name for a highlight or syntax command
            cleared groups are included.
Solution:   Skip groups that have been cleared.
Files:      src/syntax.c, src/testdir/test_syntax.vim

Patch 8.0.0202
Problem:    No test for invalid syntax group name.
Solution:   Add a test for group name error and warning.
Files:      src/testdir/test_syntax.vim

Patch 8.0.0203
Problem:    Order of complication flags is sometimes wrong.
Solution:   Put interface-specific flags before ALL_CFLAGS. (idea by Yousong
            Zhou, closes #1100)
Files:      src/Makefile

Patch 8.0.0204
Problem:    Compiler warns for uninitialized variable. (Tony Mechelynck)
Solution:   When skipping set "id" to -1.
Files:      src/syntax.c

Patch 8.0.0205
Problem:    After :undojoin some commands don't work properly, such as :redo.
            (Matthew Malcomson)
Solution:   Don't set curbuf->b_u_curhead. (closes #1390)
Files:      src/undo.c, src/testdir/test_undo.vim

Patch 8.0.0206
Problem:    Test coverage for :retab insufficient.
Solution:   Add test for :retab. (Dominique Pelle, closes #1391)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test_retab.vim

Patch 8.0.0207
Problem:    Leaking file descriptor when system() cannot find the buffer.
            (Coverity)
Solution:   Close the file descriptor.  (Dominique Pelle, closes #1398)
Files:      src/evalfunc.c

Patch 8.0.0208
Problem:    Internally used commands for CTRL-Z and mouse click end up in
            history. (Matthew Malcomson)
Solution:   Use do_cmdline_cmd() instead of stuffing them in the readahead
            buffer. (James McCoy, closes #1395)
Files:      src/edit.c, src/normal.c

Patch 8.0.0209
Problem:    When using :substitute with the "c" flag and 'cursorbind' is set
            the cursor is not updated in other windows.
Solution:   Call do_check_cursorbind(). (Masanori Misono)
Files:      src/ex_cmds.c

Patch 8.0.0210
Problem:    Vim does not support bracketed paste, as implemented by xterm and
            other terminals.
Solution:   Add t_BE, t_BD, t_PS and t_PE.
Files:      src/term.c, src/term.h, src/option.c, src/misc2.c, src/keymap.h,
            src/edit.c, src/normal.c, src/evalfunc.c, src/getchar.c,
            src/vim.h, src/proto/edit.pro, runtime/doc/term.txt

Patch 8.0.0211 (after 8.0.0210)
Problem:    Build fails if the multi-byte feature is disabled.
Solution:   Change #ifdef around ins_char_bytes.
Files:      src/misc1.c

Patch 8.0.0212
Problem:    The buffer used to store a key name theoretically could be too
            small. (Coverity)
Solution:   Count all possible modifier characters.  Add a check for the
            length just in case.
Files:      src/keymap.h, src/misc2.c

Patch 8.0.0213
Problem:    The Netbeans "specialKeys" command does not check if the argument
            fits in the buffer. (Coverity)
Solution:   Add a length check.
Files:      src/netbeans.c

Patch 8.0.0214
Problem:    Leaking memory when syntax cluster id is unknown. (Coverity)
Solution:   Free the memory.
Files:      src/syntax.c

Patch 8.0.0215
Problem:    When a Cscope line contains CTRL-L a NULL pointer may be used.
            (Coverity)
Solution:   Don't check for an emacs tag in a cscope line.
Files:      src/tag.c

Patch 8.0.0216
Problem:    When decoding JSON with a JS style object the JSON test may use a
            NULL pointer. (Coverity)
Solution:   Check for a NULL pointer.
Files:      src/json.c, src/json_test.c

Patch 8.0.0217 (after 8.0.0215)
Problem:    Build fails without the cscope feature.
Solution:   Add #ifdef.
Files:      src/tag.c

Patch 8.0.0218
Problem:    No command line completion for :cexpr, :cgetexpr, :caddexpr, etc.
Solution:   Make completion work. (Yegappan Lakshmanan)  Add a test.
Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

Patch 8.0.0219
Problem:    Ubsan reports errors for integer overflow.
Solution:   Define macros for minimum and maximum values.  Select an
            expression based on the value. (Mike Williams)
Files:      src/charset.c, src/eval.c, src/evalfunc.c, src/structs.h,
            src/testdir/test_viml.vim

Patch 8.0.0220
Problem:    Completion for :match does not show "none" and other missing
            highlight names.
Solution:   Skip over cleared entries before checking the index to be at the
            end.
Files:      src/syntax.c, src/testdir/test_cmdline.vim

Patch 8.0.0221
Problem:    Checking if PROTO is defined inside a function has no effect.
Solution:   Remove the check for PROTO. (Hirohito Higashi)
Files:      src/misc1.c

Patch 8.0.0222
Problem:    When a multi-byte character ends in a zero byte, putting blockwise
            text puts it before the character instead of after it.
Solution:   Use int instead of char for the character under the cursor.
            (Luchr, closes #1403)  Add a test.
Files:      src/ops.c, src/testdir/test_put.vim, src/Makefile,
            src/testdir/test_alot.vim

Patch 8.0.0223
Problem:    Coverity gets confused by the flags passed to find_tags() and
            warns about uninitialized variable.
Solution:   Disallow using cscope and help tags at the same time.
Files:      src/tag.c

Patch 8.0.0224
Problem:    When 'fileformats' is changed in a BufReadPre auto command, it
            does not take effect in readfile(). (Gary Johnson)
Solution:   Check the value of 'fileformats' after executing auto commands.
            (Christian Brabandt)
Files:      src/fileio.c, src/testdir/test_fileformat.vim

Patch 8.0.0225
Problem:    When a block is visually selected and put is used on the end of
            the selection only one line is changed.
Solution:   Check for the end properly. (Christian Brabandt, neovim issue
            5781)
Files:      src/ops.c, src/testdir/test_put.vim

Patch 8.0.0226
Problem:    The test for patch 8.0.0224 misses the CR characters and passes
            even without the fix. (Christian Brabandt)
Solution:   Use double quotes and \<CR>.
Files:      src/testidr/test_fileformat.vim

Patch 8.0.0227
Problem:    Crash when 'fileformat' is forced to "dos" and the first line in
            the file is empty and does not have a CR character.
Solution:   Don't check for CR before the start of the buffer.
Files:      src/fileio.c, src/testidr/test_fileformat.vim

Patch 8.0.0228 (after 8.0.0210)
Problem:    When pasting test in an xterm on the command line it is surrounded
            by <PasteStart> and <PasteEnd>. (Johannes Kaltenbach)
Solution:   Add missing changes.
Files:      src/ex_getln.c, src/term.c

Patch 8.0.0229 (after 8.0.0179)
Problem:    When freeing a buffer the local value of the 'formatprg' option is
            not cleared.
Solution:   Add missing change.
Files:      src/buffer.c

Patch 8.0.0230 (after 8.0.0210)
Problem:    When using bracketed paste line breaks are not respected.
Solution:   Turn CR characters into a line break if the text is being
            inserted. (closes #1404)
Files:      src/edit.c

Patch 8.0.0231
Problem:    There are no tests for bracketed paste mode.
Solution:   Add a test.  Fix repeating with "normal .".
Files:      src/edit.c, src/testdir/test_paste.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 8.0.0232
Problem:    Pasting in Insert mode does not work when bracketed paste is used
            and 'esckeys' is off.
Solution:   When 'esckeys' is off disable bracketed paste in Insert mode.
Files:      src/edit.c

Patch 8.0.0233 (after 8.0.0231)
Problem:    The paste test fails if the GUI is being used.
Solution:   Skip the test in the GUI.
Files:      src/testdir/test_paste.vim

Patch 8.0.0234 (after 8.0.0225)
Problem:    When several lines are visually selected and one of them is short,
            using put may cause a crash. (Axel Bender)
Solution:   Check for a short line. (Christian Brabandt)
Files:      src/ops.c, src/testdir/test_put.vim

Patch 8.0.0235
Problem:    Memory leak detected when running tests for diff mode.
Solution:   Free p_extra_free.
Files:      src/screen.c

Patch 8.0.0236 (after 8.0.0234)
Problem:    Gcc complains that a variable may be used uninitialized. Confusion
            between variable and label name. (John Marriott)
Solution:   Initialize it.  Rename end to end_lnum.
Files:      src/ops.c

Patch 8.0.0237
Problem:    When setting wildoptions=tagfile the completion context is not set
            correctly. (desjardins)
Solution:   Check for EXPAND_TAGS_LISTFILES. (Christian Brabandt, closes #1399)
Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

Patch 8.0.0238
Problem:    When using bracketed paste autoindent causes indent to be
            increased.
Solution:   Disable 'ai' and set 'paste' temporarily. (Ken Takata)
Files:      src/edit.c, src/testdir/test_paste.vim

Patch 8.0.0239
Problem:    The address sanitizer sometimes finds errors, but it needs to be
            run manually.
Solution:   Add an environment to Travis with clang and the address sanitizer.
            (Christian Brabandt)  Also include changes only on github.
Files:      .travis.yml

Patch 8.0.0240 (after 8.0.0239)
Problem:    The clang build on CI fails with one configuration.
Solution:   Redo a previous patch that was accidentally reverted.
Files:      .travis.yml

Patch 8.0.0241
Problem:    Vim defines a mch_memmove() function but it doesn't work, thus is
            always unused.
Solution:   Remove the mch_memmove implementation. (suggested by Dominique
            Pelle)
Files:      src/os_unix.h, src/misc2.c, src/vim.h

Patch 8.0.0242
Problem:    Completion of user defined functions is not covered by tests.
Solution:   Add tests.  Also test various errors of user-defined commands.
            (Dominique Pelle, closes #1413)
Files:      src/testdir/test_usercommands.vim

Patch 8.0.0243
Problem:    When making a character lower case with tolower() changes the byte
            count, it is not made lower case.
Solution:   Add strlow_save(). (Dominique Pelle, closes #1406)
Files:      src/evalfunc.c, src/misc2.c, src/proto/misc2.pro,
            src/testdir/test_functions.vim

Patch 8.0.0244
Problem:    When the user sets t_BE empty after startup to disable bracketed
            paste, this has no direct effect.
Solution:   When t_BE is made empty write t_BD.  When t_BE is made non-empty
            write the new value.
Files:      src/option.c

Patch 8.0.0245
Problem:    The generated zh_CN.cp936.po message file is not encoded properly.
Solution:   Instead of using zh_CN.po as input, use zh_CN.UTF-8.po.
Files:      src/po/Makefile

Patch 8.0.0246
Problem:    Compiler warnings for int to pointer conversion.
Solution:   Fix macro for mch_memmove(). (John Marriott)
Files:      src/vim.h

Patch 8.0.0247
Problem:    Under some circumstances, one needs to type Ctrl-N or Ctrl-P twice
            to have a menu entry selected. (Lifepillar)
Solution:   call ins_compl_free(). (Christian Brabandt, closes #1411)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0248
Problem:    vim_strcat() cannot handle overlapping arguments.
Solution:   Use mch_memmove() instead of strcpy(). (Justin M Keyes,
            closes #1415)
Files:      src/misc2.c

Patch 8.0.0249
Problem:    When two submits happen quick after each other, the tests for the
            first one may error out.
Solution:   Use a git depth of 10 instead of 1. (Christian Brabandt)
Files:      .travis.yml

Patch 8.0.0250
Problem:    When virtcol() gets a column that is not the first byte of a
            multi-byte character the result is unpredictable. (Christian
            Ludwig)
Solution:   Correct the column to the first byte of a multi-byte character.
            Change the utf-8 test to new style.
Files:      src/charset.c, src/testdir/test_utf8.in, src/testdir/test_utf8.ok,
            src/testdir/test_utf8.vim, src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_alot_utf8.vim

Patch 8.0.0251
Problem:    It is not so easy to write a script that works with both Python 2
            and Python 3, even when the Python code works with both.
Solution:   Add 'pyxversion', :pyx, etc. (Marc Weber, Ken Takata)
Files:      Filelist, runtime/doc/eval.txt, runtime/doc/if_pyth.txt,
            runtime/doc/index.txt, runtime/doc/options.txt,
            runtime/optwin.vim, runtime/doc/quickref.txt,
            runtime/doc/usr_41.txt, src/Makefile, src/evalfunc.c,
            src/ex_cmds.h, src/ex_cmds2.c, src/ex_docmd.c, src/if_python.c,
            src/if_python3.c, src/option.c, src/option.h,
            src/proto/ex_cmds2.pro, src/testdir/Make_all.mak,
            src/testdir/pyxfile/py2_magic.py,
            src/testdir/pyxfile/py2_shebang.py,
            src/testdir/pyxfile/py3_magic.py,
            src/testdir/pyxfile/py3_shebang.py, src/testdir/pyxfile/pyx.py,
            src/testdir/test_pyx2.vim, src/testdir/test_pyx3.vim
            src/userfunc.c

Patch 8.0.0252
Problem:    Characters below 256 that are not one byte are not always
            recognized as word characters.
Solution:   Make vim_iswordc() and vim_iswordp() work the same way. Add a test
            for this. (Ozaki Kiichi)
Files:      src/Makefile, src/charset.c, src/kword_test.c, src/mbyte.c,
            src/proto/mbyte.pro

Patch 8.0.0253
Problem:    When creating a session when 'winminheight' is 2 or larger and
            loading that session gives an error.
Solution:   Also set 'winminheight' before setting 'winheight' to 1. (Rafael
            Bodill, neovim #5717)
Files:      src/ex_docmd.c, src/testdir/test_mksession.vim

Patch 8.0.0254
Problem:    When using an assert function one can either specify a message or
            get a message about what failed, not both.
Solution:   Concatenate the error with the message.
Files:      src/eval.c, src/testdir/test_assert.vim

Patch 8.0.0255
Problem:    When calling setpos() with a buffer argument it often is ignored.
            (Matthew Malcomson)
Solution:   Make the buffer argument work for all marks local to a buffer.
            (neovim #5713)  Add more tests.
Files:      src/mark.c, src/testdir/test_marks.vim, runtime/doc/eval.txt

Patch 8.0.0256 (after 8.0.0255)
Problem:    Tests fail because some changes were not included.
Solution:   Add changes to evalfunc.c
Files:      src/evalfunc.c

Patch 8.0.0257 (after 8.0.0252)
Problem:    The keyword test file is not included in the archive.
Solution:   Update the list of files.
Files:      Filelist

Patch 8.0.0258 (after 8.0.0253)
Problem:    mksession test leaves file behind.
Solution:   Delete the file.  Rename files to start with "X".
Files:      src/testdir/test_mksession.vim

Patch 8.0.0259
Problem:    Tab commands do not handle count correctly. (Ken Hamada)
Solution:   Add ADDR_TABS_RELATIVE. (Hirohito Higashi)
Files:      runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c,
            src/testdir/test_tabpage.vim

Patch 8.0.0260
Problem:    Build fails with tiny features.
Solution:   Move get_tabpage_arg() inside #ifdef.
Files:      src/ex_docmd.c

Patch 8.0.0261
Problem:    Not enough test coverage for eval functions.
Solution:   Add more tests. (Dominique Pelle, closes #1420)
Files:      src/testdir/test_functions.vim

Patch 8.0.0262
Problem:    Farsi support is barely tested.
Solution:   Add more tests for Farsi.  Clean up the code.
Files:      src/edit.c, src/farsi.c, src/testdir/test_farsi.vim

Patch 8.0.0263
Problem:    Farsi support is not tested enough.
Solution:   Add more tests for Farsi.  Clean up the code.
Files:      src/farsi.c, src/testdir/test_farsi.vim

Patch 8.0.0264
Problem:    Memory error reported by ubsan, probably for using the string
            returned by execute().
Solution:   NUL terminate the result of execute().
Files:      src/evalfunc.c

Patch 8.0.0265
Problem:    May get ml_get error when :pydo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
Files:      src/if_py_both.h, src/testdir/test_python2.vim,
            src/testdir/test_python3.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 8.0.0266
Problem:    Compiler warning for using uninitialized variable.
Solution:   Set tab_number also when there is an error.
Files:      src/ex_docmd.c

Patch 8.0.0267
Problem:    A channel test sometimes fails on Mac.
Solution:   Add the test to the list of flaky tests.
Files:      src/testdir/runtest.vim

Patch 8.0.0268
Problem:    May get ml_get error when :luado deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
Files:      src/if_lua.c, src/testdir/test_lua.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 8.0.0269
Problem:    May get ml_get error when :perldo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
Files:      src/if_perl.xs, src/testdir/test_perl.vim

Patch 8.0.0270
Problem:    May get ml_get error when :rubydo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
Files:      src/if_ruby.c, src/testdir/test_ruby.vim

Patch 8.0.0271
Problem:    May get ml_get error when :tcldo deletes lines or switches to
            another buffer. (Nikolai Pavlov, closes #1421)
Solution:   Check the buffer and line every time.
Files:      src/if_tcl.c, src/testdir/test_tcl.vim, src/Makefile,
            src/testdir/Make_all.mak

Patch 8.0.0272
Problem:    Crash on exit is not detected when running tests.
Solution:   Remove the dash before the command. (Dominique Pelle, closes
            #1425)
Files:      src/testdir/Makefile

Patch 8.0.0273
Problem:    Dead code detected by Coverity when not using gnome.
Solution:   Rearrange the #ifdefs to avoid dead code.
Files:      src/gui_gtk_x11.c

Patch 8.0.0274
Problem:    When update_single_line() is called recursively, or another screen
            update happens while it is busy, errors may occur.
Solution:   Check and update updating_screen. (Christian Brabandt)
Files:      src/screen.c

Patch 8.0.0275
Problem:    When checking for CTRL-C typed the GUI may detect a screen resize
            and redraw the screen, causing trouble.
Solution:   Set updating_screen in ui_breakcheck().
Files:      src/ui.c

Patch 8.0.0276
Problem:    Checking for FEAT_GUI_GNOME inside GTK 3 code is unnecessary.
Solution:   Remove the #ifdef. (Kazunobu Kuriyama)
Files:      src/gui_gtk_x11.c

Patch 8.0.0277
Problem:    The GUI test may trigger fontconfig and take a long time.
Solution:   Set $XDG_CACHE_HOME. (Kazunobu Kuriyama)
Files:      src/testdir/unix.vim, src/testdir/test_gui.vim

Patch 8.0.0278 (after 8.0.0277)
Problem:    GUI test fails on MS-Windows.
Solution:   Check that tester_HOME exists.
Files:      src/testdir/test_gui.vim

Patch 8.0.0279
Problem:    With MSVC 2015 the dll name is vcruntime140.dll.
Solution:   Check the MSVC version and use the right dll name. (Ken Takata)
Files:      src/Make_mvc.mak

Patch 8.0.0280
Problem:    On MS-Windows setting an environment variable with multi-byte
            strings does not work well.
Solution:   Use wputenv when possible. (Taro Muraoka, Ken Takata)
Files:      src/misc1.c, src/os_win32.c, src/os_win32.h,
            src/proto/os_win32.pro, src/vim.h

Patch 8.0.0281
Problem:    MS-Windows files are still using ARGSUSED while most other files
            have UNUSED.
Solution:   Change ARGSUSED to UNUSED or delete it.
Files:      src/os_win32.c, src/gui_w32.c, src/os_mswin.c, src/os_w32exe.c,
            src/winclip.c

Patch 8.0.0282
Problem:    When doing a Visual selection and using "I" to go to insert mode,
            CTRL-O needs to be used twice to go to Normal mode. (Coacher)
Solution:   Check for the return value of edit(). (Christian Brabandt,
            closes #1290)
Files:      src/normal.c, src/ops.c

Patch 8.0.0283
Problem:    The return value of mode() does not indicate that completion is
            active in Replace and Insert mode. (Zhen-Huan (Kenny) Hu)
Solution:   Add "c" or "x" for two kinds of completion. (Yegappan Lakshmanan,
            closes #1397)  Test some more modes.
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.vim, src/testdir/test_mapping.vim

Patch 8.0.0284
Problem:    The Test_collapse_buffers() test failed once, looks like it is
            flaky.
Solution:   Add it to the list of flaky tests.
Files:      src/testdir/runtest.vim

Patch 8.0.0285 (after 8.0.0277)
Problem:    Tests fail with tiny build on Unix.
Solution:   Only set g:tester_HOME when build with the +eval feature.
Files:      src/testdir/unix.vim

Patch 8.0.0286
Problem:    When concealing is active and the screen is resized in the GUI it
            is not immediately redrawn.
Solution:   Use update_prepare() and update_finish() from
            update_single_line().
Files:      src/screen.c

Patch 8.0.0287
Problem:    Cannot access the arguments of the current function in debug mode.
            (Luc Hermitte)
Solution:   use get_funccal(). (Lemonboy, closes #1432, closes #1352)
Files:      src/userfunc.c

Patch 8.0.0288 (after 8.0.0284)
Problem:    Errors reported while running tests.
Solution:   Put comma in the right place.
Files:      src/testdir/runtest.vim

Patch 8.0.0289
Problem:    No test for "ga" and :ascii.
Solution:   Add a test. (Dominique Pelle, closes #1429)
Files:      src/Makefile, src/testdir/test_alot.vim, src/testdir/test_ga.vim

Patch 8.0.0290
Problem:    If a wide character doesn't fit at the end of the screen line, and
            the line doesn't fit on the screen, then the cursor position may
            be wrong. (anliting)
Solution:   Don't skip over wide character. (Christian Brabandt, closes #1408)
Files:      src/screen.c

Patch 8.0.0291 (after 8.0.0282)
Problem:    Visual block insertion does not insert in all lines.
Solution:   Don't bail out of insert too early. Add a test. (Christian
            Brabandt, closes #1290)
Files:      src/ops.c, src/testdir/test_visual.vim

Patch 8.0.0292
Problem:    The stat test is a bit slow.
Solution:   Remove a couple of sleep comments and reduce another.
Files:      src/testdir/test_stat.vim

Patch 8.0.0293
Problem:    Some tests have a one or three second wait.
Solution:   Reset the 'showmode' option.  Use a test time of one to disable
            sleep after an error or warning message.
Files:      src/misc1.c, src/testdir/runtest.vim, src/testdir/test_normal.vim

Patch 8.0.0294
Problem:    Argument list is not stored correctly in a session file.
            (lgpasquale)
Solution:   Use "$argadd" instead of "argadd". (closes #1434)
Files:      src/ex_docmd.c, src/testdir/test_mksession.vim

Patch 8.0.0295 (after 8.0.0293)
Problem:    test_viml hangs.
Solution:   Put resetting 'more' before sourcing the script.
Files:      src/testdir/runtest.vim

Patch 8.0.0296
Problem:    Bracketed paste can only append, not insert.
Solution:   When the cursor is in the first column insert the text.
Files:      src/normal.c, src/testdir/test_paste.vim, runtime/doc/term.txt

Patch 8.0.0297
Problem:    Double free on exit when using a closure. (James McCoy)
Solution:   Split free_al_functions in two parts. (closes #1428)
Files:      src/userfunc.c, src/structs.h

Patch 8.0.0298
Problem:    Ex command range with repeated search does not work. (Bruce
            DeVisser)
Solution:   Skip over \/, \? and \&.
Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

Patch 8.0.0299
Problem:    When the GUI window is resized Vim does not always take over the
            new size. (Luchr)
Solution:   Reset new_p_guifont in gui_resize_shell().  Call
            gui_may_resize_shell() in the main loop.
Files:      src/main.c, src/gui.c

Patch 8.0.0300
Problem:    Cannot stop diffing hidden buffers. (Daniel Hahler)
Solution:   When using :diffoff! make the whole list if diffed buffers empty.
            (closes #736)
Files:      src/diff.c, src/testdir/test_diffmode.vim

Patch 8.0.0301
Problem:    No tests for ":set completion" and various errors of the :set
            command.
Solution:   Add more :set tests. (Dominique Pelle, closes #1440)
Files:      src/testdir/test_options.vim

Patch 8.0.0302
Problem:    Cannot set terminal key codes with :let.
Solution:   Make it work.
Files:      src/option.c, src/testdir/test_assign.vim

Patch 8.0.0303
Problem:    Bracketed paste does not work in Visual mode.
Solution:   Delete the text before pasting
Files:      src/normal.c, src/ops.c, src/proto/ops.pro,
            src/testdir/test_paste.vim

Patch 8.0.0304 (after 8.0.0302)
Problem:    Assign test fails in the GUI.
Solution:   Skip the test for setting t_k1.
Files:      src/testdir/test_assign.vim

Patch 8.0.0305
Problem:    Invalid memory access when option has duplicate flag.
Solution:   Correct pointer computation. (Dominique Pelle, closes #1442)
Files:      src/option.c, src/testdir/test_options.vim

Patch 8.0.0306
Problem:    mode() not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan)
Files:      src/testdir/test_functions.vim

Patch 8.0.0307
Problem:    Asan detects a memory error when EXITFREE is defined. (Dominique
            Pelle)
Solution:   In getvcol() check for ml_get_buf() returning an empty string.
            Also skip adjusting the scroll position.  Set "exiting" in
            mch_exit() for all systems.
Files:      src/charset.c, src/window.c, src/os_mswin.c, src/os_win32.c,
            src/os_amiga.c

Patch 8.0.0308
Problem:    When using a symbolic link, the package path will not be inserted
            at the right position in 'runtimepath'. (Dugan Chen, Norio Takagi)
Solution:   Resolve symbolic links when finding the right position in
            'runtimepath'. (Hirohito Higashi)
Files:      src/ex_cmds2.c, src/testdir/test_packadd.vim

Patch 8.0.0309
Problem:    Cannot use an empty key in json.
Solution:   Allow for using an empty key.
Files:      src/json.c, src/testdir/test_json.vim

Patch 8.0.0310
Problem:    Not enough testing for GUI functionality.
Solution:   Add tests for v:windowid and getwinpos[xy](). (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0311
Problem:    Linebreak tests are old style.
Solution:   Turn the tests into new style. Share utility functions. (Ozaki
            Kiichi, closes #1444)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_breakindent.vim, src/testdir/test_listlbr.in,
            src/testdir/test_listlbr.ok, src/testdir/test_listlbr.vim,
            src/testdir/test_listlbr_utf8.in,
            src/testdir/test_listlbr_utf8.ok,
            src/testdir/test_listlbr_utf8.vim, src/testdir/view_util.vim

Patch 8.0.0312
Problem:    When a json message arrives in pieces, the start is dropped and
            the decoding fails.
Solution:   Do not drop the start when it is still needed. (Kay Zheng)  Add a
            test.  Reset the timeout when something is received.
Files:      src/channel.c, src/testdir/test_channel.vim, src/structs.h,
            src/testdir/test_channel_pipe.py

Patch 8.0.0313 (after 8.0.0310)
Problem:    Not enough testing for GUI functionality.
Solution:   Add tests for the GUI font. (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0314
Problem:    getcmdtype(), getcmdpos() and getcmdline() are not tested.
Solution:   Add tests. (Yegappan Lakshmanan)
Files:      src/testdir/test_cmdline.vim

Patch 8.0.0315
Problem:    ":help :[range]" does not work. (Tony Mechelynck)
Solution:   Translate to insert a backslash.
Files:      src/ex_cmds.c

Patch 8.0.0316
Problem:    ":help z?" does not work. (Pavol Juhas)
Solution:   Remove exception for z?.
Files:      src/ex_cmds.c

Patch 8.0.0317
Problem:    No test for setting 'guifont'.
Solution:   Add a test for X11 GUIs. (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0318
Problem:    Small mistake in 7x13 font name.
Solution:   Use ISO 8859-1 name instead of 10646-1. (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0319
Problem:    Insert mode completion does not respect "start" in 'backspace'.
Solution:   Check whether backspace can go before where insert started.
            (Hirohito Higashi)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0320
Problem:    Warning for unused variable with small build.
Solution:   Change #ifdef to exclude FEAT_CMDWIN. (Kazunobu Kuriyama)
Files:      src/ex_getln.c

Patch 8.0.0321
Problem:    When using the tiny version trying to load the matchit plugin
            gives an error. On MS-Windows some default mappings fail.
Solution:   Add a check if the command used is available. (Christian Brabandt)
Files:      runtime/mswin.vim, runtime/macros/matchit.vim

Patch 8.0.0322
Problem:    Possible overflow with spell file where the tree length is
            corrupted.
Solution:   Check for an invalid length (suggested by shqking)
Files:      src/spellfile.c

Patch 8.0.0323
Problem:    When running the command line tests there is a one second wait.
Solution:   Change an Esc to Ctrl-C. (Yegappan Lakshmanan)
Files:      src/testdir/test_cmdline.vim

Patch 8.0.0324
Problem:    Illegal memory access with "1;y".
Solution:   Call check_cursor() instead of check_cursor_lnum(). (Dominique
            Pelle, closes #1455)
Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

Patch 8.0.0325
Problem:    Packadd test does not clean up symlink.
Solution:   Delete the link. (Hirohito Higashi)
Files:      src/testdir/test_packadd.vim

Patch 8.0.0326 (after 8.0.0325)
Problem:    Packadd test uses wrong directory name.
Solution:   Use the variable name value. (Hirohito Higashi)
Files:      src/testdir/test_packadd.vim

Patch 8.0.0327
Problem:    The E11 error message in the command line window is not
            translated.
Solution:   use _(). (Hirohito Higashi)
Files:      src/ex_docmd.c

Patch 8.0.0328
Problem:    The "zero count" error doesn't have a number. (Hirohito Higashi)
Solution:   Give it a number and be more specific about the error.
Files:      src/globals.h

Patch 8.0.0329
Problem:    Xfontset and guifontwide are not tested.
Solution:   Add tests. (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0330
Problem:    Illegal memory access after "vapo". (Dominique Pelle)
Solution:   Fix the cursor column.
Files:      src/search.c, src/testdir/test_visual.vim

Patch 8.0.0331
Problem:    Restoring help snapshot accesses freed memory. (Dominique Pelle)
Solution:   Don't restore a snapshot when the window closes.
Files:      src/window.c, src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_help.vim

Patch 8.0.0332
Problem:    GUI test fails on some systems.
Solution:   Try different language settings. (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0333
Problem:    Illegal memory access when 'complete' ends in a backslash.
Solution:   Check for trailing backslash. (Dominique Pelle, closes #1478)
Files:      src/option.c, src/testdir/test_options.vim

Patch 8.0.0334
Problem:    Can't access b:changedtick from a dict reference.
Solution:   Make changedtick a member of the b: dict. (inspired by neovim
            #6112)
Files:      src/structs.h, src/buffer.c, src/edit.c, src/eval.c,
            src/evalfunc.c, src/ex_docmd.c, src/main.c, src/globals.h,
            src/fileio.c, src/memline.c, src/misc1.c, src/syntax.c,
            src/proto/eval.pro, src/testdir/test_changedtick.vim,
            src/Makefile, src/testdir/test_alot.vim, src/testdir/test91.in,
            src/testdir/test91.ok, src/testdir/test_functions.vim

Patch 8.0.0335 (after 8.0.0335)
Problem:    Functions test fails.
Solution:   Use the right buffer number.
Files:      src/testdir/test_functions.vim

Patch 8.0.0336
Problem:    Flags of :substitute not sufficiently tested.
Solution:   Test up to two letter flag combinations. (James McCoy, closes
            #1479)
Files:      src/testdir/test_substitute.vim

Patch 8.0.0337
Problem:    Invalid memory access in :recover command.
Solution:   Avoid access before directory name. (Dominique Pelle,
            closes #1488)
Files:      src/Makefile, src/memline.c, src/testdir/test_alot.vim,
            src/testdir/test_recover.vim

Patch 8.0.0338 (after 8.0.0337)
Problem:    :recover test fails on MS-Windows.
Solution:   Use non-existing directory on MS-Windows.
Files:      src/testdir/test_recover.vim

Patch 8.0.0339
Problem:    Illegal memory access with vi'
Solution:   For quoted text objects bail out if the Visual area spans more
            than one line.
Files:      src/search.c, src/testdir/test_visual.vim

Patch 8.0.0340
Problem:    Not checking return value of dict_add(). (Coverity)
Solution:   Handle a failure.
Files:      src/buffer.c

Patch 8.0.0341
Problem:    When using complete() and typing a character undo is saved after
            the character was inserted. (Shougo)
Solution:   Save for undo before inserting the character.
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0342
Problem:    Double free when compiled with EXITFREE and setting 'ttytype'.
Solution:   Avoid setting P_ALLOCED on 'ttytype'. (Dominique Pelle,
            closes #1461)
Files:      src/option.c, src/testdir/test_options.vim

Patch 8.0.0343
Problem:    b:changedtick can be unlocked, even though it has no effect.
            (Nikolai Pavlov)
Solution:   Add a check and error E940. (closes #1496)
Files:      src/eval.c, src/testdir/test_changedtick.vim, runtime/doc/eval.txt

Patch 8.0.0344
Problem:    Unlet command leaks memory. (Nikolai Pavlov)
Solution:   Free the memory on error. (closes #1497)
Files:      src/eval.c, src/testdir/test_unlet.vim

Patch 8.0.0345
Problem:    islocked('d.changedtick') does not work.
Solution:   Make it work.
Files:      src/buffer.c, src/eval.c, src/evalfunc.c, src/vim.h,
            src/testdir/test_changedtick.vim,

Patch 8.0.0346
Problem:    Vim relies on limits.h to be included indirectly, but on Solaris 9
            it may not be. (Ben Fritz)
Solution:   Always include limits.h.
Files:      src/os_unixx.h, src/vim.h

Patch 8.0.0347
Problem:    When using CTRL-X CTRL-U inside a comment, the use of the comment
            leader may not work. (Klement)
Solution:   Save and restore did_ai. (Christian Brabandt, closes #1494)
Files:      src/edit.c, src/testdir/test_popup.vim

Patch 8.0.0348
Problem:    When building with a shadow directory on macOS lacks the
            +clipboard feature.
Solution:   Link *.m files, specifically os_macosx.m. (Kazunobu Kuriyama)
Files:      src/Makefile

Patch 8.0.0349
Problem:    Redrawing errors with GTK 3.
Solution:   When updating, first clear all rectangles and then draw them.
            (Kazunobu Kuriyama, Christian Ludwig, closes #848)
Files:      src/gui_gtk_x11.c

Patch 8.0.0350
Problem:    Not enough test coverage for Perl.
Solution:   Add more Perl tests. (Dominique Perl, closes #1500)
Files:      src/testdir/test_perl.vim

Patch 8.0.0351
Problem:    No test for concatenating an empty string that results from out of
            bounds indexing.
Solution:   Add a simple test.
Files:      src/testdir/test_expr.vim

Patch 8.0.0352
Problem:    The condition for when a typval needs to be cleared is too
            complicated.
Solution:   Init the type to VAR_UNKNOWN and always clear it.
Files:      src/eval.c

Patch 8.0.0353
Problem:    If [RO] in the status line is translated to a longer string, it is
            truncated to 4 bytes.
Solution:   Skip over the resulting string. (Jente Hidskes, closes #1499)
Files:      src/screen.c

Patch 8.0.0354
Problem:    Test to check that setting termcap key fails sometimes.
Solution:   Check for "t_k1" to exist. (Christian Brabandt, closes #1459)
Files:      src/testdir/test_assign.vim

Patch 8.0.0355
Problem:    Using uninitialized memory when 'isfname' is empty.
Solution:   Don't call getpwnam() without an argument. (Dominique Pelle,
            closes #1464)
Files:      src/misc1.c, src/testdir/test_options.vim

Patch 8.0.0356 (after 8.0.0342)
Problem:    Leaking memory when setting 'ttytype'.
Solution:   Get free_oldval from the right option entry.
Files:      src/option.c

Patch 8.0.0357
Problem:    Crash when setting 'guicursor' to weird value.
Solution:   Avoid negative size. (Dominique Pelle, closes #1465)
Files:      src/misc2.c, src/testdir/test_options.vim

Patch 8.0.0358
Problem:    Invalid memory access in C-indent code.
Solution:   Don't go over end of empty line. (Dominique Pelle, closes #1492)
Files:      src/edit.c, src/testdir/test_options.vim

Patch 8.0.0359
Problem:    'number' and 'relativenumber' are not properly tested.
Solution:   Add tests, change old style to new style tests. (Ozaki Kiichi,
            closes #1447)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test89.in, src/testdir/test89.ok,
            src/testdir/test_alot.vim, src/testdir/test_findfile.vim,
            src/testdir/test_number.vim

Patch 8.0.0360
Problem:    Sometimes VimL is used, which is confusing.
Solution:   Consistently use "Vim script". (Hirohito Higashi)
Files:      runtime/doc/if_mzsch.txt, runtime/doc/if_pyth.txt,
            runtime/doc/syntax.txt, runtime/doc/usr_02.txt,
            runtime/doc/version7.txt, src/Makefile, src/eval.c,
            src/ex_getln.c, src/if_py_both.h, src/if_xcmdsrv.c,
            src/testdir/Make_all.mak, src/testdir/runtest.vim,
            src/testdir/test49.vim, src/testdir/test_vimscript.vim,
            src/testdir/test_viml.vim

Patch 8.0.0361
Problem:    GUI initialisation is not sufficiently tested.
Solution:   Add the gui_init test. (Kazunobu Kuriyama)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Makefile,
            src/testdir/gui_init.vim, src/testdir/setup_gui.vim,
            src/testdir/test_gui.vim, src/testdir/test_gui_init.vim, Filelist

Patch 8.0.0362 (after 8.0.0361)
Problem:    Tests fail on MS-Windows.
Solution:   Use $*.vim instead of $<.
Files:      src/testdir/Make_dos.mak

Patch 8.0.0363
Problem:    Travis is too slow to keep up with patches.
Solution:   Increase git depth to 20
Files:      .travis.yml

Patch 8.0.0364
Problem:    ]s does not move cursor with two spell errors in one line. (Manuel
            Ortega)
Solution:   Don't stop search immediately when wrapped, search the line first.
            (Ken Takata)  Add a test.
Files:      src/spell.c, src/Makefile, src/testdir/test_spell.vim,
            src/testdir/Make_all.mak

Patch 8.0.0365
Problem:    Might free a dict item that wasn't allocated.
Solution:   Call dictitem_free(). (Nikolai Pavlov)  Use this for
            b:changedtick.
Files:      src/dict.c, src/structs.h, src/buffer.c, src/edit.c,
            src/evalfunc.c, src/ex_docmd.c, src/fileio.c, src/main.c,
            src/memline.c, src/misc1.c, src/syntax.c

Patch 8.0.0366 (after 8.0.0365)
Problem:    Build fails with tiny features.
Solution:   Add #ifdef.
Files:      src/buffer.c

Patch 8.0.0367
Problem:    If configure defines _LARGE_FILES some include files are included
            before it is defined.
Solution:   Include vim.h first. (Sam Thursfield, closes #1508)
Files:      src/gui_at_sb.c, src/gui_athena.c, src/gui_motif.c, src/gui_x11.c,
            src/gui_xmdlg.c

Patch 8.0.0368
Problem:    Not all options are tested with a range of values.
Solution:   Generate a test script from the source code.
Files:      Filelist, src/gen_opt_test.vim, src/testdir/test_options.vim,
            src/Makefile

Patch 8.0.0369 (after 8.0.0368)
Problem:    The 'balloondelay', 'ballooneval' and 'balloonexpr' options are
            not defined without the +balloon_eval feature. Testing that an
            option value fails does not work for unsupported options.
Solution:   Make the options defined but not supported.  Don't test if
            setting unsupported options fails.
Files:      src/option.c, src/gen_opt_test.vim

Patch 8.0.0370
Problem:    Invalid memory access when setting wildchar empty.
Solution:   Avoid going over the end of the option value. (Dominique Pelle,
            closes #1509)  Make option test check all number options with
            empty value.
Files:      src/gen_opt_test.vim, src/option.c, src/testdir/test_options.vim

Patch 8.0.0371 (after 8.0.0365)
Problem:    Leaking memory when setting v:completed_item.
Solution:   Or the flags instead of setting them.
Files:      src/eval.c

Patch 8.0.0372
Problem:    More options are not always defined.
Solution:   Consistently define all possible options.
Files:      src/option.c, src/testdir/test_expand_dllpath.vim

Patch 8.0.0373
Problem:    Build fails without +folding.
Solution:   Move misplaced #ifdef.
Files:      src/option.c

Patch 8.0.0374
Problem:    Invalid memory access when using :sc in Ex mode. (Dominique Pelle)
Solution:   Avoid the column being negative.  Also fix a hang in Ex mode.
Files:      src/ex_getln.c, src/ex_cmds.c, src/testdir/test_substitute.vim

Patch 8.0.0375
Problem:    The "+ register is not tested.
Solution:   Add a test using another Vim instance to change the "+ register.
            (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0376
Problem:    Size computations in spell file reading are not exactly right.
Solution:   Make "len" a "long" and check with LONG_MAX.
Files:      src/spellfile.c

Patch 8.0.0377
Problem:    Possible overflow when reading corrupted undo file.
Solution:   Check if allocated size is not too big. (King)
Files:      src/undo.c

Patch 8.0.0378
Problem:    Another possible overflow when reading corrupted undo file.
Solution:   Check if allocated size is not too big. (King)
Files:      src/undo.c

Patch 8.0.0379
Problem:    CTRL-Z and mouse click use CTRL-O unnecessary.
Solution:   Remove stuffing CTRL-O. (James McCoy, closes #1453)
Files:      src/edit.c, src/normal.c

Patch 8.0.0380
Problem:    With 'linebreak' set and 'breakat' includes ">" a double-wide
            character results in "<<" displayed.
Solution:   Check for the character not to be replaced. (Ozaki Kiichi,
            closes #1456)
Files:      src/screen.c, src/testdir/test_listlbr_utf8.vim

Patch 8.0.0381
Problem:    Diff mode is not sufficiently tested.
Solution:   Add more diff mode tests. (Dominique Pelle, closes #1515)
Files:      src/testdir/test_diffmode.vim

Patch 8.0.0382 (after 8.0.0380)
Problem:    Warning in tiny build for unused variable. (Tony Mechelynck)
Solution:   Add #ifdefs.
Files:      src/screen.c

Patch 8.0.0383 (after 8.0.0382)
Problem:    Misplaced #ifdef. (Christ van Willigen)
Solution:   Split assignment.
Files:      src/screen.c

Patch 8.0.0384
Problem:    Timer test failed for no apparent reason.
Solution:   Mark the test as flaky.
Files:      src/testdir/runtest.vim

Patch 8.0.0385
Problem:    No tests for arabic.
Solution:   Add a first test for arabic. (Dominique Pelle, closes #1518)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_arabic.vim

Patch 8.0.0386
Problem:    Tiny build has a problem with generating the options test.
Solution:   Change the "if" to skip over statements.
Files:      src/gen_opt_test.vim

Patch 8.0.0387
Problem:    compiler warnings
Solution:   Add type casts. (Christian Brabandt)
Files:      src/channel.c, src/memline.c, 

Patch 8.0.0388
Problem:    filtering lines through "cat", without changing the line count,
            changes manual folds.
Solution:   Change how marks and folds are adjusted. (Matthew Malcomson, from
            neovim #6194).
Files:      src/fold.c, src/testdir/test_fold.vim

Patch 8.0.0389
Problem:    Test for arabic does not check what is displayed.
Solution:   Improve what is asserted. (Dominique Pelle, closes #1523)
            Add a first shaping test.
Files:      src/testdir/test_arabic.vim

Patch 8.0.0390
Problem:    When the window scrolls horizontally when the popup menu is
            displayed part of it may not be cleared. (Neovim issue #6184)
Solution:   Remove the menu when the windows scrolled. (closes #1524)
Files:      src/edit.c

Patch 8.0.0391
Problem:    Arabic support is verbose and not well tested.
Solution:   Simplify the code.  Add more tests.
Files:      src/arabic.c, src/testdir/test_arabic.vim

Patch 8.0.0392
Problem:    GUI test fails with Athena and Motif.
Solution:   Add test_ignore_error().  Use it to ignore the "failed to create
            input context" error.
Files:      src/message.c, src/proto/message.pro, src/evalfunc.c,
            src/testdir/test_gui.vim, runtime/doc/eval.txt

Patch 8.0.0393 (after 8.0.0190)
Problem:    When the same tag appears more than once, the order is
            unpredictable. (Charles Campbell)
Solution:   Besides using a dict for finding duplicates, use a grow array for
            keeping the tags in sequence.
Files:      src/tag.c, src/testdir/test_tagjump.vim

Patch 8.0.0394
Problem:    Tabs are not aligned when scrolling horizontally and a Tab doesn't
            fit. (Axel Bender)
Solution:   Handle a Tab as a not fitting character. (Christian Brabandt)
            Also fix that ":redraw" does not scroll horizontally to show the
            cursor.  And fix the test that depended on the old behavior.
Files:      src/screen.c, src/ex_docmd.c, src/testdir/test_listlbr.vim,
            src/testdir/test_listlbr_utf8.vim,
            src/testdir/test_breakindent.vim

Patch 8.0.0395 (after 8.0.0392)
Problem:    Testing the + register fails with Motif.
Solution:   Also ignore the "failed to create input context" error in the
            second gvim.  Don't use msg() when it would result in a dialog.
Files:      src/message.c, src/testdir/test_gui.vim, src/testdir/setup_gui.vim

Patch 8.0.0396
Problem:    'balloonexpr' only works synchronously.
Solution:   Add balloon_show(). (Jusufadis Bakamovic, closes #1449)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/os_unix.c,
            src/os_win32.c

Patch 8.0.0397 (after 8.0.0392)
Problem:    Cannot build with the viminfo feature but without the eval
            feature.
Solution:   Adjust #ifdef. (John Marriott)
Files:      src/message.c, src/misc2.c

Patch 8.0.0398
Problem:    Illegal memory access with "t".
Solution:   Use strncmp() instead of memcmp(). (Dominique Pelle, closes #1528)
Files:      src/search.c, src/testdir/test_search.vim

Patch 8.0.0399
Problem:    Crash when using balloon_show() when not supported. (Hirohito
            Higashi)
Solution:   Check for balloonEval not to be NULL. (Ken Takata)
Files:      src/evalfunc.c, src/testdir/test_functions.vim

Patch 8.0.0400
Problem:    Some tests have a one second delay.
Solution:   Add --not-a-term in RunVim().
Files:      src/testdir/shared.vim

Patch 8.0.0401
Problem:    Test fails with missing balloon feature.
Solution:   Add check for balloon feature.
Files:      src/testdir/test_functions.vim

Patch 8.0.0402
Problem:    :map completion does not have <special>. (Dominique Pelle)
Solution:   Recognize <special> in completion.  Add a test.
Files:      src/getchar.c, src/testdir/test_cmdline.vim

Patch 8.0.0403
Problem:    GUI tests may fail.
Solution:   Ignore the E285 error better. (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim, src/testdir/test_gui_init.vim

Patch 8.0.0404
Problem:    Not enough testing for quickfix.
Solution:   Add some more tests. (Yegappan Lakshmanan)
Files:      src/testdir/test_quickfix.vim

Patch 8.0.0405
Problem:    v:progpath may become invalid after ":cd".
Solution:   Turn v:progpath into a full path if needed.
Files:      src/main.c, src/testdir/test_startup.vim, runtime/doc/eval.txt

Patch 8.0.0406
Problem:    The arabic shaping code is verbose.
Solution:   Shorten the code without changing the functionality.
Files:      src/arabic.c

Patch 8.0.0407 (after 8.0.0388)
Problem:    Filtering folds with marker method not tested.
Solution:   Also set 'foldmethod' to "marker".
Files:      src/testdir/test_fold.vim

Patch 8.0.0408
Problem:    Updating folds does not work properly when inserting a file and a
            few other situations.
Solution:   Adjust the way folds are updated. (Matthew Malcomson)
Files:      src/fold.c, src/testdir/test_fold.vim

Patch 8.0.0409
Problem:    set_progpath is defined but not always used
Solution:   Adjust #ifdef.
Files:      src/main.c

Patch 8.0.0410
Problem:    Newer gettext/iconv library has extra dll file.
Solution:   Add the file to the Makefile and nsis script. (Christian Brabandt)
Files:      Makefile, nsis/gvim.nsi

Patch 8.0.0411
Problem:    We can't change the case in menu entries, it breaks translations.
Solution:   Ignore case when looking up a menu translation.
Files:      src/menu.c, src/testdir/test_menu.vim

Patch 8.0.0412 (after 8.0.0411)
Problem:    Menu test fails on MS-Windows.
Solution:   Use a menu entry with only ASCII characters.
Files:      src/testdir/test_menu.vim

Patch 8.0.0413 (after 8.0.0412)
Problem:    Menu test fails on MS-Windows using gvim.
Solution:   First delete the English menus.
Files:      src/testdir/test_menu.vim

Patch 8.0.0414
Problem:    Balloon eval is not tested.
Solution:   Add a few balloon tests. (Kazunobu Kuriyama)
Files:      src/testdir/test_gui.vim

Patch 8.0.0415 (after 8.0.0414)
Problem:    Balloon test fails on MS-Windows.
Solution:   Test with 0x7fffffff instead of 0xffffffff.
Files:      src/testdir/test_gui.vim

Patch 8.0.0416
Problem:    Setting v:progpath is not quite right.
Solution:   On MS-Windows add the extension. On Unix use the full path for a
            relative directory. (partly by James McCoy, closes #1531)
Files:      src/main.c, src/os_win32.c, src/os_unix.c

Patch 8.0.0417
Problem:    Test for the clipboard fails sometimes.
Solution:   Add it to the flaky tests.
Files:      src/testdir/runtest.vim

Patch 8.0.0418
Problem:    ASAN logs are disabled and don't cause a failure.
Solution:   Enable ASAN logs and fail if not empty. (James McCoy,
            closes #1425)
Files:      .travis.yml

Patch 8.0.0419
Problem:    Test for v:progpath fails on MS-Windows.
Solution:   Expand to full path.  Also add ".exe" when the path is an absolute
            path.
Files:      src/os_win32.c, src/main.c

Patch 8.0.0420
Problem:    When running :make the output may be in the system encoding,
            different from 'encoding'.
Solution:   Add the 'makeencoding' option. (Ken Takata)
Files:      runtime/doc/options.txt, runtime/doc/quickfix.txt,
            runtime/doc/quickref.txt, src/Makefile, src/buffer.c,
            src/if_cscope.c, src/main.c, src/option.c, src/option.h,
            src/proto/quickfix.pro, src/quickfix.c, src/structs.h,
            src/testdir/Make_all.mak, src/testdir/test_makeencoding.py,
            src/testdir/test_makeencoding.vim

Patch 8.0.0421
Problem:    Diff mode is displayed wrong when adding a line at the end of a
            buffer.
Solution:   Adjust marks in diff mode. (James McCoy, closes #1329)
Files:      src/misc1.c, src/ops.c, src/testdir/test_diffmode.vim

Patch 8.0.0422
Problem:    Python test fails with Python 3.6.
Solution:   Convert new exception messages to old ones. (closes #1359)
Files:      src/testdir/test87.in

Patch 8.0.0423
Problem:    The effect of adding "#" to 'cinoptions' is not always removed.
            (David Briscoe)
Solution:   Reset b_ind_hash_comment. (Christian Brabandt, closes #1475)
Files:      src/misc1.c, src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_cindent.vim, src/testdir/test3.in

Patch 8.0.0424
Problem:    Compiler warnings on MS-Windows. (Ajit Thakkar)
Solution:   Add type casts.
Files:      src/os_win32.c

Patch 8.0.0425
Problem:    Build errors when building without folding.
Solution:   Add #ifdefs. (John Marriott)
Files:      src/diff.c, src/edit.c, src/option.c, src/syntax.c

Patch 8.0.0426
Problem:    Insufficient testing for statusline.
Solution:   Add several tests. (Dominique Pelle, closes #1534)
Files:      src/testdir/test_statusline.vim

Patch 8.0.0427
Problem:    'makeencoding' missing from the options window.
Solution:   Add the entry.
Files:      runtime/optwin.vim

Patch 8.0.0428
Problem:    Git and hg see new files after running tests. (Manuel Ortega)
Solution:   Add the generated file to .hgignore (or .gitignore). Delete the
            resulting verbose file. (Christian Brabandt)  Improve dependency
            on opt_test.vim.  Reset the 'more' option.
Files:      .hgignore, src/gen_opt_test.vim, src/testdir/gen_opt_test.vim,
            src/Makefile, src/testdir/Make_all.mak, src/testdir/Makefile,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            Filelist

Patch 8.0.0429
Problem:    Options test does not always test everything.
Solution:   Fix dependency for opt_test.vim.  Give a message when opt_test.vim
            was not found.
Files:      src/testdir/test_options.vim, src/testdir/gen_opt_test.vim,
            src/testdir/Makefile, src/testdir/Make_all.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak

Patch 8.0.0430
Problem:    Options test fails or hangs on MS-Windows.
Solution:   Run it separately instead of part of test_alot.  Use "-S" instead
            of "-u" to run the script.  Fix failures.
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,
            src/testdir/Makefile, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/gen_opt_test.vim

Patch 8.0.0431
Problem:    'cinoptions' cannot set indent for extern block.
Solution:   Add the "E" flag in 'cinoptions'. (Hirohito Higashi)
Files:      runtime/doc/indent.txt, src/misc1.c, src/structs.h,
            src/testdir/test_cindent.vim

Patch 8.0.0432
Problem:    "make shadow" creates an invalid link.
Solution:   Don't link "*.vim". (Kazunobu Kuriyama)
Files:      src/Makefile

Patch 8.0.0433
Problem:    Quite a few beeps when running tests.
Solution:   Set 'belloff' for these tests. (Christian Brabandt)
Files:      src/testdir/test103.in, src/testdir/test14.in,
            src/testdir/test29.in, src/testdir/test30.in,
            src/testdir/test32.in, src/testdir/test45.in,
            src/testdir/test72.in, src/testdir/test73.in,
            src/testdir/test77.in, src/testdir/test78.in,
            src/testdir/test85.in, src/testdir/test94.in,
            src/testdir/test_alot.vim, src/testdir/test_alot_utf8.vim,
            src/testdir/test_close_count.in, src/testdir/test_cmdline.vim,
            src/testdir/test_diffmode.vim, src/testdir/test_digraph.vim,
            src/testdir/test_erasebackword.in, src/testdir/test_normal.vim,
            src/testdir/test_packadd.vim, src/testdir/test_search.vim,
            src/testdir/test_textobjects.vim, src/testdir/test_undo.vim,
            src/testdir/test_usercommands.vim, src/testdir/test_visual.vim

Patch 8.0.0434
Problem:    Clang version not correctly detected.
Solution:   Adjust the configure script. (Kazunobu Kuriyama)
Files:      src/configure.ac, src/auto/configure

Patch 8.0.0435
Problem:    Some functions are not tested.
Solution:   Add more tests for functions. (Dominique Pelle, closes #1541)
Files:      src/testdir/test_functions.vim

Patch 8.0.0436
Problem:    Running the options test sometimes resizes the terminal.
Solution:   Clear out t_WS.
Files:      src/testdir/gen_opt_test.vim

Patch 8.0.0437
Problem:    The packadd test does not create the symlink correctly and does
            not test the right thing.
Solution:   Create the directory and symlink correctly.
Files:      src/testdir/test_packadd.vim

Patch 8.0.0438
Problem:    The fnamemodify test changes 'shell' in a way later tests may not
            be able to use system().
Solution:   Save and restore 'shell'.
Files:      src/testdir/test_fnamemodify.vim

Patch 8.0.0439
Problem:    Using ":%argdel" while the argument list is already empty gives an
            error. (Pavol Juhas)
Solution:   Don't give an error. (closes #1546)
Files:      src/ex_cmds2.c, src/testdir/test_arglist.vim

Patch 8.0.0440
Problem:    Not enough test coverage in Insert mode.
Solution:   Add lots of tests.  Add test_override(). (Christian Brabandt,
            closes #1521)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/edit.c,
            src/evalfunc.c, src/globals.h,  src/screen.c,
            src/testdir/Make_all.mak, src/testdir/test_cursor_func.vim,
            src/testdir/test_edit.vim, src/testdir/test_search.vim,
            src/testdir/test_assert.vim, src/Makefile, src/testdir/runtest.vim

Patch 8.0.0441
Problem:    Dead code in #ifdef.
Solution:   Remove the #ifdef and #else part.
Files:      src/option.c

Patch 8.0.0442
Problem:    Patch shell command uses double quotes around the argument, which
            allows for $HOME to be expanded. (Etienne)
Solution:   Use single quotes on Unix. (closes #1543)
Files:      src/diff.c, src/testdir/test_diffmode.vim

Patch 8.0.0443
Problem:    Terminal width is set to 80 in test3.
Solution:   Instead of setting 'columns' set 'wrapmargin' depending on
            'columns.
Files:      src/testdir/test3.in

Patch 8.0.0444 (after 8.0.0442)
Problem:    Diffpatch fails when the file name has a quote.
Solution:   Escape the name properly. (zetzei)
Files:      src/diff.c, src/testdir/test_diffmode.vim

Patch 8.0.0445
Problem:    Getpgid is not supported on all systems.
Solution:   Add a configure check.
Files:      src/configure.ac, src/auto/configure, src/config.h.in,
            src/os_unix.c

Patch 8.0.0446
Problem:    The ";" command does not work after characters with a lower byte
            that is NUL.
Solution:   Properly check for not having a previous character. (Hirohito
            Higashi)
Files:      src/Makefile, src/search.c, src/testdir/test_alot_utf8.vim,
            src/testdir/test_charsearch_utf8.vim

Patch 8.0.0447
Problem:    Getting font name does not work on X11.
Solution:   Implement gui_mch_get_fontname() for X11.  Add more GUI tests.
            (Kazunobu Kuriyama)
Files:      src/gui_x11.c, src/syntax.c, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Makefile,
            src/testdir/gui_init.vim, src/testdir/gui_preinit.vim,
            src/testdir/test_gui.vim, src/testdir/test_gui_init.vim,
            Filelist

Patch 8.0.0448
Problem:    Some macros are in lower case, which can be confusing.
Solution:   Make a few lower case macros upper case.
Files:      src/macros.h, src/buffer.c, src/charset.c, src/ops.c, src/diff.c,
            src/edit.c, src/evalfunc.c, src/ex_cmds.c, src/ex_getln.c,
            src/fileio.c, src/fold.c, src/gui.c, src/gui_beval.c, src/main.c,
            src/mark.c, src/misc1.c, src/move.c, src/normal.c,
            src/option.c, src/popupmnu.c, src/regexp.c, src/screen.c,
            src/search.c, src/spell.c, src/tag.c, src/ui.c, src/undo.c,
            src/version.c, src/workshop.c, src/if_perl.xs

Patch 8.0.0449 (after 8.0.0448)
Problem:    Part of fold patch accidentally included.
Solution:   Revert that part of the patch.
Files:      src/ex_cmds.c

Patch 8.0.0450
Problem:    v:progpath is not reliably set.
Solution:   Read /proc/self/exe if possible. (idea by Michal Grochmal)
            Also fixes missing #if.
Files:      src/main.c, src/config.h.in

Patch 8.0.0451
Problem:    Some macros are in lower case.
Solution:   Make a few more macros upper case. Avoid lower case macros use an
            argument twice.
Files:      src/macros.h, src/charset.c, src/misc2.c, src/proto/misc2.pro,
            src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
            src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/fold.c,
            src/gui.c, src/gui_gtk.c, src/mark.c, src/memline.c, src/mbyte.c,
            src/menu.c, src/message.c, src/misc1.c, src/ops.c, src/option.c,
            src/os_amiga.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c,
            src/popupmnu.c, src/regexp.c, src/regexp_nfa.c, src/screen.c,
            src/search.c, src/spell.c, src/spellfile.c, src/syntax.c,
            src/tag.c, src/ui.c, src/undo.c, src/window.c

Patch 8.0.0452
Problem:    Some macros are in lower case.
Solution:   Make a few more macros upper case.
Files:      src/vim.h, src/macros.h, src/evalfunc.c, src/fold.c,
            src/gui_gtk.c, src/gui_gtk_x11.c, src/charset.c, src/diff.c,
            src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
            src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/getchar.c,
            src/gui.c, src/gui_w32.c, src/if_cscope.c, src/mbyte.c,
            src/menu.c, src/message.c, src/misc1.c, src/misc2.c, src/normal.c,
            src/ops.c, src/option.c, src/os_unix.c, src/os_win32.c,
            src/quickfix.c, src/regexp.c, src/regexp_nfa.c, src/screen.c,
            src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/userfunc.c

Patch 8.0.0453
Problem:    Adding fold marker creates new comment.
Solution:   Use an existing comment if possible. (LemonBoy, closes #1549)
Files:      src/ops.c, src/proto/ops.pro, src/fold.c,
            src/testdir/test_fold.vim

Patch 8.0.0454
Problem:    Compiler warnings for comparing unsigned char with 256 always
            being true. (Manuel Ortega)
Solution:   Add type cast.
Files:      src/screen.c, src/charset.c

Patch 8.0.0455
Problem:    The mode test may hang in Test_mode(). (Michael Soyka)
Solution:   Set 'complete' to only search the current buffer (as suggested by
            Michael)
Files:      src/testdir/test_functions.vim

Patch 8.0.0456
Problem:    Typo in MinGW test makefile.
Solution:   Change an underscore to a dot. (Michael Soyka)
Files:      src/testdir/Make_ming.mak

Patch 8.0.0457
Problem:    Using :move messes up manual folds.
Solution:   Split adjusting marks and folds.  Add foldMoveRange(). (neovim
            patch #6221)
Files:      src/ex_cmds.c, src/fold.c, src/mark.c, src/proto/fold.pro,
            src/proto/mark.pro src/testdir/test_fold.vim

Patch 8.0.0458
Problem:    Potential crash if adding list or dict to dict fails.
Solution:   Make sure the reference count is correct. (Nikolai Pavlov, closes
            #1555)
Files:      src/dict.c

Patch 8.0.0459 (after 8.0.0457)
Problem:    Old fix for :move messing up folding no longer needed, now that we
            have a proper solution.
Solution:   Revert patch 7.4.700. (Christian Brabandt)
Files:      src/ex_cmds.c

Patch 8.0.0460 (after 8.0.0452)
Problem:    Can't build on HPUX.
Solution:   Fix argument names in vim_stat(). (John Marriott)
Files:      src/misc2.c

Patch 8.0.0461 (after 8.0.0457)
Problem:    Test 45 hangs on MS-Windows.
Solution:   Reset 'shiftwidth'.  Also remove redundant function.
Files:      src/fold.c, src/testdir/test45.in

Patch 8.0.0462
Problem:    If an MS-Windows tests succeeds at first and then fails in a way
            it does not produce a test.out file it looks like the test
            succeeded.
Solution:   Delete the previous output file.
Files:      src/testdir/Make_dos.mak

Patch 8.0.0463
Problem:    Resetting 'compatible' in defaults.vim has unexpected side
            effects. (David Fishburn)
Solution:   Only reset 'compatible' if it was set.
Files:      runtime/defaults.vim

Patch 8.0.0464
Problem:    Can't find executable name on Solaris and FreeBSD.
Solution:   Check for "/proc/self/path/a.out". (Danek Duvall) And for
            "/proc/curproc/file".
Files:      src/config.h.in, src/configure.ac, src/main.c,
            src/auto/configure

Patch 8.0.0465
Problem:    Off-by-one error in using :move with folding.
Solution:   Correct off-by-one mistakes and add more tests. (Matthew
            Malcomson)
Files:      src/fold.c, src/testdir/test_fold.vim

Patch 8.0.0466
Problem:    There are still a few macros that should be all-caps.
Solution:   Make a few more macros all-caps.
Files:      src/buffer.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/farsi.c, src/fileio.c,
	    src/getchar.c, src/gui_beval.c, src/hardcopy.c, src/if_cscope.c,
	    src/if_xcmdsrv.c, src/mark.c, src/memline.c, src/menu.c,
	    src/message.c, src/misc1.c, src/normal.c, src/ops.c, src/option.c,
	    src/quickfix.c, src/screen.c, src/search.c, src/syntax.c,
	    src/tag.c, src/term.c, src/term.h, src/ui.c, src/undo.c,
	    src/userfunc.c, src/version.c, src/vim.h

Patch 8.0.0467
Problem:    Using g< after :for does not show the right output. (Marcin
            Szamotulski)
Solution:   Call msg_sb_eol() in :echomsg.
Files:      src/eval.c

Patch 8.0.0468
Problem:    After aborting an Ex command g< does not work. (Marcin
            Szamotulski)
Solution:   Postpone clearing scrollback messages to until the command line
            has been entered.  Also fix that the screen isn't redrawn if after
            g< the command line is cancelled.
Files:      src/message.c, src/proto/message.pro, src/ex_getln.c, src/misc2.c,
            src/gui.c

Patch 8.0.0469
Problem:    Compiler warnings on MS-Windows.
Solution:   Add type casts. (Christian Brabandt)
Files:      src/fold.c

Patch 8.0.0470
Problem:    Not enough testing for help commands.
Solution:   Add a few more help tests. (Dominique Pelle, closes #1565)
Files:      src/testdir/test_help.vim, src/testdir/test_help_tagjump.vim

Patch 8.0.0471
Problem:    Exit callback test sometimes fails.
Solution:   Add it to the list of flaky tests.
Files:      src/testdir/runtest.vim

Patch 8.0.0472
Problem:    When a test fails and test.log is created, Test_edit_CTRL_I
            matches it instead of test1.in.
Solution:   Match with runtest.vim instead.
Files:      src/testdir/test_edit.vim

Patch 8.0.0473
Problem:    No test covering arg_all().
Solution:   Add a test expanding ##.
Files:      src/testdir/test_arglist.vim

Patch 8.0.0474
Problem:    The client-server feature is not tested.
Solution:   Add a test.
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/shared.vim,
            src/testdir/test_clientserver.vim, src/os_mswin.c

Patch 8.0.0475
Problem:    Not enough testing for the client-server feature.
Solution:   Add more tests.  Add the remote_startserver() function.  Fix that
            a locally evaluated expression uses function-local variables.
Files:      src/if_xcmdsrv.c, src/evalfunc.c, src/os_mswin.c,
            src/proto/main.pro, src/testdir/test_clientserver.vim,
            runtime/doc/eval.txt

Patch 8.0.0476 (after 8.0.0475)
Problem:    Missing change to main.c.
Solution:   Add new function.
Files:      src/main.c

Patch 8.0.0477
Problem:    The client-server test may hang when failing.
Solution:   Set a timer.  Add assert_report()
Files:      src/testdir/test_clientserver.vim, src/testdir/runtest.vim,
            src/eval.c, src/evalfunc.c, src/proto/eval.pro, src/if_xcmdsrv.c,
            src/os_mswin.c, runtime/doc/eval.txt

Patch 8.0.0478
Problem:    Tests use assert_true(0) and assert_false(1) to report errors.
Solution:   Use assert_report().
Files:      src/testdir/test_cscope.vim, src/testdir/test_expr.vim,
            src/testdir/test_perl.vim, src/testdir/test_channel.vim,
            src/testdir/test_cursor_func.vim, src/testdir/test_gui.vim,
            src/testdir/test_menu.vim, src/testdir/test_popup.vim,
            src/testdir/test_viminfo.vim, src/testdir/test_vimscript.vim,
            src/testdir/test_assert.vim

Patch 8.0.0479
Problem:    remote_peek() is not tested.
Solution:   Add a test.
Files:      src/testdir/test_clientserver.vim, src/testdir/runtest.vim

Patch 8.0.0480
Problem:    The remote_peek() test fails on MS-Windows.
Solution:   Check for pending messages. Also report errors in the first run if
            a flaky test fails twice.
Files:      src/os_mswin.c, src/testdir/runtest.vim

Patch 8.0.0481
Problem:    Unnecessary if statement.
Solution:   Remove the statement.  Fix "it's" vs "its" mistakes. (Dominique
            Pelle, closes #1568)
Files:      src/syntax.c

Patch 8.0.0482
Problem:    The setbufvar() function may mess up the window layout. (Kay Z.)
Solution:   Do not check the window to be valid if it is NULL.
Files:      src/window.c, src/testdir/test_functions.vim

Patch 8.0.0483
Problem:    Illegal memory access when using :all. (Dominique Pelle)
Solution:   Adjust the cursor position right after setting "curwin".
Files:      src/window.c, src/testdir/test_window_cmd.vim

Patch 8.0.0484
Problem:    Using :lhelpgrep with an argument that should fail does not
            produce an error if the previous :helpgrep worked.
Solution:   Use another way to detect that autocommands made the quickfix info
            invalid. (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0485
Problem:    Not all windows commands are tested.
Solution:   Add more tests for windows commands. (Dominique Pelle,
            closes #1575) Run test_autocmd separately, it interferes with
            other tests.  Fix tests that depended on side effects.
Files:      src/testdir/test_window_cmd.vim, src/testdir/test_alot.vim,
            src/testdir/test_autocmd.vim, src/testdir/test_fnamemodify.vim,
            src/testdir/test_functions.vim, src/testdir/test_delete.vim,
            src/testdir/Make_all.mak

Patch 8.0.0486
Problem:    Crash and endless loop when closing windows in a SessionLoadPost
            autocommand.
Solution:   Check for valid tabpage.  (partly neovim #6308)
Files:      src/testdir/test_autocmd.vim, src/fileio.c, src/proto/window.pro,
            src/window.c

Patch 8.0.0487
Problem:    The autocmd test hangs on MS-Windows.
Solution:   Skip the hanging tests for now.
Files:      src/testdir/test_autocmd.vim

Patch 8.0.0488
Problem:    Running tests leaves an "xxx" file behind.
Solution:   Delete the 'verbosefile' after resetting the option.
Files:      src/testdir/gen_opt_test.vim

Patch 8.0.0489
Problem:    Clipboard and "* register is not tested.
Solution:   Add a test for Mac and X11. (Kazunobu Kuriyama)
Files:      src/Makefile, src/testdir/Make_all.mak,
            src/testdir/test_quotestar.vim, src/testdir/runtest.vim

Patch 8.0.0490
Problem:    Splitting a 'winfixwidth' window vertically makes it one column
            smaller. (Dominique Pelle)
Solution:   Add one to the width for the separator.
Files:      src/window.c, src/testdir/test_window_cmd.vim

Patch 8.0.0491
Problem:    The quotestar test fails when a required feature is missing.
Solution:   Prepend "Skipped" to the thrown exception.
Files:      src/testdir/test_quotestar.vim

Patch 8.0.0492
Problem:    A failing client-server request can make Vim hang.
Solution:   Add a timeout argument to functions that wait.
Files:      src/evalfunc.c, src/if_xcmdsrv.c, src/proto/if_xcmdsrv.pro,
            src/main.c, src/os_mswin.c, src/proto/os_mswin.pro,
            src/vim.h, runtime/doc/eval.txt, src/testdir/test_clientserver.vim

Patch 8.0.0493
Problem:    Crash with cd command with very long argument.
Solution:   Check for running out of space. (Dominique Pelle, closes #1576)
Files:      src/testdir/test_alot.vim, src/testdir/test_cd.vim, src/Makefile,
            src/misc2.c

Patch 8.0.0494
Problem:    Build failure with older compiler on MS-Windows.
Solution:   Move declaration to start of block.
Files:      src/evalfunc.c, src/main.c, src/os_mswin.c

Patch 8.0.0495
Problem:    The quotestar test uses a timer instead of a timeout, thus it
            cannot be rerun like a flaky test.
Solution:   Remove the timer and add a timeout. (Kazunobu Kuriyama)
Files:      src/testdir/test_quotestar.vim

Patch 8.0.0496
Problem:    Insufficient testing for folding.
Solution:   Add a couple more fold tests. (Dominique Pelle, closes #1579)
Files:      src/testdir/test_fold.vim

Patch 8.0.0497
Problem:    Arabic support is not fully tested.
Solution:   Add more tests for the untested functions.  Comment out
            unreachable code.
Files:      src/arabic.c, src/testdir/test_arabic.vim

Patch 8.0.0498
Problem:    Two autocmd tests are skipped on MS-Windows.
Solution:   Make the test pass on MS-Windows. Write the messages in a file
            instead of getting the output of system().
Files:      src/testdir/test_autocmd.vim

Patch 8.0.0499
Problem:    taglist() does not prioritize tags for a buffer.
Solution:   Add an optional buffer argument. (Duncan McDougall, closes #1194) 
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/proto/tag.pro,
            src/Makefile, src/tag.c, src/testdir/test_alot.vim,
            src/testdir/test_taglist.vim

Patch 8.0.0500
Problem:    Quotestar test is still a bit flaky.
Solution:   Add a slower check for v:version.
Files:      src/testdir/test_quotestar.vim

Patch 8.0.0501
Problem:    On MS-Windows ":!start" does not work as expected.
Solution:   When creating a process fails try passing the argument to
            ShellExecute().  (Katsuya Hino, closes #1570)
Files:      runtime/doc/os_win32.txt, src/os_win32.c

Patch 8.0.0502
Problem:    Coverity complains about possible NULL pointer.
Solution:   Add an assert(), let's see if this works on all systems.
Files:      src/window.c

Patch 8.0.0503
Problem:    Endless loop in updating folds with 32 bit ints.
Solution:   Subtract from LHS instead of add to the RHS. (Matthew Malcomson)
Files:      src/fold.c

Patch 8.0.0504
Problem:    Looking up an Ex command is a bit slow.
Solution:   Instead of just using the first letter, also use the second letter
            to skip ahead in the list of commands. Generate the table with a
            Perl script. (Dominique Pelle, closes #1589)
Files:      src/Makefile, src/create_cmdidxs.pl, src/ex_docmd.c, Filelist

Patch 8.0.0505
Problem:    Failed window split for :stag not handled. (Coverity CID 99204)
Solution:   If the split fails skip to the end. (bstaletic, closes #1577)
Files:      src/tag.c

Patch 8.0.0506 (after 8.0.0504)
Problem:    Can't build with ANSI C.
Solution:   Move declarations to start of block.
Files:      src/ex_docmd.c

Patch 8.0.0507
Problem:    Client-server tests fail when $DISPLAY is not set.
Solution:   Check for E240 before running the test.
Files:      src/testdir/test_quotestar.vim, src/testdir/test_clientserver.vim

Patch 8.0.0508
Problem:    Coveralls no longer shows per-file coverage.
Solution:   Add coverage from codecov.io. (Christian Brabandt)
Files:      .travis.yml

Patch 8.0.0509
Problem:    No link to codecov.io results.
Solution:   Add a badge to the readme file.
Files:      README.md

Patch 8.0.0510 (after 8.0.0509)
Problem:    Typo in link to codecov.io results.
Solution:   Remove duplicate https:.
Files:      README.md

Patch 8.0.0511
Problem:    Message for skipping client-server tests is unclear.
Solution:   Be more specific about what's missing (Hirohito Higashi, Kazunobu
            Kuriyama)
Files:      src/testdir/test_quotestar.vim, src/testdir/test_clientserver.vim

Patch 8.0.0512
Problem:    Check for available characters takes too long.
Solution:   Only check did_start_blocking if wtime is negative. (Daisuke
            Suzuki, closes #1591)
Files:      src/os_unix.c

Patch 8.0.0513 (after 8.0.0201)
Problem:    Getting name of cleared highlight group is wrong. (Matt Wozniski)
Solution:   Only skip over cleared names for completion. (closes #1592)
            Also fix that a cleared group causes duplicate completions.
Files:      src/syntax.c, src/proto/syntax.pro, src/evalfunc.c,
            src/ex_cmds.c, src/testdir/test_syntax.vim,
            src/testdir/test_cmdline.vim

Patch 8.0.0514
Problem:    Script for creating cmdidxs can be improved.
Solution:   Count skipped lines instead of collecting the lines.  Add "const".
            (Dominique Pelle, closes #1594)
Files:      src/create_cmdidxs.pl, src/ex_docmd.c

Patch 8.0.0515
Problem:    ml_get errors in silent Ex mode. (Dominique Pelle)
Solution:   Clear valid flags when setting the cursor.  Set the topline when
            not in full screen mode.
Files:      src/ex_docmd.c, src/move.c, src/testdir/test_startup.vim

Patch 8.0.0516
Problem:    A large count on a normal command causes trouble. (Dominique
            Pelle)
Solution:   Make "opcount" long.
Files:      src/globals.h, src/testdir/test_normal.vim

Patch 8.0.0517
Problem:    There is no way to remove quickfix lists (for testing).
Solution:   Add the 'f' action to setqflist(). Add tests. (Yegappan
            Lakshmanan)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/quickfix.c,
            src/testdir/test_quickfix.vim

Patch 8.0.0518
Problem:    Storing a zero byte from a multi-byte character causes fold text
            to show up wrong.
Solution:   Avoid putting zero in ScreenLines. (Christian Brabandt,
            closes #1567)
Files:      src/screen.c, src/testdir/test_display.vim

Patch 8.0.0519
Problem:    Character classes are not well tested. They can differ between
            platforms.
Solution:   Add tests.  In the documentation make clear which classes depend
            on what library function.  Only use :cntrl: and :graph: for ASCII.
            (Kazunobu Kuriyama, Dominique Pelle, closes #1560)
            Update the documentation.
Files:      src/regexp.c, src/regexp_nfa.c, runtime/doc/pattern.txt,
            src/testdir/test_regexp_utf8.vim

Patch 8.0.0520
Problem:    Using a function pointer instead of the actual function, which we
            know.
Solution:   Change mb_ functions to utf_ functions when already checked for
            Unicode. (Dominique Pelle, closes #1582)
Files:      src/message.c, src/misc2.c, src/regexp.c, src/regexp_nfa.c,
            src/screen.c, src/spell.c

Patch 8.0.0521
Problem:    GtkForm handling is outdated.
Solution:   Get rid of event filter functions.  Get rid of GtkForm.width and
            .height.  Eliminate gtk_widget_size_request() calls. (Kazunobu
            Kuriyama)
Files:      src/gui_gtk_f.c, src/gui_gtk_f.h

Patch 8.0.0522
Problem:    MS-Windows: when 'clipboard' is "unnamed" yyp does not work in a
            :global command.
Solution:   When setting the clipboard was postponed, do not clear the
            register.
Files:      src/ops.c, src/proto/ui.pro, src/ui.c, src/globals.h,
            src/testdir/test_global.vim, src/Makefile,
            src/testdir/test_alot.vim

Patch 8.0.0523
Problem:    dv} deletes part of a multi-byte character. (Urtica Dioica)
Solution:   Include the whole character.
Files:      src/search.c, src/testdir/test_normal.vim

Patch 8.0.0524 (after 8.0.0518)
Problem:    Folds are messed up when 'encoding' is "utf-8".
Solution:   Also set the fold character when it's not multi-byte.
Files:      src/screen.c, src/testdir/test_display.vim

Patch 8.0.0525
Solution:   Completion for user command argument not tested.
Problem:    Add a test.
Files:      src/testdir/test_cmdline.vim

Patch 8.0.0526
Problem:    Coverity complains about possible negative value.
Solution:   Check return value of ftell() not to be negative.
Files:      src/os_unix.c

Patch 8.0.0527
Problem:    RISC OS support was removed long ago, but one file is still
            included.
Solution:   Delete the file. (Thomas Dziedzic, closes #1603)
Files:      Filelist, src/swis.s

Patch 8.0.0528
Problem:    When 'wildmenu' is set and 'wildmode' has "longest" then the first
            file name is highlighted, even though the text shows the longest
            match.
Solution:   Do not highlight the first match. (LemonBoy, closes #1602)
Files:      src/ex_getln.c

Patch 8.0.0529
Problem:    Line in test commented out.
Solution:   Uncomment the lines for character classes that were failing before
            8.0.0519. (Dominique Pelle, closes #1599)
Files:      src/testdir/test_regexp_utf8.vim

Patch 8.0.0530
Problem:    Buffer overflow when 'columns' is very big. (Nikolai Pavlov)
Solution:   Correctly compute where to truncate.  Fix translation.
            (closes #1600)
Files:      src/edit.c, src/testdir/test_edit.vim

Patch 8.0.0531 (after 8.0.0530)
Problem:    Test with long directory name fails on non-unix systems.
Solution:   Skip the test on non-unix systems.
Files:      src/testdir/test_edit.vim

Patch 8.0.0532 (after 8.0.0531)
Problem:    Test with long directory name fails on Mac.
Solution:   Skip the test on Mac systems.
Files:      src/testdir/test_edit.vim

Patch 8.0.0533
Problem:    Abbreviation doesn't work after backspacing newline. (Hkonrk)
Solution:   Set the insert start column. (closes #1609)
Files:      src/testdir/test_mapping.vim, src/edit.c

Patch 8.0.0534
Problem:    Defaults.vim does not work well with tiny features. (crd477)
Solution:   When the +eval feature is not available always reset 'compatible'.
Files:      runtime/defaults.vim

Patch 8.0.0535
Problem:    Memory leak when exiting from within a user function.
Solution:   Clear the function call stack on exit.
Files:      src/userfunc.c

Patch 8.0.0536
Problem:    Quickfix window not updated when freeing quickfix stack.
Solution:   Update the quickfix window. (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0537
Problem:    Illegal memory access with :z and large count.
Solution:   Check for number overflow, using long instead of int. (Dominique
            Pelle, closes #1612)
Files:      src/Makefile, src/ex_cmds.c, src/testdir/test_alot.vim,
            src/testdir/test_ex_z.vim

Patch 8.0.0538
Problem:    No test for falling back to default term value.
Solution:   Add a test.
Files:      src/testdir/test_startup.vim

Patch 8.0.0539 (after 8.0.0538)
Problem:    Startup test fails on Mac.
Solution:   Use another term name, "unknown" is known. Avoid a 2 second delay.
Files:      src/testdir/test_startup.vim, src/main.c, src/proto/main.pro,
            src/term.c

Patch 8.0.0540 (after 8.0.0540)
Problem:    Building unit tests fails.
Solution:   Move params outside of #ifdef.
Files:      src/main.c, src/message_test.c

Patch 8.0.0541
Problem:    Compiler warning on MS-Windows.
Solution:   Add a type cast. (Mike Williams)
Files:      src/edit.c

Patch 8.0.0542
Problem:    getpos() can return a negative line number. (haya14busa)
Solution:   Handle a zero topline and botline. (closes #1613)
Files:      src/eval.c, runtime/doc/eval.txt

Patch 8.0.0543
Problem:    Test_edit causes older xfce4-terminal to close. (Dominique Pelle)
Solution:   Reduce number of columns to 2000.  Try to restore the window
            position.
Files:      src/testdir/test_edit.vim, src/evalfunc.c, src/term.c,
            src/proto/term.pro, src/term.h

Patch 8.0.0544
Problem:    Cppcheck warnings.
Solution:   Use temp variable. Change NUL to NULL. Swap conditions. (Dominique
            Pelle)
Files:      src/channel.c, src/edit.c, src/farsi.c

Patch 8.0.0545
Problem:    Edit test may fail on some systems.
Solution:   If creating a directory with a very long path fails, bail out.
Files:      src/testdir/test_edit.vim

Patch 8.0.0546
Problem:    Swap file exists briefly when opening the command window.
Solution:   Set the noswapfile command modifier before splitting the window.
            (James McCoy, closes #1620)
Files:      src/ex_getln.c, src/option.c

Patch 8.0.0547
Problem:    Extra line break in verbosefile when using ":echomsg". (Ingo
            Karkat)
Solution:   Don't call msg_start(). (closes #1618)
Files:      src/eval.c, src/testdir/test_cmdline.vim

Patch 8.0.0548
Problem:    Saving the redo buffer only works one time, resulting in the "."
            command not working well for a function call inside another
            function call. (Ingo Karkat)
Solution:   Save the redo buffer at every user function call. (closes #1619)
Files:      src/getchar.c, src/proto/getchar.pro, src/structs.h,
            src/fileio.c, src/userfunc.c, src/testdir/test_functions.vim

Patch 8.0.0549
Problem:    No test for the 8g8 command.
Solution:   Add a test. (Dominique Pelle, closes #1615)
Files:      src/testdir/test_normal.vim

Patch 8.0.0550
Problem:    Some etags format tags file use 0x01, breaking the parsing.
Solution:   Use 0x02 for TAG_SEP. (James McCoy, closes #1614)
Files:      src/tag.c, src/testdir/test_taglist.vim

Patch 8.0.0551
Problem:    The typeahead buffer is reallocated too often.
Solution:   Re-use the existing buffer if possible.
Files:      src/getchar.c

Patch 8.0.0552
Problem:    Toupper and tolower don't work properly for Turkish when 'casemap'
            is empty. (Bjorn Linse)
Solution:   Check the 'casemap' options when deciding how to upper/lower case.
Files:      src/charset.c, src/testdir/test_normal.vim

Patch 8.0.0553 (after 8.0.0552)
Problem:    Toupper/tolower test with Turkish locale fails on Mac.
Solution:   Skip the test on Mac.
Files:      src/testdir/test_normal.vim

Patch 8.0.0554 (after 8.0.0552)
Problem:    Toupper and tolower don't work properly for Turkish when 'casemap'
            contains "keepascii". (Bjorn Linse)
Solution:   When 'casemap' contains "keepascii" use ASCII toupper/tolower.
Files:      src/charset.c, src/testdir/test_normal.vim

Patch 8.0.0555 (after 8.0.0552)
Problem:    Toupper/tolower test fails on OSX without Darwin.
Solution:   Skip that part of the test also for OSX. (Kazunobu Kuriyama)
Files:      src/testdir/test_normal.vim

Patch 8.0.0556
Problem:    Getting the window position fails if both the GUI and term
            code is built in.
Solution:   Return after getting the GUI window position. (Kazunobu Kuriyama)
Files:      src/evalfunc.c

Patch 8.0.0557
Problem:    GTK: using static gravities is not useful.
Solution:   Remove setting static gravities. (Kazunobu Kuriyama)
Files:      src/gui_gtk_f.c

Patch 8.0.0558
Problem:    The :ownsyntax command is not tested.
Solution:   Add a test. (Dominique Pelle, closes #1622)
Files:      src/testdir/test_syntax.vim

Patch 8.0.0559
Problem:    Setting 'ttytype' to xxx does not always fail as expected. (Marvin
            Schmidt)
Solution:   Catch both possible errors. (closes #1601)
Files:      src/testdir/test_options.vim

Patch 8.0.0560
Problem:    :windo allows for ! but it's not supported.
Solution:   Disallow passing !. (Hirohito Higashi)
Files:      src/ex_cmds.h

Patch 8.0.0561
Problem:    Undefined behavior when using backslash after empty line.
Solution:   Check for an empty line. (Dominique Pelle, closes #1631)
Files:      src/misc2.c, src/testdir/test_vimscript.vim

Patch 8.0.0562
Problem:    Not enough test coverage for syntax commands.
Solution:   Add a few more tests. (Dominique Pelle, closes #1624)
Files:      src/testdir/test_cmdline.vim, src/testdir/test_syntax.vim

Patch 8.0.0563
Problem:    Crash when getting the window position in tmux. (Marvin Schmidt)
Solution:   Add t_GP to the list of terminal options. (closes #1627)
Files:      src/option.c

Patch 8.0.0564
Problem:    Cannot detect Bazel BUILD files on some systems.
Solution:   Check for BUILD after script checks. (Issue #1340)
Files:      runtime/filetype.vim

Patch 8.0.0565
Problem:    Using freed memory in :caddbuf after clearing quickfix list.
            (Dominique Pelle)
Solution:   Set qf_last to NULL.
Files:      src/quickfix.c

Patch 8.0.0566
Problem:    Setting 'nocompatible' for the tiny version moves the cursor.
Solution:   Use another trick to skip commands when the +eval feature is
            present. (Christian Brabandt, closes #1630)
Files:      runtime/defaults.vim

Patch 8.0.0567
Problem:    Call for requesting color and ambiwidth is too early. (Hirohito
            Higashi)
Solution:   Move the call down to below resetting "starting".
Files:      src/main.c

Patch 8.0.0568
Problem:    "1gd" may hang.
Solution:   Don't get stuck in one position. (Christian Brabandt, closes #1643)
Files:      src/testdir/test_goto.vim, src/normal.c

Patch 8.0.0569
Problem:    Bracketed paste is still enabled when executing a shell command.
            (Michael Smith)
Solution:   Disable bracketed paste when going into cooked mode. (closes #1638)
Files:      src/term.c

Patch 8.0.0570
Problem:    Can't run make with several jobs, creating directories has a race
            condition.
Solution:   Use the MKDIR_P autoconf mechanism. (Eric N. Vander Weele,
            closes #1639)
Files:      src/configure.ac, src/auto/configure, src/Makefile,
            src/config.mk.in, src/install-sh, src/mkinstalldirs, Filelist

Patch 8.0.0571
Problem:    The cursor line number becomes negative when using :z^ in an empty
            buffer. (neovim #6557)
Solution:   Correct the line number.  Also reset the column.
Files:      src/testdir/test_ex_z.vim, src/ex_cmds.c

Patch 8.0.0572
Problem:    Building the command table requires Perl.
Solution:   Use a Vim script solution. (Dominique Pelle, closes #1641)
Files:      src/Makefile, src/create_cmdidxs.pl, src/create_cmdidxs.vim,
            src/ex_cmdidxs.h, src/ex_docmd.c, Filelist

Patch 8.0.0573
Problem:    Running parallel make after distclean fails. (Manuel Ortega)
Solution:   Instead of using targets "scratch config myself" use "reconfig".
Files:      src/Makefile, src/config.mk.dist

Patch 8.0.0574
Problem:    Get only one quickfix list after :caddbuf.
Solution:   Reset qf_multiline. (Yegappan Lakshmanan)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.0.0575
Problem:    Using freed memory when resetting 'indentexpr' while evaluating
            it. (Dominique Pelle)
Solution:   Make a copy of 'indentexpr'.
Files:      src/misc1.c, src/testdir/test_options.vim

Patch 8.0.0576 (after 8.0.0570 and 8.0.0573)
Problem:    Can't build when configure chooses "install-sh". (Daniel Hahler)
Solution:   Always use install-sh.  Fix remaining use of mkinstalldirs.
            (closes #1647)
Files:      src/installman.sh, src/installml.sh, src/config.mk.in,
            src/configure.ac, src/auto/configure, src/Makefile

Patch 8.0.0577 (after 8.0.0575)
Problem:    Warning for uninitialized variable. (John Marriott)
Solution:   Initialize "indent".
Files:      src/misc1.c

Patch 8.0.0578
Problem:    :simalt on MS-Windows does not work properly.
Solution:   Put something in the typeahead buffer. (Christian Brabandt)
Files:      src/gui_w32.c

Patch 8.0.0579
Problem:    Duplicate test case for quickfix.
Solution:   Remove the function. (Yegappan Lakshmanan)
Files:      src/testdir/test_quickfix.vim

Patch 8.0.0580
Problem:    Cannot set the valid flag with setqflist().
Solution:   Add the "valid" argument. (Yegappan Lakshmanan, closes #1642)
Files:      runtime/doc/eval.txt, src/quickfix.c,
            src/testdir/test_quickfix.vim

Patch 8.0.0581
Problem:    Moving folded text is sometimes not correct.
Solution:   Bail out when "move_end" is zero. (Matthew Malcomson)
Files:      src/fold.c, src/testdir/test_fold.vim

Patch 8.0.0582
Problem:    Illegal memory access with z= command. (Dominique Pelle)
Solution:   Avoid case folded text to be longer than the original text.  Use
            MB_PTR2LEN() instead of MB_BYTE2LEN().
Files:      src/spell.c, src/testdir/test_spell.vim

Patch 8.0.0583
Problem:    Fold test hangs on MS-Windows.
Solution:   Avoid overflow in compare.
Files:      src/fold.c

Patch 8.0.0584
Problem:    Memory leak when executing quickfix tests.
Solution:   Free the list reference. (Yegappan Lakshmanan)
Files:      src/quickfix.c

Patch 8.0.0585
Problem:    Test_options fails when run in the GUI.
Solution:   Also check the 'imactivatekey' value when the GUI is not running.
            Specify test values that work and that fail.
Files:      src/option.c, src/testdir/gen_opt_test.vim

Patch 8.0.0586
Problem:    No test for mapping timing out.
Solution:   Add a test.
Files:      src/testdir/test_mapping.vim

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z#�J�(�(vim80/doc/usr_31.txtnu�[���*usr_31.txt*	For Vim version 8.0.  Last change: 2007 May 08

		     VIM USER MANUAL - by Bram Moolenaar

			      Exploiting the GUI


Vim works well in a terminal, but the GUI has a few extra items.  A file
browser can be used for commands that use a file.  A dialog to make a choice
between alternatives.  Use keyboard shortcuts to access menu items quickly.

|31.1|	The file browser
|31.2|	Confirmation
|31.3|	Menu shortcuts
|31.4|	Vim window position and size
|31.5|	Various

     Next chapter: |usr_32.txt|  The undo tree
 Previous chapter: |usr_30.txt|  Editing programs
Table of contents: |usr_toc.txt|

==============================================================================
*31.1*	The file browser

When using the File/Open... menu you get a file browser.  This makes it easier
to find the file you want to edit.  But what if you want to split a window to
edit another file?  There is no menu entry for this.  You could first use
Window/Split and then File/Open..., but that's more work.
   Since you are typing most commands in Vim, opening the file browser with a
typed command is possible as well.  To make the split command use the file
browser, prepend "browse": >

	:browse split

Select a file and then the ":split" command will be executed with it.  If you
cancel the file dialog nothing happens, the window isn't split.
   You can also specify a file name argument.  This is used to tell the file
browser where to start.  Example: >

	:browse split /etc

The file browser will pop up, starting in the directory "/etc".

The ":browse" command can be prepended to just about any command that opens a
file.
   If no directory is specified, Vim will decide where to start the file
browser.  By default it uses the same directory as the last time.  Thus when
you used ":browse split" and selected a file in "/usr/local/share", the next
time you use a ":browse" it will start in "/usr/local/share" again.
   This can be changed with the 'browsedir' option.  It can have one of three
values:

	last		Use the last directory browsed (default)
	buffer		Use the same directory as the current buffer
	current		use the current directory

For example, when you are in the directory "/usr", editing the file
"/usr/local/share/readme", then the command: >

	:set browsedir=buffer
	:browse edit

Will start the browser in "/usr/local/share".  Alternatively: >

	:set browsedir=current
	:browse edit

Will start the browser in "/usr".

	Note:
	To avoid using the mouse, most file browsers offer using key presses
	to navigate.  Since this is different for every system, it is not
	explained here.  Vim uses a standard browser when possible, your
	system documentation should contain an explanation on the keyboard
	shortcuts somewhere.

When you are not using the GUI version, you could use the file explorer window
to select files like in a file browser.  However, this doesn't work for the
":browse" command.  See |netrw-browse|.

==============================================================================
*31.2*	Confirmation

Vim protects you from accidentally overwriting a file and other ways to lose
changes.  If you do something that might be a bad thing to do, Vim produces an
error message and suggests appending ! if you really want to do it.
   To avoid retyping the command with the !, you can make Vim give you a
dialog.  You can then press "OK" or "Cancel" to tell Vim what you want.
   For example, you are editing a file and made changes to it.  You start
editing another file with: >

	:confirm edit foo.txt

Vim will pop up a dialog that looks something like this:

	+-----------------------------------+
	|				    |
	|   ?	Save changes to "bar.txt"?  |
	|				    |
	|   YES   NO		 CANCEL     |
	+-----------------------------------+

Now make your choice.  If you do want to save the changes, select "YES".  If
you want to lose the changes for ever: "NO".  If you forgot what you were
doing and want to check what really changed use "CANCEL".  You will be back in
the same file, with the changes still there.

Just like ":browse", the ":confirm" command can be prepended to most commands
that edit another file.  They can also be combined: >

	:confirm browse edit

This will produce a dialog when the current buffer was changed.  Then it will
pop up a file browser to select the file to edit.

	Note:
	In the dialog you can use the keyboard to select the choice.
	Typically the <Tab> key and the cursor keys change the choice.
	Pressing <Enter> selects the choice.  This depends on the system
	though.

When you are not using the GUI, the ":confirm" command works as well.  Instead
of popping up a dialog, Vim will print the message at the bottom of the Vim
window and ask you to press a key to make a choice. >

	:confirm edit main.c
<	Save changes to "Untitled"? ~
	[Y]es, (N)o, (C)ancel:  ~

You can now press the single key for the choice.  You don't have to press
<Enter>, unlike other typing on the command line.

==============================================================================
*31.3*	Menu shortcuts

The keyboard is used for all Vim commands.  The menus provide a simple way to
select commands, without knowing what they are called.  But you have to move
your hand from the keyboard and grab the mouse.
   Menus can often be selected with keys as well.  This depends on your
system, but most often it works this way.  Use the <Alt> key in combination
with the underlined letter of a menu.  For example, <A-w> (<Alt> and w) pops
up the Window menu.
   In the Window menu, the "split" item has the p underlined.  To select it,
let go of the <Alt> key and press p.

After the first selection of a menu with the <Alt> key, you can use the cursor
keys to move through the menus.  <Right> selects a submenu and <left> closes
it.  <Esc> also closes a menu.  <Enter> selects a menu item.

There is a conflict between using the <Alt> key to select menu items, and
using <Alt> key combinations for mappings.  The 'winaltkeys' option tells Vim
what it should do with the <Alt> key.
   The default value "menu" is the smart choice: If the key combination is a
menu shortcut it can't be mapped.  All other keys are available for mapping.
   The value "no" doesn't use any <Alt> keys for the menus.  Thus you must use
the mouse for the menus, and all <Alt> keys can be mapped.
   The value "yes" means that Vim will use any <Alt> keys for the menus.  Some
<Alt> key combinations may also do other things than selecting a menu.

==============================================================================
*31.4*	Vim window position and size

To see the current Vim window position on the screen use: >

	:winpos

This will only work in the GUI.  The output may look like this:

	Window position: X 272, Y 103 ~

The position is given in screen pixels.  Now you can use the numbers to move
Vim somewhere else.  For example, to move it to the left a hundred pixels: >

	:winpos 172 103
<
	Note:
	There may be a small offset between the reported position and where
	the window moves.  This is because of the border around the window.
	This is added by the window manager.

You can use this command in your startup script to position the window at a
specific position.

The size of the Vim window is computed in characters.  Thus this depends on
the size of the font being used.  You can see the current size with this
command: >

	:set lines columns

To change the size set the 'lines' and/or 'columns' options to a new value: >

	:set lines=50
	:set columns=80

Obtaining the size works in a terminal just like in the GUI.  Setting the size
is not possible in most terminals.

You can start the X-Windows version of gvim with an argument to specify the
size and position of the window: >

	gvim -geometry {width}x{height}+{x_offset}+{y_offset}

{width} and {height} are in characters, {x_offset} and {y_offset} are in
pixels.  Example: >

	gvim -geometry 80x25+100+300

==============================================================================
*31.5*	Various

You can use gvim to edit an e-mail message.  In your e-mail program you must
select gvim to be the editor for messages.  When you try that, you will
see that it doesn't work: The mail program thinks that editing is finished,
while gvim is still running!
   What happens is that gvim disconnects from the shell it was started in.
That is fine when you start gvim in a terminal, so that you can do other work
in that terminal.  But when you really want to wait for gvim to finish, you
must prevent it from disconnecting.  The "-f" argument does this: >

	gvim -f file.txt

The "-f" stands for foreground.  Now Vim will block the shell it was started
in until you finish editing and exit.


DELAYED START OF THE GUI

On Unix it's possible to first start Vim in a terminal.  That's useful if you
do various tasks in the same shell.  If you are editing a file and decide you
want to use the GUI after all, you can start it with: >

	:gui

Vim will open the GUI window and no longer use the terminal.  You can continue
using the terminal for something else.  The "-f" argument is used here to run
the GUI in the foreground.  You can also use ":gui -f".


THE GVIM STARTUP FILE

When gvim starts, it reads the gvimrc file.  That's similar to the vimrc file
used when starting Vim.  The gvimrc file can be used for settings and commands
that are only to be used when the GUI is going to be started.  For example,
you can set the 'lines' option to set a different window size: >

	:set lines=55

You don't want to do this in a terminal, since its size is fixed (except for
an xterm that supports resizing).
   The gvimrc file is searched for in the same locations as the vimrc file.
Normally its name is "~/.gvimrc" for Unix and "$VIM/_gvimrc" for MS-Windows.
The $MYGVIMRC environment variable is set to it, thus you can use this command
to edit the file, if you have one: >

	:edit $MYGVIMRC
<
   If for some reason you don't want to use the normal gvimrc file, you can
specify another one with the "-U" argument: >

	gvim -U thisrc ...

That allows starting gvim for different kinds of editing.  You could set
another font size, for example.
   To completely skip reading a gvimrc file: >

	gvim -U NONE ...

==============================================================================

Next chapter: |usr_32.txt|  The undo tree

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�􁕚��vim80/doc/repeat.txtnu�[���*repeat.txt*    For Vim version 8.0.  Last change: 2018 Mar 04


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Repeating commands, Vim scripts and debugging			*repeating*

Chapter 26 of the user manual introduces repeating |usr_26.txt|.

1. Single repeats		|single-repeat|
2. Multiple repeats		|multi-repeat|
3. Complex repeats		|complex-repeat|
4. Using Vim scripts		|using-scripts|
5. Using Vim packages		|packages|
6. Creating Vim packages	|package-create|
7. Debugging scripts		|debug-scripts|
8. Profiling			|profiling|

==============================================================================
1. Single repeats					*single-repeat*

							*.*
.			Repeat last change, with count replaced with [count].
			Also repeat a yank command, when the 'y' flag is
			included in 'cpoptions'.  Does not repeat a
			command-line command.

Simple changes can be repeated with the "." command.  Without a count, the
count of the last change is used.  If you enter a count, it will replace the
last one.  |v:count| and |v:count1| will be set.

If the last change included a specification of a numbered register, the
register number will be incremented.  See |redo-register| for an example how
to use this.

Note that when repeating a command that used a Visual selection, the same SIZE
of area is used, see |visual-repeat|.

							*@:*
@:			Repeat last command-line [count] times.
			{not available when compiled without the
			|+cmdline_hist| feature}


==============================================================================
2. Multiple repeats					*multi-repeat*

						*:g* *:global* *E148*
:[range]g[lobal]/{pattern}/[cmd]
			Execute the Ex command [cmd] (default ":p") on the
			lines within [range] where {pattern} matches.

:[range]g[lobal]!/{pattern}/[cmd]
			Execute the Ex command [cmd] (default ":p") on the
			lines within [range] where {pattern} does NOT match.

							*:v* *:vglobal*
:[range]v[global]/{pattern}/[cmd]
			Same as :g!.

Instead of the '/' which surrounds the {pattern}, you can use any other
single byte character, but not an alphabetic character, '\', '"' or '|'.
This is useful if you want to include a '/' in the search pattern or
replacement string.

For the definition of a pattern, see |pattern|.

NOTE [cmd] may contain a range; see |collapse| and |edit-paragraph-join| for
examples.

The global commands work by first scanning through the [range] lines and
marking each line where a match occurs (for a multi-line pattern, only the
start of the match matters).
In a second scan the [cmd] is executed for each marked line, as if the cursor
was in that line.  For ":v" and ":g!" the command is executed for each not
marked line.  If a line is deleted its mark disappears.
The default for [range] is the whole buffer (1,$).  Use "CTRL-C" to interrupt
the command.  If an error message is given for a line, the command for that
line is aborted and the global command continues with the next marked or
unmarked line.
								*E147* 
When the command is used recursively, it only works on one line.  Giving a
range is then not allowed. This is useful to find all lines that match a
pattern and do not match another pattern: >
	:g/found/v/notfound/{cmd}
This first finds all lines containing "found", but only executes {cmd} when
there is no match for "notfound".

To execute a non-Ex command, you can use the `:normal` command: >
	:g/pat/normal {commands}
Make sure that {commands} ends with a whole command, otherwise Vim will wait
for you to type the rest of the command for each match.  The screen will not
have been updated, so you don't know what you are doing.  See |:normal|.

The undo/redo command will undo/redo the whole global command at once.
The previous context mark will only be set once (with "''" you go back to
where the cursor was before the global command).

The global command sets both the last used search pattern and the last used
substitute pattern (this is vi compatible).  This makes it easy to globally
replace a string:
	:g/pat/s//PAT/g
This replaces all occurrences of "pat" with "PAT".  The same can be done with:
	:%s/pat/PAT/g
Which is two characters shorter!

When using "global" in Ex mode, a special case is using ":visual" as a
command.  This will move to a matching line, go to Normal mode to let you
execute commands there until you use |Q| to return to Ex mode.  This will be
repeated for each matching line.  While doing this you cannot use ":global".
To abort this type CTRL-C twice.

==============================================================================
3. Complex repeats					*complex-repeat*

							*q* *recording*
q{0-9a-zA-Z"}		Record typed characters into register {0-9a-zA-Z"}
			(uppercase to append).  The 'q' command is disabled
			while executing a register, and it doesn't work inside
			a mapping and |:normal|.

			Note: If the register being used for recording is also
			used for |y| and |p| the result is most likely not
			what is expected, because the put will paste the
			recorded macro and the yank will overwrite the
			recorded macro. {Vi: no recording}

q			Stops recording.  (Implementation note: The 'q' that
			stops recording is not stored in the register, unless
			it was the result of a mapping)  {Vi: no recording}

							*@*
@{0-9a-z".=*+}		Execute the contents of register {0-9a-z".=*+} [count]
			times.  Note that register '%' (name of the current
			file) and '#' (name of the alternate file) cannot be
			used.
			The register is executed like a mapping, that means
			that the difference between 'wildchar' and 'wildcharm'
			applies.
			For "@=" you are prompted to enter an expression.  The
			result of the expression is then executed.
			See also |@:|.  {Vi: only named registers}

							*@@* *E748*
@@			Repeat the previous @{0-9a-z":*} [count] times.

:[addr]*{0-9a-z".=+}						*:@* *:star*
:[addr]@{0-9a-z".=*+}	Execute the contents of register {0-9a-z".=*+} as an Ex
			command.  First set cursor at line [addr] (default is
			current line).  When the last line in the register does
			not have a <CR> it will be added automatically when
			the 'e' flag is present in 'cpoptions'.
			Note that the ":*" command is only recognized when the
			'*' flag is present in 'cpoptions'.  This is NOT the
			default when 'nocompatible' is used.
			For ":@=" the last used expression is used.  The
			result of evaluating the expression is executed as an
			Ex command.
			Mappings are not recognized in these commands.
			{Vi: only in some versions} Future: Will execute the
			register for each line in the address range.

							*:@:*
:[addr]@:		Repeat last command-line.  First set cursor at line
			[addr] (default is current line).  {not in Vi}

:[addr]@							*:@@*
:[addr]@@		Repeat the previous :@{0-9a-z"}.  First set cursor at
			line [addr] (default is current line).  {Vi: only in
			some versions}

==============================================================================
4. Using Vim scripts					*using-scripts*

For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.

					*:so* *:source* *load-vim-script*
:so[urce] {file}	Read Ex commands from {file}.  These are commands that
			start with a ":".
			Triggers the |SourcePre| autocommand.

:so[urce]! {file}	Read Vim commands from {file}.  These are commands
			that are executed from Normal mode, like you type
			them.
			When used after |:global|, |:argdo|, |:windo|,
			|:bufdo|, in a loop or when another command follows
			the display won't be updated while executing the
			commands.
			{not in Vi}

							*:ru* *:runtime*
:ru[ntime][!] [where] {file} ..
			Read Ex commands from {file} in each directory given
			by 'runtimepath' and/or 'packpath'.  There is no error
			for non-existing files.
			
			Example: >
				:runtime syntax/c.vim

<			There can be multiple {file} arguments, separated by
			spaces.  Each {file} is searched for in the first
			directory from 'runtimepath', then in the second
			directory, etc.  Use a backslash to include a space
			inside {file} (although it's better not to use spaces
			in file names, it causes trouble).

			When [!] is included, all found files are sourced.
			When it is not included only the first found file is
			sourced.

			When [where] is omitted only 'runtimepath' is used.
			Other values:
				START	search under "start" in 'packpath'
				OPT 	search under "opt" in 'packpath'
				PACK	search under "start" and "opt" in
					'packpath'
				ALL	first use 'runtimepath', then search
					under "start" and "opt" in 'packpath'

			When {file} contains wildcards it is expanded to all
			matching files.  Example: >
				:runtime! plugin/*.vim
<			This is what Vim uses to load the plugin files when
			starting up.  This similar command: >
				:runtime plugin/*.vim
<			would source the first file only.

			When 'verbose' is one or higher, there is a message
			when no file could be found.
			When 'verbose' is two or higher, there is a message
			about each searched file.
			{not in Vi}

							*:pa* *:packadd* *E919*
:pa[ckadd][!] {name}	Search for an optional plugin directory in 'packpath'
			and source any plugin files found.  The directory must
			match:
				pack/*/opt/{name} ~
			The directory is added to 'runtimepath' if it wasn't
			there yet.
			If the directory pack/*/opt/{name}/after exists it is
			added at the end of 'runtimepath'.

			If loading packages from "pack/*/start" was skipped,
			then this directory is searched first:
				pack/*/start/{name} ~

			Note that {name} is the directory name, not the name
			of the .vim file.  All the files matching the pattern
				pack/*/opt/{name}/plugin/**/*.vim ~
			will be sourced.  This allows for using subdirectories
			below "plugin", just like with plugins in
			'runtimepath'.

			If the filetype detection was not enabled yet (this
			is usually done with a "syntax enable" or "filetype
			on" command in your .vimrc file), this will also look
			for "{name}/ftdetect/*.vim" files.

			When the optional ! is added no plugin files or
			ftdetect scripts are loaded, only the matching
			directories are added to 'runtimepath'.  This is
			useful in your .vimrc.  The plugins will then be
			loaded during initialization, see |load-plugins|.

			Also see |pack-add|.
			{only available when compiled with +eval}

						*:packl* *:packloadall*
:packl[oadall][!]	Load all packages in the "start" directory under each
			entry in 'packpath'.
			
			First all the directories found are added to
			'runtimepath', then the plugins found in the
			directories are sourced.  This allows for a plugin to
			depend on something of another plugin, e.g. an
			"autoload" directory.  See |packload-two-steps| for
			how this can be useful.

			This is normally done automatically during startup,
			after loading your .vimrc file.  With this command it
			can be done earlier.

			Packages will be loaded only once.  After this command
			it won't happen again.  When the optional ! is added
			this command will load packages even when done before.

			An error only causes sourcing the script where it
			happens to be aborted, further plugins will be loaded.
			See |packages|.
			{only available when compiled with +eval}

:scripte[ncoding] [encoding]		*:scripte* *:scriptencoding* *E167*
			Specify the character encoding used in the script.
			The following lines will be converted from [encoding]
			to the value of the 'encoding' option, if they are
			different.  Examples: >
				scriptencoding iso-8859-5
				scriptencoding cp932
<
			When [encoding] is empty, no conversion is done.  This
			can be used to restrict conversion to a sequence of
			lines: >
				scriptencoding euc-jp
				... lines to be converted ...
				scriptencoding
				... not converted ...

<			When conversion isn't supported by the system, there
			is no error message and no conversion is done.  When a
			line can't be converted there is no error and the
			original line is kept.

			Don't use "ucs-2" or "ucs-4", scripts cannot be in
			these encodings (they would contain NUL bytes).
			When a sourced script starts with a BOM (Byte Order
			Mark) in utf-8 format Vim will recognize it, no need
			to use ":scriptencoding utf-8" then.

			If you set the 'encoding' option in your |.vimrc|,
			`:scriptencoding` must be placed after that. E.g.: >
				set encoding=utf-8
				scriptencoding utf-8
<
			When compiled without the |+multi_byte| feature this
			command is ignored.
			{not in Vi}

						*:scr* *:scriptnames*
:scr[iptnames]		List all sourced script names, in the order they were
			first sourced.  The number is used for the script ID
			|<SID>|.
			{not in Vi} {not available when compiled without the
			|+eval| feature}

						*:fini* *:finish* *E168*
:fini[sh]		Stop sourcing a script.  Can only be used in a Vim
			script file.  This is a quick way to skip the rest of
			the file.  If it is used after a |:try| but before the
			matching |:finally| (if present), the commands
			following the ":finally" up to the matching |:endtry|
			are executed first.  This process applies to all
			nested ":try"s in the script.  The outermost ":endtry"
			then stops sourcing the script.  {not in Vi}

All commands and command sequences can be repeated by putting them in a named
register and then executing it.  There are two ways to get the commands in the
register:
- Use the record command "q".  You type the commands once, and while they are
  being executed they are stored in a register.  Easy, because you can see
  what you are doing.  If you make a mistake, "p"ut the register into the
  file, edit the command sequence, and then delete it into the register
  again.  You can continue recording by appending to the register (use an
  uppercase letter).
- Delete or yank the command sequence into the register.

Often used command sequences can be put under a function key with the ':map'
command.

An alternative is to put the commands in a file, and execute them with the
':source!' command.  Useful for long command sequences.  Can be combined with
the ':map' command to put complicated commands under a function key.

The ':source' command reads Ex commands from a file line by line.  You will
have to type any needed keyboard input.  The ':source!' command reads from a
script file character by character, interpreting each character as if you
typed it.

Example: When you give the ":!ls" command you get the |hit-enter| prompt.  If
you ':source' a file with the line "!ls" in it, you will have to type the
<Enter> yourself.  But if you ':source!' a file with the line ":!ls" in it,
the next characters from that file are read until a <CR> is found.  You will
not have to type <CR> yourself, unless ":!ls" was the last line in the file.

It is possible to put ':source[!]' commands in the script file, so you can
make a top-down hierarchy of script files.  The ':source' command can be
nested as deep as the number of files that can be opened at one time (about
15).  The ':source!' command can be nested up to 15 levels deep.

You can use the "<sfile>" string (literally, this is not a special key) inside
of the sourced file, in places where a file name is expected.  It will be
replaced by the file name of the sourced file.  For example, if you have a
"other.vimrc" file in the same directory as your ".vimrc" file, you can source
it from your ".vimrc" file with this command: >
	:source <sfile>:h/other.vimrc

In script files terminal-dependent key codes are represented by
terminal-independent two character codes.  This means that they can be used
in the same way on different kinds of terminals.  The first character of a
key code is 0x80 or 128, shown on the screen as "~@".  The second one can be
found in the list |key-notation|.  Any of these codes can also be entered
with CTRL-V followed by the three digit decimal code.  This does NOT work for
the <t_xx> termcap codes, these can only be used in mappings.

							*:source_crnl* *W15*
MS-DOS, Win32 and OS/2: Files that are read with ":source" normally have
<CR><NL> <EOL>s.  These always work.  If you are using a file with <NL> <EOL>s
(for example, a file made on Unix), this will be recognized if 'fileformats'
is not empty and the first line does not end in a <CR>.  This fails if the
first line has something like ":map <F1> :help^M", where "^M" is a <CR>.  If
the first line ends in a <CR>, but following ones don't, you will get an error
message, because the <CR> from the first lines will be lost.

Mac Classic: Files that are read with ":source" normally have <CR> <EOL>s.
These always work.  If you are using a file with <NL> <EOL>s (for example, a
file made on Unix), this will be recognized if 'fileformats' is not empty and
the first line does not end in a <CR>.  Be careful not to use a file with <NL>
linebreaks which has a <CR> in first line.

On other systems, Vim expects ":source"ed files to end in a <NL>.  These
always work.  If you are using a file with <CR><NL> <EOL>s (for example, a
file made on MS-DOS), all lines will have a trailing <CR>.  This may cause
problems for some commands (e.g., mappings).  There is no automatic <EOL>
detection, because it's common to start with a line that defines a mapping
that ends in a <CR>, which will confuse the automaton.

							*line-continuation*
Long lines in a ":source"d Ex command script file can be split by inserting
a line continuation symbol "\" (backslash) at the start of the next line.
There can be white space before the backslash, which is ignored.

Example: the lines >
	:set comments=sr:/*,mb:*,el:*/,
		     \://,
		     \b:#,
		     \:%,
		     \n:>,
		     \fb:-
are interpreted as if they were given in one line:
	:set comments=sr:/*,mb:*,el:*/,://,b:#,:%,n:>,fb:-

All leading whitespace characters in the line before a backslash are ignored.
Note however that trailing whitespace in the line before it cannot be
inserted freely; it depends on the position where a command is split up
whether additional whitespace is allowed or not.

When a space is required it's best to put it right after the backslash.  A
space at the end of a line is hard to see and may be accidentally deleted. >
	:syn match Comment
		\ "very long regexp"
		\ keepend

There is a problem with the ":append" and ":insert" commands: >
   :1append
   \asdf
   .
The backslash is seen as a line-continuation symbol, thus this results in the
command: >
   :1appendasdf
   .
To avoid this, add the 'C' flag to the 'cpoptions' option: >
   :set cpo+=C
   :1append
   \asdf
   .
   :set cpo-=C

Note that when the commands are inside a function, you need to add the 'C'
flag when defining the function, it is not relevant when executing it. >
   :set cpo+=C
   :function Foo()
   :1append
   \asdf
   .
   :endfunction
   :set cpo-=C

Rationale:
	Most programs work with a trailing backslash to indicate line
	continuation.  Using this in Vim would cause incompatibility with Vi.
	For example for this Vi mapping: >
		:map xx  asdf\
<	Therefore the unusual leading backslash is used.

==============================================================================
5. Using Vim packages					*packages*

A Vim package is a directory that contains one or more plugins.  The
advantages over normal plugins:
- A package can be downloaded as an archive and unpacked in its own directory.
  Thus the files are not mixed with files of other plugins.  That makes it
  easy to update and remove.
- A package can be a git, mercurial, etc. repository.  That makes it really
  easy to update.
- A package can contain multiple plugins that depend on each other.
- A package can contain plugins that are automatically loaded on startup and
  ones that are only loaded when needed with `:packadd`.


Using a package and loading automatically ~

Let's assume your Vim files are in the "~/.vim" directory and you want to add a
package from a zip archive "/tmp/foopack.zip":
	% mkdir -p ~/.vim/pack/foo
	% cd ~/.vim/pack/foo
	% unzip /tmp/foopack.zip

The directory name "foo" is arbitrary, you can pick anything you like.

You would now have these files under ~/.vim:
	pack/foo/README.txt
	pack/foo/start/foobar/plugin/foo.vim
	pack/foo/start/foobar/syntax/some.vim
	pack/foo/opt/foodebug/plugin/debugger.vim

When Vim starts up, after processing your .vimrc, it scans all directories in
'packpath' for plugins under the "pack/*/start" directory.  First all those
directories are added to 'runtimepath'.  Then all the plugins are loaded.
See |packload-two-steps| for how these two steps can be useful.

In the example Vim will find "pack/foo/start/foobar/plugin/foo.vim" and adds 
"~/.vim/pack/foo/start/foobar" to 'runtimepath'.

If the "foobar" plugin kicks in and sets the 'filetype' to "some", Vim will
find the syntax/some.vim file, because its directory is in 'runtimepath'.

Vim will also load ftdetect files, if there are any.

Note that the files under "pack/foo/opt" are not loaded automatically, only the
ones under "pack/foo/start".  See |pack-add| below for how the "opt" directory
is used.

Loading packages automatically will not happen if loading plugins is disabled,
see |load-plugins|.

To load packages earlier, so that 'runtimepath' gets updated: >
	:packloadall
This also works when loading plugins is disabled.  The automatic loading will
only happen once.

If the package has an "after" directory, that directory is added to the end of
'runtimepath', so that anything there will be loaded later.


Using a single plugin and loading it automatically ~

If you don't have a package but a single plugin, you need to create the extra
directory level:
	% mkdir -p ~/.vim/pack/foo/start/foobar
	% cd ~/.vim/pack/foo/start/foobar
	% unzip /tmp/someplugin.zip

You would now have these files:
	pack/foo/start/foobar/plugin/foo.vim
	pack/foo/start/foobar/syntax/some.vim

From here it works like above.


Optional plugins ~
							*pack-add*
To load an optional plugin from a pack use the `:packadd` command: >
	:packadd foodebug
This searches for "pack/*/opt/foodebug" in 'packpath' and will find
~/.vim/pack/foo/opt/foodebug/plugin/debugger.vim and source it.

This could be done if some conditions are met.  For example, depending on
whether Vim supports a feature or a dependency is missing.

You can also load an optional plugin at startup, by putting this command in
your |.vimrc|: >
	:packadd! foodebug
The extra "!" is so that the plugin isn't loaded if Vim was started with
|--noplugin|.

It is perfectly normal for a package to only have files in the "opt"
directory.  You then need to load each plugin when you want to use it.


Where to put what ~

Since color schemes, loaded with `:colorscheme`, are found below
"pack/*/start" and "pack/*/opt", you could put them anywhere.  We recommend
you put them below "pack/*/opt", for example
".vim/pack/mycolors/opt/dark/colors/very_dark.vim".

Filetype plugins should go under "pack/*/start", so that they are always
found.  Unless you have more than one plugin for a file type and want to
select which one to load with `:packadd`.  E.g. depending on the compiler
version: >
	if foo_compiler_version > 34
	  packadd foo_new
	else
	  packadd foo_old
	endif

The "after" directory is most likely not useful in a package.  It's not
disallowed though.

==============================================================================
6. Creating Vim packages				*package-create*

This assumes you write one or more plugins that you distribute as a package.

If you have two unrelated plugins you would use two packages, so that Vim
users can chose what they include or not.  Or you can decide to use one
package with optional plugins, and tell the user to add the ones he wants with
`:packadd`.

Decide how you want to distribute the package.  You can create an archive or
you could use a repository.  An archive can be used by more users, but is a
bit harder to update to a new version.  A repository can usually be kept
up-to-date easily, but it requires a program like "git" to be available.
You can do both, github can automatically create an archive for a release.

Your directory layout would be like this:
   start/foobar/plugin/foo.vim    	" always loaded, defines commands
   start/foobar/plugin/bar.vim    	" always loaded, defines commands
   start/foobar/autoload/foo.vim  	" loaded when foo command used
   start/foobar/doc/foo.txt       	" help for foo.vim
   start/foobar/doc/tags          	" help tags
   opt/fooextra/plugin/extra.vim  	" optional plugin, defines commands
   opt/fooextra/autoload/extra.vim  	" loaded when extra command used
   opt/fooextra/doc/extra.txt  	        " help for extra.vim
   opt/fooextra/doc/tags  	        " help tags

This allows for the user to do: >
	mkdir ~/.vim/pack/myfoobar
	cd ~/.vim/pack/myfoobar
	git clone https://github.com/you/foobar.git

Here "myfoobar" is a name that the user can choose, the only condition is that
it differs from other packages.

In your documentation you explain what the plugins do, and tell the user how
to load the optional plugin: >
	:packadd! fooextra

You could add this packadd command in one of your plugins, to be executed when
the optional plugin is needed.

Run the `:helptags` command to generate the doc/tags file.  Including this
generated file in the package means that the user can drop the package in his
pack directory and the help command works right away.  Don't forget to re-run
the command after changing the plugin help: >
	:helptags path/start/foobar/doc
	:helptags path/opt/fooextra/doc


Dependencies between plugins ~
							*packload-two-steps*
Suppose you have two plugins that depend on the same functionality. You can
put the common functionality in an autoload directory, so that it will be
found automatically.  Your package would have these files:

	pack/foo/start/one/plugin/one.vim  >
		call foolib#getit()
<	pack/foo/start/two/plugin/two.vim >
		call foolib#getit()
<	pack/foo/start/lib/autoload/foolib.vim >
		func foolib#getit()

This works, because loading packages will first add all found directories to
'runtimepath' before sourcing the plugins.

==============================================================================
7. Debugging scripts					*debug-scripts*

Besides the obvious messages that you can add to your scripts to find out what
they are doing, Vim offers a debug mode.  This allows you to step through a
sourced file or user function and set breakpoints.

NOTE: The debugging mode is far from perfect.  Debugging will have side
effects on how Vim works.  You cannot use it to debug everything.  For
example, the display is messed up by the debugging messages.
{Vi does not have a debug mode}

An alternative to debug mode is setting the 'verbose' option.  With a bigger
number it will give more verbose messages about what Vim is doing.


STARTING DEBUG MODE						*debug-mode*

To enter debugging mode use one of these methods:
1. Start Vim with the |-D| argument: >
	vim -D file.txt
<  Debugging will start as soon as the first vimrc file is sourced.  This is
   useful to find out what is happening when Vim is starting up.  A side
   effect is that Vim will switch the terminal mode before initialisations
   have finished, with unpredictable results.
   For a GUI-only version (Windows, Macintosh) the debugging will start as
   soon as the GUI window has been opened.  To make this happen early, add a
   ":gui" command in the vimrc file.
								*:debug*
2. Run a command with ":debug" prepended.  Debugging will only be done while
   this command executes.  Useful for debugging a specific script or user
   function.  And for scripts and functions used by autocommands.  Example: >
	:debug edit test.txt.gz

3. Set a breakpoint in a sourced file or user function.  You could do this in
   the command line: >
	vim -c "breakadd file */explorer.vim" .
<  This will run Vim and stop in the first line of the "explorer.vim" script.
   Breakpoints can also be set while in debugging mode.

In debugging mode every executed command is displayed before it is executed.
Comment lines, empty lines and lines that are not executed are skipped.  When
a line contains two commands, separated by "|", each command will be displayed
separately.


DEBUG MODE

Once in debugging mode, the usual Ex commands can be used.  For example, to
inspect the value of a variable: >
	echo idx
When inside a user function, this will print the value of the local variable
"idx".  Prepend "g:" to get the value of a global variable: >
	echo g:idx
All commands are executed in the context of the current function or script.
You can also set options, for example setting or resetting 'verbose' will show
what happens, but you might want to set it just before executing the lines you
are interested in: >
	:set verbose=20

Commands that require updating the screen should be avoided, because their
effect won't be noticed until after leaving debug mode.  For example: >
	:help
won't be very helpful.

There is a separate command-line history for debug mode.

The line number for a function line is relative to the start of the function.
If you have trouble figuring out where you are, edit the file that defines
the function in another Vim, search for the start of the function and do
"99j".  Replace "99" with the line number.

Additionally, these commands can be used:
							*>cont*
	cont		Continue execution until the next breakpoint is hit.
							*>quit*
	quit		Abort execution.  This is like using CTRL-C, some
			things might still be executed, doesn't abort
			everything.  Still stops at the next breakpoint.
							*>next*
	next		Execute the command and come back to debug mode when
			it's finished.  This steps over user function calls
			and sourced files.
							*>step*
	step		Execute the command and come back to debug mode for
			the next command.  This steps into called user
			functions and sourced files.
							*>interrupt*
	interrupt	This is like using CTRL-C, but unlike ">quit" comes
			back to debug mode for the next command that is
			executed.  Useful for testing |:finally| and |:catch|
			on interrupt exceptions.
							*>finish*
	finish		Finish the current script or user function and come
			back to debug mode for the command after the one that
			sourced or called it.
							*>bt*
							*>backtrace*
							*>where*
	backtrace	Show the call stacktrace for current debugging session.
	bt
	where
							*>frame*
	frame N		Goes to N backtrace level. + and - signs make movement
			relative.  E.g., ":frame +3" goes three frames up.
							*>up*
	up		Goes one level up from call stacktrace.
							*>down*
	down		Goes one level down from call stacktrace.

About the additional commands in debug mode:
- There is no command-line completion for them, you get the completion for the
  normal Ex commands only.
- You can shorten them, up to a single character, unless more than one command
  starts with the same letter.  "f" stands for "finish", use "fr" for "frame".
- Hitting <CR> will repeat the previous one.  When doing another command, this
  is reset (because it's not clear what you want to repeat).
- When you want to use the Ex command with the same name, prepend a colon:
  ":cont", ":next", ":finish" (or shorter).

The backtrace shows the hierarchy of function calls, e.g.:
	>bt ~
	  3 function One[3] ~
	  2 Two[3] ~
	->1 Three[3] ~
	  0 Four ~
	line 1: let four = 4 ~

The "->" points to the current frame.  Use "up", "down" and "frame N" to
select another frame.

In the current frame you can evaluate the local function variables.  There is
no way to see the command at the current line yet.


DEFINING BREAKPOINTS
							*:breaka* *:breakadd*
:breaka[dd] func [lnum] {name}
		Set a breakpoint in a function.  Example: >
			:breakadd func Explore
<		Doesn't check for a valid function name, thus the breakpoint
		can be set before the function is defined.

:breaka[dd] file [lnum] {name}
		Set a breakpoint in a sourced file.  Example: >
			:breakadd file 43 .vimrc

:breaka[dd] here
		Set a breakpoint in the current line of the current file.
		Like doing: >
			:breakadd file <cursor-line> <current-file>
<		Note that this only works for commands that are executed when
		sourcing the file, not for a function defined in that file.

:breaka[dd] expr {expression}
		Sets a breakpoint, that will break whenever the {expression}
		evaluates to a different value. Example: >
			:breakadd expr g:lnum

<		Will break, whenever the global variable lnum changes.
		Note if you watch a |script-variable| this will break
		when switching scripts, since the script variable is only
		valid in the script where it has been defined and if that
		script is called from several other scripts, this will stop
		whenever that particular variable will become visible or
		unaccessible again.

The [lnum] is the line number of the breakpoint.  Vim will stop at or after
this line.  When omitted line 1 is used.

							*:debug-name*
{name} is a pattern that is matched with the file or function name.  The
pattern is like what is used for autocommands.  There must be a full match (as
if the pattern starts with "^" and ends in "$").  A "*" matches any sequence
of characters.  'ignorecase' is not used, but "\c" can be used in the pattern
to ignore case |/\c|.  Don't include the () for the function name!

The match for sourced scripts is done against the full file name.  If no path
is specified the current directory is used.  Examples: >
	breakadd file explorer.vim
matches "explorer.vim" in the current directory. >
	breakadd file *explorer.vim
matches ".../plugin/explorer.vim", ".../plugin/iexplorer.vim", etc. >
	breakadd file */explorer.vim
matches ".../plugin/explorer.vim" and "explorer.vim" in any other directory.

The match for functions is done against the name as it's shown in the output
of ":function".  For local functions this means that something like "<SNR>99_"
is prepended.

Note that functions are first loaded and later executed.  When they are loaded
the "file" breakpoints are checked, when they are executed the "func"
breakpoints.


DELETING BREAKPOINTS
						*:breakd* *:breakdel* *E161*
:breakd[el] {nr}
		Delete breakpoint {nr}.  Use |:breaklist| to see the number of
		each breakpoint.

:breakd[el] *
		Delete all breakpoints.

:breakd[el] func [lnum] {name}
		Delete a breakpoint in a function.

:breakd[el] file [lnum] {name}
		Delete a breakpoint in a sourced file.

:breakd[el] here
		Delete a breakpoint at the current line of the current file.

When [lnum] is omitted, the first breakpoint in the function or file is
deleted.
The {name} must be exactly the same as what was typed for the ":breakadd"
command.  "explorer", "*explorer.vim" and "*explorer*" are different.


LISTING BREAKPOINTS
							*:breakl* *:breaklist*
:breakl[ist]
		List all breakpoints.


OBSCURE

						*:debugg* *:debuggreedy*
:debugg[reedy]
		Read debug mode commands from the normal input stream, instead
		of getting them directly from the user.  Only useful for test
		scripts.  Example: >
		  echo 'q^Mq' | vim -e -s -c debuggreedy -c 'breakadd file script.vim' -S script.vim

:0debugg[reedy]
		Undo ":debuggreedy": get debug mode commands directly from the
		user, don't use typeahead for debug commands.

==============================================================================
8. Profiling						*profile* *profiling*

Profiling means that Vim measures the time that is spent on executing
functions and/or scripts.  The |+profile| feature is required for this.
It is only included when Vim was compiled with "huge" features.
{Vi does not have profiling}

You can also use the |reltime()| function to measure time.  This only requires
the |+reltime| feature, which is present more often.

For profiling syntax highlighting see |:syntime|.

For example, to profile the one_script.vim script file: >
	:profile start /tmp/one_script_profile
	:profile file one_script.vim
	:source one_script.vim
	:exit


:prof[ile] start {fname}			*:prof* *:profile* *E750*
		Start profiling, write the output in {fname} upon exit.
		"~/" and environment variables in {fname} will be expanded.
		If {fname} already exists it will be silently overwritten.
		The variable |v:profiling| is set to one.

:prof[ile] pause
		Don't profile until the following ":profile continue".  Can be
		used when doing something that should not be counted (e.g., an
		external command).  Does not nest.

:prof[ile] continue
		Continue profiling after ":profile pause".

:prof[ile] func {pattern}
		Profile function that matches the pattern {pattern}.
		See |:debug-name| for how {pattern} is used.

:prof[ile][!] file {pattern}
		Profile script file that matches the pattern {pattern}.
		See |:debug-name| for how {pattern} is used.
		This only profiles the script itself, not the functions
		defined in it.
		When the [!] is added then all functions defined in the script
		will also be profiled.
		Note that profiling only starts when the script is loaded
		after this command.  A :profile command in the script itself
		won't work.


:profd[el] ...						*:profd* *:profdel*
		Stop profiling for the arguments specified. See |:breakdel|
		for the arguments.


You must always start with a ":profile start fname" command.  The resulting
file is written when Vim exits.  Here is an example of the output, with line
numbers prepended for the explanation:

  1 FUNCTION  Test2() ~
  2 Called 1 time ~
  3 Total time:   0.155251 ~
  4  Self time:   0.002006 ~
  5  ~
  6 count  total (s)   self (s) ~
  7	9	       0.000096   for i in range(8) ~
  8	8   0.153655   0.000410     call Test3() ~
  9	8	       0.000070   endfor ~
 10				  " Ask a question ~
 11	1	       0.001341   echo input("give me an answer: ") ~

The header (lines 1-4) gives the time for the whole function.  The "Total"
time is the time passed while the function was executing.  The "Self" time is
the "Total" time reduced by time spent in:
- other user defined functions
- sourced scripts
- executed autocommands
- external (shell) commands

Lines 7-11 show the time spent in each executed line.  Lines that are not
executed do not count.  Thus a comment line is never counted.

The Count column shows how many times a line was executed.  Note that the
"for" command in line 7 is executed one more time as the following lines.
That is because the line is also executed to detect the end of the loop.

The time Vim spends waiting for user input isn't counted at all.  Thus how
long you take to respond to the input() prompt is irrelevant.

Profiling should give a good indication of where time is spent, but keep in
mind there are various things that may clobber the results:

- The accuracy of the time measured depends on the gettimeofday() system
  function.  It may only be as accurate as 1/100 second, even though the times
  are displayed in micro seconds.

- Real elapsed time is measured, if other processes are busy they may cause
  delays at unpredictable moments.  You may want to run the profiling several
  times and use the lowest results.

- If you have several commands in one line you only get one time.  Split the
  line to see the time for the individual commands.

- The time of the lines added up is mostly less than the time of the whole
  function.  There is some overhead in between.

- Functions that are deleted before Vim exits will not produce profiling
  information.  You can check the |v:profiling| variable if needed: >
	:if !v:profiling
	:   delfunc MyFunc
	:endif
<
- Profiling may give weird results on multi-processor systems, when sleep
  mode kicks in or the processor frequency is reduced to save power.

- The "self" time is wrong when a function is used recursively.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z5��k��vim80/doc/terminal.txtnu�[���*terminal.txt*	For Vim version 8.0.  Last change: 2018 Apr 20


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


Terminal window support					*terminal*


The terminal feature is optional, use this to check if your Vim has it: >
	echo has('terminal')
If the result is "1" you have it.


1. Basic use			|terminal-use|
      Typing				|terminal-typing|
      Size and color			|terminal-size-color|
      Syntax				|:terminal|
      Resizing				|terminal-resizing|
      Terminal Modes			|Terminal-mode|
      Cursor style			|terminal-cursor-style|
      Special keys			|terminal-special-keys|
      Session				|terminal-session|
      Unix				|terminal-unix|
      MS-Windows			|terminal-ms-windows|
2. Terminal communication	|terminal-communication|
      Vim to job: term_sendkeys()	|terminal-to-job|
      Job to Vim: JSON API		|terminal-api|
      Using the client-server feature	|terminal-client-server|
3. Remote testing		|terminal-testing|
4. Diffing screen dumps		|terminal-diff|
      Writing a screen dump test for Vim  |terminal-dumptest|
      Creating a screen dump		  |terminal-screendump|
      Comparing screen dumps		  |terminal-diffscreendump|
5. Debugging			|terminal-debug|
      Starting				|termdebug-starting|
      Example session			|termdebug-example|
      Stepping through code		|termdebug-stepping|
      Inspecting variables		|termdebug-variables|
      Other commands			|termdebug-commands|
      Communication			|termdebug-communication|
      Customizing			|termdebug-customizing|

{Vi does not have any of these commands}
{only available when compiled with the |+terminal| feature}
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.

==============================================================================
1. Basic use						*terminal-use*

This feature is for running a terminal emulator in a Vim window.  A job can be
started connected to the terminal emulator. For example, to run a shell: >
     :term bash

Or to run build command: >
     :term make myprogram

The job runs asynchronously from Vim, the window will be updated to show
output from the job, also while editing in another window.


Typing ~
							*terminal-typing*
When the keyboard focus is in the terminal window, typed keys will be sent to
the job.  This uses a pty when possible.  You can click outside of the
terminal window to move keyboard focus elsewhere.

CTRL-W can be used to navigate between windows and other CTRL-W commands, e.g.:
	CTRL-W CTRL-W	move focus to the next window
	CTRL-W :	enter an Ex command
See |CTRL-W| for more commands.

Special in the terminal window:			*CTRL-W_.*  *CTRL-W_N* 
	CTRL-W .	send a CTRL-W to the job in the terminal
	CTRL-W CTRL-\	send a CTRL-\ to the job in the terminal
	CTRL-W N	go to Terminal-Normal mode, see |Terminal-mode|
	CTRL-\ CTRL-N   go to Terminal-Normal mode, see |Terminal-mode|
	CTRL-W " {reg}  paste register {reg}		*CTRL-W_quote*
			Also works with the = register to insert the result of
			evaluating an expression.
	CTRL-W CTRL-C	ends the job, see below |t_CTRL-W_CTRL-C|

See option 'termwinkey' for specifying another key instead of CTRL-W that
will work like CTRL-W.  However, typing 'termwinkey' twice sends 'termwinkey'
to the job.  For example:
	'termwinkey' CTRL-W    move focus to the next window
	'termwinkey' :	       enter an Ex command
	'termwinkey' 'termwinkey' send 'termwinkey' to the job in the terminal
	'termwinkey' .	       send a CTRL-W to the job in the terminal
	'termwinkey' N	       go to terminal Normal mode, see below
	'termwinkey' CTRL-N    same as CTRL-W N
	'termwinkey' CTRL-C    same as |t_CTRL-W_CTRL-C|
							*t_CTRL-\_CTRL-N*
The special key combination CTRL-\ CTRL-N can be used to switch to Normal
mode, just like this works in any other mode.
							*t_CTRL-W_CTRL-C*
CTRL-W CTRL-C can be typed to forcefully end the job.  On MS-Windows a
CTRL-BREAK will also kill the job.

If you type CTRL-C the effect depends on what the pty has been configured to
do.  For simple commands this causes a SIGINT to be sent to the job, which
would end it.  Other commands may ignore the SIGINT or handle the CTRL-C
themselves (like Vim does).

To change the keys you type use terminal mode mappings, see |:tmap|.
These are defined like any mapping, but apply only when typing keys that are
sent to the job running in the terminal.  For example, to make F1 switch
to Terminal-Normal mode: >
   tnoremap <F1> <C-W>N
You can use Esc, but you need to make sure it won't cause other keys to
break: >
   tnoremap <Esc> <C-W>N
   set notimeout ttimeout timeoutlen=100

<							*options-in-terminal*
After opening the terminal window and setting 'buftype' to "terminal" the
BufWinEnter autocommand event is triggered.  This makes it possible to set
options specifically for the window and buffer.  Example: >
   au BufWinEnter * if &buftype == 'terminal' | setlocal bufhidden=hide | endif

Mouse events (click and drag) are passed to the terminal.  Mouse move events
are only passed when Vim itself is receiving them.  For a terminal that is
when 'balloonevalterm' is enabled.


Size and color ~
							*terminal-size-color*
See option 'termwinsize' for controlling the size of the terminal window.
(TODO: scrolling when the terminal is larger than the window)

The job running in the terminal can change the colors.  The default foreground
and background colors are taken from Vim, the Normal highlight group.

For a color terminal the 'background' option is used to decide whether the
terminal window will start with a white or black background.

To use a different color the Terminal highlight group can be used, for
example: >
    hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
<
							*g:terminal_ansi_colors*
In GUI mode or with 'termguicolors', the 16 ANSI colors used by default in new
terminal windows may be configured using the variable
`g:terminal_ansi_colors`, which should be a list of 16 color names or
hexadecimal color codes, similar to those accepted by |highlight-guifg|.  When
not using GUI colors, the terminal window always uses the 16 ANSI colors of
the underlying terminal.
The |term_setansicolors()| function can be used to change the colors, and
|term_getansicolors()| to get the currently used colors.


Syntax ~

:[range]ter[minal] [options] [command]			*:ter* *:terminal*
			Open a new terminal window.

			If [command] is provided run it as a job and connect
			the input and output to the terminal.
			If [command] is not given the 'shell' option is used.
			if [command] is NONE no job is started, the pty of the
			terminal can be used by a command like gdb.

			If [command] is missing the default behavior is to
			close the terminal when the shell exits.  This can be
			changed with the ++noclose argument.
			If [command] is present the default behavior is to
			keep the terminal open in Terminal-Normal mode.  This
			can be changed with the ++close argument.

			A new buffer will be created, using [command] or
			'shell' as the name, prefixed with a "!".  If a buffer
			by this name already exists a number is added in
			parentheses.  E.g. if "gdb" exists the second terminal
			buffer will use "!gdb (1)".

			If [range] is given the specified lines are used as
			input for the job.  It will not be possible to type
			keys in the terminal window.  For MS-Windows see the
			++eof argument below.

						*term++close* *term++open*
			Supported [options] are:
			++close		The terminal window will close
					automatically when the job terminates.
			++noclose	The terminal window will NOT close
					automatically when the job terminates.
			++open		When the job terminates and no window
					shows it, a window will be opened.
					Note that this can be interruptive.
				The last of ++close, ++noclose and ++open
				matters and rules out earlier arguments.

			++curwin	Open the terminal in the current
					window, do not split the current
					window.  Fails if the current buffer
					cannot be |abandon|ed.
			++hidden	Open the terminal in a hidden buffer,
					no window will be used.
			++norestore	Do not include this terminal window
					in a session file.
			++kill={how}	When trying to close the terminal
					window kill the job with {how}.  See
					|term_setkill()| for the values.
			++rows={height} Use {height} for the terminal window
					height.  If the terminal uses the full
					Vim height (no window above or below
					th terminal window) the command line
					height will be reduced as needed.
			++cols={width}  Use {width} for the terminal window
					width. If the terminal uses the full
					Vim width (no window left or right of
					the terminal window) this value is
					ignored.
			++eof={text}	when using [range]: text to send after
					the last line was written. Cannot
					contain white space.  A CR is
					appended.  For MS-Windows the default
					is to send CTRL-D.
					E.g. for a shell use "++eof=exit" and
					for Python "++eof=exit()".  Special
					codes can be used like with `:map`,
					e.g. "<C-Z>" for CTRL-Z.

			If you want to use more options use the |term_start()|
			function.

When the buffer associated with the terminal is forcibly unloaded or wiped out
the job is killed, similar to calling `job_stop(job, "kill")` .
Closing the window normally results in |E947|.  When a kill method was set
with "++kill={how}" or |term_setkill()| then closing the window will use that
way to kill or interrupt the job.  For example: >
	:term ++kill=term tail -f /tmp/log

So long as the job is running the window behaves like it contains a modified
buffer.  Trying to close the window with `CTRL-W :quit` fails.  When using
`CTRL-W :quit!` the job is ended.  The text in the window is lost.  The buffer
still exists, but getting it in a window with `:buffer` will show an empty
buffer.

Trying to close the window with `CTRL-W :close` also fails.   Using
`CTRL-W :close!` will close the window and make the buffer hidden.

You can use `CTRL-W :hide` to close the terminal window and make the buffer
hidden, the job keeps running.  The `:buffer` command can be used to turn the
current window into a terminal window.  If there are unsaved changes this
fails, use !  to force, as usual.

To have a background job run without a window, and open the window when it's
done, use options like this: >
	:term ++hidden ++open make
Note that the window will open at an unexpected moment, this will interrupt
what you are doing.

							*E947* *E948*
So long as the job is running, the buffer is considered modified and Vim
cannot be quit easily, see |abandon|.

When the job has finished and no changes were made to the buffer: closing the
window will wipe out the buffer.

Before changes can be made to a terminal buffer, the 'modifiable' option must
be set.  This is only possible when the job has finished.  At the first change
the buffer will become a normal buffer and the highlighting is removed.
You may want to change the buffer name with |:file| to be able to write, since
the buffer name will still be set to the command.


Resizing ~
							*terminal-resizing*
The size of the terminal can be in one of three modes:

1. The 'termwinsize' option is empty: The terminal size follows the window
   size.  The minimal size is 2 screen lines with 10 cells.

2. The 'termwinsize' option is "rows*cols", where "rows" is the minimal number
   of screen rows and "cols" is the minimal number of cells.

3. The 'termwinsize' option is "rowsXcols" (where the x is upper or lower
   case).  The terminal size is fixed to the specified number of screen lines
   and cells.  If the window is bigger there will be unused empty space.

If the window is smaller than the terminal size, only part of the terminal can
be seen (the lower-left part).

The |term_getsize()| function can be used to get the current size of the
terminal.  |term_setsize()| can be used only when in the first or second mode,
not when 'termwinsize' is "rowsXcols".


Terminal-Job and Terminal-Normal mode ~
						*Terminal-mode* *Terminal-Job*
When the job is running the contents of the terminal is under control of the
job.  That includes the cursor position.  Typed keys are sent to the job.
The terminal contents can change at any time.  This is called Terminal-Job
mode.

Use CTRL-W N (or 'termwinkey' N) to switch to Terminal-Normal mode.  Now the
contents of the terminal window is under control of Vim, the job output is
suspended.  CTRL-\ CTRL-N does the same.

Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by
|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.

It is not possible to enter Insert mode from Terminal-Job mode.

						*Terminal-Normal* *E946*
In Terminal-Normal mode you can move the cursor around with the usual Vim
commands, Visually mark text, yank text, etc.  But you cannot change the
contents of the buffer.  The commands that would start insert mode, such as
'i' and 'a', return to Terminal-Job mode.  The window will be updated to show
the contents of the terminal. |:startinsert| is ineffective.

In Terminal-Normal mode the statusline and window title show "(Terminal)".  If
the job ends while in Terminal-Normal mode this changes to
"(Terminal-finished)".

When the job outputs lines in the terminal, such that the contents scrolls off
the top, those lines are remembered and can be seen in Terminal-Normal mode.
The number of lines is limited by the 'termwinscroll' option. When going over
this limit, the first 10% of the scrolled lins are deleted and are lost.


Cursor style ~
							*terminal-cursor-style*
By default the cursor in the terminal window uses a not blinking block.  The
normal xterm escape sequences can be used to change the blinking state and the
shape.  Once focus leaves the terminal window Vim will restore the original
cursor.

An exception is when xterm is started with the "-bc" argument, or another way
that causes the cursor to blink.  This actually means that the blinking flag
is inverted.  Since Vim cannot detect this, the terminal window cursor
blinking will also be inverted.


Session ~
							*terminal-session*
A terminal window will be restored when using a session file, if possible and
wanted.

If "terminal" was removed from 'sessionoptions' then no terminal windows will
be restored.

If the job in the terminal was finished the window will not be restored.

If the terminal can be restored, the command that was used to open it will be
used again.  To change this use the |term_setrestore()| function.  This can
also be used to not restore a specific terminal by setting the command to
"NONE".


Special keys ~
							*terminal-special-keys*
Since the terminal emulator simulates an xterm, only escape sequences that
both Vim and xterm recognize will be available in the terminal window.  If you
want to pass on other escape sequences to the job running in the terminal you
need to set up forwarding.  Example: >
	tmap <expr> <Esc>]b SendToTerm("\<Esc>]b")
	func SendToTerm(what)
	  call term_sendkeys('', a:what)
	  return ''
	endfunc


Unix ~
							*terminal-unix*
On Unix a pty is used to make it possible to run all kinds of commands.  You
can even run Vim in the terminal!  That's used for debugging, see below.

Environment variables are used to pass information to the running job:
    TERM		the name of the terminal, from the 'term' option or
			$TERM in the GUI; falls back to "xterm" if it does not
			start with "xterm"
    ROWS		number of rows in the terminal initially
    LINES		same as ROWS
    COLUMNS		number of columns in the terminal initially
    COLORS		number of colors, 't_Co' (256*256*256 in the GUI)
    VIM_SERVERNAME	v:servername


MS-Windows ~
							*terminal-ms-windows*
On MS-Windows winpty is used to make it possible to run all kind of commands.
Obviously, they must be commands that run in a terminal, not open their own
window.

You need the following two files from winpty:

    winpty.dll
    winpty-agent.exe

You can download them from the following page:

    https://github.com/rprichard/winpty

Just put the files somewhere in your PATH.  You can set the 'winptydll' option
to point to the right file, if needed.  If you have both the 32-bit and 64-bit
version, rename to winpty32.dll and winpty64.dll to match the way Vim was
build.

Environment variables are used to pass information to the running job:
    VIM_SERVERNAME	v:servername

==============================================================================
2. Terminal communication			 *terminal-communication*

There are several ways to communicate with the job running in a terminal:
- Use |term_sendkeys()| to send text and escape sequences from Vim to the job.
- Use the JSON API to send encoded commands from the job to Vim.
- Use the |client-server| mechanism. This works on machines with an X server
  and on MS-Windows.


Vim to job: term_sendkeys() ~
							*terminal-to-job*
This allows for remote controlling the job running in the terminal.  It is a
one-way mechanism.  The job can update the display to signal back to Vim.
For example, if a shell is running in a terminal, you can do: >
	call term_sendkeys(buf, "ls *.java\<CR>")

This requires for the job to be in the right state where it will do the right
thing when receiving the keys.  For the above example, the shell must be
waiting for a command to be typed.

For a job that was written for the purpose, you can use the JSON API escape
sequence in the other direction.  E.g.: >
	call term_sendkeys(buf, "\<Esc>]51;["response"]\x07")


Job to Vim: JSON API ~
							*terminal-api*
The job can send JSON to Vim, using a special escape sequence.  The JSON
encodes a command that Vim understands.  Example of such a message: >
	<Esc>]51;["drop", "README.md"]<07>

The body is always a list, making it easy to find the end: ]<07>.
The <Esc>]51;msg<07> sequence is reserved by xterm for "Emacs shell", which is
similar to what we are doing here.

Currently supported commands:

	call {funcname} {argument}

		Call a user defined function with {argument}.
		The function is called with two arguments: the buffer number
		of the terminal and {argument}, the decoded JSON argument. 
		The function name must start with "Tapi_" to avoid
		accidentally calling a function not meant to be used for the
		terminal API
		The user function should sanity check the argument.
		The function can use |term_sendkeys()| to send back a reply.
		Example in JSON: >
			["call", "Tapi_Impression", ["play", 14]]
<		Calls a function defined like this: >
			function Tapi_Impression(bufnum, arglist)
			  if len(a:arglist) == 2
			    echomsg "impression " . a:arglist[0]
			    echomsg "count " . a:arglist[1]
			  endif
			endfunc
<		Output from `:echo` may be erased by a redraw, use `:echomsg`
		to be able to see it with `:messages`.

	drop {filename} [options]

		Let Vim open a file, like the `:drop` command.  If {filename}
		is already open in a window, switch to that window.  Otherwise
		open a new window to edit {filename}.

		[options] is only used when opening a new window.  If present,
		it must be a Dict.  Similarly to |++opt|, These entries are recognized:
		  "ff"		file format: "dos", "mac" or "unix"
		  "fileformat"	idem
		  "enc"		overrides 'fileencoding'
		  "encoding"	idem
		  "bin"		sets 'binary'
		  "binary"	idem
		  "nobin"	resets 'binary'
		  "nobinary"	idem
		  "bad"		specifies behavior for bad characters, see
				|++bad|

		Example in JSON: >
			["drop", "path/file.txt", {"ff": "dos"}]

A trick to have Vim send this escape sequence: >
	exe "set t_ts=\<Esc>]51; t_fs=\x07"
	let &titlestring = '["call","Tapi_TryThis",["hello",123]]'
	redraw
	set t_ts& t_fs&

Rationale: Why not allow for any command or expression?  Because that might
create a security problem.


Using the client-server feature ~
						*terminal-client-server*
This only works when v:servername is not empty.  If needed you can set it,
before opening the terminal, with: >
	call remote_startserver('vim-server')

$VIM_SERVERNAME is set in the terminal to pass on the server name.

In the job you can then do something like: >
	vim --servername $VIM_SERVERNAME --remote +123 some_file.c
This will open the file "some_file.c" and put the cursor on line 123.

==============================================================================
3. Remote testing					*terminal-testing*

Most Vim tests execute a script inside Vim.  For some tests this does not
work, running the test interferes with the code being tested.  To avoid this
Vim is executed in a terminal window.  The test sends keystrokes to it and
inspects the resulting screen state.

Functions ~

term_sendkeys()		send keystrokes to a terminal (not subject to tmap)
term_wait()		wait for screen to be updated
term_scrape()		inspect terminal screen


==============================================================================
4. Diffing screen dumps					*terminal-diff*

In some cases it can be bothersome to test that Vim displays the right
characters on the screen.  E.g. with syntax highlighting.  To make this
simpler it is possible to take a screen dump of a terminal and compare it to
an expected screen dump.

Vim uses the window size, text, color and other attributes as displayed.  The
Vim screen size, font and other properties do not matter.  Therefore this
mechanism is portable across systems.  A conventional screenshot would reflect
all differences, including font size and family.


Writing a screen dump test for Vim ~
							*terminal-dumptest*
For an example see the Test_syntax_c() function in
src/testdir/test_syntax.vim.  The main parts are:
- Write a file you want to test with. This is useful for testing syntax
  highlighting.  You can also start Vim with en empty buffer.
- Run Vim in a terminal with a specific size.  The default is 20 lines of 75
  characters.  This makes sure the dump is always this size.  The function
  RunVimInTerminal() takes care of this.  Pass it the arguments for the Vim
  command.
- Send any commands to Vim using term_sendkeys().  For example: >
	call term_sendkeys(buf, ":echo &lines &columns\<CR>")
- Check that the screen is now in the expected state, using
  VerifyScreenDump().  This expects the reference screen dump to be in the
  src/testdir/dumps/ directory.  Pass the name without ".dump".  It is
  recommended to use the name of the test function and a sequence number, so
  that we know what test is using the file.
- Repeat sending commands and checking the state.
- Finally stop Vim by calling StopVimInTerminal().

The first time you do this you won't have a screen dump yet.  Create an empty
file for now, e.g.: >
	touch src/testdir/dumps/Test_function_name_01.dump

The test will then fail, giving you the command to compare the reference dump
and the failed dump, e.g.: >
	call term_dumpdiff("Test_func.dump.failed", "dumps/Test_func.dump")

Use this command in Vim, with the current directory set to src/testdir.
Once you are satisfied with the test, move the failed dump in place of the
reference: >
	:!mv Test_func.dump.failed dumps/Test_func.dump


Creating a screen dump ~
							*terminal-screendump*

To create the screen dump, run Vim (or any other program) in a terminal and
make it show the desired state.  Then use the term_dumpwrite() function to
create a screen dump file.  For example: >
	:call term_dumpwrite(77, "mysyntax.dump")

Here "77" is the buffer number of the terminal.  Use `:ls!` to see it.

You can view the screen dump with term_dumpload(): >
	:call term_dumpload("mysyntax.dump")

To verify that Vim still shows exactly the same screen, run Vim again with
exactly the same way to show the desired state.  Then create a screen dump
again, using a different file name: >
	:call term_dumpwrite(88, "test.dump")

To assert that the files are exactly the same use assert_equalfile(): >
	call assert_equalfile("mysyntax.dump", "test.dump")

If there are differences then v:errors will contain the error message.


Comparing screen dumps ~
						*terminal-diffscreendump*

assert_equalfile() does not make it easy to see what is different.
To spot the problem use term_dumpdiff(): >
	call term_dumpdiff("mysyntax.dump", "test.dump")

This will open a window consisting of three parts:
1.  The contents of the first dump
2.  The difference between the first and second dump
3.  The contents of the second dump

You can usually see what differs in the second part.  Use the 'ruler' to
relate it to the position in the first or second dump.

Alternatively, press "s" to swap the first and second dump. Do this several
times so that you can spot the difference in the context of the text.

==============================================================================
5. Debugging						*terminal-debug*

The Terminal debugging plugin can be used to debug a program with gdb and view
the source code in a Vim window.  Since this is completely contained inside
Vim this also works remotely over an ssh connection.


Starting ~
							*termdebug-starting*
Load the plugin with this command: >
	packadd termdebug
<							*:Termdebug*
To start debugging use `:Termdebug` or `:TermdebugCommand`` followed by the
command name, for example: >
	:Termdebug vim

This opens two windows:

gdb window	A terminal window in which "gdb vim" is executed.  Here you
		can directly interact with gdb.  The buffer name is "!gdb".

program window	A terminal window for the executed program.  When "run" is
		used in gdb the program I/O will happen in this window, so
		that it does not interfere with controlling gdb.  The buffer
		name is "gdb program".

The current window is used to show the source code.  When gdb pauses the
source file location will be displayed, if possible.  A sign is used to
highlight the current position, using highlight group debugPC.	 

If the buffer in the current window is modified, another window will be opened
to display the current gdb position.  You can use `:Winbar` to add a window
toolbar there.

Focus the terminal of the executed program to interact with it.  This works
the same as any command running in a terminal window.

When the debugger ends, typically by typing "quit" in the gdb window, the two
opened windows are closed.

Only one debugger can be active at a time.
							*:TermdebugCommand*
If you want to give specific commands to the command being debugged, you can
use the `:TermdebugCommand` command followed by the command name and
additional parameters. >
	:TermdebugCommand vim --clean -c ':set nu'

Both the `:Termdebug` and `:TermdebugCommand` support an optional "!" bang
argument to start the command right away, without pausing at the gdb window
(and cursor will be in the debugged window).  For example: >
	:TermdebugCommand! vim --clean

To attach gdb to an already running executable or use a core file, pass extra
arguments.  E.g.: >
	:Termdebug vim core
	:Termdebug vim 98343

If no argument is given, you'll end up in a gdb window, in which you need to
specify which command to run using e.g. the gdb `file` command.


Example session ~
							*termdebug-example*
Start in the Vim "src" directory and build Vim: >
	% make
Start Vim: >
	% ./vim
Load the termdebug plugin and start debugging Vim: >
	:packadd termdebug
	:Termdebug vim
You should now have three windows:
    source  - where you started, has a window toolbar with buttons
    gdb	    - you can type gdb commands here
    program - the executed program will use this window

You can use CTRL-W CTRL-W or the mouse to move focus between windows.
Put focus on the gdb window and type: >
	break ex_help
	run
Vim will start running in the program window. Put focus there and type: >
	:help gui
Gdb will run into the ex_help breakpoint.  The source window now shows the 
ex_cmds.c file.  A ">>" marker will appear where the breakpoint was set.  The
line where the debugger stopped is highlighted.  You can now step through the
program.  Let's use the mouse: click on the "Next" button in the window
toolbar.  You will see the highlighting move as the debugger executes a line
of source code.

Click "Next" a few times until the for loop is highlighted.  Put the cursor on
the end of "eap->arg", then click "Eval" in the toolbar.  You will see this
displayed:
	"eap->arg": 0x555555e68855 "gui" ~
This way you can inspect the value of local variables.  You can also focus the
gdb window and use a "print" command, e.g.: >
	print *eap
If mouse pointer movements are working, Vim will also show a balloon when the
mouse rests on text that can be evaluated by gdb.

Now go back to the source window and put the cursor on the first line after
the for loop, then type: >
	:Break
You will see a ">>" marker appear, this indicates the new breakpoint.  Now
click "Cont" in the toolbar and the code until the breakpoint will be
executed.

You can type more advanced commands in the gdb window.  For example, type: >
	watch curbuf
Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution
will now continue until the value of "curbuf" changes, which is in do_ecmd().
To remove this watchpoint again type in the gdb window: >
	delete 3

You can see the stack by typing in the gdb window: >
	where
Move through the stack frames, e.g. with: >
	frame 3
The source window will show the code, at the point where the call was made to
a deeper level.


Stepping through code ~
							*termdebug-stepping*
Put focus on the gdb window to type commands there.  Some common ones are:
- CTRL-C	interrupt the program
- next		execute the current line and stop at the next line
- step		execute the current line and stop at the next statement,
		entering functions
- finish	execute until leaving the current function
- where		show the stack
- frame N	go to the Nth stack frame
- continue	continue execution

						*:Run* *:Arguments*
In the window showing the source code these commands can be used to control
gdb:
 `:Run` [args]	    run the program with [args] or the previous arguments
 `:Arguments` {args}  set arguments for the next `:Run`

 *:Break*	set a breakpoint at the current line; a sign will be displayed
 *:Clear*	delete the breakpoint at the current line

 *:Step*	execute the gdb "step" command
 *:Over*	execute the gdb "next" command (`:Next` is a Vim command)
 *:Finish*	execute the gdb "finish" command
 *:Continue*	execute the gdb "continue" command
 *:Stop*	interrupt the program

If 'mouse' is set the plugin adds a window toolbar with these entries:
  Step		`:Step`
  Next		`:Over`
  Finish	`:Finish`
  Cont		`:Continue`
  Stop		`:Stop`
  Eval		`:Evaluate`
This way you can use the mouse to perform the most common commands.  You need
to have the 'mouse' option set to enable mouse clicks.
								*:Winbar*
You can add the window toolbar in other windows you open with: >
  :Winbar

If gdb stops at a source line and there is no window currently showing the
source code, a new window will be created for the source code.  This also
happens if the buffer in the source code window has been modified and can't be
abandoned.


Inspecting variables ~
					*termdebug-variables* *:Evaluate*
 `:Evaluate`	    evaluate the expression under the cursor
 `K`		    same
 `:Evaluate` {expr}   evaluate {expr}
 `:'<,'>Evaluate`     evaluate the Visually selected text

This is similar to using "print" in the gdb window.
You can usually shorten `:Evaluate` to `:Ev`.


Other commands ~
							*termdebug-commands*
 *:Gdb*	     jump to the gdb window
 *:Program*    jump to the window with the running program
 *:Source*     jump to the window with the source code, create it if there
	     isn't one


Communication ~
						*termdebug-communication*
There is another, hidden, buffer, which is used for Vim to communicate with
gdb.  The buffer name is "gdb communication".  Do not delete this buffer, it
will break the debugger.


Customizing ~

GDB command						 *termdebug-customizing*

To change the name of the gdb command, set the "termdebugger" variable before
invoking `:Termdebug`: >
	let termdebugger = "mygdb"
<							*gdb-version*
Only debuggers fully compatible with gdb will work.  Vim uses the GDB/MI
interface.  The "new-ui" command  requires gdb version 7.12 or later.  if you
get this error:
	Undefined command: "new-ui". Try "help".~
Then your gdb is too old.


Colors						*hl-debugPC* *hl-debugBreakpoint*

The color of the signs can be adjusted with these highlight groups:
- debugPC		the current position
- debugBreakpoint	a breakpoint

The defaults are, when 'background' is "light":
  hi debugPC term=reverse ctermbg=lightblue guibg=lightblue
  hi debugBreakpoint term=reverse ctermbg=red guibg=red

When 'background' is "dark":
  hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
  hi debugBreakpoint term=reverse ctermbg=red guibg=red


Popup menu						*termdebug_popup*

By default the Termdebug plugin sets 'mousemodel' to "popup_setpos" and adds
these entries to the popup menu:
	Set breakpoint		`:Break`
	Clear breakpoint	`:Clear`
	Evaluate		`:Evaluate`
If you don't want this then disable it with: >
	let g:termdebug_popup = 0


Vim window width						*termdebug_wide*

To change the width of the Vim window when debugging starts, and use a
vertical split: >
  let g:termdebug_wide = 163
This will set &columns to 163 when :Termdebug is used.  The value is restored
when quitting the debugger.
If g:termdebug_wide is set and &Columns is already  larger than
g:termdebug_wide then a vertical split will be used without changing &columns.
Set it to 1 to get a vertical split without every changing &columns (useful
for when the terminal can't be resized by Vim).



 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�Mn�))vim80/doc/pi_gzip.txtnu�[���*pi_gzip.txt*   For Vim version 8.0.  Last change: 2016 Nov 06


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Editing compressed files with Vim		*gzip* *bzip2* *compress*

1. Autocommands			|gzip-autocmd|

The functionality mentioned here is a |standard-plugin|.
This plugin is only available if 'compatible' is not set.
You can avoid loading this plugin by setting the "loaded_gzip" variable: >
	:let loaded_gzip = 1

{Vi does not have any of this}

==============================================================================
1. Autocommands						*gzip-autocmd*

The plugin installs autocommands to intercept reading and writing of files
with these extensions:

	extension	compression ~
	*.Z		compress (Lempel-Ziv)
	*.gz		gzip
	*.bz2		bzip2
	*.lzma		lzma
	*.xz		xz
	*.lz		lzip
	*.zst		zstd

That's actually the only thing you need to know.  There are no options.

After decompressing a file, the filetype will be detected again.  This will
make a file like "foo.c.gz" get the "c" filetype.

If you have 'patchmode' set, it will be appended after the extension for
compression.  Thus editing the patchmode file will not give you the automatic
decompression.  You have to rename the file if you want this.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z/\�&&vim80/doc/os_os2.txtnu�[���*os_os2.txt*    For Vim version 8.0.  Last change: 2015 Dec 31


		  VIM REFERENCE MANUAL    by Paul Slootman


							*os2* *OS2* *OS/2*
This file used to contain the particularities for the OS/2 version of Vim.

The OS/2 support was removed in patch 7.4.1008.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�ÿ�+�+vim80/doc/if_perl.txtnu�[���*if_perl.txt*   For Vim version 8.0.  Last change: 2017 Nov 24


		  VIM REFERENCE MANUAL    by Sven Verdoolaege
					 and Matt Gerassimof

Perl and Vim				*perl* *Perl*

1. Editing Perl files			|perl-editing|
2. Compiling Vim with Perl interface	|perl-compiling|
3. Using the Perl interface		|perl-using|
4. Dynamic loading			|perl-dynamic|

{Vi does not have any of these commands}

The Perl interface only works when Vim was compiled with the |+perl| feature.

==============================================================================
1. Editing Perl files					*perl-editing*

Vim syntax highlighting supports Perl and POD files.  Vim assumes a file is
Perl code if the filename has a .pl or .pm suffix.  Vim also examines the first
line of a file, regardless of the filename suffix, to check if a file is a
Perl script (see scripts.vim in Vim's syntax directory).  Vim assumes a file
is POD text if the filename has a .POD suffix.

To use tags with Perl, you need a recent version of Exuberant ctags.  Look
here:
	http://ctags.sourceforge.net

Alternatively, you can use the Perl script pltags.pl, which is shipped with
Vim in the $VIMRUNTIME/tools directory.  This script has currently more
features than Exuberant ctags' Perl support.

==============================================================================
2. Compiling Vim with Perl interface			*perl-compiling*

To compile Vim with Perl interface, you need Perl 5.004 (or later).  Perl must
be installed before you compile Vim.  Vim's Perl interface does NOT work with
the 5.003 version that has been officially released!  It will probably work
with Perl 5.003_05 and later.

The Perl patches for Vim were made by:
	Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
	Matt Gerassimof

Perl for MS-Windows can be found at: http://www.perl.com/
The ActiveState one should work.

==============================================================================
3. Using the Perl interface				*perl-using*

							*:perl* *:pe*
:pe[rl] {cmd}		Execute Perl command {cmd}.  The current package
			is "main".  Simple example to test if `:perl` is
			working: >
				:perl VIM::Msg("Hello")

:pe[rl] << {endpattern}
{script}
{endpattern}
			Execute Perl script {script}.
			{endpattern} must NOT be preceded by any white space.
			If {endpattern} is omitted, it defaults to a dot '.'
			like for the |:append| and |:insert| commands.  Using
			'.' helps when inside a function, because "$i;" looks
			like the start of an |:insert| command to Vim.
			This form of the |:perl| command is mainly useful for
			including perl code in vim scripts.
			Note: This command doesn't work when the Perl feature
			wasn't compiled in.  To avoid errors, see
			|script-here|.


Example vim script: >

	function! WhitePearl()
	perl << EOF
		VIM::Msg("pearls are nice for necklaces");
		VIM::Msg("rubys for rings");
		VIM::Msg("pythons for bags");
		VIM::Msg("tcls????");
	EOF
	endfunction
<
To see what version of Perl you have: >
	:perl print $^V
<

							*:perldo* *:perld*
:[range]perld[o] {cmd}	Execute Perl command {cmd} for each line in the
			[range], with $_ being set to the text of each line in
			turn, without a trailing <EOL>.  Setting $_ will change
			the text, but note that it is not possible to add or
			delete lines using this command.
			The default for [range] is the whole file: "1,$".

Here are some things you can try: >

  :perl $a=1
  :perldo $_ = reverse($_);1
  :perl VIM::Msg("hello")
  :perl $line = $curbuf->Get(42)
<
							*E299*
Executing Perl commands in the |sandbox| is limited.  ":perldo" will not be
possible at all.  ":perl" will be evaluated in the Safe environment, if
possible.


							*perl-overview*
Here is an overview of the functions that are available to Perl: >

  :perl VIM::Msg("Text")		# displays a message
  :perl VIM::Msg("Wrong!", "ErrorMsg")	# displays an error message
  :perl VIM::Msg("remark", "Comment")	# displays a highlighted message
  :perl VIM::SetOption("ai")		# sets a vim option
  :perl $nbuf = VIM::Buffers()		# returns the number of buffers
  :perl @buflist = VIM::Buffers()	# returns array of all buffers
  :perl $mybuf = (VIM::Buffers('qq.c'))[0] # returns buffer object for 'qq.c'
  :perl @winlist = VIM::Windows()	# returns array of all windows
  :perl $nwin = VIM::Windows()		# returns the number of windows
  :perl ($success, $v) = VIM::Eval('&path') # $v: option 'path', $success: 1
  :perl ($success, $v) = VIM::Eval('&xyz')  # $v: '' and $success: 0
  :perl $v = VIM::Eval('expand("<cfile>")') # expands <cfile>
  :perl $curwin->SetHeight(10)		# sets the window height
  :perl @pos = $curwin->Cursor()	# returns (row, col) array
  :perl @pos = (10, 10)
  :perl $curwin->Cursor(@pos)		# sets cursor to @pos
  :perl $curwin->Cursor(10,10)		# sets cursor to row 10 col 10
  :perl $mybuf = $curwin->Buffer()	# returns the buffer object for window
  :perl $curbuf->Name()			# returns buffer name
  :perl $curbuf->Number()		# returns buffer number
  :perl $curbuf->Count()		# returns the number of lines
  :perl $l = $curbuf->Get(10)		# returns line 10
  :perl @l = $curbuf->Get(1 .. 5)	# returns lines 1 through 5
  :perl $curbuf->Delete(10)		# deletes line 10
  :perl $curbuf->Delete(10, 20)		# delete lines 10 through 20
  :perl $curbuf->Append(10, "Line")	# appends a line
  :perl $curbuf->Append(10, "Line1", "Line2", "Line3") # appends 3 lines
  :perl @l = ("L1", "L2", "L3")
  :perl $curbuf->Append(10, @l)		# appends L1, L2 and L3
  :perl $curbuf->Set(10, "Line")	# replaces line 10
  :perl $curbuf->Set(10, "Line1", "Line2")	# replaces lines 10 and 11
  :perl $curbuf->Set(10, @l)		# replaces 3 lines
<
							*perl-Msg*
VIM::Msg({msg}, {group}?)
			Displays the message {msg}.  The optional {group}
			argument specifies a highlight group for Vim to use
			for the message.

							*perl-SetOption*
VIM::SetOption({arg})	Sets a vim option.  {arg} can be any argument that the
			":set" command accepts.  Note that this means that no
			spaces are allowed in the argument!  See |:set|.

							*perl-Buffers*
VIM::Buffers([{bn}...])	With no arguments, returns a list of all the buffers
			in an array context or returns the number of buffers
			in a scalar context.  For a list of buffer names or
			numbers {bn}, returns a list of the buffers matching
			{bn}, using the same rules as Vim's internal
			|bufname()| function.
			WARNING: the list becomes invalid when |:bwipe| is
			used.  Using it anyway may crash Vim.

							*perl-Windows*
VIM::Windows([{wn}...])	With no arguments, returns a list of all the windows
			in an array context or returns the number of windows
			in a scalar context.  For a list of window numbers
			{wn}, returns a list of the windows with those
			numbers.
			WARNING: the list becomes invalid when a window is
			closed.  Using it anyway may crash Vim.

							*perl-DoCommand*
VIM::DoCommand({cmd})	Executes Ex command {cmd}.

							*perl-Eval*
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
			{expr}; success=0 indicates a failure to evaluate
			the expression.  '@x' returns the contents of register
			x, '&x' returns the value of option x, 'x' returns the
			value of internal |variables| x, and '$x' is equivalent
			to perl's $ENV{x}.  All |functions| accessible from
			the command-line are valid for {expr}.
			A |List| is turned into a string by joining the items
			and inserting line breaks.

							*perl-SetHeight*
Window->SetHeight({height})
			Sets the Window height to {height}, within screen
			limits.

							*perl-GetCursor*
Window->Cursor({row}?, {col}?)
			With no arguments, returns a (row, col) array for the
			current cursor position in the Window.  With {row} and
			{col} arguments, sets the Window's cursor position to
			{row} and {col}.  Note that {col} is numbered from 0,
			Perl-fashion, and thus is one less than the value in
			Vim's ruler.

Window->Buffer()					*perl-Buffer*
			Returns the Buffer object corresponding to the given
			Window.

							*perl-Name*
Buffer->Name()		Returns the filename for the Buffer.

							*perl-Number*
Buffer->Number()	Returns the number of the Buffer.

							*perl-Count*
Buffer->Count()		Returns the number of lines in the Buffer.

							*perl-Get*
Buffer->Get({lnum}, {lnum}?, ...)
			Returns a text string of line {lnum} in the Buffer
			for each {lnum} specified.  An array can be passed
			with a list of {lnum}'s specified.

							*perl-Delete*
Buffer->Delete({lnum}, {lnum}?)
			Deletes line {lnum} in the Buffer.  With the second
			{lnum}, deletes the range of lines from the first
			{lnum} to the second {lnum}.

							*perl-Append*
Buffer->Append({lnum}, {line}, {line}?, ...)
			Appends each {line} string after Buffer line {lnum}.
			The list of {line}s can be an array.

							*perl-Set*
Buffer->Set({lnum}, {line}, {line}?, ...)
			Replaces one or more Buffer lines with specified
			{lines}s, starting at Buffer line {lnum}.  The list of
			{line}s can be an array.  If the arguments are
			invalid, replacement does not occur.

$main::curwin
			The current window object.

$main::curbuf
			The current buffer object.


							*script-here*
When using a script language in-line, you might want to skip this when the
language isn't supported.  But this mechanism doesn't work: >
   if has('perl')
     perl << EOF
       this will NOT work!
   EOF
   endif
Instead, put the Perl/Python/Ruby/etc. command in a function and call that
function: >
    if has('perl')
      function DefPerl()
	perl << EOF
	  this works
    EOF
      endfunction
      call DefPerl()
    endif
Note that "EOF" must be at the start of the line.

==============================================================================
4. Dynamic loading					*perl-dynamic*

On MS-Windows and Unix the Perl library can be loaded dynamically.  The
|:version| output then includes |+perl/dyn|.

This means that Vim will search for the Perl DLL or shared library file only
when needed.  When you don't use the Perl interface you don't need it, thus
you can use Vim without this file.


MS-Windows ~

You can download Perl from http://www.perl.org.  The one from ActiveState was
used for building Vim.

To use the Perl interface the Perl DLL must be in your search path.
If Vim reports it cannot find the perl512.dll, make sure your $PATH includes
the directory where it is located.  The Perl installer normally does that.
In a console window type "path" to see what directories are used.  The
'perldll' option can be also used to specify the Perl DLL.

The name of the DLL must match the Perl version Vim was compiled with.
Currently the name is "perl512.dll".  That is for Perl 5.12.  To know for
sure edit "gvim.exe" and search for "perl\d*.dll\c".


Unix ~

The 'perldll' option can be used to specify the Perl shared library file
instead of DYNAMIC_PERL_DLL file what was specified at compile time.  The
version of the shared library must match the Perl version Vim was compiled
with.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�M�d}d}vim80/doc/os_vms.txtnu�[���*os_vms.txt*    For Vim version 8.0.  Last change: 2014 Aug 29


		  VIM REFERENCE MANUAL


							*VMS* *vms*
This file contains the particularities for the VMS version of Vim.
You can reach this information file by typing :help VMS in Vim command
prompt.

 1. Getting started	|vms-started|
 2. Download files	|vms-download|
 3. Compiling		|vms-compiling|
 4. Problems		|vms-problems|
 5. Deploy		|vms-deploy|
 6. Practical usage	|vms-usage|
 7. GUI mode questions	|vms-gui|
 8. Useful notes	|vms-notes|
 9. VMS related changes	|vms-changes|
10. Authors		|vms-authors|

==============================================================================

1. Getting started					*vms-started*

Vim (Vi IMproved) is a Vi-compatible text editor that runs on nearly every
operating system known to humanity.  Now use Vim on OpenVMS too, in character
or X/Motif environment.  It is fully featured and absolutely compatible with
Vim on other operating systems.

==============================================================================

2. Download files					*vms-download*

You can download the Vim source code by ftp from the official Vim site:
	ftp://ftp.vim.org/pub/vim/
Or use one of the mirrors:
	ftp://ftp.vim.org/pub/vim/MIRRORS

You can download precompiled executables from:
	http://www.polarhome.com/vim/
	ftp://ftp.polarhome.com/pub/vim/

To use the precompiled binary version, you need one of these archives:

  vim-XX-exe-ia64-gui.zip       IA64 GUI/Motif executables
  vim-XX-exe-ia64-gtk.zip       IA64 GUI/GTK executables
  vim-XX-exe-ia64-term.zip      IA64 console executables
  vim-XX-exe-axp-gui.zip	Alpha GUI/Motif executables
  vim-XX-exe-axp-gtk.zip	Alpha GUI/GTK executables
  vim-XX-exe-axp-term.zip       Alpha console executables
  vim-XX-exe-vax-gui.zip	VAX GUI executables
  vim-XX-exe-vax-term.zip       VAX console executables

and of course (optional)
  vim-XX-runtime.zip		runtime files

The binary archives contain: vim.exe, ctags.exe, xxd.exe files.

For GTK executables you will need GTKLIB that is available for
Alpha and IA64 platform.

==============================================================================

3. Compiling						*vms-compiling*

See the file [.SRC]INSTALLVMS.TXT.

==============================================================================

4. Problems						*vms-problems*

The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
platforms with the DEC C compiler.  It should work without big problems.
If your system does not have some include libraries you can tune up in
OS_VMS_CONF.H file.

If you decided to build Vim with +perl, +python, etc. options, first you need
to download OpenVMS distributions of Perl and Python.  Build and deploy the
libraries and change adequate lines in MAKE_VMS.MMS file.  There should not be
a problem from Vim side.

Also GTK, XPM library paths should be configured in MAKE_VMS.MMS

Note: Under VAX it should work with the DEC C compiler without problems.  The
VAX C compiler is not fully ANSI C compatible in pre-processor directives
semantics, therefore you have to use a converter program that will do the lion
part of the job.  For detailed instructions read file INSTALLvms.txt

MMS_VIM.EXE is build together with VIM.EXE, but for XXD.EXE you should
change to a subdirectory and build it separately.

CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
specific source might contain CTAGS source files as described above.
You can find more information about CTAGS on VMS at
http://www.polarhome.com/ctags/

Advanced users may try some acrobatics in FEATURE.H file as well.

It is possible to compile with +xfontset +xim options too, but then you have
to set up GUI fonts etc. correctly.  See :help xim from Vim command prompt.

You may want to use GUI with GTK icons, then you have to download and install
GTK for OpenVMS or at least runtime shareable images - LIBGTK from
polarhome.com

For more advanced questions, please send your problem to Vim on VMS mailing
list <vim-vms@polarhome.com>
More about the vim-vms list can be found at:
http://www.polarhome.com/mailman/listinfo/vim-vms

==============================================================================

5. Deploy						*vms-deploy*

Vim uses a special directory structure to hold the document and runtime files:

   vim (or wherever)
    |- tmp
    |- vim57
    |----- doc
    |----- syntax
    |- vim62
    |----- doc
    |----- syntax
    |- vim64
    |----- doc
    |----- syntax
    vimrc    (system rc files)
    gvimrc

Use: >

	define/nolog VIM	device:[path.vim]
	define/nolog VIMRUNTIME device:[path.vim.vim60]
	define/nolog TMP	device:[path.tmp]

To get vim.exe to find its document, filetype, and syntax files, and to
specify a directory where temporary files will be located.  Copy the "runtime"
subdirectory of the Vim distribution to vimruntime.

Logicals $VIMRUNTIME and $TMP are optional.

If $VIMRUNTIME is not set, Vim will guess and try to set up automatically.
Read more about it at :help runtime

If $TMP is not set, you will not be able to use some functions as CTAGS,
XXD, printing etc. that use temporary directory for normal operation.
The $TMP directory should be readable and writable by the user(s).
The easiest way to set up $TMP is to define a logical: >

	define/nolog TMP SYS$SCRATCH
or as: >
	define/nolog TMP SYS$LOGIN

==============================================================================

6. Practical usage					*vms-usage*

Usually, you want to run just one version of Vim on your system, therefore
it is enough to dedicate one directory for Vim.
Copy the whole Vim runtime directory structure to the deployment position.
Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
Set up the logical $VIM as: >

	$ define VIM device:<path>

Set up some symbols: >

	$ ! vi starts Vim in chr. mode.
	$ vi*m  :== mcr VIM:VIM.EXE

	$ !gvi starts Vim in GUI mode.
	$ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g

Please, check the notes for customization and configuration of symbols.

You may want to create .vimrc and .gvimrc files in your home directory
(SYS$LOGIN) to overwrite default settings.

The easiest way is just rename example files.  You may leave the menu file
(MENU.VIM) and files vimrc and gvimrc in the original $VIM directory.  It will
be the default setup for all users, and for users it is enough to just have
their own additions or resetting in their home directory in files .vimrc and
.gvimrc.  It should work without problems.

Note: Remember, system rc files (default for all users) don't have a leading
".".  So, system rc files are: >

	$VIM:vimrc
	$VIM:gvimrc
	$VIM:menu.vim

and user customized rc files are: >

	sys$login:.vimrc
	sys$login:.gvimrc

You can check that everything is at the right place with the :version command.

Example LOGIN.COM: >

	$ define/nolog VIM RF10:[UTIL.VIM]
	$ vi*m :== mcr VIM:VIM.EXE
	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
	$ set disp/create/node=192.168.5.223/trans=tcpip

Note: This set-up should be enough, if you are working on a standalone server or
clustered environment, but if you want to use Vim as an internode editor in
DECNET environment, it will satisfy as well.
You just have to define the "whole" path: >

	$ define VIM "<server_name>[""user password""]::device:<path>"
	$ vi*m :== "mcr VIM:VIM.EXE"

For example: >

	$ define VIM "PLUTO::RF10:[UTIL.VIM]"
	$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required

You can also use the $VIMRUNTIME logical to point to the proper version of Vim
if you have installed more versions at the same time.  If $VIMRUNTIME is not
defined Vim will borrow its value from the $VIM logical.  You can find more
information about the $VIMRUNTIME logical by typing :help runtime as a Vim
command.

System administrators might want to set up a system wide Vim installation,
then add to the SYS$STARTUP:SYLOGICALS.COM >

	$ define/nolog/sys VIM device:<path>
	$ define/nolog/sys TMP SYS$SCRATCH

And to the SYS$STARTUP:SYLOGIN.COM >

	$ vi*m :== mcr VIM:VIM.EXE
	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40


It will set up a normal Vim work environment for every user on the system.

IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line
parameters are assumed to be lowercase. In order to indicate that a command
line parameter is uppercase "/" sign must be used.

Examples:
  >
	vim -R  filename  ! means: -r List swap files and exit
	vim -/r filename  ! means: -R Readonly mode (like "view")
	vim -u	<vimrc>   ! means: -u Use <vimrc> instead of any .vimrc
	vim -/u <gvimrc>  ! means: -U Use <gvimrc> instead of any .gvimrc

==============================================================================

7. GUI mode questions					*vms-gui*

OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most
of the users do not use a native X/Window environment during normal operation.
It is not possible to start Vim in GUI mode "just like that".  But anyhow it
is not too complicated either.

First of all: you will need an executable that is built with the GUI enabled.

Second: you need to have installed DECW/Motif on your VMS server, otherwise
you will get errors that some shareable libraries are missing.

Third: If you choose to run Vim with extra features such as GUI/GTK then you
need a GTK installation too or at least a GTK runtime environment (LIBGTK
can be downloaded from http://www.polarhome.com/vim/).

1) If you are working on the VMS X/Motif console:
   Start Vim with the command: >

	$ mc device:<path>VIM.EXE -g
<
   or type :gui as a command to the Vim command prompt.  For more info :help
   gui

2) If you are working on some other X/Window environment like Unix or a remote
   X VMS console.  Set up display to your host with: >

	$ set disp/create/node=<your IP address>/trans=<transport-name>
<
   and start Vim as in point 1.  You can find more help in VMS documentation or
   type: help set disp in VMS prompt.
   Examples: >

	$ set disp/create/node=192.168.5.159		 ! default trans is DECnet
	$ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
	$ set disp/create/node=192.168.5.159/trans=local ! display on the same node

Note: you should define just one of these.
For more information type $help set disp in VMS prompt.

3) Another elegant solution is XDM if you have installed on OpenVMS box.
   It is possible to work from XDM client as from GUI console.

4) If you are working on MS-Windows or some other non X/Window environment
   you need to set up one X server and run Vim as in point 2.
   For MS-Windows there are available free X servers as MIX, Omni X etc.,
   as well as excellent commercial products as eXcursion or ReflectionX with
   built-in DEC support.

Please note, that executables without GUI are slightly faster during startup
than with enabled GUI in character mode. Therefore, if you do not use GUI
features, it is worth to choose non GUI executables.

==============================================================================

8. Useful notes						*vms-notes*

8.1 Backspace/delete
8.2 Filters
8.3 VMS file version numbers
8.4 Directory conversion
8.5 Remote host invocation
8.6 Terminal problems
8.7 Hex-editing and other external tools
8.8 Sourcing vimrc and gvimrc
8.9 Printing from Vim
8.10 Setting up the symbols
8.11 diff and other GNU programs
8.12 diff-mode
8.13 Allow '$' in C keywords
8.14 VIMTUTOR for beginners
8.15 Slow start in console mode issue
8.16 Common VIM directory - different architectures

8.1 Backspace/delete

There are backspace/delete key inconsistencies with VMS.
:fixdel doesn't do the trick, but the solution is: >

	:inoremap ^? ^H		" for terminal mode
	:inoremap <Del> ^H	" for gui mode

Read more in ch: 8.6 (Terminal problems).
(Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3)


8.2 Filters

Vim supports filters, i.e., if you have a sort program that can handle
input/output redirection like Unix (<infile >outfile), you could use >

	:map \s 0!'aqsort<CR>

(Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4)


8.3 VMS file version numbers

Vim is saving files into a new file with the next higher file version
number, try these settings. >

	:set nobackup	     " does not create *.*_ backup files
	:set nowritebackup   " does not have any purpose on VMS.  It's the
			     " default.

Recovery is working perfectly as well from the default swap file.
Read more with :help swapfile

(Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
Vim 5.6)


8.4 Directory conversion

Vim will internally convert any unix-style paths and even mixed unix/VMS
paths into VMS style paths.  Some typical conversions resemble:

	/abc/def/ghi		-> abc:[def]ghi.
	/abc/def/ghi.j		-> abc:[def]ghi.j
	/abc/def/ghi.j;2	-> abc:[def]ghi.j;2
	/abc/def/ghi/jkl/mno	-> abc:[def.ghi.jkl]mno.
	abc:[def.ghi]jkl/mno	-> abc:[def.ghi.jkl]mno.
	  ./			-> current directory
	  ../			-> relative parent directory
	  [.def.ghi]		-> relative child directory
	   ./def/ghi		-> relative child directory

Note: You may use <,> brackets as well (device:<path>file.ext;version) as
rf10:<user.zay.work>test.c;1

(David Elins <delins@foliage.com>, Jerome Lauret
<JLAURET@mail.chem.sunysb.edu> Vim 5.6)


8.5 Remote host invocation

It is possible to use Vim as an internode editor.
1. Edit some file from remote node: >

	vi "<server>""username passwd""::<device>:<path><filename>;<version>"

Example: >
	vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"

Note: syntax is very important, otherwise VMS will recognize more parameters
instead of one (resulting with: file not found)

2.  Set up Vim as your internode editor.  If Vim is not installed on your
host, just set up your IP address, the full Vim path including the server name
and run the command procedure below: >

	$ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage
	$ set disp/create/node=<your_IP_here>/trans=tcpip
	$ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>"
	$  vi*m :== "mcr VIM:VIM.EXE"
	$ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g"
	$ goto end
	$ usage:
	$ write sys$output " Please enter username and password as a parameter."
	$ write sys$output " Example: @SETVIM.COM username passwd"
	$ end:

Note: Never use it in a clustered environment (you do not need it), loading
could be very-very slow, but even faster than a local Emacs. :-)

(Zoltan Arpadffy, Vim 5.6)


8.6 Terminal problems

If your terminal name is not known to Vim and it is trying to find the default
one you will get the following message during start-up:
---
Terminal entry not found in termcap
'unknown-terminal' not known.  Available built-in terminals are:
    builtin_gui
    builtin_riscos
    builtin_amiga
    builtin_beos-ansi
    builtin_ansi
    builtin_vt320
    builtin_vt52
    builtin_pcansi
    builtin_win32
    builtin_xterm
    builtin_iris-ansi
    builtin_debug
    builtin_dumb
defaulting to 'vt320'
---
The solution is to define the default terminal name: >

	$ ! unknown terminal name.  Let us use vt320 or ansi instead.
	$ ! Note: it's case sensitive
	$ define term "vt320"

Terminals from VT100 to VT320 (as V300, VT220, VT200) do not need any extra
keyboard mappings.  They should work perfectly as they are, including arrows,
Ins, Del buttons etc., except Backspace in GUI mode.  To solve it, add to
.gvimrc: >

	inoremap <Del> <BS>

Vim will also recognize that they are fast terminals.

If you have some annoying line jumping on the screen between windows add to
your .vimrc file: >

	set ttyfast	" set fast terminal

Note: if you're using Vim on remote host or through a very slow connection, it's
recommended to avoid the fast terminal option with: >

	set nottyfast   " set terminal to slow mode

(Zoltan Arpadffy, Vim 5.6)


8.7 Hex-editing and other external tools

A very important difference between OpenVMS and other systems is that VMS uses
special commands to execute executables: >

	RUN <path>filename
	MCR <path>filename <parameters>

OpenVMS users always have to be aware that the Vim command :! "just" drop them
to DCL prompt.  This feature is possible to use without any problem with all
DCL commands, but if we want to execute some programs such as XXD, CTAGS, JTAGS,
etc.  we're running into trouble if we follow the Vim documentation (see: help
xxd).

Solution: Execute with the MC command and add the full path to the executable.
Example: Instead of :%!xxd command use: >

	:%!mc vim:xxd

... or in general: >
	:!mc <path>filename <parameters>

Note: You can use XXD and CTAGS from GUI menu.

To customize ctags it is possible to define the logical $CTAGS with standard
parameters as: >

	define/nolog CTAGS "--totals -o sys$login:tags"

For additional information, please read :help tagsearch and CTAGS
documentation at http://ctags.sourceforge.net/ctags.html.

(Zoltan Arpadffy, Vim 5.6-70)


8.8 Sourcing vimrc and gvimrc

If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows)
you can get in trouble if you ftp that file(s): VMS has different end-of-line
indication.
The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say:
>
	:so sys$login:.vimrc

One trick is to compress (e.g. zip) the files on the other platform and
uncompress it on VMS; if you have the same symptom, try to create the files
with copy-paste (for this you need both op. systems reachable from one
machine, e.g. an Xterm on Windows or telnet to Windows from VMS).

(Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> Vim 6.0a)


8.9 Printing from Vim

To be able to print from Vim (running in GUI mode) under VMS you have to set
up $TMP logical which should point to some temporary directory and logical
SYS$PRINT to your default print queue.
Example: >

	$define SYS$PRINT HP5ANSI

You can print out the whole buffer or just the marked area.
More info under :help hardcopy

(Zoltan Arpadffy, Vim 6.0c)


8.10 Setting up the symbols

When I use gvim this way and press CTRL-Y in the parent terminal, gvim exits.
I now use a different symbol that seems to work OK and fixes the problem.
I suggest this instead: >

	$ GV*IM:==SPAWN/NOWAIT/INPUT=NLA0: MCR VIM:VIM.EXE -G -GEOMETRY 80X40

The /INPUT=NLA0: separates the standard input of the gvim process from the
parent terminal, to block signals from the parent window.
Without the -GEOMETRY, the gvim window size will be minimal and the menu
will be confused after a window-resize.

(Carlo Mekenkamp, Coen Engelbarts, Vim 6.0ac)


8.11 diff and other GNU programs

From 6.0 diff functionality has been implemented, but OpenVMS does not use
GNU/Unix like diff therefore built in diff does not work.
There is a simple solution to solve this anomaly.  Install a Unix like diff
and Vim will work perfectly in diff mode too.  You just have to redefine your
diff program as: >

	define /nolog diff <GNU_PATH>diff.exe

Another, more sophisticated solution is described below (8.12 diff-mode)
There are other programs such as patch, make etc that may cause the same
problems.  At www.polarhome.com is possible to download an GNU package for
Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS.
(Zoltan Arpadffy, Vim 6.1)


8.12 diff-mode

Vim 6.0 and higher supports Vim diff-mode (See |new-diff-mode|, |diff-mode|
and |08.7|).  This uses the external program 'diff' and expects a Unix-like
output format from diff.  The standard VMS diff has a different output
format.  To use Vim on VMS in diff-mode, you need to:
    1 Install a Unix-like diff program, e.g. GNU diff
    2 Tell Vim to use the Unix-like diff for diff-mode.

You can download GNU diff from the VIM-VMS website, it is one of the GNU
tools in http://www.polarhome.com/vim/files/gnu_tools.zip.  I suggest to
unpack it in a separate directory "GNU" and create a logical GNU: that
points to that directory, e.g: >

   DEFINE GNU    <DISK>:[<DIRECTORY>.BIN.GNU]

You may also want to define a symbol GDIFF, to use the GNU diff from the DCL
prompt: >

   GDIFF :==     $GNU:DIFF.EXE

Now you need to tell Vim to use the new diff program.  Take the example
settings from |diff-diffexpr| and change the call to the external diff
program to the new diff on VMS.  Add this to your .vimrc file: >

     " Set up vimdiff options
       if v:version >= 600
	" Use GNU diff on VMS
	set diffexpr=MyDiff()
	function MyDiff()
	   let opt = ""
	   if &diffopt =~ "icase"
	     let opt = opt . "-i "
	   endif
	   if &diffopt =~ "iwhite"
	     let opt = opt . "-b "
	   endif
	   silent execute "!mc GNU:diff.exe -a " . opt . v:fname_in . " " .  v:fname_new .
		\  " > " . v:fname_out
	endfunction
      endif

You can now use Vim in diff-mode, e.g. to compare two files in read-only
mode: >

    $ VIM -D/R <FILE1> <FILE2>

You can also define new symbols for vimdiff, e.g.: >

    $ VIMDIFF     :== 'VIM' -D/R
    $ GVIMDIFF    :== 'GVIM' -D/R

You can now compare files in 4 ways: >

    1. VMS  diff:  $ DIFF     <FILE1> <FILE2>
    2. GNU  diff:  $ GDIFF    <FILE1> <FILE2>
    3. VIM  diff:  $ VIMDIFF  <FILE1> <FILE2>
    4. GVIM diff:  $ GVIMDIFF <FILE1> <FILE2>

(Coen Engelbarts, Vim 6.1)


8.13 Allow '$' in C keywords

DEC C uses many identifiers with '$' in them.  This is not allowed in ANSI C,
and Vim recognises the '$' as the end of the identifier.  You can change this
with the 'iskeyword' option.
Add this command to your .vimrc file: >

    autocmd FileType c,cpp,cs  set iskeyword+=$

You can also create the file(s) $VIM/FTPLUGIN/C.VIM (and/or CPP.VIM and
CS.VIM) and add this command: >

	set iskeyword+=$

Now word-based commands, e.g. the '*'-search-command and the CTRL-]
tag-lookup, work on the whole identifier.  (Ctags on VMS also supports '$' in
C keywords since ctags version 5.1.)

(Coen Engelbarts, Vim 6.1)

8.14 VIMTUTOR for beginners

The VIMTUTOR.COM DCL script can help Vim beginners to learn/make their first
steps with Vim on OpenVMS.  Depending of binary distribution you may start it
with: >

	@vim:vimtutor

(Thomas.R.Wyant III, Vim 6.1)

8.16 Slow start in console mode issue

As GUI/GTK Vim works equally well in console mode, many administrators
deploy those executables system wide.
Unfortunately, on a remote slow connections GUI/GTK executables behave rather
slow when user wants to run Vim just in the console mode - because of X
environment detection timeout.

Luckily, there is a simple solution for that. Administrators need to deploy
both GUI/GTK build and just console build executables, like below: >

    |- vim73
    |----- doc
    |----- syntax
       vimrc    (system rc files)
       gvimrc
       gvim.exe (the renamed GUI or GTK built vim.exe)
       vim.exe  (the console only executable)

Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >

	$ define/nolog VIM RF10:[UTIL.VIM73] ! where you VIM directory is
	$ vi*m  :== mcr VIM:VIM.EXE
	$ gvi*m :== mcr VIM:GVIM.EXE
	$ ! or you can try to spawn with
	$ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40


Like this, users that do not have X environment and want to use Vim just in
console mode can avoid performance problems.

(Zoltan Arpadffy, Vim 7.2)

8.15 Common VIM directory - different architectures

In a cluster that contains nodes with different architectures like below:

$show cluster
View of Cluster from system ID 11655  node: TOR                                                                     18-AUG-2008 11:58:31
+---------------------------------+
�        SYSTEMS        � MEMBERS �
+-----------------------+---------�
�  NODE  �   SOFTWARE   �  STATUS �
+--------+--------------+---------�
� TOR    � VMS V7.3-2   � MEMBER  �
� TITAN2 � VMS V8.3     � MEMBER  �
� ODIN   � VMS V7.3-2   � MEMBER  �
+---------------------------------+

It is convenient to have a common VIM directory but execute different
executables.
There are several solutions for this problem:

Solution 1.  All executables in the same directory with different names
This is easily done with the following script that can be added
to the login.com or sylogin.com: >

	$ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
	$ then
	$       say "VAX platform"
	$       vi*m:== mcr vim:VIM.EXE_VAX
	$ endif
	$ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
	$ then
	$       say "ALPHA platform"
	$       vi*m :== mcr vim:VIM.EXE_AXP
	$ endif
	$ if f$getsyi("ARCH_NAME") .eqs. "IA64"
	$ then
	$      say "IA64 platform"
	$      vi*m :== mcr vim:VIM.EXE_IA64
	$ endif

Solution 2.  Different directories: >

	$ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
	$ then
	$       say "VAX platform"
	$       define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables
	$ endif
	$ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
	$ then
	$       say "ALPHA platform"
	$       define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables
	$ endif
	$ if f$getsyi("ARCH_NAME") .eqs. "IA64"
	$ then
	$      say "IA64 platform"
	$      define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
	$ endif
        $! VIMRUNTIME must be defined in order to find runtime files
	$ define/nolog VIMRUNTIME RF10:[UTIL.VIM73]

A good example for this approach is the [GNU]gnu_tools.com script from
GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/

(Zoltan Arpadffy, Vim 7.2)

==============================================================================

9. VMS related changes					*vms-changes*

Version 7.4
- Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name"
  add _un_ at the beginning to keep the extension
- correct swap file name wildcard handling
- handle iconv usage correctly
- do not optimize on vax - otherwise it hangs compiling crypto files
- fileio.c fix the comment
- correct RealWaitForChar
- after 7.4-119 use different functions lib$cvtf_to_internal_time because Alpha and VAX have
  G_FLOAT but IA64 uses IEEE float otherwise Vim crashes
- guard against crashes that are caused by mixed filenames
- [TESTDIR]make_vms.mms changed to see the output files
- Improve tests, update known issues
- minor compiler warnings fixed
- CTAGS 5.8 +regex included

Version 7.3
- CTAGS 5.8 included
- VMS compile warnings fixed - floating-point overflow warning corrected on VAX
- filepath completion corrected - too many chars were escaped in filename
  and shell commands
- the following plugins are included into VMS runtime:
	genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
	bufexplorer 7.1.7, taglist 4.5
- minor changes in vimrc (just in VMS runtime)
- make_vms.mms - HUGE model is the default
- [TESTDIR]make_vms.mms include as many tests possible
- modify test30 and test54 for VMS
- enable FLOAT feature in VMS port
- os_vms.txt updated

Version 7.2 (2008 Aug 9)
- VCF files write corrected
- CTAGS 5.7 included
- corrected make_vms.mms (on VAX gave syntax error)

Version 7.1 (2007 Jun 15)
- create TAGS file from menu

Version 7 (2006 May 8)
- Improved low level char input (affects just console mode)
- Fixed plugin bug
- CTAGS 5.6 included

Version 6.4 (2005 Oct 15)
- GTKLIB and Vim build on IA64
- colors in terminal mode
- syntax highlighting in terminal mode
- write problem fixed (extra CR)
- ESC and ESC sequence recognition in terminal mode
- make file changed to support new MMS version
- env variable expansion in path corrected
- printing problems corrected
- help text added for case insensitive arguments

Version 6.3 (2004 May 10)
- Improved vms_read function
- CTAGS v5.5.4 included
- Documentation corrected and updated

Version 6.2 (2003 May 7)
- Corrected VMS system call results
- Low level character input is rewritten
- Correction in tag and quickfix handling
- First GTK build
- Make file changes
    - GTK feature added
    - Define for OLD_VMS
    - OpenVMS version 6.2 or older
- Documentation updated with GTK features
- CTAGS v5.5 included
- VMS VIM tutor created

Version 6.1 (2002 Mar 25)
- TCL init_tcl() problem fixed
- CTAGS v5.4 included
- GNU tools binaries for OpenVMS
- Make file changes
    - PERL, PYTHON and TCL support improved
    - InstallVMS.txt has a detailed description HOWTO build
- VMS/Unix file handling rewritten
- Minor casting and bug fixes

Version 6.0 (2001 Sep 28)
- Unix and VMS code has been merged
	- separated "really" VMS related code
	- included all possible Unix functionality
	- simplified or deleted the configuration files
	- makefile MAKE_VMS.MMS reviewed
- menu changes (fixed printing, CTAGS and XXD usage)
- fixed variable RMS record format handling anomaly
- corrected syntax, ftplugin etc files load
- changed expand_wildcards and expandpath functions to work more general
- created OS_VMS_FILTER.COM - DECC->VAXC pre-processor directive convert
  script.
- Improved code's VAXC and new DECC compilers compatibility
- changed quickfix parameters:
	- errormessage format to suite DECC
	- search, make and other commands to suite VMS system
- updated and renamed MMS make files for Vim and CTAGS.
- CTAGS has been removed from source distribution of Vim but it will remain
  in OpenVMS binary distributions.
- simplified build/configuration procedure
- created INSTALLvms.txt - detailed compiling instructions under VMS.
- updated test scripts.

Version 5.8 (2001 Jun 1)
- OS_VMS.TXT updated with new features.
- other minor fixes.
- documentation updated
- this version had been tested much more than any other OpenVMS version
  earlier

Version 5.7 (2000 Jun 24)
- New CTAGS v5.0 in distribution
- Documentation updated

Version 5.6 (2000 Jan 17)
- VMS filename related changes:
	- version handling (open everything, save to new version)
	- correct file extension matching for syntax (version problem)
	- handle <,> characters and passwords in directory definition
	- handle internode/remote invocation and editing with passwords
	- OpenVMS files will be treated case insensitive from now
	- corrected response of expand("%:.") etc path related functions
	(in one word: VMS directory handling internally)
- version command
	- corrected (+,-) information data
	- added compiler and OS version
	- added user and host information
	- resolving $VIM and $VIMRUNTIME logicals
- VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2.
	- enabled farsi, rightleft etc. features
	- undo level raised up to 1000
- Updated OS_VMS.MMS file.
	- maximum features ON is default
	- Vim is compilable with +perl, +python and +tcl features.
	- improved MMK compatibility
- Created MAKEFILE_VMS.MMS, makefile for testing Vim during development.
- Defined DEC terminal VT320
	- compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals
	  backwards, but not VT340 and newer with colour capability.
	- VT320 is default terminal for OpenVMS
	- these new terminals are also fast ttys (default for OpenVMS).
	- allowed dec_mouse ttym
- Updated files vimrc and gvimrc with VMS specific suggestions.
- OS_VMS.TXT updated with new features.

Version 5.5 (1999 Dec 3)
- Popup menu line crash corrected.
- Handle full file names with version numbers.
- Directory handling (CD command etc.)
- Corrected file name conversion VMS to Unix and v.v.
- Correct response of expand wildcards
- Recovery is working from this version under VMS as well.
- Improved terminal and signal handing.
- Improved OS_VMS.TXT

Version 5.4 (1999 Sep 9)
- Cut and paste mismatch corrected.
- Motif directories during open and save are corrected.

Version 5.3 (1998 Oct 12)
- Minor changes in the code
- Standard distribution with +GUI option

Version 5.1 (1998 Apr 21)
- Syntax and DEC C changes in the code
- Fixing problems with the /doc subdirectory
- Improve OS_VMS.MMS

Version 4.5 (1996 Dec 16)
- First VMS port by Henk Elbers <henk@xs4all.nl>

==============================================================================

10. Authors						*vms-authors*

OpenVMS documentation and executables are maintained by:
Zoltan Arpadffy <arpadffy@polarhome.com>
OpenVMS Vim page: http://www.polarhome.com/vim/

This document uses parts and remarks from earlier authors and contributors
of OS_VMS.TXT:
	Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov>
	Bruce Hunsaker <BNHunsaker@chq.byu.edu>
	Sandor Kopanyi <sandor.kopanyi@mailbox.hu>

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��T�J�Jvim80/doc/usr_25.txtnu�[���*usr_25.txt*	For Vim version 8.0.  Last change: 2016 Mar 28

		     VIM USER MANUAL - by Bram Moolenaar

			     Editing formatted text


Text hardly ever comes in one sentence per line.  This chapter is about
breaking sentences to make them fit on a page and other formatting.
Vim also has useful features for editing single-line paragraphs and tables.

|25.1|	Breaking lines
|25.2|	Aligning text
|25.3|	Indents and tabs
|25.4|	Dealing with long lines
|25.5|	Editing tables

     Next chapter: |usr_26.txt|  Repeating
 Previous chapter: |usr_24.txt|  Inserting quickly
Table of contents: |usr_toc.txt|

==============================================================================
*25.1*	Breaking lines

Vim has a number of functions that make dealing with text easier.  By default,
the editor does not perform automatic line breaks.  In other words, you have
to press <Enter> yourself.  This is useful when you are writing programs where
you want to decide where the line ends.  It is not so good when you are
creating documentation and want the text to be at most 70 character wide.
   If you set the 'textwidth' option, Vim automatically inserts line breaks.
Suppose, for example, that you want a very narrow column of only 30
characters.  You need to execute the following command: >

	:set textwidth=30

Now you start typing (ruler added):

		 1	   2	     3
	12345678901234567890123456789012345
	I taught programming for a whi ~

If you type "l" next, this makes the line longer than the 30-character limit.
When Vim sees this, it inserts a line break and you get the following:

		 1	   2	     3
	12345678901234567890123456789012345
	I taught programming for a ~
	whil ~

Continuing on, you can type in the rest of the paragraph:

		 1	   2	     3
	12345678901234567890123456789012345
	I taught programming for a ~
	while. One time, I was stopped ~
	by the Fort Worth police, ~
	because my homework was too ~
	hard. True story. ~

You do not have to type newlines; Vim puts them in automatically.

	Note:
	The 'wrap' option makes Vim display lines with a line break, but this
	doesn't insert a line break in the file.


REFORMATTING

The Vim editor is not a word processor.  In a word processor, if you delete
something at the beginning of the paragraph, the line breaks are reworked.  In
Vim they are not; so if you delete the word "programming" from the first line,
all you get is a short line:

		 1	   2	     3
	12345678901234567890123456789012345
	I taught for a ~
	while. One time, I was stopped ~
	by the Fort Worth police, ~
	because my homework was too ~
	hard. True story. ~

This does not look good.  To get the paragraph into shape you use the "gq"
operator.
   Let's first use this with a Visual selection.  Starting from the first
line, type: >

	v4jgq

"v" to start Visual mode, "4j" to move to the end of the paragraph and then
the "gq" operator.  The result is:

		 1	   2	     3
	12345678901234567890123456789012345
	I taught for a while. One ~
	time, I was stopped by the ~
	Fort Worth police, because my ~
	homework was too hard. True ~
	story. ~

Note: there is a way to do automatic formatting for specific types of text
layouts, see |auto-format|.

Since "gq" is an operator, you can use one of the three ways to select the
text it works on: With Visual mode, with a movement and with a text object.
   The example above could also be done with "gq4j".  That's less typing, but
you have to know the line count.  A more useful motion command is "}".  This
moves to the end of a paragraph.  Thus "gq}" formats from the cursor to the
end of the current paragraph.
   A very useful text object to use with "gq" is the paragraph.  Try this: >

	gqap

"ap" stands for "a-paragraph".  This formats the text of one paragraph
(separated by empty lines).  Also the part before the cursor.
   If you have your paragraphs separated by empty lines, you can format the
whole file by typing this: >

	gggqG

"gg" to move to the first line, "gqG" to format until the last line.
   Warning: If your paragraphs are not properly separated, they will be joined
together.  A common mistake is to have a line with a space or tab.  That's a
blank line, but not an empty line.

Vim is able to format more than just plain text.  See |fo-table| for how to
change this.  See the 'joinspaces' option to change the number of spaces used
after a full stop.
   It is possible to use an external program for formatting.  This is useful
if your text can't be properly formatted with Vim's builtin command.  See the
'formatprg' option.

==============================================================================
*25.2*	Aligning text

To center a range of lines, use the following command: >

	:{range}center [width]

{range} is the usual command-line range.  [width] is an optional line width to
use for centering.  If [width] is not specified, it defaults to the value of
'textwidth'.  (If 'textwidth' is 0, the default is 80.)
   For example: >

	:1,5center 40

results in the following:

       I taught for a while. One ~
       time, I was stopped by the ~
     Fort Worth police, because my ~
      homework was too hard. True ~
		 story. ~


RIGHT ALIGNMENT

Similarly, the ":right" command right-justifies the text: >

	:1,5right 37

gives this result:

	    I taught for a while. One ~
	   time, I was stopped by the ~
	Fort Worth police, because my ~
	  homework was too hard. True ~
			       story. ~

LEFT ALIGNMENT

Finally there is this command: >

	:{range}left [margin]

Unlike ":center" and ":right", however, the argument to ":left" is not the
length of the line.  Instead it is the left margin.  If it is omitted, the
text will be put against the left side of the screen (using a zero margin
would do the same).  If it is 5, the text will be indented 5 spaces.  For
example, use these commands: >

	:1left 5
	:2,5left

This results in the following:

	     I taught for a while. One ~
	time, I was stopped by the ~
	Fort Worth police, because my ~
	homework was too hard. True ~
	story. ~


JUSTIFYING TEXT

Vim has no built-in way of justifying text.  However, there is a neat macro
package that does the job.  To use this package, execute the following
command: >

	:packadd justify

Or put this line in your |vimrc|: >

	packadd! justify

This Vim script file defines a new visual command "_j".  To justify a block of
text, highlight the text in Visual mode and then execute "_j".
   Look in the file for more explanations.  To go there, do "gf" on this name:
$VIMRUNTIME/pack/dist/opt/justify/plugin/justify.vim.

An alternative is to filter the text through an external program.  Example: >

	:%!fmt

==============================================================================
*25.3*	Indents and tabs

Indents can be used to make text stand out from the rest.  The example texts
in this manual, for example, are indented by eight spaces or a tab.  You would
normally enter this by typing a tab at the start of each line.  Take this
text:
	the first line ~
	the second line ~

This is entered by typing a tab, some text, <Enter>, tab and more text.
   The 'autoindent' option inserts indents automatically: >

	:set autoindent

When a new line is started it gets the same indent as the previous line.  In
the above example, the tab after the <Enter> is not needed anymore.


INCREASING INDENT

To increase the amount of indent in a line, use the ">" operator.  Often this
is used as ">>", which adds indent to the current line.
   The amount of indent added is specified with the 'shiftwidth' option.  The
default value is 8.  To make ">>" insert four spaces worth of indent, for
example, type this: >

	:set shiftwidth=4

When used on the second line of the example text, this is what you get:

	the first line ~
	    the second line ~

"4>>" will increase the indent of four lines.


TABSTOP

If you want to make indents a multiple of 4, you set 'shiftwidth' to 4.  But
when pressing a <Tab> you still get 8 spaces worth of indent.  To change this,
set the 'softtabstop' option: >

	:set softtabstop=4

This will make the <Tab> key insert 4 spaces worth of indent.  If there are
already four spaces, a <Tab> character is used (saving seven characters in the
file).  (If you always want spaces and no tab characters, set the 'expandtab'
option.)

	Note:
	You could set the 'tabstop' option to 4.  However, if you edit the
	file another time, with 'tabstop' set to the default value of 8, it
	will look wrong.  In other programs and when printing the indent will
	also be wrong.  Therefore it is recommended to keep 'tabstop' at eight
	all the time.  That's the standard value everywhere.


CHANGING TABS

You edit a file which was written with a tabstop of 3.  In Vim it looks ugly,
because it uses the normal tabstop value of 8.  You can fix this by setting
'tabstop' to 3.  But you have to do this every time you edit this file.
   Vim can change the use of tabstops in your file.  First, set 'tabstop' to
make the indents look good, then use the ":retab" command: >

	:set tabstop=3
	:retab 8

The ":retab" command will change 'tabstop' to 8, while changing the text such
that it looks the same.  It changes spans of white space into tabs and spaces
for this.  You can now write the file.  Next time you edit it the indents will
be right without setting an option.
   Warning: When using ":retab" on a program, it may change white space inside
a string constant.  Therefore it's a good habit to use "\t" instead of a
real tab.

==============================================================================
*25.4*	Dealing with long lines

Sometimes you will be editing a file that is wider than the number of columns
in the window.  When that occurs, Vim wraps the lines so that everything fits
on the screen.
   If you switch the 'wrap' option off, each line in the file shows up as one
line on the screen.  Then the ends of the long lines disappear off the screen
to the right.
   When you move the cursor to a character that can't be seen, Vim will scroll
the text to show it.  This is like moving a viewport over the text in the
horizontal direction.
   By default, Vim does not display a horizontal scrollbar in the GUI.  If you
want to enable one, use the following command: >

	:set guioptions+=b

One horizontal scrollbar will appear at the bottom of the Vim window.

If you don't have a scrollbar or don't want to use it, use these commands to
scroll the text.  The cursor will stay in the same place, but it's moved back
into the visible text if necessary.

	zh		scroll right
	4zh		scroll four characters right
	zH		scroll half a window width right
	ze		scroll right to put the cursor at the end
	zl		scroll left
	4zl		scroll four characters left
	zL		scroll half a window width left
	zs		scroll left to put the cursor at the start

Let's attempt to show this with one line of text.  The cursor is on the "w" of
"which".  The "current window" above the line indicates the text that is
currently visible.  The "window"s below the text indicate the text that is
visible after the command left of it.

			      |<-- current window -->|
		some long text, part of which is visible in the window ~
	ze	  |<--	   window     -->|
	zH	   |<--     window     -->|
	4zh		  |<--	   window     -->|
	zh		     |<--     window	 -->|
	zl		       |<--	window	   -->|
	4zl			  |<--	   window     -->|
	zL				|<--	 window     -->|
	zs			       |<--	window	   -->|


MOVING WITH WRAP OFF

When 'wrap' is off and the text has scrolled horizontally, you can use the
following commands to move the cursor to a character you can see.  Thus text
left and right of the window is ignored.  These never cause the text to
scroll:

	g0		to first visible character in this line
	g^		to first non-blank visible character in this line
	gm		to middle of this line
	g$		to last visible character in this line

		|<--	 window    -->|
	some long    text, part of which is visible ~
		 g0  g^    gm	     g$


BREAKING AT WORDS				*edit-no-break*

When preparing text for use by another program, you might have to make
paragraphs without a line break.  A disadvantage of using 'nowrap' is that you
can't see the whole sentence you are working on.  When 'wrap' is on, words are
broken halfway, which makes them hard to read.
   A good solution for editing this kind of paragraph is setting the
'linebreak' option.  Vim then breaks lines at an appropriate place when
displaying the line.  The text in the file remains unchanged.
   Without 'linebreak' text might look like this:

	+---------------------------------+
	|letter generation program for a b|
	|ank.  They wanted to send out a s|
	|pecial, personalized letter to th|
	|eir richest 1000 customers.  Unfo|
	|rtunately for the programmer, he |
	+---------------------------------+
After: >

	:set linebreak

it looks like this:

	+---------------------------------+
	|letter generation program for a  |
	|bank.  They wanted to send out a |
	|special, personalized letter to  |
	|their richest 1000 customers.    |
	|Unfortunately for the programmer,|
	+---------------------------------+

Related options:
'breakat' specifies the characters where a break can be inserted.
'showbreak' specifies a string to show at the start of broken line.
Set 'textwidth' to zero to avoid a paragraph to be split.


MOVING BY VISIBLE LINES

The "j" and "k" commands move to the next and previous lines.  When used on
a long line, this means moving a lot of screen lines at once.
   To move only one screen line, use the "gj" and "gk" commands.  When a line
doesn't wrap they do the same as "j" and "k".  When the line does wrap, they
move to a character displayed one line below or above.
   You might like to use these mappings, which bind these movement commands to
the cursor keys: >

	:map <Up> gk
	:map <Down> gj


TURNING A PARAGRAPH INTO ONE LINE			*edit-paragraph-join*

If you want to import text into a program like MS-Word, each paragraph should
be a single line.  If your paragraphs are currently separated with empty
lines, this is how you turn each paragraph into a single line: >

	:g/./,/^$/join

That looks complicated.  Let's break it up in pieces:

	:g/./		A ":global" command that finds all lines that contain
			at least one character.
	     ,/^$/	A range, starting from the current line (the non-empty
			line) until an empty line.
		  join	The ":join" command joins the range of lines together
			into one line.

Starting with this text, containing eight lines broken at column 30:

	+----------------------------------+
	|A letter generation program	   |
	|for a bank.  They wanted to	   |
	|send out a special,		   |
	|personalized letter.		   |
	|				   |
	|To their richest 1000		   |
	|customers.  Unfortunately for	   |
	|the programmer,		   |
	+----------------------------------+

You end up with two lines:

	+----------------------------------+
	|A letter generation program for a |
	|bank.	They wanted to send out a s|
	|pecial, personalized letter.	   |
	|To their richest 1000 customers.  |
	|Unfortunately for the programmer, |
	+----------------------------------+

Note that this doesn't work when the separating line is blank but not empty;
when it contains spaces and/or tabs.  This command does work with blank lines:
>
	:g/\S/,/^\s*$/join

This still requires a blank or empty line at the end of the file for the last
paragraph to be joined.

==============================================================================
*25.5*	Editing tables

Suppose you are editing a table with four columns:

	nice table	  test 1	test 2	    test 3 ~
	input A		  0.534 ~
	input B		  0.913 ~

You need to enter numbers in the third column.  You could move to the second
line, use "A", enter a lot of spaces and type the text.
   For this kind of editing there is a special option: >

	set virtualedit=all

Now you can move the cursor to positions where there isn't any text.  This is
called "virtual space".  Editing a table is a lot easier this way.
   Move the cursor by searching for the header of the last column: >

	/test 3

Now press "j" and you are right where you can enter the value for "input A".
Typing "0.693" results in:

	nice table	  test 1     test 2	 test 3 ~
	input A		  0.534			 0.693 ~
	input B		  0.913 ~

Vim has automatically filled the gap in front of the new text for you.  Now,
to enter the next field in this column use "Bj".  "B" moves back to the start
of a white space separated word.  Then "j" moves to the place where the next
field can be entered.

	Note:
	You can move the cursor anywhere in the display, also beyond the end
	of a line.  But Vim will not insert spaces there, until you insert a
	character in that position.


COPYING A COLUMN

You want to add a column, which should be a copy of the third column and
placed before the "test 1" column.  Do this in seven steps:
1.  Move the cursor to the left upper corner of this column, e.g., with
    "/test 3".
2.  Press CTRL-V to start blockwise Visual mode.
3.  Move the cursor down two lines with "2j".  You are now in "virtual space":
    the "input B" line of the "test 3" column.
4.  Move the cursor right, to include the whole column in the selection, plus
    the space that you want between the columns.  "9l" should do it.
5.  Yank the selected rectangle with "y".
6.  Move the cursor to "test 1", where the new column must be placed.
7.  Press "P".

The result should be:

	nice table	  test 3    test 1     test 2	   test 3 ~
	input A		  0.693     0.534		   0.693 ~
	input B			    0.913 ~

Notice that the whole "test 1" column was shifted right, also the line where
the "test 3" column didn't have text.

Go back to non-virtual cursor movements with: >

	:set virtualedit=


VIRTUAL REPLACE MODE

The disadvantage of using 'virtualedit' is that it "feels" different.  You
can't recognize tabs or spaces beyond the end of line when moving the cursor
around.  Another method can be used: Virtual Replace mode.
   Suppose you have a line in a table that contains both tabs and other
characters.  Use "rx" on the first tab:

	inp	0.693   0.534	0.693 ~

	       |
	   rx  |
	       V

	inpx0.693   0.534	0.693 ~

The layout is messed up.  To avoid that, use the "gr" command:

	inp	0.693   0.534	0.693 ~

	       |
	  grx  |
	       V

	inpx	0.693   0.534	0.693 ~

What happens is that the "gr" command makes sure the new character takes the
right amount of screen space.  Extra spaces or tabs are inserted to fill the
gap.  Thus what actually happens is that a tab is replaced by "x" and then
blanks added to make the text after it keep its place.  In this case a
tab is inserted.
   When you need to replace more than one character, you use the "R" command
to go to Replace mode (see |04.9|).  This messes up the layout and replaces
the wrong characters:

	inp	0	0.534	0.693 ~

		|
	 R0.786 |
		V

	inp	0.78634	0.693 ~

The "gR" command uses Virtual Replace mode.  This preserves the layout:

	inp	0	0.534	0.693 ~

		|
	gR0.786 |
		V

	inp	0.786	0.534	0.693 ~

==============================================================================

Next chapter: |usr_26.txt|  Repeating

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Zse�vim80/doc/russian.txtnu�[���*russian.txt*   For Vim version 8.0.  Last change: 2006 Apr 24


		  VIM REFERENCE MANUAL    by Vassily Ragosin


Russian language localization and support in Vim	   *russian* *Russian*

1. Introduction				  |russian-intro|
2. Russian keymaps			  |russian-keymap|
3. Localization				  |russian-l18n|
4. Known issues				  |russian-issues|

===============================================================================
1. Introduction							*russian-intro*

Russian language is supported perfectly well in Vim.  You can type and view
Russian text just as any other, without the need to tweak the settings.

===============================================================================
2. Russian keymaps					       *russian-keymap*

To switch between languages you can use your system native keyboard switcher,
or use one of the Russian keymaps, included in the Vim distribution.  For
example,
>
    :set keymap=russian-jcukenwin
<
In the latter case, you can switch between languages even if you do not have
system Russian keyboard or independently from a system-wide keyboard settings.
See 'keymap'.  You can also map a key to switch between keyboards, if you
choose the latter option.  See |:map|.

For your convenience, to avoid switching between keyboards, when you need to
enter Normal mode command, you can also set 'langmap' option:
>
    :set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,
    фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz

This is in utf-8, you cannot read this if your 'encoding' is not utf-8.
You have to type this command in one line, it is wrapped for the sake of
readability.

===============================================================================
3. Localization							 *russian-l18n*

If you wish to use messages, help files, menus and other items translated to
Russian, you will need to install the RuVim Language Pack, available in
different codepages from

    http://www.sourceforge.net/projects/ruvim/

Make sure that your Vim is at least 6.2.506 and use ruvim 0.5 or later for
automatic installs.  Vim also needs to be compiled with |+gettext| feature for
user interface items translations to work.

After downloading an archive from RuVim project, unpack it into your
$VIMRUNTIME directory.  We recommend using UTF-8 archive, if your version of
Vim is compiled with |+multi_byte| feature enabled.

In order to use the Russian documentation, make sure you have set the
'helplang' option to "ru".

===============================================================================
4. Known issues						       *russian-issues*

-- If you are using Russian message translations in Win32 console, then
   you may see the output produced by "vim --help", "vim --version" commands
   and Win32 console window title appearing in a wrong codepage.  This problem
   is related to a bug in GNU gettext library and may be fixed in the future
   releases of gettext.

===============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z����y�yvim80/doc/print.txtnu�[���*print.txt*     For Vim version 8.0.  Last change: 2010 Jul 20


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Printing						*printing*

1. Introduction				|print-intro|
2. Print options			|print-options|
3. PostScript Printing			|postscript-printing|
4. PostScript Printing Encoding		|postscript-print-encoding|
5. PostScript CJK Printing		|postscript-cjk-printing|
6. PostScript Printing Troubleshooting	|postscript-print-trouble|
7. PostScript Utilities			|postscript-print-util|
8. Formfeed Characters			|printing-formfeed|

{Vi has None of this}
{only available when compiled with the |+printer| feature}

==============================================================================
1. Introduction						*print-intro*

On MS-Windows Vim can print your text on any installed printer.  On other
systems a PostScript file is produced.  This can be directly sent to a
PostScript printer.  For other printers a program like ghostscript needs to be
used.

Note: If you have problems printing with |:hardcopy|, an alternative is to use
|:TOhtml| and print the resulting html file from a browser.

					*:ha* *:hardcopy* *E237* *E238* *E324*
:[range]ha[rdcopy][!] [arguments]
			Send [range] lines (default whole file) to the
			printer.

			On MS-Windows a dialog is displayed to allow selection
			of printer, paper size etc.  To skip the dialog, use
			the [!].  In this case the printer defined by
			'printdevice' is used, or, if 'printdevice' is empty,
			the system default printer.

			For systems other than MS-Windows, PostScript is
			written in a temp file and 'printexpr' is used to
			actually print it.  Then [arguments] can be used by
			'printexpr' through |v:cmdarg|.  Otherwise [arguments]
			is ignored.  'printoptions' can be used to specify
			paper size, duplex, etc.

:[range]ha[rdcopy][!] >{filename}
			As above, but write the resulting PostScript in file
			{filename}.
			Things like "%" are expanded |cmdline-special|
			Careful: An existing file is silently overwritten.
			{only available when compiled with the |+postscript|
			feature}
			On MS-Windows use the "print to file" feature of the
			printer driver.

Progress is displayed during printing as a page number and a percentage.  To
abort printing use the interrupt key (CTRL-C or, on MS-systems, CTRL-Break).

Printer output is controlled by the 'printfont' and 'printoptions' options.
'printheader' specifies the format of a page header.

The printed file is always limited to the selected margins, irrespective of
the current window's 'wrap' or 'linebreak' settings.  The "wrap" item in
'printoptions' can be used to switch wrapping off.
The current highlighting colors are used in the printout, with the following
considerations:
1) The normal background is always rendered as white (i.e. blank paper).
2) White text or the default foreground is rendered as black, so that it shows
   up!
3) If 'background' is "dark", then the colours are darkened to compensate for
   the fact that otherwise they would be too bright to show up clearly on
   white paper.

==============================================================================
2. Print options					*print-options*

Here are the details for the options that change the way printing is done.
For generic info about setting options see |options.txt|.

							*pdev-option*
'printdevice' 'pdev'	string	(default empty)
			global
This defines the name of the printer to be used when the |:hardcopy| command
is issued with a bang (!) to skip the printer selection dialog.  On Win32, it
should be the printer name exactly as it appears in the standard printer
dialog.
If the option is empty, then vim will use the system default printer for
":hardcopy!"

							*penc-option* *E620*
'printencoding' 'penc'	String	(default empty, except for:
					Windows, OS/2: cp1252,
					Macintosh: mac-roman,
					VMS: dec-mcs,
					HPUX: hp-roman8,
					EBCDIC: ebcdic-uk)
			global
Sets the character encoding used when printing.  This option tells Vim which
print character encoding file from the "print" directory in 'runtimepath' to
use.

This option will accept any value from |encoding-names|.  Any recognized names
are converted to Vim standard names - see 'encoding' for more details.  Names
not recognized by Vim will just be converted to lower case and underscores
replaced with '-' signs.

If 'printencoding' is empty or Vim cannot find the file then it will use
'encoding' (if Vim is compiled with |+multi_byte| and it is set an 8-bit
encoding) to find the print character encoding file.  If Vim is unable to find
a character encoding file then it will use the "latin1" print character
encoding file.

When 'encoding' is set to a multi-byte encoding, Vim will try to convert
characters to the printing encoding for printing (if 'printencoding' is empty
then the conversion will be to latin1).  Conversion to a printing encoding
other than latin1 will require Vim to be compiled with the |+iconv| feature.
If no conversion is possible then printing will fail.  Any characters that
cannot be converted will be replaced with upside down question marks.

Four print character encoding files are provided to support default Mac, VMS,
HPUX, and EBCDIC character encodings and are used by default on these
platforms.  Code page 1252 print character encoding is used by default on
Windows and OS/2 platforms.

							*pexpr-option*
'printexpr' 'pexpr'	String	(default: see below)
			global
Expression that is evaluated to print the PostScript produced with
|:hardcopy|.
The file name to be printed is in |v:fname_in|.
The arguments to the ":hardcopy" command are in |v:cmdarg|.
The expression must take care of deleting the file after printing it.
When there is an error, the expression must return a non-zero number.
If there is no error, return zero or an empty string.
The default for non MS-Windows or VMS systems is to simply use "lpr" to print
the file: >

    system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice)
	. ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error

On MS-Dos, MS-Windows and OS/2 machines the default is to copy the file to the
currently specified printdevice: >

    system('copy' . ' ' . v:fname_in . (&printdevice == ''
		? ' LPT1:' : (' \"' . &printdevice . '\"')))
		. delete(v:fname_in)

On VMS machines the default is to send the file to either the default or
currently specified printdevice: >

    system('print' . (&printdevice == '' ? '' : ' /queue=' .
		&printdevice) . ' ' . v:fname_in) . delete(v:fname_in)

If you change this option, using a function is an easy way to avoid having to
escape all the spaces.  Example: >

	:set printexpr=PrintFile(v:fname_in)
	:function PrintFile(fname)
	:  call system("ghostview " . a:fname)
	:  call delete(a:fname)
	:  return v:shell_error
	:endfunc

Be aware that some print programs return control before they have read the
file.  If you delete the file too soon it will not be printed.  These programs
usually offer an option to have them remove the file when printing is done.
							*E365*
If evaluating the expression fails or it results in a non-zero number, you get
an error message.  In that case Vim will delete the file.  In the default
value for non-MS-Windows a trick is used: Adding "v:shell_error" will result
in a non-zero number when the system() call fails.

This option cannot be set from a |modeline| or in the |sandbox|, for security
reasons.

							*pfn-option* *E613*
'printfont' 'pfn'	string	(default "courier")
			global
This is the name of the font that will be used for the |:hardcopy| command's
output.  It has the same format as the 'guifont' option, except that only one
font may be named, and the special "guifont=*" syntax is not available.

In the Win32 GUI version this specifies a font name with its extra attributes,
as with the 'guifont' option.

For other systems, only ":h11" is recognized, where "11" is the point size of
the font.  When omitted, the point size is 10.

							*pheader-option*
'printheader' 'pheader'  string  (default "%<%f%h%m%=Page %N")
			 global
This defines the format of the header produced in |:hardcopy| output.  The
option is defined in the same way as the 'statusline' option.  If Vim has not
been compiled with the |+statusline| feature, this option has no effect and a
simple default header is used, which shows the page number.  The same simple
header is used when this option is empty.

							*pmbcs-option*
'printmbcharset' 'pmbcs'  string (default "")
			  global
Sets the CJK character set to be used when generating CJK output from
|:hardcopy|.  The following predefined values are currently recognised by Vim:

		Value		Description ~
  Chinese	GB_2312-80
  (Simplified)	GBT_12345-90
		MAC		Apple Mac Simplified Chinese
		GBT-90_MAC	GB/T 12345-90 Apple Mac Simplified
				  Chinese
		GBK		GBK (GB 13000.1-93)
		ISO10646	ISO 10646-1:1993

  Chinese	CNS_1993	CNS 11643-1993, Planes 1 & 2
  (Traditional)	BIG5
		ETEN		Big5 with ETen extensions
		ISO10646	ISO 10646-1:1993

  Japanese	JIS_C_1978
		JIS_X_1983
		JIS_X_1990
		MSWINDOWS	Win3.1/95J (JIS X 1997 + NEC +
				  IBM extensions)
		KANJITALK6	Apple Mac KanjiTalk V6.x
		KANJITALK7	Apple Mac KanjiTalk V7.x

  Korean	KS_X_1992
		MAC		Apple Macintosh Korean
		MSWINDOWS	KS X 1992 with MS extensions
		ISO10646	ISO 10646-1:1993

Only certain combinations of the above values and 'printencoding' are
possible.  The following tables show the valid combinations:

				euc-cn	 gbk	ucs-2	utf-8 ~
  Chinese	GB_2312-80	   x
  (Simplified)	GBT_12345-90	   x
		MAC		   x
		GBT-90_MAC	   x
		GBK			   x
		ISO10646			  x	  x

				euc-tw	 big5	ucs-2	utf-8 ~
  Chinese	CNS_1993	   x
  (Traditional)	BIG5			   x
		ETEN			   x
		ISO10646			  x	  x

				euc-jp	 sjis	ucs-2	utf-8 ~
  Japanese	JIS_C_1978	   x	   x
		JIS_X_1983	   x	   x
		JIS_X_1990	   x		  x	  x
		MSWINDOWS	   x
		KANJITALK6	   x
		KANJITALK7	   x

				euc-kr	 cp949	ucs-2	utf-8 ~
  Korean	KS_X_1992	   x
		MAC		   x
		MSWINDOWS		   x
		ISO10646			  x	  x

To set up the correct encoding and character set for printing some
Japanese text you would do the following; >
	:set printencoding=euc-jp
	:set printmbcharset=JIS_X_1983

If 'printmbcharset' is not one of the above values then it is assumed to
specify a custom multi-byte character set and no check will be made that it is
compatible with the value for 'printencoding'.  Vim will look for a file
defining the character set in the "print" directory in 'runtimepath'.

							*pmbfn-option*
'printmbfont' 'pmbfn'	string (default "")
			global
This is a comma-separated list of fields for font names to be used when
generating CJK output from |:hardcopy|.  Each font name has to be preceded
with a letter indicating the style the font is to be used for as follows:

  r:{font-name}		font to use for normal characters
  b:{font-name}		font to use for bold characters
  i:{font-name}		font to use for italic characters
  o:{font-name}		font to use for bold-italic characters

A field with the r: prefix must be specified when doing CJK printing.  The
other fontname specifiers are optional.  If a specifier is missing then
another font will be used as follows:

  if b: is missing, then use r:
  if i: is missing, then use r:
  if o: is missing, then use b:

Some CJK fonts do not contain characters for codes in the ASCII code range.
Also, some characters in the CJK ASCII code ranges differ in a few code points
from traditional ASCII characters.  There are two additional fields to control
printing of characters in the ASCII code range.

  c:yes			Use Courier font for characters in the ASCII
  c:no (default)	code range.

  a:yes			Use ASCII character set for codes in the ASCII
  a:no (default)	code range.

The following is an example of specifying two multi-byte fonts, one for normal
and italic printing and one for bold and bold-italic printing, and using
Courier to print codes in the ASCII code range but using the national
character set: >
	:set printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,c:yes
<
							*popt-option*
'printoptions' 'popt'	string (default "")
			global
This is a comma-separated list of items that control the format of the output
of |:hardcopy|:

  left:{spec}		left margin (default: 10pc)
  right:{spec}		right margin (default: 5pc)
  top:{spec}		top margin (default: 5pc)
  bottom:{spec}		bottom margin (default: 5pc)
			{spec} is a number followed by "in" for inches, "pt"
			for points (1 point is 1/72 of an inch), "mm" for
			millimeters or "pc" for a percentage of the media
			size.
			Weird example:
			    left:2in,top:30pt,right:16mm,bottom:3pc
			If the unit is not recognized there is no error and
			the default value is used.

  header:{nr}		Number of lines to reserve for the header.
			Only the first line is actually filled, thus when {nr}
			is 2 there is one empty line.  The header is formatted
			according to 'printheader'.
  header:0		Do not print a header.
  header:2  (default)	Use two lines for the header

  syntax:n		Do not use syntax highlighting.  This is faster and
			thus useful when printing large files.
  syntax:y		Do syntax highlighting.
  syntax:a  (default)	Use syntax highlighting if the printer appears to be
			able to print color or grey.

  number:y		Include line numbers in the printed output.
  number:n  (default)	No line numbers.

  wrap:y    (default)	Wrap long lines.
  wrap:n		Truncate long lines.

  duplex:off		Print on one side.
  duplex:long (default)	Print on both sides (when possible), bind on long
			side.
  duplex:short		Print on both sides (when possible), bind on short
			side.

  collate:y  (default)	Collating: 1 2 3, 1 2 3, 1 2 3
  collate:n		No collating: 1 1 1, 2 2 2, 3 3 3

  jobsplit:n (default)	Do all copies in one print job
  jobsplit:y		Do each copy as a separate print job.  Useful when
			doing N-up postprocessing.

  portrait:y (default)	Orientation is portrait.
  portrait:n		Orientation is landscape.
						*a4* *letter*
  paper:A4   (default)	Paper size: A4
  paper:{name}		Paper size from this table:
			{name}	    size in cm	     size in inch ~
			10x14	    25.4  x 35.57    10    x 14
			A3	    29.7  x 42	     11.69 x 16.54
			A4	    21	  x 29.7      8.27 x 11.69
			A5	    14.8  x 21	      5.83 x  8.27
			B4	    25	  x 35.3     10.12 x 14.33
			B5	    17.6  x 25	      7.17 x 10.12
			executive   18.42 x 26.67     7.25 x 10.5
			folio	    21	  x 33	      8.27 x 13
			ledger	    43.13 x 27.96    17    x 11
			legal	    21.59 x 35.57     8.5  x 14
			letter	    21.59 x 27.96     8.5  x 11
			quarto	    21.59 x 27.5      8.5  x 10.83
			statement   13.97 x 21.59     5.5  x  8.5
			tabloid     27.96 x 43.13    11    x 17

  formfeed:n (default)	Treat form feed characters (0x0c) as a normal print
			character.
  formfeed:y		When a form feed character is encountered, continue
			printing of the current line at the beginning of the
			first line on a new page.

The item indicated with (default) is used when the item is not present.  The
values are not always used, especially when using a dialog to select the
printer and options.
Example: >
	:set printoptions=paper:letter,duplex:off

==============================================================================
3. PostScript Printing					*postscript-printing*
						*E455* *E456* *E457* *E624*
Provided you have enough disk space there should be no problems generating a
PostScript file.  You need to have the runtime files correctly installed (if
you can find the help files, they probably are).

There are currently a number of limitations with PostScript printing:

- 'printfont' - The font name is ignored (the Courier family is always used -
  it should be available on all PostScript printers) but the font size is
  used.

- 'printoptions' - The duplex setting is used when generating PostScript
  output, but it is up to the printer to take notice of the setting.  If the
  printer does not support duplex printing then it should be silently ignored.
  Some printers, however, don't print at all.

- 8-bit support - While a number of 8-bit print character encodings are
  supported it is possible that some characters will not print.  Whether a
  character will print depends on the font in the printer knowing the
  character.  Missing characters will be replaced with an upside down question
  mark, or a space if that character is also not known by the font.  It may be
  possible to get all the characters in an encoding to print by installing a
  new version of the Courier font family.

- Multi-byte support - Currently Vim will try to convert multi-byte characters
  to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
  empty).  Any characters that are not successfully converted are shown as
  unknown characters.  Printing will fail if Vim cannot convert the multi-byte
  to the 8-bit encoding.

==============================================================================
4. Custom 8-bit Print Character Encodings	*postscript-print-encoding*
								*E618* *E619*
To use your own print character encoding when printing 8-bit character data
you need to define your own PostScript font encoding vector.  Details on how
to define a font encoding vector is beyond the scope of this help file, but
you can find details in the PostScript Language Reference Manual, 3rd Edition,
published by Addison-Wesley and available in PDF form at
http://www.adobe.com/.  The following describes what you need to do for Vim to
locate and use your print character encoding.

i.   Decide on a unique name for your encoding vector, one that does not clash
     with any of the recognized or standard encoding names that Vim uses (see
     |encoding-names| for a list), and that no one else is likely to use.
ii.  Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
     'runtimepath' and rename it with your unique name.
iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
     with your unique name (don't forget the line starting %%Title:), and
     modify the array of glyph names to define your new encoding vector.  The
     array must have exactly 256 entries or you will not be able to print!
iv.  Within Vim, set 'printencoding' to your unique encoding name and then
     print your file.  Vim will now use your custom print character encoding.

Vim will report an error with the resource file if you change the order or
content of the first 3 lines, other than the name of the encoding on the line
starting %%Title: or the version number on the line starting %%Version:.

[Technical explanation for those that know PostScript - Vim looks for a file
with the same name as the encoding it will use when printing.  The file
defines a new PostScript Encoding resource called /VIM-name, where name is the
print character encoding Vim will use.]

==============================================================================
5. PostScript CJK Printing			*postscript-cjk-printing*
							*E673* *E674* *E675*

Vim supports printing of Chinese, Japanese, and Korean files.  Setting up Vim
to correctly print CJK files requires setting up a few more options.

Each of these countries has many standard character sets and encodings which
require that both be specified when printing.  In addition, CJK fonts normally
do not have the concept of italic glyphs and use different weight or stroke
style to achieve emphasis when printing.  This in turn requires a different
approach to specifying fonts to use when printing.

The encoding and character set are specified with the 'printencoding' and
'printmbcharset' options.  If 'printencoding' is not specified then 'encoding'
is used as normal.  If 'printencoding' is specified then characters will be
translated to this encoding for printing.  You should ensure that the encoding
is compatible with the character set needed for the file contents or some
characters may not appear when printed.

The fonts to use for CJK printing are specified with 'printmbfont'.  This
option allows you to specify different fonts to use when printing characters
which are syntax highlighted with the font styles normal, italic, bold and
bold-italic.

No CJK fonts are supplied with Vim.  There are some free Korean, Japanese, and
Traditional Chinese fonts available at:

  http://examples.oreilly.com/cjkvinfo/adobe/samples/

You can find descriptions of the various fonts in the read me file at

  http://examples.oreilly.de/english_examples/cjkvinfo/adobe/00README

Please read your printer documentation on how to install new fonts.

CJK fonts can be large containing several thousand glyphs, and it is not
uncommon to find that they only contain a subset of a national standard.  It
is not unusual to find the fonts to not include characters for codes in the
ASCII code range.  If you find half-width Roman characters are not appearing
in your printout then you should configure Vim to use the Courier font the
half-width ASCII characters with 'printmbfont'.  If your font does not include
other characters then you will need to find another font that does.

Another issue with ASCII characters, is that the various national character
sets specify a couple of different glyphs in the ASCII code range.  If you
print ASCII text using the national character set you may see some unexpected
characters.  If you want true ASCII code printing then you need to configure
Vim to output ASCII characters for the ASCII code range with 'printmbfont'.

It is possible to define your own multi-byte character set although this
should not be attempted lightly.  A discussion on the process if beyond the
scope of these help files.  You can find details on CMap (character map) files
in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
available from http://www.adobe.com as a PDF file.

==============================================================================
6. PostScript Printing Troubleshooting		*postscript-print-trouble*
									*E621*
Usually the only sign of a problem when printing with PostScript is that your
printout does not appear.  If you are lucky you may get a printed page that
tells you the PostScript operator that generated the error that prevented the
print job completing.

There are a number of possible causes as to why the printing may have failed:

- Wrong version of the prolog resource file.  The prolog resource file
  contains some PostScript that Vim needs to be able to print.  Each version
  of Vim needs one particular version.  Make sure you have correctly installed
  the runtime files, and don't have any old versions of a file called prolog
  in the print directory in your 'runtimepath' directory.

- Paper size.  Some PostScript printers will abort printing a file if they do
  not support the requested paper size.  By default Vim uses A4 paper.  Find
  out what size paper your printer normally uses and set the appropriate paper
  size with 'printoptions'.  If you cannot find the name of the paper used,
  measure a sheet and compare it with the table of supported paper sizes listed
  for 'printoptions', using the paper that is closest in both width AND height.
  Note: The dimensions of actual paper may vary slightly from the ones listed.
  If there is no paper listed close enough, then you may want to try psresize
  from PSUtils, discussed below.

- Two-sided printing (duplex).  Normally a PostScript printer that does not
  support two-sided printing will ignore any request to do it.  However, some
  printers may abort the job altogether.  Try printing with duplex turned off.
  Note: Duplex prints can be achieved manually using PS utils - see below.

- Collated printing.  As with Duplex printing, most PostScript printers that
  do not support collating printouts will ignore a request to do so.  Some may
  not.  Try printing with collation turned off.

- Syntax highlighting.  Some print management code may prevent the generated
  PostScript file from being printed on a black and white printer when syntax
  highlighting is turned on, even if solid black is the only color used.  Try
  printing with syntax highlighting turned off.

A safe printoptions setting to try is: >

	:set printoptions=paper:A4,duplex:off,collate:n,syntax:n

Replace "A4" with the paper size that best matches your printer paper.

==============================================================================
7. PostScript Utilities				*postscript-print-util*

7.1 Ghostscript

Ghostscript is a PostScript and PDF interpreter that can be used to display
and print on non-PostScript printers PostScript and PDF files.  It can also
generate PDF files from PostScript.

Ghostscript will run on a wide variety of platforms.

There are three available versions:

- AFPL Ghostscript (formerly Aladdin Ghostscript) which is free for
  non-commercial use.  It can be obtained from:

    http://www.cs.wisc.edu/~ghost/

- GNU Ghostscript which is available under the GNU General Public License.  It
  can be obtained from:

    ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/

- A commercial version for inclusion in commercial products.

Additional information on Ghostscript can also be found at:

  http://www.ghostscript.com/

Support for a number of non PostScript printers is provided in the
distribution as standard, but if you cannot find support for your printer
check the Ghostscript site for other printers not included by default.


7.2 Ghostscript Previewers.

The interface to Ghostscript is very primitive so a number of graphical front
ends have been created.  These allow easier PostScript file selection,
previewing at different zoom levels, and printing.  Check supplied
documentation for full details.

X11

- Ghostview.  Obtainable from:

    http://www.cs.wisc.edu/~ghost/gv/

- gv.  Derived from Ghostview.  Obtainable from:

    http://wwwthep.physik.uni-mainz.de/~plass/gv/

  Copies (possibly not the most recent) can be found at:

    http://www.cs.wisc.edu/~ghost/gv/

OpenVMS

- Is apparently supported in the main code now (untested).  See:

    http://wwwthep.physik.uni-mainz.de/~plass/gv/

Windows and OS/2

- GSview.  Obtainable from:

    http://www.cs.wisc.edu/~ghost/gsview/

DOS

- ps_view.  Obtainable from:

    ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/
    ftp://ftp.dante.de/tex-archive/support/ps_view/

Linux

- GSview.  Linux version of the popular Windows and OS/2 previewer.
  Obtainable from:

    http://www.cs.wisc.edu/~ghost/gsview/

- BMV.  Different from Ghostview and gv in that it doesn't use X but svgalib.
  Obtainable from:

    ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz


7.3 PSUtils

PSUtils is a collection of utility programs for manipulating PostScript
documents.  Binary distributions are available for many platforms, as well as
the full source.  PSUtils can be found at:

  http://knackered.org/angus/psutils

The utilities of interest include:

- psnup.     Convert PS files for N-up printing.
- psselect.  Select page range and order of printing.
- psresize.  Change the page size.
- psbook.    Reorder and lay out pages ready for making a book.

The output of one program can be used as the input to the next, allowing for
complex print document creation.


N-UP PRINTING

The psnup utility takes an existing PostScript file generated from Vim and
convert it to an n-up version.  The simplest way to create a 2-up printout is
to first create a PostScript file with: >

	:hardcopy > test.ps

Then on your command line execute: >

	psnup -n 2 test.ps final.ps

Note: You may get warnings from some Ghostscript previewers for files produced
by psnup - these may safely be ignored.

Finally print the file final.ps to your PostScript printer with your
platform's print command.  (You will need to delete the two PostScript files
afterwards yourself.)  'printexpr' could be modified to perform this extra
step before printing.


ALTERNATE DUPLEX PRINTING

It is possible to achieve a poor man's version of duplex printing using the PS
utility psselect.  This utility has options -e and -o for printing just the
even or odd pages of a PS file respectively.

First generate a PS file with the 'hardcopy' command, then generate new
files with all the odd and even numbered pages with: >

	psselect -o test.ps odd.ps
	psselect -e test.ps even.ps

Next print odd.ps with your platform's normal print command.  Then take the
print output, turn it over and place it back in the paper feeder.  Now print
even.ps with your platform's print command.  All the even pages should now
appear on the back of the odd pages.

There are a couple of points to bear in mind:

1. Position of the first page.  If the first page is on top of the printout
   when printing the odd pages then you need to reverse the order that the odd
   pages are printed.  This can be done with the -r option to psselect.  This
   will ensure page 2 is printed on the back of page 1.
   Note: it is better to reverse the odd numbered pages rather than the even
   numbered in case there are an odd number of pages in the original PS file.

2. Paper flipping.  When turning over the paper with the odd pages printed on
   them you may have to either flip them horizontally (along the long edge) or
   vertically (along the short edge), as well as possibly rotating them 180
   degrees.  All this depends on the printer - it will be more obvious for
   desktop ink jets than for small office laser printers where the paper path
   is hidden from view.


==============================================================================
8. Formfeed Characters					*printing-formfeed*

By default Vim does not do any special processing of |formfeed| control
characters.  Setting the 'printoptions' formfeed item will make Vim recognize
formfeed characters and continue printing the current line at the beginning
of the first line on a new page.  The use of formfeed characters provides
rudimentary print control but there are certain things to be aware of.

Vim will always start printing a line (including a line number if enabled)
containing a formfeed character, even if it is the first character on the
line.  This means if a line starting with a formfeed character is the first
line of a page then Vim will print a blank page.

Since the line number is printed at the start of printing the line containing
the formfeed character, the remainder of the line printed on the new page
will not have a line number printed for it (in the same way as the wrapped
lines of a long line when wrap in 'printoptions' is enabled).

If the formfeed character is the last character on a line, then printing will
continue on the second line of the new page, not the first.  This is due to
Vim processing the end of the line after the formfeed character and moving
down a line to continue printing.

Due to the points made above it is recommended that when formfeed character
processing is enabled, printing of line numbers is disabled, and that form
feed characters are not the last character on a line.  Even then you may need
to adjust the number of lines before a formfeed character to prevent
accidental blank pages.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�x��w�wvim80/doc/ft_sql.txtnu�[���*ft_sql.txt*	For Vim version 8.0.  Last change: 2013 May 15

by David Fishburn

This is a filetype plugin to work with SQL files.

The Structured Query Language (SQL) is a standard which specifies statements
that allow a user to interact with a relational database.  Vim includes
features for navigation, indentation and syntax highlighting.

1. Navigation					|sql-navigation|
    1.1 Matchit					|sql-matchit|
    1.2 Text Object Motions			|sql-object-motions|
    1.3 Predefined Object Motions		|sql-predefined-objects|
    1.4 Macros					|sql-macros|
2. SQL Dialects					|sql-dialects|
    2.1 SQLSetType				|SQLSetType|
    2.2 SQLGetType				|SQLGetType|
    2.3 SQL Dialect Default			|sql-type-default|
3. Adding new SQL Dialects			|sql-adding-dialects|
4. OMNI SQL Completion				|sql-completion|
    4.1 Static mode				|sql-completion-static|
    4.2 Dynamic mode				|sql-completion-dynamic|
    4.3 Tutorial				|sql-completion-tutorial|
	4.3.1 Complete Tables			|sql-completion-tables|
	4.3.2 Complete Columns			|sql-completion-columns|
	4.3.3 Complete Procedures		|sql-completion-procedures|
	4.3.4 Complete Views			|sql-completion-views|
    4.4 Completion Customization		|sql-completion-customization|
    4.5 SQL Maps				|sql-completion-maps|
    4.6 Using with other filetypes		|sql-completion-filetypes|

==============================================================================
1. Navigation					*sql-navigation*

The SQL ftplugin provides a number of options to assist with file
navigation.


1.1 Matchit					*sql-matchit*
-----------
The matchit plugin (http://www.vim.org/scripts/script.php?script_id=39)
provides many additional features and can be customized for different
languages.  The matchit plugin is configured by defining a local
buffer variable, b:match_words.  Pressing the % key while on various
keywords will move the cursor to its match.  For example, if the cursor
is on an "if", pressing % will cycle between the "else", "elseif" and
"end if" keywords.

The following keywords are supported: >
    if
    elseif | elsif
    else [if]
    end if

    [while condition] loop
	leave
	break
	continue
	exit
    end loop

    for
	leave
	break
	continue
	exit
    end loop

    do
	statements
    doend

    case
    when
    when
    default
    end case

    merge
    when not matched
    when matched

    create[ or replace] procedure|function|event
    returns


1.2 Text Object Motions				*sql-object-motions*
-----------------------
Vim has a number of predefined keys for working with text |object-motions|.
This filetype plugin attempts to translate these keys to maps which make sense
for the SQL language.

The following |Normal| mode and |Visual| mode maps exist (when you edit a SQL
file): >
    ]]		    move forward to the next 'begin'
    [[		    move backwards to the previous 'begin'
    ][		    move forward to the next 'end'
    []		    move backwards to the previous 'end'


1.3 Predefined Object Motions			*sql-predefined-objects*
-----------------------------
Most relational databases support various standard features, tables, indices,
triggers and stored procedures.  Each vendor also has a variety of proprietary
objects.  The next set of maps have been created to help move between these
objects.  Depends on which database vendor you are using, the list of objects
must be configurable.  The filetype plugin attempts to define many of the
standard objects, plus many additional ones.  In order to make this as
flexible as possible, you can override the list of objects from within your
|vimrc| with the following: >
    let g:ftplugin_sql_objects = 'function,procedure,event,table,trigger' .
		\ ',schema,service,publication,database,datatype,domain' .
		\ ',index,subscription,synchronization,view,variable'

The following |Normal| mode and |Visual| mode maps have been created which use
the above list: >
    ]}		    move forward to the next 'create <object name>'
    [{		    move backward to the previous 'create <object name>'

Repeatedly pressing ]} will cycle through each of these create statements: >
    create table t1 (
	...
    );

    create procedure p1
    begin
	...
    end;

    create index i1 on t1 (c1);

The default setting for g:ftplugin_sql_objects is: >
    let g:ftplugin_sql_objects = 'function,procedure,event,' .
		\ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' .
		\ 'table,trigger' .
		\ ',schema,service,publication,database,datatype,domain' .
		\ ',index,subscription,synchronization,view,variable'

The above will also handle these cases: >
    create table t1 (
	...
    );
    create existing table t2 (
	...
    );
    create global temporary table t3 (
	...
    );

By default, the ftplugin only searches for CREATE statements.  You can also
override this via your |vimrc| with the following: >
    let g:ftplugin_sql_statements = 'create,alter'

The filetype plugin defines three types of comments: >
    1.  --
    2.  //
    3.  /*
	 *
	 */

The following |Normal| mode and |Visual| mode maps have been created to work
with comments: >
    ]"		    move forward to the beginning of a comment
    ["		    move forward to the end of a comment



1.4 Macros					   *sql-macros*
----------
Vim's feature to find macro definitions, |'define'|, is supported using this
regular expression: >
    \c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>

This addresses the following code: >
    CREATE VARIABLE myVar1 INTEGER;

    CREATE PROCEDURE sp_test(
	IN myVar2 INTEGER,
	OUT myVar3 CHAR(30),
	INOUT myVar4 NUMERIC(20,0)
    )
    BEGIN
	DECLARE myVar5 INTEGER;

	SELECT c1, c2, c3
	  INTO myVar2, myVar3, myVar4
	  FROM T1
	 WHERE c4 = myVar1;
    END;

Place your cursor on "myVar1" on this line: >
	 WHERE c4 = myVar1;
		     ^

Press any of the following keys: >
    [d
    [D
    [CTRL-D


==============================================================================
2. SQL Dialects					*sql-dialects* *sql-types*
						*sybase* *TSQL* *Transact-SQL*
						*sqlanywhere*
						*oracle* *plsql* *sqlj*
						*sqlserver*
						*mysql* *postgresql* *psql*
						*informix*

All relational databases support SQL.  There is a portion of SQL that is
portable across vendors (ex. CREATE TABLE, CREATE INDEX), but there is a
great deal of vendor specific extensions to SQL.  Oracle supports the
"CREATE OR REPLACE" syntax, column defaults specified in the CREATE TABLE
statement and the procedural language (for stored procedures and triggers).

The default Vim distribution ships with syntax highlighting based on Oracle's
PL/SQL.  The default SQL indent script works for Oracle and SQL Anywhere.
The default filetype plugin works for all vendors and should remain vendor
neutral, but extendable.

Vim currently has support for a variety of different vendors, currently this
is via syntax scripts. Unfortunately, to flip between different syntax rules
you must either create:
    1.  New filetypes
    2.  Custom autocmds
    3.  Manual steps / commands

The majority of people work with only one vendor's database product, it would
be nice to specify a default in your |vimrc|.


2.1 SQLSetType					*sqlsettype* *SQLSetType*
--------------
For the people that work with many different databases, it is nice to be
able to flip between the various vendors rules (indent, syntax) on a per
buffer basis, at any time.  The ftplugin/sql.vim file defines this function: >
    SQLSetType

Executing this function without any parameters will set the indent and syntax
scripts back to their defaults, see |sql-type-default|.  If you have turned
off Vi's compatibility mode, |'compatible'|, you can use the <Tab> key to
complete the optional parameter.

After typing the function name and a space, you can use the completion to
supply a parameter.  The function takes the name of the Vim script you want to
source.  Using the |cmdline-completion| feature, the SQLSetType function will
search the |'runtimepath'| for all Vim scripts with a name containing 'sql'.
This takes the guess work out of the spelling of the names.  The following are
examples: >
    :SQLSetType
    :SQLSetType sqloracle
    :SQLSetType sqlanywhere
    :SQLSetType sqlinformix
    :SQLSetType mysql

The easiest approach is to the use <Tab> character which will first complete
the command name (SQLSetType), after a space and another <Tab>, display a list
of available Vim script names: >
    :SQL<Tab><space><Tab>


2.2 SQLGetType					*sqlgettype* *SQLGetType*
--------------
At anytime you can determine which SQL dialect you are using by calling the
SQLGetType command.  The ftplugin/sql.vim file defines this function: >
    SQLGetType

This will echo: >
    Current SQL dialect in use:sqlanywhere


2.3 SQL Dialect Default				*sql-type-default*
-----------------------
As mentioned earlier, the default syntax rules for Vim is based on Oracle
(PL/SQL).  You can override this default by placing one of the following in
your |vimrc|: >
    let g:sql_type_default = 'sqlanywhere'
    let g:sql_type_default = 'sqlinformix'
    let g:sql_type_default = 'mysql'

If you added the following to your |vimrc|: >
    let g:sql_type_default = 'sqlinformix'

The next time edit a SQL file the following scripts will be automatically
loaded by Vim: >
    ftplugin/sql.vim
    syntax/sqlinformix.vim
    indent/sql.vim
>
Notice indent/sqlinformix.sql was not loaded.  There is no indent file
for Informix, Vim loads the default files if the specified files does not
exist.


==============================================================================
3. Adding new SQL Dialects			*sql-adding-dialects*

If you begin working with a SQL dialect which does not have any customizations
available with the default Vim distribution you can check http://www.vim.org
to see if any customization currently exist.  If not, you can begin by cloning
an existing script.  Read |filetype-plugins| for more details.

To help identify these scripts, try to create the files with a "sql" prefix.
If you decide you wish to create customizations for the SQLite database, you
can create any of the following: >
    Unix
	~/.vim/syntax/sqlite.vim
	~/.vim/indent/sqlite.vim
    Windows
	$VIM/vimfiles/syntax/sqlite.vim
	$VIM/vimfiles/indent/sqlite.vim

No changes are necessary to the SQLSetType function.  It will automatically
pickup the new SQL files and load them when you issue the SQLSetType command.


==============================================================================
4. OMNI SQL Completion				*sql-completion*
						*omni-sql-completion*

Vim 7 includes a code completion interface and functions which allows plugin
developers to build in code completion for any language.  Vim 7 includes
code completion for the SQL language.

There are two modes to the SQL completion plugin, static and dynamic.  The
static mode populates the popups with the data generated from current syntax
highlight rules.  The dynamic mode populates the popups with data retrieved
directly from a database.  This includes, table lists, column lists,
procedures names and more.

4.1 Static Mode					*sql-completion-static*
---------------
The static popups created contain items defined by the active syntax rules
while editing a file with a filetype of SQL.  The plugin defines (by default)
various maps to help the user refine the list of items to be displayed.
The defaults static maps are: >
    imap <buffer> <C-C>a <C-\><C-O>:call sqlcomplete#Map('syntax')<CR><C-X><C-O>
    imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
    imap <buffer> <C-C>f <C-\><C-O>:call sqlcomplete#Map('sqlFunction')<CR><C-X><C-O>
    imap <buffer> <C-C>o <C-\><C-O>:call sqlcomplete#Map('sqlOption')<CR><C-X><C-O>
    imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
    imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>

The use of "<C-C>" can be user chosen by using the following in your |.vimrc| as it 
may not work properly on all platforms: >
    let g:ftplugin_sql_omni_key = '<C-C>'
>
The static maps (which are based on the syntax highlight groups) follow this
format: >
    imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
    imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword\w*')<CR><C-X><C-O>

This command breaks down as: >
    imap		   - Create an insert map
    <buffer>		   - Only for this buffer
    <C-C>k		   - Your choice of key map
    <C-\><C-O>		   - Execute one command, return to Insert mode
    :call sqlcomplete#Map( - Allows the SQL completion plugin to perform some
			     housekeeping functions to allow it to be used in
			     conjunction with other completion plugins.
			     Indicate which item you want the SQL completion
			     plugin to complete.
			     In this case we are asking the plugin to display
			     items from the syntax highlight group
			     'sqlKeyword'.
			     You can view a list of highlight group names to
			     choose from by executing the
				 :syntax list
			     command while editing a SQL file.
    'sqlKeyword'	   - Display the items for the sqlKeyword highlight
			     group
    'sqlKeyword\w*'	   - A second option available with Vim 7.4 which
                             uses a regular expression to determine which
			     syntax groups to use
    )<CR>		   - Execute the :let command
    <C-X><C-O>		   - Trigger the standard omni completion key stroke.
			     Passing in 'sqlKeyword' instructs the SQL
			     completion plugin to populate the popup with
			     items from the sqlKeyword highlight group.  The
			     plugin will also cache this result until Vim is
			     restarted.  The syntax list is retrieved using
			     the syntaxcomplete plugin.

Using the 'syntax' keyword is a special case.  This instructs the
syntaxcomplete plugin to retrieve all syntax items.  So this will effectively
work for any of Vim's SQL syntax files.  At the time of writing this includes
10 different syntax files for the different dialects of SQL (see section 3
above, |sql-dialects|).

Here are some examples of the entries which are pulled from the syntax files: >
     All
	 - Contains the contents of all syntax highlight groups
     Statements
	 - Select, Insert, Update, Delete, Create, Alter, ...
     Functions
	 - Min, Max, Trim, Round, Date, ...
     Keywords
	 - Index, Database, Having, Group, With
     Options
	 - Isolation_level, On_error, Qualify_owners, Fire_triggers, ...
     Types
	 - Integer, Char, Varchar, Date, DateTime, Timestamp, ...


4.2 Dynamic Mode				*sql-completion-dynamic*
----------------
Dynamic mode populates the popups with data directly from a database.  In
order for the dynamic feature to be enabled you must have the dbext.vim
plugin installed, (http://vim.sourceforge.net/script.php?script_id=356).

Dynamic mode is used by several features of the SQL completion plugin.
After installing the dbext plugin see the dbext-tutorial for additional
configuration and usage.  The dbext plugin allows the SQL completion plugin
to display a list of tables, procedures, views and columns. >
     Table List
	 - All tables for all schema owners
     Procedure List
	 - All stored procedures for all schema owners
     View List
	 - All stored procedures for all schema owners
     Column List
	 - For the selected table, the columns that are part of the table

To enable the popup, while in INSERT mode, use the following key combinations
for each group (where <C-C> means hold the CTRL key down while pressing
the space bar):
     Table List		   - <C-C>t
			   - <C-X><C-O> (the default map assumes tables)
     Stored Procedure List - <C-C>p
     View List		   - <C-C>v
     Column List	   - <C-C>c

     Drilling In / Out     - When viewing a popup window displaying the list
			     of tables, you can press <Right>, this will
			     replace the table currently highlighted with
			     the column list for that table.
			   - When viewing a popup window displaying the list
			     of columns, you can press <Left>, this will
			     replace the column list with the list of tables.
			   - This allows you to quickly drill down into a
			     table to view its columns and back again.
			   - <Right> and <Left> can be also be chosen via
			     your |.vimrc| >
                                let g:ftplugin_sql_omni_key_right = '<Right>'
                                let g:ftplugin_sql_omni_key_left  = '<Left>'

The SQL completion plugin caches various lists that are displayed in
the popup window.  This makes the re-displaying of these lists very
fast.  If new tables or columns are added to the database it may become
necessary to clear the plugins cache.  The default map for this is: >
    imap <buffer> <C-C>R <C-\><C-O>:call sqlcomplete#Map('ResetCache')<CR><C-X><C-O>


4.3 SQL Tutorial				*sql-completion-tutorial*
----------------

This tutorial is designed to take you through the common features of the SQL
completion plugin so that: >
     a) You gain familiarity with the plugin
     b) You are introduced to some of the more common features
     c) Show how to customize it to your preferences
     d) Demonstrate "Best of Use" of the plugin (easiest way to configure).

First, create a new buffer: >
     :e tutorial.sql


Static features
---------------
To take you through the various lists, simply enter insert mode, hit:
    <C-C>s   (show SQL statements)
At this point, you can page down through the list until you find "select".
If you are familiar with the item you are looking for, for example you know
the statement begins with the letter "s".  You can type ahead (without the
quotes) "se" then press:
    <C-Space>t
Assuming "select" is highlighted in the popup list press <Enter> to choose
the entry.  Now type:
    * fr<C-C>a (show all syntax items)
choose "from" from the popup list.

When writing stored procedures using the "type" list is useful.  It contains
a list of all the database supported types.  This may or may not be true
depending on the syntax file you are using.  The SQL Anywhere syntax file
(sqlanywhere.vim) has support for this: >
     BEGIN
	DECLARE customer_id <C-C>T <-- Choose a type from the list


Dynamic features
----------------
To take advantage of the dynamic features you must first install the
dbext.vim plugin (http://vim.sourceforge.net/script.php?script_id=356).  It
also comes with a tutorial.  From the SQL completion plugin's perspective,
the main feature dbext provides is a connection to a database.  dbext
connection profiles are the most efficient mechanism to define connection
information.  Once connections have been setup, the SQL completion plugin
uses the features of dbext in the background to populate the popups.

What follows assumes dbext.vim has been correctly configured, a simple test
is to run the command, :DBListTable.  If a list of tables is shown, you know
dbext.vim is working as expected.  If not, please consult the dbext.txt
documentation.

Assuming you have followed the dbext-tutorial you can press <C-C>t to
display a list of tables.  There is a delay while dbext is creating the table
list.  After the list is displayed press <C-W>.  This will remove both the
popup window and the table name already chosen when the list became active. >

 4.3.1 Table Completion:			*sql-completion-tables*

Press <C-C>t to display a list of tables from within the database you
have connected via the dbext plugin.
NOTE: All of the SQL completion popups support typing a prefix before pressing
the key map.  This will limit the contents of the popup window to just items
beginning with those characters.  >

 4.3.2 Column Completion:			*sql-completion-columns*

The SQL completion plugin can also display a list of columns for particular
tables.  The column completion is trigger via <C-C>c.

NOTE: The following example uses <Right> to trigger a column list while
      the popup window is active.  

Example of using column completion:
     - Press <C-C>t again to display the list of tables.
     - When the list is displayed in the completion window, press <Right>,
       this will replace the list of tables, with a list of columns for the
       table highlighted (after the same short delay).
     - If you press <Left>, this will again replace the column list with the
       list of tables.  This allows you to drill into tables and column lists
       very quickly.
     - Press <Right> again while the same table is highlighted.  You will
       notice there is no delay since the column list has been cached.  If you
       change the schema of a cached table you can press <C-C>R, which
       clears the SQL completion cache.
     - NOTE: <Right> and <Left> have been designed to work while the
       completion window is active.  If the completion popup window is
       not active, a normal <Right> or <Left> will be executed.

Let's look at how we can build a SQL statement dynamically.  A select statement
requires a list of columns.  There are two ways to build a column list using
the SQL completion plugin. >
    One column at a time:
<       1. After typing SELECT press <C-C>t to display a list of tables.
	2. Choose a table from the list.
	3. Press <Right> to display a list of columns.
	4. Choose the column from the list and press enter.
	5. Enter a "," and press <C-C>c.  Generating a column list
	   generally requires having the cursor on a table name.  The plugin
	   uses this name to determine what table to retrieve the column list.
	   In this step, since we are pressing <C-C>c without the cursor
	   on a table name the column list displayed will be for the previous
	   table.  Choose a different column and move on.
	6. Repeat step 5 as often as necessary. >
    All columns for a table:
<	1. After typing SELECT press <C-C>t to display a list of tables.
	2. Highlight the table you need the column list for.
	3. Press <Enter> to choose the table from the list.
	4. Press <C-C>l to request a comma separated list of all columns
	   for this table.
	5. Based on the table name chosen in step 3, the plugin attempts to
	   decide on a reasonable table alias.	You are then prompted to
	   either accept of change the alias.  Press OK.
	6. The table name is replaced with the column list of the table is
	   replaced with the comma separate list of columns with the alias
	   prepended to each of the columns.
	7. Step 3 and 4 can be replaced by pressing <C-C>L, which has
	   a <C-Y> embedded in the map to choose the currently highlighted
	   table in the list.

There is a special provision when writing select statements.  Consider the
following statement: >
     select *
       from customer c,
	    contact cn,
	    department as dp,
	    employee e,
	    site_options so
      where c.

In INSERT mode after typing the final "c." which is an alias for the
"customer" table, you can press either <C-C>c or <C-X><C-O>.  This will
popup a list of columns for the customer table.  It does this by looking back
to the beginning of the select statement and finding a list of the tables
specified in the FROM clause.  In this case it notes that in the string
"customer c", "c" is an alias for the customer table.  The optional "AS"
keyword is also supported, "customer AS c". >


 4.3.3 Procedure Completion:			*sql-completion-procedures*

Similar to the table list, <C-C>p, will display a list of stored
procedures stored within the database. >

 4.3.4 View Completion:				*sql-completion-views*

Similar to the table list, <C-C>v, will display a list of views in the
database.


4.4 Completion Customization			*sql-completion-customization*
----------------------------

The SQL completion plugin can be customized through various options set in
your |vimrc|: >
    omni_sql_no_default_maps
<       - Default: This variable is not defined
	- If this variable is defined, no maps are created for OMNI
	  completion.  See |sql-completion-maps| for further discussion.
>
    omni_sql_use_tbl_alias
<	- Default: a
	- This setting is only used when generating a comma separated
	  column list.	By default the map is <C-C>l.  When generating
	  a column list, an alias can be prepended to the beginning of each
	  column, for example:	e.emp_id, e.emp_name.  This option has three
	  settings: >
		n - do not use an alias
		d - use the default (calculated) alias
		a - ask to confirm the alias name
<
	  An alias is determined following a few rules:
	       1.  If the table name has an '_', then use it as a separator: >
		   MY_TABLE_NAME --> MTN
		   my_table_name --> mtn
		   My_table_NAME --> MtN
<	       2.  If the table name does NOT contain an '_', but DOES use
		   mixed case then the case is used as a separator: >
		   MyTableName --> MTN
<	       3.  If the table name does NOT contain an '_', and does NOT
		   use mixed case then the first letter of the table is used: >
		   mytablename --> m
		   MYTABLENAME --> M

    omni_sql_ignorecase
<	- Default: Current setting for 'ignorecase'
	- Valid settings are 0 or 1.
	- When entering a few letters before initiating completion, the list
	  will be filtered to display only the entries which begin with the
	  list of characters.  When this option is set to 0, the list will be
	  filtered using case sensitivity. >

    omni_sql_include_owner
<	- Default: 0, unless dbext.vim 3.00 has been installed
	- Valid settings are 0 or 1.
	- When completing tables, procedure or views and using dbext.vim 3.00
	  or higher the list of objects will also include the owner name.
	  When completing these objects and omni_sql_include_owner is enabled
	  the owner name will be replaced. >

    omni_sql_precache_syntax_groups
<	- Default:
	  ['syntax','sqlKeyword','sqlFunction','sqlOption','sqlType','sqlStatement']
	- sqlcomplete can be used in conjunction with other completion
	  plugins.  This is outlined at |sql-completion-filetypes|.  When the
	  filetype is changed temporarily to SQL, the sqlcompletion plugin
	  will cache the syntax groups listed in the List specified in this
	  option.
>

4.5 SQL Maps					*sql-completion-maps*
------------

The default SQL maps have been described in other sections of this document in
greater detail.  Here is a list of the maps with a brief description of each.

Static Maps
-----------
These are maps which use populate the completion list using Vim's syntax
highlighting rules. >
    <C-C>a
<       - Displays all SQL syntax items. >
    <C-C>k
<       - Displays all SQL syntax items defined as 'sqlKeyword'. >
    <C-C>f
<       - Displays all SQL syntax items defined as 'sqlFunction. >
    <C-C>o
<       - Displays all SQL syntax items defined as 'sqlOption'. >
    <C-C>T
<       - Displays all SQL syntax items defined as 'sqlType'. >
    <C-C>s
<       - Displays all SQL syntax items defined as 'sqlStatement'. >

Dynamic Maps
------------
These are maps which use populate the completion list using the dbext.vim
plugin. >
    <C-C>t
<       - Displays a list of tables. >
    <C-C>p
<       - Displays a list of procedures. >
    <C-C>v
<       - Displays a list of views. >
    <C-C>c
<       - Displays a list of columns for a specific table. >
    <C-C>l
<       - Displays a comma separated list of columns for a specific table. >
    <C-C>L
<       - Displays a comma separated list of columns for a specific table.
	  This should only be used when the completion window is active. >
    <Right>
<	- Displays a list of columns for the table currently highlighted in
	  the completion window.  <Right> is not recognized on most Unix
	  systems, so this maps is only created on the Windows platform.
	  If you would like the same feature on Unix, choose a different key
	  and make the same map in your vimrc. >
    <Left>
<	- Displays the list of tables.
	  <Left> is not recognized on most Unix systems, so this maps is
	  only created on the Windows platform.  If you would like the same
	  feature on Unix, choose a different key and make the same map in
	  your vimrc. >
    <C-C>R
<	- This maps removes all cached items and forces the SQL completion
	  to regenerate the list of items.

Customizing Maps
----------------
You can create as many additional key maps as you like.  Generally, the maps
will be specifying different syntax highlight groups.

If you do not wish the default maps created or the key choices do not work on
your platform (often a case on *nix) you define the following variable in
your |vimrc|: >
    let g:omni_sql_no_default_maps = 1

Do no edit ftplugin/sql.vim directly!  If you change this file your changes
will be over written on future updates.  Vim has a special directory structure
which allows you to make customizations without changing the files that are
included with the Vim distribution.  If you wish to customize the maps
create an after/ftplugin/sql.vim (see |after-directory|) and place the same
maps from the ftplugin/sql.vim in it using your own key strokes.  <C-C> was
chosen since it will work on both Windows and *nix platforms.  On the windows
platform you can also use <C-Space> or ALT keys.


4.6 Using with other filetypes			*sql-completion-filetypes*
------------------------------

Many times SQL can be used with different filetypes.  For example Perl, Java,
PHP, Javascript can all interact with a database.  Often you need both the SQL
completion and the completion capabilities for the current language you are
editing.

This can be enabled easily with the following steps (assuming a Perl file): >
    1.  :e test.pl
    2.  :set filetype=sql
    3.  :set ft=perl

Step 1
------
Begins by editing a Perl file.  Vim automatically sets the filetype to
"perl".  By default, Vim runs the appropriate filetype file
ftplugin/perl.vim.  If you are using the syntax completion plugin by following
the directions at |ft-syntax-omni| then the |'omnifunc'| option has been set to
"syntax#Complete".  Pressing <C-X><C-O> will display the omni popup containing
the syntax items for Perl.

Step 2
------
Manually setting the filetype to 'sql' will also fire the appropriate filetype
files ftplugin/sql.vim.  This file will define a number of buffer specific
maps for SQL completion, see |sql-completion-maps|.  Now these maps have
been created and the SQL completion plugin has been initialized.  All SQL
syntax items have been cached in preparation.  The SQL filetype script detects
we are attempting to use two different completion plugins.  Since the SQL maps
begin with <C-C>, the maps will toggle the |'omnifunc'| when in use.  So you
can use <C-X><C-O> to continue using the completion for Perl (using the syntax
completion plugin) and <C-C> to use the SQL completion features.

Step 3
------
Setting the filetype back to Perl sets all the usual "perl" related items back
as they were.


vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�-mzzvim80/doc/os_mint.txtnu�[���*os_mint.txt*   For Vim version 8.0.  Last change: 2005 Mar 29


		  VIM REFERENCE MANUAL    by Jens M. Felderhoff


							*MiNT* *Atari*
This file contains the particularities for the Atari MiNT version of Vim.

For compiling Vim on the Atari running MiNT see "INSTALL" and "Makefile"
in the src directory.

Vim for MiNT behaves almost exactly like the Unix version.
The Unix behavior described in the documentation also refers to the
MiNT version of Vim unless explicitly stated otherwise.

For wildcard expansion of <~> (home directory) you need a shell that
expands the tilde.  The vanilla Bourne shell doesn't recognize it.
With csh and ksh it should work OK.

The MiNT version of vim needs the termcap file /etc/termcap with the
terminal capabilities of your terminal.  Builtin termcaps are
supported for the vt52 terminal.  Termcap entries for the TOSWIN window
manager and the virtual console terminals have been appended to the
termcap file that comes with the Vim distribution.

If you should encounter problems with swapped <BS> and <Del> keys, see
|:fixdel|.

Because terminal updating under MiNT is often slow (e.g. serial line
terminal), the 'showcmd' and 'ruler' options are default off.
If you have a fast terminal, try setting them on.  You might
also want to set 'ttyfast'.

Send bug reports to

	Jens M. Felderhoff, e-mail: <jmf@infko.uni-koblenz.de>

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��J�Jvim80/doc/usr_04.txtnu�[���*usr_04.txt*	For Vim version 8.0.  Last change: 2014 Aug 29

		     VIM USER MANUAL - by Bram Moolenaar

			     Making small changes


This chapter shows you several ways of making corrections and moving text
around.  It teaches you the three basic ways to change text: operator-motion,
Visual mode and text objects.

|04.1|	Operators and motions
|04.2|	Changing text
|04.3|	Repeating a change
|04.4|	Visual mode
|04.5|	Moving text
|04.6|	Copying text
|04.7|	Using the clipboard
|04.8|	Text objects
|04.9|	Replace mode
|04.10|	Conclusion

     Next chapter: |usr_05.txt|  Set your settings
 Previous chapter: |usr_03.txt|  Moving around
Table of contents: |usr_toc.txt|

==============================================================================
*04.1*	Operators and motions

In chapter 2 you learned the "x" command to delete a single character.  And
using a count: "4x" deletes four characters.
   The "dw" command deletes a word.  You may recognize the "w" command as the
move word command.  In fact, the "d" command may be followed by any motion
command, and it deletes from the current location to the place where the
cursor winds up.
   The "4w" command, for example, moves the cursor over four words.  The d4w
command deletes four words.

	To err is human. To really foul up you need a computer. ~
			 ------------------>
				 d4w

	To err is human. you need a computer. ~

Vim only deletes up to the position where the motion takes the cursor.  That's
because Vim knows that you probably don't want to delete the first character
of a word.  If you use the "e" command to move to the end of a word, Vim
guesses that you do want to include that last character:

	To err is human. you need a computer. ~
			-------->
			   d2e

	To err is human. a computer. ~

Whether the character under the cursor is included depends on the command you
used to move to that character.  The reference manual calls this "exclusive"
when the character isn't included and "inclusive" when it is.

The "$" command moves to the end of a line.  The "d$" command deletes from the
cursor to the end of the line.  This is an inclusive motion, thus the last
character of the line is included in the delete operation:

	To err is human. a computer. ~
		       ------------>
			    d$

	To err is human ~

There is a pattern here: operator-motion.  You first type an operator command.
For example, "d" is the delete operator.  Then you type a motion command like
"4l" or "w".  This way you can operate on any text you can move over.

==============================================================================
*04.2*	Changing text

Another operator is "c", change.  It acts just like the "d" operator, except
it leaves you in Insert mode.  For example, "cw" changes a word.  Or more
specifically, it deletes a word and then puts you in Insert mode.

	To err is human ~
	   ------->
	     c2wbe<Esc>

	To be human ~

This "c2wbe<Esc>" contains these bits:

	c	the change operator
	2w	move two words (they are deleted and Insert mode started)
	be	insert this text
	<Esc>	back to Normal mode

If you have paid attention, you will have noticed something strange: The space
before "human" isn't deleted.  There is a saying that for every problem there
is an answer that is simple, clear, and wrong.  That is the case with the
example used here for the "cw" command.  The c operator works just like the
d operator, with one exception: "cw".  It actually works like "ce", change to
end of word.  Thus the space after the word isn't included.  This is an
exception that dates back to the old Vi.  Since many people are used to it
now, the inconsistency has remained in Vim.


MORE CHANGES

Like "dd" deletes a whole line, "cc" changes a whole line.  It keeps the
existing indent (leading white space) though.

Just like "d$" deletes until the end of the line, "c$" changes until the end
of the line.  It's like doing "d$" to delete the text and then "a" to start
Insert mode and append new text.


SHORTCUTS

Some operator-motion commands are used so often that they have been given a
single letter command:

	x  stands for  dl  (delete character under the cursor)
	X  stands for  dh  (delete character left of the cursor)
	D  stands for  d$  (delete to end of the line)
	C  stands for  c$  (change to end of the line)
	s  stands for  cl  (change one character)
	S  stands for  cc  (change a whole line)


WHERE TO PUT THE COUNT

The commands "3dw" and "d3w" delete three words.  If you want to get really
picky about things, the first command, "3dw", deletes one word three times;
the command "d3w" deletes three words once.  This is a difference without a
distinction.  You can actually put in two counts, however.  For example,
"3d2w" deletes two words, repeated three times, for a total of six words.


REPLACING WITH ONE CHARACTER

The "r" command is not an operator.  It waits for you to type a character, and
will replace the character under the cursor with it.  You could do the same
with "cl" or with the "s" command, but with "r" you don't have to press <Esc>

	there is somerhing grong here ~
	rT	     rt    rw

	There is something wrong here ~

Using a count with "r" causes that many characters to be replaced with the
same character.  Example:

	There is something wrong here ~
			   5rx

	There is something xxxxx here ~

To replace a character with a line break use "r<Enter>".  This deletes one
character and inserts a line break.  Using a count here only applies to the
number of characters deleted: "4r<Enter>" replaces four characters with one
line break.

==============================================================================
*04.3*	Repeating a change

The "." command is one of the most simple yet powerful commands in Vim.  It
repeats the last change.  For instance, suppose you are editing an HTML file
and want to delete all the <B> tags.  You position the cursor on the first <
and delete the <B> with the command "df>".  You then go to the < of the next
</B> and kill it using the "." command.  The "." command executes the last
change command (in this case, "df>").  To delete another tag, position the
cursor on the < and use the "." command.

			      To <B>generate</B> a table of <B>contents ~
	f<   find first <     --->
	df>  delete to >	 -->
	f<   find next <	   --------->
	.    repeat df>			    --->
	f<   find next <		       ------------->
	.    repeat df>					    -->

The "." command works for all changes you make, except for the "u" (undo),
CTRL-R (redo) and commands that start with a colon (:).

Another example: You want to change the word "four" to "five".  It appears
several times in your text.  You can do this quickly with this sequence of
commands:

	/four<Enter>	find the first string "four"
	cwfive<Esc>	change the word to "five"
	n		find the next "four"
	.		repeat the change to "five"
	n		find the next "four"
	.		repeat the change
			etc.

==============================================================================
*04.4*	Visual mode

To delete simple items the operator-motion changes work quite well.  But often
it's not so easy to decide which command will move over the text you want to
change.  Then you can use Visual mode.

You start Visual mode by pressing "v".  You move the cursor over the text you
want to work on.  While you do this, the text is highlighted.  Finally type
the operator command.
   For example, to delete from halfway one word to halfway another word:

		This is an examination sample of visual mode ~
			       ---------->
				 velllld

		This is an example of visual mode ~

When doing this you don't really have to count how many times you have to
press "l" to end up in the right position.  You can immediately see what text
will be deleted when you press "d".

If at any time you decide you don't want to do anything with the highlighted
text, just press <Esc> and Visual mode will stop without doing anything.


SELECTING LINES

If you want to work on whole lines, use "V" to start Visual mode.  You will
see right away that the whole line is highlighted, without moving around.
When you move left or right nothing changes.  When you move up or down the
selection is extended whole lines at a time.
   For example, select three lines with "Vjj":

			  +------------------------+
			  | text more text	   |
		       >> | more text more text    | |
	selected lines >> | text text text	   | | Vjj
		       >> | text more		   | V
			  | more text more	   |
			  +------------------------+


SELECTING BLOCKS

If you want to work on a rectangular block of characters, use CTRL-V to start
Visual mode.  This is very useful when working on tables.

		name		Q1	Q2	Q3
		pierre		123	455	234
		john		0	90	39
		steve		392	63	334

To delete the middle "Q2" column, move the cursor to the "Q" of "Q2".  Press
CTRL-V to start blockwise Visual mode.  Now move the cursor three lines down
with "3j" and to the next word with "w".  You can see the first character of
the last column is included.  To exclude it, use "h".  Now press "d" and the
middle column is gone.


GOING TO THE OTHER SIDE

If you have selected some text in Visual mode, and discover that you need to
change the other end of the selection, use the "o" command (Hint: o for other
end).  The cursor will go to the other end, and you can move the cursor to
change where the selection starts.  Pressing "o" again brings you back to the
other end.

When using blockwise selection, you have four corners.  "o" only takes you to
one of the other corners, diagonally.  Use "O" to move to the other corner in
the same line.

Note that "o" and "O" in Visual mode work very differently from Normal mode,
where they open a new line below or above the cursor.

==============================================================================
*04.5*	Moving text

When you delete something with the "d", "x", or another command, the text is
saved.  You can paste it back by using the p command.  (The Vim name for
this is put).
   Take a look at how this works.  First you will delete an entire line, by
putting the cursor on the line you want to delete and typing "dd".  Now you
move the cursor to where you want to put the line and use the "p" (put)
command.  The line is inserted on the line below the cursor.

	a line		a line	      a line
	line 2	  dd	line 3	  p   line 3
	line 3			      line 2

Because you deleted an entire line, the "p" command placed the text line below
the cursor.  If you delete part of a line (a word, for instance), the "p"
command puts it just after the cursor.

	Some more boring try text to out commands. ~
			 ---->
			  dw

	Some more boring text to out commands. ~
			 ------->
			    welp

	Some more boring text to try out commands. ~


MORE ON PUTTING

The "P" command puts text like "p", but before the cursor.  When you deleted a
whole line with "dd", "P" will put it back above the cursor.  When you deleted
a word with "dw", "P" will put it back just before the cursor.

You can repeat putting as many times as you like.  The same text will be used.

You can use a count with "p" and "P".  The text will be repeated as many times
as specified with the count.  Thus "dd" and then "3p" puts three copies of the
same deleted line.


SWAPPING TWO CHARACTERS

Frequently when you are typing, your fingers get ahead of your brain (or the
other way around?).  The result is a typo such as "teh" for "the".  Vim
makes it easy to correct such problems.  Just put the cursor on the e of "teh"
and execute the command "xp".  This works as follows: "x" deletes the
character e and places it in a register.  "p" puts the text after the cursor,
which is after the h.

	teh     th     the ~
	 x       p

==============================================================================
*04.6*	Copying text

To copy text from one place to another, you could delete it, use "u" to undo
the deletion and then "p" to put it somewhere else.  There is an easier way:
yanking.  The "y" operator copies text into a register.  Then a "p" command
can be used to put it.
   Yanking is just a Vim name for copying.  The "c" letter was already used
for the change operator, and "y" was still available.  Calling this
operator "yank" made it easier to remember to use the "y" key.

Since "y" is an operator, you use "yw" to yank a word.  A count is possible as
usual.  To yank two words use "y2w".  Example:

	let sqr = LongVariable * ~
		 -------------->
		       y2w

	let sqr = LongVariable * ~
			       p

	let sqr = LongVariable * LongVariable ~

Notice that "yw" includes the white space after a word.  If you don't want
this, use "ye".

The "yy" command yanks a whole line, just like "dd" deletes a whole line.
Unexpectedly, while "D" deletes from the cursor to the end of the line, "Y"
works like "yy", it yanks the whole line.  Watch out for this inconsistency!
Use "y$" to yank to the end of the line.

	a text line   yy	a text line	       a text line
	line 2			line 2		p      line 2
	last line		last line	       a text line
						       last line

==============================================================================
*04.7*	Using the clipboard

If you are using the GUI version of Vim (gvim), you can find the "Copy" item
in the "Edit" menu.  First select some text with Visual mode, then use the
Edit/Copy menu.  The selected text is now copied to the clipboard.  You can
paste the text in other programs.  In Vim itself too.

If you have copied text to the clipboard in another application, you can paste
it in Vim with the Edit/Paste menu.  This works in Normal mode and Insert
mode.  In Visual mode the selected text is replaced with the pasted text.

The "Cut" menu item deletes the text before it's put on the clipboard.  The
"Copy", "Cut" and "Paste" items are also available in the popup menu (only
when there is a popup menu, of course).  If your Vim has a toolbar, you can
also find these items there.

If you are not using the GUI, or if you don't like using a menu, you have to
use another way.  You use the normal "y" (yank) and "p" (put) commands, but
prepend "* (double-quote star) before it.  To copy a line to the clipboard: >

	"*yy

To put text from the clipboard back into the text: >

	"*p

This only works on versions of Vim that include clipboard support.  More about
the clipboard in section |09.3| and here: |clipboard|.

==============================================================================
*04.8*	Text objects

If the cursor is in the middle of a word and you want to delete that word, you
need to move back to its start before you can do "dw".  There is a simpler way
to do this: "daw".

	this is some example text. ~
		       daw

	this is some text. ~

The "d" of "daw" is the delete operator.  "aw" is a text object.  Hint: "aw"
stands for "A Word".  Thus "daw" is "Delete A Word".  To be precise, the white
space after the word is also deleted (the white space before the word at the
end of the line).

Using text objects is the third way to make changes in Vim.  We already had
operator-motion and Visual mode.  Now we add operator-text object.
   It is very similar to operator-motion, but instead of operating on the text
between the cursor position before and after a movement command, the text
object is used as a whole.  It doesn't matter where in the object the cursor
was.

To change a whole sentence use "cis".  Take this text:

	Hello there.  This ~
	is an example.  Just ~
	some text. ~

Move to the start of the second line, on "is an".  Now use "cis":

	Hello there.    Just ~
	some text. ~

The cursor is in between the blanks in the first line.  Now you type the new
sentence "Another line.":

	Hello there.  Another line.  Just ~
	some text. ~

"cis" consists of the "c" (change) operator and the "is" text object.  This
stands for "Inner Sentence".  There is also the "as" (a sentence) object.  The
difference is that "as" includes the white space after the sentence and "is"
doesn't.  If you would delete a sentence, you want to delete the white space
at the same time, thus use "das".  If you want to type new text the white
space can remain, thus you use "cis".

You can also use text objects in Visual mode.  It will include the text object
in the Visual selection.  Visual mode continues, thus you can do this several
times.  For example, start Visual mode with "v" and select a sentence with
"as".  Now you can repeat "as" to include more sentences.  Finally you use an
operator to do something with the selected sentences.

You can find a long list of text objects here: |text-objects|.

==============================================================================
*04.9*	Replace mode

The "R" command causes Vim to enter replace mode.  In this mode, each
character you type replaces the one under the cursor.  This continues until
you type <Esc>.
   In this example you start Replace mode on the first "t" of "text":

	This is text. ~
		Rinteresting.<Esc>

	This is interesting. ~

You may have noticed that this command replaced 5 characters in the line with
twelve others.  The "R" command automatically extends the line if it runs out
of characters to replace.  It will not continue on the next line.

You can switch between Insert mode and Replace mode with the <Insert> key.

When you use <BS> (backspace) to make correction, you will notice that the
old text is put back.  Thus it works like an undo command for the last typed
character.

==============================================================================
*04.10*	Conclusion

The operators, movement commands and text objects give you the possibility to
make lots of combinations.  Now that you know how it works, you can use N
operators with M movement commands to make N * M commands!

You can find a list of operators here: |operator|

For example, there are many other ways to delete pieces of text.  Here are a
few often used ones:

x	delete character under the cursor (short for "dl")
X	delete character before the cursor (short for "dh")
D	delete from cursor to end of line (short for "d$")
dw	delete from cursor to next start of word
db	delete from cursor to previous start of word
diw	delete word under the cursor (excluding white space)
daw	delete word under the cursor (including white space)
dG	delete until the end of the file
dgg	delete until the start of the file

If you use "c" instead of "d" they become change commands.  And with "y" you
yank the text.  And so forth.


There are a few often used commands to make changes that didn't fit somewhere
else:

	~	change case of the character under the cursor, and move the
		cursor to the next character.  This is not an operator (unless
		'tildeop' is set), thus you can't use it with a motion
		command.  It does work in Visual mode and changes case for
		all the selected text then.

	I	Start Insert mode after moving the cursor to the first
		non-blank in the line.

	A	Start Insert mode after moving the cursor to the end of the
		line.

==============================================================================

Next chapter: |usr_05.txt|  Set your settings

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z_��%�%vim80/doc/farsi.txtnu�[���*farsi.txt*     For Vim version 8.0.  Last change: 2015 Aug 29


		  VIM REFERENCE MANUAL    by Mortaza Ghassab Shiran


Right to Left and Farsi Mapping for Vim		*farsi* *Farsi*

{Vi does not have any of these commands}

						*E27*
In order to use right-to-left and Farsi mapping support, it is necessary to
compile Vim with the |+farsi| feature.

These functions have been made by Mortaza G. Shiran <shiran@jps.net>


Introduction
------------
In right-to-left oriented files the characters appear on the screen from right
to left.  This kind of file is most useful when writing Farsi documents,
composing faxes or writing Farsi memos.

The commands, prompts and help files are not in Farsi, therefore the user
interface remains the standard Vi interface.


Highlights
----------
o  Editing left-to-right files as in the original Vim, no change.

o  Viewing and editing files in right-to-left windows.   File orientation is
   per window, so it is possible to view the same file in right-to-left and
   left-to-right modes, simultaneously.

o  Compatibility to the original Vim.   Almost all features work in
   right-to-left mode (see bugs below).

o  Changing keyboard mapping and reverse insert modes using a single
   command.

o  Backing from reverse insert mode to the correct place in the file
   (if possible).

o  While in Farsi mode, numbers are entered from left to right.  Upon entering
   a none number character, that character will be inserted just into the
   left of the last number.

o  No special terminal with right-to-left capabilities is required.  The
   right-to-left changes are completely hardware independent.  Only
   Farsi font is necessary.

o  Farsi keymapping on the command line in reverse insert mode.

o  Toggling between left-to-right and right-to-left via F8 function key.

o  Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
   function key.  Since this makes sense only for the text written in
   right-to-left mode, this function is also supported only in right-to-left
   mode.

Farsi Fonts					*farsi-fonts*
-----------

The following files are found in the subdirectories of the '$VIM/farsi/fonts'
directory:

   +  far-a01.pcf    X Windows fonts for Unix including Linux systems
   +  far-a01.bf     X Windows fonts for SunOS
   +  far-a01.f16    a screen fonts for Unix including Linux systems
   +  far-a01.fon    a monospaced fonts for Windows NT/95/98
   +  far-a01.com    a screen fonts for DOS


Font Installation
-----------------

o  Installation of fonts for MS Window systems (NT/95/98)

   From 'Control Panel' folder, start the 'Fonts' program.  Then from 'file'
   menu item select 'Install New Fonts ...'.  Browse and select the
   'far-a01.fon', then follow the installation guide.
   NOTE: several people have reported that this does not work.  The solution
   is unknown.

o  Installation of fonts for X Window systems (Unix/Linux)

   Depending on your system, copy far-a01.pcf.Z or far-a01.pcf.gz into a
   directory of your choice.  Change to the directory containing the Farsi
   fonts and execute the following commands:

   >  mkfontdir
   >  xset +fp path_name_of_farsi_fonts_directory

o  Installation of fonts for X Window systems (SunOS)

   Copy far-a01.bf font into a directory of your choice.
   Change to the directory containing the far-a01.fb fonts and
   execute the following commands:

   >  fldfamily
   >  xset +fp path_name_of_fonts_directory

o  Installation of ASCII screen fonts (Unix/Linux)

   For Linux system, copy the far-a01.f16 fonts into /usr/lib/kbd/consolefonts
   directory and execute the setfont program as "setfont far-a01.f16".  For
   other systems (e.g. SCO Unix), please refer to the fonts installation
   section of your system administration manuals.

o  Installation of ASCII screen fonts (DOS)

   After system power on, prior to the first use of Vim, upload the Farsi
   fonts by executing the far-a01.com font uploading program.


Usage
-----
Prior to starting Vim, the environment in which Vim can run in Farsi mode,
must be set.  In addition to installation of Farsi fonts, following points
refer to some of the system environments, which you may need to set:
Key code mapping, loading graphic card in ASCII screen mode, setting the IO
driver in 8 bit clean mode ... .

o  Setting the Farsi fonts

   +  For Vim GUI set the 'guifont' to far-a01.  This is done by entering
      ':set guifont=far-a01' in the Vim window.

      You can have 'guifont' set to far-a01 by Vim during the Vim startup
      by appending the ':set guifont=far-a01' into your .vimrc file
      (in case of NT/95/98 platforms _vimrc).

      Under the X Window environment, you can also start Vim with the
      '-fn far-a01' option.

   +  For Vim within a xterm, start a xterm with the Farsi fonts (e.g.
      kterm -fn far-a01).  Then start Vim inside the kterm.

   +  For Vim under DOS, prior to the first usage of Vim, upload the Farsi
      fonts by executing the far-a01.com fonts uploading program.

o  Farsi Keymapping Activation

   To activate the Farsi keymapping, set either 'altkeymap' or 'fkmap'.
   This is done by entering ':set akm' or ':set fk' in the Vim window.
   You can have 'altkeymap' or 'fkmap' set as default by appending ':set akm'
   or ':set fk' in your .vimrc file or _vimrc in case of NT/95/98 platforms.

   To turn off the Farsi keymapping as a default second language keymapping,
   reset the 'altkeymap' by entering ':set noakm'.

o  right-to-left Farsi Mode

   By default Vim starts in Left-to-right mode.  Following are ways to change
   the window orientation:

   + Start Vim with the -F option (e.g. vim -F ...).

   + Use the F8 function key to toggle between left-to-right and right-to-left.

   + While in Left-to-right mode, enter 'set rl' in the command line ('rl' is
     the abbreviation for rightleft).

   + Put the 'set rl' line in your '.vimrc' file to start Vim in
     right-to-left mode permanently.

Encoding
--------

The letter encoding used is the Vim extended ISIR-3342 standard with a built
in function to convert between Vim extended ISIR-3342 and ISIR-3342 standard.

For document portability reasons, the letter encoding is kept the same across
different platforms (i.e. UNIX's, NT/95/98, MS DOS, ...).


o  Keyboard

   +  CTRL-_ in insert/replace modes toggles between Farsi(akm)/Latin
      mode as follows:

   +  CTRL-_ moves the cursor to the end of the typed text in edit mode.

   +  CTRL-_ in command mode only toggles keyboard mapping between Farsi(akm)/
      Latin.  The Farsi text is then entered in reverse insert mode.

   +  F8 - Toggles between left-to-right and right-to-left.

   +  F9 - Toggles the encoding between ISIR-3342 standard and Vim extended
      ISIR-3342 (supported only in right-to-left mode).

   +  Keyboard mapping is based on the Iranian ISIRI-2901 standard.
      Following table shows the keyboard mapping while Farsi(akm) mode set:

	-------------------------------------
	`  1  2  3  4  5  6  7  8  9  0  -  =
	�  �  �  �  �  �  �  �  �  �  �  �  �
	-------------------------------------
	~  !  @  #  $  %  ^  &  *  (  )  _  +
	~  �  �  �  �  �  �  �  �  �  �  �  �
	-------------------------------------
	q  w  e  r  t  z  u  i  o  p  [  ]
	�  �  �  �  �  �  �  �  �  �  �  �
	-------------------------------------
	Q  W  E  R  T  Z  U  I  O  P  {  }
	�  �  �  �  �  �  �  �  [  ]  {  }
	-------------------------------------
	a  s  d  f  g  h  j  k  l  ;  '  \
	�  �  �  �  �  �  �  �  �  �  �  �
	-------------------------------------
	A  S  D  F  G  H  J  K  L  :  "  |
	�  �� �  �  �  �  �  �  �  �  �  �
	-------------------------------------
	<  y  x  c  v  b  n  m  ,  .  /
	�  �  �  �  �  �  �  �  �  �  �
	-------------------------------------
	>  Y  X  C  V  B  N  M  <  >  ?
	�  �  �  �  �  �  �  �  �  �  �
	-------------------------------------

Note:
	�  stands for Farsi PSP (break without space)

	�  stands for Farsi PCN (for HAMZE attribute)

Restrictions
------------

o  In insert/replace mode and fkmap (Farsi mode) set, CTRL-B is not
   supported.

o  If you change the character mapping between Latin/Farsi, the redo buffer
   will be reset (emptied).  That is, redo is valid and will function (using
   '.') only within the mode you are in.

o  While numbers are entered in Farsi mode, the redo buffer will be reset
   (emptied).  That is, you cannot redo the last changes (using '.') after
   entering numbers.

o  While in left-to-right mode and Farsi mode set, CTRL-R is not supported.

o  While in right-to-left mode, the search on 'Latin' pattern does not work,
   except if you enter the Latin search pattern in reverse.

o  In command mode there is no support for entering numbers from left
   to right and also for the sake of flexibility the keymapping logic is
   restricted.

o  Under the X Window environment, if you want to run Vim within a xterm
   terminal emulator and Farsi mode set, you need to have an ANSI compatible
   xterm terminal emulator.  This is because the letter codes above 128 decimal
   have certain meanings in the standard xterm terminal emulator.

   Note: Under X Window environment, Vim GUI works fine in Farsi mode.
	 This eliminates the need of any xterm terminal emulator.


Bugs
----
While in insert/replace and Farsi mode set, if you repeatedly change the
cursor position (via cursor movement) and enter new text and then try to undo
the last change, the undo will lag one change behind.  But as you continue to
undo, you will reach the original line of text.  You can also use U to undo all
changes made in the current line.

For more information about the bugs refer to rileft.txt.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z8٧�RRvim80/doc/hebrew.txtnu�[���*hebrew.txt*    For Vim version 8.0.  Last change: 2007 Jun 14


	   VIM REFERENCE MANUAL    by Ron Aaron (and Avner Lottem)


Hebrew Language support (options & mapping) for Vim		*hebrew*

The supporting 'rightleft' functionality was originally created by Avner
Lottem. <alottem at gmail dot com>  Ron Aaron <ron at ronware dot org> is
currently helping support these features.

{Vi does not have any of these commands}

All this is only available when the |+rightleft| feature was enabled at
compile time.


Introduction
------------
Hebrew-specific options are 'hkmap', 'hkmapp' 'keymap'=hebrew and 'aleph'.
Hebrew-useful options are 'delcombine', 'allowrevins', 'revins', 'rightleft'
and 'rightleftcmd'.

The 'rightleft' mode reverses the display order, so characters are displayed
from right to left instead of the usual left to right.  This is useful
primarily when editing Hebrew or other Middle-Eastern languages.
See |rileft.txt| for further details.

Details
--------------
+  Options:
   +  'rightleft' ('rl') sets window orientation to right-to-left.  This means
      that the logical text 'ABC' will be displayed as 'CBA', and will start
      drawing at the right edge of the window, not the left edge.
   +  'hkmap' ('hk') sets keyboard mapping to Hebrew, in insert/replace modes.
   +  'aleph' ('al'), numeric, holds the decimal code of Aleph, for keyboard
      mapping.
   +  'hkmapp' ('hkp') sets keyboard mapping to 'phonetic hebrew'

   NOTE: these three ('hkmap', 'hkmapp' and 'aleph') are obsolete.  You should
	 use ":set keymap=hebrewp" instead.

   +  'delcombine' ('deco'), boolean, if editing UTF-8 encoded Hebrew, allows
      one to remove the niqud or te`amim by pressing 'x' on a character (with
      associated niqud).

   +  'rightleftcmd' ('rlc') makes the command-prompt for searches show up on
      the right side.  It only takes effect if the window is 'rightleft'.

+  Encoding:
   +  Under Unix, ISO 8859-8 encoding (Hebrew letters codes: 224-250).
   +  Under MS DOS, PC encoding (Hebrew letters codes: 128-154).
      These are defaults, that can be overridden using the 'aleph' option.
   +  You should prefer using UTF8, as it supports the combining-characters
      ('deco' does nothing if UTF8 encoding is not active).

+  Vim arguments:
   +  'vim -H file' starts editing a Hebrew file, i.e. 'rightleft' and 'hkmap'
      are set.

+  Keyboard:
   +  The 'allowrevins' option enables the CTRL-_ command in Insert mode and
      in Command-line mode.

   +  CTRL-_ in insert/replace modes toggles 'revins' and 'hkmap' as follows:

      When in rightleft window, 'revins' and 'nohkmap' are toggled, since
      English will likely be inserted in this case.

      When in norightleft window, 'revins' 'hkmap' are toggled, since Hebrew
      will likely be inserted in this case.

      CTRL-_ moves the cursor to the end of the typed text.

   +  CTRL-_ in command mode only toggles keyboard mapping (see Bugs below).
      This setting is independent of 'hkmap' option, which only applies to
      insert/replace mode.

      Note: On some keyboards, CTRL-_ is mapped to CTRL-?.

   +  Keyboard mapping while 'hkmap' is set (standard Israeli keyboard):

	q w e r t y u i o p
	/ ' ק ר א ט ו ן ם פ

	 a s d f g h j k l ; '
	 ש ד ג כ ע י ח ל ך ף ,

	  z x c v b n m , . /
	  ז ס ב ה נ מ צ ת ץ .

      This is also the keymap when 'keymap=hebrew' is set.  The advantage of
      'keymap' is that it works properly when using UTF8, e.g. it inserts the
      correct characters; 'hkmap' does not.  The 'keymap' keyboard can also
      insert niqud and te`amim.  To see what those mappings are, look at the
      keymap file 'hebrew.vim' etc.


Typing backwards

If the 'revins' (reverse insert) option is set, inserting happens backwards.
This can be used to type Hebrew.  When inserting characters the cursor is not
moved and the text moves rightwards.  A <BS> deletes the character under the
cursor.  CTRL-W and CTRL-U also work in the opposite direction.  <BS>, CTRL-W
and CTRL-U do not stop at the start of insert or end of line, no matter how
the 'backspace' option is set.

There is no reverse replace mode (yet).

If the 'showmode' option is set, "-- REVERSE INSERT --" will be shown in the
status line when reverse Insert mode is active.

When the 'allowrevins' option is set, reverse Insert mode can be also entered
via CTRL-_, which has some extra functionality: First, keyboard mapping is
changed according to the window orientation -- if in a left-to-right window,
'revins' is used to enter Hebrew text, so the keyboard changes to Hebrew
('hkmap' is set); if in a right-to-left window, 'revins' is used to enter
English text, so the keyboard changes to English ('hkmap' is reset).  Second,
when exiting 'revins' via CTRL-_, the cursor moves to the end of the typed
text (if possible).


Pasting when in a rightleft window
----------------------------------
When cutting text with the mouse and pasting it in a rightleft window
the text will be reversed, because the characters come from the cut buffer
from the left to the right, while inserted in the file from the right to
the left.   In order to avoid it, toggle 'revins' (by typing CTRL-? or CTRL-_)
before pasting.


Hebrew characters and the 'isprint' variable
--------------------------------------------
Sometimes Hebrew character codes are in the non-printable range defined by
the 'isprint' variable.  For example in the Linux console, the Hebrew font
encoding starts from 128, while the default 'isprint' variable is @,161-255.
The result is that all Hebrew characters are displayed as ~x.  To solve this
problem, set isprint=@,128-255.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z����$4$4vim80/doc/os_win32.txtnu�[���*os_win32.txt*  For Vim version 8.0.  Last change: 2017 Mar 21


		  VIM REFERENCE MANUAL    by George Reilly


						*win32* *Win32* *MS-Windows*
This file documents the idiosyncrasies of the Win32 version of Vim.

The Win32 version of Vim works on Windows XP, Vista, 7, 8 and 10.  There are
both console and GUI versions.

The 32 bit version also runs on 64 bit MS-Windows systems.

1. Known problems		|win32-problems|
2. Startup			|win32-startup|
3. Restore screen contents	|win32-restore|
4. Using the mouse		|win32-mouse|
5. Running under Windows 95	|win32-win95|
6. Running under Windows 3.1	|win32-win3.1|
7. Win32 mini FAQ		|win32-faq|

Additionally, there are a number of common Win32 and DOS items:
File locations			|dos-locations|
Using backslashes		|dos-backslash|
Standard mappings		|dos-standard-mappings|
Screen output and colors	|dos-colors|
File formats			|dos-file-formats|
:cd command			|dos-:cd|
Interrupting			|dos-CTRL-Break|
Temp files			|dos-temp-files|
Shell option default		|dos-shell|

Win32 GUI			|gui-w32|

Credits:
The Win32 version was written by George V. Reilly <george@reilly.org>.
The original Windows NT port was done by Roger Knobbe <RogerK@wonderware.com>.
The GUI version was made by George V. Reilly and Robert Webb.

For compiling see "src/INSTALLpc.txt".			*win32-compiling*

==============================================================================
1. Known problems					*win32-problems*

When doing file name completion, Vim also finds matches for the short file
name.  But Vim will still find and use the corresponding long file name.  For
example, if you have the long file name "this_is_a_test" with the short file
name "this_i~1", the command ":e *1" will start editing "this_is_a_test".

==============================================================================
2. Startup						*win32-startup*

Current directory					*win32-curdir*

If Vim is started with a single file name argument, and it has a full path
(starts with "x:\"), Vim assumes it was started from the file explorer and
will set the current directory to where that file is.  To avoid this when
typing a command to start Vim, use a forward slash instead of a backslash.
Example: >

	vim c:\text\files\foo.txt

Will change to the "C:\text\files" directory. >

	vim c:/text\files\foo.txt

Will use the current directory.


Term option						*win32-term*

The only kind of terminal type that the Win32 version of Vim understands is
"win32", which is built-in.  If you set 'term' to anything else, you will
probably get very strange behavior from Vim.  Therefore Vim does not obtain
the default value of 'term' from the environment variable "TERM".

$PATH							*win32-PATH*

The directory of the Vim executable is appended to $PATH.  This is mostly to
make "!xxd" work, as it is in the Tools menu.  And it also means that when
executable() returns 1 the executable can actually be executed.

Command line arguments					*win32-cmdargs*

Analysis of a command line into parameters is not standardised in MS Windows.
Vim and gvim used to use different logic to parse it (before 7.4.432), and the
logic was also depended on what it was compiled with.  Now Vim and gvim both
use the CommandLineToArgvW() Win32 API, so they behave in the same way.

The basic rules are:					*win32-backslashes*
      a) A parameter is a sequence of graphic characters.
      b) Parameters are separated by white space.
      c) A parameter can be enclosed in double quotes to include white space.
      d) A sequence of zero or more backslashes (\) and a double quote (")
	is special.  The effective number of backslashes is halved, rounded
	down.  An even number of backslashes reverses the acceptability of
	spaces and tabs, an odd number of backslashes produces a literal
	double quote.

So:
	"	is a special double quote
	\"	is a literal double quote
	\\"	is a literal backslash and a special double quote
	\\\"	is a literal backslash and a literal double quote
	\\\\"	is 2 literal backslashes and a special double quote
	\\\\\"	is 2 literal backslashes and a literal double quote
	etc.

Example: >
	vim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"

opens "C:\My Music\freude" and executes the line mode commands: >
	set ignorecase; /"foo\ and /bar\"

These rules are also described in the reference of the CommandLineToArgvW API:
    https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391.aspx

							*win32-quotes*
There are additional rules for quotes (which are not well documented).
As described above, quotes inside a file name (or any other command line
argument) can be escaped with a backslash.  E.g. >
	vim -c "echo 'foo\"bar'"

Alternatively use three quotes to get one: >
	vim -c "echo 'foo"""bar'"

The quotation rules are:

1. A `"` starts quotation.
2. Another `"` or `""` ends quotation. If the quotation ends with `""`, a `"`
   is produced at the end of the quoted string.

Examples, with [] around an argument:
        "foo"           -> [foo]
        "foo""          -> [foo"]
        "foo"bar        -> [foobar]
        "foo" bar       -> [foo], [bar]
        "foo""bar       -> [foo"bar]
        "foo"" bar      -> [foo"], [bar]
        "foo"""bar"     -> [foo"bar]


==============================================================================
3. Restore screen contents				*win32-restore*

When 'restorescreen' is set (which is the default), Vim will restore the
original contents of the console when exiting or when executing external
commands.  If you don't want this, use ":set nors".	|'restorescreen'|

==============================================================================
4. Using the mouse					*win32-mouse*

The Win32 version of Vim supports using the mouse.  If you have a two-button
mouse, the middle button can be emulated by pressing both left and right
buttons simultaneously - but note that in the Win32 GUI, if you have the right
mouse button pop-up menu enabled (see 'mouse'), you should err on the side of
pressing the left button first.				|mouse-using|

When the mouse doesn't work, try disabling the "Quick Edit Mode" feature of
the console.

==============================================================================
5. Running under Windows 95				*win32-win95*
					*windows95* *windows98* *windowsme*
Windows 95/98/ME support was removed in patch 8.0.0029  If you want to use it
you will need to get a version older than that.

==============================================================================
6. Running under Windows 3.1				*win32-win3.1*

					*win32s* *windows-3.1* *gui-w32s*
There was a special version of gvim that runs under Windows 3.1 and 3.11.
Support was removed in patch 7.4.1363.

==============================================================================
7. Win32 mini FAQ					*win32-faq*

Q. How do I change the font?
A. In the GUI version, you can use the 'guifont' option.  Example: >
	:set guifont=Lucida_Console:h15:cDEFAULT
<  In the console version, you need to set the font of the console itself.
   You cannot do this from within Vim.

Q. How do I type dead keys on Windows NT?
A. Dead keys work on NT 3.51.  Just type them as you would in any other
   application.
   On NT 4.0, you need to make sure that the default locale (set in the
   Keyboard part of the Control Panel) is the same as the currently active
   locale.  Otherwise the NT code will get confused and crash!  This is a NT
   4.0 problem, not really a Vim problem.

Q. I'm using Vim to edit a symbolically linked file on a Unix NFS file server.
   When I write the file, Vim does not "write through" the symlink.  Instead,
   it deletes the symbolic link and creates a new file in its place.  Why?
A. On Unix, Vim is prepared for links (symbolic or hard).  A backup copy of
   the original file is made and then the original file is overwritten.  This
   assures that all properties of the file remain the same.  On non-Unix
   systems, the original file is renamed and a new file is written.  Only the
   protection bits are set like the original file.  However, this doesn't work
   properly when working on an NFS-mounted file system where links and other
   things exist.  The only way to fix this in the current version is not
   making a backup file, by ":set nobackup nowritebackup"     |'writebackup'|

Q. I'm using Vim to edit a file on a Unix file server through Samba.  When I
   write the file, the owner of the file is changed.  Why?
A. When writing a file Vim renames the original file, this is a backup (in
   case writing the file fails halfway).  Then the file is written as a new
   file.  Samba then gives it the default owner for the file system, which may
   differ from the original owner.
   To avoid this set the 'backupcopy' option to "yes".  Vim will then make a
   copy of the file for the backup, and overwrite the original file.  The
   owner isn't changed then.

Q. How do I get to see the output of ":make" while it's running?
A. Basically what you need is to put a tee program that will copy its input
   (the output from make) to both stdout and to the errorfile.  You can find a
   copy of tee (and a number of other GNU tools) at
   http://gnuwin32.sourceforge.net or http://unxutils.sourceforge.net
   Alternatively, try the more recent Cygnus version of the GNU tools at
   http://www.cygwin.com  Other Unix-style tools for Win32 are listed at
   http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Win32/
   When you do get a copy of tee, you'll need to add >
	:set shellpipe=\|\ tee
<  to your _vimrc.

Q. I'm storing files on a remote machine that works with VisionFS, and files
   disappear!
A. VisionFS can't handle certain dot (.) three letter extension file names.
   SCO declares this behavior required for backwards compatibility with 16bit
   DOS/Windows environments.  The two commands below demonstrate the behavior:
>
	echo Hello > file.bat~ 
	dir > file.bat
<
   The result is that the "dir" command updates the "file.bat~" file, instead
   of creating a new "file.bat" file.  This same behavior is exhibited in Vim
   when editing an existing file named "foo.bat" because the default behavior
   of Vim is to create a temporary file with a '~' character appended to the
   name.  When the file is written, it winds up being deleted.

   Solution: Add this command to your _vimrc file: >
	:set backupext=.temporary

Q. How do I change the blink rate of the cursor?
A. You can't!  This is a limitation of the NT console.  NT 5.0 is reported to
   be able to set the blink rate for all console windows at the same time.

							*:!start*
Q. How can I asynchronously run an external command or program, or open a
   document or URL with its default program?
A. When using :! to run an external command, you can run it with "start". For
   example, to run notepad: >
	:!start notepad
<   To open "image.jpg" with the default image viewer: >
        :!start image.jpg
<   To open the folder of the current file in Windows Explorer: >
        :!start %:h
<   To open the Vim home page with the default browser: >
        :!start http://www.vim.org/
<
   Using "start" stops Vim switching to another screen, opening a new console,
   or waiting for the program to complete; it indicates that you are running a
   program that does not affect the files you are editing.  Programs begun
   with :!start do not get passed Vim's open file handles, which means they do
   not have to be closed before Vim.
   To avoid this special treatment, use ":! start".
   There are two optional arguments (see the next Q):
       /min  the window will be minimized
       /b    no console window will be opened
   You can use only one of these flags at a time.  A second one will be
   treated as the start of the command.

Q. How do I avoid getting a window for programs that I run asynchronously?
A. You have two possible solutions depending on what you want:
   1) You may use the /min flag in order to run program in a minimized state
      with no other changes. It will work equally for console and GUI
      applications.
   2) You can use the /b flag to run console applications without creating a
      console window for them (GUI applications are not affected). But you
      should use this flag only if the application you run doesn't require any
      input.  Otherwise it will get an EOF error because its input stream
      (stdin) would be redirected to \\.\NUL (stdout and stderr too).

   Example for a console application, run Exuberant ctags: >
        :!start /min ctags -R .
<  When it has finished you should see file named "tags" in your current
   directory.  You should notice the window title blinking on your taskbar.
   This is more noticeable for commands that take longer.
   Now delete the "tags" file and run this command: >
        :!start /b ctags -R .
<  You should have the same "tags" file, but this time there will be no
   blinking on the taskbar.
   Example for a GUI application: >
        :!start /min notepad
        :!start /b notepad
<  The first command runs notepad minimized and the second one runs it
   normally.

						*windows-icon*
Q. I don't like the Vim icon, can I change it?
A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of
   'runtimepath'.  For example ~/vimfiles/bitmaps/vim.ico.


 vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
PK�j�Z����q�qvim80/doc/usr_10.txtnu�[���*usr_10.txt*	For Vim version 8.0.  Last change: 2006 Nov 05

		     VIM USER MANUAL - by Bram Moolenaar

			     Making big changes


In chapter 4 several ways to make small changes were explained.  This chapter
goes into making changes that are repeated or can affect a large amount of
text.  The Visual mode allows doing various things with blocks of text.  Use
an external program to do really complicated things.

|10.1|	Record and playback commands
|10.2|	Substitution
|10.3|	Command ranges
|10.4|	The global command
|10.5|	Visual block mode
|10.6|	Reading and writing part of a file
|10.7|	Formatting text
|10.8|	Changing case
|10.9|	Using an external program

     Next chapter: |usr_11.txt|  Recovering from a crash
 Previous chapter: |usr_09.txt|  Using the GUI
Table of contents: |usr_toc.txt|

==============================================================================
*10.1*	Record and playback commands

The "." command repeats the preceding change.  But what if you want to do
something more complex than a single change?  That's where command recording
comes in.  There are three steps:

1. The "q{register}" command starts recording keystrokes into the register
   named {register}.  The register name must be between a and z.
2. Type your commands.
3. To finish recording, press q (without any extra character).

You can now execute the macro by typing the command "@{register}".

Take a look at how to use these commands in practice.  You have a list of
filenames that look like this:

	stdio.h ~
	fcntl.h ~
	unistd.h ~
	stdlib.h ~

And what you want is the following:

	#include "stdio.h" ~
	#include "fcntl.h" ~
	#include "unistd.h" ~
	#include "stdlib.h" ~

You start by moving to the first character of the first line.  Next you
execute the following commands:

	qa			Start recording a macro in register a.
	^			Move to the beginning of the line.
	i#include "<Esc>	Insert the string #include " at the beginning
				of the line.
	$			Move to the end of the line.
	a"<Esc>			Append the character double quotation mark (")
				to the end of the line.
	j			Go to the next line.
	q			Stop recording the macro.

Now that you have done the work once, you can repeat the change by typing the
command "@a" three times.
   The "@a" command can be preceded by a count, which will cause the macro to
be executed that number of times.  In this case you would type: >

	3@a


MOVE AND EXECUTE

You might have the lines you want to change in various places.  Just move the
cursor to each location and use the "@a" command.  If you have done that once,
you can do it again with "@@".  That's a bit easier to type.  If you now
execute register b with "@b", the next "@@" will use register b.
   If you compare the playback method with using ".", there are several
differences.  First of all, "." can only repeat one change.  As seen in the
example above, "@a" can do several changes, and move around as well.
Secondly, "." can only remember the last change.  Executing a register allows
you to make any changes and then still use "@a" to replay the recorded
commands.  Finally, you can use 26 different registers.  Thus you can remember
26 different command sequences to execute.


USING REGISTERS

The registers used for recording are the same ones you used for yank and
delete commands.  This allows you to mix recording with other commands to
manipulate the registers.
   Suppose you have recorded a few commands in register n.  When you execute
this with "@n" you notice you did something wrong.  You could try recording
again, but perhaps you will make another mistake.  Instead, use this trick:

	G			Go to the end of the file.
	o<Esc>			Create an empty line.
	"np			Put the text from the n register.  You now see
				the commands you typed as text in the file.
	{edits}			Change the commands that were wrong.  This is
				just like editing text.
	0			Go to the start of the line.
	"ny$			Yank the corrected commands into the n
				register.
	dd			Delete the scratch line.

Now you can execute the corrected commands with "@n".  (If your recorded
commands include line breaks, adjust the last two items in the example to
include all the lines.)


APPENDING TO A REGISTER

So far we have used a lowercase letter for the register name.  To append to a
register, use an uppercase letter.
   Suppose you have recorded a command to change a word to register c.  It
works properly, but you would like to add a search for the next word to
change.  This can be done with: >

	qC/word<Enter>q

You start with "qC", which records to the c register and appends.  Thus
writing to an uppercase register name means to append to the register with
the same letter, but lowercase.

This works both with recording and with yank and delete commands.  For
example, you want to collect a sequence of lines into the a register.  Yank
the first line with: >

	"aY

Now move to the second line, and type: >

	"AY

Repeat this command for all lines.  The a register now contains all those
lines, in the order you yanked them.

==============================================================================
*10.2*	Substitution						*find-replace*

The ":substitute" command enables you to perform string replacements on a
whole range of lines.  The general form of this command is as follows: >

	:[range]substitute/from/to/[flags]

This command changes the "from" string to the "to" string in the lines
specified with [range].  For example, you can change "Professor" to "Teacher"
in all lines with the following command: >

	:%substitute/Professor/Teacher/
<
	Note:
	The ":substitute" command is almost never spelled out completely.
	Most of the time, people use the abbreviated version ":s".  From here
	on the abbreviation will be used.

The "%" before the command specifies the command works on all lines.  Without
a range, ":s" only works on the current line.  More about ranges in the next
section |10.3|.

By default, the ":substitute" command changes only the first occurrence on
each line.  For example, the preceding command changes the line:

	Professor Smith criticized Professor Johnson today. ~

to:

	Teacher Smith criticized Professor Johnson today. ~

To change every occurrence on the line, you need to add the g (global) flag.
The command: >

	:%s/Professor/Teacher/g

results in (starting with the original line):

	Teacher Smith criticized Teacher Johnson today. ~

Other flags include p (print), which causes the ":substitute" command to print
out the last line it changes.  The c (confirm) flag tells ":substitute" to ask
you for confirmation before it performs each substitution.  Enter the
following: >

	:%s/Professor/Teacher/c

Vim finds the first occurrence of "Professor" and displays the text it is
about to change.  You get the following prompt: >

	replace with Teacher (y/n/a/q/l/^E/^Y)?

At this point, you must enter one of the following answers:

	y		Yes; make this change.
	n		No; skip this match.
	a		All; make this change and all remaining ones without
			further confirmation.
	q		Quit; don't make any more changes.
	l		Last; make this change and then quit.
	CTRL-E		Scroll the text one line up.
	CTRL-Y		Scroll the text one line down.


The "from" part of the substitute command is actually a pattern.  The same
kind as used for the search command.  For example, this command only
substitutes "the" when it appears at the start of a line: >

	:s/^the/these/

If you are substituting with a "from" or "to" part that includes a slash, you
need to put a backslash before it.  A simpler way is to use another character
instead of the slash.  A plus, for example: >

	:s+one/two+one or two+

==============================================================================
*10.3*	Command ranges

The ":substitute" command, and many other : commands, can be applied to a
selection of lines.  This is called a range.
   The simple form of a range is {number},{number}.  For example: >

	:1,5s/this/that/g

Executes the substitute command on the lines 1 to 5.  Line 5 is included.
The range is always placed before the command.

A single number can be used to address one specific line: >

	:54s/President/Fool/

Some commands work on the whole file when you do not specify a range.  To make
them work on the current line the "." address is used.  The ":write" command
works like that.  Without a range, it writes the whole file.  To make it write
only the current line into a file: >

	:.write otherfile

The first line always has number one.  How about the last line?  The "$"
character is used for this.  For example, to substitute in the lines from the
cursor to the end: >

	:.,$s/yes/no/

The "%" range that we used before, is actually a short way to say "1,$", from
the first to the last line.


USING A PATTERN IN A RANGE

Suppose you are editing a chapter in a book, and want to replace all
occurrences of "grey" with "gray".  But only in this chapter, not in the next
one.  You know that only chapter boundaries have the word "Chapter" in the
first column.  This command will work then: >

	:?^Chapter?,/^Chapter/s=grey=gray=g

You can see a search pattern is used twice.  The first "?^Chapter?" finds the
line above the current position that matches this pattern.  Thus the ?pattern?
range is used to search backwards.  Similarly, "/^Chapter/" is used to search
forward for the start of the next chapter.
   To avoid confusion with the slashes, the "=" character was used in the
substitute command here.  A slash or another character would have worked as
well.


ADD AND SUBTRACT

There is a slight error in the above command: If the title of the next chapter
had included "grey" it would be replaced as well.  Maybe that's what you
wanted, but what if you didn't?  Then you can specify an offset.
   To search for a pattern and then use the line above it: >

	/Chapter/-1

You can use any number instead of the 1.  To address the second line below the
match: >

	/Chapter/+2

The offsets can also be used with the other items in a range.  Look at this
one: >

	:.+3,$-5

This specifies the range that starts three lines below the cursor and ends
five lines before the last line in the file.


USING MARKS

Instead of figuring out the line numbers of certain positions, remembering them
and typing them in a range, you can use marks.
   Place the marks as mentioned in chapter 3.  For example, use "mt" to mark
the top of an area and "mb" to mark the bottom.  Then you can use this range
to specify the lines between the marks (including the lines with the marks): >

	:'t,'b


VISUAL MODE AND RANGES

You can select text with Visual mode.  If you then press ":" to start a colon
command, you will see this: >

	:'<,'>

Now you can type the command and it will be applied to the range of lines that
was visually selected.

	Note:
	When using Visual mode to select part of a line, or using CTRL-V to
	select a block of text, the colon commands will still apply to whole
	lines.  This might change in a future version of Vim.

The '< and '> are actually marks, placed at the start and end of the Visual
selection.  The marks remain at their position until another Visual selection
is made.  Thus you can use the "'<" command to jump to position where the
Visual area started.  And you can mix the marks with other items: >

	:'>,$

This addresses the lines from the end of the Visual area to the end of the
file.


A NUMBER OF LINES

When you know how many lines you want to change, you can type the number and
then ":".  For example, when you type "5:", you will get: >

	:.,.+4

Now you can type the command you want to use.  It will use the range "."
(current line) until ".+4" (four lines down).  Thus it spans five lines.

==============================================================================
*10.4*	The global command

The ":global" command is one of the more powerful features of Vim.  It allows
you to find a match for a pattern and execute a command there.  The general
form is: >

	:[range]global/{pattern}/{command}

This is similar to the ":substitute" command.  But, instead of replacing the
matched text with other text, the command {command} is executed.

	Note:
	The command executed for ":global" must be one that starts with a
	colon.  Normal mode commands can not be used directly.  The |:normal|
	command can do this for you.

Suppose you want to change "foobar" to "barfoo", but only in C++ style
comments.  These comments start with "//".  Use this command: >

	:g+//+s/foobar/barfoo/g

This starts with ":g".  That is short for ":global", just like ":s" is short
for ":substitute".  Then the pattern, enclosed in plus characters.  Since the
pattern we are looking for contains a slash, this uses the plus character to
separate the pattern.  Next comes the substitute command that changes "foobar"
into "barfoo".
   The default range for the global command is the whole file.  Thus no range
was specified in this example.  This is different from ":substitute", which
works on one line without a range.
   The command isn't perfect, since it also matches lines where "//" appears
halfway a line, and the substitution will also take place before the "//".

Just like with ":substitute", any pattern can be used.  When you learn more
complicated patterns later, you can use them here.

==============================================================================
*10.5*	Visual block mode

With CTRL-V you can start selection of a rectangular area of text.  There are
a few commands that do something special with the text block.

There is something special about using the "$" command in Visual block mode.
When the last motion command used was "$", all lines in the Visual selection
will extend until the end of the line, also when the line with the cursor is
shorter.  This remains effective until you use a motion command that moves the
cursor horizontally.  Thus using "j" keeps it, "h" stops it.


INSERTING TEXT

The command  "I{string}<Esc>" inserts the text {string} in each line, just
left of the visual block.  You start by pressing CTRL-V to enter visual block
mode.  Now you move the cursor to define your block.  Next you type I to enter
Insert mode, followed by the text to insert.  As you type, the text appears on
the first line only.
   After you press <Esc> to end the insert, the text will magically be
inserted in the rest of the lines contained in the visual selection.  Example:

	include one ~
	include two ~
	include three ~
	include four ~

Move the cursor to the "o" of "one" and press CTRL-V.  Move it down with "3j"
to "four".  You now have a block selection that spans four lines.  Now type: >

	Imain.<Esc>

The result:

	include main.one ~
	include main.two ~
	include main.three ~
	include main.four ~

If the block spans short lines that do not extend into the block, the text is
not inserted in that line.  For example, make a Visual block selection that
includes the word "long" in the first and last line of this text, and thus has
no text selected in the second line:

	This is a long line ~
	short ~
	Any other long line ~

		  ^^^^ selected block

Now use the command "Ivery <Esc>".  The result is:

	This is a very long line ~
	short ~
	Any other very long line ~

In the short line no text was inserted.

If the string you insert contains a newline, the "I" acts just like a Normal
insert command and affects only the first line of the block.

The "A" command works the same way, except that it appends after the right
side of the block.  And it does insert text in a short line.  Thus you can
make a choice whether you do or don't want to append text to a short line.
   There is one special case for "A": Select a Visual block and then use "$"
to make the block extend to the end of each line.  Using "A" now will append
the text to the end of each line.
   Using the same example from above, and then typing "$A XXX<Esc>, you get
this result:

	This is a long line XXX ~
	short XXX ~
	Any other long line XXX ~

This really requires using the "$" command.  Vim remembers that it was used.
Making the same selection by moving the cursor to the end of the longest line
with other movement commands will not have the same result.


CHANGING TEXT

The Visual block "c" command deletes the block and then throws you into Insert
mode to enable you to type in a string.  The string will be inserted in each
line in the block.
   Starting with the same selection of the "long" words as above, then typing
"c_LONG_<Esc>", you get this:

	This is a _LONG_ line ~
	short ~
	Any other _LONG_ line ~

Just like with "I" the short line is not changed.  Also, you can't enter a
newline in the new text.

The "C" command deletes text from the left edge of the block to the end of
line.  It then puts you in Insert mode so that you can type in a string,
which is added to the end of each line.
   Starting with the same text again, and typing "Cnew text<Esc>" you get:

	This is a new text ~
	short ~
	Any other new text ~

Notice that, even though only the "long" word was selected, the text after it
is deleted as well.  Thus only the location of the left edge of the visual
block really matters.
   Again, short lines that do not reach into the block are excluded.

Other commands that change the characters in the block:

	~	swap case	(a -> A and A -> a)
	U	make uppercase  (a -> A and A -> A)
	u	make lowercase  (a -> a and A -> a)


FILLING WITH A CHARACTER

To fill the whole block with one character, use the "r" command.  Again,
starting with the same example text from above, and then typing "rx":

	This is a xxxx line ~
	short ~
	Any other xxxx line ~


	Note:
	If you want to include characters beyond the end of the line in the
	block, check out the 'virtualedit' feature in chapter 25.


SHIFTING

The command ">" shifts the selected text to the right one shift amount,
inserting whitespace.  The starting point for this shift is the left edge of
the visual block.
   With the same example again, ">" gives this result:

	This is a	  long line ~
	short ~
	Any other	  long line ~

The shift amount is specified with the 'shiftwidth' option.  To change it to
use 4 spaces: >

	:set shiftwidth=4

The "<" command removes one shift amount of whitespace at the left
edge of the block.  This command is limited by the amount of text that is
there; so if there is less than a shift amount of whitespace available, it
removes what it can.


JOINING LINES

The "J" command joins all selected lines together into one line.  Thus it
removes the line breaks.  Actually, the line break, leading white space and
trailing white space is replaced by one space.  Two spaces are used after a
line ending (that can be changed with the 'joinspaces' option).
   Let's use the example that we got so familiar with now.  The result of
using the "J" command:

	This is a long line short Any other long line ~

The "J" command doesn't require a blockwise selection.  It works with "v" and
"V" selection in exactly the same way.

If you don't want the white space to be changed, use the "gJ" command.

==============================================================================
*10.6*	Reading and writing part of a file

When you are writing an e-mail message, you may want to include another file.
This can be done with the ":read {filename}" command.  The text of the file is
put below the cursor line.
   Starting with this text:

	Hi John, ~
	Here is the diff that fixes the bug: ~
	Bye, Pierre. ~

Move the cursor to the second line and type: >

	:read patch

The file named "patch" will be inserted, with this result:

	Hi John, ~
	Here is the diff that fixes the bug: ~
	2c2 ~
	<	for (i = 0; i <= length; ++i) ~
	--- ~
	>	for (i = 0; i < length; ++i) ~
	Bye, Pierre. ~

The ":read" command accepts a range.  The file will be put below the last line
number of this range.  Thus ":$r patch" appends the file "patch" at the end of
the file.
   What if you want to read the file above the first line?  This can be done
with the line number zero.  This line doesn't really exist, you will get an
error message when using it with most commands.  But this command is allowed:
>
	:0read patch

The file "patch" will be put above the first line of the file.


WRITING A RANGE OF LINES

To write a range of lines to a file, the ":write" command can be used.
Without a range it writes the whole file.  With a range only the specified
lines are written: >

	:.,$write tempo

This writes the lines from the cursor until the end of the file into the file
"tempo".  If this file already exists you will get an error message.  Vim
protects you from accidentally overwriting an existing file.  If you know what
you are doing and want to overwrite the file, append !: >

	:.,$write! tempo

CAREFUL: The ! must follow the ":write" command immediately, without white
space.  Otherwise it becomes a filter command, which is explained later in
this chapter.


APPENDING TO A FILE

In the first section of this chapter was explained how to collect a number of
lines into a register.  The same can be done to collect lines in a file.
Write the first line with this command: >

	:.write collection

Now move the cursor to the second line you want to collect, and type this: >

	:.write >>collection

The ">>" tells Vim the "collection" file is not to be written as a new file,
but the line must be appended at the end.   You can repeat this as many times
as you like.

==============================================================================
*10.7*	Formatting text

When you are typing plain text, it's nice if the length of each line is
automatically trimmed to fit in the window.  To make this happen while
inserting text, set the 'textwidth' option: >

	:set textwidth=72

You might remember that in the example vimrc file this command was used for
every text file.  Thus if you are using that vimrc file, you were already
using it.  To check the current value of 'textwidth': >

	:set textwidth

Now lines will be broken to take only up to 72 characters.  But when you
insert text halfway a line, or when you delete a few words, the lines will get
too long or too short.  Vim doesn't automatically reformat the text.
   To tell Vim to format the current paragraph: >

	gqap

This starts with the "gq" command, which is an operator.  Following is "ap",
the text object that stands for "a paragraph".  A paragraph is separated from
the next paragraph by an empty line.

	Note:
	A blank line, which contains white space, does NOT separate
	paragraphs.  This is hard to notice!

Instead of "ap" you could use any motion or text object.  If your paragraphs
are properly separated, you can use this command to format the whole file: >

	gggqG

"gg" takes you to the first line, "gq" is the format operator and "G" the
motion that jumps to the last line.

In case your paragraphs aren't clearly defined, you can format just the lines
you manually select.  Move the cursor to the first line you want to format.
Start with the command "gqj".  This formats the current line and the one below
it.  If the first line was short, words from the next line will be appended.
If it was too long, words will be moved to the next line.  The cursor moves to
the second line.  Now you can use "." to repeat the command.  Keep doing this
until you are at the end of the text you want to format.

==============================================================================
*10.8*	Changing case

You have text with section headers in lowercase.  You want to make the word
"section" all uppercase.  Do this with the "gU" operator.  Start with the
cursor in the first column: >

			     gUw
<	section header	    ---->      SECTION header

The "gu" operator does exactly the opposite: >

			     guw
<	SECTION header	    ---->      section header

You can also use "g~" to swap case.  All these are operators, thus they work
with any motion command, with text objects and in Visual mode.
   To make an operator work on lines you double it.  The delete operator is
"d", thus to delete a line you use "dd".  Similarly, "gugu" makes a whole line
lowercase.  This can be shortened to "guu".  "gUgU" is shortened to "gUU" and
"g~g~" to "g~~".  Example: >

				g~~ 
<	Some GIRLS have Fun    ---->   sOME girls HAVE fUN ~

==============================================================================
*10.9*	Using an external program

Vim has a very powerful set of commands, it can do anything.  But there may
still be something that an external command can do better or faster.
   The command "!{motion}{program}" takes a block of text and filters it
through an external program.  In other words, it runs the system command
represented by {program}, giving it the block of text represented by {motion}
as input.  The output of this command then replaces the selected block.
   Because this summarizes badly if you are unfamiliar with UNIX filters, take
a look at an example.  The sort command sorts a file.  If you execute the
following command, the unsorted file input.txt will be sorted and written to
output.txt.  (This works on both UNIX and Microsoft Windows.) >

	sort <input.txt >output.txt

Now do the same thing in Vim.  You want to sort lines 1 through 5 of a file.
You start by putting the cursor on line 1.  Next you execute the following
command: >

	!5G

The "!" tells Vim that you are performing a filter operation.  The Vim editor
expects a motion command to follow, indicating which part of the file to
filter.  The "5G" command tells Vim to go to line 5, so it now knows that it
is to filter lines 1 (the current line) through 5.
   In anticipation of the filtering, the cursor drops to the bottom of the
screen and a ! prompt displays.  You can now type in the name of the filter
program, in this case "sort".  Therefore, your full command is as follows: >

	!5Gsort<Enter>

The result is that the sort program is run on the first 5 lines.  The output
of the program replaces these lines.

	line 55			      line 11
	line 33			      line 22
	line 11		-->	      line 33
	line 22			      line 44
	line 44			      line 55
	last line		      last line

The "!!" command filters the current line through a filter.  In Unix the "date"
command prints the current time and date.  "!!date<Enter>" replaces the current
line with the output of "date".  This is useful to add a timestamp to a file.


WHEN IT DOESN'T WORK

Starting a shell, sending it text and capturing the output requires that Vim
knows how the shell works exactly.  When you have problems with filtering,
check the values of these options:

	'shell'		specifies the program that Vim uses to execute
			external programs.
	'shellcmdflag'	argument to pass a command to the shell
	'shellquote'	quote to be used around the command
	'shellxquote'	quote to be used around the command and redirection
	'shelltype'	kind of shell (only for the Amiga)
	'shellslash'	use forward slashes in the command (only for
			MS-Windows and alikes)
	'shellredir'	string used to write the command output into a file

On Unix this is hardly ever a problem, because there are two kinds of shells:
"sh" like and "csh" like.  Vim checks the 'shell' option and sets related
options automatically, depending on whether it sees "csh" somewhere in
'shell'.
   On MS-Windows, however, there are many different shells and you might have
to tune the options to make filtering work.  Check the help for the options
for more information.


READING COMMAND OUTPUT

To read the contents of the current directory into the file, use this:

on Unix: >
	:read !ls
on MS-Windows: >
	:read !dir

The output of the "ls" or "dir" command is captured and inserted in the text,
below the cursor.  This is similar to reading a file, except that the "!" is
used to tell Vim that a command follows.
   The command may have arguments.  And a range can be used to tell where Vim
should put the lines: >

	:0read !date -u

This inserts the current time and date in UTC format at the top of the file.
(Well, if you have a date command that accepts the "-u" argument.)  Note the
difference with using "!!date": that replaced a line, while ":read !date" will
insert a line.


WRITING TEXT TO A COMMAND

The Unix command "wc" counts words.  To count the words in the current file: >

	:write !wc

This is the same write command as before, but instead of a file name the "!"
character is used and the name of an external command.  The written text will
be passed to the specified command as its standard input.  The output could
look like this:

       4      47     249 ~

The "wc" command isn't verbose.  This means you have 4 lines, 47 words and 249
characters.

Watch out for this mistake: >

	:write! wc

This will write the file "wc" in the current directory, with force.  White
space is important here!


REDRAWING THE SCREEN

If the external command produced an error message, the display may have been
messed up.  Vim is very efficient and only redraws those parts of the screen
that it knows need redrawing.  But it can't know about what another program
has written.  To tell Vim to redraw the screen: >

	CTRL-L

==============================================================================

Next chapter: |usr_11.txt|  Recovering from a crash

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�t��XXvim80/doc/quickref.txtnu�[���*quickref.txt*  For Vim version 8.0.  Last change: 2018 Apr 18


		  VIM REFERENCE MANUAL    by Bram Moolenaar

			    Quick reference guide

							 *quickref* *Contents*
 tag	  subject			 tag	  subject	~
|Q_ct|	list of help files		|Q_re|	Repeating commands
|Q_lr|	motion: Left-right		|Q_km|	Key mapping
|Q_ud|	motion: Up-down			|Q_ab|	Abbreviations
|Q_tm|	motion: Text object		|Q_op|	Options
|Q_pa|	motion: Pattern searches	|Q_ur|	Undo/Redo commands
|Q_ma|	motion: Marks			|Q_et|	External commands
|Q_vm|	motion: Various			|Q_qf|	Quickfix commands
|Q_ta|	motion: Using tags		|Q_vc|	Various commands
|Q_sc|	Scrolling			|Q_ce|	Ex: Command-line editing
|Q_in|	insert: Inserting text		|Q_ra|	Ex: Ranges
|Q_ai|	insert: Keys			|Q_ex|	Ex: Special characters
|Q_ss|	insert: Special keys		|Q_st|	Starting Vim
|Q_di|	insert: Digraphs		|Q_ed|	Editing a file
|Q_si|	insert: Special inserts		|Q_fl|	Using the argument list
|Q_de|	change: Deleting text		|Q_wq|	Writing and quitting
|Q_cm|	change: Copying and moving	|Q_ac|	Automatic commands
|Q_ch|	change: Changing text		|Q_wi|	Multi-window commands
|Q_co|	change: Complex			|Q_bu|	Buffer list commands
|Q_vi|	Visual mode			|Q_sy|	Syntax highlighting
|Q_to|	Text objects			|Q_gu|	GUI commands
					|Q_fo|	Folding

------------------------------------------------------------------------------
N is used to indicate an optional count that can be given before the command.
------------------------------------------------------------------------------
*Q_lr*		Left-right motions

|h|	N  h		left (also: CTRL-H, <BS>, or <Left> key)
|l|	N  l		right (also: <Space> or <Right> key)
|0|	   0		to first character in the line (also: <Home> key)
|^|	   ^		to first non-blank character in the line
|$|	N  $		to the last character in the line (N-1 lines lower)
			   (also: <End> key)
|g0|	   g0		to first character in screen line (differs from "0"
			   when lines wrap)
|g^|	   g^		to first non-blank character in screen line (differs
			   from "^" when lines wrap)
|g$|	N  g$		to last character in screen line (differs from "$"
			   when lines wrap)
|gm|	   gm		to middle of the screen line
|bar|	N  |		to column N (default: 1)
|f|	N  f{char}	to the Nth occurrence of {char} to the right
|F|	N  F{char}	to the Nth occurrence of {char} to the left
|t|	N  t{char}	till before the Nth occurrence of {char} to the right
|T|	N  T{char}	till before the Nth occurrence of {char} to the left
|;|	N  ;		repeat the last "f", "F", "t", or "T" N times
|,|	N  ,		repeat the last "f", "F", "t", or "T" N times in
			   opposite direction
------------------------------------------------------------------------------
*Q_ud*		Up-down motions

|k|	N  k		up N lines (also: CTRL-P and <Up>)
|j|	N  j		down N lines (also: CTRL-J, CTRL-N, <NL>, and <Down>)
|-|	N  -		up N lines, on the first non-blank character
|+|	N  +		down N lines, on the first non-blank character (also:
			   CTRL-M and <CR>)
|_|	N  _		down N-1 lines, on the first non-blank character
|G|	N  G		goto line N (default: last line), on the first
			   non-blank character
|gg|	N  gg		goto line N (default: first line), on the first
			   non-blank character
|N%|	N  %		goto line N percentage down in the file; N must be
			   given, otherwise it is the |%| command
|gk|	N  gk		up N screen lines (differs from "k" when line wraps)
|gj|	N  gj		down N screen lines (differs from "j" when line wraps)
------------------------------------------------------------------------------
*Q_tm*		Text object motions

|w|	N  w		N words forward
|W|	N  W		N blank-separated |WORD|s forward
|e|	N  e		forward to the end of the Nth word
|E|	N  E		forward to the end of the Nth blank-separated |WORD|
|b|	N  b		N words backward
|B|	N  B		N blank-separated |WORD|s backward
|ge|	N  ge		backward to the end of the Nth word
|gE|	N  gE		backward to the end of the Nth blank-separated |WORD|

|)|	N  )		N sentences forward
|(|	N  (		N sentences backward
|}|	N  }		N paragraphs forward
|{|	N  {		N paragraphs backward
|]]|	N  ]]		N sections forward, at start of section
|[[|	N  [[		N sections backward, at start of section
|][|	N  ][		N sections forward, at end of section
|[]|	N  []		N sections backward, at end of section
|[(|	N  [(		N times back to unclosed '('
|[{|	N  [{		N times back to unclosed '{'
|[m|	N  [m		N times back to start of method (for Java)
|[M|	N  [M		N times back to end of method (for Java)
|])|	N  ])		N times forward to unclosed ')'
|]}|	N  ]}		N times forward to unclosed '}'
|]m|	N  ]m		N times forward to start of method (for Java)
|]M|	N  ]M		N times forward to end of method (for Java)
|[#|	N  [#		N times back to unclosed "#if" or "#else"
|]#|	N  ]#		N times forward to unclosed "#else" or "#endif"
|[star|	N  [*		N times back to start of comment "/*"
|]star|	N  ]*		N times forward to end of comment "*/"
------------------------------------------------------------------------------
*Q_pa*		Pattern searches

|/|	N  /{pattern}[/[offset]]<CR>
			search forward for the Nth occurrence of {pattern}
|?|	N  ?{pattern}[?[offset]]<CR>
			search backward for the Nth occurrence of {pattern}
|/<CR>|	N  /<CR>	repeat last search, in the forward direction
|?<CR>|	N  ?<CR>	repeat last search, in the backward direction
|n|	N  n		repeat last search
|N|	N  N		repeat last search, in opposite direction
|star|	N  *		search forward for the identifier under the cursor
|#|	N  #		search backward for the identifier under the cursor
|gstar|	N  g*		like "*", but also find partial matches
|g#|	N  g#		like "#", but also find partial matches
|gd|	   gd		goto local declaration of identifier under the cursor
|gD|	   gD		goto global declaration of identifier under the cursor

|pattern|		Special characters in search patterns

			meaning		      magic   nomagic	~
		matches any single character	.	\.
		       matches start of line	^	^
			       matches <EOL>	$	$
		       matches start of word	\<	\<
			 matches end of word	\>	\>
	matches a single char from the range	[a-z]	\[a-z]
      matches a single char not in the range	[^a-z]	\[^a-z]
		  matches an identifier char	\i	\i
		   idem but excluding digits	\I	\I
		 matches a keyword character	\k	\k
		   idem but excluding digits	\K	\K
	       matches a file name character	\f	\f
		   idem but excluding digits	\F	\F
	       matches a printable character	\p	\p
		   idem but excluding digits	\P	\P
	     matches a white space character	\s	\s
	 matches a non-white space character	\S	\S

			       matches <Esc>	\e	\e
			       matches <Tab>	\t	\t
				matches <CR>	\r	\r
				matches <BS>	\b	\b

     matches 0 or more of the preceding atom	*	\*
     matches 1 or more of the preceding atom	\+	\+
	matches 0 or 1 of the preceding atom	\=	\=
	matches 2 to 5 of the preceding atom	\{2,5}  \{2,5}
		  separates two alternatives	\|	\|
		group a pattern into an atom	\(\)	\(\)

|search-offset|		Offsets allowed after search command

    [num]	[num] lines downwards, in column 1
    +[num]	[num] lines downwards, in column 1
    -[num]	[num] lines upwards, in column 1
    e[+num]	[num] characters to the right of the end of the match
    e[-num]	[num] characters to the left of the end of the match
    s[+num]	[num] characters to the right of the start of the match
    s[-num]	[num] characters to the left of the start of the match
    b[+num]	[num] identical to s[+num] above (mnemonic: begin)
    b[-num]	[num] identical to s[-num] above (mnemonic: begin)
    ;{search-command}	execute {search-command} next
------------------------------------------------------------------------------
*Q_ma*		Marks and motions

|m|        m{a-zA-Z}	mark current position with mark {a-zA-Z}
|`a|       `{a-z}	go to mark {a-z} within current file
|`A|       `{A-Z}	go to mark {A-Z} in any file
|`0|       `{0-9}	go to the position where Vim was previously exited
|``|       ``		go to the position before the last jump
|`quote|   `"		go to the position when last editing this file
|`[|       `[		go to the start of the previously operated or put text
|`]|       `]		go to the end of the previously operated or put text
|`<|       `<		go to the start of the (previous) Visual area
|`>|       `>		go to the end of the (previous) Visual area
|`.|       `.		go to the position of the last change in this file
|'|        '{a-zA-Z0-9[]'"<>.}
			same as `, but on the first non-blank in the line
|:marks|  :marks	print the active marks
|CTRL-O|  N  CTRL-O	go to Nth older position in jump list
|CTRL-I|  N  CTRL-I	go to Nth newer position in jump list
|:ju|     :ju[mps]	print the jump list
------------------------------------------------------------------------------
*Q_vm*		Various motions

|%|	   %		find the next brace, bracket, comment, or "#if"/
			   "#else"/"#endif" in this line and go to its match
|H|	N  H		go to the Nth line in the window, on the first
			   non-blank
|M|	   M		go to the middle line in the window, on the first
			   non-blank
|L|	N  L		go to the Nth line from the bottom, on the first
			   non-blank

|go|	N  go			go to Nth byte in the buffer
|:go|	:[range]go[to] [off]	go to [off] byte in the buffer
------------------------------------------------------------------------------
*Q_ta*		Using tags

|:ta|      :ta[g][!] {tag}	jump to tag {tag}
|:ta|      :[count]ta[g][!]	jump to [count]'th newer tag in tag list
|CTRL-]|      CTRL-]		jump to the tag under cursor, unless changes
				   have been made
|:ts|      :ts[elect][!] [tag]	list matching tags and select one to jump to
|:tjump|   :tj[ump][!] [tag]	jump to tag [tag] or select from list when
				   there are multiple matches
|:ltag|    :lt[ag][!] [tag]	jump to tag [tag] and add matching tags to the
				   location list

|:tags|    :tags		print tag list
|CTRL-T|   N  CTRL-T		jump back from Nth older tag in tag list
|:po|      :[count]po[p][!]	jump back from [count]'th older tag in tag list
|:tnext|   :[count]tn[ext][!]	jump to [count]'th next matching tag
|:tp|      :[count]tp[revious][!] jump to [count]'th previous matching tag
|:tr|      :[count]tr[ewind][!]	jump to [count]'th matching tag
|:tl|      :tl[ast][!]		jump to last matching tag

|:ptag|    :pt[ag] {tag}	open a preview window to show tag {tag}
|CTRL-W_}|    CTRL-W }		like CTRL-] but show tag in preview window
|:pts|     :pts[elect]		like ":tselect" but show tag in preview window
|:ptjump|  :ptj[ump]		like ":tjump" but show tag in preview window
|:pclose|  :pc[lose]		close tag preview window
|CTRL-W_z|    CTRL-W z		close tag preview window
------------------------------------------------------------------------------
*Q_sc*		Scrolling

|CTRL-E|	N  CTRL-E	window N lines downwards (default: 1)
|CTRL-D|	N  CTRL-D	window N lines Downwards (default: 1/2 window)
|CTRL-F|	N  CTRL-F	window N pages Forwards (downwards)
|CTRL-Y|	N  CTRL-Y	window N lines upwards (default: 1)
|CTRL-U|	N  CTRL-U	window N lines Upwards (default: 1/2 window)
|CTRL-B|	N  CTRL-B	window N pages Backwards (upwards)
|z<CR>|		   z<CR> or zt	redraw, current line at top of window
|z.|		   z.	 or zz	redraw, current line at center of window
|z-|		   z-	 or zb	redraw, current line at bottom of window

These only work when 'wrap' is off:
|zh|		N  zh		scroll screen N characters to the right
|zl|		N  zl		scroll screen N characters to the left
|zH|		N  zH		scroll screen half a screenwidth to the right
|zL|		N  zL		scroll screen half a screenwidth to the left
------------------------------------------------------------------------------
*Q_in*		Inserting text

|a|	N  a	append text after the cursor (N times)
|A|	N  A	append text at the end of the line (N times)
|i|	N  i	insert text before the cursor (N times) (also: <Insert>)
|I|	N  I	insert text before the first non-blank in the line (N times)
|gI|	N  gI	insert text in column 1 (N times)
|o|	N  o	open a new line below the current line, append text (N times)
|O|	N  O	open a new line above the current line, append text (N times)
|:startinsert|  :star[tinsert][!]  start Insert mode, append when [!] used
|:startreplace| :startr[eplace][!]  start Replace mode, at EOL when [!] used

in Visual block mode:
|v_b_I|	   I	insert the same text in front of all the selected lines
|v_b_A|	   A	append the same text after all the selected lines
------------------------------------------------------------------------------
*Q_ai*		Insert mode keys

|insert-index|	alphabetical index of Insert mode commands

leaving Insert mode:
|i_<Esc>|	<Esc>		  end Insert mode, back to Normal mode
|i_CTRL-C|	CTRL-C		  like <Esc>, but do not use an abbreviation
|i_CTRL-O|	CTRL-O {command}  execute {command} and return to Insert mode

moving around:
|i_<Up>|	cursor keys	  move cursor left/right/up/down
|i_<S-Left>|	shift-left/right  one word left/right
|i_<S-Up>|	shift-up/down	  one screenful backward/forward
|i_<End>|	<End>		  cursor after last character in the line
|i_<Home>|	<Home>		  cursor to first character in the line
------------------------------------------------------------------------------
*Q_ss*		Special keys in Insert mode

|i_CTRL-V|	CTRL-V {char}..	  insert character literally, or enter decimal
				     byte value
|i_<NL>|	<NL> or <CR> or CTRL-M or CTRL-J
				  begin new line
|i_CTRL-E|	CTRL-E		  insert the character from below the cursor
|i_CTRL-Y|	CTRL-Y		  insert the character from above the cursor

|i_CTRL-A|	CTRL-A		  insert previously inserted text
|i_CTRL-@|	CTRL-@		  insert previously inserted text and stop
				     Insert mode
|i_CTRL-R|	CTRL-R {0-9a-z%#:.-="}  insert the contents of a register

|i_CTRL-N|	CTRL-N		  insert next match of identifier before the
				     cursor
|i_CTRL-P|	CTRL-P		  insert previous match of identifier before
				     the cursor
|i_CTRL-X|	CTRL-X ...	  complete the word before the cursor in
				     various ways

|i_<BS>|	<BS> or CTRL-H	  delete the character before the cursor
|i_<Del>|	<Del>		  delete the character under the cursor
|i_CTRL-W|	CTRL-W		  delete word before the cursor
|i_CTRL-U|	CTRL-U		  delete all entered characters in the current
				     line
|i_CTRL-T|	CTRL-T		  insert one shiftwidth of indent in front of
				       the current line
|i_CTRL-D|	CTRL-D		  delete one shiftwidth of indent in front of
				     the current line
|i_0_CTRL-D|	0 CTRL-D	  delete all indent in the current line
|i_^_CTRL-D|	^ CTRL-D	  delete all indent in the current line,
				     restore indent in next line
------------------------------------------------------------------------------
*Q_di*		Digraphs

|:dig|	   :dig[raphs]		show current list of digraphs
|:dig|	   :dig[raphs] {char1}{char2} {number} ...
				add digraph(s) to the list

In Insert or Command-line mode:
|i_CTRL-K|	CTRL-K {char1} {char2}
				  enter digraph
|i_digraph|	{char1} <BS> {char2}
				  enter digraph if 'digraph' option set
------------------------------------------------------------------------------
*Q_si*		Special inserts

|:r|	   :r [file]	   insert the contents of [file] below the cursor
|:r!|	   :r! {command}   insert the standard output of {command} below the
			      cursor
------------------------------------------------------------------------------
*Q_de*		Deleting text

|x|	N  x		delete N characters under and after the cursor
|<Del>|	N  <Del>	delete N characters under and after the cursor
|X|	N  X		delete N characters before the cursor
|d|	N  d{motion}	delete the text that is moved over with {motion}
|v_d|	   {visual}d	delete the highlighted text
|dd|	N  dd		delete N lines
|D|	N  D		delete to the end of the line (and N-1 more lines)
|J|	N  J		join N-1 lines (delete <EOL>s)
|v_J|	   {visual}J	join the highlighted lines
|gJ|	N  gJ		like "J", but without inserting spaces
|v_gJ|	   {visual}gJ	like "{visual}J", but without inserting spaces
|:d|	:[range]d [x]	delete [range] lines [into register x]
------------------------------------------------------------------------------
*Q_cm*		Copying and moving text

|quote|	  "{char}	use register {char} for the next delete, yank, or put
|:reg|	  :reg		show the contents of all registers
|:reg|	  :reg {arg}	show the contents of registers mentioned in {arg}
|y|	  N  y{motion}	yank the text moved over with {motion} into a register
|v_y|	     {visual}y	yank the highlighted text into a register
|yy|	  N  yy		yank N lines into a register
|Y|	  N  Y		yank N lines into a register
|p|	  N  p		put a register after the cursor position (N times)
|P|	  N  P		put a register before the cursor position (N times)
|]p|	  N  ]p		like p, but adjust indent to current line
|[p|	  N  [p		like P, but adjust indent to current line
|gp|	  N  gp		like p, but leave cursor after the new text
|gP|	  N  gP		like P, but leave cursor after the new text
------------------------------------------------------------------------------
*Q_ch*		Changing text

|r|	  N  r{char}	replace N characters with {char}
|gr|	  N  gr{char}	replace N characters without affecting layout
|R|	  N  R		enter Replace mode (repeat the entered text N times)
|gR|	  N  gR		enter virtual Replace mode: Like Replace mode but
			   without affecting layout
|v_b_r|	     {visual}r{char}
			in Visual block mode: Replace each char of the
			   selected text with {char}

	(change = delete text and enter Insert mode)
|c|	  N  c{motion}	change the text that is moved over with {motion}
|v_c|	     {visual}c	change the highlighted text
|cc|	  N  cc		change N lines
|S|	  N  S		change N lines
|C|	  N  C		change to the end of the line (and N-1 more lines)
|s|	  N  s		change N characters
|v_b_c|	     {visual}c	in Visual block mode: Change each of the selected
			   lines with the entered text
|v_b_C|	     {visual}C	in Visual block mode: Change each of the selected
			   lines until end-of-line with the entered text

|~|	  N  ~		switch case for N characters and advance cursor
|v_~|	     {visual}~	switch case for highlighted text
|v_u|	     {visual}u	make highlighted text lowercase
|v_U|	     {visual}U	make highlighted text uppercase
|g~|	     g~{motion} switch case for the text that is moved over with
			   {motion}
|gu|	     gu{motion} make the text that is moved over with {motion}
			   lowercase
|gU|	     gU{motion} make the text that is moved over with {motion}
			   uppercase
|v_g?|	     {visual}g? perform rot13 encoding on highlighted text
|g?|	     g?{motion} perform rot13 encoding on the text that is moved over
			   with {motion}

|CTRL-A|  N  CTRL-A	add N to the number at or after the cursor
|CTRL-X|  N  CTRL-X	subtract N from the number at or after the cursor

|<|	  N  <{motion}	move the lines that are moved over with {motion} one
			   shiftwidth left
|<<|	  N  <<		move N lines one shiftwidth left
|>|	  N  >{motion}	move the lines that are moved over with {motion} one
			   shiftwidth right
|>>|	  N  >>		move N lines one shiftwidth right
|gq|	  N  gq{motion}	format the lines that are moved over with {motion} to
			   'textwidth' length
|:ce|	  :[range]ce[nter] [width]
			center the lines in [range]
|:le|	  :[range]le[ft] [indent]
			left-align the lines in [range] (with [indent])
|:ri|	  :[range]ri[ght] [width]
			right-align the lines in [range]
------------------------------------------------------------------------------
*Q_co*		Complex changes

|!|	   N  !{motion}{command}<CR>
			filter the lines that are moved over through {command}
|!!|	   N  !!{command}<CR>
			filter N lines through {command}
|v_!|	      {visual}!{command}<CR>
			filter the highlighted lines through {command}
|:range!|  :[range]! {command}<CR>
			filter [range] lines through {command}
|=|	   N  ={motion}
			filter the lines that are moved over through 'equalprg'
|==|	   N  ==	filter N lines through 'equalprg'
|v_=|	      {visual}=
			filter the highlighted lines through 'equalprg'
|:s|	   :[range]s[ubstitute]/{pattern}/{string}/[g][c]
			substitute {pattern} by {string} in [range] lines;
			   with [g], replace all occurrences of {pattern};
			   with [c], confirm each replacement
|:s|	   :[range]s[ubstitute] [g][c]
			repeat previous ":s" with new range and options
|&|	      &		Repeat previous ":s" on current line without options
|:ret|	   :[range]ret[ab][!] [tabstop]
			set 'tabstop' to new value and adjust white space
			   accordingly
------------------------------------------------------------------------------
*Q_vi*		Visual mode

|visual-index|	list of Visual mode commands.

|v|        v		start highlighting characters  }  move cursor and use
|V|        V		start highlighting linewise    }  operator to affect
|CTRL-V|   CTRL-V	start highlighting blockwise   }  highlighted text
|v_o|      o		exchange cursor position with start of highlighting
|gv|       gv		start highlighting on previous visual area
|v_v|      v		highlight characters or stop highlighting
|v_V|      V		highlight linewise or stop highlighting
|v_CTRL-V| CTRL-V	highlight blockwise or stop highlighting
------------------------------------------------------------------------------
*Q_to*		Text objects (only in Visual mode or after an operator)

|v_aw|	   N  aw	Select "a word"
|v_iw|	   N  iw	Select "inner word"
|v_aW|	   N  aW	Select "a |WORD|"
|v_iW|	   N  iW	Select "inner |WORD|"
|v_as|	   N  as	Select "a sentence"
|v_is|	   N  is	Select "inner sentence"
|v_ap|	   N  ap	Select "a paragraph"
|v_ip|	   N  ip	Select "inner paragraph"
|v_ab|	   N  ab	Select "a block" (from "[(" to "])")
|v_ib|	   N  ib	Select "inner block" (from "[(" to "])")
|v_aB|	   N  aB	Select "a Block" (from "[{" to "]}")
|v_iB|	   N  iB	Select "inner Block" (from "[{" to "]}")
|v_a>|	   N  a>	Select "a <> block"
|v_i>|	   N  i>	Select "inner <> block"
|v_at|	   N  at	Select "a tag block" (from <aaa> to </aaa>)
|v_it|	   N  it	Select "inner tag block" (from <aaa> to </aaa>)
|v_a'|	   N  a'	Select "a single quoted string"
|v_i'|	   N  i'	Select "inner single quoted string"
|v_aquote| N  a"	Select "a double quoted string"
|v_iquote| N  i"	Select "inner double quoted string"
|v_a`|	   N  a`	Select "a backward quoted string"
|v_i`|	   N  i`	Select "inner backward quoted string"

------------------------------------------------------------------------------
*Q_re*		Repeating commands

|.|	   N  .		repeat last change (with count replaced with N)
|q|	      q{a-z}	record typed characters into register {a-z}
|q|	      q{A-Z}	record typed characters, appended to register {a-z}
|q|	      q		stop recording
|@|	   N  @{a-z}	execute the contents of register {a-z} (N times)
|@@|	   N  @@	   repeat previous @{a-z} (N times)
|:@|	   :@{a-z}	execute the contents of register {a-z} as an Ex
			   command
|:@@|	   :@@		repeat previous :@{a-z}
|:g|	   :[range]g[lobal]/{pattern}/[cmd]
			execute Ex command [cmd] (default: ":p") on the lines
			   within [range] where {pattern} matches
|:g|	   :[range]g[lobal]!/{pattern}/[cmd]
			execute Ex command [cmd] (default: ":p") on the lines
			   within [range] where {pattern} does NOT match
|:so|	   :so[urce] {file}
			read Ex commands from {file}
|:so|	   :so[urce]! {file}
			read Vim commands from {file}
|:sl|	   :sl[eep] [sec]
			don't do anything for [sec] seconds
|gs|	   N  gs	goto Sleep for N seconds
------------------------------------------------------------------------------
*Q_km*		Key mapping

|:map|       :ma[p] {lhs} {rhs}	  map {lhs} to {rhs} in Normal and Visual mode
|:map!|      :ma[p]! {lhs} {rhs}  map {lhs} to {rhs} in Insert and Command-line
				     mode
|:noremap|   :no[remap][!] {lhs} {rhs}
				  same as ":map", no remapping for this {rhs}
|:unmap|     :unm[ap] {lhs}	  remove the mapping of {lhs} for Normal and
				     Visual mode
|:unmap!|    :unm[ap]! {lhs}	  remove the mapping of {lhs} for Insert and
				     Command-line mode
|:map_l|     :ma[p] [lhs]	  list mappings (starting with [lhs]) for
				     Normal and Visual mode
|:map_l!|    :ma[p]! [lhs]	  list mappings (starting with [lhs]) for
				     Insert and Command-line mode
|:cmap|      :cmap/:cunmap/:cnoremap
				  like ":map!"/":unmap!"/":noremap!" but for
				     Command-line mode only
|:imap|      :imap/:iunmap/:inoremap
				  like ":map!"/":unmap!"/":noremap!" but for
				     Insert mode only
|:nmap|      :nmap/:nunmap/:nnoremap
				  like ":map"/":unmap"/":noremap" but for
				     Normal mode only
|:vmap|      :vmap/:vunmap/:vnoremap
				  like ":map"/":unmap"/":noremap" but for
				     Visual mode only
|:omap|      :omap/:ounmap/:onoremap
				  like ":map"/":unmap"/":noremap" but only for
				     when an operator is pending
|:mapc|      :mapc[lear]	  remove mappings for Normal and Visual mode
|:mapc|      :mapc[lear]!	  remove mappings for Insert and Cmdline mode
|:imapc|     :imapc[lear]	  remove mappings for Insert mode
|:vmapc|     :vmapc[lear]	  remove mappings for Visual mode
|:omapc|     :omapc[lear]	  remove mappings for Operator-pending mode
|:nmapc|     :nmapc[lear]	  remove mappings for Normal mode
|:cmapc|     :cmapc[lear]	  remove mappings for Cmdline mode
|:mkexrc|    :mk[exrc][!] [file]  write current mappings, abbreviations, and
				     settings to [file] (default: ".exrc";
				     use ! to overwrite)
|:mkvimrc|   :mkv[imrc][!] [file]
				  same as ":mkexrc", but with default ".vimrc"
|:mksession| :mks[ession][!] [file]
				  like ":mkvimrc", but store current files,
				     windows, etc. too, to be able to continue
				     this session later
------------------------------------------------------------------------------
*Q_ab*		Abbreviations

|:abbreviate|	:ab[breviate] {lhs} {rhs}  add abbreviation for {lhs} to {rhs}
|:abbreviate|	:ab[breviate] {lhs}	   show abbr's that start with {lhs}
|:abbreviate|	:ab[breviate]		   show all abbreviations
|:unabbreviate|	:una[bbreviate] {lhs}	   remove abbreviation for {lhs}
|:noreabbrev|	:norea[bbrev] [lhs] [rhs]  like ":ab", but don't remap [rhs]
|:iabbrev|	:iab/:iunab/:inoreab	   like ":ab", but only for Insert mode
|:cabbrev|	:cab/:cunab/:cnoreab	   like ":ab", but only for
						Command-line mode
|:abclear|	:abc[lear]		   remove all abbreviations
|:cabclear|	:cabc[lear]		   remove all abbr's for Cmdline mode
|:iabclear|	:iabc[lear]		   remove all abbr's for Insert mode
------------------------------------------------------------------------------
*Q_op*		Options

|:set|		:se[t]			  show all modified options
|:set|		:se[t] all		  show all non-termcap options
|:set|		:se[t] termcap		  show all termcap options
|:set|		:se[t] {option}		  set boolean option (switch it on),
					  show string or number option
|:set|		:se[t] no{option}	  reset boolean option (switch it off)
|:set|		:se[t] inv{option}	  invert boolean option
|:set|		:se[t] {option}={value}	  set string/number option to {value}
|:set|		:se[t] {option}+={value}  append {value} to string option, add
					  {value} to number option
|:set|		:se[t] {option}-={value}  remove {value} to string option,
					  subtract {value} from number option
|:set|		:se[t] {option}?	  show value of {option}
|:set|		:se[t] {option}&	  reset {option} to its default value

|:setlocal|	:setl[ocal]		  like ":set" but set the local value
					  for options that have one
|:setglobal|	:setg[lobal]		  like ":set" but set the global value
					  of a local option

|:fix|		:fix[del]		  set value of 't_kD' according to
					  value of 't_kb'
|:options|	:opt[ions]		  open a new window to view and set
					  options, grouped by functionality,
					  a one line explanation and links to
					  the help

Short explanation of each option:		*option-list*
'aleph'		  'al'	    ASCII code of the letter Aleph (Hebrew)
'allowrevins'	  'ari'     allow CTRL-_ in Insert and Command-line mode
'altkeymap'	  'akm'     for default second language (Farsi/Hebrew)
'ambiwidth'	  'ambw'    what to do with Unicode chars of ambiguous width
'antialias'	  'anti'    Mac OS X: use smooth, antialiased fonts
'autochdir'	  'acd'     change directory to the file in the current window
'arabic'	  'arab'    for Arabic as a default second language
'arabicshape'	  'arshape' do shaping for Arabic characters
'autoindent'	  'ai'	    take indent for new line from previous line
'autoread'	  'ar'	    autom. read file when changed outside of Vim
'autowrite'	  'aw'	    automatically write file if changed
'autowriteall'	  'awa'     as 'autowrite', but works with more commands
'background'	  'bg'	    "dark" or "light", used for highlight colors
'backspace'	  'bs'	    how backspace works at start of line
'backup'	  'bk'	    keep backup file after overwriting a file
'backupcopy'	  'bkc'     make backup as a copy, don't rename the file
'backupdir'	  'bdir'    list of directories for the backup file
'backupext'	  'bex'     extension used for the backup file
'backupskip'	  'bsk'     no backup for files that match these patterns
'balloondelay'	  'bdlay'   delay in mS before a balloon may pop up
'ballooneval'	  'beval'     switch on balloon evaluation in the GUI
'balloonevalterm' 'bevalterm' switch on balloon evaluation in the terminal
'balloonexpr'	  'bexpr'   expression to show in balloon
'belloff'	  'bo'	    do not ring the bell for these reasons
'binary'	  'bin'     read/write/edit file in binary mode
'bioskey'	  'biosk'   MS-DOS: use bios calls for input characters
'bomb'			    prepend a Byte Order Mark to the file
'breakat'	  'brk'     characters that may cause a line break
'breakindent'	  'bri'     wrapped line repeats indent 
'breakindentopt'  'briopt'  settings for 'breakindent'
'browsedir'	  'bsdir'   which directory to start browsing in
'bufhidden'	  'bh'	    what to do when buffer is no longer in window
'buflisted'	  'bl'	    whether the buffer shows up in the buffer list
'buftype'	  'bt'	    special type of buffer
'casemap'	  'cmp'     specifies how case of letters is changed
'cdpath'	  'cd'	    list of directories searched with ":cd"
'cedit'			    key used to open the command-line window
'charconvert'	  'ccv'     expression for character encoding conversion
'cindent'	  'cin'     do C program indenting
'cinkeys'	  'cink'    keys that trigger indent when 'cindent' is set
'cinoptions'	  'cino'    how to do indenting when 'cindent' is set
'cinwords'	  'cinw'    words where 'si' and 'cin' add an indent
'clipboard'	  'cb'	    use the clipboard as the unnamed register
'cmdheight'	  'ch'	    number of lines to use for the command-line
'cmdwinheight'	  'cwh'     height of the command-line window
'colorcolumn'	  'cc'	    columns to highlight
'columns'	  'co'	    number of columns in the display
'comments'	  'com'     patterns that can start a comment line
'commentstring'   'cms'     template for comments; used for fold marker
'compatible'	  'cp'	    behave Vi-compatible as much as possible
'complete'	  'cpt'     specify how Insert mode completion works
'completefunc'	  'cfu'     function to be used for Insert mode completion
'completeopt'	  'cot'     options for Insert mode completion
'concealcursor'	  'cocu'    whether concealable text is hidden in cursor line
'conceallevel'	  'cole'    whether concealable text is shown or hidden
'confirm'	  'cf'	    ask what to do about unsaved/read-only files
'conskey'	  'consk'   get keys directly from console (MS-DOS only)
'copyindent'	  'ci'	    make 'autoindent' use existing indent structure
'cpoptions'	  'cpo'     flags for Vi-compatible behavior
'cryptmethod'	  'cm'	    type of encryption to use for file writing
'cscopepathcomp'  'cspc'    how many components of the path to show
'cscopeprg'       'csprg'   command to execute cscope
'cscopequickfix'  'csqf'    use quickfix window for cscope results
'cscoperelative'  'csre'    Use cscope.out path basename as prefix
'cscopetag'       'cst'     use cscope for tag commands
'cscopetagorder'  'csto'    determines ":cstag" search order
'cscopeverbose'   'csverb'  give messages when adding a cscope database
'cursorbind'	  'crb'     move cursor in window as it moves in other windows
'cursorcolumn'	  'cuc'	    highlight the screen column of the cursor
'cursorline'	  'cul'	    highlight the screen line of the cursor
'debug'			    set to "msg" to see all error messages
'define'	  'def'     pattern to be used to find a macro definition
'delcombine'	  'deco'    delete combining characters on their own
'dictionary'	  'dict'    list of file names used for keyword completion
'diff'			    use diff mode for the current window
'diffexpr'	  'dex'     expression used to obtain a diff file
'diffopt'	  'dip'     options for using diff mode
'digraph'	  'dg'	    enable the entering of digraphs in Insert mode
'directory'	  'dir'     list of directory names for the swap file
'display'	  'dy'	    list of flags for how to display text
'eadirection'	  'ead'     in which direction 'equalalways' works
'edcompatible'	  'ed'	    toggle flags of ":substitute" command
'emoji'		  'emo'	    emoji characters are considered full width
'encoding'	  'enc'     encoding used internally
'endofline'	  'eol'     write <EOL> for last line in file
'equalalways'	  'ea'	    windows are automatically made the same size
'equalprg'	  'ep'	    external program to use for "=" command
'errorbells'	  'eb'	    ring the bell for error messages
'errorfile'	  'ef'	    name of the errorfile for the QuickFix mode
'errorformat'	  'efm'     description of the lines in the error file
'esckeys'	  'ek'	    recognize function keys in Insert mode
'eventignore'	  'ei'	    autocommand events that are ignored
'expandtab'	  'et'	    use spaces when <Tab> is inserted
'exrc'		  'ex'	    read .vimrc and .exrc in the current directory
'fileencoding'	  'fenc'    file encoding for multi-byte text
'fileencodings'   'fencs'   automatically detected character encodings
'fileformat'	  'ff'	    file format used for file I/O
'fileformats'	  'ffs'     automatically detected values for 'fileformat'
'fileignorecase'  'fic'     ignore case when using file names
'filetype'	  'ft'	    type of file, used for autocommands
'fillchars'	  'fcs'     characters to use for displaying special items
'fixendofline'	  'fixeol'  make sure last line in file has <EOL>
'fkmap'		  'fk'	    Farsi keyboard mapping
'foldclose'	  'fcl'     close a fold when the cursor leaves it
'foldcolumn'	  'fdc'     width of the column used to indicate folds
'foldenable'	  'fen'     set to display all folds open
'foldexpr'	  'fde'     expression used when 'foldmethod' is "expr"
'foldignore'	  'fdi'     ignore lines when 'foldmethod' is "indent"
'foldlevel'	  'fdl'     close folds with a level higher than this
'foldlevelstart'  'fdls'    'foldlevel' when starting to edit a file
'foldmarker'	  'fmr'     markers used when 'foldmethod' is "marker"
'foldmethod'	  'fdm'     folding type
'foldminlines'	  'fml'     minimum number of lines for a fold to be closed
'foldnestmax'	  'fdn'     maximum fold depth
'foldopen'	  'fdo'     for which commands a fold will be opened
'foldtext'	  'fdt'     expression used to display for a closed fold
'formatexpr'	  'fex'     expression used with "gq" command
'formatlistpat'   'flp'     pattern used to recognize a list header
'formatoptions'   'fo'	    how automatic formatting is to be done
'formatprg'	  'fp'	    name of external program used with "gq" command
'fsync'		  'fs'	    whether to invoke fsync() after file write
'gdefault'	  'gd'	    the ":substitute" flag 'g' is default on
'grepformat'	  'gfm'     format of 'grepprg' output
'grepprg'	  'gp'	    program to use for ":grep"
'guicursor'	  'gcr'     GUI: settings for cursor shape and blinking
'guifont'	  'gfn'     GUI: Name(s) of font(s) to be used
'guifontset'	  'gfs'     GUI: Names of multi-byte fonts to be used
'guifontwide'	  'gfw'     list of font names for double-wide characters
'guiheadroom'	  'ghr'     GUI: pixels room for window decorations
'guioptions'	  'go'	    GUI: Which components and options are used
'guipty'		    GUI: try to use a pseudo-tty for ":!" commands
'guitablabel'	  'gtl'     GUI: custom label for a tab page
'guitabtooltip'   'gtt'     GUI: custom tooltip for a tab page
'helpfile'	  'hf'	    full path name of the main help file
'helpheight'	  'hh'	    minimum height of a new help window
'helplang'	  'hlg'     preferred help languages
'hidden'	  'hid'     don't unload buffer when it is |abandon|ed
'highlight'	  'hl'	    sets highlighting mode for various occasions
'history'	  'hi'	    number of command-lines that are remembered
'hkmap'		  'hk'	    Hebrew keyboard mapping
'hkmapp'	  'hkp'     phonetic Hebrew keyboard mapping
'hlsearch'	  'hls'     highlight matches with last search pattern
'icon'			    let Vim set the text of the window icon
'iconstring'		    string to use for the Vim icon text
'ignorecase'	  'ic'	    ignore case in search patterns
'imactivatefunc'  'imaf'    function to enable/disable the X input method
'imactivatekey'   'imak'    key that activates the X input method
'imcmdline'	  'imc'     use IM when starting to edit a command line
'imdisable'	  'imd'     do not use the IM in any mode
'iminsert'	  'imi'     use :lmap or IM in Insert mode
'imsearch'	  'ims'     use :lmap or IM when typing a search pattern
'imstatusfunc'    'imsf'    function to obtain X input method status
'imstyle'	  'imst'    specifies the input style of the input method
'include'	  'inc'     pattern to be used to find an include file
'includeexpr'	  'inex'    expression used to process an include line
'incsearch'	  'is'	    highlight match while typing search pattern
'indentexpr'	  'inde'    expression used to obtain the indent of a line
'indentkeys'	  'indk'    keys that trigger indenting with 'indentexpr'
'infercase'	  'inf'     adjust case of match for keyword completion
'insertmode'	  'im'	    start the edit of a file in Insert mode
'isfname'	  'isf'     characters included in file names and pathnames
'isident'	  'isi'     characters included in identifiers
'iskeyword'	  'isk'     characters included in keywords
'isprint'	  'isp'     printable characters
'joinspaces'	  'js'	    two spaces after a period with a join command
'key'			    encryption key
'keymap'	  'kmp'     name of a keyboard mapping
'keymodel'	  'km'	    enable starting/stopping selection with keys
'keywordprg'	  'kp'	    program to use for the "K" command
'langmap'	  'lmap'    alphabetic characters for other language mode
'langmenu'	  'lm'	    language to be used for the menus
'langremap'	  'lrm'	    do apply 'langmap' to mapped characters
'laststatus'	  'ls'	    tells when last window has status lines
'lazyredraw'	  'lz'	    don't redraw while executing macros
'linebreak'	  'lbr'     wrap long lines at a blank
'lines'			    number of lines in the display
'linespace'	  'lsp'     number of pixel lines to use between characters
'lisp'			    automatic indenting for Lisp
'lispwords'	  'lw'	    words that change how lisp indenting works
'list'			    show <Tab> and <EOL>
'listchars'	  'lcs'     characters for displaying in list mode
'loadplugins'	  'lpl'     load plugin scripts when starting up
'luadll'		    name of the Lua dynamic library
'mzschemedll'		    name of the MzScheme dynamic library
'mzschemegcdll'		    name of the MzScheme dynamic library for GC
'macatsui'		    Mac GUI: use ATSUI text drawing
'magic'			    changes special characters in search patterns
'makeef'	  'mef'     name of the errorfile for ":make"
'makeencoding'	  'menc'    encoding of external make/grep commands
'makeprg'	  'mp'	    program to use for the ":make" command
'matchpairs'	  'mps'     pairs of characters that "%" can match
'matchtime'	  'mat'     tenths of a second to show matching paren
'maxcombine'	  'mco'     maximum nr of combining characters displayed
'maxfuncdepth'	  'mfd'     maximum recursive depth for user functions
'maxmapdepth'	  'mmd'     maximum recursive depth for mapping
'maxmem'	  'mm'	    maximum memory (in Kbyte) used for one buffer
'maxmempattern'   'mmp'     maximum memory (in Kbyte) used for pattern search
'maxmemtot'	  'mmt'     maximum memory (in Kbyte) used for all buffers
'menuitems'	  'mis'     maximum number of items in a menu
'mkspellmem'	  'msm'     memory used before |:mkspell| compresses the tree
'modeline'	  'ml'	    recognize modelines at start or end of file
'modelines'	  'mls'     number of lines checked for modelines
'modifiable'	  'ma'	    changes to the text are not possible
'modified'	  'mod'     buffer has been modified
'more'			    pause listings when the whole screen is filled
'mouse'			    enable the use of mouse clicks
'mousefocus'	  'mousef'  keyboard focus follows the mouse
'mousehide'	  'mh'	    hide mouse pointer while typing
'mousemodel'	  'mousem'  changes meaning of mouse buttons
'mouseshape'	  'mouses'  shape of the mouse pointer in different modes
'mousetime'	  'mouset'  max time between mouse double-click
'mzquantum'	  'mzq'     the interval between polls for MzScheme threads
'nrformats'	  'nf'	    number formats recognized for CTRL-A command
'number'	  'nu'	    print the line number in front of each line
'numberwidth'	  'nuw'     number of columns used for the line number
'omnifunc'	  'ofu'     function for filetype-specific completion
'opendevice'	  'odev'    allow reading/writing devices on MS-Windows
'operatorfunc'	  'opfunc'  function to be called for |g@| operator
'osfiletype'	  'oft'     no longer supported
'packpath'	  'pp'      list of directories used for packages
'paragraphs'	  'para'    nroff macros that separate paragraphs
'paste'			    allow pasting text
'pastetoggle'	  'pt'	    key code that causes 'paste' to toggle
'patchexpr'	  'pex'     expression used to patch a file
'patchmode'	  'pm'	    keep the oldest version of a file
'path'		  'pa'	    list of directories searched with "gf" et.al.
'perldll'		    name of the Perl dynamic library
'preserveindent'  'pi'	    preserve the indent structure when reindenting
'previewheight'   'pvh'     height of the preview window
'previewwindow'   'pvw'     identifies the preview window
'printdevice'	  'pdev'    name of the printer to be used for :hardcopy
'printencoding'   'penc'    encoding to be used for printing
'printexpr'	  'pexpr'   expression used to print PostScript for :hardcopy
'printfont'	  'pfn'     name of the font to be used for :hardcopy
'printheader'	  'pheader' format of the header used for :hardcopy
'printmbcharset'  'pmbcs'   CJK character set to be used for :hardcopy
'printmbfont'	  'pmbfn'   font names to be used for CJK output of :hardcopy
'printoptions'	  'popt'    controls the format of :hardcopy output
'prompt'	  'prompt'  enable prompt in Ex mode
'pumheight'	  'ph'	    maximum height of the popup menu
'pumwidth'	  'pw'	    minimum width of the popup menu
'pythondll'		    name of the Python 2 dynamic library
'pythonhome'		    name of the Python 2 home directory
'pythonthreedll'	    name of the Python 3 dynamic library
'pythonthreehome'	    name of the Python 3 home directory
'pyxversion'	  'pyx'	    Python version used for pyx* commands
'quoteescape'	  'qe'	    escape characters used in a string
'readonly'	  'ro'	    disallow writing the buffer
'redrawtime'	  'rdt'     timeout for 'hlsearch' and |:match| highlighting
'regexpengine'	  're'	    default regexp engine to use
'relativenumber'  'rnu'	    show relative line number in front of each line
'remap'			    allow mappings to work recursively
'renderoptions'	  'rop'	    options for text rendering on Windows
'report'		    threshold for reporting nr. of lines changed
'restorescreen'   'rs'	    Win32: restore screen when exiting
'revins'	  'ri'	    inserting characters will work backwards
'rightleft'	  'rl'	    window is right-to-left oriented
'rightleftcmd'	  'rlc'     commands for which editing works right-to-left
'rubydll'		    name of the Ruby dynamic library
'ruler'		  'ru'	    show cursor line and column in the status line
'rulerformat'	  'ruf'     custom format for the ruler
'runtimepath'	  'rtp'     list of directories used for runtime files
'scroll'	  'scr'     lines to scroll with CTRL-U and CTRL-D
'scrollbind'	  'scb'     scroll in window as other windows scroll
'scrolljump'	  'sj'	    minimum number of lines to scroll
'scrolloff'	  'so'	    minimum nr. of lines above and below cursor
'scrollopt'	  'sbo'     how 'scrollbind' should behave
'sections'	  'sect'    nroff macros that separate sections
'secure'		    secure mode for reading .vimrc in current dir
'selection'	  'sel'     what type of selection to use
'selectmode'	  'slm'     when to use Select mode instead of Visual mode
'sessionoptions'  'ssop'    options for |:mksession|
'shell'		  'sh'	    name of shell to use for external commands
'shellcmdflag'	  'shcf'    flag to shell to execute one command
'shellpipe'	  'sp'	    string to put output of ":make" in error file
'shellquote'	  'shq'     quote character(s) for around shell command
'shellredir'	  'srr'     string to put output of filter in a temp file
'shellslash'	  'ssl'     use forward slash for shell file names
'shelltemp'	  'stmp'    whether to use a temp file for shell commands
'shelltype'	  'st'	    Amiga: influences how to use a shell
'shellxescape'	  'sxe'     characters to escape when 'shellxquote' is (
'shellxquote'	  'sxq'     like 'shellquote', but include redirection
'shiftround'	  'sr'	    round indent to multiple of shiftwidth
'shiftwidth'	  'sw'	    number of spaces to use for (auto)indent step
'shortmess'	  'shm'     list of flags, reduce length of messages
'shortname'	  'sn'	    non-MS-DOS: Filenames assumed to be 8.3 chars
'showbreak'	  'sbr'     string to use at the start of wrapped lines
'showcmd'	  'sc'	    show (partial) command in status line
'showfulltag'	  'sft'     show full tag pattern when completing tag
'showmatch'	  'sm'	    briefly jump to matching bracket if insert one
'showmode'	  'smd'     message on status line to show current mode
'showtabline'	  'stal'    tells when the tab pages line is displayed
'sidescroll'	  'ss'	    minimum number of columns to scroll horizontal
'sidescrolloff'   'siso'    min. nr. of columns to left and right of cursor
'signcolumn'	  'scl'	    when to display the sign column
'smartcase'	  'scs'     no ignore case when pattern has uppercase
'smartindent'	  'si'	    smart autoindenting for C programs
'smarttab'	  'sta'     use 'shiftwidth' when inserting <Tab>
'softtabstop'	  'sts'     number of spaces that <Tab> uses while editing
'spell'			    enable spell checking
'spellcapcheck'   'spc'     pattern to locate end of a sentence
'spellfile'	  'spf'     files where |zg| and |zw| store words
'spelllang'	  'spl'     language(s) to do spell checking for
'spellsuggest'	  'sps'     method(s) used to suggest spelling corrections
'splitbelow'	  'sb'	    new window from split is below the current one
'splitright'	  'spr'     new window is put right of the current one
'startofline'	  'sol'     commands move cursor to first non-blank in line
'statusline'	  'stl'     custom format for the status line
'suffixes'	  'su'	    suffixes that are ignored with multiple match
'suffixesadd'	  'sua'     suffixes added when searching for a file
'swapfile'	  'swf'     whether to use a swapfile for a buffer
'swapsync'	  'sws'     how to sync the swap file
'switchbuf'	  'swb'     sets behavior when switching to another buffer
'synmaxcol'	  'smc'     maximum column to find syntax items
'syntax'	  'syn'     syntax to be loaded for current buffer
'tabline'	  'tal'     custom format for the console tab pages line
'tabpagemax'	  'tpm'     maximum number of tab pages for |-p| and "tab all"
'tabstop'	  'ts'	    number of spaces that <Tab> in file uses
'tagbsearch'	  'tbs'     use binary searching in tags files
'tagcase'	  'tc'      how to handle case when searching in tags files
'taglength'	  'tl'	    number of significant characters for a tag
'tagrelative'	  'tr'	    file names in tag file are relative
'tags'		  'tag'     list of file names used by the tag command
'tagstack'	  'tgst'    push tags onto the tag stack
'tcldll'		    name of the Tcl dynamic library
'term'			    name of the terminal
'termbidi'	  'tbidi'   terminal takes care of bi-directionality
'termencoding'	  'tenc'    character encoding used by the terminal
'termguicolors'	  'tgc'     use GUI colors for the terminal
'termwinkey'	  'twk'	    key that precedes a Vim command in a terminal
'termwinscroll'   'twsl'    max number of scrollback lines in a terminal window
'termwinsize'	  'tws'	    size of a terminal window
'terse'			    shorten some messages
'textauto'	  'ta'	    obsolete, use 'fileformats'
'textmode'	  'tx'	    obsolete, use 'fileformat'
'textwidth'	  'tw'	    maximum width of text that is being inserted
'thesaurus'	  'tsr'     list of thesaurus files for keyword completion
'tildeop'	  'top'     tilde command "~" behaves like an operator
'timeout'	  'to'	    time out on mappings and key codes
'timeoutlen'	  'tm'	    time out time in milliseconds
'title'			    let Vim set the title of the window
'titlelen'		    percentage of 'columns' used for window title
'titleold'		    old title, restored when exiting
'titlestring'		    string to use for the Vim window title
'toolbar'	  'tb'	    GUI: which items to show in the toolbar
'toolbariconsize' 'tbis'    size of the toolbar icons (for GTK 2 only)
'ttimeout'		    time out on mappings
'ttimeoutlen'	  'ttm'     time out time for key codes in milliseconds
'ttybuiltin'	  'tbi'     use built-in termcap before external termcap
'ttyfast'	  'tf'	    indicates a fast terminal connection
'ttymouse'	  'ttym'    type of mouse codes generated
'ttyscroll'	  'tsl'     maximum number of lines for a scroll
'ttytype'	  'tty'     alias for 'term'
'undodir'	  'udir'    where to store undo files
'undofile'	  'udf'	    save undo information in a file
'undolevels'	  'ul'	    maximum number of changes that can be undone
'undoreload'	  'ur'	    max nr of lines to save for undo on a buffer reload
'updatecount'	  'uc'	    after this many characters flush swap file
'updatetime'	  'ut'	    after this many milliseconds flush swap file
'verbose'	  'vbs'     give informative messages
'verbosefile'	  'vfile'   file to write messages in
'viewdir'	  'vdir'    directory where to store files with :mkview
'viewoptions'	  'vop'     specifies what to save for :mkview
'viminfo'	  'vi'	    use .viminfo file upon startup and exiting
'viminfofile'	  'vif'	    file name used for the viminfo file
'virtualedit'	  've'	    when to use virtual editing
'visualbell'	  'vb'	    use visual bell instead of beeping
'warn'			    warn for shell command when buffer was changed
'weirdinvert'	  'wiv'	    for terminals that have weird inversion method
'whichwrap'	  'ww'	    allow specified keys to cross line boundaries
'wildchar'	  'wc'	    command-line character for wildcard expansion
'wildcharm'	  'wcm'     like 'wildchar' but also works when mapped
'wildignore'	  'wig'     files matching these patterns are not completed
'wildignorecase'  'wic'     ignore case when completing file names
'wildmenu'	  'wmnu'    use menu for command line completion
'wildmode'	  'wim'     mode for 'wildchar' command-line expansion
'wildoptions'	  'wop'     specifies how command line completion is done
'winaltkeys'	  'wak'     when the windows system handles ALT keys
'window'	  'wi'	    nr of lines to scroll for CTRL-F and CTRL-B
'winheight'	  'wh'	    minimum number of lines for the current window
'winfixheight'	  'wfh'     keep window height when opening/closing windows
'winfixwidth'	  'wfw'     keep window width when opening/closing windows
'winminheight'	  'wmh'     minimum number of lines for any window
'winminwidth'	  'wmw'     minimal number of columns for any window
'winptydll'		    name of the winpty dynamic library
'winwidth'	  'wiw'     minimal number of columns for current window
'wrap'			    long lines wrap and continue on the next line
'wrapmargin'	  'wm'	    chars from the right where wrapping starts
'wrapscan'	  'ws'	    searches wrap around the end of the file
'write'			    writing to a file is allowed
'writeany'	  'wa'	    write to file with no need for "!" override
'writebackup'	  'wb'	    make a backup before overwriting a file
'writedelay'	  'wd'	    delay this many msec for each char (for debug)
------------------------------------------------------------------------------
*Q_ur*		Undo/Redo commands

|u|       N  u		undo last N changes
|CTRL-R|  N  CTRL-R	redo last N undone changes
|U|          U		restore last changed line
------------------------------------------------------------------------------
*Q_et*		External commands

|:shell|	:sh[ell]	start a shell
|:!|		:!{command}	execute {command} with a shell
|K|		   K		lookup keyword under the cursor with
				   'keywordprg' program (default: "man")
------------------------------------------------------------------------------
*Q_qf*		Quickfix commands

|:cc|		:cc [nr]	display error [nr] (default is the same again)
|:cnext|	:cn		display the next error
|:cprevious|	:cp		display the previous error
|:clist|	:cl		list all errors
|:cfile|	:cf		read errors from the file 'errorfile'
|:cgetbuffer|	:cgetb		like :cbuffer but don't jump to the first error
|:cgetfile|	:cg		like :cfile but don't jump to the first error
|:cgetexpr|	:cgete		like :cexpr but don't jump to the first error
|:caddfile|	:caddf		add errors from the error file to the current
				   quickfix list
|:caddexpr|	:cad		add errors from an expression to the current
				   quickfix list
|:cbuffer|	:cb		read errors from text in a buffer
|:cexpr|	:cex		read errors from an expression
|:cquit|	:cq		quit without writing and return error code (to
				   the compiler)
|:make|		:make [args]	start make, read errors, and jump to first
				   error
|:grep|		:gr[ep] [args]	execute 'grepprg' to find matches and jump to
				   the first one
------------------------------------------------------------------------------
*Q_vc*		Various commands

|CTRL-L|	   CTRL-L	clear and redraw the screen
|CTRL-G|	   CTRL-G	show current file name (with path) and cursor
				   position
|ga|		   ga		show ascii value of character under cursor in
				   decimal, hex, and octal
|g8|		   g8		for utf-8 encoding: show byte sequence for
				   character under cursor in hex
|g_CTRL-G|	   g CTRL-G	show cursor column, line, and character
				   position
|CTRL-C|	   CTRL-C	during searches: Interrupt the search
|dos-CTRL-Break|   CTRL-Break	MS-DOS: during searches: Interrupt the search
|<Del>|		   <Del>	while entering a count: delete last character
|:version|	:ve[rsion]	show version information
|:mode|		:mode N		MS-DOS: set screen mode to N (number, C80,
				   C4350, etc.)
|:normal|	:norm[al][!] {commands}
				execute Normal mode commands
|Q|		   Q		switch to "Ex" mode

|:redir|	:redir >{file}		redirect messages to {file}
|:silent|	:silent[!] {command}	execute {command} silently
|:confirm|	:confirm {command}	quit, write, etc., asking about
					unsaved changes or read-only files
|:browse|	:browse {command}	open/read/write file, using a
					file selection dialog
------------------------------------------------------------------------------
*Q_ce*		Command-line editing

|c_<Esc>|	<Esc>		   abandon command-line (if 'wildchar' is
				      <Esc>, type it twice)

|c_CTRL-V|	CTRL-V {char}	   insert {char} literally
|c_CTRL-V|	CTRL-V {number}    enter decimal value of character (up to
				      three digits)
|c_CTRL-K|	CTRL-K {char1} {char2}
				   enter digraph (See |Q_di|)
|c_CTRL-R|	CTRL-R {0-9a-z"%#:-=}
				   insert the contents of a register

|c_<Left>|	<Left>/<Right>	   cursor left/right
|c_<S-Left>|	<S-Left>/<S-Right> cursor one word left/right
|c_CTRL-B|	CTRL-B/CTRL-E	   cursor to beginning/end of command-line

|c_<BS>|	<BS>		   delete the character in front of the cursor
|c_<Del>|	<Del>		   delete the character under the cursor
|c_CTRL-W|	CTRL-W		   delete the word in front of the cursor
|c_CTRL-U|	CTRL-U		   remove all characters

|c_<Up>|	<Up>/<Down>	   recall older/newer command-line that starts
				      with current command
|c_<S-Up>|	<S-Up>/<S-Down>	   recall older/newer command-line from history
|c_CTRL-G|	CTRL-G		   next match when 'incsearch' is active
|c_CTRL-T|	CTRL-T		   previous match when 'incsearch' is active
|:history|	:his[tory]	   show older command-lines

Context-sensitive completion on the command-line:

|c_wildchar|	'wildchar'  (default: <Tab>)
				do completion on the pattern in front of the
				   cursor; if there are multiple matches,
				   beep and show the first one; further
				   'wildchar' will show the next ones
|c_CTRL-D|	CTRL-D		list all names that match the pattern in
				   front of the cursor
|c_CTRL-A|	CTRL-A		insert all names that match pattern in front
				   of cursor
|c_CTRL-L|	CTRL-L		insert longest common part of names that
				   match pattern
|c_CTRL-N|	CTRL-N		after 'wildchar' with multiple matches: go
				   to next match
|c_CTRL-P|	CTRL-P		after 'wildchar' with multiple matches: go
				   to previous match
------------------------------------------------------------------------------
*Q_ra*		Ex ranges

|:range|	,		separates two line numbers
|:range|	;		idem, set cursor to the first line number
				before interpreting the second one

|:range|	{number}	an absolute line number
|:range|	.		the current line
|:range|	$		the last line in the file
|:range|	%		equal to 1,$ (the entire file)
|:range|	*		equal to '<,'> (visual area)
|:range|	't		position of mark t
|:range|	/{pattern}[/]	the next line where {pattern} matches
|:range|	?{pattern}[?]	the previous line where {pattern} matches

|:range|	+[num]		add [num] to the preceding line number
				   (default: 1)
|:range|	-[num]		subtract [num] from the preceding line
				   number (default: 1)
------------------------------------------------------------------------------
*Q_ex*		Special Ex characters

|:bar|      |		separates two commands (not for ":global" and ":!")
|:quote|    "		begins comment

|:_%|       %		current file name (only where a file name is expected)
|:_#|       #[num]	alternate file name [num] (only where a file name is
			   expected)
	Note: The next seven are typed literally; these are not special keys!
|:<abuf>|   <abuf>	buffer number, for use in an autocommand (only where a
			   file name is expected)
|:<afile>|  <afile>	file name, for use in an autocommand (only where a
			   file name is expected)
|:<amatch>| <amatch>	what matched with the pattern, for use in an
			   autocommand (only where a file name is expected)
|:<cword>|  <cword>	word under the cursor (only where a file name is
			   expected)
|:<cWORD>|  <cWORD>	WORD under the cursor (only where a file name is
			   expected) (see |WORD|)
|:<cfile>|  <cfile>	file name under the cursor (only where a file name is
			   expected)
|:<sfile>|  <sfile>	file name of a ":source"d file, within that file (only
			   where a file name is expected)

		After "%", "#", "<cfile>", "<sfile>" or "<afile>"
		|::p|	    :p		full path
		|::h|	    :h		head (file name removed)
		|::t|	    :t		tail (file name only)
		|::r|	    :r		root (extension removed)
		|::e|	    :e		extension
		|::s|	    :s/{pat}/{repl}/	substitute {pat} with {repl}
------------------------------------------------------------------------------
*Q_st*		Starting Vim

|-vim|	   vim [options]		start editing with an empty buffer
|-file|	   vim [options] {file} ..	start editing one or more files
|--|	   vim [options] -		read file from stdin
|-tag|	   vim [options] -t {tag}	edit the file associated with {tag}
|-qf|	   vim [options] -q [fname]	start editing in QuickFix mode,
					   display the first error

	Most useful Vim arguments (for full list see |startup-options|)

|-gui|	-g		    start GUI (also allows other options)

|-+|	+[num]		    put the cursor at line [num] (default: last line)
|-+c|	+{command}	    execute {command} after loading the file
|-+/|	+/{pat} {file} ..   put the cursor at the first occurrence of {pat}
|-v|	-v		    Vi mode, start ex in Normal mode
|-e|	-e		    Ex mode, start vim in Ex mode
|-R|	-R		    Read-only mode, implies -n
|-m|	-m		    modifications not allowed (resets 'write' option)
|-d|	-d		    diff mode |diff|
|-b|	-b		    binary mode
|-l|	-l		    lisp mode
|-A|	-A		    Arabic mode ('arabic' is set)
|-F|	-F		    Farsi mode ('fkmap' and 'rightleft' are set)
|-H|	-H		    Hebrew mode ('hkmap' and 'rightleft' are set)
|-V|	-V		    Verbose, give informative messages
|-C|	-C		    Compatible, set the 'compatible' option
|-N|	-N		    Nocompatible, reset the 'compatible' option
|-r|	-r		    give list of swap files
|-r|	-r {file} ..	    recover aborted edit session
|-n|	-n		    do not create a swap file
|-o|	-o [num]	    open [num] windows (default: one for each file)
|-f|	-f		    GUI: foreground process, don't fork
			    Amiga: do not restart Vim to open a window (for
				e.g., mail)
|-s|	-s {scriptin}	    first read commands from the file {scriptin}
|-w|	-w {scriptout}	    write typed chars to file {scriptout} (append)
|-W|	-W {scriptout}	    write typed chars to file {scriptout} (overwrite)
|-T|	-T {terminal}	    set terminal name
|-d|	-d {device}	    Amiga: open {device} to be used as a console
|-u|	-u {vimrc}	    read inits from {vimrc} instead of other inits
|-U|	-U {gvimrc}	    idem, for when starting the GUI
|-i|	-i {viminfo}	    read info from {viminfo} instead of other files
|---|	--		    end of options, other arguments are file names
|--help|    --help	    show list of arguments and exit
|--version| --version	    show version info and exit
|--|	-		    read file from stdin
------------------------------------------------------------------------------
*Q_ed*		Editing a file

	   Without !: Fail if changes have been made to the current buffer.
	      With !: Discard any changes to the current buffer.
|:edit_f|  :e[dit][!] {file}	edit {file}
|:edit|    :e[dit][!]		reload the current file
|:enew|    :ene[w][!]		edit a new, unnamed buffer
|:find|    :fin[d][!] {file}	find {file} in 'path' and edit it

|CTRL-^|   N  CTRL-^		edit alternate file N (equivalent to ":e #N")
|gf|          gf  or ]f		edit the file whose name is under the cursor
|:pwd|     :pwd			print the current directory name
|:cd|      :cd [path]		change the current directory to [path]
|:cd-|     :cd -		back to previous current directory
|:file|    :f[ile]		print the current file name and the cursor
				   position
|:file|    :f[ile] {name}	set the current file name to {name}
|:files|   :files		show alternate file names
------------------------------------------------------------------------------
*Q_fl*		Using the argument list			|argument-list|

|:args|	   :ar[gs]		print the argument list, with the current file
				   in "[]"
|:all|	   :all  or :sall	open a window for every file in the arg list
|:wn|	   :wn[ext][!]		write file and edit next file
|:wn|	   :wn[ext][!] {file}	write to {file} and edit next file, unless
				   {file} exists; With !, overwrite existing
				   file
|:wN|	   :wN[ext][!] [file]	write file and edit previous file

	     in current window    in new window	~
|:argument|  :argu[ment] N	  :sar[gument] N	edit file N
|:next|      :n[ext]		  :sn[ext]		edit next file
|:next_f|    :n[ext] {arglist}	  :sn[ext] {arglist}	define new arg list
							   and edit first file
|:Next|      :N[ext]		  :sN[ext]		edit previous file
|:first|     :fir[st]		  :sfir[st]		edit first file
|:last|      :la[st]		  :sla[st]		edit last file
------------------------------------------------------------------------------
*Q_wq*		Writing and quitting

|:w|	  :[range]w[rite][!]		write to the current file
|:w_f|	  :[range]w[rite] {file}	write to {file}, unless it already
					   exists
|:w_f|	  :[range]w[rite]! {file}	write to {file}.  Overwrite an existing
					   file
|:w_a|	  :[range]w[rite][!] >>		append to the current file
|:w_a|	  :[range]w[rite][!] >> {file}	append to {file}
|:w_c|	  :[range]w[rite] !{cmd}	execute {cmd} with [range] lines as
					   standard input
|:up|	  :[range]up[date][!]		write to current file if modified
|:wall|	  :wa[ll][!]			write all changed buffers

|:q|	  :q[uit]		quit current buffer, unless changes have been
				   made; Exit Vim when there are no other
				   non-help buffers
|:q|	  :q[uit]!		quit current buffer always, discard any
				   changes.  Exit Vim when there are no other
				   non-help buffers
|:qa|	  :qa[ll]		exit Vim, unless changes have been made
|:qa|	  :qa[ll]!		exit Vim always, discard any changes
|:cq|	  :cq			quit without writing and return error code

|:wq|	  :wq[!]		write the current file and exit
|:wq|	  :wq[!] {file}		write to {file} and exit
|:xit|	  :x[it][!] [file]	like ":wq" but write only when changes have
				   been made
|ZZ|	     ZZ			same as ":x"
|ZQ|	     ZQ			same as ":q!"
|:xall|	  :xa[ll][!]  or :wqall[!]
				write all changed buffers and exit

|:stop|	  :st[op][!]		suspend Vim or start new shell; if 'aw' option
				   is set and [!] not given write the buffer
|CTRL-Z|     CTRL-Z		same as ":stop"
------------------------------------------------------------------------------
*Q_ac*		Automatic Commands

|viminfo-file|	read registers, marks, history at startup, save when exiting.

|:rviminfo|	:rv[iminfo] [file]	read info from viminfo file [file]
|:rviminfo|	:rv[iminfo]! [file]	idem, overwrite existing info
|:wviminfo|	:wv[iminfo] [file]	add info to viminfo file [file]
|:wviminfo|	:wv[iminfo]! [file]	write info to viminfo file [file]

|modeline|	Automatic option setting when editing a file

|modeline|	vim:{set-arg}: ..	In the first and last lines of the
					file (see 'ml' option), {set-arg} is
					given as an argument to ":set"

|autocommand|	Automatic execution of commands on certain events.

|:autocmd|	:au			  list all autocommands
|:autocmd|	:au {event}		  list all autocommands for {event}
|:autocmd|	:au {event} {pat}	  list all autocommands for {event}
					  with {pat}
|:autocmd|	:au {event} {pat} {cmd}	  enter new autocommands for {event}
					  with {pat}
|:autocmd|	:au!			  remove all autocommands
|:autocmd|	:au! {event}		  remove all autocommands for {event}
|:autocmd|	:au! * {pat}		  remove all autocommands for {pat}
|:autocmd|	:au! {event} {pat}	  remove all autocommands for {event}
					  with {pat}
|:autocmd|	:au! {event} {pat} {cmd}  remove all autocommands for {event}
					  with {pat} and enter new one
------------------------------------------------------------------------------
*Q_wi*		Multi-window commands

|CTRL-W_s|	CTRL-W s  or  :split	split window into two parts
|:split_f|	:split {file}		split window and edit {file} in one of
					   them
|:vsplit|	:vsplit {file}		same, but split vertically
|:vertical|	:vertical {cmd}		make {cmd} split vertically

|:sfind|	:sf[ind] {file}		split window, find {file} in 'path'
					   and edit it
|:terminal|	:terminal {cmd}		open a terminal window
|CTRL-W_]|	CTRL-W ]		split window and jump to tag under
					   cursor
|CTRL-W_f|	CTRL-W f		split window and edit file name under
					   the cursor
|CTRL-W_^|	CTRL-W ^		split window and edit alternate file
|CTRL-W_n|	CTRL-W n  or  :new	create new empty window
|CTRL-W_q|	CTRL-W q  or  :q[uit]	quit editing and close window
|CTRL-W_c|	CTRL-W c  or  :cl[ose]	make buffer hidden and close window
|CTRL-W_o|	CTRL-W o  or  :on[ly]	make current window only one on the
					   screen

|CTRL-W_j|	CTRL-W j		move cursor to window below
|CTRL-W_k|	CTRL-W k		move cursor to window above
|CTRL-W_CTRL-W|	CTRL-W CTRL-W		move cursor to window below (wrap)
|CTRL-W_W|	CTRL-W W		move cursor to window above (wrap)
|CTRL-W_t|	CTRL-W t		move cursor to top window
|CTRL-W_b|	CTRL-W b		move cursor to bottom window
|CTRL-W_p|	CTRL-W p		move cursor to previous active window

|CTRL-W_r|	CTRL-W r		rotate windows downwards
|CTRL-W_R|	CTRL-W R		rotate windows upwards
|CTRL-W_x|	CTRL-W x		exchange current window with next one

|CTRL-W_=|	CTRL-W =		make all windows equal height & width
|CTRL-W_-|	CTRL-W -		decrease current window height
|CTRL-W_+|	CTRL-W +		increase current window height
|CTRL-W__|	CTRL-W _		set current window height (default:
					   very high)

|CTRL-W_<|	CTRL-W <		decrease current window width
|CTRL-W_>|	CTRL-W >		increase current window width
|CTRL-W_bar|	CTRL-W |		set current window width (default:
					   widest possible)
------------------------------------------------------------------------------
*Q_bu*		Buffer list commands

|:buffers|	:buffers  or  :files	list all known buffer and file names

|:ball|		:ball	  or  :sball	edit all args/buffers
|:unhide|	:unhide   or  :sunhide	edit all loaded buffers

|:badd|		:badd {fname}		add file name {fname} to the list
|:bunload|	:bunload[!] [N]		unload buffer [N] from memory
|:bdelete|	:bdelete[!] [N]		unload buffer [N] and delete it from
					   the buffer list

		in current window  in new window       ~
|:buffer|	:[N]buffer [N]     :[N]sbuffer [N]     to arg/buf N
|:bnext|	:[N]bnext [N]      :[N]sbnext [N]      to Nth next arg/buf
|:bNext|	:[N]bNext [N]      :[N]sbNext [N]      to Nth previous arg/buf
|:bprevious|	:[N]bprevious [N]  :[N]sbprevious [N]  to Nth previous arg/buf
|:bfirst|	:bfirst	           :sbfirst            to first arg/buf
|:blast|	:blast	           :sblast             to last arg/buf
|:bmodified|	:[N]bmod [N]       :[N]sbmod [N]       to Nth modified buf
------------------------------------------------------------------------------
*Q_sy*		Syntax Highlighting

|:syn-on|	:syntax on		start using syntax highlighting
|:syn-off|	:syntax off		stop using syntax highlighting

|:syn-keyword|	:syntax keyword {group-name} {keyword} ..
					add a syntax keyword item
|:syn-match|	:syntax match {group-name} {pattern} ...
					add syntax match item
|:syn-region|	:syntax region {group-name} {pattern} ...
					add syntax region item
|:syn-sync|	:syntax sync [ccomment | lines {N} | ...]
					tell syntax how to sync
|:syntax|	:syntax [list]		list current syntax items
|:syn-clear|	:syntax clear		clear all syntax info

|:highlight|	:highlight clear	clear all highlight info
|:highlight|	:highlight {group-name} {key}={arg} ..
					set highlighting for {group-name}

|:filetype|	:filetype on		switch on file type detection, without
					syntax highlighting
|:filetype|	:filetype plugin indent on
					switch on file type detection, with
					automatic indenting and settings
------------------------------------------------------------------------------
*Q_gu*		GUI commands

|:gui|		:gui			UNIX: start the GUI
|:gui|		:gui {fname} ..		idem, and edit {fname} ..

|:menu|		:menu			list all menus
|:menu|		:menu {mpath}		list menus starting with {mpath}
|:menu|		:menu {mpath} {rhs}	add menu {mpath}, giving {rhs}
|:menu|		:menu {pri} {mpath} {rhs}
					idem, with priorities {pri}
|:menu|		:menu ToolBar.{name} {rhs}
					add toolbar item, giving {rhs}
|:tmenu|	:tmenu {mpath} {text}	add tooltip to menu {mpath}
|:unmenu|	:unmenu {mpath}		remove menu {mpath}
------------------------------------------------------------------------------
*Q_fo*		Folding

|'foldmethod'|	set foldmethod=manual	manual folding
		set foldmethod=indent	folding by indent
		set foldmethod=expr	folding by 'foldexpr'
		set foldmethod=syntax	folding by syntax regions
		set foldmethod=marker	folding by 'foldmarker'

|zf|		zf{motion}		operator: Define a fold manually
|:fold|		:{range}fold		define a fold for {range} lines
|zd|		zd			delete one fold under the cursor
|zD|		zD			delete all folds under the cursor

|zo|		zo			open one fold under the cursor
|zO|		zO			open all folds under the cursor
|zc|		zc			close one fold under the cursor
|zC|		zC			close all folds under the cursor

|zm|		zm			fold more: decrease 'foldlevel'
|zM|		zM			close all folds: make 'foldlevel' zero
|zr|		zr			reduce folding: increase 'foldlevel'
|zR|		zR			open all folds: make 'foldlevel' max.

|zn|		zn			fold none: reset 'foldenable'
|zN|		zN			fold normal set 'foldenable'
|zi|		zi			invert 'foldenable'

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��Tvim80/doc/sponsor.txtnu�[���*sponsor.txt*   For Vim version 8.0.  Last change: 2008 Jun 21


		  VIM REFERENCE MANUAL    by Bram Moolenaar



SPONSOR VIM DEVELOPMENT						*sponsor*

Fixing bugs and adding new features takes a lot of time and effort.  To show
your appreciation for the work and motivate Bram and others to continue
working on Vim please send a donation.

Since Bram is back to a paid job the money will now be used to help children
in Uganda.  See |uganda|.  But at the same time donations increase Bram's
motivation to keep working on Vim!

For the most recent information about sponsoring look on the Vim web site:

	http://www.vim.org/sponsor/

More explanations can be found in the |sponsor-faq|.


REGISTERED VIM USER						*register*

You can become a registered Vim user by sending at least 10 euro.  This works
similar to sponsoring Vim, see |sponsor| above.  Registration was made
possible for the situation where your boss or bookkeeper may be willing to
register software, but does not like the terms "sponsoring" and "donation".

More explanations can be found in the |register-faq|.


VOTE FOR FEATURES					*vote-for-features*

To give registered Vim users and sponsors an advantage over lurkers they can
vote for the items Bram should work on.  How does this voting work?

1.  You send at least 10 euro.  See below for ways to transfer money
    |send-money|.

2.  You will be e-mailed a registration key.  Enter this key on your account
    page on the Vim website.  You can easily create an account if you don't
    have one yet.

3.  You can enter your votes on the voting page.  There is a link to that page
    on your account page after entering a registration key.  Your votes will
    be counted for two years.

4.  The voting results appear on the results page, which is visible for
    everybody:  http://www.vim.org/sponsor/vote_results.php

Additionally, once you have sent 100 euro or more in total, your name appears
in the "Vim hall of honour":   http://www.vim.org/sponsor/hall_of_honour.php
But only if you enable this on your account page.


HOW TO SEND MONEY						*send-money*

Credit card	Through PayPal, see the PayPal site for information:
			https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q
		The e-mail address for sending sponsorship money is:
			donate@vim.org
		The e-mail address for Vim registration is:
			register@vim.org
		Using Euro is preferred, other currencies are also accepted.
		In Euro countries a bank transfer is preferred, this has lower
		costs.

Other methods	See |iccf-donations|.
		Include "Vim sponsor" or "Vim registration" in the comment of
		your money transfer.  Send me an e-mail that mentions the
		amount you transferred if you want to vote for features and
		show others you are a registered Vim user or sponsor.

Cash		Small amounts can be sent with ordinary mail.  Put something
		around the money, so that it's not noticeable from the
		outside.  Mention your e-mail address if you want to vote for
		features and show others you are a registered Vim user or
		sponsor.

You can use this permanent address:
			Bram Moolenaar
			Finsterruetihof 1
			8134 Adliswil
			Switzerland



QUESTIONS AND ANSWERS				*sponsor-faq* *register-faq*

Why should I give money?

If you do not show your appreciation for Vim then Bram will be less motivated
to fix bugs and add new features.  He will do something else instead.


How much money should I send?

That is up to you.  The more you give, the more children will be helped.
An indication for individuals that use Vim at home: 10 Euro per year.  For
professional use: 30 Euro per year per person.  Send at least 10 euro to be
able to vote for features.


What do I get in return?

Each registered Vim user and sponsor who donates at least 10 euro will be able
to vote for new features.  These votes will give priority to the work on Vim.
The votes are valid for two years.  The more money you send the more your
votes count |votes-counted|.

If you send 100 Euro or more in total you will be mentioned on the "Vim hall
of honour" page on the Vim web site.  But only if you enable this on your
account page.  You can also select whether the amount will be visible.


How do I become a Vim sponsor or registered Vim user?

Send money, as explained above |send-money| and include your e-mail address.
When the money has been received you will receive a unique registration key.
This key can be used on the Vim website to activate voting on your Vim
account.  You will then get an extra page where you can vote for features and
choose whether others will be able to see that you donated.  There is a link
to this page on your "My Account" page.


What is the difference between sponsoring and registering?

It has a different name.  Use the term "registration" if your boss doesn't
like "sponsoring" or "donation".  The benefits are the same.


How can I send money?

See |send-money|.  Check the web site for the most recent information:
http://www.vim.org/sponsor/


Why don't you use the SourceForge donation system?

SourceForge takes 5% of the donations for themselves.  If you want to support
SourceForge you can send money to them directly.


I cannot afford to send money, may I still use Vim?

Yes.


I did not register Vim, can I use all available features?

Yes.


I noticed a bug, do I need to register before I can report it?

No, suggestions for improving Vim can always be given.  For improvements use
the developer |maillist|, for reporting bugs see |bugs|.


How are my votes counted?				*votes-counted*

You may vote when you send 10 euro or more.  You can enter up to ten votes.
You can select the same item several times to give it more points.  You can
also enter three counter votes, these count as negative points.

When you send 30 euro or more the points are doubled.  Above 100 euro they
count four times, above 300 euro they count six times, above 1000 euro ten
times.


Can I change my votes?

You can change your votes any time you like, up to two years after you
sent money.  The points will be counted right away.


Can I add an item to vote on?

Not directly.  You can suggest items to vote on to Bram.  He will consider
fitting your item into the list.


How about Charityware?

Currently the Vim donations go to |uganda| anyway.  Thus it doesn't matter if
you sponsor Vim or ICCF.  Except that Vim sponsoring will allow you to vote
for features.


I donated $$$, now please add feature XYZ!

There is no direct relation between your donation and the work Bram does.
Otherwise you would be paying for work and we would have to pay tax over the
donation.  If you want to hire Bram for specific work, contact him directly,
don't use the donation system.


Are the donations tax deductible?

That depends on your country.  The donations to help the children in |Uganda|
are tax deductible in Holland, Germany, Canada and in the USA.  See the ICCF
website http://iccf-holland.org/donate.html.  You must send an e-mail to Bram
to let him know that the donation is done because of the use of Vim.


Can you send me a bill?

No, because there is no relation between the money you send and the work that
is done.  But a receipt is possible.



 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�op���vim80/doc/gui.txtnu�[���*gui.txt*       For Vim version 8.0.  Last change: 2018 Mar 06


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Vim's Graphical User Interface				*gui* *GUI*

1. Starting the GUI		|gui-start|
2. Scrollbars			|gui-scrollbars|
3. Mouse Control		|gui-mouse|
4. Making GUI Selections	|gui-selections|
5. Menus			|menus|
6. Extras			|gui-extras|
7. Shell Commands		|gui-shell|

Other GUI documentation:
|gui_x11.txt|	For specific items of the X11 GUI.
|gui_w32.txt|	For specific items of the Win32 GUI.

{Vi does not have any of these commands}

==============================================================================
1. Starting the GUI				*gui-start* *E229* *E233*

First you must make sure you actually have a version of Vim with the GUI code
included.  You can check this with the ":version" command, it says "with xxx
GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK2, GTK3, etc., or
"MS-Windows 32 bit GUI version".

How to start the GUI depends on the system used.  Mostly you can run the
GUI version of Vim with:
    gvim [options] [files...]

The X11 version of Vim can run both in GUI and in non-GUI mode.  See
|gui-x11-start|.

			*gui-init* *gvimrc* *.gvimrc* *_gvimrc* *$MYGVIMRC*
The gvimrc file is where GUI-specific startup commands should be placed.  It
is always sourced after the |vimrc| file.  If you have one then the $MYGVIMRC
environment variable has its name.

When the GUI starts up initializations are carried out, in this order:
- The 'term' option is set to "builtin_gui" and terminal options are reset to
  their default value for the GUI |terminal-options|.
- If the system menu file exists, it is sourced.  The name of this file is
  normally "$VIMRUNTIME/menu.vim".  You can check this with ":version".  Also
  see |$VIMRUNTIME|.  To skip loading the system menu include 'M' in
  'guioptions'.				*buffers-menu* *no_buffers_menu*
  The system menu file includes a "Buffers" menu.  If you don't want this, set
  the "no_buffers_menu" variable in your .vimrc (not .gvimrc!): >
	:let no_buffers_menu = 1
< NOTE: Switching on syntax highlighting also loads the menu file, thus
  disabling the Buffers menu must be done before ":syntax on".
  The path names are truncated to 35 characters.  You can truncate them at a
  different length, for example 50, like this: >
	:let bmenu_max_pathlen = 50
- If the "-U {gvimrc}" command-line option has been used when starting Vim,
  the {gvimrc} file will be read for initializations.  The following
  initializations are skipped.  When {gvimrc} is "NONE" no file will be read
  for initializations.
- For Unix and MS-Windows, if the system gvimrc exists, it is sourced.  The
  name of this file is normally "$VIM/gvimrc".  You can check this with
  ":version".  Also see |$VIM|.
- The following are tried, and only the first one that exists is used:
  - If the GVIMINIT environment variable exists and is not empty, it is
    executed as an Ex command.
  - If the user gvimrc file exists, it is sourced.  The name of this file is
    normally "$HOME/.gvimrc".  You can check this with ":version".
  - For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
  - When a "_gvimrc" file is not found, ".gvimrc" is tried too.  And vice
    versa.
  The name of the first file found is stored in $MYGVIMRC, unless it was
  already set.
- If the 'exrc' option is set (which is NOT the default) the file ./.gvimrc
  is sourced, if it exists and isn't the same file as the system or user
  gvimrc file.  If this file is not owned by you, some security restrictions
  apply.  When ".gvimrc" is not found, "_gvimrc" is tried too.  For Macintosh
  and DOS/Win32 "_gvimrc" is tried first.

NOTE: All but the first one are not carried out if Vim was started with
"-u NONE" or "-u DEFAULTS" and no "-U" argument was given, or when started
with "-U NONE".

All this happens AFTER the normal Vim initializations, like reading your
.vimrc file.  See |initialization|.
But the GUI window is only opened after all the initializations have been
carried out.  If you want some commands to be executed just after opening the
GUI window, use the |GUIEnter| autocommand event.  Example: >
	:autocmd GUIEnter * winpos 100 50

You can use the gvimrc files to set up your own customized menus (see |:menu|)
and initialize other things that you may want to set up differently from the
terminal version.

Recommended place for your personal GUI initializations:
	Unix		    $HOME/.gvimrc or $HOME/.vim/gvimrc
	OS/2		    $HOME/.gvimrc, $HOME/vimfiles/gvimrc
			    or $VIM/.gvimrc
	MS-DOS and Win32    $HOME/_gvimrc, $HOME/vimfiles/gvimrc
			    or $VIM/_gvimrc
	Amiga		    s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
			    or $VIM/.gvimrc

The personal initialization files are searched in the order specified above
and only the first one that is found is read.

There are a number of options which only have meaning in the GUI version of
Vim.  These are 'guicursor', 'guifont', 'guipty' and 'guioptions'.  They are
documented in |options.txt| with all the other options.

If using the Motif or Athena version of the GUI (but not for the GTK+ or
Win32 version), a number of X resources are available.  See |gui-resources|.

Another way to set the colors for different occasions is with highlight
groups.  The "Normal" group is used to set the background and foreground
colors.  Example (which looks nice): >

	:highlight Normal guibg=grey90

The "guibg" and "guifg" settings override the normal background and
foreground settings.  The other settings for the Normal highlight group are
not used.  Use the 'guifont' option to set the font.

Also check out the 'guicursor' option, to set the colors for the cursor in
various modes.

Vim tries to make the window fit on the screen when it starts up.  This avoids
that you can't see part of it.  On the X Window System this requires a bit of
guesswork.  You can change the height that is used for the window title and a
task bar with the 'guiheadroom' option.

						*:winp* *:winpos* *E188*
:winp[os]
		Display current position of the top left corner of the GUI vim
		window in pixels.  Does not work in all versions.
		Also see |getwinpos()|, |getwinposx()| and |getwinposy()|.

:winp[os] {X} {Y}							*E466*
		Put the GUI vim window at the given {X} and {Y} coordinates.
		The coordinates should specify the position in pixels of the
		top left corner of the window.  Does not work in all versions.
		Does work in an (new) xterm |xterm-color|.
		When the GUI window has not been opened yet, the values are
		remembered until the window is opened.  The position is
		adjusted to make the window fit on the screen (if possible).

						    *:win* *:winsize* *E465*
:win[size] {width} {height}
		Set the window height to {width} by {height} characters.
		Obsolete, use ":set lines=11 columns=22".
		If you get less lines than expected, check the 'guiheadroom'
		option.

If you are running the X Window System, you can get information about the
window Vim is running in with these commands: >
	:!xwininfo -id $WINDOWID
	:!xprop -id $WINDOWID
	:execute '!xwininfo -id ' . v:windowid
	:execute '!xprop -id ' . v:windowid
<
							*gui-IME* *iBus*
Input methods for international characters in X that rely on the XIM
framework, most notably iBus, have been known to produce undesirable results
in gvim. These may include an inability to enter spaces, or long delays
between typing a character and it being recognized by the application.

One workaround that has been successful, for unknown reasons, is to prevent
gvim from forking into the background by starting it with the |-f| argument.

==============================================================================
2. Scrollbars						*gui-scrollbars*

There are vertical scrollbars and a horizontal scrollbar.  You may
configure which ones appear with the 'guioptions' option.

The interface looks like this (with ":set guioptions=mlrb"):

		       +------------------------------+ `
		       | File  Edit		 Help | <- Menu bar (m) `
		       +-+--------------------------+-+ `
		       |^|			    |^| `
		       |#| Text area.		    |#| `
		       | |			    | | `
		       |v|__________________________|v| `
 Normal status line -> |-+ File.c	       5,2  +-| `
 between Vim windows   |^|""""""""""""""""""""""""""|^| `
		       | |			    | | `
		       | | Another file buffer.     | | `
		       | |			    | | `
		       |#|			    |#| `
 Left scrollbar (l) -> |#|			    |#| <- Right `
		       |#|			    |#|    scrollbar (r) `
		       | |			    | | `
		       |v|			    |v| `
		       +-+--------------------------+-+ `
		       | |< ####		   >| | <- Bottom `
		       +-+--------------------------+-+    scrollbar (b) `

Any of the scrollbar or menu components may be turned off by not putting the
appropriate letter in the 'guioptions' string.  The bottom scrollbar is
only useful when 'nowrap' is set.


VERTICAL SCROLLBARS					*gui-vert-scroll*

Each Vim window has a scrollbar next to it which may be scrolled up and down
to move through the text in that buffer.  The size of the scrollbar-thumb
indicates the fraction of the buffer which can be seen in the window.
When the scrollbar is dragged all the way down, the last line of the file
will appear in the top of the window.

If a window is shrunk to zero height (by the growth of another window) its
scrollbar disappears.  It reappears when the window is restored.

If a window is vertically split, it will get a scrollbar when it is the
current window and when, taking the middle of the current window and drawing a
vertical line, this line goes through the window.
When there are scrollbars on both sides, and the middle of the current window
is on the left half, the right scrollbar column will contain scrollbars for
the rightmost windows.  The same happens on the other side.


HORIZONTAL SCROLLBARS					*gui-horiz-scroll*

The horizontal scrollbar (at the bottom of the Vim GUI) may be used to
scroll text sideways when the 'wrap' option is turned off.  The
scrollbar-thumb size is such that the text of the longest visible line may be
scrolled as far as possible left and right.  The cursor is moved when
necessary, it must remain on a visible character (unless 'virtualedit' is
set).

Computing the length of the longest visible line takes quite a bit of
computation, and it has to be done every time something changes.  If this
takes too much time or you don't like the cursor jumping to another line,
include the 'h' flag in 'guioptions'.  Then the scrolling is limited by the
text of the current cursor line.

							*athena-intellimouse*
If you have an Intellimouse and an X server that supports using the wheel,
then you can use the wheel to scroll the text up and down in gvim.  This works
with XFree86 4.0 and later, and with some older versions when you add patches.
See |scroll-mouse-wheel|.

For older versions of XFree86 you must patch your X server.  The following
page has a bit of information about using the Intellimouse on Linux as well as
links to the patches and X server binaries (may not have the one you need
though):
    http://www.inria.fr/koala/colas/mouse-wheel-scroll/

==============================================================================
3. Mouse Control					*gui-mouse*

The mouse only works if the appropriate flag in the 'mouse' option is set.
When the GUI is switched on, and 'mouse' wasn't set yet, the 'mouse' option is
automatically set to "a", enabling it for all modes except for the
|hit-enter| prompt.  If you don't want this, a good place to change the
'mouse' option is the "gvimrc" file.

Other options that are relevant:
'mousefocus'	window focus follows mouse pointer |gui-mouse-focus|
'mousemodel'	what mouse button does which action
'mousehide'	hide mouse pointer while typing text
'selectmode'	whether to start Select mode or Visual mode

A quick way to set these is with the ":behave" command.
							*:behave* *:be*
:be[have] {model}	Set behavior for mouse and selection.  Valid
			arguments are:
			   mswin	MS-Windows behavior
			   xterm	Xterm behavior

			Using ":behave" changes these options:
			option		mswin			xterm	~
			'selectmode'	"mouse,key"		""
			'mousemodel'	"popup"			"extend"
			'keymodel'	"startsel,stopsel"	""
			'selection'	"exclusive"		"inclusive"

In the $VIMRUNTIME directory, there is a script called |mswin.vim|, which will
also map a few keys to the MS-Windows cut/copy/paste commands.  This is NOT
compatible, since it uses the CTRL-V, CTRL-X and CTRL-C keys.  If you don't
mind, use this command: >
	:so $VIMRUNTIME/mswin.vim

For scrolling with a wheel on a mouse, see |scroll-mouse-wheel|.


3.1 Moving Cursor with Mouse				*gui-mouse-move*

Click the left mouse button somewhere in a text buffer where you want the
cursor to go, and it does!
This works in	    when 'mouse' contains ~
Normal mode	    'n' or 'a'
Visual mode	    'v' or 'a'
Insert mode	    'i' or 'a'

Select mode is handled like Visual mode.

You may use this with an operator such as 'd' to delete text from the current
cursor position to the position you point to with the mouse.  That is, you hit
'd' and then click the mouse somewhere.

							*gui-mouse-focus*
The 'mousefocus' option can be set to make the keyboard focus follow the
mouse pointer.  This means that the window where the mouse pointer is, is the
active window.  Warning: this doesn't work very well when using a menu,
because the menu command will always be applied to the top window.

If you are on the ':' line (or '/' or '?'), then clicking the left or right
mouse button will position the cursor on the ':' line (if 'mouse' contains
'c', 'a' or 'A').

In any situation the middle mouse button may be clicked to paste the current
selection.


3.2 Selection with Mouse				*gui-mouse-select*

The mouse can be used to start a selection.  How depends on the 'mousemodel'
option:
'mousemodel' is "extend": use the right mouse button
'mousemodel' is "popup":  use the left mouse button, while keeping the Shift
key pressed.

If there was no selection yet, this starts a selection from the old cursor
position to the position pointed to with the mouse.  If there already is a
selection then the closest end will be extended.

If 'selectmode' contains "mouse", then the selection will be in Select mode.
This means that typing normal text will replace the selection.  See
|Select-mode|.  Otherwise, the selection will be in Visual mode.

Double clicking may be done to make the selection word-wise, triple clicking
makes it line-wise, and quadruple clicking makes it rectangular block-wise.

See |gui-selections| on how the selection is used.


3.3 Other Text Selection with Mouse		*gui-mouse-modeless*
						*modeless-selection*
A different kind of selection is used when:
- in Command-line mode
- in the Command-line window and pointing in another window
- at the |hit-enter| prompt
- whenever the current mode is not in the 'mouse' option
- when holding the CTRL and SHIFT keys in the GUI

Since Vim continues like the selection isn't there, and there is no mode
associated with the selection, this is called modeless selection.  Any text in
the Vim window can be selected.  Select the text by pressing the left mouse
button at the start, drag to the end and release.  To extend the selection,
use the right mouse button when 'mousemodel' is "extend", or the left mouse
button with the shift key pressed when 'mousemodel' is "popup".
The selection is removed when the selected text is scrolled or changed.

On the command line CTRL-Y can be used to copy the selection into the
clipboard.  To do this from Insert mode, use CTRL-O : CTRL-Y <CR>.  When
'guioptions' contains a or A (default on X11), the selection is automatically
copied to the "* register.

The middle mouse button can then paste the text.  On non-X11 systems, you can
use CTRL-R +.


3.4 Using Mouse on Status Lines				*gui-mouse-status*

Clicking the left or right mouse button on the status line below a Vim
window makes that window the current window.  This actually happens on button
release (to be able to distinguish a click from a drag action).

With the left mouse button a status line can be dragged up and down, thus
resizing the windows above and below it.  This does not change window focus.

The same can be used on the vertical separator: click to give the window left
of it focus, drag left and right to make windows wider and narrower.


3.5 Various Mouse Clicks				*gui-mouse-various*

    <S-LeftMouse>	Search forward for the word under the mouse click.
			When 'mousemodel' is "popup" this starts or extends a
			selection.
    <S-RightMouse>	Search backward for the word under the mouse click.
    <C-LeftMouse>	Jump to the tag name under the mouse click.
    <C-RightMouse>	Jump back to position before the previous tag jump
			(same as "CTRL-T")


3.6 Mouse Mappings					*gui-mouse-mapping*

The mouse events, complete with modifiers, may be mapped.  Eg: >
   :map <S-LeftMouse>     <RightMouse>
   :map <S-LeftDrag>      <RightDrag>
   :map <S-LeftRelease>   <RightRelease>
   :map <2-S-LeftMouse>   <2-RightMouse>
   :map <2-S-LeftDrag>    <2-RightDrag>
   :map <2-S-LeftRelease> <2-RightRelease>
   :map <3-S-LeftMouse>   <3-RightMouse>
   :map <3-S-LeftDrag>    <3-RightDrag>
   :map <3-S-LeftRelease> <3-RightRelease>
   :map <4-S-LeftMouse>   <4-RightMouse>
   :map <4-S-LeftDrag>    <4-RightDrag>
   :map <4-S-LeftRelease> <4-RightRelease>
These mappings make selection work the way it probably should in a Motif
application, with shift-left mouse allowing for extending the visual area
rather than the right mouse button.

Mouse mapping with modifiers does not work for modeless selection.


3.7 Drag and drop						*drag-n-drop*

You can drag and drop one or more files into the Vim window, where they will
be opened as if a |:drop| command was used.

If you hold down Shift while doing this, Vim changes to the first dropped
file's directory.  If you hold Ctrl Vim will always split a new window for the
file.  Otherwise it's only done if the current buffer has been changed.

You can also drop a directory on Vim.  This starts the explorer plugin for
that directory (assuming it was enabled, otherwise you'll get an error
message).  Keep Shift pressed to change to the directory instead.

If Vim happens to be editing a command line, the names of the dropped files
and directories will be inserted at the cursor.  This allows you to use these
names with any Ex command.  Special characters (space, tab, double quote and
'|'; backslash on non-MS-Windows systems) will be escaped.

==============================================================================
4. Making GUI Selections				*gui-selections*

							*quotestar*
You may make selections with the mouse (see |gui-mouse-select|), or by using
Vim's Visual mode (see |v|).  If 'a' is present in 'guioptions', then
whenever a selection is started (Visual or Select mode), or when the selection
is changed, Vim becomes the owner of the windowing system's primary selection
(on MS-Windows the |gui-clipboard| is used; under X11, the |x11-selection| is
used - you should read whichever of these is appropriate now).

							*clipboard*
There is a special register for storing this selection, it is the "*
register.  Nothing is put in here unless the information about what text is
selected is about to change (e.g. with a left mouse click somewhere), or when
another application wants to paste the selected text.  Then the text is put
in the "* register.  For example, to cut a line and make it the current
selection/put it on the clipboard: >

	"*dd

Similarly, when you want to paste a selection from another application, e.g.,
by clicking the middle mouse button, the selection is put in the "* register
first, and then 'put' like any other register.  For example, to put the
selection (contents of the clipboard): >

	"*p

When using this register under X11, also see |x11-selection|.  This also
explains the related "+ register.

Note that when pasting text from one Vim into another separate Vim, the type
of selection (character, line, or block) will also be copied.  For other
applications the type is always character.  However, if the text gets
transferred via the |x11-cut-buffer|, the selection type is ALWAYS lost.

When the "unnamed" string is included in the 'clipboard' option, the unnamed
register is the same as the "* register.  Thus you can yank to and paste the
selection without prepending "* to commands.

==============================================================================
5. Menus						*menus*

For an introduction see |usr_42.txt| in the user manual.


5.1 Using Menus						*using-menus*

Basically, menus can be used just like mappings.  You can define your own
menus, as many as you like.
Long-time Vim users won't use menus much.  But the power is in adding your own
menus and menu items.  They are most useful for things that you can't remember
what the key sequence was.

For creating menus in a different language, see |:menutrans|.
If you don't want to use menus at all, see |'go-M'|.

							*menu.vim*
The default menus are read from the file "$VIMRUNTIME/menu.vim".  See
|$VIMRUNTIME| for where the path comes from.  You can set up your own menus.
Starting off with the default set is a good idea.  You can add more items, or,
if you don't like the defaults at all, start with removing all menus
|:unmenu-all|.  You can also avoid the default menus being loaded by adding
this line to your .vimrc file (NOT your .gvimrc file!): >
	:let did_install_default_menus = 1
If you also want to avoid the Syntax menu: >
	:let did_install_syntax_menu = 1
The first item in the Syntax menu can be used to show all available filetypes
in the menu (which can take a bit of time to load).  If you want to have all
filetypes already present at startup, add: >
	:let do_syntax_sel_menu = 1

The following menuitems show all available color schemes, keymaps and compiler
settings:
	Edit > Color Scheme ~
	Edit > Keymap ~
	Tools > Set Compiler ~
However, they can also take a bit of time to load, because they search all
related files from the directories in 'runtimepath'.  Therefore they are
loaded lazily (by the |CursorHold| event), or you can also load them manually.
If you want to have all these items already present at startup, add: >
	:let do_no_lazyload_menus = 1

Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
executed or after your .vimrc file is sourced.  This means that the 'encoding'
option and the language of messages (`:language messages`) must be set before
that (if you want to change them).

							*console-menus*
Although this documentation is in the GUI section, you can actually use menus
in console mode too.  You will have to load |menu.vim| explicitly then, it is
not done by default.  You can use the |:emenu| command and command-line
completion with 'wildmenu' to access the menu entries almost like a real menu
system.  To do this, put these commands in your .vimrc file: >
	:source $VIMRUNTIME/menu.vim
	:set wildmenu
	:set cpo-=<
	:set wcm=<C-Z>
	:map <F4> :emenu <C-Z>
Pressing <F4> will start the menu.  You can now use the cursor keys to select
a menu entry.  Hit <Enter> to execute it.  Hit <Esc> if you want to cancel.
This does require the |+menu| feature enabled at compile time.

							*tear-off-menus*
GTK+ 2 and Motif support Tear-off menus.  These are sort of sticky menus or
pop-up menus that are present all the time.  If the resizing does not work
correctly, this may be caused by using something like "Vim*geometry" in the
defaults.  Use "Vim.geometry" instead.

As to GTK+ 3, tear-off menus have been deprecated since GTK+ 3.4.
Accordingly, they are disabled if gvim is linked against GTK+ 3.4 or later.

The Win32 GUI version emulates Motif's tear-off menus.  Actually, a Motif user
will spot the differences easily, but hopefully they're just as useful.  You
can also use the |:tearoff| command together with |hidden-menus| to create
floating menus that do not appear on the main menu bar.


5.2 Creating New Menus					*creating-menus*

				*:me*  *:menu*  *:noreme*  *:noremenu*
				*:am*  *:amenu* *:an*      *:anoremenu*
				*:nme* *:nmenu* *:nnoreme* *:nnoremenu*
				*:ome* *:omenu* *:onoreme* *:onoremenu*
				*:vme* *:vmenu* *:vnoreme* *:vnoremenu*
				*:xme* *:xmenu* *:xnoreme* *:xnoremenu*
				*:sme* *:smenu* *:snoreme* *:snoremenu*
				*:ime* *:imenu* *:inoreme* *:inoremenu*
				*:cme* *:cmenu* *:cnoreme* *:cnoremenu*
				*E330* *E327* *E331* *E336* *E333*
				*E328* *E329* *E337* *E792*
To create a new menu item, use the ":menu" commands.  They are mostly like
the ":map" set of commands but the first argument is a menu item name, given
as a path of menus and submenus with a '.' between them, e.g.: >

   :menu File.Save  :w<CR>
   :inoremenu File.Save  <C-O>:w<CR>
   :menu Edit.Big\ Changes.Delete\ All\ Spaces  :%s/[ ^I]//g<CR>

This last one will create a new item in the menu bar called "Edit", holding
the mouse button down on this will pop up a menu containing the item
"Big Changes", which is a sub-menu containing the item "Delete All Spaces",
which when selected, performs the operation.

Special characters in a menu name:

	&	The next character is the shortcut key.  Make sure each
		shortcut key is only used once in a (sub)menu.  If you want to
		insert a literal "&" in the menu name use "&&".
	<Tab>	Separates the menu name from right-aligned text.  This can be
		used to show the equivalent typed command.  The text "<Tab>"
		can be used here for convenience.  If you are using a real
		tab, don't forget to put a backslash before it!
Example: >

   :amenu &File.&Open<Tab>:e  :browse e<CR>

[typed literally]
With the shortcut "F" (while keeping the <Alt> key pressed), and then "O",
this menu can be used.  The second part is shown as "Open     :e".  The ":e"
is right aligned, and the "O" is underlined, to indicate it is the shortcut.

The ":amenu" command can be used to define menu entries for all modes at once.
To make the command work correctly, a character is automatically inserted for
some modes:
	mode		inserted	appended	~
	Normal		nothing		nothing
	Visual		<C-C>		<C-\><C-G>
	Insert		<C-\><C-O>
	Cmdline		<C-C>		<C-\><C-G>
	Op-pending	<C-C>		<C-\><C-G>

Appending CTRL-\ CTRL-G is for going back to insert mode when 'insertmode' is
set. |CTRL-\_CTRL-G|

Example: >

   :amenu File.Next	:next^M

is equal to: >

   :nmenu File.Next	:next^M
   :vmenu File.Next	^C:next^M^\^G
   :imenu File.Next	^\^O:next^M
   :cmenu File.Next	^C:next^M^\^G
   :omenu File.Next	^C:next^M^\^G

Careful: In Insert mode this only works for a SINGLE Normal mode command,
because of the CTRL-O.  If you have two or more commands, you will need to use
the ":imenu" command.  For inserting text in any mode, you can use the
expression register: >

   :amenu Insert.foobar   "='foobar'<CR>P

Note that the '<' and 'k' flags in 'cpoptions' also apply here (when
included they make the <> form and raw key codes not being recognized).

Note that <Esc> in Cmdline mode executes the command, like in a mapping.  This
is Vi compatible.  Use CTRL-C to quit Cmdline mode.

						*:menu-<silent>* *:menu-silent*
To define a menu which will not be echoed on the command line, add
"<silent>" as the first argument.  Example: >
	:menu <silent> Settings.Ignore\ case  :set ic<CR>
The ":set ic" will not be echoed when using this menu.  Messages from the
executed command are still given though.  To shut them up too, add a ":silent"
in the executed command: >
	:menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>
"<silent>" may also appear just after "<special>" or "<script>".

					*:menu-<special>* *:menu-special*
Define a menu with <> notation for special keys, even though the "<" flag
may appear in 'cpoptions'.  This is useful if the side effect of setting
'cpoptions' is not desired.  Example: >
	:menu <special> Search.Header /Header<CR>
"<special>" must appear as the very first argument to the ":menu" command or
just after "<silent>" or "<script>".

						*:menu-<script>* *:menu-script*
The "to" part of the menu will be inspected for mappings.  If you don't want
this, use the ":noremenu" command (or the similar one for a specific mode).
If you do want to use script-local mappings, add "<script>" as the very first
argument to the ":menu" command or just after "<silent>" or "<special>".

							*menu-priority*
You can give a priority to a menu.  Menus with a higher priority go more to
the right.  The priority is given as a number before the ":menu" command.
Example: >
	:80menu Buffer.next :bn<CR>

The default menus have these priorities:
	File		10
	Edit		20
	Tools		40
	Syntax		50
	Buffers		60
	Window		70
	Help		9999

When no or zero priority is given, 500 is used.
The priority for the PopUp menu is not used.

The Help menu will be placed on the far right side of the menu bar on systems
which support this (Motif and GTK+).  For GTK+ 2 and 3, this is not done
anymore because right-aligning the Help menu is now discouraged UI design.

You can use a priority higher than 9999, to make it go after the Help menu,
but that is non-standard and is discouraged.  The highest possible priority is
about 32000.  The lowest is 1.

							*sub-menu-priority*
The same mechanism can be used to position a sub-menu.  The priority is then
given as a dot-separated list of priorities, before the menu name: >
	:menu 80.500 Buffer.next :bn<CR>
Giving the sub-menu priority is only needed when the item is not to be put
in a normal position.  For example, to put a sub-menu before the other items: >
	:menu 80.100 Buffer.first :brew<CR>
Or to put a sub-menu after the other items, and further items with default
priority will be put before it: >
	:menu 80.900 Buffer.last :blast<CR>
When a number is missing, the default value 500 will be used: >
	:menu .900 myMenu.test :echo "text"<CR>
The menu priority is only used when creating a new menu.  When it already
existed, e.g., in another mode, the priority will not change.  Thus, the
priority only needs to be given the first time a menu is used.
An exception is the PopUp menu.  There is a separate menu for each mode
(Normal, Op-pending, Visual, Insert, Cmdline).  The order in each of these
menus can be different.  This is different from menu-bar menus, which have
the same order for all modes.
NOTE: sub-menu priorities currently don't work for all versions of the GUI.

							*menu-separator* *E332*
Menu items can be separated by a special item that inserts some space between
items.  Depending on the system this is displayed as a line or a dotted line.
These items must start with a '-' and end in a '-'.  The part in between is
used to give it a unique name.  Priorities can be used as with normal items.
Example: >
	:menu Example.item1	:do something
	:menu Example.-Sep-	:
	:menu Example.item2	:do something different
Note that the separator also requires a rhs.  It doesn't matter what it is,
because the item will never be selected.  Use a single colon to keep it
simple.

							*gui-toolbar*
The toolbar is currently available in the Win32, Athena, Motif, GTK+ (X11),
and Photon GUI.  It should turn up in other GUIs in due course.  The
default toolbar is setup in menu.vim.
The display of the toolbar is controlled by the 'guioptions' letter 'T'.  You
can thus have menu & toolbar together, or either on its own, or neither.
The appearance is controlled by the 'toolbar' option.  You can choose between
an image, text or both.

							*toolbar-icon*
The toolbar is defined as a special menu called ToolBar, which only has one
level.  Vim interprets the items in this menu as follows:
1)  If an "icon=" argument was specified, the file with this name is used.
    The file can either be specified with the full path or with the base name.
    In the last case it is searched for in the "bitmaps" directory in
    'runtimepath', like in point 3.  Examples: >
	:amenu icon=/usr/local/pixmaps/foo_icon.xpm ToolBar.Foo :echo "Foo"<CR>
	:amenu icon=FooIcon ToolBar.Foo :echo "Foo"<CR>
<   Note that in the first case the extension is included, while in the second
    case it is omitted.
    If the file cannot be opened the next points are tried.
    A space in the file name must be escaped with a backslash.
    A menu priority must come _after_ the icon argument: >
	:amenu icon=foo 1.42 ToolBar.Foo :echo "42!"<CR>
2)  An item called 'BuiltIn##', where ## is a number, is taken as number ## of
    the built-in bitmaps available in Vim.  Currently there are 31 numbered
    from 0 to 30 which cover most common editing operations |builtin-tools|. >
	:amenu ToolBar.BuiltIn22 :call SearchNext("back")<CR>
3)  An item with another name is first searched for in the directory
    "bitmaps" in 'runtimepath'.  If found, the bitmap file is used as the
    toolbar button image.  Note that the exact filename is OS-specific: For
    example, under Win32 the command >
	:amenu ToolBar.Hello :echo "hello"<CR>
<   would find the file 'hello.bmp'.  Under GTK+/X11 it is 'Hello.xpm'.  With
    GTK+ 2 the files 'Hello.png', 'Hello.xpm' and 'Hello.bmp' are checked for
    existence, and the first one found would be used.
    For MS-Windows and GTK+ 2 the bitmap is scaled to fit the button.  For
    MS-Windows a size of 18 by 18 pixels works best.
    For MS-Windows the bitmap should have 16 colors with the standard palette.
    The light grey pixels will be changed to the Window frame color and the
    dark grey pixels to the window shadow color.  More colors might also work,
    depending on your system.
4)  If the bitmap is still not found, Vim checks for a match against its list
    of built-in names.  Each built-in button image has a name.
    So the command >
	:amenu ToolBar.Open :e
<   will show the built-in "open a file" button image if no open.bmp exists.
    All the built-in names can be seen used in menu.vim.
5)  If all else fails, a blank, but functioning, button is displayed.

							*builtin-tools*
nr  Name		Normal action  ~
00  New			open new window
01  Open		browse for file to open in current window
02  Save		write buffer to file
03  Undo		undo last change
04  Redo		redo last undone change
05  Cut			delete selected text to clipboard
06  Copy		copy selected text to clipboard
07  Paste		paste text from clipboard
08  Print		print current buffer
09  Help		open a buffer on Vim's builtin help
10  Find		start a search command
11  SaveAll		write all modified buffers to file
12  SaveSesn		write session file for current situation
13  NewSesn		write new session file
14  LoadSesn		load session file
15  RunScript		browse for file to run as a Vim script
16  Replace		prompt for substitute command
17  WinClose		close current window
18  WinMax		make current window use many lines
19  WinMin		make current window use few lines
20  WinSplit		split current window
21  Shell		start a shell
22  FindPrev		search again, backward
23  FindNext		search again, forward
24  FindHelp		prompt for word to search help for
25  Make		run make and jump to first error
26  TagJump		jump to tag under the cursor
27  RunCtags		build tags for files in current directory
28  WinVSplit		split current window vertically
29  WinMaxWidth		make current window use many columns
30  WinMinWidth		make current window use few columns

					*hidden-menus* *win32-hidden-menus*
In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
from the main menu bar.  You must then use the |:popup| or |:tearoff| command
to display it.

					*window-toolbar* *WinBar*
Each window can have a local toolbar.  This uses the first line of the window,
thus reduces the space for the text by one line.  The items in the toolbar
must start with "WinBar".

Only text can be used.  When using Unicode, special characters can be used to
make the items look like icons.

If the items do not fit then the last ones cannot be used.  The toolbar does
not wrap.

Note that Vim may be in any mode when executing these commands.  The menu
should be defined for Normal mode and will be executed without changing the
current mode. Thus if the current window is in Visual mode and the menu
command does not intentionally change the mode, Vim will remain in Visual
mode.  Best is to use `:nnoremenu` to avoid side effects.

Example for debugger tools: >
	nnoremenu 1.10 WinBar.Step :Step<CR>
	nnoremenu 1.20 WinBar.Next :Next<CR>
	nnoremenu 1.30 WinBar.Finish :Finish<CR>
	nnoremenu 1.40 WinBar.Cont :Continue<CR>
<
The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.

When splitting the window the window toolbar is not copied to the new window.

							*popup-menu*
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
special menu "PopUp".  This is the menu that is displayed when the right mouse
button is pressed, if 'mousemodel' is set to popup or popup_setpos.
Example: >
    nnoremenu 1.40 PopUp.&Paste	"+gP
    menu PopUp


5.3 Showing What Menus Are Mapped To			*showing-menus*

To see what an existing menu is mapped to, use just one argument after the
menu commands (just like you would with the ":map" commands).  If the menu
specified is a submenu, then all menus under that hierarchy will be shown.
If no argument is given after :menu at all, then ALL menu items are shown
for the appropriate mode (e.g., Command-line mode for :cmenu).

Special characters in the list, just before the rhs:
*	The menu was defined with "nore" to disallow remapping.
&	The menu was defined with "<script>" to allow remapping script-local
	mappings only.
-	The menu was disabled.

Note that hitting <Tab> while entering a menu name after a menu command may
be used to complete the name of the menu item.


5.4 Executing Menus					*execute-menus*

						*:em*  *:emenu* *E334* *E335*
:[range]em[enu] {menu}		Execute {menu} from the command line.
				The default is to execute the Normal mode
				menu.  If a range is specified, it executes
				the Visual mode menu.
				If used from <c-o>, it executes the
				insert-mode menu Eg: >
	:emenu File.Exit

If the console-mode vim has been compiled with WANT_MENU defined, you can
use :emenu to access useful menu items you may have got used to from GUI
mode.  See 'wildmenu' for an option that works well with this.  See
|console-menus| for an example.

When using a range, if the lines match with '<,'>, then the menu is executed
using the last visual selection.


5.5 Deleting Menus					*delete-menus*

						*:unme*  *:unmenu*
						*:aun*   *:aunmenu*
						*:nunme* *:nunmenu*
						*:ounme* *:ounmenu*
						*:vunme* *:vunmenu*
						*:xunme* *:xunmenu*
						*:sunme* *:sunmenu*
						*:iunme* *:iunmenu*
						*:cunme* *:cunmenu*
To delete a menu item or a whole submenu, use the unmenu commands, which are
analogous to the unmap commands.  Eg: >
    :unmenu! Edit.Paste

This will remove the Paste item from the Edit menu for Insert and
Command-line modes.

Note that hitting <Tab> while entering a menu name after an umenu command
may be used to complete the name of the menu item for the appropriate mode.

To remove all menus use:			*:unmenu-all*  >
	:unmenu *	" remove all menus in Normal and visual mode
	:unmenu! *	" remove all menus in Insert and Command-line mode
	:aunmenu *	" remove all menus in all modes

If you want to get rid of the menu bar: >
	:set guioptions-=m


5.6 Disabling Menus					*disable-menus*

						*:menu-disable* *:menu-enable*
If you do not want to remove a menu, but disable it for a moment, this can be
done by adding the "enable" or "disable" keyword to a ":menu" command.
Examples: >
	:menu disable &File.&Open\.\.\.
	:amenu enable *
	:amenu disable &Tools.*

The command applies to the modes as used with all menu commands.  Note that
characters like "&" need to be included for translated names to be found.
When the argument is "*", all menus are affected.  Otherwise the given menu
name and all existing submenus below it are affected.


5.7 Examples for Menus					*menu-examples*

Here is an example on how to add menu items with menu's!  You can add a menu
item for the keyword under the cursor.  The register "z" is used. >

  :nmenu Words.Add\ Var		wb"zye:menu! Words.<C-R>z <C-R>z<CR>
  :nmenu Words.Remove\ Var	wb"zye:unmenu! Words.<C-R>z<CR>
  :vmenu Words.Add\ Var		"zy:menu! Words.<C-R>z <C-R>z <CR>
  :vmenu Words.Remove\ Var	"zy:unmenu! Words.<C-R>z<CR>
  :imenu Words.Add\ Var		<Esc>wb"zye:menu! Words.<C-R>z <C-R>z<CR>a
  :imenu Words.Remove\ Var	<Esc>wb"zye:unmenu! Words.<C-R>z<CR>a

(the rhs is in <> notation, you can copy/paste this text to try out the
mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is
the <CR> key.  |<>|)


5.8 Tooltips & Menu tips

See section |42.4| in the user manual.

							*:tmenu* *:tm*
:tm[enu] {menupath} {rhs}	Define a tip for a menu or tool.  {only in
				X11 and Win32 GUI}

:tm[enu] [menupath]		List menu tips. {only in X11 and Win32 GUI}

							*:tunmenu* *:tu*
:tu[nmenu] {menupath}		Remove a tip for a menu or tool.
				{only in X11 and Win32 GUI}

When a tip is defined for a menu item, it appears in the command-line area
when the mouse is over that item, much like a standard Windows menu hint in
the status bar.  (Except when Vim is in Command-line mode, when of course
nothing is displayed.)
When a tip is defined for a ToolBar item, it appears as a tooltip when the
mouse pauses over that button, in the usual fashion.  Use the |hl-Tooltip|
highlight group to change its colors.

A "tip" can be defined for each menu item.  For example, when defining a menu
item like this: >
	:amenu MyMenu.Hello :echo "Hello"<CR>
The tip is defined like this: >
	:tmenu MyMenu.Hello Displays a greeting.
And delete it with: >
	:tunmenu MyMenu.Hello

Tooltips are currently only supported for the X11 and Win32 GUI.  However, they
should appear for the other gui platforms in the not too distant future.

The ":tmenu" command works just like other menu commands, it uses the same
arguments.  ":tunmenu" deletes an existing menu tip, in the same way as the
other unmenu commands.

If a menu item becomes invalid (i.e. its actions in all modes are deleted) Vim
deletes the menu tip (and the item) for you.  This means that :aunmenu deletes
a menu item - you don't need to do a :tunmenu as well.


5.9 Popup Menus

In the Win32 and GTK+ GUI, you can cause a menu to popup at the cursor.
This behaves similarly to the PopUp menus except that any menu tree can
be popped up.

This command is for backwards compatibility, using it is discouraged, because
it behaves in a strange way.

							*:popup* *:popu*
:popu[p] {name}			Popup the menu {name}.  The menu named must
				have at least one subentry, but need not
				appear on the menu-bar (see |hidden-menus|).
				{only available for Win32 and GTK GUI or in
				the terminal when compiled with +insert_expand}

:popu[p]! {name}		Like above, but use the position of the mouse
				pointer instead of the cursor.
				In the terminal this is the last known
				position, which is usually at the last click
				or release (mouse movement is irrelevalt).

Example: >
	:popup File
will make the "File" menu (if there is one) appear at the text cursor (mouse
pointer if ! was used). >

	:amenu ]Toolbar.Make	:make<CR>
	:popup ]Toolbar
This creates a popup menu that doesn't exist on the main menu-bar.

Note that in the GUI the :popup command will return immediately, before a
selection has been made.  In the terminal the commands waits for the user to
make a selection.

Note that a menu that starts with ']' will not be displayed.

==============================================================================
6. Extras						*gui-extras*

This section describes other features which are related to the GUI.

- With the GUI, there is no wait for one second after hitting escape, because
  the key codes don't start with <Esc>.

- Typing ^V followed by a special key in the GUI will insert "<Key>", since
  the internal string used is meaningless.  Modifiers may also be held down to
  get "<Modifiers-Key>".

- In the GUI, the modifiers SHIFT, CTRL, and ALT (or META) may be used within
  mappings of special keys and mouse events.  E.g.: :map <M-LeftDrag> <LeftDrag>

- In the GUI, several normal keys may have modifiers in mappings etc, these
  are <Space>, <Tab>, <NL>, <CR>, <Esc>.

- To check in a Vim script if the GUI is being used, you can use something
  like this: >

	if has("gui_running")
	   echo "yes, we have a GUI"
	else
	   echo "Boring old console"
	endif
<							*setting-guifont*
- When you use the same vimrc file on various systems, you can use something
  like this to set options specifically for each type of GUI: >

	if has("gui_running")
	    if has("gui_gtk2")
		:set guifont=Luxi\ Mono\ 12
	    elseif has("x11")
		" Also for GTK 1
		:set guifont=*-lucidatypewriter-medium-r-normal-*-*-180-*-*-m-*-*
	    elseif has("gui_win32")
		:set guifont=Luxi_Mono:h12:cANSI
	    endif
	endif

A recommended Japanese font is MS Mincho.  You can find info here:
http://www.lexikan.com/mincho.htm

==============================================================================
7. Shell Commands					*gui-shell*

For the X11 GUI the external commands are executed inside the gvim window.
See |gui-pty|.

WARNING: Executing an external command from the X11 GUI will not always
work.  "normal" commands like "ls", "grep" and "make" mostly work fine.
Commands that require an intelligent terminal like "less" and "ispell" won't
work.  Some may even hang and need to be killed from another terminal.  So be
careful!

For the Win32 GUI the external commands are executed in a separate window.
See |gui-shell-win32|.

 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z���6�6vim80/doc/scroll.txtnu�[���*scroll.txt*    For Vim version 8.0.  Last change: 2016 Nov 10


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Scrolling						*scrolling*

These commands move the contents of the window.  If the cursor position is
moved off of the window, the cursor is moved onto the window (with
'scrolloff' screen lines around it).  A page is the number of lines in the
window minus two.  The mnemonics for these commands may be a bit confusing.
Remember that the commands refer to moving the window (the part of the buffer
that you see) upwards or downwards in the buffer.  When the window moves
upwards in the buffer, the text in the window moves downwards on your screen.

See section |03.7| of the user manual for an introduction.

1. Scrolling downwards		|scroll-down|
2. Scrolling upwards		|scroll-up|
3. Scrolling relative to cursor	|scroll-cursor|
4. Scrolling horizontally	|scroll-horizontal|
5. Scrolling synchronously	|scroll-binding|
6. Scrolling with a mouse wheel |scroll-mouse-wheel|

==============================================================================
1. Scrolling downwards					*scroll-down*

The following commands move the edit window (the part of the buffer that you
see) downwards (this means that more lines downwards in the text buffer can be
seen):

							*CTRL-E*
CTRL-E			Scroll window [count] lines downwards in the buffer.
			Mnemonic: Extra lines.

							*CTRL-D*
CTRL-D			Scroll window Downwards in the buffer.  The number of
			lines comes from the 'scroll' option (default: half a
			screen).  If [count] given, first set 'scroll' option
			to [count].  The cursor is moved the same number of
			lines down in the file (if possible; when lines wrap
			and when hitting the end of the file there may be a
			difference).  When the cursor is on the last line of
			the buffer nothing happens and a beep is produced.
			See also 'startofline' option.
			{difference from vi: Vim scrolls 'scroll' screen
			lines, instead of file lines; makes a difference when
			lines wrap}

<S-Down>	or				*<S-Down>* *<kPageDown>*
<PageDown>	or				*<PageDown>* *CTRL-F*
CTRL-F			Scroll window [count] pages Forwards (downwards) in
			the buffer.  See also 'startofline' option.
			When there is only one window the 'window' option
			might be used.

							*z+*
z+			Without [count]: Redraw with the line just below the
			window at the top of the window.  Put the cursor in
			that line, at the first non-blank in the line.
			With [count]: just like "z<CR>".

==============================================================================
2. Scrolling upwards					*scroll-up*

The following commands move the edit window (the part of the buffer that you
see) upwards (this means that more lines upwards in the text buffer can be
seen):

							*CTRL-Y*
CTRL-Y			Scroll window [count] lines upwards in the buffer.
			Note: When using the MS-Windows key bindings CTRL-Y is
			remapped to redo.

							*CTRL-U*
CTRL-U			Scroll window Upwards in the buffer.  The number of
			lines comes from the 'scroll' option (default: half a
			screen).  If [count] given, first set the 'scroll'
			option to [count].  The cursor is moved the same
			number of lines up in the file (if possible; when
			lines wrap and when hitting the end of the file there
			may be a difference).  When the cursor is on the first
			line of the buffer nothing happens and a beep is
			produced.  See also 'startofline' option.
			{difference from vi: Vim scrolls 'scroll' screen
			lines, instead of file lines; makes a difference when
			lines wrap}

<S-Up>		or					*<S-Up>* *<kPageUp>*
<PageUp>	or					*<PageUp>* *CTRL-B*
CTRL-B			Scroll window [count] pages Backwards (upwards) in the
			buffer.  See also 'startofline' option.
			When there is only one window the 'window' option
			might be used.

							*z^*
z^			Without [count]: Redraw with the line just above the
			window at the bottom of the window.  Put the cursor in
			that line, at the first non-blank in the line.
			With [count]: First scroll the text to put the [count]
			line at the bottom of the window, then redraw with the
			line which is now at the top of the window at the
			bottom of the window.  Put the cursor in that line, at
			the first non-blank in the line.

==============================================================================
3. Scrolling relative to cursor				*scroll-cursor*

The following commands reposition the edit window (the part of the buffer that
you see) while keeping the cursor on the same line.  Note that the 'scrolloff'
option may cause context lines to show above and below the cursor.

							*z<CR>*
z<CR>			Redraw, line [count] at top of window (default
			cursor line).  Put cursor at first non-blank in the
			line.

							*zt*
zt			Like "z<CR>", but leave the cursor in the same
			column.  {not in Vi}

							*zN<CR>*
z{height}<CR>		Redraw, make window {height} lines tall.  This is
			useful to make the number of lines small when screen
			updating is very slow.  Cannot make the height more
			than the physical screen height.

							*z.*
z.			Redraw, line [count] at center of window (default
			cursor line).  Put cursor at first non-blank in the
			line.

							*zz*
zz			Like "z.", but leave the cursor in the same column.
			Careful: If caps-lock is on, this command becomes
			"ZZ": write buffer and exit!  {not in Vi}

							*z-*
z-			Redraw, line [count] at bottom of window (default
			cursor line).  Put cursor at first non-blank in the
			line.

							*zb*
zb			Like "z-", but leave the cursor in the same column.
			{not in Vi}

==============================================================================
4. Scrolling horizontally				*scroll-horizontal*

For the following four commands the cursor follows the screen.  If the
character that the cursor is on is moved off the screen, the cursor is moved
to the closest character that is on the screen.  The value of 'sidescroll' is
not used.

z<Right>    or						*zl* *z<Right>*
zl			Move the view on the text [count] characters to the
			right, thus scroll the text [count] characters to the
			left.  This only works when 'wrap' is off.  {not in
			Vi}

z<Left>      or						*zh* *z<Left>*
zh			Move the view on the text [count] characters to the
			left, thus scroll the text [count] characters to the
			right.  This only works when 'wrap' is off.  {not in
			Vi}

							*zL*
zL			Move the view on the text half a screenwidth to the
			right, thus scroll the text half a screenwidth to the
			left.  This only works when 'wrap' is off.  {not in
			Vi}

							*zH*
zH			Move the view on the text half a screenwidth to the
			left, thus scroll the text half a screenwidth to the
			right.  This only works when 'wrap' is off.  {not in
			Vi}

For the following two commands the cursor is not moved in the text, only the
text scrolls on the screen.

							*zs*
zs			Scroll the text horizontally to position the cursor
			at the start (left side) of the screen.  This only
			works when 'wrap' is off.  {not in Vi}

							*ze*
ze			Scroll the text horizontally to position the cursor
			at the end (right side) of the screen.  This only
			works when 'wrap' is off.  {not in Vi}

==============================================================================
5. Scrolling synchronously				*scroll-binding*

Occasionally, it is desirable to bind two or more windows together such that
when one window is scrolled, the other windows are also scrolled.  In Vim,
windows can be given this behavior by setting the (window-specific)
'scrollbind' option.  When a window that has 'scrollbind' set is scrolled, all
other 'scrollbind' windows are scrolled the same amount, if possible.  The
behavior of 'scrollbind' can be modified by the 'scrollopt' option.

When using the scrollbars, the binding only happens when scrolling the window
with focus (where the cursor is).  You can use this to avoid scroll-binding
for a moment without resetting options.

When a window also has the 'diff' option set, the scroll-binding uses the
differences between the two buffers to synchronize the position precisely.
Otherwise the following method is used.

							*scrollbind-relative*
Each 'scrollbind' window keeps track of its "relative offset," which can be
thought of as the difference between the current window's vertical scroll
position and the other window's vertical scroll position.  When one of the
'scrollbind' windows is asked to vertically scroll past the beginning or end
limit of its text, the window no longer scrolls, but remembers how far past
the limit it wishes to be.  The window keeps this information so that it can
maintain the same relative offset, regardless of its being asked to scroll
past its buffer's limits.

However, if a 'scrollbind' window that has a relative offset that is past its
buffer's limits is given the cursor focus, the other 'scrollbind' windows must
jump to a location where the current window's relative offset is valid.  This
behavior can be changed by clearing the "jump" flag from the 'scrollopt'
option.

						*syncbind* *:syncbind* *:sync*
:syncbind		Force all 'scrollbind' windows to have the same
			relative offset.  I.e., when any of the 'scrollbind'
			windows is scrolled to the top of its buffer, all of
			the 'scrollbind' windows will also be at the top of
			their buffers.

							*scrollbind-quickadj*
The 'scrollbind' flag is meaningful when using keyboard commands to vertically
scroll a window, and also meaningful when using the vertical scrollbar of the
window which has the cursor focus.  However, when using the vertical scrollbar
of a window which doesn't have the cursor focus, 'scrollbind' is ignored.
This allows quick adjustment of the relative offset of 'scrollbind' windows.

==============================================================================
6. Scrolling with a mouse wheel				*scroll-mouse-wheel*

When your mouse has a scroll wheel, it should work with Vim in the GUI.  How
it works depends on your system.  It might also work in an xterm
|xterm-mouse-wheel|.  By default only vertical scroll wheels are supported,
but some GUIs also support horizontal scroll wheels.

For the Win32 GUI the scroll action is hard coded.  It works just like
dragging the scrollbar of the current window.  How many lines are scrolled
depends on your mouse driver.  If the scroll action causes input focus
problems, see |intellimouse-wheel-problems|.

For the X11 GUIs (Motif, Athena and GTK) scrolling the wheel generates key
presses <ScrollWheelUp>, <ScrollWheelDown>, <ScrollWheelLeft> and
<ScrollWheelRight>.  For example, if you push the scroll wheel upwards a
<ScrollWheelUp> key press is generated causing the window to scroll upwards
(while the text is actually moving downwards).  The default action for these
keys are:
    <ScrollWheelUp>	    scroll three lines up	*<ScrollWheelUp>*
    <S-ScrollWheelUp>	    scroll one page up		*<S-ScrollWheelUp>*
    <C-ScrollWheelUp>	    scroll one page up		*<C-ScrollWheelUp>*
    <ScrollWheelDown>	    scroll three lines down	*<ScrollWheelDown>*
    <S-ScrollWheelDown>	    scroll one page down	*<S-ScrollWheelDown>*
    <C-ScrollWheelDown>	    scroll one page down	*<C-ScrollWheelDown>*
    <ScrollWheelLeft>	    scroll six columns left	*<ScrollWheelLeft>*
    <S-ScrollWheelLeft>	    scroll one page left	*<S-ScrollWheelLeft>*
    <C-ScrollWheelLeft>	    scroll one page left	*<C-ScrollWheelLeft>*
    <ScrollWheelRight>	    scroll six columns right	*<ScrollWheelRight>*
    <S-ScrollWheelRight>    scroll one page right	*<S-ScrollWheelRight>*
    <C-ScrollWheelRight>    scroll one page right	*<C-ScrollWheelRight>*
This should work in all modes, except when editing the command line.

Note that horizontal scrolling only works if 'nowrap' is set.  Also, unless
the "h" flag in 'guioptions' is set, the cursor moves to the longest visible
line if the cursor line is about to be scrolled off the screen (similarly to
how the horizontal scrollbar works).

You can modify the default behavior by mapping the keys.  For example, to make
the scroll wheel move one line or half a page in Normal mode: >
   :map <ScrollWheelUp> <C-Y>
   :map <S-ScrollWheelUp> <C-U>
   :map <ScrollWheelDown> <C-E>
   :map <S-ScrollWheelDown> <C-D>
You can also use Alt and Ctrl modifiers.

This only works when Vim gets the scroll wheel events, of course.  You can
check if this works with the "xev" program.

When using XFree86, the /etc/XF86Config file should have the correct entry for
your mouse.  For FreeBSD, this entry works for a Logitech scrollmouse: >
    Protocol     "MouseMan"
    Device       "/dev/psm0"
    ZAxisMapping 4 5
See the XFree86 documentation for information.

						*<MouseDown>* *<MouseUp>*
The keys <MouseDown> and <MouseUp> have been deprecated.  Use <ScrollWheelUp>
instead of <MouseDown> and use <ScrollWheelDown> instead of <MouseUp>.

							*xterm-mouse-wheel*
To use the mouse wheel in a new xterm you only have to make the scroll wheel
work in your Xserver, as mentioned above.

To use the mouse wheel in an older xterm you must do this:
1. Make it work in your Xserver, as mentioned above.
2. Add translations for the xterm, so that the xterm will pass a scroll event
   to Vim as an escape sequence.
3. Add mappings in Vim, to interpret the escape sequences as <ScrollWheelDown>
   or <ScrollWheelUp> keys.

You can do the translations by adding this to your ~.Xdefaults file (or other
file where your X resources are kept): >

  XTerm*VT100.Translations:		#override \n\
		s<Btn4Down>: string("0x9b") string("[64~") \n\
		s<Btn5Down>: string("0x9b") string("[65~") \n\
		<Btn4Down>: string("0x9b") string("[62~") \n\
		<Btn5Down>: string("0x9b") string("[63~") \n\
		<Btn4Up>: \n\
		<Btn5Up>:

Add these mappings to your vimrc file: >
	:map <M-Esc>[62~ <ScrollWheelUp>
	:map! <M-Esc>[62~ <ScrollWheelUp>
	:map <M-Esc>[63~ <ScrollWheelDown>
	:map! <M-Esc>[63~ <ScrollWheelDown>
	:map <M-Esc>[64~ <S-ScrollWheelUp>
	:map! <M-Esc>[64~ <S-ScrollWheelUp>
	:map <M-Esc>[65~ <S-ScrollWheelDown>
	:map! <M-Esc>[65~ <S-ScrollWheelDown>
<
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��c�{{vim80/doc/pi_zip.txtnu�[���*pi_zip.txt*	For Vim version 8.0.  Last change: 2016 Sep 13

				+====================+
				| Zip File Interface |
				+====================+

Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
	  (remove NOSPAM from Campbell's email first)
Copyright: Copyright (C) 2005-2015 Charles E Campbell	 *zip-copyright*
	The VIM LICENSE (see |copyright|) applies to the files in this
	package, including zipPlugin.vim, zip.vim, and pi_zip.vim.  except use
	"zip.vim" instead of "VIM".  Like anything else that's free, zip.vim
	and its associated files are provided *as is* and comes with no
	warranty of any kind, either expressed or implied.  No guarantees of
	merchantability.  No guarantees of suitability for any purpose.  By
	using this plugin, you agree that in no event will the copyright
	holder be liable for any damages resulting from the use of this
	software. Use at your own risk!

==============================================================================
1. Contents						*zip* *zip-contents*
   1. Contents................................................|zip-contents|
   2. Usage...................................................|zip-usage|
   3. Additional Extensions...................................|zip-extension|
   4. History.................................................|zip-history|

==============================================================================
2. Usage						*zip-usage* *zip-manual*

   When one edits a *.zip file, this plugin will handle displaying a
   contents page.  Select a file to edit by moving the cursor atop
   the desired file, then hit the <return> key.  After editing, one may
   also write to the file.  Currently, one may not make a new file in
   zip archives via the plugin.

								*zip-x*
   x : may extract a listed file when the cursor is atop it

   OPTIONS

   							*g:zip_nomax*

   If this variable exists and is true, the file window will not be
   automatically maximized when opened.

							*g:zip_shq*
   Different operating systems may use one or more shells to execute
   commands.  Zip will try to guess the correct quoting mechanism to
   allow spaces and whatnot in filenames; however, if it is incorrectly
   guessing the quote to use for your setup, you may use >
	g:zip_shq
<  which by default is a single quote under Unix (') and a double quote
   under Windows (").  If you'd rather have no quotes, simply set
   g:zip_shq to the empty string (let g:zip_shq= "") in your <.vimrc>.

   							*g:zip_unzipcmd*
   Use this option to specify the program which does the duty of "unzip".
   It's used during browsing. By default: >
   	let g:zip_unzipcmd= "unzip"
<
							*g:zip_zipcmd*
   Use this option to specify the program which does the duty of "zip".
   It's used during the writing (updating) of a file already in a zip
   file; by default: >
   	let g:zip_zipcmd= "zip"
<
							*g:zip_extractcmd*
   This option specifies the program (and any options needed) used to
   extract a file from a zip archive.  By default, >
   	let g:zip_extractcmd= g:zip_unzipcmd
<
   PREVENTING LOADING~

   If for some reason you do not wish to use vim to examine zipped files,
   you may put the following two variables into your <.vimrc> to prevent
   the zip plugin from loading: >

	let g:loaded_zipPlugin= 1
	let g:loaded_zip      = 1
<

==============================================================================
3. Additional Extensions					*zip-extension*

   Apparently there are a number of archivers which generate zip files that
   don't use the .zip extension (.jar, .xpi, etc).  To handle such files,
   place a line in your <.vimrc> file: >

	au BufReadCmd *.jar,*.xpi call zip#Browse(expand("<amatch>"))
<
   One can simply extend this line to accommodate additional extensions that
   should be treated as zip files.

   Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc.
   Currently (11/30/15) it holds: >

	let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,
       \ *.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm,
       \ *.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,
       \ *.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx,*.epub'

==============================================================================
4. History							*zip-history* {{{1
   v28 Oct 08, 2014 * changed the sanity checks for executables to reflect
   		      the command actually to be attempted in zip#Read()
		      and zip#Write()
		    * added the extraction of a file capability
       Nov 30, 2015 * added *.epub to the |g:zipPlugin_ext| list
       Sep 13, 2016 * added *.apk to the |g:zipPlugin_ext| list and
		      sorted the suffices.
   v27 Jul 02, 2013 * sanity check: zipfile must have "PK" as its first
		      two bytes.
		    * modified to allow zipfile: entries in quickfix lists
   v26 Nov 15, 2012 * (Jason Spiro) provided a lot of new extensions that
		      are synonyms for .zip
   v25 Jun 27, 2011 * using keepj with unzip -Z
		      (consistent with the -p variant)
		    * (Ben Staniford) now uses
			has("win32unix") && executable("cygpath")
		      before converting to cygwin-style paths
   v24 Jun 21, 2010 * (Cédric Bosdonnat) unzip seems to need its filenames
		      fnameescape'd as well as shellquote'd
		    * (Motoya Kurotsu) inserted keepj before 0d to protect
		      jump list
   v17 May 09, 2008 * arno caught a security bug
   v15 Sep 07, 2007 * &shq now used if not the empty string for g:zip_shq
   v14 May 07, 2007 * using b:zipfile instead of w:zipfile to avoid problem
                      when editing alternate file to bring up a zipfile
   v10 May 02, 2006 * now using "redraw then echo" to show messages, instead
                      of "echo and prompt user"
		    * g:zip_shq provided to allow for quoting control for the
		      command being passed via :r! ... commands.
   v8 Apr 10, 2006 * Bram Moolenaar reported that he received an error message
                     due to "Pattern not found: ^.*\%0c"; this was caused by
		     stridx finding a Name... at the beginning of the line;
		     zip.vim tried 4,$s/^.*\%0c//, but that doesn't work.
		     Fixed.
   v7 Mar 22, 2006 * escaped some characters that can cause filename handling
                     problems.
   v6 Dec 21, 2005 * writing to files not in directories caused problems -
                     fixed (pointed out by Christian Robinson)
   v5 Nov 22, 2005 * report option workaround installed
   v3 Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
   v2 Sep 16, 2005 * silenced some commands (avoiding hit-enter prompt)
                   * began testing under Windows; works thus far
		   * filetype detection fixed
      Nov 03, 2005 * handles writing zipfiles across a network using
                     netrw#NetWrite()
   v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing

==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
PK�j�ZN4�1�1vim80/doc/quotes.txtnu�[���*quotes.txt*    For Vim version 8.0.  Last change: 2018 Mar 29


		  VIM REFERENCE MANUAL    by Bram Moolenaar


							*quotes*
Here are some nice quotes about Vim that I collected from news and mail.


vim (vim) noun - Ebullient vitality and energy.  [Latin, accusative of vis,
strength]  (Dictionary)

Vim is so much better than vi that a great many of my old vi :map's became
immediately obsolete! (Tony Nugent, Australia)

Coming with a very GUI mindset from Windows, I always thought of people using
Vi as some kind of outer space alien in human clothes.  Once I tried I really
got addicted by its power and now I found myself typing Vim keypresses in the
oddest places! That's why I would like to see Vim embedded in every
application which deals with text editing.  (José Fonseca)

I was a 12-year emacs user who switched to Vim about a year ago after finally
giving up on the multiple incompatible versions, flaky contributed packages,
disorganized keystrokes, etc.  And it was one of the best moves I ever made.
(Joel Burton)

Although all of the programs were used during the preparation of the new and
revised material, most of the editing was done with Vim versions 4.5 and 5.0
under GNU-Linux (Redhat 4.2).  (Arnold Robbins, Israel, author of "Learning
the Vi editor")

Out of all the open software i've ever seen and used, and i've seen a lot, Vim
is the best, most useful and highest quality to work with, second only to the
linux kernel itself.  (Peter Jay Salzman)

It's well worth noting that the _entirety_ of SourceForge was written using
Vim and its nifty PHP syntax highlighting.  I think the entire SF.net tech
staff uses Vim and we're all excited to have you aboard! (Tim Perdue)

Vim is one of a select bunch of tools for which I have no substitute.  It is
a brilliant piece of work! (Biju Chacko)

A previous girlfriend of mine switched to emacs.  Needless to say, the
relationship went nowhere.  (Geoffrey Mann)

I rarely think about Vim, in the same way that I guess a fish rarely thinks
about water.  It's the environment in which everything else happens.  I'm a
fairly busy system administrator working on a lot of different platforms.  Vim
is the only thing that's consistent across all my systems, and it's just about
the only thing that doesn't break from time to time.  When a new system comes
in the door without Vim, I install it right away.  Great to have a tool that's
the same everywhere, that's completely reliable, so I can ignore it and think
about other things.  (Pete Schaeffer)

Having recently succeeded in running Vim via telnet through a Nokia
Communicator, I can now report that it works nicely on a Palm Pilot too.
(Allan Kelly, Scotland)

You've done a tremendous job with 'VIM', Bram!  The more I use it, the more
impressed I get (I am an old 'vi' die hard who once started out with early
versions of 'emacs' in the late 1970's and was relieved by finding 'vi' in the
first UNIX I came across in 1983).  In my opinion, it's about time 'VIM'
replace 'emacs' as the standard for top editors.  (Bo Thide', Sweden)

I love and use Vim heavily too.  (Larry Wall)

Vi is like a Ferrari, if you're a beginner, it handles like a bitch, but once
you get the hang of it, it's small, powerful and FAST! (Unknown)
Vim is like a new model Ferrari, and sounds like one too - "VIIIIIIMMM!"
(Stephen Riehm, Germany)

Schon bei Nutzung eines Bruchteils der Vim-Funktionen wird der Benutzer recht
schnell die Vorzuege dieses Editors kennen- und schaetzenlernen.
Translated: Even when only using a fraction of Vim-functions, the user will
quickly get used to and appreciate the advantages of this editor.  (Garry
Glendown, conclusion of an article on Vim in iX magazine 9/1998)

I've recently acquired the O'Reilly book on Vi (it also discusses Vim
in-depth), and I'm amazed at just how powerful this application is.  (Jeffrey
Rankin)

This guide was written using the Windows 9.x distribution of gvim, which is
quite possibly the greatest thing to come along since God created the naked
girl.  (Michael DiBernardo)

Boy, I thought I knew almost everything about Vim, but every time I browse the
online documentation, I hit upon a minor but cool aspect of a Vim feature that
I didn't know before!  I must say the documentation is one the finest I've
ever seen in a product -- even better than most commercial products.
(Gautam Mudunuri)

Vim 4.5 is really a fantastic editor.  It has sooooo many features and more
importantly, the defaults are so well thought out that you really don't have
to change anything!!  Words cannot express my amazement and gratitude to the
creators of Vim.  Keep it up.  (Vikas, USA)

I wonder how long it will be before people will refer to other Vi editors as
Vim clones?  (Darren Hiebert)

I read about [auto-positioning-in-file-based-on-the-errors-from-make] in one
of those "Perfect Programmer's Editor" threads and was delighted to discover
that Vim already supports it.  (Brendan Macmillan, Australia)

I just discovered Vim (5.0) and I'm telling everyone I know about it!
I tell them Vim stands for Vi for the new (M)illenium.  Thanks so much!
(Matt F. Valentine)

I think from now on "vi" should be called "Vim Imitation", not the other way
around.  (Rungun Ramanathan)

The Law of Vim:
For each member b of the possible behaviour space B of program P, there exists
a finite time t before which at least one user u in the total user space U of
program P will request b becomes a member of the allowed behaviour space B'
(B' <= B).
In other words: Sooner or later everyone wants everything as an option.
(Negri)

Whenever I move to a new computing platform, the first thing I do is to port
Vim.  Lately, I am simply stunned by its ease of compilation using the
configure facility.  (A.M. Sabuncu, Turkey)

The options are really excellent and very powerful.  (Anish Maharaj)

The Spring user-interface designs are in, and word from the boutiques is that
80x24 text-only mode is back with a *vengeance! Vi editor clone Vim burst onto
March desk-tops with a dazzling show of pastel syntax highlights for its 5.0
look.  Strident and customizable, Vim raises eyebrows with its interpretation
of the classic Vi single-key macro collection.
http://www.ntk.net/index.cgi?back=archive98/now0327.txt&line=179#l

I just wanted to take this opportunity to let you know that Vim 5 ROCKS!
Syntax highlighting: how did I survive without it?!  Thank you for creating
mankind's best editor!  (Mun Johl, USA)

Thanks again for Vim.  I use it every day on Linux.  (Eric Foster-Johnson,
author of the book "UNIX Programming Tools")

The BEST EDITOR EVER (Stuart Woolford)

I have used most of Vim's fancy features at least once, many frequently, and I
can honestly say that I couldn't live with anything less anymore.  My
productivity has easily doubled compared to what it was when I used vi.
(Sitaram Chamarty)

I luv Vim.  It is incredible.  I'm naming my first-born Vimberly.  (Jose
Unpingco, USA)

Hint:  "Vim" is "vi improved" - much better! (Sven Guckes, Germany)

I use Vim every day.  I spend more time in Vim than in any other program...
It's the best vi clone there is.  I think it's great.  (Craig Sanders,
Australia)

I strongly advise using Vim--its infinite undo/redo saved me much grief.
(Terry Brown)

Thanks very much for writing what in my opinion is the finest text editor on
the planet.  If I were to get another cat, I would name it "Vim".
(Bob Sheehan, USA)

I typed :set all and the screen FILLED up with options.  A whole screen of
things to be set and unset.  I saw some of my old friends like wrapmargin,
modelines and showmode, but the screen was FILLED with new friends!   I love
them all!   I love Vim!   I'm so happy that I've found this editor!  I feel
like how I once felt when I started using vi after a couple of years of using
ed.  I never thought I'd forsake my beloved ed, but vi ... oh god, vi was
great.  And now, Vim.  (Peter Jay Salzman, USA)

I am really happy with such a wonderful software package.  Much better than
almost any expensive, off the shelf program.  (Jeff Walker)

Whenever I reread the Vim documentation I'm overcome with excitement at the
power of the editor.  (William Edward Webber, Australia)

Hurrah for Vim!! It is "at your fingertips" like vi, and has the extensions
that vi sorely needs: highlighting for executing commands on blocks, an easily
navigable and digestible help screen, and more.  (Paul Pax)

The reason WHY I don't have this amazingly useful macro anymore, is that I
now use Vim - and this is built in!! (Stephen Riehm, Germany)

I am a user of Vim and I love it.  I use it to do all my programming, C,
C++, HTML what ever.  (Tim Allwine)

I discovered Vim after years of struggling with the original vi, and I just
can't live without it anymore.  (Emmanuel Mogenet, USA)

Emacs has not a bit of chance to survive so long as Vim is around.  Besides,
it also has the most detailed software documentation I have ever seen---much
better than most commercial software!  (Leiming Qian)

This version of Vim will just blow people apart when they discover just how
fantastic it is! (Tony Nugent, Australia)

I took your advice & finally got Vim & I'm really impressed.  Instant convert.
(Patrick Killelea, USA)

Vim is by far my favorite piece of shareware and I have been particularly
pleased with version 3.0.  This is really a solid piece of work.  (Robert
Colon, USA)

Vim is a joy to use, it is so well thought and practical that I wonder why
anybody would use visual development tools.  Vim is powerful and elegant, it
looks deceptively simple but is almost as complex as a 747 (especially when I
look at my growing .vimrc), keep up that wonderful job, Vim is a centerpiece
of the free software world.  (Louis-David Mitterand, USA)

I cannot believe how great it is to use Vim.  I think the guys at work are
getting tired of hearing me bragging about it.  Others eyes are lighting up.
(Rick Croote)

Emacs takes way too much time to start up and run, it is too big and bulky for
effective use and the interface is more confusing than it is of any help.  Vim
however is short, it is fast, it is powerful, it has a good interface and it
is all purpose.  (Paal Ditlefsen Ekran)

From the first time I got Vim3.0, I was very enthusiastic.  It has almost no
problems.  The swapfile handling and the backup possibilities are robust, also
the protection against editing one file twice.  It is very compatible to the
real VI (and that is a MUST, because my brain is trained over years in using
it).  (Gert van Antwerpen, Holland)

Visual mode in Vim is a very powerful thing! (Tony Nugent, Australia)

I have to say that Vim is =THE= single greatest piece of source code to ever
come across the net (Jim Battle, USA).

In fact, if you do want to get a new vi I'd suggest Vim-3.0.  This is, by
far, the best version of vi I've ever seen (Albert W. Schueller).

I should mention that Vim is a very good editor and can compete with anything
(Ilya Beloozerov).

To tell the truth sometimes I used elvis, vile, xvi, calvin, etc.  And this is
the reason that I can state that Vim is the best! (Ferenc Deak, Hungary)

Vim is by far the best editor that I have used in a long time, and I have
looked at just about every thing that is available for every platform that I
use.  Vim is the best on all of them.  (Guy L. Oliver)

Vim is the greatest editor since the stone chisel.  (Jose Unpingco, USA)

I would like to say that with Vim I am finally making the 'emacs to vi'
transition - as an Editor it is so much better in many ways: keyboard layout,
memory usage, text alteration to name 3.  (Mark Adam)

In fact, now if I want to know what a particular setting does in vi, I fire up
Vim and check out its help!  (Nikhil Patel, USA)

As a vi user, Vim has made working with text a far more pleasant task than
before I encountered this program.  (Steinar Knutsen, Norway)

I use Vim since version 3.0.  Since that time, it is the ONLY editor I use,
with Solaris, Linux and OS/2 Warp.  I suggest all my friends to use Vim, they
try, and they continue using it.  Vim is really the best software I have ever
downloaded from the Internet, and the best editor I know of.  (Marco
Eccettuato, Italy)


In summary:
     __     ___		    _	    _	_  ___ _____ `
     \ \   / (_)_ __ ___   (_)___  | | | |/ _ \_   _| `
      \ \ / /| | '_ ` _ \  | / __| | |_| | | | || | `
       \ V / | | | | | | | | \__ \ |  _  | |_| || | `
	\_/  |_|_| |_| |_| |_|___/ |_| |_|\___/ |_| `
	     ____ _____ _   _ _____ _____ _ _ `
	    / ___|_   _| | | |	___|  ___| | | `
	    \___ \ | | | | | | |_  | |_  | | | `
	     ___) || | | |_| |	_| |  _| |_|_| `
	    |____/ |_|	\___/|_|   |_|	 (_|_)	    (Tony Nugent, Australia) `


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Zo�?��vim80/doc/os_mac.txtnu�[���*os_mac.txt*    For Vim version 8.0.  Last change: 2018 Jan 21


		  VIM REFERENCE MANUAL    by Bram Moolenaar et al.


					*mac* *Mac* *macintosh* *Macintosh*

This file documents the particularities of the Macintosh version of Vim.

NOTE: This file is a bit outdated.  You might find more useful info here:
	http://macvim.org/

1. Filename Convention		|mac-filename|
2. .vimrc and .vim files	|mac-vimfile|
3. Standard mappings		|mac-standard-mappings|
4. FAQ				|mac-faq|
5. Known Lack			|mac-lack|
6. Mac Bug Report		|mac-bug|
7. Compiling Vim		|mac-compile|
8. The darwin feature		|mac-darwin-feature|

There was a Mac port for version 3.0 of Vim.  Here are the first few lines
from the old file:

VIM Release Notes
Initial Macintosh release, VIM version 3.0
19 October 1994

Eric Fischer
<enf1@midway.uchicago.edu>, <eric@jcp.uchicago.edu>, <etaoin@uchicago.edu>
5759 N. Guilford Ave
Indianapolis IN 46220 USA

==============================================================================
1. Filename Convention					*mac-filename*

Starting with Vim version 7 you can just use the unix path separators with
Vim. In order to determine if the specified filename is relative to the
current folder or absolute (i.e. relative to the "Desktop"), the following
algorithm is used:

	If the path start by a "/", the path is absolute
	If the path start by a ":", the path is relative
	If the path doesn't start by neither a "/" nor ":",
	  and a ":" is found before a "/" then the path is absolute
>
		:e /HD/text
		:e HD:text
<	Edit the file "text" of the disk "HD" >
		:e :src:main.c
		:e src/main.c
<	Edit the file "main.c" in the folder "src" in the current folder >
		:e os_mac.c
<	Edit the file "os_mac.c" in the current folder.

You can use the |$VIM| and |$VIMRUNTIME|  variable. >

		:so $VIMRUNTIME:syntax:syntax.vim

==============================================================================
2. .vimrc and .vim files				*mac-vimfile*

It is recommended to use Unix style line separators for Vim scripts, thus a
single newline character.

When starting up Vim will load the $VIMRUNTIME/macmap.vim script to define
default command-key mappings.

On older systems files starting with a dot "." are discouraged, thus the rc
files are named "vimrc" or "_vimrc" and "gvimrc" or "_gvimrc".  These files
can be in any format (mac, dos or unix).  Vim can handle any file format when
the |'nocompatible'| option is set, otherwise it will only handle mac format
files.

==============================================================================
3. Standard mappings				*mac-standard-mappings*

The following mappings are available for cut/copy/paste from/to clipboard.

key		Normal	Visual	  Insert	Description ~
Command-v	"*P	"-d"*P    <C-R>*	paste text       *<D-v>*
Command-c		"*y			copy Visual text *<D-c>*
Command-x		"*d			cut Visual text  *<D-x>*
Backspace		"*d			cut Visual text

==============================================================================
4. Mac FAQ						*mac-faq*

On the internet:  http://macvim.org/OSX/index.php#FAQ

Q: I can't enter non-ASCII character in Apple Terminal.
A: Under Window Settings, Emulation, make sure that "Escape non-ASCII
   characters" is not checked.

Q: How do I start the GUI from the command line?
A: Assuming that Vim.app is located in /Applications:
	open /Applications/Vim.app
   Or:
	/Applications/Vim.app/Contents/MacOS/Vim -g  {arguments}

Q: How can I set $PATH to something reasonable when I start Vim.app from the
   GUI or with open?
A: The following trick works with most shells.  Put it in your vimrc file.
   This is included in the system vimrc file included with the binaries
   distributed at macvim.org . >
	let s:path = system("echo echo VIMPATH'${PATH}' | $SHELL -l")
	let $PATH = matchstr(s:path, 'VIMPATH\zs.\{-}\ze\n')

==============================================================================
5. Mac Lack						*mac-lack*

In a terminal CTRL-^ needs to be entered as Shift-Control-6.  CTRL-@ as
Shift-Control-2.

==============================================================================
6. Mac Bug Report					*mac-bug*

When reporting any Mac specific bug or feature change, please use the vim-mac
maillist |vim-mac|.  However, you need to be subscribed.  An alternative is to
send a message to the current MacVim maintainers:

	mac@vim.org

==============================================================================
7. Compiling Vim					*mac-compile*

See the file "src/INSTALLmac.txt" that comes with the source files.

==============================================================================
8. The Darwin Feature					*mac-darwin-feature*

If you have a Mac that isn't very old, you will be running OS X, also called
Darwin.  The last pre-Darwin OS was Mac OS 9.  The darwin feature makes Vim
use Darwin-specific properties.

What is accomplished with this feature is two-fold:

- Make Vim interoperable with the system clipboard.
- Incorporate into Vim a converter module that bridges the gap between some
  character encodings specific to the platform and those known to Vim.

Needless to say, both are not to be missed for any decent text editor to work
nicely with other applications running on the same desktop environment.

As Vim is not an application dedicated only to macOS, we need an extra feature
to add in order for it to offer the same user experience that our users on
other platforms enjoy to people on macOS.

For brevity, the feature is referred to as "darwin" to signify it one of the
Vim features that are specific to that particular platform.

The feature is a configuration option.  Accordingly, whether it is enabled or
not is determined at build time; once it is selected to be enabled, it is
compiled in and hence cannot be disabled at runtime.

The feature is enabled by default.  For most macOS users, that should be
sufficient unless they have specific needs mentioned briefly below.

If you want to disable it, pass `--disable-darwin` to the configure script: >

    ./configure --disable-darwin <other options>

and then run `make` to build Vim.  The order of the options doesn't matter.

To make sure at runtime whether or not the darwin feature is compiled in, you
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
otherwise.  For backward compatibility, you can still use `macunix` instead of
`osxdarwin`.

Notable use cases where `--disable-darwin` is turned out to be useful are:

- When you want to use |x11-selection| instead of the system clipboard.
- When you want to use |x11-clientserver|.

Since both have to make use of X11 inter-client communication for them to work
properly, and since the communication mechanism can come into conflict with
the system clipboard, the darwin feature should be disabled to prevent Vim
from hanging at runtime.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�・�D�Dvim80/doc/usr_90.txtnu�[���*usr_90.txt*	For Vim version 8.0.  Last change: 2008 Sep 10

		     VIM USER MANUAL - by Bram Moolenaar

				Installing Vim

								*install*
Before you can use Vim you have to install it.  Depending on your system it's
simple or easy.  This chapter gives a few hints and also explains how
upgrading to a new version is done.

|90.1|	Unix
|90.2|	MS-Windows
|90.3|	Upgrading
|90.4|	Common installation issues
|90.5|	Uninstalling Vim

 Previous chapter: |usr_45.txt|  Select your language
Table of contents: |usr_toc.txt|

==============================================================================
*90.1*	Unix

First you have to decide if you are going to install Vim system-wide or for a
single user.  The installation is almost the same, but the directory where Vim
is installed in differs.
   For a system-wide installation the base directory "/usr/local" is often
used.  But this may be different for your system.  Try finding out where other
packages are installed.
   When installing for a single user, you can use your home directory as the
base.  The files will be placed in subdirectories like "bin" and "shared/vim".


FROM A PACKAGE

You can get precompiled binaries for many different UNIX systems.  There is a
long list with links on this page:

	http://www.vim.org/binaries.html ~

Volunteers maintain the binaries, so they are often out of date.  It is a
good idea to compile your own UNIX version from the source.  Also, creating
the editor from the source allows you to control which features are compiled.
This does require a compiler though.

If you have a Linux distribution, the "vi" program is probably a minimal
version of Vim.  It doesn't do syntax highlighting, for example.  Try finding
another Vim package in your distribution, or search on the web site.


FROM SOURCES

To compile and install Vim, you will need the following:

	-  A C compiler (GCC preferred)
	-  The GZIP program (you can get it from www.gnu.org)
	-  The Vim source and runtime archives

To get the Vim archives, look in this file for a mirror near you, this should
provide the fastest download:

	ftp://ftp.vim.org/pub/vim/MIRRORS ~

Or use the home site ftp.vim.org, if you think it's fast enough.  Go to the
"unix" directory and you'll find a list of files there.  The version number is
embedded in the file name.  You will want to get the most recent version.
   You can get the files for Unix in two ways: One big archive that contains
everything, or four smaller ones that each fit on a floppy disk.  For version
6.1 the single big one is called:

	vim-6.1.tar.bz2 ~

You need the bzip2 program to uncompress it.  If you don't have it, get the
four smaller files, which can be uncompressed with gzip.  For Vim 6.1 they are
called:

	vim-6.1-src1.tar.gz ~
	vim-6.1-src2.tar.gz ~
	vim-6.1-rt1.tar.gz ~
	vim-6.1-rt2.tar.gz ~


COMPILING

First create a top directory to work in, for example: >

	mkdir ~/vim
	cd ~/vim

Then unpack the archives there.  If you have the one big archive, you unpack
it like this: >

	bzip2 -d -c path/vim-6.1.tar.bz2 | tar xf -

Change "path" to where you have downloaded the file. >

	gzip -d -c path/vim-6.1-src1.tar.gz | tar xf -
	gzip -d -c path/vim-6.1-src2.tar.gz | tar xf -
	gzip -d -c path/vim-6.1-rt1.tar.gz | tar xf -
	gzip -d -c path/vim-6.1-rt2.tar.gz | tar xf -

If you are satisfied with getting the default features, and your environment
is setup properly, you should be able to compile Vim with just this: >

	cd vim61/src
	make

The make program will run configure and compile everything.  Further on we
will explain how to compile with different features.
   If there are errors while compiling, carefully look at the error messages.
There should be a hint about what went wrong.  Hopefully you will be able to
correct it.  You might have to disable some features to make Vim compile.
Look in the Makefile for specific hints for your system.


TESTING

Now you can check if compiling worked OK: >

	make test

This will run a sequence of test scripts to verify that Vim works as expected.
Vim will be started many times and all kinds of text and messages flash by.
If it is alright you will finally see:

	test results: ~
	ALL DONE ~

If you get "TEST FAILURE" some test failed.  If there are one or two messages
about failed tests, Vim might still work, but not perfectly.  If you see a lot
of error messages or Vim doesn't finish until the end, there must be something
wrong.  Either try to find out yourself, or find someone who can solve it.
You could look in the |maillist-archive| for a solution.  If everything else
fails, you could ask in the vim |maillist| if someone can help you.


INSTALLING
							*install-home*
If you want to install in your home directory, edit the Makefile and search
for a line:

	#prefix = $(HOME) ~

Remove the # at the start of the line.
   When installing for the whole system, Vim has most likely already selected
a good installation directory for you.  You can also specify one, see below.
You need to become root for the following.

To install Vim do: >

	make install

That should move all the relevant files to the right place.  Now you can try
running vim to verify that it works.  Use two simple tests to check if Vim can
find its runtime files: >

	:help
	:syntax enable

If this doesn't work, use this command to check where Vim is looking for the
runtime files: >

	:echo $VIMRUNTIME

You can also start Vim with the "-V" argument to see what happens during
startup: >

	vim -V

Don't forget that the user manual assumes you Vim in a certain way.  After
installing Vim, follow the instructions at |not-compatible| to make Vim work
as assumed in this manual.


SELECTING FEATURES

Vim has many ways to select features.  One of the simple ways is to edit the
Makefile.  There are many directions and examples.  Often you can enable or
disable a feature by uncommenting a line.
   An alternative is to run "configure" separately.  This allows you to
specify configuration options manually.  The disadvantage is that you have to
figure out what exactly to type.
   Some of the most interesting configure arguments follow.  These can also be
enabled from the Makefile.

	--prefix={directory}		Top directory where to install Vim.

	--with-features=tiny		Compile with many features disabled.
	--with-features=small		Compile with some features disabled.
	--with-features=big		Compile with more features enabled.
	--with-features=huge		Compile with most features enabled.
					See |+feature-list| for which feature
					is enabled in which case.

	--enable-perlinterp		Enable the Perl interface.  There are
					similar arguments for ruby, python and
					tcl.

	--disable-gui			Do not compile the GUI interface.
	--without-x			Do not compile X-windows features.
					When both of these are used, Vim will
					not connect to the X server, which
					makes startup faster.

To see the whole list use: >

	./configure --help

You can find a bit of explanation for each feature, and links for more
information here: |feature-list|.
   For the adventurous, edit the file "feature.h".  You can also change the
source code yourself!

==============================================================================
*90.2*	MS-Windows

There are two ways to install the Vim program for Microsoft Windows.  You can
uncompress several archives, or use a self-installing big archive.  Most users
with fairly recent computers will prefer the second method.  For the first
one, you will need:

	- An archive with binaries for Vim.
	- The Vim runtime archive.
	- A program to unpack the zip files.

To get the Vim archives, look in this file for a mirror near you, this should
provide the fastest download:

	ftp://ftp.vim.org/pub/vim/MIRRORS ~

Or use the home site ftp.vim.org, if you think it's fast enough.  Go to the
"pc" directory and you'll find a list of files there.  The version number is
embedded in the file name.  You will want to get the most recent version.
We will use "61" here, which is version 6.1.

	gvim61.exe		The self-installing archive.

This is all you need for the second method.  Just launch the executable, and
follow the prompts.

For the first method you must chose one of the binary archives.  These are
available:

	gvim61.zip		The normal MS-Windows GUI version.
	gvim61ole.zip		The MS-Windows GUI version with OLE support.
				Uses more memory, supports interfacing with
				other OLE applications.
	vim61w32.zip		32 bit MS-Windows console version.  For use in
				a Win NT/2000/XP console.  Does not work well
				on Win 95/98.
	vim61d32.zip		32 bit MS-DOS version.  For use in the
				Win 95/98 console window.
	vim61d16.zip		16 bit MS-DOS version.  Only for old systems.
				Does not support long filenames.

You only need one of them.  Although you could install both a GUI and a
console version.  You always need to get the archive with runtime files.

	vim61rt.zip		The runtime files.

Use your un-zip program to unpack the files.  For example, using the "unzip"
program: >

	cd c:\
	unzip path\gvim61.zip
	unzip path\vim61rt.zip

This will unpack the files in the directory "c:\vim\vim61".  If you already
have a "vim" directory somewhere, you will want to move to the directory just
above it.
   Now change to the "vim\vim61" directory and run the install program: >

	install

Carefully look through the messages and select the options you want to use.
If you finally select "do it" the install program will carry out the actions
you selected.
   The install program doesn't move the runtime files.  They remain where you
unpacked them.

In case you are not satisfied with the features included in the supplied
binaries, you could try compiling Vim yourself.  Get the source archive from
the same location as where the binaries are.  You need a compiler for which a
makefile exists.  Microsoft Visual C works, but is expensive.  The Free
Borland command-line compiler 5.5 can be used, as well as the free MingW and
Cygwin compilers.  Check the file src/INSTALLpc.txt for hints.

==============================================================================
*90.3*	Upgrading

If you are running one version of Vim and want to install another, here is
what to do.


UNIX

When you type "make install" the runtime files will be copied to a directory
which is specific for this version.  Thus they will not overwrite a previous
version.  This makes it possible to use two or more versions next to
each other.
   The executable "vim" will overwrite an older version.  If you don't care
about keeping the old version, running "make install" will work fine.  You can
delete the old runtime files manually.  Just delete the directory with the
version number in it and all files below it.  Example: >

	rm -rf /usr/local/share/vim/vim58

There are normally no changed files below this directory.  If you did change
the "filetype.vim" file, for example, you better merge the changes into the
new version before deleting it.

If you are careful and want to try out the new version for a while before
switching to it, install the new version under another name.  You need to
specify a configure argument.  For example: >

	./configure --with-vim-name=vim6

Before running "make install", you could use "make -n install" to check that
no valuable existing files are overwritten.
   When you finally decide to switch to the new version, all you need to do is
to rename the binary to "vim".  For example: >

	mv /usr/local/bin/vim6 /usr/local/bin/vim


MS-WINDOWS

Upgrading is mostly equal to installing a new version.  Just unpack the files
in the same place as the previous version.  A new directory will be created,
e.g., "vim61", for the files of the new version.  Your runtime files, vimrc
file, viminfo, etc. will be left alone.
   If you want to run the new version next to the old one, you will have to do
some handwork.  Don't run the install program, it will overwrite a few files
of the old version.  Execute the new binaries by specifying the full path.
The program should be able to automatically find the runtime files for the
right version.  However, this won't work if you set the $VIMRUNTIME variable
somewhere.
   If you are satisfied with the upgrade, you can delete the files of the
previous version.  See |90.5|.

==============================================================================
*90.4*	Common installation issues

This section describes some of the common problems that occur when installing
Vim and suggests some solutions.  It also contains answers to many
installation questions.


Q: I Do Not Have Root Privileges.  How Do I Install Vim? (Unix)

Use the following configuration command to install Vim in a directory called
$HOME/vim: >

	./configure --prefix=$HOME

This gives you a personal copy of Vim.  You need to put $HOME/bin in your
path to execute the editor.  Also see |install-home|.


Q: The Colors Are Not Right on My Screen. (Unix)

Check your terminal settings by using the following command in a shell: >

	echo $TERM

If the terminal type listed is not correct, fix it.  For more hints, see
|06.2|.  Another solution is to always use the GUI version of Vim, called
gvim.  This avoids the need for a correct terminal setup.


Q: My Backspace And Delete Keys Don't Work Right

The definition of what key sends what code is very unclear for backspace <BS>
and Delete <Del> keys.  First of all, check your $TERM setting.  If there is
nothing wrong with it, try this: >

	:set t_kb=^V<BS>
	:set t_kD=^V<Del>

In the first line you need to press CTRL-V and then hit the backspace key.
In the second line you need to press CTRL-V and then hit the Delete key.
You can put these lines in your vimrc file, see |05.1|.  A disadvantage is
that it won't work when you use another terminal some day.  Look here for
alternate solutions: |:fixdel|.


Q: I Am Using RedHat Linux.  Can I Use the Vim That Comes with the System?

By default RedHat installs a minimal version of Vim.  Check your RPM packages
for something named "Vim-enhanced-version.rpm" and install that.


Q: How Do I Turn Syntax Coloring On?  How do I make plugins work?

Use the example vimrc script.  You can find an explanation on how to use it
here: |not-compatible|.

See chapter 6 for information about syntax highlighting: |usr_06.txt|.


Q: What Is a Good vimrc File to Use?

See the www.vim.org Web site for several good examples.


Q: Where Do I Find a Good Vim Plugin?

See the Vim-online site: http://vim.sf.net.  Many users have uploaded useful
Vim scripts and plugins there.


Q: Where Do I Find More Tips?

See the Vim-online site: http://vim.sf.net.  There is an archive with hints
from Vim users.  You might also want to search in the |maillist-archive|.

==============================================================================
*90.5*	Uninstalling Vim

In the unlikely event you want to uninstall Vim completely, this is how you do
it.


UNIX

When you installed Vim as a package, check your package manager to find out
how to remove the package again.
   If you installed Vim from sources you can use this command: >

	make uninstall

However, if you have deleted the original files or you used an archive that
someone supplied, you can't do this.  Do delete the files manually, here is an
example for when "/usr/local" was used as the root: >

	rm -rf /usr/local/share/vim/vim61
	rm /usr/local/bin/eview
	rm /usr/local/bin/evim
	rm /usr/local/bin/ex
	rm /usr/local/bin/gview
	rm /usr/local/bin/gvim
	rm /usr/local/bin/gvim
	rm /usr/local/bin/gvimdiff
	rm /usr/local/bin/rgview
	rm /usr/local/bin/rgvim
	rm /usr/local/bin/rview
	rm /usr/local/bin/rvim
	rm /usr/local/bin/rvim
	rm /usr/local/bin/view
	rm /usr/local/bin/vim
	rm /usr/local/bin/vimdiff
	rm /usr/local/bin/vimtutor
	rm /usr/local/bin/xxd
	rm /usr/local/man/man1/eview.1
	rm /usr/local/man/man1/evim.1
	rm /usr/local/man/man1/ex.1
	rm /usr/local/man/man1/gview.1
	rm /usr/local/man/man1/gvim.1
	rm /usr/local/man/man1/gvimdiff.1
	rm /usr/local/man/man1/rgview.1
	rm /usr/local/man/man1/rgvim.1
	rm /usr/local/man/man1/rview.1
	rm /usr/local/man/man1/rvim.1
	rm /usr/local/man/man1/view.1
	rm /usr/local/man/man1/vim.1
	rm /usr/local/man/man1/vimdiff.1
	rm /usr/local/man/man1/vimtutor.1
	rm /usr/local/man/man1/xxd.1


MS-WINDOWS

If you installed Vim with the self-installing archive you can run
the "uninstall-gui" program located in the same directory as the other Vim
programs, e.g. "c:\vim\vim61".  You can also launch it from the Start menu if
installed the Vim entries there.  This will remove most of the files, menu
entries and desktop shortcuts.  Some files may remain however, as they need a
Windows restart before being deleted.
   You will be given the option to remove the whole "vim" directory.  It
probably contains your vimrc file and other runtime files that you created, so
be careful.

Else, if you installed Vim with the zip archives, the preferred way is to use
the "uninstal" program (note the missing l at the end).  You can find it in
the same directory as the "install" program, e.g., "c:\vim\vim61".  This
should also work from the usual "install/remove software" page.
   However, this only removes the registry entries for Vim.  You have to
delete the files yourself.  Simply select the directory "vim\vim61" and delete
it recursively.  There should be no files there that you changed, but you
might want to check that first.
   The "vim" directory probably contains your vimrc file and other runtime
files that you created.  You might want to keep that.

==============================================================================

Table of contents: |usr_toc.txt|

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���5�5vim80/doc/usr_20.txtnu�[���*usr_20.txt*	For Vim version 8.0.  Last change: 2006 Apr 24

		     VIM USER MANUAL - by Bram Moolenaar

		     Typing command-line commands quickly


Vim has a few generic features that makes it easier to enter commands.  Colon
commands can be abbreviated, edited and repeated.  Completion is available for
nearly everything.

|20.1|	Command line editing
|20.2|	Command line abbreviations
|20.3|	Command line completion
|20.4|	Command line history
|20.5|	Command line window

     Next chapter: |usr_21.txt|  Go away and come back
 Previous chapter: |usr_12.txt|  Clever tricks
Table of contents: |usr_toc.txt|

==============================================================================
*20.1*	Command line editing

When you use a colon (:) command or search for a string with / or ?, Vim puts
the cursor on the bottom of the screen.  There you type the command or search
pattern.  This is called the Command line.  Also when it's used for entering a
search command.

The most obvious way to edit the command you type is by pressing the <BS> key.
This erases the character before the cursor.  To erase another character,
typed earlier, first move the cursor with the cursor keys.
   For example, you have typed this: >

	:s/col/pig/

Before you hit <Enter>, you notice that "col" should be "cow".  To correct
this, you type <Left> five times.  The cursor is now just after "col".  Type
<BS> and "w" to correct: >

	:s/cow/pig/

Now you can press <Enter> directly.  You don't have to move the cursor to the
end of the line before executing the command.

The most often used keys to move around in the command line:

	<Left>			one character left
	<Right>			one character right
	<S-Left> or <C-Left>	one word left
	<S-Right> or <C-Right>	one word right
	CTRL-B or <Home>	to begin of command line
	CTRL-E or <End>		to end of command line

	Note:
	<S-Left> (cursor left key with Shift key pressed) and <C-Left> (cursor
	left key with Control pressed) will not work on all keyboards.  Same
	for the other Shift and Control combinations.

You can also use the mouse to move the cursor.


DELETING

As mentioned, <BS> deletes the character before the cursor.  To delete a whole
word use CTRL-W.

	/the fine pig ~

		     CTRL-W

	/the fine ~

CTRL-U removes all text, thus allows you to start all over again.


OVERSTRIKE

The <Insert> key toggles between inserting characters and replacing the
existing ones.  Start with this text:

	/the fine pig ~

Move the cursor to the start of "fine" with <S-Left> twice (or <Left> eight
times, if <S-Left> doesn't work).  Now press <Insert> to switch to overstrike
and type "great":

	/the greatpig ~

Oops, we lost the space.  Now, don't use <BS>, because it would delete the
"t" (this is different from Replace mode).  Instead, press <Insert> to switch
from overstrike to inserting, and type the space:

	/the great pig ~


CANCELLING

You thought of executing a : or / command, but changed your mind.  To get rid
of what you already typed, without executing it, press CTRL-C or <Esc>.

	Note:
	<Esc> is the universal "get out" key.  Unfortunately, in the good old
	Vi pressing <Esc> in a command line executed the command!  Since that
	might be considered to be a bug, Vim uses <Esc> to cancel the command.
	But with the 'cpoptions' option it can be made Vi compatible.  And
	when using a mapping (which might be written for Vi) <Esc> also works
	Vi compatible.  Therefore, using CTRL-C is a method that always works.

If you are at the start of the command line, pressing <BS> will cancel the
command.  It's like deleting the ":" or "/" that the line starts with.

==============================================================================
*20.2*	Command line abbreviations

Some of the ":" commands are really long.  We already mentioned that
":substitute" can be abbreviated to ":s".  This is a generic mechanism, all
":" commands can be abbreviated.

How short can a command get?  There are 26 letters, and many more commands.
For example, ":set" also starts with ":s", but ":s" doesn't start a ":set"
command.  Instead ":set" can be abbreviated to ":se".
   When the shorter form of a command could be used for two commands, it
stands for only one of them.  There is no logic behind which one, you have to
learn them.  In the help files the shortest form that works is mentioned.  For
example: >

	:s[ubstitute]

This means that the shortest form of ":substitute" is ":s".  The following
characters are optional.  Thus ":su" and ":sub" also work.

In the user manual we will either use the full name of command, or a short
version that is still readable.  For example, ":function" can be abbreviated
to ":fu".  But since most people don't understand what that stands for, we
will use ":fun".  (Vim doesn't have a ":funny" command, otherwise ":fun" would
be confusing too.)

It is recommended that in Vim scripts you write the full command name.  That
makes it easier to read back when you make later changes.  Except for some
often used commands like ":w" (":write") and ":r" (":read").
   A particularly confusing one is ":end", which could stand for ":endif",
":endwhile" or ":endfunction".  Therefore, always use the full name.


SHORT OPTION NAMES

In the user manual the long version of the option names is used.  Many options
also have a short name.  Unlike ":" commands, there is only one short name
that works.  For example, the short name of 'autoindent' is 'ai'.  Thus these
two commands do the same thing: >

	:set autoindent
	:set ai

You can find the full list of long and short names here: |option-list|.

==============================================================================
*20.3*	Command line completion

This is one of those Vim features that, by itself, is a reason to switch from
Vi to Vim.  Once you have used this, you can't do without.

Suppose you have a directory that contains these files:

	info.txt
	intro.txt
	bodyofthepaper.txt

To edit the last one, you use the command: >

	:edit bodyofthepaper.txt

It's easy to type this wrong.  A much quicker way is: >

	:edit b<Tab>

Which will result in the same command.  What happened?  The <Tab> key does
completion of the word before the cursor.  In this case "b".  Vim looks in the
directory and finds only one file that starts with a "b".  That must be the
one you are looking for, thus Vim completes the file name for you.

Now type: >

	:edit i<Tab>

Vim will beep, and give you: >

	:edit info.txt

The beep means that Vim has found more than one match.  It then uses the first
match it found (alphabetically).  If you press <Tab> again, you get: >

	:edit intro.txt

Thus, if the first <Tab> doesn't give you the file you were looking for, press
it again.  If there are more matches, you will see them all, one at a time.
   If you press <Tab> on the last matching entry, you will go back to what you
first typed: >

	:edit i

Then it starts all over again.  Thus Vim cycles through the list of matches.
Use CTRL-P to go through the list in the other direction:

	      <------------------- <Tab> -------------------------+
								  |
		  <Tab> -->		       <Tab> -->
	:edit i		      :edit info.txt		   :edit intro.txt
		  <-- CTRL-P		       <-- CTRL-P
	   |
	   +---------------------- CTRL-P ------------------------>


CONTEXT

When you type ":set i" instead of ":edit i" and press <Tab> you get: >

	:set icon

Hey, why didn't you get ":set info.txt"?  That's because Vim has context
sensitive completion.  The kind of words Vim will look for depends on the
command before it.  Vim knows that you cannot use a file name just after a
":set" command, but you can use an option name.
   Again, if you repeat typing the <Tab>, Vim will cycle through all matches.
There are quite a few, it's better to type more characters first: >

	:set isk<Tab>

Gives: >

	:set iskeyword

Now type "=" and press <Tab>: >

	:set iskeyword=@,48-57,_,192-255

What happens here is that Vim inserts the old value of the option.  Now you
can edit it.
   What is completed with <Tab> is what Vim expects in that place.  Just try
it out to see how it works.  In some situations you will not get what you
want.  That's either because Vim doesn't know what you want, or because
completion was not implemented for that situation.  In that case you will get
a <Tab> inserted (displayed as ^I).


LIST MATCHES

When there are many matches, you would like to see an overview.  Do this by
pressing CTRL-D.  For example, pressing CTRL-D after: >

	:set is

results in: >

	:set is
	incsearch  isfname    isident    iskeyword  isprint
	:set is

Vim lists the matches and then comes back with the text you typed.  You can
now check the list for the item you wanted.  If it isn't there, you can use
<BS> to correct the word.  If there are many matches, type a few more
characters before pressing <Tab> to complete the rest.
   If you have watched carefully, you will have noticed that "incsearch"
doesn't start with "is".  In this case "is" stands for the short name of
"incsearch".  (Many options have a short and a long name.)  Vim is clever
enough to know that you might have wanted to expand the short name of the
option into the long name.


THERE IS MORE

The CTRL-L command completes the word to the longest unambiguous string.  If
you type ":edit i" and there are files "info.txt" and "info_backup.txt" you
will get ":edit info".

The 'wildmode' option can be used to change the way completion works.
The 'wildmenu' option can be used to get a menu-like list of matches.
Use the 'suffixes' option to specify files that are less important and appear
at the end of the list of files.
The 'wildignore' option specifies files that are not listed at all.

More about all of this here: |cmdline-completion|

==============================================================================
*20.4*	Command line history

In chapter 3 we briefly mentioned the history.  The basics are that you can
use the <Up> key to recall an older command line.  <Down> then takes you back
to newer commands.

There are actually four histories.  The ones we will mention here are for ":"
commands and for "/" and "?" search commands.  The "/" and "?" commands share
the same history, because they are both search commands.  The two other
histories are for expressions and input lines for the input() function.
|cmdline-history|

Suppose you have done a ":set" command, typed ten more colon commands and then
want to repeat that ":set" command again.  You could press ":" and then ten
times <Up>.  There is a quicker way: >

	:se<Up>

Vim will now go back to the previous command that started with "se".  You have
a good chance that this is the ":set" command you were looking for.  At least
you should not have to press <Up> very often (unless ":set" commands is all
you have done).

The <Up> key will use the text typed so far and compare it with the lines in
the history.  Only matching lines will be used.
   If you do not find the line you were looking for, use <Down> to go back to
what you typed and correct that.  Or use CTRL-U to start all over again.

To see all the lines in the history: >

	:history

That's the history of ":" commands.  The search history is displayed with this
command: >

	:history /

CTRL-P will work like <Up>, except that it doesn't matter what you already
typed.  Similarly for CTRL-N and <Down>.  CTRL-P stands for previous, CTRL-N
for next.

==============================================================================
*20.5*	Command line window

Typing the text in the command line works different from typing text in Insert
mode.  It doesn't allow many commands to change the text.  For most commands
that's OK, but sometimes you have to type a complicated command.  That's where
the command line window is useful.

Open the command line window with this command: >

	q:

Vim now opens a (small) window at the bottom.  It contains the command line
history, and an empty line at the end:

	+-------------------------------------+
	|other window			      |
	|~				      |
	|file.txt=============================|
	|:e c				      |
	|:e config.h.in			      |
	|:set path=.,/usr/include,,	      |
	|:set iskeyword=@,48-57,_,192-255     |
	|:set is			      |
	|:q				      |
	|:				      |
	|command-line=========================|
	|				      |
	+-------------------------------------+

You are now in Normal mode.  You can use the "hjkl" keys to move around.  For
example, move up with "5k" to the ":e config.h.in" line.  Type "$h" to go to
the "i" of "in" and type "cwout".  Now you have changed the line to:

	:e config.h.out ~

Now press <Enter> and this command will be executed.  The command line window
will close.
   The <Enter> command will execute the line under the cursor.  It doesn't
matter whether Vim is in Insert mode or in Normal mode.
   Changes in the command line window are lost.  They do not result in the
history to be changed.  Except that the command you execute will be added to
the end of the history, like with all executed commands.

The command line window is very useful when you want to have overview of the
history, lookup a similar command, change it a bit and execute it.  A search
command can be used to find something.
   In the previous example the "?config" search command could have been used
to find the previous command that contains "config".  It's a bit strange,
because you are using a command line to search in the command line window.
While typing that search command you can't open another command line window,
there can be only one.

==============================================================================

Next chapter: |usr_21.txt|  Go away and come back

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z;��ٖ�vim80/doc/starting.txtnu�[���*starting.txt*  For Vim version 8.0.  Last change: 2018 Mar 14


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Starting Vim						*starting*

1. Vim arguments		|vim-arguments|
2. Vim on the Amiga		|starting-amiga|
3. Running eVim			|evim-keys|
4. Initialization		|initialization|
5. $VIM and $VIMRUNTIME		|$VIM|
6. Suspending			|suspend|
7. Exiting			|exiting|
8. Saving settings		|save-settings|
9. Views and Sessions		|views-sessions|
10. The viminfo file		|viminfo-file|

==============================================================================
1. Vim arguments					*vim-arguments*

Most often, Vim is started to edit a single file with the command

	vim filename					*-vim*

More generally, Vim is started with:

	vim [option | filename] ..

Option arguments and file name arguments can be mixed, and any number of them
can be given.  However, watch out for options that take an argument.

For compatibility with various Vi versions, see	|cmdline-arguments|.

Exactly one out of the following five items may be used to choose how to
start editing:

							*-file* *---*
filename	One or more file names.  The first one will be the current
		file and read into the buffer.  The cursor will be positioned
		on the first line of the buffer.
		To avoid a file name starting with a '-' being interpreted as
		an option, precede the arglist with "--", e.g.: >
			vim -- -filename
<		All arguments after the "--" will be interpreted as file names,
		no other options or "+command" argument can follow.
		For behavior of quotes on MS-Windows, see |win32-quotes|.

							*--*
-		This argument can mean two things, depending on whether Ex
		mode is to be used.

		Starting in Normal mode: >
			vim -
			ex -v -
<		Start editing a new buffer, which is filled with text
		that is read from stdin.  The commands that would normally be
		read from stdin will now be read from stderr.  Example: >
			find . -name "*.c" -print | vim -
<		The buffer will not be marked as modified, so that it's easy
		to exit.  Be careful to mark it as modified if you don't want
		to accidentally lose it.  Example: >
			ls | view -
<
		Starting in Ex mode: >
			ex -
			vim -e -
			exim -
			vim -E
<		Start editing in silent mode.  See |-s-ex|.

							*-t* *-tag*
-t {tag}	A tag.  "tag" is looked up in the tags file, the associated
		file becomes the current file, and the associated command is
		executed.  Mostly this is used for C programs, in which case
		"tag" often is a function name.  The effect is that the file
		containing that function becomes the current file and the
		cursor is positioned on the start of the function (see
		|tags|).

							*-q* *-qf*
-q [errorfile]	QuickFix mode.  The file with the name [errorfile] is read
		and the first error is displayed.  See |quickfix|.
		If [errorfile] is not given, the 'errorfile' option is used
		for the file name.  See 'errorfile' for the default value.
		{not in Vi}

(nothing)	Without one of the four items above, Vim will start editing a
		new buffer.  It's empty and doesn't have a file name.


The startup mode can be changed by using another name instead of "vim", which
is equal to giving options:
ex	vim -e	    Start in Ex mode (see |Ex-mode|).		    *ex*
exim	vim -E	    Start in improved Ex mode (see |Ex-mode|).	    *exim*
			(normally not installed)
view	vim -R	    Start in read-only mode (see |-R|).		    *view*
gvim	vim -g	    Start the GUI (see |gui|).			    *gvim*
gex	vim -eg	    Start the GUI in Ex mode.			  *gex*
gview	vim -Rg	    Start the GUI in read-only mode.		  *gview*
rvim	vim -Z	    Like "vim", but in restricted mode (see |-Z|)   *rvim*
rview	vim -RZ	    Like "view", but in restricted mode.	  *rview*
rgvim	vim -gZ	    Like "gvim", but in restricted mode.	  *rgvim*
rgview	vim -RgZ    Like "gview", but in restricted mode.	  *rgview*
evim    vim -y      Easy Vim: set 'insertmode' (see |-y|)	    *evim*
eview   vim -yR     Like "evim" in read-only mode		  *eview*
vimdiff vim -d	    Start in diff mode |diff-mode|
gvimdiff vim -gd    Start in diff mode |diff-mode|

Additional characters may follow, they are ignored.  For example, you can have
"gvim-5" to start the GUI.  You must have an executable by that name then, of
course.

On Unix, you would normally have one executable called Vim, and links from the
different startup-names to that executable.  If your system does not support
links and you do not want to have several copies of the executable, you could
use an alias instead.  For example: >
	alias view   vim -R
	alias gvim   vim -g
<
							*startup-options*
The option arguments may be given in any order.  Single-letter options can be
combined after one dash.  There can be no option arguments after the "--"
argument.

On VMS all option arguments are assumed to be lowercase, unless preceded with
a slash.  Thus "-R" means recovery and "-/R" readonly.

--help							*-h* *--help*
-h		Give usage (help) message and exit.  {not in Vi}
		See |info-message| about capturing the text.

							*--version*
--version	Print version information and exit.  Same output as for
		|:version| command.  {not in Vi}
		See |info-message| about capturing the text.

							*--noplugin*
--noplugin	Skip loading plugins.  Resets the 'loadplugins' option.
		{not in Vi}
		Note that the |-u| argument may also disable loading plugins:
			argument   load: vimrc files  plugins  defaults.vim ~
			(nothing)	     yes	yes	  yes
			-u NONE		     no		no	  no
			-u DEFAULTS	     no		no	  yes
			-u NORC		     no		yes	  no
			--noplugin	     yes	no	  yes

--startuptime {fname}					*--startuptime*
		During startup write timing messages to the file {fname}.
		This can be used to find out where time is spent while loading
		your .vimrc, plugins and opening the first file.
		When {fname} already exists new messages are appended.
		(Only available when compiled with the |+startuptime|
		feature).

							*--literal*
--literal	Take file names literally, don't expand wildcards.  Not needed
		for Unix, because Vim always takes file names literally (the
		shell expands wildcards).
		Applies to all the names, also the ones that come before this
		argument.

							*-+*
+[num]		The cursor will be positioned on line "num" for the first
		file being edited.  If "num" is missing, the cursor will be
		positioned on the last line.

							*-+/*
+/{pat}		The cursor will be positioned on the first line containing
		"pat" in the first file being edited (see |pattern| for the
		available search patterns).  The search starts at the cursor
		position, which can be the first line or the cursor position
		last used from |viminfo|. To force a search from the first
		line use "+1 +/pat".

+{command}						*-+c* *-c*
-c {command}	{command} will be executed after the first file has been
		read (and after autocommands and modelines for that file have
		been processed).  "command" is interpreted as an Ex command.
		If the "command" contains spaces, it must be enclosed in
		double quotes (this depends on the shell that is used).
		Example: >
			vim  "+set si"  main.c
			vim  "+find stdio.h"
			vim  -c "set ff=dos"  -c wq  mine.mak
<
		Note: You can use up to 10 "+" or "-c" arguments in a Vim
		command.  They are executed in the order given.  A "-S"
		argument counts as a "-c" argument as well.
		{Vi only allows one command}

--cmd {command}						*--cmd*
		{command} will be executed before processing any vimrc file.
		Otherwise it acts like -c {command}.  You can use up to 10 of
		these commands, independently from "-c" commands.
		{not in Vi}

							*-S*
-S {file}	The {file} will be sourced after the first file has been read.
		This is an easy way to do the equivalent of: >
			-c "source {file}"
<		It can be mixed with "-c" arguments and repeated like "-c".
		The limit of 10 "-c" arguments applies here as well.
		{file} cannot start with a "-".
		{not in Vi}

-S		Works like "-S Session.vim".  Only when used as the last
		argument or when another "-" option follows.

							*-r*
-r		Recovery mode.  Without a file name argument, a list of
		existing swap files is given.  With a file name, a swap file
		is read to recover a crashed editing session.  See
		|crash-recovery|.

							*-L*
-L		Same as -r.  {only in some versions of Vi: "List recoverable
		edit sessions"}

							*-R*
-R		Readonly mode.  The 'readonly' option will be set for all the
		files being edited.  You can still edit the buffer, but will
		be prevented from accidentally overwriting a file.  If you
		forgot that you are in View mode and did make some changes,
		you can overwrite a file by adding an exclamation mark to
		the Ex command, as in ":w!".  The 'readonly' option can be
		reset with ":set noro" (see the options chapter, |options|).
		Subsequent edits will not be done in readonly mode.  Calling
		the executable "view" has the same effect as the -R argument.
		The 'updatecount' option will be set to 10000, meaning that
		the swap file will not be updated automatically very often.
		See |-M| for disallowing modifications.

							*-m*
-m		Modifications not allowed to be written.  The 'write' option
		will be reset, so that writing files is disabled.  However,
		the 'write' option can be set to enable writing again.
		{not in Vi}

							*-M*
-M		Modifications not allowed.  The 'modifiable' option will be
		reset, so that changes are not allowed.  The 'write' option
		will be reset, so that writing files is disabled.  However,
		the 'modifiable' and 'write' options can be set to enable
		changes and writing.
		{not in Vi}

					*-Z* *restricted-mode* *E145* *E981*
-Z		Restricted mode.  All commands that make use of an external
		shell are disabled.  This includes suspending with CTRL-Z,
		":sh", filtering, the system() function, backtick expansion
		and libcall().
		Also disallowed are delete(), rename(), mkdir(), job_start(),
		etc.
		Interfaces, such as Python, Ruby and Lua, are also disabled,
		since they could be used to execute shell commands.  Perl uses
		the Safe module.
		Note that the user may still find a loophole to execute a
		shell command, it has only been made difficult.
		{not in Vi}

							*-g*
-g		Start Vim in GUI mode.  See |gui|. For the opposite see |-v|.
		{not in Vi}

							*-v*
-v		Start Ex in Vi mode.  Only makes a difference when the
		executable is called "ex" or "gvim".  For gvim the GUI is not
		started if possible.

							*-e*
-e		Start Vim in Ex mode |Q|.  Only makes a difference when the
		executable is not called "ex".

							*-E*
-E		Start Vim in improved Ex mode |gQ|.  Only makes a difference
		when the executable is not called "exim".
		{not in Vi}

							*-s-ex*
-s		Silent or batch mode.  Only when Vim was started as "ex" or
		when preceded with the "-e" argument.  Otherwise see |-s|,
		which does take an argument while this use of "-s" doesn't.
		To be used when Vim is used to execute Ex commands from a file
		instead of a terminal.  Switches off most prompts and
		informative messages.  Also warnings and error messages.
		The output of these commands is displayed (to stdout):
			:print
			:list
			:number
			:set      to display option values.
		When 'verbose' is non-zero messages are printed (for
		debugging, to stderr).
		'term' and $TERM are not used.
		If Vim appears to be stuck try typing "qa!<Enter>".  You don't
		get a prompt thus you can't see Vim is waiting for you to type
		something.
		Initializations are skipped (except the ones given with the
		"-u" argument).
		Example: >
			vim -e -s  < thefilter  thefile
<
							*-b*
-b		Binary mode.  File I/O will only recognize <NL> to separate
		lines.  The 'expandtab' option will be reset.  The 'textwidth'
		option is set to 0.  'modeline' is reset.  The 'binary' option
		is set.  This is done after reading the vimrc/exrc files but
		before reading any file in the arglist.  See also
		|edit-binary|.  {not in Vi}

							*-l*
-l		Lisp mode.  Sets the 'lisp' and 'showmatch' options on.

							*-A*
-A		Arabic mode.  Sets the 'arabic' option on.  (Only when
		compiled with the |+arabic| features (which include
		|+rightleft|), otherwise Vim gives an error message
		and exits.)  {not in Vi}

							*-F*
-F		Farsi mode.  Sets the 'fkmap' and 'rightleft' options on.
		(Only when compiled with |+rightleft| and |+farsi| features,
		otherwise Vim gives an error message and exits.)  {not in Vi}

							*-H*
-H		Hebrew mode.  Sets the 'hkmap' and 'rightleft' options on.
		(Only when compiled with the |+rightleft| feature, otherwise
		Vim gives an error message and exits.)  {not in Vi}

							*-V* *verbose*
-V[N]		Verbose.  Sets the 'verbose' option to [N] (default: 10).
		Messages will be given for each file that is ":source"d and
		for reading or writing a viminfo file.  Can be used to find
		out what is happening upon startup and exit.  {not in Vi}
		Example: >
			vim -V8 foobar

-V[N]{filename}
		Like -V and set 'verbosefile' to {filename}.  The result is
		that messages are not displayed but written to the file
		{filename}.  {filename} must not start with a digit.
		Example: >
			vim -V20vimlog foobar
<
							*-D*
-D		Debugging.  Go to debugging mode when executing the first
		command from a script. |debug-mode|
		{not available when compiled without the |+eval| feature}
		{not in Vi}

							*-C*
-C		Compatible mode.  Sets the 'compatible' option.  You can use
		this to get 'compatible', even though a .vimrc file exists.
		Keep in mind that the command ":set nocompatible" in some
		plugin or startup script overrules this, so you may end up
		with 'nocompatible' anyway.  To find out, use: >
			:verbose set compatible?
<		Several plugins won't work with 'compatible' set.  You may
		want to set it after startup this way: >
			vim "+set cp" filename
<		Also see |compatible-default|.  {not in Vi}

							*-N*
-N		Not compatible mode.  Resets the 'compatible' option.  You can
		use this to get 'nocompatible', when there is no .vimrc file
		or when using "-u NONE".
		Also see |compatible-default|.  {not in Vi}

							*-y* *easy*
-y		Easy mode.  Implied for |evim| and |eview|.  Starts with
		'insertmode' set and behaves like a click-and-type editor.
		This sources the script $VIMRUNTIME/evim.vim.  Mappings are
		set up to work like most click-and-type editors, see
		|evim-keys|.  The GUI is started when available.
		{not in Vi}

							*-n*
-n		No swap file will be used.  Recovery after a crash will be
		impossible.  Handy if you want to view or edit a file on a
		very slow medium (e.g., a floppy).
		Can also be done with ":set updatecount=0".  You can switch it
		on again by setting the 'updatecount' option to some value,
		e.g., ":set uc=100".
		NOTE: Don't combine -n with -b, making -nb, because that has a
		different meaning: |-nb|.
		'updatecount' is set to 0 AFTER executing commands from a
		vimrc file, but before the GUI initializations.  Thus it
		overrides a setting for 'updatecount' in a vimrc file, but not
		in a gvimrc file.  See |startup|.
		When you want to reduce accesses to the disk (e.g., for a
		laptop), don't use "-n", but set 'updatetime' and
		'updatecount' to very big numbers, and type ":preserve" when
		you want to save your work.  This way you keep the possibility
		for crash recovery.
		{not in Vi}

							*-o*
-o[N]		Open N windows, split horizontally.  If [N] is not given,
		one window is opened for every file given as argument.  If
		there is not enough room, only the first few files get a
		window.  If there are more windows than arguments, the last
		few windows will be editing an empty file.
		{not in Vi}

							*-O*
-O[N]		Open N windows, split vertically.  Otherwise it's like -o.
		If both the -o and the -O option are given, the last one on
		the command line determines how the windows will be split.
		{not in Vi}

							*-p*
-p[N]		Open N tab pages.  If [N] is not given, one tab page is opened
		for every file given as argument.  The maximum is set with
		'tabpagemax' pages (default 10).  If there are more tab pages
		than arguments, the last few tab pages will be editing an
		empty file.  Also see |tabpage|.
		{not in Vi}

							*-T*
-T {terminal}	Set the terminal type to "terminal".  This influences the
		codes that Vim will send to your terminal.  This is normally
		not needed, because Vim will be able to find out what type
		of terminal you are using.  (See |terminal-info|.)  {not in Vi}

							*--not-a-term*
--not-a-term	Tells Vim that the user knows that the input and/or output is
		not connected to a terminal.  This will avoid the warning and
		the two second delay that would happen.
		Also avoids the "Reading from stdin..." message.
		{not in Vi}

							*--ttyfail*
--ttyfail	When the stdin or stdout is not a terminal (tty) then exit
		right away.

							*-d*
-d		Start in diff mode, like |vimdiff|.
		{not in Vi} {not available when compiled without the |+diff|
		feature}

-d {device}	Only on the Amiga and when not compiled with the |+diff|
		feature.  Works like "-dev".
							*-dev*
-dev {device}	Only on the Amiga: The {device} is opened to be used for
		editing.
		Normally you would use this to set the window position and
		size: "-d con:x/y/width/height", e.g.,
		"-d con:30/10/600/150".  But you can also use it to start
		editing on another device, e.g., AUX:.  {not in Vi}
							*-f*
-f		GUI: Do not disconnect from the program that started Vim.
		'f' stands for "foreground".  If omitted, the GUI forks a new
		process and exits the current one.  "-f" should be used when
		gvim is started by a program that will wait for the edit
		session to finish (e.g., mail or readnews).  If you want gvim
		never to fork, include 'f' in 'guioptions' in your |gvimrc|.
		Careful: You can use "-gf" to start the GUI in the foreground,
		but "-fg" is used to specify the foreground color.  |gui-fork|

		Amiga: Do not restart Vim to open a new window.  This
		option should be used when Vim is started by a program that
		will wait for the edit session to finish (e.g., mail or
		readnews).  See |amiga-window|.

		MS-Windows: This option is not supported.  However, when
		running Vim with an installed vim.bat or gvim.bat file it
		works.
		{not in Vi}


							*--nofork*
--nofork	GUI: Do not fork.  Same as |-f|.
							*-u* *E282*
-u {vimrc}	The file {vimrc} is read for initializations.  Most other
		initializations are skipped; see |initialization|.

		This can be used to start Vim in a special mode, with special
		mappings and settings.  A shell alias can be used to make
		this easy to use.  For example: >
			alias vimc vim -u ~/.c_vimrc !*
<		Also consider using autocommands; see |autocommand|.

		When {vimrc} is equal to "NONE" (all uppercase), all
		initializations from files and environment variables are
		skipped, including reading the |gvimrc| file when the GUI
		starts.  Loading plugins is also skipped.

		When {vimrc} is equal to "NORC" (all uppercase), this has the
		same effect as "NONE", but loading plugins is not skipped.

		When {vimrc} is equal to "DEFAULTS" (all uppercase), this has
		the same effect as "NONE", but the |defaults.vim| script is
		loaded, which will also set 'nocompatible'.

		Using the "-u" argument with another argument than DEFAULTS
		has the side effect that the 'compatible' option will be on by
		default.  This can have unexpected effects.  See
		|'compatible'|.
		{not in Vi}

							*-U* *E230*
-U {gvimrc}	The file {gvimrc} is read for initializations when the GUI
		starts.  Other GUI initializations are skipped.  When {gvimrc}
		is equal to "NONE", no file is read for GUI initializations at
		all.  |gui-init|
		Exception: Reading the system-wide menu file is always done.
		{not in Vi}

							*-i*
-i {viminfo}	The file "viminfo" is used instead of the default viminfo
		file.  If the name "NONE" is used (all uppercase), no viminfo
		file is read or written, even if 'viminfo' is set or when
		":rv" or ":wv" are used.  See also |viminfo-file|.
		{not in Vi}

							*--clean*
--clean		Equal to "-u DEFAULTS -U NONE -i NONE":
		- initializations from files and environment variables is
		  skipped
		- the |defaults.vim| script is loaded, which implies
		  'nocompatible': use Vim defaults
		- no |gvimrc| script is loaded
		- no viminfo file is read or written
		- the home directory is excluded from 'runtimepath'
							*-x*
-x		Use encryption to read/write files.  Will prompt for a key,
		which is then stored in the 'key' option.  All writes will
		then use this key to encrypt the text.  The '-x' argument is
		not needed when reading a file, because there is a check if
		the file that is being read has been encrypted, and Vim asks
		for a key automatically. |encryption|

							*-X*
-X		Do not try connecting to the X server to get the current
		window title and copy/paste using the X clipboard.  This
		avoids a long startup time when running Vim in a terminal
		emulator and the connection to the X server is slow.
		See |--startuptime| to find out if affects you.
		Only makes a difference on Unix or VMS, when compiled with the
		|+X11| feature.  Otherwise it's ignored.
		To disable the connection only for specific terminals, see the
		'clipboard' option.
		When the X11 Session Management Protocol (XSMP) handler has
		been built in, the -X option also disables that connection as
		it, too, may have undesirable delays.
		When the connection is desired later anyway (e.g., for
		client-server messages), call the |serverlist()| function.
		This does not enable the XSMP handler though.
		{not in Vi}

							*-s*
-s {scriptin}	The script file "scriptin" is read.  The characters in the
		file are interpreted as if you had typed them.  The same can
		be done with the command ":source! {scriptin}".  If the end
		of the file is reached before the editor exits, further
		characters are read from the keyboard.  Only works when not
		started in Ex mode, see |-s-ex|.  See also |complex-repeat|.
		{not in Vi}

							*-w_nr*
-w {number}
-w{number}	Set the 'window' option to {number}.

							*-w*
-w {scriptout}	All the characters that you type are recorded in the file
		"scriptout", until you exit Vim.  This is useful if you want
		to create a script file to be used with "vim -s" or
		":source!".  When the "scriptout" file already exists, new
		characters are appended.  See also |complex-repeat|.
		{scriptout} cannot start with a digit.
		{not in Vi}

							*-W*
-W {scriptout}	Like -w, but do not append, overwrite an existing file.
		{not in Vi}

--remote [+{cmd}] {file} ...
		Open the {file} in another Vim that functions as a server.
		Any non-file arguments must come before this.
		See |--remote|. {not in Vi}

--remote-silent [+{cmd}] {file} ...
		Like --remote, but don't complain if there is no server.
		See |--remote-silent|. {not in Vi}

--remote-wait [+{cmd}] {file} ...
		Like --remote, but wait for the server to finish editing the
		file(s).
		See |--remote-wait|. {not in Vi}

--remote-wait-silent [+{cmd}] {file} ...
		Like --remote-wait, but don't complain if there is no server.
		See |--remote-wait-silent|. {not in Vi}

--servername {name}
		Specify the name of the Vim server to send to or to become.
		See |--servername|. {not in Vi}

--remote-send {keys}
		Send {keys} to a Vim server and exit.
		See |--remote-send|. {not in Vi}

--remote-expr {expr}
		Evaluate {expr} in another Vim that functions as a server.
		The result is printed on stdout.
		See |--remote-expr|. {not in Vi}

--serverlist	Output a list of Vim server names and exit.  See
		|--serverlist|. {not in Vi}

--socketid {id}						*--socketid*
		GTK+ GUI Vim only.  Make gvim try to use GtkPlug mechanism, so
		that it runs inside another window.  See |gui-gtk-socketid|
		for details. {not in Vi}

--windowid {id}						*--windowid*
		Win32 GUI Vim only.  Make gvim try to use the window {id} as a
		parent, so that it runs inside that window.  See
		|gui-w32-windowid| for details. {not in Vi}

--echo-wid						*--echo-wid*
		GTK+ GUI Vim only.  Make gvim echo the Window ID on stdout,
		which can be used to run gvim in a kpart widget.  The format
		of the output is: >
			WID: 12345\n
<		{not in Vi}

--role {role}						*--role*
		GTK+ 2 GUI only.  Set the role of the main window to {role}.
		The window role can be used by a window manager to uniquely
		identify a window, in order to restore window placement and
		such.  The --role argument is passed automatically when
		restoring the session on login.  See |gui-gnome-session|
		{not in Vi}

-P {parent-title}				*-P* *MDI* *E671* *E672*
		Win32 only: Specify the title of the parent application.  When
		possible, Vim will run in an MDI window inside the
		application.
		{parent-title} must appear in the window title of the parent
		application.  Make sure that it is specific enough.
		Note that the implementation is still primitive.  It won't
		work with all applications and the menu doesn't work.

-nb							*-nb*
-nb={fname}
-nb:{hostname}:{addr}:{password}
		Attempt connecting to Netbeans and become an editor server for
		it.  The second form specifies a file to read connection info
		from.  The third form specifies the hostname, address and
		password for connecting to Netbeans. |netbeans-run|
		{only available when compiled with the |+netbeans_intg|
		feature; if not then -nb will make Vim exit}

If the executable is called "view", Vim will start in Readonly mode.  This is
useful if you can make a hard or symbolic link from "view" to "vim".
Starting in Readonly mode can also be done with "vim -R".

If the executable is called "ex", Vim will start in "Ex" mode.  This means it
will accept only ":" commands.  But when the "-v" argument is given, Vim will
start in Normal mode anyway.

Additional arguments are available on unix like systems when compiled with
X11 GUI support.  See |gui-resources|.

==============================================================================
2. Vim on the Amiga					*starting-amiga*

Starting Vim from the Workbench				*workbench*
-------------------------------

Vim can be started from the Workbench by clicking on its icon twice.  It will
then start with an empty buffer.

Vim can be started to edit one or more files by using a "Project" icon.  The
"Default Tool" of the icon must be the full pathname of the Vim executable.
The name of the ".info" file must be the same as the name of the text file.
By clicking on this icon twice, Vim will be started with the file name as
current file name, which will be read into the buffer (if it exists).  You can
edit multiple files by pressing the shift key while clicking on icons, and
clicking twice on the last one.  The "Default Tool" for all these icons must
be the same.

It is not possible to give arguments to Vim, other than file names, from the
workbench.

Vim window						*amiga-window*
----------

Vim will run in the CLI window where it was started.  If Vim was started with
the "run" or "runback" command, or if Vim was started from the workbench, it
will open a window of its own.

Technical detail:
	To open the new window a little trick is used.  As soon as Vim
	recognizes that it does not run in a normal CLI window, it will
	create a script file in "t:".  This script file contains the same
	command as the one Vim was started with, and an "endcli" command.
	This script file is then executed with a "newcli" command (the "c:run"
	and "c:newcli" commands are required for this to work).  The script
	file will hang around until reboot, or until you delete it.  This
	method is required to get the ":sh" and ":!" commands to work
	correctly.  But when Vim was started with the -f option (foreground
	mode), this method is not used.  The reason for this is that
	when a program starts Vim with the -f option it will wait for Vim to
	exit.  With the script trick, the calling program does not know when
	Vim exits.  The -f option can be used when Vim is started by a mail
	program which also waits for the edit session to finish.  As a
	consequence, the ":sh" and ":!" commands are not available when the
	-f option is used.

Vim will automatically recognize the window size and react to window
resizing.  Under Amiga DOS 1.3, it is advised to use the fastfonts program,
"FF", to speed up display redrawing.

==============================================================================
3. Running eVim							*evim-keys*

EVim runs Vim as click-and-type editor.  This is very unlike the original Vi
idea.  But it helps for people that don't use Vim often enough to learn the
commands.  Hopefully they will find out that learning to use Normal mode
commands will make their editing much more effective.

In Evim these options are changed from their default value:

	:set nocompatible	Use Vim improvements
	:set insertmode		Remain in Insert mode most of the time
	:set hidden		Keep invisible buffers loaded
	:set backup		Keep backup files (not for VMS)
	:set backspace=2	Backspace over everything
	:set autoindent		auto-indent new lines
	:set history=50		keep 50 lines of Ex commands
	:set ruler		show the cursor position
	:set incsearch		show matches halfway typing a pattern
	:set mouse=a		use the mouse in all modes
	:set hlsearch		highlight all matches for a search pattern
	:set whichwrap+=<,>,[,]  <Left> and <Right> wrap around line breaks
	:set guioptions-=a	non-Unix only: don't do auto-select

Key mappings:
	<Down>		moves by screen lines rather than file lines
	<Up>		idem
	Q		does "gq", formatting, instead of Ex mode
	<BS>		in Visual mode: deletes the selection
	CTRL-X		in Visual mode: Cut to clipboard
	<S-Del>		idem
	CTRL-C		in Visual mode: Copy to clipboard
	<C-Insert>	idem
	CTRL-V		Pastes from the clipboard (in any mode)
	<S-Insert>	idem
	CTRL-Q		do what CTRL-V used to do
	CTRL-Z		undo
	CTRL-Y		redo
	<M-Space>	system menu
	CTRL-A		select all
	<C-Tab>		next window, CTRL-W w
	<C-F4>		close window, CTRL-W c

Additionally:
- ":behave mswin" is used |:behave|
- syntax highlighting is enabled
- filetype detection is enabled, filetype plugins and indenting is enabled
- in a text file 'textwidth' is set to 78

One hint: If you want to go to Normal mode to be able to type a sequence of
commands, use CTRL-L. |i_CTRL-L|

==============================================================================
4. Initialization				*initialization* *startup*

This section is about the non-GUI version of Vim.  See |gui-fork| for
additional initialization when starting the GUI.

At startup, Vim checks environment variables and files and sets values
accordingly.  Vim proceeds in this order:

1. Set the 'shell' and 'term' option		*SHELL* *COMSPEC* *TERM*
	The environment variable SHELL, if it exists, is used to set the
	'shell' option.  On MS-DOS and Win32, the COMSPEC variable is used
	if SHELL is not set.
	The environment variable TERM, if it exists, is used to set the 'term'
	option.  However, 'term' will change later when starting the GUI (step
	8 below).

2. Process the arguments
	The options and file names from the command that start Vim are
	inspected.  Buffers are created for all files (but not loaded yet).
	The |-V| argument can be used to display or log what happens next,
	useful for debugging the initializations.

3. Execute Ex commands, from environment variables and/or files
	An environment variable is read as one Ex command line, where multiple
	commands must be separated with '|' or "<NL>".
								*vimrc* *exrc*
	A file that contains initialization commands is called a "vimrc" file.
	Each line in a vimrc file is executed as an Ex command line.  It is
	sometimes also referred to as "exrc" file.  They are the same type of
	file, but "exrc" is what Vi always used, "vimrc" is a Vim specific
	name.  Also see |vimrc-intro|.

	Places for your personal initializations:
		Unix		$HOME/.vimrc or $HOME/.vim/vimrc
		OS/2		$HOME/.vimrc, $HOME/vimfiles/vimrc
				or $VIM/.vimrc (or _vimrc)
		MS-Windows	$HOME/_vimrc, $HOME/vimfiles/vimrc
				or $VIM/_vimrc
		Amiga		s:.vimrc, home:.vimrc, home:vimfiles:vimrc
				or $VIM/.vimrc

	The files are searched in the order specified above and only the first
	one that is found is read.

	RECOMMENDATION: Put all your Vim configuration stuff in the
	$HOME/.vim/ directory ($HOME/vimfiles/ for MS-Windows). That makes it
	easy to copy it to another system.

	If Vim was started with "-u filename", the file "filename" is used.
	All following initializations until 4. are skipped. $MYVIMRC is not
	set.
	"vim -u NORC" can be used to skip these initializations without
	reading a file.  "vim -u NONE" also skips loading plugins.  |-u|

	If Vim was started in Ex mode with the "-s" argument, all following
	initializations until 4. are skipped.  Only the "-u" option is
	interpreted.
							*evim.vim*
     a. If vim was started as |evim| or |eview| or with the |-y| argument, the
	script $VIMRUNTIME/evim.vim will be loaded.
							*system-vimrc*
     b. For Unix, MS-DOS, MS-Windows, OS/2, VMS, Macintosh, RISC-OS and Amiga
	the system vimrc file is read for initializations.  The path of this
	file is shown with the ":version" command.  Mostly it's "$VIM/vimrc".
	Note that this file is ALWAYS read in 'compatible' mode, since the
	automatic resetting of 'compatible' is only done later.  Add a ":set
	nocp" command if you like.
	For the Macintosh the $VIMRUNTIME/macmap.vim is read.

	  *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc* *$MYVIMRC*
     c. Five places are searched for initializations.  The first that exists
	is used, the others are ignored.  The $MYVIMRC environment variable is
	set to the file that was first found, unless $MYVIMRC was already set
	and when using VIMINIT.
	I   The environment variable VIMINIT (see also |compatible-default|) (*)
	    The value of $VIMINIT is used as an Ex command line.
	II  The user vimrc file(s):
		    "$HOME/.vimrc"	   (for Unix and OS/2) (*)
		    "$HOME/.vim/vimrc"	   (for Unix and OS/2) (*)
		    "s:.vimrc"		   (for Amiga) (*)
		    "home:.vimrc"	   (for Amiga) (*)
		    "home:vimfiles:vimrc"  (for Amiga) (*)
		    "$VIM/.vimrc"	   (for OS/2 and Amiga) (*)
		    "$HOME/_vimrc"	   (for MS-DOS and Win32) (*)
		    "$HOME/vimfiles/vimrc" (for MS-DOS and Win32) (*)
		    "$VIM/_vimrc"	   (for MS-DOS and Win32) (*)
		Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist,
		"_vimrc" is also tried, in case an MS-DOS compatible file
		system is used.  For MS-DOS and Win32 ".vimrc" is checked
		after "_vimrc", in case long file names are used.
		Note: For MS-DOS and Win32, "$HOME" is checked first.  If no
		"_vimrc" or ".vimrc" is found there, "$VIM" is tried.
		See |$VIM| for when $VIM is not set.
	III The environment variable EXINIT.
	    The value of $EXINIT is used as an Ex command line.
	IV  The user exrc file(s).  Same as for the user vimrc file, but with
	    "vimrc" replaced by "exrc".  But only one of ".exrc" and "_exrc" is
	    used, depending on the system.  And without the (*)!
	V   The default vimrc file, $VIMRUNTIME/defaults.vim.  This sets up
	    options values and has "syntax on" and "filetype on" commands,
	    which is what most new users will want.  See |defaults.vim|.

     d. If the 'exrc' option is on (which is NOT the default), the current
	directory is searched for three files.  The first that exists is used,
	the others are ignored.
	-  The file ".vimrc" (for Unix, Amiga and OS/2) (*)
		    "_vimrc" (for MS-DOS and Win32) (*)
	-  The file "_vimrc" (for Unix, Amiga and OS/2) (*)
		    ".vimrc" (for MS-DOS and Win32) (*)
	-  The file ".exrc"  (for Unix, Amiga and OS/2)
		    "_exrc"  (for MS-DOS and Win32)

     (*) Using this file or environment variable will cause 'compatible' to be
	 off by default.  See |compatible-default|.

     Note: When using the |mzscheme| interface, it is initialized after loading
     the vimrc file.  Changing 'mzschemedll' later has no effect.

4. Load the plugin scripts.					*load-plugins*
	This does the same as the command: >
		:runtime! plugin/**/*.vim
<	The result is that all directories in the 'runtimepath' option will be
	searched for the "plugin" sub-directory and all files ending in ".vim"
	will be sourced (in alphabetical order per directory), also in
	subdirectories.
	However, directories in 'runtimepath' ending in "after" are skipped
	here and only loaded after packages, see below.
	Loading plugins won't be done when:
	- The 'loadplugins' option was reset in a vimrc file.
	- The |--noplugin| command line argument is used.
	- The |--clean| command line argument is used.
	- The "-u NONE" command line argument is used |-u|.
	- When Vim was compiled without the |+eval| feature.
	Note that using "-c 'set noloadplugins'" doesn't work, because the
	commands from the command line have not been executed yet.  You can
	use "--cmd 'set noloadplugins'" or "--cmd 'set loadplugins'" |--cmd|.

	Packages are loaded.  These are plugins, as above, but found in the
	"start" directory of each entry in 'packpath'.  Every plugin directory
	found is added in 'runtimepath' and then the plugins are sourced.  See
	|packages|.

	The plugins scripts are loaded, as above, but now only the directories
	ending in "after" are used.  Note that 'runtimepath' will have changed
	if packages have been found, but that should not add a directory
	ending in "after".

5. Set 'shellpipe' and 'shellredir'
	The 'shellpipe' and 'shellredir' options are set according to the
	value of the 'shell' option, unless they have been set before.
	This means that Vim will figure out the values of 'shellpipe' and
	'shellredir' for you, unless you have set them yourself.

6. Set 'updatecount' to zero, if "-n" command argument used

7. Set binary options
	If the "-b" flag was given to Vim, the options for binary editing will
	be set now.  See |-b|.

8. Perform GUI initializations
	Only when starting "gvim", the GUI initializations will be done.  See
	|gui-init|.

9. Read the viminfo file
	If the 'viminfo' option is not empty, the viminfo file is read.  See
	|viminfo-file|.

10. Read the quickfix file
	If the "-q" flag was given to Vim, the quickfix file is read.  If this
	fails, Vim exits.

11. Open all windows
	When the |-o| flag was given, windows will be opened (but not
	displayed yet).
	When the |-p| flag was given, tab pages will be created (but not
	displayed yet).
	When switching screens, it happens now.  Redrawing starts.
	If the "-q" flag was given to Vim, the first error is jumped to.
	Buffers for all windows will be loaded.

12. Execute startup commands
	If a "-t" flag was given to Vim, the tag is jumped to.
	The commands given with the |-c| and |+cmd| arguments are executed.
	If the 'insertmode' option is set, Insert mode is entered.
	The starting flag is reset, has("vim_starting") will now return zero.
	The |v:vim_did_enter| variable is set to 1.
	The |VimEnter| autocommands are executed.

The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or
gvimrc file.


Some hints on using initializations ~

Standard setup:
Create a vimrc file to set the default settings and mappings for all your edit
sessions.  Put it in a place so that it will be found by 3b:
	~/.vimrc	(Unix and OS/2)
	s:.vimrc	(Amiga)
	$VIM\_vimrc	(MS-DOS and Win32)
Note that creating a vimrc file will cause the 'compatible' option to be off
by default.  See |compatible-default|.

Local setup:
Put all commands that you need for editing a specific directory only into a
vimrc file and place it in that directory under the name ".vimrc" ("_vimrc"
for MS-DOS and Win32).  NOTE: To make Vim look for these special files you
have to turn on the option 'exrc'.  See |trojan-horse| too.

System setup:
This only applies if you are managing a Unix system with several users and
want to set the defaults for all users.  Create a vimrc file with commands
for default settings and mappings and put it in the place that is given with
the ":version" command.


Saving the current state of Vim to a file ~

Whenever you have changed values of options or when you have created a
mapping, then you may want to save them in a vimrc file for later use.  See
|save-settings| about saving the current state of settings to a file.


Avoiding setup problems for Vi users ~

Vi uses the variable EXINIT and the file "~/.exrc".  So if you do not want to
interfere with Vi, then use the variable VIMINIT and the file "vimrc" instead.


Amiga environment variables ~

On the Amiga, two types of environment variables exist.  The ones set with the
DOS 1.3 (or later) setenv command are recognized.  See the AmigaDos 1.3
manual.  The environment variables set with the old Manx Set command (before
version 5.0) are not recognized.


MS-DOS line separators ~

On MS-DOS-like systems (MS-DOS itself, Win32, and OS/2), Vim assumes that all
the vimrc files have <CR> <NL> pairs as line separators.  This will give
problems if you have a file with only <NL>s and have a line like
":map xx yy^M".  The trailing ^M will be ignored.


Vi compatible default value ~
						     *compatible-default*
When Vim starts, the 'compatible' option is on.  This will be used when Vim
starts its initializations.  But as soon as:
- a user vimrc file is found, or
- a vimrc file in the current directory is found, or
- the "VIMINIT" environment variable is set, or
- the "-N" command line argument is given, or
- the "--clean" command line argument is given, or
- the |defaults.vim| script is loaded, or
- a gvimrc file was found,
then the option will be set to 'nocompatible'.

Note that this does NOT happen when a system-wide vimrc file was found.

This has the side effect of setting or resetting other options (see
'compatible').  But only the options that have not been set or reset will be
changed.  This has the same effect like the value of 'compatible' had this
value when starting Vim.

'compatible' is NOT reset, and |defaults.vim| is not loaded:
- when Vim was started with the |-u| command line argument, especially with
  "-u NONE", or
- when started with the |-C| command line argument, or
- when the name of the executable ends in "ex". (This has been done to make
  Vim behave like "ex", when it is started as "ex")

But there is a side effect of setting or resetting 'compatible' at the moment
a .vimrc file is found: Mappings are interpreted the moment they are
encountered.  This makes a difference when using things like "<CR>".  If the
mappings depend on a certain value of 'compatible', set or reset it before
giving the mapping.


Defaults without a .vimrc file ~
							*defaults.vim*
If Vim is started normally and no user vimrc file is found, the
$VIMRUNTIME/defaults.vim script is loaded.  This will set 'compatible' off,
switch on syntax highlighting and a few more things.  See the script for
details.  NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
patch 7.4.2111 to be exact).

This should work well for new Vim users.  If you create your own .vimrc, it is
recommended to add these lines somewhere near the top: >
	unlet! skip_defaults_vim
	source $VIMRUNTIME/defaults.vim
Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example
is way to do this.  Alternatively, you can copy defaults.vim to your .vimrc
and modify it (but then you won't get updates when it changes).

If you don't like some of the defaults, you can still source defaults.vim and
revert individual settings.  See the defaults.vim file for hints on how to
revert each item.
						*skip_defaults_vim*
If you use a system-wide vimrc and don't want defaults.vim to change settings,
set the "skip_defaults_vim" variable.  If this was set and you want to load
defaults.vim from your .vimrc, first unlet skip_defaults_vim, as in the
example above.


Avoiding trojan horses ~
							*trojan-horse*
While reading the "vimrc" or the "exrc" file in the current directory, some
commands can be disabled for security reasons by setting the 'secure' option.
This is always done when executing the command from a tags file.  Otherwise it
would be possible that you accidentally use a vimrc or tags file that somebody
else created and contains nasty commands.  The disabled commands are the ones
that start a shell, the ones that write to a file, and ":autocmd".  The ":map"
commands are echoed, so you can see which keys are being mapped.
	If you want Vim to execute all commands in a local vimrc file, you
can reset the 'secure' option in the EXINIT or VIMINIT environment variable or
in the global "exrc" or "vimrc" file.  This is not possible in "vimrc" or
"exrc" in the current directory, for obvious reasons.
	On Unix systems, this only happens if you are not the owner of the
vimrc file.  Warning: If you unpack an archive that contains a vimrc or exrc
file, it will be owned by you.  You won't have the security protection.  Check
the vimrc file before you start Vim in that directory, or reset the 'exrc'
option.  Some Unix systems allow a user to do "chown" on a file.  This makes
it possible for another user to create a nasty vimrc and make you the owner.
Be careful!
	When using tag search commands, executing the search command (the last
part of the line in the tags file) is always done in secure mode.  This works
just like executing a command from a vimrc/exrc in the current directory.


If Vim startup is slow ~
							*slow-start*
If Vim takes a long time to start up, use the |--startuptime| argument to find
out what happens.  There are a few common causes:
- If the Unix version was compiled with the GUI and/or X11 (check the output
  of ":version" for "+GUI" and "+X11"), it may need to load shared libraries
  and connect to the X11 server.  Try compiling a version with GUI and X11
  disabled.  This also should make the executable smaller.
  Use the |-X| command line argument to avoid connecting to the X server when
  running in a terminal.
- If you have "viminfo" enabled, the loading of the viminfo file may take a
  while.  You can find out if this is the problem by disabling viminfo for a
  moment (use the Vim argument "-i NONE", |-i|).  Try reducing the number of
  lines stored in a register with ":set viminfo='20,<50,s10".  |viminfo-file|.


Intro message ~
							*:intro*
When Vim starts without a file name, an introductory message is displayed (for
those who don't know what Vim is).  It is removed as soon as the display is
redrawn in any way.  To see the message again, use the ":intro" command (if
there is not enough room, you will see only part of it).
   To avoid the intro message on startup, add the 'I' flag to 'shortmess'.

							*info-message*
The |--help| and |--version| arguments cause Vim to print a message and then
exit.  Normally the message is sent to stdout, thus can be redirected to a
file with: >

	vim --help >file

From inside Vim: >

	:read !vim --help

When using gvim, it detects that it might have been started from the desktop,
without a terminal to show messages on.  This is detected when both stdout and
stderr are not a tty.  This breaks the ":read" command, as used in the example
above.  To make it work again, set 'shellredir' to ">" instead of the default
">&": >

	:set shellredir=>
	:read !gvim --help

This still won't work for systems where gvim does not use stdout at all
though.

==============================================================================
5. $VIM and $VIMRUNTIME
								*$VIM*
The environment variable "$VIM" is used to locate various user files for Vim,
such as the user startup script ".vimrc".  This depends on the system, see
|startup|.

To avoid the need for every user to set the $VIM environment variable, Vim
will try to get the value for $VIM in this order:
1. The value defined by the $VIM environment variable.  You can use this to
   make Vim look in a specific directory for its support files.  Example: >
	setenv VIM /home/paul/vim
2. The path from 'helpfile' is used, unless it contains some environment
   variable too (the default is "$VIMRUNTIME/doc/help.txt": chicken-egg
   problem).  The file name ("help.txt" or any other) is removed.  Then
   trailing directory names are removed, in this order: "doc", "runtime" and
   "vim{version}" (e.g., "vim54").
3. For MSDOS, Win32 and OS/2 Vim tries to use the directory name of the
   executable.  If it ends in "/src", this is removed.  This is useful if you
   unpacked the .zip file in some directory, and adjusted the search path to
   find the vim executable.  Trailing directory names are removed, in this
   order: "runtime" and "vim{version}" (e.g., "vim54").
4. For Unix the compile-time defined installation directory is used (see the
   output of ":version").

Once Vim has done this once, it will set the $VIM environment variable.  To
change it later, use a ":let" command like this: >
	:let $VIM = "/home/paul/vim/"
<
								*$VIMRUNTIME*
The environment variable "$VIMRUNTIME" is used to locate various support
files, such as the on-line documentation and files used for syntax
highlighting.  For example, the main help file is normally
"$VIMRUNTIME/doc/help.txt".
You don't normally set $VIMRUNTIME yourself, but let Vim figure it out.  This
is the order used to find the value of $VIMRUNTIME:
1. If the environment variable $VIMRUNTIME is set, it is used.  You can use
   this when the runtime files are in an unusual location.
2. If "$VIM/vim{version}" exists, it is used.  {version} is the version
   number of Vim, without any '-' or '.'.  For example: "$VIM/vim54".  This is
   the normal value for $VIMRUNTIME.
3. If "$VIM/runtime" exists, it is used.
4. The value of $VIM is used.  This is for backwards compatibility with older
   versions.
5. When the 'helpfile' option is set and doesn't contain a '$', its value is
   used, with "doc/help.txt" removed from the end.

For Unix, when there is a compiled-in default for $VIMRUNTIME (check the
output of ":version"), steps 2, 3 and 4 are skipped, and the compiled-in
default is used after step 5.  This means that the compiled-in default
overrules the value of $VIM.  This is useful if $VIM is "/etc" and the runtime
files are in "/usr/share/vim/vim54".

Once Vim has done this once, it will set the $VIMRUNTIME environment variable.
To change it later, use a ":let" command like this: >
	:let $VIMRUNTIME = "/home/piet/vim/vim54"

In case you need the value of $VIMRUNTIME in a shell (e.g., for a script that
greps in the help files) you might be able to use this: >

	VIMRUNTIME=`vim -e -T dumb --cmd 'exe "set t_cm=\<C-M>"|echo $VIMRUNTIME|quit' | tr -d '\015' `

==============================================================================
6. Suspending						*suspend*

					*iconize* *iconise* *CTRL-Z* *v_CTRL-Z*
CTRL-Z			Suspend Vim, like ":stop".
			Works in Normal and in Visual mode.  In Insert and
			Command-line mode, the CTRL-Z is inserted as a normal
			character.  In Visual mode Vim goes back to Normal
			mode.
			Note: if CTRL-Z undoes a change see |mswin.vim|.


:sus[pend][!]	or			*:sus* *:suspend* *:st* *:stop*
:st[op][!]		Suspend Vim.
			If the '!' is not given and 'autowrite' is set, every
			buffer with changes and a file name is written out.
			If the '!' is given or 'autowrite' is not set, changed
			buffers are not written, don't forget to bring Vim
			back to the foreground later!

In the GUI, suspending is implemented as iconising gvim.  In Windows 95/NT,
gvim is minimized.

On many Unix systems, it is possible to suspend Vim with CTRL-Z.  This is only
possible in Normal and Visual mode (see next chapter, |vim-modes|).  Vim will
continue if you make it the foreground job again.  On other systems, CTRL-Z
will start a new shell.  This is the same as the ":sh" command.  Vim will
continue if you exit from the shell.

In X-windows the selection is disowned when Vim suspends.  this means you
can't paste it in another application (since Vim is going to sleep an attempt
to get the selection would make the program hang).

==============================================================================
7. Exiting						*exiting*

There are several ways to exit Vim:
- Close the last window with `:quit`.  Only when there are no changes.
- Close the last window with `:quit!`.  Also when there are changes.
- Close all windows with `:qall`.  Only when there are no changes.
- Close all windows with `:qall!`.  Also when there are changes.
- Use `:cquit`.  Also when there are changes.

When using `:cquit` or when there was an error message Vim exits with exit
code 1.  Errors can be avoided by using `:silent!` or with `:catch`.

==============================================================================
8. Saving settings					*save-settings*

Mostly you will edit your vimrc files manually.  This gives you the greatest
flexibility.  There are a few commands to generate a vimrc file automatically.
You can use these files as they are, or copy/paste lines to include in another
vimrc file.

							*:mk* *:mkexrc*
:mk[exrc] [file]	Write current key mappings and changed options to
			[file] (default ".exrc" in the current directory),
			unless it already exists.  {not in Vi}

:mk[exrc]! [file]	Always write current key mappings and changed
			options to [file] (default ".exrc" in the current
			directory).  {not in Vi}

							*:mkv* *:mkvimrc*
:mkv[imrc][!] [file]	Like ":mkexrc", but the default is ".vimrc" in the
			current directory.  The ":version" command is also
			written to the file.  {not in Vi}

These commands will write ":map" and ":set" commands to a file, in such a way
that when these commands are executed, the current key mappings and options
will be set to the same values.  The options 'columns', 'endofline',
'fileformat', 'key', 'lines', 'modified', 'scroll', 'term', 'textmode',
'ttyfast' and 'ttymouse' are not included, because these are terminal or file
dependent.  Note that the options 'binary', 'paste' and 'readonly' are
included, this might not always be what you want.

When special keys are used in mappings, The 'cpoptions' option will be
temporarily set to its Vim default, to avoid the mappings to be
misinterpreted.  This makes the file incompatible with Vi, but makes sure it
can be used with different terminals.

Only global mappings are stored, not mappings local to a buffer.

A common method is to use a default ".vimrc" file, make some modifications
with ":map" and ":set" commands and write the modified file.  First read the
default ".vimrc" in with a command like ":source ~piet/.vimrc.Cprogs", change
the settings and then save them in the current directory with ":mkvimrc!".  If
you want to make this file your default .vimrc, move it to your home directory
(on Unix), s: (Amiga) or $VIM directory (MS-DOS).  You could also use
autocommands |autocommand| and/or modelines |modeline|.

						*vimrc-option-example*
If you only want to add a single option setting to your vimrc, you can use
these steps:
1. Edit your vimrc file with Vim.
2. Play with the option until it's right.  E.g., try out different values for
   'guifont'.
3. Append a line to set the value of the option, using the expression register
   '=' to enter the value.  E.g., for the 'guifont' option: >
   o:set guifont=<C-R>=&guifont<CR><Esc>
<  [<C-R> is a CTRL-R, <CR> is a return, <Esc> is the escape key]
   You need to escape special characters, esp. spaces.

Note that when you create a .vimrc file, this can influence the 'compatible'
option, which has several side effects.  See |'compatible'|.
":mkvimrc", ":mkexrc" and ":mksession" write the command to set or reset the
'compatible' option to the output file first, because of these side effects.

==============================================================================
9. Views and Sessions					*views-sessions*

This is introduced in sections |21.4| and |21.5| of the user manual.

						*View* *view-file*
A View is a collection of settings that apply to one window.  You can save a
View and when you restore it later, the text is displayed in the same way.
The options and mappings in this window will also be restored, so that you can
continue editing like when the View was saved.

						*Session* *session-file*
A Session keeps the Views for all windows, plus the global settings.  You can
save a Session and when you restore it later the window layout looks the same.
You can use a Session to quickly switch between different projects,
automatically loading the files you were last working on in that project.

Views and Sessions are a nice addition to viminfo-files, which are used to
remember information for all Views and Sessions together |viminfo-file|.

You can quickly start editing with a previously saved View or Session with the
|-S| argument: >
	vim -S Session.vim
<
All this is {not in Vi} and {not available when compiled without the
|+mksession| feature}.

							*:mks* *:mksession*
:mks[ession][!] [file]	Write a Vim script that restores the current editing
			session.
			When [!] is included an existing file is overwritten.
			When [file] is omitted "Session.vim" is used.

The output of ":mksession" is like ":mkvimrc", but additional commands are
added to the file.  Which ones depends on the 'sessionoptions' option.  The
resulting file, when executed with a ":source" command:
1. Restores global mappings and options, if 'sessionoptions' contains
   "options".  Script-local mappings will not be written.
2. Restores global variables that start with an uppercase letter and contain
   at least one lowercase letter, if 'sessionoptions' contains "globals".
3. Unloads all currently loaded buffers.
4. Restores the current directory if 'sessionoptions' contains "curdir", or
   sets the current directory to where the Session file is if 'sessionoptions'
   contains "sesdir".
5. Restores GUI Vim window position, if 'sessionoptions' contains "winpos".
6. Restores screen size, if 'sessionoptions' contains "resize".
7. Reloads the buffer list, with the last cursor positions.  If
   'sessionoptions' contains "buffers" then all buffers are restored,
   including hidden and unloaded buffers.  Otherwise only buffers in windows
   are restored.
8. Restores all windows with the same layout.  If 'sessionoptions' contains
   "help", help windows are restored.  If 'sessionoptions' contains "blank",
   windows editing a buffer without a name will be restored.
   If 'sessionoptions' contains "winsize" and no (help/blank) windows were
   left out, the window sizes are restored (relative to the screen size).
   Otherwise, the windows are just given sensible sizes.
9. Restores the Views for all the windows, as with |:mkview|.  But
   'sessionoptions' is used instead of 'viewoptions'.
10. If a file exists with the same name as the Session file, but ending in
   "x.vim" (for eXtra), executes that as well.  You can use *x.vim files to
   specify additional settings and actions associated with a given Session,
   such as creating menu items in the GUI version.

After restoring the Session, the full filename of your current Session is
available in the internal variable "v:this_session" |this_session-variable|.
An example mapping: >
  :nmap <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:so ~/sessions/
This saves the current Session, and starts off the command to load another.

A session includes all tab pages, unless "tabpages" was removed from
'sessionoptions'. |tab-page|

The |SessionLoadPost| autocmd event is triggered after a session file is
loaded/sourced.
						*SessionLoad-variable*
While the session file is loading the SessionLoad global variable is set to 1.
Plugins can use this to postpone some work until the SessionLoadPost event is
triggered.

							*:mkvie* *:mkview*
:mkvie[w][!] [file]	Write a Vim script that restores the contents of the
			current window.
			When [!] is included an existing file is overwritten.
			When [file] is omitted or is a number from 1 to 9, a
			name is generated and 'viewdir' prepended.  When the
			last path part of 'viewdir' does not exist, this
			directory is created.  E.g., when 'viewdir' is
			"$VIM/vimfiles/view" then "view" is created in
			"$VIM/vimfiles".
			An existing file is always overwritten then.  Use
			|:loadview| to load this view again.
			When [file] is the name of a file ('viewdir' is not
			used), a command to edit the file is added to the
			generated file.

The output of ":mkview" contains these items:
1. The argument list used in the window.  When the global argument list is
   used it is reset to the global list.
   The index in the argument list is also restored.
2. The file being edited in the window.  If there is no file, the window is
   made empty.
3. Restore mappings, abbreviations and options local to the window if
   'viewoptions' contains "options" or "localoptions".  For the options it
   restores only values that are local to the current buffer and values local
   to the window.
   When storing the view as part of a session and "options" is in
   'sessionoptions', global values for local options will be stored too.
4. Restore folds when using manual folding and 'viewoptions' contains
   "folds".  Restore manually opened and closed folds.
5. The scroll position and the cursor position in the file.  Doesn't work very
   well when there are closed folds.
6. The local current directory, if it is different from the global current
   directory and 'viewoptions' contains "curdir".

Note that Views and Sessions are not perfect:
- They don't restore everything.  For example, defined functions, autocommands
  and ":syntax on" are not included.  Things like register contents and
  command line history are in viminfo, not in Sessions or Views.
- Global option values are only set when they differ from the default value.
  When the current value is not the default value, loading a Session will not
  set it back to the default value.  Local options will be set back to the
  default value though.
- Existing mappings will be overwritten without warning.  An existing mapping
  may cause an error for ambiguity.
- When storing manual folds and when storing manually opened/closed folds,
  changes in the file between saving and loading the view will mess it up.
- The Vim script is not very efficient.  But still faster than typing the
  commands yourself!

							*:lo* *:loadview*
:lo[adview] [nr]	Load the view for the current file.  When [nr] is
			omitted, the view stored with ":mkview" is loaded.
			When [nr] is specified, the view stored with ":mkview
			[nr]" is loaded.

The combination of ":mkview" and ":loadview" can be used to store up to ten
different views of a file.  These are remembered in the directory specified
with the 'viewdir' option.  The views are stored using the file name.  If a
file is renamed or accessed through a (symbolic) link the view will not be
found.

You might want to clean up your 'viewdir' directory now and then.

To automatically save and restore views for *.c files: >
	au BufWinLeave *.c mkview
	au BufWinEnter *.c silent loadview

==============================================================================
10. The viminfo file				*viminfo* *viminfo-file* *E136*
						*E575* *E576* *E577*
If you exit Vim and later start it again, you would normally lose a lot of
information.  The viminfo file can be used to remember that information, which
enables you to continue where you left off.

This is introduced in section |21.3| of the user manual.

The viminfo file is used to store:
- The command line history.
- The search string history.
- The input-line history.
- Contents of non-empty registers.
- Marks for several files.
- File marks, pointing to locations in files.
- Last search/substitute pattern (for 'n' and '&').
- The buffer list.
- Global variables.

The viminfo file is not supported when the |+viminfo| feature has been
disabled at compile time.

You could also use a Session file.  The difference is that the viminfo file
does not depend on what you are working on.  There normally is only one
viminfo file.  Session files are used to save the state of a specific editing
Session.  You could have several Session files, one for each project you are
working on.  Viminfo and Session files together can be used to effectively
enter Vim and directly start working in your desired setup. |session-file|

							*viminfo-read*
When Vim is started and the 'viminfo' option is non-empty, the contents of
the viminfo file are read and the info can be used in the appropriate places.
The |v:oldfiles| variable is filled.  The marks are not read in at startup
(but file marks are).  See |initialization| for how to set the 'viminfo'
option upon startup.

							*viminfo-write*
When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
file (it's actually merged with the existing one, if one exists).  The
'viminfo' option is a string containing information about what info should be
stored, and contains limits on how much should be stored (see 'viminfo').

Merging happens in two ways.  Most items that have been changed or set in the
current Vim session are stored, and what was not changed is filled from what
is currently in the viminfo file.  For example:
- Vim session A reads the viminfo, which contains variable START.
- Vim session B does the same
- Vim session A sets the variables AAA and BOTH and exits
- Vim session B sets the variables BBB and BOTH and exits
Now the viminfo will have:
   START - it was in the viminfo and wasn't changed in session A or B
   AAA   - value from session A, session B kept it
   BBB   - value from session B
   BOTH  - value from session B, value from session A is lost

							*viminfo-timestamp*
For some items a timestamp is used to keep the last changed version.  Here it
doesn't matter in which sequence Vim sessions exit, the newest item(s) are
always kept.  This is used for:
- The command line history.
- The search string history.
- The input-line history.
- Contents of non-empty registers.
- The jump list
- File marks
The timestamp feature was added before Vim 8.0.  Older versions of Vim,
starting with 7.4.1131, will keep the items with timestamp, but not use them.
Thus when using both an older and a newer version of Vim the most recent data
will be kept.

Notes for Unix:
- The file protection for the viminfo file will be set to prevent other users
  from being able to read it, because it may contain any text or commands that
  you have worked with.
- If you want to share the viminfo file with other users (e.g. when you "su"
  to another user), you can make the file writable for the group or everybody.
  Vim will preserve this when replacing the viminfo file.  Be careful, don't
  allow just anybody to read and write your viminfo file!
- Vim will not overwrite a viminfo file that is not writable by the current
  "real" user.  This helps for when you did "su" to become root, but your
  $HOME is still set to a normal user's home directory.  Otherwise Vim would
  create a viminfo file owned by root that nobody else can read.
- The viminfo file cannot be a symbolic link.  This is to avoid security
  issues.

Marks are stored for each file separately.  When a file is read and 'viminfo'
is non-empty, the marks for that file are read from the viminfo file.  NOTE:
The marks are only written when exiting Vim, which is fine because marks are
remembered for all the files you have opened in the current editing session,
unless ":bdel" is used.  If you want to save the marks for a file that you are
about to abandon with ":bdel", use ":wv".  The '[' and ']' marks are not
stored, but the '"' mark is.  The '"' mark is very useful for jumping to the
cursor position when the file was last exited.  No marks are saved for files
that start with any string given with the "r" flag in 'viminfo'.  This can be
used to avoid saving marks for files on removable media (for MS-DOS you would
use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:").
The |v:oldfiles| variable is filled with the file names that the viminfo file
has marks for.

							*viminfo-file-marks*
Uppercase marks ('A to 'Z) are stored when writing the viminfo file.  The
numbered marks ('0 to '9) are a bit special.  When the viminfo file is written
(when exiting or with the ":wviminfo" command), '0 is set to the current cursor
position and file.  The old '0 is moved to '1, '1 to '2, etc.  This
resembles what happens with the "1 to "9 delete registers.  If the current
cursor position is already present in '0 to '9, it is moved to '0, to avoid
having the same position twice.  The result is that with "'0", you can jump
back to the file and line where you exited Vim.  To do that right away, try
using this command: >

	vim -c "normal '0"

In a csh compatible shell you could make an alias for it: >

	alias lvim vim -c '"'normal "'"0'"'

For a bash-like shell: >

	alias lvim='vim -c "normal '\''0"'

Use the "r" flag in 'viminfo' to specify for which files no marks should be
remembered.


VIMINFO FILE NAME					*viminfo-file-name*

- The default name of the viminfo file is "$HOME/.viminfo" for Unix and OS/2,
  "s:.viminfo" for Amiga, "$HOME\_viminfo" for MS-DOS and Win32.  For the last
  two, when $HOME is not set, "$VIM\_viminfo" is used.  When $VIM is also not
  set, "c:\_viminfo" is used.  For OS/2 "$VIM/.viminfo" is used when $HOME is
  not set and $VIM is set.
- The 'n' flag in the 'viminfo' option can be used to specify another viminfo
  file name |'viminfo'|.
- The "-i" Vim argument can be used to set another file name, |-i|.  When the
  file name given is "NONE" (all uppercase), no viminfo file is ever read or
  written.  Also not for the commands below!
- For the commands below, another file name can be given, overriding the
  default and the name given with 'viminfo' or "-i" (unless it's NONE).


CHARACTER ENCODING					*viminfo-encoding*

The text in the viminfo file is encoded as specified with the 'encoding'
option.  Normally you will always work with the same 'encoding' value, and
this works just fine.  However, if you read the viminfo file with another
value for 'encoding' than what it was written with, some of the text
(non-ASCII characters) may be invalid.  If this is unacceptable, add the 'c'
flag to the 'viminfo' option: >
	:set viminfo+=c
Vim will then attempt to convert the text in the viminfo file from the
'encoding' value it was written with to the current 'encoding' value.  This
requires Vim to be compiled with the |+iconv| feature.  Filenames are not
converted.


MANUALLY READING AND WRITING				*viminfo-read-write*

Two commands can be used to read and write the viminfo file manually.  This
can be used to exchange registers between two running Vim programs: First
type ":wv" in one and then ":rv" in the other.  Note that if the register
already contained something, then ":rv!" would be required.  Also note
however that this means everything will be overwritten with information from
the first Vim, including the command line history, etc.

The viminfo file itself can be edited by hand too, although we suggest you
start with an existing one to get the format right.  It is reasonably
self-explanatory once you're in there.  This can be useful in order to
create a second file, say "~/.my_viminfo" which could contain certain
settings that you always want when you first start Vim.  For example, you
can preload registers with particular data, or put certain commands in the
command line history.  A line in your .vimrc file like >
	:rviminfo! ~/.my_viminfo
can be used to load this information.  You could even have different viminfos
for different types of files (e.g., C code) and load them based on the file
name, using the ":autocmd" command (see |:autocmd|).

							*viminfo-errors*
When Vim detects an error while reading a viminfo file, it will not overwrite
that file.  If there are more than 10 errors, Vim stops reading the viminfo
file.  This was done to avoid accidentally destroying a file when the file
name of the viminfo file is wrong.  This could happen when accidentally typing
"vim -i file" when you wanted "vim -R file" (yes, somebody accidentally did
that!).  If you want to overwrite a viminfo file with an error in it, you will
either have to fix the error, or delete the file (while Vim is running, so
most of the information will be restored).

						   *:rv* *:rviminfo* *E195*
:rv[iminfo][!] [file]	Read from viminfo file [file] (default: see above).
			If [!] is given, then any information that is
			already set (registers, marks, |v:oldfiles|, etc.)
			will be overwritten   {not in Vi}

			*:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929*
:wv[iminfo][!] [file]	Write to viminfo file [file] (default: see above).
			The information in the file is first read in to make
			a merge between old and new info.  When [!] is used,
			the old information is not read first, only the
			internal info is written.  If 'viminfo' is empty, marks
			for up to 100 files will be written.
			When you get error "E929: Too many viminfo temp files"
			check that no old temp files were left behind (e.g.
			~/.viminf*) and that you can write in the directory of
			the .viminfo file.
			{not in Vi}

						*:ol* *:oldfiles*
:ol[dfiles]		List the files that have marks stored in the viminfo
			file.  This list is read on startup and only changes
			afterwards with `:rviminfo!`.  Also see |v:oldfiles|.
			The number can be used with |c_#<|.
			The output can be filtered with |:filter|, e.g.: >
				filter /\.vim/ oldfiles
<			The filtering happens on the file name.
			{not in Vi, only when compiled with the |+eval|
			feature}

:bro[wse] ol[dfiles][!]
			List file names as with |:oldfiles|, and then prompt
			for a number.  When the number is valid that file from
			the list is edited.
			If you get the |press-enter| prompt you can press "q"
			and still get the prompt to enter a file number.
			Use ! to abandon a modified buffer. |abandon|
			{not when compiled with tiny or small features}

 vim:tw=78:ts=8:ft=help:norl:
PK�j�ZH�!�z�z�vim80/doc/autocmd.txtnu�[���*autocmd.txt*   For Vim version 8.0.  Last change: 2018 Apr 19


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Automatic commands					*autocommand*

For a basic explanation, see section |40.3| in the user manual.

1.  Introduction		|autocmd-intro|
2.  Defining autocommands	|autocmd-define|
3.  Removing autocommands	|autocmd-remove|
4.  Listing autocommands	|autocmd-list|
5.  Events			|autocmd-events|
6.  Patterns			|autocmd-patterns|
7.  Buffer-local autocommands	|autocmd-buflocal|
8.  Groups			|autocmd-groups|
9.  Executing autocommands	|autocmd-execute|
10. Using autocommands		|autocmd-use|
11. Disabling autocommands	|autocmd-disable|

{Vi does not have any of these commands}

==============================================================================
1. Introduction						*autocmd-intro*

You can specify commands to be executed automatically when reading or writing
a file, when entering or leaving a buffer or window, and when exiting Vim.
For example, you can create an autocommand to set the 'cindent' option for
files matching *.c.  You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|).  The usual
place to put autocommands is in your .vimrc or .exrc file.

				*E203* *E204* *E143* *E855* *E937* *E952*
WARNING: Using autocommands is very powerful, and may lead to unexpected side
effects.  Be careful not to destroy your text.
- It's a good idea to do some testing on an expendable copy of a file first.
  For example: If you use autocommands to decompress a file when starting to
  edit it, make sure that the autocommands for compressing when writing work
  correctly.
- Be prepared for an error halfway through (e.g., disk full).  Vim will mostly
  be able to undo the changes to the buffer, but you may have to clean up the
  changes to other files by hand (e.g., compress a file that has been
  decompressed).
- If the BufRead* events allow you to edit a compressed file, the FileRead*
  events should do the same (this makes recovery possible in some rare cases).
  It's a good idea to use the same autocommands for the File* and Buf* events
  when possible.

==============================================================================
2. Defining autocommands				*autocmd-define*

							*:au* *:autocmd*
:au[tocmd] [group] {event} {pat} [nested] {cmd}
			Add {cmd} to the list of commands that Vim will
			execute automatically on {event} for a file matching
			{pat} |autocmd-patterns|.
			Note: A quote character is seen as argument to the
			:autocmd and won't start a comment.
			Vim always adds the {cmd} after existing autocommands,
			so that the autocommands execute in the order in which
			they were given.  See |autocmd-nested| for [nested].

The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
See |autocmd-buflocal|.

Note: The ":autocmd" command can only be followed by another command when the
'|' appears before {cmd}.  This works: >
	:augroup mine | au! BufRead | augroup END
But this sees "augroup" as part of the defined command: >
	:augroup mine | au! BufRead * | augroup END
	:augroup mine | au BufRead * set tw=70 | augroup END
Instead you can put the group name into the command: >
	:au! mine BufRead *
	:au mine BufRead * set tw=70
Or use `:execute`: >
	:augroup mine | exe "au! BufRead *" | augroup END
	:augroup mine | exe "au BufRead * set tw=70" | augroup END

Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
arguments are not expanded when the autocommand is defined.  These will be
expanded when the Event is recognized, and the {cmd} is executed.  The only
exception is that "<sfile>" is expanded when the autocmd is defined.  Example:
>
	:au BufNewFile,BufRead *.html so <sfile>:h/html.vim

Here Vim expands <sfile> to the name of the file containing this line.

`:autocmd` adds to the list of autocommands regardless of whether they are
already present.  When your .vimrc file is sourced twice, the autocommands
will appear twice.  To avoid this, define your autocommands in a group, so
that you can easily clear them: >

	augroup vimrc
	  " Remove all vimrc autocommands
	  autocmd!
	  au BufNewFile,BufRead *.html so <sfile>:h/html.vim
	augroup END

If you don't want to remove all autocommands, you can instead use a variable
to ensure that Vim includes the autocommands only once: >

	:if !exists("autocommands_loaded")
	:  let autocommands_loaded = 1
	:  au ...
	:endif

When the [group] argument is not given, Vim uses the current group (as defined
with ":augroup"); otherwise, Vim uses the group defined with [group].  Note
that [group] must have been defined before.  You cannot define a new group
with ":au group ..."; use ":augroup" for that.

While testing autocommands, you might find the 'verbose' option to be useful: >
	:set verbose=9
This setting makes Vim echo the autocommands as it executes them.

When defining an autocommand in a script, it will be able to call functions
local to the script and use mappings local to the script.  When the event is
triggered and the command executed, it will run in the context of the script
it was defined in.  This matters if |<SID>| is used in a command.

When executing the commands, the message from one command overwrites a
previous message.  This is different from when executing the commands
manually.  Mostly the screen will not scroll up, thus there is no hit-enter
prompt.  When one command outputs two messages this can happen anyway.

==============================================================================
3. Removing autocommands				*autocmd-remove*

:au[tocmd]! [group] {event} {pat} [nested] {cmd}
			Remove all autocommands associated with {event} and
			{pat}, and add the command {cmd}.  See
			|autocmd-nested| for [nested].

:au[tocmd]! [group] {event} {pat}
			Remove all autocommands associated with {event} and
			{pat}.

:au[tocmd]! [group] * {pat}
			Remove all autocommands associated with {pat} for all
			events.

:au[tocmd]! [group] {event}
			Remove ALL autocommands for {event}.
			Warning: You should not do this without a group for
			|BufRead| and other common events, it can break
			plugins, syntax highlighting, etc.

:au[tocmd]! [group]	Remove ALL autocommands.
			Note: a quote will be seen as argument to the :autocmd
			and won't start a comment.
			Warning: You should normally not do this without a
			group, it breaks plugins, syntax highlighting, etc.

When the [group] argument is not given, Vim uses the current group (as defined
with ":augroup"); otherwise, Vim uses the group defined with [group].

==============================================================================
4. Listing autocommands					*autocmd-list*

:au[tocmd] [group] {event} {pat}
			Show the autocommands associated with {event} and
			{pat}.

:au[tocmd] [group] * {pat}
			Show the autocommands associated with {pat} for all
			events.

:au[tocmd] [group] {event}
			Show all autocommands for {event}.

:au[tocmd] [group]	Show all autocommands.

If you provide the [group] argument, Vim lists only the autocommands for
[group]; otherwise, Vim lists the autocommands for ALL groups.  Note that this
argument behavior differs from that for defining and removing autocommands.

In order to list buffer-local autocommands, use a pattern in the form <buffer>
or <buffer=N>.  See |autocmd-buflocal|.

							*:autocmd-verbose*
When 'verbose' is non-zero, listing an autocommand will also display where it
was last defined. Example: >

    :verbose autocmd BufEnter
    FileExplorer  BufEnter
	*	  call s:LocalBrowse(expand("<amatch>"))
	    Last set from /usr/share/vim/vim-7.0/plugin/NetrwPlugin.vim
<
See |:verbose-cmd| for more information.

==============================================================================
5. Events					*autocmd-events* *E215* *E216*

You can specify a comma-separated list of event names.  No white space can be
used in this list.  The command applies to all the events in the list.

For READING FILES there are four kinds of events possible:
	BufNewFile			starting to edit a non-existent file
	BufReadPre	BufReadPost	starting to edit an existing file
	FilterReadPre	FilterReadPost	read the temp file with filter output
	FileReadPre	FileReadPost	any other file read
Vim uses only one of these four kinds when reading a file.  The "Pre" and
"Post" events are both triggered, before and after reading the file.

Note that the autocommands for the *ReadPre events and all the Filter events
are not allowed to change the current buffer (you will get an error message if
this happens).  This is to prevent the file to be read into the wrong buffer.

Note that the 'modified' flag is reset AFTER executing the BufReadPost
and BufNewFile autocommands.  But when the 'modified' option was set by the
autocommands, this doesn't happen.

You can use the 'eventignore' option to ignore a number of events or all
events.
					*autocommand-events* *{event}*
Vim recognizes the following events.  Vim ignores the case of event names
(e.g., you can use "BUFread" or "bufread" instead of "BufRead").

First an overview by function with a short explanation.  Then the list
alphabetically with full explanations |autocmd-events-abc|.

Name			triggered by ~

	Reading
|BufNewFile|		starting to edit a file that doesn't exist
|BufReadPre|		starting to edit a new buffer, before reading the file
|BufRead|		starting to edit a new buffer, after reading the file
|BufReadPost|		starting to edit a new buffer, after reading the file
|BufReadCmd|		before starting to edit a new buffer |Cmd-event|

|FileReadPre|		before reading a file with a ":read" command
|FileReadPost|		after reading a file with a ":read" command
|FileReadCmd|		before reading a file with a ":read" command |Cmd-event|

|FilterReadPre|		before reading a file from a filter command
|FilterReadPost|	after reading a file from a filter command

|StdinReadPre|		before reading from stdin into the buffer
|StdinReadPost|		After reading from the stdin into the buffer

	Writing
|BufWrite|		starting to write the whole buffer to a file
|BufWritePre|		starting to write the whole buffer to a file
|BufWritePost|		after writing the whole buffer to a file
|BufWriteCmd|		before writing the whole buffer to a file |Cmd-event|

|FileWritePre|		starting to write part of a buffer to a file
|FileWritePost|		after writing part of a buffer to a file
|FileWriteCmd|		before writing part of a buffer to a file |Cmd-event|

|FileAppendPre|		starting to append to a file
|FileAppendPost|	after appending to a file
|FileAppendCmd|		before appending to a file |Cmd-event|

|FilterWritePre|	starting to write a file for a filter command or diff
|FilterWritePost|	after writing a file for a filter command or diff

	Buffers
|BufAdd|		just after adding a buffer to the buffer list
|BufCreate|		just after adding a buffer to the buffer list
|BufDelete|		before deleting a buffer from the buffer list
|BufWipeout|		before completely deleting a buffer
|TerminalOpen|		after a terminal buffer was created

|BufFilePre|		before changing the name of the current buffer
|BufFilePost|		after changing the name of the current buffer

|BufEnter|		after entering a buffer
|BufLeave|		before leaving to another buffer
|BufWinEnter|		after a buffer is displayed in a window
|BufWinLeave|		before a buffer is removed from a window

|BufUnload|		before unloading a buffer
|BufHidden|		just after a buffer has become hidden
|BufNew|		just after creating a new buffer

|SwapExists|		detected an existing swap file

	Options
|FileType|		when the 'filetype' option has been set
|Syntax|		when the 'syntax' option has been set
|EncodingChanged|	after the 'encoding' option has been changed
|TermChanged|		after the value of 'term' has changed
|OptionSet|		after setting any option

	Startup and exit
|VimEnter|		after doing all the startup stuff
|GUIEnter|		after starting the GUI successfully
|GUIFailed|		after starting the GUI failed
|TermResponse|		after the terminal response to |t_RV| is received

|QuitPre|		when using `:quit`, before deciding whether to exit
|ExitPre|		when using a command that may make Vim exit
|VimLeavePre|		before exiting Vim, before writing the viminfo file
|VimLeave|		before exiting Vim, after writing the viminfo file

	Various
|FileChangedShell|	Vim notices that a file changed since editing started
|FileChangedShellPost|	After handling a file changed since editing started
|FileChangedRO|		before making the first change to a read-only file

|DirChanged|		after the working directory has changed

|ShellCmdPost|		after executing a shell command
|ShellFilterPost|	after filtering with a shell command

|CmdUndefined|		a user command is used but it isn't defined
|FuncUndefined|		a user function is used but it isn't defined
|SpellFileMissing|	a spell file is used but it can't be found
|SourcePre|		before sourcing a Vim script
|SourceCmd|		before sourcing a Vim script |Cmd-event|

|VimResized|		after the Vim window size changed
|FocusGained|		Vim got input focus
|FocusLost|		Vim lost input focus
|CursorHold|		the user doesn't press a key for a while
|CursorHoldI|		the user doesn't press a key for a while in Insert mode
|CursorMoved|		the cursor was moved in Normal mode
|CursorMovedI|		the cursor was moved in Insert mode

|WinNew|		after creating a new window
|TabNew|		after creating a new tab page
|TabClosed|		after closing a tab page
|WinEnter|		after entering another window
|WinLeave|		before leaving a window
|TabEnter|		after entering another tab page
|TabLeave|		before leaving a tab page
|CmdwinEnter|		after entering the command-line window
|CmdwinLeave|		before leaving the command-line window

|CmdlineChanged|	after a change was made to the command-line text
|CmdlineEnter|		after the cursor moves to the command line
|CmdlineLeave|		before the cursor leaves the command line

|InsertEnter|		starting Insert mode
|InsertChange|		when typing <Insert> while in Insert or Replace mode
|InsertLeave|		when leaving Insert mode
|InsertCharPre|		when a character was typed in Insert mode, before
			inserting it

|TextChanged|		after a change was made to the text in Normal mode
|TextChangedI|		after a change was made to the text in Insert mode
			when popup menu is not visible
|TextChangedP|		after a change was made to the text in Insert mode
			when popup menu visible
|TextYankPost|		after text is yanked or deleted

|ColorScheme|		after loading a color scheme

|RemoteReply|		a reply from a server Vim was received

|QuickFixCmdPre|	before a quickfix command is run
|QuickFixCmdPost|	after a quickfix command is run

|SessionLoadPost|	after loading a session file

|MenuPopup|		just before showing the popup menu
|CompleteDone|		after Insert mode completion is done

|User|			to be used in combination with ":doautocmd"


The alphabetical list of autocommand events:		*autocmd-events-abc*

							*BufCreate* *BufAdd*
BufAdd or BufCreate		Just after creating a new buffer which is
				added to the buffer list, or adding a buffer
				to the buffer list.
				Also used just after a buffer in the buffer
				list has been renamed.
				The BufCreate event is for historic reasons.
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer being created "<afile>".
							*BufDelete*
BufDelete			Before deleting a buffer from the buffer list.
				The BufUnload may be called first (if the
				buffer was loaded).
				Also used just before a buffer in the buffer
				list is renamed.
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer being deleted "<afile>" and "<abuf>".
				Don't change to another buffer, it will cause
				problems.
							*BufEnter*
BufEnter			After entering a buffer.  Useful for setting
				options for a file type.  Also executed when
				starting to edit a buffer, after the
				BufReadPost autocommands.
							*BufFilePost*
BufFilePost			After changing the name of the current buffer
				with the ":file" or ":saveas" command.
							*BufFilePre*
BufFilePre			Before changing the name of the current buffer
				with the ":file" or ":saveas" command.
							*BufHidden*
BufHidden			Just after a buffer has become hidden.  That
				is, when there are no longer windows that show
				the buffer, but the buffer is not unloaded or
				deleted.  Not used for ":qa" or ":q" when
				exiting Vim.
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer being unloaded "<afile>".
							*BufLeave*
BufLeave			Before leaving to another buffer.  Also when
				leaving or closing the current window and the
				new current window is not for the same buffer.
				Not used for ":qa" or ":q" when exiting Vim.
							*BufNew*
BufNew				Just after creating a new buffer.  Also used
				just after a buffer has been renamed.  When
				the buffer is added to the buffer list BufAdd
				will be triggered too.
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer being created "<afile>".
							*BufNewFile*
BufNewFile			When starting to edit a file that doesn't
				exist.  Can be used to read in a skeleton
				file.
						*BufRead* *BufReadPost*
BufRead or BufReadPost		When starting to edit a new buffer, after
				reading the file into the buffer, before
				executing the modelines.  See |BufWinEnter|
				for when you need to do something after
				processing the modelines.
				This does NOT work for ":r file".  Not used
				when the file doesn't exist.  Also used after
				successfully recovering a file.
				Also triggered for the filetypedetect group
				when executing ":filetype detect" and when
				writing an unnamed buffer in a way that the
				buffer gets a name.
							*BufReadCmd*
BufReadCmd			Before starting to edit a new buffer.  Should
				read the file into the buffer. |Cmd-event|
						*BufReadPre* *E200* *E201*
BufReadPre			When starting to edit a new buffer, before
				reading the file into the buffer.  Not used
				if the file doesn't exist.
							*BufUnload*
BufUnload			Before unloading a buffer.  This is when the
				text in the buffer is going to be freed.  This
				may be after a BufWritePost and before a
				BufDelete.  Also used for all buffers that are
				loaded when Vim is going to exit.
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer being unloaded "<afile>".
				Don't change to another buffer or window, it
				will cause problems!
				When exiting and v:dying is 2 or more this
				event is not triggered.
							*BufWinEnter*
BufWinEnter			After a buffer is displayed in a window.  This
				can be when the buffer is loaded (after
				processing the modelines) or when a hidden
				buffer is displayed in a window (and is no
				longer hidden).
				Does not happen for |:split| without
				arguments, since you keep editing the same
				buffer, or ":split" with a file that's already
				open in a window, because it re-uses an
				existing buffer.  But it does happen for a
				":split" with the name of the current buffer,
				since it reloads that buffer.
							*BufWinLeave*
BufWinLeave			Before a buffer is removed from a window.
				Not when it's still visible in another window.
				Also triggered when exiting.  It's triggered
				before BufUnload or BufHidden.
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer being unloaded "<afile>".
				When exiting and v:dying is 2 or more this
				event is not triggered.
							*BufWipeout*
BufWipeout			Before completely deleting a buffer.  The
				BufUnload and BufDelete events may be called
				first (if the buffer was loaded and was in the
				buffer list).  Also used just before a buffer
				is renamed (also when it's not in the buffer
				list).
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer being deleted "<afile>".
				Don't change to another buffer, it will cause
				problems.
						*BufWrite* *BufWritePre*
BufWrite or BufWritePre		Before writing the whole buffer to a file.
							*BufWriteCmd*
BufWriteCmd			Before writing the whole buffer to a file.
				Should do the writing of the file and reset
				'modified' if successful, unless '+' is in
				'cpo' and writing to another file |cpo-+|.
				The buffer contents should not be changed.
				When the command resets 'modified' the undo
				information is adjusted to mark older undo
				states as 'modified', like |:write| does.
				|Cmd-event|
							*BufWritePost*
BufWritePost			After writing the whole buffer to a file
				(should undo the commands for BufWritePre).
							*CmdUndefined*
CmdUndefined			When a user command is used but it isn't
				defined.  Useful for defining a command only
				when it's used.  The pattern is matched
				against the command name.  Both <amatch> and
				<afile> are set to the name of the command.
				NOTE: Autocompletion won't work until the
				command is defined.  An alternative is to
				always define the user command and have it
				invoke an autoloaded function.  See |autoload|.
							*CmdlineChanged*
CmdlineChanged			After a change was made to the text in the
				command line.  Be careful not to mess up
				the command line, it may cause Vim to lock up.
				<afile> is set to a single character,
				indicating the type of command-line.
				|cmdwin-char|
							*CmdlineEnter*
CmdlineEnter			After moving the cursor to the command line,
				where the user can type a command or search
				string.
				<afile> is set to a single character,
				indicating the type of command-line.
				|cmdwin-char|
							*CmdlineLeave*
CmdlineLeave			Before leaving the command line.
				Also when abandoning the command line, after
				typing CTRL-C or <Esc>.
				When the commands result in an error the
				command line is still executed.
				<afile> is set to a single character,
				indicating the type of command-line.
				|cmdwin-char|
							*CmdwinEnter*
CmdwinEnter			After entering the command-line window.
				Useful for setting options specifically for
				this special type of window.  This is
				triggered _instead_ of BufEnter and WinEnter.
				<afile> is set to a single character,
				indicating the type of command-line.
				|cmdwin-char|
							*CmdwinLeave*
CmdwinLeave			Before leaving the command-line window.
				Useful to clean up any global setting done
				with CmdwinEnter.  This is triggered _instead_
				of BufLeave and WinLeave.
				<afile> is set to a single character,
				indicating the type of command-line.
				|cmdwin-char|
							*ColorScheme*
ColorScheme			After loading a color scheme. |:colorscheme|
				The pattern is matched against the
				colorscheme name. <afile> can be used for the
				name of the actual file where this option was
				set, and <amatch> for the new colorscheme
				name.


							*CompleteDone*
CompleteDone			After Insert mode completion is done.  Either
				when something was completed or abandoning
				completion. |ins-completion|
				The |v:completed_item| variable contains
				information about the completed item.

							*CursorHold*
CursorHold			When the user doesn't press a key for the time
				specified with 'updatetime'.  Not re-triggered
				until the user has pressed a key (i.e. doesn't
				fire every 'updatetime' ms if you leave Vim to
				make some coffee. :)  See |CursorHold-example|
				for previewing tags.
				This event is only triggered in Normal mode.
				It is not triggered when waiting for a command
				argument to be typed, or a movement after an
				operator.
				While recording the CursorHold event is not
				triggered. |q|
							*<CursorHold>*
				Internally the autocommand is triggered by the
				<CursorHold> key. In an expression mapping
				|getchar()| may see this character.

				Note: Interactive commands cannot be used for
				this event.  There is no hit-enter prompt,
				the screen is updated directly (when needed).
				Note: In the future there will probably be
				another option to set the time.
				Hint: to force an update of the status lines
				use: >
					:let &ro = &ro
<				{only on Amiga, Unix, Win32, MSDOS and all GUI
				versions}
							*CursorHoldI*
CursorHoldI			Just like CursorHold, but in Insert mode.
				Not triggered when waiting for another key,
				e.g. after CTRL-V, and not when in CTRL-X mode
				|insert_expand|.

							*CursorMoved*
CursorMoved			After the cursor was moved in Normal or Visual
				mode.  Also when the text of the cursor line
				has been changed, e.g., with "x", "rx" or "p".
				Not triggered when there is typeahead or when
				an operator is pending.
				For an example see |match-parens|.
				Careful: This is triggered very often, don't
				do anything that the user does not expect or
				that is slow.
							*CursorMovedI*
CursorMovedI			After the cursor was moved in Insert mode.
				Not triggered when the popup menu is visible.
				Otherwise the same as CursorMoved.
							*EncodingChanged*
EncodingChanged			Fires off after the 'encoding' option has been
				changed.  Useful to set up fonts, for example.
							*FileAppendCmd*
FileAppendCmd			Before appending to a file.  Should do the
				appending to the file.  Use the '[ and ']
				marks for the range of lines.|Cmd-event|
							*FileAppendPost*
FileAppendPost			After appending to a file.
							*FileAppendPre*
FileAppendPre			Before appending to a file.  Use the '[ and ']
				marks for the range of lines.
							*FileChangedRO*
FileChangedRO			Before making the first change to a read-only
				file.  Can be used to check-out the file from
				a source control system.  Not triggered when
				the change was caused by an autocommand.
				This event is triggered when making the first
				change in a buffer or the first change after
				'readonly' was set, just before the change is
				applied to the text.
				WARNING: If the autocommand moves the cursor
				the effect of the change is undefined.
							*E788*
				It is not allowed to change to another buffer
				here.  You can reload the buffer but not edit
				another one.
							*E881*
				If the number of lines changes saving for undo
				may fail and the change will be aborted.
							*DirChanged*
DirChanged			The working directory has changed in response
				to the |:cd| or |:lcd| commands, or as a
				result of the 'autochdir' option.
				The pattern can be:
					"window" to trigger on `:lcd
					"global" to trigger on `:cd`
					"auto"   to trigger on 'autochdir'.
					"drop"	 to trigger on editing a file
				<afile> is set to the new directory name.
							*ExitPre*
ExitPre				When using `:quit`, `:wq` in a way it makes
				Vim exit, or using `:qall`, just after
				|QuitPre|.  Can be used to close any
				non-essential window.
							*FileChangedShell*
FileChangedShell		When Vim notices that the modification time of
				a file has changed since editing started.
				Also when the file attributes of the file
				change or when the size of the file changes.
				|timestamp|
				Mostly triggered after executing a shell
				command, but also with a |:checktime| command
				or when gvim regains input focus.
				This autocommand is triggered for each changed
				file.  It is not used when 'autoread' is set
				and the buffer was not changed.  If a
				FileChangedShell autocommand is present the
				warning message and prompt is not given.
				The |v:fcs_reason| variable is set to indicate
				what happened and |v:fcs_choice| can be used
				to tell Vim what to do next.
				NOTE: When this autocommand is executed, the
				current buffer "%" may be different from the
				buffer that was changed, which is in "<afile>".
				NOTE: The commands must not change the current
				buffer, jump to another buffer or delete a
				buffer.  *E246* *E811*
				NOTE: This event never nests, to avoid an
				endless loop.  This means that while executing
				commands for the FileChangedShell event no
				other FileChangedShell event will be
				triggered.
							*FileChangedShellPost*
FileChangedShellPost		After handling a file that was changed outside
				of Vim.  Can be used to update the statusline.
							*FileEncoding*
FileEncoding			Obsolete.  It still works and is equivalent
				to |EncodingChanged|.
							*FileReadCmd*
FileReadCmd			Before reading a file with a ":read" command.
				Should do the reading of the file. |Cmd-event|
							*FileReadPost*
FileReadPost			After reading a file with a ":read" command.
				Note that Vim sets the '[ and '] marks to the
				first and last line of the read.  This can be
				used to operate on the lines just read.
							*FileReadPre*
FileReadPre			Before reading a file with a ":read" command.
							*FileType*
FileType			When the 'filetype' option has been set.  The
				pattern is matched against the filetype.
				<afile> can be used for the name of the file
				where this option was set, and <amatch> for
				the new value of 'filetype'.  Navigating to
				another window or buffer is not allowed.
				See |filetypes|.
							*FileWriteCmd*
FileWriteCmd			Before writing to a file, when not writing the
				whole buffer.  Should do the writing to the
				file.  Should not change the buffer.  Use the
				'[ and '] marks for the range of lines.
				|Cmd-event|
							*FileWritePost*
FileWritePost			After writing to a file, when not writing the
				whole buffer.
							*FileWritePre*
FileWritePre			Before writing to a file, when not writing the
				whole buffer.  Use the '[ and '] marks for the
				range of lines.
							*FilterReadPost*
FilterReadPost			After reading a file from a filter command.
				Vim checks the pattern against the name of
				the current buffer as with FilterReadPre.
				Not triggered when 'shelltemp' is off.
							*FilterReadPre* *E135*
FilterReadPre			Before reading a file from a filter command.
				Vim checks the pattern against the name of
				the current buffer, not the name of the
				temporary file that is the output of the
				filter command.
				Not triggered when 'shelltemp' is off.
							*FilterWritePost*
FilterWritePost			After writing a file for a filter command or
				making a diff.
				Vim checks the pattern against the name of
				the current buffer as with FilterWritePre.
				Not triggered when 'shelltemp' is off.
							*FilterWritePre*
FilterWritePre			Before writing a file for a filter command or
				making a diff.
				Vim checks the pattern against the name of
				the current buffer, not the name of the
				temporary file that is the output of the
				filter command.
				Not triggered when 'shelltemp' is off.
							*FocusGained*
FocusGained			When Vim got input focus.  Only for the GUI
				version and a few console versions where this
				can be detected.
							*FocusLost*
FocusLost			When Vim lost input focus.  Only for the GUI
				version and a few console versions where this
				can be detected.  May also happen when a
				dialog pops up.
							*FuncUndefined*
FuncUndefined			When a user function is used but it isn't
				defined.  Useful for defining a function only
				when it's used.  The pattern is matched
				against the function name.  Both <amatch> and
				<afile> are set to the name of the function.
				NOTE: When writing Vim scripts a better
				alternative is to use an autoloaded function.
				See |autoload-functions|.
							*GUIEnter*
GUIEnter			After starting the GUI successfully, and after
				opening the window.  It is triggered before
				VimEnter when using gvim.  Can be used to
				position the window from a .gvimrc file: >
	:autocmd GUIEnter * winpos 100 50
<							*GUIFailed*
GUIFailed			After starting the GUI failed.  Vim may
				continue to run in the terminal, if possible
				(only on Unix and alikes, when connecting the
				X server fails).  You may want to quit Vim: >
	:autocmd GUIFailed * qall
<							*InsertChange*
InsertChange			When typing <Insert> while in Insert or
				Replace mode.  The |v:insertmode| variable
				indicates the new mode.
				Be careful not to move the cursor or do
				anything else that the user does not expect.
							*InsertCharPre*
InsertCharPre			When a character is typed in Insert mode,
				before inserting the char.
				The |v:char| variable indicates the char typed
				and can be changed during the event to insert
				a different character.  When |v:char| is set
				to more than one character this text is
				inserted literally.
				It is not allowed to change the text |textlock|.
				The event is not triggered when 'paste' is
				set. {only with the +eval feature}
							*InsertEnter*
InsertEnter			Just before starting Insert mode.  Also for
				Replace mode and Virtual Replace mode.  The
				|v:insertmode| variable indicates the mode.
				Be careful not to do anything else that the
				user does not expect.
				The cursor is restored afterwards.  If you do
				not want that set |v:char| to a non-empty
				string.
							*InsertLeave*
InsertLeave			When leaving Insert mode.  Also when using
				CTRL-O |i_CTRL-O|.  But not for |i_CTRL-C|.
							*MenuPopup*
MenuPopup			Just before showing the popup menu (under the
				right mouse button).  Useful for adjusting the
				menu for what is under the cursor or mouse
				pointer.
				The pattern is matched against a single
				character representing the mode:
					n	Normal
					v	Visual
					o	Operator-pending
					i	Insert
					c	Command line
							*OptionSet*
OptionSet			After setting an option.  The pattern is
				matched against the long option name.
				The |v:option_old| variable indicates the
				old option value, |v:option_new| variable
				indicates the newly set value, the
				|v:option_type| variable indicates whether
				it's global or local scoped and |<amatch>|
				indicates what option has been set.

				Is not triggered on startup and for the 'key'
				option for obvious reasons.

				Usage example: Check for the existence of the
				directory in the 'backupdir' and 'undodir'
				options, create the directory if it doesn't
				exist yet.

				Note: It's a bad idea to reset an option
				during this autocommand, this may break a
				plugin. You can always use `:noa` to prevent
				triggering this autocommand.

							*QuickFixCmdPre*
QuickFixCmdPre			Before a quickfix command is run (|:make|,
				|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
				|:lgrepadd|, |:vimgrep|, |:lvimgrep|,
				|:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
				|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
				|:lgetfile|, |:laddfile|, |:helpgrep|,
				|:lhelpgrep|, |:cexpr|, |:cgetexpr|,
				|:caddexpr|, |:cbuffer|, |:cgetbuffer|,
				|:caddbuffer|).
				The pattern is matched against the command
				being run.  When |:grep| is used but 'grepprg'
				is set to "internal" it still matches "grep".
				This command cannot be used to set the
				'makeprg' and 'grepprg' variables.
				If this command causes an error, the quickfix
				command is not executed.
							*QuickFixCmdPost*
QuickFixCmdPost			Like QuickFixCmdPre, but after a quickfix
				command is run, before jumping to the first
				location. For |:cfile| and |:lfile| commands
				it is run after error file is read and before
				moving to the first error.
				See |QuickFixCmdPost-example|.
							*QuitPre*
QuitPre				When using `:quit`, `:wq` or `:qall`, before
				deciding whether it closes the current window
				or quits Vim.  Can be used to close any
				non-essential window if the current window is
				the last ordinary window.
				Also see |ExitPre|.
							*RemoteReply*
RemoteReply			When a reply from a Vim that functions as
				server was received |server2client()|.  The
				pattern is matched against the {serverid}.
				<amatch> is equal to the {serverid} from which
				the reply was sent, and <afile> is the actual
				reply string.
				Note that even if an autocommand is defined,
				the reply should be read with |remote_read()|
				to consume it.
							*SessionLoadPost*
SessionLoadPost			After loading the session file created using
				the |:mksession| command.
							*ShellCmdPost*
ShellCmdPost			After executing a shell command with |:!cmd|,
				|:shell|, |:make| and |:grep|.  Can be used to
				check for any changed files.
							*ShellFilterPost*
ShellFilterPost			After executing a shell command with
				":{range}!cmd", ":w !cmd" or ":r !cmd".
				Can be used to check for any changed files.
							*SourcePre*
SourcePre			Before sourcing a Vim script. |:source|
				<afile> is the name of the file being sourced.
							*SourceCmd*
SourceCmd			When sourcing a Vim script. |:source|
				<afile> is the name of the file being sourced.
				The autocommand must source this file.
				|Cmd-event|
							*SpellFileMissing*
SpellFileMissing		When trying to load a spell checking file and
				it can't be found.  The pattern is matched
				against the language.  <amatch> is the
				language, 'encoding' also matters.  See
				|spell-SpellFileMissing|.
							*StdinReadPost*
StdinReadPost			After reading from the stdin into the buffer,
				before executing the modelines.  Only used
				when the "-" argument was used when Vim was
				started |--|.
							*StdinReadPre*
StdinReadPre			Before reading from stdin into the buffer.
				Only used when the "-" argument was used when
				Vim was started |--|.
							*SwapExists*
SwapExists			Detected an existing swap file when starting
				to edit a file.  Only when it is possible to
				select a way to handle the situation, when Vim
				would ask the user what to do.
				The |v:swapname| variable holds the name of
				the swap file found, <afile> the file being
				edited.  |v:swapcommand| may contain a command
				to be executed in the opened file.
				The commands should set the |v:swapchoice|
				variable to a string with one character to
				tell Vim what should be done next:
					'o'	open read-only
					'e'	edit the file anyway
					'r'	recover
					'd'	delete the swap file
					'q'	quit, don't edit the file
					'a'	abort, like hitting CTRL-C
				When set to an empty string the user will be
				asked, as if there was no SwapExists autocmd.
							*E812*
				It is not allowed to change to another buffer,
				change a buffer name or change directory
				here.
				{only available with the +eval feature}
							*Syntax*
Syntax				When the 'syntax' option has been set.  The
				pattern is matched against the syntax name.
				<afile> can be used for the name of the file
				where this option was set, and <amatch> for
				the new value of 'syntax'.
				See |:syn-on|.
							*TabClosed*
TabClosed			After closing a tab page.
							*TabEnter*
TabEnter			Just after entering a tab page. |tab-page|
				After triggering the WinEnter and before
				triggering the BufEnter event.
							*TabLeave*
TabLeave			Just before leaving a tab page. |tab-page|
				A WinLeave event will have been triggered
				first.
							*TabNew*
TabNew				When a tab page was created. |tab-page|
				A WinEnter event will have been triggered
				first, TabEnter follows.
							*TermChanged*
TermChanged			After the value of 'term' has changed.  Useful
				for re-loading the syntax file to update the
				colors, fonts and other terminal-dependent
				settings.  Executed for all loaded buffers.
							*TerminalOpen*
TerminalOpen			Just after a terminal buffer was created, with
				`:terminal` or |term_start()|. This event is
				triggered even if the buffer is created
				without a window, with the ++hidden option.
							*TermResponse*
TermResponse			After the response to |t_RV| is received from
				the terminal.  The value of |v:termresponse|
				can be used to do things depending on the
				terminal version.  Note that this event may be
				triggered halfway executing another event,
				especially if file I/O, a shell command or
				anything else that takes time is involved.
							*TextChanged*
TextChanged			After a change was made to the text in the
				current buffer in Normal mode.  That is when
				|b:changedtick| has changed.
				Not triggered when there is typeahead or when
				an operator is pending.
				Careful: This is triggered very often, don't
				do anything that the user does not expect or
				that is slow.
							*TextChangedI*
TextChangedI			After a change was made to the text in the
				current buffer in Insert mode.
				Not triggered when the popup menu is visible.
				Otherwise the same as TextChanged.
							*TextChangedP*
TextChangedP			After a change was made to the text in the
				current buffer in Insert mode, only when the
				popup menu is visible.  Otherwise the same as
				TextChanged.
							*TextYankPost*
TextYankPost			After text has been yanked or deleted in the
				current buffer.  The following values of
				|v:event| can be used to determine the operation
				that triggered this autocmd:
				   operator    	The operation performed.
				   regcontents 	Text that was stored in the
						register, as a list of lines,
						like with: >
						getreg(r, 1, 1)
<				   regname	Name of the |register| or
						empty string for the unnamed
						register.
				   regtype	Type of the register, see
						|getregtype()|.
				Not triggered when |quote_| is used nor when
				called recursively.
				It is not allowed to change the buffer text,
				see |textlock|.
				{only when compiled with the +eval feature}
							*User*
User				Never executed automatically.  To be used for
				autocommands that are only executed with
				":doautocmd".
				Note that when `:doautocmd User MyEvent` is
				used while there are no matching autocommands,
				you will get an error.  If you don't want
				that, define a dummy autocommand yourself.
							*UserGettingBored*
UserGettingBored		When the user presses the same key 42 times.
				Just kidding! :-)
							*VimEnter*
VimEnter			After doing all the startup stuff, including
				loading .vimrc files, executing the "-c cmd"
				arguments, creating all windows and loading
				the buffers in them.
				Just before this event is triggered the
				|v:vim_did_enter| variable is set, so that you
				can do: >
				   if v:vim_did_enter
				     call s:init()
				   else
 	  			     au VimEnter * call s:init()
				   endif
<							*VimLeave*
VimLeave			Before exiting Vim, just after writing the
				.viminfo file.  Executed only once, like
				VimLeavePre.
				To detect an abnormal exit use |v:dying|.
				When v:dying is 2 or more this event is not
				triggered.
							*VimLeavePre*
VimLeavePre			Before exiting Vim, just before writing the
				.viminfo file.  This is executed only once,
				if there is a match with the name of what
				happens to be the current buffer when exiting.
				Mostly useful with a "*" pattern. >
	:autocmd VimLeavePre * call CleanupStuff()
<				To detect an abnormal exit use |v:dying|.
				When v:dying is 2 or more this event is not
				triggered.
							*VimResized*
VimResized			After the Vim window was resized, thus 'lines'
				and/or 'columns' changed.  Not when starting
				up though.
							*WinEnter*
WinEnter			After entering another window.  Not done for
				the first window, when Vim has just started.
				Useful for setting the window height.
				If the window is for another buffer, Vim
				executes the BufEnter autocommands after the
				WinEnter autocommands.
				Note: For split and tabpage commands the
				WinEnter event is triggered after the split
				or tab command but before the file is loaded.

							*WinLeave*
WinLeave			Before leaving a window.  If the window to be
				entered next is for a different buffer, Vim
				executes the BufLeave autocommands before the
				WinLeave autocommands (but not for ":new").
				Not used for ":qa" or ":q" when exiting Vim.

							*WinNew*
WinNew				When a new window was created.  Not done for
				the first window, when Vim has just started.
				Before a WinEnter event.

==============================================================================
6. Patterns					*autocmd-patterns* *{pat}*

The {pat} argument can be a comma separated list.  This works as if the
command was given with each pattern separately.  Thus this command: >
	:autocmd BufRead *.txt,*.info set et
Is equivalent to: >
	:autocmd BufRead *.txt set et
	:autocmd BufRead *.info set et

The file pattern {pat} is tested for a match against the file name in one of
two ways:
1. When there is no '/' in the pattern, Vim checks for a match against only
   the tail part of the file name (without its leading directory path).
2. When there is a '/' in the pattern, Vim checks for a match against both the
   short file name (as you typed it) and the full file name (after expanding
   it to a full path and resolving symbolic links).

The special pattern <buffer> or <buffer=N> is used for buffer-local
autocommands |autocmd-buflocal|.  This pattern is not matched against the name
of a buffer.

Examples: >
	:autocmd BufRead *.txt		set et
Set the 'et' option for all text files. >

	:autocmd BufRead /vim/src/*.c	set cindent
Set the 'cindent' option for C files in the /vim/src directory. >

	:autocmd BufRead /tmp/*.c	set ts=5
If you have a link from "/tmp/test.c" to "/home/nobody/vim/src/test.c", and
you start editing "/tmp/test.c", this autocommand will match.

Note:  To match part of a path, but not from the root directory, use a '*' as
the first character.  Example: >
	:autocmd BufRead */doc/*.txt	set tw=78
This autocommand will for example be executed for "/tmp/doc/xx.txt" and
"/usr/home/piet/doc/yy.txt".  The number of directories does not matter here.


The file name that the pattern is matched against is after expanding
wildcards.  Thus if you issue this command: >
	:e $ROOTDIR/main.$EXT
The argument is first expanded to: >
	/usr/root/main.py
Before it's matched with the pattern of the autocommand.  Careful with this
when using events like FileReadCmd, the value of <amatch> may not be what you
expect.


Environment variables can be used in a pattern: >
	:autocmd BufRead $VIMRUNTIME/doc/*.txt  set expandtab
And ~ can be used for the home directory (if $HOME is defined): >
	:autocmd BufWritePost ~/.vimrc   so ~/.vimrc
	:autocmd BufRead ~archive/*      set readonly
The environment variable is expanded when the autocommand is defined, not when
the autocommand is executed.  This is different from the command!

							*file-pattern*
The pattern is interpreted like mostly used in file names:
	*	matches any sequence of characters; Unusual: includes path
		separators
	?	matches any single character
	\?	matches a '?'
	.	matches a '.'
	~	matches a '~'
	,	separates patterns
	\,	matches a ','
	{ }	like \( \) in a |pattern|
	,	inside { }: like \| in a |pattern|
	\}	literal }
	\{	literal {
	\\\{n,m\}  like \{n,m} in a |pattern|
	\	special meaning like in a |pattern|
	[ch]	matches 'c' or 'h'
	[^ch]   match any character but 'c' and 'h'

Note that for all systems the '/' character is used for path separator (even
MS-DOS and OS/2).  This was done because the backslash is difficult to use
in a pattern and to make the autocommands portable across different systems.

It is possible to use |pattern| items, but they may not work as expected,
because of the translation done for the above.

							*autocmd-changes*
Matching with the pattern is done when an event is triggered.  Changing the
buffer name in one of the autocommands, or even deleting the buffer, does not
change which autocommands will be executed.  Example: >

	au BufEnter *.foo  bdel
	au BufEnter *.foo  set modified

This will delete the current buffer and then set 'modified' in what has become
the current buffer instead.  Vim doesn't take into account that "*.foo"
doesn't match with that buffer name.  It matches "*.foo" with the name of the
buffer at the moment the event was triggered.

However, buffer-local autocommands will not be executed for a buffer that has
been wiped out with |:bwipe|.  After deleting the buffer with |:bdel| the
buffer actually still exists (it becomes unlisted), thus the autocommands are
still executed.

==============================================================================
7. Buffer-local autocommands	*autocmd-buflocal* *autocmd-buffer-local*
					*<buffer=N>* *<buffer=abuf>* *E680*

Buffer-local autocommands are attached to a specific buffer.  They are useful
if the buffer does not have a name and when the name does not match a specific
pattern.  But it also means they must be explicitly added to each buffer.

Instead of a pattern buffer-local autocommands use one of these forms:
	<buffer>	current buffer
	<buffer=99>	buffer number 99
	<buffer=abuf>	using <abuf> (only when executing autocommands)
			|<abuf>|

Examples: >
    :au CursorHold <buffer>  echo 'hold'
    :au CursorHold <buffer=33>  echo 'hold'
    :au BufNewFile * au CursorHold <buffer=abuf>  echo 'hold'

All the commands for autocommands also work with buffer-local autocommands,
simply use the special string instead of the pattern.  Examples: >
    :au! * <buffer>		     " remove buffer-local autocommands for
				     " current buffer
    :au! * <buffer=33>		     " remove buffer-local autocommands for
				     " buffer #33
    :bufdo :au! CursorHold <buffer>  " remove autocmd for given event for all
				     " buffers
    :au * <buffer>		     " list buffer-local autocommands for
				     " current buffer

Note that when an autocommand is defined for the current buffer, it is stored
with the buffer number.  Thus it uses the form "<buffer=12>", where 12 is the
number of the current buffer.  You will see this when listing autocommands,
for example.

To test for presence of buffer-local autocommands use the |exists()| function
as follows: >
    :if exists("#CursorHold#<buffer=12>") | ... | endif
    :if exists("#CursorHold#<buffer>") | ... | endif    " for current buffer

When a buffer is wiped out its buffer-local autocommands are also gone, of
course.  Note that when deleting a buffer, e.g., with ":bdel", it is only
unlisted, the autocommands are still present.  In order to see the removal of
buffer-local autocommands: >
    :set verbose=6

It is not possible to define buffer-local autocommands for a non-existent
buffer.

==============================================================================
8. Groups						*autocmd-groups*

Autocommands can be put together in a group.  This is useful for removing or
executing a group of autocommands.  For example, all the autocommands for
syntax highlighting are put in the "highlight" group, to be able to execute
":doautoall highlight BufRead" when the GUI starts.

When no specific group is selected, Vim uses the default group.  The default
group does not have a name.  You cannot execute the autocommands from the
default group separately; you can execute them only by executing autocommands
for all groups.

Normally, when executing autocommands automatically, Vim uses the autocommands
for all groups.  The group only matters when executing autocommands with
":doautocmd" or ":doautoall", or when defining or deleting autocommands.

The group name can contain any characters except white space.  The group name
"end" is reserved (also in uppercase).

The group name is case sensitive.  Note that this is different from the event
name!

							*:aug* *:augroup*
:aug[roup] {name}		Define the autocmd group name for the
				following ":autocmd" commands.  The name "end"
				or "END" selects the default group.
				To avoid confusion, the name should be
				different from existing {event} names, as this
				most likely will not do what you intended.

					*:augroup-delete* *E367* *W19* *E936*
:aug[roup]! {name}		Delete the autocmd group {name}.  Don't use
				this if there is still an autocommand using
				this group!  You will get a warning if doing
				it anyway. when the group is the current group
				you will get error E936.

To enter autocommands for a specific group, use this method:
1. Select the group with ":augroup {name}".
2. Delete any old autocommands with ":au!".
3. Define the autocommands.
4. Go back to the default group with "augroup END".

Example: >
	:augroup uncompress
	:  au!
	:  au BufEnter *.gz	%!gunzip
	:augroup END

This prevents having the autocommands defined twice (e.g., after sourcing the
.vimrc file again).

==============================================================================
9. Executing autocommands				*autocmd-execute*

Vim can also execute Autocommands non-automatically.  This is useful if you
have changed autocommands, or when Vim has executed the wrong autocommands
(e.g., the file pattern match was wrong).

Note that the 'eventignore' option applies here too.  Events listed in this
option will not cause any commands to be executed.

					*:do* *:doau* *:doautocmd* *E217*
:do[autocmd] [<nomodeline>] [group] {event} [fname]
			Apply the autocommands matching [fname] (default:
			current file name) for {event} to the current buffer.
			You can use this when the current file name does not
			match the right pattern, after changing settings, or
			to execute autocommands for a certain event.
			It's possible to use this inside an autocommand too,
			so you can base the autocommands for one extension on
			another extension.  Example: >
				:au BufEnter *.cpp so ~/.vimrc_cpp
				:au BufEnter *.cpp doau BufEnter x.c
<			Be careful to avoid endless loops.  See
			|autocmd-nested|.

			When the [group] argument is not given, Vim executes
			the autocommands for all groups.  When the [group]
			argument is included, Vim executes only the matching
			autocommands for that group.  Note: if you use an
			undefined group name, Vim gives you an error message.
							*<nomodeline>*
			After applying the autocommands the modelines are
			processed, so that their settings overrule the
			settings from autocommands, like what happens when
			editing a file. This is skipped when the <nomodeline>
			argument is present. You probably want to use
			<nomodeline> for events that are not used when loading
			a buffer, such as |User|.
			Processing modelines is also skipped when no
			matching autocommands were executed.

						*:doautoa* *:doautoall*
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
			Like ":doautocmd", but apply the autocommands to each
			loaded buffer.  Note that [fname] is used to select
			the autocommands, not the buffers to which they are
			applied.
			Careful: Don't use this for autocommands that delete a
			buffer, change to another buffer or change the
			contents of a buffer; the result is unpredictable.
			This command is intended for autocommands that set
			options, change highlighting, and things like that.

==============================================================================
10. Using autocommands					*autocmd-use*

For WRITING FILES there are four possible sets of events.  Vim uses only one
of these sets for a write command:

BufWriteCmd	BufWritePre	BufWritePost	writing the whole buffer
		FilterWritePre	FilterWritePost	writing to filter temp file
FileAppendCmd	FileAppendPre	FileAppendPost	appending to a file
FileWriteCmd	FileWritePre	FileWritePost	any other file write

When there is a matching "*Cmd" autocommand, it is assumed it will do the
writing.  No further writing is done and the other events are not triggered.
|Cmd-event|

Note that the *WritePost commands should undo any changes to the buffer that
were caused by the *WritePre commands; otherwise, writing the file will have
the side effect of changing the buffer.

Before executing the autocommands, the buffer from which the lines are to be
written temporarily becomes the current buffer.  Unless the autocommands
change the current buffer or delete the previously current buffer, the
previously current buffer is made the current buffer again.

The *WritePre and *AppendPre autocommands must not delete the buffer from
which the lines are to be written.

The '[ and '] marks have a special position:
- Before the *ReadPre event the '[ mark is set to the line just above where
  the new lines will be inserted.
- Before the *ReadPost event the '[ mark is set to the first line that was
  just read, the '] mark to the last line.
- Before executing the *WriteCmd, *WritePre and *AppendPre autocommands the '[
  mark is set to the first line that will be written, the '] mark to the last
  line.
Careful: '[ and '] change when using commands that change the buffer.

In commands which expect a file name, you can use "<afile>" for the file name
that is being read |:<afile>| (you can also use "%" for the current file
name).  "<abuf>" can be used for the buffer number of the currently effective
buffer.  This also works for buffers that doesn't have a name.  But it doesn't
work for files without a buffer (e.g., with ":r file").

							*gzip-example*
Examples for reading and writing compressed files: >
  :augroup gzip
  :  autocmd!
  :  autocmd BufReadPre,FileReadPre	*.gz set bin
  :  autocmd BufReadPost,FileReadPost	*.gz '[,']!gunzip
  :  autocmd BufReadPost,FileReadPost	*.gz set nobin
  :  autocmd BufReadPost,FileReadPost	*.gz execute ":doautocmd BufReadPost " . expand("%:r")
  :  autocmd BufWritePost,FileWritePost	*.gz !mv <afile> <afile>:r
  :  autocmd BufWritePost,FileWritePost	*.gz !gzip <afile>:r

  :  autocmd FileAppendPre		*.gz !gunzip <afile>
  :  autocmd FileAppendPre		*.gz !mv <afile>:r <afile>
  :  autocmd FileAppendPost		*.gz !mv <afile> <afile>:r
  :  autocmd FileAppendPost		*.gz !gzip <afile>:r
  :augroup END

The "gzip" group is used to be able to delete any existing autocommands with
":autocmd!", for when the file is sourced twice.

("<afile>:r" is the file name without the extension, see |:_%:|)

The commands executed for the BufNewFile, BufRead/BufReadPost, BufWritePost,
FileAppendPost and VimLeave events do not set or reset the changed flag of the
buffer.  When you decompress the buffer with the BufReadPost autocommands, you
can still exit with ":q".  When you use ":undo" in BufWritePost to undo the
changes made by BufWritePre commands, you can still do ":q" (this also makes
"ZZ" work).  If you do want the buffer to be marked as modified, set the
'modified' option.

To execute Normal mode commands from an autocommand, use the ":normal"
command.  Use with care!  If the Normal mode command is not finished, the user
needs to type characters (e.g., after ":normal m" you need to type a mark
name).

If you want the buffer to be unmodified after changing it, reset the
'modified' option.  This makes it possible to exit the buffer with ":q"
instead of ":q!".

							*autocmd-nested* *E218*
By default, autocommands do not nest.  If you use ":e" or ":w" in an
autocommand, Vim does not execute the BufRead and BufWrite autocommands for
those commands.  If you do want this, use the "nested" flag for those commands
in which you want nesting.  For example: >
  :autocmd FileChangedShell *.c nested e!
The nesting is limited to 10 levels to get out of recursive loops.

It's possible to use the ":au" command in an autocommand.  This can be a
self-modifying command!  This can be useful for an autocommand that should
execute only once.

If you want to skip autocommands for one command, use the |:noautocmd| command
modifier or the 'eventignore' option.

Note: When reading a file (with ":read file" or with a filter command) and the
last line in the file does not have an <EOL>, Vim remembers this.  At the next
write (with ":write file" or with a filter command), if the same line is
written again as the last line in a file AND 'binary' is set, Vim does not
supply an <EOL>.  This makes a filter command on the just read lines write the
same file as was read, and makes a write command on just filtered lines write
the same file as was read from the filter.  For example, another way to write
a compressed file: >

  :autocmd FileWritePre *.gz   set bin|'[,']!gzip
  :autocmd FileWritePost *.gz  undo|set nobin
<
							*autocommand-pattern*
You can specify multiple patterns, separated by commas.  Here are some
examples: >

  :autocmd BufRead   *		set tw=79 nocin ic infercase fo=2croq
  :autocmd BufRead   .letter	set tw=72 fo=2tcrq
  :autocmd BufEnter  .letter	set dict=/usr/lib/dict/words
  :autocmd BufLeave  .letter	set dict=
  :autocmd BufRead,BufNewFile   *.c,*.h	set tw=0 cin noic
  :autocmd BufEnter  *.c,*.h	abbr FOR for (i = 0; i < 3; ++i)<CR>{<CR>}<Esc>O
  :autocmd BufLeave  *.c,*.h	unabbr FOR

For makefiles (makefile, Makefile, imakefile, makefile.unix, etc.): >

  :autocmd BufEnter  ?akefile*	set include=^s\=include
  :autocmd BufLeave  ?akefile*	set include&

To always start editing C files at the first function: >

  :autocmd BufRead   *.c,*.h	1;/^{

Without the "1;" above, the search would start from wherever the file was
entered, rather than from the start of the file.

						*skeleton* *template*
To read a skeleton (template) file when opening a new file: >

  :autocmd BufNewFile  *.c	0r ~/vim/skeleton.c
  :autocmd BufNewFile  *.h	0r ~/vim/skeleton.h
  :autocmd BufNewFile  *.java	0r ~/vim/skeleton.java

To insert the current date and time in a *.html file when writing it: >

  :autocmd BufWritePre,FileWritePre *.html   ks|call LastMod()|'s
  :fun LastMod()
  :  if line("$") > 20
  :    let l = 20
  :  else
  :    let l = line("$")
  :  endif
  :  exe "1," . l . "g/Last modified: /s/Last modified: .*/Last modified: " .
  :  \ strftime("%Y %b %d")
  :endfun

You need to have a line "Last modified: <date time>" in the first 20 lines
of the file for this to work.  Vim replaces <date time> (and anything in the
same line after it) with the current date and time.  Explanation:
	ks		mark current position with mark 's'
	call LastMod()  call the LastMod() function to do the work
	's		return the cursor to the old position
The LastMod() function checks if the file is shorter than 20 lines, and then
uses the ":g" command to find lines that contain "Last modified: ".  For those
lines the ":s" command is executed to replace the existing date with the
current one.  The ":execute" command is used to be able to use an expression
for the ":g" and ":s" commands.  The date is obtained with the strftime()
function.  You can change its argument to get another date string.

When entering :autocmd on the command-line, completion of events and command
names may be done (with <Tab>, CTRL-D, etc.) where appropriate.

Vim executes all matching autocommands in the order that you specify them.
It is recommended that your first autocommand be used for all files by using
"*" as the file pattern.  This means that you can define defaults you like
here for any settings, and if there is another matching autocommand it will
override these.  But if there is no other matching autocommand, then at least
your default settings are recovered (if entering this file from another for
which autocommands did match).  Note that "*" will also match files starting
with ".", unlike Unix shells.

						    *autocmd-searchpat*
Autocommands do not change the current search patterns.  Vim saves the current
search patterns before executing autocommands then restores them after the
autocommands finish.  This means that autocommands do not affect the strings
highlighted with the 'hlsearch' option.  Within autocommands, you can still
use search patterns normally, e.g., with the "n" command.
If you want an autocommand to set the search pattern, such that it is used
after the autocommand finishes, use the ":let @/ =" command.
The search-highlighting cannot be switched off with ":nohlsearch" in an
autocommand.  Use the 'h' flag in the 'viminfo' option to disable search-
highlighting when starting Vim.

							*Cmd-event*
When using one of the "*Cmd" events, the matching autocommands are expected to
do the file reading, writing or sourcing.  This can be used when working with
a special kind of file, for example on a remote system.
CAREFUL: If you use these events in a wrong way, it may have the effect of
making it impossible to read or write the matching files!  Make sure you test
your autocommands properly.  Best is to use a pattern that will never match a
normal file name, for example "ftp://*".

When defining a BufReadCmd it will be difficult for Vim to recover a crashed
editing session.  When recovering from the original file, Vim reads only those
parts of a file that are not found in the swap file.  Since that is not
possible with a BufReadCmd, use the |:preserve| command to make sure the
original file isn't needed for recovery.  You might want to do this only when
you expect the file to be modified.

For file read and write commands the |v:cmdarg| variable holds the "++enc="
and "++ff=" argument that are effective.  These should be used for the command
that reads/writes the file.  The |v:cmdbang| variable is one when "!" was
used, zero otherwise.

See the $VIMRUNTIME/plugin/netrwPlugin.vim for examples.

==============================================================================
11. Disabling autocommands				*autocmd-disable*

To disable autocommands for some time use the 'eventignore' option.  Note that
this may cause unexpected behavior, make sure you restore 'eventignore'
afterwards, using a |:try| block with |:finally|.

							*:noautocmd* *:noa*
To disable autocommands for just one command use the ":noautocmd" command
modifier.  This will set 'eventignore' to "all" for the duration of the
following command.  Example: >

	:noautocmd w fname.gz

This will write the file without triggering the autocommands defined by the
gzip plugin.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z5�_�ppvim80/doc/debugger.txtnu�[���*debugger.txt*  For Vim version 8.0.  Last change: 2017 Nov 21


		  VIM REFERENCE MANUAL    by Gordon Prieur


Debugger Support Features				*debugger-support*

1. Debugger Features		|debugger-features|
2. Vim Compile Options		|debugger-compilation|
3. Integrated Debuggers		|debugger-integration|

{Vi does not have any of these features}

==============================================================================
1. Debugger Features					*debugger-features*

The following features are available for an integration with a debugger or
an Integrated Programming Environment (IPE) or Integrated Development
Environment (IDE):

	Alternate Command Input				|alt-input|
	Debug Signs					|debug-signs|
	Debug Source Highlight				|debug-highlight|
	Message Footer					|gui-footer|
	Balloon Evaluation				|balloon-eval|

These features were added specifically for use in the Motif version of gvim.
However, the |alt-input| and |debug-highlight| were written to be usable in
both vim and gvim.  Some of the other features could be used in the non-GUI
vim with slight modifications.  However, I did not do this nor did I test the
reliability of building for vim or non Motif GUI versions.


1.1 Alternate Command Input				*alt-input*

For Vim to work with a debugger there must be at least an input connection
with a debugger or external tool.  In many cases there will also be an output
connection but this isn't absolutely necessary.

The purpose of the input connection is to let the external debugger send
commands to Vim.  The commands sent by the debugger should give the debugger
enough control to display the current debug environment and state.

The current implementation is based on the X Toolkit dispatch loop and the
XtAddInput() function call.


1.2 Debug Signs						*debug-signs*

Many debuggers mark specific lines by placing a small sign or color highlight
on the line.  The |:sign| command lets the debugger set this graphic mark.  Some
examples where this feature would be used would be a debugger showing an arrow
representing the Program Counter (PC) of the program being debugged.  Another
example would be a small stop sign for a line with a breakpoint.  These visible
highlights let the user keep track of certain parts of the state of the
debugger.

This feature can be used with more than debuggers, too.  An IPE can use a sign
to highlight build errors, searched text, or other things.  The sign feature
can also work together with the |debug-highlight| to ensure the mark is
highly visible.

Debug signs are defined and placed using the |:sign| command.


1.3 Debug Source Highlight				*debug-highlight*

This feature allows a line to have a predominant highlight.  The highlight is
intended to make a specific line stand out.  The highlight could be made to
work for both vim and gvim, whereas the debug sign is, in most cases, limited
to gvim.  The one exception to this is Sun Microsystem's dtterm.  The dtterm
from Sun has a "sign gutter" for showing signs.


1.4 Message Footer					*gui-footer*

The message footer can be used to display messages from a debugger or IPE.  It
can also be used to display menu and toolbar tips.  The footer area is at the
bottom of the GUI window, below the line used to display colon commands.

The display of the footer is controlled by the 'guioptions' letter 'F'.


1.5 Balloon Evaluation					*balloon-eval*

This feature allows a debugger, or other external tool, to display dynamic
information based on where the mouse is pointing.  The purpose of this feature
was to allow Sun's Visual WorkShop debugger to display expression evaluations.
However, the feature was implemented in as general a manner as possible and
could be used for displaying other information as well.

The Balloon Evaluation has some settable parameters too.  For Motif the font
list and colors can be set via X resources (XmNballoonEvalFontList,
XmNballoonEvalBackground, and XmNballoonEvalForeground).
The 'balloondelay' option sets the delay before an attempt is made to show a
balloon.
The 'ballooneval' and/or the 'balloonevalterm' option needs to be set to
switch it on.

Balloon evaluation is only available in the GUI when compiled with the
|+balloon_eval| feature.  For the terminal the  |+balloon_eval_term| feature
matters.

The Balloon evaluation functions are also used to show a tooltip for the
toolbar.  The 'ballooneval' option does not need to be set for this.  But the
other settings apply.

Another way to use the balloon is with the 'balloonexpr' option.  This is
completely user definable.

==============================================================================
2. Vim Compile Options					*debugger-compilation*

The debugger features were added explicitly for use with Sun's Visual
WorkShop Integrated Programming Environment (ipe).  However, they were done
in as generic a manner as possible so that integration with other debuggers
could also use some or all of the tools used with Sun's ipe.

The following compile time preprocessor variables control the features:

    Alternate Command Input			ALT_X_INPUT
    Debug Glyphs				FEAT_SIGNS
    Debug Highlights				FEAT_SIGNS
    Message Footer				FEAT_FOOTER
    Balloon Evaluation				FEAT_BEVAL

The first integration with a full IPE/IDE was with Sun Visual WorkShop.  To
compile a gvim which interfaces with VWS set the following flag, which sets
all the above flags:

    Sun Visual WorkShop				FEAT_SUN_WORKSHOP

==============================================================================
3. Integrated Debuggers					*debugger-integration*

One fully integrated debugger/IPE/IDE is Sun's Visual WorkShop Integrated
Programming Environment.

For Sun NetBeans support see |netbeans|.

 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z�"lNNvim80/doc/if_ruby.txtnu�[���*if_ruby.txt*   For Vim version 8.0.  Last change: 2018 Mar 15


		  VIM REFERENCE MANUAL    by Shugo Maeda

The Ruby Interface to Vim				*ruby* *Ruby*


1. Commands			|ruby-commands|
2. The Vim module		|ruby-vim|
3. Vim::Buffer objects		|ruby-buffer|
4. Vim::Window objects		|ruby-window|
5. Global variables		|ruby-globals|
6. Dynamic loading		|ruby-dynamic|

{Vi does not have any of these commands}
			*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*

The Ruby interface only works when Vim was compiled with the |+ruby| feature.

The home page for ruby is http://www.ruby-lang.org/.  You can find links for
downloading Ruby there.

==============================================================================
1. Commands						*ruby-commands*

							*:ruby* *:rub*
:rub[y] {cmd}		Execute Ruby command {cmd}.  A command to try it out: >
				:ruby print "Hello"

:rub[y] << {endpattern}
{script}
{endpattern}
			Execute Ruby script {script}.
			{endpattern} must NOT be preceded by any white space.
			If {endpattern} is omitted, it defaults to a dot '.'
			like for the |:append| and |:insert| commands.  This
			form of the |:ruby| command is mainly useful for
			including ruby code in vim scripts.
			Note: This command doesn't work when the Ruby feature
			wasn't compiled in.  To avoid errors, see
			|script-here|.

Example Vim script: >

	function! RedGem()
	ruby << EOF
	class Garnet
		def initialize(s)
			@buffer = Vim::Buffer.current
			vimputs(s)
		end
		def vimputs(s)
			@buffer.append(@buffer.count,s)
		end
	end
	gem = Garnet.new("pretty")
	EOF
	endfunction
<
To see what version of Ruby you have: >
	:ruby print RUBY_VERSION
<

						*:rubydo* *:rubyd* *E265*
:[range]rubyd[o] {cmd}	Evaluate Ruby command {cmd} for each line in the
			[range], with $_ being set to the text of each line in
			turn, without a trailing <EOL>.  Setting $_ will change
			the text, but note that it is not possible to add or
			delete lines using this command.
			The default for [range] is the whole file: "1,$".

							*:rubyfile* *:rubyf*
:rubyf[ile] {file}	Execute the Ruby script in {file}.  This is the same as
			`:ruby load 'file'`, but allows file name completion.

Executing Ruby commands is not possible in the |sandbox|.

==============================================================================
2. The Vim module					*ruby-vim*

Ruby code gets all of its access to vim via the "Vim" module.

Overview: >
	print "Hello"			      # displays a message
	Vim.command(cmd)		      # execute an Ex command
	num = Vim::Window.count		      # gets the number of windows
	w = Vim::Window[n]		      # gets window "n"
	cw = Vim::Window.current	      # gets the current window
	num = Vim::Buffer.count		      # gets the number of buffers
	b = Vim::Buffer[n]		      # gets buffer "n"
	cb = Vim::Buffer.current	      # gets the current buffer
	w.height = lines		      # sets the window height
	w.cursor = [row, col]		      # sets the window cursor position
	pos = w.cursor			      # gets an array [row, col]
	name = b.name			      # gets the buffer file name
	line = b[n]			      # gets a line from the buffer
	num = b.count			      # gets the number of lines
	b[n] = str			      # sets a line in the buffer
	b.delete(n)			      # deletes a line
	b.append(n, str)		      # appends a line after n
	line = Vim::Buffer.current.line       # gets the current line
	num = Vim::Buffer.current.line_number # gets the current line number
	Vim::Buffer.current.line = "test"     # sets the current line number
<

Module Functions:

							*ruby-message*
Vim::message({msg})
	Displays the message {msg}.

							*ruby-set_option*
Vim::set_option({arg})
	Sets a vim option.  {arg} can be any argument that the ":set" command
	accepts.  Note that this means that no spaces are allowed in the
	argument!  See |:set|.

							*ruby-command*
Vim::command({cmd})
	Executes Ex command {cmd}.

							*ruby-evaluate*
Vim::evaluate({expr})
	Evaluates {expr} using the vim internal expression evaluator (see
	|expression|).  Returns the expression result as:
	- a Integer if the Vim expression evaluates to a number
	- a Float if the Vim expression evaluates to a float
	- a String if the Vim expression evaluates to a string
	- a Array if the Vim expression evaluates to a Vim list
	- a Hash if the Vim expression evaluates to a Vim dictionary
	Dictionaries and lists are recursively expanded.

==============================================================================
3. Vim::Buffer objects					*ruby-buffer*

Vim::Buffer objects represent vim buffers.

Class Methods:

current		Returns the current buffer object.
count		Returns the number of buffers.
self[{n}]	Returns the buffer object for the number {n}.  The first number
		is 0.

Methods:

name		Returns the name of the buffer.
number		Returns the number of the buffer.
count		Returns the number of lines.
length		Returns the number of lines.
self[{n}]	Returns a line from the buffer. {n} is the line number.
self[{n}] = {str}
		Sets a line in the buffer. {n} is the line number.
delete({n})	Deletes a line from the buffer. {n} is the line number.
append({n}, {str})
		Appends a line after the line {n}.
line		Returns the current line of the buffer if the buffer is
		active.
line = {str}    Sets the current line of the buffer if the buffer is active.
line_number     Returns the number of the current line if the buffer is
		active.

==============================================================================
4. Vim::Window objects					*ruby-window*

Vim::Window objects represent vim windows.

Class Methods:

current		Returns the current window object.
count		Returns the number of windows.
self[{n}]	Returns the window object for the number {n}.  The first number
		is 0.

Methods:

buffer		Returns the buffer displayed in the window.
height		Returns the height of the window.
height = {n}	Sets the window height to {n}.
width		Returns the width of the window.
width = {n}	Sets the window width to {n}.
cursor		Returns a [row, col] array for the cursor position.
cursor = [{row}, {col}]
		Sets the cursor position to {row} and {col}.

==============================================================================
5. Global variables					*ruby-globals*

There are two global variables.

$curwin		The current window object.
$curbuf		The current buffer object.

==============================================================================
6. Dynamic loading					*ruby-dynamic*

On MS-Windows and Unix the Ruby library can be loaded dynamically.  The
|:version| output then includes |+ruby/dyn|.

This means that Vim will search for the Ruby DLL file or shared library only
when needed.  When you don't use the Ruby interface you don't need it, thus
you can use Vim even though this library file is not on your system.


MS-Windows ~

You need to install the right version of Ruby for this to work.  You can find
the package to download from:
http://rubyinstaller.org/downloads/
Currently that is rubyinstaller-2.2.5.exe

To use the Ruby interface the Ruby DLL must be in your search path.  In a
console window type "path" to see what directories are used.  The 'rubydll'
option can be also used to specify the Ruby DLL.

The name of the DLL must match the Ruby version Vim was compiled with.
Currently the name is "msvcrt-ruby220.dll".  That is for Ruby 2.2.X.  To know
for sure edit "gvim.exe" and search for "ruby\d*.dll\c".

If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need
some tricks.  See the src/INSTALLpc.txt for detail.

If Vim is built with RubyInstaller 2.4 or later, you may also need to add
"C:\Ruby<version>\bin\ruby_builtin_dlls" to the PATH environment variable.


Unix ~

The 'rubydll' option can be used to specify the Ruby shared library file
instead of DYNAMIC_RUBY_DLL file what was specified at compile time.  The
version of the shared library must match the Ruby version Vim was compiled
with.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Zz���.�.vim80/doc/arabic.txtnu�[���*arabic.txt*	For Vim version 8.0.  Last change: 2010 Nov 13


		  VIM REFERENCE MANUAL	  by Nadim Shaikli


Arabic Language support (options & mappings) for Vim		*Arabic*

{Vi does not have any of these commands}

								*E800*
In order to use right-to-left and Arabic mapping support, it is
necessary to compile Vim with the |+arabic| feature.

These functions have been created by Nadim Shaikli <nadim-at-arabeyes.org>

It is best to view this file with these settings within Vim's GUI: >

	:set encoding=utf-8
	:set arabicshape


Introduction
------------
Arabic is a rather demanding language in which a number of special
features are required.	Characters are right-to-left oriented and
ought to appear as such on the screen (i.e. from right to left).
Arabic also requires shaping of its characters, meaning the same
character has a different visual form based on its relative location
within a word (initial, medial, final or stand-alone).	Arabic also
requires two different forms of combining and the ability, in
certain instances, to either superimpose up to two characters on top
of another (composing) or the actual substitution of two characters
into one (combining).  Lastly, to display Arabic properly one will
require not only ISO-8859-6 (U+0600-U+06FF) fonts, but will also
require Presentation Form-B (U+FE70-U+FEFF) fonts both of which are
subsets within a so-called ISO-10646-1 font.

The commands, prompts and help files are not in Arabic, therefore
the user interface remains the standard Vi interface.


Highlights
----------
o  Editing left-to-right files as in the original Vim hasn't changed.

o  Viewing and editing files in right-to-left windows.	 File
   orientation is per window, so it is possible to view the same
   file in right-to-left and left-to-right modes, simultaneously.

o  No special terminal with right-to-left capabilities is required.
   The right-to-left changes are completely hardware independent.
   Only Arabic fonts are necessary.

o  Compatible with the original Vim.   Almost all features work in
   right-to-left mode (there are liable to be bugs).

o  Changing keyboard mapping and reverse insert modes using a single
   command.

o  Toggling complete Arabic support via a single command.

o  While in Arabic mode, numbers are entered from left to right.  Upon
   entering a none number character, that character will be inserted
   just into the left of the last number.

o  Arabic keymapping on the command line in reverse insert mode.

o  Proper Bidirectional functionality is possible given Vim is
   started within a Bidi capable terminal emulator.


Arabic Fonts						*arabicfonts*
------------

Vim requires monospaced fonts of which there are many out there.
Arabic requires ISO-8859-6 as well as Presentation Form-B fonts
(without Form-B, Arabic will _NOT_ be usable).	It is highly
recommended that users search for so-called 'ISO-10646-1' fonts.
Do an Internet search or check www.arabeyes.org for further
info on where to attain the necessary Arabic fonts.


Font Installation
-----------------

o  Installation of fonts for X Window systems (Unix/Linux)

   Depending on your system, copy your_ARABIC_FONT file into a
   directory of your choice.  Change to the directory containing
   the Arabic fonts and execute the following commands:

     %	mkfontdir
     %	xset +fp path_name_of_arabic_fonts_directory


Usage
-----
Prior to the actual usage of Arabic within Vim, a number of settings
need to be accounted for and invoked.

o  Setting the Arabic fonts

   +  For Vim GUI set the 'guifont' to your_ARABIC_FONT.  This is done
      by entering the following command in the Vim window.
>
		:set guifont=your_ARABIC_FONT
<
      NOTE: the string 'your_ARABIC_FONT' is used to denote a complete
	    font name akin to that used in Linux/Unix systems.
	    (e.g. -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1)

      You can append the 'guifont' set command to your .vimrc file
      in order to get the same above noted results.  In other words,
      you can include ':set guifont=your_ARABIC_FONT' to your .vimrc
      file.

   +  Under the X Window environment, you can also start Vim with
      '-fn your_ARABIC_FONT' option.

o  Setting the appropriate character Encoding
   To enable the correct Arabic encoding the following command needs
   to be appended,
>
		:set encoding=utf-8
<
   to your .vimrc file (entering the command manually into you Vim
   window is highly discouraged).  In short, include ':set
   encoding=utf-8' to your .vimrc file.

   Attempts to use Arabic without UTF-8 will result the following
   warning message,

								*W17*  >
     Arabic requires UTF-8, do ':set encoding=utf-8'

o  Enable Arabic settings [short-cut]

   In order to simplify and streamline things, you can either invoke
   Vim with the command-line option,

     % vim -A my_utf8_arabic_file ...

   or enable 'arabic' via the following command within Vim
>
		:set arabic
<
   The two above noted possible invocations are the preferred manner
   in which users are instructed to proceed.  Barring an enabled 'termbidi'
   setting, both command options:

     1. set the appropriate keymap
     2. enable the deletion of a single combined pair character
     3. enable rightleft    mode
     4. enable rightleftcmd mode (affecting the command-line)
     5. enable arabicshape  mode (do visual character alterations)

   You may also append the command to your .vimrc file and simply
   include ':set arabic' to it.

   You are also capable of disabling Arabic support via
>
		:set noarabic
<
   which resets everything that the command had enabled without touching
   the global settings as they could affect other possible open buffers.
   In short the 'noarabic' command,

     1. resets to the alternate keymap
     2. disables the deletion of a single combined pair character
     3. disables rightleft mode

   NOTE: the 'arabic' command takes into consideration 'termbidi' for
	 possible external bi-directional (bidi) support from the
	 terminal ("mlterm" for instance offers such support).
	 'termbidi', if available, is superior to rightleft support
	 and its support is preferred due to its level of offerings.
	 'arabic' when 'termbidi' is enabled only sets the keymap.

   If, on the other hand, you'd like to be verbose and explicit and
   are opting not to use the 'arabic' short-cut command, here's what
   is needed (i.e. if you use ':set arabic' you can skip this section) -

   +  Arabic Keymapping Activation

      To activate the Arabic keymap (i.e. to remap your English/Latin
      keyboard to look-n-feel like a standard Arabic one), set the
      'keymap' command to "arabic".  This is done by entering
>
		:set keymap=arabic
<
      in your Vim window.  You can also append the 'keymap' set command to
      your .vimrc file.  In other words, you can include ':set keymap=arabic'
      to your .vimrc file.

      To turn toggle (or switch) your keymapping between Arabic and the
      default mapping (English), it is advised that users use the 'CTRL-^'
      key press while in insert (or add/replace) mode.	The command-line
      will display your current mapping by displaying an "Arabic" string
      next to your insertion mode (e.g. -- INSERT Arabic --) indicating
      your current keymap.

   +  Arabic deletion of a combined pair character

      By default Vim has the 'delcombine' option disabled.  This option
      allows the deletion of ALEF in a LAM_ALEF (LAA) combined character
      and still retain the LAM (i.e. it reverts to treating the combined
      character as its natural two characters form -- this also pertains
      to harakat and their combined forms).  You can enable this option
      by entering
>
		:set delcombine
<
      in our Vim window.  You can also append the 'delcombine' set command
      to your .vimrc file.  In other words, you can include ':set delcombine'
      to your .vimrc file.

   +  Arabic right-to-left Mode

      By default Vim starts in Left-to-right mode.  'rightleft' is the
      command that allows one to alter a window's orientation - that can
      be accomplished via,

      - Toggling between left-to-right and right-to-left modes is
	accomplished through ':set rightleft' and ':set norightleft'.

      - While in Left-to-right mode, enter ':set rl' in the command line
	('rl' is the abbreviation for rightleft).

      - Put the ':set rl' line in your '.vimrc' file to start Vim in
	right-to-left mode permanently.

   +  Arabic right-to-left command-line Mode

      For certain commands the editing can be done in right-to-left mode.
      Currently this is only applicable to search commands.

      This is controlled with the 'rightleftcmd' option.  The default is
      "search", which means that windows in which 'rightleft' is set will
      edit search commands in right-left mode.	To disable this behavior,
>
		:set rightleftcmd=
<
      To enable right-left editing of search commands again,
>
		:set rightleftcmd&
<
   +  Arabic Shaping Mode

      To activate the required visual characters alterations (shaping,
      composing, combining) which the Arabic language requires, enable
      the 'arabicshape' command.  This is done by entering
>
		:set arabicshape
<
      in our Vim window.  You can also append the 'arabicshape' set
      command to your .vimrc file.  In other words, you can include
      ':set arabicshape' to your .vimrc file.


Keymap/Keyboard						*arabickeymap*
---------------

The character/letter encoding used in Vim is the standard UTF-8.
It is widely discouraged that any other encoding be used or even
attempted.

Note: UTF-8 is an all encompassing encoding and as such is
      the only supported (and encouraged) encoding with
      regard to Arabic (all other proprietary encodings
      should be discouraged and frowned upon).

o  Keyboard

   +  CTRL-^ in insert/replace mode toggles between Arabic/Latin mode

   +  Keyboard mapping is based on the Microsoft's Arabic keymap (the
      de facto standard in the Arab world):

  +---------------------------------------------------------------------+
  |!   |@   |#   |$   |%   |^   |&   |*   |(   |)   |_   |+   ||   |~  ّ |
  |1 ١ |2 ٢ |3 ٣ |4 ٤ |5 ٥ |6 ٦ |7 ٧ |8 ٨ |9 ٩ |0 ٠ |-   |=   |\   |` ذ |
  +---------------------------------------------------------------------+
       |Q  َ |W  ً |E  ُ |R  ٌ |T لإ |Y إ |U ` |I ÷ |O x |P ؛ |{ < |} > |
       |q ض |w ص |e ث |r ق |t ف |y غ |u ع |i ه |o خ |p ح |[ ج |] د |
       +-----------------------------------------------------------+
	 |A  ِ |S  ٍ |D [ |F ] |G لأ |H أ |J ـ |K ، |L / |:   |"   |
	 |a ش |s س |d ي |f ب |g ل |h ا |j ت |k ن |l م |; ك |' ط |
	 +------------------------------------------------------+
	   |Z ~ |X  ْ |C { |V } |B لآ |N آ |M ' |< , |> . |? ؟ |
	   |z ئ |x ء |c ؤ |v ر |b لا |n ى |m ة |, و |. ز |/ ظ |
	   +-------------------------------------------------+

Restrictions
------------

o  Vim in its GUI form does not currently support Bi-directionality
   (i.e. the ability to see both Arabic and Latin intermixed within
   the same line).


Known Bugs
----------

There is one known minor bug,

 1. If you insert a haraka (e.g. Fatha (U+064E)) after a LAM (U+0644)
    and then insert an ALEF (U+0627), the appropriate combining will
    not happen due to the sandwiched haraka resulting in something
    that will NOT be displayed correctly.

    WORK-AROUND: Don't include harakats between LAM and ALEF combos.
		 In general, don't anticipate to see correct visual
		 representation with regard to harakats and LAM+ALEF
		 combined characters (even those entered after both
		 characters).  The problem noted is strictly a visual
		 one, meaning saving such a file will contain all the
		 appropriate info/encodings - nothing is lost.

No other bugs are known to exist.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z=ŗ^(s(svim80/doc/gui_x11.txtnu�[���*gui_x11.txt*   For Vim version 8.0.  Last change: 2017 Jul 28


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Vim's Graphical User Interface				*gui-x11* *GUI-X11*
							*Athena* *Motif*
1. Starting the X11 GUI		|gui-x11-start|
2. GUI Resources		|gui-resources|
3. Shell Commands		|gui-pty|
4. Various			|gui-x11-various|
5. GTK version			|gui-gtk|
6. GNOME version		|gui-gnome|
7. KDE version			|gui-kde|
8. Compiling			|gui-x11-compiling|
9. X11 selection mechanism	|x11-selection|

Other relevant documentation:
|gui.txt|	For generic items of the GUI.

{Vi does not have any of these commands}

==============================================================================
1. Starting the X11 GUI					*gui-x11-start* *E665*

Then you can run the GUI version of Vim in either of these ways:
    gvim [options] [files...]
    vim -g [options] [files...]

So if you call the executable "gvim", or make "gvim" a link to the executable,
then the GUI version will automatically be used.  Additional characters may be
added after "gvim", for example "gvim-5".

You may also start up the GUI from within the terminal version by using one of
these commands:
	:gui [++opt] [+cmd] [-f|-b] [files...]			*:gu* *:gui*
	:gvim [++opt] [+cmd] [-f|-b] [files...]			*:gv* *:gvim*
The "-f" option runs Vim in the foreground.
The "-b" option runs Vim in the background (this is the default).
Also see |++opt| and |+cmd|.

							*gui-fork*
When the GUI is started, it does a fork() and exits the current process.
When gvim was started from a shell this makes the shell accept further
commands.  If you don't want this (e.g. when using gvim for a mail program
that waits for gvim to exit), start gvim with "gvim -f", "vim -gf" or use
":gui -f".  Don't use "vim -fg", because "-fg" specifies the foreground
color.

When using "gvim -f" and then ":gui", Vim will run in the foreground.  The
"-f" argument will be remembered.  To force running Vim in the background use
":gui -b".

"gvim --nofork" does the same as "gvim -f".
								*E851* *E852*
When starting the GUI fails Vim will try to continue running in the terminal.

If you want the GUI to run in the foreground always, include the 'f'
flag in 'guioptions'.  |-f|.

==============================================================================
2. GUI Resources			*gui-resources* *.Xdefaults*

If using the Motif or Athena version of the GUI (not for the KDE, GTK+ or Win32
version), a number of X resources are available.  You should use Vim's class
"Vim" when setting these.  They are as follows:

    Resource name	Meaning		~

    reverseVideo	Boolean: should reverse video be used?
    background		Color of background.
    foreground		Color of normal text.
    scrollBackground	Color of trough portion of scrollbars.
    scrollForeground	Color of slider and arrow portions of scrollbars.
    menuBackground	Color of menu backgrounds.
    menuForeground	Color of menu foregrounds.
    tooltipForeground	Color of tooltip and balloon foreground.
    tooltipBackground	Color of tooltip and balloon background.

    font		Name of font used for normal text.
    boldFont		Name of font used for bold text.
    italicFont		Name of font used for italic text.
    boldItalicFont	Name of font used for bold, italic text.
    menuFont		Name of font used for the menus, used when compiled
			without the |+xfontset| feature
    menuFontSet		Name of fontset used for the menus, used when compiled
			with the |+xfontset| feature
    tooltipFont		Name of the font used for the tooltip and balloons.
			When compiled with the |+xfontset| feature this is a
			fontset name.

    geometry		Initial geometry to use for gvim's window (default
			is same size as terminal that started it).
    scrollbarWidth	Thickness of scrollbars.
    borderWidth		Thickness of border around text area.
    menuHeight		Height of the menu bar (only for Athena).

A special font for italic, bold, and italic-bold text will only be used if
the user has specified one via a resource.  No attempt is made to guess what
fonts should be used for these based on the normal text font.

Note that the colors can also be set with the ":highlight" command, using the
"Normal", "Menu", "Tooltip", and "Scrollbar" groups.  Example: >
	:highlight Menu guibg=lightblue
	:highlight Tooltip guibg=yellow
	:highlight Scrollbar guibg=lightblue guifg=blue
	:highlight Normal guibg=grey90
<
							*font-sizes*
Note: All fonts (except for the menu and tooltip) must be of the same size!!!
If you don't do this, text will disappear or mess up the display.  Vim does
not check the font sizes.  It's the size in screen pixels that must be the
same.  Note that some fonts that have the same point size don't have the same
pixel size!  Additionally, the positioning of the fonts must be the same
(ascent and descent).  You can check this with "xlsfonts -l {fontname}".

If any of these things are also set with Vim commands, e.g. with
":set guifont=Screen15", then this will override the X resources (currently
'guifont' is the only option that is supported).

Here is an example of what you might put in your ~/.Xdefaults file: >

	Vim*useSchemes:			all
	Vim*sgiMode:			true
	Vim*useEnhancedFSB:		true
	Vim.foreground:			Black
	Vim.background:			Wheat
	Vim*fontList:			7x13

The first three of these are standard resources on Silicon Graphics machines
which make Motif applications look even better, highly recommended!

The "Vim*fontList" is to set the menu font for Motif.  Example: >
	Vim*menuBar*fontList:	     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
With Athena: >
	Vim*menuBar*SmeBSB*font:     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
	Vim*menuBar*MenuButton*font: -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*

NOTE: A more portable, and indeed more correct, way to specify the menu font
in either Motif or Athena is through the resource: >
	Vim.menuFont:	     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
Or, when compiled with the |+xfontset| feature: >
	Vim.menuFontSet:     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*

Don't use "Vim*geometry" in the defaults.  This will break the menus.  Use
"Vim.geometry" instead.

If you get an error message "Cannot allocate colormap entry for "gray60",
try adding this to your Vim resources (change the colors to your liking): >

	Vim*scrollBackground:		Black
	Vim*scrollForeground:		Blue

The resources can also be set with arguments to Vim:

    argument		meaning	~
							*-gui*
   -display {display}	Run vim on {display}		*-display*
   -iconic		Start vim iconified		*-iconic*
   -background {color}	Use {color} for the background	*-background*
   -bg {color}		idem				*-bg*
   -foreground {color}	Use {color} for normal text	*-foreground*
   -fg {color}		idem				*-fg*
   -ul {color}		idem				*-ul*
   -font {font}		Use {font} for normal text	*-font*
   -fn {font}		idem				*-fn*
   -boldfont {font}	Use {font} for bold text	*-boldfont*
   -italicfont {font}	Use {font} for italic text	*-italicfont*
   -menufont {font}	Use {font} for menu items	*-menufont*
   -menufontset {fontset} Use {fontset} for menu items	*-menufontset*
   -mf {font}		idem				*-mf*
   -geometry {geom}	Use {geom} for initial geometry	*-geometry*
   -geom {geom}		idem, see |-geometry-example|	*-geom*
   -borderwidth {width}	Use a border width of {width}	*-borderwidth*
   -bw {width}		idem				*-bw*
							*-scrollbarwidth*
   -scrollbarwidth {width}	Use a scrollbar width of {width}
   -sw {width}		idem				*-sw*
   -menuheight {height}	Use a menu bar height of {height} *-menuheight*
   -mh {height}		idem				*-mh*
			NOTE: On Motif the value is ignored, the menu height
			is computed to fit the menus.
   -reverse		Use reverse video		*-reverse*
   -rv			idem				*-rv*
   +reverse		Don't use reverse video		*-+reverse*
   +rv			idem				*-+rv*
   -xrm {resource}	Set the specified resource	*-xrm*

Note about reverse video: Vim checks that the result is actually a light text
on a dark background.  The reason is that some X11 versions swap the colors,
and some don't.  These two examples will both give yellow text on a blue
background:
    gvim -fg Yellow -bg Blue -reverse
    gvim -bg Yellow -fg Blue -reverse

							*-geometry-example*
An example for the geometry argument: >
	gvim -geometry 80x63+8+100
This creates a window with 80 columns and 63 lines at position 8 pixels from
the left and 100 pixels from the top of the screen.

==============================================================================
3. Shell Commands					*gui-pty*

WARNING: Executing an external command from the GUI will not always work.
"normal" commands like "ls", "grep" and "make" mostly work fine.  Commands
that require an intelligent terminal like "less" and "ispell" won't work.
Some may even hang and need to be killed from another terminal.  So be
careful!

There are two ways to do the I/O with a shell command: Pipes and a pseudo-tty.
The default is to use a pseudo-tty.  This should work best on most systems.

Unfortunately, the implementation of the pseudo-tty is different on every Unix
system.  And some systems require root permission.  To avoid running into
problems with a pseudo-tty when you least expect it, test it when not editing
a file.  Be prepared to "kill" the started command or Vim.  Commands like
":r !cat" may hang!

If using a pseudo-tty does not work for you, reset the 'guipty' option: >

	:set noguipty

Using a pipe should work on any Unix system, but there are disadvantages:
- Some shell commands will notice that a pipe is being used and behave
  differently.  E.g., ":!ls" will list the files in one column.
- The ":sh" command won't show a prompt, although it will sort of work.
- When using ":make" it's not possible to interrupt with a CTRL-C.

Typeahead while the external command is running is often lost.  This happens
both with a pipe and a pseudo-tty.  This is a known problem, but it seems it
can't be fixed (or at least, it's very difficult).

							*gui-pty-erase*
When your erase character is wrong for an external command, you should fix
this in your "~/.cshrc" file, or whatever file your shell uses for
initializations.  For example, when you want to use backspace to delete
characters, but hitting backspaces produces "^H" instead, try adding this to
your "~/.cshrc": >
	stty erase ^H
The ^H is a real CTRL-H, type it as CTRL-V CTRL-H.

==============================================================================
4. Various						*gui-x11-various*

							*gui-x11-printing*
The "File/Print" menu simply sends the current buffer to "lpr".  No options or
whatever.  If you want something else, you can define your own print command.
For example: >

  :10amenu File.Print :w !lpr -Php3
  :10vmenu File.Print :w !lpr -Php3
<
							*X11-icon*
Vim uses a black&white icon by default when compiled with Motif or Athena.  A
colored Vim icon is included as $VIMRUNTIME/vim32x32.xpm.  For GTK+, this is
the builtin icon used.  Unfortunately, how you should install it depends on
your window manager.  When you use this, remove the 'i' flag from
'guioptions', to remove the black&white icon: >
  :set guioptions-=i

If you use one of the fvwm* family of window managers simply add this line to
your .fvwm2rc configuration file: >

  Style "vim"		Icon vim32x32.xpm

Make sure the icon file's location is consistent with the window manager's
ImagePath statement.  Either modify the ImagePath from within your .fvwm2rc or
drop the icon into one the pre-defined directories: >

  ImagePath /usr/X11R6/include/X11/pixmaps:/usr/X11R6/include/X11/bitmaps

Note: older versions of fvwm use "IconPath" instead of "ImagePath".

For CDE "dtwm" (a derivative of Motif) add this line in the .Xdefaults: >
   Dtwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm

For "mwm" (Motif window manager) the line would be: >
   Mwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm


Mouse Pointers Available in X11 ~
						*X11_mouse_shapes*
By using the |'mouseshape'| option, the mouse pointer can be automatically
changed whenever Vim enters one of its various modes (e.g., Insert or
Command).  Currently, the available pointers are:

	arrow			an arrow pointing northwest
	beam			a I-like vertical bar
	size			an arrow pointing up and down
	busy			a wristwatch
	blank			an invisible pointer
	crosshair		a thin "+" sign
	hand1			a dark hand pointing northeast
	hand2			a light hand pointing northwest
	pencil			a pencil pointing southeast
	question		question_arrow
	right_arrow		an arrow pointing northeast
	up_arrow		an arrow pointing upwards

Additionally, any of the mouse pointers that are built into X11 may be
used by specifying an integer from the X11/cursorfont.h include file.

If a name is used that exists on other systems, but not in X11, the default
"arrow" pointer is used.

==============================================================================
5. GTK version					*gui-gtk* *GTK+* *GTK* *GTK3*

The GTK version of the GUI works a little bit different.

GTK does _not_ use the traditional X resource settings.  Thus items in your
~/.Xdefaults or app-defaults files are not used.
Many of the traditional X command line arguments are not supported.  (e.g.,
stuff like -bg, -fg, etc).  The ones that are supported are:

    command line argument   resource name	meaning ~
    -fn  or  -font	    .font		font name for the text
    -geom  or  -geometry    .geometry		size of the gvim window
    -rv  or  -reverse	    *reverseVideo	white text on black background
    -display					display to be used
    -fg -foreground {color}			foreground color
    -bg -background {color}			background color

To set the font, see |'guifont'|.  For GTK, there's also a menu option that
does this.

Additionally, there are these command line arguments, which are handled by GTK
internally.  Look in the GTK documentation for how they are used:
	--sync
	--gdk-debug
	--gdk-no-debug
	--no-xshm	(not in GTK+ 2)
	--xim-preedit	(not in GTK+ 2)
	--xim-status	(not in GTK+ 2)
	--gtk-debug
	--gtk-no-debug
	--g-fatal-warnings
	--gtk-module
	--display	(GTK+ counterpart of -display; works the same way.)
	--screen	(The screen number; for GTK+ 2.2 multihead support.)

These arguments are ignored when the |+netbeans_intg| feature is used:
	-xrm
	-mf

As for colors, Vim's color settings (for syntax highlighting) is still
done the traditional Vim way.  See |:highlight| for more help.

If you want to set the colors of remaining gui components (e.g., the
menubar, scrollbar, whatever), those are GTK specific settings and you
need to set those up in some sort of gtkrc file.  You'll have to refer
to the GTK documentation, however little there is, on how to do this.
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
for more information.


Tooltip Colors ~
							*gtk-tooltip-colors*
Example, which sets the tooltip colors to black on light-yellow: >

	style "tooltips"
	{
		bg[NORMAL] = "#ffffcc"
		fg[NORMAL] = "#000000"
	}

	widget "gtk-tooltips*"		style "tooltips"

Write this in the file ~/.gtkrc and it will be used by GTK+.  For GTK+ 2
you might have to use the file ~/.gtkrc-2.0 instead, depending on your
distribution.

For GTK+ 3, an effect similar to the above can be obtained by adding the
following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
$HOME/.config/gtk-3.0/gtk.css):

For GTK+ 3 < 3.20: >

	.tooltip {
		background-color: #ffffcc;
		color: #000000;
	}
<
For GTK+ 3 >= 3.20: >

	tooltip {
	    background-color: #ffffcc;
	    text-shadow: none;
	}

	tooltip label {
	    color: #2e3436;
	}
<

A Quick Look at GTK+ CSS ~
							*gtk-css*
The contents of this subsection apply to GTK+ 3.20 or later which provides
stable support for GTK+ CSS:

	https://developer.gnome.org/gtk3/stable/theming.html

GTK+ uses CSS for styling and layout of widgets.  In this subsection, we'll
have a quick look at GTK+ CSS through simple, illustrative examples.

Example 1.  Empty Space Adjustment ~

By default, the toolbar and the tabline of the GTK+ 3 GUI are somewhat larger
than those of the GTK+ 2 GUI.  Some people may want to make them look similar
to the GTK+ 2 GUI in size.

To do that, we'll try reducing empty space around icons and labels that looks
apparently superfluous.

Add the following lines to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
$HOME/.config/gtk-3.0/gtk.css): >

	toolbar button {
	    margin-top: -2px;
	    margin-right: 0px;
	    margin-bottom: -2px;
	    margin-left: 0px;

	    padding-top: 0px;
	    padding-right: 0px;
	    padding-bottom: 0px;
	    padding-left: 0px
	}

	notebook tab {
	    margin-top: -1px;
	    margin-right: 3px;
	    margin-bottom: -1px;
	    margin-left: 3px;

	    padding-top: 0px;
	    padding-right: 0px;
	    padding-bottom: 0px;
	    padding-left: 0px
	}
<
Since it's a CSS, they can be rewritten using shorthand: >

	toolbar button {
	    margin: -2px 0px;
	    padding: 0px;
	}

	notebook tab {
	    margin: -1px 3px;
	    padding: 0px
	}
<
Note: You might want to use 'toolbariconsize' to adjust the icon size, too.

Note: Depending on the icon theme and/or the font in use, some extra tweaks
may be needed for a satisfactory result.

Note: In addition to margin and padding, you can use border.  For details,
refer to the box model of CSS, e.g.,

	https://www.w3schools.com/css/css_boxmodel.asp

Example 2.  More Than Just Colors ~

GTK+ CSS supports gradients as well: >

	tooltip {
	    background-image: -gtk-gradient(linear,
					    0 0, 0 1,
					    color-stop(0, #344752),
					    color-stop(0.5, #546772),
					    color-stop(1, #243742));
	}

	tooltip label {
	    color: #f3f3f3;
	}
<
Gradients can be used to make a GUI element visually distinguishable from
others without relying on high contrast. Accordingly, effective use of them is
a useful technique to give a theme a sense of unity in color and luminance.

Note: Theming can be difficult since it must make every application look
equally good; making a single application more charming often gets others
unexpectedly less attractive or even deteriorates their usability.  Keep this
in mind always when you try improving a theme.


Using Vim as a GTK+ plugin ~
							*gui-gtk-socketid*
When the GTK+ version of Vim starts up normally, it creates its own top level
window (technically, a 'GtkWindow').  GTK+ provides an embedding facility with
its GtkSocket and GtkPlug widgets.  If one GTK+ application creates a
GtkSocket widget in one of its windows, an entirely different GTK+ application
may embed itself into the first application by creating a top-level GtkPlug
widget using the socket's ID.

If you pass Vim the command-line option '--socketid' with a decimal or
hexadecimal value, Vim will create a GtkPlug widget using that value instead
of the normal GtkWindow.  This enables Vim to act as a GTK+ plugin.

This really is a programmer's interface, and is of no use without a supporting
application to spawn the Vim correctly.  For more details on GTK+ sockets, see
http://www.gtk.org/api/

Note that this feature requires the latest GTK version.  GTK 1.2.10 still has
a small problem.  The socket feature has not yet been tested with GTK+ 2 --
feel free to volunteer.

==============================================================================
6. GNOME version				*gui-gnome* *Gnome* *GNOME*

The GNOME GUI works just like the GTK+ version.  See |GTK+| above for how it
works.  It looks a bit different though, and implements one important feature
that's not available in the plain GTK+ GUI:  Interaction with the session
manager. |gui-gnome-session|

These are the different looks:
- Uses GNOME dialogs (GNOME 1 only).  The GNOME 2 GUI uses the same nice
  dialogs as the GTK+ 2 version.
- Uses the GNOME dock, so that the toolbar and menubar can be moved to
  different locations other than the top (e.g., the toolbar can be placed on
  the left, right, top, or bottom).  The placement of the menubar and
  toolbar is only saved in the GNOME 2 version.
- That means the menubar and toolbar handles are back!  Yeah!  And the
  resizing grid still works too.

GNOME is compiled with if it was found by configure and the
--enable-gnome-check argument was used.

Note: Avoid use of --enable-gnome-check with GTK+ 3 GUI build.  The
functionality mentioned above is consolidated in GTK+ 3.


GNOME session support ~
					*gui-gnome-session* *gnome-session*
On logout, Vim shows the well-known exit confirmation dialog if any buffers
are modified.  Clicking [Cancel] will stop the logout process.  Otherwise the
current session is stored to disk by using the |:mksession| command, and
restored the next time you log in.

The GNOME session support should also work with the KDE session manager.
If you are experiencing any problems please report them as bugs.

Note: The automatic session save works entirely transparent, in order to
avoid conflicts with your own session files, scripts and autocommands.  That
means in detail:
- The session file is stored to a separate directory (usually $HOME/.gnome2).
- 'sessionoptions' is ignored, and a hardcoded set of appropriate flags is
  used instead: >
	blank,curdir,folds,globals,help,options,tabpages,winsize
- The internal variable |v:this_session| is not changed when storing the
  session.  Also, it is restored to its old value when logging in again.

The position and size of the GUI window is not saved by Vim since doing so
is the window manager's job.  But if compiled with GTK+ 2 support, Vim helps
the WM to identify the window by restoring the window role (using the |--role|
command line argument).

==============================================================================
7. KDE version					*gui-kde* *kde* *KDE* *KVim*
							*gui-x11-kde*
There is no KDE version of Vim.  There has been some work on a port using the
Qt toolkit, but it never worked properly and it has been abandoned.  Work
continues on Yzis: https://github.com/chrizel/Yzis.

==============================================================================
8. Compiling						*gui-x11-compiling*

If using X11, Vim's configure will by default first try to find the necessary
GTK+ files on your system.  When both GTK+ 2 and GTK+ 3 are available, GTK+ 2
will be chosen unless --enable-gui=gtk3 is passed explicitly to configure.

If the GTK+ files cannot be found, then the Motif files will be searched for.
Finally, if this fails, the Athena files will be searched for.  If all three
fail, the GUI will be disabled.

For GTK+, Vim's configuration process uses pkg-config(1) to check if the
GTK+ required for a specified build is properly installed and usable.
Accordingly, it is a good idea to make sure before running configure that
your system has a working pkg-config together with the .pc file of the
required GTK+.  For that, say, run the following on the command line to see if
your pkg-config works with your GTK+ 2: >

    $ pkg-config --modversion gtk+-2.0

Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3. If you get the correct version
number of your GTK+, you can proceed; if not, you probably need to do some
system administration chores to set up pkg-config and GTK+ correctly.

The GTK+ 2 GUI is built by default.  Therefore, you usually don't need to pass
any options such as --enable-gui=gtk2 to configure and build that.

Optionally, the GTK+ 2 GUI can consolidate the GNOME 2 support.  This support
is enabled by passing --enable-gnome-check to configure.

If you want to build the GTK+ 3 GUI, you have to pass --enable-gui=gtk3
explicitly to configure, and avoid passing --enable-gnome-check to that, as
the functionality of the GNOME 2 support has already been consolidated in
GTK+ 3.

Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
files in a directory where configure doesn't look, edit the Makefile to enter
the names of the directories.  Search for "GUI_INC_LOC" for an example to set
the Motif directories, "CONF_OPT_X" for Athena.

							*gui-x11-gtk*
Currently, Vim supports both GTK+ 2 and GTK+ 3.

The GTK+ 2 GUI requires GTK+ 2.2 or later.

Although the GTK+ 3 GUI is written in such a way that the source code can be
compiled against all versions of the 3.x series, we recommend GTK+ 3.10 or
later because of its substantial implementation changes in redraw done at
that version.

							*gui-x11-motif*
For Motif, you need at least Motif version 1.2 and/or X11R5.  Motif 2.0 and
X11R6 are OK.  Motif 1.1 and X11R4 might work, no guarantee (there may be a
few problems, but you might make it compile and run with a bit of work, please
send me the patches if you do).  The newest releases of LessTif have been
reported to work fine too.

							*gui-x11-athena*
The Athena version uses the Xaw widget set by default.  If you have the 3D
version, you might want to link with Xaw3d instead.  This will make the
menus look a bit better.  Edit the Makefile and look for "XAW_LIB".  The
scrollbars will remain the same, because Vim has its own, which are already
3D (in fact, they look more like Motif).

							*gui-x11-neXtaw*
The neXtaw version is mostly like Athena, but uses different widgets.

							*gui-x11-misc*
In general, do not try to mix files from different GTK+, Motif, Athena and X11
versions.  This will cause problems.  For example, using header files for
X11R5 with a library for X11R6 probably doesn't work (although the linking
won't give an error message, Vim will crash later).

==============================================================================
9. X11 selection mechanism				*x11-selection*

If using X11, in either the GUI or an xterm with an X11-aware Vim, then Vim
provides varied access to the X11 selection and clipboard.  These are accessed
by using the two selection registers "* and "+.

X11 provides two basic types of global store, selections and cut-buffers,
which differ in one important aspect: selections are "owned" by an
application, and disappear when that application (e.g., Vim) exits, thus
losing the data, whereas cut-buffers, are stored within the X-server itself
and remain until written over or the X-server exits (e.g., upon logging out).

The contents of selections are held by the originating application (e.g., upon
a copy), and only passed on to another application when that other application
asks for them (e.g., upon a paste).

The contents of cut-buffers are immediately written to, and are then
accessible directly from the X-server, without contacting the originating
application.

							*quoteplus* *quote+*
There are three documented X selections: PRIMARY (which is expected to
represent the current visual selection - as in Vim's Visual mode), SECONDARY
(which is ill-defined) and CLIPBOARD (which is expected to be used for
cut, copy and paste operations).

Of these three, Vim uses PRIMARY when reading and writing the "* register
(hence when the X11 selections are available, Vim sets a default value for
|'clipboard'| of "autoselect"), and CLIPBOARD when reading and writing the "+
register.  Vim does not access the SECONDARY selection.

Examples: (assuming the default option values)
- Select a URL in Visual mode in Vim.  Go to your browser and click the
  middle mouse button in the URL text field.  The selected text will be
  inserted (hopefully!).  Note: in Firefox you can set the
  middlemouse.contentLoadURL preference to true in about:config, then the
  selected URL will be used when pressing middle mouse button in most places
  in the window.
- Select some text in your browser by dragging with the mouse.  Go to Vim and
  press the middle mouse button: The selected text is inserted.
- Select some text in Vim and do "+y.  Go to your browser, select some text in
  a textfield by dragging with the mouse.  Now use the right mouse button and
  select "Paste" from the popup menu.  The selected text is overwritten by the
  text from Vim.
Note that the text in the "+ register remains available when making a Visual
selection, which makes other text available in the "* register.  That allows
overwriting selected text.
							*x11-cut-buffer*
There are, by default, 8 cut-buffers: CUT_BUFFER0 to CUT_BUFFER7.  Vim only
uses CUT_BUFFER0, which is the one that xterm uses by default.

Whenever Vim is about to become unavailable (either via exiting or becoming
suspended), and thus unable to respond to another application's selection
request, it writes the contents of any owned selection to CUT_BUFFER0.  If the
"+ CLIPBOARD selection is owned by Vim, then this is written in preference,
otherwise if the "* PRIMARY selection is owned by Vim, then that is written.

Similarly, when Vim tries to paste from "* or "+ (either explicitly, or, in
the case of the "* register, when the middle mouse button is clicked), if the
requested X selection is empty or unavailable, Vim reverts to reading the
current value of the CUT_BUFFER0.

Note that when text is copied to CUT_BUFFER0 in this way, the type of
selection (character, line or block) is always lost, even if it is a Vim which
later pastes it.

Xterm, by default, always writes visible selections to both PRIMARY and
CUT_BUFFER0.  When it pastes, it uses PRIMARY if this is available, or else
falls back upon CUT_BUFFER0.  For this reason, when cutting and pasting
between Vim and an xterm, you should use the "* register.  Xterm doesn't use
CLIPBOARD, thus the "+ doesn't work with xterm.

Most newer applications will provide their current selection via PRIMARY ("*)
and use CLIPBOARD ("+) for cut/copy/paste operations.  You thus have access to
both by choosing to use either of the "* or "+ registers.


 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z��Ȃ!�!vim80/doc/help.txtnu�[���*help.txt*	For Vim version 8.0.  Last change: 2017 Oct 28

			VIM - main help file
									 k
      Move around:  Use the cursor keys, or "h" to go left,	       h   l
		    "j" to go down, "k" to go up, "l" to go right.	 j
Close this window:  Use ":q<Enter>".
   Get out of Vim:  Use ":qa!<Enter>" (careful, all changes are lost!).

Jump to a subject:  Position the cursor on a tag (e.g. |bars|) and hit CTRL-].
   With the mouse:  ":set mouse=a" to enable the mouse (in xterm or GUI).
		    Double-click the left mouse button on a tag, e.g. |bars|.
	Jump back:  Type CTRL-T or CTRL-O.  Repeat to go further back.

Get specific help:  It is possible to go directly to whatever you want help
		    on, by giving an argument to the |:help| command.
		    Prepend something to specify the context:  *help-context*

			  WHAT			PREPEND    EXAMPLE	~
		      Normal mode command		   :help x
		      Visual mode command	  v_	   :help v_u
		      Insert mode command	  i_	   :help i_<Esc>
		      Command-line command	  :	   :help :quit
		      Command-line editing	  c_	   :help c_<Del>
		      Vim command argument	  -	   :help -r
		      Option			  '	   :help 'textwidth'
		      Regular expression	  /	   :help /[
		    See |help-summary| for more contexts and an explanation.

  Search for help:  Type ":help word", then hit CTRL-D to see matching
		    help entries for "word".
		    Or use ":helpgrep word". |:helpgrep|

Vim stands for Vi IMproved.  Most of Vim was made by Bram Moolenaar, but only
through the help of many others.  See |credits|.
------------------------------------------------------------------------------
						*doc-file-list* *Q_ct*
BASIC:
|quickref|	Overview of the most common commands you will use
|tutor|		30 minutes training course for beginners
|copying|	About copyrights
|iccf|		Helping poor children in Uganda
|sponsor|	Sponsor Vim development, become a registered Vim user
|www|		Vim on the World Wide Web
|bugs|		Where to send bug reports

USER MANUAL: These files explain how to accomplish an editing task.

|usr_toc.txt|	Table Of Contents

Getting Started ~
|usr_01.txt|  About the manuals
|usr_02.txt|  The first steps in Vim
|usr_03.txt|  Moving around
|usr_04.txt|  Making small changes
|usr_05.txt|  Set your settings
|usr_06.txt|  Using syntax highlighting
|usr_07.txt|  Editing more than one file
|usr_08.txt|  Splitting windows
|usr_09.txt|  Using the GUI
|usr_10.txt|  Making big changes
|usr_11.txt|  Recovering from a crash
|usr_12.txt|  Clever tricks

Editing Effectively ~
|usr_20.txt|  Typing command-line commands quickly
|usr_21.txt|  Go away and come back
|usr_22.txt|  Finding the file to edit
|usr_23.txt|  Editing other files
|usr_24.txt|  Inserting quickly
|usr_25.txt|  Editing formatted text
|usr_26.txt|  Repeating
|usr_27.txt|  Search commands and patterns
|usr_28.txt|  Folding
|usr_29.txt|  Moving through programs
|usr_30.txt|  Editing programs
|usr_31.txt|  Exploiting the GUI
|usr_32.txt|  The undo tree

Tuning Vim ~
|usr_40.txt|  Make new commands
|usr_41.txt|  Write a Vim script
|usr_42.txt|  Add new menus
|usr_43.txt|  Using filetypes
|usr_44.txt|  Your own syntax highlighted
|usr_45.txt|  Select your language

Making Vim Run ~
|usr_90.txt|  Installing Vim


REFERENCE MANUAL: These files explain every detail of Vim.	*reference_toc*

General subjects ~
|intro.txt|	general introduction to Vim; notation used in help files
|help.txt|	overview and quick reference (this file)
|helphelp.txt|	about using the help files
|index.txt|	alphabetical index of all commands
|help-tags|	all the tags you can jump to (index of tags)
|howto.txt|	how to do the most common editing tasks
|tips.txt|	various tips on using Vim
|message.txt|	(error) messages and explanations
|quotes.txt|	remarks from users of Vim
|todo.txt|	known problems and desired extensions
|develop.txt|	development of Vim
|debug.txt|	debugging Vim itself
|uganda.txt|	Vim distribution conditions and what to do with your money

Basic editing ~
|starting.txt|	starting Vim, Vim command arguments, initialisation
|editing.txt|	editing and writing files
|motion.txt|	commands for moving around
|scroll.txt|	scrolling the text in the window
|insert.txt|	Insert and Replace mode
|change.txt|	deleting and replacing text
|indent.txt|	automatic indenting for C and other languages
|undo.txt|	Undo and Redo
|repeat.txt|	repeating commands, Vim scripts and debugging
|visual.txt|	using the Visual mode (selecting a text area)
|various.txt|	various remaining commands
|recover.txt|	recovering from a crash

Advanced editing ~
|cmdline.txt|	Command-line editing
|options.txt|	description of all options
|pattern.txt|	regexp patterns and search commands
|map.txt|	key mapping and abbreviations
|tagsrch.txt|	tags and special searches
|quickfix.txt|	commands for a quick edit-compile-fix cycle
|windows.txt|	commands for using multiple windows and buffers
|tabpage.txt|	commands for using multiple tab pages
|syntax.txt|	syntax highlighting
|spell.txt|	spell checking
|diff.txt|	working with two to four versions of the same file
|autocmd.txt|	automatically executing commands on an event
|filetype.txt|	settings done specifically for a type of file
|eval.txt|	expression evaluation, conditional commands
|channel.txt|	Jobs, Channels, inter-process communication
|fold.txt|	hide (fold) ranges of lines

Special issues ~
|print.txt|	printing
|remote.txt|	using Vim as a server or client
|term.txt|	using different terminals and mice
|terminal.txt|	Terminal window support
|digraph.txt|	list of available digraphs
|mbyte.txt|	multi-byte text support
|mlang.txt|	non-English language support
|arabic.txt|	Arabic language support and editing
|farsi.txt|	Farsi (Persian) editing
|hebrew.txt|	Hebrew language support and editing
|russian.txt|	Russian language support and editing
|ft_ada.txt|	Ada (the programming language) support
|ft_rust.txt|	Filetype plugin for Rust
|ft_sql.txt|	about the SQL filetype plugin
|hangulin.txt|	Hangul (Korean) input mode
|rileft.txt|	right-to-left editing mode

GUI ~
|gui.txt|	Graphical User Interface (GUI)
|gui_w32.txt|	Win32 GUI
|gui_x11.txt|	X11 GUI

Interfaces ~
|if_cscop.txt|	using Cscope with Vim
|if_lua.txt|	Lua interface
|if_mzsch.txt|	MzScheme interface
|if_perl.txt|	Perl interface
|if_pyth.txt|	Python interface
|if_tcl.txt|	Tcl interface
|if_ole.txt|	OLE automation interface for Win32
|if_ruby.txt|	Ruby interface
|debugger.txt|	Interface with a debugger
|workshop.txt|	Sun Visual Workshop interface
|netbeans.txt|	NetBeans External Editor interface
|sign.txt|	debugging signs

Versions ~
|vi_diff.txt|	Main differences between Vim and Vi
|version4.txt|	Differences between Vim version 3.0 and 4.x
|version5.txt|	Differences between Vim version 4.6 and 5.x
|version6.txt|	Differences between Vim version 5.7 and 6.x
|version7.txt|	Differences between Vim version 6.4 and 7.x
|version8.txt|	Differences between Vim version 7.4 and 8.x
						*sys-file-list*
Remarks about specific systems ~
|os_390.txt|	OS/390 Unix
|os_amiga.txt|	Amiga
|os_beos.txt|	BeOS and BeBox
|os_dos.txt|	MS-DOS and MS-Windows NT/95 common items
|os_mac.txt|	Macintosh
|os_mint.txt|	Atari MiNT
|os_msdos.txt|	MS-DOS (plain DOS and DOS box under Windows)
|os_os2.txt|	OS/2
|os_qnx.txt|	QNX
|os_risc.txt|	RISC-OS
|os_unix.txt|	Unix
|os_vms.txt|	VMS
|os_win32.txt|	MS-Windows 95/98/NT
						*standard-plugin-list*
Standard plugins ~
|pi_getscript.txt| Downloading latest version of Vim scripts
|pi_gzip.txt|      Reading and writing compressed files
|pi_logipat.txt|   Logical operators on patterns
|pi_netrw.txt|     Reading and writing files over a network
|pi_paren.txt|     Highlight matching parens
|pi_spec.txt|      Filetype plugin to work with rpm spec files
|pi_tar.txt|       Tar file explorer
|pi_vimball.txt|   Create a self-installing Vim script
|pi_zip.txt|       Zip archive explorer

LOCAL ADDITIONS:				*local-additions*

------------------------------------------------------------------------------
*bars*		Bars example

Now that you've jumped here with CTRL-] or a double mouse click, you can use
CTRL-T, CTRL-O, g<RightMouse>, or <C-RightMouse> to go back to where you were.

Note that tags are within | characters, but when highlighting is enabled these
characters are hidden.  That makes it easier to read a command.

Anyway, you can use CTRL-] on any word, also when it is not within |, and Vim
will try to find help for it.  Especially for options in single quotes, e.g.
'compatible'.

------------------------------------------------------------------------------
 vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
PK�j�Z8�b62929vim80/doc/if_lua.txtnu�[���*if_lua.txt*    For Vim version 8.0.  Last change: 2015 Oct 16


		  VIM REFERENCE MANUAL    by Luis Carvalho


The Lua Interface to Vim				*lua* *Lua*

1. Commands			|lua-commands|
2. The vim module		|lua-vim|
3. List userdata		|lua-list|
4. Dict userdata		|lua-dict|
5. Funcref userdata		|lua-funcref|
6. Buffer userdata		|lua-buffer|
7. Window userdata		|lua-window|
8. The luaeval function		|lua-luaeval|
9. Dynamic loading		|lua-dynamic|

{Vi does not have any of these commands}

The Lua interface is available only when Vim was compiled with the
|+lua| feature.

==============================================================================
1. Commands						*lua-commands*

							*:lua*
:[range]lua {chunk}
			Execute Lua chunk {chunk}.    {not in Vi}

Examples:
>
	:lua print("Hello, Vim!")
	:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
<

:[range]lua << {endmarker}
{script}
{endmarker}
			Execute Lua script {script}.  {not in Vi}
			Note: This command doesn't work when the Lua
			feature wasn't compiled in.  To avoid errors, see
			|script-here|.

{endmarker} must NOT be preceded by any white space.  If {endmarker} is
omitted from after the "<<", a dot '.' must be used after {script}, like
for the |:append| and |:insert| commands.
This form of the |:lua| command is mainly useful for including Lua code
in Vim scripts.

Example:
>
	function! CurrentLineInfo()
	lua << EOF
	local linenr = vim.window().line
	local curline = vim.buffer()[linenr]
	print(string.format("Current line [%d] has %d chars",
		linenr, #curline))
	EOF
	endfunction
<
To see what version of Lua you have: >
	:lua print(_VERSION)

If you use LuaJIT you can also use this: >
	:lua print(jit.version)
<

							*:luado*
:[range]luado {body}	Execute Lua function "function (line, linenr) {body}
			end" for each line in the [range], with the function
			argument being set to the text of each line in turn,
			without a trailing <EOL>, and the current line number.
			If the value returned by the function is a string it
			becomes the text of the line in the current turn. The
			default for [range] is the whole file: "1,$".
							{not in Vi}

Examples:
>
	:luado return string.format("%s\t%d", line:reverse(), #line)

	:lua require"lpeg"
	:lua -- balanced parenthesis grammar:
	:lua bp = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }
	:luado if bp:match(line) then return "-->\t" .. line end
<

							*:luafile*
:[range]luafile {file}
			Execute Lua script in {file}. {not in Vi}
			The whole argument is used as a single file name.

Examples:
>
	:luafile script.lua
	:luafile %
<

All these commands execute a Lua chunk from either the command line (:lua and
:luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
interpreter, each chunk has its own scope and so only global variables are
shared between command calls. All Lua default libraries are available. In
addition, Lua "print" function has its output redirected to the Vim message
area, with arguments separated by a white space instead of a tab.

Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
procedures that alter buffer content, open new buffers, and change cursor
position are restricted when the command is executed in the |sandbox|.


==============================================================================
2. The vim module					*lua-vim*

Lua interfaces Vim through the "vim" module. The first and last line of the
input range are stored in "vim.firstline" and "vim.lastline" respectively. The
module also includes routines for buffer, window, and current line queries,
Vim evaluation and command execution, and others.

	vim.list([arg])		Returns an empty list or, if "arg" is a Lua
				table with numeric keys 1, ..., n (a
				"sequence"), returns a list l such that l[i] =
				arg[i] for i = 1, ..., n (see |List|).
				Non-numeric keys are not used to initialize
				the list. See also |lua-eval| for conversion
				rules. Example: >
					:lua t = {math.pi, false, say = 'hi'}
					:echo luaeval('vim.list(t)')
					:" [3.141593, 0], 'say' is ignored
<
	vim.dict([arg])		Returns an empty dictionary or, if "arg" is a
				Lua table, returns a dict d such that d[k] =
				arg[k] for all string keys k in "arg" (see
				|Dictionary|). Number keys are converted to
				strings. Keys that are not strings are not
				used to initialize the dictionary. See also
				|lua-eval| for conversion rules. Example: >
					:lua t = {math.pi, false, say = 'hi'}
					:echo luaeval('vim.dict(t)')
					:" {'say': 'hi'}, numeric keys ignored
<
	vim.funcref({name})	Returns a Funcref to function {name} (see
				|Funcref|). It is equivalent to Vim's
				"function". NOT IMPLEMENTED YET

	vim.buffer([arg])	If "arg" is a number, returns buffer with
				number "arg" in the buffer list or, if "arg"
				is a string, returns buffer whose full or short
				name is "arg". In both cases, returns 'nil'
				(nil value, not string) if the buffer is not
				found. Otherwise, if "toboolean(arg)" is
				'true' returns the first buffer in the buffer
				list or else the current buffer.

	vim.window([arg])	If "arg" is a number, returns window with
				number "arg" or 'nil' (nil value, not string)
				if not found. Otherwise, if "toboolean(arg)"
				is 'true' returns the first window or else the
				current window.

	vim.type({arg})		Returns the type of {arg}. It is equivalent to
				Lua's "type" function, but returns "list",
				"dict", "funcref", "buffer", or "window" if
				{arg} is a list, dictionary, funcref, buffer,
				or window, respectively. Examples: >
					:lua l = vim.list()
					:lua print(type(l), vim.type(l))
					:" userdata list
<
	vim.command({cmd})	Executes the vim (ex-mode) command {cmd}.
				Examples: >
					:lua vim.command"set tw=60"
					:lua vim.command"normal ddp"
<
	vim.eval({expr})	Evaluates expression {expr} (see |expression|),
				converts the result to Lua, and returns it.
				Vim strings and numbers are directly converted
				to Lua strings and numbers respectively. Vim
				lists and dictionaries are converted to Lua
				userdata (see |lua-list| and |lua-dict|).
				Examples: >
					:lua tw = vim.eval"&tw"
					:lua print(vim.eval"{'a': 'one'}".a)
<
	vim.line()		Returns the current line (without the trailing
				<EOL>), a Lua string.

	vim.beep()		Beeps.

	vim.open({fname})	Opens a new buffer for file {fname} and
				returns it. Note that the buffer is not set as
				current.


==============================================================================
3. List userdata					*lua-list*

List userdata represent vim lists, and the interface tries to follow closely
Vim's syntax for lists. Since lists are objects, changes in list references in
Lua are reflected in Vim and vice-versa. A list "l" has the following
properties and methods:

Properties
----------
	o "#l" is the number of items in list "l", equivalent to "len(l)"
	    in Vim.
	o "l[k]" returns the k-th item in "l"; "l" is zero-indexed, as in Vim.
	    To modify the k-th item, simply do "l[k] = newitem"; in
	    particular, "l[k] = nil" removes the k-th item from "l".
	o "l()" returns an iterator for "l".

Methods
-------
	o "l:add(item)" appends "item" to the end of "l".
	o "l:insert(item[, pos])" inserts "item" at (optional)
	    position "pos" in the list. The default value for "pos" is 0.

Examples:
>
	:let l = [1, 'item']
	:lua l = vim.eval('l') -- same 'l'
	:lua l:add(vim.list())
	:lua l[0] = math.pi
	:echo l[0] " 3.141593
	:lua l[0] = nil -- remove first item
	:lua l:insert(true, 1)
	:lua print(l, #l, l[0], l[1], l[-1])
	:lua for item in l() do print(item) end
<

==============================================================================
4. Dict userdata					*lua-dict*

Similarly to list userdata, dict userdata represent vim dictionaries; since
dictionaries are also objects, references are kept between Lua and Vim. A dict
"d" has the following properties:

Properties
----------
	o "#d" is the number of items in dict "d", equivalent to "len(d)"
	    in Vim.
	o "d.key" or "d['key']" returns the value at entry "key" in "d".
	    To modify the entry at this key, simply do "d.key = newvalue"; in
	    particular, "d.key = nil" removes the entry from "d".
	o "d()" returns an iterator for "d" and is equivalent to "items(d)" in
	    Vim.

Examples:
>
	:let d = {'n':10}
	:lua d = vim.eval('d') -- same 'd'
	:lua print(d, d.n, #d)
	:let d.self = d
	:lua for k, v in d() do print(d, k, v) end
	:lua d.x = math.pi
	:lua d.self = nil -- remove entry
	:echo d
<

==============================================================================
5. Funcref userdata					*lua-funcref*

Funcref userdata represent funcref variables in Vim. Funcrefs that were
defined with a "dict" attribute need to be obtained as a dictionary key
in order to have "self" properly assigned to the dictionary (see examples
below.) A funcref "f" has the following properties:

Properties
----------
	o "#f" is the name of the function referenced by "f"
	o "f(...)" calls the function referenced by "f" (with arguments)

Examples:
>
	:function I(x)
	:  return a:x
	:  endfunction
	:let R = function('I')
	:lua i1 = vim.funcref('I')
	:lua i2 = vim.eval('R')
	:lua print(#i1, #i2) -- both 'I'
	:lua print(i1, i2, #i2(i1) == #i1(i2))
	:function Mylen() dict
	:  return len(self.data)
	:  endfunction
	:let mydict = {'data': [0, 1, 2, 3]}
	:lua d = vim.eval('mydict'); d.len = vim.funcref('Mylen')
	:echo mydict.len()
	:lua l = d.len -- assign d as 'self'
	:lua print(l())
<

==============================================================================
6. Buffer userdata					*lua-buffer*

Buffer userdata represent vim buffers. A buffer userdata "b" has the following
properties and methods:

Properties
----------
	o "b()" sets "b" as the current buffer.
	o "#b" is the number of lines in buffer "b".
	o "b[k]" represents line number k: "b[k] = newline" replaces line k
	    with string "newline" and "b[k] = nil" deletes line k.
	o "b.name" contains the short name of buffer "b" (read-only).
	o "b.fname" contains the full name of buffer "b" (read-only).
	o "b.number" contains the position of buffer "b" in the buffer list
	    (read-only).

Methods
-------
	o "b:insert(newline[, pos])" inserts string "newline" at (optional)
	    position "pos" in the buffer. The default value for "pos" is
	    "#b + 1". If "pos == 0" then "newline" becomes the first line in
	    the buffer.
	o "b:next()" returns the buffer next to "b" in the buffer list.
	o "b:previous()" returns the buffer previous to "b" in the buffer
	    list.
	o "b:isvalid()" returns 'true' (boolean) if buffer "b" corresponds to
	    a "real" (not freed from memory) Vim buffer.

Examples:
>
	:lua b = vim.buffer() -- current buffer
	:lua print(b.name, b.number)
	:lua b[1] = "first line"
	:lua b:insert("FIRST!", 0)
	:lua b[1] = nil -- delete top line
	:lua for i=1,3 do b:insert(math.random()) end
	:3,4lua for i=vim.lastline,vim.firstline,-1 do b[i] = nil end
	:lua vim.open"myfile"() -- open buffer and set it as current

	function! ListBuffers()
	lua << EOF
	local b = vim.buffer(true) -- first buffer in list
	while b ~= nil do
		print(b.number, b.name, #b)
		b = b:next()
	end
	vim.beep()
	EOF
	endfunction
<

==============================================================================
7. Window userdata					*lua-window*

Window objects represent vim windows. A window userdata "w" has the following
properties and methods:

Properties
----------
	o "w()" sets "w" as the current window.
	o "w.buffer" contains the buffer of window "w" (read-only).
	o "w.line" represents the cursor line position in window "w".
	o "w.col" represents the cursor column position in window "w".
	o "w.width" represents the width of window "w".
	o "w.height" represents the height of window "w".

Methods
-------
	o "w:next()" returns the window next to "w".
	o "w:previous()" returns the window previous to "w".
	o "w:isvalid()" returns 'true' (boolean) if window "w" corresponds to
	    a "real" (not freed from memory) Vim window.

Examples:
>
	:lua w = vim.window() -- current window
	:lua print(w.buffer.name, w.line, w.col)
	:lua w.width = w.width + math.random(10)
	:lua w.height = 2 * math.random() * w.height
	:lua n,w = 0,vim.window(true) while w~=nil do n,w = n + 1,w:next() end
	:lua print("There are " .. n .. " windows")
<

==============================================================================
8. The luaeval function					*lua-luaeval* *lua-eval*

The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
"luaeval". "luaeval" takes an expression string and an optional argument and
returns the result of the expression. It is semantically equivalent in Lua to:
>
	local chunkheader = "local _A = select(1, ...) return "
	function luaeval (expstr, arg)
	    local chunk = assert(loadstring(chunkheader .. expstr, "luaeval"))
	    return chunk(arg) -- return typval
	end
<
Note that "_A" receives the argument to "luaeval". Lua numbers, strings, and
list, dict, and funcref userdata are converted to their Vim respective types,
while Lua booleans are converted to numbers. An error is thrown if conversion
of any of the remaining Lua types, including userdata other than lists, dicts,
and funcrefs, is attempted.

Examples: >

	:echo luaeval('math.pi')
	:lua a = vim.list():add('newlist')
	:let a = luaeval('a')
	:echo a[0] " 'newlist'
	:function Rand(x,y) " random uniform between x and y
	:  return luaeval('(_A.y-_A.x)*math.random()+_A.x', {'x':a:x,'y':a:y})
	:  endfunction
	:echo Rand(1,10)


==============================================================================
9. Dynamic loading				    *lua-dynamic*

On MS-Windows and Unix the Lua library can be loaded dynamically.  The
|:version| output then includes |+lua/dyn|.

This means that Vim will search for the Lua DLL or shared library file only
when needed.  When you don't use the Lua interface you don't need it, thus
you can use Vim without this file.


MS-Windows ~

To use the Lua interface the Lua DLL must be in your search path.  In a
console window type "path" to see what directories are used.  The 'luadll'
option can be also used to specify the Lua DLL.  The version of the DLL must
match the Lua version Vim was compiled with.


Unix ~

The 'luadll' option can be used to specify the Lua shared library file instead
of DYNAMIC_LUA_DLL file what was specified at compile time.  The version of
the shared library must match the Lua version Vim was compiled with.


==============================================================================
 vim:tw=78:ts=8:noet:ft=help:norl:
PK�j�Z��X��
�
vim80/doc/quickfix.txtnu�[���*quickfix.txt*  For Vim version 8.0.  Last change: 2018 Mar 29


		  VIM REFERENCE MANUAL    by Bram Moolenaar


This subject is introduced in section |30.1| of the user manual.

1. Using QuickFix commands		|quickfix|
2. The error window			|quickfix-window|
3. Using more than one list of errors	|quickfix-error-lists|
4. Using :make				|:make_makeprg|
5. Using :grep				|grep|
6. Selecting a compiler			|compiler-select|
7. The error format			|error-file-format|
8. The directory stack			|quickfix-directory-stack|
9. Specific error file formats		|errorformats|

{Vi does not have any of these commands}

The quickfix commands are not available when the |+quickfix| feature was
disabled at compile time.

=============================================================================
1. Using QuickFix commands			*quickfix* *Quickfix* *E42*

Vim has a special mode to speedup the edit-compile-edit cycle.  This is
inspired by the quickfix option of the Manx's Aztec C compiler on the Amiga.
The idea is to save the error messages from the compiler in a file and use Vim
to jump to the errors one by one.  You can examine each problem and fix it,
without having to remember all the error messages.

In Vim the quickfix commands are used more generally to find a list of
positions in files.  For example, |:vimgrep| finds pattern matches.  You can
use the positions in a script with the |getqflist()| function.  Thus you can
do a lot more than the edit/compile/fix cycle!

If you have the error messages in a file you can start Vim with: >
	vim -q filename

From inside Vim an easy way to run a command and handle the output is with the
|:make| command (see below).

The 'errorformat' option should be set to match the error messages from your
compiler (see |errorformat| below).

							*quickfix-ID*
Each quickfix list has a unique identifier called the quickfix ID and this
number will not change within a Vim session. The getqflist() function can be
used to get the identifier assigned to a list. There is also a quickfix list
number which may change whenever more than ten lists are added to a quickfix
stack.

						*location-list* *E776*
A location list is a window-local quickfix list. You get one after commands
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
location list instead of a quickfix list as the corresponding `:vimgrep`,
`:grep`, `:helpgrep`, `:make` do.
A location list is associated with a window and each window can have a
separate location list.  A location list can be associated with only one
window.  The location list is independent of the quickfix list.

When a window with a location list is split, the new window gets a copy of the
location list.  When there are no longer any references to a location list,
the location list is destroyed.

						*quickfix-changedtick*
Every quickfix and location list has a read-only changedtick variable that
tracks the total number of changes made to the list.  Every time the quickfix
list is modified, this count is incremented. This can be used to perform an
action only when the list has changed.  The getqflist() and getloclist()
functions can be used to query the current value of changedtick.  You cannot
change the changedtick variable.

The following quickfix commands can be used.  The location list commands are
similar to the quickfix commands, replacing the 'c' prefix in the quickfix
command with 'l'.

							*E924*
If the current window was closed by an |autocommand| while processing a
location list command, it will be aborted.

							*E925* *E926*
If the current quickfix or location list was changed by an |autocommand| while
processing a quickfix or location list command, it will be aborted.

							*:cc*
:cc[!] [nr]		Display error [nr].  If [nr] is omitted, the same
			error is displayed again.  Without [!] this doesn't
			work when jumping to another buffer, the current buffer
			has been changed, there is the only window for the
			buffer and both 'hidden' and 'autowrite' are off.
			When jumping to another buffer with [!] any changes to
			the current buffer are lost, unless 'hidden' is set or
			there is another window for this buffer.
			The 'switchbuf' settings are respected when jumping
			to a buffer.

							*:ll*
:ll[!] [nr]		Same as ":cc", except the location list for the
			current window is used instead of the quickfix list.

							*:cn* *:cnext* *E553*
:[count]cn[ext][!]	Display the [count] next error in the list that
			includes a file name.  If there are no file names at
			all, go to the [count] next error.  See |:cc| for
			[!] and 'switchbuf'.

							*:lne* *:lnext*
:[count]lne[xt][!]	Same as ":cnext", except the location list for the
			current window is used instead of the quickfix list.

:[count]cN[ext][!]			*:cp* *:cprevious* *:cN* *:cNext*
:[count]cp[revious][!]	Display the [count] previous error in the list that
			includes a file name.  If there are no file names at
			all, go to the [count] previous error.  See |:cc| for
			[!] and 'switchbuf'.


:[count]lN[ext][!]			*:lp* *:lprevious* *:lN* *:lNext*
:[count]lp[revious][!]	Same as ":cNext" and ":cprevious", except the location
			list for the current window is used instead of the
			quickfix list.

							*:cnf* *:cnfile*
:[count]cnf[ile][!]	Display the first error in the [count] next file in
			the list that includes a file name.  If there are no
			file names at all or if there is no next file, go to
			the [count] next error.  See |:cc| for [!] and
			'switchbuf'.

							*:lnf* *:lnfile*
:[count]lnf[ile][!]	Same as ":cnfile", except the location list for the
			current window is used instead of the quickfix list.

:[count]cNf[ile][!]			*:cpf* *:cpfile* *:cNf* *:cNfile*
:[count]cpf[ile][!]	Display the last error in the [count] previous file in
			the list that includes a file name.  If there are no
			file names at all or if there is no next file, go to
			the [count] previous error.  See |:cc| for [!] and
			'switchbuf'.


:[count]lNf[ile][!]			*:lpf* *:lpfile* *:lNf* *:lNfile*
:[count]lpf[ile][!]	Same as ":cNfile" and ":cpfile", except the location
			list for the current window is used instead of the
			quickfix list.

							*:crewind* *:cr*
:cr[ewind][!] [nr]	Display error [nr].  If [nr] is omitted, the FIRST
			error is displayed.  See |:cc|.

							*:lrewind* *:lr*
:lr[ewind][!] [nr]	Same as ":crewind", except the location list for the
			current window is used instead of the quickfix list.

							*:cfirst* *:cfir*
:cfir[st][!] [nr]	Same as ":crewind".

							*:lfirst* *:lfir*
:lfir[st][!] [nr]	Same as ":lrewind".

							*:clast* *:cla*
:cla[st][!] [nr]	Display error [nr].  If [nr] is omitted, the LAST
			error is displayed.  See |:cc|.

							*:llast* *:lla*
:lla[st][!] [nr]	Same as ":clast", except the location list for the
			current window is used instead of the quickfix list.

							*:cq* *:cquit*
:cq[uit][!]		Quit Vim with an error code, so that the compiler
			will not compile the same file again.
			WARNING: All changes in files are lost!  Also when the
			[!] is not used.  It works like ":qall!" |:qall|,
			except that Vim returns a non-zero exit code.

							*:cf* *:cfile*
:cf[ile][!] [errorfile]	Read the error file and jump to the first error.
			This is done automatically when Vim is started with
			the -q option.  You can use this command when you
			keep Vim running while compiling.  If you give the
			name of the errorfile, the 'errorfile' option will
			be set to [errorfile].  See |:cc| for [!].
			If the encoding of the error file differs from the
			'encoding' option, you can use the 'makeencoding'
			option to specify the encoding.

							*:lf* *:lfile*
:lf[ile][!] [errorfile]	Same as ":cfile", except the location list for the
			current window is used instead of the quickfix list.
			You can not use the -q command-line option to set
			the location list.


:cg[etfile] [errorfile]					*:cg* *:cgetfile*
			Read the error file.  Just like ":cfile" but don't
			jump to the first error.
			If the encoding of the error file differs from the
			'encoding' option, you can use the 'makeencoding'
			option to specify the encoding.


:lg[etfile] [errorfile]					*:lg* *:lgetfile*
			Same as ":cgetfile", except the location list for the
			current window is used instead of the quickfix list.

							*:caddf* *:caddfile*
:caddf[ile] [errorfile]	Read the error file and add the errors from the
			errorfile to the current quickfix list. If a quickfix
			list is not present, then a new list is created.
			If the encoding of the error file differs from the
			'encoding' option, you can use the 'makeencoding'
			option to specify the encoding.

							*:laddf* *:laddfile*
:laddf[ile] [errorfile]	Same as ":caddfile", except the location list for the
			current window is used instead of the quickfix list.

						*:cb* *:cbuffer* *E681*
:cb[uffer][!] [bufnr]	Read the error list from the current buffer.
			When [bufnr] is given it must be the number of a
			loaded buffer.  That buffer will then be used instead
			of the current buffer.
			A range can be specified for the lines to be used.
			Otherwise all lines in the buffer are used.
			See |:cc| for [!].

						*:lb* *:lbuffer*
:lb[uffer][!] [bufnr]	Same as ":cbuffer", except the location list for the
			current window is used instead of the quickfix list.

						*:cgetb* *:cgetbuffer*
:cgetb[uffer] [bufnr]	Read the error list from the current buffer.  Just
			like ":cbuffer" but don't jump to the first error.

						*:lgetb* *:lgetbuffer*
:lgetb[uffer] [bufnr]	Same as ":cgetbuffer", except the location list for
			the current window is used instead of the quickfix
			list.

							*:cad* *:caddbuffer*
:cad[dbuffer] [bufnr]	Read the error list from the current buffer and add
			the errors to the current quickfix list.  If a
			quickfix list is not present, then a new list is
			created. Otherwise, same as ":cbuffer".

							*:laddb* *:laddbuffer*
:laddb[uffer] [bufnr]	Same as ":caddbuffer", except the location list for
			the current window is used instead of the quickfix
			list.

							*:cex* *:cexpr* *E777*
:cex[pr][!] {expr}	Create a quickfix list using the result of {expr} and
			jump to the first error.
			If {expr} is a String, then each new-line terminated
			line in the String is processed using the global value
			of 'errorformat' and the result is added to the
			quickfix list.
			If {expr} is a List, then each String item in the list
			is processed and added to the quickfix list.  Non
			String items in the List are ignored.
			See |:cc| for [!].
			Examples: >
				:cexpr system('grep -n xyz *')
				:cexpr getline(1, '$')
<
							*:lex* *:lexpr*
:lex[pr][!] {expr}	Same as |:cexpr|, except the location list for the
			current window is used instead of the quickfix list.

							*:cgete* *:cgetexpr*
:cgete[xpr] {expr}	Create a quickfix list using the result of {expr}.
			Just like |:cexpr|, but don't jump to the first error.

							*:lgete* *:lgetexpr*
:lgete[xpr] {expr}	Same as |:cgetexpr|, except the location list for the
			current window is used instead of the quickfix list.

							*:cadde* *:caddexpr*
:cadde[xpr] {expr}	Evaluate {expr} and add the resulting lines to the
			current quickfix list. If a quickfix list is not
			present, then a new list is created. The current
			cursor position will not be changed. See |:cexpr| for
			more information.
			Example: >
    :g/mypattern/caddexpr expand("%") . ":" . line(".") .  ":" . getline(".")
<
							*:lad* *:laddexpr*
:lad[dexpr] {expr}	Same as ":caddexpr", except the location list for the
			current window is used instead of the quickfix list.

							*:cl* *:clist*
:cl[ist] [from] [, [to]]
			List all errors that are valid |quickfix-valid|.
			If numbers [from] and/or [to] are given, the respective
			range of errors is listed.  A negative number counts
			from the last error backwards, -1 being the last error.
			The 'switchbuf' settings are respected when jumping
			to a buffer.

:cl[ist] +{count}	List the current and next {count} valid errors.  This
			is similar to ":clist from from+count", where "from"
			is the current error position.

:cl[ist]! [from] [, [to]]
			List all errors.

:cl[ist]! +{count}	List the current and next {count} error lines.  This
                        is useful to see unrecognized lines after the current
			one.  For example, if ":clist" shows:
        8384 testje.java:252: error: cannot find symbol ~
                        Then using ":cl! +3" shows the reason:
        8384 testje.java:252: error: cannot find symbol ~
        8385:   ZexitCode = Fmainx(); ~
        8386:               ^ ~
        8387:   symbol:   method Fmainx() ~

:lli[st] [from] [, [to]]				*:lli* *:llist*
			Same as ":clist", except the location list for the
			current window is used instead of the quickfix list.

:lli[st]! [from] [, [to]]
			List all the entries in the location list for the
			current window.

If you insert or delete lines, mostly the correct error location is still
found because hidden marks are used.  Sometimes, when the mark has been
deleted for some reason, the message "line changed" is shown to warn you that
the error location may not be correct.  If you quit Vim and start again the
marks are lost and the error locations may not be correct anymore.

Two autocommands are available for running commands before and after a
quickfix command (':make', ':grep' and so on) is executed. See
|QuickFixCmdPre| and |QuickFixCmdPost| for details.

						*QuickFixCmdPost-example*
When 'encoding' differs from the locale, the error messages may have a
different encoding from what Vim is using.  To convert the messages you can
use this code: >
	function QfMakeConv()
	   let qflist = getqflist()
	   for i in qflist
	      let i.text = iconv(i.text, "cp936", "utf-8")
	   endfor
	   call setqflist(qflist)
	endfunction

	au QuickfixCmdPost make call QfMakeConv()
Another option is using 'makeencoding'.

							*quickfix-title*
Every quickfix and location list has a title. By default the title is set to
the command that created the list. The |getqflist()| and |getloclist()|
functions can be used to get the title of a quickfix and a location list
respectively. The |setqflist()| and |setloclist()| functions can be used to
modify the title of a quickfix and location list respectively. Examples: >
	call setqflist([], 'a', {'title' : 'Cmd output'})
	echo getqflist({'title' : 1})
	call setloclist(3, [], 'a', {'title' : 'Cmd output'})
	echo getloclist(3, {'title' : 1})
<
							*quickfix-size*
You can get the number of entries (size) in a quickfix and a location list
using the |getqflist()| and |getloclist()| functions respectively. Examples: >
	echo getqflist({'size' : 1})
	echo getloclist(5, {'size' : 1})
<
							*quickfix-context*
Any Vim type can be associated as a context with a quickfix or location list.
The |setqflist()| and the |setloclist()| functions can be used to associate a
context with a quickfix and a location list respectively. The |getqflist()|
and the |getloclist()| functions can be used to retrieve the context of a
quickfix and a location list respectively. This is useful for a Vim plugin
dealing with multiple quickfix/location lists.
Examples: >

	let somectx = {'name' : 'Vim', 'type' : 'Editor'}
	call setqflist([], 'a', {'context' : somectx})
	echo getqflist({'context' : 1})

	let newctx = ['red', 'green', 'blue']
	call setloclist(2, [], 'a', {'id' : qfid, 'context' : newctx})
	echo getloclist(2, {'id' : qfid, 'context' : 1})
<
							*quickfix-parse*
You can parse a list of lines using 'errorformat' without creating or
modifying a quickfix list using the |getqflist()| function. Examples: >
	echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
	echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
This returns a dictionary where the 'items' key contains the list of quickfix
entries parsed from lines. The following shows how to use a custom
'errorformat' to parse the lines without modifying the 'errorformat' option: >
	echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
<

EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
							*:cdo*
:cdo[!] {cmd}		Execute {cmd} in each valid entry in the quickfix list.
			It works like doing this: >
				:cfirst
				:{cmd}
				:cnext
				:{cmd}
				etc.
<			When the current file can't be |abandon|ed and the [!]
			is not present, the command fails.
			When an error is detected execution stops.
			The last buffer (or where an error occurred) becomes
			the current buffer.
			{cmd} can contain '|' to concatenate several commands.

			Only valid entries in the quickfix list are used.
			A range can be used to select entries, e.g.: >
				:10,$cdo cmd
<			To skip entries 1 to 9.

			Note: While this command is executing, the Syntax
			autocommand event is disabled by adding it to
			'eventignore'.  This considerably speeds up editing
			each buffer.
			{not in Vi}
			Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
			|:ldo|, |:cfdo| and |:lfdo|.

							*:cfdo*
:cfdo[!] {cmd}		Execute {cmd} in each file in the quickfix list.
			It works like doing this: >
				:cfirst
				:{cmd}
				:cnfile
				:{cmd}
				etc.
<			Otherwise it works the same as `:cdo`.
			{not in Vi}

							*:ldo*
:ld[o][!] {cmd}		Execute {cmd} in each valid entry in the location list
			for the current window.
			It works like doing this: >
				:lfirst
				:{cmd}
				:lnext
				:{cmd}
				etc.
<			Only valid entries in the location list are used.
			Otherwise it works the same as `:cdo`.
			{not in Vi}

							*:lfdo*
:lfdo[!] {cmd}		Execute {cmd} in each file in the location list for
			the current window.
			It works like doing this: >
				:lfirst
				:{cmd}
				:lnfile
				:{cmd}
				etc.
<			Otherwise it works the same as `:ldo`.
			{not in Vi}

=============================================================================
2. The error window					*quickfix-window*

					    *:cope* *:copen* *w:quickfix_title*
:cope[n] [height]	Open a window to show the current list of errors.

			When [height] is given, the window becomes that high
			(if there is room).  When [height] is omitted the
			window is made ten lines high.

			If there already is a quickfix window, it will be made
			the current window.  It is not possible to open a
			second quickfix window.  If [height] is given the
			existing window will be resized to it.

			The window will contain a special buffer, with
			'buftype' equal to "quickfix".  Don't change this!
			The window will have the w:quickfix_title variable set
			which will indicate the command that produced the
			quickfix list. This can be used to compose a custom
			status line if the value of 'statusline' is adjusted
			properly. Whenever this buffer is modified by a
			quickfix command or function, the |b:changedtick|
			variable is incremented.

							*:lop* *:lopen*
:lop[en] [height]	Open a window to show the location list for the
			current window. Works only when the location list for
			the current window is present.  You can have more than
			one location window opened at a time.  Otherwise, it
			acts the same as ":copen".

							*:ccl* *:cclose*
:ccl[ose]		Close the quickfix window.

							*:lcl* *:lclose*
:lcl[ose]		Close the window showing the location list for the
			current window.

							*:cw* *:cwindow*
:cw[indow] [height]	Open the quickfix window when there are recognized
			errors.  If the window is already open and there are
			no recognized errors, close the window.

							*:lw* *:lwindow*
:lw[indow] [height]	Same as ":cwindow", except use the window showing the
			location list for the current window.

							*:cbo* *:cbottom*
:cbo[ttom]		Put the cursor in the last line of the quickfix window
			and scroll to make it visible.  This is useful for
			when errors are added by an asynchronous callback.
			Only call it once in a while if there are many
			updates to avoid a lot of redrawing.

							*:lbo* *:lbottom*
:lbo[ttom]		Same as ":cbottom", except use the window showing the
			location list for the current window.

Normally the quickfix window is at the bottom of the screen.  If there are
vertical splits, it's at the bottom of the rightmost column of windows.  To
make it always occupy the full width: >
	:botright cwindow
You can move the window around with |window-moving| commands.
For example, to move it to the top: CTRL-W K
The 'winfixheight' option will be set, which means that the window will mostly
keep its height, ignoring 'winheight' and 'equalalways'.  You can change the
height manually (e.g., by dragging the status line above it with the mouse).

In the quickfix window, each line is one error.  The line number is equal to
the error number.  The current entry is highlighted with the QuickFixLine
highlighting.  You can change it to your liking, e.g.: >
	:hi QuickFixLine ctermbg=Yellow guibg=Yellow

You can use ":.cc" to jump to the error under the cursor.
Hitting the <Enter> key or double-clicking the mouse on a line has the same
effect.  The file containing the error is opened in the window above the
quickfix window.  If there already is a window for that file, it is used
instead.  If the buffer in the used window has changed, and the error is in
another file, jumping to the error will fail.  You will first have to make
sure the window contains a buffer which can be abandoned.
					*CTRL-W_<Enter>* *CTRL-W_<CR>*
You can use CTRL-W <Enter> to open a new window and jump to the error there.

When the quickfix window has been filled, two autocommand events are
triggered.  First the 'filetype' option is set to "qf", which triggers the
FileType event.  Then the BufReadPost event is triggered, using "quickfix" for
the buffer name.  This can be used to perform some action on the listed
errors.  Example: >
	au BufReadPost quickfix  setlocal modifiable
		\ | silent exe 'g/^/s//\=line(".")." "/'
		\ | setlocal nomodifiable
This prepends the line number to each line.  Note the use of "\=" in the
substitute string of the ":s" command, which is used to evaluate an
expression.
The BufWinEnter event is also triggered, again using "quickfix" for the buffer
name.

Note: When adding to an existing quickfix list the autocommand are not
triggered.

Note: Making changes in the quickfix window has no effect on the list of
errors.  'modifiable' is off to avoid making changes.  If you delete or insert
lines anyway, the relation between the text and the error number is messed up.
If you really want to do this, you could write the contents of the quickfix
window to a file and use ":cfile" to have it parsed and used as the new error
list.

						*location-list-window*
The location list window displays the entries in a location list.  When you
open a location list window, it is created below the current window and
displays the location list for the current window.  The location list window
is similar to the quickfix window, except that you can have more than one
location list window open at a time. When you use a location list command in
this window, the displayed location list is used.

When you select a file from the location list window, the following steps are
used to find a window to edit the file:

1. If a window with the location list displayed in the location list window is
   present, then the file is opened in that window.
2. If the above step fails and if the file is already opened in another
   window, then that window is used.
3. If the above step fails then an existing window showing a buffer with
   'buftype' not set is used.
4. If the above step fails, then the file is edited in a new window.

In all of the above cases, if the location list for the selected window is not
yet set, then it is set to the location list displayed in the location list
window.

							*quickfix-window-ID*
You can use the |getqflist()| and |getloclist()| functions to obtain the
window ID of the quickfix window and location list window respectively (if
present).  Examples: >
	echo getqflist({'winid' : 1}).winid
	echo getloclist(2, {'winid' : 1}).winid
<
=============================================================================
3. Using more than one list of errors			*quickfix-error-lists*

So far has been assumed that there is only one list of errors.  Actually the
ten last used lists are remembered.  When starting a new list, the previous
ones are automatically kept.  Two commands can be used to access older error
lists.  They set one of the existing error lists as the current one.

						*:colder* *:col* *E380*
:col[der] [count]	Go to older error list.  When [count] is given, do
			this [count] times.  When already at the oldest error
			list, an error message is given.

						*:lolder* *:lol*
:lol[der] [count]	Same as `:colder`, except use the location list for
			the current window instead of the quickfix list.

						*:cnewer* *:cnew* *E381*
:cnew[er] [count]	Go to newer error list.  When [count] is given, do
			this [count] times.  When already at the newest error
			list, an error message is given.

						*:lnewer* *:lnew*
:lnew[er] [count]	Same as `:cnewer`, except use the location list for
			the current window instead of the quickfix list.

						*:chistory* *:chi*
:chi[story]		Show the list of error lists.  The current list is
			marked with ">".  The output looks like:
				  error list 1 of 3; 43 errors ~
				> error list 2 of 3; 0 errors ~
				  error list 3 of 3; 15 errors ~

						*:lhistory* *:lhi*
:lhi[story]		Show the list of location lists, otherwise like
			`:chistory`.

When adding a new error list, it becomes the current list.

When ":colder" has been used and ":make" or ":grep" is used to add a new error
list, one newer list is overwritten.  This is especially useful if you are
browsing with ":grep" |grep|.  If you want to keep the more recent error
lists, use ":cnewer 99" first.

To get the number of lists in the quickfix and location list stack, you can
use the |getqflist()| and |getloclist()| functions respectively with the list
number set to the special value '$'. Examples: >
	echo getqflist({'nr' : '$'}).nr
	echo getloclist(3, {'nr' : '$'}).nr
To get the number of the current list in the stack: >
	echo getqflist({'nr' : 0}).nr
<
=============================================================================
4. Using :make						*:make_makeprg*

							*:mak* *:make*
:mak[e][!] [arguments]	1. All relevant |QuickFixCmdPre| autocommands are
			   executed.
			2. If the 'autowrite' option is on, write any changed
			   buffers
			3. An errorfile name is made from 'makeef'.  If
			   'makeef' doesn't contain "##", and a file with this
			   name already exists, it is deleted.
			4. The program given with the 'makeprg' option is
			   started (default "make") with the optional
			   [arguments] and the output is saved in the
			   errorfile (for Unix it is also echoed on the
			   screen).
			5. The errorfile is read using 'errorformat'.
			6. All relevant |QuickFixCmdPost| autocommands are
			   executed.  See example below.
			7. If [!] is not given the first error is jumped to.
			8. The errorfile is deleted.
			9. You can now move through the errors with commands
			   like |:cnext| and |:cprevious|, see above.
			This command does not accept a comment, any "
			characters are considered part of the arguments.
			If the encoding of the program output differs from the
			'encoding' option, you can use the 'makeencoding'
			option to specify the encoding.

							*:lmak* *:lmake*
:lmak[e][!] [arguments]
			Same as ":make", except the location list for the
			current window is used instead of the quickfix list.

The ":make" command executes the command given with the 'makeprg' option.
This is done by passing the command to the shell given with the 'shell'
option.  This works almost like typing

	":!{makeprg} [arguments] {shellpipe} {errorfile}".

{makeprg} is the string given with the 'makeprg' option.  Any command can be
used, not just "make".  Characters '%' and '#' are expanded as usual on a
command-line.  You can use "%<" to insert the current file name without
extension, or "#<" to insert the alternate file name without extension, for
example: >
   :set makeprg=make\ #<.o

[arguments] is anything that is typed after ":make".
{shellpipe} is the 'shellpipe' option.
{errorfile} is the 'makeef' option, with ## replaced to make it unique.

The placeholder "$*" can be used for the argument list in {makeprg} if the
command needs some additional characters after its arguments.  The $* is
replaced then by all arguments.  Example: >
   :set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}
or simpler >
   :let &mp = 'latex \\nonstopmode \\input\{$*}'
"$*" can be given multiple times, for example: >
   :set makeprg=gcc\ -o\ $*\ $*

The 'shellpipe' option defaults to ">" for the Amiga, MS-DOS and Win32.  This
means that the output of the compiler is saved in a file and not shown on the
screen directly.  For Unix "| tee" is used.  The compiler output is shown on
the screen and saved in a file the same time.  Depending on the shell used
"|& tee" or "2>&1| tee" is the default, so stderr output will be included.

If 'shellpipe' is empty, the {errorfile} part will be omitted.  This is useful
for compilers that write to an errorfile themselves (e.g., Manx's Amiga C).


Using QuickFixCmdPost to fix the encoding ~

It may be that 'encoding' is set to an encoding that differs from the messages
your build program produces.  This example shows how to fix this after Vim has
read the error messages: >

	function QfMakeConv()
	   let qflist = getqflist()
	   for i in qflist
	      let i.text = iconv(i.text, "cp936", "utf-8")
	   endfor
	   call setqflist(qflist)
	endfunction

	au QuickfixCmdPost make call QfMakeConv()

(Example by Faque Cheng)
Another option is using 'makeencoding'.

==============================================================================
5. Using :vimgrep and :grep				*grep* *lid*

Vim has two ways to find matches for a pattern: Internal and external.  The
advantage of the internal grep is that it works on all systems and uses the
powerful Vim search patterns.  An external grep program can be used when the
Vim grep does not do what you want.

The internal method will be slower, because files are read into memory.  The
advantages are:
- Line separators and encoding are automatically recognized, as if a file is
  being edited.
- Uses Vim search patterns.  Multi-line patterns can be used.
- When plugins are enabled: compressed and remote files can be searched.
	|gzip| |netrw|

To be able to do this Vim loads each file as if it is being edited.  When
there is no match in the file the associated buffer is wiped out again.  The
'hidden' option is ignored here to avoid running out of memory or file
descriptors when searching many files.  However, when the |:hide| command
modifier is used the buffers are kept loaded.  This makes following searches
in the same files a lot faster.

Note that |:copen| (or |:lopen| for |:lgrep|) may be used to open a buffer
containing the search results in linked form.  The |:silent| command may be
used to suppress the default full screen grep output.  The ":grep!" form of
the |:grep| command doesn't jump to the first match automatically.  These
commands can be combined to create a NewGrep command: >

        command! -nargs=+ NewGrep execute 'silent grep! <args>' | copen 42


5.1 using Vim's internal grep

					*:vim* *:vimgrep* *E682* *E683*
:vim[grep][!] /{pattern}/[g][j] {file} ...
			Search for {pattern} in the files {file} ... and set
			the error list to the matches.  Files matching
			'wildignore' are ignored; files in 'suffixes' are
			searched last.
			Without the 'g' flag each line is added only once.
			With 'g' every match is added.

			{pattern} is a Vim search pattern.  Instead of
			enclosing it in / any non-ID character (see
			|'isident'|) can be used, so long as it does not
			appear in {pattern}.
			'ignorecase' applies.  To overrule it put |/\c| in the
			pattern to ignore case or |/\C| to match case.
			'smartcase' is not used.
			If {pattern} is empty (e.g. // is specified), the last
			used search pattern is used. |last-pattern|

			When a number is put before the command this is used
			as the maximum number of matches to find.  Use
			":1vimgrep pattern file" to find only the first.
			Useful if you only want to check if there is a match
			and quit quickly when it's found.

			Without the 'j' flag Vim jumps to the first match.
			With 'j' only the quickfix list is updated.
			With the [!] any changes in the current buffer are
			abandoned.

			Every second or so the searched file name is displayed
			to give you an idea of the progress made.
			Examples: >
				:vimgrep /an error/ *.c
				:vimgrep /\<FileName\>/ *.h include/*
				:vimgrep /myfunc/ **/*.c
<			For the use of "**" see |starstar-wildcard|.

:vim[grep][!] {pattern} {file} ...
			Like above, but instead of enclosing the pattern in a
			non-ID character use a white-separated pattern.  The
			pattern must start with an ID character.
			Example: >
				:vimgrep Error *.c
<
							*:lv* *:lvimgrep*
:lv[imgrep][!] /{pattern}/[g][j] {file} ...
:lv[imgrep][!] {pattern} {file} ...
			Same as ":vimgrep", except the location list for the
			current window is used instead of the quickfix list.

						*:vimgrepa* *:vimgrepadd*
:vimgrepa[dd][!] /{pattern}/[g][j] {file} ...
:vimgrepa[dd][!] {pattern} {file} ...
			Just like ":vimgrep", but instead of making a new list
			of errors the matches are appended to the current
			list.

						*:lvimgrepa* *:lvimgrepadd*
:lvimgrepa[dd][!] /{pattern}/[g][j] {file} ...
:lvimgrepa[dd][!] {pattern} {file} ...
			Same as ":vimgrepadd", except the location list for
			the current window is used instead of the quickfix
			list.

5.2 External grep

Vim can interface with "grep" and grep-like programs (such as the GNU
id-utils) in a similar way to its compiler integration (see |:make| above).

[Unix trivia: The name for the Unix "grep" command comes from ":g/re/p", where
"re" stands for Regular Expression.]

							    *:gr* *:grep*
:gr[ep][!] [arguments]	Just like ":make", but use 'grepprg' instead of
			'makeprg' and 'grepformat' instead of 'errorformat'.
			When 'grepprg' is "internal" this works like
			|:vimgrep|.  Note that the pattern needs to be
			enclosed in separator characters then.
			If the encoding of the program output differs from the
			'encoding' option, you can use the 'makeencoding'
			option to specify the encoding.

							    *:lgr* *:lgrep*
:lgr[ep][!] [arguments]	Same as ":grep", except the location list for the
			current window is used instead of the quickfix list.

							*:grepa* *:grepadd*
:grepa[dd][!] [arguments]
			Just like ":grep", but instead of making a new list of
			errors the matches are appended to the current list.
			Example: >
				:call setqflist([])
				:bufdo grepadd! something %
<			The first command makes a new error list which is
			empty.  The second command executes "grepadd" for each
			listed buffer.  Note the use of ! to avoid that
			":grepadd" jumps to the first error, which is not
			allowed with |:bufdo|.
			An example that uses the argument list and avoids
			errors for files without matches: >
                                :silent argdo try 
				  \ | grepadd! something %
				  \ | catch /E480:/
				  \ | endtry"
<
			If the encoding of the program output differs from the
			'encoding' option, you can use the 'makeencoding'
			option to specify the encoding.

							*:lgrepa* *:lgrepadd*
:lgrepa[dd][!] [arguments]
			Same as ":grepadd", except the location list for the
			current window is used instead of the quickfix list.

5.3 Setting up external grep

If you have a standard "grep" program installed, the :grep command may work
well with the defaults.  The syntax is very similar to the standard command: >

	:grep foo *.c

Will search all files with the .c extension for the substring "foo".  The
arguments to :grep are passed straight to the "grep" program, so you can use
whatever options your "grep" supports.

By default, :grep invokes grep with the -n option (show file and line
numbers).  You can change this with the 'grepprg' option.  You will need to set
'grepprg' if:

a)	You are using a program that isn't called "grep"
b)	You have to call grep with a full path
c)	You want to pass other options automatically (e.g. case insensitive
	search.)

Once "grep" has executed, Vim parses the results using the 'grepformat'
option.  This option works in the same way as the 'errorformat' option - see
that for details.  You may need to change 'grepformat' from the default if
your grep outputs in a non-standard format, or you are using some other
program with a special format.

Once the results are parsed, Vim loads the first file containing a match and
jumps to the appropriate line, in the same way that it jumps to a compiler
error in |quickfix| mode.  You can then use the |:cnext|, |:clist|, etc.
commands to see the other matches.


5.4 Using :grep with id-utils

You can set up :grep to work with the GNU id-utils like this: >

	:set grepprg=lid\ -Rgrep\ -s
	:set grepformat=%f:%l:%m

then >
	:grep (regexp)

works just as you'd expect.
(provided you remembered to mkid first :)


5.5 Browsing source code with :vimgrep or :grep

Using the stack of error lists that Vim keeps, you can browse your files to
look for functions and the functions they call.  For example, suppose that you
have to add an argument to the read_file() function.  You enter this command: >

	:vimgrep /\<read_file\>/ *.c

You use ":cn" to go along the list of matches and add the argument.  At one
place you have to get the new argument from a higher level function msg(), and
need to change that one too.  Thus you use: >

	:vimgrep /\<msg\>/ *.c

While changing the msg() functions, you find another function that needs to
get the argument from a higher level.  You can again use ":vimgrep" to find
these functions.  Once you are finished with one function, you can use >

	:colder

to go back to the previous one.

This works like browsing a tree: ":vimgrep" goes one level deeper, creating a
list of branches.  ":colder" goes back to the previous level.  You can mix
this use of ":vimgrep" and "colder" to browse all the locations in a tree-like
way.  If you do this consistently, you will find all locations without the
need to write down a "todo" list.

=============================================================================
6. Selecting a compiler					*compiler-select*

						*:comp* *:compiler* *E666*
:comp[iler][!] {name}		Set options to work with compiler {name}.
				Without the "!" options are set for the
				current buffer.  With "!" global options are
				set.
				If you use ":compiler foo" in "file.foo" and
				then ":compiler! bar" in another buffer, Vim
				will keep on using "foo" in "file.foo".
				{not available when compiled without the
				|+eval| feature}


The Vim plugins in the "compiler" directory will set options to use the
selected compiler.  For `:compiler` local options are set, for `:compiler!`
global options.
							*current_compiler*
To support older Vim versions, the plugins always use "current_compiler" and
not "b:current_compiler".  What the command actually does is the following:

- Delete the "current_compiler" and "b:current_compiler" variables.
- Define the "CompilerSet" user command.  With "!" it does ":set", without "!"
  it does ":setlocal".
- Execute ":runtime! compiler/{name}.vim".  The plugins are expected to set
  options with "CompilerSet" and set the "current_compiler" variable to the
  name of the compiler.
- Delete the "CompilerSet" user command.
- Set "b:current_compiler" to the value of "current_compiler".
- Without "!" the old value of "current_compiler" is restored.


For writing a compiler plugin, see |write-compiler-plugin|.


GCC					*quickfix-gcc*	*compiler-gcc*

There's one variable you can set for the GCC compiler:

g:compiler_gcc_ignore_unmatched_lines
				Ignore lines that don't match any patterns
				defined for GCC.  Useful if output from
				commands run from make are generating false
				positives.


MANX AZTEC C				*quickfix-manx* *compiler-manx*

To use Vim with Manx's Aztec C compiler on the Amiga you should do the
following:
- Set the CCEDIT environment variable with the command: >
	mset "CCEDIT=vim -q"
- Compile with the -qf option.  If the compiler finds any errors, Vim is
  started and the cursor is positioned on the first error.  The error message
  will be displayed on the last line.  You can go to other errors with the
  commands mentioned above.  You can fix the errors and write the file(s).
- If you exit Vim normally the compiler will re-compile the same file.  If you
  exit with the :cq command, the compiler will terminate.  Do this if you
  cannot fix the error, or if another file needs to be compiled first.

There are some restrictions to the Quickfix mode on the Amiga.  The
compiler only writes the first 25 errors to the errorfile (Manx's
documentation does not say how to get more).  If you want to find the others,
you will have to fix a few errors and exit the editor.  After recompiling,
up to 25 remaining errors will be found.

If Vim was started from the compiler, the :sh and some :!  commands will not
work, because Vim is then running in the same process as the compiler and
stdin (standard input) will not be interactive.


PERL					*quickfix-perl* *compiler-perl*

The Perl compiler plugin doesn't actually compile, but invokes Perl's internal
syntax checking feature and parses the output for possible errors so you can
correct them in quick-fix mode.

Warnings are forced regardless of "no warnings" or "$^W = 0" within the file
being checked.  To disable this set g:perl_compiler_force_warnings to a zero
value.  For example: >
	let g:perl_compiler_force_warnings = 0


PYUNIT COMPILER						*compiler-pyunit*

This is not actually a compiler, but a unit testing framework for the
Python language.  It is included into standard Python distribution
starting from version 2.0.  For older versions, you can get it from
http://pyunit.sourceforge.net.

When you run your tests with the help of the framework, possible errors
are parsed by Vim and presented for you in quick-fix mode.

Unfortunately, there is no standard way to run the tests.
The alltests.py script seems to be used quite often, that's all.
Useful values for the 'makeprg' options therefore are:
 setlocal makeprg=./alltests.py " Run a testsuite
 setlocal makeprg=python\ %:S   " Run a single testcase

Also see http://vim.sourceforge.net/tip_view.php?tip_id=280.


TEX COMPILER						*compiler-tex*

Included in the distribution compiler for TeX ($VIMRUNTIME/compiler/tex.vim)
uses make command if possible.  If the compiler finds a file named "Makefile"
or "makefile" in the current directory, it supposes that you want to process
your *TeX files with make, and the makefile does the right work.  In this case
compiler sets 'errorformat' for *TeX output and leaves 'makeprg' untouched.  If
neither "Makefile" nor "makefile" is found, the compiler will not use make.
You can force the compiler to ignore makefiles by defining
b:tex_ignore_makefile or g:tex_ignore_makefile variable (they are checked for
existence only).

If the compiler chose not to use make, it need to choose a right program for
processing your input.  If b:tex_flavor or g:tex_flavor (in this precedence)
variable exists, it defines TeX flavor for :make (actually, this is the name
of executed command), and if both variables do not exist, it defaults to
"latex".  For example, while editing chapter2.tex \input-ed from mypaper.tex
written in AMS-TeX: >

	:let b:tex_flavor = 'amstex'
	:compiler tex
<	[editing...] >
	:make mypaper

Note that you must specify a name of the file to process as an argument (to
process the right file when editing \input-ed or \include-ed file; portable
solution for substituting % for no arguments is welcome).  This is not in the
semantics of make, where you specify a target, not source, but you may specify
filename without extension ".tex" and mean this as "make filename.dvi or
filename.pdf or filename.some_result_extension according to compiler".

Note: tex command line syntax is set to usable both for MikTeX (suggestion
by Srinath Avadhanula) and teTeX (checked by Artem Chuprina).  Suggestion
from |errorformat-LaTeX| is too complex to keep it working for different
shells and OSes and also does not allow to use other available TeX options,
if any.  If your TeX doesn't support "-interaction=nonstopmode", please
report it with different means to express \nonstopmode from the command line.

=============================================================================
7. The error format					*error-file-format*

					*errorformat* *E372* *E373* *E374*
						*E375* *E376* *E377* *E378*
The 'errorformat' option specifies a list of formats that are recognized.  The
first format that matches with an error message is used.  You can add several
formats for different messages your compiler produces, or even entries for
multiple compilers.  See |efm-entries|.

Each entry in 'errorformat' is a scanf-like string that describes the format.
First, you need to know how scanf works.  Look in the documentation of your
C compiler.  Below you find the % items that Vim understands.  Others are
invalid.

Special characters in 'errorformat' are comma and backslash.  See
|efm-entries| for how to deal with them.  Note that a literal "%" is matched
by "%%", thus it is not escaped with a backslash.
Keep in mind that in the `:make` and `:grep` output all NUL characters are
replaced with SOH (0x01).

Note: By default the difference between upper and lowercase is ignored.  If
you want to match case, add "\C" to the pattern |/\C|.


Basic items

	%f		file name (finds a string)
	%l		line number (finds a number)
	%c		column number (finds a number representing character
			column of the error, (1 <tab> == 1 character column))
	%v		virtual column number (finds a number representing
			screen column of the error (1 <tab> == 8 screen
			columns))
	%t		error type (finds a single character)
	%n		error number (finds a number)
	%m		error message (finds a string)
	%r		matches the "rest" of a single-line file message %O/P/Q
	%p		pointer line (finds a sequence of '-', '.', ' ' or
			tabs and uses the length for the column number)
	%*{conv}	any scanf non-assignable conversion
	%%		the single '%' character
	%s		search text (finds a string)

The "%f" conversion may depend on the current 'isfname' setting.  "~/" is
expanded to the home directory and environment variables are expanded.

The "%f" and "%m" conversions have to detect the end of the string.  This
normally happens by matching following characters and items.  When nothing is
following the rest of the line is matched.  If "%f" is followed by a '%' or a
backslash, it will look for a sequence of 'isfname' characters.

On MS-DOS, MS-Windows and OS/2 a leading "C:" will be included in "%f", even
when using "%f:".  This means that a file name which is a single alphabetical
letter will not be detected.

The "%p" conversion is normally followed by a "^".  It's used for compilers
that output a line like: >
	    ^
or >
   ---------^
to indicate the column of the error.  This is to be used in a multi-line error
message.  See |errorformat-javac| for a  useful example.

The "%s" conversion specifies the text to search for to locate the error line.
The text is used as a literal string.  The anchors "^" and "$" are added to
the text to locate the error line exactly matching the search text and the
text is prefixed with the "\V" atom to make it "very nomagic".  The "%s"
conversion can be used to locate lines without a line number in the error
output.  Like the output of the "grep" shell command.
When the pattern is present the line number will not be used.

Changing directory

The following uppercase conversion characters specify the type of special
format strings.  At most one of them may be given as a prefix at the begin
of a single comma-separated format pattern.
Some compilers produce messages that consist of directory names that have to
be prepended to each file name read by %f (example: GNU make).  The following
codes can be used to scan these directory names; they will be stored in an
internal directory stack.					*E379*
	%D		"enter directory" format string; expects a following
			  %f that finds the directory name
	%X		"leave directory" format string; expects following %f

When defining an "enter directory" or "leave directory" format, the "%D" or
"%X" has to be given at the start of that substring.  Vim tracks the directory
changes and prepends the current directory to each erroneous file found with a
relative path.  See |quickfix-directory-stack| for details, tips and
limitations.


Multi-line messages				*errorformat-multi-line*

It is possible to read the output of programs that produce multi-line
messages, i.e. error strings that consume more than one line.  Possible
prefixes are:
	%E		start of a multi-line error message
	%W		start of a multi-line warning message
	%I		start of a multi-line informational message
	%A		start of a multi-line message (unspecified type)
	%>		for next line start with current pattern again |efm-%>|
	%C		continuation of a multi-line message
	%Z		end of a multi-line message
These can be used with '+' and '-', see |efm-ignore| below.

Using "\n" in the pattern won't work to match multi-line messages.

Example: Your compiler happens to write out errors in the following format
(leading line numbers not being part of the actual output):

     1	Error 275 ~
     2	line 42 ~
     3	column 3 ~
     4	' ' expected after '--' ~

The appropriate error format string has to look like this: >
   :set efm=%EError\ %n,%Cline\ %l,%Ccolumn\ %c,%Z%m

And the |:clist| error message generated for this error is:

 1:42 col 3 error 275:  ' ' expected after '--'

Another example: Think of a Python interpreter that produces the following
error message (line numbers are not part of the actual output):

     1	==============================================================
     2	FAIL: testGetTypeIdCachesResult (dbfacadeTest.DjsDBFacadeTest)
     3	--------------------------------------------------------------
     4	Traceback (most recent call last):
     5	  File "unittests/dbfacadeTest.py", line 89, in testFoo
     6	    self.assertEquals(34, dtid)
     7	  File "/usr/lib/python2.2/unittest.py", line 286, in
     8	 failUnlessEqual
     9	    raise self.failureException, \
    10	AssertionError: 34 != 33
    11
    12	--------------------------------------------------------------
    13	Ran 27 tests in 0.063s

Say you want |:clist| write the relevant information of this message only,
namely:
 5 unittests/dbfacadeTest.py:89:  AssertionError: 34 != 33

Then the error format string could be defined as follows: >
  :set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m

Note that the %C string is given before the %A here: since the expression
' %.%#' (which stands for the regular expression ' .*') matches every line
starting with a space, followed by any characters to the end of the line,
it also hides line 7 which would trigger a separate error message otherwise.
Error format strings are always parsed pattern by pattern until the first
match occurs.
							*efm-%>*
The %> item can be used to avoid trying patterns that appear earlier in
'errorformat'.  This is useful for patterns that match just about anything.
For example, if the error looks like this:

	Error in line 123 of foo.c: ~
	unknown variable "i" ~

This can be found with: >
	:set efm=xxx,%E%>Error in line %l of %f:,%Z%m
Where "xxx" has a pattern that would also match the second line.

Important: There is no memory of what part of the errorformat matched before;
every line in the error file gets a complete new run through the error format
lines.  For example, if one has: >
  setlocal efm=aa,bb,cc,dd,ee
Where aa, bb, etc. are error format strings.  Each line of the error file will
be matched to the pattern aa, then bb, then cc, etc.  Just because cc matched
the previous error line does _not_ mean that dd will be tried first on the
current line, even if cc and dd are multi-line errorformat strings.



Separate file name			*errorformat-separate-filename*

These prefixes are useful if the file name is given once and multiple messages
follow that refer to this file name.
	%O		single-line file message: overread the matched part
	%P		single-line file message: push file %f onto the stack
	%Q		single-line file message: pop the last file from stack

Example: Given a compiler that produces the following error logfile (without
leading line numbers):

     1	[a1.tt]
     2	(1,17)  error: ';' missing
     3	(21,2)  warning: variable 'z' not defined
     4	(67,3)  error: end of file found before string ended
     5
     6	[a2.tt]
     7
     8	[a3.tt]
     9	NEW compiler v1.1
    10	(2,2)   warning: variable 'x' not defined
    11	(67,3)  warning: 's' already defined

This logfile lists several messages for each file enclosed in [...] which are
properly parsed by an error format like this: >
  :set efm=%+P[%f],(%l\\,%c)%*[\ ]%t%*[^:]:\ %m,%-Q

A call of |:clist| writes them accordingly with their correct filenames:

  2 a1.tt:1 col 17 error: ';' missing
  3 a1.tt:21 col 2 warning: variable 'z' not defined
  4 a1.tt:67 col 3 error: end of file found before string ended
  8 a3.tt:2 col 2 warning: variable 'x' not defined
  9 a3.tt:67 col 3 warning: 's' already defined

Unlike the other prefixes that all match against whole lines, %P, %Q and %O
can be used to match several patterns in the same line.  Thus it is possible
to parse even nested files like in the following line:
  {"file1" {"file2" error1} error2 {"file3" error3 {"file4" error4 error5}}}
The %O then parses over strings that do not contain any push/pop file name
information.  See |errorformat-LaTeX| for an extended example.


Ignoring and using whole messages			*efm-ignore*

The codes '+' or '-' can be combined with the uppercase codes above; in that
case they have to precede the letter, e.g. '%+A' or '%-G':
	%-		do not include the matching multi-line in any output
	%+		include the whole matching line in the %m error string

One prefix is only useful in combination with '+' or '-', namely %G.  It parses
over lines containing general information like compiler version strings or
other headers that can be skipped.
	%-G		ignore this message
	%+G		general message


Pattern matching

The scanf()-like "%*[]" notation is supported for backward-compatibility
with previous versions of Vim.  However, it is also possible to specify
(nearly) any Vim supported regular expression in format strings.
Since meta characters of the regular expression language can be part of
ordinary matching strings or file names (and therefore internally have to
be escaped), meta symbols have to be written with leading '%':
	%\		The single '\' character.  Note that this has to be
			escaped ("%\\") in ":set errorformat=" definitions.
	%.		The single '.' character.
	%#		The single '*'(!) character.
	%^		The single '^' character.  Note that this is not
			useful, the pattern already matches start of line.
	%$		The single '$' character.  Note that this is not
			useful, the pattern already matches end of line.
	%[		The single '[' character for a [] character range.
	%~		The single '~' character.
When using character classes in expressions (see |/\i| for an overview),
terms containing the "\+" quantifier can be written in the scanf() "%*"
notation.  Example: "%\\d%\\+" ("\d\+", "any number") is equivalent to "%*\\d".
Important note: The \(...\) grouping of sub-matches can not be used in format
specifications because it is reserved for internal conversions.


Multiple entries in 'errorformat'			*efm-entries*

To be able to detect output from several compilers, several format patterns
may be put in 'errorformat', separated by commas (note: blanks after the comma
are ignored).  The first pattern that has a complete match is used.  If no
match is found, matching parts from the last one will be used, although the
file name is removed and the error message is set to the whole message.  If
there is a pattern that may match output from several compilers (but not in a
right way), put it after one that is more restrictive.

To include a comma in a pattern precede it with a backslash (you have to type
two in a ":set" command).  To include a backslash itself give two backslashes
(you have to type four in a ":set" command).  You also need to put a backslash
before a space for ":set".


Valid matches						*quickfix-valid*

If a line does not completely match one of the entries in 'errorformat', the
whole line is put in the error message and the entry is marked "not valid"
These lines are skipped with the ":cn" and ":cp" commands (unless there is
no valid line at all).  You can use ":cl!" to display all the error messages.

If the error format does not contain a file name Vim cannot switch to the
correct file.  You will have to do this by hand.


Examples

The format of the file from the Amiga Aztec compiler is:

	filename>linenumber:columnnumber:errortype:errornumber:errormessage

	filename	name of the file in which the error was detected
	linenumber	line number where the error was detected
	columnnumber	column number where the error was detected
	errortype	type of the error, normally a single 'E' or 'W'
	errornumber	number of the error (for lookup in the manual)
	errormessage	description of the error

This can be matched with this 'errorformat' entry:
	%f>%l:%c:%t:%n:%m

Some examples for C compilers that produce single-line error outputs:
%f:%l:\ %t%*[^0123456789]%n:\ %m	for Manx/Aztec C error messages
					(scanf() doesn't understand [0-9])
%f\ %l\ %t%*[^0-9]%n:\ %m		for SAS C
\"%f\"\\,%*[^0-9]%l:\ %m		for generic C compilers
%f:%l:\ %m				for GCC
%f:%l:\ %m,%Dgmake[%*\\d]:\ Entering\ directory\ `%f',
%Dgmake[%*\\d]:\ Leaving\ directory\ `%f'
					for GCC with gmake (concat the lines!)
%f(%l)\ :\ %*[^:]:\ %m			old SCO C compiler (pre-OS5)
%f(%l)\ :\ %t%*[^0-9]%n:\ %m		idem, with error type and number
%f:%l:\ %m,In\ file\ included\ from\ %f:%l:,\^I\^Ifrom\ %f:%l%m
					for GCC, with some extras

Extended examples for the handling of multi-line messages are given below,
see |errorformat-Jikes| and |errorformat-LaTeX|.

Note the backslash in front of a space and double quote.  It is required for
the :set command.  There are two backslashes in front of a comma, one for the
:set command and one to avoid recognizing the comma as a separator of error
formats.


Filtering messages

If you have a compiler that produces error messages that do not fit in the
format string, you could write a program that translates the error messages
into this format.  You can use this program with the ":make" command by
changing the 'makeprg' option.  For example: >
   :set mp=make\ \\\|&\ error_filter
The backslashes before the pipe character are required to avoid it to be
recognized as a command separator.  The backslash before each space is
required for the set command.

=============================================================================
8. The directory stack				*quickfix-directory-stack*

Quickfix maintains a stack for saving all used directories parsed from the
make output.  For GNU-make this is rather simple, as it always prints the
absolute path of all directories it enters and leaves.  Regardless if this is
done via a 'cd' command in the makefile or with the parameter "-C dir" (change
to directory before reading the makefile).  It may be useful to use the switch
"-w" to force GNU-make to print out the working directory before and after
processing.

Maintaining the correct directory is more complicated if you don't use
GNU-make.  AIX-make for example doesn't print any information about its
working directory.  Then you need to enhance the makefile.  In the makefile of
LessTif there is a command which echoes "Making {target} in {dir}".  The
special problem here is that it doesn't print information on leaving the
directory and that it doesn't print the absolute path.

To solve the problem with relative paths and missing "leave directory"
messages Vim uses following algorithm:

1) Check if the given directory is a subdirectory of the current directory.
   If this is true, store it as the current directory.
2) If it is not a subdir of the current directory, try if this is a
   subdirectory of one of the upper directories.
3) If the directory still isn't found, it is assumed to be a subdirectory
   of Vim's current directory.

Additionally it is checked for every file, if it really exists in the
identified directory.  If not, it is searched in all other directories of the
directory stack (NOT the directory subtree!).  If it is still not found, it is
assumed that it is in Vim's current directory.

There are limitations in this algorithm.  These examples assume that make just
prints information about entering a directory in the form "Making all in dir".

1) Assume you have following directories and files:
   ./dir1
   ./dir1/file1.c
   ./file1.c

   If make processes the directory "./dir1" before the current directory and
   there is an error in the file "./file1.c", you will end up with the file
   "./dir1/file.c" loaded by Vim.

   This can only be solved with a "leave directory" message.

2) Assume you have following directories and files:
   ./dir1
   ./dir1/dir2
   ./dir2

   You get the following:

   Make output			  Directory interpreted by Vim
   ------------------------	  ----------------------------
   Making all in dir1		  ./dir1
   Making all in dir2		  ./dir1/dir2
   Making all in dir2		  ./dir1/dir2

   This can be solved by printing absolute directories in the "enter directory"
   message or by printing "leave directory" messages.

To avoid this problem, ensure to print absolute directory names and "leave
directory" messages.

Examples for Makefiles:

Unix:
    libs:
	    for dn in $(LIBDIRS); do				\
		(cd $$dn; echo "Entering dir '$$(pwd)'"; make); \
		echo "Leaving dir";				\
	    done

Add
    %DEntering\ dir\ '%f',%XLeaving\ dir
to your 'errorformat' to handle the above output.

Note that Vim doesn't check if the directory name in a "leave directory"
messages is the current directory.  This is why you could just use the message
"Leaving dir".

=============================================================================
9. Specific error file formats			*errorformats*

						*errorformat-Jikes*
Jikes(TM), a source-to-bytecode Java compiler published by IBM Research,
produces simple multi-line error messages.

An 'errorformat' string matching the produced messages is shown below.
The following lines can be placed in the user's |vimrc| to overwrite Vim's
recognized default formats, or see |:set+=| how to install this format
additionally to the default. >

  :set efm=%A%f:%l:%c:%*\\d:%*\\d:,
	\%C%*\\s%trror:%m,
	\%+C%*[^:]%trror:%m,
	\%C%*\\s%tarning:%m,
	\%C%m
<
Jikes(TM) produces a single-line error message when invoked with the option
"+E", and can be matched with the following: >

  :setl efm=%f:%l:%v:%*\\d:%*\\d:%*\\s%m
<
						*errorformat-javac*
This 'errorformat' has been reported to work well for javac, which outputs a
line with "^" to indicate the column of the error: >
  :setl efm=%A%f:%l:\ %m,%-Z%p^,%-C%.%#
or: >
  :setl efm=%A%f:%l:\ %m,%+Z%p^,%+C%.%#,%-G%.%#
<
Here is an alternative from Michael F. Lamb for Unix that filters the errors
first: >
  :setl errorformat=%Z%f:%l:\ %m,%A%p^,%-G%*[^sl]%.%#
  :setl makeprg=javac\ %:S\ 2>&1\ \\\|\ vim-javac-filter

You need to put the following in "vim-javac-filter" somewhere in your path
(e.g., in ~/bin) and make it executable: >
   #!/bin/sed -f
   /\^$/s/\t/\ /g;/:[0-9]\+:/{h;d};/^[ \t]*\^/G;

In English, that sed script:
- Changes single tabs to single spaces and
- Moves the line with the filename, line number, error message to just after
  the pointer line. That way, the unused error text between doesn't break
  vim's notion of a "multi-line message" and also doesn't force us to include
  it as a "continuation of a multi-line message."

						*errorformat-ant*
For ant (http://jakarta.apache.org/) the above errorformat has to be modified
to honour the leading [javac] in front of each javac output line: >
  :set efm=%A\ %#[javac]\ %f:%l:\ %m,%-Z\ %#[javac]\ %p^,%-C%.%#

The 'errorformat' can also be configured to handle ant together with either
javac or jikes.  If you're using jikes, you should tell ant to use jikes' +E
command line switch which forces jikes to generate one-line error messages.
This is what the second line (of a build.xml file) below does: >
  <property name = "build.compiler"       value = "jikes"/>
  <property name = "build.compiler.emacs" value = "true"/>

The 'errorformat' which handles ant with both javac and jikes is: >
  :set efm=\ %#[javac]\ %#%f:%l:%c:%*\\d:%*\\d:\ %t%[%^:]%#:%m,
	   \%A\ %#[javac]\ %f:%l:\ %m,%-Z\ %#[javac]\ %p^,%-C%.%#
<
						*errorformat-jade*
parsing jade (see http://www.jclark.com/) errors is simple: >
  :set efm=jade:%f:%l:%c:%t:%m
<
						*errorformat-LaTeX*
The following is an example how an 'errorformat' string can be specified
for the (La)TeX typesetting system which displays error messages over
multiple lines.  The output of ":clist" and ":cc" etc. commands displays
multi-lines in a single line, leading white space is removed.
It should be easy to adopt the above LaTeX errorformat to any compiler output
consisting of multi-line errors.

The commands can be placed in a |vimrc| file or some other Vim script file,
e.g. a script containing LaTeX related stuff which is loaded only when editing
LaTeX sources.
Make sure to copy all lines of the example (in the given order), afterwards
remove the comment lines.  For the '\' notation at the start of some lines see
|line-continuation|.

		First prepare 'makeprg' such that LaTeX will report multiple
		errors; do not stop when the first error has occurred: >
 :set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}
<
		Start of multi-line error messages: >
 :set efm=%E!\ LaTeX\ %trror:\ %m,
	\%E!\ %m,
<		Start of multi-line warning messages; the first two also
		include the line number.  Meaning of some regular expressions:
		  - "%.%#"  (".*")   matches a (possibly empty) string
		  - "%*\\d" ("\d\+") matches a number >
	\%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#,
	\%+W%.%#\ at\ lines\ %l--%*\\d,
	\%WLaTeX\ %.%#Warning:\ %m,
<		Possible continuations of error/warning messages; the first
		one also includes the line number: >
	\%Cl.%l\ %m,
	\%+C\ \ %m.,
	\%+C%.%#-%.%#,
	\%+C%.%#[]%.%#,
	\%+C[]%.%#,
	\%+C%.%#%[{}\\]%.%#,
	\%+C<%.%#>%.%#,
	\%C\ \ %m,
<		Lines that match the following patterns do not contain any
		important information; do not include them in messages: >
	\%-GSee\ the\ LaTeX%m,
	\%-GType\ \ H\ <return>%m,
	\%-G\ ...%.%#,
	\%-G%.%#\ (C)\ %.%#,
	\%-G(see\ the\ transcript%.%#),
<		Generally exclude any empty or whitespace-only line from
		being displayed: >
	\%-G\\s%#,
<		The LaTeX output log does not specify the names of erroneous
		source files per line; rather they are given globally,
		enclosed in parentheses.
		The following patterns try to match these names and store
		them in an internal stack.  The patterns possibly scan over
		the same input line (one after another), the trailing "%r"
		conversion indicates the "rest" of the line that will be
		parsed in the next go until the end of line is reached.

		Overread a file name enclosed in '('...')'; do not push it
		on a stack since the file apparently does not contain any
		error: >
	\%+O(%f)%r,
<		Push a file name onto the stack.  The name is given after '(': >
	\%+P(%f%r,
	\%+P\ %\\=(%f%r,
	\%+P%*[^()](%f%r,
	\%+P[%\\d%[^()]%#(%f%r,
<		Pop the last stored file name when a ')' is scanned: >
	\%+Q)%r,
	\%+Q%*[^()])%r,
	\%+Q[%\\d%*[^()])%r

Note that in some cases file names in the LaTeX output log cannot be parsed
properly.  The parser might have been messed up by unbalanced parentheses
then.  The above example tries to catch the most relevant cases only.
You can customize the given setting to suit your own purposes, for example,
all the annoying "Overfull ..." warnings could be excluded from being
recognized as an error.
Alternatively to filtering the LaTeX compiler output, it is also possible
to directly read the *.log file that is produced by the [La]TeX compiler.
This contains even more useful information about possible error causes.
However, to properly parse such a complex file, an external filter should
be used.  See the description further above how to make such a filter known
by Vim.

						*errorformat-Perl*
In $VIMRUNTIME/tools you can find the efm_perl.pl script, which filters Perl
error messages into a format that quickfix mode will understand.  See the
start of the file about how to use it.  (This script is deprecated, see
|compiler-perl|.)



 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z������vim80/doc/motion.txtnu�[���*motion.txt*    For Vim version 8.0.  Last change: 2017 Oct 15


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Cursor motions					*cursor-motions* *navigation*

These commands move the cursor position.  If the new position is off of the
screen, the screen is scrolled to show the cursor (see also 'scrolljump' and
'scrolloff' options).

1. Motions and operators	|operator|
2. Left-right motions		|left-right-motions|
3. Up-down motions		|up-down-motions|
4. Word motions			|word-motions|
5. Text object motions		|object-motions|
6. Text object selection	|object-select|
7. Marks			|mark-motions|
8. Jumps			|jump-motions|
9. Various motions		|various-motions|

General remarks:

If you want to know where you are in the file use the "CTRL-G" command
|CTRL-G| or the "g CTRL-G" command |g_CTRL-G|.  If you set the 'ruler' option,
the cursor position is continuously shown in the status line (which slows down
Vim a little).

Experienced users prefer the hjkl keys because they are always right under
their fingers.  Beginners often prefer the arrow keys, because they do not
know what the hjkl keys do.  The mnemonic value of hjkl is clear from looking
at the keyboard.  Think of j as an arrow pointing downwards.

The 'virtualedit' option can be set to make it possible to move the cursor to
positions where there is no character or halfway a character.

==============================================================================
1. Motions and operators				*operator*

The motion commands can be used after an operator command, to have the command
operate on the text that was moved over.  That is the text between the cursor
position before and after the motion.  Operators are generally used to delete
or change text.  The following operators are available:

	|c|	c	change
	|d|	d	delete
	|y|	y	yank into register (does not change the text)
	|~|	~	swap case (only if 'tildeop' is set)
	|g~|	g~	swap case
	|gu|	gu	make lowercase
	|gU|	gU	make uppercase
	|!|	!	filter through an external program
	|=|	=	filter through 'equalprg' or C-indenting if empty
	|gq|	gq	text formatting
	|g?|	g?	ROT13 encoding
	|>|	>	shift right
	|<|	<	shift left
	|zf|	zf	define a fold
	|g@|	g@	call function set with the 'operatorfunc' option

If the motion includes a count and the operator also had a count before it,
the two counts are multiplied.  For example: "2d3w" deletes six words.

After applying the operator the cursor is mostly left at the start of the text
that was operated upon.  For example, "yfe" doesn't move the cursor, but "yFe"
moves the cursor leftwards to the "e" where the yank started.

						*linewise* *characterwise*
The operator either affects whole lines, or the characters between the start
and end position.  Generally, motions that move between lines affect lines
(are linewise), and motions that move within a line affect characters (are
characterwise).  However, there are some exceptions.

						*exclusive* *inclusive*
A character motion is either inclusive or exclusive.  When inclusive, the
start and end position of the motion are included in the operation.  When
exclusive, the last character towards the end of the buffer is not included.
Linewise motions always include the start and end position.

Which motions are linewise, inclusive or exclusive is mentioned with the
command.  There are however, two general exceptions:
1. If the motion is exclusive and the end of the motion is in column 1, the
   end of the motion is moved to the end of the previous line and the motion
   becomes inclusive.  Example: "}" moves to the first line after a paragraph,
   but "d}" will not include that line.
						*exclusive-linewise*
2. If the motion is exclusive, the end of the motion is in column 1 and the
   start of the motion was at or before the first non-blank in the line, the
   motion becomes linewise.  Example: If a paragraph begins with some blanks
   and you do "d}" while standing on the first non-blank, all the lines of
   the paragraph are deleted, including the blanks.  If you do a put now, the
   deleted lines will be inserted below the cursor position.

Note that when the operator is pending (the operator command is typed, but the
motion isn't yet), a special set of mappings can be used.  See |:omap|.

Instead of first giving the operator and then a motion you can use Visual
mode: mark the start of the text with "v", move the cursor to the end of the
text that is to be affected and then hit the operator.  The text between the
start and the cursor position is highlighted, so you can see what text will
be operated upon.  This allows much more freedom, but requires more key
strokes and has limited redo functionality.  See the chapter on Visual mode
|Visual-mode|.

You can use a ":" command for a motion.  For example "d:call FindEnd()".
But this can't be repeated with "." if the command is more than one line.
This can be repeated: >
	d:call search("f")<CR>
This cannot be repeated: >
	d:if 1<CR>
	   call search("f")<CR>
	endif<CR>
Note that when using ":" any motion becomes characterwise exclusive.


FORCING A MOTION TO BE LINEWISE, CHARACTERWISE OR BLOCKWISE

When a motion is not of the type you would like to use, you can force another
type by using "v", "V" or CTRL-V just after the operator.
Example: >
	dj
deletes two lines >
	dvj
deletes from the cursor position until the character below the cursor >
	d<C-V>j
deletes the character under the cursor and the character below the cursor. >

Be careful with forcing a linewise movement to be used characterwise or
blockwise, the column may not always be defined.

							*o_v*
v		When used after an operator, before the motion command: Force
		the operator to work characterwise, also when the motion is
		linewise.  If the motion was linewise, it will become
		|exclusive|.
		If the motion already was characterwise, toggle
		inclusive/exclusive.  This can be used to make an exclusive
		motion inclusive and an inclusive motion exclusive.

							*o_V*
V		When used after an operator, before the motion command: Force
		the operator to work linewise, also when the motion is
		characterwise.

							*o_CTRL-V*
CTRL-V		When used after an operator, before the motion command: Force
		the operator to work blockwise.  This works like Visual block
		mode selection, with the corners defined by the cursor
		position before and after the motion.

==============================================================================
2. Left-right motions					*left-right-motions*

These commands move the cursor to the specified column in the current line.
They stop at the first column and at the end of the line, except "$", which
may move to one of the next lines.  See 'whichwrap' option to make some of the
commands move across line boundaries.

h		or					*h*
<Left>		or					*<Left>*
CTRL-H		or					*CTRL-H* *<BS>*
<BS>			[count] characters to the left.  |exclusive| motion.
			Note: If you prefer <BS> to delete a character, use
			the mapping:
				:map CTRL-V<BS>		X
			(to enter "CTRL-V<BS>" type the CTRL-V key, followed
			by the <BS> key)
			See |:fixdel| if the <BS> key does not do what you
			want.

l		or					*l*
<Right>		or					*<Right>* *<Space>*
<Space>			[count] characters to the right.  |exclusive| motion.
			See the 'whichwrap' option for adjusting the behavior
			at end of line

							*0*
0			To the first character of the line.  |exclusive|
			motion.

							*<Home>* *<kHome>*
<Home>			To the first character of the line.  |exclusive|
			motion.  When moving up or down next, stay in same
			TEXT column (if possible).  Most other commands stay
			in the same SCREEN column.  <Home> works like "1|",
			which differs from "0" when the line starts with a
			<Tab>.  {not in Vi}

							*^*
^			To the first non-blank character of the line.
			|exclusive| motion.

							*$* *<End>* *<kEnd>*
$  or <End>		To the end of the line.  When a count is given also go
			[count - 1] lines downward. |inclusive| motion.
			In Visual mode the cursor goes to just after the last
			character in the line.
			When 'virtualedit' is active, "$" may move the cursor
			back from past the end of the line to the last
			character in the line.

							*g_*
g_			To the last non-blank character of the line and
			[count - 1] lines downward |inclusive|. {not in Vi}

							*g0* *g<Home>*
g0 or g<Home>		When lines wrap ('wrap' on): To the first character of
			the screen line.  |exclusive| motion.  Differs from
			"0" when a line is wider than the screen.
			When lines don't wrap ('wrap' off): To the leftmost
			character of the current line that is on the screen.
			Differs from "0" when the first character of the line
			is not on the screen.  {not in Vi}

							*g^*
g^			When lines wrap ('wrap' on): To the first non-blank
			character of the screen line.  |exclusive| motion.
			Differs from "^" when a line is wider than the screen.
			When lines don't wrap ('wrap' off): To the leftmost
			non-blank character of the current line that is on the
			screen.  Differs from "^" when the first non-blank
			character of the line is not on the screen.  {not in
			Vi}

							*gm*
gm			Like "g0", but half a screenwidth to the right (or as
			much as possible). {not in Vi}

							*g$* *g<End>*
g$ or g<End>		When lines wrap ('wrap' on): To the last character of
			the screen line and [count - 1] screen lines downward
			|inclusive|.  Differs from "$" when a line is wider
			than the screen.
			When lines don't wrap ('wrap' off): To the rightmost
			character of the current line that is visible on the
			screen.  Differs from "$" when the last character of
			the line is not on the screen or when a count is used.
			Additionally, vertical movements keep the column,
			instead of going to the end of the line.
			When 'virtualedit' is enabled moves to the end of the
			screen line.
			{not in Vi}

							*bar*
|			To screen column [count] in the current line.
			|exclusive| motion.  Ceci n'est pas une pipe.

							*f*
f{char}			To [count]'th occurrence of {char} to the right.  The
			cursor is placed on {char} |inclusive|.
			{char} can be entered as a digraph |digraph-arg|.
			When 'encoding' is set to Unicode, composing
			characters may be used, see |utf-8-char-arg|.
			|:lmap| mappings apply to {char}.  The CTRL-^ command
			in Insert mode can be used to switch this on/off
			|i_CTRL-^|.

							*F*
F{char}			To the [count]'th occurrence of {char} to the left.
			The cursor is placed on {char} |exclusive|.
			{char} can be entered like with the |f| command.

							*t*
t{char}			Till before [count]'th occurrence of {char} to the
			right.  The cursor is placed on the character left of
			{char} |inclusive|.
			{char} can be entered like with the |f| command.

							*T*
T{char}			Till after [count]'th occurrence of {char} to the
			left.  The cursor is placed on the character right of
			{char} |exclusive|.
			{char} can be entered like with the |f| command.

							*;*
;			Repeat latest f, t, F or T [count] times. See |cpo-;|

							*,*
,			Repeat latest f, t, F or T in opposite direction
			[count] times. See also |cpo-;|

==============================================================================
3. Up-down motions					*up-down-motions*

k		or					*k*
<Up>		or					*<Up>* *CTRL-P*
CTRL-P			[count] lines upward |linewise|.

j		or					*j*
<Down>		or					*<Down>*
CTRL-J		or					*CTRL-J*
<NL>		or					*<NL>* *CTRL-N*
CTRL-N			[count] lines downward |linewise|.

gk		or					*gk* *g<Up>*
g<Up>			[count] display lines upward.  |exclusive| motion.
			Differs from 'k' when lines wrap, and when used with
			an operator, because it's not linewise.  {not in Vi}

gj		or					*gj* *g<Down>*
g<Down>			[count] display lines downward.  |exclusive| motion.
			Differs from 'j' when lines wrap, and when used with
			an operator, because it's not linewise.  {not in Vi}

							*-*
-  <minus>		[count] lines upward, on the first non-blank
			character |linewise|.

+		or					*+*
CTRL-M		or					*CTRL-M* *<CR>*
<CR>			[count] lines downward, on the first non-blank
			character |linewise|.

							*_*
_  <underscore>		[count] - 1 lines downward, on the first non-blank
			character |linewise|.

							*G*
G			Goto line [count], default last line, on the first
			non-blank character |linewise|.  If 'startofline' not
			set, keep the same column.
			G is a one of |jump-motions|.

							*<C-End>*
<C-End>			Goto line [count], default last line, on the last
			character |inclusive|. {not in Vi}

<C-Home>	or					*gg* *<C-Home>*
gg			Goto line [count], default first line, on the first
			non-blank character |linewise|.  If 'startofline' not
			set, keep the same column.

							*:[range]*
:[range]		Set the cursor on the last line number in [range].
			[range] can also be just one line number, e.g., ":1"
			or ":'m".
			In contrast with |G| this command does not modify the
			|jumplist|.
							*N%*
{count}%		Go to {count} percentage in the file, on the first
			non-blank in the line |linewise|.  To compute the new
			line number this formula is used:
			    ({count} * number-of-lines + 99) / 100
			See also 'startofline' option.  {not in Vi}

:[range]go[to] [count]					*:go* *:goto* *go*
[count]go		Go to [count] byte in the buffer.  Default [count] is
			one, start of the file.  When giving [range], the
			last number in it used as the byte count.  End-of-line
			characters are counted depending on the current
			'fileformat' setting.
			Also see the |line2byte()| function, and the 'o'
			option in 'statusline'.
			{not in Vi}
			{not available when compiled without the
			|+byte_offset| feature}

These commands move to the specified line.  They stop when reaching the first
or the last line.  The first two commands put the cursor in the same column
(if possible) as it was after the last command that changed the column,
except after the "$" command, then the cursor will be put on the last
character of the line.

If "k", "-" or CTRL-P is used with a [count] and there are less than [count]
lines above the cursor and the 'cpo' option includes the "-" flag it is an
error. |cpo--|.

==============================================================================
4. Word motions						*word-motions*

<S-Right>	or					*<S-Right>* *w*
w			[count] words forward.  |exclusive| motion.

<C-Right>	or					*<C-Right>* *W*
W			[count] WORDS forward.  |exclusive| motion.

							*e*
e			Forward to the end of word [count] |inclusive|.
			Does not stop in an empty line.

							*E*
E			Forward to the end of WORD [count] |inclusive|.
			Does not stop in an empty line.

<S-Left>	or					*<S-Left>* *b*
b			[count] words backward.  |exclusive| motion.

<C-Left>	or					*<C-Left>* *B*
B			[count] WORDS backward.  |exclusive| motion.

							*ge*
ge			Backward to the end of word [count] |inclusive|.

							*gE*
gE			Backward to the end of WORD [count] |inclusive|.

These commands move over words or WORDS.
							*word*
A word consists of a sequence of letters, digits and underscores, or a
sequence of other non-blank characters, separated with white space (spaces,
tabs, <EOL>).  This can be changed with the 'iskeyword' option.  An empty line
is also considered to be a word.
							*WORD*
A WORD consists of a sequence of non-blank characters, separated with white
space.  An empty line is also considered to be a WORD.

A sequence of folded lines is counted for one word of a single character.
"w" and "W", "e" and "E" move to the start/end of the first word or WORD after
a range of folded lines.  "b" and "B" move to the start of the first word or
WORD before the fold.

Special case: "cw" and "cW" are treated like "ce" and "cE" if the cursor is
on a non-blank.  This is because "cw" is interpreted as change-word, and a
word does not include the following white space.  {Vi: "cw" when on a blank
followed by other blanks changes only the first blank; this is probably a
bug, because "dw" deletes all the blanks}

Another special case: When using the "w" motion in combination with an
operator and the last word moved over is at the end of a line, the end of
that word becomes the end of the operated text, not the first word in the
next line.

The original Vi implementation of "e" is buggy.  For example, the "e" command
will stop on the first character of a line if the previous line was empty.
But when you use "2e" this does not happen.  In Vim "ee" and "2e" are the
same, which is more logical.  However, this causes a small incompatibility
between Vi and Vim.

==============================================================================
5. Text object motions					*object-motions*

							*(*
(			[count] sentences backward.  |exclusive| motion.

							*)*
)			[count] sentences forward.  |exclusive| motion.

							*{*
{			[count] paragraphs backward.  |exclusive| motion.

							*}*
}			[count] paragraphs forward.  |exclusive| motion.

							*]]*
]]			[count] sections forward or to the next '{' in the
			first column.  When used after an operator, then also
			stops below a '}' in the first column.  |exclusive|
			Note that |exclusive-linewise| often applies.

							*][*
][			[count] sections forward or to the next '}' in the
			first column.  |exclusive|
			Note that |exclusive-linewise| often applies.

							*[[*
[[			[count] sections backward or to the previous '{' in
			the first column.  |exclusive|
			Note that |exclusive-linewise| often applies.

							*[]*
[]			[count] sections backward or to the previous '}' in
			the first column.  |exclusive|
			Note that |exclusive-linewise| often applies.

These commands move over three kinds of text objects.

							*sentence*
A sentence is defined as ending at a '.', '!' or '?' followed by either the
end of a line, or by a space or tab.  Any number of closing ')', ']', '"'
and ''' characters may appear after the '.', '!' or '?' before the spaces,
tabs or end of line.  A paragraph and section boundary is also a sentence
boundary.
If the 'J' flag is present in 'cpoptions', at least two spaces have to
follow the punctuation mark; <Tab>s are not recognized as white space.
The definition of a sentence cannot be changed.

							*paragraph*
A paragraph begins after each empty line, and also at each of a set of
paragraph macros, specified by the pairs of characters in the 'paragraphs'
option.  The default is "IPLPPPQPP TPHPLIPpLpItpplpipbp", which corresponds to
the macros ".IP", ".LP", etc.  (These are nroff macros, so the dot must be in
the first column).  A section boundary is also a paragraph boundary.
Note that a blank line (only containing white space) is NOT a paragraph
boundary.
Also note that this does not include a '{' or '}' in the first column.  When
the '{' flag is in 'cpoptions' then '{' in the first column is used as a
paragraph boundary |posix|.

							*section*
A section begins after a form-feed (<C-L>) in the first column and at each of
a set of section macros, specified by the pairs of characters in the
'sections' option.  The default is "SHNHH HUnhsh", which defines a section to
start at the nroff macros ".SH", ".NH", ".H", ".HU", ".nh" and ".sh".

The "]" and "[" commands stop at the '{' or '}' in the first column.  This is
useful to find the start or end of a function in a C program.  Note that the
first character of the command determines the search direction and the
second character the type of brace found.

If your '{' or '}' are not in the first column, and you would like to use "[["
and "]]" anyway, try these mappings: >
   :map [[ ?{<CR>w99[{
   :map ][ /}<CR>b99]}
   :map ]] j0[[%/{<CR>
   :map [] k$][%?}<CR>
[type these literally, see |<>|]

==============================================================================
6. Text object selection			*object-select* *text-objects*
						*v_a* *v_i*

This is a series of commands that can only be used while in Visual mode or
after an operator.  The commands that start with "a" select "a"n object
including white space, the commands starting with "i" select an "inner" object
without white space, or just the white space.  Thus the "inner" commands
always select less text than the "a" commands.

These commands are {not in Vi}.
These commands are not available when the |+textobjects| feature has been
disabled at compile time.
Also see `gn` and `gN`, operating on the last search pattern.

							*v_aw* *aw*
aw			"a word", select [count] words (see |word|).
			Leading or trailing white space is included, but not
			counted.
			When used in Visual linewise mode "aw" switches to
			Visual characterwise mode.

							*v_iw* *iw*
iw			"inner word", select [count] words (see |word|).
			White space between words is counted too.
			When used in Visual linewise mode "iw" switches to
			Visual characterwise mode.

							*v_aW* *aW*
aW			"a WORD", select [count] WORDs (see |WORD|).
			Leading or trailing white space is included, but not
			counted.
			When used in Visual linewise mode "aW" switches to
			Visual characterwise mode.

							*v_iW* *iW*
iW			"inner WORD", select [count] WORDs (see |WORD|).
			White space between words is counted too.
			When used in Visual linewise mode "iW" switches to
			Visual characterwise mode.

							*v_as* *as*
as			"a sentence", select [count] sentences (see
			|sentence|).
			When used in Visual mode it is made characterwise.

							*v_is* *is*
is			"inner sentence", select [count] sentences (see
			|sentence|).
			When used in Visual mode it is made characterwise.

							*v_ap* *ap*
ap			"a paragraph", select [count] paragraphs (see
			|paragraph|).
			Exception: a blank line (only containing white space)
			is also a paragraph boundary.
			When used in Visual mode it is made linewise.

							*v_ip* *ip*
ip			"inner paragraph", select [count] paragraphs (see
			|paragraph|).
			Exception: a blank line (only containing white space)
			is also a paragraph boundary.
			When used in Visual mode it is made linewise.

a]						*v_a]* *v_a[* *a]* *a[*
a[			"a [] block", select [count] '[' ']' blocks.  This
			goes backwards to the [count] unclosed '[', and finds
			the matching ']'.  The enclosed text is selected,
			including the '[' and ']'.
			When used in Visual mode it is made characterwise.

i]						*v_i]* *v_i[* *i]* *i[*
i[			"inner [] block", select [count] '[' ']' blocks.  This
			goes backwards to the [count] unclosed '[', and finds
			the matching ']'.  The enclosed text is selected,
			excluding the '[' and ']'.
			When used in Visual mode it is made characterwise.

a)							*v_a)* *a)* *a(*
a(							*vab* *v_ab* *v_a(* *ab*
ab			"a block", select [count] blocks, from "[count] [(" to
			the matching ')', including the '(' and ')' (see
			|[(|).  Does not include white space outside of the
			parenthesis.
			When used in Visual mode it is made characterwise.

i)							*v_i)* *i)* *i(*
i(							*vib* *v_ib* *v_i(* *ib*
ib			"inner block", select [count] blocks, from "[count] [("
			to the matching ')', excluding the '(' and ')' (see
			|[(|).
			When used in Visual mode it is made characterwise.

a>						*v_a>* *v_a<* *a>* *a<*
a<			"a <> block", select [count] <> blocks, from the
			[count]'th unmatched '<' backwards to the matching
			'>', including the '<' and '>'.
			When used in Visual mode it is made characterwise.

i>						*v_i>* *v_i<* *i>* *i<*
i<			"inner <> block", select [count] <> blocks, from
			the [count]'th unmatched '<' backwards to the matching
			'>', excluding the '<' and '>'.
			When used in Visual mode it is made characterwise.

						*v_at* *at*
at			"a tag block", select [count] tag blocks, from the
			[count]'th unmatched "<aaa>" backwards to the matching
			"</aaa>", including the "<aaa>" and "</aaa>".
			See |tag-blocks| about the details.
			When used in Visual mode it is made characterwise.

						*v_it* *it*
it			"inner tag block", select [count] tag blocks, from the
			[count]'th unmatched "<aaa>" backwards to the matching
			"</aaa>", excluding the "<aaa>" and "</aaa>".
			See |tag-blocks| about the details.
			When used in Visual mode it is made characterwise.

a}							*v_a}* *a}* *a{*
a{							*v_aB* *v_a{* *aB*
aB			"a Block", select [count] Blocks, from "[count] [{" to
			the matching '}', including the '{' and '}' (see
			|[{|).
			When used in Visual mode it is made characterwise.

i}							*v_i}* *i}* *i{*
i{							*v_iB* *v_i{* *iB*
iB			"inner Block", select [count] Blocks, from "[count] [{"
			to the matching '}', excluding the '{' and '}' (see
			|[{|).
			When used in Visual mode it is made characterwise.

a"							*v_aquote* *aquote*
a'							*v_a'* *a'*
a`							*v_a`* *a`*
			"a quoted string".  Selects the text from the previous
			quote until the next quote.  The 'quoteescape' option
			is used to skip escaped quotes.
			Only works within one line.
			When the cursor starts on a quote, Vim will figure out
			which quote pairs form a string by searching from the
			start of the line.
			Any trailing white space is included, unless there is
			none, then leading white space is included.
			When used in Visual mode it is made characterwise.
			Repeating this object in Visual mode another string is
			included.  A count is currently not used.

i"							*v_iquote* *iquote*
i'							*v_i'* *i'*
i`							*v_i`* *i`*
			Like a", a' and a`, but exclude the quotes and
			repeating won't extend the Visual selection.
			Special case: With a count of 2 the quotes are
			included, but no extra white space as with a"/a'/a`.

When used after an operator:
For non-block objects:
	For the "a" commands: The operator applies to the object and the white
	space after the object.  If there is no white space after the object
	or when the cursor was in the white space before the object, the white
	space before the object is included.
	For the "inner" commands: If the cursor was on the object, the
	operator applies to the object.  If the cursor was on white space, the
	operator applies to the white space.
For a block object:
	The operator applies to the block where the cursor is in, or the block
	on which the cursor is on one of the braces.  For the "inner" commands
	the surrounding braces are excluded.  For the "a" commands, the braces
	are included.

When used in Visual mode:
When start and end of the Visual area are the same (just after typing "v"):
	One object is selected, the same as for using an operator.
When start and end of the Visual area are not the same:
	For non-block objects the area is extended by one object or the white
	space up to the next object, or both for the "a" objects.  The
	direction in which this happens depends on which side of the Visual
	area the cursor is.  For the block objects the block is extended one
	level outwards.

For illustration, here is a list of delete commands, grouped from small to big
objects.  Note that for a single character and a whole line the existing vi
movement commands are used.
	"dl"	delete character (alias: "x")		|dl|
	"diw"	delete inner word			*diw*
	"daw"	delete a word				*daw*
	"diW"	delete inner WORD (see |WORD|)		*diW*
	"daW"	delete a WORD (see |WORD|)		*daW*
	"dgn"   delete the next search pattern match    *dgn*
	"dd"	delete one line				|dd|
	"dis"	delete inner sentence			*dis*
	"das"	delete a sentence			*das*
	"dib"	delete inner '(' ')' block		*dib*
	"dab"	delete a '(' ')' block			*dab*
	"dip"	delete inner paragraph			*dip*
	"dap"	delete a paragraph			*dap*
	"diB"	delete inner '{' '}' block		*diB*
	"daB"	delete a '{' '}' block			*daB*

Note the difference between using a movement command and an object.  The
movement command operates from here (cursor position) to where the movement
takes us.  When using an object the whole object is operated upon, no matter
where on the object the cursor is.  For example, compare "dw" and "daw": "dw"
deletes from the cursor position to the start of the next word, "daw" deletes
the word under the cursor and the space after or before it.


Tag blocks						*tag-blocks*

For the "it" and "at" text objects an attempt is done to select blocks between
matching tags for HTML and XML.  But since these are not completely compatible
there are a few restrictions.

The normal method is to select a <tag> until the matching </tag>.  For "at"
the tags are included, for "it" they are excluded.  But when "it" is repeated
the tags will be included (otherwise nothing would change).  Also, "it" used
on a tag block with no contents will select the leading tag.

"<aaa/>" items are skipped.  Case is ignored, also for XML where case does
matter.

In HTML it is possible to have a tag like <br> or <meta ...> without a
matching end tag.  These are ignored.

The text objects are tolerant about mistakes.  Stray end tags are ignored.

==============================================================================
7. Marks					*mark-motions* *E20* *E78*

Jumping to a mark can be done in two ways:
1. With ` (backtick):	  The cursor is positioned at the specified location
			  and the motion is |exclusive|.
2. With ' (single quote): The cursor is positioned on the first non-blank
			  character in the line of the specified location and
			  the motion is linewise.

						*m* *mark* *Mark*
m{a-zA-Z}		Set mark {a-zA-Z} at cursor position (does not move
			the cursor, this is not a motion command).

						*m'* *m`*
m'  or  m`		Set the previous context mark.  This can be jumped to
			with the "''" or "``" command (does not move the
			cursor, this is not a motion command).

						*m[* *m]*
m[  or  m]		Set the |'[| or |']| mark.  Useful when an operator is
			to be simulated by multiple commands.  (does not move
			the cursor, this is not a motion command).

						*m<* *m>*
m<  or  m>		Set the |'<| or |'>| mark.  Useful to change what the
			`gv` command selects.  (does not move the cursor, this
			is not a motion command).
			Note that the Visual mode cannot be set, only the
			start and end position.

						*:ma* *:mark* *E191*
:[range]ma[rk] {a-zA-Z'}
			Set mark {a-zA-Z'} at last line number in [range],
			column 0.  Default is cursor line.

						*:k*
:[range]k{a-zA-Z'}	Same as :mark, but the space before the mark name can
			be omitted.

						*'* *'a* *`* *`a*
'{a-z}  `{a-z}		Jump to the mark {a-z} in the current buffer.

						*'A* *'0* *`A* *`0*
'{A-Z0-9}  `{A-Z0-9}	To the mark {A-Z0-9} in the file where it was set (not
			a motion command when in another file).  {not in Vi}

						*g'* *g'a* *g`* *g`a*
g'{mark}  g`{mark}
			Jump to the {mark}, but don't change the jumplist when
			jumping within the current buffer.  Example: >
				g`"
<			jumps to the last known position in a file.  See
			$VIMRUNTIME/vimrc_example.vim.
			Also see |:keepjumps|.
			{not in Vi}

						*:marks*
:marks			List all the current marks (not a motion command).
			The |'(|, |')|, |'{| and |'}| marks are not listed.
			The first column has number zero.
			{not in Vi}
						*E283*
:marks {arg}		List the marks that are mentioned in {arg} (not a
			motion command).  For example: >
				:marks aB
<			to list marks 'a' and 'B'.  {not in Vi}

							*:delm* *:delmarks*
:delm[arks] {marks}	Delete the specified marks.  Marks that can be deleted
			include A-Z and 0-9.  You cannot delete the ' mark.
			They can be specified by giving the list of mark
			names, or with a range, separated with a dash.  Spaces
			are ignored.  Examples: >
			   :delmarks a	      deletes mark a
			   :delmarks a b 1    deletes marks a, b and 1
			   :delmarks Aa       deletes marks A and a
			   :delmarks p-z      deletes marks in the range p to z
			   :delmarks ^.[]     deletes marks ^ . [ ]
			   :delmarks \"	      deletes mark "
<			{not in Vi}

:delm[arks]!		Delete all marks for the current buffer, but not marks
			A-Z or 0-9.
			{not in Vi}

A mark is not visible in any way.  It is just a position in the file that is
remembered.  Do not confuse marks with named registers, they are totally
unrelated.

'a - 'z		lowercase marks, valid within one file
'A - 'Z		uppercase marks, also called file marks, valid between files
'0 - '9		numbered marks, set from .viminfo file

Lowercase marks 'a to 'z are remembered as long as the file remains in the
buffer list.  If you remove the file from the buffer list, all its marks are
lost.  If you delete a line that contains a mark, that mark is erased.

Lowercase marks can be used in combination with operators.  For example: "d't"
deletes the lines from the cursor position to mark 't'.  Hint: Use mark 't' for
Top, 'b' for Bottom, etc..  Lowercase marks are restored when using undo and
redo.

Uppercase marks 'A to 'Z include the file name.  {Vi: no uppercase marks} You
can use them to jump from file to file.  You can only use an uppercase mark
with an operator if the mark is in the current file.  The line number of the
mark remains correct, even if you insert/delete lines or edit another file for
a moment.  When the 'viminfo' option is not empty, uppercase marks are kept in
the .viminfo file.  See |viminfo-file-marks|.

Numbered marks '0 to '9 are quite different.  They can not be set directly.
They are only present when using a viminfo file |viminfo-file|.  Basically '0
is the location of the cursor when you last exited Vim, '1 the last but one
time, etc.  Use the "r" flag in 'viminfo' to specify files for which no
Numbered mark should be stored.  See |viminfo-file-marks|.


							*'[* *`[*
'[  `[			To the first character of the previously changed
			or yanked text.  {not in Vi}

							*']* *`]*
']  `]			To the last character of the previously changed or
			yanked text.  {not in Vi}

After executing an operator the Cursor is put at the beginning of the text
that was operated upon.  After a put command ("p" or "P") the cursor is
sometimes placed at the first inserted line and sometimes on the last inserted
character.  The four commands above put the cursor at either end.  Example:
After yanking 10 lines you want to go to the last one of them: "10Y']".  After
inserting several lines with the "p" command you want to jump to the lowest
inserted line: "p']".  This also works for text that has been inserted.

Note: After deleting text, the start and end positions are the same, except
when using blockwise Visual mode.  These commands do not work when no change
was made yet in the current file.

							*'<* *`<*
'<  `<			To the first line or character of the last selected
			Visual area in the current buffer.  For block mode it
			may also be the last character in the first line (to
			be able to define the block).  {not in Vi}.

							*'>* *`>*
'>  `>			To the last line or character of the last selected
			Visual area in the current buffer.  For block mode it
			may also be the first character of the last line (to
			be able to define the block).  Note that 'selection'
			applies, the position may be just after the Visual
			area.  {not in Vi}.

							*''* *``*
''  ``			To the position before the latest jump, or where the
			last "m'" or "m`" command was given.  Not set when the
			|:keepjumps| command modifier was used.
			Also see |restore-position|.

							*'quote* *`quote*
'"  `"			To the cursor position when last exiting the current
			buffer.  Defaults to the first character of the first
			line.  See |last-position-jump| for how to use this
			for each opened file.
			Only one position is remembered per buffer, not one
			for each window.  As long as the buffer is visible in
			a window the position won't be changed.
			{not in Vi}.

							*'^* *`^*
'^  `^			To the position where the cursor was the last time
			when Insert mode was stopped.  This is used by the
			|gi| command.  Not set when the |:keepjumps| command
			modifier was used.  {not in Vi}

							*'.* *`.*
'.  `.			To the position where the last change was made.  The
			position is at or near where the change started.
			Sometimes a command is executed as several changes,
			then the position can be near the end of what the
			command changed.  For example when inserting a word,
			the position will be on the last character.
			To jump to older changes use |g;|.
			{not in Vi}

							*'(* *`(*
'(  `(			To the start of the current sentence, like the |(|
			command.  {not in Vi}

							*')* *`)*
')  `)			To the end of the current sentence, like the |)|
			command.  {not in Vi}

							*'{* *`{*
'{  `{			To the start of the current paragraph, like the |{|
			command.  {not in Vi}

							*'}* *`}*
'}  `}			To the end of the current paragraph, like the |}|
			command.  {not in Vi}

These commands are not marks themselves, but jump to a mark:

							*]'*
]'			[count] times to next line with a lowercase mark below
			the cursor, on the first non-blank character in the
			line. {not in Vi}

							*]`*
]`			[count] times to lowercase mark after the cursor. {not
			in Vi}

							*['*
['			[count] times to previous line with a lowercase mark
			before the cursor, on the first non-blank character in
			the line. {not in Vi}

							*[`*
[`			[count] times to lowercase mark before the cursor.
			{not in Vi}


:loc[kmarks] {command}					*:loc* *:lockmarks*
			Execute {command} without adjusting marks.  This is
			useful when changing text in a way that the line count
			will be the same when the change has completed.
			WARNING: When the line count does change, marks below
			the change will keep their line number, thus move to
			another text line.
			These items will not be adjusted for deleted/inserted
			lines:
			- lower case letter marks 'a - 'z
			- upper case letter marks 'A - 'Z
			- numbered marks '0 - '9
			- last insert position '^
			- last change position '.
			- the Visual area '< and '>
			- line numbers in placed signs
			- line numbers in quickfix positions
			- positions in the |jumplist|
			- positions in the |tagstack|
			These items will still be adjusted:
			- previous context mark ''
			- the cursor position
			- the view of a window on a buffer
			- folds
			- diffs

:kee[pmarks] {command}					*:kee* *:keepmarks*
			Currently only has effect for the filter command
			|:range!|:
			- When the number of lines after filtering is equal to
			  or larger than before, all marks are kept at the
			  same line number.
			- When the number of lines decreases, the marks in the
			  lines that disappeared are deleted.
			In any case the marks below the filtered text have
			their line numbers adjusted, thus stick to the text,
			as usual.
			When the 'R' flag is missing from 'cpoptions' this has
			the same effect as using ":keepmarks".

							*:keepj* *:keepjumps*
:keepj[umps] {command}
			Moving around in {command} does not change the |''|,
			|'.| and |'^| marks, the |jumplist| or the
			|changelist|.
			Useful when making a change or inserting text
			automatically and the user doesn't want to go to this
			position.  E.g., when updating a "Last change"
			timestamp in the first line: >

				:let lnum = line(".")
				:keepjumps normal gg
				:call SetLastChange()
				:keepjumps exe "normal " . lnum . "G"
<
			Note that ":keepjumps" must be used for every command.
			When invoking a function the commands in that function
			can still change the jumplist.  Also, for
			":keepjumps exe 'command '" the "command" won't keep
			jumps.  Instead use: ":exe 'keepjumps command'"

==============================================================================
8. Jumps					*jump-motions*

A "jump" is one of the following commands: "'", "`", "G", "/", "?", "n",
"N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and
the commands that start editing a new file.  If you make the cursor "jump"
with one of these commands, the position of the cursor before the jump is
remembered.  You can return to that position with the "''" and "``" command,
unless the line containing that position was changed or deleted.

							*CTRL-O*
CTRL-O			Go to [count] Older cursor position in jump list
			(not a motion command).
			{not in Vi}
			{not available without the |+jumplist| feature}

<Tab>		or					*CTRL-I* *<Tab>*
CTRL-I			Go to [count] newer cursor position in jump list
			(not a motion command).
			{not in Vi}
			{not available without the |+jumplist| feature}

							*:ju* *:jumps*
:ju[mps]		Print the jump list (not a motion command).
			{not in Vi}
			{not available without the |+jumplist| feature}

							*:cle* *:clearjumps*
:cle[arjumps]		Clear the jump list of the current window.
			{not in Vi}
			{not available without the |+jumplist| feature}

							*jumplist*
Jumps are remembered in a jump list.  With the CTRL-O and CTRL-I command you
can go to cursor positions before older jumps, and back again.  Thus you can
move up and down the list.  There is a separate jump list for each window.
The maximum number of entries is fixed at 100.
{not available without the |+jumplist| feature}

For example, after three jump commands you have this jump list:

  jump line  col file/text ~
    3	  1    0 some text ~
    2	 70    0 another line ~
    1  1154   23 end. ~
 > ~

The "file/text" column shows the file name, or the text at the jump if it is
in the current file (an indent is removed and a long line is truncated to fit
in the window).

You are currently in line 1167.  If you then use the CTRL-O command, the
cursor is put in line 1154.  This results in:

  jump line  col file/text ~
    2	  1    0 some text ~
    1	 70    0 another line ~
 >  0  1154   23 end. ~
    1  1167    0 foo bar ~

The pointer will be set at the last used jump position.  The next CTRL-O
command will use the entry above it, the next CTRL-I command will use the
entry below it.  If the pointer is below the last entry, this indicates that
you did not use a CTRL-I or CTRL-O before.  In this case the CTRL-O command
will cause the cursor position to be added to the jump list, so you can get
back to the position before the CTRL-O.  In this case this is line 1167.

With more CTRL-O commands you will go to lines 70 and 1.  If you use CTRL-I
you can go back to 1154 and 1167 again.  Note that the number in the "jump"
column indicates the count for the CTRL-O or CTRL-I command that takes you to
this position.

If you use a jump command, the current line number is inserted at the end of
the jump list.  If the same line was already in the jump list, it is removed.
The result is that when repeating CTRL-O you will get back to old positions
only once.

When the |:keepjumps| command modifier is used, jumps are not stored in the
jumplist.  Jumps are also not stored in other cases, e.g., in a |:global|
command.  You can explicitly add a jump by setting the ' mark with "m'".  Note
that calling setpos() does not do this.

After the CTRL-O command that got you into line 1154 you could give another
jump command (e.g., "G").  The jump list would then become:

  jump line  col file/text ~
    4	  1    0 some text ~
    3	 70    0 another line ~
    2  1167    0 foo bar ~
    1  1154   23 end. ~
 > ~

The line numbers will be adjusted for deleted and inserted lines.  This fails
if you stop editing a file without writing, like with ":n!".

When you split a window, the jumplist will be copied to the new window.

If you have included the ' item in the 'viminfo' option the jumplist will be
stored in the viminfo file and restored when starting Vim.


CHANGE LIST JUMPS			*changelist* *change-list-jumps* *E664*

When making a change the cursor position is remembered.  One position is
remembered for every change that can be undone, unless it is close to a
previous change.  Two commands can be used to jump to positions of changes,
also those that have been undone:

							*g;* *E662*
g;			Go to [count] older position in change list.
			If [count] is larger than the number of older change
			positions go to the oldest change.
			If there is no older change an error message is given.
			(not a motion command)
			{not in Vi}
			{not available without the |+jumplist| feature}

							*g,* *E663*
g,			Go to [count] newer cursor position in change list.
			Just like |g;| but in the opposite direction.
			(not a motion command)
			{not in Vi}
			{not available without the |+jumplist| feature}

When using a count you jump as far back or forward as possible.  Thus you can
use "999g;" to go to the first change for which the position is still
remembered.  The number of entries in the change list is fixed and is the same
as for the |jumplist|.

When two undo-able changes are in the same line and at a column position less
than 'textwidth' apart only the last one is remembered.  This avoids that a
sequence of small changes in a line, for example "xxxxx", adds many positions
to the change list.  When 'textwidth' is zero 'wrapmargin' is used.  When that
also isn't set a fixed number of 79 is used.  Detail: For the computations
bytes are used, not characters, to avoid a speed penalty (this only matters
for multi-byte encodings).

Note that when text has been inserted or deleted the cursor position might be
a bit different from the position of the change.  Especially when lines have
been deleted.

When the |:keepjumps| command modifier is used the position of a change is not
remembered.

							*:changes*
:changes		Print the change list.  A ">" character indicates the
			current position.  Just after a change it is below the
			newest entry, indicating that "g;" takes you to the
			newest entry position.  The first column indicates the
			count needed to take you to this position.  Example:

				change line  col text ~
				    3     9    8 bla bla bla
				    2    11   57 foo is a bar
				    1    14   54 the latest changed line
				>

			The "3g;" command takes you to line 9.  Then the
			output of ":changes is:

				change line  col text ~
				>   0     9    8 bla bla bla
				    1    11   57 foo is a bar
				    2    14   54 the latest changed line

			Now you can use "g," to go to line 11 and "2g," to go
			to line 14.

==============================================================================
9. Various motions				*various-motions*

							*%*
%			Find the next item in this line after or under the
			cursor and jump to its match. |inclusive| motion.
			Items can be:
			([{}])		parenthesis or (curly/square) brackets
					(this can be changed with the
					'matchpairs' option)
			/* */		start or end of C-style comment
			#if, #ifdef, #else, #elif, #endif
					C preprocessor conditionals (when the
					cursor is on the # or no ([{
					following)
			For other items the matchit plugin can be used, see
			|matchit-install|.  This plugin also helps to skip
			matches in comments.

			When 'cpoptions' contains "M" |cpo-M| backslashes
			before parens and braces are ignored.  Without "M" the
			number of backslashes matters: an even number doesn't
			match with an odd number.  Thus in "( \) )" and "\( (
			\)" the first and last parenthesis match.

			When the '%' character is not present in 'cpoptions'
			|cpo-%|, parens and braces inside double quotes are
			ignored, unless the number of parens/braces in a line
			is uneven and this line and the previous one does not
			end in a backslash.  '(', '{', '[', ']', '}' and ')'
			are also ignored (parens and braces inside single
			quotes).  Note that this works fine for C, but not for
			Perl, where single quotes are used for strings.

			Nothing special is done for matches in comments.  You
			can either use the matchit plugin |matchit-install| or
			put quotes around matches.

			No count is allowed, {count}% jumps to a line {count}
			percentage down the file |N%|.  Using '%' on
			#if/#else/#endif makes the movement linewise.

						*[(*
[(			go to [count] previous unmatched '('.
			|exclusive| motion. {not in Vi}

						*[{*
[{			go to [count] previous unmatched '{'.
			|exclusive| motion. {not in Vi}

						*])*
])			go to [count] next unmatched ')'.
			|exclusive| motion. {not in Vi}

						*]}*
]}			go to [count] next unmatched '}'.
			|exclusive| motion. {not in Vi}

The above four commands can be used to go to the start or end of the current
code block.  It is like doing "%" on the '(', ')', '{' or '}' at the other
end of the code block, but you can do this from anywhere in the code block.
Very useful for C programs.  Example: When standing on "case x:", "[{" will
bring you back to the switch statement.

						*]m*
]m			Go to [count] next start of a method (for Java or
			similar structured language).  When not before the
			start of a method, jump to the start or end of the
			class.  When no '{' is found after the cursor, this is
			an error.  |exclusive| motion. {not in Vi}
						*]M*
]M			Go to [count] next end of a method (for Java or
			similar structured language).  When not before the end
			of a method, jump to the start or end of the class.
			When no '}' is found after the cursor, this is an
			error. |exclusive| motion. {not in Vi}
						*[m*
[m			Go to [count] previous start of a method (for Java or
			similar structured language).  When not after the
			start of a method, jump to the start or end of the
			class.  When no '{' is found before the cursor this is
			an error. |exclusive| motion. {not in Vi}
						*[M*
[M			Go to [count] previous end of a method (for Java or
			similar structured language).  When not after the
			end of a method, jump to the start or end of the
			class.  When no '}' is found before the cursor this is
			an error. |exclusive| motion. {not in Vi}

The above two commands assume that the file contains a class with methods.
The class definition is surrounded in '{' and '}'.  Each method in the class
is also surrounded with '{' and '}'.  This applies to the Java language.  The
file looks like this: >

	// comment
	class foo {
		int method_one() {
			body_one();
		}
		int method_two() {
			body_two();
		}
	}
Starting with the cursor on "body_two()", using "[m" will jump to the '{' at
the start of "method_two()" (obviously this is much more useful when the
method is long!).  Using "2[m" will jump to the start of "method_one()".
Using "3[m" will jump to the start of the class.

						*[#*
[#			go to [count] previous unmatched "#if" or "#else".
			|exclusive| motion. {not in Vi}

						*]#*
]#			go to [count] next unmatched "#else" or "#endif".
			|exclusive| motion. {not in Vi}

These two commands work in C programs that contain #if/#else/#endif
constructs.  It brings you to the start or end of the #if/#else/#endif where
the current line is included.  You can then use "%" to go to the matching line.

						*[star* *[/*
[*  or  [/		go to [count] previous start of a C comment "/*".
			|exclusive| motion. {not in Vi}

						*]star* *]/*
]*  or  ]/		go to [count] next end of a C comment "*/".
			|exclusive| motion. {not in Vi}


						*H*
H			To line [count] from top (Home) of window (default:
			first line on the window) on the first non-blank
			character |linewise|.  See also 'startofline' option.
			Cursor is adjusted for 'scrolloff' option, unless an
			operator is pending, in which case the text may
			scroll.  E.g. "yH" yanks from the first visible line
			until the cursor line (inclusive).

						*M*
M			To Middle line of window, on the first non-blank
			character |linewise|.  See also 'startofline' option.

						*L*
L			To line [count] from bottom of window (default: Last
			line on the window) on the first non-blank character
			|linewise|.  See also 'startofline' option.
			Cursor is adjusted for 'scrolloff' option, unless an
			operator is pending, in which case the text may
			scroll.  E.g. "yL" yanks from the cursor to the last
			visible line.

<LeftMouse>		Moves to the position on the screen where the mouse
			click is |exclusive|.  See also |<LeftMouse>|.  If the
			position is in a status line, that window is made the
			active window and the cursor is not moved.  {not in Vi}

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���SUSUvim80/doc/visual.txtnu�[���*visual.txt*    For Vim version 8.0.  Last change: 2017 Sep 02


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Visual mode				*Visual* *Visual-mode* *visual-mode*

Visual mode is a flexible and easy way to select a piece of text for an
operator.  It is the only way to select a block of text.

This is introduced in section |04.4| of the user manual.

1. Using Visual mode			|visual-use|
2. Starting and stopping Visual mode	|visual-start|
3. Changing the Visual area		|visual-change|
4. Operating on the Visual area		|visual-operators|
5. Blockwise operators			|blockwise-operators|
6. Repeating				|visual-repeat|
7. Examples				|visual-examples|
8. Select mode				|Select-mode|

{Vi has no Visual mode, the name "visual" is used for Normal mode, to
distinguish it from Ex mode}
{Since Vim 7.4.200 the |+visual| feature is always included}

==============================================================================
1. Using Visual mode					*visual-use*

Using Visual mode consists of three parts:
1. Mark the start of the text with "v", "V" or CTRL-V.
   The character under the cursor will be used as the start.
2. Move to the end of the text.
   The text from the start of the Visual mode up to and including the
   character under the cursor is highlighted.
3. Type an operator command.
   The highlighted characters will be operated upon.

The 'highlight' option can be used to set the display mode to use for
highlighting in Visual mode.
The 'virtualedit' option can be used to allow positioning the cursor to
positions where there is no actual character.

The highlighted text normally includes the character under the cursor.
However, when the 'selection' option is set to "exclusive" and the cursor is
after the Visual area, the character under the cursor is not included.

With "v" the text before the start position and after the end position will
not be highlighted.  However, all uppercase and non-alpha operators, except
"~" and "U", will work on whole lines anyway.  See the list of operators
below.

							*visual-block*
With CTRL-V (blockwise Visual mode) the highlighted text will be a rectangle
between start position and the cursor.  However, some operators work on whole
lines anyway (see the list below).  The change and substitute operators will
delete the highlighted text and then start insertion at the top left
position.

==============================================================================
2. Starting and stopping Visual mode			*visual-start*

						*v* *characterwise-visual*
[count]v		Start Visual mode per character.
			With [count] select the same number of characters or
			lines as used for the last Visual operation, but at
			the current cursor position, multiplied by [count].
			When the previous Visual operation was on a block both
			the width and height of the block are multiplied by
			[count].
			When there was no previous Visual operation [count]
			characters are selected.  This is like moving the
			cursor right N * [count] characters.  One less when
			'selection' is not "exclusive".

						*V* *linewise-visual*
[count]V		Start Visual mode linewise.
			With [count] select the same number of lines as used
			for the last Visual operation, but at the current
			cursor position, multiplied by [count].  When there
			was no previous Visual operation [count] lines are
			selected.

						*CTRL-V* *blockwise-visual*
[count]CTRL-V		Start Visual mode blockwise.  Note: Under Windows
			CTRL-V could be mapped to paste text, it doesn't work
			to start Visual mode then, see |CTRL-V-alternative|.
			[count] is used as with `v` above.

If you use <Esc>, click the left mouse button or use any command that
does a jump to another buffer while in Visual mode, the highlighting stops
and no text is affected.  Also when you hit "v" in characterwise Visual mode,
"CTRL-V" in blockwise Visual mode or "V" in linewise Visual mode.  If you hit
CTRL-Z the highlighting stops and the editor is suspended or a new shell is
started |CTRL-Z|.

	      new mode after typing:		*v_v* *v_CTRL-V* *v_V*
old mode	     "v"	      "CTRL-V"		     "V"	~

Normal		    Visual	   blockwise Visual	  linewise Visual
Visual		    Normal	   blockwise Visual	  linewise Visual
blockwise Visual    Visual	   Normal		  linewise Visual
linewise Visual     Visual	   blockwise Visual	  Normal

						*gv* *v_gv* *reselect-Visual*
gv			Start Visual mode with the same area as the previous
			area and the same mode.
			In Visual mode the current and the previous Visual
			area are exchanged.
			After using "p" or "P" in Visual mode the text that
			was put will be selected.

								*gn* *v_gn*
gn			Search forward for the last used search pattern, like
			with `n`, and start Visual mode to select the match.
			If the cursor is on the match, visually selects it.
			If an operator is pending, operates on the match.
			E.g., "dgn" deletes the text of the next match.
			If Visual mode is active, extends the selection
			until the end of the next match.

								*gN* *v_gN*
gN			Like |gn| but searches backward, like with `N`.

							*<LeftMouse>*
<LeftMouse>		Set the current cursor position.  If Visual mode is
			active it is stopped.  Only when 'mouse' option is
			contains 'n' or 'a'.  If the position is within 'so'
			lines from the last line on the screen the text is
			scrolled up.  If the position is within 'so' lines from
			the first line on the screen the text is scrolled
			down.

							*<RightMouse>*
<RightMouse>		Start Visual mode if it is not active.  The text from
			the cursor position to the position of the click is
			highlighted.  If Visual mode was already active move
			the start or end of the highlighted text, which ever
			is closest, to the position of the click.  Only when
			'mouse' option contains 'n' or 'a'.

			Note: when 'mousemodel' is set to "popup",
			<S-LeftMouse> has to be used instead of <RightMouse>.

							*<LeftRelease>*
<LeftRelease>		This works like a <LeftMouse>, if it is not at
			the same position as <LeftMouse>.  In an older version
			of xterm you won't see the selected area until the
			button is released, unless there is access to the
			display where the xterm is running (via the DISPLAY
			environment variable or the -display argument).  Only
			when 'mouse' option contains 'n' or 'a'.

If Visual mode is not active and the "v", "V" or CTRL-V is preceded with a
count, the size of the previously highlighted area is used for a start.  You
can then move the end of the highlighted area and give an operator.  The type
of the old area is used (character, line or blockwise).
- Linewise Visual mode: The number of lines is multiplied with the count.
- Blockwise Visual mode: The number of lines and columns is multiplied with
  the count.
- Normal Visual mode within one line: The number of characters is multiplied
  with the count.
- Normal Visual mode with several lines: The number of lines is multiplied
  with the count, in the last line the same number of characters is used as
  in the last line in the previously highlighted area.
The start of the text is the Cursor position.  If the "$" command was used as
one of the last commands to extend the highlighted text, the area will be
extended to the rightmost column of the longest line.

If you want to highlight exactly the same area as the last time, you can use
"gv" |gv| |v_gv|.

							*v_<Esc>*
<Esc>			In Visual mode: Stop Visual mode.

							*v_CTRL-C*
CTRL-C			In Visual mode: Stop Visual mode.  When insert mode is
			pending (the mode message shows
			"-- (insert) VISUAL --"), it is also stopped.

==============================================================================
3. Changing the Visual area				*visual-change*

							*v_o*
o			Go to Other end of highlighted text: The current
			cursor position becomes the start of the highlighted
			text and the cursor is moved to the other end of the
			highlighted text.  The highlighted area remains the
			same.

							*v_O*
O			Go to Other end of highlighted text.  This is like
			"o", but in Visual block mode the cursor moves to the
			other corner in the same line.  When the corner is at
			a character that occupies more than one position on
			the screen (e.g., a <Tab>), the highlighted text may
			change.

							*v_$*
When the "$" command is used with blockwise Visual mode, the right end of the
highlighted text will be determined by the longest highlighted line.  This
stops when a motion command is used that does not move straight up or down.

For moving the end of the block many commands can be used, but you cannot
use Ex commands, commands that make changes or abandon the file.  Commands
(starting with) ".", "&", CTRL-^, "Z", CTRL-], CTRL-T, CTRL-R, CTRL-I
and CTRL-O cause a beep and Visual mode continues.

When switching to another window on the same buffer, the cursor position in
that window is adjusted, so that the same Visual area is still selected.  This
is especially useful to view the start of the Visual area in one window, and
the end in another.  You can then use <RightMouse> (or <S-LeftMouse> when
'mousemodel' is "popup") to drag either end of the Visual area.

==============================================================================
4. Operating on the Visual area				*visual-operators*

The operators that can be used are:
	~	switch case					|v_~|
	d	delete						|v_d|
	c	change (4)					|v_c|
	y	yank						|v_y|
	>	shift right (4)					|v_>|
	<	shift left (4)					|v_<|
	!	filter through external command (1)		|v_!|
	=	filter through 'equalprg' option command (1)	|v_=|
	gq	format lines to 'textwidth' length (1)		|v_gq|

The objects that can be used are:
	aw	a word (with white space)			|v_aw|
	iw	inner word					|v_iw|
	aW	a WORD (with white space)			|v_aW|
	iW	inner WORD					|v_iW|
	as	a sentence (with white space)			|v_as|
	is	inner sentence					|v_is|
	ap	a paragraph (with white space)			|v_ap|
	ip	inner paragraph					|v_ip|
	ab	a () block (with parenthesis)			|v_ab|
	ib	inner () block					|v_ib|
	aB	a {} block (with braces)			|v_aB|
	iB	inner {} block					|v_iB|
	at	a <tag> </tag> block (with tags)		|v_at|
	it	inner <tag> </tag> block			|v_it|
	a<	a <> block (with <>)				|v_a<|
	i<	inner <> block					|v_i<|
	a[	a [] block (with [])				|v_a[|
	i[	inner [] block					|v_i[|
	a"	a double quoted string (with quotes)		|v_aquote|
	i"	inner double quoted string			|v_iquote|
	a'	a single quoted string (with quotes)		|v_a'|
	i'	inner simple quoted string			|v_i'|
	a`	a string in backticks (with backticks)		|v_a`|
	i`	inner string in backticks			|v_i`|

Additionally the following commands can be used:
	:	start Ex command for highlighted lines (1)	|v_:|
	r	change (4)					|v_r|
	s	change						|v_s|
	C	change (2)(4)					|v_C|
	S	change (2)					|v_S|
	R	change (2)					|v_R|
	x	delete						|v_x|
	D	delete (3)					|v_D|
	X	delete (2)					|v_X|
	Y	yank (2)					|v_Y|
	p	put						|v_p|
	J	join (1)					|v_J|
	U	make uppercase					|v_U|
	u	make lowercase					|v_u|
	^]	find tag					|v_CTRL-]|
	I	block insert					|v_b_I|
	A	block append					|v_b_A|

(1): Always whole lines, see |:visual_example|.
(2): Whole lines when not using CTRL-V.
(3): Whole lines when not using CTRL-V, delete until the end of the line when
     using CTRL-V.
(4): When using CTRL-V operates on the block only.

Note that the ":vmap" command can be used to specifically map keys in Visual
mode.  For example, if you would like the "/" command not to extend the Visual
area, but instead take the highlighted text and search for that: >
	:vmap / y/<C-R>"<CR>
(In the <> notation |<>|, when typing it you should type it literally; you
need to remove the 'B' and '<' flags from 'cpoptions'.)

If you want to give a register name using the """ command, do this just before
typing the operator character: "v{move-around}"xd".

If you want to give a count to the command, do this just before typing the
operator character: "v{move-around}3>" (move lines 3 indents to the right).

							*{move-around}*
The {move-around} is any sequence of movement commands.  Note the difference
with {motion}, which is only ONE movement command.

Another way to operate on the Visual area is using the |/\%V| item in a
pattern.  For example, to replace all '(' in the Visual area with '#': >

	:'<,'>s/\%V(/#/g

Note that the "'<,'>" will appear automatically when you press ":" in Visual
mode.

==============================================================================
5. Blockwise operators					*blockwise-operators*

{not available when compiled without the |+visualextra| feature}

Reminder: Use 'virtualedit' to be able to select blocks that start or end
after the end of a line or halfway a tab.

Visual-block Insert						*v_b_I*
With a blockwise selection, I{string}<ESC> will insert {string} at the start
of block on every line of the block, provided that the line extends into the
block.  Thus lines that are short will remain unmodified.  TABs are split to
retain visual columns.  Works only for adding text to a line, not for
deletions.  See |v_b_I_example|.

Visual-block Append						*v_b_A*
With a blockwise selection, A{string}<ESC> will append {string} to the end of
block on every line of the block.  There is some differing behavior where the
block RHS is not straight, due to different line lengths:

1. Block was created with <C-v>$
    In this case the string is appended to the end of each line.
2. Block was created with <C-v>{move-around}
    In this case the string is appended to the end of the block on each line,
    and whitespace is inserted to pad to the end-of-block column.
See |v_b_A_example|.
Note: "I" and "A" behave differently for lines that don't extend into the
selected block.  This was done intentionally, so that you can do it the way
you want.
Works only for adding text to a line, not for deletions.

Visual-block change						*v_b_c*
All selected text in the block will be replaced by the same text string.  When
using "c" the selected text is deleted and Insert mode started.  You can then
enter text (without a line break).  When you hit <Esc>, the same string is
inserted in all previously selected lines.

Visual-block Change						*v_b_C*
Like using "c", but the selection is extended until the end of the line for
all lines.

								*v_b_<*
Visual-block Shift						*v_b_>*
The block is shifted by 'shiftwidth'.  The RHS of the block is irrelevant.  The
LHS of the block determines the point from which to apply a right shift, and
padding includes TABs optimally according to 'ts' and 'et'.  The LHS of the
block determines the point upto which to shift left.
See |v_b_>_example|.
See |v_b_<_example|.

Visual-block Replace						*v_b_r*
Every screen char in the highlighted region is replaced with the same char, ie
TABs are split and the virtual whitespace is replaced, maintaining screen
layout.
See |v_b_r_example|.


==============================================================================
6. Repeating						*visual-repeat*

When repeating a Visual mode operator, the operator will be applied to the
same amount of text as the last time:
- Linewise Visual mode: The same number of lines.
- Blockwise Visual mode: The same number of lines and columns.
- Normal Visual mode within one line: The same number of characters.
- Normal Visual mode with several lines: The same number of lines, in the
  last line the same number of characters as in the last line the last time.
The start of the text is the Cursor position.  If the "$" command was used as
one of the last commands to extend the highlighted text, the repeating will
be applied up to the rightmost column of the longest line.


==============================================================================
7. Examples						*visual-examples*

							*:visual_example*
Currently the ":" command works on whole lines only.  When you select part of
a line, doing something like ":!date" will replace the whole line.  If you
want only part of the line to be replaced you will have to make a mapping for
it.  In a future release ":" may work on partial lines.

Here is an example, to replace the selected text with the output of "date": >
	:vmap _a <Esc>`>a<CR><Esc>`<i<CR><Esc>!!date<CR>kJJ

(In the <> notation |<>|, when typing it you should type it literally; you
need to remove the 'B' and '<' flags from 'cpoptions')

What this does is:
<Esc>		stop Visual mode
`>		go to the end of the Visual area
a<CR><Esc>	break the line after the Visual area
`<		jump to the start of the Visual area
i<CR><Esc>	break the line before the Visual area
!!date<CR>	filter the Visual text through date
kJJ		Join the lines back together

							*visual-search*
Here is an idea for a mapping that makes it possible to do a search for the
selected text: >
	:vmap X y/<C-R>"<CR>

(In the <> notation |<>|, when typing it you should type it literally; you
need to remove the 'B' and '<' flags from 'cpoptions')

Note that special characters (like '.' and '*') will cause problems.

Visual-block Examples					*blockwise-examples*
With the following text, I will indicate the commands to produce the block and
the results below.  In all cases, the cursor begins on the 'a' in the first
line of the test text.
The following modeline settings are assumed ":ts=8:sw=4:".

It will be helpful to
:set hls
/<TAB>
where <TAB> is a real TAB.  This helps visualise the operations.

The test text is:

abcdefghijklmnopqrstuvwxyz
abc		defghijklmnopqrstuvwxyz
abcdef  ghi		jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

1. fo<C-v>3jISTRING<ESC>					*v_b_I_example*

abcdefghijklmnSTRINGopqrstuvwxyz
abc	      STRING  defghijklmnopqrstuvwxyz
abcdef  ghi   STRING	jklmnopqrstuvwxyz
abcdefghijklmnSTRINGopqrstuvwxyz

2. fo<C-v>3j$ASTRING<ESC>					*v_b_A_example*

abcdefghijklmnopqrstuvwxyzSTRING
abc		defghijklmnopqrstuvwxyzSTRING
abcdef  ghi		jklmnopqrstuvwxyzSTRING
abcdefghijklmnopqrstuvwxyzSTRING

3. fo<C-v>3j3l<..						*v_b_<_example*

abcdefghijklmnopqrstuvwxyz
abc	      defghijklmnopqrstuvwxyz
abcdef  ghi   jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

4. fo<C-v>3j>..							*v_b_>_example*

abcdefghijklmn		  opqrstuvwxyz
abc			    defghijklmnopqrstuvwxyz
abcdef  ghi			    jklmnopqrstuvwxyz
abcdefghijklmn		  opqrstuvwxyz

5. fo<C-v>5l3jrX						*v_b_r_example*

abcdefghijklmnXXXXXXuvwxyz
abc	      XXXXXXhijklmnopqrstuvwxyz
abcdef  ghi   XXXXXX    jklmnopqrstuvwxyz
abcdefghijklmnXXXXXXuvwxyz

==============================================================================
8. Select mode						*Select* *Select-mode*

Select mode looks like Visual mode, but the commands accepted are quite
different.  This resembles the selection mode in Microsoft Windows.
When the 'showmode' option is set, "-- SELECT --" is shown in the last line.

Entering Select mode:
- Using the mouse to select an area, and 'selectmode' contains "mouse".
  'mouse' must also contain a flag for the current mode.
- Using a non-printable movement command, with the Shift key pressed, and
  'selectmode' contains "key".  For example: <S-Left> and <S-End>.  'keymodel'
  must also contain "startsel".
- Using "v", "V" or CTRL-V command, and 'selectmode' contains "cmd".
- Using "gh", "gH" or "g_CTRL-H" command in Normal mode.
- From Visual mode, press CTRL-G.			*v_CTRL-G*

Commands in Select mode:
- Printable characters, <NL> and <CR> cause the selection to be deleted, and
  Vim enters Insert mode.  The typed character is inserted.
- Non-printable movement commands, with the Shift key pressed, extend the
  selection.  'keymodel' must include "startsel".
- Non-printable movement commands, with the Shift key NOT pressed, stop Select
  mode.  'keymodel' must include "stopsel".
- ESC stops Select mode.
- CTRL-O switches to Visual mode for the duration of one command. *v_CTRL-O*
- CTRL-G switches to Visual mode.

Otherwise, typed characters are handled as in Visual mode.

When using an operator in Select mode, and the selection is linewise, the
selected lines are operated upon, but like in characterwise selection.  For
example, when a whole line is deleted, it can later be pasted halfway a line.


Mappings and menus in Select mode.			*Select-mode-mapping*

When mappings and menus are defined with the |:vmap| or |:vmenu| command they
work both in Visual mode and in Select mode.  When these are used in Select
mode Vim automatically switches to Visual mode, so that the same behavior as
in Visual mode is effective.  If you don't want this use |:xmap| or |:smap|.

Users will expect printable characters to replace the selected area.
Therefore avoid mapping printable characters in Select mode.  Or use
|:sunmap|  after |:map| and |:vmap| to remove it for Select mode.

After the mapping or menu finishes, the selection is enabled again and Select
mode entered, unless the selected area was deleted, another buffer became
the current one or the window layout was changed.

When a character was typed that causes the selection to be deleted and Insert
mode started, Insert mode mappings are applied to this character.  This may
cause some confusion, because it means Insert mode mappings apply to a
character typed in Select mode.  Language mappings apply as well.

							*gV* *v_gV*
gV			Avoid the automatic reselection of the Visual area
			after a Select mode mapping or menu has finished.
			Put this just before the end of the mapping or menu.
			At least it should be after any operations on the
			selection.

							*gh*
gh			Start Select mode, characterwise.  This is like "v",
			but starts Select mode instead of Visual mode.
			Mnemonic: "get highlighted".

							*gH*
gH			Start Select mode, linewise.  This is like "V",
			but starts Select mode instead of Visual mode.
			Mnemonic: "get Highlighted".

							*g_CTRL-H*
g CTRL-H		Start Select mode, blockwise.  This is like CTRL-V,
			but starts Select mode instead of Visual mode.
			Mnemonic: "get Highlighted".

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��h�h�vim80/doc/term.txtnu�[���*term.txt*      For Vim version 8.0.  Last change: 2017 Oct 14


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Terminal information					*terminal-info*

Vim uses information about the terminal you are using to fill the screen and
recognize what keys you hit.  If this information is not correct, the screen
may be messed up or keys may not be recognized.  The actions which have to be
performed on the screen are accomplished by outputting a string of
characters.  Special keys produce a string of characters.  These strings are
stored in the terminal options, see |terminal-options|.

NOTE: Most of this is not used when running the |GUI|.

1. Startup			|startup-terminal|
2. Terminal options		|terminal-options|
3. Window size			|window-size|
4. Slow and fast terminals	|slow-fast-terminal|
5. Using the mouse		|mouse-using|

==============================================================================
1. Startup						*startup-terminal*

When Vim is started a default terminal type is assumed.  For the Amiga this is
a standard CLI window, for MS-DOS the pc terminal, for Unix an ansi terminal.
A few other terminal types are always available, see below |builtin-terms|.

You can give the terminal name with the '-T' Vim argument.  If it is not given
Vim will try to get the name from the TERM environment variable.

				*termcap* *terminfo* *E557* *E558* *E559*
On Unix the terminfo database or termcap file is used.  This is referred to as
"termcap" in all the documentation.  At compile time, when running configure,
the choice whether to use terminfo or termcap is done automatically.  When
running Vim the output of ":version" will show |+terminfo| if terminfo is
used.  Also see |xterm-screens|.

On non-Unix systems a termcap is only available if Vim was compiled with
TERMCAP defined.

					*builtin-terms* *builtin_terms*
Which builtin terminals are available depends on a few defines in feature.h,
which need to be set at compile time:
    define		output of ":version"	terminals builtin	~
NO_BUILTIN_TCAPS	-builtin_terms		none
SOME_BUILTIN_TCAPS	+builtin_terms		most common ones (default)
ALL_BUILTIN_TCAPS	++builtin_terms		all available

You can see a list of available builtin terminals with ":set term=xxx" (when
not running the GUI).  Also see |+builtin_terms|.

If the termcap code is included Vim will try to get the strings for the
terminal you are using from the termcap file and the builtin termcaps.  Both
are always used, if an entry for the terminal you are using is present.  Which
one is used first depends on the 'ttybuiltin' option:

'ttybuiltin' on		1: builtin termcap	2: external termcap
'ttybuiltin' off	1: external termcap	2: builtin termcap

If an option is missing in one of them, it will be obtained from the other
one.  If an option is present in both, the one first encountered is used.

Which external termcap file is used varies from system to system and may
depend on the environment variables "TERMCAP" and "TERMPATH".  See "man
tgetent".

Settings depending on terminal			*term-dependent-settings*

If you want to set options or mappings, depending on the terminal name, you
can do this best in your .vimrc.  Example: >

   if &term == "xterm"
     ... xterm maps and settings ...
   elseif &term =~ "vt10."
     ... vt100, vt102 maps and settings ...
   endif
<
						*raw-terminal-mode*
For normal editing the terminal will be put into "raw" mode.  The strings
defined with 't_ti' and 't_ks' will be sent to the terminal.  Normally this
puts the terminal in a state where the termcap codes are valid and activates
the cursor and function keys.  When Vim exits the terminal will be put back
into the mode it was before Vim started.  The strings defined with 't_te' and
't_ke' will be sent to the terminal.  On the Amiga, with commands that execute
an external command (e.g., "!!"), the terminal will be put into Normal mode
for a moment.  This means that you can stop the output to the screen by
hitting a printing key.  Output resumes when you hit <BS>.

						*xterm-bracketed-paste*
When the 't_BE' option is set then 't_BE' will be sent to the
terminal when entering "raw" mode and 't_BD' when leaving "raw" mode.  The
terminal is then expected to put 't_PS' before pasted text and 't_PE' after
pasted text.  This way Vim can separate text that is pasted from characters
that are typed.  The pasted text is handled like when the middle mouse button
is used, it is inserted literally and not interpreted as commands.

When the cursor is in the first column, the pasted text will be inserted
before it.  Otherwise the pasted text is appended after the cursor position.
This means one cannot paste after the first column.  Unfortunately Vim does
not have a way to tell where the mouse pointer was.

Note that in some situations Vim will not recognize the bracketed paste and
you will get the raw text.  In other situations Vim will only get the first
pasted character and drop the rest, e.g. when using the "r" command.  If you
have a problem with this, disable bracketed paste by putting this in your
.vimrc: >
	set t_BE=
If this is done while Vim is running the 't_BD' will be sent to the terminal
to disable bracketed paste.

							*cs7-problem*
Note: If the terminal settings are changed after running Vim, you might have
an illegal combination of settings.  This has been reported on Solaris 2.5
with "stty cs8 parenb", which is restored as "stty cs7 parenb".  Use
"stty cs8 -parenb -istrip" instead, this is restored correctly.

Some termcap entries are wrong in the sense that after sending 't_ks' the
cursor keys send codes different from the codes defined in the termcap.  To
avoid this you can set 't_ks' (and 't_ke') to empty strings.  This must be
done during initialization (see |initialization|), otherwise it's too late.

Some termcap entries assume that the highest bit is always reset.  For
example: The cursor-up entry for the Amiga could be ":ku=\E[A:".  But the
Amiga really sends "\233A".  This works fine if the highest bit is reset,
e.g., when using an Amiga over a serial line.  If the cursor keys don't work,
try the entry ":ku=\233A:".

Some termcap entries have the entry ":ku=\E[A:".  But the Amiga really sends
"\233A".  On output "\E[" and "\233" are often equivalent, on input they
aren't.  You will have to change the termcap entry, or change the key code with
the :set command to fix this.

Many cursor key codes start with an <Esc>.  Vim must find out if this is a
single hit of the <Esc> key or the start of a cursor key sequence.  It waits
for a next character to arrive.  If it does not arrive within one second a
single <Esc> is assumed.  On very slow systems this may fail, causing cursor
keys not to work sometimes.  If you discover this problem reset the 'timeout'
option.  Vim will wait for the next character to arrive after an <Esc>.  If
you want to enter a single <Esc> you must type it twice.  Resetting the
'esckeys' option avoids this problem in Insert mode, but you lose the
possibility to use cursor and function keys in Insert mode.

On the Amiga the recognition of window resizing is activated only when the
terminal name is "amiga" or "builtin_amiga".

Some terminals have confusing codes for the cursor keys.  The televideo 925 is
such a terminal.  It sends a CTRL-H for cursor-left.  This would make it
impossible to distinguish a backspace and cursor-left.  To avoid this problem
CTRL-H is never recognized as cursor-left.

					*vt100-cursor-keys* *xterm-cursor-keys*
Other terminals (e.g., vt100 and xterm) have cursor keys that send <Esc>OA,
<Esc>OB, etc.  Unfortunately these are valid commands in insert mode: Stop
insert, Open a new line above the new one, start inserting 'A', 'B', etc.
Instead of performing these commands Vim will erroneously recognize this typed
key sequence as a cursor key movement.  To avoid this and make Vim do what you
want in either case you could use these settings: >
	:set notimeout		" don't timeout on mappings
	:set ttimeout		" do timeout on terminal key codes
	:set timeoutlen=100	" timeout after 100 msec
This requires the key-codes to be sent within 100 msec in order to recognize
them as a cursor key.  When you type you normally are not that fast, so they
are recognized as individual typed commands, even though Vim receives the same
sequence of bytes.

				*vt100-function-keys* *xterm-function-keys*
An xterm can send function keys F1 to F4 in two modes: vt100 compatible or
not.  Because Vim may not know what the xterm is sending, both types of keys
are recognized.  The same happens for the <Home> and <End> keys.
			normal			vt100 ~
	<F1>	t_k1	<Esc>[11~	<xF1>	<Esc>OP	    *<xF1>-xterm*
	<F2>	t_k2	<Esc>[12~	<xF2>	<Esc>OQ	    *<xF2>-xterm*
	<F3>	t_k3	<Esc>[13~	<xF3>	<Esc>OR	    *<xF3>-xterm*
	<F4>	t_k4	<Esc>[14~	<xF4>	<Esc>OS	    *<xF4>-xterm*
	<Home>	t_kh	<Esc>[7~	<xHome>	<Esc>OH	    *<xHome>-xterm*
	<End>	t_@7	<Esc>[4~	<xEnd>	<Esc>OF	    *<xEnd>-xterm*

When Vim starts, <xF1> is mapped to <F1>, <xF2> to <F2> etc.  This means that
by default both codes do the same thing.  If you make a mapping for <xF2>,
because your terminal does have two keys, the default mapping is overwritten,
thus you can use the <F2> and <xF2> keys for something different.

							*xterm-shifted-keys*
Newer versions of xterm support shifted function keys and special keys.  Vim
recognizes most of them.  Use ":set termcap" to check which are supported and
what the codes are.  Mostly these are not in a termcap, they are only
supported by the builtin_xterm termcap.

							*xterm-modifier-keys*
Newer versions of xterm support Alt and Ctrl for most function keys.  To avoid
having to add all combinations of Alt, Ctrl and Shift for every key a special
sequence is recognized at the end of a termcap entry: ";*X".  The "X" can be
any character, often '~' is used.  The ";*" stands for an optional modifier
argument.  ";2" is Shift, ";3" is Alt, ";5" is Ctrl and ";9" is Meta (when
it's different from Alt).  They can be combined.  Examples: >
	:set <F8>=^[[19;*~
	:set <Home>=^[[1;*H
Another speciality about these codes is that they are not overwritten by
another code.  That is to avoid that the codes obtained from xterm directly
|t_RV| overwrite them.
							*xterm-scroll-region*
The default termcap entry for xterm on Sun and other platforms does not
contain the entry for scroll regions.  Add ":cs=\E[%i%d;%dr:" to the xterm
entry in /etc/termcap and everything should work.

							*xterm-end-home-keys*
On some systems (at least on FreeBSD with XFree86 3.1.2) the codes that the
<End> and <Home> keys send contain a <Nul> character.  To make these keys send
the proper key code, add these lines to your ~/.Xdefaults file:

*VT100.Translations:		#override \n\
		<Key>Home: string("0x1b") string("[7~") \n\
		<Key>End: string("0x1b") string("[8~")

						*xterm-8bit* *xterm-8-bit*
Xterm can be run in a mode where it uses 8-bit escape sequences.  The CSI code
is used instead of <Esc>[.  The advantage is that an <Esc> can quickly be
recognized in Insert mode, because it can't be confused with the start of a
special key.
For the builtin termcap entries, Vim checks if the 'term' option contains
"8bit" anywhere.  It then uses 8-bit characters for the termcap entries, the
mouse and a few other things.  You would normally set $TERM in your shell to
"xterm-8bit" and Vim picks this up and adjusts to the 8-bit setting
automatically.
When Vim receives a response to the |t_RV| (request version) sequence and it
starts with CSI, it assumes that the terminal is in 8-bit mode and will
convert all key sequences to their 8-bit variants.

==============================================================================
2. Terminal options		*terminal-options* *termcap-options* *E436*

The terminal options can be set just like normal options.  But they are not
shown with the ":set all" command.  Instead use ":set termcap".

It is always possible to change individual strings by setting the
appropriate option.  For example: >
	:set t_ce=^V^[[K	(CTRL-V, <Esc>, [, K)

{Vi: no terminal options.  You have to exit Vi, edit the termcap entry and
try again}

The options are listed below.  The associated termcap code is always equal to
the last two characters of the option name.  Only one termcap code is
required: Cursor motion, 't_cm'.

The options 't_da', 't_db', 't_ms', 't_xs', 't_xn' represent flags in the
termcap.  When the termcap flag is present, the option will be set to "y".
But any non-empty string means that the flag is set.  An empty string means
that the flag is not set.  't_CS' works like this too, but it isn't a termcap
flag.

OUTPUT CODES						*terminal-output-codes*
	option	meaning	~

	t_AB	set background color (ANSI)			*t_AB* *'t_AB'*
	t_AF	set foreground color (ANSI)			*t_AF* *'t_AF'*
	t_AL	add number of blank lines			*t_AL* *'t_AL'*
	t_al	add new blank line				*t_al* *'t_al'*
	t_bc	backspace character				*t_bc* *'t_bc'*
	t_cd	clear to end of screen				*t_cd* *'t_cd'*
	t_ce	clear to end of line				*t_ce* *'t_ce'*
	t_cl	clear screen					*t_cl* *'t_cl'*
	t_cm	cursor motion (required!)		  *E437* *t_cm* *'t_cm'*
	t_Co	number of colors				*t_Co* *'t_Co'*
	t_CS	if non-empty, cursor relative to scroll region	*t_CS* *'t_CS'*
	t_cs	define scrolling region				*t_cs* *'t_cs'*
	t_CV	define vertical scrolling region		*t_CV* *'t_CV'*
	t_da	if non-empty, lines from above scroll down	*t_da* *'t_da'*
	t_db	if non-empty, lines from below scroll up	*t_db* *'t_db'*
	t_DL	delete number of lines				*t_DL* *'t_DL'*
	t_dl	delete line					*t_dl* *'t_dl'*
	t_fs	set window title end (from status line)		*t_fs* *'t_fs'*
	t_ke	exit "keypad transmit" mode			*t_ke* *'t_ke'*
	t_ks	start "keypad transmit" mode			*t_ks* *'t_ks'*
	t_le	move cursor one char left			*t_le* *'t_le'*
	t_mb	blinking mode					*t_mb* *'t_mb'*
	t_md	bold mode					*t_md* *'t_md'*
	t_me	Normal mode (undoes t_mr, t_mb, t_md and color)	*t_me* *'t_me'*
	t_mr	reverse (invert) mode				*t_mr* *'t_mr'*
								*t_ms* *'t_ms'*
	t_ms	if non-empty, cursor can be moved in standout/inverse mode
	t_nd	non destructive space character			*t_nd* *'t_nd'*
	t_op	reset to original color pair			*t_op* *'t_op'*
	t_RI	cursor number of chars right			*t_RI* *'t_RI'*
	t_Sb	set background color				*t_Sb* *'t_Sb'*
	t_Sf	set foreground color				*t_Sf* *'t_Sf'*
	t_se	standout end					*t_se* *'t_se'*
	t_so	standout mode					*t_so* *'t_so'*
	t_sr	scroll reverse (backward)			*t_sr* *'t_sr'*
	t_te	out of "termcap" mode				*t_te* *'t_te'*
	t_ti	put terminal in "termcap" mode			*t_ti* *'t_ti'*
	t_ts	set window title start (to status line)		*t_ts* *'t_ts'*
	t_ue	underline end					*t_ue* *'t_ue'*
	t_us	underline mode					*t_us* *'t_us'*
	t_ut	clearing uses the current background color	*t_ut* *'t_ut'*
	t_vb	visual bell					*t_vb* *'t_vb'*
	t_ve	cursor visible					*t_ve* *'t_ve'*
	t_vi	cursor invisible				*t_vi* *'t_vi'*
	t_vs	cursor very visible (blink)			*t_vs* *'t_vs'*
								*t_xs* *'t_xs'*
	t_xs	if non-empty, standout not erased by overwriting (hpterm)
								*t_xn* *'t_xn'*
	t_xn	if non-empty, writing a character at the last screen cell
		does not cause scrolling
	t_ZH	italics mode					*t_ZH* *'t_ZH'*
	t_ZR	italics end					*t_ZR* *'t_ZR'*

Added by Vim (there are no standard codes for these):
	t_Ce	undercurl end					*t_Ce* *'t_Ce'*
	t_Cs	undercurl mode					*t_Cs* *'t_Cs'*
	t_Te	strikethrough end				*t_Te* *'t_Te'*
	t_Ts	strikethrough mode				*t_Ts* *'t_Ts'*
	t_IS	set icon text start				*t_IS* *'t_IS'*
	t_IE	set icon text end				*t_IE* *'t_IE'*
	t_WP	set window position (Y, X) in pixels		*t_WP* *'t_WP'*
	t_GP	get window position (Y, X) in pixels		*t_GP* *'t_GP'*
	t_WS	set window size (height, width in cells)	*t_WS* *'t_WS'*
	t_VS	cursor normally visible (no blink)		*t_VS* *'t_VS'*
	t_SI	start insert mode (bar cursor shape)		*t_SI* *'t_SI'*
	t_SR	start replace mode (underline cursor shape)	*t_SR* *'t_SR'*
	t_EI	end insert or replace mode (block cursor shape)	*t_EI* *'t_EI'*
		|termcap-cursor-shape|
	t_RV	request terminal version string (for xterm)	*t_RV* *'t_RV'*
		|xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
	t_u7	request cursor position (for xterm)		*t_u7* *'t_u7'*
		see |'ambiwidth'|
	t_RF	request terminal foreground color		*t_RF* *'t_RF'*
	t_RB	request terminal background color		*t_RB* *'t_RB'*
	t_8f	set foreground color (R, G, B)			*t_8f* *'t_8f'*
		|xterm-true-color|
	t_8b	set background color (R, G, B)			*t_8b* *'t_8b'*
		|xterm-true-color|
	t_BE	enable bracketed paste mode			*t_BE* *'t_BE'*
		|xterm-bracketed-paste|
	t_BD	disable bracketed paste mode			*t_BD* *'t_BD'*
		|xterm-bracketed-paste|
	t_SC	set cursor color start				*t_SC* *'t_SC'*
	t_EC	set cursor color end				*t_EC* *'t_EC'*
	t_SH	set cursor shape				*t_SH* *'t_SH'*
	t_RC	request terminal cursor blinking		*t_RC* *'t_RC'*
	t_RS	request terminal cursor style			*t_RS* *'t_RS'*

Some codes have a start, middle and end part.  The start and end are defined
by the termcap option, the middle part is text.
	set title text:     t_ts {title text} t_fs
	set icon text:      t_IS {icon text} t_IE
	set cursor color:   t_SC  {color name}  t_EC

t_SH must take one argument:
	0, 1 or none  	blinking block cursor
	2	      	block cursor
	3		blinking underline cursor
	4		underline cursor
	5		blinking vertical bar cursor
	6		vertical bar cursor

t_RS is sent only if the response to t_RV has been received.  It is not used
on Mac OS when Terminal.app could be recognized from the termresponse.


KEY CODES						*terminal-key-codes*
Note: Use the <> form if possible

	option	name		meaning	~

	t_ku	<Up>		arrow up			*t_ku* *'t_ku'*
	t_kd	<Down>		arrow down			*t_kd* *'t_kd'*
	t_kr	<Right>		arrow right			*t_kr* *'t_kr'*
	t_kl	<Left>		arrow left			*t_kl* *'t_kl'*
		<xUp>		alternate arrow up		*<xUp>*
		<xDown>		alternate arrow down		*<xDown>*
		<xRight>	alternate arrow right		*<xRight>*
		<xLeft>		alternate arrow left		*<xLeft>*
		<S-Up>		shift arrow up
		<S-Down>	shift arrow down
	t_%i	<S-Right>	shift arrow right		*t_%i* *'t_%i'*
	t_#4	<S-Left>	shift arrow left		*t_#4* *'t_#4'*
	t_k1	<F1>		function key 1			*t_k1* *'t_k1'*
		<xF1>		alternate F1			*<xF1>*
	t_k2	<F2>		function key 2		*<F2>*	*t_k2* *'t_k2'*
		<xF2>		alternate F2			*<xF2>*
	t_k3	<F3>		function key 3		*<F3>*	*t_k3* *'t_k3'*
		<xF3>		alternate F3			*<xF3>*
	t_k4	<F4>		function key 4		*<F4>*	*t_k4* *'t_k4'*
		<xF4>		alternate F4			*<xF4>*
	t_k5	<F5>		function key 5		*<F5>*	*t_k5* *'t_k5'*
	t_k6	<F6>		function key 6		*<F6>*	*t_k6* *'t_k6'*
	t_k7	<F7>		function key 7		*<F7>*	*t_k7* *'t_k7'*
	t_k8	<F8>		function key 8		*<F8>*	*t_k8* *'t_k8'*
	t_k9	<F9>		function key 9		*<F9>*	*t_k9* *'t_k9'*
	t_k;	<F10>		function key 10		*<F10>*	*t_k;* *'t_k;'*
	t_F1	<F11>		function key 11		*<F11>*	*t_F1* *'t_F1'*
	t_F2	<F12>		function key 12		*<F12>*	*t_F2* *'t_F2'*
	t_F3	<F13>		function key 13		*<F13>*	*t_F3* *'t_F3'*
	t_F4	<F14>		function key 14		*<F14>*	*t_F4* *'t_F4'*
	t_F5	<F15>		function key 15		*<F15>*	*t_F5* *'t_F5'*
	t_F6	<F16>		function key 16		*<F16>*	*t_F6* *'t_F6'*
	t_F7	<F17>		function key 17		*<F17>*	*t_F7* *'t_F7'*
	t_F8	<F18>		function key 18		*<F18>*	*t_F8* *'t_F8'*
	t_F9	<F19>		function key 19		*<F19>*	*t_F9* *'t_F9'*
		<S-F1>		shifted function key 1
		<S-xF1>		alternate <S-F1>		*<S-xF1>*
		<S-F2>		shifted function key 2		*<S-F2>*
		<S-xF2>		alternate <S-F2>		*<S-xF2>*
		<S-F3>		shifted function key 3		*<S-F3>*
		<S-xF3>		alternate <S-F3>		*<S-xF3>*
		<S-F4>		shifted function key 4		*<S-F4>*
		<S-xF4>		alternate <S-F4>		*<S-xF4>*
		<S-F5>		shifted function key 5		*<S-F5>*
		<S-F6>		shifted function key 6		*<S-F6>*
		<S-F7>		shifted function key 7		*<S-F7>*
		<S-F8>		shifted function key 8		*<S-F8>*
		<S-F9>		shifted function key 9		*<S-F9>*
		<S-F10>		shifted function key 10		*<S-F10>*
		<S-F11>		shifted function key 11		*<S-F11>*
		<S-F12>		shifted function key 12		*<S-F12>*
	t_%1	<Help>		help key			*t_%1* *'t_%1'*
	t_&8	<Undo>		undo key			*t_&8* *'t_&8'*
	t_kI	<Insert>	insert key			*t_kI* *'t_kI'*
	t_kD	<Del>		delete key			*t_kD* *'t_kD'*
	t_kb	<BS>		backspace key			*t_kb* *'t_kb'*
	t_kB	<S-Tab>		back-tab (shift-tab)  *<S-Tab>*	*t_kB* *'t_kB'*
	t_kh	<Home>		home key			*t_kh* *'t_kh'*
	t_#2	<S-Home>	shifted home key     *<S-Home>*	*t_#2* *'t_#2'*
		<xHome>		alternate home key		*<xHome>*
	t_@7	<End>		end key				*t_@7* *'t_@7'*
	t_*7	<S-End>		shifted end key	*<S-End>* *t_star7* *'t_star7'*
		<xEnd>		alternate end key		*<xEnd>*
	t_kP	<PageUp>	page-up key			*t_kP* *'t_kP'*
	t_kN	<PageDown>	page-down key			*t_kN* *'t_kN'*
	t_K1	<kHome>		keypad home key			*t_K1* *'t_K1'*
	t_K4	<kEnd>		keypad end key			*t_K4* *'t_K4'*
	t_K3	<kPageUp>	keypad page-up key		*t_K3* *'t_K3'*
	t_K5	<kPageDown>	keypad page-down key		*t_K5* *'t_K5'*
	t_K6	<kPlus>		keypad plus key	      *<kPlus>*	*t_K6* *'t_K6'*
	t_K7	<kMinus>	keypad minus key     *<kMinus>*	*t_K7* *'t_K7'*
	t_K8	<kDivide>	keypad divide	    *<kDivide>*	*t_K8* *'t_K8'*
	t_K9	<kMultiply>	keypad multiply   *<kMultiply>*	*t_K9* *'t_K9'*
	t_KA	<kEnter>	keypad enter key     *<kEnter>*	*t_KA* *'t_KA'*
	t_KB	<kPoint>	keypad decimal point *<kPoint>*	*t_KB* *'t_KB'*
	t_KC	<k0>		keypad 0		 *<k0>*	*t_KC* *'t_KC'*
	t_KD	<k1>		keypad 1		 *<k1>*	*t_KD* *'t_KD'*
	t_KE	<k2>		keypad 2		 *<k2>*	*t_KE* *'t_KE'*
	t_KF	<k3>		keypad 3		 *<k3>*	*t_KF* *'t_KF'*
	t_KG	<k4>		keypad 4		 *<k4>*	*t_KG* *'t_KG'*
	t_KH	<k5>		keypad 5		 *<k5>*	*t_KH* *'t_KH'*
	t_KI	<k6>		keypad 6		 *<k6>*	*t_KI* *'t_KI'*
	t_KJ	<k7>		keypad 7		 *<k7>*	*t_KJ* *'t_KJ'*
	t_KK	<k8>		keypad 8		 *<k8>*	*t_KK* *'t_KK'*
	t_KL	<k9>		keypad 9		 *<k9>*	*t_KL* *'t_KL'*
		<Mouse>		leader of mouse code		*<Mouse>*
								*t_PS* *'t_PS'*
	t_PS	start of bracketed paste |xterm-bracketed-paste|
	t_PE	end of bracketed paste |xterm-bracketed-paste|  *t_PE* *'t_PE'*

Note about t_so and t_mr: When the termcap entry "so" is not present the
entry for "mr" is used.  And vice versa.  The same is done for "se" and "me".
If your terminal supports both inversion and standout mode, you can see two
different modes.  If your terminal supports only one of the modes, both will
look the same.

							*keypad-comma*
The keypad keys, when they are not mapped, behave like the equivalent normal
key.  There is one exception: if you have a comma on the keypad instead of a
decimal point, Vim will use a dot anyway.  Use these mappings to fix that: >
	:noremap <kPoint> ,
	:noremap! <kPoint> ,
<							*xterm-codes*
There is a special trick to obtain the key codes which currently only works
for xterm.  When |t_RV| is defined and a response is received which indicates
an xterm with patchlevel 141 or higher, Vim uses special escape sequences to
request the key codes directly from the xterm.  The responses are used to
adjust the various t_ codes.  This avoids the problem that the xterm can
produce different codes, depending on the mode it is in (8-bit, VT102,
VT220, etc.).  The result is that codes like <xF1> are no longer needed.
Note: This is only done on startup.  If the xterm options are changed after
Vim has started, the escape sequences may not be recognized anymore.

							*xterm-true-color*
Vim supports using true colors in the terminal (taken from |highlight-guifg|
and |highlight-guibg|), given that the terminal supports this. To make this 
work the 'termguicolors' option needs to be set.
See https://gist.github.com/XVilka/8346728 for a list of terminals that
support true colors.

Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
and |t_8b| options explicitly. Default values of these options are
"^[[38;2;%lu;%lu;%lum" and "^[[48;2;%lu;%lu;%lum" respectively, but it is only
set when `$TERM` is `xterm`. Some terminals accept the same sequences, but
with all semicolons replaced by colons (this is actually more compatible, but
less widely supported): >
	 let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
	 let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"

These options contain printf strings, with |printf()| (actually, its C
equivalent hence `l` modifier) invoked with the t_ option value and three
unsigned long integers that may have any value between 0 and 255 (inclusive)
representing red, green and blue colors respectively.

							*xterm-resize*
Window resizing with xterm only works if the allowWindowOps resource is
enabled.  On some systems and versions of xterm it's disabled by default
because someone thought it would be a security issue.  It's not clear if this
is actually the case.

To overrule the default, put this line in your ~/.Xdefaults or
~/.Xresources:
>
	XTerm*allowWindowOps: 		true

And run "xrdb -merge .Xresources" to make it effective.  You can check the
value with the context menu (right mouse button while CTRL key is pressed),
there should be a tick at allow-window-ops.

							*termcap-colors*
Note about colors: The 't_Co' option tells Vim the number of colors available.
When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
If one of these is not available, 't_Sb' and 't_Sf' are used.  't_me' is used
to reset to the default colors.

				*termcap-cursor-shape* *termcap-cursor-color*
When Vim enters Insert mode the 't_SI' escape sequence is sent.  When Vim
enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise
't_SI' is sent.  When leaving Insert mode or Replace mode 't_EI' is used. This
can be used to change the shape or color of the cursor in Insert or Replace
mode. These are not standard termcap/terminfo entries, you need to set them
yourself.
Example for an xterm, this changes the color of the cursor: >
    if &term =~ "xterm"
	let &t_SI = "\<Esc>]12;purple\x7"
	let &t_SR = "\<Esc>]12;red\x7"
	let &t_EI = "\<Esc>]12;blue\x7"
    endif
NOTE: When Vim exits the shape for Normal mode will remain.  The shape from
before Vim started will not be restored.
{not available when compiled without the |+cursorshape| feature}

							*termcap-title*
The 't_ts' and 't_fs' options are used to set the window title if the terminal
allows title setting via sending strings.  They are sent before and after the
title string, respectively.  Similar 't_IS' and 't_IE'  are used to set the
icon text.  These are Vim-internal extensions of the Unix termcap, so they
cannot be obtained from an external termcap.  However, the builtin termcap
contains suitable entries for xterm and iris-ansi, so you don't need to set
them here.
							*hpterm*
If inversion or other highlighting does not work correctly, try setting the
't_xs' option to a non-empty string.  This makes the 't_ce' code be used to
remove highlighting from a line.  This is required for "hpterm".  Setting the
'weirdinvert' option has the same effect as making 't_xs' non-empty, and vice
versa.

							*scroll-region*
Some termcaps do not include an entry for 'cs' (scroll region), although the
terminal does support it.  For example: xterm on a Sun.  You can use the
builtin_xterm or define t_cs yourself.  For example: >
	:set t_cs=^V^[[%i%d;%dr
Where ^V is CTRL-V and ^[ is <Esc>.

The vertical scroll region t_CV is not a standard termcap code.  Vim uses it
internally in the GUI.  But it can also be defined for a terminal, if you can
find one that supports it.  The two arguments are the left and right column of
the region which to restrict the scrolling to.  Just like t_cs defines the top
and bottom lines.  Defining t_CV will make scrolling in vertically split
windows a lot faster.  Don't set t_CV when t_da or t_db is set (text isn't
cleared when scrolling).

Unfortunately it is not possible to deduce from the termcap how cursor
positioning should be done when using a scrolling region: Relative to the
beginning of the screen or relative to the beginning of the scrolling region.
Most terminals use the first method.  A known exception is the MS-DOS console
(pcterm).  The 't_CS' option should be set to any string when cursor
positioning is relative to the start of the scrolling region.  It should be
set to an empty string otherwise.  It defaults to "yes" when 'term' is
"pcterm".

Note for xterm users: The shifted cursor keys normally don't work.  You can
	make them work with the xmodmap command and some mappings in Vim.

	Give these commands in the xterm:
		xmodmap -e "keysym Up = Up F13"
		xmodmap -e "keysym Down = Down F16"
		xmodmap -e "keysym Left = Left F18"
		xmodmap -e "keysym Right = Right F19"

	And use these mappings in Vim:
		:map <t_F3> <S-Up>
		:map! <t_F3> <S-Up>
		:map <t_F6> <S-Down>
		:map! <t_F6> <S-Down>
		:map <t_F8> <S-Left>
		:map! <t_F8> <S-Left>
		:map <t_F9> <S-Right>
		:map! <t_F9> <S-Right>

Instead of, say, <S-Up> you can use any other command that you want to use the
shift-cursor-up key for.  (Note: To help people that have a Sun keyboard with
left side keys F14 is not used because it is confused with the undo key; F15
is not used, because it does a window-to-front; F17 is not used, because it
closes the window.  On other systems you can probably use them.)

==============================================================================
3. Window size						*window-size*

[This is about the size of the whole window Vim is using, not a window that is
created with the ":split" command.]

If you are running Vim on an Amiga and the terminal name is "amiga" or
"builtin_amiga", the amiga-specific window resizing will be enabled.  On Unix
systems three methods are tried to get the window size:

- an ioctl call (TIOCGSIZE or TIOCGWINSZ, depends on your system)
- the environment variables "LINES" and "COLUMNS"
- from the termcap entries "li" and "co"

If everything fails a default size of 24 lines and 80 columns is assumed.  If
a window-resize signal is received the size will be set again.  If the window
size is wrong you can use the 'lines' and 'columns' options to set the
correct values.

One command can be used to set the screen size:

						*:mod* *:mode* *E359*
:mod[e] [mode]

Without argument this only detects the screen size and redraws the screen.
With MS-DOS it is possible to switch screen mode.  [mode] can be one of these
values:
	"bw40"		40 columns black&white
	"c40"		40 columns color
	"bw80"		80 columns black&white
	"c80"		80 columns color (most people use this)
	"mono"		80 columns monochrome
	"c4350"		43 or 50 lines EGA/VGA mode
	number		mode number to use, depends on your video card

==============================================================================
4. Slow and fast terminals			*slow-fast-terminal*
						*slow-terminal*

If you have a fast terminal you may like to set the 'ruler' option.  The
cursor position is shown in the status line.  If you are using horizontal
scrolling ('wrap' option off) consider setting 'sidescroll' to a small
number.

If you have a slow terminal you may want to reset the 'showcmd' option.
The command characters will not be shown in the status line.  If the terminal
scrolls very slowly, set the 'scrolljump' to 5 or so.  If the cursor is moved
off the screen (e.g., with "j") Vim will scroll 5 lines at a time.  Another
possibility is to reduce the number of lines that Vim uses with the command
"z{height}<CR>".

If the characters from the terminal are arriving with more than 1 second
between them you might want to set the 'timeout' and/or 'ttimeout' option.
See the "Options" chapter |options|.

If your terminal does not support a scrolling region, but it does support
insert/delete line commands, scrolling with multiple windows may make the
lines jump up and down.  If you don't want this set the 'ttyfast' option.
This will redraw the window instead of scroll it.

If your terminal scrolls very slowly, but redrawing is not slow, set the
'ttyscroll' option to a small number, e.g., 3.  This will make Vim redraw the
screen instead of scrolling, when there are more than 3 lines to be scrolled.

If you are using a color terminal that is slow, use this command: >
	hi NonText cterm=NONE ctermfg=NONE
This avoids that spaces are sent when they have different attributes.  On most
terminals you can't see this anyway.

If you are using Vim over a slow serial line, you might want to try running
Vim inside the "screen" program.  Screen will optimize the terminal I/O quite
a bit.

If you are testing termcap options, but you cannot see what is happening,
you might want to set the 'writedelay' option.  When non-zero, one character
is sent to the terminal at a time (does not work for MS-DOS).  This makes the
screen updating a lot slower, making it possible to see what is happening.

==============================================================================
5. Using the mouse					*mouse-using*

This section is about using the mouse on a terminal or a terminal window.  How
to use the mouse in a GUI window is explained in |gui-mouse|.  For scrolling
with a mouse wheel see |scroll-mouse-wheel|.

Don't forget to enable the mouse with this command: >
	:set mouse=a
Otherwise Vim won't recognize the mouse in all modes (See 'mouse').

Currently the mouse is supported for Unix in an xterm window, in a *BSD
console with |sysmouse|, in a Linux console (with GPM |gpm-mouse|), for
MS-DOS and in a Windows console.
Mouse clicks can be used to position the cursor, select an area and paste.

These characters in the 'mouse' option tell in which situations the mouse will
be used by Vim:
		n	Normal mode
		v	Visual mode
		i	Insert mode
		c	Command-line mode
		h	all previous modes when in a help file
		a	all previous modes
		r	for |hit-enter| prompt

The default for 'mouse' is empty, the mouse is not used.  Normally you would
do: >
	:set mouse=a
to start using the mouse (this is equivalent to setting 'mouse' to "nvich").
If you only want to use the mouse in a few modes or also want to use it for
the two questions you will have to concatenate the letters for those modes.
For example: >
	:set mouse=nv
Will make the mouse work in Normal mode and Visual mode. >
	:set mouse=h
Will make the mouse work in help files only (so you can use "g<LeftMouse>" to
jump to tags).

Whether the selection that is started with the mouse is in Visual mode or
Select mode depends on whether "mouse" is included in the 'selectmode'
option.

In an xterm, with the currently active mode included in the 'mouse' option,
normal mouse clicks are used by Vim, mouse clicks with the shift or ctrl key
pressed go to the xterm.  With the currently active mode not included in
'mouse' all mouse clicks go to the xterm.

							*xterm-clipboard*
In the Athena and Motif GUI versions, when running in a terminal and there is
access to the X-server (DISPLAY is set), the copy and paste will behave like
in the GUI.  If not, the middle mouse button will insert the unnamed register.
In that case, here is how you copy and paste a piece of text:

Copy/paste with the mouse and Visual mode ('mouse' option must be set, see
above):
1. Press left mouse button on first letter of text, move mouse pointer to last
   letter of the text and release the button.  This will start Visual mode and
   highlight the selected area.
2. Press "y" to yank the Visual text in the unnamed register.
3. Click the left mouse button at the insert position.
4. Click the middle mouse button.

Shortcut: If the insert position is on the screen at the same time as the
Visual text, you can do 2, 3 and 4 all in one: Click the middle mouse button
at the insert position.

Note: When the |-X| command line argument is used, Vim will not connect to the
X server and copy/paste to the X clipboard (selection) will not work.  Use the
shift key with the mouse buttons to let the xterm do the selection.

							*xterm-command-server*
When the X-server clipboard is available, the command server described in
|x11-clientserver| can be enabled with the --servername command line argument.

							*xterm-copy-paste*
NOTE: In some (older) xterms, it's not possible to move the cursor past column
95 or 223.  This is an xterm problem, not Vim's.  Get a newer xterm
|color-xterm|.  Also see |'ttymouse'|.

Copy/paste in xterm with (current mode NOT included in 'mouse'):
1. Press left mouse button on first letter of text, move mouse pointer to last
   letter of the text and release the button.
2. Use normal Vim commands to put the cursor at the insert position.
3. Press "a" to start Insert mode.
4. Click the middle mouse button.
5. Press ESC to end Insert mode.
(The same can be done with anything in 'mouse' if you keep the shift key
pressed while using the mouse.)

Note: if you lose the 8th bit when pasting (special characters are translated
into other characters), you may have to do "stty cs8 -istrip -parenb" in your
shell before starting Vim.

Thus in an xterm the shift and ctrl keys cannot be used with the mouse.  Mouse
commands requiring the CTRL modifier can be simulated by typing the "g" key
before using the mouse:
	"g<LeftMouse>"	is "<C-LeftMouse>	(jump to tag under mouse click)
	"g<RightMouse>" is "<C-RightMouse>	("CTRL-T")

					*mouse-mode-table* *mouse-overview*
A short overview of what the mouse buttons do, when 'mousemodel' is "extend":

Normal Mode:
event	      position	   selection	  change  action	~
	       cursor			  window		~
<LeftMouse>     yes	     end	    yes
<C-LeftMouse>   yes	     end	    yes	   "CTRL-]" (2)
<S-LeftMouse>   yes	  no change	    yes	   "*" (2)    *<S-LeftMouse>*
<LeftDrag>      yes	start or extend (1) no		      *<LeftDrag>*
<LeftRelease>   yes	start or extend (1) no
<MiddleMouse>   yes	  if not active     no	   put
<MiddleMouse>   yes	  if active	    no	   yank and put
<RightMouse>    yes	start or extend     yes
<A-RightMouse>  yes start or extend blockw. yes		      *<A-RightMouse>*
<S-RightMouse>  yes	   no change	    yes	   "#" (2)    *<S-RightMouse>*
<C-RightMouse>  no	   no change	    no	   "CTRL-T"
<RightDrag>     yes	    extend	    no		      *<RightDrag>*
<RightRelease>  yes	    extend	    no		      *<RightRelease>*

Insert or Replace Mode:
event	      position	   selection	  change  action	~
	       cursor			  window		~
<LeftMouse>     yes     (cannot be active)  yes
<C-LeftMouse>   yes     (cannot be active)  yes	   "CTRL-O^]" (2)
<S-LeftMouse>   yes     (cannot be active)  yes	   "CTRL-O*" (2)
<LeftDrag>      yes     start or extend (1) no	   like CTRL-O (1)
<LeftRelease>   yes     start or extend (1) no	   like CTRL-O (1)
<MiddleMouse>   no      (cannot be active)  no	   put register
<RightMouse>    yes     start or extend	    yes	   like CTRL-O
<A-RightMouse>  yes start or extend blockw. yes
<S-RightMouse>  yes     (cannot be active)  yes	   "CTRL-O#" (2)
<C-RightMouse>  no	(cannot be active)  no	   "CTRL-O CTRL-T"

In a help window:
event	      position	   selection	  change  action	~
	       cursor			  window		~
<2-LeftMouse>   yes     (cannot be active)  no	   "^]" (jump to help tag)

When 'mousemodel' is "popup", these are different:

Normal Mode:
event	      position	   selection	  change  action	~
	       cursor			  window		~
<S-LeftMouse>	yes	start or extend (1) no
<A-LeftMouse>   yes start or extend blockw. no		      *<A-LeftMouse>*
<RightMouse>	no	popup menu	    no

Insert or Replace Mode:
event	      position	   selection	  change  action	~
	       cursor			  window		~
<S-LeftMouse>   yes     start or extend (1) no	   like CTRL-O (1)
<A-LeftMouse>   yes start or extend blockw. no
<RightMouse>    no	popup menu	    no

(1) only if mouse pointer moved since press
(2) only if click is in same buffer

Clicking the left mouse button causes the cursor to be positioned.  If the
click is in another window that window is made the active window.  When
editing the command-line the cursor can only be positioned on the
command-line.  When in Insert mode Vim remains in Insert mode.  If 'scrolloff'
is set, and the cursor is positioned within 'scrolloff' lines from the window
border, the text is scrolled.

A selection can be started by pressing the left mouse button on the first
character, moving the mouse to the last character, then releasing the mouse
button.  You will not always see the selection until you release the button,
only in some versions (GUI, MS-DOS, WIN32) will the dragging be shown
immediately.  Note that you can make the text scroll by moving the mouse at
least one character in the first/last line in the window when 'scrolloff' is
non-zero.

In Normal, Visual and Select mode clicking the right mouse button causes the
Visual area to be extended.  When 'mousemodel' is "popup", the left button has
to be used while keeping the shift key pressed.  When clicking in a window
which is editing another buffer, the Visual or Select mode is stopped.

In Normal, Visual and Select mode clicking the right mouse button with the alt
key pressed causes the Visual area to become blockwise.  When 'mousemodel' is
"popup" the left button has to be used with the alt key.  Note that this won't
work on systems where the window manager consumes the mouse events when the
alt key is pressed (it may move the window).

							*double-click*
Double, triple and quadruple clicks are supported when the GUI is active,
for MS-DOS and Win32, and for an xterm (if the gettimeofday() function is
available).  For selecting text, extra clicks extend the selection:
	click		select ~
	double		word or % match		*<2-LeftMouse>*
	triple		line			*<3-LeftMouse>*
	quadruple	rectangular block	*<4-LeftMouse>*
Exception: In a Help window a double click jumps to help for the word that is
clicked on.
A double click on a word selects that word.  'iskeyword' is used to specify
which characters are included in a word.  A double click on a character
that has a match selects until that match (like using "v%").  If the match is
an #if/#else/#endif block, the selection becomes linewise.
For MS-DOS and xterm the time for double clicking can be set with the
'mousetime' option.  For the other systems this time is defined outside of
Vim.
An example, for using a double click to jump to the tag under the cursor: >
	:map <2-LeftMouse> :exe "tag ". expand("<cword>")<CR>

Dragging the mouse with a double click (button-down, button-up, button-down
and then drag) will result in whole words to be selected.  This continues
until the button is released, at which point the selection is per character
again.

							*gpm-mouse*
The GPM mouse is only supported when the |+mouse_gpm| feature was enabled at
compile time.  The GPM mouse driver (Linux console) does not support quadruple
clicks.

In Insert mode, when a selection is started, Vim goes into Normal mode
temporarily.  When Visual or Select mode ends, it returns to Insert mode.
This is like using CTRL-O in Insert mode.  Select mode is used when the
'selectmode' option contains "mouse".
							*sysmouse*
The sysmouse is only supported when the |+mouse_sysmouse| feature was enabled
at compile time.  The sysmouse driver (*BSD console) does not support keyboard
modifiers.

							*drag-status-line*
When working with several windows, the size of the windows can be changed by
dragging the status line with the mouse.  Point the mouse at a status line,
press the left button, move the mouse to the new position of the status line,
release the button.  Just clicking the mouse in a status line makes that window
the current window, without moving the cursor.  If by selecting a window it
will change position or size, the dragging of the status line will look
confusing, but it will work (just try it).

					*<MiddleRelease>* *<MiddleDrag>*
Mouse clicks can be mapped.  The codes for mouse clicks are:
     code	    mouse button	      normal action	~
 <LeftMouse>	 left pressed		    set cursor position
 <LeftDrag>	 left moved while pressed   extend selection
 <LeftRelease>	 left released		    set selection end
 <MiddleMouse>	 middle pressed		    paste text at cursor position
 <MiddleDrag>	 middle moved while pressed -
 <MiddleRelease> middle released	    -
 <RightMouse>	 right pressed		    extend selection
 <RightDrag>	 right moved while pressed  extend selection
 <RightRelease>  right released		    set selection end
 <X1Mouse>	 X1 button pressed	    -			*X1Mouse*
 <X1Drag>	 X1 moved while pressed	    -			*X1Drag*
 <X1Release>	 X1 button release	    -			*X1Release*
 <X2Mouse>	 X2 button pressed	    -			*X2Mouse*
 <X2Drag>	 X2 moved while pressed     -			*X2Drag*
 <X2Release>	 X2 button release	    -			*X2Release*

The X1 and X2 buttons refer to the extra buttons found on some mice.  The
'Microsoft Explorer' mouse has these buttons available to the right thumb.
Currently X1 and X2 only work on Win32 and X11 environments.

Examples: >
	:noremap <MiddleMouse> <LeftMouse><MiddleMouse>
Paste at the position of the middle mouse button click (otherwise the paste
would be done at the cursor position). >

	:noremap <LeftRelease> <LeftRelease>y
Immediately yank the selection, when using Visual mode.

Note the use of ":noremap" instead of "map" to avoid a recursive mapping.
>
	:map <X1Mouse> <C-O>
	:map <X2Mouse> <C-I>
Map the X1 and X2 buttons to go forwards and backwards in the jump list, see
|CTRL-O| and |CTRL-I|.

						*mouse-swap-buttons*
To swap the meaning of the left and right mouse buttons: >
	:noremap	<LeftMouse>	<RightMouse>
	:noremap	<LeftDrag>	<RightDrag>
	:noremap	<LeftRelease>	<RightRelease>
	:noremap	<RightMouse>	<LeftMouse>
	:noremap	<RightDrag>	<LeftDrag>
	:noremap	<RightRelease>	<LeftRelease>
	:noremap	g<LeftMouse>	<C-RightMouse>
	:noremap	g<RightMouse>	<C-LeftMouse>
	:noremap!	<LeftMouse>	<RightMouse>
	:noremap!	<LeftDrag>	<RightDrag>
	:noremap!	<LeftRelease>	<RightRelease>
	:noremap!	<RightMouse>	<LeftMouse>
	:noremap!	<RightDrag>	<LeftDrag>
	:noremap!	<RightRelease>	<LeftRelease>
<
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��|�MeMevim80/doc/filetype.txtnu�[���*filetype.txt*  For Vim version 8.0.  Last change: 2018 Apr 18


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Filetypes						*filetype* *file-type*

1. Filetypes					|filetypes|
2. Filetype plugin				|filetype-plugins|
3. Docs for the default filetype plugins.	|ftplugin-docs|

Also see |autocmd.txt|.

{Vi does not have any of these commands}

==============================================================================
1. Filetypes					*filetypes* *file-types*

Vim can detect the type of file that is edited.  This is done by checking the
file name and sometimes by inspecting the contents of the file for specific
text.

							*:filetype* *:filet*
To enable file type detection, use this command in your vimrc: >
	:filetype on
Each time a new or existing file is edited, Vim will try to recognize the type
of the file and set the 'filetype' option.  This will trigger the FileType
event, which can be used to set the syntax highlighting, set options, etc.

NOTE: Filetypes and 'compatible' don't work together well, since being Vi
compatible means options are global.  Resetting 'compatible' is recommended,
if you didn't do that already.

Detail: The ":filetype on" command will load one of these files:
		Amiga	    $VIMRUNTIME/filetype.vim
		Mac	    $VIMRUNTIME:filetype.vim
		MS-DOS	    $VIMRUNTIME\filetype.vim
		RiscOS	    Vim:Filetype
		Unix	    $VIMRUNTIME/filetype.vim
		VMS	    $VIMRUNTIME/filetype.vim
	This file is a Vim script that defines autocommands for the
	BufNewFile and BufRead events.  If the file type is not found by the
	name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
	contents of the file.
	When the GUI is running or will start soon, the |menu.vim| script is
	also sourced.  See |'go-M'| about avoiding that.

To add your own file types, see |new-filetype| below.  To search for help on a
filetype prepend "ft-" and optionally append "-syntax", "-indent" or
"-plugin".  For example: >
	:help ft-vim-indent
	:help ft-vim-syntax
	:help ft-man-plugin

If the file type is not detected automatically, or it finds the wrong type,
you can either set the 'filetype' option manually, or add a modeline to your
file.  Example, for an IDL file use the command: >
	:set filetype=idl

or add this |modeline| to the file:
	/* vim: set filetype=idl : */ ~

						*:filetype-plugin-on*
You can enable loading the plugin files for specific file types with: >
	:filetype plugin on
If filetype detection was not switched on yet, it will be as well.
This actually loads the file "ftplugin.vim" in 'runtimepath'.
The result is that when a file is edited its plugin file is loaded (if there
is one for the detected filetype). |filetype-plugin|

						*:filetype-plugin-off*
You can disable it again with: >
	:filetype plugin off
The filetype detection is not switched off then.  But if you do switch off
filetype detection, the plugins will not be loaded either.
This actually loads the file "ftplugof.vim" in 'runtimepath'.

						*:filetype-indent-on*
You can enable loading the indent file for specific file types with: >
	:filetype indent on
If filetype detection was not switched on yet, it will be as well.
This actually loads the file "indent.vim" in 'runtimepath'.
The result is that when a file is edited its indent file is loaded (if there
is one for the detected filetype). |indent-expression|

						*:filetype-indent-off*
You can disable it again with: >
	:filetype indent off
The filetype detection is not switched off then.  But if you do switch off
filetype detection, the indent files will not be loaded either.
This actually loads the file "indoff.vim" in 'runtimepath'.
This disables auto-indenting for files you will open.  It will keep working in
already opened files.  Reset 'autoindent', 'cindent', 'smartindent' and/or
'indentexpr' to disable indenting in an opened file.

						*:filetype-off*
To disable file type detection, use this command: >
	:filetype off
This will keep the flags for "plugin" and "indent", but since no file types
are being detected, they won't work until the next ":filetype on".


Overview:					*:filetype-overview*

command				detection	plugin		indent ~
:filetype on			on		unchanged	unchanged
:filetype off			off		unchanged	unchanged
:filetype plugin on		on		on		unchanged
:filetype plugin off		unchanged	off		unchanged
:filetype indent on		on		unchanged	on
:filetype indent off		unchanged	unchanged	off
:filetype plugin indent on	on		on		on
:filetype plugin indent off	unchanged	off		off

To see the current status, type: >
	:filetype
The output looks something like this: >
	filetype detection:ON  plugin:ON  indent:OFF

The file types are also used for syntax highlighting.  If the ":syntax on"
command is used, the file type detection is installed too.  There is no need
to do ":filetype on" after ":syntax on".

To disable one of the file types, add a line in your filetype file, see
|remove-filetype|.

							*filetype-detect*
To detect the file type again: >
	:filetype detect
Use this if you started with an empty file and typed text that makes it
possible to detect the file type.  For example, when you entered this in a
shell script: "#!/bin/csh".
   When filetype detection was off, it will be enabled first, like the "on"
argument was used.

							*filetype-overrule*
When the same extension is used for two filetypes, Vim tries to guess what
kind of file it is.  This doesn't always work.  A number of global variables
can be used to overrule the filetype used for certain extensions:

	file name	variable ~
	*.asa		g:filetype_asa	|ft-aspvbs-syntax| |ft-aspperl-syntax|
	*.asp		g:filetype_asp	|ft-aspvbs-syntax| |ft-aspperl-syntax|
	*.asm		g:asmsyntax	|ft-asm-syntax|
	*.prg		g:filetype_prg
	*.pl		g:filetype_pl
	*.inc		g:filetype_inc
	*.w		g:filetype_w	|ft-cweb-syntax|
	*.i		g:filetype_i	|ft-progress-syntax|
	*.p		g:filetype_p	|ft-pascal-syntax|
	*.sh		g:bash_is_sh	|ft-sh-syntax|
	*.tex		g:tex_flavor	|ft-tex-plugin|

							*filetype-ignore*
To avoid that certain files are being inspected, the g:ft_ignore_pat variable
is used.  The default value is set like this: >
	:let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
This means that the contents of compressed files are not inspected.

							*new-filetype*
If a file type that you want to use is not detected yet, there are four ways
to add it.  In any way, it's better not to modify the $VIMRUNTIME/filetype.vim
file.  It will be overwritten when installing a new version of Vim.

A. If you want to overrule all default file type checks.
   This works by writing one file for each filetype.  The disadvantage is that
   means there can be many files.  The advantage is that you can simply drop
   this file in the right directory to make it work.
							*ftdetect*
   1. Create your user runtime directory.  You would normally use the first
      item of the 'runtimepath' option.  Then create the directory "ftdetect"
      inside it.  Example for Unix: >
	:!mkdir ~/.vim
	:!mkdir ~/.vim/ftdetect
<
   2. Create a file that contains an autocommand to detect the file type.
      Example: >
	au BufRead,BufNewFile *.mine		set filetype=mine
<     Note that there is no "augroup" command, this has already been done
      when sourcing your file.  You could also use the pattern "*" and then
      check the contents of the file to recognize it.
      Write this file as "mine.vim" in the "ftdetect" directory in your user
      runtime directory.  For example, for Unix: >
	:w ~/.vim/ftdetect/mine.vim

<  3. To use the new filetype detection you must restart Vim.

   The files in the "ftdetect" directory are used after all the default
   checks, thus they can overrule a previously detected file type.  But you
   can also use |:setfiletype| to keep a previously detected filetype.

B. If you want to detect your file after the default file type checks.

   This works like A above, but instead of setting 'filetype' unconditionally
   use ":setfiletype".  This will only set 'filetype' if no file type was
   detected yet.  Example: >
	au BufRead,BufNewFile *.txt		setfiletype text
<
   You can also use the already detected file type in your command.  For
   example, to use the file type "mypascal" when "pascal" has been detected: >
	au BufRead,BufNewFile *		if &ft == 'pascal' | set ft=mypascal
								       | endif

C. If your file type can be detected by the file name.
   1. Create your user runtime directory.  You would normally use the first
      item of the 'runtimepath' option.  Example for Unix: >
	:!mkdir ~/.vim
<
   2. Create a file that contains autocommands to detect the file type.
      Example: >
	" my filetype file
	if exists("did_load_filetypes")
	  finish
	endif
	augroup filetypedetect
	  au! BufRead,BufNewFile *.mine		setfiletype mine
	  au! BufRead,BufNewFile *.xyz		setfiletype drawing
	augroup END
<     Write this file as "filetype.vim" in your user runtime directory.  For
      example, for Unix: >
	:w ~/.vim/filetype.vim

<  3. To use the new filetype detection you must restart Vim.

   Your filetype.vim will be sourced before the default FileType autocommands
   have been installed.  Your autocommands will match first, and the
   ":setfiletype" command will make sure that no other autocommands will set
   'filetype' after this.
							*new-filetype-scripts*
D. If your filetype can only be detected by inspecting the contents of the
   file.

   1. Create your user runtime directory.  You would normally use the first
      item of the 'runtimepath' option.  Example for Unix: >
	:!mkdir ~/.vim
<
   2. Create a vim script file for doing this.  Example: >
	if did_filetype()	" filetype already set..
	  finish		" ..don't do these checks
	endif
	if getline(1) =~ '^#!.*\<mine\>'
	  setfiletype mine
	elseif getline(1) =~? '\<drawing\>'
	  setfiletype drawing
	endif
<     See $VIMRUNTIME/scripts.vim for more examples.
      Write this file as "scripts.vim" in your user runtime directory.  For
      example, for Unix: >
	:w ~/.vim/scripts.vim
<
   3. The detection will work right away, no need to restart Vim.

   Your scripts.vim is loaded before the default checks for file types, which
   means that your rules override the default rules in
   $VIMRUNTIME/scripts.vim.

						*remove-filetype*
If a file type is detected that is wrong for you, install a filetype.vim or
scripts.vim to catch it (see above).  You can set 'filetype' to a non-existing
name to avoid that it will be set later anyway: >
	:set filetype=ignored

If you are setting up a system with many users, and you don't want each user
to add/remove the same filetypes, consider writing the filetype.vim and
scripts.vim files in a runtime directory that is used for everybody.  Check
the 'runtimepath' for a directory to use.  If there isn't one, set
'runtimepath' in the |system-vimrc|.  Be careful to keep the default
directories!


						*autocmd-osfiletypes*
NOTE: this code is currently disabled, as the RISC OS implementation was
removed.  In the future this will use the 'filetype' option.

On operating systems which support storing a file type with the file, you can
specify that an autocommand should only be executed if the file is of a
certain type.

The actual type checking depends on which platform you are running Vim
on; see your system's documentation for details.

To use osfiletype checking in an autocommand you should put a list of types to
match in angle brackets in place of a pattern, like this: >

	:au BufRead *.html,<&faf;HTML>  runtime! syntax/html.vim

This will match:

- Any file whose name ends in ".html"
- Any file whose type is "&faf" or "HTML", where the meaning of these types
  depends on which version of Vim you are using.
  Unknown types are considered NOT to match.

You can also specify a type and a pattern at the same time (in which case they
must both match): >

	:au BufRead <&fff>diff*

This will match files of type "&fff" whose names start with "diff".


							*plugin-details*
The "plugin" directory can be in any of the directories in the 'runtimepath'
option.  All of these directories will be searched for plugins and they are
all loaded.  For example, if this command: >

	set runtimepath

produces this output:

	runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60 ~

then Vim will load all plugins in these directories and below:

	/etc/vim/plugin/  ~
	~/.vim/plugin/  ~
	/usr/local/share/vim/vim60/plugin/  ~

Note that the last one is the value of $VIMRUNTIME which has been expanded.

Note that when using a plugin manager or |packages| many directories will be
added to 'runtimepath'.  These plugins earch require their own directory,
don't put them directly in ~/.vim/plugin.

What if it looks like your plugin is not being loaded?  You can find out what
happens when Vim starts up by using the |-V| argument: >

	vim -V2

You will see a lot of messages, in between them is a remark about loading the
plugins.  It starts with:

	Searching for "plugin/**/*.vim" in ~

There you can see where Vim looks for your plugin scripts.

==============================================================================
2. Filetype plugin					*filetype-plugins*

When loading filetype plugins has been enabled |:filetype-plugin-on|, options
will be set and mappings defined.  These are all local to the buffer, they
will not be used for other files.

Defining mappings for a filetype may get in the way of the mappings you
define yourself.  There are a few ways to avoid this:
1. Set the "maplocalleader" variable to the key sequence you want the mappings
   to start with.  Example: >
	:let maplocalleader = ","
<  All mappings will then start with a comma instead of the default, which
   is a backslash.  Also see |<LocalLeader>|.

2. Define your own mapping.  Example: >
	:map ,p <Plug>MailQuote
<  You need to check the description of the plugin file below for the
   functionality it offers and the string to map to.
   You need to define your own mapping before the plugin is loaded (before
   editing a file of that type).  The plugin will then skip installing the
   default mapping.
						*no_mail_maps*
3. Disable defining mappings for a specific filetype by setting a variable,
   which contains the name of the filetype.  For the "mail" filetype this
   would be: >
	:let no_mail_maps = 1
<						*no_plugin_maps*
4. Disable defining mappings for all filetypes by setting a variable: >
	:let no_plugin_maps = 1
<

							*ftplugin-overrule*
If a global filetype plugin does not do exactly what you want, there are three
ways to change this:

1. Add a few settings.
   You must create a new filetype plugin in a directory early in
   'runtimepath'.  For Unix, for example you could use this file: >
	vim ~/.vim/ftplugin/fortran.vim
<  You can set those settings and mappings that you would like to add.  Note
   that the global plugin will be loaded after this, it may overrule the
   settings that you do here.  If this is the case, you need to use one of the
   following two methods.

2. Make a copy of the plugin and change it.
   You must put the copy in a directory early in 'runtimepath'.  For Unix, for
   example, you could do this: >
	cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim
<  Then you can edit the copied file to your liking.  Since the b:did_ftplugin
   variable will be set, the global plugin will not be loaded.
   A disadvantage of this method is that when the distributed plugin gets
   improved, you will have to copy and modify it again.

3. Overrule the settings after loading the global plugin.
   You must create a new filetype plugin in a directory from the end of
   'runtimepath'.  For Unix, for example, you could use this file: >
	vim ~/.vim/after/ftplugin/fortran.vim
<  In this file you can change just those settings that you want to change.

==============================================================================
3.  Docs for the default filetype plugins.		*ftplugin-docs*


CHANGELOG						*ft-changelog-plugin*

Allows for easy entrance of Changelog entries in Changelog files.  There are
some commands, mappings, and variables worth exploring:

Options:
'comments'		is made empty to not mess up formatting.
'textwidth'		is set to 78, which is standard.
'formatoptions'		the 't' flag is added to wrap when inserting text.

Commands:
NewChangelogEntry	Adds a new Changelog entry in an intelligent fashion
			(see below).

Local mappings:
<Leader>o		Starts a new Changelog entry in an equally intelligent
			fashion (see below).

Global mappings:
			NOTE: The global mappings are accessed by sourcing the
			ftplugin/changelog.vim file first, e.g. with >
				runtime ftplugin/changelog.vim
<			in your |.vimrc|.
<Leader>o		Switches to the ChangeLog buffer opened for the
			current directory, or opens it in a new buffer if it
			exists in the current directory.  Then it does the
			same as the local <Leader>o described above.

Variables:
g:changelog_timeformat  Deprecated; use g:changelog_dateformat instead.
g:changelog_dateformat	The date (and time) format used in ChangeLog entries.
			The format accepted is the same as for the
			|strftime()| function.
			The default is "%Y-%m-%d" which is the standard format
			for many ChangeLog layouts.
g:changelog_username	The name and email address of the user.
			The default is deduced from environment variables and
			system files.  It searches /etc/passwd for the comment
			part of the current user, which informally contains
			the real name of the user up to the first separating
			comma.  then it checks the $NAME environment variable
			and finally runs `whoami` and `hostname` to build an
			email address.  The final form is >
				Full Name  <user@host>
<
g:changelog_new_date_format
			The format to use when creating a new date-entry.
			The following table describes special tokens in the
			string:
				%%	insert a single '%' character
				%d	insert the date from above
				%u	insert the user from above
                                %p	insert result of b:changelog_entry_prefix
				%c	where to position cursor when done
			The default is "%d  %u\n\n\t* %p%c\n\n", which produces
			something like (| is where cursor will be, unless at
			the start of the line where it denotes the beginning
			of the line) >
				|2003-01-14  Full Name  <user@host>
				|
				|        * prefix|
<
g:changelog_new_entry_format
			The format used when creating a new entry.
			The following table describes special tokens in the
			string:
                                %p	insert result of b:changelog_entry_prefix
				%c	where to position cursor when done
			The default is "\t*%c", which produces something
			similar to >
				|        * prefix|
<
g:changelog_date_entry_search
			The search pattern to use when searching for a
			date-entry.
			The same tokens that can be used for
			g:changelog_new_date_format can be used here as well.
			The default is '^\s*%d\_s*%u' which finds lines
			matching the form >
				|2003-01-14  Full Name  <user@host>
<			and some similar formats.

g:changelog_date_end_entry_search
			The search pattern to use when searching for the end
			of a date-entry.
			The same tokens that can be used for
			g:changelog_new_date_format can be used here as well.
			The default is '^\s*$' which finds lines that contain
			only whitespace or are completely empty.

b:changelog_name					*b:changelog_name*
			Name of the ChangeLog file to look for.
			The default is 'ChangeLog'.

b:changelog_path
			Path of the ChangeLog to use for the current buffer.
			The default is empty, thus looking for a file named
			|b:changelog_name| in the same directory as the
			current buffer.  If not found, the parent directory of
			the current buffer is searched.  This continues
			recursively until a file is found or there are no more
			parent directories to search.

b:changelog_entry_prefix
			Name of a function to call to generate a prefix to a
			new entry.  This function takes no arguments and
			should return a string containing the prefix.
			Returning an empty prefix is fine.
			The default generates the shortest path between the
			ChangeLog's pathname and the current buffers pathname.
			In the future, it will also be possible to use other
			variable contexts for this variable, for example, g:.

The Changelog entries are inserted where they add the least amount of text.
After figuring out the current date and user, the file is searched for an
entry beginning with the current date and user and if found adds another item
under it.  If not found, a new entry and item is prepended to the beginning of
the Changelog.


FORTRAN							*ft-fortran-plugin*

Options:
'expandtab'	is switched on to avoid tabs as required by the Fortran
		standards unless the user has set fortran_have_tabs in .vimrc.
'textwidth'	is set to 72 for fixed source format as required by the
		Fortran standards and to 80 for free source format.
'formatoptions' is set to break code and comment lines and to preserve long
		lines.  You can format comments with |gq|.
For further discussion of fortran_have_tabs and the method used for the
detection of source format see |ft-fortran-syntax|.


GIT COMMIT                                              *ft-gitcommit-plugin*

One command, :DiffGitCached, is provided to show a diff of the current commit
in the preview window.  It is equivalent to calling "git diff --cached" plus
any arguments given to the command.


MAIL							*ft-mail-plugin*

Options:
'modeline'	is switched off to avoid the danger of trojan horses, and to
		avoid that a Subject line with "Vim:" in it will cause an
		error message.
'textwidth'	is set to 72.  This is often recommended for e-mail.
'formatoptions'  is set to break text lines and to repeat the comment leader
		in new lines, so that a leading ">" for quotes is repeated.
		You can also format quoted text with |gq|.

Local mappings:
<LocalLeader>q   or   \\MailQuote
	Quotes the text selected in Visual mode, or from the cursor position
	to the end of the file in Normal mode.  This means "> " is inserted in
	each line.

MAN					*ft-man-plugin* *:Man* *man.vim*

Displays a manual page in a nice way.  Also see the user manual
|find-manpage|.

To start using the ":Man" command before any manual page was loaded, source
this script from your startup vimrc file: >

	runtime ftplugin/man.vim

Options:
'iskeyword'	the '.' character is added to be able to use CTRL-] on the
		manual page name.

Commands:
Man {name}	Display the manual page for {name} in a window.
Man {number} {name}
		Display the manual page for {name} in a section {number}.

Global mapping:
<Leader>K	Displays the manual page for the word under the cursor.
<Plug>ManPreGetPage  idem, allows for using a mapping: >
			nmap <F1> <Plug>ManPreGetPage<CR>

Local mappings:
CTRL-]		Jump to the manual page for the word under the cursor.
CTRL-T		Jump back to the previous manual page.
q		Same as ":quit"

To use a vertical split instead of horizontal: >
	let g:ft_man_open_mode = 'vert'
To use a new tab: >
	let g:ft_man_open_mode = 'tab'

To enable folding use this: >
  	let g:ft_man_folding_enable = 1
If you do not like the default folding, use an autocommand to add your desired
folding style instead.  For example: >
        autocmd FileType man setlocal foldmethod=indent foldenable

You may also want to set 'keywordprg' to make the |K| command open a manual
page in a Vim window: >
	set keywordprg=:Man


MANPAGER				      *manpager.vim*

The :Man command allows you to turn Vim into a manpager (that syntax highlights
manpages and follows linked manpages on hitting CTRL-]).

For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)

	export MANPAGER="vim -M +MANPAGER -"

For (t)csh, add to the config file

	setenv MANPAGER "vim -M +MANPAGER -"

For fish, add to the config file

	set -x MANPAGER "vim -M +MANPAGER -"

PDF							*ft-pdf-plugin*

Two maps, <C-]> and <C-T>, are provided to simulate a tag stack for navigating
the PDF.  The following are treated as tags:

- The byte offset after "startxref" to the xref table
- The byte offset after the /Prev key in the trailer to an earlier xref table
- A line of the form "0123456789 00000 n" in the xref table
- An object reference like "1 0 R" anywhere in the PDF

These maps can be disabled with >
	:let g:no_pdf_maps = 1
<

PYTHON						*ft-python-plugin* *PEP8*

By default the following options are set, in accordance with PEP8: >

	setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8

To disable this behaviour, set the following variable in your vimrc: >

	let g:python_recommended_style = 0


RPM SPEC						*ft-spec-plugin*

Since the text for this plugin is rather long it has been put in a separate
file: |pi_spec.txt|.


RUST							*ft-rust*

Since the text for this plugin is rather long it has been put in a separate
file: |ft_rust.txt|.


SQL							*ft-sql*

Since the text for this plugin is rather long it has been put in a separate
file: |ft_sql.txt|.


TEX						*ft-tex-plugin* *g:tex_flavor*

If the first line of a *.tex file has the form >
	%&<format>
then this determined the file type:  plaintex (for plain TeX), context (for
ConTeXt), or tex (for LaTeX).  Otherwise, the file is searched for keywords to
choose context or tex.  If no keywords are found, it defaults to plaintex.
You can change the default by defining the variable g:tex_flavor to the format
(not the file type) you use most.  Use one of these: >
	let g:tex_flavor = "plain"
	let g:tex_flavor = "context"
	let g:tex_flavor = "latex"
Currently no other formats are recognized.


VIM							*ft-vim-plugin*

The Vim filetype plugin defines mappings to move to the start and end of
functions with [[ and ]].  Move around comments with ]" and [".

The mappings can be disabled with: >
	let g:no_vim_maps = 1


ZIMBU							*ft-zimbu-plugin*

The Zimbu filetype plugin defines mappings to move to the start and end of
functions with [[ and ]].

The mappings can be disabled with: >
	let g:no_zimbu_maps = 1
<


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�T�>��vim80/doc/version6.txtnu�[���*version6.txt*  For Vim version 8.0.  Last change: 2018 Mar 18


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Welcome to Vim Version 6.0!  A large number of features has been added.  This
file mentions all the new items that have been added, changes to existing
features and bug fixes compared to Vim 5.x.

See |vi_diff.txt| for an overview of differences between Vi and Vim 6.0.
See |version4.txt| for differences between Vim 3.0 and Vim 4.0.
See |version5.txt| for differences between Vim 4.0 and Vim 5.0.

INCOMPATIBLE CHANGES			|incompatible-6|

Cursor position in Visual mode		|curpos-visual|
substitute command Vi compatible	|substitute-CR|
global option values introduced		|new-global-values|
'fileencoding' changed			|fileencoding-changed|
Digraphs changed			|digraphs-changed|
Filetype detection changed		|filetypedetect-changed|
Unlisted buffers introduced		|new-unlisted-buffers|
CTRL-U in Command-line mode changed	|CTRL-U-changed|
Ctags gone				|ctags-gone|
Documentation reorganized		|documentation-6|
Modeless selection and clipboard	|modeless-and-clipboard|
Small incompatibilities			|incomp-small-6|

NEW FEATURES				|new-6|

Folding					|new-folding|
Vertically split windows		|new-vertsplit|
Diff mode				|new-diff-mode|
Easy Vim: click-and-type		|new-evim|
User manual				|new-user-manual|
Flexible indenting			|new-indent-flex|
Extended search patterns		|new-searchpat|
UTF-8 support				|new-utf-8|
Multi-language support			|new-multi-lang|
Plugin support				|new-plugins|
Filetype plugins			|new-filetype-plugins|
File browser				|new-file-browser|
Editing files over a network		|new-network-files|
Window for command-line editing		|new-cmdwin|
Debugging mode				|new-debug-mode|
Cursor in virtual position		|new-virtedit|
Debugger interface			|new-debug-itf|
Communication between Vims		|new-vim-server|
Buffer type options			|new-buftype|
Printing				|new-printing|
Ports					|ports-6|
Quickfix extended			|quickfix-6|
Operator modifiers			|new-operator-mod|
Search Path				|new-search-path|
Writing files improved			|new-file-writing|
Argument list				|new-argument-list|
Restore a View				|new-View|
Color schemes				|new-color-schemes|
Various new items			|new-items-6|

IMPROVEMENTS				|improvements-6|

COMPILE TIME CHANGES			|compile-changes-6|

BUG FIXES				|bug-fixes-6|

VERSION 6.1			|version-6.1|
Changed					|changed-6.1|
Added					|added-6.1|
Fixed					|fixed-6.1|

VERSION 6.2			|version-6.2|
Changed					|changed-6.2|
Added					|added-6.2|
Fixed					|fixed-6.2|

VERSION 6.3			|version-6.3|
Changed					|changed-6.3|
Added					|added-6.3|
Fixed					|fixed-6.3|

VERSION 6.4			|version-6.4|
Changed					|changed-6.4|
Added					|added-6.4|
Fixed					|fixed-6.4|

==============================================================================
INCOMPATIBLE CHANGES				*incompatible-6*

These changes are incompatible with previous releases.  Check this list if you
run into a problem when upgrading from Vim 5.x to 6.0


Cursor position in Visual mode			*curpos-visual*
------------------------------

When going from one window to another window on the same buffer while in
Visual mode, the cursor position of the other window is adjusted to keep the
same Visual area.  This can be used to set the start of the Visual area in one
window and the end in another.  In vim 5.x the cursor position of the other
window would be used, which could be anywhere and was not very useful.


Substitute command Vi compatible		*substitute-CR*
--------------------------------

The substitute string (the "to" part of the substitute command) has been made
Vi compatible.  Previously a CTRL-V had a special meaning and could be used to
prevent a <CR> to insert a line break.  This made it impossible to insert a
CTRL-V before a line break.  Now a backslash is used to prevent a <CR> to
cause a line break.  Since the number of backslashes is halved, it is still
possible to insert a line break at the end of the line.  This now works just
like Vi, but it's not compatible with Vim versions before 6.0.

When a ":s" command doesn't make any substitutions, it no longer sets the '[
and '] marks.  This is not related to Vi, since it doesn't have these marks.


Global option values introduced			*new-global-values*
-------------------------------

There are now global values for options which are local to a buffer or window.
Previously the local options were copied from one buffer to another.  When
editing another file this could cause option values from a modeline to be used
for the wrong file.  Now the global values are used when entering a buffer
that has not been used before.  Also, when editing another buffer in a window,
the local window options are reset to their global values.  The ":set" command
sets both the local and global values, this is still compatible.  But a
modeline only sets the local value, this is not backwards compatible.

":let &opt = val" now sets the local and global values, like ":set".  New
commands have been added to set the global or local value:
	:let &opt = val		like ":set"
	:let &g:opt = val	like ":setglobal"
	:let &l:opt = val	like ":setlocal"


'fileencoding' changed				*fileencoding-changed*
----------------------

'fileencoding' was used in Vim 5.x to set the encoding used inside all of Vim.
This was a bit strange, because it was local to a buffer and worked for all
buffers.  It could never be different between buffers, because it changed the
way text in all buffers was interpreted.
It is now used for the encoding of the file related to the buffer.  If you
still set 'fileencoding' it is likely to be overwritten by the detected
encoding from 'fileencodings', thus it is "mostly harmless".
The old FileEncoding autocommand now does the same as the new EncodingChanged
event.


Digraphs changed				*digraphs-changed*
----------------

The default digraphs now correspond to RFC1345.  This is very different from
what was used in Vim 5.x. |digraphs|


Filetype detection changed			*filetypedetect-changed*
--------------------------

The filetype detection previously was using the "filetype" autocommand group.
This caused confusion with the FileType event name (case is ignored).  The
group is now called "filetypedetect".  It still works, but if the "filetype"
group is used the autocommands will not be removed by ":filetype off".
   The support for 'runtimepath' has made the "myfiletypefile" and
"mysyntaxfile" mechanism obsolete.  They are still used for backwards
compatibility.

The connection between the FileType event and setting the 'syntax' option was
previously in the "syntax" autocommand group.  That caused confusion with the
Syntax event name.  The group is now called "syntaxset".

The distributed syntax files no longer contain "syntax clear".  That makes it
possible to include one in the other without tricks.  The syntax is now
cleared when the 'syntax' option is set (by an autocommand added from
synload.vim).  This makes the syntax cleared when the value of 'syntax' does
not correspond to a syntax file.  Previously the existing highlighting was
kept.


Unlisted buffers introduced			*new-unlisted-buffers*
---------------------------

There is now a difference between buffers which don't appear in the buffer
list and buffers which are really not in the buffer list.  Commands like
":ls", ":bnext", ":blast" and the Buffers menu will skip buffers not in the
buffer list. |unlisted-buffer|
The 'buflisted' option can be used to make a buffer appear in the buffer list
or not.

Several commands that previously added a buffer to the buffer list now create
an unlisted buffer.  This means that a ":bnext" and ":ball" will not find these
files until they have actually been edited.  For example, buffers used for the
alternative file by ":write file" and ":read file".
   Other commands previously completely deleted a buffer and now only remove
the buffer from the buffer list.  Commands relying on a buffer not to be
present might fail.  For example, a ":bdelete" command in an autocommand that
relied on something following to fail (was used in the automatic tests).
|:bwipeout| can be used for the old meaning of ":bdelete".

The BufDelete autocommand event is now triggered when a buffer is removed from
the buffer list.  The BufCreate event is only triggered when a buffer is
created that is added to the buffer list, or when an existing buffer is added
to the buffer list.  BufAdd is a new name for BufCreate.
The new BufNew event is for creating any buffer and BufWipeout for really
deleting a buffer.

When doing Insert mode completion, only buffers in the buffer list are
scanned.  Added the 'U' flag to 'complete' to do completion from unlisted
buffers.

Unlisted buffers are not stored in a viminfo file.


CTRL-U in Command-line mode changed		*CTRL-U-changed*
-----------------------------------

Using CTRL-U when editing the command line cleared the whole line.  Most
shells only delete the characters before the cursor.  Made it work like that.
(Steve Wall)

You can get the old behavior with CTRL-E CTRL-U: >
	:cnoremap <C-U> <C-E><C-U>


Ctags gone					*ctags-gone*
----------

Ctags is no longer part of the Vim distribution.  It's now a grown-up program
by itself, it deserves to be distributed separately.
Ctags can be found here: http://ctags.sf.net/.


Documentation reorganized			*documentation-6*
-------------------------

The documentation has been reorganized, an item may not be where you found it
in Vim 5.x.
- The user manual was added, some items have been moved to it from the
  reference manual.
- The quick reference is now in a separate file (so that it can be printed).

The examples in the documentation were previously marked with a ">" in the
first column.  This made it difficult to copy/paste them.  There is now a
single ">" before the example and it ends at a "<" or a non-blank in the first
column.  This also looks better without highlighting.

'helpfile' is no longer used to find the help tags file.  This allows a user
to add its own help files (e.g., for plugins).


Modeless selection and clipboard		*modeless-and-clipboard*
--------------------------------

The modeless selection is used to select text when Visual mode can't be used,
for example when editing the command line or at the more prompt.
In Vim 5.x the modeless selection was always used.  On MS-Windows this caused
the clipboard to be overwritten, with no way to avoid that.  The modeless
selection now obeys the 'a' and 'A' flags in 'guioptions' and "autoselect" and
"autoselectml" in 'clipboard'.  By default there is no automatic copy on
MS-Windows.  Use the |c_CTRL-Y| command to manually copy the selection.

To get the old behavior back, do this: >

	:set clipboard^=autoselectml guioptions+=A


Small incompatibilities				*incomp-small-6*
-----------------------

'backupdir', 'cdpath', 'directory', 'equalprg', 'errorfile', 'formatprg',
'grepprg', 'helpfile', 'makeef', 'makeprg', 'keywordprg', 'cscopeprg',
'viminfo' and 'runtimepath' can no longer be set from a modeline, for better
security.

Removed '_' from the 'breakat' default: It's commonly used in keywords.

The default for 'mousehide' is on, because this works well for most people.

The Amiga binary is now always compiled with "big" features.  The "big" binary
archive no longer exists.

The items "[RO]", "[+]", "[help]", "[Preview]" and "[filetype]" in
'statusline' no longer have a leading space.

Non-Unix systems: When expanding wildcards for the Vim arguments, don't use
'suffixes'.  It now works as if the shell had expanded the arguments.

The 'lisp', 'smartindent' and 'cindent' options are not switched off when
'paste' is set.  The auto-indenting is disabled when 'paste' is set, but
manual indenting with "=" still works.

When formatting with "=" uses 'cindent' or 'indentexpr' indenting, and there
is no change in indent, this is not counted as a change ('modified' isn't set
and there is nothing to undo).

Report 'modified' as changed when 'fileencoding' or 'fileformat' was set.
Thus it reflects the possibility to abandon the buffer without losing changes.

The "Save As" menu entry now edits the saved file.  Most people expect it to
work like this.

A buffer for a directory is no longer added to the Buffers menu.

Renamed <Return> to <Enter>, since that's what it's called on most keyboards.
Thus it's now the hit-enter prompt instead of the hit-return prompt.
Can map <Enter> just like <CR> or <Return>.

The default for the 'viminfo' option is now '20,"50,h when 'compatible' isn't
set.  Most people will want to use it, including beginners, but it required
setting the option, which isn't that easy.

After using ":colder" the newer error lists are overwritten.  This makes it
possible to use ":grep" to browse in a tree-like way.  Must use ":cnewer 99"
to get the old behavior.

The patterns in 'errorformat' would sometimes ignore case (MS-Windows) and
sometimes not (Unix).  Now case is always ignored.  Add "\C" to the pattern to
match case.

The 16 bit MS-DOS version is now compiled without the +listcmds feature
(buffer list manipulation commands).  They are not often needed and this
executable needs to be smaller.

'sessionoptions' now includes "curdir" by default.  This means that restoring
a session will result in the current directory being restored, instead of
going to the directory where the session file is located.

A session deleted all buffers, deleting all marks.  Now keep the buffer list,
it shouldn't hurt for some existing buffers to remain present.
When the argument list is empty ":argdel *" caused an error message.

No longer put the search pattern from a tag jump in the history.

Use "SpecialKey" highlighting for unprintable characters instead of "NonText".
The idea is that unprintable text or any text that's displayed differently
from the characters in the file is using "SpecialKey", and "NonText" is used
for text that doesn't really exist in the file.

Motif now uses the system default colors for the menu and scrollbar.  Used to
be grey.  It's still possible to set the colors with ":highlight" commands and
resources.

Formatting text with "gq" breaks a paragraph at a non-empty blank line.
Previously the line would be removed, which wasn't very useful.

":normal" does no longer hang when the argument ends in half a command.
Previously Vim would wait for more characters to be typed, without updating
the screen.  Now it pretends an <Esc> was typed.

Bitmaps for the toolbar are no longer searched for in "$VIM/bitmaps" but in
the "bitmaps" directories in 'runtimepath'.

Now use the Cmdline-mode menus for the hit-enter prompt instead of the Normal
mode menus.  This generally works better and allows using the "Copy" menu to
produce CTRL-Y to copy the modeless selection.

Moved the font selection from the Window to the Edit menu, together with the
other settings.

The default values for 'isfname' include more characters to make "gf" work
better.

Changed the license for the documentation to the Open Publication License.
This seemed fair, considering the inclusion of parts of the Vim book, which is
also published under the OPL.  The downside is that we can't force someone who
would sell copies of the manual to contribute to Uganda.

After  "ayy  don't let  ""yy  or  :let @" = val  overwrite the "a register.
Use the unnamed register instead.

MSDOS: A pattern "*.*" previously also matched a file name without a dot.
This was inconsistent with other versions.

In Insert mode, CTRL-O CTRL-\ CTRL-N {cmd} remains in Normal mode.  Previously
it would go back to Insert mode, thus confusing the meaning of CTRL-\ CTRL-N,
which is supposed to take us to Normal mode (especially in ":amenu").

Allow using ":" commands after an operator.  Could be used to implement a new
movement command.  Thus it no longer aborts a pending operator.

For the Amiga the "-d {device}" argument was possible.  When compiled with the
diff feature, this no longer works.  Use "-dev {device}" instead. |-dev|

Made the default mappings for <S-Insert> in Insert mode insert the text
literally, avoids that special characters like BS cause side effects.

Using ":confirm" applied to the rest of the line.  Now it applies only to the
command right after it.  Thus ":confirm if x | edit | endif" no longer works,
use ":if x | confirm edit | endif".  This was the original intention, that it
worked differently was a bug.

==============================================================================
NEW FEATURES						*new-6*

Folding							*new-folding*
-------

Vim can now display a buffer with text folded.  This allows overviewing the
structure of a file quickly.  It is also possible to yank, delete and put
folded text, for example to move a function to another position.

There is a whole bunch of new commands and options related to folding.
See |folding|.


Vertically split windows				*new-vertsplit*
------------------------

Windows can also be split vertically.  This makes it possible to have windows
side by side.  One nice use for this is to compare two similar files (see
|new-diff-mode|).  The 'scrollbind' option can be used to synchronize
scrolling.

A vertical split can be created with the commands:
	:vsplit	  or  CTRL-W v  or CTRL-W CTRL-V	|:vsplit|
	:vnew						|:vnew|
	:vertical {cmd}					|:vertical|
The last one is a modifier, which has a meaning for any command that splits a
window.  For example: >
	:vertical stag main
Will vertically split the window and jump to the tag "main" in the new window.

Moving from window to window horizontally can be done with the |CTRL-W_h| and
|CTRL-W_l| commands.  The |CTRL-W_k| and |CTRL-W_j| commands have been changed
to jump to the window above or below the cursor position.

The vertical and horizontal splits can be mixed as you like.  Resizing windows
is easy when using the mouse, just position the pointer on a status line or
vertical separator and drag it.  In the GUI a special mouse pointer shape
indicates where you can drag a status or separator line.

To resize vertically split windows use the |CTRL-W_<| and |CTRL-W_>| commands.
To make a window the maximum width use the CTRL-W | command |CTRL-W_bar|.

To force a new window to use the full width or height of the Vim window,
these two modifiers are available:
	:topleft {cmd}		New window appears at the top with full
				width or at the left with full height.
	:botright {cmd}		New window appears at the bottom with full
				width or at the right with full height.
This can be combined with ":vertical" to force a vertical split: >
	:vert bot dsplit DEBUG
This will open a window at the far right, occupying the full height of the Vim
window, with the cursor on the first definition of "DEBUG".
The help window is opened at the top, like ":topleft" was used, if the current
window is fewer than 80 characters wide.

A few options can be used to set the preferences for vertically split windows.
They work similar to their existing horizontal equivalents:
	horizontal	vertical ~
	'splitbelow'	'splitright'
	'winheight'	'winwidth'
	'winminheight'	'winminwidth'
It's possible to set 'winminwidth' to zero, so that temporarily unused windows
hardly take up space without closing them.

The new 'eadirection' option tells where 'equalalways' applies:
	:set eadirection=both		both directions
	:set eadirection=ver		equalize window heights
	:set eadirection=hor		equalize windows widths
This can be used to avoid changing window sizes when you want to keep them.

Since windows can become quite narrow with vertical splits, text lines will
often not fit.  The 'sidescrolloff' has been added to keep some context left
and right of the cursor.  The 'listchars' option has been extended with the
"precedes" item, to show a "<" for example, when there is text left off the
screen. (Utz-Uwe Haus)

"-O" command line argument: Like "-o" but split windows vertically. (Scott
Urban)

Added commands to move the current window to the very top (CTRL-W K), bottom
(CTRL-W J), left (CTRL-W H) and right (CTRL-W L).  In the new position the
window uses the full width/height of the screen.

When there is not enough room in the status line for both the file name and
the ruler, use up to half the width for the ruler.  Useful for narrow windows.


Diff mode						*new-diff-mode*
---------

In diff mode Vim shows the differences between two, three or four files.
Folding is used to hide the parts of the file that are equal.
Highlighting is used to show deleted and changed lines.
See |diff-mode|.

An easy way to start in diff mode is to start Vim as "vimdiff file1 file2".
Added the vimdiff manpage.

In a running Vim the |:diffsplit| command starts diff mode for the current
file and another file.  The |:diffpatch| command starts diff mode using the
current file and a patch file.  The |:diffthis| command starts diff mode for
the current window.

Differences can be removed with the |:diffget| and |:diffput| commands.

- The 'diff' option switches diff mode on in a window.
- The |:diffupdate| command refreshes the diffs.
- The 'diffopt' option changes how diffs are displayed.
- The 'diffexpr' option can be set how a diff is to be created.
- The 'patchexpr' option can be set how patch is applied to a file.
- Added the "diff" folding method.  When opening a window for diff-mode, set
  'foldlevel' to zero and 'foldenable' on, to close the folds.
- Added the DiffAdd, DiffChange, DiffDelete and DiffText highlight groups to
  specify the highlighting for differences.  The defaults are ugly...
- Unix: make a vimdiff symbolic link for "make install".
- Removed the now obsolete "vimdiff.vim" script from the distribution.
- Added the "[c" and "]c" commands to move to the next/previous change in diff
  mode.


Easy Vim: click-and-type				*new-evim*
------------------------

eVim stands for "Easy Vim".  This is a separate program, but can also be
started as "vim -y".

This starts Vim with 'insertmode' set to allow click-and-type editing.  The
$VIMRUNTIME/evim.vim script is used to add mappings and set options to be able
to do most things like Notepad.  This is only for people who can't stand two
modes.

eView does the same but in readonly mode.

In the GUI a CTRL-C now only interrupts when busy with something, not when
waiting for a character.  Allows using CTRL-C to copy text to the clipboard.


User manual						*new-user-manual*
-----------

The user manual has been added.  It is organised around editing tasks.  It
reads like a book, from start to end.  It should allow beginners to start
learning Vim.  It helps everybody to learn using the most useful Vim features.
It is much easier to read than the reference manual, but omits details.  See
|user-manual|.

The user manual includes parts of the Vim book by Steve Oualline |frombook|.
It is published under the OPL |manual-copyright|.

When syntax highlighting is not enabled, the characters in the help file which
mark examples ('>' and '<') and header lines ('~') are replaced with a space.

When closing the help window, the window layout is restored from before
opening it, if the window layout didn't change since then.
When opening the help window, put it at the top of the Vim window if the
current window is fewer than 80 characters and not full width.


Flexible indenting					*new-indent-flex*
------------------

Automatic indenting is now possible for any language.  It works with a Vim
script, which makes it very flexible to compute the indent.

The ":filetype indent on" command enables using the provided indent scripts.
This is explained in the user manual: |30.3|.

The 'indentexpr' option is evaluated to get the indent for a line.  The
'indentkeys' option tells when to trigger re-indenting.  Normally these
options are set from an indent script.  Like Syntax files, indent scripts will
be created and maintained by many people.


Extended search patterns				*new-searchpat*
------------------------

Added the possibility to match more than one line with a pattern. (partly by
Loic Grenie)
New items in a search pattern for multi-line matches:
\n		match end-of-line, also in []
\_[]		match characters in range and end-of-line
\_x		match character class and end-of-line
\_.		match any character or end-of-line
\_^		match start-of-line, can be used anywhere in the regexp
\_$		match end-of-line, can be used anywhere in the regexp

Various other new items in search patterns:
\c		ignore case for the whole pattern
\C		match case for the whole pattern
\m		magic on for the following
\M		magic off for the following
\v		make following characters "very magic"
\V		make following characters "very nomagic"

\@!		don't match atom before this.
		Example: "foo\(bar\)\@!" matches "foo " but not "foobar".
\@=		match atom, resulting in  zero-width match
		Example: "foo\(bar\)\@=" matches "foo" in "foobar".
\@<!		don't match preceding atom before the current position
\@<=		match preceding atom before the current position
\@>		match preceding atom as a subexpression

\&		match only when branch before and after it match

\%[]		optionally match a list of atoms; "end\%[if]" matches "end",
		"endi" and "endif"
\%(\)		like \(\), but without creating a back-reference; there can be
		any number of these, overcomes the limit of nine \( \) pairs
\%^		match start-of-file (Chase Tingley)
\%$		match end-of-file (Chase Tingley)
\%#		Match with the cursor position. (Chase Tingley)
\?		Just like "\=" but can't be used in a "?" command.

\%23l		match in line 23
\%<23l		match before line 23
\%>23l		match after line 23
\%23c, \%<23c, \%>23c   match in/before/after column 23
\%23v, \%<23v, \%>23v	match in/before/after virtual column 23


For syntax items:
\z(...\)	external reference match set (in region start pattern)
\z1 - \z9	external reference match use (in region skip or end pattern)
	(Scott Bigham)

\zs		use position as start of match
\ze		use position as end of match

Removed limit of matching only up to 32767 times with *, \+, etc.

Added support to match multi-byte characters. (partly by Muraoka Taro)
Made "\<" and "\>" work for UTF-8. (Muraoka Taro)


UTF-8 support						*new-utf-8*
-------------

Vim can now edit files in UTF-8 encoding.  Up to 31 bit characters can be
used, but only 16 bit characters are displayed.  Up to two combining
characters are supported, they overprint the preceding character.
Double-wide characters are also supported.  See |UTF-8|.

UCS-2, UCS-4 and UTF-16 encodings are supported too, they are converted to
UTF-8 internally.  There is also support for editing Unicode files in a Latin1
environment.  Other encodings are converted with iconv() or an external
converter specified with 'charconvert'.

Many new items for Multi-byte support:
- Added 'encoding' option: specifies character encoding used inside Vim.  It
  can be any 8-bit encoding, some double-byte encodings or Unicode.
  It is initialized from the environment when a supported value is found.
- Added 'fileencoding' and 'fileencodings': specify character coding in a
  file, similar to 'fileformat' and 'fileformats'.
  When 'encoding' is "utf-8" and 'fileencodings' is "utf-8,latin1" this will
  automatically switch to latin1 if a file does not contain valid UTF-8.
- Added 'bomb' option and detection of a BOM at the start of a file.  Can be
  used with "ucs-bom" in 'fileencodings' to automatically detect a Unicode
  file if it starts with a BOM.  Especially useful on MS-Windows (NT and
  2000), which uses ucs-2le files with a BOM (e.g., when exporting the
  registry).
- Added the 'termencoding' option: Specifies the encoding used for the
  terminal.  Useful to put Vim in utf-8 mode while in a non-Unicode locale: >
    :let &termencoding = &encoding
    :set encoding=utf-8
- When 'viminfo' contains the 'c' flag, the viminfo file is converted from the
  'encoding' it was written with to the current 'encoding'.
- Added ":scriptencoding" command: convert lines in a sourced script to
  'encoding'.  Useful for menu files.
- Added 'guifontwide' to specify a font for double-wide characters.
- Added Korean support for character class detection.  Also fix cls() in
  search.c. (Chong-Dae Park)
- Win32: Typing multi-byte characters without IME. (Alexander Smishlajev)
- Win32 with Mingw: compile with iconv library. (Ron Aaron)
- Win32 with MSVC: dynamically load iconv.dll library. (Muraoka Taro)
- Make it possible to build a version with multi-byte and iconv support with
  Borland 5.5.  (Yasuhiro Matsumoto)
- Added 'delcombine' option: Delete combining character separately. (Ron
  Aaron)
- The "xfontset" feature isn't required for "xim".  These are now two
  independent features.
- XIM: enable XIM when typing a language character (Insert mode, Search
  pattern, "f" or "r" command).  Disable XIM when typing a Normal mode
  command.
- When the XIM is active, show "XIM" in the 'showmode' message. (Nam SungHyun)
- Support "CursorIM" for XIM.  (Nam SungHyun)
- Added 'm' flag to 'formatoptions': When wrapping words, allow splitting at
  each multibyte character, not only at a space.
- Made ":syntax keyword" work with multi-byte characters.
- Added support for Unicode upper/lowercase flipping and comparing. (based on
  patch by Raphael Finkel)
  Let "~" on multi-byte characters that have a third case ("title case")
  switch between the three cases. (Raphael Finkel)

Allow defining digraphs for multi-byte characters.
Added RFC1345 digraphs for Unicode.
Most Normal mode commands that accept a character argument, like "r", "t" and
"f" now accept a digraph.  The 'D' flag in 'cpoptions' disables this to remain
Vi compatible.

Added Language mapping and 'keymap' to be able to type multi-byte characters:
- Added the ":lmap" command and friends: Define mappings that are used when
  typing characters in the language of the text.  Also for "r", "t", etc.  In
  Insert and Command-line mode CTRL-^ switches the use of the mappings on/off.
  CTRL-^ also toggles the use of an input method when no language mappings are
  present.  Allows switching the IM back on halfway typing.
- "<char-123>" argument to ":map", allows to specify the decimal, octal or
  hexadecimal value of a character.
- Implemented the 'keymap' option: Load a keymap file.  Uses ":lnoremap" to
  define mappings for the keymap.  The new ":loadkeymap" command is used in
  the keymap file.
- Added 'k' flag in 'statusline': Value of "b:keymap_name" or 'keymap' when
  it's being used.  Uses "<lang>" when no keymap is loaded and ":lmap"s are
  active.  Show this text in the default statusline too.
- Added the 'iminsert' and 'imsearch' options: Specify use of langmap mappings
  and Input Method with an option. (Muraoka Taro)
  Added 'imcmdline' option: When set the input method is always enabled when
  starting to edit a command line.  Useful for a XIM that uses dead keys to
  type accented characters.
  Added 'imactivatekey' option to better control XIM.  (Muraoka Taro)
- When typing a mapping that's not finished yet, display the last character
  under the cursor in Insert mode and Command-line mode.  Looks good for dead
  characters.
- Made the 'langmap' option recognize multi-byte characters.  But mapping only
  works for 8-bit characters.  Helps when using UTF-8.
- Use a different cursor for when ":lmap" mappings are active.  Can specify
  two highlight groups for an item in 'guicursor'.  By default "lCursor" and
  "Cursor" are equal, the user must set a color he likes.
  Use the cursor color for hangul input as well. (Sung-Hyun Nam)
- Show "(lang)" for 'showmode' when language mapping is enabled.
- UTF-8: Made "r" work with a ":lmap" that includes a composing character.
  Also works for "f", which now works to find a character that includes a
  composing character.

Other multi-byte character additions:
- Support double-byte single-width characters for euc-jp: Characters starting
  with 0x8E.  Added ScreenLines2[] to store the second byte.


Multi-language support					*new-multi-lang*
----------------------

The messages used in Vim can be translated.  Several translations are
available.  This uses the gettext mechanism.  It allows adding a translation
without recompiling Vim.  |multi-lang| (partly by Marcin Dalecki)

The translation files are in the src/po directory.  The src/po/README.txt file
explains a few things about doing a translation.

Menu translations are available as well.  This uses the new |:menutranslate|
command.  The translations are found in the runtime directory "lang".  This
allows a user to add a translation.

Added |:language| command to set the language (locale) for messages, time and
character type.  This allows switching languages in Vim without changing the
locale outside of Vim.

Made it possible to have vimtutor use different languages.  (Eduardo Fernandez)
Spanish (Eduardo Fernandez), Italian (Antonio Colombo), Japanese (Yasuhiro
Matsumoto) and French (Adrien Beau) translations are included.
Added "vimtutor.bat": script to start Vim on a copy of the tutor file for
MS-Windows. (Dan Sharp)

- Added v:lang variable to be able to get current language setting.
  (Marcin Dalecki)  Also v:lc_time and v:ctype.
- Make it possible to translate the dialogs used by the menus.  Uses global
  "menutrans_" variables.  ":menutrans clear" deletes them.
- removed "broken locale" (Marcin Dalecki).
- Don't use color names in icons, use RGB values.  The names could be
  translated.
- Win32: Added global IME support (Muraoka)
- Win32: Added dynamic loading of IME support.
- ":messages" prints a message about who maintains the messages or the
  translations.  Useful to find out where to make a remark about a wrong
  translation.
- --disable-nls argument for configure: Disable use of gettext(). (Sung-Hyun
  Nam)
- Added NLS support for Win32 with the MingW compiler. (Eduardo Fernandez)
- When available, call bind_textdomain_codeset() to have gettext() translate
  messages to 'encoding'.  This requires GNU gettext 0.10.36 or later.
- Added gettext support for Win32.  This means messages will be translated
  when the locale is set and libintl.dll can be found.  (Muraoka Taro)
  Also made it work with MingW compiler.  (Eduardo Fernandez)
  Detect the language and set $LANG to get the appropriate translated messages
  (if supported).  Also use $LANG to select a language, v:lang is a very
  different kind of name.
- Made gvimext.dll use translated messages, if possible. (Yasuhiro Matsumoto)


Plugin support					*new-plugins*
--------------

To make it really easy to load a Vim script when starting Vim, the "plugin"
runtime directory can be used.  All "*.vim" files in it will be automatically
loaded.  For Unix, the directory "~/.vim/plugin" is used by default.  The
'runtimepath' option can be set to look in other directories for plugins.
|load-plugins| |add-plugin|

The |:runtime| command has been added to load one or more files in
'runtimepath'.

Standard plugins:
netrw.vim - Edit files over a network |new-network-files|
gzip.vim - Edit compressed files
explorer.vim - Browse directories |new-file-browser|

Added support for local help files. |add-local-help|.
When searching for help tags, all "doc/tags" files in 'runtimepath' are used.
Added the ":helptags" command: Generate a tags file for a help directory.
The first line of each help file is automagically added to the "LOCAL
ADDITIONS" section in doc/help.txt.

Added the <unique> argument to ":map": only add a mapping when it wasn't
defined before.

When displaying an option value with 'verbose' set will give a message about
where the option was last set.  Very useful to find out which script did set
the value.

The new |:scriptnames| command displays a list of all scripts that have been
sourced.

GUI: For Athena, Motif and GTK look for a toolbar bitmap in the "bitmaps"
directories in 'runtimepath'.  Allows adding your own bitmaps.


Filetype plugins				*new-filetype-plugins*
-----------------

A new group of files has been added to do settings for specific file types.
These can be options and mappings which are specifically used for one value of
'filetype'.

The files are located in "$VIMRUNTIME/ftplugin".  The 'runtimepath' option
makes it possible to use several sets of plugins: Your own, system-wide,
included in the Vim distribution, etc.

To be able to make this work, several features were added:
- Added the "s:" variables, local to a script.  Avoids name conflicts with
  global variables.  They can be used in the script and in functions,
  autocommands and user commands defined in the script.  They are kept between
  invocations of the same script.  |s:var|
- Added the global value for local options.  This value is used when opening
  a new buffer or editing another file.  The option value specified in a
  modeline or filetype setting is not carried over to another buffer.
  ":set" sets both the local and the global value.
  ":setlocal" sets the local option value only.
  ":setglobal" sets or displays the global value for a local option.
  ":setlocal name<" sets a local option to its global value.
- Added the buffer-local value for some global options: 'equalprg', 'makeprg',
  'errorformat', 'grepprg', 'path', 'dictionary', 'thesaurus', 'tags',
  'include' and 'define'.  This allows setting a local value for these global
  options, without making it incompatible.
- Added mappings and abbreviations local to a buffer: ":map <buffer>".
- In a mapping "<Leader>" can be used to get the value of the "mapleader"
  variable.  This simplifies mappings that use "mapleader".  "<Leader>"
  defaults to "\".  "<LocalLeader>" does the same with "maplocalleader".  This
  is to be used for mappings local to a buffer.
- Added <SID> Script ID to define functions and mappings local to a script.
- Added <script> argument to ":noremap" and ":noremenu": Only remap
  script-local mappings.  Avoids that mappings from other scripts get in the
  way, but does allow using mappings defined in the script.
- User commands can be local to a buffer: ":command -buffer".

The new ":setfiletype" command is used in the filetype detection autocommands,
to avoid that 'filetype' is set twice.


File browser						*new-file-browser*
------------

When editing a directory, the explorer plugin will list the files in the
directory.  Pressing <Enter> on a file name edits that file.  Pressing <Enter>
on a directory moves the browser to that directory.

There are several other possibilities, such as opening a file in the preview
window, renaming files and deleting files.


Editing files over a network				*new-network-files*
----------------------------

Files starting with scp://, rcp://, ftp:// and http:// are recognized as
remote files.  An attempt is made to access these files with the indicated
method.  For http:// only reading is possible, for the others writing is also
supported.  Uses the netrw.vim script as a standard "plugin". |netrw|

Made "gf" work on a URL.  It no longer assumes the file is local on the
computer (mostly didn't work anyway, because the full path was required).
Adjusted test2 for this.

Allow using a URL in 'path'.  Makes ":find index.html" work.

GTK: Allow dropping a http:// and ftp:// URL on Vim.  The netrw plugin takes
care of downloading the file. (Mikael Berthe)


Window for command-line editing				*new-cmdwin*
-------------------------------

The Command-line window can be used to edit a command-line with Normal and
Insert mode commands.  When it is opened it contains the history.  This allows
copying parts of previous command lines. |cmdwin|

The command-line window can be opened from the command-line with the key
specified by the 'cedit' option (like Nvi).  It can also be opened directly
from Normal mode with "q:", "q/" and "q?".

The 'cmdwinheight' is used to specify the initial height of the window.

In Insert mode CTRL-X CTRL-V can be used to complete an Ex command line, like
it's done on the command-line.  This is also useful for writing Vim scripts!

Additionally, there is "improved Ex mode".  Entered when Vim is started as
"exim" or "vim -E", and with the "gQ" command.  Works like repeated use of
":", with full command-line editing and completion. (Ulf Carlsson)


Debugging mode						*new-debug-mode*
--------------

In debugging mode sourced scripts and user functions can be executed line by
line.  There are commands to step over a command or step into it. |debug-mode|

Breakpoints can be set to run until a certain line in a script or user
function is executed. |:breakadd|

Debugging can be started with ":debug {cmd}" to debug what happens when a
command executes.  The |-D| argument can be used to debug while starting up.


Cursor in virtual position				*new-virtedit*
--------------------------

Added the 'virtualedit' option: Allow positioning the cursor where there is no
actual character in Insert mode, Visual mode or always. (Matthias Kramm)
This is especially useful in Visual-block mode.  It allows positioning a
corner of the area where there is no text character.  (Many improvements by
Chase Tingley)


Debugger interface					*new-debug-itf*
------------------

This was originally made to work with Sun Visual Workshop. (Gordon Prieur)
See |debugger.txt|, |sign.txt| and |workshop.txt|.

Added the ":sign" command to define and place signs.  They can be displayed
with two ASCII characters or an icon.  The line after it can be highlighted.
Useful to display breakpoints and the current PC position.

Added the |:wsverb| command to execute debugger commands.

Added balloon stuff: 'balloondelay' and 'ballooneval' options.

Added "icon=" argument for ":menu".  Allows defining a specific icon for a
ToolBar item.


Communication between Vims				*new-vim-server*
--------------------------

Added communication between two Vims.  Makes it possible to send commands from
one Vim to another.  Works for X-Windows and MS-Windows |clientserver|.

Use "--remote" to have files be edited in an already running Vim.
Use "--remote-wait" to do the same and wait for the editing to finish.
Use "--remote-send" to send commands from one Vim to another.
Use "--remote-expr" to have an expression evaluated in another Vim.
Use "--serverlist" to list the currently available Vim servers.  (X only)
There are also functions to communicate between the server and the client.
|remote_send()| |remote_expr()|

(X-windows version implemented by Flemming Madsen, MS-Windows version by Paul
Moore)

Added the command server name to the window title, so you can see which server
name belongs to which Vim.

Removed the OleVim directory and SendToVim.exe and EditWithVim.exe from the
distribution.  Can now use "gvim --remote" and "gvim --remote-send", which is
portable.

GTK+: Support running Vim inside another window.  Uses the --socketid argument
(Neil Bird)


Buffer type options					*new-buftype*
-------------------

The 'buftype' and 'bufhidden' options have been added.  They can be set to
have different kinds of buffers.  For example:
- 'buftype' = "quickfix": buffer with error list
- 'buftype' = "nofile" and 'bufhidden' = "delete": scratch buffer that will be
  deleted as soon as there is no window displaying it.

'bufhidden' can be used to overrule the 'hidden' option for one buffer.

In combination with 'buflisted' and 'swapfile' this offers the possibility to
use various kinds of special buffers.  See |special-buffers|.


Printing						*new-printing*
--------

Included first implementation of the ":hardcopy" command for printing
to paper.  For MS-Windows any installed printer can be used.  For other
systems a PostScript file is generated, which can be printed with the
'printexpr' option.
(MS-Windows part by Vince Negri, Vipin Aravind, PostScript by Vince Negri and
Mike Williams)

Made ":hardcopy" work with multi-byte characters. (Muraoka Taro, Yasuhiro
Matsumoto)

Added options to tune the way printing works: (Vince Negri)
- 'printoptions' defines various things.
- 'printheader' specifies the header format.  Added "N" field to 'statusline'
  for the page number.
- 'printfont' specifies the font name and attributes.
- 'printdevice' defines the default printer for ":hardcopy!".


Ports							*ports-6*
-----

Port to OS/390 Unix (Ralf Schandl)
- A lot of changes to handle EBCDIC encoding.
- Changed Ctrl('x') to Ctrl_x define.

Included jsbmouse support. (Darren Garth)
Support for dec mouse in Unix. (Steve Wall)

Port to 16-bit MS Windows (Windows 3.1x) (Vince Negri)

Port to QNX.  Supports the Photon GUI, mouse, etc. (Julian Kinraid)

Allow cross-compiling the Win32 version with Make_ming.mak. (Ron Aaron)
Added Python support for compiling with Mingw. (Ron Aaron)

Dos 32 bit: Added support the Windows clipboard. (David Kotchan)

Win32: Dynamically load Perl and Python.  Allows compiling Vim with these
interfaces and will try to find the DLLs at runtime. (Muraoka Taro)

Compiling the Win32 GUI with Cygwin.  Also compile vimrun, dosinst and
uninstall.  (Gerfried)

Mac: Make Vim compile with the free MPW compiler supplied by Apple.  And
updates for CodeWarrior. (Axel Kielhorn)

Added typecasts and ifdefs as a start to make Vim work on Win64 (George
Reilly)


Quickfix extended					*quickfix-6*
-----------------

Added the "error window".  It contains all the errors of the current error
list.  Pressing <Enter> in a line makes Vim jump to that line (in another
window).  This makes it easy to navigate through the error list.
|quickfix-window|.

- |:copen| opens the quickfix window.
- |:cclose| closes the quickfix window.
- |:cwindow| takes care that there is a quickfix window only when there are
  recognized errors. (Dan Sharp)

- Quickfix also knows "info", next to "warning" and "error" types.  "%I" can be
  used for the start of a multi-line informational message. (Tony Leneis)
- The "%p" argument can be used in 'errorformat' to get the column number from
  a line where "^" points to the column. (Stefan Roemer)
- When using "%f" in 'errorformat' on a DOS/Windows system, also include "c:"
  in the filename, even when using "%f:".


Operator modifiers					*new-operator-mod*
------------------

Insert "v", "V" or CTRL-V between an operator and a motion command to force
the operator to work characterwise, linewise or blockwise. |o_v|


Search Path						*new-search-path*
-----------

Vim can search in a directory tree not only in downwards but also upwards.
Works for the 'path', 'cdpath' and 'tags' options. (Ralf Schandl)

Also use "**" for 'tags' option. (Ralf Schandl)

Added 'includeexpr', can be used to modify file name found by 'include'
option.
Also use 'includeexpr' for "gf" and "<cfile>" when the file can't be found
without modification.  Useful for doing "gf" on the name after an include or
import statement.

Added the 'cdpath' option: Locations to find a ":cd" argument. (Raf)

Added the 'suffixesadd' option: Suffixes to be added to a file name when
searching for a file for the "gf", "[I", etc. commands.


Writing files improved					*new-file-writing*
----------------------

Added the 'backupcopy' option: Select whether a file is to be copied or
renamed to make a backup file.  Useful on Unix to speed up writing an ordinary
file.  Useful on other systems to preserve file attributes and when editing a
file on a Unix filesystem.

Added the 'autowriteall' option.  Works like 'autowrite' but for more
commands.

Added the 'backupskip' option: A list of file patterns to skip making a backup
file when it matches.  The default for Unix includes "/tmp/*", this makes
"crontab -e" work.

Added support for Access Control Lists (ACL) for FreeBSD and Win32.  The ACL
is copied from the original file to the new file (or the backup if it's
copied).
ACL is also supported for AIX, Solaris and generic POSIX. (Tomas Ogren)
And on SGI.


Argument list						*new-argument-list*
-------------

The support for the argument list has been extended.  It can now be
manipulated to contain the files you want it to contain.

The argument list can now be local to a window.  It is created with the
|:arglocal| command.  The |:argglobal| command can be used to go back to the
global argument list.

The |:argdo| command executes a command on all files in the argument list.

File names can be added to the argument list with |:argadd|.  File names can
be removed with |:argdelete|.

"##" can be used like "#", it is replaced by all the names in the argument
list concatenated.  Useful for ":grep foo ##".

The |:argedit| adds a file to the argument list and edits it.  Like ":argadd"
and then ":edit".


Restore a View						*new-View*
--------------

The ":mkview" command writes a Vim script with the settings and mappings for
one window.  When the created file is sourced, the view of the window is
restored.  It's like ":mksession" for one window.
The View also contains the local argument list and manually created, opened
and closed folds.

Added the ":loadview" command and the 'viewdir' option: Allows for saving and
restoring views of a file with simple commands.  ":mkview 1" saves view 1 for
the current file, ":loadview 1" loads it again.  Also allows quickly switching
between two views on one file.  And saving and restoring manual folds and the
folding state.

Added 'viewoptions' to specify how ":mkview" works.

":mksession" now also works fine with vertical splits.  It has been further
improved and restores the view of each window.  It also works properly with
preview and quickfix windows.

'sessionoptions' is used for ":mkview" as well.
Added "curdir" and "sesdir" to 'sessionoptions'.  Allows selection of what
the current directory will be restored to.

The session file now also contains the argument list(s).


Color schemes						*new-color-schemes*
-------------

Support for loading a color scheme.  Added the ":colorscheme" command.
Automatically add menu entries for available schemes.
Should now properly reset the colors when 'background' or 't_Co' is changed.
":highlight clear" sets the default colors again.
":syntax reset" sets the syntax highlight colors back to the defaults.
For ":set bg&" guess the value.  This allows a color scheme to switch back to
the default colors.
When syntax highlighting is switched on and a color scheme was defined, reload
the color scheme to define the colors.


Various new items					*new-items-6*
-----------------

Normal mode commands: ~

"gi"		Jump to the ^ mark and start Insert mode.  Also works when the
		mark is just after the line. |gi|

"g'm" and "g`m"
		Jump to a mark without changing the jumplist.  Now you can use
		g`" to jump to the last known position in a file without side
		effects.  Also useful in mappings.

[', [`, ]' and ]`
		move the cursor to the next/previous lowercase mark.

g_		Go to last non-blank in line. (Steve Wall)


Options: ~

'autoread'	When detected that a file changed outside of Vim,
		automatically read a buffer again when it's not changed.
		It has a global and a local value.  Use ":setlocal autoread<"
		to go back to using the global value for 'autoread'.

'debug'		When set to "msg" it will print error messages that would
		otherwise be omitted.  Useful for debugging 'indentexpr' and
		'foldexpr'.

'lispwords'	List of words used for lisp indenting.  It was previously hard
		coded.  Added a number of Lisp names to the default.

'fold...'	Many new options for folding.

'modifiable'	When off, it is impossible to make changes to a buffer.
		The %m and %M items in 'statusline' show a '-'.

'previewwindow' Set in the preview window.  Used in a session file to mark a
		window as the preview window.

'printfont'
'printexpr'
'printheader'
'printdevice'
'printoptions'	for ":hardcopy".

'buflisted'	Makes a buffer appear in the buffer list or not.

Use "vim{version}:" for modelines, only to be executed when the version is
>= {version}.  Also "vim>{version}", "vim<{version}" and "vim={version}".


Ex commands: ~

:sav[eas][!] {file}
		Works like ":w file" and ":e #", but without loading the file
		again and avoiding other side effects. |:saveas|

:silent[!] {cmd}
		Execute a command silently.  Also don't use a delay that would
		come after the message.  And don't do 'showmatch'.
		RISCOS: Removed that "!~cmd" didn't output anything, and
		didn't wait for <Enter> afterwards.  Can use ":silent !cmd"
		now.
:menu <silent>  Add a menu that won't echo Ex commands.
:map <silent>   Add a mapping that won't echo Ex commands.

:checktime	Check for changed buffers.

:verbose {cmd}  Set 'verbose' for one command.

:echomsg {expr}
:echoerr {expr} Like ":echo" but store the message in the history. (Mark
		Waggoner)

:grepadd	Works just like ":grep" but adds to the current error list
		instead of defining a new list. |:grepadd|

:finish		Finish sourcing a file.  Can be used to skip the rest of a Vim
		script. |:finish|

:leftabove
:aboveleft	Split left/above current window.

:rightbelow
:belowright	Split right/below current window.

:first, :bfirst, :ptfirst, etc.
		Alias for ":rewind".  It's more logical compared to ":last".

:enew		Edit a new, unnamed buffer.  This is needed, because ":edit"
		re-edits the same file. (Wall)

:quitall	Same as ":qall".

:match		Define match highlighting local to a window.  Allows
		highlighting an item in the current window without interfering
		with syntax highlighting.

:menu enable
:menu disable	Commands to enable/disable menu entries without removing them.
		(Monish Shah)

:windo		Execute a command in all windows.
:bufdo		Execute a command in all buffers.

:wincmd		Window (CTRL-W) command.  Useful when a Normal mode command
		can't be used (e.g., for a CursorHold autocommand).  See
		|CursorHold-example| for a nice application with it.

:lcd and :lchdir
		Set local directory for a window. (Benjie Chen)

:hide {command}
		Execute {command} with 'hidden' set.

:emenu		in Visual mode to execute a ":vmenu" entry.

:popup		Pop up a popup menu.

:redraw		Redraw the screen even when busy with a script or function.

:hardcopy	Print to paper.

:compiler	Load a Vim script to do settings for a specific compiler.

:z#		List numbered lines. (Bohdan Vlasyuk)


New marks: ~

'( and ')	Begin or end of current sentence.  Useful in Ex commands.
'{ and '}	Begin or end of current paragraph.  Useful in Ex commands.
'.		Position of the last change in the current buffer.
'^		Position where Insert mode was stopped.

Store the ^ and . marks in the viminfo file.  Makes it possible to jump to the
last insert position or changed text.


New functions: ~
argidx()	Current index in argument list.
buflisted()	Checks if the buffer exists and has 'buflisted' set.
cindent()	Get indent according to 'cindent'.
eventhandler()	Returns 1 when inside an event handler and interactive
		commands can't be used.
executable()	Checks if a program or batch script can be executed.
filewritable()	Checks if a file can be written. (Ron Aaron)
foldclosed()	Find out if there is a closed fold. (Johannes Zellner).
foldcloseend()	Find the end of a closed fold.
foldlevel()	Find out the foldlevel. (Johannes Zellner)
foreground()	Move the GUI window to the foreground.
getchar()	Get one character from the user.  Can be used to define a
		mapping that takes an argument.
getcharmod()	Get last used key modifier.
getbufvar()	gets the value of an option or local variable in a buffer (Ron
		Aaron)
getfsize()	Return the size of a file.
getwinvar()	gets the value of an option or local variable in a window (Ron
		Aaron)
globpath()	Find matching files in a list of directories.
hasmapto()	Detect if a mapping to a string is already present.
iconv()		Convert a string from one encoding to another.
indent()	gets the indent of a line (Ron Aaron)
inputdialog()	Like input() but use a GUI dialog when possible.  Currently
		only works for Win32, Motif, Athena and GTK.
		Use inputdialog() for the Edit/Settings/Text Width menu.  Also
		for the Help/Find.. and Toolbar FindHelp items.
		(Win32 support by Thore B. Karlsen)
		(Win16 support by Vince Negri)
inputsecret()	Ask the user to type a string without showing the typed keys.
		(Charles Campbell)
libcall()	for Unix (Neil Bird, Johannes Zellner, Stephen Wall)
libcallnr()	for Win32 and Unix
lispindent()	Get indent according to 'lisp'.
mode()		Return a string that indicates the current mode.
nextnonblank()	Skip blank lines forwards.
prevnonblank()	Skip blank lines backwards.  Useful to for indent scripts.
resolve()	MS-Windows: resolve a shortcut to the file it points to.
		Unix: resolve a symbolic link.
search()	Search for a pattern.
searchpair()	Search for matching pair.  Can be used in indent files to find
		the "if" matching an endif.
setbufvar()	sets an option or variable local to a buffer (Ron Aaron)
setwinvar()	sets an option or variable local to a window (Ron Aaron)
stridx()	Search for first occurrence of one string in another.
strridx()	Search for last occurrence of one string in another.
tolower()	Convert string to all-lowercase.
toupper()	Convert string to all-uppercase.
type()		Check the type of an expression.
wincol()	window column of the cursor
winwidth()	Width of a window. (Johannes Zellner)
winline()	window line of the cursor


Added expansion of curly braces in variable and function names.  This can be
used for variable names that include the value of an option.  Or a primitive
form of arrays. (Vince Negri)


New autocommand events: ~
BufWinEnter	Triggered when a buffer is displayed in a window, after using
		the modelines.  Can be used to load a view.
BufWinLeave	Triggered when a buffer is no longer in a window.  Also
		triggered when exiting Vim.  Can be used to save views.
FileChangedRO	Triggered before making the first change to a read-only file.
		Can be used to check-out the file. (Scott Graham)
TermResponse	Triggered when the terminal replies to the version-request.
		The v:termresponse internal variable holds the result.  Can be
		used to react to the version of the terminal.  (Ronald Schild)
FileReadCmd	Triggered before reading a file.
BufReadCmd	Triggered before reading a file into a buffer.
FileWriteCmd	Triggered before writing a file.
BufWriteCmd	Triggered before writing a buffer into a file.
FileAppendCmd	Triggered before appending to a file.
FuncUndefined	Triggered when a user function is not defined. (Ron Aaron)

The autocommands for the *Cmd events read or write the file instead of normal
file read/write.  Use this in netrw.vim to be able to edit files on a remote
system. (Charles Campbell)


New Syntax files: ~

bdf		BDF font definition (Nikolai Weibull)
catalog		SGML catalog (Johannes Zellner)
debchangelog	Debian Changelog (Wichert Akkerman)
debcontrol	Debian Control (Wichert Akkerman)
dot		dot (Markus Mottl)
dsl		DSSSL syntax (Johannes Zellner)
eterm		Eterm configuration (Nikolai Weibull)
indent		Indent profile (Nikolai Weibull)
lftp		LFTP (Nikolai Weibull)
lynx		Lynx config (Doug Kearns)
mush		mush sourcecode (Bek Oberin)
natural		Natural (Marko Leipert)
pilrc		Pal resource compiler (Brian Schau)
plm		PL/M (Philippe Coulonges)
povini		Povray configuration (David Necas)
ratpoison	Ratpoison config/command (Doug Kearns)
readline	readline config (Nikolai Weibull)
screen		Screen RC (Nikolai Weibull)
specman		Specman (Or Freund)
sqlforms	SQL*Forms (Austin Ziegler)
terminfo	terminfo (Nikolai Weibull)
tidy		Tidy configuration (Doug Kearns)
wget		Wget configuration (Doug Kearns)


Updated many syntax files to work both with Vim 5.7 and 6.0.

Interface to Ruby. (Shugo Maeda)
Support dynamic loading of the Ruby interface on MS-Windows. (Muraoka Taro)
Support this for Mingw too. (Benoit Cerrina)

Win32: Added possibility to load TCL dynamically. (Muraoka Taro)
Also for Borland 5.5. (Dan Sharp)

Win32: When editing a file that is a shortcut (*.lnk file), edit the file it
links to.  Unless 'binary' is set, then edit the shortcut file itself.
(Yasuhiro Matsumoto)

The ":command" command now accepts a "-bar" argument.  This allows the user
command to be followed by "| command".

The preview window is now also used by these commands:
- |:pedit| edits the specified file in the preview window
- |:psearch| searches for a word in included files, like |:ijump|, and
  displays the found text in the preview window.
Added the CTRL-W P command: go to preview window.

MS-DOS and MS-Windows also read the system-wide vimrc file $VIM/vimrc.  Mostly
for NT systems with multiple users.

A double-click of the mouse on a character that has a "%" match selects from
that character to the match.  Similar to "v%".

"-S session.vim" argument: Source a script file when starting up.  Convenient
way to start Vim with a session file.

Added "--cmd {command}" Vim argument to execute a command before a vimrc file
is loaded. (Vince Negri)

Added the "-M" Vim argument: reset 'modifiable' and 'write', thus disallow
making changes and writing files.

Added runtime/delmenu.vim.  Source this to remove all menus and prepare for
loading new menus.  Useful when changing 'langmenu'.

Perl script to filter Perl error messages to quickfix usable format. (Joerg
Ziefle)

Added runtime/macros/less.vim: Vim script to simulate less, but with syntax
highlighting.

MS-Windows install program: (Jon Merz)
- The Win32 program can now create shortcuts on the desktop and install Vim in
  the Start menu.
- Possibly remove old "Edit with Vim" entries.
- The Vim executable is never moved or $PATH changed.  A small batch file is
  created in a directory in $PATH.  Fewer choices to be made.
- Detect already installed Vim versions and offer to uninstall them first.

Improved the MS-Windows uninstal program.  It now also deletes the entries in
the Start menu, icons from the desktop and the created batch files. (Jon Merz)
Also made it possible to delete only some of these.  Also unregister gvim for
OLE.

Generate a self-installing Vim package for MS-Windows.  This uses NSIS. (Jon
Merz et al.)

Added ":filetype detect".  Try detecting the filetype again.  Helps when
writing a new shell script, after adding "#!/bin/csh".

Added ":augroup! name" to delete an autocommand group.  Needed for the
client-server "--remote-wait".

Add the Vim version number to the viminfo file, useful for debugging.

==============================================================================
IMPROVEMENTS						*improvements-6*

Added the 'n' flag in 'cpoptions': When omitted text of wrapped lines is not
put between line numbers from 'number' option.  Makes it a lot easier to read
wrapped lines.

When there is a format error in a tags file, the byte position is reported so
that the error can be located.

"gf" works in Visual mode: Use the selected text as the file name. (Chase
Tingley)

Allow ambiguous mappings.  Thus "aa" and "aaa" can both be mapped, the longest
matching one is used.  Especially useful for ":lmap" and 'keymap'.

Encryption: Ask the key to be typed twice when crypting the first time.
Otherwise a typo might cause the text to be lost forever. (Chase Tingley)

The window title now has "VIM" on the end.  The file name comes first, useful
in the taskbar.  A "+" is added when the file is modified.  "=" is added for
a read-only file.  "-" is added for a file with 'modifiable' off.

In Visual mode, mention the size of the selected area in the 'showcmd'
position.

Added the "b:changedtick" variable.  Incremented at each change, also for
undo.  Can be used to take action only if the buffer has been changed.

In the replacement string of a ":s" command "\=" can be used to replace with
the result of an expression.  From this expression the submatch() function can
be used to access submatches.

When doing ":qall" and there is a change in a buffer that is being edited in
another window, jump to that window, instead of editing that buffer in the
current window.

Added the "++enc=" and "++ff=" arguments to file read/write commands to force
using the given 'encoding' or 'fileformat'.  And added the "v:cmdarg"
variable, to be used for FileReadCmd autocommands that read/write the file
themselves.

When reading stdin, first read the text in binary mode and then re-read it
with automatic selection of 'fileformat' and 'fileencoding'.  This avoids
problems with not being able to rewind the file (e.g., when a line near the
end of the file ends in LF instead of CR-LF).
When reading text from stdin and the buffer is empty, don't mark it changed.
Allows exiting without trouble.

Added an ID to many error messages.  This will make it easier to find help for
a message.

Insert mode:
- "CTRL-G j" and "CTRL-G k" can be used to insert in another line in the same
  column.  Useful for editing a table.
- Added Thesaurus completion with CTRL-X CTRL-T. (Vince Negri)
- Added the 'thesaurus' option, to use instead of 'dictionary' for thesaurus
  completion.  Added the 's' flag in 'complete'.
- Made CTRL-X CTRL-L in Insert mode use the 'complete' option.  It now also
  scans other loaded buffers for matching lines.
- CTRL-R now also works in Insert mode while doing completion with CTRL-X or
  CTRL-N. (Neil Bird)
- When doing Insert mode completion, when completion is finished check for a
  match with words from 'cinkeys' or 'indentkeys'.

Performance:
- Made display updating more efficient.  Insert/delete lines may be used for
  all changes, also for undo/redo.
- The display is not redrawn when there is typeahead in Insert mode.  Speeds
  up CTRL-R a lot.
- Improved speed of screen output for 32 bit DOS version. (Vince Negri)
- When dragging with the mouse, there is a lookahead to skip mouse codes when
  there is another one next.  Makes dragging with the mouse a lot faster.
- Also a memory usage improvement: When calling u_save with a single line,
  don't save it if the line was recently saved for the same undo already.
- When using a script that appends one character at a time, the amount of
  allocated memory was growing steadily.  Also when 'undolevels' is -1.
  Caused by the line saved for "U" never to be freed.  Now free an undo block
  when it becomes empty.
- GUI and Dos32: Use a vertical scroll region, to make scrolling in a
  vertically split window faster.  No need to redraw the whole window.
- When scrolling isn't possible with terminal codes (e.g., for a vertically
  split window) redraw from ScreenLines[].  That should be faster than going
  through the lines with win_line(), especially when using syntax
  highlighting.
- The Syntax menu is now pre-generated by a separate script.  Makes loading
  the menu 70% faster.  This can halve the startup time of gvim.
- When doing ":help tag", don't open help.txt first, jump directly to the help
  tag.  It's faster and avoids an extra message.
- Win32: When a file name doesn't end in ".lnk" don't try resolving a
  shortcut, it takes quite a bit of time.
- Don't update the mouse pointer shape while there are typeahead characters.
- Change META[] from a string into an array, avoids using strchr() on it.
- Don't clear the command line when adding characters, avoids that screen_fill
  is called but doesn't do anything.

Robustness:
- Unix: Check for running out of stack space when executing a regexp.  Avoids
  a nasty crash.  Only works when the system supports running the signal
  function on another stack.
- Disallow ":source <dirname>".  On unix it's possible to read a directory,
  does not make sense to use it as Vim commands.

Security:
- When reading from or writing to a temporary file, check that it isn't a
  symbolic link.  Gives some protection against symlink attacks.
- When creating a backup file copy or a swap file, check for it already
  existing to avoid a symlink attack. (Colin Phipps)
- Evaluating options which are an expression is done in a |sandbox|.  If the
  option was set by a modeline, it cannot cause damage.
- Use a secure way to generate temp file names: Create a private directory for
  temp files.  Used for Unix, MS-DOS and OS/2.
- 'makeef' can be empty, which means that an internally generated file name is
  used.  The old default was "/tmp/file", which is a security risk.
  Writing 'makeef' in the current directory fails in a read-only directory and
  causes trouble when using ":grep" on all files.  Made the default empty for
  all systems, so that a temp file is used.
- The command from a tags file is executed in the sandbox for better security.
- The Ruby, Tcl and Python interfaces cannot be used from the sandbox.  They
  might do dangerous things.  Perl is still possible, but limited to the Safe
  environment. (Donnie Smith)

Syntax highlighting:
- Optimized the speed by caching the state stack all over the file, not just
  the part being displayed.  Required for folding.
- Added ":syntax sync fromstart": Always parse from the start of the file.
- Added the "display" argument for syntax items: use the item only when
  displaying the result.  Can make parsing faster for text that isn't going to
  be displayed.
- When using CTRL-L, the cached states are deleted, to force parsing the text
  again.
- Use elfhash algorithm for table of keywords.  This should give a better
  distribution and speedup keyword lookup. (Campbell)
- Also allow the "lc" leading context for skip and end patterns. (Scott
  Bigham)
- Syntax items can have the "extend" argument to undo the effect of a
  "keepend" argument of an item it is contained in.  Makes it possible to have
  some contained items extend a region while others don't.
- ":syntax clear" now deletes the b:current_syntax variable.  That's logical,
  since no syntax is defined after this command.
- Added ":syntax enable": switch on syntax highlighting without changing the
  colors.  This allows specifying the colors in the .vimrc file without the
  need for a mysyntaxfile.
- Added ":syntax reset": reset the colors to their defaults.
- Added the "contains=TOP" and "contains=CONTAINED" arguments.  Makes it
  possible to define a transparent item that doesn't contain itself.
- Added a "containedin" argument to syntax items.  Allows adding a contained
  item to an existing item (e.g., to highlight a name in a comment).

Modeless selection:
- When in the command-line window, use modeless selection in the other
  windows.  Makes it possible to copy visible text to the command-line window.
- Support modeless selection on the cmdline in a terminal.  Previously it was
  only possible for the GUI.
- Make double-right-click in modeless selection select a whole word.  Single
  right click doesn't use the word selection started by a double-left-click.
  Makes it work like in Visual mode.
- The modeless selection no longer has an implied automatic copy to the
  clipboard.  It now obeys the 'a' and 'A' flags in 'guioptions' or
  "autoselect" and "autoselectml" in 'clipboard'.
- Added the CTRL-Y command in Cmdline-mode to copy the modeless selection to
  the clipboard.  Also works at the hit-enter prompt and the more prompt.
  Removed the mappings in runtime/mswin.vim for CTRL-Y and CTRL-Z in
  cmdline-mode to be able to use CTRL-Y in the new way.

Reduced the amount of stack space used by regmatch() to allow it to handle
complicated patterns on a longer text.

'isfname' now includes '%' and '#'.  Makes "vim dir\#file" work for MS-DOS.

Added keypad special keys <kEnter>, <k0> - <k9>.  When not mapped they behave
like the ASCII equivalent. (Ivan Wellesz and Vince Negri)
Recognize a few more xterm keys: <C-Right>, <C-Left>, <C-End>, <C-Home>

Also trigger the BufUnload event when Vim is going to exit.  Perhaps a script
needs to do some cleaning up.

Expand expression in backticks: `={expr}`.  Can be used where backtick
expansion is done. (Vince Negri)

GUI:
- Added 'L' and 'R' flags in 'guioptions': Add a left or right scrollbar only
  when there is a vertically split window.
- X11: When a color can't be allocated, use the nearest match from the
  colormap.  This avoids that black is used for many things. (Monish Shah)
  Also do this for the menu and scrollbar, to avoid that they become black.
- Win32 and X11: Added 'mouseshape' option: Adjust the mouse pointer shape to
  the current mode. (Vince Negri)
- Added the 'linespace' option: Insert a pixel line between lines. (Nam)
- Allow modeless selection (without moving the cursor) by keeping CTRL and
  SHIFT pressed. (Ivan Wellesz)
- Motif: added toolbar. (Gordon Prieur)  Also added tooltips.
- Athena: added toolbar and tooltips. (David Harrison -- based on Gordon
  Prieur's work)
- Made the 'toolbar' option work for Athena and Motif.  Can now switch between
  text and icons on the fly.  (David Harrison)
- Support menu separator lines for Athena.  (David Harrison)
- Athena: Adjust the arrow pixmap used in a pullright menu to the size of the
  font. (David Harrison)
- Win32: Added "c" flag to 'guifont' to be able to specify the charset. (Artem
  Khodush)
- When no --enable-xim argument is given, automatically enable it when a X GUI
  is used.  Required for dead key support (and multi-byte input).
- After a file selection dialog, check that the edited files were not changed
  or deleted.  The Win32 dialog allows deleting and renaming files.
- Motif and Athena: Added support for "editres". (Marcin Dalecki)
- Motif and Athena: Added "menuFont" to be able to specify a font or fontset
  for the menus.  Can also be set with the "Menu" highlight group.  Useful
  when the locale is different from 'encoding'. (David Harrison)
  When FONTSET_ALWAYS is defined, always use a fontset for the menus.  Should
  avoid trouble with changing from a font to a fontset.  (David Harrison)
- Highlighting and font for the tooltips can be specified with the "Tooltip"
  highlight group. (David Harrison)
- The Cmdline-mode menus can be used at the more-prompt.  This mostly works
  fine, because they start with a CTRL-C.  The "Copy" menu works to copy the
  modeless selection.  Allows copying the output of ":set all" or ":intro"
  without auto-selection.
- When starting the GUI when there is no terminal connected to stdout and
  stderr, display error messages in a dialog.  Previously they wouldn't be
  displayed at all.
- Allow setting 'browsedir' to the name of a directory, to be used for the
  file dialog. (Dan Sharp)
- b:browsefilter and g:browsefilter can be set to the filters used for the
  file dialog.  Supported for Win32 and Motif GUI. (Dan Sharp)

X11:
- Support for the clipboard selection as register "+.  When exiting or
  suspending copy the selection to cut buffer 0.  Should allow copy/paste with
  more applications in a X11-standard way.  (Neil Bird)
- Use the X clipboard in any terminal, not just in an xterm.
  Added "exclude:" in 'clipboard': Specify a pattern to match against terminal
  names for which no connection should be made to the X server.  The default
  currently work for FreeBSD and Linux consoles.
- Added a few messages for when 'verbose' is non-zero to show what happens
  when trying to connect to the X server.  Should help when trying to find out
  why startup is slow.

GTK GUI: (partly by Marcin Dalecki)
- With some fonts the characters can be taller than ascent + descent.  E.g.,
  "-misc-fixed-*-*-*-*-18-*-*-*-*-*-iso10646-1".  Add one to the character
  cell height.
- Implement "no" value for 'winaltkeys': don't use Alt-Key as a menu shortcut,
  when 'wak' changed after creating the menus.
- Setting 'wak' after the GUI started works.
- recycle text GC's to reduce communication.
- Adjust icon size to window manager.
- Cleanup in font handling.
- Replace XQueryColor with GDK calls.
- Gnome support.  Detects Gnome in configure and uses different widgets.
  Otherwise it's much like GTK. (Andy Kahn)
  It is disabled by default, because it causes a few problems.
- Removed the special code to fork first and then start the GUI.  Now use
  _exit() instead of exit(), this works fine without special tricks.
- Dialogs sometimes appeared a bit far away.  Position the dialogs inside
  the gvim window. (Brent Verner)
- When dropping a file on Vim, remove extra slashes from the start of the
  path.  Also shorten the file name if possible.

Motif: (Marcin Dalecki)
- Made the dialog layout better.
- Added find and find/replace dialogs.
- For the menus, change "iso-8859" to "iso_8859", Linux appears to need this.
- Added icon to dialogs, like for GTK.
- Use XPM bitmaps for the icon when possible.  Use the Solaris XpmP.h include
  file when it's available.
- Change the shadow of the toolbar items to get a visual feedback of it being
  pressed on non-LessTif.
- Use gadgets instead of windows for some items for speed.

Command line completion:
- Complete environment variable names. (Mike Steed)
- For ":command", added a few completion methods: "mapping", "function",
  "expression" and "environment".
- When a function doesn't take arguments, let completion add () instead of (.

For MS-DOS, MS-Windows and OS/2: Expand %VAR% environment variables like $VAR.
(Walter Briscoe)

Redirect messages to the clipboard ":redir @*" and to the unnamed register
":redir @"". (Wall)

":let @/ = ''" clears the search pattern, instead of setting it to an empty
string.

Expression evaluation:
- "? :" can be used like in C.
- col("$") returns the length of the cursor line plus one. (Stephen P. Wall)
- Optional extra argument for match(), matchend() and matchstr(): Offset to
  start looking for a match.
- Made third argument to strpart() optional.  (Paul Moore, Zdenek Sekera)
- exists() can also be used to check for Ex commands and defined autocommands.
- Added extra argument to input(): Default text.
- Also set "v:errmsg" when using ":silent! cmd".
- Added the v:prevcount variable: v:count for the previous command.
- Added "v:progname", name with which Vim was started. (Vince Negri)
- In the verbose message about returning from a function, also show the return
  value.

Cscope:
- Added the cscope_connection() function. (Andy Kahn)
- ":cscope kill -1" kills all cscope connections. (Andy Kahn)
- Added the 'cscopepathcomp' option. (Scott Hauck)
- Added ":scscope" command, split window and execute Cscope command. (Jason
  Duell)

VMS:
- Command line arguments are always uppercase.  Interpret a "-X" argument as
  "-x" and "-/X" as "-X".
- Set 'makeprg' and 'grepprg' to meaningful defaults. (Zoltan Arpadffy)
- Use the X-clipboard feature and the X command server. (Zoltan Arpadffy)

Macintosh: (Dany St-Amant)
- Allow a tags file to have CR, CR-LF or LF line separator. (Axel Kielhorn)
- Carbonized (while keeping non Carbon code)
  (Some work "stolen" from Ammon Skidmore)
- Improved the menu item index handling (should be faster)
- Runtime commands now handle / in file name (MacOS 9 version)
- Added ":winpos" support.
- Support using "~" in file names for home directory.

Options:
- When using set += or ^= , check for items used twice.  Duplicates are
  removed.  (Vince Negri)
- When setting an option that is a list of flags, remove duplicate flags.
- If possible, use getrlimit() to set 'maxmemtot' and 'maxmem'. (Pina)
- Added "alpha" to 'nrformats': increment or decrement an alphabetic character
  with CTRL-A and CTRL-X.
- ":set opt&vi" sets an option to its Vi default, ":set opt&vim" to its Vim
  default.  Useful to set 'cpo' to its Vim default without knowing what flags
  that includes.
- 'scrolloff' now also applies to a long, wrapped line that doesn't fit in the
  window.
- Added more option settings to the default menus.
- Updated the option window with new options.  Made it a bit easier to read.

Internal changes:
- Split line pointers in text part and attributes part.  Allows for future
  change to make attribute more than one byte.
- Provide a qsort() function for systems that don't have it.
- Changed the big switch for Normal mode commands into a table.  This cleans
  up the code considerably and avoids trouble for some optimizing compilers.
- Assigned a negative value to special keys, to avoid them being mixed up with
  Unicode characters.
- Global variables expand_context and expand_pattern were not supposed to be
  global.  Pass them to ExpandOne() and all functions called by it.
- No longer use the global reg_ic flag.  It caused trouble and in a few places
  it was not set.
- Removed the use of the stuff buffer for "*", "K", CTRL-], etc.  Avoids
  problem with autocommands.
- Moved some code from ex_docmd.c to ex_cmds2.c.  The file was getting too
  big.  Also moved some code from screen.c to move.c.
- Don't include the CRC table for encryption, generate it.  Saves quite a bit
  of space in the source code. (Matthias Kramm)
- Renamed multibyte.c to mbyte.c to avoid a problem with 8.3 filesystems.
- Removed the GTK implementation of ":findhelp", it now uses the
  ToolBar.FindHelp  menu entry.
- Renamed mch_windexit() to mch_exit(), mch_init() to mch_early_init() and
  mch_shellinit() to mch_init().

Highlighting:
- In a ":highlight" listing, show "xxx" with the highlight color.
- Added support for xterm with 88 or 256 colors.  The right color numbers will
  be used for the name used in a ":highlight" command. (Steve Wall)
- Added "default" argument for ":highlight".  When included, the command is
  ignored if highlighting for the group was already defined.
  All syntax files now use ":hi default ..." to allow the user to specify
  colors in his vimrc file.  Also, the "if did_xxx_syntax_inits" is not needed
  anymore.  This greatly simplifies using non-default colors for a specific
  language.
- Adjusted colortest.vim: Included colors on normal background and reduced the
  size by using a while loop. (Rafael Garcia-Suarez)
- Added the "DarkYellow" color name.  Just to make the list of standard colors
  consistent, it's not really a nice color to use.

When an xterm is in 8-bit mode this is detected by the code returned for
|t_RV|.  All key codes are automatically converted to their 8-bit versions.

The OPT_TCAP_QUERY in xterm patch level 141 and later is used to obtain the
actual key codes used and the number of colors for t_Co.  Only when |t_RV| is
also used.

":browse set" now also works in the console mode.  ":browse edit" will give an
error message.

":bdelete" and ":bunload" only report the number of deleted/unloaded buffers
when more than 'report'.  The message was annoying when deleting a buffer in a
script.

Jump list:
- The number of marks kept in the jumplist has been increased from 50 to 100.
- The jumplist is now stored in the viminfo file.  CTRL-O can be used to jump
  to positions from a previous edit session.
- When doing ":split" copy the jumplist to the new window.

Also set the '[ and '] marks for the "~" and "r" commands.  These marks are
now always set when making a change with a Normal mode command.

Python interface: Allow setting the width of a vertically split window. (John
Cook)

Added "=word" and "=~word" to 'cinkeys' (also used in 'indentkeys').

Added "j1" argument in 'cinoptions': indent {} inside () for Java. (Johannes
Zellner)
Added the "l" flag in 'cinoptions'. (Anduin Withers)
Added 'C', 'U', 'w' and 'm' flags to 'cinoptions'. (Servatius Brandt)

When doing ":wall" or ":wqall" and a modified buffer doesn't have a name,
mention its buffer number in the error message.

":function Name" lists the function with line numbers.  Makes it easier to
find out where an error happened.

In non-blockwise Visual mode, "r" replaces all selected characters with the
typed one, like in blockwise Visual mode.

When editing the last file in the argument list in any way, allow exiting.
Previously this was only possible when getting to that file with ":next" or
":last".

Added the '1' flag to 'formatoptions'. (Vit Stradal)
Added 'n' flag in 'formatoptions': format a numbered list.

Swap file:
- When a swap file already exists, and the user selects "Delete" at the
  ATTENTION prompt, use the same ".swp" swapfile, to avoid creating a ".swo"
  file which won't always be found.
- When giving the ATTENTION message and the date of the file is newer than the
  date of swap file, give a warning about this.
- Made the info for an existing swap file a bit shorter, so that it still fits
  on a 24 line screen.
- It was possible to make a symlink with the name of a swap file, linking to a
  file that doesn't exist.  Vim would then silently use another file (if open
  with O_EXCL refuses a symlink).  Now check for a symlink to exist.  Also do
  another check for an existing swap file just before creating it to catch a
  symlink attack.

The g CTRL-G command also works in Visual mode and counts the number of words.
(Chase Tingley)

Give an error message when using 'shell' and it's empty.

Added the possibility to include "%s" in 'shellpipe'.

Added "uhex" value for 'display': show non-printable characters as <xx>.
Show unprintable characters with NonText highlighting, also in the command
line.

When asked to display the value of a hidden option, tell it's not supported.

Win32:
- When dropping a shortcut on gvim (.lnk file) edit the target, not the
  shortcut itself.  (Yasuhiro Matsumoto)
- Added C versions of the OpenWithVim and SendToVim programs. (Walter Briscoe)
- When 'shell' is "cmd" or "cmd.exe", set 'shellredir' to redirect stderr too.
  Also check for the Unix shell names.
- When $HOMEDRIVE and $HOMEPATH are defined, use them to define $HOME.  (Craig
  Barkhouse)

Win32 console version:
- Includes the user and system name in the ":version" message, when available.
  It generates a pathdef.c file for this.  (Jon Miner)
- Set the window icon to Vim's icon (only for Windows 2000).  While executing
  a shell command, modify the window title to show this.  When exiting,
  restore the cursor position too.  (Craig Barkhouse)
- The Win32 console version can be compiled with OLE support.  It can only
  function as a client, not as an OLE server.

Errorformat:
- Let "%p" in 'errorformat' (column of error indicated by a row of characters)
  also accept a line of dots.
- Added "%v" item in 'errorformat': Virtual column number. (Dan Sharp)
- Added a default 'errorformat' value for VMS. (Jim Bush)

The "p" command can now be used in Visual mode.  It overwrites the selected
text with the contents of a register.

Highlight the <> items in the intro message to make clear they are special.

When using the "c" flag for ":substitute", allow typing "l" for replacing this
item and then stop: "last".

When printing a verbose message about sourcing another file, print the line
number.

When resizing the Vim window, don't use 'equalalways'.  Avoids that making the
Vim window smaller makes split windows bigger.  And it's what the docs say.

When typing CTRL-D in Insert mode, just after an autoindent, then hitting CR
kept the remaining white space.  Now made it work like BS: delete the
autoindent to avoid a blank non-empty line results.

Added a GetHwnd() call to the OLE interface.  (Vince Negri)

Made ":normal" work in an event handler.  Useful when dropping a file on Vim
and for CursorHold autocommands.

For the MS-Windows version, don't change to the directory of the file when a
slash is used instead of a backslash.  Explorer should always use a backslash,
the user can use a slash when typing the command.

Timestamps:
- When a buffer was changed outside of Vim and regaining focus, give a dialog
  to allow the user to reload the file.  Now also for other GUIs than
  MS-Windows.  And also used in the console, when compiled with dialog
  support.
- Inspect the file contents to find out if it really changed, ignore
  situations where only the time stamp changed (e.g., checking the file out
  from CVS).
- When checking the timestamp, first check if the file size changed, to avoid
  a file compare then.  Makes it quicker for large (log) files that are
  appended to.
- Don't give a warning for a changed or deleted file when 'buftype' is set.
- No longer warn for a changed directory.  This avoids that the file explorer
  produces warnings.
- Checking timestamps is only done for buffers that are not hidden.  These
  will be checked when they become unhidden.
- When checking for a file being changed outside of Vim, also check if the
  file permissions changed.  When the file contents didn't change but the
  permissions did, give a warning.
- Avoid checking too often, otherwise the dialog keeps popping up for a log
  file that steadily grows.

Mapping <M-A> when 'encoding' is "latin1" and then setting 'encoding' to
"utf-8" causes the first byte of a multi-byte to be mapped.  Can cause very
hard to find problems.  Disallow mapping part of a multi-byte character.

For ":python" and ":tcl" accept an in-line script. (Johannes Zellner)
Also for ":ruby" and ":perl". (Benoit Cerrina)

Made ":syn include" use 'runtimepath' when the file name is not a full path.

When 'switchbuf' contains "split" and the current window is empty, don't split
the window.

Unix: Catch SIGPWR to preserve files when the power is about to go down.

Sniff interface: (Anton Leherbauer)
- fixed windows code, esp. the event handling stuff
- adaptations for sniff 4.x ($SNIFF_DIR4)
- support for adding sniff requests at runtime

Support the notation <A-x> as an alias for <M-x>.  This logical, since the Alt
key is used.

":find" accepts a count, which means that the count'th match in 'path' is
used.

":ls" and ":buffers" output shows modified/readonly/modifiable flag.  When a
buffer is active show "a" instead of nothing.  When a buffer isn't loaded
show nothing instead of "-".

Unix install:
- When installing the tools, set absolute paths in tools scripts efm_perl.pl
  and mve.awk.  Avoids that the user has to edit these files.
- Install Icons for KDE when the directories exist and the icons do not exist
  yet.

Added has("win95"), to be able to distinguish between MS-Windows 95/98/ME and
NT/2000/XP in a Vim script.

When a ":cd" command was typed, echo the new current directory. (Dan Sharp)

When using ":winpos" before the GUI window has been opened, remember the
values until it is opened.

In the ":version" output, add "/dyn" for features that are dynamically loaded.
This indicates the feature may not always work.

On Windows NT it is possible that a directory is read-only, but a file can be
deleted.  When making a backup by renaming the file and 'backupdir' doesn't
use the current directory, this causes the original file to be deleted,
without the possibility to create a new file.  Give an extra error message
then to warn to user about this.

Made CTRL-R CTRL-O at the command line work like CTRL-R CTRL-R, so that it's
consistent with Insert mode.

==============================================================================
COMPILE TIME CHANGES					*compile-changes-6*

All generated files have been moved out of the "src" directory.  This makes it
easy to see which files are not edited by hand.  The files generated by
configure are now in the "src/auto" directory.  For Unix, compiled object
files go in the objects directory.

The source archive was over the 1.4M floppy limit.  The archives are now split
up into two runtime and two source archives.  Also provide a bzip2 compressed
archive that contains all the sources and runtime files.

Added "reconfig" as a target for make.  Useful when changing some of the
arguments that require flushing the cache, such as switching from GTK to
Motif.  Adjusted the meaning of GUI_INC_LOC and GUI_LIB_LOC to be consistent
over different GUIs.

Added src/README.txt to give an overview of the main parts of the source code.

The Unix Makefile now fully supports using $(DESTDIR) to install to a specific
location.  Replaces the manual setting of *ENDLOC variables.

Added the possibility for a maintainer of a binary version to include his
e-mail address with the --with-compiledby configure argument.

Included features are now grouped in "tiny", "small", "normal", "big" and
"huge".  This replaces "min-features" and "max-features".  Using "tiny"
disables multiple windows for a really small Vim.

For the tiny version or when FEAT_WINDOWS is not defined: Firstwin and lastwin
are equal to curwin and don't use w_next and w_prev.

Added the +listcmds feature.  Can be used to compile without the Vim commands
that manipulate the buffer list and argument list (the buffer list itself is
still there, can't do without it).

Added the +vreplace feature.  It is disabled in the "small" version to avoid
that the 16 bit DOS version runs out of memory.

Removed GTK+ support for versions older than 1.1.16.

The configure checks for using PTYs have been improved.  Code taken from a
recent version of screen.

Added configure options to install Vim, Ex and View under another name (e.g.,
vim6, ex6 and view6).

Added "--with-global-runtime" configure argument.  Allows specifying the
global directory used in the 'runtimepath' default.

Made enabling the SNiFF+ interface possible with a configure argument.

Configure now always checks /usr/local/lib for libraries and
/usr/local/include for include files.  Helps finding the stuff for iconv() and
gettext().

Moved the command line history stuff into the +cmdline_hist feature, to
exclude the command line history from the tiny version.

MS-Windows: Moved common functions from Win16 and Win32 to os_mswin.c.  Avoids
having to change two files for one problem.  (Vince Negri)

Moved common code from gui_w16.c and gui_w32.c to gui_w48.c (Vince Negri)

The jumplist is now a separate feature.  It is disabled for the "small"
version (16 bit MS-DOS).

Renamed all types ending in _t to end in _T.  Avoids potential problems with
system types.

Added a configure check for X11 header files that implicitly define the return
type to int. (Steve Wall)

"make doslang" in the top directory makes an archive with the menu and .mo
files for Windows.  This uses the files generated on Unix, these should work
on MS-Windows as well.

Merged a large part of os_vms.c with os_unix.c.  The code was duplicated in
the past which made maintenance more work.  (Zoltan Arpadffy)

Updated the Borland C version 5 Makefile: (Dan Sharp)
- Fixed the Perl build
- Added python and tcl builds
- Added dynamic perl and dynamic python builds
- Added uninstal.exe build
- Use "yes" and "no" for the options, like in Make_mvc.mak.

Win32: Merged Make_gvc.mak and Make_ovc.mak into one file: Make_ivc.mak.  It's
much smaller, many unnecessary text has been removed. (Walter Briscoe)
Added Make_dvc.mak to be able to debug exe generated with Make_mvc.mak in
MS-Devstudio. (Walter Briscoe)

MS-Windows: The big gvim.exe, which includes OLE, now also includes
dynamically loaded Tcl, Perl and Python.  This uses ActivePerl 5.6.1,
ActivePython 2.1.1 and ActiveTCL 8.3.3

Added AC_EXEEXT to configure.in, to check if the executable needs ".exe" for
Cygwin or MingW.  Renamed SUFFIX to EXEEXT in Makefile.

Win32: Load comdlg32.dll delayed for faster startup.  Only when using VC 6.
(Vipin Aravind)

Win32: When compiling with Borland, allow using IME. (Yasuhiro Matsumoto)

Win32: Added Makefile for Borland 5 to compile gvimext.dll. (Yasuhiro
Matsumoto)

==============================================================================
BUG FIXES						*bug-fixes-6*

When checking the command name for "gvim", "ex", etc. ignore case.  Required
for systems where case is ignored in command names.

Search pattern "[a-c-e]" also matched a 'd' and didn't match a '-'.

When double-clicking in another window, wasn't recognized as double click,
because topline is different.  Added set_mouse_topline().

The BROKEN_LOCALE check was broken.  (Marcin Dalecki)

When "t_Co" is set, the default colors remain the same, thus wrong.  Reset the
colors after changing "t_Co". (Steve Wall)

When exiting with ":wqall" the messages about writing files could overwrite
each other and be lost forever.

When starting Vim with an extremely long file name (around 1024 characters) it
would crash.  Added a few checks to avoid buffer overflows.

CTRL-E could get stuck in a file with very long lines.

":au syntax<Tab>" expanded event names while it should expand groups starting
with "syntax".

When expanding a file name caused an error (e.g., for <amatch>) it was
produced even when inside an "if 0".

'cindent' formatted C comments differently from what the 'comments' option
specified. (Steve Wall)

Default for 'grepprg' didn't include the file name when only grepping in one
file.  Now /dev/null has been added for Unix.

Opening the option window twice caused trouble.  Now the cursor goes to the
existing option window.

":sview" and ":view" didn't set 'readonly' for an existing buffer.  Now do set
'readonly', unless the buffer is also edited in another window.

GTK GUI: When 'guioptions' excluded 'g', the more prompt caused the toolbar
and menubar to disappear and resize the window (which clears the text).
Now always grey-out the toplevel menus to avoid that the menubar changes size
or disappears.

When re-using the current buffer for a new buffer, buffer-local variables were
not deleted.

GUI: when 'scrolloff' is 0 dragging the mouse above the window didn't cause a
down scroll.  Now pass on a mouse event with mouse_row set to -1.

Win32: Console version didn't work on telnet, because of switching between two
console screens.  Now use one console screen and save/restore the contents
when needed.  (Craig Barkhouse)

When reading a file the magic number for encryption was included in the file
length. (Antonio Colombo)

The quickfix window contained leading whitespace and NULs for multi-line
messages. (David Harrison)

When using cscope, redundant tags were removed.  This caused a numbering
problem, because they were all listed.  Don't remove redundant cscope tags.
(David Bustos).

Cscope: Test for which matches are in the current buffer sometimes failed,
causing a jump to another match than selected. (David Bustos)

Win32: Buffer overflow when adding a charset name in a font.

'titlestring' and 'iconstring' were evaluating an expression in the current
context, which could be a user function, which is a problem for local
variables vs global variables.

Win32 GUI: Mapping <M-F> didn't work.  Now handle SHIFT and CTRL in
_OnSysChar().

Win32 GUI: (on no file), :vs<CR>:q<CR> left a trail of pixels down the middle.
Could also happen for the ruler.  screen_puts() didn't clear the right char in
ScreenLines[] for the bold trick.

Win32: ":%!sort|uniq" didn't work, because the input file name touches the
"|".  Insert a space before the "|".

OS/2: Expanding wildcards included non-existing files.  Caused ":runtime" to
fail, which caused syntax highlighting to fail.

Pasting a register containing CTRL-R on the command line could cause an
endless loop that can't be interrupted.  Now it can be stopped with CTRL-C.

When 'verbose' is set, a message for file read/write could overwrite the
previous message.
When 'verbose' is set, the header from ":select" was put after the last
message.  Now start a new line.

The hit-enter prompt reacted to the response of the t_RV string, causing
messages at startup to disappear.

When t_Co was set to 1, colors were still used.  Now only use color when t_Co
> 1.

Listing functions with ":function" didn't quit when 'q' or ':' was typed at
the more prompt.

Use mkstemp() instead of mktemp() when it's available, avoids a warning for
linking on FreeBSD.

When doing Insert mode completion it's possible that b_sfname is NULL.  Don't
give it to printf() for the "Scanning" message.

":set runtimepath-=$VIMRUNTIME" didn't work, because expansion of wildcards
was done after trying to remove the string.  Now for ":set opt+=val" and ":set
opt-=val" the expansion of wildcards is done before adding or removing "val".

Using CTRL-V with the "r" command with a blockwise Visual selection inserted a
CTRL-V instead of getting a special character.

Unix: Changed the order of libraries: Put -lXdmcp after -lX11 and -lSM -lICE
after -lXdmcp.  Should fix link problem on HP-UX 10.20.

Don't remove the last "-lm" from the link line.  Vim may link but fail later
when the GUI starts.

When the shell returns with an error when trying to expand wildcards, do
include the pattern when the "EW_NOTFOUND" flag was set.
When expanding wildcards with the shell fails, give a clear error message
instead of just "1 returned".

Selecting a Visual block, with the start partly on a Tab, deleting it leaves
the cursor too far to the left.  Causes "s" to work in the wrong position.

Pound sign in normal.c caused trouble on some compilers.  Use 0xA3 instead.

Warning for changing a read-only file wasn't given when 'insertmode' was set.

Win32: When 'shellxquote' is set to a double quote (e.g., using csh), ":!start
notepad file" doesn't work.  Remove the double quotes added by 'shellxquote'
when using ":!start". (Pavol Juhas)

The "<f-args>" argument of ":command" didn't accept Tabs for white space.
Also, don't add an empty argument when there are trailing blanks.

":e test\\je" edited "test\je", but ":next test\\je" edited "testje".
Backslashes were removed one time too many for ":next".

VMS: "gf" didn't work properly.  Use vms_fixfilename() to translate the file
name. (Zoltan Arpadffy)

After ":hi Normal ctermbg=black ctermfg=white" and suspending Vim not all
characters are redrawn with the right background.

When doing "make test" without +eval or +windows feature, many tests failed.
Now have test1 generate a script to copy the correct output, so that a test
that doesn't work is skipped.

On FreeBSD the Perl interface added "-lc" to the link command and Python added
"-pthread".  These two don't work together, because the libc_r library should
be used.  Removed "-lc" from Perl, it should not be needed.
Also: Add "-pthread" to $LIBS, so that the checks for functions is done with
libc_r.  Sigaltstack() appears to be missing from libc_r.

The Syntax sub-menus were getting too long, reorganized them and added another
level for some languages.

Visual block "r"eplace didn't work well when a Tab is partly included.
(Matthias Kramm)

When yanking a Visual block, where some lines end halfway the block, putting
the text somewhere else doesn't insert a block.  Padd with spaces for missing
characters.  Added "y_width" to struct yankreg. (Matthias Kramm)

If a substitute string has a multibyte character after a backslash only the
first byte of it was skipped. (Muraoka Taro)

Win32: Numeric keypad keys were missing from the builtin termcap entry.

When a file was read-only ":wa!" didn't force it to be written. (Vince Negri)

Amiga: A file name starting with a colon was considered absolute but it isn't.
Amiga: ":pwd" added a slash when in the root of a drive.

Don't let 'ttymouse' default to "dec" when compiled with dec mouse support.
It breaks the gpm mouse (Linux console).

The prototypes for the Perl interface didn't work for threaded Perl.  Added a
sed command to remove the prototypes from proto/if_perl.pro and added them
manually to if_perl.xs.

When ":w!" resets the 'readonly' option the title and status lines were not
updated.

":args" showed the current file when the argument list was empty.  Made this
work like Vi: display nothing.

"99:<C-U>echo v:count" echoed "99" in Normal mode, but 0 in Visual mode.
Don't set v:count when executing a stuffed command.

Amiga: Got a requester for "home:" because it's in the default runtime path.
Don't bring up a requester when searching for a file in 'path', sourcing the
.vimrc file or using ":runtime".

Win16 and Win32: Considered a file "\path\file" absolute.  Can cause the same
file to appear as two different buffers.

Win32: Renaming a file to an empty string crashed Vim.  Happened when using
explorer.vim and hitting ESC at the rename prompt.

Win32: strftime() crashed when called with a "-1" value for the time.

Win32 with Borland compiler: mch_FullName() didn't work, caused tag file not
to be found.

Cscope sometimes jumped to the wrong tag. (David Bustos)

OS/2: Could not find the tags file.  mch_expand_wildcards() added another
slash to a directory name.

When using ">>" the `] mark was not in the last column.

When Vim was compiled without menu support, filetype.vim was still trying to
source the menu.vim script. (Rafael Garcia-Suarez)

":ptag" added an item to the tag stack.

Win32 IME: "gr" didn't use IME mode.

In the "vim --help" message the term "options" was used for arguments.  That's
confusing, call them "arguments".

When there are two windows, and a BufUnload autocommand for closing window #1
closed window #2, Vim would crash.

When there is a preview window and only one other window, ":q" wouldn't exit.

In Insert mode, when cancelling a digraph with ESC, the '?' wasn't removed.

On Unix glob(".*") returned "." and "..", on Windows it didn't.  On Windows
glob("*") also returned files starting with a dot.  Made this work like Unix
on all systems.

Win32: Removed old code to open a console.  Vimrun is now used and works fine.

Compute the room needed by the intro message accurately, so that it also fits
on a 25 line console. (Craig Barkhouse)

":ptnext" was broken.  Now remember the last tag used in the preview window
separately from the tagstack.

Didn't check for "-display" being the last argument. (Wichert Akkerman)

GTK GUI: When starting "gvim" under some conditions there would be an X error.
Don't replace the error handler when creating the xterm clipboard. (Wichert
Akkerman)

Adding a space after a help tag caused the tag not to be found.  E.g., ":he
autoindent ".

Was trying to expand a URL into a full path name.  On Windows this resulted in
the current directory to be prepended to the URL.  Added vim_isAbsName() and
vim_FullName() to avoid that various machine specific functions do it
differently.

":n *.c" ":cd .." ":n" didn't use the original directory of the file.  Vi only
does it for the current file (looks like a bug).  Now remember the buffer used
for the entry in the argument list and use its name (adjusted when doing
":cd"), unless it's deleted.

When inserting a special key as its name ("<F8>" as four characters) after
moving around in Insert mode, undo didn't work properly.

Motif GUI: When using the right mouse button, for some people gvim froze for
a couple of seconds (Motif 1.2?).  This doesn't happen when there is no Popup
menu.  Solved by only creating a popup menu when 'mousemodel' is "popup" or
"popup_setpos". (David Harrison)

Motif: When adding many menu items, the "Help" menu disappeared but the
menubar didn't wrap.  Now manually set the menubar height.

When using <BS> in Insert mode to remove a line break, or using "J" to join
lines, the cursor could end up halfway a multi-byte character. (Muraoka Taro)

Removed defining SVR4 in configure.  It causes problems for some X header
files and doesn't appear to be used anywhere.

When 'wildignore' is used, 'ignorecase' for a tag match was not working.

When 'wildignore' contains "*~" it was impossible to edit a file ending in a
"~".  Now don't recognize a file ending in "~" as containing wildcards.

Disabled the mouse code for OS/2.  It was not really used.

":mksession" always used the full path name for a buffer, also when the short
name could be used.
":mkvimrc" and ":mksession" didn't save 'wildchar' and 'pastetoggle' in such a
way that they would be restored.  Now use the key name if possible, this is
portable.

After recovering a file and abandoning it, an ":edit" command didn't give the
ATTENTION prompt again.  Would be useful to be able to delete the file in an
easy way.  Reset the BF_RECOVERED flag when unloading the buffer.

histdel() could match or ignore case, depending on what happened before it.
Now always match case.

When a window size was specified when splitting a window, it would still get
the size from 'winheight' or 'winwidth' if it's larger.

When using "append" or "insert" inside a function definition, a line starting
with "function" or "endfunction" caused confusion.  Now recognize the commands
and skip lines until a ".".

At the end of any function or sourced file need_wait_return could be reset,
causing messages to disappear when redrawing.

When in a while loop the line number for error messages stayed fixed.  Now the
line number is remembered in the while loop.

"cd c:/" didn't work on MS-DOS.  mch_isdir() removed a trailing slash.

MS-Windows: getftime() didn't work when a directory had a trailing slash or
backslash.  Didn't show the time in the explorer because of this.

When doing wildcard completion, a directory "a/" sorted after "a-b".  Now
recognize path separators when sorting files.

Non-Unix systems: When editing "c:/dir/../file" and "c:/file" they were
created as different buffers, although it's the same file.  Expand to a full
file name also when an absolute name contains "..".

"g&" didn't repeat the last substitute properly.

When 'clipboard' was set to "unnamed", a "Y" command would not write to "0.
Now make a copy of register 0 to the clipboard register.

When the search pattern matches in many ways, it could not always be
interrupted with a CTRL-C.  And CTRL-C would have to be hit once for every
line when 'hlsearch' is on.
When 'incsearch' is on and interrupting the search for a match, don't abandon
the command line.

When turning a directory name into a full path, e.g., with fnamemodify(),
sometimes a slash was added.  Make this consistent: Don't add a slash.

When a file name contains a "!", using it in a shell command will cause
trouble: ":!cat %".  Escape the "!" to avoid that.  Escape it another time
when 'shell' contains "sh".

Completing a file name that has a tail that starts with a "~" didn't work:
":e view/~<Tab>".

Using a ":command" argument that contains < and > but not for a special
argument was not skipped properly.

The DOS install program: On Win2000 the check for a vim.exe or gvim.exe in
$PATH didn't work, it always found it in the current directory.
Rename the vim.exe in the current dir to avoid this. (Walter Briscoe)

In the MS-DOS/Windows install program, use %VIM% instead of an absolute path,
so that moving Vim requires only one change in the batch file.

Mac: mch_FullName() changed the "fname" argument and didn't always initialize
the buffer.

MS-DOS: mch_FullName() didn't fix forward/backward slashes in an absolute file
name.

"echo expand("%:p:h")" with an empty file name removed one directory name on
MS-DOS.  For Unix, when the file name is a directory, the directory name was
removed.  Now make it consistent: "%:p" adds a path separator for all systems,
but no path separator is added in other situations.

Unix: When checking for a CTRL-C (could happen any time) and there is an X
event (e.g., clipboard updated) and there is typeahead, Vim would hang until a
character was typed.

MS-DOS, MS-Windows and Amiga: expanding "$ENV/foo" when $ENV ends in a colon,
had the slash removed.

":he \^=" gave an error for using \_.  ":he ^=" didn't find tag :set^=.  Even
"he :set^=" didn't find it.

A tags file name "D:/tags" was used as file "tags" in "D:".  That doesn't work
when the current path for D: isn't the root of the drive.

Removed calls to XtInitializeWidgetClass(), they shouldn't be necessary.

When using a dtterm or various other color terminals, and the Normal group has
been set to use a different background color, the background wouldn't always
be displayed with that color.  Added check for "ut" termcap entry: If it's
missing, clearing the screen won't give us the current background color.  Need
to draw each character instead.  Vim now also works when the "cl" (clear
screen) termcap entry is missing.

When repeating a "/" search command with a line offset, the "n" did use the
offset but didn't make the motion linewise.  Made "d/pat/+2" and "dn" do the
same.

Win32: Trying to use ":tearoff" for a menu that doesn't exist caused a crash.

OpenPTY() didn't work on Sequent.  Add a configure check for getpseudotty().

C-indenting: Indented a line starting with ")" with the matching "(", but not
a line starting with "x)" looks strange.  Also compute the indent for aligning
with items inside the () and use the lowest indent.

MS-DOS and Windows: ":n *.vim" also matched files ending in "~".
Moved mch_expandpath() from os_win16.c and os_msdos.c to misc1.c, they are
equal.

Macintosh: (Dany St-Amant)
- In Vi-compatible mode didn't read files with CR line separators.
- Fixed a bug in the handling of Activate/Deactivate Event
- Fixed a bug in gui_mch_dialog (using wrong pointer)

Multibyte GDK XIM: While composing a multibyte-word, if user presses a
mouse button, then the word is removed.  It should remain and composing end.
(Sung-Hyun Nam)

MS-DOS, MS-Windows and OS/2: When reading from stdin, automatic CR-LF
conversion by the C library got in the way of detecting a "dos" 'fileformat'.

When 'smartcase' is set, patterns with "\S" would also make 'ignorecase'
reset.

When clicking the mouse in a column larger than 222, it moved to the first
column.  Can't encode a larger number in a character.  Now limit the number to
222, don't jump back to the first column.

GUI: In some versions CSI would cause trouble, either when typed directly or
when part of a multi-byte sequence.

When using multibyte characters in a ":normal" command, a trailing byte that
is CSI or K_SPECIAL caused problems.

Wildmenu didn't handle multi-byte characters.

":sleep 10" could not be interrupted on Windows, while "gs" could.  Made them
both work the same.

Unix: When waiting for a character is interrupted by an X-windows event (e.g.,
to obtain the contents of the selection), the wait time would not be honored.
A message could be overwritten quickly.  Now compute the remaining waiting
time.

Windows: Completing "\\share\c$\S" inserted a backslash before the $ and then
the name is invalid.  Don't insert the backslash.

When doing an auto-write before ":make", IObuff was overwritten and the wrong
text displayed later.

On the Mac the directories "c:/tmp" and "c:/temp" were used in the defaults
for 'backupdir' and 'directory', they don't exist.

The check for a new file not to be on an MS-DOS filesystem created the file
temporarily, which can be slow.  Don't do this if there is another check for
the swap file being on an MS-DOS filesystem.

Don't give the "Changing a readonly file" warning when reading from stdin.

When using the "Save As" menu entry and not entering a file name, would get an
error message for the trailing ":edit #".  Now only do that when the
alternate file name was changed.

When Vim owns the X11 selection and is being suspended, an application that
tries to use the selection hangs.  When Vim continues it could no longer
obtain the selection.  Now give up the selection when suspending.

option.h and globals.h were included in some files, while they were already
included in vim.h.  Moved the definition of EXTERN to vim.h to avoid doing it
twice.

When repeating an operator that used a search pattern and the search pattern
contained characters that have a special meaning on the cmdline (e.g., CTRL-U)
it didn't work.

Fixed various problems with using K_SPECIAL (0x80) and CSI (0x9b) as a byte in
a (multibyte) character.  For example, the "r" command could not be repeated.

The DOS/Windows install program didn't always work from a directory with a
long filename, because $VIM and the executable name would not have the same
path.

Multi-byte:
- Using an any-but character range [^x] in a regexp didn't work for UTF-8.
  (Muraoka Taro)
- When backspacing over inserted characters in Replace mode multi-byte
  characters were not handled correctly. (Muraoka Taro)
- Search commands "#" and "*" didn't work with multibyte characters. (Muraoka
  Taro)
- Word completion in Insert mode didn't work with multibyte characters.
  (Muraoka Taro)
- Athena/Motif GUI: when 'linespace' is non-zero the cursor would be drawn too
  wide (number of bytes instead of cell width).
- When changing 'encoding' to "euc-jp" and inserting a character Vim would
  crash.
- For euc-jp characters positioning the cursor would sometimes be wrong.
  Also, with two characters with 0x8e leading byte only the first one would be
  displayed.
- When using DYNAMIC_ICONV on Win32 conversion might fail because of using the
  wrong error number. (Muraoka Taro)
- Using Alt-x in the GUI while 'encoding' was set to "utf-8" didn't produce
  the right character.
- When using Visual block selection and only the left halve of a double-wide
  character is selected, the highlighting continued to the end of the line.
- Visual-block delete didn't work properly when deleting the right halve of a
  double-wide character.
- Overstrike mode for the cmdline replaced only the first byte of a multibyte
  character.
- The cursor in Replace mode (also in the cmdline) was to small on a
  double-wide character.
- When a multibyte character contained a 0x80 byte, it didn't work (was using
  a CSI byte instead). (Muraoka Taro)
- Wordwise selection with the mouse didn't work.
- Yanking a modeless selection of multi-byte characters didn't work.
- When 'selection' is "exclusive", selecting a word that ends in a multi-byte
  character used wrong highlighting for the following character.

Win32 with Make_mvc.mak: Didn't compile for debugging. (Craig Barkhouse)

Win32 GUI: When "vimrun.exe" is used to execute an external command, don't
give a message box with the return value, it was already printed by vimrun.
Also avoid printing the return value of the shell when ":silent!" is used.

Win32: selecting a lot of text and using the "find/replace" dialog caused a
crash.

X11 GUI: When typing a character with the 8th bit set and the Meta/Alt
modifier, the modifier was removed without changing the character.

Truncating a message to make it fit on the command line, using "..." for the
middle, didn't always compute the space correctly.

Could not imap <C-@>.  Now it works like <Nul>.

VMS:
- Fixed a few things for VAXC.  os_vms_fix.com had some strange CTRL-M
  characters. (Zoltan Arpadffy and John W. Hamill)
- Added VMS-specific defaults for the 'isfname' and 'isprint' options.
  (Zoltan Arpadffy)
- Removed os_vms_osdef.h, it's no longer used.

The gzip plugin used a ":normal" command, this doesn't work when dropping a
compressed file on Vim.

In very rare situations a binary search for a tag would fail, because an
uninitialized value happens to be half the size of the tag file. (Narendran)

When using BufEnter and BufLeave autocommands to enable/disable a menu, it
wasn't updated right away.

When doing a replace with the "c"onfirm flag, the cursor was positioned after
the ruler, instead of after the question.  With a long replacement string the
screen could scroll up and cause a "more" prompt.  Now the message is
truncated to make it fit.

Motif: The autoconf check for the Xp library didn't work.

When 'verbose' is set to list lines of a sourced file, defining a function
would reset the counter used for the "more" prompt.

In the Win32 find/replace dialog, a '/' character caused problems.  Escape it
with a backslash.

Starting a shell with ":sh" was different from starting a shell for CTRL-Z
when suspending doesn't work.  They now work the same way.

Jumping to a file mark while in a changed buffer gave a "mark not set" error.

":execute histget("cmd")" causes an endless loop and crashed Vim.  Now catch
all commands that cause too much recursiveness.

Removed "Failed to open input method" error message, too many people got this
when they didn't want to use a XIM.

GUI: When compiled without the +windows feature, the scrollbar would start
below line one.

Removed the trick with redefining character class functions from regexp.c.

Win32 GUI: Find dialog gives focus back to main window, when typing a
character mouse pointer is blanked, it didn't reappear when moving it in the
dialog window. (Vince Negri)

When recording and typing a CTRL-C, no character was recorded.  When in Insert
mode or cancelling half a command, playing back the recorded sequence wouldn't
work.  Now record the CTRL-C.

When the GUI was started, mouse codes for DEC and netterm were still checked
for.

GUI: When scrolling and 'writedelay' is non-zero, the character under the
cursor was displayed in the wrong position (one line above/below with
CTRL-E/CTRL-Y).

A ":normal" command would reset the 'scrollbind' info.  Causes problems when
using a ":normal" command in an autocommand for opening a file.

Windows GUI: a point size with a dot, like "7.5", wasn't recognized. (Muraoka
Taro)

When 'scrollbind' wasn't set would still remember the current position,
wasting time.

GTK: Crash when 'shell' doesn't exist and doing":!ls".  Use _exit() instead of
exit() when the child couldn't execute the shell.

Multi-byte:
- GUI with double-byte encoding: a mouse click in left halve of double-wide
  character put the cursor in previous char.
- Using double-byte encoding and 'selection' is "exclusive": "vey" and "^Vey"
  included the character after the word.
- When using a double-byte encoding and there is a lead byte at the end of the
  line, the preceding line would be displayed.  "ga" also showed wrong info.
- "gf" didn't include multi-byte characters before the cursor properly.
  (Muraoka Taro)

GUI: The cursor was sometimes not removed when scrolling.  Changed the policy
from redrawing the cursor after each call to gui_write() to only update it at
the end of update_screen() or when setting the cursor position.  Also only
update the scrollbars at the end of update_screen(), that's the only place
where the window text may have been scrolled.

Formatting "/*<Tab>long text", produced "* <Tab>" in the next line.  Now
remove the space before the Tab.
Formatting "/*<Tab>  long text", produced "* <Tab> long text" in the next
line.  Now keep the space after the Tab.

In some places non-ASCII alphabetical characters were accepted, which could
cause problems.  For example, ":X" (X being such a character).

When a pattern matches the end of the line, the last character in the line was
highlighted for 'hlsearch'.  That looks wrong for "/\%3c".  Now highlight the
character just after the line.

Motif: If a dialog was closed by clicking on the "X" of the window frame Vim
would no longer respond.

When using CTRL-X or CTRL-A on a number with many leading zeros, Vim would
crash. (Matsumoto)

When 'insertmode' is set, the mapping in mswin.vim for CTRL-V didn't work in
Select mode.  Insert mode wasn't restarted after overwriting the text.
Now allow nesting Insert mode with insert and change commands.  CTRL-O
cwfoo<Esc> now also works.

Clicking with the right mouse button in another window started Visual mode,
but used the start position of the current window.  Caused ml_get errors when
the line number was invalid.  Now stay in the same window.

When 'selection' is "exclusive", "gv" sometimes selected one character fewer.

When 'comments' contains more than one start/middle/end triplet, the optional
flags could be mixed up.  Also didn't align the end with the middle part.

Double-right-click in Visual mode didn't update the shown mode.

When the Normal group has a font name, it was never used when starting up.
Now use it when 'guifont' and 'guifontset' are empty.
Setting a font name to a highlight group before the GUI was started didn't
work.

"make test" didn't use the name of the generated Vim executable.

'cindent' problems:
- Aligned with an "else" inside a do-while loop for a line below that loop.
  (Meikel Brandmeyer)
- A line before a function would be indented even when terminated with a
  semicolon. (Meikel Brandmeyer)
- 'cindent' gave too much indent to a line after a "};" that ends an array
  init.
- Support declaration lines ending in "," and "\".  (Meikel Brandmeyer)
- A case statement inside a do-while loop was used for indenting a line after
  the do-while loop. (Meikel Brandmeyer)
- When skipping a string in a line with one double quote it could continue in
  the previous line. (Meikel Brandmeyer)

When 'list' is set, 'hlsearch' didn't highlight a match at the end of the
line.  Now highlight the '$'.

The Paste menu item in the menu bar, the popup menu and the toolbar were all
different.  Now made them all equal to how it was done in mswin.vim.

st_dev can be smaller than "unsigned".  The compiler may give an overflow
warning.  Added a configure check for dev_t.

Athena: closing a confirm() dialog killed Vim.

Various typos in the documentation. (Matt Dunford)

Python interface: The definition of _DEBUG could cause trouble, undefine it.
The error message for not being able to load the shared library wasn't
translated.  (Muraoka Taro)

Mac: (Dany St-Amant and Axel Kielhorn)
- Several fixes.
- Vim was eating 80% of the CPU time.
- The project os_mac.pbxproj didn't work,  Moved it to a subdirectory.
- Made the menu priority work for the menubar.
- Fixed a problem with dragging the scrollbar.
- Cleaned up the various #ifdefs.

Unix: When catching a deadly signal and we keep getting one use _exit() to
exit in a quick and dirty way.

Athena menu ordering didn't work correctly. (David Harrison)

A ":make" or ":grep" command with a long argument could cause a crash.

Doing ":new file" and using "Quit" for the ATTENTION dialog still opened a new
window.

GTK: When starting the GUI and there is an error in the .vimrc file, don't
present the wait-return prompt, since the message was given in the terminal.

When there was an error in a .vimrc file the terminal where gvim was started
could be cleared.  Set msg_row in main.c before writing any messages.

GTK and X11 GUI: When trying to read characters from the user (e.g. with
input()) before the Vim window was opened caused Vim to hang when it was
started from the desktop.

OS/390 uses 31 bit pointers.  That broke some computations with MAX_COL.
Reduce MAX_COL by one bit for OS/390. (Ralf Schandl)

When defining a function and it already exists, Vim didn't say it existed
until after typing it.  Now do this right away when typing it.

The message remembered for displaying later (keep_msg) was sometimes pointing
into a generic buffer, which might be changed by the time the message is
displayed.  Now make a copy of the message.

When using multi-byte characters in a menu and a trailing byte is a backslash,
the menu would not be created correctly.  (Muraoka Taro)
Using a multibyte character in the substitute string where a trail byte is a
backslash didn't work.  (Muraoka Taro)

When setting "t_Co" in a vimrc file, then setting it automatically from an
xterm termresponse and then setting it again manually caused a crash.

When getting the value of a string option that is not supported, the number
zero was returned.  This breaks a check like "&enc == "asdf".  Now an empty
string is returned for string options.

Crashed when starting the GTK GUI while using 'notitle' in the vimrc, setting
'title' in the gvimrc and starting the GUI with ":gui".  Closed the connection
to the X server accidentally.

Had to hit return after selecting an entry for ":ts".

The message from ":cn" message was sometimes cleared.  Now display it after
redrawing if it doesn't cause a scroll (truncated when necessary).

hangulin.c didn't compile when the GUI was disabled.  Disable it when it won't
work.

When setting a termcap option like "t_CO", the value could be displayed as
being for a normal key with a modifier, like "<M-=>".

When expanding the argument list, entries which are a directory name did not
get included.  This stopped "vim c:/" from opening the file explorer.

":syn match sd "^" nextgroup=asdf" skipped the first column and matched the
nextgroup in the second column.

GUI: When 'lazyredraw' is set, 'showmatch' didn't work.  Required flushing
the output.

Don't define the <NetMouse> termcode in an xterm, reduces the problem when
someone types <Esc> } in Insert mode.

Made slash_adjust() work correctly for multi-byte characters. (Yasuhiro
Matsumoto)
Using a filename in Big5 encoding for autocommands didn't work (backslash in
trailbyte).  (Yasuhiro Matsumoto)

DOS and Windows: Expanding *.vim also matched file.vimfoo.  Expand path like
Unix to avoid problems with Windows dir functions.  Merged the DOS and Win32
functions.

Win32: Gvimext could not edit more than a few files at once, the length of the
argument was fixed.

"ls -1 * | xargs vim" worked, but the input was in cooked mode.  Now switch to
raw mode when needed.  Use dup() to copy the stderr file descriptor to stdin
to make shell commands work.  No longer requires an external program to do
this.

When using ":filetype off", ftplugin and indent usage would be switched off at
the same time.  Don't do this, setting 'filetype' manually can still use them.

GUI: When writing a double-byte character, it could be split up in two calls
to gui_write(), which doesn't work.  Now flush before the output buffer
becomes full.

When 'laststatus' is set and 'cmdheight' is two or bigger, the intro message
would be written over the status line.
The ":intro" command didn't work when there wasn't enough room.

Configuring for Ruby failed with a recent version of Ruby. (Akinori Musha)

Athena: When deleting the directory in which Vim was started, using the file
browser made Vim exit.  Removed the use of XtAppError().

When using autoconf 2.50, UNIX was not defined.  Moved the comment for "#undef
UNIX" to a separate line.

Win32: Disabled _OnWindowPosChanging() to make maximize work better.

Win32: Compiling with VC 4.0 didn't work. (Walter Briscoe)

Athena:
- Finally fixed the problems with deleting a menu. (David Harrison)
- Athena: When closing the confirm() dialog, worked like OK was pressed,
  instead of Cancel.

The file explorer didn't work in compatible mode, because of line
continuation.

Didn't give an error message for ":digraph a".

When using Ex mode in the GUI and typing a special key, <BS> didn't delete it
correctly.  Now display '?' for a special key.

When an operator is pending, clicking in another window made it apply to that
window, even though the line numbers could be beyond the end of the buffer.

When a function call doesn't have a terminating ")" Vim could crash.

Perl interface: could crash on exit with perl 5.6.1. (Anduin Withers)

Using %P in 'errorformat' wasn't handled correctly. (Tomas Zellerin)

Using a syntax cluster that includes itself made Vim crash.

GUI: With 'ls' set to 2, dragging the status line all the way up, then making
the Vim window smaller: Could not the drag status line anymore.

"vim -c startinsert! file" placed cursor on last char of a line, instead of
after it.  A ":set" command in the buffer menu set w_set_curswant.  Now don't
do this when w_curswant is MAXCOL.

Win32: When the gvim window was maximized and selecting another font, the
window would no longer fill the screen.

The line with 'pastetoggle' in ":options" didn't show the right value when it
is a special key.  Hitting <CR> didn't work either.

Formatting text, resulting in a % landing in the first line, repeated the % in
the following lines, like it's the start of a comment.

GTK: When adding a toolbar item while gvim is already running, it wasn't
possible to use the tooltip.  Now it works by adding the tooltip first.

The output of "g CTRL-G" mentioned "Char" but it's actually bytes.

Searching for the end of a oneline region didn't work correctly when there is
an offset for the highlighting.

Syntax highlighting: When synchronizing on C-comments, //*/ was seen as the
start of a comment.

Win32: Without scrollbars present, the MS mouse scroll wheel didn't work.
Also handle the scrollbars when they are not visible.

Motif: When there is no right scrollbar, the bottom scrollbar would still
leave room for it.  (Marcin Dalecki)

When changing 'guicursor' and the value is invalid, some of the effects would
still take place.  Now first check for errors and only make the new value
effective when it's OK.

Using "A" In Visual block mode, appending to lines that don't extend into the
block, padding was wrong.

When pasting a block of text, a character that occupies more than one screen
column could be deleted and spaces inserted instead.  Now only do that with a
tab.

Fixed conversion of documentation to HTML using Perl. (Dan Sharp)

Give an error message when a menu name starts with a dot.

Avoid a hang when executing a shell from the GUI on HP-UX by pushing "ptem"
even when sys/ptem.h isn't present.

When creating the temp directory, make sure umask is 077, otherwise the
directory is not accessible when it was set to 0177.

Unix: When resizing the window and a redraw is a bit slow, could get a window
resize event while redrawing, resulting in a messed up window.  Any input
(e.g., a mouse click) would redraw.

The "%B" item in the status line became zero in Insert mode (that's normal)
for another than the current window.

The menu entries to convert to xxd and back didn't work in Insert mode.

When ":vglobal" didn't find a line where the pattern doesn't match, the error
message would be the wrong way around.

When ignoring a multi-line error message with "%-A", the continuation lines
would be used anyway. (Servatius Brandt)

"grx" on a double-wide character inserted "x", instead of replacing the
character with "x ".  "gR" on <xx> ('display' set the "uhex") didn't replace
at all.  When doing "gRxx" on a control character the first "x" would be
inserted, breaking the alignment.

Added "0)" to 'cinkeys', so that when typing a ) it is put in the same place
as where "==" would put it.

Win32: When maximized, adding/removing toolbar didn't resize the text area.

When using <C-RightMouse> a count was discarded.

When typing CTRL-V and <RightMouse> in the command line, would insert
<LeftMouse>.

Using "vis" or "vas" when 'selection' is exclusive didn't include the last
character.

When adding to an option like 'grepprg', leading space would be lost.  Don't
expand environment variables when there is no comma separating the items.

GUI: When using a bold-italic font, would still use the bold trick and
underlining.

Motif: The default button didn't work in dialogs, the first one was always
used.  Had to give input focus to the default button.

When using CTRL-T to jump within the same file, the '' mark wasn't set.

Undo wasn't Vi compatible when using the 'c' flag for ":s".  Now it undoes the
whole ":s" command instead of each confirmed replacement.

The Buffers menu, when torn-off, disappeared when being refreshed.  Add a
dummy item to avoid this.

Removed calling msg_start() in main(), it should not be needed.

vim_strpbrk() did not support multibyte characters. (Muraoka Taro)

The Amiga version didn't compile, the code was too big for relative jumps.
Moved a few files from ex_docmd.c to ex_cmds2.c

When evaluating the "= register resulted in the "= register being changed, Vim
would crash.

When doing ":view file" and it fails, the current buffer was made read-only.

Motif: For some people the separators in the toolbar disappeared when resizing
the Vim window. (Marcin Dalecki)

Win32 GUI: when setting 'lines' to a huge number, would not compute the
available space correctly.  Was counting the menu height twice.

Conversion of the docs to HTML didn't handle the line with the +quickfix tag
correctly. (Antonio Colombo)

Win32: fname_case() didn't handle multi-byte characters correctly. (Yasuhiro
Matsumoto)

The Cygwin version had trouble with fchdir().  Don't use that function for
Cygwin.

The generic check in scripts.vim for "conf" syntax was done before some checks
in filetype.vim, resulting in "conf" syntax too often.

Dos32: Typing lagged behind.  Would wait for one biostick when checking if a
character is available.

GTK: When setting 'columns' while starting up "gvim", would set the width of
the terminal it was started in.

When using ESC in Insert mode, an autoindent that wraps to the next line
caused the cursor to move to the end of the line temporarily.  When the
character before the cursor was a double-wide multi-byte character the cursor
would be on the right halve, which causes problems with some terminals.

Didn't handle multi-byte characters correctly when expanding a file name.
(Yasuhiro Matsumoto)

Win32 GUI: Errors generated before the GUI is decided to start were not
reported.

globpath() didn't reserve enough room for concatenated results. (Anduin
Withers)

When expanding an option that is very long already, don't do the expansion, it
would be truncated to MAXPATHL. (Anduin Withers)

When 'selection' is "exclusive", using "Fx" in Visual mode only moved until
just after the character.

When using IME on the console to enter a file name, the screen may scroll up.
Redraw the screen then. (Yasuhiro Matsumoto)

Motif: In the find/replace dialog the "Replace" button didn't work first time,
second time it replaced all matches.  Removed the use of ":s///c".
GTK: Similar problems with the find/replace dialog, moved the code to a common
function.

X11: Use shared GC's for text. (Marcin Dalecki)

"]i" found the match under the cursor, instead of the first one below it.
Same for "]I", "] CTRL-I", "]d", "]D" and "] CTRL-D".

Win16: When maximized and the font is changed, don't change the window size.
(Vince Negri)

When 'lbr' is set, deleting a block of text could leave the cursor in the
wrong position.

Win32: When opening a file with the "Edit with Vim" popup menu entry,
wildcards would cause trouble.  Added the "--literal" argument to avoid
expanding file names.

When using "gv", it didn't restore that "$" was used in Visual block mode.

Win32 GUI: While waiting for a shell command to finish, the window wasn't
redrawn at all. (Yasuhiro Matsumoto)

Syntax highlighting: A match that continues on a next line because of a
contained region didn't end when that region ended.

The ":s" command didn't allow flags like 'e' and 'i' right after it.

When using ":s" to split a line, marks were moved to the next line.  Vi keeps
them in the first line.

When using ":n" ":rew", the previous context mark was at the top of the file,
while Vi puts it in the same place as the cursor.  Made it Vi compatible.

Fixed Vi incompatibility: Text was not put in register 1 when using "c" and
"d" with a motion character, when deleting within one line with one of the
commands: % ( ) `<character> / ? N n { }

Win32 GUI: The tooltip for tear-off items remained when the tear-off item was
no longer selected.

GUI: When typing ":" at the more prompt, would return to Normal mode and not
redraw the screen.

When starting Vim with an argument "-c g/at/p" the printed lines would
overwrite each other.

BeOS: Didn't compile.  Configure didn't add the os_beos files, the QNX check
removed them.  Various changes to os_beos.cc. (Joshua Haberman)
Removed the check for the hardware platform, the BeBox has not been produced
for a long time now.

Win32 GUI: don't use a message box when the shell returns an error code,
display the message in the Vim window.

Make_mvc.mak always included "/debug" for linking.  "GUI=no" argument didn't
work.  Use "DEBUG=yes" instead of "DEBUG=1" to make it consistent. (Dan Sharp)

When a line in the tags file ended in ;" (no TAB following) the command would
not be recognized as a search command.

X11: The inputMethod resource never worked.  Don't use the "none" input method
for SGI, it apparently makes the first character in Input method dropped.

Fixed incorrect tests in os_mac.h. (Axel Kielhorn)

Win32 console: When the console where Vim runs in is closed, Vim could hang in
trying to restore the window icon. (Yasuhiro Matsumoto)

When using ":3call func()" or ":3,3call func() the line number was ignored.

When 'showbreak' and 'linebreak' were both set, Visual highlighting sometimes
continued until the end of the line.

GTK GUI: Tearoff items were added even when 'guioptions' didn't contain 't'
when starting up.

MS-Windows: When the current directory includes a "~", searching files with
"gf" or ":find" didn't work.  A "$" in the directory had the same problem.
Added mch_has_exp_wildcard() functions.

When reducing the Vim window height while starting up, would get an
out-of-memory error message.

When editing a very long search pattern, 'incsearch' caused the redraw of the
command line to fail.

Motif GUI: On some systems the "Help" menu would not be on the far right, as
it should be.  On some other systems (esp. IRIX) the command line would not
completely show.  Solution is to only resize the menubar for Lesstif.

Using "%" in a line that contains "\\" twice didn't take care of the quotes
properly.  Now make a difference between \" and \\".

For non-Unix systems a dummy file is created when finding a swap name to
detect a 8.3 filesystem.  When there is an existing swap file, would get a
warning for the file being created outside of Vim.  Also, when closing the Vim
window the file would remain.

Motif: The menu height was always computed, using a "-menuheight" argument
was setting the room for the command line.  Now make clear the argument is not
supported.

For some (EBCDIC) systems, POUND was equal to '#'.  Added an #if for that to
avoid a duplicate case in a switch.

The GUI may have problems when forking.  Always call _exit() instead of exit()
in the parent, the child will call exit().

Win32 GUI: Accented characters were often wrong in dialogs and tearoff menus.
Now use CP_ACP instead of CP_OEMCP. (Vince Negri)

When displaying text with syntax highlighting causes an error (e.g., running
out of stack) the syntax highlighting is disabled to avoid further messages.

When a command in a .vimrc or .gvimrc causes an ATTENTION prompt, and Vim was
started from the desktop (no place to display messages) it would hang.  Now
open the GUI window early to be able to display the messages and pop up the
dialog.

"r<CR>" on a multi-byte character deleted only the first byte of the
character.  "3r<CR>" deleted three bytes instead of three characters.

When interrupting reading a file, Vi considers the buffer modified.  Added the
'i' flag in 'cpoptions' flag for this (we don't want it modified to be able to
do ":q").

When using an item in 'guicursor' that starts with a colon, Vim would get
stuck or crash.

When putting a file mark in a help file and later jumping back to it, the
options would not be set.  Extended the modeline in all help files to make
this work better.

When a modeline contained "::" the local option values would be printed.  Now
ignore it.

Some help files did not use a 8.3 names, which causes problems when using
MS-DOS unzip.  Renamed "multibyte.txt" to "mbyte.txt", "rightleft.txt" to
"rileft.txt", "tagsearch.txt" to "tagsrch.txt", "os_riscos.txt" to
"os_risc.txt".

When Visual mode is blockwise, using "iw" or "aw" made it characterwise.  That
doesn't seem right, only do this when in linewise mode.  But then do it
always, not only when start and end of Visual mode are equal.

When using "viw" on a single-letter word and 'selection' is exclusive, would
not include the word.

When formatting text from Insert mode, using CTRL-O, could mess up undo
information.

While writing a file (also for the backup file) there was no check for an
interrupt (hitting CTRL-C).  Vim could hang when writing a large file over a
slow network, and moving the mouse didn't make it appear (when 'mousehide' is
set) and the screen wasn't updated in the GUI.  Also allow interrupting when
syncing the swap file, it can take a long time.

When using ":mksession" while there is help window, it would later be restored
to the right file but not marked as a help buffer.  ":help" would then open
another window.  Now use the value "help" for 'buftype' to mark a help buffer.

The session file contained absolute path names in option values, that doesn't
work when the home directory depends on the situation.  Replace the home
directory with ~/ when possible.

When using 'showbreak' a TAB just after the shown break would not be counted
correctly, the cursor would be positioned wrong.

With 'showbreak' set to "--->" or "------->" and 'sts' set to 4, inserting
tabs did not work right.  Could cause a crash.  Backspacing was also wrong,
could get stuck at a line break.

Win32: crashed when tearing off a menu with over 300 items.

GUI: A menu or toolbar item would appear when only a tooltip was defined for
it.

When 'scrolloff' is non-zero and "$" is in 'cpoptions', using "s" while the
last line of the file is the first line on screen, the text wasn't displayed.

When running "autoconf", delete the configure cache to force starting cleanly
when configure is run again.

When changing the Normal colors for cterm, the value of 'background' was
changed even when the GUI was used.

The warning for a missing vimrun.exe was always given on startup, but some
people just editing a file don't need to be bothered by it.  Only show it when
vimrun would be used.

When using "%" in a multibyte text it could get confused by trailbytes that
match. (Muraoka Taro)

Termcap entry for RiscOS was wrong, using 7 and 8 in octal codes.

Athena: The title of a dialog window and the file selector window were not
set. (David Harrison)

The "htmlLink" highlight group specified colors, which gives problems when
using a color scheme.  Added the "Underlined" highlight group for this.

After using ":insert" or ":change" the '[ mark would be one line too low.

When looking for the file name after a match with 'include' one character was
skipped.  Same for 'define'.

Win32 and DJGPP: When editing a file with a short name in a directory, and
editing the same file but using the long name, would end up with two buffers
on the same file.

"gf" on a filename that starts with "../" only worked when the file being
edited is in the current directory.  An include file search didn't work
properly for files starting with "../" or ".".  Now search both relative to
the file and to the current directory.

When 'printheader', 'titlestring', 'iconstring', 'rulerformat' or 'statusline'
contained "%{" but no following "}" memory was corrupted and a crash could
happen.

":0append" and then inserting two lines did not redraw the blank lines that
were scrolled back down.

When using insert mode completion in a narrow window, the message caused a
scroll up.  Now shorten the message if it doesn't fit and avoid writing the
ruler over the message.

XIM still didn't work correctly on some systems, especially SGI/IRIX.  Added
the 'imdisable' option, which is set by default for that system.

Patch 6.0aw.008
Problem:    When the first character of a file name is over 127, the Buffers
	    menu entry would get a negative priority and cause problems.
Solution:   Reduce the multiplier for the first character when computing
	    the hash value for a Buffers menu entry.
Files:	    runtime/menu.vim

Patch 6.0aw.010
Problem:    Win32: ":browse edit dir/dir" didn't work. (Vikas)
Solution:   Change slashes to backslashes in the directory passed to the file
	    browser.
Files:	    src/gui_w48.c

Athena file browser: On some systems wcstombs() can't be used to get the
length of a multi-byte string.  Use the maximum length then. (Yasuhiro
Matsumoto)

Patch 6.0ax.001
Problem:    When 'patchmode' is set, appending to a file gives an empty
	    original file. (Ed Ralston)
Solution:   Also make a backup copy when appending and 'patchmode' is set.
Files:	    src/fileio.c

Patch 6.0ax.002
Problem:    When 'patchmode' is set, appending to a compressed file gives an
	    uncompressed original file. (Ed Ralston)
Solution:   Create the original file before decompressing.
Files:	    runtime/plugin/gzip.vim

Patch 6.0ax.005
Problem:    Athena file selector keeps the title of the first invocation.
Solution:   Set the title each time the file selector is opened. (David
	    Harrison)
Files:	    src/gui_at_fs.c

Patch 6.0ax.007
Problem:    When using GPM (mouse driver in a Linux console) a double click is
	    interpreted as a scroll wheel click.
Solution:   Check if GPM is being used when deciding if a mouse event is for
	    the scroll wheel.
Files:	    src/term.c

Patch 6.0ax.010
Problem:    The Edit.Save menu and the Save toolbar button didn't work when
	    the buffer has no file name.
Solution:   Use a file browser to ask for a file name.  Also fix the toolbar
	    Find item in Visual mode.
Files:	    runtime/menu.vim

Patch 6.0ax.012
Problem:    When 'cpoptions' contains "$", breaking a line for 'textwidth'
	    doesn't redraw properly. (Stefan Schulze)
Solution:   Remove the dollar before breaking the line.
Files:	    src/edit.c

Patch 6.0ax.014
Problem:    Win32: On Windows 98 ":make -f file" doesn't work when 'shell' is
	    "command.com" and 'makeprg' is "nmake".  The environment isn't
	    passed on to "nmake".
Solution:   Also use vimrun.exe when redirecting the output of a command.
Files:	    src/os_win32.c

Patch 6.0ax.016
Problem:    The version number was reported wrong in the intro screen.
Solution:   Check for a version number with two additional letters.
Files:	    src/version.c

Patch 6.0ax.019
Problem:    When scrolling a window with folds upwards, switching to another
	    vertically split window and back may not update the scrollbar.
Solution:   Limit w_botline to the number of lines in the buffer plus one.
Files:	    src/move.c


==============================================================================
VERSION 6.1						*version-6.1*

This section is about improvements made between version 6.0 and 6.1.

This is a bug-fix release, there are not really any new features.


Changed							*changed-6.1*
-------

'iminsert' and 'imsearch' are no longer set as a side effect of defining a
language-mapping using ":lmap".


Added							*added-6.1*
-----

Syntax files:
ampl		AMPL (David Krief)
ant		Ant (Johannes Zellner)
baan		Baan (Her van de Vliert)
cs		C# (Johannes Zellner)
lifelines	Lifelines (Patrick Texier)
lscript		LotusScript (Taryn East)
moo		MOO (Timo Frenay)
nsis		NSIS (Alex Jakushev)
ppd		Postscript Printer Description (Bjoern Jacke)
rpl		RPL/2 (Joel Bertrand)
scilab		Scilab (Benoit Hamelin)
splint		Splint (Ralf Wildenhues)
sqlj		SQLJ (Andreas Fischbach)
wvdial		WvDial (Prahlad Vaidyanathan)
xf86conf	XFree86 config (Nikolai Weibull)
xmodmap		Xmodmap (Nikolai Weibull)
xslt		Xslt (Johannes Zellner)
monk		Monk (Mike Litherland)
xsd		Xsd (Johannes Zellner)
cdl		CDL (Raul Segura Acevedo)
sendpr		Send-pr (Hendrik Scholz)

Added indent file for Scheme. (Dorai Sitaram)
Added indent file for Prolog. (Kontra Gergely)
Added indent file for Povray (David Necas)
Added indent file for IDL (Aleksandar Jelenak)
Added C# indent and ftplugin scripts.

Added Ukrainian menu translations. (Bohdan Vlasyuk)
Added ASCII version of the Czech menus. (Jiri Brezina)

Added Simplified Chinese translation of the tutor. (Mendel L Chan)

Added Russian keymap for yawerty keyboard.

Added an explanation of using the vimrc file in the tutor.
Changed tutor.vim to get the right encoding for the Taiwainese tutor.

Added Russian tutor. (Andrey Kiselev)
Added Polish tutor. (Mikolaj Machowski)

Added darkblue color scheme. (Bohdan Vlasyuk)

When packing the dos language archive automatically generate the .mo files
that are required.

Improved NSIS script to support NSIS 180.  Added icons for the
enabled/disabled status. (Mirek Pruchnik)

cp1250 version of the Slovak message translations.

Compiler plugins for IRIX compilers. (David Harrison)


Fixed							*fixed-6.1*
-----

The license text was updated to make the meaning clearer and make it
compatible with the GNU GPL.  Otherwise distributors have a problem when
linking Vim with a GPL'ed library.

When installing the "less.sh" script it was not made executable. (Chuck Berg)

Win32: The "9" key on the numpad wasn't working. (Julian Kinraid)

The NSIS install script didn't work with NSIS 1.80 or later.  Also add
Vim-specific icons. (Pruchnik)

The script for conversion to HTML contained an "if" in the wrong place.
(Michael Geddes)

Allow using ":ascii" in the sandbox, it's harmless.

Removed creat() from osdef2.h.in, it wasn't used and may cause a problem when
it's redefined to creat64().

The text files in the VisVim directory were in "dos" format.  This caused
problems when applying a patch.  Now keep them in "unix" format and convert
them to "dos" format only for the PC archives.

Add ruby files to the dos source archive, they can be used by Make_mvc.mak.
(Mirek Pruchnik)

"cp -f" doesn't work on all systems.  Change "cp -f" in the Makefile to "rm
-f" and "cp".

Didn't compile on a Compaq Tandem Himalaya OSS. (Michael A. Benzinger)

The GTK file selection dialog didn't include the "Create Dir", "Delete File"
and "Rename File" buttons.

When doing ":browse source" the dialog has the title "Run Macro".  Better
would be "Source Vim script". (Yegappan Lakshmanan)

Win32: Don't use the printer font as default for the font dialog.

"make doslang" didn't work when configure didn't run (yet).  Set $MAKEMO to
"yes". (Mirek Pruchnik)

The ToolBar TagJump item used "g]", which prompts for a selection even when
there is only one matching tag.  Use "g<C-]>" instead.

The ming makefile for message translations didn't have the right list of
files.

The MS-Windows 3.1 version complains about LIBINTL.DLL not found.  Compile
this version without message translations.

The Borland 5 makefile contained a check for Ruby which is no longer needed.
The URLs for the TCL library was outdated. (Dan Sharp)

The eviso.ps file was missing from the DOS runtime archive, it's needed for
printing PostScript in the 32bit DOS version.

In menu files ":scriptencoding" was used in a wrong way after patch 6.1a.032
Now use ":scriptencoding" in the file where the translations are given.  Do
the same for all menus in latin1 encoding.

Included a lot of fixes for the Macintosh, mostly to make it work with Carbon.
(Dany StAmant, Axel Kielhorn, Benji Fisher)

Improved the vimtutor shell script to use $TMPDIR when it exists, and delete
the copied file when exiting in an abnormal way. (Max Ischenko)

When "iconv.dll" can't be found, try using "libiconv.dll".

When encryption is used, filtering with a shell command wasn't possible.

DJGPP: ":cd c:" always failed, can't get permissions for "c:".
Win32: ":cd c:/" failed if the previous current directory on c: had become
invalid.

DJGPP: Shift-Del and Del both produce \316\123.  Default mapping for Del is
wrong.  Disabled it.

Dependencies on header files in MingW makefile was wrong.

Win32: Don't use ACL stuff for MSVC 4.2, it's not supported. (Walter Briscoe)

Win32 with Borland: bcc.cfg was caching the value for $(BOR), but providing a
different argument to make didn't regenerate it.

Win32 with MSVC: Make_ivc.mak generates a new if_ole.h in a different
directory, the if_ole.h in the src directory may be used instead.  Delete the
distributed file.

When a window is vertically split and then ":ball" is used, the window layout
is messed up, can cause a crash. (Muraoka Taro)

When 'insertmode' is set, using File/New menu and then double clicking, "i" is
soon inserted. (Merlin Hansen)

When Select mode is active and using the Buffers menu to switch to another
buffer, an old selection comes back.  Reset VIsual_reselect for a ":buffer"
command.

When Select mode is active and 'insertmode' is set, using the Buffers menu to
switch to another buffer, did not return to Insert mode.  Make sure
"restart_edit" is set.

When double clicking on the first character of a word while 'selection' is
"exclusive" didn't select that word.


Patch 6.0.001
Problem:    Loading the sh.vim syntax file causes error messages. (Corinna
	    Vinschen)
Solution:   Add an "if". (Charles Campbell)
Files:	    runtime/syntax/sh.vim

Patch 6.0.002
Problem:    Using a '@' item in 'viminfo' doesn't work. (Marko Leipert)
Solution:   Add '@' to the list of accepted items.
Files:	    src/option.c

Patch 6.0.003
Problem:    The configure check for ACLs on AIX doesn't work.
Solution:   Fix the test program so that it compiles. (Tomas Ogren)
Files:	    src/configure.in, src/auto/configure

Patch 6.0.004
Problem:    The find/replace dialog doesn't reuse a previous argument
	    properly.
Solution:   After removing a "\V" terminate the string. (Zwane Mwaikambo)
Files:	    src/gui.c

Patch 6.0.005
Problem:    In Insert mode, "CTRL-O :ls" has a delay before redrawing.
Solution:   Don't delay just after wait_return() was called.  Added the
	    did_wait_return flag.
Files:	    src/globals.h, src/message.c, src/normal.c, src/screen.c

Patch 6.0.006
Problem:    With a vertical split, 'number' set and 'scrolloff' non-zero,
	    making the window width very small causes a crash. (Niklas
	    Lindstrom)
Solution:   Check for a zero width.
Files:	    src/move.c

Patch 6.0.007
Problem:    When setting 'filetype' while there is no FileType autocommand, a
	    following ":setfiletype" would set 'filetype' again. (Kobus
	    Retief)
Solution:   Set did_filetype always when 'filetype' has been set.
Files:	    src/option.c

Patch 6.0.008
Problem:    'imdisable' is missing from the options window. (Michael Naumann)
Solution:   Add an entry for it.
Files:	    runtime/optwin.vim

Patch 6.0.009
Problem:    Nextstep doesn't have S_ISBLK. (John Beppu)
Solution:   Define S_ISBLK using S_IFBLK.
Files:	    src/os_unix.h

Patch 6.0.010
Problem:    Using "gf" on a file name starting with "./" or "../" in a buffer
	    without a name causes a crash. (Roy Lewis)
Solution:   Check for a NULL file name.
Files:	    src/misc2.c

Patch 6.0.011
Problem:    Python: After replacing or deleting lines get an ml_get error.
	    (Leo Lipelis)
Solution:   Adjust the cursor position for deleted or added lines.
Files:	    src/if_python.c

Patch 6.0.012
Problem:    Polish translations contain printf format errors, this can result
	    in a crash when using one of them.
Solution:   Fix for translated messages. (Michal Politowski)
Files:	    src/po/pl.po

Patch 6.0.013
Problem:    Using ":silent! cmd" still gives some error messages, like for an
	    invalid range. (Salman Halim)
Solution:   Reset emsg_silent after calling emsg() in do_one_cmd().
Files:	    src/ex_docmd.c

Patch 6.0.014
Problem:    When 'modifiable' is off and 'virtualedit' is "all", "rx" on a TAB
	    still changes the buffer. (Muraoka Taro)
Solution:   Check if saving the line for undo fails.
Files:	    src/normal.c

Patch 6.0.015
Problem:    When 'cpoptions' includes "S" and "filetype plugin on" has been
	    used, can get an error for deleting the b:did_ftplugin variable.
	    (Ralph Henderson)
Solution:   Only delete the variable when it exists.
Files:	    runtime/ftplugin.vim

Patch 6.0.016
Problem:    bufnr(), bufname() and bufwinnr() don't find unlisted buffers when
	    the argument is a string. (Hari Krishna Dara)
	    Also for setbufvar() and getbufvar().
Solution:   Also find unlisted buffers.
Files:	    src/eval.c

Patch 6.0.017
Problem:    When 'ttybuiltin' is set and a builtin termcap entry defines t_Co
	    and the external one doesn't, it gets reset to empty. (David
	    Harrison)
Solution:   Only set t_Co when it wasn't set yet.
Files:	    src/term.c

Patch 6.0.018
Problem:    Initializing 'encoding' may cause a crash when setlocale() is not
	    used. (Dany St-Amant)
Solution:   Check for a NULL pointer.
Files:	    src/mbyte.c

Patch 6.0.019
Problem:    Converting a string with multi-byte characters to a printable
	    string, e.g., with strtrans(), may cause a crash. (Tomas Zellerin)
Solution:   Correctly compute the length of the result in transstr().
Files:	    src/charset.c

Patch 6.0.020
Problem:    When obtaining the value of a global variable internally, could
	    get the function-local value instead.  Applies to using <Leader>
	    and <LocalLeader> and resetting highlighting in a function.
Solution:   Prepend "g:" to the variable name. (Aric Blumer)
Files:	    src/syntax.c, src/term.c

Patch 6.0.021
Problem:    The 'cscopepathcomp' option didn't work.
Solution:   Change USE_CSCOPE to FEAT_CSCOPE. (Mark Feng)
Files:	    src/option.c

Patch 6.0.022
Problem:    When using the 'langmap' option, the second character of a command
	    starting with "g" isn't adjusted.
Solution:   Apply 'langmap' to the second character. (Alex Kapranoff)
Files:	    src/normal.c

Patch 6.0.023
Problem:    Loading the lhaskell syntax doesn't work. (Thore B. Karlsen)
Solution:   Use ":runtime" instead of "source" to load haskell.vim.
Files:	    runtime/syntax/lhaskell.vim

Patch 6.0.024
Problem:    Using "CTRL-V u 9900" in Insert mode may cause a crash. (Noah
	    Levitt)
Solution:   Don't insert a NUL byte in the text, use a newline.
Files:	    src/misc1.c

Patch 6.0.025
Problem:    The pattern "\vx(.|$)" doesn't match "x" at the end of a line.
	    (Preben Peppe Guldberg)
Solution:   Always see a "$" as end-of-line after "\v".  Do the same for "^".
Files:	    src/regexp.c

Patch 6.0.026
Problem:    GTK: When using arrow keys to navigate through the menus, the
	    separators are selected.
Solution:   Set the separators "insensitive". (Pavel Kankovsky)
Files:	    src/gui_gtk.c, src/gui_gtk_x11.c

Patch 6.0.027
Problem:    VMS: Printing doesn't work, the file is deleted too quickly.
	    No longer need the VMS specific printing menu.
	    gethostname() is not available with VAXC.
	    The makefile was lacking selection of the tiny-huge feature set.
Solution:   Adjust the 'printexpr' option default.  Fix the other problems and
	    update the documentation.  (Zoltan Arpadffy)
Files:	    runtime/doc/os_vms.txt, runtime/menu.vim, src/INSTALLvms.txt,
	    src/Make_vms.mms, src/option.c, src/os_unix.c, src/os_vms_conf.h

Patch 6.0.028
Problem:    Can't compile without +virtualedit and with +visualextra. (Geza
	    Lakner)
Solution:   Add an #ifdef for +virtualedit.
Files:	    src/ops.c

Patch 6.0.029
Problem:    When making a change in line 1, then in line 2 and then deleting
	    line 1, undo info could be wrong.  Only when the changes are undone
	    at once. (Gerhard Hochholzer)
Solution:   When not saving a line for undo because it was already done
	    before, remember for which entry the last line must be computed.
	    Added ue_getbot_entry pointer for this.  When the number of lines
	    changes, adjust the position of newer undo entries.
Files:	    src/structs.h, src/undo.c

Patch 6.0.030
Problem:    Using ":source! file" doesn't work inside a loop or after
	    ":argdo". (Pavol Juhas)
Solution:   Execute the commands in the file right away, do not let the main
	    loop do it.
Files:	    src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c, src/globals.h,
	    src/proto/ex_docmd.pro, src/proto/getchar.pro

Patch 6.0.031
Problem:    Nextstep doesn't have setenv() or putenv().  (John Beppu)
Solution:   Move putenv() from pty.c to misc2.c
Files:	    src/misc2.c, src/pty.c

Patch 6.0.032
Problem:    When changing a setting that affects all folds, they are not
	    displayed immediately.
Solution:   Set the redraw flag in foldUpdateAll().
Files:	    src/fold.c

Patch 6.0.033
Problem:    Using 'wildmenu' on MS-Windows, file names that include a space
	    are only displayed starting with that space. (Xie Yuheng)
Solution:   Don't recognize a backslash before a space as a path separator.
Files:	    src/screen.c

Patch 6.0.034
Problem:    Calling searchpair() with three arguments could result in a crash
	    or strange error message. (Kalle Bjorklid)
Solution:   Don't use the fifth argument when there is no fourth argument.
Files:	    src/eval.c

Patch 6.0.035
Problem:    The menu item Edit/Global_Settings/Toggle_Toolbar doesn't work
	    when 'ignorecase' is set. (Allen Castaban)
Solution:   Always match case when checking if a flag is already present in
	    'guioptions'.
Files:	    runtime/menu.vim

Patch 6.0.036
Problem:    OS/2, MS-DOS and MS-Windows: Using a path that starts with a
	    slash in 'tags' doesn't work as expected. (Mathias Koehrer)
Solution:   Only use the drive, not the whole path to the current directory.
	    Also make it work for "c:dir/file".
Files:	    src/misc2.c

Patch 6.0.037
Problem:    When the user has set "did_install_syntax_menu" to avoid the
	    default Syntax menu it still appears. (Virgilio)
Solution:   Don't add the three default items when "did_install_syntax_menu"
	    is set.
Files:	    runtime/menu.vim

Patch 6.0.038
Problem:    When 'selection' is "exclusive", deleting a block of text at the
	    end of a line can leave the cursor beyond the end of the line.
Solution:   Correct the cursor position.
Files:	    src/ops.c

Patch 6.0.039
Problem:    "gP" leaves the cursor in the wrong position when 'virtualedit' is
	    used.  Using "c" in blockwise Visual mode leaves the cursor in a
	    strange position.
Solution:   For "gP" reset the "coladd" field for the '] mark.  For "c" leave
	    the cursor on the last inserted character.
Files:	    src/ops.c

Patch 6.0.040
Problem:    When 'fileencoding' is invalid and writing fails because of
	    this, the original file is gone. (Eric Carlier)
Solution:   Restore the original file from the backup.
Files:	    src/fileio.c

Patch 6.0.041
Problem:    Using ":language messages en" when LC_MESSAGES is undefined
	    results in setting LC_CTYPE. (Eric Carlier)
Solution:   Set $LC_MESSAGES instead.
Files:	    src/ex_cmds2.c

Patch 6.0.042
Problem:    ":mksession" can't handle file names with a space.
Solution:   Escape special characters in file names with a backslash.
Files:	    src/ex_docmd.c

Patch 6.0.043
Problem:    Patch 6.0.041 was wrong.
Solution:   Use mch_getenv() instead of vim_getenv().
Files:	    src/ex_cmds2.c

Patch 6.0.044
Problem:    Using a "containedin" list for a syntax item doesn't work for an
	    item that doesn't have a "contains" argument.  Also, "containedin"
	    doesn't ignore a transparent item. (Timo Frenay)
Solution:   When there is a "containedin" argument somewhere, always check for
	    contained items.  Don't check for the transparent item but the
	    item it's contained in.
Files:	    src/structs.h, src/syntax.c

Patch 6.0.045
Problem:    After creating a fold with a Visual selection, another window
	    with the same buffer still has inverted text. (Sami Salonen)
Solution:   Redraw the inverted text.
Files:	    src/normal.c

Patch 6.0.046
Problem:    When getrlimit() returns an 8 byte number the check for running
	    out of stack may fail. (Anthony Meijer)
Solution:   Skip the stack check if the limit doesn't fit in a long.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/os_unix.c

Patch 6.0.047
Problem:    Using a regexp with "\(\)" inside a "\%[]" item causes a crash.
	    (Samuel Lacas)
Solution:   Don't allow nested atoms inside "\%[]".
Files:	    src/regexp.c

Patch 6.0.048
Problem:    Win32: In the console the mouse doesn't always work correctly.
	    Sometimes after getting focus a mouse movement is interpreted like
	    a button click.
Solution:   Use a different function to obtain the number of mouse buttons.
	    Avoid recognizing a button press from undefined bits. (Vince Negri)
Files:	    src/os_win32.c

Patch 6.0.049
Problem:    When using evim the intro screen is misleading. (Adrian Nagle)
Solution:   Mention whether 'insertmode' is set and the menus to be used.
Files:	    runtime/menu.vim, src/version.c

Patch 6.0.050
Problem:    UTF-8: "viw" doesn't include non-ASCII characters before the
	    cursor. (Bertilo Wennergren)
Solution:   Use dec_cursor() instead of decrementing the column number.
Files:	    src/search.c

Patch 6.0.051
Problem:    UTF-8: Using CTRL-R on the command line doesn't insert composing
	    characters. (Ron Aaron)
Solution:   Also include the composing characters and fix redrawing them.
Files:	    src/ex_getln.c, src/ops.c

Patch 6.0.052
Problem:    The check for rlim_t in patch 6.0.046 does not work on some
	    systems. (Zdenek Sekera)
Solution:   Also look in sys/resource.h for rlim_t.
Files:	    src/auto/configure, src/configure.in

Patch 6.0.053 (extra)
Problem:    Various problems with QNX.
Solution:   Minor fix for configure.  Switch on terminal clipboard support in
	    main.c.  Fix "pterm" mouse support.  os_qnx.c didn't build without
	    photon. (Julian Kinraid)
Files:	    src/auto/configure, src/configure.in, src/gui_photon.c,
	    src/main.c, src/misc2.c, src/option.h, src/os_qnx.c, src/os_qnx.h,
	    src/syntax.c

Patch 6.0.054
Problem:    When using mswin.vim, CTRL-V pastes a block of text like it is
	    normal text.  Using CTRL-V in blockwise Visual mode leaves "x"
	    characters behind.
Solution:   Make CTRL-V work as it should.  Do the same for the Paste menu
	    entries.
Files:	    runtime/menu.vim, runtime/mswin.vim

Patch 6.0.055
Problem:    GTK: The selection isn't copied the first time.
Solution:   Own the selection at the right moment.
Files:	    src/gui_gtk_x11.c

Patch 6.0.056
Problem:    Using "CTRL-O cw" in Insert mode results in a nested Insert mode.
	    <Esc> doesn't leave Insert mode then.
Solution:   Only use nested Insert mode when 'insertmode' is set or when a
	    mapping is used.
Files:	    src/normal.c

Patch 6.0.057
Problem:    Using ":wincmd g}" in a function doesn't work.  (Gary Holloway)
Solution:   Execute the command directly, instead of putting it in the
	    typeahead buffer.
Files:	    src/normal.c, src/proto/normal.pro, src/window.c

Patch 6.0.058
Problem:    When a Cursorhold autocommand moved the cursor, the ruler wasn't
	    updated. (Bohdan Vlasyuk)
Solution:   Update the ruler after executing the autocommands.
Files:	    src/gui.c

Patch 6.0.059
Problem:    Highlighting for 'hlsearch' isn't visible in lines that are
	    highlighted for diff highlighting.  (Gary Holloway)
Solution:   Let 'hlsearch' highlighting overrule diff highlighting.
Files:	    src/screen.c

Patch 6.0.060
Problem:    Motif: When the tooltip is to be popped up, Vim crashes.
	    (Gary Holloway)
Solution:   Check for a NULL return value from gui_motif_fontset2fontlist().
Files:	    src/gui_beval.c

Patch 6.0.061
Problem:    The toolbar buttons to load and save a session do not correctly
	    use v:this_session.
Solution:   Check for v:this_session to be empty instead of existing.
Files:	    runtime/menu.vim

Patch 6.0.062
Problem:    Crash when 'verbose' is > 3 and using ":shell". (Yegappan
	    Lakshmanan)
Solution:   Avoid giving a NULL pointer to printf().  Also output a newline
	    and switch the cursor on.
Files:	    src/misc2.c

Patch 6.0.063
Problem:    When 'cpoptions' includes "$", using "cw" to type a ')' on top of
	    the "$" doesn't update syntax highlighting after it.
Solution:   Stop displaying the "$" when typing a ')' in its position.
Files:	    src/search.c

Patch 6.0.064 (extra)
Problem:    The NSIS install script doesn't work with newer versions of NSIS.
	    The diff feature doesn't work when there isn't a good diff.exe on
	    the system.
Solution:   Replace the GetParentDir instruction by a user function.
	    Fix a few cosmetic problems.  Use defined constants for the
	    version number, so that it's defined in one place only.
	    Only accept the install directory when it ends in "vim".
	    (Eduardo Fernandez)
	    Add a diff.exe and use it from the default _vimrc.
Files:	    nsis/gvim.nsi, nsis/README.txt, src/dosinst.c

Patch 6.0.065
Problem:    When using ":normal" in 'indentexpr' it may use redo characters
	    before its argument.  (Neil Bird)
Solution:   Save and restore the stuff buffer in ex_normal().
Files:	    src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h

Patch 6.0.066
Problem:    Sometimes undo for one command is split into two undo actions.
	    (Halim Salman)
Solution:   Don't set the undo-synced flag when reusing a line that was
	    already saved for undo.
Files:	    src/undo.c

Patch 6.0.067
Problem:    if_xcmdsrv.c doesn't compile on systems where fd_set isn't defined
	    in the usual header file (e.g., AIX). (Mark Waggoner)
Solution:   Include sys/select.h in if_xcmdsrv.c for systems that have it.
Files:	    src/if_xcmdsrv.c

Patch 6.0.068
Problem:    When formatting a Visually selected area with "gq" and the number
	    of lines increases the last line may not be redrawn correctly.
	    (Yegappan Lakshmanan)
Solution:   Correct the area to be redrawn for inserted/deleted lines.
Files:	    src/ops.c

Patch 6.0.069
Problem:    Using "K" on a word that includes a "!" causes a "No previous
	    command" error, because the "!" is expanded. (Craig Jeffries)
Solution:   Put a backslash before the "!".
Files:	    src/normal.c

Patch 6.0.070
Problem:    Win32: The error message for a failed dynamic linking of a Perl,
	    Ruby, Tcl and Python library is unclear about what went wrong.
Solution:   Give the name of the library or function that could not be loaded.
	    Also for the iconv and gettext libraries when 'verbose' is set.
Files:	    src/eval.c, src/if_perl.xs, src/if_python.c, src/if_ruby.c,
	    src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/if_perl.pro,
	    src/proto/if_python.pro, src/proto/if_ruby.pro,
	    src/proto/if_tcl.pro, src/proto/mbyte.pro

Patch 6.0.071
Problem:    The "iris-ansi" builtin termcap isn't very good.
Solution:   Fix the wrong entries. (David Harrison)
Files:	    src/term.c

Patch 6.0.072
Problem:    When 'lazyredraw' is set, a mapping that stops Visual mode, moves
	    the cursor and starts Visual mode again causes a redraw problem.
	    (Brian Silverman)
Solution:   Redraw both the old and the new Visual area when necessary.
Files:	    src/normal.c, src/screen.c

Patch 6.0.073 (extra)
Problem:    DJGPP: When using CTRL-Z to start a shell, the prompt is halfway
	    the text. (Volker Kiefel)
Solution:   Position the system cursor before starting the shell.
Files:	    src/os_msdos.c

Patch 6.0.074
Problem:    When using "&" in a substitute string a multi-byte character with
	    a trailbyte 0x5c is not handled correctly.
Solution:   Recognize multi-byte characters inside the "&" part. (Muraoka Taro)
Files:	    src/regexp.c

Patch 6.0.075
Problem:    When closing a horizontally split window while 'eadirection' is
	    "hor" another horizontally split window is still resized. (Aron
	    Griffis)
Solution:   Only resize windows in the same top frame as the window that is
	    split or closed.
Files:	    src/main.c, src/proto/window.pro, src/window.c

Patch 6.0.076
Problem:    Warning for wrong pointer type when compiling.
Solution:   Use char instead of char_u pointer.
Files:	    src/version.c

Patch 6.0.077
Problem:    Patch 6.0.075 was incomplete.
Solution:   Fix another call to win_equal().
Files:	    src/option.c

Patch 6.0.078
Problem:    Using "daw" at the end of a line on a single-character word didn't
	    include the white space before it.  At the end of the file it
	    didn't work at all.  (Gavin Sinclair)
Solution:   Include the white space before the word.
Files:	    src/search.c

Patch 6.0.079
Problem:    When "W" is in 'cpoptions' and 'backupcopy' is "no" or "auto", can
	    still overwrite a read-only file, because it's renamed. (Gary
	    Holloway)
Solution:   Add a check for a read-only file before renaming the file to
	    become the backup.
Files:	    src/fileio.c

Patch 6.0.080
Problem:    When using a session file that has the same file in two windows,
	    the fileinfo() call in do_ecmd() causes a scroll and a hit-enter
	    prompt. (Robert Webb)
Solution:   Don't scroll this message when 'shortmess' contains 'O'.
Files:	    src/ex_cmds.c

Patch 6.0.081
Problem:    After using ":saveas" the new buffer name is added to the Buffers
	    menu with a wrong number. (Chauk-Mean Proum)
Solution:   Trigger BufFilePre and BufFilePost events for the renamed buffer
	    and BufAdd for the old name (which is with a new buffer).
Files:	    src/ex_cmds.c

Patch 6.0.082
Problem:    When swapping screens in an xterm and there is an (error) message
	    from the vimrc script, the shell prompt is after the message.
Solution:   Output a newline when there was output on the alternate screen.
	    Also when starting the GUI.
Files:	    src/main.c

Patch 6.0.083
Problem:    GTK: When compiled without menu support the buttons in a dialog
	    don't have any text. (Erik Edelmann)
Solution:   Add the text also when GTK_USE_ACCEL isn't defined.  And define
	    GTK_USE_ACCEL also when not using menus.
Files:	    src/gui_gtk.c

Patch 6.0.084
Problem:    UTF-8: a "r" command with an argument that is a keymap for a
	    character with a composing character can't be repeated with ".".
	    (Raphael Finkel)
Solution:   Add the composing characters to the redo buffer.
Files:	    src/normal.c

Patch 6.0.085
Problem:    When 'mousefocus' is set, using "s" to go to Insert mode and then
	    moving the mouse pointer to another window stops Insert mode,
	    while this doesn't happen with "a" or "i". (Robert Webb)
Solution:   Reset finish_op before calling edit().
Files:	    src/normal.c

Patch 6.0.086
Problem:    When using "gu" the message says "~ed".
Solution:   Make the message say "changed".
Files:	    src/ops.c

Patch 6.0.087 (lang)
Problem:    Message translations are incorrect, which may cause a crash.
	    (Peter Figura)
	    The Turkish translations needed more work and the maintainer
	    didn't have time.
Solution:   Fix order of printf arguments.  Remove %2$d constructs.
	    Add "-v" to msgfmt to get a warning for wrong translations.
	    Don't install the Turkish translations for now.
	    Update a few more translations.
Files:	    src/po/Makefile, src/po/af.po, src/po/cs.po, src/po/cs.cp1250.po,
	    src/po/de.po, src/po/es.po, src/po/fr.po, src/po/it.po,
	    src/po/ja.po, src/po/ja.sjis.po, src/po/ko.po, src/po/pl.po,
	    src/po/sk.po, src/po/uk.po, src/po/zh_CN.UTF-8.po,
	    src/po/zh_CN.cp936.po, src/po/zh_CN.po, src/po/zh_TW.po

Patch 6.0.088
Problem:    "." doesn't work after using "rx" in Visual mode.  (Charles
	    Campbell)
Solution:   Also store the replacement character in the redo buffer.
Files:	    src/normal.c

Patch 6.0.089
Problem:    In a C file, using "==" to align a line starting with "*  " after
	    a line with "* -" indents one space too few.  (Piet Delport)
Solution:   Align with the previous line if the comment-start-string matches
	    there.
Files:	    src/misc1.c

Patch 6.0.090
Problem:    When a wrapping line does not fit in a window and 'scrolloff' is
	    bigger than half the window height, moving the cursor left or
	    right causes the screen to flash badly. (Lubomir Host)
Solution:   When there is not enough room to show 'scrolloff' screen lines and
	    near the end of the line, show the end of the line.
Files:	    src/move.c

Patch 6.0.091
Problem:    Using CTRL-O in Insert mode, while 'virtualedit' is "all" and the
	    cursor is after the end-of-line, moves the cursor left. (Yegappan
	    Lakshmanan)
Solution:   Keep the cursor in the same position.
Files:	    src/edit.c

Patch 6.0.092
Problem:    The explorer plugin doesn't ignore case of 'suffixes' on
	    MS-Windows. (Mike Williams)
Solution:   Match or ignore case as appropriate for the OS.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.093
Problem:    When the Tcl library couldn't be loaded dynamically, get an error
	    message when closing a buffer or window. (Muraoka Taro)
Solution:   Only free structures if already using the Tcl interpreter.
Files:	    src/if_tcl.c

Patch 6.0.094
Problem:    Athena: When clicking in the horizontal scrollbar Vim crashes.
	    (Paul Ackersviller)
Solution:   Use the thumb size instead of the window pointer of the scrollbar
	    (which is NULL). (David Harrison)
	    Also avoid that scrolling goes the wrong way in a narrow window.
Files:	    src/gui_athena.c

Patch 6.0.095
Problem:    Perl: Deleting lines may leave the cursor beyond the end of the
	    file.
Solution:   Check the cursor position after deleting a line. (Serguei)
Files:	    src/if_perl.xs

Patch 6.0.096
Problem:    When ":saveas fname" fails because the file already exists, the
	    file name is changed anyway and a following ":w" will overwrite
	    the file. (Eric Carlier)
Solution:   Don't change the file name if the file already exists.
Files:	    src/ex_cmds.c

Patch 6.0.097
Problem:    Re-indenting in Insert mode with CTRL-F may cause a crash with a
	    multi-byte encoding.
Solution:   Avoid using a character before the start of a line. (Sergey
	    Vlasov)
Files:	    src/edit.c

Patch 6.0.098
Problem:    GTK: When using Gnome the "Search" and "Search and Replace" dialog
	    boxes are not translated.
Solution:   Define ENABLE_NLS before including gnome.h. (Eduardo Fernandez)
Files:	    src/gui_gtk.c, src/gui_gtk_x11.c

Patch 6.0.099
Problem:    Cygwin: When running Vi compatible MS-DOS line endings cause
	    trouble.
Solution:   Make the default for 'fileformats' "unix,dos" in Vi compatible
	    mode.  (Michael Schaap)
Files:	    src/option.h

Patch 6.0.100
Problem:    ":badd +0 test%file" causes a crash.
Solution:   Take into account that the "+0" is NUL terminated when allocating
	    room for replacing the "%".
Files:	    src/ex_docmd.c

Patch 6.0.101
Problem:    ":mksession" doesn't restore editing a file that has a '#' or '%'
	    in its name.  (Wolfgang Blankenburg)
Solution:   Put a backslash before the '#' and '%'.
Files:	    src/ex_docmd.c

Patch 6.0.102
Problem:    When changing folds the cursor may appear halfway a closed fold.
	    (Nam SungHyun)
Solution:   Set w_cline_folded correctly. (Yasuhiro Matsumoto)
Files:	    src/move.c

Patch 6.0.103
Problem:    When using 'scrollbind' a large value of 'scrolloff' will make the
	    scroll binding stop near the end of the file. (Coen Engelbarts)
Solution:   Don't use 'scrolloff' when limiting the topline for scroll
	    binding. (Dany StAmant)
Files:	    src/normal.c

Patch 6.0.104
Problem:    Multi-byte: When '$' is in 'cpoptions', typing a double-wide
	    character that overwrites the left halve of an old double-wide
	    character causes a redraw problem and the cursor stops blinking.
Solution:   Clear the right half of the old character. (Yasuhiro Matsumoto)
Files:	    src/edit.c, src/screen.c

Patch 6.0.105
Problem:    Multi-byte: In a window of one column wide, with syntax
	    highlighting enabled a crash might happen.
Solution:   Skip getting the syntax attribute when the character doesn't fit
	    anyway.  (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.0.106 (extra)
Problem:    Win32: When the printer font is wrong, there is no error message.
Solution:   Give an appropriate error message. (Yasuhiro Matsumoto)
Files:	    src/os_mswin.c

Patch 6.0.107 (extra)
Problem:    VisVim: When editing another file, a modified file may be written
	    unexpectedly and without warning.
Solution:   Split the window if a file was modified.
Files:	    VisVim/Commands.cpp

Patch 6.0.108
Problem:    When using folding could try displaying line zero, resulting in an
	    error for a NULL pointer.
Solution:   Stop decrementing w_topline when the first line of a window is in
	    a closed fold.
Files:	    src/window.c

Patch 6.0.109
Problem:    XIM: When the input method is enabled, repeating an insertion with
	    "." disables it. (Marcel Svitalsky)
Solution:   Don't store the input method status when a command comes from the
	    stuff buffer.
Files:	    src/ui.c

Patch 6.0.110
Problem:    Using undo after executing "OxjAxkdd" from a register in
	    an empty buffer gives an error message.  (Gerhard Hochholzer)
Solution:   Don't adjust the bottom line number of an undo block when it's
	    zero.  Add a test for this problem.
Files:	    src/undo.c, src/testdir/test20.in, src/testdir/test20.ok

Patch 6.0.111
Problem:    The virtcol() function doesn't take care of 'virtualedit'.
Solution:   Add the column offset when needed. (Yegappan Lakshmanan)
Files:	    src/eval.c

Patch 6.0.112
Problem:    The explorer plugin doesn't sort directories with a space or
	    special character after a directory with a shorter name.
Solution:   Ignore the trailing slash when comparing directory names.  (Mike
	    Williams)
Files:	    runtime/plugin/explorer.vim

Patch 6.0.113
Problem:    ":edit ~/fname" doesn't work if $HOME includes a space.  Also,
	    expanding wildcards with the shell may fail. (John Daniel)
Solution:   Escape spaces with a backslash when needed.
Files:	    src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/os_unix.c

Patch 6.0.114
Problem:    Using ":p" with fnamemodify() didn't expand "~/" or "~user/" to a
	    full path.  For Win32 the current directory was prepended.
	    (Michael Geddes)
Solution:   Expand the home directory.
Files:	    src/eval.c

Patch 6.0.115 (extra)
Problem:    Win32: When using a dialog with a textfield it cannot scroll the
	    text.
Solution:   Add ES_AUTOHSCROLL to the textfield style. (Pedro Gomes)
Files:	    src/gui_w32.c

Patch 6.0.116 (extra)
Problem:    MS-Windows NT/2000/XP: filewritable() doesn't work correctly for
	    filesystems that use ACLs.
Solution:   Use ACL functions to check if a file is writable. (Mike Williams)
Files:	    src/eval.c, src/macros.h, src/os_win32.c, src/proto/os_win32.pro

Patch 6.0.117 (extra)
Problem:    Win32: when disabling the menu, "set lines=999" doesn't use all
	    the available screen space.
Solution:   Don't subtract the fixed caption height but the real menu height
	    from the available screen space.  Also: Avoid recursion in
	    gui_mswin_get_menu_height().
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.0.118
Problem:    When $TMPDIR is a relative path, the temp directory is missing a
	    trailing slash and isn't deleted when Vim exits. (Peter Holm)
Solution:   Add the slash after expanding the directory to an absolute path.
Files:	    src/fileio.c

Patch 6.0.119 (depends on patch 6.0.116)
Problem:    VMS: filewritable() doesn't work properly.
Solution:   Use the same method as for Unix. (Zoltan Arpadffy)
Files:	    src/eval.c

Patch 6.0.120
Problem:    The conversion to html isn't compatible with XHTML.
Solution:   Quote the values. (Jess Thrysoee)
Files:	    runtime/syntax/2html.vim

Patch 6.0.121 (extra) (depends on patch 6.0.116)
Problem:    Win32: After patch 6.0.116 Vim doesn't compile with mingw32.
Solution:   Add an #ifdef HAVE_ACL.
Files:	    src/os_win32.c

Patch 6.0.122 (extra)
Problem:    Win16: Same resize problems as patch 6.0.117 fixed for Win32.  And
	    dialog textfield problem from patch 6.0.115.
Solution:   Set old_menu_height only when used.  Add ES_AUTOHSCROLL flag.
	    (Vince Negri)
Files:	    src/gui_w16.c

Patch 6.0.123 (depends on patch 6.0.119)
Problem:    Win16: Compilation problems.
Solution:   Move "&&" to other lines. (Vince Negri)
Files:	    src/eval.c

Patch 6.0.124
Problem:    When using a ":substitute" command that starts with "\="
	    (evaluated as an expression), "~" was still replaced with the
	    previous substitute string.
Solution:   Skip the replacement when the substitute string starts with "\=".
	    Also adjust the documentation about doubling backslashes.
Files:	    src/ex_cmds.c, runtime/doc/change.txt

Patch 6.0.125 (extra)
Problem:    Win32: When using the multi_byte_ime feature pressing the shift
	    key would be handled as if a character was entered, thus mappings
	    with a shifted key didn't work. (Charles Campbell)
Solution:   Ignore pressing the shift, control and alt keys.
Files:	    src/os_win32.c

Patch 6.0.126
Problem:    The python library was always statically linked.
Solution:   Link the python library dynamically. (Matthias Klose)
Files:	    src/auto/configure, src/configure.in

Patch 6.0.127
Problem:    When using a terminal that swaps screens and the Normal background
	    color has a different background, using an external command may
	    cause the color of the wrong screen to be changed. (Mark Waggoner)
Solution:   Don't call screen_stop_highlight() in stoptermcap().
Files:	    src/term.c

Patch 6.0.128
Problem:    When moving a vertically split window to the far left or right,
	    the scrollbars are not adjusted. (Scott E Lee)  When 'mousefocus'
	    is set the mouse pointer wasn't adjusted.
Solution:   Adjust the scrollbars and the mouse pointer.
Files:	    src/window.c

Patch 6.0.129
Problem:    When using a very long file name, ":ls" (repeated a few times)
	    causes a crash.  Test with "vim `perl -e 'print "A"x1000'`".
	    (Tejeda)
Solution:   Terminate a string before getting its length in buflist_list().
Files:	    src/buffer.c

Patch 6.0.130
Problem:    When using ":cprev" while the error window is open, and the new
	    line at the top wraps, the window isn't correctly drawn.
	    (Yegappan Lakshmanan)
Solution:   When redrawing the topline don't scroll twice.
Files:	    src/screen.c

Patch 6.0.131
Problem:    When using bufname() and there are two matches for listed buffers
	    and one match for an unlisted buffer, the unlisted buffer is used.
	    (Aric Blumer)
Solution:   When there is a match with a listed buffer, don't check for
	    unlisted buffers.
Files:	    src/buffer.c

Patch 6.0.132
Problem:    When setting 'iminsert' in the vimrc and using an xterm with two
	    screens the ruler is drawn in the wrong screen. (Igor Goldenberg)
Solution:   Only draw the ruler when using the right screen.
Files:	    src/option.c

Patch 6.0.133
Problem:    When opening another buffer while 'keymap' is set and 'iminsert'
	    is zero, 'iminsert' is set to one unexpectedly. (Igor Goldenberg)
Solution:   Don't set 'iminsert' as a side effect of defining a ":lmap"
	    mapping.  Only do that when 'keymap' is set.
Files:	    src/getchar.c, src/option.c

Patch 6.0.134
Problem:    When completing ":set tags=" a path with an embedded space causes
	    the completion to stop. (Sektor van Skijlen)
Solution:   Escape spaces with backslashes, like for ":set path=".  Also take
	    backslashes into account when searching for the start of the path
	    to complete (e.g., for 'backupdir' and 'cscopeprg').
Files:	    src/ex_docmd.c, src/ex_getln.c, src/option.c, src/structs.h

Patch 6.0.135
Problem:    Menus that are not supposed to do anything used "<Nul>", which
	    still produced an error beep.
	    When CTRL-O is mapped for Insert mode, ":amenu" commands didn't
	    work in Insert mode.
	    Menu language falls back to English when $LANG ends in "@euro".
Solution:   Use "<Nop>" for a menu item that doesn't do anything, just like
	    mappings.
	    Use ":anoremenu" instead of ":amenu".
	    Ignore "@euro" in the locale name.
Files:	    runtime/makemenu.vim, runtime/menu.vim, src/menu.c

Patch 6.0.136
Problem:    When completing in Insert mode, a mapping could be unexpectedly
	    applied.
Solution:   Don't use mappings when checking for a typed character.
Files:	    src/edit.c

Patch 6.0.137
Problem:    GUI: When using the find or find/replace dialog from Insert mode,
	    the input mode is stopped.
Solution:   Don't use the input method status when the main window doesn't
	    have focus.
Files:	    src/ui.c

Patch 6.0.138
Problem:    GUI: When using the find or find/replace dialog from Insert mode,
	    the text is inserted when CTRL-O is mapped. (Andre Pang)
	    When opening the dialog again, a whole word search isn't
	    recognized.
	    When doing "replace all" a whole word search was never done.
Solution:   Don't put a search or replace command in the input buffer,
	    execute it directly.
	    Recognize "\<" and "\>" after removing "\V".
	    Add "\<" and "\>" also for "replace all".
Files:	    src/gui.c

Patch 6.0.139
Problem:    When stopping 'wildmenu' completion, the statusline of the
	    bottom-left vertically split window isn't redrawn. (Yegappan
	    Lakshmanan)
Solution:   Redraw all the bottom statuslines.
Files:	    src/ex_getln.c, src/proto/screen.pro, src/screen.c

Patch 6.0.140
Problem:    Memory allocated for local mappings and abbreviations is leaked
	    when the buffer is wiped out.
Solution:   Clear the local mappings when deleting a buffer.
Files:	    src/buffer.c, src/getchar.c, src/proto/getchar.pro, src/vim.h

Patch 6.0.141
Problem:    When using ":enew" in an empty buffer, some buffer-local things
	    are not cleared.  b:keymap_name is not set.
Solution:   Clear user commands and mappings local to the buffer when re-using
	    the current buffer.  Reload the keymap.
Files:	    src/buffer.c

Patch 6.0.142
Problem:    When Python is linked statically, loading dynamic extensions might
	    fail.
Solution:   Add an extra linking flag when needed. (Andrew Rodionoff)
Files:	    src/configure.in, src/auto/configure

Patch 6.0.143
Problem:    When a syntax item includes a line break in a pattern, the syntax
	    may not be updated properly when making a change.
Solution:   Add the "linebreaks" argument to ":syn sync".
Files:	    runtime/doc/syntax.txt, src/screen.c, src/structs.h, src/syntax.c

Patch 6.0.144
Problem:    After patch 6.0.088 redoing "veU" doesn't work.
Solution:   Don't add the "U" to the redo buffer, it will be used as an undo
	    command.
Files:	    src/normal.c

Patch 6.0.145
Problem:    When Vim can't read any input it might get stuck.  When
	    redirecting stdin and stderr Vim would not read commands from a
	    file.  (Servatius Brandt)
Solution:   When repeatedly trying to read a character when it's not possible,
	    exit Vim.  When stdin and stderr are not a tty, still try reading
	    from them, but don't do a blocking wait.
Files:	    src/ui.c

Patch 6.0.146
Problem:    When 'statusline' contains "%{'-'}" this results in a zero.
	    (Milan Vancura)
Solution:   Don't handle numbers with a minus as a number, they were not
	    displayed anyway.
Files:	    src/buffer.c

Patch 6.0.147
Problem:    It's not easy to mark a Vim version as being modified.  The new
	    license requires this.
Solution:   Add the --modified-by argument to configure and the MODIFIED_BY
	    define.  It's used in the intro screen and the ":version" output.
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/feature.h, src/version.c

Patch 6.0.148
Problem:    After "p" in an empty line, `[ goes to the second character.
	    (Kontra Gergely)
Solution:   Don't increment the column number in an empty line.
Files:	    src/ops.c

Patch 6.0.149
Problem:    The pattern "\(.\{-}\)*" causes a hang.  When using a search
	    pattern that causes a stack overflow to be detected Vim could
	    still hang.
Solution:   Correctly report "operand could be empty" when using "\{-}".
	    Check for "out_of_stack" inside loops to avoid a hang.
Files:	    src/regexp.c

Patch 6.0.150
Problem:    When using a multi-byte encoding, patch 6.0.148 causes "p" to work
	    like "P". (Sung-Hyun Nam)
Solution:   Compute the byte length of a multi-byte character.
Files:	    src/ops.c

Patch 6.0.151
Problem:    Redrawing the status line and ruler can be wrong when it contains
	    multi-byte characters.
Solution:   Use character width and byte length correctly. (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.0.152
Problem:    strtrans() could hang on an illegal UTF-8 byte sequence.
Solution:   Skip over illegal bytes. (Yasuhiro Matsumoto)
Files:	    src/charset.c

Patch 6.0.153
Problem:    When using (illegal) double-byte characters and Vim syntax
	    highlighting Vim can crash. (Yasuhiro Matsumoto)
Solution:   Increase a pointer over a character instead of a byte.
Files:	    src/regexp.c

Patch 6.0.154
Problem:    MS-DOS and MS-Windows: The menu entries for xxd don't work when
	    there is no xxd in the path.
	    When converting back from Hex the filetype may remain "xxd" if it
	    is not detected.
Solution:   When xxd is not in the path use the one in the runtime directory,
	    where the install program has put it.
	    Clear the 'filetype' option before detecting the new value.
Files:	    runtime/menu.vim

Patch 6.0.155
Problem:    Mac: compilation problems in ui.c after patch 6.0.145. (Axel
	    Kielhorn)
Solution:   Don't call mch_inchar() when NO_CONSOLE is defined.
Files:	    src/ui.c

Patch 6.0.156
Problem:    Starting Vim with the -b argument and two files, ":next" doesn't
	    set 'binary' in the second file, like Vim 5.7. (Norman Diamond)
Solution:   Set the global value for 'binary'.
Files:	    src/option.c

Patch 6.0.157
Problem:    When defining a user command with "-complete=dir" files will also
	    be expanded.  Also, "-complete=mapping" doesn't appear to work.
	    (Michael Naumann)
Solution:   Use the expansion flags defined with the user command.
	    Handle expanding mappings specifically.
Files:	    src/ex_docmd.c

Patch 6.0.158
Problem:    When getting the warning for a file being changed outside of Vim
	    and reloading the file, the 'readonly' option is reset, even when
	    the permissions didn't change. (Marcel Svitalsky)
Solution:   Keep 'readonly' set when reloading a file and the permissions
	    didn't change.
Files:	    src/fileio.c

Patch 6.0.159
Problem:    Wildcard expansion for ":emenu" also shows separators.
Solution:   Skip menu separators for ":emenu", ":popup" and ":tearoff".
	    Also, don't handle ":tmenu" as if it was ":tearoff".  And leave
	    out the alternatives with "&" included.
Files:	    src/menu.c

Patch 6.0.160
Problem:    When compiling with GCC 3.0.2 and using the "-O2" argument, the
	    optimizer causes a problem that makes Vim crash.
Solution:   Add a configure check to avoid "-O2" for this version of gcc.
Files:	    src/configure.in, src/auto/configure

Patch 6.0.161 (extra)
Problem:    Win32: Bitmaps don't work with signs.
Solution:   Make it possible to use bitmaps with signs. (Muraoka Taro)
Files:	    src/ex_cmds.c, src/feature.h, src/gui_w32.c, src/gui_x11.c,
	    src/proto/gui_w32.pro, src/proto/gui_x11.pro

Patch 6.0.162
Problem:    Client-server: An error message for a wrong expression appears in
	    the server instead of the client.
Solution:   Pass the error message from the server to the client.  Also
	    adjust the example code. (Flemming Madsen)
Files:	    src/globals.h, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
	    src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro,
	    runtime/doc/eval.txt, runtime/tools/xcmdsrv_client.c

Patch 6.0.163
Problem:    When using a GUI dialog, a file name is sometimes used like it was
	    a directory.
Solution:   Separate path and file name properly.
	    For GTK, Motif and Athena concatenate directory and file name for
	    the default selection.
Files:	    src/diff.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
	    src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/message.c

Patch 6.0.164
Problem:    After patch 6.0.135 the menu entries for pasting don't work in
	    Insert and Visual mode. (Muraoka Taro)
Solution:   Add <script> to allow script-local mappings.
Files:	    runtime/menu.vim

Patch 6.0.165
Problem:    Using --remote and executing locally gives unavoidable error
	    messages.
Solution:   Add --remote-silent and --remote-wait-silent to silently execute
	    locally.
	    For Win32 there was no error message when a server didn't exist.
Files:	    src/eval.c, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
	    src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro

Patch 6.0.166
Problem:    GUI: There is no way to avoid dialogs to pop up.
Solution:   Add the 'c' flag to 'guioptions': Use console dialogs.  (Yegappan
	    Lakshmanan)
Files:	    runtime/doc/options.txt, src/option.h, src/message.c

Patch 6.0.167
Problem:    When 'fileencodings' is "latin2" some characters in the help files
	    are displayed wrong.
Solution:   Force the 'fileencoding' for the help files to be "latin1".
Files:	    src/fileio.c

Patch 6.0.168
Problem:    ":%s/\n/#/" doesn't replace at an empty line. (Bruce DeVisser)
Solution:   Don't skip matches after joining two lines.
Files:	    src/ex_cmds.c

Patch 6.0.169
Problem:    When run as evim and the GUI can't be started we get stuck in a
	    terminal without menus in Insert mode.
Solution:   Exit when using "evim" and "gvim -y" when the GUI can't be
	    started.
Files:	    src/main.c

Patch 6.0.170
Problem:    When printing double-width characters the size of tabs after them
	    is wrong.  (Muraoka Taro)
Solution:   Correctly compute the column after a double-width character.
Files:	    src/ex_cmds2.c

Patch 6.0.171
Problem:    With 'keymodel' including "startsel", in Insert mode after the end
	    of a line, shift-Left does not move the cursor. (Steve Hall)
Solution:   CTRL-O doesn't move the cursor left, need to do that explicitly.
Files:	    src/edit.c

Patch 6.0.172
Problem:    CTRL-Q doesn't replace CTRL-V after CTRL-X in Insert mode while it
	    does in most other situations.
Solution:   Make CTRL-X CTRL-Q work like CTRL-X CTRL-V in Insert mode.
Files:	    src/edit.c

Patch 6.0.173
Problem:    When using "P" to insert a line break the cursor remains past the
	    end of the line.
Solution:   Check for the cursor being beyond the end of the line.
Files:	    src/ops.c

Patch 6.0.174
Problem:    After using "gd" or "gD" the search direction for "n" may still be
	    backwards. (Servatius Brandt)
Solution:   Reset the search direction to forward.
Files:	    src/normal.c, src/search.c, src/proto/search.pro

Patch 6.0.175
Problem:    ":help /\z(\)" doesn't work. (Thomas Koehler)
Solution:   Double the backslashes.
Files:	    src/ex_cmds.c

Patch 6.0.176
Problem:    When killed by a signal autocommands are still triggered as if
	    nothing happened.
Solution:   Add the v:dying variable to allow autocommands to work differently
	    when a deadly signal has been trapped.
Files:	    src/eval.c, src/os_unix.c, src/vim.h

Patch 6.0.177
Problem:    When 'commentstring' is empty and 'foldmethod' is "marker", "zf"
	    doesn't work. (Thomas S. Urban)
Solution:   Add the marker even when 'commentstring' is empty.
Files:	    src/fold.c, src/normal.c

Patch 6.0.178
Problem:    Uninitialized memory read from xp_backslash field.
Solution:   Initialize xp_backslash field properly.
Files:	    src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/tag.c

Patch 6.0.179
Problem:    Win32: When displaying UTF-8 characters may read uninitialized
	    memory.
Solution:   Add utfc_ptr2len_check_len() to avoid reading past the end of a
	    string.
Files:	    src/mbyte.c, src/proto/mbyte.pro, src/gui_w32.c

Patch 6.0.180
Problem:    Expanding environment variables in a string that ends in a
	    backslash could go past the end of the string.
Solution:   Detect the trailing backslash.
Files:	    src/misc1.c

Patch 6.0.181
Problem:    When using ":cd dir" memory was leaked.
Solution:   Free the allocated memory.  Also avoid an uninitialized memory
	    read.
Files:	    src/misc2.c

Patch 6.0.182
Problem:    When using a regexp on multi-byte characters, could try to read a
	    character before the start of the line.
Solution:   Don't decrement a pointer to before the start of the line.
Files:	    src/regexp.c

Patch 6.0.183
Problem:    Leaking memory when ":func!" redefines a function.
Solution:   Free the function name when it's not used.
Files:	    src/eval.c

Patch 6.0.184
Problem:    Leaking memory when expanding option values.
Solution:   Don't always copy the expanded option into allocated memory.
Files:	    src/option.c

Patch 6.0.185
Problem:    Crash in Vim when pasting a selection in another application, on a
	    64 bit machine.
Solution:   Fix the format for an Atom to 32 bits. (Peter Derr)
Files:	    src/ui.c

Patch 6.0.186
Problem:    X11: Three warnings when compiling the client-server code.
Solution:   Add a typecast to unsigned char.
Files:	    src/if_xcmdsrv.c

Patch 6.0.187
Problem:    "I" in Visual mode and then "u" reports too many changes. (Andrew
	    Stryker)
	    "I" in Visual linewise mode adjusts the indent for no apparent
	    reason.
Solution:   Only save those lines for undo that are changed.
	    Don't change the indent after inserting in Visual linewise mode.
Files:	    src/ops.c

Patch 6.0.188
Problem:    Win32: After patch 6.0.161 signs defined in the vimrc file don't
	    work.
Solution:   Initialize the sign icons after initializing the GUI. (Vince
	    Negri)
Files:	    src/gui.c, src/gui_x11.c

Patch 6.0.189
Problem:    The size of the Visual area isn't always displayed when scrolling
	    ('ruler' off, 'showcmd' on).  Also not when using a search
	    command. (Sylvain Hitier)
Solution:   Redisplay the size of the selection after showing the mode.
Files:	    src/screen.c

Patch 6.0.190
Problem:    GUI: when 'mouse' is empty a click with the middle button still
	    moves the cursor.
Solution:   Paste at the cursor position instead of the mouse position.
Files:	    src/normal.c

Patch 6.0.191
Problem:    When no servers are available serverlist() gives an error instead
	    of returning an empty string. (Hari Krishna)
Solution:   Don't give an error message.
Files:	    src/eval.c

Patch 6.0.192
Problem:    When 'virtualedit' is set, "ylj" goes to the wrong column. (Andrew
	    Nikitin)
Solution:   Reset the flag that w_virtcol is valid when moving the cursor back
	    to the start of the operated area.
Files:	    src/normal.c

Patch 6.0.193
Problem:    When 'virtualedit' is set, col(".") after the end of the line
	    should return one extra.
Solution:   Add one to the column.
Files:	    src/eval.c

Patch 6.0.194
Problem:    "--remote-silent" tries to send a reply to the client, like it was
	    "--remote-wait".
Solution:   Properly check for the argument.
Files:	    src/main.c

Patch 6.0.195
Problem:    When 'virtualedit' is set and a search starts in virtual space
	    ":call search('x')" goes to the wrong position. (Eric Long)
Solution:   Reset coladd when finding a match.
Files:	    src/search.c

Patch 6.0.196
Problem:    When 'virtualedit' is set, 'selection' is "exclusive" and visually
	    selecting part of a tab at the start of a line, "x" joins it with
	    the previous line.  Also, when the selection spans more than one
	    line the whole tab is deleted.
Solution:   Take coladd into account when adjusting for 'selection' being
	    "exclusive".  Also expand a tab into spaces when deleting more
	    than one line.
Files:	    src/normal.c, src/ops.c

Patch 6.0.197
Problem:    When 'virtualedit' is set and 'selection' is "exclusive", "v$x"
	    doesn't delete the last character in the line. (Eric Long)
Solution:   Don't reset the inclusive flag. (Helmut Stiegler)
Files:	    src/normal.c

Patch 6.0.198
Problem:    When 'virtualedit' is set and 'showbreak' is not empty, moving the
	    cursor over the line break doesn't work properly. (Eric Long)
Solution:   Make getviscol() and getviscol2() use getvvcol() to obtain the
	    virtual cursor position.  Adjust coladvance() and oneleft() to
	    skip over the 'showbreak' characters.
Files:	    src/edit.c, src/misc2.c

Patch 6.0.199
Problem:    Multi-byte: could use iconv() after calling iconv_end().
	    (Yasuhiro Matsumoto)
Solution:   Stop converting input and output stream after calling iconv_end().
Files:	    src/mbyte.c

Patch 6.0.200
Problem:    A script that starts with "#!perl" isn't recognized as a Perl
	    filetype.
Solution:   Ignore a missing path in a script header.  Also, speed up
	    recognizing scripts by simplifying the patterns used.
Files:	    runtime/scripts.vim

Patch 6.0.201
Problem:    When scrollbinding and doing a long jump, switching windows jumps
	    to another position in the file.  Scrolling a few lines at a time
	    is OK. (Johannes Zellner)
Solution:   When setting w_topline reset the flag that indicates w_botline is
	    valid.
Files:	    src/diff.c

Patch 6.0.202
Problem:    The "icon=" argument for the menu command to define a toolbar icon
	    with a file didn't work for GTK. (Christian J. Robinson)
	    For Motif and Athena a full path was required.
Solution:   Search the icon file using the specified path.  Expand environment
	    variables in the file name.
Files:	    src/gui_gtk.c, src/gui_x11.c

Patch 6.0.203
Problem:    Can change 'fileformat' even though 'modifiable' is off.
	    (Servatius Brandt)
Solution:   Correct check for kind of set command.
Files:	    src/option.c

Patch 6.0.204
Problem:    ":unlet" doesn't work for variables with curly braces. (Thomas
	    Scott Urban)
Solution:   Handle variable names with curly braces properly. (Vince Negri)
Files:	    src/eval.c

Patch 6.0.205 (extra)
Problem:    "gvim -f" still forks when using the batch script to start Vim.
Solution:   Add an argument to "start" to use a foreground session (Michael
	    Geddes)
Files:	    src/dosinst.c

Patch 6.0.206
Problem:    Unix: if expanding a wildcard in a file name results in a
	    wildcard character and there are more parts in the path with a
	    wildcard, it is expanded again.
	    Windows: ":edit \[abc]" could never edit the file "[abc]".
Solution:   Don't expand wildcards in already expanded parts.
	    Don't remove backslashes used to escape the special meaning of a
	    wildcard; can edit "[abc]" if '[' is removed from 'isfname'.
Files:	    src/misc1.c, src/os_unix.c

Patch 6.0.207 (extra)
Problem:    Win32: The shortcuts and start menu entries let Vim startup in the
	    desktop directory, which is not very useful.
Solution:   Let shortcuts start Vim in $HOME or $HOMEDIR$HOMEPATH.
Files:	    src/dosinst.c

Patch 6.0.208
Problem:    GUI: When using a keymap and the cursor is not blinking, CTRL-^ in
	    Insert mode doesn't directly change the cursor color.  (Alex
	    Solow)
Solution:   Force a redraw of the cursor after CTRL-^.
Files:	    src/edit.c

Patch 6.0.209
Problem:    GUI GTK: After selecting a 'guifont' with the font dialog there
	    are redraw problems for multi-byte characters.
Solution:   Separate the font dialog from setting the new font name to avoid
	    that "*" is used to find wide and bold fonts.
	    When redrawing extra characters for the bold trick, take care of
	    UTF-8 characters.
Files:	    src/gui.c, src/gui_gtk_x11.c, src/option.c, src/proto/gui.pro,
	    src/proto/gui_gtk_x11.pro

Patch 6.0.210
Problem:    After patch 6.0.167 it's no longer possible to edit a help file in
	    another encoding than latin1.
Solution:   Let the "++enc=" argument overrule the encoding.
Files:	    src/fileio.c

Patch 6.0.211
Problem:    When reading a file fails, the buffer is empty, but it might still
	    be possible to write it with ":w" later.  The original file is
	    lost then. (Steve Amerige)
Solution:   Set the 'readonly' option for the buffer.
Files:	    src/fileio.c

Patch 6.0.212
Problem:    GUI GTK: confirm("foo", "") causes a crash.
Solution:   Don't make a non-existing button the default.  Add a default "OK"
	    button if none is specified.
Files:	    src/eval.c, src/gui_gtk.c

Patch 6.0.213
Problem:    When a file name contains unprintable characters, CTRL-G and other
	    commands don't work well.
Solution:   Turn unprintable into printable characters. (Yasuhiro Matsumoto)
Files:	    src/buffer.c, src/charset.c

Patch 6.0.214
Problem:    When there is a buffer without a name, empty entries appear in the
	    jumplist saved in the viminfo file.
Solution:   Don't write jumplist entries without a file name.
Files:	    src/mark.c

Patch 6.0.215
Problem:    After using "/" from Visual mode the Paste menu and Toolbar
	    entries don't work.  Pasting with the middle mouse doesn't work
	    and modeless selection doesn't work.
Solution:   Use the command line mode menus and use the mouse like in the
	    command line.
Files:	    src/gui.c, src/menu.c, src/ui.c

Patch 6.0.216
Problem:    After reloading a file, displayed in another window than the
	    current one, which was changed outside of Vim the part of the file
	    around the cursor set by autocommands may be displayed, but
	    jumping back to the original cursor position when entering the
	    window again.
Solution:   Restore the topline of the window.
Files:	    src/fileio.c

Patch 6.0.217
Problem:    When getting help from a help file that was used before, an empty
	    unlisted buffer remains in the buffer list. (Eric Long)
Solution:   Wipe out the buffer used to do the tag jump from.
Files:	    src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro

Patch 6.0.218
Problem:    With explorer plugin: "vim -o filename dirname" doesn't load the
	    explorer window until entering the window.
Solution:   Call s:EditDir() for each window after starting up.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.219
Problem:    ":setlocal" and ":setglobal", without arguments, display terminal
	    options. (Zdenek Sekera)
Solution:   Skip terminal options for these two commands.
Files:	    src/option.c

Patch 6.0.220
Problem:    After patch 6.0.218 get a beep on startup. (Muraoka Taro)
Solution:   Don't try going to another window when there isn't one.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.221
Problem:    When using ":bdel" and all other buffers are unloaded the lowest
	    numbered buffer is jumped to instead of the most recent one. (Dave
	    Cecil)
Solution:   Prefer an unloaded buffer from the jumplist.
Files:	    src/buffer.c

Patch 6.0.222
Problem:    When 'virtualedit' is set and using autoindent, pressing Esc after
	    starting a new line leaves behind part of the autoindent. (Helmut
	    Stiegler)
Solution:   After deleting the last char in the line adjust the cursor
	    position in del_bytes().
Files:	    src/misc1.c, src/ops.c

Patch 6.0.223
Problem:    When splitting a window that contains the explorer, hitting CR on
	    a file name gives error messages.
Solution:   Set the window variables after splitting the window.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.224
Problem:    When 'sidescroll' and 'sidescrolloff' are set in a narrow window
	    the text may jump left-right and the cursor is displayed in the
	    wrong position. (Aric Blumer)
Solution:   When there is not enough room, compute the left column for the
	    window to put the cursor in the middle.
Files:	    src/move.c

Patch 6.0.225
Problem:    In Visual mode "gk" gets stuck in a closed fold. (Srinath
	    Avadhanula)
Solution:   Behave differently in a closed fold.
Files:	    src/normal.c

Patch 6.0.226
Problem:    When doing ":recover file" get the ATTENTION prompt.
	    After recovering the same file five times get a read error or a
	    crash.  (Alex Davis)
Solution:   Set the recoverymode flag before setting the file name.
	    Correct the amount of used memory for the size of block zero.
Files:	    src/ex_docmd.c

Patch 6.0.227 (extra)
Problem:    The RISC OS port has several problems.
Solution:   Update the makefile and fix some of the problems. (Andy Wingate)
Files:	    src/Make_ro.mak, src/os_riscos.c, src/os_riscos.h,
	    src/proto/os_riscos.pro, src/search.c

Patch 6.0.228
Problem:    After putting text in Visual mode the '] mark is not at the end of
	    the put text.
	    Undo doesn't work properly when putting a word into a Visual
	    selection that spans more than one line.
Solution:   Correct the '] mark for the deleting the Visually selected text.
	    #ifdef code that depends on FEAT_VISUAL properly.
	    Also fix that "d" crossing line boundary puts '[ just before
	    deleted text.
	    Fix undo by saving all deleted lines at once.
Files:	    src/ex_docmd.c, src/globals.h, src/normal.c, src/ops.c,
	    src/structs.h, src/vim.h

Patch 6.0.229
Problem:    Multi-byte: With 'm' in 'formatoptions', formatting doesn't break
	    at a multi-byte char followed by an ASCII char, and the other way
	    around. (Muraoka Taro)
	    When joining lines a space is inserted between multi-byte
	    characters, which is not always wanted.
Solution:   Check for multi-byte character before and after the breakpoint.
	    Don't insert a space before or after a multi-byte character when
	    joining lines and the 'M' flag is in 'formatoptions'.  Don't
	    insert a space between multi-byte characters when the 'B' flag is
	    in 'formatoptions'.
Files:	    src/edit.c, src/ops.c, src/option.h

Patch 6.0.230
Problem:    The ":" used as a motion after an operator is exclusive, but
	    sometimes it should be inclusive.
Solution:   Make the "v" in between an operator and motion toggle
	    inclusive/exclusive. (Servatius Brandt)
Files:	    runtime/doc/motion.txt, src/normal.c

Patch 6.0.231
Problem:    "gd" and "gD" don't work when the variable matches in a comment
	    just above the match to be found. (Servatius Brandt)
Solution:   Continue searching in the first column below the comment.
Files:	    src/normal.c

Patch 6.0.232
Problem:    "vim --version" prints on stderr while "vim --help" prints on
	    stdout.
Solution:   Make "vim --version" use stdout.
Files:	    runtime/doc/starting.txt, src/globals.h, src/main.c, src/message.c

Patch 6.0.233
Problem:    "\1\{,8}" in a regexp is not allowed, but it should work, because
	    there is an upper limit.  (Jim Battle)
Solution:   Allow using "\{min,max}" after an atom that can be empty if there
	    is an upper limit.
Files:	    src/regexp.c

Patch 6.0.234
Problem:    It's not easy to set the cursor position without modifying marks.
Solution:   Add the cursor() function. (Yegappan Lakshmanan)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.0.235
Problem:    When writing a file and renaming the original file to make the
	    backup, permissions could change when setting the owner.
Solution:   Only set the owner when it's needed and set the permissions again
	    afterwards.
	    When 'backupcopy' is "auto" check that the owner and permissions
	    of a newly created file can be set properly.
Files:	    src/fileio.c

Patch 6.0.236
Problem:    ":edit" without argument should move cursor to line 1 in Vi
	    compatible mode.
Solution:   Add 'g' flag to 'cpoptions'.
Files:	    runtime/doc/options.txt, src/ex_docmd.c, src/option.h

Patch 6.0.237
Problem:    In a C file, using the filetype plugin, re-indenting a comment
	    with two spaces after the middle "*" doesn't align properly.
Solution:   Don't use a middle entry from a start/middle/end to line up with
	    the start of the comment when the start part doesn't match with
	    the actual comment start.
Files:	    src/misc1.c

Patch 6.0.238
Problem:    Using a ":substitute" command with a substitute() call in the
	    substitution expression causes errors. (Srinath Avadhanula)
Solution:   Save and restore pointers when doing substitution recursively.
Files:	    src/regexp.c

Patch 6.0.239
Problem:    Using "A" to append after a Visually selected block which is after
	    the end of the line, spaces are inserted in the wrong line and
	    other unexpected effects. (Michael Naumann)
Solution:   Don't advance the cursor to the next line.
Files:	    src/ops.c

Patch 6.0.240
Problem:    Win32: building with Python 2.2 doesn't work.
Solution:   Add support for Python 2.2 with dynamic linking. (Paul Moore)
Files:	    src/if_python.c

Patch 6.0.241
Problem:    Win32: Expanding the old value of an option that is a path that
	    starts with a backslash, an extra backslash is inserted.
Solution:   Only insert backslashes where needed.
	    Also handle multi-byte characters properly when removing
	    backslashes.
Files:	    src/option.c

Patch 6.0.242
Problem:    GUI: On a system with an Exceed X server sometimes get a "Bad
	    Window" error. (Tommi Maekitalo)
Solution:   When forking, use a pipe to wait in the parent for the child to
	    have done the setsid() call.
Files:	    src/gui.c

Patch 6.0.243
Problem:    Unix: "vim --version" outputs a NL before the last line instead of
	    after it. (Charles Campbell)
Solution:   Send the NL to the same output stream as the text.
Files:	    src/message.c, src/os_unix.c, src/proto/message.pro

Patch 6.0.244
Problem:    Multi-byte: Problems with (illegal) UTF-8 characters in menu and
	    file name (e.g., icon text, status line).
Solution:   Correctly handle unprintable characters.  Catch illegal UTF-8
	    characters and replace them with <xx>.  Truncating the status line
	    wasn't done correctly at a multi-byte character. (Yasuhiro
	    Matsumoto)
	    Added correct_cmdspos() and transchar_byte().
Files:	    src/buffer.c, src/charset.c, src/ex_getln.c, src/gui.c,
	    src/message.c, src/screen.c, src/vim.h

Patch 6.0.245
Problem:    After using a color scheme, setting the 'background' option might
	    not work. (Peter Horst)
Solution:   Disable the color scheme if it switches 'background' back to the
	    wrong value.
Files:	    src/option.c

Patch 6.0.246
Problem:    ":echomsg" didn't use the highlighting set by ":echohl". (Gary
	    Holloway)
Solution:   Use the specified attributes for the message. (Yegappan
	    Lakshmanan)
Files:	    src/eval.c

Patch 6.0.247
Problem:    GTK GUI: Can't use gvim in a kpart widget.
Solution:   Add the "--echo-wid" argument to let Vim echo the window ID on
	    stdout. (Philippe Fremy)
Files:	    runtime/doc/starting.txt, src/globals.h, src/gui_gtk_x11.c,
	    src/main.c

Patch 6.0.248
Problem:    When using compressed help files and 'encoding' isn't "latin1",
	    Vim converts the help file before decompressing. (David Reviejo)
Solution:   Don't convert a help file when 'binary' is set.
Files:	    src/fileio.c

Patch 6.0.249
Problem:    "vim -t edit -c 'sta ex_help'" doesn't move cursor to edit().
Solution:   Don't set the cursor on the first line for "-c" arguments when
	    there also is a "-t" argument.
Files:	    src/main.c

Patch 6.0.250 (extra)
Problem:    Macintosh: Various problems when compiling.
Solution:   Various fixes, mostly #ifdefs. (Dany St. Amant)
Files:	    src/gui_mac.c, src/main.c, src/misc2.c, src/os_mac.h,
	    src/os_mac.pbproj/project.pbxproj, src/os_unix.c

Patch 6.0.251 (extra)
Problem:    Macintosh: menu shortcuts are not very clear.
Solution:   Show the shortcut with the Mac clover symbol. (raindog)
Files:	    src/gui_mac.c

Patch 6.0.252
Problem:    When a user function was defined with "abort", an error that is
	    not inside if/endif or while/endwhile doesn't abort the function.
	    (Servatius Brandt)
Solution:   Don't reset did_emsg when the function is to be aborted.
Files:	    src/ex_docmd.c

Patch 6.0.253
Problem:    When 'insertmode' is set, after "<C-O>:edit file" the next <C-O>
	    doesn't work. (Benji Fisher)  <C-L> has the same problem.
Solution:   Reset need_start_insertmode once in edit().
Files:	    src/edit.c

Patch 6.0.254 (extra)
Problem:    Borland C++ 5.5: Checking for stack overflow doesn't work
	    correctly.  Matters when using a complicated regexp.
Solution:   Remove -N- from Make_bc5.mak. (Yasuhiro Matsumoto)
Files:	    src/Make_bc5.mak

Patch 6.0.255 (extra) (depends on patch 6.0.116 and 6.0.121)
Problem:    Win32: ACL support doesn't work well on Samba drives.
Solution:   Add a check for working ACL support. (Mike Williams)
Files:	    src/os_win32.c

Patch 6.0.256 (extra)
Problem:    Win32: ":highlight Comment guifg=asdf" does not give an error
	    message. (Randall W. Morris)  Also for other systems.
Solution:   Add gui_get_color() to give one error message for all systems.
Files:	    src/gui.c, src/gui_amiga.c, src/gui_athena.c, src/gui_motif.c,
	    src/gui_riscos.c, src/gui_x11.c, src/gui_gtk_x11.c,
	    src/proto/gui.pro, src/syntax.c

Patch 6.0.257
Problem:    Win32: When 'mousefocus' is set and there is a BufRead
	    autocommand, after the dialog for permissions changed outside of
	    Vim: 'mousefocus' stops working. (Robert Webb)
Solution:   Reset need_mouse_correct after checking timestamps.
Files:	    src/fileio.c

Patch 6.0.258
Problem:    When 'scrolloff' is 999 and there are folds, the text can jump up
	    and down when moving the cursor down near the end of the file.
	    (Lubomir Host)
Solution:   When putting the cursor halfway the window start counting lines at
	    the end of a fold.
Files:	    src/move.c

Patch 6.0.259
Problem:    MS-DOS: after editing the command line the cursor shape may remain
	    like in Insert mode. (Volker Kiefel)
Solution:   Reset the cursor shape after editing the command line.
Files:	    src/ex_getln.c

Patch 6.0.260
Problem:    GUI: May crash while starting up when giving an error message for
	    missing color. (Servatius Brandt)
Solution:   Don't call gui_write() when still starting up.  Don't give error
	    message for empty color name.  Don't use 't_vb' while the GUI is
	    still starting up.
Files:	    src/fileio.c, src/gui.c, src/misc1.c, src/ui.c

Patch 6.0.261
Problem:    nr2char() and char2nr() don't work with multi-byte characters.
Solution:   Use 'encoding' for these functions. (Yasuhiro Matsumoto)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.0.262 (extra)
Problem:    Win32: IME doesn't work properly.  OnImeComposition() isn't used
	    at all.
Solution:   Adjust various things for IME.
Files:	    src/globals.h, src/gui_w32.c, src/mbyte.c, src/proto/ui.pro,
	    src/structs.h, src/ui.c

Patch 6.0.263
Problem:    GTK: When a dialog is closed by the window manager, Vim hangs.
	    (Christian J. Robinson)
Solution:   Use GTK_WIDGET_DRAWABLE() instead of GTK_WIDGET_VISIBLE().
Files:	    src/gui_gtk.c, src/gui_gtk_x11.c

Patch 6.0.264
Problem:    The amount of virtual memory is used to initialize 'maxmemtot',
	    which may be much more than the amount of physical memory,
	    resulting in a lot of swapping.
Solution:   Get the amount of physical memory with sysctl(), sysconf() or
	    sysinfo() when possible.
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/os_unix.c, src/os_unix.h

Patch 6.0.265
Problem:    Win32: Using backspace while 'fkmap' is set causes a crash.
	    (Jamshid Oasjmoha)
Solution:   Don't try mapping special keys.
Files:	    src/farsi.c

Patch 6.0.266
Problem:    The rename() function deletes the file if the old and the new name
	    are the same. (Volker Kiefel)
Solution:   Don't do anything if the names are equal.
Files:	    src/fileio.c

Patch 6.0.267
Problem:    UTF-8: Although 'isprint' says a character is printable,
	    utf_char2cells() still considers it unprintable.
Solution:   Use vim_isprintc() for characters upto 0x100. (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.0.268 (extra) (depends on patch 6.0.255)
Problem:    Win32: ACL check crashes when using forward slash in file name.
Solution:   Improve the check for the path in the file name.
Files:	    src/os_win32.c

Patch 6.0.269
Problem:    Unprintable characters in a file name may cause problems when
	    using the 'statusline' option or when 'buftype' is "nofile".
Solution:   call trans_characters() for the resulting statusline. (Yasuhiro
	    Matsumoto)
Files:	    src/buffer.c, src/screen.c, src/charset.c

Patch 6.0.270 (depends on patch 6.0.267)
Problem:    A tab causes UTF-8 text to be displayed in the wrong position.
	    (Ron Aaron)
Solution:   Correct utf_char2cells() again.
Files:	    src/mbyte.c

Patch 6.1a.001 (extra)
Problem:    32bit DOS: copying text to the clipboard may cause a crash.
	    (Jonathan D Johnston)
Solution:   Don't copy one byte too much in SetClipboardData().
Files:	    src/os_msdos.c

Patch 6.1a.002
Problem:    GTK: On some configurations, when closing a dialog from the window
	    manager, Vim hangs.
Solution:   Catch the "destroy" signal. (Aric Blumer)
Files:	    src/gui_gtk.c

Patch 6.1a.003
Problem:    Multi-byte: With UTF-8 double-wide char and 'virtualedit' set:
	    yanking in Visual mode doesn't include the last byte. (Eric Long)
Solution:   Don't add a space for a double-wide character.
Files:	    src/ops.c

Patch 6.1a.004 (extra)
Problem:    MINGW: undefined type. (Ron Aaron)
Solution:   Make GetCompositionString_inUCS2() static.
Files:	    src/gui_w32.c, src/gui_w48.c, src/proto/gui_w32.pro

Patch 6.1a.005 (extra)
Problem:    Win32: ":hardcopy" doesn't work after ":hardcopy!". (Jonathan
	    Johnston)
Solution:   Don't keep the driver context when using ":hardcopy!". (Vince
	    Negri)
Files:	    src/os_mswin.c

Patch 6.1a.006
Problem:    multi-byte: after setting 'encoding' the window title might be
	    wrong.
Solution:   Force resetting the title. (Yasuhiro Matsumoto)
Files:	    src/option.c

Patch 6.1a.007
Problem:    Filetype detection for "*.inc" doesn't work.
Solution:   Use a ":let" command. (David Schweikert)
Files:	    runtime/filetype.vim

Patch 6.1a.008 (extra)
Problem:    Win32: ACL detection for network shares doesn't work.
Solution:   Include the trailing (back)slash in the root path. (Mike Williams)
Files:	    src/os_win32.c

Patch 6.1a.009
Problem:    When using "\@<=" or "\@<!" in a pattern, a "\1" may refer to a ()
	    part that follows, but it generates an error message.
Solution:   Allow a forward reference when there is a following "\@<=" or
	    "\@<!".
Files:	    runtime/doc/pattern.txt, src/regexp.c

Patch 6.1a.010
Problem:    When using ":help" and opening a new window, the alternate file
	    isn't set.
Solution:   Set the alternate file to the previously edited file.
Files:	    src/ex_cmds.c

Patch 6.1a.011
Problem:    GTK: ":set co=77", change width with the mouse, ":set co=77"
	    doesn't resize the window. (Darren Hiebert)
Solution:   Set the form size after handling a resize event.
Files:	    src/gui_gtk_x11.c

Patch 6.1a.012
Problem:    GTK: The file browser always returns a full path. (Lohner)
Solution:   Shorten the file name if possible.
Files:	    src/gui_gtk.c

Patch 6.1a.013
Problem:    When using "=~word" in 'cinkeys' or 'indentkeys', the case of the
	    last character of the word isn't ignored. (Raul Segura Acevedo)
Solution:   Ignore case when checking the last typed character.
Files:	    src/edit.c

Patch 6.1a.014
Problem:    After patch 6.1a.006 can't compile without the title feature.
Solution:   Add an #ifdef.
Files:	    src/option.c

Patch 6.1a.015
Problem:    MS-Windows: When expanding a file name that contains a '[' or '{'
	    an extra backslash is inserted. (Raul Segura Acevedo)
Solution:   Avoid adding the backslash.
Files:	    src/ex_getln.c

Patch 6.1a.016
Problem:    Completion after ":language" doesn't include "time". (Raul Segura
	    Acevedo)
Solution:   Add the alternative to the completions.
Files:	    src/ex_cmds2.c

Patch 6.1a.017
Problem:    Clicking the mouse in the top row of a window where the first line
	    doesn't fit moves the cursor to the wrong column.
Solution:   Add the skipcol also for the top row of a window.
Files:	    src/ui.c

Patch 6.1a.018
Problem:    When 'scrolloff' is one and the window height is one, "gj" can put
	    the cursor above the window. (Raul Segura Acevedo)
Solution:   Don't let skipcol become bigger than the cursor column.
Files:	    src/move.c

Patch 6.1a.019
Problem:    When using a composing character on top of an ASCII character, the
	    "l" command clears the composing character.  Only when 'ruler' and
	    'showcmd' are off. (Raphael Finkel)
Solution:   Don't move the cursor by displaying characters when there are
	    composing characters.
Files:	    src/screen.c

Patch 6.1a.020
Problem:    GTK: after patch 6.1a.011 resizing with the mouse doesn't always
	    work well for small sizes. (Adrien Beau)
Solution:   Use another way to avoid the problem with ":set co=77".
Files:	    src/gui_gtk_x11.c

Patch 6.1a.021
Problem:    Several Syntax menu entries are wrong or confusing.
Solution:   Rephrase and correct the menu entries. (Adrien Beau)
Files:	    runtime/makemenu.vim, runtime/menu.vim

Patch 6.1a.022
Problem:    A tags file might be used twice on case insensitive systems.
	    (Rick Swanton)
Solution:   Don't use the same file name twice in the default for the 'tags'
	    option.  Ignore case when comparing names of already visited
	    files.
Files:	    src/misc2.c, src/option.c

Patch 6.1a.023
Problem:    When starting the GUI get "C" characters echoed in the terminal.
Solution:   Don't try sending a clear-screen command while the GUI is starting
	    up.
Files:	    src/screen.c

Patch 6.1a.024
Problem:    In other editors CTRL-F is often used for a find dialog.
Solution:   In evim use CTRL-F for the find dialog.
Files:	    runtime/evim.vim

Patch 6.1a.025
Problem:    The choices for the fileformat dialog can't be translated.
Solution:   Add g:menutrans_fileformat_choices. (Adrien Beau)
Files:	    runtime/menu.vim

Patch 6.1a.026
Problem:    Indenting Java files is wrong with "throws", "extends" and
	    "implements" clauses.
Solution:   Update the Java indent script.
Files:	    runtime/indent/java.vim

Patch 6.1a.027
Problem:    A few Syntax menu entries missing or incorrect.
Solution:   Add and correct the menu entries. (Adrien Beau)
	    Shorten a few menus to avoid they become too long.
Files:	    runtime/makemenu.vim, runtime/menu.vim

Patch 6.1a.028
Problem:    XIM: problems with feedback and some input methods.
Solution:   Use iconv for calculating the cells.  Remove the queue for
	    key_press_event only when text was changed. (Yasuhiro Matsumoto)
Files:	    src/globals.h, src/mbyte.c, src/screen.c

Patch 6.1a.029
Problem:    After patch 6.1a.028 can't compile GTK version with XIM but
	    without multi-byte chars.
Solution:   Add an #ifdef. (Aschwin Marsman)
Files:	    src/mbyte.c

Patch 6.1a.030
Problem:    With double-byte encodings toupper() and tolower() may have wrong
	    results.
Solution:   Skip double-byte characters. (Eric Long)
Files:	    src/eval.c

Patch 6.1a.031
Problem:    Accessing the 'balloondelay' variable may cause a crash.
Solution:   Make the variable for 'balloondelay' a long. (Olaf Seibert)
Files:	    src/option.h

Patch 6.1a.032 (extra)
Problem:    Some menu files used a wrong encoding name for "scriptencoding".
Solution:   Move the translations to a separate file, which is sourced after
	    setting "scriptencoding".
	    Also add Czech menu translations in ASCII and update the other
	    encodings.
Files:	    runtime/lang/menu_cs_cz.iso_8859-1.vim,
	    runtime/lang/menu_cs_cz.iso_8859-2.vim,
	    runtime/lang/menu_czech_czech_republic.1250.vim,
	    runtime/lang/menu_czech_czech_republic.1252.vim,
	    runtime/lang/menu_czech_czech_republic.ascii.vim,
	    runtime/lang/menu_de_de.iso_8859-1.vim,
	    runtime/lang/menu_de_de.latin1.vim,
	    runtime/lang/menu_fr_fr.iso_8859-1.vim,
	    runtime/lang/menu_fr_fr.latin1.vim,
	    runtime/lang/menu_french_france.1252.vim,
	    runtime/lang/menu_german_germany.1252.vim,
	    runtime/lang/menu_ja_jp.euc-jp.vim,
	    runtime/lang/menu_ja_jp.utf-8.vim,
	    runtime/lang/menu_japanese_japan.932.vim

Patch 6.1a.033
Problem:    XIM: doesn't reset input context.
Solution:   call xim_reset() with im_set_active(FALSE). (Takuhiro Nishioka)
Files:	    src/mbyte.c

Patch 6.1a.034 (extra)
Problem:    Win32: The ACL checks for a readonly file still don't work well.
Solution:   Remove the ACL checks, go back to how it worked in Vim 6.0.
Files:	    src/os_win32.c

Patch 6.1a.035
Problem:    multi-byte: When using ":sh" in the GUI, typed and displayed
	    multi-byte characters are not handled correctly.
Solution:   Deal with multi-byte characters to and from the shell. (Yasuhiro
	    Matsumoto)  Also handle UTF-8 composing characters.
Files:	    src/os_unix.c

Patch 6.1a.036
Problem:    GTK: the save-yourself event was not handled.
Solution:   Catch the save-yourself event and preserve swap files. (Neil Bird)
Files:	    src/gui_gtk_x11.c

Patch 6.1a.037
Problem:    The MS-Windows key mapping doesn't include CTRL-S for saving.
	    (Vlad Sandrini)
Solution:   Map CTRL-S to ":update".
Files:	    runtime/mswin.vim

Patch 6.1a.038
Problem:    Solaris: Including both sys/sysctl.h and sys/sysinfo.h doesn't
	    work. (Antonio Colombo)
Solution:   Don't include sys/sysinfo.h when not calling sysinfo().
Files:	    src/os_unix.c

Patch 6.1a.039
Problem:    Not all visual basic files are recognized.
Solution:   Add checks to catch *.ctl files. (Raul Segura Acevedo)
Files:	    runtime/filetype.vim

Patch 6.1a.040
Problem:    A *.pl file is recognized as Perl, but it could be a prolog file.
Solution:   Check the first non-empty line. (Kontra Gergely)
Files:	    runtime/filetype.vim

Patch 6.1a.041
Problem:    When pressing the left mouse button in the command line and them
	    moving the mouse upwards, nearly all the text is selected.
Solution:   Don't try extending a modeless selection when there isn't one.
Files:	    src/ui.c

Patch 6.1a.042
Problem:    When merging files, ":diffput" and ":diffget" are used a lot, but
	    they require a lot of typing.
Solution:   Add "dp" for ":diffput" and "do" for ":diffget".
Files:	    runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/diff.pro


Patch 6.1b.001 (extra)
Problem:    Checking for wildcards in a path does not handle multi-byte
	    characters with a trail byte which is a wildcard.
Solution:   Handle multi-byte characters correctly. (Muraoka Taro)
Files:	    src/os_amiga.c, src/os_mac.c, src/os_msdos.c, src/os_mswin.c,
	    src/os_unix.c

Patch 6.1b.002
Problem:    A regexp that ends in "\{" is not flagged as an error.  May cause
	    a stack overflow when 'incsearch' is set. (Gerhard Hochholzer)
Solution:   Handle a missing "}" as an error.
Files:	    src/regexp.c

Patch 6.1b.003 (extra)
Problem:    The RISC OS GUI doesn't compile.
Solution:   Include changes since Vim 5.7. (Andy Wingate)
Files:	    src/Make_ro.mak, src/gui_riscos.c, src/os_riscos.c,
	    src/os_riscos.h, src/proto/gui_riscos.pro

Patch 6.1b.004
Problem:    col("'>") returns a negative number for linewise selection. (Neil
	    Bird)
Solution:   Don't add one to MAXCOL.
Files:	    src/eval.c

Patch 6.1b.005
Problem:    Using a search pattern that causes an out-of-stack error while
	    'hlsearch' is set keeps giving the hit-Enter prompt.
	    A search pattern that takes a long time delays typing when
	    'incsearch' is set.
Solution:   Stop 'hlsearch' highlighting when the regexp causes an error.
	    Stop searching for 'incsearch' when a character is typed.
Files:	    src/globals.h, src/message.c, src/screen.c, src/search.c,
	    src/vim.h

Patch 6.1b.006
Problem:    When entering a composing character on the command line with
	    CTRL-V, the text isn't redrawn correctly.
Solution:   Redraw the text under and after the cursor.
Files:	    src/ex_getln.c

Patch 6.1b.007
Problem:    When the cursor is in the white space between two sentences, "dis"
	    deletes the first character of the following sentence, "das"
	    deletes a space after the sentence.
Solution:   Backup the cursor one character in these situations.
Files:	    src/search.c

Patch 6.1b.008
Problem:    *.xsl files are not recognized as xslt but xml.
	    Monk files are not recognized.
Solution:   Delete the duplicate line for *.xsl. (Johannes Zellner)
	    Recognize monk files.
Files:	    runtime/filetype.vim

Patch 6.1b.009
Problem:    Can't always compile small features and then adding eval feature,
	    "sandbox" is undefined. (Axel Kielhorn)
Solution:   Always define "sandbox" when the eval feature is used.
Files:	    src/globals.h

Patch 6.1b.010 (extra)
Problem:    When compiling gvimext.cpp with MSVC 4.2 get a number of warnings.
Solution:   Change "true" to "TRUE". (Walter Briscoe)
Files:	    GvimExt/gvimext.cpp

Patch 6.1b.011
Problem:    When using a very long string for confirm(), can't quit the
	    displaying at the more prompt. (Hari Krishna Dara)
Solution:   Jump to the end of the message to show the choices.
Files:	    src/message.c

Patch 6.1b.012
Problem:    Multi-byte: When 'showbreak' is set and a double-wide character
	    doesn't fit at the right window edge the cursor gets stuck there.
	    Using cursor-left gets stuck when 'virtualedit' is set.  (Eric
	    Long)
Solution:   Fix the way the extra ">" character is counted when 'showbreak' is
	    set.  Don't correct cursor for virtual editing on a double-wide
	    character.
Files:	    src/charset.c, src/edit.c

Patch 6.1b.013
Problem:    A user command that partly matches with a buffer-local user
	    command and matches full with a global user command unnecessarily
	    gives an 'ambiguous command' error.
Solution:   Find the full global match even after a partly local match.
Files:	    src/ex_docmd.c

Patch 6.1b.014
Problem:    EBCDIC: switching mouse events off causes garbage on screen.
	    Positioning the cursor in the GUI causes garbage.
Solution:   Insert an ESC in the terminal code. (Ralf Schandl)
	    Use "\b" instead of "\010" for KS_LE.
Files:	    src/os_unix.c, src/term.c

Patch 6.1b.015
Problem:    Vimtutor has a typo.  Get a warning for "tempfile" if it
	    doesn't exist.
Solution:   Move a quote to the end of a line. (Max Ischenko)
	    Use "mktemp" first, more systems have it.
Files:	    src/vimtutor

Patch 6.1b.016
Problem:    GTK: loading a fontset that works partly, Vim might hang or crash.
Solution:   Avoid that char_width becomes zero. (Yasuhiro Matsumoto)
Files:	    src/gui_gtk_x11.c

Patch 6.1b.017
Problem:    GUI: When using ":shell" and there is a beep, nothing happens.
Solution:   Call vim_beep() to produce the beep from the shell. (Yasuhiro
	    Matsumoto)
Files:	    src/message.c

Patch 6.1b.018 (depends on 6.1b.006)
Problem:    When entering the encryption key, special keys may still reveal
	    the typed characters.
Solution:   Make sure stars are used or nothing is shown in all cases.
Files:	    src/digraph.c, src/getchar.c, src/ex_getln.c

Patch 6.1b.019 (depends on 6.1b.005)
Problem:    A search pattern that takes a long time slows down typing when
	    'incsearch' is set.
Solution:   Pass SEARCH_PEEK to dosearch().
Files:	    src/ex_getln.c

Patch 6.1b.020
Problem:    When using the matchit plugin, "%" finds a match on the "end" of a
	    ":syntax region" command in Vim scripts.
Solution:   Skip over ":syntax region" commands by setting b:match_skip.
Files:	    runtime/ftplugin/vim.vim

Patch 6.1b.021
Problem:    when 'mousefocus' is set, CTRL-W CTRL-] sometimes doesn't warp the
	    pointer to the new window. (Robert Webb)
Solution:   Don't reset need_mouse_correct when checking the timestamp of a
	    file.
Files:	    src/fileio.c

Patch 6.1b.022
Problem:    With lots of folds "j" does not obey 'scrolloff' properly.
	    (Srinath Avadhanula)
Solution:   Go to end of the fold before counting context lines.
Files:	    src/move.c

Patch 6.1b.023
Problem:    On MS-Windows system() may cause checking timestamps, because Vim
	    loses and gains input focus, while this doesn't happen on Unix.
Solution:   Don't check timestamps while system() is busy.
Files:	    src/ex_cmds2.c, src/fileio.c, src/globals.h, src/misc1.c

Patch 6.1b.024 (extra)
Problem:    Gettext 0.11 complains that "sjis" is not a standard name.
Solution:   Use "cp932" instead.
Files:	    src/po/sjiscorr.c

Patch 6.1b.025 (extra)
Problem:    Win32: When closing gvim while it is minimized  and has a changed
	    file, the file-changed dialog pops up in a corner of the screen.
Solution:   Put the dialog in the middle of the screen.
Files:	    src/gui_w48.c

Patch 6.1b.026
Problem:    When 'diffopt' contains 'iwhite' but not 'icase': differences in
	    case are not highlighted properly. (Gerhard Hochholzer)
Solution:   Don't ignore case when ignoring white space differences.
Files:	    src/diff.c

Patch 6.1b.027
Problem:    "vim --remote +" may cause a crash.
Solution:   Check for missing file name argument. (Martin Kahlert)
Files:	    src/main.c

Patch 6.1b.028 (extra)
Problem:    Win16: Can't compile after patch 6.1b.025.
Solution:   Add code specifically for Win16. (Vince Negri)
Files:	    src/gui_w48.c

Patch 6.1b.029
Problem:    Win32: When a directory on an NTFS partition is read/execute (no
	    delete,modify,write) and the file has modify rights, trying to
	    write the file deletes it.  Making the file read/write/execute
	    (not delete) solves it. (Mark Canup)
Solution:   Use the Unix code to check for a writable directory.  If not, then
	    make a backup copy and overwrite the file.
Files:	    src/fileio.c

Patch 6.1b.030 (extra)
Problem:    Mac: small mistake in the build script and prototypes.
Solution:   Fix the build script and add the prototypes. (Axel Kielhorn)
Files:	    src/os_mac.build, src/gui_mac.c

Patch 6.1b.031 (extra)
Problem:    Win32 GUI: ":set guifont=*" doesn't set 'guifont' to the resulting
	    font name. (Vlad Sandrini)
Solution:   Put the code back in gui_mch_init_font() to form the font name out
	    of the logfont.
Files:	    src/gui_w48.c

Patch 6.1b.032
Problem:    Athena: Setting a color scheme before the GUI has started causes a
	    crash. (Todd Blumer)
Solution:   Don't try using color names that haven't been set yet.
Files:	    src/gui_athena.c

Patch 6.1b.033
Problem:    When using a count after a ":s" command may get ml_get errors.
	    (Dietmar Lang)
Solution:   Check that the resulting range does not go past the end of the
	    buffer.
Files:	    src/ex_cmds.c

Patch 6.1b.034
Problem:    After sourcing mswin.vim, when using <C-S-Right> after
	    auto-indenting and then <Del>, get warning for allocating
	    ridiculous amount of memory. (Dave Delgreco)
Solution:   Adjust the start of the Visual area when deleting the auto-indent.
Files:	    src/edit.c

Patch 6.1b.035
Problem:    When using evim, dropping a file on Vim and then double clicking
	    on a word, it is changed to "i". (Merlin Hansen)
Solution:   Reset need_start_insertmode after editing the file.
Files:	    src/ex_docmd.c


==============================================================================
VERSION 6.2						*version-6.2*

This section is about improvements made between version 6.1 and 6.2.

This is mainly a bug-fix release.  There are also a few new features.

Main new features:
- Support for GTK 2. (Daniel Elstner)
- Support for editing Arabic text. (Nadim Shaikli & Isam Bayazidi)
- ":try" command and exception handling. (Servatius Brandt)
- Support for the neXtaw GUI toolkit (mostly like Athena). (Alexey Froloff)
- Cscope support for Win32. (Khorev Sergey)
- Support for PostScript printing in various 8-bit encodings. (Mike Williams)


Changed							*changed-6.2*
-------

Removed the scheme indent file, the internal Lisp indenting works well now.

Moved the GvimEXt, OleVim and VisVim directories into the "src" directory.
This is more consistent with how xxd is handled.

The VisVim.dll file is installed in the top directory, next to gvimext.dll,
instead of in a subdirectory "VisVim".  Fixes that NSIS was uninstalling it
from the wrong directory.

Removed the art indent file, it didn't do anything.

submatch() returned line breaks with CR instead of LF.

Changed the Win32 Makefiles to become more uniform and compile gvimext.dll.
(Dan Sharp)

'cindent': Align a "//" comment with a "//" comment in a previous line.
(Helmut Stiegler)

Previously only for xterm-like terminals parent widgets were followed to find
the title and icon label.  Now do this for all terminal emulators.

Made it possible to recognize backslashes for "%" matching.  The 'M' flag in
'cpoptions' disables it. (Haakon Riiser)

Removed the Make_tcc.mak makefile for Turbo C.  It didn't work and we probably
can't make it work (the compiler runs out of memory).

Even though the documentation refers to keywords, "[ CTRL-D" was using
'isident' to find matches.  Changed it to use 'iskeyword'.  Also applies to
other commands that search for defined words in included files such as
":dsearch", "[D" and "[d".

Made 'keywordprg' global-local. (Christian Robinson)

Enabled the Netbeans interface by default.  Reversed the configure argument
from "--enable-netbeans" to "--disable-netbeans".


Added							*added-6.2*
-----

New options:
	'arabic'
	'arabicshape'
	'ambiwidth'
	'autochdir'
	'casemap'
	'copyindent'
	'cscopequickfix'
	'preserveindent'
	'printencoding'
	'rightleftcmd'
	'termbidi'
	'toolbariconsize'
	'winfixheight'

New keymaps:
	Serbian (Aleksandar Veselinovic)
	Chinese Pinyin (Fredrik Roubert)
	Esperanto (Antoine J. Mechelynck)

New syntax files:
	Valgrind (Roger Luethi)
	Smarty template (Manfred Stienstra)
	MySQL (Kenneth Pronovici)
	RockLinux package description (Piotr Esden-Tempski)
	MMIX (Dirk Huesken)
	gkrellmrc (David Necas)
	Tilde (Tobias Rundtrom)
	Logtalk (Paulo Moura)
	PLP (Juerd Waalboer)
	fvwm2m4 (David Necas)
	IPfilter (Hendrik Scholz)
	fstab (Radu Dineiu)
	Quake (Nikolai Weibull)
	Occam (Mario Schweigler)
	lpc (Shizhu Pan)
	Exim conf (David Necas)
	EDIF (Artem Zankovich)
	.cvsrc (Nikolai Weibull)
	.fetchmailrc (Nikolai Weibull)
	GNU gpg (Nikolai Weibull)
	Grub (Nikolai Weibull)
	Modconf (Nikolai Weibull)
	RCS (Dmitry Vasiliev)
	Art (Dorai Sitaram)
	Renderman Interface Bytestream (Andrew J Bromage)
	Mailcap (Doug Kearns)
	Subversion commit file (Dmitry Vasiliev)
	Microsoft IDL (Vadim Zeitlin)
	WildPackets EtherPeek Decoder (Christopher Shinn)
	Spyce (Rimon Barr)
	Resolv.conf (Radu Dineiu)
	A65 (Clemens Kirchgatterer)
	sshconfig and sshdconfig (David Necas)
	Cheetah and HTMLCheetah (Max Ischenko)
	Packet filter (Camiel Dobbelaar)

New indent files:
	Eiffel (David Clarke)
	Tilde (Tobias Rundtrom)
	Occam (Mario Schweigler)
	Art (Dorai Sitaram)
	PHP (Miles Lott)
	Dylan (Brent Fulgham)

New tutor translations:
	Slovak (Lubos Celko)
	Greek (Christos Kontas)
	German (Joachim Hofmann)
	Norwegian (Øyvind Holm)

New filetype plugins:
	Occam (Mario Schweigler)
	Art (Dorai Sitaram)
	ant.vim, aspvbs.vim, config.vim, csc.vim, csh.vim, dtd.vim, html.vim,
	jsp.vim, pascal.vim, php.vim, sgml.vim, sh.vim, svg.vim, tcsh.vim,
	xhtml.vim, xml.vim, xsd.vim.  (Dan Sharp)

New compiler plugins:
	Checkstyle (Doug Kearns)
	g77 (Ralf Wildenhues)
	fortran (Johann-Guenter Simon)
	Xmllint (Doug Kearns)
	Ruby (Tim Hammerquist)
	Modelsim vcom (Paul Baleme)

New menu translations:
	Brazilian (José de Paula)
	British (Mike Williams)
	Korean in UTF-8. (Nam SungHyun)
	Norwegian (Øyvind Holm)
	Serbian (Aleksandar Jelenak)

New message translation for Norwegian. (Øyvind Holm)

New color scheme:
	desert (Hans Fugal)

Arabic specific features.  'arabicshape', 'termbidi', 'arabic' and
'rightleftcmd' options.  (Nadim Shaikli & Isam Bayazidi)

Support for neXtaw GUI toolkit, mostly like Athena. (Alexey Froloff)

Win32: cscope support. (Khorev Sergey)

VMS: various improvements to documentation and makefiles.  (Zoltan Arpadffy)

Added "x" key to the explorer plugin: execute the default action. (Yasuhiro
Matsumoto)

Compile gvimext.dll with MingW. (Rene de Zwart)

Add the "tohtml.vim" plugin.  It defines the ":TOhtml" user command, an easy
way to convert text to HTML.

Added ":try" / ":catch" / ":finally" / ":endtry" commands.  Add E999 numbers
to all error messages, so that they can be caught by the number.
(Servatius Brandt)
Moved part of ex_docmd.c to the new ex_eval.c source file.

Include support for GTK+ 2.2.x (Daniel Elstner)
Adds the "~" register: drag & drop text.
Adds the 'toolbariconsize' option.
Add -Dalloca when running lint to work around a problem with alloca()
prototype.

When selecting an item in the error window to jump to, take some effort to
find an ordinary window to show the file in (not a preview window).

Support for PostScript printing of various 8-bit encodings. (Mike Williams)

inputdialog() accepts a third argument that is used when the dialog is
cancelled.  Makes it possible to see a difference between cancelling and
entering nothing.

Included Aap recipes.  Can be used to update Vim to the latest version,
building and installing.

"/" option in 'cinoptions': extra indent for comment lines. (Helmut Stiegler)

Vim variable "v:register" and functions setreg(), getreg() and getregtype().
(Michael Geddes)

"v" flag in 'cpoptions': Leave text on screen with backspace in Insert mode.
(Phillip Vandry)

Dosinst.exe also finds gvimext.dll in the "GvimExt" directory.  Useful when
running install in the "src" directory for testing.

Support tag files that were sorted with case ignored. (Flemming Madsen)

When completing a wildcard in a leading path element, as in "../*/Makefile",
only the last part ("Makefile") was listed.  Support custom defined
command line completion.  (Flemming Madsen)

Also recognize "rxvt" as an xterm-like terminal. (Tomas Styblo)

Proper X11 session management.  Fixes that the WM_SAVE_YOURSELF event was not
used by popular desktops.  (Neil Bird)
Not used for Gnome 2, it has its own handling.

Support BOR, DEBUG and SPAWNO arguments for the Borland 3 Makefile. (Walter
Briscoe)

Support page breaks for printing.  Adds the "formfeed" field in
'printoptions'.  (Mike Williams)

Mac OSX: multi-language support: iconv and gettext. (Muraoka Taro, Axel
Kielhorn)

"\Z" flag in patterns: ignore differences in combining characters. (Ron Aaron)

Added 'preserveindent' and 'copyindent' options.  They use existing white
space characters instead of using Tabs as much as possible. (Chris Leishman)

Updated Unicode tables to Unicode 4.0. (Raphael Finkel)

Support for the mouse wheel in rxvt. (AIDA Shinra)

Win32: Added ":8" file modifier to get short filename.  Test50 tests the ":8"
expansion on Win32 systems. (Michael Geddes)

'cscopequickfix' option: Open quickfix window for Cscope commands.  Also
cleanup the code for giving messages.  (Khorev Sergey)

GUI: Support more than 222 columns for mouse positions.

":stopinsert" command: Don't return to Insert mode.

"interrupt" command for debug mode.  Useful for simulating CTRL-C. (Servatius
Brandt)


Fixed							*fixed-6.2*
-----

Removed a few unused #defines from config.h.in, os_os2_cfg.h and os_vms_conf.h.

The Vim icons in PNG format didn't have a transparent background. (Greg
Roelofs)

Fixed a large number of spelling mistakes in the docs. (Adri Verhoef)

The #defines for prototype generation were causing trouble.  Changed them to
typedefs.

A new version of libintl.h uses __asm__, which confuses cproto.  Define a
dummy __asm__ macro.

When 'virtualedit' is set can't move to halfway an unprintable character.
Cripples CTRL-V selection. (Taro Muraoka)
Allow moving to halfway an unprintable character.  Don't let getvvcol() change
the pos->coladd argument.

When a tab wraps to the next line, 'listchars' is set and 'foldcolumn' is
non-zero, only one character of the foldcolumn is highlighted. (Muraoka Taro)

When using ":catch" without an argument Vim crashes. (Yasuhiro Matsumoto)
When no argument given use the ".*" pattern.

Win32: When gvim.exe is started from a shortcut with the window style property
set to maximize Vim doesn't start with a maximized window. (Yasuhiro
Matsumoto)  Open the window with the default size and don't call ShowWindow()
again when it's already visible. (Helmut Stiegler)

gui_gtk.c used MAX, but it's undefined to avoid a conflict with system header
files.

Win32: When closing a window from a mapping some pixels remain on the
statusline. (Yasuhiro Matsumoto)

A column number in an errorformat that goes beyond the end of the line may
cause a crash.

":throw 'test'" crashes Vim. (Yasuhiro Matsumoto)

The file selector's scrollbar colors are not set after doing a ":hi Scrollbar
guifg=color".  And the file selector's colors are not changed by the
colorscheme command.  (David Harrison)

Motif: When compiling with FEAT_FOOTER defined, the text area gets a few
pixels extra space on the right.  Remove the special case in
gui_get_base_width(). (David Harrison)

Using CTRL-R CTRL-P in Insert mode puts the '] mark in the wrong position.
(Helmut Stiegler)

When 'formatoptions' includes "awct" a non-comment wasn't auto-formatted.

Using a "--cmd" argument more than 10 times caused a crash.

DEC style mouse support didn't work if the page field is not empty.
(Uribarri)

"vim -l one two" did only set 'lisp' in the first file.  Vi does it for every
file.

":set tw<" didn't work.  Was checking for '^' instead of '<'.

In ":hardcopy > %.ps" the "%" was not expanded to the current filename.

Made ":redraw" also update the Visual area.

When a not implemented command, such as ":perl", has wrong arguments the less
important error was reported, giving the user the idea the command could work.

On non-Unix systems autocommands for writing did not attempt a match with the
short file name, causing a pattern like "a/b" to fail.

VMS: e_screenmode was not defined and a few other fixes for VMS. (Zoltan
Arpadffy)

redraw_msg() depended on FEAT_ARABIC instead of FEAT_RIGHTLEFT. (Walter
Briscoe)

Various changes for the PC Makefiles. (Walter Briscoe)

Use _truename() instead of our own code to expand a file name into a full
path. (Walter Briscoe)

Error in filetype check for /etc/modutils. (Lubomir Host)

Cscope interface: allocated a buffer too small.

Win16: remove a trailing backslash from a path when obtaining the permission
flags. (Vince Negri)

When searching for tags with case ignored Vim could hang.

When searching directories with a stopdir could get a crash.  Did not
re-allocate enough memory. (Vince Negri)

A user command may cause a crash.  Don't use the command index when it's
negative. (Vince Negri)

putenv() didn't work for MingW and Cygwin. (Dan Sharp)

Many functions were common between os_msdos.c and os_win16.c.  Use os_msdos.c
for compiling the Win16 version and remove the functions from os_win16.c.
(Vince Negri)

For terminals that behave like an xterm but didn't have a name that is
recognized, the window title would not always be set.

When syntax highlighting is off ":hardcopy" could still attempt printing
colors.

Crash when using ":catch" without an argument.  (Servatius Brandt)

Win32: ":n #" doubled the backslashes.

Fixed Arabic shaping for the command line. (Nadim Shaikli)

Avoid splitting up a string displayed on the command line into individual
characters, it breaks Arabic shaping.

Updated Cygwin and MingW makefiles to use more dependencies. (Dan Sharp)

2html.vim didn't work with 'nomagic' set.

When a local argument list is used and doing ":only" Vim could crash later.
(Muraoka Taro)

When using "%P" in 'statusline' and the fillchar is "-", a percentage of 3%
could result in "-3%".  Also avoid changing a space inside a filename to the
fill character.

MSwin: Handling of backslashes and double quotes for command line arguments
was not like what other applications do.  (Walter Briscoe)

Test32 sometimes didn't work, because test11.out was written as TEST11.OUT.

Avoid pointer conversions warnings for Borland C 5.5 in dosinst.c and
uninstal.c.

More improvements for Make_bc3.mak file. (Walter Briscoe)

When ":syn sync linebreaks=1" is used, editing the first line caused a redraw
of the whole screen.

Making translated messages didn't work, if_perl.xs wasn't found. (Vlad
Sandrini)

Motif and Athena: moving Vim to the foreground didn't uniconify it.  Use
XMapRaised() instead of XRaiseWindow(). (Srikanth Sankaran)

When using ":ptag" in a window where 'scrollbind' is set the preview window
would also have 'scrollbind' set.  Also reset 'foldcolumn' and 'diff'.

Various commands that split a window took over 'scrollbind', which is hardly
ever desired.  Esp. for "q:" and ":copen".  Mostly reset 'scrollbind' when
splitting a window.

When 'shellslash' is set in the vimrc file the first entry of ":scriptnames"
would still have backslashes.  Entries in the quickfix list could also have
wrong (back)slashes.

Win32: printer dialog texts were not translated. (Yasuhiro Matsumoto)

When using a multi-byte character with a K_SPECIAL byte or a special key code
with "--remote-send" the received byte sequence was mangled.  Put it in the
typeahead buffer instead of the input buffer.

Win32: The cursor position was incorrect after changing cursor shape.
(Yasuhiro Matsumoto).

Win32: When 'encoding' is not the current codepage the title could not be set
to non-ascii characters.

"vim -d scp://machine/file1 scp://machine/file2" did not work, there was only
one window.  Fixed the netrw plugin not to wipe out the buffer if it is
displayed in other windows.

"/$" caused "e" in last column of screen to disappear, a highlighted blank was
displayed instead.

":s/ *\ze\n//e" removed the line break and introduced arbitrary text.  Was
using the line count including what matched after the "\ze".

Using the "c" flag with ":s" changed the behavior when a line break is
replaced and "\@<=" is used.  Without "c" a following match was not found.

":%s/\vA@<=\nB@=//gce" got stuck on "A\nB" when entering "n".

VMS: add HAVE_STRFTIME in the config file. (Zoltan Arpadffy)

When a delete prompts if a delete should continue when yanking is not
possible, restore msg_silent afterwards.

":sign" did not complain about a missing argument.

When adding or deleting a sign 'hlsearch' highlighting could disappear.
Use the generic functions for updating signs.

On MS-Windows NT, 2K and XP don't use command.com but cmd.exe for testing.
Makes the tests work on more systems.

In the DOS tests don't create "/tmp" to avoid an error.

Mac classic: Problems with reading files with CR vs CR/LF.  Rely on the
library version of fgets() to work correctly for Metrowerks 2.2. (Axel
Kielhorn)

When typing a password a "*" was shown for each byte instead of for each
character.  Added multi-byte handling to displaying the stars. (Yasuhiro
Matsumoto)

When using Perl 5.6 accessing $curbuf doesn't work.  Add an #ifdef to use
different code for 5.6 and 5.8.  (Dan Sharp)

MingW and Cygwin: Don't strip the debug executable. (Dan Sharp)

An assignment to a variable with curlies that includes "==" doesn't work.
Skip over the curlies before searching for an "=". (Vince Negri)

When cancelling the selection of alternate matching tags the tag stack index
could be advanced too far, resulting in an error message when using CTRL-T.


Patch 6.1.001
Problem:    When formatting UTF-8 text it might be wrapped at a space that is
	    followed by a composing character. (Raphael Finkel)
	    Also correct a display error for removing a composing char on top
	    of a space.
Solution:   Check for a composing character on a space.
Files:	    src/edit.c, src/misc1.c, src/screen.c

Patch 6.1.002 (extra)
Problem:    Win32: after a ":popup" command the mouse pointer stays hidden.
Solution:   Unhide the mouse pointer before showing the menu.
Files:	    src/gui_w48.c

Patch 6.1.003
Problem:    When 'laststatus' is zero and there is a vertical split, the
	    vertical separator is drawn in the command line. (Srikant
	    Sankaran)
Solution:   Don't draw the vertical separator where there is no statusline.
Files:	    src/screen.c

Patch 6.1.004
Problem:    Unicode 3.2 changes width and composing of a few characters.
	    (Markus Kuhn)
Solution:   Adjust the Unicode functions for the character width and composing
	    characters.
Files:	    src/mbyte.c

Patch 6.1.005
Problem:    When using more than 50 items in 'statusline' Vim might crash.
	    (Steve Hall)
Solution:   Increment itemcnt in check_stl_option(). (Flemming Madsen)
Files:	    src/option.c

Patch 6.1.006
Problem:    When using "P" in Visual mode to put linewise selected text, the
	    wrong text is deleted. (Jakub Turski)
Solution:   Put the text before the Visual area and correct the text to be
	    deleted for the inserted lines.
	    Also fix that "p" of linewise text in Visual block mode doesn't
	    work correctly.
Files:	    src/normal.c, src/ops.c

Patch 6.1.007
Problem:    Using ":filetype plugin off" when filetype plugins were never
	    enabled causes an error message. (Yiu Wing)
Solution:   Use ":silent!" to avoid the error message.
Files:	    runtime/ftplugof.vim

Patch 6.1.008
Problem:    The "%" command doesn't ignore \" inside a string, it's seen as
	    the end of the string. (Ken Clark)
Solution:   Skip a double quote preceded by an odd number of backslashes.
Files:	    src/search.c

Patch 6.1.009
Problem:    Vim crashes when using a huge number for the maxwid value in a
	    statusline. (Robert M. Nowotniak)
Solution:   Check for an overflow that makes maxwid negative.
Files:	    src/buffer.c

Patch 6.1.010
Problem:    Searching backwards for a question mark with "?\?" doesn't work.
	    (Alan Isaac)  Same problem in ":s?\??" and ":g?\??".
Solution:   Change the "\?" in a pattern to "?" when using "?" as delimiter.
Files:	    src/ex_cmds.c, src/ex_docmd.c, src/proto/regexp.pro, src/regexp.c,
	    src/search.c, src/syntax.c, src/tag.c

Patch 6.1.011
Problem:    XIM: doesn't work correctly when 'number' is set.  Also, a focus
	    problem when selecting candidates.
Solution:   Fix the XIM problems. (Yasuhiro Matsumoto)
Files:	    src/mbyte.c, src/screen.c

Patch 6.1.012
Problem:    A system() call might fail if fread() does CR-LF to LF
	    translation.
Solution:   Open the output file in binary mode. (Pavol Huhas)
Files:	    src/misc1.c

Patch 6.1.013
Problem:    Win32: The default for 'printexpr' doesn't work when there are
	    special characters in 'printdevice'.
Solution:   Add double quotes around the device name. (Mike Williams)
Files:	    runtime/doc/option.txt, src/option.c

Patch 6.1.014
Problem:    An operator like "r" used in Visual block mode doesn't use
	    'virtualedit' when it's set to "block".
Solution:   Check for 'virtualedit' being active in Visual block mode when the
	    operator was started.
Files:	    src/ex_docmd.c, src/globals.h, src/misc2.c, src/normal.c,
	    src/ops.c, src/undo.c

Patch 6.1.015
Problem:    After patch 6.1.014 can't compile with tiny features. (Christian
	    J. Robinson)
Solution:   Add the missing define of virtual_op.
Files:	    src/vim.h

Patch 6.1.016 (extra)
Problem:    Win32: Outputting Hebrew or Arabic text might have a problem with
	    reversing.
Solution:   Replace the RevOut() function with ETO_IGNORELANGUAGE. (Ron Aaron)
Files:	    src/gui_w32.c

Patch 6.1.017
Problem:    Cygwin: After patch 6.1.012 Still doesn't do binary file I/O.
	    (Pavol Juhas)
Solution:   Define BINARY_FILE_IO for Cygwin.
Files:	    src/os_unix.h

Patch 6.1.018
Problem:    Error message when using cterm highlighting. (Leonardo Di Lella)
Solution:   Remove a backslash before a question mark.
Files:	    runtime/syntax/cterm.vim

Patch 6.1.019 (extra)
Problem:    Win32: File name is messed up when editing just a drive name.
	    (Walter Briscoe)
Solution:   Append a NUL after the drive name. (Vince Negri)
Files:	    src/os_win32.c

Patch 6.1.020
Problem:    col("'>") returns a huge number after using Visual line mode.
Solution:   Return the length of the line instead.
Files:	    src/eval.c

Patch 6.1.021 (depends on patch 6.1.009)
Problem:    Vim crashes when using a huge number for the minwid value in a
	    statusline. (Robert M. Nowotniak)
Solution:   Check for an overflow that makes minwid negative.
Files:	    src/buffer.c

Patch 6.1.022
Problem:    Grabbing the status line above the command-line window works like
	    the bottom status line was grabbed. (Jim Battle)
Solution:   Make it possible to grab the status line above the command-line
	    window, so that it can be resized.
Files:	    src/ui.c

Patch 6.1.023 (extra)
Problem:    VMS: running tests doesn't work properly.
Solution:   Adjust the makefile. (Zoltan Arpadffy)
Files:	    src/testdir/Make_vms.mms

Patch 6.1.024
Problem:    When header files use a new syntax for declaring functions, Vim
	    can't figure out missing prototypes properly.
Solution:   Accept braces around a function name. (M. Warner Losh)
Files:	    src/osdef.sh

Patch 6.1.025
Problem:    Five messages for "vim --help" don't start with a capital. (Vlad
	    Sandrini)
Solution:   Make the messages consistent.
Files:	    src/main.c

Patch 6.1.026
Problem:    *.patch files are not recognized as diff files.  In a script a
	    "VAR=val" argument after "env" isn't ignored.  PHP scripts are not
	    recognized.
Solution:   Add *.patch for diff filetypes.  Ignore "VAR=val".  Recognize PHP
	    scripts. (Roman Neuhauser)
Files:	    runtime/filetype.vim, runtime/scripts.vim

Patch 6.1.027
Problem:    When 'foldcolumn' is non-zero, a special character that wraps to
	    the next line disturbs the foldcolumn highlighting.  (Yasuhiro
	    Matsumoto)
Solution:   Only use the special highlighting when drawing text characters.
Files:	    src/screen.c

Patch 6.1.028
Problem:    Client-server: When a --remote-expr fails, Vim still exits with
	    status zero.
Solution:   Exit Vim with a non-zero status to indicate the --remote-expr
	    failed. (Thomas Scott Urban)
Files:	    src/main.c

Patch 6.1.029
Problem:    When 'encoding' is an 8-bit encoding other than "latin1", editing
	    a utf-8 or other Unicode file uses the wrong conversion. (Jan
	    Fedak)
Solution:   Don't use Unicode to latin1 conversion for 8-bit encodings other
	    than "latin1".
Files:	    src/fileio.c

Patch 6.1.030
Problem:    When CTRL-N is mapped in Insert mode, it is also mapped after
	    CTRL-X CTRL-N, while it is not mapped after CTRL-X CTRL-F.
	    (Kontra Gergely)
Solution:   Don't map CTRL-N after CTRL-X CTRL-N.  Same for CTRL-P.
Files:	    src/getchar.c

Patch 6.1.031
Problem:    Cygwin: Xxd could read a file in text mode instead of binary mode.
Solution:   Use "rb" or "rt" when needed. (Pavol Juhas)
Files:	    src/xxd/xxd.c

Patch 6.1.032
Problem:    Can't specify a quickfix file without jumping to the first error.
Solution:   Add the ":cgetfile" command. (Yegappan Lakshmanan)
Files:	    runtime/doc/index.txt, runtime/doc/quickfix.txt, src/ex_cmds.h,
	    src/quickfix.c

Patch 6.1.033
Problem:    GUI: When the selection is lost and the Visual highlighting is
	    changed to underlining, the cursor is left in a different
	    position. (Christian Michon)
Solution:   Update the cursor position after redrawing the selection.
Files:	    src/ui.c

Patch 6.1.034
Problem:    A CVS diff file isn't recognized as diff filetype.
Solution:   Skip lines starting with "? " before checking for an "Index:" line.
Files:	    runtime/scripts.vim

Patch 6.1.035 (extra, depends on 6.1.016)
Problem:    Win32: Outputting Hebrew or Arabic text might have a problem with
	    reversing on MS-Windows 95/98/ME.
Solution:   Restore the RevOut() function and use it in specific situations
	    only. (Ron Aaron)
Files:	    src/gui_w32.c

Patch 6.1.036
Problem:    This command may cause a crash: ":v/./,//-j". (Ralf Arens)
Solution:   Compute the right length of the regexp when it's empty.
Files:	    src/search.c

Patch 6.1.037
Problem:    When 'lazyredraw' is set, pressing "q" at the hit-enter prompt
	    causes an incomplete redraw and the cursor isn't positioned.
	    (Lubomir Host)
Solution:   Overrule 'lazyredraw' when do_redraw is set.
Files:	    src/main.c, src/screen.c

Patch 6.1.038
Problem:    Multi-byte: When a ":s" command contains a multi-byte character
	    where the trail byte is '~' the text is messed up.
Solution:   Properly skip multi-byte characters in regtilde() (Muraoka Taro)
Files:	    src/regexp.c

Patch 6.1.039
Problem:    When folds are defined and the file is changed outside of Vim,
	    reloading the file doesn't update the folds. (Anders
	    Schack-Nielsen)
Solution:   Recompute the folds after reloading the file.
Files:	    src/fileio.c

Patch 6.1.040
Problem:    When changing directory for expanding a file name fails there is
	    no error message.
Solution:   Give an error message for this situation.  Don't change directory
	    if we can't return to the original directory.
Files:	    src/diff.c, src/ex_docmd.c, src/globals.h, src/misc1.c,
	    src/os_unix.c

Patch 6.1.041
Problem:    ":mkvimrc" doesn't handle a mapping that has a leading space in
	    the rhs. (Davyd Ondrejko)
Solution:   Insert a CTRL-V before the leading space.  Also display leading
	    and trailing white space in <> form.
Files:	    src/getchar.c, src/message.c

Patch 6.1.042
Problem:    "vim -r" doesn't show all matches when 'wildignore' removes swap
	    files. (Steve Talley)
Solution:   Keep all matching swap file names.
Files:	    src/memline.c

Patch 6.1.043
Problem:    After patch 6.1.040 a few warnings are produced.
Solution:   Add a type cast to "char *" for mch_chdir(). (Axel Kielhorn)
Files:	    src/diff.c, src/ex_docmd.c.c, src/misc1.c, src/os_unix.c

Patch 6.1.044 (extra)
Problem:    GUI: When using the find/replace dialog with text that contains a
	    slash, an invalid substitute command is generated.
	    On Win32 a find doesn't work when 'insertmode' is set.
Solution:   Escape slashes with a backslash.
	    Make the Win32, Motif and GTK gui use common code for the
	    find/replace dialog.
	    Add the "match case" option for Motif and GTK.
Files:	    src/feature.h, src/proto/gui.pro, src/gui.c, src/gui.h,
	    src/gui_motif.c, src/gui_gtk.c, src/gui_w48.c

Patch 6.1.045
Problem:    In Visual mode, with lots of folds and 'scrolloff' set to 999,
	    moving the cursor down near the end of the file causes the text to
	    jump up and down. (Lubomir Host)
Solution:   Take into account that the cursor may be on the last line of a
	    closed fold.
Files:	    src/move.c

Patch 6.1.046
Problem:    X11 GUI: ":set lsp=2 gcr=n-v-i:hor1-blinkon0" draws a black
	    rectangle.  ":set lsp=2 gcr=n-v-i:hor10-blinkon0" makes the cursor
	    disappear.  (Nam SungHyun)
Solution:   Correctly compute the height of the horizontal cursor.
Files:	    src/gui_gtk_x11.c, src/gui_x11.c

Patch 6.1.047
Problem:    When skipping commands after an error was encountered, expressions
	    for ":if", ";elseif" and ":while" are still evaluated.
Solution:   Skip the expression after an error. (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.048
Problem:    Unicode 3.2 changes were missing a few Hangul Jamo characters.
Solution:   Recognize more characters as composing characters. (Jungshik Shin)
Files:	    src/mbyte.c

Patch 6.1.049 (extra)
Problem:    On a 32 bit display a valid color may cause an error message,
	    because its pixel value is negative. (Chris Paulson-Ellis)
Solution:   Check for -11111 instead of the color being negative.
	    Don't add one to the pixel value, -1 may be used for white.
Files:	    src/globals.h, src/gui.c, src/gui.h, src/gui_amiga.c,
	    src/gui_athena.c, src/gui_beos.cc, src/gui_gtk_x11.c,
	    src/gui_mac.c, src/gui_motif.c, src/gui_photon.c,
	    src/gui_riscos.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c,
	    src/gui_x11.c, src/mbyte.c, src/syntax.c

Patch 6.1.050 (depends on 6.1.049)
Problem:    After patch 6.1.049 the non-GUI version doesn't compile.
Solution:   Add an #ifdef FEAT_GUI.  (Robert Stanton)
Files:	    src/syntax.c

Patch 6.1.051 (depends on 6.1.044)
Problem:    Doesn't compile with GUI and small features.
Solution:   Adjust the #if for ga_append().
Files:	    src/misc2.c

Patch 6.1.052
Problem:    Unix: The executable() function doesn't work when the "which"
	    command isn't available.
Solution:   Go through $PATH manually.  Also makes it work for VMS.
Files:	    src/os_unix.c

Patch 6.1.053
Problem:    When 'sessionoptions' contains "globals", or "localoptions" and an
	    option value contains a line break, the resulting script is wrong.
Solution:   Use "\n" and "\r" for a line break. (Srinath Avadhanula)
Files:	    src/eval.c

Patch 6.1.054
Problem:    GUI: A mouse click is not recognized at the more prompt, even when
	    'mouse' includes 'r'.
Solution:   Recognize a mouse click at the more prompt.
	    Also accept a mouse click in the last line in the GUI.
	    Add "ml" entry in 'mouseshape'.
Files:	    src/gui.c, src/message.c, src/misc1.c, src/misc2.c, src/option.c,
	    src/structs.h

Patch 6.1.055
Problem:    When editing a compressed file, Vim will inspect the contents to
	    guess the filetype.
Solution:   Don't source scripts.vim for .Z, .gz, .bz2, .zip and .tgz files.
Files:	    runtime/filetype.vim, runtime/plugin/gzip.vim

Patch 6.1.056
Problem:    Loading the Syntax menu can take quite a bit of time.
Solution:   Add the "skip_syntax_sel_menu" variable.  When it's defined the
	    available syntax files are not in the Syntax menu.
Files:	    runtime/doc/gui.txt, runtime/menu.vim

Patch 6.1.057
Problem:    An ESC inside a mapping doesn't work as documented when
	    'insertmode' is set, it does go from Visual or Normal mode to
	    Insert mode. (Benji Fisher)
Solution:   Make it work as documented.
Files:	    src/normal.c

Patch 6.1.058
Problem:    When there is a closed fold just above the first line in the
	    window, using CTRL-X CTRL-Y in Insert mode will show only one line
	    of the fold. (Alexey Marinichev)
Solution:   Correct the topline by putting it at the start of the fold.
Files:	    src/move.c

Patch 6.1.059
Problem:    ":redir > ~/file" doesn't work. (Stephen Rasku)
Solution:   Expand environment variables in the ":redir >" argument.
Files:	    src/ex_docmd.c

Patch 6.1.060
Problem:    When 'virtualedit' is set and 'selection' is "exclusive", deleting
	    a character just before a tab changes the tab into spaces.  Undo
	    doesn't restore the tab. (Helmut Stiegler)
Solution:   Don't replace the tab by spaces when it's not needed.  Correctly
	    save the line before it's changed.
Files:	    src/ops.c

Patch 6.1.061
Problem:    When 'virtualedit' is set and 'selection' is "exclusive", a Visual
	    selection that ends just after a tab doesn't include that tab in
	    the highlighting.  (Helmut Stiegler)
Solution:   Use a different way to exclude the character under the cursor.
Files:	    src/screen.c

Patch 6.1.062
Problem:    The "man" filetype plugin doesn't work properly on Solaris 5.
Solution:   Use a different way to detect that "man -s" should be used. (Hugh
	    Sasse)
Files:	    runtime/ftplugin/man.vim

Patch 6.1.063
Problem:    Java indenting doesn't work properly.
Solution:   Ignore comments when checking if the indent doesn't increase after
	    a "}".
Files:	    runtime/indent/java.vim

Patch 6.1.064
Problem:    The URLs that the netrw plugin recognized for ftp and rcp did not
	    conform to the standard method://[user@]host[:port]/path.
Solution:   Use ftp://[user@]host[[:#]port]/path, which supports both the new
	    and the previous style.  Also added a bit of dav/cadaver support.
	    (Charles Campbell)
Files:	    runtime/plugin/netrw.vim

Patch 6.1.065
Problem:    VMS: The colorscheme, keymap and compiler menus are not filled in.
Solution:   Ignore case when looking for ".vim" files. (Coen Engelbarts)
Files:	    runtime/menu.vim

Patch 6.1.066 (extra)
Problem:    When calling system() in a plugin reading stdin hangs.
Solution:   Don't set the terminal to RAW mode when it wasn't in RAW mode
	    before the system() call.
Files:	    src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_unix.c,
	    src/os_win16.c, src/os_win32.c

Patch 6.1.067
Problem:    ":set viminfo+=f0" is not working. (Benji Fisher)
Solution:   Check the "f" flag instead of "'" in 'viminfo'.
Files:	    src/mark.c

Patch 6.1.068
Problem:    When a file is reloaded after it was changed outside of Vim, diff
	    mode isn't updated. (Michael Naumann)
Solution:   Invalidate the diff info so that it's updated when needed.
Files:	    src/fileio.c

Patch 6.1.069
Problem:    When 'showmatch' is set and "$" is in 'cpoptions', using
	    "C}<Esc>" may forget to remove the "$". (Preben Guldberg)
Solution:   Restore dollar_vcol after displaying the matching cursor position.
Files:	    src/search.c

Patch 6.1.070 (depends on 6.1.060)
Problem:    Compiler warning for signed/unsigned mismatch. (Mike Williams)
Solution:   Add a typecast to int.
Files:	    src/ops.c

Patch 6.1.071
Problem:    When 'selection' is exclusive, g CTRL-G in Visual mode counts one
	    character too much. (David Necas)
Solution:   Subtract one from the end position.
Files:	    src/ops.c

Patch 6.1.072
Problem:    When a file name in a tags file starts with http:// or something
	    else for which there is a BufReadCmd autocommand, the file isn't
	    opened anyway.
Solution:   Check if there is a matching BufReadCmd autocommand and try to
	    open the file.
Files:	    src/fileio.c, src/proto/fileio.pro, src/tag.c

Patch 6.1.073 (extra)
Problem:    BC5: Can't easily specify a tiny, small, normal, big or huge
	    version.
Solution:   Allow selecting the version with the FEATURES variable. (Ajit
	    Thakkar)
Files:	    src/Make_bc5.mak

Patch 6.1.074
Problem:    When 'cdpath' includes "../..", changing to a directory in which
	    we currently already are doesn't work.  ff_check_visited() adds
	    the directory both when using it as the root for searching and for
	    the actual matches. (Stephen Rasku)
Solution:   Use a separate list for the already searched directories.
Files:	    src/misc2.c

Patch 6.1.075 (depends on 6.1.072)
Problem:    Can't compile fileio.c on MS-Windows.
Solution:   Add a declaration for the "p" pointer. (Madoka Machitani)
Files:	    src/fileio.c

Patch 6.1.076 (extra)
Problem:    Macintosh: explorer plugin doesn't work on Mac Classic.
	    IME doesn't work.  Dialog boxes don't work on Mac OS X
Solution:   Fix explorer plugin and key modifiers. (Axel Kielhorn)
	    Fix IME support. (Muraoka Taro)
	    Disable dialog boxes. (Benji Fisher)
Files:	    src/edit.c, src/feature.h, src/gui_mac.c, src/os_mac.c

Patch 6.1.077
Problem:    On a Debian system with ACL linking fails. (Lubomir Host)
Solution:   When the "acl" library is used, check if the "attr" library is
	    present and use it.
Files:	    src/auto/configure, src/configure.in, src/link.sh

Patch 6.1.078
Problem:    When using 'foldmethod' "marker" and the end marker appears before
	    the start marker in the file, no fold is found. (Nazri Ramliy)
Solution:   Don't let the fold depth go negative.
Files:	    src/fold.c

Patch 6.1.079
Problem:    When using "s" in Visual block mode with 'virtualedit' set, when
	    the selected block is after the end of some lines the wrong text
	    is inserted and some lines are skipped. (Servatius Brandt)
Solution:   Insert the right text and extend short lines.
Files:	    src/ops.c

Patch 6.1.080
Problem:    When using gcc with /usr/local already in the search path, adding
	    it again causes problems.
Solution:   Adjust configure.in to avoid adding /usr/local/include and
	    /usr/local/lib when using GCC and they are already used. (Johannes
	    Zellner)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.081
Problem:    ":help CTRL-\_CTRL-N" doesn't work.  (Christian J. Robinson)
Solution:   Double the backslash to avoid the special meaning of "\_".
Files:	    src/ex_cmds.c

Patch 6.1.082
Problem:    On MS-Windows the vimrc_example.vim script is sourced and then
	    mswin.vim.  This enables using select mode, but since "p" is
	    mapped it doesn't replace the selection.
Solution:   Remove the mapping of "p" from vimrc_example.vim, it's obsolete.
	    (Vlad Sandrini)
Files:	    runtime/vimrc_example.vim

Patch 6.1.083
Problem:    When $LANG is "sk" or "sk_sk", the Slovak menu file isn't found.
	    (Martin Lacko)
Solution:   Guess the right menu file based on the system.
Files:	    runtime/lang/menu_sk_sk.vim

Patch 6.1.084 (depends on 6.1.080)
Problem:    "include" and "lib" are mixed up when checking the directories gcc
	    already searches.
Solution:   Swap the variable names. (SunHo Kim)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.085
Problem:    When using CTRL-O CTRL-\ CTRL-N from Insert mode, the displayed
	    mode "(insert)" isn't removed. (Benji Fisher)
Solution:   Clear the command line.
Files:	    src/normal.c

Patch 6.1.086 (depends on 6.1.049)
Problem:    The guifg color for CursorIM doesn't take effect.
Solution:   Use the foreground color when it's defined. (Muraoka Taro)
Files:	    src/gui.c

Patch 6.1.087
Problem:    A thesaurus with Japanese characters has problems with characters
	    in different word classes.
Solution:   Only separate words with single-byte non-word characters.
	    (Muraoka Taro)
Files:	    src/edit.c

Patch 6.1.088 (extra)
Problem:    Win32: no debugging info is generated.  Tags file excludes .cpp
	    files.
Solution:   Add "/map" to compiler flags.  Add "*.cpp" to ctags command.
	    (Muraoka Taro)
Files:	    src/Make_mvc.mak

Patch 6.1.089
Problem:    On BSDI systems there is no ss_sp field in stack_t. (Robert Jan)
Solution:   Use ss_base instead.
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/os_unix.c

Patch 6.1.090
Problem:    CTRL-F gets stuck when 'scrolloff' is non-zero and there is a mix
	    of long wrapping lines and a non-wrapping line.
Solution:   Check that CTRL-F scrolls at least one line.
Files:	    src/move.c

Patch 6.1.091
Problem:    GTK: Can't change preeditstate without setting 'imactivatekey'.
Solution:   Add some code to change preeditstate for OnTheSpot. (Yasuhiro
	    Matsumoto)
Files:	    src/mbyte.c

Patch 6.1.092
Problem:    ":mapclear <buffer>" doesn't work. (Srikanth Adayapalam)
Solution:   Allow an argument for ":mapclear".
Files:	    src/ex_cmds.h

Patch 6.1.093 (extra)
Problem:    Mac and MS-Windows GUI: when scrolling while ":s" is working the
	    results can be messed up, because the cursor is moved.
Solution:   Disallow direct scrolling when not waiting for a character.
Files:	    src/gui_mac.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.1.094
Problem:    Cygwin: Passing a file name that has backslashes isn't handled
	    very well.
Solution:   Convert file name arguments to Posix.  (Chris Metcalf)
Files:	    src/main.c

Patch 6.1.095
Problem:    When using signs can free an item on the stack.
	    Overruling sign colors doesn't work. (Srikanth Sankaran)
Solution:   Don't free the item on the stack.  Use NULL instead of "none" for
	    the value of the color.
Files:	    src/gui_x11.c

Patch 6.1.096
Problem:    When erasing the right halve of a double-byte character, it may
	    cause further characters to be erased. (Yasuhiro Matsumoto)
Solution:   Make sure only one character is erased.
Files:	    src/screen.c

Patch 6.1.097 (depends on 6.1.090)
Problem:    When 'scrolloff' is set to a huge value, CTRL-F at the end of the
	    file scrolls one line. (Lubomir Host)
Solution:   Don't scroll when CTRL-F detects the end-of-file.
Files:	    src/move.c

Patch 6.1.098
Problem:    MS-Windows: When the xxd program is under "c:\program files" the
	    "Convert to Hex" menu doesn't work. (Brian Mathis)
Solution:   Put the path to xxd in double quotes.
Files:	    runtime/menu.vim

Patch 6.1.099
Problem:    Memory corrupted when closing a fold with more than 99999 lines.
Solution:   Allocate more space for the fold text. (Walter Briscoe)
Files:	    src/eval.c

Patch 6.1.100 (extra, depends on 6.1.088)
Problem:    Win32: VC5 and earlier don't support the /mapinfo option.
Solution:   Add "/mapinfo" only when "MAP=lines" is specified. (Muraoka Taro)
Files:	    src/Make_mvc.mak

Patch 6.1.101
Problem:    After using ":options" the tabstop of a new window is 15.  Entry
	    in ":options" window for 'autowriteall' is wrong. (Antoine J
	    Mechelynck)  Can't insert a space in an option value.
Solution:   Use ":setlocal" instead of ":set".  Change "aw" to "awa".
	    Don't map space in Insert mode.
Files:	    runtime/optwin.vim

Patch 6.1.102
Problem:    Unprintable and multi-byte characters in a statusline item are not
	    truncated correctly. (Yasuhiro Matsumoto)
Solution:   Count the width of characters instead of the number of bytes.
Files:	    src/buffer.c

Patch 6.1.103
Problem:    A function returning from a while loop, with 'verbose' set to 12
	    or higher, doesn't mention the return value.  A function with the
	    'abort' attribute may return -1 while the verbose message says
	    something else.
Solution:   Move the verbose message about returning from a function to
	    call_func(). (Servatius Brandt)
Files:	    src/eval.c

Patch 6.1.104
Problem:    GCC 3.1 appears to have an optimizer problem that makes test 3
	    crash.
Solution:   For GCC 3.1 add -fno-strength-reduce to avoid the optimizer bug.
	    Filter out extra info from "gcc --version".
Files:	    src/auto/configure, src/configure.in

Patch 6.1.105
Problem:    Win32: The default for 'shellpipe' doesn't redirect stderr. (Dion
	    Nicolaas)
Solution:   Redirect stderr, depending on the shell (like for 'shellredir').
Files:	    src/option.c

Patch 6.1.106
Problem:    The maze program crashes.
Solution:   Change "11" to "27" and it works. (Greg Roelofs)
Files:	    runtime/macros/maze/mazeansi.c

Patch 6.1.107
Problem:    When 'list' is set the current line in the error window may be
	    displayed wrong. (Muraoka Taro)
Solution:   Don't continue the line after the $ has been displayed and the
	    rightmost column is reached.
Files:	    src/screen.c

Patch 6.1.108
Problem:    When interrupting a filter command such as "!!sleep 20" the file
	    becomes read-only. (Mark Brader)
Solution:   Only set the read-only flag when opening a buffer is interrupted.
	    When the shell command was interrupted, read the output that was
	    produced so far.
Files:	    src/ex_cmds.c, src/fileio.c

Patch 6.1.109
Problem:    When 'eadirection' is "hor", using CTRL-W = doesn't equalize the
	    window heights. (Roman Neuhauser)
Solution:   Ignore 'eadirection' for CTRL-W =
Files:	    src/window.c

Patch 6.1.110
Problem:    When using ":badd file" when "file" is already present but not
	    listed, it stays unlisted. (David Frey)
Solution:   Set 'buflisted'.
Files:	    src/buffer.c

Patch 6.1.111
Problem:    It's not possible to detect using the Unix sources on Win32 or Mac.
Solution:   Add has("macunix") and has("win32unix").
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.1.112
Problem:    When using ":argdo", ":bufdo" or ":windo", CTRL-O doesn't go to
	    the cursor position from before this command but every position
	    where the argument was executed.
Solution:   Only remember the cursor position from before the ":argdo",
	    ":bufdo" and ":windo".
Files:	    src/ex_cmds2.c, src/mark.c

Patch 6.1.113
Problem:    ":bufdo bwipe" only wipes out half the buffers.  (Roman Neuhauser)
Solution:   Decide what buffer to go to next before executing the command.
Files:	    src/ex_cmds2.c

Patch 6.1.114
Problem:    ":python import vim", ":python vim.current.buffer[0:0] = []" gives
	    a lalloc(0) error. (Chris Southern)
Solution:   Don't allocate an array when it's size is zero.
Files:	    src/if_python.c

Patch 6.1.115
Problem:    "das" on the white space at the end of a paragraph does not delete
	    the "." the sentence ends with.
Solution:   Don't exclude the last character when it is not white space.
Files:	    src/search.c

Patch 6.1.116
Problem:    When 'endofline' is changed while 'binary' is set a file should be
	    considered modified. (Olaf Buddenhagen)
Solution:   Remember the 'eol' value when editing started and consider the
	    file changed when the current value is different and 'binary' is
	    set.  Also fix that the window title isn't updated when 'ff' or
	    'bin' changes.
Files:	    src/option.c, src/structs.h

Patch 6.1.117
Problem:    Small problem with editing a file over ftp: and with Cygwin.
Solution:   Remove a dot from a ":normal" command.  Use "cygdrive" where
	    appropriate.  (Charles Campbell)
Files:	    runtime/plugin/netrw.vim

Patch 6.1.118
Problem:    When a file in diff mode is reloaded because it changed outside
	    of Vim, other windows in diff mode are not always updated.
	    (Michael Naumann)
Solution:   After reloading a file in diff mode mark all windows in diff mode
	    for redraw.
Files:	    src/diff.c

Patch 6.1.119 (extra)
Problem:    With the Sniff interface, using Sniff 4.0.X on HP-UX, there may be
	    a crash when connecting to Sniff.
Solution:   Initialize sniff_rq_sep such that its value can be changed.
	    (Martin Egloff)
Files:	    src/if_sniff.c

Patch 6.1.120 (depends on 6.1.097)
Problem:    When 'scrolloff' is non-zero and there are folds, CTRL-F at the
	    end of the file scrolls part of a closed fold.  (Lubomir Host)
Solution:   Adjust the first line to the start of a fold.
Files:	    src/move.c

Patch 6.1.121 (depends on 6.1.098)
Problem:    When starting Select mode from Insert mode, then using the Paste
	    menu entry, the cursor is left before the last pasted character.
	    (Mario Schweigler)
Solution:   Set the cursor for Insert mode one character to the right.
Files:	    runtime/menu.vim

Patch 6.1.122
Problem:    ":file name" creates a new buffer to hold the old buffer name,
	    which becomes the alternate file.  This buffer is unexpectedly
	    listed.
Solution:   Create the buffer for the alternate name unlisted.
Files:	    src/ex_cmds.c

Patch 6.1.123
Problem:    A ":match" command with more than one argument doesn't report an
	    error.
Solution:   Check for extra characters. (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.124
Problem:    When trying to exit and there is a hidden buffer that had 'eol'
	    off and 'bin' set exiting isn't possible. (John McGowan)
Solution:   Set b_start_eol when clearing the buffer.
Files:	    src/buffer.c

Patch 6.1.125
Problem:    Explorer plugin asks for saving a modified buffer even when it's
	    open in another window as well.
Solution:   Count the number of windows using the buffer.
Files:	    runtime/plugin/explorer.vim

Patch 6.1.126
Problem:    Adding the choices in the syntax menu is consuming much of the
	    startup time of the GUI while it's not often used.
Solution:   Only add the choices when the user wants to use them.
Files:	    Makefile, runtime/makemenu.vim, runtime/menu.vim,
	    runtime/synmenu.vim, src/Makefile

Patch 6.1.127
Problem:    When using "--remote file" and the server has 'insertmode' set,
	    commands are inserted instead of being executed. (Niklas Volbers)
Solution:   Go to Normal mode again after the ":drop" command.
Files:	    src/main.c

Patch 6.1.128
Problem:    The expression "input('very long prompt')" puts the cursor in the
	    wrong line (column is OK).
Solution:   Add the wrapped lines to the indent. (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c

Patch 6.1.129
Problem:    On Solaris editing "file/" and then "file" results in using the
	    same buffer.  (Jim Battle)
Solution:   Before using stat(), check that there is no illegal trailing
	    slash.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/macros.h src/misc2.c, src/proto/misc2.pro

Patch 6.1.130
Problem:    The documentation for some of the 'errorformat' items is unclear.
Solution:   Add more examples and explain hard to understand items. (Stefan
	    Roemer)
Files:	    runtime/doc/quickfix.txt

Patch 6.1.131
Problem:    X11 GUI: when expanding a CSI byte in the input stream to K_CSI,
	    the CSI byte itself isn't copied.
Solution:   Copy the CSI byte.
Files:	    src/gui_x11.c

Patch 6.1.132
Problem:    Executing a register in Ex mode may cause commands to be skipped.
	    (John McGowan)
Solution:   In Ex mode use an extra check if the register contents was
	    consumed, to avoid input goes into the typeahead buffer.
Files:	    src/ex_docmd.c

Patch 6.1.133
Problem:    When drawing double-wide characters in the statusline, may clear
	    half of a character. (Yasuhiro Matsumoto)
Solution:   Force redraw of the next character by setting the attributes
	    instead of putting a NUL in ScreenLines[].  Do put a NUL in
	    ScreenLines[] when overwriting half of a double-wide character.
Files:	    src/screen.c

Patch 6.1.134
Problem:    An error for a trailing argument of ":match" should not be given
	    after ":if 0". (Servatius Brandt)
Solution:   Only do the check when executing commands.
Files:	    src/ex_docmd.c

Patch 6.1.135
Problem:    Passing a command to the shell that includes a newline always has
	    a backslash before the newline.
Solution:   Remove one backslash before the newline.  (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.136
Problem:    When $TERM is "linux" the default for 'background' is "dark", even
	    though the GUI uses a light background. (Hugh Allen)
Solution:   Don't mark the option as set when defaulting to "dark" for the
	    linux console.  Also reset 'background' to "light" when the GUI
	    has a light background.
Files:	    src/option.c

Patch 6.1.137
Problem:    Converting to HTML has a clumsy way of dealing with tabs which may
	    change the highlighting.
Solution:   Replace tabs with spaces after converting a line to HTML. (Preben
	    Guldberg)
Files:	    runtime/syntax/2html.vim

Patch 6.1.138 (depends on 6.1.126)
Problem:    Adding extra items to the Syntax menu can't be done when the "Show
	    individual choices" menu is used.
Solution:   Use ":runtime!" instead of ":source", so that all synmenu.vim
	    files in the runtime path are loaded. (Servatius Brandt)
	    Also fix that a translated menu can't be removed.
Files:	    runtime/menu.vim

Patch 6.1.139
Problem:    Cygwin: PATH_MAX is not defined.
Solution:   Include limits.h. (Dan Sharp)
Files:	    src/main.c

Patch 6.1.140
Problem:    Cygwin: ":args `ls *.c`" does not work if the shell command
	    produces CR NL line separators.
Solution:   Remove the CR characters ourselves. (Pavol Juhas)
Files:	    src/os_unix.c

Patch 6.1.141
Problem:    ":wincmd gx" may cause problems when mixed with other commands.
	    ":wincmd c" doesn't close the window immediately. (Benji Fisher)
Solution:   Pass the extra command character directly instead of using the
	    stuff buffer and call ex_close() directly.
Files:	    src/ex_docmd.c, src/normal.c, src/proto/normal.pro,
	    src/proto/window.pro, src/window.c

Patch 6.1.142
Problem:    Defining paragraphs without a separating blank line isn't
	    possible.  Paragraphs can't be formatted automatically.
Solution:   Allow defining paragraphs with lines that end in white space.
	    Added the 'w' and 'a' flags in 'formatoptions'.
Files:	    runtime/doc/change.txt, src/edit.c, src/misc1.c, src/normal.c,
	    src/option.h, src/ops.c, src/proto/edit.pro, src/proto/ops.pro,
	    src/vim.h

Patch 6.1.143 (depends on 6.1.142)
Problem:    Auto formatting near the end of the file moves the cursor to a
	    wrong position.  In Insert mode some lines are made one char too
	    narrow.  When deleting a line undo might not always work properly.
Solution:   Don't always move to the end of the line in the last line.  Don't
	    position the cursor past the end of the line in Insert mode.
	    After deleting a line save the cursor line for undo.
Files:	    src/edit.c, src/ops.c, src/normal.c

Patch 6.1.144
Problem:    Obtaining the size of a line in screen characters can be wrong.
	    A pointer may wrap around zero.
Solution:   In win_linetabsize() check for a MAXCOL length argument. (Jim
	    Dunleavy)
Files:	    src/charset.c

Patch 6.1.145
Problem:    GTK: Drag&drop with more than 3 files may cause a crash. (Mickael
	    Marchand)
Solution:   Rewrite the code that parses the received list of files to be more
	    robust.
Files:	    src/charset.c, src/gui_gtk_x11.c

Patch 6.1.146
Problem:    MS-Windows: When $HOME is constructed from $HOMEDRIVE and
	    $HOMEPATH, it is not used for storing the _viminfo file.  (Normal
	    Diamond)
Solution:   Set $HOME with the value obtained from $HOMEDRIVE and $HOMEPATH.
Files:	    src/misc1.c

Patch 6.1.147 (extra)
Problem:    MS-Windows: When a dialog has no default button, pressing Enter
	    ends it anyway and all buttons are selected.
Solution:   Don't end a dialog when there is no default button.  Don't select
	    all button when there is no default. (Vince Negri)
Files:	    src/gui_w32.c

Patch 6.1.148 (extra)
Problem:    MS-Windows: ACL is not properly supported.
Solution:   Add an access() replacement that also works for ACL. (Mike
	    Williams)
Files:	    runtime/doc/editing.txt, src/os_win32.c

Patch 6.1.149 (extra)
Problem:    MS-Windows: Can't use diff mode from the file explorer.
Solution:   Add a "diff with Vim" context menu entry. (Dan Sharp)
Files:	    GvimExt/gvimext.cpp, GvimExt/gvimext.h

Patch 6.1.150
Problem:    OS/2, MS-Windows and MS-DOS: When 'shellslash' is set getcwd()
	    still uses backslash. (Yegappan Lakshmanan)
Solution:   Adjust slashes in getcwd().
Files:	    src/eval.c

Patch 6.1.151 (extra)
Problem:    Win32: The NTFS substream isn't copied.
Solution:   Copy the substream when making a backup copy. (Muraoka Taro)
Files:	    src/fileio.c, src/os_win32.c, src/proto/os_win32.pro

Patch 6.1.152
Problem:    When $LANG is iso8859-1 translated menus are not used.
Solution:   Change iso8859 to iso_8859.
Files:	    runtime/menu.vim

Patch 6.1.153
Problem:    Searching in included files may search recursively when the path
	    starts with "../".  (Sven Berkvens-Matthijsse)
Solution:   Compare full file names, use inode/device when possible.
Files:	    src/search.c

Patch 6.1.154 (extra)
Problem:    DJGPP: "vim -h" leaves the cursor in a wrong position.
Solution:   Don't position the cursor using uninitialized variables. (Jim
	    Dunleavy)
Files:	    src/os_msdos.c

Patch 6.1.155
Problem:    Win32: Cursor may sometimes disappear in Insert mode.
Solution:   Change "hor10" in 'guicursor' to "hor15". (Walter Briscoe)
Files:	    src/option.c

Patch 6.1.156
Problem:    Conversion between DBCS and UCS-2 isn't implemented cleanly.
Solution:   Clean up a few things.
Files:	    src/mbyte.c, src/structs.h

Patch 6.1.157
Problem:    'hlsearch' highlights only the second comma in ",,,,," with
	    "/,\@<=[^,]*". (Preben Guldberg)
Solution:   Also check for an empty match to start just after a previous
	    match.
Files:	    src/screen.c

Patch 6.1.158
Problem:    "zs" and "ze" don't work correctly with ":set nowrap siso=1".
	    (Preben Guldberg)
Solution:   Take 'siso' into account when computing the horizontal scroll
	    position for "zs" and "ze".
Files:	    src/normal.c

Patch 6.1.159
Problem:    When expanding an abbreviation that includes a multi-byte
	    character too many characters are deleted. (Andrey Urazov)
Solution:   Delete the abbreviation counting characters instead of bytes.
Files:	    src/getchar.c

Patch 6.1.160
Problem:    ":$read file.gz" doesn't work. (Preben Guldberg)
Solution:   Don't use the '[ mark after it has become invalid.
Files:	    runtime/plugin/gzip.vim

Patch 6.1.161 (depends on 6.1.158)
Problem:    Warning for signed/unsigned compare.  Can set 'siso' to a negative
	    value. (Mike Williams)
Solution:   Add a typecast.  Add a check for 'siso' being negative.
Files:	    src/normal.c, src/option.c

Patch 6.1.162
Problem:    Python interface: Didn't initialize threads properly.
Solution:   Call PyEval_InitThreads() when starting up.
Files:	    src/if_python.c

Patch 6.1.163
Problem:    Win32: Can't compile with Python after 6.1.162.
Solution:   Dynamically load  PyEval_InitThreads(). (Dan Sharp)
Files:	    src/if_python.c

Patch 6.1.164
Problem:    If 'modifiable' is off, converting to xxd fails and 'filetype' is
	    changed to "xxd" anyway.
Solution:   Don't change 'filetype' when conversion failed.
Files:	    runtime/menu.vim

Patch 6.1.165
Problem:    Making changes in several lines and then a change in one of these
	    lines that splits it in two or more lines, undo information was
	    corrupted.  May cause a crash. (Dave Fishburn)
Solution:   When skipping to save a line for undo because it was already
	    saved, move it to become the last saved line, so that when the
	    command changes the line count other saved lines are not involved.
Files:	    src/undo.c

Patch 6.1.166
Problem:    When 'autoindent' is set and mswin.vim has been sourced, pasting
	    with CTRL-V just after auto-indenting removes the indent. (Shlomi
	    Fish)
Solution:   First insert an "x" and delete it again, so that the auto-indent
	    remains.
Files:	    runtime/mswin.vim

Patch 6.1.167
Problem:    When giving a negative argument to ":retab" strange things start
	    happening. (Hans Ginzel)
Solution:   Check for a negative value.
Files:	    src/ex_cmds.c

Patch 6.1.168
Problem:    Pressing CTRL-C at the hit-enter prompt doesn't end the prompt.
Solution:   Make CTRL-C stop the hit-enter prompt.
Files:	    src/message.c

Patch 6.1.169
Problem:    bufexists() finds a buffer by using the name of a symbolic link to
	    it, but bufnr() doesn't. (Yegappan Lakshmanan)
Solution:   When bufnr() can't find a buffer, try using the same method as
	    bufexists().
Files:	    src/eval.c

Patch 6.1.170
Problem:    Using ":mksession" uses the default session file name, but "vim
	    -S" doesn't. (Hans Ginzel)
Solution:   Use the default session file name if "-S" is the last command
	    line argument or another option follows.
Files:	    runtime/doc/starting.txt, src/main.c

Patch 6.1.171
Problem:    When opening a line just above a closed fold with "O" and the
	    comment leader is automatically inserted, the cursor is displayed
	    in the first column. (Sung-Hyun Nam)
Solution:   Update the flag that indicates the cursor is in a closed fold.
Files:	    src/misc1.c

Patch 6.1.172
Problem:    Command line completion of ":tag /pat" does not show the same
	    results as the tags the command actually finds. (Gilles Roy)
Solution:   Don't modify the pattern to make it a regexp.
Files:	    src/ex_getln.c, src/tag.c

Patch 6.1.173
Problem:    When using remote control to edit a position in a file and this
	    file is the current buffer and it's modified, the window is split
	    and the ":drop" command fails.
Solution:   Don't split the window, keep editing the same buffer.
	    Use the ":drop" command in VisVim to avoid the problem there.
Files:	    src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
	    VisVim/Commands.cpp

Patch 6.1.174
Problem:    It is difficult to know in a script whether an option not only
	    exists but really works.
Solution:   Add "exists('+option')".
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.1.175
Problem:    When reading commands from a pipe and a CTRL-C is pressed, Vim
	    will hang. (Piet Delport)
Solution:   Don't keep reading characters to clear typeahead when an interrupt
	    was detected, stop when a single CTRL-C is read.
Files:	    src/getchar.c, src/ui.c

Patch 6.1.176
Problem:    When the stack limit is very big a false out-of-stack error may
	    be detected.
Solution:   Add a check for overflow of the stack limit computation. (Jim
	    Dunleavy)
Files:	    src/os_unix.c

Patch 6.1.177 (depends on 6.1.141)
Problem:    ":wincmd" does not allow a following command. (Gary Johnson)
Solution:   Check for a following " | cmd".  Also give an error for trailing
	    characters.
Files:	    src/ex_docmd.c

Patch 6.1.178
Problem:    When 'expandtab' is set "r<C-V><Tab>" still expands the Tab.
	    (Bruce deVisser)
Solution:   Replace with a literal Tab.
Files:	    src/normal.c

Patch 6.1.179 (depends on 6.1.091)
Problem:    When using X11R5 XIMPreserveState is undefined. (Albert Chin)
Solution:   Include the missing definitions.
Files:	    src/mbyte.c

Patch 6.1.180
Problem:    Use of the GUI code for forking is inconsistent.
Solution:   Define MAY_FORK and use it for later #ifdefs. (Ben Fowlwer)
Files:	    src/gui.c

Patch 6.1.181
Problem:    If the terminal doesn't wrap from the last char in a line to the
	    next line, the last column is blanked out. (Peter Karp)
Solution:   Don't output a space to mark the wrap, but the same character
	    again.
Files:	    src/screen.c

Patch 6.1.182 (depends on 6.1.142)
Problem:    It is not possible to auto-format comments only. (Moshe Kaminsky)
Solution:   When the 'a' and 'c' flags are in 'formatoptions' only auto-format
	    comments.
Files:	    runtime/doc/change.txt, src/edit.c

Patch 6.1.183
Problem:    When 'fencs' is empty and 'enc' is utf-8, reading a file with
	    illegal bytes gives "CONVERSION ERROR" even though no conversion
	    is done.  'readonly' is set, even though writing the file results
	    in an unmodified file.
Solution:   For this specific error use "ILLEGAL BYTE" and don't set
	    'readonly'.
Files:	    src/fileio.c

Patch 6.1.184 (extra)
Problem:    The extra mouse buttons found on some mice don't work.
Solution:   Support two extra buttons for MS-Windows. (Michael Geddes)
Files:	    runtime/doc/term.txt, src/edit.c, src/ex_getln.c, src/gui.c,
	    src/gui_w32.c, src/gui_w48.c, src/keymap.h, src/message.c,
	    src/misc1.c, src/misc2.c, src/normal.c, src/vim.h

Patch 6.1.185 (depends on 6.1.182)
Problem:    Can't compile without +comments feature.
Solution:   Add #ifdef FEAT_COMMENTS. (Christian J. Robinson)
Files:	    src/edit.c

Patch 6.1.186 (depends on 6.1.177)
Problem:    ":wincmd" does not allow a following comment. (Aric Blumer)
Solution:   Check for a following double quote.
Files:	    src/ex_docmd.c

Patch 6.1.187
Problem:    Using ":doarg" with 'hidden' set and the current file is the only
	    argument and was modified gives an error message. (Preben
	    Guldberg)
Solution:   Don't try re-editing the same file.
Files:	    src/ex_cmds2.c

Patch 6.1.188 (depends on 6.1.173)
Problem:    Unused variable in the small version.
Solution:   Move the declaration for "p" inside #ifdef FEAT_LISTCMDS.
Files:	    src/ex_cmds2.c

Patch 6.1.189
Problem:    inputdialog() doesn't work when 'c' is in 'guioptions'. (Aric
	    Blumer)
Solution:   Fall back to the input() function in this situation.
Files:	    src/eval.c

Patch 6.1.190 (extra)
Problem:    VMS: doesn't build with GTK GUI.  Various other problems.
Solution:   Fix building for GTK.  Improved Perl, Python and TCL support.
	    Improved VMS documentation. (Zoltan Arpadffy)
	    Added Vimtutor for VMS (T. R. Wyant)
Files:	    runtime/doc/os_vms.txt, src/INSTALLvms.txt, src/gui_gtk_f.h,
	    src/if_tcl.c, src/main.c, src/gui_gtk_vms.h, src/Make_vms.mms,
	    src/os_vms.opt, src/proto/if_tcl.pro, vimtutor.com,
	    src/testdir/Make_vms.mms

Patch 6.1.191
Problem:    When using "vim -s script" and redirecting the output, the delay
	    for the "Output is not to a terminal" warning slows Vim down too
	    much.
Solution:   Don't delay when reading commands from a script.
Files:	    src/main.c

Patch 6.1.192
Problem:    ":diffsplit" doesn't add "hor" to 'scrollopt'. (Gary Johnson)
Solution:   Add "hor" to 'scrollopt' each time ":diffsplit" is used.
Files:	    src/diff.c, src/main.c

Patch 6.1.193
Problem:    Crash in in_id_list() for an item with a "containedin" list. (Dave
	    Fishburn)
Solution:   Check for a negative syntax id, used for keywords.
Files:	    src/syntax.c

Patch 6.1.194
Problem:    When "t_ti" is set but it doesn't cause swapping terminal pages,
	    "ZZ" may cause the shell prompt to appear on top of the file-write
	    message.
Solution:   Scroll the text up in the Vim page before swapping to the terminal
	    page. (Michael Schroeder)
Files:	    src/os_unix.c

Patch 6.1.195
Problem:    The quickfix and preview windows always keep their height, while
	    other windows can't fix their height.
Solution:   Add the 'winfixheight' option, so that a fixed height can be
	    specified for any window.  Also fix that the wildmenu may resize a
	    one-line window to a two-line window if 'ls' is zero.
Files:	    runtime/doc/options.txt, runtime/optwin.vim, src/ex_cmds.c,
	    src/ex_getln.c, src/globals.h, src/option.c, src/quickfix.c,
	    src/screen.c, src/structs.h, src/window.c

Patch 6.1.196  (depends on 6.1.084)
Problem:    On Mac OS X 10.2 generating osdef.h fails.
Solution:   Add -no-cpp-precomp to avoid using precompiled header files, which
	    disables printing the search path. (Ben Fowler)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.197
Problem:    ":help <C-V><C-\><C-V><C-N>" (resulting in <1c><0e>) gives an
	    error message. (Servatius Brandt)
Solution:   Double the backslash in "CTRL-\".
Files:	    src/ex_cmds.c

Patch 6.1.198 (extra) (depends on 6.1.076)
Problem:    Mac OS X: Dialogues don't work.
Solution:   Fix a crashing problem for some GUI dialogues.  Fix a problem when
	    saving to a new file from the GUI. (Peter Cucka)
Files:	    src/feature.h, src/gui_mac.c

Patch 6.1.199
Problem:    'guifontwide' doesn't work on Win32.
Solution:   Output each wide character separately. (Michael Geddes)
Files:	    src/gui.c

Patch 6.1.200
Problem:    ":syn sync fromstart" is not skipped after ":if 0".  This can make
	    syntax highlighting very slow.
Solution:   Check "eap->skip" appropriately. (Rob West)
Files:	    src/syntax.c

Patch 6.1.201 (depends on 6.1.192)
Problem:    Warning for illegal pointer combination. (Zoltan Arpadffy)
Solution:   Add a typecast.
Files:	    src/diff.c

Patch 6.1.202  (extra)(depends on 6.1.148)
Problem:    Win32: filewritable() doesn't work properly on directories.
Solution:   fix filewritable(). (Mike Williams)
Files:	    src/os_win32.c

Patch 6.1.203
Problem:    ":%s/~//" causes a crash after ":%s/x//". (Gary Holloway)
Solution:   Avoid reading past the end of a line when "~" is empty.
Files:	    src/regexp.c

Patch 6.1.204 (depends on 6.1.129)
Problem:    Warning for an illegal pointer on Solaris.
Solution:   Add a typecast. (Derek Wyatt)
Files:	    src/misc2.c

Patch 6.1.205
Problem:    The gzip plugin changes the alternate file when editing a
	    compressed file. (Oliver Fuchs)
Solution:   Temporarily remove the 'a' and 'A' flags from 'cpo'.
Files:	    runtime/plugin/gzip.vim

Patch 6.1.206
Problem:    The script generated with ":mksession" doesn't work properly when
	    some commands are mapped.
Solution:   Use ":normal!" instead of ":normal".  And use ":wincmd" where
	    possible. (Muraoka Taro)
Files:	    src/ex_docmd.c, src/fold.c

Patch 6.1.207
Problem:    Indenting a Java file hangs below a line with a comment after a
	    command.
Solution:   Break out of a loop. (Andre Pang)
	    Also line up } with matching {.
Files:	    runtime/indent/java.vim

Patch 6.1.208
Problem:    Can't use the buffer number from the Python interface.
Solution:   Add buffer.number. (Michal Vitecek)
Files:	    src/if_python.c

Patch 6.1.209
Problem:    Printing doesn't work on Mac OS classic.
Solution:   Use a ":" for path separator when opening the resource file. (Axel
	    Kielhorn)
Files:	    src/ex_cmds2.c

Patch 6.1.210
Problem:    When there is an iconv() conversion error when reading a file
	    there can be an error the next time iconv() is used.
Solution:   Reset the state of the iconv() descriptor. (Yasuhiro Matsumoto)
Files:	    src/fileio.c

Patch 6.1.211
Problem:    The message "use ! to override" is confusing.
Solution:   Make it "add ! to override".
Files:	    src/buffer.c, src/eval.c, src/ex_docmd.c, src/fileio.c,
	    src/globals.h

Patch 6.1.212
Problem:    When Vim was started with "-R" ":new" creates a buffer
	    'noreadonly' while ":enew" has 'readonly' set. (Preben Guldberg)
Solution:   Don't set 'readonly' in a new empty buffer for ":enew".
Files:	    src/ex_docmd.c

Patch 6.1.213
Problem:    Using CTRL-W H may cause a big gap to appear below the last
	    window. (Aric Blumer)
Solution:   Don't set the window height when there is a vertical split.
	    (Yasuhiro Matsumoto)
Files:	    src/window.c

Patch 6.1.214
Problem:    When installing Vim and the runtime files were checked out from
	    CVS the CVS directories will also be installed.
Solution:   Avoid installing the CVS dirs and their contents.
Files:	    src/Makefile

Patch 6.1.215
Problem:    Win32: ":pwd" uses backslashes even when 'shellslash' is set.
	    (Xiangjiang Ma)
Solution:   Adjust backslashes before printing the message.
Files:	    src/ex_docmd.c

Patch 6.1.216
Problem:    When dynamically loading the iconv library, the error codes may be
	    confused.
Solution:   Use specific error codes for iconv and redefine them for dynamic
	    loading. (Yasuhiro Matsumoto)
Files:	    src/fileio.c, src/mbyte.c, src/vim.h

Patch 6.1.217
Problem:    When sourcing the same Vim script using a different name (symbolic
	    link or MS-Windows 8.3 name) it is listed twice with
	    ":scriptnames".  (Tony Mechelynck)
Solution:   Turn the script name into a full path before using it.  On Unix
	    compare inode/device numbers.
Files:	    src/ex_cmds2.c

Patch 6.1.218
Problem:    No error message for using the function argument "5+".  (Servatius
	    Brandt)
Solution:   Give an error message if a function or variable is expected but is
	    not found.
Files:	    src/eval.c

Patch 6.1.219
Problem:    When using ":amenu :b 1<CR>" with a Visual selection and
	    'insertmode' is set, Vim does not return to Insert mode. (Mickael
	    Marchand)
Solution:   Add the command CTRL-\ CTRL-G that goes to Insert mode if
	    'insertmode' is set and to Normal mode otherwise.  Append this to
	    menus defined with ":amenu".
Files:	    src/edit.c, src/ex_getln.c, src/normal.c

Patch 6.1.220
Problem:    When using a BufReadPost autocommand that changes the line count,
	    e.g., "$-1join", reloading a file that was changed outside Vim
	    does not work properly. (Alan G Isaac)
Solution:   Make the buffer empty before reading the new version of the file.
	    Save the lines in a dummy buffer, so that they can be put back
	    when reading the file fails.
Files:	    src/buffer.c, src/ex_cmds.c, src/fileio.c, src/globals.h,
	    src/proto/buffer.pro

Patch 6.1.221
Problem:    Changing case may not work properly, depending on the current
	    locale.
Solution:   Add the 'casemap' option to let the user chose how changing case
	    is to be done.
	    Also fix lowering case when an UTF-8 character doesn't keep the
	    same byte length.
Files:	    runtime/doc/options.txt, src/ascii.h, src/auto/configure,
	    src/buffer.c, src/charset.c, src/config.h.in, src/configure.in,
	    src/diff.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/gui_amiga.c
	    src/gui_mac.c, src/gui_photon.c, src/gui_w48.c, src/gui_beos.cc,
	    src/macros.h, src/main.c, src/mbyte.c, src/menu.c, src/message.c,
	    src/misc1.c, src/misc2.c, src/option.c, src/os_msdos.c,
	    src/os_mswin.c, src/proto/charset.pro, src/regexp.c, src/option.h,
	    src/syntax.c

Patch 6.1.222 (depends on 6.1.219)
Problem:    Patch 6.1.219 was incomplete.
Solution:   Add the changes for ":amenu".
Files:	    src/menu.c

Patch 6.1.223 (extra)
Problem:    Win32: When IME is activated 'iminsert' is set, but it might never
	    be reset when IME is disabled. (Muraoka Taro)
	    All systems: 'iminsert' is set to 2 when leaving Insert mode, even
	    when langmap is being used. (Peter Valach)
Solution:   Don't set "b_p_iminsert" in _OnImeNotify(). (Muraoka Taro)
	    Don't store the status of the input method in 'iminsert' when
	    'iminsert' is one.  Also for editing the command line and for
	    arguments to Normal mode commands.
Files:	    src/edit.c, src/ex_getln.c, src/gui_w32.c, src/normal.c

Patch 6.1.224
Problem:    "expand('$VAR')" returns an empty string when the expanded $VAR
	    is not an existing file. (Aric Blumer)
Solution:   Included non-existing files, as documented.
Files:	    src/eval.c

Patch 6.1.225
Problem:    Using <C-O><C-^> in Insert mode has a delay when starting "vim -u
	    NONE" and ":set nocp hidden". (Emmanuel)  do_ecmd() uses
	    fileinfo(), the redraw is done after a delay to give the user time
	    to read the message.
Solution:   Put the message from fileio() in "keep_msg", so that the redraw is
	    done before the delay (still needed to avoid the mode message
	    overwrites the fileinfo() message).
Files:	    src/buffer.c

Patch 6.1.226
Problem:    Using ":debug" with a ":normal" command may cause a hang.  (Colin
	    Keith)
Solution:   Save the typeahead buffer when obtaining a debug command.
Files:	    src/ex_cmds2.c, src/getchar.c, src/proto/getchar.pro

Patch 6.1.227
Problem:    It is possible to use a variable name "asdf:asdf" and ":let j:asdf
	    = 5" does not give an error message. (Mikolaj Machowski)
Solution:   Check for a ":" inside the variable name.
Files:	    src/eval.c

Patch 6.1.228 (extra)
Problem:    Win32: The special output function for Hangul is used too often,
	    causing special handling for other situations to be skipped.
	    bInComposition is always FALSE, causing ImeGetTempComposition()
	    always to return NULL.
Solution:   Remove HanExtTextOut().  Delete the dead code around
	    bInComposition and ImeGetTempComposition().
Files:	    src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.1.229
Problem:    Win32: Conversion to/from often used codepages requires the iconv
	    library, which is not always available.
Solution:   Use standard MS-Windows functions for the conversion when
	    possible. (mostly by Glenn Maynard)
	    Also fixes missing declaration for patch 6.1.220.
Files:	    src/fileio.c

Patch 6.1.230 (extra)
Problem:    Win16: building doesn't work.
Solution:   Exclude the XBUTTON handling. (Vince Negri)
Files:	    src/gui_w48.c

Patch 6.1.231
Problem:    Double clicking with the mouse to select a word does not work for
	    multi-byte characters.
Solution:   Use vim_iswordc() instead of vim_isIDc().  This means 'iskeyword'
	    is used instead of 'isident'.  Also fix that mixing ASCII with
	    multi-byte word characters doesn't work, the mouse class for
	    punctuation and word characters was mixed up.
Files:	    src/normal.c

Patch 6.1.232 (depends on 6.1.226)
Problem:    Using ex_normal_busy while it might not be available. (Axel
	    Kielhorn)
Solution:   Only use ex_normal_busy when FEAT_EX_EXTRA is defined.
Files:	    src/ex_cmds2.c

Patch 6.1.233
Problem:    ":help expr-||" does not work.
Solution:   Don't use the '|' as a command separator
Files:	    src/ex_cmds.c

Patch 6.1.234 (depends on 6.1.217)
Problem:    Get a warning for using a negative value for st_dev.
Solution:   Don't assign a negative value to st_dev.
Files:	    src/ex_cmds2.c

Patch 6.1.235 (depends on 6.1.223)
Problem:    'iminsert' is changed from 1 to 2 when leaving Insert mode. (Peter
	    Valach)
Solution:   Check "State" before resetting it to NORMAL.
Files:	    src/edit.c

Patch 6.1.236
Problem:    Memory leaks when appending lines for ":diffget" or ":diffput" and
	    when reloading a changed buffer.
Solution:   Free a line after calling ml_append().
Files:	    src/diff.c, src/fileio.c

Patch 6.1.237
Problem:    Putting in Visual block mode does not work correctly when "$" was
	    used or when the first line is short.  (Christian Michon)
Solution:   First delete the selected text and then put the new text.  Save
	    and restore registers as necessary.
Files:	    src/globals.h, src/normal.c, src/ops.c, src/proto/ops.pro,
	    src/vim.h

Patch 6.1.238 (extra)
Problem:    Win32: The "icon=" argument for the ":menu" command does not
	    search for the bitmap file.
Solution:   Expand environment variables and search for the bitmap file.
	    (Vince Negri)
	    Make it consistent, use the same mechanism for X11 and GTK.
Files:	    src/gui.c src/gui_gtk.c, src/gui_w32.c, src/gui_x11.c,
	    src/proto/gui.pro

Patch 6.1.239
Problem:    Giving an error for missing :endif or :endwhile when being
	    interrupted.
Solution:   Don't give these messages when interrupted.
Files:	    src/ex_docmd.c, src/os_unix.c

Patch 6.1.240 (extra)
Problem:    Win32 with BCC 5: CPU may be defined in the environment, which
	    causes a wrong argument for the compiler. (Walter Briscoe)
Solution:   Use CPUNR instead of CPU.
Files:	    src/Make_bc5.mak

Patch 6.1.241
Problem:    Something goes wrong when drawing or undrawing the cursor.
Solution:   Remember when the cursor invalid in a better way.
Files:	    src/gui.c

Patch 6.1.242
Problem:    When pasting a large number of lines on the command line it is not
	    possible to interrupt. (Jean Jordaan)
Solution:   Check for an interrupt after each pasted line.
Files:	    src/ops.c

Patch 6.1.243 (extra)
Problem:    Win32: When the OLE version is started and wasn't registered, a
	    message pops up to suggest registering, even when this isn't
	    possible (when the registry is not writable).
Solution:   Check if registering is possible before asking whether it should
	    be done. (Walter Briscoe)
	    Also avoid restarting Vim after registering.
Files:	    src/if_ole.cpp

Patch 6.1.244
Problem:    Patch 6.1.237 was missing the diff for vim.h. (Igor Goldenberg)
Solution:   Include it here.
Files:	    src/vim.h

Patch 6.1.245
Problem:    Comparing with ignored case does not work properly for Unicode
	    with a locale where case folding an ASCII character results in a
	    multi-byte character. (Glenn Maynard)
Solution:   Handle ignore-case compare for Unicode differently.
Files:	    src/mbyte.c

Patch 6.1.246
Problem:    ":blast" goes to the first buffer if the last one is unlisted.
	    (Andrew Stryker)
Solution:   From the last buffer search backwards for the first listed buffer
	    instead of forwards.
Files:	    src/ex_docmd.c

Patch 6.1.247
Problem:    ACL support doesn't always work properly.
Solution:   Add a configure argument to disable ACL "--disable-acl". (Thierry
	    Vignaud)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.248
Problem:    Typing 'q' at the more-prompt for ":let" does not quit the
	    listing. (Hari Krishna Dara)
Solution:   Quit the listing when got_int is set.
Files:	    src/eval.c

Patch 6.1.249
Problem:    Can't expand a path on the command line if it includes a "|" as a
	    trail byte of a multi-byte character.
Solution:   Check for multi-byte characters. (Yasuhiro Matsumoto)
Files:	    src/ex_docmd.c

Patch 6.1.250
Problem:    When changing the value of 'lines' inside the expression set with
	    'diffexpr' Vim might crash. (Dave Fishburn)
Solution:   Don't allow changing the screen size while updating the screen.
Files:	    src/globals.h, src/option.c, src/screen.c

Patch 6.1.251
Problem:    Can't use completion for ":lcd" and ":lchdir" like ":cd".
Solution:   Expand directory names for these commands. (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.252
Problem:    "vi}" does not include a line break when the "}" is at the start
	    of a following line. (Kamil Burzynski)
Solution:   Include the line break.
Files:	    src/search.c

Patch 6.1.253 (extra)
Problem:    Win32 with Cygwin: Changes the path of arguments in a wrong way.
	    (Xiangjiang Ma)
Solution:   Don't use cygwin_conv_to_posix_path() for the Win32 version.
	    Update the Cygwin makefile to support more features.  (Dan Sharp)
Files:	    src/Make_cyg.mak, src/if_ole.cpp, src/main.c

Patch 6.1.254
Problem:    exists("foo{bar}") does not work.  ':unlet v{"a"}r' does not work.
	    ":let v{a}r1 v{a}r2" does not work. ":func F{(1)}" does not work.
	    ":delfunc F{" does not give an error message.  ':delfunc F{"F"}'
	    does not work.
Solution:   Support magic braces for the exists() argument. (Vince Negri)
	    Check for trailing comments explicitly for ":unlet".  Add support
	    for magic braces in further arguments of ":let".  Look for a
	    parenthesis only after the function name.  (Servatius Brandt)
	    Also expand magic braces for "exists('*expr')".  Give an error
	    message for an invalid ":delfunc" argument.  Allow quotes in the
	    ":delfunc" argument.
Files:	    src/eval.c, src/ex_cmds.h, src/ex_docmd.c

Patch 6.1.255 (depends on 6.1.254)
Problem:    Crash when loading menu.vim a second time. (Christian Robinson)
	    ":unlet garbage foo" tries unletting "foo" after an error message.
	    (Servatius Brandt)
	    Very long function arguments cause very long messages when
	    'verbose' is 14 or higher.
Solution:   Avoid reading from uninitialized memory.
	    Break out of a loop after an invalid argument for ":unlet".
	    Truncate long function arguments to 80 characters.
Files:	    src/eval.c

Patch 6.1.256 (depends on 6.1.255)
Problem:    Defining a function after ":if 0" could still cause an error
	    message for an existing function.
	    Leaking memory when there are trailing characters for ":delfunc".
Solution:   Check the "skip" flag.  Free the memory. (Servatius Brandt)
Files:	    src/eval.c

Patch 6.1.257
Problem:    ":cwindow" always sets the previous window to the last but one
	    window.  (Benji Fisher)
Solution:   Set the previous window properly.
Files:	    src/globals.c, src/quickfix.c, src/window.c

Patch 6.1.258
Problem:    Buffers menu doesn't work properly for multibyte buffer names.
Solution:   Use a pattern to get the left and right part of the name.
	    (Yasuhiro Matsumoto)
Files:	    runtime/menu.vim

Patch 6.1.259 (extra)
Problem:    Mac: with 'patchmode' is used filenames are truncated.
Solution:   Increase the BASENAMELEN for Mac OS X. (Ed Ralston)
Files:	    src/os_mac.h

Patch 6.1.260 (depends on 6.1.104)
Problem:    GCC 3.2 still seems to have an optimizer problem. (Zvi Har'El)
Solution:   Use the same configure check as used for GCC 3.1.
Files:	    src/auto/configure, src/configure.in

Patch 6.1.261
Problem:    When deleting a line in a buffer which is not the current buffer,
	    using the Perl interface Delete(), the cursor in the current
	    window may move. (Chris Houser)
Solution:   Don't adjust the cursor position when changing another buffer.
Files:	    src/if_perl.xs

Patch 6.1.262
Problem:    When jumping over folds with "z[", "zj" and "zk" the previous
	    position is not remembered. (Hari Krishna Dara)
Solution:   Set the previous context mark before jumping.
Files:	    src/fold.c

Patch 6.1.263
Problem:    When typing a multi-byte character that triggers an abbreviation
	    it is not inserted properly.
Solution:   Handle adding the typed multi-byte character. (Yasuhiro Matsumoto)
Files:	    src/getchar.c

Patch 6.1.264 (depends on patch 6.1.254)
Problem:    exists() does not work for built-in functions. (Steve Wall)
Solution:   Don't check for the function name to start with a capital.
Files:	    src/eval.c

Patch 6.1.265
Problem:    libcall() can be used in 'foldexpr' to call any system function.
	    rename(), delete() and remote_send() can also be used in
	    'foldexpr'.  These are security problems. (Georgi Guninski)
Solution:   Don't allow using libcall(), rename(), delete(), remote_send() and
	    similar functions in the sandbox.
Files:	    src/eval.c

Patch 6.1.266 (depends on 6.1.265)
Problem:    Win32: compile error in eval.c. (Bill McCarthy)
Solution:   Move a variable declaration.
Files:	    src/eval.c

Patch 6.1.267
Problem:    Using "p" to paste into a Visual selected area may cause a crash.
Solution:   Allocate enough memory for saving the register contents. (Muraoka
	    Taro)
Files:	    src/ops.c

Patch 6.1.268
Problem:    When triggering an abbreviation with a multi-byte character, this
	    character is not correctly inserted after expanding the
	    abbreviation. (Taro Muraoka)
Solution:   Add ABBR_OFF to all characters above 0xff.
Files:	    src/edit.c, src/ex_getln.c, src/getchar.c

Patch 6.1.269
Problem:    After using input() text written with ":redir" gets extra indent.
	    (David Fishburn)
Solution:   Restore msg_col after using input().
Files:	    src/ex_getln.c

Patch 6.1.270 (depends on 6.1.260)
Problem:    GCC 3.2.1 still seems to have an optimizer problem.
Solution:   Use the same configure check as used for GCC 3.1.
Files:	    src/auto/configure, src/configure.in

Patch 6.1.271
Problem:    When compiling without the +syntax feature there are errors.
Solution:   Don't use some code for syntax highlighting. (Roger Cornelius)
	    Make test 45 work without syntax highlighting.
	    Also fix an error in a pattern matching: "\%(" was not supported.
Files:	    src/ex_cmds2.c, src/regexp.c, src/testdir/test45.in

Patch 6.1.272
Problem:    After using ":set define<" a crash may happen. (Christian Robinson)
Solution:   Make a copy of the option value in allocated memory.
Files:	    src/option.c

Patch 6.1.273
Problem:    When the cursor doesn't blink, redrawing an exposed area may hide
	    the cursor.
Solution:   Always draw the cursor, also when it didn't move. (Muraoka Taro)
Files:	    src/gui.c

Patch 6.1.274 (depends on 6.1.210)
Problem:    Resetting the iconv() state after each error is wrong for an
	    incomplete sequence.
Solution:   Don't reset the iconv() state.
Files:	    src/fileio.c

Patch 6.1.275
Problem:    When using "v" in a startup script, get warning message that
	    terminal cannot highlight. (Charles Campbell)
Solution:   Only give the message after the terminal has been initialized.
Files:	    src/normal.c

Patch 6.1.276
Problem:    "gvim --remote file" doesn't prompt for an encryption key.
Solution:   The further characters the client sends to the server are used.
	    Added inputsave() and inputrestore() to allow prompting the
	    user directly and not using typeahead.
	    Also fix possible memory leak for ":normal".
Files:	    src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c,
	    src/main.c, src/proto/getchar.pro, src/proto/ui.pro,
	    src/runtime/doc/eval.txt, src/structs.h, src/ui.c, src/vim.h

Patch 6.1.277 (depends on 6.1.276)
Problem:    Compilation error when building with small features.
Solution:   Define trash_input_buf() when needed. (Kelvin Lee)
Files:	    src/ui.c

Patch 6.1.278
Problem:    When using signs the line number of a closed fold doesn't line up
	    with the other line numbers. (Kamil Burzynski)
Solution:   Insert two spaces for the sign column.
Files:	    src/screen.c

Patch 6.1.279
Problem:    The prototype for smsg() and smsg_attr() do not match the function
	    definition.  This may cause trouble for some compilers. (Nix)
Solution:   Use va_list for systems that have stdarg.h.  Use "int" instead of
	    "void" for the return type.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/proto.h, src/message.c

Patch 6.1.280
Problem:    It's possible to use an argument "firstline" or "lastline" for a
	    function but using "a:firstline" or "a:lastline" in the function
	    won't work.  (Benji Fisher)
Solution:   Give an error message for these arguments.
	    Also avoid that the following function body causes a whole row of
	    errors, skip over it after an error in the first line.
Files:	    src/eval.c

Patch 6.1.281
Problem:    In Insert mode CTRL-X CTRL-G leaves the cursor after the ruler.
Solution:   Set the cursor position before waiting for the argument of CTRL-G.
	    (Yasuhiro Matsumoto)
Files:	    src/edit.c

Patch 6.1.282
Problem:    Elvis uses "se" in a modeline, Vim doesn't recognize this.
Solution:   Also accept "se " where "set " is accepted in a modeline.
	    (Yasuhiro Matsumoto)
Files:	    src/buffer.c

Patch 6.1.283
Problem:    For ":sign" the icon file name cannot contain a space.
Solution:   Handle backslashes in the file name.  (Yasuhiro Matsumoto)
Files:	    src/ex_cmds.c

Patch 6.1.284
Problem:    On Solaris there is a warning for "struct utimbuf".
Solution:   Move including "utime.h" to outside the function. (Derek Wyatt)
Files:	    src/fileio.c

Patch 6.1.285
Problem:    Can't wipe out a buffer with 'bufhide' option.
Solution:   Add "wipe" value to 'bufhide'. (Yegappan Lakshmanan)
Files:	    runtime/doc/options.txt, src/buffer.c, src/option.c,
	    src/quickfix.c

Patch 6.1.286
Problem:    'showbreak' cannot contain multi-byte characters.
Solution:   Allow using all printable characters for 'showbreak'.
Files:	    src/charset.c, src/move.c, src/option.c

Patch 6.1.287 (depends on 6.1.285)
Problem:    Effect of "delete" and "wipe" in 'bufhide' were mixed up.
Solution:   Wipe out when wiping out is asked for.
Files:	    src/buffer.c

Patch 6.1.288
Problem:    ":silent function F" hangs. (Hari Krishna Dara)
Solution:   Don't use msg_col, it is not incremented when using ":silent".
	    Also made the function output look a bit better.  Don't translate
	    "function".
Files:	    src/eval.c

Patch 6.1.289 (depends on 6.1.278)
Problem:    Compiler warning for pointer. (Axel Kielhorn)
Solution:   Add a typecast for "  ".
Files:	    src/screen.c

Patch 6.1.290 (extra)
Problem:    Truncating long text for message box may break multi-byte
	    character.
Solution:   Adjust to start of multi-byte character. (Yasuhiro Matsumoto)
Files:	    src/os_mswin.c

Patch 6.1.291 (extra)
Problem:    Win32: CTRL-@ doesn't work.  Don't even get a message for it.
Solution:   Recognize the keycode for CTRL-@. (Yasuhiro Matsumoto)
Files:	    src/gui_w48.c

Patch 6.1.292 (extra, depends on 6.1.253)
Problem:    Win32: Can't compile with new MingW compiler.
	    Borland 5 makefile doesn't generate pathdef.c.
Solution:   Remove -wwide-multiply argument. (Rene de Zwart)
	    Various fixes for other problems in Win32 makefiles. (Dan Sharp)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak,
	    src/Make_mvc.mak

Patch 6.1.293
Problem:    byte2line() returns a wrong result for some values.
Solution:   Change ">=" to ">" in ml_find_line_or_offset(). (Bradford C Smith)
	    Add one to the line number when at the end of a block.
Files:	    src/memline.c

Patch 6.1.294
Problem:    Can't include a multi-byte character in a string by its hex value.
	    (Benji Fisher)
Solution:   Add "\u....": a character specified with up to four hex numbers
	    and stored according to the value of 'encoding'.
Files:	    src/eval.c

Patch 6.1.295 (extra)
Problem:    Processing the cs.po file generates an error. (Rahul Agrawal)
Solution:   Fix the printf format characters in the translation.
Files:	    src/po/cs.po

Patch 6.1.296
Problem:    Win32: When cancelling the font dialog 'guifont' remains set to
	    "*".
Solution:   Restore the old value of 'guifont' (Yasuhiro Matsumoto)
Files:	    src/option.c

Patch 6.1.297
Problem:    "make test" fails in test6 in an UTF-8 environment. (Benji Fisher)
Solution:   Before executing the BufReadPost autocommands save the current
	    fileencoding, so that the file isn't marked changed.
Files:	    src/fileio.c

Patch 6.1.298
Problem:    When using signs and the first line of a closed fold has a sign
	    it can be redrawn as if the fold was open.  (Kamil Burzynski)
Solution:   Don't redraw a sign inside a closed fold.
Files:	    src/screen.c

Patch 6.1.299
Problem:    ":edit +set\ ro file" doesn't work.
Solution:   Halve the number of backslashes in the "+cmd" argument.
Files:	    src/ex_docmd.c

Patch 6.1.300 (extra)
Problem:    Handling of ETO_IGNORELANGUAGE is confusing.
Solution:   Clean up the handling of ETO_IGNORELANGUAGE. (Glenn Maynard)
Files:	    src/gui_w32.c

Patch 6.1.301 (extra)
Problem:    French translation of file-save dialog doesn't show file name.
Solution:   Insert a star in the printf string. (Francois Terrot)
Files:	    src/po/fr.po

Patch 6.1.302
Problem:    Counting lines of the Visual area is incorrect for closed folds.
	    (Mikolaj Machowski)
Solution:   Correct the start and end for the closed fold.
Files:	    src/normal.c

Patch 6.1.303 (extra)
Problem:    The Top/Bottom/All text does not always fit in the ruler when
	    translated to Japanese.  Problem with a character being wider when
	    in a bold font.
Solution:   Use ETO_PDY to specify the width of each character. (Yasuhiro
	    Matsumoto)
Files:	    src/gui_w32.c

Patch 6.1.304 (extra, depends on 6.1.292)
Problem:    Win32: Postscript is always enabled in the MingW Makefile.
	    Pathdef.c isn't generated properly with Make_bc5.mak. (Yasuhiro
	    Matsumoto)
Solution:   Change an ifdef to an ifeq. (Madoka Machitani)
	    Use the Borland make redirection to generate pathdef.c. (Maurice
	    Barnum)
Files:	    src/Make_bc5.mak, src/Make_ming.mak

Patch 6.1.305
Problem:    When 'verbose' is 14 or higher, a function call may cause reading
	    uninitialized data. (Walter Briscoe)
Solution:   Check for end-of-string in trunc_string().
Files:	    src/message.c

Patch 6.1.306
Problem:    The AIX VisualAge cc compiler doesn't define __STDC__.
Solution:   Use __EXTENDED__ like __STDC__. (Jess Thrysoee)
Files:	    src/os_unix.h

Patch 6.1.307
Problem:    When a double-byte character has an illegal tail byte the display
	    is messed up. (Yasuhiro Matsumoto)
Solution:   Draw "XX" instead of the wrong character.
Files:	    src/screen.c

Patch 6.1.308
Problem:    Can't reset the Visual mode returned by visualmode().
Solution:   Use an optional argument to visualmode(). (Charles Campbell)
Files:	    runtime/doc/eval.txt, src/eval.c, src/normal.c,
	    src/structs.h

Patch 6.1.309
Problem:    The tutor doesn't select German if the locale name is
	    "German_Germany.1252". (Joachim Hofmann)
Solution:   Check for "German" in the locale name.  Also check for
	    ".ge".  And include the German and Greek tutors.
Files:	    runtime/tutor/tutor.de, runtime/tutor/tutor.vim,
	    runtime/tutor/tutor.gr, runtime/tutor/tutor.gr.cp737

Patch 6.1.310 (depends on 6.1.307)
Problem:    All double-byte characters are displayed as "XX".
Solution:   Use ">= 32" instead of "< 32".  (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.1.311 (extra)
Problem:    VMS: path in window title doesn't include necessary separator.
	    file version doesn't always work properly with Unix.
	    Crashes because of memory overwrite in GUI.
	    Didn't always handle files with lowercase and correct path.
Solution:   Fix the problems.  Remove unnecessary file name translations.
	    (Zoltan Arpadffy)
Files:	    src/buffer.c, src/ex_cmds2.c, src/fileio.c, src/memline.c,
	    src/misc1.c, src/misc2.c, src/os_unix.c, src/os_vms.c, src/tag.c

Patch 6.1.312
Problem:    When using ":silent" debugging is also done silently.
Solution:   Disable silence while at the debug prompt.
Files:	    src/ex_cmds2.c

Patch 6.1.313
Problem:    When a ":drop fname" command is used and "fname" is open in
	    another window, it is also opened in the current window.
Solution:   Change to the window with "fname" instead.
	    Don't redefine the argument list when dropping only one file.
Files:	    runtime/doc/windows.txt, src/ex_cmds2.c, src/ex_cmds.c,
	    src/ex_docmd.c, src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro

Patch 6.1.314 (depends on 6.1.126)
Problem:    Missing backslash in "Generic Config file" syntax menu.
Solution:   Insert the backslash. (Zak Beck)
Files:	    runtime/makemenu.vim, runtime/synmenu.vim

Patch 6.1.315 (extra)
Problem:    A very long hostname may lead to an unterminated string.  Failing
	    to obtain a hostname may result in garbage.  (Walter Briscoe)
Solution:   Add a NUL at the end of the hostname buffer.
Files:	    src/os_mac.c, src/os_msdos.c, src/os_unix.c, src/os_win16.c,
	    src/os_win32.c

Patch 6.1.316
Problem:    When exiting with "wq" and there is a hidden buffer, after the
	    "file changed" dialog there is a warning for a changed buffer.
	    (Ajit Thakkar)
Solution:   Do update the buffer timestamps when exiting.
Files:	    src/fileio.c

Patch 6.1.317
Problem:    Closing a window may cause some of the remaining windows to be
	    positioned wrong if there is a mix of horizontal and vertical
	    splits. (Stefan Ingi Valdimarsson)
Solution:   Update the frame sizes before updating the window positions.
Files:	    src/window.c

Patch 6.1.318
Problem:    auto/pathdef.c can include wrong quotes when a compiler flag
	    includes quotes.
Solution:   Put a backslash before the quotes in compiler flags. (Shinra Aida)
Files:	    src/Makefile

Patch 6.1.319 (depends on 6.1.276)
Problem:    Using "--remote +cmd file" does not execute "cmd".
Solution:   Call inputrestore() in the same command line as inputsave(),
	    otherwise it will never get executed.
Files:	    src/main.c

Patch 6.1.320 (depends on 6.1.313)
Problem:    When a ":drop one\ file" command is used the file "one\ file" is
	    opened, the backslash is not removed. (Taro Muraoka)
Solution:   Handle backslashes correctly.  Always set the argument list to
	    keep it simple.
Files:	    runtime/doc/windows.txt, src/ex_cmds.c

Patch 6.1.321
Problem:    When 'mouse' includes 'n' but not 'v', don't allow starting Visual
	    mode with the mouse.
Solution:   Don't use MOUSE_MAY_VIS when there is no 'v' in 'mouse'. (Flemming
	    Madsen)
Files:	    src/normal.c

Patch 6.1.322 (extra, depends on 6.1.315)
Problem:    Win32: The host name is always "PC " plus the real host name.
Solution:   Don't insert "PC " before the host name.
Files:	    src/os_win32.c

Patch 6.1.323
Problem:    ":registers" doesn't stop listing for a "q" at the more prompt.
	    (Hari Krishna Dara)
Solution:   Check for interrupt and got_int.
Files:	    src/ops.c, src/proto/ops.pro

Patch 6.1.324
Problem:    Crash when dragging a vertical separator when <LeftMouse> is
	    remapped to jump to another window.
Solution:   Pass the window pointer to the function doing the dragging instead
	    of always using the current window. (Daniel Elstner)
	    Also fix that starting a drag changes window focus.
Files:	    src/normal.c, src/proto/window.pro, src/ui.c, src/vim.h,
	    src/window.c

Patch 6.1.325
Problem:    Shift-Tab is not automatically recognized in an xterm.
Solution:   Add <Esc>[Z as the termcap code. (Andrew Pimlott)
Files:	    src/term.c

Patch 6.1.326
Problem:    Using a search pattern may read from uninitialized data (Yasuhiro
	    Matsumoto)
Solution:   Initialize pointers to NULL.
Files:	    src/regexp.c

Patch 6.1.327
Problem:    When opening the "mbyte.txt" help file the utf-8 characters are
	    unreadable, because the fileencoding is forced to be latin1.
Solution:   Check for utf-8 encoding first in help files. (Daniel Elstner)
Files:	    runtime/doc/mbyte.txt, src/fileio.c

Patch 6.1.328
Problem:    Prototype for enc_canon_search() is missing.
Solution:   Add the prototype. (Walter Briscoe)
Files:	    src/mbyte.c

Patch 6.1.329
Problem:    When editing a file "a b c" replacing "%" in ":Cmd %" or ":next %"
	    does not work properly.  (Hari Krishna Dara)
Solution:   Always escape spaces when expanding "%".  Don't split argument for
	    <f-args> in a user command when only one argument is used.
Files:	    src/ex_docmd.c

Patch 6.1.330
Problem:    GTK, Motif and Athena: Keypad keys produce the same code as
	    non-keypad keys, making it impossible to map them separately.
Solution:   Use different termcap codes for the keypad keys. (Neil Bird)
Files:	    src/gui_gtk_x11.c, src/gui_x11.c

Patch 6.1.331
Problem:    When translating the help files, "LOCAL ADDITIONS" no longer marks
	    the spot where help files from plugins are to be listed.
Solution:   Add a "local-additions" tag and use that to find the right spot.
Files:	    runtime/doc/help.txt, src/ex_cmds.c

Patch 6.1.332 (extra)
Problem:    Win32: Loading Perl dynamically doesn't work with Perl 5.8.
	    Perl 5.8 also does not work with Cygwin and Ming.
Solution:   Adjust the function calls. (Taro Muraoka)
	    Adjust the cyg and ming makefiles. (Dan Sharp)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
	    src/if_perl.xs

Patch 6.1.333 (extra)
Problem:    Win32: Can't handle Unicode text on the clipboard.
	    Can't pass NUL byte, it becomes a line break.  (Bruce DeVisser)
Solution:   Support Unicode for the clipboard (Ron Aaron and Glenn Maynard)
	    Also support copy/paste of NUL bytes.
Files:	    src/os_mswin.c, src/os_win16.c src/os_win32.c

Patch 6.1.334 (extra, depends on 6.1.303)
Problem:    Problem with drawing Hebrew characters.
Solution:   Only use ETO_PDY for Windows NT and the like. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.1.335 (extra)
Problem:    Failure of obtaining the cursor position and window size is
	    ignored.
Solution:   Remove a semicolon after an "if". (Walter Briscoe)
Files:	    src/gui_w32.c

Patch 6.1.336 (extra)
Problem:    Warning for use of function prototypes of smsg().
Solution:   Define HAVE_STDARG_H. (Walter Briscoe)
Files:	    src/os_win32.h

Patch 6.1.337
Problem:    When using "finish" in debug mode in function B() for ":call
	    A(B())" does not stop after B() is finished.
Solution:   Increase debug_level while evaluating a function.
Files:	    src/ex_docmd.c

Patch 6.1.338
Problem:    When using a menu that checks out the current file from Insert
	    mode, there is no warning for the changed file until exiting
	    Insert mode.  (Srikanth Sankaran)
Solution:   Add a check for need_check_timestamps in the Insert mode loop.
Files:	    src/edit.c

Patch 6.1.339
Problem:    Completion doesn't allow "g:" in ":let g:did_<Tab>". (Benji
	    Fisher)
Solution:   Return "g:var" for global variables when that is what is being
	    expanded. (Flemming Madsen)
Files:	    src/eval.c

Patch 6.1.340 (extra, depends on 6.1.332)
Problem:    Win32: Can't compile the Perl interface with nmake.
Solution:   Don't compare the version number as a string but as a number.
	    (Juergen Kraemer)
Files:	    src/Make_mvc.mak

Patch 6.1.341
Problem:    In Insert mode with 'rightleft' set the cursor is drawn halfway a
	    double-wide character.  For CTRL-R and CTRL-K in Insert mode the "
	    or ? is not displayed.
Solution:   Draw the cursor in the next character cell.  Display the " or ?
	    over the right half of the double-wide character. (Yasuhiro
	    Matsumoto)  Also fix that cancelling a digraph doesn't redraw
	    a double-byte character correctly.
Files:	    src/edit.c, src/gui.c, src/mbyte.c

Patch 6.1.342 (depends on 6.1.341)
Problem:    With 'rightleft' set typing "c" on a double-wide character causes
	    the cursor to be displayed one cell to the left.
Solution:   Draw the cursor in the next character cell.  (Yasuhiro Matsumoto)
Files:	    src/gui.c

Patch 6.1.343 (depends on 6.1.342)
Problem:    Cannot compile with the +multi_byte feature but without +rightleft.
	    Cannot compile without the GUI.
Solution:   Fix the #ifdefs.  (partly by Nam SungHyun)
Files:	    src/gui.c, src/mbyte.c, src/ui.c

Patch 6.1.344
Problem:    When using ":silent filetype" the output is still put in the
	    message history. (Hari Krishna Dara)
Solution:   Don't add messages in the history when ":silent" is used.
Files:	    src/message.c

Patch 6.1.345 (extra)
Problem:    Win32: 'imdisable' doesn't work.
Solution:   Make 'imdisable' work. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.1.346
Problem:    The scroll wheel can only scroll the current window.
Solution:   Make the scroll wheel scroll the window that the mouse points to.
	    (Daniel Elstner)
Files:	    src/edit.c, src/gui.c, src/normal.c, src/term.c

Patch 6.1.347
Problem:    When using cscope to list matching tags, the listed number is
	    sometimes not equal to what cscope uses. (Vihren Milev)
Solution:   For cscope tags use only one table, don't give tags in the current
	    file a higher priority.
Files:	    src/tag.c

Patch 6.1.348
Problem:    Wildmode with wildmenu: ":set wildmode=list,full", ":colorscheme
	    <tab>" results in "zellner" instead of the first entry. (Anand
	    Hariharan)
Solution:   Don't call ExpandOne() from globpath(). (Flemming Madsen)
Files:	    src/ex_getln.c

Patch 6.1.349
Problem:    "vim --serverlist" when no server was ever started gives an error
	    message without "\n".
	    "vim --serverlist" doesn't exit when the X server can't be
	    contacted, it starts Vim unexpectedly. (Ricardo Signes)
Solution:   Don't give an error when no Vim server was ever started.
	    Treat failing of opening the display equal to errors inside the
	    remote*() functions. (Flemming Madsen)
Files:	    src/if_xcmdsrv.c, src/main.c

Patch 6.1.350
Problem:    When entering a buffer with ":bnext" for the first time, using an
	    autocommand to restore the last used cursor position doesn't work.
	    (Paolo Giarusso)
Solution:   Don't use the last known cursor position of the current Vim
	    invocation if an autocommand changed the position.
Files:	    src/buffer.c

Patch 6.1.351 (depends on 6.1.349)
Problem:    Crash when starting Vim the first time in an X server. (John
	    McGowan)
Solution:   Don't call xFree() with a fixed string.
Files:	    src/if_xcmdsrv.c

Patch 6.1.352 (extra, depends on 6.1.345)
Problem:    Win32: Crash when setting "imdisable" in _vimrc.
Solution:   Don't call IME functions when imm32.dll was not loaded (yet).
	    Also add typecasts to avoid Compiler warnings for
	    ImmAssociateContext() argument.
Files:	    src/gui_w32.c

Patch 6.1.353 (extra, depends on 6.1.334)
Problem:    Problem with drawing Arabic characters.
Solution:   Don't use ETO_PDY, do use padding.
Files:	    src/gui_w32.c

Patch 6.1.354 (extra, depends on 6.1.333)
Problem:    MS-Windows 98: Notepad can't paste text copied from Vim when
	    'encoding' is "utf-8".
Solution:   Also make CF_TEXT available on the clipboard. (Ron Aaron)
Files:	    src/os_mswin.c

Patch 6.1.355
Problem:    In a regexp '\n' will never match anything in a string.
Solution:   Make '\n' match a newline character.
Files:	    src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/misc1.c,
	    src/option.c, src/os_mac.c, src/os_unix.c, src/quickfix.c,
	    src/regexp.c, src/search.c, src/syntax.c, src/tag.c, src/vim.h

Patch 6.1.356 (extra, depends on, well, eh, several others)
Problem:    Compiler warnings for using convert_setup() and a few other
	    things.
Solution:   Add typecasts.
Files:	    src/mbyte.c, src/os_mswin.c, src/proto/os_win32.pro, src/os_win32.c

Patch 6.1.357
Problem:    CR in the quickfix window jumps to the error under the cursor, but
	    this doesn't work in Insert mode. (Srikanth Sankaran)
Solution:   Handle CR in Insert mode in the quickfix window.
Files:	    src/edit.c

Patch 6.1.358
Problem:    The tutor doesn't select another locale version properly.
Solution:   Insert the "let" command. (Yasuhiro Matsumoto)
Files:	    runtime/tutor/tutor.vim

Patch 6.1.359 (extra)
Problem:    Mac Carbon: Vim doesn't get focus when started from the command
	    line.  Crash when using horizontal scroll bar.
Solution:   Set Vim as the frontprocess.  Fix scrolling.  (Peter Cucka)
Files:	    src/gui_mac.c

Patch 6.1.360 (depends on 6.1.341)
Problem:    In Insert mode CTRL-K ESC messes up a multi-byte character.
	    (Anders Helmersson)
Solution:   Save all bytes of a character when displaying a character
	    temporarily.
Files:	    src/edit.c, src/proto/screen.pro, src/screen.c

Patch 6.1.361
Problem:    Cannot jump to a file mark with ":'M".
Solution:   Allow jumping to another file for a mark in an Ex address when it
	    is the only thing in the command line.
Files:	    src/ex_docmd.c

Patch 6.1.362
Problem:    tgetent() may return zero for success. tgetflag() may return -1
	    for an error.
Solution:   Check tgetflag() for returning a positive value.  Add an autoconf
	    check for the value that tgetent() returns.
Files:	    src/auto/configure, src/config.h.in, src/configure.in, src/term.c

Patch 6.1.363
Problem:    byte2line() can return one more than the number of lines.
Solution:   Return -1 if the offset is one byte past the end.
Files:	    src/memline.c

Patch 6.1.364
Problem:    That the FileChangedShell autocommand event never nests makes it
	    difficult to reload a file in a normal way.
Solution:   Allow nesting for the FileChangedShell event but do not allow
	    triggering itself again.
	    Also avoid autocommands for the cmdline window in rare cases.
Files:	    src/ex_getln.c, src/fileio.c, src/window.c

Patch 6.1.365 (depends on 6.1.217)
Problem:    Setting a breakpoint in a sourced file with a relative path name
	    doesn't work. (Servatius Brandt)
Solution:   Expand the file name to a full path.
Files:	    src/ex_cmds2.c

Patch 6.1.366
Problem:    Can't use Vim with Netbeans.
Solution:   Add the Netbeans interface.  Includes support for sign icons and
	    "-fg" and "-bg" arguments for GTK.  Add the 'autochdir'
	    option.  (Gordon Prieur, George Hernandez, Dave Weatherford)
	    Make it possible to display both a sign with a text and one with
	    line highlighting in the same line.
	    Add support for Agide, interface version 2.1.
	    Also fix that when 'iskeyword' includes '?' the "*" command
	    doesn't work properly on a word that includes "?" (Bill McCarthy):
	    Don't escape "?" to "\?" when searching forward.
Files:	    runtime/doc/Makefile, runtime/doc/netbeans.txt,
	    runtime/doc/options.txt, runtime/doc/various.txt,
	    src/Makefile, src/auto/configure, src/buffer.c, src/config.h.in,
	    src/config.mk.in, src/configure.in, src/edit.c, src/ex_cmds.c,
	    src/ex_docmd.c, src/feature.h, src/fileio.c, src/globals.h,
	    src/gui.c, src/gui_beval.c, src/gui_gtk_x11.c, src/gui_x11.c,
	    src/main.c, src/memline.c, src/misc1.c, src/misc2.c, src/move.c,
	    src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/normal.c,
	    src/ops.c, src/option.c, src/option.h, src/proto/buffer.pro,
	    src/proto/gui_beval.pro, src/proto/gui_gtk_x11.pro,
	    src/proto/gui_x11.pro, src/proto/misc2.pro,
	    src/proto/netbeans.pro, src/proto/normal.pro, src/proto/ui.pro,
	    src/proto.h, src/screen.c, src/structs.h, src/ui.c, src/undo.c,
	    src/vim.h, src/window.c, src/workshop.c

Patch 6.1.367 (depends on 6.1.365)
Problem:    Setting a breakpoint in a function doesn't work.  For a sourced
	    file it doesn't work when symbolic links are involved.  (Servatius
	    Brandt)
Solution:   Expand the file name in the same way as do_source() does.  Don't
	    prepend the path to a function name.
Files:	    src/ex_cmds2.c

Patch 6.1.368
Problem:    Completion for ":map" does not include <silent> and <script>.
	    ":mkexrc" do not save the <silent> attribute of mappings.
Solution:   Add "<silent>" to the generated map commands when appropriate.
	    (David Elstner)
	    Add <silent> and <script> to command line completion.
Files:	    src/getchar.c

Patch 6.1.369 (extra)
Problem:    VMS: Vim hangs when attempting to edit a read-only file in the
	    terminal.  Problem with VMS filenames for quickfix.
Solution:   Rewrite low level input.  Remove version number from file name in
	    a couple more places.  Fix crash after patch 6.1.362.  Correct
	    return code for system().  (Zoltan Arpadffy, Tomas Stehlik)
Files:	    src/misc1.c, src/os_unix.c, src/os_vms.c, src/proto/os_vms.pro,
	    src/os_vms_conf.h, src/quickfix.c, src/ui.c

Patch 6.1.370
Problem:    #ifdef nesting is unclear.
Solution:   Insert spaces to indicate the nesting.
Files:	    src/os_unix.c

Patch 6.1.371
Problem:    "%V" in 'statusline' doesn't show "0-1" in an empty line.
Solution:   Add one to the column when comparing with virtual column (Andrew
	    Pimlott)
Files:	    src/buffer.c

Patch 6.1.372
Problem:    With 16 bit ints there are compiler warnings. (Walter Briscoe)
Solution:   Change int into long.
Files:	    src/structs.h, src/syntax.c

Patch 6.1.373
Problem:    The default page header for printing is not translated.
Solution:   Add _() around the two places where "Page" is used. (Mike
	    Williams)  Translate the default value of the 'titleold' and
	    'printheader' options.
Files:	    src/ex_cmds2.c, src/option.c

Patch 6.1.374 (extra)
Problem:    MS-Windows: Cannot build GvimExt with MingW or Cygwin.
Solution:   Add makefile and modified resource files. (Rene de Zwart)
	    Also support Cygwin. (Alejandro Lopez_Valencia)
Files:	    GvimExt/Make_cyg.mak, GvimExt/Make_ming.mak, GvimExt/Makefile,
	    GvimExt/gvimext_ming.def, GvimExt/gvimext_ming.rc

Patch 6.1.375
Problem:    MS-Windows: ':!dir "%"' does not work for a file name with spaces.
	    (Xiangjiang Ma)
Solution:   Don't insert backslashes for spaces in a shell command.
Files:	    src/ex_docmd.c

Patch 6.1.376
Problem:    "vim --version" and "vim --help" have a non-zero exit code.
	    That is unusual. (Petesea)
Solution:   Use a zero exit code.
Files:	    src/main.c

Patch 6.1.377
Problem:    Can't add words to 'lispwords' option.
Solution:   Add P_COMMA and P_NODUP flags. (Haakon Riiser)
Files:	    src/option.c

Patch 6.1.378
Problem:    When two buffer-local user commands are ambiguous, a full match
	    with a global user command isn't found. (Hari Krishna Dara)
Solution:   Detect this situation and accept the global command.
Files:	    src/ex_docmd.c

Patch 6.1.379
Problem:    Linux with kernel 2.2 can't use the alternate stack in combination
	    with threading, causes an infinite loop.
Solution:   Don't use the alternate stack in this situation.
Files:	    src/os_unix.c

Patch 6.1.380
Problem:    When 'winminheight' is zero and the quickfix window is zero lines,
	    entering the window doesn't make it higher. (Christian J.
	    Robinson)
Solution:   Make sure the current window is at least one line high.
Files:	    src/window.c

Patch 6.1.381
Problem:    When a BufWriteCmd is used and it leaves the buffer modified, the
	    window may still be closed. (Hari Krishna Dara)
Solution:   Return FAIL from buf_write() when the buffer is still modified
	    after a BufWriteCmd autocommand was used.
Files:	    src/fileio.c

Patch 6.1.382 (extra)
Problem:    Win32 GUI: When using two monitors, the code that checks/fixes the
	    window size and position (e.g. when a font changes) doesn't work
	    properly.  (George Reilly)
Solution:   Handle a double monitor situation. (Helmut Stiegler)
Files:	    src/gui_w32.c

Patch 6.1.383
Problem:    The filling of the status line doesn't work properly for
	    multi-byte characters. (Nam SungHyun)
	    There is no check for going past the end of the buffer.
Solution:   Properly distinguish characters and bytes.  Properly check for
	    running out of buffer space.
Files:	    src/buffer.c, src/ex_cmds2.c, src/proto/buffer.pro, src/screen.c

Patch 6.1.384
Problem:    It is not possible to find if a certain patch has been included.
	    (Lubomir Host)
Solution:   Support using has() to check if a patch was included.
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/version.pro,
	    src/version.c

Patch 6.1.385 (depends on 6.1.383)
Problem:    Can't compile without the multi-byte feature.
Solution:   Move an #ifdef.  (Christian J. Robinson)
Files:	    src/buffer.c

Patch 6.1.386
Problem:    Get duplicate tags when running ":helptags".
Solution:   Do the other halve of moving a section to another help file.
Files:	    runtime/tagsrch.txt

Patch 6.1.387 (depends on 6.1.373)
Problem:    Compiler warning for pointer cast.
Solution:   Add (char_u *).
Files:	    src/option.c

Patch 6.1.388 (depends on 6.1.384)
Problem:    Compiler warning for pointer cast.
Solution:   Add (char *).  Only include has_patch() when used.
Files:	    src/eval.c, src/version.c

Patch 6.1.389 (depends on 6.1.366)
Problem:    Balloon evaluation doesn't work for GTK.
	    has("balloon_eval") doesn't work.
Solution:   Add balloon evaluation for GTK.  Also improve displaying of signs.
	    (Daniel Elstner)
	    Also make ":gui" start the netbeans connection and avoid using
	    netbeans functions when the connection is not open.
Files:	    src/Makefile, src/feature.h, src/gui.c, src/gui.h,
	    src/gui_beval.c, src/gui_beval.h, src/gui_gtk.c,
	    src/gui_gtk_x11.c, src/eval.c, src/memline.c, src/menu.c,
	    src/netbeans.c, src/proto/gui_beval.pro, src/proto/gui_gtk.pro,
	    src/structs.h, src/syntax.c, src/ui.c, src/workshop.c

Patch 6.1.390 (depends on 6.1.389)
Problem:    It's not possible to tell Vim to save and exit through the
	    Netbeans interface.  Would still try to send balloon eval text
	    after the connection is closed.
	    Can't use Unicode characters for sign text.
Solution:   Add functions "saveAndExit" and "getModified".  Check for a
	    working connection before sending a balloonText event.
	    various other cleanups.
	    Support any character for sign text. (Daniel Elstner)
Files:	    runtime/doc/netbeans.txt, runtime/doc/sign.txt, src/ex_cmds.c,
	    src/netbeans.c, src/screen.c

Patch 6.1.391
Problem:    ml_get() error when using virtualedit. (Charles Campbell)
Solution:   Get a line from a specific window, not the current one.
Files:	    src/charset.c

Patch 6.1.392 (depends on 6.1.383)
Problem:    Highlighting in the 'statusline' is in the wrong position when an
	    item is truncated. (Zak Beck)
Solution:   Correct the start of 'statusline' items properly for a truncated
	    item.
Files:	    src/buffer.c

Patch 6.1.393
Problem:    When compiled with Python and threads, detaching the terminal may
	    cause Vim to loop forever.
Solution:   Add -pthread to $CFLAGS when using Python and gcc. (Daniel
	    Elstner)
Files:	    src/auto/configure,, src/configure.in

Patch 6.1.394 (depends on 6.1.390)
Problem:    The netbeans interface doesn't recognize multibyte glyph names.
Solution:   Check the number of cells rather than bytes to decide
	    whether a glyph name is not a filename. (Daniel Elstner)
Files:	    src/netbeans.c

Patch 6.1.395 (extra, depends on 6.1.369)
Problem:    VMS: OLD_VMS is never defined.  Missing function prototype.
Solution:   Define OLD_VMS in Make_vms.mms.  Add vms_sys_status() to
	    os_vms.pro. (Zoltan Arpadffy)
Files:	    src/Make_vms.mms, src/proto/os_vms.pro

Patch 6.1.396 (depends on 6.1.330)
Problem:    Compiler warnings for using enum.
Solution:   Add typecast to char_u.
Files:	    src/gui_gtk_x11.c, src/gui_x11.c

Patch 6.1.397 (extra)
Problem:    The install program may use a wrong path for the diff command if
	    there is a space in the install directory path.
Solution:   Use double quotes around the path if necessary. (Alejandro
	    Lopez-Valencia)  Also use double quotes around the file name
	    arguments.
Files:	    src/dosinst.c

Patch 6.1.398
Problem:    Saving the typeahead for debug mode causes trouble for a test
	    script. (Servatius Brandt)
Solution:   Add the ":debuggreedy" command to avoid saving the typeahead.
Files:	    runtime/doc/repeat.txt, src/ex_cmds.h, src/ex_cmds2.c,
	    src/ex_docmd.c, src/proto/ex_cmds2.pro

Patch 6.1.399
Problem:    Warning for unused variable.
Solution:   Remove the variable two_or_more.
Files:	    src/ex_cmds.c

Patch 6.1.400 (depends on 6.1.381)
Problem:    When a BufWriteCmd wipes out the buffer it may still be accessed.
Solution:   Don't try accessing a buffer that has been wiped out.
Files:	    src/fileio.c

Patch 6.1.401 (extra)
Problem:    Building the Win16 version with Borland 5.01 doesn't work.
	    "make test" doesn't work with Make_dos.mak. (Walter Briscoe)
Solution:   Various fixes to the w16 makefile. (Walter Briscoe)
	    Don't use deltree.  Use "mkdir \tmp" instead of "mkdir /tmp".
Files:	    src/Make_w16.mak, src/testdir/Make_dos.mak

Patch 6.1.402
Problem:    When evaluating a function name with curly braces, an error
	    is not handled consistently.
Solution:   Accept the result of a curly braces expression when an
	    error was encountered.  Skip evaluating an expression in curly
	    braces when skipping.  (Servatius Brandt)
Files:	    src/eval.c

Patch 6.1.403 (extra)
Problem:    MS-Windows 16 bit: compiler warnings.
Solution:   Add typecasts. (Walter Briscoe)
Files:	    src/ex_cmds2.c, src/gui_w48.c, src/os_mswin.c, src/os_win16.c,
	    src/syntax.c

Patch 6.1.404 (extra)
Problem:    Various small problems.
Solution:   Fix comments.  Various small additions, changes in indent, removal
	    of unused items and fixes.
Files:	    Makefile, README.txt, runtime/menu.vim, runtime/vimrc_example.vim,
	    src/INSTALL, src/INSTALLole.txt, src/Make_bc5.mak,
	    src/Make_cyg.mak, src/Make_ming.mak, src/Makefile,
	    src/config.h.in, src/edit.c, src/eval.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/getchar.c,
	    src/gui.c, src/gui_gtk.c, src/gui_photon.c, src/if_cscope.c,
	    src/if_python.c, src/keymap.h, src/mark.c, src/mbyte.c,
	    src/message.c, src/misc1.c, src/misc2.c, src/normal.c,
	    src/option.c, src/os_os2_cfg.h, src/os_win32.c,
	    src/proto/getchar.pro, src/proto/message.pro,
	    src/proto/regexp.pro, src/screen.c, src/structs.h, src/syntax.c,
	    src/term.c, src/testdir/test15.in, src/testdir/test15.ok,
	    src/vim.rc, src/xxd/Make_cyg.mak, src/xxd/Makefile

Patch 6.1.405
Problem:    A few files are missing from the toplevel Makefile.
Solution:   Add the missing files.
Files:	    Makefile

Patch 6.1.406 (depends on 6.1.392)
Problem:    When a statusline item doesn't fit arbitrary text appears.
	    (Christian J. Robinson)
Solution:   When there is just enough room but not for the "<" truncate the
	    statusline item like there is no room.
Files:	    src/buffer.c

Patch 6.1.407
Problem:    ":set scrollbind | help" scrollbinds the help window. (Andrew
	    Pimlott)
Solution:   Reset 'scrollbind' when opening a help window.
Files:	    src/ex_cmds.c

Patch 6.1.408
Problem:    When 'rightleft' is set unprintable character 0x0c is displayed as
	    ">c0<".
Solution:   Reverse the text of the hex character.
Files:	    src/screen.c

Patch 6.1.409
Problem:    Generating tags for the help doesn't work for some locales.
Solution:   Set LANG=C LC_ALL=C in the environment for "sort". (Daniel
	    Elstner)
Files:	    runtime/doc/Makefile

Patch 6.1.410 (depends on 6.1.390)
Problem:    Linking error when compiling with Netbeans but without sign icons.
	    (Malte Neumann)
Solution:   Don't define buf_signcount() when sign icons are unavailable.
Files:	    src/buffer.c

Patch 6.1.411
Problem:    When 'virtualedit' is set, highlighting a Visual block beyond the
	    end of a line may be wrong.
Solution:   Correct the virtual column when the end of the line is before the
	    displayed part of the line. (Muraoka Taro)
Files:	    src/screen.c

Patch 6.1.412
Problem:    When swapping terminal screens and using ":gui" to start the GUI,
	    the shell prompt may be after a hit-enter prompt.
Solution:   Output a newline in the terminal when starting the GUI and there
	    was a hit-enter prompt..
Files:	    src/gui.c

Patch 6.1.413
Problem:    When 'clipboard' contains "unnamed", "p" in Visual mode doesn't
	    work correctly.
Solution:   Save the register before overwriting it and put the resulting text
	    on the clipboard afterwards.  (Muraoka Taro)
Files:	    src/normal.c, src/ops.c

Patch 6.1.414 (extra, depends on 6.1.369)
Problem:    VMS: Vim busy waits when waiting for input.
Solution:   Delay for a short while before getting another character.  (Zoltan
	    Arpadffy)
Files:	    src/os_vms.c

Patch 6.1.415
Problem:    When there is a vertical split and a quickfix window, reducing the
	    size of the Vim window may result in a wrong window layout and a
	    crash.
Solution:   When reducing the window size and there is not enough space for
	    'winfixheight' set the frame height to the larger height, so that
	    there is a retry while ignoring 'winfixheight'. (Yasuhiro
	    Matsumoto)
Files:	    src/window.c

Patch 6.1.416 (depends on 6.1.366)
Problem:    When using the Netbeans interface, a line with a sign cannot be
	    changed.
Solution:   Respect the GUARDEDOFFSET for sign IDs when checking for a guarded
	    area.
Files:	    src/netbeans.c

Patch 6.1.417
Problem:    Unprintable multi-byte characters are not handled correctly.
	    Multi-byte characters above 0xffff are displayed as another
	    character.
Solution:   Handle unprintable multi-byte characters.  Display multi-byte
	    characters above 0xffff with a marker.  Recognize UTF-16 words and
	    BOM words as unprintable.  (Daniel Elstner)
Files:	    src/charset.c, src/mbyte.c, src/screen.c

Patch 6.1.418
Problem:    The result of strftime() is in the current locals.  Need to
	    convert it to 'encoding'.
Solution:   Obtain the current locale and convert the argument for strftime()
	    to it and the result back to 'encoding'.  (Daniel Elstner)
Files:	    src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/mbyte.c,
	    src/proto/mbyte.pro, src/option.c, src/os_mswin.c

Patch 6.1.419
Problem:    Vim doesn't compile on AIX 5.1.
Solution:   Don't define _NO_PROTO on this system. (Uribarri)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.420 (extra)
Problem:    convert_input() has an unnecessary STRLEN().
	    Conversion from UCS-2 to a codepage uses word count instead of
	    byte count.
Solution:   Remove the STRLEN() call. (Daniel Elstner)
	    Always use byte count for string_convert().
Files:	    src/gui_w32.c, src/mbyte.c

Patch 6.1.421 (extra, depends on 6.1.354)
Problem:    MS-Windows 9x: When putting text on the clipboard it can be in
	    the wrong encoding.
Solution:   Convert text to the active codepage for CF_TEXT. (Glenn Maynard)
Files:	    src/os_mswin.c

Patch 6.1.422
Problem:    Error in .vimrc doesn't cause hit-enter prompt when swapping
	    screens. (Neil Bird)
Solution:   Set msg_didany also when sending a message to the terminal
	    directly.
Files:	    src/message.c

Patch 6.1.423
Problem:    Can't find arbitrary text in help files.
Solution:   Added the ":helpgrep" command.
Files:	    runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/proto/quickfix.pro, src/quickfix.c

Patch 6.1.424 (extra)
Problem:    Win32: gvim compiled with VC++ 7.0 run on Windows 95 does not show
	    menu items.
Solution:   Define $WINVER to avoid an extra item is added to MENUITEMINFO.
	    (Muraoka Taro)
Files:	    src/Make_mvc.mak

Patch 6.1.425
Problem:    ":helptags $VIMRUNTIME/doc" does not add the "help-tags" tag.
Solution:   Do add the "help-tags" tag for that specific directory.
Files:	    src/ex_cmds.c

Patch 6.1.426
Problem:    "--remote-wait +cmd file" waits forever. (Valery Kondakoff)
Solution:   Don't wait for the "+cmd" argument to have been edited.
Files:	    src/main.c

Patch 6.1.427
Problem:    Several error messages for regexp patterns are not translated.
Solution:   Use _() properly. (Muraoka Taro)
Files:	    src/regexp.c

Patch 6.1.428
Problem:    FreeBSD: wait() may hang when compiled with Python support and
	    doing a system() call in a startup script.
Solution:   Use waitpid() instead of wait() and poll every 10 msec, just like
	    what is done in the GUI.
Files:	    src/os_unix.c

Patch 6.1.429 (depends on 6.1.390)
Problem:    Crash when using showmarks.vim plugin. (Charles Campbell)
Solution:   Check for sign_get_text() returning a NULL pointer.
Files:	    src/screen.c

Patch 6.1.430
Problem:    In Lisp code backslashed parens should be ignored for "%". (Dorai)
Solution:   Skip over backslashed parens.
Files:	    src/search.c

Patch 6.1.431
Problem:    Debug commands end up in redirected text.
Solution:   Disable redirection while handling debug commands.
Files:	    src/ex_cmds2.c

Patch 6.1.432 (depends on 6.1.375)
Problem:    MS-Windows: ":make %:p" inserts extra backslashes. (David Rennalls)
Solution:   Don't add backslashes, handle it like ":!cmd".
Files:	    src/ex_docmd.c

Patch 6.1.433
Problem:    ":popup" only works for Win32.
Solution:   Add ":popup" support for GTK.  (Daniel Elstner)
Files:	    runtime/doc/gui.txt, src/ex_docmd.c, src/gui_gtk.c, src/menu.c,
	    src/proto/gui_gtk.pro

Patch 6.1.434 (extra)
Problem:    Win32: When there are more than 32767 lines, the scrollbar has a
	    roundoff error.
Solution:   Make a click on an arrow move one line.  Also move the code to
	    gui_w48.c, there is hardly any difference between the 16 bit and
	    32 bit versions. (Walter Briscoe)
Files:	    src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.1.435
Problem:    ":winsize x" resizes the Vim window to the minimal size. (Andrew
	    Pimlott)
Solution:   Give an error message for wrong arguments of ":winsize" and
	    ":winpos".
Files:	    src/ex_docmd.c

Patch 6.1.436
Problem:    When a long UTF-8 file contains an illegal byte it's hard to find
	    out where it is. (Ron Aaron)
Solution:   Add the line number to the error message.
Files:	    src/fileio.c

Patch 6.1.437 (extra, depends on 6.1.421)
Problem:    Using multi-byte functions when they are not available.
Solution:   Put the clipboard conversion inside an #ifdef. (Vince Negri)
	    Also fix a pointer type mistake. (Walter Briscoe)
Files:	    src/os_mswin.c

Patch 6.1.438
Problem:    When Perl has thread support Vim cannot use the Perl interface.
Solution:   Add a configure check and disable Perl when it will not work.
	    (Aron Griffis)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.439
Problem:    Netbeans: A "create" function doesn't actually create a buffer,
	    following functions may fail.
Solution:   Create a Vim buffer without a name when "create" is called.
	    (Gordon Prieur)
Files:	    runtime/doc/netbeans.txt, src/netbeans.c

Patch 6.1.440
Problem:    The "@*" command doesn't obtain the actual contents of the
	    clipboard. (Hari Krishna Dara)
Solution:   Obtain the clipboard text before executing the command.
Files:	    src/ops.c

Patch 6.1.441
Problem:    "zj" and "zk" cannot be used as a motion command after an
	    operator. (Ralf Hetzel)
Solution:   Accept these commands as motion commands.
Files:	    src/normal.c

Patch 6.1.442
Problem:    Unicode 3.2 defines more space and punctuation characters.
Solution:   Add the new characters to the Unicode tables. (Raphael Finkel)
Files:	    src/mbyte.c

Patch 6.1.443 (extra)
Problem:    Win32: The gvimext.dll build with Borland 5.5 requires another
	    DLL.
Solution:   Build a statically linked version by default. (Dan Sharp)
Files:	    GvimExt/Make_bc5.mak

Patch 6.1.444 (extra)
Problem:    Win32: Enabling a build with gettext support is not consistent.
Solution:   Use "GETTEXT" for Borland and msvc makefiles. (Dan Sharp)
Files:	    src/Make_bc5.mak, src/Make_mvc.mak

Patch 6.1.445 (extra)
Problem:    DJGPP: get warning for argument of putenv()
Solution:   Define HAVE_PUTENV to use DJGPP's putenv(). (Walter Briscoe)
Files:	    src/os_msdos.h

Patch 6.1.446 (extra)
Problem:    Win32: The MingW makefile uses a different style of arguments than
	    other makefiles.
	    Dynamic IME is not supported for Cygwin.
Solution:   Use "no" and "yes" style arguments.  Remove the use of the
	    dyn-ming.h include file. (Dan Sharp)
	    Do not include the ime.h file and adjust the makefile. (Alejandro
	    Lopez-Valencia)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/gui_w32.c,
	    src/if_perl.xs, src/if_python.c, src/if_ruby.c, src/os_win32.c

Patch 6.1.447
Problem:    "make install" uses "make" directly for generating help tags.
Solution:   Use $(MAKE) instead of "make". (Tim Mooney)
Files:	    src/Makefile

Patch 6.1.448
Problem:    'titlestring' has a default maximum width of 50 chars per item.
Solution:   Remove the default maximum (also for 'statusline').
Files:	    src/buffer.c

Patch 6.1.449
Problem:    When "1" and "a" are in 'formatoptions', auto-formatting always
	    moves a newly added character to the next line. (Servatius Brandt)
Solution:   Don't move a single character to the next line when it was just
	    typed.
Files:	    src/edit.c

Patch 6.1.450
Problem:    Termcap entry "kB" for back-tab is not recognized.
Solution:   Use back-tab as the shift-tab code.
Files:	    src/keymap.h, src/misc2.c, src/term.c

Patch 6.1.451
Problem:    GUI: When text in the find dialog contains a slash, a backslash is
	    inserted the next time it is opened. (Mezz)
Solution:   Remove escaped backslashes and question marks. (Daniel Elstner)
Files:	    src/gui.c

Patch 6.1.452 (extra, after 6.1.446)
Problem:    Win32: IME support doesn't work for MSVC.
Solution:   Use _MSC_VER instead of __MSVC. (Alejandro Lopez-Valencia)
Files:	    src/gui_w32.c

Patch 6.1.453 (after 6.1.429)
Problem:    When compiled without sign icons but with sign support, adding a
	    sign may cause a crash.
Solution:   Check for the text sign to exist before using it. (Kamil
	    Burzynski)
Files:	    src/screen.c

Patch 6.1.454 (extra)
Problem:    Win32: pasting Russian text in Vim with 'enc' set to cp1251
	    results in utf-8 bytes.  (Perelyubskiy)
	    Conversion from DBCS to UCS2 does not work when 'encoding' is not
	    the active codepage.
Solution:   Introduce enc_codepage and use it for conversion to 'encoding'
	    (Glenn Maynard)
	    Use MultiByteToWideChar() and WideCharToMultiByte() instead of
	    iconv().  Should do most needed conversions without iconv.dll.
Files:	    src/globals.h, src/gui_w32.c, src/mbyte.c, src/os_mswin.c,
	    src/proto/mbyte.pro, src/proto/os_mswin.pro, src/structs.h

Patch 6.1.455
Problem:    Some Unicode characters can be one or two character cells wide.
Solution:   Add the 'ambiwidth' option to tell Vim how to display these
	    characters. (Jungshik Shin)
	    Also reset the script ID when setting an option to its default
	    value, so that ":verbose set" won't give wrong info.
Files:	    runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h

Patch 6.1.456 (extra, after 6.1.454)
Problem:    Win32: IME doesn't work.
Solution:   ImmGetCompositionStringW() returns the size in bytes, not words.
	    (Yasuhiro Matsumoto)  Also fix typecast problem.
Files:	    src/gui_w32.c, src/os_mswin.c

Patch 6.1.457
Problem:    An empty register in viminfo causes conversion to fail.
Solution:   Don't convert an empty string. (Yasuhiro Matsumoto)
Files:	    src/ex_cmds.c, src/mbyte.c

Patch 6.1.458
Problem:    Compiler warning for pointer.
Solution:   Add a typecast.
Files:	    src/ex_cmds.c

Patch 6.1.459 (extra)
Problem:    Win32: libcall() may return an invalid pointer and cause Vim to
	    crash.
Solution:   Add a strict check for the returned pointer. (Bruce Mellows)
Files:	    src/os_mswin.c

Patch 6.1.460
Problem:    GTK: after scrolling the text one line with a key, clicking the
	    arrow of the scrollbar does not always work. (Nam SungHyun)
Solution:   Always update the scrollbar thumb when the value changed, even
	    when it would not move, like for RISCOS.  (Daniel Elstner)
Files:	    src/gui.c, src/gui.h

Patch 6.1.461
Problem:    When a keymap is active, typing a character in Select mode does
	    not use it. (Benji Fisher)
Solution:   Apply Insert mode mapping to the character typed in Select mode.
Files:	    src/normal.c

Patch 6.1.462
Problem:    When autocommands wipe out a buffer, a crash may happen. (Hari
	    Krishna Dara)
Solution:   Don't decrement the window count of a buffer before calling the
	    autocommands for it.  When re-using the current buffer, watch out
	    for autocommands changing the current buffer.
Files:	    src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro

Patch 6.1.463
Problem:    When writing a compressed file, the file name that gzip stores in
	    the file is the weird temporary file name. (David Rennalls)
Solution:   Use the real file name when possible.
Files:	    runtime/plugin/gzip.vim

Patch 6.1.464
Problem:    Crash when using C++ syntax highlighting. (Gerhard Hochholzer)
Solution:   Check for a negative index.
Files:	    src/syntax.c

Patch 6.1.465 (after 6.1.454)
Problem:    Compile error when using cygwin.
Solution:   Change #ifdef WIN32 to #ifdef WIN3264. (Alejandro Lopez-Valencia)
	    Undefine WIN32 after including windows.h
Files:	    src/mbyte.c

Patch 6.1.466
Problem:    The "-f" argument is a bit obscure.
Solution:   Add the "--nofork" argument.  Improve the help text a bit.
Files:	    runtime/doc/starting.txt, src/main.c

Patch 6.1.467
Problem:    Setting the window title doesn't work for Chinese.
Solution:   Use an X11 function to convert text to a text property. (Kentaro
	    Nakazawa)
Files:	    src/os_unix.c

Patch 6.1.468
Problem:    ":mksession" also stores folds for buffers which will not be
	    restored.
Solution:   Only store folds for a buffer with 'buftype' empty and help files.
Files:	    src/ex_docmd.c

Patch 6.1.469
Problem:    'listchars' cannot contain multi-byte characters.
Solution:   Handle multi-byte UTF-8 list characters. (Matthew Samsonoff)
Files:	    src/message.c, src/option.c, src/screen.c

Patch 6.1.470 (lang)
Problem:    Polish messages don't show up correctly on MS-Windows.
Solution:   Convert messages to cp1250. (Mikolaj Machowski)
	    Also add English message translations, because it got in the way
	    of the patch.
Files:	    Makefile, src/po/Makefile, src/po/en_gb.po, src/po/pl.po

Patch 6.1.471
Problem:    ":jumps" output continues after pressing "q" at the more-prompt.
	    (Hari Krishna Dara)
Solution:   Check for "got_int" being set.
Files:	    src/mark.c

Patch 6.1.472
Problem:    When there is an authentication error when connecting to the X
	    server Vim exits.
Solution:   Use XSetIOErrorHandler() to catch the error and longjmp() to avoid
	    the exit.  Also do this in the main loop, so that when the X
	    server exits a Vim running in a console isn't killed.
Files:	    src/globals.h, src/main.c, src/os_unix.c

Patch 6.1.473
Problem:    Referring to $curwin or $curbuf in Perl 5.6 causes a crash.
Solution:   Add "pTHX_" to cur_val(). (Yasuhiro Matsumoto)
Files:	    src/if_perl.xs

Patch 6.1.474
Problem:    When opening the command-line window in Ex mode it's impossible to
	    go back. (Pavol Juhas)
Solution:   Reset "exmode_active" and restore it when the command-line window
	    is closed.
Files:	    src/ex_getln.c


Patch 6.2f.001
Problem:    The configure check for Ruby didn't work properly for Ruby 1.8.0.
Solution:   Change the way the Ruby check is done. (Aron Griffis)
Files:	    src/auto/configure, src/configure.in

Patch 6.2f.002
Problem:    The output of ":ls" doesn't show whether a buffer had read errors.
Solution:   Add the "x" flag in the ":ls" output.
Files:	    runtime/doc/windows.txt, src/buffer.c

Patch 6.2f.003
Problem:    Test49 doesn't properly test the behavior of ":catch" without an
	    argument.
Solution:   Update test49. (Servatius Brandt)
Files:	    src/testdir/test49.ok, src/testdir/test49.vim

Patch 6.2f.004
Problem:    "vim --version" always uses CR/LF in the output.
Solution:   Omit the CR.
Files:	    src/message.c, src/os_unix.c

Patch 6.2f.005
Problem:    Two error messages without a colon after the number.
Solution:   Add the colon. (Taro Muraoka)
Files:	    src/if_cscope.c

Patch 6.2f.006
Problem:    When saving a file takes a while and Vim regains focus this can
	    result in a "file changed outside of Vim" warning and ml_get()
	    errors. (Mike Williams)
Solution:   Add the "b_saving" flag to avoid checking the timestamp while the
	    buffer is being saved. (Michael Schaap)
Files:	    src/fileio.c, src/structs.h

Patch 6.2f.007
Problem:    Irix compiler complains about multiple defined symbols.
	    vsnprintf() is not available.  (Charles Campbell)
Solution:   Insert EXTERN for variables in globals.h.  Change the configure
	    check for vsnprintf() from compiling to linking.
Files:	    src/auto/configure, src/configure.in, src/globals.h

Patch 6.2f.008
Problem:    The Aap recipe doesn't work with Aap 0.149.
Solution:   Change targetarg to TARGETARG.  Update the mysign file.
Files:	    src/main.aap, src/mysign

Patch 6.2f.009 (extra)
Problem:    Small problem when building with Borland 5.01.
Solution:   Use mkdir() instead of _mkdir(). (Walter Briscoe)
Files:	    src/dosinst.h

Patch 6.2f.010
Problem:    Warning for missing prototypes.
Solution:   Add missing prototypes. (Walter Briscoe)
Files:	    src/if_cscope.c

Patch 6.2f.011
Problem:    The configure script doesn't work with autoconf 2.5x.
Solution:   Add square brackets around a header check. (Aron Griffis)
	    Note: touch src/auto/configure after applying this patch.
Files:	    src/configure.in

Patch 6.2f.012
Problem:    ":echoerr" doesn't work correctly inside try/endtry.
Solution:   Don't reset did_emsg inside a try/endtry. (Servatius Brandt)
Files:	    src/eval.c

Patch 6.2f.013 (extra)
Problem:    Macintosh: Compiler warning for a trigraph.
Solution:   Insert a backslash before each question mark. (Peter Cucka)
Files:	    src/os_mac.h

Patch 6.2f.014 (extra)
Problem:    Macintosh: ex_eval is not included in the project file.
Solution:   Add ex_eval. (Dany St-Amant)
Files:	    src/os_mac.pbproj/project.pbxproj

Patch 6.2f.015 (extra)
Problem:    Win32: When changing header files not all source files involved
	    are recompiled.
Solution:   Improve the dependency rules. (Dan Sharp)
Files:	    src/Make_cyg.mak, src/Make_ming.mak

Patch 6.2f.016
Problem:    "vim --version > ff" on non-Unix systems results in a file with a
	    missing line break at the end. (Bill McCArthy)
Solution:   Add a line break.
Files:	    src/main.c

Patch 6.2f.017
Problem:    Unix: starting Vim in the background and then bringing it to the
	    foreground may cause the terminal settings to be wrong.
Solution:   Check for tcsetattr() to return an error, retry when it does.
	    (Paul Tapper)
Files:	    src/os_unix.c

Patch 6.2f.018
Problem:    Mac OS X 10.2: OK is defined to zero in cursus.h while Vim uses
	    one.  Redefining it causes a warning message.
Solution:   Undefine OK before defining it to one. (Taro Muraoka)
Files:	    src/vim.h

Patch 6.2f.019
Problem:    Mac OS X 10.2: COLOR_BLACK and COLOR_WHITE are defined in
	    curses.h.
Solution:   Rename them to PRCOLOR_BLACK and PRCOLOR_WHITE.
Files:	    src/ex_cmds2.c

Patch 6.2f.020
Problem:    Win32: test50 produces beeps and fails with some versions of diff.
Solution:   Remove empty lines and convert the output to dos fileformat.
Files:	    src/testdir/test50.in

Patch 6.2f.021
Problem:    Running configure with "--enable-netbeans" disables Netbeans.
	    (Gordon Prieur)
Solution:   Fix the tests in configure.in where the default is to enable a
	    feature.  Fix that "--enable-acl" reported "yes" confusingly.
Files:	    src/auto/configure, src/configure.in, src/mysign

Patch 6.2f.022
Problem:    A bogus value for 'foldmarker' is not rejected, possibly causing a
	    hang. (Derek Wyatt)
Solution:   Check for a non-empty string before and after the comma.
Files:	    src/option.c

Patch 6.2f.023
Problem:    When the help files are not in $VIMRUNTIME but 'helpfile' is
	    correct Vim still can't find the help files.
Solution:   Also look for a tags file in the directory of 'helpfile'.
Files:	    src/tag.c

Patch 6.2f.024
Problem:    When 'delcombine' is set and a character has more than two
	    composing characters "x" deletes them all.
Solution:   Always delete only the last composing character.
Files:	    src/misc1.c

Patch 6.2f.025
Problem:    When reading a file from stdin that has DOS line endings but a
	    missing end-of-line for the last line 'fileformat' becomes "unix".
	    (Bill McCarthy)
Solution:   Don't add the missing line break when re-reading the text from the
	    buffer.
Files:	    src/fileio.c

Patch 6.2f.026
Problem:    When typing new text at the command line, old composing characters
	    may be displayed.
Solution:   Don't read composing characters from after the end of the
	    text to be displayed.
Files:	    src/ex_getln.c, src/mbyte.c, src/message.c, src/proto/mbyte.pro,
	    src/screen.c

Patch 6.2f.027
Problem:    Compiler warnings for unsigned char pointers. (Tony Leneis)
Solution:   Add typecasts to char pointer.
Files:	    src/quickfix.c

Patch 6.2f.028
Problem:    GTK: When 'imactivatekey' is empty and XIM is inactive it can't be
	    made active again.  Cursor isn't updated immediately when changing
	    XIM activation.  Japanese XIM may hang when using 'imactivatekey'.
	    Can't activate XIM after typing fFtT command or ":sh".
Solution:   Properly set the flag that indicates the IM is active.  Update the
	    cursor right away.  Do not send a key-release event.  Handle
	    Normal mode and running an external command differently.
	    (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.2f.029
Problem:    Mixing use of int and enum.
Solution:   Adjust argument type of cs_usage_msg().  Fix wrong typedef.
Files:	    src/if_cscope.c, src/if_cscope.h

Patch 6.2f.030 (after 6.2f.028)
Problem:    Cursor moves up when using XIM.
Solution:   Reset im_preedit_cursor.  (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.2f.031
Problem:    Crash when listing a function argument in the debugger. (Ron Aaron)
Solution:   Init the name field of an argument to NULL.
Files:	    src/eval.c

Patch 6.2f.032
Problem:    When a write fails for a ":silent!" while inside try/endtry the
	    BufWritePost autocommands are not triggered.
Solution:   Check the emsg_silent flag in should_abort(). (Servatius Brandt)
Files:	    src/ex_eval.c, src/testdir/test49.ok, src/testdir/test49.vim

Patch 6.2f.033
Problem:    Cscope: re-entrance problem for ":cscope" command.  Checking for
	    duplicate database didn't work well for Win95.  Didn't check for
	    duplicate databases after an empty entry.
Solution:   Don't set postponed_split too early.  Remember first empty
	    database entry. (Sergey Khorev)
Files:	    src/if_cscope.c

Patch 6.2f.034
Problem:    The netbeans interface cannot be used on systems without
	    vsnprintf(). (Tony Leneis)
Solution:   Use EMSG(), EMSGN() and EMSG2() instead.
Files:	    src/auto/configure, src/configure.in, src/netbeans.c

Patch 6.2f.035
Problem:    The configure check for the netbeans interface doesn't work if the
	    socket and nsl libraries are required.
Solution:   Check for the socket and nsl libraries before the netbeans check.
Files:	    src/auto/configure, src/configure.in

Patch 6.2f.036
Problem:    Moving leftwards over text with an illegal UTF-8 byte moves one
	    byte instead of one character.
Solution:   Ignore an illegal byte after the cursor position.
Files:	    src/mbyte.c

Patch 6.2f.037
Problem:    When receiving a Netbeans command at the hit-enter or more prompt
	    the screen is redrawn but Vim is still waiting at the prompt.
Solution:   Quit the prompt like a CTRL-C was typed.
Files:	    src/netbeans.c

Patch 6.2f.038
Problem:    The dependency to run autoconf causes a patch for configure.in
	    to run autoconf, even though the configure script was updated as
	    well.
Solution:   Only run autoconf with "make autoconf".
Files:	    src/Makefile

Patch 6.2f.039
Problem:    CTRL-W K makes the new top window very high.
Solution:   When 'equalalways' is set equalize the window heights.
Files:	    src/window.c


==============================================================================
VERSION 6.3						*version-6.3*

This section is about improvements made between version 6.2 and 6.3.

This is mainly a bug-fix release.  There are also a few new features.
The major number of new items is in the runtime files and translations.


Changed							*changed-6.3*
-------

The intro message also displays a note about sponsoring Vim, mixed randomly
with the message about helping children in Uganda.

Included the translated menus, keymaps and tutors with the normal runtime
files.  The separate "lang" archive now only contains translated messages.

Made the translated menu file names a bit more consistent.  Use "latin1" for
"iso_8859-1" and "iso_8859-15".

Removed the "file_select.vim" script from the distribution.  It's not more
useful than other scripts that can be downloaded from www.vim.org.

The "runtime/doc/tags" file is now always in unix fileformat.  On MS-Windows
it used to be dos fileformat, but ":helptags" generates a unix format file.


Added							*added-6.3*
-----

New commands:
	:cNfile		go to last error in previous file
	:cpfile		idem
	:changes	print the change list
	:keepmarks	following command keeps marks where they are
	:keepjumps	following command keeps jumplist and marks
	:lockmarks	following command keeps marks where they are
	:redrawstatus	force a redraw of the status line(s)

New options:
	'antialias'	Mac OS X: use smooth, antialiased fonts
	'helplang'	preferred help languages

Syntax files:
	Arch inventory (Nikolai Weibull)
	Calendar (Nikolai Weibull)
	Ch (Wayne Cheng)
	Controllable Regex Mutilator (Nikolai Weibull)
	D (Jason Mills)
	Desktop (Mikolaj Machowski)
	Dircolors (Nikolai Weibull)
	Elinks configuration (Nikolai Weibull)
	FASM (Ron Aaron)
	GrADS scripts (Stefan Fronzek)
	Icewm menu (James Mahler)
	LDIF (Zak Johnson)
	Locale input, fdcc. (Dwayne Bailey)
	Pinfo config (Nikolai Weibull)
	Pyrex (Marco Barisione)
	Relax NG Compact (Nikolai Weibull)
	Slice (Morel Bodin)
	VAX Macro Assembly (Tom Uijldert)
	grads (Stefan Fronzek)
	libao (Nikolai Weibull)
	mplayer (Nikolai Weibull)
	rst (Nikolai Weibull)
	tcsh (Gautam Iyer)
	yaml (Nikolai Weibull)

Compiler plugins:
	ATT dot (Marcos Macedo)
	Apple Project Builder (Alexander von Below)
	Intel (David Harrison)
	bdf (Nikolai Weibull)
	icc (Peter Puck)
	javac (Doug Kearns)
	neato (Marcos Macedo)
	onsgmls (Robert B. Rowsome)
	perl (Christian J. Robinson)
	rst (Nikolai Weibull)
	se (SmartEiffel) (Doug Kearns)
	tcl (Doug Kearns)
	xmlwf (Robert B. Rowsome)

Filetype plugins:
	Aap (Bram Moolenaar)
	Ch (Wayne Cheng)
	Css (Nikolai Weibull)
	Pyrex (Marco Barisione)
	Rst (Nikolai Weibull)

Indent scripts:
	Aap (Bram Moolenaar)
	Ch (Wayne Cheng)
	DocBook (Nikolai Weibull)
	MetaPost (Eugene Minkovskii)
	Objective-C (Kazunobu Kuriyama)
	Pyrex (Marco Barisione)
	Rst (Nikolai Weibull)
	Tcsh (Gautam Iyer)
	XFree86 configuration file (Nikolai Weibull)
	Zsh (Nikolai Weibull)

Keymaps:
	Greek for cp1253 (Panagiotis Louridas)
	Hungarian (Magyar) (Laszlo Zavaleta)
	Persian-Iranian (Behnam Esfahbod)

Message translations:
	Catalan (Ernest Adrogue)
	Russian (Vassily Ragosin)
	Swedish (Johan Svedberg)

Menu translations:
	Catalan (Ernest Adrogue)
	Russian (Tim Alexeevsky)
	Swedish (Johan Svedberg)

Tutor translations:
	Catalan (Ernest Adrogue)
	Russian in cp1251 (Alexey Froloff)
	Slovak in cp1250 and iso8859-2 (Lubos Celko)
	Swedish (Johan Svedberg)
	Korean (Kee-Won Seo)
	UTF-8 version of the Japanese tutor (Yasuhiro Matsumoto) Use this as
		the original, create the other Japanese tutor by conversion.

Included "russian.txt" help file. (Vassily Ragosin)

Include Encapsulated PostScript and PDF versions of the Vim logo in the extra
archive.

The help highlighting finds the highlight groups and shows them in the color
that is actually being used. (idea from Yakov Lerner)

The big Win32 version is now compiled with Ruby interface, version 1.8.  For
Python version 2.3 is used.  For Perl version 5.8 is used.

The "ftdetect" directory is mentioned in the documentation.  The DOS install
program creates it.


Fixed							*fixed-6.3*
-----

Test 42 failed on MS-Windows.  Set and reset 'fileformat' and 'binary' options
here and there.  (Walter Briscoe)

The explorer plugin didn't work for double-byte 'encoding's.

Use "copy /y" in Make_bc5.mak to avoid a prompt for overwriting.

Patch 6.2.001
Problem:    The ":stopinsert" command doesn't have a help tag.
Solution:   Add the tag. (Antoine J. Mechelynck)
Files:	    runtime/doc/insert.txt, runtime/doc/tags

Patch 6.2.002
Problem:    When compiled with the +multi_byte feature but without +eval,
	    displaying UTF-8 characters may cause a crash. (Karsten Hopp)
Solution:   Also set the default for 'ambiwidth' when compiled without the
	    +eval feature.
Files:	    src/option.c

Patch 6.2.003
Problem:    GTK 2: double-wide characters below 256 are not displayed
	    correctly.
Solution:   Check the cell width for characters above 127. (Yasuhiro
	    Matsumoto)
Files:	    src/gui_gtk_x11.c

Patch 6.2.004
Problem:    With a line-Visual selection at the end of the file a "p" command
	    puts the text one line upwards.
Solution:   Detect that the last line was deleted and put forward. (Taro
	    Muraoka)
Files:	    src/normal.c

Patch 6.2.005
Problem:    GTK: the "Find" and "Find and Replace" tools don't work. (Aschwin
	    Marsman)
Solution:   Show the dialog after creating it.  (David Necas)
Files:	    src/gui_gtk.c

Patch 6.2.006
Problem:    The Netbeans code contains an obsolete function that uses "vim61"
	    and sets the fall-back value for $VIMRUNTIME.
Solution:   Delete the obsolete function.
Files:	    src/main.c, src/netbeans.c, src/proto/netbeans.pro

Patch 6.2.007
Problem:    Listing tags for Cscope doesn't always work.
Solution:   Avoid using smgs_attr(). (Sergey Khorev)
Files:	    src/if_cscope.c

Patch 6.2.008
Problem:    XIM with GTK 2: After backspacing preedit characters are wrong.
Solution:   Reset the cursor position. (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.2.009
Problem:    Win32: The self-installing executable "Full" selection only
	    selects some of the items to install. (Salman Mohsin)
Solution:   Change commas to spaces in between section numbers.
Files:	    nsis/gvim.nsi

Patch 6.2.010
Problem:    When 'virtualedit' is effective and a line starts with a
	    multi-byte character, moving the cursor right doesn't work.
Solution:   Obtain the right character to compute the column offset. (Taro
	    Muraoka)
Files:	    src/charset.c

Patch 6.2.011
Problem:    Alpha OSF1: stat() is a macro and doesn't allow an #ifdef halfway.
	    (Moshe Kaminsky)
Solution:   Move the #ifdef outside of stat().
Files:	    src/os_unix.c

Patch 6.2.012
Problem:    May hang when polling for a character.
Solution:   Break the wait loop when not waiting for a character.
Files:	    src/os_unix.c

Patch 6.2.013 (extra)
Problem:    Win32: The registry key for uninstalling GvimExt still uses "6.1".
Solution:   Change the version number to "6.2". (Ajit Thakkar)
Files:	    src/GvimExt/GvimExt.reg

Patch 6.2.014 (after 6.2.012)
Problem:    XSMP doesn't work when using poll().
Solution:   Use xsmp_idx instead of gpm_idx. (Neil Bird)
Files:	    src/os_unix.c

Patch 6.2.015
Problem:    The +xsmp feature is never enabled.
Solution:   Move the #define for USE_XSMP to below where WANT_X11 is defined.
	    (Alexey Froloff)
Files:	    src/feature.h

Patch 6.2.016
Problem:    Using ":scscope find" with 'cscopequickfix' does not always split
	    the window. (Gary Johnson)
	    Win32: ":cscope add" could make the script that contains it
	    read-only until the corresponding ":cscope kill".
	    Errors during ":cscope add" may not be handled properly.
Solution:   When using the quickfix window may need to split the window.
	    Avoid file handle inheritance for the script.
	    Check for a failed connection and/or process.  (Sergey Khorev)
Files:	    src/ex_cmds2.c, src/if_cscope.c

Patch 6.2.017
Problem:    Test11 sometimes prompts the user, because a file would have been
	    changed outside of Vim. (Antonio Colombo)
Solution:   Add a FileChangedShell autocommand to avoid the prompt.
Files:	    src/testdir/test11.in

Patch 6.2.018
Problem:    When using the XSMP protocol and reading from stdin Vim may wait
	    for a key to be pressed.
Solution:   Avoid that RealWaitForChar() is used recursively.
Files:	    src/os_unix.c

Patch 6.2.019 (lang)
Problem:    Loading the Portuguese menu causes an error message.
Solution:   Join two lines.  (Jose Pedro Oliveira, José de Paula)
Files:	    runtime/lang/menu_pt_br.vim

Patch 6.2.020
Problem:    The "Syntax/Set syntax only" menu item causes an error message.
	    (Oyvind Holm)
Solution:   Set the script-local variable in a function. (Benji Fisher)
Files:	    runtime/synmenu.vim

Patch 6.2.021
Problem:    The user manual section on exceptions contains small mistakes.
Solution:   Give a good example of an error that could be missed and other
	    improvements. (Servatius Brandt)
Files:	    runtime/doc/usr_41.txt

Patch 6.2.022 (extra)
Problem:    Win32: After deleting a menu item it still appears in a tear-off
	    window.
Solution:   Set the mode to zero for the deleted item. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.2.023 (extra)
Problem:    Win32: Make_ivc.mak does not clean everything.
Solution:   Delete more files in the clean rule. (Walter Briscoe)
Files:	    src/Make_ivc.mak

Patch 6.2.024 (extra)
Problem:    Win32: Compiler warnings for typecasts.
Solution:   Use DWORD instead of WORD. (Walter Briscoe)
Files:	    src/gui_w32.c

Patch 6.2.025
Problem:    Missing prototype for sigaltstack().
Solution:   Add the prototype when it is not found in a header file.
Files:	    src/os_unix.c

Patch 6.2.026
Problem:    Warning for utimes() argument.
Solution:   Add a typecast.
Files:	    src/fileio.c

Patch 6.2.027
Problem:    Warning for uninitialized variable.
Solution:   Set mb_l to one when not using multi-byte characters.
Files:	    src/message.c

Patch 6.2.028
Problem:    Cscope connection may kill Vim process and others.
Solution:   Check for pid being larger than one. (Khorev Sergey)
Files:	    src/if_cscope.c

Patch 6.2.029
Problem:    When using the remote server functionality Vim may leak memory.
	    (Srikanth Sankaran)
Solution:   Free the result of XListProperties().
Files:	    src/if_xcmdsrv.c

Patch 6.2.030
Problem:    Mac: Warning for not being able to use precompiled header files.
Solution:   Don't redefine select.  Use -no-cpp-precomp for compiling, so that
	    function prototypes are still found.
Files:	    src/os_unix.c, src/osdef.sh

Patch 6.2.031
Problem:    The langmenu entry in the options window doesn't work. (Rodolfo
	    Lima)
	    With GTK 1 the ":options" command causes an error message.
	    (Michael Naumann)
Solution:   Change "lmenu" to "langmenu".  Only display the 'tbis' option for
	    GTK 2.
Files:	    runtime/optwin.vim

Patch 6.2.032
Problem:    The lpc filetype is never recognized. (Shizhu Pan)
Solution:   Check for g:lpc_syntax_for_c instead of the local variable
	    lpc_syntax_for_c. (Benji Fisher)
Files:	    runtime/filetype.vim

Patch 6.2.033 (extra)
Problem:    Mac: Various compiler warnings.
Solution:   Don't include Classic-only headers in Unix version.
	    Remove references to several unused variables. (Ben Fowler)
	    Fix double definition of DEFAULT_TERM.
	    Use int instead of unsigned short for pixel values, so that the
	    negative error values are recognized.
Files:	    src/gui_mac.c, src/term.c

Patch 6.2.034
Problem:    Mac: Compiler warning for redefining DEFAULT_TERM.
Solution:   Fix double definition of DEFAULT_TERM.
Files:	    src/term.c

Patch 6.2.035
Problem:    Mac: Compiler warnings in Python interface.
Solution:   Make a difference between pure Mac and Unix-Mac. (Peter Cucka)
Files:	    src/if_python.c

Patch 6.2.036 (extra)
Problem:    Mac Unix version: If foo is a directory, then ":e f<Tab>" should
	    expand to ":e foo/" instead of ":e foo" .  (Vadim Zeitlin)
Solution:   Define DONT_ADD_PATHSEP_TO_DIR only for pure Mac. (Benji Fisher)
Files:	    src/os_mac.h

Patch 6.2.037
Problem:    Win32: converting an encoding name to a codepage could result in
	    an arbitrary number.
Solution:   make encname2codepage() return zero if the encoding name doesn't
	    contain a codepage number.
Files:	    src/mbyte.c

Patch 6.2.038 (extra)
Problem:    Warning messages when using the MingW compiler. (Bill McCarthy)
	    Can't compile console version without +mouse feature.
Solution:   Initialize variables, add parenthesis.
	    Add an #ifdef around g_nMouseClick. (Ajit Thakkar)
Files:	    src/eval.c, src/os_win32.c, src/gui_w32.c, src/dosinst.c

Patch 6.2.039 (extra)
Problem:    More warning messages when using the MingW compiler.
Solution:   Initialize variables. (Bill McCarthy)
Files:	    src/os_mswin.c

Patch 6.2.040
Problem:    FreeBSD: Crash while starting up when compiled with +xsmp feature.
Solution:   Pass a non-NULL argument to IceAddConnectionWatch().
Files:	    src/os_unix.c

Patch 6.2.041 (extra, after 6.2.033)
Problem:    Mac: Compiler warnings for conversion types, missing prototype,
	    missing return type.
Solution:   Change sscanf "%hd" to "%d", the argument is an int now.  Add
	    gui_mch_init_check() prototype.  Add "int" to termlib functions.
Files:	    src/gui_mac.c, src/proto/gui_mac.pro, src/termlib.c.

Patch 6.2.042 (extra)
Problem:    Cygwin: gcc 3.2 has an optimizer problem, sometimes causing a
	    crash.
Solution:   Add -fno-strength-reduce to the compiler arguments. (Dan Sharp)
Files:	    src/Make_cyg.mak

Patch 6.2.043
Problem:    Compiling with both netbeans and workshop doesn't work.
Solution:   Move the shellRectangle() function to gui_x11.c. (Gordon Prieur)
Files:	    src/gui_x11.c, src/integration.c, src/netbeans.c,
	    src/proto/netbeans.pro

Patch 6.2.044
Problem:    ":au filetypedetect" gives an error for a non-existing event name,
	    but it's actually a non-existing group name. (Antoine Mechelynck)
Solution:   Make the error message clearer.
Files:	    src/fileio.c

Patch 6.2.045
Problem:    Obtaining the '( mark changes the '' mark. (Gary Holloway)
Solution:   Don't set the '' mark when searching for the start/end of the
	    current sentence/paragraph.
Files:	    src/mark.c

Patch 6.2.046
Problem:    When evaluating an argument of a function throws an exception the
	    function is still called. (Hari Krishna Dara)
Solution:   Don't call the function when an exception was thrown.
Files:	    src/eval.c

Patch 6.2.047 (extra)
Problem:    Compiler warnings when using MingW. (Bill McCarthy)
Solution:   Give the s_dwLastClickTime variable a type.  Initialize dwEndTime.
Files:	    src/os_win32.c

Patch 6.2.048
Problem:    The Python interface doesn't compile with Python 2.3 when
	    dynamically loaded.
Solution:   Use dll_PyObject_Malloc and dll_PyObject_Free. (Paul Moore)
Files:	    src/if_python.c

Patch 6.2.049
Problem:    Using a "-range=" argument with ":command" doesn't work and
	    doesn't generate an error message.
Solution:   Generate an error message.
Files:	    src/ex_docmd.c

Patch 6.2.050
Problem:    Test 32 didn't work on MS-Windows.
Solution:   Write the temp file in Unix fileformat. (Walter Briscoe)
Files:	    src/testdir/test32.in

Patch 6.2.051
Problem:    When using "\=submatch(0)" in a ":s" command, line breaks become
	    NUL characters.
Solution:   Change NL to CR characters, so that they become line breaks.
Files:	    src/regexp.c

Patch 6.2.052
Problem:    A few messages are not translated.
Solution:   Add _() to the messages. (Muraoka Taro)
Files:	    src/ex_cmds.c

Patch 6.2.053
Problem:    Prototype for bzero() doesn't match most systems.
Solution:   Use "void *" instead of "char *" and "size_t" instead of "int".
Files:	    src/osdef1.h.in

Patch 6.2.054
Problem:    A double-byte character with a second byte that is a backslash
	    causes problems inside a string.
Solution:   Skip over multi-byte characters in a string properly. (Yasuhiro
	    Matsumoto)
Files:	    src/eval.c

Patch 6.2.055
Problem:    Using col('.') from CTRL-O in Insert mode does not return the
	    correct value for multi-byte characters.
Solution:   Correct the cursor position when it is necessary, move to the
	    first byte of a multi-byte character. (Yasuhiro Matsumoto)
Files:	    src/edit.c

Patch 6.2.056 (extra)
Problem:    Building with Sniff++ doesn't work.
Solution:   Use the multi-threaded libc when needed. (Holger Ditting)
Files:	    src/Make_mvc.mak

Patch 6.2.057 (extra)
Problem:    Mac: With -DMACOS_X putenv() is defined twice, it is in a system
	    library.  Get a warning for redefining OK.  Unused variables in
	    os_mac.c
Solution:   Define HAVE_PUTENV.  Undefine OK after including curses.h.
	    Remove declarations for unused variables.
Files:	    src/os_mac.c, src/os_mac.h, src/vim.h

Patch 6.2.058
Problem:    When 'autochdir' is set ":bnext" to a buffer without a name causes
	    a crash.
Solution:   Don't call vim_chdirfile() when the file name is NULL. (Taro
	    Muraoka)
Files:	    src/buffer.c

Patch 6.2.059
Problem:    When 'scrolloff' is a large number and listing completion results
	    on the command line, then executing a command that jumps close to
	    where the cursor was before, part of the screen is not updated.
	    (Yakov Lerner)
Solution:   Don't skip redrawing part of the window when it was scrolled.
Files:	    src/screen.c

Patch 6.2.060 (extra)
Problem:    Win32: When 'encoding' is set to "iso-8859-7" copy/paste to/from
	    the clipboard gives a lalloc(0) error. (Kriton Kyrimis)
Solution:   When the string length is zero allocate one byte.  Also fix that
	    when the length of the Unicode text is zero (conversion from
	    'encoding' to UCS-2 was not possible) the normal text is used.
Files:	    src/os_mswin.c

Patch 6.2.061
Problem:    GUI: Using the left mouse button with the shift key should work
	    like "*" but it scrolls instead. (Martin Beller)
Solution:   Don't recognize an rxvt scroll wheel event when using the GUI.
Files:	    src/term.c

Patch 6.2.062
Problem:    When one buffer uses a syntax with "containedin" and another
	    buffer does not, redrawing depends on what the current buffer is.
	    (Brett Pershing Stahlman)
Solution:   Use "syn_buf" instead of "curbuf" to get the b_syn_containedin
	    flag.
Files:	    src/syntax.c

Patch 6.2.063
Problem:    When using custom completion end up with no matches.
Solution:   Make cmd_numfiles and cmd_files local to completion to avoid that
	    they are overwritten when ExpandOne() is called recursively by
	    f_glob().
Files:	    src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/ex_getln.pro,
	    src/misc1.c, src/structs.h, src/tag.c

Patch 6.2.064
Problem:    resolve() only handles one symbolic link, need to repeat it to
	    resolve all of them.  Then need to simplify the file name.
Solution:   Make resolve() resolve all symbolic links and simplify the result.
	    Add simplify() to just simplify a file name.  Fix that test49
	    doesn't work if /tmp is a symbolic link.  (Servatius Brandt)
Files:	    runtime/doc/eval.txt, src/eval.c, src/tag.c,
	    src/testdir/test49.vim

Patch 6.2.065
Problem:    ":windo 123" only updates other windows when entering them.
	    (Walter Briscoe)
Solution:   Update the topline before going to the next window.
Files:	    src/ex_cmds2.c

Patch 6.2.066 (extra)
Problem:    Ruby interface doesn't work with Ruby 1.8.0.
Solution:   Change "defout" to "stdout". (Aron Griffis)
	    Change dynamic loading. (Taro Muraoka)
Files:	    src/if_ruby.c, src/Make_mvc.mak

Patch 6.2.067
Problem:    When searching for a string that starts with a composing character
	    the command line isn't drawn properly.
Solution:   Don't count the space to draw the composing character on and
	    adjust the cursor column after drawing the string.
Files:	    src/message.c

Patch 6.2.068
Problem:    Events for the netbeans interface that include a file name with
	    special characters don't work properly.
Solution:   Use nb_quote() on the file name. (Sergey Khorev)
Files:	    src/netbeans.c

Patch 6.2.069 (after 6.2.064)
Problem:    Unused variables "limit" and "new_st" and unused label "fail" in
	    some situation. (Bill McCarthy)
Solution:   Put the declarations inside an #ifdef. (Servatius Brandt)
Files:	    src/eval.c, src/tag.c

Patch 6.2.070 (after 6.2.069)
Problem:    Still unused variable "new_st". (Bill McCarthy)
Solution:   Move the declaration to the right block this time.
Files:	    src/tag.c

Patch 6.2.071
Problem:    'statusline' can only contain 50 % items. (Antony Scriven)
Solution:   Allow 80 items and mention it in the docs.
Files:	    runtime/doc/option.txt, src/vim.h

Patch 6.2.072
Problem:    When using expression folding, foldexpr() mostly returns -1 for
	    the previous line, which makes it difficult to write a fold
	    expression.
Solution:   Make the level of the previous line available while still looking
	    for the end of a fold.
Files:	    src/fold.c

Patch 6.2.073
Problem:    When adding detection of a specific filetype for a plugin you need
	    to edit "filetype.vim".
Solution:   Source files from the "ftdetect" directory, so that a filetype
	    detection plugin only needs to be dropped in a directory.
Files:	    runtime/doc/filetype.txt, runtime/doc/usr_05.txt,
	    runtime/doc/usr_41.txt, runtime/filetype.vim

Patch 6.2.074
Problem:    Warnings when compiling the Python interface. (Ajit Thakkar)
Solution:   Use ANSI function declarations.
Files:	    src/if_python.c

Patch 6.2.075
Problem:    When the temp file for writing viminfo can't be used "NULL"
	    appears in the error message. (Ben Lavender)
Solution:   Print the original file name when there is no temp file name.
Files:	    src/ex_cmds.c

Patch 6.2.076
Problem:    The tags listed for cscope are in the wrong order. (Johannes
	    Stezenbach)
Solution:   Remove the reordering of tags for the current file. (Sergey
	    Khorev)
Files:	    src/if_cscope.c

Patch 6.2.077
Problem:    When a user function specifies custom completion, the function
	    gets a zero argument instead of an empty string when there is no
	    word before the cursor. (Preben Guldberg)
Solution:   Don't convert an empty string to a zero.
Files:	    src/eval.c

Patch 6.2.078
Problem:    "make test" doesn't work if Vim wasn't compiled yet. (Ed Avis)
Solution:   Build Vim before running the tests.
Files:	    src/Makefile

Patch 6.2.079
Problem:    ":w ++enc=utf-8 !cmd" doesn't work.
Solution:   Check for the "++" argument before the "!".
Files:	    src/ex_docmd.c

Patch 6.2.080
Problem:    When 't_ti' is not empty but doesn't swap screens, using "ZZ" in
	    an unmodified file doesn't clear the last line.
Solution:   Call msg_clr_eos() when needed. (Michael Schroeder)
Files:	    src/os_unix.c

Patch 6.2.081
Problem:    Problem when using a long multibyte string for the statusline.
Solution:   Use the right pointer to get the cell size. (Taro Muraoka)
Files:	    src/buffer.c

Patch 6.2.082
Problem:    Can't compile with Perl 5.8.1.
Solution:   Rename "e_number" to "e_number_exp". (Sascha Blank)
Files:	    src/digraph.c, src/globals.h

Patch 6.2.083
Problem:    When a compiler uses ^^^^ to mark a word the information is not
	    visible in the quickfix window. (Srikanth Sankaran)
Solution:   Don't remove the indent for a line that is not recognized as an
	    error message.
Files:	    src/quickfix.c

Patch 6.2.084
Problem:    "g_" in Visual mode always goes to the character after the line.
	    (Jean-Rene David)
Solution:   Ignore the NUL at the end of the line.
Files:	    src/normal.c

Patch 6.2.085
Problem:    ":verbose set ts" doesn't say an option was set with a "-c" or
	    "--cmd" argument.
Solution:   Remember the option was set from a Vim argument.
Files:	    src/main.c, src/ex_cmds2.c, src/vim.h

Patch 6.2.086
Problem:    "{" and "}" stop inside a closed fold.
Solution:   Only stop once inside a closed fold. (Stephen Riehm)
Files:	    src/search.c

Patch 6.2.087
Problem:    CTRL-^ doesn't use the 'confirm' option.  Same problem with
	    ":bnext". (Yakov Lerner)
Solution:   Put up a dialog for a changed file when 'confirm' is set in more
	    situations.
Files:	    src/buffer.c, src/ex_cmds.c

Patch 6.2.088
Problem:    When 'sidescrolloff' is set 'showmatch' doesn't work correctly if
	    the match is less than 'sidescrolloff' off from the side of the
	    window.  (Roland Stahn)
Solution:   Set 'sidescrolloff' to zero while displaying the match.
Files:	    src/search.c

Patch 6.2.089
Problem:    ":set isk+=" adds a comma. (Mark Waggoner)
Solution:   Don't add a comma when the added value is empty.
Files:	    src/option.c

Patch 6.2.090 (extra)
Problem:    Win32: MingW compiler complains about #pragmas. (Bill McCarthy)
Solution:   Put an #ifdef around the #pragmas.
Files:	    src/os_win32.c

Patch 6.2.091
Problem:    When an autocommand is triggered when a file is dropped on Vim and
	    it produces output, messages from a following command may be
	    scrolled unexpectedly. (David Rennalls)
Solution:   Save and restore msg_scroll in handle_drop().
Files:	    src/ex_docmd.c

Patch 6.2.092
Problem:    Invalid items appear in the help file tags. (Antonio Colombo)
Solution:   Only accept tags with white space before the first "*".
Files:	    runtime/doc/doctags.c, src/ex_cmds.c

Patch 6.2.093
Problem:    ":nnoremenu" also defines menu for Visual mode. (Klaus Bosau)
Solution:   Check the second command character for an "o", not the third.
Files:	    src/menu.c

Patch 6.2.094
Problem:    Can't compile with GTK and tiny features.
Solution:   Include handle_drop() and vim_chdirfile() when FEAT_DND is defined.
	    Do not try to split the window.
Files:	    src/ex_docmd.c, src/misc2.c

Patch 6.2.095
Problem:    The message "Cannot go to buffer x" is confusing for ":buf 6".
	    (Frans Englich)
Solution:   Make it "Buffer x does not exist".
Files:	    src/buffer.c

Patch 6.2.096
Problem:    Win32: ":let @* = ''" put a newline on the clipboard. (Klaus
	    Bosau)
Solution:   Put zero bytes on the clipboard for an empty string.
Files:	    src/ops.c

Patch 6.2.097
Problem:    Setting or resetting 'insertmode' in a BufEnter autocommand
	    doesn't always have immediate effect. (Nagger)
Solution:   When 'insertmode' is set, set need_start_insertmode, when it's
	    reset set stop_insert_mode.
Files:	    src/option.c

Patch 6.2.098 (after 6.2.097)
Problem:    Can't build Vim with tiny features. (Christian J. Robinson)
Solution:   Declare stop_insert_mode always.
Files:	    src/edit.c, src/globals.h

Patch 6.2.099 (extra)
Problem:    Test 49 fails. (Mikolaj Machowski)
Solution:   The Polish translation must not change "E116" to "R116".
Files:	    src/po/pl.po

Patch 6.2.100
Problem:    "make proto" fails when compiled with the Perl interface.
Solution:   Remove "-fno.*" from PERL_CFLAGS, cproto sees it as its option.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.101
Problem:    When using syntax folding, opening a file slows down a lot when
	    it's size increases by only 20%. (Gary Johnson)
Solution:   The array with cached syntax states is leaking entries.  After
	    cleaning up the list obtain the current entry again.
Files:	    src/syntax.c

Patch 6.2.102
Problem:    The macros equal() and CR conflict with a Carbon header file.
Solution:   Rename equal() to equalpos().  Rename CR to CAR.
	    Do this in the non-extra files only.
Files:	    src/ascii.h, src/buffer.c, src/charset.c, src/edit.c, src/eval.c,
	    src/ex_cmds.c, src/ex_cmds2.c, src/ex_getln.c, src/fileio.c,
	    src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk_x11.c,
	    src/gui_motif.c, src/macros.h, src/mark.c, src/message.c,
	    src/misc1.c, src/misc2.c, src/normal.c, src/ops.c, src/os_unix.c,
	    src/regexp.c, src/search.c, src/ui.c, src/workshop.c

Patch 6.2.103 (extra)
Problem:    The macros equal() and CR conflict with a Carbon header file.
Solution:   Rename equal() to equalpos().  Rename CR to CAR.
	    Do this in the extra files only.
Files:	    src/gui_photon.c, src/gui_w48.c

Patch 6.2.104
Problem:    Unmatched braces in the table with options.
Solution:   Move the "}," outside of the #ifdef. (Yakov Lerner)
Files:	    src/option.c

Patch 6.2.105
Problem:    When the cursor is past the end of the line when calling
	    get_c_indent() a crash might occur.
Solution:   Don't look past the end of the line. (NJ Verenini)
Files:	    src/misc1.c

Patch 6.2.106
Problem:    Tag searching gets stuck on a very long line in the tags file.
Solution:   When skipping back to search the first matching tag remember the
	    offset where searching started looking for a line break.
Files:	    src/tag.c

Patch 6.2.107 (extra)
Problem:    The NetBeans interface cannot be used on Win32.
Solution:   Add support for the NetBeans for Win32.  Add support for reading
	    XPM files on Win32.  Also fixes that a sign icon with a space in
	    the file name did not work through the NetBeans interface.
	    (Sergey Khorev)
	    Also: avoid repeating error messages when the connection is lost.
Files:	    Makefile, runtime/doc/netbeans.txt, src/Make_bc5.mak,
	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
	    src/bigvim.bat, src/feature.h, src/gui_beval.c, src/gui_beval.h,
	    src/gui_w32.c, src/gui_w48.c, src/menu.c, src/nbdebug.c,
	    src/nbdebug.h, src/netbeans.c, src/os_mswin.c, src/os_win32.h,
	    src/proto/gui_beval.pro, src/proto/gui_w32.pro,
	    src/proto/netbeans.pro, src/proto.h, src/version.c, src/vim.h,
	    src/xpm_w32.c, src/xpm_w32.h

Patch 6.2.108
Problem:    Crash when giving a message about ignoring case in a tag. (Manfred
	    Kuehn)
Solution:   Use a longer buffer for the message.
Files:	    src/tag.c

Patch 6.2.109
Problem:    Compiler warnings with various Amiga compilers.
Solution:   Add typecast, prototypes, et al. that are also useful for other
	    systems.  (Flavio Stanchina)
Files:	    src/eval.c, src/ops.c

Patch 6.2.110
Problem:    When $LANG includes the encoding, a menu without an encoding name
	    is not found.
Solution:   Also look for a menu file without any encoding.
Files:	    runtime/menu.vim

Patch 6.2.111
Problem:    Encoding "cp1251" is not recognized.
Solution:   Add "cp1251" to the table of encodings. (Alexey Froloff)
Files:	    src/mbyte.c

Patch 6.2.112
Problem:    After applying patches test32 fails. (Antonio Colombo)
Solution:   Have "make clean" in the testdir delete *.rej and *.orig files.
	    Use this when doing "make clean" in the src directory.
Files:	    src/Makefile, src/testdir/Makefile

Patch 6.2.113
Problem:    Using ":startinsert" after "$" works like "a" instead of "i".
	    (Ajit Thakkar)
Solution:   Reset "w_curswant" for ":startinsert" and reset o_eol in edit().
Files:	    src/edit.c, src/ex_docmd.c

Patch 6.2.114
Problem:    When stdout is piped through "tee", the size of the screen may not
	    be correct.
Solution:   Use stdin instead of stdout for ioctl() when stdin is a tty and
	    stdout isn't.
Files:	    src/os_unix.c

Patch 6.2.115 (extra)
Problem:    Compiler warnings with various Amiga compilers.
Solution:   Add typecast, prototypes, et al.  Those changes that are
	    Amiga-specific. (Flavio Stanchina)
Files:	    src/fileio.c, src/memfile.c, src/os_amiga.c, src/os_amiga.h,
	    src/vim.h

Patch 6.2.116 (extra)
Problem:    German keyboard with Numlock set different from system startup
	    causes problems.
Solution:   Ignore keys with code 0xff. (Helmut Stiegler)
Files:	    src/gui_w48.c

Patch 6.2.117
Problem:    Breakpoints in loops of sourced files and functions are not
	    detected. (Hari Krishna Dara)
Solution:   Check for breakpoints when using lines that were previously read.
	    (Servatius Brandt)
Files:	    src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/proto/eval.pro,
	    src/proto/ex_cmds2.pro

Patch 6.2.118 (extra)
Problem:    Mac: Compiling is done in a non-standard way.
Solution:   Use the Unix method for Mac OS X, with autoconf.  Add "CARBONGUI"
	    to Makefile and configure. (Eric Kow)
	    Move a few prototypes from os_mac.pro to gui_mac.pro.
Files:	    src/Makefile, src/auto/configure, src/configure.in,
	    src/config.mk.in, src/gui_mac.c, src/os_mac.h, src/os_macosx.c,
	    src/proto/gui_mac.pro, src/proto/os_mac.pro,
	    src/infplist.xml, src/vim.h

Patch 6.2.119 (after 6.2.107)
Problem:    When packing the MS-Windows archives a few files are missing.
	    (Guopeng Wen)
Solution:   Add gui_beval.* to the list of generic source files.
Files:	    Makefile

Patch 6.2.120
Problem:    Win32 GUI: The console dialogs are not supported on MS-Windows,
	    disabling the 'c' flag of 'guioptions'. (Servatius Brandt)
Solution:   Define FEAT_CON_DIALOG also for GUI-only builds.
Files:	    src/feature.h

Patch 6.2.121 (after 6.2.118)
Problem:    Not all make programs support "+=". (Charles Campbell)
Solution:   Use a normal assignment.
Files:	    src/Makefile

Patch 6.2.122 (after 6.2.119)
Problem:    Not all shells can expand [^~].  File missing.  (Guopeng Wen)
Solution:   Use a simpler pattern.  Add the Aap recipe for the maze program
	    and a clean version of the source code.
Files:	    Makefile, runtime/macros/maze/Makefile,
	    runtime/macros/maze/README.txt, runtime/macros/maze/main.aap,
	    runtime/macros/maze/mazeclean.c

Patch 6.2.123 (after 6.2.118)
Problem:    Running configure fails. (Tony Leneis)
Solution:   Change "==" to "=" for a test.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.124 (after 6.2.121)(extra)
Problem:    Mac: Recursive use of M4FLAGS causes problems.  When running Vim
	    directly it can't find the runtime files.  (Emily Jackson)
	    Using GNU constructs causes warnings with other make programs.
	    (Ronald Schild)
Solution:   Use another name for the M4FLAGS variable.
	    Don't remove "Vim.app" from the path.
	    Update the explanation for compiling on the Mac. (Eric Kow)
	    Don't use $(shell ) and $(addprefix ).
Files:	    src/INSTALLmac.txt, src/Makefile, src/misc1.c

Patch 6.2.125 (after 6.2.107)
Problem:    The "winsock2.h" file isn't always available.
Solution:   Don't include this header file.
Files:	    src/netbeans.c

Patch 6.2.126
Problem:    Typing CTRL-C at a confirm() prompt doesn't throw an exception.
Solution:   Reset "mapped_ctrl_c" in get_keystroke(), so that "got_int" is set
	    in _OnChar().
Files:	    src/misc1.c

Patch 6.2.127 (extra)
Problem:    Win32 console: Typing CTRL-C doesn't throw an exception.
Solution:   Set got_int immediately when CTRL-C is typed, don't wait for
	    mch_breakcheck() being called.
Files:	    src/os_win32.c

Patch 6.2.128 (after 6.2.118)
Problem:    src/auto/configure is not consistent with src/configure.in.
Solution:   Use the newly generated configure script.
Files:	    src/auto/configure

Patch 6.2.129
Problem:    When 'number' is set 'wrapmargin' does not work Vi-compatible.
	    (Yasuhiro Matsumoto)
Solution:   Reduce the textwidth when 'number' is set.  Also for 'foldcolumn'
	    and similar things.
Files:	    src/edit.c

Patch 6.2.130 (extra)
Problem:    Win32 console: When 'restorescreen' is not set exiting Vim causes
	    the screen to be cleared. (Michael A. Mangino)
Solution:   Don't clear the screen when exiting and 'restorescreen' isn't set.
Files:	    src/os_win32.c

Patch 6.2.131 (extra)
Problem:    Win32: Font handles are leaked.
Solution:   Free italic, bold and bold-italic handles before overwriting them.
	    (Michael Wookey)
Files:	    src/gui_w48.c

Patch 6.2.132 (extra)
Problem:    Win32: console version doesn't work on latest Windows Server 2003.
Solution:   Copy 12000 instead of 15000 cells at a time to avoid running out
	    of memory.
Files:	    src/os_win32.c

Patch 6.2.133
Problem:    When starting the GUI a bogus error message about 'imactivatekey'
	    may be given.
Solution:   Only check the value of 'imactivatekey' when the GUI is running.
Files:	    src/gui.c, src/option.c

Patch 6.2.134 (extra)
Problem:    Win32: When scrolling parts of the window are redrawn when this
	    isn't necessary.
Solution:   Only invalidate parts of the window when they are obscured by
	    other windows. (Michael Wookey)
Files:	    src/gui_w48.c

Patch 6.2.135
Problem:    An item <> in the ":command" argument is interpreted as <args>.
Solution:   Avoid that <> is recognized as <args>.
Files:	    src/ex_docmd.c

Patch 6.2.136
Problem:    ":e ++enc=latin1 newfile" doesn't set 'fenc' when the file doesn't
	    exist.  (Miroslaw Dobrzanski-Neumann)
Solution:   Set 'fileencoding' to the specified encoding when editing a file
	    that does not exist.
Files:	    src/fileio.c

Patch 6.2.137
Problem:    "d:cmd<CR>" cannot be repeated with ".".  Breaks repeating "d%"
	    when using the matchit plugin.
Solution:   Store the command to be repeated.  This is restricted to
	    single-line commands.
Files:	    src/ex_docmd.c, src/globals.h, src/normal.c, src/vim.h

Patch 6.2.138 (extra)
Problem:    Compilation problem on VMS with dynamic buffer on the stack.
Solution:   Read one byte less than the size of the buffer, so that we can
	    check for the string length without an extra buffer.
Files:	    src/os_vms.c

Patch 6.2.139
Problem:    Code is repeated in the two Perl files.
Solution:   Move common code from if_perl.xs and if_perlsfio.c to vim.h.
	    Also fix a problem with generating prototypes.
Files:	    src/if_perl.xs, src/if_perlsfio.c, src/vim.h

Patch 6.2.140 (after 6.2.121)
Problem:    Mac: Compiling with Python and Perl doesn't work.
Solution:   Adjust the configure check for Python to use "-framework Python"
	    for Python 2.3 on Mac OS/X.
	    Move "-ldl" after "DynaLoader.a" in the link command.
	    Change "perllibs" to "PERL_LIBS".
Files:	    src/auto/configure, src/configure.in, src/config.mk.in

Patch 6.2.141 (extra)
Problem:    Mac: The b_FSSpec field is sometimes unused.
Solution:   Change the #ifdef to FEAT_CW_EDITOR and defined it in feature.h
Files:	    src/fileio.c, src/gui_mac.c, src/structs.h, src/feature.h

Patch 6.2.142 (after 6.2.124)
Problem:    Mac: building without GUI through configure doesn't work.
	    When the system is slow, unpacking the resource file takes too
	    long.
Solution:   Don't always define FEAT_GUI_MAC when MACOS is defined, define it
	    in the Makefile.
	    Add a configure option to skip Darwin detection.
	    Use a Python script to unpack the resources to avoid a race
	    condition. (Taro Muraoka)
Files:	    Makefile, src/Makefile, src/auto/configure, src/configure.in,
	    src/dehqx.py, src/vim.h

Patch 6.2.143
Problem:    Using "K" on Visually selected text doesn't work if it ends in
	    a multi-byte character.
Solution:   Include all the bytes of the last character. (Taro Muraoka)
Files:	    src/normal.c

Patch 6.2.144
Problem:    When "g:html_use_css" is set the HTML header generated by the
	    2html script is wrong.
Solution:   Add the header after adding HREF for links.
	    Also use ":normal!" instead of ":normal" to avoid mappings
	    getting in the way.
Files:	    runtime/syntax/2html.vim

Patch 6.2.145 (after 6.2.139)
Problem:    Undefining "bool" doesn't work for older systems. (Wojtek Pilorz)
Solution:   Only undefine "bool" on Mac OS.
Files:	    src/vim.h

Patch 6.2.146
Problem:    On some systems the prototype for iconv() is wrong, causing a
	    warning message.
Solution:   Use a cast (void *) to avoid the warning. (Charles Campbell)
Files:	    src/fileio.c, src/mbyte.c

Patch 6.2.147
Problem:    ":s/pat/\=col('.')" always replaces with "1".
Solution:   Set the cursor to the start of the match before substituting.
	    (Helmut Stiegler)
Files:	    src/ex_cmds.c

Patch 6.2.148
Problem:    Can't break an Insert into several undoable parts.
Solution:   Add the CTRL-G u command.
Files:	    runtime/doc/insert.txt, src/edit.c

Patch 6.2.149
Problem:    When the cursor is on a line past 21,474,748 the indicated
	    percentage of the position is invalid.  With that many lines
	    "100%" causes a negative cursor line number, resulting in a crash.
	    (Daniel Goujot)
Solution:   Divide by 100 instead of multiplying.  Avoid overflow when
	    computing the line number for "100%".
Files:	    src/buffer.c, src/ex_cmds2.c, src/normal.c

Patch 6.2.150
Problem:    When doing "vim - < file" lines are broken at NUL chars.
	    (Daniel Goujot)
Solution:   Change NL characters back to NUL when reading from the temp
	    buffer.
Files:	    src/fileio.c

Patch 6.2.151
Problem:    When doing "vim --remote +startinsert file" some commands are
	    inserted as text. (Klaus Bosau)
Solution:   Put all the init commands in one Ex line, not using a <CR>, so
	    that Insert mode isn't started too early.
Files:	    src/main.c

Patch 6.2.152
Problem:    The cursor() function doesn't reset the column offset for
	    'virtualedit'.
Solution:   Reset the offset to zero. (Helmut Stiegler)
Files:	    src/eval.c

Patch 6.2.153
Problem:    Win32: ":lang german" doesn't use German messages.
Solution:   Add a table to translate the Win32 language names to two-letter
	    language codes.
Files:	    src/ex_cmds2.c

Patch 6.2.154
Problem:    Python bails out when giving a warning message. (Eugene
	    Minkovskii)
Solution:   Set sys.argv[] to an empty string.
Files:	    src/if_python.c

Patch 6.2.155
Problem:    Win32: Using ":tjump www" in a help file gives two results.
	    (Dave Roberts)
Solution:   Ignore differences between slashes and backslashes when checking
	    for identical tag matches.
Files:	    src/tag.c

Patch 6.2.156 (after 6.2.125)
Problem:    Win32: Netbeans fails to build, EINTR is not defined.
Solution:   Redefine EINTR to WSAEINTR. (Mike Williams)
Files:	    src/netbeans.c

Patch 6.2.157
Problem:    Using "%p" in 'errorformat' gives a column number that is too
	    high.
Solution:   Set the flag to use the number as a virtual column.  (Lefteris
	    Koutsoloukas)
Files:	    src/quickfix.c

Patch 6.2.158
Problem:    The sed command on Solaris and HPUX doesn't work for a line that
	    doesn't end in a newline.
Solution:   Add a newline when feeding text to sed. (Mark Waggoner)
Files:	    src/configure.in, src/auto/configure

Patch 6.2.159
Problem:    When using expression folding and 'foldopen' is "undo" an undo
	    command doesn't always open the fold.
Solution:   Save and restore the KeyTyped variable when evaluating 'foldexpr'.
	    (Taro Muraoka)
Files:	    src/fold.c

Patch 6.2.160
Problem:    When 'virtualedit' is "all" and 'selection' is "exclusive",
	    selecting a double-width character below a single-width character
	    may cause a crash.
Solution:   Avoid overflow on unsigned integer decrement. (Taro Muraoka)
Files:	    src/normal.c

Patch 6.2.161 (extra)
Problem:    VMS: Missing header file.  Reading input busy loops.
Solution:   Include termdef.h.  Avoid the use of a wait function in
	    vms_read().  (Frank Ries)
Files:	    src/os_unix.h, src/os_vms.c

Patch 6.2.162
Problem:    ":redraw" doesn't always display the text that includes the cursor
	    position, e.g. after ":call cursor(1, 0)". (Eugene Minkovskii)
Solution:   Call update_topline() before redrawing.
Files:	    src/ex_docmd.c

Patch 6.2.163
Problem:    "make install" may also copy AAPDIR directories.
Solution:   Delete AAPDIR directories, just like CVS directories.
Files:	    src/Makefile

Patch 6.2.164 (after 6.2.144)
Problem:    When "g:html_use_css" is set the HTML header generated by the
	    2html script is still wrong.
Solution:   Search for a string instead of jumping to a fixed line number.
	    Go to the start of the line before inserting the header.
	    (Jess Thrysoee)
Files:	    runtime/syntax/2html.vim

Patch 6.2.165
Problem:    The configure checks hang when using autoconf 2.57.
Solution:   Invoke AC_PROGRAM_EGREP to set $EGREP. (Aron Griffis)
Files:	    src/auto/configure, src/configure.in

Patch 6.2.166
Problem:    When $GZIP contains "-N" editing compressed files doesn't work
	    properly.
Solution:   Add "-n" to "gzip -d" to avoid restoring the file name. (Oyvind
	    Holm)
Files:	    runtime/plugin/gzip.vim

Patch 6.2.167
Problem:    The Python interface leaks memory when assigning lines to a
	    buffer. (Sergey Khorev)
Solution:   Do not copy the line when calling ml_replace().
Files:	    src/if_python.c

Patch 6.2.168
Problem:    Python interface: There is no way to get the indices from a range
	    object.
Solution:   Add the "start" and "end" attributes. (Maurice S. Barnum)
Files:	    src/if_python.c, runtime/doc/if_pyth.txt

Patch 6.2.169
Problem:    The prototype for _Xmblen() appears in a recent XFree86 header
	    file, causing a warning for our prototype. (Hisashi T Fujinaka)
Solution:   Move the prototype to an osdef file, so that it's filtered out.
Files:	    src/mbyte.c, src/osdef2.h.in

Patch 6.2.170
Problem:    When using Sun WorkShop the current directory isn't changed to
	    where the file is.
Solution:   Set the 'autochdir' option when using WorkShop.  And avoid using
	    the basename when 'autochdir' is not set.
Files:	    src/gui_x11.c, src/ex_cmds.c

Patch 6.2.171 (after 6.2.163)
Problem:    The "-or" argument of "find" doesn't work for SysV systems.
Solution:   Use "-o" instead. (Gordon Prieur)
Files:	    src/Makefile

Patch 6.2.172 (after 6.2.169)
Problem:    The prototype for _Xmblen() still causes trouble.
Solution:   Include the X11 header file that defines the prototype.
Files:	    src/osdef2.h.in, src/osdef.sh

Patch 6.2.173 (extra)
Problem:    Win32: Ruby interface doesn't work with Ruby 1.8.0 for other
	    compilers than MSVC.
Solution:   Fix the BC5, Cygwin and Mingw makefiles. (Dan Sharp)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak

Patch 6.2.174
Problem:    After the ":intro" message only a mouse click in the last line
	    gets past the hit-return prompt.
Solution:   Accept a click at or below the hit-return prompt.
Files:	    src/gui.c, src/message.c

Patch 6.2.175
Problem:    Changing 'backupext' in a *WritePre autocommand doesn't work.
	    (William Natter)
Solution:   Move the use of p_bex to after executing the *WritePre
	    autocommands.  Also avoids reading allocated memory after freeing.
Files:	    src/fileio.c

Patch 6.2.176
Problem:    Accented characters in translated help files are not handled
	    correctly. (Fabien Vayssiere)
Solution:   Include "192-255" in 'iskeyword' for the help window.
Files:	    src/ex_cmds.c

Patch 6.2.177 (extra)
Problem:    VisVim: Opening a file with a space in the name doesn't work. (Rob
	    Retter)  Arbitrary commands are being executed. (Neil Bird)
Solution:   Put a backslash in front of every space in the file name.
	    (Gerard Blais)  Terminate the CTRL-\ CTRL-N command with a NUL.
Files:	    src/VisVim/Commands.cpp, src/VisVim/VisVim.rc

Patch 6.2.178
Problem:    People who don't know how to exit Vim try pressing CTRL-C.
Solution:   Give a message how to exit Vim when CTRL-C is pressed and it
	    doesn't cancel anything.
Files:	    src/normal.c

Patch 6.2.179 (extra)
Problem:    The en_gb messages file isn't found on case sensitive systems.
Solution:   Rename en_gb to en_GB. (Mike Williams)
Files:	    src/po/en_gb.po, src/po/en_GB.po, src/po/Make_ming.mak,
	    src/po/Make_mvc.mak, src/po/Makefile, src/po/README_mvc.txt

Patch 6.2.180
Problem:    Compiling with GTK2 on Win32 doesn't work.
Solution:   Include gdkwin32.h instead of gdkx.h. (Srinath Avadhanula)
Files:	    src/gui_gtk.c, src/gui_gtk_f.c, src/gui_gtk_x11.c, src/mbyte.c

Patch 6.2.181 (after 6.2.171)
Problem:    The "-o" argument of "find" has lower priority than the implied
	    "and" with "-print".
Solution:   Add parenthesis around the "-o" expression. (Gordon Prieur)
Files:	    src/Makefile

Patch 6.2.182 (after 6.2.094)
Problem:    Compilation with tiny features fails because of missing
	    get_past_head() function.
Solution:   Adjust the #ifdef for get_past_head().
Files:	    src/misc1.c

Patch 6.2.183 (after 6.2.178)
Problem:    Warning for char/unsigned char mixup.
Solution:   Use MSG() instead of msg(). (Tony Leneis)
Files:	    src/normal.c

Patch 6.2.184
Problem:    With 'formatoptions' set to "1aw" inserting text may cause the
	    paragraph to be ended. (Alan Schmitt)
Solution:   Temporarily add an extra space to make the paragraph continue
	    after moving the word after the cursor to the next line.
	    Also format when pressing Esc.
Files:	    src/edit.c, src/normal.c, src/proto/edit.pro

Patch 6.2.185
Problem:    Restoring a session with zero-height windows does not work
	    properly. (Charles Campbell)
Solution:   Accept a zero argument to ":resize" as intended.  Add a window
	    number argument to ":resize" to be able to set the size of other
	    windows, because the current window cannot be zero-height.
	    Fix the explorer plugin to avoid changing the window sizes.  Add
	    the winrestcmd() function for this.
Files:	    runtime/doc/eval.txt, runtime/plugin/explorer.vim, src/eval.c,
	    src/ex_cmds.h, src/ex_docmd.c, src/proto/window.pro, src/window.c

Patch 6.2.186 (after 6.2.185)
Problem:    Documentation file eval.txt contains examples without indent.
Solution:   Insert the indent.  Also fix other mistakes.
Files:	    runtime/doc/eval.txt

Patch 6.2.187
Problem:    Using Insure++ reveals a number of bugs.  (Dominique Pelle)
Solution:   Initialize variables where needed.  Free allocated memory to avoid
	    leaks.  Fix comparing tags to avoid reading past allocated memory.
Files:	    src/buffer.c, src/diff.c, src/fileio.c, src/mark.c, src/misc1.c,
	    src/misc2.c, src/ops.c, src/option.c, src/tag.c, src/ui.c

Patch 6.2.188 (extra)
Problem:    MS-Windows: Multi-byte characters in a filename cause trouble for
	    the window title.
Solution:   Return when the wide function for setting the title did its work.
Files:	    src/gui_w48.c

Patch 6.2.189
Problem:    When setting 'viminfo' after editing a new buffer its marks are
	    not stored. (Keith Roberts)
Solution:   Set the "b_marks_read" flag when skipping to read marks from the
	    viminfo file.
Files:	    src/fileio.c

Patch 6.2.190
Problem:    When editing a compressed files, marks are lost.
Solution:   Add the ":lockmarks" modifier and use it in the gzip plugin.
	    Make exists() also check for command modifiers, so that the
	    existence of ":lockmarks" can be checked for.
	    Also add ":keepmarks" to avoid that marks are deleted when
	    filtering text.
	    When deleting lines put marks 'A - 'Z and '0 - '9 at the first
	    deleted line instead of clearing the mark.  They were kept in the
	    viminfo file anyway.
	    Avoid that the gzip plugin puts deleted text in registers.
Files:	    runtime/doc/motion.txt, runtime/plugin/gzip.vim, src/ex_cmds.c,
	    src/ex_docmd.c, src/mark.c, src/structs.h

Patch 6.2.191
Problem:    The intro message is outdated.  Information about sponsoring and
	    registering is missing.
Solution:   Show info about sponsoring and registering Vim in the intro
	    message now and then.  Add help file about sponsoring.
Files:	    runtime/doc/help.txt, runtime/doc/sponsor.txt, runtime/doc/tags,
	    runtime/menu.vim, src/version.c

Patch 6.2.192
Problem:    Using CTRL-T and CTRL-D with "gR" messes up the text.  (Jonathan
	    Hankins)
Solution:   Avoid calling change_indent() recursively.
Files:	    src/edit.c

Patch 6.2.193
Problem:    When recalling a search pattern from the history from a ":s,a/c,"
	    command the '/' ends the search string. (JC van Winkel)
Solution:   Store the separator character with the history entries.  Escape
	    characters when needed, replace the old separator with the new one.
	    Also fixes that recalling a "/" search for a "?" command messes up
	    trailing flags.
Files:	    src/eval.c, src/ex_getln.c, src/normal.c, src/proto/ex_getln.pro,
	    src/search.c, src/tag.c

Patch 6.2.194 (after 6.2.068)
Problem:    For NetBeans, instead of writing the file and sending an event
	    about it, tell NetBeans to write the file.
Solution:   Add the "save" command, "netbeansBuffer" command and
	    "buttonRelease" event to the netbeans protocol.  Updated the
	    interface to version 2.2.  (Gordon Prieur)
	    Also: open a fold when the cursor has been positioned.
	    Also: fix memory leak, free result of nb_quote().
Files:	    runtime/doc/netbeans.txt, src/fileio.c, src/netbeans.c,
	    src/normal.c, src/proto/netbeans.pro, src/structs.h

Patch 6.2.195 (after 6.2.190)
Problem:    Compiling fails for missing CPO_REMMARK symbol.
Solution:   Add the patch I forgot to include...
Files:	    src/option.h

Patch 6.2.196 (after 6.2.191)
Problem:    Rebuilding the documentation doesn't use the sponsor.txt file.
Solution:   Add sponsor.txt to the Makefile. (Christian J. Robinson)
Files:	    runtime/doc/Makefile

Patch 6.2.197
Problem:    It is not possible to force a redraw of status lines. (Gary
	    Johnson)
Solution:   Add the ":redrawstatus" command.
Files:	    runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/screen.c

Patch 6.2.198
Problem:    A few messages are not translated. (Ernest Adrogue)
Solution:   Mark the messages to be translated.
Files:	    src/ex_cmds.c

Patch 6.2.199 (after 6.2.194)
Problem:    Vim doesn't work perfectly well with NetBeans.
Solution:   When NetBeans saves the file, reset the timestamp to avoid "file
	    changed" warnings.  Close a buffer in a proper way.  Don't try
	    giving a debug message with an invalid pointer.  Send a
	    newDotAndMark message when needed.  Report a change by the "r"
	    command to NetBeans.  (Gordon Prieur)
Files:	    src/netbeans.c, src/normal.c

Patch 6.2.200
Problem:    When recovering a file, 'fileformat' is always the default, thus
	    writing the file may result in differences. (Penelope Fudd)
Solution:   Before recovering the file try reading the original file to obtain
	    the values of 'fileformat', 'fileencoding', etc.
Files:	    src/memline.c

Patch 6.2.201
Problem:    When 'autowriteall' is set ":qall" still refuses to exit if there
	    is a modified buffer. (Antoine Mechelynck)
Solution:   Attempt writing modified buffers as intended.
Files:	    src/ex_cmds2.c

Patch 6.2.202
Problem:    Filetype names of CHILL and ch script are confusing.
Solution:   Rename "ch" to "chill" and "chscript" to "ch".
Files:	    runtime/filetype.vim, runtime/makemenu.vim, runtime/synmenu.vim
	    runtime/syntax/ch.vim, runtime/syntax/chill.vim

Patch 6.2.203
Problem:    With characterwise text that has more than one line, "3P" works
	    wrong.  "3p" has the same problem.  There also is a display
	    problem. (Daniel Goujot)
Solution:   Perform characterwise puts with a count in the right position.
Files:	    src/ops.c

Patch 6.2.204 (after 6.2.086)
Problem:    "]]" in a file with closed folds moves to the end of the file.
	    (Nam SungHyun)
Solution:   Find one position in each closed fold, then move to after the fold.
Files:	    src/search.c

Patch 6.2.205 (extra)
Problem:    MS-Windows: When the taskbar is at the left or top of the screen,
	    the Vim window placement is wrong.
Solution:   Compute the size and position of the window correctly. (Taro
	    Muraoka)
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.2.206
Problem:    Multi-byte characters cannot be used as hotkeys in a console
	    dialog.  (Mattias Erkisson)
Solution:   Handle multi-byte characters properly.  Also put () or [] around
	    default hotkeys.
Files:	    src/message.c, src/macros.h

Patch 6.2.207
Problem:    When 'encoding' is a multi-byte encoding, expanding an
	    abbreviation that starts where insertion started results in
	    characters before the insertion to be deleted.  (Xiangjiang Ma)
Solution:   Stop searching leftwards for the start of the word at the position
	    where insertion started.
Files:	    src/getchar.c

Patch 6.2.208
Problem:    When using fold markers, three lines in a row have the start
	    marker and deleting the first one with "dd", a nested fold is not
	    deleted.  (Kamil Burzynski)
	    Using marker folding, a level 1 fold doesn't stop when it is
	    followed by "{{{2", starting a level 2 fold.
Solution:   Don't stop updating folds at the end of a change when the nesting
	    level of folds is larger than the fold level.
	    Correctly compute the number of folds that start at "{{{2".
	    Also avoid a crash for a NULL pointer.
Files:	    src/fold.c

Patch 6.2.209
Problem:    A bogus fold is created when using "P" while the cursor is in the
	    middle of a closed fold. (Kamil Burzynski)
Solution:   Correct the line number where marks are modified for closed folds.
Files:	    src/ops.c

Patch 6.2.210 (extra)
Problem:    Mac OSX: antialiased fonts are not supported.
Solution:   Add the 'antialias' option to switch on antialiasing on Mac OSX
	    10.2 and later. (Peter Cucka)
Files:	    runtime/doc/options.txt, src/gui_mac.c, src/option.h, src/option.c

Patch 6.2.211 (extra)
Problem:    Code for handling file dropped on Vim is duplicated.
Solution:   Move the common code to gui_handle_drop().
	    Add code to drop the files in the window under the cursor.
	    Support drag&drop on the Macintosh.  (Taro Muraoka)
	    When dropping a directory name edit that directory (using the
	    explorer plugin)
	    Fix that changing directory with Shift pressed didn't work for
	    relative path names.
Files:	    src/fileio.c, src/gui.c, src/gui_gtk_x11.c, src/gui_mac.c,
	    src/gui_w48.c, src/proto/fileio.pro, src/proto/gui.pro

Patch 6.2.212 (after 6.2.199)
Problem:    NetBeans: Replacing with a count is not handled correctly.
Solution:   Move reporting the change outside of the loop for the count.
	    (Gordon Prieur)
Files:	    src/normal.c

Patch 6.2.213 (after 6.2.208)
Problem:    Using marker folding, "{{{1" doesn't start a new fold when already
	    at fold level 1. (Servatius Brandt)
Solution:   Correctly compute the number of folds that start at "{{{1".
Files:	    src/fold.c

Patch 6.2.214 (after 6.2.211) (extra)
Problem:    Warning for an unused variable.
Solution:   Delete the declaration. (Bill McCarthy)
Files:	    src/gui_w48.c

Patch 6.2.215
Problem:    NetBeans: problems saving an unmodified file.
Solution:   Add isNetbeansModified() function.  Disable netbeans_unmodified().
	    (Gordon Prieur)
Files:	    src/fileio.c, src/netbeans.c, src/proto/netbeans.pro,
	    runtime/doc/netbeans.txt, runtime/doc/tags

Patch 6.2.216 (after 6.2.206)
Problem:    Multi-byte characters still cannot be used as hotkeys in a console
	    dialog.  (Mattias Erkisson)
Solution:   Make get_keystroke() handle multi-byte characters.
Files:	    src/misc1.c

Patch 6.2.217
Problem:    GTK: setting the title doesn't always work correctly.
Solution:   Invoke gui_mch_settitle(). (Tomas Stehlik)
Files:	    src/os_unix.c

Patch 6.2.218
Problem:    Warning for function without prototype.
Solution:   Add argument types to the msgCB field of the BalloonEval struct.
Files:	    src/gui_beval.h

Patch 6.2.219
Problem:    Syntax highlighting hangs on an empty match of an item with a
	    nextgroup.  (Charles Campbell)
Solution:   Remember that the item has already matched and don't match it
	    again at the same position.
Files:	    src/syntax.c

Patch 6.2.220
Problem:    When a Vim server runs in a console a remote command isn't handled
	    before a key is typed.  (Joshua Neuheisel)
Solution:   Don't try reading more input when a client-server command has been
	    received.
Files:	    src/os_unix.c

Patch 6.2.221
Problem:    No file name completion for ":cscope add".
Solution:   Add the XFILE flag to ":cscope". (Gary Johnson)
Files:	    src/ex_cmds.h

Patch 6.2.222
Problem:    Using "--remote" several times on a row only opens some of the
	    files. (Dany St-Amant)
Solution:   Don't delete all typeahead when the server receives a command from
	    a client, only delete typed characters.
Files:	    src/main.c

Patch 6.2.223
Problem:    Cscope: Avoid a hang when cscope waits for a response while Vim
	    waits for a prompt.
	    Error messages from Cscope mess up the display.
Solution:   Detect the hit-enter message and respond by sending a return
	    character to cscope. (Gary Johnson)
	    Use EMSG() and strerror() when possible.  Replace perror() with
	    PERROR() everywhere, add emsg3().
Files:	    src/diff.c, src/if_cscope.c, src/integration.c, src/message.c,
	    src/proto/message.pro, src/misc2.c, src/netbeans.c, src/vim.h

Patch 6.2.224
Problem:    Mac: Can't compile with small features. (Axel Kielhorn)
Solution:   Also include vim_chdirfile() when compiling for the Mac.
Files:	    src/misc2.c

Patch 6.2.225
Problem:    NetBeans: Reported modified state isn't exactly right.
Solution:   Report a file being modified in the NetBeans way.
Files:	    src/netbeans.c

Patch 6.2.226 (after 6.2.107) (extra)
Problem:    The "ws2-32.lib" file isn't always available.
Solution:   Use "WSock32.lib" instead. (Taro Muraoka, Dan Sharp)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak

Patch 6.2.227 (extra)
Problem:    The "PC" symbol is defined but not used anywhere.
Solution:   Remove "-DPC" from the makefiles.
Files:	    src/Make_bc3.mak, src/Make_bc5.mak, src/Make_cyg.mak,
	    src/Make_ming.mak

Patch 6.2.228
Problem:    Receiving CTRL-\ CTRL-N after typing "f" or "m" doesn't switch Vim
	    back to Normal mode.  Same for CTRL-\ CTRL-G.
Solution:   Check if the character typed after a command is CTRL-\ and obtain
	    another character to check for CTRL-N or CTRL-G, waiting up to
	    'ttimeoutlen' msec.
Files:	    src/normal.c

Patch 6.2.229
Problem:    ":function" with a name that uses magic curlies does not work
	    inside a function.  (Servatius Brandt)
Solution:   Skip over the function name properly.
Files:	    src/eval.c

Patch 6.2.230 (extra)
Problem:    Win32: a complex pattern may cause a crash.
Solution:   Use __try and __except to catch the exception and handle it
	    gracefully, when possible.  Add myresetstkoflw() to reset the
	    stack overflow. (Benjamin Peterson)
Files:	    src/Make_bc5.mak, src/os_mswin.c src/os_win32.c, src/os_win32.h,
	    src/proto/os_win32.pro, src/regexp.c

Patch 6.2.231 (after 6.2.046)
Problem:    Various problems when an error exception is raised from within a
	    builtin function.  When it is invoked while evaluating arguments
	    to a function following arguments are still evaluated.  When
	    invoked with a line range it will be called for remaining lines.
Solution:   Update "force_abort" also after calling a builtin function, so
	    that aborting() always returns the correct value. (Servatius
	    Brandt)
Files:	    src/eval.c, src/ex_eval.c, src/proto/ex_eval.pro,
	    src/testdir/test49.ok, src/testdir/test49.vim

Patch 6.2.232
Problem:    ":python vim.command('python print 2*2')" crashes Vim.  (Eugene
	    Minkovskii)
Solution:   Disallow executing a Python command recursively and give an error
	    message.
Files:	    src/if_python.c

Patch 6.2.233
Problem:    On Mac OSX adding -pthread for Python only generates a warning.
	    The test for Perl threads rejects Perl while it's OK.
	    Tcl doesn't work at all.
	    The test for Ruby fails if ruby exists but there are no header
	    files.  The Ruby library isn't detected properly
Solution:   Avoid adding -pthread on Mac OSX.  Accept Perl threads when it's
	    not the 5.5 threads.
	    Use the Tcl framework for header files.  For Ruby rename cWindow
	    to cVimWindow to avoid a name clash. (Ken Scott)
	    Only enable Ruby when the header files can be found.  Use "-lruby"
	    instead of "libruby.a" when it can't be found.
Files:	    src/auto/configure, src/configure.in, src/if_ruby.c

Patch 6.2.234
Problem:    GTK 2 GUI: ":sp" and the ":q" leaves the cursor on the command
	    line.
Solution:   Flush output before removing scrollbars.  Also do this in other
	    places where gui_mch_*() functions are invoked.
Files:	    src/ex_cmds.c, src/option.c, src/window.c

Patch 6.2.235 (extra)
Problem:    Win32: Cursor isn't removed with a 25x80 window and doing:
	    "1830ia<Esc>400a-<Esc>0w0". (Yasuhiro Matsumoto)
Solution:   Remove the call to gui_undraw_cursor() from gui_mch_insert_lines().
Files:	    src/gui_w48.c

Patch 6.2.236
Problem:    Using gvim with Agide gives "connection lost" error messages.
Solution:   Only give the "connection lost" message when the buffer was once
	    owned by NetBeans.
Files:	    src/netbeans.c, src/structs.h

Patch 6.2.237
Problem:    GTK 2: Thai text is drawn wrong.  It changes when moving the
	    cursor over it.
Solution:   Disable the shaping engine, it moves combining characters to a
	    wrong position and combines characters, while drawing the cursor
	    doesn't combine characters.
Files:	    src/gui_gtk_x11.c

Patch 6.2.238 (after 6.2.231)
Problem:    ":function" does not work inside a while loop. (Servatius Brandt)
Solution:   Add get_while_line() and pass it to do_one_cmd() when in a while
	    loop, so that all lines are stored and can be used again when
	    repeating the loop.
	    Adjust test 49 so that it checks for the fixed problems.
	    (Servatius Brandt)
Files:	    src/digraph.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
	    src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro,
	    src/testdir/test49.in, src/testdir/test49.ok,
	    src/testdir/test49.vim

Patch 6.2.239
Problem:    GTK 2: With closed folds the arrow buttons of a vertical scrollbar
	    often doesn't scroll. (Moshe Kaminsky)
Solution:   Hackish solution: Detect that the button was pressed from the
	    mouse pointer position.
Files:	    src/gui_gtk.c, src/gui.c

Patch 6.2.240
Problem:    GTK 2: Searching for bitmaps for the toolbar doesn't work as with
	    other systems.  Need to explicitly use "icon=name".  (Ned Konz,
	    Christian J.  Robinson)
Solution:   Search for icons like done for Motif.
Files:	    src/gui_gtk.c

Patch 6.2.241
Problem:    GTK 2: Search and Search/Replace dialogs are synced, that makes no
	    sense.  Buttons are sometimes greyed-out. (Jeremy Messenger)
Solution:   Remove the code to sync the two dialogs.  Adjust the code to react
	    to an empty search string to also work for GTK2. (David Necas)
Files:	    src/gui_gtk.c

Patch 6.2.242
Problem:    Gnome: "vim --help" only shows the Gnome arguments, not the Vim
	    arguments.
Solution:   Don't let the Gnome code remove the "--help" argument and don't
	    exit at the end of usage().
Files:	    src/gui_gtk_x11.c, src/main.c

Patch 6.2.243 (extra)
Problem:    Mac: Dropping a file on a Vim icon causes a hit-enter prompt.
Solution:   Move the dropped files to the global argument list, instead of the
	    usual drop handling. (Eckehard Berns)
Files:	    src/main.c, src/gui_mac.c

Patch 6.2.244
Problem:    ':echo "\xf7"' displays the illegal byte as if it was a character
	    and leaves "cho" after it.
Solution:   When checking the length of a UTF-8 byte sequence and it's shorter
	    than the number of bytes available, assume it's an illegal byte.
Files:	    src/mbyte.c

Patch 6.2.245
Problem:    Completion doesn't work for ":keepmarks" and ":lockmarks".
Solution:   Add the command modifiers to the table of commands. (Madoka
	    Machitani)
Files:	    src/ex_cmds.h, src/ex_docmd.c

Patch 6.2.246
Problem:    Mac: Starting Vim from Finder doesn't show error messages.
Solution:   Recognize that output is being displayed by stderr being
	    "/dev/console".  (Eckehard Berns)
Files:	    src/main.c, src/message.c

Patch 6.2.247 (after 6.2.193)
Problem:    When using a search pattern from the viminfo file the last
	    character is replaced with a '/'.
Solution:   Store the separator character in the right place. (Kelvin Lee)
Files:	    src/ex_getln.c

Patch 6.2.248
Problem:    GTK: When XIM is enabled normal "2" and keypad "2" cannot be
	    distinguished.
Solution:   Detect that XIM changes the keypad key to the expected ASCII
	    character and fall back to the non-XIM code. (Neil Bird)
Files:	    src/gui_gtk_x11.c, src/mbyte.c, src/proto/mbyte.pro

Patch 6.2.249
Problem:    ":cnext" moves to the error in the next file, but there is no
	    method to go back.
Solution:   Add ":cpfile" and ":cNfile".
Files:	    src/ex_cmds.h, src/quickfix.c, src/vim.h, runtime/doc/quickfix.txt

Patch 6.2.250
Problem:    Memory leaks when using signs. (Xavier de Gaye)
Solution:   Delete the list of signs when unloading a buffer.
Files:	    src/buffer.c

Patch 6.2.251
Problem:    GTK: The 'v' flag in 'guioptions' doesn't work. (Steve Hall)
	    Order of buttons is reversed for GTK 2.2.4.  Don't always get
	    focus back after handling a dialog.
Solution:   Make buttons appear vertically when desired.  Reverse the order in
	    which buttons are added to a dialog.  Move mouse pointer around
	    when the dialog is done and we don't have focus.
Files:	    src/gui_gtk.c

Patch 6.2.252 (extra, after 6.2.243)
Problem:    Mac: Dropping a file on a Vim icon causes a hit-enter prompt for
	    Mac OS classic.
Solution:   Remove the #ifdef from the code that fixes it for Mac OSX.
Files:	    src/gui_mac.c

Patch 6.2.253
Problem:    When 'tagstack' is not set a ":tag id" command does not work after
	    a ":tjump" command.
Solution:   Set "new_tag" when 'tagstack' isn't set. (G. Narendran)
Files:	    src/tag.c

Patch 6.2.254
Problem:    May run out of space for error messages.
Solution:   Keep room for two more bytes.
Files:	    src/quickfix.c

Patch 6.2.255
Problem:    GTK: A new item in the popup menu is put just after instead of
	    just before the right item. (Gabriel Zachmann)
Solution:   Don't increment the menu item index.
Files:	    src/gui_gtk.c

Patch 6.2.256
Problem:    Mac: "macroman" encoding isn't recognized, need to use
	    "8bit-macroman".
Solution:   Recognize "macroman" with an alias "mac". (Eckehard Berns)
Files:	    src/mbyte.c

Patch 6.2.257 (after 6.2.250)
Problem:    Signs are deleted for ":bdel", but they could still be useful.
Solution:   Delete signs only for ":bwipe".
Files:	    src/buffer.c

Patch 6.2.258
Problem:    GUI: can't disable (grey-out) a popup menu item.  (Ajit Thakkar)
Solution:   Loop over the popup menus for all modes.
Files:	    src/menu.c

Patch 6.2.259
Problem:    If there are messages when exiting, on the console there is a
	    hit-enter prompt while the message can be read; in the GUI the
	    message may not be visible.
Solution:   Use the hit-enter prompt when there is an error message from
	    writing the viminfo file or autocommands, or when there is any
	    output in the GUI and 'verbose' is set.  Don't use a hit-enter
	    prompt for the non-GUI version unless there is an error message.
Files:	    src/main.c

Patch 6.2.260
Problem:    GTK 2: Can't quit a dialog with <Esc>.
	    GTK 1 and 2: <Enter> always gives a result, even when the default
	    button has been disabled.
Solution:   Handle these keys explicitly.  When no default button is specified
	    use the first one (works mostly like it was before).
Files:	    src/gui_gtk.c

Patch 6.2.261
Problem:    When 'autoindent' and 'cindent' are set and a line is recognized
	    as a comment, starting a new line won't do 'cindent' formatting.
Solution:   Also use 'cindent' formatting for lines that are used as a
	    comment. (Servatius Brandt)
Files:	    src/misc1.c

Patch 6.2.262
Problem:    1 CTRL-W w beeps, even though going to the first window is
	    possible. (Charles Campbell)
Solution:   Don't beep.
Files:	    src/window.c

Patch 6.2.263
Problem:    Lint warnings: Duplicate function prototypes, duplicate macros,
	    use of a zero character instead of a zero pointer, unused
	    variable.  Clearing allocated memory in a complicated way.
Solution:   Remove the function prototypes from farsi.h.  Remove the
	    duplicated lines in keymap.h.  Change getvcol() argument from NUL
	    to NULL.  Remove the "col" variable in regmatch().  Use
	    lalloc_clear() instead of lalloc(). (Walter Briscoe)
Files:	    src/farsi.h, src/keymap.h, src/ops.c, src/regexp.c, src/search.c

Patch 6.2.264 (after 6.2.247)
Problem:    Writing past allocated memory when using a command line from the
	    viminfo file.
Solution:   Store the NUL in the right place.
Files:	    src/ex_getln.c

Patch 6.2.265
Problem:    Although ":set" is not allowed in the sandbox, ":let &opt = val"
	    works.
Solution:   Do allow changing options in the sandbox, but not the ones that
	    can't be changed from a modeline.
Files:	    src/ex_cmds.h, src/options.c

Patch 6.2.266
Problem:    When redirecting output and using ":silent", line breaks are
	    missing from output of ":map" and ":tselect".  Alignment of
	    columns is wrong.
Solution:   Insert a line break where "msg_didout" was tested.  Update msg_col
	    when redirecting and using ":silent".
Files:	    src/getchar.c, src/message.c

Patch 6.2.267 (extra)
Problem:    Win32: "&&" in a tearoff menu is not shown. (Luc Hermitte)
Solution:   Use the "name" item from the menu instead of the "dname" item.
Files:	    src/gui_w32.c, src/menu.c

Patch 6.2.268
Problem:    GUI: When changing 'guioptions' part of the window may be off
	    screen. (Randall Morris)
Solution:   Adjust the size of the window when changing 'guioptions', but only
	    when adding something.
Files:	    src/gui.c

Patch 6.2.269
Problem:    Diff mode does not highlight a change in a combining character.
	    (Raphael Finkel)
Solution:   Make diff_find_change() multi-byte aware: find the start byte of
	    a character that contains a change.
Files:	    src/diff.c

Patch 6.2.270
Problem:    Completion in Insert mode, then repeating with ".", doesn't handle
	    composing characters in the completed text. (Raphael Finkel)
Solution:   Don't skip over composing chars when adding completed text to the
	    redo buffer.
Files:	    src/getchar.c

Patch 6.2.271
Problem:    NetBeans: Can't do "tail -f" on the log.  Passing socket info with
	    an argument or environment variable is not secure.
Solution:   Wait after initializing the log.  Allow passing the socket info
	    through a file. (Gordon Prieur)
Files:	    runtime/doc/netbeans.txt, src/main.c, src/netbeans.c

Patch 6.2.272
Problem:    When the "po" directory exists, but "po/Makefile" doesn't,
	    building fails.  Make loops when the "po" directory has been
	    deleted after running configure.
Solution:   Check for the "po/Makefile" instead of just the "po" directory.
	    Check this again before trying to run make with that Makefile.
Files:	    src/auto/configure, src/configure.in, src/Makefile

Patch 6.2.273
Problem:    Changing the sort order in an explorer window for an empty
	    directory produces error messages. (Doug Kearns)
Solution:   When an invalid range is used for a function that is not going to
	    be executed, skip over the arguments anyway.
Files:	    src/eval.c

Patch 6.2.274
Problem:    ":print" skips empty lines when 'list' is set and there is no
	    "eol" in 'listchars'. (Yakov Lerner)
Solution:   Skip outputting a space for an empty line only when 'list' is set
	    and the end-of-line character is not empty.
Files:	    src/message.c

Patch 6.2.275 (extra, after 6.2.267)
Problem:    Warning for uninitialized variable when using gcc.
Solution:   Initialize "acLen" to zero. (Bill McCarthy)
Files:	    src/gui_w32.c

Patch 6.2.276
Problem:    ":echo X()" does not put a line break between the message that X()
	    displays and the text that X() returns. (Yakov Lerner)
Solution:   Invoke msg_start() after evaluating the argument.
Files:	    src/eval.c

Patch 6.2.277
Problem:    Vim crashes when a ":runtime ftplugin/ada.vim" causes a recursive
	    loop. (Robert Nowotniak)
Solution:   Restore "msg_list" before returning from do_cmdline().
Files:	    src/ex_docmd.c

Patch 6.2.278
Problem:    Using "much" instead of "many".
Solution:   Correct the error message.
Files:	    src/eval.c

Patch 6.2.279
Problem:    There is no default choice for a confirm() dialog, now that it is
	    possible not to have a default choice.
Solution:   Make the first choice the default choice.
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.2.280
Problem:    "do" and ":diffget" don't work in the first line and the last line
	    of a buffer. (Aron Griffis)
Solution:   Find a difference above the first line and below the last line.
	    Also fix a few display updating bugs.
Files:	    src/diff.c, src/fold.c, src/move.c

Patch 6.2.281
Problem:    PostScript printing doesn't work on Mac OS X 10.3.2.
Solution:   Adjust the header file. (Mike Williams)
Files:	    runtime/print/prolog.ps

Patch 6.2.282
Problem:    When using CTRL-O to go back to a help file, it becomes listed.
	    (Andrew Nesbit)
	    Using ":tag" or ":tjump" in a help file doesn't keep the help file
	    settings (e.g. for 'iskeyword').
Solution:   Don't mark a buffer as listed when its help flag is set.  Put all
	    the option settings for a help buffer together in do_ecmd().
Files:	    src/ex_cmds.c

Patch 6.2.283
Problem:    The "local additions" in help.txt are used without conversion,
	    causing latin1 characters showing up wrong when 'enc' is utf-8.
	    (Antoine J. Mechelynck)
Solution:   Convert the text to 'encoding'.
Files:	    src/ex_cmds.c

Patch 6.2.284
Problem:    Listing a function puts "endfunction" in the message history.
	    Typing "q" at the more prompt isn't handled correctly when listing
	    variables and functions.  (Hara Krishna Dara)
Solution:   Don't use msg() for "endfunction".  Check "got_int" regularly.
Files:	    src/eval.c

Patch 6.2.285
Problem:    GUI: In a single wrapped line that fills the window, "gj" in the
	    last screen line leaves the cursor behind. (Ivan Tarasov)
Solution:   Undraw the cursor before scrolling the text up.
Files:	    src/gui.c

Patch 6.2.286
Problem:    When trying to rename a file and it doesn't exist, the destination
	    file is deleted anyway. (Luc Deux)
Solution:   Don't delete the destination when the source doesn't exist. (Taro
	    Muraoka)
Files:	    src/fileio.c

Patch 6.2.287 (after 6.2.264)
Problem:    Duplicate lines are added to the viminfo file.
Solution:   Compare with existing entries without an offset.  Also fixes
	    reading very long history lines from viminfo.
Files:	    src/ex_getln.c

Patch 6.2.288 (extra)
Problem:    Mac: An external program can't be interrupted.
Solution:   Don't use the 'c' key for backspace. (Eckehard Berns)
Files:	    src/gui_mac.c

Patch 6.2.289
Problem:    Compiling the Tcl interface with thread support causes ":make" to
	    fail.  (Juergen Salk)
Solution:   Use $TCL_DEFS from the Tcl config script to obtain the required
	    compile flags for using the thread library.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.290 (extra)
Problem:    Mac: The mousewheel doesn't work.
Solution:   Add mousewheel support.  Also fix updating the thumb after a drag
	    and then using another way to scroll.  (Eckehard Berns)
Files:	    src/gui_mac.c

Patch 6.2.291 (extra)
Problem:    Mac: the plus button and close button don't do anything.
Solution:   Make the plus button maximize the window and the close button
	    close Vim. (Eckehard Berns)
Files:	    src/gui.c, src/gui_mac.c

Patch 6.2.292
Problem:    Motif: When removing GUI arguments from argv[] a "ps -ef" shows
	    the last argument repeated.
Solution:   Set argv[argc] to NULL. (Michael Jarvis)
Files:	    src/gui_x11.c

Patch 6.2.293 (after 6.2.255)
Problem:    GTK: A new item in a menu is put before the tearoff item.
Solution:   Do increment the menu item index for non-popup menu items.
Files:	    src/gui_gtk.c

Patch 6.2.294 (extra)
Problem:    Mac: Cannot use modifiers with Space, Tab, Enter and Escape.
Solution:   Handle all modifiers for these keys.  (Eckehard Berns)
Files:	    src/gui_mac.c

Patch 6.2.295
Problem:    When in debug mode, receiving a message from a remote client
	    causes a crash.  Evaluating an expression causes Vim to wait for
	    "cont" to be typed, without a prompt.  (Hari Krishna Dara)
Solution:   Disable debugging when evaluating an expression for a client.
	    (Michael Geddes)  Don't try reading into the typeahead buffer when
	    it may have been filled in another way.
Files:	    src/ex_getln.c, src/getchar.c, src/if_xcmdsrv.c, src/main.c,
	    src/misc1.c, src/proto/getchar.pro, src/proto/main.pro,
	    src/proto/os_unix.pro, src/proto/ui.pro, src/structs.h,
	    src/os_unix.c, src/ui.c

Patch 6.2.296 (extra)
Problem:    Same as 6.2.295.
Solution:   Extra files for patch 6.2.295.
Files:	    src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_win32.c,
	    src/proto/os_amiga.pro, src/proto/os_msdos.pro,
	    src/proto/os_riscos.pro, src/proto/os_win32.pro

Patch 6.2.297 (after 6.2.232)
Problem:    Cannot invoke Python commands recursively.
Solution:   With Python 2.3 and later use the available mechanisms to invoke
	    Python recursively. (Matthew Mueller)
Files:	    src/if_python.c

Patch 6.2.298
Problem:    A change always sets the '. mark and an insert always sets the '^
	    mark, even when this is not wanted.
	    Cannot go back to the position of older changes without undoing
	    those changes.
Solution:   Add the ":keepjumps" command modifier.
	    Add the "g," and "g;" commands.
Files:	    runtime/doc/motion.txt, src/ex_cmds.h, src/ex_docmd.c, src/edit.c,
	    src/mark.c, src/misc1.c, src/normal.c, src/proto/mark.pro,
	    src/structs.h, src/undo.c

Patch 6.2.299
Problem:    Can only use one language for help files.
Solution:   Add the 'helplang' option to select the preferred language(s).
	    Make ":helptags" generate tags files for all languages.
Files:	    runtime/doc/options.txt, runtime/doc/various.txt, src/Makefile,
	    src/ex_cmds.c, src/ex_cmds2.c, src/ex_cmds.h, src/ex_getln.c,
	    src/normal.c, src/option.c, src/option.h, src/proto/ex_cmds.pro,
	    src/proto/ex_cmds2.pro, src/proto/option.pro, src/structs.h,
	    src/tag.c, src/vim.h

Patch 6.2.300 (after 6.2.297)
Problem:    Cannot build Python interface with Python 2.2 or earlier.
Solution:   Add a semicolon.
Files:	    src/if_python.c

Patch 6.2.301
Problem:    The "select all" item from the popup menu doesn't work for Select
	    mode.
Solution:   Use the same commands as for the "Edit.select all" menu.
	    (Benji Fisher)
Files:	    runtime/menu.vim

Patch 6.2.302
Problem:    Using "CTRL-O ." in Insert mode doesn't work properly. (Benji
	    Fisher)
Solution:   Restore "restart_edit" after an insert command that was not typed.
	    Avoid waiting with displaying the mode when there is no text to be
	    overwritten.
	    Fix that "CTRL-O ." sometimes doesn't put the cursor back after
	    the end-of-line.  Only reset the flag that CTRL-O was used past
	    the end of the line when restarting editing.  Update "o_lnum"
	    number when inserting text and "o_eol" is set.
Files:	    src/edit.c, src/normal.c

Patch 6.2.303
Problem:    Cannot use Unicode digraphs while 'encoding' is not Unicode.
Solution:   Convert the character from Unicode to 'encoding' when needed.
	    Use the Unicode digraphs for the Macintosh. (Eckehard Berns)
Files:	    src/digraph.c

Patch 6.2.304 (extra, after 6.2.256)
Problem:    Mac: No proper support for 'encoding'.  Conversion without iconv()
	    is not possible.
Solution:   Convert input from 'termencoding' to 'encoding'.  Add
	    mac_string_convert().  Convert text for the clipboard when needed.
	    (Eckehard Berns)
Files:	    src/gui_mac.c, src/mbyte.c, src/structs.h, src/vim.h

Patch 6.2.305 (after 6.2.300)
Problem:    Win32: Cannot build Python interface with Python 2.3. (Ajit
	    Thakkar)
Solution:   Add two functions to the dynamic loading feature.
Files:	    src/if_python.c

Patch 6.2.306 (extra)
Problem:    Win32: Building console version with BCC 5.5 gives a warning for
	    get_cmd_args() prototype missing.  (Ajit Thakkar)
Solution:   Don't build os_w32exe.c for the console version.
Files:	    src/Make_bc5.mak

Patch 6.2.307 (after 6.2.299)
Problem:    Installing help files fails.
Solution:   Expand wildcards for translated help files separately.
Files:	    src/Makefile

Patch 6.2.308
Problem:    Not all systems have "whoami", resulting in an empty user name.
Solution:   Use "logname" when possible, "whoami" otherwise.  (David Boyce)
Files:	    src/Makefile

Patch 6.2.309
Problem:    "3grx" waits for two ESC to be typed.  (Jens Paulus)
Solution:   Append the ESC to the stuff buffer when redoing the "gr" insert.
Files:	    src/edit.c

Patch 6.2.310
Problem:    When setting 'undolevels' to -1, making a change and setting
	    'undolevels' to a positive value an "undo list corrupt" error
	    occurs. (Madoka Machitani)
Solution:   Sync undo before changing 'undolevels'.
Files:	    src/option.c

Patch 6.2.311 (after 6.2.298)
Problem:    When making several changes in one line the changelist grows
	    quickly.  There is no error message for reaching the end of the
	    changelist.  Reading changelist marks from viminfo doesn't work
	    properly.
Solution:   Only make a new entry in the changelist when making a change in
	    another line or 'textwidth' columns away.  Add E662, E663 and E664
	    error messages.  Put a changelist mark from viminfo one position
	    before the end.
Files:	    runtime/doc/motion.txt, src/mark.c, src/misc1.c, src/normal.c

Patch 6.2.312 (after 6.2.299)
Problem:    "make install" clears the screen when installing the docs.
Solution:   Execute ":helptags" in silent mode.
Files:	    runtime/doc/Makefile

Patch 6.2.313
Problem:    When opening folds in a diff window, other diff windows no longer
	    show the same text.
Solution:   Sync the folds in diff windows.
Files:	    src/diff.c, src/fold.c, src/move.c, src/proto/diff.pro,
	    src/proto/move.pro

Patch 6.2.314
Problem:    When 'virtualedit' is set "rx" may cause a crash with a blockwise
	    selection and using "$". (Moritz Orbach)
Solution:   Don't try replacing chars in a line that has no characters in the
	    block.
Files:	    src/ops.c

Patch 6.2.315
Problem:    Using CTRL-C in a Visual mode mapping while 'insertmode' is set
	    stops Vim from returning to Insert mode.
Solution:   Don't reset "restart_edit" when a CTRL-C is found and 'insertmode'
	    is set.
Files:	    src/normal.c

Patch 6.2.316 (after 6.2.312)
Problem:    "make install" tries connecting to the X server when installing
	    the docs. (Stephen Thomas)
Solution:   Add the "-X" argument.
Files:	    runtime/doc/Makefile

Patch 6.2.317 (after 6.2.313)
Problem:    When using "zi" in a diff window, other diff windows are not
	    adjusted. (Richard Curnow)
Solution:   Distribute a change in 'foldenable' to other diff windows.
Files:	    src/normal.c

Patch 6.2.318
Problem:    When compiling with _THREAD_SAFE external commands don't echo
	    typed characters.
Solution:   Don't set the terminal mode to TMODE_SLEEP when it's already at
	    TMODE_COOK.
Files:	    src/os_unix.c

Patch 6.2.319 (extra)
Problem:    Building gvimext.dll with Mingw doesn't work properly.
Solution:   Use gcc instead of dllwrap.  Use long option names. (Alejandro
	    Lopez-Valencia)
Files:	    src/GvimExt/Make_ming.mak

Patch 6.2.320
Problem:    Win32: Adding and removing the menubar resizes the Vim window.
	    (Jonathon Merz)
Solution:   Don't let a resize event change 'lines' unexpectedly.
Files:	    src/gui.c

Patch 6.2.321
Problem:    When using modeless selection, wrapping lines are not recognized,
	    a line break is always inserted.
Solution:   Add LineWraps[] to remember whether a line wrapped or not.
Files:	    src/globals.h, src/screen.c, src/ui.c

Patch 6.2.322
Problem:    With 'showcmd' set, after typing "dd" the next "d" may not be
	    displayed. (Jens Paulus)
Solution:   Redraw the command line after updating the screen, scrolling may
	    have set "clear_cmdline".
Files:	    src/screen.c

Patch 6.2.323
Problem:    Win32: expanding "~/file" in an autocommand pattern results in
	    backslashes, while this pattern should only have forward slashes.
Solution:   Make expanding environment variables respect 'shellslash' and set
	    p_ssl when expanding the autocommand pattern.
Files:	    src/fileio.c, src/misc1.c, src/proto/fileio.pro

Patch 6.2.324 (extra)
Problem:    Win32: when "vimrun.exe" has a path with white space, such as
	    "Program Files", executing external commands may fail.
Solution:   Put double quotes around the path to "vimrun".
Files:	    src/os_win32.c

Patch 6.2.325
Problem:    When $HOME includes a space, doing ":set tags=~/tags" doesn't
	    work, the space is used to separate file names.  (Brett Stahlman)
Solution:   Escape the space with a backslash.
Files:	    src/option.c

Patch 6.2.326
Problem:    ":windo set syntax=foo" doesn't work.  (Tim Chase)
Solution:   Don't change 'eventignore' for ":windo".
Files:	    src/ex_cmds2.c

Patch 6.2.327
Problem:    When formatting text all marks in the formatted lines are lost.
	    A word is not joined to a previous line when this would be
	    possible.  (Mikolaj Machowski)
Solution:   Try to keep marks in the same position as much as possible.
	    Also keep mark positions when joining lines.
	    Start auto-formatting in the previous line when appropriate.
	    Add the "gw" operator: Like "gq" but keep the cursor where it is.
Files:	    runtime/doc/change.txt, src/edit.c, src/globals.h, src/mark.c,
	    src/misc1.c, src/normal.c, src/ops.c, src/proto/edit.pro,
	    src/proto/mark.pro, src/proto/ops.pro, src/structs.h, src/vim.h

Patch 6.2.328
Problem:    XIM with GTK: It is hard to understand what XIM is doing.
Solution:   Add xim_log() to log XIM events and help with debugging.
Files:	    src/mbyte.c

Patch 6.2.329
Problem:    ":=" does not work Vi compatible. (Antony Scriven)
Solution:   Print the last line number instead of the current line.  Don't
	    print "line".
Files:	    src/ex_cmds.h, src/ex_docmd.c

Patch 6.2.330 (extra, after 6.2.267)
Problem:    Win32: Crash when tearing off a menu.
Solution:   Terminate a string with a NUL. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.2.331 (after 6.2.327)
Problem:    "gwap" leaves cursor in the wrong line.
Solution:   Remember the cursor position before finding the ends of the
	    paragraph.
Files:	    src/normal.c, src/ops.c, src/structs.h

Patch 6.2.332 (extra)
Problem:    Amiga: Compile error for string array. Compiling the Amiga GUI
	    doesn't work.
Solution:   Use a char pointer instead.  Move including "gui_amiga.h" to after
	    including "vim.h".  Add a semicolon. (Ali Akcaagac)
Files:	    src/gui_amiga.c, src/os_amiga.c

Patch 6.2.333 (extra)
Problem:    Win32: printing doesn't work with specified font charset.
Solution:   Use the specified font charset. (Mike Williams)
Files:	    src/os_mswin.c

Patch 6.2.334 (extra, after 6.2.296)
Problem:    Win32: evaluating client expression in debug mode requires typing
	    "cont".
Solution:   Use eval_client_expr_to_string().
Files:	    src/os_mswin.c

Patch 6.2.335
Problem:    The ":sign" command cannot be followed by another command.
Solution:   Add TRLBAR to the command flags.
Files:	    src/ex_cmds.h

Patch 6.2.336 (after 6.2.327)
Problem:    Mixup of items in an expression.
Solution:   Move "== NUL" to the right spot.
Files:	    src/edit.c

Patch 6.2.337 (extra, after 6.2.319)
Problem:    Building gvimext.dll with Mingw doesn't work properly.
Solution:   Fix white space and other details. (Alejandro Lopez-Valencia)
Files:	    src/GvimExt/Make_ming.mak

Patch 6.2.338 (after 6.2.331)
Problem:    When undoing "gwap" the cursor is always put at the start of the
	    paragraph.  When undoing auto-formatting the cursor may be above
	    the change.
Solution:   Try to move the cursor back to where it was or to the first line
	    that actually changed.
Files:	    src/normal.c, src/ops.c, src/undo.c

Patch 6.2.339
Problem:    Crash when using many different highlight groups and a User
	    highlight group.  (Juergen Kraemer)
Solution:   Do not use the sg_name_u pointer when it is NULL.  Also simplify
	    use of the highlight group table.
Files:	    src/syntax.c

Patch 6.2.340
Problem:    ":reg" doesn't show the actual contents of the clipboard if it was
	    filled outside of Vim. (Stuart MacDonald)
Solution:   Obtain the clipboard contents before displaying it.
Files:	    src/ops.c

Patch 6.2.341 (extra)
Problem:    Win32: When the path to diff.exe contains a space and using the
	    vimrc generated by the install program, diff mode does not work.
Solution:   Put the first double quote just before the space instead of before
	    the path.
Files:	    src/dosinst.c

Patch 6.2.342 (extra)
Problem:    Win32: macros are not always used as expected.
Solution:   Define WINVER to 0x0400 instead of 0x400. (Alejandro
	    Lopez-Valencia)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_mvc.mak

Patch 6.2.343
Problem:    Title doesn't work with some window managers.  X11: Setting the
	    text property for the window title is hard coded.
Solution:   Use STRING format when possible.  Use the UTF-8 function when
	    it's available and 'encoding' is utf-8. Use
	    XStringListToTextProperty().  Do the same for the icon name.
	    (David Harrison)
Files:	    src/os_unix.c

Patch 6.2.344 (extra, after 6.2.337)
Problem:    Cannot build gvimext.dll with MingW on Linux.
Solution:   Add support for cross compiling. (Ronald Hoellwarth)
Files:	    src/GvimExt/Make_ming.mak

Patch 6.2.345 (extra)
Problem:    Win32: Copy/paste between two Vims fails if 'encoding' is not set
	    properly or there are illegal bytes.
Solution:   Use a raw byte format.  Always set it when copying.  When pasting
	    use the raw format if 'encoding' is the same.
Files:	    src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h

Patch 6.2.346
Problem:    Win32 console: After using "chcp" Vim does not detect the
	    different codepage.
Solution:   Use GetConsoleCP() and when it is different from GetACP() set
	    'termencoding'.
Files:	    src/option.c

Patch 6.2.347 (extra)
Problem:    Win32: XP theme support is missing.
Solution:   Add a manifest and refer to it from the resource file.  (Michael
	    Wookey)
Files:	    Makefile, src/gvim.exe.mnf, src/vim.rc

Patch 6.2.348
Problem:    Win32: "vim c:\dir\(test)" doesn't work, because the 'isfname'
	    default value doesn't contain parenthesis.
Solution:   Temporarily add '(' and ')' to 'isfname' when expanding file name
	    arguments.
Files:	    src/main.c

Patch 6.2.349
Problem:    Finding a match using 'matchpairs' may cause a crash.
	    'matchpairs' is not used for 'showmatch'.
Solution:   Don't look past the NUL in 'matchpairs'.  Use 'matchpairs' for
	    'showmatch'. (Dave Olszewkski)
Files:	    src/misc1.c, src/normal.c, src/proto/search.pro, src/search.c

Patch 6.2.350
Problem:    Not enough info about startup timing.
Solution:   Add a few more TIME_MSG() calls.
Files:	    src/main.c

Patch 6.2.351
Problem:    Win32: $HOME may be set to %USERPROFILE%.
Solution:   Expand %VAR% at the start of $HOME.
Files:	    src/misc1.c

Patch 6.2.352 (after 6.2.335)
Problem:    ":sign texthl=||" does not work.
Solution:   Remove the check for a following command.  Give an error for extra
	    arguments after "buff=1".
Files:	    src/ex_cmds.c, src/ex_cmds.h

Patch 6.2.353 (extra)
Problem:    Win32: Supported server name length is limited. (Paul Bossi)
Solution:   Use MAX_PATH instead of 25.
Files:	    src/os_mswin.c

Patch 6.2.354 (extra)
Problem:    Win32: When the mouse pointer is on a tear-off menu it is hidden
	    when typing but is not redisplayed when moved. (Markx Hackmann)
Solution:   Handle the pointer move event for the tear-off menu window.
Files:	    src/gui_w32.c

Patch 6.2.355 (after 6.2.303)
Problem:    When 'encoding' is a double-byte encoding different from the
	    current locale, the width of characters is not correct.
	    Possible failure and memory leak when using iconv, Unicode
	    digraphs and 'encoding' is not "utf-8".
Solution:   Use iconv() to discover the actual width of characters.
	    Add the "vc_fail" field to vimconv_T.
	    When converting a digraph, init the conversion type to NONE and
	    cleanup afterwards.
Files:	    src/digraph.c, src/mbyte.c, src/structs.h

Patch 6.2.356
Problem:    When using a double-byte 'encoding' and 'selection' is
	    "exclusive", "vy" only yanks the first byte of a double-byte
	    character.  (Xiangjiang Ma)
Solution:   Correct the column in unadjust_for_sel() to position on the first
	    byte, always include the trailing byte of the selected text.
Files:	    src/normal.c

Patch 6.2.357 (after 6.2.321)
Problem:    Memory leak when resizing the Vim window.
Solution:   Free the LineWraps array.
Files:	    src/screen.c

Patch 6.2.358 (after 6.2.299)
Problem:    Memory leak when using ":help" and the language doesn't match.
Solution:   Free the array with matching tags.
Files:	    src/ex_cmds.c

Patch 6.2.359 (after 6.2.352)
Problem:    Compiler warning for long to int type cast.
Solution:   Add explicit type cast.
Files:	    src/ex_cmds.c

Patch 6.2.360
Problem:    "100|" in an empty line results in a ruler "1,0-100". (Pavol
	    Juhas)
Solution:   Recompute w_virtcol if the target column was not reached.
Files:	    src/misc2.c

Patch 6.2.361 (extra)
Problem:    Win32: Run gvim, ":set go-=m", use Alt-Tab, keep Alt pressed while
	    pressing Esc, then release Alt: Cursor disappears and typing a key
	    causes a beep. (Hari Krishna Dara)
Solution:   Don't ignore the WM_SYSKEYUP event when the menu is disabled.
Files:	    src/gui_w32.c

Patch 6.2.362 (extra, after 6.2.347)
Problem:    Win32: The manifest causes gvim not to work. (Dave Roberts)
Solution:   Change "x86" to "X86". (Serge Pirotte)
Files:	    src/gvim.exe.mnf

Patch 6.2.363
Problem:    In an empty file with 'showmode' off, "i" doesn't change the ruler
	    from "0-1" to "1".  Typing "x<BS>" does show "1", but then <Esc>
	    doesn't make it "0-1" again.  Same problem for ruler in
	    statusline.  (Andrew Pimlott)
Solution:   Remember the "empty line" flag with Insert mode and'ed to it.
Files:	    src/screen.c

Patch 6.2.364
Problem:    HTML version of the documentation doesn't mention the encoding,
	    which is a problem for mbyte.txt.
Solution:   Adjust the awk script. (Ilya Sher)
Files:	    runtime/doc/makehtml.awk

Patch 6.2.365
Problem:    The configure checks for Perl and Python may add compile and link
	    arguments that break building Vim.
Solution:   Do a sanity check: try building with the arguments.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.366
Problem:    When the GUI can't start because no valid font is found, there is
	    no error message. (Ugen)
Solution:   Add an error message.
Files:	    src/gui.c

Patch 6.2.367
Problem:    Building the help tags file while installing may fail if there is
	    another Vim in $PATH.
Solution:   Specify the just installed Vim executable. (Gordon Prieur)
Files:	    src/Makefile

Patch 6.2.368
Problem:    When 'autochdir' is set, closing a window doesn't change to the
	    directory of the new current window. (Salman Halim)
Solution:   Handle 'autochdir' always when a window becomes the current one.
Files:	    src/window.c

Patch 6.2.369
Problem:    Various memory leaks: when using globpath(), when searching for
	    help tags files, when defining a function inside a function, when
	    giving an error message through an exception, for the final "."
	    line in ":append", in expression "cond ? a : b" that fails and for
	    missing ")" in an expression.  Using NULL pointer when adding
	    first user command and for pointer computations with regexp.
	    (tests by Dominique Pelle)
Solution:   Fix the leaks by freeing the allocated memory.  Don't use the
	    array of user commands when there are no entries.  Use a macro
	    instead of a function call for saving and restoring regexp states.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
	    src/misc2.c, src/regexp.c, src/screen.c, src/tag.c

Patch 6.2.370 (extra, after6.2.341)
Problem:    Win32: When the path to diff.exe contains a space and using the
	    vimrc generated by the install program, diff mode may not work.
	    (Alejandro Lopez-Valencia)
Solution:   Do not use double quotes for arguments that do not have a space.
Files:	    src/dosinst.c

Patch 6.2.371
Problem:    When 'virtualedit' is set and there is a Tab before the next "x",
	    "dtx" does not delete the whole Tab. (Ken Hashishi)
Solution:   Move the cursor to the last position of the Tab.  Also for
	    "df<Tab>".
Files:	    src/normal.c

Patch 6.2.372
Problem:    When using balloon evaluation, no value is displayed for members
	    of structures and items of an array.
Solution:   Include "->", "." and "[*]" in the expression.
Files:	    src/gui_beval.c, src/normal.c, src/vim.h

Patch 6.2.373
Problem:    When 'winminheight' is zero and a window is reduced to zero
	    height, the ruler always says "Top" instead of the cursor
	    position. (Antoine J. Mechelynck)
Solution:   Don't recompute w_topline for a zero-height window.
Files:	    src/window.c

Patch 6.2.374
Problem:    ":echo "hello" | silent normal n" removes the "hello" message.
	    (Servatius Brandt)
Solution:   Don't echo the search string when ":silent" was used.  Also don't
	    show the mode.  In general: don't clear to the end of the screen.
Files:	    src/gui.c, src/message.c, src/os_unix.c, src/proto/message.pro,
	    src/screen.c, src/search.c, src/window.c

Patch 6.2.375
Problem:    When changing 'guioptions' the hit-enter prompt may be below the
	    end of the Vim window.
Solution:   Call screen_alloc() before showing the prompt.
Files:	    src/message.c

Patch 6.2.376
Problem:    Win32: Ruby interface cannot be dynamically linked with Ruby 1.6.
Solution:   Add #ifdefs around use of rb_w32_snprintf().  (Benoît Cerrina)
Files:	    src/if_ruby.c

Patch 6.2.377 (after 6.2.372)
Problem:    Compiler warnings for signed/unsigned compare. (Michael Wookey)
Solution:   Add type cast.
Files:	    src/normal.c

Patch 6.2.378 (extra, after 6.2.118)
Problem:    Mac: cannot build with Project Builder.
Solution:   Add remove_tail_with_ext() to locate and remove the "build"
	    directory from the runtime path.  Include os_unix.c when needed.
	    (Dany St Amant)
Files:	    src/misc1.c, src/os_macosx.c, src/vim.h

Patch 6.2.379
Problem:    Using ":mkvimrc" in the ":options" window sets 'bufhidden' to
	    "delete". (Michael Naumann)
Solution:   Do not add buffer-specific option values to a global vimrc file.
Files:	    src/option.c

Patch 6.2.380 (extra)
Problem:    DOS: "make test" fails when running it again.  Can't "make test"
	    with Borland C.
Solution:   Make sure ".out" files are deleted when they get in the way.  Add
	    a "test" target to the Borland C Makefile.
Files:	    src/Make_bc5.mak, src/testdir/Make_dos.mak

Patch 6.2.381
Problem:    Setting 'fileencoding' to a comma separated list (confusing it
	    with 'fileencodings') does not result in an error message.
	    Setting 'fileencoding' in an empty file marks it as modified.
	    There is no "+" in the title after setting 'fileencoding'.
Solution:   Check for a comma in 'fileencoding'.  Only consider a non-empty
	    file modified by changing 'fileencoding'.  Update the title after
	    changing 'fileencoding'.
Files:	    src/option.c

Patch 6.2.382
Problem:    Running "make test" puts marks from test files in viminfo.
Solution:   Specify a different viminfo file to use.
Files:	    src/testdir/test15.in, src/testdir/test49.in

Patch 6.2.383
Problem:    ":hi foo term='bla" crashes Vim. (Antony Scriven)
Solution:   Check that the closing ' is there.
Files:	    src/syntax.c

Patch 6.2.384
Problem:    ":menu a.&b" ":unmenu a.b" only works if "&b" isn't translated.
Solution:   Also compare the names without '&' characters.
Files:	    src/menu.c

Patch 6.2.385  (extra)
Problem:    Win32: forward_slash() and trash_input_buf() are undefined when
	    compiling with small features. (Ajit Thakkar)
Solution:   Change the #ifdefs for forward_slash().  Don't call
	    trash_input_buf() if the input buffer isn't used.
Files:	    src/fileio.c, src/os_win32.c

Patch 6.2.386
Problem:    Wasting time trying to read marks from the viminfo file for a
	    buffer without a name.
Solution:   Skip reading marks when the buffer has no name.
Files:	    src/fileio.c

Patch 6.2.387
Problem:    There is no highlighting of translated items in help files.
Solution:   Search for a "help_ab.vim" syntax file when the help file is
	    called "*.abx".  Also improve the help highlighting a bit.
Files:	    runtime/syntax/help.vim

Patch 6.2.388
Problem:    GTK: When displaying some double-width characters they are drawn
	    as single-width, because of conversion to UTF-8.
Solution:   Check the width that GTK uses and add a space if it's one instead
	    of two.
Files:	    src/gui_gtk_x11.c

Patch 6.2.389
Problem:    When working over a slow connection, it's very annoying that the
	    last line is partly drawn and then cleared for every change.
Solution:   Don't redraw the bottom line if no rows were inserted or deleted.
	    Don't draw the line if we know "@" lines will be used.
Files:	    src/screen.c

Patch 6.2.390
Problem:    Using "r*" in Visual mode on multi-byte characters only replaces
	    every other character. (Tyson Roberts)
Solution:   Correct the cursor position after replacing each character.
Files:	    src/ops.c

Patch 6.2.391 (extra)
Problem:    The ":highlight" command is not tested.
Solution:   Add a test script for ":highlight".
Files:	    src/testdir/Makefile, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/test51.in,
	    src/testdir/test51.ok

Patch 6.2.392 (after 6.2.384)
Problem:    Unused variable.
Solution:   Remove "dlen".
Files:	    src/menu.c

Patch 6.2.393
Problem:    When using very long lines the viminfo file can become very big.
Solution:   Add the "s" flag to 'viminfo': skip registers with more than the
	    specified Kbyte of text.
Files:	    runtime/doc/options.txt, src/ops.c, src/option.c

Patch 6.2.394  (after 6.2.391)
Problem:    Test 51 fails on a terminal with 8 colors. (Tony Leneis)
Solution:   Use "DarkBlue" instead of "Blue" to avoid the "bold" attribute.
Files:	    src/testdir/test51.in

Patch 6.2.395
Problem:    When using ":tag" or ":pop" the previous matching tag is used.
	    But since the current file is different, the ordering of the tags
	    may change.
Solution:   Remember what the current buffer was for when re-using cur_match.
Files:	    src/edit.c, src/ex_cmds.c, src/proto/tag.pro, src/structs.h,
	    src/tag.c

Patch 6.2.396
Problem:    When CTRL-T jumps to another file and an autocommand moves the
	    cursor to the '" mark, don't end up on the right line.  (Michal
	    Malecki)
Solution:   Set the line number after loading the file.
Files:	    src/tag.c

Patch 6.2.397
Problem:    When using a double-byte 'encoding' mapping <M-x> doesn't work.
	    (Yasuhiro Matsumoto)
Solution:   Do not set the 8th bit of the character but use a modifier.
Files:	    src/gui_gtk_x11.c, src/gui_x11.c, src/misc2.c

Patch 6.2.398 (extra)
Problem:    Win32 console: no extra key modifiers are supported.
Solution:   Encode the modifiers into the input stream.  Also fix that special
	    keys are converted and stop working when 'tenc' is set.  Also fix
	    that when 'tenc' is initialized the input and output conversion is
	    not setup properly until 'enc' or 'tenc' is set.
Files:	    src/getchar.c, src/option.c, src/os_win32.c

Patch 6.2.399
Problem:    A ":set" command that fails still writes a message when it is
	    inside a try/catch block.
Solution:   Include all the text of the message in the error message.
Files:	    src/charset.c, src/option.c

Patch 6.2.400
Problem:    Can't compile if_xcmdsrv.c on HP-UX 11.0.
Solution:   Include header file poll.h. (Malte Neumann)
Files:	    src/if_xcmdsrv.c

Patch 6.2.401
Problem:    When opening a buffer that was previously opened, Vim does not
	    restore the cursor position if the first line starts with white
	    space.  (Gregory Margo)
Solution:   Don't skip restoring the cursor position if it is past the blanks
	    in the first line.
Files:	    src/buffer.c

Patch 6.2.402
Problem:    Mac: "make install" doesn't generate help tags. (Benji Fisher)
Solution:   Generate help tags before copying the runtime files.
Files:	    src/Makefile

Patch 6.2.403
Problem:    ":@y" checks stdin if there are more commands to execute.  This
	    fails if stdin is not connected, e.g., when starting the GUI from
	    KDE. (Ned Konz)
Solution:   Only check for a next command if there still is typeahead.
Files:	    src/ex_docmd.c

Patch 6.2.404
Problem:    Our own function to determine width of Unicode characters may get
	    outdated. (Markus Kuhn)
Solution:   Use wcwidth() when it is available.  Also use iswprint().
Files:	    src/auto/configure, src/configure.in, src/config.h.in, src/mbyte.c

Patch 6.2.405
Problem:    Cannot map zero without breaking the count before a command.
	    (Benji Fisher)
Solution:   Disable mapping zero when entering a count.
Files:	    src/getchar.c, src/globals.h, src/normal.c

Patch 6.2.406
Problem:    ":help \zs", ":help \@=" and similar don't find useful help.
Solution:   Prepend "/\" to the arguments to find the desired help tag.
Files:	    src/ex_cmds.c

Patch 6.2.407 (after 6.2.299)
Problem:    ":help \@<=" doesn't find help.
Solution:   Avoid that ":help \@<=" searches for the "<=" language.
Files:	    src/tag.c

Patch 6.2.408
Problem:    ":compiler" is not consistent: Sets local options and a global
	    variable. (Douglas Potts)  There is no error message when a
	    compiler is not supported.
Solution:   Use ":compiler!" to set a compiler globally, otherwise it's local
	    to the buffer and "b:current_compiler" is used.  Give an error
	    when no compiler script could be found.
	    Note: updated compiler plugins can be found at
	    ftp://ftp.vim.org/pub/vim/runtime/compiler/
Files:	    runtime/compiler/msvc.vim, runtime/doc/quickfix.txt, src/eval.c,
	    src/ex_cmds2.c

Patch 6.2.409
Problem:    The cursor ends up in the last column instead of after the line
	    when doing "i//<Esc>o" with 'indentexpr' set to "cindent(v:lnum)".
	    (Toby Allsopp)
Solution:   Adjust the cursor as if in Insert mode.
Files:	    src/misc1.c

Patch 6.2.410 (after 6.2.389)
Problem:    In diff mode, when there are more filler lines than fit in the
	    window, they are not drawn.
Solution:   Check for filler lines when skipping to draw a line that doesn't
	    fit.
Files:	    src/screen.c

Patch 6.2.411
Problem:    A "\n" inside a string is not seen as a line break by the regular
	    expression matching. (Hari Krishna Dara)
Solution:   Add the vim_regexec_nl() function for strings where "\n" is to be
	    matched with a line break.
Files:	    src/eval.c, src/ex_eval.c, src/proto/regexp.c, src/regexp.c

Patch 6.2.412
Problem:    Ruby: "ruby << EOF" inside a function doesn't always work.  Also
	    for ":python", ":tcl" and ":perl".
Solution:   Check for "<< marker" and skip until "marker" before checking for
	    "endfunction".
Files:	    src/eval.c

Patch 6.2.413 (after 6.2.411)
Problem:    Missing prototype for vim_regexec_nl(). (Marcel Svitalsky)
Solution:   Now really include the prototype.
Files:	    src/proto/regexp.pro

Patch 6.2.414
Problem:    The function used for custom completion of user commands cannot
	    have <SID> to make it local. (Hari Krishna Dara)
Solution:   Pass the SID of the script where the user command was defined on
	    to the completion.  Also clean up #ifdefs.
Files:	    src/ex_docmd.c, src/eval.c, src/ex_getln.c, src/structs.h

Patch 6.2.415
Problem:    Vim may crash after a sequence of events that change the window
	    size.  The window layout assumes a larger window than is actually
	    available. (Servatius Brandt)
Solution:   Invoke win_new_shellsize() from screenalloc() instead of from
	    set_shellsize().
Files:	    src/screen.c, src/term.c

Patch 6.2.416
Problem:    Compiler warning for incompatible pointer.
Solution:   Remove the "&" in the call to poll(). (Xavier de Gaye)
Files:	    src/os_unix.c

Patch 6.2.417 (after 6.2.393)
Problem:    Many people forget that the '"' item in 'viminfo' needs to be
	    preceded with a backslash,
Solution:   Add '<' as an alias for the '"' item.
Files:	    runtime/doc/options.txt, src/ops.c, src/option.c

Patch 6.2.418
Problem:    Using ":nnoremap <F12> :echo "cheese" and ":cabbr cheese xxx":
	    when pressing <F12> still uses the abbreviation. (Hari Krishna)
Solution:   Also apply "noremap" to abbreviations.
Files:	    src/getchar.c

Patch 6.2.419 (extra)
Problem:    Win32: Cannot open the Vim window inside another application.
Solution:   Add the "-P" argument to specify the window title of the
	    application to run inside. (Zibo Zhao)
Files:	    runtime/doc/starting.txt, src/main.c, src/gui_w32.c,
	    src/gui_w48.c, src/if_ole.cpp, src/os_mswin.c,
	    src/proto/gui_w32.pro

Patch 6.2.420
Problem:    Cannot specify a file to be edited in binary mode without setting
	    the global value of the 'binary' option.
Solution:   Support ":edit ++bin file".
Files:	    runtime/doc/editing.txt, src/buffer.c, src/eval.c, src/ex_cmds.h,
	    src/ex_docmd.c, src/fileio.c, src/misc2.c

Patch 6.2.421
Problem:    Cannot set the '[ and '] mark, which may be necessary when an
	    autocommand simulates reading a file.
Solution:   Allow using "m[" and "m]".
Files:	    runtime/doc/motion.txt, src/mark.c

Patch 6.2.422
Problem:    In CTRL-X completion messages the "/" makes them less readable.
Solution:   Remove the slashes. (Antony Scriven)
Files:	    src/edit.c

Patch 6.2.423
Problem:    ":vertical wincmd ]" does not split vertically.
Solution:   Add "postponed_split_flags".
Files:	    src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/tag.c

Patch 6.2.424
Problem:    A BufEnter autocommand that sets an option stops 'mousefocus' from
	    working in Insert mode (Normal mode is OK). (Gregory Seidman)
Solution:   In the Insert mode loop invoke gui_mouse_correct() when needed.
Files:	    src/edit.c

Patch 6.2.425
Problem:    Vertical split and command line window: can only drag status line
	    above the cmdline window on the righthand side, not lefthand side.
Solution:   Check the status line row instead of the window pointer.
Files:	    src/ui.c

Patch 6.2.426
Problem:    A syntax region end match with a matchgroup that includes a line
	    break only highlights the last line with matchgroup. (Gary
	    Holloway)
Solution:   Also use the line number of the position where the region
	    highlighting ends.
Files:	    src/syntax.c

Patch 6.2.427 (extra)
Problem:    When pasting a lot of text in a multi-byte encoding, conversion
	    from 'termencoding' to 'encoding' may fail for some characters.
	    (Kuang-che Wu)
Solution:   When there is an incomplete byte sequence at the end of the read
	    text keep it for the next time.
Files:	    src/mbyte.c, src/os_amiga.c, src/os_mswin.c, src/proto/mbyte.pro,
	    src/proto/os_mswin.pro, src/ui.c

Patch 6.2.428
Problem:    The X11 clipboard supports the Vim selection for char/line/block
	    mode, but since the encoding is not included  can't copy/paste
	    between two Vims with a different 'encoding'.
Solution:   Add a new selection format that includes the 'encoding'.  Perform
	    conversion when necessary.
Files:	    src/gui_gtk_x11.c, src/ui.c, src/vim.h

Patch 6.2.429
Problem:    Unix: glob() doesn't work for a directory with a single quote in
	    the name. (Nazri Ramliy)
Solution:   When using the shell to expand, only put double quotes around
	    spaces and single quotes, not the whole thing.
Files:	    src/os_unix.c

Patch 6.2.430
Problem:    BOM at start of a vim script file is not recognized and causes an
	    error message.
Solution:   Detect the BOM and skip over it.  Also fix that after using
	    ":scriptencoding" the iconv() file descriptor was not closed
	    (memory leak).
Files:	    src/ex_cmds2.c

Patch 6.2.431
Problem:    When using the horizontal scrollbar, the scrolling is limited to
	    the length of the cursor line.
Solution:   Make the scroll limit depend on the longest visible line.  The
	    cursor is moved when necessary.  Including the 'h' flag in
	    'guioptions' disables this.
Files:	    runtime/doc/gui.txt, runtime/doc/options.txt, src/gui.c,
	    src/misc2.c, src/option.h

Patch 6.2.432 (after 6.2.430 and 6.2.431)
Problem:    Lint warnings.
Solution:   Add type casts.
Files:	    src/ex_cmds2.c, src/gui.c

Patch 6.2.433
Problem:    Translating "VISUAL" and "BLOCK" separately doesn't give a good
	    result. (Alejandro Lopez Valencia)
Solution:   Use a string for each combination.
Files:	    src/screen.c

Patch 6.2.434 (after 6.2.431)
Problem:    Compiler warning. (Salman Halim)
Solution:   Add type casts.
Files:	    src/gui.c

Patch 6.2.435
Problem:    When there are vertically split windows the minimal Vim window
	    height is computed wrong.
Solution:   Use frame_minheight() to correctly compute the minimal height.
Files:	    src/window.c

Patch 6.2.436
Problem:    Running the tests changes the user's viminfo file.
Solution:   In test 49 tell the extra Vim to use the test viminfo file.
Files:	    src/testdir/test49.vim

Patch 6.2.437
Problem:    ":mksession" always puts "set nocompatible" in the session file.
	    This changes option settings. (Ron Aaron)
Solution:   Add an "if" to only change 'compatible' when needed.
Files:	    src/ex_docmd.c

Patch 6.2.438
Problem:    When the 'v' flag is present in 'cpoptions', backspacing and then
	    typing text again: one character too much is overtyped before
	    inserting is done again.
Solution:   Set "dollar_vcol" to the right column.
Files:	    src/edit.c

Patch 6.2.439
Problem:    GTK 2: Changing 'lines' may cause a mismatch between the window
	    layout and the size of the window.
Solution:   Disable the hack with force_shell_resize_idle().
Files:	    src/gui_gtk_x11.c

Patch 6.2.440
Problem:    When 'lazyredraw' is set the window title is still updated.
	    The size of the Visual area and the ruler are displayed too often.
Solution:   Postpone redrawing the window title.  Only show the Visual area
	    size when waiting for a character.  Don't draw the ruler
	    unnecessary.
Files:	    src/buffer.c, src/normal.c, src/screen.c

Patch 6.2.441
Problem:    ":unabbreviate foo " doesn't work, because of the trailing space,
	    while an abbreviation with a trailing space is not possible. (Paul
	    Jolly)
Solution:   Accept a match with the lhs of an abbreviation without the
	    trailing space.
Files:	    src/getchar.c

Patch 6.2.442
Problem:    Cannot manipulate the command line from a function.
Solution:   Add getcmdline(), getcmdpos() and setcmdpos() functions and the
	    CTRL-\ e command.
Files:	    runtime/doc/cmdline.txt, runtime/doc/eval.txt, src/eval.c
	    src/ex_getln.c, src/ops.c, src/proto/ex_getln.pro,
	    src/proto/ops.pro

Patch 6.2.443
Problem:    With ":silent! echoerr something" you don't get the position of
	    the error.  emsg() only writes the message itself and returns.
Solution:   Also redirect the position of the error.
Files:	    src/message.c

Patch 6.2.444
Problem:    When adding the 'c' flag to a ":substitute" command it may replace
	    more times than without the 'c' flag.  Happens for a  match that
	    starts with "\ze" (Marcel Svitalsk) and when using "\@<=" (Klaus
	    Bosau).
Solution:   Correct "prev_matchcol" when replacing the line.  Don't replace
	    the line when the pattern uses look-behind matching.
Files:	    src/ex_cmds.c, src/proto/regexp.pro, src/regexp.c

Patch 6.2.445
Problem:    Copying vimtutor to /tmp/something is not secure, a symlink may
	    cause trouble.
Solution:   Create a directory and create the file in it.  Use "umask" to
	    create the directory with mode 700.  (Stefan Nordhausen)
Files:	    src/vimtutor

Patch 6.2.446 (after 6.2.404)
Problem:    Using library functions wcwidth() and iswprint() results in
	    display problems for Hebrew characters. (Ron Aaron)
Solution:   Disable the code to use the library functions, use our own.
Files:	    src/mbyte.c

Patch 6.2.447 (after 6.2.440)
Problem:    Now that the title is only updated when redrawing, it is no longer
	    possible to show it while executing a function. (Madoka Machitani)
Solution:   Make ":redraw" also update the title.
Files:	    src/ex_docmd.c

Patch 6.2.448 (after 6.2.427)
Problem:    Mac: conversion done when 'termencoding' differs from 'encoding'
	    fails when pasting a longer text.
Solution:   Check for an incomplete sequence at the end of the chunk to be
	    converted. (Eckehard Berns)
Files:	    src/mbyte.c

Patch 6.2.449 (after 6.2.431)
Problem:    Get error messages when switching files.
Solution:   Check for a valid line number when calculating the width of the
	    horizontal scrollbar. (Helmut Stiegler)
Files:	    src/gui.c

Patch 6.2.450
Problem:    "  #include" and "  #define" are not recognized with the default
	    option values for 'include' and 'defined'. (RG Kiran)
Solution:   Adjust the default values to allow white space before the #.
Files:	    runtime/doc/options.txt, src/option.c

Patch 6.2.451
Problem:    GTK: when using XIM there are various problems, including setting
	    'modified' and breaking undo at the wrong moment.
Solution:   Add "xim_changed_while_preediting", "preedit_end_col" and
	    im_is_preediting(). (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c, src/globals.h, src/gui_gtk.c, src/gui_gtk_x11.c,
	    src/mbyte.c, src/misc1.c, src/proto/mbyte.pro, src/screen.c,
	    src/undo.c

Patch 6.2.452
Problem:    In diff mode, when DiffAdd and DiffText highlight settings are
	    equal, an added line is highlighted with DiffChange. (Tom Schumm)
Solution:   Remember the diff highlight type instead of the attributes.
Files:	    src/screen.c

Patch 6.2.453
Problem:    ":s/foo\|\nbar/x/g" does not replace two times in "foo\nbar".
	    (Pavel Papushev)
Solution:   When the pattern can match a line break also try matching at the
	    NUL at the end of a line.
Files:	    src/ex_cmds.c, src/regexp.c

Patch 6.2.454
Problem:    ":let b:changedtick" doesn't work. (Alan Schmitt)  ":let
	    b:changedtick = 99" does not give an error message.
Solution:   Add code to recognize ":let b:changedtick".
Files:	    src/eval.c

Patch 6.2.455 (after 6.2.297)
Problem:    In Python commands the current locale changes how certain Python
	    functions work. (Eugene M. Minkovskii)
Solution:   Set the LC_NUMERIC locale to "C" while executing a Python command.
Files:	    src/if_python.c

Patch 6.2.456 (extra)
Problem:    Win32: Editing a file by its Unicode name (dropping it on Vim or
	    using the file selection dialog) doesn't work. (Yakov Lerner, Alex
	    Jakushev)
Solution:   Use wide character functions when file names are involved and
	    convert from/to 'encoding' where needed.
Files:	    src/gui_w48.c, src/macros.h, src/memfile.c, src/memline.c,
	    src/os_mswin.c, src/os_win32.c

Patch 6.2.457 (after 6.2.244)
Problem:    When 'encoding' is "utf-8" and writing text with chars above 0x80
	    in latin1, conversion is wrong every 8200 bytes. (Oyvind Holm)
Solution:   Correct the utf_ptr2len_check_len() function and fix the problem
	    of displaying 0xf7 in utfc_ptr2len_check_len().
Files:	    src/mbyte.c

Patch 6.2.458
Problem:    When 'virtualedit' is set "$" doesn't move to the end of an
	    unprintable character, causing "y$" not to include that character.
	    (Fred Ma)
Solution:   Set "coladd" to move the cursor to the end of the character.
Files:	    src/misc2.c

Patch 6.2.459 (after 6.2.454)
Problem:    Variable "b" cannot be written. (Salman Halim)
Solution:   Compare strings properly.
Files:	    src/eval.c

Patch 6.2.460 (extra, after 6.2.456)
Problem:    Compiler warnings for missing prototypes.
Solution:   Include the missing prototypes.
Files:	    src/proto/os_win32.pro

Patch 6.2.461
Problem:    After using a search command "x" starts putting single characters
	    in the numbered registers.
Solution:   Reset "use_reg_one" at the right moment.
Files:	    src/normal.c

Patch 6.2.462
Problem:    Finding a matching parenthesis does not correctly handle a
	    backslash in a trailing byte.
Solution:   Handle multi-byte characters correctly. (Taro Muraoka)
Files:	    src/search.c

Patch 6.2.463 (extra)
Problem:    Win32: An NTFS file system may contain files with extra info
	    streams.  The current method to copy them creates one and then
	    deletes it again.  (Peter Toennies)  Also, only three streams with
	    hard coded names are copied.
Solution:   Use BackupRead() to check which info streams the original file
	    contains and only copy these streams.
Files:	    src/os_win32.c

Patch 6.2.464 (extra, after 6.2.427)
Problem:    Amiga: Compilation error with gcc. (Ali Akcaagac)
Solution:   Move the #ifdef outside of Read().
Files:	    src/os_amiga.c

Patch 6.2.465
Problem:    When resizing the GUI window the window manager sometimes moves it
	    left of or above the screen. (Michael McCarty)
Solution:   Check the window position after resizing it and move it onto the
	    screen when it isn't.
Files:	    src/gui.c

Patch 6.2.466 (extra, after 6.2.456)
Problem:    Win32: Compiling with Borland C fails, and an un/signed warning.
Solution:   Redefine wcsicmp() to wcscmpi() and add type casts. (Yasuhiro
	    Matsumoto)
Files:	    src/os_win32.c

Patch 6.2.467 (extra, after 6.2.463)
Problem:    Win32: can't compile without multi-byte feature. (Ajit Thakkar)
Solution:   Add #ifdefs around the info stream code.
Files:	    src/os_win32.c

Patch 6.2.468
Problem:    Compiler warnings for shadowed variables. (Matthias Mohr)
Solution:   Delete superfluous variables and rename others.
Files:	    src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/if_cscope.c,
	    src/fold.c, src/option.c, src/os_unix.c, src/quickfix.c,
	    src/regexp.c

Patch 6.2.469 (extra, after 6.2.456)
Problem:    Win32: Can't create swap file when 'encoding' differs from the
	    active code page. (Kriton Kyrimis)
Solution:   In enc_to_ucs2() terminate the converted string with a NUL
Files:	    src/os_mswin.c

Patch 6.2.470
Problem:    The name returned by tempname() may be equal to the file used for
	    shell output when ignoring case.
Solution:   Skip 'O' and 'I' in tempname().
Files:	    src/eval.c

Patch 6.2.471
Problem:    "-L/usr/lib" is used in the link command, even though it's
	    supposed to be filtered out. "-lw" and "-ldl" are not
	    automatically added when needed for "-lXmu". (Antonio Colombo)
Solution:   Check for a space after the argument instead of before.  Also
	    remove "-R/usr/lib" if it's there.  Check for "-lw" and "-ldl"
	    before trying "-lXmu".
Files:	    src/auto/configure, src/configure.in, src/link.sh

Patch 6.2.472
Problem:    When using a FileChangedShell autocommand that changes the current
	    buffer, a buffer exists that can't be wiped out.
	    Also, Vim sometimes crashes when executing an external command
	    that changes the buffer and a FileChangedShell autocommand is
	    used.  (Hari Krishna Dara)
	    Users are confused by the warning for a file being changed outside
	    of Vim.
Solution:   Avoid that the window counter for a buffer is incremented twice.
	    Avoid that buf_check_timestamp() is used recursively.
	    Add a hint to look in the help for more info.
Files:	    src/ex_cmds.c, src/fileio.c

Patch 6.2.473
Problem:    Using CTRL-] in a help buffer without a name causes a crash.
Solution:   Check for name to be present before using it. (Taro Muraoka)
Files:	    src/tag.c

Patch 6.2.474 (extra, after 6.2.456)
Problem:    When Vim is starting up conversion is done unnecessarily.  Failure
	    to find the runtime files on Windows 98. (Randall W. Morris)
Solution:   Init enc_codepage negative, only use it when not negative.
	    Don't use GetFileAttributesW() on Windows 98 or earlier.
Files:	    src/globals.h, src/gui_w32.c, src/gui_w48.c, src/os_mswin.c,
	    src/os_win32.c

Patch 6.2.475
Problem:    Commands after "perl <<EOF" are parsed as Vim commands when they
	    are not executed.
Solution:   Properly skip over the perl commands.
Files:	    src/ex_docmd.c, src/ex_getln.c, src/if_perl.xs, src/if_python.c,
	    src/if_ruby.c, src/if_tcl.c, src/misc2.c

Patch 6.2.476
Problem:    When reloading a hidden buffer changed outside of Vim and the
	    current buffer is read-only, the reloaded buffer becomes
	    read-only.  (Hari Krishna Dara)
Solution:   Save the 'readonly' flag of the reloaded buffer instead of the
	    current buffer.
Files:	    src/fileio.c

Patch 6.2.477
Problem:    Using remote_send(v:servername, "\<C-V>") causes Vim to hang.
	    (Yakov Lerner)
Solution:   When the resulting string is empty don't set received_from_client.
Files:	    src/main.c

Patch 6.2.478
Problem:    Win32: "--remote file" fails changing directory if the current
	    directory name starts with a single quote.  (Iestyn Walters)
Solution:   Add a backslash where it will be removed later.
Files:	    src/main.c, src/misc2.c, src/proto/misc2.pro

Patch 6.2.479
Problem:    The error message for errors during recovery goes unnoticed.
Solution:   Avoid that the hit-enter prompt overwrites the message.  Add a few
	    lines to make the error stand out.
Files:	    src/main.c, src/message.c, src/memline.c

Patch 6.2.480
Problem:    NetBeans: Using negative index in array.  backslash at end of
	    message may cause Vim to crash. (Xavier de Gaye)
Solution:   Initialize buf_list_used to zero. Check for trailing backslash.
Files:	    src/netbeans.c

Patch 6.2.481
Problem:    When writing a file it is not possible to specify that hard and/or
	    symlinks are to be broken instead of preserved.
Solution:   Add the "breaksymlink" and "breakhardlink" values to 'backupcopy'.
	    (Simon Ekstrand)
Files:	    runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h

Patch 6.2.482
Problem:    Repeating insert of CTRL-K 1 S doesn't work.  The superscript 1 is
	    considered to be a digit. (Juergen Kraemer)
Solution:   In vim_isdigit() only accept '0' to '9'.  Use VIM_ISDIGIT() for
	    speed where possible.  Also add vim_isxdigit().
Files:	    src/buffer.c, src/charset.c, src/diff.c, src/digraph.c,
	    src/edit.c, src/eval.c,, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
	    src/if_xcmdsrv.c, src/farsi.c, src/fileio.c, src/fold.c,
	    src/getchar.c, src/gui.c, src/if_cscope.c, src/macros.h,
	    src/main.c, src/mark.c, src/mbyte.c, src/menu.c, src/misc1.c,
	    src/misc2.c, src/normal.c, src/ops.c, src/option.c,
	    src/proto/charset.pro, src/regexp.c, src/screen.c, src/search.c,
	    src/syntax.c, src/tag.c, src/term.c, src/termlib.c

Patch 6.2.483 (extra, after 6.2.482)
Problem:    See 6.2.482.
Solution:   Extra part of patch 6.2.482.
Files:	    src/gui_photon.c, src/gui_w48.c, src/os_msdos.c, src/os_mswin.c

Patch 6.2.484
Problem:    MS-Windows: With the included diff.exe, differences after a CTRL-Z
	    are not recognized.  (Peter Keresztes)
Solution:   Write the files with unix fileformat and invoke diff with --binary
	    if possible.
Files:	    src/diff.c

Patch 6.2.485
Problem:    A BufWriteCmd autocommand cannot know if "!" was used or not.
	    (Hari Krishna Dara)
Solution:   Add the v:cmdbang variable.
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro,
	    src/fileio.c, src/vim.h

Patch 6.2.486 (6.2.482)
Problem:    Diff for eval.c is missing.
Solution:   Addition to patch 6.2.482.
Files:	    src/eval.c

Patch 6.2.487 (extra, after 6.2.456)
Problem:    Compiler warnings for wrong prototype. (Alejandro Lopez Valencia)
Solution:   Delete the prototype for Handle_WM_Notify().
Files:	    src/proto/gui_w32.pro

Patch 6.2.488
Problem:    Missing ")" in *.ch filetype detection.
Solution:   Add the ")".  (Ciaran McCreesh)
Files:	    runtime/filetype.vim

Patch 6.2.489
Problem:    When accidentally opening a session in Vim which has already been
	    opened in another Vim there is a long row of ATTENTION prompts.
	    Need to quit each of them to get out. (Robert Webb)
Solution:   Add the "Abort" alternative to the dialog.
Files:	    src/memline.c

Patch 6.2.490
Problem:    With 'paragraph' it is not possible to use a single dot as a
	    paragraph boundary.  (Dorai Sitaram)
Solution:   Allow using "  " (two spaces) in 'paragraph' to match ".$" or
	    ". $"
Files:	    src/search.c

Patch 6.2.491
Problem:    Decrementing a position doesn't take care of multi-byte chars.
Solution:   Adjust the column for multi-byte characters.  Remove mb_dec().
	    (Yasuhiro Matsumoto)
Files:	    src/mbyte.c, src/misc2.c, src/proto/mbyte.pro

Patch 6.2.492
Problem:    When using ":redraw" while there is a message, the next ":echo"
	    still causes text to scroll. (Yasuhiro Matsumoto)
Solution:   Reset msg_didout and msg_col, so that after ":redraw" the next
	    message overwrites an existing one.
Files:	    src/ex_docmd.c

Patch 6.2.493
Problem:    "@x" doesn't work when 'insertmode' is set. (Benji Fisher)
Solution:   Put "restart_edit" in the typeahead buffer, so that it's used
	    after executing the register contents.
Files:	    src/ops.c

Patch 6.2.494
Problem:    Using diff mode with two windows, when moving horizontally in
	    inserted lines, a fold in the other window may open.
Solution:   Compute the line number in the other window correctly.
Files:	    src/diff.c

Patch 6.2.495 (extra, after 6.2.456)
Problem:    Win32: The file dialog doesn't work on Windows 95.
Solution:   Put the wide code of gui_mch_browse() in gui_mch_browseW() and use
	    it only on Windows NT/2000/XP.
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.2.496
Problem:    FreeBSD 4.x: When compiled with the pthread library (Python) a
	    complicated pattern may cause Vim to crash.  Catching the signal
	    doesn't work.
Solution:   When compiled with threads, instead of using the normal stacksize
	    limit, use the size of the initial stack.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/os_unix.c

Patch 6.2.497 (extra)
Problem:    Russian messages are only available in one encoding.
Solution:   Convert the messages to MS-Windows codepages. (Vassily Ragosin)
Files:	    src/po/Makefile

Patch 6.2.498
Problem:    Non-latin1 help files are not properly supported.
Solution:   Support utf-8 help files and convert them to 'encoding' when
	    needed.
Files:	    src/fileio.c

Patch 6.2.499
Problem:    When writing a file and halting the system, the file might be lost
	    when using a journaling file system.
Solution:   Use fsync() to flush the file data to disk after writing a file.
	    (Radim Kolar)
Files:	    src/fileio.c

Patch 6.2.500 (extra)
Problem:    The DOS/MS-Windows the installer doesn't use the --binary flag for
	    diff.
Solution:   Add --binary to the diff argument in MyDiff(). (Alejandro Lopez-
	    Valencia)
Files:	    src/dosinst.c

Patch 6.2.501
Problem:    Vim does not compile with MorphOS.
Solution:   Add a Makefile and a few changes to make Vim work with MorphOS.
	    (Ali Akcaagac)
Files:	    runtime/doc/os_amiga.txt, src/INSTALLami.txt,
	    src/Make_morphos.mak, src/memfile.c, src/term.c

Patch 6.2.502
Problem:    Building fails for generating message files.
Solution:   Add dummy message files.
Files:	    src/po/ca.po, src/po/ru.po, src/po/sv.po

Patch 6.2.503
Problem:    Mac: Can't compile MacRoman conversions without the GUI.
Solution:   Also link with the Carbon framework for the terminal version, for
	    the MacRoman conversion functions. (Eckehard Berns)
	    Remove -ltermcap from the GUI link command, it is not needed.
Files:	    src/auto/configure, src/Makefile, src/configure.in

Patch 6.2.504
Problem:    Various problems with 'cindent', among which that a
	    list of variable declarations is not indented properly.
Solution:   Fix the wrong indenting.  Improve indenting of C++ methods.
	    Add the 'i', 'b' and 'W' options to 'cinoptions'. (mostly by
	    Helmut Stiegler)
	    Improve indenting of preprocessor-continuation lines.
Files:	    runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
	    src/testdir/test3.ok

Patch 6.2.505
Problem:    Help for -P argument is missing. (Ronald Hoellwarth)
Solution:   Add the patch that was missing in 6.2.419.
Files:	    runtime/doc/starting.txt

Patch 6.2.506 (extra)
Problem:    Win32: When 'encoding' is a codepage then reading a utf-8 file
	    only works when iconv is available.  Writing a file in another
	    codepage uses the wrong kind of conversion.
Solution:   Use internal conversion functions.  Enable reading and writing
	    files with 'fileencoding' different from 'encoding' for all valid
	    codepages and utf-8 without the need for iconv.
Files:	    src/fileio.c, src/testdir/Make_dos.mak, src/testdir/test52.in,
	    src/testdir/test52.ok

Patch 6.2.507
Problem:    The ownership of the file with the password for the NetBeans
	    connection is not checked.  "-nb={file}" doesn't work for GTK.
Solution:   Only accept the file when owned by the user and not accessible by
	    others.  Detect "-nb=" for GTK.
Files:	    src/netbeans.c, src/gui_gtk_x11.c

Patch 6.2.508
Problem:    Win32: "v:lang" does not show the current language for messages if
	    it differs from the other locale settings.
Solution:   Use the value of the $LC_MESSAGES environment variable.
Files:	    src/ex_cmds2.c

Patch 6.2.509 (after 6.2.508)
Problem:    Crash when $LANG is not set.
Solution:   Add check for NULL pointer. (Ron Aaron)
Files:	    src/ex_cmds2.c

Patch 6.2.510 (after 6.2.507)
Problem:    Warning for pointer conversion.
Solution:   Add a type cast.
Files:	    src/gui_gtk_x11.c

Patch 6.2.511
Problem:    Tags in Russian help files are in utf-8 encoding, which may be
	    different from 'encoding'.
Solution:   Use the "TAG_FILE_ENCODING" field in the tags file to specify the
	    encoding of the tags.  Convert help tags from 'encoding' to the
	    tag file encoding when searching for matches, do the reverse when
	    listing help tags.
Files:	    runtime/doc/tagsrch.txt, src/ex_cmds.c, src/tag.c

Patch 6.2.512
Problem:    Translating "\"\n" is useless. (Gerfried Fuchs)
Solution:   Remove the _() around it.
Files:	    src/main.c, src/memline.c

Patch 6.2.513 (after 6.2.507)
Problem:    NetBeans: the check for owning the connection info file can be
	    simplified. (Nikolay Molchanov)
Solution:   Only check if the access mode is right.
Files:	    src/netbeans.c

Patch 6.2.514
Problem:    When a highlight/syntax group name contains invalid characters
	    there is no warning.
Solution:   Add an error for unprintable characters and a warning for other
	    invalid characters.
Files:	    src/syntax.c

Patch 6.2.515
Problem:    When using the options window 'swapfile' is reset.
Solution:   Use ":setlocal" instead of ":set".
Files:	    runtime/optwin.vim

Patch 6.2.516
Problem:    The sign column cannot be seen, looks like there are two spaces
	    before the text. (Rob Retter)
Solution:   Add the SignColumn highlight group.
Files:	    runtime/doc/options.txt, runtime/doc/sign.txt, src/option.c,
	    src/screen.c, src/syntax.c, src/vim.h

Patch 6.2.517
Problem:    Using "r*" in Visual mode on multi-byte characters replaces
	    too many characters.  In Visual Block mode replacing with a
	    multi-byte character doesn't work.
Solution:   Adjust the operator end for the difference in byte length of the
	    original and the replaced character.  Insert all bytes of a
	    multi-byte character, take care of double-wide characters.
Files:	    src/ops.c

Patch 6.2.518
Problem:    Last line of a window is not updated after using "J" and then "D".
	    (Adri Verhoef)
Solution:   When no line is found below a change that doesn't need updating,
	    update all lines below the change.
Files:	    src/screen.c

Patch 6.2.519
Problem:    Mac: cannot read/write files in MacRoman format.
Solution:   Do internal conversion from/to MacRoman to/from utf-8 and latin1.
	    (Eckehard Berns)
Files:	    src/fileio.c

Patch 6.2.520 (extra)
Problem:    The NSIS installer is outdated.
Solution:   Make it work with NSIS 2.0.  Also include console executables for
	    Win 95/98/ME and Win NT/2000/XP.  Use LZWA compression.  Use
	    "/oname" to avoid having to rename files before running NSIS.
Files:	    Makefile, nsis/gvim.nsi

Patch 6.2.521
Problem:    When using silent Ex mode the "changing a readonly file" warning
	    is omitted but the one second wait isn't. (Yakov Lerner)
Solution:   Skip the delay when "silent_mode" is set.
Files:	    src/misc1.c

Patch 6.2.522
Problem:    GUI: when changing 'cmdheight' in the gvimrc file the window
	    layout is messed up. (Keith Dart)
Solution:   Skip updating the window layout when changing 'cmdheight' while
	    still starting up.
Files:	    src/option.c

Patch 6.2.523
Problem:    When loading a session and aborting when a swap file already
	    exists, the user is left with useless windows. (Robert Webb)
Solution:   Load one file before creating the windows.
Files:	    src/ex_docmd.c

Patch 6.2.524 (extra, after 6.2.520)
Problem:    Win32: (un)installing gvimext.dll may fail if it was used.
	    The desktop and start menu links are created for the current user
	    instead of all users.
	    Using the home directory as working directory for the links is a
	    bad idea for multi-user systems.
	    Cannot use Vim from the "Open With..." menu.
Solution:   Force a reboot if necessary. (Alejandro Lopez-Valencia)  Also use
	    macros for the directory of the source and runtime files.  Use
	    "CSIDL_COMMON_*" instead of "CSIDL_*" when possible.
	    Do not specify a working directory in the links.
	    Add Vim to the "Open With..." menu. (Giuseppe Bilotta)
Files:	    nsis/gvim.nsi, src/dosinst.c, src/dosinst.h, src/uninstal.c

Patch 6.2.525
Problem:    When the history contains a very long line ":history" causes a
	    crash. (Volker Kiefel)
Solution:   Shorten the history entry to fit it in one line.
Files:	    src/ex_getln.c

Patch 6.2.526
Problem:    When s:lang is "ja" the Japanese menus are not used.
Solution:   Add 'encoding' to the language when there is no charset.
Files:	    runtime/menu.vim

Patch 6.2.527
Problem:    The 2html script uses ":wincmd p", which breaks when using some
	    autocommands.
Solution:   Remember the window numbers and jump to them with ":wincmd w".
	    Also add XHTML support. (Panagiotis Issaris)
Files:	    runtime/syntax/2html.vim

Patch 6.2.528
Problem:    NetBeans: Changes of the "~" command are not reported.
Solution:   Call netbeans_inserted() after performing "~". (Gordon Prieur)
	    Also change NetBeans debugging to append to the log file.
	    Also fix that "~" in Visual block mode changes too much if there
	    are multi-byte characters.
Files:	    src/nbdebug.c, src/normal.c, src/ops.c

Patch 6.2.529 (extra)
Problem:    VisVim only works for Admin.  Doing it for one user doesn't work.
	    (Alexandre Gouraud)
Solution:   When registering the module fails, simply continue.
Files:	    src/VisVim/VisVim.cpp

Patch 6.2.530
Problem:    Warning for missing prototype on the Amiga.
Solution:   Include time.h
Files:	    src/version.c

Patch 6.2.531
Problem:    In silent ex mode no messages are given, which makes debugging
	    very difficult.
Solution:   Do output messages when 'verbose' is set.
Files:	    src/message.c, src/ui.c

Patch 6.2.532 (extra)
Problem:    Compiling for Win32s with VC 4.1 doesn't work.
Solution:   Don't use CP_UTF8 if it's not defined.  Don't use CSIDL_COMMON*
	    when not defined.
Files:	    src/dosinst.h, src/fileio.c

Win32 console: After patch 6.2.398 Ex mode did not work. (Yasuhiro Matsumoto)

Patch 6.3a.001
Problem:    Win32: if testing for the "--binary" option fails, diff isn't used
	    at all.
Solution:   Handle the "ok" flag properly. (Yasuhiro Matsumoto)
Files:	    src/diff.c

Patch 6.3a.002
Problem:    NetBeans: An insert command from NetBeans beyond the end of a
	    buffer crashes Vim. (Xavier de Gaye)
Solution:   Use a local pos_T structure for the position.
Files:	    src/netbeans.c

Patch 6.3a.003
Problem:    E315 error with auto-formatting comments. (Henry Van Roessel)
Solution:   Pass the line number to same_leader().
Files:	    src/ops.c

Patch 6.3a.004
Problem:    Test32 fails on Windows XP for the DJGPP version.  Renaming
	    test11.out fails.
Solution:   Don't try renaming, create new files to use for the test.
Files:	    src/testdir/test32.in, src/testdir/test32.ok

Patch 6.3a.005
Problem:    ":checkpath!" does not use 'includeexpr'.
Solution:   Use a file name that was found directly.  When a file was not
	    found and the located name is empty, use the rest of the line.
Files:	    src/search.c

Patch 6.3a.006
Problem:    "yip" moves the cursor to the first yanked line, but not to the
	    first column.  Looks like not all text was yanked. (Jens Paulus)
Solution:   Move the cursor to the first column.
Files:	    src/search.c

Patch 6.3a.007
Problem:    'cindent' recognizes "enum" but not "typedef enum".
Solution:   Skip over "typedef" before checking for "enum". (Helmut Stiegler)
	    Also avoid that searching for this item goes too far back.
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 6.3a.008 (extra)
Problem:    Windows 98: Some of the wide functions are not implemented,
	    resulting in file I/O to fail.  This depends on what Unicode
	    support is installed.
Solution:   Handle the failure and fall back to non-wide functions.
Files:	    src/os_win32.c

Patch 6.3a.009
Problem:    Win32: Completion of filenames does not work properly when
	    'encoding' differs from the active code page.
Solution:   Use wide functions for expanding wildcards when appropriate.
Files:	    src/misc1.c

Patch 6.3a.010 (extra)
Problem:    Win32: Characters in the window title that do not appear in the
	    active codepage are replaced by a question mark.
Solution:   Use DefWindowProcW() instead of DefWindowProc() when possible.
Files:	    src/glbl_ime.cpp, src/globals.h, src/proto/gui_w16.pro,
	    src/proto/gui_w32.pro, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.3a.011
Problem:    Using the explorer plugin changes a local directory to the global
	    directory.
Solution:   Don't use ":chdir" to restore the current directory.  Make
	    "expand('%:p')" remove "/../" and "/./" items from the path.
Files:	    runtime/plugin/explorer.vim, src/eval.c, src/os_unix.c

Patch 6.3a.012 (extra)
Problem:    On Windows 98 the installer doesn't work, don't even get the "I
	    agree" button.  The check for the path ending in "vim" makes the
	    browse dialog hard to use.  The default path when no previous Vim
	    is installed is "c:\vim" instead of "c:\Program Files\Vim".
Solution:   Remove the background gradient command.  Change the
	    .onVerifyInstDir function to a leave function for the directory
	    page.  Don't let the install program default to c:\vim when no
	    path could be found.
Files:	    nsis/gvim.nsi, src/dosinst.c

Patch 6.3a.013 (extra)
Problem:    Win32: Characters in the menu that are not in the active codepage
	    are garbled.
Solution:   Convert menu strings from 'encoding' to the active codepage.
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.3a.014
Problem:    Using multi-byte text and highlighting in a statusline causes gaps
	    to appear. (Helmut Stiegler)
Solution:   Advance the column by text width instead of number of bytes.  Add
	    the vim_strnsize() function.
Files:	    src/charset.c, src/proto/charset.pro, src/screen.c

Patch 6.3a.015
Problem:    Using the "select all" menu item when 'insertmode' is set and
	    clicking the mouse button doesn't return to Insert mode.  The
	    Buffers/Delete menu doesn't offer a choice to abandon a changed
	    buffer.  (Jens Paulus)
Solution:   Don't use CTRL-\ CTRL-N.  Add ":confirm" for the Buffers menu
	    items.
Files:	    runtime/menu.vim

Patch 6.3a.016
Problem:    After cancelling the ":confirm" dialog the error message and
	    hit-enter prompt may not be displayed properly.
Solution:   Flush output after showing the dialog.
Files:	    src/message.c

Patch 6.3a.017
Problem:    servername() doesn't work when Vim was started with the "-X"
	    argument or when the "exclude" in 'clipboard' matches the terminal
	    name.  (Robert Nowotniak)
Solution:   Force connecting to the X server when using client-server
	    commands.
Files:	    src/eval.c, src/globals.h, src/os_unix.c

Patch 6.3a.018 (after 6.3a.017)
Problem:    Compiler warning for return value of make_connection().
Solution:   Use void return type.
Files:	    src/eval.c

Patch 6.3a.019 (extra)
Problem:    Win32: typing non-latin1 characters doesn't work.
Solution:   Invoke _OnChar() directly to avoid that the argument is truncated
	    to a byte.  Convert the UTF-16 character to bytes according to
	    'encoding' and ignore 'termencoding'.  Same for _OnSysChar().
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.3a.020 (extra)
Problem:    Missing support for AROS (AmigaOS reimplementation).  Amiga GUI
	    doesn't work.
Solution:   Add AROS support.  (Adam Chodorowski)
	    Fix Amiga GUI problems. (Georg Steger, Ali Akcaagac)
Files:	    Makefile, src/Make_aros.mak, src/gui_amiga.c, src/gui_amiga.h,
	    src/memfile.c, src/os_amiga.c, src/term.c

Patch 6.3a.021 (after 6.3a.017)
Problem:    Can't compile with X11 but without GUI.
Solution:   Put use of "gui.in_use" inside an #ifdef.
Files:	    src/eval.c

Patch 6.3a.022
Problem:    When typing Tabs when 'softtabstop' is used and 'list' is set a
	    tab is counted for two spaces.
Solution:   Use the "L" flag in 'cpoptions' to tell whether a tab is counted
	    as two spaces or as 'tabstop'. (Antony Scriven)
Files:	    runtime/doc/options.txt, src/edit.c

Patch 6.3a.023
Problem:    Completion on the command line doesn't handle backslashes
	    properly.  Only the tail of matches is shown, even when not
	    completing filenames.
Solution:   When turning the string into a pattern double backslashes.  Don't
	    omit the path when not expanding files or directories.
Files:	    src/ex_getln.c

Patch 6.3a.024
Problem:    The "save all" toolbar item fails for buffers that don't have a
	    name.  When using ":wa" or closing the Vim window and there are
	    nameless buffers, browsing for a name may cause the name being
	    given to the wrong buffer or not stored properly.  ":browse" only
	    worked for one file.
Solution:   Use ":confirm browse" for "save all".
	    Pass buffer argument to setfname().  Restore "browse" flag and
	    "forceit" after doing the work for one file.
Files:	    runtime/menu.vim, src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/memline.c,
	    src/message.c, src/window.c, src/proto/buffer.pro,
	    src/proto/ex_cmds2.pro, src/proto/memline.pro

Patch 6.3a.025
Problem:    Setting 'virtualedit' moves the cursor. (Benji Fisher)
Solution:   Update the virtual column before using it.
Files:	    src/option.c

Patch 6.3a.026 (extra, after 6.3a.008)
Problem:    Editing files on Windows 98 doesn't work when 'encoding' is
	    "utf-8" (Antoine Mechelynck)
	    Warning for missing function prototype.
Solution:   For all wide functions check if it failed because it is not
	    implemented.  Use ANSI function declaration for char_to_string().
Files:	    src/gui_w48.c, src/os_mswin.c, src/os_win32.c

Patch 6.3a.027 (extra, after 6.3a.026)
Problem:    Compiler warning for function argument.
Solution:   Declare both char and WCHAR arrays.
Files:	    src/gui_w48.c

Patch 6.3a.028
Problem:    ":normal ." doesn't work inside a function, because redo is saved
	    and restored. (Benji Fisher)
Solution:   Make a copy of the redo buffer when executing a function.
Files:	    src/getchar.c

Patch 6.3b.001 (extra)
Problem:    Bcc 5: The generated auto/pathdef can't be compiled.
Solution:   Fix the way quotes and backslashes are escaped.
Files:	    src/Make_bc5.mak

Patch 6.3b.002
Problem:    Win32: conversion during file write fails when a double-byte
	    character is split over two writes.
Solution:   Fix the conversion retry without a trailing byte. (Taro Muraoka)
Files:	    src/fileio.c

Patch 6.3b.003 (extra)
Problem:    Win32: When compiling with Borland C 5.5 and 'encoding' is "utf-8"
	    then Vim can't open files under MS-Windows 98. (Antoine J.
	    Mechelynck)
Solution:   Don't use _wstat(), _wopen() and _wfopen() in this situation.
Files:	    src/os_mswin.c, src/os_win32.c

Patch 6.3b.004
Problem:    ":helpgrep" includes a trailing CR in the text line.
Solution:   Remove the CR.
Files:	    src/quickfix.c

Patch 6.3b.005
Problem:    ":echo &g:ai" results in the local option value. (Salman Halim)
Solution:   Pass the flags from find_option_end() to get_option_value().
Files:	    src/eval.c

Patch 6.3b.006
Problem:    When using "mswin.vim", CTRL-V in Insert mode leaves cursor before
	    last pasted character.  (Mathew Davis)
Solution:   Use the same Paste() function as in menu.vim.
Files:	    runtime/mswin.vim

Patch 6.3b.007
Problem:    Session file doesn't restore view on windows properly. (Robert
	    Webb)
Solution:   Restore window sizes both before and after restoring the view, so
	    that the view, cursor position and size are restored properly.
Files:	    src/ex_docmd.c

Patch 6.3b.008
Problem:    Using ":finally" in a user command doesn't always work. (Hari
	    Krishna Dara)
Solution:   Don't assume that using getexline() means the command was typed.
Files:	    src/ex_docmd.c

Patch 6.3b.009 (extra)
Problem:    Win32: When the -P argument is not found in a window title, there
	    is no error message.
Solution:   When the window can't be found give an error message and exit.
	    Also use try/except to catch failing to open the MDI window.
	    (Michael Wookey)
Files:	    src/gui_w32.c

Patch 6.3b.010
Problem:    Win32: Using the "-D" argument and expanding arguments may cause a
	    hang, because the terminal isn't initialized yet. (Vince Negri)
Solution:   Don't go into debug mode before the terminal is initialized.
Files:	    src/main.c

Patch 6.3b.011
Problem:    Using CTRL-\ e while obtaining an expression aborts the command
	    line. (Hari Krishna Dara)
Solution:   Insert the CTRL-\ e as typed.
Files:	    src/ex_getln.c

Patch 6.3b.012 (after 6.3b.010)
Problem:    Can't compile with tiny features. (Norbert Tretkowski)
Solution:   Add #ifdefs.
Files:	    src/main.c

Patch 6.3b.013
Problem:    Loading a session file results in editing the wrong file in the
	    first window when this is not the file at the current position in
	    the argument list. (Robert Webb)
Solution:   Check w_arg_idx_invalid to decide whether to edit a file.
Files:	    src/ex_docmd.c

Patch 6.3b.014
Problem:    ":runtime! foo*.vim" may using freed memory when a sourced script
	    changes the value of 'runtimepath'.
Solution:   Make a copy of 'runtimepath' when looping over the matches.
Files:	    src/ex_cmds2.c

Patch 6.3b.015
Problem:    Get lalloc(0) error when using "p" in Visual mode while
	    'clipboard' contains "autoselect,unnamed". (Mark Wagonner)
Solution:   Avoid allocating zero bytes.  Obtain the clipboard when necessary.
Files:	    src/ops.c

Patch 6.3b.016
Problem:    When 'virtualedit' is used "x" doesn't delete the last character
	    of a line that has as many characters as 'columns'. (Yakov Lerner)
Solution:   When the cursor isn't moved let oneright() return FAIL.
Files:	    src/edit.c

Patch 6.3b.017
Problem:    Win32: "vim --remote-wait" doesn't exit when the server finished
	    editing the file. (David Fishburn)
Solution:   In the rrhelper plugin change backslashes to forward slashes and
	    escape special characters.
Files:	    runtime/plugin/rrhelper.vim

Patch 6.3b.018
Problem:    The list of help files in the "local additions" table doesn't
	    recognize utf-8 encoding. (Yasuhiro Matsumoto)
Solution:   Recognize utf-8 characters.
Files:	    src/ex_cmds.c

Patch 6.3b.019
Problem:    When $VIMRUNTIME is not a full path name the "local additions"
	    table lists all the help files.
Solution:   Use fullpathcmp() instead of fnamecmp() to compare the directory
	    names.
Files:	    src/ex_cmds.c

Patch 6.3b.020
Problem:    When using CTRL-^ when entering a search string, the item in the
	    statusline that indicates the keymap is not updated. (Ilya
	    Dogolazky)
Solution:   Mark the statuslines for updating.
Files:	    src/ex_getln.c

Patch 6.3b.021
Problem:    The swapfile is not readable for others, the ATTENTION prompt does
	    not show all info when someone else is editing the same file.
	    (Marcel Svitalsky)
Solution:   Use the protection of original file for the swapfile and set it
	    after creating the swapfile.
Files:	    src/fileio.c

Patch 6.3b.022
Problem:    Using "4v" to select four times the old Visual area may put the
	    cursor beyond the end of the line. (Jens Paulus)
Solution:   Correct the cursor column.
Files:	    src/normal.c

Patch 6.3b.023
Problem:    When "3dip" starts in an empty line, white lines after the
	    non-white lines are not deleted. (Jens Paulus)
Solution:   Include the white lines.
Files:	    src/search.c

Patch 6.3b.024
Problem:    "2daw" does not delete leading white space like "daw" does.  (Jens
	    Paulus)
Solution:   Include the white space when a count is used.
Files:	    src/search.c

Patch 6.3b.025
Problem:    Percentage in ruler isn't updated when a line is deleted. (Jens
	    Paulus)
Solution:   Check for a change in line count when deciding to update the ruler.
Files:	    src/screen.c, src/structs.h

Patch 6.3b.026
Problem:    When selecting "abort" at the ATTENTION prompt for a file that is
	    already being edited Vim crashes.
Solution:   Don't abort creating a new buffer when we really need it.
Files:	    src/buffer.c, src/vim.h

Patch 6.3b.027
Problem:    Win32: When enabling the menu in a maximized window, Vim uses more
	    lines than what is room for. (Shizhu Pan)
Solution:   When deciding to call shell_resized(), also compare the text area
	    size with Rows and Columns, not just with screen_Rows and
	    screen_Columns.
Files:	    src/gui.c

Patch 6.3b.028
Problem:    When in diff mode, setting 'rightleft' causes a crash. (Eddine)
Solution:   Check for last column differently when 'rightleft' is set.
Files:	    src/screen.c

Patch 6.3b.029
Problem:    Win32: warning for uninitialized variable.
Solution:   Initialize to zero.
Files:	    src/misc1.c

Patch 6.3b.030
Problem:    After Visually selecting four characters, changing it to other
	    text, Visually selecting and yanking two characters: "." changes
	    four characters, another "." changes two characters. (Robert Webb)
Solution:   Don't store the size of the Visual area when redo is active.
Files:	    src/normal.c

==============================================================================
VERSION 6.4						*version-6.4*

This section is about improvements made between version 6.3 and 6.4.

This is a bug-fix release.  There are also a few new features.  The major
number of new items is in the runtime files and translations.

The big MS-Windows version now uses:
	Ruby version 1.8.3
	Perl version 5.8.7
	Python version 2.4.2


Changed							*changed-6.4*
-------

Removed runtime/tools/tcltags, Exuberant ctags does it better.


Added							*added-6.4*
-----

Alsaconf syntax file (Nikolai Weibull)
Eruby syntax, indent, compiler and ftplugin file (Doug Kearns)
Esterel syntax file (Maurizio Tranchero)
Mathematica indent file (Steve Layland)
Netrc syntax file (Nikolai Weibull)
PHP compiler file (Doug Kearns)
Pascal indent file (Neil Carter)
Prescribe syntax file (Klaus Muth)
Rubyunit compiler file (Doug Kearns)
SMTPrc syntax file (Kornel Kielczewski)
Sudoers syntax file (Nikolai Weibull)
TPP syntax file (Gerfried Fuchs)
VHDL ftplugin file (R. Shankar)
Verilog-AMS syntax file (S. Myles Prather)

Bulgarian keymap (Alberto Mardegan)
Canadian keymap (Eric Joanis)

Hungarian menu translations in UTF-8 (Kantra Gergely)
Ukrainian menu translations (Bohdan Vlasyuk)

Irish message translations (Kevin Patrick Scannell)

Configure also checks for tclsh8.4.


Fixed							*fixed-6.4*
-----

"dFxd;" deleted the character under the cursor, "d;" didn't remember the
exclusiveness of the motion.

When using "set laststatus=2 cmdheight=2" in the .gvimrc you may only get one
line for the cmdline. (Christian Robinson)  Invoke command_height() after the
GUI has started up.

Gcc would warn "dereferencing type-punned pointer will break strict -aliasing
rules".  Avoid using typecasts for variable pointers.

Gcc 3.x interprets the -MM argument differently.  Change "-I /path" to
"-isystem /path" for "make depend".


Patch 6.3.001
Problem:    ":browse split" gives the file selection dialog twice. (Gordon
	    Bazeley)  Same problem for ":browse diffpatch".
Solution:   Reset cmdmod.browse before calling do_ecmd().
Files:	    src/diff.c, src/ex_docmd.c

Patch 6.3.002
Problem:    When using translated help files with non-ASCII latin1 characters
	    in the first line the utf-8 detection is wrong.
Solution:   Properly detect utf-8 characters.  When a mix of encodings is
	    detected continue with the next language and avoid a "no matches"
	    error because of "got_int" being set.  Add the directory name to
	    the error message for a duplicate tag.
Files:	    src/ex_cmds.c

Patch 6.3.003
Problem:    Crash when using a console dialog and the first choice does not
	    have a default button. (Darin Ohashi)
Solution:   Allocate two more characters for the [] around the character for
	    the default choice.
Files:	    src/message.c

Patch 6.3.004
Problem:    When searching for a long string (140 chars in a 80 column
	    terminal) get three hit-enter prompts. (Robert Webb)
Solution:   Avoid the hit-enter prompt when giving the message for wrapping
	    around the end of the buffer.  Don't give that message again when
	    the string was not found.
Files:	    src/message.c, src/search.c

Patch 6.3.005
Problem:    Crash when searching for a pattern with a character offset and
	    starting in a closed fold. (Frank Butler)
Solution:   Check for the column to be past the end of the line.  Also fix
	    that a pattern with a character offset relative to the end isn't
	    read back from the viminfo properly.
Files:	    src/search.c

Patch 6.3.006
Problem:    ":breakadd file *foo" prepends the current directory to the file
	    pattern. (Hari Krishna Dara)
Solution:   Keep the pattern as-is.
Files:	    src/ex_cmds2.c

Patch 6.3.007
Problem:    When there is a buffer with 'buftype' set to "nofile" and using a
	    ":cd" command, the swap file is not deleted when exiting.
Solution:   Use the full path of the swap file also for "nofile" buffers.
Files:	    src/fileio.c

Patch 6.3.008
Problem:    Compiling fails under OS/2.
Solution:   Include "e_screenmode" also for OS/2. (David Sanders)
Files:	    src/globals.h

Patch 6.3.009 (after 6.3.006)
Problem:    ":breakadd file /path/foo.vim" does not match when a symbolic link
	    is involved.  (Servatius Brandt)
Solution:   Do expand the pattern when it does not start with "*".
Files:	    runtime/doc/repeat.txt, src/ex_cmds2.c

Patch 6.3.010
Problem:    When writing to a named pipe there is an error for fsync()
	    failing.
Solution:   Ignore the fsync() error for devices.
Files:	    src/fileio.c

Patch 6.3.011
Problem:    Crash when the completion function of a user-command uses a
	    "normal :cmd" command.  (Hari Krishna Dara)
Solution:   Save the command line when invoking the completion function.
Files:	    src/ex_getln.c

Patch 6.3.012
Problem:    Internal lalloc(0) error when using a complicated multi-line
	    pattern in a substitute command. (Luc Hermitte)
Solution:   Avoid going past the end of a line.
Files:	    src/ex_cmds.c

Patch 6.3.013
Problem:    Crash when editing a command line and typing CTRL-R = to evaluate
	    a function that uses "normal :cmd". (Hari Krishna Dara)
Solution:   Save and restore the command line when evaluating an expression
	    for CTRL-R =.
Files:	    src/ex_getln.c, src/ops.c, src/proto/ex_getln.pro,
	    src/proto/ops.pro

Patch 6.3.014
Problem:    When using Chinese or Taiwanese the default for 'helplang' is
	    wrong. (Simon Liang)
Solution:   Use the part of the locale name after "zh_".
Files:	    src/option.c

Patch 6.3.015
Problem:    The string that winrestcmd() returns may end in garbage.
Solution:   NUL-terminate the string. (Walter Briscoe)
Files:	    src/eval.c

Patch 6.3.016
Problem:    The default value for 'define' has "\s" before '#'.
Solution:   Add a star after "\s". (Herculano de Lima Einloft Neto)
Files:	    src/option.c

Patch 6.3.017
Problem:    "8zz" may leave the cursor beyond the end of the line. (Niko
	    Maatjes)
Solution:   Correct the cursor column after moving to another line.
Files:	    src/normal.c

Patch 6.3.018
Problem:    ":0argadd zero" added the argument after the first one, instead of
	    before it. (Adri Verhoef)
Solution:   Accept a zero range for ":argadd".
Files:	    src/ex_cmds.h

Patch 6.3.019
Problem:    Crash in startup for debug version. (David Rennals)
Solution:   Move the call to nbdebug_wait() to after allocating NameBuff.
Files:	    src/main.c

Patch 6.3.020
Problem:    When 'encoding' is "utf-8" and 'delcombine' is set, "dw" does not
	    delete a word but only a combining character of the first
	    character, if there is one. (Raphael Finkel)
Solution:   Correctly check that one character is being deleted.
Files:	    src/misc1.c

Patch 6.3.021
Problem:    When the last character of a file name is a multi-byte character
	    and the last byte is a path separator, the file cannot be edited.
Solution:   Check for the last byte to be part of a multi-byte character.
	    (Taro Muraoka)
Files:	    src/fileio.c

Patch 6.3.022 (extra)
Problem:    Win32: When the last character of a file name is a multi-byte
	    character and the last byte is a path separator, the file cannot
	    be written.  A trail byte that is a space makes that a file cannot
	    be opened from the command line.
Solution:   Recognize double-byte characters when parsing the command line.
	    In mch_stat() check for the last byte to be part of a multi-byte
	    character.  (Taro Muraoka)
Files:	    src/gui_w48.c, src/os_mswin.c

Patch 6.3.023
Problem:    When the "to" part of a mapping starts with its "from" part,
	    abbreviations for the same characters is not possible.  For
	    example, when <Space> is mapped to something that starts with a
	    space, typing <Space> does not expand abbreviations.
Solution:   Only disable expanding abbreviations when a mapping is not
	    remapped, don't disable it when the RHS of a mapping starts with
	    the LHS.
Files:	    src/getchar.c, src/vim.h

Patch 6.3.024
Problem:    In a few places a string in allocated memory is not terminated
	    with a NUL.
Solution:   Add ga_append(NUL) in script_get(), gui_do_findrepl() and
	    serverGetVimNames().
Files:	    src/ex_getln.c, src/gui.c, src/if_xcmdsrv.c, src/os_mswin.c

Patch 6.3.025 (extra)
Problem:    Missing NUL for list of server names.
Solution:   Add ga_append(NUL) in serverGetVimNames().
Files:	    src/os_mswin.c

Patch 6.3.026
Problem:    When ~/.vim/after/syntax/syncolor.vim contains a command that
	    reloads the colors an endless loop and/or a crash may occur.
Solution:   Only free the old value of an option when it was originally
	    allocated.  Limit recursiveness of init_highlight() to 5 levels.
Files:	    src/option.c, src/syntax.c

Patch 6.3.027
Problem:    VMS: Writing a file may insert extra CR characters.  Not all
	    terminals are recognized correctly.  Vt320 doesn't support colors.
	    Environment variables are not expanded correctly.
Solution:   Use another method to write files.  Add vt320 termcap codes for
	    colors.  (Zoltan Arpadffy)
Files:	    src/fileio.c, src/misc1.c, src/os_unix.c, src/structs.h,
	    src/term.c

Patch 6.3.028
Problem:    When appending to a file the BOM marker may be written.  (Alex
	    Jakushev)
Solution:   Do not write the BOM marker when appending.
Files:	    src/fileio.c

Patch 6.3.029
Problem:    Crash when inserting a line break. (Walter Briscoe)
Solution:   In the syntax highlighting code, don't use an old state after a
	    change was made, current_col may be past the end of the line.
Files:	    src/syntax.c

Patch 6.3.030
Problem:    GTK 2: Crash when sourcing a script that deletes the menus, sets
	    'encoding' to "utf-8" and loads the menus again.  GTK error
	    message when tooltip text is in a wrong encoding.
Solution:   Don't copy characters from the old screen to the new screen when
	    switching 'encoding' to utf-8, they may be invalid.  Only set the
	    tooltip when it is valid utf-8.
Files:	    src/gui_gtk.c, src/mbyte.c, src/proto/mbyte.pro, src/screen.c

Patch 6.3.031
Problem:    When entering a mapping and pressing Tab halfway the command line
	    isn't redrawn properly. (Adri Verhoef)
Solution:   Reposition the cursor after drawing over the "..." of the
	    completion attempt.
Files:	    src/ex_getln.c

Patch 6.3.032
Problem:    Using Python 2.3 with threads doesn't work properly.
Solution:   Release the lock after initialization.
Files:	    src/if_python.c

Patch 6.3.033
Problem:    When a mapping ends in a Normal mode command of more than one
	    character Vim doesn't return to Insert mode.
Solution:   Check that the mapping has ended after obtaining all characters of
	    the Normal mode command.
Files:	    src/normal.c

Patch 6.3.034
Problem:    VMS: crash when using ":help".
Solution:   Avoid using "tags-??", some Open VMS systems can't handle the "?"
	    wildcard.  (Zoltan Arpadffy)
Files:	    src/tag.c

Patch 6.3.035 (extra)
Problem:    RISC OS: Compile errors.
Solution:   Change e_screnmode to e_screenmode.  Change the way
	    __riscosify_control is set.  Improve the makefile.  (Andy Wingate)
Files:	    src/os_riscos.c, src/search.c, src/Make_ro.mak

Patch 6.3.036
Problem:    ml_get errors when the whole file is a fold, switching
	    'foldmethod' and doing "zj". (Christian J. Robinson) Was not
	    deleting the fold but creating a fold with zero lines.
Solution:   Delete the fold properly.
Files:	    src/fold.c

Patch 6.3.037 (after 6.3.032)
Problem:    Warning for unused variable.
Solution:   Change the #ifdefs for the saved thread stuff.
Files:	    src/if_python.c

Patch 6.3.038 (extra)
Problem:    Win32: When the "file changed" dialog pops up after a click that
	    gives gvim focus and not moving the mouse after that, the effect
	    of the click may occur when moving the mouse later. (Ken Clark)
	    Happened because the release event was missed.
Solution:   Clear the s_button_pending variable when any input is received.
Files:	    src/gui_w48.c

Patch 6.3.039
Problem:    When 'number' is set and inserting lines just above the first
	    displayed line (in another window on the same buffer), the line
	    numbers are not updated.  (Hitier Sylvain)
Solution:   When 'number' is set and lines are inserted/deleted redraw all
	    lines below the change.
Files:	    src/screen.c

Patch 6.3.040
Problem:    Error handling does not always work properly and may cause a
	    buffer to be marked as if it's viewed in a window while it isn't.
	    Also when selecting "Abort" at the attention prompt.
Solution:   Add enter_cleanup() and leave_cleanup() functions to move
	    saving/restoring things for error handling to one place.
	    Clear a buffer read error when it's unloaded.
Files:	    src/buffer.c, src/ex_docmd.c, src/ex_eval.c,
	    src/proto/ex_eval.pro, src/structs.h, src/vim.h

Patch 6.3.041 (extra)
Problem:    Win32: When the path to a file has Russian characters, ":cd %:p:h"
	    doesn't work. (Valery Kondakoff)
Solution:   Use a wide function to change directory.
Files:	    src/os_mswin.c

Patch 6.3.042
Problem:    When there is a closed fold at the top of the window, CTRL-X
	    CTRL-E in Insert mode reduces the size of the fold instead of
	    scrolling the text up. (Gautam)
Solution:   Scroll over the closed fold.
Files:	    src/move.c

Patch 6.3.043
Problem:    'hlsearch' highlighting sometimes disappears when inserting text
	    in PHP code with syntax highlighting. (Marcel Svitalsky)
Solution:   Don't use pointers to remember where a match was found, use an
	    index.  The pointers may become invalid when searching in other
	    lines.
Files:	    src/screen.c

Patch 6.3.044 (extra)
Problem:    Mac: When 'linespace' is non-zero the Insert mode cursor leaves
	    pixels behind. (Richard Sandilands)
Solution:   Erase the character cell before drawing the text when needed.
Files:	    src/gui_mac.c


Patch 6.3.045
Problem:    Unusual characters in an option value may cause unexpected
	    behavior, especially for a modeline. (Ciaran McCreesh)
Solution:   Don't allow setting termcap options or 'printdevice' in a
	    modeline.  Don't list options for "termcap" and "all" in a
	    modeline.  Don't allow unusual characters in 'filetype', 'syntax',
	    'backupext', 'keymap', 'patchmode' and 'langmenu'.
Files:	    src/option.c, runtime/doc/options.txt

Patch 6.3.046
Problem:    ":registers" doesn't show multi-byte characters properly.
	    (Valery Kondakoff)
Solution:   Get the length of each character before displaying it.
Files:	    src/ops.c

Patch 6.3.047 (extra)
Problem:    Win32 with Borland C 5.5 on Windows XP: A new file is created with
	    read-only attributes. (Tony Mechelynck)
Solution:   Don't use the _wopen() function for Borland.
Files:	    src/os_win32.c

Patch 6.3.048 (extra)
Problem:    Build problems with VMS on IA64.
Solution:   Add dependencies to the build file. (Zoltan Arpadffy)
Files:	    src/Make_vms.mms

Patch 6.3.049 (after 6.3.045)
Problem:    Compiler warning for "char" vs "char_u" mixup. (Zoltan Arpadffy)
Solution:   Add a typecast.
Files:	    src/option.c

Patch 6.3.050
Problem:    When SIGHUP is received while busy exiting, non-reentrant
	    functions such as free() may cause a crash.
Solution:   Ignore SIGHUP when exiting because of an error. (Scott Anderson)
Files:	    src/misc1.c, src/main.c

Patch 6.3.051
Problem:    When 'wildmenu' is set and completed file names contain multi-byte
	    characters Vim may crash.
Solution:   Reserve room for multi-byte characters. (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.3.052 (extra)
Problem:    Windows 98: typed keys that are not ASCII may not work properly.
	    For example with a Russian input method. (Jiri Jezdinsky)
Solution:   Assume that the characters arrive in the current codepage instead
	    of UCS-2.  Perform conversion based on that.
Files:	    src/gui_w48.c

Patch 6.3.053
Problem:    Win32: ":loadview" cannot find a file with non-ASCII characters.
	    (Valerie Kondakoff)
Solution:   Use mch_open() instead of open() to open the file.
Files:	    src/ex_cmds2.c

Patch 6.3.054
Problem:    When 'insertmode' is set <C-L>4ixxx<C-L> hangs Vim. (Jens Paulus)
	    Vim is actually still working but redraw is disabled.
Solution:   When stopping Insert mode with CTRL-L don't put an Esc in the redo
	    buffer but a CTRL-L.
Files:	    src/edit.c

Patch 6.3.055 (after 6.3.013)
Problem:    Can't use getcmdline(), getcmdpos() or setcmdpos() with <C-R>=
	    when editing a command line.  Using <C-\>e may crash Vim. (Peter
	    Winters)
Solution:   When moving ccline out of the way for recursive use, make it
	    available to the functions that need it.  Also save and restore
	    ccline when calling get_expr_line().  Make ccline.cmdbuf NULL at
	    the end of getcmdline().
Files:	    src/ex_getln.c

Patch 6.3.056
Problem:    The last characters of a multi-byte file name may not be displayed
	    in the window title.
Solution:   Avoid to remove a multi-byte character where the last byte looks
	    like a path separator character. (Yasuhiro Matsumoto)
Files:	    src/buffer.c, src/ex_getln.c

Patch 6.3.057
Problem:    When filtering lines folds are not updated. (Carl Osterwisch)
Solution:   Update folds for filtered lines.
Files:	    src/ex_cmds.c

Patch 6.3.058
Problem:    When 'foldcolumn' is equal to the window width and 'wrap' is on
	    Vim may crash.  Disabling the vertical split feature breaks
	    compiling.  (Peter Winters)
Solution:   Check for zero room for wrapped text.  Make compiling without
	    vertical splits possible.
Files:	    src/move.c, src/quickfix.c, src/screen.c, src/netbeans.c

Patch 6.3.059
Problem:    Crash when expanding an ":edit" command containing several spaces
	    with the shell. (Brian Hirt)
Solution:   Allocate enough space for the quotes.
Files:	    src/os_unix.c

Patch 6.3.060
Problem:    Using CTRL-R CTRL-O in Insert mode with an invalid register name
	    still causes something to be inserted.
Solution:   Check the register name for being valid.
Files:	    src/edit.c

Patch 6.3.061
Problem:    When editing a utf-8 file in an utf-8 xterm and there is a
	    multi-byte character in the last column, displaying is messed up.
	    (Joël Rio)
Solution:   Check for a multi-byte character, not a multi-column character.
Files:	    src/screen.c

Patch 6.3.062
Problem:    ":normal! gQ" hangs.
Solution:   Quit getcmdline() and do_exmode() when out of typeahead.
Files:	    src/ex_getln.c, src/ex_docmd.c

Patch 6.3.063
Problem:    When a CursorHold autocommand changes to another window
	    (temporarily) 'mousefocus' stops working.
Solution:   Call gui_mouse_correct() after triggering CursorHold.
Files:	    src/gui.c

Patch 6.3.064
Problem:    line2byte(line("$") + 1) sometimes returns the wrong number.
	    (Charles Campbell)
Solution:   Flush the cached line before counting the bytes.
Files:	    src/memline.c

Patch 6.3.065
Problem:    The euro digraph doesn't always work.
Solution:   Add an "e=" digraph for Unicode euro character and adjust the
	    help files.
Files:	    src/digraph.c, runtime/doc/digraph.txt

Patch 6.3.066
Problem:    Backup file may get wrong permissions.
Solution:   Use permissions of original file for backup file in more places.
Files:	    src/fileio.c

Patch 6.3.067 (after 6.3.066)
Problem:    Newly created file gets execute permission.
Solution:   Check for "perm" to be negative before using it.
Files:	    src/fileio.c

Patch 6.3.068
Problem:    When editing a compressed file xxx.gz which is a symbolic link to
	    the actual file a ":write" renames the link.
Solution:   Resolve the link, so that the actual file is renamed and
	    compressed.
Files:	    runtime/plugin/gzip.vim

Patch 6.3.069
Problem:    When converting text with illegal characters Vim may crash.
Solution:   Avoid that too much is subtracted from the length. (Da Woon Jung)
Files:	    src/mbyte.c

Patch 6.3.070
Problem:    After ":set number linebreak wrap" and a vertical split, moving
	    the vertical separator far left will crash Vim. (Georg Dahn)
Solution:   Avoid dividing by zero.
Files:	    src/charset.c

Patch 6.3.071
Problem:    The message for CTRL-X mode is still displayed after an error for
	    'thesaurus' or 'dictionary' being empty.
Solution:   Clear "edit_submode".
Files:	    src/edit.c

Patch 6.3.072
Problem:    Crash in giving substitute message when language is Chinese and
	    encoding is utf-8. (Yongwei)
Solution:   Make the msg_buf size larger when using multi-byte.
Files:	    src/vim.h

Patch 6.3.073
Problem:    Win32 GUI: When the Vim window is partly above or below the
	    screen, scrolling causes display errors when the taskbar is not on
	    that side.
Solution:   Use the SW_INVALIDATE flag when the Vim window is partly below or
	    above the screen.
Files:	    src/gui_w48.c

Patch 6.3.074
Problem:    When mswin.vim is used and 'insertmode' is set, typing text in
	    Select mode and then using CTRL-V results in <SNR>99_Pastegi.
	    (Georg Dahn)
Solution:   When restart_edit is set use "d" instead of "c" to remove the
	    selected text to avoid calling edit() twice.
Files:	    src/normal.c

Patch 6.3.075
Problem:    After unloading another buffer, syntax highlighting in the current
	    buffer may be wrong when it uses "containedin". (Eric Arnold)
Solution:   Use "buf" instead of "curbuf" in syntax_clear().
Files:	    src/syntax.c

Patch 6.3.076
Problem:    Crash when using cscope and there is a parse error (e.g., line too
	    long). (Alexey I. Froloff)
Solution:   Pass the actual number of matches to cs_manage_matches() and
	    correctly handle the error situation.
Files:	    src/if_cscope.c

Patch 6.3.077 (extra)
Problem:    VMS: First character input after ESC was not recognized.
Solution:   Added TRM$M_TM_TIMED in vms_read().  (Zoltan Arpadffy)
Files:	    src/os_vms.c

Patch 6.3.078 (extra, after 6.3.077)
Problem:    VMS: Performance issue after patch 6.3.077
Solution:   Add a timeout in the itemlist.  (Zoltan Arpadffy)
Files:	    src/os_vms.c

Patch 6.3.079
Problem:    Crash when executing a command in the command line window while
	    syntax highlighting is enabled. (Pero Brbora)
Solution:   Don't use a pointer to a buffer that has been deleted.
Files:	    src/syntax.c

Patch 6.3.080 (extra)
Problem:    Win32: With 'encoding' set to utf-8 while the current codepage is
	    Chinese editing a file with some specific characters in the name
	    fails.
Solution:   Use _wfullpath() instead of _fullpath() when necessary.
Files:	    src/os_mswin.c

Patch 6.3.081
Problem:    Unix: glob() may execute a shell command when it's not wanted.
	    (Georgi Guninski)
Solution:   Verify the sandbox flag is not set.
Files:	    src/os_unix.c

Patch 6.3.082 (after 6.3.081)
Problem:    Unix: expand() may execute a shell command when it's not wanted.
	    (Georgi Guninski)
Solution:   A more generic solution than 6.3.081.
Files:	    src/os_unix.c

Patch 6.3.083
Problem:    VMS: The vt320 termcap entry is incomplete.
Solution:   Add missing function keys.  (Zoltan Arpadffy)
Files:	    src/term.c

Patch 6.3.084 (extra)
Problem:    Cygwin: compiling with DEBUG doesn't work.  Perl path was ignored.
	    Failure when $(OUTDIR) already exists.  "po" makefile is missing.
Solution:   Use changes tested in Vim 7. (Tony Mechelynck)
Files:	    src/Make_cyg.mak, src/po/Make_cyg.mak

Patch 6.3.085
Problem:    Crash in syntax highlighting code. (Marc Espie)
Solution:   Prevent current_col going past the end of the line.
Files:	    src/syntax.c

Patch 6.3.086 (extra)
Problem:    Can't produce message translation file with msgfmt that checks
	    printf strings.
Solution:   Fix the Russian translation.
Files:	    src/po/ru.po, src/po/ru.cp1251.po

Patch 6.3.087
Problem:    MS-DOS: Crash. (Jason Hood)
Solution:   Don't call fname_case() with a NULL pointer.
Files:	    src/ex_cmds.c

Patch 6.3.088
Problem:    Editing ".in" causes error E218. (Stefan Karlsson)
Solution:   Require some characters before ".in".  Same for ".orig" and others.
Files:	    runtime/filetype.vim

Patch 6.3.089
Problem:    A session file doesn't work when created while the current
	    directory contains a space or the directory of the session files
	    contains a space. (Paolo Giarrusso)
Solution:   Escape spaces with a backslash.
Files:	    src/ex_docmd.c

Patch 6.3.090
Problem:    A very big value for 'columns' or 'lines' may cause a crash.
Solution:   Limit the values to 10000 and 1000.
Files:	    src/option.c

Patch 6.4a.001
Problem:    The Unix Makefile contained too many dependencies and a few
	    uncommented lines.
Solution:   Run "make depend" with manual changes to avoid a gcc
	    incompatibility.  Comment a few lines.
Files:	    src/Makefile

Patch 6.4b.001
Problem:    Vim reports "Vim 6.4a" in the ":version" output.
Solution:   Change "a" to "b". (Tony Mechelynck)
Files:	    src/version.h

Patch 6.4b.002
Problem:    In Insert mode, pasting a multi-byte character after the end of
	    the line leaves the cursor just before that character.
Solution:   Make sure "gP" leaves the cursor in the right place when
	    'virtualedit' is set.
Files:	    src/ops.c

Patch 6.4b.003 (after 6.4b.002)
Problem:    The problem still exists when 'encoding' is set to "cp936".
Solution:   Fix the problem in getvvcol(), compute the coladd field correctly.
Files:	    src/charset.c, src/ops.c

Patch 6.4b.004
Problem:    Selecting a {} block with "viB" includes the '}' when there is an
	    empty line before it.
Solution:   Don't advance the cursor to include a line break when it's already
	    at the line break.
Files:	    src/search.c


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�=�=�vim80/doc/spell.txtnu�[���*spell.txt*	For Vim version 8.0.  Last change: 2018 Mar 29


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


Spell checking						*spell*

1. Quick start			|spell-quickstart|
2. Remarks on spell checking	|spell-remarks|
3. Generating a spell file	|spell-mkspell|
4. Spell file format		|spell-file-format|

{Vi does not have any of these commands}

Spell checking is not available when the |+syntax| feature has been disabled
at compile time.

Note: There also is a vimspell plugin.  If you have it you can do ":help
vimspell" to find about it.  But you will probably want to get rid of the
plugin and use the 'spell' option instead, it works better.

==============================================================================
1. Quick start					*spell-quickstart* *E756*

This command switches on spell checking: >

	:setlocal spell spelllang=en_us

This switches on the 'spell' option and specifies to check for US English.

The words that are not recognized are highlighted with one of these:
	SpellBad	word not recognized			|hl-SpellBad|
	SpellCap	word not capitalised			|hl-SpellCap|
	SpellRare	rare word				|hl-SpellRare|
	SpellLocal	wrong spelling for selected region	|hl-SpellLocal|

Vim only checks words for spelling, there is no grammar check.

If the 'mousemodel' option is set to "popup" and the cursor is on a badly
spelled word or it is "popup_setpos" and the mouse pointer is on a badly
spelled word, then the popup menu will contain a submenu to replace the bad
word.  Note: this slows down the appearance of the popup menu.  Note for GTK:
don't release the right mouse button until the menu appears, otherwise it
won't work.

To search for the next misspelled word:

							*]s*
]s			Move to next misspelled word after the cursor.
			A count before the command can be used to repeat.
			'wrapscan' applies.

							*[s*
[s			Like "]s" but search backwards, find the misspelled
			word before the cursor.  Doesn't recognize words
			split over two lines, thus may stop at words that are
			not highlighted as bad.  Does not stop at word with
			missing capital at the start of a line.

							*]S*
]S			Like "]s" but only stop at bad words, not at rare
			words or words for another region.

							*[S*
[S			Like "]S" but search backwards.


To add words to your own word list:

							*zg*
zg			Add word under the cursor as a good word to the first
			name in 'spellfile'.  A count may precede the command
			to indicate the entry in 'spellfile' to be used.  A
			count of two uses the second entry.

			In Visual mode the selected characters are added as a
			word (including white space!).
			When the cursor is on text that is marked as badly
			spelled then the marked text is used.
			Otherwise the word under the cursor, separated by
			non-word characters, is used.

			If the word is explicitly marked as bad word in
			another spell file the result is unpredictable.

							*zG*
zG			Like "zg" but add the word to the internal word list
			|internal-wordlist|.

							*zw*
zw			Like "zg" but mark the word as a wrong (bad) word.
			If the word already appears in 'spellfile' it is
			turned into a comment line.  See |spellfile-cleanup|
			for getting rid of those.

							*zW*
zW			Like "zw" but add the word to the internal word list
			|internal-wordlist|.

zuw							*zug* *zuw*
zug			Undo |zw| and |zg|, remove the word from the entry in
			'spellfile'.  Count used as with |zg|.

zuW							*zuG* *zuW*
zuG			Undo |zW| and |zG|, remove the word from the internal
			word list.  Count used as with |zg|.

							*:spe* *:spellgood*
:[count]spe[llgood] {word}
			Add {word} as a good word to 'spellfile', like with
			|zg|.  Without count the first name is used, with a
			count of two the second entry, etc.

:spe[llgood]! {word}	Add {word} as a good word to the internal word list,
			like with |zG|.

							*:spellw* *:spellwrong*
:[count]spellw[rong] {word}
			Add {word} as a wrong (bad) word to 'spellfile', as
			with |zw|.  Without count the first name is used, with
			a count of two the second entry, etc.

:spellw[rong]! {word}	Add {word} as a wrong (bad) word to the internal word
			list, like with |zW|.

:[count]spellu[ndo] {word}				*:spellu* *:spellundo*
			Like |zuw|.  [count] used as with |:spellgood|.

:spellu[ndo]! {word}	Like |zuW|.  [count] used as with |:spellgood|.


After adding a word to 'spellfile' with the above commands its associated
".spl" file will automatically be updated and reloaded.  If you change
'spellfile' manually you need to use the |:mkspell| command.  This sequence of
commands mostly works well: >
	:edit <file in 'spellfile'>
<	(make changes to the spell file) >
	:mkspell! %

More details about the 'spellfile' format below |spell-wordlist-format|.

							*internal-wordlist*
The internal word list is used for all buffers where 'spell' is set.  It is
not stored, it is lost when you exit Vim.  It is also cleared when 'encoding'
is set.


Finding suggestions for bad words:
							*z=*
z=			For the word under/after the cursor suggest correctly
			spelled words.  This also works to find alternatives
			for a word that is not highlighted as a bad word,
			e.g., when the word after it is bad.
			In Visual mode the highlighted text is taken as the
			word to be replaced.
			The results are sorted on similarity to the word being
			replaced.
			This may take a long time.  Hit CTRL-C when you get
			bored.

			If the command is used without a count the
			alternatives are listed and you can enter the number
			of your choice or press <Enter> if you don't want to
			replace.  You can also use the mouse to click on your
			choice (only works if the mouse can be used in Normal
			mode and when there are no line wraps).  Click on the
			first line (the header) to cancel.

			The suggestions listed normally replace a highlighted
			bad word.  Sometimes they include other text, in that
			case the replaced text is also listed after a "<".

			If a count is used that suggestion is used, without
			prompting.  For example, "1z=" always takes the first
			suggestion.

			If 'verbose' is non-zero a score will be displayed
			with the suggestions to indicate the likeliness to the
			badly spelled word (the higher the score the more
			different).
			When a word was replaced the redo command "." will
			repeat the word replacement.  This works like "ciw",
			the good word and <Esc>.  This does NOT work for Thai
			and other languages without spaces between words.

					*:spellr* *:spellrepall* *E752* *E753*
:spellr[epall]		Repeat the replacement done by |z=| for all matches
			with the replaced word in the current window.

In Insert mode, when the cursor is after a badly spelled word, you can use
CTRL-X s to find suggestions.  This works like Insert mode completion.  Use
CTRL-N to use the next suggestion, CTRL-P to go back. |i_CTRL-X_s|

The 'spellsuggest' option influences how the list of suggestions is generated
and sorted.  See |'spellsuggest'|.

The 'spellcapcheck' option is used to check the first word of a sentence
starts with a capital.  This doesn't work for the first word in the file.
When there is a line break right after a sentence the highlighting of the next
line may be postponed.  Use |CTRL-L| when needed.  Also see |set-spc-auto| for
how it can be set automatically when 'spelllang' is set.

Vim counts the number of times a good word is encountered.  This is used to
sort the suggestions: words that have been seen before get a small bonus,
words that have been seen often get a bigger bonus.  The COMMON item in the
affix file can be used to define common words, so that this mechanism also
works in a new or short file |spell-COMMON|.

==============================================================================
2. Remarks on spell checking				*spell-remarks*

PERFORMANCE

Vim does on-the-fly spell checking.  To make this work fast the word list is
loaded in memory.  Thus this uses a lot of memory (1 Mbyte or more).  There
might also be a noticeable delay when the word list is loaded, which happens
when 'spell' is set and when 'spelllang' is set while 'spell' was already set.
To minimize the delay each word list is only loaded once, it is not deleted
when 'spelllang' is made empty or 'spell' is reset.  When 'encoding' is set
all the word lists are reloaded, thus you may notice a delay then too.


REGIONS

A word may be spelled differently in various regions.  For example, English
comes in (at least) these variants:

	en		all regions
	en_au		Australia
	en_ca		Canada
	en_gb		Great Britain
	en_nz		New Zealand
	en_us		USA

Words that are not used in one region but are used in another region are
highlighted with SpellLocal |hl-SpellLocal|.

Always use lowercase letters for the language and region names.

When adding a word with |zg| or another command it's always added for all
regions.  You can change that by manually editing the 'spellfile'.  See
|spell-wordlist-format|.  Note that the regions as specified in the files in
'spellfile' are only used when all entries in 'spelllang' specify the same
region (not counting files specified by their .spl name).

							*spell-german*
Specific exception: For German these special regions are used:
	de		all German words accepted
	de_de		old and new spelling
	de_19		old spelling
	de_20		new spelling
	de_at		Austria
	de_ch		Switzerland

							*spell-russian*
Specific exception: For Russian these special regions are used:
	ru		all Russian words accepted
	ru_ru		"IE" letter spelling
	ru_yo		"YO" letter spelling

							*spell-yiddish*
Yiddish requires using "utf-8" encoding, because of the special characters
used.  If you are using latin1 Vim will use transliterated (romanized) Yiddish
instead.  If you want to use transliterated Yiddish with utf-8 use "yi-tr".
In a table:
	'encoding'	'spelllang'
	utf-8		yi		Yiddish
	latin1		yi		transliterated Yiddish
	utf-8		yi-tr		transliterated Yiddish

							*spell-cjk*
Chinese, Japanese and other East Asian characters are normally marked as
errors, because spell checking of these characters is not supported. If
'spelllang' includes "cjk", these characters are not marked as errors.  This
is useful when editing text with spell checking while some Asian words are
present.


SPELL FILES						*spell-load*

Vim searches for spell files in the "spell" subdirectory of the directories in
'runtimepath'.  The name is: LL.EEE.spl, where:
	LL	the language name
	EEE	the value of 'encoding'

The value for "LL" comes from 'spelllang', but excludes the region name.
Examples:
	'spelllang'	LL ~
	en_us		en
	en-rare		en-rare
	medical_ca	medical

Only the first file is loaded, the one that is first in 'runtimepath'.  If
this succeeds then additionally files with the name LL.EEE.add.spl are loaded.
All the ones that are found are used.

If no spell file is found the |SpellFileMissing| autocommand event is
triggered.  This may trigger the |spellfile.vim| plugin to offer you
downloading the spell file.

Additionally, the files related to the names in 'spellfile' are loaded.  These
are the files that |zg| and |zw| add good and wrong words to.

Exceptions:
- Vim uses "latin1" when 'encoding' is "iso-8859-15".  The euro sign doesn't
  matter for spelling.
- When no spell file for 'encoding' is found "ascii" is tried.  This only
  works for languages where nearly all words are ASCII, such as English.  It
  helps when 'encoding' is not "latin1", such as iso-8859-2, and English text
  is being edited.  For the ".add" files the same name as the found main
  spell file is used.

For example, with these values:
	'runtimepath' is "~/.vim,/usr/share/vim70,~/.vim/after"
	'encoding'    is "iso-8859-2"
	'spelllang'   is "pl"

Vim will look for:
1. ~/.vim/spell/pl.iso-8859-2.spl
2. /usr/share/vim70/spell/pl.iso-8859-2.spl
3. ~/.vim/spell/pl.iso-8859-2.add.spl
4. /usr/share/vim70/spell/pl.iso-8859-2.add.spl
5. ~/.vim/after/spell/pl.iso-8859-2.add.spl

This assumes 1. is not found and 2. is found.

If 'encoding' is "latin1" Vim will look for:
1. ~/.vim/spell/pl.latin1.spl
2. /usr/share/vim70/spell/pl.latin1.spl
3. ~/.vim/after/spell/pl.latin1.spl
4. ~/.vim/spell/pl.ascii.spl
5. /usr/share/vim70/spell/pl.ascii.spl
6. ~/.vim/after/spell/pl.ascii.spl

This assumes none of them are found (Polish doesn't make sense when leaving
out the non-ASCII characters).

Spelling for EBCDIC is currently not supported.

A spell file might not be available in the current 'encoding'.  See
|spell-mkspell| about how to create a spell file.  Converting a spell file
with "iconv" will NOT work!

Note: on VMS ".{enc}.spl" is changed to "_{enc}.spl" to avoid trouble with
filenames.

						    *spell-sug-file* *E781*
If there is a file with exactly the same name as the ".spl" file but ending in
".sug", that file will be used for giving better suggestions.  It isn't loaded
before suggestions are made to reduce memory use.

				    *E758* *E759* *E778* *E779* *E780* *E782*
When loading a spell file Vim checks that it is properly formatted.  If you
get an error the file may be truncated, modified or intended for another Vim
version.


SPELLFILE CLEANUP					*spellfile-cleanup*

The |zw| command turns existing entries in 'spellfile' into comment lines.
This avoids having to write a new file every time, but results in the file
only getting longer, never shorter.  To clean up the comment lines in all
".add" spell files do this: >
	:runtime spell/cleanadd.vim

This deletes all comment lines, except the ones that start with "##".  Use
"##" lines to add comments that you want to keep.

You can invoke this script as often as you like.  A variable is provided to
skip updating files that have been changed recently.  Set it to the number of
seconds that has passed since a file was changed before it will be cleaned.
For example, to clean only files that were not changed in the last hour: >
      let g:spell_clean_limit = 60 * 60
The default is one second.


WORDS

Vim uses a fixed method to recognize a word.  This is independent of
'iskeyword', so that it also works in help files and for languages that
include characters like '-' in 'iskeyword'.  The word characters do depend on
'encoding'.

The table with word characters is stored in the main .spl file.  Therefore it
matters what the current locale is when generating it!  A .add.spl file does
not contain a word table though.

For a word that starts with a digit the digit is ignored, unless the word as a
whole is recognized.  Thus if "3D" is a word and "D" is not then "3D" is
recognized as a word, but if "3D" is not a word then only the "D" is marked as
bad.  Hex numbers in the form 0x12ab and 0X12AB are recognized.


WORD COMBINATIONS

It is possible to spell-check words that include a space.  This is used to
recognize words that are invalid when used by themselves, e.g. for "et al.".
It can also be used to recognize "the the" and highlight it.

The number of spaces is irrelevant.  In most cases a line break may also
appear.  However, this makes it difficult to find out where to start checking
for spelling mistakes.  When you make a change to one line and only that line
is redrawn Vim won't look in the previous line, thus when "et" is at the end
of the previous line "al." will be flagged as an error.  And when you type
"the<CR>the" the highlighting doesn't appear until the first line is redrawn.
Use |CTRL-L| to redraw right away.  "[s" will also stop at a word combination
with a line break.

When encountering a line break Vim skips characters such as '*', '>' and '"',
so that comments in C, shell and Vim code can be spell checked.


SYNTAX HIGHLIGHTING					*spell-syntax*

Files that use syntax highlighting can specify where spell checking should be
done:

1.  everywhere			   default
2.  in specific items		   use "contains=@Spell"
3.  everywhere but specific items  use "contains=@NoSpell"

For the second method adding the @NoSpell cluster will disable spell checking
again.  This can be used, for example, to add @Spell to the comments of a
program, and add @NoSpell for items that shouldn't be checked.
Also see |:syn-spell| for text that is not in a syntax item.


VIM SCRIPTS

If you want to write a Vim script that does something with spelling, you may
find these functions useful:

    spellbadword()	find badly spelled word at the cursor
    spellsuggest()	get list of spelling suggestions
    soundfold()		get the sound-a-like version of a word


SETTING 'spellcapcheck' AUTOMATICALLY			*set-spc-auto*

After the 'spelllang' option has been set successfully, Vim will source the
files "spell/LANG.vim" in 'runtimepath'.  "LANG" is the value of 'spelllang'
up to the first comma, dot or underscore.  This can be used to set options
specifically for the language, especially 'spellcapcheck'.

The distribution includes a few of these files.  Use this command to see what
they do: >
	:next $VIMRUNTIME/spell/*.vim

Note that the default scripts don't set 'spellcapcheck' if it was changed from
the default value.  This assumes the user prefers another value then.


DOUBLE SCORING						*spell-double-scoring*

The 'spellsuggest' option can be used to select "double" scoring.  This
mechanism is based on the principle that there are two kinds of spelling
mistakes:

1. You know how to spell the word, but mistype something.  This results in a
   small editing distance (character swapped/omitted/inserted) and possibly a
   word that sounds completely different.

2. You don't know how to spell the word and type something that sounds right.
   The edit distance can be big but the word is similar after sound-folding.

Since scores for these two mistakes will be very different we use a list
for each and mix them.

The sound-folding is slow and people that know the language won't make the
second kind of mistakes.  Therefore 'spellsuggest' can be set to select the
preferred method for scoring the suggestions.

==============================================================================
3. Generating a spell file				*spell-mkspell*

Vim uses a binary file format for spelling.  This greatly speeds up loading
the word list and keeps it small.
						    *.aff* *.dic* *Myspell*
You can create a Vim spell file from the .aff and .dic files that Myspell
uses.  Myspell is used by OpenOffice.org and Mozilla. The OpenOffice .oxt
files are zip files which contain the .aff and .dic files. You should be able
to find them here:
	http://extensions.services.openoffice.org/dictionary
The older, OpenOffice 2 files may be used if this doesn't work:
	http://wiki.services.openoffice.org/wiki/Dictionaries
You can also use a plain word list.  The results are the same, the choice
depends on what word lists you can find.

If you install Aap (from www.a-a-p.org) you can use the recipes in the
runtime/spell/??/ directories.  Aap will take care of downloading the files,
apply patches needed for Vim and build the .spl file.

Make sure your current locale is set properly, otherwise Vim doesn't know what
characters are upper/lower case letters.  If the locale isn't available (e.g.,
when using an MS-Windows codepage on Unix) add tables to the .aff file
|spell-affix-chars|.  If the .aff file doesn't define a table then the word
table of the currently active spelling is used.  If spelling is not active
then Vim will try to guess.

							*:mksp* *:mkspell*
:mksp[ell][!] [-ascii] {outname} {inname} ...
			Generate a Vim spell file from word lists.  Example: >
		:mkspell /tmp/nl nl_NL.words
<								*E751*
			When {outname} ends in ".spl" it is used as the output
			file name.  Otherwise it should be a language name,
			such as "en", without the region name.  The file
			written will be "{outname}.{encoding}.spl", where
			{encoding} is the value of the 'encoding' option.

			When the output file already exists [!] must be used
			to overwrite it.

			When the [-ascii] argument is present, words with
			non-ascii characters are skipped.  The resulting file
			ends in "ascii.spl".

			The input can be the Myspell format files {inname}.aff
			and {inname}.dic.  If {inname}.aff does not exist then
			{inname} is used as the file name of a plain word
			list.

			Multiple {inname} arguments can be given to combine
			regions into one Vim spell file.  Example: >
		:mkspell ~/.vim/spell/en /tmp/en_US /tmp/en_CA /tmp/en_AU
<			This combines the English word lists for US, CA and AU
			into one en.spl file.
			Up to eight regions can be combined. *E754* *E755*
			The REP and SAL items of the first .aff file where
			they appear are used. |spell-REP| |spell-SAL|
								*E845*
			This command uses a lot of memory, required to find
			the optimal word tree (Polish, Italian and Hungarian
			require several hundred Mbyte).  The final result will
			be much smaller, because compression is used.  To
			avoid running out of memory compression will be done
			now and then.  This can be tuned with the 'mkspellmem'
			option.

			After the spell file was written and it was being used
			in a buffer it will be reloaded automatically.

:mksp[ell] [-ascii] {name}.{enc}.add
			Like ":mkspell" above, using {name}.{enc}.add as the
			input file and producing an output file in the same
			directory that has ".spl" appended.

:mksp[ell] [-ascii] {name}
			Like ":mkspell" above, using {name} as the input file
			and producing an output file in the same directory
			that has ".{enc}.spl" appended.

Vim will report the number of duplicate words.  This might be a mistake in the
list of words.  But sometimes it is used to have different prefixes and
suffixes for the same basic word to avoid them combining (e.g. Czech uses
this).  If you want Vim to report all duplicate words set the 'verbose'
option.

Since you might want to change a Myspell word list for use with Vim the
following procedure is recommended:

1. Obtain the xx_YY.aff and xx_YY.dic files from Myspell.
2. Make a copy of these files to xx_YY.orig.aff and xx_YY.orig.dic.
3. Change the xx_YY.aff and xx_YY.dic files to remove bad words, add missing
   words, define word characters with FOL/LOW/UPP, etc.  The distributed
   "*.diff" files can be used.
4. Start Vim with the right locale and use |:mkspell| to generate the Vim
   spell file.
5. Try out the spell file with ":set spell spelllang=xx" if you wrote it in
   a spell directory in 'runtimepath', or ":set spelllang=xx.enc.spl" if you
   wrote it somewhere else.

When the Myspell files are updated you can merge the differences:
1. Obtain the new Myspell files as xx_YY.new.aff and xx_UU.new.dic.
2. Use Vimdiff to see what changed: >
	vimdiff xx_YY.orig.dic xx_YY.new.dic
3. Take over the changes you like in xx_YY.dic.
   You may also need to change xx_YY.aff.
4. Rename xx_YY.new.dic to xx_YY.orig.dic and xx_YY.new.aff to xx_YY.new.aff.


SPELL FILE VERSIONS					*E770* *E771* *E772*

Spell checking is a relatively new feature in Vim, thus it's possible that the
.spl file format will be changed to support more languages.  Vim will check
the validity of the spell file and report anything wrong.

	E771: Old spell file, needs to be updated ~
This spell file is older than your Vim.  You need to update the .spl file.

	E772: Spell file is for newer version of Vim ~
This means the spell file was made for a later version of Vim.  You need to
update Vim.

	E770: Unsupported section in spell file ~
This means the spell file was made for a later version of Vim and contains a
section that is required for the spell file to work.  In this case it's
probably a good idea to upgrade your Vim.


SPELL FILE DUMP

If for some reason you want to check what words are supported by the currently
used spelling files, use this command:

							*:spelldump* *:spelld*
:spelld[ump]		Open a new window and fill it with all currently valid
			words.  Compound words are not included.
			Note: For some languages the result may be enormous,
			causing Vim to run out of memory.

:spelld[ump]!		Like ":spelldump" and include the word count.  This is
			the number of times the word was found while
			updating the screen.  Words that are in COMMON items
			get a starting count of 10.

The format of the word list is used |spell-wordlist-format|.  You should be
able to read it with ":mkspell" to generate one .spl file that includes all
the words.

When all entries to 'spelllang' use the same regions or no regions at all then
the region information is included in the dumped words.  Otherwise only words
for the current region are included and no "/regions" line is generated.

Comment lines with the name of the .spl file are used as a header above the
words that were generated from that .spl file.


SPELL FILE MISSING		*spell-SpellFileMissing* *spellfile.vim*

If the spell file for the language you are using is not available, you will
get an error message.  But if the "spellfile.vim" plugin is active it will
offer you to download the spell file.  Just follow the instructions, it will
ask you where to write the file (there must be a writable directory in
'runtimepath' for this).

The plugin has a default place where to look for spell files, on the Vim ftp
server.  If you want to use another location or another protocol, set the
g:spellfile_URL variable to the directory that holds the spell files.  The
|netrw| plugin is used for getting the file, look there for the specific
syntax of the URL.  Example: >
	let g:spellfile_URL = 'http://ftp.vim.org/vim/runtime/spell'
You may need to escape special characters.

The plugin will only ask about downloading a language once.  If you want to
try again anyway restart Vim, or set g:spellfile_URL to another value (e.g.,
prepend a space).

To avoid using the "spellfile.vim" plugin do this in your vimrc file: >

	let loaded_spellfile_plugin = 1

Instead of using the plugin you can define a |SpellFileMissing| autocommand to
handle the missing file yourself.  You can use it like this: >

	:au SpellFileMissing * call Download_spell_file(expand('<amatch>'))

Thus the <amatch> item contains the name of the language.  Another important
value is 'encoding', since every encoding has its own spell file.  With two
exceptions:
- For ISO-8859-15 (latin9) the name "latin1" is used (the encodings only
  differ in characters not used in dictionary words).
- The name "ascii" may also be used for some languages where the words use
  only ASCII letters for most of the words.

The default "spellfile.vim" plugin uses this autocommand, if you define your
autocommand afterwards you may want to use ":au! SpellFileMissing" to overrule
it.  If you define your autocommand before the plugin is loaded it will notice
this and not do anything.
							*E797*
Note that the SpellFileMissing autocommand must not change or destroy the
buffer the user was editing.

==============================================================================
4. Spell file format					*spell-file-format*

This is the format of the files that are used by the person who creates and
maintains a word list.

Note that we avoid the word "dictionary" here.  That is because the goal of
spell checking differs from writing a dictionary (as in the book).  For
spelling we need a list of words that are OK, thus should not be highlighted.
Person and company names will not appear in a dictionary, but do appear in a
word list.  And some old words are rarely used while they are common
misspellings.  These do appear in a dictionary but not in a word list.

There are two formats: A straight list of words and a list using affix
compression.  The files with affix compression are used by Myspell (Mozilla
and OpenOffice.org).  This requires two files, one with .aff and one with .dic
extension.


FORMAT OF STRAIGHT WORD LIST				*spell-wordlist-format*

The words must appear one per line.  That is all that is required.

Additionally the following items are recognized:

- Empty and blank lines are ignored.

	# comment ~
- Lines starting with a # are ignored (comment lines).

	/encoding=utf-8 ~
- A line starting with "/encoding=", before any word, specifies the encoding
  of the file.  After the second '=' comes an encoding name.  This tells Vim
  to setup conversion from the specified encoding to 'encoding'.  Thus you can
  use one word list for several target encodings.

	/regions=usca ~
- A line starting with "/regions=" specifies the region names that are
  supported.  Each region name must be two ASCII letters.  The first one is
  region 1.  Thus "/regions=usca" has region 1 "us" and region 2 "ca".
  In an addition word list the region names should be equal to the main word
  list!

- Other lines starting with '/' are reserved for future use.  The ones that
  are not recognized are ignored.  You do get a warning message, so that you
  know something won't work.

- A "/" may follow the word with the following items:
    =		Case must match exactly.
    ?		Rare word.
    !		Bad (wrong) word.
    1 to 9	A region in which the word is valid.  If no regions are
		specified the word is valid in all regions.

Example:

	# This is an example word list		comment
	/encoding=latin1			encoding of the file
	/regions=uscagb				regions "us", "ca" and "gb"
	example					word for all regions
	blah/12					word for regions "us" and "ca"
	vim/!					bad word
	Campbell/?3				rare word in region 3 "gb"
	's mornings/=				keep-case word

Note that when "/=" is used the same word with all upper-case letters is not
accepted.  This is different from a word with mixed case that is automatically
marked as keep-case, those words may appear in all upper-case letters.


FORMAT WITH .AFF AND .DIC FILES				*aff-dic-format*

There are two files: the basic word list and an affix file.  The affix file
specifies settings for the language and can contain affixes.  The affixes are
used to modify the basic words to get the full word list.  This significantly
reduces the number of words, especially for a language like Polish.  This is
called affix compression.

The basic word list and the affix file are combined with the ":mkspell"
command and results in a binary spell file.  All the preprocessing has been
done, thus this file loads fast.  The binary spell file format is described in
the source code (src/spell.c).  But only developers need to know about it.

The preprocessing also allows us to take the Myspell language files and modify
them before the Vim word list is made.  The tools for this can be found in the
"src/spell" directory.

The format for the affix and word list files is based on what Myspell uses
(the spell checker of Mozilla and OpenOffice.org).  A description can be found
here:
	http://lingucomponent.openoffice.org/affix.readme ~
Note that affixes are case sensitive, this isn't obvious from the description.

Vim supports quite a few extras.  They are described below |spell-affix-vim|.
Attempts have been made to keep this compatible with other spell checkers, so
that the same files can often be used.  One other project that offers more
than Myspell is Hunspell ( http://hunspell.sf.net ).


WORD LIST FORMAT				*spell-dic-format*

A short example, with line numbers:

	1	1234 ~
	2	aan ~
	3	Als ~
	4	Etten-Leur ~
	5	et al. ~
	6	's-Gravenhage ~
	7	's-Gravenhaags ~
	8	# word that differs between regions ~
	9	kado/1 ~
	10	cadeau/2 ~
	11	TCP,IP ~
	12	/the S affix may add a 's' ~
	13	bedel/S ~

The first line contains the number of words.  Vim ignores it, but you do get
an error message if it's not there.  *E760*

What follows is one word per line.  White space at the end of the line is
ignored, all other white space matters.  The encoding is specified in the
affix file |spell-SET|.

Comment lines start with '#' or '/'.  See the example lines 8 and 12.  Note
that putting a comment after a word is NOT allowed:

		someword   # comment that causes an error! ~

After the word there is an optional slash and flags.  Most of these flags are
letters that indicate the affixes that can be used with this word.  These are
specified with SFX and PFX lines in the .aff file, see |spell-SFX| and
|spell-PFX|.  Vim allows using other flag types with the FLAG item in the
affix file |spell-FLAG|.

When the word only has lower-case letters it will also match with the word
starting with an upper-case letter.

When the word includes an upper-case letter, this means the upper-case letter
is required at this position.  The same word with a lower-case letter at this
position will not match. When some of the other letters are upper-case it will
not match either.

The word with all upper-case characters will always be OK,

	word list	matches			does not match ~
	als		als Als ALS		ALs AlS aLs aLS
	Als		Als  ALS		als ALs AlS aLs aLS
	ALS		ALS			als Als ALs AlS aLs aLS
	AlS		AlS ALS			als Als ALs aLs aLS

The KEEPCASE affix ID can be used to specifically match a word with identical
case only, see below |spell-KEEPCASE|.

Note: in line 5 to 7 non-word characters are used.  You can include any
character in a word.  When checking the text a word still only matches when it
appears with a non-word character before and after it.  For Myspell a word
starting with a non-word character probably won't work.

In line 12 the word "TCP/IP" is defined.  Since the slash has a special
meaning the comma is used instead.  This is defined with the SLASH item in the
affix file, see |spell-SLASH|.  Note that without this SLASH item the word
will be "TCP,IP".


AFFIX FILE FORMAT			*spell-aff-format* *spell-affix-vim*

							*spell-affix-comment*
Comment lines in the .aff file start with a '#':

	# comment line ~

Items with a fixed number of arguments can be followed by a comment.  But only
if none of the arguments can contain white space.  The comment must start with
a "#" character.  Example:

	KEEPCASE =  # fix case for words with this flag ~


ENCODING							*spell-SET*

The affix file can be in any encoding that is supported by "iconv".  However,
in some cases the current locale should also be set properly at the time
|:mkspell| is invoked.  Adding FOL/LOW/UPP lines removes this requirement
|spell-FOL|.

The encoding should be specified before anything where the encoding matters.
The encoding applies both to the affix file and the dictionary file.  It is
done with a SET line:

	SET utf-8 ~

The encoding can be different from the value of the 'encoding' option at the
time ":mkspell" is used.  Vim will then convert everything to 'encoding' and
generate a spell file for 'encoding'.  If some of the used characters to not
fit in 'encoding' you will get an error message.
							*spell-affix-mbyte*
When using a multi-byte encoding it's possible to use more different affix
flags.  But Myspell doesn't support that, thus you may not want to use it
anyway.  For compatibility use an 8-bit encoding.


INFORMATION

These entries in the affix file can be used to add information to the spell
file.  There are no restrictions on the format, but they should be in the
right encoding.

				*spell-NAME* *spell-VERSION* *spell-HOME*
				*spell-AUTHOR* *spell-EMAIL* *spell-COPYRIGHT*
	NAME		Name of the language
	VERSION		1.0.1  with fixes
	HOME		http://www.myhome.eu
	AUTHOR		John Doe
	EMAIL		john AT Doe DOT net
	COPYRIGHT	LGPL

These fields are put in the .spl file as-is.  The |:spellinfo| command can be
used to view the info.

							*:spellinfo* *:spelli*
:spelli[nfo]		Display the information for the spell file(s) used for
			the current buffer.


CHARACTER TABLES
							*spell-affix-chars*
When using an 8-bit encoding the affix file should define what characters are
word characters.  This is because the system where ":mkspell" is used may not
support a locale with this encoding and isalpha() won't work.  For example
when using "cp1250" on Unix.
						*E761* *E762* *spell-FOL*
						*spell-LOW* *spell-UPP*
Three lines in the affix file are needed.  Simplistic example:

	FOL  áëñ ~
	LOW  áëñ ~
	UPP  ÁËÑ ~

All three lines must have exactly the same number of characters.

The "FOL" line specifies the case-folded characters.  These are used to
compare words while ignoring case.  For most encodings this is identical to
the lower case line.

The "LOW" line specifies the characters in lower-case.  Mostly it's equal to
the "FOL" line.

The "UPP" line specifies the characters with upper-case.  That is, a character
is upper-case where it's different from the character at the same position in
"FOL".

An exception is made for the German sharp s ß.  The upper-case version is
"SS".  In the FOL/LOW/UPP lines it should be included, so that it's recognized
as a word character, but use the ß character in all three.

ASCII characters should be omitted, Vim always handles these in the same way.
When the encoding is UTF-8 no word characters need to be specified.

							*E763*
Vim allows you to use spell checking for several languages in the same file.
You can list them in the 'spelllang' option.  As a consequence all spell files
for the same encoding must use the same word characters, otherwise they can't
be combined without errors.

If you get an E763 warning that the word tables differ you need to update your
".spl" spell files.  If you downloaded the files, get the latest version of
all spell files you use.  If you are only using one, e.g., German, then also
download the recent English spell files.  Otherwise generate the .spl file
again with |:mkspell|.  If you still get errors check the FOL, LOW and UPP
lines in the used .aff files.

The XX.ascii.spl spell file generated with the "-ascii" argument will not
contain the table with characters, so that it can be combine with spell files
for any encoding.  The .add.spl files also do not contain the table.


MID-WORD CHARACTERS
							*spell-midword*
Some characters are only to be considered word characters if they are used in
between two ordinary word characters.  An example is the single quote: It is
often used to put text in quotes, thus it can't be recognized as a word
character, but when it appears in between word characters it must be part of
the word.  This is needed to detect a spelling error such as they'are.  That
should be they're, but since "they" and "are" are words themselves that would
go unnoticed.

These characters are defined with MIDWORD in the .aff file.  Example:

	MIDWORD	'- ~


FLAG TYPES						*spell-FLAG*

Flags are used to specify the affixes that can be used with a word and for
other properties of the word.  Normally single-character flags are used.  This
limits the number of possible flags, especially for 8-bit encodings.  The FLAG
item can be used if more affixes are to be used.  Possible values:

	FLAG long	use two-character flags
	FLAG num	use numbers, from 1 up to 65000
	FLAG caplong	use one-character flags without A-Z and two-character
			flags that start with A-Z

With "FLAG num" the numbers in a list of affixes need to be separated with a
comma: "234,2143,1435".  This method is inefficient, but useful if the file is
generated with a program.

When using "caplong" the two-character flags all start with a capital: "Aa",
"B1", "BB", etc.  This is useful to use one-character flags for the most
common items and two-character flags for uncommon items.

Note: When using utf-8 only characters up to 65000 may be used for flags.

Note: even when using "num" or "long" the number of flags available to
compounding and prefixes is limited to about 250.


AFFIXES
					    *spell-PFX* *spell-SFX*
The usual PFX (prefix) and SFX (suffix) lines are supported (see the Myspell
documentation or the Aspell manual:
http://aspell.net/man-html/Affix-Compression.html).

Summary:
	SFX L Y 2 ~
	SFX L 0 re [^x] ~
	SFX L 0 ro x ~

The first line is a header and has four fields:
	SFX {flag} {combine} {count}

{flag}		The name used for the suffix.  Mostly it's a single letter,
		but other characters can be used, see |spell-FLAG|.

{combine}	Can be 'Y' or 'N'.  When 'Y' then the word plus suffix can
		also have a prefix.  When 'N' then a prefix is not allowed.

{count}		The number of lines following.  If this is wrong you will get
		an error message.

For PFX the fields are exactly the same.

The basic format for the following lines is:
	SFX {flag} {strip} {add} {condition} {extra}

{flag}		Must be the same as the {flag} used in the first line.

{strip}		Characters removed from the basic word.  There is no check if
		the characters are actually there, only the length is used (in
		bytes).  This better match the {condition}, otherwise strange
		things may happen.  If the {strip} length is equal to or
		longer than the basic word the suffix won't be used.
		When {strip} is 0 (zero) then nothing is stripped.

{add}		Characters added to the basic word, after removing {strip}.
		Optionally there is a '/' followed by flags.  The flags apply
		to the word plus affix.  See |spell-affix-flags|

{condition}	A simplistic pattern.  Only when this matches with a basic
		word will the suffix be used for that word.  This is normally
		for using one suffix letter with different {add} and {strip}
		fields for words with different endings.
		When {condition} is a . (dot) there is no condition.
		The pattern may contain:
		- Literal characters.
		- A set of characters in []. [abc] matches a, b and c.
		  A dash is allowed for a range [a-c], but this is
		  Vim-specific.
		- A set of characters that starts with a ^, meaning the
		  complement of the specified characters. [^abc] matches any
		  character but a, b and c.

{extra}		Optional extra text:
		    # comment		Comment is ignored
		    -			Hunspell uses this, ignored

For PFX the fields are the same, but the {strip}, {add} and {condition} apply
to the start of the word.

Note: Myspell ignores any extra text after the relevant info.  Vim requires
this text to start with a "#" so that mistakes don't go unnoticed.  Example:

	SFX F 0 in   [^i]n      # Spion > Spionin  ~
	SFX F 0 nen  in		# Bauerin > Bauerinnen ~

However, to avoid lots of errors in affix files written for Myspell, you can
add the IGNOREEXTRA flag.

Apparently Myspell allows an affix name to appear more than once.  Since this
might also be a mistake, Vim checks for an extra "S".  The affix files for
Myspell that use this feature apparently have this flag.  Example:

	SFX a Y 1 S ~
	SFX a 0 an . ~

	SFX a Y 2 S ~
	SFX a 0 en . ~
	SFX a 0 on . ~


AFFIX FLAGS						*spell-affix-flags*

This is a feature that comes from Hunspell: The affix may specify flags.  This
works similar to flags specified on a basic word.  The flags apply to the
basic word plus the affix (but there are restrictions).  Example:

	SFX S Y 1 ~
	SFX S 0 s . ~

	SFX A Y 1 ~
	SFX A 0 able/S . ~

When the dictionary file contains "drink/AS" then these words are possible:

	drink
	drinks		uses S suffix
	drinkable	uses A suffix
	drinkables	uses A suffix and then S suffix

Generally the flags of the suffix are added to the flags of the basic word,
both are used for the word plus suffix.  But the flags of the basic word are
only used once for affixes, except that both one prefix and one suffix can be
used when both support combining.

Specifically, the affix flags can be used for:
- Suffixes on suffixes, as in the example above.  This works once, thus you
  can have two suffixes on a word (plus one prefix).
- Making the word with the affix rare, by using the |spell-RARE| flag.
- Exclude the word with the affix from compounding, by using the
  |spell-COMPOUNDFORBIDFLAG| flag.
- Allow the word with the affix to be part of a compound word on the side of
  the affix with the |spell-COMPOUNDPERMITFLAG|.
- Use the NEEDCOMPOUND flag: word plus affix can only be used as part of a
  compound word. |spell-NEEDCOMPOUND|
- Compound flags: word plus affix can be part of a compound word at the end,
  middle, start, etc.  The flags are combined with the flags of the basic
  word.  |spell-compound|
- NEEDAFFIX: another affix is needed to make a valid word.
- CIRCUMFIX, as explained just below.


IGNOREEXTRA						*spell-IGNOREEXTRA*

Normally Vim gives an error for an extra field that does not start with '#'.
This avoids errors going unnoticed.  However, some files created for Myspell
or Hunspell may contain many entries with an extra field.  Use the IGNOREEXTRA
flag to avoid lots of errors.


CIRCUMFIX						*spell-CIRCUMFIX*

The CIRCUMFIX flag means a prefix and suffix must be added at the same time.
If a prefix has the CIRCUMFIX flag than only suffixes with the CIRCUMFIX flag
can be added, and the other way around.
An alternative is to only specify the suffix, and give the that suffix two
flags: The required prefix and the NEEDAFFIX flag.  |spell-NEEDAFFIX|


PFXPOSTPONE						*spell-PFXPOSTPONE*

When an affix file has very many prefixes that apply to many words it's not
possible to build the whole word list in memory.  This applies to Hebrew (a
list with all words is over a Gbyte).  In that case applying prefixes must be
postponed.  This makes spell checking slower.  It is indicated by this keyword
in the .aff file:

	PFXPOSTPONE ~

Only prefixes without a chop string and without flags can be postponed.
Prefixes with a chop string or with flags will still be included in the word
list.  An exception if the chop string is one character and equal to the last
character of the added string, but in lower case.  Thus when the chop string
is used to allow the following word to start with an upper case letter.


WORDS WITH A SLASH					*spell-SLASH*

The slash is used in the .dic file to separate the basic word from the affix
letters and other flags.  Unfortunately, this means you cannot use a slash in
a word.  Thus "TCP/IP" is not a word but "TCP" with the flags "IP".  To include
a slash in the word put a backslash before it: "TCP\/IP".  In the rare case
you want to use a backslash inside a word you need to use two backslashes.
Any other use of the backslash is reserved for future expansion.


KEEP-CASE WORDS						*spell-KEEPCASE*

In the affix file a KEEPCASE line can be used to define the affix name used
for keep-case words.  Example:

	KEEPCASE = ~

This flag is not supported by Myspell.  It has the meaning that case matters.
This can be used if the word does not have the first letter in upper case at
the start of a sentence.  Example:

    word list	    matches		    does not match ~
    's morgens/=    's morgens		    'S morgens 's Morgens 'S MORGENS
    's Morgens	    's Morgens 'S MORGENS   'S morgens 's morgens

The flag can also be used to avoid that the word matches when it is in all
upper-case letters.


RARE WORDS						*spell-RARE*

In the affix file a RARE line can be used to define the affix name used for
rare words.  Example:

	RARE ? ~

Rare words are highlighted differently from bad words.  This is to be used for
words that are correct for the language, but are hardly ever used and could be
a typing mistake anyway.  When the same word is found as good it won't be
highlighted as rare.

This flag can also be used on an affix, so that a basic word is not rare but
the basic word plus affix is rare |spell-affix-flags|.  However, if the word
also appears as a good word in another way (e.g., in another region) it won't
be marked as rare.


BAD WORDS						*spell-BAD*

In the affix file a BAD line can be used to define the affix name used for
bad words.  Example:

	BAD ! ~

This can be used to exclude words that would otherwise be good.  For example
"the the" in the .dic file:

	the the/! ~

Once a word has been marked as bad it won't be undone by encountering the same
word as good.

The flag also applies to the word with affixes, thus this can be used to mark
a whole bunch of related words as bad.

							*spell-FORBIDDENWORD*
FORBIDDENWORD can be used just like BAD.  For compatibility with Hunspell.

							*spell-NEEDAFFIX*
The NEEDAFFIX flag is used to require that a word is used with an affix.  The
word itself is not a good word (unless there is an empty affix).  Example:

	NEEDAFFIX + ~


COMPOUND WORDS						*spell-compound*

A compound word is a longer word made by concatenating words that appear in
the .dic file.  To specify which words may be concatenated a character is
used.  This character is put in the list of affixes after the word.  We will
call this character a flag here.  Obviously these flags must be different from
any affix IDs used.

							*spell-COMPOUNDFLAG*
The Myspell compatible method uses one flag, specified with COMPOUNDFLAG.  All
words with this flag combine in any order.  This means there is no control
over which word comes first.  Example:
	COMPOUNDFLAG c ~

							*spell-COMPOUNDRULE*
A more advanced method to specify how compound words can be formed uses
multiple items with multiple flags.  This is not compatible with Myspell 3.0.
Let's start with an example:
	COMPOUNDRULE c+ ~
	COMPOUNDRULE se ~

The first line defines that words with the "c" flag can be concatenated in any
order.  The second line defines compound words that are made of one word with
the "s" flag and one word with the "e" flag.  With this dictionary:
	bork/c ~
	onion/s ~
	soup/e ~

You can make these words:
	bork
	borkbork
	borkborkbork
	(etc.)
	onion
	soup
	onionsoup

The COMPOUNDRULE item may appear multiple times.  The argument is made out of
one or more groups, where each group can be:
	one flag			e.g., c
	alternate flags inside []	e.g., [abc]
Optionally this may be followed by:
	*	the group appears zero or more times, e.g., sm*e
	+	the group appears one or more times, e.g., c+
	?	the group appears zero times or once, e.g., x?

This is similar to the regexp pattern syntax (but not the same!).  A few
examples with the sequence of word flags they require:
    COMPOUNDRULE x+	    x xx xxx etc.
    COMPOUNDRULE yz	    yz
    COMPOUNDRULE x+z	    xz xxz xxxz etc.
    COMPOUNDRULE yx+	    yx yxx yxxx etc.
    COMPOUNDRULE xy?z	    xz xyz

    COMPOUNDRULE [abc]z    az bz cz
    COMPOUNDRULE [abc]+z   az aaz abaz bz baz bcbz cz caz cbaz etc.
    COMPOUNDRULE a[xyz]+   ax axx axyz ay ayx ayzz az azy azxy etc.
    COMPOUNDRULE sm*e	    se sme smme smmme etc.
    COMPOUNDRULE s[xyz]*e  se sxe sxye sxyxe sye syze sze szye szyxe  etc.

A specific example: Allow a compound to be made of two words and a dash:
	In the .aff file:
	    COMPOUNDRULE sde ~
	    NEEDAFFIX x ~
	    COMPOUNDWORDMAX 3 ~
	    COMPOUNDMIN 1 ~
	In the .dic file:
	    start/s ~
	    end/e ~
	    -/xd ~

This allows for the word "start-end", but not "startend".

An additional implied rule is that, without further flags, a word with a
prefix cannot be compounded after another word, and a word with a suffix
cannot be compounded with a following word.  Thus the affix cannot appear
on the inside of a compound word.  This can be changed with the
|spell-COMPOUNDPERMITFLAG|.

							*spell-NEEDCOMPOUND*
The NEEDCOMPOUND flag is used to require that a word is used as part of a
compound word.  The word itself is not a good word.  Example:

	NEEDCOMPOUND & ~

							*spell-ONLYINCOMPOUND*
The ONLYINCOMPOUND does exactly the same as NEEDCOMPOUND.  Supported for
compatibility with Hunspell.

							*spell-COMPOUNDMIN*
The minimal character length of a word used for compounding is specified with
COMPOUNDMIN.  Example:
	COMPOUNDMIN 5 ~

When omitted there is no minimal length.  Obviously you could just leave out
the compound flag from short words instead, this feature is present for
compatibility with Myspell.

							*spell-COMPOUNDWORDMAX*
The maximum number of words that can be concatenated into a compound word is
specified with COMPOUNDWORDMAX.  Example:
	COMPOUNDWORDMAX 3 ~

When omitted there is no maximum.  It applies to all compound words.

To set a limit for words with specific flags make sure the items in
COMPOUNDRULE where they appear don't allow too many words.

							*spell-COMPOUNDSYLMAX*
The maximum number of syllables that a compound word may contain is specified
with COMPOUNDSYLMAX.  Example:
	COMPOUNDSYLMAX 6 ~

This has no effect if there is no SYLLABLE item.  Without COMPOUNDSYLMAX there
is no limit on the number of syllables.

If both COMPOUNDWORDMAX and COMPOUNDSYLMAX are defined, a compound word is
accepted if it fits one of the criteria, thus is either made from up to
COMPOUNDWORDMAX words or contains up to COMPOUNDSYLMAX syllables.

						    *spell-COMPOUNDFORBIDFLAG*
The COMPOUNDFORBIDFLAG specifies a flag that can be used on an affix.  It
means that the word plus affix cannot be used in a compound word.  Example:
	affix file:
		COMPOUNDFLAG c ~
		COMPOUNDFORBIDFLAG x ~
		SFX a Y 2 ~
		SFX a 0 s   . ~
		SFX a 0 ize/x . ~
	dictionary:
		word/c ~
		util/ac ~

This allows for "wordutil" and "wordutils" but not "wordutilize".
Note: this doesn't work for postponed prefixes yet.

						    *spell-COMPOUNDPERMITFLAG*
The COMPOUNDPERMITFLAG specifies a flag that can be used on an affix.  It
means that the word plus affix can also be used in a compound word in a way
where the affix ends up halfway the word.  Without this flag that is not
allowed.
Note: this doesn't work for postponed prefixes yet.

						    *spell-COMPOUNDROOT*
The COMPOUNDROOT flag is used for words in the dictionary that are already a
compound.  This means it counts for two words when checking the compounding
rules.  Can also be used for an affix to count the affix as a compounding
word.

						*spell-CHECKCOMPOUNDPATTERN*
CHECKCOMPOUNDPATTERN is used to define patterns that, when matching at the
position where two words are compounded together forbids the compound.
For example:
	CHECKCOMPOUNDPATTERN o e ~

This forbids compounding if the first word ends in "o" and the second word
starts with "e".

The arguments must be plain text, no patterns are actually supported, despite
the item name.  Case is always ignored.

The Hunspell feature to use three arguments and flags is not supported.

							*spell-NOCOMPOUNDSUGS*
This item indicates that using compounding to make suggestions is not a good
idea.  Use this when compounding is used with very short or one-character
words.  E.g. to make numbers out of digits.  Without this flag creating
suggestions would spend most time trying all kind of weird compound words.

	NOCOMPOUNDSUGS ~

							*spell-SYLLABLE*
The SYLLABLE item defines characters or character sequences that are used to
count the number of syllables in a word.  Example:
	SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui ~

Before the first slash is the set of characters that are counted for one
syllable, also when repeated and mixed, until the next character that is not
in this set.  After the slash come sequences of characters that are counted
for one syllable.  These are preferred over using characters from the set.
With the example "ideeen" has three syllables, counted by "i", "ee" and "e".

Only case-folded letters need to be included.

Another way to restrict compounding was mentioned above: Adding the
|spell-COMPOUNDFORBIDFLAG| flag to an affix causes all words that are made
with that affix to not be used for compounding.


UNLIMITED COMPOUNDING					*spell-NOBREAK*

For some languages, such as Thai, there is no space in between words.  This
looks like all words are compounded.  To specify this use the NOBREAK item in
the affix file, without arguments:
	NOBREAK ~

Vim will try to figure out where one word ends and a next starts.  When there
are spelling mistakes this may not be quite right.


							*spell-COMMON*
Common words can be specified with the COMMON item.  This will give better
suggestions when editing a short file.  Example:

	COMMON  the of to and a in is it you that he was for on are ~

The words must be separated by white space, up to 25 per line.
When multiple regions are specified in a ":mkspell" command the common words
for all regions are combined and used for all regions.

							*spell-NOSPLITSUGS*
This item indicates that splitting a word to make suggestions is not a good
idea.  Split-word suggestions will appear only when there are few similar
words.

	NOSPLITSUGS ~

							*spell-NOSUGGEST*
The flag specified with NOSUGGEST can be used for words that will not be
suggested.  Can be used for obscene words.

	NOSUGGEST % ~


REPLACEMENTS						*spell-REP*

In the affix file REP items can be used to define common mistakes.  This is
used to make spelling suggestions.  The items define the "from" text and the
"to" replacement.  Example:

	REP 4 ~
	REP f ph ~
	REP ph f ~
	REP k ch ~
	REP ch k ~

The first line specifies the number of REP lines following.  Vim ignores the
number, but it must be there (for compatibility with Myspell).

Don't include simple one-character replacements or swaps.  Vim will try these
anyway.  You can include whole words if you want to, but you might want to use
the "file:" item in 'spellsuggest' instead.

You can include a space by using an underscore:

	REP the_the the ~


SIMILAR CHARACTERS					*spell-MAP* *E783*

In the affix file MAP items can be used to define letters that are very much
alike.  This is mostly used for a letter with different accents.  This is used
to prefer suggestions with these letters substituted.  Example:

	MAP 2 ~
	MAP eéëêè ~
	MAP uüùúû ~

The first line specifies the number of MAP lines following.  Vim ignores the
number, but the line must be there.

Each letter must appear in only one of the MAP items.  It's a bit more
efficient if the first letter is ASCII or at least one without accents.


.SUG FILE						*spell-NOSUGFILE*

When soundfolding is specified in the affix file then ":mkspell" will normally
produce a .sug file next to the .spl file.  This file is used to find
suggestions by their sound-a-like form quickly.  At the cost of a lot of
memory (the amount depends on the number of words, |:mkspell| will display an
estimate when it's done).

To avoid producing a .sug file use this item in the affix file:

	NOSUGFILE ~

Users can simply omit the .sug file if they don't want to use it.


SOUND-A-LIKE						*spell-SAL*

In the affix file SAL items can be used to define the sounds-a-like mechanism
to be used.  The main items define the "from" text and the "to" replacement.
Simplistic example:

	SAL CIA			 X ~
	SAL CH			 X ~
	SAL C			 K ~
	SAL K			 K ~

There are a few rules and this can become quite complicated.  An explanation
how it works can be found in the Aspell manual:
http://aspell.net/man-html/Phonetic-Code.html.

There are a few special items:

	SAL followup		true ~
	SAL collapse_result	true ~
	SAL remove_accents	true ~

"1" has the same meaning as "true".  Any other value means "false".


SIMPLE SOUNDFOLDING				*spell-SOFOFROM* *spell-SOFOTO*

The SAL mechanism is complex and slow.  A simpler mechanism is mapping all
characters to another character, mapping similar sounding characters to the
same character.  At the same time this does case folding.  You can not have
both SAL items and simple soundfolding.

There are two items required: one to specify the characters that are mapped
and one that specifies the characters they are mapped to.  They must have
exactly the same number of characters.  Example:

    SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ~
    SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkes ~

In the example all vowels are mapped to the same character 'e'.  Another
method would be to leave out all vowels.  Some characters that sound nearly
the same and are often mixed up, such as 'm' and 'n', are mapped to the same
character.  Don't do this too much, all words will start looking alike.

Characters that do not appear in SOFOFROM will be left out, except that all
white space is replaced by one space.  Sequences of the same character in
SOFOFROM are replaced by one.

You can use the |soundfold()| function to try out the results.  Or set the
'verbose' option to see the score in the output of the |z=| command.


UNSUPPORTED ITEMS				*spell-affix-not-supported*

These items appear in the affix file of other spell checkers.  In Vim they are
ignored, not supported or defined in another way.

ACCENT		(Hunspell)				*spell-ACCENT*
		Use MAP instead. |spell-MAP|

BREAK		(Hunspell)				*spell-BREAK*
		Define break points.  Unclear how it works exactly.
		Not supported.

CHECKCOMPOUNDCASE  (Hunspell)			*spell-CHECKCOMPOUNDCASE*
		Disallow uppercase letters at compound word boundaries.
		Not supported.

CHECKCOMPOUNDDUP  (Hunspell)			*spell-CHECKCOMPOUNDDUP*
		Disallow using the same word twice in a compound.  Not
		supported.

CHECKCOMPOUNDREP  (Hunspell)			*spell-CHECKCOMPOUNDREP*
		Something about using REP items and compound words.  Not
		supported.

CHECKCOMPOUNDTRIPLE  (Hunspell)			*spell-CHECKCOMPOUNDTRIPLE*
		Forbid three identical characters when compounding.  Not
		supported.

COMPLEXPREFIXES  (Hunspell)				*spell-COMPLEXPREFIXES*
		Enables using two prefixes.  Not supported.

COMPOUND	(Hunspell)				*spell-COMPOUND*
		This is one line with the count of COMPOUND items, followed by
		that many COMPOUND lines with a pattern.
		Remove the first line with the count and rename the other
		items to COMPOUNDRULE |spell-COMPOUNDRULE|

COMPOUNDFIRST	(Hunspell)				*spell-COMPOUNDFIRST*
		Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|

COMPOUNDBEGIN	(Hunspell)				*spell-COMPOUNDBEGIN*
		Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|

COMPOUNDEND	(Hunspell)				*spell-COMPOUNDEND*
		Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|

COMPOUNDMIDDLE	(Hunspell)				*spell-COMPOUNDMIDDLE*
		Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|

COMPOUNDRULES	(Hunspell)				*spell-COMPOUNDRULES*
		Number of COMPOUNDRULE lines following.  Ignored, but the
		argument must be a number.

COMPOUNDSYLLABLE  (Hunspell)			*spell-COMPOUNDSYLLABLE*
		Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE|
		|spell-COMPOUNDSYLMAX|

KEY		(Hunspell)				*spell-KEY*
		Define characters that are close together on the keyboard.
		Used to give better suggestions.  Not supported.

LANG		(Hunspell)				*spell-LANG*
		This specifies language-specific behavior.  This actually
		moves part of the language knowledge into the program,
		therefore Vim does not support it.  Each language property
		must be specified separately.

LEMMA_PRESENT	(Hunspell)				*spell-LEMMA_PRESENT*
		Only needed for morphological analysis.

MAXNGRAMSUGS	(Hunspell)				*spell-MAXNGRAMSUGS*
		Set number of n-gram suggestions.  Not supported.

PSEUDOROOT	(Hunspell)				*spell-PSEUDOROOT*
		Use NEEDAFFIX instead. |spell-NEEDAFFIX|

SUGSWITHDOTS	(Hunspell)				*spell-SUGSWITHDOTS*
		Adds dots to suggestions.  Vim doesn't need this.

SYLLABLENUM	(Hunspell)				*spell-SYLLABLENUM*
		Not supported.

TRY		(Myspell, Hunspell, others)		*spell-TRY*
		Vim does not use the TRY item, it is ignored.  For making
		suggestions the actual characters in the words are used, that
		is much more efficient.

WORDCHARS	(Hunspell)				*spell-WORDCHARS*
		Used to recognize words.  Vim doesn't need it, because there
		is no need to separate words before checking them (using a
		trie instead of a hashtable).

 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z�0S���vim80/doc/if_ole.txtnu�[���*if_ole.txt*    For Vim version 8.0.  Last change: 2008 Aug 16


		  VIM REFERENCE MANUAL    by Paul Moore


The OLE Interface to Vim				*ole-interface*

1. Activation			|ole-activation|
2. Methods			|ole-methods|
3. The "normal" command		|ole-normal|
4. Registration			|ole-registration|
5. MS Visual Studio integration	|MSVisualStudio|

{Vi does not have any of these commands}

OLE is only available when compiled with the |+ole| feature.  See
src/if_ole.INSTALL.
An alternative is using the client-server communication |clientserver|.

==============================================================================
1. Activation						*ole-activation*

Vim acts as an OLE automation server, accessible from any automation client,
for example, Visual Basic, Python, or Perl.  The Vim application "name" (its
"ProgID", in OLE terminology) is "Vim.Application".

Hence, in order to start a Vim instance (or connect to an already running
instance), code similar to the following should be used:

[Visual Basic] >
	Dim Vim As Object
	Set Vim = CreateObject("Vim.Application")

[Python] >
	from win32com.client.dynamic import Dispatch
	vim = Dispatch('Vim.Application')

[Perl] >
	use Win32::OLE;
	$vim = new Win32::OLE 'Vim.Application';

[C#] >
        // Add a reference to Vim in your project. 
        // Choose the COM tab.
        // Select "Vim Ole Interface 1.1 Type Library"
	Vim.Vim vimobj = new Vim.Vim();

Vim does not support acting as a "hidden" OLE server, like some other OLE
Automation servers.  When a client starts up an instance of Vim, that instance
is immediately visible.  Simply closing the OLE connection to the Vim instance
is not enough to shut down the Vim instance - it is necessary to explicitly
execute a quit command (for example, :qa!, :wqa).

==============================================================================
2. Methods						*ole-methods*

Vim exposes four methods for use by clients.

							*ole-sendkeys*
SendKeys(keys)		Execute a series of keys.

This method takes a single parameter, which is a string of keystrokes.  These
keystrokes are executed exactly as if they had been types in at the keyboard.
Special keys can be given using their <..> names, as for the right hand side
of a mapping.  Note: Execution of the Ex "normal" command is not supported -
see below |ole-normal|.

Examples (Visual Basic syntax) >
	Vim.SendKeys "ihello<Esc>"
	Vim.SendKeys "ma1GV4jy`a"

These examples assume that Vim starts in Normal mode.  To force Normal mode,
start the key sequence with CTRL-\ CTRL-N as in >

	Vim.SendKeys "<C-\><C-N>ihello<Esc>"

CTRL-\ CTRL-N returns Vim to Normal mode, when in Insert or Command-line mode.
Note that this doesn't work halfway a Vim command

							*ole-eval*
Eval(expr)		Evaluate an expression.

This method takes a single parameter, which is an expression in Vim's normal
format (see |expression|).  It returns a string, which is the result of
evaluating the expression.  A |List| is turned into a string by joining the
items and inserting line breaks.

Examples (Visual Basic syntax) >
	Line20 = Vim.Eval("getline(20)")
	Twelve = Vim.Eval("6 + 6")		' Note this is a STRING
	Font = Vim.Eval("&guifont")
<
							*ole-setforeground*
SetForeground()		Make the Vim window come to the foreground

This method takes no arguments.  No value is returned.

Example (Visual Basic syntax) >
	Vim.SetForeground
<

							*ole-gethwnd*
GetHwnd()		Return the handle of the Vim window.

This method takes no arguments.  It returns the hwnd of the main Vimwindow.
You can use this if you are writing something which needs to manipulate the
Vim window, or to track it in the z-order, etc.

Example (Visual Basic syntax) >
	Vim_Hwnd = Vim.GetHwnd
<

==============================================================================
3. The "normal" command					*ole-normal*

Due to the way Vim processes OLE Automation commands, combined with the method
of implementation of the Ex command :normal, it is not possible to execute the
:normal command via OLE automation.  Any attempt to do so will fail, probably
harmlessly, although possibly in unpredictable ways.

There is currently no practical way to trap this situation, and users must
simply be aware of the limitation.
==============================================================================
4. Registration					*ole-registration* *E243*

Before Vim will act as an OLE server, it must be registered in the system
registry.  In order to do this, Vim should be run with a single parameter of
"-register".
							*-register*  >
	gvim -register

If gvim with OLE support is run and notices that no Vim OLE server has been
registered, it will present a dialog and offers you the choice to register by
clicking "Yes".

In some situations registering is not possible.  This happens when the
registry is not writable.  If you run into this problem you need to run gvim
as "Administrator".

Once vim is registered, the application path is stored in the registry.
Before moving, deleting, or upgrading Vim, the registry entries should be
removed using the "-unregister" switch.
							*-unregister*  >
	gvim -unregister

The OLE mechanism will use the first registered Vim it finds.  If a Vim is
already running, this one will be used.  If you want to have (several) Vim
sessions open that should not react to OLE commands, use the non-OLE version,
and put it in a different directory.  The OLE version should then be put in a
directory that is not in your normal path, so that typing "gvim" will start
the non-OLE version.

							*-silent*
To avoid the message box that pops up to report the result, prepend "-silent":
>
	gvim -silent -register
	gvim -silent -unregister

==============================================================================
5. MS Visual Studio integration			*MSVisualStudio* *VisVim*

The OLE version can be used to run Vim as the editor in Microsoft Visual
Studio.  This is called "VisVim".  It is included in the archive that contains
the OLE version.  The documentation can be found in the runtime directory, the
README_VisVim.txt file.


Using Vim with Visual Studio .Net~

With .Net you no longer really need VisVim, since .Net studio has support for
external editors.  Follow these directions:

In .Net Studio choose from the menu Tools->External Tools...
Add
     Title     - Vim
     Command   - c:\vim\vim63\gvim.exe
     Arguments - --servername VS_NET --remote-silent "+call cursor($(CurLine), $(CurCol))" $(ItemPath)
     Init Dir  - Empty

Now, when you open a file in .Net, you can choose from the .Net menu:
Tools->Vim

That will open the file in Vim.
You can then add this external command as an icon and place it anywhere you
like.  You might also be able to set this as your default editor.

If you refine this further, please post back to the Vim maillist so we have a
record of it.

--servername VS_NET
This will create a new instance of vim called VS_NET.  So if you open multiple
files from VS, they will use the same instance of Vim.  This allows you to
have multiple copies of Vim running, but you can control which one has VS
files in it.

--remote-silent "+call cursor(10, 27)"
	      - Places the cursor on line 10 column 27
In Vim >
   :h --remote-silent for more details

[.Net remarks provided by Dave Fishburn and Brian Sturk]

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���R6R6vim80/doc/version4.txtnu�[���*version4.txt*  For Vim version 8.0.  Last change: 2006 Apr 24


		  VIM REFERENCE MANUAL    by Bram Moolenaar


This document lists the incompatible differences between Vim 3.0 and Vim 4.0.
Although 4.0 is mentioned here, this is also for version 4.1, 4.2, etc..

This file is important for everybody upgrading from Vim 3.0.  Read it
carefully to avoid unexpected problems.

'backup' option default changed			|backup-changed|
Extension for backup file changed		|backup-extension|
Structure of swap file changed			|swapfile-changed|
"-w scriptout" argument changed			|scriptout-changed|
Backspace and Delete keys			|backspace-delete|
Escape for | changed				|escape-bar|
Key codes changed				|key-codes-changed|
Terminal options changed			|termcap-changed|
'errorformat' option changed			|errorformat-changed|
'graphic' option gone				|graphic-option-gone|
'yankendofline' option gone			|ye-option-gone|
'icon' and 'title' default value changed	|icon-changed|
'highlight' option changed			|highlight-changed|
'tildeop' and 'weirdinvert' short names changed	|short-name-changed|
Use of "v", "V" and "CTRL-V" in Visual mode	|use-visual-cmds|
CTRL-B in Insert mode removed			|toggle-revins|


'backup' option default changed				*backup-changed*
-------------------------------

The default value for 'backup' used to be on.  This resulted in a backup file
being made when the original file was overwritten.

Now the default for 'backup' is off.  As soon as the writing of the file has
successfully finished, the backup file is deleted.  If you want to keep the
backup file, set 'backup' on in your vimrc.  The reason for this change is
that many people complained that leaving a backup file behind is not
Vi-compatible.						|'backup'|


Extension for backup file changed			*backup-extension*
---------------------------------

The extension for the backup file used to be ".bak".  Since other programs
also use this extension and some users make copies with this extension, it was
changed to the less obvious "~".  Another advantage is that this takes less
space, which is useful when working on a system with short file names.  For
example, on MS-DOS the backup files for "longfile.c" and "longfile.h" would
both become "longfile.bak"; now they will be "longfile.c~" and "longfile.h~".

If you prefer to use ".bak", you can set the 'backupext' option: >
	:set bex=.bak


Structure of swap file changed				*swapfile-changed*
------------------------------

The contents of the swap file were extended with several parameters.  Vim
stores the user name and other information about the edited file to make
recovery more easy and to be able to know where the swap file comes from.  The
first part of the swap file can now be understood on a machine with a
different byte order or sizeof(int).  When you try to recover a file on such a
machine, you will get an error message that this is not possible.

Because of this change, swap files cannot be exchanged between 3.0 and 4.0.
If you have a swap file from a crashed session with 3.0, use Vim 3.0 to
recover the file---don't use 4.0.			|swap-file|


"-w scriptout" argument changed				*scriptout-changed*
-------------------------------

"vim -w scriptout" used to append to the scriptout file.  Since this was
illogical, it now creates a new file.  An existing file is not overwritten
(to avoid destroying an existing file for those who rely on the appending).
[This was removed again later]					|-w|


Backspace and Delete keys				*backspace-delete*
-------------------------

In 3.0 both the delete key and the backspace key worked as a backspace in
insert mode; they deleted the character to the left of the cursor.  In 4.0 the
delete key has a new function: it deletes the character under the cursor, just
like it does on the command-line.  If the cursor is after the end of the line
and 'bs' is set, two lines are joined.			|<Del>| |i_<Del>|

In 3.0 the backspace key was always defined as CTRL-H and delete as CTRL-?.
In 4.0 the code for the backspace and delete key is obtained from termcap or
termlib, and adjusted for the "stty erase" value on Unix.  This helps people
who define the erase character according to the keyboard they are working on.
							|<BS>| |i_<BS>|

If you prefer backspace and delete in Insert mode to have the old behavior,
put this line in your vimrc:

	inoremap ^? ^H

And you may also want to add these, to fix the values for <BS> and <Del>:

	set t_kb=^H
	set t_kD=^?

(Enter ^H with CTRL-V CTRL-H and ^? with CTRL-V CTRL-? or <Del>.)

If the value for t_kb is correct, but the t_kD value is not, use the ":fixdel"
command.  It will set t_kD according to the value of t_kb.  This is useful if
you are using several different terminals.		|:fixdel|

When ^H is not recognized as <BS> or <Del>, it is used like a backspace.


Escape for | changed					*escape-bar*
--------------------

When the 'b' flag is present in 'cpoptions', the backslash cannot be used to
escape '|' in mapping and abbreviate commands, only CTRL-V can.  This is
Vi-compatible.  If you work in Vi-compatible mode and had used "\|" to include
a bar in a mapping, this needs to be replaced by "^V|".  See |:bar|.


Key codes changed					*key-codes-changed*
-----------------

The internal representation of key codes has changed dramatically.  In 3.0 a
one-byte code was used to represent a key.  This caused problems with
different characters sets that also used these codes.  In 4.0 a three-byte
code is used that cannot be confused with a character.		|key-notation|

If you have used the single-byte key codes in your vimrc for mappings, you
will have to replace them with the 4.0 codes.  Instead of using the three-byte
code directly, you should use the symbolic representation for this in <>.  See
the table below.  The table also lists the old name, as it was used in the 3.0
documentation.

The key names in <> can be used in mappings directly.  This makes it possible
to copy/paste examples or type them literally.  The <> notation has been
introduced for this |<>|.  The 'B' and '<' flags must not be present in
'cpoptions' to enable this to work |'cpoptions'|.

old name	new name	  old code	old MS-DOS code	~
				hex	dec	hex	dec	~
<ESC>		<Esc>
<TAB>		<Tab>
<LF>		<NL> <NewLine> <LineFeed>
<SPACE>		<Space>
<NUL>		<Nul>
<BELL>		<Bell>
<BS>		<BS> <BackSpace>
<INSERT>	<Insert>
<DEL>		<Del> <Delete>
<HOME>		<Home>
<END>		<End>
<PAGE_UP>	<PageUp>
<PAGE_DOWN>	<PageDown>

<C_UP>		<Up>		0x80	128	0xb0	176
<C_DOWN>	<Down>		0x81	129     0xb1	177
<C_LEFT>	<Left>		0x82	130     0xb2	178
<C_RIGHT>	<Right>		0x83	131     0xb3	179
<SC_UP>		<S-Up>		0x84	132     0xb4	180
<SC_DOWN>	<S-Down>	0x85	133     0xb5	181
<SC_LEFT>	<S-Left>	0x86	134     0xb6	182
<SC_RIGHT>	<S-Right>	0x87	135     0xb7	183

<F1>		<F1>		0x88	136     0xb8	184
<F2>		<F2>		0x89	137     0xb9	185
<F3>		<F3>		0x8a	138     0xba	186
<F4>		<F4>		0x8b	139     0xbb	187
<F5>		<F5>		0x8c	140     0xbc	188
<F6>		<F6>		0x8d	141     0xbd	189
<F7>		<F7>		0x8e	142     0xbe	190
<F8>		<F8>		0x8f	143     0xbf	191
<F9>		<F9>		0x90	144     0xc0	192
<F10>		<F10>		0x91	145     0xc1	193

<SF1>		<S-F1>		0x92	146     0xc2	194
<SF2>		<S-F2>		0x93	147     0xc3	195
<SF3>		<S-F3>		0x94	148     0xc4	196
<SF4>		<S-F4>		0x95	149     0xc5	197
<SF5>		<S-F5>		0x96	150     0xc6	198
<SF6>		<S-F6>		0x97	151     0xc7	199
<SF7>		<S-F7>		0x98	152     0xc8	200
<SF8>		<S-F8>		0x99	153     0xc9	201
<SF9>		<S-F9>		0x9a	154     0xca	202
<SF10>		<S-F10>		0x9b	155     0xcb	203

<HELP>		<Help>		0x9c	156     0xcc	204
<UNDO>		<Undo>		0x9d	157     0xcd	205

		(not used)	0x9e	158     0xce	206
		(not used)	0x9f	159     0xcf	207


Terminal options changed				*termcap-changed*
------------------------

The names of the terminal options have been changed to match the termcap names
of these options.  All terminal options now have the name t_xx, where xx is
the termcap name.  Normally these options are not used, unless you have a
termcap entry that is wrong or incomplete, or you have set the highlight
options to a different value.				|terminal-options|

Note that for some keys there is no termcap name.  Use the <> type of name
instead, which is a good idea anyway.

Note that "t_ti" has become "t_mr" (invert/reverse output) and "t_ts" has
become "t_ti" (init terminal mode).  Be careful when you use "t_ti"!

old name	new name	meaning		~
t_cdl		t_DL		delete number of lines		*t_cdl*
t_ci		t_vi		cursor invisible		*t_ci*
t_cil		t_AL		insert number of lines		*t_cil*
t_cm		t_cm		move cursor
t_cri		t_RI		cursor number of chars right	*t_cri*
t_cv		t_ve		cursor visible			*t_cv*
t_cvv		t_vs		cursor very visible		*t_cvv*
t_dl		t_dl		delete line
t_cs		t_cs		scroll region
t_ed		t_cl		clear display			*t_ed*
t_el		t_ce		clear line			*t_el*
t_il		t_al		insert line			*t_il*
		t_da		display may be retained above the screen
		t_db		display may be retained below the screen
t_ke		t_ke		put terminal out of keypad transmit mode
t_ks		t_ks		put terminal in keypad transmit mode
t_ms		t_ms		save to move cursor in highlight mode
t_se		t_se		normal mode (undo t_so)
t_so		t_so		shift out (standout) mode
t_ti		t_mr		reverse highlight
t_tb		t_md		bold mode			*t_tb*
t_tp		t_me		highlight end			*t_tp*
t_sr		t_sr		scroll reverse
t_te		t_te		out of termcap mode
t_ts		t_ti		into termcap mode		*t_ts_old*
t_vb		t_vb		visual bell
t_csc		t_CS		cursor is relative to scroll region *t_csc*

t_ku	t_ku	<Up>		arrow up
t_kd	t_kd	<Down>		arrow down
t_kr	t_kr	<Right>		arrow right
t_kl	t_kl	<Left>		arrow left
t_sku		<S-Up>		shifted arrow up		*t_sku*
t_skd		<S-Down>	shifted arrow down		*t_skd*
t_skr	t_%i	<S-Right>	shifted arrow right		*t_skr*
t_skl	t_#4	<S-Left>	shifted arrow left		*t_skl*
t_f1	t_k1	<F1>		function key 1			*t_f1*
t_f2	t_k2	<F2>		function key 2			*t_f2*
t_f3	t_k3	<F3>		function key 3			*t_f3*
t_f4	t_k4	<F4>		function key 4			*t_f4*
t_f5	t_k5	<F5>		function key 5			*t_f5*
t_f6	t_k6	<F6>		function key 6			*t_f6*
t_f7	t_k7	<F7>		function key 7			*t_f7*
t_f8	t_k8	<F8>		function key 8			*t_f8*
t_f9	t_k9	<F9>		function key 9			*t_f9*
t_f10	t_k;	<F10>		function key 10			*t_f10*
t_sf1		<S-F1>		shifted function key 1		*t_sf1*
t_sf2		<S-F2>		shifted function key 2		*t_sf2*
t_sf3		<S-F3>		shifted function key 3		*t_sf3*
t_sf4		<S-F4>		shifted function key 4		*t_sf4*
t_sf5		<S-F5>		shifted function key 5		*t_sf5*
t_sf6		<S-F6>		shifted function key 6		*t_sf6*
t_sf7		<S-F7>		shifted function key 7		*t_sf7*
t_sf8		<S-F8>		shifted function key 8		*t_sf8*
t_sf9		<S-F9>		shifted function key 9		*t_sf9*
t_sf10		<S-F10>		shifted function key 10		*t_sf10*
t_help	t_%1	<Help>		help key			*t_help*
t_undo	t_&8	<Undo>		undo key			*t_undo*


'errorformat' option changed				*errorformat-changed*
----------------------------

'errorformat' can now contain several formats, separated by commas.  The first
format that matches is used.  The default values have been adjusted to catch
the most common formats.				|errorformat|

If you have a format that contains a comma, it needs to be preceded with a
backslash.  Type two backslashes, because the ":set" command will eat one.


'graphic' option gone					*graphic-option-gone*
---------------------

The 'graphic' option was used to make the characters between <~> and 0xa0
display directly on the screen.  Now the 'isprint' option takes care of this
with many more possibilities.  The default setting is the same; you only need
to look into this if you previously set the 'graphic' option in your vimrc.
							|'isprint'|


'yankendofline' option gone				*ye-option-gone*
---------------------------

The 'yankendofline' option has been removed.  Instead you can just use
	:map Y y$


'icon' and 'title' default value changed		*icon-changed*
----------------------------------------

The 'title' option is now only set by default if the original title can be
restored.  Avoids "Thanks for flying Vim" titles.  If you want them anyway,
put ":set title" in your vimrc.				|'title'|

The default for 'icon' now depends on the possibility of restoring the
original value, just like 'title'.  If you don't like your icon titles to be
changed, add this line to your vimrc:			|'icon'|
	:set noicon


'highlight' option changed				*highlight-changed*
--------------------------

The 'i' flag now means italic highlighting, instead of invert.  The 'r' flag
is used for reverse highlighting, which is what 'i' used to be.  Normally you
won't see the difference, because italic mode is not supported on most
terminals and reverse mode is used as a fallback.	|'highlight'|

When an occasion is not present in 'highlight', use the mode from the default
value for 'highlight', instead of reverse mode.


'tildeop' and 'weirdinvert' short names changed		*short-name-changed*
-----------------------------------------------

Renamed 'to' (abbreviation for 'tildeop') to 'top'.	|'tildeop'|
Renamed 'wi' (abbreviation for 'weirdinvert') to 'wiv'.	|'weirdinvert'|

This was done because Vi uses 'wi' as the short name for 'window' and 'to' as
the short name for 'timeout'.  This means that if you try setting these
options, you won't get an error message, but the effect will be different.


Use of "v", "V" and "CTRL-V" in Visual mode		*use-visual-cmds*
-------------------------------------------

In Visual mode, "v", "V", and "CTRL-V" used to end Visual mode.  Now this
happens only if the Visual mode was in the corresponding type.  Otherwise the
type of Visual mode is changed.  Now only ESC can be used in all circumstances
to end Visual mode without doing anything.		|v_V|


CTRL-B in Insert mode removed				*toggle-revins*
-----------------------------

CTRL-B in Insert mode used to toggle the 'revins' option.  If you don't know
this and accidentally hit CTRL-B, it is very difficult to find out how to undo
it.  Since hardly anybody uses this feature, it is disabled by default.  If
you want to use it, define RIGHTLEFT in feature.h before compiling. |'revins'|

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z+
��cxcxvim80/doc/channel.txtnu�[���*channel.txt*      For Vim version 8.0.  Last change: 2018 Apr 18


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


		      Inter-process communication		*channel*

Vim uses channels to communicate with other processes.
A channel uses a socket or pipes.			*socket-interface*
Jobs can be used to start processes and communicate with them.
The Netbeans interface also uses a channel. |netbeans|

1. Overview				|job-channel-overview|
2. Channel demo				|channel-demo|
3. Opening a channel			|channel-open|
4. Using a JSON or JS channel		|channel-use|
5. Channel commands			|channel-commands|
6. Using a RAW or NL channel		|channel-raw|
7. More channel functions		|channel-more|
8. Starting a job with a channel	|job-start|
9. Starting a job without a channel	|job-start-nochannel|
10. Job options				|job-options|
11. Controlling a job			|job-control|

{Vi does not have any of these features}
{only when compiled with the |+channel| feature for channel stuff}
	You can check this with: `has('channel')`
{only when compiled with the |+job| feature for job stuff}
	You can check this with: `has('job')`

==============================================================================
1. Overview						*job-channel-overview*

There are four main types of jobs:
1. A daemon, serving several Vim instances.
   Vim connects to it with a socket.
2. One job working with one Vim instance, asynchronously.
   Uses a socket or pipes.
3. A job performing some work for a short time, asynchronously.
   Uses a socket or pipes.
4. Running a filter, synchronously.
   Uses pipes.

For when using sockets See |job-start|, |job-start-nochannel| and
|channel-open|.  For 2 and 3, one or more jobs using pipes, see |job-start|.
For 4 use the ":{range}!cmd" command, see |filter|.

Over the socket and pipes these protocols are available:
RAW	nothing known, Vim cannot tell where a message ends
NL	every message ends in a NL (newline) character
JSON	JSON encoding |json_encode()|
JS	JavaScript style JSON-like encoding |js_encode()|

Common combination are:
- Using a job connected through pipes in NL mode.  E.g., to run a style
  checker and receive errors and warnings.
- Using a daemon, connecting over a socket in JSON mode.  E.g. to lookup
  cross-references in a database.

==============================================================================
2. Channel demo				*channel-demo* *demoserver.py*

This requires Python.  The demo program can be found in
$VIMRUNTIME/tools/demoserver.py
Run it in one terminal.  We will call this T1.

Run Vim in another terminal.  Connect to the demo server with: >
	let channel = ch_open('localhost:8765')

In T1 you should see:
	=== socket opened === ~

You can now send a message to the server: >
	echo ch_evalexpr(channel, 'hello!')

The message is received in T1 and a response is sent back to Vim.
You can see the raw messages in T1.  What Vim sends is:
	[1,"hello!"] ~
And the response is:
	[1,"got it"] ~
The number will increase every time you send a message.

The server can send a command to Vim.  Type this on T1 (literally, including
the quotes):
	["ex","echo 'hi there'"] ~
And you should see the message in Vim. You can move the cursor a word forward:
	["normal","w"] ~

To handle asynchronous communication a callback needs to be used: >
	func MyHandler(channel, msg)
	  echo "from the handler: " . a:msg
	endfunc
	call ch_sendexpr(channel, 'hello!', {'callback': "MyHandler"})
Vim will not wait for a response.  Now the server can send the response later
and MyHandler will be invoked.

Instead of giving a callback with every send call, it can also be specified
when opening the channel: >
	call ch_close(channel)
	let channel = ch_open('localhost:8765', {'callback': "MyHandler"})
	call ch_sendexpr(channel, 'hello!')

When trying out channels it's useful to see what is going on.  You can tell
Vim to write lines in log file: >
	call ch_logfile('channellog', 'w')
See |ch_logfile()|.

==============================================================================
3. Opening a channel					*channel-open*

To open a channel: >
    let channel = ch_open({address} [, {options}])
    if ch_status(channel) == "open"
      " use the channel

Use |ch_status()| to see if the channel could be opened.

{address} has the form "hostname:port".  E.g., "localhost:8765".

{options} is a dictionary with optional entries:	*channel-open-options*

"mode" can be:						*channel-mode*
	"json" - Use JSON, see below; most convenient way. Default.
	"js"   - Use JS (JavaScript) encoding, more efficient than JSON.
	"nl"   - Use messages that end in a NL character
	"raw"  - Use raw messages
						*channel-callback* *E921*
"callback"	A function that is called when a message is received that is
		not handled otherwise.  It gets two arguments: the channel
		and the received message. Example: >
	func Handle(channel, msg)
	  echo 'Received: ' . a:msg
	endfunc
	let channel = ch_open("localhost:8765", {"callback": "Handle"})
<
		When "mode" is "json" or "js" the "msg" argument is the body
		of the received message, converted to Vim types.
		When "mode" is "nl" the "msg" argument is one message,
		excluding the NL.
		When "mode" is "raw" the "msg" argument is the whole message
		as a string.

		For all callbacks: Use |function()| to bind it to arguments
		and/or a Dictionary.  Or use the form "dict.function" to bind
		the Dictionary.

		Callbacks are only called at a "safe" moment, usually when Vim
		is waiting for the user to type a character.  Vim does not use
		multi-threading.

							*close_cb*
"close_cb"	A function that is called when the channel gets closed, other
		than by calling ch_close().  It should be defined like this: >
	func MyCloseHandler(channel)
<		Vim will invoke callbacks that handle data before invoking
		close_cb, thus when this function is called no more data will
		be passed to the callbacks.
							*channel-drop*
"drop"		Specifies when to drop messages:
		    "auto"	When there is no callback to handle a message.
				The "close_cb" is also considered for this.
		    "never"	All messages will be kept.

							*waittime*
"waittime"	The time to wait for the connection to be made in
		milliseconds.  A negative number waits forever.

		The default is zero, don't wait, which is useful if a local
		server is supposed to be running already.  On Unix Vim
		actually uses a 1 msec timeout, that is required on many
		systems.  Use a larger value for a remote server, e.g.  10
		msec at least.
							*channel-timeout*
"timeout"	The time to wait for a request when blocking, E.g. when using
		ch_evalexpr().  In milliseconds.  The default is 2000 (2
		seconds).

When "mode" is "json" or "js" the "callback" is optional.  When omitted it is
only possible to receive a message after sending one.

To change the channel options after opening it use |ch_setoptions()|.  The
arguments are similar to what is passed to |ch_open()|, but "waittime" cannot
be given, since that only applies to opening the channel.

For example, the handler can be added or changed: >
    call ch_setoptions(channel, {'callback': callback})
When "callback" is empty (zero or an empty string) the handler is removed.

After a callback has been invoked Vim will update the screen and put the
cursor back where it belongs.  Thus the callback should not need to do
`:redraw`.

The timeout can be changed: >
    call ch_setoptions(channel, {'timeout': msec})
<
							  *channel-close* *E906*
Once done with the channel, disconnect it like this: >
    call ch_close(channel)
When a socket is used this will close the socket for both directions.  When
pipes are used (stdin/stdout/stderr) they are all closed.  This might not be
what you want!  Stopping the job with job_stop() might be better.
All readahead is discarded, callbacks will no longer be invoked.

Note that a channel is closed in three stages:
  - The I/O ends, log message: "Closing channel". There can still be queued
    messages to read or callbacks to invoke.
  - The readahead is cleared, log message: "Clearing channel".  Some variables
    may still reference the channel.
  - The channel is freed, log message: "Freeing channel".

When the channel can't be opened you will get an error message.  There is a
difference between MS-Windows and Unix: On Unix when the port doesn't exist
ch_open() fails quickly.  On MS-Windows "waittime" applies.
*E898* *E901* *E902*

If there is an error reading or writing a channel it will be closed.
*E630* *E631* 

==============================================================================
4. Using a JSON or JS channel					*channel-use*

If mode is JSON then a message can be sent synchronously like this: >
    let response = ch_evalexpr(channel, {expr})
This awaits a response from the other side.

When mode is JS this works the same, except that the messages use
JavaScript encoding.  See |js_encode()| for the difference.

To send a message, without handling a response or letting the channel callback
handle the response: >
    call ch_sendexpr(channel, {expr})

To send a message and letting the response handled by a specific function,
asynchronously: >
    call ch_sendexpr(channel, {expr}, {'callback': Handler})

Vim will match the response with the request using the message ID.  Once the
response is received the callback will be invoked.  Further responses with the
same ID will be ignored.  If your server sends back multiple responses you
need to send them with ID zero, they will be passed to the channel callback.

The {expr} is converted to JSON and wrapped in an array.  An example of the
message that the receiver will get when {expr} is the string "hello":
	[12,"hello"] ~

The format of the JSON sent is:
    [{number},{expr}]

In which {number} is different every time.  It must be used in the response
(if any):

    [{number},{response}]

This way Vim knows which sent message matches with which received message and
can call the right handler.  Also when the messages arrive out of order.

A newline character is terminating the JSON text.  This can be used to
separate the read text.  For example, in Python:
	splitidx = read_text.find('\n')
	message = read_text[:splitidx]
	rest = read_text[splitidx + 1:]

The sender must always send valid JSON to Vim.  Vim can check for the end of
the message by parsing the JSON.  It will only accept the message if the end
was received.  A newline after the message is optional.

When the process wants to send a message to Vim without first receiving a
message, it must use the number zero:
    [0,{response}]

Then channel handler will then get {response} converted to Vim types.  If the
channel does not have a handler the message is dropped.

It is also possible to use ch_sendraw() and ch_evalraw() on a JSON or JS
channel.  The caller is then completely responsible for correct encoding and
decoding.

==============================================================================
5. Channel commands					*channel-commands*

With a JSON channel the process can send commands to Vim that will be
handled by Vim internally, it does not require a handler for the channel.

Possible commands are:				*E903* *E904* *E905*
    ["redraw", {forced}]
    ["ex",     {Ex command}]
    ["normal", {Normal mode command}]
    ["expr",   {expression}, {number}]
    ["expr",   {expression}]
    ["call",   {func name}, {argument list}, {number}]
    ["call",   {func name}, {argument list}]

With all of these: Be careful what these commands do!  You can easily
interfere with what the user is doing.  To avoid trouble use |mode()| to check
that the editor is in the expected state.  E.g., to send keys that must be
inserted as text, not executed as a command:
    ["ex","if mode() == 'i' | call feedkeys('ClassName') | endif"] ~

Errors in these commands are normally not reported to avoid them messing up
the display.  If you do want to see them, set the 'verbose' option to 3 or
higher.


Command "redraw" ~

The other commands do not update the screen, so that you can send a sequence
of commands without the cursor moving around.  You must end with the "redraw"
command to show any changed text and show the cursor where it belongs.

The argument is normally an empty string:
	["redraw", ""] ~
To first clear the screen pass "force":
	["redraw", "force"] ~


Command "ex" ~

The "ex" command is executed as any Ex command.  There is no response for
completion or error.  You could use functions in an |autoload| script:
	["ex","call myscript#MyFunc(arg)"]

You can also use "call |feedkeys()|" to insert any key sequence.

When there is an error a message is written to the channel log, if it exists,
and v:errmsg is set to the error.


Command "normal" ~

The "normal" command is executed like with ":normal!", commands are not
mapped.  Example to open the folds under the cursor:
	["normal" "zO"]


Command "expr"  with response ~

The "expr" command can be used to get the result of an expression.  For
example, to get the number of lines in the current buffer:
	["expr","line('$')", -2] ~

It will send back the result of the expression:
	[-2, "last line"] ~
The format is:
	[{number}, {result}]

Here {number} is the same as what was in the request.  Use a negative number
to avoid confusion with message that Vim sends.  Use a different number on
every request to be able to match the request with the response.

{result} is the result of the evaluation and is JSON encoded.  If the
evaluation fails or the result can't be encoded in JSON it is the string
"ERROR".


Command "expr" without a response ~

This command is similar to "expr" above, but does not send back any response.
Example:
	["expr","setline('$', ['one', 'two', 'three'])"] ~
There is no third argument in the request.


Command "call" ~

This is similar to "expr", but instead of passing the whole expression as a
string this passes the name of a function and a list of arguments.  This
avoids the conversion of the arguments to a string and escaping and
concatenating them.  Example:
	["call", "line", ["$"], -2] ~

Leave out the fourth argument if no response is to be sent:
	["call", "setline", ["$", ["one", "two", "three"]]] ~

==============================================================================
6. Using a RAW or NL channel				*channel-raw*

If mode is RAW or NL then a message can be sent like this: >
    let response = ch_evalraw(channel, {string})

The {string} is sent as-is.  The response will be what can be read from the
channel right away.  Since Vim doesn't know how to recognize the end of the
message you need to take care of it yourself.  The timeout applies for reading
the first byte, after that it will not wait for anything more.

If mode is "nl" you can send a message in a similar way.  You are expected
to put in the NL after each message.  Thus you can also send several messages
ending in a NL at once.  The response will be the text up to and including the
first NL.  This can also be just the NL for an empty response.
If no NL was read before the channel timeout an empty string is returned.

To send a message, without expecting a response: >
    call ch_sendraw(channel, {string})
The process can send back a response, the channel handler will be called with
it.

To send a message and letting the response handled by a specific function,
asynchronously: >
    call ch_sendraw(channel, {string}, {'callback': 'MyHandler'})

This {string} can also be JSON, use |json_encode()| to create it and
|json_decode()| to handle a received JSON message.

It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel.

A String in Vim cannot contain NUL bytes.  To send or receive NUL bytes read
or write from a buffer.  See |in_io-buffer| and |out_io-buffer|.

==============================================================================
7. More channel functions				*channel-more*

To obtain the status of a channel: ch_status(channel).  The possible results
are:
	"fail"		Failed to open the channel.
	"open"		The channel can be used.
	"buffered"	The channel was closed but there is data to read.
	"closed"	The channel was closed.

To obtain the job associated with a channel: ch_getjob(channel)

To read one message from a channel: >
	let output = ch_read(channel)
This uses the channel timeout.  To read without a timeout, just get any
message that is available: >
	let output = ch_read(channel, {'timeout': 0})
When no message was available then the result is v:none for a JSON or JS mode
channels, an empty string for a RAW or NL channel.  You can use |ch_canread()|
to check if there is something to read.

Note that when there is no callback, messages are dropped.  To avoid that add
a close callback to the channel.

To read all output from a RAW channel that is available: >
	let output = ch_readraw(channel)
To read the error output: >
	let output = ch_readraw(channel, {"part": "err"})

ch_read() and ch_readraw() use the channel timeout.  When there is nothing to
read within that time an empty string is returned.  To specify a different
timeout in msec use the "timeout" option:
	{"timeout": 123} ~
To read from the error output use the "part" option:
	{"part": "err"} ~
To read a message with a specific ID, on a JS or JSON channel:
	{"id": 99} ~
When no ID is specified or the ID is -1, the first message is returned. This
overrules any callback waiting for this message.

For a RAW channel this returns whatever is available, since Vim does not know
where a message ends.
For a NL channel this returns one message.
For a JS or JSON channel this returns one decoded message.
This includes any sequence number.

==============================================================================
8. Starting a job with a channel			*job-start* *job*

To start a job and open a channel for stdin/stdout/stderr: >
    let job = job_start(command, {options})

You can get the channel with: >
    let channel = job_getchannel(job)

The channel will use NL mode.  If you want another mode it's best to specify
this in {options}.  When changing the mode later some text may have already
been received and not parsed correctly.

If the command produces a line of output that you want to deal with, specify
a handler for stdout: >
    let job = job_start(command, {"out_cb": "MyHandler"})
The function will be called with the channel and a message. You would define
it like this: >
    func MyHandler(channel, msg)

Without the handler you need to read the output with |ch_read()| or
|ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|.

Note that if the job exits before you read the output, the output may be lost.
This depends on the system (on Unix this happens because closing the write end
of a pipe causes the read end to get EOF).  To avoid this make the job sleep
for a short while before it exits.

The handler defined for "out_cb" will not receive stderr.  If you want to
handle that separately, add an "err_cb" handler: >
    let job = job_start(command, {"out_cb": "MyHandler",
	    \			  "err_cb": "ErrHandler"})

If you want to handle both stderr and stdout with one handler use the
"callback" option: >
    let job = job_start(command, {"callback": "MyHandler"}) 

Depending on the system, starting a job can put Vim in the background, the
started job gets the focus.  To avoid that, use the `foreground()` function.
This might not always work when called early, put in the callback handler or
use a timer to call it after the job has started.

You can send a message to the command with ch_evalraw().  If the channel is in
JSON or JS mode you can use ch_evalexpr().

There are several options you can use, see |job-options|.
For example, to start a job and write its output in buffer "dummy": >
	let logjob = job_start("tail -f /tmp/log",
			     \ {'out_io': 'buffer', 'out_name': 'dummy'})
	sbuf dummy


Job input from a buffer ~
							*in_io-buffer*
To run a job that reads from a buffer: >
	let job = job_start({command},
	    \ {'in_io': 'buffer', 'in_name': 'mybuffer'})
<
							*E915* *E918*
The buffer is found by name, similar to |bufnr()|. The buffer must exist and
be loaded when job_start() is called.

By default this reads the whole buffer.  This can be changed with the "in_top"
and "in_bot" options.

A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
time a line is added to the buffer, the last-but-one line will be sent to the
job stdin.  This allows for editing the last line and sending it when pressing
Enter.
							*channel-close-in*
When not using the special mode the pipe or socket will be closed after the
last line has been written.  This signals the reading end that the input
finished.  You can also use |ch_close_in()| to close it sooner.

NUL bytes in the text will be passed to the job (internally Vim stores these
as NL bytes).


Reading job output in the close callback ~
							*read-in-close-cb*
If the job can take some time and you don't need intermediate results, you can
add a close callback and read the output there: >

	func! CloseHandler(channel)
	  while ch_status(a:channel, {'part': 'out'}) == 'buffered'
	    echomsg ch_read(a:channel)
	  endwhile
	endfunc
	let job = job_start(command, {'close_cb': 'CloseHandler'})

You will want to do something more useful than "echomsg".

==============================================================================
9. Starting a job without a channel			*job-start-nochannel*

To start another process without creating a channel: >
    let job = job_start(command,
	\ {"in_io": "null", "out_io": "null", "err_io": "null"})

This starts {command} in the background, Vim does not wait for it to finish.

When Vim sees that neither stdin, stdout or stderr are connected, no channel
will be created.  Often you will want to include redirection in the command to
avoid it getting stuck.

There are several options you can use, see |job-options|.

							*job-start-if-needed*
To start a job only when connecting to an address does not work, do something
like this: >
	let channel = ch_open(address, {"waittime": 0})
	if ch_status(channel) == "fail"
	  let job = job_start(command)
	  let channel = ch_open(address, {"waittime": 1000})
	endif

Note that the waittime for ch_open() gives the job one second to make the port
available.

==============================================================================
10. Job options						*job-options*

The {options} argument in job_start() is a dictionary.  All entries are
optional.  Some options can be used after the job has started, using
job_setoptions(job, {options}).  Many options can be used with the channel
related to the job, using ch_setoptions(channel, {options}).
See |job_setoptions()| and |ch_setoptions()|.

						*in_mode* *out_mode* *err_mode*
"in_mode"		mode specifically for stdin, only when using pipes
"out_mode"		mode specifically for stdout, only when using pipes
"err_mode"		mode specifically for stderr, only when using pipes
			See |channel-mode| for the values.

			Note: when setting "mode" the part specific mode is
			overwritten.  Therefore set "mode" first and the part
			specific mode later.

			Note: when writing to a file or buffer and when
			reading from a buffer NL mode is used by default.

						*job-callback*
"callback": handler	Callback for something to read on any part of the
			channel.
						*job-out_cb* *out_cb*
"out_cb": handler	Callback for when there is something to read on
			stdout.  Only for when the channel uses pipes.  When
			"out_cb" wasn't set the channel callback is used.
			The two arguments are the channel and the message.

						*job-err_cb* *err_cb*
"err_cb": handler	Callback for when there is something to read on
			stderr.  Only for when the channel uses pipes.  When
			"err_cb" wasn't set the channel callback is used.
			The two arguments are the channel and the message.
						*job-close_cb*
"close_cb": handler	Callback for when the channel is closed.  Same as
			"close_cb" on |ch_open()|, see |close_cb|.
						*job-drop*
"drop": when		Specifies when to drop messages.  Same as "drop" on
			|ch_open()|, see |channel-drop|.  For "auto" the
			exit_cb is not considered.
						*job-exit_cb*
"exit_cb": handler	Callback for when the job ends.  The arguments are the
			job and the exit status.
			Vim checks up to 10 times per second for jobs that
			ended.  The check can also be triggered by calling
			|job_status()|, which may then invoke the exit_cb
			handler.
			Note that data can be buffered, callbacks may still be
			called after the process ends.
							*job-timeout*
"timeout": time		The time to wait for a request when blocking, E.g.
			when using ch_evalexpr().  In milliseconds.  The
			default is 2000 (2 seconds).
						*out_timeout* *err_timeout*
"out_timeout": time	Timeout for stdout.  Only when using pipes.
"err_timeout": time	Timeout for stderr.  Only when using pipes.
			Note: when setting "timeout" the part specific mode is
			overwritten.  Therefore set "timeout" first and the
			part specific mode later.

						*job-stoponexit*
"stoponexit": {signal}	Send {signal} to the job when Vim exits.  See
			|job_stop()| for possible values.
"stoponexit": ""	Do not stop the job when Vim exits.
			The default is "term".

						*job-term*
"term": "open"		Start a terminal in a new window and connect the job
			stdin/stdout/stderr to it.  Similar to using
			`:terminal`.
			NOTE: Not implemented yet!

"channel": {channel}	Use an existing channel instead of creating a new one.
			The parts of the channel that get used for the new job
			will be disconnected from what they were used before.
			If the channel was still used by another job this may
			cause I/O errors.
			Existing callbacks and other settings remain.

"pty": 1		Use a pty (pseudo-tty) instead of a pipe when
			possible.  This is most useful in combination with a
			terminal window, see |terminal|.
			{only on Unix and Unix-like systems}

				*job-in_io* *in_top* *in_bot* *in_name* *in_buf*
"in_io": "null"		disconnect stdin (read from /dev/null)
"in_io": "pipe"		stdin is connected to the channel (default)
"in_io": "file"		stdin reads from a file
"in_io": "buffer"	stdin reads from a buffer
"in_top": number	when using "buffer": first line to send (default: 1)
"in_bot": number	when using "buffer": last line to send (default: last)
"in_name": "/path/file"	the name of the file or buffer to read from
"in_buf": number	the number of the buffer to read from

				*job-out_io* *out_name* *out_buf*
"out_io": "null"	disconnect stdout (goes to /dev/null)
"out_io": "pipe"	stdout is connected to the channel (default)
"out_io": "file"	stdout writes to a file
"out_io": "buffer"	stdout appends to a buffer (see below)
"out_name": "/path/file" the name of the file or buffer to write to
"out_buf": number	the number of the buffer to write to
"out_modifiable": 0	when writing to a buffer, 'modifiable' will be off
			(see below)
"out_msg": 0		when writing to a new buffer, the first line will be
			set to "Reading from channel output..."

				*job-err_io* *err_name* *err_buf*
"err_io": "out"		stderr messages to go to stdout
"err_io": "null"	disconnect stderr  (goes to /dev/null)
"err_io": "pipe"	stderr is connected to the channel (default)
"err_io": "file"	stderr writes to a file
"err_io": "buffer"	stderr appends to a buffer (see below)
"err_name": "/path/file" the name of the file or buffer to write to
"err_buf": number	the number of the buffer to write to
"err_modifiable": 0	when writing to a buffer, 'modifiable' will be off
			(see below)
"err_msg": 0		when writing to a new buffer, the first line will be
			set to "Reading from channel error..."

"block_write": number	only for testing: pretend every other write to stdin
			will block

"env": dict		environment variables for the new process
"cwd": "/path/to/dir"	current working directory for the new process;
			if the directory does not exist an error is given


Writing to a buffer ~
							*out_io-buffer*
When the out_io or err_io mode is "buffer" and there is a callback, the text
is appended to the buffer before invoking the callback.

When a buffer is used both for input and output, the output lines are put
above the last line, since the last line is what is written to the channel
input.  Otherwise lines are appended below the last line.

When using JS or JSON mode with "buffer", only messages with zero or negative
ID will be added to the buffer, after decoding + encoding.  Messages with a
positive number will be handled by a callback, commands are handled as usual.

The name of the buffer from "out_name" or "err_name" is compared the full name
of existing buffers, also after expanding the name for the current directory.
E.g., when a buffer was created with ":edit somename" and the buffer name is
"somename" it will use that buffer.

If there is no matching buffer a new buffer is created.  Use an empty name to
always create a new buffer.  |ch_getbufnr()| can then be used to get the
buffer number.

For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide".  If
you prefer other settings, create the buffer first and pass the buffer number.
					*out_modifiable* *err_modifiable*
The "out_modifiable" and "err_modifiable" options can be used to set the
'modifiable' option off, or write to a buffer that has 'modifiable' off.  That
means that lines will be appended to the buffer, but the user can't easily
change the buffer.
					*out_msg* *err_msg*
The "out_msg" option can be used to specify whether a new buffer will have the
first line set to "Reading from channel output...".  The default is to add the
message.  "err_msg" does the same for channel error.

When an existing buffer is to be written where 'modifiable' is off and the
"out_modifiable" or "err_modifiable" options is not zero, an error is given
and the buffer will not be written to.

When the buffer written to is displayed in a window and the cursor is in the
first column of the last line, the cursor will be moved to the newly added
line and the window is scrolled up to show the cursor if needed.

Undo is synced for every added line.  NUL bytes are accepted (internally Vim
stores these as NL bytes).


Writing to a file ~
							*E920*
The file is created with permissions 600 (read-write for the user, not
accessible for others).  Use |setfperm()| to change this.

If the file already exists it is truncated.

==============================================================================
11. Controlling a job					*job-control*

To get the status of a job: >
	echo job_status(job)

To make a job stop running: >
	job_stop(job)

This is the normal way to end a job. On Unix it sends a SIGTERM to the job.
It is possible to use other ways to stop the job, or even send arbitrary
signals.  E.g. to force a job to stop, "kill it": >
	job_stop(job, "kill")

For more options see |job_stop()|.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Zi��j��vim80/doc/sign.txtnu�[���*sign.txt*      For Vim version 8.0.  Last change: 2016 Aug 17


		  VIM REFERENCE MANUAL    by Gordon Prieur
					  and Bram Moolenaar


Sign Support Features				*sign-support*

1. Introduction				|sign-intro|
2. Commands				|sign-commands|

{Vi does not have any of these features}
{only available when compiled with the |+signs| feature}

==============================================================================
1. Introduction					*sign-intro* *signs*

When a debugger or other IDE tool is driving an editor it needs to be able
to give specific highlights which quickly tell the user useful information
about the file.  One example of this would be a debugger which had an icon
in the left-hand column denoting a breakpoint.  Another example might be an
arrow representing the Program Counter (PC).  The sign features allow both
placement of a sign, or icon, in the left-hand side of the window and
definition of a highlight which will be applied to that line.  Displaying the
sign as an image is most likely only feasible in gvim (although Sun
Microsystem's dtterm does support this it's the only terminal emulator I know
of which does).  A text sign and the highlight should be feasible in any color
terminal emulator.

Signs and highlights are not useful just for debuggers.  Sun's Visual
WorkShop uses signs and highlights to mark build errors and SourceBrowser
hits.  Additionally, the debugger supports 8 to 10 different signs and
highlight colors. |workshop|  Same for Netbeans |netbeans|.

There are two steps in using signs:

1. Define the sign.  This specifies the image, text and highlighting.  For
   example, you can define a "break" sign with an image of a stop roadsign and
   text "!!".

2. Place the sign.  This specifies the file and line number where the sign is
   displayed.  A defined sign can be placed several times in different lines
   and files.

When signs are defined for a file, Vim will automatically add a column of two
characters to display them in.  When the last sign is unplaced the column
disappears again.  This behavior can be changed with the 'signcolumn' option.

The color of the column is set with the SignColumn group |hl-SignColumn|.
Example to set the color: >

	:highlight SignColumn guibg=darkgrey

==============================================================================
2. Commands					*sign-commands* *:sig* *:sign*

Here is an example that places a sign "piet", displayed with the text ">>", in
line 23 of the current file: >
	:sign define piet text=>> texthl=Search
	:exe ":sign place 2 line=23 name=piet file=" . expand("%:p")

And here is the command to delete it again: >
	:sign unplace 2

Note that the ":sign" command cannot be followed by another command or a
comment.  If you do need that, use the |:execute| command.


DEFINING A SIGN.			*:sign-define* *E255* *E160* *E612*

:sign define {name} {argument}...
		Define a new sign or set attributes for an existing sign.
		The {name} can either be a number (all digits) or a name
		starting with a non-digit.  Leading digits are ignored, thus
		"0012", "012" and "12" are considered the same name.
		About 120 different signs can be defined.

		Accepted arguments:

	icon={bitmap}
		Define the file name where the bitmap can be found.  Should be
		a full path.  The bitmap should fit in the place of two
		characters.  This is not checked.  If the bitmap is too big it
		will cause redraw problems.  Only GTK 2 can scale the bitmap
		to fit the space available.
			toolkit		supports ~
			GTK 1		pixmap (.xpm)
			GTK 2		many
			Motif		pixmap (.xpm)
			Win32		.bmp, .ico, .cur
					pixmap (.xpm) |+xpm_w32|

	linehl={group}
		Highlighting group used for the whole line the sign is placed
		in.  Most useful is defining a background color.

	text={text}						*E239*
		Define the text that is displayed when there is no icon or the
		GUI is not being used.  Only printable characters are allowed
		and they must occupy one or two display cells.

	texthl={group}
		Highlighting group used for the text item.


DELETING A SIGN						*:sign-undefine* *E155*

:sign undefine {name}
		Deletes a previously defined sign.  If signs with this {name}
		are still placed this will cause trouble.


LISTING SIGNS						*:sign-list* *E156*

:sign list	Lists all defined signs and their attributes.

:sign list {name}
		Lists one defined sign and its attributes.


PLACING SIGNS						*:sign-place* *E158*

:sign place {id} line={lnum} name={name} file={fname}
		Place sign defined as {name} at line {lnum} in file {fname}.
							*:sign-fname*
		The file {fname} must already be loaded in a buffer.  The
		exact file name must be used, wildcards, $ENV and ~ are not
		expanded, white space must not be escaped.  Trailing white
		space is ignored.

		The sign is remembered under {id}, this can be used for
		further manipulation.  {id} must be a number.
		It's up to the user to make sure the {id} is used only once in
		each file (if it's used several times unplacing will also have
		to be done several times and making changes may not work as
		expected).

:sign place {id} line={lnum} name={name} buffer={nr}
		Same, but use buffer {nr}.

							*E885*
:sign place {id} name={name} file={fname}
		Change the placed sign {id} in file {fname} to use the defined
		sign {name}.  See remark above about {fname} |:sign-fname|.
		This can be used to change the displayed sign without moving
		it (e.g., when the debugger has stopped at a breakpoint).

:sign place {id} name={name} buffer={nr}
		Same, but use buffer {nr}.


REMOVING SIGNS						*:sign-unplace* *E159*

:sign unplace {id} file={fname}
		Remove the previously placed sign {id} from file {fname}.
		See remark above about {fname} |:sign-fname|.

:sign unplace * file={fname}
		Remove all placed signs in file {fname}.

:sign unplace {id} buffer={nr}
		Remove the previously placed sign {id} from buffer {nr}.

:sign unplace * buffer={nr}
		Remove all placed signs in buffer {nr}.

:sign unplace {id}
		Remove the previously placed sign {id} from all files it
		appears in.

:sign unplace *
		Remove all placed signs.

:sign unplace
		Remove the placed sign at the cursor position.


LISTING PLACED SIGNS					*:sign-place-list*

:sign place file={fname}
		List signs placed in file {fname}.
		See remark above about {fname} |:sign-fname|.

:sign place buffer={nr}
		List signs placed in buffer {nr}.

:sign place	List placed signs in all files.


JUMPING TO A SIGN					*:sign-jump* *E157*

:sign jump {id} file={fname}
		Open the file {fname} or jump to the window that contains
		{fname} and position the cursor at sign {id}.
		See remark above about {fname} |:sign-fname|.
		If the file isn't displayed in window and the current file can
		not be |abandon|ed this fails.

:sign jump {id} buffer={nr}					*E934*
		Same, but use buffer {nr}.  This fails if buffer {nr} does not
		have a name.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���4�7�7vim80/doc/usr_22.txtnu�[���*usr_22.txt*	For Vim version 8.0.  Last change: 2016 Dec 13

		     VIM USER MANUAL - by Bram Moolenaar

			   Finding the file to edit


Files can be found everywhere.  So how do you find them?  Vim offers various
ways to browse the directory tree.  There are commands to jump to a file that
is mentioned in another.  And Vim remembers which files have been edited
before.

|22.1|	The file browser
|22.2|	The current directory
|22.3|	Finding a file
|22.4|	The buffer list

     Next chapter: |usr_23.txt|  Editing other files
 Previous chapter: |usr_21.txt|  Go away and come back
Table of contents: |usr_toc.txt|

==============================================================================
*22.1*	The file browser

Vim has a plugin that makes it possible to edit a directory.  Try this: >

	:edit .

Through the magic of autocommands and Vim scripts, the window will be filled
with the contents of the directory.  It looks like this:

" ============================================================================ ~
" Netrw Directory Listing                                        (netrw v109) ~
"   Sorted by      name ~
"   Sort sequence: [\/]$,\.h$,\.c$,\.cpp$,*,\.info$,\.swp$,\.o$\.obj$,\.bak$ ~
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec ~
" ============================================================================ ~
../ ~
./ ~
check/ ~
Makefile ~
autocmd.txt ~
change.txt ~
eval.txt~ ~
filetype.txt~ ~
help.txt.info ~

You can see these items:

1.  The name of the browsing tool and its version number
2.  The name of the browsing directory
3.  The method of sorting (may be by name, time, or size)
4.  How names are to be sorted (directories first, then *.h files,
    *.c files, etc)
5.  How to get help (use the <F1> key), and an abbreviated listing
    of available commands
6.  A listing of files, including "../", which allows one to list
    the parent directory.

If you have syntax highlighting enabled, the different parts are highlighted
so as to make it easier to spot them.

You can use Normal mode Vim commands to move around in the text.  For example,
move the cursor atop a file and press <Enter>; you will then be editing that
file.  To go back to the browser use ":edit ." again, or use ":Explore".
CTRL-O also works.

Try using <Enter> while the cursor is atop a directory name.  The result is
that the file browser moves into that directory and displays the items found
there.  Pressing <Enter> on the first directory "../" moves you one level
higher.  Pressing "-" does the same thing, without the need to move to the
"../" item first.

You can press <F1> to get help on the things you can do in the netrw file
browser.  This is what you get: >

    9. Directory Browsing	 netrw-browse   netrw-dir   netrw-list   netrw-help 

    MAPS								 netrw-maps 
     	 <F1>.............Help.......................................|netrw-help|
     	 <cr>.............Browsing...................................|netrw-cr|
     	 <del>............Deleting Files or Directories..............|netrw-delete|
     	 -................Going Up...................................|netrw--|
     	 a................Hiding Files or Directories................|netrw-a|
     	 mb...............Bookmarking a Directory....................|netrw-mb|
     	 gb...............Changing to a Bookmarked Directory.........|netrw-gb|
     	 c................Make Browsing Directory The Current Dir....|netrw-c|
     	 d................Make A New Directory.......................|netrw-d|
     	 D................Deleting Files or Directories..............|netrw-D|
     	 <c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h|
     	 i................Change Listing Style.......................|netrw-i|
     	 <c-l>............Refreshing the Listing.....................|netrw-ctrl-l|
     	 o................Browsing with a Horizontal Split...........|netrw-o|
     	 p................Use Preview Window.........................|netrw-p|
     	 P................Edit in Previous Window....................|netrw-p|
     	 q................Listing Bookmarks and History..............|netrw-qb|
     	 r................Reversing Sorting Order....................|netrw-r|
<    	(etc)

The <F1> key thus brings you to a netrw directory browsing contents help page.
It's a regular help page; use the usual |CTRL-]| to jump to tagged help items
and |CTRL-O| to jump back.

To select files for display and editing: (with the cursor is atop a filename)

	<enter>		Open the file in the current window.	   |netrw-cr|
	o		Horizontally split window and display file |netrw-o|
	v		Vertically split window and display file   |netrw-v|
	p		Use the |preview-window| 		   |netrw-p|
	P		Edit in the previous window		   |netrw-P|
	t		Open file in a new tab			   |netrw-t|

The following normal-mode commands may be used to control the browser display:

	i		Controls listing style (thin, long, wide, and tree).
			The long listing includes size and date information.
	s		Repeatedly pressing s will change the way the files
			are sorted; one may sort on name, modification time,
			or size.
	r		Reverse the sorting order.

As a sampling of extra normal-mode commands:

	c		Change Vim's notion of the current directory to be
			the same as the browser directory.  (see
			|g:netrw_keepdir| to control this, too)
	R		Rename the file or directory under the cursor; a
			prompt will be issued for the new name.
	D		Delete the file or directory under the cursor; a
			confirmation request will be issued.
	mb gb		Make bookmark/goto bookmark


One may also use command mode; again, just a sampling:

	:Explore [directory]	Browse specified/current directory
	:NetrwSettings		A comprehensive list of your current netrw
				settings with help linkage.

The netrw browser is not limited to just your local machine; one may use
urls such as:    (that trailing / is important)

	:Explore ftp://somehost/path/to/dir/
	:e scp://somehost/path/to/dir/

See |netrw-browse| for more.

==============================================================================
*22.2*	The current directory

Just like the shell, Vim has the concept of a current directory.  Suppose you
are in your home directory and want to edit several files in a directory
"VeryLongFileName".  You could do: >

	:edit VeryLongFileName/file1.txt
	:edit VeryLongFileName/file2.txt
	:edit VeryLongFileName/file3.txt

To avoid much of the typing, do this: >

	:cd VeryLongFileName
	:edit file1.txt
	:edit file2.txt
	:edit file3.txt

The ":cd" command changes the current directory.  You can see what the current
directory is with the ":pwd" command: >

	:pwd
	/home/Bram/VeryLongFileName

Vim remembers the last directory that you used.  Use "cd -" to go back to it.
Example: >

	:pwd
	/home/Bram/VeryLongFileName
	:cd /etc
	:pwd
	/etc
	:cd -
	:pwd
	/home/Bram/VeryLongFileName
	:cd -
	:pwd
	/etc


WINDOW LOCAL DIRECTORY

When you split a window, both windows use the same current directory.  When
you want to edit a number of files somewhere else in the new window, you can
make it use a different directory, without changing the current directory in
the other window.  This is called a local directory. >

	:pwd
	/home/Bram/VeryLongFileName
	:split
	:lcd /etc
	:pwd
	/etc
	CTRL-W w
	:pwd
	/home/Bram/VeryLongFileName

So long as no ":lcd" command has been used, all windows share the same current
directory.  Doing a ":cd" command in one window will also change the current
directory of the other window.
   For a window where ":lcd" has been used a different current directory is
remembered.  Using ":cd" or ":lcd" in other windows will not change it.
   When using a ":cd" command in a window that uses a different current
directory, it will go back to using the shared directory.

==============================================================================
*22.3*	Finding a file

You are editing a C program that contains this line:

	#include "inits.h" ~

You want to see what is in that "inits.h" file.  Move the cursor on the name
of the file and type: >

	gf

Vim will find the file and edit it.
   What if the file is not in the current directory?  Vim will use the 'path'
option to find the file.  This option is a list of directory names where to
look for your file.
   Suppose you have your include files located in "c:/prog/include".  This
command will add it to the 'path' option: >

	:set path+=c:/prog/include

This directory is an absolute path.  No matter where you are, it will be the
same place.  What if you have located files in a subdirectory, below where the
file is?  Then you can specify a relative path name.  This starts with a dot:
>
	:set path+=./proto

This tells Vim to look in the directory "proto", below the directory where the
file in which you use "gf" is.  Thus using "gf" on "inits.h" will make Vim
look for "proto/inits.h", starting in the directory of the file.
   Without the "./", thus "proto", Vim would look in the "proto" directory
below the current directory.  And the current directory might not be where the
file that you are editing is located.

The 'path' option allows specifying the directories where to search for files
in many more ways.  See the help on the 'path' option.
   The 'isfname' option is used to decide which characters are included in the
file name, and which ones are not (e.g., the " character in the example
above).

When you know the file name, but it's not to be found in the file, you can
type it: >

	:find inits.h

Vim will then use the 'path' option to try and locate the file.  This is the
same as the ":edit" command, except for the use of 'path'.

To open the found file in a new window use CTRL-W f instead of "gf", or use
":sfind" instead of ":find".


A nice way to directly start Vim to edit a file somewhere in the 'path': >

	vim "+find stdio.h"

This finds the file "stdio.h" in your value of 'path'.  The quotes are
necessary to have one argument |-+c|.

==============================================================================
*22.4*	The buffer list

The Vim editor uses the term buffer to describe a file being edited.
Actually, a buffer is a copy of the file that you edit.  When you finish
changing the buffer, you write the contents of the buffer to the file.
Buffers not only contain file contents, but also all the marks, settings, and
other stuff that goes with it.


HIDDEN BUFFERS

Suppose you are editing the file one.txt and need to edit the file two.txt.
You could simply use ":edit two.txt", but since you made changes to one.txt
that won't work.  You also don't want to write one.txt yet.  Vim has a
solution for you: >

	:hide edit two.txt

The buffer "one.txt" disappears from the screen, but Vim still knows that you
are editing this buffer, so it keeps the modified text.  This is called a
hidden buffer: The buffer contains text, but you can't see it.
   The argument of ":hide" is another command.  ":hide" makes that command
behave as if the 'hidden' option was set.  You could also set this option
yourself.  The effect is that when any buffer is abandoned, it becomes hidden.
   Be careful!  When you have hidden buffers with changes, don't exit Vim
without making sure you have saved all the buffers.


INACTIVE BUFFERS

   When a buffer has been used once, Vim remembers some information about it.
When it is not displayed in a window and it is not hidden, it is still in the
buffer list.  This is called an inactive buffer.  Overview:

   Active		Appears in a window, text loaded.
   Hidden		Not in a window, text loaded.
   Inactive		Not in a window, no text loaded.

The inactive buffers are remembered, because Vim keeps information about them,
like marks.  And remembering the file name is useful too, so that you can see
which files you have edited.  And edit them again.


LISTING BUFFERS

View the buffer list with this command: >

	:buffers

A command which does the same, is not so obvious to list buffers, but is much
shorter to type: >

	:ls

The output could look like this:

  1 #h   "help.txt"			line 62 ~
  2 %a + "usr_21.txt"			line 1 ~
  3      "usr_toc.txt"			line 1 ~

The first column contains the buffer number.  You can use this to edit the
buffer without having to type the name, see below.
   After the buffer number come the flags.  Then the name of the file
and the line number where the cursor was the last time.
   The flags that can appear are these (from left to right):

	u	Buffer is unlisted |unlisted-buffer|.
	 %	Current buffer.
	 #	Alternate buffer.
	  a	Buffer is loaded and displayed.
	  h	Buffer is loaded but hidden.
	   =	Buffer is read-only.
	   -	Buffer is not modifiable, the 'modifiable' option is off.
	    +	Buffer has been modified.


EDITING A BUFFER

You can edit a buffer by its number.  That avoids having to type the file
name: >

	:buffer 2

But the only way to know the number is by looking in the buffer list.  You can
use the name, or part of it, instead: >

	:buffer help

Vim will find the best match for the name you type.  If there is only one
buffer that matches the name, it will be used.  In this case "help.txt".
   To open a buffer in a new window: >

	:sbuffer 3

This works with a name as well.


USING THE BUFFER LIST

You can move around in the buffer list with these commands:

	:bnext		go to next buffer
	:bprevious	go to previous buffer
	:bfirst		go to the first buffer
	:blast		go to the last buffer

To remove a buffer from the list, use this command: >

	:bdelete 3

Again, this also works with a name.
   If you delete a buffer that was active (visible in a window), that window
will be closed.  If you delete the current buffer, the current window will be
closed.  If it was the last window, Vim will find another buffer to edit.  You
can't be editing nothing!

	Note:
	Even after removing the buffer with ":bdelete" Vim still remembers it.
	It's actually made "unlisted", it no longer appears in the list from
	":buffers".  The ":buffers!" command will list unlisted buffers (yes,
	Vim can do the impossible).  To really make Vim forget about a buffer,
	use ":bwipe".  Also see the 'buflisted' option.

==============================================================================

Next chapter: |usr_23.txt|  Editing other files

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�n�':�:�vim80/doc/intro.txtnu�[���*intro.txt*     For Vim version 8.0.  Last change: 2018 Jan 24


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Introduction to Vim					*ref* *reference*

1. Introduction			|intro|
2. Vim on the internet		|internet|
3. Credits			|credits|
4. Notation			|notation|
5. Modes, introduction		|vim-modes-intro|
6. Switching from mode to mode	|mode-switching|
7. The window contents		|window-contents|
8. Definitions			|definitions|

==============================================================================
1. Introduction						*intro*

Vim stands for Vi IMproved.  It used to be Vi IMitation, but there are so many
improvements that a name change was appropriate.  Vim is a text editor which
includes almost all the commands from the Unix program "Vi" and a lot of new
ones.  It is very useful for editing programs and other plain text.
   All commands are given with the keyboard.  This has the advantage that you
can keep your fingers on the keyboard and your eyes on the screen.  For those
who want it, there is mouse support and a GUI version with scrollbars and
menus (see |gui.txt|).

An overview of this manual can be found in the file "help.txt", |help.txt|.
It can be accessed from within Vim with the <Help> or <F1> key and with the
|:help| command (just type ":help", without the bars or quotes).
   The 'helpfile' option can be set to the name of the help file, in case it
is not located in the default place.  You can jump to subjects like with tags:
Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back.

Throughout this manual the differences between Vi and Vim are mentioned in
curly braces, like this: {Vi does not have on-line help}.  See |vi_diff.txt|
for a summary of the differences between Vim and Vi.

This manual refers to Vim on various machines.  There may be small differences
between different computers and terminals.  Besides the remarks given in this
document, there is a separate document for each supported system, see
|sys-file-list|.

							*pronounce*
Vim is pronounced as one word, like Jim, not vi-ai-em.  It's written with a
capital, since it's a name, again like Jim.

This manual is a reference for all the Vim commands and options.  This is not
an introduction to the use of Vi or Vim, it gets a bit complicated here and
there.  For beginners, there is a hands-on |tutor|.  To learn using Vim, read
the user manual |usr_toc.txt|.

							*book*
There are many books on Vi that contain a section for beginners.  There are
two books I can recommend:

	"Vim - Vi Improved" by Steve Oualline

This is the very first book completely dedicated to Vim.  It is very good for
beginners.  The most often used commands are explained with pictures and
examples.  The less often used commands are also explained, the more advanced
features are summarized.  There is a comprehensive index and a quick
reference.  Parts of this book have been included in the user manual
|frombook|.
Published by New Riders Publishing.  ISBN: 0735710015
For more information try one of these:
	http://iccf-holland.org/click5.html
	http://www.vim.org/iccf/click5.html

	"Learning the Vi editor" by Linda Lamb and Arnold Robbins

This is a book about Vi that includes a chapter on Vim (in the sixth edition).
The first steps in Vi are explained very well.  The commands that Vim adds are
only briefly mentioned.  There is also a German translation.
Published by O'Reilly.  ISBN: 1-56592-426-6.

==============================================================================
2. Vim on the internet					*internet*

			*www* *WWW*  *faq* *FAQ* *distribution* *download*
The Vim pages contain the most recent information about Vim.  They also
contain links to the most recent version of Vim.  The FAQ is a list of
Frequently Asked Questions.  Read this if you have problems.

	Vim home page:	  http://www.vim.org/
	Vim FAQ:	  http://vimdoc.sf.net/
	Downloading:	  ftp://ftp.vim.org/pub/vim/MIRRORS


Usenet News group where Vim is discussed:		*news* *usenet*
	comp.editors
This group is also for other editors.  If you write about Vim, don't forget to
mention that.

						*mail-list* *maillist*
There are several mailing lists for Vim:
<vim@vim.org>					*vim-use* *vim_use*
	For discussions about using existing versions of Vim: Useful mappings,
	questions, answers, where to get a specific version, etc.  There are
	quite a few people watching this list and answering questions, also
	for beginners.  Don't hesitate to ask your question here.
<vim-dev@vim.org>				*vim-dev* *vim_dev* *vimdev*
	For discussions about changing Vim: New features, porting, patches,
	beta-test versions, etc.
<vim-announce@vim.org>				*vim-announce* *vim_announce*
	Announcements about new versions of Vim; also for beta-test versions
	and ports to different systems.  This is a read-only list.
<vim-mac@vim.org>				*vim-mac* *vim_mac*
	For discussions about using and improving the Macintosh version of
	Vim.

See http://www.vim.org/maillist.php for the latest information.

NOTE:
- You can only send messages to these lists if you have subscribed!
- You need to send the messages from the same location as where you subscribed
  from (to avoid spam mail).
- Maximum message size is 40000 characters.

						*subscribe-maillist*
If you want to join, send a message to
	<vim-subscribe@vim.org>
Make sure that your "From:" address is correct.  Then the list server will
give you help on how to subscribe.

						*maillist-archive*
For more information and archives look on the Vim maillist page:
http://www.vim.org/maillist.php


Bug reports:				*bugs* *bug-reports* *bugreport.vim*

There are two ways to report bugs, both work:
1. Send bug reports to: Vim Developers <vim-dev@vim.org>
   This is a maillist, you need to become a member first and many people will
   see the message.  If you don't want that, e.g. because it is a security
   issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
   (that's Bram).
2. Open an issue on GitHub: https://github.com/vim/vim/issues
   The text will be forwarded to the vim-dev maillist.

Please be brief; all the time that is spent on answering mail is subtracted
from the time that is spent on improving Vim!  Always give a reproducible
example and try to find out which settings or other things trigger the bug.

Preferably start Vim with: >
	vim --clean -u reproduce.vim
Where reproduce.vim is a script that reproduces the problem.  Try different
machines, if relevant (is this an MS-Windows specific bug perhaps?).

Send me patches if you can!

It will help to include information about the version of Vim you are using and
your setup.  You can get the information with this command: >
   :so $VIMRUNTIME/bugreport.vim
This will create a file "bugreport.txt" in the current directory, with a lot
of information of your environment.  Before sending this out, check if it
doesn't contain any confidential information!

If Vim crashes, please try to find out where.  You can find help on this here:
|debug.txt|.

In case of doubt or when you wonder if the problem has already been fixed but
you can't find a fix for it, become a member of the vim-dev maillist and ask
your question there. |maillist|

							*year-2000* *Y2K*
Since Vim internally doesn't use dates for editing, there is no year 2000
problem to worry about.  Vim does use the time in the form of seconds since
January 1st 1970.  It is used for a time-stamp check of the edited file and
the swap file, which is not critical and should only cause warning messages.

There might be a year 2038 problem, when the seconds don't fit in a 32 bit int
anymore.  This depends on the compiler, libraries and operating system.
Specifically, time_t and the ctime() function are used.  And the time_t is
stored in four bytes in the swap file.  But that's only used for printing a
file date/time for recovery, it will never affect normal editing.

The Vim strftime() function directly uses the strftime() system function.
localtime() uses the time() system function.  getftime() uses the time
returned by the stat() system function.  If your system libraries are year
2000 compliant, Vim is too.

The user may create scripts for Vim that use external commands.  These might
introduce Y2K problems, but those are not really part of Vim itself.

==============================================================================
3. Credits				*credits* *author* *Bram* *Moolenaar*

Most of Vim was written by Bram Moolenaar <Bram@vim.org>.

Parts of the documentation come from several Vi manuals, written by:
	W.N. Joy
	Alan P.W. Hewett
	Mark Horton

The Vim editor is based on Stevie and includes (ideas from) other software,
worked on by the people mentioned here.  Other people helped by sending me
patches, suggestions and giving feedback about what is good and bad in Vim.

Vim would never have become what it is now, without the help of these people!

	Ron Aaron		Win32 GUI changes
	Mohsin Ahmed		encryption
	Zoltan Arpadffy		work on VMS port
	Tony Andrews		Stevie
	Gert van Antwerpen	changes for DJGPP on MS-DOS
	Berkeley DB(3)		ideas for swap file implementation
	Keith Bostic		Nvi
	Walter Briscoe		Makefile updates, various patches
	Ralf Brown		SPAWNO library for MS-DOS
	Robert Colon		many useful remarks
	Marcin Dalecki		GTK+ GUI port, toolbar icons, gettext()
	Kayhan Demirel		sent me news in Uganda
	Chris & John Downey	xvi (ideas for multi-windows version)
	Henk Elbers		first VMS port
	Daniel Elstner		GTK+ 2 port
	Eric Fischer		Mac port, 'cindent', and other improvements
	Benji Fisher		Answering lots of user questions
	Bill Foster		Athena GUI port
	Google			Lets me work on Vim one day a week
	Loic Grenie		xvim (ideas for multi windows version)
	Sven Guckes		Vim promoter and previous WWW page maintainer
	Darren Hiebert		Exuberant ctags
	Jason Hildebrand	GTK+ 2 port
	Bruce Hunsaker		improvements for VMS port
	Andy Kahn		Cscope support, GTK+ GUI port
	Oezguer Kesim		Maintainer of Vim Mailing Lists
	Axel Kielhorn		work on the Macintosh port
	Steve Kirkendall	Elvis
	Roger Knobbe		original port to Windows NT
	Sergey Laskavy		Vim's help from Moscow
	Felix von Leitner	Previous maintainer of Vim Mailing Lists
	David Leonard		Port of Python extensions to Unix
	Avner Lottem		Edit in right-to-left windows
	Flemming Madsen		X11 client-server, various features and patches
	Tony Mechelynck		answers many user questions
	Paul Moore		Python interface extensions, many patches
	Katsuhito Nagano	Work on multi-byte versions
	Sung-Hyun Nam		Work on multi-byte versions
	Vince Negri		Win32 GUI and generic console enhancements
	Steve Oualline		Author of the first Vim book |frombook|
	Dominique Pelle		valgrind reports and many fixes
	A.Politz		Many bug reports and some fixes
	George V. Reilly	Win32 port, Win32 GUI start-off
	Stephen Riehm		bug collector
	Stefan Roemer		various patches and help to users
	Ralf Schandl		IBM OS/390 port
	Olaf Seibert		DICE and BeBox version, regexp improvements
	Mortaza Shiran		Farsi patches
	Peter da Silva		termlib
	Paul Slootman		OS/2 port
	Henry Spencer		regular expressions
	Dany St-Amant		Macintosh port
	Tim Thompson		Stevie
	G. R. (Fred) Walter	Stevie
	Sven Verdoolaege	Perl interface
	Robert Webb		Command-line completion, GUI versions, and
				lots of patches
	Ingo Wilken		Tcl interface
	Mike Williams		PostScript printing
	Juergen Weigert		Lattice version, AUX improvements, UNIX and
				MS-DOS ports, autoconf
	Stefan 'Sec' Zehl	Maintainer of vim.org
	Yasuhiro Matsumoto	many MS-Windows improvements
	Ken Takata		fixes and features
	Kazunobu Kuriyama	GTK 3
	Christian Brabandt	many fixes, features, user support, etc.

I wish to thank all the people that sent me bug reports and suggestions.  The
list is too long to mention them all here.  Vim would not be the same without
the ideas from all these people: They keep Vim alive!
*love* *peace* *friendship* *gross-national-happiness*


In this documentation there are several references to other versions of Vi:
							*Vi* *vi*
Vi	"the original".  Without further remarks this is the version
	of Vi that appeared in Sun OS 4.x.  ":version" returns
	"Version 3.7, 6/7/85".  Sometimes other versions are referred
	to.  Only runs under Unix.  Source code only available with a
	license.  More information on Vi can be found through:
		http://vi-editor.org	[doesn't currently work...]
							*Posix*
Posix	From the IEEE standard 1003.2, Part 2: Shell and utilities.
	Generally known as "Posix".  This is a textual description of
	how Vi is supposed to work.
	See |posix-compliance|.
							*Nvi*
Nvi	The "New" Vi.  The version of Vi that comes with BSD 4.4 and FreeBSD.
	Very good compatibility with the original Vi, with a few extensions.
	The version used is 1.79.  ":version" returns "Version 1.79
	(10/23/96)".  There has been no release the last few years, although
	there is a development version 1.81.
	Source code is freely available.
							*Elvis*
Elvis	Another Vi clone, made by Steve Kirkendall.  Very compact but isn't
	as flexible as Vim.
	The version used is 2.1.  It is still being developed.  Source code is
	freely available.

==============================================================================
4. Notation						*notation*

When syntax highlighting is used to read this, text that is not typed
literally is often highlighted with the Special group.  These are items in [],
{} and <>, and CTRL-X.

Note that Vim uses all possible characters in commands.  Sometimes the [], {}
and <> are part of what you type, the context should make this clear.


[]		Characters in square brackets are optional.

						    *count* *[count]*
[count]		An optional number that may precede the command to multiply
		or iterate the command.  If no number is given, a count of one
		is used, unless otherwise noted.  Note that in this manual the
		[count] is not mentioned in the description of the command,
		but only in the explanation.  This was done to make the
		commands easier to look up.  If the 'showcmd' option is on,
		the (partially) entered count is shown at the bottom of the
		window.  You can use <Del> to erase the last digit (|N<Del>|).

							*[quotex]*
["x]		An optional register designation where text can be stored.
		See |registers|.  The x is a single character between 'a' and
		'z' or 'A' and 'Z' or '"', and in some cases (with the put
		command) between '0' and '9', '%', '#', or others.  The
		uppercase and lowercase letter designate the same register,
		but the lowercase letter is used to overwrite the previous
		register contents, while the uppercase letter is used to
		append to the previous register contents.  Without the ""x" or
		with """" the stored text is put into the unnamed register.

							*{}*
{}		Curly braces denote parts of the command which must appear,
		but which can take a number of different values.  The
		differences between Vim and Vi are also given in curly braces
		(this will be clear from the context).

							*{char1-char2}*
{char1-char2}	A single character from the range char1 to char2.  For
		example: {a-z} is a lowercase letter.  Multiple ranges may be
		concatenated.  For example, {a-zA-Z0-9} is any alphanumeric
		character.

						*{motion}* *movement*
{motion}	A command that moves the cursor.  These are explained in
		|motion.txt|.  Examples:
			w		to start of next word
			b		to begin of current word
			4j		four lines down
			/The<CR>	to next occurrence of "The"
		This is used after an |operator| command to move over the text
		that is to be operated upon.
		- If the motion includes a count and the operator also has a
		  count, the two counts are multiplied.  For example: "2d3w"
		  deletes six words.
		- The motion can be backwards, e.g. "db" to delete to the
		  start of the word.
		- The motion can also be a mouse click.  The mouse is not
		  supported in every terminal though.
		- The ":omap" command can be used to map characters while an
		  operator is pending.
		- Ex commands can be used to move the cursor.  This can be
		  used to call a function that does some complicated motion.
		  The motion is always characterwise exclusive, no matter
		  what ":" command is used.  This means it's impossible to
		  include the last character of a line without the line break
		  (unless 'virtualedit' is set).
		  If the Ex command changes the text before where the operator
		  starts or jumps to another buffer the result is
		  unpredictable.  It is possible to change the text further
		  down.  Jumping to another buffer is possible if the current
		  buffer is not unloaded.

							*{Visual}*
{Visual}	A selected text area.  It is started with the "v", "V", or
		CTRL-V command, then any cursor movement command can be used
		to change the end of the selected text.
		This is used before an |operator| command to highlight the
		text that is to be operated upon.
		See |Visual-mode|.

							*<character>*
<character>	A special character from the table below, optionally with
		modifiers, or a single ASCII character with modifiers.

							*'character'*
'c'		A single ASCII character.

							*CTRL-{char}*
CTRL-{char}	{char} typed as a control character; that is, typing {char}
		while holding the CTRL key down.  The case of {char} does not
		matter; thus CTRL-A and CTRL-a are equivalent.  But on some
		terminals, using the SHIFT key will produce another code,
		don't use it then.

							*'option'*
'option'	An option, or parameter, that can be set to a value, is
		enclosed in single quotes.  See |options|.

							*quotecommandquote*
"command"	A reference to a command that you can type is enclosed in
		double quotes.
`command`	New style command, this distinguishes it from other quoted
		text and strings.

					*key-notation* *key-codes* *keycodes*
These names for keys are used in the documentation.  They can also be used
with the ":map" command (insert the key name by pressing CTRL-K and then the
key you want the name for).

notation	meaning		    equivalent	decimal value(s)	~
-----------------------------------------------------------------------
<Nul>		zero			CTRL-@	  0 (stored as 10) *<Nul>*
<BS>		backspace		CTRL-H	  8	*backspace*
<Tab>		tab			CTRL-I	  9	*tab* *Tab*
							*linefeed*
<NL>		linefeed		CTRL-J	 10 (used for <Nul>)
<FF>		formfeed		CTRL-L	 12	*formfeed*
<CR>		carriage return		CTRL-M	 13	*carriage-return*
<Return>	same as <CR>				*<Return>*
<Enter>		same as <CR>				*<Enter>*
<Esc>		escape			CTRL-[	 27	*escape* *<Esc>*
<Space>		space				 32	*space*
<lt>		less-than		<	 60	*<lt>*
<Bslash>	backslash		\	 92	*backslash* *<Bslash>*
<Bar>		vertical bar		|	124	*<Bar>*
<Del>		delete				127
<CSI>		command sequence intro  ALT-Esc 155	*<CSI>*
<xCSI>		CSI when typed in the GUI		*<xCSI>*

<EOL>		end-of-line (can be <CR>, <LF> or <CR><LF>,
		depends on system and 'fileformat')	*<EOL>*

<Up>		cursor-up			*cursor-up* *cursor_up*
<Down>		cursor-down			*cursor-down* *cursor_down*
<Left>		cursor-left			*cursor-left* *cursor_left*
<Right>		cursor-right			*cursor-right* *cursor_right*
<S-Up>		shift-cursor-up
<S-Down>	shift-cursor-down
<S-Left>	shift-cursor-left
<S-Right>	shift-cursor-right
<C-Left>	control-cursor-left
<C-Right>	control-cursor-right
<F1> - <F12>	function keys 1 to 12		*function_key* *function-key*
<S-F1> - <S-F12> shift-function keys 1 to 12	*<S-F1>*
<Help>		help key
<Undo>		undo key
<Insert>	insert key
<Home>		home				*home*
<End>		end				*end*
<PageUp>	page-up				*page_up* *page-up*
<PageDown>	page-down			*page_down* *page-down*
<kHome>		keypad home (upper left)	*keypad-home*
<kEnd>		keypad end (lower left)		*keypad-end*
<kPageUp>	keypad page-up (upper right)	*keypad-page-up*
<kPageDown>	keypad page-down (lower right)	*keypad-page-down*
<kPlus>		keypad +			*keypad-plus*
<kMinus>	keypad -			*keypad-minus*
<kMultiply>	keypad *			*keypad-multiply*
<kDivide>	keypad /			*keypad-divide*
<kEnter>	keypad Enter			*keypad-enter*
<kPoint>	keypad Decimal point		*keypad-point*
<k0> - <k9>	keypad 0 to 9			*keypad-0* *keypad-9*
<S-...>		shift-key			*shift* *<S-*
<C-...>		control-key			*control* *ctrl* *<C-*
<M-...>		alt-key or meta-key		*meta* *alt* *<M-*
<A-...>		same as <M-...>			*<A-*
<D-...>		command-key (Macintosh only)	*<D-*
<t_xx>		key with "xx" entry in termcap
-----------------------------------------------------------------------

Note: The shifted cursor keys, the help key, and the undo key are only
available on a few terminals.  On the Amiga, shifted function key 10 produces
a code (CSI) that is also used by key sequences.  It will be recognized only
after typing another key.

Note: There are two codes for the delete key.  127 is the decimal ASCII value
for the delete key, which is always recognized.  Some delete keys send another
value, in which case this value is obtained from the termcap entry "kD".  Both
values have the same effect.  Also see |:fixdel|.

Note: The keypad keys are used in the same way as the corresponding "normal"
keys.  For example, <kHome> has the same effect as <Home>.  If a keypad key
sends the same raw key code as its non-keypad equivalent, it will be
recognized as the non-keypad code.  For example, when <kHome> sends the same
code as <Home>, when pressing <kHome> Vim will think <Home> was pressed.
Mapping <kHome> will not work then.

								*<>*
Examples are often given in the <> notation.  Sometimes this is just to make
clear what you need to type, but often it can be typed literally, e.g., with
the ":map" command.  The rules are:
 1.  Any printable characters are typed directly, except backslash and '<'
 2.  A backslash is represented with "\\", double backslash, or "<Bslash>".
 3.  A real '<' is represented with "\<" or "<lt>".  When there is no
     confusion possible, a '<' can be used directly.
 4.  "<key>" means the special key typed.  This is the notation explained in
     the table above.  A few examples:
	   <Esc>		Escape key
	   <C-G>		CTRL-G
	   <Up>			cursor up key
	   <C-LeftMouse>	Control- left mouse click
	   <S-F11>		Shifted function key 11
	   <M-a>		Meta- a  ('a' with bit 8 set)
	   <M-A>		Meta- A  ('A' with bit 8 set)
	   <t_kd>		"kd" termcap entry (cursor down key)

If you want to use the full <> notation in Vim, you have to make sure the '<'
flag is excluded from 'cpoptions' (when 'compatible' is not set, it already is
by default). >
	:set cpo-=<
The <> notation uses <lt> to escape the special meaning of key names.  Using a
backslash also works, but only when 'cpoptions' does not include the 'B' flag.

Examples for mapping CTRL-H to the six characters "<Home>": >
	:imap <C-H> \<Home>
	:imap <C-H> <lt>Home>
The first one only works when the 'B' flag is not in 'cpoptions'.  The second
one always works.
To get a literal "<lt>" in a mapping: >
	:map <C-L> <lt>lt>

For mapping, abbreviation and menu commands you can then copy-paste the
examples and use them directly.  Or type them literally, including the '<' and
'>' characters.  This does NOT work for other commands, like ":set" and
":autocmd"!

==============================================================================
5. Modes, introduction				*vim-modes-intro* *vim-modes*

Vim has seven BASIC modes:

					*Normal* *Normal-mode* *command-mode*
Normal mode		In Normal mode you can enter all the normal editor
			commands.  If you start the editor you are in this
			mode (unless you have set the 'insertmode' option,
			see below).  This is also known as command mode.

Visual mode		This is like Normal mode, but the movement commands
			extend a highlighted area.  When a non-movement
			command is used, it is executed for the highlighted
			area.  See |Visual-mode|.
			If the 'showmode' option is on "-- VISUAL --" is shown
			at the bottom of the window.

Select mode		This looks most like the MS-Windows selection mode.
			Typing a printable character deletes the selection
			and starts Insert mode.  See |Select-mode|.
			If the 'showmode' option is on "-- SELECT --" is shown
			at the bottom of the window.

Insert mode		In Insert mode the text you type is inserted into the
			buffer.  See |Insert-mode|.
			If the 'showmode' option is on "-- INSERT --" is shown
			at the bottom of the window.

Command-line mode	In Command-line mode (also called Cmdline mode) you
Cmdline mode		can enter one line of text at the bottom of the
			window.  This is for the Ex commands, ":", the pattern
			search commands, "?" and "/", and the filter command,
			"!".  |Cmdline-mode|

Ex mode			Like Command-line mode, but after entering a command
			you remain in Ex mode.  Very limited editing of the
			command line.  |Ex-mode|

Terminal-Job mode	Interacting with a job in a terminal window.  Typed
			keys go to the job and the job output is displayed in
			the terminal window.  See |terminal| about how to
			switch to other modes.

There are seven ADDITIONAL modes.  These are variants of the BASIC modes:

				*Operator-pending* *Operator-pending-mode*
Operator-pending mode	This is like Normal mode, but after an operator
			command has started, and Vim is waiting for a {motion}
			to specify the text that the operator will work on.

Replace mode		Replace mode is a special case of Insert mode.  You
			can do the same things as in Insert mode, but for
			each character you enter, one character of the existing
			text is deleted.  See |Replace-mode|.
			If the 'showmode' option is on "-- REPLACE --" is
			shown at the bottom of the window.

Virtual Replace mode	Virtual Replace mode is similar to Replace mode, but
			instead of file characters you are replacing screen
			real estate.  See |Virtual-Replace-mode|.
			If the 'showmode' option is on "-- VREPLACE --" is
			shown at the bottom of the window.

Insert Normal mode	Entered when CTRL-O given in Insert mode.  This is
			like Normal mode, but after executing one command Vim
			returns to Insert mode.
			If the 'showmode' option is on "-- (insert) --" is
			shown at the bottom of the window.

Terminal-Normal mode	Using Normal mode in a terminal window.  Making
			changes is impossible.  Use an insert command, such as
			"a" or "i", to return to Terminal-Job mode.

Insert Visual mode	Entered when starting a Visual selection from Insert
			mode, e.g., by using CTRL-O and then "v", "V" or
			CTRL-V.  When the Visual selection ends, Vim returns
			to Insert mode.
			If the 'showmode' option is on "-- (insert) VISUAL --"
			is shown at the bottom of the window.

Insert Select mode	Entered when starting Select mode from Insert mode.
			E.g., by dragging the mouse or <S-Right>.
			When the Select mode ends, Vim returns to Insert mode.
			If the 'showmode' option is on "-- (insert) SELECT --"
			is shown at the bottom of the window.

==============================================================================
6. Switching from mode to mode				*mode-switching*

If for any reason you do not know which mode you are in, you can always get
back to Normal mode by typing <Esc> twice.  This doesn't work for Ex mode
though, use ":visual".
You will know you are back in Normal mode when you see the screen flash or
hear the bell after you type <Esc>.  However, when pressing <Esc> after using
CTRL-O in Insert mode you get a beep but you are still in Insert mode, type
<Esc> again.

							*i_esc*
		TO mode						    ~
		Normal	Visual	Select	Insert	  Replace   Cmd-line  Ex ~
FROM mode								 ~
Normal			v V ^V	  *4	 *1	   R gR     : / ? !   Q
Visual		 *2		  ^G	 c C	    --	      :       --
Select		 *5	^O ^G		 *6	    --	      --      --
Insert		 <Esc>	  --	  --		  <Insert>    --      --
Replace		 <Esc>	  --	  --	<Insert>	      --      --
Command-line	 *3	  --	  --	 :start	    --		      --
Ex		 :vi	  --	  --	 --	    --	      --

-- not possible

*1 Go from Normal mode to Insert mode by giving the command "i", "I", "a",
   "A", "o", "O", "c", "C", "s" or S".
*2 Go from Visual mode to Normal mode by giving a non-movement command, which
   causes the command to be executed, or by hitting <Esc> "v", "V" or "CTRL-V"
   (see |v_v|), which just stops Visual mode without side effects.
*3 Go from Command-line mode to Normal mode by:
   - Hitting <CR> or <NL>, which causes the entered command to be executed.
   - Deleting the complete line (e.g., with CTRL-U) and giving a final <BS>.
   - Hitting CTRL-C or <Esc>, which quits the command-line without executing
     the command.
   In the last case <Esc> may be the character defined with the 'wildchar'
   option, in which case it will start command-line completion.  You can
   ignore that and type <Esc> again.  {Vi: when hitting <Esc> the command-line
   is executed.  This is unexpected for most people; therefore it was changed
   in Vim.  But when the <Esc> is part of a mapping, the command-line is
   executed.  If you want the Vi behaviour also when typing <Esc>, use ":cmap
   ^V<Esc> ^V^M"}
*4 Go from Normal to Select mode by:
   - use the mouse to select text while 'selectmode' contains "mouse"
   - use a non-printable command to move the cursor while keeping the Shift
     key pressed, and the 'selectmode' option contains "key"
   - use "v", "V" or "CTRL-V" while 'selectmode' contains "cmd"
   - use "gh", "gH" or "g CTRL-H"  |g_CTRL-H|
*5 Go from Select mode to Normal mode by using a non-printable command to move
   the cursor, without keeping the Shift key pressed.
*6 Go from Select mode to Insert mode by typing a printable character.  The
   selection is deleted and the character is inserted.

If the 'insertmode' option is on, editing a file will start in Insert mode.

	*CTRL-\_CTRL-N* *i_CTRL-\_CTRL-N* *c_CTRL-\_CTRL-N* *v_CTRL-\_CTRL-N*
Additionally the command CTRL-\ CTRL-N or <C-\><C-N> can be used to go to
Normal mode from any other mode.  This can be used to make sure Vim is in
Normal mode, without causing a beep like <Esc> would.  However, this does not
work in Ex mode.  When used after a command that takes an argument, such as
|f| or |m|, the timeout set with 'ttimeoutlen' applies.
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode for only
one command, see |t_CTRL-\_CTRL-N|.

	*CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G*
The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when
'insertmode' is set.  Otherwise it goes to Normal mode.  This can be used to
make sure Vim is in the mode indicated by 'insertmode', without knowing in
what mode Vim currently is.

				    *Q* *mode-Ex* *Ex-mode* *Ex* *EX* *E501*
Q			Switch to "Ex" mode.  This is a bit like typing ":"
			commands one after another, except:
			- You don't have to keep pressing ":".
			- The screen doesn't get updated after each command.
			- There is no normal command-line editing.
			- Mappings and abbreviations are not used.
			In fact, you are editing the lines with the "standard"
			line-input editing commands (<Del> or <BS> to erase,
			CTRL-U to kill the whole line).
			Vim will enter this mode by default if it's invoked as
			"ex" on the command-line.
			Use the ":vi" command |:visual| to exit "Ex" mode.
			Note: In older versions of Vim "Q" formatted text,
			that is now done with |gq|.  But if you use the
			|vimrc_example.vim| script "Q" works like "gq".

					*gQ*
gQ			Switch to "Ex" mode like with "Q", but really behave
			like typing ":" commands after another.  All command
			line editing, completion etc. is available.
			Use the ":vi" command |:visual| to exit "Ex" mode.
			{not in Vi}

==============================================================================
7. The window contents					*window-contents*

In Normal mode and Insert/Replace mode the screen window will show the current
contents of the buffer: What You See Is What You Get.  There are two
exceptions:
- When the 'cpoptions' option contains '$', and the change is within one line,
  the text is not directly deleted, but a '$' is put at the last deleted
  character.
- When inserting text in one window, other windows on the same text are not
  updated until the insert is finished.
{Vi: The screen is not always updated on slow terminals}

Lines longer than the window width will wrap, unless the 'wrap' option is off
(see below).  The 'linebreak' option can be set to wrap at a blank character.

If the window has room after the last line of the buffer, Vim will show '~' in
the first column of the last lines in the window, like this:

	+-----------------------+
	|some line		|
	|last line		|
	|~			|
	|~			|
	+-----------------------+

Thus the '~' lines indicate that the end of the buffer was reached.

If the last line in a window doesn't fit, Vim will indicate this with a '@' in
the first column of the last lines in the window, like this:

	+-----------------------+
	|first line		|
	|second line		|
	|@			|
	|@			|
	+-----------------------+

Thus the '@' lines indicate that there is a line that doesn't fit in the
window.

When the "lastline" flag is present in the 'display' option, you will not see
'@' characters at the left side of window.  If the last line doesn't fit
completely, only the part that fits is shown, and the last three characters of
the last line are replaced with "@@@", like this:

	+-----------------------+
	|first line		|
	|second line		|
	|a very long line that d|
	|oesn't fit in the wi@@@|
	+-----------------------+

If there is a single line that is too long to fit in the window, this is a
special situation.  Vim will show only part of the line, around where the
cursor is.  There are no special characters shown, so that you can edit all
parts of this line.
{Vi: gives an "internal error" on lines that do not fit in the window}

The '@' occasion in the 'highlight' option can be used to set special
highlighting for the '@' and '~' characters.  This makes it possible to
distinguish them from real characters in the buffer.

The 'showbreak' option contains the string to put in front of wrapped lines.

							*wrap-off*
If the 'wrap' option is off, long lines will not wrap.  Only the part that
fits on the screen is shown.  If the cursor is moved to a part of the line
that is not shown, the screen is scrolled horizontally.  The advantage of
this method is that columns are shown as they are and lines that cannot fit
on the screen can be edited.  The disadvantage is that you cannot see all the
characters of a line at once.  The 'sidescroll' option can be set to the
minimal number of columns to scroll.  {Vi: has no 'wrap' option}

All normal ASCII characters are displayed directly on the screen.  The <Tab>
is replaced with the number of spaces that it represents.  Other non-printing
characters are replaced with "^{char}", where {char} is the non-printing
character with 64 added.  Thus character 7 (bell) will be shown as "^G".
Characters between 127 and 160 are replaced with "~{char}", where {char} is
the character with 64 subtracted.  These characters occupy more than one
position on the screen.  The cursor can only be positioned on the first one.

If you set the 'number' option, all lines will be preceded with their
number.  Tip: If you don't like wrapping lines to mix with the line numbers,
set the 'showbreak' option to eight spaces:
	":set showbreak=\ \ \ \ \ \ \ \ "

If you set the 'list' option, <Tab> characters will not be shown as several
spaces, but as "^I".  A '$' will be placed at the end of the line, so you can
find trailing blanks.

In Command-line mode only the command-line itself is shown correctly.  The
display of the buffer contents is updated as soon as you go back to Command
mode.

The last line of the window is used for status and other messages.  The
status messages will only be used if an option is on:

status message			option	     default	Unix default	~
current mode			'showmode'	on	    on
command characters		'showcmd'	on	    off
cursor position			'ruler'		off	    off

The current mode is "-- INSERT --" or "-- REPLACE --", see |'showmode'|.  The
command characters are those that you typed but were not used yet.  {Vi: does
not show the characters you typed or the cursor position}

If you have a slow terminal you can switch off the status messages to speed
up editing:
	:set nosc noru nosm

If there is an error, an error message will be shown for at least one second
(in reverse video).  {Vi: error messages may be overwritten with other
messages before you have a chance to read them}

Some commands show how many lines were affected.  Above which threshold this
happens can be controlled with the 'report' option (default 2).

On the Amiga Vim will run in a CLI window.  The name Vim and the full name of
the current file name will be shown in the title bar.  When the window is
resized, Vim will automatically redraw the window.  You may make the window as
small as you like, but if it gets too small not a single line will fit in it.
Make it at least 40 characters wide to be able to read most messages on the
last line.

On most Unix systems, resizing the window is recognized and handled correctly
by Vim.  {Vi: not ok}

==============================================================================
8. Definitions						*definitions*

  buffer		Contains lines of text, usually read from a file.
  screen		The whole area that Vim uses to work in.  This can be
			a terminal emulator window.  Also called "the Vim
			window".
  window		A view on a buffer.  There can be multiple windows for
			one buffer.

A screen contains one or more windows, separated by status lines and with the
command line at the bottom.

	+-------------------------------+
screen	| window 1	| window 2	|
	|		|		|
	|		|		|
	|= status line =|= status line =|
	| window 3			|
	|				|
	|				|
	|==== status line ==============|
	|command line			|
	+-------------------------------+

The command line is also used for messages.  It scrolls up the screen when
there is not enough room in the command line.

A difference is made between four types of lines:

  buffer lines		The lines in the buffer.  This is the same as the
			lines as they are read from/written to a file.  They
			can be thousands of characters long.
  logical lines		The buffer lines with folding applied.  Buffer lines
			in a closed fold are changed to a single logical line:
			"+-- 99 lines folded".  They can be thousands of
			characters long.
  window lines		The lines displayed in a window: A range of logical
			lines with wrapping, line breaks, etc.  applied.  They
			can only be as long as the width of the window allows,
			longer lines are wrapped or truncated.
  screen lines		The lines of the screen that Vim uses.  Consists of
			the window lines of all windows, with status lines
			and the command line added.  They can only be as long
			as the width of the screen allows.  When the command
			line gets longer it wraps and lines are scrolled to
			make room.

buffer lines	logical lines	window lines	screen lines ~

1. one		1. one		1. +-- folded   1.  +-- folded
2. two		2. +-- folded	2. five		2.  five
3. three	3. five		3. six		3.  six
4. four		4. six		4. seven	4.  seven
5. five		5. seven			5.  === status line ===
6. six						6.  aaa
7. seven					7.  bbb
						8.  ccc ccc c
1. aaa		1. aaa		1. aaa		9.  cc
2. bbb		2. bbb		2. bbb		10. ddd
3. ccc ccc ccc	3. ccc ccc ccc	3. ccc ccc c	11. ~ 
4. ddd		4. ddd		4. cc		12. === status line ===
				5. ddd		13. (command line)
				6. ~ 

==============================================================================
 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z=�t��@�@vim80/doc/diff.txtnu�[���*diff.txt*      For Vim version 8.0.  Last change: 2017 Oct 03


		  VIM REFERENCE MANUAL    by Bram Moolenaar


				*diff* *vimdiff* *gvimdiff* *diff-mode*
This file describes the |+diff| feature: Showing differences between two to
eight versions of the same file.

The basics are explained in section |08.7| of the user manual.

1. Starting diff mode		|start-vimdiff|
2. Viewing diffs		|view-diffs|
3. Jumping to diffs		|jumpto-diffs|
4. Copying diffs		|copy-diffs|
5. Diff options			|diff-options|

{not in Vi}

==============================================================================
1. Starting diff mode					*start-vimdiff*

The easiest way to start editing in diff mode is with the "vimdiff" command.
This starts Vim as usual, and additionally sets up for viewing the differences
between the arguments. >

	vimdiff file1 file2 [file3 [file4]]

This is equivalent to: >

	vim -d file1 file2 [file3 [file4]]

You may also use "gvimdiff" or "vim -d -g".  The GUI is started then.
You may also use "viewdiff" or "gviewdiff".  Vim starts in readonly mode then.
"r" may be prepended for restricted mode (see |-Z|).

The second and following arguments may also be a directory name.  Vim will
then append the file name of the first argument to the directory name to find
the file.

This only works when a standard "diff" command is available.  See 'diffexpr'.

Diffs are local to the current tab page |tab-page|.  You can't see diffs with
a window in another tab page.  This does make it possible to have several
diffs at the same time, each in their own tab page.

What happens is that Vim opens a window for each of the files.  This is like
using the |-O| argument.  This uses vertical splits.  If you prefer horizontal
splits add the |-o| argument: >

	vimdiff -o file1 file2 [file3 [file4]]

If you always prefer horizontal splits include "horizontal" in 'diffopt'.

In each of the edited files these options are set:

	'diff'		on
	'scrollbind'	on
	'cursorbind'	on
	'scrollopt'	includes "hor"
	'wrap'		off
	'foldmethod'	"diff"
	'foldcolumn'	value from 'diffopt', default is 2

These options are set local to the window.  When editing another file they are
reset to the global value.
The options can still be overruled from a modeline when re-editing the file.
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
set.

The differences shown are actually the differences in the buffer.  Thus if you
make changes after loading a file, these will be included in the displayed
diffs.  You might have to do ":diffupdate" now and then, not all changes are
immediately taken into account.

In your .vimrc file you could do something special when Vim was started in
diff mode.  You could use a construct like this: >

	if &diff
	   setup for diff mode
	else
	   setup for non-diff mode
	endif

While already in Vim you can start diff mode in three ways.

							*E98*
:diffs[plit] {filename}					*:diffs* *:diffsplit*
		Open a new window on the file {filename}.  The options are set
		as for "vimdiff" for the current and the newly opened window.
		Also see 'diffexpr'.

							*:difft* *:diffthis*
:difft[his]	Make the current window part of the diff windows.  This sets
		the options like for "vimdiff".

:diffp[atch] {patchfile}			 *E816* *:diffp* *:diffpatch*
		Use the current buffer, patch it with the diff found in
		{patchfile} and open a buffer on the result.  The options are
		set as for "vimdiff".
		{patchfile} can be in any format that the "patch" program
		understands or 'patchexpr' can handle.
		Note that {patchfile} should only contain a diff for one file,
		the current file.  If {patchfile} contains diffs for other
		files as well, the results are unpredictable.  Vim changes
		directory to /tmp to avoid files in the current directory
		accidentally being patched.  But it may still result in
		various ".rej" files to be created.  And when absolute path
		names are present these files may get patched anyway.

To make these commands use a vertical split, prepend |:vertical|.  Examples: >

	:vert diffsplit main.c~
	:vert diffpatch /tmp/diff

If you always prefer a vertical split include "vertical" in 'diffopt'.

							*E96*
There can be up to eight buffers with 'diff' set.

Since the option values are remembered with the buffer, you can edit another
file for a moment and come back to the same file and be in diff mode again.

							*:diffo* *:diffoff*
:diffo[ff]	Switch off diff mode for the current window.  Resets related
		options also when 'diff' was not set.

:diffo[ff]!	Switch off diff mode for the current window and in all windows
		in the current tab page where 'diff' is set.  Resetting
		related options only happens in a window that has 'diff' set,
		if the current window does not have 'diff' set then no options
		in it are changed.
		Hidden buffers are also removed from the list of diff'ed
		buffers.

The `:diffoff` command resets the relevant options to the values they had when
using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode.
When using `:diffoff` twice the last saved values are restored.
Otherwise they are set to their default value:

	'diff'		off
	'scrollbind'	off
	'cursorbind'	off
	'scrollopt'	without "hor"
	'wrap'		on
	'foldmethod'	"manual"
	'foldcolumn'	0

==============================================================================
2. Viewing diffs						*view-diffs*

The effect is that the diff windows show the same text, with the differences
highlighted.  When scrolling the text, the 'scrollbind' option will make the
text in other windows to be scrolled as well.  With vertical splits the text
should be aligned properly.

The alignment of text will go wrong when:
- 'wrap' is on, some lines will be wrapped and occupy two or more screen
  lines
- folds are open in one window but not another
- 'scrollbind' is off
- changes have been made to the text
- "filler" is not present in 'diffopt', deleted/inserted lines makes the
  alignment go wrong

All the buffers edited in a window where the 'diff' option is set will join in
the diff.  This is also possible for hidden buffers.  They must have been
edited in a window first for this to be possible.  To get rid of the hidden
buffers use `:diffoff!`.

					*:DiffOrig* *diff-original-file*
Since 'diff' is a window-local option, it's possible to view the same buffer
in diff mode in one window and "normal" in another window.  It is also
possible to view the changes you have made to a buffer since the file was
loaded.  Since Vim doesn't allow having two buffers for the same file, you
need another buffer.  This command is useful: >
	 command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
	 	\ | diffthis | wincmd p | diffthis
(this is in |vimrc_example.vim|).  Use ":DiffOrig" to see the differences
between the current buffer and the file it was loaded from.

A buffer that is unloaded cannot be used for the diff.  But it does work for
hidden buffers.  You can use ":hide" to close a window without unloading the
buffer.  If you don't want a buffer to remain used for the diff do ":set
nodiff" before hiding it.

							*:dif* *:diffupdate*
:dif[fupdate][!]		Update the diff highlighting and folds.

Vim attempts to keep the differences updated when you make changes to the
text.  This mostly takes care of inserted and deleted lines.  Changes within a
line and more complicated changes do not cause the differences to be updated.
To force the differences to be updated use: >

	:diffupdate

If the ! is included Vim will check if the file was changed externally and
needs to be reloaded.  It will prompt for each changed file, like `:checktime`
was used.

Vim will show filler lines for lines that are missing in one window but are
present in another.  These lines were inserted in another file or deleted in
this file.  Removing "filler" from the 'diffopt' option will make Vim not
display these filler lines.


Folds are used to hide the text that wasn't changed.  See |folding| for all
the commands that can be used with folds.

The context of lines above a difference that are not included in the fold can
be set with the 'diffopt' option.  For example, to set the context to three
lines: >

	:set diffopt=filler,context:3


The diffs are highlighted with these groups:

|hl-DiffAdd|	DiffAdd		Added (inserted) lines.  These lines exist in
				this buffer but not in another.
|hl-DiffChange|	DiffChange	Changed lines.
|hl-DiffText|	DiffText	Changed text inside a Changed line.  Vim
				finds the first character that is different,
				and the last character that is different
				(searching from the end of the line).  The
				text in between is highlighted.  This means
				that parts in the middle that are still the
				same are highlighted anyway.  The 'diffopt'
				flags "iwhite" and "icase" are used here.
|hl-DiffDelete|	DiffDelete	Deleted lines.  Also called filler lines,
				because they don't really exist in this
				buffer.

==============================================================================
3. Jumping to diffs					*jumpto-diffs*

Two commands can be used to jump to diffs:
								*[c*
	[c		Jump backwards to the previous start of a change.
			When a count is used, do it that many times.
								*]c*
	]c		Jump forwards to the next start of a change.
			When a count is used, do it that many times.

It is an error if there is no change for the cursor to move to.

==============================================================================
4. Diff copying			*copy-diffs* *E99* *E100* *E101* *E102* *E103*
								*merge*
There are two commands to copy text from one buffer to another.  The result is
that the buffers will be equal within the specified range.

							*:diffg* *:diffget*
:[range]diffg[et] [bufspec]
		Modify the current buffer to undo difference with another
		buffer.  If [bufspec] is given, that buffer is used.  If
		[bufspec] refers to the current buffer then nothing happens.
		Otherwise this only works if there is one other buffer in diff
		mode.
		See below for [range].

						*:diffpu* *:diffput* *E793*
:[range]diffpu[t] [bufspec]
		Modify another buffer to undo difference with the current
		buffer.  Just like ":diffget" but the other buffer is modified
		instead of the current one.
		When [bufspec] is omitted and there is more than one other
		buffer in diff mode where 'modifiable' is set this fails.
		See below for [range].

							*do*
[count]do	Same as ":diffget" without range.  The "o" stands for "obtain"
		("dg" can't be used, it could be the start of "dgg"!). Note:
		this doesn't work in Visual mode.
		If you give a [count], it is used as the [bufspec] argument
		for ":diffget".

							*dp*
[count]dp	Same as ":diffput" without range.  Note: this doesn't work in
		Visual mode.
		If you give a [count], it is used as the [bufspec] argument
		for ":diffput".


When no [range] is given, the diff at the cursor position or just above it is
affected.  When [range] is used, Vim tries to only put or get the specified
lines.  When there are deleted lines, this may not always be possible.

There can be deleted lines below the last line of the buffer.  When the cursor
is on the last line in the buffer and there is no diff above this line, the
":diffget" and "do" commands will obtain lines from the other buffer.

To be able to get those lines from another buffer in a [range] it's allowed to
use the last line number plus one.  This command gets all diffs from the other
buffer: >

	:1,$+1diffget

Note that deleted lines are displayed, but not counted as text lines.  You
can't move the cursor into them.  To fill the deleted lines with the lines
from another buffer use ":diffget" on the line below them.
								*E787*
When the buffer that is about to be modified is read-only and the autocommand
that is triggered by |FileChangedRO| changes buffers the command will fail.
The autocommand must not change buffers.

The [bufspec] argument above can be a buffer number, a pattern for a buffer
name or a part of a buffer name.  Examples:

	:diffget		Use the other buffer which is in diff mode
	:diffget 3		Use buffer 3
	:diffget v2		Use the buffer which matches "v2" and is in
				diff mode (e.g., "file.c.v2")

==============================================================================
5. Diff options						*diff-options*

Also see |'diffopt'| and the "diff" item of |'fillchars'|.

					    *diff-slow* *diff_translations*
For very long lines, the diff syntax highlighting might be slow, especially
since it tries to match all different kind of localisations. To disable
localisations and speed up the syntax highlighting, set the global variable
g:diff_translations to zero: >

    let g:diff_translations = 0
<
After setting this variable, reload the syntax script: >

    set syntax=diff
<


FINDING THE DIFFERENCES					*diff-diffexpr*

The 'diffexpr' option can be set to use something else than the standard
"diff" program to compare two files and find the differences.

When 'diffexpr' is empty, Vim uses this command to find the differences
between file1 and file2: >

	diff file1 file2 > outfile

The ">" is replaced with the value of 'shellredir'.

The output of "diff" must be a normal "ed" style diff.  Do NOT use a context
diff.  This example explains the format that Vim expects: >

	1a2
	> bbb
	4d4
	< 111
	7c7
	< GGG
	---
	> ggg

The "1a2" item appends the line "bbb".
The "4d4" item deletes the line "111".
The "7c7" item replaces the line "GGG" with "ggg".

When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
format mentioned.  These variables are set to the file names used:

	v:fname_in		original file
	v:fname_new		new version of the same file
	v:fname_out		resulting diff file

Additionally, 'diffexpr' should take care of "icase" and "iwhite" in the
'diffopt' option.  'diffexpr' cannot change the value of 'lines' and
'columns'.

Example (this does almost the same as 'diffexpr' being empty): >

	set diffexpr=MyDiff()
	function MyDiff()
	   let opt = ""
	   if &diffopt =~ "icase"
	     let opt = opt . "-i "
	   endif
	   if &diffopt =~ "iwhite"
	     let opt = opt . "-b "
	   endif
	   silent execute "!diff -a --binary " . opt . v:fname_in . " " . v:fname_new .
		\  " > " . v:fname_out
	endfunction

The "-a" argument is used to force comparing the files as text, comparing as
binaries isn't useful.  The "--binary" argument makes the files read in binary
mode, so that a CTRL-Z doesn't end the text on DOS.

						*E810* *E97*
Vim will do a test if the diff output looks alright.  If it doesn't, you will
get an error message.  Possible causes:
-  The "diff" program cannot be executed.
-  The "diff" program doesn't produce normal "ed" style diffs (see above).
-  The 'shell' and associated options are not set correctly.  Try if filtering
   works with a command like ":!sort".
-  You are using 'diffexpr' and it doesn't work.
If it's not clear what the problem is set the 'verbose' option to one or more
to see more messages.

The self-installing Vim for MS-Windows includes a diff program.  If you don't
have it you might want to download a diff.exe.  For example from
http://gnuwin32.sourceforge.net/packages/diffutils.htm.


USING PATCHES					*diff-patchexpr*

The 'patchexpr' option can be set to use something else than the standard
"patch" program.

When 'patchexpr' is empty, Vim will call the "patch" program like this: >

	patch -o outfile origfile < patchfile

This should work fine with most versions of the "patch" program.  Note that a
CR in the middle of a line may cause problems, it is seen as a line break.

If the default doesn't work for you, set the 'patchexpr' to an expression that
will have the same effect.  These variables are set to the file names used:

	v:fname_in		original file
	v:fname_diff		patch file
	v:fname_out		resulting patched file

Example (this does the same as 'patchexpr' being empty): >

	set patchexpr=MyPatch()
	function MyPatch()
	   :call system("patch -o " . v:fname_out . " " . v:fname_in .
	   \  " < " . v:fname_diff)
	endfunction

Make sure that using the "patch" program doesn't have unwanted side effects.
For example, watch out for additionally generated files, which should be
deleted.  It should just patch the file and nothing else.
   Vim will change directory to "/tmp" or another temp directory before
evaluating 'patchexpr'.  This hopefully avoids that files in the current
directory are accidentally patched.  Vim will also delete files starting with
v:fname_in and ending in ".rej" and ".orig".

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�8H���vim80/doc/os_390.txtnu�[���*os_390.txt*    For Vim version 8.0.  Last change: 2016 Feb 27


		  VIM REFERENCE MANUAL	  by Ralf Schandl

					*zOS* *z/OS* *OS390* *os390* *MVS*
This file contains the particulars for the z/OS UNIX version of Vim.

1. ASCII/EBCDIC dependent scripts	|zOS-has-ebcdic|
2. Putty and Colors                     |zOS-PuTTY|
3. Motif Problems			|zOS-Motif|
4. Bugs					|zOS-Bugs|
5. Limitations     			|zOS-limitations|
6. Open source on z/OS UNIX		|zOS-open-source|

Contributors: ~
The port to z/OS UNIX was done by Ralf Schandl for the Redbook mentioned
below.

Changes, bug-reports, or both by:

	David Moore
	Anthony Giorgio
	and others

==============================================================================
1. ASCII/EBCDIC dependent scripts	*OS390-has-ebcdic* *zOS-has-ebcdic*

For the internal script language the feature "ebcdic" was added.  With this
you can fix ASCII dependent scripts like this:
>
    if has("ebcdic")
	let space = 64
    else
	let space = 32
    endif
<

==============================================================================
2. PuTTY and Colors			*OS390-PuTTY* *zOS-PuTTY*

If you see problems with syntax highlighting or screen corruptions when you
connect to z/OS using Putty, try the following:

- Configure Putty as "vt220" terminal (Connection->Data)
- Add the following 3 lines to your vimrc:

>
    set t_AB=[4%p1%dm
    set t_AF=[3%p1%dm
    set t_CO=8
<

Note:  is one character use <C-V><Esc> to enter it.

==============================================================================
3. Motif Problems			*OS390-Motif* *zOS-Motif*

Note: Seen with Vim 6.*, never tested since.

It seems that in porting the Motif library to z/OS, a translation from EBCDIC
to ASCII for the accelerator characters of the pull-down menus was forgotten.
Even after I tried to hand convert the menus, the accelerator keys continued
to only work for the opening of menus (like <Alt-F> to open the file menu).
They still do not work for the menu items themselves (like <Alt-F>O to open
the file browser).

There is no solution for this yet.

==============================================================================
4. Bugs					*OS390-bugs* *zOS-Bugs*

- Vim will consistently hang when a large amount of text is selected in
  visual block mode.  This may be due to a memory corruption issue.  Note that
  this occurs in both the terminal and gui versions.

==============================================================================
5. Limitations     			*OS390-limitations* *zOS-limitations*

- No binary search in tag files.
  The program /bin/sort sorts by ASCII value by default.  This program is
  normally used by ctags to sort the tags.  There might be a version of
  ctags out there, that does it right, but we can't be sure.  So this seems to
  be a permanent restriction.

- The cscope interface (|cscope|) doesn't work for the version of cscope
  that we use on our mainframe.  We have a copy of version 15.0b12, and it
  causes Vim to hang when using the "cscope add" command.  I'm guessing that
  the binary format of the cscope database isn't quite what Vim is expecting.
  I've tried to port the current version of cscope (15.3) to z/OS, without
  much success.  If anyone is interested in trying, drop me a line if you
  make any progress.

- No glib/gtk support.  I have not been able to successfully compile glib on
  z/OS UNIX.  This means you'll have to live without the pretty gtk toolbar.
 
Disabled at compile time:
    - Multibyte support         (|multibyte|)
    - Right-to-left mode        (|rileft|)
    - Farsi key map             (|Farsi|)
    - Arabic language support   (|Arabic|)
    - Spell checking            (|spell|)

Never tested:
    - Perl interface		(|perl|)
    - Hangul input		(|hangul|)
    - Encryption support	(|encryption|)
    - Langmap			(|'langmap'|)
    - Python support		(|Python|)
    - Right-to-left mode	(|'rightleft'|)
    - TCL interface		(|tcl|)
    ...

==============================================================================
6. Open source on z/OS UNIX		*OS390-open-source* *zOS-open-source*

If you are interested in other Open Source Software on z/OS UNIX, have a
look at the following Redbook:

    Mike MacIsaac et al
    "Open Source Software for z/OS and OS/390 UNIX"
    IBM Form Number: SG24-5944-01
    ISBN: 0738424633
    http://www-03.ibm.com/systems/resources/servers_eserver_zseries_zos_unix_redbook_sg245944.pdf

Also look at:
    http://www.redbooks.ibm.com
    http://www-03.ibm.com/systems/z/os/zos/features/unix/
    http://www-03.ibm.com/systems/z/os/zos/features/unix/library/IBM+Redbooks/index.html



------------------------------------------------------------------------------
 vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
PK�j�ZX�p4p4vim80/doc/usr_12.txtnu�[���*usr_12.txt*	For Vim version 8.0.  Last change: 2017 Aug 11

		     VIM USER MANUAL - by Bram Moolenaar

				Clever tricks


By combining several commands you can make Vim do nearly everything.  In this
chapter a number of useful combinations will be presented.  This uses the
commands introduced in the previous chapters and a few more.

|12.1|	Replace a word
|12.2|	Change "Last, First" to "First Last"
|12.3|	Sort a list
|12.4|	Reverse line order
|12.5|	Count words
|12.6|	Find a man page
|12.7|	Trim blanks
|12.8|	Find where a word is used

     Next chapter: |usr_20.txt|  Typing command-line commands quickly
 Previous chapter: |usr_11.txt|  Recovering from a crash
Table of contents: |usr_toc.txt|

==============================================================================
*12.1*	Replace a word

The substitute command can be used to replace all occurrences of a word with
another word: >

	:%s/four/4/g

The "%" range means to replace in all lines.  The "g" flag at the end causes
all words in a line to be replaced.
   This will not do the right thing if your file also contains "thirtyfour".
It would be replaced with "thirty4".  To avoid this, use the "\<" item to
match the start of a word: >

	:%s/\<four/4/g

Obviously, this still goes wrong on "fourteen".  Use "\>" to match the end of
a word: >

	:%s/\<four\>/4/g

If you are programming, you might want to replace "four" in comments, but not
in the code.  Since this is difficult to specify, add the "c" flag to have the
substitute command prompt you for each replacement: >


	:%s/\<four\>/4/gc


REPLACING IN SEVERAL FILES

Suppose you want to replace a word in more than one file.  You could edit each
file and type the command manually.  It's a lot faster to use record and
playback.
   Let's assume you have a directory with C++ files, all ending in ".cpp".
There is a function called "GetResp" that you want to rename to "GetAnswer".

	vim *.cpp		Start Vim, defining the argument list to
				contain all the C++ files.  You are now in the
				first file.
	qq			Start recording into the q register
	:%s/\<GetResp\>/GetAnswer/g
				Do the replacements in the first file.
	:wnext			Write this file and move to the next one.
	q			Stop recording.
	@q			Execute the q register.  This will replay the
				substitution and ":wnext".  You can verify
				that this doesn't produce an error message.
	999@q			Execute the q register on the remaining files.

At the last file you will get an error message, because ":wnext" cannot move
to the next file.  This stops the execution, and everything is done.

	Note:
	When playing back a recorded sequence, an error stops the execution.
	Therefore, make sure you don't get an error message when recording.

There is one catch: If one of the .cpp files does not contain the word
"GetResp", you will get an error and replacing will stop.  To avoid this, add
the "e" flag to the substitute command: >

	:%s/\<GetResp\>/GetAnswer/ge

The "e" flag tells ":substitute" that not finding a match is not an error.

==============================================================================
*12.2*	Change "Last, First" to "First Last"

You have a list of names in this form:

	Doe, John ~
	Smith, Peter ~

You want to change that to:

	John Doe ~
	Peter Smith ~

This can be done with just one command: >

	:%s/\([^,]*\), \(.*\)/\2 \1/

Let's break this down in parts.  Obviously it starts with a substitute
command.  The "%" is the line range, which stands for the whole file.  Thus
the substitution is done in every line in the file.
   The arguments for the substitute command are "/from/to/".  The slashes
separate the "from" pattern and the "to" string.  This is what the "from"
pattern contains:
							\([^,]*\), \(.*\) ~

	The first part between \( \) matches "Last"	\(     \)
	    match anything but a comma			  [^,]
	    any number of times				      *
	matches ", " literally					 ,
	The second part between \( \) matches "First"		   \(  \)
	    any character					     .
	    any number of times					      *

In the "to" part we have "\2" and "\1".  These are called backreferences.
They refer to the text matched by the "\( \)" parts in the pattern.  "\2"
refers to the text matched by the second "\( \)", which is the "First" name.
"\1" refers to the first "\( \)", which is the "Last" name.
   You can use up to nine backreferences in the "to" part of a substitute
command.  "\0" stands for the whole matched pattern.  There are a few more
special items in a substitute command, see |sub-replace-special|.

==============================================================================
*12.3*	Sort a list

In a Makefile you often have a list of files.  For example:

	OBJS = \ ~
		version.o \ ~
		pch.o \ ~
		getopt.o \ ~
		util.o \ ~
		getopt1.o \ ~
		inp.o \ ~
		patch.o \ ~
		backup.o ~

To sort this list, filter the text through the external sort command: >

	/^OBJS
	j
	:.,/^$/-1!sort

This goes to the first line, where "OBJS" is the first thing in the line.
Then it goes one line down and filters the lines until the next empty line.
You could also select the lines in Visual mode and then use "!sort".  That's
easier to type, but more work when there are many lines.
   The result is this:

	OBJS = \ ~
		backup.o ~
		getopt.o \ ~
		getopt1.o \ ~
		inp.o \ ~
		patch.o \ ~
		pch.o \ ~
		util.o \ ~
		version.o \ ~


Notice that a backslash at the end of each line is used to indicate the line
continues.  After sorting, this is wrong!  The "backup.o" line that was at
the end didn't have a backslash.  Now that it sorts to another place, it
must have a backslash.
   The simplest solution is to add the backslash with "A \<Esc>".  You can
keep the backslash in the last line, if you make sure an empty line comes
after it.  That way you don't have this problem again.

==============================================================================
*12.4*	Reverse line order

The |:global| command can be combined with the |:move| command to move all the
lines before the first line, resulting in a reversed file.  The command is: >

	:global/^/m 0

Abbreviated: >

	:g/^/m 0

The "^" regular expression matches the beginning of the line (even if the line
is blank).  The |:move| command moves the matching line to after the mythical
zeroth line, so the current matching line becomes the first line of the file.
As the |:global| command is not confused by the changing line numbering,
|:global| proceeds to match all remaining lines of the file and puts each as
the first.

This also works on a range of lines.  First move to above the first line and
mark it with "mt".  Then move the cursor to the last line in the range and
type: >

	:'t+1,.g/^/m 't

==============================================================================
*12.5*	Count words

Sometimes you have to write a text with a maximum number of words.  Vim can
count the words for you.
   When the whole file is what you want to count the words in, use this
command: >

	g CTRL-G

Do not type a space after the g, this is just used here to make the command
easy to read.
   The output looks like this:

	Col 1 of 0; Line 141 of 157; Word 748 of 774; Byte 4489 of 4976 ~

You can see on which word you are (748), and the total number of words in the
file (774).

When the text is only part of a file, you could move to the start of the text,
type "g CTRL-G", move to the end of the text, type "g CTRL-G" again, and then
use your brain to compute the difference in the word position.  That's a good
exercise, but there is an easier way.  With Visual mode, select the text you
want to count words in.  Then type g CTRL-G.  The result:

	Selected 5 of 293 Lines; 70 of 1884 Words; 359 of 10928 Bytes ~

For other ways to count words, lines and other items, see |count-items|.

==============================================================================
*12.6*	Find a man page					*find-manpage*

While editing a shell script or C program, you are using a command or function
that you want to find the man page for (this is on Unix).  Let's first use a
simple way: Move the cursor to the word you want to find help on and press >

	K

Vim will run the external "man" program on the word.  If the man page is
found, it is displayed.  This uses the normal pager to scroll through the text
(mostly the "more" program).  When you get to the end pressing <Enter> will
get you back into Vim.

A disadvantage is that you can't see the man page and the text you are working
on at the same time.  There is a trick to make the man page appear in a Vim
window.  First, load the man filetype plugin: >

	:runtime! ftplugin/man.vim

Put this command in your vimrc file if you intend to do this often.  Now you
can use the ":Man" command to open a window on a man page: >

	:Man csh

You can scroll around and the text is highlighted.  This allows you to find
the help you were looking for.  Use CTRL-W w to jump to the window with the
text you were working on.
   To find a man page in a specific section, put the section number first.
For example, to look in section 3 for "echo": >

	:Man 3 echo

To jump to another man page, which is in the text with the typical form
"word(1)", press CTRL-] on it.  Further ":Man" commands will use the same
window.

To display a man page for the word under the cursor, use this: >

	\K

(If you redefined the <Leader>, use it instead of the backslash).
For example, you want to know the return value of "strstr()" while editing
this line:

	if ( strstr (input, "aap") == ) ~

Move the cursor to somewhere on "strstr" and type "\K".  A window will open
to display the man page for strstr().

==============================================================================
*12.7*	Trim blanks

Some people find spaces and tabs at the end of a line useless, wasteful, and
ugly.  To remove whitespace at the end of every line, execute the following
command: >

	:%s/\s\+$//

The line range "%" is used, thus this works on the whole file.  The pattern
that the ":substitute" command matches with is "\s\+$".  This finds white
space characters (\s), 1 or more of them (\+), before the end-of-line ($).
Later will be explained how you write patterns like this, see |usr_27.txt|.
   The "to" part of the substitute command is empty: "//".  Thus it replaces
with nothing, effectively deleting the matched white space.

Another wasteful use of spaces is placing them before a tab.  Often these can
be deleted without changing the amount of white space.  But not always!
Therefore, you can best do this manually.  Use this search command: >

	/ 	

You cannot see it, but there is a space before a tab in this command.  Thus
it's "/<Space><Tab>".   Now use "x" to delete the space and check that the
amount of white space doesn't change.  You might have to insert a tab if it
does change.  Type "n" to find the next match.  Repeat this until no more
matches can be found.

==============================================================================
*12.8*	Find where a word is used

If you are a UNIX user, you can use a combination of Vim and the grep command
to edit all the files that contain a given word.  This is extremely useful if
you are working on a program and want to view or edit all the files that
contain a specific variable.
   For example, suppose you want to edit all the C program files that contain
the word "frame_counter".  To do this you use the command: >

	vim `grep -l frame_counter *.c`

Let's look at this command in detail.  The grep command searches through a set
of files for a given word.  Because the -l argument is specified, the command
will only list the files containing the word and not print the matching lines.
The word it is searching for is "frame_counter".  Actually, this can be any
regular expression.  (Note: What grep uses for regular expressions is not
exactly the same as what Vim uses.)
   The entire command is enclosed in backticks (`).  This tells the UNIX shell
to run this command and pretend that the results were typed on the command
line.  So what happens is that the grep command is run and produces a list of
files, these files are put on the Vim command line.  This results in Vim
editing the file list that is the output of grep.  You can then use commands
like ":next" and ":first" to browse through the files.


FINDING EACH LINE

The above command only finds the files in which the word is found.  You still
have to find the word within the files.
   Vim has a built-in command that you can use to search a set of files for a
given string.  If you want to find all occurrences of "error_string" in all C
program files, for example, enter the following command: >

	:grep error_string *.c

This causes Vim to search for the string "error_string" in all the specified
files (*.c).  The editor will now open the first file where a match is found
and position the cursor on the first matching line.  To go to the next
matching line (no matter in what file it is), use the ":cnext" command.  To go
to the previous match, use the ":cprev" command.  Use ":clist" to see all the
matches and where they are.
   The ":grep" command uses the external commands grep (on Unix) or findstr
(on Windows).  You can change this by setting the option 'grepprg'.

==============================================================================

Next chapter: |usr_20.txt|  Typing command-line commands quickly

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�?CQQvim80/doc/syntax.txtnu�[���*syntax.txt*	For Vim version 8.0.  Last change: 2018 Jan 31


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


Syntax highlighting		*syntax* *syntax-highlighting* *coloring*

Syntax highlighting enables Vim to show parts of the text in another font or
color.	Those parts can be specific keywords or text matching a pattern.  Vim
doesn't parse the whole file (to keep it fast), so the highlighting has its
limitations.  Lexical highlighting might be a better name, but since everybody
calls it syntax highlighting we'll stick with that.

Vim supports syntax highlighting on all terminals.  But since most ordinary
terminals have very limited highlighting possibilities, it works best in the
GUI version, gvim.

In the User Manual:
|usr_06.txt| introduces syntax highlighting.
|usr_44.txt| introduces writing a syntax file.

1.  Quick start			|:syn-qstart|
2.  Syntax files		|:syn-files|
3.  Syntax loading procedure	|syntax-loading|
4.  Syntax file remarks		|:syn-file-remarks|
5.  Defining a syntax		|:syn-define|
6.  :syntax arguments		|:syn-arguments|
7.  Syntax patterns		|:syn-pattern|
8.  Syntax clusters		|:syn-cluster|
9.  Including syntax files	|:syn-include|
10. Synchronizing		|:syn-sync|
11. Listing syntax items	|:syntax|
12. Highlight command		|:highlight|
13. Linking groups		|:highlight-link|
14. Cleaning up			|:syn-clear|
15. Highlighting tags		|tag-highlight|
16. Window-local syntax		|:ownsyntax|
17. Color xterms		|xterm-color|
18. When syntax is slow		|:syntime|

{Vi does not have any of these commands}

Syntax highlighting is not available when the |+syntax| feature has been
disabled at compile time.

==============================================================================
1. Quick start						*:syn-qstart*

						*:syn-enable* *:syntax-enable*
This command switches on syntax highlighting: >

	:syntax enable

What this command actually does is to execute the command >
	:source $VIMRUNTIME/syntax/syntax.vim

If the VIM environment variable is not set, Vim will try to find
the path in another way (see |$VIMRUNTIME|).  Usually this works just
fine.  If it doesn't, try setting the VIM environment variable to the
directory where the Vim stuff is located.  For example, if your syntax files
are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
"/usr/vim/vim50".  You must do this in the shell, before starting Vim.
This command also sources the |menu.vim| script when the GUI is running or
will start soon.  See |'go-M'| about avoiding that.

							*:syn-on* *:syntax-on*
The `:syntax enable` command will keep your current color settings.  This
allows using `:highlight` commands to set your preferred colors before or
after using this command.  If you want Vim to overrule your settings with the
defaults, use: >
	:syntax on
<
					*:hi-normal* *:highlight-normal*
If you are running in the GUI, you can get white text on a black background
with: >
	:highlight Normal guibg=Black guifg=White
For a color terminal see |:hi-normal-cterm|.
For setting up your own colors syntax highlighting see |syncolor|.

NOTE: The syntax files on MS-DOS and Windows have lines that end in <CR><NL>.
The files for Unix end in <NL>.  This means you should use the right type of
file for your system.  Although on MS-DOS and Windows the right format is
automatically selected if the 'fileformats' option is not empty.

NOTE: When using reverse video ("gvim -fg white -bg black"), the default value
of 'background' will not be set until the GUI window is opened, which is after
reading the |gvimrc|.  This will cause the wrong default highlighting to be
used.  To set the default value of 'background' before switching on
highlighting, include the ":gui" command in the |gvimrc|: >

   :gui		" open window and set default for 'background'
   :syntax on	" start highlighting, use 'background' to set colors

NOTE: Using ":gui" in the |gvimrc| means that "gvim -f" won't start in the
foreground!  Use ":gui -f" then.

							*g:syntax_on*
You can toggle the syntax on/off with this command: >
   :if exists("g:syntax_on") | syntax off | else | syntax enable | endif

To put this into a mapping, you can use: >
   :map <F7> :if exists("g:syntax_on") <Bar>
	\   syntax off <Bar>
	\ else <Bar>
	\   syntax enable <Bar>
	\ endif <CR>
[using the |<>| notation, type this literally]

Details:
The ":syntax" commands are implemented by sourcing a file.  To see exactly how
this works, look in the file:
    command		file ~
    :syntax enable	$VIMRUNTIME/syntax/syntax.vim
    :syntax on		$VIMRUNTIME/syntax/syntax.vim
    :syntax manual	$VIMRUNTIME/syntax/manual.vim
    :syntax off		$VIMRUNTIME/syntax/nosyntax.vim
Also see |syntax-loading|.

NOTE: If displaying long lines is slow and switching off syntax highlighting
makes it fast, consider setting the 'synmaxcol' option to a lower value.

==============================================================================
2. Syntax files						*:syn-files*

The syntax and highlighting commands for one language are normally stored in
a syntax file.	The name convention is: "{name}.vim".  Where {name} is the
name of the language, or an abbreviation (to fit the name in 8.3 characters,
a requirement in case the file is used on a DOS filesystem).
Examples:
	c.vim		perl.vim	java.vim	html.vim
	cpp.vim		sh.vim		csh.vim

The syntax file can contain any Ex commands, just like a vimrc file.  But
the idea is that only commands for a specific language are included.  When a
language is a superset of another language, it may include the other one,
for example, the cpp.vim file could include the c.vim file: >
   :so $VIMRUNTIME/syntax/c.vim

The .vim files are normally loaded with an autocommand.  For example: >
   :au Syntax c	    runtime! syntax/c.vim
   :au Syntax cpp   runtime! syntax/cpp.vim
These commands are normally in the file $VIMRUNTIME/syntax/synload.vim.


MAKING YOUR OWN SYNTAX FILES				*mysyntaxfile*

When you create your own syntax files, and you want to have Vim use these
automatically with ":syntax enable", do this:

1. Create your user runtime directory.	You would normally use the first item
   of the 'runtimepath' option.  Example for Unix: >
	mkdir ~/.vim

2. Create a directory in there called "syntax".  For Unix: >
	mkdir ~/.vim/syntax

3. Write the Vim syntax file.  Or download one from the internet.  Then write
   it in your syntax directory.  For example, for the "mine" syntax: >
	:w ~/.vim/syntax/mine.vim

Now you can start using your syntax file manually: >
	:set syntax=mine
You don't have to exit Vim to use this.

If you also want Vim to detect the type of file, see |new-filetype|.

If you are setting up a system with many users and you don't want each user
to add the same syntax file, you can use another directory from 'runtimepath'.


ADDING TO AN EXISTING SYNTAX FILE		*mysyntaxfile-add*

If you are mostly satisfied with an existing syntax file, but would like to
add a few items or change the highlighting, follow these steps:

1. Create your user directory from 'runtimepath', see above.

2. Create a directory in there called "after/syntax".  For Unix: >
	mkdir ~/.vim/after
	mkdir ~/.vim/after/syntax

3. Write a Vim script that contains the commands you want to use.  For
   example, to change the colors for the C syntax: >
	highlight cComment ctermfg=Green guifg=Green

4. Write that file in the "after/syntax" directory.  Use the name of the
   syntax, with ".vim" added.  For our C syntax: >
	:w ~/.vim/after/syntax/c.vim

That's it.  The next time you edit a C file the Comment color will be
different.  You don't even have to restart Vim.

If you have multiple files, you can use the filetype as the directory name.
All the "*.vim" files in this directory will be used, for example:
	~/.vim/after/syntax/c/one.vim
	~/.vim/after/syntax/c/two.vim


REPLACING AN EXISTING SYNTAX FILE			*mysyntaxfile-replace*

If you don't like a distributed syntax file, or you have downloaded a new
version, follow the same steps as for |mysyntaxfile| above.  Just make sure
that you write the syntax file in a directory that is early in 'runtimepath'.
Vim will only load the first syntax file found, assuming that it sets
b:current_syntax.


NAMING CONVENTIONS		    *group-name* *{group-name}* *E669* *W18*

A syntax group name is to be used for syntax items that match the same kind of
thing.  These are then linked to a highlight group that specifies the color.
A syntax group name doesn't specify any color or attributes itself.

The name for a highlight or syntax group must consist of ASCII letters, digits
and the underscore.  As a regexp: "[a-zA-Z0-9_]*".  However, Vim does not give
an error when using other characters.

To be able to allow each user to pick his favorite set of colors, there must
be preferred names for highlight groups that are common for many languages.
These are the suggested group names (if syntax highlighting works properly
you can see the actual color, except for "Ignore"):

	*Comment	any comment

	*Constant	any constant
	 String		a string constant: "this is a string"
	 Character	a character constant: 'c', '\n'
	 Number		a number constant: 234, 0xff
	 Boolean	a boolean constant: TRUE, false
	 Float		a floating point constant: 2.3e10

	*Identifier	any variable name
	 Function	function name (also: methods for classes)

	*Statement	any statement
	 Conditional	if, then, else, endif, switch, etc.
	 Repeat		for, do, while, etc.
	 Label		case, default, etc.
	 Operator	"sizeof", "+", "*", etc.
	 Keyword	any other keyword
	 Exception	try, catch, throw

	*PreProc	generic Preprocessor
	 Include	preprocessor #include
	 Define		preprocessor #define
	 Macro		same as Define
	 PreCondit	preprocessor #if, #else, #endif, etc.

	*Type		int, long, char, etc.
	 StorageClass	static, register, volatile, etc.
	 Structure	struct, union, enum, etc.
	 Typedef	A typedef

	*Special	any special symbol
	 SpecialChar	special character in a constant
	 Tag		you can use CTRL-] on this
	 Delimiter	character that needs attention
	 SpecialComment	special things inside a comment
	 Debug		debugging statements

	*Underlined	text that stands out, HTML links

	*Ignore		left blank, hidden  |hl-Ignore|

	*Error		any erroneous construct

	*Todo		anything that needs extra attention; mostly the
			keywords TODO FIXME and XXX

The names marked with * are the preferred groups; the others are minor groups.
For the preferred groups, the "syntax.vim" file contains default highlighting.
The minor groups are linked to the preferred groups, so they get the same
highlighting.  You can override these defaults by using ":highlight" commands
after sourcing the "syntax.vim" file.

Note that highlight group names are not case sensitive.  "String" and "string"
can be used for the same group.

The following names are reserved and cannot be used as a group name:
	NONE   ALL   ALLBUT   contains	 contained

							*hl-Ignore*
When using the Ignore group, you may also consider using the conceal
mechanism.  See |conceal|.

==============================================================================
3. Syntax loading procedure				*syntax-loading*

This explains the details that happen when the command ":syntax enable" is
issued.  When Vim initializes itself, it finds out where the runtime files are
located.  This is used here as the variable |$VIMRUNTIME|.

":syntax enable" and ":syntax on" do the following:

    Source $VIMRUNTIME/syntax/syntax.vim
    |
    +-	Clear out any old syntax by sourcing $VIMRUNTIME/syntax/nosyntax.vim
    |
    +-	Source first syntax/synload.vim in 'runtimepath'
    |	|
    |	+-  Setup the colors for syntax highlighting.  If a color scheme is
    |	|   defined it is loaded again with ":colors {name}".  Otherwise
    |	|   ":runtime! syntax/syncolor.vim" is used.  ":syntax on" overrules
    |	|   existing colors, ":syntax enable" only sets groups that weren't
    |	|   set yet.
    |	|
    |	+-  Set up syntax autocmds to load the appropriate syntax file when
    |	|   the 'syntax' option is set. *synload-1*
    |	|
    |	+-  Source the user's optional file, from the |mysyntaxfile| variable.
    |	    This is for backwards compatibility with Vim 5.x only. *synload-2*
    |
    +-	Do ":filetype on", which does ":runtime! filetype.vim".  It loads any
    |	filetype.vim files found.  It should always Source
    |	$VIMRUNTIME/filetype.vim, which does the following.
    |	|
    |	+-  Install autocmds based on suffix to set the 'filetype' option
    |	|   This is where the connection between file name and file type is
    |	|   made for known file types. *synload-3*
    |	|
    |	+-  Source the user's optional file, from the *myfiletypefile*
    |	|   variable.  This is for backwards compatibility with Vim 5.x only.
    |	|   *synload-4*
    |	|
    |	+-  Install one autocommand which sources scripts.vim when no file
    |	|   type was detected yet. *synload-5*
    |	|
    |	+-  Source $VIMRUNTIME/menu.vim, to setup the Syntax menu. |menu.vim|
    |
    +-	Install a FileType autocommand to set the 'syntax' option when a file
    |	type has been detected. *synload-6*
    |
    +-	Execute syntax autocommands to start syntax highlighting for each
	already loaded buffer.


Upon loading a file, Vim finds the relevant syntax file as follows:

    Loading the file triggers the BufReadPost autocommands.
    |
    +-	If there is a match with one of the autocommands from |synload-3|
    |	(known file types) or |synload-4| (user's file types), the 'filetype'
    |	option is set to the file type.
    |
    +-	The autocommand at |synload-5| is triggered.  If the file type was not
    |	found yet, then scripts.vim is searched for in 'runtimepath'.  This
    |	should always load $VIMRUNTIME/scripts.vim, which does the following.
    |	|
    |	+-  Source the user's optional file, from the *myscriptsfile*
    |	|   variable.  This is for backwards compatibility with Vim 5.x only.
    |	|
    |	+-  If the file type is still unknown, check the contents of the file,
    |	    again with checks like "getline(1) =~ pattern" as to whether the
    |	    file type can be recognized, and set 'filetype'.
    |
    +-	When the file type was determined and 'filetype' was set, this
    |	triggers the FileType autocommand |synload-6| above.  It sets
    |	'syntax' to the determined file type.
    |
    +-	When the 'syntax' option was set above, this triggers an autocommand
    |	from |synload-1| (and |synload-2|).  This find the main syntax file in
    |	'runtimepath', with this command:
    |		runtime! syntax/<name>.vim
    |
    +-	Any other user installed FileType or Syntax autocommands are
	triggered.  This can be used to change the highlighting for a specific
	syntax.

==============================================================================
4. Syntax file remarks					*:syn-file-remarks*

						*b:current_syntax-variable*
Vim stores the name of the syntax that has been loaded in the
"b:current_syntax" variable.  You can use this if you want to load other
settings, depending on which syntax is active.	Example: >
   :au BufReadPost * if b:current_syntax == "csh"
   :au BufReadPost *   do-some-things
   :au BufReadPost * endif


2HTML						*2html.vim* *convert-to-HTML*

This is not a syntax file itself, but a script that converts the current
window into HTML. Vim opens a new window in which it builds the HTML file.

After you save the resulting file, you can view it with any browser. The
colors should be exactly the same as you see them in Vim.  With
|g:html_line_ids| you can jump to specific lines by adding (for example) #L123
or #123 to the end of the URL in your browser's address bar. And with
|g:html_dynamic_folds| enabled, you can show or hide the text that is folded
in Vim.

You are not supposed to set the 'filetype' or 'syntax' option to "2html"!
Source the script to convert the current file: >

	:runtime! syntax/2html.vim
<
Many variables affect the output of 2html.vim; see below. Any of the on/off
options listed below can be enabled or disabled by setting them explicitly to
the desired value, or restored to their default by removing the variable using
|:unlet|.

Remarks:
- Some truly ancient browsers may not show the background colors.
- From most browsers you can also print the file (in color)!
- The latest TOhtml may actually work with older versions of Vim, but some
  features such as conceal support will not function, and the colors may be
  incorrect for an old Vim without GUI support compiled in.

Here is an example how to run the script over all .c and .h files from a
Unix shell: >
   for f in *.[ch]; do gvim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" $f; done
<
					*g:html_start_line* *g:html_end_line*
To restrict the conversion to a range of lines, use a range with the |:TOhtml|
command below, or set "g:html_start_line" and "g:html_end_line" to the first
and last line to be converted.  Example, using the last set Visual area: >

	:let g:html_start_line = line("'<")
	:let g:html_end_line = line("'>")
	:runtime! syntax/2html.vim
<
							*:TOhtml*
:[range]TOhtml		The ":TOhtml" command is defined in a standard plugin.
			This command will source |2html.vim| for you. When a
			range is given, this command sets |g:html_start_line|
			and |g:html_end_line| to the start and end of the
			range, respectively. Default range is the entire
			buffer.

			If the current window is part of a |diff|, unless
			|g:html_diff_one_file| is set, :TOhtml will convert
			all windows which are part of the diff in the current
			tab and place them side-by-side in a <table> element
			in the generated HTML. With |g:html_line_ids| you can
			jump to lines in specific windows with (for example)
			#W1L42 for line 42 in the first diffed window, or
			#W3L87 for line 87 in the third.

			Examples: >

	:10,40TOhtml " convert lines 10-40 to html
	:'<,'>TOhtml " convert current/last visual selection
	:TOhtml      " convert entire buffer
<
							*g:html_diff_one_file*
Default: 0.
When 0, and using |:TOhtml| all windows involved in a |diff| in the current tab
page are converted to HTML and placed side-by-side in a <table> element. When
1, only the current buffer is converted.
Example: >

	let g:html_diff_one_file = 1
<
							 *g:html_whole_filler*
Default: 0.
When 0, if |g:html_diff_one_file| is 1, a sequence of more than 3 filler lines
is displayed as three lines with the middle line mentioning the total number
of inserted lines.
When 1, always display all inserted lines as if |g:html_diff_one_file| were
not set.
>
    :let g:html_whole_filler = 1
<
				     *TOhtml-performance* *g:html_no_progress*
Default: 0.
When 0, display a progress bar in the statusline for each major step in the
2html.vim conversion process.
When 1, do not display the progress bar. This offers a minor speed improvement
but you won't have any idea how much longer the conversion might take; for big
files it can take a long time!
Example: >

	let g:html_no_progress = 1
<
You can obtain better performance improvements by also instructing Vim to not
run interactively, so that too much time is not taken to redraw as the script
moves through the buffer, switches windows, and the like: >

  vim -E -s -c "let g:html_no_progress=1" -c "syntax on" -c "set ft=c" -c "runtime syntax/2html.vim" -cwqa myfile.c
<
Note that the -s flag prevents loading your .vimrc and any plugins, so you
need to explicitly source/enable anything that will affect the HTML
conversion. See |-E| and |-s-ex| for details. It is probably best to create a
script to replace all the -c commands and use it with the -u flag instead of
specifying each command separately.

							 *g:html_number_lines*
Default: current 'number' setting.
When 0, buffer text is displayed in the generated HTML without line numbering.
When 1, a column of line numbers is added to the generated HTML with the same
highlighting as the line number column in Vim (|hl-LineNr|).
Force line numbers even if 'number' is not set: >
   :let g:html_number_lines = 1
Force to omit the line numbers: >
   :let g:html_number_lines = 0
Go back to the default to use 'number' by deleting the variable: >
   :unlet g:html_number_lines
<
                                                             *g:html_line_ids*
Default: 1 if |g:html_number_lines| is set, 0 otherwise.
When 1, adds an HTML id attribute to each line number, or to an empty <span>
inserted for that purpose if no line numbers are shown. This ID attribute
takes the form of L123 for single-buffer HTML pages, or W2L123 for diff-view
pages, and is used to jump to a specific line (in a specific window of a diff
view). Javascript is inserted to open any closed dynamic folds
(|g:html_dynamic_folds|) containing the specified line before jumping. The
javascript also allows omitting the window ID in the url, and the leading L.
For example: >

	page.html#L123	jumps to line 123 in a single-buffer file
	page.html#123	does the same

	diff.html#W1L42	jumps to line 42 in the first window in a diff
	diff.html#42	does the same
<
							      *g:html_use_css*
Default: 1.
When 1, generate valid HTML 4.01 markup with CSS1 styling, supported in all
modern browsers and most old browsers.
When 0, generate <font> tags and similar outdated markup. This is not
recommended but it may work better in really old browsers, email clients,
forum posts, and similar situations where basic CSS support is unavailable.
Example: >
   :let g:html_use_css = 0
<
						       *g:html_ignore_conceal*
Default: 0.
When 0, concealed text is removed from the HTML and replaced with a character
from |:syn-cchar| or 'listchars' as appropriate, depending on the current
value of 'conceallevel'.
When 1, include all text from the buffer in the generated HTML, even if it is
|conceal|ed.

Either of the following commands will ensure that all text in the buffer is
included in the generated HTML (unless it is folded): >
   :let g:html_ignore_conceal = 1
   :setl conceallevel=0
<
						       *g:html_ignore_folding*
Default: 0.
When 0, text in a closed fold is replaced by the text shown for the fold in
Vim (|fold-foldtext|). See |g:html_dynamic_folds| if you also want to allow
the user to expand the fold as in Vim to see the text inside.
When 1, include all text from the buffer in the generated HTML; whether the
text is in a fold has no impact at all. |g:html_dynamic_folds| has no effect.

Either of these commands will ensure that all text in the buffer is included
in the generated HTML (unless it is concealed): >
   zR
   :let g:html_ignore_folding = 1
<
							*g:html_dynamic_folds*
Default: 0.
When 0, text in a closed fold is not included at all in the generated HTML.
When 1, generate javascript to open a fold and show the text within, just like
in Vim.

Setting this variable to 1 causes 2html.vim to always use CSS for styling,
regardless of what |g:html_use_css| is set to.

This variable is ignored when |g:html_ignore_folding| is set.
>
   :let g:html_dynamic_folds = 1
<
							*g:html_no_foldcolumn*
Default: 0.
When 0, if |g:html_dynamic_folds| is 1, generate a column of text similar to
Vim's foldcolumn (|fold-foldcolumn|) the user can click on to toggle folds
open or closed. The minimum width of the generated text column is the current
'foldcolumn' setting.
When 1, do not generate this column; instead, hovering the mouse cursor over
folded text will open the fold as if |g:html_hover_unfold| were set.
>
   :let g:html_no_foldcolumn = 1
<
				*TOhtml-uncopyable-text* *g:html_prevent_copy*
Default: empty string.
This option prevents certain regions of the generated HTML from being copied,
when you select all text in document rendered in a browser and copy it. Useful
for allowing users to copy-paste only the source text even if a fold column or
line numbers are shown in the generated content. Specify regions to be
affected in this way as follows:
	f:	fold column
	n:	line numbers (also within fold text)
	t:	fold text
	d:	diff filler

Example, to make the fold column and line numbers uncopyable: >
	:let g:html_prevent_copy = "fn"
<
This feature is currently implemented by inserting read-only <input> elements
into the markup to contain the uncopyable areas. This does not work well in
all cases. When pasting to some applications which understand HTML, the
<input> elements also get pasted. But plain-text paste destinations should
always work.

							   *g:html_no_invalid*
Default: 0.
When 0, if |g:html_prevent_copy| is non-empty, an invalid attribute is
intentionally inserted into the <input> element for the uncopyable areas. This
increases the number of applications you can paste to without also pasting the
<input> elements. Specifically, Microsoft Word will not paste the <input>
elements if they contain this invalid attribute.
When 1, no invalid markup is ever intentionally inserted, and the generated
page should validate. However, be careful pasting into Microsoft Word when
|g:html_prevent_copy| is non-empty; it can be hard to get rid of the <input>
elements which get pasted.

							 *g:html_hover_unfold*
Default: 0.
When 0, the only way to open a fold generated by 2html.vim with
|g:html_dynamic_folds| set, is to click on the generated fold column.
When 1, use CSS 2.0 to allow the user to open a fold by moving the mouse
cursor over the displayed fold text. This is useful to allow users with
disabled javascript to view the folded text.

Note that old browsers (notably Internet Explorer 6) will not support this
feature.  Browser-specific markup for IE6 is included to fall back to the
normal CSS1 styling so that the folds show up correctly for this browser, but
they will not be openable without a foldcolumn.
>
   :let g:html_hover_unfold = 1
<
							      *g:html_id_expr*
Default: ""
Dynamic folding and jumping to line IDs rely on unique IDs within the document
to work. If generated HTML is copied into a larger document, these IDs are no
longer guaranteed to be unique. Set g:html_id_expr to an expression Vim can
evaluate to get a unique string to append to each ID used in a given document,
so that the full IDs will be unique even when combined with other content in a
larger HTML document. Example, to append _ and the buffer number to each ID: >

	:let g:html_id_expr = '"_".bufnr("%")'
<
To append a string "_mystring" to the end of each ID: >

	:let g:html_id_expr = '"_mystring"'
<
Note, when converting a diff view to HTML, the expression will only be
evaluated for the first window in the diff, and the result used for all the
windows.

					  *TOhtml-wrap-text* *g:html_pre_wrap*
Default: current 'wrap' setting.
When 0, if |g:html_no_pre| is 0 or unset, the text in the generated HTML does
not wrap at the edge of the browser window.
When 1, if |g:html_use_css| is 1, the CSS 2.0 "white-space:pre-wrap" value is
used, causing the text to wrap at whitespace at the edge of the browser
window.
Explicitly enable text wrapping: >
   :let g:html_pre_wrap = 1
Explicitly disable wrapping: >
   :let g:html_pre_wrap = 0
Go back to default, determine wrapping from 'wrap' setting: >
   :unlet g:html_pre_wrap
<
							       *g:html_no_pre*
Default: 0.
When 0, buffer text in the generated HTML is surrounded by <pre>...</pre>
tags. Series of whitespace is shown as in Vim without special markup, and tab
characters can be included literally (see |g:html_expand_tabs|).
When 1 (not recommended), the <pre> tags are omitted, and a plain <div> is
used instead. Whitespace is replaced by a series of &nbsp; character
references, and <br> is used to end each line. This is another way to allow
text in the generated HTML is wrap (see |g:html_pre_wrap|) which also works in
old browsers, but may cause noticeable differences between Vim's display and
the rendered page generated by 2html.vim.
>
   :let g:html_no_pre = 1
<
							  *g:html_expand_tabs*
Default: 1 if 'tabstop' is 8, 'expandtab' is 0, and no fold column or line
		numbers occur in the generated HTML;
	 0 otherwise.
When 0, <Tab> characters in the buffer text are replaced with an appropriate
number of space characters, or &nbsp; references if |g:html_no_pre| is 1.
When 1, if |g:html_no_pre| is 0 or unset, <Tab> characters in the buffer text
are included as-is in the generated HTML. This is useful for when you want to
allow copy and paste from a browser without losing the actual whitespace in
the source document. Note that this can easily break text alignment and
indentation in the HTML, unless set by default.

Force |2html.vim| to keep <Tab> characters: >
   :let g:html_expand_tabs = 0
<
Force tabs to be expanded: >
   :let g:html_expand_tabs = 1
<
				    *TOhtml-encoding-detect* *TOhtml-encoding*
It is highly recommended to set your desired encoding with
|g:html_use_encoding| for any content which will be placed on a web server.

If you do not specify an encoding, |2html.vim| uses the preferred IANA name
for the current value of 'fileencoding' if set, or 'encoding' if not.
'encoding' is always used for certain 'buftype' values. 'fileencoding' will be
set to match the chosen document encoding.

Automatic detection works for the encodings mentioned specifically by name in
|encoding-names|, but TOhtml will only automatically use those encodings with
wide browser support. However, you can override this to support specific
encodings that may not be automatically detected by default (see options
below). See http://www.iana.org/assignments/character-sets for the IANA names.

Note, by default all Unicode encodings are converted to UTF-8 with no BOM in
the generated HTML, as recommended by W3C:

	http://www.w3.org/International/questions/qa-choosing-encodings
	http://www.w3.org/International/questions/qa-byte-order-mark

							 *g:html_use_encoding*
Default: none, uses IANA name for current 'fileencoding' as above.
To overrule all automatic charset detection, set g:html_use_encoding to the
name of the charset to be used. It is recommended to set this variable to
something widely supported, like UTF-8, for anything you will be hosting on a
webserver: >
   :let g:html_use_encoding = "UTF-8"
You can also use this option to omit the line that specifies the charset
entirely, by setting g:html_use_encoding to an empty string (NOT recommended): >
   :let g:html_use_encoding = ""
To go back to the automatic mechanism, delete the |g:html_use_encoding|
variable: >
   :unlet g:html_use_encoding
<
						    *g:html_encoding_override*
Default: none, autoload/tohtml.vim contains default conversions for encodings
		mentioned by name at |encoding-names|.
This option allows |2html.vim| to detect the correct 'fileencoding' when you
specify an encoding with |g:html_use_encoding| which is not in the default
list of conversions.

This is a dictionary of charset-encoding pairs that will replace existing
pairs automatically detected by TOhtml, or supplement with new pairs.

Detect the HTML charset "windows-1252" as the encoding "8bit-cp1252": >
   :let g:html_encoding_override = {'windows-1252': '8bit-cp1252'}
<
						     *g:html_charset_override*
Default: none, autoload/tohtml.vim contains default conversions for encodings
		mentioned by name at |encoding-names| and which have wide
		browser support.
This option allows |2html.vim| to detect the HTML charset for any
'fileencoding' or 'encoding' which is not detected automatically. You can also
use it to override specific existing encoding-charset pairs. For example,
TOhtml will by default use UTF-8 for all Unicode/UCS encodings. To use UTF-16
and UTF-32 instead, use: >
   :let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}

Note that documents encoded in either UTF-32 or UTF-16 have known
compatibility problems with some major browsers.

								 *g:html_font*
Default: "monospace"
You can specify the font or fonts used in the converted document using
g:html_font. If this option is set to a string, then the value will be
surrounded with single quotes. If this option is set to a list then each list
item is surrounded by single quotes and the list is joined with commas. Either
way, "monospace" is added as the fallback generic family name and the entire
result used as the font family (using CSS) or font face (if not using CSS).
Examples: >

   " font-family: 'Consolas', monospace;
   :let g:html_font = "Consolas"

   " font-family: 'DejaVu Sans Mono', 'Consolas', monospace;
   :let g:html_font = ["DejaVu Sans Mono", "Consolas"]
<
			*convert-to-XML* *convert-to-XHTML* *g:html_use_xhtml*
Default: 0.
When 0, generate standard HTML 4.01 (strict when possible).
When 1, generate XHTML 1.0 instead (XML compliant HTML).
>
    :let g:html_use_xhtml = 1
<

ABEL						*abel.vim* *ft-abel-syntax*

ABEL highlighting provides some user-defined options.  To enable them, assign
any value to the respective variable.  Example: >
	:let abel_obsolete_ok=1
To disable them use ":unlet".  Example: >
	:unlet abel_obsolete_ok

Variable			Highlight ~
abel_obsolete_ok		obsolete keywords are statements, not errors
abel_cpp_comments_illegal	do not interpret '//' as inline comment leader


ADA

See |ft-ada-syntax|


ANT						*ant.vim* *ft-ant-syntax*

The ant syntax file provides syntax highlighting for javascript and python
by default.  Syntax highlighting for other script languages can be installed
by the function AntSyntaxScript(), which takes the tag name as first argument
and the script syntax file name as second argument.  Example: >

	:call AntSyntaxScript('perl', 'perl.vim')

will install syntax perl highlighting for the following ant code >

	<script language = 'perl'><![CDATA[
	    # everything inside is highlighted as perl
	]]></script>

See |mysyntaxfile-add| for installing script languages permanently.


APACHE						*apache.vim* *ft-apache-syntax*

The apache syntax file provides syntax highlighting for Apache HTTP server
version 2.2.3.


		*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
ASSEMBLY	*ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
		*ft-masm-syntax* *ft-asm68k-syntax* *fasm.vim*

Files matching "*.i" could be Progress or Assembly.  If the automatic detection
doesn't work for you, or you don't edit Progress at all, use this in your
startup vimrc: >
   :let filetype_i = "asm"
Replace "asm" with the type of assembly you use.

There are many types of assembly languages that all use the same file name
extensions.  Therefore you will have to select the type yourself, or add a
line in the assembly file that Vim will recognize.  Currently these syntax
files are included:
	asm		GNU assembly (the default)
	asm68k		Motorola 680x0 assembly
	asmh8300	Hitachi H-8300 version of GNU assembly
	ia64		Intel Itanium 64
	fasm		Flat assembly (http://flatassembler.net)
	masm		Microsoft assembly (probably works for any 80x86)
	nasm		Netwide assembly
	tasm		Turbo Assembly (with opcodes 80x86 up to Pentium, and
			MMX)
	pic		PIC assembly (currently for PIC16F84)

The most flexible is to add a line in your assembly file containing: >
	asmsyntax=nasm
Replace "nasm" with the name of the real assembly syntax.  This line must be
one of the first five lines in the file.  No non-white text must be
immediately before or after this text.  Note that specifying asmsyntax=foo is
equivalent to setting ft=foo in a |modeline|, and that in case of a conflict
between the two settings the one from the modeline will take precedence (in
particular, if you have ft=asm in the modeline, you will get the GNU syntax
highlighting regardless of what is specified as asmsyntax).

The syntax type can always be overruled for a specific buffer by setting the
b:asmsyntax variable: >
	:let b:asmsyntax = "nasm"

If b:asmsyntax is not set, either automatically or by hand, then the value of
the global variable asmsyntax is used.	This can be seen as a default assembly
language: >
	:let asmsyntax = "nasm"

As a last resort, if nothing is defined, the "asm" syntax is used.


Netwide assembler (nasm.vim) optional highlighting ~

To enable a feature: >
	:let   {variable}=1|set syntax=nasm
To disable a feature: >
	:unlet {variable}  |set syntax=nasm

Variable		Highlight ~
nasm_loose_syntax	unofficial parser allowed syntax not as Error
			  (parser dependent; not recommended)
nasm_ctx_outside_macro	contexts outside macro not as Error
nasm_no_warn		potentially risky syntax not as ToDo


ASPPERL and ASPVBS			*ft-aspperl-syntax* *ft-aspvbs-syntax*

*.asp and *.asa files could be either Perl or Visual Basic script.  Since it's
hard to detect this you can set two global variables to tell Vim what you are
using.	For Perl script use: >
	:let g:filetype_asa = "aspperl"
	:let g:filetype_asp = "aspperl"
For Visual Basic use: >
	:let g:filetype_asa = "aspvbs"
	:let g:filetype_asp = "aspvbs"


BAAN						    *baan.vim* *baan-syntax*

The baan.vim gives syntax support for BaanC of release BaanIV upto SSA ERP LN
for both 3 GL and 4 GL programming. Large number of standard defines/constants
are supported.

Some special violation of coding standards will be signalled when one specify
in ones |.vimrc|: >
	let baan_code_stds=1

*baan-folding*

Syntax folding can be enabled at various levels through the variables
mentioned below (Set those in your |.vimrc|). The more complex folding on
source blocks and SQL can be CPU intensive.

To allow any folding and enable folding at function level use: >
	let baan_fold=1
Folding can be enabled at source block level as if, while, for ,... The
indentation preceding the begin/end keywords has to match (spaces are not
considered equal to a tab). >
	let baan_fold_block=1
Folding can be enabled for embedded SQL blocks as SELECT, SELECTDO,
SELECTEMPTY, ... The indentation preceding the begin/end keywords has to
match (spaces are not considered equal to a tab). >
	let baan_fold_sql=1
Note: Block folding can result in many small folds. It is suggested to |:set|
the options 'foldminlines' and 'foldnestmax' in |.vimrc| or use |:setlocal| in
.../after/syntax/baan.vim (see |after-directory|). Eg: >
	set foldminlines=5
	set foldnestmax=6


BASIC			*basic.vim* *vb.vim* *ft-basic-syntax* *ft-vb-syntax*

Both Visual Basic and "normal" basic use the extension ".bas".	To detect
which one should be used, Vim checks for the string "VB_Name" in the first
five lines of the file.  If it is not found, filetype will be "basic",
otherwise "vb".  Files with the ".frm" extension will always be seen as Visual
Basic.


C							*c.vim* *ft-c-syntax*

A few things in C highlighting are optional.  To enable them assign any value
to the respective variable.  Example: >
	:let c_comment_strings = 1
To disable them use ":unlet".  Example: >
	:unlet c_comment_strings

Variable		Highlight ~
*c_gnu*			GNU gcc specific items
*c_comment_strings*	strings and numbers inside a comment
*c_space_errors*		trailing white space and spaces before a <Tab>
*c_no_trail_space_error*	 ... but no trailing spaces
*c_no_tab_space_error*	 ... but no spaces before a <Tab>
*c_no_bracket_error*	don't highlight {}; inside [] as errors
*c_no_curly_error*	don't highlight {}; inside [] and () as errors;
				except { and } in first column
				Default is to highlight them, otherwise you
				can't spot a missing ")".
*c_curly_error*		highlight a missing }; this forces syncing from the
			start of the file, can be slow
*c_no_ansi*		don't do standard ANSI types and constants
*c_ansi_typedefs*		 ... but do standard ANSI types
*c_ansi_constants*	 ... but do standard ANSI constants
*c_no_utf*		don't highlight \u and \U in strings
*c_syntax_for_h*		for *.h files use C syntax instead of C++ and use objc
			syntax instead of objcpp
*c_no_if0*		don't highlight "#if 0" blocks as comments
*c_no_cformat*		don't highlight %-formats in strings
*c_no_c99*		don't highlight C99 standard items
*c_no_c11*		don't highlight C11 standard items
*c_no_bsd*		don't highlight BSD specific types

When 'foldmethod' is set to "syntax" then /* */ comments and { } blocks will
become a fold.  If you don't want comments to become a fold use: >
	:let c_no_comment_fold = 1
"#if 0" blocks are also folded, unless: >
	:let c_no_if0_fold = 1

If you notice highlighting errors while scrolling backwards, which are fixed
when redrawing with CTRL-L, try setting the "c_minlines" internal variable
to a larger number: >
	:let c_minlines = 100
This will make the syntax synchronization start 100 lines before the first
displayed line.  The default value is 50 (15 when c_no_if0 is set).  The
disadvantage of using a larger number is that redrawing can become slow.

When using the "#if 0" / "#endif" comment highlighting, notice that this only
works when the "#if 0" is within "c_minlines" from the top of the window.  If
you have a long "#if 0" construct it will not be highlighted correctly.

To match extra items in comments, use the cCommentGroup cluster.
Example: >
   :au Syntax c call MyCadd()
   :function MyCadd()
   :  syn keyword cMyItem contained Ni
   :  syn cluster cCommentGroup add=cMyItem
   :  hi link cMyItem Title
   :endfun

ANSI constants will be highlighted with the "cConstant" group.	This includes
"NULL", "SIG_IGN" and others.  But not "TRUE", for example, because this is
not in the ANSI standard.  If you find this confusing, remove the cConstant
highlighting: >
	:hi link cConstant NONE

If you see '{' and '}' highlighted as an error where they are OK, reset the
highlighting for cErrInParen and cErrInBracket.

If you want to use folding in your C files, you can add these lines in a file
in the "after" directory in 'runtimepath'.  For Unix this would be
~/.vim/after/syntax/c.vim. >
    syn sync fromstart
    set foldmethod=syntax

CH						*ch.vim* *ft-ch-syntax*

C/C++ interpreter.  Ch has similar syntax highlighting to C and builds upon
the C syntax file.  See |c.vim| for all the settings that are available for C.

By setting a variable you can tell Vim to use Ch syntax for *.h files, instead
of C or C++: >
	:let ch_syntax_for_h = 1


CHILL						*chill.vim* *ft-chill-syntax*

Chill syntax highlighting is similar to C.  See |c.vim| for all the settings
that are available.  Additionally there is:

chill_space_errors	like c_space_errors
chill_comment_string	like c_comment_strings
chill_minlines		like c_minlines


CHANGELOG				*changelog.vim* *ft-changelog-syntax*

ChangeLog supports highlighting spaces at the start of a line.
If you do not like this, add following line to your .vimrc: >
	let g:changelog_spacing_errors = 0
This works the next time you edit a changelog file.  You can also use
"b:changelog_spacing_errors" to set this per buffer (before loading the syntax
file).

You can change the highlighting used, e.g., to flag the spaces as an error: >
	:hi link ChangelogError Error
Or to avoid the highlighting: >
	:hi link ChangelogError NONE
This works immediately.


CLOJURE							*ft-clojure-syntax*

The default syntax groups can be augmented through the
*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
value should be a |Dictionary| of syntax group names to a |List| of custom
identifiers:
>
	let g:clojure_syntax_keywords = {
	    \ 'clojureMacro': ["defproject", "defcustom"],
	    \ 'clojureFunc': ["string/join", "string/replace"]
	    \ }
<
Refer to the Clojure syntax script for valid syntax group names.

If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
language constants and special forms are matched.

Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
Any list, vector, or map that extends over more than one line can be folded
using the standard Vim |fold-commands|.

Please note that this option does not work with scripts that redefine the
bracket syntax regions, such as rainbow-parentheses plugins.

This option is off by default.
>
	" Default
	let g:clojure_fold = 0
<

COBOL						*cobol.vim* *ft-cobol-syntax*

COBOL highlighting has different needs for legacy code than it does for fresh
development.  This is due to differences in what is being done (maintenance
versus development) and other factors.	To enable legacy code highlighting,
add this line to your .vimrc: >
	:let cobol_legacy_code = 1
To disable it again, use this: >
	:unlet cobol_legacy_code


COLD FUSION			*coldfusion.vim* *ft-coldfusion-syntax*

The ColdFusion has its own version of HTML comments.  To turn on ColdFusion
comment highlighting, add the following line to your startup file: >

	:let html_wrong_comments = 1

The ColdFusion syntax file is based on the HTML syntax file.


CPP						*cpp.vim* *ft-cpp-syntax*

Most of things are same as |ft-c-syntax|.

Variable		Highlight ~
cpp_no_cpp11		don't highlight C++11 standard items
cpp_no_cpp14		don't highlight C++14 standard items


CSH						*csh.vim* *ft-csh-syntax*

This covers the shell named "csh".  Note that on some systems tcsh is actually
used.

Detecting whether a file is csh or tcsh is notoriously hard.  Some systems
symlink /bin/csh to /bin/tcsh, making it almost impossible to distinguish
between csh and tcsh.  In case VIM guesses wrong you can set the
"filetype_csh" variable.  For using csh:  *g:filetype_csh*
>
	:let g:filetype_csh = "csh"

For using tcsh: >

	:let g:filetype_csh = "tcsh"

Any script with a tcsh extension or a standard tcsh filename (.tcshrc,
tcsh.tcshrc, tcsh.login) will have filetype tcsh.  All other tcsh/csh scripts
will be classified as tcsh, UNLESS the "filetype_csh" variable exists.  If the
"filetype_csh" variable exists, the filetype will be set to the value of the
variable.


CYNLIB						*cynlib.vim* *ft-cynlib-syntax*

Cynlib files are C++ files that use the Cynlib class library to enable
hardware modelling and simulation using C++.  Typically Cynlib files have a .cc
or a .cpp extension, which makes it very difficult to distinguish them from a
normal C++ file.  Thus, to enable Cynlib highlighting for .cc files, add this
line to your .vimrc file: >

	:let cynlib_cyntax_for_cc=1

Similarly for cpp files (this extension is only usually used in Windows) >

	:let cynlib_cyntax_for_cpp=1

To disable these again, use this: >

	:unlet cynlib_cyntax_for_cc
	:unlet cynlib_cyntax_for_cpp
<

CWEB						*cweb.vim* *ft-cweb-syntax*

Files matching "*.w" could be Progress or cweb.  If the automatic detection
doesn't work for you, or you don't edit Progress at all, use this in your
startup vimrc: >
   :let filetype_w = "cweb"


DESKTOP					   *desktop.vim* *ft-desktop-syntax*

Primary goal of this syntax file is to highlight .desktop and .directory files
according to freedesktop.org standard:
http://standards.freedesktop.org/desktop-entry-spec/latest/
But actually almost none implements this standard fully.  Thus it will
highlight all Unix ini files.  But you can force strict highlighting according
to standard by placing this in your vimrc file: >
	:let enforce_freedesktop_standard = 1


DIFF							*diff.vim*

The diff highlighting normally finds translated headers.  This can be slow if
there are very long lines in the file.  To disable translations: >

	:let diff_translations = 0

Also see |diff-slow|.


DIRCOLORS			       *dircolors.vim* *ft-dircolors-syntax*

The dircolors utility highlighting definition has one option.  It exists to
provide compatibility with the Slackware GNU/Linux distributions version of
the command.  It adds a few keywords that are generally ignored by most
versions.  On Slackware systems, however, the utility accepts the keywords and
uses them for processing.  To enable the Slackware keywords add the following
line to your startup file: >
	let dircolors_is_slackware = 1


DOCBOOK					*docbk.vim* *ft-docbk-syntax* *docbook*
DOCBOOK XML				*docbkxml.vim* *ft-docbkxml-syntax*
DOCBOOK SGML				*docbksgml.vim* *ft-docbksgml-syntax*

There are two types of DocBook files: SGML and XML.  To specify what type you
are using the "b:docbk_type" variable should be set.  Vim does this for you
automatically if it can recognize the type.  When Vim can't guess it the type
defaults to XML.
You can set the type manually: >
	:let docbk_type = "sgml"
or: >
	:let docbk_type = "xml"
You need to do this before loading the syntax file, which is complicated.
Simpler is setting the filetype to "docbkxml" or "docbksgml": >
	:set filetype=docbksgml
or: >
	:set filetype=docbkxml

You can specify the DocBook version: >
	:let docbk_ver = 3
When not set 4 is used.


DOSBATCH				*dosbatch.vim* *ft-dosbatch-syntax*

There is one option with highlighting DOS batch files.	This covers new
extensions to the Command Interpreter introduced with Windows 2000 and
is controlled by the variable dosbatch_cmdextversion.  For Windows NT
this should have the value 1, and for Windows 2000 it should be 2.
Select the version you want with the following line: >

   :let dosbatch_cmdextversion = 1

If this variable is not defined it defaults to a value of 2 to support
Windows 2000.

A second option covers whether *.btm files should be detected as type
"dosbatch" (MS-DOS batch files) or type "btm" (4DOS batch files).  The latter
is used by default.  You may select the former with the following line: >

   :let g:dosbatch_syntax_for_btm = 1

If this variable is undefined or zero, btm syntax is selected.


DOXYGEN						*doxygen.vim* *doxygen-syntax*

Doxygen generates code documentation using a special documentation format
(similar to Javadoc).  This syntax script adds doxygen highlighting to c, cpp,
idl and php files, and should also work with java.

There are a few of ways to turn on doxygen formatting. It can be done
explicitly or in a modeline by appending '.doxygen' to the syntax of the file.
Example: >
	:set syntax=c.doxygen
or >
	// vim:syntax=c.doxygen

It can also be done automatically for C, C++, C#, IDL and PHP files by setting
the global or buffer-local variable load_doxygen_syntax.  This is done by
adding the following to your .vimrc. >
	:let g:load_doxygen_syntax=1

There are a couple of variables that have an effect on syntax highlighting, and
are to do with non-standard highlighting options.

Variable			Default	Effect ~
g:doxygen_enhanced_color
g:doxygen_enhanced_colour	0	Use non-standard highlighting for
					doxygen comments.

doxygen_my_rendering		0	Disable rendering of HTML bold, italic
					and html_my_rendering underline.

doxygen_javadoc_autobrief	1	Set to 0 to disable javadoc autobrief
					colour highlighting.

doxygen_end_punctuation		'[.]'	Set to regexp match for the ending
					punctuation of brief

There are also some hilight groups worth mentioning as they can be useful in
configuration.

Highlight			Effect ~
doxygenErrorComment		The colour of an end-comment when missing
				punctuation in a code, verbatim or dot section
doxygenLinkError		The colour of an end-comment when missing the
				\endlink from a \link section.


DTD						*dtd.vim* *ft-dtd-syntax*

The DTD syntax highlighting is case sensitive by default.  To disable
case-sensitive highlighting, add the following line to your startup file: >

	:let dtd_ignore_case=1

The DTD syntax file will highlight unknown tags as errors.  If
this is annoying, it can be turned off by setting: >

	:let dtd_no_tag_errors=1

before sourcing the dtd.vim syntax file.
Parameter entity names are highlighted in the definition using the
'Type' highlighting group and 'Comment' for punctuation and '%'.
Parameter entity instances are highlighted using the 'Constant'
highlighting group and the 'Type' highlighting group for the
delimiters % and ;.  This can be turned off by setting: >

	:let dtd_no_param_entities=1

The DTD syntax file is also included by xml.vim to highlight included dtd's.


EIFFEL					*eiffel.vim* *ft-eiffel-syntax*

While Eiffel is not case-sensitive, its style guidelines are, and the
syntax highlighting file encourages their use.  This also allows to
highlight class names differently.  If you want to disable case-sensitive
highlighting, add the following line to your startup file: >

	:let eiffel_ignore_case=1

Case still matters for class names and TODO marks in comments.

Conversely, for even stricter checks, add one of the following lines: >

	:let eiffel_strict=1
	:let eiffel_pedantic=1

Setting eiffel_strict will only catch improper capitalization for the
five predefined words "Current", "Void", "Result", "Precursor", and
"NONE", to warn against their accidental use as feature or class names.

Setting eiffel_pedantic will enforce adherence to the Eiffel style
guidelines fairly rigorously (like arbitrary mixes of upper- and
lowercase letters as well as outdated ways to capitalize keywords).

If you want to use the lower-case version of "Current", "Void",
"Result", and "Precursor", you can use >

	:let eiffel_lower_case_predef=1

instead of completely turning case-sensitive highlighting off.

Support for ISE's proposed new creation syntax that is already
experimentally handled by some compilers can be enabled by: >

	:let eiffel_ise=1

Finally, some vendors support hexadecimal constants.  To handle them, add >

	:let eiffel_hex_constants=1

to your startup file.


EUPHORIA	    *euphoria3.vim* *euphoria4.vim* *ft-euphoria-syntax*

Two syntax highlighting files exists for Euphoria. One for Euphoria 
version 3.1.1, which is the default syntax highlighting file, and one for 
Euphoria version 4.0.5 or later.

Euphoria version 3.1.1 (http://www.rapideuphoria.com/) is still necessary 
for developing applications for the DOS platform, which Euphoria version 4 
(http://www.openeuphoria.org/) does not support.

The following file extensions are auto-detected as Euphoria file type: 
    
	*.e, *.eu, *.ew, *.ex, *.exu, *.exw
	*.E, *.EU, *.EW, *.EX, *.EXU, *.EXW

To select syntax highlighting file for Euphoria, as well as for 
auto-detecting the *.e and *.E file extensions as Euphoria file type,
add the following line to your startup file: >

	:let filetype_euphoria="euphoria3"

	or 

	:let filetype_euphoria="euphoria4"


ERLANG						*erlang.vim* *ft-erlang-syntax*

Erlang is a functional programming language developed by Ericsson.  Files with
the following extensions are recognized as Erlang files: erl, hrl, yaws.

The BIFs (built-in functions) are highlighted by default. To disable this,
put the following line in your vimrc: >

      :let g:erlang_highlight_bifs = 0

To enable highlighting some special atoms, put this in your vimrc: >

      :let g:erlang_highlight_special_atoms = 1


FLEXWIKI				*flexwiki.vim* *ft-flexwiki-syntax*

FlexWiki is an ASP.NET-based wiki package available at http://www.flexwiki.com
NOTE: this site currently doesn't work, on Wikipedia is mentioned that
development stopped in 2009.

Syntax highlighting is available for the most common elements of FlexWiki
syntax. The associated ftplugin script sets some buffer-local options to make
editing FlexWiki pages more convenient. FlexWiki considers a newline as the
start of a new paragraph, so the ftplugin sets 'tw'=0 (unlimited line length),
'wrap' (wrap long lines instead of using horizontal scrolling), 'linebreak'
(to wrap at a character in 'breakat' instead of at the last char on screen),
and so on. It also includes some keymaps that are disabled by default.

If you want to enable the keymaps that make "j" and "k" and the cursor keys
move up and down by display lines, add this to your .vimrc: >
	:let flexwiki_maps = 1


FORM						*form.vim* *ft-form-syntax*

The coloring scheme for syntax elements in the FORM file uses the default
modes Conditional, Number, Statement, Comment, PreProc, Type, and String,
following the language specifications in 'Symbolic Manipulation with FORM' by
J.A.M. Vermaseren, CAN, Netherlands, 1991.

If you want include your own changes to the default colors, you have to
redefine the following syntax groups:

    - formConditional
    - formNumber
    - formStatement
    - formHeaderStatement
    - formComment
    - formPreProc
    - formDirective
    - formType
    - formString

Note that the form.vim syntax file implements FORM preprocessor commands and
directives per default in the same syntax group.

A predefined enhanced color mode for FORM is available to distinguish between
header statements and statements in the body of a FORM program.  To activate
this mode define the following variable in your vimrc file >

	:let form_enhanced_color=1

The enhanced mode also takes advantage of additional color features for a dark
gvim display.  Here, statements are colored LightYellow instead of Yellow, and
conditionals are LightBlue for better distinction.


FORTRAN					*fortran.vim* *ft-fortran-syntax*

Default highlighting and dialect ~
Highlighting appropriate for Fortran 2008 is used by default.  This choice
should be appropriate for most users most of the time because Fortran 2008 is
almost a superset of previous versions (Fortran 2003, 95, 90, and 77).

Fortran source code form ~
Fortran code can be in either fixed or free source form.  Note that the
syntax highlighting will not be correct if the form is incorrectly set.

When you create a new fortran file, the syntax script assumes fixed source
form.  If you always use free source form, then >
    :let fortran_free_source=1
in your .vimrc prior to the :syntax on command.  If you always use fixed source
form, then >
    :let fortran_fixed_source=1
in your .vimrc prior to the :syntax on command.

If the form of the source code depends, in a non-standard way, upon the file
extension, then it is most convenient to set fortran_free_source in a ftplugin
file.  For more information on ftplugin files, see |ftplugin|. Note that this
will work only if the "filetype plugin indent on" command precedes the "syntax
on" command in your .vimrc file.

When you edit an existing fortran file, the syntax script will assume free
source form if the fortran_free_source variable has been set, and assumes
fixed source form if the fortran_fixed_source variable has been set.  If
neither of these variables have been set, the syntax script attempts to
determine which source form has been used by examining the file extension
using conventions common to the ifort, gfortran, Cray, NAG, and PathScale
compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08 for
free-source). If none of this works, then the script examines the first five
columns of the first 500 lines of your file.  If no signs of free source form
are detected, then the file is assumed to be in fixed source form.  The
algorithm should work in the vast majority of cases.  In some cases, such as a
file that begins with 500 or more full-line comments, the script may
incorrectly decide that the fortran code is in fixed form.  If that happens,
just add a non-comment statement beginning anywhere in the first five columns
of the first twenty-five lines, save (:w) and then reload (:e!) the file.

Tabs in fortran files ~
Tabs are not recognized by the Fortran standards.  Tabs are not a good idea in
fixed format fortran source code which requires fixed column boundaries.
Therefore, tabs are marked as errors.  Nevertheless, some programmers like
using tabs.  If your fortran files contain tabs, then you should set the
variable fortran_have_tabs in your .vimrc with a command such as >
    :let fortran_have_tabs=1
placed prior to the :syntax on command.  Unfortunately, the use of tabs will
mean that the syntax file will not be able to detect incorrect margins.

Syntax folding of fortran files ~
If you wish to use foldmethod=syntax, then you must first set the variable
fortran_fold with a command such as >
    :let fortran_fold=1
to instruct the syntax script to define fold regions for program units, that
is main programs starting with a program statement, subroutines, function
subprograms, block data subprograms, interface blocks, and modules.  If you
also set the variable fortran_fold_conditionals with a command such as >
    :let fortran_fold_conditionals=1
then fold regions will also be defined for do loops, if blocks, and select
case constructs.  If you also set the variable
fortran_fold_multilinecomments with a command such as >
    :let fortran_fold_multilinecomments=1
then fold regions will also be defined for three or more consecutive comment
lines.  Note that defining fold regions can be slow for large files.

If fortran_fold, and possibly fortran_fold_conditionals and/or
fortran_fold_multilinecomments, have been set, then vim will fold your file if
you set foldmethod=syntax.  Comments or blank lines placed between two program
units are not folded because they are seen as not belonging to any program
unit.

More precise fortran syntax ~
If you set the variable fortran_more_precise with a command such as >
    :let fortran_more_precise=1
then the syntax coloring will be more precise but slower.  In particular,
statement labels used in do, goto and arithmetic if statements will be
recognized, as will construct names at the end of a do, if, select or forall
construct.

Non-default fortran dialects ~
The syntax script supports two Fortran dialects: f08 and F. You will probably
find the default highlighting (f08) satisfactory.  A few legacy constructs
deleted or declared obsolescent in the 2008 standard are highlighted as todo
items.

If you use F, the advantage of setting the dialect appropriately is that
other legacy features excluded from F will be highlighted as todo items and
that free source form will be assumed.

The dialect can be selected in various ways.  If all your fortran files use
the same dialect, set the global variable fortran_dialect in your .vimrc prior
to your syntax on statement.  The case-sensitive, permissible values of
fortran_dialect are "f08" or "F".  Invalid values of fortran_dialect are
ignored.

If the dialect depends upon the file extension, then it is most convenient to
set a buffer-local variable in a ftplugin file.  For more information on
ftplugin files, see |ftplugin|.  For example, if all your fortran files with
an .f90 extension are written in the F subset, your ftplugin file should
contain the code >
    let s:extfname = expand("%:e")
    if s:extfname ==? "f90"
	let b:fortran_dialect="F"
    else
	unlet! b:fortran_dialect
    endif
Note that this will work only if the "filetype plugin indent on" command
precedes the "syntax on" command in your .vimrc file.

Finer control is necessary if the file extension does not uniquely identify
the dialect.  You can override the default dialect, on a file-by-file basis,
by including a comment with the directive "fortran_dialect=xx" (where xx=F or
f08) in one of the first three lines in your file.  For example, your older .f
files may be legacy code but your newer ones may be F codes, and you would
identify the latter by including in the first three lines of those files a
Fortran comment of the form >
  ! fortran_dialect=F

For previous versions of the syntax, you may have set fortran_dialect to the
now-obsolete values "f77", "f90", "f95", or "elf". Such settings will be
silently handled as "f08". Users of "elf" may wish to experiment with "F"
instead.

The syntax/fortran.vim script contains embedded comments that tell you how to
comment and/or uncomment some lines to (a) activate recognition of some
non-standard, vendor-supplied intrinsics and (b) to prevent features deleted
or declared obsolescent in the 2008 standard from being highlighted as todo
items.

Limitations ~
Parenthesis checking does not catch too few closing parentheses.  Hollerith
strings are not recognized.  Some keywords may be highlighted incorrectly
because Fortran90 has no reserved words.

For further information related to fortran, see |ft-fortran-indent| and
|ft-fortran-plugin|.


FVWM CONFIGURATION FILES			*fvwm.vim* *ft-fvwm-syntax*

In order for Vim to recognize Fvwm configuration files that do not match
the patterns *fvwmrc* or *fvwm2rc* , you must put additional patterns
appropriate to your system in your myfiletypes.vim file.  For these
patterns, you must set the variable "b:fvwm_version" to the major version
number of Fvwm, and the 'filetype' option to fvwm.

For example, to make Vim identify all files in /etc/X11/fvwm2/
as Fvwm2 configuration files, add the following: >

  :au! BufNewFile,BufRead /etc/X11/fvwm2/*  let b:fvwm_version = 2 |
					 \ set filetype=fvwm

If you'd like Vim to highlight all valid color names, tell it where to
find the color database (rgb.txt) on your system.  Do this by setting
"rgb_file" to its location.  Assuming your color database is located
in /usr/X11/lib/X11/, you should add the line >

	:let rgb_file = "/usr/X11/lib/X11/rgb.txt"

to your .vimrc file.


GSP						*gsp.vim* *ft-gsp-syntax*

The default coloring style for GSP pages is defined by |html.vim|, and
the coloring for java code (within java tags or inline between backticks)
is defined by |java.vim|.  The following HTML groups defined in |html.vim|
are redefined to incorporate and highlight inline java code:

    htmlString
    htmlValue
    htmlEndTag
    htmlTag
    htmlTagN

Highlighting should look fine most of the places where you'd see inline
java code, but in some special cases it may not.  To add another HTML
group where you will have inline java code where it does not highlight
correctly, just copy the line you want from |html.vim| and add gspJava
to the contains clause.

The backticks for inline java are highlighted according to the htmlError
group to make them easier to see.


GROFF						*groff.vim* *ft-groff-syntax*

The groff syntax file is a wrapper for |nroff.vim|, see the notes
under that heading for examples of use and configuration.  The purpose
of this wrapper is to set up groff syntax extensions by setting the
filetype from a |modeline| or in a personal filetype definitions file
(see |filetype.txt|).


HASKELL			     *haskell.vim* *lhaskell.vim* *ft-haskell-syntax*

The Haskell syntax files support plain Haskell code as well as literate
Haskell code, the latter in both Bird style and TeX style.  The Haskell
syntax highlighting will also highlight C preprocessor directives.

If you want to highlight delimiter characters (useful if you have a
light-coloured background), add to your .vimrc: >
	:let hs_highlight_delimiters = 1
To treat True and False as keywords as opposed to ordinary identifiers,
add: >
	:let hs_highlight_boolean = 1
To also treat the names of primitive types as keywords: >
	:let hs_highlight_types = 1
And to treat the names of even more relatively common types as keywords: >
	:let hs_highlight_more_types = 1
If you want to highlight the names of debugging functions, put in
your .vimrc: >
	:let hs_highlight_debug = 1

The Haskell syntax highlighting also highlights C preprocessor
directives, and flags lines that start with # but are not valid
directives as erroneous.  This interferes with Haskell's syntax for
operators, as they may start with #.  If you want to highlight those
as operators as opposed to errors, put in your .vimrc: >
	:let hs_allow_hash_operator = 1

The syntax highlighting for literate Haskell code will try to
automatically guess whether your literate Haskell code contains
TeX markup or not, and correspondingly highlight TeX constructs
or nothing at all.  You can override this globally by putting
in your .vimrc >
	:let lhs_markup = none
for no highlighting at all, or >
	:let lhs_markup = tex
to force the highlighting to always try to highlight TeX markup.
For more flexibility, you may also use buffer local versions of
this variable, so e.g. >
	:let b:lhs_markup = tex
will force TeX highlighting for a particular buffer.  It has to be
set before turning syntax highlighting on for the buffer or
loading a file.


HTML						*html.vim* *ft-html-syntax*

The coloring scheme for tags in the HTML file works as follows.

The  <> of opening tags are colored differently than the </> of a closing tag.
This is on purpose! For opening tags the 'Function' color is used, while for
closing tags the 'Type' color is used (See syntax.vim to check how those are
defined for you)

Known tag names are colored the same way as statements in C.  Unknown tag
names are colored with the same color as the <> or </> respectively which
makes it easy to spot errors

Note that the same is true for argument (or attribute) names.  Known attribute
names are colored differently than unknown ones.

Some HTML tags are used to change the rendering of text.  The following tags
are recognized by the html.vim syntax coloring file and change the way normal
text is shown: <B> <I> <U> <EM> <STRONG> (<EM> is used as an alias for <I>,
while <STRONG> as an alias for <B>), <H1> - <H6>, <HEAD>, <TITLE> and <A>, but
only if used as a link (that is, it must include a href as in
<A href="somefile.html">).

If you want to change how such text is rendered, you must redefine the
following syntax groups:

    - htmlBold
    - htmlBoldUnderline
    - htmlBoldUnderlineItalic
    - htmlUnderline
    - htmlUnderlineItalic
    - htmlItalic
    - htmlTitle for titles
    - htmlH1 - htmlH6 for headings

To make this redefinition work you must redefine them all with the exception
of the last two (htmlTitle and htmlH[1-6], which are optional) and define the
following variable in your vimrc (this is due to the order in which the files
are read during initialization) >
	:let html_my_rendering=1

If you'd like to see an example download mysyntax.vim at
http://www.fleiner.com/vim/download.html

You can also disable this rendering by adding the following line to your
vimrc file: >
	:let html_no_rendering=1

HTML comments are rather special (see an HTML reference document for the
details), and the syntax coloring scheme will highlight all errors.
However, if you prefer to use the wrong style (starts with <!-- and
ends with -->) you can define >
	:let html_wrong_comments=1

JavaScript and Visual Basic embedded inside HTML documents are highlighted as
'Special' with statements, comments, strings and so on colored as in standard
programming languages.  Note that only JavaScript and Visual Basic are currently
supported, no other scripting language has been added yet.

Embedded and inlined cascading style sheets (CSS) are highlighted too.

There are several html preprocessor languages out there.  html.vim has been
written such that it should be trivial to include it.  To do so add the
following two lines to the syntax coloring file for that language
(the example comes from the asp.vim file):

    runtime! syntax/html.vim
    syn cluster htmlPreproc add=asp

Now you just need to make sure that you add all regions that contain
the preprocessor language to the cluster htmlPreproc.


HTML/OS (by Aestiva)				*htmlos.vim* *ft-htmlos-syntax*

The coloring scheme for HTML/OS works as follows:

Functions and variable names are the same color by default, because VIM
doesn't specify different colors for Functions and Identifiers.  To change
this (which is recommended if you want function names to be recognizable in a
different color) you need to add the following line to either your ~/.vimrc: >
  :hi Function term=underline cterm=bold ctermfg=LightGray

Of course, the ctermfg can be a different color if you choose.

Another issues that HTML/OS runs into is that there is no special filetype to
signify that it is a file with HTML/OS coding.	You can change this by opening
a file and turning on HTML/OS syntax by doing the following: >
  :set syntax=htmlos

Lastly, it should be noted that the opening and closing characters to begin a
block of HTML/OS code can either be << or [[ and >> or ]], respectively.


IA64				*ia64.vim* *intel-itanium* *ft-ia64-syntax*

Highlighting for the Intel Itanium 64 assembly language.  See |asm.vim| for
how to recognize this filetype.

To have *.inc files be recognized as IA64, add this to your .vimrc file: >
	:let g:filetype_inc = "ia64"


INFORM						*inform.vim* *ft-inform-syntax*

Inform highlighting includes symbols provided by the Inform Library, as
most programs make extensive use of it.  If do not wish Library symbols
to be highlighted add this to your vim startup: >
	:let inform_highlight_simple=1

By default it is assumed that Inform programs are Z-machine targeted,
and highlights Z-machine assembly language symbols appropriately.  If
you intend your program to be targeted to a Glulx/Glk environment you
need to add this to your startup sequence: >
	:let inform_highlight_glulx=1

This will highlight Glulx opcodes instead, and also adds glk() to the
set of highlighted system functions.

The Inform compiler will flag certain obsolete keywords as errors when
it encounters them.  These keywords are normally highlighted as errors
by Vim.  To prevent such error highlighting, you must add this to your
startup sequence: >
	:let inform_suppress_obsolete=1

By default, the language features highlighted conform to Compiler
version 6.30 and Library version 6.11.  If you are using an older
Inform development environment, you may with to add this to your
startup sequence: >
	:let inform_highlight_old=1

IDL							*idl.vim* *idl-syntax*

IDL (Interface Definition Language) files are used to define RPC calls.  In
Microsoft land, this is also used for defining COM interfaces and calls.

IDL's structure is simple enough to permit a full grammar based approach to
rather than using a few heuristics.  The result is large and somewhat
repetitive but seems to work.

There are some Microsoft extensions to idl files that are here.  Some of them
are disabled by defining idl_no_ms_extensions.

The more complex of the extensions are disabled by defining idl_no_extensions.

Variable			Effect ~

idl_no_ms_extensions		Disable some of the Microsoft specific
				extensions
idl_no_extensions		Disable complex extensions
idlsyntax_showerror		Show IDL errors (can be rather intrusive, but
				quite helpful)
idlsyntax_showerror_soft	Use softer colours by default for errors


JAVA						*java.vim* *ft-java-syntax*

The java.vim syntax highlighting file offers several options:

In Java 1.0.2 it was never possible to have braces inside parens, so this was
flagged as an error.  Since Java 1.1 this is possible (with anonymous
classes), and therefore is no longer marked as an error.  If you prefer the old
way, put the following line into your vim startup file: >
	:let java_mark_braces_in_parens_as_errors=1

All identifiers in java.lang.* are always visible in all classes.  To
highlight them use: >
	:let java_highlight_java_lang_ids=1

You can also highlight identifiers of most standard Java packages if you
download the javaid.vim script at http://www.fleiner.com/vim/download.html.
If you prefer to only highlight identifiers of a certain package, say java.io
use the following: >
	:let java_highlight_java_io=1
Check the javaid.vim file for a list of all the packages that are supported.

Function names are not highlighted, as the way to find functions depends on
how you write Java code.  The syntax file knows two possible ways to highlight
functions:

If you write function declarations that are always indented by either
a tab, 8 spaces or 2 spaces you may want to set >
	:let java_highlight_functions="indent"
However, if you follow the Java guidelines about how functions and classes are
supposed to be named (with respect to upper and lowercase), use >
	:let java_highlight_functions="style"
If both options do not work for you, but you would still want function
declarations to be highlighted create your own definitions by changing the
definitions in java.vim or by creating your own java.vim which includes the
original one and then adds the code to highlight functions.

In Java 1.1 the functions System.out.println() and System.err.println() should
only be used for debugging.  Therefore it is possible to highlight debugging
statements differently.  To do this you must add the following definition in
your startup file: >
	:let java_highlight_debug=1
The result will be that those statements are highlighted as 'Special'
characters.  If you prefer to have them highlighted differently you must define
new highlightings for the following groups.:
    Debug, DebugSpecial, DebugString, DebugBoolean, DebugType
which are used for the statement itself, special characters used in debug
strings, strings, boolean constants and types (this, super) respectively.  I
have opted to chose another background for those statements.

Javadoc is a program that takes special comments out of Java program files and
creates HTML pages.  The standard configuration will highlight this HTML code
similarly to HTML files (see |html.vim|).  You can even add Javascript
and CSS inside this code (see below).  There are four differences however:
  1. The title (all characters up to the first '.' which is followed by
     some white space or up to the first '@') is colored differently (to change
     the color change the group CommentTitle).
  2. The text is colored as 'Comment'.
  3. HTML comments are colored as 'Special'
  4. The special Javadoc tags (@see, @param, ...) are highlighted as specials
     and the argument (for @see, @param, @exception) as Function.
To turn this feature off add the following line to your startup file: >
	:let java_ignore_javadoc=1

If you use the special Javadoc comment highlighting described above you
can also turn on special highlighting for Javascript, visual basic
scripts and embedded CSS (stylesheets).  This makes only sense if you
actually have Javadoc comments that include either Javascript or embedded
CSS.  The options to use are >
	:let java_javascript=1
	:let java_css=1
	:let java_vb=1

In order to highlight nested parens with different colors define colors
for javaParen, javaParen1 and javaParen2, for example with >
	:hi link javaParen Comment
or >
	:hi javaParen ctermfg=blue guifg=#0000ff

If you notice highlighting errors while scrolling backwards, which are fixed
when redrawing with CTRL-L, try setting the "java_minlines" internal variable
to a larger number: >
	:let java_minlines = 50
This will make the syntax synchronization start 50 lines before the first
displayed line.  The default value is 10.  The disadvantage of using a larger
number is that redrawing can become slow.


LACE						*lace.vim* *ft-lace-syntax*

Lace (Language for Assembly of Classes in Eiffel) is case insensitive, but the
style guide lines are not.  If you prefer case insensitive highlighting, just
define the vim variable 'lace_case_insensitive' in your startup file: >
	:let lace_case_insensitive=1


LEX						*lex.vim* *ft-lex-syntax*

Lex uses brute-force synchronizing as the "^%%$" section delimiter
gives no clue as to what section follows.  Consequently, the value for >
	:syn sync minlines=300
may be changed by the user if s/he is experiencing synchronization
difficulties (such as may happen with large lex files).


LIFELINES				*lifelines.vim* *ft-lifelines-syntax*

To highlight deprecated functions as errors, add in your .vimrc: >

	:let g:lifelines_deprecated = 1
<

LISP						*lisp.vim* *ft-lisp-syntax*

The lisp syntax highlighting provides two options: >

	g:lisp_instring : if it exists, then "(...)" strings are highlighted
			  as if the contents of the string were lisp.
			  Useful for AutoLisp.
	g:lisp_rainbow  : if it exists and is nonzero, then differing levels
			  of parenthesization will receive different
			  highlighting.
<
The g:lisp_rainbow option provides 10 levels of individual colorization for
the parentheses and backquoted parentheses.  Because of the quantity of
colorization levels, unlike non-rainbow highlighting, the rainbow mode
specifies its highlighting using ctermfg and guifg, thereby bypassing the
usual colorscheme control using standard highlighting groups.  The actual
highlighting used depends on the dark/bright setting  (see |'bg'|).


LITE						*lite.vim* *ft-lite-syntax*

There are two options for the lite syntax highlighting.

If you like SQL syntax highlighting inside Strings, use this: >

	:let lite_sql_query = 1

For syncing, minlines defaults to 100.	If you prefer another value, you can
set "lite_minlines" to the value you desire.  Example: >

	:let lite_minlines = 200


LPC						*lpc.vim* *ft-lpc-syntax*

LPC stands for a simple, memory-efficient language: Lars Pensj| C.  The
file name of LPC is usually *.c.  Recognizing these files as LPC would bother
users writing only C programs.	If you want to use LPC syntax in Vim, you
should set a variable in your .vimrc file: >

	:let lpc_syntax_for_c = 1

If it doesn't work properly for some particular C or LPC files, use a
modeline.  For a LPC file:

	// vim:set ft=lpc:

For a C file that is recognized as LPC:

	// vim:set ft=c:

If you don't want to set the variable, use the modeline in EVERY LPC file.

There are several implementations for LPC, we intend to support most widely
used ones.  Here the default LPC syntax is for MudOS series, for MudOS v22
and before, you should turn off the sensible modifiers, and this will also
assert the new efuns after v22 to be invalid, don't set this variable when
you are using the latest version of MudOS: >

	:let lpc_pre_v22 = 1

For LpMud 3.2 series of LPC: >

	:let lpc_compat_32 = 1

For LPC4 series of LPC: >

	:let lpc_use_lpc4_syntax = 1

For uLPC series of LPC:
uLPC has been developed to Pike, so you should use Pike syntax
instead, and the name of your source file should be *.pike


LUA						*lua.vim* *ft-lua-syntax*

The Lua syntax file can be used for versions 4.0, 5.0, 5.1 and 5.2 (5.2 is
the default). You can select one of these versions using the global variables
lua_version and lua_subversion. For example, to activate Lua
5.1 syntax highlighting, set the variables like this:

	:let lua_version = 5
	:let lua_subversion = 1


MAIL						*mail.vim* *ft-mail.vim*

Vim highlights all the standard elements of an email (headers, signatures,
quoted text and URLs / email addresses).  In keeping with standard conventions,
signatures begin in a line containing only "--" followed optionally by
whitespaces and end with a newline.

Vim treats lines beginning with ']', '}', '|', '>' or a word followed by '>'
as quoted text.  However Vim highlights headers and signatures in quoted text
only if the text is quoted with '>' (optionally followed by one space).

By default mail.vim synchronises syntax to 100 lines before the first
displayed line.  If you have a slow machine, and generally deal with emails
with short headers, you can change this to a smaller value: >

    :let mail_minlines = 30


MAKE						*make.vim* *ft-make-syntax*

In makefiles, commands are usually highlighted to make it easy for you to spot
errors.  However, this may be too much coloring for you.  You can turn this
feature off by using: >

	:let make_no_commands = 1


MAPLE						*maple.vim* *ft-maple-syntax*

Maple V, by Waterloo Maple Inc, supports symbolic algebra.  The language
supports many packages of functions which are selectively loaded by the user.
The standard set of packages' functions as supplied in Maple V release 4 may be
highlighted at the user's discretion.  Users may place in their .vimrc file: >

	:let mvpkg_all= 1

to get all package functions highlighted, or users may select any subset by
choosing a variable/package from the table below and setting that variable to
1, also in their .vimrc file (prior to sourcing
$VIMRUNTIME/syntax/syntax.vim).

	Table of Maple V Package Function Selectors >
  mv_DEtools	 mv_genfunc	mv_networks	mv_process
  mv_Galois	 mv_geometry	mv_numapprox	mv_simplex
  mv_GaussInt	 mv_grobner	mv_numtheory	mv_stats
  mv_LREtools	 mv_group	mv_orthopoly	mv_student
  mv_combinat	 mv_inttrans	mv_padic	mv_sumtools
  mv_combstruct mv_liesymm	mv_plots	mv_tensor
  mv_difforms	 mv_linalg	mv_plottools	mv_totorder
  mv_finance	 mv_logic	mv_powseries


MATHEMATICA		*mma.vim* *ft-mma-syntax* *ft-mathematica-syntax*

Empty *.m files will automatically be presumed to be Matlab files unless you
have the following in your .vimrc: >

	let filetype_m = "mma"


MOO						*moo.vim* *ft-moo-syntax*

If you use C-style comments inside expressions and find it mangles your
highlighting, you may want to use extended (slow!) matches for C-style
comments: >

	:let moo_extended_cstyle_comments = 1

To disable highlighting of pronoun substitution patterns inside strings: >

	:let moo_no_pronoun_sub = 1

To disable highlighting of the regular expression operator '%|', and matching
'%(' and '%)' inside strings: >

	:let moo_no_regexp = 1

Unmatched double quotes can be recognized and highlighted as errors: >

	:let moo_unmatched_quotes = 1

To highlight builtin properties (.name, .location, .programmer etc.): >

	:let moo_builtin_properties = 1

Unknown builtin functions can be recognized and highlighted as errors.  If you
use this option, add your own extensions to the mooKnownBuiltinFunction group.
To enable this option: >

	:let moo_unknown_builtin_functions = 1

An example of adding sprintf() to the list of known builtin functions: >

	:syn keyword mooKnownBuiltinFunction sprintf contained


MSQL						*msql.vim* *ft-msql-syntax*

There are two options for the msql syntax highlighting.

If you like SQL syntax highlighting inside Strings, use this: >

	:let msql_sql_query = 1

For syncing, minlines defaults to 100.	If you prefer another value, you can
set "msql_minlines" to the value you desire.  Example: >

	:let msql_minlines = 200


N1QL						*n1ql.vim* *ft-n1ql-syntax*

N1QL is a SQL-like declarative language for manipulating JSON documents in
Couchbase Server databases.

Vim syntax highlights N1QL statements, keywords, operators, types, comments,
and special values.  Vim ignores syntactical elements specific to SQL or its
many dialects, like COLUMN or CHAR, that don't exist in N1QL.


NCF						*ncf.vim* *ft-ncf-syntax*

There is one option for NCF syntax highlighting.

If you want to have unrecognized (by ncf.vim) statements highlighted as
errors, use this: >

	:let ncf_highlight_unknowns = 1

If you don't want to highlight these errors, leave it unset.


NROFF						*nroff.vim* *ft-nroff-syntax*

The nroff syntax file works with AT&T n/troff out of the box.  You need to
activate the GNU groff extra features included in the syntax file before you
can use them.

For example, Linux and BSD distributions use groff as their default text
processing package.  In order to activate the extra syntax highlighting
features for groff, add the following option to your start-up files: >

  :let b:nroff_is_groff = 1

Groff is different from the old AT&T n/troff that you may still find in
Solaris.  Groff macro and request names can be longer than 2 characters and
there are extensions to the language primitives.  For example, in AT&T troff
you access the year as a 2-digit number with the request \(yr.  In groff you
can use the same request, recognized for compatibility, or you can use groff's
native syntax, \[yr].  Furthermore, you can use a 4-digit year directly:
\[year].  Macro requests can be longer than 2 characters, for example, GNU mm
accepts the requests ".VERBON" and ".VERBOFF" for creating verbatim
environments.

In order to obtain the best formatted output g/troff can give you, you should
follow a few simple rules about spacing and punctuation.

1. Do not leave empty spaces at the end of lines.

2. Leave one space and one space only after an end-of-sentence period,
   exclamation mark, etc.

3. For reasons stated below, it is best to follow all period marks with a
   carriage return.

The reason behind these unusual tips is that g/n/troff have a line breaking
algorithm that can be easily upset if you don't follow the rules given above.

Unlike TeX, troff fills text line-by-line, not paragraph-by-paragraph and,
furthermore, it does not have a concept of glue or stretch, all horizontal and
vertical space input will be output as is.

Therefore, you should be careful about not using more space between sentences
than you intend to have in your final document.  For this reason, the common
practice is to insert a carriage return immediately after all punctuation
marks.  If you want to have "even" text in your final processed output, you
need to maintain regular spacing in the input text.  To mark both trailing
spaces and two or more spaces after a punctuation as an error, use: >

  :let nroff_space_errors = 1

Another technique to detect extra spacing and other errors that will interfere
with the correct typesetting of your file, is to define an eye-catching
highlighting definition for the syntax groups "nroffDefinition" and
"nroffDefSpecial" in your configuration files.  For example: >

  hi def nroffDefinition term=italic cterm=italic gui=reverse
  hi def nroffDefSpecial term=italic,bold cterm=italic,bold
			 \ gui=reverse,bold

If you want to navigate preprocessor entries in your source file as easily as
with section markers, you can activate the following option in your .vimrc
file: >

	let b:preprocs_as_sections = 1

As well, the syntax file adds an extra paragraph marker for the extended
paragraph macro (.XP) in the ms package.

Finally, there is a |groff.vim| syntax file that can be used for enabling
groff syntax highlighting either on a file basis or globally by default.


OCAML						*ocaml.vim* *ft-ocaml-syntax*

The OCaml syntax file handles files having the following prefixes: .ml,
.mli, .mll and .mly.  By setting the following variable >

	:let ocaml_revised = 1

you can switch from standard OCaml-syntax to revised syntax as supported
by the camlp4 preprocessor.  Setting the variable >

	:let ocaml_noend_error = 1

prevents highlighting of "end" as error, which is useful when sources
contain very long structures that Vim does not synchronize anymore.


PAPP						*papp.vim* *ft-papp-syntax*

The PApp syntax file handles .papp files and, to a lesser extend, .pxml
and .pxsl files which are all a mixture of perl/xml/html/other using xml
as the top-level file format.  By default everything inside phtml or pxml
sections is treated as a string with embedded preprocessor commands.  If
you set the variable: >

	:let papp_include_html=1

in your startup file it will try to syntax-hilight html code inside phtml
sections, but this is relatively slow and much too colourful to be able to
edit sensibly. ;)

The newest version of the papp.vim syntax file can usually be found at
http://papp.plan9.de.


PASCAL						*pascal.vim* *ft-pascal-syntax*

Files matching "*.p" could be Progress or Pascal.  If the automatic detection
doesn't work for you, or you don't edit Progress at all, use this in your
startup vimrc: >

   :let filetype_p = "pascal"

The Pascal syntax file has been extended to take into account some extensions
provided by Turbo Pascal, Free Pascal Compiler and GNU Pascal Compiler.
Delphi keywords are also supported.  By default, Turbo Pascal 7.0 features are
enabled.  If you prefer to stick with the standard Pascal keywords, add the
following line to your startup file: >

   :let pascal_traditional=1

To switch on Delphi specific constructions (such as one-line comments,
keywords, etc): >

   :let pascal_delphi=1


The option pascal_symbol_operator controls whether symbol operators such as +,
*, .., etc. are displayed using the Operator color or not.  To colorize symbol
operators, add the following line to your startup file: >

   :let pascal_symbol_operator=1

Some functions are highlighted by default.  To switch it off: >

   :let pascal_no_functions=1

Furthermore, there are specific variables for some compilers.  Besides
pascal_delphi, there are pascal_gpc and pascal_fpc.  Default extensions try to
match Turbo Pascal. >

   :let pascal_gpc=1

or >

   :let pascal_fpc=1

To ensure that strings are defined on a single line, you can define the
pascal_one_line_string variable. >

   :let pascal_one_line_string=1

If you dislike <Tab> chars, you can set the pascal_no_tabs variable.  Tabs
will be highlighted as Error. >

   :let pascal_no_tabs=1



PERL						*perl.vim* *ft-perl-syntax*

There are a number of possible options to the perl syntax highlighting.

Inline POD highlighting is now turned on by default.  If you don't wish
to have the added complexity of highlighting POD embedded within Perl
files, you may set the 'perl_include_pod' option to 0: >

	:let perl_include_pod = 0

To reduce the complexity of parsing (and increase performance) you can switch
off two elements in the parsing of variable names and contents. >

To handle package references in variable and function names not differently
from the rest of the name (like 'PkgName::' in '$PkgName::VarName'): >

	:let perl_no_scope_in_variables = 1

(In Vim 6.x it was the other way around: "perl_want_scope_in_variables"
enabled it.)

If you do not want complex things like '@{${"foo"}}' to be parsed: >

	:let perl_no_extended_vars = 1

(In Vim 6.x it was the other way around: "perl_extended_vars" enabled it.)

The coloring strings can be changed.  By default strings and qq friends will be
highlighted like the first line.  If you set the variable
perl_string_as_statement, it will be highlighted as in the second line.

   "hello world!"; qq|hello world|;
   ^^^^^^^^^^^^^^NN^^^^^^^^^^^^^^^N	  (unlet perl_string_as_statement)
   S^^^^^^^^^^^^SNNSSS^^^^^^^^^^^SN	  (let perl_string_as_statement)

(^ = perlString, S = perlStatement, N = None at all)

The syncing has 3 options.  The first two switch off some triggering of
synchronization and should only be needed in case it fails to work properly.
If while scrolling all of a sudden the whole screen changes color completely
then you should try and switch off one of those.  Let me know if you can figure
out the line that causes the mistake.

One triggers on "^\s*sub\s*" and the other on "^[$@%]" more or less. >

	:let perl_no_sync_on_sub
	:let perl_no_sync_on_global_var

Below you can set the maximum distance VIM should look for starting points for
its attempts in syntax highlighting. >

	:let perl_sync_dist = 100

If you want to use folding with perl, set perl_fold: >

	:let perl_fold = 1

If you want to fold blocks in if statements, etc. as well set the following: >

	:let perl_fold_blocks = 1

Subroutines are folded by default if 'perl_fold' is set.  If you do not want
this, you can set 'perl_nofold_subs': >

	:let perl_nofold_subs = 1

Anonymous subroutines are not folded by default; you may enable their folding
via 'perl_fold_anonymous_subs': >

	:let perl_fold_anonymous_subs = 1

Packages are also folded by default if 'perl_fold' is set.  To disable this
behavior, set 'perl_nofold_packages': >

	:let perl_nofold_packages = 1

PHP3 and PHP4		*php.vim* *php3.vim* *ft-php-syntax* *ft-php3-syntax*

[note: previously this was called "php3", but since it now also supports php4
it has been renamed to "php"]

There are the following options for the php syntax highlighting.

If you like SQL syntax highlighting inside Strings: >

  let php_sql_query = 1

For highlighting the Baselib methods: >

  let php_baselib = 1

Enable HTML syntax highlighting inside strings: >

  let php_htmlInStrings = 1

Using the old colorstyle: >

  let php_oldStyle = 1

Enable highlighting ASP-style short tags: >

  let php_asp_tags = 1

Disable short tags: >

  let php_noShortTags = 1

For highlighting parent error ] or ): >

  let php_parent_error_close = 1

For skipping a php end tag, if there exists an open ( or [ without a closing
one: >

  let php_parent_error_open = 1

Enable folding for classes and functions: >

  let php_folding = 1

Selecting syncing method: >

  let php_sync_method = x

x = -1 to sync by search (default),
x > 0 to sync at least x lines backwards,
x = 0 to sync from start.


PLAINTEX				*plaintex.vim* *ft-plaintex-syntax*

TeX is a typesetting language, and plaintex is the file type for the "plain"
variant of TeX.  If you never want your *.tex files recognized as plain TeX,
see |ft-tex-plugin|.

This syntax file has the option >

	let g:plaintex_delimiters = 1

if you want to highlight brackets "[]" and braces "{}".


PPWIZARD					*ppwiz.vim* *ft-ppwiz-syntax*

PPWizard is a preprocessor for HTML and OS/2 INF files

This syntax file has the options:

- ppwiz_highlight_defs : determines highlighting mode for PPWizard's
  definitions.  Possible values are

  ppwiz_highlight_defs = 1 : PPWizard #define statements retain the
    colors of their contents (e.g. PPWizard macros and variables)

  ppwiz_highlight_defs = 2 : preprocessor #define and #evaluate
    statements are shown in a single color with the exception of line
    continuation symbols

  The default setting for ppwiz_highlight_defs is 1.

- ppwiz_with_html : If the value is 1 (the default), highlight literal
  HTML code; if 0, treat HTML code like ordinary text.


PHTML						*phtml.vim* *ft-phtml-syntax*

There are two options for the phtml syntax highlighting.

If you like SQL syntax highlighting inside Strings, use this: >

	:let phtml_sql_query = 1

For syncing, minlines defaults to 100.	If you prefer another value, you can
set "phtml_minlines" to the value you desire.  Example: >

	:let phtml_minlines = 200


POSTSCRIPT				*postscr.vim* *ft-postscr-syntax*

There are several options when it comes to highlighting PostScript.

First which version of the PostScript language to highlight.  There are
currently three defined language versions, or levels.  Level 1 is the original
and base version, and includes all extensions prior to the release of level 2.
Level 2 is the most common version around, and includes its own set of
extensions prior to the release of level 3.  Level 3 is currently the highest
level supported.  You select which level of the PostScript language you want
highlighted by defining the postscr_level variable as follows: >

	:let postscr_level=2

If this variable is not defined it defaults to 2 (level 2) since this is
the most prevalent version currently.

Note, not all PS interpreters will support all language features for a
particular language level.  In particular the %!PS-Adobe-3.0 at the start of
PS files does NOT mean the PostScript present is level 3 PostScript!

If you are working with Display PostScript, you can include highlighting of
Display PS language features by defining the postscr_display variable as
follows: >

	:let postscr_display=1

If you are working with Ghostscript, you can include highlighting of
Ghostscript specific language features by defining the variable
postscr_ghostscript as follows: >

	:let postscr_ghostscript=1

PostScript is a large language, with many predefined elements.	While it
useful to have all these elements highlighted, on slower machines this can
cause Vim to slow down.  In an attempt to be machine friendly font names and
character encodings are not highlighted by default.  Unless you are working
explicitly with either of these this should be ok.  If you want them to be
highlighted you should set one or both of the following variables: >

	:let postscr_fonts=1
	:let postscr_encodings=1

There is a stylistic option to the highlighting of and, or, and not.  In
PostScript the function of these operators depends on the types of their
operands - if the operands are booleans then they are the logical operators,
if they are integers then they are binary operators.  As binary and logical
operators can be highlighted differently they have to be highlighted one way
or the other.  By default they are treated as logical operators.  They can be
highlighted as binary operators by defining the variable
postscr_andornot_binary as follows: >

	:let postscr_andornot_binary=1
<

			*ptcap.vim* *ft-printcap-syntax*
PRINTCAP + TERMCAP	*ft-ptcap-syntax* *ft-termcap-syntax*

This syntax file applies to the printcap and termcap databases.

In order for Vim to recognize printcap/termcap files that do not match
the patterns *printcap*, or *termcap*, you must put additional patterns
appropriate to your system in your |myfiletypefile| file.  For these
patterns, you must set the variable "b:ptcap_type" to either "print" or
"term", and then the 'filetype' option to ptcap.

For example, to make Vim identify all files in /etc/termcaps/ as termcap
files, add the following: >

   :au BufNewFile,BufRead /etc/termcaps/* let b:ptcap_type = "term" |
				       \ set filetype=ptcap

If you notice highlighting errors while scrolling backwards, which
are fixed when redrawing with CTRL-L, try setting the "ptcap_minlines"
internal variable to a larger number: >

   :let ptcap_minlines = 50

(The default is 20 lines.)


PROGRESS				*progress.vim* *ft-progress-syntax*

Files matching "*.w" could be Progress or cweb.  If the automatic detection
doesn't work for you, or you don't edit cweb at all, use this in your
startup vimrc: >
   :let filetype_w = "progress"
The same happens for "*.i", which could be assembly, and "*.p", which could be
Pascal.  Use this if you don't use assembly and Pascal: >
   :let filetype_i = "progress"
   :let filetype_p = "progress"


PYTHON						*python.vim* *ft-python-syntax*

There are six options to control Python syntax highlighting.

For highlighted numbers: >
	:let python_no_number_highlight = 1

For highlighted builtin functions: >
	:let python_no_builtin_highlight = 1

For highlighted standard exceptions: >
	:let python_no_exception_highlight = 1

For highlighted doctests and code inside: >
	:let python_no_doctest_highlight = 1
or >
	:let python_no_doctest_code_highlight = 1
(first option implies second one).

For highlighted trailing whitespace and mix of spaces and tabs: >
	:let python_space_error_highlight = 1

If you want all possible Python highlighting (the same as setting the
preceding last option and unsetting all other ones): >
	:let python_highlight_all = 1

Note: only existence of these options matter, not their value. You can replace
      1 above with anything.


QUAKE						*quake.vim* *ft-quake-syntax*

The Quake syntax definition should work for most any FPS (First Person
Shooter) based on one of the Quake engines.  However, the command names vary
a bit between the three games (Quake, Quake 2, and Quake 3 Arena) so the
syntax definition checks for the existence of three global variables to allow
users to specify what commands are legal in their files.  The three variables
can be set for the following effects:

set to highlight commands only available in Quake: >
	:let quake_is_quake1 = 1

set to highlight commands only available in Quake 2: >
	:let quake_is_quake2 = 1

set to highlight commands only available in Quake 3 Arena: >
	:let quake_is_quake3 = 1

Any combination of these three variables is legal, but might highlight more
commands than are actually available to you by the game.


READLINE				*readline.vim* *ft-readline-syntax*

The readline library is primarily used by the BASH shell, which adds quite a
few commands and options to the ones already available.  To highlight these
items as well you can add the following to your |vimrc| or just type it in the
command line before loading a file with the readline syntax: >
	let readline_has_bash = 1

This will add highlighting for the commands that BASH (version 2.05a and
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*

If you notice highlighting errors while scrolling backwards, which are fixed
when redrawing with CTRL-L, try setting the "rexx_minlines" internal variable
to a larger number: >
	:let rexx_minlines = 50
This will make the syntax synchronization start 50 lines before the first
displayed line.  The default value is 10.  The disadvantage of using a larger
number is that redrawing can become slow.

Vim tries to guess what type a ".r" file is.  If it can't be detected (from
comment lines), the default is "r".  To make the default rexx add this line to
your .vimrc:  *g:filetype_r*
>
	:let g:filetype_r = "r"


RUBY						*ruby.vim* *ft-ruby-syntax*

    Ruby: Operator highlighting		|ruby_operators|
    Ruby: Whitespace errors		|ruby_space_errors|
    Ruby: Folding			|ruby_fold| |ruby_foldable_groups|
    Ruby: Reducing expensive operations	|ruby_no_expensive| |ruby_minlines|
    Ruby: Spellchecking strings		|ruby_spellcheck_strings|

						*ruby_operators*
 Ruby: Operator highlighting ~

Operators can be highlighted by defining "ruby_operators": >

	:let ruby_operators = 1
<
						*ruby_space_errors*
 Ruby: Whitespace errors ~

Whitespace errors can be highlighted by defining "ruby_space_errors": >

	:let ruby_space_errors = 1
<
This will highlight trailing whitespace and tabs preceded by a space character
as errors.  This can be refined by defining "ruby_no_trail_space_error" and
"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
spaces respectively.

					*ruby_fold* *ruby_foldable_groups*
 Ruby: Folding ~

Folding can be enabled by defining "ruby_fold": >

	:let ruby_fold = 1
<
This will set the value of 'foldmethod' to "syntax" locally to the current
buffer or window, which will enable syntax-based folding when editing Ruby
filetypes.

Default folding is rather detailed, i.e., small syntax units like "if", "do",
"%w[]" may create corresponding fold levels.

You can set "ruby_foldable_groups" to restrict which groups are foldable: >

        :let ruby_foldable_groups = 'if case %'
<
The value is a space-separated list of keywords:

    keyword       meaning ~
    --------  ------------------------------------- ~
    ALL        Most block syntax (default)
    NONE       Nothing
    if         "if" or "unless" block
    def        "def" block
    class      "class" block
    module     "module" block
    do         "do" block
    begin      "begin" block
    case       "case" block
    for        "for", "while", "until" loops
    {          Curly bracket block or hash literal
    [          Array literal
    %          Literal with "%" notation, e.g.: %w(STRING), %!STRING!
    /          Regexp
    string     String and shell command output (surrounded by ', ", `)
    :          Symbol
    #          Multiline comment
    <<         Here documents
    __END__    Source code after "__END__" directive

						*ruby_no_expensive*
 Ruby: Reducing expensive operations ~

By default, the "end" keyword is colorized according to the opening statement
of the block it closes.  While useful, this feature can be expensive; if you
experience slow redrawing (or you are on a terminal with poor color support)
you may want to turn it off by defining the "ruby_no_expensive" variable: >

	:let ruby_no_expensive = 1
<
In this case the same color will be used for all control keywords.

						*ruby_minlines*

If you do want this feature enabled, but notice highlighting errors while
scrolling backwards, which are fixed when redrawing with CTRL-L, try setting
the "ruby_minlines" variable to a value larger than 50: >

	:let ruby_minlines = 100
<
Ideally, this value should be a number of lines large enough to embrace your
largest class or module.

						*ruby_spellcheck_strings*
 Ruby: Spellchecking strings ~

Ruby syntax will perform spellchecking of strings if you define
"ruby_spellcheck_strings": >

	:let ruby_spellcheck_strings = 1
<

SCHEME						*scheme.vim* *ft-scheme-syntax*

By default only R7RS keywords are highlighted and properly indented.

scheme.vim also supports extensions of the CHICKEN Scheme->C compiler.
Define b:is_chicken or g:is_chicken, if you need them.


SDL						*sdl.vim* *ft-sdl-syntax*

The SDL highlighting probably misses a few keywords, but SDL has so many
of them it's almost impossibly to cope.

The new standard, SDL-2000, specifies that all identifiers are
case-sensitive (which was not so before), and that all keywords can be
used either completely lowercase or completely uppercase.  To have the
highlighting reflect this, you can set the following variable: >
	:let sdl_2000=1

This also sets many new keywords.  If you want to disable the old
keywords, which is probably a good idea, use: >
	:let SDL_no_96=1


The indentation is probably also incomplete, but right now I am very
satisfied with it for my own projects.


SED						*sed.vim* *ft-sed-syntax*

To make tabs stand out from regular blanks (accomplished by using Todo
highlighting on the tabs), define "highlight_sedtabs" by putting >

	:let highlight_sedtabs = 1

in the vimrc file.  (This special highlighting only applies for tabs
inside search patterns, replacement texts, addresses or text included
by an Append/Change/Insert command.)  If you enable this option, it is
also a good idea to set the tab width to one character; by doing that,
you can easily count the number of tabs in a string.

Bugs:

  The transform command (y) is treated exactly like the substitute
  command.  This means that, as far as this syntax file is concerned,
  transform accepts the same flags as substitute, which is wrong.
  (Transform accepts no flags.)  I tolerate this bug because the
  involved commands need very complex treatment (95 patterns, one for
  each plausible pattern delimiter).


SGML						*sgml.vim* *ft-sgml-syntax*

The coloring scheme for tags in the SGML file works as follows.

The <> of opening tags are colored differently than the </> of a closing tag.
This is on purpose! For opening tags the 'Function' color is used, while for
closing tags the 'Type' color is used (See syntax.vim to check how those are
defined for you)

Known tag names are colored the same way as statements in C.  Unknown tag
names are not colored which makes it easy to spot errors.

Note that the same is true for argument (or attribute) names.  Known attribute
names are colored differently than unknown ones.

Some SGML tags are used to change the rendering of text.  The following tags
are recognized by the sgml.vim syntax coloring file and change the way normal
text is shown: <varname> <emphasis> <command> <function> <literal>
<replaceable> <ulink> and <link>.

If you want to change how such text is rendered, you must redefine the
following syntax groups:

    - sgmlBold
    - sgmlBoldItalic
    - sgmlUnderline
    - sgmlItalic
    - sgmlLink for links

To make this redefinition work you must redefine them all and define the
following variable in your vimrc (this is due to the order in which the files
are read during initialization) >
   let sgml_my_rendering=1

You can also disable this rendering by adding the following line to your
vimrc file: >
   let sgml_no_rendering=1

(Adapted from the html.vim help text by Claudio Fleiner <claudio@fleiner.com>)


		*ft-posix-synax* *ft-dash-syntax*
SH		*sh.vim*  *ft-sh-syntax*  *ft-bash-syntax*  *ft-ksh-syntax*

This covers syntax highlighting for the older Unix (Bourne) sh, and newer
shells such as bash, dash, posix, and the Korn shells.

Vim attempts to determine which shell type is in use by specifying that
various filenames are of specific types: >

    ksh : .kshrc* *.ksh
    bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash
<
If none of these cases pertain, then the first line of the file is examined
(ex. looking for /bin/sh  /bin/ksh  /bin/bash).  If the first line specifies a
shelltype, then that shelltype is used.  However some files (ex. .profile) are
known to be shell files but the type is not apparent.  Furthermore, on many
systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh"
(Posix).

One may specify a global default by instantiating one of the following
variables in your <.vimrc>:

   ksh: >
	let g:is_kornshell = 1
<   posix:  (using this is the nearly the same as setting g:is_kornshell to 1) >
	let g:is_posix     = 1
<   bash: >
	let g:is_bash	   = 1
<   sh: (default) Bourne shell >
	let g:is_sh	   = 1

<   (dash users should use posix)

If there's no "#! ..." line, and the user hasn't availed himself/herself of a
default sh.vim syntax setting as just shown, then syntax/sh.vim will assume
the Bourne shell syntax.  No need to quote RFCs or market penetration
statistics in error reports, please -- just select the default version of the
sh your system uses and install the associated "let..." in your <.vimrc>.

The syntax/sh.vim file provides several levels of syntax-based folding: >

	let g:sh_fold_enabled= 0     (default, no syntax folding)
	let g:sh_fold_enabled= 1     (enable function folding)
	let g:sh_fold_enabled= 2     (enable heredoc folding)
	let g:sh_fold_enabled= 4     (enable if/do/for folding)
>
then various syntax items (ie. HereDocuments and function bodies) become
syntax-foldable (see |:syn-fold|).  You also may add these together
to get multiple types of folding: >

	let g:sh_fold_enabled= 3     (enables function and heredoc folding)

If you notice highlighting errors while scrolling backwards which are fixed
when one redraws with CTRL-L, try setting the "sh_minlines" internal variable
to a larger number.  Example: >

	let sh_minlines = 500

This will make syntax synchronization start 500 lines before the first
displayed line.  The default value is 200.  The disadvantage of using a larger
number is that redrawing can become slow.

If you don't have much to synchronize on, displaying can be very slow.	To
reduce this, the "sh_maxlines" internal variable can be set.  Example: >

	let sh_maxlines = 100
<
The default is to use the twice sh_minlines.  Set it to a smaller number to
speed up displaying.  The disadvantage is that highlight errors may appear.

syntax/sh.vim tries to flag certain problems as errors; usually things like
extra ']'s, 'done's, 'fi's, etc.  If you find the error handling problematic
for your purposes, you may suppress such error highlighting by putting
the following line in your .vimrc: >

	let g:sh_no_error= 1
<

						*sh-embed*  *sh-awk*
 Sh: EMBEDDING LANGUAGES~

You may wish to embed languages into sh.  I'll give an example courtesy of
Lorance Stinson on how to do this with awk as an example. Put the following
file into $HOME/.vim/after/syntax/sh/awkembed.vim: >

    " AWK Embedding:
    " ==============
    " Shamelessly ripped from aspperl.vim by Aaron Hope.
    if exists("b:current_syntax")
      unlet b:current_syntax
    endif
    syn include @AWKScript syntax/awk.vim
    syn region AWKScriptCode matchgroup=AWKCommand start=+[=\\]\@<!'+ skip=+\\'+ end=+'+ contains=@AWKScript contained
    syn region AWKScriptEmbedded matchgroup=AWKCommand start=+\<awk\>+ skip=+\\$+ end=+[=\\]\@<!'+me=e-1 contains=@shIdList,@shExprList2 nextgroup=AWKScriptCode
    syn cluster shCommandSubList add=AWKScriptEmbedded
    hi def link AWKCommand Type
<
This code will then let the awk code in the single quotes: >
	awk '...awk code here...'
be highlighted using the awk highlighting syntax.  Clearly this may be
extended to other languages.


SPEEDUP						*spup.vim* *ft-spup-syntax*
(AspenTech plant simulator)

The Speedup syntax file has some options:

- strict_subsections : If this variable is defined, only keywords for
  sections and subsections will be highlighted as statements but not
  other keywords (like WITHIN in the OPERATION section).

- highlight_types : Definition of this variable causes stream types
  like temperature or pressure to be highlighted as Type, not as a
  plain Identifier.  Included are the types that are usually found in
  the DECLARE section; if you defined own types, you have to include
  them in the syntax file.

- oneline_comments : this value ranges from 1 to 3 and determines the
  highlighting of # style comments.

  oneline_comments = 1 : allow normal Speedup code after an even
  number of #s.

  oneline_comments = 2 : show code starting with the second # as
  error.  This is the default setting.

  oneline_comments = 3 : show the whole line as error if it contains
  more than one #.

Since especially OPERATION sections tend to become very large due to
PRESETting variables, syncing may be critical.  If your computer is
fast enough, you can increase minlines and/or maxlines near the end of
the syntax file.


SQL						*sql.vim* *ft-sql-syntax*
				*sqlinformix.vim* *ft-sqlinformix-syntax*
				*sqlanywhere.vim* *ft-sqlanywhere-syntax*

While there is an ANSI standard for SQL, most database engines add their own
custom extensions.  Vim currently supports the Oracle and Informix dialects of
SQL.  Vim assumes "*.sql" files are Oracle SQL by default.

Vim currently has SQL support for a variety of different vendors via syntax
scripts.  You can change Vim's default from Oracle to any of the current SQL
supported types.  You can also easily alter the SQL dialect being used on a
buffer by buffer basis.

For more detailed instructions see |ft_sql.txt|.


TCSH						*tcsh.vim* *ft-tcsh-syntax*

This covers the shell named "tcsh".  It is a superset of csh.  See |csh.vim|
for how the filetype is detected.

Tcsh does not allow \" in strings unless the "backslash_quote" shell variable
is set.  If you want VIM to assume that no backslash quote constructs exist add
this line to your .vimrc: >

	:let tcsh_backslash_quote = 0

If you notice highlighting errors while scrolling backwards, which are fixed
when redrawing with CTRL-L, try setting the "tcsh_minlines" internal variable
to a larger number: >

	:let tcsh_minlines = 1000

This will make the syntax synchronization start 1000 lines before the first
displayed line.  If you set "tcsh_minlines" to "fromstart", then
synchronization is done from the start of the file. The default value for
tcsh_minlines is 100.  The disadvantage of using a larger number is that
redrawing can become slow.


TEX				*tex.vim* *ft-tex-syntax* *latex-syntax*

			Tex Contents~
	Tex: Want Syntax Folding?			|tex-folding|
	Tex: No Spell Checking Wanted			|g:tex_nospell|
	Tex: Don't Want Spell Checking In Comments?	|tex-nospell|
	Tex: Want Spell Checking in Verbatim Zones?	|tex-verb|
	Tex: Run-on Comments or MathZones		|tex-runon|
	Tex: Slow Syntax Highlighting?			|tex-slow|
	Tex: Want To Highlight More Commands?		|tex-morecommands|
	Tex: Excessive Error Highlighting?		|tex-error|
	Tex: Need a new Math Group?			|tex-math|
	Tex: Starting a New Style?			|tex-style|
	Tex: Taking Advantage of Conceal Mode		|tex-conceal|
	Tex: Selective Conceal Mode			|g:tex_conceal|
	Tex: Controlling iskeyword			|g:tex_isk|
	Tex: Fine Subscript and Superscript Control	|tex-supersub|

				*tex-folding* *g:tex_fold_enabled*
 Tex: Want Syntax Folding? ~

As of version 28 of <syntax/tex.vim>, syntax-based folding of parts, chapters,
sections, subsections, etc are supported.  Put >
	let g:tex_fold_enabled=1
in your <.vimrc>, and :set fdm=syntax.  I suggest doing the latter via a
modeline at the end of your LaTeX file: >
	% vim: fdm=syntax
If your system becomes too slow, then you might wish to look into >
	https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7
<
						*g:tex_nospell*
 Tex: No Spell Checking Wanted~

If you don't want spell checking anywhere in your LaTeX document, put >
	let g:tex_nospell=1
into your .vimrc.  If you merely wish to suppress spell checking inside
comments only, see |g:tex_comment_nospell|.

				*tex-nospell* *g:tex_comment_nospell*
 Tex: Don't Want Spell Checking In Comments? ~

Some folks like to include things like source code in comments and so would
prefer that spell checking be disabled in comments in LaTeX files.  To do
this, put the following in your <.vimrc>: >
      let g:tex_comment_nospell= 1
If you want to suppress spell checking everywhere inside your LaTeX document,
see |g:tex_nospell|.

				*tex-verb* *g:tex_verbspell*
 Tex: Want Spell Checking in Verbatim Zones?~

Often verbatim regions are used for things like source code; seldom does
one want source code spell-checked.  However, for those of you who do
want your verbatim zones spell-checked, put the following in your <.vimrc>: >
	let g:tex_verbspell= 1
<
					*tex-runon* *tex-stopzone*
 Tex: Run-on Comments or MathZones ~

The <syntax/tex.vim> highlighting supports TeX, LaTeX, and some AmsTeX.  The
highlighting supports three primary zones/regions: normal, texZone, and
texMathZone.  Although considerable effort has been made to have these zones
terminate properly, zones delineated by $..$ and $$..$$ cannot be synchronized
as there's no difference between start and end patterns.  Consequently, a
special "TeX comment" has been provided >
	%stopzone
which will forcibly terminate the highlighting of either a texZone or a
texMathZone.

					*tex-slow* *tex-sync*
 Tex: Slow Syntax Highlighting? ~

If you have a slow computer, you may wish to reduce the values for >
	:syn sync maxlines=200
	:syn sync minlines=50
(especially the latter).  If your computer is fast, you may wish to
increase them.	This primarily affects synchronizing (i.e. just what group,
if any, is the text at the top of the screen supposed to be in?).

Another cause of slow highlighting is due to syntax-driven folding; see
|tex-folding| for a way around this.

					*g:tex_fast*

Finally, if syntax highlighting is still too slow, you may set >

	:let g:tex_fast= ""

in your .vimrc.  Used this way, the g:tex_fast variable causes the syntax
highlighting script to avoid defining any regions and associated
synchronization.  The result will be much faster syntax highlighting; the
price: you will no longer have as much highlighting or any syntax-based
folding, and you will be missing syntax-based error checking.

You may decide that some syntax is acceptable; you may use the following table
selectively to enable just some syntax highlighting: >

    b : allow bold and italic syntax
    c : allow texComment syntax
    m : allow texMatcher syntax (ie. {...} and [...])
    M : allow texMath syntax
    p : allow parts, chapter, section, etc syntax
    r : allow texRefZone syntax (nocite, bibliography, label, pageref, eqref)
    s : allow superscript/subscript regions
    S : allow texStyle syntax
    v : allow verbatim syntax
    V : allow texNewEnv and texNewCmd syntax
<
As an example, let g:tex_fast= "M" will allow math-associated highlighting
but suppress all the other region-based syntax highlighting.
(also see: |g:tex_conceal| and |tex-supersub|)

					*tex-morecommands* *tex-package*
 Tex: Want To Highlight More Commands? ~

LaTeX is a programmable language, and so there are thousands of packages full
of specialized LaTeX commands, syntax, and fonts.  If you're using such a
package you'll often wish that the distributed syntax/tex.vim would support
it.  However, clearly this is impractical.  So please consider using the
techniques in |mysyntaxfile-add| to extend or modify the highlighting provided
by syntax/tex.vim.  Please consider uploading any extensions that you write,
which typically would go in $HOME/after/syntax/tex/[pkgname].vim, to
http://vim.sf.net/.

					*tex-error* *g:tex_no_error*
 Tex: Excessive Error Highlighting? ~

The <tex.vim> supports lexical error checking of various sorts.  Thus,
although the error checking is ofttimes very useful, it can indicate
errors where none actually are.  If this proves to be a problem for you,
you may put in your <.vimrc> the following statement: >
	let g:tex_no_error=1
and all error checking by <syntax/tex.vim> will be suppressed.

								*tex-math*
 Tex: Need a new Math Group? ~

If you want to include a new math group in your LaTeX, the following
code shows you an example as to how you might do so: >
	call TexNewMathZone(sfx,mathzone,starform)
You'll want to provide the new math group with a unique suffix
(currently, A-L and V-Z are taken by <syntax/tex.vim> itself).
As an example, consider how eqnarray is set up by <syntax/tex.vim>: >
	call TexNewMathZone("D","eqnarray",1)
You'll need to change "mathzone" to the name of your new math group,
and then to the call to it in .vim/after/syntax/tex.vim.
The "starform" variable, if true, implies that your new math group
has a starred form (ie. eqnarray*).

					*tex-style* *b:tex_stylish*
 Tex: Starting a New Style? ~

One may use "\makeatletter" in *.tex files, thereby making the use of "@" in
commands available.  However, since the *.tex file doesn't have one of the
following suffices: sty cls clo dtx ltx, the syntax highlighting will flag
such use of @ as an error.  To solve this: >

	:let b:tex_stylish = 1
	:set ft=tex

Putting "let g:tex_stylish=1" into your <.vimrc> will make <syntax/tex.vim>
always accept such use of @.

					*tex-cchar* *tex-cole* *tex-conceal*
 Tex: Taking Advantage of Conceal Mode~

If you have |'conceallevel'| set to 2 and if your encoding is utf-8, then a
number of character sequences can be translated into appropriate utf-8 glyphs,
including various accented characters, Greek characters in MathZones, and
superscripts and subscripts in MathZones.  Not all characters can be made into
superscripts or subscripts; the constraint is due to what utf-8 supports.
In fact, only a few characters are supported as subscripts.

One way to use this is to have vertically split windows (see |CTRL-W_v|); one
with |'conceallevel'| at 0 and the other at 2; and both using |'scrollbind'|.

					*g:tex_conceal*
 Tex: Selective Conceal Mode~

You may selectively use conceal mode by setting g:tex_conceal in your
<.vimrc>.  By default, g:tex_conceal is set to "admgs" to enable concealment
for the following sets of characters: >

	a = accents/ligatures
	b = bold and italic
	d = delimiters
	m = math symbols
	g = Greek
	s = superscripts/subscripts
<
By leaving one or more of these out, the associated conceal-character
substitution will not be made.

						*g:tex_isk* *g:tex_stylish*
 Tex: Controlling iskeyword~

Normally, LaTeX keywords support 0-9, a-z, A-z, and 192-255 only. Latex
keywords don't support the underscore - except when in *.sty files.  The
syntax highlighting script handles this with the following logic:

	* If g:tex_stylish exists and is 1
		then the file will be treated as a "sty" file, so the "_"
		will be allowed as part of keywords
		(regardless of g:tex_isk)
	* Else if the file's suffix is sty, cls, clo, dtx, or ltx,
		then the file will be treated as a "sty" file, so the "_"
		will be allowed as part of keywords
		(regardless of g:tex_isk)

	* If g:tex_isk exists, then it will be used for the local 'iskeyword'
	* Else the local 'iskeyword' will be set to 48-57,a-z,A-Z,192-255

			*tex-supersub* *g:tex_superscripts* *g:tex_subscripts*
 Tex: Fine Subscript and Superscript Control~

	See |tex-conceal| for how to enable concealed character replacement.

	See |g:tex_conceal| for selectively concealing accents, bold/italic,
	math, Greek, and superscripts/subscripts.

	One may exert fine control over which superscripts and subscripts one
	wants syntax-based concealment for (see |:syn-cchar|).  Since not all
	fonts support all characters, one may override the
	concealed-replacement lists; by default these lists are given by: >

	    let g:tex_superscripts= "[0-9a-zA-W.,:;+-<>/()=]"
	    let g:tex_subscripts= "[0-9aehijklmnoprstuvx,+-/().]"
<
	For example, I use Luxi Mono Bold; it doesn't support subscript
	characters for "hklmnpst", so I put >
		let g:tex_subscripts= "[0-9aeijoruvx,+-/().]"
<	in ~/.vim/ftplugin/tex/tex.vim in order to avoid having inscrutable
	utf-8 glyphs appear.


TF						*tf.vim* *ft-tf-syntax*

There is one option for the tf syntax highlighting.

For syncing, minlines defaults to 100.	If you prefer another value, you can
set "tf_minlines" to the value you desire.  Example: >

	:let tf_minlines = your choice
<
VIM			*vim.vim*		*ft-vim-syntax*
			*g:vimsyn_minlines*	*g:vimsyn_maxlines*
There is a trade-off between more accurate syntax highlighting versus screen
updating speed.  To improve accuracy, you may wish to increase the
g:vimsyn_minlines variable.  The g:vimsyn_maxlines variable may be used to
improve screen updating rates (see |:syn-sync| for more on this). >

	g:vimsyn_minlines : used to set synchronization minlines
	g:vimsyn_maxlines : used to set synchronization maxlines
<
	(g:vim_minlines and g:vim_maxlines are deprecated variants of
	these two options)

						*g:vimsyn_embed*
The g:vimsyn_embed option allows users to select what, if any, types of
embedded script highlighting they wish to have. >

   g:vimsyn_embed == 0   : don't support any embedded scripts
   g:vimsyn_embed =~ 'l' : support embedded lua
   g:vimsyn_embed =~ 'm' : support embedded mzscheme
   g:vimsyn_embed =~ 'p' : support embedded perl
   g:vimsyn_embed =~ 'P' : support embedded python
   g:vimsyn_embed =~ 'r' : support embedded ruby
   g:vimsyn_embed =~ 't' : support embedded tcl
<
By default, g:vimsyn_embed is a string supporting interpreters that your vim
itself supports.  Concatenate multiple characters to support multiple types
of embedded interpreters; ie. g:vimsyn_embed= "mp" supports embedded mzscheme
and embedded perl.
						*g:vimsyn_folding*

Some folding is now supported with syntax/vim.vim: >

   g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding
   g:vimsyn_folding =~ 'a' : augroups
   g:vimsyn_folding =~ 'f' : fold functions
   g:vimsyn_folding =~ 'l' : fold lua      script
   g:vimsyn_folding =~ 'm' : fold mzscheme script
   g:vimsyn_folding =~ 'p' : fold perl     script
   g:vimsyn_folding =~ 'P' : fold python   script
   g:vimsyn_folding =~ 'r' : fold ruby     script
   g:vimsyn_folding =~ 't' : fold tcl      script
<
							*g:vimsyn_noerror*
Not all error highlighting that syntax/vim.vim does may be correct; Vim script
is a difficult language to highlight correctly.  A way to suppress error
highlighting is to put the following line in your |vimrc|: >

	let g:vimsyn_noerror = 1
<


XF86CONFIG				*xf86conf.vim* *ft-xf86conf-syntax*

The syntax of XF86Config file differs in XFree86 v3.x and v4.x.  Both
variants are supported.  Automatic detection is used, but is far from perfect.
You may need to specify the version manually.  Set the variable
xf86conf_xfree86_version to 3 or 4 according to your XFree86 version in
your .vimrc.  Example: >
	:let xf86conf_xfree86_version=3
When using a mix of versions, set the b:xf86conf_xfree86_version variable.

Note that spaces and underscores in option names are not supported.  Use
"SyncOnGreen" instead of "__s yn con gr_e_e_n" if you want the option name
highlighted.


XML						*xml.vim* *ft-xml-syntax*

Xml namespaces are highlighted by default.  This can be inhibited by
setting a global variable: >

	:let g:xml_namespace_transparent=1
<
							*xml-folding*
The xml syntax file provides syntax |folding| (see |:syn-fold|) between
start and end tags.  This can be turned on by >

	:let g:xml_syntax_folding = 1
	:set foldmethod=syntax

Note: syntax folding might slow down syntax highlighting significantly,
especially for large files.


X Pixmaps (XPM)					*xpm.vim* *ft-xpm-syntax*

xpm.vim creates its syntax items dynamically based upon the contents of the
XPM file.  Thus if you make changes e.g. in the color specification strings,
you have to source it again e.g. with ":set syn=xpm".

To copy a pixel with one of the colors, yank a "pixel" with "yl" and insert it
somewhere else with "P".

Do you want to draw with the mouse?  Try the following: >
   :function! GetPixel()
   :   let c = getline(".")[col(".") - 1]
   :   echo c
   :   exe "noremap <LeftMouse> <LeftMouse>r".c
   :   exe "noremap <LeftDrag>	<LeftMouse>r".c
   :endfunction
   :noremap <RightMouse> <LeftMouse>:call GetPixel()<CR>
   :set guicursor=n:hor20	   " to see the color beneath the cursor
This turns the right button into a pipette and the left button into a pen.
It will work with XPM files that have one character per pixel only and you
must not click outside of the pixel strings, but feel free to improve it.

It will look much better with a font in a quadratic cell size, e.g. for X: >
	:set guifont=-*-clean-medium-r-*-*-8-*-*-*-*-80-*


YAML						*yaml.vim* *ft-yaml-syntax*

					*g:yaml_schema* *b:yaml_schema*
A YAML schema is a combination of a set of tags and a mechanism for resolving 
non-specific tags. For user this means that YAML parser may, depending on 
plain scalar contents, treat plain scalar (which can actually be only string 
and nothing else) as a value of the other type: null, boolean, floating-point, 
integer. `g:yaml_schema` option determines according to which schema values 
will be highlighted specially. Supported schemas are

Schema		Description ~
failsafe	No additional highlighting.
json		Supports JSON-style numbers, booleans and null.
core		Supports more number, boolean and null styles.
pyyaml		In addition to core schema supports highlighting timestamps, 
		but there are some differences in what is recognized as 
		numbers and many additional boolean values not present in core 
		schema.

Default schema is `core`.

Note that schemas are not actually limited to plain scalars, but this is the 
only difference between schemas defined in YAML specification and the only 
difference defined in the syntax file.


ZSH						    *zsh.vim* *ft-zsh-syntax*

The syntax script for zsh allows for syntax-based folding: >

	:let g:zsh_fold_enable = 1

==============================================================================
5. Defining a syntax					*:syn-define* *E410*

Vim understands three types of syntax items:

1. Keyword
   It can only contain keyword characters, according to the 'iskeyword'
   option.  It cannot contain other syntax items.  It will only match with a
   complete word (there are no keyword characters before or after the match).
   The keyword "if" would match in "if(a=b)", but not in "ifdef x", because
   "(" is not a keyword character and "d" is.

2. Match
   This is a match with a single regexp pattern.

3. Region
   This starts at a match of the "start" regexp pattern and ends with a match
   with the "end" regexp pattern.  Any other text can appear in between.  A
   "skip" regexp pattern can be used to avoid matching the "end" pattern.

Several syntax ITEMs can be put into one syntax GROUP.	For a syntax group
you can give highlighting attributes.  For example, you could have an item
to define a "/* .. */" comment and another one that defines a "// .." comment,
and put them both in the "Comment" group.  You can then specify that a
"Comment" will be in bold font and have a blue color.  You are free to make
one highlight group for one syntax item, or put all items into one group.
This depends on how you want to specify your highlighting attributes.  Putting
each item in its own group results in having to specify the highlighting
for a lot of groups.

Note that a syntax group and a highlight group are similar.  For a highlight
group you will have given highlight attributes.  These attributes will be used
for the syntax group with the same name.

In case more than one item matches at the same position, the one that was
defined LAST wins.  Thus you can override previously defined syntax items by
using an item that matches the same text.  But a keyword always goes before a
match or region.  And a keyword with matching case always goes before a
keyword with ignoring case.


PRIORITY						*:syn-priority*

When several syntax items may match, these rules are used:

1. When multiple Match or Region items start in the same position, the item
   defined last has priority.
2. A Keyword has priority over Match and Region items.
3. An item that starts in an earlier position has priority over items that
   start in later positions.


DEFINING CASE						*:syn-case* *E390*

:sy[ntax] case [match | ignore]
	This defines if the following ":syntax" commands will work with
	matching case, when using "match", or with ignoring case, when using
	"ignore".  Note that any items before this are not affected, and all
	items until the next ":syntax case" command are affected.

:sy[ntax] case
	Show either "syntax case match" or "syntax case ignore" (translated).

SPELL CHECKING						*:syn-spell*

:sy[ntax] spell [toplevel | notoplevel | default]
	This defines where spell checking is to be done for text that is not
	in a syntax item:

	toplevel:	Text is spell checked.
	notoplevel:	Text is not spell checked.
	default:	When there is a @Spell cluster no spell checking.

	For text in syntax items use the @Spell and @NoSpell clusters
	|spell-syntax|.  When there is no @Spell and no @NoSpell cluster then
	spell checking is done for "default" and "toplevel".

	To activate spell checking the 'spell' option must be set.

:sy[ntax] spell
	Show either "syntax spell toplevel", "syntax spell notoplevel" or
	"syntax spell default" (translated).


SYNTAX ISKEYWORD SETTING				*:syn-iskeyword*

:sy[ntax] iskeyword [clear | {option}]
	This defines the keyword characters.  It's like the 'iskeyword' option
	for but only applies to syntax highlighting.

	clear:		Syntax specific iskeyword setting is disabled and the
			buffer-local 'iskeyword' setting is used.
	{option}        Set the syntax 'iskeyword' option to a new value. 

	Example: >
  :syntax iskeyword @,48-57,192-255,$,_
<
	This would set the syntax specific iskeyword option to include all
	alphabetic characters, plus the numeric characters, all accented
	characters and also includes the "_" and the "$".

	If no argument is given, the current value will be output.

	Setting this option influences what |/\k| matches in syntax patterns
	and also determines where |:syn-keyword| will be checked for a new
	match.

	It is recommended when writing syntax files, to use this command to
	set the correct value for the specific syntax language and not change
	the 'iskeyword' option.

DEFINING KEYWORDS					*:syn-keyword*

:sy[ntax] keyword {group-name} [{options}] {keyword} .. [{options}]

	This defines a number of keywords.

	{group-name}	Is a syntax group name such as "Comment".
	[{options}]	See |:syn-arguments| below.
	{keyword} ..	Is a list of keywords which are part of this group.

	Example: >
  :syntax keyword   Type   int long char
<
	The {options} can be given anywhere in the line.  They will apply to
	all keywords given, also for options that come after a keyword.
	These examples do exactly the same: >
  :syntax keyword   Type   contained int long char
  :syntax keyword   Type   int long contained char
  :syntax keyword   Type   int long char contained
<								*E789* *E890*
	When you have a keyword with an optional tail, like Ex commands in
	Vim, you can put the optional characters inside [], to define all the
	variations at once: >
  :syntax keyword   vimCommand	 ab[breviate] n[ext]
<
	Don't forget that a keyword can only be recognized if all the
	characters are included in the 'iskeyword' option.  If one character
	isn't, the keyword will never be recognized.
	Multi-byte characters can also be used.  These do not have to be in
	'iskeyword'.
	See |:syn-iskeyword| for defining syntax specific iskeyword settings.

	A keyword always has higher priority than a match or region, the
	keyword is used if more than one item matches.	Keywords do not nest
	and a keyword can't contain anything else.

	Note that when you have a keyword that is the same as an option (even
	one that isn't allowed here), you can not use it.  Use a match
	instead.

	The maximum length of a keyword is 80 characters.

	The same keyword can be defined multiple times, when its containment
	differs.  For example, you can define the keyword once not contained
	and use one highlight group, and once contained, and use a different
	highlight group.  Example: >
  :syn keyword vimCommand tag
  :syn keyword vimSetting contained tag
<	When finding "tag" outside of any syntax item, the "vimCommand"
	highlight group is used.  When finding "tag" in a syntax item that
	contains "vimSetting", the "vimSetting" group is used.


DEFINING MATCHES					*:syn-match*

:sy[ntax] match {group-name} [{options}]
		[excludenl]
		[keepend]
		{pattern}
		[{options}]

	This defines one match.

	{group-name}		A syntax group name such as "Comment".
	[{options}]		See |:syn-arguments| below.
	[excludenl]		Don't make a pattern with the end-of-line "$"
				extend a containing match or region.  Must be
				given before the pattern. |:syn-excludenl|
	keepend			Don't allow contained matches to go past a
				match with the end pattern.  See
				|:syn-keepend|.
	{pattern}		The search pattern that defines the match.
				See |:syn-pattern| below.
				Note that the pattern may match more than one
				line, which makes the match depend on where
				Vim starts searching for the pattern.  You
				need to make sure syncing takes care of this.

	Example (match a character constant): >
  :syntax match Character /'.'/hs=s+1,he=e-1
<

DEFINING REGIONS	*:syn-region* *:syn-start* *:syn-skip* *:syn-end*
							*E398* *E399*
:sy[ntax] region {group-name} [{options}]
		[matchgroup={group-name}]
		[keepend]
		[extend]
		[excludenl]
		start={start_pattern} ..
		[skip={skip_pattern}]
		end={end_pattern} ..
		[{options}]

	This defines one region.  It may span several lines.

	{group-name}		A syntax group name such as "Comment".
	[{options}]		See |:syn-arguments| below.
	[matchgroup={group-name}]  The syntax group to use for the following
				start or end pattern matches only.  Not used
				for the text in between the matched start and
				end patterns.  Use NONE to reset to not using
				a different group for the start or end match.
				See |:syn-matchgroup|.
	keepend			Don't allow contained matches to go past a
				match with the end pattern.  See
				|:syn-keepend|.
	extend			Override a "keepend" for an item this region
				is contained in.  See |:syn-extend|.
	excludenl		Don't make a pattern with the end-of-line "$"
				extend a containing match or item.  Only
				useful for end patterns.  Must be given before
				the patterns it applies to. |:syn-excludenl|
	start={start_pattern}	The search pattern that defines the start of
				the region.  See |:syn-pattern| below.
	skip={skip_pattern}	The search pattern that defines text inside
				the region where not to look for the end
				pattern.  See |:syn-pattern| below.
	end={end_pattern}	The search pattern that defines the end of
				the region.  See |:syn-pattern| below.

	Example: >
  :syntax region String   start=+"+  skip=+\\"+  end=+"+
<
	The start/skip/end patterns and the options can be given in any order.
	There can be zero or one skip pattern.	There must be one or more
	start and end patterns.  This means that you can omit the skip
	pattern, but you must give at least one start and one end pattern.  It
	is allowed to have white space before and after the equal sign
	(although it mostly looks better without white space).

	When more than one start pattern is given, a match with one of these
	is sufficient.	This means there is an OR relation between the start
	patterns.  The last one that matches is used.  The same is true for
	the end patterns.

	The search for the end pattern starts right after the start pattern.
	Offsets are not used for this.	This implies that the match for the
	end pattern will never overlap with the start pattern.

	The skip and end pattern can match across line breaks, but since the
	search for the pattern can start in any line it often does not do what
	you want.  The skip pattern doesn't avoid a match of an end pattern in
	the next line.	Use single-line patterns to avoid trouble.

	Note: The decision to start a region is only based on a matching start
	pattern.  There is no check for a matching end pattern.  This does NOT
	work: >
		:syn region First  start="("  end=":"
		:syn region Second start="("  end=";"
<	The Second always matches before the First (last defined pattern has
	higher priority).  The Second region then continues until the next
	';', no matter if there is a ':' before it.  Using a match does work: >
		:syn match First  "(\_.\{-}:"
		:syn match Second "(\_.\{-};"
<	This pattern matches any character or line break with "\_." and
	repeats that with "\{-}" (repeat as few as possible).

							*:syn-keepend*
	By default, a contained match can obscure a match for the end pattern.
	This is useful for nesting.  For example, a region that starts with
	"{" and ends with "}", can contain another region.  An encountered "}"
	will then end the contained region, but not the outer region:
	    {		starts outer "{}" region
		{	starts contained "{}" region
		}	ends contained "{}" region
	    }		ends outer "{} region
	If you don't want this, the "keepend" argument will make the matching
	of an end pattern of the outer region also end any contained item.
	This makes it impossible to nest the same region, but allows for
	contained items to highlight parts of the end pattern, without causing
	that to skip the match with the end pattern.  Example: >
  :syn match  vimComment +"[^"]\+$+
  :syn region vimCommand start="set" end="$" contains=vimComment keepend
<	The "keepend" makes the vimCommand always end at the end of the line,
	even though the contained vimComment includes a match with the <EOL>.

	When "keepend" is not used, a match with an end pattern is retried
	after each contained match.  When "keepend" is included, the first
	encountered match with an end pattern is used, truncating any
	contained matches.
							*:syn-extend*
	The "keepend" behavior can be changed by using the "extend" argument.
	When an item with "extend" is contained in an item that uses
	"keepend", the "keepend" is ignored and the containing region will be
	extended.
	This can be used to have some contained items extend a region while
	others don't.  Example: >

   :syn region htmlRef start=+<a>+ end=+</a>+ keepend contains=htmlItem,htmlScript
   :syn match htmlItem +<[^>]*>+ contained
   :syn region htmlScript start=+<script+ end=+</script[^>]*>+ contained extend

<	Here the htmlItem item does not make the htmlRef item continue
	further, it is only used to highlight the <> items.  The htmlScript
	item does extend the htmlRef item.

	Another example: >
   :syn region xmlFold start="<a>" end="</a>" fold transparent keepend extend
<	This defines a region with "keepend", so that its end cannot be
	changed by contained items, like when the "</a>" is matched to
	highlight it differently.  But when the xmlFold region is nested (it
	includes itself), the "extend" applies, so that the "</a>" of a nested
	region only ends that region, and not the one it is contained in.

							*:syn-excludenl*
	When a pattern for a match or end pattern of a region includes a '$'
	to match the end-of-line, it will make a region item that it is
	contained in continue on the next line.  For example, a match with
	"\\$" (backslash at the end of the line) can make a region continue
	that would normally stop at the end of the line.  This is the default
	behavior.  If this is not wanted, there are two ways to avoid it:
	1. Use "keepend" for the containing item.  This will keep all
	   contained matches from extending the match or region.  It can be
	   used when all contained items must not extend the containing item.
	2. Use "excludenl" in the contained item.  This will keep that match
	   from extending the containing match or region.  It can be used if
	   only some contained items must not extend the containing item.
	   "excludenl" must be given before the pattern it applies to.

							*:syn-matchgroup*
	"matchgroup" can be used to highlight the start and/or end pattern
	differently than the body of the region.  Example: >
  :syntax region String matchgroup=Quote start=+"+  skip=+\\"+	end=+"+
<	This will highlight the quotes with the "Quote" group, and the text in
	between with the "String" group.
	The "matchgroup" is used for all start and end patterns that follow,
	until the next "matchgroup".  Use "matchgroup=NONE" to go back to not
	using a matchgroup.

	In a start or end pattern that is highlighted with "matchgroup" the
	contained items of the region are not used.  This can be used to avoid
	that a contained item matches in the start or end pattern match.  When
	using "transparent", this does not apply to a start or end pattern
	match that is highlighted with "matchgroup".

	Here is an example, which highlights three levels of parentheses in
	different colors: >
   :sy region par1 matchgroup=par1 start=/(/ end=/)/ contains=par2
   :sy region par2 matchgroup=par2 start=/(/ end=/)/ contains=par3 contained
   :sy region par3 matchgroup=par3 start=/(/ end=/)/ contains=par1 contained
   :hi par1 ctermfg=red guifg=red
   :hi par2 ctermfg=blue guifg=blue
   :hi par3 ctermfg=darkgreen guifg=darkgreen
<
						*E849*
The maximum number of syntax groups is 19999.

==============================================================================
6. :syntax arguments					*:syn-arguments*

The :syntax commands that define syntax items take a number of arguments.
The common ones are explained here.  The arguments may be given in any order
and may be mixed with patterns.

Not all commands accept all arguments.	This table shows which arguments
can not be used for all commands:
							*E395*
		    contains  oneline	fold  display  extend concealends~
:syntax keyword		 -	 -	 -	 -	 -      -
:syntax match		yes	 -	yes	yes	yes     -
:syntax region		yes	yes	yes	yes	yes    yes

These arguments can be used for all three commands:
	conceal
	cchar
	contained
	containedin
	nextgroup
	transparent
	skipwhite
	skipnl
	skipempty

conceal						*conceal* *:syn-conceal*

When the "conceal" argument is given, the item is marked as concealable.
Whether or not it is actually concealed depends on the value of the
'conceallevel' option.  The 'concealcursor' option is used to decide whether
concealable items in the current line are displayed unconcealed to be able to
edit the line.
Another way to conceal text is with |matchadd()|.

concealends						*:syn-concealends*

When the "concealends" argument is given, the start and end matches of
the region, but not the contents of the region, are marked as concealable.
Whether or not they are actually concealed depends on the setting on the
'conceallevel' option. The ends of a region can only be concealed separately
in this way when they have their own highlighting via "matchgroup"

cchar							*:syn-cchar*
							*E844*
The "cchar" argument defines the character shown in place of the item
when it is concealed (setting "cchar" only makes sense when the conceal
argument is given.) If "cchar" is not set then the default conceal
character defined in the 'listchars' option is used.  The character cannot be
a control character such as Tab.  Example: >
   :syntax match Entity "&amp;" conceal cchar=&
See |hl-Conceal| for highlighting.

contained						*:syn-contained*

When the "contained" argument is given, this item will not be recognized at
the top level, but only when it is mentioned in the "contains" field of
another match.	Example: >
   :syntax keyword Todo    TODO    contained
   :syntax match   Comment "//.*"  contains=Todo


display							*:syn-display*

If the "display" argument is given, this item will be skipped when the
detected highlighting will not be displayed.  This will speed up highlighting,
by skipping this item when only finding the syntax state for the text that is
to be displayed.

Generally, you can use "display" for match and region items that meet these
conditions:
- The item does not continue past the end of a line.  Example for C: A region
  for a "/*" comment can't contain "display", because it continues on the next
  line.
- The item does not contain items that continue past the end of the line or
  make it continue on the next line.
- The item does not change the size of any item it is contained in.  Example
  for C: A match with "\\$" in a preprocessor match can't have "display",
  because it may make that preprocessor match shorter.
- The item does not allow other items to match that didn't match otherwise,
  and that item may extend the match too far.  Example for C: A match for a
  "//" comment can't use "display", because a "/*" inside that comment would
  match then and start a comment which extends past the end of the line.

Examples, for the C language, where "display" can be used:
- match with a number
- match with a label


transparent						*:syn-transparent*

If the "transparent" argument is given, this item will not be highlighted
itself, but will take the highlighting of the item it is contained in.	This
is useful for syntax items that don't need any highlighting but are used
only to skip over a part of the text.

The "contains=" argument is also inherited from the item it is contained in,
unless a "contains" argument is given for the transparent item itself.	To
avoid that unwanted items are contained, use "contains=NONE".  Example, which
highlights words in strings, but makes an exception for "vim": >
	:syn match myString /'[^']*'/ contains=myWord,myVim
	:syn match myWord   /\<[a-z]*\>/ contained
	:syn match myVim    /\<vim\>/ transparent contained contains=NONE
	:hi link myString String
	:hi link myWord   Comment
Since the "myVim" match comes after "myWord" it is the preferred match (last
match in the same position overrules an earlier one).  The "transparent"
argument makes the "myVim" match use the same highlighting as "myString".  But
it does not contain anything.  If the "contains=NONE" argument would be left
out, then "myVim" would use the contains argument from myString and allow
"myWord" to be contained, which will be highlighted as a Constant.  This
happens because a contained match doesn't match inside itself in the same
position, thus the "myVim" match doesn't overrule the "myWord" match here.

When you look at the colored text, it is like looking at layers of contained
items.	The contained item is on top of the item it is contained in, thus you
see the contained item.  When a contained item is transparent, you can look
through, thus you see the item it is contained in.  In a picture:

		look from here

	    |	|   |	|   |	|
	    V	V   V	V   V	V

	       xxxx	  yyy		more contained items
	    ....................	contained item (transparent)
	=============================	first item

The 'x', 'y' and '=' represent a highlighted syntax item.  The '.' represent a
transparent group.

What you see is:

	=======xxxx=======yyy========

Thus you look through the transparent "....".


oneline							*:syn-oneline*

The "oneline" argument indicates that the region does not cross a line
boundary.  It must match completely in the current line.  However, when the
region has a contained item that does cross a line boundary, it continues on
the next line anyway.  A contained item can be used to recognize a line
continuation pattern.  But the "end" pattern must still match in the first
line, otherwise the region doesn't even start.

When the start pattern includes a "\n" to match an end-of-line, the end
pattern must be found in the same line as where the start pattern ends.  The
end pattern may also include an end-of-line.  Thus the "oneline" argument
means that the end of the start pattern and the start of the end pattern must
be within one line.  This can't be changed by a skip pattern that matches a
line break.


fold							*:syn-fold*

The "fold" argument makes the fold level increase by one for this item.
Example: >
   :syn region myFold start="{" end="}" transparent fold
   :syn sync fromstart
   :set foldmethod=syntax
This will make each {} block form one fold.

The fold will start on the line where the item starts, and end where the item
ends.  If the start and end are within the same line, there is no fold.
The 'foldnestmax' option limits the nesting of syntax folds.
{not available when Vim was compiled without |+folding| feature}


			*:syn-contains* *E405* *E406* *E407* *E408* *E409*
contains={group-name},..

The "contains" argument is followed by a list of syntax group names.  These
groups will be allowed to begin inside the item (they may extend past the
containing group's end).  This allows for recursive nesting of matches and
regions.  If there is no "contains" argument, no groups will be contained in
this item.  The group names do not need to be defined before they can be used
here.

contains=ALL
		If the only item in the contains list is "ALL", then all
		groups will be accepted inside the item.

contains=ALLBUT,{group-name},..
		If the first item in the contains list is "ALLBUT", then all
		groups will be accepted inside the item, except the ones that
		are listed.  Example: >
  :syntax region Block start="{" end="}" ... contains=ALLBUT,Function

contains=TOP
		If the first item in the contains list is "TOP", then all
		groups will be accepted that don't have the "contained"
		argument.
contains=TOP,{group-name},..
		Like "TOP", but excluding the groups that are listed.

contains=CONTAINED
		If the first item in the contains list is "CONTAINED", then
		all groups will be accepted that have the "contained"
		argument.
contains=CONTAINED,{group-name},..
		Like "CONTAINED", but excluding the groups that are
		listed.


The {group-name} in the "contains" list can be a pattern.  All group names
that match the pattern will be included (or excluded, if "ALLBUT" is used).
The pattern cannot contain white space or a ','.  Example: >
   ... contains=Comment.*,Keyw[0-3]
The matching will be done at moment the syntax command is executed.  Groups
that are defined later will not be matched.  Also, if the current syntax
command defines a new group, it is not matched.  Be careful: When putting
syntax commands in a file you can't rely on groups NOT being defined, because
the file may have been sourced before, and ":syn clear" doesn't remove the
group names.

The contained groups will also match in the start and end patterns of a
region.  If this is not wanted, the "matchgroup" argument can be used
|:syn-matchgroup|.  The "ms=" and "me=" offsets can be used to change the
region where contained items do match.	Note that this may also limit the
area that is highlighted


containedin={group-name}...				*:syn-containedin*

The "containedin" argument is followed by a list of syntax group names.  The
item will be allowed to begin inside these groups.  This works as if the
containing item has a "contains=" argument that includes this item.

The {group-name}... can be used just like for "contains", as explained above.

This is useful when adding a syntax item afterwards.  An item can be told to
be included inside an already existing item, without changing the definition
of that item.  For example, to highlight a word in a C comment after loading
the C syntax: >
	:syn keyword myword HELP containedin=cComment contained
Note that "contained" is also used, to avoid that the item matches at the top
level.

Matches for "containedin" are added to the other places where the item can
appear.  A "contains" argument may also be added as usual.  Don't forget that
keywords never contain another item, thus adding them to "containedin" won't
work.


nextgroup={group-name},..				*:syn-nextgroup*

The "nextgroup" argument is followed by a list of syntax group names,
separated by commas (just like with "contains", so you can also use patterns).

If the "nextgroup" argument is given, the mentioned syntax groups will be
tried for a match, after the match or region ends.  If none of the groups have
a match, highlighting continues normally.  If there is a match, this group
will be used, even when it is not mentioned in the "contains" field of the
current group.	This is like giving the mentioned group priority over all
other groups.  Example: >
   :syntax match  ccFoobar  "Foo.\{-}Bar"  contains=ccFoo
   :syntax match  ccFoo     "Foo"	    contained nextgroup=ccFiller
   :syntax region ccFiller  start="."  matchgroup=ccBar  end="Bar"  contained

This will highlight "Foo" and "Bar" differently, and only when there is a
"Bar" after "Foo".  In the text line below, "f" shows where ccFoo is used for
highlighting, and "bbb" where ccBar is used. >

   Foo asdfasd Bar asdf Foo asdf Bar asdf
   fff	       bbb	fff	 bbb

Note the use of ".\{-}" to skip as little as possible until the next Bar.
when ".*" would be used, the "asdf" in between "Bar" and "Foo" would be
highlighted according to the "ccFoobar" group, because the ccFooBar match
would include the first "Foo" and the last "Bar" in the line (see |pattern|).


skipwhite						*:syn-skipwhite*
skipnl							*:syn-skipnl*
skipempty						*:syn-skipempty*

These arguments are only used in combination with "nextgroup".	They can be
used to allow the next group to match after skipping some text:
	skipwhite	skip over space and tab characters
	skipnl		skip over the end of a line
	skipempty	skip over empty lines (implies a "skipnl")

When "skipwhite" is present, the white space is only skipped if there is no
next group that matches the white space.

When "skipnl" is present, the match with nextgroup may be found in the next
line.  This only happens when the current item ends at the end of the current
line!  When "skipnl" is not present, the nextgroup will only be found after
the current item in the same line.

When skipping text while looking for a next group, the matches for other
groups are ignored.  Only when no next group matches, other items are tried
for a match again.  This means that matching a next group and skipping white
space and <EOL>s has a higher priority than other items.

Example: >
  :syn match ifstart "\<if.*"	  nextgroup=ifline skipwhite skipempty
  :syn match ifline  "[^ \t].*" nextgroup=ifline skipwhite skipempty contained
  :syn match ifline  "endif"	contained
Note that the "[^ \t].*" match matches all non-white text.  Thus it would also
match "endif".	Therefore the "endif" match is put last, so that it takes
precedence.
Note that this example doesn't work for nested "if"s.  You need to add
"contains" arguments to make that work (omitted for simplicity of the
example).

IMPLICIT CONCEAL					*:syn-conceal-implicit*

:sy[ntax] conceal [on|off]
	This defines if the following ":syntax" commands will define keywords,
	matches or regions with the "conceal" flag set. After ":syn conceal
	on", all subsequent ":syn keyword", ":syn match" or ":syn region"
	defined will have the "conceal" flag set implicitly. ":syn conceal
	off" returns to the normal state where the "conceal" flag must be
	given explicitly.

:sy[ntax] conceal
	Show either "syntax conceal on" or "syntax conceal off" (translated).

==============================================================================
7. Syntax patterns				*:syn-pattern* *E401* *E402*

In the syntax commands, a pattern must be surrounded by two identical
characters.  This is like it works for the ":s" command.  The most common to
use is the double quote.  But if the pattern contains a double quote, you can
use another character that is not used in the pattern.	Examples: >
  :syntax region Comment  start="/\*"  end="\*/"
  :syntax region String   start=+"+    end=+"+	 skip=+\\"+

See |pattern| for the explanation of what a pattern is.  Syntax patterns are
always interpreted like the 'magic' option is set, no matter what the actual
value of 'magic' is.  And the patterns are interpreted like the 'l' flag is
not included in 'cpoptions'.  This was done to make syntax files portable and
independent of 'compatible' and 'magic' settings.

Try to avoid patterns that can match an empty string, such as "[a-z]*".
This slows down the highlighting a lot, because it matches everywhere.

						*:syn-pattern-offset*
The pattern can be followed by a character offset.  This can be used to
change the highlighted part, and to change the text area included in the
match or region (which only matters when trying to match other items).	Both
are relative to the matched pattern.  The character offset for a skip
pattern can be used to tell where to continue looking for an end pattern.

The offset takes the form of "{what}={offset}"
The {what} can be one of seven strings:

ms	Match Start	offset for the start of the matched text
me	Match End	offset for the end of the matched text
hs	Highlight Start	offset for where the highlighting starts
he	Highlight End	offset for where the highlighting ends
rs	Region Start	offset for where the body of a region starts
re	Region End	offset for where the body of a region ends
lc	Leading Context	offset past "leading context" of pattern

The {offset} can be:

s	start of the matched pattern
s+{nr}	start of the matched pattern plus {nr} chars to the right
s-{nr}	start of the matched pattern plus {nr} chars to the left
e	end of the matched pattern
e+{nr}	end of the matched pattern plus {nr} chars to the right
e-{nr}	end of the matched pattern plus {nr} chars to the left
{nr}	(for "lc" only): start matching {nr} chars right of the start

Examples: "ms=s+1", "hs=e-2", "lc=3".

Although all offsets are accepted after any pattern, they are not always
meaningful.  This table shows which offsets are actually used:

		    ms	 me   hs   he	rs   re	  lc ~
match item	    yes  yes  yes  yes	-    -	  yes
region item start   yes  -    yes  -	yes  -	  yes
region item skip    -	 yes  -    -	-    -	  yes
region item end     -	 yes  -    yes	-    yes  yes

Offsets can be concatenated, with a ',' in between.  Example: >
  :syn match String  /"[^"]*"/hs=s+1,he=e-1
<
    some "string" text
	  ^^^^^^		highlighted

Notes:
- There must be no white space between the pattern and the character
  offset(s).
- The highlighted area will never be outside of the matched text.
- A negative offset for an end pattern may not always work, because the end
  pattern may be detected when the highlighting should already have stopped.
- Before Vim 7.2 the offsets were counted in bytes instead of characters.
  This didn't work well for multi-byte characters, so it was changed with the
  Vim 7.2 release.
- The start of a match cannot be in a line other than where the pattern
  matched.  This doesn't work: "a\nb"ms=e.  You can make the highlighting
  start in another line, this does work: "a\nb"hs=e.

Example (match a comment but don't highlight the /* and */): >
  :syntax region Comment start="/\*"hs=e+1 end="\*/"he=s-1
<
	/* this is a comment */
	  ^^^^^^^^^^^^^^^^^^^	  highlighted

A more complicated Example: >
  :syn region Exa matchgroup=Foo start="foo"hs=s+2,rs=e+2 matchgroup=Bar end="bar"me=e-1,he=e-1,re=s-1
<
	 abcfoostringbarabc
	    mmmmmmmmmmm	    match
	      sssrrreee	    highlight start/region/end ("Foo", "Exa" and "Bar")

Leading context			*:syn-lc* *:syn-leading* *:syn-context*

Note: This is an obsolete feature, only included for backwards compatibility
with previous Vim versions.  It's now recommended to use the |/\@<=| construct
in the pattern.

The "lc" offset specifies leading context -- a part of the pattern that must
be present, but is not considered part of the match.  An offset of "lc=n" will
cause Vim to step back n columns before attempting the pattern match, allowing
characters which have already been matched in previous patterns to also be
used as leading context for this match.  This can be used, for instance, to
specify that an "escaping" character must not precede the match: >

  :syn match ZNoBackslash "[^\\]z"ms=s+1
  :syn match WNoBackslash "[^\\]w"lc=1
  :syn match Underline "_\+"
<
	  ___zzzz ___wwww
	  ^^^	  ^^^	  matches Underline
	      ^ ^	  matches ZNoBackslash
		     ^^^^ matches WNoBackslash

The "ms" offset is automatically set to the same value as the "lc" offset,
unless you set "ms" explicitly.


Multi-line patterns					*:syn-multi-line*

The patterns can include "\n" to match an end-of-line.	Mostly this works as
expected, but there are a few exceptions.

When using a start pattern with an offset, the start of the match is not
allowed to start in a following line.  The highlighting can start in a
following line though.  Using the "\zs" item also requires that the start of
the match doesn't move to another line.

The skip pattern can include the "\n", but the search for an end pattern will
continue in the first character of the next line, also when that character is
matched by the skip pattern.  This is because redrawing may start in any line
halfway a region and there is no check if the skip pattern started in a
previous line.	For example, if the skip pattern is "a\nb" and an end pattern
is "b", the end pattern does match in the second line of this: >
	 x x a
	 b x x
Generally this means that the skip pattern should not match any characters
after the "\n".


External matches					*:syn-ext-match*

These extra regular expression items are available in region patterns:

					*/\z(* */\z(\)* *E50* *E52* *E879*
    \z(\)	Marks the sub-expression as "external", meaning that it can be
		accessed from another pattern match.  Currently only usable in
		defining a syntax region start pattern.

					*/\z1* */\z2* */\z3* */\z4* */\z5*
    \z1  ...  \z9			*/\z6* */\z7* */\z8* */\z9* *E66* *E67*
		Matches the same string that was matched by the corresponding
		sub-expression in a previous start pattern match.

Sometimes the start and end patterns of a region need to share a common
sub-expression.  A common example is the "here" document in Perl and many Unix
shells.  This effect can be achieved with the "\z" special regular expression
items, which marks a sub-expression as "external", in the sense that it can be
referenced from outside the pattern in which it is defined.  The here-document
example, for instance, can be done like this: >
  :syn region hereDoc start="<<\z(\I\i*\)" end="^\z1$"

As can be seen here, the \z actually does double duty.	In the start pattern,
it marks the "\(\I\i*\)" sub-expression as external; in the end pattern, it
changes the \z1 back-reference into an external reference referring to the
first external sub-expression in the start pattern.  External references can
also be used in skip patterns: >
  :syn region foo start="start \(\I\i*\)" skip="not end \z1" end="end \z1"

Note that normal and external sub-expressions are completely orthogonal and
indexed separately; for instance, if the pattern "\z(..\)\(..\)" is applied
to the string "aabb", then \1 will refer to "bb" and \z1 will refer to "aa".
Note also that external sub-expressions cannot be accessed as back-references
within the same pattern like normal sub-expressions.  If you want to use one
sub-expression as both a normal and an external sub-expression, you can nest
the two, as in "\(\z(...\)\)".

Note that only matches within a single line can be used.  Multi-line matches
cannot be referred to.

==============================================================================
8. Syntax clusters					*:syn-cluster* *E400*

:sy[ntax] cluster {cluster-name} [contains={group-name}..]
				 [add={group-name}..]
				 [remove={group-name}..]

This command allows you to cluster a list of syntax groups together under a
single name.

	contains={group-name}..
		The cluster is set to the specified list of groups.
	add={group-name}..
		The specified groups are added to the cluster.
	remove={group-name}..
		The specified groups are removed from the cluster.

A cluster so defined may be referred to in a contains=.., containedin=..,
nextgroup=.., add=..  or remove=.. list with a "@" prefix.  You can also use
this notation to implicitly declare a cluster before specifying its contents.

Example: >
   :syntax match Thing "# [^#]\+ #" contains=@ThingMembers
   :syntax cluster ThingMembers contains=ThingMember1,ThingMember2

As the previous example suggests, modifications to a cluster are effectively
retroactive; the membership of the cluster is checked at the last minute, so
to speak: >
   :syntax keyword A aaa
   :syntax keyword B bbb
   :syntax cluster AandB contains=A
   :syntax match Stuff "( aaa bbb )" contains=@AandB
   :syntax cluster AandB add=B	  " now both keywords are matched in Stuff

This also has implications for nested clusters: >
   :syntax keyword A aaa
   :syntax keyword B bbb
   :syntax cluster SmallGroup contains=B
   :syntax cluster BigGroup contains=A,@SmallGroup
   :syntax match Stuff "( aaa bbb )" contains=@BigGroup
   :syntax cluster BigGroup remove=B	" no effect, since B isn't in BigGroup
   :syntax cluster SmallGroup remove=B	" now bbb isn't matched within Stuff
<
						*E848*
The maximum number of clusters is 9767.

==============================================================================
9. Including syntax files				*:syn-include* *E397*

It is often useful for one language's syntax file to include a syntax file for
a related language.  Depending on the exact relationship, this can be done in
two different ways:

	- If top-level syntax items in the included syntax file are to be
	  allowed at the top level in the including syntax, you can simply use
	  the |:runtime| command: >

  " In cpp.vim:
  :runtime! syntax/c.vim
  :unlet b:current_syntax

<	- If top-level syntax items in the included syntax file are to be
	  contained within a region in the including syntax, you can use the
	  ":syntax include" command:

:sy[ntax] include [@{grouplist-name}] {file-name}

	  All syntax items declared in the included file will have the
	  "contained" flag added.  In addition, if a group list is specified,
	  all top-level syntax items in the included file will be added to
	  that list. >

   " In perl.vim:
   :syntax include @Pod <sfile>:p:h/pod.vim
   :syntax region perlPOD start="^=head" end="^=cut" contains=@Pod
<
	  When {file-name} is an absolute path (starts with "/", "c:", "$VAR"
	  or "<sfile>") that file is sourced.  When it is a relative path
	  (e.g., "syntax/pod.vim") the file is searched for in 'runtimepath'.
	  All matching files are loaded.  Using a relative path is
	  recommended, because it allows a user to replace the included file
	  with his own version, without replacing the file that does the ":syn
	  include".

						*E847*
The maximum number of includes is 999.

==============================================================================
10. Synchronizing				*:syn-sync* *E403* *E404*

Vim wants to be able to start redrawing in any position in the document.  To
make this possible it needs to know the syntax state at the position where
redrawing starts.

:sy[ntax] sync [ccomment [group-name] | minlines={N} | ...]

There are four ways to synchronize:
1. Always parse from the start of the file.
   |:syn-sync-first|
2. Based on C-style comments.  Vim understands how C-comments work and can
   figure out if the current line starts inside or outside a comment.
   |:syn-sync-second|
3. Jumping back a certain number of lines and start parsing there.
   |:syn-sync-third|
4. Searching backwards in the text for a pattern to sync on.
   |:syn-sync-fourth|

				*:syn-sync-maxlines* *:syn-sync-minlines*
For the last three methods, the line range where the parsing can start is
limited by "minlines" and "maxlines".

If the "minlines={N}" argument is given, the parsing always starts at least
that many lines backwards.  This can be used if the parsing may take a few
lines before it's correct, or when it's not possible to use syncing.

If the "maxlines={N}" argument is given, the number of lines that are searched
for a comment or syncing pattern is restricted to N lines backwards (after
adding "minlines").  This is useful if you have few things to sync on and a
slow machine.  Example: >
   :syntax sync maxlines=500 ccomment
<
						*:syn-sync-linebreaks*
When using a pattern that matches multiple lines, a change in one line may
cause a pattern to no longer match in a previous line.	This means has to
start above where the change was made.	How many lines can be specified with
the "linebreaks" argument.  For example, when a pattern may include one line
break use this: >
   :syntax sync linebreaks=1
The result is that redrawing always starts at least one line before where a
change was made.  The default value for "linebreaks" is zero.  Usually the
value for "minlines" is bigger than "linebreaks".


First syncing method:			*:syn-sync-first*
>
   :syntax sync fromstart

The file will be parsed from the start.  This makes syntax highlighting
accurate, but can be slow for long files.  Vim caches previously parsed text,
so that it's only slow when parsing the text for the first time.  However,
when making changes some part of the text needs to be parsed again (worst
case: to the end of the file).

Using "fromstart" is equivalent to using "minlines" with a very large number.


Second syncing method:			*:syn-sync-second* *:syn-sync-ccomment*

For the second method, only the "ccomment" argument needs to be given.
Example: >
   :syntax sync ccomment

When Vim finds that the line where displaying starts is inside a C-style
comment, the last region syntax item with the group-name "Comment" will be
used.  This requires that there is a region with the group-name "Comment"!
An alternate group name can be specified, for example: >
   :syntax sync ccomment javaComment
This means that the last item specified with "syn region javaComment" will be
used for the detected C comment region.  This only works properly if that
region does have a start pattern "\/*" and an end pattern "*\/".

The "maxlines" argument can be used to restrict the search to a number of
lines.	The "minlines" argument can be used to at least start a number of
lines back (e.g., for when there is some construct that only takes a few
lines, but it hard to sync on).

Note: Syncing on a C comment doesn't work properly when strings are used
that cross a line and contain a "*/".  Since letting strings cross a line
is a bad programming habit (many compilers give a warning message), and the
chance of a "*/" appearing inside a comment is very small, this restriction
is hardly ever noticed.


Third syncing method:				*:syn-sync-third*

For the third method, only the "minlines={N}" argument needs to be given.
Vim will subtract {N} from the line number and start parsing there.  This
means {N} extra lines need to be parsed, which makes this method a bit slower.
Example: >
   :syntax sync minlines=50

"lines" is equivalent to "minlines" (used by older versions).


Fourth syncing method:				*:syn-sync-fourth*

The idea is to synchronize on the end of a few specific regions, called a
sync pattern.  Only regions can cross lines, so when we find the end of some
region, we might be able to know in which syntax item we are.  The search
starts in the line just above the one where redrawing starts.  From there
the search continues backwards in the file.

This works just like the non-syncing syntax items.  You can use contained
matches, nextgroup, etc.  But there are a few differences:
- Keywords cannot be used.
- The syntax items with the "sync" keyword form a completely separated group
  of syntax items.  You can't mix syncing groups and non-syncing groups.
- The matching works backwards in the buffer (line by line), instead of
  forwards.
- A line continuation pattern can be given.  It is used to decide which group
  of lines need to be searched like they were one line.  This means that the
  search for a match with the specified items starts in the first of the
  consecutive that contain the continuation pattern.
- When using "nextgroup" or "contains", this only works within one line (or
  group of continued lines).
- When using a region, it must start and end in the same line (or group of
  continued lines).  Otherwise the end is assumed to be at the end of the
  line (or group of continued lines).
- When a match with a sync pattern is found, the rest of the line (or group of
  continued lines) is searched for another match.  The last match is used.
  This is used when a line can contain both the start end the end of a region
  (e.g., in a C-comment like /* this */, the last "*/" is used).

There are two ways how a match with a sync pattern can be used:
1. Parsing for highlighting starts where redrawing starts (and where the
   search for the sync pattern started).  The syntax group that is expected
   to be valid there must be specified.  This works well when the regions
   that cross lines cannot contain other regions.
2. Parsing for highlighting continues just after the match.  The syntax group
   that is expected to be present just after the match must be specified.
   This can be used when the previous method doesn't work well.  It's much
   slower, because more text needs to be parsed.
Both types of sync patterns can be used at the same time.

Besides the sync patterns, other matches and regions can be specified, to
avoid finding unwanted matches.

[The reason that the sync patterns are given separately, is that mostly the
search for the sync point can be much simpler than figuring out the
highlighting.  The reduced number of patterns means it will go (much)
faster.]

					    *syn-sync-grouphere* *E393* *E394*
    :syntax sync match {sync-group-name} grouphere {group-name} "pattern" ..

	Define a match that is used for syncing.  {group-name} is the
	name of a syntax group that follows just after the match.  Parsing
	of the text for highlighting starts just after the match.  A region
	must exist for this {group-name}.  The first one defined will be used.
	"NONE" can be used for when there is no syntax group after the match.

						*syn-sync-groupthere*
    :syntax sync match {sync-group-name} groupthere {group-name} "pattern" ..

	Like "grouphere", but {group-name} is the name of a syntax group that
	is to be used at the start of the line where searching for the sync
	point started.	The text between the match and the start of the sync
	pattern searching is assumed not to change the syntax highlighting.
	For example, in C you could search backwards for "/*" and "*/".  If
	"/*" is found first, you know that you are inside a comment, so the
	"groupthere" is "cComment".  If "*/" is found first, you know that you
	are not in a comment, so the "groupthere" is "NONE".  (in practice
	it's a bit more complicated, because the "/*" and "*/" could appear
	inside a string.  That's left as an exercise to the reader...).

    :syntax sync match ..
    :syntax sync region ..

	Without a "groupthere" argument.  Define a region or match that is
	skipped while searching for a sync point.

						*syn-sync-linecont*
    :syntax sync linecont {pattern}

	When {pattern} matches in a line, it is considered to continue in
	the next line.	This means that the search for a sync point will
	consider the lines to be concatenated.

If the "maxlines={N}" argument is given too, the number of lines that are
searched for a match is restricted to N.  This is useful if you have very
few things to sync on and a slow machine.  Example: >
   :syntax sync maxlines=100

You can clear all sync settings with: >
   :syntax sync clear

You can clear specific sync patterns with: >
   :syntax sync clear {sync-group-name} ..

==============================================================================
11. Listing syntax items		*:syntax* *:sy* *:syn* *:syn-list*

This command lists all the syntax items: >

    :sy[ntax] [list]

To show the syntax items for one syntax group: >

    :sy[ntax] list {group-name}

To list the syntax groups in one cluster:			*E392*	 >

    :sy[ntax] list @{cluster-name}

See above for other arguments for the ":syntax" command.

Note that the ":syntax" command can be abbreviated to ":sy", although ":syn"
is mostly used, because it looks better.

==============================================================================
12. Highlight command			*:highlight* *:hi* *E28* *E411* *E415*

There are three types of highlight groups:
- The ones used for specific languages.  For these the name starts with the
  name of the language.  Many of these don't have any attributes, but are
  linked to a group of the second type.
- The ones used for all syntax languages.
- The ones used for the 'highlight' option.
							*hitest.vim*
You can see all the groups currently active with this command: >
    :so $VIMRUNTIME/syntax/hitest.vim
This will open a new window containing all highlight group names, displayed
in their own color.

						*:colo* *:colorscheme* *E185*
:colo[rscheme]		Output the name of the currently active color scheme.
			This is basically the same as >
				:echo g:colors_name
<			In case g:colors_name has not been defined :colo will
			output "default".  When compiled without the |+eval|
			feature it will output "unknown".

:colo[rscheme] {name}	Load color scheme {name}.  This searches 'runtimepath'
			for the file "colors/{name}.vim".  The first one that
			is found is loaded.
			Also searches all plugins in 'packpath', first below
			"start" and then under "opt".

			Doesn't work recursively, thus you can't use
			":colorscheme" in a color scheme script.

			To customize a colorscheme use another name, e.g.
			"~/.vim/colors/mine.vim", and use `:runtime` to load
			the original colorscheme: >
				runtime colors/evening.vim
				hi Statement ctermfg=Blue guifg=Blue

<			After the color scheme has been loaded the
			|ColorScheme| autocommand event is triggered.
			For info about writing a colorscheme file: >
				:edit $VIMRUNTIME/colors/README.txt

:hi[ghlight]		List all the current highlight groups that have
			attributes set.

:hi[ghlight] {group-name}
			List one highlight group.

:hi[ghlight] clear	Reset all highlighting to the defaults.  Removes all
			highlighting for groups added by the user!
			Uses the current value of 'background' to decide which
			default colors to use.

:hi[ghlight] clear {group-name}
:hi[ghlight] {group-name} NONE
			Disable the highlighting for one highlight group.  It
			is _not_ set back to the default colors.

:hi[ghlight] [default] {group-name} {key}={arg} ..
			Add a highlight group, or change the highlighting for
			an existing group.
			See |highlight-args| for the {key}={arg} arguments.
			See |:highlight-default| for the optional [default]
			argument.

Normally a highlight group is added once when starting up.  This sets the
default values for the highlighting.  After that, you can use additional
highlight commands to change the arguments that you want to set to non-default
values.  The value "NONE" can be used to switch the value off or go back to
the default value.

A simple way to change colors is with the |:colorscheme| command.  This loads
a file with ":highlight" commands such as this: >

   :hi Comment	gui=bold

Note that all settings that are not included remain the same, only the
specified field is used, and settings are merged with previous ones.  So, the
result is like this single command has been used: >
   :hi Comment	term=bold ctermfg=Cyan guifg=#80a0ff gui=bold
<
							*:highlight-verbose*
When listing a highlight group and 'verbose' is non-zero, the listing will
also tell where it was last set.  Example: >
	:verbose hi Comment
<	Comment        xxx term=bold ctermfg=4 guifg=Blue ~
	   Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim ~

When ":hi clear" is used then the script where this command is used will be
mentioned for the default values. See |:verbose-cmd| for more information.

					*highlight-args* *E416* *E417* *E423*
There are three types of terminals for highlighting:
term	a normal terminal (vt100, xterm)
cterm	a color terminal (MS-DOS console, color-xterm, these have the "Co"
	termcap entry)
gui	the GUI

For each type the highlighting can be given.  This makes it possible to use
the same syntax file on all terminals, and use the optimal highlighting.

1. highlight arguments for normal terminals

					*bold* *underline* *undercurl*
					*inverse* *italic* *standout*
					*nocombine* *strikethrough*
term={attr-list}			*attr-list* *highlight-term* *E418*
	attr-list is a comma separated list (without spaces) of the
	following items (in any order):
		bold
		underline
		undercurl	not always available
		strikethrough	not always available
		reverse
		inverse		same as reverse
		italic
		standout
		nocombine	override attributes instead of combining them
		NONE		no attributes used (used to reset it)

	Note that "bold" can be used here and by using a bold font.  They
	have the same effect.
	"undercurl" is a curly underline.  When "undercurl" is not possible
	then "underline" is used.  In general "undercurl" and "strikethrough"
	is only available in the GUI.  The color is set with |highlight-guisp|.

start={term-list}				*highlight-start* *E422*
stop={term-list}				*term-list* *highlight-stop*
	These lists of terminal codes can be used to get
	non-standard attributes on a terminal.

	The escape sequence specified with the "start" argument
	is written before the characters in the highlighted
	area.  It can be anything that you want to send to the
	terminal to highlight this area.  The escape sequence
	specified with the "stop" argument is written after the
	highlighted area.  This should undo the "start" argument.
	Otherwise the screen will look messed up.

	The {term-list} can have two forms:

	1. A string with escape sequences.
	   This is any string of characters, except that it can't start with
	   "t_" and blanks are not allowed.  The <> notation is recognized
	   here, so you can use things like "<Esc>" and "<Space>".  Example:
		start=<Esc>[27h;<Esc>[<Space>r;

	2. A list of terminal codes.
	   Each terminal code has the form "t_xx", where "xx" is the name of
	   the termcap entry.  The codes have to be separated with commas.
	   White space is not allowed.	Example:
		start=t_C1,t_BL
	   The terminal codes must exist for this to work.


2. highlight arguments for color terminals

cterm={attr-list}					*highlight-cterm*
	See above for the description of {attr-list} |attr-list|.
	The "cterm" argument is likely to be different from "term", when
	colors are used.  For example, in a normal terminal comments could
	be underlined, in a color terminal they can be made Blue.
	Note: Many terminals (e.g., DOS console) can't mix these attributes
	with coloring.	Use only one of "cterm=" OR "ctermfg=" OR "ctermbg=".

ctermfg={color-nr}				*highlight-ctermfg* *E421*
ctermbg={color-nr}				*highlight-ctermbg*
	The {color-nr} argument is a color number.  Its range is zero to
	(not including) the number given by the termcap entry "Co".
	The actual color with this number depends on the type of terminal
	and its settings.  Sometimes the color also depends on the settings of
	"cterm".  For example, on some systems "cterm=bold ctermfg=3" gives
	another color, on others you just get color 3.

	For an xterm this depends on your resources, and is a bit
	unpredictable.	See your xterm documentation for the defaults.	The
	colors for a color-xterm can be changed from the .Xdefaults file.
	Unfortunately this means that it's not possible to get the same colors
	for each user.	See |xterm-color| for info about color xterms.

	The MSDOS standard colors are fixed (in a console window), so these
	have been used for the names.  But the meaning of color names in X11
	are fixed, so these color settings have been used, to make the
	highlighting settings portable (complicated, isn't it?).  The
	following names are recognized, with the color number used:

							*cterm-colors*
	    NR-16   NR-8    COLOR NAME ~
	    0	    0	    Black
	    1	    4	    DarkBlue
	    2	    2	    DarkGreen
	    3	    6	    DarkCyan
	    4	    1	    DarkRed
	    5	    5	    DarkMagenta
	    6	    3	    Brown, DarkYellow
	    7	    7	    LightGray, LightGrey, Gray, Grey
	    8	    0*	    DarkGray, DarkGrey
	    9	    4*	    Blue, LightBlue
	    10	    2*	    Green, LightGreen
	    11	    6*	    Cyan, LightCyan
	    12	    1*	    Red, LightRed
	    13	    5*	    Magenta, LightMagenta
	    14	    3*	    Yellow, LightYellow
	    15	    7*	    White

	The number under "NR-16" is used for 16-color terminals ('t_Co'
	greater than or equal to 16).  The number under "NR-8" is used for
	8-color terminals ('t_Co' less than 16).  The '*' indicates that the
	bold attribute is set for ctermfg.  In many 8-color terminals (e.g.,
	"linux"), this causes the bright colors to appear.  This doesn't work
	for background colors!	Without the '*' the bold attribute is removed.
	If you want to set the bold attribute in a different way, put a
	"cterm=" argument AFTER the "ctermfg=" or "ctermbg=" argument.	Or use
	a number instead of a color name.

	The case of the color names is ignored.
	Note that for 16 color ansi style terminals (including xterms), the
	numbers in the NR-8 column is used.  Here '*' means 'add 8' so that Blue
	is 12, DarkGray is 8 etc.

	Note that for some color terminals these names may result in the wrong
	colors!

	You can also use "NONE" to remove the color.

							*:hi-normal-cterm*
	When setting the "ctermfg" or "ctermbg" colors for the Normal group,
	these will become the colors used for the non-highlighted text.
	Example: >
		:highlight Normal ctermfg=grey ctermbg=darkblue
<	When setting the "ctermbg" color for the Normal group, the
	'background' option will be adjusted automatically, under the
	condition that the color is recognized and 'background' was not set
	explicitly.  This causes the highlight groups that depend on
	'background' to change!  This means you should set the colors for
	Normal first, before setting other colors.
	When a colorscheme is being used, changing 'background' causes it to
	be reloaded, which may reset all colors (including Normal).  First
	delete the "g:colors_name" variable when you don't want this.

	When you have set "ctermfg" or "ctermbg" for the Normal group, Vim
	needs to reset the color when exiting.	This is done with the "op"
	termcap entry |t_op|.  If this doesn't work correctly, try setting the
	't_op' option in your .vimrc.
							*E419* *E420*
	When Vim knows the normal foreground and background colors, "fg" and
	"bg" can be used as color names.  This only works after setting the
	colors for the Normal group and for the MS-DOS console.  Example, for
	reverse video: >
	    :highlight Visual ctermfg=bg ctermbg=fg
<	Note that the colors are used that are valid at the moment this
	command are given.  If the Normal group colors are changed later, the
	"fg" and "bg" colors will not be adjusted.


3. highlight arguments for the GUI

gui={attr-list}						*highlight-gui*
	These give the attributes to use in the GUI mode.
	See |attr-list| for a description.
	Note that "bold" can be used here and by using a bold font.  They
	have the same effect.
	Note that the attributes are ignored for the "Normal" group.

font={font-name}					*highlight-font*
	font-name is the name of a font, as it is used on the system Vim
	runs on.  For X11 this is a complicated name, for example: >
   font=-misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-1
<
	The font-name "NONE" can be used to revert to the default font.
	When setting the font for the "Normal" group, this becomes the default
	font (until the 'guifont' option is changed; the last one set is
	used).
	The following only works with Motif and Athena, not with other GUIs:
	When setting the font for the "Menu" group, the menus will be changed.
	When setting the font for the "Tooltip" group, the tooltips will be
	changed.
	All fonts used, except for Menu and Tooltip, should be of the same
	character size as the default font!  Otherwise redrawing problems will
	occur.
	To use a font name with an embedded space or other special character,
	put it in single quotes.  The single quote cannot be used then.
	Example: >
	    :hi comment font='Monospace 10'

guifg={color-name}					*highlight-guifg*
guibg={color-name}					*highlight-guibg*
guisp={color-name}					*highlight-guisp*
	These give the foreground (guifg), background (guibg) and special
	(guisp) color to use in the GUI.  "guisp" is used for undercurl and
	strikethrough.
	There are a few special names:
		NONE		no color (transparent)
		bg		use normal background color
		background	use normal background color
		fg		use normal foreground color
		foreground	use normal foreground color
	To use a color name with an embedded space or other special character,
	put it in single quotes.  The single quote cannot be used then.
	Example: >
	    :hi comment guifg='salmon pink'
<
							*gui-colors*
	Suggested color names (these are available on most systems):
	    Red		LightRed	DarkRed
	    Green	LightGreen	DarkGreen	SeaGreen
	    Blue	LightBlue	DarkBlue	SlateBlue
	    Cyan	LightCyan	DarkCyan
	    Magenta	LightMagenta	DarkMagenta
	    Yellow	LightYellow	Brown		DarkYellow
	    Gray	LightGray	DarkGray
	    Black	White
	    Orange	Purple		Violet

	In the Win32 GUI version, additional system colors are available.  See
	|win32-colors|.

	You can also specify a color by its Red, Green and Blue values.
	The format is "#rrggbb", where
		"rr"	is the Red value
		"gg"	is the Green value
		"bb"	is the Blue value
	All values are hexadecimal, range from "00" to "ff".  Examples: >
  :highlight Comment guifg=#11f0c3 guibg=#ff00ff
<
					*highlight-groups* *highlight-default*
These are the default highlighting groups.  These groups are used by the
'highlight' option default.  Note that the highlighting depends on the value
of 'background'.  You can see the current settings with the ":highlight"
command.
							*hl-ColorColumn*
ColorColumn	used for the columns set with 'colorcolumn'
							*hl-Conceal*
Conceal		placeholder characters substituted for concealed
		text (see 'conceallevel')
							*hl-Cursor*
Cursor		the character under the cursor
							*hl-CursorIM*
CursorIM	like Cursor, but used when in IME mode |CursorIM|
							*hl-CursorColumn*
CursorColumn	the screen column that the cursor is in when 'cursorcolumn' is
		set
							*hl-CursorLine*
CursorLine	the screen line that the cursor is in when 'cursorline' is
		set
							*hl-Directory*
Directory	directory names (and other special names in listings)
							*hl-DiffAdd*
DiffAdd		diff mode: Added line |diff.txt|
							*hl-DiffChange*
DiffChange	diff mode: Changed line |diff.txt|
							*hl-DiffDelete*
DiffDelete	diff mode: Deleted line |diff.txt|
							*hl-DiffText*
DiffText	diff mode: Changed text within a changed line |diff.txt|
							*hl-EndOfBuffer*
EndOfBuffer	filler lines (~) after the last line in the buffer.
		By default, this is highlighted like |hl-NonText|.
							*hl-ErrorMsg*
ErrorMsg	error messages on the command line
							*hl-VertSplit*
VertSplit	the column separating vertically split windows
							*hl-Folded*
Folded		line used for closed folds
							*hl-FoldColumn*
FoldColumn	'foldcolumn'
							*hl-SignColumn*
SignColumn	column where |signs| are displayed
							*hl-IncSearch*
IncSearch	'incsearch' highlighting; also used for the text replaced with
		":s///c"
							*hl-LineNr*
LineNr		Line number for ":number" and ":#" commands, and when 'number'
		or 'relativenumber' option is set.
							*hl-CursorLineNr*
CursorLineNr	Like LineNr when 'cursorline' or 'relativenumber' is set for
		the cursor line.
							*hl-MatchParen*
MatchParen	The character under the cursor or just before it, if it
		is a paired bracket, and its match. |pi_paren.txt|

							*hl-ModeMsg*
ModeMsg		'showmode' message (e.g., "-- INSERT --")
							*hl-MoreMsg*
MoreMsg		|more-prompt|
							*hl-NonText*
NonText		'@' at the end of the window, characters from 'showbreak'
		and other characters that do not really exist in the text
		(e.g., ">" displayed when a double-wide character doesn't
		fit at the end of the line).
							*hl-Normal*
Normal		normal text
							*hl-Pmenu*
Pmenu		Popup menu: normal item.
							*hl-PmenuSel*
PmenuSel	Popup menu: selected item.
							*hl-PmenuSbar*
PmenuSbar	Popup menu: scrollbar.
							*hl-PmenuThumb*
PmenuThumb	Popup menu: Thumb of the scrollbar.
							*hl-Question*
Question	|hit-enter| prompt and yes/no questions
							*hl-QuickFixLine*
QuickFixLine	Current |quickfix| item in the quickfix window.
							*hl-Search*
Search		Last search pattern highlighting (see 'hlsearch').
		Also used for similar items that need to stand out.
							*hl-SpecialKey*
SpecialKey	Meta and special keys listed with ":map", also for text used
		to show unprintable characters in the text, 'listchars'.
		Generally: text that is displayed differently from what it
		really is.
							*hl-SpellBad*
SpellBad	Word that is not recognized by the spellchecker. |spell|
		This will be combined with the highlighting used otherwise.
							*hl-SpellCap*
SpellCap	Word that should start with a capital. |spell|
		This will be combined with the highlighting used otherwise.
							*hl-SpellLocal*
SpellLocal	Word that is recognized by the spellchecker as one that is
		used in another region. |spell|
		This will be combined with the highlighting used otherwise.
							*hl-SpellRare*
SpellRare	Word that is recognized by the spellchecker as one that is
		hardly ever used. |spell|
		This will be combined with the highlighting used otherwise.
							*hl-StatusLine*
StatusLine	status line of current window
							*hl-StatusLineNC*
StatusLineNC	status lines of not-current windows
		Note: if this is equal to "StatusLine" Vim will use "^^^" in
		the status line of the current window.
							*hl-StatusLineTerm*
StatusLineTerm	status line of current window, if it is a |terminal| window.
							*hl-StatusLineTermNC*
StatusLineTermNC   status lines of not-current windows that is a |terminal|
		window.
							*hl-TabLine*
TabLine		tab pages line, not active tab page label
							*hl-TabLineFill*
TabLineFill	tab pages line, where there are no labels
							*hl-TabLineSel*
TabLineSel	tab pages line, active tab page label
							*hl-Terminal*
Terminal	|terminal| window (see |terminal-size-color|)
							*hl-Title*
Title		titles for output from ":set all", ":autocmd" etc.
							*hl-Visual*
Visual		Visual mode selection
							*hl-VisualNOS*
VisualNOS	Visual mode selection when vim is "Not Owning the Selection".
		Only X11 Gui's |gui-x11| and |xterm-clipboard| supports this.
							*hl-WarningMsg*
WarningMsg	warning messages
							*hl-WildMenu*
WildMenu	current match in 'wildmenu' completion

					*hl-User1* *hl-User1..9* *hl-User9*
The 'statusline' syntax allows the use of 9 different highlights in the
statusline and ruler (via 'rulerformat').  The names are User1 to User9.

For the GUI you can use the following groups to set the colors for the menu,
scrollbars and tooltips.  They don't have defaults.  This doesn't work for the
Win32 GUI.  Only three highlight arguments have any effect here: font, guibg,
and guifg.

							*hl-Menu*
Menu		Current font, background and foreground colors of the menus.
		Also used for the toolbar.
		Applicable highlight arguments: font, guibg, guifg.

		NOTE: For Motif and Athena the font argument actually
		specifies a fontset at all times, no matter if 'guifontset' is
		empty, and as such it is tied to the current |:language| when
		set.

							*hl-Scrollbar*
Scrollbar	Current background and foreground of the main window's
		scrollbars.
		Applicable highlight arguments: guibg, guifg.

							*hl-Tooltip*
Tooltip		Current font, background and foreground of the tooltips.
		Applicable highlight arguments: font, guibg, guifg.

		NOTE: For Motif and Athena the font argument actually
		specifies a fontset at all times, no matter if 'guifontset' is
		empty, and as such it is tied to the current |:language| when
		set.

==============================================================================
13. Linking groups		*:hi-link* *:highlight-link* *E412* *E413*

When you want to use the same highlighting for several syntax groups, you
can do this more easily by linking the groups into one common highlight
group, and give the color attributes only for that group.

To set a link:

    :hi[ghlight][!] [default] link {from-group} {to-group}

To remove a link:

    :hi[ghlight][!] [default] link {from-group} NONE

Notes:							*E414*
- If the {from-group} and/or {to-group} doesn't exist, it is created.  You
  don't get an error message for a non-existing group.
- As soon as you use a ":highlight" command for a linked group, the link is
  removed.
- If there are already highlight settings for the {from-group}, the link is
  not made, unless the '!' is given.  For a ":highlight link" command in a
  sourced file, you don't get an error message.  This can be used to skip
  links for groups that already have settings.

					*:hi-default* *:highlight-default*
The [default] argument is used for setting the default highlighting for a
group.	If highlighting has already been specified for the group the command
will be ignored.  Also when there is an existing link.

Using [default] is especially useful to overrule the highlighting of a
specific syntax file.  For example, the C syntax file contains: >
	:highlight default link cComment Comment
If you like Question highlighting for C comments, put this in your vimrc file: >
	:highlight link cComment Question
Without the "default" in the C syntax file, the highlighting would be
overruled when the syntax file is loaded.

==============================================================================
14. Cleaning up						*:syn-clear* *E391*

If you want to clear the syntax stuff for the current buffer, you can use this
command: >
  :syntax clear

This command should be used when you want to switch off syntax highlighting,
or when you want to switch to using another syntax.  It's normally not needed
in a syntax file itself, because syntax is cleared by the autocommands that
load the syntax file.
The command also deletes the "b:current_syntax" variable, since no syntax is
loaded after this command.

If you want to disable syntax highlighting for all buffers, you need to remove
the autocommands that load the syntax files: >
  :syntax off

What this command actually does, is executing the command >
  :source $VIMRUNTIME/syntax/nosyntax.vim
See the "nosyntax.vim" file for details.  Note that for this to work
$VIMRUNTIME must be valid.  See |$VIMRUNTIME|.

To clean up specific syntax groups for the current buffer: >
  :syntax clear {group-name} ..
This removes all patterns and keywords for {group-name}.

To clean up specific syntax group lists for the current buffer: >
  :syntax clear @{grouplist-name} ..
This sets {grouplist-name}'s contents to an empty list.

						*:syntax-reset* *:syn-reset*
If you have changed the colors and messed them up, use this command to get the
defaults back: >

  :syntax reset

It is a bit of a wrong name, since it does not reset any syntax items, it only
affects the highlighting.

This doesn't change the colors for the 'highlight' option.

Note that the syntax colors that you set in your vimrc file will also be reset
back to their Vim default.
Note that if you are using a color scheme, the colors defined by the color
scheme for syntax highlighting will be lost.

What this actually does is: >

	let g:syntax_cmd = "reset"
	runtime! syntax/syncolor.vim

Note that this uses the 'runtimepath' option.

							*syncolor*
If you want to use different colors for syntax highlighting, you can add a Vim
script file to set these colors.  Put this file in a directory in
'runtimepath' which comes after $VIMRUNTIME, so that your settings overrule
the default colors.  This way these colors will be used after the ":syntax
reset" command.

For Unix you can use the file ~/.vim/after/syntax/syncolor.vim.  Example: >

	if &background == "light"
	  highlight comment ctermfg=darkgreen guifg=darkgreen
	else
	  highlight comment ctermfg=green guifg=green
	endif

								*E679*
Do make sure this syncolor.vim script does not use a "syntax on", set the
'background' option or uses a "colorscheme" command, because it results in an
endless loop.

Note that when a color scheme is used, there might be some confusion whether
your defined colors are to be used or the colors from the scheme.  This
depends on the color scheme file.  See |:colorscheme|.

							*syntax_cmd*
The "syntax_cmd" variable is set to one of these values when the
syntax/syncolor.vim files are loaded:
   "on"		":syntax on" command.  Highlight colors are overruled but
		links are kept
   "enable"	":syntax enable" command.  Only define colors for groups that
		don't have highlighting yet.  Use ":syntax default".
   "reset"	":syntax reset" command or loading a color scheme.  Define all
		the colors.
   "skip"	Don't define colors.  Used to skip the default settings when a
		syncolor.vim file earlier in 'runtimepath' has already set
		them.

==============================================================================
15. Highlighting tags					*tag-highlight*

If you want to highlight all the tags in your file, you can use the following
mappings.

	<F11>	-- Generate tags.vim file, and highlight tags.
	<F12>	-- Just highlight tags based on existing tags.vim file.
>
  :map <F11>  :sp tags<CR>:%s/^\([^	:]*:\)\=\([^	]*\).*/syntax keyword Tag \2/<CR>:wq! tags.vim<CR>/^<CR><F12>
  :map <F12>  :so tags.vim<CR>

WARNING: The longer the tags file, the slower this will be, and the more
memory Vim will consume.

Only highlighting typedefs, unions and structs can be done too.  For this you
must use Exuberant ctags (found at http://ctags.sf.net).

Put these lines in your Makefile:

# Make a highlight file for types.  Requires Exuberant ctags and awk
types: types.vim
types.vim: *.[ch]
	ctags --c-kinds=gstu -o- *.[ch] |\
		awk 'BEGIN{printf("syntax keyword Type\t")}\
			{printf("%s ", $$1)}END{print ""}' > $@

And put these lines in your .vimrc: >

   " load the types.vim highlighting file, if it exists
   autocmd BufRead,BufNewFile *.[ch] let fname = expand('<afile>:p:h') . '/types.vim'
   autocmd BufRead,BufNewFile *.[ch] if filereadable(fname)
   autocmd BufRead,BufNewFile *.[ch]   exe 'so ' . fname
   autocmd BufRead,BufNewFile *.[ch] endif

==============================================================================
16. Window-local syntax				*:ownsyntax*

Normally all windows on a buffer share the same syntax settings. It is
possible, however, to set a particular window on a file to have its own
private syntax setting. A possible example would be to edit LaTeX source
with conventional highlighting in one window, while seeing the same source
highlighted differently (so as to hide control sequences and indicate bold,
italic etc regions) in another. The 'scrollbind' option is useful here.

To set the current window to have the syntax "foo", separately from all other
windows on the buffer: >
   :ownsyntax foo
<						*w:current_syntax*
This will set the "w:current_syntax" variable to "foo".  The value of
"b:current_syntax" does not change.  This is implemented by saving and
restoring "b:current_syntax", since the syntax files do set
"b:current_syntax".  The value set by the syntax file is assigned to
"w:current_syntax".
Note: This resets the 'spell', 'spellcapcheck' and 'spellfile' options.

Once a window has its own syntax, syntax commands executed from other windows
on the same buffer (including :syntax clear) have no effect. Conversely,
syntax commands executed from that window do not affect other windows on the
same buffer.

A window with its own syntax reverts to normal behavior when another buffer
is loaded into that window or the file is reloaded.
When splitting the window, the new window will use the original syntax.

==============================================================================
17. Color xterms				*xterm-color* *color-xterm*

Most color xterms have only eight colors.  If you don't get colors with the
default setup, it should work with these lines in your .vimrc: >
   :if &term =~ "xterm"
   :  if has("terminfo")
   :	set t_Co=8
   :	set t_Sf=<Esc>[3%p1%dm
   :	set t_Sb=<Esc>[4%p1%dm
   :  else
   :	set t_Co=8
   :	set t_Sf=<Esc>[3%dm
   :	set t_Sb=<Esc>[4%dm
   :  endif
   :endif
<	[<Esc> is a real escape, type CTRL-V <Esc>]

You might want to change the first "if" to match the name of your terminal,
e.g. "dtterm" instead of "xterm".

Note: Do these settings BEFORE doing ":syntax on".  Otherwise the colors may
be wrong.
							*xiterm* *rxvt*
The above settings have been mentioned to work for xiterm and rxvt too.
But for using 16 colors in an rxvt these should work with terminfo: >
	:set t_AB=<Esc>[%?%p1%{8}%<%t25;%p1%{40}%+%e5;%p1%{32}%+%;%dm
	:set t_AF=<Esc>[%?%p1%{8}%<%t22;%p1%{30}%+%e1;%p1%{22}%+%;%dm
<
							*colortest.vim*
To test your color setup, a file has been included in the Vim distribution.
To use it, execute this command: >
   :runtime syntax/colortest.vim

Some versions of xterm (and other terminals, like the Linux console) can
output lighter foreground colors, even though the number of colors is defined
at 8.  Therefore Vim sets the "cterm=bold" attribute for light foreground
colors, when 't_Co' is 8.

							*xfree-xterm*
To get 16 colors or more, get the newest xterm version (which should be
included with XFree86 3.3 and later).  You can also find the latest version
at: >
	http://invisible-island.net/xterm/xterm.html
Here is a good way to configure it.  This uses 88 colors and enables the
termcap-query feature, which allows Vim to ask the xterm how many colors it
supports. >
	./configure --disable-bold-color --enable-88-color --enable-tcap-query
If you only get 8 colors, check the xterm compilation settings.
(Also see |UTF8-xterm| for using this xterm with UTF-8 character encoding).

This xterm should work with these lines in your .vimrc (for 16 colors): >
   :if has("terminfo")
   :  set t_Co=16
   :  set t_AB=<Esc>[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm
   :  set t_AF=<Esc>[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm
   :else
   :  set t_Co=16
   :  set t_Sf=<Esc>[3%dm
   :  set t_Sb=<Esc>[4%dm
   :endif
<	[<Esc> is a real escape, type CTRL-V <Esc>]

Without |+terminfo|, Vim will recognize these settings, and automatically
translate cterm colors of 8 and above to "<Esc>[9%dm" and "<Esc>[10%dm".
Colors above 16 are also translated automatically.

For 256 colors this has been reported to work: >

   :set t_AB=<Esc>[48;5;%dm
   :set t_AF=<Esc>[38;5;%dm

Or just set the TERM environment variable to "xterm-color" or "xterm-16color"
and try if that works.

You probably want to use these X resources (in your ~/.Xdefaults file):
	XTerm*color0:			#000000
	XTerm*color1:			#c00000
	XTerm*color2:			#008000
	XTerm*color3:			#808000
	XTerm*color4:			#0000c0
	XTerm*color5:			#c000c0
	XTerm*color6:			#008080
	XTerm*color7:			#c0c0c0
	XTerm*color8:			#808080
	XTerm*color9:			#ff6060
	XTerm*color10:			#00ff00
	XTerm*color11:			#ffff00
	XTerm*color12:			#8080ff
	XTerm*color13:			#ff40ff
	XTerm*color14:			#00ffff
	XTerm*color15:			#ffffff
	Xterm*cursorColor:		Black

[Note: The cursorColor is required to work around a bug, which changes the
cursor color to the color of the last drawn text.  This has been fixed by a
newer version of xterm, but not everybody is using it yet.]

To get these right away, reload the .Xdefaults file to the X Option database
Manager (you only need to do this when you just changed the .Xdefaults file): >
  xrdb -merge ~/.Xdefaults
<
					*xterm-blink* *xterm-blinking-cursor*
To make the cursor blink in an xterm, see tools/blink.c.  Or use Thomas
Dickey's xterm above patchlevel 107 (see above for where to get it), with
these resources:
	XTerm*cursorBlink:	on
	XTerm*cursorOnTime:	400
	XTerm*cursorOffTime:	250
	XTerm*cursorColor:	White

							*hpterm-color*
These settings work (more or less) for an hpterm, which only supports 8
foreground colors: >
   :if has("terminfo")
   :  set t_Co=8
   :  set t_Sf=<Esc>[&v%p1%dS
   :  set t_Sb=<Esc>[&v7S
   :else
   :  set t_Co=8
   :  set t_Sf=<Esc>[&v%dS
   :  set t_Sb=<Esc>[&v7S
   :endif
<	[<Esc> is a real escape, type CTRL-V <Esc>]

						*Eterm* *enlightened-terminal*
These settings have been reported to work for the Enlightened terminal
emulator, or Eterm.  They might work for all xterm-like terminals that use the
bold attribute to get bright colors.  Add an ":if" like above when needed. >
       :set t_Co=16
       :set t_AF=^[[%?%p1%{8}%<%t3%p1%d%e%p1%{22}%+%d;1%;m
       :set t_AB=^[[%?%p1%{8}%<%t4%p1%d%e%p1%{32}%+%d;1%;m
<
						*TTpro-telnet*
These settings should work for TTpro telnet.  Tera Term Pro is a freeware /
open-source program for MS-Windows. >
	set t_Co=16
	set t_AB=^[[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{32}%+5;%;%dm
	set t_AF=^[[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{22}%+1;%;%dm
Also make sure TTpro's Setup / Window / Full Color is enabled, and make sure
that Setup / Font / Enable Bold is NOT enabled.
(info provided by John Love-Jensen <eljay@Adobe.COM>)


==============================================================================
18. When syntax is slow						*:syntime*

This is aimed at authors of a syntax file.

If your syntax causes redrawing to be slow, here are a few hints on making it
faster.  To see slowness switch on some features that usually interfere, such
as 'relativenumber' and |folding|.

Note: this is only available when compiled with the |+profile| feature.
You many need to build Vim with "huge" features.

To find out what patterns are consuming most time, get an overview with this
sequence: >
	:syntime on
	[ redraw the text at least once with CTRL-L ]
	:syntime report

This will display a list of syntax patterns that were used, sorted by the time
it took to match them against the text.

:syntime on		Start measuring syntax times.  This will add some
			overhead to compute the time spent on syntax pattern
			matching.

:syntime off		Stop measuring syntax times.

:syntime clear		Set all the counters to zero, restart measuring.

:syntime report		Show the syntax items used since ":syntime on" in the
			current window.  Use a wider display to see more of
			the output.

			The list is sorted by total time. The columns are:
			TOTAL		Total time in seconds spent on
					matching this pattern.
			COUNT		Number of times the pattern was used.
			MATCH		Number of times the pattern actually
					matched
			SLOWEST		The longest time for one try.
			AVERAGE		The average time for one try.
			NAME		Name of the syntax item.  Note that
					this is not unique.
			PATTERN		The pattern being used.

Pattern matching gets slow when it has to try many alternatives.  Try to
include as much literal text as possible to reduce the number of ways a
pattern does NOT match.

When using the "\@<=" and "\@<!" items, add a maximum size to avoid trying at
all positions in the current and previous line.  For example, if the item is
literal text specify the size of that text (in bytes):

"<\@<=span"	Matches "span" in "<span".  This tries matching with "<" in
		many places.
"<\@1<=span"	Matches the same, but only tries one byte before "span".


 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z��I5�X�Xvim80/doc/usr_30.txtnu�[���*usr_30.txt*	For Vim version 8.0.  Last change: 2007 Nov 10

		     VIM USER MANUAL - by Bram Moolenaar

			      Editing programs


Vim has various commands that aid in writing computer programs.  Compile a
program and directly jump to reported errors.  Automatically set the indent
for many languages and format comments.

|30.1|	Compiling
|30.2|	Indenting C files
|30.3|	Automatic indenting
|30.4|	Other indenting
|30.5|	Tabs and spaces
|30.6|	Formatting comments

     Next chapter: |usr_31.txt|  Exploiting the GUI
 Previous chapter: |usr_29.txt|  Moving through programs
Table of contents: |usr_toc.txt|

==============================================================================
*30.1*	Compiling

Vim has a set of so called "quickfix" commands.  They enable you to compile a
program from within Vim and then go through the errors generated and fix them
(hopefully).  You can then recompile and fix any new errors that are found
until finally your program compiles without any error.

The following command runs the program "make" (supplying it with any argument
you give) and captures the results: >

	:make {arguments}

If errors were generated, they are captured and the editor positions you where
the first error occurred.
   Take a look at an example ":make" session.  (Typical :make sessions generate
far more errors and fewer stupid ones.)  After typing ":make" the screen looks
like this:

	:!make | &tee /tmp/vim215953.err ~
	gcc -g -Wall -o prog main.c sub.c ~
	main.c: In function 'main': ~
	main.c:6: too many arguments to function 'do_sub' ~
	main.c: At top level: ~
	main.c:10: parse error before '}' ~
	make: *** [prog] Error 1 ~

	2 returned ~
	"main.c" 11L, 111C ~
	(3 of 6): too many arguments to function 'do_sub' ~
	Press ENTER or type command to continue ~

From this you can see that you have errors in the file "main.c".  When you
press <Enter>, Vim displays the file "main.c", with the cursor positioned on
line 6, the first line with an error.  You did not need to specify the file or
the line number, Vim knew where to go by looking in the error messages.

		+---------------------------------------------------+
		|int main()					    |
		|{						    |
		|	int i=3;				    |
      cursor -> |	do_sub("foo");				    |
		|	++i;					    |
		|	return (0);				    |
		|}						    |
		|}						    |
		| ~						    |
		|(3 of 12): too many arguments to function 'do_sub' |
		+---------------------------------------------------+

The following command goes to where the next error occurs: >

	:cnext

Vim jumps to line 10, the last line in the file, where there is an extra '}'.
   When there is not enough room, Vim will shorten the error message.  To see
the whole message use: >

	:cc

You can get an overview of all the error messages with the ":clist" command.
The output looks like this: >

	:clist
<	3 main.c: 6:too many arguments to function 'do_sub' ~
	5 main.c: 10:parse error before '}' ~

Only the lines where Vim recognized a file name and line number are listed
here.  It assumes those are the interesting lines and the rest is just boring
messages.  However, sometimes unrecognized lines do contain something you want
to see.  Output from the linker, for example, about an undefined function.
To see all the messages add a "!" to the command: >

	:clist!
<	1 gcc -g -Wall -o prog main.c sub.c ~
	2 main.c: In function 'main': ~
	3 main.c:6: too many arguments to function 'do_sub' ~
	4 main.c: At top level: ~
	5 main.c:10: parse error before '}' ~
	6 make: *** [prog] Error 1 ~

Vim will highlight the current error.  To go back to the previous error, use:
>
	:cprevious

Other commands to move around in the error list:

	:cfirst		to first error
	:clast		to last error
	:cc 3		to error nr 3


USING ANOTHER COMPILER

The name of the program to run when the ":make" command is executed is defined
by the 'makeprg' option.  Usually this is set to "make", but Visual C++ users
should set this to "nmake" by executing the following command: >

	:set makeprg=nmake

You can also include arguments in this option.  Special characters need to
be escaped with a backslash.  Example: >

	:set makeprg=nmake\ -f\ project.mak

You can include special Vim keywords in the command specification.  The %
character expands to the name of the current file.  So if you execute the
command: >
	:set makeprg=make\ %:S

When you are editing main.c, then ":make" executes the following command: >

	make main.c

This is not too useful, so you will refine the command a little and use the :r
(root) modifier: >

	:set makeprg=make\ %:r:S.o

Now the command executed is as follows: >

	make main.o

More about these modifiers here: |filename-modifiers|.


OLD ERROR LISTS

Suppose you ":make" a program.  There is a warning message in one file and an
error message in another.  You fix the error and use ":make" again to check if
it was really fixed.  Now you want to look at the warning message.  It doesn't
show up in the last error list, since the file with the warning wasn't
compiled again.  You can go back to the previous error list with: >

	:colder

Then use ":clist" and ":cc {nr}" to jump to the place with the warning.
   To go forward to the next error list: >

	:cnewer

Vim remembers ten error lists.


SWITCHING COMPILERS

You have to tell Vim what format the error messages are that your compiler
produces.  This is done with the 'errorformat' option.  The syntax of this
option is quite complicated and it can be made to fit almost any compiler.
You can find the explanation here: |errorformat|.

You might be using various different compilers.  Setting the 'makeprg' option,
and especially the 'errorformat' each time is not easy.  Vim offers a simple
method for this.  For example, to switch to using the Microsoft Visual C++
compiler: >

	:compiler msvc

This will find the Vim script for the "msvc" compiler and set the appropriate
options.
   You can write your own compiler files.  See |write-compiler-plugin|.


OUTPUT REDIRECTION

The ":make" command redirects the output of the executed program to an error
file.  How this works depends on various things, such as the 'shell'.  If your
":make" command doesn't capture the output, check the 'makeef' and
'shellpipe' options.  The 'shellquote' and 'shellxquote' options might also
matter.

In case you can't get ":make" to redirect the file for you, an alternative is
to compile the program in another window and redirect the output into a file.
Then have Vim read this file with: >

	:cfile {filename}

Jumping to errors will work like with the ":make" command.

==============================================================================
*30.2*	Indenting C style text

A program is much easier to understand when the lines have been properly
indented.  Vim offers various ways to make this less work.  For C or C style
programs like Java or C++, set the 'cindent' option.  Vim knows a lot about C
programs and will try very hard to automatically set the indent for you.  Set
the 'shiftwidth' option to the amount of spaces you want for a deeper level.
Four spaces will work fine.  One ":set" command will do it: >

	:set cindent shiftwidth=4

With this option enabled, when you type something such as "if (x)", the next
line will automatically be indented an additional level.

				    if (flag)
	Automatic indent   --->		do_the_work();
	Automatic unindent <--	    if (other_flag) {
	Automatic indent   --->		do_file();
	keep indent			do_some_more();
	Automatic unindent <--	    }

When you type something in curly braces ({}), the text will be indented at the
start and unindented at the end.  The unindenting will happen after typing the
'}', since Vim can't guess what you are going to type.

One side effect of automatic indentation is that it helps you catch errors in
your code early.  When you type a } to finish a function, only to find that
the automatic indentation gives it more indent than what you expected, there
is probably a } missing.  Use the "%" command to find out which { matches the
} you typed.
   A missing ) and ; also cause extra indent.  Thus if you get more white
space than you would expect, check the preceding lines.

When you have code that is badly formatted, or you inserted and deleted lines,
you need to re-indent the lines.  The "=" operator does this.  The simplest
form is: >

	==

This indents the current line.  Like with all operators, there are three ways
to use it.  In Visual mode "=" indents the selected lines.  A useful text
object is "a{".  This selects the current {} block.  Thus, to re-indent the
code block the cursor is in: >

	=a{

I you have really badly indented code, you can re-indent the whole file with:
>
	gg=G

However, don't do this in files that have been carefully indented manually.
The automatic indenting does a good job, but in some situations you might want
to overrule it.


SETTING INDENT STYLE

Different people have different styles of indentation.  By default Vim does a
pretty good job of indenting in a way that 90% of programmers do.  There are
different styles, however; so if you want to, you can customize the
indentation style with the 'cinoptions' option.
   By default 'cinoptions' is empty and Vim uses the default style.  You can
add various items where you want something different.  For example, to make
curly braces be placed like this:

	if (flag) ~
	  { ~
	    i = 8; ~
	    j = 0; ~
	  } ~

Use this command: >

	:set cinoptions+={2

There are many of these items.  See |cinoptions-values|.

==============================================================================
*30.3*	Automatic indenting

You don't want to switch on the 'cindent' option manually every time you edit
a C file.  This is how you make it work automatically: >

	:filetype indent on

Actually, this does a lot more than switching on 'cindent' for C files.  First
of all, it enables detecting the type of a file.  That's the same as what is
used for syntax highlighting.
   When the filetype is known, Vim will search for an indent file for this
type of file.  The Vim distribution includes a number of these for various
programming languages.  This indent file will then prepare for automatic
indenting specifically for this file.

If you don't like the automatic indenting, you can switch it off again: >

	:filetype indent off

If you don't like the indenting for one specific type of file, this is how you
avoid it.  Create a file with just this one line: >

	:let b:did_indent = 1

Now you need to write this in a file with a specific name:

	{directory}/indent/{filetype}.vim

The {filetype} is the name of the file type, such as "cpp" or "java".  You can
see the exact name that Vim detected with this command: >

	:set filetype

In this file the output is:

	filetype=help ~

Thus you would use "help" for {filetype}.
   For the {directory} part you need to use your runtime directory.  Look at
the output of this command: >

	set runtimepath

Now use the first item, the name before the first comma.  Thus if the output
looks like this:

	runtimepath=~/.vim,/usr/local/share/vim/vim60/runtime,~/.vim/after ~

You use "~/.vim" for {directory}.  Then the resulting file name is:

	~/.vim/indent/help.vim ~

Instead of switching the indenting off, you could write your own indent file.
How to do that is explained here: |indent-expression|.

==============================================================================
*30.4*	Other indenting

The most simple form of automatic indenting is with the 'autoindent' option.
It uses the indent from the previous line.  A bit smarter is the 'smartindent'
option.  This is useful for languages where no indent file is available.
'smartindent' is not as smart as 'cindent', but smarter than 'autoindent'.
   With 'smartindent' set, an extra level of indentation is added for each {
and removed for each }.  An extra level of indentation will also be added for
any of the words in the 'cinwords' option.  Lines that begin with # are
treated specially: all indentation is removed.  This is done so that
preprocessor directives will all start in column 1.  The indentation is
restored for the next line.


CORRECTING INDENTS

When you are using 'autoindent' or 'smartindent' to get the indent of the
previous line, there will be many times when you need to add or remove one
'shiftwidth' worth of indent.  A quick way to do this is using the CTRL-D and
CTRL-T commands in Insert mode.
   For example, you are typing a shell script that is supposed to look like
this:

	if test -n a; then ~
	   echo a ~
	   echo "-------" ~
	fi ~

Start off by setting these options: >

	:set autoindent shiftwidth=3

You start by typing the first line, <Enter> and the start of the second line:

	if test -n a; then ~
	echo ~

Now you see that you need an extra indent.  Type CTRL-T.  The result:

	if test -n a; then ~
	   echo ~

The CTRL-T command, in Insert mode, adds one 'shiftwidth' to the indent, no
matter where in the line you are.
   You continue typing the second line, <Enter> and the third line.  This time
the indent is OK.  Then <Enter> and the last line.  Now you have this:

	if test -n a; then ~
	   echo a ~
	   echo "-------" ~
	   fi ~

To remove the superfluous indent in the last line press CTRL-D.  This deletes
one 'shiftwidth' worth of indent, no matter where you are in the line.
   When you are in Normal mode, you can use the ">>" and "<<" commands to
shift lines.  ">" and "<" are operators, thus you have the usual three ways to
specify the lines you want to indent.  A useful combination is: >

	>i{

This adds one indent to the current block of lines, inside {}.  The { and }
lines themselves are left unmodified.  ">a{" includes them.  In this example
the cursor is on "printf":

	original text		after ">i{"		after ">a{"

	if (flag)		if (flag)		if (flag) ~
	{			{			    { ~
	printf("yes");		    printf("yes");	    printf("yes"); ~
	flag = 0;		    flag = 0;		    flag = 0;  ~
	}			}			    } ~

==============================================================================
*30.5*	Tabs and spaces

'tabstop' is set to eight by default.  Although you can change it, you quickly
run into trouble later.  Other programs won't know what tabstop value you
used.  They probably use the default value of eight, and your text suddenly
looks very different.  Also, most printers use a fixed tabstop value of eight.
Thus it's best to keep 'tabstop' alone.  (If you edit a file which was written
with a different tabstop setting, see |25.3| for how to fix that.)
   For indenting lines in a program, using a multiple of eight spaces makes
you quickly run into the right border of the window.  Using a single space
doesn't provide enough visual difference.  Many people prefer to use four
spaces, a good compromise.
   Since a <Tab> is eight spaces and you want to use an indent of four spaces,
you can't use a <Tab> character to make your indent.  There are two ways to
handle this:

1.  Use a mix of <Tab> and space characters.  Since a <Tab> takes the place of
    eight spaces, you have fewer characters in your file.  Inserting a <Tab>
    is quicker than eight spaces.  Backspacing works faster as well.

2.  Use spaces only.  This avoids the trouble with programs that use a
    different tabstop value.

Fortunately, Vim supports both methods quite well.


SPACES AND TABS

If you are using a combination of tabs and spaces, you just edit normally.
The Vim defaults do a fine job of handling things.
   You can make life a little easier by setting the 'softtabstop' option.
This option tells Vim to make the <Tab> key look and feel as if tabs were set
at the value of 'softtabstop', but actually use a combination of tabs and
spaces.
   After you execute the following command, every time you press the <Tab> key
the cursor moves to the next 4-column boundary: >

	:set softtabstop=4

When you start in the first column and press <Tab>, you get 4 spaces inserted
in your text.  The second time, Vim takes out the 4 spaces and puts in a <Tab>
(thus taking you to column 8).  Thus Vim uses as many <Tab>s as possible, and
then fills up with spaces.
   When backspacing it works the other way around.  A <BS> will always delete
the amount specified with 'softtabstop'.  Then <Tab>s are used as many as
possible and spaces to fill the gap.
   The following shows what happens pressing <Tab> a few times, and then using
<BS>.  A "." stands for a space and "------->" for a <Tab>.

	type			  result ~
	<Tab>			  ....
	<Tab><Tab>		  ------->
	<Tab><Tab><Tab>		  ------->....
	<Tab><Tab><Tab><BS>	  ------->
	<Tab><Tab><Tab><BS><BS>   ....

An alternative is to use the 'smarttab' option.  When it's set, Vim uses
'shiftwidth' for a <Tab> typed in the indent of a line, and a real <Tab> when
typed after the first non-blank character.  However, <BS> doesn't work like
with 'softtabstop'.


JUST SPACES

If you want absolutely no tabs in your file, you can set the 'expandtab'
option: >

	:set expandtab

When this option is set, the <Tab> key inserts a series of spaces.  Thus you
get the same amount of white space as if a <Tab> character was inserted, but
there isn't a real <Tab> character in your file.
   The backspace key will delete each space by itself.  Thus after typing one
<Tab> you have to press the <BS> key up to eight times to undo it.  If you are
in the indent, pressing CTRL-D will be a lot quicker.


CHANGING TABS IN SPACES (AND BACK)

Setting 'expandtab' does not affect any existing tabs.  In other words, any
tabs in the document remain tabs.  If you want to convert tabs to spaces, use
the ":retab" command.  Use these commands: >

	:set expandtab
	:%retab

Now Vim will have changed all indents to use spaces instead of tabs.  However,
all tabs that come after a non-blank character are kept.  If you want these to
be converted as well, add a !: >

	:%retab!

This is a little bit dangerous, because it can also change tabs inside a
string.  To check if these exist, you could use this: >

	/"[^"\t]*\t[^"]*"

It's recommended not to use hard tabs inside a string.  Replace them with
"\t" to avoid trouble.

The other way around works just as well: >

	:set noexpandtab
	:%retab!

==============================================================================
*30.6*	Formatting comments

One of the great things about Vim is that it understands comments.  You can
ask Vim to format a comment and it will do the right thing.
   Suppose, for example, that you have the following comment:

	/* ~
	 * This is a test ~
	 * of the text formatting. ~
	 */ ~

You then ask Vim to format it by positioning the cursor at the start of the
comment and type: >

	gq]/

"gq" is the operator to format text.  "]/" is the motion that takes you to the
end of a comment.  The result is:

	/* ~
	 * This is a test of the text formatting. ~
	 */ ~

Notice that Vim properly handled the beginning of each line.
  An alternative is to select the text that is to be formatted in Visual mode
and type "gq".

To add a new line to the comment, position the cursor on the middle line and
press "o".  The result looks like this:

	/* ~
	 * This is a test of the text formatting. ~
	 * ~
	 */ ~

Vim has automatically inserted a star and a space for you.  Now you can type
the comment text.  When it gets longer than 'textwidth', Vim will break the
line.  Again, the star is inserted automatically:

	/* ~
	 * This is a test of the text formatting. ~
	 * Typing a lot of text here will make Vim ~
	 * break ~
	 */ ~

For this to work some flags must be present in 'formatoptions':

	r	insert the star when typing <Enter> in Insert mode
	o	insert the star when using "o" or "O" in Normal mode
	c	break comment text according to 'textwidth'

See |fo-table| for more flags.


DEFINING A COMMENT

The 'comments' option defines what a comment looks like.  Vim distinguishes
between a single-line comment and a comment that has a different start, end
and middle part.
   Many single-line comments start with a specific character.  In C++ // is
used, in Makefiles #, in Vim scripts ".  For example, to make Vim understand
C++ comments: >

	:set comments=://

The colon separates the flags of an item from the text by which the comment is
recognized.  The general form of an item in 'comments' is:

	{flags}:{text}

The {flags} part can be empty, as in this case.
   Several of these items can be concatenated, separated by commas.  This
allows recognizing different types of comments at the same time.  For example,
let's edit an e-mail message.  When replying, the text that others wrote is
preceded with ">" and "!" characters.  This command would work: >

	:set comments=n:>,n:!

There are two items, one for comments starting with ">" and one for comments
that start with "!".  Both use the flag "n".  This means that these comments
nest.  Thus a line starting with ">" may have another comment after the ">".
This allows formatting a message like this:

	> ! Did you see that site? ~
	> ! It looks really great. ~
	> I don't like it.  The ~
	> colors are terrible. ~
	What is the URL of that ~
	site? ~

Try setting 'textwidth' to a different value, e.g., 80, and format the text by
Visually selecting it and typing "gq".  The result is:

	> ! Did you see that site?  It looks really great. ~
	> I don't like it.  The colors are terrible. ~
	What is the URL of that site? ~

You will notice that Vim did not move text from one type of comment to
another.  The "I" in the second line would have fit at the end of the first
line, but since that line starts with "> !" and the second line with ">", Vim
knows that this is a different kind of comment.


A THREE PART COMMENT

A C comment starts with "/*", has "*" in the middle and "*/" at the end.  The
entry in 'comments' for this looks like this: >

	:set comments=s1:/*,mb:*,ex:*/

The start is defined with "s1:/*".  The "s" indicates the start of a
three-piece comment.  The colon separates the flags from the text by which the
comment is recognized: "/*".  There is one flag: "1".  This tells Vim that the
middle part has an offset of one space.
   The middle part "mb:*" starts with "m", which indicates it is a middle
part.  The "b" flag means that a blank must follow the text.  Otherwise Vim
would consider text like "*pointer" also to be the middle of a comment.
   The end part "ex:*/" has the "e" for identification.  The "x" flag has a
special meaning.  It means that after Vim automatically inserted a star,
typing / will remove the extra space.

For more details see |format-comments|.

==============================================================================

Next chapter: |usr_31.txt|  Exploiting the GUI

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��pUUvim80/doc/os_amiga.txtnu�[���*os_amiga.txt*  For Vim version 8.0.  Last change: 2010 Aug 14


		  VIM REFERENCE MANUAL    by Bram Moolenaar


							*Amiga*
This file contains the particularities for the Amiga version of Vim.
There is also a section specifically for |MorphOS| below.

NOTE: The Amiga code is still included, but has not been maintained or tested.

Installation on the Amiga:
- Assign "VIM:" to the directory where the Vim "doc" directory is.  Vim will
  look for the file "VIM:doc/help.txt" (for the help command).
  Setting the environment variable $VIM also works.  And the other way around:
  when $VIM used and it is not defined, "VIM:" is used.
- With DOS 1.3 or earlier: Put "arp.library" in "libs:".  Vim must have been
  compiled with the |+ARP| feature enabled.  Make sure that newcli and run are
  in "C:" (for executing external commands).
- Put a shell that accepts a command with "-c" (e.g. "Csh" from Fish disk
  624) in "c:" or in any other directory that is in your search path (for
  executing external commands).

If you have sufficient memory you can avoid startup delays by making Vim and
csh resident with the command "rez csh vim".  You will have to put
"rezlib.library" in your "libs:" directory.  Under 2.0 you will need rez
version 0.5.

If you do not use digraphs, you can save some memory by recompiling without
the |+digraphs| feature.  If you want to use Vim with other terminals you can
recompile with the TERMCAP option.  Vim compiles with Manx 5.x and SAS 6.x.
See the makefiles and feature.h.

If you notice Vim crashes on some files when syntax highlighting is on, or
when using a search pattern with nested wildcards, it might be that the stack
is too small.  Try increasing the stack size.  In a shell use the Stack
command before launching Vim.  On the Workbench, select the Vim icon, use the
workbench "Info" menu and change the Stack field in the form.

If you want to use different colors set the termcap codes:
	t_mr (for inverted text)
	t_md (for bold text)
	t_me (for normal text after t_mr and t_md)
	t_so (for standout mode)
	t_se (for normal text after t_so)
	t_us (for underlined text)
	t_ue (for normal text after t_us)
	t_ZH (for italic text)
	t_ZR (for normal text after t_ZH)

Standard ANSI escape sequences are used.  The codes are:
30 grey char   40 grey cell   >0 grey background    0 all attributes off
31 black char  41 black cell  >1 black background   1 boldface
32 white char  42 white cell  >2 white background   2 faint
33 blue char   43 blue cell   >3 blue background    3 italic
34 grey char   44 grey cell   >4 grey background    4 underscore
35 black char  45 black cell  >5 black background   7 reverse video
36 white char  46 white cell  >6 white background   8 invisible
37 blue char   47 blue cell   >7 blue background

The codes with '>' must be the last.  The cell and background color should be
the same.  The codes can be combined by separating them with a semicolon.  For
example to get white text on a blue background: >
  :set t_me=^V<Esc>[0;32;43;>3m
  :set t_se=^V<Esc>[0;32;43;>3m
  :set t_ue=^V<Esc>[0;32;43;>3m
  :set t_ZR=^V<Esc>[0;32;43;>3m
  :set t_md=^V<Esc>[1;32;43;>3m
  :set t_mr=^V<Esc>[7;32;43;>3m
  :set t_so=^V<Esc>[0;31;43;>3m
  :set t_us=^V<Esc>[4;32;43;>3m
  :set t_ZH=^V<Esc>[3;32;43;>3m

When using multiple commands with a filter command, e.g. >
  :r! echo this; echo that
Only the output of the last command is used.  To fix this you have to group the
commands.  This depends on the shell you use (that is why it is not done
automatically in Vim).  Examples: >
  :r! (echo this; echo that)
  :r! {echo this; echo that}

Commands that accept a single file name allow for embedded spaces in the file
name.  However, when using commands that accept several file names, embedded
spaces need to be escaped with a backslash.

------------------------------------------------------------------------------
Vim for MorphOS							*MorphOS*

[this section mostly by Ali Akcaagac]

For the latest info about the MorphOS version:
	http://www.akcaagac.com/index_vim.html


Problems ~

There are a couple of problems which are not MorphOS related but more Vim and
UN*X related.  When starting up Vim in ram: it complains with a nag requester
from MorphOS please simply ignore it.  Another problem is when running Vim as
is some plugins will cause a few problems which you can ignore as well.
Hopefully someone will be fixing it over the time.

To pass all these problems for now you can either run:

	vim <file to be edited>

or if you want to run Vim plain and enjoy the motion of Helpfiles etc. it then
would be better to enter:

	vim --noplugins <of course you can add a file>


Installation ~

1) Please copy the binary 'VIM' file to c:
2) Get the Vim runtime package from:

	ftp://ftp.vim.org/pub/vim/amiga/vim62rt.tgz

   and unpack it in your 'Apps' directory of the MorphOS installation.  For me
   this would create following directory hierarchy:

	MorphOS:Apps/Vim/Vim62/...

3) Add the following lines to your s:shell-startup (Important!).

	;Begin VIM
	Set VIM=MorphOS:Apps/Vim/Vim62
	Assign HOME: ""
	;End VIM

4) Copy the '.vimrc' file to s:

5) There is also a file named 'color-sequence' included in this archive.  This
   will set the MorphOS Shell to show ANSI colors.  Please copy the file to s:
   and change the s:shell-startup to:

	;Begin VIM
	Set VIM=MorphOS:Apps/Vim/Vim62
	Assign HOME: ""
	Execute S:Color-Sequence
	Cls
	;End VIM


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Zg�=�p>p>vim80/doc/usr_07.txtnu�[���*usr_07.txt*	For Vim version 8.0.  Last change: 2017 Sep 18

		     VIM USER MANUAL - by Bram Moolenaar

			  Editing more than one file


No matter how many files you have, you can edit them without leaving Vim.
Define a list of files to work on and jump from one to the other.  Copy text
from one file and put it in another one.

|07.1|	Edit another file
|07.2|	A list of files
|07.3|	Jumping from file to file
|07.4|	Backup files
|07.5|	Copy text between files
|07.6|	Viewing a file
|07.7|	Changing the file name

     Next chapter: |usr_08.txt|  Splitting windows
 Previous chapter: |usr_06.txt|  Using syntax highlighting
Table of contents: |usr_toc.txt|

==============================================================================
*07.1*	Edit another file

So far you had to start Vim for every file you wanted to edit.  There is a
simpler way.  To start editing another file, use this command: >

	:edit foo.txt

You can use any file name instead of "foo.txt".  Vim will close the current
file and open the new one.  If the current file has unsaved changes, however,
Vim displays an error message and does not open the new file:

	E37: No write since last change (use ! to override) ~

	Note:
	Vim puts an error ID at the start of each error message.  If you do
	not understand the message or what caused it, look in the help system
	for this ID.  In this case: >

		:help E37

At this point, you have a number of alternatives.  You can write the file
using this command: >

	:write

Or you can force Vim to discard your changes and edit the new file, using the
force (!) character: >

	:edit! foo.txt

If you want to edit another file, but not write the changes in the current
file yet, you can make it hidden: >

	:hide edit foo.txt

The text with changes is still there, but you can't see it.  This is further
explained in section |22.4|: The buffer list.

==============================================================================
*07.2*	A list of files

You can start Vim to edit a sequence of files.  For example: >

	vim one.c two.c three.c

This command starts Vim and tells it that you will be editing three files.
Vim displays just the first file.  After you have done your thing in this
file, to edit the next file you use this command: >

	:next

If you have unsaved changes in the current file, you will get an error
message and the ":next" will not work.  This is the same problem as with
":edit" mentioned in the previous section.  To abandon the changes: >

	:next!

But mostly you want to save the changes and move on to the next file.  There
is a special command for this: >

	:wnext

This does the same as using two separate commands: >

	:write
	:next


WHERE AM I?

To see which file in the argument list you are editing, look in the window
title.  It should show something like "(2 of 3)".  This means you are editing
the second file out of three files.
   If you want to see the list of files, use this command: >

	:args

This is short for "arguments".  The output might look like this:

	one.c [two.c] three.c ~

These are the files you started Vim with.  The one you are currently editing,
"two.c", is in square brackets.


MOVING TO OTHER ARGUMENTS

To go back one file: >

	:previous

This is just like the ":next" command, except that it moves in the other
direction.  Again, there is a shortcut command for when you want to write the
file first: >

	:wprevious

To move to the very last file in the list: >

	:last

And to move back to the first one again: >

	:first

There is no ":wlast" or ":wfirst" command though!

You can use a count for ":next" and ":previous".  To skip two files forward: >

	:2next


AUTOMATIC WRITING

When moving around the files and making changes, you have to remember to use
":write".  Otherwise you will get an error message.  If you are sure you
always want to write modified files, you can tell Vim to automatically write
them: >

	:set autowrite

When you are editing a file which you may not want to write, switch it off
again: >

	:set noautowrite


EDITING ANOTHER LIST OF FILES

You can redefine the list of files without the need to exit Vim and start it
again.  Use this command to edit three other files: >

	:args five.c six.c seven.h

Or use a wildcard, like it's used in the shell: >

	:args *.txt

Vim will take you to the first file in the list.  Again, if the current file
has changes, you can either write the file first, or use ":args!" (with !
added) to abandon the changes.


DID YOU EDIT THE LAST FILE?
							*arglist-quit*
When you use a list of files, Vim assumes you want to edit them all.  To
protect you from exiting too early, you will get this error when you didn't
edit the last file in the list yet:

	E173: 46 more files to edit ~

If you really want to exit, just do it again.  Then it will work (but not when
you did other commands in between).

==============================================================================
*07.3*	Jumping from file to file

To quickly jump between two files, press CTRL-^ (on English-US keyboards the ^
is above the 6 key).  Example: >

	:args one.c two.c three.c

You are now in one.c. >

	:next

Now you are in two.c.  Now use CTRL-^ to go back to one.c.  Another CTRL-^ and
you are back in two.c.  Another CTRL-^ and you are in one.c again.  If you now
do: >

	:next

You are in three.c.  Notice that the CTRL-^ command does not change the idea
of where you are in the list of files.  Only commands like ":next" and
":previous" do that.

The file you were previously editing is called the "alternate" file.  When you
just started Vim CTRL-^ will not work, since there isn't a previous file.


PREDEFINED MARKS

After jumping to another file, you can use two predefined marks which are very
useful: >

	`"

This takes you to the position where the cursor was when you left the file.
Another mark that is remembered is the position where you made the last
change: >

	`.

Suppose you are editing the file "one.txt".  Somewhere halfway through the
file you use "x" to delete a character.  Then you go to the last line with "G"
and write the file with ":w".  You edit several other files, and then use
":edit one.txt" to come back to "one.txt".  If you now use `" Vim jumps to the
last line of the file.  Using `. takes you to the position where you deleted
the character.  Even when you move around in the file `" and `. will take you
to the remembered position.  At least until you make another change or leave
the file.


FILE MARKS

In chapter 4 was explained how you can place a mark in a file with "mx" and
jump to that position with "`x".  That works within one file.  If you edit
another file and place marks there, these are specific for that file.  Thus
each file has its own set of marks, they are local to the file.
   So far we were using marks with a lowercase letter.  There are also marks
with an uppercase letter.  These are global, they can be used from any file.
For example suppose that we are editing the file "foo.txt".  Go to halfway
down the file ("50%") and place the F mark there (F for foo): >

	50%mF

Now edit the file "bar.txt" and place the B mark (B for bar) at its last line:
>
	GmB

Now you can use the "'F" command to jump back to halfway foo.txt.  Or edit yet
another file, type "'B" and you are at the end of bar.txt again.

The file marks are remembered until they are placed somewhere else.  Thus you
can place the mark, do hours of editing and still be able to jump back to that
mark.
   It's often useful to think of a simple connection between the mark letter
and where it is placed.  For example, use the H mark in a header file, M in
a Makefile and C in a C code file.

To see where a specific mark is, give an argument to the ":marks" command: >

	:marks M

You can also give several arguments: >

	:marks MCP

Don't forget that you can use CTRL-O and CTRL-I to jump to older and newer
positions without placing marks there.

==============================================================================
*07.4*	Backup files

Usually Vim does not produce a backup file.  If you want to have one, all you
need to do is execute the following command: >

	:set backup

The name of the backup file is the original file with a  ~  added to the end.
If your file is named data.txt, for example, the backup file name is
data.txt~.
   If you do not like the fact that the backup files end with ~, you can
change the extension: >

	:set backupext=.bak

This will use data.txt.bak instead of data.txt~.
   Another option that matters here is 'backupdir'.  It specifies where the
backup file is written.  The default, to write the backup in the same
directory as the original file, will mostly be the right thing.

	Note:
	When the 'backup' option isn't set but the 'writebackup' is, Vim will
	still create a backup file.  However, it is deleted as soon as writing
	the file was completed successfully.  This functions as a safety
	against losing your original file when writing fails in some way (disk
	full is the most common cause; being hit by lightning might be
	another, although less common).


KEEPING THE ORIGINAL FILE

If you are editing source files, you might want to keep the file before you
make any changes.  But the backup file will be overwritten each time you write
the file.  Thus it only contains the previous version, not the first one.
   To make Vim keep the original file, set the 'patchmode' option.  This
specifies the extension used for the first backup of a changed file.  Usually
you would do this: >

	:set patchmode=.orig

When you now edit the file data.txt for the first time, make changes and write
the file, Vim will keep a copy of the unchanged file under the name
"data.txt.orig".
   If you make further changes to the file, Vim will notice that
"data.txt.orig" already exists and leave it alone.  Further backup files will
then be called "data.txt~" (or whatever you specified with 'backupext').
   If you leave 'patchmode' empty (that is the default), the original file
will not be kept.

==============================================================================
*07.5*	Copy text between files

This explains how to copy text from one file to another.  Let's start with a
simple example.  Edit the file that contains the text you want to copy.  Move
the cursor to the start of the text and press "v".  This starts Visual mode.
Now move the cursor to the end of the text and press "y".  This yanks (copies)
the selected text.
   To copy the above paragraph, you would do: >

	:edit thisfile
	/This
	vjjjj$y

Now edit the file you want to put the text in.  Move the cursor to the
character where you want the text to appear after.  Use "p" to put the text
there. >
	:edit otherfile
	/There
	p

Of course you can use many other commands to yank the text.  For example, to
select whole lines start Visual mode with "V".  Or use CTRL-V to select a
rectangular block.  Or use "Y" to yank a single line, "yaw" to yank-a-word,
etc.
   The "p" command puts the text after the cursor.  Use "P" to put the text
before the cursor.  Notice that Vim remembers if you yanked a whole line or a
block, and puts it back that way.


USING REGISTERS

When you want to copy several pieces of text from one file to another, having
to switch between the files and writing the target file takes a lot of time.
To avoid this, copy each piece of text to its own register.
   A register is a place where Vim stores text.  Here we will use the
registers named a to z (later you will find out there are others).  Let's copy
a sentence to the f register (f for First): >

	"fyas

The "yas" command yanks a sentence like before.  It's the "f that tells Vim
the text should be placed in the f register.  This must come just before the
yank command.
   Now yank three whole lines to the l register (l for line): >

	"l3Y

The count could be before the "l just as well.  To yank a block of text to the
b (for block) register: >

	CTRL-Vjjww"by

Notice that the register specification "b is just before the "y" command.
This is required.  If you would have put it before the "w" command, it would
not have worked.
   Now you have three pieces of text in the f, l and b registers.  Edit
another file, move around and place the text where you want it: >

	"fp

Again, the register specification "f comes before the "p" command.
   You can put the registers in any order.  And the text stays in the register
until you yank something else into it.  Thus you can put it as many times as
you like.

When you delete text, you can also specify a register.  Use this to move
several pieces of text around.  For example, to delete-a-word and write it in
the w register: >

	"wdaw

Again, the register specification comes before the delete command "d".


APPENDING TO A FILE

When collecting lines of text into one file, you can use this command: >

	:write >> logfile

This will write the text of the current file to the end of "logfile".  Thus it
is appended.  This avoids that you have to copy the lines, edit the log file
and put them there.  Thus you save two steps.  But you can only append to the
end of a file.
   To append only a few lines, select them in Visual mode before typing
":write".  In chapter 10 you will learn other ways to select a range of lines.

==============================================================================
*07.6*	Viewing a file

Sometimes you only want to see what a file contains, without the intention to
ever write it back.  There is the risk that you type ":w" without thinking and
overwrite the original file anyway.  To avoid this, edit the file read-only.
   To start Vim in readonly mode, use this command: >

	vim -R file

On Unix this command should do the same thing: >

	view file

You are now editing "file" in read-only mode.  When you try using ":w" you
will get an error message and the file won't be written.
   When you try to make a change to the file Vim will give you a warning:

	W10: Warning: Changing a readonly file ~

The change will be done though.  This allows for formatting the file, for
example, to be able to read it easily.
   If you make changes to a file and forgot that it was read-only, you can
still write it.  Add the ! to the write command to force writing.

If you really want to forbid making changes in a file, do this: >

	vim -M file

Now every attempt to change the text will fail.  The help files are like this,
for example.  If you try to make a change you get this error message:

	E21: Cannot make changes, 'modifiable' is off ~

You could use the -M argument to setup Vim to work in a viewer mode.  This is
only voluntary though, since these commands will remove the protection: >

	:set modifiable
	:set write

==============================================================================
*07.7*	Changing the file name

A clever way to start editing a new file is by using an existing file that
contains most of what you need.  For example, you start writing a new program
to move a file.  You know that you already have a program that copies a file,
thus you start with: >

	:edit copy.c

You can delete the stuff you don't need.  Now you need to save the file under
a new name.  The ":saveas" command can be used for this: >

	:saveas move.c

Vim will write the file under the given name, and edit that file.  Thus the
next time you do ":write", it will write "move.c".  "copy.c" remains
unmodified.
   When you want to change the name of the file you are editing, but don't
want to write the file, you can use this command: >

	:file move.c

Vim will mark the file as "not edited".  This means that Vim knows this is not
the file you started editing.  When you try to write the file, you might get
this message:

	E13: File exists (use ! to override) ~

This protects you from accidentally overwriting another file.

==============================================================================

Next chapter: |usr_08.txt|  Splitting windows

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z.'����vim80/doc/map.txtnu�[���*map.txt*       For Vim version 8.0.  Last change: 2017 Sep 23


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Key mapping, abbreviations and user-defined commands.

This subject is introduced in sections |05.3|, |24.7| and |40.1| of the user
manual.

1. Key mapping			|key-mapping|
   1.1 MAP COMMANDS			|:map-commands|
   1.2 Special arguments		|:map-arguments|
   1.3 Mapping and modes		|:map-modes|
   1.4 Listing mappings			|map-listing|
   1.5 Mapping special keys		|:map-special-keys|
   1.6 Special characters		|:map-special-chars|
   1.7 What keys to map			|map-which-keys|
   1.8 Examples				|map-examples|
   1.9 Using mappings			|map-typing|
   1.10 Mapping alt-keys		|:map-alt-keys|
   1.11 Mapping an operator		|:map-operator|
2. Abbreviations		|abbreviations|
3. Local mappings and functions	|script-local|
4. User-defined commands	|user-commands|

==============================================================================
1. Key mapping				*key-mapping* *mapping* *macro*

Key mapping is used to change the meaning of typed keys.  The most common use
is to define a sequence of commands for a function key.  Example: >

	:map <F2> a<C-R>=strftime("%c")<CR><Esc>

This appends the current date and time after the cursor (in <> notation |<>|).


1.1 MAP COMMANDS					*:map-commands*

There are commands to enter new mappings, remove mappings and list mappings.
See |map-overview| for the various forms of "map" and their relationships with
modes.

{lhs}	means left-hand-side	*{lhs}*
{rhs}	means right-hand-side	*{rhs}*

:map	{lhs} {rhs}		|mapmode-nvo|		*:map*
:nm[ap]	{lhs} {rhs}		|mapmode-n|		*:nm* *:nmap*
:vm[ap]	{lhs} {rhs}		|mapmode-v|		*:vm* *:vmap*
:xm[ap]	{lhs} {rhs}		|mapmode-x|		*:xm* *:xmap*
:smap	{lhs} {rhs}		|mapmode-s|		    *:smap*
:om[ap]	{lhs} {rhs}		|mapmode-o|		*:om* *:omap*
:map!	{lhs} {rhs}		|mapmode-ic|		*:map!*
:im[ap]	{lhs} {rhs}		|mapmode-i|		*:im* *:imap*
:lm[ap]	{lhs} {rhs}		|mapmode-l|		*:lm* *:lmap*
:cm[ap]	{lhs} {rhs}		|mapmode-c|		*:cm* *:cmap*
:tma[p]	{lhs} {rhs}		|mapmode-t|		*:tma* *:tmap*
			Map the key sequence {lhs} to {rhs} for the modes
			where the map command applies.  The result, including
			{rhs}, is then further scanned for mappings.  This
			allows for nested and recursive use of mappings.

						*:nore* *:norem*
:no[remap]  {lhs} {rhs}		|mapmode-nvo|	*:no*  *:noremap* *:nor*
:nn[oremap] {lhs} {rhs}		|mapmode-n|	*:nn*  *:nnoremap*
:vn[oremap] {lhs} {rhs}		|mapmode-v|	*:vn*  *:vnoremap*
:xn[oremap] {lhs} {rhs}		|mapmode-x|	*:xn*  *:xnoremap*
:snor[emap] {lhs} {rhs}		|mapmode-s|	*:snor* *:snoremap*
:ono[remap] {lhs} {rhs}		|mapmode-o|	*:ono* *:onoremap*
:no[remap]! {lhs} {rhs}		|mapmode-ic|	*:no!* *:noremap!*
:ino[remap] {lhs} {rhs}		|mapmode-i|	*:ino* *:inoremap*
:ln[oremap] {lhs} {rhs}		|mapmode-l|	*:ln*  *:lnoremap*
:cno[remap] {lhs} {rhs}		|mapmode-c|	*:cno* *:cnoremap*
:tno[remap] {lhs} {rhs}		|mapmode-t|	*:tno* *:tnoremap*
			Map the key sequence {lhs} to {rhs} for the modes
			where the map command applies.  Disallow mapping of
			{rhs}, to avoid nested and recursive mappings.  Often
			used to redefine a command.  {not in Vi}


:unm[ap]  {lhs}			|mapmode-nvo|		*:unm*  *:unmap*
:nun[map] {lhs}			|mapmode-n|		*:nun*  *:nunmap*
:vu[nmap] {lhs}			|mapmode-v|		*:vu*   *:vunmap*
:xu[nmap] {lhs}			|mapmode-x|		*:xu*   *:xunmap*
:sunm[ap] {lhs}			|mapmode-s|		*:sunm* *:sunmap*
:ou[nmap] {lhs}			|mapmode-o|		*:ou*   *:ounmap*
:unm[ap]! {lhs}			|mapmode-ic|		*:unm!* *:unmap!*
:iu[nmap] {lhs}			|mapmode-i|		*:iu*   *:iunmap*
:lu[nmap] {lhs}			|mapmode-l|		*:lu*   *:lunmap*
:cu[nmap] {lhs}			|mapmode-c|		*:cu*   *:cunmap*
:tunma[p] {lhs}			|mapmode-t|		*:tunma* *:tunmap*
			Remove the mapping of {lhs} for the modes where the
			map command applies.  The mapping may remain defined
			for other modes where it applies.
			Note: Trailing spaces are included in the {lhs}.  This
			unmap does NOT work: >
				:map @@ foo
				:unmap @@ | print

:mapc[lear]			|mapmode-nvo|		*:mapc*   *:mapclear*
:nmapc[lear]			|mapmode-n|		*:nmapc*  *:nmapclear*
:vmapc[lear]			|mapmode-v|		*:vmapc*  *:vmapclear*
:xmapc[lear]			|mapmode-x|		*:xmapc*  *:xmapclear*
:smapc[lear]			|mapmode-s|		*:smapc*  *:smapclear*
:omapc[lear]			|mapmode-o|		*:omapc*  *:omapclear*
:mapc[lear]!			|mapmode-ic|		*:mapc!*  *:mapclear!*
:imapc[lear]			|mapmode-i|		*:imapc*  *:imapclear*
:lmapc[lear]			|mapmode-l|		*:lmapc*  *:lmapclear*
:cmapc[lear]			|mapmode-c|		*:cmapc*  *:cmapclear*
:tmapc[lear]			|mapmode-t|		*:tmapc*  *:tmapclear*
			Remove ALL mappings for the modes where the map
			command applies.  {not in Vi}
			Use the <buffer> argument to remove buffer-local
			mappings |:map-<buffer>|
			Warning: This also removes the default mappings.

:map				|mapmode-nvo|
:nm[ap]				|mapmode-n|
:vm[ap]				|mapmode-v|
:xm[ap]				|mapmode-x|
:sm[ap]				|mapmode-s|
:om[ap]				|mapmode-o|
:map!				|mapmode-ic|
:im[ap]				|mapmode-i|
:lm[ap]				|mapmode-l|
:cm[ap]				|mapmode-c|
:tma[p]				|mapmode-t|
			List all key mappings for the modes where the map
			command applies.  Note that ":map" and ":map!" are
			used most often, because they include the other modes.

:map    {lhs}			|mapmode-nvo|		*:map_l*
:nm[ap] {lhs}			|mapmode-n|		*:nmap_l*
:vm[ap] {lhs}			|mapmode-v|		*:vmap_l*
:xm[ap] {lhs}			|mapmode-x|		*:xmap_l*
:sm[ap] {lhs}			|mapmode-s|		*:smap_l*
:om[ap] {lhs}			|mapmode-o|		*:omap_l*
:map!   {lhs}			|mapmode-ic|		*:map_l!*
:im[ap] {lhs}			|mapmode-i|		*:imap_l*
:lm[ap] {lhs}			|mapmode-l|		*:lmap_l*
:cm[ap] {lhs}			|mapmode-c|		*:cmap_l*
:tma[p] {lhs}			|mapmode-t|		*:tmap_l*
			List the key mappings for the key sequences starting
			with {lhs} in the modes where the map command applies.
			{not in Vi}

These commands are used to map a key or key sequence to a string of
characters.  You can use this to put command sequences under function keys,
translate one key into another, etc.  See |:mkexrc| for how to save and
restore the current mappings.

							*map-ambiguous*
When two mappings start with the same sequence of characters, they are
ambiguous.  Example: >
	:imap aa foo
	:imap aaa bar
When Vim has read "aa", it will need to get another character to be able to
decide if "aa" or "aaa" should be mapped.  This means that after typing "aa"
that mapping won't get expanded yet, Vim is waiting for another character.
If you type a space, then "foo" will get inserted, plus the space.  If you
type "a", then "bar" will get inserted.
{Vi does not allow ambiguous mappings}


1.2 SPECIAL ARGUMENTS					*:map-arguments*

"<buffer>", "<nowait>", "<silent>", "<special>", "<script>", "<expr>" and
"<unique>" can be used in any order.  They must appear right after the
command, before any other arguments.

				*:map-local* *:map-<buffer>* *E224* *E225*
If the first argument to one of these commands is "<buffer>" the mapping will
be effective in the current buffer only.  Example: >
	:map <buffer>  ,w  /[.,;]<CR>
Then you can map ",w" to something else in another buffer: >
	:map <buffer>  ,w  /[#&!]<CR>
The local buffer mappings are used before the global ones.  See <nowait> below
to make a short local mapping not taking effect when a longer global one
exists.
The "<buffer>" argument can also be used to clear mappings: >
	:unmap <buffer> ,w
	:mapclear <buffer>
Local mappings are also cleared when a buffer is deleted, but not when it is
unloaded.  Just like local option values.
Also see |map-precedence|.

						*:map-<nowait>* *:map-nowait*
When defining a buffer-local mapping for "," there may be a global mapping
that starts with ",".  Then you need to type another character for Vim to know
whether to use the "," mapping or the longer one.  To avoid this add the
<nowait> argument.  Then the mapping will be used when it matches, Vim does
not wait for more characters to be typed.  However, if the characters were
already typed they are used.

						*:map-<silent>* *:map-silent*
To define a mapping which will not be echoed on the command line, add
"<silent>" as the first argument.  Example: >
	:map <silent> ,h /Header<CR>
The search string will not be echoed when using this mapping.  Messages from
the executed command are still given though.  To shut them up too, add a
":silent" in the executed command: >
	:map <silent> ,h :exe ":silent normal /Header\r"<CR>
Prompts will still be given, e.g., for inputdialog().
Using "<silent>" for an abbreviation is possible, but will cause redrawing of
the command line to fail.

						*:map-<special>* *:map-special*
Define a mapping with <> notation for special keys, even though the "<" flag
may appear in 'cpoptions'.  This is useful if the side effect of setting
'cpoptions' is not desired.  Example: >
	:map <special> <F12> /Header<CR>
<
						*:map-<script>* *:map-script*
If the first argument to one of these commands is "<script>" and it is used to
define a new mapping or abbreviation, the mapping will only remap characters
in the {rhs} using mappings that were defined local to a script, starting with
"<SID>".  This can be used to avoid that mappings from outside a script
interfere (e.g., when CTRL-V is remapped in mswin.vim), but do use other
mappings defined in the script.
Note: ":map <script>" and ":noremap <script>" do the same thing.  The
"<script>" overrules the command name.  Using ":noremap <script>" is
preferred, because it's clearer that remapping is (mostly) disabled.

						*:map-<unique>* *E226* *E227*
If the first argument to one of these commands is "<unique>" and it is used to
define a new mapping or abbreviation, the command will fail if the mapping or
abbreviation already exists.  Example: >
	:map <unique> ,w  /[#&!]<CR>
When defining a local mapping, there will also be a check if a global map
already exists which is equal.
Example of what will fail: >
	:map ,w  /[#&!]<CR>
	:map <buffer> <unique> ,w  /[.,;]<CR>
If you want to map a key and then have it do what it was originally mapped to,
have a look at |maparg()|.

						*:map-<expr>* *:map-expression*
If the first argument to one of these commands is "<expr>" and it is used to
define a new mapping or abbreviation, the argument is an expression.  The
expression is evaluated to obtain the {rhs} that is used.  Example: >
	:inoremap <expr> . InsertDot()
The result of the InsertDot() function will be inserted.  It could check the
text before the cursor and start omni completion when some condition is met.

For abbreviations |v:char| is set to the character that was typed to trigger
the abbreviation.  You can use this to decide how to expand the {lhs}.  You
should not either insert or change the v:char.

Be very careful about side effects!  The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
For this reason the following is blocked:
- Changing the buffer text |textlock|.
- Editing another buffer.
- The |:normal| command.
- Moving the cursor is allowed, but it is restored afterwards.
If you want the mapping to do any of these let the returned characters do
that.

You can use getchar(), it consumes typeahead if there is any. E.g., if you
have these mappings: >
  inoremap <expr> <C-L> nr2char(getchar())
  inoremap <expr> <C-L>x "foo"
If you now type CTRL-L nothing happens yet, Vim needs the next character to
decide what mapping to use.  If you type 'x' the second mapping is used and
"foo" is inserted.  If you type any other key the first mapping is used,
getchar() gets the typed key and returns it.

Here is an example that inserts a list number that increases: >
	let counter = 0
	inoremap <expr> <C-L> ListItem()
	inoremap <expr> <C-R> ListReset()

	func ListItem()
	  let g:counter += 1
	  return g:counter . '. '
	endfunc

	func ListReset()
	  let g:counter = 0
	  return ''
	endfunc

CTRL-L inserts the next number, CTRL-R resets the count.  CTRL-R returns an
empty string, so that nothing is inserted.

Note that there are some tricks to make special keys work and escape CSI bytes
in the text.  The |:map| command also does this, thus you must avoid that it
is done twice.  This does not work: >
	:imap <expr> <F3> "<Char-0x611B>"
Because the <Char- sequence is escaped for being a |:imap| argument and then
again for using <expr>.  This does work: >
	:imap <expr> <F3> "\u611B"
Using 0x80 as a single byte before other text does not work, it will be seen
as a special key.


1.3 MAPPING AND MODES					*:map-modes*
			*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*

There are six sets of mappings
- For Normal mode: When typing commands.
- For Visual mode: When typing commands while the Visual area is highlighted.
- For Select mode: like Visual mode but typing text replaces the selection.
- For Operator-pending mode: When an operator is pending (after "d", "y", "c",
  etc.).  See below: |omap-info|.
- For Insert mode.  These are also used in Replace mode.
- For Command-line mode: When entering a ":" or "/" command.

Special case: While typing a count for a command in Normal mode, mapping zero
is disabled.  This makes it possible to map zero without making it impossible
to type a count with a zero.

						*map-overview* *map-modes*
Overview of which map command works in which mode.  More details below.
     COMMANDS                    MODES ~
:map   :noremap  :unmap     Normal, Visual, Select, Operator-pending
:nmap  :nnoremap :nunmap    Normal
:vmap  :vnoremap :vunmap    Visual and Select
:smap  :snoremap :sunmap    Select
:xmap  :xnoremap :xunmap    Visual
:omap  :onoremap :ounmap    Operator-pending
:map!  :noremap! :unmap!    Insert and Command-line
:imap  :inoremap :iunmap    Insert
:lmap  :lnoremap :lunmap    Insert, Command-line, Lang-Arg
:cmap  :cnoremap :cunmap    Command-line
:tmap  :tnoremap :tunmap    Terminal-Job


    COMMANDS				      MODES ~
				       Normal  Visual+Select  Operator-pending ~
:map   :noremap   :unmap   :mapclear	 yes	    yes		   yes
:nmap  :nnoremap  :nunmap  :nmapclear	 yes	     -		    -
:vmap  :vnoremap  :vunmap  :vmapclear	  -	    yes		    -
:omap  :onoremap  :ounmap  :omapclear	  -	     -		   yes

:nunmap can also be used outside of a monastery.
						*mapmode-x* *mapmode-s*
Some commands work both in Visual and Select mode, some in only one.  Note
that quite often "Visual" is mentioned where both Visual and Select mode
apply. |Select-mode-mapping|
NOTE: Mapping a printable character in Select mode may confuse the user.  It's
better to explicitly use :xmap and :smap for printable characters.  Or use
:sunmap after defining the mapping.

    COMMANDS				      MODES ~
					  Visual    Select ~
:vmap  :vnoremap  :vunmap  :vmapclear	    yes      yes
:xmap  :xnoremap  :xunmap  :xmapclear	    yes       -
:smap  :snoremap  :sunmap  :smapclear	    -	     yes

			*mapmode-ic* *mapmode-i* *mapmode-c* *mapmode-l*
Some commands work both in Insert mode and Command-line mode, some not:

    COMMANDS				      MODES ~
					  Insert  Command-line	Lang-Arg ~
:map!  :noremap!  :unmap!  :mapclear!	    yes	       yes	   -
:imap  :inoremap  :iunmap  :imapclear	    yes		-	   -
:cmap  :cnoremap  :cunmap  :cmapclear	     -	       yes	   -
:lmap  :lnoremap  :lunmap  :lmapclear	    yes*       yes*	  yes*

The original Vi did not have separate mappings for
Normal/Visual/Operator-pending mode and for Insert/Command-line mode.
Therefore the ":map" and ":map!" commands enter and display mappings for
several modes.  In Vim you can use the ":nmap", ":vmap", ":omap", ":cmap" and
":imap" commands to enter mappings for each mode separately.

							*mapmode-t*
The terminal mappings are used in a terminal window, when typing keys for the
job running in the terminal.  See |terminal-typing|.

							*omap-info*
Operator-pending mappings can be used to define a movement command that can be
used with any operator.  Simple example: ":omap { w" makes "y{" work like "yw"
and "d{" like "dw".

To ignore the starting cursor position and select different text, you can have
the omap start Visual mode to select the text to be operated upon.  Example
that operates on a function name in the current line: >
	onoremap <silent> F :<C-U>normal! 0f(hviw<CR>
The CTRL-U (<C-U>) is used to remove the range that Vim may insert.  The
Normal mode commands find the first '(' character and select the first word
before it.  That usually is the function name.

To enter a mapping for Normal and Visual mode, but not Operator-pending mode,
first define it for all three modes, then unmap it for Operator-pending mode:
	:map    xx something-difficult
	:ounmap xx
Likewise for a mapping for Visual and Operator-pending mode or Normal and
Operator-pending mode.

						*language-mapping*
":lmap" defines a mapping that applies to:
- Insert mode
- Command-line mode
- when entering a search pattern
- the argument of the commands that accept a text character, such as "r" and
  "f"
- for the input() line
Generally: Whenever a character is to be typed that is part of the text in the
buffer, not a Vim command character.  "Lang-Arg" isn't really another mode,
it's just used here for this situation.
   The simplest way to load a set of related language mappings is by using the
'keymap' option.  See |45.5|.
   In Insert mode and in Command-line mode the mappings can be disabled with
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. These commands change the value of
the 'iminsert' option.  When starting to enter a normal command line (not a
search pattern) the mappings are disabled until a CTRL-^ is typed.  The state
last used is remembered for Insert mode and Search patterns separately.  The
state for Insert mode is also used when typing a character as an argument to
command like "f" or "t".
   Language mappings will never be applied to already mapped characters.  They
are only used for typed characters.  This assumes that the language mapping
was already done when typing the mapping.


1.4 LISTING MAPPINGS					*map-listing*

When listing mappings the characters in the first two columns are:

      CHAR	MODE	~
     <Space>	Normal, Visual, Select and Operator-pending
	n	Normal
	v	Visual and Select
	s	Select
	x	Visual
	o	Operator-pending
	!	Insert and Command-line
	i	Insert
	l	":lmap" mappings for Insert, Command-line and Lang-Arg
	c	Command-line
	t	Terminal-Job

Just before the {rhs} a special character can appear:
	*	indicates that it is not remappable
	&	indicates that only script-local mappings are remappable
	@	indicates a buffer-local mapping

Everything from the first non-blank after {lhs} up to the end of the line
(or '|') is considered to be part of {rhs}.  This allows the {rhs} to end
with a space.

Note: When using mappings for Visual mode, you can use the "'<" mark, which
is the start of the last selected Visual area in the current buffer |'<|.

The |:filter| command can be used to select what mappings to list.  The
pattern is matched against the {lhs} and {rhs} in the raw form.

							*:map-verbose*
When 'verbose' is non-zero, listing a key map will also display where it was
last defined.  Example: >

	:verbose map <C-W>*
	n  <C-W>*      * <C-W><C-S>*
		Last set from /home/abcd/.vimrc

See |:verbose-cmd| for more information.


1.5 MAPPING SPECIAL KEYS				*:map-special-keys*

There are three ways to map a special key:
1. The Vi-compatible method: Map the key code.  Often this is a sequence that
   starts with <Esc>.  To enter a mapping like this you type ":map " and then
   you have to type CTRL-V before hitting the function key.  Note that when
   the key code for the key is in the termcap (the t_ options), it will
   automatically be translated into the internal code and become the second
   way of mapping (unless the 'k' flag is included in 'cpoptions').
2. The second method is to use the internal code for the function key.  To
   enter such a mapping type CTRL-K and then hit the function key, or use
   the form "#1", "#2", .. "#9", "#0", "<Up>", "<S-Down>", "<S-F7>", etc.
   (see table of keys |key-notation|, all keys from <Up> can be used).  The
   first ten function keys can be defined in two ways: Just the number, like
   "#2", and with "<F>", like "<F2>".  Both stand for function key 2.  "#0"
   refers to function key 10, defined with option 't_f10', which may be
   function key zero on some keyboards.  The <> form cannot be used when
   'cpoptions' includes the '<' flag.
3. Use the termcap entry, with the form <t_xx>, where "xx" is the name of the
   termcap entry.  Any string entry can be used.  For example: >
     :map <t_F3> G
<  Maps function key 13 to "G".  This does not work if 'cpoptions' includes
   the '<' flag.

The advantage of the second and third method is that the mapping will work on
different terminals without modification (the function key will be
translated into the same internal code or the actual key code, no matter what
terminal you are using.  The termcap must be correct for this to work, and you
must use the same mappings).

DETAIL: Vim first checks if a sequence from the keyboard is mapped.  If it
isn't the terminal key codes are tried (see |terminal-options|).  If a
terminal code is found it is replaced with the internal code.  Then the check
for a mapping is done again (so you can map an internal code to something
else).  What is written into the script file depends on what is recognized.
If the terminal key code was recognized as a mapping the key code itself is
written to the script file.  If it was recognized as a terminal code the
internal code is written to the script file.


1.6 SPECIAL CHARACTERS					*:map-special-chars*
						*map_backslash* *map-backslash*
Note that only CTRL-V is mentioned here as a special character for mappings
and abbreviations.  When 'cpoptions' does not contain 'B', a backslash can
also be used like CTRL-V.  The <> notation can be fully used then |<>|.  But
you cannot use "<C-V>" like CTRL-V to escape the special meaning of what
follows.

To map a backslash, or use a backslash literally in the {rhs}, the special
sequence "<Bslash>" can be used.  This avoids the need to double backslashes
when using nested mappings.

						*map_CTRL-C* *map-CTRL-C*
Using CTRL-C in the {lhs} is possible, but it will only work when Vim is
waiting for a key, not when Vim is busy with something.  When Vim is busy
CTRL-C interrupts/breaks the command.
When using the GUI version on MS-Windows CTRL-C can be mapped to allow a Copy
command to the clipboard.  Use CTRL-Break to interrupt Vim.

					*map_space_in_lhs* *map-space_in_lhs*
To include a space in {lhs} precede it with a CTRL-V (type two CTRL-Vs for
each space).
					*map_space_in_rhs* *map-space_in_rhs*
If you want a {rhs} that starts with a space, use "<Space>".  To be fully Vi
compatible (but unreadable) don't use the |<>| notation, precede {rhs} with a
single CTRL-V (you have to type CTRL-V two times).
						*map_empty_rhs* *map-empty-rhs*
You can create an empty {rhs} by typing nothing after a single CTRL-V (you
have to type CTRL-V two times).  Unfortunately, you cannot do this in a vimrc
file.
							*<Nop>*
An easier way to get a mapping that doesn't produce anything, is to use
"<Nop>" for the {rhs}.  This only works when the |<>| notation is enabled.
For example, to make sure that function key 8 does nothing at all: >
	:map  <F8>  <Nop>
	:map! <F8>  <Nop>
<
							*map-multibyte*
It is possible to map multibyte characters, but only the whole character.  You
cannot map the first byte only.  This was done to prevent problems in this
scenario: >
	:set encoding=latin1
	:imap <M-C> foo
	:set encoding=utf-8
The mapping for <M-C> is defined with the latin1 encoding, resulting in a 0xc3
byte.  If you type the character � (0xe1 <M-a>) in UTF-8 encoding this is the
two bytes 0xc3 0xa1.  You don't want the 0xc3 byte to be mapped then or
otherwise it would be impossible to type the � character.

					*<Leader>* *mapleader*
To define a mapping which uses the "mapleader" variable, the special string
"<Leader>" can be used.  It is replaced with the string value of "mapleader".
If "mapleader" is not set or empty, a backslash is used instead.  Example: >
	:map <Leader>A  oanother line<Esc>
Works like: >
	:map \A  oanother line<Esc>
But after: >
	:let mapleader = ","
It works like: >
	:map ,A  oanother line<Esc>

Note that the value of "mapleader" is used at the moment the mapping is
defined.  Changing "mapleader" after that has no effect for already defined
mappings.

					*<LocalLeader>* *maplocalleader*
<LocalLeader> is just like <Leader>, except that it uses "maplocalleader"
instead of "mapleader".  <LocalLeader> is to be used for mappings which are
local to a buffer.  Example: >
      :map <buffer> <LocalLeader>A  oanother line<Esc>
<
In a global plugin <Leader> should be used and in a filetype plugin
<LocalLeader>.  "mapleader" and "maplocalleader" can be equal.  Although, if
you make them different, there is a smaller chance of mappings from global
plugins to clash with mappings for filetype plugins.  For example, you could
keep "mapleader" at the default backslash, and set "maplocalleader" to an
underscore.

							*map-<SID>*
In a script the special key name "<SID>" can be used to define a mapping
that's local to the script.  See |<SID>| for details.

							*<Plug>*
The special key name "<Plug>" can be used for an internal mapping, which is
not to be matched with any key sequence.  This is useful in plugins
|using-<Plug>|.

							*<Char>* *<Char->*
To map a character by its decimal, octal or hexadecimal number the <Char>
construct can be used:
	<Char-123>	character 123
	<Char-033>	character 27
	<Char-0x7f>	character 127
	<S-Char-114>    character 114 ('r') shifted ('R')
This is useful to specify a (multi-byte) character in a 'keymap' file.
Upper and lowercase differences are ignored.

							*map-comments*
It is not possible to put a comment after these commands, because the '"'
character is considered to be part of the {lhs} or {rhs}. However, one can
use |", since this starts a new, empty command with a comment.

							*map_bar* *map-bar*
Since the '|' character is used to separate a map command from the next
command, you will have to do something special to include  a '|' in {rhs}.
There are three methods:
   use	     works when			   example	~
   <Bar>     '<' is not in 'cpoptions'	   :map _l :!ls <Bar> more^M
   \|	     'b' is not in 'cpoptions'	   :map _l :!ls \| more^M
   ^V|	     always, in Vim and Vi	   :map _l :!ls ^V| more^M

(here ^V stands for CTRL-V; to get one CTRL-V you have to type it twice; you
cannot use the <> notation "<C-V>" here).

All three work when you use the default setting for 'cpoptions'.

When 'b' is present in 'cpoptions', "\|" will be recognized as a mapping
ending in a '\' and then another command.  This is Vi compatible, but
illogical when compared to other commands.

						*map_return* *map-return*
When you have a mapping that contains an Ex command, you need to put a line
terminator after it to have it executed.  The use of <CR> is recommended for
this (see |<>|).  Example: >
   :map  _ls  :!ls -l %:S<CR>:echo "the end"<CR>

To avoid mapping of the characters you type in insert or Command-line mode,
type a CTRL-V first.  The mapping in Insert mode is disabled if the 'paste'
option is on.
							*map-error*
Note that when an error is encountered (that causes an error message or beep)
the rest of the mapping is not executed.  This is Vi-compatible.

Note that the second character (argument) of the commands @zZtTfF[]rm'`"v
and CTRL-X is not mapped.  This was done to be able to use all the named
registers and marks, even when the command with the same name has been
mapped.


1.7 WHAT KEYS TO MAP					*map-which-keys*

If you are going to map something, you will need to choose which key(s) to use
for the {lhs}.  You will have to avoid keys that are used for Vim commands,
otherwise you would not be able to use those commands anymore.  Here are a few
suggestions:
- Function keys <F2>, <F3>, etc..  Also the shifted function keys <S-F1>,
  <S-F2>, etc.  Note that <F1> is already used for the help command.
- Meta-keys (with the ALT key pressed).  Depending on your keyboard accented
  characters may be used as well. |:map-alt-keys|
- Use the '_' or ',' character and then any other character.  The "_" and ","
  commands do exist in Vim (see |_| and |,|), but you probably never use them.
- Use a key that is a synonym for another command.  For example: CTRL-P and
  CTRL-N.  Use an extra character to allow more mappings.
- The key defined by <Leader> and one or more other keys.  This is especially
  useful in scripts. |mapleader|

See the file "index" for keys that are not used and thus can be mapped without
losing any builtin function.  You can also use ":help {key}^D" to find out if
a key is used for some command.  ({key} is the specific key you want to find
out about, ^D is CTRL-D).


1.8 EXAMPLES						*map-examples*

A few examples (given as you type them, for "<CR>" you type four characters;
the '<' flag must not be present in 'cpoptions' for this to work). >

   :map <F3>  o#include
   :map <M-g> /foo<CR>cwbar<Esc>
   :map _x    d/END/e<CR>
   :map! qq   quadrillion questions


Multiplying a count

When you type a count before triggering a mapping, it's like the count was
typed before the {lhs}.  For example, with this mapping: >
   :map <F4>  3w
Typing 2<F4> will result in "23w". Thus not moving 2 * 3 words but 23 words.
If you want to multiply counts use the expression register: >
   :map <F4>  @='3w'<CR>
The part between quotes is the expression being executed. |@=|


1.9 USING MAPPINGS					*map-typing*

Vim will compare what you type with the start of a mapped sequence.  If there
is an incomplete match, it will get more characters until there either is a
complete match or until there is no match at all.  Example: If you map! "qq",
the first 'q' will not appear on the screen until you type another
character.  This is because Vim cannot know if the next character will be a
'q' or not.  If the 'timeout' option is on (which is the default) Vim will
only wait for one second (or as long as specified with the 'timeoutlen'
option).  After that it assumes that the 'q' is to be interpreted as such.  If
you type slowly, or your system is slow, reset the 'timeout' option.  Then you
might want to set the 'ttimeout' option.

			      				*map-precedence*
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
global mappings.  When a buffer-local mapping is the same as a global mapping,
Vim will use the buffer-local mapping.  In addition, Vim will use a complete
mapping immediately if it was defined with <nowait>, even if a longer mapping
has the same prefix.  For example, given the following two mappings: >
    :map <buffer> <nowait> \a   :echo "Local \a"<CR>
    :map                   \abc :echo "Global \abc"<CR>
When typing \a the buffer-local mapping will be used immediately.  Vim will
not wait for more characters to see if the user might be typing \abc.

							*map-keys-fails*
There are situations where key codes might not be recognized:
- Vim can only read part of the key code.  Mostly this is only the first
  character.  This happens on some Unix versions in an xterm.
- The key code is after character(s) that are mapped.  E.g., "<F1><F1>" or
  "g<F1>".

The result is that the key code is not recognized in this situation, and the
mapping fails.  There are two actions needed to avoid this problem:

- Remove the 'K' flag from 'cpoptions'.  This will make Vim wait for the rest
  of the characters of the function key.
- When using <F1> to <F4> the actual key code generated may correspond to
  <xF1> to <xF4>.  There are mappings from <xF1> to <F1>, <xF2> to <F2>, etc.,
  but these are not recognized after another half a mapping.  Make sure the
  key codes for <F1> to <F4> are correct: >
	:set <F1>=<type CTRL-V><type F1>
< Type the <F1> as four characters.  The part after the "=" must be done with
  the actual keys, not the literal text.
Another solution is to use the actual key code in the mapping for the second
special key: >
	:map <F1><Esc>OP :echo "yes"<CR>
Don't type a real <Esc>, Vim will recognize the key code and replace it with
<F1> anyway.

Another problem may be that when keeping ALT or Meta pressed the terminal
prepends ESC instead of setting the 8th bit.  See |:map-alt-keys|.

						*recursive_mapping*
If you include the {lhs} in the {rhs} you have a recursive mapping.  When
{lhs} is typed, it will be replaced with {rhs}.  When the {lhs} which is
included in {rhs} is encountered it will be replaced with {rhs}, and so on.
This makes it possible to repeat a command an infinite number of times.  The
only problem is that the only way to stop this is by causing an error.  The
macros to solve a maze uses this, look there for an example.  There is one
exception: If the {rhs} starts with {lhs}, the first character is not mapped
again (this is Vi compatible).
For example: >
   :map ab abcd
will execute the "a" command and insert "bcd" in the text.  The "ab" in the
{rhs} will not be mapped again.

If you want to exchange the meaning of two keys you should use the :noremap
command.  For example: >
   :noremap k j
   :noremap j k
This will exchange the cursor up and down commands.

With the normal :map command, when the 'remap' option is on, mapping takes
place until the text is found not to be a part of a {lhs}.  For example, if
you use: >
   :map x y
   :map y x
Vim will replace x with y, and then y with x, etc.  When this has happened
'maxmapdepth' times (default 1000), Vim will give the error message
"recursive mapping".

							*:map-undo*
If you include an undo command inside a mapped sequence, this will bring the
text back in the state before executing the macro.  This is compatible with
the original Vi, as long as there is only one undo command in the mapped
sequence (having two undo commands in a mapped sequence did not make sense
in the original Vi, you would get back the text before the first undo).


1.10 MAPPING ALT-KEYS					*:map-alt-keys*

In the GUI Vim handles the Alt key itself, thus mapping keys with ALT should
always work.  But in a terminal Vim gets a sequence of bytes and has to figure
out whether ALT was pressed or not.

By default Vim assumes that pressing the ALT key sets the 8th bit of a typed
character.  Most decent terminals can work that way, such as xterm, aterm and
rxvt.  If your <A-k> mappings don't work it might be that the terminal is
prefixing the character with an ESC character.  But you can just as well type
ESC before a character, thus Vim doesn't know what happened (except for
checking the delay between characters, which is not reliable).

As of this writing, some mainstream terminals like gnome-terminal and konsole
use the ESC prefix.  There doesn't appear a way to have them use the 8th bit
instead.  Xterm should work well by default.  Aterm and rxvt should work well
when started with the "--meta8" argument.  You can also tweak resources like
"metaSendsEscape", "eightBitInput" and "eightBitOutput".

On the Linux console, this behavior can be toggled with the "setmetamode"
command.  Bear in mind that not using an ESC prefix could get you in trouble
with other programs.  You should make sure that bash has the "convert-meta"
option set to "on" in order for your Meta keybindings to still work on it
(it's the default readline behavior, unless changed by specific system
configuration).  For that, you can add the line: >

	set convert-meta on

to your ~/.inputrc file. If you're creating the file, you might want to use: >

	$include /etc/inputrc

as the first line, if that file exists on your system, to keep global options.
This may cause a problem for entering special characters, such as the umlaut.
Then you should use CTRL-V before that character.

Bear in mind that convert-meta has been reported to have troubles when used in
UTF-8 locales.  On terminals like xterm, the "metaSendsEscape" resource can be
toggled on the fly through the "Main Options" menu, by pressing Ctrl-LeftClick
on the terminal; that's a good last resource in case you want to send ESC when
using other applications but not when inside Vim.


1.11 MAPPING AN OPERATOR				*:map-operator*

An operator is used before a {motion} command.  To define your own operator
you must create mapping that first sets the 'operatorfunc' option and then
invoke the |g@| operator.  After the user types the {motion} command the
specified function will be called.

							*g@* *E774* *E775*
g@{motion}		Call the function set by the 'operatorfunc' option.
			The '[ mark is positioned at the start of the text
			moved over by {motion}, the '] mark on the last
			character of the text.
			The function is called with one String argument:
			    "line"	{motion} was |linewise|
			    "char"	{motion} was |characterwise|
			    "block"	{motion} was |blockwise-visual|
			Although "block" would rarely appear, since it can
			only result from Visual mode where "g@" is not useful.
			{not available when compiled without the |+eval|
			feature}

Here is an example that counts the number of spaces with <F4>: >

	nmap <silent> <F4> :set opfunc=CountSpaces<CR>g@
	vmap <silent> <F4> :<C-U>call CountSpaces(visualmode(), 1)<CR>

	function! CountSpaces(type, ...)
	  let sel_save = &selection
	  let &selection = "inclusive"
	  let reg_save = @@

	  if a:0  " Invoked from Visual mode, use gv command.
	    silent exe "normal! gvy"
	  elseif a:type == 'line'
	    silent exe "normal! '[V']y"
	  else
	    silent exe "normal! `[v`]y"
	  endif

	  echomsg strlen(substitute(@@, '[^ ]', '', 'g'))

	  let &selection = sel_save
	  let @@ = reg_save
	endfunction

Note that the 'selection' option is temporarily set to "inclusive" to be able
to yank exactly the right text by using Visual mode from the '[ to the ']
mark.

Also note that there is a separate mapping for Visual mode.  It removes the
"'<,'>" range that ":" inserts in Visual mode and invokes the function with
visualmode() and an extra argument.

==============================================================================
2. Abbreviations			*abbreviations* *Abbreviations*

Abbreviations are used in Insert mode, Replace mode and Command-line mode.
If you enter a word that is an abbreviation, it is replaced with the word it
stands for.  This can be used to save typing for often used long words.  And
you can use it to automatically correct obvious spelling errors.
Examples:

	:iab ms Microsoft
	:iab tihs this

There are three types of abbreviations:

full-id	  The "full-id" type consists entirely of keyword characters (letters
	  and characters from 'iskeyword' option).  This is the most common
	  abbreviation.

	  Examples: "foo", "g3", "-1"

end-id	  The "end-id" type ends in a keyword character, but all the other
	  characters are not keyword characters.

	  Examples: "#i", "..f", "$/7"

non-id	  The "non-id" type ends in a non-keyword character, the other
	  characters may be of any type, excluding space and tab.  {this type
	  is not supported by Vi}

	  Examples: "def#", "4/7$"

Examples of strings that cannot be abbreviations: "a.b", "#def", "a b", "_$r"

An abbreviation is only recognized when you type a non-keyword character.
This can also be the <Esc> that ends insert mode or the <CR> that ends a
command.  The non-keyword character which ends the abbreviation is inserted
after the expanded abbreviation.  An exception to this is the character <C-]>,
which is used to expand an abbreviation without inserting any extra
characters.

Example: >
   :ab hh	hello
<	    "hh<Space>" is expanded to "hello<Space>"
	    "hh<C-]>" is expanded to "hello"

The characters before the cursor must match the abbreviation.  Each type has
an additional rule:

full-id	  In front of the match is a non-keyword character, or this is where
	  the line or insertion starts.  Exception: When the abbreviation is
	  only one character, it is not recognized if there is a non-keyword
	  character in front of it, other than a space or a tab.

end-id	  In front of the match is a keyword character, or a space or a tab,
	  or this is where the line or insertion starts.

non-id	  In front of the match is a space, tab or the start of the line or
	  the insertion.

Examples: ({CURSOR} is where you type a non-keyword character) >
   :ab foo   four old otters
<		" foo{CURSOR}"	  is expanded to " four old otters"
		" foobar{CURSOR}" is not expanded
		"barfoo{CURSOR}"  is not expanded
>
   :ab #i #include
<		"#i{CURSOR}"	  is expanded to "#include"
		">#i{CURSOR}"	  is not expanded
>
   :ab ;; <endofline>
<		"test;;"	  is not expanded
		"test ;;"	  is expanded to "test <endofline>"

To avoid the abbreviation in Insert mode: Type CTRL-V before the character
that would trigger the abbreviation.  E.g. CTRL-V <Space>.  Or type part of
the abbreviation, exit insert mode with <Esc>, re-enter insert mode with "a"
and type the rest.

To avoid the abbreviation in Command-line mode: Type CTRL-V twice somewhere in
the abbreviation to avoid it to be replaced.  A CTRL-V in front of a normal
character is mostly ignored otherwise.

It is possible to move the cursor after an abbreviation: >
   :iab if if ()<Left>
This does not work if 'cpoptions' includes the '<' flag. |<>|

You can even do more complicated things.  For example, to consume the space
typed after an abbreviation: >
   func Eatchar(pat)
      let c = nr2char(getchar(0))
      return (c =~ a:pat) ? '' : c
   endfunc
   iabbr <silent> if if ()<Left><C-R>=Eatchar('\s')<CR>

There are no default abbreviations.

Abbreviations are never recursive.  You can use ":ab f f-o-o" without any
problem.  But abbreviations can be mapped.  {some versions of Vi support
recursive abbreviations, for no apparent reason}

Abbreviations are disabled if the 'paste' option is on.

				*:abbreviate-local* *:abbreviate-<buffer>*
Just like mappings, abbreviations can be local to a buffer.  This is mostly
used in a |filetype-plugin| file.  Example for a C plugin file: >
	:abb <buffer> FF  for (i = 0; i < ; ++i)
<
						*:ab* *:abbreviate*
:ab[breviate]		list all abbreviations.  The character in the first
			column indicates the mode where the abbreviation is
			used: 'i' for insert mode, 'c' for Command-line
			mode, '!' for both.  These are the same as for
			mappings, see |map-listing|.

						*:abbreviate-verbose*
When 'verbose' is non-zero, listing an abbreviation will also display where it
was last defined.  Example: >

	:verbose abbreviate
	!  teh		 the
		Last set from /home/abcd/vim/abbr.vim

See |:verbose-cmd| for more information.

:ab[breviate] {lhs}	list the abbreviations that start with {lhs}
			You may need to insert a CTRL-V (type it twice) to
			avoid that a typed {lhs} is expanded, since
			command-line abbreviations apply here.

:ab[breviate] [<expr>] [<buffer>] {lhs} {rhs}
			add abbreviation for {lhs} to {rhs}.  If {lhs} already
			existed it is replaced with the new {rhs}.  {rhs} may
			contain spaces.
			See |:map-<expr>| for the optional <expr> argument.
			See |:map-<buffer>| for the optional <buffer> argument.

						*:una* *:unabbreviate*
:una[bbreviate] {lhs}	Remove abbreviation for {lhs} from the list.  If none
			is found, remove abbreviations in which {lhs} matches
			with the {rhs}.  This is done so that you can even
			remove abbreviations after expansion.  To avoid
			expansion insert a CTRL-V (type it twice).

						*:norea* *:noreabbrev*
:norea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
			same as ":ab", but no remapping for this {rhs} {not
			in Vi}

						*:ca* *:cabbrev*
:ca[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
			same as ":ab", but for Command-line mode only.  {not
			in Vi}

						*:cuna* *:cunabbrev*
:cuna[bbrev] {lhs}	same as ":una", but for Command-line mode only.  {not
			in Vi}

						*:cnorea* *:cnoreabbrev*
:cnorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
			same as ":ab", but for Command-line mode only and no
			remapping for this {rhs} {not in Vi}

						*:ia* *:iabbrev*
:ia[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
			same as ":ab", but for Insert mode only.  {not in Vi}

						*:iuna* *:iunabbrev*
:iuna[bbrev] {lhs}	same as ":una", but for insert mode only.  {not in
			Vi}

						*:inorea* *:inoreabbrev*
:inorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
			same as ":ab", but for Insert mode only and no
			remapping for this {rhs} {not in Vi}

							*:abc* *:abclear*
:abc[lear] [<buffer>]	Remove all abbreviations.  {not in Vi}

							*:iabc* *:iabclear*
:iabc[lear] [<buffer>]	Remove all abbreviations for Insert mode.  {not in Vi}

							*:cabc* *:cabclear*
:cabc[lear] [<buffer>]	Remove all abbreviations for Command-line mode.  {not
			in Vi}

							*using_CTRL-V*
It is possible to use special characters in the rhs of an abbreviation.
CTRL-V has to be used to avoid the special meaning of most non printable
characters.  How many CTRL-Vs need to be typed depends on how you enter the
abbreviation.  This also applies to mappings.  Let's use an example here.

Suppose you want to abbreviate "esc" to enter an <Esc> character.  When you
type the ":ab" command in Vim, you have to enter this: (here ^V is a CTRL-V
and ^[ is <Esc>)

You type:   ab esc ^V^V^V^V^V^[

	All keyboard input is subjected to ^V quote interpretation, so
	the first, third, and fifth ^V  characters simply allow the second,
	and fourth ^Vs, and the ^[, to be entered into the command-line.

You see:    ab esc ^V^V^[

	The command-line contains two actual ^Vs before the ^[.  This is
	how it should appear in your .exrc file, if you choose to go that
	route.  The first ^V is there to quote the second ^V; the :ab
	command uses ^V as its own quote character, so you can include quoted
	whitespace or the | character in the abbreviation.  The :ab command
	doesn't do anything special with the ^[ character, so it doesn't need
	to be quoted.  (Although quoting isn't harmful; that's why typing 7
	[but not 8!] ^Vs works.)

Stored as:  esc     ^V^[

	After parsing, the abbreviation's short form ("esc") and long form
	(the two characters "^V^[") are stored in the abbreviation table.
	If you give the :ab command with no arguments, this is how the
	abbreviation will be displayed.

	Later, when the abbreviation is expanded because the user typed in
	the word "esc", the long form is subjected to the same type of
	^V interpretation as keyboard input.  So the ^V protects the ^[
	character from being interpreted as the "exit Insert mode" character.
	Instead, the ^[ is inserted into the text.

Expands to: ^[

[example given by Steve Kirkendall]

==============================================================================
3. Local mappings and functions				*script-local*

When using several Vim script files, there is the danger that mappings and
functions used in one script use the same name as in other scripts.  To avoid
this, they can be made local to the script.

						*<SID>* *<SNR>* *E81*
The string "<SID>" can be used in a mapping or menu.  This requires that the
'<' flag is not present in 'cpoptions'.
   When executing the map command, Vim will replace "<SID>" with the special
key code <SNR>, followed by a number that's unique for the script, and an
underscore.  Example: >
	:map <SID>Add
could define a mapping "<SNR>23_Add".

When defining a function in a script, "s:" can be prepended to the name to
make it local to the script.  But when a mapping is executed from outside of
the script, it doesn't know in which script the function was defined.  To
avoid this problem, use "<SID>" instead of "s:".  The same translation is done
as for mappings.  This makes it possible to define a call to the function in
a mapping.

When a local function is executed, it runs in the context of the script it was
defined in.  This means that new functions and mappings it defines can also
use "s:" or "<SID>" and it will use the same unique number as when the
function itself was defined.  Also, the "s:var" local script variables can be
used.

When executing an autocommand or a user command, it will run in the context of
the script it was defined in.  This makes it possible that the command calls a
local function or uses a local mapping.

Otherwise, using "<SID>" outside of a script context is an error.

If you need to get the script number to use in a complicated script, you can
use this function: >
	function s:SID()
	  return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$')
	endfun

The "<SNR>" will be shown when listing functions and mappings.  This is useful
to find out what they are defined to.

The |:scriptnames| command can be used to see which scripts have been sourced
and what their <SNR> number is.

This is all {not in Vi} and {not available when compiled without the |+eval|
feature}.

==============================================================================
4. User-defined commands				*user-commands*

It is possible to define your own Ex commands.  A user-defined command can act
just like a built-in command (it can have a range or arguments, arguments can
be completed as filenames or buffer names, etc), except that when the command
is executed, it is transformed into a normal Ex command and then executed.

For starters: See section |40.2| in the user manual.

					*E183* *E841* *user-cmd-ambiguous*
All user defined commands must start with an uppercase letter, to avoid
confusion with builtin commands.  Exceptions are these builtin commands:
	:Next
	:X
They cannot be used for a user defined command.  ":Print" is also an existing
command, but it is deprecated and can be overruled.

The other characters of the user command can be uppercase letters, lowercase
letters or digits.  When using digits, note that other commands that take a
numeric argument may become ambiguous.  For example, the command ":Cc2" could
be the user command ":Cc2" without an argument, or the command ":Cc" with
argument "2".  It is advised to put a space between the command name and the
argument to avoid these problems.

When using a user-defined command, the command can be abbreviated.  However, if
an abbreviation is not unique, an error will be issued.  Furthermore, a
built-in command will always take precedence.

Example: >
	:command Rename ...
	:command Renumber ...
	:Rena				" Means "Rename"
	:Renu				" Means "Renumber"
	:Ren				" Error - ambiguous
	:command Paste ...
	:P				" The built-in :Print

It is recommended that full names for user-defined commands are used in
scripts.

:com[mand]						*:com* *:command*
			List all user-defined commands.  When listing commands,
			the characters in the first two columns are
			    !	Command has the -bang attribute
			    "	Command has the -register attribute
			    b	Command is local to current buffer
			(see below for details on attributes)
			The list can be filtered on command name with
			|:filter|, e.g., to list all commands with "Pyth" in
			the name: >
				filter Pyth command

:com[mand] {cmd}	List the user-defined commands that start with {cmd}

							*:command-verbose*
When 'verbose' is non-zero, listing a command will also display where it was
last defined. Example: >

    :verbose command TOhtml
<	Name	    Args Range Complete  Definition ~
	TOhtml	    0	 %		 :call Convert2HTML(<line1>, <line2>) ~
	    Last set from /usr/share/vim/vim-7.0/plugin/tohtml.vim ~

See |:verbose-cmd| for more information.

							*E174* *E182*
:com[mand][!] [{attr}...] {cmd} {rep}
			Define a user command.  The name of the command is
			{cmd} and its replacement text is {rep}.  The command's
			attributes (see below) are {attr}.  If the command
			already exists, an error is reported, unless a ! is
			specified, in which case the command is redefined.

:delc[ommand] {cmd}				*:delc* *:delcommand* *E184*
			Delete the user-defined command {cmd}.

:comc[lear]						*:comc* *:comclear*
			Delete all user-defined commands.

Command attributes

User-defined commands are treated by Vim just like any other Ex commands.  They
can have arguments, or have a range specified.  Arguments are subject to
completion as filenames, buffers, etc.  Exactly how this works depends upon the
command's attributes, which are specified when the command is defined.

There are a number of attributes, split into four categories: argument
handling, completion behavior, range handling, and special cases.  The
attributes are described below, by category.

Argument handling				*E175* *E176* *:command-nargs*

By default, a user defined command will take no arguments (and an error is
reported if any are supplied).  However, it is possible to specify that the
command can take arguments, using the -nargs attribute.  Valid cases are:

	-nargs=0    No arguments are allowed (the default)
	-nargs=1    Exactly one argument is required, it includes spaces 
	-nargs=*    Any number of arguments are allowed (0, 1, or many),
		    separated by white space
	-nargs=?    0 or 1 arguments are allowed
	-nargs=+    Arguments must be supplied, but any number are allowed

Arguments are considered to be separated by (unescaped) spaces or tabs in this
context, except when there is one argument, then the white space is part of
the argument.

Note that arguments are used as text, not as expressions.  Specifically,
"s:var" will use the script-local variable in the script where the command was
defined, not where it is invoked!  Example:
    script1.vim: >
	:let s:error = "None"
	:command -nargs=1 Error echoerr <args>
<   script2.vim: >
	:source script1.vim
	:let s:error = "Wrong!"
	:Error s:error
Executing script2.vim will result in "None" being echoed.  Not what you
intended!  Calling a function may be an alternative.

Completion behavior				*:command-completion* *E179*
					*E180* *E181* *:command-complete*
By default, the arguments of user defined commands do not undergo completion.
However, by specifying one or the other of the following attributes, argument
completion can be enabled:

	-complete=arglist	file names in argument list
	-complete=augroup	autocmd groups
	-complete=buffer	buffer names
	-complete=behave	:behave suboptions
	-complete=color		color schemes
	-complete=command	Ex command (and arguments)
	-complete=compiler	compilers
	-complete=cscope	|:cscope| suboptions
	-complete=dir		directory names
	-complete=environment	environment variable names
	-complete=event		autocommand events
	-complete=expression	Vim expression
	-complete=file		file and directory names
	-complete=file_in_path	file and directory names in |'path'|
	-complete=filetype	filetype names |'filetype'|
	-complete=function	function name
	-complete=help		help subjects
	-complete=highlight	highlight groups
	-complete=history	:history suboptions
	-complete=locale	locale names (as output of locale -a)
	-complete=mapclear	buffer argument
	-complete=mapping	mapping name
	-complete=menu		menus
	-complete=messages	|:messages| suboptions
	-complete=option	options
	-complete=packadd	optional package |pack-add| names
	-complete=shellcmd	Shell command
	-complete=sign		|:sign| suboptions
	-complete=syntax	syntax file names |'syntax'|
	-complete=syntime	|:syntime| suboptions
	-complete=tag		tags
	-complete=tag_listfiles	tags, file names are shown when CTRL-D is hit
	-complete=user		user names
	-complete=var		user variables
	-complete=custom,{func} custom completion, defined via {func}
	-complete=customlist,{func} custom completion, defined via {func}

Note: That some completion methods might expand environment variables.


Custom completion			*:command-completion-custom*
					*:command-completion-customlist*
					*E467* *E468*
It is possible to define customized completion schemes via the "custom,{func}"
or the "customlist,{func}" completion argument.  The {func} part should be a
function with the following signature: >

	:function {func}(ArgLead, CmdLine, CursorPos)

The function need not use all these arguments. The function should provide the
completion candidates as the return value.

For the "custom" argument, the function should return the completion
candidates one per line in a newline separated string.

For the "customlist" argument, the function should return the completion
candidates as a Vim List.  Non-string items in the list are ignored.

The function arguments are:
	ArgLead		the leading portion of the argument currently being
			completed on
	CmdLine		the entire command line
	CursorPos	the cursor position in it (byte index)
The function may use these for determining context.  For the "custom"
argument, it is not necessary to filter candidates against the (implicit
pattern in) ArgLead.  Vim will filter the candidates with its regexp engine
after function return, and this is probably more efficient in most cases. For
the "customlist" argument, Vim will not filter the returned completion
candidates and the user supplied function should filter the candidates.

The following example lists user names to a Finger command >
    :com -complete=custom,ListUsers -nargs=1 Finger !finger <args>
    :fun ListUsers(A,L,P)
    :    return system("cut -d: -f1 /etc/passwd")
    :endfun

The following example completes filenames from the directories specified in
the 'path' option: >
    :com -nargs=1 -bang -complete=customlist,EditFileComplete
			\ EditFile edit<bang> <args>
    :fun EditFileComplete(A,L,P)
    :    return split(globpath(&path, a:A), "\n")
    :endfun
<
This example does not work for file names with spaces!


Range handling				*E177* *E178* *:command-range*
							*:command-count*
By default, user-defined commands do not accept a line number range.  However,
it is possible to specify that the command does take a range (the -range
attribute), or that it takes an arbitrary count value, either in the line
number position (-range=N, like the |:split| command) or as a "count"
argument (-count=N, like the |:Next| command).  The count will then be
available in the argument with |<count>|.

Possible attributes are:

	-range	    Range allowed, default is current line
	-range=%    Range allowed, default is whole file (1,$)
	-range=N    A count (default N) which is specified in the line
		    number position (like |:split|); allows for zero line
		    number.
	-count=N    A count (default N) which is specified either in the line
		    number position, or as an initial argument (like |:Next|).
		    Specifying -count (without a default) acts like -count=0

Note that -range=N and -count=N are mutually exclusive - only one should be
specified.

					*:command-addr*
It is possible that the special characters in the range like ., $ or % which
by default correspond to the current line, last line and the whole buffer,
relate to arguments, (loaded) buffers, windows or tab pages.

Possible values are:
	-addr=lines		Range of lines (this is the default)
	-addr=arguments		Range for arguments
	-addr=buffers		Range for buffers (also not loaded buffers)
	-addr=loaded_buffers	Range for loaded buffers
	-addr=windows		Range for windows
	-addr=tabs		Range for tab pages

Special cases				*:command-bang* *:command-bar*
					*:command-register* *:command-buffer*
There are some special cases as well:

	-bang	    The command can take a ! modifier (like :q or :w)
	-bar	    The command can be followed by a "|" and another command.
		    A "|" inside the command argument is not allowed then.
		    Also checks for a " to start a comment.
	-register   The first argument to the command can be an optional
		    register name (like :del, :put, :yank).
	-buffer	    The command will only be available in the current buffer.

In the cases of the -count and -register attributes, if the optional argument
is supplied, it is removed from the argument list and is available to the
replacement text separately.
Note that these arguments can be abbreviated, but that is a deprecated
feature.  Use the full name for new scripts.

Replacement text

The replacement text for a user defined command is scanned for special escape
sequences, using <...> notation.  Escape sequences are replaced with values
from the entered command line, and all other text is copied unchanged.  The
resulting string is executed as an Ex command.  To avoid the replacement use
<lt> in place of the initial <.  Thus to include "<bang>" literally use
"<lt>bang>".

The valid escape sequences are

						*<line1>*
	<line1>	The starting line of the command range.
						*<line2>*
	<line2>	The final line of the command range.
						*<range>*
	<range> The number of items in the command range: 0, 1 or 2
						*<count>*
	<count>	Any count supplied (as described for the '-range'
		and '-count' attributes).
						*<bang>*
	<bang>	(See the '-bang' attribute) Expands to a ! if the
		command was executed with a ! modifier, otherwise
		expands to nothing.
						*<mods>*
	<mods>  The command modifiers, if specified. Otherwise, expands to
		nothing. Supported modifiers are |:aboveleft|, |:belowright|,
		|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
		|:keepjumps|, |:keepmarks|, |:keeppatterns|, |:leftabove|,
		|:lockmarks|, |:noswapfile| |:rightbelow|, |:silent|, |:tab|,
		|:topleft|, |:verbose|, and |:vertical|.
		Note that these are not yet supported: |:noautocmd|,
		|:sandbox| and |:unsilent|.
		Examples: >
		    command! -nargs=+ -complete=file MyEdit
				\ for f in expand(<q-args>, 0, 1) |
				\ exe '<mods> split ' . f |
				\ endfor

		    function! SpecialEdit(files, mods)
			for f in expand(a:files, 0, 1)
			    exe a:mods . ' split ' . f
			endfor
		    endfunction
		    command! -nargs=+ -complete=file Sedit
				\ call SpecialEdit(<q-args>, <q-mods>)
<
						*<reg>* *<register>*
	<reg>	(See the '-register' attribute) The optional register,
		if specified.  Otherwise, expands to nothing.  <register>
		is a synonym for this.
						*<args>*
	<args>	The command arguments, exactly as supplied (but as
		noted above, any count or register can consume some
		of the arguments, which are then not part of <args>).
	<lt>	A single '<' (Less-Than) character.  This is needed if you
		want to get a literal copy of one of these escape sequences
		into the expansion - for example, to get <bang>, use
		<lt>bang>.

							*<q-args>*
If the first two characters of an escape sequence are "q-" (for example,
<q-args>) then the value is quoted in such a way as to make it a valid value
for use in an expression.  This uses the argument as one single value.
When there is no argument <q-args> is an empty string.
							*<f-args>*
To allow commands to pass their arguments on to a user-defined function, there
is a special form <f-args> ("function args").  This splits the command
arguments at spaces and tabs, quotes each argument individually, and the
<f-args> sequence is replaced by the comma-separated list of quoted arguments.
See the Mycmd example below.  If no arguments are given <f-args> is removed.
   To embed whitespace into an argument of <f-args>, prepend a backslash.
<f-args> replaces every pair of backslashes (\\) with one backslash.  A
backslash followed by a character other than white space or a backslash
remains unmodified.  Overview:

	command		   <f-args> ~
	XX ab		   'ab'
	XX a\b		   'a\b'
	XX a\ b		   'a b'
	XX a\  b	   'a ', 'b'
	XX a\\b		   'a\b'
	XX a\\ b	   'a\', 'b'
	XX a\\\b	   'a\\b'
	XX a\\\ b	   'a\ b'
	XX a\\\\b	   'a\\b'
	XX a\\\\ b	   'a\\', 'b'

Examples >

   " Delete everything after here to the end
   :com Ddel +,$d

   " Rename the current buffer
   :com -nargs=1 -bang -complete=file Ren f <args>|w<bang>

   " Replace a range with the contents of a file
   " (Enter this all as one line)
   :com -range -nargs=1 -complete=file
	 Replace <line1>-pu_|<line1>,<line2>d|r <args>|<line1>d

   " Count the number of lines in the range
   :com! -range -nargs=0 Lines  echo <line2> - <line1> + 1 "lines"

   " Call a user function (example of <f-args>)
   :com -nargs=* Mycmd call Myfunc(<f-args>)

When executed as: >
	:Mycmd arg1 arg2
This will invoke: >
	:call Myfunc("arg1","arg2")

   :" A more substantial example
   :function Allargs(command)
   :   let i = 0
   :   while i < argc()
   :	  if filereadable(argv(i))
   :	     execute "e " . argv(i)
   :	     execute a:command
   :      endif
   :      let i = i + 1
   :   endwhile
   :endfunction
   :command -nargs=+ -complete=command Allargs call Allargs(<q-args>)

The command Allargs takes any Vim command(s) as argument and executes it on all
files in the argument list.  Usage example (note use of the "e" flag to ignore
errors and the "update" command to write modified buffers): >
	:Allargs %s/foo/bar/ge|update
This will invoke: >
	:call Allargs("%s/foo/bar/ge|update")
<
When defining a user command in a script, it will be able to call functions
local to the script and use mappings local to the script.  When the user
invokes the user command, it will run in the context of the script it was
defined in.  This matters if |<SID>| is used in a command.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�?vim80/doc/workshop.txtnu�[���*workshop.txt*  For Vim version 8.0.  Last change: 2013 Jul 06


		  VIM REFERENCE MANUAL    by Gordon Prieur


Sun Visual WorkShop Features			*workshop* *workshop-support*

1. Introduction						|workshop-intro|
2. Commands						|workshop-commands|
3. Compiling vim/gvim for WorkShop			|workshop-compiling|
4. Configuring gvim for a WorkShop release tree		|workshop-configure|
5. Obtaining the latest version of the XPM library	|workshop-xpm|

{Vi does not have any of these features}
{only available when compiled with the |+sun_workshop| feature}

==============================================================================
1. Introduction						*workshop-intro*

Sun Visual WorkShop has an "Editor of Choice" feature designed to let users
debug using their favorite editors.  For the 6.0 release we have added support
for gvim.  A workshop debug session will have a debugging window and an editor
window (possibly others as well).  The user can do many debugging operations
from the editor window, minimizing the need to switch from window to window.

The version of vim shipped with Sun Visual WorkShop 6 (also called Forte
Developer 6) is vim 5.3.  The features in this release are much more reliable
than the vim/gvim shipped with Visual WorkShop.  VWS users wishing to use vim
as their editor should compile these sources and install them in their
workshop release tree.

==============================================================================
2. Commands						*workshop-commands*

						*:ws* *:wsverb*
:ws[verb] verb			Pass the verb to the verb executor

Pass the verb to a workshop function which gathers some arguments and
sends the verb and data to workshop over an IPC connection.

==============================================================================
3. Compiling vim/gvim for WorkShop			*workshop-compiling*

Compiling vim with FEAT_SUN_WORKSHOP turns on all compile time flags necessary
for building a vim to work with Visual WorkShop.  The features required for VWS
have been built and tested using the Sun compilers from the VWS release.  They
have not been built or tested using Gnu compilers.  This does not mean the
features won't build and run if compiled with gcc, just that nothing is
guaranteed with gcc!

==============================================================================
4. Configuring gvim for a WorkShop release tree		*workshop-configure*

There are several assumptions which must be met in order to compile a gvim for
use with Sun Visual WorkShop 6.

    o You should use the compiler in VWS rather than gcc.  We have neither
      built nor tested with gcc and cannot guarantee it will build properly.

    o You must supply your own XPM library.  See |workshop-xpm| below for
      details on obtaining the latest version of XPM.

    o Edit the Makefile in the src directory and uncomment the lines for Sun
      Visual WorkShop.  You can easily find these by searching for the string
      FEAT_SUN_WORKSHOP

    o We also suggest you use Motif for your gui.  This will provide gvim with
      the same look-and-feel as the rest of Sun Visual WorkShop.

The following configuration line can be used to configure vim to build for use
with Sun Visual WorkShop:

    $ CC=cc configure --enable-workshop --enable-gui=motif \
	-prefix=<VWS-install-dir>/contrib/contrib6/<vim-version>

The VWS-install-dir should be the base directory where your Sun Visual WorkShop
was installed.  By default this is /opt/SUNWspro.  It will normally require
root permissions to install the vim release.  You will also need to change the
symlink <VWS-install-dir>/bin/gvim to point to the vim in your newly installed
directory.  The <vim-version> should be a unique version string.  I use "vim"
concatenated with the equivalent of version.h's VIM_VERSION_SHORT.

==============================================================================
5. Obtaining the latest version of the XPM library	*workshop-xpm*

The XPM library is required to show images within Vim with Motif or Athena.
Without it the toolbar and signs will be disabled.

The XPM library is provided by Arnaud Le Hors of the French National Institute
for Research in Computer Science and Control.  It can be downloaded from
http://cgit.freedesktop.org/xorg/lib/libXpm.  The current release, as of this
writing, is xpm-3.4k-solaris.tgz, which is a gzip'ed tar file.  If you create
the directory /usr/local/xpm and untar the file there you can use the
uncommented lines in the Makefile without changing them.  If you use another
xpm directory you will need to change the XPM_DIR in src/Makefile.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�w���vim80/doc/os_qnx.txtnu�[���*os_qnx.txt*    For Vim version 8.0.  Last change: 2005 Mar 29


		  VIM REFERENCE MANUAL    by Julian Kinraid


							*QNX* *qnx*

1. General			|qnx-general|
2. Compiling Vim		|qnx-compiling|
3. Terminal support		|qnx-terminal|
4. Photon GUI			|photon-gui|
5. Photon fonts			|photon-fonts|
6. Bugs & things To Do

==============================================================================

1. General						*qnx-general*

Vim on QNX behaves much like other unix versions. |os_unix.txt|


2. Compiling Vim					*qnx-compiling*

Vim can be compiled using the standard configure/make approach.  If you want to
compile for X11, pass the --with-x option to configure.  Otherwise, running
./configure without any arguments or passing --enable-gui=photon, will compile
vim with the Photon gui support.  Run ./configure --help , to find out other
features you can enable/disable.


3. Terminal support					*qnx-terminal*

Vim has support for the mouse and clipboard in a pterm, if those options
are compiled in, which they are normally.

The options that affect mouse support are |'mouse'| and |'ttymouse'|.  When
using the mouse, only simple left and right mouse clicking/dragging is
supported.  If you hold down shift, ctrl, or alt while using the mouse, pterm
will handle the mouse itself.  It will make a selection, separate from what
vim's doing.

When the mouse is in use, you can press Alt-RightMouse to open the pterm menu.
To turn the mouse off in vim, set the mouse option to nothing, set mouse=


4. Photon GUI						*photon-gui*

To start the gui for vim, you need to run either gvim or vim -g, otherwise
the terminal version will run.  For more info - |gui-x11-start|

Supported features:
	:browse command					|:browse|
	:confirm command				|:confirm|
	Cursor blinking					|'guicursor'|
	Menus, popup menus and menu priorities		|:menu|
							|popup-menu|
							|menu-priority|
	Toolbar						|gui-toolbar|
							|'toolbar'|
	Font selector (:set guifont=*)			|photon-fonts|
	Mouse focus					|'mousefocus'|
	Mouse hide					|'mousehide'|
	Mouse cursor shapes				|'mouseshape'|
	Clipboard					|gui-clipboard|

Unfinished features:
	Various international support, such as Farsi & Hebrew support,
	different encodings, etc.

	This help file

Unsupported features:
	Find & Replace window				|:promptfind|
	Tearoff menus

	Other things which I can't think of so I can't list them


5. Fonts						*photon-fonts*

You set fonts in the gui with the guifont option >
	:set guifont=Lucida\ Terminal
<
The font must be a monospace font, and any spaces in the font name must be
escaped with a '\'.  The default font used is PC Terminal, size 8.  Using
'*' as the font name will open a standard Photon font selector where you can
select a font.

Following the name, you can include optional settings to control the size and
style of the font, each setting separated by a ':'.  Not all fonts support the
various styles.

The options are,
    s{size}	Set the size of the font to {size}
    b		Bold style
    a		Use antialiasing
    i		Italic style

Examples:

Set the font to monospace size 10 with antialiasing >
	:set guifont=monospace:s10:a
<
Set the font to Courier size 12, with bold and italics >
	:set guifont=Courier:s12:b:i
<
Select a font with the requester >
	:set guifont=*
<


6. Bugs & things To Do

Known problems:
	- Vim hangs sometimes when running an external program.  Workaround:
	  put this line in your |vimrc| file: >
		set noguipty

Bugs:
	- Still a slight problem with menu highlighting.
	- When using phditto/phinows/etc., if you are using a font that
	  doesn't support the bold attribute, when vim attempts to draw
	  bold text it will be all messed up.
	- The cursor can sometimes be hard to see.
	- A number of minor problems that can fixed. :)

Todo:
	- Improve multi-language support.
	- Options for setting the fonts used in the menu and toolbar.
	- Find & Replace dialog.
	- The clientserver features.
	- Maybe tearoff menus.

	- Replace usage of fork() with spawn() when launching external
	  programs.

 vim:tw=78:sw=4:ts=8:ts=8:ft=help:norl:
PK�j�Z�L"dppvim80/doc/rileft.txtnu�[���*rileft.txt*    For Vim version 8.0.  Last change: 2006 Apr 24


		  VIM REFERENCE MANUAL    by Avner Lottem
					  updated by Nadim Shaikli


Right to Left display mode for Vim				*rileft*


These functions were originally created by Avner Lottem:
   E-mail: alottem@iil.intel.com
   Phone:  +972-4-8307322

{Vi does not have any of these commands}

								*E26*
{only available when compiled with the |+rightleft| feature}


Introduction
------------
Some languages such as Arabic, Farsi, Hebrew (among others) require the
ability to display their text from right-to-left.  Files in those languages
are stored conventionally and the right-to-left requirement is only a
function of the display engine (per the Unicode specification).  In
right-to-left oriented files the characters appear on the screen from
right to left.

Bidirectionality (or bidi for short) is what Unicode offers as a full
solution to these languages.  Bidi offers the user the ability to view
both right-to-left as well as left-to-right text properly at the same time
within the same window.  Vim currently, due to simplicity, does not offer
bidi and is merely opting to present a functional means to display/enter/use
right-to-left languages.  An older hybrid solution in which direction is
encoded for every character (or group of characters) are not supported either
as this kind of support is out of the scope of a simple addition to an
existing editor (and it's not sanctioned by Unicode either).


Highlights
----------
o  Editing left-to-right files as in the original Vim, no change.

o  Viewing and editing files in right-to-left windows.  File orientation
   is per window, so it is possible to view the same file in right-to-left
   and left-to-right modes, simultaneously.  (Useful for editing mixed files
   in which both right-to-left and left-to-right text exist).

o  Compatibility to the original Vim.  Almost all features work in
   right-to-left mode (see Bugs below).

o  Backing from reverse insert mode to the correct place in the file
   (if possible).

o  No special terminal with right-to-left capabilities is required.  The
   right-to-left changes are completely hardware independent.

o  Many languages use and require right-to-left support.  These languages
   can quite easily be supported given the inclusion of their required
   keyboard mappings and some possible minor code change.  Some of the
   current supported languages include - |arabic.txt|, |farsi.txt| and
   |hebrew.txt|.


Of Interest...
--------------

o  Invocations
   -----------
   + 'rightleft' ('rl') sets window orientation to right-to-left.
   + 'delcombine' ('deco'), boolean, if editing UTF-8 encoded languages,
     allows one to remove a composing character which gets superimposed
     on those that proceeded them (some languages require this).
   + 'rightleftcmd' ('rlc') sets the command-line within certain modes
     (such as search) to be utilized in right-to-left orientation as well.

o  Typing backwards					*ins-reverse*
   ----------------
   In lieu of using full-fledged the 'rightleft' option, one can opt for
   reverse insertion.  When the 'revins' (reverse insert) option is set,
   inserting happens backwards.  This can be used to type right-to-left
   text.  When inserting characters the cursor is not moved and the text
   moves rightwards.  A <BS> deletes the character under the cursor.
   CTRL-W and CTRL-U also work in the opposite direction.  <BS>, CTRL-W
   and CTRL-U do not stop at the start of insert or end of line, no matter
   how the 'backspace' option is set.

   There is no reverse replace mode (yet).

   If the 'showmode' option is set, "-- REVERSE INSERT --" will be shown
   in the status line when reverse Insert mode is active.

o  Pasting when in a rightleft window
   ----------------------------------
   When cutting text with the mouse and pasting it in a rightleft window
   the text will be reversed, because the characters come from the cut buffer
   from the left to the right, while inserted in the file from the right to
   the left.   In order to avoid it, toggle 'revins' before pasting.


Bugs
----
o  Does not handle CTRL-A and CTRL-X commands (add and subtract) correctly
   when in rightleft window.

o  Does not support reverse insert and rightleft modes on the command-line.
   However, functionality of the editor is not reduced, because it is
   possible to enter mappings, abbreviations and searches typed from the
   left to the right on the command-line.

o  Somewhat slower in right-to-left mode, because right-to-left motion is
   emulated inside Vim, not by the controlling terminal.

o  When the Athena GUI is used, the bottom scrollbar works in the wrong
   direction.  This is difficult to fix.

o  When both 'rightleft' and 'revins' are on: 'textwidth' does not work.
   Lines do not wrap at all; you just get a single, long line.

o  There is no full bidirectionality (bidi) support.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Ze��$�E�Evim80/doc/usr_45.txtnu�[���*usr_45.txt*	For Vim version 8.0.  Last change: 2008 Nov 15

		     VIM USER MANUAL - by Bram Moolenaar

			     Select your language


The messages in Vim can be given in several languages.  This chapter explains
how to change which one is used.  Also, the different ways to work with files
in various languages is explained.

|45.1|	Language for Messages
|45.2|	Language for Menus
|45.3|	Using another encoding
|45.4|	Editing files with a different encoding
|45.5|	Entering language text

     Next chapter: |usr_90.txt|  Installing Vim
 Previous chapter: |usr_44.txt|  Your own syntax highlighted
Table of contents: |usr_toc.txt|

==============================================================================
*45.1*	Language for Messages

When you start Vim, it checks the environment to find out what language you
are using.  Mostly this should work fine, and you get the messages in your
language (if they are available).  To see what the current language is, use
this command: >

	:language

If it replies with "C", this means the default is being used, which is
English.

	Note:
	Using different languages only works when Vim was compiled to handle
	it.  To find out if it works, use the ":version" command and check the
	output for "+gettext" and "+multi_lang".  If they are there, you are
	OK.  If you see "-gettext" or "-multi_lang" you will have to find
	another Vim.

What if you would like your messages in a different language?  There are
several ways.  Which one you should use depends on the capabilities of your
system.
   The first way is to set the environment to the desired language before
starting Vim.  Example for Unix: >

	env LANG=de_DE.ISO_8859-1  vim

This only works if the language is available on your system.  The advantage is
that all the GUI messages and things in libraries will use the right language
as well.  A disadvantage is that you must do this before starting Vim.  If you
want to change language while Vim is running, you can use the second method: >

	:language fr_FR.ISO_8859-1

This way you can try out several names for your language.  You will get an
error message when it's not supported on your system.  You don't get an error
when translated messages are not available.  Vim will silently fall back to
using English.
   To find out which languages are supported on your system, find the
directory where they are listed.  On my system it is "/usr/share/locale".  On
some systems it's in "/usr/lib/locale".  The manual page for "setlocale"
should give you a hint where it is found on your system.
   Be careful to type the name exactly as it should be.  Upper and lowercase
matter, and the '-' and '_' characters are easily confused.

You can also set the language separately for messages, edited text and the
time format.  See |:language|.


DO-IT-YOURSELF MESSAGE TRANSLATION

If translated messages are not available for your language, you could write
them yourself.  To do this, get the source code for Vim and the GNU gettext
package.  After unpacking the sources, instructions can be found in the
directory src/po/README.txt.
   It's not too difficult to do the translation.  You don't need to be a
programmer.  You must know both English and the language you are translating
to, of course.
   When you are satisfied with the translation, consider making it available
to others.  Upload it at vim-online (http://vim.sf.net) or e-mail it to
the Vim maintainer <maintainer@vim.org>.  Or both.

==============================================================================
*45.2*	Language for Menus

The default menus are in English.  To be able to use your local language, they
must be translated.  Normally this is automatically done for you if the
environment is set for your language, just like with messages.  You don't need
to do anything extra for this.  But it only works if translations for the
language are available.
   Suppose you are in Germany, with the language set to German, but prefer to
use "File" instead of "Datei".  You can switch back to using the English menus
this way: >

	:set langmenu=none

It is also possible to specify a language: >

	:set langmenu=nl_NL.ISO_8859-1

Like above, differences between "-" and "_" matter.  However, upper/lowercase
differences are ignored here.
   The 'langmenu' option must be set before the menus are loaded.  Once the
menus have been defined changing 'langmenu' has no direct effect.  Therefore,
put the command to set 'langmenu' in your vimrc file.
   If you really want to switch menu language while running Vim, you can do it
this way: >

	:source $VIMRUNTIME/delmenu.vim
	:set langmenu=de_DE.ISO_8859-1
	:source $VIMRUNTIME/menu.vim

There is one drawback: All menus that you defined yourself will be gone.  You
will need to redefine them as well.


DO-IT-YOURSELF MENU TRANSLATION

To see which menu translations are available, look in this directory:

	$VIMRUNTIME/lang ~

The files are called menu_{language}.vim.  If you don't see the language you
want to use, you can do your own translations.  The simplest way to do this is
by copying one of the existing language files, and change it.
   First find out the name of your language with the ":language" command.  Use
this name, but with all letters made lowercase.  Then copy the file to your
own runtime directory, as found early in 'runtimepath'.  For example, for Unix
you would do: >

	:!cp $VIMRUNTIME/lang/menu_ko_kr.euckr.vim ~/.vim/lang/menu_nl_be.iso_8859-1.vim

You will find hints for the translation in "$VIMRUNTIME/lang/README.txt".

==============================================================================
*45.3*	Using another encoding

Vim guesses that the files you are going to edit are encoded for your
language.  For many European languages this is "latin1".  Then each byte is
one character.  That means there are 256 different characters possible.  For
Asian languages this is not sufficient.  These mostly use a double-byte
encoding, providing for over ten thousand possible characters.  This still
isn't enough when a text is to contain several different languages.  This is
where Unicode comes in.  It was designed to include all characters used in
commonly used languages.  This is the "Super encoding that replaces all
others".  But it isn't used that much yet.
   Fortunately, Vim supports these three kinds of encodings.  And, with some
restrictions, you can use them even when your environment uses another
language than the text.
   Nevertheless, when you only edit files that are in the encoding of your
language, the default should work fine and you don't need to do anything.  The
following is only relevant when you want to edit different languages.

	Note:
	Using different encodings only works when Vim was compiled to handle
	it.  To find out if it works, use the ":version" command and check the
	output for "+multi_byte".  If it's there, you are OK.  If you see
	"-multi_byte" you will have to find another Vim.


USING UNICODE IN THE GUI

The nice thing about Unicode is that other encodings can be converted to it
and back without losing information.  When you make Vim use Unicode
internally, you will be able to edit files in any encoding.
   Unfortunately, the number of systems supporting Unicode is still limited.
Thus it's unlikely that your language uses it.  You need to tell Vim you want
to use Unicode, and how to handle interfacing with the rest of the system.
   Let's start with the GUI version of Vim, which is able to display Unicode
characters.  This should work: >

	:set encoding=utf-8
	:set guifont=-misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1

The 'encoding' option tells Vim the encoding of the characters that you use.
This applies to the text in buffers (files you are editing), registers, Vim
script files, etc.  You can regard 'encoding' as the setting for the internals
of Vim.
   This example assumes you have this font on your system.  The name in the
example is for the X Window System.  This font is in a package that is used to
enhance xterm with Unicode support.  If you don't have this font, you might
find it here:

	http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz ~

For MS-Windows, some fonts have a limited number of Unicode characters.  Try
using the "Courier New" font.  You can use the Edit/Select Font... menu to
select and try out the fonts available.  Only fixed-width fonts can be used
though.  Example: >

	:set guifont=courier_new:h12

If it doesn't work well, try getting a fontpack.  If Microsoft didn't move it,
you can find it here:

	http://www.microsoft.com/typography/fonts/default.aspx ~

Now you have told Vim to use Unicode internally and display text with a
Unicode font.  Typed characters still arrive in the encoding of your original
language.  This requires converting them to Unicode.  Tell Vim the language
from which to convert with the 'termencoding' option.  You can do it like
this: >

	:let &termencoding = &encoding
	:set encoding=utf-8

This assigns the old value of 'encoding' to 'termencoding' before setting
'encoding' to utf-8.  You will have to try out if this really works for your
setup.  It should work especially well when using an input method for an Asian
language, and you want to edit Unicode text.


USING UNICODE IN A UNICODE TERMINAL

There are terminals that support Unicode directly.  The standard xterm that
comes with XFree86 is one of them.  Let's use that as an example.
   First of all, the xterm must have been compiled with Unicode support.  See
|UTF8-xterm| how to check that and how to compile it when needed.
   Start the xterm with the "-u8" argument.  You might also need so specify a
font.  Example: >

   xterm -u8 -fn -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1

Now you can run Vim inside this terminal.  Set 'encoding' to "utf-8" as
before.  That's all.


USING UNICODE IN AN ORDINARY TERMINAL

Suppose you want to work with Unicode files, but don't have a terminal with
Unicode support.  You can do this with Vim, although characters that are not
supported by the terminal will not be displayed.  The layout of the text
will be preserved.  >

	:let &termencoding = &encoding
	:set encoding=utf-8

This is the same as what was used for the GUI.  But it works differently: Vim
will convert the displayed text before sending it to the terminal.  That
avoids that the display is messed up with strange characters.
   For this to work the conversion between 'termencoding' and 'encoding' must
be possible.  Vim will convert from latin1 to Unicode, thus that always works.
For other conversions the |+iconv| feature is required.
   Try editing a file with Unicode characters in it.  You will notice that Vim
will put a question mark (or underscore or some other character) in places
where a character should be that the terminal can't display.  Move the cursor
to a question mark and use this command: >

	ga

Vim will display a line with the code of the character.  This gives you a hint
about what character it is.  You can look it up in a Unicode table.  You could
actually view a file that way, if you have lots of time at hand.

	Note:
	Since 'encoding' is used for all text inside Vim, changing it makes
	all non-ASCII text invalid.  You will notice this when using registers
	and the 'viminfo' file (e.g., a remembered search pattern).  It's
	recommended to set 'encoding' in your vimrc file, and leave it alone.

==============================================================================
*45.4*	Editing files with a different encoding

Suppose you have setup Vim to use Unicode, and you want to edit a file that is
in 16-bit Unicode.  Sounds simple, right?  Well, Vim actually uses utf-8
encoding internally, thus the 16-bit encoding must be converted, since there
is a difference between the character set (Unicode) and the encoding (utf-8 or
16-bit).
   Vim will try to detect what kind of file you are editing.  It uses the
encoding names in the 'fileencodings' option.  When using Unicode, the default
value is: "ucs-bom,utf-8,latin1".  This means that Vim checks the file to see
if it's one of these encodings:

	ucs-bom		File must start with a Byte Order Mark (BOM).  This
			allows detection of 16-bit, 32-bit and utf-8 Unicode
			encodings.
	utf-8		utf-8 Unicode.  This is rejected when a sequence of
			bytes is illegal in utf-8.
	latin1		The good old 8-bit encoding.  Always works.

When you start editing that 16-bit Unicode file, and it has a BOM, Vim will
detect this and convert the file to utf-8 when reading it.  The 'fileencoding'
option (without s at the end) is set to the detected value.  In this case it
is "utf-16le".  That means it's Unicode, 16-bit and little-endian.  This
file format is common on MS-Windows (e.g., for registry files).
   When writing the file, Vim will compare 'fileencoding' with 'encoding'.  If
they are different, the text will be converted.
   An empty value for 'fileencoding' means that no conversion is to be done.
Thus the text is assumed to be encoded with 'encoding'.

If the default 'fileencodings' value is not good for you, set it to the
encodings you want Vim to try.  Only when a value is found to be invalid will
the next one be used.  Putting "latin1" first doesn't work, because it is
never illegal.  An example, to fall back to Japanese when the file doesn't
have a BOM and isn't utf-8: >

	:set fileencodings=ucs-bom,utf-8,sjis

See |encoding-values| for suggested values.  Other values may work as well.
This depends on the conversion available.


FORCING AN ENCODING

If the automatic detection doesn't work you must tell Vim what encoding the
file is.  Example: >

	:edit ++enc=koi8-r russian.txt

The "++enc" part specifies the name of the encoding to be used for this file
only.  Vim will convert the file from the specified encoding, Russian in this
example, to 'encoding'.  'fileencoding' will also be set to the specified
encoding, so that the reverse conversion can be done when writing the file.
   The same argument can be used when writing the file.  This way you can
actually use Vim to convert a file.  Example: >

	:write ++enc=utf-8 russian.txt
<
	Note:
	Conversion may result in lost characters.  Conversion from an encoding
	to Unicode and back is mostly free of this problem, unless there are
	illegal characters.  Conversion from Unicode to other encodings often
	loses information when there was more than one language in the file.

==============================================================================
*45.5*	Entering language text

Computer keyboards don't have much more than a hundred keys.  Some languages
have thousands of characters, Unicode has over hundred thousand.  So how do
you type these characters?
   First of all, when you don't use too many of the special characters, you
can use digraphs.  This was already explained in |24.9|.
   When you use a language that uses many more characters than keys on your
keyboard, you will want to use an Input Method (IM).  This requires learning
the translation from typed keys to resulting character.  When you need an IM
you probably already have one on your system.  It should work with Vim like
with other programs.  For details see |mbyte-XIM| for the X Window system and
|mbyte-IME| for MS-Windows.


KEYMAPS

For some languages the character set is different from latin, but uses a
similar number of characters.  It's possible to map keys to characters.  Vim
uses keymaps for this.
   Suppose you want to type Hebrew.  You can load the keymap like this: >

	:set keymap=hebrew

Vim will try to find a keymap file for you.  This depends on the value of
'encoding'.  If no matching file was found, you will get an error message.

Now you can type Hebrew in Insert mode.  In Normal mode, and when typing a ":"
command, Vim automatically switches to English.  You can use this command to
switch between Hebrew and English: >

	CTRL-^

This only works in Insert mode and Command-line mode.  In Normal mode it does
something completely different (jumps to alternate file).
   The usage of the keymap is indicated in the mode message, if you have the
'showmode' option set.  In the GUI Vim will indicate the usage of keymaps with
a different cursor color.
   You can also change the usage of the keymap with the 'iminsert' and
'imsearch' options.

To see the list of mappings, use this command: >

	:lmap

To find out which keymap files are available, in the GUI you can use the
Edit/Keymap menu.  Otherwise you can use this command: >

	:echo globpath(&rtp, "keymap/*.vim")


DO-IT-YOURSELF KEYMAPS

You can create your own keymap file.  It's not very difficult.  Start with
a keymap file that is similar to the language you want to use.  Copy it to the
"keymap" directory in your runtime directory.  For example, for Unix, you
would use the directory "~/.vim/keymap".
   The name of the keymap file must look like this:

	keymap/{name}.vim ~
or
	keymap/{name}_{encoding}.vim ~

{name} is the name of the keymap.  Chose a name that is obvious, but different
from existing keymaps (unless you want to replace an existing keymap file).
{name} cannot contain an underscore.  Optionally, add the encoding used after
an underscore.  Examples:

	keymap/hebrew.vim ~
	keymap/hebrew_utf-8.vim ~

The contents of the file should be self-explanatory.  Look at a few of the
keymaps that are distributed with Vim.  For the details, see |mbyte-keymap|.


LAST RESORT

If all other methods fail, you can enter any character with CTRL-V:

	encoding   type			range ~
	8-bit	   CTRL-V 123		decimal 0-255
	8-bit	   CTRL-V x a1		hexadecimal 00-ff
	16-bit     CTRL-V u 013b	hexadecimal 0000-ffff
	31-bit	   CTRL-V U 001303a4	hexadecimal 00000000-7fffffff

Don't type the spaces.  See |i_CTRL-V_digit| for the details.

==============================================================================

Next chapter: |usr_90.txt|  Installing Vim

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�K�w?�?�vim80/doc/version5.txtnu�[���*version5.txt*  For Vim version 8.0.  Last change: 2016 Feb 27


		  VIM REFERENCE MANUAL    by Bram Moolenaar

Welcome to Vim Version 5.0!

This document lists the differences between Vim 4.x and Vim 5.0.
Although 5.0 is mentioned here, this is also for version 5.1, 5.2, etc.
See |vi_diff.txt| for an overview of differences between Vi and Vim 5.0.
See |version4.txt| for differences between Vim 3.0 and Vim 4.0.

INCOMPATIBLE:				|incompatible-5|

Default value for 'compatible' changed	|cp-default|
Text formatting command "Q" changed	|Q-command-changed|
Command-line arguments changed		|cmdline-changed|
Autocommands are kept			|autocmds-kept|
Use of 'hidden' changed			|hidden-changed|
Text object commands changed		|text-objects-changed|
X-Windows Resources removed		|x-resources|
Use of $VIM				|$VIM-use|
Use of $HOME for MS-DOS and Win32	|$HOME-use|
Tags file format changed		|tags-file-changed|
Options changed				|options-changed|
CTRL-B in Insert mode gone		|i_CTRL-B-gone|

NEW FEATURES:				|new-5|

Syntax highlighting			|new-highlighting|
Built-in script language		|new-script|
Perl and Python support			|new-perl-python|
Win32 GUI version			|added-win32-GUI|
VMS version				|added-VMS|
BeOS version				|added-BeOS|
Macintosh GUI version			|added-Mac|
More Vi compatible			|more-compatible|
Read input from stdin			|read-stdin|
Regular expression patterns		|added-regexp|
Overloaded tags				|tag-overloaded|
New commands				|new-commands|
New options				|added-options|
New command-line arguments		|added-cmdline-args|
Various additions			|added-various|

IMPROVEMENTS				|improvements-5|

COMPILE TIME CHANGES			|compile-changes-5|

BUG FIXES				|bug-fixes-5|

VERSION 5.1			|version-5.1|
Changed					|changed-5.1|
Added					|added-5.1|
Fixed					|fixed-5.1|

VERSION 5.2			|version-5.2|
Long lines editable			|long-lines|
File browser added			|file-browser-5.2|
Dialogs added				|dialogs-added|
Popup menu added			|popup-menu-added|
Select mode added			|new-Select-mode|
Session files added			|new-session-files|
User defined functions and commands	|new-user-defined|
New interfaces				|interfaces-5.2|
New ports				|ports-5.2|
Multi-byte support			|new-multi-byte|
New functions				|new-functions-5.2|
New options				|new-options-5.2|
New Ex commands				|new-ex-commands-5.2|
Changed					|changed-5.2|
Added					|added-5.2|
Fixed					|fixed-5.2|

VERSION 5.3			|version-5.3|
Changed					|changed-5.3|
Added					|added-5.3|
Fixed					|fixed-5.3|

VERSION 5.4			|version-5.4|
Runtime directory introduced		|new-runtime-dir|
Filetype introduced			|new-filetype-5.4|
Vim script line continuation		|new-line-continuation|
Improved session files			|improved-sessions|
Autocommands improved			|improved-autocmds-5.4|
Encryption				|new-encryption|
GTK GUI port				|new-GTK-GUI|
Menu changes				|menu-changes-5.4|
Viminfo improved			|improved-viminfo|
Various new commands			|new-commands-5.4|
Various new options			|new-options-5.4|
Vim scripts				|new-script-5.4|
Avoid hit-enter prompt			|avoid-hit-enter|
Improved quickfix			|improved-quickfix|
Regular expressions			|regexp-changes-5.4|
Changed					|changed-5.4|
Added					|added-5.4|
Fixed					|fixed-5.4|

VERSION 5.5			|version-5.5|
Changed					|changed-5.5|
Added					|added-5.5|
Fixed					|fixed-5.5|

VERSION 5.6			|version-5.6|
Changed					|changed-5.6|
Added					|added-5.6|
Fixed					|fixed-5.6|

VERSION 5.7			|version-5.7|
Changed					|changed-5.7|
Added					|added-5.7|
Fixed					|fixed-5.7|

VERSION 5.8			|version-5.8|
Changed					|changed-5.8|
Added					|added-5.8|
Fixed					|fixed-5.8|

==============================================================================
				 INCOMPATIBLE		*incompatible-5*

Default value for 'compatible' changed			*cp-default*
--------------------------------------

Vim version 5.0 tries to be more Vi compatible.  This helps people who use Vim
as a drop-in replacement for Vi, but causes some things to be incompatible
with version 4.x.

In version 4.x the default value for the 'compatible' option was off.  Now the
default is on.  The first thing you will notice is that the "u" command undoes
itself.  Other side effects will be that mappings may work differently or not
work at all.

Since a lot of people switching from Vim 4.x to 5.0 will find this annoying,
the 'compatible' option is switched off if Vim finds a vimrc file.  This is a
bit of magic to make sure that 90% of the Vim users will not be bitten by
this change.

What does this mean?
- If you prefer to run in 'compatible' mode and don't have a vimrc file, you
  don't have to do anything.
- If you prefer to run in 'nocompatible' mode and do have a vimrc file, you
  don't have to do anything.
- If you prefer to run in 'compatible' mode and do have a vimrc file, you
  should put this line first in your vimrc file: >
	:set compatible
- If you prefer to run in 'nocompatible' mode and don't have a vimrc file,
  you can do one of the following:
    - Create an empty vimrc file (e.g.: "~/.vimrc" for Unix).
    - Put this command in your .exrc file or $EXINIT: >
		:set nocompatible
<   - Start Vim with the "-N" argument.

If you are new to Vi and Vim, using 'nocompatible' is strongly recommended,
because Vi has a lot of unexpected side effects, which are avoided by this
setting.  See 'compatible'.

If you like some things from 'compatible' and some not, you can tune the
compatibility with 'cpoptions'.

When you invoke Vim as "ex" or "gex", Vim always starts in compatible mode.


Text formatting command "Q" changed			*Q-command-changed*
-----------------------------------

The "Q" command formerly formatted lines to the width the 'textwidth' option
specifies.  The command for this is now "gq" (see |gq| for more info).  The
reason for this change is that "Q" is the standard Vi command to enter "Ex"
mode, and Vim now does in fact have an "Ex" mode (see |Q| for more info).

If you still want to use "Q" for formatting, use this mapping: >
	:noremap Q gq
And if you also want to use the functionality of "Q": >
	:noremap gQ Q


Command-line arguments changed				*cmdline-changed*
------------------------------

Command-line file-arguments and option-arguments can now be mixed.  You can
give options after the file names.  Example: >
   vim main.c -g

This is not possible when editing a file that starts with a '-'.  Use the "--"
argument then |---|: >
   vim -g -- -main.c

"-v" now means to start Ex in Vi mode, use "-R" for read-only mode.
old: "vim -v file"	|-v|
new: "vim -R file"	|-R|

"-e" now means to start Vi in Ex mode, use "-q" for quickfix.
old: "vim -e errorfile"	|-e|
new: "vim -q errorfile" |-q|

"-s" in Ex mode now means to run in silent (batch) mode. |-s-ex|

"-x" reserved for crypt, use "-f" to avoid starting a new CLI (Amiga).
old: "vim -x file"	|-x|
new: "vim -f file"	|-f|

Vim allows up to ten "+cmd" and "-c cmd" arguments.  Previously Vim executed
only the last one.

"-n" now overrides any setting for 'updatecount' in a vimrc file, but not in
a gvimrc file.


Autocommands are kept					*autocmds-kept*
---------------------

Before version 5.0, autocommands with the same event, file name pattern, and
command could appear only once.  This was fine for simple autocommands (like
setting option values), but for more complicated autocommands, where the same
command might appear twice, this restriction caused problems.  Therefore
Vim stores all autocommands and keeps them in the order that they are defined.

The most obvious side effect of this change is that when you source a vimrc
file twice, the autocommands in it will be defined twice.  To avoid this, do
one of these:

- Remove any autocommands that might potentially defined twice before
  defining them.  Example: >
	:au! * *.ext
	:au BufEnter *.ext ...

- Put the autocommands inside an ":if" command.  Example: >
	if !exists("did_ext_autocmds")
	  let did_ext_autocmds = 1
	  autocmd BufEnter *.ext ...
	endif

- Put your autocommands in a different autocommand group so you can remove
  them before defining them |:augroup|: >
	augroup uncompress
	  au!
	  au BufReadPost *.gz ...
	augroup END


Use of 'hidden' changed					*hidden-changed*
-----------------------

In version 4.x, only some commands used the 'hidden' option.  Now all commands
uses it whenever a buffer disappears from a window.

Previously you could do ":buf xxx" in a changed buffer and that buffer would
then become hidden.  Now you must set the 'hidden' option for this to work.

The new behavior is simpler: whether Vim hides buffers no longer depends on
the specific command that you use.
- with 'hidden' not set, you never get hidden buffers.  Exceptions are the
  ":hide" and ":close!" commands and, in rare cases, where you would otherwise
  lose changes to the buffer.
- With 'hidden' set, you almost never unload a buffer.  Exceptions are the
  ":bunload" or ":bdel" commands.

":buffer" now supports a "!": abandon changes in current buffer.  So do
":bnext", ":brewind", etc.


Text object commands changed				*text-objects-changed*
----------------------------

Text object commands have new names.  This allows more text objects and makes
characters available for other Visual mode commands.  Since no more single
characters were available, text objects names now require two characters.
The first one is always 'i' or 'a'.
	OLD	NEW	~
	a	aw	a word			|v_aw|
	A	aW	a WORD			|v_aW|
	s	as	a sentence		|v_as|
	p	ap	a paragraph		|v_ap|
	S	ab	a () block		|v_ab|
	P	aB	a {} block		|v_aB|

There is another set of text objects that starts with "i", for "inner".  These
select the same objects, but exclude white space.


X-Windows Resources removed				*x-resources*
--------------------------

Vim no longer supports the following X resources:
- boldColor
- italicColor
- underlineColor
- cursorColor

Vim now uses highlight groups to set colors.  This avoids the confusion of
using a bold Font, which would imply a certain color.  See |:highlight| and
|gui-resources|.


Use of $VIM						*$VIM-use*
-----------

Vim now uses the VIM environment variable to find all Vim system files.  This
includes the global vimrc, gvimrc, and menu.vim files and all on-line help
and syntax files.  See |$VIM|.  Starting with version 5.4, |$VIMRUNTIME| can
also be used.
For Unix, Vim sets a default value for $VIM when doing "make install".
When $VIM is not set, its default value is the directory from 'helpfile',
excluding "/doc/help.txt".


Use of $HOME for MS-DOS and Win32			*$HOME-use*
---------------------------------

The MS-DOS and Win32 versions of Vim now first check $HOME when searching for
a vimrc or exrc file and for reading/storing the viminfo file.  Previously Vim
used $VIM for these systems, but this causes trouble on a system with several
users.  Now Vim uses $VIM only when $HOME is not set or the file is not found
in $HOME.  See |_vimrc|.


Tags file format changed				*tags-file-changed*
------------------------

Only tabs are allowed to separate fields in a tags file.  This allows for
spaces in a file name and is still Vi compatible.  In previous versions of
Vim, any white space was allowed to separate the fields.  If you have a file
which doesn't use a single tab between fields, edit the tags file and execute
this command: >
	:%s/\(\S*\)\s\+\(\S*\)\s\+\(.*\)/\1\t\2\t\3/


Options changed						*options-changed*
---------------

The default value of 'errorfile' has changed from "errors.vim" to "errors.err".
The reason is that only Vim scripts should have the ".vim" extensions.

The ":make" command no longer uses the 'errorfile' option.  This prevents the
output of the ":make" command from overwriting a manually saved error file.
":make" uses the 'makeef' option instead.  This also allows for generating a
unique name, to prevent concurrently running ":make" commands from overwriting
each other's files.

With 'insertmode' set, a few more things change:
- <Esc> in Normal mode goes to Insert mode.
- <Esc> in Insert mode doesn't leave Insert mode.
- When doing ":set im", go to Insert mode immediately.

Vim considers a buffer to be changed when the 'fileformat' (formerly the
'textmode' option) is different from the buffer's initial format.


CTRL-B in Insert mode gone				*i_CTRL-B-gone*
--------------------------

When Vim was compiled with the |+rightleft| feature, you could use CTRL-B to
toggle the 'revins' option.  Unfortunately, some people hit the 'B' key
accidentally when trying to type CTRL-V or CTRL-N and then didn't know how to
undo this.  Since toggling the 'revins' option can easily be done with the
mapping below, this use of the CTRL-B key is disabled.  You can still use the
CTRL-_ key for this |i_CTRL-_|. >
   :imap <C-B> <C-O>:set revins!<CR>

==============================================================================
				 NEW FEATURES		*new-5*

Syntax highlighting					*new-highlighting*
-------------------

Vim now has a very flexible way to highlighting just about any type of file.
See |syntax|.  Summary: >
   :syntax on

Colors and attributes can be set for the syntax highlighting, and also for
other highlighted items with the ':' flag in the 'highlight' option.  All
highlighted items are assigned a highlight group which specifies their
highlighting.  See |:highlight|.  The default colors have been improved.

You can use the "Normal" group to set the default fore/background colors for a
color terminal.  For the GUI, you can use this group to specify the font, too.

The "2html.vim" script can be used to convert any file that has syntax
highlighting to HTML.  The colors will be exactly the same as how you see them
in Vim.  With a HTML viewer you can also print the file with colors.


Built-in script language				*new-script*
------------------------

A few extra commands and an expression evaluator enable you to write simple
but powerful scripts.  Commands include ":if" and ":while".  Expressions can
manipulate numbers and strings.  You can use the '=' register to insert
directly the result of an expression.  See |expression|.


Perl and Python support					*new-perl-python*
-----------------------

Vim can call Perl commands with ":perldo", ":perl", etc.  See |perl|.
Patches made by Sven Verdoolaege and Matt Gerassimoff.

Vim can call Python commands with ":python" and ":pyfile".  See |python|.

Both of these are only available when enabled at compile time.


Win32 GUI version					*added-win32-GUI*
-----------------

The GUI has been ported to MS Windows 95 and NT.  All the features of the X11
GUI are available to Windows users now.  |gui-w32|
This also fixes problems with running the Win32 console version under Windows
95, where console support has always been bad.
There is also a version that supports OLE automation interface.  |if_ole.txt|
Vim can be integrated with Microsoft Developer Studio using the VisVim DLL.
It is possible to produce a DLL version of gvim with Borland C++ (Aaron).


VMS version						*added-VMS*
-----------

Vim can now also be used on VMS systems.  Port done by Henk Elbers.
This has not been tested much, but it should work.
Sorry, no documentation!


BeOS version						*added-BeOS*
------------

Vim can be used on BeOS systems (including the BeBox).  (Olaf Seibert)
See |os_beos.txt|.


Macintosh GUI version					*added-Mac*
---------------------

Vim can now be used on the Macintosh.  (Dany St-Amant)
It has not been tested much yet, be careful!
See |os_mac.txt|.


More Vi compatible					*more-compatible*
------------------

There is now a real Ex mode.  Started with the "Q" command, or by calling the
executable "ex" or "gex".  |Ex-mode|

Always allow multi-level undo, also in Vi compatible mode.  When the 'u' flag
in 'cpoptions' is included, CTRL-R is used for repeating the undo or redo
(like "." in Nvi).


Read input from stdin					*read-stdin*
---------------------

When using the "-" command-line argument, Vim reads its text input from stdin.
This can be used for putting Vim at the end of a pipe: >
   grep "^a.*" *.c | vim -
See |--|.


Regular expression patterns				*added-regexp*
---------------------------

Added specifying a range for the number of matches of an atom: "\{a,b}". |/\{|
Added the "shortest match" regexp "\{-}" (Webb).
Added "\s", matches a white character.  Can replace "[ \t]".		 |/\s|
Added "\S", matches a non-white character.  Can replace "[^ \t]".	 |/\S|


Overloaded tags						*tag-overloaded*
---------------

When using a language like C++, there can be several tags for the same
tagname.  Commands have been added to be able to jump to any of these
overloaded tags:
|:tselect|	List matching tags, and jump to one of them.
|:stselect|	Idem, and split window.
|g_CTRL-]|	Do ":tselect" with the word under the cursor.

	After ":ta {tagname}" with multiple matches:
|:tnext|	Go to next matching tag.
|:tprevious|	Go to previous matching tag.
|:trewind|	Go to first matching tag.
|:tlast|	Go to last matching tag.

The ":tag" command now also accepts wildcards.  When doing command-line
completion on tags, case-insensitive matching is also available (at the end).


New commands						*new-commands*
------------

|:amenu|	Define menus for all modes, inserting a CTRL-O for Insert
		mode, ESC for Visual and CTRL-C for Cmdline mode.  "amenu" is
		used for the default menus and the Syntax menu.

|:augroup|	Set group to be used for following autocommands.  Allows the
		grouping of autocommands to enable deletion of a specific
		group.

|:crewind|	Go to first error.
|:clast|	Go to last error.

|:doautoall|	Execute autocommands for all loaded buffers.

|:echo|		Echo its argument, which is an expression.  Can be used to
		display messages which include variables.

|:execute|	Execute its argument, which is an expression.  Can be used to
		built up an Ex command with anything.

|:hide|		Works like ":close".

|:if|		Conditional execution, for built-in script language.

|:intro|	Show introductory message.  This is always executed when Vim
		is started without file arguments.

|:let|		Assign a value to an internal variable.

|:omap|		Map only in operator-pending mode.  Makes it possible to map
		text-object commands.

|:redir|	Redirect output of messages to a file.

|:update|	Write when buffer has changed.

|:while|	While-loop for built-in script language.

Visual mode:
|v_O|		"O" in Visual block mode, moves the cursor to the other corner
		horizontally.
|v_D|		"D" in Visual block mode deletes till end of line.

Insert mode:
|i_CTRL-]|	Triggers abbreviation, without inserting any character.


New options						*added-options*
-----------

'background'	Used for selecting highlight color defaults.  Also used in
		"syntax.vim" for selecting the syntax colors.  Often set
		automatically, depending on the terminal used.

'complete'	Specifies how Insert mode completion works.

'eventignore'	Makes it possible to ignore autocommands temporarily.

'fileformat'	Current file format.  Replaces 'textmode'.
'fileformats'	Possible file formats.  Replaces 'textauto'.
		New is that this also supports Macintosh format: A single <CR>
		separates lines.
		The default for 'fileformats' for MS-DOS, Win32 and OS/2 is
		"dos,unix", also when 'compatible' set.  Unix type files
		didn't work anyway when 'fileformats' was empty.

'guicursor'	Set the cursor shape and blinking in various modes.
		Default is to adjust the cursor for Insert and Replace mode,
		and when an operator is pending.  Blinking is default on.

'fkmap'		Farsi key mapping.

'hlsearch'	Highlight all matches with the last used search pattern.

'hkmapp'	Phonetic Hebrew mapping. (Ilya Dogolazky)

'iconstring'	Define the name of the icon, when not empty.  (Version 5.2: the
		string is used literally, a newline can be used to make two
		lines.)

'lazyredraw'	Don't redraw the screen while executing macros, registers or
		other not typed commands.

'makeef'	Errorfile to be used for ":make".  "##" is replaced with a
		unique number.  Avoids that two Vim sessions overwrite each
		others errorfile.  The Unix default is "/tmp/vim##.err"; for
		Amiga "t:vim##.Err, for others "vim##.err".

'matchtime'	1/10s of a second to show a matching paren, when 'showmatch'
		is set.  Like Nvi.

'mousehide'	Hide mouse pointer in GUI when typing text.

'nrformats'	Defines what bases Vim will consider for numbers when using
		the CTRL-A and CTRL-X commands.  Default: "hex,octal".

'shellxquote'	Add extra quotes around the whole shell command, including
		redirection.

'softtabstop'	Make typing behave like tabstop is set at this value, without
		changing the value of 'tabstop'.  Makes it more easy to keep
		'ts' at 8, while still getting four spaces for a <Tab>.

'titlestring'	String for the window title, when not empty.  (Version 5.2:
		this string is used literally, a newline can be used to make
		two lines.)

'verbose'	Level of verbosity.  Makes it possible to show which .vimrc,
		.exrc, .viminfo files etc. are used for initializing.  Also
		to show autocommands that are being executed.  Can also be set
		by using the "-V" command-line argument.


New command-line arguments				*added-cmdline-args*
--------------------------

|-U|		Set the gvimrc file to be used.  Like "-u" for the vimrc.

|-V|		Set the 'verbose' option.  E.g. "vim -V10".

|-N|		Start in non-compatible mode.

|-C|		Start in compatible mode.

|-Z|		Start in restricted mode, disallow shell commands.  Can also
		be done by calling the executable "rvim".

|-h|		Show usage information and exit.


Various additions					*added-various*
-----------------

Added support for SNiFF+ connection (submitted by Toni Leherbauer).  Vim can
be used as an editor for SNiFF.  No documentation available...

For producing a bug report, the bugreport.vim script has been included.
Can be used with ":so $VIMRUNTIME/bugreport.vim", which creates the file
"bugreport.txt" in the current directory. |bugs|

Added range to ":normal" command.  Now you can repeat the same command for
each line in the range.  |:normal-range|

Included support for the Farsi language (Shiran).  Only when enabled at
compile time.  See |farsi|.

==============================================================================
				 IMPROVEMENTS		*improvements-5*

Performance:
- When 'showcmd' was set, mappings would execute much more slowly because the
  output would be flushed very often.  Helps a lot when executing the "life"
  macros with 'showcmd' set.
- Included patches for binary searching in tags file (David O'Neill).
  Can be disabled by resetting the 'tagbsearch' option.
- Don't update the ruler when repeating insert (slowed it down a lot).
- For Unix, file name expansion is now done internally instead of starting a
  shell for it.
- Expand environment variables with expand_env(), instead of calling the
  shell.  Makes ":so $VIMRUNTIME/syntax/syntax.vim" a LOT faster.
- Reduced output for cursor positioning: Use CR-LF for moving to first few
  columns in next few lines;  Don't output CR twice when using termios.
- Optimized cursor positioning.  Use CR, BS and NL when it's shorter than
  absolute cursor positioning.
- Disable redrawing while repeating insert "1000ii<Esc>".
- Made "d$" or "D" for long lines a lot faster (delete all characters at once,
  instead of one by one).
- Access option table by first letter, instead of searching from start.
- Made setting special highlighting attributes a lot faster by using
  highlight_attr[], instead of searching in the 'highlight' string.
- Don't show the mode when redrawing is disabled.
- When setting an option, only redraw the screen when required.
- Improved performance of Ex commands by using a lookup table for the first
  character.

Options:
'cinoptions'	Added 'g' flag, for C++ scope declarations.
'cpoptions'	Added 'E' flag: Disallow yanking, deleting, etc. empty text
		area.  Default is to allow empty yanks.  When 'E' is included,
		"y$" in an empty line now is handled as an error (Vi
		compatible).
		Added 'j' flag: Only add two spaces for a join after a '.',
		not after a '?' or '!'.
		Added 'A' flag: don't give ATTENTION message.
		Added 'L' flag: When not included, and 'list' is set,
		'textwidth' formatting works like 'list' is not set.
		Added 'W' flag:  Let ":w!" behave like Vi: don't overwrite
		readonly files, or a file owned by someone else.
'highlight'	Added '@' flag, for '@' characters after the last line on the
		screen, and '$' at the end of the line when 'list' is set.
		Added 'i' flag: Set highlighting for 'incsearch'.  Default
		uses "IncSearch" highlight group, which is linked to "Visual".
		Disallow 'h' flag in 'highlight' (wasn't used anymore since
		3.0).
'guifont'	Win32 GUI only: When set to "*" brings up a font requester.
'guipty'	Default on, because so many people need it.
'path'		Can contain wildcards, and "**" for searching a whole tree.
'shortmess'	Added 'I' flag to avoid the intro message.
'viminfo'	Added '%' flag: Store buffer list in viminfo file.

- Increased defaults for 'maxmem' and 'maxmemtot' for Unix and Win32.  Most
  machines have much more RAM now that prices have dropped.
- Implemented ":set all&", set all options to their default value. |:set|

Swap file:
- Don't create a swap file for a readonly file.  Then create one on the first
  change.  Also create a swapfile when the amount of memory used is getting
  too high. |swap-file|
- Make swap file "hidden", if possible.  On Unix this is done by prepending a
  dot to the swap file name.  When long file names are used, the DJGPP and
  Win32 versions also prepend a dot, in case a file on a mounted Unix file
  system is edited.  |:swapname|  On MSDOS the hidden file attribute is NOT
  set, because this causes problems with share.exe.
- 'updatecount' always defaults to non-zero, also for Vi compatible mode.
  This means there is a swap file, which can be used for recovery.

Tags:
- Included ctags 2.0 (Darren Hiebert).  The syntax for static tags changed
  from
	{tag}:{fname}	{fname}	{command}
  to
	{tag}	{fname}	{command};"	file:
  Which is both faster to parse, shorter and Vi compatible.  The old format is
  also still accepted, unless disabled in src/feature.h (see OLD_STATIC_TAGS).
  |tags-file-format|
- Completion of tags now also includes static tags for other files, at the
  end.
- Included "shtags" from Stephen Riehm.
- When finding a matching tag, but the file doesn't exist, continue searching
  for another match.  Helps when using the same tags file (with links) for
  different versions of source code.
- Give a tag with a global match in the current file a higher priority than a
  global match in another file.

Included xxd version V1.8 (Juergen Weigert).

Autocommands:
- VimLeave autocommands are executed after writing the viminfo file, instead
  of before.  |VimLeave|
- Allow changing autocommands while executing them.  This allows for
  self-modifying autocommands.  (idea from Goldberg)
- When using autocommands with two or more patterns, could not split
  ":if/:endif" over two lines.  Now all matching autocommands are executed in
  one do_cmdline().
- Autocommands no longer change the command repeated with ".".
- Search patterns are restored after executing autocommands.  This avoids
  that the 'hlsearch' highlighting is messed up by autocommands.
- When trying to execute an autocommand, also try matching the pattern with
  the short file name.  Helps when short file name is different from full
  file name (expanded symbolic links). |autocmd-patterns|
- Made the output of ":autocmd" shorter and look better.
- Expand <sfile> in an ":autocmd" when it is defined.  |<sfile>|
- Added "nested" flag to ":autocmd", allows nesting.  |autocmd-nested|
- Added [group] argument to ":autocmd".  Overrides the currently set group.
  |autocmd-groups|
- new events:
  |BufUnload|		before a buffer is unloaded
  |BufDelete|		before a buffer is deleted from the buffer list
  |FileChangedShell|	when a file's modification time has changed after
			executing a shell command
  |User|		user-defined autocommand
- When 'modified' was set by a BufRead* autocommand, it was reset again
  afterwards.  Now the ":set modified" is remembered.

GUI:
- Improved GUI scrollbar handling when redrawing is slower than the scrollbar
  events are generated.
- "vim -u NONE" now also stops loading the .gvimrc and other GUI inits.  |-u|
  Use "-U" to use another gvimrc file.  |-U|
- Handle CTRL-C for external command, also for systems where "setsid()" is
  supported.
- When starting the GUI, restrict the window size to the screen size.
- The default menus are read from $VIMRUNTIME/menu.vim.  This allows for a
  customized default menu.  |menu.vim|
- Improved the default menus.  Added File/Print, a Window menu, Syntax menu,
  etc.
- Added priority to the ":menu" command.  Now each menu can be put in a place
  where you want it, independent of the order in which the menus are defined.
  |menu-priority|

Give a warning in the intro screen when running the Win32 console version on
Windows 95 because there are problems using this version under Windows 95.
|win32-problems|

Added 'e' flag for ":substitute" command: Don't complain when not finding a
match (Campbell).  |:s|

When using search commands in a mapping, only the last one is kept in the
history.  Avoids that the history is trashed by long mappings.

Ignore characters after "ex", "view" and "gvim" when checking startup mode.
Allows the use of "gvim5" et. al.  |gvim| "gview" starts the GUI in readonly
mode.  |gview|

When resizing windows, the cursor is kept in the same relative position, if
possible.  (Webb)

":all" and ":ball" no longer close and then open a window for the same buffer.
Avoids losing options, jumplist, and other info.

"-f" command-line argument is now ignored if Vim was compiled without GUI.
|-f|

In Visual block mode, the right mouse button picks up the nearest corner.

Changed default mappings for DOS et al.  Removed the DOS-specific mappings,
only use the Windows ones.  Added Shift-Insert, Ctrl-Insert, Ctrl-Del and
Shift-Del.

Changed the numbers in the output of ":jumps", so you can see where {count}
CTRL-O takes you.  |:jumps|

Using "~" for $HOME now works for all systems.  |$HOME|

Unix: Besides using CTRL-C, also use the INTR character from the tty settings.
Somebody has INTR set to DEL.

Allow a <LF> in a ":help" command argument to end the help command, so another
command can follow.

Doing "%" on a line that starts with "   #if" didn't jump to matching "#else".
Don't recognize "#if", "#else" etc. for '%' when 'cpo' contains the '%' flag.
|%|

Insert mode expansion with "CTRL-N", "CTRL-P" and "CTRL-X" improved
|ins-completion|:
- 'complete' option added.
- When 'nowrapscan' is set, and no match found, report the searched direction
  in the error message.
- Repeating CTRL-X commands adds following words/lines after the match.
- When adding-expansions, accept single character matches.
- Made repeated CTRL-X CTRL-N not break undo, and "." repeats the whole
  insertion.  Also fixes not being able to backspace over a word that has been
  inserted with CTRL-N.

When copying characters in Insert mode from previous/next line, with CTRL-E or
CTRL-Y, 'textwidth' is no longer used.  |i_CTRL-E|

Commands that move in the arglist, like ":n" and ":rew", keep the old cursor
position of the file (this is mostly Vi compatible).

Vim now remembers the '< and '> marks for each buffer.  This fixes a problem
that a line-delete in one buffer invalidated the '< and '> marks in another
buffer.  |'<|

For MSDOS, Unix and OS/2: When $VIM not set, use the path from the executable.
When using the executable path for $VIM, remove "src/" when present.  Should
make Vim find the docs and syntax files when it is run directly after
compiling.  |$VIM|

When quitting Visual mode with <Esc>, the cursor is put at start of the Visual
area (like after executing an operator).

Win32 and Unix version: Removed 1100 character limit on external commands.

Added possibility to include a space in a ":edit +command" argument, by
putting a backslash before it.  |+cmd|

After recovery, BufReadPost autocommands are applied.  |:recover|

Added color support for "os2ansi", OS/2 console. (Slootman)

Allow "%:p:h" when % is empty.  |:_%|

Included "<sfile>": file name from the ":source" command.  |<sfile>|

Added "<Bslash>" special character.  Helps for avoiding multiple backslashes
in mappings and menus.

In a help window, a double-click jumps to the tag under the cursor (like
CTRL-]).

<C-Left> and <C-Right> now work like <S-Left> and <S-Right>, move a word
forward/backward (Windows compatible). |<C-Left>|

Removed the requirement for a ":version" command in a .vimrc file.  It wasn't
used for anything.  You can use ":if" to handle differences between versions.
|:version|

For MS-DOS, Win32 and OS/2: When comparing file names for autocommands, don't
make a difference between '/' and '\' for path separator.

New termcap options:
"mb": blink.  Can only be used by assigning it to one of the other highlight
      options.  |t_mb|
"bc": backspace character.  |t_bc|
"nd": Used for moving the cursor right in the GUI, to avoid removing one line
      of pixels from the last bold character.  |t_nd|
"xs": highlighting not erased by overwriting, for hpterm.  Combined with
      'weirdinvert'.  Visual mode works on hpterm now.  |t_xs|

Unix: Set time of patch and backup file same as original file.  (Hiebert).

Amiga: In QuickFix mode no longer opens another window.  Shell commands can be
used now.

Added decmouse patches from David Binette.  Can now use Dec and Netterm mouse.
But only when enabled at compile time.

Added '#' register: Alternate file name |quote#|.  Display '#' register with
":dis" command. |:display|

Removed ':' from 'isfname' default for Unix.  Check for "://" in a file name
anyway.  Also check for ":\\", for MS-DOS.

Added count to "K"eyword command, when 'keywordprg' is "man", is inserted in
the man command.  "2K" results in "!man 2 <cword>".  |K|

When using "gf" on a relative path name, remove "../" from the file name, like
it's done for file names in the tags file. |gf|

When finishing recording, don't make the recorded register the default put
register.

When using "!!", don't put ":5,5!" on the command-line, but ":.!".  And some
other enhancements to replace the line number with "." or "$" when possible.

MSDOS et al.: Renamed $VIM/viminfo to $VIM/_viminfo.  It's more consistent:
.vimrc/_vimrc and .viminfo/_viminfo

For systems where case doesn't matter in file names (MSDOS, Amiga), ignore
case while sorting file names.  For buffer names too.

When reading from stdin doesn't work, read from stderr (helps for "foo | xargs
vim").

32 bit MS-DOS version: Replaced csdpmi3 by csdpmi4.

Changed <C-Left> and <C-Right> to skip a WORD instead of a word.

Warning for changed modified time when overwriting a file now also works on
other systems than Unix.

Unix: Changed the defaults for configure to be the same as the defaults for
Makefile: include GUI, Perl, and Python.

Some versions of Motif require "-lXpm".  Added check for this in configure.

Don't add "-L/usr/lib" to the link line, causes problems on a few systems.

==============================================================================
			     COMPILE TIME CHANGES	*compile-changes-5*

When compiling, allow a choice for minimal, normal or maximal features in an
easy way, by changing a single line in src/feature.h.
The DOS16 version has been compiled with minimal features to avoid running
out of memory too quickly.
The Win32, DJGPP, and OS/2 versions use maximal features, because they have
enough memory.
The Amiga version is available with normal and maximal features.

Added "make test" to Unix version Makefile.  Allows for a quick check if most
"normal" commands work properly.  Also tests a few specific commands.

Added setlocale() with codepage support for DJGPP version.

autoconf:
- Added autoconf check for -lXdmcp.
- Included check for -lXmu, no longer needed to edit the Makefile for this.
- Switched to autoconf 2.12.
- Added configure check for <poll.h>.  Seems to be needed when including
  Perl on Linux?
- termlib is now checked before termcap.
- Added configure check for strncasecmp(), stricmp() and strnicmp().  Added
  vim_stricmp() for when there's no library function for stricmp().
- Use "datadir" in configure, instead of our own check for HELPDIR.

Removed "make proto" from Makefile.manx.  Could not make it work without a lot
of #ifdefs.

Removed "proto/" from paths in proto.h.  Needed for the Mac port.

Drastically changed Makefile.mint.  Now it includes the Unix Makefile.

Added support for Dos16 in Makefile.b32 (renamed Makefile.b32 to Makefile.bor)

All source files are now edited with a tabstop of 8 instead of 4, which is
better when debugging and using other tools.  'softtabstop' is set to 4, to
make editing easier.

Unix: Added "link.sh" script, which removes a few unnecessary libraries from
the link command.

Don't use HPUX digraphs by default, but only when HPUX_DIGRAPHS is defined.
|digraphs-default|

==============================================================================
				 BUG FIXES		*bug-fixes-5*

Note:	Some of these fixes may only apply to test versions which were
	created after version 4.6, but before 5.0.


When doing ":bdel", try going to the next loaded buffer.  Don't rewind to the
start of the buffer list.

mch_isdir() for Unix returned TRUE for "" on some systems.

Win32: 'shell' set to "mksnt/sh.exe" breaks ":!" commands.  Don't use
backslashes in the temp file names.

On linux, with a FAT file system, could get spurious "file xxx changed since
editing started" messages, because the time is rounded off to two seconds
unexpectedly.

Crash in GUI, when selecting a word (double click) and then extend until an
empty line.

For systems where isdigit() can't handle characters > 255, get_number() caused
a crash when moving the mouse during the prompt for recovery.

In Insert mode, "CTRL-O P" left the cursor on the last inserted character.
Now the cursor is left after the last putted character.

When quickfix found an error type other than 'e' or 'w', it was never printed.

A setting for 'errorfile' in a .vimrc overruled the "-q errorfile" argument.

Some systems create a file when generating a temp file name.  Filtering would
then create a backup file for this, which was never deleted.  Now no backup
file is made when filtering.

simplify_filename() could remove a ".." after a link, resulting in the wrong
file name.  Made simplify_filename also work for MSDOS.  Don't use it for
Amiga, since it doesn't have "../".

otherfile() was unreliable when using links.  Could think that reading/writing
was for a different file, when it was the same.

Pasting with mouse in Replace mode didn't replace anything.

Window height computed wrong when resizing a window with an autocommand (could
cause a crash).

":s!foo!bar!" wasn't possible (Vi compatible).

do_bang() freed memory twice when called recursively, because of autocommands
(test11).  Thanks to Electric Fence!

"v$d" on an empty line didn't remove the "-- VISUAL --" mode message from the
command-line, and inverted the cursor.

":mkexrc" didn't check for failure to open the file, causing a crash.
(Felderhoff).

Win32 mch_write() wrote past fixed buffer, causing terminal keys no longer to
be recognized.  Both console and GUI version.

Athena GUI: Crash when removing a menu item.  Now Vim doesn't crash, but the
reversing of the menu item is still wrong.

Always reset 'list' option for the help window.

When 'scrolloff' is non-zero, a 'showmatch' could cause the shown match to be
in the wrong line and the window to be scrolled (Acevedo).

After ":set all&", 'lines' and 'ttytype' were still non-default, because the
defaults never got set.  Now the defaults for 'lines' and 'columns' are set
after detecting the window size.  'term' and 'ttytype' defaults are set when
detecting the terminal type.

For (most) non-Unix systems, don't add file names with illegal characters when
expanding.  Fixes "cannot open swapfile" error when doing ":e *.burp", when
there is no match.

In X11 GUI, drawing part of the cursor obscured the text.  Now the text is
drawn over the cursor, like when it fills the block. (Seibert)

when started with "-c cmd -q errfile", the cursor would be left in line 1.
Now a ":cc" is done after executing "cmd".

":ilist" never ignored case, even when 'ignorecase' set.

"vim -r file" for a readonly file, then making a change, got ATTENTION message
in insert mode, display mixed up until <Esc> typed.  Also don't give ATTENTION
message after recovering a file.

The abbreviation ":ab #i #include" could not be removed.

CTRL-L completion (longest common match) on command-line didn't work properly
for case-insensitive systems (MS-DOS, Windows, etc.).  (suggested by Richard
Kilgore).

For terminals that can hide the cursor ("vi" termcap entry), resizing the
window caused the cursor to disappear.

Using an invalid mark in an Ex address didn't abort the command.

When 'smarttab' set, would use 'shiftround' when inserting a TAB after a
space.  Now it always rounds to a tabstop.

Set '[ and '] marks for ":copy", ":move", ":append", ":insert", ":substitute"
and ":change".  (Acevedo).

"d$" in an empty line still caused an error, even when 'E' is not in
'cpoptions'.

Help files were stored in the viminfo buffer list without a path.

GUI: Displaying cursor was not synchronized with other displaying.  Caused
several display errors.  For example, when the last two lines in the file
start with spaces, "dd" on the last line copied text to the (then) last line.

Win32: Needed to type CTRL-SHIFT-- to get CTRL-_.

GUI: Moving the cursor forwards over bold text would remove one column of bold
pixels.

X11 GUI: When a bold character in the last column was scrolled up or down, one
column of pixels would not be copied.

Using <BS> to move the cursor left can sometimes erase a character.  Now use
"le" termcap entry for this.

Keyword completion with regexp didn't work.  e.g., for "b.*crat".

Fixed: With CTRL-O that jumps to another file, cursor could end up just after
the line.

Amiga: '$' was missing from character recognized as wildcards, causing $VIM
sometimes not to be expanded.

":change" didn't adjust marks for deleted lines.

":help [range]" didn't work.  Also for [pattern], [count] and [quotex].

For 'cindent'ing, typing "class::method" doesn't align like a label when the
second ':' is typed.
When inserting a CR with 'cindent' set (and a bunch of other conditions) the
cursor went to a wrong location.
'cindent' was wrong for a line that ends in '}'.
'cindent' was wrong after "else {".

While editing the cmdline in the GUI, could not use the mouse to select text
from the command-line itself.

When deleting lines, marks in tag stack were only adjusted for the current
window, not for other windows on the same buffer.

Tag guessing could find a function "some_func" instead of the "func" we were
looking for.

Tags file name relative to the current file didn't work.

":g/pat2/s//pat2/g", causing the number of subs to be reported, used to cause
a scroll up.  Now you no longer have to hit <CR>.

X11 GUI: Selecting text could cause a crash.

32 bit DOS version: CTRL-C in external command killed Vim.  When SHELL is set
to "sh.exe", external commands didn't work.  Removed using of command.com, no
longer need to set 'shellquote'.

Fixed crash when using ":g/pat/i".

Fixed (potential) crash for X11 GUI, when using an X selection.  Was giving a
pointer on the stack to a callback function, now it's static.

Using "#" and "*" with an operator didn't work.  E.g. "c#".

Command-line expansion didn't work properly after ":*". (Acevedo)

Setting 'weirdinvert' caused highlighting to be wrong in the GUI.

":e +4 #" didn't work, because the "4" was in unallocated memory (could cause
a crash).

Cursor position was wrong for ":e #", after ":e #" failed, because of changes
to the buffer.

When doing ":buf N", going to a buffer that was edited with ":view", the
readonly flag was reset.  Now make a difference between ":e file" and ":buf
file": Only set/reset 'ro' for the first one.

Avoid |hit-enter| prompt when not able to write viminfo on exit.

When giving error messages in the terminal where the GUI was started, GUI
escape codes would be written to the terminal.  In an xterm this could be seen
as a '$' after the message.

Mouse would not work directly after ":gui", because full_screen isn't set,
which causes starttermcap() not to do its work.

'incsearch' did not scroll the window in the same way as the actual search.
When 'nowrap' set, incsearch didn't show a match when it was off the side of
the screen.  Now it also shows the whole match, instead of just the cursor
position (if possible).

":unmap", ":unab" and ":unmenu" did not accept a double quote, it was seen as
the start of a comment.  Now it's Vi compatible.

Using <Up><Left><Left><Up> in the command-line, when there is no previous
cmdline in the history, inserted a NUL on the command-line.

"i<Esc>" when on a <Tab> in column 0 left the cursor in the wrong place.

GUI Motif: When adding a lot of menu items, the menu bar goes into two rows.
Deleting menu items, reducing the number of rows, now also works.

With ":g/pat/s//foo/c", a match in the first line was scrolled off of the
screen, so you could not see it.
When using ":s//c", with 'nowrap' set, a match could be off the side of the
screen, so you could not see it.

When 'helpfile' was set to a fixed, non-absolute path in feature.h, Vim would
crash.  mch_Fullname can now handle file names in read-only memory. (Lottem)

When using CTRL-A or CTRL-@ in Insert mode, there could be strange effects
when using CTRL-D next.  Also, when repeating inserted text that included "0
CTRL-D" or "^ CTRL-D" this didn't work. (Acevedo)
Using CTRL-D after using CTRL-E or CTRL-Y in Insert mode that inserted a '0'
or '^', removed the '0' or '^' and more indent.

The command "2".p" caused the last inserted text to be executed as commands.
(Acevedo)

Repeating the insert of "CTRL-V 048" resulted in "^@" to be inserted.

Repeating Insert completion could fail if there are special characters in the
text. (Acevedo)

":normal /string<CR>" caused the window to scroll.  Now all ":normal" commands
are executed without scrolling messages.

Redo of CTRL-E or CTRL-Y in Insert mode interpreted special characters as
commands.

Line wrapping for 'tw' was done one character off for insert expansion
inserts.

buffer_exists() function didn't work properly for buffer names with a symbolic
link in them (e.g. when using buffer_exists(#)).

Removed the "MOTIF_COMMENT" construction from Makefile.  It now works with
FreeBSD make, and probably with NeXT make too.

Matching the 'define' and 'include' arguments now honor the settings for
'ignorecase'. (Acevedo)

When one file shown in two windows, Visual selection mixed up cursor position
in current window and other window.

When doing ":e file" from a help file, the 'isk' option wasn't reset properly,
because of a modeline in the help file.

When doing ":e!", a cursor in another window on the same buffer could become
invalid, leading to "ml_get: invalid lnum" errors.

Matching buffer name for when expanded name has a different path from not
expanded name (Brugnara).

Normal mappings didn't work after an operator.  For example, with ":map Q gq",
"QQ" didn't work.

When ":make" resulted in zero errors, a "No Errors" error message was given
(which breaks mappings).

When ":sourcing" a file, line length was limited to 1024 characters.  CTRL-V
before <EOL> was not handled Vi compatible.  (Acevedo)

Unexpected exit for X11 GUI, caused by SAVE_YOURSELF event.  (Heimann)

CTRL-X CTRL-I only found one match per line. (Acevedo)
When using an illegal CTRL-X key in Insert mode, the CTRL-X mode message
was stuck.

Finally managed to ignore the "Quit" menu entry of the Window manager!  Now
Vim only exists when there are no changed buffers.

Trying to start the GUI when $DISPLAY is not set resulted in a crash.
When $DISPLAY is not set and gvim starts vim, title was restored to "Thanks
for flying Vim".
When $DISPLAY not set, starting "gvim" (dropping back to vim) and then
selecting text with the mouse caused a crash.

"J", with 'joinspaces' set, on a line ending in ". ", caused one space too
many to be added.  (Acevedo)

In insert mode, a CTRL-R {regname} which didn't insert anything left the '"'
on the screen.

":z10" didn't work. (Clapp)

"Help "*" didn't work.

Renamed a lot of functions, to avoid clashes with POSIX name space.

When adding characters to a line, making it wrap, the following lines were
sometimes not shifted down (e.g. after a tag jump).

CTRL-E, with 'so' set and cursor on last line, now does not move cursor as
long as the last line is on the screen.

When there are two windows, doing "^W+^W-" in the bottom window could cause
the status line to be doubled (not redrawn correctly).

This command would hang: ":n `cat`".  Now connect stdin of the external
command to /dev/null, when expanding.

Fixed lalloc(0,) error for ":echo %:e:r".  (Acevedo)

The "+command" argument to ":split" didn't work when there was no file name.

When selecting text in the GUI, which is the output of a command-line command
or an external command, the inversion would sometimes remain.

GUI: "-mh 70" argument was broken.  Now, when menuheight is specified, it is
not changed anymore.

GUI: When using the scrollbar or mouse while executing an external command,
this caused garbage characters.

Showmatch sometimes jumped to the wrong position.  Was caused by a call to
findmatch() when redrawing the display (when syntax highlighting is on).

Search pattern "\(a *\)\{3} did not work correctly, also matched "a a".
Problem with brace_count not being decremented.

Wildcard expansion added too many non-matching file names.

When 'iskeyword' contains characters like '~', "*" and "#" didn't work
properly. (Acevedo)

On Linux, on a FAT file system, modification time can change by one second.
Avoid a "file has changed" warning for a one second difference.

When using the page-switching in an xterm, Vim would position the cursor on
the last line of the window on exit.  Also removed the cursor positioning for
":!" commands.

":g/pat/p" command (partly) overwrote the command.  Now the output is on a
separate line.

With 'ic' and 'scs' set, a search for "Keyword", ignore-case matches were
highlighted too.

"^" on a line with only white space, put cursor beyond the end of the line.

When deleting characters before where insertion started ('bs' == 2), could not
use abbreviations.

CTRL-E at end of file puts cursor below the file, in Visual mode, when 'so' is
non-zero.  CTRL-E didn't work when 'so' is big and the line below the window
wraps.  CTRL-E, when 'so' is non-zero, at end of the file, caused jumping
up-down.

":retab" didn't work well when 'list' is set.

Amiga: When inserting characters at the last line on the screen, causing it
to wrap, messed up the display.  It appears that a '\n' on the last line
doesn't always cause a scroll up.

In Insert mode "0<C-D><C-D>" deleted an extra character, because Vim thought
that the "0" was still there. (Acevedo)

"z{count}l" ignored the count.  Also for "zh" et. al. (Acevedo)

"S" when 'autoindent' is off didn't delete leading white space.

"/<Tab>" landed on the wrong character when 'incsearch' is set.

Asking a yes/no question could cause a |hit-enter| prompt.

When the file consists of one long line (>4100 characters), making changes
caused various errors and a crash.

DJGPP version could not save long lines (>64000) for undo.

"yw" on the last char in the file didn't work.  Also fixed "6x" at the end of
the line.  "6X" at the start of a line fails, but does not break a mapping.  In
general, a movement for an operator doesn't beep or flush a mapping, but when
there is nothing to operate on it beeps (this is Vi compatible).

"m'" and "m`" now set the '' mark at the cursor position.

Unix: Resetting of signals for external program didn't work, because SIG_DFL
and NULL are the same!  For "!!yes|dd count=1|, the yes command kept on
running.

Partly fixed: Unix GUI: Typeahead while executing an external command was lost.
Now it's not lost while the command is producing output.

Typing <S-Tab> in Insert mode, when it isn't mapped, inserted "<S-Tab>".  Now
it works like a normal <Tab>, just like <C-Tab> and <M-Tab>.

Redrawing ruler didn't check for old value correctly (caused UMR warnings in
Purify).

Negative array index in finish_viminfo_history().

":g/^/d|mo $" deleted all the lines.  The ":move" command now removes the
:global mark from the moved lines.

Using "vG" while the last line in the window is a "@" line, didn't update
correctly.  Just the "v" showed "~" lines.

"daw" on the last char of the file, when it's a space, moved the cursor beyond
the end of the line.

When 'hlsearch' was set or reset, only the current buffer was redrawn, while
this affects all windows.

CTRL-^, positioning the cursor somewhere from 1/2 to 1 1/2 screen down the
file, put the cursor at the bottom of the window, instead of halfway.

When scrolling up for ":append" command, not all windows were updated
correctly.

When 'hlsearch' is set, and an auto-indent is highlighted, pressing <Esc>
didn't remove the highlighting, although the indent was deleted.

When 'ru' set and 'nosc', using "$j" showed a wrong ruler.

Under Xfree 3.2, Shift-Tab didn't work (wrong keysym is used).

Mapping <S-Tab> didn't work.  Changed the key translations to use the shortest
key code possible.  This makes the termcode translations and mappings more
consistent.  Now all modifiers work in all combinations, not only with <Tab>,
but also with <Space>, <CR>, etc.

For Unix, restore three more signals.  And Vim catches SIGINT now, so CTRL-C
in Ex mode doesn't make Vim exit.

""a5Y" yanked 25 lines instead of 5.

"vrxxx<Esc>" in an empty line could not be undone.

A CTRL-C that breaks ":make" caused the errorfile not to be read (annoying
when you want to handle what ":make" produced so far).

":0;/pat" didn't find "pat" in line 1.

Search for "/test/s+1" at first char of file gave bottom-top message, or
didn't work at all with 'nowrapscan'.

Bug in viminfo history.  Could cause a crash on exit.

":print" didn't put cursor on first non-blank in line.

":0r !cat </dev/null" left cursor in line zero, with very strange effects.

With 'showcmd' set and 'timeoutlen' set to a few seconds, trick to position
the cursor leftwards didn't work.

AIX stty settings were restored to cs5 instead of cs8 (Winn).

File name completion didn't work for "zsh" versions that put spaces between
file names, instead of NULs.

Changed "XawChain*" to "XtChain*", should work for more systems.

Included quite a few fixes for rightleft mode (Lottem).

Didn't ask to |hit-enter| when GUI is started and error messages are printed.

When trying to edit a file in a non-existent directory, ended up with editing
"No file".

"gqap" to format a paragraph did too much redrawing.

When 'hlsearch' set, only the current window was updated for a new search
pattern.

Sometimes error messages on startup didn't cause a |hit-enter| prompt,
because of autocommands containing an empty line.

Was possible to select part of the window in the border, below the command
line.

'< and '> marks were not at the correct position after linewise Visual
selection.

When translating a help argument to "CTRL-x", prepend or append a '_', when
applicable.

Blockwise visual mode wasn't correct when moving vertically over a special
character (displayed as two screen characters).

Renamed "struct option" to "struct vimoption" to avoid name clash with GNU
getopt().

":abclear" didn't work (but ":iabclear" and ":cabclear" did work).

When 'nowrap' used, screen wasn't always updated correctly.

"vim -c split file" displayed extra lines.

After starting the GUI, searched the termcap for a "gui" term.

When 'hls' used, search for "^$" caused a hang.
When 'hls' was set, an error in the last regexp caused trouble.

Unix: Only output an extra <EOL> on exit when outputted something in the
alternate screen, or when there is a message that needs to be cleared.

"/a\{" did strange things, depending on previous search.

"c}" only redrew one line (with -u NONE).

For mappings, CTRL-META-A was shown as <M-^A> instead of <MC-A>, while :map
only accepts <MC-A>.  Now <M-C-A> is shown.

Unix: When using full path name in a tags file, which contains a link, and
'hidden' set and jumping to a tag in the current file, would get bogus
ATTENTION message.  Solved by always expanding file names, even when starting
with '/'.

'hlsearch' highlighting of special characters (e.g., a TAB) didn't highlight
the whole thing.

"r<CR>" didn't work correctly on the last char of a line.

Sometimes a window resize or other signal caused an endless loop, involving
set_winsize().

"vim -r" didn't work, it would just hang (using tgetent() while 'term' is
empty).

"gk" while 'nowrap' set moved two lines up.

When windows are split, a message that causes a scroll-up messed up one of the
windows, which required a CTRL-L to be typed.

Possible endless loop when using shell command in the GUI.

Menus defined in the .vimrc were removed when GUI started.

Crash when pasting with the mouse in insert mode.

Crash with ":unmenu *" in .gvimrc for Athena.

"5>>" shifted 5 lines 5 times, instead of 1 time.

CTRL-C when getting a prompt in ":global" didn't interrupt.

When 'so' is non-zero, and moving the scrollbar completely to the bottom,
there was a lot of flashing.

GUI: Scrollbar ident must be long for DEC Alpha.

Some functions called vim_regcomp() without setting reg_magic, which could
lead to unpredictable magicness.

Crash when clicking around the status line, could get a selection with a
backwards range.

When deleting more than one line characterwise, the last character wasn't
deleted.

GUI: Status line could be overwritten when moving the scrollbar quickly (or
when 'wd' is non-zero).

An ESC at the end of a ":normal" command caused a wait for a terminal code to
finish.  Now, a terminal code is not recognized when its start comes from a
mapping or ":normal" command.

Included patches from Robert Webb for GUI.  Layout of the windows is now done
inside Vim, instead of letting the layout manager do this.  Makes Vim work
with Lesstif!

UMR warning in set_expand_context().

Memory leak: b_winlnum list was never freed.

Removed TIOCLSET/TIOCLGET code from os_unix.c.  Was changing some of the
terminal settings, and looked like it wasn't doing anything good.  (suggested
by Juergen Weigert).

Ruler overwrote "is a directory" message.  When starting up, and 'cmdheight'
set to > 1, first message could still be in the last line.

Removed prototype for putenv() from proto.h, it's already in osdef2.h.in.

In replace mode, when moving the cursor and then backspacing, wrong characters
were inserted.

Win32 GUI was checking for a CTRL-C too often, making it slow.

Removed mappings for MS-DOS that were already covered by commands.

When visually selecting all lines in a file, cursor at last line, then "J".
Gave ml_get errors.  Was a problem with scrolling down during redrawing.

When doing a linewise operator, and then an operator with a mouse click, it
was also linewise, instead of characterwise.

When 'list' is set, the column of the ruler was wrong.

Spurious error message for "/\(b\+\)*".

When visually selected many lines, message from ":w file" disappeared when
redrawing the screen.

":set <M-b>=^[b", then insert "^[b", waited for another character.  And then
inserted "<M-b>" instead of the real <M-b> character.  Was trying to insert
K_SPECIAL x NUL.

CTRL-W ] didn't use count to set window height.

GUI: "-font" command-line argument didn't override 'guifont' setting from
.gvimrc. (Acevedo)

GUI: clipboard wasn't used for "*y".  And some more Win32/X11 differences
fixed for the clipboard (Webb).

Jumping from one help file to another help file, with 'compatible' set,
removed the 'help' flag from the buffer.

File-writable bit could be reset when using ":w!" for a readonly file.

There was a wait for CTRL-O n in Insert mode, because the search pattern was
shown.
Reduced wait, to allow reading a message, from 10 to 3 seconds.  It seemed
nothing was happening.

":recover" found same swap file twice.

GUI: "*yy only worked the second time (when pasting to an xterm)."

DJGPP version (dos32): The system flags were cleared.

Dos32 version: Underscores were sometimes replaced with y-umlaut (Levin).

Version 4.1 of ncurses can't handle tputs("", ..).  Avoid calling tputs() with
an empty string.

<S-Tab> in the command-line worked like CTRL-P when no completion started yet.
Now it does completion, last match first.

Unix: Could get annoying "can't write viminfo" message after doing "su".  Now
the viminfo file is overwritten, and the user set back to the original one.

":set term=builtin_gui" started the GUI in a wrong way.  Now it's not
allowed anymore.  But "vim -T gui" does start the GUI correctly now.

GUI: Triple click after a line only put last char in selection, when it is a
single character word.

When the window is bigger than the screen, the scrolling up of messages was
wrong (e.g. ":vers", ":hi").  Also when the bottom part of the window was
obscured by another window.

When using a wrong option only an error message is printed, to avoid that the
usage information makes it scroll off the screen.

When exiting because of not being able to read from stdin, didn't preserve the
swap files properly.

Visual selecting all chars in more than one line, then hit "x" didn't leave an
empty line.  For one line it did leave an empty line.

Message for which autocommand is executing messed up file write message (for
FileWritePost event).

"vim -h" included "-U" even when GUI is not available, and "-l" when lisp is
not available.

Crash for ":he <C-A>" (command-line longer than screen).

":s/this/that/gc", type "y" two times, then undo, did reset the modified
option, even though the file is still modified.

Empty lines in a tags file caused a ":tag" to be aborted.

When hitting 'q' at the more prompt for ":menu", still scrolled a few lines.

In an xterm that uses the bold trick a single row of characters could remain
after an erased bold character.  Now erase one extra char after the bold char,
like for the GUI.

":pop!" didn't work.

When the reading a buffer was interrupted, ":w" should not be able to
overwrite the file, ":w!" is required.

":cf%" caused a crash.

":gui longfilename", when forking is enabled, could leave part of the
longfilename at the shell prompt.

==============================================================================
VERSION 5.1						*version-5.1*

Improvements made between version 5.0 and 5.1.

This was mostly a bug-fix release, not many new features.


Changed							*changed-5.1*
-------

The expand() function now separates file names with <NL> instead of a space.
This avoids problems for file names with embedded spaces.  To get the old
result, use substitute(expand(foo), "\n", " ", "g").

For Insert-expanding dictionaries allow a backslash to be used for
wildchars.  Allows expanding "ze\kra", when 'isk' includes a backslash.

New icon for the Win32 GUI.

":tag", ":tselect" etc. only use the argument as a regexp when it starts
with '/'.  Avoids that ":tag xx~" gives an error message: "No previous sub.
regexp".  Also, when the :tag argument contained wildcard characters, it was
not Vi compatible.
When using '/', the argument is taken literally too, with a higher priority,
so it's found before wildcard matches.
Only when the '/' is used are matches with different case found, even though
'ignorecase' isn't set.
Changed "g^]" to only do ":tselect" when there is more than on matching tag.

Changed some of the default colors, because they were not very readable on a
dark background.

A character offset to a search pattern can move the cursor to the next or
previous line.  Also fixes that "/pattern/e+2" got stuck on "pattern" at the
end of a line.

Double-clicks in the status line do no longer start Visual mode.  Dragging a
status line no longer stops Visual mode.

Perl interface: Buffers() and Windows() now use more logical arguments, like
they are used in the rest of Vim (Moore).

Init '" mark to the first character of the first line.  Makes it possible to
use '" in an autocommand without getting an error message.


Added							*added-5.1*
-----

"shell_error" internal variable: result of last shell command.

":echohl" command: Set highlighting for ":echo".

'S' flag in 'highlight' and StatusLineNC highlight group: highlighting for
status line of not-current window.  Default is to use bold for current
window.

Added buffer_name() and buffer_number() functions (Aaron).
Added flags argument "g" to substitute() function (Aaron).
Added winheight() function.

Win32: When an external command starts with "start ", no console is opened
for it (Aaron).

Win32 console: Use termcap codes for bold/reverse based on the current
console attributes.

Configure check for "strip". (Napier)

CTRL-R CTRL-R x in Insert mode: Insert the contents of a register literally,
instead of as typed.

Made a few "No match" error messages more informative by adding the pattern
that didn't match.

"make install" now also copies the macro files.

tools/tcltags, a shell script to generate a tags file from a TCL file.

"--with-tlib" setting for configure.  Easy way to use termlib: "./configure
--with-tlib=termlib".

'u' flag in 'cino' for setting the indent for contained () parts.

When Win32 OLE version can't load the registered type library, ask the user
if he wants to register Vim now. (Erhardt)
Win32 with OLE: When registered automatically, exit Vim.
Included VisVim 1.1b, with a few enhancements and the new icon (Heiko
Erhardt).

Added patch from Vince Negri for Win32s support.  Needs to be compiled with
VC 4.1!

Perl interface: Added $curbuf.  Rationalized Buffers() and Windows().
(Moore) Added "group" argument to Msg().

Included Perl files in DOS source archive.  Changed Makefile.bor and
Makefile.w32 to support building a Win32 version with Perl included.

Included new Makefile.w32 from Ken Scott.  Now it's able to make all Win32
versions, including OLE, Perl and Python.

Added CTRL-W g ] and CTRL-W g ^]: split window and do g] or g^].

Added "g]" to always do ":tselect" for the ident under the cursor.
Added ":tjump" and ":stjump" commands.
Improved listing of ":tselect" when tag names are a bit long.

Included patches for the Macintosh version.  Also for Python interface.
(St-Amant)

":buf foo" now also restores cursor column, when the buffer was used before.

Adjusted the Makefile for different final destinations for the syntax files
and scripts (for Debian Linux).

Amiga: $VIM can be used everywhere.  When $VIM is not defined, "VIM:" is
used.  This fixes that "VIM:" had to be assigned for the help files, and
$VIM set for the syntax files.  Now either of these work.

Some xterms send vt100 compatible function keys F1-F4.  Since it's not
possible to detect this, recognize both type of keys and translate them to
<F1> - <F4>.

Added "VimEnter" autocommand.  Executed after loading all the startup stuff.

BeOS version now also runs on Intel CPUs (Seibert).


Fixed							*fixed-5.1*
-----

":ts" changed position in the tag stack when cancelled with <CR>.
":ts" changed the cursor position for CTRL-T when cancelled with <CR>.
":tn" would always jump to the second match.	Was using the wrong entry in
the tag stack.
Doing "tag foo", then ":tselect", overwrote the original cursor position in
the tag stack.

"make install" changed the vim.1 manpage in a wrong way, causing "doc/doc"
to appear for the documentation files.

When compiled with MAX_FEAT, xterm mouse handling failed.  Was caused by DEC
mouse handling interfering.

Was leaking memory when using selection in X11.

CTRL-D halfway a command-line left some characters behind the first line(s)
of the listing.

When expanding directories for ":set path=", put two extra backslashes
before a space in a directory name.

When 'lisp' set, first line of a function would be indented.  Now its indent
is set to zero.  And use the indent of the first previous line that is at
the same () level.  Added test33.

"so<Esc>u" in an empty file didn't work.

DOS: "seek error in swap file write" errors, when using DOS 6.2 share.exe,
because the swap file was made hidden.  It's no longer hidden.

":global" command would sometimes not execute on a matching line.  Happened
when a data block is full in ml_replace().

For AIX use a tgetent buffer of 2048 bytes, instead of 1024.

Win32 gvim now only sets the console size for external commands to 25x80
on Windows 95, not on NT.

Win32 console: Dead key could cause a crash, because of a missing "WINAPI"
(Deshpande).

The right mouse button started Visual mode, even when 'mouse' is empty, and
in the command-line, a left click moved the cursor when 'mouse' is empty.
In Visual mode, 'n' in 'mouse' would be used instead of 'v'.

A blinking cursor or focus change cleared a non-Visual selection.

CTRL-Home and CTRL-End didn't work for MS-DOS versions.

Could include NUL in 'iskeyword', causing a crash when doing insert mode
completion.

Use _dos_commit() to flush the swap file to disk for MSDOS 16 bit version.

In mappings, CTRL-H was replaced by the backspace key code.  This caused
problems when it was used as text, e.g. ":map _U :%s/.^H//g<CR>".

":set t_Co=0" was not handled like a normal term.  Now it's translated into
":set t_Co=", which works.

For ":syntax keyword" the "transparent" option did work, although not
mentioned in the help.  But synID() returned wrong name.

"gqG" in a file with one-word-per-line (e.g. a dictionary) was very slow and
not interruptible.

"gq" operator inserted screen lines in the wrong situation.  Now screen
lines are inserted or deleted when this speeds up displaying.

cindent was wrong when an "if" contained "((".

'r' flag in 'viminfo' was not used for '%'.  Could get files in the buffer
list from removable media.

Win32 GUI with OLE: if_ole_vc.mak could not be converted into a project.
Hand-edited to fix this...

With 'nosol' set, doing "$kdw" below an empty line positioned the cursor at
the end of the line.

Dos32 version changed "\dir\file" into "/dir/file", to work around a DJGPP
bug.  That bug appears to have been fixed, therefore this translation has
been removed.

"/^*" didn't work (find '*' in first column).

"<afile>" was not always set for autocommands.  E.g., for ":au BufEnter *
let &tags = expand("<afile>:p:h") . "/tags".

In an xterm, the window may be a child of the outer xterm window.  Use the
parent window when getting the title and icon names. (Smith)

When starting with "gvim -bg black -fg white", the value of 'background' is
only set after reading the .gvimrc file.  This causes a ":syntax on" to use
the wrong colors.  Now allow using ":gui" to open the GUI window and set the
colors.  Previously ":gui" in a gvimrc crashed Vim.

tempname() returned the same name all the time, unless the file was actually
created.  Now there are at least 26 different names.

File name used for <afile> was sometimes full path, sometimes file name
relative to current directory.

When 'background' was set after the GUI window was opened, it could change
colors that were set by the user in the .gvimrc file.  Now it only changes
colors that have not been set by the user.

Ignore special characters after a CSI in the GUI version.  These could be
interpreted as special characters in a wrong way. (St-Amant)

Memory leak in farsi code, when using search or ":s" command.
Farsi string reversing for a mapping was only done for new mappings.  Now it
also works for replacing a mapping.

Crash in Win32 when using a file name longer than _MAX_PATH. (Aaron)

When BufDelete autocommands were executed, some things for the buffer were
already deleted (esp. Perl stuff).

Perl interface: Buffer specific items were deleted too soon; fixes "screen
no longer exists" messages.  (Moore)

The Perl functions didn't set the 'modified' flag.

link.sh did not return an error on exit, which may cause Vim to start
installing, even though there is no executable to install. (Riehm)

Vi incompatibility: In Vi "." redoes the "y" command.  Added the 'y' flag to
'cpoptions'.  Only for 'compatible' mode.

":echohl" defined a new group, when the argument was not an existing group.

"syn on" and ":syn off" could move the cursor, if there is a hidden buffer
that is shorter that the current cursor position.

The " mark was not set when doing ":b file".

When a "nextgroup" is used with "skipwhite" in syntax highlighting, space at
the end of the line made the nextgroup also be found in the next line.

":he g<CTRL-D>", then ":" and backspace to the start didn't redraw.

X11 GUI: "gvim -rv" reversed the colors twice on Sun.  Now Vim checks if the
result is really reverse video (background darker than foreground).

"cat link.sh | vim -" didn't set syntax highlighting.

Win32: Expanding "file.sw?" matched ".file.swp".  This is an error of
FindnextFile() that we need to work around.  (Kilgore)

"gqgq" gave an "Invalid lnum" error on the last line.
Formatting with "gq" didn't format the first line after a change of comment
leader.

There was no check for out-of-memory in win_alloc().

"vim -h" didn't mention "-register" and "-unregister" for the OLE version.

Could not increase 'cmdheight' when the last window is only one line.  Now
other windows are also made smaller, when necessary.

Added a few {} to avoid "suggest braces around" warnings from gcc 2.8.x.
Changed return type of main() from void to int. (Nam)

Using '~' twice in a substitute pattern caused a crash.

"syn on" and ":syn off" could scroll the window, if there is a hidden buffer
that is shorter that the current cursor position.

":if 0 | if 1 | endif | endif" didn't work.  Same for ":while" and "elseif".

With two windows on modified files, with 'autowrite' set, cursor in second
window, ":qa" gave a warning for the file in the first window, but then
auto-wrote the file in the second window. (Webb)

Win32 GUI scrollbar could only handle 32767 lines.  Also makes the
intellimouse wheel use the configurable number of scrolls. (Robinson)

When using 'patchmode', and the backup file is on another partition, the file
copying messed up the write-file message.

GUI X11: Alt-Backspace and Alt-Delete didn't work.

"`0" could put the cursor after the last character in the line, causing
trouble for other commands, like "i".

When completing tags in insert mode with ^X^], some matches were skipped,
because the compare with other tags was wrong.  E.g., when "mnuFileSave" was
already there, "mnuFile" would be skipped. (Negri)

When scrolling up/down, a syntax item with "keepend" didn't work properly.
Now the flags are also stored for the syntax state at the start of each line.

When 'ic' was changed while 'hlsearch' is on, there was no redraw to show the
effect.

Win32 GUI: Don't display "No write since last chance" in a message box, but in
the Vim window.

==============================================================================
VERSION 5.2						*version-5.2*

Improvements made between version 5.1 and 5.2.


Long lines editable					*long-lines*
-------------------

A single long line that doesn't fit in the window doesn't show a line of @@@
anymore.  Redrawing starts at a character further on in the line, such that
the text around the cursor can be seen.  This makes it possible to edit these
long lines when wrapping is on.


File browser added					*file-browser-5.2*
------------------

The Win32, Athena and Motif GUI bring up a file requester if the user asks to
":browse" for the ":e", ":w", ":r", ":so", ":redirect" and
":mkexrc/vimrc/vsess" commands.  ":browse e /foo/bar" opens the requester in
the /foo/bar directory, so you can have nice mapping rhs's like ":browse so
$vim/macros".  If no initial dir specified for ":browse e", can be compiled to
either begin in the current directory, or that of the current buffer. (Negri
and Kahn)
Added the 'browsedir' option, with value "current", "last" or "buffer".  Tells
whether a browse dialog starts in last used dir, dir of current buffer, or
current dir.  ":browse w" is unaffected.
The default menus have been changed to use the ":browse" command.


Dialogs added						*dialogs-added*
-------------

Added the ":confirm" command.  Works on ":e", ":q", ":w", ":cl".  Win32,
Athena and Motif GUI uses a window-dialog.  All other platforms can use
prompt in command-line.  ":confirm qa" offers a choice to save all modified
files.

confirm() function: allows user access to the confirm engine.

Added 'v' flag to 'guioptions'.  When included, a vertical button layout is
always used for the Win32 GUI dialog.  Otherwise, a horizontal layout is
preferred.

Win32 GUI: ":promptfind" and ":promptrepl" pop up a dialog to find/replace.
To be used from a menu entry. (Negri)


Popup menu added					*popup-menu-added*
----------------

When the 'mousemodel' option is set to "popup", the right mouse button
displays the top level menu headed with "PopUp" as pop-up context menu.  The
"PopUp" menu is not displayed in the normal menu bar.  This currently only
works for Win32 and Athena GUI.


Select mode added					*new-Select-mode*
-----------------

A new mode has been added: "Select mode".  It is like Visual mode, but typing
a printable character replaces the selection.
- CTRL-G can be used to toggle between Visual mode and Select mode.
- CTRL-O can be used to switch from Select mode to Visual mode for one command.
- Added 'selectmode' option: tells when to start Select mode instead of Visual
  mode.
- Added 'mousemodel' option: Change use of mouse buttons.
- Added 'keymodel' option: tells to use shifted special keys to start a
  Visual or Select mode selection.
- Added ":behave".  Can be used to quickly set 'selectmode', 'mousemodel'
  and 'keymodel' for MS-Windows and xterm behavior.
- The xterm-like selection is now called modeless selection.
- Visual mode mappings and menus are used in Select mode.  They automatically
  switch to Visual mode first.  Afterwards, reselect the area, unless it was
  deleted.  The "gV" command can be used in a mapping to skip the reselection.
- Added the "gh", "gH" and "g^H" commands: start Select (highlight) mode.
- Backspace in Select mode deletes the selected area.

"mswin.vim" script.  Sets behavior mostly like MS-Windows.


Session files added					*new-session-files*
-------------------

":mks[ession]" acts like "mkvimrc", but also writes the full filenames of the
currently loaded buffers and current directory, so that :so'ing the file
re-loads those files and cd's to that directory.  Also stores and restores
windows.  File names are made relative to session file.
The 'sessionoptions' option sets behavior of ":mksession". (Negri)


User defined functions and commands			*new-user-defined*
-----------------------------------

Added user defined functions.  Defined with ":function" until ":endfunction".
Called with "Func()".  Allows the use of a variable number of arguments.
Included support for local variables "l:name".  Return a value with ":return".
See |:function|.
Call a function with ":call".  When using a range, the function is called for
each line in the range. |:call|
"macros/justify.vim" is an example of using user defined functions.
User functions do not change the last used search pattern or the command to be
redone with ".".
'maxfuncdepth' option.  Restricts the depth of function calls.  Avoids trouble
(crash because of out-of-memory) when a function uses endless recursion.

User definable Ex commands: ":command", ":delcommand" and ":comclear".
(Moore)  See |user-commands|.


New interfaces						*interfaces-5.2*
--------------

Tcl interface. (Wilken)  See |tcl|.
Uses the ":tcl", ":tcldo" and "tclfile" commands.

Cscope support. (Kahn) (Sekera)  See |cscope|.
Uses the ":cscope" and ":cstag" commands.  Uses the options 'cscopeprg',
'cscopetag', 'cscopetagorder' and 'cscopeverbose'.


New ports						*ports-5.2*
---------

Amiga GUI port. (Nielsen)  Not tested much yet!

RISC OS version. (Thomas Leonard)  See |riscos|.
This version can run either with a GUI or in text mode, depending upon where
it is invoked.
Deleted the "os_archie" files, they were not working anyway.


Multi-byte support					*new-multi-byte*
------------------

MultiByte support for Win32 GUI. (Baek)
The 'fileencoding' option decides how the text in the file is encoded.
":ascii" works for multi-byte characters.  Multi-byte characters work on
Windows 95, even when using the US version. (Aaron)
Needs to be enabled in feature.h.
This has not been tested much yet!


New functions						*new-functions-5.2*
-------------

|browse()|	puts up a file requester when available. (Negri)
|escape()|	escapes characters in a string with a backslash.
|fnamemodify()|	modifies a file name.
|input()|	asks the user to enter a line. (Aaron)  There is a separate
		history for lines typed for the input() function.
|argc()|
|argv()|	can be used to access the argument list.
|winbufnr()|	buffer number of a window. (Aaron)
|winnr()|	window number. (Aaron)
|matchstr()|	Return matched string.
|setline()|	Set a line to a string value.


New options						*new-options-5.2*
-----------

'allowrevins'	Enable the CTRL-_ command in Insert and Command-line mode.
'browsedir'	Tells in which directory a browse dialog starts.
'confirm'	when set, :q :w and :e commands always act as if ":confirm"
		is used.  (Negri)
'cscopeprg'
'cscopetag'
'cscopetagorder'
'cscopeverbose'	Set the |cscope| behavior.
'filetype'	RISC-OS specific type of file.
'grepformat'
'grepprg'	For the |:grep| command.
'keymodel'	Tells to use shifted special keys to start a Visual or Select
		mode selection.
'listchars'	Set character to show in 'list' mode for end-of-line, tabs and
		trailing spaces. (partly by Smith) Also sets character to
		display if a line doesn't fit when 'nowrap' is set.
'matchpairs'	Allows matching '<' with '>', and other single character
		pairs.
'mousefocus'	Window focus follows mouse (partly by Terhaar).  Changing the
		focus with a keyboard command moves the pointer to that
		window.  Also move the pointer when changing the window layout
		(split window, change window height, etc.).
'mousemodel'	Change use of mouse buttons.
'selection'	When set to "inclusive" or "exclusive", the cursor can go one
		character past the end of the line in Visual or Select mode.
		When set to "old" the old behavior is used.  When
		"inclusive", the character under the cursor is included in the
		operation.  When using "exclusive", the new "ve" entry of
		'guicursor' is used.  The default is a vertical bar.
'selectmode'	Tells when to start Select mode instead of Visual mode.
'sessionoptions' Sets behavior of ":mksession". (Negri)
'showfulltag'	When completing a tag in Insert mode, show the tag search
		pattern (tidied up) as a choice as well (if there is one).
'swapfile'	Whether to use a swap file for a buffer.
'syntax'	When it is set, the syntax by that name is loaded.  Allows for
		setting a specific syntax from a modeline.
'ttymouse'	Allows using xterm mouse codes for terminals which name
		doesn't start with "xterm".
'wildignore'	List of patterns for files that should not be completed at
		all.
'wildmode'	Can be used to set the type of expansion for 'wildchar'.
		Replaces the CTRL-T command for command line completion.
		Don't beep when listing all matches.
'winaltkeys'	Win32 and Motif GUI.  When "yes", ALT keys are handled
		entirely by the window system.  When "no", ALT keys are never
		used by the window system.  When "menu" it depends on whether
		a key is a menu shortcut.
'winminheight'	Minimal height for each window.  Default is 1.  Set to 0 if
		you want zero-line windows.  Scrollbar is removed for
		zero-height windows. (Negri)



New Ex commands						*new-ex-commands-5.2*
---------------

|:badd|		Add file name to buffer list without side effects.  (Negri)
|:behave|	Quickly set MS-Windows or xterm behavior.
|:browse|	Use file selection dialog.
|:call|		Call a function, optionally with a range.
|:cnewer|
|:colder|	To access a stack of quickfix error lists.
|:comclear|	Clear all user-defined commands.
|:command|	Define a user command.
|:continue|	Go back to ":while".
|:confirm|	Ask confirmation if something unexpected happens.
|:cscope|	Execute cscope command.
|:cstag|	Use cscope to jump to a tag.
|:delcommand|	Delete a user-defined command.
|:delfunction|	Delete a user-defined function.
|:endfunction|	End of user-defined function.
|:function|	Define a user function.
|:grep|		Works similar to ":make". (Negri)
|:mksession|	Create a session file.
|:nohlsearch|	Stop 'hlsearch' highlighting for a moment.
|:Print|	This is Vi compatible.  Does the same as ":print".
|:promptfind|	Search dialog (Win32 GUI).
|:promptrepl|	Search/replace dialog (Win32 GUI).
|:return|	Return from a user-defined function.
|:simalt|	Win32 GUI: Simulate alt-key pressed.  (Negri)
|:smagic|	Like ":substitute", but always use 'magic'.
|:snomagic|	Like ":substitute", but always use 'nomagic'.
|:tcl|		Execute TCL command.
|:tcldo|	Execute TCL command for a range of lines.
|:tclfile|	Execute a TCL script file.
|:tearoff|	Tear-off a menu (Win32 GUI).
|:tmenu|
|:tunmenu|	Win32 GUI: menu tooltips.  (Negri)
|:star|	:*	Execute a register.


Changed							*changed-5.2*
-------

Renamed functions:
		buffer_exists()	   -> bufexists()
		buffer_name()      -> bufname()
		buffer_number()    -> bufnr()
		file_readable()    -> filereadable()
		highlight_exists() -> hlexists()
		highlightID()      -> hlID()
		last_buffer_nr()   -> bufnr("$")
The old ones are still there, for backwards compatibility.

The CTRL-_ command in Insert and Command-line mode is only available when the
new 'allowrevins' option is set.  Avoids that people who want to type SHIFT-_
accidentally enter reverse Insert mode, and don't know how to get out.

When a file name path in ":tselect" listing is too long, remove a part in the
middle and put "..." there.

Win32 GUI: Made font selector appear inside Vim window, not just any odd
place. (Negri)

":bn" skips help buffers, unless currently in a help buffer. (Negri)

When there is a status line and only one window, don't show '^' in the status
line of the current window.

":*" used to be used for "'<,'>", the Visual area.  But in Vi it's used as an
alternative for ":@".  When 'cpoptions' includes '*' this is Vi compatible.

When 'insertmode' is set, using CTRL-O to execute a mapping will work like
'insertmode' was not set.  This allows "normal" mappings to be used even when
'insertmode' is set.

When 'mouse' was set already (e.g., in the .vimrc file), don't automatically
set 'mouse' when the GUI starts.

Removed the 'N', 'I' and 'A' flags from the 'mouse' option.

Renamed "toggle option" to "boolean option".  Some people thought that ":set
xyz" would toggle 'xyz' on/off each time.

The internal variable "shell_error" contains the error code from the shell,
instead of just 0 or 1.

When inserting or replacing, typing CTRL-V CTRL-<CR> used to insert "<C-CR>".
That is not very useful.  Now the CTRL key is ignored and a <CR> is inserted.
Same for all other "normal" keys with modifiers.  Mapping these modified key
combinations is still possible.
In Insert mode, <C-CR> and <S-Space> can be inserted by using CTRL-K and then
the special character.

Moved "quotes" file to doc/quotes.txt, and "todo" file to doc/todo.txt.  They
are now installed like other documentation files.

winheight() function returns -1 for a non-existing window.  It used to be
zero, but that is a valid height now.

The default for 'selection' is "inclusive", which makes a difference when
using "$" or the mouse to move the cursor in Visual mode.

":q!" does not exit when there are changed buffers which are hidden.  Use
":qa!" to exit anyway.

Disabled the Perl/Python/Tcl interfaces by default.  Not many people use them
and they make the executable a lot bigger.  The internal scripting language is
now powerful enough for most tasks.

The strings from the 'titlestring' and 'iconstring' options are used
untranslated for the Window title and icon.  This allows for including a <CR>.
Previously a <CR> would be shown as "^M" (two characters).

When a mapping is started in Visual or Select mode which was started from
Insert mode (the mode shows "(insert) Visual"), don't return to Insert mode
until the mapping has ended.  Makes it possible to use a mapping in Visual
mode that also works when the Visual mode was started from Select mode.

Menus in $VIMRUNTIME/menu.vim no longer overrule existing menus.  This helps
when defining menus in the .vimrc file, or when sourcing mswin.vim.

Unix: Use /var/tmp for .swp files, if it exists.  Files there survive a
reboot (at least on Linux).


Added							*added-5.2*
-----

--with-motif-lib configure argument.  Allows for using a static Motif library.

Support for mapping numeric keypad +,-,*,/ keys. (Negri)
When not mapped, they produce the normal character.

Win32 GUI: When directory dropped on Gvim, cd there and edit new buffer.
(Negri)

Win32 GUI: Made CTRL-Break work as interrupt, so that CTRL-C can be
used for mappings.

In the output of ":map", highlight the "*" to make clear it's not part of the
rhs. (Roemer)

When showing the Visual area, the cursor is not switched off, so that it can
be located.  The Visual area is now highlighted with a grey background in the
GUI.  This makes the cursor visible when it's also reversed.

Win32: When started with single full pathname (e.g. via double-clicked file),
cd to that file's directory. (Negri)

Win32 GUI: Tear-off menus, with ":tearoff <menu-name>" command. (Negri)
't' option to 'guioptions': Add tearoff menu items for Win32 GUI and Motif.
It's included by default.
Win32 GUI: tearoff menu with submenus is indicated with a ">>". (Negri)

Added ^Kaa and ^KAA digraphs.
Added "euro" symbol to digraph.c. (Corry)

Support for Motif menu shortcut keys, using '&' like MS-Windows (Ollis).
Other GUIs ignore '&' in a menu name.

DJGPP: Faster screen updating (John Lange).

Clustering of syntax groups ":syntax cluster" (Bigham).
Including syntax files: ":syntax include" (Bigham).

Keep column when switching buffers, when 'nosol' is set (Radics).

Number function for Perl interface.

Support for Intellimouse in Athena GUI. (Jensen)

":sleep" also accepts an argument in milliseconds, when "m" is used.

Added 'p' flag in 'guioptions': Install callbacks for enter/leave window
events.  Makes cursor blinking work for Terhaar, breaks it for me.

"--help" and "--version" command-line arguments.

Non-text in ":list" output is highlighted with NonText.

Added text objects: "i(" and "i)" as synonym for "ib".  "i{" and "i}" as
synonym for "iB".  New: "i<" and "i>", to select <thing>.  All this also for
"a" objects.

'O' flag in 'shortmess': message for reading a file overwrites any previous
message. (Negri)

Win32 GUI: 'T' flag in 'guioptions': switch toolbar on/off.
Included a list with self-made toolbar bitmaps.  (Negri)

Added menu priority for sub-menus.  Implemented for Win32 and Motif GUI.
Display menu priority with ":menu" command.
Default and Syntax menus now include priority for items.  Allows inserting
menu items in between the default ones.

When the 'number' option is on, highlight line numbers with the LineNr group.

"Ignore" highlight group: Text highlighted with this is made blank.  It is
used to hide special characters in the help text.

Included Exuberant Ctags version 2.3, with C++ support, Java support and
recurse into directories. (Hiebert)

When a tags file is not sorted, and this is detected (in a simplistic way), an
error message is given.

":unlet" accepts a "!", to ignore non-existing variables, and accepts more
than one argument. (Roemer)
Completion of variable names for ":unlet". (Roemer)

When there is an error in a function which is called by another function, show
the call stack in the error message.

New file name modifiers:
":.": reduce file name to be relative to current dir.
":~": reduce file name to be relative to home dir.
":s?pat?sub?": substitute "pat" with "sub" once.
":gs?pat?sub?": substitute "pat" with "sub" globally.

New configure arguments: --enable-min-features and --enable-max-features.
Easy way to switch to minimum or maximum features.

New compile-time feature: modify_fname.  For file name modifiers, e.g,
"%:p:h".  Can be disabled to save some code (16 bit DOS).

When using whole-line completion in Insert mode, and 'cindent' is set, indent
the line properly.

MSDOS and Win32 console: 'guicursor' sets cursor thickness. (Negri)

Included new set of Farsi fonts. (Shiran)

Accelerator text now also works in Motif.  All menus can be defined with & for
mnemonic and TAB for accelerator text.  They are ignored on systems that don't
support them.
When removing or replacing a menu, compare the menu name only up to the <Tab>
before the mnemonic.

'i' and 'I' flags after ":substitute": ignore case or not.

"make install" complains if the runtime files are missing.

Unix: When finding an existing swap file that can't be opened, mention the
owner of the file in the ATTENTION message.

The 'i', 't' and 'k' options in 'complete' now also print the place where they
are looking for matches. (Acevedo)

"gJ" command: Join lines without inserting a space.

Setting 'keywordprg' to "man -s" is handled specifically.  The "-s" is removed
when no count given, the count is added otherwise.  Configure checks if "man
-s 2 read" works, and sets the default for 'keywordprg' accordingly.

If you do a ":bd" and there is only one window open, Vim tries to move to a
buffer of the same type (i.e. non-help to non-help, help to help), for
consistent behavior to :bnext/:bprev. (Negri)

Allow "<Nop>" to be used as the rhs of a mapping.  ":map xx <Nop>", maps "xx"
to nothing at all.

In a ":menu" command, "<Tab>" can be used instead of a real tab, in the menu
path.  This makes it more easy to type, no backslash needed.

POSIX compatible character classes for regexp patterns: [:alnum:], [:alpha:],
[:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:],
[:space:], [:upper:] and [:xdigit:]. (Briscoe)

regexp character classes (for fast syntax highlight matching):
	digits:	    \d [0-9]		\D  not digit (Roemer)
	hex:	    \x [0-9a-fA-F]	\X  not hex
	octal:	    \o [0-7]		\O  not octal
	word:	    \w [a-zA-Z0-9_]	\W  not word
	head:	    \h [a-zA-Z_]	\H  not head
	alphabetic: \a [a-zA-Z]		\A  not alphabetic
	lowercase:  \l [a-z]		\L  not lowercase
	uppercase:  \u [A-Z]		\U  not uppercase

":set" now accepts "+=", |^=" and "-=": add or remove parts of a string
option, add or subtract a number from a number option.  A comma is
automagically inserted or deleted for options that are a comma separated list.

Filetype feature, for autocommands.  Uses a file type instead of a pattern to
match a file.  Currently only used for RISC OS.  (Leonard)

In a pattern for an autocommand, environment variables can be used.  They are
expanded when the autocommand is defined.

"BufFilePre" and "BufFilePost" autocommand evens: Before and after applying
the ":file" command to change the name of a buffer.
"VimLeavePre" autocommand event: before writing the .viminfo file.

For autocommands argument: <abuf> is buffer number, like <afile>.

Made syntax highlighting a bit faster when scrolling backwards, by keeping
more syncing context.

Win32 GUI: Made scrolling faster by avoiding a redraw when deleting or
inserting screen lines.

GUI: Made scrolling faster by not redrawing the scrollbar when the thumb moved
less than a pixel.

Included ":highlight" in bugreport.vim.

Created install.exe program, for simplistic installation on DOS and
MS-Windows.

New register: '_', the black hole.  When writing to it, nothing happens.  When
reading from it, it's always empty.  Can be used to avoid a delete or change
command to modify the registers, or reduce memory use for big changes.

CTRL-V xff enters character by hex number.  CTRL-V o123 enters character by
octal number. (Aaron)

Improved performance of syntax highlighting by skipping check for "keepend"
when there isn't any.

Moved the mode message ("-- INSERT --") to the last line of the screen.  When
'cmdheight' is more than one, messages will remain readable.

When listing matching files, they are also sorted on 'suffixes', such that
they are listed in the same order as CTRL-N retrieves them.

synIDattr() takes a third argument (optionally), which tells for which
terminal type to get the attributes for.  This makes it possible to run
2html.vim outside of gvim (using color names instead of #RRGGBB).

Memory profiling, only for debugging.  Prints at exit, and with "g^A" command.
(Kahn)

DOS: When using a file in the current drive, remove the drive name:
"A:\dir\file" -> "\dir\file".  This helps when moving a session file on a
floppy from "A:\dir" to "B:\dir".

Increased number of remembered jumps from 30 to 50 per window.

Command to temporarily disable 'hls' highlighting until the next search:
":nohlsearch".

"gp" and "gP" commands: like "p" and "P", but leave the cursor just after the
inserted text.  Used for the CTRL-V command in MS-Windows mode.


Fixed							*fixed-5.2*
-----

Win32 GUI: Could draw text twice in one place, for fake-bold text.  Removed
this, Windows will handle the bold text anyway. (Negri)

patch 5.1.1: Win32s GUI: pasting caused a crash (Negri)

patch 5.1.2: When entering another window, where characters before the cursor
have been deleted, could have a cursor beyond the end of the line.

patch 5.1.3: Win32s GUI: Didn't wait for external command to finish. (Negri)

patch 5.1.4: Makefile.w32 can now also be used to generate the OLE version
(Scott).

patch 5.1.5: Crashed when using syntax highlighting: cursor on a line that
doesn't fit in the window, and splitting that line in two.

patch 5.1.6: Visual highlighting bug: After ":set nowrap", go to end of line
(so that the window scrolls horizontally), ":set wrap".  Following Visual
selection was wrong.

patch 5.1.7: When 'tagbsearch' off, and 'ignorecase' off, still could do
binary searching.

patch 5.1.8: Win32 GUI: dragging the scrollbar didn't update the ruler.

patch 5.1.9: Using ":gui" in .vimrc, caused xterm cursor to disappear.

patch 5.1.10: A CTRL-N in Insert mode could cause a crash, when a buffer
without a name exists.

patch 5.1.11: "make test" didn't work in the shadow directory.  Also adjusted
"make shadow" for the links in the ctags directory.

patch 5.1.12: "buf 123foo" used "123" as a count, instead as the start of a
buffer name.

patch 5.1.13: When completing file names on the command-line, reallocating the
command-line may go wrong.

patch 5.1.14: ":[nvci]unmenu" removed menu for all modes, when full menu patch
specified.

Graceful handling of NULLs in drag-dropped file list.  Handle passing NULL to
Fullname_save(). (Negri)

Win32: ":!start" to invoke a program without opening a console, swapping
screens, or waiting for completion in either console or gui version, e.g. you
can type ":!start winfile".  ALSO fixes "can't delete swapfile after spawning
a shell" bug. (enhancement of Aaron patch) (Negri)

Win32 GUI: Fix CTRL-X default keymapping to be more Windows-like. (Negri)

Shorten filenames on startup.  If in /foo/bar, entering "vim ../bar/bang.c"
displays "bang.c" in status bar, not "/foo/bar/bang.c"  (Negri)

Win32 GUI: No copy to Windows clipboard when it's not desired.

Win32s: Fix pasting from clipboard - made an assumption not valid under
Win32s. (Negri)

Win32 GUI: Speed up calls to gui_mch_draw_string() and cursor drawing
functions. (Negri)

Win32 GUI: Middle mouse button emulation now works in GUI! (Negri)

Could skip messages when combining commands in one line, e.g.:
":echo "hello" | write".

Perl interpreter was disabled before executing VimLeave autocommands.  Could
not use ":perl" in them.  (Aaron)

Included patch for the Intellimouse (Aaron/Robinson).

Could not set 'ls' to one, when last window has only one line.  (Mitterand)

Fixed a memory leak when removing menus.

After ":only" the ruler could overwrite a message.

Dos32: removed changing of __system_flags.  It appears to work better when
it's left at the default value.

p_aleph was an int instead of along, caused trouble on systems where
sizeof(int) != sizeof(long). (Schmidt)

Fixed enum problems for Ultrix. (Seibert)

Small redraw problem: "dd" on last line in file cleared wrong line.

Didn't interpret "cmd | endif" when "cmd" starts with a range.  E.g. "if 0 |
.d | endif".

Command "+|" on the last line of the file caused ml_get errors.

Memory underrun in eval_vars(). (Aaron)

Don't rename files in a difficult way, except on Windows 95 (was also done on
Windows NT).

Win32 GUI: An external command that produces an error code put the error
message in a dialog box.  had to close the window and close the dialog.  Now
the error code is displayed in the console. (Negri)

"comctl32.lib" was missing from the GUI libraries in Makefile.w32. (Battle)

In Insert mode, when entering a window in Insert mode, allow the cursor to be
one char beyond the text.

Renamed machine dependent rename() to mch_rename().  Define mch_rename() to
rename() when it works properly.

Rename vim_chdir() to mch_chdir(), because it's machine dependent.

When using an arglist, and editing file 5 of 4, ":q" could cause "-1 more
files to edit" error.

In if_python.c, VimCommand() caused an assertion when a do_cmdline() failed.
Moved the Python_Release_Vim() to before the VimErrorCheck().  (Harkins)

Give an error message for an unknown argument after "--".  E.g. for "vim
--xyz".

The FileChangedShell autocommand didn't set <afile> to the name of the changed
file.

When doing ":e file", causing the attention message, there sometimes was no
hit-enter prompt.  Caused by empty line or "endif" at end of sourced file.

A large number of patches for the VMS version. (Hunsaker)

When CTRL-L completion (find longest match) results in a shorter string, no
completion is done (happens with ":help").

Crash in Win32 GUI version, when using an Ex "@" command, because
LinePointers[] was used while not initialized.

Win32 GUI: allow mapping of Alt-Space.

Output from "vim -h" was sent to stderr.  Sending it to stdout is better, so
one can use "vim -h | more".

In command-line mode, ":vi[!]" should reload the file, just like ":e[!]".
In Ex mode, ":vi" stops Ex mode, but doesn't reload the file.  This is Vi
compatible.

When using a ":set ls=1" in the .gvimrc file, would get a status line for a
single window.  (Robinson)

Didn't give an error message for ":set ai,xx". (Roemer)
Didn't give an error message for ":set ai?xx", ":set ai&xx", ":set ai!xx".

Non-Unix systems: That a file exists but is unreadable is recognized as "new
file".  Now check for existence when file can't be opened (like Unix).

Unix: osdef.sh didn't handle declarations where the function name is at the
first column of the line.

DJGPP: Shortening of file names didn't work properly, because get_cwd()
returned a path with backslashes. (Negri)

When using a 'comments' part where a space is required after the middle part,
always insert a space when starting a new line.  Helps for C comments, below a
line with "/****".

Replacing path of home directory with "~/" could be wrong for file names
with embedded spaces or commas.

A few fixes for the Sniff interface. (Leherbauer)

When asking to hit 'y' or 'n' (e.g. for ":3,1d"), using the mouse caused
trouble.  Same for ":s/x/y/c" prompt.

With 'nowrap' and 'list', a Tab halfway on the screen was displayed as blanks,
instead of the characters specified with 'listchars'.  Also for other
characters that take more than one screen character.

When setting 'guifont' to an unknown font name, the previous font was lost and
a default font would be used. (Steed)

DOS: Filenames in the root directory didn't get shortened properly. (Negri)

DJGPP: making a full path name out of a file name didn't work properly when
there is no _fullpath() function. (Negri)

Win32 console: ":sh" caused a crash. (Negri)

Win32 console: Setting 'lines' and/or 'columns' in the _vimrc failed miserably
(could hang Windows 95). (Negri)

Win32: The change-drive function was not correct, went to the wrong drive.
(Tsindlekht)

GUI: When editing a command line in Ex mode, Tabs were sometimes not
backspaced properly, and unprintable characters were displayed directly.
non-GUI can still be wrong, because a system function is called for this.

":set" didn't stop after an error.  For example ":set no ai" gave an error for
"no", but still set "ai".  Now ":set" stops after the first error.

When running configure for ctags, $LDFLAGS wasn't passed to it, causing
trouble for IRIX.

"@%" and "@#" when file name not set gave an error message.  Now they just
return an empty string. (Steed)

CTRL-X and CTRL-A didn't work correctly with negative hex and octal numbers.
(Steed)

":echo" always started with a blank.

Updating GUI cursor shape didn't always work (e.g., when blinking is off).

In silent Ex mode ("ex -s" or "ex <file") ":s///p" didn't print a line.  Also
a few other commands that explicitly print a text line didn't work.  Made this
Vi compatible.

Win32 version of _chdrive() didn't return correct value. (Tsindlekht)

When using 't' in 'complete' option, no longer give an error message for a
missing tags file.

Unix: tgoto() can return NULL, which was not handled correctly in configure.

When doing ":help" from a buffer where 'binary' is set, also edited the help
file in binary mode.  Caused extra ^Ms for DOS systems.

Cursor position in a file was reset to 1 when closing a window.

":!ls" in Ex mode switched off echo.

When doing a double click in window A, while currently in window B, first
click would reset double click time, had to click three times to select a
word.

When using <F11> in mappings, ":mkexrc" produced an exrc file that can't be
used in Vi compatible mode.  Added setting of 'cpo' to avoid this.  Also, add
a CTRL-V in front of a '<', to avoid a normal string to be interpreted as a
special key name.

Gave confusing error message for ":set guifont=-*-lucida-*": first "font is
not fixed width", then "Unknown font".

Some options were still completely left out, instead of included as hidden
options.

While running the X11 GUI, ignore SIGHUP signals.  Avoids a crash after
executing an external command (in rare cases).

In os_unixx.h, signal() was defined to sigset(), while it already was.

Memory leak when executing autocommands (was reported as a memory leak in
syntax highlighting).

Didn't print source of error sometimes, because pointers were the same,
although names were different.

Avoid a number of UMR errors from Purify (third argument to open()).

A swap file could still be created just after setting 'updatecount' to zero,
when there is an empty buffer and doing ":e file". (Kutschera)

Test 35 failed on 64 bit machines. (Schild)

With "p" and "P" commands, redrawing was slow.

Awk script for html documentation didn't work correctly with AIX awk.
Replaced "[ ,.);\]	]" with "[] ,.);	]". (Briscoe)
The makehtml.awk script had a small problem, causing extra lines to be
inserted. (Briscoe)

"gqgq" could not be repeated.  Repeating for "gugu" and "gUgU" worked in a
wrong way.  Also made "gqq" work to be consistent with "guu".

C indent was wrong after "case ':':".

":au BufReadPre *.c put": Line from put text was deleted, because the buffer
was still assumed to be empty.

Text pasted with the Edit/Paste menu was subject to 'textwidth' and
'autoindent'.  That was inconsistent with using the mouse to paste.  Now "*p
is used.

When using CTRL-W CTRL-] on a word that's not a tag, and then CTRL-] on a tag,
window was split.

":ts" got stuck on a tags line that has two extra fields.

In Insert mode, with 'showmode' on, <C-O><C-G> message was directly
overwritten by mode message, if preceded with search command warning message.

When putting the result of an expression with "=<expr>p, newlines were
inserted like ^@ (NUL in the file).  Now the string is split up in lines at
the newline.

putenv() was declared with "const char *" in pty.c, but with "char *" in
osdef2.h.in.  Made the last one also "const char *".

":help {word}", where +{word} is a feature, jumped to the feature list instead
of where the command was explained.  E.g., ":help browse", ":help autocmd".

Using the "\<xx>" form in an expression only got one byte, even when using a
special character that uses several bytes (e.g., "\<F9>").
Changed "\<BS>" to produce CTRL-H instead of the special key code for the
backspace key.  "\<Del>" produces 0x7f.

":mkvimrc" didn't write a command to set 'compatible' or 'nocompatible'.

The shell syntax didn't contain a "syn sync maxlines" setting.  In a long file
without recognizable items, syncing took so long it looked like Vim hangs.
Added a maxlines setting, and made syncing interruptible.

The "gs" command didn't flush output before waiting.

Memory leaks for:
    ":if 0 | let a = b . c | endif"
    "let a = b[c]"
    ":so {file}" where {file} contains a ":while"

GUI: allocated fonts were never released. (Leonard)

Makefile.bor:
- Changed $(DEFINES) into a list of "-D" options, so that it can also be used
  for the resource compiler. (not tested!)
- "bcc.cfg" was used for all configurations.  When building for another
  configuration, the settings for the previous one would be used.  Moved
  "bcc.cfg" to the object directory. (Geddes)
- Included targets for vimrun, install, ctags and xxd.  Changed the default to
  use the Borland DLL Runtime Library, makes Vim.exe a log smaller. (Aaron)

"2*" search for the word under the cursor with "2" prepended. (Leonard)

When deleting into a specific register, would still overwrite the non-Win32
GUI selection.  Now ""x"*P works.

When deleting into the "" register, would write to the last used register.
Now ""x always writes to the unnamed register.

GUI Athena: A submenu with a '.' in it didn't work.  E.g.,
":amenu Syntax.XY\.Z.foo lll".

When first doing ":tag foo" and then ":tnext" and/or ":tselect" the order of
matching tags could change, because the current file is different.  Now the
existing matches are kept in the same order, newly found matches are added
after them, not matter what the current file is.

":ta" didn't find the second entry in a tags file, if the second entry was
longer than the first one.

When using ":set si tw=7" inserting "foo {^P}" made the "}" inserted at the
wrong position.  can_si was still TRUE when the cursor is not in the indent of
the line.

Running an external command in Win32 version had the problem that Vim exits
when the X on the console is hit (and confirmed).  Now use the "vimrun"
command to start the external command indirectly. (Negri)

Win32 GUI: When running an external filter, do it in a minimized DOS box.
(Negri)

":let" listed variables without translation into printable characters.

Win32 console: When resizing the window, switching back to the old size
(when exiting or executing an external command) sometimes failed. (Negri)
This appears to also fix a "non fixable" problem:
Win32 console in NT 4.0: When running Vim in a cmd window with a scrollbar,
the scrollbar disappeared and was not restored when Vim exits.  This does work
under NT 3.51, it appears not to be a Vim problem.

When executing BufDelete and BufUnload autocommands for a buffer without a
name, the name of the current buffer was used for <afile>.

When jumping to a tag it reported "tag 1 of >2", while in fact there could be
only two matches.  Changed to "tag 1 of 2 or more".

":tjump tag" did a linear search in the tags file, which can be slow.

Configure didn't find "LibXm.so.2.0", a Xm library with a version number.

Win32 GUI: When using a shifted key with ALT, the shift modifier would remain
set, even when it was already used by changing the used key.  E.g., "<M-S-9>"
resulted in "<M-S-(>", but it should be "<M-(>". (Negri)

A call to ga_init() was often followed by setting growsize and itemsize.
Created ga_init2() for this, which looks better. (Aaron)

Function filereadable() could call fopen() with an empty string, which might
be illegal.

X Windows GUI: When executing an external command that outputs text, could
write one character beyond the end of a buffer, which caused a crash. (Kohan)

When using "*" or "#" on a string that includes '/' or '?' (when these are
included in 'isk'), they were not escaped. (Parmelan)

When adding a ToolBar menu in the Motif GUI, the submenu_id field was not
cleared, causing random problems.

When adding a menu, the check if this menu (or submenu) name already exists
didn't compare with the simplified version (no mnemonic or accelerator) of the
new menu.  Could get two menus with the same name, e.g., "File" and "&File".

Breaking a line because of 'textwidth' at the last line in the window caused a
redraw of the whole window instead of a scroll.  Speeds up normal typing with
'textwidth' a lot for slow terminals.

An invalid line number produced an "invalid range" error, even when it wasn't
to be executed (inside "if 0").

When the unnamed, first buffer is re-used, the "BufDelete" autocommand was
not called.  It would stick in a buffer list menu.

When doing "%" on the NUL after the line, a "{" or "}" in the last character
of the line was not found.

The Insert mode menu was not used for the "s" command, the Operator-pending
menu was used instead.

With 'compatible' set, some syntax highlighting was not correct, because of
using "[\t]" for a search pattern.  Now use the regexps for syntax
highlighting like the 'cpoptions' option is empty (as was documented already).

When using "map <M-Space> ms" or "map <Space> sss" the output of ":map" didn't
show any lhs for the mapping (if 'isprint' includes 160).  Now always use
<Space> and <M-Space>, even when they are printable.

Adjusted the Syntax menu, so that the lowest entry fits on a small screen (for
Athena, where menus don't wrap).

When using CTRL-E or CTRL-Y in Insert mode for characters like 'o', 'x' and
digits, repeating the insert didn't work.

The file "tools/ccfilter.README.txt" could not be unpacked when using short
file names, because of the two dots.  Renamed it to
"tools/ccfilter_README.txt".

For a dark 'background', using Blue for Directory and SpecialKey highlight
groups is not very readable.  Use Cyan instead.

In the function uc_scan_attr() in ex_docmd.c there was a goto that jumped into
a block with a local variable.  That's illegal for some compilers.

Win32 GUI: There was a row of pixels at the bottom of the window which was not
drawn. (Aaron)

Under DOS, editing "filename/" created a swap file of "filename/.swp".  Should
be "filename/_swp".

Win32 GUI: pointer was hidden when executing an external command.

When 'so' is 999, "J" near the end of the file didn't redisplay correctly.

":0a" inserted after the first line, instead of before the first line.

Unix: Wildcard expansion didn't handle single quotes and {} patterns.  Now
":file 'window.c'" removes the quotes and ":e 'main*.c'" works (literal '*').
":file {o}{n}{e}" now results in file name "one".

Memory leak when setting a string option back to its default value.

==============================================================================
VERSION 5.3						*version-5.3*

Version 5.3 was a bug-fix version of 5.2.  There are not many changes.
Improvements made between version 5.2 and 5.3:

Changed							*changed-5.3*
-------

Renamed "IDE" menu to "Tools" menu.


Added							*added-5.3*
-----

Win32 GUI: Give a warning when Vim is activated, and one of the files changed
since editing started. (Negri)


Fixed							*fixed-5.3*
-----

5.2.1: Win32 GUI: space for external command was not properly allocated, could
cause a crash. (Aaron)  This was the reason to bring out 5.3 quickly after
5.2.

5.2.2: Some commands didn't complain when used without an argument, although
they need one: ":badd", ":browse", ":call", ":confirm", ":behave",
":delfunction", ":delcommand" and ":tearoff".
":endfunction" outside of a function gave wrong error message: "Command not
implemented".  Should be ":endfunction not inside a function".

5.2.3: Win32 GUI: When gvim was installed in "Program files", or another path
with a space in it, executing external commands with vimrun didn't work.

5.2.4: Pasting with the mouse in Insert mode left the cursor on the last
pasted character, instead of behind it.

5.2.5: In Insert mode, cursor after the end of the line, a shift-cursor-left
didn't include the last character in the selection.

5.2.6: When deleting text from Insert mode (with "<C-O>D" or the mouse), which
includes the last character in the line, the cursor could be left on the last
character in the line, instead of just after it.

5.2.7: Win32 GUI: scrollbar was one pixel too big.

5.2.8: Completion of "PopUp" menu showed the derivatives "PopUpc", "PopUPi",
etc.  ":menu" also showed these.

5.2.9: When using two input() functions on a row, the prompt would not be
drawn in column 0.

5.2.10: A loop with input() could not be broken with CTRL-C.

5.2.11: ":call asdf" and ":call asdf(" didn't give an error message.

5.2.12: Recursively using ":normal" crashes Vim after a while.  E.g.:
":map gq :normal gq<CR>"

5.2.13: Syntax highlighting used 'iskeyword' from wrong buffer.  When using
":help", then "/\k*" in another window with 'hlsearch' set.

5.2.14: When using ":source" from a function, global variables would not be
available unless "g:" was used.

5.2.15: XPM files can have the extension ".pm", which is the same as for Perl
modules.  Added "syntax/pmfile.vim" to handle this.

5.2.16: On Win32 and Amiga, "echo expand("%:p:h")" removed one dirname in an
empty buffer.  mch_Fullname() didn't append a slash at the end of a directory
name.

Should include the character under the cursor in the Visual area when using
'selection' "exclusive".  This wasn't done for "%", "e", "E", "t" and "f".

""p would always put register 0, instead of the unnamed (last used) register.
Reverse the change that ""x doesn't write in the unnamed (last used) register.
It would always write in register 0, which isn't very useful.  Use "-x for the
paste mappings in Visual mode.

When there is one long line on the screen, and 'showcmd' is off, "0$" didn't
redraw the screen.

Win32 GUI: When using 'mousehide', the pointer would flicker when the cursor
shape is changed. (Negri)

When cancelling Visual mode, and the cursor moves to the start, the wanted
column wasn't set, "k" or "j" moved to the wrong column.

When using ":browse" or ":confirm", was checking for a comment and separating
bar, which can break some commands.

Included fixes for Macintosh. (Kielhorn)

==============================================================================
VERSION 5.4						*version-5.4*

Version 5.4 adds new features, useful changes and a lot of bug fixes.


Runtime directory introduced				*new-runtime-dir*
----------------------------

The distributed runtime files are now in $VIMRUNTIME, the user files in $VIM.
You normally don't set $VIMRUNTIME but let Vim find it, by using
$VIM/vim{version}, or use $VIM when that doesn't exist.  This allows for
separating the user files from the distributed files and makes it more easy to
upgrade to another version.  It also makes it possible to keep two versions of
Vim around, each with their own runtime files.

In the Unix distribution the runtime files have been moved to the "runtime"
directory.  This makes it possible to copy all the runtime files at once,
without the need to know what needs to be copied.

The archives for DOS, Windows, Amiga and OS/2 now have an extra top-level
"vim" directory.  This is to make clear that user-modified files should be put
here.  The directory that contains the executables doesn't have '-' or '.'
characters.  This avoids strange extensions.

The $VIM and $VIMRUNTIME variables are set when they are first used.  This
allows them to be used by Perl, for example.

The runtime files are also found in a directory called "$VIM/runtime".  This
helps when running Vim after just unpacking the runtime archive.  When using
an executable in the "src" directory, Vim checks if "vim54" or "runtime" can
be added after removing it.  This make the runtime files be found just after
compiling.

A default for $VIMRUNTIME can be given in the Unix Makefile.  This is useful
if $VIM doesn't point to above the runtime directory but to e.g., "/etc/".


Filetype introduced					*new-filetype-5.4*
-------------------

Syntax files are now loaded with the new FileType autocommand.  Old
"mysyntaxfile" files will no longer work. |filetypes|

The scripts for loading syntax highlighting have been changed to use the
new Syntax autocommand event.

This combination of Filetype and Syntax events allows tuning the syntax
highlighting a bit more, also when selected from the Syntax menu.  The
FileType autocommand can also be used to set options and mappings specifically
for that type of file.

The "$VIMRUNTIME/filetype.vim" file is not loaded automatically.  The
":filetype on" command has been added for this.  ":syntax on" also loads it.

The 'filetype' option has been added.  It is used to trigger the FileType
autocommand event, like the 'syntax' option does for the Syntax event.

":set syntax=OFF" and ":set syntax=ON" can be used (in a modeline) to switch
syntax highlighting on/off for the current file.

The Syntax menu commands have been moved to $VIMRUNTIME/menu.vim.  The Syntax
menu is included both when ":filetype on" and when ":syntax manual" is used.

Renamed the old 'filetype' option to 'osfiletype'.  It was only used for
RISCOS.  'filetype' is now used for the common file type.

Added the ":syntax manual" command.  Allows manual selection of the syntax to
be used, e.g., from a modeline.


Vim script line continuation			*new-line-continuation*
----------------------------

When an Ex line starts with a backslash, it is concatenated to the previous
line.  This avoids the need for long lines. |line-continuation| (Roemer)
Example: >
	if   has("dialog_con") ||
	   \ has("dialog_gui")
	    :let result = confirm("Enter your choice",
				\ "&Yes\n&No\n&Maybe",
				\ 2)
	endif


Improved session files				*improved-sessions*
----------------------

New words for 'sessionoptions':
- "help"	Restore the help window.
- "blank"	Restore empty windows.
- "winpos"	Restore the Vim window position.  Uses the new ":winpos"
		command
- "buffers"	Restore hidden and unloaded buffers.  Without it only the
		buffers in windows are restored.
- "slash"	Replace backward by forward slashes in file names.
- "globals"	Store global variables.
- "unix"	Use unix file format (<NL> instead of <CR><NL>)

The ":mksession" and 'sessionoptions' are now in the +mksession feature.

The top line of the window is also restored when using a session file.

":mksession" and ":mkvimrc" don't store 'fileformat', it should be detected
when loading a file.

(Most of this was done by Vince Negri and Robert Webb)


Autocommands improved				*improved-autocmds-5.4*
---------------------

New events:
|FileType|	When the file type has been detected.
|FocusGained|	When Vim got input focus. (Negri)
|FocusLost|	When Vim lost input focus. (Negri)
|BufCreate|	Called just after a new buffer has been created or has been
		renamed. (Madsen)
|CursorHold|	Triggered when no key has been typed for 'updatetime'.  Can be
		used to do something with the word under the cursor. (Negri)
		Implemented CursorHold autocommand event for Unix. (Zellner)
		Also for Amiga and MS-DOS.
|GUIEnter|	Can be used to do something with the GUI window after it has
		been created (e.g., a ":winpos 100 50").
|BufHidden|	When a buffer becomes hidden.  Used to delete the
		option-window when it becomes hidden.

Also trigger |BufDelete| just before a buffer is going to be renamed. (Madsen)

The "<amatch>" pattern can be used like "<afile>" for autocommands, except
that it is the matching value for the FileType and Syntax events.

When ":let @/ = <string>" is used in an autocommand, this last search pattern
will be used after the autocommand finishes.

Made loading autocommands a bit faster.  Avoid doing strlen() on each exiting
pattern for each new pattern by remembering the length.


Encryption						*new-encryption*
----------

Files can be encrypted when writing and decrypted when reading.  Added the
'key' option, "-x" command line argument and ":X" command. |encryption| (based
on patch from Mohsin Ahmed)

When reading a file, there is an automatic detection whether it has been
crypted.  Vim will then prompt for the key.

Note that the encryption method is not compatible with Vi.  The encryption is
not unbreakable.  This allows it to be exported from the US.


GTK GUI port						*new-GTK-GUI*
------------

New GUI port for GTK+.  Includes a toolbar, menu tearoffs, etc. |gui-gtk|
Added the |:helpfind| command. (Kahn and Dalecki)


Menu changes						*menu-changes-5.4*
------------

Menus can now also be used in the console.  It is enabled by the new
'wildmenu' option.  This shows matches for command-line completion like a
menu.  This works as a minimal file browser.

The new |:emenu| command can be used to execute a menu item.

Uses the last status line to list items, or inserts a line just above the
command line.  (Negri)

The 'wildcharx' option can be used to trigger 'wildmenu' completion from a
mapping.

When compiled without menus, this can be detected with has("menu").  Also show
this in the ":version" output.  Allow compiling GUI versions without menu
support.  Only include toolbar support when there is menu support.

Moved the "Window" menu all the way to the right (priority 70).  Looks more
familiar for people working with MS-Windows, shouldn't matter for others.

Included "Buffers" menu.  Works with existing autocommands and functions.  It
can be disabled by setting the "no_buffers_menu" variable.  (Aaron and Madsen)

Win32 supports separators in a menu: "-.*-". (Geddes)
Menu separators for Motif now work too.

Made Popup menu for Motif GUI work. (Madsen)

'M' flag in 'guioptions': Don't source the system menu.

All the menu code has been moved from gui.c to menu.c.


Viminfo improved					*improved-viminfo*
----------------

New flags for 'viminfo':
'!'	Store global variables in the viminfo file if they are in uppercase
	letters. (Negri)
'h'	Do ":nohlsearch" when loading a viminfo file.

Store search patterns in the viminfo file with their offset, magic, etc.  Also
store the flag whether 'hlsearch' highlighting is on or off (which is not used
if the 'h' flag is in 'viminfo').

Give an error message when setting 'viminfo' without commas.


Various new commands					*new-commands-5.4*
--------------------

Operator |g?|: rot13 encoding. (Negri)

|zH| and |zL| commands: Horizontal scrolling by half a page.
|gm| move cursor to middle of screen line. (Ideas by Campbell)

Operations on Visual blocks: |v_b_I|, |v_b_A|, |v_b_c|, |v_b_C|, |v_b_r|,
|v_b_<| and |v_b_>|. (Kelly)

New command: CTRL-\ CTRL-N, which does nothing in Normal mode, and goes to
Normal mode when in Insert or Command-line mode.  Can be used by VisVim or
other OLE programs to make sure Vim is in Normal mode, without causing a beep.
|CTRL-\_CTRL-N|

":cscope kill" command to use the connection filename. |:cscope| (Kahn)

|:startinsert| command: Start Insert mode next.

|:history| command, to show all four types of histories. (Roemer)

|[m|, |[M|, |]m| and |]M| commands, for jumping backward/forward to start/end
of method in a (Java) class.

":@*" executes the * register. |:@| (Acevedo)

|go| and |:goto| commands: Jump to byte offset in the file.

|gR| and |gr| command: Virtual Replace mode.  Replace characters without
changing the layout. (Webb)

":cd -" changes to the directory from before the previous ":cd" command.
|:cd-| (Webb)

Tag preview commands |:ptag|.  Shows the result of a ":tag" in a dedicated
window.  Can be used to see the context of the tag (e.g., function arguments).
(Negri)
|:pclose| command, and CTRL-W CTRL-Z: Close preview window. (Moore)
'previewheight' option, height for the preview window.
Also |:ppop|, |:ptnext|, |:ptprevious|, |:ptNext|, |:ptrewind|, |:ptlast|.

|:find| and |:sfind| commands: Find a file in 'path', (split window) and edit
it.

The |:options| command opens an option window that shows the current option
values.  Or use ":browse set" to open it.  Options are grouped by function.
Offers short help on each option.  Hit <CR> to jump to more help.  Edit the
option value and hit <CR> on a "set" line to set a new value.


Various new options					*new-options-5.4*
-------------------

Scroll-binding: 'scrollbind' and 'scrollopt' options.  Added |:syncbind|
command.  Makes windows scroll the same amount (horizontally and/or
vertically). (Ralston)

'conskey' option for MS-DOS.  Use direct console I/O.  This should work with
telnet (untested!).

'statusline' option: Configurable contents of the status line.  Also allows
showing the byte offset in the file.  Highlighting with %1* to %9*, using the
new highlight groups User1 to User9.  (Madsen)

'rulerformat' option: Configurable contents of the ruler, like 'statusline'.
(Madsen)

'write' option: When off, writing files is not allowed.  Avoids overwriting a
file even with ":w!".  The |-m| command line option resets 'write'.

'clipboard' option: How the clipboard is used.  Value "unnamed": Use unnamed
register like "*. (Cortopassi)  Value "autoselect": Like what 'a' in
'guioptions' does but works in the terminal.

'guifontset' option: Specify fonts for the +fontset feature, for the X11 GUI
versions.  Allows using normal fonts when vim is compiled with this feature.
(Nam)

'guiheadroom' option: How much room to allow above/below the GUI window.
Used for Motif, Athena and GTK.

Implemented 'tagstack' option: When off, pushing tags onto the stack is
disabled (Vi compatible).  Useful for mappings.

'shellslash' option.  Only for systems that use a backslash as a file
separator.  This option will use a forward slash in file names when expanding
it.  Useful when 'shell' is sh or csh.

'pastetoggle' option: Key sequence that toggles 'paste'.  Works around the
problem that mappings don't work in Insert mode when 'paste' is set.

'display' option: When set to "lastline", the last line fills the window,
instead of being replaced with "@" lines.  Only the last three characters are
replaced with "@@@", to indicate that the line has not finished yet.

'switchbuf' option: Allows re-using existing windows on a buffer that is being
jumped to, or split the window to open a new buffer. (Roemer)

'titleold' option.  Replaces the fixed string "Thanks for flying Vim", which
is used to set the title when exiting. (Schild)


Vim scripts						*new-script-5.4*
-----------

The |exists()| function can also check for existence of a function. (Roemer)
An internal function is now found with a binary search, should be a bit
faster. (Roemer)

New functions:
- |getwinposx()| and |getwinposy()|: get Vim window position. (Webb)
- |histnr()|, |histadd()|, |histget()| and |histdel()|: Make history
  available. (Roemer)
- |maparg()|: Returns rhs of a mapping.  Based on a patch from Vikas.
- |mapcheck()|: Check if a map name matches with an existing one.
- |visualmode()|: Return type of last Visual mode. (Webb)
- |libcall()|: Call a function in a library.  Currently only for Win32. (Negri)
- |bufwinnr()|: find window that contains the specified buffer. (Roemer)
- |bufloaded()|: Whether a buffer exists and is loaded.
- |localtime()| and |getftime()|: wall clock time and last modification time
  of a file (Webb)
- |glob()|: expand file name wildcards only.
- |system()|: get the raw output of an external command. (based on a patch
  from Aaron).
- |strtrans()|: Translate String into printable characters.  Used for
  2html.vim script.
- |append()|: easy way to append a line of text in a buffer.

Changed functions:
- Optional argument to |strftime()| to give the time in seconds. (Webb)
- |expand()| now also returns names for files that don't exist.

Allow numbers in the name of a user command. (Webb)

Use "v:" for internal Vim variables: "v:errmsg", "v:shell_error", etc.  The
ones from version 5.3 can be used without "v:" too, for backwards
compatibility.

New variables:
"v:warningmsg" and "v:statusmsg" internal variables.  Contain the last given
warning and status message. |v:warningmsg| |v:statusmsg| (Madsen)
"v:count1" variable: like "v:count", but defaults to one when no count is
used. |v:count1|

When compiling without expression evaluation, "if 1" can be used around the
not supported commands to avoid it being executed.  Works like in Vim 4.x.
Some of the runtime scripts gave errors when used with a Vim that was compiled
with minimal features.  Now "if 1" is used around code that is not always
supported.

When evaluating an expression with && and ||, skip the parts that will not
influence the outcome.  This makes it faster and avoids error messages. (Webb)
Also optimized the skipping of expressions inside an "if 0".


Avoid hit-enter prompt					*avoid-hit-enter*
-----------------------

Added 'T' flag to 'shortmess': Truncate all messages that would cause the
hit-enter prompt (unless that would happen anyway).
The 'O' flag in 'shortmess' now also applies to quickfix messages, e.g., from
the ":cn" command.

The default for 'shortmess' is now "filnxtToO", to make most messages fit on
the command line, and not cause the hit-enter prompt.

Previous messages can be viewed with the new |:messages| command.

Some messages are shown fully, even when 'shortmess' tells to shorten
messages, because the user is expected to want to see them in full: CTRL-G and
some quickfix commands.


Improved quickfix					*improved-quickfix*
-----------------

Parse change-directory lines for gmake: "make[1]: Entering directory 'name'".
Uses "%D" and "%X" in 'errorformat'.
Also parse "Making {target} in {dir}" messages from make.  Helps when not
using GNU make. (Schandl)

Use 'isfname' for "%f" in 'errorformat'.

Parsing of multi-line messages. |errorformat-multi-line|

Allow a range for the |:clist| command. (Roemer)

Support for "global" file names, for error formats that output the file name
once for several errors. (Roemer)

|:cnfile| jumps to first error in next file.

"$*" in 'makeprg' is replaced by arguments to ":make". (Roemer)


Regular expressions					*regexp-changes-5.4*
-------------------

In a regexp, a '$' before "\)" is also considered to be an end-of-line. |/$|
In patterns "^" after "\|" or "\(" is a start-of-line. |/^| (Robinson)

In a regexp, in front of "\)" and "\|" both "$" and "\$" were considered
end-of-line.  Now use "$" as end-of-line and "\$" for a literal dollar.  Same
for '^' after "\(" and "\|". |/\$| |/\^|

Some search patterns can be extremely slow, even though they are not really
illegal.  For example: "\([^a-z]\+\)\+Q".  Allow interrupting any regexp
search with CTRL-C.

Register "/: last search string (read-only). (Kohan)  Changed to use last used
search pattern (like what 'hlsearch' uses).  Can set the search pattern with
":let @/ = {expr}".

Added character classes to search patterns, to avoid the need for removing the
'l' flag from 'cpoptions': |[:tab:]|, |[:return:]|, |[:backspace:]| and
|[:escape:]|.

By adding a '?' after a comparative operator in an expression, the comparison
is done by ignoring case. |expr-==?|


Other improvements made between version 5.3 and 5.4
---------------------------------------------------

Changed							*changed-5.4*
-------

Unix: Use $TMPDIR for temporary files, if it is set and exists.

Removed "Empty buffer" message.  It isn't useful and can cause a hit-enter
prompt. (Negri)

"ex -" now reads commands from stdin and works in silent mode.  This is to be
compatible with the original "ex" command that is used for scripts.

Default range for ":tcldo" is the whole file.

Cancelling Visual mode with ESC moved the cursor.  There appears to be no
reason for this.  Now leave the cursor where it is.

The ":grep" and ":make" commands see " as part of the arguments, instead of
the start of a comment.

In expressions the "=~" and "!~" operators no longer are affected by
'ignorecase'.

Renamed vimrc_example to vimrc_example.vim and gvimrc_example to
gvimrc_example.vim.  Makes them being recognized as vim scripts.

"gd" no longer starts searching at the end of the previous function, but at
the first blank line above the start of the current function.  Avoids that
using "gd" in the first function finds global a variable.

Default for 'complete' changed from ".,b" to ".,w,b,u,t,i".  Many more matches
will be found, at the cost of time (the search can be interrupted).

It is no longer possible to set 'shell*' options from a modeline.  Previously
only a warning message was given.  This reduces security risks.

The ordering of the index of documentation files was changed to make it more
easy to find a subject.

On MS-DOS and win32, when $VIM was not set, $HOME was used.  This caused
trouble if $HOME was set to e.g., "C:\" for some other tool, the runtime files
would not be found.  Now use $HOME only for _vimrc, _gvimrc, etc., not to find
the runtime file.

When 'tags' is "./{fname}" and there is no file name for the current buffer,
just use it.  Previously it was skipped, causing "vim -t {tag}" not to find
many tags.

When trying to select text in the 'scrolloff' area by mouse dragging, the
resulting scrolling made this difficult.  Now 'scrolloff' is temporarily set
to 0 or 1 to avoid this.  But still allow scrolling in the top line to extend
to above the displayed text.

Default for 'comments' now includes "sl:/*,mb: *,ex:*/", to make javadoc
comments work.  Also helps for C comments that start with "/*******".

CTRL-X CTRL-] Insert mode tag expansion tried to expand to all tags when used
after a non-ID character, which can take a very long time.  Now limit this to
200 matches.  Also used for command-line tag completion.

The OS/2 distribution has been split in two files.  It was too big to fit on a
floppy.  The same runtime archive as for the PC is now used.

In the documentation, items like <a-z> have been replaced with {a-z} for
non-optional arguments.  This avoids confusion with key names: <C-Z> is a
CTRL-Z, not a character between C and Z, that is {C-Z}.


Added							*added-5.4*
-----

Color support for the iris-ansi builtin termcap entry. (Tubman)

Included VisVim version 1.3a. (Erhardt)

Win32 port for SNiFF+ interface. (Leherbauer)
Documentation file for sniff interface: if_sniff.txt. (Leherbauer)

Included the "SendToVim" and "OpenWithVim" programs in the OleVim directory.
To be used with the OLE version of gvim under MS-Windows. (Schaller)

Included Exuberant Ctags version 3.2.4 with Eiffel support. (Hiebert)

When a file that is being edited is deleted, give a warning (like when the
time stamp changed).

Included newer versions of the HTML-generating Awk and Perl scripts. (Colombo)

Linux console mouse support through "gpm". (Tsindlekht)

Security fix: Disallow changing 'secure' and 'exrc' from a modeline.  When
'secure' is set, give a warning for changing options that contain a program
name.

Made the Perl interface work with Perl 5.005 and threads. (Verdoolaege)

When giving an error message for an ambiguous mapping, include the offending
mapping. (Roemer)

Command line editing:
- Command line completion of mappings. (Roemer)
- Command line completion for ":function", ":delfunction", ":let", ":call",
  ":if", etc. (Roemer)
- When using CTRL-D completion for user commands that have
  "-complete=tag_listfiles" also list the file names.  (Madsen)
- Complete the arguments of the ":command" command. (Webb)
- CTRL-R . in command line inserts last inserted text.  CTRL-F, CTRL-P, CTRL-W
  and CTRL-A after CTRL-R are used to insert an object from under the cursor.
  (Madsen)

Made the text in uganda.txt about copying Vim a bit more clear.

Updated the Vim tutor.  Added the "vimtutor" command, which copies the tutor
and starts Vim on it.  "make install" now also copies the tutor.

In the output of ":clist" the current entry is highlighted, with the 'i'
highlighting (same as used for 'incsearch').

For the ":clist" command, you can scroll backwards with "b" (one screenful),
"u" (half a screenful) and "k" (one line).

Multi-byte support:
- X-input method for multi-byte characters.  And various fixes for multi-byte
  support. (Nam)
- Hangul input method feature: |hangul|. (Nam)
- Cleaned up configuration of multi-byte support, XIM, fontset and Hangul
  input.  Each is now configurable separately.
- Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam)
- Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam)
- XIM support for GTK+. (Nam)
- First attempt to include support for SJIS encoding. (Nagano)
- When a double-byte character doesn't fit at the end of the line, put a "~"
  there and print it on the next line.
- Optimize output of multi-byte text. (Park)
- Win32 IME: preedit style is like over-the-spot. (Nagano)
- Win32 IME: IME mode change now done with ImmSetOpenStatus. (Nagano)
- GUI Athena: file selection dialog can display multi-byte characters.
  (Nagano)
- Selection reply for XA_TEXT as XA_STRING. (Nagano)

"runtime/macros/diffwin.vim".  Mappings to make a diff window. (Campbell)

Added ".obj" to the 'suffixes' option.

Reduced size of syntax/synload.vim by using the ":SynAu" user command.
Automated numbering of Syntax menu entries in menu.vim.
In the Syntax menu, insert separators between syntax names that start with
a different letter. (Geddes)

Xterm:
- Clipboard support when using the mouse in an xterm. (Madsen)
- When using the xterm mouse, track dragging of the mouse.  Use xterm escape
  sequences when possible.  It is more precise than other methods, but
  requires a fairly recent xterm version.  It is enabled with "xterm2" in
  'ttymouse'.  (Madsen)
- Check xterm patch level, to set the value of 'ttymouse'.  Has only been
  added to xterm recently (patch level > 95).  Uses the new 't_RV' termcap
  option.  Set 'ttymouse' to "xterm2" when a correct response is recognized.
  Will make xterm mouse dragging work better.
- Support for shifted function keys on xterm.  Changed codes for shifted
  cursor keys to what the xterm actually produces.  Added codes for shifted
  <End> and <Home>.
- Added 't_WP' to set the window position in pixels and 't_WS' to set the
  window size in characters.  Xterm can now move (used for ":winpos") and
  resize (use for ":set lines=" and ":set columns=").

X11:
- When in Visual mode but not owning the selection, display the Visual area
  with the VisualNOS group to show this. (Madsen)
- Support for requesting the type of clipboard support.  Used for AIX and
  dtterm. (Wittig)
- Support compound_text selection (even when compiled without multi-byte).

Swap file:
- New variation for naming swap files: Replace path separators into %, place
  all swap files in one directory.  Used when a name in 'dir' ends in two path
  separators. (Madsen)
- When a swap file is found, show whether it contains modifications or not in
  the informative message. (Madsen)
- When dialogs are supported, use a dialog to ask the user what to do when a
  swapfile already exists.

"popup_setpos" in 'mousemodel' option.  Allows for moving the cursor when
using the right mouse button.

When a buffer is deleted, the selection for which buffer to display instead
now uses the most recent entry from the jump list. (Madsen)

When using CTRL-O/CTRL-I, skip deleted buffers.

A percentage is shown in the ruler, when there is room.

Used autoconf 1.13 to generate configure.

Included get_lisp_indent() from Dirk van Deun.  Does better Lisp indenting
when 'p' flag in 'cpoptions' is not included.

Made the 2html.vim script quite a bit faster.  (based on ideas from Geddes)

Unix:
- Included the name of the user that compiled Vim and the system name it was
  compiled on in the version message.
- "make install" now also installs the "tools" directory.  Makes them
  available for everybody.
- "make check" now does the same as "make test".  "make test" checks for
  Visual block mode shift, insert, replace and change.
- Speed up comparing a file name with existing buffers by storing the
  device/inode number with the buffer.
- Added configure arguments "--disable-gtk", "--disable-motif" and
  "--disable-athena", to be able to disable a specific GUI (when it doesn't
  work).
- Renamed the configure arguments for disabling the check for specific GUIs.
  Should be clearer now. (Kahn)
- On a Digital Unix system ("OSF1") check for the curses library before
  termlib and termcap. (Schild)
- "make uninstall_runtime" will only delete the version-specific files.  Can
  be used to delete the runtime files of a previous version.

Macintosh: (St-Amant)
- Dragging the scrollbar, like it's done for the Win32 GUI.  Moved common code
  from gui_w32.c to gui.c
- Added dialogs and file browsing.
- Resource fork preserved, warning when it will be lost.
- Copy original file attributes to newly written file.
- Set title/notitle bug solved.
- Filename completion improved.
- Grow box limit resize to a char by char size.
- Use of rgb.txt for more colors (but give back bad color).
- Apple menu works (beside the about...).
- Internal border now vim compliant.
- Removing a menu doesn't crash anymore.
- Weak-linking of Python 1.5.1 (only on PPC).  Python is supported when the
  library is available.
- If an error is encountered when sourcing the users .vimrc, the alert box now
  shows right away with the OK button defaulted.  There's no more "Delete"-key
  sign at the start of each line
- Better management of environment variables.  Now $VIM is calculated only
  once, not regenerated every time it is used.
- No more CPU hog when in background.
- In a sourced Vim script the Mac file format can be recognized, just like DOS
  file format is.

When both "unix" and "mac" are present in 'fileformats', prefer "mac" format
when there are more CR than NL characters.
When using "mac" fileformat, use CR instead of a NL, because NL is used for
NUL.  Will preserve all characters in a file. (Madsen)

The DOS install.exe now contains checks for an existing installation.  It
avoids setting $VIM and $PATH again.
The install program for Dos/Windows can now install Vim in the popup menu, by
adding two registry keys.

Port to EGCS/mingw32.  New Makefile.ming. (Aaron)

DOS 16 bit: Don't include cursor shape stuff.  Save some bytes.

TCL support to Makefile.w32. (Duperval)

OS/2: Use argv[0] to find runtime files.

When using "gf" to go to a buffer that has already been used, jump to the
line where the cursor last was.

Colored the output of ":tselect" a bit more.  Different highlighting between
tag name and file name.  Highlight field name ("struct:") separately from
argument.

Backtick expansion for non-Unix systems.  Based on a patch from Aaron.
Allows the use of things like ":n `grep -l test *.c`" and
"echo expand('`ls m*`')".

Check for the 'complete' option when it is set. (Acevedo)
'd' flag in 'complete' searches for defined names or macros.
While searching for Insert mode completions in include files and tags files,
check for typeahead, so that you can use matches early. (Webb)
The '.' flag in 'complete' now scans the current buffer completely, ignoring
'nowrapscan'.  (Webb)

Added '~' flag to 'whichwrap'. (Acevedo)

When ending the Visual mode (e.g., with ESC) don't grab ownership of the
selection.

In a color terminal, "fg" and "bg" can be used as color names.  They stand for
the "Normal" colors.

A few cscope cleanups. (Kahn)

Included changed vimspell.sh from Schemenauer.

Concatenation of strings in an expression with "." is a bit faster. (Roemer)

The ":redir" command can now redirect to a register: ":redir @r". (Roemer)

Made the output of ":marks" and ":jumps" look similar.  When the mark is in
the current file, show the text at the mark.  Also for ":tags".

When configure finds ftello() and fseeko(), they are used in tag.c (for when
you have extremely big tags files).

Configure check for "-FOlimit,2000" argument for the compiler. (Borsenkow)

GUI:
- When using ":gui" in a non-GUI Vim, give a clear error message.
- "gvim -v" doesn't start the GUI (if console support is present).
- When in Ex mode, use non-Visual selection for the whole screen.
- When starting with "gvim -f" and using ":gui" in the .gvimrc file, Vim
  forked anyway.  Now the "-f" flag is remembered for ":gui".  Added "gui -b"
  to run gvim in the background anyway.

Motif GUI:
- Check for "-lXp" library in configure (but it doesn't work yet...).
- Let configure check for Lesstif in "/usr/local/Lesstif/Motif*".  Changed the
  order to let a local Motif version override a system standard version.

Win32 GUI:
- When using "-register" or "-unregister" in the non-OLE version, give an
  error message.
- Use GTK toolbar icons.  Make window border look better.  Use sizing handles
  on the lower left&right corners of the window. (Negri)
- When starting an external command with ":!start" and the command can not be
  executed, give an error message. (Webb)
- Use sizing handles for the grey rectangles below the scrollbars.  Can draw
  toolbar in flat mode now, looks better. (Negri)
- Preparations for MS-Windows 3.1 addition.  Mostly changing WIN32 to MSWIN
  and USE_GUI_WIN32 to USE_GUI_MSWIN. (Negri)

Avoid allocating the same string four times in buflist_findpat(). (Williams)

Set title and icon text with termcap options 't_ts', 't_fs', 't_IS' and
't_IE'.  Allows doing this on any terminal that supports setting the title
and/or icon text. (Schild)

New 'x' flag in 'comments': Automatically insert the end part when its last
character is typed.  Helps to close a /* */ comment in C. (Webb)

When expand() has a second argument which is non-zero, don't use 'suffixes'
and 'wildignore', return all matches.

'O' flag in 'cpoptions' When not included, Vim will not overwrite a file, if
it didn't exist when editing started but it does exist when the buffer is
written to the file.  The file must have been created outside of Vim, possibly
without the user knowing it.  When this is detected after a shell command,
give a warning message.

When editing a new file, CTRL-G will show [New file].  When there were errors
while reading the file, CTRL-G will show [Read errors].

":wall" can now use a dialog and file-browsing when needed.

Grouped functionality into new features, mainly to reduce the size of the
minimal version:
+linebreak:	'showbreak', 'breakat' and 'linebreak'
+visualextra:	"I"nsert and "A"ppend in Visual block mode, "c"hange all lines
		in a block, ">" and "<": Shifting a block, "r": Replacing a
		Visual area with one character.
+comments:	'comments'
+cmdline_info:	'ruler' and 'showcmd'.  Replaces +showcmd.
"+title"	Don't add code to set title or icon for MSDOS, this was not
		possible anyway.
+cmdline_compl	Disable commandline completion at compile time, except for
		files, directories and help items.

Moved features from a list of function calls into an array.  Should save a bit
of space.

While entering the body of a function, adjust indent according to "if" and
"while" commands.

VMS: Adjusted os_vms.mms a bit according to suggestions from Arpadffy.

The flags in the 'comments' option can now include an offset.  This makes it
possible to align "/*****", "/*   xxx" and "/*" comments with the same
'comments' setting.  The default value for 'comments' uses this.
Added 'O' flag: Don't use this part for the "O" command.  Useful for "set
com=sO:*\ -,mO:*\ \ ,exO:*/"

FileType autocommands recognize ".bak", ".orig" and "~" extensions and remove
them to find the relevant extension.

The tutorial for writing a Vim script file has been extended.

Some more highlighting in help files, for items that are not typed literally.

Can use "CTRL-W CTRL-G" like "CTRL-W g".

"make test" for OS/2.

Adjusted configure to automatically use the GUI for BeOS.


Fixed							*fixed-5.4*
-----

5.3.1: When using an autocommand for BufWritePre that changes the name of the
buffer, freed memory would be used. (Geddes)

Mac: Compiler didn't understand start of skip_class_name().

Win32 GUI:
- When cancelling the font requester, don't give an error message.
- When a tearoff-menu is open and its menu is deleted, Vim could crash.
  (Negri)
- There was a problem on Windows 95 with (un)maximizing the window.
  (Williams)
- when 'mousehide' is set, the mouse would stay hidden when a menu is dropped
  with the keyboard. (Ralston)
- The tempname() function already created the file.  Caused problems when
  using ":w".  Now the file is deleted.
- Cursor disappeared when ending up in the top-left character on the screen
  after scrolling. (Webb)
- When adding a submenu for a torn-off menu, it was not updated.
- Menu tooltip was using the toolbar tooltip. (Negri)
- Setting 'notitle' didn't remove the title. (Steed)
- Using ":!start cmd" scrolled the screen one line up, and didn't wait for
  return when the command wasn't found.

Cscope interface: Sorting of matches was wrong.  Starting the interface could
fail. (Kahn)

Motif GUI: Could not compile with Motif 1.1, because some tear-off
functionality was not in #ifdefs.

Configure could sometimes not compile or link the test program for sizeof(int)
properly.  This caused alignment problems for the undo structure allocations.
Added a safety check that SIZEOF_INT is not zero.

Added configure check to test if strings.h can be included after string.h.
Some systems can't handle it.
Some systems need both string.h and strings.h included.  Adjusted vim.h for
that.  Removed including string.h from os_unixx.h, since it's already in
vim.h. (Savage)
AIX: defining _NO_PROTO in os_unix.h causes a conflict between string.h and
strings.h, but after the configure check said it was OK.  Also define
_NO_PROTO for AIX in the configure check. (Winn)

When closing a window with CTRL-W c, the value of 'hidden' was not taken into
account, the buffer was always unloaded. (Negri)

Unix Makefile: "make install" always tried to rename an older executable and
remove it.  This caused an error message when it didn't exit.  Added a check
for the existence of an old executable.
The command line for "make install" could get too long, because of the many
syntax files.  Now first do a "cd" to reduce the length.

On RISCOS and MSDOS, reading a file could fail, because the short filename was
used, which can be wrong after a ":!cd".

In the DOS versions, the wrong install.exe was included (required Windows).
Now the install.exe version is included that is the same as the Vim version.
This also supports long file names where possible.

When recording, and stopping while in Insert mode with CTRL-O q, the CTRL-O
would also be recorded.

32bit DOS version: "vim \file", while in a subdirectory, resulted in "new
file" for "file" in the local directory, while "\file" did exist.  When
"file" in the current directory existed, this didn't happen.

MSDOS: Mouse could not go beyond 80 columns in 132 columns mode. (Young)

"make test" failed in the RedHat RPM, because compatible is off by default.

In Insert mode <C-O><C-W><C-W> changes to other window, but the status bars
were not updated until another character was typed.

MSDOS: environment options in lowercase didn't work, although they did in the
Win32 versions. (Negri)

After ":nohlsearch", a tag command switched highlighting back on.

When using "append" command as the last line in an autocommand, Vim would
crash.

RISCOS: The scroll bumpers (?) were not working properly. (Leonard)

"zl" and "zh" could move the cursor, but this didn't set the column in which
e.g., "k" would move the cursor.

When doing ":set all&" the value of 'scroll' was not set correctly.  This
caused an error message when later setting any other number option.

When 'hlsearch' highlighting has been disabled with ":nohlsearch",
incremental searching would switch it back on too early.

When listing tags for ":tselect", and using a non-search command, and the last
character was equal to the first (e.g., "99"), the last char would not be
shown.

When searching for tags with ":tag" Vim would assume that all matches had been
found when there were still more (e.g. from another tags file).

Win32: Didn't recognize "c:\" (e.g., in tags file) as absolute path when
upper/lowercase was different.

Some xterms (Debian) send <Esc>OH for HOME and <Esc>OF for END.  Added these
to the builtin-xterm.

In ex mode, any CR was seen as the end of the line.  Only a NL should be
handled that way.  broke ":s/foo/some^Mtext/".

In menu.vim, a vmenu was used to override an amenu.  That didn't work, because
the system menu file doesn't overwrite existing menus.  Added explicit vunmenu
to solve this.

Configure check for terminal library could find a library that doesn't work at
runtime (Solaris: shared library not found).  Added a check that a program
with tgoto() can run correctly.

Unix: "echo -n" in the Makefile doesn't work on all systems, causing errors
compiling pathdef.c.  Replaced it with "tr".

Perl: DO_JOIN was redefined by Perl.  Undefined it in the perl files.

Various XIM and multi-byte fixes:
- Fix user cannot see his language while he is typing his language with
  off-the-spot method. (Nagano)
- Fix preedit position using text/edit area (using gui.wid). (Nagano)
- remove 'fix dead key' codes.  It was needed since XNFocusWindow was
  "x11_window", XNFocusWindow is now gui.wid. (Nagano)
- Remove some compile warnings and fix typos. (Namsh)
- For status area, check the gtk+ version while Vim runs.  I believe it is
  better than compile time check. (Namsh)
- Remove one FIXME for gtk+-xim. (Namsh)
- XIM: Dead keys didn't work for Czech. (Vyskovsky)
- Multibyte: If user input only 3byte such as mb1_mb2_eng or eng_mb1_mb2 VIM
  could convert it to special character. (Nam)
- Athena/Motif with XIM: fix preedit area. (Nam)
- XIM: Composed strings were sometimes ignored.  Vim crashed when compose
  string was longer than 256 bytes.  IM's geometry control is fixed. (Nam,
  Nagano)
- Win32 multi-byte: hollowed cursor width on a double byte char was wrong.
  (Nagano)
- When there is no GUI, selecting XIM caused compilation problems.
  Automatically disable XIM when there is no GUI in configure.
- Motif and Athena: When compiled with XIM, but the input method was not
  enabled, there would still be a status line.  Now the status line is gone if
  the input method doesn't work. (Nam)

Win32: tooltip was not removed when selecting a parent menu (it was when
selecting a menu entry). (Negri)

Unix with X: Some systems crash on exit, because of the XtCloseDisplay() call.
Removed it, it should not be necessary when exiting.

Win32: Crash on keypress when compiled with Borland C++. (Aaron)

When checking for Motif library files, prefer the same location as the include
files (with "include" replaced with "lib") above another entry.

Athena GUI: Changed "XtOffset()" in gui_at_fs.c to "XtOffsetOf()", like it's
used in gui_x11.c.

Win32: When testing for a timestamp of a file on floppy, would get a dialog
box when the floppy has been removed.  Now return with an error.  (Negri)

Win32 OLE: When forced to come to the foreground, a minimized window was still
minimized, now it's restored. (Zivkov)

There was no check for a positive 'shiftwidth'.  A negative value could cause
a hangup, a zero value a crash.

Athena GUI: horizontal scrollbar wasn't updated correctly when clicking right
or left of the thumb.

When making a Visual-block selection in one window, and trying to scroll
another, could cause errors for accessing non-existent line numbers.

When 'matchpairs' contains "`:'", jumping from the ` to the ' didn't work
properly.

Changed '\"' to '"' to make it compatible with old C compilers.

The command line expansion for mappings caused a script with a TAB between lhs
and rhs of a map command to fail.  Assume the TAB is to separate lhs and rhs
when there are no mappings to expand.

When editing a file with very long lines with 'scrolloff' set, "j" would
sometimes end up in a line which wasn't displayed.

When editing a read-only file, it was completely read into memory, even when
it would not fit.  Now create a swap file for a read-only file when running
out of memory while reading the file.

When using ":set cino={s,e-s", a line after "} else {" was not indented
properly.  Also added a check for this in test3.in.

The Hebrew mapping for the command line was remembered for the next command
line.  That isn't very useful, a command is not Hebrew. (Kol)

When completing file names with embedded spaces, like "Program\ files", this
didn't work.  Also for user commands.  Moved backslash_halve() down to
mch_expandpath().

When using "set mouse=a" in Ex mode, mouse events were handled like typed
text.  Then typing "quit" screwed up the mouse behavior of the xterm.

When repeating an insert with "." that contains a CTRL-Y, a number 5 was
inserted as "053".

Yanking a Visual area, with the cursor past the line, didn't move the cursor
back onto the line.  Same for "~", "u", "U" and "g?"

Win32: Default for 'grepprg' could be "findstr /n" even though there is no
findstr.exe (Windows 95).  Check if it exists, and fall back to "grep -n" if
it doesn't.

Because gui_mouse_moved() inserted a leftmouse click in the input buffer,
remapping a leftmouse click caused strange effects.  Now Insert another code
in the input buffer.  Also insert a leftmouse release, to avoid the problem
with ":map <LeftMouse> l" that the next release is seen as the release for the
focus click.

With 'wrap' on, when using a line that doesn't fit on the screen, if the start
of the Visual area is before the start of the screen, there was no
highlighting.  Also, 'showbreak' doesn't work properly.

DOS, Win32: A pattern "[0-9]\+" didn't work in autocommands.

When creating a swap file for a buffer which isn't the current buffer, could
get a mixup of short file name, resulting in a long file name when a short
file name was required.  makeswapname() was calling modname() instead of
buf_modname().

When a function caused an error, and the error message was very long because
of recursiveness, this would cause a crash.

'suffixes' were always compared with matching case.  For MS-DOS, Win32 and
OS/2 case is now ignored.

The use of CHARBITS in regexp.c didn't work on some Linux.  Don't use it.

When generating a script file, 'cpo' was made empty.  This caused backslashes
to disappear from mappings.  Set it to "B" to avoid that.

Lots of typos in the documentation. (Campbell)

When editing an existing (hidden) buffer, jump to the last used cursor
position. (Madsen)

On a Sun the xterm screen was not restored properly when suspending. (Madsen)

When $VIMINIT is processed, 'nocompatible' was only set after processing it.

Unix: Polling for a character wasn't done for GPM, Sniff and Xterm clipboard
all together.  Cleaned up the code for using select() too.

When executing external commands from the GUI, some typeahead was lost.  Added
some code to regain as much typeahead as possible.

When the window height is 5 lines or fewer, <PageDown> didn't use a one-line
overlap, while <PageUp> does.  Made sure that <PageUp> uses the same overlap
as <PageDown>, so that using them both always displays the same lines.

Removed a few unused functions and variables (found with lint).

Dictionary completion didn't use 'infercase'. (Raul)

Configure tests failed when the Perl library was not in LD_LIBRARY_PATH.
Don't use the Perl library for configure tests, add it to the linker line only
when linking Vim.

When using ncurses/terminfo, could get a 't_Sf' and 't_Sb' termcap entry that
has "%d" instead of "%p1%d".  The light background colors didn't work then.

GTK GUI with ncurses: Crashed when starting up in tputs().  Don't use tputs()
when the GUI is active.

Could use the ":let" command to set the "count", "shell_error" and "version"
variables, but that didn't work.  Give an error message when trying to set
them.

On FreeBSD 3.0, tclsh is called tclsh8.0.  Adjusted configure.in to find it.

When Vim is linked with -lncurses, but python uses -ltermcap, this causes
trouble: "OOPS".  Configure now removes the -ltermcap.

:@" and :*" didn't work properly, because the " was recognized as the start of
a comment.

Win32s GUI: Minimizing the console where a filter command runs in caused
trouble for detecting that the filter command has finished. (Negri)

After executing a filter command from an xterm, the mouse would be disabled.
It would work again after changing the mode.

Mac GUI: Crashed in newenv(). (St-Amant)

The menus and mappings in mswin.vim didn't handle text ending in a NL
correctly. (Acevedo)

The ":k" command didn't check if it had a valid argument or extra characters.
Now give a meaningful error message. (Webb)

On SGI, the signal function doesn't always have three arguments.  Check for
struct sigcontext to find out.  Might still be wrong...

Could crash when using 'hlsearch' and search pattern is "^".

When search patterns were saved and restored, status of no_hlsearch was not
also saved and restored (from ":nohlsearch" command).

When using setline() to make a line shorter, the cursor position was not
adjusted.

MS-DOS and Win95: When trying to edit a file and accidentally adding a slash
or backslash at the end, the file was deleted.  Probably when trying to create
the swap file.  Explicitly check for a trailing slash or backslash before
trying to read a file.

X11 GUI: When starting the GUI failed and received a deadly signal while
setting the title, would lock up when trying to exit, because the title is
reset again.  Avoid using mch_settitle() recursively.

X11 GUI: When starting the GUI fails, and then trying it again, would crash,
because argv[] has been freed and x11_display was reset to NULL.

Win32: When $HOME was set, would put "~user" in the swap file, which would
never compare with a file name, and never cause the attention message.  Put
the full path in the swap file instead.

Win32 console: There were funny characters at the end of the "vim -r" swap
files message (direct output of CR CR LF).

DOS 32 bit: "vim -r" put the text at the top of the window.

GUI: With 'mousefocus' set, got mouse codes as text with "!sleep 100" or "Q".

Motif and Win32 GUI: When changing 'guifont' to a font of the same size the
screen wasn't redrawn.

Unix: When using ":make", jumping to a file b.c, which is already open as a
symbolic link a.c, opened a new buffer instead of using the existing one.

Inserting text in the current buffer while sourcing the .vimrc file would
cause a crash or hang.  The memfile for the current buffer was never
allocated.  Now it's allocated as soon as something is written in the buffer.

DOS 32 bit: "lightblue" background worked for text, but not drawn parts were
black.

DOS: Colors of console were not restored upon exiting.

When recording, with 'cmdheight' set to 2 and typing Esc> in Insert mode
caused the "recording" message to be doubled.

Spurious "file changed" messages could happen on Windows.  Now tolerate a one
second difference, like for Linux.

GUI: When returning from Ex mode, scrollbars were not updated.

Win32: Copying text to the clipboard containing a <CR>, pasting it would
replace it with a <NL> and drop the next character.

Entering a double byte character didn't work if the second byte is in [xXoO].
(Eric Lee)

vim_realloc was both defined and had a prototype in proto/misc2.pro.  Caused
conflicts on Solaris.

A pattern in an autocommand was treated differently on DOS et al. than on
Unix.  Now it's the same, also when using backslashes.

When using <Tab> twice for command line completion, without a match, the <Tab>
would be inserted. (Negri)

Bug in MS-Visual C++ 6.0 when compiling ex_docmd.c with optimization. (Negri)

Testing the result of mktemp() for failure was wrong.  Could cause a crash.
(Peters)

GUI: When checking for a ".gvimrc" file in the current directory, didn't check
for a "_gvimrc" file too.

Motif GUI: When using the popup menu and then adding an item to the menu bar,
the menu bar would get very high.

Mouse clicks and special keys (e.g. cursor keys) quit the more prompt and
dialogs.  Now they are ignored.

When at the more-prompt, xterm selection didn't work.  Now use the 'r' flag in
'mouse' also for the more-prompt.

When selecting a Visual area of more than 1023 lines, with 'guioptions' set to
"a", could mess up the display because of a message in free_yank().  Removed
that message, except for the Amiga.

Moved auto-selection from ui_write() to the screen update functions.  Avoids
unexpected behavior from a low-level function.  Also makes the different
feedback of owning the selection possible.

Vi incompatibility: Using "i<CR>" in an indent, with 'ai' set, used the
original indent instead of truncating it at the cursor. (Webb)

":echo x" didn't stop at "q" for the more prompt.

Various fixes for Macintosh. (St-Amant)

When using 'selectmode' set to "exclusive", selecting a word and then using
CTRL-] included the character under the cursor.

Using ":let a:name" in a function caused a crash. (Webb)

When using ":append", an empty line didn't scroll up.

DOS etc.: A file name starting with '!' didn't work.  Added '!' to default for
'isfname'.

BeOS: Compilation problem with prototype of skip_class_name(). (Price)

When deleting more than one line, e.g., with "de", could still use "U"
command, which didn't work properly then.

Amiga: Could not compile ex_docmd.c, it was getting too big.  Moved some
functions to ex_cmds.c.

The expand() function would add a trailing slash for directories.

Didn't give an error message when trying to assign a value to an argument of a
function.  (Webb)

Moved including sys/ptem.h to after termios.h.  Needed for Sinix.

OLE interface: Don't delete the object in CVimCF::Release() when the reference
count becomes zero. (Cordell)
VisVim could still crash on exit. (Erhardt)

"case a: case b:" (two case statements in one line) aligned with the second
case.  Now it uses one 'sw' for indent. (Webb)

Font initialisation wasn't right for Athena/Motif GUI.  Moved the call to
highlight_gui_started() gui_mch_init() to gui_mch_open(). (Nam)

In Replace mode, backspacing over a TAB before where the replace mode started
while 'sts' is different from 'ts', would delete the TAB.

Win32 console: When executing external commands and switching between the two
console screens, Vim would copy the text between the buffers.  That caused the
screen to be messed up for backtick expansion.

":winpos -1" then ":winpos" gave wrong error message.

Windows commander creates files called c:\tmp\$wc\abc.txt.  Don't remove the
backslash before the $.  Environment variables were not expanded anyway,
because of the backslash before the dollar.

Using "-=" with ":set" could remove half a part when it contains a "\,".
E.g., ":set path+=a\\,b" and then "set path-=b"  removed ",b".

When Visually selecting lines, with 'selection' set to "inclusive", including
the last char of the line, "<<" moved an extra line.  Also for other operators
that always work on lines.

link.sh changed "-lnsl_s" to "_s" when looking for "nsl" to be removed.
Now it only remove whole words.

When jumped to a mark or using "fz", and there is an error, the current column
was lost.  E.g. when using "$fzj".

The "g CTRL-G" command could not be interrupted, even though it can take a
long time.

Some terminals do have <F4> and <xF4>.  <xF4> was always interpreted as <F4>.
Now map <xF4> to <F4>, so that the user can override this.

When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be
used. (Aaron)

This autocommand looped forever: ":au FileChangedShell * nested e <afile>"
Now FileChangeShell never nests. (Roemer)

When evaluating an ":elseif" that was not going to matter anyway, ignore
errors. (Roemer)

GUI Lesstif: Tearoff bar was the last item, instead of the first.

GUI Motif: Colors of tear-off widgets was wrong when 't' flag added to
'guioptions' afterwards.  When 't' flag in 'guioptions' is excluded, would
still get a tearoff item in a new menu.

An inode number can be "long long".  Use ino_t instead of long.  Added
configure check for ino_t.

Binary search for tags was using a file offset "long" instead of "off_t".

Insert mode completion of tags was not using 'ignorecase' properly.

In Insert mode, the <xFn> keys were not properly mapped to <Fn> for the
default mappings.  Also caused errors for ":mkvimrc" and ":mksession".

When jumping to another window while in Insert mode, would get the "warning:
changing readonly file" even when not making a change.

A '(' or '{' inside a trailing "//" comment would disturb C-indenting.
When using two labels below each other, the second one was not indented
properly.  Comments could mess up C-indenting in many places.  (Roemer)

Could delete or redefine a function while it was being used.  Could cause a
crash.
In a function it's logical to prepend "g:" to a system variable, but this
didn't work. (Roemer)

Hangul input: Buffer would overflow when user inputs invalid key sequence.
(Nam)

When BufLoad or BufEnter autocommands change the topline of the buffer in the
window, it was overruled and the cursor put halfway the window.  Now only put
the cursor halfway if the autocommands didn't change the topline.

Calling exists("&option") always returned 1. (Roemer)

Win32: Didn't take actually available memory into account. (Williams)

White space after an automatically inserted comment leader was not removed
when 'ai' is not set and <CR> hit just after inserting it. (Webb)

A few menus had duplicated accelerators. (Roemer)

Spelling errors in documentation, quite a few "the the". (Roemer)

Missing prototypes for Macintosh. (Kielhorn)

Win32: When using 'shellquote' or 'shellxquote', the "!start cmd" wasn't
executed in a disconnected process.

When resizing the window, causing a line before the cursor to wrap or unwrap,
the cursor was displayed in the wrong position.

There was quite a bit of dead code when compiling with minimal features.

When doing a ":%s///" command that makes lines shorter, such that lines above
the final cursor position no longer wrap, the cursor position was not updated.

get_id_list() could allocate an array one too small, when a "contains=" item
has a wildcard that matches a group name that is added just after it.  E.g.:
"contains=a.*b,axb".  Give an error message for it.

When yanking a Visual area and using the middle mouse button -> crash.  When
clipboard doesn't work, now make "* always use "".

Win32: Using ":buf a\ b\file" didn't work, it was interpreted as "ab\file".

Using ":ts ident", then hit <CR>, with 'cmdheight' set to 2: command line was
not cleared, the tselect prompt was on the last but one line.

mksession didn't restore the cursor column properly when it was after a tab.
Could not get all windows back when using a smaller terminal screen.  Didn't
restore all windows when "winsize" was not in 'sessionoptions'. (Webb)

Command line completion for ":buffer" depended on 'ignorecase' for Unix, but
not for DOS et al.  Now don't use 'ignorecase', but let it depend on whether
file names are case sensitive or not (like when expanding file names).

Win32 GUI: (Negri)
- Redrawing the background caused flicker when resizing the window.  Removed
  _OnEraseBG().  Removed CS_HREDRAW and CS_VREDRAW flags from the
  sndclass.style.
- Some parts of the window were drawn in grey, instead of using the color from
  the user color scheme.
- Dropping a file on gvim didn't activate the window.
- When there is no menu ('guioptions' excludes 'm'), never use the ALT key for
  it.

GUI: When resizing the window, would make the window height a bit smaller.
Now round off to the nearest char cell size. (Negri)

In Vi the ")" and "(" commands don't stop at a single space after a dot.
Added 'J' flag in 'cpoptions' to make this behave Vi compatible. (Roemer)

When saving a session without any buffers loaded, there would be a ":normal"
command without arguments in it. (Webb)

Memory leaks fixed: (Madsen)
- eval.c: forgot to release func structure when func deleted
- ex_docmd.c: forgot to release string after "<sfile>"
- misc1.c: leak when completion pattern had no matches.
- os_unix.c: forgot to release regexp after file completions

Could crash when using a buffer without a name. (Madsen)
Could crash when doing file name completion, because of backslash_halve().
(Madsen)

":@a" would do mappings on register a, which is not Vi compatible. (Roemer)

":g/foo.*()/s/foobar/_&/gc" worked fine, but then "n" searched for "foobar"
and displayed "/foo.*()". (Roemer)

OS/2: get_cmd_output() was not included.  Didn't check for $VIM/.vimrc file.

Command line completion of options didn't work after "+=" and "-=".

Unix configure: Test for memmove()/bcopy()/memcpy() tried redefining these
functions, which could fail if they are defined already.  Use mch_memmove() to
redefine.

Unix: ":let a = expand("`xterm`&")" started an xterm asynchronously, but
":let a = expand("`xterm&`")" generated an error message, because the
redirection was put after the '&'.

Win32 GUI: Dialog buttons could not be selected properly with cursor keys,
when the default is not the first button. (Webb)

The "File has changed since editing started" (when regaining focus) could not
always be seen. (Webb)

When starting with "ex filename", the file message was overwritten with
the "entering Ex mode" message.

Output of ":tselect" listed name of file directly from the tags file.  Now it
is corrected for the position of the tags file.

When 'backspace' is 0, could backspace over autoindent.  Now it is no longer
allowed (Vi compatible).

In Replace mode, when 'noexpandtab' and 'smarttab' were set, and inserting
Tabs, backspacing didn't work correctly for Tabs inserted at the start of the
line (unless 'sts' was set too).  Also, when replacing the first non-blank
after which is a space, rounding the indent was done on the first non-blank
instead of on the character under the cursor.

When 'sw' at 4, 'ts' at 8 and 'smarttab' set: When a tab was appended after
four spaces (they are replaced with a tab) couldn't backspace over the tab.

In Insert mode, with 'bs' set to 0, couldn't backspace to before autoindent,
even when it was removed with CTRL-D.

When repeating an insert command where a <BS>, <Left> or other key causes an
error, would flush buffers and remain in Insert mode.  No longer flush
buffers, only beep and continue with the insert command.

Dos and Win32 console: Setting t_me didn't work to get another color.  Made
this works backwards compatible.

For Turkish (LANG = "tr") uppercase 'i' is not an 'I'.  Use ASCII uppercase
translation in vim_strup() to avoid language problems. (Komur)

Unix: Use usleep() or nanosleep() for mch_delay() when available.  Hopefully
this avoids a hangup in select(0, ..) for Solaris 2.6.

Vim would crash when using a script file with 'let &sp = "| tee"', starting
vim with "vim -u test", then doing ":set sp=".  The P_WAS_SET flag wasn't set
for a string option, could cause problems with any string option.

When using "cmd | vim -", stdin is not a terminal.  This gave problems with
GPM (Linux console mouse) and when executing external commands.  Now close
stdin and re-open it as a copy of stderr.

Syntax highlighting: A "nextgroup" item was not properly stored in the state
list.  This caused missing of next groups when not redrawing from start to
end, but starting halfway.

Didn't check for valid values of 'ttymouse'.

When executing an external command from the GUI, waiting for the child to
terminate might not work, causing a hang. (Parmelan)

"make uninstall" didn't delete the vimrc_example.vim and gvimrc_example.vim
files and the vimtutor.

Win32: "expand("%:p:h")" with no buffer name removed the directory name.
"fnamemodify("", ":p")" did not add a trailing slash, fname_case() removed it.

Fixed: When 'hlsearch' was set and the 'c' flag was not in 'cpoptions':
highlighting was not correct.  Now overlapping matches are handled correctly.

Athena, Motif and GTK GUI: When started without focus, cursor was shown as if
with focus.

Don't include 'shellpipe' when compiled without quickfix, it's not used.
Don't include 'dictionary' option when compiled without the +insert_expand
feature.
Only include the 'shelltype' option for the Amiga.

When making a change to a line, with 'hlsearch' on, causing it to wrap, while
executing a register, the screen would not be updated correctly.  This was a
generic problem in update_screenline() being called while must_redraw is
VALID.

Using ":bdelete" in a BufUnload autocommand could cause a crash.  The window
height was added to another window twice in close_window().

Win32 GUI: When removing a menu item, the tearoff wasn't updated. (Negri)

Some performance bottlenecks removed.  Allocating memory was not efficient.
For Win32 checking for available memory was slow, don't check it every time
now.  On NT obtaining the user name takes a long time, cache the result (for
all systems).

fnamemodify() with an argument ":~:." or ":.:~" didn't work properly.

When editing a new file and exiting, the marks for the buffer were not saved
in the viminfo file.

":confirm only" didn't put up a dialog.

These text objects didn't work when 'selection' was "exclusive": va( vi( va{
vi{ va< vi< vi[ va[.

The dialog for writing a readonly file didn't have a valid default. (Negri)

The line number used for error messages when sourcing a file was reset when
modelines were inspected.  It was wrong when executing a function.

The file name and line number for an error message wasn't displayed when it
was the same as for the last error, even when this was long ago.  Now reset
the name/lnum after a hit-enter prompt.

In a session file, a "%" in a file name caused trouble, because fprintf() was
used to write it to the file.

When skipping statements, a mark in an address wasn't skipped correctly:
"ka|if 0|'ad|else|echo|endif". (Roemer)

":wall" could overwrite a not-edited file without asking.

GUI: When $DISPLAY was not set or starting the GUI failed in another way, the
console mode then started with wrong colors and skipped initializations.  Now
do an early check if the GUI can be started.  Don't source the menu.vim or
gvimrc when it will not.  Also do normal terminal initializations if the GUI
might not start.

When using a BufEnter autocommand to position the cursor and scroll the
window, the cursor was always put at the last used line and halfway the window
anyhow.

When 'wildmode' was set to "longest,list:full", ":e *.c<Tab><Tab>" didn't list
the matches.  Also avoid that listing after a "longest" lists the wrong
matches when the first expansion changed the string in front of the cursor.

When using ":insert", ":append" or ":change" inside a while loop, was not able
to break out of it with a CTRL-C.

Win32: ":e ." took an awful long time before an error message when used in
"C:\".  Was caused by adding another backslash and then trying to get the full
name for "C:\\".

":winpos -10 100" was working like ":winpos -10 -10", because a pointer was
not advanced past the '-' sign.

When obtaining the value of a hidden option, would give an error message.  Now
just use a zero value.

OS/2: Was using argv[0], even though it was not a useful name.  It could be
just "vim", found in the search path.

Xterm: ":set columns=78" didn't redraw properly (when lines wrap/unwrap) until
after a delay of 'updatetime'.  Didn't check for the size-changed signal.

'scrollbind' didn't work in Insert mode.
Horizontal scrollbinding didn't always work for "0" and "$" commands (e.g.,
when 'showcmd' was off).

When compiled with minimal features but with GUI, switching on the mouse in an
xterm caused garbage, because the mouse codes were not recognized.  Don't
enable the mouse when it can't be recognized.  In the GUI it also didn't work,
the arguments to the mouse code were not interpreted.

When 'showbreak' used, in Insert mode, when the cursor is just after the last
character in the line, which is also the in the rightmost column, the cursor
position would be like the 'showbreak' string is shown, but it wasn't.

Autocommands could move the cursor in a new file, so that CTRL-W i didn't show
the right line.  Same for when using a filemark to jump to another file.

When redefining the argument list, the title used for other windows could be
showing the wrong info about the position in the argument list.  Also update
this for a ":split" command without arguments.

When editing file 97 of 13, ":Next" didn't work.  Now it goes to the last
file in the argument list.

Insert mode completion (for dictionaries or included files) could not be
interrupted by typing an <Esc>.  Could get hit-enter prompt after line
completion, or whenever the informative message would get too long.

When using the ":edit" command to re-edit the same file, an autocommand to
jump to the last cursor position caused the cursor to move.  Now set the last
used cursor position to avoid this.

When 'comments' has a part that starts with white space, formatting the
comment didn't work.

At the ":tselect" prompt Normal mode mappings were used.  That has been
disabled.

When 'selection' is not "old", some commands still didn't allow the cursor
past the end-of-line in Visual mode.

Athena: When a menu was deleted, it would appear again (but not functional)
when adding another menu.  Now they don't reappear anymore (although they are
not really deleted either).

Borland C++ 4.x had an optimizer problem in fill_breakat_flags(). (Negri)

"ze" didn't work when 'number' was on. (Davis)

Win32 GUI: Intellimouse code didn't work properly on Windows 98. (Robinson)

A few files were including proto.h a second time, after vim.h had already done
that, which could cause problems with the vim_realloc() macro.

Win32 console: <M-x> or ALT-x was not recognized.  Also keypad '+', '-' and
'*'. (Negri)
MS-DOS: <M-x> didn't work, produced a two-byte code.  Now the alphabetic and
number keys work. (Negri)

When finding a lot of matches for a tag completion, the check for avoiding
double matches could take a lot of time.  Add a line_breakcheck() to be able
to interrupt this. (Deshpande)

When the command line was getting longer than the screen, the more-prompt
would be given regularly, and the cursor position would be wrong.  Now only
show the part of the command line that fits on the screen and force the cursor
to be positioned on the visible part.  There can be text after the cursor
which isn't editable.

At the more prompt and with the console dialog, a cursor key was interpreted
as <Esc> and OA.  Now recognize special keys in get_keystroke().  Ignore mouse
and scrollbar events.

When typing a BS after inserting a middle comment leader, typing the last char
of the end comment leader still changed it into the end comment leader. (Webb)

When a file system is full, writing to a swap file failed.  Now first try to
write one block to the file.  Try next entry in 'dir' if it fails.

When "~" is in 'whichwrap', doing "~" on last char of a line didn't update the
display.

Unix: Expanding wildcards for ":file {\\}" didn't work, because "\}" was
translated to "}" before the shell got it.  Now don't remove backslashes when
wildcards are going to be expanded.

Unix: ":e /tmp/$uid" didn't work.  When expanding environment variables in a
file name doesn't work, use the shell to expand the file name.  ":e /tmp/$tty"
still doesn't work though.

"make test" didn't always work on DOS/Windows for test30, because it depended
on the external "echo" command.

The link.sh script used "make" instead of $MAKE from the Makefile.  Caused
problems for generating pathdef.c when "make" doesn't work properly.

On versions that can do console and GUI: In the console a typed CSI code could
cause trouble.

The patterns in expression evaluation didn't ignore the 'l' flag in
'cpoptions'.  This broke the working of <CR> in the options window.

When 'hls' off and 'ai' on, "O<Esc>" did remove the indent, but it was still
highlighted red for trailing space.

Win32 GUI: Dropping an encrypted file on a running gvim didn't work right.  Vim
would loop while outputting "*" characters.  vgetc() was called recursively,
thus it returns NUL.  Added safe_vgetc(), which reads input directly from the
user in this situation.

While reading text from stdin, only an empty screen was shown.  Now show that
Vim is reading from stdin.

The cursor shape wasn't set properly when returning to Insert mode, after
using a CTRL-O /asdf command which fails.  It would be OK after a few seconds.
Now it's OK right away.

The 'isfname' default for DOS/Windows didn't include the '@' character.  File
names that contained "dir\@file" could not be edited.

Win32 console: <C-S-Left> could cause a crash when compiled with Borland or
egcs. (Aaron)

Unix and VMS: "#if HAVE_DIRENT_H" caused problems for some compilers.  Use
"#ifdef HAVE_DIRENT_H" instead. (Jones)

When a matching tag is in the current file but has a search pattern that
doesn't match, the cursor would jump to the first line.

Unix: Dependencies for pty.c were not included in Makefile.  Dependency of
ctags/config.h was not included (only matters for parallel make).

Removed a few Uninitialized Memory Reads (potential crashes).  In do_call()
calling clear_var() when not evaluating.  In win32_expandpath() and
dos_expandpath() calling backslash_halve() past the end of a file name.

Removed memory leaks: Set_vim_var_string() never freed the value.  The
next_list for a syntax keyword was never freed.

On non-Unix systems, using a file name with wildcards without a match would
silently fail.  E.g., ":e *.sh".  Now give a "No match" error message.

The life/life.mac, urm/urm.mac and hanoi/hanoi.mac files were not recognized
as Vim scripts.  Renamed them to *.vim.

[Note: some numbered patches are not relevant when upgrading from version 5.3,
they have been removed]

Patch 5.4m.1
Problem:    When editing a file with a long name, would get the hit-enter
	    prompt, even though all settings are such that the name should be
	    truncated to avoid that.  filemess() was printing the file name
	    without truncating it.
Solution:   Truncate the message in filemess().  Use the same code as for
	    msg_trunc_attr(), which is moved to the new function
	    msg_may_trunc().
Files:	    src/message.c, src/proto/message.pro, src/fileio.c

Patch 5.4m.3
Problem:    The Motif libraries were not found by configure for Digital Unix.
Solution:   Add "/usr/shlib" to the search path. (Andy Kahn)
Files:	    src/configure.in, src/configure

Patch 5.4m.5
Problem:    Win32 GUI: When using the Save-As menu entry and selecting an
	    existing file in the file browser, would get a dialog to confirm
	    overwriting twice.  (Ed Krall)
Solution:   Removed the dialog from the file browser.  It would be nicer to
	    set the "forceit" flag and skip Vim's ":confirm" dialog, but it
	    requires quite a few changes to do that.
Files:	    src/gui_w32.c

Patch 5.4m.6
Problem:    Win32 GUI: When reading text from stdin, e.g., "cat foo | gvim -",
	    a message box would pop up with "-stdin-" (when exiting). (Michael
	    Schaap)
Solution:   Don't switch off termcap mode for versions that are GUI-only.
	    They use another terminal to read from stdin.
Files:	    src/main.c, src/fileio.c

Patch 5.4m.7
Problem:    Unix: running configure with --enable-gtk-check,
	    --enable-motif-check, --enable-athena-check or --enable-gtktest
	    had the reverse effect. (Thomas Koehler)
Solution:   Use $enable_gtk_check variable correctly in AC_ARG_ENABLE().
Files:	    src/configure.in, src/configure

Patch 5.4m.9
Problem:    Multi-byte: With wrapping lines, the cursor was sometimes 2
	    characters to the left.  Syntax highlighting was wrong when a
	    double-byte character was split for a wrapping line.  When
	    'showbreak' was on the splitting also didn't work.
Solution:   Adjust getvcol() and win_line(). (Chong-Dae Park)
Files:	    src/charset.c, src/screen.c

Patch 5.4m.11
Problem:    The ":call" command didn't check for illegal trailing characters.
	    (Stefan Roemer)
Solution:   Add the check in do_call().
Files:	    src/eval.c

Patch 5.4m.13
Problem:    With the ":s" command:
	    1. When performing a substitute command, the mouse would be
	       disabled and enabled for every substitution.
	    2. The cursor position could be beyond the end of the line.
	       Calling line_breakcheck() could try to position the cursor,
	       which causes a crash in the Win32 GUI.
	    3. When using ":s" in a ":g" command, the cursor was not put on
	       the first non-white in the line.
	    4. There was a hit-enter prompt when confirming the substitution
	       and the replacement was a bit longer.
Solution:   1. Only disable/enable the mouse when asking for confirmation.
	    2. Always put the cursor on the first character, it is going to be
	       moved to the first non-blank anyway.
	       Don't use the cursor position in gui_mch_draw_hollow_cursor(),
	       get the character from the screen buffer.
	    3. Added global_need_beginline flag to call beginline() after ":g"
	       has finished all substitutions.
	    4. Clear the need_wait_return flag after prompting the user.
Files:	    src/ex_cmds.c, src/gui_w32.c

Patch 5.4m.14
Problem:    When doing "vim xxx", ":opt", ":only" and then ":e xxx" we end
	    up with two swapfiles for "xxx".  That is caused by the ":bdel"
	    command which is executed when unloading the option-window.
	    Also, there was no check if closing a buffer made the new one
	    invalid, this could cause a crash.
Solution:   When closing a buffer causes the current buffer to be deleted,
	    use the new buffer to replace it.  Also detect that the new buffer
	    has become invalid as a side effect of closing the current one.
	    Make autocommand that calls ":bdel" in optwin.vim nested, so that
	    the buffer loading it triggers also executes autocommands.
	    Also added a test for this in test13.
Files:	    runtime/optwin.vim, src/buffer.c, src/ex_cmds.c, src/globals.h
	    src/testdir/test13.in, src/testdir/test13.ok

Patch 5.4m.15
Problem:    When using a BufEnter autocommand to reload the syntax file,
	    conversion to HTML caused a crash. (Sung-Hyun Nam)
Solution:   When using ":syntax clear" the current stack of syntax items was
	    not cleared.  This will cause memory to be used that has already
	    been freed.  Added call to invalidate_current_state() in
	    syntax_clear().
Files:	    src/syntax.c

Patch 5.4m.17
Problem:    When omitting a ')' in an expression it would not be seen as a
	    failure.
	    When detecting an error inside (), there would be an error message
	    for a missing ')' too.
	    When using ":echo 1+|echo 2" there was no error message. (Roemer)
	    When using ":exe 1+" there was no error message.
	    When using ":return 1+" there was no error message.
Solution:   Fix do_echo(), do_execute() and do_return() to give an error
	    message when eval1() returns FAIL.
	    Fix eval6() to handle trailing ')' correctly and return FAIL when
	    it's missing.
Files:	    src/eval.c

Patch 5.4m.18
Problem:    When using input() from inside an expression entered with
	    "CTRL-R =" on the command line, there could be a crash.  And the
	    resulting command line was wrong.
Solution:   Added getcmdline_prompt(), which handles recursive use of
	    getcmdline() correctly.  It also sets the command line prompt.
	    Removed cmdline_prompt().  Also use getcmdline_prompt() for
	    getting the crypt key in get_crypt_key().
Files:	    src/proto/ex_getln.pro, src/ex_getln.c, src/eval.c, src/misc2.c

Patch 5.4m.21
Problem:    When starting up, the screen structures were first allocated at
	    the minimal size, then initializations were done with Rows
	    possibly different from screen_Rows.  Caused a crash in rare
	    situations (GTK with XIM and fontset).
Solution:   Call screenalloc() in main() only after calling ui_get_winsize().
	    Also avoids a potential delay because of calling screenclear()
	    while "starting" is non-zero.
Files:	    src/main.c

Patch 5.4m.22
Problem:    In the GUI it was possible that the screen was resized and the
	    screen structures re-allocated while redrawing the screen.  This
	    could cause a crash (hard to reproduce).  The call sequence goes
	    through update_screen() .. syntax_start() .. ui_breakcheck() ..
	    gui_resize_window() .. screenalloc().
Solution:   Set updating_screen while redrawing.  If the window is resized
	    remember the new size and handle it only after redrawing is
	    finished.
	    This also fixes that resizing the screen while still redrawing
	    (slow syntax highlighting) would not work properly.
	    Also disable display_hint, it was never used.
Files:	    src/globals.h, src/gui.c, src/screen.c, src/proto/gui.pro

Patch 5.4m.23
Problem:    When using expand("<cword>") when there was no word under the
	    cursor, would get an error message.  Same for <cWORD> and <cfile>.
Solution:   Don't give an error message, return an empty string.
Files:	    src/eval.c

Patch 5.4m.24
Problem:    ":help \|" didn't find anything.  It was translated to "/\\|".
Solution:   Translate "\|" into "\\bar".  First check the table for specific
	    translations before checking for "\x".
Files:	    src/ex_cmds.c

Patch 5.4m.25
Problem:    Unix: When using command line completion on files that contain
	    ''', '"' or '|' the file name could not be used.
	    Adding this file name to the Buffers menu caused an error message.
Solution:   Insert a backslash before these three characters.
	    Adjust Mungename() function to insert a backslash before '|'.
Files:	    src/ex_getln.c, runtime/menu.vim

Patch 5.4m.26
Problem:    When using a mapping of two function keys, e.g., <F1><F1>, and
	    only the first char of the second key has been read, the mapping
	    would not be recognized.  Noticed on some Unix systems with xterm.
Solution:   Add 'K' flag to 'cpoptions' to wait for the whole key code, even
	    when halfway a mapping.
Files:	    src/option.h, src/term.c

Patch 5.4m.27
Problem:    When making test33 without the lisp feature it hangs. Interrupting
	    the execution of the script then might cause a crash.
Solution:   In inchar(), after closing a script, don't use buf[] anymore.
	    closescript() has freed typebuf[] and buf[] might be pointing
	    inside typebuf[].
	    Avoid that test33 hangs when the lisp feature is missing.
Files:	    src/getchar.c src/testdir/test33.in

"os2" was missing from the feature list.  Useful for has("os2").

BeOS:
- Included patches from Richard Offer for BeOS R4.5.
- menu code didn't work right.  Crashed in the Buffers menu.  The window title
  wasn't set. (Offer)

Patch 5.4n.3
Problem:    C-indenting was wrong after "  } else".  The white space was not
	    skipped.  Visible when 'cino' has "+10".
Solution:   Skip white space before calling cin_iselse(). (Norbert Zeh)
Files:	    src/misc1.c

Patch 5.4n.4
Problem:    When the 't' flag in 'cpoptions' is included, after a
	    ":nohlsearch" the search highlighting would not be enabled again
	    after a tag search. (Norbert Zeh)
Solution:   When setting the new search pattern in jumpto_tag(), don't restore
	    no_hlsearch.
Files:	    src/tag.c

Patch 5.4n.5
Problem:    When using ":normal" from a CursorHold autocommand Vim hangs.  The
	    autocommand is executed down from vgetc().  Calling vgetc()
	    recursively to execute the command doesn't work then.
Solution:   Forbid the use of ":normal" when vgetc_busy is set.  Give an error
	    message when this happens.
Files:	    src/ex_docmd.c, runtime/doc/autocmd.txt

Patch 5.4n.6
Problem:    "gv" could reselect a Visual that starts and/or ends past the end
	    of a line. (Robert Webb)
Solution:   Check that the start and end of the Visual area are on a valid
	    character by calling adjust_cursor().
Files:	    src/normal.c

Patch 5.4n.8
Problem:    When a mark was on a non existing line (e.g., when the .viminfo
	    was edited), jumping to it caused ml_get errors. (Alexey
	    Marinichev).
Solution:   Added check_cursor_lnum() in nv_gomark().
Files:	    src/normal.c

Patch 5.4n.9
Problem:    ":-2" moved the cursor to a negative line number. (Ralf Schandl)
Solution:   Give an error message for a negative line number.
Files:	    src/ex_docmd.c

Patch 5.4n.10
Problem:    Win32 GUI: At the hit-enter prompt, it was possible to scroll the
	    text.  This erased the prompt and made Vim look like it is in
	    Normal mode, while it is actually still waiting for a <CR>.
Solution:   Disallow scrolling at the hit-enter prompt for systems that use
	    on the fly scrolling.
Files:	    src/message.c

Patch 5.4n.14
Problem:    Win32 GUI: When using ":winsize 80 46" and the height is more than
	    what fits on the screen, the window size was made smaller than
	    asked for (that's OK) and Vim crashed (that's not OK)>
Solution:   Call check_winsize() from gui_set_winsize() to resize the windows.
Files:	    src/gui.c

Patch 5.4n.16
Problem:    Win32 GUI: The <F10> key both selected the menu and was handled as
	    a key hit.
Solution:   Apply 'winaltkeys' to <F10>, like it is used for Alt keys.
Files:	    src/gui_w32.c

Patch 5.4n.17
Problem:    Local buffer variables were freed when the buffer is unloaded.
	    That's not logical, since options are not freed. (Ron Aaron)
Solution:   Free local buffer variables only when deleting the buffer.
Files:	    src/buffer.c

Patch 5.4n.19
Problem:    Doing ":e" (without argument) in an option-window causes trouble.
	    The mappings for <CR> and <Space> are not removed.  When there is
	    another buffer loaded, the swap file for it gets mixed up.
	    (Steve Mueller)
Solution:   Also remove the mappings at the BufUnload event, if they are still
	    present.
	    When re-editing the same file causes the current buffer to be
	    deleted, don't try editing it.
	    Also added a test for this situation.
Files:	    runtime/optwin.vim, src/ex_cmds.c, src/testdir/test13.in,
	    src/testdir/test13.ok

Patch 5.4n.24
Problem:    BeOS: configure never enabled the GUI, because $with_x was "no".
	    Unix prototypes caused problems, because Display and Widget are
	    undefined.
	    Freeing fonts on exit caused a crash.
Solution:   Only disable the GUI when $with_x is "no" and  $BEOS is not "yes".
	    Add dummy defines for Display and Widget in proto.h.
	    Don't free the fonts in gui_exit() for BeOS.
Files:	    src/configure.in, src/configure, src/proto.h, src/gui.c.


The runtime/vim48x48.xpm icon didn't have a transparent background. (Schild)

Some versions of the mingw32/egcs compiler didn't have WINBASEAPI defined.
(Aaron)

VMS:
- mch_setenv() had two arguments instead of three.
- The system vimrc and gvimrc files were called ".vimrc" and ".gvimrc".
  Removed the dot.
- call to RealWaitForChar() had one argument too many. (Campbell)
- WaitForChar() is static, removed the prototype from proto/os_vms.pro.
- Many file accesses failed, because Unix style file names were used.
  Translate file names to VMS style by using vim_fopen().
- Filtering didn't work, because the temporary file name was generated wrong.
- There was an extra newline every 9192 characters when writing a file.  Work
  around it by writing line by line. (Campbell)
- os_vms.c contained "# typedef int DESC".  Should be "typedef int DESC;".
  Only mattered for generating prototypes.
- Added file name translation to many places.  Made easy by defining macros
  mch_access(), mch_fopen(), mch_fstat(), mch_lstat() and mch_stat().
- Set default for 'tagbsearch' to off, because binary tag searching apparently
  doesn't work for VMS.
- make mch_get_host_name() work with /dec and /standard=vaxc. (Campbell)


Patch 5.4o.2
Problem:    Crash when using "gf" on "file.c://comment here". (Scott Graham)
Solution:   Fix wrong use of pointers in get_file_name_in_path().
Files:	    src/window.c

Patch 5.4o.3
Problem:    The horizontal scrollbar was not sized correctly when 'number' is
	    set and 'wrap' not set.
	    Athena: Horizontal scrollbar wasn't updated when the cursor was
	    positioned with a mouse click just after dragging.
Solution:   Subtract 8 from the size when 'number' set and 'wrap' not set.
	    Reset gui.dragged_sb when a mouse click is received.
Files:	    src/gui.c

Patch 5.4o.4
Problem:    When running in an xterm and $WINDOWID is set to an illegal value,
	    Vim would exit with "Vim: Got X error".
Solution:   When using the display which was opened for the xterm clipboard,
	    check if x11_window is valid by trying to obtain the window title.
	    Also add a check in setup_xterm_clip(), for when using X calls to
	    get the pointer position in an xterm.
Files:	    src/os_unix.c

Patch 5.4o.5
Problem:    Motif version with Lesstif: When removing the menubar and then
	    using a menu shortcut key, Vim would crash. (raf)
Solution:   Disable the menu mnemonics when the menu bar is removed.
Files:	    src/gui_motif.c

Patch 5.4o.9
Problem:    The DOS install.exe program used the "move" program.  That doesn't
	    work on Windows NT, where "move" is internal to cmd.exe.
Solution:   Don't use an external program for moving the executables.  Use C
	    functions to copy the file and delete the original.
Files:	    src/dosinst.c

Motif and Athena obtained the status area height differently from GTK.  Moved
status_area_enabled from global.h to gui_x11.c and call
xim_get_status_area_height() to get the status area height.

Patch 5.4p.1
Problem:    When using auto-select, and the "gv" command is used, would not
	    always obtain ownership of the selection.  Caused by the Visual
	    area still being the same, but ownership taken away by another
	    program.
Solution:   Reset the clipboard Visual mode to force updating the selection.
Files:	    src/normal.c

Patch 5.4p.2
Problem:    Motif and Athena with XIM: Typing 3-byte
	    <multibyte><multibyte><space> doesn't work correctly with Ami XIM.
Solution:   Avoid using key_sym XK_VoidSymbol. (Nam)
Files:	    src/multbyte.c, src/gui_x11.c

Patch 5.4p.4
Problem:    Win32 GUI: The scrollbar values were reduced for a file with more
	    than 32767 lines.  But this info was kept global for all
	    scrollbars, causing a mixup between the windows.
	    Using the down arrow of a scrollbar in a large file didn't work.
	    Because of round-off errors there is no scroll at all.
Solution:   Give each scrollbar its own scroll_shift field.  When the down
	    arrow is used, scroll several lines.
Files:	    src/gui.h, src/gui_w32.c

Patch 5.4p.5
Problem:    When changing buffers in a BufDelete autocommand, there could be
	    ml_line errors and/or a crash. (Schandl)  Was caused by deleting
	    the current buffer.
Solution:   When the buffer to be deleted unexpectedly becomes the current
	    buffer, don't delete it.
	    Also added a check for this in test13.
Files:	    src/buffer.c, src/testdir/test13.in, src/testdir/test13.ok

Patch 5.4p.7
Problem:    Win32 GUI: When using 'mousemodel' set to "popup_setpos" and
	    clicking the right mouse button outside of the selected area, the
	    selected area wasn't removed until the popup menu has gone.
	    (Aaron)
Solution:   Set the cursor and update the display before showing the popup
	    menu.
Files:	    src/normal.c

Patch 5.4p.8
Problem:    The generated bugreport didn't contain information about
	    $VIMRUNTIME and whether runtime files actually exist.
Solution:   Added a few checks to the bugreport script.
Files:	    runtime/bugreport.vim

Patch 5.4p.9
Problem:    The windows install.exe created a wrong entry in the popup menu.
	    The "%1" was "".  The full directory was included, even when the
	    executable had been moved elsewhere. (Ott)
Solution:   Double the '%' to get one from printf.  Only include the path to
	    gvim.exe when it wasn't moved and it's not in $PATH.
Files:	    src/dosinst.c

Patch 5.4p.10
Problem:    Win32: On top of 5.4p.9: The "Edit with Vim" entry sometimes used
	    a short file name for a directory.
Solution:   Change the "%1" to "%L" in the registry entry.
Files:	    src/dosinst.c

Patch 5.4p.11
Problem:    Motif, Athena and GTK: When closing the GUI window when there is a
	    changed buffer, there was only an error message and Vim would not
	    exit.
Solution:   Put up a dialog, like for ":confirm qa".  Uses the code that was
	    already used for MS-Windows.
Files:	    src/gui.c, src/gui_w32.c

Patch 5.4p.12
Problem:    Win32: Trying to expand a string that is longer than 256
	    characters could cause a crash. (Steed)
Solution:   For the buffer in win32_expandpath() don't use a fixed size array,
	    allocate it.
Files:	    src/os_win32.c

MSDOS: Added "-Wall" to Makefile.djg compile flags.  Function prototypes for
fname_case() and mch_update_cursor() were missing.  "fd" was unused in
mf_sync().  "puiLocation" was unused in myputch().  "newcmd" unused in
mch_call_shell() for DJGPP version.

==============================================================================
VERSION 5.5						*version-5.5*

Version 5.5 is a bug-fix version of 5.4.


Changed							*changed-5.5*
-------

The DJGPP version is now compiled with "-O2" instead of "-O4" to reduce the
size of the executables.

Moved the src/STYLE file to runtime/doc/develop.txt.  Added the design goals
to it.

'backspace' is now a string option.  See patch 5.4.15.


Added							*added-5.5*
-----

Included Exuberant Ctags version 3.3. (Darren Hiebert)

In runtime/mswin.vim, map CTRL-Q to CTRL-V, so that CTRL-Q can be used
everywhere to do what CTRL-V used to do.

Support for decompression of bzip2 files in vimrc_example.vim.

When a patch is included, the patch number is entered in a table in version.c.
This allows skipping a patch without breaking a next one.

Support for mouse scroll wheel in X11.  See patch 5.5a.14.

line2byte() can be used to get the size of the buffer.  See patch 5.4.35.

The CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert mode are used to
insert a register literally.  See patch 5.4.48.

Uninstall program for MS-Windows.  To be able to remove the registry entries
for "Edit with Vim".  It is registered to be run from the "Add/Remove
programs" application.  See patch 5.4.x7.


Fixed							*fixed-5.5*
-----

When using vimrc_example.vim: An error message when the cursor is on a line
higher than the number of lines in the compressed file.  Move the autocommand
for jumping to the last known cursor position to after the decompressing
autocommands.

":mkexrc" and ":mksession" wrote the current value of 'textmode'.  That may
mark a file as modified, which causes problems.  This is a buffer-specific
setting, it should not affect all files.

"vim --version" wrote two empty lines.

Unix: The alarm signal could kill Vim.  It is generated by the Perl alarm()
function.  Ignore SIGALRM.

Win32 GUI: Toolbar still had the yellow bitmap for running a Vim script.

BeOS: "tmo" must be bigtime_t, instead of double. (Seibert)

Patch 5.4.1
Problem:    Test11 fails when $GZIP is set to "-v". (Matthew Jackson)
Solution:   Set $GZIP to an empty string.
Files:	    src/testdir/test11.in

Patch 5.4.2
Problem:    Typing <Esc> at the crypt key prompt caused a crash. (Kallingal)
Solution:   Check for a NULL pointer returned from get_crypt_key().
Files:	    src/fileio.c

Patch 5.4.3
Problem:    Python: Trying to use the name of an unnamed buffer caused a
	    crash. (Daniel Burrows)
Solution:   Check for b_fname being a NULL pointer.
Files:	    src/if_python.c

Patch 5.4.4
Problem:    Win32: When compiled without toolbar, but the 'T' flag is in
	    'guioptions', there would be an empty space for the toolbar.
Solution:   Add two #ifdefs where checking for the 'T' flag. (Vince Negri)
Files:	    src/gui.c

Patch 5.4.5
Problem:    Athena GUI: Using the Buffers.Refresh menu entry caused a crash.
	    Looks like any ":unmenu" command may cause trouble.
Solution:   Disallow ":unmenu" in the Athena version.  Disable the Buffers
	    menu, because the Refresh item would not work.
Files:	    src/menu.c, runtime/menu.vim

Patch 5.4.6
Problem:    GTK GUI: Using ":gui" in the .gvimrc file caused an error.  Only
	    happens when the GUI forks.
Solution:   Don't fork in a recursive call of gui_start().
Files:	    src/gui.c

Patch 5.4.7
Problem:    Typing 'q' at the more prompt for the ATTENTION message causes the
	    file loading to be interrupted. (Will Day)
Solution:   Reset got_int after showing the ATTENTION message.
Files:	    src/memline.c

Patch 5.4.8
Problem:    Edit some file, ":he", ":opt": options from help window are shown,
	    but pressing space updates from the other window. (Phillipps)
	    Also: When there are changes in the option-window, ":q!" gives an
	    error message.
Solution:   Before creating the option-window, go to a non-help window.
	    Use ":bdel!" to delete the buffer.
Files:	    runtime/optwin.vim

Patch 5.4.9
	    Just updates version.h.  The real patch has been moved to 5.4.x1.
	    This patch is just to keep the version number correct.

Patch 5.4.10
Problem:    GTK GUI: When $DISPLAY is invalid, "gvim -f" just exits.  It
	    should run in the terminal.
Solution:   Use gtk_init_check() instead of gtk_init().
Files:	    src/gui_gtk_x11.c

Patch 5.4.11
Problem:    When using the 'S' flag in 'cpoptions', 'tabstop' is not copied to
	    the next buffer for some commands, e.g., ":buffer".
Solution:   When the BCO_NOHELP flag is given to buf_copy_options(), still
	    copy the options used by do_help() when neither the "from" or "to"
	    buffer is a help buffer.
Files:	    src/option.c

Patch 5.4.12
Problem:    When using 'smartindent', there would be no extra indent if the
	    current line did not have any indent already. (Hanus Adler)
Solution:   There was a wrongly placed "else", that previously matched with
	    the "if" that set trunc_line.  Removed the "else" and added a
	    check for trunc_line to be false.
Files:	    src/misc1.c

Patch 5.4.13
Problem:    New SGI C compilers need another option for optimisation.
Solution:   Add a check in configure for "-OPT:Olimit". (Chin A Young)
Files:	    src/configure.in, src/configure

Patch 5.4.14
Problem:    Motif GUI: When the popup menu is present, a tiny window appears
	    on the desktop for some users.
Solution:   Set the menu widget ID for a popup menu to 0. (Thomas Koehler)
Files:	    src/gui_motif.c

Patch 5.4.15
Problem:    Since 'backspace' set to 0 has been made Vi compatible, it is no
	    longer possible to only allow deleting autoindent.
Solution:   Make 'backspace' a list of parts, to allow each kind of
	    backspacing separately.
Files:	    src/edit.c, src/option.c, src/option.h, src/proto/option.pro,
	    runtime/doc/option.txt, runtime/doc/insert.txt

Patch 5.4.16
Problem:    Multibyte: Locale zh_TW.Big5 was not checked for in configure.
Solution:   Add zh_TW.Big5 to configure check. (Chih-Tsun Huang)
Files:	    src/configure.in, src/configure

Patch 5.4.17
Problem:    GUI: When started from inside gvim with ":!gvim", Vim would not
	    start.  ":!gvim -f" works fine.
Solution:   After forking, wait a moment in the parent process, to give the
	    child a chance to set its process group.
Files:	    src/gui.c

Patch 5.4.18
Problem:    Python: The clear_history() function also exists in a library.
Solution:   Rename clear_history() to clear_hist().
Files:	    src/ex_getln.c, src/eval.c, src/proto/ex_getln.pro

Patch 5.4.19
Problem:    In a terminal with 25 lines, there is a more prompt after the
	    ATTENTION message.  When hitting 'q' here the dialog prompt
	    doesn't appear and file loading is interrupted. (Will Day)
Solution:   Don't allow quitting the printing of a message for the dialog
	    prompt.  Added the msg_noquit_more flag for this.
Files:	    src/message.c

Patch 5.4.20
Problem:    GTK: When starting gvim, would send escape sequences to the
	    terminal to switch the cursor off and on.
Solution:   Don't call msg_start() if the GUI is expected to start.
Files:	    src/main.c

Patch 5.4.21
Problem:    Motif: Toplevel menu ordering was wrong when using tear-off items.
Solution:   Don't add one to the index for a toplevel menu.
Files:	    src/gui_motif.c

Patch 5.4.22
Problem:    In Insert mode, <C-Left>, <S-Left>, <C-Right> and <S-Right> didn't
	    update the column used for vertical movement.
Solution:   Set curwin->w_set_curswant for those commands.
Files:	    src/edit.c

Patch 5.4.23
Problem:    When a Visual selection is lost to another program, and then the
	    same text is Visually selected again, the clipboard ownership
	    wasn't regained.
Solution:   Set clipboard.vmode to NUL to force regaining the clipboard.
Files:	    src/normal.c

Patch 5.4.24
Problem:    Encryption: When using ":r file" while 'key' has already entered,
	    the 'key' option would be messed up.  When writing the file it
	    would be encrypted with an unknown key and lost! (Brad Despres)
Solution:   Don't free cryptkey when it is equal to the 'key' option.
Files:	    src/fileio.c

Patch 5.4.25
Problem:    When 'cindent' is set, but 'autoindent' isn't, comments are not
	    properly indented when starting a new line. (Mitterand)
Solution:   When there is a comment leader for the new line, but 'autoindent'
	    isn't set, do C-indenting.
Files:	    src/misc1.c

Patch 5.4.26
Problem:    Multi-byte: a multi-byte character is never recognized in a file
	    name, causing a backslash before it to be removed on Windows.
Solution:   Assume that a leading-byte character is a file name character in
	    vim_isfilec().
Files:	    src/charset.c

Patch 5.4.27
Problem:    Entries in the PopUp[nvic] menus were added for several modes, but
	    only deleted for the mode they were used for.  This resulted in
	    the  entry remaining in the PopUp menu.
	    When removing a PopUp[nvic] menu, the name had been truncated,
	    could result in greying-out the whole PopUp menu.
Solution:   Remove entries for all modes from the PopUp[nvic] menus.  Remove
	    the PopUp[nvic] menu entries first, before the name is changed.
Files:	    src/menu.c

Patch 5.4.28
Problem:    When using a BufWritePre autocommand to change 'fileformat', the
	    new value would not be used for writing the file.
Solution:   Check 'fileformat' after executing the autocommands instead of
	    before.
Files:	    src/fileio.c

Patch 5.4.29
Problem:    Athena GUI: When removing the 'g' flag from 'guioptions', using a
	    menu can result in a crash.
Solution:   Always grey-out menus for Athena, don't hide them.
Files:	    src/menu.c

Patch 5.4.30
Problem:    BeOS: Suspending Vim with CTRL-Z didn't work (killed Vim).  The
	    first character typed after ":sh" goes to Vim, instead of the
	    started shell.
Solution:   Don't suspend Vim, start a new shell.  Kill the async read thread
	    when starting a new shell.  It will be restarted later. (Will Day)
Files:	    src/os_unix.c, src/ui.c

Patch 5.4.31
Problem:    GUI: When 'mousefocus' is set, moving the mouse over where a
	    window boundary was, causes a hit-enter prompt to be finished.
	    (Jeff Walker)
Solution:   Don't use 'mousefocus' at the hit-enter prompt.  Also ignore it
	    for the more prompt and a few other situations.  When an operator
	    is pending, abort it first.
Files:	    src/gui.c

Patch 5.4.32
Problem:    Unix: $LDFLAGS was not passed to configure.
Solution:   Pass $LDFLAGS to configure just like $CFLAGS. (Jon Miner)
Files:	    src/Makefile

Patch 5.4.33
Problem:    Unix: After expanding an environment variable with the shell, the
	    next expansion would also use the shell, even though it is not
	    needed.
Solution:   Reset "recursive" before returning from gen_expand_wildcards().
Files:	    src/misc1.c

Patch 5.4.34 (also see 5.4.x5)
Problem:    When editing a file, and the file name is relative to a directory
	    above the current directory, the file name was made absolute.
	    (Gregory Margo)
Solution:   Add an argument to shorten_fnames() which indicates if all file
	    names should be shortened, or only absolute names.  In main() only
	    use shorten_fnames() to shorten absolute names.
Files:	    src/ex_docmd.c, src/fileio.c, src/main.c, src/proto/fileio.pro

Patch 5.4.35
Problem:    There is no function to get the current file size.
Solution:   Allow using line2byte() with the number of lines in the file plus
	    one.  This returns the offset of the line past the end of the
	    file, which is the file size plus one.
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 5.4.36
Problem:    Comparing strings while ignoring case didn't work correctly for
	    some machines. (Mide Steed)
Solution:   vim_stricmp() and vim_strnicmp() only returned 0 or 1.  Changed
	    them to return -1 when the first argument is smaller.
Files:	    src/misc2.c

Patch 5.4.37 (also see 5.4.40 and 5.4.43)
Problem:    Long strings from the viminfo file are truncated.
Solution:   When writing a long string to the viminfo file, first write a line
	    with the length, then the string itself in a second line.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/mark.c, src/ops.c,
	    src/search.c, src/proto/ex_cmds.pro, runtime/syntax/viminfo.vim

Patch 5.4.38
Problem:    In the option-window, ":set go&" resulted in 'go' being handled
	    like a boolean option.
	    Mappings for <Space> and <CR> were overruled by the option-window.
Solution:   When the value of an option isn't 0 or 1, don't handle it like a
	    boolean option.
	    Save and restore mappings for <Space> and <CR> when entering and
	    leaving the option-window.
Files:	    runtime/optwin.vim

Patch 5.4.39
Problem:    When setting a hidden option, spaces before the equal sign were
	    not skipped and cause an error message.  E.g., ":set csprg =cmd".
Solution:   When skipping over a hidden option, check for a following "=val"
	    and skip it too.
Files:	    src/option.c

Patch 5.4.40 (depends on 5.4.37)
Problem:    Compiler error for "atol(p + 1)". (Axel Kielhorn)
Solution:   Add a typecast: "atol((char *)p + 1)".
Files:	    src/ex_cmds.c

Patch 5.4.41
Problem:    Some commands that were not included would give an error message,
	    even when after "if 0".
Solution:   Don't give an error message for an unsupported command when not
	    executing the command.
Files:	    src/ex_docmd.c

Patch 5.4.42
Problem:    ":w" would also cause a truncated message to appear in the message
	    history.
Solution:   Don't put a kept message in the message history when it starts
	    with "<".
Files:	    src/message.c

Patch 5.4.43 (depends on 5.4.37)
Problem:    Mixing long lines with multiple lines in a register causes errors
	    when writing the viminfo file. (Robinson)
Solution:   When reading the viminfo file to skip register contents, skip
	    lines that start with "<".
Files:	    src/ops.c

Patch 5.4.44
Problem:    When 'whichwrap' includes '~', a "~" command that goes on to the
	    next line cannot be properly undone. (Zellner)
Solution:   Save each line for undo in n_swapchar().
Files:	    src/normal.c

Patch 5.4.45 (also see 5.4.x8)
Problem:    When expand("$ASDF") fails, there is an error message.
Solution:   Remove the global expand_interactively.  Pass a flag down to skip
	    the error message.
	    Also: expand("$ASDF") returns an empty string if $ASDF isn't set.
	    Previously it returned "$ASDF" when 'shell' is "sh".
	    Also: system() doesn't print an error when the command returns an
	    error code.
Files:	    many

Patch 5.4.46
Problem:    Backspacing did not always use 'softtabstop' after hitting <CR>,
	    inserting a register, moving the cursor, etc.
Solution:   Reset inserted_space much more often in edit().
Files:	    src/edit.c

Patch 5.4.47
Problem:    When executing BufWritePre or BufWritePost autocommands for a
	    hidden buffer, the cursor could be moved to a non-existing
	    position. (Vince Negri)
Solution:   Save and restore the cursor and topline for the current window
	    when it is going to be used to execute autocommands for a hidden
	    buffer.  Use an existing window for the buffer when it's not
	    hidden.
Files:	    src/fileio.c

Patch 5.4.48
Problem:    A paste with the mouse in Insert mode was not repeated exactly the
	    same with ".".  For example, when 'autoindent' is set and pasting
	    text with leading indent. (Perry)
Solution:   Add the CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert
	    mode, which insert the contents of a register literally.
Files:	    src/edit.c, src/normal.c, runtime/doc/insert.txt

Patch 5.4.49
Problem:    When pasting text with [ <MiddleMouse>, the cursor could end up
	    after the last character of the line.
Solution:   Correct the cursor position for the change in indent.
Files:	    src/ops.c

Patch 5.4.x1 (note: Replaces patch 5.4.9)
Problem:    Win32 GUI: menu hints were never used, because WANT_MENU is not
	    defined until vim.h is included.
Solution:   Move the #ifdef WANT_MENU from where MENUHINTS is defined to where
	    it is used.
Files:	    src/gui_w32.c

Patch 5.4.x2
Problem:    BeOS: When pasting text, one character was moved to the end.
Solution:   Re-enable the BeOS code in fill_input_buf(), and fix timing out
	    with acquire_sem_etc(). (Will Day)
Files:	    src/os_beos.c, src/ui.c

Patch 5.4.x3
Problem:    Win32 GUI: When dropping a directory on a running gvim it crashes.
Solution:   Avoid using a NULL file name.  Also display a message to indicate
	    that the current directory was changed.
Files:	    src/gui_w32.c

Patch 5.4.x4
Problem:    Win32 GUI: Removing an item from the popup menu doesn't work.
Solution:   Don't remove the item from the menubar, but from the parent popup
	    menu.
Files:	    src/gui_w32.c

Patch 5.4.x5 (addition to 5.4.34)
Files:	    src/gui_w32.c

Patch 5.4.x6
Problem:    Win32: Expanding (dir)name starting with a dot doesn't work.
	    (McCormack)  Only when there is a path before it.
Solution:   Fix the check, done before expansion, if the file name pattern
	    starts with a dot.
Files:	    src/os_win32.c

Patch 5.4.x7
Problem:    Win32 GUI: Removing "Edit with Vim" from registry is difficult.
Solution:   Add uninstall program to remove the registry keys. It is installed
	    in the "Add/Remove programs" list for ease of use.
	    Also: don't set $VIM when the executable is with the runtime files.
	    Also: Add a text file with a step-by-step description of how to
	    uninstall Vim for DOS and Windows.
Files:	    src/uninstal.c, src/dosinst.c, src/Makefile.w32, uninstal.txt

Patch 5.4.x8 (addition to 5.4.45)
Files:	    many

Patch 5.4.x9
Problem:    Win32 GUI: After executing an external command, focus is not
	    always regained (when using focus-follows-mouse).
Solution:   Add SetFocus() in mch_system(). (Mike Steed)
Files:	    src/os_win32.c


Patch 5.5a.1
Problem:    ":let @* = @:" did not work.  The text was not put on the
	I   clipboard.  (Fisher)
Solution:   Own the clipboard and put the text on it.
Files:	    src/ops.c

Patch 5.5a.2
Problem:    append() did not mark the buffer modified.  Marks below the
	    new line were not adjusted.
Solution:   Fix the f_append() function.
Files:	    src/eval.c

Patch 5.5a.3
Problem:    Editing compressed ".gz" files doesn't work on non-Unix systems,
	    because there is no "mv" command.
Solution:   Add the rename() function and use it instead of ":!mv".
	    Also: Disable the automatic jump to the last position, because it
	    changes the jumplist.
Files:	    src/eval.c, runtime/doc/eval.txt, runtime/vimrc_example.vim

Patch 5.5a.4
Problem:    When using whole-line completion in insert mode while the cursor
	    is in the indent, get "out of memory" error. (Stekrt)
Solution:   Don't allocate a negative amount of memory in ins_complete().
Files:	    src/edit.c

Patch 5.5a.5
Problem:    Win32: The 'path' option can hold only up to 256 characters,
	    because _MAX_PATH is 256.  (Robert Webb)
Solution:   Use a fixed path length of 1024.
Files:	    src/os_win32.h

Patch 5.5a.6
Problem:    Compiling with gcc on Win32, using the Unix Makefile, didn't work.
Solution:   Add $(SUFFIX) to all places where an executable is used.  Also
	    pass it to ctags.  (Reynolds)
Files:	    src/Makefile

Patch 5.5a.7
Problem:    When using "cat | vim -" in an xterm, the xterm version reply
	    would end up in the file.
Solution:   Read the file from stdin before switching the terminal to RAW
	    mode.  Should also avoid problems with programs that use a
	    specific terminal setting.
	    Also: when using the GUI, print "Reading from stdin..." in the GUI
	    window, to give a hint why it doesn't do anything.
Files:	    src/main.c, src/fileio.c

Patch 5.5a.8
Problem:    On multi-threaded Solaris, suspending doesn't work.
Solution:   Call pause() when the SIGCONT signal was not received after
	    sending the SIGTSTP signal. (Nagano)
Files:	    src/os_unix.c

Patch 5.5a.9
Problem:    'winaltkeys' could be set to an empty argument, which is illegal.
Solution:   Give an error message when doing ":set winaltkeys=".
Files:	    src/option.c

Patch 5.5a.10
Problem:    Win32 console: Using ALTGR on a German keyboard to produce "}"
	    doesn't work, because the 8th bit is set when ALT is pressed.
Solution:   Don't set the 8th bit when ALT and CTRL are used. (Leipert)
Files:	    src/os_win32.c

Patch 5.5a.11
Problem:    Tcl: Configure always uses tclsh8.0.
	    Also: Loading a library doesn't work.
Solution:   Add "--with-tclsh" configure argument to allow specifying another
	    name for the tcl shell.
	    Call Tcl_Init() in tclinit() to make loading libraries work.
	    (Johannes Zellner)
Files:	    src/configure.in, src/configure, src/if_tcl.c

Patch 5.5a.12
Problem:    The "user_commands" feature is called "user-commands".
Solution:   Replace "user-commands" with "user_commands". (Kim Sung-bom)
	    Keep "user-commands" for the has() function, to remain backwards
	    compatible with 5.4.
Files:	    src/eval.c, src/version.c

Patch 5.5a.13
Problem:    OS/2: When $HOME is not defined, "C:/" is used for the viminfo
	    file.  That is very wrong when OS/2 is on another partition.
Solution:   Use $VIM for the viminfo file when it is defined, like for MSDOS.
	    Also: Makefile.os2 didn't depend on os_unix.h.
Files:	    src/os_unix.h, src/Makefile.os2

Patch 5.5a.14
Problem:    Athena, Motif and GTK: The Mouse scroll wheel doesn't work.
Solution:   Interpret a click of the wheel as a key press of the <MouseDown>
	    or <MouseUp> keys.  Default behavior is to scroll three lines, or
	    a full page when Shift is used.
Files:	    src/edit.c, src/ex_getln.c, src/gui.c, src/gui_gtk_x11.c,
	    src/gui_x11.c, src/keymap.h, src/message.c, src/misc1.c,
	    src/misc2.c, src/normal.c,  src/proto/normal.pro, src/vim.h,
	    runtime/doc/scroll.txt

Patch 5.5a.15
Problem:    Using CTRL-A in Insert mode doesn't work correctly when the insert
	    started with the <Insert> key. (Andreas Rohrschneider)
Solution:   Replace <Insert> with "i" before setting up the redo buffer.
Files:	    src/normal.c

Patch 5.5a.16
Problem:    VMS: GUI does not compile and run.
Solution:   Various fixes. (Zoltan Arpadffy)
	    Moved functions from os_unix.c to ui.c, so that VMS can use them
	    too: open_app_context(), x11_setup_atoms() and clip_x11* functions.
	    Made xterm_dpy global, it's now used by ui.c and os_unix.c.
	    Use gethostname() always, sys_hostname doesn't exist.
Files:	    src/globals.h, src/gui_x11.c, src/os_vms.mms, src/os_unix.c,
	    src/os_vms.c, src/ui.c, src/proto/os_unix.pro, src/proto/ui.pro

Renamed AdjustCursorForMultiByteCharacter() to AdjustCursorForMultiByteChar()
to avoid symbol length limit of 31 characters. (Steve P. Wall)

Patch 5.5b.1
Problem:    SASC complains about dead assignments and implicit type casts.
Solution:   Removed the dead assignments.  Added explicit type casts.
Files:	    src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds.c,
	    src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c,
	    src/menu.c, src/misc1.c, src/normal.c, src/ops.c, src/quickfix.c,
	    src/screen.c

Patch 5.5b.2
Problem:    When using "CTRL-O O" in Insert mode, hit <Esc> and then "o" in
	    another line truncates that line. (Devin Weaver)
Solution:   When using a command that starts Insert mode from CTRL-O, reset
	    "restart_edit" first.  This avoids that edit() is called with a
	    mix of starting a new edit command and restarting a previous one.
Files:	    src/normal.c

==============================================================================
VERSION 5.6						*version-5.6*

Version 5.6 is a bug-fix version of 5.5.


Changed							*changed-5.6*
-------

Small changes to OleVim files. (Christian Schaller)

Inserted "/**/" between patch numbers in src/version.c.  This allows for one
line of context, which some versions of patch need.

Reordered the Syntax menu to avoid long submenus.  Removed keyboard shortcuts
for alphabetical items to avoid a clash with fixed items.


Added							*added-5.6*
-----

Included Exuberant Ctags version 3.4. (Darren Hiebert)

OpenWithVim in Python. (Christian Schaller)

Win32 GUI: gvimext.dll, for the context menu "Edit with Vim" entry.  Avoids
the reported problems with the MS Office taskbar.  Now it's a Shell Extension.
(Tianmiao Hu)

New syntax files:
abel		Abel (John Cook)
aml		Arc Macro Language (Nikki Knuit)
apachestyle	Apache-style config file (Christian Hammers)
cf		Cold Fusion (Jeff Lanzarotta)
ctrlh		files with CTRL-H sequences (Bram Moolenaar)
cupl		CUPL (John Cook)
cuplsim		CUPL simulation (John Cook)
erlang		Erlang (Kresimir Marzic)
gedcom		Gedcom (Paul Johnson)
icon		Icon (Wendell Turner)
ist		MakeIndex style (Peter Meszaros)
jsp		Java Server Pages (Rafael Garcia-Suarez)
rcslog		Rcslog (Joe Karthauser)
remind		Remind (Davide Alberani)
sqr		Structured Query Report Writer (Paul Moore)
tads		TADS (Amir Karger)
texinfo		Texinfo (Sandor Kopanyi)
xpm2		X Pixmap v2 (Steve Wall)

The 'C' flag in 'cpoptions' can be used to switch off concatenation for
sourced lines.  See patch 5.5.013 below. |line-continuation|

"excludenl" argument for the ":syntax" command.  See patch 5.5.032 below.
|:syn-excludenl|

Implemented |z+| and |z^| commands.  See patch 5.5.050 below.

Vim logo in Corel Draw format.  Can be scaled to any resolution.


Fixed							*fixed-5.6*
-----

Using this mapping in Select mode, terminated completion:
":vnoremap <C-N> <Esc>a<C-N>" (Benji Fisher)
Ignore K_SELECT in ins_compl_prep().

VMS (Zoltan Arpadffy, David Elins):
- ioctl() in pty.c caused trouble, #ifndef VMS added.
- Cut & paste mismatch corrected.
- Popup menu line crash corrected.  (Patch 5.5.047)
- Motif directories during open and save as corrected.
- Handle full file names with version numbers. (Patch 5.5.046)
- Directory handling (CD command etc.)
- Corrected file name conversion VMS to Unix and v.v.
- Recovery was not working.
- Terminal and signal handling was outdated compared to os_unix.c.
- Improved os_vms.txt.

Configure used fprintf() instead of printf() to check for __DATE__ and
__TIME__. (John Card II)

BeOS: Adjust computing the char_height and char_ascent.  Round them up
separately, avoids redrawing artifacts. (Mike Steed)

Fix a few multi-byte problems in menu_name_skip(), set_reg_ic(), searchc() and
findmatchlimit(). (Taro Muraoka)

GTK GUI:
- With GTK 1.2.5 and later the scrollbars were not redrawn correctly.
- Adjusted the gtk_form_draw() function.
- SNiFF connection didn't work.
- 'mousefocus' was not working. (Dalecki)
- Some keys were not working with modifiers: Shift-Tab, Ctrl-Space and CTRL-@.


Patch 5.5.001
Problem:    Configure in the top directory did not pass on an argument with a
	    space correctly.  For example "./configure --previs="/My home".
	    (Stephane Chazelas)
Solution:   Use '"$@"' instead of '$*' to pass on the arguments.
Files:	    configure

Patch 5.5.002
Problem:    Compilation error for using "fds[] & POLLIN". (Jeff Walker)
Solution:   Use "fds[].revents & POLLIN".
Files:	    src/os_unix.c

Patch 5.5.003
Problem:    The autoconf check for sizeof(int) is wrong on machines where
	    sizeof(size_t) != sizeof(int).
Solution:   Use our own configure check.  Also fixes the warning for
	    cross-compiling.
Files:	    src/configure.in, src/configure

Patch 5.5.004
Problem:    On Unix it's not possible to interrupt ":sleep 100".
Solution:   Switch terminal to cooked mode while asleep, to allow a SIGINT to
	    wake us up.  But switch off echo, added TMODE_SLEEP.
Files:	    src/term.h, src/os_unix.c

Patch 5.5.005
Problem:    When using <f-args> with a user command, an empty argument to the
	    command resulted in one empty string, while no string was
	    expected.
Solution:   Catch an empty argument and pass no argument to the function.
	    (Paul Moore)
Files:	    src/ex_docmd.c

Patch 5.5.006
Problem:    Python: When platform-dependent files are in another directory
	    than the platform-independent files it doesn't work.
Solution:   Also check the executable directory, and add it to CFLAGS. (Tessa
	    Lau)
Files:	    src/configure.in, src/configure

Patch 5.5.007 (extra)
Problem:    Win32 OLE: Occasional crash when exiting while still being used
	    via OLE.
Solution:   Move OleUninitialize() to before deleting the application object.
	    (Vince Negri)
Files:	    src/if_ole.cpp

Patch 5.5.008
Problem:    10000@@ takes a long time and cannot be interrupted.
Solution:   Check for CTRL-C typed while in the loop to push the register.
Files:	    src/normal.c

Patch 5.5.009
Problem:    Recent Sequent machines don't link with "-linet". (Kurtis Rader)
Solution:   Remove configure check for Sequent.
Files:	    src/configure.in, src/configure

Patch 5.5.010
Problem:    Ctags freed a memory block twice when exiting.  When out of
	    memory, a misleading error message was given.
Solution:   Update to ctags 3.3.2.  Also fixes a few other problems. (Darren
	    Hiebert)
Files:	    src/ctags/*

Patch 5.5.011
Problem:    After "CTRL-V s", the cursor jumps back to the start, while all
	    other operators leave the cursor on the last changed character.
	    (Xiangjiang Ma)
Solution:   Position cursor on last changed character, if possible.
Files:	    src/ops.c

Patch 5.5.012
Problem:    Using CTRL-] in Visual mode doesn't work when the text includes a
	    space (just where it's useful). (Stefan Bittner)
Solution:   Don't escape special characters in a tag name with a backslash.
Files:	    src/normal.c

Patch 5.5.013
Problem:    The ":append" and ":insert" commands allow using a leading
	    backslash in a line.  The ":source" command concatenates those
	    lines. (Heinlein)
Solution:   Add the 'C' flag in 'cpoptions' to switch off concatenation.
Files:	    src/ex_docmd.c, src/option.h, runtime/doc/options.txt,
	    runtime/filetype.vim, runtime/scripts.vim

Patch 5.5.014
Problem:    When executing a register with ":@", the ":append" command would
	    get text lines with a ':' prepended. (Heinlein)
Solution:   Remove the ':' characters.
Files:	    src/ex_docmd.c, src/ex_getln.c, src/globals.h

Patch 5.5.015
Problem:    When using ":g/pat/p", it's hard to see where the output starts,
	    the ":g" command is overwritten.  Vi keeps the ":g" command.
Solution:   Keep the ":g" command, but allow overwriting it with the report
	    for the number of changes.
Files:	    src/ex_cmds.c

Patch 5.5.016 (extra)
Problem:    Win32: Using regedit to install Vim in the popup menu requires the
	    user to confirm this in a dialog.
Solution:   Use "regedit /s" to avoid the dialog
Files:	    src/dosinst.c

Patch 5.5.017
Problem:    If an error occurs when closing the current window, Vim could get
	    stuck in the error handling.
Solution:   Don't set curwin to NULL when closing the current window.
Files:	    src/window.c

Patch 5.5.018
Problem:    Absolute paths in shell scripts do not always work.
Solution:   Use /usr/bin/env to find out the path.
Files:	    runtime/doc/vim2html.pl, runtime/tools/efm_filter.pl,
	    runtime/tools/shtags.pl

Patch 5.5.019
Problem:    A function call in 'statusline' stops using ":q" twice from
	    exiting, when the last argument hasn't been edited.
Solution:   Don't decrement quitmore when executing a function. (Madsen)
Files:	    src/ex_docmd.c

Patch 5.5.020
Problem:    When the output of CTRL-D completion in the commandline goes all
	    the way to the last column, there is an empty line.
Solution:   Don't add a newline when the cursor wrapped already. (Madsen)
Files:	    src/ex_getln.c

Patch 5.5.021
Problem:    When checking if a file name in the tags file is relative,
	    environment variables were not expanded.
Solution:   Expand the file name before checking if it is relative. (Madsen)
Files:	    src/tag.c

Patch 5.5.022
Problem:    When setting or resetting 'paste' the ruler wasn't updated.
Solution:   Update the status lines when 'ruler' changes because of 'paste'.
Files:	    src/option.c

Patch 5.5.023
Problem:    When editing a new file and autocommands change the cursor
	    position, the cursor was moved back to the first non-white, unless
	    'startofline' was reset.
Solution:   Keep the new column, just like the line number.
Files:	    src/ex_cmds.c

Patch 5.5.024 (extra)
Problem:    Win32 GUI: When using confirm() to put up a dialog without a
	    default button, the dialog would not have keyboard focus.
	    (Krishna)
Solution:   Always set focus to the dialog window.  Only set focus to a button
	    when a default one is specified.
Files:	    src/gui_w32.c

Patch 5.5.025
Problem:    When using "keepend" in a syntax region, a contained match that
	    includes the end-of-line could still force that region to
	    continue, if there is another contained match in between.
Solution:   Check the keepend_level in check_state_ends().
Files:	    src/syntax.c

Patch 5.5.026
Problem:    When starting Vim in a white-on-black xterm, with 'bg' set to
	    "dark", and then starting the GUI with ":gui", setting 'bg' to
	    "light" in the gvimrc, the highlighting isn't set.  (Tsjokwing)
Solution:   Set the highlighting when 'bg' is changed in the gvimrc, even
	    though full_screen isn't set.
Files:	    src/option.c

Patch 5.5.027
Problem:    Unix: os_unix.c doesn't compile when XTERM_CLIP is used but
	    WANT_TITLE isn't. (Barnum)
Solution:   Move a few functions that are used by the X11 title and clipboard
	    and put another "#if" around it.
Files:	    src/os_unix.c

Patch 5.5.028 (extra)
Problem:    Win32 GUI: When a file is dropped on Win32 gvim while at the ":"
	    prompt, the file is edited but the command line is actually still
	    there, the cursor goes back to command line on the next command.
	    (Krishna)
Solution:   When dropping a file or directory on gvim while at the ":" prompt,
	    insert the name of the file/directory.  Allows using the
	    file/directory name for any Ex command.
Files:	    src/gui_w32.c

Patch 5.5.029
Problem:    "das" at the end of the file didn't delete the last character of
	    the sentence.
Solution:   When there is no character after the sentence, make the operation
	    inclusive in current_sent().
Files:	    src/search.c

Patch 5.5.030
Problem:    Unix: in os_unix.c, "term_str" is used, which is also defined in
	    vim.h as a macro. (wuxin)
Solution:   Renamed "term_str" to "buf" in do_xterm_trace().
Files:	    src/os_unix.c

Patch 5.5.031 (extra)
Problem:    Win32 GUI: When exiting Windows, gvim will leave swap files behind
	    and will be killed ungracefully. (Krishna)
Solution:   Catch the WM_QUERYENDSESSION and WM_ENDSESSION messages and try to
	    exit gracefully.  Allow the user to cancel the shutdown if there
	    is a changed buffer.
Files:	    src/gui_w32.c

Patch 5.5.032
Problem:    Patch 5.5.025 wasn't right.  And C highlighting was still not
	    working correctly for a #define.
Solution:   Added "excludenl" argument to ":syntax", to be able not to extend
	    a containing item when there is a match with the end-of-line.
Files:	    src/syntax.c, runtime/doc/syntax.txt, runtime/syntax/c.vim

Patch 5.5.033
Problem:    When reading from stdin, a long line in viminfo would mess up the
	    file message.  readfile() uses IObuff for keep_msg, which could be
	    overwritten by anyone.
Solution:   Copy the message from IObuff to msg_buf and set keep_msg to that.
	    Also change vim_fgets() to not use IObuff any longer.
Files:	    src/fileio.c

Patch 5.5.034
Problem:    "gvim -rv" caused a crash.  Using 't_Co' before it's set.
Solution:   Don't try to initialize the highlighting before it has been
	    initialized from main().
Files:	    src/syntax.c

Patch 5.5.035
Problem:    GTK with XIM: Resizing with status area was messy, and
	    ":set guioptions+=b" didn't work.
Solution:   Make status area a separate widget, but not a separate window.
	    (Chi-Deok Hwang)
Files:	    src/gui_gtk_f.c, src/gui_gtk_x11.c, src/multbyte.c

Patch 5.5.036
Problem:    The GZIP_read() function in $VIMRUNTIME/vimrc_example.vim to
	    uncompress a file did not do detection for 'fileformat'.  This is
	    because the filtering is done with 'binary' set.
Solution:   Split the filtering into separate write, filter and read commands.
Files:	    runtime/vimrc_example.vim

Patch 5.5.037
Problem:    The "U" command didn't mark the buffer as changed. (McCormack)
Solution:   Set the 'modified' flag when using "U".
Files:	    src/undo.c

Patch 5.5.038
Problem:    When typing a long ":" command, so that the screen scrolls up,
	    causes the hit-enter prompt, even though the user just typed
	    return to execute the command.
Solution:   Reset need_wait_return if (part of) the command was typed in
	    getcmdline().
Files:	    src/ex_getln.c

Patch 5.5.039
Problem:    When using a custom status line, "%a" (file # of #) reports the
	    index of the current window for all windows.
Solution:   Pass a window pointer to append_arg_number(), and pass the window
	    being updated from build_stl_str_hl(). (Stephen P. Wall)
Files:	    src/buffer.c, src/screen.c, src/proto/buffer.pro

Patch 5.5.040
Problem:    Multi-byte: When there is some error in xim_real_init(), it can
	    close XIM and return.  After this there can be a segv.
Solution:   Test "xic" for being non-NULL, don't set "xim" to NULL.  Also try
	    to find more matches for supported styles. (Sung-Hyun Nam)
Files:	    src/multbyte.c

Patch 5.5.041
Problem:    X11 GUI: CTRL-_ requires the SHIFT key only on some machines.
Solution:   Translate CTRL-- to CTRL-_. (Robert Webb)
Files:	    src/gui_x11.c

Patch 5.5.042
Problem:    X11 GUI: keys with ALT were assumed to be used for the menu, even
	    when the menu has been disabled by removing 'm' from 'guioptions'.
Solution:   Ignore keys with ALT only when gui.menu_is_active is set. (Raf)
Files:	    src/gui_x11.c

Patch 5.5.043
Problem:    GTK: Handling of fontset fonts was not right when 'guifontset'
	    contains exactly 14 times '-'.
Solution:   Avoid setting fonts when working with a fontset. (Sung-Hyun Nam)
Files:	    src/gui_gtk_x11.c

Patch 5.5.044
Problem:    pltags.pl contains an absolute path "/usr/local/bin/perl".  That
	    might not work everywhere.
Solution:   Use "/usr/bin/env perl" instead.
Files:	    runtime/tools/pltags.pl

Patch 5.5.045
Problem:    Using "this_session" variable does not work, requires preceding it
	    with "v:".  Default filename for ":mksession" isn't mentioned
	    in the docs. (Fisher)
Solution:   Support using "this_session" to be backwards compatible.
Files:	    src/eval.c, runtime/doc/options.txt

Patch 5.5.046 (extra)
Problem:    VMS: problems with path and filename.
Solution:   Truncate file name at last ';', etc. (Zoltan Arpadffy)
Files:	    src/buffer.c, src/fileio.c, src/gui_motif.c, src/os_vms.c,
	    src/proto/os_vms.pro

Patch 5.5.047
Problem:    VMS: Crash when using the popup menu
Solution:   Turn the #define MENU_MODE_CHARS into an array. (Arpadffy)
Files:	    src/structs.h, src/menu.c

Patch 5.5.048
Problem:    HP-UX 11: Compiling doesn't work, because both string.h and
	    strings.h are included. (Squassabia)
Solution:   The configure test for including both string.h and strings.h
	    must include <Xm/Xm.h> first, because it causes problems.
Files:	    src/configure.in, src/configure, src/config.h.in

Patch 5.5.049
Problem:    Unix: When installing Vim, the protection bits of files might be
	    influenced by the umask.
Solution:   Add $(FILEMOD) to Makefile. (Shetye)
Files:	    src/Makefile

Patch 5.5.050
Problem:    "z+" and "z^" commands are missing.
Solution:   Implemented "z+" and "z^".
Files:	    src/normal.c, runtime/doc/scroll.txt, runtime/doc/index.txt

Patch 5.5.051
Problem:    Several Unix systems have a problem with the optimization limits
	    check in configure.
Solution:   Removed the configure check, let the user add it manually in
	    Makefile or the environment.
Files:	    src/configure.in, src/configure, src/Makefile

Patch 5.5.052
Problem:    Crash when using a cursor key at the ATTENTION prompt. (Alberani)
Solution:   Ignore special keys at the console dialog.  Also ignore characters
	    > 255 for other uses of tolower() and toupper().
Files:	    src/menu.c, src/message.c, src/misc2.c

Patch 5.5.053
Problem:    Indenting is wrong after a function when 'cino' has "fs".  Another
	    problem when 'cino' has "{s".
Solution:   Put line after closing "}" of a function at the left margin.
	    Apply ind_open_extra in the right way after a '{'.
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 5.5.054
Problem:    Unix: ":e #" doesn't work if the alternate file name contains a
	    space or backslash. (Hudacek)
Solution:   When replacing "#", "%" or other items that stand for a file name,
	    prepend a backslash before special characters.
Files:	    src/ex_docmd.c

Patch 5.5.055
Problem:    Using "<C-V>$r-" in blockwise Visual mode replaces one character
	    beyond the end of the line. (Zivkov)
Solution:   Only replace existing characters.
Files:	    src/ops.c

Patch 5.5.056
Problem:    After "z20<CR>" messages were printed at the old command line
	    position once.  (Veselinovic)
Solution:   Set msg_row and msg_col when changing cmdline_row in
	    win_setheight().
Files:	    src/window.c

Patch 5.5.057
Problem:    After "S<Esc>" it should be possible to restore the line with "U".
	    (Veselinovic)
Solution:   Don't call u_clearline() in op_delete() when changing only one
	    line.
Files:	    src/ops.c

Patch 5.5.058
Problem:    Using a long search pattern and then "n" causes the hit-enter
	    prompt.  (Krishna)
Solution:   Truncate the echoed pattern, like other messages.  Moved code for
	    truncating from msg_attr() to msg_strtrunc().
Files:	    src/message.c, src/proto/message.pro, src/search.c

Patch 5.5.059
Problem:    GTK GUI: When $term is invalid, using "gvim" gives an error
	    message, even though $term isn't really used.  (Robbins)
Solution:   When the GUI is about to start, skip the error messages for a
	    wrong $term.
Files:	    src/term.c

Patch 5.5.060 (extra)
Problem:    Dos 32 bit: When a directory in 'backupdir' doesn't exist, ":w"
	    causes the file to be renamed to "axlqwqhy.ba~". (Matzdorf)
Solution:   The code to work around a LFN bug in Windows 95 doesn't handle a
	    non-existing target name correctly.  When renaming fails, make
	    sure the file has its original name.  Also do this for the Win32
	    version, although it's unlikely that it runs into this problem.
Files:	    src/os_msdos.c, src/os_win32.c

Patch 5.5.061
Problem:    When using "\:" in a modeline, the backslash is included in the
	    option value. (Mohsin)
Solution:   Remove one backslash before the ':' in a modeline.
Files:	    src/buffer.c, runtime/doc/options.txt

Patch 5.5.062 (extra)
Problem:    Win32 console: Temp files are created in the root of the current
	    drive, which may be read-only. (Peterson)
Solution:   Use the same mechanism of the GUI version: Use $TMP, $TEMP or the
	    current directory.  Cleaned up vim_tempname() a bit.
Files:	    src/fileio.c, src/os_win32.h, runtime/doc/os_dos.txt

Patch 5.5.063
Problem:    When using whole-line completion in Insert mode, 'cindent' is
	    applied, even after changing the indent of the line.
Solution:   Don't reindent the completed line after inserting/removing indent.
	    (Robert Webb)
Files:	    src/edit.c

Patch 5.5.064
Problem:    has("sniff") doesn't work correctly.
Solution:   Return 1 when Vim was compiled with the +sniff feature. (Pruemmer)
Files:	    src/eval.c

Patch 5.5.065
Problem:    When dropping a file on Vim, the 'shellslash' option is not
	    effective. (Krishna)
Solution:   Fix the slashes in the dropped file names according to
	    'shellslash'.
Files:	    src/ex_docmd.c, runtime/doc/options.txt

Patch 5.5.066
Problem:    For systems with backslash in file name: Setting a file name
	    option to a value starting with "\\machine" removed a backslash.
Solution:   Keep the double backslash for "\\machine", but do change
	    "\\\\machine" to "\\machine" for backwards compatibility.
Files:	    src/option.c, runtime/doc/options.txt

Patch 5.5.067
Problem:    With 'hlsearch' set, the pattern "\>" doesn't highlight the first
	    match in a line. (Benji Fisher)
Solution:   Fix highlighting an empty match.  Also highlight the first
	    character in an empty line for "$".
Files:	    src/screen.c

Patch 5.5.068
Problem:    Crash when a ":while" is used with an argument that has an error.
	    (Sylvain Viart)
Solution:   Was using an uninitialized index in the cs_line[] array.  The
	    crash only happened when the index was far off.  Made sure the
	    uninitialized index isn't used.
Files:	    src/ex_docmd.c

Patch 5.5.069
Problem:    Shifting lines in blockwise Visual mode didn't set the 'modified'
	    flag.
Solution:   Do set the 'modified' flag.
Files:	    src/ops.c

Patch 5.5.070
Problem:    When editing a new file, creating that file outside of Vim, then
	    editing it again, ":w" still warns for overwriting an existing
	    file. (Nam)
Solution:   The BF_NEW flag in the "b_flags" field wasn't cleared properly.
Files:	    src/buffer.c, src/fileio.c

Patch 5.5.071
Problem:    Using a matchgroup in a ":syn region", which is the same syntax
	    group as the region, didn't stop a contained item from matching in
	    the start pattern.
Solution:   Also push an item on the stack when the syntax ID of the
	    matchgroup is the same as the syntax ID of the region.
Files:	    src/syntax.c

Patch 5.5.072 (extra)
Problem:    Dos 32 bit: When setting 'columns' to a too large value, Vim may
	    crash, and the DOS console too.
Solution:   Check that the value of 'columns' isn't larger than the number of
	    columns that the BIOS reports.
Files:	    src/os_msdos.c, src/proto/os_msdos.pro, src/option.c

Patch 5.5.073 (extra)
Problem:    Win 32 GUI: The Find and Find/Replace dialogs didn't show the
	    "match case" checkbox.  The Find/Replace dialog didn't handle the
	    "match whole word" checkbox.
Solution:   Support the "match case" and "match whole word" checkboxes.
Files:	    src/gui_w32.c

Patch 5.6a.001
Problem:    Using <C-End> with a count doesn't work like it does with "G".
	    (Benji Fisher)
Solution:   Accept a count for <C-End> and <C-Home>.
Files:	    src/normal.c

Patch 5.6a.002
Problem:    The script for conversion to HTML was an older version.
Solution:   Add support for running 2html.vim on a color terminal.
Files:	    runtime/syntax/2html.vim

Patch 5.6a.003
Problem:    Defining a function inside a function didn't give an error
	    message.  A missing ":endfunction" doesn't give an error message.
Solution:   Allow defining a function inside a function.
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 5.6a.004
Problem:    A missing ":endwhile" or ":endif" doesn't give an error message.
	    (Johannes Zellner)
Solution:   Check for missing ":endwhile" and ":endif" in sourced files.
	    Add missing ":endif" in file selection macros.
Files:	    src/ex_docmd.c, runtime/macros/file_select.vim

Patch 5.6a.005
Problem:    'hlsearch' was not listed alphabetically.  The value of 'toolbar'
	    was changed when 'compatible' is set.
Solution:   Moved entry of 'hlsearch' in options[] table down.
	    Don't reset 'toolbar' option to the default value when
	    'compatible' is set.
Files:	    src/option.c

Patch 5.6a.006
Problem:    Using a backwards range inside ":if 0" gave an error message.
Solution:   Don't complain about a range when it is not going to be used.
	    (Stefan Roemer)
Files:	    src/ex_docmd.c

Patch 5.6a.007
Problem:    ":let" didn't show internal Vim variables.  (Ron Aaron)
Solution:   Do show ":v" variables for ":let" and ":let v:name".
Files:	    src/eval.c

Patch 5.6a.008
Problem:    Selecting a syntax from the Syntax menu gives an error message.
Solution:   Replace "else if" in SetSyn() with "elseif".  (Ronald Schild)
Files:	    runtime/menu.vim

Patch 5.6a.009
Problem:    When compiling with +extra_search but without +syntax, there is a
	    compilation error in screen.c. (Axel Kielhorn)
Solution:   Adjust the #ifdef for declaring and initializing "line" in
	    win_line().  Also solve compilation problem when +statusline is
	    used without +eval.  Another one when +cmdline_compl is used
	    without +eval.
Files:	    src/screen.c, src/misc2.c

Patch 5.6a.010
Problem:    In a function, ":startinsert!" does not append to the end of the
	    line if a ":normal" command was used to move the cursor. (Fisher)
Solution:   Reset "w_set_curswant" to avoid that w_curswant is changed again.
Files:	    src/ex_docmd.c

Patch 5.6a.011 (depends on 5.6a.004)
Problem:    A missing ":endif" or ":endwhile" in a function doesn't give an
	    error message.
Solution:   Give that error message.
Files:	    src/ex_docmd.c

Patch 5.6a.012 (depends on 5.6a.008)
Problem:    Some Syntax menu entries caused a hit-enter prompt.
Solution:   Call a function to make the command shorter.  Also rename a few
	    functions to avoid name clashes.
Files:	    runtime/menu.vim

Patch 5.6a.013
Problem:    Command line completion works different when another completion
	    was done earlier. (Johannes Zellner)
Solution:   Reset wim_index when starting a new completion.
Files:	    src/ex_getln.c

Patch 5.6a.014
Problem:    Various warning messages when compiling and running lint with
	    different combinations of features.
Solution:   Fix the warning messages.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_gtk_x11.c,
	    src/option.c, src/screen.c, src/search.c, src/syntax.c,
	    src/feature.h, src/globals.h

Patch 5.6a.015
Problem:    The vimtutor command doesn't always know the value of $VIMRUNTIME.
Solution:   Let Vim expand $VIMRUNTIME, instead of the shell.
Files:	    src/vimtutor

Patch 5.6a.016 (extra)
Problem:    Mac: Window size is restricted when starting.  Cannot drag the
	    window all over the desktop.
Solution:   Get real screen size instead of assuming 640x400.  Do not use a
	    fixed number for the drag limits. (Axel Kielhorn)
Files:	    src/gui_mac.c

Patch 5.6a.017
Problem:    The "Paste" entry in popup menu for Visual, Insert and Cmdline
	    mode is in the wrong position. (Stol)
Solution:   Add priority numbers for all Paste menu entries.
Files:	    runtime/menu.vim

Patch 5.6a.018
Problem:    GTK GUI: submenu priority doesn't work.
	    Help dialog could be destroyed too soon.
	    When closing a dialog window (e.g. the "ATTENTION" one), Vim would
	    just hang.
	    When GTK theme is changed, Vim doesn't adjust to the new colors.
	    Argument for ":promptfind" isn't used.
Solution:   Fixed the mentioned problems.
	    Made the dialogs look&feel nicer.
	    Moved functions to avoid the need for a forward declaration.
	    Fixed reentrancy of the file browser dialog.
	    Added drag&drop support for GNOME.
	    Init the text for the Find/replace dialog from the last used
	    search string.  Set "match whole word" toggle button correctly.
	    Made repeat rate for drag outside of window depend on the
	    distance from the window.  (Marcin Dalecki)
	    Made the drag in Visual mode actually work.
	    Removed recursiveness protection from gui_mch_get_rgb(), it might
	    cause more trouble than it solves.
Files:	    src/ex_docmd.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/ui.c,
	    src/proto/ui.pro, src/misc2.c

Patch 5.6a.019
Problem:    When trying to recover through NFS, which uses a large block size,
	    Vim might think the swap file is empty, because mf_blocknr_max is
	    zero.  (Scott McDermott)
Solution:   When computing the number of blocks of the file in mf_open(),
	    round up instead of down.
Files:	    src/memfile.c

Patch 5.6a.020
Problem:    GUI GTK: Could not set display for gvim.
Solution:   Add "-display" and "--display" arguments. (Marcin Dalecki)
Files:	    src/gui_gtk_x11.c

Patch 5.6a.021
Problem:    Recovering still may not work when the block size of the device
	    where the swap file is located is larger than 4096.
Solution:   Read block 0 with the minimal block size.
Files:	    src/memline.c, src/memfile.c, src/vim.h

Patch 5.6a.022 (extra)
Problem:    Win32 GUI: When an error in the vimrc causes a dialog to pop up
	    (e.g., for an existing swap file), Vim crashes. (David Elins)
Solution:   Before showing a dialog, open the main window.
Files:	    src/gui_w32.c

Patch 5.6a.023
Problem:    Using expand("%:gs??/?") causes a crash. (Ron Aaron)
Solution:   Check for running into the end of the string in do_string_sub().
Files:	    src/eval.c

Patch 5.6a.024
Problem:    Using an autocommand to delete a buffer when leaving it can cause
	    a crash when jumping to a tag. (Franz Gorkotte)
Solution:   In do_tag(), store tagstacklen before jumping to another buffer.
	    Check tagstackidx after jumping to another buffer.
	    Add extra check in win_split() if tagname isn't NULL.
Files:	    src/tag.c, src/window.c

Patch 5.6a.025 (extra)
Problem:    Win32 GUI: The tables for toupper() and tolower() are initialized
	    too late. (Mike Steed)
Solution:   Move the initialization to win32_init() and call it from main().
Files:	    src/main.c, src/os_w32.c, src/proto/os_w32.pro

Patch 5.6a.026
Problem:    When the SNiFF connection is open, shell commands hang. (Pruemmer)
Solution:   Skip a second wait() call if waitpid() already detected that the
	    child has exited.
Files:	    src/os_unix.c

Patch 5.6a.027 (extra)
Problem:    Win32 GUI: The "Edit with Vim" popup menu entry causes problems
	    for the Office toolbar.
Solution:   Use a shell extension dll. (Tianmiao Hu)
	    Added it to the install and uninstal programs, replaces the old
	    "Edit with Vim" menu registry entries.
Files:	    src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt

Patch 5.6a.028 (extra)
Problem:    Win32 GUI: Dialogs and tear-off menus can't handle multi-byte
	    characters.
Solution:   Adjust nCopyAnsiToWideChar() to handle multi-byte characters
	    correctly.
Files:	    src/gui_w32.c

==============================================================================
VERSION 5.7						*version-5.7*

Version 5.7 is a bug-fix version of 5.6.

Changed							*changed-5.7*
-------

Renamed src/INSTALL.mac to INSTALL_mac.txt to avoid it being recognized with a
wrong file type.  Also renamed src/INSTALL.amiga to INSTALL_ami.txt.


Added							*added-5.7*
-----

New syntax files:
stp		Stored Procedures (Jeff Lanzarotta)
snnsnet, snnspat, snnsres	SNNS (Davide Alberani)
mel		MEL (Robert Minsk)
ruby		Ruby (Mirko Nasato)
tli		TealInfo (Kurt W. Andrews)
ora		Oracle config file (Sandor Kopanyi)
abaqus		Abaqus (Carl Osterwisch)
jproperties	Java Properties (Simon Baldwin)
apache		Apache config (Allan Kelly)
csp		CSP (Jan Bredereke)
samba		Samba config (Rafael Garcia-Suarez)
kscript		KDE script (Thomas Capricelli)
hb		Hyper Builder (Alejandro Forero Cuervo)
fortran		Fortran (rewritten) (Ajit J. Thakkar)
sml		SML (Fabrizio Zeno Cornelli)
cvs		CVS commit (Matt Dunford)
aspperl		ASP Perl (Aaron Hope)
bc		BC calculator (Vladimir Scholtz)
latte		Latte (Nick Moffitt)
wml		WML (Gerfried Fuchs)

Included Exuberant ctags 3.5.1. (Darren Hiebert)

"display" and "fold" arguments for syntax items.  For future extension, they
are ignored now.

strftime() function for the Macintosh.

macros/explorer.vim: A file browser script (M A Aziz Ahmed)


Fixed							*fixed-5.7*
-----

The 16 bit MS-DOS version is now compiled with Bcc 3.1 instead of 4.0.  The
executable is smaller.

When a "make test" failed, the output file was lost.  Rename it to
test99.failed to be able to see what went wrong.

After sourcing bugreport.vim, it's not clear that bugreport.txt has been
written in the current directory.  Edit bugreport.txt to avoid that.

Adding IME support when using Makefile.w32 didn't work. (Taro Muraoka)

Win32 console: Mouse drags were passed on even when the mouse didn't move.

Perl interface: In Buffers(), type of argument to SvPV() was int, should be
STRLEN. (Tony Leneis)

Problem with prototype for index() on AIX 4.3.0.  Added check for _AIX43 in
os_unix.h. (Jake Hamby)

Mappings in mswin.vim could break when some commands are mapped.  Add "nore"
to most mappings to avoid re-mapping.

modify_fname() made a copy of a file name for ":p" when it already was a full
path name, which is a bit slow.

Win32 with Borland C++ 5.5: Pass the path to the compiler on to xxd and ctags,
to avoid depending on $PATH.  Fixed "make clean".

Many fixes to Macintosh specific parts: (mostly by Dany StAmant)
- Only one Help menu.
- No more crash when removing a menu item.
- Support as External Editor for Codewarrior (still some little glitches).
- Popup menu support.
- Fixed crash when pasting after application switch.
- Color from rgb.txt properly displayed.
- 'isprint' default includes all chars above '~'. (Axel Kielhorn)
- mac_expandpath() was leaking memory.
- Add digraphs table. (Axel Kielhorn)
- Multi-byte support: (Kenichi Asai)
  Switch keyscript when going in/out of Insert mode.
  Draw multi-byte character correctly.
  Don't use mblen() but highest bit of char to detect multi-byte char.
  Display value of multi-byte in statusline (also for other systems).
- mouse button was not initialized properly to MOUSE_LEFT when
  USE_CTRLCLICKMENU not defined.
- With Japanese SJIS characters: Make "w", "b", and "e" work
  properly.  (Kenichi Asai)
- Replaced old CodeWarrior file os_mac.CW9.hqx with os_mac.cw5.sit.hqx.

Fixes for VMS: (Zoltan Arpadffy) (also see patch 5.6.045 below)
- Added Makefile_vms.mms and vimrc.vms to src/testdir to be able to run the
  tests.
- Various fixes.
- Set 'undolevels' to 1000 by default.
- Made mch_settitle() equivalent to the one in os_unix.c.

RiscOS: A few prototypes for os_riscos.c were outdated.  Generate prototypes
automatically.


Previously released patches:

Patch 5.6.001
Problem:    When using "set bs=0 si cin", Inserting "#<BS>" or "}<BS>" which
	    reduces the indent doesn't delete the "#" or "}". (Lorton)
Solution:   Adjust ai_col in ins_try_si().
Files:	    src/edit.c

Patch 5.6.002
Problem:    When using the vim.vim syntax file, a comment with all uppercase
	    characters causes a hang.
Solution:   Adjust pattern for vimCommentTitle (Charles Campbell)
Files:	    runtime/syntax/vim.vim

Patch 5.6.003
Problem:    GTK GUI: Loading a user defined toolbar bitmap gives a warning
	    about the colormap.  Probably because the window has not been
	    opened yet.
Solution:   Use gdk_pixmap_colormap_create_from_xpm() to convert the xpm file.
	    (Keith Radebaugh)
Files:	    src/gui_gtk.c

Patch 5.6.004 (extra)
Problem:    Win32 GUI with IME: When setting 'guifont' to "*", the font
	    requester appears twice.
Solution:   In gui_mch_init_font() don't call get_logfont() but copy
	    norm_logfont from fh. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 5.6.005
Problem:    When 'winminheight' is zero, CTRL-W - with a big number causes a
	    crash.  (David Kotchan)
Solution:   Check for negative window height in win_setheight().
Files:	    src/window.c

Patch 5.6.006
Problem:    GTK GUI: Bold font cannot always be used.  Memory is freed too
	    early in gui_mch_init_font().
Solution:   Move call to g_free() to after where sdup is used. (Artem Hodyush)
Files:	    src/gui_gtk_x11.c

Patch 5.6.007 (extra)
Problem:    Win32 IME: Font is not changed when screen font is changed. And
	    IME composition window does not trace the cursor.
Solution:   Initialize IME font.  When cursor is moved, set IME composition
	    window with ImeSetCompositionWindow().  Add call to
	    ImmReleaseContext() in several places. (Taro Muraoka)
Files:	    src/gui.c, src/gui_w32.c, src/proto/gui_w32.pro

Patch 5.6.008 (extra)
Problem:    Win32: When two files exist with the same name but different case
	    (through NFS or Samba), fixing the file name case could cause the
	    wrong one to be edited.
Solution:   Prefer a perfect match above a match while ignoring case in
	    fname_case().  (Flemming Madsen)
Files:	    src/os_win32.c

Patch 5.6.009 (extra)
Problem:    Win32 GUI: Garbage in Windows Explorer help line when selecting
	    "Edit with Vim" popup menu entry.
Solution:   Only return the help line when called with the GCS_HELPTEXT flag.
	    (Tianmiao Hu)
Files:	    GvimExt/gvimext.cpp

Patch 5.6.010
Problem:    A file name which contains a TAB was not read correctly from the
	    viminfo file and the ":ls" listing was not aligned properly.
Solution:   Parse the buffer list lines in the viminfo file from the end
	    backwards.  Count a Tab for two characters to align the ":ls" list.
Files:	    src/buffer.c

Patch 5.6.011
Problem:    When 'columns' is huge (using a tiny font) and 'statusline' is
	    used, Vim can crash.
Solution:   Limit maxlen to MAXPATHL in win_redr_custom(). (John Mullin)
Files:	    src/screen.c

Patch 5.6.012
Problem:    When using "zsh" for /bin/sh, toolcheck may hang until "exit" is
	    typed. (Kuratczyk)
Solution:   Add "-c exit" when checking for the shell version.
Files:	    src/toolcheck

Patch 5.6.013
Problem:    Multibyte char in tooltip is broken.
Solution:   Consider multibyte char in replace_termcodes(). (Taro Muraoka)
Files:      src/term.c

Patch 5.6.014
Problem:    When cursor is at the end of line and the character under cursor
	    is a multibyte character, "yl" doesn't yank 1 multibyte-char.
	    (Takuhiro Nishioka)
Solution:   Recognize a multibyte-char at end-of-line correctly in oneright().
	    (Taro Muraoka)
	    Also: make "+quickfix" in ":version" output appear alphabetically.
Files:	    src/edit.c

Patch 5.6.015
Problem:    New xterm delete key sends <Esc>[3~ by default.
Solution:   Added <kDel> and <kIns> to make the set of keypad keys complete.
Files:	    src/edit.c, src/ex_getln.c, src/keymap.h, src/misc1.c,
	    src/misc2.c, src/normal.c, src/os_unix.c, src/term.c

Patch 5.6.016
Problem:    When deleting a search string from history from inside a mapping,
	    another entry is deleted too. (Benji Fisher)
Solution:   Reset last_maptick when deleting the last entry of the search
	    history.  Also: Increment maptick when starting a mapping from
	    typed characters to avoid a just added search string being
	    overwritten or removed from history.
Files:	    src/ex_getln.c, src/getchar.c

Patch 5.6.017
Problem:    ":s/e/\^M/" should replace an "e" with a CTRL-M, not split the
	    line. (Calder)
Solution:   Replace the backslash with a CTRL-V internally. (Stephen P. Wall)
Files:	    src/ex_cmds.c

Patch 5.6.018
Problem:    ":help [:digit:]" takes a long time to jump to the wrong place.
Solution:   Insert a backslash to avoid the special meaning of '[]'.
Files:	    src/ex_cmds.c

Patch 5.6.019
Problem:    "snd.c", "snd.java", etc. were recognized as "mail" filetype.
Solution:   Make pattern for mail filetype more strict.
Files:	    runtime/filetype.vim

Patch 5.6.020 (extra)
Problem:    The DJGPP version eats processor time (Walter Briscoe).
Solution:   Call __dpmi_yield() in the busy-wait loop.
Files:	    src/os_msdos.c

Patch 5.6.021
Problem:    When 'selection' is "exclusive", a double mouse click in Insert
	    mode doesn't select last char in line. (Lutz)
Solution:   Allow leaving the cursor on the NUL past the line in this case.
Files:	    src/edit.c

Patch 5.6.022
Problem:    ":e \~<Tab>" expands to ":e ~\$ceelen", which doesn't work.
Solution:   Re-insert the backslash before the '~'.
Files:	    src/ex_getln.c

Patch 5.6.023 (extra)
Problem:    Various warnings for the Ming compiler.
Solution:   Changes to avoid the warnings. (Bill McCarthy)
Files:	    src/ex_cmds.c, src/gui_w32.c, src/os_w32exe.c, src/os_win32.c,
	    src/syntax.c, src/vim.rc

Patch 5.6.024 (extra)
Problem:    Win32 console: Entering CTRL-_ requires the shift key. (Kotchan)
Solution:   Specifically catch keycode 0xBD, like the GUI.
Files:	    src/os_win32.c

Patch 5.6.025
Problem:    GTK GUI: Starting the GUI could be interrupted by a SIGWINCH.
	    (Nils Lohner)
Solution:   Repeat the read() call to get the gui_in_use value when
	    interrupted by a signal.
Files:	    src/gui.c

Patch 5.6.026 (extra)
Problem:    Win32 GUI: Toolbar bitmaps are searched for in
	    $VIMRUNTIME/bitmaps, while GTK looks in $VIM/bitmaps. (Keith
	    Radebaugh)
Solution:   Use $VIM/bitmaps for both, because these are not part of the
	    distribution but defined by the user.
Files:	    src/gui_w32.c, runtime/doc/gui.txt

Patch 5.6.027
Problem:    TCL: Crash when using a Tcl script (reported for Win32).
Solution:   Call Tcl_FindExecutable() in main(). (Brent Fulgham)
Files:	    src/main.c

Patch 5.6.028
Problem:    Xterm patch level 126 sends codes for mouse scroll wheel.
	    Fully works with xterm patch level 131.
Solution:   Recognize the codes for button 4 (0x60) and button 5 (0x61).
Files:	    src/term.c

Patch 5.6.029
Problem:    GTK GUI: Shortcut keys cannot be used for a dialog. (Johannes
	    Zellner)
Solution:   Add support for shortcut keys. (Marcin Dalecki)
Files:	    src/gui_gtk.c

Patch 5.6.030
Problem:    When closing a window and 'ea' is set, Vim can crash. (Yasuhiro
	    Matsumoto)
Solution:   Set "curbuf" to a valid value in win_close().
Files:	    src/window.c

Patch 5.6.031
Problem:    Multi-byte: When a double-byte character ends in CSI, Vim waits
	    for another character to be typed.
Solution:   Recognize the CSI as the second byte of a character and don't wait
	    for another one. (Yasuhiro Matsumoto)
Files:	    src/getchar.c

Patch 5.6.032
Problem:    Functions with an argument that is a line number don't all accept
	    ".", "$", etc. (Ralf Arens)
Solution:   Add get_art_lnum() and use it for setline(), line2byte() and
	    synID().
Files:	    src/eval.c

Patch 5.6.033
Problem:    Multi-byte: "f " sometimes skips to the second space.  (Sung-Hyun
	    Nam)
Solution:   Change logic in searchc() to skip trailing byte of a double-byte
	    character.
	    Also: Ask for second byte when searching for double-byte
	    character. (Park Chong-Dae)
Files:	    src/search.c

Patch 5.6.034 (extra)
Problem:    Compiling with Borland C++ 5.5 fails on tolower() and toupper().
Solution:   Use TO_LOWER() and TO_UPPER() instead.  Also adjust the Makefile
	    to make using bcc 5.5 easier.
Files:	    src/edit.c, src/ex_docmd.c, src/misc1.c, src/Makefile.bor

Patch 5.6.035
Problem:    Listing the"+comments" feature in the ":version" output depended
	    on the wrong ID. (Stephen P. Wall)
Solution:   Change "CRYPTV" to "COMMENTS".
Files:	    src/version.c

Patch 5.6.036
Problem:    GTK GUI: Copy/paste text doesn't work between gvim and Eterm.
Solution:   Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang)
Files:	    src/gui_gtk_x11.c

Patch 5.6.037
Problem:    Multi-byte: Can't use "f" command with multi-byte character in GUI.
Solution:   Enable XIM in Normal mode for the GUI. (Sung-Hyun Nam)
Files:	    src/gui_gtk_x11.c, src/multbyte.c

Patch 5.6.038
Problem:    Multi-clicks in GUI are interpreted as a mouse wheel click.  When
	    'ttymouse' is "xterm" a mouse click is interpreted as a mouse
	    wheel click.
Solution:   Don't recognize the mouse wheel in check_termcode() in the GUI.
	    Use 0x43 for a mouse drag in do_xterm_trace(), not 0x63.
Files:	    src/term.c, src/os_unix.c

Patch 5.6.039
Problem:    Motif GUI under KDE: When trying to logout, Vim hangs up the
	    system. (Hermann Rochholz)
Solution:   When handling the WM_SAVE_YOURSELF event, set the WM_COMMAND
	    property of the window to let the session manager know we finished
	    saving ourselves.
Files:	    src/gui_x11.c

Patch 5.6.040
Problem:    When using ":s" command, matching the regexp is done twice.
Solution:   After copying the matched line, adjust the pointers instead of
	    finding the match again. (Loic Grenie)  Added vim_regnewptr().
Files:	    src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro

Patch 5.6.041
Problem:    GUI: Athena, Motif and GTK don't give more than 10 dialog buttons.
Solution:   Remove the limit on the number of buttons.
	    Also support the 'v' flag in 'guioptions'.
	    For GTK: Center the buttons.
Files:	    src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c

Patch 5.6.042
Problem:    When doing "vim -u vimrc" and vimrc contains ":q", the cursor in
	    the terminal can remain off.
Solution:   Call cursor_on() in mch_windexit().
Files:	    src/os_unix.c

Patch 5.6.043 (extra)
Problem:    Win32 GUI: When selecting guifont with the dialog, 'guifont'
	    doesn't include the bold or italic attributes.
Solution:   Append ":i" and/or ":b" to 'guifont' in gui_mch_init_font().
Files:	    src/gui_w32.c

Patch 5.6.044 (extra)
Problem:    MS-DOS and Windows: The line that dosinst.exe appends to
	    autoexec.bat to set PATH is wrong when Vim is in a directory with
	    an embedded space.
Solution:   Use double quotes for the value when there is an embedded space.
Files:	    src/dosinst.c

Patch 5.6.045 (extra) (fixed version)
Problem:    VMS: Various small problems.
Solution:   Many small changes. (Zoltan Arpadffy)
	    File name modifier ":h" keeps the path separator.
	    File name modifier ":e" also removes version.
	    Compile with MAX_FEAT by default.
	    When checking for autocommands ignore version in file name.
	    Be aware of file names being case insensitive.
	    Added vt320 builtin termcap.
	    Be prepared for an empty default_vim_dir.
Files:	    runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
	    runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c,
	    src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c,
	    src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c,
	    src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c

Patch 5.6.046
Problem:    Systems with backslash in file name: With 'shellslash' set, "vim
	    */*.c" only uses a slash for the first file name.  (Har'El)
Solution:   Fix slashes in file name arguments after reading the vimrc file.
Files:	    src/option.c

Patch 5.6.047
Problem:    $CPPFLAGS is not passed on to ctags configure.
Solution:   Add it. (Walter Briscoe)
Files:	    src/config.mk.in, src/Makefile

Patch 5.6.048
Problem:    CTRL-R in Command-line mode is documented to insert text as typed,
	    but inserts text literally.
Solution:   Make CTRL-R insert text as typed, use CTRL-R CTRL-R to insert
	    literally.  This is consistent with Insert mode.  But characters
	    that end Command-line mode are inserted literally.
Files:	    runtime/doc/index.txt, runtime/doc/cmdline.txt, src/ex_getln.c,
	    src/ops.c, src/proto/ops.pro

Patch 5.6.049
Problem:    Documentation for [!] after ":ijump" is wrong way around. (Benji
	    Fisher)
Solution:   Fix the documentation.  Also improve the code to check for a match
	    after a /* */ comment.
Files:	    runtime/doc/tagsearch.txt, src/search.c

Patch 5.6.050
Problem:    Replacing is wrong when replacing a single-byte char with
	    double-byte char or the other way around.
Solution:   Shift the text after the character when it is replaced.
	    (Yasuhiro Matsumoto)
Files:	    src/normal.c, src/misc1.c

Patch 5.6.051
Problem:    ":tprev" and ":tnext" don't give an error message when trying to
	    go before the first or beyond the last tag. (Robert Webb)
Solution:   Added error messages.  Also: Delay a second when a file-read
	    message is going to overwrite an error message, otherwise it won't
	    be seen.
Files:	    src/fileio.c, src/tag.c

Patch 5.6.052
Problem:    Multi-byte: When an Ex command has a '|' or '"' as a second byte,
	    it terminates the command.
Solution:   Skip second byte of multi-byte char when checking for '|' and '"'.
	    (Asai Kenichi)
Files:	    src/ex_docmd.c

Patch 5.6.053
Problem:    CTRL-] doesn't work on a tag that contains a '|'. (Cesar Crusius)
Solution:   Escape '|', '"' and '\' in tag names when using CTRL-] and also
	    for command-line completion.
Files:	    src/ex_getln.c, src/normal.c

Patch 5.6.054
Problem:    When using ":e" and ":e #" the cursor is put in the first column
	    when 'startofline' is set. (Cordell)
Solution:   Use the last known column when 'startofline' is set.
	    Also, use ECMD_LAST more often to simplify the code.
Files:	    src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/buffer.pro

Patch 5.6.055
Problem:    When 'statusline' only contains a text without "%" and doesn't fit
	    in the window, Vim crashes. (Ron Aaron)
Solution:   Don't use the pointer for the first item if there is no item.
Files:	    src/screen.c

Patch 5.6.056 (extra)
Problem:    MS-DOS: F11 and F12 don't work when 'bioskey' is set.
Solution:   Use enhanced keyboard functions. (Vince Negri)
	    Detect presence of enhanced keyboard and set bioskey_read and
	    bioskey_ready.
Files:	    src/os_msdos.c

Patch 5.6.057 (extra)
Problem:    Win32 GUI: Multi-byte characters are wrong in dialogs and tear-off
	    menus.
Solution:   Use system font instead of a fixed font. (Matsumoto, Muraoka)
Files:	    src/gui_w32.c

Patch 5.6.058
Problem:    When the 'a' flag is not in 'guioptions', non-Windows systems
	    copy Visually selected text to the clipboard/selection on a yank
	    or delete command anyway.  On Windows it isn't done even when the
	    'a' flag is included.
Solution:   Respect the 'a' flag in 'guioptions' on all systems.
Files:	    src/normal.c

Patch 5.6.059 (extra)
Problem:    When moving the cursor over italic text and the characters spill
	    over to the cell on the right, that spill-over is deleted.
	    Noticed in the Win32 GUI, can happen on other systems too.
Solution:   Redraw italic text starting from a blank, like this is already
	    done for bold text. (Vince Negri)
Files:	    src/gui.c, src/gui.h, src/gui_w32.c

Patch 5.6.060
Problem:    Some bold characters spill over to the cell on the left, that
	    spill-over can remain sometimes.
Solution:   Redraw a character when the next character was bold and needs
	    redrawing. (Robert Webb)
Files:	    src/screen.c

Patch 5.6.061
Problem:    When xterm sends 8-bit controls, recognizing the version response
	    doesn't work.
	    When using CSI instead of <Esc>[ for the termcap color codes,
	    using 16 colors doesn't work. (Neil Bird)
Solution:   Also accept CSI in place of <Esc>[ for the version string.
	    Also check for CSI when handling colors 8-15 in term_color().
	    Use CSI for builtin xterm termcap entries when 'term' contains
	    "8bit".
Files:	    runtime/doc/term.txt, src/ex_cmds.c, src/option.c, src/term.c,
	    src/os_unix.c, src/proto/option.pro, src/proto/term.pro

Patch 5.6.062
Problem:    The documentation says that setting 'smartindent' doesn't have an
	    effect when 'cindent' is set, but it does make a difference for
	    lines starting with "#". (Neil Bird)
Solution:   Really ignore 'smartindent' when 'cindent' is set.
Files:	    src/misc1.c, src/ops.c

Patch 5.6.063
Problem:    Using "I" in Visual-block mode doesn't accept a count. (Johannes
	    Zellner)
Solution:   Pass the count on to do_insert() and edit(). (Allan Kelly)
Files:	    src/normal.c, src/ops.c, src/proto/ops.pro

Patch 5.6.064
Problem:    MS-DOS and Win32 console: Mouse doesn't work correctly after
	    including patch 5.6.28. (Vince Negri)
Solution:   Don't check for mouse scroll wheel when the mouse code contains
	    the number of clicks.
Files:	    src/term.c

Patch 5.6.065
Problem:    After moving the cursor around in Insert mode, typing a space can
	    still trigger an abbreviation. (Benji Fisher)
Solution:   Don't check for an abbreviation after moving around in Insert mode.
Files:	    src/edit.c

Patch 5.6.066
Problem:    Still a few bold character spill-over remains after patch 60.
Solution:   Clear character just in front of blanking out rest of the line.
	    (Robert Webb)
Files:	    src/screen.c

Patch 5.6.067
Problem:    When a file name contains a NL, the viminfo file is corrupted.
Solution:   Use viminfo_writestring() to convert the NL to CTRL-V n.
	    Also fix the Buffers menu and listing a menu name with a newline.
Files:	    runtime/menu.vim, src/buffer.c, src/mark.c, src/menu.c

Patch 5.6.068
Problem:    Compiling the Perl interface doesn't work with Perl 5.6.0.
	    (Bernhard Rosenkraenzer)
Solution:   Also check xs_apiversion for the version number when prepending
	    defines for PL_*.
Files:	    src/Makefile

Patch 5.6.069
Problem:    "go" doesn't always end up at the right character when
	    'fileformat' is "dos". (Bruce DeVisser)
Solution:   Correct computations in ml_find_line_or_offset().
Files:	    src/memline.

Patch 5.6.070 (depends on 5.6.068)
Problem:    Compiling the Perl interface doesn't work with Perl 5.6.0.
	    (Bernhard Rosenkraenzer)
Solution:   Simpler check instead of the one from patch 68.
Files:	    src/Makefile

Patch 5.6.071
Problem:    "A" in Visual block mode on a Tab positions the cursor one char to
	    the right. (Michael Haumann)
Solution:   Correct the column computation in op_insert().
Files:	    src/ops.c

Patch 5.6.072
Problem:    When starting Vim with "vim +startinsert", it enters Insert mode
	    only after typing the first command. (Andrew Pimlott)
Solution:   Insert a dummy command in the stuff buffer.
Files:	    src/main.c

Patch 5.6.073 (extra) (depends on 5.6.034)
Problem:    Win32 GUI: When compiled with Bcc 5.5 menus don't work.
	    In dosinst.c toupper() and tolower() give an "internal compiler
	    error" for Bcc 5.5.
Solution:   Define WINVER to 4 to avoid compiling for Windows 2000. (Dan
	    Sharp)  Also cleaned up compilation arguments.
	    Use our own implementation of toupper() in dosinst.c.  Use
	    mytoupper() instead of tolower().
Files:	    src/Makefile.bor, src/dosinst.c

Patch 5.6.074 (extra)
Problem:    Entering CSI directly doesn't always work, because it's recognized
	    as the start of a special key.  Mostly a problem with multi-byte
	    in the GUI.
Solution:   Use K_CSI for a typed CSI character.  Use <CSI> for a normal CSI,
	    <xCSI> for a CSI typed in the GUI.
Files:	    runtime/doc/intro.txt, src/getchar.c, src/gui_amiga.c,
	    src/gui_gtk_x11.c, src/gui_mac.c, src/gui_riscos.c, src/gui_w32.c,
	    src/keymap.h, src/misc2.c

Patch 5.6.075
Problem:    When using "I" or "A" in Visual block mode while 'sts' is set may
	    change spaces to a Tab the inserted text is not correct. (Mike
	    Steed)  And some other problems when using "A" to append after the
	    end of the line.
Solution:   Check for change in spaces/tabs after inserting the text.  Append
	    spaces to fill the gap between the end-of-line and the right edge
	    of the block.
Files:	    src/ops.c

Patch 5.6.076
Problem:    GTK GUI: Mapping <M-Space> doesn't work.
Solution:   Don't use the "Alt" modifier twice in key_press_event().
Files:	    src/gui_gtk_x11.c

Patch 5.6.077
Problem:    GUI: When interrupting an external program with CTRL-C, gvim might
	    crash. (Benjamin Korvemaker)
Solution:   Avoid using a NULL pointer in ui_inchar_undo().
Files:	    src/ui.c

Patch 5.6.078
Problem:    Locale doesn't always work on FreeBSD. (David O'Brien)
Solution:   Link with the "xpg4" library when available.
Files:	    src/configure.in, src/configure

Patch 5.6.079
Problem:    Vim could crash when several Tcl interpreters are created and
	    destroyed.
Solution:   handle the "exit" command and nested ":tcl" commands better. (Ingo
	    Wilken)
Files:	    runtime/doc/if_tcl.txt, src/if_tcl.c

Patch 5.6.080
Problem:    When jumping to a tag, generating the tags file and jumping to the
	    same tag again uses the old search pattern. (Sung-Hyun Nam)
Solution:   Flush cached tag matches when executing an external command.
Files:	    src/misc2.c, src/proto/tag.pro, src/tag.c

Patch 5.6.081
Problem:    ":syn include" uses a level for the included file, this confuses
	    contained items included at the same level.
Solution:   Use a unique tag for each included file.  Changed sp_syn_inc_lvl
	    to sp_syn_inc_tag. (Scott Bigham)
Files:	    src/syntax.c, src/structs.h

Patch 5.6.082
Problem:    When using cscope, Vim can crash.
Solution:   Initialize tag_fname in find_tags(). (Anton Blanchard)
Files:	    src/tag.c

Patch 5.6.083 (extra)
Problem:    Win32: The visual beep can't be seen. (Eric Roesinger)
Solution:   Flush the output before waiting with GdiFlush(). (Maurice S. Barnum)
	    Also: Allow specifying the delay in t_vb for the GUI.
Files:	    src/gui.c, src/gui_amiga.c, src/gui_gtk_x11.c, src/gui_mac.c,
	    src/gui_riscos.c, src/gui_w32.c, src/gui_x11.c, src/gui_beos.cc,
	    src/proto/gui_amiga.pro, src/proto/gui_gtk_x11.pro,
	    src/proto/gui_mac.pro, src/proto/gui_riscos.pro,
	    src/proto/gui_w32.pro, src/proto/gui_x11.pro,
	    src/proto/gui_beos.pro

Patch 5.6.084 (depends on 5.6.074)
Problem:    GUI: Entering CSI doesn't always work for Athena and Motif.
Solution:   Handle typed CSI as <xCSI> (forgot this bit in 5.6.074).
Files:	    src/gui_x11.c

Patch 5.6.085
Problem:    Multi-byte: Using "r" to replace a double-byte char with a
	    single-byte char moved the cursor one character. (Matsumoto)
	    Also, using a count when replacing a single-byte char with a
	    double-byte char didn't work.
Solution:   Don't use del_char() to delete the second byte.
	    Get "ptr" again after calling ins_char().
Files:	    src/normal.c

Patch 5.6.086 (extra)
Problem:    Win32: When using libcall() and the returned value is not a valid
	    pointer, Vim crashes.
Solution:   Use IsBadStringPtr() to check if the pointer is valid.
Files:	    src/os_win32.c

Patch 5.6.087
Problem:    Multi-byte: Commands and messages with multi-byte characters are
	    displayed wrong.
Solution:   Detect double-byte characters. (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c

Patch 5.6.088
Problem:    Multi-byte with Motif or Athena: The message "XIM requires
	    fontset" is annoying when Vim was compiled with XIM support but it
	    is not being used.
Solution:   Remove that message.
Files:	    src/multbyte.c

Patch 5.6.089
Problem:    On non-Unix systems it's possible to overwrite a read-only file
	    without using "!".
Solution:   Check if the file permissions allow overwriting before moving the
	    file to become the backup file.
Files:	    src/fileio.c

Patch 5.6.090
Problem:    When editing a file in "/home/dir/home/dir" this was replaced with
	    "~~".  (Andreas Jellinghaus)
Solution:   Replace the home directory only once in home_replace().
Files:	    src/misc1.c

Patch 5.6.091
Problem:    When editing many "no file" files, can't create swap file, because
	    .sw[a-p] have all been used.  (Neil Bird)
Solution:   Also use ".sv[a-z]", ".su[a-z]", etc.
Files:	    src/memline.c

Patch 5.6.092
Problem:    FreeBSD: When setting $TERM to a non-valid terminal name, Vim
	    hangs in tputs().
Solution:   After tgetent() returns an error code, call it again with the
	    terminal name "dumb".  This apparently creates an environment in
	    which tputs() doesn't fail.
Files:	    src/term.c

Patch 5.6.093 (extra)
Problem:    Win32 GUI: "ls | gvim -" will show a message box about reading
	    stdin when Vim exits. (Donohue)
Solution:   Don't write a message about the file read from stdin until the GUI
	    has started.
Files:	    src/fileio.c

Patch 5.6.094
Problem:    Problem with multi-byte string for ":echo var".
Solution:   Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam)
	    Also make do_echo() aware of multi-byte characters.
Files:	    src/eval.c, src/message.c

Patch 5.6.095
Problem:    With an Emacs TAGS file that include another a relative path
	    doesn't always work.
Solution:   Use expand_tag_fname() on the name of the included file.
	    (Utz-Uwe Haus)
Files:	    src/tag.c

Patch 5.6.096
Problem:    Unix: When editing many files, startup can be slow. (Paul
	    Ackersviller)
Solution:   Halve the number of stat() calls used to add a file to the buffer
	    list.
Files:	    src/buffer.c

Patch 5.7a.001
Problem:    GTK doesn't respond on drag&drop from ROX-Filer.
Solution:   Add "text/uri-list" target. (Thomas Leonard)
	    Also: fix problem with checking for trash arguments.
Files:	    src/gui_gtk_x11.c

Patch 5.7a.002
Problem:    Multi-byte: 'showmatch' is performed when second byte of an
	    inserted double-byte char is a paren or brace.
Solution:   Check IsTrailByte() before calling showmatch(). (Taro Muraoka)
Files:	    src/misc1.c

Patch 5.7a.003
Problem:    Multi-byte: After using CTRL-O in Insert mode with the cursor at
	    the end of the line on a multi-byte character the cursor moves to
	    the left.
Solution:   Check for multi-byte character at end-of-line. (Taro Muraoka)
	    Also: fix cls() to detect a double-byte character. (Chong-Dae Park)
Files:	    src/edit.c, src/search.c

Patch 5.7a.004
Problem:    When reporting the search pattern offset, the string could be
	    unterminated, which may cause a crash.
Solution:   Terminate the string for the search offset. (Stephen P. Wall)
Files:	    src/search.c

Patch 5.7a.005
Problem:    When ":s//~/" doesn't find a match it reports "[NULL]" for the
	    pattern.
Solution:   Use get_search_pat() to obtain the actually used pattern.
Files:	    src/ex_cmds.c, src/proto/search.pro, src/search.c

Patch 5.7a.006 (extra)
Problem:    VMS: Various problems, also with the VAXC compiler.
Solution:   In many places use the Unix code for VMS too.
	    Added time, date and compiler version to version message.
	    (Zoltan Arpadffy)
Files:	    src/ex_cmds.c, src/ex_docmd.c, src/globals.h, src/gui_vms_conf.h,
	    src/main.c, src/message.c, src/misc1.c, src/os_vms.c,
	    src/os_vms.h, src/os_vms.mms, src/os_vms_conf.h,
	    src/proto/os_vms.pro, src/proto/version.pro, src/term.c,
	    src/version.c, src/xxd/os_vms.mms, src/xxd/xxd.c

Patch 5.7a.007
Problem:    Motif and Athena GUI: CTRL-@ is interpreted as CTRL-C.
Solution:   Only use "intr_char" when it has been set.
Files:	    src/gui_x11.c

Patch 5.7a.008
Problem:    GTK GUI: When using CTRL-L the screen is redrawn twice, causing
	    trouble for bold characters.  Also happens when moving with the
	    scrollbar.  Best seen when 'writedelay' is non-zero.
	    When starting the GUI with ":gui" the screen is redrawn once with
	    the wrong colors.
Solution:   Only set the geometry hints when the window size really changed.
	    This avoids setting it each time the scrollbar is forcefully
	    redrawn.
	    Don't redraw in expose_event() when gui.starting is still set.
Files:	    src/gui_gtk_x11.c


==============================================================================
VERSION 5.8						*version-5.8*

Version 5.8 is a bug-fix version of 5.7.


Changed							*changed-5.8*
-------

Ctags is no longer included with Vim.  It has grown into a project of its own.
You can find it here:  http://ctags.sf.net.  It is highly recommended as a Vim
companion when you are writing programs.


Added							*added-5.8*
-----

New syntax files:
acedb		AceDB (Stewart Morris)
aflex		Aflex (Mathieu Clabaut)
antlr		Antlr (Mathieu Clabaut)
asm68k		68000 Assembly (Steve Wall)
automake	Automake (John Williams)
ayacc		Ayacc (Mathieu Clabaut)
b		B (Mathieu Clabaut)
bindzone	BIND zone (glory hump)
blank		Blank (Rafal Sulejman)
cfg		Configure files (Igor Prischepoff)
changelog	ChangeLog (Gediminas Paulauskas)
cl		Clever (Phil Uren)
crontab		Crontab (John Hoelzel)
csc		Essbase script (Raul Segura Acevedo)
cynlib		Cynlib(C++) (Phil Derrick)
cynpp		Cyn++ (Phil Derrick)
debchangelog	Debian Changelog (Wichert Akkerman)
debcontrol	Debian Control (Wichert Akkerman)
dns		DNS zone file (Jehsom)
dtml		Zope's DTML (Jean Jordaan)
dylan		Dylan, Dylan-intr and Dylan-lid (Brent Fulgham)
ecd		Embedix Component Description (John Beppu)
fgl		Informix 4GL (Rafal Sulejman)
foxpro		FoxPro (Powing Tse)
gsp		GNU Server Pages (Nathaniel Harward)
gtkrc		GTK rc (David Necas)
hercules	Hercules (Avant! Corporation) (Dana Edwards)
htmlos		HTML/OS by Aestiva (Jason Rust)
inittab		SysV process control (David Necas)
iss		Inno Setup (Dominique Stephan)
jam		Jam (Ralf Lemke)
jess		Jess (Paul Baleme)
lprolog		LambdaProlog (Markus Mottl)
ia64		Intel Itanium (parth malwankar)
kix		Kixtart (Nigel Gibbs)
mgp		MaGic Point (Gerfried Fuchs)
mason		Mason (HTML with Perl) (Andrew Smith)
mma		Mathematica (Wolfgang Waltenberger)
nqc		Not Quite C (Stefan Scherer)
omnimark	Omnimark (Paul Terray)
openroad	OpenROAD (Luis Moreno Serrano)
named		BIND configuration (glory hump)
papp		PApp (Marc Lehmann)
pfmain		Postfix main config (Peter Kelemen)
pic		PIC assembly (Aleksandar Veselinovic)
ppwiz		PPWizard (Stefan Schwarzer)
progress	Progress (Phil Uren)
psf		Product Specification File (Rex Barzee)
r		R (Tom Payne)
registry	MS-Windows registry (Dominique Stephan)
robots		Robots.txt (Dominique Stephan)
rtf		Rich Text Format (Dominique Stephan)
setl		SETL (Alex Poylisher)
sgmldecl	SGML Declarations (Daniel A. Molina W.)
sinda		Sinda input (Adrian Nagle)
sindacmp	Sinda compare (Adrian Nagle)
sindaout	Sinda output (Adrian Nagle)
smith		SMITH (Rafal Sulejman)
snobol4		Snobol 4 (Rafal Sulejman)
strace		Strace (David Necas)
tak		TAK input (Adrian Nagle)
takcmp		TAK compare (Adrian Nagle)
takout		TAK output (Adrian Nagle)
tasm		Turbo assembly (FooLman)
texmf		TeX configuration (David Necas)
trasys		Trasys input (Adrian Nagle)
tssgm		TSS Geometry (Adrian Nagle)
tssop		TSS Optics (Adrian Nagle)
tsscl		TSS Command line (Adrian Nagle)
virata		Virata Configuration Script (Manuel M.H. Stol)
vsejcl		VSE JCL (David Ondrejko)
wdiff		Wordwise diff (Gerfried Fuchs)
wsh		Windows Scripting Host (Paul Moore)
xkb		X Keyboard Extension (David Necas)

Renamed php3 to php, it now also supports php4 (Lutz Eymers)

Patch 5.7.015
Problem:    Syntax files for Vim 6.0 can't be used with 5.x.
Solution:   Add the "default" argument to the ":highlight" command: Ignore the
	    command if highlighting was already specified.
Files:	    src/syntax.c

Generate the Syntax menu with makemenu.vim, so that it doesn't have to be done
when Vim is starting up.  Reduces the startup time of the GUI.


Fixed							*fixed-5.8*
-----

Conversion of docs to HTML didn't convert "|tag|s" to a hyperlink.

Fixed compiling under NeXT. (Jeroen C.M. Goudswaard)

optwin.vim gave an error when used in Vi compatible mode ('cpo' contains 'C').

Tcl interpreter: "buffer" command didn't check for presence of an argument.
(Dave Bodenstab)

dosinst.c: Added checks for too long file name.

Amiga: a file name starting with a colon was considered absolute but it isn't.
Amiga: ":pwd" added a slash when in the root of a drive.

Macintosh: Warnings for unused variables. (Bernhard Pruemmer)

Unix: When catching a deadly signal, handle it in such a way that it's
unlikely that Vim will hang.  Call _exit() instead of exit() in case of a
severe problem.

Setting the window title from nothing to something didn't work after patch 29.

Check for ownership of .exrc and .vimrc was done with stat().  Use lstat() as
well for extra security.

Win32 GUI: Printing a file with 'fileformat' "unix" didn't work.  Set
'fileformat' to "dos" before writing the temp file.

Unix: Could start waiting for a character when checking for a CTRL-C typed
when an X event is received.

Could not use Perl and Python at the same time on FreeBSD, because Perl used
"-lc" and Python used the threaded C library.

Win32: The Mingw compiler gave a few warning messages.

When using "ZZ" and an autocommand for writing uses an abbreviation it didn't
work.  Don't stuff the ":x" command but execute it directly. (Mikael Berthe)

VMS doesn't always have lstat(), added an #ifdef around it.

Added a few corrections for the Macintosh. (Axel Kielhorn)

Win32: Gvimext could not edit more than a few files at once, the length of the
argument was fixed.


Previously released patches for Vim 5.7:

Patch 5.7.001
Problem:    When the current buffer is crypted, and another modified buffer
	    isn't, ":wall" will encrypt the other buffer.
Solution:   In buf_write() use "buf" instead of "curbuf" to check for the
	    crypt key.
Files:	    src/fileio.c

Patch 5.7.002
Problem:    When 'showmode' is set, using "CTRL-O :r file" waits three seconds
	    before displaying the read text. (Wichert Akkerman)
Solution:   Set "keep_msg" to the file message so that the screen is redrawn
	    before the three seconds wait for displaying the mode message.
Files:	    src/fileio.c

Patch 5.7.003
Problem:    Searching for "[[:cntrl:]]" doesn't work.
Solution:   Exclude NUL from the matching characters, it terminates the list.
Files:	    src/regexp.c

Patch 5.7.004
Problem:    GTK: When selecting a new font, Vim can crash.
Solution:   In gui_mch_init_font() unreference the old font, not the new one.
Files:	    src/gui_gtk_x11.c

Patch 5.7.005
Problem:    Multibyte: Inserting a wrapped line corrupts kterm screen.
	    Pasting TEXT/COMPOUND_TEXT into Vim does not work.
	    On Motif no XIM status line is displayed even though it is
	    available.
Solution:   Don't use xterm trick for wrapping lines for multibyte mode.
	    Correct a missing "break", added TEXT/COMPOUND_TEXT selection
	    request.
	    Add XIMStatusArea fallback code.
	    (Katsuhito Nagano)
Files:	    src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c

Patch 5.7.006
Problem:    GUI: redrawing the non-Visual selection is wrong when the window
	    is unobscured. (Jean-Pierre Etienne)
Solution:   Redraw the selection properly and don't clear it.  Added "len"
	    argument to clip_may_redraw_selection().
Files:	    src/gui.c, src/ui.c, src/proto/ui.pro

Patch 5.7.007
Problem:    Python: Crash when using the current buffer twice.
Solution:   Increase the reference count for buffer and window objects.
	    (Johannes Zellner)
Files:	    src/if_python.c

Patch 5.7.008
Problem:    In Ex mode, backspacing over the first TAB doesn't work properly.
	    (Wichert Akkerman)
Solution:   Switch the cursor on before printing the newline.
Files:	    src/ex_getln.c

Patch 5.7.009 (extra)
Problem:    Mac: Crash when using a long file.
Solution:   Don't redefine malloc() and free(), because it will break using
	    realloc().
Files:	    src/os_mac.h

Patch 5.7.010
Problem:    When using CTRL-A on a very long number Vim can crash.  (Michael
	    Naumann)
Solution:   Truncate the length of the new number to avoid a buffer overflow.
Files:	    src/ops.c

Patch 5.7.011 (extra)
Problem:    Win32 GUI on NT 5 and Win98: Displaying Hebrew is reversed.
Solution:   Output each character separately, to avoid that Windows reverses
	    the text for some fonts. (Ron Aaron)
Files:	    src/gui_w32.c

Patch 5.7.012
Problem:    When using "-complete=buffer" for ":command" the user command
	    fails.
Solution:   In a user command don't replace the buffer name with a count for
	    the  buffer number.
Files:	    src/ex_docmd.c

Patch 5.7.013
Problem:    "gD" didn't always find a match in the first line, depending on
	    the column the search started at.
Solution:   Reset the column to zero before starting to search.
Files:	    src/normal.c

Patch 5.7.014
Problem:    Rot13 encoding was done on characters with accents, which is
	    wrong. (Sven Gottwald)
Solution:   Only do rot13 encoding on ASCII characters.
Files:	    src/ops.c

Patch 5.7.016
Problem:    When hitting 'n' for a ":s///c" command, the ignore-case flag was
	    not restored, some matches were skipped. (Daniel Blaustein)
Solution:   Restore the reg_ic variable when 'n' was hit.
Files:	    src/ex_cmds.c

Patch 5.7.017
Problem:    When using a Vim script for Vim 6.0 with <SID> before a function
	    name, it produces an error message even when inside an "if version
	    >= 600".  (Charles Campbell)
Solution:   Ignore errors in the function name when the function is not going
	    to be defined.
Files:	    src/eval.c

Patch 5.7.018
Problem:    When running "rvim" or "vim -Z" it was still possible to execute a
	    shell command with system() and backtick-expansion. (Antonios A.
	    Kavarnos)
Solution:   Disallow executing a shell command in get_cmd_output() and
	    mch_expand_wildcards().
Files:	    src/misc1.c, src/os_unix.c

Patch 5.7.019
Problem:    Multibyte: In a substitute string, a multi-byte character isn't
	    skipped properly, can be a problem when the second byte is a
	    backslash.
Solution:   Skip an extra byte for a double-byte character. (Muraoka Taro)
Files:	    src/ex_cmds.c

Patch 5.7.020
Problem:    Compilation doesn't work on MacOS-X.
Solution:   Add a couple of #ifdefs. (Jamie Curmi)
Files:	    src/regexp.c, src/ctags/general.h

Patch 5.7.021
Problem:    Vim sometimes produces a beep when started in an xterm.  Only
	    happens when compiled without mouse support.
Solution:   Requesting the xterm version results in a K_IGNORE.  This wasn't
	    handled when mouse support is disabled.  Accept K_IGNORE always.
Files:	    src/normal.c

Patch 5.7.022
Problem:    %v in 'statusline' is not displayed when it's equal to %c.
Solution:   Check if %V or %v is used and handle them differently.
Files:	    src/screen.c

Patch 5.7.023
Problem:    Crash when a WinLeave autocommand deletes the buffer in the other
	    window.
Solution:   Check that after executing the WinLeave autocommands there still
	    is a window to be closed.  Also update the test that was supposed
	    to check for this problem.
Files:	    src/window.c, testdir/test13.in, testdir/test13.ok

Patch 5.7.024
Problem:    Evaluating an expression for 'statusline' can have side effects.
Solution:   Evaluate the expression in a sandbox.
Files:	    src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c,
	    src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c,
	    src/screen.c, src/undo.c

Patch 5.7.025 (fixed)
Problem:    Creating a temp file has a race condition.
Solution:   Create a private directory to write the temp files in.
Files:	    src/fileio.c, src/misc1.c, src/proto/misc1.pro,
	    src/proto/fileio.pro, src/memline.c, src/os_unix.h

Patch 5.7.026 (extra)
Problem:    Creating a temp file has a race condition.
Solution:   Create a private directory to write the temp files in.
	    This is the extra part of patch 5.7.025.
Files:	    src/os_msdos.h

Patch 5.7.027
Problem:    Starting to edit a file can cause a crash.  For example when in
	    Insert mode, using CTRL-O :help abbr<Tab> to scroll the screen and
	    then <CR>, which edits a help file. (Robert Bogomip)
Solution:   Check if keep_msg is NULL before copying it.
Files:	    src/fileio.c

Patch 5.7.028
Problem:    Creating a backup or swap file could fail in rare situations.
Solution:   Use O_EXCL for open().
Files:	    src/fileio.c, src/memfile.c

Patch 5.7.029
Problem:    Editing a file with an extremely long name crashed Vim.
Solution:   Check for length of the name when setting the window title.
Files:	    src/buffer.c

Patch 5.7.030
Problem:    A ":make" or ":grep" command with a very long argument could cause
	    a crash.
Solution:   Allocate the buffer for the shell command.
Files:	    src/ex_docmd.c


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Zks��vim80/doc/os_msdos.txtnu�[���*os_msdos.txt*  For Vim version 8.0.  Last change: 2016 Feb 26


		  VIM REFERENCE MANUAL    by Bram Moolenaar


					*msdos* *ms-dos* *MSDOS* *MS-DOS*
This file used to contain the particularities for the MS-DOS version of Vim.
MS-DOS support was removed in patch 7.4.1399.  If you want to use it you will
need to get a version older than that.  Note that the MS-DOS version doesn't
work, there is not enough memory.  The DOS32 version (using DJGPP) might still
work on older systems.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���ZHWHWvim80/doc/develop.txtnu�[���*develop.txt*   For Vim version 8.0.  Last change: 2018 Apr 18


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Development of Vim.					*development*

This text is important for those who want to be involved in further developing
Vim.

1. Design goals		|design-goals|
2. Coding style		|coding-style|
3. Design decisions	|design-decisions|
4. Assumptions		|design-assumptions|

See the file README.txt in the "src" directory for an overview of the source
code.

Vim is open source software.  Everybody is encouraged to contribute to help
improving Vim.  For sending patches a context diff "diff -c" is preferred.
Also see http://vim.wikia.com/wiki/How_to_make_and_submit_a_patch.

==============================================================================
1. Design goals						*design-goals*

Most important things come first (roughly).

Note that quite a few items are contradicting.  This is intentional.  A
balance must be found between them.


VIM IS... VI COMPATIBLE					*design-compatible*

First of all, it should be possible to use Vim as a drop-in replacement for
Vi.  When the user wants to, he can use Vim in compatible mode and hardly
notice any difference with the original Vi.

Exceptions:
- We don't reproduce obvious Vi bugs in Vim.
- There are different versions of Vi.  I am using Version 3.7 (6/7/85) as a
  reference.  But support for other versions is also included when possible.
  The Vi part of POSIX is not considered a definitive source.
- Vim adds new commands, you cannot rely on some command to fail because it
  didn't exist in Vi.
- Vim will have a lot of features that Vi doesn't have.  Going back from Vim
  to Vi will be a problem, this cannot be avoided.
- Some things are hardly ever used (open mode, sending an e-mail when
  crashing, etc.).  Those will only be included when someone has a good reason
  why it should be included and it's not too much work.
- For some items it is debatable whether Vi compatibility should be
  maintained.  There will be an option flag for these.


VIM IS... IMPROVED					*design-improved*

The IMproved bits of Vim should make it a better Vi, without becoming a
completely different editor.  Extensions are done with a "Vi spirit".
- Use the keyboard as much as feasible.  The mouse requires a third hand,
  which we don't have.  Many terminals don't have a mouse.
- When the mouse is used anyway, avoid the need to switch back to the
  keyboard.  Avoid mixing mouse and keyboard handling.
- Add commands and options in a consistent way.  Otherwise people will have a
  hard time finding and remembering them.  Keep in mind that more commands and
  options will be added later.
- A feature that people do not know about is a useless feature.  Don't add
  obscure features, or at least add hints in documentation that they exist.
- Minimize using CTRL and other modifiers, they are more difficult to type.
- There are many first-time and inexperienced Vim users.  Make it easy for
  them to start using Vim and learn more over time.
- There is no limit to the features that can be added.  Selecting new features
  is one based on (1) what users ask for, (2) how much effort it takes to
  implement and (3) someone actually implementing it.


VIM IS... MULTI PLATFORM				*design-multi-platform*

Vim tries to help as many users on as many platforms as possible.
- Support many kinds of terminals.  The minimal demands are cursor positioning
  and clear-screen.  Commands should only use key strokes that most keyboards
  have.  Support all the keys on the keyboard for mapping.
- Support many platforms.  A condition is that there is someone willing to do
  Vim development on that platform, and it doesn't mean messing up the code.
- Support many compilers and libraries.  Not everybody is able or allowed to
  install another compiler or GUI library.
- People switch from one platform to another, and from GUI to terminal
  version.  Features should be present in all versions, or at least in as many
  as possible with a reasonable effort.  Try to avoid that users must switch
  between platforms to accomplish their work efficiently.
- That a feature is not possible on some platforms, or only possible on one
  platform, does not mean it cannot be implemented.  [This intentionally
  contradicts the previous item, these two must be balanced.]


VIM IS... WELL DOCUMENTED				*design-documented*

- A feature that isn't documented is a useless feature.  A patch for a new
  feature must include the documentation.
- Documentation should be comprehensive and understandable.  Using examples is
  recommended.
- Don't make the text unnecessarily long.  Less documentation means that an
  item is easier to find.


VIM IS... HIGH SPEED AND SMALL IN SIZE			*design-speed-size*

Using Vim must not be a big attack on system resources.  Keep it small and
fast.
- Computers are becoming faster and bigger each year.  Vim can grow too, but
  no faster than computers are growing.  Keep Vim usable on older systems.
- Many users start Vim from a shell very often.  Startup time must be short.
- Commands must work efficiently.  The time they consume must be as small as
  possible.  Useful commands may take longer.
- Don't forget that some people use Vim over a slow connection.  Minimize the
  communication overhead.
- Items that add considerably to the size and are not used by many people
  should be a feature that can be disabled.
- Vim is a component among other components.  Don't turn it into a massive
  application, but have it work well together with other programs.


VIM IS... MAINTAINABLE					*design-maintain*

- The source code should not become a mess.  It should be reliable code.
- Use the same layout in all files to make it easy to read |coding-style|.
- Use comments in a useful way!  Quoting the function name and argument names
  is NOT useful.  Do explain what they are for.
- Porting to another platform should be made easy, without having to change
  too much platform-independent code.
- Use the object-oriented spirit: Put data and code together.  Minimize the
  knowledge spread to other parts of the code.


VIM IS... FLEXIBLE					*design-flexible*

Vim should make it easy for users to work in their preferred styles rather
than coercing its users into particular patterns of work.  This can be for
items with a large impact (e.g., the 'compatible' option) or for details.  The
defaults are carefully chosen such that most users will enjoy using Vim as it
is.  Commands and options can be used to adjust Vim to the desire of the user
and its environment.


VIM IS... NOT						*design-not*

- Vim is not a shell or an Operating System.  It does provide a terminal
  window, in which you can run a shell or debugger.  E.g. to be able to do
  this over an ssh connection.  But if you don't need a text editor with that
  it is out of scope (use something like screen or tmux instead).
  A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
  everything but the kitchen sink, but some people say that you can clean one
  with it.  ;-)"
  To use Vim with gdb see: http://www.agide.org and http://clewn.sf.net.
- Vim is not a fancy GUI editor that tries to look nice at the cost of
  being less consistent over all platforms.  But functional GUI features are
  welcomed.

==============================================================================
2. Coding style						*coding-style*

These are the rules to use when making changes to the Vim source code.  Please
stick to these rules, to keep the sources readable and maintainable.

This list is not complete.  Look in the source code for more examples.


MAKING CHANGES						*style-changes*

The basic steps to make changes to the code:
1. Get the code from github.  That makes it easier to keep your changed
   version in sync with the main code base (it may be a while before your
   changes will be included).  You do need to spend some time learning git,
   it's not the most user friendly tool.
2. Adjust the documentation.  Doing this first gives you an impression of how
   your changes affect the user.
3. Make the source code changes.
4. Check ../doc/todo.txt if the change affects any listed item.
5. Make a patch with "git diff".  You can also create a pull request on
   github, but it's the diff that matters.
6. Make a note about what changed, preferably mentioning the problem and the
   solution.  Send an email to the |vim-dev| maillist with an explanation and
   include the diff. Or create a pull request on github.


C COMPILER						*style-compiler*

The minimal C compiler version supported is C89, also known as ANSI C.
Later standards, such as C99, are not widely supported, or at least not 100%
supported.  Therefore we use only some of the C99 features and disallow some
(at least for now).

Please don't make changes everywhere to use the C99 features, it causes merge
problems for existing patches.  Only use them for new and changed code.

Comments ~

Traditionally Vim uses /* comments */.  We intend to keep it that way,
especially for file and function headers.  For new code or lines of code that
change, it is allowed to use // comments.  Especially when it comes after
code:
	int some_var;  // single line comment useful here

Enums ~

The last item in an enum may have a trailing comma.  C89 didn't allow this.

Types ~

"long long" is allowed and can be expected to be 64 bits.  Use %lld in printf
formats.  Also "long long unsigned" with %llu.

Not to be used ~

These C99 features are not to be used, because not enough compilers support
them:
- Declaration after Statements (MSVC 2012 does not support it).  All
  declarations need to be at the start of the block.
- Variable length arrays (even in C11 this is an optional feature).
- _Bool and _Complex types.
- "inline" (it's hardly ever needed, let the optimizer do its work)
- flexible array members: Not supported by HP-UX C compiler (John Marriott)


USE OF COMMON FUNCTIONS					*style-functions*

Some functions that are common to use, have a special Vim version.  Always
consider using the Vim version, because they were introduced with a reason.

NORMAL NAME	VIM NAME	DIFFERENCE OF VIM VERSION
free()		vim_free()	Checks for freeing NULL
malloc()	alloc()		Checks for out of memory situation
malloc()	lalloc()	Like alloc(), but has long argument
strcpy()	STRCPY()	Includes cast to (char *), for char_u * args
strchr()	vim_strchr()	Accepts special characters
strrchr()	vim_strrchr()	Accepts special characters
isspace()	vim_isspace()	Can handle characters > 128
iswhite()	vim_iswhite()	Only TRUE for tab and space
memcpy()	mch_memmove()	Handles overlapped copies
bcopy()		mch_memmove()	Handles overlapped copies
memset()	vim_memset()	Uniform for all systems


NAMES							*style-names*

Function names can not be more than 31 characters long (because of VMS).

Don't use "delete" or "this" as a variable name, C++ doesn't like it.

Because of the requirement that Vim runs on as many systems as possible, we
need to avoid using names that are already defined by the system.  This is a
list of names that are known to cause trouble.  The name is given as a regexp
pattern.

is.*()		POSIX, ctype.h
to.*()		POSIX, ctype.h

d_.*		POSIX, dirent.h
l_.*		POSIX, fcntl.h
gr_.*		POSIX, grp.h
pw_.*		POSIX, pwd.h
sa_.*		POSIX, signal.h
mem.*		POSIX, string.h
str.*		POSIX, string.h
wcs.*		POSIX, string.h
st_.*		POSIX, stat.h
tms_.*		POSIX, times.h
tm_.*		POSIX, time.h
c_.*		POSIX, termios.h
MAX.*		POSIX, limits.h
__.*		POSIX, system
_[A-Z].*	POSIX, system
E[A-Z0-9]*	POSIX, errno.h

.*_t		POSIX, for typedefs.  Use .*_T instead.

wait		don't use as argument to a function, conflicts with types.h
index		shadows global declaration
time		shadows global declaration
new		C++ reserved keyword
try		Borland C++ doesn't like it to be used as a variable.

clear		Mac curses.h
echo		Mac curses.h
instr		Mac curses.h
meta		Mac curses.h
newwin		Mac curses.h
nl		Mac curses.h
overwrite	Mac curses.h
refresh		Mac curses.h
scroll		Mac curses.h
typeahead	Mac curses.h

basename()	GNU string function
dirname()	GNU string function
get_env_value()	Linux system function


VARIOUS							*style-various*

Typedef'ed names should end in "_T": >
    typedef int some_T;
Define'ed names should be uppercase: >
    #define SOME_THING
Features always start with "FEAT_": >
    #define FEAT_FOO

Don't use '\"', some compilers can't handle it.  '"' works fine.

Don't use:
    #if HAVE_SOME
Some compilers can't handle that and complain that "HAVE_SOME" is not defined.
Use
    #ifdef HAVE_SOME
or
    #if defined(HAVE_SOME)


STYLE							*style-examples*

General rule: One statement per line.

Wrong:	    if (cond) a = 1;

OK:	    if (cond)
		a = 1;

Wrong:	    while (cond);

OK:	    while (cond)
		;

Wrong:	    do a = 1; while (cond);

OK:	    do
		a = 1;
	    while (cond);

Wrong:	    if (cond) {
               cmd;
               cmd;
	    } else {
               cmd;
               cmd;
	    }

OK:	    if (cond)
            {
               cmd;
               cmd;
	    }
	    else
	    {
               cmd;
               cmd;
	    }

Use ANSI (new style) function declarations with the return type on a separate
indented line.

Wrong:	int function_name(int arg1, int arg2)

OK:	/*
	 * Explanation of what this function is used for.
	 *
	 * Return value explanation.
	 */
	    int
	function_name(
	    int		arg1,		/* short comment about arg1 */
	    int		arg2)		/* short comment about arg2 */
	{
	    int		local;		/* comment about local */

	    local = arg1 * arg2;



SPACES AND PUNCTUATION					*style-spaces*

No space between a function name and the bracket:

Wrong:  func (arg);
OK:	func(arg);

Do use a space after if, while, switch, etc.

Wrong:	if(arg)		for(;;)
OK:	if (arg)	for (;;)

Use a space after a comma and semicolon:

Wrong:  func(arg1,arg2);	for (i = 0;i < 2;++i)
OK:	func(arg1, arg2);	for (i = 0; i < 2; ++i)

Use a space before and after '=', '+', '/', etc.

Wrong:	var=a*5;
OK:	var = a * 5;

In general: Use empty lines to group lines of code together.  Put a comment
just above the group of lines.  This makes it easier to quickly see what is
being done.

OK:	/* Prepare for building the table. */
	get_first_item();
	table_idx = 0;

	/* Build the table */
	while (has_item())
	    table[table_idx++] = next_item();

	/* Finish up. */
	cleanup_items();
	generate_hash(table);

==============================================================================
3. Design decisions					*design-decisions*

Folding

Several forms of folding should be possible for the same buffer.  For example,
have one window that shows the text with function bodies folded, another
window that shows a function body.

Folding is a way to display the text.  It should not change the text itself.
Therefore the folding has been implemented as a filter between the text stored
in a buffer (buffer lines) and the text displayed in a window (logical lines).


Naming the window

The word "window" is commonly used for several things: A window on the screen,
the xterm window, a window inside Vim to view a buffer.
To avoid confusion, other items that are sometimes called window have been
given another name.  Here is an overview of the related items:

screen		The whole display.  For the GUI it's something like 1024x768
		pixels.  The Vim shell can use the whole screen or part of it.
shell		The Vim application.  This can cover the whole screen (e.g.,
		when running in a console) or part of it (xterm or GUI).
window		View on a buffer.  There can be several windows in Vim,
		together with the command line, menubar, toolbar, etc. they
		fit in the shell.


Spell checking						*develop-spell*

When spell checking was going to be added to Vim a survey was done over the
available spell checking libraries and programs.  Unfortunately, the result
was that none of them provided sufficient capabilities to be used as the spell
checking engine in Vim, for various reasons:

- Missing support for multi-byte encodings.  At least UTF-8 must be supported,
  so that more than one language can be used in the same file.
  Doing on-the-fly conversion is not always possible (would require iconv
  support).
- For the programs and libraries: Using them as-is would require installing
  them separately from Vim.  That's mostly not impossible, but a drawback.
- Performance: A few tests showed that it's possible to check spelling on the
  fly (while redrawing), just like syntax highlighting.  But the mechanisms
  used by other code are much slower.  Myspell uses a hashtable, for example.
  The affix compression that most spell checkers use makes it slower too.
- For using an external program like aspell a communication mechanism would
  have to be setup.  That's complicated to do in a portable way (Unix-only
  would be relatively simple, but that's not good enough).  And performance
  will become a problem (lots of process switching involved).
- Missing support for words with non-word characters, such as "Etten-Leur" and
  "et al.", would require marking the pieces of them OK, lowering the
  reliability.
- Missing support for regions or dialects.  Makes it difficult to accept
  all English words and highlight non-Canadian words differently.
- Missing support for rare words.  Many words are correct but hardly ever used
  and could be a misspelled often-used word.
- For making suggestions the speed is less important and requiring to install
  another program or library would be acceptable.  But the word lists probably
  differ, the suggestions may be wrong words.


Spelling suggestions				*develop-spell-suggestions*

For making suggestions there are two basic mechanisms:
1. Try changing the bad word a little bit and check for a match with a good
   word.  Or go through the list of good words, change them a little bit and
   check for a match with the bad word.  The changes are deleting a character,
   inserting a character, swapping two characters, etc.
2. Perform soundfolding on both the bad word and the good words and then find
   matches, possibly with a few changes like with the first mechanism.

The first is good for finding typing mistakes.  After experimenting with
hashtables and looking at solutions from other spell checkers the conclusion
was that a trie (a kind of tree structure) is ideal for this.  Both for
reducing memory use and being able to try sensible changes.  For example, when
inserting a character only characters that lead to good words need to be
tried.  Other mechanisms (with hashtables) need to try all possible letters at
every position in the word.  Also, a hashtable has the requirement that word
boundaries are identified separately, while a trie does not require this.
That makes the mechanism a lot simpler.

Soundfolding is useful when someone knows how the words sounds but doesn't
know how it is spelled.  For example, the word "dictionary" might be written
as "daktonerie".  The number of changes that the first method would need to
try is very big, it's hard to find the good word that way.  After soundfolding
the words become "tktnr" and "tkxnry", these differ by only two letters.

To find words by their soundfolded equivalent (soundalike word) we need a list
of all soundfolded words.  A few experiments have been done to find out what
the best method is.  Alternatives:
1. Do the sound folding on the fly when looking for suggestions.  This means
   walking through the trie of good words, soundfolding each word and
   checking how different it is from the bad word.  This is very efficient for
   memory use, but takes a long time.  On a fast PC it takes a couple of
   seconds for English, which can be acceptable for interactive use.  But for
   some languages it takes more than ten seconds (e.g., German, Catalan),
   which is unacceptable slow.  For batch processing (automatic corrections)
   it's too slow for all languages.
2. Use a trie for the soundfolded words, so that searching can be done just
   like how it works without soundfolding.  This requires remembering a list
   of good words for each soundfolded word.  This makes finding matches very
   fast but requires quite a lot of memory, in the order of 1 to 10 Mbyte.
   For some languages more than the original word list.
3. Like the second alternative, but reduce the amount of memory by using affix
   compression and store only the soundfolded basic word.  This is what Aspell
   does.  Disadvantage is that affixes need to be stripped from the bad word
   before soundfolding it, which means that mistakes at the start and/or end
   of the word will cause the mechanism to fail.  Also, this becomes slow when
   the bad word is quite different from the good word.

The choice made is to use the second mechanism and use a separate file.  This
way a user with sufficient memory can get very good suggestions while a user
who is short of memory or just wants the spell checking and no suggestions
doesn't use so much memory.


Word frequency

For sorting suggestions it helps to know which words are common.  In theory we
could store a word frequency with the word in the dictionary.  However, this
requires storing a count per word.  That degrades word tree compression a lot.
And maintaining the word frequency for all languages will be a heavy task.
Also, it would be nice to prefer words that are already in the text.  This way
the words that appear in the specific text are preferred for suggestions.

What has been implemented is to count words that have been seen during
displaying.  A hashtable is used to quickly find the word count.  The count is
initialized from words listed in COMMON items in the affix file, so that it
also works when starting a new file.

This isn't ideal, because the longer Vim is running the higher the counts
become.  But in practice it is a noticeable improvement over not using the word
count.

==============================================================================
4. Assumptions						*design-assumptions*

Size of variables:
char	    8 bit signed
char_u	    8 bit unsigned
int	    32 or 64 bit signed (16 might be possible with limited features)
unsigned    32 or 64 bit unsigned (16 as with ints)
long	    32 or 64 bit signed, can hold a pointer

Note that some compilers cannot handle long lines or strings.  The C89
standard specifies a limit of 509 characters.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�wC�� � vim80/doc/remote.txtnu�[���*remote.txt*    For Vim version 8.0.  Last change: 2017 Nov 12


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Vim client-server communication				*client-server*

1. Common functionality		|clientserver|
2. X11 specific items		|x11-clientserver|
3. MS-Windows specific items	|w32-clientserver|

{Vi does not have any of these commands}

==============================================================================
1. Common functionality					*clientserver*

When compiled with the |+clientserver| option, Vim can act as a command
server.  It accepts messages from a client and executes them.  At the same
time, Vim can function as a client and send commands to a Vim server.

The following command line arguments are available:

    argument			meaning	~

   --remote [+{cmd}] {file} ...					*--remote*
				Open the file list in a remote Vim.  When
				there is no Vim server, execute locally.
				There is one optional init command: +{cmd}.
				This must be an Ex command that can be
				followed by "|".
				The rest of the command line is taken as the
				file list.  Thus any non-file arguments must
				come before this.
				You cannot edit stdin this way |--|.
				The remote Vim is raised.  If you don't want
				this use >
				 vim --remote-send "<C-\><C-N>:n filename<CR>"
<
   --remote-silent [+{cmd}] {file} ...			*--remote-silent*
				As above, but don't complain if there is no
				server and the file is edited locally.
   --remote-wait [+{cmd}] {file} ...				*--remote-wait*
				As --remote, but wait for files to complete
				(unload) in remote Vim.
   --remote-wait-silent [+{cmd}] {file} ...		*--remote-wait-silent*
				As --remote-wait, but don't complain if there
				is no server.
							*--remote-tab*
   --remote-tab			Like --remote but open each file in a new
				tabpage.
							*--remote-tab-silent*
   --remote-tab-silent		Like --remote-silent but open each file in a
				new tabpage.
							*--remote-tab-wait*
   --remote-tab-wait		Like --remote-wait but open each file in a new
				tabpage.

						*--remote-tab-wait-silent*
   --remote-tab-wait-silent	Like --remote-wait-silent but open each file
				in a new tabpage.
								*--servername*
   --servername {name}		Become the server {name}.  When used together
				with one of the --remote commands: connect to
				server {name} instead of the default (see
				below).
								*--remote-send*
   --remote-send {keys}		Send {keys} to server and exit.  The {keys}
   				are not mapped.  Special key names are
				recognized, e.g., "<CR>" results in a CR
				character.
								*--remote-expr*
   --remote-expr {expr}		Evaluate {expr} in server and print the result
				on stdout.
								*--serverlist*
   --serverlist			Output a list of server names.


Examples ~

Edit "file.txt" in an already running GVIM server: >
    gvim --remote file.txt

Edit "file.txt" in an already running server called FOOBAR: >
    gvim --servername FOOBAR --remote file.txt

Edit "file.txt" in server "FILES" if it exists, become server "FILES"
otherwise: >
    gvim --servername FILES --remote-silent file.txt

This doesn't work, all arguments after --remote will be used as file names: >
    gvim --remote --servername FOOBAR file.txt

Edit file "+foo" in a remote server (note the use of "./" to avoid the special
meaning of the leading plus): >
    vim --remote ./+foo

Tell the remote server "BLA" to write all files and exit: >
    vim --servername BLA --remote-send '<C-\><C-N>:wqa<CR>'


SERVER NAME						*client-server-name*

By default Vim will try to register the name under which it was invoked (gvim,
egvim ...).  This can be overridden with the --servername argument.  If the
specified name is not available, a postfix is applied until a free name is
encountered, i.e. "gvim1" for the second invocation of gvim on a particular
X-server.  The resulting name is available in the servername builtin variable
|v:servername|.  The case of the server name is ignored, thus "gvim" and
"GVIM" are considered equal.

When Vim is invoked with --remote, --remote-wait or --remote-send it will try
to locate the server name determined by the invocation name and --servername
argument as described above.  If an exact match is not available, the first
server with the number postfix will be used.  If a name with the number
postfix is specified with the --servername argument, it must match exactly.

If no server can be located and --remote or --remote-wait was used, Vim will
start up according to the rest of the command line and do the editing by
itself.  This way it is not necessary to know whether gvim is already started
when sending command to it.

The --serverlist argument will cause Vim to print a list of registered command
servers on the standard output (stdout) and exit.

Win32 Note: Making the Vim server go to the foreground doesn't always work,
because MS-Windows doesn't allow it.  The client will move the server to the
foreground when using the --remote or --remote-wait argument and the server
name starts with "g".


REMOTE EDITING

The --remote argument will cause a |:drop| command to be constructed from the
rest of the command line and sent as described above.
The --remote-wait argument does the same thing and additionally sets up to
wait for each of the files to have been edited.  This uses the BufUnload
event, thus as soon as a file has been unloaded, Vim assumes you are done
editing it.
Note that the --remote and --remote-wait arguments will consume the rest of
the command line.  I.e. all remaining arguments will be regarded as filenames.
You can not put options there!


FUNCTIONS
								*E240* *E573*
There are a number of Vim functions for scripting the command server.  See
the description in |eval.txt| or use CTRL-] on the function name to jump to
the full explanation.

    synopsis				     explanation ~
    remote_startserver( name)		     run a server
    remote_expr( server, string, idvar)      send expression
    remote_send( server, string, idvar)      send key sequence
    serverlist()			     get a list of available servers
    remote_peek( serverid, retvar)	     check for reply string
    remote_read( serverid)		     read reply string
    server2client( serverid, string)	     send reply string
    remote_foreground( server)		     bring server to the front

See also the explanation of |CTRL-\_CTRL-N|.  Very useful as a leading key
sequence.
The {serverid} for server2client() can be obtained with expand("<client>")

==============================================================================
2. X11 specific items					*x11-clientserver*
				    *E247* *E248* *E251* *E258* *E277*

The communication between client and server goes through the X server.  The
display of the Vim server must be specified.  The usual protection of the X
server is used, you must be able to open a window on the X server for the
communication to work.  It is possible to communicate between different
systems.

By default, a GUI Vim will register a name on the X-server by which it can be
addressed for subsequent execution of injected strings.  Vim can also act as
a client and send strings to other instances of Vim on the same X11 display.

When an X11 GUI Vim (gvim) is started, it will try to register a send-server
name on the 'VimRegistry' property on the root window.

A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can
also act as a command server if a server name is explicitly given with the
--servername argument, or when Vim was build with the |+autoservername|
feature.

An empty --servername argument will cause the command server to be disabled.

To send commands to a Vim server from another application, read the source
file src/if_xcmdsrv.c, it contains some hints about the protocol used.

==============================================================================
3. Win32 specific items					*w32-clientserver*

Every Win32 Vim can work as a server, also in the console.  You do not need a
version compiled with OLE.  Windows messages are used, this works on any
version of MS-Windows.  But only communication within one system is possible.

Since MS-Windows messages are used, any other application should be able to
communicate with a Vim server.  An alternative is using the OLE functionality
|ole-interface|.

When using gvim, the --remote-wait only works properly this way: >

	start /w gvim --remote-wait file.txt
<
 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z�<j��vim80/doc/mlang.txtnu�[���*mlang.txt*     For Vim version 8.0.  Last change: 2017 Mar 04


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Multi-language features				*multilang* *multi-lang*

This is about using messages and menus in various languages.  For editing
multi-byte text see |multibyte|.

The basics are explained in the user manual: |usr_45.txt|.

1. Messages			|multilang-messages|
2. Menus			|multilang-menus|
3. Scripts			|multilang-scripts|

Also see |help-translated| for multi-language help.

{Vi does not have any of these features}
{not available when compiled without the |+multi_lang| feature}

==============================================================================
1. Messages						*multilang-messages*

Vim picks up the locale from the environment.  In most cases this means Vim
will use the language that you prefer, unless it's not available.

To see a list of supported locale names on your system, look in one of these
directories (for Unix):
	/usr/lib/locale ~
	/usr/share/locale ~
Unfortunately, upper/lowercase differences matter.  Also watch out for the
use of "-" and "_".

					    *:lan* *:lang* *:language* *E197*
:lan[guage]
:lan[guage] mes[sages]
:lan[guage] cty[pe]
:lan[guage] tim[e]
			Print the current language (aka locale).
			With the "messages" argument the language used for
			messages is printed.  Technical: LC_MESSAGES.
			With the "ctype" argument the language used for
			character encoding is printed.  Technical: LC_CTYPE.
			With the "time" argument the language used for
			strftime() is printed.  Technical: LC_TIME.
			Without argument all parts of the locale are printed
			(this is system dependent).
			The current language can also be obtained with the
			|v:lang|, |v:ctype| and |v:lc_time| variables.

:lan[guage] {name}
:lan[guage] mes[sages] {name}
:lan[guage] cty[pe] {name}
:lan[guage] tim[e] {name}
			Set the current language (aka locale) to {name}.
			The locale {name} must be a valid locale on your
			system.  Some systems accept aliases like "en" or
			"en_US", but some only accept the full specification
			like "en_US.ISO_8859-1".  On Unix systems you can use
			this command to see what locales are supported: >
				:!locale -a
<			With the "messages" argument the language used for
			messages is set.  This can be different when you want,
			for example, English messages while editing Japanese
			text.  This sets $LC_MESSAGES.
			With the "ctype" argument the language used for
			character encoding is set.  This affects the libraries
			that Vim was linked with.  It's unusual to set this to
			a different value from 'encoding' or "C".  This sets
			$LC_CTYPE.
			With the "time" argument the language used for time
			and date messages is set.  This affects strftime().
			This sets $LC_TIME.
			Without an argument both are set, and additionally
			$LANG is set.
			When compiled with the |+float| feature the LC_NUMERIC
			value will always be set to "C", so that floating
			point numbers use '.' as the decimal point.
			This will make a difference for items that depend on
			the language (some messages, time and date format).
			Not fully supported on all systems
			If this fails there will be an error message.  If it
			succeeds there is no message.  Example: >
				:language
				Current language: C
				:language de_DE.ISO_8859-1
				:language mes
				Current messages language: de_DE.ISO_8859-1
				:lang mes en
<

MS-WINDOWS MESSAGE TRANSLATIONS				*win32-gettext*

If you used the self-installing .exe file, message translations should work
already.  Otherwise get the libintl.dll file if you don't have it yet:

	http://sourceforge.net/projects/gettext
Or:
	https://mlocati.github.io/gettext-iconv-windows/

This also contains tools xgettext, msgformat and others.

libintl.dll should be placed in same directory with (g)vim.exe, or some
place where PATH environment value describe.  Vim also finds libintl-8.dll.
Message files (vim.mo) have to be placed in "$VIMRUNTIME/lang/xx/LC_MESSAGES",
where "xx" is the abbreviation of the language (mostly two letters).

If you write your own translations you need to generate the .po file and
convert it to a .mo file.  You need to get the source distribution and read
the file "src/po/README.txt".

To overrule the automatic choice of the language, set the $LANG variable to
the language of your choice.  use "en" to disable translations. >

  :let $LANG = 'ja'

(text for Windows by Muraoka Taro)

==============================================================================
2. Menus						*multilang-menus*

See |45.2| for the basics, esp. using 'langmenu'.

Note that if changes have been made to the menus after the translation was
done, some of the menus may be shown in English.  Please try contacting the
maintainer of the translation and ask him to update it.  You can find the
name and e-mail address of the translator in
"$VIMRUNTIME/lang/menu_<lang>.vim".

To set the font (or fontset) to use for the menus, use the |:highlight|
command.  Example: >

	:highlight Menu font=k12,r12


ALIAS LOCALE NAMES

Unfortunately, the locale names are different on various systems, even though
they are for the same language and encoding.  If you do not get the menu
translations you expected, check the output of this command: >

	echo v:lang

Now check the "$VIMRUNTIME/lang" directory for menu translation files that use
a similar language.  A difference in a "-" being a "_" already causes a file
not to be found!  Another common difference to watch out for is "iso8859-1"
versus "iso_8859-1".  Fortunately Vim makes all names lowercase, thus you
don't have to worry about case differences.  Spaces are changed to
underscores, to avoid having to escape them.

If you find a menu translation file for your language with a different name,
create a file in your own runtime directory to load that one.  The name of
that file could be: >

	~/.vim/lang/menu_<v:lang>.vim

Check the 'runtimepath' option for directories which are searched.  In that
file put a command to load the menu file with the other name: >

	runtime lang/menu_<other_lang>.vim


TRANSLATING MENUS

If you want to do your own translations, you can use the |:menutrans| command,
explained below.  It is recommended to put the translations for one language
in a Vim script.  For a language that has no translation yet, please consider
becoming the maintainer and make your translations available to all Vim users.
Send an e-mail to the Vim maintainer <maintainer@vim.org>.

					*:menut* *:menutrans* *:menutranslate*
:menut[ranslate] clear
			Clear all menu translations.

:menut[ranslate] {english} {mylang}
			Translate menu name {english} to {mylang}.  All
			special characters like "&" and "<Tab>" need to be
			included.  Spaces and dots need to be escaped with a
			backslash, just like in other |:menu| commands.
			Case in {english} is ignored.

See the $VIMRUNTIME/lang directory for examples.

To try out your translations you first have to remove all menus.  This is how
you can do it without restarting Vim: >
	:source $VIMRUNTIME/delmenu.vim
	:source <your-new-menu-file>
	:source $VIMRUNTIME/menu.vim

Each part of a menu path is translated separately.  The result is that when
"Help" is translated to "Hilfe" and "Overview" to "�berblick" then
"Help.Overview" will be translated to "Hilfe.�berblick".

==============================================================================
3. Scripts						*multilang-scripts*

In Vim scripts you can use the |v:lang| variable to get the current language
(locale).  The default value is "C" or comes from the $LANG environment
variable.

The following example shows how this variable is used in a simple way, to make
a message adapt to language preferences of the user, >

	:if v:lang =~ "de_DE"
	:  echo "Guten Morgen"
	:else
	:  echo "Good morning"
	:endif
<

 vim:tw=78:sw=4:ts=8:ft=help:norl:
PK�j�Z�~S�*�*vim80/doc/os_beos.txtnu�[���*os_beos.txt*	For Vim version 8.0.  Last change: 2016 Mar 28


		  VIM REFERENCE MANUAL    by Bram Moolenaar


							*BeOS* *BeBox*
This is a port of Vim 5.1 to the BeOS Preview Release 2 (also known as PR2)
or later.

This file contains the particularities for the BeBox/BeOS version of Vim.  For
matters not discussed in this file, Vim behaves very much like the Unix
|os_unix.txt| version.

 1. General			|beos-general|
 2. Compiling Vim		|beos-compiling|
 3. Timeout in the Terminal	|beos-timeout|
 4. Unicode vs. Latin1		|beos-unicode|
 5. The BeOS GUI		|beos-gui|
 6. The $VIM directory		|beos-vimdir|
 7. Drag & Drop			|beos-dragndrop|
 8. Single Launch vs. Multiple
    Launch			|beos-launch|
 9. Fonts			|beos-fonts|
10. The meta key modifier	|beos-meta|
11. Mouse key mappings		|beos-mouse|
12. Color names			|beos-colors|
13. Compiling with Perl		|beos-perl|


1. General						*beos-general*

The default syntax highlighting mostly works with different foreground colors
to highlight items.  This works best if you set your Terminal window to a
darkish background and light letters.  Some middle-grey background (for
instance (r,g,b)=(168,168,168)) with black letters also works nicely.  If you
use the default light background and dark letters, it may look better to
simply reverse the notion of foreground and background color settings.  To do
this, add this to your .vimrc file (where <Esc> may need to be replaced with
the escape character): >

  :if &term == "beos-ansi"
  :    set t_AB=<Esc>[3%dm
  :    set t_AF=<Esc>[4%dm
  :endif


2. Compiling Vim					*beos-compiling*

From the Advanced Access Preview Release (AAPR) on, Vim can be configured with
the standard configure script.  To get the compiler and its flags right, use
the following command-line in the shell (you can cut and paste it in one go):

CC=$BE_C_COMPILER CFLAGS="$BE_DEFAULT_C_FLAGS -O7" \
    ./configure --prefix=/boot/home/config

$BE_C_COMPILER is usually "mwcc", $BE_DEFAULT_C_FLAGS is usually "-I- -I."

When configure has run, and you wish to enable GUI support, you must edit the
config.mk file so that the lines with GUI_xxx refer to $(BEOSGUI_xxx) instead
of $(NONE_xxx).
Alternatively you can make this change in the Makefile; it will have a
more permanent effect.  Search for "NONE_".

After compilation you need to add the resources to the binary.  Add the
following few lines near the end (before the line with "exit $exit_value") of
the link.sh script to do this automatically.

    rmattr BEOS:TYPE vim
    copyres os_beos.rsrc vim
    mimeset vim

Also, create a dummy file "strip":

    #!/bin/sh
    mimeset $1
    exit 0

You will need it when using "make install" to install Vim.

Now type "make" to compile Vim, then "make install" to install it.

If you want to install Vim by hand, you must copy Vim to $HOME/config/bin, and
create a bunch of symlinks to it ({g,r,rg}{vim,ex,view}).  Furthermore you must
copy Vim's configuration files to $HOME/config/share/vim:
vim-5.0s/{*.vim,doc,syntax}.  For completeness, you should also copy the nroff
manual pages to $HOME/config/man/man1.  Don't forget ctags/ctags and xxd/xxd!

Obviously, you need the unlimited linker to actually link Vim.  See
http://www.metrowerks.com for purchasing the CodeWarrior compiler for BeOS.
There are currently no other linkers that can do the job.

This won't be able to include the Perl or Python interfaces even if
you have the appropriate files installed. |beos-perl|


3. Timeout in the Terminal				*beos-timeout*

Because some POSIX/UNIX features are still missing[1], there is no direct OS
support for read-with-timeout in the Terminal.  This would mean that you cannot
use :mappings of more than one character, unless you also :set notimeout.
|'timeout'|

To circumvent this problem, I added a workaround to provide the necessary
input with timeout by using an extra thread which reads ahead one character.
As a side effect, it also makes Vim recognize when the Terminal window
resizes.

Function keys are not supported in the Terminal since they produce very
indistinctive character sequences.

These problems do not exist in the GUI.

[1]: there is no select() on file descriptors; also the termios VMIN and VTIME
settings do not seem to work properly.  This has been the case since DR7 at
least and still has not been fixed as of PR2.

							*beos-unicode*
4. Unicode vs. Latin1					*beos-utf8*

BeOS uses Unicode and UTF-8 for text strings (16-bit characters encoded to
8-bit characters).  Vim assumes ISO-Latin1 or other 8-bit character codes.
This does not produce the desired results for non-ASCII characters.  Try the
command :digraphs to see.  If they look messed up, use :set isprint=@ to
(slightly) improve the display of ISO-Latin1 characters 128-255.  This works
better in the GUI, depending on which font you use (below).

You may also use the /boot/bin/xtou command to convert UTF-8 files from (xtou
-f iso1 filename) or to (xtou -t iso1 filename) ISO-Latin1 characters.


5. The BeOS GUI						*beos-gui*

The BeOS GUI is no longer included.  It was not maintained for a while and
most likely didn't work.  If you want to work on this: get the Vim 6.x version
and merge it back in.


6. The $VIM directory					*beos-vimdir*

$VIM is the symbolic name for the place where Vims support files are stored.
The default value for $VIM is set at compile time and can be determined with >

  :version

The normal value is /boot/home/config/share/vim.  If you don't like it you can
set the Vim environment variable to override this, or set 'helpfile' in your
.vimrc: >

  :if version >= 500
  :    set helpfile=~/vim/vim54/doc/help.txt
  :    syntax on
  :endif


7. Drag & Drop						*beos-dragndrop*

You can drop files and directories on either the Vim icon (starts a new Vim
session, unless you use the File Types application to set Vim to be "Single
Launch") or on the Vim window (starts editing the files).  Dropping a folder
sets Vim's current working directory. |:cd| |:pwd| If you drop files or
folders with either SHIFT key pressed, Vim changes directory to the folder
that contains the first item dropped.  When starting Vim, there is no need to
press shift: Vim behaves as if you do.

Files dropped set the current argument list. |argument-list|


8. Single Launch vs. Multiple Launch			*beos-launch*

As distributed Vim's Application Flags (as seen in the FileTypes preference)
are set to Multiple Launch.  If you prefer, you can set them to Single Launch
instead.  Attempts to start a second copy of Vim will cause the first Vim to
open the files instead.  This works from the Tracker but also from the command
line.  In the latter case, non-file (option) arguments are not supported.

NB: Only the GUI version has a BApplication (and hence Application Flags).
This section does not apply to the GUI-less version, should you compile one.


9. Fonts						*beos-fonts*

Set fonts with >

  :set guifont=Courier10_BT/Roman/10

where the first part is the font family, the second part the style, and the
third part the size.  You can use underscores instead of spaces in family and
style.

Best results are obtained with monospaced fonts (such as Courier).  Vim
attempts to use all fonts in B_FIXED_SPACING mode but apparently this does not
work for proportional fonts (despite what the BeBook says).

Vim also tries to use the B_ISO8859_1 encoding, also known as ISO Latin 1.
This also does not work for all fonts.  It does work for Courier, but not for
ProFontISOLatin1/Regular (strangely enough).  You can verify this by giving the >

  :digraphs

command, which lists a bunch of characters with their ISO Latin 1 encoding.
If, for instance, there are "box" characters among them, or the last character
isn't a dotted-y, then for this font the encoding does not work.

If the font you specify is unavailable, you get the system fixed font.

Standard fixed-width system fonts are:

	      ProFontISOLatin1/Regular
		  Courier10_BT/Roman
		  Courier10_BT/Italic
		  Courier10_BT/Bold
		  Courier10_BT/Bold_Italic

Standard proportional system fonts are:

		    Swis721_BT/Roman
		    Swis721_BT/Italic
		    Swis721_BT/Bold
		    Swis721_BT/Bold_Italic
		Dutch801_Rm_BT/Roman
		Dutch801_Rm_BT/Italic
		Dutch801_Rm_BT/Bold
		Dutch801_Rm_BT/Bold_Italic
		   Baskerville/Roman
		   Baskerville/Italic
		   Baskerville/Bold
		   Baskerville/Bold_Italic
		 SymbolProp_BT/Regular

Try some of them, just for fun.


10. The meta key modifier				*beos-meta*

The META key modifier is obtained by the left or right OPTION keys.  This is
because the ALT (aka COMMAND) keys are not passed to applications.


11. Mouse key mappings					*beos-mouse*

Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse.  If
you use the default Mouse preference settings these names indeed correspond to
reality.  Vim uses this mapping:

    Button 1 -> LeftMouse,
    Button 2 -> RightMouse,
    Button 3 -> MiddleMouse.

If your mouse has fewer than 3 buttons you can provide your own mapping from
mouse clicks with modifier(s) to other mouse buttons.  See the swapmouse
package for an example:					 |gui-mouse-mapping|
$VIMRUNTIME/pack/dist/opt/swapmouse/plugin/swapmouse.vim


12. Color names						*beos-colors*

Vim has a number of color names built-in.  Additional names are read from the
file $VIMRUNTIME/rgb.txt, if present.  This file is basically the color
database from X.  Names used from this file are cached for efficiency.


13. Compiling with Perl					*beos-perl*

Compiling with Perl support enabled is slightly tricky.  The Metrowerks
compiler has some strange ideas where to search for include files.  Since
several include files with Perl have the same names as some Vim header
files, the wrong ones get included.  To fix this, run the following Perl
script while in the vim-5.0/src directory: >

   preproc.pl > perl.h

    #!/bin/env perl
    # Simple #include expander, just good enough for the Perl header files.

    use strict;
    use IO::File;
    use Config;

    sub doinclude
    {
	my $filename = $_[0];
	my $fh = new IO::File($filename, "r");
	if (defined $fh) {
	    print "/* Start of $filename */\n";

	    while (<$fh>) {
		if (/^#include "(.*)"/) {
		    doinclude($1);
		    print "/* Back in $filename */\n";
		} else {
		    print $_;
		}
	    }
	    print "/* End of $filename */\n";

	    undef $fh;
	} else {
	    print "/* Cannot open $filename */\n";
	    print "#include \"$filename\"\n";
	}
    }

    chdir     $Config{installarchlib}."/CORE";
    doinclude "perl.h";

It expands the "perl.h" header file, using only other Perl header files.

Now you can configure & make Vim with the --enable-perlinterp option.
Be warned though that this adds about 616 kilobytes to the size of Vim!
Without Perl, Vim with default features and GUI is about 575K, with Perl
it is about 1191K.

-Olaf Seibert

[Note: these addresses no longer work:]
<rhialto@polder.ubc.kun.nl>
http://polder.ubc.kun.nl/~rhialto/be

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�xt����vim80/doc/pi_netrw.txtnu�[���*pi_netrw.txt*  For Vim version 8.0.  Last change: 2017 Nov 03

	    ------------------------------------------------
	    NETRW REFERENCE MANUAL    by Charles E. Campbell
	    ------------------------------------------------
Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
	  (remove NOSPAM from Campbell's email first)

Copyright: Copyright (C) 2017 Charles E Campbell    *netrw-copyright*
	The VIM LICENSE applies to the files in this package, including
	netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
	syntax/netrw.vim.  Like anything else that's free, netrw.vim and its
	associated files are provided *as is* and comes with no warranty of
	any kind, either expressed or implied.  No guarantees of
	merchantability.  No guarantees of suitability for any purpose.  By
	using this plugin, you agree that in no event will the copyright
	holder be liable for any damages resulting from the use of this
	software. Use at your own risk!

		*netrw*
		*dav*    *ftp*    *netrw-file*  *rcp*    *scp*
		*davs*   *http*   *netrw.vim*   *rsync*  *sftp*
		*fetch*  *network*

==============================================================================
1. Contents						*netrw-contents* {{{1

1.  Contents..............................................|netrw-contents|
2.  Starting With Netrw...................................|netrw-start|
3.  Netrw Reference.......................................|netrw-ref|
      EXTERNAL APPLICATIONS AND PROTOCOLS.................|netrw-externapp|
      READING.............................................|netrw-read|
      WRITING.............................................|netrw-write|
      SOURCING............................................|netrw-source|
      DIRECTORY LISTING...................................|netrw-dirlist|
      CHANGING THE USERID AND PASSWORD....................|netrw-chgup|
      VARIABLES AND SETTINGS..............................|netrw-variables|
      PATHS...............................................|netrw-path|
4.  Network-Oriented File Transfer........................|netrw-xfer|
      NETRC...............................................|netrw-netrc|
      PASSWORD............................................|netrw-passwd|
5.  Activation............................................|netrw-activate|
6.  Transparent Remote File Editing.......................|netrw-transparent|
7.  Ex Commands...........................................|netrw-ex|
8.  Variables and Options.................................|netrw-variables|
9.  Browsing..............................................|netrw-browse|
      Introduction To Browsing............................|netrw-intro-browse|
      Quick Reference: Maps...............................|netrw-browse-maps|
      Quick Reference: Commands...........................|netrw-browse-cmds|
      Banner Display......................................|netrw-I|
      Bookmarking A Directory.............................|netrw-mb|
      Browsing............................................|netrw-cr|
      Squeezing the Current Tree-Listing Directory........|netrw-s-cr|
      Browsing With A Horizontally Split Window...........|netrw-o|
      Browsing With A New Tab.............................|netrw-t|
      Browsing With A Vertically Split Window.............|netrw-v|
      Change Listing Style.(thin wide long tree)..........|netrw-i|
      Changing To A Bookmarked Directory..................|netrw-gb|
      Changing To A Predecessor Directory.................|netrw-u|
      Changing To A Successor Directory...................|netrw-U|
      Customizing Browsing With A Special Handler.........|netrw-x|
      Deleting Bookmarks..................................|netrw-mB|
      Deleting Files Or Directories.......................|netrw-D|
      Directory Exploring Commands........................|netrw-explore|
      Exploring With Stars and Patterns...................|netrw-star|
      Displaying Information About File...................|netrw-qf|
      Edit File Or Directory Hiding List..................|netrw-ctrl-h|
      Editing The Sorting Sequence........................|netrw-S|
      Forcing treatment as a file or directory............|netrw-gd| |netrw-gf|
      Going Up............................................|netrw--|
      Hiding Files Or Directories.........................|netrw-a|
      Improving Browsing..................................|netrw-ssh-hack|
      Listing Bookmarks And History.......................|netrw-qb|
      Making A New Directory..............................|netrw-d|
      Making The Browsing Directory The Current Directory.|netrw-cd|
      Marking Files.......................................|netrw-mf|
      Unmarking Files.....................................|netrw-mF|
      Marking Files By Location List......................|netrw-qL|
      Marking Files By QuickFix List......................|netrw-qF|
      Marking Files By Regular Expression.................|netrw-mr|
      Marked Files: Arbitrary Shell Command...............|netrw-mx|
      Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
      Marked Files: Arbitrary Vim Command.................|netrw-mv|
      Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
      Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
      Marked Files: Compression And Decompression.........|netrw-mz|
      Marked Files: Copying...............................|netrw-mc|
      Marked Files: Diff..................................|netrw-md|
      Marked Files: Editing...............................|netrw-me|
      Marked Files: Grep..................................|netrw-mg|
      Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
      Marked Files: Moving................................|netrw-mm|
      Marked Files: Printing..............................|netrw-mp|
      Marked Files: Sourcing..............................|netrw-ms|
      Marked Files: Setting the Target Directory..........|netrw-mt|
      Marked Files: Tagging...............................|netrw-mT|
      Marked Files: Target Directory Using Bookmarks......|netrw-Tb|
      Marked Files: Target Directory Using History........|netrw-Th|
      Marked Files: Unmarking.............................|netrw-mu|
      Netrw Browser Variables.............................|netrw-browser-var|
      Netrw Browsing And Option Incompatibilities.........|netrw-incompatible|
      Netrw Settings Window...............................|netrw-settings-window|
      Obtaining A File....................................|netrw-O|
      Preview Window......................................|netrw-p|
      Previous Window.....................................|netrw-P|
      Refreshing The Listing..............................|netrw-ctrl-l|
      Reversing Sorting Order.............................|netrw-r|
      Renaming Files Or Directories.......................|netrw-R|
      Selecting Sorting Style.............................|netrw-s|
      Setting Editing Window..............................|netrw-C|
10. Problems and Fixes....................................|netrw-problems|
11. Debugging Netrw Itself................................|netrw-debug|
12. History...............................................|netrw-history|
13. Todo..................................................|netrw-todo|
14. Credits...............................................|netrw-credits|

{Vi does not have any of this}

==============================================================================
2. Starting With Netrw					*netrw-start* {{{1

Netrw makes reading files, writing files, browsing over a network, and
local browsing easy!  First, make sure that you have plugins enabled, so
you'll need to have at least the following in your <.vimrc>:
(or see |netrw-activate|) >

	set nocp                    " 'compatible' is not set
	filetype plugin on          " plugins are enabled
<
(see |'cp'| and |:filetype-plugin-on|)

Netrw supports "transparent" editing of files on other machines using urls
(see |netrw-transparent|). As an example of this, let's assume you have an
account on some other machine; if you can use scp, try: >

	vim scp://hostname/path/to/file
<
Want to make ssh/scp easier to use? Check out |netrw-ssh-hack|!

So, what if you have ftp, not ssh/scp?  That's easy, too; try >

	vim ftp://hostname/path/to/file
<
Want to make ftp simpler to use?  See if your ftp supports a file called
<.netrc> -- typically it goes in your home directory, has read/write
permissions for only the user to read (ie. not group, world, other, etc),
and has lines resembling >

	machine HOSTNAME login USERID password "PASSWORD"
	machine HOSTNAME login USERID password "PASSWORD"
	...
	default          login USERID password "PASSWORD"
<
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\MyUserName\MACHINE'
<
Netrw will substitute the host's machine name for "MACHINE" from the URL it is
attempting to open, and so one may specify >
	userid
	password
for each site in a separate file: c:\Users\MyUserName\MachineName.

Now about browsing -- when you just want to look around before editing a
file.  For browsing on your current host, just "edit" a directory: >

	vim .
	vim /home/userid/path
<
For browsing on a remote host, "edit" a directory (but make sure that
the directory name is followed by a "/"): >

	vim scp://hostname/
	vim ftp://hostname/path/to/dir/
<
See |netrw-browse| for more!

There are more protocols supported by netrw than just scp and ftp, too: see the
next section, |netrw-externapp|, on how to use these external applications with
netrw and vim.

PREVENTING LOADING					*netrw-noload*

If you want to use plugins, but for some reason don't wish to use netrw, then
you need to avoid loading both the plugin and the autoload portions of netrw.
You may do so by placing the following two lines in your <.vimrc>: >

	:let g:loaded_netrw       = 1
	:let g:loaded_netrwPlugin = 1
<

==============================================================================
3. Netrw Reference					*netrw-ref* {{{1

   Netrw supports several protocols in addition to scp and ftp as mentioned
   in |netrw-start|.  These include dav, fetch, http,... well, just look
   at the list in |netrw-externapp|.  Each protocol is associated with a
   variable which holds the default command supporting that protocol.

EXTERNAL APPLICATIONS AND PROTOCOLS			*netrw-externapp* {{{2

	Protocol  Variable	       Default Value
	--------  ----------------     -------------
	   dav:   *g:netrw_dav_cmd*      = "cadaver"    if cadaver is executable
	   dav:   g:netrw_dav_cmd      = "curl -o"    elseif curl is available
	 fetch:   *g:netrw_fetch_cmd*    = "fetch -o"   if fetch is available
	   ftp:   *g:netrw_ftp_cmd*      = "ftp"
	  http:   *g:netrw_http_cmd*     = "elinks"     if   elinks  is available
	  http:   g:netrw_http_cmd     = "links"      elseif links is available
	  http:   g:netrw_http_cmd     = "curl"       elseif curl  is available
	  http:   g:netrw_http_cmd     = "wget"       elseif wget  is available
          http:   g:netrw_http_cmd     = "fetch"      elseif fetch is available
	  http:   *g:netrw_http_put_cmd* = "curl -T"
	   rcp:   *g:netrw_rcp_cmd*      = "rcp"
	 rsync:   *g:netrw_rsync_cmd*    = "rsync"     (see |g:netrw_rsync_sep|)
	   scp:   *g:netrw_scp_cmd*      = "scp -q"
	  sftp:   *g:netrw_sftp_cmd*     = "sftp"
	  file:   *g:netrw_file_cmd*     = "elinks" or "links"

	*g:netrw_http_xcmd* : the option string for http://... protocols are
	specified via this variable and may be independently overridden.  By
	default, the option arguments for the http-handling commands are: >

		    elinks : "-source >"
		    links  : "-dump >"
		    curl   : "-L -o"
		    wget   : "-q -O"
		    fetch  : "-o"
<
	For example, if your system has elinks, and you'd rather see the
	page using an attempt at rendering the text, you may wish to have >
		let g:netrw_http_xcmd= "-dump >"
<	in your .vimrc.

	g:netrw_http_put_cmd: this option specifies both the executable and
	any needed options.  This command does a PUT operation to the url.


READING						*netrw-read* *netrw-nread* {{{2

	Generally, one may just use the URL notation with a normal editing
	command, such as >

		:e ftp://[user@]machine/path
<
	Netrw also provides the Nread command:

	:Nread ?					give help
	:Nread "machine:path"				uses rcp
	:Nread "machine path"				uses ftp w/ <.netrc>
	:Nread "machine id password path"		uses ftp
	:Nread "dav://machine[:port]/path"		uses cadaver
	:Nread "fetch://[user@]machine/path"		uses fetch
	:Nread "ftp://[user@]machine[[:#]port]/path"	uses ftp w/ <.netrc>
	:Nread "http://[user@]machine/path"		uses http  uses wget
	:Nread "rcp://[user@]machine/path"		uses rcp
	:Nread "rsync://[user@]machine[:port]/path"	uses rsync
	:Nread "scp://[user@]machine[[:#]port]/path"	uses scp
	:Nread "sftp://[user@]machine/path"		uses sftp

WRITING					*netrw-write* *netrw-nwrite* {{{2

	One may just use the URL notation with a normal file writing
	command, such as >

		:w ftp://[user@]machine/path
<
	Netrw also provides the Nwrite command:

	:Nwrite ?					give help
	:Nwrite "machine:path"				uses rcp
	:Nwrite "machine path"				uses ftp w/ <.netrc>
	:Nwrite "machine id password path"		uses ftp
	:Nwrite "dav://machine[:port]/path"		uses cadaver
	:Nwrite "ftp://[user@]machine[[:#]port]/path"	uses ftp w/ <.netrc>
	:Nwrite "rcp://[user@]machine/path"		uses rcp
	:Nwrite "rsync://[user@]machine[:port]/path"	uses rsync
	:Nwrite "scp://[user@]machine[[:#]port]/path"	uses scp
	:Nwrite "sftp://[user@]machine/path"		uses sftp
	http: not supported!

SOURCING					*netrw-source* {{{2

	One may just use the URL notation with the normal file sourcing
	command, such as >

		:so ftp://[user@]machine/path
<
	Netrw also provides the Nsource command:

	:Nsource ?					give help
	:Nsource "dav://machine[:port]/path"		uses cadaver
	:Nsource "fetch://[user@]machine/path"		uses fetch
	:Nsource "ftp://[user@]machine[[:#]port]/path"	uses ftp w/ <.netrc>
	:Nsource "http://[user@]machine/path"		uses http  uses wget
	:Nsource "rcp://[user@]machine/path"		uses rcp
	:Nsource "rsync://[user@]machine[:port]/path"	uses rsync
	:Nsource "scp://[user@]machine[[:#]port]/path"	uses scp
	:Nsource "sftp://[user@]machine/path"		uses sftp

DIRECTORY LISTING		*netrw-trailingslash* *netrw-dirlist* {{{2

	One may browse a directory to get a listing by simply attempting to
	edit the directory: >

		:e scp://[user]@hostname/path/
		:e ftp://[user]@hostname/path/
<
	For remote directory listings (ie. those using scp or ftp), that
	trailing "/" is necessary (the slash tells netrw to treat the argument
	as a directory to browse instead of as a file to download).

	The Nread command may also be used to accomplish this (again, that
	trailing slash is necessary): >

		:Nread [protocol]://[user]@hostname/path/
<
					*netrw-login* *netrw-password*
CHANGING USERID AND PASSWORD		*netrw-chgup* *netrw-userpass* {{{2

	Attempts to use ftp will prompt you for a user-id and a password.
	These will be saved in global variables |g:netrw_uid| and
	|s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
	thereby simplifying use of ftp.  However, if you need to use a
	different user id and/or password, you'll want to call |NetUserPass()|
	first.  To work around the need to enter passwords, check if your ftp
	supports a <.netrc> file in your home directory.  Also see
	|netrw-passwd| (and if you're using ssh/scp hoping to figure out how
	to not need to use passwords for scp, look at |netrw-ssh-hack|).

	:NetUserPass [uid [password]]		-- prompts as needed
	:call NetUserPass()			-- prompts for uid and password
	:call NetUserPass("uid")		-- prompts for password
	:call NetUserPass("uid","password")	-- sets global uid and password

(Related topics: |ftp| |netrw-userpass| |netrw-start|)

NETRW VARIABLES AND SETTINGS				*netrw-variables* {{{2
    (Also see:
    |netrw-browser-var|     : netrw browser option variables
    |netrw-protocol|        : file transfer protocol option variables
    |netrw-settings|        : additional file transfer options
    |netrw-browser-options| : these options affect browsing directories
    )

Netrw provides a lot of variables which allow you to customize netrw to your
preferences.  One way to look at them is via the command :NetrwSettings (see
|netrw-settings|) which will display your current netrw settings.  Most such
settings are described below, in |netrw-browser-options|, and in
|netrw-externapp|:

 *b:netrw_lastfile*	last file Network-read/written retained on a
			per-buffer basis (supports plain :Nw )

 *g:netrw_bufsettings*	the settings that netrw buffers have
			(default) noma nomod nonu nowrap ro nobl

 *g:netrw_chgwin*	specifies a window number where subsequent file edits
			will take place.  (also see |netrw-C|)
			(default) -1

 *g:Netrw_funcref*	specifies a function (or functions) to be called when
			netrw edits a file.  The file is first edited, and
			then the function reference (|Funcref|) is called.
			This variable may also hold a |List| of Funcrefs.
			(default) not defined.  (the capital in g:Netrw...
			is required by its holding a function reference)
>
			    Example: place in .vimrc; affects all file opening
			    fun! MyFuncRef()
			    endfun
			    let g:Netrw_funcref= function("MyFuncRef")

<
 *g:Netrw_UserMaps*	specifies a function or |List| of functions which can
			be used to set up user-specified maps and functionality.
			See |netrw-usermaps|

 *g:netrw_ftp*		   if it doesn't exist, use default ftp
			=0 use default ftp		       (uid password)
			=1 use alternate ftp method	  (user uid password)
			   If you're having trouble with ftp, try changing the
			   value of this variable to see if the alternate ftp
			   method works for your setup.

 *g:netrw_ftp_options*     Chosen by default, these options are supposed to
			 turn interactive prompting off and to restrain ftp
			 from attempting auto-login upon initial connection.
			 However, it appears that not all ftp implementations
			 support this (ex. ncftp).
		        ="-i -n"

 *g:netrw_ftpextracmd*	default: doesn't exist
			If this variable exists, then any string it contains
			will be placed into the commands set to your ftp
			client.  As an example:
			   ="passive"

 *g:netrw_ftpmode*	="binary"				    (default)
			="ascii"

 *g:netrw_ignorenetrc*	=0 (default for linux, cygwin)
			=1 If you have a <.netrc> file but it doesn't work and
			   you want it ignored, then set this variable as
			   shown. (default for Windows + cmd.exe)

 *g:netrw_menu*		=0 disable netrw's menu
			=1 (default) netrw's menu enabled

 *g:netrw_nogx*		if this variable exists, then the "gx" map will not
			be available (see |netrw-gx|)

 *g:netrw_uid*		(ftp) user-id,      retained on a per-vim-session basis
 *s:netrw_passwd*	(ftp) password,     retained on a per-vim-session basis

 *g:netrw_preview*	=0 (default) preview window shown in a horizontally
			   split window
			=1 preview window shown in a vertically split window.
			   Also affects the "previous window" (see |netrw-P|)
			   in the same way.
			The |g:netrw_alto| variable may be used to provide
			additional splitting control:
				g:netrw_preview g:netrw_alto result
				         0             0     |:aboveleft|
				         0             1     |:belowright|
				         1             0     |:topleft|
				         1             1     |:botright|
			To control sizing, see |g:netrw_winsize|

 *g:netrw_scpport*	= "-P" : option to use to set port for scp
 *g:netrw_sshport*	= "-p" : option to use to set port for ssh

 *g:netrw_sepchr*	=\0xff
			=\0x01 for enc == euc-jp (and perhaps it should be for
			   others, too, please let me know)
			   Separates priority codes from filenames internally.
			   See |netrw-p12|.

  *g:netrw_silent*	=0 : transfers done normally
			=1 : transfers done silently

 *g:netrw_use_errorwindow* =1 : messages from netrw will use a separate one
			      line window.  This window provides reliable
			      delivery of messages. (default)
			 =0 : messages from netrw will use echoerr ;
			      messages don't always seem to show up this
			      way, but one doesn't have to quit the window.

 *g:netrw_win95ftp*	=1 if using Win95, will remove four trailing blank
			   lines that o/s's ftp "provides" on transfers
			=0 force normal ftp behavior (no trailing line removal)

 *g:netrw_cygwin*	=1 assume scp under windows is from cygwin. Also
			   permits network browsing to use ls with time and
			   size sorting (default if windows)
			=0 assume Windows' scp accepts windows-style paths
			   Network browsing uses dir instead of ls
			   This option is ignored if you're using unix

 *g:netrw_use_nt_rcp*	=0 don't use the rcp of WinNT, Win2000 and WinXP
			=1 use WinNT's rcp in binary mode         (default)

PATHS							*netrw-path* {{{2

Paths to files are generally user-directory relative for most protocols.
It is possible that some protocol will make paths relative to some
associated directory, however.
>
	example:  vim scp://user@host/somefile
	example:  vim scp://user@host/subdir1/subdir2/somefile
<
where "somefile" is in the "user"'s home directory.  If you wish to get a
file using root-relative paths, use the full path:
>
	example:  vim scp://user@host//somefile
	example:  vim scp://user@host//subdir1/subdir2/somefile
<

==============================================================================
4. Network-Oriented File Transfer			*netrw-xfer* {{{1

Network-oriented file transfer under Vim is implemented by a vim script
(<netrw.vim>) using plugin techniques.  It currently supports both reading and
writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
dav/cadaver, rsync, or sftp.

http is currently supported read-only via use of wget or fetch.

<netrw.vim> is a standard plugin which acts as glue between Vim and the
various file transfer programs.  It uses autocommand events (BufReadCmd,
FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >

	ex. vim ftp://hostname/path/to/file
<
The characters preceding the colon specify the protocol to use; in the
example, it's ftp.  The <netrw.vim> script then formulates a command or a
series of commands (typically ftp) which it issues to an external program
(ftp, scp, etc) which does the actual file transfer/protocol.  Files are read
from/written to a temporary file (under Unix/Linux, /tmp/...) which the
<netrw.vim> script will clean up.

Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
ftp is not a secure protocol.  User names and passwords are transmitted "in
the clear" over the internet; any snooper tool can pick these up; this is not
a netrw thing, this is a ftp thing.  If you're concerned about this, please
try to use scp or sftp instead.

Netrw re-uses the user id and password during the same vim session and so long
as the remote hostname remains the same.

Jan seems to be a bit confused about how netrw handles ftp; normally multiple
commands are performed in a "ftp session", and he seems to feel that the
uid/password should only be retained over one ftp session.  However, netrw
does every ftp operation in a separate "ftp session"; so remembering the
uid/password for just one "ftp session" would be the same as not remembering
the uid/password at all.  IMHO this would rapidly grow tiresome as one
browsed remote directories, for example.

On the other hand, thanks go to Jan M. for pointing out the many
vulnerabilities that netrw (and vim itself) had had in handling "crafted"
filenames.  The |shellescape()| and |fnameescape()| functions were written in
response by Bram Moolenaar to handle these sort of problems, and netrw has
been modified to use them.  Still, my advice is, if the "filename" looks like
a vim command that you aren't comfortable with having executed, don't open it.

				*netrw-putty* *netrw-pscp* *netrw-psftp*
One may modify any protocol's implementing external application by setting a
variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
"scp -q").  As an example, consider using PuTTY: >

	let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
	let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
<
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
       doesn't work, so its best to leave it off for that system)

See |netrw-p8| for more about putty, pscp, psftp, etc.

Ftp, an old protocol, seems to be blessed by numerous implementations.
Unfortunately, some implementations are noisy (ie., add junk to the end of the
file).  Thus, concerned users may decide to write a NetReadFixup() function
that will clean up after reading with their ftp.  Some Unix systems (ie.,
FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
not noisy and more convenient, actually, for <netrw.vim> to use.
Consequently, if "fetch" is available (ie. executable), it may be preferable
to use it for ftp://... based transfers.

For rcp, scp, sftp, and http, one may use network-oriented file transfers
transparently; ie.
>
	vim rcp://[user@]machine/path
	vim scp://[user@]machine/path
<
If your ftp supports <.netrc>, then it too can be transparently used
if the needed triad of machine name, user id, and password are present in
that file.  Your ftp must be able to use the <.netrc> file on its own, however.
>
	vim ftp://[user@]machine[[:#]portnumber]/path
<
Windows provides an ftp (typically c:\Windows\System32\ftp.exe) which uses
an option, -s:filename (filename can and probably should be a full path)
which contains ftp commands which will be automatically run whenever ftp
starts.  You may use this feature to enter a user and password for one site: >
	userid
	password
<				*netrw-windows-netrc*  *netrw-windows-s*
If |g:netrw_ftp_cmd| contains -s:[path/]MACHINE, then (on Windows machines
only) netrw will substitute the current machine name requested for ftp
connections for MACHINE.  Hence one can have multiple machine.ftp files
containing login and password for ftp.  Example: >

    let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
    vim ftp://myhost.somewhere.net/

will use a file >

	C:\Users\Myself\myhost.ftp
<
Often, ftp will need to query the user for the userid and password.
The latter will be done "silently"; ie. asterisks will show up instead of
the actually-typed-in password.  Netrw will retain the userid and password
for subsequent read/writes from the most recent transfer so subsequent
transfers (read/write) to or from that machine will take place without
additional prompting.

								*netrw-urls*
  +=================================+============================+============+
  |  Reading                        | Writing                    |  Uses      |
  +=================================+============================+============+
  | DAV:                            |                            |            |
  |  dav://host/path                |                            | cadaver    |
  |  :Nread dav://host/path         | :Nwrite dav://host/path    | cadaver    |
  +---------------------------------+----------------------------+------------+
  | DAV + SSL:                      |                            |            |
  |  davs://host/path               |                            | cadaver    |
  |  :Nread davs://host/path        | :Nwrite davs://host/path   | cadaver    |
  +---------------------------------+----------------------------+------------+
  | FETCH:                          |                            |            |
  |  fetch://[user@]host/path       |                            |            |
  |  fetch://[user@]host:http/path  |  Not Available             | fetch      |
  |  :Nread fetch://[user@]host/path|                            |            |
  +---------------------------------+----------------------------+------------+
  | FILE:                           |                            |            |
  |  file:///*                      | file:///*                  |            |
  |  file://localhost/*             | file://localhost/*         |            |
  +---------------------------------+----------------------------+------------+
  | FTP:          (*3)              |              (*3)          |            |
  |  ftp://[user@]host/path         | ftp://[user@]host/path     | ftp  (*2)  |
  |  :Nread ftp://host/path         | :Nwrite ftp://host/path    | ftp+.netrc |
  |  :Nread host path               | :Nwrite host path          | ftp+.netrc |
  |  :Nread host uid pass path      | :Nwrite host uid pass path | ftp        |
  +---------------------------------+----------------------------+------------+
  | HTTP: wget is executable: (*4)  |                            |            |
  |  http://[user@]host/path        |        Not Available       | wget       |
  +---------------------------------+----------------------------+------------+
  | HTTP: fetch is executable (*4)  |                            |            |
  |  http://[user@]host/path        |        Not Available       | fetch      |
  +---------------------------------+----------------------------+------------+
  | RCP:                            |                            |            |
  |  rcp://[user@]host/path         | rcp://[user@]host/path     | rcp        |
  +---------------------------------+----------------------------+------------+
  | RSYNC:                          |                            |            |
  |  rsync://[user@]host/path       | rsync://[user@]host/path   | rsync      |
  |  :Nread rsync://host/path       | :Nwrite rsync://host/path  | rsync      |
  |  :Nread rcp://host/path         | :Nwrite rcp://host/path    | rcp        |
  +---------------------------------+----------------------------+------------+
  | SCP:                            |                            |            |
  |  scp://[user@]host/path         | scp://[user@]host/path     | scp        |
  |  :Nread scp://host/path         | :Nwrite scp://host/path    | scp  (*1)  |
  +---------------------------------+----------------------------+------------+
  | SFTP:                           |                            |            |
  |  sftp://[user@]host/path        | sftp://[user@]host/path    | sftp       |
  |  :Nread sftp://host/path        | :Nwrite sftp://host/path   | sftp  (*1) |
  +=================================+============================+============+

	(*1) For an absolute path use scp://machine//path.

	(*2) if <.netrc> is present, it is assumed that it will
	work with your ftp client.  Otherwise the script will
	prompt for user-id and password.

        (*3) for ftp, "machine" may be machine#port or machine:port
	if a different port is needed than the standard ftp port

	(*4) for http:..., if wget is available it will be used.  Otherwise,
	if fetch is available it will be used.

Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.


NETRC							*netrw-netrc*

The <.netrc> file, typically located in your home directory, contains lines
therein which map a hostname (machine name) to the user id and password you
prefer to use with it.

The typical syntax for lines in a <.netrc> file is given as shown below.
Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't.
>
	machine {full machine name} login {user-id} password "{password}"
	default login {user-id} password "{password}"

Your ftp client must handle the use of <.netrc> on its own, but if the
<.netrc> file exists, an ftp transfer will not ask for the user-id or
password.

	Note:
	Since this file contains passwords, make very sure nobody else can
	read this file!  Most programs will refuse to use a .netrc that is
	readable for others.  Don't forget that the system administrator can
	still read the file!  Ie. for Linux/Unix: chmod 600 .netrc

Even though Windows' ftp clients typically do not support .netrc, netrw has
a work-around: see |netrw-windows-s|.


PASSWORD						*netrw-passwd*

The script attempts to get passwords for ftp invisibly using |inputsecret()|,
a built-in Vim function.  See |netrw-userpass| for how to change the password
after one has set it.

Unfortunately there doesn't appear to be a way for netrw to feed a password to
scp.  Thus every transfer via scp will require re-entry of the password.
However, |netrw-ssh-hack| can help with this problem.


==============================================================================
5. Activation						*netrw-activate* {{{1

Network-oriented file transfers are available by default whenever Vim's
|'nocompatible'| mode is enabled.  Netrw's script files reside in your
system's plugin, autoload, and syntax directories; just the
plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
vim.  The main script in autoload/netrw.vim is only loaded when you actually
use netrw.  I suggest that, at a minimum, you have at least the following in
your <.vimrc> customization file: >

	set nocp
	if version >= 600
	  filetype plugin indent on
	endif
<
By also including the following lines in your .vimrc, one may have netrw
immediately activate when using [g]vim without any filenames, showing the
current directory: >

	" Augroup VimStartup:
	augroup VimStartup
	  au!
	  au VimEnter * if expand("%") == "" | e . | endif
	augroup END
<

==============================================================================
6. Transparent Remote File Editing		*netrw-transparent* {{{1

Transparent file transfers occur whenever a regular file read or write
(invoked via an |:autocmd| for |BufReadCmd|, |BufWriteCmd|, or |SourceCmd|
events) is made.  Thus one may read, write, or source  files across networks
just as easily as if they were local files! >

	vim ftp://[user@]machine/path
	...
	:wq

See |netrw-activate| for more on how to encourage your vim to use plugins
such as netrw.


==============================================================================
7. Ex Commands						*netrw-ex* {{{1

The usual read/write commands are supported.  There are also a few
additional commands available.  Often you won't need to use Nwrite or
Nread as shown in |netrw-transparent| (ie. simply use >
  :e URL
  :r URL
  :w URL
instead, as appropriate) -- see |netrw-urls|.  In the explanations
below, a {netfile} is a URL to a remote file.

						*:Nwrite*  *:Nw*
:[range]Nw[rite]	Write the specified lines to the current
		file as specified in b:netrw_lastfile.
		(related: |netrw-nwrite|)

:[range]Nw[rite] {netfile} [{netfile}]...
		Write the specified lines to the {netfile}.

						*:Nread*   *:Nr*
:Nr[ead]	Read the lines from the file specified in b:netrw_lastfile
		into the current buffer.  (related: |netrw-nread|)

:Nr[ead] {netfile} {netfile}...
		Read the {netfile} after the current line.

						*:Nsource* *:Ns*
:Ns[ource] {netfile}
		Source the {netfile}.
		To start up vim using a remote .vimrc, one may use
		the following (all on one line) (tnx to Antoine Mechelynck) >
		vim -u NORC -N
		 --cmd "runtime plugin/netrwPlugin.vim"
		 --cmd "source scp://HOSTNAME/.vimrc"
<		 (related: |netrw-source|)

:call NetUserPass()				*NetUserPass()*
		If g:netrw_uid and s:netrw_passwd don't exist,
		this function will query the user for them.
		(related: |netrw-userpass|)

:call NetUserPass("userid")
		This call will set the g:netrw_uid and, if
		the password doesn't exist, will query the user for it.
		(related: |netrw-userpass|)

:call NetUserPass("userid","passwd")
		This call will set both the g:netrw_uid and s:netrw_passwd.
		The user-id and password are used by ftp transfers.  One may
		effectively remove the user-id and password by using empty
		strings (ie. "").
		(related: |netrw-userpass|)

:NetrwSettings  This command is described in |netrw-settings| -- used to
                display netrw settings and change netrw behavior.


==============================================================================
8. Variables and Options		*netrw-var* *netrw-settings* {{{1

(also see: |netrw-options| |netrw-variables| |netrw-protocol|
           |netrw-browser-settings| |netrw-browser-options| )

The <netrw.vim> script provides several variables which act as options to
affect <netrw.vim>'s file transfer behavior.  These variables typically may be
set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
						*netrw-options*
>
                        -------------
                        Netrw Options
                        -------------
	Option			Meaning
	--------------		-----------------------------------------------
<
        b:netrw_col             Holds current cursor position (during NetWrite)
        g:netrw_cygwin          =1 assume scp under windows is from cygwin
                                                              (default/windows)
                                =0 assume scp under windows accepts windows
                                   style paths                (default/else)
        g:netrw_ftp             =0 use default ftp            (uid password)
        g:netrw_ftpmode         ="binary"                     (default)
                                ="ascii"                      (your choice)
	g:netrw_ignorenetrc     =1                            (default)
	                           if you have a <.netrc> file but you don't
				   want it used, then set this variable.  Its
				   mere existence is enough to cause <.netrc>
				   to be ignored.
        b:netrw_lastfile        Holds latest method/machine/path.
        b:netrw_line            Holds current line number     (during NetWrite)
	g:netrw_silent          =0 transfers done normally
	                        =1 transfers done silently
        g:netrw_uid             Holds current user-id for ftp.
        g:netrw_use_nt_rcp      =0 don't use WinNT/2K/XP's rcp (default)
                                =1 use WinNT/2K/XP's rcp, binary mode
        g:netrw_win95ftp        =0 use unix-style ftp even if win95/98/ME/etc
                                =1 use default method to do ftp >
	-----------------------------------------------------------------------
<
						*netrw-internal-variables*
The script will also make use of the following variables internally, albeit
temporarily.
>
			     -------------------
			     Temporary Variables
			     -------------------
	Variable		Meaning
	--------		------------------------------------
<
	b:netrw_method		Index indicating rcp/ftp+.netrc/ftp
	w:netrw_method		(same as b:netrw_method)
	g:netrw_machine		Holds machine name parsed from input
	b:netrw_fname		Holds filename being accessed >
	------------------------------------------------------------
<
							*netrw-protocol*

Netrw supports a number of protocols.  These protocols are invoked using the
variables listed below, and may be modified by the user.
>
			   ------------------------
                           Protocol Control Options
			   ------------------------
    Option            Type        Setting         Meaning
    ---------         --------    --------------  ---------------------------
<    netrw_ftp         variable    =doesn't exist  userid set by "user userid"
                                  =0              userid set by "user userid"
                                  =1              userid set by "userid"
    NetReadFixup      function    =doesn't exist  no change
                                  =exists         Allows user to have files
                                                  read via ftp automatically
                                                  transformed however they wish
                                                  by NetReadFixup()
    g:netrw_dav_cmd      var   ="cadaver"      if cadaver  is executable
    g:netrw_dav_cmd      var   ="curl -o"      elseif curl is executable
    g:netrw_fetch_cmd    var   ="fetch -o"     if fetch is available
    g:netrw_ftp_cmd      var   ="ftp"
    g:netrw_http_cmd     var   ="fetch -o"     if      fetch is available
    g:netrw_http_cmd     var   ="wget -O"      else if wget  is available
    g:netrw_http_put_cmd var   ="curl -T"
    |g:netrw_list_cmd|     var   ="ssh USEPORT HOSTNAME ls -Fa"
    g:netrw_rcp_cmd      var   ="rcp"
    g:netrw_rsync_cmd    var   ="rsync"
    *g:netrw_rsync_sep*    var   ="/"            used to separate the hostname
                                               from the file spec
    g:netrw_scp_cmd      var   ="scp -q"
    g:netrw_sftp_cmd     var   ="sftp" >
    -------------------------------------------------------------------------
<
								*netrw-ftp*

The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
specify the external program to use handle the ftp protocol.  They may
include command line options (such as -p for passive mode). Example: >

	let g:netrw_ftp_cmd= "ftp -p"
<
Browsing is supported by using the |g:netrw_list_cmd|; the substring
"HOSTNAME" will be changed via substitution with whatever the current request
is for a hostname.

Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's
that give trouble .  In order to best understand how to use these options if
ftp is giving you troubles, a bit of discussion is provided on how netrw does
ftp reads.

For ftp, netrw typically builds up lines of one of the following formats in a
temporary file:
>
  IF g:netrw_ftp !exists or is not 1     IF g:netrw_ftp exists and is 1
  ----------------------------------     ------------------------------
<
       open machine [port]                    open machine [port]
       user userid password                   userid password
       [g:netrw_ftpmode]                      password
       [g:netrw_ftpextracmd]                  [g:netrw_ftpmode]
       get filename tempfile                  [g:netrw_extracmd]
                                              get filename tempfile >
  ---------------------------------------------------------------------
<
The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.

Netrw then executes the lines above by use of a filter:
>
	:%! {g:netrw_ftp_cmd} -i [-n]
<
where
	g:netrw_ftp_cmd is usually "ftp",
	-i tells ftp not to be interactive
	-n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)

If <.netrc> exists it will be used to avoid having to query the user for
userid and password.  The transferred file is put into a temporary file.
The temporary file is then read into the main editing session window that
requested it and the temporary file deleted.

If your ftp doesn't accept the "user" command and immediately just demands a
userid, then try putting "let netrw_ftp=1" in your <.vimrc>.

								*netrw-cadaver*
To handle the SSL certificate dialog for untrusted servers, one may pull
down the certificate and place it into /usr/ssl/cert.pem.  This operation
renders the server treatment as "trusted".

						*netrw-fixup* *netreadfixup*
If your ftp for whatever reason generates unwanted lines (such as AUTH
messages) you may write a NetReadFixup() function:
>
    function! NetReadFixup(method,line1,line2)
      " a:line1: first new line in current file
      " a:line2: last  new line in current file
      if     a:method == 1 "rcp
      elseif a:method == 2 "ftp + <.netrc>
      elseif a:method == 3 "ftp + machine,uid,password,filename
      elseif a:method == 4 "scp
      elseif a:method == 5 "http/wget
      elseif a:method == 6 "dav/cadaver
      elseif a:method == 7 "rsync
      elseif a:method == 8 "fetch
      elseif a:method == 9 "sftp
      else               " complain
      endif
    endfunction
>
The NetReadFixup() function will be called if it exists and thus allows you to
customize your reading process.  As a further example, <netrw.vim> contains
just such a function to handle Windows 95 ftp.  For whatever reason, Windows
95's ftp dumps four blank lines at the end of a transfer, and so it is
desirable to automate their removal.  Here's some code taken from <netrw.vim>
itself:
>
    if has("win95") && g:netrw_win95ftp
     fun! NetReadFixup(method, line1, line2)
       if method == 3   " ftp (no <.netrc>)
        let fourblanklines= line2 - 3
        silent fourblanklines.",".line2."g/^\s*/d"
       endif
     endfunction
    endif
>
(Related topics: |ftp| |netrw-userpass| |netrw-start|)

==============================================================================
9. Browsing		*netrw-browsing* *netrw-browse* *netrw-help* {{{1
			*netrw-browser*  *netrw-dir*    *netrw-list*

INTRODUCTION TO BROWSING			*netrw-intro-browse* {{{2
	(Quick References: |netrw-quickmaps| |netrw-quickcoms|)

Netrw supports the browsing of directories on your local system and on remote
hosts; browsing includes listing files and directories, entering directories,
editing files therein, deleting files/directories, making new directories,
moving (renaming) files and directories, copying files and directories, etc.
One may mark files and execute any system command on them!  The Netrw browser
generally implements the previous explorer's maps and commands for remote
directories, although details (such as pertinent global variable names)
necessarily differ.  To browse a directory, simply "edit" it! >

	vim /your/directory/
	vim .
	vim c:\your\directory\
<
(Related topics: |netrw-cr|  |netrw-o|  |netrw-p| |netrw-P| |netrw-t|
                 |netrw-mf|  |netrw-mx| |netrw-D| |netrw-R| |netrw-v| )

The Netrw remote file and directory browser handles two protocols: ssh and
ftp.  The protocol in the url, if it is ftp, will cause netrw also to use ftp
in its remote browsing.  Specifying any other protocol will cause it to be
used for file transfers; but the ssh protocol will be used to do remote
browsing.

To use Netrw's remote directory browser, simply attempt to read a "file" with
a trailing slash and it will be interpreted as a request to list a directory:
>
	vim [protocol]://[user@]hostname/path/
<
where [protocol] is typically scp or ftp.  As an example, try: >

	vim ftp://ftp.home.vim.org/pub/vim/
<
For local directories, the trailing slash is not required.  Again, because it's
easy to miss: to browse remote directories, the URL must terminate with a
slash!

If you'd like to avoid entering the password repeatedly for remote directory
listings with ssh or scp, see |netrw-ssh-hack|.  To avoid password entry with
ftp, see |netrw-netrc| (if your ftp supports it).

There are several things you can do to affect the browser's display of files:

	* To change the listing style, press the "i" key (|netrw-i|).
	  Currently there are four styles: thin, long, wide, and tree.
	  To make that change "permanent", see |g:netrw_liststyle|.

	* To hide files (don't want to see those xyz~ files anymore?) see
	  |netrw-ctrl-h|.

	* Press s to sort files by name, time, or size.

See |netrw-browse-cmds| for all the things you can do with netrw!

			*netrw-getftype* *netrw-filigree* *netrw-ftype*
The |getftype()| function is used to append a bit of filigree to indicate
filetype to locally listed files:

	directory  : /
	executable : *
	fifo       : |
	links      : @
	sockets    : =

The filigree also affects the |g:netrw_sort_sequence|.


QUICK HELP						*netrw-quickhelp* {{{2
                       (Use ctrl-] to select a topic)~
	Intro to Browsing...............................|netrw-intro-browse|
	  Quick Reference: Maps.........................|netrw-quickmap|
	  Quick Reference: Commands.....................|netrw-browse-cmds|
	Hiding
	  Edit hiding list..............................|netrw-ctrl-h|
	  Hiding Files or Directories...................|netrw-a|
	  Hiding/Unhiding by suffix.....................|netrw-mh|
	  Hiding  dot-files.............................|netrw-gh|
	Listing Style
	  Select listing style (thin/long/wide/tree)....|netrw-i|
	  Associated setting variable...................|g:netrw_liststyle|
	  Shell command used to perform listing.........|g:netrw_list_cmd|
	  Quick file info...............................|netrw-qf|
	Sorted by
	  Select sorting style (name/time/size).........|netrw-s|
	  Editing the sorting sequence..................|netrw-S|
	  Sorting options...............................|g:netrw_sort_options|
	  Associated setting variable...................|g:netrw_sort_sequence|
	  Reverse sorting order.........................|netrw-r|


				*netrw-quickmap* *netrw-quickmaps*
QUICK REFERENCE: MAPS				*netrw-browse-maps* {{{2
>
	  ---			-----------------			----
	  Map			Quick Explanation			Link
	  ---			-----------------			----
<	 <F1>	Causes Netrw to issue help
	 <cr>	Netrw will enter the directory or read the file      |netrw-cr|
	 <del>	Netrw will attempt to remove the file/directory      |netrw-del|
	 <c-h>	Edit file hiding list                                |netrw-ctrl-h|
	 <c-l>	Causes Netrw to refresh the directory listing        |netrw-ctrl-l|
	 <c-r>	Browse using a gvim server                           |netrw-ctrl-r|
	 <c-tab> Shrink/expand a netrw/explore window                |netrw-c-tab|
	   -	Makes Netrw go up one directory                      |netrw--|
	   a	Cycles between normal display,                       |netrw-a|
	    	hiding (suppress display of files matching g:netrw_list_hide)
	    	and showing (display only files which match g:netrw_list_hide)
	   c	Make browsing directory the current directory        |netrw-c|
	   C	Setting the editing window                           |netrw-C|
	   d	Make a directory                                     |netrw-d|
	   D	Attempt to remove the file(s)/directory(ies)         |netrw-D|
	   gb	Go to previous bookmarked directory                  |netrw-gb|
	   gd	Force treatment as directory                         |netrw-gd|
	   gf	Force treatment as file                              |netrw-gf|
	   gh	Quick hide/unhide of dot-files                       |netrw-gh|
	   gn	Make top of tree the directory below the cursor      |netrw-gn|
	   i	Cycle between thin, long, wide, and tree listings    |netrw-i|
	   I	Toggle the displaying of the banner                  |netrw-I|
	   mb	Bookmark current directory                           |netrw-mb|
	   mc	Copy marked files to marked-file target directory    |netrw-mc|
	   md	Apply diff to marked files (up to 3)                 |netrw-md|
	   me	Place marked files on arg list and edit them         |netrw-me|
	   mf	Mark a file                                          |netrw-mf|
	   mF	Unmark files                                         |netrw-mF|
	   mg	Apply vimgrep to marked files                        |netrw-mg|
	   mh	Toggle marked file suffices' presence on hiding list |netrw-mh|
	   mm	Move marked files to marked-file target directory    |netrw-mm|
	   mp	Print marked files                                   |netrw-mp|
	   mr	Mark files using a shell-style |regexp|                |netrw-mr|
	   mt	Current browsing directory becomes markfile target   |netrw-mt|
	   mT	Apply ctags to marked files                          |netrw-mT|
	   mu	Unmark all marked files                              |netrw-mu|
	   mv	Apply arbitrary vim   command to marked files        |netrw-mv|
	   mx	Apply arbitrary shell command to marked files        |netrw-mx|
	   mX	Apply arbitrary shell command to marked files en bloc|netrw-mX|
	   mz	Compress/decompress marked files                     |netrw-mz|
	   o	Enter the file/directory under the cursor in a new   |netrw-o|
	    	browser window.  A horizontal split is used.
	   O	Obtain a file specified by cursor                    |netrw-O|
	   p	Preview the file                                     |netrw-p|
	   P	Browse in the previously used window                 |netrw-P|
	   qb	List bookmarked directories and history              |netrw-qb|
	   qf	Display information on file                          |netrw-qf|
	   qF	Mark files using a quickfix list                     |netrw-qF|
	   qL	Mark files using a |location-list|                     |netrw-qL|
	   r	Reverse sorting order                                |netrw-r|
	   R	Rename the designated file(s)/directory(ies)         |netrw-R|
	   s	Select sorting style: by name, time, or file size    |netrw-s|
	   S	Specify suffix priority for name-sorting             |netrw-S|
	   t	Enter the file/directory under the cursor in a new tab|netrw-t|
	   u	Change to recently-visited directory                 |netrw-u|
	   U	Change to subsequently-visited directory             |netrw-U|
	   v	Enter the file/directory under the cursor in a new   |netrw-v|
	    	browser window.  A vertical split is used.
	   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-%|

	*netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
	<leftmouse>	(gvim only) selects word under mouse as if a <cr>
			had been pressed (ie. edit file, change directory)
	<middlemouse>	(gvim only) same as P selecting word under mouse;
			see |netrw-P|
	<rightmouse>	(gvim only) delete file/directory using word under
			mouse
	<2-leftmouse>	(gvim only) when:
			 * in a netrw-selected file, AND
			 * |g:netrw_retmap| == 1       AND
			 * the user doesn't already have a <2-leftmouse>
			   mapping defined before netrw is autoloaded,
			then a double clicked leftmouse button will return
			to the netrw browser window.  See |g:netrw_retmap|.
	<s-leftmouse>	(gvim only) like mf, will mark files.  Dragging
			the shifted leftmouse will mark multiple files.
			(see |netrw-mf|)

	(to disable mouse buttons while browsing: |g:netrw_mousemaps|)

				*netrw-quickcom* *netrw-quickcoms*
QUICK REFERENCE: COMMANDS	*netrw-explore-cmds* *netrw-browse-cmds* {{{2
     :NetrwClean[!]............................................|netrw-clean|
     :NetrwSettings............................................|netrw-settings|
     :Ntree....................................................|netrw-ntree|
     :Explore[!]  [dir] Explore directory of current file......|netrw-explore|
     :Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
     :Lexplore[!] [dir] Left Explorer Toggle...................|netrw-explore|
     :Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
     :Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
     :Rexplore          Return to Explorer.....................|netrw-explore|
     :Sexplore[!] [dir] Split & Explore directory .............|netrw-explore|
     :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
     :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|


BANNER DISPLAY						*netrw-I*

One may toggle the displaying of the banner by pressing "I".

Also See: |g:netrw_banner|


BOOKMARKING A DIRECTORY		*netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2

One may easily "bookmark" the currently browsed directory by using >

	mb
<
								*.netrwbook*
Bookmarks are retained in between sessions of vim in a file called .netrwbook
as a |List|, which is typically stored in the first directory on the user's
'|runtimepath|'; entries are kept in sorted order.

If there are marked files and/or directories, mb will add them to the bookmark
list.

								*netrw-:NetrwMB*
Addtionally, one may use :NetrwMB to bookmark files or directories. >

	:NetrwMB[!] [files/directories]

< No bang: enters files/directories into Netrw's bookmark system

   No argument and in netrw buffer:
     if there are marked files        : bookmark marked files
     otherwise                        : bookmark file/directory under cursor
   No argument and not in netrw buffer: bookmarks current open file
   Has arguments                      : |glob()|s each arg and bookmarks them

 With bang: deletes files/directories from Netrw's bookmark system

The :NetrwMB command is available outside of netrw buffers (once netrw has been
invoked in the session).

The file ".netrwbook" holds bookmarks when netrw (and vim) is not active.  By
default, its stored on the first directory on the user's |'runtimepath'|.

Related Topics:
	|netrw-gb| how to return (go) to a bookmark
	|netrw-mB| how to delete bookmarks
	|netrw-qb| how to list bookmarks
	|g:netrw_home| controls where .netrwbook is kept


BROWSING					*netrw-enter*	*netrw-cr* {{{2

Browsing is simple: move the cursor onto a file or directory of interest.
Hitting the <cr> (the return key) will select the file or directory.
Directories will themselves be listed, and files will be opened using the
protocol given in the original read request.

  CAVEAT: There are four forms of listing (see |netrw-i|).  Netrw assumes that
  two or more spaces delimit filenames and directory names for the long and
  wide listing formats.  Thus, if your filename or directory name has two or
  more sequential spaces embedded in it, or any trailing spaces, then you'll
  need to use the "thin" format to select it.

The |g:netrw_browse_split| option, which is zero by default, may be used to
cause the opening of files to be done in a new window or tab instead of the
default.  When the option is one or two, the splitting will be taken
horizontally or vertically, respectively.  When the option is set to three, a
<cr> will cause the file to appear in a new tab.


When using the gui (gvim), one may select a file by pressing the <leftmouse>
button.  In addition, if

 * |g:netrw_retmap| == 1       AND   (its default value is 0)
 * in a netrw-selected file, AND
 * the user doesn't already have a <2-leftmouse> mapping defined before
   netrw is loaded

then a doubly-clicked leftmouse button will return to the netrw browser
window.

Netrw attempts to speed up browsing, especially for remote browsing where one
may have to enter passwords, by keeping and re-using previously obtained
directory listing buffers.  The |g:netrw_fastbrowse| variable is used to
control this behavior; one may have slow browsing (no buffer re-use), medium
speed browsing (re-use directory buffer listings only for remote directories),
and fast browsing (re-use directory buffer listings as often as possible).
The price for such re-use is that when changes are made (such as new files
are introduced into a directory), the listing may become out-of-date.  One may
always refresh directory listing buffers by pressing ctrl-L (see
|netrw-ctrl-l|).

								*netrw-s-cr*
Squeezing the Current Tree-Listing Directory~

When the tree listing style is enabled (see |netrw-i|) and one is using
gvim, then the <s-cr> mapping may be used to squeeze (close) the
directory currently containing the cursor.

Otherwise, one may remap a key combination of one's own choice to get
this effect: >

    nmap <buffer> <silent> <nowait> YOURKEYCOMBO  <Plug>NetrwTreeSqueeze
<
Put this line in $HOME/ftplugin/netrw/netrw.vim; it needs to be generated
for netrw buffers only.

Related topics:
	|netrw-ctrl-r|	|netrw-o|	|netrw-p|
	|netrw-P|	|netrw-t|	|netrw-v|
Associated setting variables:
   |g:netrw_browse_split|	|g:netrw_fastbrowse|
   |g:netrw_ftp_list_cmd|	|g:netrw_ftp_sizelist_cmd|
   |g:netrw_ftp_timelist_cmd|	|g:netrw_ssh_browse_reject|
   |g:netrw_ssh_cmd|		|g:netrw_use_noswf|


BROWSING WITH A HORIZONTALLY SPLIT WINDOW	*netrw-o* *netrw-horiz* {{{2

Normally one enters a file or directory using the <cr>.  However, the "o" map
allows one to open a new window to hold the new directory listing or file.  A
horizontal split is used.  (for vertical splitting, see |netrw-v|)

Normally, the o key splits the window horizontally with the new window and
cursor at the top.

Associated setting variables: |g:netrw_alto| |g:netrw_winsize|

Related topics:
	|netrw-ctrl-r|	|netrw-o|	|netrw-p|
	|netrw-P|	|netrw-t|	|netrw-v|
Associated setting variables:
   |g:netrw_alto|    control above/below splitting
   |g:netrw_winsize| control initial sizing

BROWSING WITH A NEW TAB				*netrw-t* {{{2

Normally one enters a file or directory using the <cr>.  The "t" map
allows one to open a new window holding the new directory listing or file in
a new tab.

If you'd like to have the new listing in a background tab, use |gT|.

Related topics:
	|netrw-ctrl-r|	|netrw-o|	|netrw-p|
	|netrw-P|	|netrw-t|	|netrw-v|
Associated setting variables:
   |g:netrw_winsize| control initial sizing

BROWSING WITH A VERTICALLY SPLIT WINDOW			*netrw-v* {{{2

Normally one enters a file or directory using the <cr>.  However, the "v" map
allows one to open a new window to hold the new directory listing or file.  A
vertical split is used.  (for horizontal splitting, see |netrw-o|)

Normally, the v key splits the window vertically with the new window and
cursor at the left.

There is only one tree listing buffer; using "v" on a displayed subdirectory
will split the screen, but the same buffer will be shown twice.

Related topics:
	|netrw-ctrl-r|	|netrw-o|	|netrw-p|
	|netrw-P|	|netrw-t|	|netrw-v|
Associated setting variables:
   |g:netrw_altv|    control right/left splitting
   |g:netrw_winsize| control initial sizing


BROWSING USING A GVIM SERVER			*netrw-ctrl-r* {{{2

One may keep a browsing gvim separate from the gvim being used to edit.
Use the <c-r> map on a file (not a directory) in the netrw browser, and it
will use a gvim server (see |g:netrw_servername|).  Subsequent use of <cr>
(see |netrw-cr|) will re-use that server for editing files.

Related topics:
	|netrw-ctrl-r|	|netrw-o|	|netrw-p|
	|netrw-P|	|netrw-t|	|netrw-v|
Associated setting variables:
	|g:netrw_servername|   : sets name of server
	|g:netrw_browse_split| : controls how <cr> will open files


CHANGE LISTING STYLE  (THIN LONG WIDE TREE)			*netrw-i* {{{2

The "i" map cycles between the thin, long, wide, and tree listing formats.

The thin listing format gives just the files' and directories' names.

The long listing is either based on the "ls" command via ssh for remote
directories or displays the filename, file size (in bytes), and the time and
date of last modification for local directories.  With the long listing
format, netrw is not able to recognize filenames which have trailing spaces.
Use the thin listing format for such files.

The wide listing format uses two or more contiguous spaces to delineate
filenames; when using that format, netrw won't be able to recognize or use
filenames which have two or more contiguous spaces embedded in the name or any
trailing spaces.  The thin listing format will, however, work with such files.
The wide listing format is the most compact.

The tree listing format has a top directory followed by files and directories
preceded by one or more "|"s, which indicate the directory depth.  One may
open and close directories by pressing the <cr> key while atop the directory
name.

One may make a preferred listing style your default; see |g:netrw_liststyle|.
As an example, by putting the following line in your .vimrc, >
	let g:netrw_liststyle= 3
the tree style will become your default listing style.

One typical way to use the netrw tree display is to: >

	vim .
	(use i until a tree display shows)
	navigate to a file
	v  (edit as desired in vertically split window)
	ctrl-w h  (to return to the netrw listing)
	P (edit newly selected file in the previous window)
	ctrl-w h  (to return to the netrw listing)
	P (edit newly selected file in the previous window)
	...etc...
<
Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
                              |g:netrw_timefmt|   |g:netrw_list_cmd|

CHANGE FILE PERMISSION						*netrw-gp* {{{2

"gp" will ask you for a new permission for the file named under the cursor.
Currently, this only works for local files.

Associated setting variables: |g:netrw_chgperm|


CHANGING TO A BOOKMARKED DIRECTORY			*netrw-gb*  {{{2

To change directory back to a bookmarked directory, use

	{cnt}gb

Any count may be used to reference any of the bookmarks.
Note that |netrw-qb| shows both bookmarks and history; to go
to a location stored in the history see |netrw-u| and |netrw-U|.

Related Topics:
	|netrw-mB| how to delete bookmarks
	|netrw-mb| how to make a bookmark
	|netrw-qb| how to list bookmarks


CHANGING TO A PREDECESSOR DIRECTORY		*netrw-u* *netrw-updir* {{{2

Every time you change to a new directory (new for the current session), netrw
will save the directory in a recently-visited directory history list (unless
|g:netrw_dirhistmax| is zero; by default, it holds ten entries).  With the "u"
map, one can change to an earlier directory (predecessor).  To do the
opposite, see |netrw-U|.

The "u" map also accepts counts to go back in the history several slots.  For
your convenience, qb (see |netrw-qb|) lists the history number which may be
used in that count.

						*.netrwhist*
See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots.  The file ".netrwhist" holds history when netrw (and vim) is not
active.  By default, its stored on the first directory on the user's
|'runtimepath'|.

Related Topics:
	|netrw-U| changing to a successor directory
	|g:netrw_home| controls where .netrwhist is kept


CHANGING TO A SUCCESSOR DIRECTORY		*netrw-U* *netrw-downdir* {{{2

With the "U" map, one can change to a later directory (successor).
This map is the opposite of the "u" map. (see |netrw-u|)  Use the
qb map to list both the bookmarks and history. (see |netrw-qb|)

The "U" map also accepts counts to go forward in the history several slots.

See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots.


CHANGING TREE TOP			*netrw-ntree*  *:Ntree*  *netrw-gn* {{{2

One may specify a new tree top for tree listings using >

	:Ntree [dirname]

Without a "dirname", the current line is used (and any leading depth
information is elided).
With a "dirname", the specified directory name is used.

The "gn" map will take the word below the cursor and use that for
changing the top of the tree listing.


NETRW CLEAN					*netrw-clean* *:NetrwClean* {{{2

With :NetrwClean one may easily remove netrw from one's home directory;
more precisely, from the first directory on your |'runtimepath'|.

With :NetrwClean!, netrw will attempt to remove netrw from all directories on
your |'runtimepath'|.  Of course, you have to have write/delete permissions
correct to do this.

With either form of the command, netrw will first ask for confirmation
that the removal is in fact what you want to do.  If netrw doesn't have
permission to remove a file, it will issue an error message.

						*netrw-gx*
CUSTOMIZING BROWSING WITH A SPECIAL HANDLER	*netrw-x* *netrw-handler* {{{2
						(also see |netrw_filehandler|)

Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
best seen with a special handler (ie. a tool provided with your computer's
operating system).  Netrw allows one to invoke such special handlers by: >

	* when Exploring, hit the "x" key
	* when editing, hit gx with the cursor atop the special filename
<	  (latter not available if the |g:netrw_nogx| variable exists)

Netrw determines which special handler by the following method:

  * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
    view files.  Examples of useful settings (place into your <.vimrc>): >

	:let g:netrw_browsex_viewer= "kfmclient exec"
<   or >
	:let g:netrw_browsex_viewer= "xdg-open"
<
    If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
    used instead (see |netrw_filehandler|).

  * for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
  * for Gnome (with gnome-open): gnome-open is used.
  * for KDE (with kfmclient)   : kfmclient is used
  * for Mac OS X               : open is used.
  * otherwise the netrwFileHandler plugin is used.

The file's suffix is used by these various approaches to determine an
appropriate application to use to "handle" these files.  Such things as
OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
*.eps) can be handled.

The gx mapping extends to all buffers; apply "gx" while atop a word and netrw
will apply a special handler to it (like "x" works when in a netrw buffer).
One may also use visual mode (see |visual-start|) to select the text that the
special handler will use.  Normally gx uses expand("<cfile>") to pick up the
text under the cursor; one may change what |expand()| uses via the
|g:netrw_gx| variable (options include "<cword>", "<cWORD>").  Note that
expand("<cfile>") depends on the |'isfname'| setting.  Alternatively, one may
select the text to be used by gx by making a visual selection (see
|visual-block|) and then pressing gx.

Associated setting variables:
	|g:netrw_gx|	control how gx picks up the text under the cursor
	|g:netrw_nogx|	prevent gx map while editing
	|g:netrw_suppress_gx_mesg| controls gx's suppression of browser messages

							*netrw_filehandler*

When |g:netrw_browsex_viewer| exists and is "-", then netrw will attempt to
handle the special file with a vim function.  The "x" map applies a function
to a file, based on its extension.  Of course, the handler function must exist
for it to be called!
>
 Ex. mypgm.html   x -> NFH_html("scp://user@host/some/path/mypgm.html")

<	Users may write their own netrw File Handler functions to
	support more suffixes with special handling.  See
	<autoload/netrwFileHandlers.vim> for examples on how to make
	file handler functions.   As an example: >

	" NFH_suffix(filename)
	fun! NFH_suffix(filename)
	..do something special with filename..
	endfun
<
These functions need to be defined in some file in your .vim/plugin
(vimfiles\plugin) directory.  Vim's function names may not have punctuation
characters (except for the underscore) in them.  To support suffices that
contain such characters, netrw will first convert the suffix using the
following table: >

    @ -> AT       ! -> EXCLAMATION    % -> PERCENT
    : -> COLON    = -> EQUAL          ? -> QUESTION
    , -> COMMA    - -> MINUS          ; -> SEMICOLON
    $ -> DOLLAR   + -> PLUS           ~ -> TILDE
<
So, for example: >

	file.rcs,v  ->  NFH_rcsCOMMAv()
<
If more such translations are necessary, please send me email: >
		NdrOchip at ScampbellPfamily.AbizM - NOSPAM
with a request.

Associated setting variable: |g:netrw_browsex_viewer|

							*netrw-curdir*
DELETING BOOKMARKS					*netrw-mB* {{{2

To delete a bookmark, use >

	{cnt}mB

If there are marked files, then mB will remove them from the
bookmark list.

Alternatively, one may use :NetrwMB! (see |netrw-:NetrwMB|). >

	:NetrwMB! [files/directories]

Related Topics:
	|netrw-gb| how to return (go) to a bookmark
	|netrw-mb| how to make a bookmark
	|netrw-qb| how to list bookmarks


DELETING FILES OR DIRECTORIES	*netrw-delete* *netrw-D* *netrw-del* {{{2

If files have not been marked with |netrw-mf|:   (local marked file list)

    Deleting/removing files and directories involves moving the cursor to the
    file/directory to be deleted and pressing "D".  Directories must be empty
    first before they can be successfully removed.  If the directory is a
    softlink to a directory, then netrw will make two requests to remove the
    directory before succeeding.  Netrw will ask for confirmation before doing
    the removal(s).  You may select a range of lines with the "V" command
    (visual selection), and then pressing "D".

If files have been marked with |netrw-mf|:   (local marked file list)

    Marked files (and empty directories) will be deleted; again, you'll be
    asked to confirm the deletion before it actually takes place.

A further approach is to delete files which match a pattern.

    * use  :MF pattern  (see |netrw-:MF|); then press "D".

    * use mr (see |netrw-mr|) which will prompt you for pattern.
      This will cause the matching files to be marked.  Then,
      press "D".

If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
is used to remove directories; instead, vim's |delete()| is used with
the "d" option.  Please note that only empty directories may be deleted
with the "D" mapping.  Regular files are deleted with |delete()|, too.

The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
used to control the attempts to remove remote files and directories.  The
g:netrw_rm_cmd is used with files, and its default value is:

	g:netrw_rm_cmd: ssh HOSTNAME rm

The g:netrw_rmdir_cmd variable is used to support the removal of directories.
Its default value is:

	|g:netrw_rmdir_cmd|: ssh HOSTNAME rmdir

If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
to remove it again using the g:netrw_rmf_cmd variable.  Its default value is:

	|g:netrw_rmf_cmd|: ssh HOSTNAME rm -f

Related topics: |netrw-d|
Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
                             |g:netrw_rmdir_cmd|   |g:netrw_ssh_cmd|


*netrw-explore*  *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
DIRECTORY EXPLORATION COMMANDS  {{{2

     :[N]Explore[!]  [dir]... Explore directory of current file      *:Explore*
     :[N]Hexplore[!] [dir]... Horizontal Split & Explore             *:Hexplore*
     :[N]Lexplore[!] [dir]... Left Explorer Toggle                   *:Lexplore*
     :[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
     :[N]Vexplore[!] [dir]... Vertical   Split & Explore             *:Vexplore*
     :Texplore       [dir]... Tab & Explore                          *:Texplore*
     :Rexplore            ... Return to/from Explorer                *:Rexplore*

     Used with :Explore **/pattern : (also see |netrw-starstar|)
     :Nexplore............. go to next matching file                *:Nexplore*
     :Pexplore............. go to previous matching file            *:Pexplore*

						*netrw-:Explore*
:Explore  will open the local-directory browser on the current file's
          directory (or on directory [dir] if specified).  The window will be
	  split only if the file has been modified and |'hidden'| is not set,
	  otherwise the browsing window will take over that window.  Normally
	  the splitting is taken horizontally.
	  Also see: |netrw-:Rexplore|
:Explore! is like :Explore, but will use vertical splitting.

						*netrw-:Hexplore*
:Hexplore  [dir] does an :Explore with |:belowright| horizontal splitting.
:Hexplore! [dir] does an :Explore with |:aboveleft|  horizontal splitting.

						*netrw-:Lexplore*
:[N]Lexplore [dir] toggles a full height Explorer window on the left hand side
	  of the current tab.  It will open a netrw window on the current
	  directory if [dir] is omitted; a :Lexplore [dir] will show the
	  specified directory in the left-hand side browser display no matter
	  from which window the command is issued.

	  By default, :Lexplore will change an uninitialized |g:netrw_chgwin|
	  to 2; edits will thus preferentially be made in window#2.

	  The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
	  window.

	  Those who like this method often also like tree style displays;
	  see |g:netrw_liststyle|.

:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
	  Explorer window will open on the right hand side and an
	  uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
	  preferentially occur in the leftmost window).

	  Also see: |netrw-C|           |g:netrw_browse_split|   |g:netrw_wiw|
		    |netrw-p| |netrw-P|   |g:netrw_chgwin|
		    |netrw-c-tab|       |g:netrw_winsize|

						*netrw-:Sexplore*
:[N]Sexplore will always split the window before invoking the local-directory
	  browser.  As with Explore, the splitting is normally done
	  horizontally.
:[N]Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically.

						*netrw-:Texplore*
:Texplore  [dir] does a |:tabnew| before generating the browser window

						*netrw-:Vexplore*
:[N]Vexplore  [dir] does an :Explore with |:leftabove|  vertical splitting.
:[N]Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.

The optional parameters are:

 [N]: This parameter will override |g:netrw_winsize| to specify the quantity of
      rows and/or columns the new explorer window should have.
      Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
      user, is used to control the quantity of rows and/or columns new
      explorer windows should have.

 [dir]: By default, these explorer commands use the current file's directory.
        However, one may explicitly provide a directory (path) to use instead;
	ie. >

	:Explore /some/path
<
						*netrw-:Rexplore*
:Rexplore  This command is a little different from the other Explore commands
	   as it doesn't necessarily open an Explorer window.

	   Return to Explorer~
	   When one edits a file using netrw which can occur, for example,
	   when pressing <cr> while the cursor is atop a filename in a netrw
	   browser window, a :Rexplore issued while editing that file will
	   return the display to that of the last netrw browser display in
	   that window.

	   Return from Explorer~
	   Conversely, when one is editing a directory, issuing a :Rexplore
	   will return to editing the file that was last edited in that
	   window.

	   The <2-leftmouse> map (which is only available under gvim and
	   cooperative terms) does the same as :Rexplore.

Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|


*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat* *netrw-grep*
EXPLORING WITH STARS AND PATTERNS {{{2

When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
following four patterns Explore generates a list of files which satisfy the
request for the local file system.  These exploration patterns will not work
with remote file browsing.

    */filepat	files in current directory which satisfy filepat
    **/filepat	files in current directory or below which satisfy the
		file pattern
    *//pattern	files in the current directory which contain the
		pattern (vimgrep is used)
    **//pattern	files in the current directory or below which contain
		the pattern (vimgrep is used)
<
The cursor will be placed on the first file in the list.  One may then
continue to go to subsequent files on that list via |:Nexplore| or to
preceding files on that list with |:Pexplore|.  Explore will update the
directory and place the cursor appropriately.

A plain >
	:Explore
will clear the explore list.

If your console or gui produces recognizable shift-up or shift-down sequences,
then you'll likely find using shift-downarrow and shift-uparrow convenient.
They're mapped by netrw as follows:

	<s-down>  == Nexplore, and
	<s-up>    == Pexplore.

As an example, consider
>
	:Explore */*.c
	:Nexplore
	:Nexplore
	:Pexplore
<
The status line will show, on the right hand side of the status line, a
message like "Match 3 of 20".

Associated setting variables:
	|g:netrw_keepdir|          |g:netrw_browse_split|
	|g:netrw_fastbrowse|       |g:netrw_ftp_browse_reject|
	|g:netrw_ftp_list_cmd|     |g:netrw_ftp_sizelist_cmd|
	|g:netrw_ftp_timelist_cmd| |g:netrw_list_cmd|
	|g:netrw_liststyle|


DISPLAYING INFORMATION ABOUT FILE				*netrw-qf* {{{2

With the cursor atop a filename, pressing "qf" will reveal the file's size
and last modification timestamp.  Currently this capability is only available
for local files.


EDIT FILE OR DIRECTORY HIDING LIST	*netrw-ctrl-h* *netrw-edithide* {{{2

The "<ctrl-h>" map brings up a requestor allowing the user to change the
file/directory hiding list contained in |g:netrw_list_hide|.  The hiding list
consists of one or more patterns delimited by commas.  Files and/or
directories satisfying these patterns will either be hidden (ie. not shown) or
be the only ones displayed (see |netrw-a|).

The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
hiding list and the hiding of files or directories that begin with ".".

As an example, >
	let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
Effectively, this makes the effect of a |netrw-gh| command the initial setting.
What it means:

	\(^\|\s\s\)   : if the line begins with the following, -or-
	                two consecutive spaces are encountered
	\zs           : start the hiding match now
	\.            : if it now begins with a dot
	\S\+          : and is followed by one or more non-whitespace
	                characters

Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
Associated topics: |netrw-a| |netrw-gh| |netrw-mh|

					*netrw-sort-sequence*
EDITING THE SORTING SEQUENCE		*netrw-S* *netrw-sortsequence* {{{2

When "Sorted by" is name, one may specify priority via the sorting sequence
(g:netrw_sort_sequence).  The sorting sequence typically prioritizes the
name-listing by suffix, although any pattern will do.  Patterns are delimited
by commas.  The default sorting sequence is (all one line):

For Unix: >
	'[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
	\.info$,\.swp$,\.bak$,\~$'
<
Otherwise: >
	'[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
	\.swp$,\.bak$,\~$'
<
The lone * is where all filenames not covered by one of the other patterns
will end up.  One may change the sorting sequence by modifying the
g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
using the "S" map.

Related topics:               |netrw-s|               |netrw-S|
Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|


EXECUTING FILE UNDER CURSOR VIA SYSTEM()			*netrw-X* {{{2

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.

See |cmdline-window| for directions for more on how to edit the arguments.


FORCING TREATMENT AS A FILE OR DIRECTORY	*netrw-gd* *netrw-gf* {{{2

Remote symbolic links (ie. those listed via ssh or ftp) are problematic
in that it is difficult to tell whether they link to a file or to a
directory.

To force treatment as a file: use >
	gf
<
To force treatment as a directory: use >
	gd
<

GOING UP							*netrw--* {{{2

To go up a directory, press "-" or press the <cr> when atop the ../ directory
entry in the listing.

Netrw will use the command in |g:netrw_list_cmd| to perform the directory
listing operation after changing HOSTNAME to the host specified by the
user-prpvided url.  By default netrw provides the command as: >

	ssh HOSTNAME ls -FLa
<
where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
read.  Naturally, the user may override this command with whatever is
preferred.  The NetList function which implements remote browsing
expects that directories will be flagged by a trailing slash.


HIDING FILES OR DIRECTORIES			*netrw-a* *netrw-hiding* {{{2

Netrw's browsing facility allows one to use the hiding list in one of three
ways: ignore it, hide files which match, and show only those files which
match.

If no files have been marked via |netrw-mf|:

The "a" map allows the user to cycle through the three hiding modes.

The |g:netrw_list_hide| variable holds a comma delimited list of patterns
based on regular expressions (ex. ^.*\.obj$,^\.) which specify the hiding list.
(also see |netrw-ctrl-h|)  To set the hiding list, use the <c-h> map.  As an
example, to hide files which begin with a ".", one may use the <c-h> map to
set the hiding list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*'
in one's <.vimrc>).  One may then use the "a" key to show all files, hide
matching files, or to show only the matching files.

	Example: \.[ch]$
		This hiding list command will hide/show all *.c and *.h files.

	Example: \.c$,\.h$
		This hiding list command will also hide/show all *.c and *.h
		files.

Don't forget to use the "a" map to select the mode (normal/hiding/show) you
want!

If files have been marked using |netrw-mf|, then this command will:

  if showing all files or non-hidden files:
   modify the g:netrw_list_hide list by appending the marked files to it
   and showing only non-hidden files.

  else if showing hidden files only:
   modify the g:netrw_list_hide list by removing the marked files from it
   and showing only non-hidden files.
  endif

					*netrw-gh* *netrw-hide*
As a quick shortcut, one may press >
	gh
to toggle between hiding files which begin with a period (dot) and not hiding
them.

Associated setting variables: |g:netrw_list_hide|  |g:netrw_hide|
Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|

					*netrw-gitignore*
Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
|g:netrw_list_hide| automatically hides all git-ignored files.

'netrw_gitignore#Hide' searches for patterns in the following files: >

	'./.gitignore'
	'./.git/info/exclude'
	global gitignore file: `git config --global core.excludesfile`
	system gitignore file: `git config --system core.excludesfile`
<
Files that do not exist, are ignored.
Git-ignore patterns are taken from existing files, and converted to patterns for
hiding files. For example, if you had '*.log' in your '.gitignore' file, it
would be converted to '.*\.log'.

To use this function, simply assign its output to |g:netrw_list_hide| option.  >

	Example: let g:netrw_list_hide= netrw_gitignore#Hide()
		Git-ignored files are hidden in Netrw.

	Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
		Function can take additional files with git-ignore patterns.

	Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
		Combining 'netrw_gitignore#Hide' with custom patterns.
<

IMPROVING BROWSING			*netrw-listhack* *netrw-ssh-hack* {{{2

Especially with the remote directory browser, constantly entering the password
is tedious.

For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength
tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip
for setting up no-password ssh and scp and discusses associated security
issues.  It used to be available at http://hacks.oreilly.com/pub/h/66 ,
but apparently that address is now being redirected to some "hackzine".
I'll attempt a summary based on that article and on a communication from
Ben Schmidt:

	1. Generate a public/private key pair on the local machine
	   (ssh client): >
		ssh-keygen -t rsa
		(saving the file in ~/.ssh/id_rsa as prompted)
<
	2. Just hit the <CR> when asked for passphrase (twice) for no
	   passphrase.  If you do use a passphrase, you will also need to use
	   ssh-agent so you only have to type the passphrase once per session.
	   If you don't use a passphrase, simply logging onto your local
	   computer or getting access to the keyfile in any way will suffice
	   to access any ssh servers which have that key authorized for login.

	3. This creates two files: >
		~/.ssh/id_rsa
		~/.ssh/id_rsa.pub
<
	4. On the target machine (ssh server): >
		cd
		mkdir -p .ssh
		chmod 0700 .ssh
<
	5. On your local machine (ssh client): (one line) >
		ssh {serverhostname}
		  cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
<
	   or, for OpenSSH, (one line) >
		ssh {serverhostname}
		  cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
<
You can test it out with >
	ssh {serverhostname}
and you should be log onto the server machine without further need to type
anything.

If you decided to use a passphrase, do: >
	ssh-agent $SHELL
	ssh-add
	ssh {serverhostname}
You will be prompted for your key passphrase when you use ssh-add, but not
subsequently when you use ssh.  For use with vim, you can use >
	ssh-agent vim
and, when next within vim, use >
	:!ssh-add
Alternatively, you can apply ssh-agent to the terminal you're planning on
running vim in: >
	ssh-agent xterm &
and do ssh-add whenever you need.

For Windows, folks on the vim mailing list have mentioned that Pageant helps
with avoiding the constant need to enter the password.

Kingston Fung wrote about another way to avoid constantly needing to enter
passwords:

    In order to avoid the need to type in the password for scp each time, you
    provide a hack in the docs to set up a non password ssh account. I found a
    better way to do that: I can use a regular ssh account which uses a
    password to access the material without the need to key-in the password
    each time. It's good for security and convenience. I tried ssh public key
    authorization + ssh-agent, implementing this, and it works! Here are two
    links with instructions:

    http://www.ibm.com/developerworks/library/l-keyc2/
    http://sial.org/howto/openssh/publickey-auth/


    Ssh hints:

	Thomer Gil has provided a hint on how to speed up netrw+ssh:
	    http://thomer.com/howtos/netrw_ssh.html

	Alex Young has several hints on speeding ssh up:
	    http://usevim.com/2012/03/16/editing-remote-files/


LISTING BOOKMARKS AND HISTORY		*netrw-qb* *netrw-listbookmark* {{{2

Pressing "qb" (query bookmarks) will list both the bookmarked directories and
directory traversal history.

Related Topics:
	|netrw-gb| how to return (go) to a bookmark
	|netrw-mb| how to make a bookmark
	|netrw-mB| how to delete bookmarks
	|netrw-u|  change to a predecessor directory via the history stack
	|netrw-U|  change to a successor   directory via the history stack

MAKING A NEW DIRECTORY					*netrw-d* {{{2

With the "d" map one may make a new directory either remotely (which depends
on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
global variable g:netrw_localmkdir).  Netrw will issue a request for the new
directory's name.  A bare <CR> at that point will abort the making of the
directory.  Attempts to make a local directory that already exists (as either
a file or a directory) will be detected, reported on, and ignored.

Related topics: |netrw-D|
Associated setting variables:	|g:netrw_localmkdir|   |g:netrw_mkdir_cmd|
				|g:netrw_remote_mkdir| |netrw-%|


MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY	*netrw-cd* {{{2

By default, |g:netrw_keepdir| is 1.  This setting means that the current
directory will not track the browsing directory. (done for backwards
compatibility with v6's file explorer).

Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory
track netrw's browsing directory.

However, given the default setting for g:netrw_keepdir of 1 where netrw
maintains its own separate notion of the current directory, in order to make
the two directories the same, use the "c" map (just type c).  That map will
set Vim's notion of the current directory to netrw's current browsing
directory.

*netrw-c* : This map's name has been changed from "c" to cd (see |netrw-cd|).
          This change was done to allow for |netrw-cb| and |netrw-cB| maps.

Associated setting variable: |g:netrw_keepdir|

MARKING FILES					*netrw-:MF*	*netrw-mf* {{{2
	(also see |netrw-mr|)

Netrw provides several ways to mark files:

	* One may mark files with the cursor atop a filename and
	  then pressing "mf".

	* With gvim, in addition one may mark files with
	  <s-leftmouse>. (see |netrw-mouse|)

	* One may use the :MF command, which takes a list of
	  files (for local directories, the list may include
	  wildcards -- see |glob()|) >

		:MF *.c
<
	  (Note that :MF uses |<f-args>| to break the line
	  at spaces)

	* Mark files using the |argument-list| (|netrw-mA|)

	* Mark files based upon a |location-list| (|netrw-qL|)

	* Mark files based upon the quickfix list (|netrw-qF|)
	  (|quickfix-error-lists|)

The following netrw maps make use of marked files:

    |netrw-a|	Hide marked files/directories
    |netrw-D|	Delete marked files/directories
    |netrw-ma|	Move marked files' names to |arglist|
    |netrw-mA|	Move |arglist| filenames to marked file list
    |netrw-mb|	Append marked files to bookmarks
    |netrw-mB|	Delete marked files from bookmarks
    |netrw-mc|	Copy marked files to target
    |netrw-md|	Apply vimdiff to marked files
    |netrw-me|	Edit marked files
    |netrw-mF|	Unmark marked files
    |netrw-mg|	Apply vimgrep to marked files
    |netrw-mm|	Move marked files to target
    |netrw-mp|	Print marked files
    |netrw-ms|	Netrw will source marked files
    |netrw-mt|	Set target for |netrw-mm| and |netrw-mc|
    |netrw-mT|	Generate tags using marked files
    |netrw-mv|	Apply vim command to marked files
    |netrw-mx|	Apply shell command to marked files
    |netrw-mX|	Apply shell command to marked files, en bloc
    |netrw-mz|	Compress/Decompress marked files
    |netrw-O|	Obtain marked files
    |netrw-R|	Rename marked files

One may unmark files one at a time the same way one marks them; ie. place
the cursor atop a marked file and press "mf".  This process also works
with <s-leftmouse> using gvim.  One may unmark all files by pressing
"mu" (see |netrw-mu|).

Marked files are highlighted using the "netrwMarkFile" highlighting group,
which by default is linked to "Identifier" (see Identifier under
|group-name|).  You may change the highlighting group by putting something
like >

	highlight clear netrwMarkFile
	hi link netrwMarkFile ..whatever..
<
into $HOME/.vim/after/syntax/netrw.vim .

If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
mark one or more files.  You may mark multiple files by dragging the shifted
leftmouse.  (see |netrw-mouse|)

			*markfilelist* *global_markfilelist* *local_markfilelist*
All marked files are entered onto the global marked file list; there is only
one such list.  In addition, every netrw buffer also has its own buffer-local
marked file list; since netrw buffers are associated with specific
directories, this means that each directory has its own local marked file
list.  The various commands which operate on marked files use one or the other
of the marked file lists.

Known Problem: if one is using tree mode (|g:netrw_liststyle|) and several
directories have files with the same name,  then marking such a file will
result in all such files being highlighted as if they were all marked.  The
|markfilelist|, however, will only have the selected file in it.  This problem
is unlikely to be fixed.


UNMARKING FILES							*netrw-mF* {{{2
	(also see |netrw-mf|, |netrw-mu|)

The "mF" command will unmark all files in the current buffer.  One may also use
mf (|netrw-mf|) on a specific, already marked, file to unmark just that file.

MARKING FILES BY LOCATION LIST					*netrw-qL* {{{2
	(also see |netrw-mf|)

One may convert |location-list|s into a marked file list using "qL".
You may then proceed with commands such as me (|netrw-me|) to edit them.


MARKING FILES BY QUICKFIX LIST					*netrw-qF* {{{2
	(also see |netrw-mf|)

One may convert |quickfix-error-lists| into a marked file list using "qF".
You may then proceed with commands such as me (|netrw-me|) to edit them.
Quickfix error lists are generated, for example, by calls to |:vimgrep|.


MARKING FILES BY REGULAR EXPRESSION				*netrw-mr* {{{2
	(also see |netrw-mf|)

One may also mark files by pressing "mr"; netrw will then issue a prompt,
"Enter regexp: ".  You may then enter a shell-style regular expression such
as *.c$ (see |glob()|).  For remote systems, glob() doesn't work -- so netrw
converts "*" into ".*" (see |regexp|) and marks files based on that.  In the
future I may make it possible to use |regexp|s instead of glob()-style
expressions (yet-another-option).

See |cmdline-window| for directions on more on how to edit the regular
expression.


MARKED FILES, ARBITRARY VIM COMMAND				*netrw-mv*  {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the local marked-file list)

The "mv" map causes netrw to execute an arbitrary vim command on each file on
the local marked file list, individually:

	* 1split
	* sil! keepalt e file
	* run vim command
	* sil! keepalt wq!

A prompt, "Enter vim command: ", will be issued to elicit the vim command you
wish used.  See |cmdline-window| for directions for more on how to edit the
command.


MARKED FILES, ARBITRARY SHELL COMMAND				*netrw-mx* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the local marked-file list)

Upon activation of the "mx" map, netrw will query the user for some (external)
command to be applied to all marked files.  All "%"s in the command will be
substituted with the name of each marked file in turn.  If no "%"s are in the
command, then the command will be followed by a space and a marked filename.

Example:
	(mark files)
	mx
	Enter command: cat

	The result is a series of shell commands:
	cat 'file1'
	cat 'file2'
	...


MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC 			*netrw-mX* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked-file list)

Upon activation of the 'mX' map, netrw will query the user for some (external)
command to be applied to all marked files on the global marked file list.  The
"en bloc" means that one command will be executed on all the files at once: >

	command files

This approach is useful, for example, to select files and make a tarball: >

	(mark files)
	mX
	Enter command: tar cf mynewtarball.tar
<
The command that will be run with this example:

	tar cf mynewtarball.tar 'file1' 'file2' ...


MARKED FILES: ARGUMENT LIST				*netrw-ma* *netrw-mA*
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked-file list)

Using ma, one moves filenames from the marked file list to the argument list.
Using mA, one moves filenames from the argument list to the marked file list.

See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|


MARKED FILES: BUFFER LIST				*netrw-cb* *netrw-cB*
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked-file list)

Using cb, one moves  filenames from the marked file list to the buffer list.
Using cB, one copies filenames from the buffer list to the marked file list.

See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|


MARKED FILES: COMPRESSION AND DECOMPRESSION		*netrw-mz* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the local marked file list)

If any marked files are compressed,   then "mz" will decompress them.
If any marked files are decompressed, then "mz" will compress them
using the command specified by |g:netrw_compress|; by default,
that's "gzip".

For decompression, netrw uses a |Dictionary| of suffices and their
associated decompressing utilities; see |g:netrw_decompress|.

Remember that one can mark multiple files by regular expression
(see |netrw-mr|); this is particularly useful to facilitate compressing and
decompressing a large number of files.

Associated setting variables: |g:netrw_compress| |g:netrw_decompress|

MARKED FILES: COPYING						*netrw-mc* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (Uses the global marked file list)

Select a target directory with mt (|netrw-mt|).  Then change directory,
select file(s) (see |netrw-mf|), and press "mc".  The copy is done
from the current window (where one does the mf) to the target.

If one does not have a target directory set with |netrw-mt|, then netrw
will query you for a directory to copy to.

One may also copy directories and their contents (local only) to a target
directory.

Associated setting variables:
	|g:netrw_localcopycmd|		|g:netrw_localcopycmdopt|
	|g:netrw_localcopydircmd|	|g:netrw_localcopydircmdopt|
	|g:netrw_ssh_cmd|

MARKED FILES: DIFF						*netrw-md* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked file list)

Use |vimdiff| to visualize difference between selected files (two or
three may be selected for this).  Uses the global marked file list.

MARKED FILES: EDITING						*netrw-me* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked file list)

The "me" command will place the marked files on the |arglist| and commence
editing them.  One may return the to explorer window with |:Rexplore|.
(use |:n| and |:p| to edit next and previous files in the arglist)

MARKED FILES: GREP						*netrw-mg* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked file list)

The "mg" command will apply |:vimgrep| to the marked files.
The command will ask for the requested pattern; one may then enter: >

	/pattern/[g][j]
	! /pattern/[g][j]
	pattern
<
With /pattern/, editing will start with the first item on the |quickfix| list
that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|, |:cclose|).  The |:vimgrep|
command is in use, so without 'g' each line is added to quickfix list only
once; with 'g' every match is included.

With /pattern/j, "mg" will winnow the current marked file list to just those
marked files also possessing the specified pattern.  Thus, one may use >

	mr ...file-pattern...
	mg /pattern/j
<
to have a marked file list satisfying the file-pattern but also restricted to
files containing some desired pattern.


MARKED FILES: HIDING AND UNHIDING BY SUFFIX			*netrw-mh* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the local marked file list)

The "mh" command extracts the suffices of the marked files and toggles their
presence on the hiding list.  Please note that marking the same suffix
this way multiple times will result in the suffix's presence being toggled
for each file (so an even quantity of marked files having the same suffix
is the same as not having bothered to select them at all).

Related topics: |netrw-a| |g:netrw_list_hide|

MARKED FILES: MOVING						*netrw-mm* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked file list)

	WARNING: moving files is more dangerous than copying them.
	A file being moved is first copied and then deleted; if the
	copy operation fails and the delete succeeds, you will lose
	the file.  Either try things out with unimportant files
	first or do the copy and then delete yourself using mc and D.
	Use at your own risk!

Select a target directory with mt (|netrw-mt|).  Then change directory,
select file(s) (see |netrw-mf|), and press "mm".  The move is done
from the current window (where one does the mf) to the target.

Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|

MARKED FILES: PRINTING						*netrw-mp* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the local marked file list)

When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
What netrw does is open each file in a one-line window, execute hardcopy, then
close the one-line window.


MARKED FILES: SOURCING						*netrw-ms* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the local marked file list)

With "ms", netrw will source the marked files (using vim's |:source| command)


MARKED FILES: SETTING THE TARGET DIRECTORY			*netrw-mt* {{{2
     (See |netrw-mf| and |netrw-mr| for how to mark files)

Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):

  * If the cursor is atop a file name, then the netrw window's currently
    displayed directory is used for the copy/move-to target.

  * Also, if the cursor is in the banner, then the netrw window's currently
    displayed directory is used for the copy/move-to target.
    Unless the target already is the current directory.  In which case,
    typing "mf" clears the target.

  * However, if the cursor is atop a directory name, then that directory is
    used for the copy/move-to target

  * One may use the :MT [directory] command to set the target	*netrw-:MT*
    This command uses |<q-args>|, so spaces in the directory name are
    permitted without escaping.

  * With mouse-enabled vim or with gvim, one may select a target by using
    <c-leftmouse>

There is only one copy/move-to target at a time in a vim session; ie. the
target is a script variable (see |s:var|) and is shared between all netrw
windows (in an instance of vim).

When using menus and gvim, netrw provides a "Targets" entry which allows one
to pick a target from the list of bookmarks and history.

Related topics:
      Marking Files......................................|netrw-mf|
      Marking Files by Regular Expression................|netrw-mr|
      Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
      Marked Files: Target Directory Using History.......|netrw-Th|


MARKED FILES: TAGGING						*netrw-mT* {{{2
	    (See |netrw-mf| and |netrw-mr| for how to mark files)
		      (uses the global marked file list)

The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
"ctags") to marked files.  For remote browsing, in order to create a tags file
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
get a version.  I myself use hdrtags, currently available at
http://www.drchip.org/astronaut/src/index.html , and have >

	let g:netrw_ctags= "hdrtag"
<
in my <.vimrc>.

When a remote set of files are tagged, the resulting tags file is "obtained";
ie. a copy is transferred to the local system's directory.  The now local tags
file is then modified so that one may use it through the network.  The
modification made concerns the names of the files in the tags; each filename is
preceded by the netrw-compatible URL used to obtain it.  When one subsequently
uses one of the go to tag actions (|tags|), the URL will be used by netrw to
edit the desired file and go to the tag.

Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|

MARKED FILES: TARGET DIRECTORY USING BOOKMARKS		*netrw-Tb* {{{2

Sets the marked file copy/move-to target.

The |netrw-qb| map will give you a list of bookmarks (and history).
One may choose one of the bookmarks to become your marked file
target by using [count]Tb (default count: 1).

Related topics:
      Copying files to target............................|netrw-mc|
      Listing Bookmarks and History......................|netrw-qb|
      Marked Files: Setting The Target Directory.........|netrw-mt|
      Marked Files: Target Directory Using History.......|netrw-Th|
      Marking Files......................................|netrw-mf|
      Marking Files by Regular Expression................|netrw-mr|
      Moving files to target.............................|netrw-mm|


MARKED FILES: TARGET DIRECTORY USING HISTORY			*netrw-Th* {{{2

Sets the marked file copy/move-to target.

The |netrw-qb| map will give you a list of history (and bookmarks).
One may choose one of the history entries to become your marked file
target by using [count]Th (default count: 0; ie. the current directory).

Related topics:
      Copying files to target............................|netrw-mc|
      Listing Bookmarks and History......................|netrw-qb|
      Marked Files: Setting The Target Directory.........|netrw-mt|
      Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
      Marking Files......................................|netrw-mf|
      Marking Files by Regular Expression................|netrw-mr|
      Moving files to target.............................|netrw-mm|


MARKED FILES: UNMARKING						*netrw-mu* {{{2
     (See |netrw-mf|, |netrw-mF|)

The "mu" mapping will unmark all currently marked files.  This command differs
from "mF" as the latter only unmarks files in the current directory whereas
"mu" will unmark global and all buffer-local marked files.
(see |netrw-mF|)


				*netrw-browser-settings*
NETRW BROWSER VARIABLES		*netrw-browser-options* *netrw-browser-var* {{{2

(if you're interested in the netrw file transfer settings, see |netrw-options|
 and |netrw-protocol|)

The <netrw.vim> browser provides settings in the form of variables which
you may modify; by placing these settings in your <.vimrc>, you may customize
your browsing preferences.  (see also: |netrw-settings|)
>
   ---				-----------
   Var				Explanation
   ---				-----------
<  *g:netrw_altfile*		some like |CTRL-^| to return to the last
				edited file.  Choose that by setting this
				parameter to 1.
				Others like |CTRL-^| to return to the
				netrw browsing buffer.  Choose that by setting
				this parameter to 0.
				 default: =0

  *g:netrw_alto*		change from above splitting to below splitting
				by setting this variable (see |netrw-o|)
				 default: =&sb           (see |'sb'|)

  *g:netrw_altv*		change from left splitting to right splitting
				by setting this variable (see |netrw-v|)
				 default: =&spr          (see |'spr'|)

  *g:netrw_banner*		enable/suppress the banner
				=0: suppress the banner
				=1: banner is enabled (default)

  *g:netrw_bannerbackslash*	if this variable exists and is not zero, the
				banner will be displayed with backslashes
				rather than forward slashes.

  *g:netrw_browse_split*	when browsing, <cr> will open the file by:
				=0: re-using the same window  (default)
				=1: horizontally splitting the window first
				=2: vertically   splitting the window first
				=3: open file in new tab
				=4: act like "P" (ie. open previous window)
				    Note that |g:netrw_preview| may be used
				    to get vertical splitting instead of
				    horizontal splitting.
				=[servername,tab-number,window-number]
				    Given a |List| such as this, a remote server
				    named by the "servername" will be used for
				    editing.  It will also use the specified tab
				    and window numbers to perform editing
				    (see |clientserver|, |netrw-ctrl-r|)
				This option does not affect the production of
				|:Lexplore| windows.

				Related topics:
				    |g:netrw_alto|	|g:netrw_altv|
				    |netrw-C|		|netrw-cr|
				    |netrw-ctrl-r|

  *g:netrw_browsex_viewer*	specify user's preference for a viewer: >
					"kfmclient exec"
					"gnome-open"
<				If >
					"-"
<				is used, then netrwFileHandler() will look for
				a script/function to handle the given
				extension.  (see |netrw_filehandler|).

  *g:netrw_chgperm*		Unix/Linux: "chmod PERM FILENAME"
				Windows:    "cacls FILENAME /e /p PERM"
				Used to change access permission for a file.

  *g:netrw_compress*		="gzip"
				    Will compress marked files with this
				    command

  *g:Netrw_corehandler*		Allows one to specify something additional
				to do when handling <core> files via netrw's
				browser's "x" command (see |netrw-x|).  If
				present, g:Netrw_corehandler specifies
				either one or more function references
				(see |Funcref|).  (the capital g:Netrw...
				is required its holding a function reference)


  *g:netrw_ctags*		="ctags"
				The default external program used to create
				tags

  *g:netrw_cursor*		= 2 (default)
				This option controls the use of the
				|'cursorline'| (cul) and |'cursorcolumn'|
				(cuc) settings by netrw:

				Value   Thin-Long-Tree      Wide
				 =0      u-cul u-cuc      u-cul u-cuc
				 =1      u-cul u-cuc        cul u-cuc
				 =2        cul u-cuc        cul u-cuc
				 =3        cul u-cuc        cul   cuc
				 =4        cul   cuc        cul   cuc

				Where
				  u-cul : user's |'cursorline'|   setting used
				  u-cuc : user's |'cursorcolumn'| setting used
				  cul   : |'cursorline'|  locally set
				  cuc   : |'cursorcolumn'| locally set

  *g:netrw_decompress*		= { ".gz"  : "gunzip" ,
				    ".bz2" : "bunzip2" ,
				    ".zip" : "unzip" ,
				    ".tar" : "tar -xf"}
				  A dictionary mapping suffices to
				  decompression programs.

  *g:netrw_dirhistmax*            =10: controls maximum quantity of past
                                     history.  May be zero to supppress
				     history.
				     (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
				    this are permitted to be displayed
				    0: notes
				    1: warnings
				    2: errors

  *g:netrw_fastbrowse*		=0: slow speed directory browsing;
				    never re-uses directory listings;
				    always obtains directory listings.
				=1: medium speed directory browsing;
				    re-use directory listings only
				    when remote directory browsing.
				    (default value)
				=2: fast directory browsing;
				    only obtains directory listings when the
				    directory hasn't been seen before
				    (or |netrw-ctrl-l| is used).

				Fast browsing retains old directory listing
				buffers so that they don't need to be
				re-acquired.  This feature is especially
				important for remote browsing.  However, if
				a file is introduced or deleted into or from
				such directories, the old directory buffer
				becomes out-of-date.  One may always refresh
				such a directory listing with |netrw-ctrl-l|.
				This option gives the user the choice of
				trading off accuracy (ie. up-to-date listing)
				versus speed.

  *g:netrw_ffkeep*		(default: doesn't exist)
				If this variable exists and is zero, then
				netrw will not do a save and restore for
				|'fileformat'|.

  *g:netrw_fname_escape*	=' ?&;%'
				Used on filenames before remote reading/writing

  *g:netrw_ftp_browse_reject*	ftp can produce a number of errors and warnings
				that can show up as "directories" and "files"
				in the listing.  This pattern is used to
				remove such embedded messages.  By default its
				value is:
				 '^total\s\+\d\+$\|
				 ^Trying\s\+\d\+.*$\|
				 ^KERBEROS_V\d rejected\|
				 ^Security extensions not\|
				 No such file\|
				 : connect to address [0-9a-fA-F:]*
				 : No route to host$'

  *g:netrw_ftp_list_cmd*	options for passing along to ftp for directory
				listing.  Defaults:
				 unix or g:netrw_cygwin set: : "ls -lF"
				 otherwise                     "dir"


  *g:netrw_ftp_sizelist_cmd*	options for passing along to ftp for directory
				listing, sorted by size of file.
				Defaults:
				 unix or g:netrw_cygwin set: : "ls -slF"
				 otherwise                     "dir"

  *g:netrw_ftp_timelist_cmd*	options for passing along to ftp for directory
				listing, sorted by time of last modification.
				Defaults:
				 unix or g:netrw_cygwin set: : "ls -tlF"
				 otherwise                     "dir"

  *g:netrw_glob_escape*		='[]*?`{~$'  (unix)
				='[]*?`{$'  (windows
				These characters in directory names are
				escaped before applying glob()

  *g:netrw_gx*			="<cfile>"
 				This option controls how gx (|netrw-gx|) picks
				up the text under the cursor.  See |expand()|
				for possibilities.

  *g:netrw_hide*		Controlled by the "a" map (see |netrw-a|)
				=0 : show all
				=1 : show not-hidden files
				=2 : show hidden files only
				 default: =0

  *g:netrw_home*		The home directory for where bookmarks and
				history are saved (as .netrwbook and
				.netrwhist).
				Netrw uses |expand()|on the string.
				 default: the first directory on the
				         |'runtimepath'|

  *g:netrw_keepdir*		=1 (default) keep current directory immune from
				   the browsing directory.
				=0 keep the current directory the same as the
				   browsing directory.
				The current browsing directory is contained in
				b:netrw_curdir (also see |netrw-c|)

  *g:netrw_keepj*		="keepj" (default) netrw attempts to keep the
				         |:jumps| table unaffected.
				=""      netrw will not use |:keepjumps| with
					 exceptions only for the
					 saving/restoration of position.

  *g:netrw_list_cmd*		command for listing remote directories
				 default: (if ssh is executable)
				          "ssh HOSTNAME ls -FLa"

  *g:netrw_list_cmd_options*	If this variable exists, then its contents are
				appended to the g:netrw_list_cmd.  For
				example, use "2>/dev/null" to get rid of banner
				messages on unix systems.


  *g:netrw_liststyle*		Set the default listing style:
                                = 0: thin listing (one file per line)
                                = 1: long listing (one file per line with time
				     stamp information and file size)
				= 2: wide listing (multiple files in columns)
				= 3: tree style listing

  *g:netrw_list_hide*		comma separated pattern list for hiding files
				Patterns are regular expressions (see |regexp|)
				There's some special support for git-ignore
				files: you may add the output from the helper
				function 'netrw_gitignore#Hide() automatically
				hiding all gitignored files.
				For more details see |netrw-gitignore|.

				Examples:
				 let g:netrw_list_hide= '.*\.swp$'
				 let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
				default: ""

  *g:netrw_localcopycmd*	="cp"           Linux/Unix/MacOS/Cygwin
				=expand("$COMSPEC")             Windows
				Copies marked files (|netrw-mf|) to target
				directory (|netrw-mt|, |netrw-mc|)

  *g:netrw_localcopycmdopt*	=''             Linux/Unix/MacOS/Cygwin
  				=' \c copy'                     Windows
				Options for the |g:netrw_localcopycmd|

  *g:netrw_localcopydircmd*	="cp"           Linux/Unix/MacOS/Cygwin
 				=expand("$COMSPEC")             Windows
				Copies directories to target directory.
				(|netrw-mc|, |netrw-mt|)

  *g:netrw_localcopydircmdopt*	=" -R"          Linux/Unix/MacOS/Cygwin
				=" /c xcopy /e /c /h/ /i /k"    Windows
				Options for |g:netrw_localcopydircmd|

  *g:netrw_localmkdir*		="mkdir"        Linux/Unix/MacOS/Cygwin
				=expand("$COMSPEC")             Windows
                                command for making a local directory

  *g:netrw_localmkdiropt*	=""             Linux/Unix/MacOS/Cygwin
				=" /c mkdir"                    Windows
				Options for |g:netrw_localmkdir|

  *g:netrw_localmovecmd*	="mv"           Linux/Unix/MacOS/Cygwin
				=expand("$COMSPEC")             Windows
				Moves marked files (|netrw-mf|) to target
				directory (|netrw-mt|, |netrw-mm|)

  *g:netrw_localmovecmdopt*	=""             Linux/Unix/MacOS/Cygwin
				=" /c move"                     Windows
				Options for |g:netrw_localmovecmd|

  *g:netrw_localrmdir*		="rmdir"        Linux/Unix/MacOS/Cygwin
 				=expand("$COMSPEC")             Windows
				Remove directory command (rmdir)
				This variable is only used if your vim is
				earlier than 7.4 or if your vim doesn't
				have patch#1107.  Otherwise, |delete()|
				is used with the "d" option.

  *g:netrw_localrmdiropt*	=""             Linux/Unix/MacOS/Cygwin
				=" /c rmdir"                    Windows
				Options for |g:netrw_localrmdir|

  *g:netrw_maxfilenamelen*	=32 by default, selected so as to make long
				    listings fit on 80 column displays.
				If your screen is wider, and you have file
				or directory names longer than 32 bytes,
				you may set this option to keep listings
				columnar.

  *g:netrw_mkdir_cmd*		command for making a remote directory
				via ssh  (also see |g:netrw_remote_mkdir|)
				 default: "ssh USEPORT HOSTNAME mkdir"

  *g:netrw_mousemaps*		  =1 (default) enables mouse buttons while
				   browsing to:
				     leftmouse       : open file/directory
				     shift-leftmouse : mark file
				     middlemouse     : same as P
				     rightmouse      : remove file/directory
				=0: disables mouse maps

  *g:netrw_nobeval*		doesn't exist (default)
				If this variable exists, then balloon
				evaluation will be suppressed
				(see |'ballooneval'|)

 *g:netrw_sizestyle*		not defined: actual bytes (default)
 				="b" : actual bytes       (default)
 				="h" : human-readable (ex. 5k, 4m, 3g)
				       uses 1000 base
 				="H" : human-readable (ex. 5K, 4M, 3G)
				       uses 1024 base
				The long listing (|netrw-i|) and query-file
				maps (|netrw-qf|) will display file size
				using the specified style.

  *g:netrw_usetab*		if this variable exists and is non-zero, then
				the <tab> map supporting shrinking/expanding a
				Lexplore or netrw window will be enabled.
				(see |netrw-c-tab|)

  *g:netrw_remote_mkdir*	command for making a remote directory
				via ftp  (also see |g:netrw_mkdir_cmd|)
				 default: "mkdir"

  *g:netrw_retmap*		if it exists and is set to one, then:
				 * if in a netrw-selected file, AND
				 * no normal-mode <2-leftmouse> mapping exists,
				then the <2-leftmouse> will be mapped for easy
				return to the netrw browser window.
				 example: click once to select and open a file,
				          double-click to return.

				Note that one may instead choose to:
				 * let g:netrw_retmap= 1, AND
				 * nmap <silent> YourChoice <Plug>NetrwReturn
				and have another mapping instead of
				<2-leftmouse> to invoke the return.

				You may also use the |:Rexplore| command to do
				the same thing.

				  default: =0

  *g:netrw_rm_cmd*		command for removing remote files
				 default: "ssh USEPORT HOSTNAME rm"

  *g:netrw_rmdir_cmd*		command for removing remote directories
				 default: "ssh USEPORT HOSTNAME rmdir"

  *g:netrw_rmf_cmd*		command for removing remote softlinks
				 default: "ssh USEPORT HOSTNAME rm -f"

  *g:netrw_servername*		use this variable to provide a name for
				|netrw-ctrl-r| to use for its server.
				 default: "NETRWSERVER"

  *g:netrw_sort_by*		sort by "name", "time", "size", or
  				"exten".
				 default: "name"

  *g:netrw_sort_direction*	sorting direction: "normal" or "reverse"
				 default: "normal"

  *g:netrw_sort_options*	sorting is done using |:sort|; this
				variable's value is appended to the
				sort command.  Thus one may ignore case,
				for example, with the following in your
				.vimrc: >
					let g:netrw_sort_options="i"
<				 default: ""

  *g:netrw_sort_sequence*	when sorting by name, first sort by the
				comma-separated pattern sequence.  Note that
				any filigree added to indicate filetypes
				should be accounted for in your pattern.
				 default: '[\/]$,*,\.bak$,\.o$,\.h$,
				           \.info$,\.swp$,\.obj$'

  *g:netrw_special_syntax*	If true, then certain files will be shown
				using special syntax in the browser:

					netrwBak     : *.bak
					netrwCompress: *.gz *.bz2 *.Z *.zip
					netrwData    : *.dat
					netrwHdr     : *.h
					netrwLib     : *.a *.so *.lib *.dll
					netrwMakefile: [mM]akefile *.mak
					netrwObj     : *.o *.obj
					netrwTags    : tags ANmenu ANtags
					netrwTilde   : *
					netrwTmp     : tmp* *tmp

				In addition, those groups mentioned in
				|'suffixes'| are also added to the special
				file highlighting group.
				 These syntax highlighting groups are linked
				to netrwGray or Folded by default
				(see |hl-Folded|), but one may put lines like >
					hi link netrwCompress Visual
<				into one's <.vimrc> to use one's own
				preferences.  Alternatively, one may
				put such specifications into >
					.vim/after/syntax/netrw.vim.
<				 The netrwGray highlighting is set up by
				netrw when >
	       				* netrwGray has not been previously
					  defined
					* the gui is running
<				 As an example, I myself use a dark-background
				colorscheme with the following in
				.vim/after/syntax/netrw.vim: >

 hi netrwCompress term=NONE cterm=NONE gui=NONE ctermfg=10 guifg=green  ctermbg=0 guibg=black
 hi netrwData	  term=NONE cterm=NONE gui=NONE ctermfg=9 guifg=blue ctermbg=0 guibg=black
 hi netrwHdr	  term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
 hi netrwLex	  term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
 hi netrwYacc	  term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
 hi netrwLib	  term=NONE cterm=NONE gui=NONE ctermfg=14 guifg=yellow
 hi netrwObj	  term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwTilde	  term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwTmp	  term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwTags	  term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwDoc	  term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=yellow2 guibg=Blue3
 hi netrwSymLink  term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=grey60
<
  *g:netrw_ssh_browse_reject*	ssh can sometimes produce unwanted lines,
				messages, banners, and whatnot that one doesn't
				want masquerading as "directories" and "files".
				Use this pattern to remove such embedded
				messages.  By default its value is:
					 '^total\s\+\d\+$'

  *g:netrw_ssh_cmd*		One may specify an executable command
				to use instead of ssh for remote actions
				such as listing, file removal, etc.
				 default: ssh

 *g:netrw_suppress_gx_mesg*	=1 : browsers sometimes produce messages
				which are normally unwanted intermixed
				with the page.
				However, when using links, for example,
				those messages are what the browser produces.
				By setting this option to 0, netrw will not
				suppress browser messages.

  *g:netrw_tmpfile_escape*	=' &;'
				escape() is applied to all temporary files
				to escape these characters.

  *g:netrw_timefmt*		specify format string to vim's strftime().
				The default, "%c", is "the preferred date
				and time representation for the current
				locale" according to my manpage entry for
				strftime(); however, not all are satisfied
				with it.  Some alternatives:
				 "%a %d %b %Y %T",
				 " %a %Y-%m-%d  %I-%M-%S %p"
				 default: "%c"

  *g:netrw_use_noswf*		netrw normally avoids writing swapfiles
				for browser buffers.  However, under some
				systems this apparently is causing nasty
				ml_get errors to appear; if you're getting
				ml_get errors, try putting
				  let g:netrw_use_noswf= 0
				in your .vimrc.
				  default: 1

  *g:netrw_winsize*		specify initial size of new windows made with
				"o" (see |netrw-o|), "v" (see |netrw-v|),
				|:Hexplore| or |:Vexplore|.  The g:netrw_winsize
				is an integer describing the percentage of the
				current netrw buffer's window to be used for
				the new window.
				 If g:netrw_winsize is less than zero, then
				the absolute value of g:netrw_winsize lines
				or columns will be used for the new window.
				 If g:netrw_winsize is zero, then a normal
				split will be made (ie. |'equalalways'| will
				take effect, for example).
				 default: 50  (for 50%)

  *g:netrw_wiw*			=1 specifies the minimum window width to use
				when shrinking a netrw/Lexplore window
				(see |netrw-c-tab|).

  *g:netrw_xstrlen*		Controls how netrw computes string lengths,
				including multi-byte characters' string
				length. (thanks to N Weibull, T Mechelynck)
				=0: uses Vim's built-in strlen()
				=1: number of codepoints (Latin a + combining
				    circumflex is two codepoints)  (DEFAULT)
				=2: number of spacing codepoints (Latin a +
				    combining circumflex is one spacing
				    codepoint; a hard tab is one; wide and
				    narrow CJK are one each; etc.)
				=3: virtual length (counting tabs as anything
				    between 1 and |'tabstop'|, wide CJK as 2
				    rather than 1, Arabic alif as zero when
				    immediately preceded by lam, one
				    otherwise, etc)

  *g:NetrwTopLvlMenu*		This variable specifies the top level
				menu name; by default, it's "Netrw.".  If
				you wish to change this, do so in your
				.vimrc.

NETRW BROWSING AND OPTION INCOMPATIBILITIES	*netrw-incompatible* {{{2

Netrw has been designed to handle user options by saving them, setting the
options to something that's compatible with netrw's needs, and then restoring
them.  However, the autochdir option: >
	:set acd
is problematic.  Autochdir sets the current directory to that containing the
file you edit; this apparently also applies to directories.  In other words,
autochdir sets the current directory to that containing the "file" (even if
that "file" is itself a directory).

NETRW SETTINGS WINDOW				*netrw-settings-window* {{{2

With the NetrwSettings.vim plugin, >
	:NetrwSettings
will bring up a window with the many variables that netrw uses for its
settings.  You may change any of their values; when you save the file, the
settings therein will be used.  One may also press "?" on any of the lines for
help on what each of the variables do.

(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)


==============================================================================
OBTAINING A FILE					*netrw-obtain* *netrw-O* {{{2

If there are no marked files:

    When browsing a remote directory, one may obtain a file under the cursor
    (ie.  get a copy on your local machine, but not edit it) by pressing the O
    key.

If there are marked files:

    The marked files will be obtained (ie. a copy will be transferred to your
    local machine, but not set up for editing).

Only ftp and scp are supported for this operation (but since these two are
available for browsing, that shouldn't be a problem).  The status bar will
then show, on its right hand side, a message like "Obtaining filename".  The
statusline will be restored after the transfer is complete.

Netrw can also "obtain" a file using the local browser.  Netrw's display
of a directory is not necessarily the same as Vim's "current directory",
unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>.  One may select
a file using the local browser (by putting the cursor on it) and pressing
"O" will then "obtain" the file; ie. copy it to Vim's current directory.

Related topics:
 * To see what the current directory is, use |:pwd|
 * To make the currently browsed directory the current directory, see |netrw-c|
 * To automatically make the currently browsed directory the current
   directory, see |g:netrw_keepdir|.

					*netrw-newfile* *netrw-createfile*
OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY		*netrw-%* {{{2

To open a new file in netrw's current directory, press "%".  This map
will query the user for a new filename; an empty file by that name will
be placed in the netrw's current directory (ie. b:netrw_curdir).

Related topics:               |netrw-d|


PREVIEW WINDOW				*netrw-p* *netrw-preview* {{{2

One may use a preview window by using the "p" key when the cursor is atop the
desired filename to be previewed.  The display will then split to show both
the browser (where the cursor will remain) and the file (see |:pedit|).  By
default, the split will be taken horizontally; one may use vertical splitting
if one has set |g:netrw_preview| first.

An interesting set of netrw settings is: >

	let g:netrw_preview   = 1
	let g:netrw_liststyle = 3
	let g:netrw_winsize   = 30

These will:

	1. Make vertical splitting the default for previewing files
	2. Make the default listing style "tree"
	3. When a vertical preview window is opened, the directory listing
	   will use only 30% of the columns available; the rest of the window
	   is used for the preview window.

	Related: if you like this idea, you may also find :Lexplore
	         (|netrw-:Lexplore|) or |g:netrw_chgwin| of interest

Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|


PREVIOUS WINDOW					*netrw-P* *netrw-prvwin* {{{2

To edit a file or directory under the cursor in the previously used (last
accessed) window (see :he |CTRL-W_p|), press a "P".  If there's only one
window, then the one window will be horizontally split (by default).

If there's more than one window, the previous window will be re-used on
the selected file/directory.  If the previous window's associated buffer
has been modified, and there's only one window with that buffer, then
the user will be asked if s/he wishes to save the buffer first (yes,
no, or cancel).

Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
Associated setting variables:
   |g:netrw_alto|    control above/below splitting
   |g:netrw_altv|    control right/left splitting
   |g:netrw_preview| control horizontal vs vertical splitting
   |g:netrw_winsize| control initial sizing

Also see: |g:netrw_chgwin| |netrw-p|


REFRESHING THE LISTING		*netrw-refresh* *netrw-ctrl-l* *netrw-ctrl_l* {{{2

To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
hit the <cr> when atop the ./ directory entry in the listing.  One may also
refresh a local directory by using ":e .".


REVERSING SORTING ORDER		*netrw-r* *netrw-reverse* {{{2

One may toggle between normal and reverse sorting order by pressing the
"r" key.

Related topics:              |netrw-s|
Associated setting variable: |g:netrw_sort_direction|


RENAMING FILES OR DIRECTORIES	*netrw-move* *netrw-rename* *netrw-R* {{{2

If there are no marked files: (see |netrw-mf|)

    Renaming files and directories involves moving the cursor to the
    file/directory to be moved (renamed) and pressing "R".  You will then be
    queried for what you want the file/directory to be renamed to.  You may
    select a range of lines with the "V" command (visual selection), and then
    press "R"; you will be queried for each file as to what you want it
    renamed to.

If there are marked files:  (see |netrw-mf|)

    Marked files will be renamed (moved).  You will be queried as above in
    order to specify where you want the file/directory to be moved.

    If you answer a renaming query with a "s/frompattern/topattern/", then
    subsequent files on the marked file list will be renamed by taking each
    name, applying that substitute, and renaming each file to the result.
    As an example : >

    	mr  [query: reply with *.c]
	R   [query: reply with s/^\(.*\)\.c$/\1.cpp/]
<
    This example will mark all *.c files and then rename them to *.cpp
    files.

    The ctrl-X character has special meaning for renaming files: >

    	<c-x>      : a single ctrl-x tells netrw to ignore the portion of the response
	             lying between the last '/' and the ctrl-x.

	<c-x><c-x> : a pair of contiguous ctrl-x's tells netrw to ignore any
		     portion of the string preceding the double ctrl-x's.
<
    WARNING:~

    Note that moving files is a dangerous operation; copies are safer.  That's
    because a "move" for remote files is actually a copy + delete -- and if
    the copy fails and the delete succeeds you may lose the file.
    Use at your own risk.

The *g:netrw_rename_cmd* variable is used to implement remote renaming.  By
default its value is: >

	ssh HOSTNAME mv
<
One may rename a block of files and directories by selecting them with
V (|linewise-visual|) when using thin style.

See |cmdline-editing| for more on how to edit the command line; in particular,
you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
command line under the cursor) useful in conjunction with the R command.


SELECTING SORTING STYLE			*netrw-s* *netrw-sort* {{{2

One may select the sorting style by name, time, or (file) size.  The "s" map
allows one to circulate amongst the three choices; the directory listing will
automatically be refreshed to reflect the selected style.

Related topics:               |netrw-r| |netrw-S|
Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|


SETTING EDITING WINDOW		*netrw-editwindow* *netrw-C* *netrw-:NetrwC* {{{2

One may select a netrw window for editing with the "C" mapping, using the
:NetrwC [win#] command, or by setting |g:netrw_chgwin| to the selected window
number.  Subsequent selection of a file to edit (|netrw-cr|) will use that
window.

	* C : by itself, will select the current window holding a netrw buffer
	  for subsequent editing via |netrw-cr|.  The C mapping is only available
	  while in netrw buffers.

	* [count]C : the count will be used as the window number to be used
	  for subsequent editing via |netrw-cr|.

	* :NetrwC will set |g:netrw_chgwin| to the current window

	* :NetrwC win#  will set |g:netrw_chgwin| to the specified window
	  number

Using >
	let g:netrw_chgwin= -1
will restore the default editing behavior
(ie. subsequent editing will use the current window).

Related topics:			|netrw-cr| |g:netrw_browse_split|
Associated setting variables:	|g:netrw_chgwin|


SHRINKING OR EXPANDING A NETRW OR LEXPLORE WINDOW	*netrw-c-tab* {{{2

The <c-tab> key will toggle a netrw or |:Lexplore| window's width,
but only if |g:netrw_usetab| exists and is non-zero (and, of course,
only if your terminal supports differentiating <c-tab> from a plain
<tab>).

  * If the current window is a netrw window, toggle its width
    (between |g:netrw_wiw| and its original width)

  * Else if there is a |:Lexplore| window in the current tab, toggle
    its width

  * Else bring up a |:Lexplore| window

If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
for <c-tab>, then the <c-tab> will not be mapped.  One may map something other
than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >

	nmap <unique> (whatever)	<Plug>NetrwShrink
<
Related topics:			|:Lexplore|
Associated setting variable:	|g:netrw_usetab|


USER SPECIFIED MAPS					*netrw-usermaps* {{{1

One may make customized user maps.  Specify a variable, |g:Netrw_UserMaps|,
to hold a |List| of lists of keymap strings and function names: >

	[["keymap-sequence","ExampleUserMapFunc"],...]
<
When netrw is setting up maps for a netrw buffer, if |g:Netrw_UserMaps|
exists, then the internal function netrw#UserMaps(islocal) is called.
This function goes through all the entries in the |g:Netrw_UserMaps| list:

	* sets up maps: >
		nno <buffer> <silent> KEYMAP-SEQUENCE
		:call s:UserMaps(islocal,"ExampleUserMapFunc")
<	* refreshes if result from that function call is the string
	  "refresh"
	* if the result string is not "", then that string will be
	  executed (:exe result)
	* if the result is a List, then the above two actions on results
	  will be taken for every string in the result List

The user function is passed one argument; it resembles >

	fun! ExampleUserMapFunc(islocal)
<
where a:islocal is 1 if its a local-directory system call or 0 when
remote-directory system call.

			        *netrw-call*  *netrw-expose*  *netrw-modify*
Use netrw#Expose("varname")          to access netrw-internal (script-local)
				     variables.
Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
Use netrw#Call("funcname"[,args])    to call a netrw-internal function with
				     specified arguments.

Example: Get a copy of netrw's marked file list: >

	let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")
<
Example: Modify the value of netrw's marked file list: >

	call netrw#Modify("netrwmarkfilelist",[])
<
Example: Clear netrw's marked file list via a mapping on gu >
    " ExampleUserMap: {{{2
    fun! ExampleUserMap(islocal)
      call netrw#Modify("netrwmarkfilelist",[])
      call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
      let retval= ["refresh"]
      return retval
    endfun
    let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]
<

10. Problems and Fixes					*netrw-problems* {{{1

	(This section is likely to grow as I get feedback)
	(also see |netrw-debug|)
								*netrw-p1*
	P1. I use windows 95, and my ftp dumps four blank lines at the
	    end of every read.

		See |netrw-fixup|, and put the following into your
		<.vimrc> file:

			let g:netrw_win95ftp= 1

								*netrw-p2*
	P2. I use Windows, and my network browsing with ftp doesn't sort by
	    time or size!  -or-  The remote system is a Windows server; why
	    don't I get sorts by time or size?

		Windows' ftp has a minimal support for ls (ie. it doesn't
		accept sorting options).  It doesn't support the -F which
		gives an explanatory character (ABC/ for "ABC is a directory").
		Netrw then uses "dir" to get both its thin and long listings.
		If you think your ftp does support a full-up ls, put the
		following into your <.vimrc>: >

			let g:netrw_ftp_list_cmd    = "ls -lF"
			let g:netrw_ftp_timelist_cmd= "ls -tlF"
			let g:netrw_ftp_sizelist_cmd= "ls -slF"
<
		Alternatively, if you have cygwin on your Windows box, put
		into your <.vimrc>: >

			let g:netrw_cygwin= 1
<
		This problem also occurs when the remote system is Windows.
		In this situation, the various g:netrw_ftp_[time|size]list_cmds
		are as shown above, but the remote system will not correctly
		modify its listing behavior.


								*netrw-p3*
	P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw
	    used ssh!  That wasn't what I asked for...

		Netrw has two methods for browsing remote directories: ssh
		and ftp.  Unless you specify ftp specifically, ssh is used.
		When it comes time to do download a file (not just a directory
		listing), netrw will use the given protocol to do so.

								*netrw-p4*
	P4. I would like long listings to be the default.

		Put the following statement into your |.vimrc|: >

			let g:netrw_liststyle= 1
<
		Check out |netrw-browser-var| for more customizations that
		you can set.

								*netrw-p5*
	P5. My times come up oddly in local browsing

		Does your system's strftime() accept the "%c" to yield dates
		such as "Sun Apr 27 11:49:23 1997"?  If not, do a
		"man strftime" and find out what option should be used.  Then
		put it into your |.vimrc|: >

			let g:netrw_timefmt= "%X"  (where X is the option)
<
								*netrw-p6*
	P6. I want my current directory to track my browsing.
	    How do I do that?

	    Put the following line in your |.vimrc|:
>
		let g:netrw_keepdir= 0
<
								*netrw-p7*
	P7. I use Chinese (or other non-ascii) characters in my filenames, and
	    netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!

		(taken from an answer provided by Wu Yongwei on the vim
		mailing list)
		I now see the problem. Your code page is not 936, right? Vim
		seems only able to open files with names that are valid in the
		current code page, as are many other applications that do not
		use the Unicode version of Windows APIs. This is an OS-related
		issue. You should not have such problems when the system
		locale uses UTF-8, such as modern Linux distros.

		(...it is one more reason to recommend that people use utf-8!)

								*netrw-p8*
	P8. I'm getting "ssh is not executable on your system" -- what do I
	    do?

		(Dudley Fox) Most people I know use putty for windows ssh.  It
		is a free ssh/telnet application. You can read more about it
		here:

		http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also:

		(Marlin Unruh) This program also works for me. It's a single
		executable, so he/she can copy it into the Windows\System32
		folder and create a shortcut to it.

		(Dudley Fox) You might also wish to consider plink, as it
		sounds most similar to what you are looking for. plink is an
		application in the putty suite.

           http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink

		(Vissale Neang) Maybe you can try OpenSSH for windows, which
		can be obtained from:

		http://sshwindows.sourceforge.net/

		It doesn't need the full Cygwin package.

		(Antoine Mechelynck) For individual Unix-like programs needed
		for work in a native-Windows environment, I recommend getting
		them from the GnuWin32 project on sourceforge if it has them:

		    http://gnuwin32.sourceforge.net/

		Unlike Cygwin, which sets up a Unix-like virtual machine on
		top of Windows, GnuWin32 is a rewrite of Unix utilities with
		Windows system calls, and its programs works quite well in the
		cmd.exe "Dos box".

		(dave) Download WinSCP and use that to connect to the server.
		In Preferences > Editors, set gvim as your editor:

			- Click "Add..."
			- Set External Editor (adjust path as needed, include
			  the quotes and !.! at the end):
			    "c:\Program Files\Vim\vim70\gvim.exe" !.!
			- Check that the filetype in the box below is
			  {asterisk}.{asterisk} (all files), or whatever types
			  you want (cec: change {asterisk} to * ; I had to
			  write it that way because otherwise the helptags
			  system thinks it's a tag)
			- Make sure it's at the top of the listbox (click it,
			  then click "Up" if it's not)
		If using the Norton Commander style, you just have to hit <F4>
		to edit a file in a local copy of gvim.

		(Vit Gottwald) How to generate public/private key and save
		public key it on server: >
  http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
			(8.3 Getting ready for public key authentication)
<
		How to use a private key with 'pscp': >

  http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
			(5.2.4 Using public key authentication with PSCP)
<
		(Ben Schmidt) I find the ssh included with cwRsync is
		brilliant, and install cwRsync or cwRsyncServer on most
		Windows systems I come across these days. I guess COPSSH,
		packed by the same person, is probably even better for use as
		just ssh on Windows, and probably includes sftp, etc. which I
		suspect the cwRsync doesn't, though it might

		(cec) To make proper use of these suggestions above, you will
		need to modify the following user-settable variables in your
		.vimrc:

		|g:netrw_ssh_cmd| |g:netrw_list_cmd|  |g:netrw_mkdir_cmd|
		|g:netrw_rm_cmd|  |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd|

		The first one (|g:netrw_ssh_cmd|) is the most important; most
		of the others will use the string in g:netrw_ssh_cmd by
		default.

						*netrw-p9* *netrw-ml_get*
	P9. I'm browsing, changing directory, and bang!  ml_get errors
	    appear and I have to kill vim.  Any way around this?

		Normally netrw attempts to avoid writing swapfiles for
		its temporary directory buffers.  However, on some systems
		this attempt appears to be causing ml_get errors to
		appear.  Please try setting |g:netrw_use_noswf| to 0
		in your <.vimrc>: >
			let g:netrw_use_noswf= 0
<
								*netrw-p10*
	P10. I'm being pestered with "[something] is a directory" and
	     "Press ENTER or type command to continue" prompts...

		The "[something] is a directory" prompt is issued by Vim,
		not by netrw, and there appears to be no way to work around
		it.  Coupled with the default cmdheight of 1, this message
		causes the "Press ENTER..." prompt.  So:  read |hit-enter|;
		I also suggest that you set your |'cmdheight'| to 2 (or more) in
		your <.vimrc> file.

								*netrw-p11*
	P11. I want to have two windows; a thin one on the left and my editing
	     window on the right.  How may I accomplish this?

	     You probably want netrw running as in a side window.  If so, you
	     will likely find that ":[N]Lexplore" does what you want.  The
	     optional "[N]" allows you to select the quantity of columns you
	     wish the |:Lexplore|r window to start with (see |g:netrw_winsize|
	     for how this parameter works).

	     Previous solution:

		* Put the following line in your <.vimrc>:
			let g:netrw_altv = 1
		* Edit the current directory:  :e .
		* Select some file, press v
		* Resize the windows as you wish (see |CTRL-W_<| and
		  |CTRL-W_>|).  If you're using gvim, you can drag
		  the separating bar with your mouse.
		* When you want a new file, use  ctrl-w h  to go back to the
		  netrw browser, select a file, then press P  (see |CTRL-W_h|
		  and |netrw-P|).  If you're using gvim, you can press
		  <leftmouse> in the browser window and then press the
		  <middlemouse> to select the file.


								*netrw-p12*
	P12. My directory isn't sorting correctly, or unwanted letters are
	     appearing in the listed filenames, or things aren't lining
	     up properly in the wide listing, ...

	     This may be due to an encoding problem.  I myself usually use
	     utf-8, but really only use ascii (ie. bytes from 32-126).
	     Multibyte encodings use two (or more) bytes per character.
	     You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.

								*netrw-p13*
	P13. I'm a Windows + putty + ssh user, and when I attempt to browse,
	     the directories are missing trailing "/"s so netrw treats them
	     as file transfers instead of as attempts to browse
	     subdirectories.  How may I fix this?

	     (mikeyao) If you want to use vim via ssh and putty under Windows,
	     try combining the use of pscp/psftp with plink.  pscp/psftp will
	     be used to connect and plink will be used to execute commands on
	     the server, for example: list files and directory using 'ls'.

	     These are the settings I use to do this:
>
	    " list files, it's the key setting, if you haven't set,
	    " you will get a blank buffer
	    let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
	    " if you haven't add putty directory in system path, you should
	    " specify scp/sftp command.  For examples:
	    "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
	    "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
<
								*netrw-p14*
	P14. I would like to speed up writes using Nwrite and scp/ssh
	     style connections.  How?  (Thomer M. Gil)

	     Try using ssh's ControlMaster and ControlPath (see the ssh_config
	     man page) to share multiple ssh connections over a single network
	     connection. That cuts out the cryptographic handshake on each
	     file write, sometimes speeding it up by an order of magnitude.
	     (see  http://thomer.com/howtos/netrw_ssh.html)
	     (included by permission)

	     Add the following to your ~/.ssh/config: >

		 # you change "*" to the hostname you care about
		 Host *
		   ControlMaster auto
		   ControlPath /tmp/%r@%h:%p

<	     Then create an ssh connection to the host and leave it running: >

		 ssh -N host.domain.com

<	     Now remotely open a file with Vim's Netrw and enjoy the
	     zippiness: >

		vim scp://host.domain.com//home/user/.bashrc
<
								*netrw-p15*
	P15. How may I use a double-click instead of netrw's usual single click
	     to open a file or directory?  (Ben Fritz)

	     First, disable netrw's mapping with >
		    let g:netrw_mousemaps= 0
<	     and then create a netrw buffer only mapping in
	     $HOME/.vim/after/ftplugin/netrw.vim: >
		    nmap <buffer> <2-leftmouse> <CR>
<	     Note that setting g:netrw_mousemaps to zero will turn off
	     all netrw's mouse mappings, not just the <leftmouse> one.
	     (see |g:netrw_mousemaps|)

								*netrw-p16*
	P16. When editing remote files (ex. :e ftp://hostname/path/file),
	     under Windows I get an |E303| message complaining that its unable
	     to open a swap file.

	     (romainl) It looks like you are starting Vim from a protected
	     directory.  Start netrw from your $HOME or other writable
	     directory.

								*netrw-p17*
	P17. Netrw is closing buffers on its own.
	     What steps will reproduce the problem?
		1. :Explore, navigate directories, open a file
		2. :Explore, open another file
		3. Buffer opened in step 1 will be closed. o
	    What is the expected output? What do you see instead?
		I expect both buffers to exist, but only the last one does.

	   (Lance) Problem is caused by "set autochdir" in .vimrc.
	   (drchip) I am able to duplicate this problem with |'acd'| set.
	            It appears that the buffers are not exactly closed;
		    a ":ls!" will show them (although ":ls" does not).

								*netrw-P18*
	P18. How to locally edit a file that's only available via
	     another server accessible via ssh?
	     See http://stackoverflow.com/questions/12469645/
	     "Using Vim to Remotely Edit A File on ServerB Only
	      Accessible From ServerA"

								*netrw-P19*
	P19. How do I get numbering on in directory listings?
		With |g:netrw_bufsettings|, you can control netrw's buffer
		settings; try putting >
		  let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
<		in your .vimrc.  If you'd like to have relative numbering
		instead, try >
		  let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
<
								*netrw-P20*
	P20. How may I have gvim start up showing a directory listing?
		Try putting the following code snippet into your .vimrc: >
		    augroup VimStartup
		      au!
		      au VimEnter * if expand("%") == "" && argc() == 0 &&
		      \ (v:servername =~ 'GVIM\d*' || v:servername == "")
		      \ | e . | endif
		    augroup END
<		You may use Lexplore instead of "e" if you're so inclined.
		This snippet assumes that you have client-server enabled
		(ie. a "huge" vim version).

								*netrw-P21*
	P21. I've made a directory (or file) with an accented character, but
		netrw isn't letting me enter that directory/read that file:

		Its likely that the shell or o/s is using a different encoding
		than you have vim (netrw) using.  A patch to vim supporting
		"systemencoding" may address this issue in the future; for
		now, just have netrw use the proper encoding.  For example: >

			au FileType netrw set enc=latin1
<
								*netrw-P22*
	P22. I get an error message when I try to copy or move a file:

		**error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!

	     What's wrong?

	     Netrw uses several system level commands to do things (see

		 |g:netrw_localcopycmd|, |g:netrw_localmovecmd|,
		 |g:netrw_localrmdir|, |g:netrw_mkdir_cmd|).

	    You may need to adjust the default commands for one or more of
	    these commands by setting them properly in your .vimrc.  Another
	    source of difficulty is that these commands use vim's local
	    directory, which may not be the same as the browsing directory
	    shown by netrw (see |g:netrw_keepdir|).


==============================================================================
11. Debugging Netrw Itself				*netrw-debug* {{{1

Step 1: check that the problem you've encountered hasn't already been resolved
by obtaining a copy of the latest (often developmental) netrw at:

	http://www.drchip.org/astronaut/vim/index.html#NETRW

The <netrw.vim> script is typically installed on systems as something like:
>
	/usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
	/usr/local/share/vim/vim7x/autoload/netrw.vim
		(see output of :echo &rtp)
<
which is loaded automatically at startup (assuming :set nocp).  If you
installed a new netrw, then it will be located at >

	$HOME/.vim/plugin/netrwPlugin.vim
	$HOME/.vim/autoload/netrw.vim
<
Step 2: assuming that you've installed the latest version of netrw,
check that your problem is really due to netrw.  Create a file
called netrw.vimrc with the following contents: >

	set nocp
	so $HOME/.vim/plugin/netrwPlugin.vim
<
Then run netrw as follows: >

	vim -u netrw.vimrc --noplugins -i NONE [some path here]
<
Perform whatever netrw commands you need to, and check that the problem is
still present.  This procedure sidesteps any issues due to personal .vimrc
settings, .viminfo file, and other plugins.  If the problem does not appear,
then you need to determine which setting in your .vimrc is causing the
conflict with netrw or which plugin(s) is/are involved.

Step 3: If the problem still is present, then get a debugging trace from
netrw:

	1. Get the <Decho.vim> script, available as:

	     http://www.drchip.org/astronaut/vim/index.html#DECHO
	   or
	     http://vim.sourceforge.net/scripts/script.php?script_id=120

	  Decho.vim is provided as a "vimball"; see |vimball-intro|.

	2. Edit the <netrw.vim> file by typing: >

		vim netrw.vim
		:DechoOn
		:wq
<
	   To restore to normal non-debugging behavior, re-edit <netrw.vim>
	   and type >

		vim netrw.vim
		:DechoOff
		:wq
<
	   This command, provided by <Decho.vim>, will comment out all
	   Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).

	3. Then bring up vim and attempt to evoke the problem by doing a
	   transfer or doing some browsing.  A set of messages should appear
	   concerning the steps that <netrw.vim> took in attempting to
	   read/write your file over the network in a separate tab or
	   server vim window.

	   To save the file, use >

		:tabnext
		:set bt=
		:w! DBG

<	   Furthermore, it'd be helpful if you would type >
		:Dsep <command>
<	   where <command> is the command you're about to type next,
	   thereby making it easier to associate which part of the
	   debugging trace is due to which command.

	   Please send that information to <netrw.vim>'s maintainer along
	   with the o/s you're using and the vim version that you're using
	   (see |:version|) >
		NdrOchip at ScampbellPfamily.AbizM - NOSPAM
<
==============================================================================
12. History						*netrw-history* {{{1

	v162:	Sep 19, 2016	* (haya14busa) pointed out two syntax errors
				  with a patch; these are now fixed.
		Oct 26, 2016	* I started using mate-terminal and found that
				  x and gx (|netrw-x| and |netrw-gx|) were no
				  longer working.  Fixed (using atril when
				  $DESKTOP_SESSION is "mate").
		Nov 04, 2016	* (Martin Vuille) pointed out that @+ was
				  being restored with keepregstar rather than
				  keepregplus.
		Nov 09, 2016	* Broke apart the command from the options,
				  mostly for Windows.  Introduced new netrw
				  settings: |g:netrw_localcopycmdopt|
				  |g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt|
				  |g:netrw_localmovecmdopt| |g:netrw_localrmdiropt|
		Nov 21, 2016	* (mattn) provided a patch for preview; swapped
				  winwidth() with winheight()
		Nov 22, 2016	* (glacambre) reported that files containing
				  spaces weren't being obtained properly via
				  scp.  Fix: apparently using single quotes
				  such as with 'file name' wasn't enough; the
				  spaces inside the quotes also had to be
				  escaped (ie. 'file\ name').
				* Also fixed obtain (|netrw-O|) to be able to
				  obtain files with spaces in their names
		Dec 20, 2016	* (xc1427) Reported that using "I" (|netrw-I|)
				  when atop "Hiding" in the banner also caused
				  the active-banner hiding control to occur
		Jan 03, 2017	* (Enno Nagel) reported that attempting to
				  apply netrw to a directory that was without
				  read permission caused a syntax error.
		Jan 13, 2017	* (Ingo Karkat) provided a patch which makes
				  using netrw#Call() better.  Now returns
				  value of internal routines return, for example.
		Jan 13, 2017	* (Ingo Karkat) changed netrw#FileUrlRead to
				  use |:edit| instead of |:read|.  I also
				  changed the routine name to netrw#FileUrlEdit.
		Jan 16, 2017	* (Sayem) reported a problem where :Lexplore
				  could generate a new listing buffer and
				  window instead of toggling the netrw display.
				  Unfortunately, the directions for eliciting
				  the problem weren't complete, so I may or
				  may not have fixed that issue.
		Feb 06, 2017	* Implemented cb and cB.  Changed "c" to "cd".
				  (see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
		Mar 21, 2017	* previously, netrw would specify (safe) settings
				  even when the setting was already safe for
				  netrw.  Netrw now attempts to leave such
				  already-netrw-safe settings alone.
				  (affects s:NetrwOptionRestore() and
				  s:NetrwSafeOptions(); also introduced
				  s:NetrwRestoreSetting())
		Jun 26, 2017	* (Christian Brabandt) provided a patch to
				  allow curl to follow redirects (ie. -L
				  option)
		Jun 26, 2017	* (Callum Howard) reported a problem with
				  :Lexpore not removing the Lexplore window
				  after a change-directory
		Aug 30, 2017	* (Ingo Karkat) one cannot switch to the
				  previously edited file (e.g. with CTRL-^)
				  after editing a file:// URL.  Patch to
				  have a "keepalt" included.
		Oct 17, 2017	* (Adam Faryna) reported that gn (|netrw-gn|)
				  did not work on directories in the current
				  tree
	v157:	Apr 20, 2016	* (Nicola) had set up a "nmap <expr> ..." with
				  a function that returned a 0 while silently
				  invoking a shell command.  The shell command
				  activated a ShellCmdPost event which in turn
				  called s:LocalBrowseRefresh().  That looks
				  over all netrw buffers for changes needing
				  refreshes.  However, inside a |:map-<expr>|,
				  tab and window changes are disallowed.  Fixed.
				  (affects netrw's s:LocalBrowseRefresh())
				* |g:netrw_localrmdir| not used any more, but
				  the relevant patch that causes |delete()| to
				  take over was #1107 (not #1109).
				* |expand()| is now used on |g:netrw_home|;
				  consequently, g:netrw_home may now use
				  environment variables
				* s:NetrwLeftmouse and s:NetrwCLeftmouse will
				  return without doing anything if invoked
				  when inside a non-netrw window
		Jun 15, 2016	* gx now calls netrw#GX() which returns
				  the word under the cursor.  The new
				  wrinkle: if one is in a netrw buffer,
				  then netrw's s:NetrwGetWord().
		Jun 22, 2016	* Netrw was executing all its associated
				  Filetype commands silently; I'm going
				  to try doing that "noisily" and see if
				  folks have a problem with that.
		Aug 12, 2016	* Changed order of tool selection for
				  handling http://... viewing.
				  (Nikolay Aleksandrovich Pavlov)
		Aug 21, 2016	* Included hiding/showing/all for tree
				  listings
				* Fixed refresh (^L) for tree listings
	v156:	Feb 18, 2016	* Changed =~ to =~# where appropriate
		Feb 23, 2016	* s:ComposePath(base,subdir) now uses
				  fnameescape() on the base portion
		Mar 01, 2016	* (gt_macki) reported where :Explore would
				  make file unlisted. Fixed (tst943)
		Apr 04, 2016	* (reported by John Little) netrw normally
				  suppresses browser messages, but sometimes
				  those "messages" are what is wanted.
				  See |g:netrw_suppress_gx_mesg|
		Apr 06, 2016	* (reported by Carlos Pita) deleting a remote
				  file was giving an error message.  Fixed.
		Apr 08, 2016	* (Charles Cooper) had a problem with an
				  undefined b:netrw_curdir.  He also provided
				  a fix.
		Apr 20, 2016	* Changed s:NetrwGetBuffer(); now uses
				  dictionaries.  Also fixed the "No Name"
				  buffer problem.
	v155:	Oct 29, 2015	* (Timur Fayzrakhmanov) reported that netrw's
				  mapping of ctrl-l was not allowing refresh of
				  other windows when it was done in a netrw
				  window.
		Nov 05, 2015	* Improved s:TreeSqueezeDir() to use search()
				  instead of a loop
				* NetrwBrowse() will return line to
				  w:netrw_bannercnt if cursor ended up in
				  banner
		Nov 16, 2015	* Added a <Plug>NetrwTreeSqueeze (|netrw-s-cr|)
		Nov 17, 2015	* Commented out imaps -- perhaps someone can
				  tell me how they're useful and should be
				  retained?
		Nov 20, 2015	* Added |netrw-ma| and |netrw-mA| support
		Nov 20, 2015	* gx (|netrw-gx|) on a URL downloaded the
				  file in addition to simply bringing up the
				  URL in a browser.  Fixed.
		Nov 23, 2015	* Added |g:netrw_sizestyle| support
		Nov 27, 2015	* Inserted a lot of <c-u>s into various netrw
				  maps.
		Jan 05, 2016	* |netrw-qL| implemented to mark files based
				  upon |location-list|s; similar to |netrw-qF|.
		Jan 19, 2016	* using - call delete(directoryname,"d") -
				  instead of using g:netrw_localrmdir if
				  v7.4 + patch#1107 is available
		Jan 28, 2016	* changed to using |winsaveview()| and
				  |winrestview()|
		Jan 28, 2016	* s:NetrwTreePath() now does a save and
				  restore of view
		Feb 08, 2016	* Fixed a tree-listing problem with remote
				  directories
	v154:	Feb 26, 2015	* (Yuri Kanivetsky) reported a situation where
				  a file was not treated properly as a file
				  due to g:netrw_keepdir == 1
		Mar 25, 2015	* (requested by Ben Friz) one may now sort by
				  extension
		Mar 28, 2015	* (requested by Matt Brooks) netrw has a lot
				  of buffer-local mappings; however, some
				  plugins (such as vim-surround) set up
				  conflicting mappings that cause vim to wait.
				  The "<nowait>" modifier has been included
				  with most of netrw's mappings to avoid that
				  delay.
		Jun 26, 2015	* |netrw-gn| mapping implemted
				* :Ntree NotADir resulted in having
				  the tree listing expand in the error messages
				  window.  Fixed.
		Jun 29, 2015	* Attempting to delete a file remotely caused
				  an error with "keepsol" mentioned; fixed.
		Jul 08, 2015	* Several changes to keep the |:jumps| table
				  correct when working with
				  |g:netrw_fastbrowse| set to 2
				* wide listing with accented characters fixed
				  (using %-S instead of %-s with a |printf()|
		Jul 13, 2015	* (Daniel Hahler) CheckIfKde() could be true
				  but kfmclient not installed.  Changed order
				  in netrw#BrowseX(): checks if kde and
				  kfmclient, then will use xdg-open on a unix
				  system (if xdg-open is executable)
		Aug 11, 2015	* (McDonnell) tree listing mode wouldn't
				  select a file in a open subdirectory.
				* (McDonnell) when multiple subdirectories
				  were concurrently open in tree listing
				  mode, a ctrl-L wouldn't refresh properly.
				* The netrw:target menu showed duplicate
				  entries
		Oct 13, 2015	* (mattn) provided an exception to handle
				  windows with shellslash set but no shell
		Oct 23, 2015	* if g:netrw_usetab and <c-tab> now used
				  to control whether NetrwShrink is used
				  (see |netrw-c-tab|)
	v153:	May 13, 2014	* added another |g:netrw_ffkeep| usage {{{2
		May 14, 2014	* changed s:PerformListing() so that it
				  always sets ft=netrw for netrw buffers
				  (ie. even when syntax highlighting is
				  off, not available, etc)
		May 16, 2014	* introduced the |netrw-ctrl-r| functionality
		May 17, 2014	* introduced the |netrw-:NetrwMB| functionality
				* mb and mB (|netrw-mb|, |netrw-mB|) will
				  add/remove marked files from bookmark list
		May 20, 2014	* (Enno Nagel) reported that :Lex <dirname>
				  wasn't working.  Fixed.
		May 26, 2014	* restored test to prevent leftmouse window
				  resizing from causing refresh.
				  (see s:NetrwLeftmouse())
				* fixed problem where a refresh caused cursor
				  to go just under the banner instead of
				  staying put
		May 28, 2014	* (László Bimba) provided a patch for opening
				  the |:Lexplore| window 100% high, optionally
				  on the right, and will work with remote
				  files.
		May 29, 2014	* implemented :NetrwC  (see |netrw-:NetrwC|)
		Jun 01, 2014	* Removed some "silent"s from commands used
				  to implemented scp://... and pscp://...
				  directory listing.  Permits request for
				  password to appear.
		Jun 05, 2014	* (Enno Nagel) reported that user maps "/"
				  caused problems with "b" and "w", which
				  are mapped (for wide listings only) to
				  skip over files rather than just words.
		Jun 10, 2014	* |g:netrw_gx| introduced to allow users to
				  override default "<cfile>" with the gx
				  (|netrw-gx|) map
		Jun 11, 2014	* gx (|netrw-gx|), with |'autowrite'| set,
				  will write modified files.  s:NetrwBrowseX()
				  will now save, turn off, and restore the
				  |'autowrite'| setting.
		Jun 13, 2014	* added visual map for gx use
		Jun 15, 2014	* (Enno Nagel) reported that with having hls
				  set and wide listing style in use, that the
				  b and w maps caused unwanted highlighting.
		Jul 05, 2014	* |netrw-mv| and |netrw-mX| commands included
		Jul 09, 2014	* |g:netrw_keepj| included, allowing optional
				  keepj
		Jul 09, 2014	* fixing bugs due to previous update
		Jul 21, 2014	* (Bruno Sutic) provided an updated
				  netrw_gitignore.vim
		Jul 30, 2014	* (Yavuz Yetim) reported that editing two
				  remote files of the same name caused the
				  second instance to have a "temporary"
				  name.  Fixed: now they use the same buffer.
		Sep 18, 2014	* (Yasuhiro Matsumoto) provided a patch which
				  allows scp and windows local paths to work.
		Oct 07, 2014	* gx (see |netrw-gx|) when atop a directory,
				  will now do |gf| instead
		Nov 06, 2014	* For cygwin: cygstart will be available for
				  netrw#BrowseX() to use if its executable.
		Nov 07, 2014	* Began support for file://... urls.  Will use
				  |g:netrw_file_cmd| (typically elinks or links)
		Dec 02, 2014	* began work on having mc (|netrw-mc|) copy
				  directories.  Works for linux machines,
				  cygwin+vim, but not for windows+gvim.
		Dec 02, 2014	* in tree mode, netrw was not opening
				  directories via symbolic links.
		Dec 02, 2014	* added resolved link information to
				  thin and tree modes
		Dec 30, 2014	* (issue#231) |:ls| was not showing
				  remote-file buffers reliably.  Fixed.
	v152:	Apr 08, 2014	* uses the |'noswapfile'| option (requires {{{2
				  vim 7.4 with patch 213)
				* (Enno Nagel) turn |'rnu'| off in netrw
				  buffers.
				* (Quinn Strahl) suggested that netrw
				  allow regular window splitting to occur,
				  thereby allowing |'equalalways'| to take
				  effect.
				* (qingtian zhao) normally, netrw will
				  save and restore the |'fileformat'|;
				  however, sometimes that isn't wanted
		Apr 14, 2014	* whenever netrw marks a buffer as ro,
				  it will also mark it as nomod.
		Apr 16, 2014	* sftp protocol now supported by
				  netrw#Obtain(); this means that one
				  may use "mc" to copy a remote file
				  to a local file using sftp, and that
				  the |netrw-O| command can obtain remote
				  files via sftp.
				* added [count]C support (see |netrw-C|)
		Apr 18, 2014	* when |g:netrw_chgwin| is one more than
				  the last window, then vertically split
				  the last window and use it as the
				  chgwin window.
		May 09, 2014	* SavePosn was "saving filename under cursor"
				  from a non-netrw window when using :Rex.
	v151:	Jan 22, 2014	* extended :Rexplore to return to buffer {{{2
				  prior to Explore or editing a directory
				* (Ken Takata) netrw gave error when
				  clipboard was disabled.  Sol'n: Placed
				  several if has("clipboard") tests in.
				* Fixed ftp://X@Y@Z// problem; X@Y now
				  part of user id, and only Z is part of
				  hostname.
				* (A Loumiotis) reported that completion
				  using a directory name containing spaces
				  did not work.  Fixed with a retry in
				  netrw#Explore() which removes the
				  backslashes vim inserted.
		Feb 26, 2014	* :Rexplore now records the current file
				   using w:netrw_rexfile when returning via
				  |:Rexplore|
		Mar 08, 2014	* (David Kotchan) provided some patches
				  allowing netrw to work properly with
				  windows shares.
				* Multiple one-liner help messages available
				  by pressing <cr> while atop the "Quick
				  Help" line
				* worked on ShellCmdPost, FocusGained event
				  handling.
				* |:Lexplore| path: will be used to update
				  a left-side netrw browsing directory.
		Mar 12, 2014	* |netrw-s-cr|: use <s-cr>  to close
				  tree directory implemented
		Mar 13, 2014	* (Tony Mechylynck) reported that using
				  the browser with ftp on a directory,
				  and selecting a gzipped txt file, that
				  an E19 occurred (which was issued by
				  gzip.vim).  Fixed.
		Mar 14, 2014	* Implemented :MF and :MT (see |netrw-:MF|
				  and |netrw-:MT|, respectively)
		Mar 17, 2014	* |:Ntree| [dir] wasn't working properly; fixed
		Mar 18, 2014	* Changed all uses of set to setl
		Mar 18, 2014	* Commented the netrw_btkeep line in
				  s:NetrwOptionSave(); the effect is that
				  netrw buffers will remain as |'bt'|=nofile.
				  This should prevent swapfiles being created
				  for netrw buffers.
		Mar 20, 2014	* Changed all uses of lcd to use s:NetrwLcd()
				  instead.  Consistent error handling results
				  and it also handles Window's shares
				* Fixed |netrw-d| command when applied with ftp
				* https: support included for netrw#NetRead()
	v150:	Jul 12, 2013	* removed a "keepalt" to allow ":e #" to {{{2
				  return to the netrw directory listing
		Jul 13, 2013	* (Jonas Diemer) suggested changing
				  a <cWORD> to <cfile>.
		Jul 21, 2013	* (Yuri Kanivetsky) reported that netrw's
				  use of mkdir did not produce directories
				  following the user's umask.
		Aug 27, 2013	* introduced |g:netrw_altfile| option
		Sep 05, 2013	* s:Strlen() now uses |strdisplaywidth()|
				  when available, by default
		Sep 12, 2013	* (Selyano Baldo) reported that netrw wasn't
				  opening some directories properly from the
				  command line.
		Nov 09, 2013	* |:Lexplore| introduced
				* (Ondrej Platek) reported an issue with
				  netrw's trees (P15).  Fixed.
				* (Jorge Solis) reported that "t" in
				  tree mode caused netrw to forget its
				  line position.
		Dec 05, 2013	* Added <s-leftmouse> file marking
				  (see |netrw-mf|)
		Dec 05, 2013	* (Yasuhiro Matsumoto) Explore should use
				  strlen() instead s:Strlen() when handling
				  multibyte chars with strpart()
				  (ie. strpart() is byte oriented, not
				  display-width oriented).
		Dec 09, 2013	* (Ken Takata) Provided a patch; File sizes
				  and a portion of timestamps were wrongly
				  highlighted with the directory color when
				  setting `:let g:netrw_liststyle=1` on Windows.
				* (Paul Domaskis) noted that sometimes
				  cursorline was activating in non-netrw
				  windows.  All but one setting of cursorline
				  was done via setl; there was one that was
				  overlooked.  Fixed.
		Dec 24, 2013	* (esquifit) asked that netrw allow the
				  /cygdrive prefix be a user-alterable
				  parameter.
		Jan 02, 2014	* Fixed a problem with netrw-based ballon
				  evaluation (ie. netrw#NetrwBaloonHelp()
				  not having been loaded error messages)
		Jan 03, 2014	* Fixed a problem with tree listings
				* New command installed: |:Ntree|
		Jan 06, 2014	* (Ivan Brennan) reported a problem with
				  |netrw-P|.  Fixed.
		Jan 06, 2014	* Fixed a problem with |netrw-P| when the
				  modified file was to be abandoned.
		Jan 15, 2014	* (Matteo Cavalleri) reported that when the
				  banner is suppressed and tree listing is
				  used, a blank line was left at the top of
				  the display.  Fixed.
		Jan 20, 2014	* (Gideon Go) reported that, in tree listing
				  style, with a previous window open, that
				  the wrong directory was being used to open
				  a file.  Fixed. (P21)
	v149:	Apr 18, 2013	* in wide listing format, now have maps for {{{2
				  w and b to move to next/previous file
		Apr 26, 2013	* one may now copy files in the same
				  directory; netrw will issue requests for
				  what names the files should be copied under
		Apr 29, 2013	* Trying Benzinger's problem again.  Seems
				  that commenting out the BufEnter and
				  installing VimEnter (only) works.  Weird
				  problem!  (tree listing, vim -O Dir1 Dir2)
		May 01, 2013	* :Explore ftp://... wasn't working.  Fixed.
		May 02, 2013	* introduced |g:netrw_bannerbackslash| as
				  requested by Paul Domaskis.
		Jul 03, 2013	* Explore now avoids splitting when a buffer
				  will be hidden.
	v148:	Apr 16, 2013	* changed Netrw's Style menu to allow direct {{{2
				  choice of listing style, hiding style, and
				  sorting style

==============================================================================
13. Todo						*netrw-todo* {{{1

07/29/09 : banner	:|g:netrw_banner| can be used to suppress the
	   suppression	  banner.  This feature is new and experimental,
			  so its in the process of being debugged.
09/04/09 : "gp"		: See if it can be made to work for remote systems.
			: See if it can be made to work with marked files.

==============================================================================
14. Credits						*netrw-credits* {{{1

	Vim editor	by Bram Moolenaar (Thanks, Bram!)
	dav		support by C Campbell
	fetch		support by Bram Moolenaar and C Campbell
	ftp		support by C Campbell <NdrOchip@ScampbellPfamily.AbizM>
	http		support by Bram Moolenaar <bram@moolenaar.net>
	rcp
	rsync		support by C Campbell (suggested by Erik Warendorph)
	scp		support by raf <raf@comdyn.com.au>
	sftp		support by C Campbell

	inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell

	Jérôme Augé		-- also using new buffer method with ftp+.netrc
	Bram Moolenaar		-- obviously vim itself, :e and v:cmdarg use,
	                           fetch,...
	Yasuhiro Matsumoto	-- pointing out undo+0r problem and a solution
	Erik Warendorph		-- for several suggestions (g:netrw_..._cmd
				   variables, rsync etc)
	Doug Claar		-- modifications to test for success with ftp
	                           operation

==============================================================================
Modelines: {{{1
 vim:tw=78:ts=8:ft=help:norl:fdm=marker
PK�j�ZT�'Wvim80/doc/pi_spec.txtnu�[���*pi_spec.txt*   For Vim version 8.0.  Last change: 2006 Apr 24

by Gustavo Niemeyer ~

This is a filetype plugin to work with rpm spec files.

Currently, this Vim plugin allows you to easily update the %changelog
section in RPM spec files.  It will even create a section for you if it
doesn't exist yet.  If you've already inserted an entry today, it will
give you the opportunity to just add a new item in today's entry.  If you
don't provide a format string (|spec_chglog_format|), it'll ask you an
email address and build a format string by itself.

1. How to use it	|spec-how-to-use-it|
2. Customizing		|spec-customizing|

==============================================================================
1. How to use it				*spec-how-to-use-it*

The spec_chglog plugin provides a map like the following:

	:map <buffer> <LocalLeader>c <Plug>SpecChangelog

It means that you may run the plugin inside a spec file by pressing
your maplocalleader key (default is '\') plus 'c'.  If you do not have
|spec_chglog_format| set, the plugin will ask you for an email address
to use in this edit session.

Every time you run the plugin, it will check to see if the last entry in the
changelog has been written today and by you.  If the entry matches, it will
just insert a new changelog item, otherwise it will create a new changelog
entry.  If you are running with |spec_chglog_release_info| enabled, it will
also check if the name, version and release matches.  The plugin is smart
enough to ask you if it should update the package release, if you have not
done so.

Setting a map					*spec-setting-a-map*
-------------

As you should know, you can easily set a map to access any Vim command (or
anything, for that matter).  If you don't like the default map of
<LocalLeader>c, you may just set up your own key.  The following line
shows you how you could do this in your .vimrc file, mapping the plugin to
the <F5> key:

	au FileType spec map <buffer> <F5> <Plug>SpecChangelog

Note: the plugin will respect your desire to change the default mapping
      and won't set it.

This command will add a map only in the spec file buffers.


==============================================================================
2. Customizing					*spec-customizing*

The format string				*spec_chglog_format*
-----------------

You can easily customize how your spec file entry will look like.  To do
this just set the variable "spec_chglog_format" in your .vimrc file like
this: >

	let spec_chglog_format = "%a %b %d %Y My Name <my@email.com>"

Note that "%a %b %d %Y" is the most used time format.  If you don't provide
a format string, when you run the SpecChangelog command for the first
time, it will ask you an email address and build the |spec_chglog_format|
variable for you.  This way, you will only need to provide your email
address once.

To discover which format options you can use, take a look at the strftime()
function man page.

Where to insert new items			*spec_chglog_prepend*
-------------------------

The plugin will usually insert new %changelog entry items (note that it's
not the entry itself) after the existing ones.  If you set the
spec_chglog_prepend variable >

	let spec_chglog_prepend = 1

it will insert new items before the existing ones.

Inserting release info				*spec_chglog_release_info*
----------------------

If you want, the plugin may automatically insert release information
on each changelog entry.  One advantage of turning this feature on is
that it may control if the release has been updated after the last
change in the package or not.  If you have not updated the package
version or release, it will ask you if it should update the package
release for you.  To turn this feature on, just insert the following
code in your .vimrc: >

	let spec_chglog_release_info = 1

Then, the first item in your changelog entry will be something like: >

	+ name-1.0-1cl

If you don't like the release updating feature and don't want to answer
"No" each time it detects an old release, you may disable it with >

	let spec_chglog_never_increase_release = 1


Good luck!!

vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��[��K�Kvim80/doc/if_cscop.txtnu�[���*if_cscop.txt*  For Vim version 8.0.  Last change: 2018 Jan 21


		  VIM REFERENCE MANUAL    by Andy Kahn

							*cscope* *Cscope*
This document explains how to use Vim's cscope interface.

Cscope is a tool like ctags, but think of it as ctags on steroids since it
does a lot more than what ctags provides.  In Vim, jumping to a result from
a cscope query is just like jumping to any tag; it is saved on the tag stack
so that with the right keyboard mappings, you can jump back and forth between
functions as you normally would with |tags|.

1. Cscope introduction		|cscope-intro|
2. Cscope related commands	|cscope-commands|
3. Cscope options		|cscope-options|
4. How to use cscope in Vim	|cscope-howtouse|
5. Limitations			|cscope-limitations|
6. Suggested usage		|cscope-suggestions|
7. Availability & Information	|cscope-info|

This is currently for Unix and Win32 only.
{Vi does not have any of these commands}

==============================================================================
1. Cscope introduction					*cscope-intro*

The following text is taken from a version of the cscope man page:

				    -----

  Cscope is an interactive screen-oriented tool that helps you:

       Learn how a C program works without endless flipping through a thick
       listing.

       Locate the section of code to change to fix a bug without having to
       learn the entire program.

       Examine the effect of a proposed change such as adding a value to an
       enum variable.

       Verify that a change has been made in all source files such as adding
       an argument to an existing function.

       Rename a global variable in all source files.

       Change a constant to a preprocessor symbol in selected lines of files.

  It is designed to answer questions like:
       Where is this symbol used?
       Where is it defined?
       Where did this variable get its value?
       What is this global symbol's definition?
       Where is this function in the source files?
       What functions call this function?
       What functions are called by this function?
       Where does the message "out of space" come from?
       Where is this source file in the directory structure?
       What files include this header file?

  Cscope answers these questions from a symbol database that it builds the
  first time it is used on the source files.  On a subsequent call, cscope
  rebuilds the database only if a source file has changed or the list of
  source files is different.  When the database is rebuilt the data for the
  unchanged files is copied from the old database, which makes rebuilding
  much faster than the initial build.

				    -----

When cscope is normally invoked, you will get a full-screen selection
screen allowing you to make a query for one of the above questions.
However, once a match is found to your query and you have entered your
text editor to edit the source file containing match, you cannot simply
jump from tag to tag as you normally would with vi's Ctrl-] or :tag
command.

Vim's cscope interface is done by invoking cscope with its line-oriented
interface, and then parsing the output returned from a query.  The end
result is that cscope query results become just like regular tags, so
you can jump to them just like you do with normal tags (Ctrl-] or :tag)
and then go back by popping off the tagstack with Ctrl-T.  (Please note
however, that you don't actually jump to a cscope tag simply by doing
Ctrl-] or :tag without remapping these commands or setting an option.
See the remaining sections on how the cscope interface works and for
suggested use.)


==============================================================================
2. Cscope related commands				*cscope-commands*

		*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560*
All cscope commands are accessed through suboptions to the cscope commands.
	`:cscope` or `:cs` is the main command
	`:scscope` or `:scs` does the same and splits the window
	`:lcscope` or `:lcs` uses the location list, see |:lcscope|

The available subcommands are:

			*E563* *E564* *E566* *E568* *E622* *E623* *E625*
			*E626* *E609*
    add   : Add a new cscope database/connection.

	USAGE	:cs add {file|dir} [pre-path] [flags]

	    [pre-path] is the pathname used with the -P command to cscope.

	    [flags] are any additional flags you want to pass to cscope.

	EXAMPLES >
	    :cscope add /usr/local/cdb/cscope.out
	    :cscope add /projects/vim/cscope.out /usr/local/vim
	    :cscope add cscope.out /usr/local/vim -C
<
				      *cscope-find* *cs-find* *E567*
    find  : Query cscope.  All cscope query options are available
	    except option #5 ("Change this grep pattern").

	USAGE	:cs find {querytype} {name}

	    {querytype} corresponds to the actual cscope line
	    interface numbers as well as default nvi commands:

		0 or s: Find this C symbol
		1 or g: Find this definition
		2 or d: Find functions called by this function
		3 or c: Find functions calling this function
		4 or t: Find this text string
		6 or e: Find this egrep pattern
		7 or f: Find this file
		8 or i: Find files #including this file
		9 or a: Find places where this symbol is assigned a value

	For all types, except 4 and 6, leading white space for {name} is
	removed.  For 4 and 6 there is exactly one space between {querytype}
	and {name}.  Further white space is included in {name}.

	EXAMPLES >
	    :cscope find c vim_free
	    :cscope find 3  vim_free
<
	    These two examples perform the same query: functions calling
	    "vim_free". >

	    :cscope find t initOnce
	    :cscope find t  initOnce
<
	    The first one searches for the text "initOnce", the second one for
	    " initOnce". >

	    :cscope find 0 DEFAULT_TERM
<
	    Executing this example on the source code for Vim 5.1 produces the
	    following output:

	    Cscope tag: DEFAULT_TERM
	       #   line  filename / context / line
	       1   1009  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"amiga"
	       2   1013  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"win32"
	       3   1017  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"pcterm"
	       4   1021  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"ansi"
	       5   1025  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"vt52"
	       6   1029  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"os2ansi"
	       7   1033  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"ansi"
	       8   1037  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 # undef DEFAULT_TERM
	       9   1038  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"beos-ansi"
	      10   1042  vim-5.1-gtk/src/term.c <<GLOBAL>>
			 #define DEFAULT_TERM (char_u *)"mac-ansi"
	      11   1335  vim-5.1-gtk/src/term.c <<set_termname>>
			 term = DEFAULT_TERM;
	      12   1459  vim-5.1-gtk/src/term.c <<set_termname>>
			 if (STRCMP(term, DEFAULT_TERM))
	      13   1826  vim-5.1-gtk/src/term.c <<termcapinit>>
			 term = DEFAULT_TERM;
	      14   1833  vim-5.1-gtk/src/term.c <<termcapinit>>
			 term = DEFAULT_TERM;
	      15   3635  vim-5.1-gtk/src/term.c <<update_tcap>>
			 p = find_builtin_term(DEFAULT_TERM);
	    Enter nr of choice (<CR> to abort):

	    The output shows several pieces of information:
	    1. The tag number (there are 15 in this example).
	    2. The line number where the tag occurs.
	    3. The filename where the tag occurs.
	    4. The context of the tag (e.g., global, or the function name).
	    5. The line from the file itself.

    help  : Show a brief synopsis.

	    USAGE   :cs help

							*E261*
    kill  : Kill a cscope connection (or kill all cscope connections).

	    USAGE   :cs kill {num|partial_name}

	    To kill a cscope connection, the connection number or a partial
	    name must be specified.  The partial name is simply any part of
	    the pathname of the cscope database.  Kill a cscope connection
	    using the partial name with caution!

	    If the specified connection number is -1, then _ALL_ cscope
	    connections will be killed.

    reset : Reinit all cscope connections.

	    USAGE   :cs reset

    show  : Show cscope connections.

	    USAGE   :cs show

							*:lcscope* *:lcs*
This command is same as the ":cscope" command, except when the
'cscopequickfix' option is set, the location list for the current window is
used instead of the quickfix list to show the cscope results.

							*:cstag* *E257* *E562*
If you use cscope as well as ctags, |:cstag| allows you to search one or
the other before making a jump.  For example, you can choose to first
search your cscope database(s) for a match, and if one is not found, then
your tags file(s) will be searched.  The order in which this happens
is determined by the value of |csto|.  See |cscope-options| for more
details.

|:cstag| performs the equivalent of ":cs find g" on the identifier when
searching through the cscope database(s).

|:cstag| performs the equivalent of |:tjump| on the identifier when searching
through your tags file(s).


==============================================================================
3. Cscope options					*cscope-options*

Use the |:set| command to set all cscope options.  Ideally, you would do
this in one of your startup files (e.g., .vimrc).  Some cscope related
variables are only valid within |.vimrc|.  Setting them after vim has
started will have no effect!

							*cscopeprg* *csprg*
'cscopeprg' specifies the command to execute cscope.  The default is
"cscope".  For example: >
	:set csprg=/usr/local/bin/cscope
<
					    *cscopequickfix* *csqf* *E469*
{not available when compiled without the |+quickfix| feature}
'cscopequickfix' specifies whether to use quickfix window to show cscope
results.  This is a list of comma-separated values. Each item consists of
|cscope-find| command (s, g, d, c, t, e, f, i or a) and flag (+, - or 0).
'+' indicates that results must be appended to quickfix window,
'-' implies previous results clearance, '0' or command absence - don't use
quickfix.  Search is performed from start until first command occurrence.
The default value is "" (don't use quickfix anyway).  The following value
seems to be useful: >
	:set cscopequickfix=s-,c-,d-,i-,t-,e-,a-
<
							*cscopetag* *cst*
If 'cscopetag' is set, the commands ":tag" and CTRL-] as well as "vim -t"
will always use |:cstag| instead of the default :tag behavior.  Effectively,
by setting 'cst', you will always search your cscope databases as well as
your tag files.  The default is off.  Examples: >
	:set cst
	:set nocst
<
							*cscoperelative* *csre*
If 'cscoperelative' is set, then in absence of a prefix given to cscope
(prefix is the argument of -P option of cscope), basename of cscope.out
location (usually the project root directory) will be used as the prefix
to construct an absolute path.  The default is off.  Note: This option is
only effective when cscope (cscopeprg) is initialized without a prefix
path (-P).  Examples: >
	:set csre
	:set nocsre
<
							*cscopetagorder* *csto*
The value of 'csto' determines the order in which |:cstag| performs a search.
If 'csto' is set to zero, cscope database(s) are searched first, followed
by tag file(s) if cscope did not return any matches.  If 'csto' is set to
one, tag file(s) are searched before cscope database(s).  The default is zero.
Examples: >
	:set csto=0
	:set csto=1
<
						*cscopeverbose* *csverb*
If 'cscopeverbose' is not set (the default), messages will not be printed
indicating success or failure when adding a cscope database.  Ideally, you
should reset this option in your |.vimrc| before adding any cscope databases,
and after adding them, set it.  From then on, when you add more databases
within Vim, you will get a (hopefully) useful message should the database fail
to be added.  Examples: >
	:set csverb
	:set nocsverb
<
						      *cscopepathcomp* *cspc*
The value of 'cspc' determines how many components of a file's path to
display.  With the default value of zero the entire path will be displayed.
The value one will display only the filename with no path.  Other values
display that many components.  For example: >
	:set cspc=3
will display the last 3 components of the file's path, including the file
name itself.

==============================================================================
4. How to use cscope in Vim				*cscope-howtouse*

The first thing you need to do is to build a cscope database for your
source files.  For the most basic case, simply do "cscope -b".  Please
refer to the cscope man page for more details.

Assuming you have a cscope database, you need to "add" the database to Vim.
This establishes a cscope "connection" and makes it available for Vim to use.
You can do this in your .vimrc file, or you can do it manually after starting
vim.  For example, to add the cscope database "cscope.out", you would do:

	:cs add cscope.out

You can double-check the result of this by executing ":cs show".  This will
produce output which looks like this:

 # pid	  database name			      prepend path
 0 28806  cscope.out			      <none>

Note:
Because of the Microsoft RTL limitations, Win32 version shows 0 instead
of the real pid.

Once a cscope connection is established, you can make queries to cscope and
the results will be printed to you.  Queries are made using the command
":cs find".  For example:

	:cs find g ALIGN_SIZE

This can get a little cumbersome since one ends up doing a significant
amount of typing.  Fortunately, there are ways around this by mapping
shortcut keys.  See |cscope-suggestions| for suggested usage.

If the results return only one match, you will automatically be taken to it.
If there is more than one match, you will be given a selection screen to pick
the match you want to go to.  After you have jumped to the new location,
simply hit Ctrl-T to get back to the previous one.


==============================================================================
5. Limitations						*cscope-limitations*

Cscope support for Vim is only available on systems that support these four
system calls: fork(), pipe(), execl(), waitpid().  This means it is mostly
limited to Unix systems.

Additionally Cscope support works for Win32.  For more information and a
cscope version for Win32 see:

	http://iamphet.nm.ru/cscope/index.html

The DJGPP-built version from http://cscope.sourceforge.net is known to not
work with Vim.

Hard-coded limitation: doing a |:tjump| when |:cstag| searches the tag files
is not configurable (e.g., you can't do a tselect instead).

==============================================================================
6. Suggested usage					*cscope-suggestions*

Put these entries in your .vimrc (adjust the pathname accordingly to your
setup): >

	if has("cscope")
		set csprg=/usr/local/bin/cscope
		set csto=0
		set cst
		set nocsverb
		" add any database in current directory
		if filereadable("cscope.out")
		    cs add cscope.out
		" else add database pointed to by environment
		elseif $CSCOPE_DB != ""
		    cs add $CSCOPE_DB
		endif
		set csverb
	endif

By setting 'cscopetag', we have effectively replaced all instances of the :tag
command with :cstag.  This includes :tag, Ctrl-], and "vim -t".  In doing
this, the regular tag command not only searches your ctags generated tag
files, but your cscope databases as well.

Some users may want to keep the regular tag behavior and have a different
shortcut to access :cstag.  For example, one could map Ctrl-_  (underscore)
to :cstag with the following command: >

	map <C-_> :cstag <C-R>=expand("<cword>")<CR><CR>

A couple of very commonly used cscope queries (using ":cs find") is to
find all functions calling a certain function and to find all occurrences
of a particular C symbol.  To do this, you can use these mappings as an
example: >

	map g<C-]> :cs find 3 <C-R>=expand("<cword>")<CR><CR>
	map g<C-\> :cs find 0 <C-R>=expand("<cword>")<CR><CR>

These mappings for Ctrl-] (right bracket) and Ctrl-\ (backslash) allow you to
place your cursor over the function name or C symbol and quickly query cscope
for any matches.

Or you may use the following scheme, inspired by Vim/Cscope tutorial from
Cscope Home Page (http://cscope.sourceforge.net/): >

	nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
	nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
	nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
	nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
	nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
	nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
	nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
	nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
	nmap <C-_>a :cs find a <C-R>=expand("<cword>")<CR><CR>

	" Using 'CTRL-spacebar' then a search type makes the vim window
	" split horizontally, with search result displayed in
	" the new window.

	nmap <C-Space>s :scs find s <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space>g :scs find g <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space>c :scs find c <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space>t :scs find t <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space>e :scs find e <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
	nmap <C-Space>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
	nmap <C-Space>d :scs find d <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space>a :scs find a <C-R>=expand("<cword>")<CR><CR>

	" Hitting CTRL-space *twice* before the search type does a vertical
	" split instead of a horizontal one

	nmap <C-Space><C-Space>s
		\:vert scs find s <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space><C-Space>g
		\:vert scs find g <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space><C-Space>c
		\:vert scs find c <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space><C-Space>t
		\:vert scs find t <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space><C-Space>e
		\:vert scs find e <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space><C-Space>i
		\:vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
	nmap <C-Space><C-Space>d
		\:vert scs find d <C-R>=expand("<cword>")<CR><CR>
	nmap <C-Space><C-Space>a
		\:vert scs find a <C-R>=expand("<cword>")<CR><CR>

==============================================================================
7. Cscope availability and information			*cscope-info*

If you do not already have cscope (it did not come with your compiler
license or OS distribution), then you can download it for free from:
	http://cscope.sourceforge.net/
This is released by SCO under the BSD license.

In Solaris 2.x, if you have the C compiler license, you will also have
cscope.  Both are usually located under /opt/SUNWspro/bin

There is source to an older version of a cscope clone (called "cs") available
on the net.  Due to various reasons, this is not supported with Vim.

The cscope interface/support for Vim was originally written by
Andy Kahn <ackahn@netapp.com>.  The original structure (as well as a tiny
bit of code) was adapted from the cscope interface in nvi.
							*cscope-win32*
For a cscope version for Win32 see (seems abandoned):
	https://code.google.com/archive/p/cscope-win32/

Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>.  Contact
him if you have Win32-specific issues.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z���VRVRvim80/doc/pi_getscript.txtnu�[���*pi_getscript.txt*  For Vim version 7.0.  Last change: 2017 Aug 01
>
		GETSCRIPT REFERENCE MANUAL  by Charles E. Campbell
<
Authors:  Charles E. Campbell  <NdrOchip@ScampbellPfamilyA.Mbiz>
	  (remove NOSPAM from the email address)
						*GetLatestVimScripts-copyright*
Copyright: (c) 2004-2012 by Charles E. Campbell	*glvs-copyright*
	The VIM LICENSE (see |copyright|) applies to the files in this
	package, including getscriptPlugin.vim, getscript.vim,
	GetLatestVimScripts.dist, and pi_getscript.txt, except use "getscript"
	instead of "Vim".  Like anything else that's free, getscript and its
	associated files are provided *as is* and comes with no warranty of
	any kind, either expressed or implied.  No guarantees of
	merchantability.  No guarantees of suitability for any purpose.  By
	using this plugin, you agree that in no event will the copyright
	holder be liable for any damages resulting from the use of this
	software. Use at your own risk!

Getscript is a plugin that simplifies retrieval of the latest versions of the
scripts that you yourself use!  Typing |:GLVS| will invoke getscript; it will
then use the <GetLatestVimScripts.dat> (see |GetLatestVimScripts_dat|) file to
get the latest versions of scripts listed therein from http://vim.sf.net/.

==============================================================================
1. Contents				*glvs-contents* *glvs* *getscript*
   					*GetLatestVimScripts*

	1. Contents........................................: |glvs-contents|
	2. GetLatestVimScripts -- Getting Started..........: |glvs-install|
	3. GetLatestVimScripts Usage.......................: |glvs-usage|
	4. GetLatestVimScripts Data File...................: |glvs-data|
	5. GetLatestVimScripts Friendly Plugins............: |glvs-plugins|
	6. GetLatestVimScripts AutoInstall.................: |glvs-autoinstall|
	7. GetLatestViMScripts Options.....................: |glvs-options|
	8. GetLatestVimScripts Algorithm...................: |glvs-alg|
	9. GetLatestVimScripts History.....................: |glvs-hist|


==============================================================================
2. GetLatestVimScripts -- Getting Started		*getscript-start*
						*getlatestvimscripts-install*

	VERSION FROM VIM DISTRIBUTION			*glvs-dist-install*

Vim 7.0 does not include the GetLatestVimScripts.dist file which
serves as an example and a template.  So, you'll need to create
your own!  See |GetLatestVimScripts_dat|.

	VERSION FROM VIM SF NET				*glvs-install*

NOTE: The last step, that of renaming/moving the GetLatestVimScripts.dist
file, is for those who have just downloaded GetLatestVimScripts.tar.bz2 for
the first time.

The GetLatestVimScripts.dist file serves as an example and a template for your
own personal list.  Feel free to remove all the scripts mentioned within it;
the "important" part of it is the first two lines.

Your computer needs to have wget or curl for GetLatestVimScripts to do its work.

	1. if compressed:  gunzip getscript.vba.gz
	2. Unix:
		vim getscript.vba
		:so %
		:q
		cd ~/.vim/GetLatest
		mv GetLatestVimScripts.dist GetLatestVimScripts.dat
		(edit GetLatestVimScripts.dat to install your own personal
		list of desired plugins -- see |GetLatestVimScripts_dat|)

	3. Windows:
		vim getscript.vba
		:so %
		:q
		cd **path-to-vimfiles**/GetLatest
		mv GetLatestVimScripts.dist GetLatestVimScripts.dat
		(edit GetLatestVimScripts.dat to install your own personal
		list of desired plugins -- see |GetLatestVimScripts_dat|)


==============================================================================
3. GetLatestVimScripts Usage				*glvs-usage* *:GLVS*

Unless it has been defined elsewhere, >

	:GLVS

will invoke GetLatestVimScripts().  If some other plugin has defined that
command, then you may type
>
	:GetLatestVimScripts
<
The script will attempt to update and, if permitted, will automatically
install scripts from http://vim.sourceforge.net/.  To do so it will peruse a
file,
>
	.vim/GetLatest/GetLatestVimScripts.dat                    (unix)
<
or >
	..wherever..\vimfiles\GetLatest\GetLatestVimScripts.dat   (windows)
(see |glvs-data|), and examine plugins in your [.vim|vimfiles]/plugin
directory (see |glvs-plugins|).

Scripts which have been downloaded will appear in the
~/.vim/GetLatest (unix) or ..wherever..\vimfiles\GetLatest (windows)
subdirectory.  GetLatestVimScripts will attempt to automatically
install them if you have the following line in your <.vimrc>: >

	let g:GetLatestVimScripts_allowautoinstall=1

The <GetLatestVimScripts.dat> file will be automatically be updated to
reflect the latest version of script(s) so downloaded.
(also see |glvs-options|)


==============================================================================
4. GetLatestVimScripts Data File		*getscript-data* *glvs-data*
 						*:GetLatestVimScripts_dat*
The data file <GetLatestVimScripts.dat> must have for its first two lines
the following text:
>
	ScriptID SourceID Filename
	--------------------------
<
Following those two lines are three columns; the first two are numeric
followed by a text column.  The GetLatest/GetLatestVimScripts.dist file
contains an example of such a data file.  Anything following a #... is
ignored, so you may embed comments in the file.

The first number on each line gives the script's ScriptID.  When you're about
to use a web browser to look at scripts on http://vim.sf.net/, just before you
click on the script's link, you'll see a line resembling

	http://vim.sourceforge.net/scripts/script.php?script_id=40

The "40" happens to be a ScriptID that GetLatestVimScripts needs to
download the associated page, and is assigned by vim.sf.net itself
during initial uploading of the plugin.

The second number on each line gives the script's SourceID.  The SourceID
records the count of uploaded scripts as determined by vim.sf.net; hence it
serves to indicate "when" a script was uploaded.  Setting the SourceID to 1
insures that GetLatestVimScripts will assume that the script it has is
out-of-date.

The SourceID is extracted by GetLatestVimScripts from the script's page on
vim.sf.net; whenever it is greater than the one stored in the
GetLatestVimScripts.dat file, the script will be downloaded
(see |GetLatestVimScripts_dat|).

If your script's author has included a special comment line in his/her plugin,
the plugin itself will be used by GetLatestVimScripts to build your
<GetLatestVimScripts.dat> file, including any dependencies on other scripts it
may have.  As an example, consider: >

	" GetLatestVimScripts: 884  1 :AutoInstall: AutoAlign.vim

This comment line tells getscript.vim to check vimscript #884 and that the
script is automatically installable.  Getscript will also use this line to
help build the GetLatestVimScripts.dat file, by including a line such as: >

	884 1 :AutoInstall: AutoAlign.vim
<
assuming that such a line isn't already in GetLatestVimScripts.dat file.
See |glvs-plugins| for more.  Thus, GetLatestVimScripts thus provides a
comprehensive ability to keep your plugins up-to-date!

In summary:

  * Optionally tell getscript that it is allowed to build/append a
    GetLatestVimScripts.dat file based upon already installed plugins: >
	let g:GetLatestVimScripts_allowautoinstall=1
<
  * A line such as >
	" GetLatestVimScripts: 884  1 :AutoInstall: AutoAlign.vim
<   in an already-downloaded plugin constitutes the concurrence of the
    plugin author that getscript may do AutoInstall.  Not all plugins
    may be AutoInstall-able, and the plugin's author is best situated
    to know whether or not his/her plugin will AutoInstall properly.

  * A line such as >
	884 1 :AutoInstall: AutoAlign.vim
<   in your GetLatestVimScripts.dat file constitutes your permission
    to getscript to do AutoInstall.  AutoInstall requires both your
    and the plugin author's permission.  See |GetLatestVimScripts_dat|.


						*GetLatestVimScripts_dat*
As an example of a <GetLatestVimScripts.dat> file:
>
    ScriptID SourceID Filename
    --------------------------
    294 1 :AutoInstall: Align.vim
    120 2 Decho.vim
     40 3 DrawIt.tar.gz
    451 4 EasyAccents.vim
    195 5 engspchk.vim
    642 6 GetLatestVimScripts.vim
    489 7 Manpageview.vim
<
Note: the first two lines are required, but essentially act as comments.


==============================================================================
5. GetLatestVimScripts Friendly Plugins	*getscript-plugins* *glvs-plugins*

		(this section is for plugin authors)~

If a plugin author includes the following comment anywhere in their plugin,
GetLatestVimScripts will find it and use it to automatically build the user's
GetLatestVimScripts.dat files:
>
	                         src_id
	                            v
	" GetLatestVimScripts: ### ### yourscriptname
	                        ^
	                    scriptid
<
As an author, you should include such a line in to refer to your own script
plus any additional lines describing any plugin dependencies it may have.
Same format, of course!

If your command is auto-installable (see |glvs-autoinstall|), and most scripts
are, then you may include :AutoInstall: just before "yourscriptname":
>
	                         src_id
	                            v
	" GetLatestVimScripts: ### ### :AutoInstall: yourscriptname
	                        ^
	                    scriptid
<
NOTE: The :AutoInstall: feature requires both the plugin author's and~
      the user's permission to operate!~

GetLatestVimScripts commands for those scripts are then appended, if not
already present, to the user's GetLatest/GetLatestVimScripts.dat file.  It is
a relatively painless way to automate the acquisition of any scripts your
plugins depend upon.

Now, as an author, you probably don't want GetLatestVimScripts to download
your own scripts atop your own copy, thereby overwriting your not-yet-released
hard work.  GetLatestVimScripts provides a solution for this:  put
>
	0 0 yourscriptname
<
into your <GetLatestVimScripts.dat> file and GetLatestVimScripts will skip
examining the "yourscriptname" scripts for those GetLatestVimScripts comment
lines.  As a result, those lines won't be inadvertently installed into your
<GetLatestVimScripts.dat> file and subsequently used to download your own
scripts.  This is especially important to do if you've included the
:AutoInstall: option.

Be certain to use the same "yourscriptname" in the "0 0 yourscriptname" line
as you've used in your GetLatestVimScripts comment!


==============================================================================
6. GetLatestVimScripts AutoInstall			*getscript-autoinstall*
							*glvs-autoinstall*

GetLatestVimScripts now supports "AutoInstall".  Not all scripts are
supportive of auto-install, as they may have special things you need to do to
install them (please refer to the script's "install" directions).  On the
other hand, most scripts will be auto-installable.

To let GetLatestVimScripts do an autoinstall, the data file's comment field
should begin with (surrounding blanks are ignored): >

	:AutoInstall:
<
Both colons are needed, and it should begin the comment (yourscriptname)
field.

One may prevent any autoinstalling by putting the following line in your
<.vimrc>: >

	let g:GetLatestVimScripts_allowautoinstall= 0
<
With :AutoInstall: enabled, as it is by default, files which end with

	---.tar.bz2  : decompressed & untarred in .vim/ directory
	---.vba.bz2  : decompressed in .vim/ directory, then vimball handles it
	---.vim.bz2  : decompressed & moved into .vim/plugin directory
	---.tar.gz   : decompressed & untarred in .vim/ directory
	---.vba.gz   : decompressed in .vim/ directory, then vimball handles it
	---.vim.gz   : decompressed & moved into .vim/plugin directory
	---.vba      : unzipped in .vim/ directory
	---.vim      : moved to .vim/plugin directory
	---.zip      : unzipped in .vim/ directory

and which merely need to have their components placed by the untar/gunzip or
move-to-plugin-directory process should be auto-installable.  Vimballs, of
course, should always be auto-installable.

When is a script not auto-installable?  Let me give an example:

	.vim/after/syntax/blockhl.vim

The <blockhl.vim> script provides block highlighting for C/C++ programs; it is
available at:

	http://vim.sourceforge.net/scripts/script.php?script_id=104

Currently, vim's after/syntax only supports by-filetype scripts (in
blockhl.vim's case, that's after/syntax/c.vim).  Hence, auto-install would
possibly overwrite the current user's after/syntax/c.vim file.

In my own case, I use <aftersyntax.vim> (renamed to after/syntax/c.vim) to
allow a after/syntax/c/ directory:

	http://vim.sourceforge.net/scripts/script.php?script_id=1023

The script allows multiple syntax files to exist separately in the
after/syntax/c subdirectory.  I can't bundle aftersyntax.vim in and build an
appropriate tarball for auto-install because of the potential for the
after/syntax/c.vim contained in it to overwrite a user's c.vim.


==============================================================================
7. GetLatestVimScripts Options					*glvs-options*
>
	g:GetLatestVimScripts_wget
<	default= "wget"
		This variable holds the name of the command for obtaining
		scripts.
>
	g:GetLatestVimScripts_options
<	default= "-q -O"
		This variable holds the options to be used with the
		g:GetLatestVimScripts_wget command.
>
 	g:GetLatestVimScripts_allowautoinstall
<	default= 1
		This variable indicates whether GetLatestVimScripts is allowed
		to attempt to automatically install scripts.  Furthermore, the
		plugin author has to have explicitly indicated that his/her
		plugin is automatically installable (via the :AutoInstall:
		keyword in the GetLatestVimScripts comment line).
>
	g:GetLatestVimScripts_autoinstalldir
<	default= $HOME/.vim     (linux)
	default= $HOME/vimfiles (windows)
		Override where :AutoInstall: scripts will be installed.
		Doesn't override vimball installation.
>
	g:GetLatestVimScripts_scriptaddr
<       default='http://vim.sourceforge.net/script.php?script_id='
		Override this if your system needs
	  ...  ='http://vim.sourceforge.net/script/script.php?script_id='

==============================================================================
8. GetLatestVimScripts Algorithm		*glvs-algorithm* *glvs-alg*

The Vim sourceforge page dynamically creates a page by keying off of the
so-called script-id.  Within the webpage of

	http://vim.sourceforge.net/scripts/script.php?script_id=40

is a line specifying the latest source-id (src_id).  The source identifier
numbers are always increasing, hence if the src_id is greater than the one
recorded for the script in GetLatestVimScripts then it's time to download a
newer copy of that script.

GetLatestVimScripts will then download the script and update its internal
database of script ids, source ids, and scriptnames.

The AutoInstall process will:

	Move the file from GetLatest/ to the following directory
		Unix   : $HOME/.vim
		Windows: $HOME\vimfiles
	if the downloaded file ends with ".bz2"
		bunzip2 it
	else if the downloaded file ends with ".gz"
		gunzip it
	if the resulting file ends with ".zip"
		unzip it
	else if the resulting file ends with ".tar"
		tar -oxvf it
	else if the resulting file ends with ".vim"
		move it to the plugin subdirectory


==============================================================================
9. GetLatestVimScripts History		*getscript-history* *glvs-hist* {{{1

v36 Apr 22, 2013 : * (glts) suggested use of plugin/**/*.vim instead of
		     plugin/*.vim in globpath() call.
		   * (Andy Wokula) got warning message when setting
		     g:loaded_getscriptPlugin
v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script URL has
		     changed (somewhat).  However, it doesn't work, and
		     the original one does (under Linux). I'll make it
		     yet-another-option.
v34 Jun 23, 2011 : * handles additional decompression options for tarballs
                     (tgz taz tbz txz)
v33 May 31, 2011 : * using fnameescape() instead of escape()
		   * *.xz support
v32 Jun 19, 2010 : * (Jan Steffens) added support for xz compression
v31 Jun 29, 2008 : * (Bill McCarthy) fixed having hls enabled with getscript
		   * (David Schaefer) the acd option interferes with vimballs
		     Solution: bypass the acd option
v30 Jun 13, 2008 : * GLVS now checks for existence of fnameescape() and will
		     issue an error message if it is not supported
v29 Jan 07, 2008 : * Bram M pointed out that cpo is a global option and that
                     getscriptPlugin.vim was setting it but not restoring it.
v28 Jan 02, 2008 : * improved shell quoting character handling, cygwin
		     interface, register-a bypass
    Oct 29, 2007   * Bill McCarthy suggested a change to getscript that avoids
                     creating pop-up windows
v24 Apr 16, 2007 : * removed save&restore of the fo option during script
                     loading
v23 Nov 03, 2006 : * ignores comments (#...)
                   * handles vimballs
v22 Oct 13, 2006 : * supports automatic use of curl if wget is not
                     available
v21 May 01, 2006 : * now takes advantage of autoloading.
v20 Dec 23, 2005 : * Eric Haarbauer found&fixed a bug with unzip use;
                     unzip needs the -o flag to overwrite.
v19 Nov 28, 2005 : * v18's GetLatestVimScript line accessed the wrong
                     script! Fixed.
v18 Mar 21, 2005 : * bugfix to automatic database construction
                   * bugfix - nowrapscan caused an error
                     (tnx to David Green for the fix)
    Apr 01, 2005   * if shell is bash, "mv" instead of "ren" used in
                     :AutoInstall:s, even though its o/s is windows
    Apr 01, 2005   * when downloading errors occurred, GLVS was
                     terminating early.  It now just goes on to trying
                     the next script (after trying three times to
                     download a script description page)
    Apr 20, 2005   * bugfix - when a failure to download occurred,
                     GetLatestVimScripts would stop early and claim that
                     everything was current.  Fixed.
v17 Aug 25, 2004 : * g:GetLatestVimScripts_allowautoinstall, which
                     defaults to 1, can be used to prevent all
                     :AutoInstall:
v16 Aug 25, 2004 : * made execution of bunzip2/gunzip/tar/zip silent
                   * fixed bug with :AutoInstall: use of helptags
v15 Aug 24, 2004 : * bugfix: the "0 0 comment" download prevention wasn't
                     always preventing downloads (just usually).  Fixed.
v14 Aug 24, 2004 : * bugfix -- helptags was using dotvim, rather than
                     s:dotvim.  Fixed.
v13 Aug 23, 2004 : * will skip downloading a file if its scriptid or srcid
                     is zero.  Useful for script authors; that way their
                     own GetLatestVimScripts activity won't overwrite
                     their scripts.
v12 Aug 23, 2004 : * bugfix - a "return" got left in the distribution that
                     was intended only for testing.  Removed, now works.
                   * :AutoInstall: implemented
v11 Aug 20, 2004 : * GetLatestVimScripts is now a plugin:
                   * :GetLatestVimScripts command
                   * (runtimepath)/GetLatest/GetLatestVimScripts.dat
                     now holds scripts that need updating
v10 Apr 19, 2004 : * moved history from script to doc
v9  Jan 23, 2004 :   windows (win32/win16/win95) will use
                     double quotes ("") whereas other systems will use
                     single quotes ('') around the urls in calls via wget
v8  Dec 01, 2003 :   makes three tries at downloading
v7  Sep 02, 2003 :   added error messages if "Click on..." or "src_id="
                     not found in downloaded webpage
                     Uses t_ti, t_te, and rs to make progress visible
v6  Aug 06, 2003 :   final status messages now display summary of work
                     ( "Downloaded someqty scripts" or
                       "Everything was current")
                     Now GetLatestVimScripts is careful about downloading
                     GetLatestVimScripts.vim itself!
                     (goes to <NEW_GetLatestVimScripts.vim>)
v5  Aug 04, 2003 :   missing an endif near bottom
v4  Jun 17, 2003 :   redraw! just before each "considering" message
v3  May 27, 2003 :   Protects downloaded files from errant shell
                     expansions with single quotes: '...'
v2  May 14, 2003 :   extracts name of item to be obtained from the
                     script file.  Uses it instead of comment field
                     for output filename; comment is used in the
                     "considering..." line and is now just a comment!
                   * Fixed a bug: a string-of-numbers is not the
                     same as a number, so I added zero to them
                     and they became numbers.  Fixes comparison.

==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
PK�j�Z����PAPAvim80/doc/tabpage.txtnu�[���*tabpage.txt*   For Vim version 8.0.  Last change: 2018 Mar 29


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Editing with windows in multiple tab pages.		*tab-page* *tabpage*

The commands which have been added to use multiple tab pages are explained
here.  Additionally, there are explanations for commands that work differently
when used in combination with more than one tab page.

1. Introduction			|tab-page-intro|
2. Commands			|tab-page-commands|
3. Other items			|tab-page-other|
4. Setting 'tabline'		|setting-tabline|
5. Setting 'guitablabel'	|setting-guitablabel|

{Vi does not have any of these commands}
{not able to use multiple tab pages when the |+windows| feature was disabled
at compile time}

==============================================================================
1. Introduction						*tab-page-intro*

A tab page holds one or more windows.  You can easily switch between tab
pages, so that you have several collections of windows to work on different
things.

Usually you will see a list of labels at the top of the Vim window, one for
each tab page.  With the mouse you can click on the label to jump to that tab
page.  There are other ways to move between tab pages, see below.

Most commands work only in the current tab page.  That includes the |CTRL-W|
commands, |:windo|, |:all| and |:ball| (when not using the |:tab| modifier).
The commands that are aware of other tab pages than the current one are
mentioned below.

Tabs are also a nice way to edit a buffer temporarily without changing the
current window layout.  Open a new tab page, do whatever you want to do and
close the tab page.

==============================================================================
2. Commands						*tab-page-commands*

OPENING A NEW TAB PAGE:

When starting Vim "vim -p filename ..." opens each file argument in a separate
tab page (up to 'tabpagemax').  See |-p|

A double click with the mouse in the non-GUI tab pages line opens a new, empty
tab page.  It is placed left of the position of the click.  The first click
may select another tab page first, causing an extra screen update.

This also works in a few GUI versions, esp. Win32 and Motif.  But only when
clicking right of the labels.

In the GUI tab pages line you can use the right mouse button to open menu.
|tabline-menu|.

For the related autocommands see |tabnew-autocmd|.

:[count]tabe[dit]				*:tabe* *:tabedit* *:tabnew*
:[count]tabnew
		Open a new tab page with an empty window, after the current
		tab page.  If [count] is given the new tab page appears after
		the tab page [count] otherwise the new tab page will appear
		after the current one. >
		    :tabnew	" opens tabpage after the current one
		    :.tabnew	" as above
		    :+tabnew	" opens tabpage after the next tab page
				" note: it is one further than :tabnew
		    :-tabnew	" opens tabpage before the current one
		    :0tabnew	" opens tabpage before the first one
		    :$tabnew	" opens tabpage after the last one

:[count]tabe[dit] [++opt] [+cmd] {file}
:[count]tabnew [++opt] [+cmd] {file}
		Open a new tab page and edit {file}, like with |:edit|.
		For [count] see |:tabnew| above.

:[count]tabf[ind] [++opt] [+cmd] {file}			*:tabf* *:tabfind*
		Open a new tab page and edit {file} in 'path', like with
		|:find|.  For [count] see |:tabnew| above.
		{not available when the |+file_in_path| feature was disabled
		at compile time}

:[count]tab {cmd}					*:tab*
		Execute {cmd} and when it opens a new window open a new tab
		page instead.  Doesn't work for |:diffsplit|, |:diffpatch|,
		|:execute| and |:normal|.
		If [count] is given the new tab page appears after the tab
		page [count] otherwise the new tab page will appear after the
		current one.
		Examples: >
		    :tab split	    " opens current buffer in new tab page
		    :tab help gt    " opens tab page with help for "gt"
		    :.tab help gt   " as above
		    :+tab help	    " opens tab page with help after the next
				    " tab page
		    :-tab help	    " opens tab page with help before the
				    " current one
		    :0tab help	    " opens tab page with help before the
				    " first one
		    :$tab help	    " opens tab page with help after the last
				    " one

CTRL-W gf	Open a new tab page and edit the file name under the cursor.
		See |CTRL-W_gf|.

CTRL-W gF	Open a new tab page and edit the file name under the cursor
		and jump to the line number following the file name.
		See |CTRL-W_gF|.

CLOSING A TAB PAGE:

Closing the last window of a tab page closes the tab page too, unless there is
only one tab page.

Using the mouse: If the tab page line is displayed you can click in the "X" at
the top right to close the current tab page.  A custom |'tabline'| may show
something else.

							*:tabc* *:tabclose*
:tabc[lose][!]	Close current tab page.
		This command fails when:
		- There is only one tab page on the screen.		*E784*
		- When 'hidden' is not set, [!] is not used, a buffer has
		  changes, and there is no other window on this buffer.
		Changes to the buffer are not written and won't get lost, so
		this is a "safe" command. >
		    :tabclose	    " close the current tab page

:{count}tabc[lose][!]
:tabc[lose][!] {count}
		Close tab page {count}.  Fails in the same way as `:tabclose`
		above. >
		    :-tabclose	    " close the previous tab page
		    :+tabclose	    " close the next tab page
		    :1tabclose	    " close the first tab page
		    :$tabclose	    " close the last tab page
		    :tabclose -2    " close the two previous tab page
		    :tabclose +	    " close the next tab page
		    :tabclose 3	    " close the third tab page
		    :tabclose $	    " close the last tab page
<
							*:tabo* *:tabonly*
:tabo[nly][!]	Close all other tab pages.
		When the 'hidden' option is set, all buffers in closed windows
		become hidden.
		When 'hidden' is not set, and the 'autowrite' option is set,
		modified buffers are written.  Otherwise, windows that have
		buffers that are modified are not removed, unless the [!] is
		given, then they become hidden.  But modified buffers are
		never abandoned, so changes cannot get lost. >
		    :tabonly	    " close all tab pages except the current
				    " one

:{count}tabo[nly][!]
:tabo[nly][!] {count}
		Close all tab pages except {count} one. >
		    :.tabonly	    " as above
		    :-tabonly	    " close all tab pages except the previous
				    " one
		    :+tabonly	    " close all tab pages except the next one
		    :1tabonly	    " close all tab pages except the first one
		    :$tabonly	    " close all tab pages except the last one
		    :tabonly -	    " close all tab pages except the previous
				    " one
		    :tabonly +2     " close all tab pages except the two next
				    " one
		    :tabonly 1	    " close all tab pages except the first one
		    :tabonly $	    " close all tab pages except the last one


SWITCHING TO ANOTHER TAB PAGE:

Using the mouse: If the tab page line is displayed you can click in a tab page
label to switch to that tab page.  Click where there is no label to go to the
next tab page.  |'tabline'|

:tabn[ext]				*:tabn* *:tabnext* *gt*
<C-PageDown>				*CTRL-<PageDown>* *<C-PageDown>*
gt					*i_CTRL-<PageDown>* *i_<C-PageDown>*
		Go to the next tab page.  Wraps around from the last to the
		first one.

:{count}tabn[ext]
:tabn[ext] {count}
		Go to tab page {count}.  The first tab page has number one. >
		    :-tabnext	" go to the previous tab page
		    :+tabnext	" go to the next tab page
		    :+2tabnext	" go to the two next tab page
		    :1tabnext	" go to the first tab page
		    :$tabnext	" go to the last tab page
		    :tabnext $	" as above
		    :tabnext -	" go to the previous tab page
		    :tabnext -1	" as above
		    :tabnext +	" go to the next tab page
		    :tabnext +1	" as above

{count}<C-PageDown>
{count}gt	Go to tab page {count}.  The first tab page has number one.


:tabp[revious]				*:tabp* *:tabprevious* *gT* *:tabN*
:tabN[ext]				*:tabNext* *CTRL-<PageUp>*
<C-PageUp>			 *<C-PageUp>* *i_CTRL-<PageUp>* *i_<C-PageUp>*
gT		Go to the previous tab page.  Wraps around from the first one
		to the last one.

:tabp[revious] {count}
:tabN[ext] {count}
{count}<C-PageUp>
{count}gT	Go {count} tab pages back.  Wraps around from the first one
		to the last one.

:tabr[ewind]			*:tabfir* *:tabfirst* *:tabr* *:tabrewind*
:tabfir[st]	Go to the first tab page.

							*:tabl* *:tablast*
:tabl[ast]	Go to the last tab page.


Other commands:
							*:tabs*
:tabs		List the tab pages and the windows they contain.
		Shows a ">" for the current window.
		Shows a "+" for modified buffers.
		For example:
			Tab page 1 ~
			  + tabpage.txt ~
			    ex_docmd.c ~
			Tab page 2 ~
			>   main.c ~


REORDERING TAB PAGES:

:tabm[ove] [N]						*:tabm* *:tabmove*
:[N]tabm[ove]
		Move the current tab page to after tab page N.  Use zero to
		make the current tab page the first one.  Without N the tab
		page is made the last one. >
		    :.tabmove	" do nothing
		    :-tabmove	" move the tab page to the left
		    :+tabmove	" move the tab page to the right
		    :0tabmove	" move the tab page to the beginning of the tab
				" list
		    :tabmove 0	" as above
		    :tabmove	" move the tab page to the last
		    :$tabmove	" as above
		    :tabmove $	" as above

:tabm[ove] +[N]
:tabm[ove] -[N]
		Move the current tab page N places to the right (with +) or to
		the left (with -). >
		    :tabmove -	" move the tab page to the left
		    :tabmove -1	" as above
		    :tabmove +	" move the tab page to the right
		    :tabmove +1	" as above


Note that although it is possible to move a tab behind the N-th one by using
:Ntabmove. And move it by N places by using :+Ntabmove. For clarification what
+N means in this context see |[range]|.


LOOPING OVER TAB PAGES:

							*:tabd* *:tabdo*
:[range]tabd[o] {cmd}
		Execute {cmd} in each tab page or if [range] is given only in
		tab pages which tab page number is in the [range].  It works
		like doing this: >
			:tabfirst
			:{cmd}
			:tabnext
			:{cmd}
			etc.
<		This only operates in the current window of each tab page.
		When an error is detected on one tab page, further tab pages
		will not be visited.
		The last tab page (or where an error occurred) becomes the
		current tab page.
		{cmd} can contain '|' to concatenate several commands.
		{cmd} must not open or close tab pages or reorder them.
		{not in Vi}
		Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo|
		and |:lfdo|

==============================================================================
3. Other items						*tab-page-other*

							*tabline-menu*
The GUI tab pages line has a popup menu.  It is accessed with a right click.
The entries are:
	Close		Close the tab page under the mouse pointer.  The
			current one if there is no label under the mouse
			pointer.
	New Tab		Open a tab page, editing an empty buffer.  It appears
			to the left of the mouse pointer.
	Open Tab...	Like "New Tab" and additionally use a file selector to
			select a file to edit.

Diff mode works per tab page.  You can see the diffs between several files
within one tab page.  Other tab pages can show differences between other
files.

Variables local to a tab page start with "t:". |tabpage-variable|

Currently there is only one option local to a tab page: 'cmdheight'.

						*tabnew-autocmd*
The TabLeave and TabEnter autocommand events can be used to do something when
switching from one tab page to another.  The exact order depends on what you
are doing.  When creating a new tab page this works as if you create a new
window on the same buffer and then edit another buffer.  Thus ":tabnew"
triggers:
	WinLeave		leave current window
	TabLeave		leave current tab page
	WinEnter		enter window in new tab page
	TabEnter		enter new tab page
	BufLeave		leave current buffer
	BufEnter		enter new empty buffer

When switching to another tab page the order is:
	BufLeave
	WinLeave
	TabLeave
	TabEnter
	WinEnter
	BufEnter

==============================================================================
4. Setting 'tabline'					*setting-tabline*

The 'tabline' option specifies what the line with tab pages labels looks like.
It is only used when there is no GUI tab line.

You can use the 'showtabline' option to specify when you want the line with
tab page labels to appear: never, when there is more than one tab page or
always.

The highlighting of the tab pages line is set with the groups TabLine
TabLineSel and TabLineFill.  |hl-TabLine| |hl-TabLineSel| |hl-TabLineFill|

A "+" will be shown for a tab page that has a modified window.  The number of
windows in a tabpage is also shown.  Thus "3+" means three windows and one of
them has a modified buffer.

The 'tabline' option allows you to define your preferred way to tab pages
labels.  This isn't easy, thus an example will be given here.

For basics see the 'statusline' option.  The same items can be used in the
'tabline' option.  Additionally, the |tabpagebuflist()|, |tabpagenr()| and
|tabpagewinnr()| functions are useful.

Since the number of tab labels will vary, you need to use an expression for
the whole option.  Something like: >
	:set tabline=%!MyTabLine()

Then define the MyTabLine() function to list all the tab pages labels.  A
convenient method is to split it in two parts:  First go over all the tab
pages and define labels for them.  Then get the label for each tab page. >

	function MyTabLine()
	  let s = ''
	  for i in range(tabpagenr('$'))
	    " select the highlighting
	    if i + 1 == tabpagenr()
	      let s .= '%#TabLineSel#'
	    else
	      let s .= '%#TabLine#'
	    endif

	    " set the tab page number (for mouse clicks)
	    let s .= '%' . (i + 1) . 'T'

	    " the label is made by MyTabLabel()
	    let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
	  endfor

	  " after the last tab fill with TabLineFill and reset tab page nr
	  let s .= '%#TabLineFill#%T'

	  " right-align the label to close the current tab page
	  if tabpagenr('$') > 1
	    let s .= '%=%#TabLine#%999Xclose'
	  endif

	  return s
	endfunction

Now the MyTabLabel() function is called for each tab page to get its label. >

	function MyTabLabel(n)
	  let buflist = tabpagebuflist(a:n)
	  let winnr = tabpagewinnr(a:n)
	  return bufname(buflist[winnr - 1])
	endfunction

This is just a simplistic example that results in a tab pages line that
resembles the default, but without adding a + for a modified buffer or
truncating the names.  You will want to reduce the width of labels in a
clever way when there is not enough room.  Check the 'columns' option for the
space available.

==============================================================================
5. Setting 'guitablabel'				*setting-guitablabel*

When the GUI tab pages line is displayed, 'guitablabel' can be used to
specify the label to display for each tab page.  Unlike 'tabline', which
specifies the whole tab pages line at once, 'guitablabel' is used for each
label separately.

'guitabtooltip' is very similar and is used for the tooltip of the same label.
This only appears when the mouse pointer hovers over the label, thus it
usually is longer.  Only supported on some systems though.

See the 'statusline' option for the format of the value.

The "%N" item can be used for the current tab page number.  The |v:lnum|
variable is also set to this number when the option is evaluated.
The items that use a file name refer to the current window of the tab page.

Note that syntax highlighting is not used for the option.  The %T and %X
items are also ignored.

A simple example that puts the tab page number and the buffer name in the
label: >
	:set guitablabel=%N\ %f

An example that resembles the default 'guitablabel': Show the number of
windows in the tab page and a '+' if there is a modified buffer: >

	function GuiTabLabel()
	  let label = ''
	  let bufnrlist = tabpagebuflist(v:lnum)

	  " Add '+' if one of the buffers in the tab page is modified
	  for bufnr in bufnrlist
	    if getbufvar(bufnr, "&modified")
	      let label = '+'
	      break
	    endif
	  endfor

	  " Append the number of windows in the tab page if more than one
	  let wincount = tabpagewinnr(v:lnum, '$')
	  if wincount > 1
	    let label .= wincount
	  endif
	  if label != ''
	    let label .= ' '
	  endif

	  " Append the buffer name
	  return label . bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
	endfunction

	set guitablabel=%{GuiTabLabel()}

Note that the function must be defined before setting the option, otherwise
you get an error message for the function not being known.

If you want to fall back to the default label, return an empty string.

If you want to show something specific for a tab page, you might want to use a
tab page local variable. |t:var|


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�;�ݺ,�,vim80/doc/usr_09.txtnu�[���*usr_09.txt*	For Vim version 8.0.  Last change: 2017 Aug 11

		     VIM USER MANUAL - by Bram Moolenaar

				Using the GUI


Vim works in an ordinary terminal.  GVim can do the same things and a few
more.  The GUI offers menus, a toolbar, scrollbars and other items.  This
chapter is about these extra things that the GUI offers.

|09.1|	Parts of the GUI
|09.2|	Using the mouse
|09.3|	The clipboard
|09.4|	Select mode

     Next chapter: |usr_10.txt|  Making big changes
 Previous chapter: |usr_08.txt|  Splitting windows
Table of contents: |usr_toc.txt|

==============================================================================
*09.1*	Parts of the GUI

You might have an icon on your desktop that starts gvim.  Otherwise, one of
these commands should do it: >

	gvim file.txt
	vim -g file.txt

If this doesn't work you don't have a version of Vim with GUI support.  You
will have to install one first.
   Vim will open a window and display "file.txt" in it.  What the window looks
like depends on the version of Vim.  It should resemble the following picture
(for as far as this can be shown in ASCII!).

	+----------------------------------------------------+
	| file.txt + (~/dir) - VIM			   X |	<- window title
	+----------------------------------------------------+
	| File	Edit  Tools  Syntax  Buffers  Window  Help   |	<- menubar
	+----------------------------------------------------+
	| aaa  bbb  ccc  ddd  eee  fff	ggg  hhh  iii  jjj   |	<- toolbar
	| aaa  bbb  ccc  ddd  eee  fff	ggg  hhh  iii  jjj   |
	+----------------------------------------------------+
	| file text					 | ^ |
	| ~						 | # |
	| ~						 | # |	<- scrollbar
	| ~						 | # |
	| ~						 | # |
	| ~						 | # |
	|						 | V |
	+----------------------------------------------------+

The largest space is occupied by the file text.  This shows the file in the
same way as in a terminal.  With some different colors and another font
perhaps.


THE WINDOW TITLE

At the very top is the window title.  This is drawn by your window system.
Vim will set the title to show the name of the current file.  First comes the
name of the file.  Then some special characters and the directory of the file
in parens.  These special characters can be present:

	-	The file cannot be modified (e.g., a help file)
	+	The file contains changes
	=	The file is read-only
	=+	The file is read-only, contains changes anyway

If nothing is shown you have an ordinary, unchanged file.


THE MENUBAR

You know how menus work, right?  Vim has the usual items, plus a few more.
Browse them to get an idea of what you can use them for.  A relevant submenu
is Edit/Global Settings.  You will find these entries:

	Toggle Toolbar		make the toolbar appear/disappear
	Toggle Bottom Scrollbar	make a scrollbar appear/disappear at the bottom
	Toggle Left Scrollbar	make a scrollbar appear/disappear at the left
	Toggle Right Scrollbar	make a scrollbar appear/disappear at the right

On most systems you can tear-off the menus.  Select the top item of the menu,
the one that looks like a dashed line.  You will get a separate window with
the items of the menu.  It will hang around until you close the window.


THE TOOLBAR

This contains icons for the most often used actions.  Hopefully the icons are
self-explanatory.  There are tooltips to get an extra hint (move the mouse
pointer to the icon without clicking and don't move it for a second).

The "Edit/Global Settings/Toggle Toolbar" menu item can be used to make the
toolbar disappear.  If you never want a toolbar, use this command in your
vimrc file: >

	:set guioptions-=T

This removes the 'T' flag from the 'guioptions' option.  Other parts of the
GUI can also be enabled or disabled with this option.  See the help for it.


THE SCROLLBARS

By default there is one scrollbar on the right.  It does the obvious thing.
When you split the window, each window will get its own scrollbar.
   You can make a horizontal scrollbar appear with the menu item
Edit/Global Settings/Toggle Bottom Scrollbar.  This is useful in diff mode, or
when the 'wrap' option has been reset (more about that later).

When there are vertically split windows, only the windows on the right side
will have a scrollbar.  However, when you move the cursor to a window on the
left, it will be this one the that scrollbar controls.  This takes a bit of
time to get used to.
   When you work with vertically split windows, consider adding a scrollbar on
the left.  This can be done with a menu item, or with the 'guioptions' option:
>
	:set guioptions+=l

This adds the 'l' flag to 'guioptions'.

==============================================================================
*09.2*	Using the mouse

Standards are wonderful.  In Microsoft Windows, you can use the mouse to
select text in a standard manner.  The X Window system also has a standard
system for using the mouse.  Unfortunately, these two standards are not the
same.
   Fortunately, you can customize Vim.  You can make the behavior of the mouse
work like an X Window system mouse or a Microsoft Windows mouse.  The following
command makes the mouse behave like an X Window mouse: >

	:behave xterm

The following command makes the mouse work like a Microsoft Windows mouse: >

	:behave mswin

The default behavior of the mouse on UNIX systems is xterm.  The default
behavior on a Microsoft Windows system is selected during the installation
process.  For details about what the two behaviors are, see |:behave|.  Here
follows a summary.


XTERM MOUSE BEHAVIOR

Left mouse click		position the cursor
Left mouse drag			select text in Visual mode
Middle mouse click		paste text from the clipboard
Right mouse click		extend the selected text until the mouse
				pointer


MSWIN MOUSE BEHAVIOR

Left mouse click		position the cursor
Left mouse drag			select text in Select mode (see |09.4|)
Left mouse click, with Shift	extend the selected text until the mouse
				pointer
Middle mouse click		paste text from the clipboard
Right mouse click		display a pop-up menu


The mouse can be further tuned.  Check out these options if you want to change
the way how the mouse works:

	'mouse'			in which mode the mouse is used by Vim
	'mousemodel'		what effect a mouse click has
	'mousetime'		time between clicks for a double-click
	'mousehide'		hide the mouse while typing
	'selectmode'		whether the mouse starts Visual or Select mode

==============================================================================
*09.3*	The clipboard

In section |04.7| the basic use of the clipboard was explained.  There is one
essential thing to explain about X-windows: There are actually two places to
exchange text between programs.  MS-Windows doesn't have this.

In X-Windows there is the "current selection".  This is the text that is
currently highlighted.  In Vim this is the Visual area (this assumes you are
using the default option settings).  You can paste this selection in another
application without any further action.
   For example, in this text select a few words with the mouse.  Vim will
switch to Visual mode and highlight the text.  Now start another gvim, without
a file name argument, so that it displays an empty window.  Click the middle
mouse button.  The selected text will be inserted.

The "current selection" will only remain valid until some other text is
selected.  After doing the paste in the other gvim, now select some characters
in that window.  You will notice that the words that were previously selected
in the other gvim window are displayed differently.  This means that it no
longer is the current selection.

You don't need to select text with the mouse, using the keyboard commands for
Visual mode works just as well.


THE REAL CLIPBOARD

Now for the other place with which text can be exchanged.  We call this the
"real clipboard", to avoid confusion.  Often both the "current selection" and
the "real clipboard" are called clipboard, you'll have to get used to that.
   To put text on the real clipboard, select a few different words in one of
the gvims you have running.  Then use the Edit/Copy menu entry.  Now the text
has been copied to the real clipboard.  You can't see this, unless you have
some application that shows the clipboard contents (e.g., KDE's Klipper).
   Now select the other gvim, position the cursor somewhere and use the
Edit/Paste menu.  You will see the text from the real clipboard is inserted.


USING BOTH

This use of both the "current selection" and the "real clipboard" might sound
a bit confusing.  But it is very useful.  Let's show this with an example.
Use one gvim with a text file and perform these actions:

-  Select two words in Visual mode.
-  Use the Edit/Copy menu to get these words onto the clipboard.
-  Select one other word in Visual mode.
-  Use the Edit/Paste menu item.  What will happen is that the single selected
   word is replaced with the two words from the clipboard.
-  Move the mouse pointer somewhere else and click the middle button.  You
   will see that the word you just overwrote with the clipboard is inserted
   here.

If you use the "current selection" and the "real clipboard" with care, you can
do a lot of useful editing with them.


USING THE KEYBOARD

If you don't like using the mouse, you can access the current selection and
the real clipboard with two registers.  The "* register is for the current
selection.
   To make text become the current selection, use Visual mode.  For example,
to select a whole line just press "V".
   To insert the current selection before the cursor: >

	"*P

Notice the uppercase "P".  The lowercase "p" puts the text after the cursor.

The "+ register is used for the real clipboard.  For example, to copy the text
from the cursor position until the end of the line to the clipboard: >

	"+y$

Remember, "y" is yank, which is Vim's copy command.
   To insert the contents of the real clipboard before the cursor: >

	"+P

It's the same as for the current selection, but uses the plus (+) register
instead of the star (*) register.

==============================================================================
*09.4*	Select mode

And now something that is used more often on MS-Windows than on X-Windows.
But both can do it.  You already know about Visual mode.  Select mode is like
Visual mode, because it is also used to select text.  But there is an obvious
difference: When typing text, the selected text is deleted and the typed text
replaces it.

To start working with Select mode, you must first enable it (for MS-Windows
it is probably already enabled, but you can do this anyway): >

	:set selectmode+=mouse

Now use the mouse to select some text.  It is highlighted like in Visual mode.
Now press a letter.  The selected text is deleted, and the single letter
replaces it.  You are in Insert mode now, thus you can continue typing.

Since typing normal text causes the selected text to be deleted, you can not
use the normal movement commands "hjkl", "w", etc.  Instead, use the shifted
function keys.  <S-Left> (shifted cursor left key) moves the cursor left.  The
selected text is changed like in Visual mode.  The other shifted cursor keys
do what you expect.  <S-End> and <S-Home> also work.

You can tune the way Select mode works with the 'selectmode' option.

==============================================================================

Next chapter: |usr_10.txt|  Making big changes

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�Έ>vim80/doc/pi_tar.txtnu�[���*pi_tar.txt*	For Vim version 8.0.  Last change: 2013 Apr 17

		       +====================+
		       | Tar File Interface |
		       +====================+

Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
	  (remove NOSPAM from Campbell's email first)
Copyright 2005-2012:					*tar-copyright*
	The VIM LICENSE (see |copyright|) applies to the files in this
	package, including tarPlugin.vim, tar.vim, and pi_tar.txt.  Like
	anything else that's except use "tar.vim" instead of "VIM".  Like
	anything else that's free, tar.vim and its associated files are
	provided *as is* and comes with no warranty of any kind, either
	expressed or implied.  No guarantees of merchantability.  No
	guarantees of suitability for any purpose.  By using this plugin, you
	agree that in no event will the copyright holder be liable for any
	damages resulting from the use of this software. Use at your own risk!

==============================================================================
1. Contents					*tar* *tar-contents*
   1. Contents..................................................|tar-contents|
   2. Usage.....................................................|tar-usage|
   3. Options...................................................|tar-options|
   4. History...................................................|tar-history|

==============================================================================
2. Usage					*tar-usage* *tar-manual*

   When one edits a *.tar file, this plugin will handle displaying a
   contents page.  Select a file to edit by moving the cursor atop
   the desired file, then hit the <return> key.  After editing, one may
   also write to the file.  Currently, one may not make a new file in
   tar archives via the plugin.

						*:Vimuntar*
   VIMUNTAR~

   :Vimuntar [vimhome]

	This command copies, if necessary, the tarball to the .vim or vimfiles
	directory using the first writable directory in the |'runtimepath'|
	when no [vimhome] is specified.  Otherwise, the [vimhome] argument
	allows the user to specify that directory, instead.

	The copy is done using the command in *g:tar_copycmd* , which is >
		cp   for cygwin, unix, macunix
		copy for windows (32, 95, 64, 16)
<	The extraction is done with the command specified with
	*g:tar_extractcmd* , which by default is >
		"tar -xf"
<
						*:TarDiff*
   DIFFERENCING SUPPORT~

   :TarDiff [filename]

	This command will attempt to show the differences between the tarball
	version of a file and the associated file on the system.  In order to
	find that file on the system, the script uses the path associated with
	the file mentioned in the tarball.  If the current directory is not
	correct for that path, :TarDiff will fail to find the associated file.

	If the [filename] is given, that that filename (and path) will be used
	to specify the associated file.


   PREVENTING LOADING~

   If for some reason you do not wish to use vim to examine tar'd files,
   you may put the following two variables into your <.vimrc> to prevent
   the tar plugin from loading: >

	let g:loaded_tarPlugin= 1
	let g:loaded_tar      = 1
<

==============================================================================
3. Options						*tar-options*

   These options are variables that one may change, typically in one's
   <.vimrc> file.
                         Default
   Variable               Value   Explanation
   *g:tar_browseoptions*  "Ptf"   used to get a list of contents
   *g:tar_readoptions*    "OPxf"  used to extract a file from a tarball
   *g:tar_cmd*            "tar"   the name of the tar program
   *g:tar_nomax*            0     if true, file window will not be maximized
   *g:tar_secure*         undef   if exists:
					"--"s will be used to prevent unwanted
					option expansion in tar commands.
					Please be sure that your tar command
					accepts "--"; Posix compliant tar
					utilities do accept them.
				  if not exists:
				  	The tar plugin will reject any tar
					files or member files that begin with
					"-"
				  Not all tar's support the "--" which is why
				  it isn't default.
   *g:tar_writeoptions*   "uf"    used to update/replace a file


==============================================================================
4. History						*tar-history*


   v28 Jun 23, 2011 * a few more decompression options (tbz tb2 txz)
   v27 May 31, 2011 * moved cygwin detection before g:tar_copycmd handling
   		    * inserted additional |:keepj| modifiers
		    * changed silent  to  sil!  (|:silent|)
   v26 Aug 09, 2010 * uses buffer-local instead of window variables to hold
		      tarfile name
		    * inserted keepj before 0d to protect jump list
   v25 Jun 19, 2010 * (Jan Steffens) added support for xz compression
   v24 Apr 07, 2009 * :Untarvim command implemented
       Sep 28, 2009 * Added lzma support
   v22 Aug 08, 2008 * security fixes
   v16 Jun 06, 2008 * tarfile:: used instead of tarfile: when editing files
		      inside tarballs.  Fixes a problem with tarballs called
		      things like c:\abc.tar. (tnx to Bill McCarthy)
   v14 May 09, 2008 * arno caught a security bug
       May 28, 2008 * various security improvements.  Now requires patch 299
		      which provides the fnameescape() function
       May 30, 2008 * allows one to view *.gz and *.bz2 files that are in
		    *.tar files.
   v12 Sep 07, 2007 * &shq now used if not the empty string for g:tar_shq
   v10 May 02, 2006 * now using "redraw then echo" to show messages, instead
		      of "echo and prompt user"
   v9 May 02, 2006 * improved detection of masquerading as tar file
   v8 May 02, 2006 * allows editing of files that merely masquerade as tar
		     files
   v7 Mar 22, 2006 * work on making tar plugin work across network
      Mar 27, 2006 * g:tar_cmd now available for users to change the name
		     of the tar program to be used.  By default, of course,
		     it's "tar".
   v6 Dec 21, 2005 * writing to files not in directories caused problems -
		     fixed (pointed out by Christian Robinson)
   v5 Nov 22, 2005 * report option workaround installed
   v3 Sep 16, 2005 * handles writing files in an archive back to the
		     archive
      Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
      Oct 18, 2005 * handles writing to compressed archives
      Nov 03, 2005 * handles writing tarfiles across a network using
		     netrw#NetWrite()
   v2              * converted to use Vim7's new autoload feature by
		     Bram Moolenaar
   v1 (original)   * Michael Toren (see http://michael.toren.net/code/)

==============================================================================
vim:tw=78:ts=8:ft=help
PK�j�ZkV9��vim80/doc/editing.txtnu�[���*editing.txt*   For Vim version 8.0.  Last change: 2018 Mar 29


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Editing files						*edit-files*

1.  Introduction		|edit-intro|
2.  Editing a file		|edit-a-file|
3.  The argument list		|argument-list|
4.  Writing			|writing|
5.  Writing and quitting	|write-quit|
6.  Dialogs			|edit-dialogs|
7.  The current directory	|current-directory|
8.  Editing binary files	|edit-binary|
9.  Encryption			|encryption|
10. Timestamps			|timestamps|
11. File Searching		|file-searching|

==============================================================================
1. Introduction						*edit-intro*

Editing a file with Vim means:

1. reading the file into a buffer
2. changing the buffer with editor commands
3. writing the buffer into a file

							*current-file*
As long as you don't write the buffer, the original file remains unchanged.
If you start editing a file (read a file into the buffer), the file name is
remembered as the "current file name".  This is also known as the name of the
current buffer.  It can be used with "%" on the command line |:_%|.

							*alternate-file*
If there already was a current file name, then that one becomes the alternate
file name.  It can be used with "#" on the command line |:_#| and you can use
the |CTRL-^| command to toggle between the current and the alternate file.
However, the alternate file name is not changed when |:keepalt| is used.
An alternate file name is remembered for each window.

							*:keepalt* *:keepa*
:keepalt {cmd}		Execute {cmd} while keeping the current alternate file
			name.  Note that commands invoked indirectly (e.g.,
			with a function) may still set the alternate file
			name.  {not in Vi}

All file names are remembered in the buffer list.  When you enter a file name,
for editing (e.g., with ":e filename") or writing (e.g., with ":w filename"),
the file name is added to the list.  You can use the buffer list to remember
which files you edited and to quickly switch from one file to another (e.g.,
to copy text) with the |CTRL-^| command.  First type the number of the file
and then hit CTRL-^.  {Vi: only one alternate file name is remembered}


CTRL-G		or				*CTRL-G* *:f* *:fi* *:file*
:f[ile]			Prints the current file name (as typed, unless ":cd"
			was used), the cursor position (unless the 'ruler'
			option is set), and the file status (readonly,
			modified, read errors, new file).  See the 'shortmess'
			option about how to make this message shorter.
			{Vi does not include column number}

:f[ile]!		like |:file|, but don't truncate the name even when
			'shortmess' indicates this.

{count}CTRL-G		Like CTRL-G, but prints the current file name with
			full path.  If the count is higher than 1 the current
			buffer number is also given.  {not in Vi}

					*g_CTRL-G* *word-count* *byte-count*
g CTRL-G		Prints the current position of the cursor in five
			ways: Column, Line, Word, Character and Byte.  If the
			number of Characters and Bytes is the same then the
			Character position is omitted.
			If there are characters in the line that take more
			than one position on the screen (<Tab> or special
			character), both the "real" column and the screen
			column are shown, separated with a dash.
			Also see the 'ruler' option and the |wordcount()|
			function.
			{not in Vi}

							*v_g_CTRL-G*
{Visual}g CTRL-G	Similar to "g CTRL-G", but Word, Character, Line, and
			Byte counts for the visually selected region are
			displayed.
			In Blockwise mode, Column count is also shown.  (For
			{Visual} see |Visual-mode|.)
			{not in VI}

							*:file_f*
:f[ile][!] {name}	Sets the current file name to {name}.  The optional !
			avoids truncating the message, as with |:file|.
			If the buffer did have a name, that name becomes the
			|alternate-file| name.  An unlisted buffer is created
			to hold the old name.
							*:0file*
:0f[ile][!]		Remove the name of the current buffer.  The optional !
			avoids truncating the message, as with |:file|.  {not
			in Vi}

:buffers
:files
:ls			List all the currently known file names.  See
			'windows.txt' |:files| |:buffers| |:ls|.  {not in
			Vi}

Vim will remember the full path name of a file name that you enter.  In most
cases when the file name is displayed only the name you typed is shown, but
the full path name is being used if you used the ":cd" command |:cd|.

							*home-replace*
If the environment variable $HOME is set, and the file name starts with that
string, it is often displayed with HOME replaced with "~".  This was done to
keep file names short.  When reading or writing files the full name is still
used, the "~" is only used when displaying file names.  When replacing the
file name would result in just "~", "~/" is used instead (to avoid confusion
between options set to $HOME with 'backupext' set to "~").

When writing the buffer, the default is to use the current file name.  Thus
when you give the "ZZ" or ":wq" command, the original file will be
overwritten.  If you do not want this, the buffer can be written into another
file by giving a file name argument to the ":write" command.  For example: >

	vim testfile
	[change the buffer with editor commands]
	:w newfile
	:q

This will create a file "newfile", that is a modified copy of "testfile".
The file "testfile" will remain unchanged.  Anyway, if the 'backup' option is
set, Vim renames or copies the original file before it will be overwritten.
You can use this file if you discover that you need the original file.  See
also the 'patchmode' option.  The name of the backup file is normally the same
as the original file with 'backupext' appended.  The default "~" is a bit
strange to avoid accidentally overwriting existing files.  If you prefer ".bak"
change the 'backupext' option.  Extra dots are replaced with '_' on MS-DOS
machines, when Vim has detected that an MS-DOS-like filesystem is being used
(e.g., messydos or crossdos) or when the 'shortname' option is on.  The
backup file can be placed in another directory by setting 'backupdir'.

							*auto-shortname*
Technical: On the Amiga you can use 30 characters for a file name.  But on an
	   MS-DOS-compatible filesystem only 8 plus 3 characters are
	   available.  Vim tries to detect the type of filesystem when it is
	   creating the .swp file.  If an MS-DOS-like filesystem is suspected,
	   a flag is set that has the same effect as setting the 'shortname'
	   option.  This flag will be reset as soon as you start editing a
	   new file.  The flag will be used when making the file name for the
	   ".swp" and ".~" files for the current file.  But when you are
	   editing a file in a normal filesystem and write to an MS-DOS-like
	   filesystem the flag will not have been set.  In that case the
	   creation of the ".~" file may fail and you will get an error
	   message.  Use the 'shortname' option in this case.

When you started editing without giving a file name, "No File" is displayed in
messages.  If the ":write" command is used with a file name argument, the file
name for the current file is set to that file name.  This only happens when
the 'F' flag is included in 'cpoptions' (by default it is included) |cpo-F|.
This is useful when entering text in an empty buffer and then writing it to a
file.  If 'cpoptions' contains the 'f' flag (by default it is NOT included)
|cpo-f| the file name is set for the ":read file" command.  This is useful
when starting Vim without an argument and then doing ":read file" to start
editing a file.
When the file name was set and 'filetype' is empty the filetype detection
autocommands will be triggered.
							*not-edited*
Because the file name was set without really starting to edit that file, you
are protected from overwriting that file.  This is done by setting the
"notedited" flag.  You can see if this flag is set with the CTRL-G or ":file"
command.  It will include "[Not edited]" when the "notedited" flag is set.
When writing the buffer to the current file name (with ":w!"), the "notedited"
flag is reset.

							*abandon*
Vim remembers whether you have changed the buffer.  You are protected from
losing the changes you made.  If you try to quit without writing, or want to
start editing another file, Vim will refuse this.  In order to overrule this
protection, add a '!' to the command.  The changes will then be lost.  For
example: ":q" will not work if the buffer was changed, but ":q!" will.  To see
whether the buffer was changed use the "CTRL-G" command.  The message includes
the string "[Modified]" if the buffer has been changed, or "+" if the 'm' flag
is in 'shortmess'.

If you want to automatically save the changes without asking, switch on the
'autowriteall' option.  'autowrite' is the associated Vi-compatible option
that does not work for all commands.

If you want to keep the changed buffer without saving it, switch on the
'hidden' option.  See |hidden-buffer|.  Some commands work like this even when
'hidden' is not set, check the help for the command.

==============================================================================
2. Editing a file					*edit-a-file*

							*:e* *:edit* *reload*
:e[dit] [++opt] [+cmd]	Edit the current file.  This is useful to re-edit the
			current file, when it has been changed outside of Vim.
			This fails when changes have been made to the current
			buffer and 'autowriteall' isn't set or the file can't
			be written.
			Also see |++opt| and |+cmd|.
			{Vi: no ++opt}

							*:edit!* *discard*
:e[dit]! [++opt] [+cmd]
			Edit the current file always.  Discard any changes to
			the current buffer.  This is useful if you want to
			start all over again.
			Also see |++opt| and |+cmd|.
			{Vi: no ++opt}

							*:edit_f*
:e[dit] [++opt] [+cmd] {file}
			Edit {file}.
			This fails when changes have been made to the current
			buffer, unless 'hidden' is set or 'autowriteall' is
			set and the file can be written.
			Also see |++opt| and |+cmd|.
			{Vi: no ++opt}

							*:edit!_f*
:e[dit]! [++opt] [+cmd] {file}
			Edit {file} always.  Discard any changes to the
			current buffer.
			Also see |++opt| and |+cmd|.
			{Vi: no ++opt}

:e[dit] [++opt] [+cmd] #[count]
			Edit the [count]th buffer (as shown by |:files|).
			This command does the same as [count] CTRL-^.  But ":e
			#" doesn't work if the alternate buffer doesn't have a
			file name, while CTRL-^ still works then.
			Also see |++opt| and |+cmd|.
			{Vi: no ++opt}

							*:ene* *:enew*
:ene[w]			Edit a new, unnamed buffer.  This fails when changes
			have been made to the current buffer, unless 'hidden'
			is set or 'autowriteall' is set and the file can be
			written.
			If 'fileformats' is not empty, the first format given
			will be used for the new buffer.  If 'fileformats' is
			empty, the 'fileformat' of the current buffer is used.
			{not in Vi}

							*:ene!* *:enew!*
:ene[w]!		Edit a new, unnamed buffer.  Discard any changes to
			the current buffer.
			Set 'fileformat' like |:enew|.
			{not in Vi}

							*:fin* *:find*
:fin[d][!] [++opt] [+cmd] {file}
			Find {file} in 'path' and then |:edit| it.
			{not in Vi} {not available when the |+file_in_path|
			feature was disabled at compile time}

:{count}fin[d][!] [++opt] [+cmd] {file}
			Just like ":find", but use the {count} match in
			'path'.  Thus ":2find file" will find the second
			"file" found in 'path'.  When there are fewer matches
			for the file in 'path' than asked for, you get an
			error message.

							*:ex*
:ex [++opt] [+cmd] [file]
			Same as |:edit|.

							*:vi* *:visual*
:vi[sual][!] [++opt] [+cmd] [file]
			When used in Ex mode: Leave |Ex-mode|, go back to
			Normal mode.  Otherwise same as |:edit|.

							*:vie* *:view*
:vie[w][!] [++opt] [+cmd] file
			When used in Ex mode: Leave |Ex-mode|, go back to
			Normal mode.  Otherwise same as |:edit|, but set
			'readonly' option for this buffer.  {not in Vi}

							*CTRL-^* *CTRL-6*
CTRL-^			Edit the alternate file.  Mostly the alternate file is
			the previously edited file.  This is a quick way to
			toggle between two files.  It is equivalent to ":e #",
			except that it also works when there is no file name.

			If the 'autowrite' or 'autowriteall' option is on and
			the buffer was changed, write it.
			Mostly the ^ character is positioned on the 6 key,
			pressing CTRL and 6 then gets you what we call CTRL-^.
			But on some non-US keyboards CTRL-^ is produced in
			another way.

{count}CTRL-^		Edit [count]th file in the buffer list (equivalent to
			":e #[count]").  This is a quick way to switch between
			files.
			See |CTRL-^| above for further details.
			{not in Vi}

[count]]f						*]f* *[f*
[count][f		Same as "gf".  Deprecated.

							*gf* *E446* *E447*
[count]gf		Edit the file whose name is under or after the cursor.
			Mnemonic: "goto file".
			Uses the 'isfname' option to find out which characters
			are supposed to be in a file name.  Trailing
			punctuation characters ".,:;!" are ignored. Escaped
			spaces "\ " are reduced to a single space.
			Uses the 'path' option as a list of directory names to
			look for the file.  See the 'path' option for details
			about relative directories and wildcards.
			Uses the 'suffixesadd' option to check for file names
			with a suffix added.
			If the file can't be found, 'includeexpr' is used to
			modify the name and another attempt is done.
			If a [count] is given, the count'th file that is found
			in the 'path' is edited.
			This command fails if Vim refuses to |abandon| the
			current file.
			If you want to edit the file in a new window use
			|CTRL-W_CTRL-F|.
			If you do want to edit a new file, use: >
				:e <cfile>
<			To make gf always work like that: >
				:map gf :e <cfile><CR>
<			If the name is a hypertext link, that looks like
			"type://machine/path", you need the |netrw| plugin.
			For Unix the '~' character is expanded, like in
			"~user/file".  Environment variables are expanded too
			|expand-env|.
			{not in Vi}
			{not available when the |+file_in_path| feature was
			disabled at compile time}

							*v_gf*
{Visual}[count]gf	Same as "gf", but the highlighted text is used as the
			name of the file to edit.  'isfname' is ignored.
			Leading blanks are skipped, otherwise all blanks and
			special characters are included in the file name.
			(For {Visual} see |Visual-mode|.)
			{not in VI}

							*gF*
[count]gF		Same as "gf", except if a number follows the file
			name, then the cursor is positioned on that line in
			the file. The file name and the number must be
			separated by a non-filename (see 'isfname') and
			non-numeric character. White space between the
			filename, the separator and the number are ignored.
			Examples:
				eval.c:10 ~
				eval.c @ 20 ~
				eval.c (30) ~
				eval.c 40 ~

							*v_gF*
{Visual}[count]gF	Same as "v_gf".

These commands are used to start editing a single file.  This means that the
file is read into the buffer and the current file name is set.  The file that
is opened depends on the current directory, see |:cd|.

See |read-messages| for an explanation of the message that is given after the
file has been read.

You can use the ":e!" command if you messed up the buffer and want to start
all over again.  The ":e" command is only useful if you have changed the
current file name.

							*:filename* *{file}*
Besides the things mentioned here, more special items for where a filename is
expected are mentioned at |cmdline-special|.

Note for systems other than Unix: When using a command that accepts a single
file name (like ":edit file") spaces in the file name are allowed, but
trailing spaces are ignored.  This is useful on systems that regularly embed
spaces in file names (like MS-Windows and the Amiga).  Example: The command
":e   Long File Name " will edit the file "Long File Name".  When using a
command that accepts more than one file name (like ":next file1 file2")
embedded spaces must be escaped with a backslash.

						*wildcard* *wildcards*
Wildcards in {file} are expanded, but as with file completion, 'wildignore'
and 'suffixes' apply.  Which wildcards are supported depends on the system.
These are the common ones:
	?	matches one character
	*	matches anything, including nothing
	**	matches anything, including nothing, recurses into directories
	[abc]	match 'a', 'b' or 'c'

To avoid the special meaning of the wildcards prepend a backslash.  However,
on MS-Windows the backslash is a path separator and "path\[abc]" is still seen
as a wildcard when "[" is in the 'isfname' option.  A simple way to avoid this
is to use "path\[[]abc]", this matches the file "path\[abc]".

					*starstar-wildcard*
Expanding "**" is possible on Unix, Win32, Mac OS/X and a few other systems.
This allows searching a directory tree.  This goes up to 100 directories deep.
Note there are some commands where this works slightly differently, see
|file-searching|.
Example: >
	:n **/*.txt
Finds files:
	aaa.txt ~
	subdir/bbb.txt ~
	a/b/c/d/ccc.txt ~
When non-wildcard characters are used right before or after "**" these are
only matched in the top directory.  They are not used for directories further
down in the tree. For example: >
	:n /usr/inc**/types.h
Finds files:
	/usr/include/types.h ~
	/usr/include/sys/types.h ~
	/usr/inc/old/types.h ~
Note that the path with "/sys" is included because it does not need to match
"/inc".  Thus it's like matching "/usr/inc*/*/*...", not
"/usr/inc*/inc*/inc*".

					*backtick-expansion* *`-expansion*
On Unix and a few other systems you can also use backticks for the file name
argument, for example: >
	:next `find . -name ver\\*.c -print`
	:view `ls -t *.patch  \| head -n1`
Vim will run the command in backticks using the 'shell' and use the standard
output as argument for the given Vim command (error messages from the shell
command will be discarded).
To see what shell command Vim is running, set the 'verbose' option to 4. When
the shell command returns a non-zero exit code, an error message will be
displayed and the Vim command will be aborted. To avoid this make the shell
always return zero like so: >
       :next `find . -name ver\\*.c -print \|\| true`

The backslashes before the star are required to prevent the shell from
expanding "ver*.c" prior to execution of the find program.  The backslash
before the shell pipe symbol "|" prevents Vim from parsing it as command
termination.
This also works for most other systems, with the restriction that the
backticks must be around the whole item.  It is not possible to have text
directly before the first or just after the last backtick.

							*`=*
You can have the backticks expanded as a Vim expression, instead of as an
external command, by putting an equal sign right after the first backtick,
e.g.: >
	:e `=tempname()`
The expression can contain just about anything, thus this can also be used to
avoid the special meaning of '"', '|', '%' and '#'.  However, 'wildignore'
does apply like to other wildcards.

Environment variables in the expression are expanded when evaluating the
expression, thus this works: >
	:e `=$HOME . '/.vimrc'`
This does not work, $HOME is inside a string and used literally: >
	:e `='$HOME' . '/.vimrc'`

If the expression returns a string then names are to be separated with line
breaks.  When the result is a |List| then each item is used as a name.  Line
breaks also separate names.
Note that such expressions are only supported in places where a filename is
expected as an argument to an Ex-command.

							*++opt* *[++opt]*
The [++opt] argument can be used to force the value of 'fileformat',
'fileencoding' or 'binary' to a value for one command, and to specify the
behavior for bad characters.  The form is: >
	++{optname}
Or: >
	++{optname}={value}

Where {optname} is one of:	    *++ff* *++enc* *++bin* *++nobin* *++edit*
    ff     or  fileformat   overrides 'fileformat'
    enc    or  encoding	    overrides 'fileencoding'
    bin    or  binary	    sets 'binary'
    nobin  or  nobinary	    resets 'binary'
    bad			    specifies behavior for bad characters
    edit		    for |:read| only: keep option values as if editing
			    a file

{value} cannot contain white space.  It can be any valid value for these
options.  Examples: >
	:e ++ff=unix
This edits the same file again with 'fileformat' set to "unix". >

	:w ++enc=latin1 newfile
This writes the current buffer to "newfile" in latin1 format.

There may be several ++opt arguments, separated by white space.  They must all
appear before any |+cmd| argument.

								*++bad*
The argument of "++bad=" specifies what happens with characters that can't be
converted and illegal bytes.  It can be one of three things:
    ++bad=X      A single-byte character that replaces each bad character.
    ++bad=keep   Keep bad characters without conversion.  Note that this may
		 result in illegal bytes in your text!
    ++bad=drop   Remove the bad characters.

The default is like "++bad=?": Replace each bad character with a question
mark.  In some places an inverted question mark is used (0xBF).

Note that not all commands use the ++bad argument, even though they do not
give an error when you add it.  E.g. |:write|.

Note that when reading, the 'fileformat' and 'fileencoding' options will be
set to the used format.  When writing this doesn't happen, thus a next write
will use the old value of the option.  Same for the 'binary' option.


							*+cmd* *[+cmd]*
The [+cmd] argument can be used to position the cursor in the newly opened
file, or execute any other command:
	+		Start at the last line.
	+{num}		Start at line {num}.
	+/{pat}		Start at first line containing {pat}.
	+{command}	Execute {command} after opening the new file.
			{command} is any Ex command.
To include a white space in the {pat} or {command}, precede it with a
backslash.  Double the number of backslashes. >
	:edit  +/The\ book	     file
	:edit  +/dir\ dirname\\      file
	:edit  +set\ dir=c:\\\\temp  file
Note that in the last example the number of backslashes is halved twice: Once
for the "+cmd" argument and once for the ":set" command.

							*file-formats*
The 'fileformat' option sets the <EOL> style for a file:
'fileformat'    characters	   name				~
  "dos"		<CR><NL> or <NL>   DOS format		*DOS-format*
  "unix"	<NL>		   Unix format		*Unix-format*
  "mac"		<CR>		   Mac format		*Mac-format*
Previously 'textmode' was used.  It is obsolete now.

When reading a file, the mentioned characters are interpreted as the <EOL>.
In DOS format (default for MS-DOS, OS/2 and Win32), <CR><NL> and <NL> are both
interpreted as the <EOL>.  Note that when writing the file in DOS format,
<CR> characters will be added for each single <NL>.  Also see |file-read|.

When writing a file, the mentioned characters are used for <EOL>.  For DOS
format <CR><NL> is used.  Also see |DOS-format-write|.

You can read a file in DOS format and write it in Unix format.  This will
replace all <CR><NL> pairs by <NL> (assuming 'fileformats' includes "dos"): >
	:e file
	:set fileformat=unix
	:w
If you read a file in Unix format and write with DOS format, all <NL>
characters will be replaced with <CR><NL> (assuming 'fileformats' includes
"unix"): >
	:e file
	:set fileformat=dos
	:w

If you start editing a new file and the 'fileformats' option is not empty
(which is the default), Vim will try to detect whether the lines in the file
are separated by the specified formats.  When set to "unix,dos", Vim will
check for lines with a single <NL> (as used on Unix and Amiga) or by a <CR>
<NL> pair (MS-DOS).  Only when ALL lines end in <CR><NL>, 'fileformat' is set
to "dos", otherwise it is set to "unix".  When 'fileformats' includes "mac",
and no <NL> characters are found in the file, 'fileformat' is set to "mac".

If the 'fileformat' option is set to "dos" on non-MS-DOS systems the message
"[dos format]" is shown to remind you that something unusual is happening.  On
MS-DOS systems you get the message "[unix format]" if 'fileformat' is set to
"unix".  On all systems but the Macintosh you get the message "[mac format]"
if 'fileformat' is set to "mac".

If the 'fileformats' option is empty and DOS format is used, but while reading
a file some lines did not end in <CR><NL>, "[CR missing]" will be included in
the file message.
If the 'fileformats' option is empty and Mac format is used, but while reading
a file a <NL> was found, "[NL missing]" will be included in the file message.

If the new file does not exist, the 'fileformat' of the current buffer is used
when 'fileformats' is empty.  Otherwise the first format from 'fileformats' is
used for the new file.

Before editing binary, executable or Vim script files you should set the
'binary' option.  A simple way to do this is by starting Vim with the "-b"
option.  This will avoid the use of 'fileformat'.  Without this you risk that
single <NL> characters are unexpectedly replaced with <CR><NL>.

You can encrypt files that are written by setting the 'key' option.  This
provides some security against others reading your files. |encryption|


==============================================================================
3. The argument list				*argument-list* *arglist*

If you give more than one file name when starting Vim, this list is remembered
as the argument list.  You can jump to each file in this list.

Do not confuse this with the buffer list, which you can see with the
|:buffers| command.  The argument list was already present in Vi, the buffer
list is new in Vim.  Every file name in the argument list will also be present
in the buffer list (unless it was deleted with |:bdel| or |:bwipe|).  But it's
common that names in the buffer list are not in the argument list.

This subject is introduced in section |07.2| of the user manual.

There is one global argument list, which is used for all windows by default.
It is possible to create a new argument list local to a window, see
|:arglocal|.

You can use the argument list with the following commands, and with the
expression functions |argc()| and |argv()|.  These all work on the argument
list of the current window.

							*:ar* *:args*
:ar[gs]			Print the argument list, with the current file in
			square brackets.

:ar[gs] [++opt] [+cmd] {arglist}			*:args_f*
			Define {arglist} as the new argument list and edit
			the first one.  This fails when changes have been made
			and Vim does not want to |abandon| the current buffer.
			Also see |++opt| and |+cmd|.
			{Vi: no ++opt}

:ar[gs]! [++opt] [+cmd] {arglist}			*:args_f!*
			Define {arglist} as the new argument list and edit
			the first one.  Discard any changes to the current
			buffer.
			Also see |++opt| and |+cmd|.
			{Vi: no ++opt}

:[count]arge[dit][!] [++opt] [+cmd] {name} ..		*:arge* *:argedit*
			Add {name}s to the argument list and edit it.
			When {name} already exists in the argument list, this
			entry is edited.
			This is like using |:argadd| and then |:edit|.
			Spaces in filenames have to be escaped with "\".
			[count] is used like with |:argadd|.
			If the current file cannot be |abandon|ed {name}s will
			still be added to the argument list, but won't be
			edited. No check for duplicates is done.
			Also see |++opt| and |+cmd|.
			{not in Vi}

:[count]arga[dd] {name} ..			*:arga* *:argadd* *E479*
:[count]arga[dd]
			Add the {name}s to the argument list.  When {name} is
			omitted add the current buffer name to the argument
			list.
			If [count] is omitted, the {name}s are added just
			after the current entry in the argument list.
			Otherwise they are added after the [count]'th file.
			If the argument list is "a b c", and "b" is the
			current argument, then these commands result in:
				command		new argument list ~
				:argadd x	a b x c
				:0argadd x	x a b c
				:1argadd x	a x b c
				:$argadd x	a b c x
			And after the last one:
				:+2argadd y	a b c x y
			There is no check for duplicates, it is possible to
			add a file to the argument list twice.
			The currently edited file is not changed.
			{not in Vi}
			Note: you can also use this method: >
				:args ## x
<			This will add the "x" item and sort the new list.

:argd[elete] {pattern} ..			*:argd* *:argdelete* *E480*
			Delete files from the argument list that match the
			{pattern}s.  {pattern} is used like a file pattern,
			see |file-pattern|.  "%" can be used to delete the
			current entry.
			This command keeps the currently edited file, also
			when it's deleted from the argument list.
			Example: >
				:argdel *.obj
<			{not in Vi}

:[range]argd[elete]	Delete the {range} files from the argument list.
			Example: >
				:10,$argdel
<			Deletes arguments 10 and further, keeping 1-9. >
				:$argd
<			Deletes just the last one. >
				:argd
				:.argd
<			Deletes the current argument. >
				:%argd
<			Removes all the files from the arglist.
			When the last number in the range is too high, up to
			the last argument is deleted.
			{not in Vi}

							*:argu* *:argument*
:[count]argu[ment] [count] [++opt] [+cmd]
			Edit file [count] in the argument list.  When [count]
			is omitted the current entry is used.  This fails
			when changes have been made and Vim does not want to
			|abandon| the current buffer.
			Also see |++opt| and |+cmd|.
			{not in Vi}

:[count]argu[ment]! [count] [++opt] [+cmd]
			Edit file [count] in the argument list, discard any
			changes to the current buffer.  When [count] is
			omitted the current entry is used.
			Also see |++opt| and |+cmd|.
			{not in Vi}

:[count]n[ext] [++opt] [+cmd]			*:n* *:ne* *:next* *E165* *E163*
			Edit [count] next file.  This fails when changes have
			been made and Vim does not want to |abandon| the
			current buffer.  Also see |++opt| and |+cmd|.  {Vi: no
			count or ++opt}.

:[count]n[ext]! [++opt] [+cmd]
			Edit [count] next file, discard any changes to the
			buffer.  Also see |++opt| and |+cmd|.  {Vi: no count
			or ++opt}.

:n[ext] [++opt] [+cmd] {arglist}			*:next_f*
			Same as |:args_f|.

:n[ext]! [++opt] [+cmd] {arglist}
			Same as |:args_f!|.

:[count]N[ext] [count] [++opt] [+cmd]			*:Next* *:N* *E164*
			Edit [count] previous file in argument list.  This
			fails when changes have been made and Vim does not
			want to |abandon| the current buffer.
			Also see |++opt| and |+cmd|.  {Vi: no count or ++opt}.

:[count]N[ext]! [count] [++opt] [+cmd]
			Edit [count] previous file in argument list.  Discard
			any changes to the buffer.  Also see |++opt| and
			|+cmd|.  {Vi: no count or ++opt}.

:[count]prev[ious] [count] [++opt] [+cmd]		*:prev* *:previous*
			Same as :Next.  Also see |++opt| and |+cmd|.  {Vi:
			only in some versions}

							*:rew* *:rewind*
:rew[ind] [++opt] [+cmd]
			Start editing the first file in the argument list.
			This fails when changes have been made and Vim does
			not want to |abandon| the current buffer.
			Also see |++opt| and |+cmd|. {Vi: no ++opt}

:rew[ind]! [++opt] [+cmd]
			Start editing the first file in the argument list.
			Discard any changes to the buffer.  Also see |++opt|
			and |+cmd|. {Vi: no ++opt}

							*:fir* *:first*
:fir[st][!] [++opt] [+cmd]
			Other name for ":rewind". {not in Vi}

							*:la* *:last*
:la[st] [++opt] [+cmd]
			Start editing the last file in the argument list.
			This fails when changes have been made and Vim does
			not want to |abandon| the current buffer.
			Also see |++opt| and |+cmd|.  {not in Vi}

:la[st]! [++opt] [+cmd]
			Start editing the last file in the argument list.
			Discard any changes to the buffer.  Also see |++opt|
			and |+cmd|.  {not in Vi}

							*:wn* *:wnext*
:[count]wn[ext] [++opt]
			Write current file and start editing the [count]
			next file.  Also see |++opt| and |+cmd|.  {not in Vi}

:[count]wn[ext] [++opt] {file}
			Write current file to {file} and start editing the
			[count] next file, unless {file} already exists and
			the 'writeany' option is off.  Also see |++opt| and
			|+cmd|.  {not in Vi}

:[count]wn[ext]! [++opt] {file}
			Write current file to {file} and start editing the
			[count] next file.  Also see |++opt| and |+cmd|.  {not
			in Vi}

:[count]wN[ext][!] [++opt] [file]		*:wN* *:wNext*
:[count]wp[revious][!] [++opt] [file]		*:wp* *:wprevious*
			Same as :wnext, but go to previous file instead of
			next.  {not in Vi}

The [count] in the commands above defaults to one.  For some commands it is
possible to use two counts.  The last one (rightmost one) is used.

If no [+cmd] argument is present, the cursor is positioned at the last known
cursor position for the file.  If 'startofline' is set, the cursor will be
positioned at the first non-blank in the line, otherwise the last know column
is used.  If there is no last known cursor position the cursor will be in the
first line (the last line in Ex mode).

							*{arglist}*
The wildcards in the argument list are expanded and the file names are sorted.
Thus you can use the command "vim *.c" to edit all the C files.  From within
Vim the command ":n *.c" does the same.

White space is used to separate file names.  Put a backslash before a space or
tab to include it in a file name.  E.g., to edit the single file "foo bar": >
	:next foo\ bar

On Unix and a few other systems you can also use backticks, for example: >
	:next `find . -name \\*.c -print`
The backslashes before the star are required to prevent "*.c" to be expanded
by the shell before executing the find program.

							*arglist-position*
When there is an argument list you can see which file you are editing in the
title of the window (if there is one and 'title' is on) and with the file
message you get with the "CTRL-G" command.  You will see something like
	(file 4 of 11)
If 'shortmess' contains 'f' it will be
	(4 of 11)
If you are not really editing the file at the current position in the argument
list it will be
	(file (4) of 11)
This means that you are position 4 in the argument list, but not editing the
fourth file in the argument list.  This happens when you do ":e file".


LOCAL ARGUMENT LIST

{not in Vi}

							*:arglocal*
:argl[ocal]		Make a local copy of the global argument list.
			Doesn't start editing another file.

:argl[ocal][!] [++opt] [+cmd] {arglist}
			Define a new argument list, which is local to the
			current window.  Works like |:args_f| otherwise.

							*:argglobal*
:argg[lobal]		Use the global argument list for the current window.
			Doesn't start editing another file.

:argg[lobal][!] [++opt] [+cmd] {arglist}
			Use the global argument list for the current window.
			Define a new global argument list like |:args_f|.
			All windows using the global argument list will see
			this new list.

There can be several argument lists.  They can be shared between windows.
When they are shared, changing the argument list in one window will also
change it in the other window.

When a window is split the new window inherits the argument list from the
current window.  The two windows then share this list, until one of them uses
|:arglocal| or |:argglobal| to use another argument list.


USING THE ARGUMENT LIST

						*:argdo*
:[range]argdo[!] {cmd}	Execute {cmd} for each file in the argument list or
			if [range] is specified only for arguments in that
			range.  It works like doing this: >
				:rewind
				:{cmd}
				:next
				:{cmd}
				etc.
<			When the current file can't be |abandon|ed and the [!]
			is not present, the command fails.
			When an error is detected on one file, further files
			in the argument list will not be visited.
			The last file in the argument list (or where an error
			occurred) becomes the current file.
			{cmd} can contain '|' to concatenate several commands.
			{cmd} must not change the argument list.
			Note: While this command is executing, the Syntax
			autocommand event is disabled by adding it to
			'eventignore'.  This considerably speeds up editing
			each file.
			{not in Vi}
			Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|,
			|:cfdo| and |:lfdo|

Example: >
	:args *.c
	:argdo set ff=unix | update
This sets the 'fileformat' option to "unix" and writes the file if it is now
changed.  This is done for all *.c files.

Example: >
	:args *.[ch]
	:argdo %s/\<my_foo\>/My_Foo/ge | update
This changes the word "my_foo" to "My_Foo" in all *.c and *.h files.  The "e"
flag is used for the ":substitute" command to avoid an error for files where
"my_foo" isn't used.  ":update" writes the file only if changes were made.

==============================================================================
4. Writing					*writing* *save-file*

Note: When the 'write' option is off, you are not able to write any file.

							*:w* *:write*
						*E502* *E503* *E504* *E505*
						*E512* *E514* *E667* *E796* *E949*
:w[rite] [++opt]	Write the whole buffer to the current file.  This is
			the normal way to save changes to a file.  It fails
			when the 'readonly' option is set or when there is
			another reason why the file can't be written.
			For ++opt see |++opt|, but only ++bin, ++nobin, ++ff
			and ++enc are effective.

:w[rite]! [++opt]	Like ":write", but forcefully write when 'readonly' is
			set or there is another reason why writing was
			refused.
			Note: This may change the permission and ownership of
			the file and break (symbolic) links.  Add the 'W' flag
			to 'cpoptions' to avoid this.

:[range]w[rite][!] [++opt]
			Write the specified lines to the current file.  This
			is unusual, because the file will not contain all
			lines in the buffer.

							*:w_f* *:write_f*
:[range]w[rite] [++opt]	{file}
			Write the specified lines to {file}, unless it
			already exists and the 'writeany' option is off.

							*:w!*
:[range]w[rite]! [++opt] {file}
			Write the specified lines to {file}.  Overwrite an
			existing file.

						*:w_a* *:write_a* *E494*
:[range]w[rite][!] [++opt] >>
			Append the specified lines to the current file.

:[range]w[rite][!] [++opt] >> {file}
			Append the specified lines to {file}.  '!' forces the
			write even if file does not exist.

							*:w_c* *:write_c*
:[range]w[rite] [++opt] !{cmd}
			Execute {cmd} with [range] lines as standard input
			(note the space in front of the '!').  {cmd} is
			executed like with ":!{cmd}", any '!' is replaced with
			the previous command |:!|.

The default [range] for the ":w" command is the whole buffer (1,$).  If you
write the whole buffer, it is no longer considered changed.  When you
write it to a different file with ":w somefile" it depends on the "+" flag in
'cpoptions'.  When included, the write command will reset the 'modified' flag,
even though the buffer itself may still be different from its file.

If a file name is given with ":w" it becomes the alternate file.  This can be
used, for example, when the write fails and you want to try again later with
":w #".  This can be switched off by removing the 'A' flag from the
'cpoptions' option.

Note that the 'fsync' option matters here.  If it's set it may make writes
slower (but safer).

							*:sav* *:saveas*
:sav[eas][!] [++opt] {file}
			Save the current buffer under the name {file} and set
			the filename of the current buffer to {file}.  The
			previous name is used for the alternate file name.
			The [!] is needed to overwrite an existing file.
			When 'filetype' is empty filetype detection is done
			with the new name, before the file is written.
			When the write was successful 'readonly' is reset.
			{not in Vi}

							*:up* *:update*
:[range]up[date][!] [++opt] [>>] [file]
			Like ":write", but only write when the buffer has been
			modified.  {not in Vi}


WRITING WITH MULTIPLE BUFFERS				*buffer-write*

							*:wa* *:wall*
:wa[ll]			Write all changed buffers.  Buffers without a file
			name cause an error message.  Buffers which are
			readonly are not written. {not in Vi}

:wa[ll]!		Write all changed buffers, even the ones that are
			readonly.  Buffers without a file name are not
			written and cause an error message. {not in Vi}


Vim will warn you if you try to overwrite a file that has been changed
elsewhere.  See |timestamp|.

			    *backup* *E207* *E506* *E507* *E508* *E509* *E510*
If you write to an existing file (but do not append) while the 'backup',
'writebackup' or 'patchmode' option is on, a backup of the original file is
made.  The file is either copied or renamed (see 'backupcopy').  After the
file has been successfully written and when the 'writebackup' option is on and
the 'backup' option is off, the backup file is deleted.  When the 'patchmode'
option is on the backup file may be renamed.

							*backup-table*
'backup' 'writebackup'	action	~
   off	     off	no backup made
   off	     on		backup current file, deleted afterwards (default)
   on	     off	delete old backup, backup current file
   on	     on		delete old backup, backup current file

When the 'backupskip' pattern matches with the name of the file which is
written, no backup file is made.  The values of 'backup' and 'writebackup' are
ignored then.

When the 'backup' option is on, an old backup file (with the same name as the
new backup file) will be deleted.  If 'backup' is not set, but 'writebackup'
is set, an existing backup file will not be deleted.  The backup file that is
made while the file is being written will have a different name.

On some filesystems it's possible that in a crash you lose both the backup and
the newly written file (it might be there but contain bogus data).  In that
case try recovery, because the swap file is synced to disk and might still be
there. |:recover|

The directories given with the 'backupdir' option are used to put the backup
file in.  (default: same directory as the written file).

Whether the backup is a new file, which is a copy of the original file, or the
original file renamed depends on the 'backupcopy' option.  See there for an
explanation of when the copy is made and when the file is renamed.

If the creation of a backup file fails, the write is not done.  If you want
to write anyway add a '!' to the command.

							*write-permissions*
When writing a new file the permissions are read-write.  For unix the mask is
0666 with additionally umask applied.  When writing a file that was read Vim
will preserve the permissions, but clear the s-bit.

							*write-readonly*
When the 'cpoptions' option contains 'W', Vim will refuse to overwrite a
readonly file.  When 'W' is not present, ":w!" will overwrite a readonly file,
if the system allows it (the directory must be writable).

							*write-fail*
If the writing of the new file fails, you have to be careful not to lose
your changes AND the original file.  If there is no backup file and writing
the new file failed, you have already lost the original file!  DON'T EXIT VIM
UNTIL YOU WRITE OUT THE FILE!  If a backup was made, it is put back in place
of the original file (if possible).  If you exit Vim, and lose the changes
you made, the original file will mostly still be there.  If putting back the
original file fails, there will be an error message telling you that you
lost the original file.

						*DOS-format-write*
If the 'fileformat' is "dos", <CR> <NL> is used for <EOL>.  This is default
for MS-DOS, Win32 and OS/2.  On other systems the message "[dos format]" is
shown to remind you that an unusual <EOL> was used.
						*Unix-format-write*
If the 'fileformat' is "unix", <NL> is used for <EOL>.  On MS-DOS, Win32 and
OS/2 the message "[unix format]" is shown.
						*Mac-format-write*
If the 'fileformat' is "mac", <CR> is used for <EOL>.  On non-Mac systems the
message "[mac format]" is shown.

See also |file-formats| and the 'fileformat' and 'fileformats' options.

						*ACL*
ACL stands for Access Control List.  It is an advanced way to control access
rights for a file.  It is used on new MS-Windows and Unix systems, but only
when the filesystem supports it.
   Vim attempts to preserve the ACL info when writing a file.  The backup file
will get the ACL info of the original file.
   The ACL info is also used to check if a file is read-only (when opening the
file).

						*read-only-share*
When MS-Windows shares a drive on the network it can be marked as read-only.
This means that even if the file read-only attribute is absent, and the ACL
settings on NT network shared drives allow writing to the file, you can still
not write to the file.  Vim on Win32 platforms will detect read-only network
drives and will mark the file as read-only.  You will not be able to override
it with |:write|.

						*write-device*
When the file name is actually a device name, Vim will not make a backup (that
would be impossible).  You need to use "!", since the device already exists.
Example for Unix: >
	:w! /dev/lpt0
and for MS-DOS or MS-Windows: >
	:w! lpt0
For Unix a device is detected when the name doesn't refer to a normal file or
a directory.  A fifo or named pipe also looks like a device to Vim.
For MS-DOS and MS-Windows the device is detected by its name:
	AUX
	CON
	CLOCK$
	NUL
	PRN
	COMn	n=1,2,3... etc
	LPTn	n=1,2,3... etc
The names can be in upper- or lowercase.

==============================================================================
5. Writing and quitting					*write-quit*

							*:q* *:quit*
:q[uit]			Quit the current window.  Quit Vim if this is the last
			window.  This fails when changes have been made and
			Vim refuses to |abandon| the current buffer, and when
			the last file in the argument list has not been
			edited.
			If there are other tab pages and quitting the last
			window in the current tab page the current tab page is
			closed |tab-page|.
			Triggers the |QuitPre| autocommand event.
			See |CTRL-W_q| for quitting another window.

:conf[irm] q[uit]	Quit, but give prompt when changes have been made, or
			the last file in the argument list has not been
			edited.  See |:confirm| and 'confirm'.  {not in Vi}

:q[uit]!		Quit without writing, also when the current buffer has
			changes.  The buffer is unloaded, also when it has
			'hidden' set.
			If this is the last window and there is a modified
			hidden buffer, the current buffer is abandoned and the
			first changed hidden buffer becomes the current
			buffer.
			Use ":qall!" to exit always.

:cq[uit]		Quit always, without writing, and return an error
			code.  See |:cq|.  Used for Manx's QuickFix mode (see
			|quickfix|).  {not in Vi}

							*:wq*
:wq [++opt]		Write the current file and quit.  Writing fails when
			the file is read-only or the buffer does not have a
			name.  Quitting fails when the last file in the
			argument list has not been edited.

:wq! [++opt]		Write the current file and quit.  Writing fails when
			the current buffer does not have a name.

:wq [++opt] {file}	Write to {file} and quit.  Quitting fails when the
			last file in the argument list has not been edited.

:wq! [++opt] {file}	Write to {file} and quit.

:[range]wq[!] [++opt] [file]
			Same as above, but only write the lines in [range].

							*:x* *:xit*
:[range]x[it][!] [++opt] [file]
			Like ":wq", but write only when changes have been
			made.
			When 'hidden' is set and there are more windows, the
			current buffer becomes hidden, after writing the file.

							*:exi* *:exit*
:[range]exi[t][!] [++opt] [file]
			Same as :xit.

							*ZZ*
ZZ			Write current file, if modified, and quit (same as
			":x").  (Note: If there are several windows for the
			current file, the file is written if it was modified
			and the window is closed).

							*ZQ*
ZQ			Quit without checking for changes (same as ":q!").
			{not in Vi}

MULTIPLE WINDOWS AND BUFFERS				*window-exit*

							*:qa* *:qall*
:qa[ll]		Exit Vim, unless there are some buffers which have been
		changed.  (Use ":bmod" to go to the next modified buffer).
		When 'autowriteall' is set all changed buffers will be
		written, like |:wqall|. {not in Vi}

:conf[irm] qa[ll]
		Exit Vim.  Bring up a prompt when some buffers have been
		changed.  See |:confirm|. {not in Vi}

:qa[ll]!	Exit Vim.  Any changes to buffers are lost. {not in Vi}
		Also see |:cquit|, it does the same but exits with a non-zero
		value.

							*:quita* *:quitall*
:quita[ll][!]	Same as ":qall". {not in Vi}

:wqa[ll] [++opt]				*:wqa* *:wqall* *:xa* *:xall*
:xa[ll]		Write all changed buffers and exit Vim.  If there are buffers
		without a file name, which are readonly or which cannot be
		written for another reason, Vim will not quit. {not in Vi}

:conf[irm] wqa[ll] [++opt]
:conf[irm] xa[ll]
		Write all changed buffers and exit Vim.  Bring up a prompt
		when some buffers are readonly or cannot be written for
		another reason.  See |:confirm|. {not in Vi}

:wqa[ll]! [++opt]
:xa[ll]!	Write all changed buffers, even the ones that are readonly,
		and exit Vim.  If there are buffers without a file name or
		which cannot be written for another reason, or there is a
		terminal with a running job, Vim will not quit.
		{not in Vi}

==============================================================================
6. Dialogs						*edit-dialogs*

							*:confirm* *:conf*
:conf[irm] {command}	Execute {command}, and use a dialog when an
			operation has to be confirmed.  Can be used on the
			|:q|, |:qa| and |:w| commands (the latter to override
			a read-only setting), and any other command that can
			fail in such a way, such as |:only|, |:buffer|,
			|:bdelete|, etc.

Examples: >
  :confirm w foo
<	Will ask for confirmation when "foo" already exists. >
  :confirm q
<	Will ask for confirmation when there are changes. >
  :confirm qa
<	If any modified, unsaved buffers exist, you will be prompted to save
	or abandon each one.  There are also choices to "save all" or "abandon
	all".

If you want to always use ":confirm", set the 'confirm' option.

			*:browse* *:bro* *E338* *E614* *E615* *E616*
:bro[wse] {command}	Open a file selection dialog for an argument to
			{command}.  At present this works for |:e|, |:w|,
			|:wall|, |:wq|, |:wqall|, |:x|, |:xall|, |:exit|,
			|:view|, |:sview|, |:r|, |:saveas|, |:sp|, |:mkexrc|,
			|:mkvimrc|, |:mksession|, |:mkview|, |:split|,
			|:vsplit|, |:tabe|, |:tabnew|, |:cfile|, |:cgetfile|,
			|:caddfile|, |:lfile|, |:lgetfile|, |:laddfile|,
			|:diffsplit|, |:diffpatch|, |:open|, |:pedit|,
			|:redir|, |:source|, |:update|, |:visual|, |:vsplit|,
			and |:qall| if 'confirm' is set.
			{only in Win32, Athena, Motif, GTK and Mac GUI}
			When ":browse" is not possible you get an error
			message.  If the |+browse| feature is missing or the
			{command} doesn't support browsing, the {command} is
			executed without a dialog.
			":browse set" works like |:options|.
			See also |:oldfiles| for ":browse oldfiles".

The syntax is best shown via some examples: >
	:browse e $vim/foo
<		Open the browser in the $vim/foo directory, and edit the
		file chosen. >
	:browse e
<		Open the browser in the directory specified with 'browsedir',
		and edit the file chosen. >
	:browse w
<		Open the browser in the directory of the current buffer,
		with the current buffer filename as default, and save the
		buffer under the filename chosen. >
	:browse w C:/bar
<		Open the browser in the C:/bar directory, with the current
		buffer filename as default, and save the buffer under the
		filename chosen.
Also see the |'browsedir'| option.
For versions of Vim where browsing is not supported, the command is executed
unmodified.

							*browsefilter*
For MS Windows and GTK, you can modify the filters that are used in the browse
dialog.  By setting the g:browsefilter or b:browsefilter variables, you can
change the filters globally or locally to the buffer.  The variable is set to
a string in the format "{filter label}\t{pattern};{pattern}\n" where {filter
label} is the text that appears in the "Files of Type" comboBox, and {pattern}
is the pattern which filters the filenames.  Several patterns can be given,
separated by ';'.

For Motif the same format is used, but only the very first pattern is actually
used (Motif only offers one pattern, but you can edit it).

For example, to have only Vim files in the dialog, you could use the following
command: >

     let g:browsefilter = "Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n"

You can override the filter setting on a per-buffer basis by setting the
b:browsefilter variable.  You would most likely set b:browsefilter in a
filetype plugin, so that the browse dialog would contain entries related to
the type of file you are currently editing.  Disadvantage: This makes it
difficult to start editing a file of a different type.  To overcome this, you
may want to add "All Files\t*.*\n" as the final filter, so that the user can
still access any desired file.

To avoid setting browsefilter when Vim does not actually support it, you can
use has("browsefilter"): >

	if has("browsefilter")
	   let g:browsefilter = "whatever"
	endif

==============================================================================
7. The current directory				*current-directory*

You may use the |:cd| and |:lcd| commands to change to another directory, so
you will not have to type that directory name in front of the file names.  It
also makes a difference for executing external commands, e.g. ":!ls".

Changing directory fails when the current buffer is modified, the '.' flag is
present in 'cpoptions' and "!" is not used in the command.

							*:cd* *E747* *E472*
:cd[!]			On non-Unix systems: Print the current directory
			name.  On Unix systems: Change the current directory
			to the home directory.  Use |:pwd| to print the
			current directory on all systems.

:cd[!] {path}		Change the current directory to {path}.
			If {path} is relative, it is searched for in the
			directories listed in |'cdpath'|.
			Does not change the meaning of an already opened file,
			because its full path name is remembered.  Files from
			the |arglist| may change though!
			On MS-DOS this also changes the active drive.
			To change to the directory of the current file: >
				:cd %:h
<
							*:cd-* *E186*
:cd[!] -		Change to the previous current directory (before the
			previous ":cd {path}" command). {not in Vi}

							*:chd* *:chdir*
:chd[ir][!] [path]	Same as |:cd|.

							*:lc* *:lcd*
:lc[d][!] {path}	Like |:cd|, but only set the current directory when
			the cursor is in the current window.  The current
			directory for other windows is not changed, switching
			to another window will stop using {path}.
			{not in Vi}

							*:lch* *:lchdir*
:lch[dir][!]		Same as |:lcd|. {not in Vi}

							*:pw* *:pwd* *E187*
:pw[d]			Print the current directory name.  {Vi: no pwd}
			Also see |getcwd()|.

So long as no |:lcd| command has been used, all windows share the same current
directory.  Using a command to jump to another window doesn't change anything
for the current directory.
When a |:lcd| command has been used for a window, the specified directory
becomes the current directory for that window.  Windows where the |:lcd|
command has not been used stick to the global current directory.  When jumping
to another window the current directory will become the last specified local
current directory.  If none was specified, the global current directory is
used.
When a |:cd| command is used, the current window will lose his local current
directory and will use the global current directory from now on.

After using |:cd| the full path name will be used for reading and writing
files.  On some networked file systems this may cause problems.  The result of
using the full path name is that the file names currently in use will remain
referring to the same file.  Example: If you have a file a:test and a
directory a:vim the commands ":e test" ":cd vim" ":w" will overwrite the file
a:test and not write a:vim/test.  But if you do ":w test" the file a:vim/test
will be written, because you gave a new file name and did not refer to a
filename before the ":cd".

==============================================================================
8. Editing binary files					*edit-binary*

Although Vim was made to edit text files, it is possible to edit binary
files.  The |-b| Vim argument (b for binary) makes Vim do file I/O in binary
mode, and sets some options for editing binary files ('binary' on, 'textwidth'
to 0, 'modeline' off, 'expandtab' off).  Setting the 'binary' option has the
same effect.  Don't forget to do this before reading the file.

There are a few things to remember when editing binary files:
- When editing executable files the number of characters must not change.
  Use only the "R" or "r" command to change text.  Do not delete characters
  with "x" or by backspacing.
- Set the 'textwidth' option to 0.  Otherwise lines will unexpectedly be
  split in two.
- When there are not many <EOL>s, the lines will become very long.  If you
  want to edit a line that does not fit on the screen reset the 'wrap' option.
  Horizontal scrolling is used then.  If a line becomes too long (more than
  about 32767 characters on the Amiga, much more on 32-bit systems, see
  |limits|) you cannot edit that line.  The line will be split when reading
  the file.  It is also possible that you get an "out of memory" error when
  reading the file.
- Make sure the 'binary' option is set BEFORE loading the
  file.  Otherwise both <CR> <NL> and <NL> are considered to end a line
  and when the file is written the <NL> will be replaced with <CR> <NL>.
- <Nul> characters are shown on the screen as ^@.  You can enter them with
  "CTRL-V CTRL-@" or "CTRL-V 000" {Vi cannot handle <Nul> characters in the
  file}
- To insert a <NL> character in the file split a line.  When writing the
  buffer to a file a <NL> will be written for the <EOL>.
- Vim normally appends an <EOL> at the end of the file if there is none.
  Setting the 'binary' option prevents this.  If you want to add the final
  <EOL>, set the 'endofline' option.  You can also read the value of this
  option to see if there was an <EOL> for the last line (you cannot see this
  in the text).

==============================================================================
9. Encryption						*encryption*

Vim is able to write files encrypted, and read them back.  The encrypted text
cannot be read without the right key.
{only available when compiled with the |+cryptv| feature}  *E833*

The text in the swap file and the undo file is also encrypted.  *E843*
However, this is done block-by-block and may reduce the time needed to crack a
password.  You can disable the swap file, but then a crash will cause you to
lose your work.  The undo file can be disabled without much disadvantage. >
	:set noundofile
	:noswapfile edit secrets

Note: The text in memory is not encrypted.  A system administrator may be able
to see your text while you are editing it.  When filtering text with
":!filter" or using ":w !command" the text is also not encrypted, this may
reveal it to others.  The 'viminfo' file is not encrypted.

You could do this to edit very secret text: >
	:set noundofile viminfo=
	:noswapfile edit secrets.txt
Keep in mind that without a swap file you risk losing your work in the event
of a crash or a power failure.

WARNING: If you make a typo when entering the key and then write the file and
exit, the text will be lost!

The normal way to work with encryption, is to use the ":X" command, which will
ask you to enter a key.  A following write command will use that key to
encrypt the file.  If you later edit the same file, Vim will ask you to enter
a key.  If you type the same key as that was used for writing, the text will
be readable again.  If you use a wrong key, it will be a mess.

							*:X*
:X	Prompt for an encryption key.  The typing is done without showing the
	actual text, so that someone looking at the display won't see it.
	The typed key is stored in the 'key' option, which is used to encrypt
	the file when it is written.  The file will remain unchanged until you
	write it.  See also |-x|.

The value of the 'key' options is used when text is written.  When the option
is not empty, the written file will be encrypted, using the value as the
encryption key.  A magic number is prepended, so that Vim can recognize that
the file is encrypted.

To disable the encryption, reset the 'key' option to an empty value: >
	:set key=

You can use the 'cryptmethod' option to select the type of encryption, use one
of these: >
	:setlocal cm=zip        " weak method, backwards compatible
	:setlocal cm=blowfish   " method with flaws
	:setlocal cm=blowfish2  " medium strong method

Do this before writing the file.  When reading an encrypted file it will be
set automatically to the method used when that file was written.  You can
change 'cryptmethod' before writing that file to change the method.

To set the default method, used for new files, use this in your |vimrc| 
file: >
	set cm=blowfish2
Using "blowfish2" is highly recommended.  Only use another method if you
must use an older Vim version that does not support it.

The message given for reading and writing a file will show "[crypted]" when
using zip, "[blowfish]" when using blowfish, etc.

When writing an undo file, the same key and method will be used for the text
in the undo file. |persistent-undo|.

To test for blowfish support you can use these conditions: >
	has('crypt-blowfish')
	has('crypt-blowfish2')
This works since Vim 7.4.1099 while blowfish support was added earlier.
Thus the condition failing doesn't mean blowfish is not supported. You can
test for blowfish with: >
	v:version >= 703
And for blowfish2 with: >
	v:version > 704 || (v:version == 704 && has('patch401'))
If you are sure Vim includes patch 7.4.237 a simpler check is: >
	has('patch-7.4.401')
<
						*E817* *E818* *E819* *E820*
When encryption does not work properly, you would be able to write your text
to a file and never be able to read it back.  Therefore a test is performed to
check if the encryption works as expected.  If you get one of these errors
don't write the file encrypted!  You need to rebuild the Vim binary to fix
this.

*E831* This is an internal error, "cannot happen".  If you can reproduce it,
please report to the developers.

When reading a file that has been encrypted and the 'key' option is not empty,
it will be used for decryption.  If the value is empty, you will be prompted
to enter the key.  If you don't enter a key, or you enter the wrong key, the
file is edited without being decrypted.  There is no warning about using the
wrong key (this makes brute force methods to find the key more difficult).

If want to start reading a file that uses a different key, set the 'key'
option to an empty string, so that Vim will prompt for a new one.  Don't use
the ":set" command to enter the value, other people can read the command over
your shoulder.

Since the value of the 'key' option is supposed to be a secret, its value can
never be viewed.  You should not set this option in a vimrc file.

An encrypted file can be recognized by the "file" command, if you add these
lines to "/etc/magic", "/usr/share/misc/magic" or wherever your system has the
"magic" file: >
     0	string	VimCrypt~	Vim encrypted file
     >9	string	01	- "zip" cryptmethod
     >9	string	02	- "blowfish" cryptmethod
     >9	string	03	- "blowfish2" cryptmethod

Notes:
- Encryption is not possible when doing conversion with 'charconvert'.
- Text you copy or delete goes to the numbered registers.  The registers can
  be saved in the .viminfo file, where they could be read.  Change your
  'viminfo' option to be safe.
- Someone can type commands in Vim when you walk away for a moment, he should
  not be able to get the key.
- If you make a typing mistake when entering the key, you might not be able to
  get your text back!
- If you type the key with a ":set key=value" command, it can be kept in the
  history, showing the 'key' value in a viminfo file.
- There is never 100% safety.  The encryption in Vim has not been tested for
  robustness.
- The algorithm used for 'cryptmethod' "zip" is breakable.  A 4 character key
  in about one hour, a 6 character key in one day (on a Pentium 133 PC).  This
  requires that you know some text that must appear in the file.  An expert
  can break it for any key.  When the text has been decrypted, this also means
  that the key can be revealed, and other files encrypted with the same key
  can be decrypted.
- Pkzip uses the same encryption as 'cryptmethod' "zip", and US Govt has no
  objection to its export.  Pkzip's public file APPNOTE.TXT describes this
  algorithm in detail.
- The implementation of 'cryptmethod' "blowfish" has a flaw.  It is possible
  to crack the first 64 bytes of a file and in some circumstances more of the
  file. Use of it is not recommended, but it's still the strongest method
  supported by Vim 7.3 and 7.4.  The "zip" method is even weaker.
- Vim originates from the Netherlands.  That is where the sources come from.
  Thus the encryption code is not exported from the USA.

==============================================================================
10. Timestamps					*timestamp* *timestamps*

Vim remembers the modification timestamp, mode and size of a file when you
begin editing it.  This is used to avoid that you have two different versions
of the same file (without you knowing this).

After a shell command is run (|:!cmd| |suspend| |:read!| |K|) timestamps,
file modes and file sizes are compared for all buffers in a window.   Vim will
run any associated |FileChangedShell| autocommands or display a warning for
any files that have changed.  In the GUI this happens when Vim regains input
focus.

							*E321* *E462*
If you want to automatically reload a file when it has been changed outside of
Vim, set the 'autoread' option.  This doesn't work at the moment you write the
file though, only when the file wasn't changed inside of Vim.

If you do not want to be asked or automatically reload the file, you can use
this: >
	set buftype=nofile

Or, when starting gvim from a shell: >
	gvim file.log -c "set buftype=nofile"

Note that if a FileChangedShell autocommand is defined you will not get a
warning message or prompt.  The autocommand is expected to handle this.

There is no warning for a directory (e.g., with |netrw-browse|).  But you do
get warned if you started editing a new file and it was created as a directory
later.

When Vim notices the timestamp of a file has changed, and the file is being
edited in a buffer but has not changed, Vim checks if the contents of the file
is equal.  This is done by reading the file again (into a hidden buffer, which
is immediately deleted again) and comparing the text.  If the text is equal,
you will get no warning.

If you don't get warned often enough you can use the following command.

							*:checkt* *:checktime*
:checkt[ime]		Check if any buffers were changed outside of Vim.
			This checks and warns you if you would end up with two
			versions of a file.
			If this is called from an autocommand, a ":global"
			command or is not typed the actual check is postponed
			until a moment the side effects (reloading the file)
			would be harmless.
			Each loaded buffer is checked for its associated file
			being changed.  If the file was changed Vim will take
			action.  If there are no changes in the buffer and
			'autoread' is set, the buffer is reloaded.  Otherwise,
			you are offered the choice of reloading the file.  If
			the file was deleted you get an error message.
			If the file previously didn't exist you get a warning
			if it exists now.
			Once a file has been checked the timestamp is reset,
			you will not be warned again.

:[N]checkt[ime] {filename}
:[N]checkt[ime] [N]
			Check the timestamp of a specific buffer.  The buffer
			may be specified by name, number or with a pattern.


							*E813* *E814*
Vim will reload the buffer if you chose to.  If a window is visible that
contains this buffer, the reloading will happen in the context of this window.
Otherwise a special window is used, so that most autocommands will work.  You
can't close this window.  A few other restrictions apply.  Best is to make
sure nothing happens outside of the current buffer.  E.g., setting
window-local options may end up in the wrong window.  Splitting the window,
doing something there and closing it should be OK (if there are no side
effects from other autocommands).  Closing unrelated windows and buffers will
get you into trouble.

Before writing a file the timestamp is checked.  If it has changed, Vim will
ask if you really want to overwrite the file:

	WARNING: The file has been changed since reading it!!!
	Do you really want to write to it (y/n)?

If you hit 'y' Vim will continue writing the file.  If you hit 'n' the write is
aborted.  If you used ":wq" or "ZZ" Vim will not exit, you will get another
chance to write the file.

The message would normally mean that somebody has written to the file after
the edit session started.  This could be another person, in which case you
probably want to check if your changes to the file and the changes from the
other person should be merged.  Write the file under another name and check for
differences (the "diff" program can be used for this).

It is also possible that you modified the file yourself, from another edit
session or with another command (e.g., a filter command).  Then you will know
which version of the file you want to keep.

There is one situation where you get the message while there is nothing wrong:
On a Win32 system on the day daylight saving time starts.  There is something
in the Win32 libraries that confuses Vim about the hour time difference.  The
problem goes away the next day.

==============================================================================
11. File Searching					*file-searching*

{not available when compiled without the |+path_extra| feature}

The file searching is currently used for the 'path', 'cdpath' and 'tags'
options, for |finddir()| and |findfile()|.  Other commands use |wildcards|
which is slightly different.

There are three different types of searching:

1) Downward search:					*starstar*
   Downward search uses the wildcards '*', '**' and possibly others
   supported by your operating system.  '*' and '**' are handled inside Vim,
   so they work on all operating systems.  Note that "**" only acts as a
   special wildcard when it is at the start of a name.

   The usage of '*' is quite simple: It matches 0 or more characters.  In a
   search pattern this would be ".*".  Note that the "." is not used for file
   searching.

   '**' is more sophisticated:
      - It ONLY matches directories.
      - It matches up to 30 directories deep by default, so you can use it to
	search an entire directory tree
      - The maximum number of levels matched can be given by appending a number
	to '**'.
	Thus '/usr/**2' can match: >
		/usr
		/usr/include
		/usr/include/sys
		/usr/include/g++
		/usr/lib
		/usr/lib/X11
		....
<	It does NOT match '/usr/include/g++/std' as this would be three
	levels.
	The allowed number range is 0 ('**0' is removed) to 100
	If the given number is smaller than 0 it defaults to 30, if it's
	bigger than 100 then 100 is used.  The system also has a limit on the
	path length, usually 256 or 1024 bytes.
      - '**' can only be at the end of the path or be followed by a path
	separator or by a number and a path separator.

   You can combine '*' and '**' in any order: >
	/usr/**/sys/*
	/usr/*tory/sys/**
	/usr/**2/sys/*

2) Upward search:
   Here you can give a directory and then search the directory tree upward for
   a file.  You could give stop-directories to limit the upward search.  The
   stop-directories are appended to the path (for the 'path' option) or to
   the filename (for the 'tags' option) with a ';'.  If you want several
   stop-directories separate them with ';'.  If you want no stop-directory
   ("search upward till the root directory) just use ';'. >
	/usr/include/sys;/usr
<   will search in: >
	   /usr/include/sys
	   /usr/include
	   /usr
<
   If you use a relative path the upward search is started in Vim's current
   directory or in the directory of the current file (if the relative path
   starts with './' and 'd' is not included in 'cpoptions').

   If Vim's current path is /u/user_x/work/release and you do >
	:set path=include;/u/user_x
<  and then search for a file with |gf| the file is searched in: >
	/u/user_x/work/release/include
	/u/user_x/work/include
	/u/user_x/include

3) Combined up/downward search:
   If Vim's current path is /u/user_x/work/release and you do >
	set path=**;/u/user_x
<  and then search for a file with |gf| the file is searched in: >
	/u/user_x/work/release/**
	/u/user_x/work/**
	/u/user_x/**
<
   BE CAREFUL!  This might consume a lot of time, as the search of
   '/u/user_x/**' includes '/u/user_x/work/**' and
   '/u/user_x/work/release/**'.  So '/u/user_x/work/release/**' is searched
   three times and '/u/user_x/work/**' is searched twice.

   In the above example you might want to set path to: >
	:set path=**,/u/user_x/**
<  This searches:
	/u/user_x/work/release/** ~
	/u/user_x/** ~
   This searches the same directories, but in a different order.

   Note that completion for ":find", ":sfind", and ":tabfind" commands do not
   currently work with 'path' items that contain a URL or use the double star
   with depth limiter (/usr/**2) or upward search (;) notations.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�&�u$$vim80/doc/usr_toc.txtnu�[���*usr_toc.txt*	For Vim version 8.0.  Last change: 2016 Mar 25

		     VIM USER MANUAL - by Bram Moolenaar

			      Table Of Contents			*user-manual*

==============================================================================
Overview ~

Getting Started
|usr_01.txt|  About the manuals
|usr_02.txt|  The first steps in Vim
|usr_03.txt|  Moving around
|usr_04.txt|  Making small changes
|usr_05.txt|  Set your settings
|usr_06.txt|  Using syntax highlighting
|usr_07.txt|  Editing more than one file
|usr_08.txt|  Splitting windows
|usr_09.txt|  Using the GUI
|usr_10.txt|  Making big changes
|usr_11.txt|  Recovering from a crash
|usr_12.txt|  Clever tricks

Editing Effectively
|usr_20.txt|  Typing command-line commands quickly
|usr_21.txt|  Go away and come back
|usr_22.txt|  Finding the file to edit
|usr_23.txt|  Editing other files
|usr_24.txt|  Inserting quickly
|usr_25.txt|  Editing formatted text
|usr_26.txt|  Repeating
|usr_27.txt|  Search commands and patterns
|usr_28.txt|  Folding
|usr_29.txt|  Moving through programs
|usr_30.txt|  Editing programs
|usr_31.txt|  Exploiting the GUI
|usr_32.txt|  The undo tree

Tuning Vim
|usr_40.txt|  Make new commands
|usr_41.txt|  Write a Vim script
|usr_42.txt|  Add new menus
|usr_43.txt|  Using filetypes
|usr_44.txt|  Your own syntax highlighted
|usr_45.txt|  Select your language

Making Vim Run
|usr_90.txt|  Installing Vim


Reference manual
|reference_toc|     More detailed information for all commands

The user manual is available as a single, ready to print HTML and PDF file
here:
	http://vimdoc.sf.net

==============================================================================
Getting Started ~

Read this from start to end to learn the essential commands.

|usr_01.txt|  About the manuals
		|01.1|	Two manuals
		|01.2|	Vim installed
		|01.3|	Using the Vim tutor
		|01.4|	Copyright

|usr_02.txt|  The first steps in Vim
		|02.1|	Running Vim for the First Time
		|02.2|	Inserting text
		|02.3|	Moving around
		|02.4|	Deleting characters
		|02.5|	Undo and Redo
		|02.6|	Other editing commands
		|02.7|	Getting out
		|02.8|	Finding help

|usr_03.txt|  Moving around
		|03.1|	Word movement
		|03.2|	Moving to the start or end of a line
		|03.3|	Moving to a character
		|03.4|	Matching a paren
		|03.5|	Moving to a specific line
		|03.6|	Telling where you are
		|03.7|	Scrolling around
		|03.8|	Simple searches
		|03.9|	Simple search patterns
		|03.10|	Using marks

|usr_04.txt|  Making small changes
		|04.1|	Operators and motions
		|04.2|	Changing text
		|04.3|	Repeating a change
		|04.4|	Visual mode
		|04.5|	Moving text
		|04.6|	Copying text
		|04.7|	Using the clipboard
		|04.8|	Text objects
		|04.9|	Replace mode
		|04.10|	Conclusion

|usr_05.txt|  Set your settings
		|05.1|	The vimrc file
		|05.2|	The example vimrc file explained
		|05.3|	Simple mappings
		|05.4|	Adding a package
		|05.5|	Adding a plugin
		|05.6|	Adding a help file
		|05.7|	The option window
		|05.8|	Often used options

|usr_06.txt|  Using syntax highlighting
		|06.1|	Switching it on
		|06.2|	No or wrong colors?
		|06.3|	Different colors
		|06.4|	With colors or without colors
		|06.5|	Printing with colors
		|06.6|	Further reading

|usr_07.txt|  Editing more than one file
		|07.1|	Edit another file
		|07.2|	A list of files
		|07.3|	Jumping from file to file
		|07.4|	Backup files
		|07.5|	Copy text between files
		|07.6|	Viewing a file
		|07.7|	Changing the file name

|usr_08.txt|  Splitting windows
		|08.1|	Split a window
		|08.2|	Split a window on another file
		|08.3|	Window size
		|08.4|	Vertical splits
		|08.5|	Moving windows
		|08.6|	Commands for all windows
		|08.7|	Viewing differences with vimdiff
		|08.8|	Various

|usr_09.txt|  Using the GUI
		|09.1|	Parts of the GUI
		|09.2|	Using the mouse
		|09.3|	The clipboard
		|09.4|	Select mode

|usr_10.txt|  Making big changes
		|10.1|	Record and playback commands
		|10.2|	Substitution
		|10.3|	Command ranges
		|10.4|	The global command
		|10.5|	Visual block mode
		|10.6|	Reading and writing part of a file
		|10.7|	Formatting text
		|10.8|	Changing case
		|10.9|	Using an external program

|usr_11.txt|  Recovering from a crash
		|11.1|	Basic recovery
		|11.2|	Where is the swap file?
		|11.3|	Crashed or not?
		|11.4|	Further reading

|usr_12.txt|  Clever tricks
		|12.1|	Replace a word
		|12.2|	Change "Last, First" to "First Last"
		|12.3|	Sort a list
		|12.4|	Reverse line order
		|12.5|	Count words
		|12.6|	Find a man page
		|12.7|	Trim blanks
		|12.8|	Find where a word is used

==============================================================================
Editing Effectively ~

Subjects that can be read independently.

|usr_20.txt|  Typing command-line commands quickly
		|20.1|	Command line editing
		|20.2|	Command line abbreviations
		|20.3|	Command line completion
		|20.4|	Command line history
		|20.5|	Command line window

|usr_21.txt|  Go away and come back
		|21.1|	Suspend and resume
		|21.2|	Executing shell commands
		|21.3|	Remembering information; viminfo
		|21.4|	Sessions
		|21.5|	Views
		|21.6|	Modelines

|usr_22.txt|  Finding the file to edit
		|22.1|	The file explorer
		|22.2|	The current directory
		|22.3|	Finding a file
		|22.4|	The buffer list

|usr_23.txt|  Editing other files
		|23.1|	DOS, Mac and Unix files
		|23.2|	Files on the internet
		|23.3|	Encryption
		|23.4|	Binary files
		|23.5|	Compressed files

|usr_24.txt|  Inserting quickly
		|24.1|	Making corrections
		|24.2|	Showing matches
		|24.3|	Completion
		|24.4|	Repeating an insert
		|24.5|	Copying from another line
		|24.6|	Inserting a register
		|24.7|	Abbreviations
		|24.8|	Entering special characters
		|24.9|	Digraphs
		|24.10|	Normal mode commands

|usr_25.txt|  Editing formatted text
		|25.1|	Breaking lines
		|25.2|	Aligning text
		|25.3|	Indents and tabs
		|25.4|	Dealing with long lines
		|25.5|	Editing tables

|usr_26.txt|  Repeating
		|26.1|	Repeating with Visual mode
		|26.2|	Add and subtract
		|26.3|	Making a change in many files
		|26.4|	Using Vim from a shell script

|usr_27.txt|  Search commands and patterns
		|27.1|	Ignoring case
		|27.2|	Wrapping around the file end
		|27.3|	Offsets
		|27.4|	Matching multiple times
		|27.5|	Alternatives
		|27.6|	Character ranges
		|27.7|	Character classes
		|27.8|	Matching a line break
		|27.9|	Examples

|usr_28.txt|  Folding
		|28.1|	What is folding?
		|28.2|	Manual folding
		|28.3|	Working with folds
		|28.4|	Saving and restoring folds
		|28.5|	Folding by indent
		|28.6|	Folding with markers
		|28.7|	Folding by syntax
		|28.8|	Folding by expression
		|28.9|	Folding unchanged lines
		|28.10|	Which fold method to use?

|usr_29.txt|  Moving through programs
		|29.1|	Using tags
		|29.2|	The preview window
		|29.3|	Moving through a program
		|29.4|	Finding global identifiers
		|29.5|	Finding local identifiers

|usr_30.txt|  Editing programs
		|30.1|	Compiling
		|30.2|	Indenting C files
		|30.3|	Automatic indenting
		|30.4|	Other indenting
		|30.5|	Tabs and spaces
		|30.6|	Formatting comments

|usr_31.txt|  Exploiting the GUI
		|31.1|	The file browser
		|31.2|	Confirmation
		|31.3|	Menu shortcuts
		|31.4|	Vim window position and size
		|31.5|	Various

|usr_32.txt|  The undo tree
		|32.1|	Undo up to a file write
		|32.2|	Numbering changes
		|32.3|	Jumping around the tree
		|32.4|	Time travelling

==============================================================================
Tuning Vim ~

Make Vim work as you like it.

|usr_40.txt|  Make new commands
		|40.1|	Key mapping
		|40.2|	Defining command-line commands
		|40.3|	Autocommands

|usr_41.txt|  Write a Vim script
		|41.1|	Introduction
		|41.2|	Variables
		|41.3|	Expressions
		|41.4|	Conditionals
		|41.5|	Executing an expression
		|41.6|	Using functions
		|41.7|	Defining a function
		|41.8|	Lists and Dictionaries
		|41.9|	Exceptions
		|41.10|	Various remarks
		|41.11|	Writing a plugin
		|41.12|	Writing a filetype plugin
		|41.13|	Writing a compiler plugin
		|41.14|	Writing a plugin that loads quickly
		|41.15|	Writing library scripts
		|41.16|	Distributing Vim scripts

|usr_42.txt|  Add new menus
		|42.1|	Introduction
		|42.2|	Menu commands
		|42.3|	Various
		|42.4|	Toolbar and popup menus

|usr_43.txt|  Using filetypes
		|43.1|	Plugins for a filetype
		|43.2|	Adding a filetype

|usr_44.txt|  Your own syntax highlighted
		|44.1|	Basic syntax commands
		|44.2|	Keywords
		|44.3|	Matches
		|44.4|	Regions
		|44.5|	Nested items
		|44.6|	Following groups
		|44.7|	Other arguments
		|44.8|	Clusters
		|44.9|	Including another syntax file
		|44.10|	Synchronizing
		|44.11|	Installing a syntax file
		|44.12|	Portable syntax file layout

|usr_45.txt|  Select your language
		|45.1|	Language for Messages
		|45.2|	Language for Menus
		|45.3|	Using another encoding
		|45.4|	Editing files with a different encoding
		|45.5|	Entering language text

==============================================================================
Making Vim Run ~

Before you can use Vim.

|usr_90.txt|  Installing Vim
		|90.1|	Unix
		|90.2|	MS-Windows
		|90.3|	Upgrading
		|90.4|	Common installation issues
		|90.5|	Uninstalling Vim

==============================================================================

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�ZӐu����vim80/doc/digraph.txtnu�[���*digraph.txt*   For Vim version 8.0.  Last change: 2016 Nov 04


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Digraphs					*digraph* *digraphs* *Digraphs*

Digraphs are used to enter characters that normally cannot be entered by
an ordinary keyboard.  These are mostly printable non-ASCII characters.  The
digraphs are easier to remember than the decimal number that can be entered
with CTRL-V (see |i_CTRL-V|).

There is a brief introduction on digraphs in the user manual: |24.9|
An alternative is using the 'keymap' option.

1. Defining digraphs	|digraphs-define|
2. Using digraphs	|digraphs-use|
3. Default digraphs	|digraphs-default|

{Vi does not have any of these commands}

==============================================================================
1. Defining digraphs					*digraphs-define*

						*:dig* *:digraphs*
:dig[raphs]		show currently defined digraphs.
							*E104* *E39*
:dig[raphs] {char1}{char2} {number} ...
			Add digraph {char1}{char2} to the list.  {number} is
			the decimal representation of the character.  Normally
			it is the Unicode character, see |digraph-encoding|.
			Example: >
	:digr e: 235 a: 228
<			Avoid defining a digraph with '_' (underscore) as the
			first character, it has a special meaning in the
			future.

Vim is normally compiled with the |+digraphs| feature.  If the feature is
disabled, the ":digraph" command will display an error message.

Example of the output of ":digraphs": >
 TH Þ  222  ss ß  223  a! à  224  a' á  225  a> â  226  a? ã  227  a: ä  228

The first two characters in each column are the characters you have to type to
enter the digraph.

In the middle of each column is the resulting character.  This may be mangled
if you look at it on a system that does not support digraphs or if you print
this file.

							*digraph-encoding*
The decimal number normally is the Unicode number of the character.  Note that
the meaning doesn't change when 'encoding' changes.  The character will be
converted from Unicode to 'encoding' when needed.  This does require the
conversion to be available, it might fail.  For the NUL character you will see
"10".  That's because NUL characters are internally represented with a NL
character.  When you write the file it will become a NUL character.

When Vim was compiled without the |+multi_byte| feature, you need to specify
the character in the encoding given with 'encoding'.  You might want to use
something like this: >

	if has("multi_byte")
		digraph oe 339
	elseif &encoding == "iso-8859-15"
		digraph oe 189
	endif

This defines the "oe" digraph for a character that is number 339 in Unicode
and 189 in latin9 (iso-8859-15).

==============================================================================
2. Using digraphs					*digraphs-use*

There are two methods to enter digraphs:			*i_digraph*
	CTRL-K {char1} {char2}		or
	{char1} <BS> {char2}
The first is always available; the second only when the 'digraph' option is
set.

If a digraph with {char1}{char2} does not exist, Vim searches for a digraph
{char2}{char1}.  This helps when you don't remember which character comes
first.

Note that when you enter CTRL-K {char1}, where {char1} is a special key, Vim
enters the code for that special key.  This is not a digraph.

Once you have entered the digraph, Vim treats the character like a normal
character that occupies only one character in the file and on the screen.
Example: >
	'B' <BS> 'B'	will enter the broken '|' character (166)
	'a' <BS> '>'	will enter an 'a' with a circumflex (226)
	CTRL-K '-' '-'	will enter a soft hyphen (173)

The current digraphs are listed with the ":digraphs" command.  Some of the
default ones are listed below |digraph-table|.

For CTRL-K, there is one general digraph: CTRL-K <Space> {char} will enter
{char} with the highest bit set.  You can use this to enter meta-characters.

The <Esc> character cannot be part of a digraph.  When hitting <Esc>, Vim
stops digraph entry and ends Insert mode or Command-line mode, just like
hitting an <Esc> out of digraph context.  Use CTRL-V 155 to enter meta-ESC
(CSI).

If you accidentally typed an 'a' that should be an 'e', you will type 'a' <BS>
'e'.  But that is a digraph, so you will not get what you want.  To correct
this, you will have to type <BS> e again.  To avoid this don't set the
'digraph' option and use CTRL-K to enter digraphs.

You may have problems using Vim with characters which have a value above 128.
For example: You insert ue (u-umlaut) and the editor echoes \334 in Insert
mode.  After leaving the Insert mode everything is fine.  Note that fmt
removes all characters with a value above 128 from the text being formatted.
On some Unix systems this means you have to define the environment-variable
LC_CTYPE.  If you are using csh, then put the following line in your .cshrc: >
	setenv LC_CTYPE iso_8859_1

==============================================================================
3. Default digraphs					*digraphs-default*

Vim comes with a set of default digraphs.  Check the output of ":digraphs" to
see them.

On most systems Vim uses the same digraphs.  They work for the Unicode and
ISO-8859-1 character sets.  These default digraphs are taken from the RFC1345
mnemonics.  To make it easy to remember the mnemonic, the second character has
a standard meaning:

	char name		char	meaning ~
	Exclamation mark	!	Grave
	Apostrophe		'	Acute accent
	Greater-Than sign	>	Circumflex accent
	Question mark		?	Tilde
	Hyphen-Minus		-	Macron
	Left parenthesis	(	Breve
	Full stop		.	Dot above
	Colon			:	Diaeresis
	Comma			,	Cedilla
	Underline		_	Underline
	Solidus			/	Stroke
	Quotation mark		"	Double acute accent
	Semicolon		;	Ogonek
	Less-Than sign		<	Caron
	Zero			0	Ring above
	Two			2	Hook
	Nine			9	Horn

	Equals			=	Cyrillic (= used as second char)
	Asterisk		*	Greek
	Percent sign		%	Greek/Cyrillic special
	Plus			+	smalls: Arabic, capitals: Hebrew
	Three			3	some Latin/Greek/Cyrillic letters
	Four			4	Bopomofo
	Five			5	Hiragana
	Six			6	Katakana

Example: a: is ä  and o: is ö

These are the RFC1345 digraphs for the one-byte characters.  See the output of
":digraphs" for the others.  The characters above 255 are only available when
Vim was compiled with the |+multi_byte| feature.

EURO

Exception: RFC1345 doesn't specify the euro sign.  In Vim the digraph =e was
added for this.  Note the difference between latin1, where the digraph Cu is
used for the currency sign, and latin9 (iso-8859-15), where the digraph =e is
used for the euro sign, while both of them are the character 164, 0xa4.  For
compatibility with zsh Eu can also be used for the euro sign.

ROUBLE

The rouble sign was added in 2014 as 0x20bd.  Vim supports the digraphs =R and
=P for this.  Note that R= and P= are other characters.

							*digraph-table*
char  digraph	hex	dec	official name ~
^@	NU	0x00	  0	NULL (NUL)
^A	SH	0x01	  1	START OF HEADING (SOH)
^B	SX	0x02	  2	START OF TEXT (STX)
^C	EX	0x03	  3	END OF TEXT (ETX)
^D	ET	0x04	  4	END OF TRANSMISSION (EOT)
^E	EQ	0x05	  5	ENQUIRY (ENQ)
^F	AK	0x06	  6	ACKNOWLEDGE (ACK)
^G	BL	0x07	  7	BELL (BEL)
^H	BS	0x08	  8	BACKSPACE (BS)
^I	HT	0x09	  9	CHARACTER TABULATION (HT)
^@	LF	0x0a	 10	LINE FEED (LF)
^K	VT	0x0b	 11	LINE TABULATION (VT)
^L	FF	0x0c	 12	FORM FEED (FF)
^M	CR	0x0d	 13	CARRIAGE RETURN (CR)
^N	SO	0x0e	 14	SHIFT OUT (SO)
^O	SI	0x0f	 15	SHIFT IN (SI)
^P	DL	0x10	 16	DATALINK ESCAPE (DLE)
^Q	D1	0x11	 17	DEVICE CONTROL ONE (DC1)
^R	D2	0x12	 18	DEVICE CONTROL TWO (DC2)
^S	D3	0x13	 19	DEVICE CONTROL THREE (DC3)
^T	D4	0x14	 20	DEVICE CONTROL FOUR (DC4)
^U	NK	0x15	 21	NEGATIVE ACKNOWLEDGE (NAK)
^V	SY	0x16	 22	SYNCHRONOUS IDLE (SYN)
^W	EB	0x17	 23	END OF TRANSMISSION BLOCK (ETB)
^X	CN	0x18	 24	CANCEL (CAN)
^Y	EM	0x19	 25	END OF MEDIUM (EM)
^Z	SB	0x1a	 26	SUBSTITUTE (SUB)
^[	EC	0x1b	 27	ESCAPE (ESC)
^\	FS	0x1c	 28	FILE SEPARATOR (IS4)
^]	GS	0x1d	 29	GROUP SEPARATOR (IS3)
^^	RS	0x1e	 30	RECORD SEPARATOR (IS2)
^_	US	0x1f	 31	UNIT SEPARATOR (IS1)
	SP	0x20	 32	SPACE
#	Nb	0x23	 35	NUMBER SIGN
$	DO	0x24	 36	DOLLAR SIGN
@	At	0x40	 64	COMMERCIAL AT
[	<(	0x5b	 91	LEFT SQUARE BRACKET
\	//	0x5c	 92	REVERSE SOLIDUS
]	)>	0x5d	 93	RIGHT SQUARE BRACKET
^	'>	0x5e	 94	CIRCUMFLEX ACCENT
`	'!	0x60	 96	GRAVE ACCENT
{	(!	0x7b	123	LEFT CURLY BRACKET
|	!!	0x7c	124	VERTICAL LINE
}	!)	0x7d	125	RIGHT CURLY BRACKET
~	'?	0x7e	126	TILDE
^?	DT	0x7f	127	DELETE (DEL)
~@	PA	0x80	128	PADDING CHARACTER (PAD)
~A	HO	0x81	129	HIGH OCTET PRESET (HOP)
~B	BH	0x82	130	BREAK PERMITTED HERE (BPH)
~C	NH	0x83	131	NO BREAK HERE (NBH)
~D	IN	0x84	132	INDEX (IND)
~E	NL	0x85	133	NEXT LINE (NEL)
~F	SA	0x86	134	START OF SELECTED AREA (SSA)
~G	ES	0x87	135	END OF SELECTED AREA (ESA)
~H	HS	0x88	136	CHARACTER TABULATION SET (HTS)
~I	HJ	0x89	137	CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
~J	VS	0x8a	138	LINE TABULATION SET (VTS)
~K	PD	0x8b	139	PARTIAL LINE FORWARD (PLD)
~L	PU	0x8c	140	PARTIAL LINE BACKWARD (PLU)
~M	RI	0x8d	141	REVERSE LINE FEED (RI)
~N	S2	0x8e	142	SINGLE-SHIFT TWO (SS2)
~O	S3	0x8f	143	SINGLE-SHIFT THREE (SS3)
~P	DC	0x90	144	DEVICE CONTROL STRING (DCS)
~Q	P1	0x91	145	PRIVATE USE ONE (PU1)
~R	P2	0x92	146	PRIVATE USE TWO (PU2)
~S	TS	0x93	147	SET TRANSMIT STATE (STS)
~T	CC	0x94	148	CANCEL CHARACTER (CCH)
~U	MW	0x95	149	MESSAGE WAITING (MW)
~V	SG	0x96	150	START OF GUARDED AREA (SPA)
~W	EG	0x97	151	END OF GUARDED AREA (EPA)
~X	SS	0x98	152	START OF STRING (SOS)
~Y	GC	0x99	153	SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
~Z	SC	0x9a	154	SINGLE CHARACTER INTRODUCER (SCI)
~[	CI	0x9b	155	CONTROL SEQUENCE INTRODUCER (CSI)
~\	ST	0x9c	156	STRING TERMINATOR (ST)
~]	OC	0x9d	157	OPERATING SYSTEM COMMAND (OSC)
~^	PM	0x9e	158	PRIVACY MESSAGE (PM)
~_	AC	0x9f	159	APPLICATION PROGRAM COMMAND (APC)
|	NS	0xa0	160	NO-BREAK SPACE
¡	!I	0xa1	161	INVERTED EXCLAMATION MARK
¢	Ct	0xa2	162	CENT SIGN
£	Pd	0xa3	163	POUND SIGN
¤	Cu	0xa4	164	CURRENCY SIGN
¥	Ye	0xa5	165	YEN SIGN
¦	BB	0xa6	166	BROKEN BAR
§	SE	0xa7	167	SECTION SIGN
¨	':	0xa8	168	DIAERESIS
©	Co	0xa9	169	COPYRIGHT SIGN
ª	-a	0xaa	170	FEMININE ORDINAL INDICATOR
«	<<	0xab	171	LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
¬	NO	0xac	172	NOT SIGN
­	--	0xad	173	SOFT HYPHEN
®	Rg	0xae	174	REGISTERED SIGN
¯	'm	0xaf	175	MACRON
°	DG	0xb0	176	DEGREE SIGN
±	+-	0xb1	177	PLUS-MINUS SIGN
²	2S	0xb2	178	SUPERSCRIPT TWO
³	3S	0xb3	179	SUPERSCRIPT THREE
´	''	0xb4	180	ACUTE ACCENT
µ	My	0xb5	181	MICRO SIGN
¶	PI	0xb6	182	PILCROW SIGN
·	.M	0xb7	183	MIDDLE DOT
¸	',	0xb8	184	CEDILLA
¹	1S	0xb9	185	SUPERSCRIPT ONE
º	-o	0xba	186	MASCULINE ORDINAL INDICATOR
»	>>	0xbb	187	RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
¼	14	0xbc	188	VULGAR FRACTION ONE QUARTER
½	12	0xbd	189	VULGAR FRACTION ONE HALF
¾	34	0xbe	190	VULGAR FRACTION THREE QUARTERS
¿	?I	0xbf	191	INVERTED QUESTION MARK
À	A!	0xc0	192	LATIN CAPITAL LETTER A WITH GRAVE
Á	A'	0xc1	193	LATIN CAPITAL LETTER A WITH ACUTE
Â	A>	0xc2	194	LATIN CAPITAL LETTER A WITH CIRCUMFLEX
Ã	A?	0xc3	195	LATIN CAPITAL LETTER A WITH TILDE
Ä	A:	0xc4	196	LATIN CAPITAL LETTER A WITH DIAERESIS
Å	AA	0xc5	197	LATIN CAPITAL LETTER A WITH RING ABOVE
Æ	AE	0xc6	198	LATIN CAPITAL LETTER AE
Ç	C,	0xc7	199	LATIN CAPITAL LETTER C WITH CEDILLA
È	E!	0xc8	200	LATIN CAPITAL LETTER E WITH GRAVE
É	E'	0xc9	201	LATIN CAPITAL LETTER E WITH ACUTE
Ê	E>	0xca	202	LATIN CAPITAL LETTER E WITH CIRCUMFLEX
Ë	E:	0xcb	203	LATIN CAPITAL LETTER E WITH DIAERESIS
Ì	I!	0xcc	204	LATIN CAPITAL LETTER I WITH GRAVE
Í	I'	0xcd	205	LATIN CAPITAL LETTER I WITH ACUTE
Î	I>	0xce	206	LATIN CAPITAL LETTER I WITH CIRCUMFLEX
Ï	I:	0xcf	207	LATIN CAPITAL LETTER I WITH DIAERESIS
Ð	D-	0xd0	208	LATIN CAPITAL LETTER ETH (Icelandic)
Ñ	N?	0xd1	209	LATIN CAPITAL LETTER N WITH TILDE
Ò	O!	0xd2	210	LATIN CAPITAL LETTER O WITH GRAVE
Ó	O'	0xd3	211	LATIN CAPITAL LETTER O WITH ACUTE
Ô	O>	0xd4	212	LATIN CAPITAL LETTER O WITH CIRCUMFLEX
Õ	O?	0xd5	213	LATIN CAPITAL LETTER O WITH TILDE
Ö	O:	0xd6	214	LATIN CAPITAL LETTER O WITH DIAERESIS
×	*X	0xd7	215	MULTIPLICATION SIGN
Ø	O/	0xd8	216	LATIN CAPITAL LETTER O WITH STROKE
Ù	U!	0xd9	217	LATIN CAPITAL LETTER U WITH GRAVE
Ú	U'	0xda	218	LATIN CAPITAL LETTER U WITH ACUTE
Û	U>	0xdb	219	LATIN CAPITAL LETTER U WITH CIRCUMFLEX
Ü	U:	0xdc	220	LATIN CAPITAL LETTER U WITH DIAERESIS
Ý	Y'	0xdd	221	LATIN CAPITAL LETTER Y WITH ACUTE
Þ	TH	0xde	222	LATIN CAPITAL LETTER THORN (Icelandic)
ß	ss	0xdf	223	LATIN SMALL LETTER SHARP S (German)
à	a!	0xe0	224	LATIN SMALL LETTER A WITH GRAVE
á	a'	0xe1	225	LATIN SMALL LETTER A WITH ACUTE
â	a>	0xe2	226	LATIN SMALL LETTER A WITH CIRCUMFLEX
ã	a?	0xe3	227	LATIN SMALL LETTER A WITH TILDE
ä	a:	0xe4	228	LATIN SMALL LETTER A WITH DIAERESIS
å	aa	0xe5	229	LATIN SMALL LETTER A WITH RING ABOVE
æ	ae	0xe6	230	LATIN SMALL LETTER AE
ç	c,	0xe7	231	LATIN SMALL LETTER C WITH CEDILLA
è	e!	0xe8	232	LATIN SMALL LETTER E WITH GRAVE
é	e'	0xe9	233	LATIN SMALL LETTER E WITH ACUTE
ê	e>	0xea	234	LATIN SMALL LETTER E WITH CIRCUMFLEX
ë	e:	0xeb	235	LATIN SMALL LETTER E WITH DIAERESIS
ì	i!	0xec	236	LATIN SMALL LETTER I WITH GRAVE
í	i'	0xed	237	LATIN SMALL LETTER I WITH ACUTE
î	i>	0xee	238	LATIN SMALL LETTER I WITH CIRCUMFLEX
ï	i:	0xef	239	LATIN SMALL LETTER I WITH DIAERESIS
ð	d-	0xf0	240	LATIN SMALL LETTER ETH (Icelandic)
ñ	n?	0xf1	241	LATIN SMALL LETTER N WITH TILDE
ò	o!	0xf2	242	LATIN SMALL LETTER O WITH GRAVE
ó	o'	0xf3	243	LATIN SMALL LETTER O WITH ACUTE
ô	o>	0xf4	244	LATIN SMALL LETTER O WITH CIRCUMFLEX
õ	o?	0xf5	245	LATIN SMALL LETTER O WITH TILDE
ö	o:	0xf6	246	LATIN SMALL LETTER O WITH DIAERESIS
÷	-:	0xf7	247	DIVISION SIGN
ø	o/	0xf8	248	LATIN SMALL LETTER O WITH STROKE
ù	u!	0xf9	249	LATIN SMALL LETTER U WITH GRAVE
ú	u'	0xfa	250	LATIN SMALL LETTER U WITH ACUTE
û	u>	0xfb	251	LATIN SMALL LETTER U WITH CIRCUMFLEX
ü	u:	0xfc	252	LATIN SMALL LETTER U WITH DIAERESIS
ý	y'	0xfd	253	LATIN SMALL LETTER Y WITH ACUTE
þ	th	0xfe	254	LATIN SMALL LETTER THORN (Icelandic)
ÿ	y:	0xff	255	LATIN SMALL LETTER Y WITH DIAERESIS

If your Vim is compiled with |multibyte| support and you are using a multibyte
'encoding', Vim provides this enhanced set of additional digraphs:

							*digraph-table-mbyte*
char  digraph	hex	dec	official name ~
Ā	A-	0100	0256	LATIN CAPITAL LETTER A WITH MACRON
ā	a-	0101	0257	LATIN SMALL LETTER A WITH MACRON
Ă	A(	0102	0258	LATIN CAPITAL LETTER A WITH BREVE
ă	a(	0103	0259	LATIN SMALL LETTER A WITH BREVE
Ą	A;	0104	0260	LATIN CAPITAL LETTER A WITH OGONEK
ą	a;	0105	0261	LATIN SMALL LETTER A WITH OGONEK
Ć	C'	0106	0262	LATIN CAPITAL LETTER C WITH ACUTE
ć	c'	0107	0263	LATIN SMALL LETTER C WITH ACUTE
Ĉ	C>	0108	0264	LATIN CAPITAL LETTER C WITH CIRCUMFLEX
ĉ	c>	0109	0265	LATIN SMALL LETTER C WITH CIRCUMFLEX
Ċ	C.	010A	0266	LATIN CAPITAL LETTER C WITH DOT ABOVE
ċ	c.	010B	0267	LATIN SMALL LETTER C WITH DOT ABOVE
Č	C<	010C	0268	LATIN CAPITAL LETTER C WITH CARON
č	c<	010D	0269	LATIN SMALL LETTER C WITH CARON
Ď	D<	010E	0270	LATIN CAPITAL LETTER D WITH CARON
ď	d<	010F	0271	LATIN SMALL LETTER D WITH CARON
Đ	D/	0110	0272	LATIN CAPITAL LETTER D WITH STROKE
đ	d/	0111	0273	LATIN SMALL LETTER D WITH STROKE
Ē	E-	0112	0274	LATIN CAPITAL LETTER E WITH MACRON
ē	e-	0113	0275	LATIN SMALL LETTER E WITH MACRON
Ĕ	E(	0114	0276	LATIN CAPITAL LETTER E WITH BREVE
ĕ	e(	0115	0277	LATIN SMALL LETTER E WITH BREVE
Ė	E.	0116	0278	LATIN CAPITAL LETTER E WITH DOT ABOVE
ė	e.	0117	0279	LATIN SMALL LETTER E WITH DOT ABOVE
Ę	E;	0118	0280	LATIN CAPITAL LETTER E WITH OGONEK
ę	e;	0119	0281	LATIN SMALL LETTER E WITH OGONEK
Ě	E<	011A	0282	LATIN CAPITAL LETTER E WITH CARON
ě	e<	011B	0283	LATIN SMALL LETTER E WITH CARON
Ĝ	G>	011C	0284	LATIN CAPITAL LETTER G WITH CIRCUMFLEX
ĝ	g>	011D	0285	LATIN SMALL LETTER G WITH CIRCUMFLEX
Ğ	G(	011E	0286	LATIN CAPITAL LETTER G WITH BREVE
ğ	g(	011F	0287	LATIN SMALL LETTER G WITH BREVE
Ġ	G.	0120	0288	LATIN CAPITAL LETTER G WITH DOT ABOVE
ġ	g.	0121	0289	LATIN SMALL LETTER G WITH DOT ABOVE
Ģ	G,	0122	0290	LATIN CAPITAL LETTER G WITH CEDILLA
ģ	g,	0123	0291	LATIN SMALL LETTER G WITH CEDILLA
Ĥ	H>	0124	0292	LATIN CAPITAL LETTER H WITH CIRCUMFLEX
ĥ	h>	0125	0293	LATIN SMALL LETTER H WITH CIRCUMFLEX
Ħ	H/	0126	0294	LATIN CAPITAL LETTER H WITH STROKE
ħ	h/	0127	0295	LATIN SMALL LETTER H WITH STROKE
Ĩ	I?	0128	0296	LATIN CAPITAL LETTER I WITH TILDE
ĩ	i?	0129	0297	LATIN SMALL LETTER I WITH TILDE
Ī	I-	012A	0298	LATIN CAPITAL LETTER I WITH MACRON
ī	i-	012B	0299	LATIN SMALL LETTER I WITH MACRON
Ĭ	I(	012C	0300	LATIN CAPITAL LETTER I WITH BREVE
ĭ	i(	012D	0301	LATIN SMALL LETTER I WITH BREVE
Į	I;	012E	0302	LATIN CAPITAL LETTER I WITH OGONEK
į	i;	012F	0303	LATIN SMALL LETTER I WITH OGONEK
İ	I.	0130	0304	LATIN CAPITAL LETTER I WITH DOT ABOVE
ı	i.	0131	0305	LATIN SMALL LETTER DOTLESS I
IJ	IJ	0132	0306	LATIN CAPITAL LIGATURE IJ
ij	ij	0133	0307	LATIN SMALL LIGATURE IJ
Ĵ	J>	0134	0308	LATIN CAPITAL LETTER J WITH CIRCUMFLEX
ĵ	j>	0135	0309	LATIN SMALL LETTER J WITH CIRCUMFLEX
Ķ	K,	0136	0310	LATIN CAPITAL LETTER K WITH CEDILLA
ķ	k,	0137	0311	LATIN SMALL LETTER K WITH CEDILLA
ĸ	kk	0138	0312	LATIN SMALL LETTER KRA
Ĺ	L'	0139	0313	LATIN CAPITAL LETTER L WITH ACUTE
ĺ	l'	013A	0314	LATIN SMALL LETTER L WITH ACUTE
Ļ	L,	013B	0315	LATIN CAPITAL LETTER L WITH CEDILLA
ļ	l,	013C	0316	LATIN SMALL LETTER L WITH CEDILLA
Ľ	L<	013D	0317	LATIN CAPITAL LETTER L WITH CARON
ľ	l<	013E	0318	LATIN SMALL LETTER L WITH CARON
Ŀ	L.	013F	0319	LATIN CAPITAL LETTER L WITH MIDDLE DOT
ŀ	l.	0140	0320	LATIN SMALL LETTER L WITH MIDDLE DOT
Ł	L/	0141	0321	LATIN CAPITAL LETTER L WITH STROKE
ł	l/	0142	0322	LATIN SMALL LETTER L WITH STROKE
Ń	N'	0143	0323	LATIN CAPITAL LETTER N WITH ACUTE `
ń	n'	0144	0324	LATIN SMALL LETTER N WITH ACUTE `
Ņ	N,	0145	0325	LATIN CAPITAL LETTER N WITH CEDILLA `
ņ	n,	0146	0326	LATIN SMALL LETTER N WITH CEDILLA `
Ň	N<	0147	0327	LATIN CAPITAL LETTER N WITH CARON `
ň	n<	0148	0328	LATIN SMALL LETTER N WITH CARON `
ʼn	'n	0149	0329	LATIN SMALL LETTER N PRECEDED BY APOSTROPHE `
Ŋ	NG	014A	0330	LATIN CAPITAL LETTER ENG
ŋ	ng	014B	0331	LATIN SMALL LETTER ENG
Ō	O-	014C	0332	LATIN CAPITAL LETTER O WITH MACRON
ō	o-	014D	0333	LATIN SMALL LETTER O WITH MACRON
Ŏ	O(	014E	0334	LATIN CAPITAL LETTER O WITH BREVE
ŏ	o(	014F	0335	LATIN SMALL LETTER O WITH BREVE
Ő	O"	0150	0336	LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
ő	o"	0151	0337	LATIN SMALL LETTER O WITH DOUBLE ACUTE
Œ	OE	0152	0338	LATIN CAPITAL LIGATURE OE
œ	oe	0153	0339	LATIN SMALL LIGATURE OE
Ŕ	R'	0154	0340	LATIN CAPITAL LETTER R WITH ACUTE
ŕ	r'	0155	0341	LATIN SMALL LETTER R WITH ACUTE
Ŗ	R,	0156	0342	LATIN CAPITAL LETTER R WITH CEDILLA
ŗ	r,	0157	0343	LATIN SMALL LETTER R WITH CEDILLA
Ř	R<	0158	0344	LATIN CAPITAL LETTER R WITH CARON
ř	r<	0159	0345	LATIN SMALL LETTER R WITH CARON
Ś	S'	015A	0346	LATIN CAPITAL LETTER S WITH ACUTE
ś	s'	015B	0347	LATIN SMALL LETTER S WITH ACUTE
Ŝ	S>	015C	0348	LATIN CAPITAL LETTER S WITH CIRCUMFLEX
ŝ	s>	015D	0349	LATIN SMALL LETTER S WITH CIRCUMFLEX
Ş	S,	015E	0350	LATIN CAPITAL LETTER S WITH CEDILLA
ş	s,	015F	0351	LATIN SMALL LETTER S WITH CEDILLA
Š	S<	0160	0352	LATIN CAPITAL LETTER S WITH CARON
š	s<	0161	0353	LATIN SMALL LETTER S WITH CARON
Ţ	T,	0162	0354	LATIN CAPITAL LETTER T WITH CEDILLA
ţ	t,	0163	0355	LATIN SMALL LETTER T WITH CEDILLA
Ť	T<	0164	0356	LATIN CAPITAL LETTER T WITH CARON
ť	t<	0165	0357	LATIN SMALL LETTER T WITH CARON
Ŧ	T/	0166	0358	LATIN CAPITAL LETTER T WITH STROKE
ŧ	t/	0167	0359	LATIN SMALL LETTER T WITH STROKE
Ũ	U?	0168	0360	LATIN CAPITAL LETTER U WITH TILDE
ũ	u?	0169	0361	LATIN SMALL LETTER U WITH TILDE
Ū	U-	016A	0362	LATIN CAPITAL LETTER U WITH MACRON
ū	u-	016B	0363	LATIN SMALL LETTER U WITH MACRON
Ŭ	U(	016C	0364	LATIN CAPITAL LETTER U WITH BREVE
ŭ	u(	016D	0365	LATIN SMALL LETTER U WITH BREVE
Ů	U0	016E	0366	LATIN CAPITAL LETTER U WITH RING ABOVE
ů	u0	016F	0367	LATIN SMALL LETTER U WITH RING ABOVE
Ű	U"	0170	0368	LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
ű	u"	0171	0369	LATIN SMALL LETTER U WITH DOUBLE ACUTE
Ų	U;	0172	0370	LATIN CAPITAL LETTER U WITH OGONEK
ų	u;	0173	0371	LATIN SMALL LETTER U WITH OGONEK
Ŵ	W>	0174	0372	LATIN CAPITAL LETTER W WITH CIRCUMFLEX
ŵ	w>	0175	0373	LATIN SMALL LETTER W WITH CIRCUMFLEX
Ŷ	Y>	0176	0374	LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
ŷ	y>	0177	0375	LATIN SMALL LETTER Y WITH CIRCUMFLEX
Ÿ	Y:	0178	0376	LATIN CAPITAL LETTER Y WITH DIAERESIS
Ź	Z'	0179	0377	LATIN CAPITAL LETTER Z WITH ACUTE
ź	z'	017A	0378	LATIN SMALL LETTER Z WITH ACUTE
Ż	Z.	017B	0379	LATIN CAPITAL LETTER Z WITH DOT ABOVE
ż	z.	017C	0380	LATIN SMALL LETTER Z WITH DOT ABOVE
Ž	Z<	017D	0381	LATIN CAPITAL LETTER Z WITH CARON
ž	z<	017E	0382	LATIN SMALL LETTER Z WITH CARON
Ơ	O9	01A0	0416	LATIN CAPITAL LETTER O WITH HORN
ơ	o9	01A1	0417	LATIN SMALL LETTER O WITH HORN
Ƣ	OI	01A2	0418	LATIN CAPITAL LETTER OI
ƣ	oi	01A3	0419	LATIN SMALL LETTER OI
Ʀ	yr	01A6	0422	LATIN LETTER YR
Ư	U9	01AF	0431	LATIN CAPITAL LETTER U WITH HORN
ư	u9	01B0	0432	LATIN SMALL LETTER U WITH HORN
Ƶ	Z/	01B5	0437	LATIN CAPITAL LETTER Z WITH STROKE
ƶ	z/	01B6	0438	LATIN SMALL LETTER Z WITH STROKE
Ʒ	ED	01B7	0439	LATIN CAPITAL LETTER EZH
Ǎ	A<	01CD	0461	LATIN CAPITAL LETTER A WITH CARON
ǎ	a<	01CE	0462	LATIN SMALL LETTER A WITH CARON
Ǐ	I<	01CF	0463	LATIN CAPITAL LETTER I WITH CARON
ǐ	i<	01D0	0464	LATIN SMALL LETTER I WITH CARON
Ǒ	O<	01D1	0465	LATIN CAPITAL LETTER O WITH CARON
ǒ	o<	01D2	0466	LATIN SMALL LETTER O WITH CARON
Ǔ	U<	01D3	0467	LATIN CAPITAL LETTER U WITH CARON
ǔ	u<	01D4	0468	LATIN SMALL LETTER U WITH CARON
Ǟ	A1	01DE	0478	LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
ǟ	a1	01DF	0479	LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
Ǡ	A7	01E0	0480	LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
ǡ	a7	01E1	0481	LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
Ǣ	A3	01E2	0482	LATIN CAPITAL LETTER AE WITH MACRON
ǣ	a3	01E3	0483	LATIN SMALL LETTER AE WITH MACRON
Ǥ	G/	01E4	0484	LATIN CAPITAL LETTER G WITH STROKE
ǥ	g/	01E5	0485	LATIN SMALL LETTER G WITH STROKE
Ǧ	G<	01E6	0486	LATIN CAPITAL LETTER G WITH CARON
ǧ	g<	01E7	0487	LATIN SMALL LETTER G WITH CARON
Ǩ	K<	01E8	0488	LATIN CAPITAL LETTER K WITH CARON
ǩ	k<	01E9	0489	LATIN SMALL LETTER K WITH CARON
Ǫ	O;	01EA	0490	LATIN CAPITAL LETTER O WITH OGONEK
ǫ	o;	01EB	0491	LATIN SMALL LETTER O WITH OGONEK
Ǭ	O1	01EC	0492	LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
ǭ	o1	01ED	0493	LATIN SMALL LETTER O WITH OGONEK AND MACRON
Ǯ	EZ	01EE	0494	LATIN CAPITAL LETTER EZH WITH CARON
ǯ	ez	01EF	0495	LATIN SMALL LETTER EZH WITH CARON
ǰ	j<	01F0	0496	LATIN SMALL LETTER J WITH CARON
Ǵ	G'	01F4	0500	LATIN CAPITAL LETTER G WITH ACUTE
ǵ	g'	01F5	0501	LATIN SMALL LETTER G WITH ACUTE
ʿ	;S	02BF	0703	MODIFIER LETTER LEFT HALF RING
ˇ	'<	02C7	0711	CARON
˘	'(	02D8	0728	BREVE
˙	'.	02D9	0729	DOT ABOVE
˚	'0	02DA	0730	RING ABOVE
˛	';	02DB	0731	OGONEK
˝	'"	02DD	0733	DOUBLE ACUTE ACCENT
Ά	A%	0386	0902	GREEK CAPITAL LETTER ALPHA WITH TONOS
Έ	E%	0388	0904	GREEK CAPITAL LETTER EPSILON WITH TONOS
Ή	Y%	0389	0905	GREEK CAPITAL LETTER ETA WITH TONOS
Ί	I%	038A	0906	GREEK CAPITAL LETTER IOTA WITH TONOS
Ό	O%	038C	0908	GREEK CAPITAL LETTER OMICRON WITH TONOS
Ύ	U%	038E	0910	GREEK CAPITAL LETTER UPSILON WITH TONOS
Ώ	W%	038F	0911	GREEK CAPITAL LETTER OMEGA WITH TONOS
ΐ	i3	0390	0912	GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
Α	A*	0391	0913	GREEK CAPITAL LETTER ALPHA
Β	B*	0392	0914	GREEK CAPITAL LETTER BETA
Γ	G*	0393	0915	GREEK CAPITAL LETTER GAMMA
Δ	D*	0394	0916	GREEK CAPITAL LETTER DELTA
Ε	E*	0395	0917	GREEK CAPITAL LETTER EPSILON
Ζ	Z*	0396	0918	GREEK CAPITAL LETTER ZETA
Η	Y*	0397	0919	GREEK CAPITAL LETTER ETA
Θ	H*	0398	0920	GREEK CAPITAL LETTER THETA
Ι	I*	0399	0921	GREEK CAPITAL LETTER IOTA
Κ	K*	039A	0922	GREEK CAPITAL LETTER KAPPA
Λ	L*	039B	0923	GREEK CAPITAL LETTER LAMDA
Μ	M*	039C	0924	GREEK CAPITAL LETTER MU
Ν	N*	039D	0925	GREEK CAPITAL LETTER NU
Ξ	C*	039E	0926	GREEK CAPITAL LETTER XI
Ο	O*	039F	0927	GREEK CAPITAL LETTER OMICRON
Π	P*	03A0	0928	GREEK CAPITAL LETTER PI
Ρ	R*	03A1	0929	GREEK CAPITAL LETTER RHO
Σ	S*	03A3	0931	GREEK CAPITAL LETTER SIGMA
Τ	T*	03A4	0932	GREEK CAPITAL LETTER TAU
Υ	U*	03A5	0933	GREEK CAPITAL LETTER UPSILON
Φ	F*	03A6	0934	GREEK CAPITAL LETTER PHI
Χ	X*	03A7	0935	GREEK CAPITAL LETTER CHI
Ψ	Q*	03A8	0936	GREEK CAPITAL LETTER PSI
Ω	W*	03A9	0937	GREEK CAPITAL LETTER OMEGA
Ϊ	J*	03AA	0938	GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
Ϋ	V*	03AB	0939	GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
ά	a%	03AC	0940	GREEK SMALL LETTER ALPHA WITH TONOS
έ	e%	03AD	0941	GREEK SMALL LETTER EPSILON WITH TONOS
ή	y%	03AE	0942	GREEK SMALL LETTER ETA WITH TONOS
ί	i%	03AF	0943	GREEK SMALL LETTER IOTA WITH TONOS
ΰ	u3	03B0	0944	GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
α	a*	03B1	0945	GREEK SMALL LETTER ALPHA
β	b*	03B2	0946	GREEK SMALL LETTER BETA
γ	g*	03B3	0947	GREEK SMALL LETTER GAMMA
δ	d*	03B4	0948	GREEK SMALL LETTER DELTA
ε	e*	03B5	0949	GREEK SMALL LETTER EPSILON
ζ	z*	03B6	0950	GREEK SMALL LETTER ZETA
η	y*	03B7	0951	GREEK SMALL LETTER ETA
θ	h*	03B8	0952	GREEK SMALL LETTER THETA
ι	i*	03B9	0953	GREEK SMALL LETTER IOTA
κ	k*	03BA	0954	GREEK SMALL LETTER KAPPA
λ	l*	03BB	0955	GREEK SMALL LETTER LAMDA
μ	m*	03BC	0956	GREEK SMALL LETTER MU
ν	n*	03BD	0957	GREEK SMALL LETTER NU
ξ	c*	03BE	0958	GREEK SMALL LETTER XI
ο	o*	03BF	0959	GREEK SMALL LETTER OMICRON
π	p*	03C0	0960	GREEK SMALL LETTER PI
ρ	r*	03C1	0961	GREEK SMALL LETTER RHO
ς	*s	03C2	0962	GREEK SMALL LETTER FINAL SIGMA
σ	s*	03C3	0963	GREEK SMALL LETTER SIGMA
τ	t*	03C4	0964	GREEK SMALL LETTER TAU
υ	u*	03C5	0965	GREEK SMALL LETTER UPSILON
φ	f*	03C6	0966	GREEK SMALL LETTER PHI
χ	x*	03C7	0967	GREEK SMALL LETTER CHI
ψ	q*	03C8	0968	GREEK SMALL LETTER PSI
ω	w*	03C9	0969	GREEK SMALL LETTER OMEGA
ϊ	j*	03CA	0970	GREEK SMALL LETTER IOTA WITH DIALYTIKA
ϋ	v*	03CB	0971	GREEK SMALL LETTER UPSILON WITH DIALYTIKA
ό	o%	03CC	0972	GREEK SMALL LETTER OMICRON WITH TONOS
ύ	u%	03CD	0973	GREEK SMALL LETTER UPSILON WITH TONOS
ώ	w%	03CE	0974	GREEK SMALL LETTER OMEGA WITH TONOS
Ϙ	'G	03D8	0984	GREEK LETTER ARCHAIC KOPPA
ϙ	,G	03D9	0985	GREEK SMALL LETTER ARCHAIC KOPPA
Ϛ	T3	03DA	0986	GREEK LETTER STIGMA
ϛ	t3	03DB	0987	GREEK SMALL LETTER STIGMA
Ϝ	M3	03DC	0988	GREEK LETTER DIGAMMA
ϝ	m3	03DD	0989	GREEK SMALL LETTER DIGAMMA
Ϟ	K3	03DE	0990	GREEK LETTER KOPPA
ϟ	k3	03DF	0991	GREEK SMALL LETTER KOPPA
Ϡ	P3	03E0	0992	GREEK LETTER SAMPI
ϡ	p3	03E1	0993	GREEK SMALL LETTER SAMPI
ϴ	'%	03F4	1012	GREEK CAPITAL THETA SYMBOL
ϵ	j3	03F5	1013	GREEK LUNATE EPSILON SYMBOL
Ё	IO	0401	1025	CYRILLIC CAPITAL LETTER IO
Ђ	D%	0402	1026	CYRILLIC CAPITAL LETTER DJE
Ѓ	G%	0403	1027	CYRILLIC CAPITAL LETTER GJE
Є	IE	0404	1028	CYRILLIC CAPITAL LETTER UKRAINIAN IE
Ѕ	DS	0405	1029	CYRILLIC CAPITAL LETTER DZE
І	II	0406	1030	CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
Ї	YI	0407	1031	CYRILLIC CAPITAL LETTER YI
Ј	J%	0408	1032	CYRILLIC CAPITAL LETTER JE
Љ	LJ	0409	1033	CYRILLIC CAPITAL LETTER LJE
Њ	NJ	040A	1034	CYRILLIC CAPITAL LETTER NJE
Ћ	Ts	040B	1035	CYRILLIC CAPITAL LETTER TSHE
Ќ	KJ	040C	1036	CYRILLIC CAPITAL LETTER KJE
Ў	V%	040E	1038	CYRILLIC CAPITAL LETTER SHORT U
Џ	DZ	040F	1039	CYRILLIC CAPITAL LETTER DZHE
А	A=	0410	1040	CYRILLIC CAPITAL LETTER A
Б	B=	0411	1041	CYRILLIC CAPITAL LETTER BE
В	V=	0412	1042	CYRILLIC CAPITAL LETTER VE
Г	G=	0413	1043	CYRILLIC CAPITAL LETTER GHE
Д	D=	0414	1044	CYRILLIC CAPITAL LETTER DE
Е	E=	0415	1045	CYRILLIC CAPITAL LETTER IE
Ж	Z%	0416	1046	CYRILLIC CAPITAL LETTER ZHE
З	Z=	0417	1047	CYRILLIC CAPITAL LETTER ZE
И	I=	0418	1048	CYRILLIC CAPITAL LETTER I
Й	J=	0419	1049	CYRILLIC CAPITAL LETTER SHORT I
К	K=	041A	1050	CYRILLIC CAPITAL LETTER KA
Л	L=	041B	1051	CYRILLIC CAPITAL LETTER EL
М	M=	041C	1052	CYRILLIC CAPITAL LETTER EM
Н	N=	041D	1053	CYRILLIC CAPITAL LETTER EN
О	O=	041E	1054	CYRILLIC CAPITAL LETTER O
П	P=	041F	1055	CYRILLIC CAPITAL LETTER PE
Р	R=	0420	1056	CYRILLIC CAPITAL LETTER ER
С	S=	0421	1057	CYRILLIC CAPITAL LETTER ES
Т	T=	0422	1058	CYRILLIC CAPITAL LETTER TE
У	U=	0423	1059	CYRILLIC CAPITAL LETTER U
Ф	F=	0424	1060	CYRILLIC CAPITAL LETTER EF
Х	H=	0425	1061	CYRILLIC CAPITAL LETTER HA
Ц	C=	0426	1062	CYRILLIC CAPITAL LETTER TSE
Ч	C%	0427	1063	CYRILLIC CAPITAL LETTER CHE
Ш	S%	0428	1064	CYRILLIC CAPITAL LETTER SHA
Щ	Sc	0429	1065	CYRILLIC CAPITAL LETTER SHCHA
Ъ	="	042A	1066	CYRILLIC CAPITAL LETTER HARD SIGN
Ы	Y=	042B	1067	CYRILLIC CAPITAL LETTER YERU
Ь	%"	042C	1068	CYRILLIC CAPITAL LETTER SOFT SIGN
Э	JE	042D	1069	CYRILLIC CAPITAL LETTER E
Ю	JU	042E	1070	CYRILLIC CAPITAL LETTER YU
Я	JA	042F	1071	CYRILLIC CAPITAL LETTER YA
а	a=	0430	1072	CYRILLIC SMALL LETTER A
б	b=	0431	1073	CYRILLIC SMALL LETTER BE
в	v=	0432	1074	CYRILLIC SMALL LETTER VE
г	g=	0433	1075	CYRILLIC SMALL LETTER GHE
д	d=	0434	1076	CYRILLIC SMALL LETTER DE
е	e=	0435	1077	CYRILLIC SMALL LETTER IE
ж	z%	0436	1078	CYRILLIC SMALL LETTER ZHE
з	z=	0437	1079	CYRILLIC SMALL LETTER ZE
и	i=	0438	1080	CYRILLIC SMALL LETTER I
й	j=	0439	1081	CYRILLIC SMALL LETTER SHORT I
к	k=	043A	1082	CYRILLIC SMALL LETTER KA
л	l=	043B	1083	CYRILLIC SMALL LETTER EL
м	m=	043C	1084	CYRILLIC SMALL LETTER EM
н	n=	043D	1085	CYRILLIC SMALL LETTER EN
о	o=	043E	1086	CYRILLIC SMALL LETTER O
п	p=	043F	1087	CYRILLIC SMALL LETTER PE
р	r=	0440	1088	CYRILLIC SMALL LETTER ER
с	s=	0441	1089	CYRILLIC SMALL LETTER ES
т	t=	0442	1090	CYRILLIC SMALL LETTER TE
у	u=	0443	1091	CYRILLIC SMALL LETTER U
ф	f=	0444	1092	CYRILLIC SMALL LETTER EF
х	h=	0445	1093	CYRILLIC SMALL LETTER HA
ц	c=	0446	1094	CYRILLIC SMALL LETTER TSE
ч	c%	0447	1095	CYRILLIC SMALL LETTER CHE
ш	s%	0448	1096	CYRILLIC SMALL LETTER SHA
щ	sc	0449	1097	CYRILLIC SMALL LETTER SHCHA
ъ	='	044A	1098	CYRILLIC SMALL LETTER HARD SIGN
ы	y=	044B	1099	CYRILLIC SMALL LETTER YERU
ь	%'	044C	1100	CYRILLIC SMALL LETTER SOFT SIGN
э	je	044D	1101	CYRILLIC SMALL LETTER E
ю	ju	044E	1102	CYRILLIC SMALL LETTER YU
я	ja	044F	1103	CYRILLIC SMALL LETTER YA
ё	io	0451	1105	CYRILLIC SMALL LETTER IO
ђ	d%	0452	1106	CYRILLIC SMALL LETTER DJE
ѓ	g%	0453	1107	CYRILLIC SMALL LETTER GJE
є	ie	0454	1108	CYRILLIC SMALL LETTER UKRAINIAN IE
ѕ	ds	0455	1109	CYRILLIC SMALL LETTER DZE
і	ii	0456	1110	CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
ї	yi	0457	1111	CYRILLIC SMALL LETTER YI
ј	j%	0458	1112	CYRILLIC SMALL LETTER JE
љ	lj	0459	1113	CYRILLIC SMALL LETTER LJE
њ	nj	045A	1114	CYRILLIC SMALL LETTER NJE
ћ	ts	045B	1115	CYRILLIC SMALL LETTER TSHE
ќ	kj	045C	1116	CYRILLIC SMALL LETTER KJE
ў	v%	045E	1118	CYRILLIC SMALL LETTER SHORT U
џ	dz	045F	1119	CYRILLIC SMALL LETTER DZHE
Ѣ	Y3	0462	1122	CYRILLIC CAPITAL LETTER YAT
ѣ	y3	0463	1123	CYRILLIC SMALL LETTER YAT
Ѫ	O3	046A	1130	CYRILLIC CAPITAL LETTER BIG YUS
ѫ	o3	046B	1131	CYRILLIC SMALL LETTER BIG YUS
Ѳ	F3	0472	1138	CYRILLIC CAPITAL LETTER FITA
ѳ	f3	0473	1139	CYRILLIC SMALL LETTER FITA
Ѵ	V3	0474	1140	CYRILLIC CAPITAL LETTER IZHITSA
ѵ	v3	0475	1141	CYRILLIC SMALL LETTER IZHITSA
Ҁ	C3	0480	1152	CYRILLIC CAPITAL LETTER KOPPA
ҁ	c3	0481	1153	CYRILLIC SMALL LETTER KOPPA
Ґ	G3	0490	1168	CYRILLIC CAPITAL LETTER GHE WITH UPTURN
ґ	g3	0491	1169	CYRILLIC SMALL LETTER GHE WITH UPTURN
א	A+	05D0	1488	HEBREW LETTER ALEF
ב	B+	05D1	1489	HEBREW LETTER BET
ג	G+	05D2	1490	HEBREW LETTER GIMEL
ד	D+	05D3	1491	HEBREW LETTER DALET
ה	H+	05D4	1492	HEBREW LETTER HE
ו	W+	05D5	1493	HEBREW LETTER VAV
ז	Z+	05D6	1494	HEBREW LETTER ZAYIN
ח	X+	05D7	1495	HEBREW LETTER HET
ט	Tj	05D8	1496	HEBREW LETTER TET
י	J+	05D9	1497	HEBREW LETTER YOD
ך	K%	05DA	1498	HEBREW LETTER FINAL KAF
כ	K+	05DB	1499	HEBREW LETTER KAF
ל	L+	05DC	1500	HEBREW LETTER LAMED
ם	M%	05DD	1501	HEBREW LETTER FINAL MEM
מ	M+	05DE	1502	HEBREW LETTER MEM
ן	N%	05DF	1503	HEBREW LETTER FINAL NUN `
נ	N+	05E0	1504	HEBREW LETTER NUN `
ס	S+	05E1	1505	HEBREW LETTER SAMEKH
ע	E+	05E2	1506	HEBREW LETTER AYIN
ף	P%	05E3	1507	HEBREW LETTER FINAL PE
פ	P+	05E4	1508	HEBREW LETTER PE
ץ	Zj	05E5	1509	HEBREW LETTER FINAL TSADI
צ	ZJ	05E6	1510	HEBREW LETTER TSADI
ק	Q+	05E7	1511	HEBREW LETTER QOF
ר	R+	05E8	1512	HEBREW LETTER RESH
ש	Sh	05E9	1513	HEBREW LETTER SHIN
ת	T+	05EA	1514	HEBREW LETTER TAV
،	,+	060C	1548	ARABIC COMMA
؛	;+	061B	1563	ARABIC SEMICOLON
؟	?+	061F	1567	ARABIC QUESTION MARK
ء	H'	0621	1569	ARABIC LETTER HAMZA
آ	aM	0622	1570	ARABIC LETTER ALEF WITH MADDA ABOVE
أ	aH	0623	1571	ARABIC LETTER ALEF WITH HAMZA ABOVE
ؤ	wH	0624	1572	ARABIC LETTER WAW WITH HAMZA ABOVE
إ	ah	0625	1573	ARABIC LETTER ALEF WITH HAMZA BELOW
ئ	yH	0626	1574	ARABIC LETTER YEH WITH HAMZA ABOVE
ا	a+	0627	1575	ARABIC LETTER ALEF
ب	b+	0628	1576	ARABIC LETTER BEH
ة	tm	0629	1577	ARABIC LETTER TEH MARBUTA
ت	t+	062A	1578	ARABIC LETTER TEH
ث	tk	062B	1579	ARABIC LETTER THEH
ج	g+	062C	1580	ARABIC LETTER JEEM
ح	hk	062D	1581	ARABIC LETTER HAH
خ	x+	062E	1582	ARABIC LETTER KHAH
د	d+	062F	1583	ARABIC LETTER DAL
ذ	dk	0630	1584	ARABIC LETTER THAL
ر	r+	0631	1585	ARABIC LETTER REH
ز	z+	0632	1586	ARABIC LETTER ZAIN
س	s+	0633	1587	ARABIC LETTER SEEN
ش	sn	0634	1588	ARABIC LETTER SHEEN
ص	c+	0635	1589	ARABIC LETTER SAD
ض	dd	0636	1590	ARABIC LETTER DAD
ط	tj	0637	1591	ARABIC LETTER TAH
ظ	zH	0638	1592	ARABIC LETTER ZAH
ع	e+	0639	1593	ARABIC LETTER AIN
غ	i+	063A	1594	ARABIC LETTER GHAIN
ـ	++	0640	1600	ARABIC TATWEEL
ف	f+	0641	1601	ARABIC LETTER FEH
ق	q+	0642	1602	ARABIC LETTER QAF
ك	k+	0643	1603	ARABIC LETTER KAF
ل	l+	0644	1604	ARABIC LETTER LAM
م	m+	0645	1605	ARABIC LETTER MEEM
ن	n+	0646	1606	ARABIC LETTER NOON
ه	h+	0647	1607	ARABIC LETTER HEH
و	w+	0648	1608	ARABIC LETTER WAW
ى	j+	0649	1609	ARABIC LETTER ALEF MAKSURA
ي	y+	064A	1610	ARABIC LETTER YEH
ً	:+	064B	1611	ARABIC FATHATAN
ٌ	"+	064C	1612	ARABIC DAMMATAN
ٍ	=+	064D	1613	ARABIC KASRATAN
َ	/+	064E	1614	ARABIC FATHA
ُ	'+	064F	1615	ARABIC DAMMA
ِ	1+	0650	1616	ARABIC KASRA
ّ	3+	0651	1617	ARABIC SHADDA
ْ	0+	0652	1618	ARABIC SUKUN
ٰ	aS	0670	1648	ARABIC LETTER SUPERSCRIPT ALEF
پ	p+	067E	1662	ARABIC LETTER PEH
ڤ	v+	06A4	1700	ARABIC LETTER VEH
گ	gf	06AF	1711	ARABIC LETTER GAF
۰	0a	06F0	1776	EXTENDED ARABIC-INDIC DIGIT ZERO
۱	1a	06F1	1777	EXTENDED ARABIC-INDIC DIGIT ONE
۲	2a	06F2	1778	EXTENDED ARABIC-INDIC DIGIT TWO
۳	3a	06F3	1779	EXTENDED ARABIC-INDIC DIGIT THREE
۴	4a	06F4	1780	EXTENDED ARABIC-INDIC DIGIT FOUR
۵	5a	06F5	1781	EXTENDED ARABIC-INDIC DIGIT FIVE
۶	6a	06F6	1782	EXTENDED ARABIC-INDIC DIGIT SIX
۷	7a	06F7	1783	EXTENDED ARABIC-INDIC DIGIT SEVEN
۸	8a	06F8	1784	EXTENDED ARABIC-INDIC DIGIT EIGHT
۹	9a	06F9	1785	EXTENDED ARABIC-INDIC DIGIT NINE
Ḃ	B.	1E02	7682	LATIN CAPITAL LETTER B WITH DOT ABOVE
ḃ	b.	1E03	7683	LATIN SMALL LETTER B WITH DOT ABOVE
Ḇ	B_	1E06	7686	LATIN CAPITAL LETTER B WITH LINE BELOW
ḇ	b_	1E07	7687	LATIN SMALL LETTER B WITH LINE BELOW
Ḋ	D.	1E0A	7690	LATIN CAPITAL LETTER D WITH DOT ABOVE
ḋ	d.	1E0B	7691	LATIN SMALL LETTER D WITH DOT ABOVE
Ḏ	D_	1E0E	7694	LATIN CAPITAL LETTER D WITH LINE BELOW
ḏ	d_	1E0F	7695	LATIN SMALL LETTER D WITH LINE BELOW
Ḑ	D,	1E10	7696	LATIN CAPITAL LETTER D WITH CEDILLA
ḑ	d,	1E11	7697	LATIN SMALL LETTER D WITH CEDILLA
Ḟ	F.	1E1E	7710	LATIN CAPITAL LETTER F WITH DOT ABOVE
ḟ	f.	1E1F	7711	LATIN SMALL LETTER F WITH DOT ABOVE
Ḡ	G-	1E20	7712	LATIN CAPITAL LETTER G WITH MACRON
ḡ	g-	1E21	7713	LATIN SMALL LETTER G WITH MACRON
Ḣ	H.	1E22	7714	LATIN CAPITAL LETTER H WITH DOT ABOVE
ḣ	h.	1E23	7715	LATIN SMALL LETTER H WITH DOT ABOVE
Ḧ	H:	1E26	7718	LATIN CAPITAL LETTER H WITH DIAERESIS
ḧ	h:	1E27	7719	LATIN SMALL LETTER H WITH DIAERESIS
Ḩ	H,	1E28	7720	LATIN CAPITAL LETTER H WITH CEDILLA
ḩ	h,	1E29	7721	LATIN SMALL LETTER H WITH CEDILLA
Ḱ	K'	1E30	7728	LATIN CAPITAL LETTER K WITH ACUTE
ḱ	k'	1E31	7729	LATIN SMALL LETTER K WITH ACUTE
Ḵ	K_	1E34	7732	LATIN CAPITAL LETTER K WITH LINE BELOW
ḵ	k_	1E35	7733	LATIN SMALL LETTER K WITH LINE BELOW
Ḻ	L_	1E3A	7738	LATIN CAPITAL LETTER L WITH LINE BELOW
ḻ	l_	1E3B	7739	LATIN SMALL LETTER L WITH LINE BELOW
Ḿ	M'	1E3E	7742	LATIN CAPITAL LETTER M WITH ACUTE
ḿ	m'	1E3F	7743	LATIN SMALL LETTER M WITH ACUTE
Ṁ	M.	1E40	7744	LATIN CAPITAL LETTER M WITH DOT ABOVE
ṁ	m.	1E41	7745	LATIN SMALL LETTER M WITH DOT ABOVE
Ṅ	N.	1E44	7748	LATIN CAPITAL LETTER N WITH DOT ABOVE `
ṅ	n.	1E45	7749	LATIN SMALL LETTER N WITH DOT ABOVE `
Ṉ	N_	1E48	7752	LATIN CAPITAL LETTER N WITH LINE BELOW `
ṉ	n_	1E49	7753	LATIN SMALL LETTER N WITH LINE BELOW `
Ṕ	P'	1E54	7764	LATIN CAPITAL LETTER P WITH ACUTE
ṕ	p'	1E55	7765	LATIN SMALL LETTER P WITH ACUTE
Ṗ	P.	1E56	7766	LATIN CAPITAL LETTER P WITH DOT ABOVE
ṗ	p.	1E57	7767	LATIN SMALL LETTER P WITH DOT ABOVE
Ṙ	R.	1E58	7768	LATIN CAPITAL LETTER R WITH DOT ABOVE
ṙ	r.	1E59	7769	LATIN SMALL LETTER R WITH DOT ABOVE
Ṟ	R_	1E5E	7774	LATIN CAPITAL LETTER R WITH LINE BELOW
ṟ	r_	1E5F	7775	LATIN SMALL LETTER R WITH LINE BELOW
Ṡ	S.	1E60	7776	LATIN CAPITAL LETTER S WITH DOT ABOVE
ṡ	s.	1E61	7777	LATIN SMALL LETTER S WITH DOT ABOVE
Ṫ	T.	1E6A	7786	LATIN CAPITAL LETTER T WITH DOT ABOVE
ṫ	t.	1E6B	7787	LATIN SMALL LETTER T WITH DOT ABOVE
Ṯ	T_	1E6E	7790	LATIN CAPITAL LETTER T WITH LINE BELOW
ṯ	t_	1E6F	7791	LATIN SMALL LETTER T WITH LINE BELOW
Ṽ	V?	1E7C	7804	LATIN CAPITAL LETTER V WITH TILDE
ṽ	v?	1E7D	7805	LATIN SMALL LETTER V WITH TILDE
Ẁ	W!	1E80	7808	LATIN CAPITAL LETTER W WITH GRAVE
ẁ	w!	1E81	7809	LATIN SMALL LETTER W WITH GRAVE
Ẃ	W'	1E82	7810	LATIN CAPITAL LETTER W WITH ACUTE
ẃ	w'	1E83	7811	LATIN SMALL LETTER W WITH ACUTE
Ẅ	W:	1E84	7812	LATIN CAPITAL LETTER W WITH DIAERESIS
ẅ	w:	1E85	7813	LATIN SMALL LETTER W WITH DIAERESIS
Ẇ	W.	1E86	7814	LATIN CAPITAL LETTER W WITH DOT ABOVE
ẇ	w.	1E87	7815	LATIN SMALL LETTER W WITH DOT ABOVE
Ẋ	X.	1E8A	7818	LATIN CAPITAL LETTER X WITH DOT ABOVE
ẋ	x.	1E8B	7819	LATIN SMALL LETTER X WITH DOT ABOVE
Ẍ	X:	1E8C	7820	LATIN CAPITAL LETTER X WITH DIAERESIS
ẍ	x:	1E8D	7821	LATIN SMALL LETTER X WITH DIAERESIS
Ẏ	Y.	1E8E	7822	LATIN CAPITAL LETTER Y WITH DOT ABOVE
ẏ	y.	1E8F	7823	LATIN SMALL LETTER Y WITH DOT ABOVE
Ẑ	Z>	1E90	7824	LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
ẑ	z>	1E91	7825	LATIN SMALL LETTER Z WITH CIRCUMFLEX
Ẕ	Z_	1E94	7828	LATIN CAPITAL LETTER Z WITH LINE BELOW
ẕ	z_	1E95	7829	LATIN SMALL LETTER Z WITH LINE BELOW
ẖ	h_	1E96	7830	LATIN SMALL LETTER H WITH LINE BELOW
ẗ	t:	1E97	7831	LATIN SMALL LETTER T WITH DIAERESIS
ẘ	w0	1E98	7832	LATIN SMALL LETTER W WITH RING ABOVE
ẙ	y0	1E99	7833	LATIN SMALL LETTER Y WITH RING ABOVE
Ả	A2	1EA2	7842	LATIN CAPITAL LETTER A WITH HOOK ABOVE
ả	a2	1EA3	7843	LATIN SMALL LETTER A WITH HOOK ABOVE
Ẻ	E2	1EBA	7866	LATIN CAPITAL LETTER E WITH HOOK ABOVE
ẻ	e2	1EBB	7867	LATIN SMALL LETTER E WITH HOOK ABOVE
Ẽ	E?	1EBC	7868	LATIN CAPITAL LETTER E WITH TILDE
ẽ	e?	1EBD	7869	LATIN SMALL LETTER E WITH TILDE
Ỉ	I2	1EC8	7880	LATIN CAPITAL LETTER I WITH HOOK ABOVE
ỉ	i2	1EC9	7881	LATIN SMALL LETTER I WITH HOOK ABOVE
Ỏ	O2	1ECE	7886	LATIN CAPITAL LETTER O WITH HOOK ABOVE
ỏ	o2	1ECF	7887	LATIN SMALL LETTER O WITH HOOK ABOVE
Ủ	U2	1EE6	7910	LATIN CAPITAL LETTER U WITH HOOK ABOVE
ủ	u2	1EE7	7911	LATIN SMALL LETTER U WITH HOOK ABOVE
Ỳ	Y!	1EF2	7922	LATIN CAPITAL LETTER Y WITH GRAVE
ỳ	y!	1EF3	7923	LATIN SMALL LETTER Y WITH GRAVE
Ỷ	Y2	1EF6	7926	LATIN CAPITAL LETTER Y WITH HOOK ABOVE
ỷ	y2	1EF7	7927	LATIN SMALL LETTER Y WITH HOOK ABOVE
Ỹ	Y?	1EF8	7928	LATIN CAPITAL LETTER Y WITH TILDE
ỹ	y?	1EF9	7929	LATIN SMALL LETTER Y WITH TILDE
ἀ	;'	1F00	7936	GREEK SMALL LETTER ALPHA WITH PSILI
ἁ	,'	1F01	7937	GREEK SMALL LETTER ALPHA WITH DASIA
ἂ	;!	1F02	7938	GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
ἃ	,!	1F03	7939	GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
ἄ	?;	1F04	7940	GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
ἅ	?,	1F05	7941	GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
ἆ	!:	1F06	7942	GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
ἇ	?:	1F07	7943	GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
 	1N	2002	8194	EN SPACE
 	1M	2003	8195	EM SPACE
 	3M	2004	8196	THREE-PER-EM SPACE
 	4M	2005	8197	FOUR-PER-EM SPACE
 	6M	2006	8198	SIX-PER-EM SPACE
 	1T	2009	8201	THIN SPACE
 	1H	200A	8202	HAIR SPACE
‐	-1	2010	8208	HYPHEN
–	-N	2013	8211	EN DASH `
—	-M	2014	8212	EM DASH
―	-3	2015	8213	HORIZONTAL BAR
‖	!2	2016	8214	DOUBLE VERTICAL LINE
‗	=2	2017	8215	DOUBLE LOW LINE
‘	'6	2018	8216	LEFT SINGLE QUOTATION MARK
’	'9	2019	8217	RIGHT SINGLE QUOTATION MARK
‚	.9	201A	8218	SINGLE LOW-9 QUOTATION MARK
‛	9'	201B	8219	SINGLE HIGH-REVERSED-9 QUOTATION MARK
“	"6	201C	8220	LEFT DOUBLE QUOTATION MARK
”	"9	201D	8221	RIGHT DOUBLE QUOTATION MARK
„	:9	201E	8222	DOUBLE LOW-9 QUOTATION MARK
‟	9"	201F	8223	DOUBLE HIGH-REVERSED-9 QUOTATION MARK
†	/-	2020	8224	DAGGER
‡	/=	2021	8225	DOUBLE DAGGER
‥	..	2025	8229	TWO DOT LEADER
…	,.	2026	8230	HORIZONTAL ELLIPSIS
‰	%0	2030	8240	PER MILLE SIGN
′	1'	2032	8242	PRIME
″	2'	2033	8243	DOUBLE PRIME
‴	3'	2034	8244	TRIPLE PRIME
‵	1"	2035	8245	REVERSED PRIME
‶	2"	2036	8246	REVERSED DOUBLE PRIME
‷	3"	2037	8247	REVERSED TRIPLE PRIME
‸	Ca	2038	8248	CARET
‹	<1	2039	8249	SINGLE LEFT-POINTING ANGLE QUOTATION MARK
›	>1	203A	8250	SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
※	:X	203B	8251	REFERENCE MARK
‾	'-	203E	8254	OVERLINE
⁄	/f	2044	8260	FRACTION SLASH
⁰	0S	2070	8304	SUPERSCRIPT ZERO
⁴	4S	2074	8308	SUPERSCRIPT FOUR
⁵	5S	2075	8309	SUPERSCRIPT FIVE
⁶	6S	2076	8310	SUPERSCRIPT SIX
⁷	7S	2077	8311	SUPERSCRIPT SEVEN
⁸	8S	2078	8312	SUPERSCRIPT EIGHT
⁹	9S	2079	8313	SUPERSCRIPT NINE
⁺	+S	207A	8314	SUPERSCRIPT PLUS SIGN
⁻	-S	207B	8315	SUPERSCRIPT MINUS
⁼	=S	207C	8316	SUPERSCRIPT EQUALS SIGN
⁽	(S	207D	8317	SUPERSCRIPT LEFT PARENTHESIS
⁾	)S	207E	8318	SUPERSCRIPT RIGHT PARENTHESIS
ⁿ	nS	207F	8319	SUPERSCRIPT LATIN SMALL LETTER N `
₀	0s	2080	8320	SUBSCRIPT ZERO
₁	1s	2081	8321	SUBSCRIPT ONE
₂	2s	2082	8322	SUBSCRIPT TWO
₃	3s	2083	8323	SUBSCRIPT THREE
₄	4s	2084	8324	SUBSCRIPT FOUR
₅	5s	2085	8325	SUBSCRIPT FIVE
₆	6s	2086	8326	SUBSCRIPT SIX
₇	7s	2087	8327	SUBSCRIPT SEVEN
₈	8s	2088	8328	SUBSCRIPT EIGHT
₉	9s	2089	8329	SUBSCRIPT NINE
₊	+s	208A	8330	SUBSCRIPT PLUS SIGN
₋	-s	208B	8331	SUBSCRIPT MINUS
₌	=s	208C	8332	SUBSCRIPT EQUALS SIGN
₍	(s	208D	8333	SUBSCRIPT LEFT PARENTHESIS
₎	)s	208E	8334	SUBSCRIPT RIGHT PARENTHESIS
₤	Li	20A4	8356	LIRA SIGN
₧	Pt	20A7	8359	PESETA SIGN
₩	W=	20A9	8361	WON SIGN
€	Eu	20AC	8364	EURO SIGN
₽	=R	20BD	8381	ROUBLE SIGN
₽	=P	20BD	8381	ROUBLE SIGN
℃	oC	2103	8451	DEGREE CELSIUS
℅	co	2105	8453	CARE OF
℉	oF	2109	8457	DEGREE FAHRENHEIT
№	N0	2116	8470	NUMERO SIGN
℗	PO	2117	8471	SOUND RECORDING COPYRIGHT
℞	Rx	211E	8478	PRESCRIPTION TAKE
℠	SM	2120	8480	SERVICE MARK
™	TM	2122	8482	TRADE MARK SIGN
Ω	Om	2126	8486	OHM SIGN
Å	AO	212B	8491	ANGSTROM SIGN
⅓	13	2153	8531	VULGAR FRACTION ONE THIRD
⅔	23	2154	8532	VULGAR FRACTION TWO THIRDS
⅕	15	2155	8533	VULGAR FRACTION ONE FIFTH
⅖	25	2156	8534	VULGAR FRACTION TWO FIFTHS
⅗	35	2157	8535	VULGAR FRACTION THREE FIFTHS
⅘	45	2158	8536	VULGAR FRACTION FOUR FIFTHS
⅙	16	2159	8537	VULGAR FRACTION ONE SIXTH
⅚	56	215A	8538	VULGAR FRACTION FIVE SIXTHS
⅛	18	215B	8539	VULGAR FRACTION ONE EIGHTH
⅜	38	215C	8540	VULGAR FRACTION THREE EIGHTHS
⅝	58	215D	8541	VULGAR FRACTION FIVE EIGHTHS
⅞	78	215E	8542	VULGAR FRACTION SEVEN EIGHTHS
Ⅰ	1R	2160	8544	ROMAN NUMERAL ONE
Ⅱ	2R	2161	8545	ROMAN NUMERAL TWO
Ⅲ	3R	2162	8546	ROMAN NUMERAL THREE
Ⅳ	4R	2163	8547	ROMAN NUMERAL FOUR
Ⅴ	5R	2164	8548	ROMAN NUMERAL FIVE
Ⅵ	6R	2165	8549	ROMAN NUMERAL SIX
Ⅶ	7R	2166	8550	ROMAN NUMERAL SEVEN
Ⅷ	8R	2167	8551	ROMAN NUMERAL EIGHT
Ⅸ	9R	2168	8552	ROMAN NUMERAL NINE
Ⅹ	aR	2169	8553	ROMAN NUMERAL TEN
Ⅺ	bR	216A	8554	ROMAN NUMERAL ELEVEN
Ⅻ	cR	216B	8555	ROMAN NUMERAL TWELVE
ⅰ	1r	2170	8560	SMALL ROMAN NUMERAL ONE
ⅱ	2r	2171	8561	SMALL ROMAN NUMERAL TWO
ⅲ	3r	2172	8562	SMALL ROMAN NUMERAL THREE
ⅳ	4r	2173	8563	SMALL ROMAN NUMERAL FOUR
ⅴ	5r	2174	8564	SMALL ROMAN NUMERAL FIVE
ⅵ	6r	2175	8565	SMALL ROMAN NUMERAL SIX
ⅶ	7r	2176	8566	SMALL ROMAN NUMERAL SEVEN
ⅷ	8r	2177	8567	SMALL ROMAN NUMERAL EIGHT
ⅸ	9r	2178	8568	SMALL ROMAN NUMERAL NINE
ⅹ	ar	2179	8569	SMALL ROMAN NUMERAL TEN
ⅺ	br	217A	8570	SMALL ROMAN NUMERAL ELEVEN
ⅻ	cr	217B	8571	SMALL ROMAN NUMERAL TWELVE
←	<-	2190	8592	LEFTWARDS ARROW
↑	-!	2191	8593	UPWARDS ARROW
→	->	2192	8594	RIGHTWARDS ARROW
↓	-v	2193	8595	DOWNWARDS ARROW
↔	<>	2194	8596	LEFT RIGHT ARROW
↕	UD	2195	8597	UP DOWN ARROW
⇐	<=	21D0	8656	LEFTWARDS DOUBLE ARROW
⇒	=>	21D2	8658	RIGHTWARDS DOUBLE ARROW
⇔	==	21D4	8660	LEFT RIGHT DOUBLE ARROW
∀	FA	2200	8704	FOR ALL
∂	dP	2202	8706	PARTIAL DIFFERENTIAL
∃	TE	2203	8707	THERE EXISTS
∅	/0	2205	8709	EMPTY SET
∆	DE	2206	8710	INCREMENT
∇	NB	2207	8711	NABLA
∈	(-	2208	8712	ELEMENT OF
∋	-)	220B	8715	CONTAINS AS MEMBER
∏	*P	220F	8719	N-ARY PRODUCT `
∑	+Z	2211	8721	N-ARY SUMMATION `
−	-2	2212	8722	MINUS SIGN
∓	-+	2213	8723	MINUS-OR-PLUS SIGN
∗	*-	2217	8727	ASTERISK OPERATOR
∘	Ob	2218	8728	RING OPERATOR
∙	Sb	2219	8729	BULLET OPERATOR
√	RT	221A	8730	SQUARE ROOT
∝	0(	221D	8733	PROPORTIONAL TO
∞	00	221E	8734	INFINITY
∟	-L	221F	8735	RIGHT ANGLE
∠	-V	2220	8736	ANGLE
∥	PP	2225	8741	PARALLEL TO
∧	AN	2227	8743	LOGICAL AND
∨	OR	2228	8744	LOGICAL OR
∩	(U	2229	8745	INTERSECTION
∪	)U	222A	8746	UNION
∫	In	222B	8747	INTEGRAL
∬	DI	222C	8748	DOUBLE INTEGRAL
∮	Io	222E	8750	CONTOUR INTEGRAL
∴	.:	2234	8756	THEREFORE
∵	:.	2235	8757	BECAUSE
∶	:R	2236	8758	RATIO
∷	::	2237	8759	PROPORTION
∼	?1	223C	8764	TILDE OPERATOR
∾	CG	223E	8766	INVERTED LAZY S
≃	?-	2243	8771	ASYMPTOTICALLY EQUAL TO
≅	?=	2245	8773	APPROXIMATELY EQUAL TO
≈	?2	2248	8776	ALMOST EQUAL TO
≌	=?	224C	8780	ALL EQUAL TO
≓	HI	2253	8787	IMAGE OF OR APPROXIMATELY EQUAL TO
≠	!=	2260	8800	NOT EQUAL TO
≡	=3	2261	8801	IDENTICAL TO
≤	=<	2264	8804	LESS-THAN OR EQUAL TO
≥	>=	2265	8805	GREATER-THAN OR EQUAL TO
≪	<*	226A	8810	MUCH LESS-THAN
≫	*>	226B	8811	MUCH GREATER-THAN
≮	!<	226E	8814	NOT LESS-THAN
≯	!>	226F	8815	NOT GREATER-THAN
⊂	(C	2282	8834	SUBSET OF
⊃	)C	2283	8835	SUPERSET OF
⊆	(_	2286	8838	SUBSET OF OR EQUAL TO
⊇	)_	2287	8839	SUPERSET OF OR EQUAL TO
⊙	0.	2299	8857	CIRCLED DOT OPERATOR
⊚	02	229A	8858	CIRCLED RING OPERATOR
⊥	-T	22A5	8869	UP TACK
⋅	.P	22C5	8901	DOT OPERATOR
⋮	:3	22EE	8942	VERTICAL ELLIPSIS
⋯	.3	22EF	8943	MIDLINE HORIZONTAL ELLIPSIS
⌂	Eh	2302	8962	HOUSE
⌈	<7	2308	8968	LEFT CEILING
⌉	>7	2309	8969	RIGHT CEILING
⌊	7<	230A	8970	LEFT FLOOR
⌋	7>	230B	8971	RIGHT FLOOR
⌐	NI	2310	8976	REVERSED NOT SIGN
⌒	(A	2312	8978	ARC
⌕	TR	2315	8981	TELEPHONE RECORDER
⌠	Iu	2320	8992	TOP HALF INTEGRAL
⌡	Il	2321	8993	BOTTOM HALF INTEGRAL
〈	</	2329	9001	LEFT-POINTING ANGLE BRACKET
〉	/>	232A	9002	RIGHT-POINTING ANGLE BRACKET
␣	Vs	2423	9251	OPEN BOX
⑀	1h	2440	9280	OCR HOOK
⑁	3h	2441	9281	OCR CHAIR
⑂	2h	2442	9282	OCR FORK
⑃	4h	2443	9283	OCR INVERTED FORK
⑆	1j	2446	9286	OCR BRANCH BANK IDENTIFICATION
⑇	2j	2447	9287	OCR AMOUNT OF CHECK
⑈	3j	2448	9288	OCR DASH
⑉	4j	2449	9289	OCR CUSTOMER ACCOUNT NUMBER
⒈	1.	2488	9352	DIGIT ONE FULL STOP
⒉	2.	2489	9353	DIGIT TWO FULL STOP
⒊	3.	248A	9354	DIGIT THREE FULL STOP
⒋	4.	248B	9355	DIGIT FOUR FULL STOP
⒌	5.	248C	9356	DIGIT FIVE FULL STOP
⒍	6.	248D	9357	DIGIT SIX FULL STOP
⒎	7.	248E	9358	DIGIT SEVEN FULL STOP
⒏	8.	248F	9359	DIGIT EIGHT FULL STOP
⒐	9.	2490	9360	DIGIT NINE FULL STOP
─	hh	2500	9472	BOX DRAWINGS LIGHT HORIZONTAL
━	HH	2501	9473	BOX DRAWINGS HEAVY HORIZONTAL
│	vv	2502	9474	BOX DRAWINGS LIGHT VERTICAL
┃	VV	2503	9475	BOX DRAWINGS HEAVY VERTICAL
┄	3-	2504	9476	BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
┅	3_	2505	9477	BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
┆	3!	2506	9478	BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
┇	3/	2507	9479	BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
┈	4-	2508	9480	BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
┉	4_	2509	9481	BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
┊	4!	250A	9482	BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
┋	4/	250B	9483	BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
┌	dr	250C	9484	BOX DRAWINGS LIGHT DOWN AND RIGHT
┍	dR	250D	9485	BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
┎	Dr	250E	9486	BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
┏	DR	250F	9487	BOX DRAWINGS HEAVY DOWN AND RIGHT
┐	dl	2510	9488	BOX DRAWINGS LIGHT DOWN AND LEFT
┑	dL	2511	9489	BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
┒	Dl	2512	9490	BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
┓	LD	2513	9491	BOX DRAWINGS HEAVY DOWN AND LEFT
└	ur	2514	9492	BOX DRAWINGS LIGHT UP AND RIGHT
┕	uR	2515	9493	BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
┖	Ur	2516	9494	BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
┗	UR	2517	9495	BOX DRAWINGS HEAVY UP AND RIGHT
┘	ul	2518	9496	BOX DRAWINGS LIGHT UP AND LEFT
┙	uL	2519	9497	BOX DRAWINGS UP LIGHT AND LEFT HEAVY
┚	Ul	251A	9498	BOX DRAWINGS UP HEAVY AND LEFT LIGHT
┛	UL	251B	9499	BOX DRAWINGS HEAVY UP AND LEFT
├	vr	251C	9500	BOX DRAWINGS LIGHT VERTICAL AND RIGHT
┝	vR	251D	9501	BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
┠	Vr	2520	9504	BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
┣	VR	2523	9507	BOX DRAWINGS HEAVY VERTICAL AND RIGHT
┤	vl	2524	9508	BOX DRAWINGS LIGHT VERTICAL AND LEFT
┥	vL	2525	9509	BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
┨	Vl	2528	9512	BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
┫	VL	252B	9515	BOX DRAWINGS HEAVY VERTICAL AND LEFT
┬	dh	252C	9516	BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
┯	dH	252F	9519	BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
┰	Dh	2530	9520	BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
┳	DH	2533	9523	BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
┴	uh	2534	9524	BOX DRAWINGS LIGHT UP AND HORIZONTAL
┷	uH	2537	9527	BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
┸	Uh	2538	9528	BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
┻	UH	253B	9531	BOX DRAWINGS HEAVY UP AND HORIZONTAL
┼	vh	253C	9532	BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
┿	vH	253F	9535	BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
╂	Vh	2542	9538	BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
╋	VH	254B	9547	BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
╱	FD	2571	9585	BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
╲	BD	2572	9586	BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
▀	TB	2580	9600	UPPER HALF BLOCK
▄	LB	2584	9604	LOWER HALF BLOCK
█	FB	2588	9608	FULL BLOCK
▌	lB	258C	9612	LEFT HALF BLOCK
▐	RB	2590	9616	RIGHT HALF BLOCK
░	.S	2591	9617	LIGHT SHADE
▒	:S	2592	9618	MEDIUM SHADE
▓	?S	2593	9619	DARK SHADE
■	fS	25A0	9632	BLACK SQUARE
□	OS	25A1	9633	WHITE SQUARE
▢	RO	25A2	9634	WHITE SQUARE WITH ROUNDED CORNERS
▣	Rr	25A3	9635	WHITE SQUARE CONTAINING BLACK SMALL SQUARE
▤	RF	25A4	9636	SQUARE WITH HORIZONTAL FILL
▥	RY	25A5	9637	SQUARE WITH VERTICAL FILL
▦	RH	25A6	9638	SQUARE WITH ORTHOGONAL CROSSHATCH FILL
▧	RZ	25A7	9639	SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
▨	RK	25A8	9640	SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
▩	RX	25A9	9641	SQUARE WITH DIAGONAL CROSSHATCH FILL
▪	sB	25AA	9642	BLACK SMALL SQUARE
▬	SR	25AC	9644	BLACK RECTANGLE
▭	Or	25AD	9645	WHITE RECTANGLE
▲	UT	25B2	9650	BLACK UP-POINTING TRIANGLE
△	uT	25B3	9651	WHITE UP-POINTING TRIANGLE
▶	PR	25B6	9654	BLACK RIGHT-POINTING TRIANGLE
▷	Tr	25B7	9655	WHITE RIGHT-POINTING TRIANGLE
▼	Dt	25BC	9660	BLACK DOWN-POINTING TRIANGLE
▽	dT	25BD	9661	WHITE DOWN-POINTING TRIANGLE
◀	PL	25C0	9664	BLACK LEFT-POINTING TRIANGLE
◁	Tl	25C1	9665	WHITE LEFT-POINTING TRIANGLE
◆	Db	25C6	9670	BLACK DIAMOND
◇	Dw	25C7	9671	WHITE DIAMOND
◊	LZ	25CA	9674	LOZENGE
○	0m	25CB	9675	WHITE CIRCLE
◎	0o	25CE	9678	BULLSEYE
●	0M	25CF	9679	BLACK CIRCLE
◐	0L	25D0	9680	CIRCLE WITH LEFT HALF BLACK
◑	0R	25D1	9681	CIRCLE WITH RIGHT HALF BLACK
◘	Sn	25D8	9688	INVERSE BULLET
◙	Ic	25D9	9689	INVERSE WHITE CIRCLE
◢	Fd	25E2	9698	BLACK LOWER RIGHT TRIANGLE
◣	Bd	25E3	9699	BLACK LOWER LEFT TRIANGLE
★	*2	2605	9733	BLACK STAR
☆	*1	2606	9734	WHITE STAR
☜	<H	261C	9756	WHITE LEFT POINTING INDEX
☞	>H	261E	9758	WHITE RIGHT POINTING INDEX
☺	0u	263A	9786	WHITE SMILING FACE
☻	0U	263B	9787	BLACK SMILING FACE
☼	SU	263C	9788	WHITE SUN WITH RAYS
♀	Fm	2640	9792	FEMALE SIGN
♂	Ml	2642	9794	MALE SIGN
♠	cS	2660	9824	BLACK SPADE SUIT
♡	cH	2661	9825	WHITE HEART SUIT
♢	cD	2662	9826	WHITE DIAMOND SUIT
♣	cC	2663	9827	BLACK CLUB SUIT
♩	Md	2669	9833	QUARTER NOTE `
♪	M8	266A	9834	EIGHTH NOTE `
♫	M2	266B	9835	BEAMED EIGHTH NOTES
♭	Mb	266D	9837	MUSIC FLAT SIGN
♮	Mx	266E	9838	MUSIC NATURAL SIGN
♯	MX	266F	9839	MUSIC SHARP SIGN
✓	OK	2713	10003	CHECK MARK
✗	XX	2717	10007	BALLOT X
✠	-X	2720	10016	MALTESE CROSS
 	IS	3000	12288	IDEOGRAPHIC SPACE
、	,_	3001	12289	IDEOGRAPHIC COMMA
。	._	3002	12290	IDEOGRAPHIC FULL STOP
〃	+"	3003	12291	DITTO MARK
〄	+_	3004	12292	JAPANESE INDUSTRIAL STANDARD SYMBOL
々	*_	3005	12293	IDEOGRAPHIC ITERATION MARK
〆	;_	3006	12294	IDEOGRAPHIC CLOSING MARK
〇	0_	3007	12295	IDEOGRAPHIC NUMBER ZERO
《	<+	300A	12298	LEFT DOUBLE ANGLE BRACKET
》	>+	300B	12299	RIGHT DOUBLE ANGLE BRACKET
「	<'	300C	12300	LEFT CORNER BRACKET
」	>'	300D	12301	RIGHT CORNER BRACKET
『	<"	300E	12302	LEFT WHITE CORNER BRACKET
』	>"	300F	12303	RIGHT WHITE CORNER BRACKET
【	("	3010	12304	LEFT BLACK LENTICULAR BRACKET
】	)"	3011	12305	RIGHT BLACK LENTICULAR BRACKET
〒	=T	3012	12306	POSTAL MARK
〓	=_	3013	12307	GETA MARK
〔	('	3014	12308	LEFT TORTOISE SHELL BRACKET
〕	)'	3015	12309	RIGHT TORTOISE SHELL BRACKET
〖	(I	3016	12310	LEFT WHITE LENTICULAR BRACKET
〗	)I	3017	12311	RIGHT WHITE LENTICULAR BRACKET
〜	-?	301C	12316	WAVE DASH
ぁ	A5	3041	12353	HIRAGANA LETTER SMALL A
あ	a5	3042	12354	HIRAGANA LETTER A
ぃ	I5	3043	12355	HIRAGANA LETTER SMALL I
い	i5	3044	12356	HIRAGANA LETTER I
ぅ	U5	3045	12357	HIRAGANA LETTER SMALL U
う	u5	3046	12358	HIRAGANA LETTER U
ぇ	E5	3047	12359	HIRAGANA LETTER SMALL E
え	e5	3048	12360	HIRAGANA LETTER E
ぉ	O5	3049	12361	HIRAGANA LETTER SMALL O
お	o5	304A	12362	HIRAGANA LETTER O
か	ka	304B	12363	HIRAGANA LETTER KA
が	ga	304C	12364	HIRAGANA LETTER GA
き	ki	304D	12365	HIRAGANA LETTER KI
ぎ	gi	304E	12366	HIRAGANA LETTER GI
く	ku	304F	12367	HIRAGANA LETTER KU
ぐ	gu	3050	12368	HIRAGANA LETTER GU
け	ke	3051	12369	HIRAGANA LETTER KE
げ	ge	3052	12370	HIRAGANA LETTER GE
こ	ko	3053	12371	HIRAGANA LETTER KO
ご	go	3054	12372	HIRAGANA LETTER GO
さ	sa	3055	12373	HIRAGANA LETTER SA
ざ	za	3056	12374	HIRAGANA LETTER ZA
し	si	3057	12375	HIRAGANA LETTER SI
じ	zi	3058	12376	HIRAGANA LETTER ZI
す	su	3059	12377	HIRAGANA LETTER SU
ず	zu	305A	12378	HIRAGANA LETTER ZU
せ	se	305B	12379	HIRAGANA LETTER SE
ぜ	ze	305C	12380	HIRAGANA LETTER ZE
そ	so	305D	12381	HIRAGANA LETTER SO
ぞ	zo	305E	12382	HIRAGANA LETTER ZO
た	ta	305F	12383	HIRAGANA LETTER TA
だ	da	3060	12384	HIRAGANA LETTER DA
ち	ti	3061	12385	HIRAGANA LETTER TI
ぢ	di	3062	12386	HIRAGANA LETTER DI
っ	tU	3063	12387	HIRAGANA LETTER SMALL TU
つ	tu	3064	12388	HIRAGANA LETTER TU
づ	du	3065	12389	HIRAGANA LETTER DU
て	te	3066	12390	HIRAGANA LETTER TE
で	de	3067	12391	HIRAGANA LETTER DE
と	to	3068	12392	HIRAGANA LETTER TO
ど	do	3069	12393	HIRAGANA LETTER DO
な	na	306A	12394	HIRAGANA LETTER NA
に	ni	306B	12395	HIRAGANA LETTER NI
ぬ	nu	306C	12396	HIRAGANA LETTER NU
ね	ne	306D	12397	HIRAGANA LETTER NE
の	no	306E	12398	HIRAGANA LETTER NO
は	ha	306F	12399	HIRAGANA LETTER HA
ば	ba	3070	12400	HIRAGANA LETTER BA
ぱ	pa	3071	12401	HIRAGANA LETTER PA
ひ	hi	3072	12402	HIRAGANA LETTER HI
び	bi	3073	12403	HIRAGANA LETTER BI
ぴ	pi	3074	12404	HIRAGANA LETTER PI
ふ	hu	3075	12405	HIRAGANA LETTER HU
ぶ	bu	3076	12406	HIRAGANA LETTER BU
ぷ	pu	3077	12407	HIRAGANA LETTER PU
へ	he	3078	12408	HIRAGANA LETTER HE
べ	be	3079	12409	HIRAGANA LETTER BE
ぺ	pe	307A	12410	HIRAGANA LETTER PE
ほ	ho	307B	12411	HIRAGANA LETTER HO
ぼ	bo	307C	12412	HIRAGANA LETTER BO
ぽ	po	307D	12413	HIRAGANA LETTER PO
ま	ma	307E	12414	HIRAGANA LETTER MA
み	mi	307F	12415	HIRAGANA LETTER MI
む	mu	3080	12416	HIRAGANA LETTER MU
め	me	3081	12417	HIRAGANA LETTER ME
も	mo	3082	12418	HIRAGANA LETTER MO
ゃ	yA	3083	12419	HIRAGANA LETTER SMALL YA
や	ya	3084	12420	HIRAGANA LETTER YA
ゅ	yU	3085	12421	HIRAGANA LETTER SMALL YU
ゆ	yu	3086	12422	HIRAGANA LETTER YU
ょ	yO	3087	12423	HIRAGANA LETTER SMALL YO
よ	yo	3088	12424	HIRAGANA LETTER YO
ら	ra	3089	12425	HIRAGANA LETTER RA
り	ri	308A	12426	HIRAGANA LETTER RI
る	ru	308B	12427	HIRAGANA LETTER RU
れ	re	308C	12428	HIRAGANA LETTER RE
ろ	ro	308D	12429	HIRAGANA LETTER RO
ゎ	wA	308E	12430	HIRAGANA LETTER SMALL WA
わ	wa	308F	12431	HIRAGANA LETTER WA
ゐ	wi	3090	12432	HIRAGANA LETTER WI
ゑ	we	3091	12433	HIRAGANA LETTER WE
を	wo	3092	12434	HIRAGANA LETTER WO
ん	n5	3093	12435	HIRAGANA LETTER N `
ゔ	vu	3094	12436	HIRAGANA LETTER VU
゛	"5	309B	12443	KATAKANA-HIRAGANA VOICED SOUND MARK
゜	05	309C	12444	KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
ゝ	*5	309D	12445	HIRAGANA ITERATION MARK
ゞ	+5	309E	12446	HIRAGANA VOICED ITERATION MARK
ァ	a6	30A1	12449	KATAKANA LETTER SMALL A
ア	A6	30A2	12450	KATAKANA LETTER A
ィ	i6	30A3	12451	KATAKANA LETTER SMALL I
イ	I6	30A4	12452	KATAKANA LETTER I
ゥ	u6	30A5	12453	KATAKANA LETTER SMALL U
ウ	U6	30A6	12454	KATAKANA LETTER U
ェ	e6	30A7	12455	KATAKANA LETTER SMALL E
エ	E6	30A8	12456	KATAKANA LETTER E
ォ	o6	30A9	12457	KATAKANA LETTER SMALL O
オ	O6	30AA	12458	KATAKANA LETTER O
カ	Ka	30AB	12459	KATAKANA LETTER KA
ガ	Ga	30AC	12460	KATAKANA LETTER GA
キ	Ki	30AD	12461	KATAKANA LETTER KI
ギ	Gi	30AE	12462	KATAKANA LETTER GI
ク	Ku	30AF	12463	KATAKANA LETTER KU
グ	Gu	30B0	12464	KATAKANA LETTER GU
ケ	Ke	30B1	12465	KATAKANA LETTER KE
ゲ	Ge	30B2	12466	KATAKANA LETTER GE
コ	Ko	30B3	12467	KATAKANA LETTER KO
ゴ	Go	30B4	12468	KATAKANA LETTER GO
サ	Sa	30B5	12469	KATAKANA LETTER SA
ザ	Za	30B6	12470	KATAKANA LETTER ZA
シ	Si	30B7	12471	KATAKANA LETTER SI
ジ	Zi	30B8	12472	KATAKANA LETTER ZI
ス	Su	30B9	12473	KATAKANA LETTER SU
ズ	Zu	30BA	12474	KATAKANA LETTER ZU
セ	Se	30BB	12475	KATAKANA LETTER SE
ゼ	Ze	30BC	12476	KATAKANA LETTER ZE
ソ	So	30BD	12477	KATAKANA LETTER SO
ゾ	Zo	30BE	12478	KATAKANA LETTER ZO
タ	Ta	30BF	12479	KATAKANA LETTER TA
ダ	Da	30C0	12480	KATAKANA LETTER DA
チ	Ti	30C1	12481	KATAKANA LETTER TI
ヂ	Di	30C2	12482	KATAKANA LETTER DI
ッ	TU	30C3	12483	KATAKANA LETTER SMALL TU
ツ	Tu	30C4	12484	KATAKANA LETTER TU
ヅ	Du	30C5	12485	KATAKANA LETTER DU
テ	Te	30C6	12486	KATAKANA LETTER TE
デ	De	30C7	12487	KATAKANA LETTER DE
ト	To	30C8	12488	KATAKANA LETTER TO
ド	Do	30C9	12489	KATAKANA LETTER DO
ナ	Na	30CA	12490	KATAKANA LETTER NA
ニ	Ni	30CB	12491	KATAKANA LETTER NI
ヌ	Nu	30CC	12492	KATAKANA LETTER NU
ネ	Ne	30CD	12493	KATAKANA LETTER NE
ノ	No	30CE	12494	KATAKANA LETTER NO
ハ	Ha	30CF	12495	KATAKANA LETTER HA
バ	Ba	30D0	12496	KATAKANA LETTER BA
パ	Pa	30D1	12497	KATAKANA LETTER PA
ヒ	Hi	30D2	12498	KATAKANA LETTER HI
ビ	Bi	30D3	12499	KATAKANA LETTER BI
ピ	Pi	30D4	12500	KATAKANA LETTER PI
フ	Hu	30D5	12501	KATAKANA LETTER HU
ブ	Bu	30D6	12502	KATAKANA LETTER BU
プ	Pu	30D7	12503	KATAKANA LETTER PU
ヘ	He	30D8	12504	KATAKANA LETTER HE
ベ	Be	30D9	12505	KATAKANA LETTER BE
ペ	Pe	30DA	12506	KATAKANA LETTER PE
ホ	Ho	30DB	12507	KATAKANA LETTER HO
ボ	Bo	30DC	12508	KATAKANA LETTER BO
ポ	Po	30DD	12509	KATAKANA LETTER PO
マ	Ma	30DE	12510	KATAKANA LETTER MA
ミ	Mi	30DF	12511	KATAKANA LETTER MI
ム	Mu	30E0	12512	KATAKANA LETTER MU
メ	Me	30E1	12513	KATAKANA LETTER ME
モ	Mo	30E2	12514	KATAKANA LETTER MO
ャ	YA	30E3	12515	KATAKANA LETTER SMALL YA
ヤ	Ya	30E4	12516	KATAKANA LETTER YA
ュ	YU	30E5	12517	KATAKANA LETTER SMALL YU
ユ	Yu	30E6	12518	KATAKANA LETTER YU
ョ	YO	30E7	12519	KATAKANA LETTER SMALL YO
ヨ	Yo	30E8	12520	KATAKANA LETTER YO
ラ	Ra	30E9	12521	KATAKANA LETTER RA
リ	Ri	30EA	12522	KATAKANA LETTER RI
ル	Ru	30EB	12523	KATAKANA LETTER RU
レ	Re	30EC	12524	KATAKANA LETTER RE
ロ	Ro	30ED	12525	KATAKANA LETTER RO
ヮ	WA	30EE	12526	KATAKANA LETTER SMALL WA
ワ	Wa	30EF	12527	KATAKANA LETTER WA
ヰ	Wi	30F0	12528	KATAKANA LETTER WI
ヱ	We	30F1	12529	KATAKANA LETTER WE
ヲ	Wo	30F2	12530	KATAKANA LETTER WO
ン	N6	30F3	12531	KATAKANA LETTER N `
ヴ	Vu	30F4	12532	KATAKANA LETTER VU
ヵ	KA	30F5	12533	KATAKANA LETTER SMALL KA
ヶ	KE	30F6	12534	KATAKANA LETTER SMALL KE
ヷ	Va	30F7	12535	KATAKANA LETTER VA
ヸ	Vi	30F8	12536	KATAKANA LETTER VI
ヹ	Ve	30F9	12537	KATAKANA LETTER VE
ヺ	Vo	30FA	12538	KATAKANA LETTER VO
・	.6	30FB	12539	KATAKANA MIDDLE DOT
ー	-6	30FC	12540	KATAKANA-HIRAGANA PROLONGED SOUND MARK
ヽ	*6	30FD	12541	KATAKANA ITERATION MARK
ヾ	+6	30FE	12542	KATAKANA VOICED ITERATION MARK
ㄅ	b4	3105	12549	BOPOMOFO LETTER B
ㄆ	p4	3106	12550	BOPOMOFO LETTER P
ㄇ	m4	3107	12551	BOPOMOFO LETTER M
ㄈ	f4	3108	12552	BOPOMOFO LETTER F
ㄉ	d4	3109	12553	BOPOMOFO LETTER D
ㄊ	t4	310A	12554	BOPOMOFO LETTER T
ㄋ	n4	310B	12555	BOPOMOFO LETTER N `
ㄌ	l4	310C	12556	BOPOMOFO LETTER L
ㄍ	g4	310D	12557	BOPOMOFO LETTER G
ㄎ	k4	310E	12558	BOPOMOFO LETTER K
ㄏ	h4	310F	12559	BOPOMOFO LETTER H
ㄐ	j4	3110	12560	BOPOMOFO LETTER J
ㄑ	q4	3111	12561	BOPOMOFO LETTER Q
ㄒ	x4	3112	12562	BOPOMOFO LETTER X
ㄓ	zh	3113	12563	BOPOMOFO LETTER ZH
ㄔ	ch	3114	12564	BOPOMOFO LETTER CH
ㄕ	sh	3115	12565	BOPOMOFO LETTER SH
ㄖ	r4	3116	12566	BOPOMOFO LETTER R
ㄗ	z4	3117	12567	BOPOMOFO LETTER Z
ㄘ	c4	3118	12568	BOPOMOFO LETTER C
ㄙ	s4	3119	12569	BOPOMOFO LETTER S
ㄚ	a4	311A	12570	BOPOMOFO LETTER A
ㄛ	o4	311B	12571	BOPOMOFO LETTER O
ㄜ	e4	311C	12572	BOPOMOFO LETTER E
ㄞ	ai	311E	12574	BOPOMOFO LETTER AI
ㄟ	ei	311F	12575	BOPOMOFO LETTER EI
ㄠ	au	3120	12576	BOPOMOFO LETTER AU
ㄡ	ou	3121	12577	BOPOMOFO LETTER OU
ㄢ	an	3122	12578	BOPOMOFO LETTER AN
ㄣ	en	3123	12579	BOPOMOFO LETTER EN
ㄤ	aN	3124	12580	BOPOMOFO LETTER ANG
ㄥ	eN	3125	12581	BOPOMOFO LETTER ENG
ㄦ	er	3126	12582	BOPOMOFO LETTER ER
ㄧ	i4	3127	12583	BOPOMOFO LETTER I
ㄨ	u4	3128	12584	BOPOMOFO LETTER U
ㄩ	iu	3129	12585	BOPOMOFO LETTER IU
ㄪ	v4	312A	12586	BOPOMOFO LETTER V
ㄫ	nG	312B	12587	BOPOMOFO LETTER NG
ㄬ	gn	312C	12588	BOPOMOFO LETTER GN
㈠	1c	3220	12832	PARENTHESIZED IDEOGRAPH ONE
㈡	2c	3221	12833	PARENTHESIZED IDEOGRAPH TWO
㈢	3c	3222	12834	PARENTHESIZED IDEOGRAPH THREE
㈣	4c	3223	12835	PARENTHESIZED IDEOGRAPH FOUR
㈤	5c	3224	12836	PARENTHESIZED IDEOGRAPH FIVE
㈥	6c	3225	12837	PARENTHESIZED IDEOGRAPH SIX
㈦	7c	3226	12838	PARENTHESIZED IDEOGRAPH SEVEN
㈧	8c	3227	12839	PARENTHESIZED IDEOGRAPH EIGHT
㈨	9c	3228	12840	PARENTHESIZED IDEOGRAPH NINE
ff	ff	FB00	64256	LATIN SMALL LIGATURE FF
fi	fi	FB01	64257	LATIN SMALL LIGATURE FI
fl	fl	FB02	64258	LATIN SMALL LIGATURE FL
ſt	ft	FB05	64261	LATIN SMALL LIGATURE LONG S T
st	st	FB06	64262	LATIN SMALL LIGATURE ST

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�=��*�*vim80/doc/index.txtnu�[���*index.txt*     For Vim version 8.0.  Last change: 2018 Apr 19


		  VIM REFERENCE MANUAL    by Bram Moolenaar

								*index*
This file contains a list of all commands for each mode, with a tag and a
short description.  The lists are sorted on ASCII value.

Tip: When looking for certain functionality, use a search command.  E.g.,
to look for deleting something, use: "/delete".

1. Insert mode				|insert-index|
2. Normal mode				|normal-index|
   2.1. Text objects			|objects|
   2.2. Window commands			|CTRL-W|
   2.3. Square bracket commands		|[|
   2.4. Commands starting with 'g'	|g|
   2.5. Commands starting with 'z'	|z|
3. Visual mode				|visual-index|
4. Command-line editing			|ex-edit-index|
5. EX commands				|ex-cmd-index|

For an overview of options see help.txt |option-list|.
For an overview of built-in functions see |functions|.
For a list of Vim variables see |vim-variable|.
For a complete listing of all help items see |help-tags|.

==============================================================================
1. Insert mode						*insert-index*

tag		char		action in Insert mode	~
-----------------------------------------------------------------------
|i_CTRL-@|	CTRL-@		insert previously inserted text and stop
				insert
|i_CTRL-A|	CTRL-A		insert previously inserted text
		CTRL-B		not used |i_CTRL-B-gone|
|i_CTRL-C|	CTRL-C		quit insert mode, without checking for
				abbreviation, unless 'insertmode' set.
|i_CTRL-D|	CTRL-D		delete one shiftwidth of indent in the current
				line
|i_CTRL-E|	CTRL-E		insert the character which is below the cursor
		CTRL-F		not used (but by default it's in 'cinkeys' to
				re-indent the current line)
|i_CTRL-G_j|	CTRL-G CTRL-J	line down, to column where inserting started
|i_CTRL-G_j|	CTRL-G j	line down, to column where inserting started
|i_CTRL-G_j|	CTRL-G <Down>	line down, to column where inserting started
|i_CTRL-G_k|	CTRL-G CTRL-K	line up, to column where inserting started
|i_CTRL-G_k|	CTRL-G k	line up, to column where inserting started
|i_CTRL-G_k|	CTRL-G <Up>	line up, to column where inserting started
|i_CTRL-G_u|	CTRL-G u	start new undoable edit
|i_CTRL-G_U|	CTRL-G U	don't break undo with next cursor movement
|i_<BS>|	<BS>		delete character before the cursor
|i_digraph|	{char1}<BS>{char2}
				enter digraph (only when 'digraph' option set)
|i_CTRL-H|	CTRL-H		same as <BS>
|i_<Tab>|	<Tab>		insert a <Tab> character
|i_CTRL-I|	CTRL-I		same as <Tab>
|i_<NL>|	<NL>		same as <CR>
|i_CTRL-J|	CTRL-J		same as <CR>
|i_CTRL-K|	CTRL-K {char1} {char2}
				enter digraph
|i_CTRL-L|	CTRL-L		when 'insertmode' set: Leave Insert mode
|i_<CR>|	<CR>		begin new line
|i_CTRL-M|	CTRL-M		same as <CR>
|i_CTRL-N|	CTRL-N		find next match for keyword in front of the
				cursor
|i_CTRL-O|	CTRL-O		execute a single command and return to insert
				mode
|i_CTRL-P|	CTRL-P		find previous match for keyword in front of
				the cursor
|i_CTRL-Q|	CTRL-Q		same as CTRL-V, unless used for terminal
				control flow
|i_CTRL-R|	CTRL-R {0-9a-z"%#*:=}
				insert the contents of a register
|i_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:=}
				insert the contents of a register literally
|i_CTRL-R_CTRL-O| CTRL-R CTRL-O {0-9a-z"%#*:=}
				insert the contents of a register literally
				and don't auto-indent
|i_CTRL-R_CTRL-P| CTRL-R CTRL-P {0-9a-z"%#*:=}
				insert the contents of a register literally
				and fix indent.
		CTRL-S		(used for terminal control flow)
|i_CTRL-T|	CTRL-T		insert one shiftwidth of indent in current
				line
|i_CTRL-U|	CTRL-U		delete all entered characters in the current
				line
|i_CTRL-V|	CTRL-V {char}	insert next non-digit literally
|i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single
				byte.
|i_CTRL-W|	CTRL-W		delete word before the cursor
|i_CTRL-X|	CTRL-X {mode}	enter CTRL-X sub mode, see |i_CTRL-X_index|
|i_CTRL-Y|	CTRL-Y		insert the character which is above the cursor
|i_CTRL-Z|	CTRL-Z		when 'insertmode' set: suspend Vim
|i_<Esc>|	<Esc>		end insert mode (unless 'insertmode' set)
|i_CTRL-[|	CTRL-[		same as <Esc>
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N	go to Normal mode
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G	go to mode specified with 'insertmode'
		CTRL-\ a - z	reserved for extensions
		CTRL-\ others	not used
|i_CTRL-]|	CTRL-]		trigger abbreviation
|i_CTRL-^|	CTRL-^		toggle use of |:lmap| mappings
|i_CTRL-_|	CTRL-_		When 'allowrevins' set: change language
				(Hebrew, Farsi) {only when compiled with
				the |+rightleft| feature}

		<Space> to '~'	not used, except '0' and '^' followed by
				CTRL-D

|i_0_CTRL-D|	0 CTRL-D	delete all indent in the current line
|i_^_CTRL-D|	^ CTRL-D	delete all indent in the current line, restore
				it in the next line

|i_<Del>|	<Del>		delete character under the cursor

		Meta characters (0x80 to 0xff, 128 to 255)
				not used

|i_<Left>|	<Left>		cursor one character left
|i_<S-Left>|	<S-Left>	cursor one word left
|i_<C-Left>|	<C-Left>	cursor one word left
|i_<Right>|	<Right>		cursor one character right
|i_<S-Right>|	<S-Right>	cursor one word right
|i_<C-Right>|	<C-Right>	cursor one word right
|i_<Up>|	<Up>		cursor one line up
|i_<S-Up>|	<S-Up>		same as <PageUp>
|i_<Down>|	<Down>		cursor one line down
|i_<S-Down>|	<S-Down>	same as <PageDown>
|i_<Home>|	<Home>		cursor to start of line
|i_<C-Home>|	<C-Home>	cursor to start of file
|i_<End>|	<End>		cursor past end of line
|i_<C-End>|	<C-End>		cursor past end of file
|i_<PageUp>|	<PageUp>	one screenful backward
|i_<PageDown>|	<PageDown>	one screenful forward
|i_<F1>|	<F1>		same as <Help>
|i_<Help>|	<Help>		stop insert mode and display help window
|i_<Insert>|	<Insert>	toggle Insert/Replace mode
|i_<LeftMouse>|	<LeftMouse>	cursor at mouse click
|i_<ScrollWheelDown>|	<ScrollWheelDown>	move window three lines down
|i_<S-ScrollWheelDown>|	<S-ScrollWheelDown>	move window one page down
|i_<ScrollWheelUp>|	<ScrollWheelUp>		move window three lines up
|i_<S-ScrollWheelUp>|	<S-ScrollWheelUp>	move window one page up
|i_<ScrollWheelLeft>|	<ScrollWheelLeft>	move window six columns left
|i_<S-ScrollWheelLeft>|	<S-ScrollWheelLeft>	move window one page left
|i_<ScrollWheelRight>|	<ScrollWheelRight>	move window six columns right
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight>	move window one page right

commands in CTRL-X submode				*i_CTRL-X_index*

|i_CTRL-X_CTRL-D|	CTRL-X CTRL-D	complete defined identifiers
|i_CTRL-X_CTRL-E|	CTRL-X CTRL-E	scroll up
|i_CTRL-X_CTRL-F|	CTRL-X CTRL-F	complete file names
|i_CTRL-X_CTRL-I|	CTRL-X CTRL-I	complete identifiers
|i_CTRL-X_CTRL-K|	CTRL-X CTRL-K	complete identifiers from dictionary
|i_CTRL-X_CTRL-L|	CTRL-X CTRL-L	complete whole lines
|i_CTRL-X_CTRL-N|	CTRL-X CTRL-N	next completion
|i_CTRL-X_CTRL-O|	CTRL-X CTRL-O	omni completion
|i_CTRL-X_CTRL-P|	CTRL-X CTRL-P	previous completion
|i_CTRL-X_CTRL-S|	CTRL-X CTRL-S	spelling suggestions
|i_CTRL-X_CTRL-T|	CTRL-X CTRL-T	complete identifiers from thesaurus
|i_CTRL-X_CTRL-Y|	CTRL-X CTRL-Y	scroll down
|i_CTRL-X_CTRL-U|	CTRL-X CTRL-U	complete with 'completefunc'
|i_CTRL-X_CTRL-V|	CTRL-X CTRL-V	complete like in : command line
|i_CTRL-X_CTRL-]|	CTRL-X CTRL-]	complete tags
|i_CTRL-X_s|		CTRL-X s	spelling suggestions
{not available when compiled without the |+insert_expand| feature}

==============================================================================
2. Normal mode						*normal-index*

CHAR	 any non-blank character
WORD	 a sequence of non-blank characters
N	 a number entered before the command
{motion} a cursor movement command
Nmove	 the text that is moved over with a {motion}
SECTION	 a section that possibly starts with '}' instead of '{'

note: 1 = cursor movement command; 2 = can be undone/redone

tag		char	      note action in Normal mode	~
------------------------------------------------------------------------------
		CTRL-@		   not used
|CTRL-A|	CTRL-A		2  add N to number at/after cursor
|CTRL-B|	CTRL-B		1  scroll N screens Backwards
|CTRL-C|	CTRL-C		   interrupt current (search) command
|CTRL-D|	CTRL-D		   scroll Down N lines (default: half a screen)
|CTRL-E|	CTRL-E		   scroll N lines upwards (N lines Extra)
|CTRL-F|	CTRL-F		1  scroll N screens Forward
|CTRL-G|	CTRL-G		   display current file name and position
|<BS>|		<BS>		1  same as "h"
|CTRL-H|	CTRL-H		1  same as "h"
|<Tab>|		<Tab>		1  go to N newer entry in jump list
|CTRL-I|	CTRL-I		1  same as <Tab>
|<NL>|		<NL>		1  same as "j"
|CTRL-J|	CTRL-J		1  same as "j"
		CTRL-K		   not used
|CTRL-L|	CTRL-L		   redraw screen
|<CR>|		<CR>		1  cursor to the first CHAR N lines lower
|CTRL-M|	CTRL-M		1  same as <CR>
|CTRL-N|	CTRL-N		1  same as "j"
|CTRL-O|	CTRL-O		1  go to N older entry in jump list
|CTRL-P|	CTRL-P		1  same as "k"
		CTRL-Q		   (used for terminal control flow)
|CTRL-R|	CTRL-R		2  redo changes which were undone with 'u'
		CTRL-S		   (used for terminal control flow)
|CTRL-T|	CTRL-T		   jump to N older Tag in tag list
|CTRL-U|	CTRL-U		   scroll N lines Upwards (default: half a
				   screen)
|CTRL-V|	CTRL-V		   start blockwise Visual mode
|CTRL-W|	CTRL-W {char}	   window commands, see |CTRL-W|
|CTRL-X|	CTRL-X		2  subtract N from number at/after cursor
|CTRL-Y|	CTRL-Y		   scroll N lines downwards
|CTRL-Z|	CTRL-Z		   suspend program (or start new shell)
		CTRL-[ <Esc>	   not used
|CTRL-\_CTRL-N|	CTRL-\ CTRL-N	   go to Normal mode (no-op)
|CTRL-\_CTRL-G|	CTRL-\ CTRL-G	   go to mode specified with 'insertmode'
		CTRL-\ a - z	   reserved for extensions
		CTRL-\ others      not used
|CTRL-]|	CTRL-]		   :ta to ident under cursor
|CTRL-^|	CTRL-^		   edit Nth alternate file (equivalent to
				   ":e #N")
		CTRL-_		   not used

|<Space>|	<Space>		1  same as "l"
|!|		!{motion}{filter}
				2  filter Nmove text through the {filter}
				   command
|!!|		!!{filter}	2  filter N lines through the {filter} command
|quote|		"{a-zA-Z0-9.%#:-"}  use register {a-zA-Z0-9.%#:-"} for next
				   delete, yank or put (uppercase to append)
				   ({.%#:} only work with put)
|#|		#		1  search backward for the Nth occurrence of
				   the ident under the cursor
|$|		$		1  cursor to the end of Nth next line
|%|		%		1  find the next (curly/square) bracket on
				   this line and go to its match, or go to
				   matching comment bracket, or go to matching
				   preprocessor directive.
|N%|		{count}%	1  go to N percentage in the file
|&|		&		2  repeat last :s
|'|		'{a-zA-Z0-9}	1  cursor to the first CHAR on the line with
				   mark {a-zA-Z0-9}
|''|		''		1  cursor to the first CHAR of the line where
				   the cursor was before the latest jump.
|'(|		'(		1  cursor to the first CHAR on the line of the
				   start of the current sentence
|')|		')		1  cursor to the first CHAR on the line of the
				   end of the current sentence
|'<|		'<		1  cursor to the first CHAR of the line where
				   highlighted area starts/started in the
				   current buffer.
|'>|		'>		1  cursor to the first CHAR of the line where
				   highlighted area ends/ended in the current
				   buffer.
|'[|		'[		1  cursor to the first CHAR on the line of the
				   start of last operated text or start of put
				   text
|']|		']		1  cursor to the first CHAR on the line of the
				   end of last operated text or end of put
				   text
|'{|		'{		1  cursor to the first CHAR on the line of the
				   start of the current paragraph
|'}|		'}		1  cursor to the first CHAR on the line of the
				   end of the current paragraph
|(|		(		1  cursor N sentences backward
|)|		)		1  cursor N sentences forward
|star|		*		1  search forward for the Nth occurrence of
				   the ident under the cursor
|+|		+		1  same as <CR>
|,|		,		1  repeat latest f, t, F or T in opposite
				   direction N times
|-|		-		1  cursor to the first CHAR N lines higher
|.|		.		2  repeat last change with count replaced with
				   N
|/|		/{pattern}<CR>	1  search forward for the Nth occurrence of
				   {pattern}
|/<CR>|		/<CR>		1  search forward for {pattern} of last search
|count|		0		1  cursor to the first char of the line
|count|		1		   prepend to command to give a count
|count|		2			"
|count|		3			"
|count|		4			"
|count|		5			"
|count|		6			"
|count|		7			"
|count|		8			"
|count|		9			"
|:|		:		1  start entering an Ex command
|N:|		{count}:	   start entering an Ex command with range
				   from current line to N-1 lines down
|;|		;		1  repeat latest f, t, F or T N times
|<|		<{motion}	2  shift Nmove lines one 'shiftwidth'
				   leftwards
|<<|		<<		2  shift N lines one 'shiftwidth' leftwards
|=|		={motion}	2  filter Nmove lines through "indent"
|==|		==		2  filter N lines through "indent"
|>|		>{motion}	2  shift Nmove lines one 'shiftwidth'
				   rightwards
|>>|		>>		2  shift N lines one 'shiftwidth' rightwards
|?|		?{pattern}<CR>	1  search backward for the Nth previous
				   occurrence of {pattern}
|?<CR>|		?<CR>		1  search backward for {pattern} of last search
|@|		@{a-z}		2  execute the contents of register {a-z}
				   N times
|@:|		@:		   repeat the previous ":" command N times
|@@|		@@		2  repeat the previous @{a-z} N times
|A|		A		2  append text after the end of the line N times
|B|		B		1  cursor N WORDS backward
|C|		["x]C		2  change from the cursor position to the end
				   of the line, and N-1 more lines [into
				   register x]; synonym for "c$"
|D|		["x]D		2  delete the characters under the cursor
				   until the end of the line and N-1 more
				   lines [into register x]; synonym for "d$"
|E|		E		1  cursor forward to the end of WORD N
|F|		F{char}		1  cursor to the Nth occurrence of {char} to
				   the left
|G|		G		1  cursor to line N, default last line
|H|		H		1  cursor to line N from top of screen
|I|		I		2  insert text before the first CHAR on the
				   line N times
|J|		J		2  Join N lines; default is 2
|K|		K		   lookup Keyword under the cursor with
				   'keywordprg'
|L|		L		1  cursor to line N from bottom of screen
|M|		M		1  cursor to middle line of screen
|N|		N		1  repeat the latest '/' or '?' N times in
				   opposite direction
|O|		O		2  begin a new line above the cursor and
				   insert text, repeat N times
|P|		["x]P		2  put the text [from register x] before the
				   cursor N times
|Q|		Q		   switch to "Ex" mode
|R|		R		2  enter replace mode: overtype existing
				   characters, repeat the entered text N-1
				   times
|S|		["x]S		2  delete N lines [into register x] and start
				   insert; synonym for "cc".
|T|		T{char}		1  cursor till after Nth occurrence of {char}
				   to the left
|U|		U		2  undo all latest changes on one line
|V|		V		   start linewise Visual mode
|W|		W		1  cursor N WORDS forward
|X|		["x]X		2  delete N characters before the cursor [into
				   register x]
|Y|		["x]Y		   yank N lines [into register x]; synonym for
				   "yy"
|ZZ|		ZZ		   store current file if modified, and exit
|ZQ|		ZQ		   exit current file always
|[|		[{char}		   square bracket command (see |[| below)
		\		   not used
|]|		]{char}		   square bracket command (see |]| below)
|^|		^		1  cursor to the first CHAR of the line
|_|		_		1  cursor to the first CHAR N - 1 lines lower
|`|		`{a-zA-Z0-9}	1  cursor to the mark {a-zA-Z0-9}
|`(|		`(		1  cursor to the start of the current sentence
|`)|		`)		1  cursor to the end of the current sentence
|`<|		`<		1  cursor to the start of the highlighted area
|`>|		`>		1  cursor to the end of the highlighted area
|`[|		`[		1  cursor to the start of last operated text
				   or start of putted text
|`]|		`]		1  cursor to the end of last operated text or
				   end of putted text
|``|		``		1  cursor to the position before latest jump
|`{|		`{		1  cursor to the start of the current paragraph
|`}|		`}		1  cursor to the end of the current paragraph
|a|		a		2  append text after the cursor N times
|b|		b		1  cursor N words backward
|c|		["x]c{motion}	2  delete Nmove text [into register x] and
				   start insert
|cc|		["x]cc		2  delete N lines [into register x] and start
				   insert
|d|		["x]d{motion}	2  delete Nmove text [into register x]
|dd|		["x]dd		2  delete N lines [into register x]
|do|		do		2  same as ":diffget"
|dp|		dp		2  same as ":diffput"
|e|		e		1  cursor forward to the end of word N
|f|		f{char}		1  cursor to Nth occurrence of {char} to the
				   right
|g|		g{char}		   extended commands, see |g| below
|h|		h		1  cursor N chars to the left
|i|		i		2  insert text before the cursor N times
|j|		j		1  cursor N lines downward
|k|		k		1  cursor N lines upward
|l|		l		1  cursor N chars to the right
|m|		m{A-Za-z}	   set mark {A-Za-z} at cursor position
|n|		n		1  repeat the latest '/' or '?' N times
|o|		o		2  begin a new line below the cursor and
				   insert text, repeat N times
|p|		["x]p		2  put the text [from register x] after the
				   cursor N times
|q|		q{0-9a-zA-Z"}	   record typed characters into named register
				   {0-9a-zA-Z"} (uppercase to append)
|q|		q		   (while recording) stops recording
|q:|		q:		   edit : command-line in command-line window
|q/|		q/		   edit / command-line in command-line window
|q?|		q?		   edit ? command-line in command-line window
|r|		r{char}		2  replace N chars with {char}
|s|		["x]s		2  (substitute) delete N characters [into
				   register x] and start insert
|t|		t{char}		1  cursor till before Nth occurrence of {char}
				   to the right
|u|		u		2  undo changes
|v|		v		   start characterwise Visual mode
|w|		w		1  cursor N words forward
|x|		["x]x		2  delete N characters under and after the
				   cursor [into register x]
|y|		["x]y{motion}	   yank Nmove text [into register x]
|yy|		["x]yy		   yank N lines [into register x]
|z|		z{char}		   commands starting with 'z', see |z| below
|{|		{		1  cursor N paragraphs backward
|bar|		|		1  cursor to column N
|}|		}		1  cursor N paragraphs forward
|~|		~		2  'tildeop' off: switch case of N characters
				   under cursor and move the cursor N
				   characters to the right
|~|		~{motion}	   'tildeop' on: switch case of Nmove text
|<C-End>|	<C-End>		1  same as "G"
|<C-Home>|	<C-Home>	1  same as "gg"
|<C-Left>|	<C-Left>	1  same as "b"
|<C-LeftMouse>|	<C-LeftMouse>	   ":ta" to the keyword at the mouse click
|<C-Right>|	<C-Right>	1  same as "w"
|<C-RightMouse>| <C-RightMouse>	   same as "CTRL-T"
|<Del>|		["x]<Del>	2  same as "x"
|N<Del>|	{count}<Del>	   remove the last digit from {count}
|<Down>|	<Down>		1  same as "j"
|<End>|		<End>		1  same as "$"
|<F1>|		<F1>		   same as <Help>
|<Help>|	<Help>		   open a help window
|<Home>|	<Home>		1  same as "0"
|<Insert>|	<Insert>	2  same as "i"
|<Left>|	<Left>		1  same as "h"
|<LeftMouse>|	<LeftMouse>	1  move cursor to the mouse click position
|<MiddleMouse>|	<MiddleMouse>	2  same as "gP" at the mouse click position
|<PageDown>|	<PageDown>	   same as CTRL-F
|<PageUp>|	<PageUp>	   same as CTRL-B
|<Right>|	<Right>		1  same as "l"
|<RightMouse>|	<RightMouse>	   start Visual mode, move cursor to the mouse
				   click position
|<S-Down>|	<S-Down>	1  same as CTRL-F
|<S-Left>|	<S-Left>	1  same as "b"
|<S-LeftMouse>|	<S-LeftMouse>	   same as "*" at the mouse click position
|<S-Right>|	<S-Right>	1  same as "w"
|<S-RightMouse>| <S-RightMouse>	   same as "#" at the mouse click position
|<S-Up>|	<S-Up>		1  same as CTRL-B
|<Undo>|	<Undo>		2  same as "u"
|<Up>|		<Up>		1  same as "k"
|<ScrollWheelDown>|	<ScrollWheelDown>	move window three lines down
|<S-ScrollWheelDown>|	<S-ScrollWheelDown>	move window one page down
|<ScrollWheelUp>|	<ScrollWheelUp>		move window three lines up
|<S-ScrollWheelUp>|	<S-ScrollWheelUp>	move window one page up
|<ScrollWheelLeft>|	<ScrollWheelLeft>	move window six columns left
|<S-ScrollWheelLeft>|	<S-ScrollWheelLeft>	move window one page left
|<ScrollWheelRight>|	<ScrollWheelRight>	move window six columns right
|<S-ScrollWheelRight>|	<S-ScrollWheelRight>	move window one page right

==============================================================================
2.1 Text objects						*objects*

These can be used after an operator or in Visual mode to select an object.

tag		command		   action in op-pending and Visual mode	~
------------------------------------------------------------------------------
|v_aquote|	a"		   double quoted string
|v_a'|		a'		   single quoted string
|v_a(|		a(		   same as ab
|v_a)|		a)		   same as ab
|v_a<|		a<		   "a <>" from '<' to the matching '>'
|v_a>|		a>		   same as a<
|v_aB|		aB		   "a Block" from "[{" to "]}" (with brackets)
|v_aW|		aW		   "a WORD" (with white space)
|v_a[|		a[		   "a []" from '[' to the matching ']'
|v_a]|		a]		   same as a[
|v_a`|		a`		   string in backticks
|v_ab|		ab		   "a block" from "[(" to "])" (with braces)
|v_ap|		ap		   "a paragraph" (with white space)
|v_as|		as		   "a sentence" (with white space)
|v_at|		at		   "a tag block" (with white space)
|v_aw|		aw		   "a word" (with white space)
|v_a{|		a{		   same as aB
|v_a}|		a}		   same as aB
|v_iquote|	i"		   double quoted string without the quotes
|v_i'|		i'		   single quoted string without the quotes
|v_i(|		i(		   same as ib
|v_i)|		i)		   same as ib
|v_i<|		i<		   "inner <>" from '<' to the matching '>'
|v_i>|		i>		   same as i<
|v_iB|		iB		   "inner Block" from "[{" and "]}"
|v_iW|		iW		   "inner WORD"
|v_i[|		i[		   "inner []" from '[' to the matching ']'
|v_i]|		i]		   same as i[
|v_i`|		i`		   string in backticks without the backticks
|v_ib|		ib		   "inner block" from "[(" to "])"
|v_ip|		ip		   "inner paragraph"
|v_is|		is		   "inner sentence"
|v_it|		it		   "inner tag block"
|v_iw|		iw		   "inner word"
|v_i{|		i{		   same as iB
|v_i}|		i}		   same as iB

==============================================================================
2.2 Window commands						*CTRL-W*

tag		command		   action in Normal mode	~
------------------------------------------------------------------------------
|CTRL-W_CTRL-B|	CTRL-W CTRL-B	   same as "CTRL-W b"
|CTRL-W_CTRL-C|	CTRL-W CTRL-C	   same as "CTRL-W c"
|CTRL-W_CTRL-D|	CTRL-W CTRL-D	   same as "CTRL-W d"
|CTRL-W_CTRL-F|	CTRL-W CTRL-F	   same as "CTRL-W f"
		CTRL-W CTRL-G	   same as "CTRL-W g .."
|CTRL-W_CTRL-H|	CTRL-W CTRL-H	   same as "CTRL-W h"
|CTRL-W_CTRL-I|	CTRL-W CTRL-I	   same as "CTRL-W i"
|CTRL-W_CTRL-J|	CTRL-W CTRL-J	   same as "CTRL-W j"
|CTRL-W_CTRL-K|	CTRL-W CTRL-K	   same as "CTRL-W k"
|CTRL-W_CTRL-L|	CTRL-W CTRL-L	   same as "CTRL-W l"
|CTRL-W_CTRL-N|	CTRL-W CTRL-N	   same as "CTRL-W n"
|CTRL-W_CTRL-O|	CTRL-W CTRL-O	   same as "CTRL-W o"
|CTRL-W_CTRL-P|	CTRL-W CTRL-P	   same as "CTRL-W p"
|CTRL-W_CTRL-Q|	CTRL-W CTRL-Q	   same as "CTRL-W q"
|CTRL-W_CTRL-R|	CTRL-W CTRL-R	   same as "CTRL-W r"
|CTRL-W_CTRL-S|	CTRL-W CTRL-S	   same as "CTRL-W s"
|CTRL-W_CTRL-T|	CTRL-W CTRL-T	   same as "CTRL-W t"
|CTRL-W_CTRL-V|	CTRL-W CTRL-V	   same as "CTRL-W v"
|CTRL-W_CTRL-W|	CTRL-W CTRL-W	   same as "CTRL-W w"
|CTRL-W_CTRL-X|	CTRL-W CTRL-X	   same as "CTRL-W x"
|CTRL-W_CTRL-Z|	CTRL-W CTRL-Z	   same as "CTRL-W z"
|CTRL-W_CTRL-]|	CTRL-W CTRL-]	   same as "CTRL-W ]"
|CTRL-W_CTRL-^|	CTRL-W CTRL-^	   same as "CTRL-W ^"
|CTRL-W_CTRL-_|	CTRL-W CTRL-_	   same as "CTRL-W _"
|CTRL-W_quote|	CTRL-W "	   terminal window: paste register
|CTRL-W_+|	CTRL-W +	   increase current window height N lines
|CTRL-W_-|	CTRL-W -	   decrease current window height N lines
|CTRL-W_.|	CTRL-W .	   terminal window: type CTRL-W
|CTRL-W_:|	CTRL-W :	   same as |:|, edit a command line
|CTRL-W_<|	CTRL-W <	   decrease current window width N columns
|CTRL-W_=|	CTRL-W =	   make all windows the same height & width
|CTRL-W_>|	CTRL-W >	   increase current window width N columns
|CTRL-W_H|	CTRL-W H	   move current window to the far left
|CTRL-W_J|	CTRL-W J	   move current window to the very bottom
|CTRL-W_K|	CTRL-W K	   move current window to the very top
|CTRL-W_L|	CTRL-W L	   move current window to the far right
|CTRL-W_N|	CTRL-W N	   terminal window: go to Terminal Normal mode
|CTRL-W_P|	CTRL-W P	   go to preview window
|CTRL-W_R|	CTRL-W R	   rotate windows upwards N times
|CTRL-W_S|	CTRL-W S	   same as "CTRL-W s"
|CTRL-W_T|	CTRL-W T	   move current window to a new tab page
|CTRL-W_W|	CTRL-W W	   go to N previous window (wrap around)
|CTRL-W_]|	CTRL-W ]	   split window and jump to tag under cursor
|CTRL-W_^|	CTRL-W ^	   split current window and edit alternate
				   file N
|CTRL-W__|	CTRL-W _	   set current window height to N (default:
				   very high)
|CTRL-W_b|	CTRL-W b	   go to bottom window
|CTRL-W_c|	CTRL-W c	   close current window (like |:close|)
|CTRL-W_d|	CTRL-W d	   split window and jump to definition under
				   the cursor
|CTRL-W_f|	CTRL-W f	   split window and edit file name under the
				   cursor
|CTRL-W_F|	CTRL-W F	   split window and edit file name under the
				   cursor and jump to the line number
				   following the file name.
|CTRL-W_g_CTRL-]| CTRL-W g CTRL-]  split window and do |:tjump| to tag under
				   cursor
|CTRL-W_g]|	CTRL-W g ]	   split window and do |:tselect| for tag
				   under cursor
|CTRL-W_g}|	CTRL-W g }	   do a |:ptjump| to the tag under the cursor
|CTRL-W_gf|	CTRL-W g f	   edit file name under the cursor in a new
				   tab page
|CTRL-W_gF|	CTRL-W g F	   edit file name under the cursor in a new
				   tab page and jump to the line number
				   following the file name.
|CTRL-W_h|	CTRL-W h	   go to Nth left window (stop at first window)
|CTRL-W_i|	CTRL-W i	   split window and jump to declaration of
				   identifier under the cursor
|CTRL-W_j|	CTRL-W j	   go N windows down (stop at last window)
|CTRL-W_k|	CTRL-W k	   go N windows up (stop at first window)
|CTRL-W_l|	CTRL-W l	   go to Nth right window (stop at last window)
|CTRL-W_n|	CTRL-W n	   open new window, N lines high
|CTRL-W_o|	CTRL-W o	   close all but current window (like |:only|)
|CTRL-W_p|	CTRL-W p	   go to previous (last accessed) window
|CTRL-W_q|	CTRL-W q	   quit current window (like |:quit|)
|CTRL-W_r|	CTRL-W r	   rotate windows downwards N times
|CTRL-W_s|	CTRL-W s	   split current window in two parts, new
				   window N lines high
|CTRL-W_t|	CTRL-W t	   go to top window
|CTRL-W_v|	CTRL-W v	   split current window vertically, new window
				   N columns wide
|CTRL-W_w|	CTRL-W w	   go to N next window (wrap around)
|CTRL-W_x|	CTRL-W x	   exchange current window with window N
				   (default: next window)
|CTRL-W_z|	CTRL-W z	   close preview window
|CTRL-W_bar|	CTRL-W |	   set window width to N columns
|CTRL-W_}|	CTRL-W }	   show tag under cursor in preview window
|CTRL-W_<Down>|	CTRL-W <Down>	   same as "CTRL-W j"
|CTRL-W_<Up>|	CTRL-W <Up>	   same as "CTRL-W k"
|CTRL-W_<Left>|	CTRL-W <Left>	   same as "CTRL-W h"
|CTRL-W_<Right>| CTRL-W <Right>	   same as "CTRL-W l"

==============================================================================
2.3 Square bracket commands					*[* *]*

tag		char	      note action in Normal mode	~
------------------------------------------------------------------------------
|[_CTRL-D|	[ CTRL-D	   jump to first #define found in current and
				   included files matching the word under the
				   cursor, start searching at beginning of
				   current file
|[_CTRL-I|	[ CTRL-I	   jump to first line in current and included
				   files that contains the word under the
				   cursor, start searching at beginning of
				   current file
|[#|		[#		1  cursor to N previous unmatched #if, #else
				   or #ifdef
|['|		['		1  cursor to previous lowercase mark, on first
				   non-blank
|[(|		[(		1  cursor N times back to unmatched '('
|[star|		[*		1  same as "[/"
|[`|		[`		1  cursor to previous lowercase mark
|[/|		[/		1  cursor to N previous start of a C comment
|[D|		[D		   list all defines found in current and
				   included files matching the word under the
				   cursor, start searching at beginning of
				   current file
|[I|		[I		   list all lines found in current and
				   included files that contain the word under
				   the cursor, start searching at beginning of
				   current file
|[P|		[P		2  same as "[p"
|[[|		[[		1  cursor N sections backward
|[]|		[]		1  cursor N SECTIONS backward
|[c|		[c		1  cursor N times backwards to start of change
|[d|		[d		   show first #define found in current and
				   included files matching the word under the
				   cursor, start searching at beginning of
				   current file
|[f|		[f		   same as "gf"
|[i|		[i		   show first line found in current and
				   included files that contains the word under
				   the cursor, start searching at beginning of
				   current file
|[m|		[m		1  cursor N times back to start of member
				   function
|[p|		[p		2  like "P", but adjust indent to current line
|[s|		[s		1  move to the previous misspelled word
|[z|		[z		1  move to start of open fold
|[{|		[{		1  cursor N times back to unmatched '{'
|[<MiddleMouse>| [<MiddleMouse>	2  same as "[p"

|]_CTRL-D|	] CTRL-D	   jump to first #define found in current and
				   included files matching the word under the
				   cursor, start searching at cursor position
|]_CTRL-I|	] CTRL-I	   jump to first line in current and included
				   files that contains the word under the
				   cursor, start searching at cursor position
|]#|		]#		1  cursor to N next unmatched #endif or #else
|]'|		]'		1  cursor to next lowercase mark, on first
				   non-blank
|])|		])		1  cursor N times forward to unmatched ')'
|]star|		]*		1  same as "]/"
|]`|		]`		1  cursor to next lowercase mark
|]/|		]/		1  cursor to N next end of a C comment
|]D|		]D		   list all #defines found in current and
				   included files matching the word under the
				   cursor, start searching at cursor position
|]I|		]I		   list all lines found in current and
				   included files that contain the word under
				   the cursor, start searching at cursor
				   position
|]P|		]P		2  same as "[p"
|][|		][		1  cursor N SECTIONS forward
|]]|		]]		1  cursor N sections forward
|]c|		]c		1  cursor N times forward to start of change
|]d|		]d		   show first #define found in current and
				   included files matching the word under the
				   cursor, start searching at cursor position
|]f|		]f		   same as "gf"
|]i|		]i		   show first line found in current and
				   included files that contains the word under
				   the cursor, start searching at cursor
				   position
|]m|		]m		1  cursor N times forward to end of member
				   function
|]p|		]p		2  like "p", but adjust indent to current line
|]s|		]s		1  move to next misspelled word
|]z|		]z		1  move to end of open fold
|]}|		]}		1  cursor N times forward to unmatched '}'
|]<MiddleMouse>| ]<MiddleMouse>	2  same as "]p"

==============================================================================
2.4 Commands starting with 'g'						*g*

tag		char	      note action in Normal mode	~
------------------------------------------------------------------------------
|g_CTRL-A|	g CTRL-A	   only when compiled with MEM_PROFILE
				   defined: dump a memory profile
|g_CTRL-G|	g CTRL-G	   show information about current cursor
				   position
|g_CTRL-H|	g CTRL-H	   start Select block mode
|g_CTRL-]|	g CTRL-]	   |:tjump| to the tag under the cursor
|g#|		g#		1  like "#", but without using "\<" and "\>"
|g$|		g$		1  when 'wrap' off go to rightmost character of
				   the current line that is on the screen;
				   when 'wrap' on go to the rightmost character
				   of the current screen line
|g&|		g&		2  repeat last ":s" on all lines
|g'|		g'{mark}	1  like |'| but without changing the jumplist
|g`|		g`{mark}	1  like |`| but without changing the jumplist
|gstar|		g*		1  like "*", but without using "\<" and "\>"
|g+|		g+		   go to newer text state N times
|g,|		g,		1  go to N newer position in change list
|g-|		g-		   go to older text state N times
|g0|		g0		1  when 'wrap' off go to leftmost character of
				   the current line that is on the screen;
				   when 'wrap' on go to the leftmost character
				   of the current screen line
|g8|		g8		   print hex value of bytes used in UTF-8
				   character under the cursor
|g;|		g;		1  go to N older position in change list
|g<|		g<		   display previous command output
|g?|		g?		2  Rot13 encoding operator
|g?g?|		g??		2  Rot13 encode current line
|g?g?|		g?g?		2  Rot13 encode current line
|gD|		gD		1  go to definition of word under the cursor
				   in current file
|gE|		gE		1  go backwards to the end of the previous
				   WORD
|gH|		gH		   start Select line mode
|gI|		gI		2  like "I", but always start in column 1
|gJ|		gJ		2  join lines without inserting space
|gN|		gN	      1,2  find the previous match with the last used
				   search pattern and Visually select it
|gP|		["x]gP		2  put the text [from register x] before the
				   cursor N times, leave the cursor after it
|gQ|		gQ		    switch to "Ex" mode with Vim editing
|gR|		gR		2  enter Virtual Replace mode
|gT|		gT		   go to the previous tab page
|gU|		gU{motion}	2  make Nmove text uppercase
|gV|		gV		   don't reselect the previous Visual area
				   when executing a mapping or menu in Select
				   mode
|g]|		g]		   :tselect on the tag under the cursor
|g^|		g^		1  when 'wrap' off go to leftmost non-white
				   character of the current line that is on
				   the screen; when 'wrap' on go to the
				   leftmost non-white character of the current
				   screen line
|g_|		g_		1  cursor to the last CHAR N - 1 lines lower
|ga|		ga		   print ascii value of character under the
				   cursor
|gd|		gd		1  go to definition of word under the cursor
				   in current function
|ge|		ge		1  go backwards to the end of the previous
				   word
|gf|		gf		   start editing the file whose name is under
				   the cursor
|gF|		gF		   start editing the file whose name is under
				   the cursor and jump to the line number
				   following the filename.
|gg|		gg		1  cursor to line N, default first line
|gh|		gh		   start Select mode
|gi|		gi		2  like "i", but first move to the |'^| mark
|gj|		gj		1  like "j", but when 'wrap' on go N screen
				   lines down
|gk|		gk		1  like "k", but when 'wrap' on go N screen
				   lines up
|gn|		gn	      1,2  find the next match with the last used
				   search pattern and Visually select it
|gm|		gm		1  go to character at middle of the screenline
|go|		go		1  cursor to byte N in the buffer
|gp|		["x]gp		2  put the text [from register x] after the
				   cursor N times, leave the cursor after it
|gq|		gq{motion}	2  format Nmove text
|gr|		gr{char}	2  virtual replace N chars with {char}
|gs|		gs		   go to sleep for N seconds (default 1)
|gt|		gt		   go to the next tab page
|gu|		gu{motion}	2  make Nmove text lowercase
|gv|		gv		   reselect the previous Visual area
|gw|		gw{motion}	2  format Nmove text and keep cursor
|netrw-gx|	gx		   execute application for file name under the
				   cursor (only with |netrw| plugin)
|g@|		g@{motion}	   call 'operatorfunc'
|g~|		g~{motion}	2  swap case for Nmove text
|g<Down>|	g<Down>		1  same as "gj"
|g<End>|	g<End>		1  same as "g$"
|g<Home>|	g<Home>		1  same as "g0"
|g<LeftMouse>|	g<LeftMouse>	   same as <C-LeftMouse>
		g<MiddleMouse>	   same as <C-MiddleMouse>
|g<RightMouse>|	g<RightMouse>	   same as <C-RightMouse>
|g<Up>|		g<Up>		1  same as "gk"

==============================================================================
2.5 Commands starting with 'z'						*z*

tag		char	      note action in Normal mode	~
------------------------------------------------------------------------------
|z<CR>|		z<CR>		   redraw, cursor line to top of window,
				   cursor on first non-blank
|zN<CR>|	z{height}<CR>	   redraw, make window {height} lines high
|z+|		z+		   cursor on line N (default line below
				   window), otherwise like "z<CR>"
|z-|		z-		   redraw, cursor line at bottom of window,
				   cursor on first non-blank
|z.|		z.		   redraw, cursor line to center of window,
				   cursor on first non-blank
|z=|		z=		   give spelling suggestions
|zA|		zA		   open a closed fold or close an open fold
				   recursively
|zC|		zC		   close folds recursively
|zD|		zD		   delete folds recursively
|zE|		zE		   eliminate all folds
|zF|		zF		   create a fold for N lines
|zG|		zG		   mark word as good spelled word
|zH|		zH		   when 'wrap' off scroll half a screenwidth
				   to the right
|zL|		zL		   when 'wrap' off scroll half a screenwidth
				   to the left
|zM|		zM		   set 'foldlevel' to zero
|zN|		zN		   set 'foldenable'
|zO|		zO		   open folds recursively
|zR|		zR		   set 'foldlevel' to the deepest fold
|zW|		zW		   mark word as wrong (bad) spelled word
|zX|		zX		   re-apply 'foldlevel'
|z^|		z^		   cursor on line N (default line above
				   window), otherwise like "z-"
|za|		za		   open a closed fold, close an open fold
|zb|		zb		   redraw, cursor line at bottom of window
|zc|		zc		   close a fold
|zd|		zd		   delete a fold
|ze|		ze		   when 'wrap' off scroll horizontally to
				   position the cursor at the end (right side)
				   of the screen
|zf|		zf{motion}	   create a fold for Nmove text
|zg|		zg		   mark word as good spelled word
|zh|		zh		   when 'wrap' off scroll screen N characters
				   to the right
|zi|		zi		   toggle 'foldenable'
|zj|		zj		1  move to the start of the next fold
|zk|		zk		1  move to the end of the previous fold
|zl|		zl		   when 'wrap' off scroll screen N characters
				   to the left
|zm|		zm		   subtract one from 'foldlevel'
|zn|		zn		   reset 'foldenable'
|zo|		zo		   open fold
|zr|		zr		   add one to 'foldlevel'
|zs|		zs		   when 'wrap' off scroll horizontally to
				   position the cursor at the start (left
				   side) of the screen
|zt|		zt		   redraw, cursor line at top of window
|zv|		zv		   open enough folds to view the cursor line
|zw|		zw		   mark word as wrong (bad) spelled word
|zx|		zx		   re-apply 'foldlevel' and do "zv"
|zz|		zz		   redraw, cursor line at center of window
|z<Left>|	z<Left>		   same as "zh"
|z<Right>|	z<Right>	   same as "zl"

==============================================================================
3. Visual mode						*visual-index*

Most commands in Visual mode are the same as in Normal mode.  The ones listed
here are those that are different.

tag		command	      note action in Visual mode	~
------------------------------------------------------------------------------
|v_CTRL-\_CTRL-N| CTRL-\ CTRL-N	   stop Visual mode
|v_CTRL-\_CTRL-G| CTRL-\ CTRL-G	   go to mode specified with 'insertmode'
|v_CTRL-A|	CTRL-A		2  add N to number in highlighted text
|v_CTRL-C|	CTRL-C		   stop Visual mode
|v_CTRL-G|	CTRL-G		   toggle between Visual mode and Select mode
|v_<BS>|	<BS>		2  Select mode: delete highlighted area
|v_CTRL-H|	CTRL-H		2  same as <BS>
|v_CTRL-O|	CTRL-O		   switch from Select to Visual mode for one
				   command
|v_CTRL-V|	CTRL-V		   make Visual mode blockwise or stop Visual
				   mode
|v_CTRL-X|	CTRL-X		2  subtract N from number in highlighted text
|v_<Esc>|	<Esc>		   stop Visual mode
|v_CTRL-]|	CTRL-]		   jump to highlighted tag
|v_!|		!{filter}	2  filter the highlighted lines through the
				   external command {filter}
|v_:|		:		   start a command-line with the highlighted
				   lines as a range
|v_<|		<		2  shift the highlighted lines one
				   'shiftwidth' left
|v_=|		=		2  filter the highlighted lines through the
				   external program given with the 'equalprg'
				   option
|v_>|		>		2  shift the highlighted lines one
				   'shiftwidth' right
|v_b_A|		A		2  block mode: append same text in all lines,
				   after the highlighted area
|v_C|		C		2  delete the highlighted lines and start
				   insert
|v_D|		D		2  delete the highlighted lines
|v_b_I|		I		2  block mode: insert same text in all lines,
				   before the highlighted area
|v_J|		J		2  join the highlighted lines
|v_K|		K		   run 'keywordprg' on the highlighted area
|v_O|		O		   Move horizontally to other corner of area.
		Q		   does not start Ex mode
|v_R|		R		2  delete the highlighted lines and start
				   insert
|v_S|		S		2  delete the highlighted lines and start
				   insert
|v_U|		U		2  make highlighted area uppercase
|v_V|		V		   make Visual mode linewise or stop Visual
				   mode
|v_X|		X		2  delete the highlighted lines
|v_Y|		Y		   yank the highlighted lines
|v_aquote|	a"		   extend highlighted area with a double
				   quoted string
|v_a'|		a'		   extend highlighted area with a single
				   quoted string
|v_a(|		a(		   same as ab
|v_a)|		a)		   same as ab
|v_a<|		a<		   extend highlighted area with a <> block
|v_a>|		a>		   same as a<
|v_aB|		aB		   extend highlighted area with a {} block
|v_aW|		aW		   extend highlighted area with "a WORD"
|v_a[|		a[		   extend highlighted area with a [] block
|v_a]|		a]		   same as a[
|v_a`|		a`		   extend highlighted area with a backtick
				   quoted string
|v_ab|		ab		   extend highlighted area with a () block
|v_ap|		ap		   extend highlighted area with a paragraph
|v_as|		as		   extend highlighted area with a sentence
|v_at|		at		   extend highlighted area with a tag block
|v_aw|		aw		   extend highlighted area with "a word"
|v_a{|		a{		   same as aB
|v_a}|		a}		   same as aB
|v_c|		c		2  delete highlighted area and start insert
|v_d|		d		2  delete highlighted area
|v_g_CTRL-A|	g CTRL-A	2  add N to number in highlighted text
|v_g_CTRL-X|	g CTRL-X	2  subtract N from number in highlighted text
|v_gJ|		gJ		2  join the highlighted lines without
				   inserting spaces
|v_gq|		gq		2  format the highlighted lines
|v_gv|		gv		   exchange current and previous highlighted
				   area
|v_iquote|	i"		   extend highlighted area with a double
				   quoted string (without quotes)
|v_i'|		i'		   extend highlighted area with a single
				   quoted string (without quotes)
|v_i(|		i(		   same as ib
|v_i)|		i)		   same as ib
|v_i<|		i<		   extend highlighted area with inner <> block
|v_i>|		i>		   same as i<
|v_iB|		iB		   extend highlighted area with inner {} block
|v_iW|		iW		   extend highlighted area with "inner WORD"
|v_i[|		i[		   extend highlighted area with inner [] block
|v_i]|		i]		   same as i[
|v_i`|		i`		   extend highlighted area with a backtick
				   quoted string (without the backticks)
|v_ib|		ib		   extend highlighted area with inner () block
|v_ip|		ip		   extend highlighted area with inner paragraph
|v_is|		is		   extend highlighted area with inner sentence
|v_it|		it		   extend highlighted area with inner tag block
|v_iw|		iw		   extend highlighted area with "inner word"
|v_i{|		i{		   same as iB
|v_i}|		i}		   same as iB
|v_o|		o		   move cursor to other corner of area
|v_r|		r		2  replace highlighted area with a character
|v_s|		s		2  delete highlighted area and start insert
|v_u|		u		2  make highlighted area lowercase
|v_v|		v		   make Visual mode characterwise or stop
				   Visual mode
|v_x|		x		2  delete the highlighted area
|v_y|		y		   yank the highlighted area
|v_~|		~		2  swap case for the highlighted area

==============================================================================
4. Command-line editing					*ex-edit-index*

Get to the command-line with the ':', '!', '/' or '?' commands.
Normal characters are inserted at the current cursor position.
"Completion" below refers to context-sensitive completion.  It will complete
file names, tags, commands etc. as appropriate.

tag		command	      action in Command-line editing mode	~
------------------------------------------------------------------------------
		CTRL-@		not used
|c_CTRL-A|	CTRL-A		do completion on the pattern in front of the
				cursor and insert all matches
|c_CTRL-B|	CTRL-B		cursor to begin of command-line
|c_CTRL-C|	CTRL-C		same as <Esc>
|c_CTRL-D|	CTRL-D		list completions that match the pattern in
				front of the cursor
|c_CTRL-E|	CTRL-E		cursor to end of command-line
|'cedit'|	CTRL-F		default value for 'cedit': opens the
				command-line window; otherwise not used
|c_CTRL-G|	CTRL-G		next match when 'incsearch' is active
|c_<BS>|	<BS>		delete the character in front of the cursor
|c_digraph|	{char1} <BS> {char2}
				enter digraph when 'digraph' is on
|c_CTRL-H|	CTRL-H		same as <BS>
|c_<Tab>|	<Tab>		if 'wildchar' is <Tab>: Do completion on
				the pattern in front of the cursor
|c_<S-Tab>|	<S-Tab>		same as CTRL-P
|c_wildchar|	'wildchar'	Do completion on the pattern in front of the
				cursor (default: <Tab>)
|c_CTRL-I|	CTRL-I		same as <Tab>
|c_<NL>|	<NL>		same as <CR>
|c_CTRL-J|	CTRL-J		same as <CR>
|c_CTRL-K|	CTRL-K {char1} {char2}
				enter digraph
|c_CTRL-L|	CTRL-L		do completion on the pattern in front of the
				cursor and insert the longest common part
|c_<CR>|	<CR>		execute entered command
|c_CTRL-M|	CTRL-M		same as <CR>
|c_CTRL-N|	CTRL-N		after using 'wildchar' with multiple matches:
				go to next match, otherwise: recall older
				command-line from history.
		CTRL-O		not used
|c_CTRL-P|	CTRL-P		after using 'wildchar' with multiple matches:
				go to previous match, otherwise: recall older
				command-line from history.
|c_CTRL-Q|	CTRL-Q		same as CTRL-V, unless it's used for terminal
				control flow
|c_CTRL-R|	CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
				insert the contents of a register or object
				under the cursor as if typed
|c_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
				insert the contents of a register or object
				under the cursor literally
		CTRL-S		(used for terminal control flow)
|c_CTRL-T|	CTRL-T		previous match when 'incsearch' is active
|c_CTRL-U|	CTRL-U		remove all characters
|c_CTRL-V|	CTRL-V		insert next non-digit literally, insert three
				digit decimal number as a single byte.
|c_CTRL-W|	CTRL-W		delete the word in front of the cursor
		CTRL-X		not used (reserved for completion)
		CTRL-Y		copy (yank) modeless selection
		CTRL-Z		not used (reserved for suspend)
|c_<Esc>|	<Esc>		abandon command-line without executing it
|c_CTRL-[|	CTRL-[		same as <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N	go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G	go to mode specified with 'insertmode',
				abandon command-line
		CTRL-\ a - d	reserved for extensions
|c_CTRL-\_e|	CTRL-\ e {expr} replace the command line with the result of
				{expr}
		CTRL-\ f - z	reserved for extensions
		CTRL-\ others	not used
|c_CTRL-]|	CTRL-]		trigger abbreviation
|c_CTRL-^|	CTRL-^		toggle use of |:lmap| mappings
|c_CTRL-_|	CTRL-_		when 'allowrevins' set: change language
				(Hebrew, Farsi)
|c_<Del>|	<Del>		delete the character under the cursor

|c_<Left>|	<Left>		cursor left
|c_<S-Left>|	<S-Left>	cursor one word left
|c_<C-Left>|	<C-Left>	cursor one word left
|c_<Right>|	<Right>		cursor right
|c_<S-Right>|	<S-Right>	cursor one word right
|c_<C-Right>|	<C-Right>	cursor one word right
|c_<Up>|	<Up>		recall previous command-line from history that
				matches pattern in front of the cursor
|c_<S-Up>|	<S-Up>		recall previous command-line from history
|c_<Down>|	<Down>		recall next command-line from history that
				matches pattern in front of the cursor
|c_<S-Down>|	<S-Down>	recall next command-line from history
|c_<Home>|	<Home>		cursor to start of command-line
|c_<End>|	<End>		cursor to end of command-line
|c_<PageDown>|	<PageDown>	same as <S-Down>
|c_<PageUp>|	<PageUp>	same as <S-Up>
|c_<Insert>|	<Insert>	toggle insert/overstrike mode
|c_<LeftMouse>|	<LeftMouse>	cursor at mouse click

You found it, Arthur!				*holy-grail* *:smile*

==============================================================================
5. EX commands					*ex-cmd-index* *:index*

This is a brief but complete listing of all the ":" commands, without
mentioning any arguments.  The optional part of the command name is inside [].
The commands are sorted on the non-optional part of their name.

tag	      command	      action ~
------------------------------------------------------------------------------
|:!|		:!		filter lines or execute an external command
|:!!|		:!!		repeat last ":!" command
|:#|		:#		same as ":number"
|:&|		:&		repeat last ":substitute"
|:star|		:*		execute contents of a register
|:<|		:<		shift lines one 'shiftwidth' left
|:=|		:=		print the cursor line number
|:>|		:>		shift lines one 'shiftwidth' right
|:@|		:@		execute contents of a register
|:@@|		:@@		repeat the previous ":@"
|:Next|		:N[ext]		go to previous file in the argument list
|:Print|	:P[rint]	print lines
|:X|		:X		ask for encryption key
|:append|	:a[ppend]	append text
|:abbreviate|	:ab[breviate]	enter abbreviation
|:abclear|	:abc[lear]	remove all abbreviations
|:aboveleft|	:abo[veleft]	make split window appear left or above
|:all|		:al[l]		open a window for each file in the argument
				list
|:amenu|	:am[enu]	enter new menu item for all modes
|:anoremenu|	:an[oremenu]	enter a new menu for all modes that will not
				be remapped
|:args|		:ar[gs]		print the argument list
|:argadd|	:arga[dd]	add items to the argument list
|:argdelete|	:argd[elete]	delete items from the argument list
|:argedit|	:arge[dit]	add item to the argument list and edit it
|:argdo|	:argdo		do a command on all items in the argument list
|:argglobal|	:argg[lobal]	define the global argument list
|:arglocal|	:argl[ocal]	define a local argument list
|:argument|	:argu[ment]	go to specific file in the argument list
|:ascii|	:as[cii]	print ascii value of character under the cursor
|:autocmd|	:au[tocmd]	enter or show autocommands
|:augroup|	:aug[roup]	select the autocommand group to use
|:aunmenu|	:aun[menu]	remove menu for all modes
|:buffer|	:b[uffer]	go to specific buffer in the buffer list
|:bNext|	:bN[ext]	go to previous buffer in the buffer list
|:ball|		:ba[ll]		open a window for each buffer in the buffer list
|:badd|		:bad[d]		add buffer to the buffer list
|:bdelete|	:bd[elete]	remove a buffer from the buffer list
|:behave|	:be[have]	set mouse and selection behavior
|:belowright|	:bel[owright]	make split window appear right or below
|:bfirst|	:bf[irst]	go to first buffer in the buffer list
|:blast|	:bl[ast]	go to last buffer in the buffer list
|:bmodified|	:bm[odified]	go to next buffer in the buffer list that has
				been modified
|:bnext|	:bn[ext]	go to next buffer in the buffer list
|:botright|	:bo[tright]	make split window appear at bottom or far right
|:bprevious|	:bp[revious]	go to previous buffer in the buffer list
|:brewind|	:br[ewind]	go to first buffer in the buffer list
|:break|	:brea[k]	break out of while loop
|:breakadd|	:breaka[dd]	add a debugger breakpoint
|:breakdel|	:breakd[el]	delete a debugger breakpoint
|:breaklist|	:breakl[ist]	list debugger breakpoints
|:browse|	:bro[wse]	use file selection dialog
|:bufdo|	:bufdo		execute command in each listed buffer
|:buffers|	:buffers	list all files in the buffer list
|:bunload|	:bun[load]	unload a specific buffer
|:bwipeout|	:bw[ipeout]	really delete a buffer
|:change|	:c[hange]	replace a line or series of lines
|:cNext|	:cN[ext]	go to previous error
|:cNfile|	:cNf[ile]	go to last error in previous file
|:cabbrev|	:ca[bbrev]	like ":abbreviate" but for Command-line mode
|:cabclear|	:cabc[lear]	clear all abbreviations for Command-line mode
|:caddbuffer|	:cad[dbuffer]	add errors from buffer
|:caddexpr|	:cadde[xpr]	add errors from expr
|:caddfile|	:caddf[ile]	add error message to current quickfix list
|:call|		:cal[l]		call a function
|:catch|	:cat[ch]	part of a :try command
|:cbottom|	:cbo[ttom]	scroll to the bottom of the quickfix window
|:cbuffer|	:cb[uffer]	parse error messages and jump to first error
|:cc|		:cc		go to specific error
|:cclose|	:ccl[ose]	close quickfix window
|:cd|		:cd		change directory
|:cdo|		:cdo		execute command in each valid error list entry
|:cfdo|		:cfd[o]		execute command in each file in error list
|:center|	:ce[nter]	format lines at the center
|:cexpr|	:cex[pr]	read errors from expr and jump to first
|:cfile|	:cf[ile]	read file with error messages and jump to first
|:cfirst|	:cfir[st]	go to the specified error, default first one
|:cgetbuffer|	:cgetb[uffer]	get errors from buffer
|:cgetexpr|	:cgete[xpr]	get errors from expr
|:cgetfile|	:cg[etfile]	read file with error messages
|:changes|	:changes	print the change list
|:chdir|	:chd[ir]	change directory
|:checkpath|	:che[ckpath]	list included files
|:checktime|	:checkt[ime]	check timestamp of loaded buffers
|:chistory|	:chi[story]	list the error lists
|:clast|	:cla[st]	go to the specified error, default last one
|:clearjumps|	:cle[arjumps]	clear the jump list
|:clist|	:cl[ist]	list all errors
|:close|	:clo[se]	close current window
|:cmap|		:cm[ap]		like ":map" but for Command-line mode
|:cmapclear|	:cmapc[lear]	clear all mappings for Command-line mode
|:cmenu|	:cme[nu]	add menu for Command-line mode
|:cnext|	:cn[ext]	go to next error
|:cnewer|	:cnew[er]	go to newer error list
|:cnfile|	:cnf[ile]	go to first error in next file
|:cnoremap|	:cno[remap]	like ":noremap" but for Command-line mode
|:cnoreabbrev|	:cnorea[bbrev]	like ":noreabbrev" but for Command-line mode
|:cnoremenu|	:cnoreme[nu]	like ":noremenu" but for Command-line mode
|:copy|		:co[py]		copy lines
|:colder|	:col[der]	go to older error list
|:colorscheme|	:colo[rscheme]	load a specific color scheme
|:command|	:com[mand]	create user-defined command
|:comclear|	:comc[lear]	clear all user-defined commands
|:compiler|	:comp[iler]	do settings for a specific compiler
|:continue|	:con[tinue]	go back to :while
|:confirm|	:conf[irm]	prompt user when confirmation required
|:copen|	:cope[n]	open quickfix window
|:cprevious|	:cp[revious]	go to previous error
|:cpfile|	:cpf[ile]	go to last error in previous file
|:cquit|	:cq[uit]	quit Vim with an error code
|:crewind|	:cr[ewind]	go to the specified error, default first one
|:cscope|	:cs[cope]	execute cscope command
|:cstag|	:cst[ag]	use cscope to jump to a tag
|:cunmap|	:cu[nmap]	like ":unmap" but for Command-line mode
|:cunabbrev|	:cuna[bbrev]	like ":unabbrev" but for Command-line mode
|:cunmenu|	:cunme[nu]	remove menu for Command-line mode
|:cwindow|	:cw[indow]	open or close quickfix window
|:delete|	:d[elete]	delete lines
|:delmarks|	:delm[arks]	delete marks
|:debug|	:deb[ug]	run a command in debugging mode
|:debuggreedy|	:debugg[reedy]	read debug mode commands from normal input
|:delcommand|	:delc[ommand]	delete user-defined command
|:delfunction|	:delf[unction]	delete a user function
|:diffupdate|	:dif[fupdate]	update 'diff' buffers
|:diffget|	:diffg[et]	remove differences in current buffer
|:diffoff|	:diffo[ff]	switch off diff mode
|:diffpatch|	:diffp[atch]	apply a patch and show differences
|:diffput|	:diffpu[t]	remove differences in other buffer
|:diffsplit|	:diffs[plit]	show differences with another file
|:diffthis|	:diffthis	make current window a diff window
|:digraphs|	:dig[raphs]	show or enter digraphs
|:display|	:di[splay]	display registers
|:djump|	:dj[ump]	jump to #define
|:dl|		:dl		short for |:delete| with the 'l' flag
|:del|		:del[ete]l	short for |:delete| with the 'l' flag
|:dlist|	:dli[st]	list #defines
|:doautocmd|	:do[autocmd]	apply autocommands to current buffer
|:doautoall|	:doautoa[ll]	apply autocommands for all loaded buffers
|:dp|		:d[elete]p	short for |:delete| with the 'p' flag
|:drop|		:dr[op]		jump to window editing file or edit file in
				current window
|:dsearch|	:ds[earch]	list one #define
|:dsplit|	:dsp[lit]	split window and jump to #define
|:edit|		:e[dit]		edit a file
|:earlier|	:ea[rlier]	go to older change, undo
|:echo|		:ec[ho]		echoes the result of expressions
|:echoerr|	:echoe[rr]	like :echo, show like an error and use history
|:echohl|	:echoh[l]	set highlighting for echo commands
|:echomsg|	:echom[sg]	same as :echo, put message in history
|:echon|	:echon		same as :echo, but without <EOL>
|:else|		:el[se]		part of an :if command
|:elseif|	:elsei[f]	part of an :if command
|:emenu|	:em[enu]	execute a menu by name
|:endif|	:en[dif]	end previous :if
|:endfor|	:endfo[r]	end previous :for
|:endfunction|	:endf[unction]	end of a user function
|:endtry|	:endt[ry]	end previous :try
|:endwhile|	:endw[hile]	end previous :while
|:enew|		:ene[w]		edit a new, unnamed buffer
|:ex|		:ex		same as ":edit"
|:execute|	:exe[cute]	execute result of expressions
|:exit|		:exi[t]		same as ":xit"
|:exusage|	:exu[sage]	overview of Ex commands
|:file|		:f[ile]		show or set the current file name
|:files|	:files		list all files in the buffer list
|:filetype|	:filet[ype]	switch file type detection on/off
|:filter|	:filt[er]	filter output of following command
|:find|		:fin[d]		find file in 'path' and edit it
|:finally|	:fina[lly]	part of a :try command
|:finish|	:fini[sh]	quit sourcing a Vim script
|:first|	:fir[st]	go to the first file in the argument list
|:fixdel|	:fix[del]	set key code of <Del>
|:fold|		:fo[ld]		create a fold
|:foldclose|	:foldc[lose]	close folds
|:folddoopen|	:foldd[oopen]	execute command on lines not in a closed fold
|:folddoclosed|	:folddoc[losed]	execute command on lines in a closed fold
|:foldopen|	:foldo[pen]	open folds
|:for|		:for		for loop
|:function|	:fu[nction]	define a user function
|:global|	:g[lobal]	execute commands for matching lines
|:goto|		:go[to]		go to byte in the buffer
|:grep|		:gr[ep]		run 'grepprg' and jump to first match
|:grepadd|	:grepa[dd]	like :grep, but append to current list
|:gui|		:gu[i]		start the GUI
|:gvim|		:gv[im]		start the GUI
|:hardcopy|	:ha[rdcopy]	send text to the printer
|:help|		:h[elp]		open a help window
|:helpclose|	:helpc[lose]	close one help window
|:helpfind|	:helpf[ind]	dialog to open a help window
|:helpgrep|	:helpg[rep]	like ":grep" but searches help files
|:helptags|	:helpt[ags]	generate help tags for a directory
|:highlight|	:hi[ghlight]	specify highlighting methods
|:hide|		:hid[e]		hide current buffer for a command
|:history|	:his[tory]	print a history list
|:insert|	:i[nsert]	insert text
|:iabbrev|	:ia[bbrev]	like ":abbrev" but for Insert mode
|:iabclear|	:iabc[lear]	like ":abclear" but for Insert mode
|:if|		:if		execute commands when condition met
|:ijump|	:ij[ump]	jump to definition of identifier
|:ilist|	:il[ist]	list lines where identifier matches
|:imap|		:im[ap]		like ":map" but for Insert mode
|:imapclear|	:imapc[lear]	like ":mapclear" but for Insert mode
|:imenu|	:ime[nu]	add menu for Insert mode
|:inoremap|	:ino[remap]	like ":noremap" but for Insert mode
|:inoreabbrev|	:inorea[bbrev]	like ":noreabbrev" but for Insert mode
|:inoremenu|	:inoreme[nu]	like ":noremenu" but for Insert mode
|:intro|	:int[ro]	print the introductory message
|:isearch|	:is[earch]	list one line where identifier matches
|:isplit|	:isp[lit]	split window and jump to definition of
				identifier
|:iunmap|	:iu[nmap]	like ":unmap" but for Insert mode
|:iunabbrev|	:iuna[bbrev]	like ":unabbrev" but for Insert mode
|:iunmenu|	:iunme[nu]	remove menu for Insert mode
|:join|		:j[oin]		join lines
|:jumps|	:ju[mps]	print the jump list
|:k|		:k		set a mark
|:keepalt|	:keepa[lt]	following command keeps the alternate file
|:keepmarks|	:kee[pmarks]	following command keeps marks where they are
|:keepjumps|	:keepj[umps]	following command keeps jumplist and marks
|:keeppatterns|	:keepp[atterns]	following command keeps search pattern history
|:lNext|	:lN[ext]	go to previous entry in location list
|:lNfile|	:lNf[ile]	go to last entry in previous file
|:list|		:l[ist]		print lines
|:laddexpr|	:lad[dexpr]	add locations from expr
|:laddbuffer|	:laddb[uffer]	add locations from buffer
|:laddfile|	:laddf[ile]	add locations to current location list
|:last|		:la[st]		go to the last file in the argument list
|:language|	:lan[guage]	set the language (locale)
|:later|	:lat[er]	go to newer change, redo
|:lbottom|	:lbo[ttom]	scroll to the bottom of the location window
|:lbuffer|	:lb[uffer]	parse locations and jump to first location
|:lcd|		:lc[d]		change directory locally
|:lchdir|	:lch[dir]	change directory locally
|:lclose|	:lcl[ose]	close location window
|:lcscope|	:lcs[cope]	like ":cscope" but uses location list
|:ldo|		:ld[o]		execute command in valid location list entries
|:lfdo|		:lfd[o]		execute command in each file in location list
|:left|		:le[ft]		left align lines
|:leftabove|	:lefta[bove]	make split window appear left or above
|:let|		:let		assign a value to a variable or option
|:lexpr|	:lex[pr]	read locations from expr and jump to first
|:lfile|	:lf[ile]	read file with locations and jump to first
|:lfirst|	:lfir[st]	go to the specified location, default first one
|:lgetbuffer|	:lgetb[uffer]	get locations from buffer
|:lgetexpr|	:lgete[xpr]	get locations from expr
|:lgetfile|	:lg[etfile]	read file with locations
|:lgrep|	:lgr[ep]	run 'grepprg' and jump to first match
|:lgrepadd|	:lgrepa[dd]	like :grep, but append to current list
|:lhelpgrep|	:lh[elpgrep]	like ":helpgrep" but uses location list
|:lhistory|	:lhi[story]	list the location lists
|:ll|		:ll		go to specific location
|:llast|	:lla[st]	go to the specified location, default last one
|:llist|	:lli[st]	list all locations
|:lmake|	:lmak[e]	execute external command 'makeprg' and parse
				error messages
|:lmap|		:lm[ap]		like ":map!" but includes Lang-Arg mode
|:lmapclear|	:lmapc[lear]	like ":mapclear!" but includes Lang-Arg mode
|:lnext|	:lne[xt]	go to next location
|:lnewer|	:lnew[er]	go to newer location list
|:lnfile|	:lnf[ile]	go to first location in next file
|:lnoremap|	:ln[oremap]	like ":noremap!" but includes Lang-Arg mode
|:loadkeymap|	:loadk[eymap]	load the following keymaps until EOF
|:loadview|	:lo[adview]	load view for current window from a file
|:lockmarks|	:loc[kmarks]	following command keeps marks where they are
|:lockvar|	:lockv[ar]	lock variables
|:lolder|	:lol[der]	go to older location list
|:lopen|	:lope[n]	open location window
|:lprevious|	:lp[revious]	go to previous location
|:lpfile|	:lpf[ile]	go to last location in previous file
|:lrewind|	:lr[ewind]	go to the specified location, default first one
|:ls|		:ls		list all buffers
|:ltag|		:lt[ag]		jump to tag and add matching tags to the
				location list
|:lunmap|	:lu[nmap]	like ":unmap!" but includes Lang-Arg mode
|:lua|		:lua		execute |Lua| command
|:luado|	:luad[o]	execute Lua command for each line
|:luafile|	:luaf[ile]	execute |Lua| script file
|:lvimgrep|	:lv[imgrep]	search for pattern in files
|:lvimgrepadd|	:lvimgrepa[dd]	like :vimgrep, but append to current list
|:lwindow|	:lw[indow]	open or close location window
|:move|		:m[ove]		move lines
|:mark|		:ma[rk]		set a mark
|:make|		:mak[e]		execute external command 'makeprg' and parse
				error messages
|:map|		:map		show or enter a mapping
|:mapclear|	:mapc[lear]	clear all mappings for Normal and Visual mode
|:marks|	:marks		list all marks
|:match|	:mat[ch]	define a match to highlight
|:menu|		:me[nu]		enter a new menu item
|:menutranslate|  :menut[ranslate] add a menu translation item
|:messages|	:mes[sages]	view previously displayed messages
|:mkexrc|	:mk[exrc]	write current mappings and settings to a file
|:mksession|	:mks[ession]	write session info to a file
|:mkspell|	:mksp[ell]	produce .spl spell file
|:mkvimrc|	:mkv[imrc]	write current mappings and settings to a file
|:mkview|	:mkvie[w]	write view of current window to a file
|:mode|		:mod[e]		show or change the screen mode
|:mzscheme|	:mz[scheme]	execute MzScheme command
|:mzfile|	:mzf[ile]	execute MzScheme script file
|:nbclose|	:nbc[lose]	close the current Netbeans session
|:nbkey|	:nb[key]	pass a key to Netbeans
|:nbstart|	:nbs[art]	start a new Netbeans session
|:next|		:n[ext]		go to next file in the argument list
|:new|		:new		create a new empty window
|:nmap|		:nm[ap]		like ":map" but for Normal mode
|:nmapclear|	:nmapc[lear]	clear all mappings for Normal mode
|:nmenu|	:nme[nu]	add menu for Normal mode
|:nnoremap|	:nn[oremap]	like ":noremap" but for Normal mode
|:nnoremenu|	:nnoreme[nu]	like ":noremenu" but for Normal mode
|:noautocmd|	:noa[utocmd]	following commands don't trigger autocommands
|:noremap|	:no[remap]	enter a mapping that will not be remapped
|:nohlsearch|	:noh[lsearch]	suspend 'hlsearch' highlighting
|:noreabbrev|	:norea[bbrev]	enter an abbreviation that will not be
				remapped
|:noremenu|	:noreme[nu]	enter a menu that will not be remapped
|:normal|	:norm[al]	execute Normal mode commands
|:noswapfile|	:nos[wapfile]	following commands don't create a swap file
|:number|	:nu[mber]	print lines with line number
|:nunmap|	:nun[map]	like ":unmap" but for Normal mode
|:nunmenu|	:nunme[nu]	remove menu for Normal mode
|:oldfiles|	:ol[dfiles]	list files that have marks in the viminfo file
|:open|		:o[pen]		start open mode (not implemented)
|:omap|		:om[ap]		like ":map" but for Operator-pending mode
|:omapclear|	:omapc[lear]	remove all mappings for Operator-pending mode
|:omenu|	:ome[nu]	add menu for Operator-pending mode
|:only|		:on[ly]		close all windows except the current one
|:onoremap|	:ono[remap]	like ":noremap" but for Operator-pending mode
|:onoremenu|	:onoreme[nu]	like ":noremenu" but for Operator-pending mode
|:options|	:opt[ions]	open the options-window
|:ounmap|	:ou[nmap]	like ":unmap" but for Operator-pending mode
|:ounmenu|	:ounme[nu]	remove menu for Operator-pending mode
|:ownsyntax|	:ow[nsyntax]	set new local syntax highlight for this window
|:packadd|	:pa[ckadd]	add a plugin from 'packpath'
|:packloadall|	:packl[oadall]	load all packages under 'packpath'
|:pclose|	:pc[lose]	close preview window
|:pedit|	:ped[it]	edit file in the preview window
|:perl|		:pe[rl]		execute Perl command
|:print|	:p[rint]	print lines
|:profdel|	:profd[el]	stop profiling a function or script
|:profile|	:prof[ile]	profiling functions and scripts
|:promptfind|	:pro[mptfind]	open GUI dialog for searching
|:promptrepl|	:promptr[epl]	open GUI dialog for search/replace
|:perldo|	:perld[o]	execute Perl command for each line
|:pop|		:po[p]		jump to older entry in tag stack
|:popup|	:popu[p]	popup a menu by name
|:ppop|		:pp[op]		":pop" in preview window
|:preserve|	:pre[serve]	write all text to swap file
|:previous|	:prev[ious]	go to previous file in argument list
|:psearch|	:ps[earch]	like ":ijump" but shows match in preview window
|:ptag|		:pt[ag]		show tag in preview window
|:ptNext|	:ptN[ext]	|:tNext| in preview window
|:ptfirst|	:ptf[irst]	|:trewind| in preview window
|:ptjump|	:ptj[ump]	|:tjump| and show tag in preview window
|:ptlast|	:ptl[ast]	|:tlast| in preview window
|:ptnext|	:ptn[ext]	|:tnext| in preview window
|:ptprevious|	:ptp[revious]	|:tprevious| in preview window
|:ptrewind|	:ptr[ewind]	|:trewind| in preview window
|:ptselect|	:pts[elect]	|:tselect| and show tag in preview window
|:put|		:pu[t]		insert contents of register in the text
|:pwd|		:pw[d]		print current directory
|:py3|		:py3		execute Python 3 command
|:python3|	:python3	same as :py3
|:py3do|	:py3d[o]	execute Python 3 command for each line
|:py3file|	:py3f[ile]	execute Python 3 script file
|:python|	:py[thon]	execute Python command
|:pydo|		:pyd[o]		execute Python command for each line
|:pyfile|	:pyf[ile]	execute Python script file
|:pyx|		:pyx		execute |python_x| command
|:pythonx|	:pythonx	same as :pyx
|:pyxdo|	:pyxd[o]	execute |python_x| command for each line
|:pyxfile|	:pyxf[ile]	execute |python_x| script file
|:quit|		:q[uit]		quit current window (when one window quit Vim)
|:quitall|	:quita[ll]	quit Vim
|:qall|		:qa[ll]		quit Vim
|:read|		:r[ead]		read file into the text
|:recover|	:rec[over]	recover a file from a swap file
|:redo|		:red[o]		redo one undone change
|:redir|	:redi[r]	redirect messages to a file or register
|:redraw|	:redr[aw]	force a redraw of the display
|:redrawstatus|	:redraws[tatus]	force a redraw of the status line(s)
|:registers|	:reg[isters]	display the contents of registers
|:resize|	:res[ize]	change current window height
|:retab|	:ret[ab]	change tab size
|:return|	:retu[rn]	return from a user function
|:rewind|	:rew[ind]	go to the first file in the argument list
|:right|	:ri[ght]	right align text
|:rightbelow|	:rightb[elow]	make split window appear right or below
|:ruby|		:rub[y]		execute Ruby command
|:rubydo|	:rubyd[o]	execute Ruby command for each line
|:rubyfile|	:rubyf[ile]	execute Ruby script file
|:rundo|	:rund[o]	read undo information from a file
|:runtime|	:ru[ntime]	source vim scripts in 'runtimepath'
|:rviminfo|	:rv[iminfo]	read from viminfo file
|:substitute|	:s[ubstitute]	find and replace text
|:sNext|	:sN[ext]	split window and go to previous file in
				argument list
|:sandbox|	:san[dbox]	execute a command in the sandbox
|:sargument|	:sa[rgument]	split window and go to specific file in
				argument list
|:sall|		:sal[l]		open a window for each file in argument list
|:saveas|	:sav[eas]	save file under another name.
|:sbuffer|	:sb[uffer]	split window and go to specific file in the
				buffer list
|:sbNext|	:sbN[ext]	split window and go to previous file in the
				buffer list
|:sball|	:sba[ll]	open a window for each file in the buffer list
|:sbfirst|	:sbf[irst]	split window and go to first file in the
				buffer list
|:sblast|	:sbl[ast]	split window and go to last file in buffer
				list
|:sbmodified|	:sbm[odified]	split window and go to modified file in the
				buffer list
|:sbnext|	:sbn[ext]	split window and go to next file in the buffer
				list
|:sbprevious|	:sbp[revious]	split window and go to previous file in the
				buffer list
|:sbrewind|	:sbr[ewind]	split window and go to first file in the
				buffer list
|:scriptnames|	:scr[iptnames]	list names of all sourced Vim scripts
|:scriptencoding| :scripte[ncoding]	encoding used in sourced Vim script
|:scscope|	:scs[cope]	split window and execute cscope command
|:set|		:se[t]		show or set options
|:setfiletype|	:setf[iletype]	set 'filetype', unless it was set already
|:setglobal|	:setg[lobal]	show global values of options
|:setlocal|	:setl[ocal]	show or set options locally
|:sfind|	:sf[ind]	split current window and edit file in 'path'
|:sfirst|	:sfir[st]	split window and go to first file in the
				argument list
|:shell|	:sh[ell]	escape to a shell
|:simalt|	:sim[alt]	Win32 GUI: simulate Windows ALT key
|:sign|		:sig[n]		manipulate signs
|:silent|	:sil[ent]	run a command silently
|:sleep|	:sl[eep]	do nothing for a few seconds
|:slast|	:sla[st]	split window and go to last file in the
				argument list
|:smagic|	:sm[agic]	:substitute with 'magic'
|:smap|		:smap		like ":map" but for Select mode
|:smapclear|	:smapc[lear]	remove all mappings for Select mode
|:smenu|	:sme[nu]	add menu for Select mode
|:smile|	:smi[le]	make the user happy
|:snext|	:sn[ext]	split window and go to next file in the
				argument list
|:snomagic|	:sno[magic]	:substitute with 'nomagic'
|:snoremap|	:snor[emap]	like ":noremap" but for Select mode
|:snoremenu|	:snoreme[nu]	like ":noremenu" but for Select mode
|:sort|		:sor[t]		sort lines
|:source|	:so[urce]	read Vim or Ex commands from a file
|:spelldump|	:spelld[ump]	split window and fill with all correct words
|:spellgood|	:spe[llgood]	add good word for spelling
|:spellinfo|	:spelli[nfo]	show info about loaded spell files
|:spellrepall|	:spellr[epall]	replace all bad words like last |z=|
|:spellundo|	:spellu[ndo]	remove good or bad word
|:spellwrong|	:spellw[rong]	add spelling mistake
|:split|	:sp[lit]	split current window
|:sprevious|	:spr[evious]	split window and go to previous file in the
				argument list
|:srewind|	:sre[wind]	split window and go to first file in the
				argument list
|:stop|		:st[op]		suspend the editor or escape to a shell
|:stag|		:sta[g]		split window and jump to a tag
|:startinsert|	:star[tinsert]	start Insert mode
|:startgreplace|  :startg[replace] start Virtual Replace mode
|:startreplace|	:startr[eplace]	start Replace mode
|:stopinsert|	:stopi[nsert]	stop Insert mode
|:stjump|	:stj[ump]	do ":tjump" and split window
|:stselect|	:sts[elect]	do ":tselect" and split window
|:sunhide|	:sun[hide]	same as ":unhide"
|:sunmap|	:sunm[ap]	like ":unmap" but for Select mode
|:sunmenu|	:sunme[nu]	remove menu for Select mode
|:suspend|	:sus[pend]	same as ":stop"
|:sview|	:sv[iew]	split window and edit file read-only
|:swapname|	:sw[apname]	show the name of the current swap file
|:syntax|	:sy[ntax]	syntax highlighting
|:syntime|	:synti[me]	measure syntax highlighting speed
|:syncbind|	:sync[bind]	sync scroll binding
|:t|		:t		same as ":copy"
|:tNext|	:tN[ext]	jump to previous matching tag
|:tabNext|	:tabN[ext]	go to previous tab page
|:tabclose|	:tabc[lose]	close current tab page
|:tabdo|	:tabdo		execute command in each tab page
|:tabedit|	:tabe[dit]	edit a file in a new tab page
|:tabfind|	:tabf[ind]	find file in 'path', edit it in a new tab page
|:tabfirst|	:tabfir[st]	go to first tab page
|:tablast|	:tabl[ast]	go to last tab page
|:tabmove|	:tabm[ove]	move tab page to other position
|:tabnew|	:tabnew		edit a file in a new tab page
|:tabnext|	:tabn[ext]	go to next tab page
|:tabonly|	:tabo[nly]	close all tab pages except the current one
|:tabprevious|	:tabp[revious]	go to previous tab page
|:tabrewind|	:tabr[ewind]	go to first tab page
|:tabs|		:tabs		list the tab pages and what they contain
|:tab|		:tab		create new tab when opening new window
|:tag|		:ta[g]		jump to tag
|:tags|		:tags		show the contents of the tag stack
|:tcl|		:tc[l]		execute Tcl command
|:tcldo|	:tcld[o]	execute Tcl command for each line
|:tclfile|	:tclf[ile]	execute Tcl script file
|:tearoff|	:te[aroff]	tear-off a menu
|:terminal|	:ter[minal]	open a terminal window
|:tfirst|	:tf[irst]	jump to first matching tag
|:throw|	:th[row]	throw an exception
|:tjump|	:tj[ump]	like ":tselect", but jump directly when there
				is only one match
|:tlast|	:tl[ast]	jump to last matching tag
|:tmapclear|	:tmapc[lear]	remove all mappings for Terminal-Job mode
|:tmap|		:tma[p]		like ":map" but for Terminal-Job mode
|:tmenu|	:tm[enu]	define menu tooltip
|:tnext|	:tn[ext]	jump to next matching tag
|:tnoremap|	:tno[remap]	like ":noremap" but for Terminal-Job mode
|:topleft|	:to[pleft]	make split window appear at top or far left
|:tprevious|	:tp[revious]	jump to previous matching tag
|:trewind|	:tr[ewind]	jump to first matching tag
|:try|		:try		execute commands, abort on error or exception
|:tselect|	:ts[elect]	list matching tags and select one
|:tunmap|	:tunma[p]	like ":unmap" but for Terminal-Job mode
|:tunmenu|	:tu[nmenu]	remove menu tooltip
|:undo|		:u[ndo]		undo last change(s)
|:undojoin|	:undoj[oin]	join next change with previous undo block
|:undolist|	:undol[ist]	list leafs of the undo tree
|:unabbreviate|	:una[bbreviate]	remove abbreviation
|:unhide|	:unh[ide]	open a window for each loaded file in the
				buffer list
|:unlet|	:unl[et]	delete variable
|:unlockvar|	:unlo[ckvar]	unlock variables
|:unmap|	:unm[ap]	remove mapping
|:unmenu|	:unme[nu]	remove menu
|:unsilent|	:uns[ilent]	run a command not silently
|:update|	:up[date]	write buffer if modified
|:vglobal|	:v[global]	execute commands for not matching lines
|:version|	:ve[rsion]	print version number and other info
|:verbose|	:verb[ose]	execute command with 'verbose' set
|:vertical|	:vert[ical]	make following command split vertically
|:vimgrep|	:vim[grep]	search for pattern in files
|:vimgrepadd|	:vimgrepa[dd]	like :vimgrep, but append to current list
|:visual|	:vi[sual]	same as ":edit", but turns off "Ex" mode
|:viusage|	:viu[sage]	overview of Normal mode commands
|:view|		:vie[w]		edit a file read-only
|:vmap|		:vm[ap]		like ":map" but for Visual+Select mode
|:vmapclear|	:vmapc[lear]	remove all mappings for Visual+Select mode
|:vmenu|	:vme[nu]	add menu for Visual+Select mode
|:vnew|		:vne[w]		create a new empty window, vertically split
|:vnoremap|	:vn[oremap]	like ":noremap" but for Visual+Select mode
|:vnoremenu|	:vnoreme[nu]	like ":noremenu" but for Visual+Select mode
|:vsplit|	:vs[plit]	split current window vertically
|:vunmap|	:vu[nmap]	like ":unmap" but for Visual+Select mode
|:vunmenu|	:vunme[nu]	remove menu for Visual+Select mode
|:windo|	:windo		execute command in each window
|:write|	:w[rite]	write to a file
|:wNext|	:wN[ext]	write to a file and go to previous file in
				argument list
|:wall|		:wa[ll]		write all (changed) buffers
|:while|	:wh[ile]	execute loop for as long as condition met
|:winsize|	:wi[nsize]	get or set window size (obsolete)
|:wincmd|	:winc[md]	execute a Window (CTRL-W) command
|:winpos|	:winp[os]	get or set window position
|:wnext|	:wn[ext]	write to a file and go to next file in
				argument list
|:wprevious|	:wp[revious]	write to a file and go to previous file in
				argument list
|:wq|		:wq		write to a file and quit window or Vim
|:wqall|	:wqa[ll]	write all changed buffers and quit Vim
|:wsverb|	:ws[verb]	pass the verb to workshop over IPC
|:wundo|	:wu[ndo]	write undo information to a file
|:wviminfo|	:wv[iminfo]	write to viminfo file
|:xit|		:x[it]		write if buffer changed and quit window or Vim
|:xall|		:xa[ll]		same as ":wqall"
|:xmapclear|	:xmapc[lear]	remove all mappings for Visual mode
|:xmap|		:xm[ap]		like ":map" but for Visual mode
|:xmenu|	:xme[nu]	add menu for Visual mode
|:xnoremap|	:xn[oremap]	like ":noremap" but for Visual mode
|:xnoremenu|	:xnoreme[nu]	like ":noremenu" but for Visual mode
|:xunmap|	:xu[nmap]	like ":unmap" but for Visual mode
|:xunmenu|	:xunme[nu]	remove menu for Visual mode
|:yank|		:y[ank]		yank lines into a register
|:z|		:z		print some lines
|:~|		:~		repeat last ":substitute"


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z)��;E;Evim80/doc/usr_27.txtnu�[���*usr_27.txt*	For Vim version 8.0.  Last change: 2018 Jan 26

		     VIM USER MANUAL - by Bram Moolenaar

			 Search commands and patterns


In chapter 3 a few simple search patterns were mentioned |03.9|.  Vim can do
much more complex searches.  This chapter explains the most often used ones.
A detailed specification can be found here: |pattern|

|27.1|	Ignoring case
|27.2|	Wrapping around the file end
|27.3|	Offsets
|27.4|	Matching multiple times
|27.5|	Alternatives
|27.6|	Character ranges
|27.7|	Character classes
|27.8|	Matching a line break
|27.9|	Examples

     Next chapter: |usr_28.txt|  Folding
 Previous chapter: |usr_26.txt|  Repeating
Table of contents: |usr_toc.txt|

==============================================================================
*27.1*	Ignoring case

By default, Vim's searches are case sensitive.  Therefore, "include",
"INCLUDE", and "Include" are three different words and a search will match
only one of them.
   Now switch on the 'ignorecase' option: >

	:set ignorecase

Search for "include" again, and now it will match "Include", "INCLUDE" and
"InClUDe".  (Set the 'hlsearch' option to quickly see where a pattern
matches.)
   You can switch this off again with: >

	:set noignorecase

But let's keep it set, and search for "INCLUDE".  It will match exactly the
same text as "include" did.  Now set the 'smartcase' option: >

	:set ignorecase smartcase

If you have a pattern with at least one uppercase character, the search
becomes case sensitive.  The idea is that you didn't have to type that
uppercase character, so you must have done it because you wanted case to
match.  That's smart!
    With these two options set you find the following matches:

	pattern			matches	~
	word			word, Word, WORD, WoRd, etc.
	Word			Word
	WORD			WORD
	WoRd			WoRd


CASE IN ONE PATTERN

If you want to ignore case for one specific pattern, you can do this by
prepending the "\c" string.  Using "\C" will make the pattern to match case.
This overrules the 'ignorecase' and 'smartcase' options, when "\c" or "\C" is
used their value doesn't matter.

	pattern			matches	~
	\Cword			word
	\CWord			Word
	\cword			word, Word, WORD, WoRd, etc.
	\cWord			word, Word, WORD, WoRd, etc.

A big advantage of using "\c" and "\C" is that it sticks with the pattern.
Thus if you repeat a pattern from the search history, the same will happen, no
matter if 'ignorecase' or 'smartcase' was changed.

	Note:
	The use of "\" items in search patterns depends on the 'magic' option.
	In this chapter we will assume 'magic' is on, because that is the
	standard and recommended setting.  If you would change 'magic', many
	search patterns would suddenly become invalid.

	Note:
	If your search takes much longer than you expected, you can interrupt
	it with CTRL-C on Unix and  CTRL-Break on MS-DOS and MS-Windows.

==============================================================================
*27.2*	Wrapping around the file end

By default, a forward search starts searching for the given string at the
current cursor location.  It then proceeds to the end of the file.  If it has
not found the string by that time, it starts from the beginning and searches
from the start of the file to the cursor location.
   Keep in mind that when repeating the "n" command to search for the next
match, you eventually get back to the first match.  If you don't notice this
you keep searching forever!  To give you a hint, Vim displays this message:

	search hit BOTTOM, continuing at TOP ~

If you use the "?" command, to search in the other direction, you get this
message:

	search hit TOP, continuing at BOTTOM ~

Still, you don't know when you are back at the first match.  One way to see
this is by switching on the 'ruler' option: >

	:set ruler

Vim will display the cursor position in the lower righthand corner of the
window (in the status line if there is one).  It looks like this:

	101,29       84% ~

The first number is the line number of the cursor.  Remember the line number
where you started, so that you can check if you passed this position again.


NOT WRAPPING

To turn off search wrapping, use the following command: >

	:set nowrapscan

Now when the search hits the end of the file, an error message displays:

	E385: search hit BOTTOM without match for: forever ~

Thus you can find all matches by going to the start of the file with "gg" and
keep searching until you see this message.
   If you search in the other direction, using "?", you get:

	E384: search hit TOP without match for: forever ~

==============================================================================
*27.3*	Offsets

By default, the search command leaves the cursor positioned on the beginning
of the pattern.  You can tell Vim to leave it some other place by specifying
an offset.  For the forward search command "/", the offset is specified by
appending a slash (/) and the offset: >

	/default/2

This command searches for the pattern "default" and then moves to the
beginning of the second line past the pattern.  Using this command on the
paragraph above, Vim finds the word "default" in the first line.  Then the
cursor is moved two lines down and lands on "an offset".

If the offset is a simple number, the cursor will be placed at the beginning
of the line that many lines from the match.  The offset number can be positive
or negative.  If it is positive, the cursor moves down that many lines; if
negative, it moves up.


CHARACTER OFFSETS

The "e" offset indicates an offset from the end of the match.  It moves the
cursor onto the last character of the match.  The command: >

	/const/e

puts the cursor on the "t" of "const".
   From that position, adding a number moves forward that many characters.
This command moves to the character just after the match: >

	/const/e+1

A positive number moves the cursor to the right, a negative number moves it to
the left.  For example: >

	/const/e-1

moves the cursor to the "s" of "const".

If the offset begins with "b", the cursor moves to the beginning of the
pattern.  That's not very useful, since leaving out the "b" does the same
thing.  It does get useful when a number is added or subtracted.  The cursor
then goes forward or backward that many characters.  For example: >

	/const/b+2

Moves the cursor to the beginning of the match and then two characters to the
right.  Thus it lands on the "n".


REPEATING

To repeat searching for the previously used search pattern, but with a
different offset, leave out the pattern: >

	/that
	//e

Is equal to: >

	/that/e

To repeat with the same offset: >

	/

"n" does the same thing.  To repeat while removing a previously used offset: >

	//


SEARCHING BACKWARDS

The "?" command uses offsets in the same way, but you must use "?" to separate
the offset from the pattern, instead of "/": >

	?const?e-2

The "b" and "e" keep their meaning, they don't change direction with the use
of "?".


START POSITION

When starting a search, it normally starts at the cursor position.  When you
specify a line offset, this can cause trouble.  For example: >

	/const/-2

This finds the next word "const" and then moves two lines up.  If you
use "n" to search again, Vim could start at the current position and find the
same "const" match.  Then using the offset again, you would be back where you
started.  You would be stuck!
   It could be worse: Suppose there is another match with "const" in the next
line.  Then repeating the forward search would find this match and move two
lines up.  Thus you would actually move the cursor back!

When you specify a character offset, Vim will compensate for this.  Thus the
search starts a few characters forward or backward, so that the same match
isn't found again.

==============================================================================
*27.4*	Matching multiple times

The "*" item specifies that the item before it can match any number of times.
Thus: >

	/a*

matches "a", "aa", "aaa", etc.  But also "" (the empty string), because zero
times is included.
   The "*" only applies to the item directly before it.  Thus "ab*" matches
"a", "ab", "abb", "abbb", etc.  To match a whole string multiple times, it
must be grouped into one item.  This is done by putting "\(" before it and
"\)" after it.  Thus this command: >

	/\(ab\)*

Matches: "ab", "abab", "ababab", etc.  And also "".

To avoid matching the empty string, use "\+".  This makes the previous item
match one or more times. >

	/ab\+

Matches "ab", "abb", "abbb", etc.  It does not match "a" when no "b" follows.

To match an optional item, use "\=".  Example: >

	/folders\=

Matches "folder" and "folders".


SPECIFIC COUNTS

To match a specific number of items use the form "\{n,m}".  "n" and "m" are
numbers.  The item before it will be matched "n" to "m" times |inclusive|.
Example: >

	/ab\{3,5}

matches "abbb", "abbbb" and "abbbbb".
  When "n" is omitted, it defaults to zero.  When "m" is omitted it defaults
to infinity.  When ",m" is omitted, it matches exactly "n" times.
Examples:

	pattern		match count ~
	\{,4}		0, 1, 2, 3 or 4
	\{3,}		3, 4, 5, etc.
	\{0,1}		0 or 1, same as \=
	\{0,}		0 or more, same as *
	\{1,}		1 or more, same as \+
	\{3}		3


MATCHING AS LITTLE AS POSSIBLE

The items so far match as many characters as they can find.  To match as few
as possible, use "\{-n,m}".  It works the same as "\{n,m}", except that the
minimal amount possible is used.
   For example, use: >

	/ab\{-1,3}

Will match "ab" in "abbb".  Actually, it will never match more than one b,
because there is no reason to match more.  It requires something else to force
it to match more than the lower limit.
   The same rules apply to removing "n" and "m".  It's even possible to remove
both of the numbers, resulting in "\{-}".  This matches the item before it
zero or more times, as few as possible.  The item by itself always matches
zero times.  It is useful when combined with something else.  Example: >

	/a.\{-}b

This matches "axb" in "axbxb".  If this pattern would be used: >

	/a.*b

It would try to match as many characters as possible with ".*", thus it
matches "axbxb" as a whole.

==============================================================================
*27.5*	Alternatives

The "or" operator in a pattern is "\|".  Example: >

	/foo\|bar

This matches "foo" or "bar".  More alternatives can be concatenated: >

	/one\|two\|three

Matches "one", "two" and "three".
   To match multiple times, the whole thing must be placed in "\(" and "\)": >

	/\(foo\|bar\)\+

This matches "foo", "foobar", "foofoo", "barfoobar", etc.
   Another example: >

	/end\(if\|while\|for\)

This matches "endif", "endwhile" and "endfor".

A related item is "\&".  This requires that both alternatives match in the
same place.  The resulting match uses the last alternative.  Example: >

	/forever\&...

This matches "for" in "forever".  It will not match "fortuin", for example.

==============================================================================
*27.6*	Character ranges

To match "a", "b" or "c" you could use "/a\|b\|c".  When you want to match all
letters from "a" to "z" this gets very long.  There is a shorter method: >

	/[a-z]

The [] construct matches a single character.  Inside you specify which
characters to match.  You can include a list of characters, like this: >

	/[0123456789abcdef]

This will match any of the characters included.  For consecutive characters
you can specify the range.  "0-3" stands for "0123".  "w-z" stands for "wxyz".
Thus the same command as above can be shortened to: >

	/[0-9a-f]

To match the "-" character itself make it the first or last one in the range.
These special characters are accepted to make it easier to use them inside a
[] range (they can actually be used anywhere in the search pattern):

	\e	<Esc>
	\t	<Tab>
	\r	<CR>
	\b	<BS>

There are a few more special cases for [] ranges, see |/[]| for the whole
story.


COMPLEMENTED RANGE

To avoid matching a specific character, use "^" at the start of the range.
The [] item then matches everything but the characters included.  Example: >

	/"[^"]*"
<
	 "	  a double quote
	  [^"]	  any character that is not a double quote
	      *	  as many as possible
	       "  a double quote again

This matches "foo" and "3!x", including the double quotes.


PREDEFINED RANGES

A number of ranges are used very often.  Vim provides a shortcut for these.
For example: >

	/\a

Finds alphabetic characters.  This is equal to using "/[a-zA-Z]".  Here are a
few more of these:

	item	matches			equivalent ~
	\d	digit			[0-9]
	\D	non-digit		[^0-9]
	\x	hex digit		[0-9a-fA-F]
	\X	non-hex digit		[^0-9a-fA-F]
	\s	white space		[ 	]     (<Tab> and <Space>)
	\S	non-white characters	[^ 	]     (not <Tab> and <Space>)
	\l	lowercase alpha		[a-z]
	\L	non-lowercase alpha	[^a-z]
	\u	uppercase alpha		[A-Z]
	\U	non-uppercase alpha	[^A-Z]

	Note:
	Using these predefined ranges works a lot faster than the character
	range it stands for.
	These items can not be used inside [].  Thus "[\d\l]" does NOT work to
	match a digit or lowercase alpha.  Use "\(\d\|\l\)" instead.

See |/\s| for the whole list of these ranges.

==============================================================================
*27.7*	Character classes

The character range matches a fixed set of characters.  A character class is
similar, but with an essential difference: The set of characters can be
redefined without changing the search pattern.
   For example, search for this pattern: >

	/\f\+

The "\f" items stands for file name characters.  Thus this matches a sequence
of characters that can be a file name.
   Which characters can be part of a file name depends on the system you are
using.  On MS-Windows, the backslash is included, on Unix it is not.  This is
specified with the 'isfname' option.  The default value for Unix is: >

	:set isfname
	isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=

For other systems the default value is different.  Thus you can make a search
pattern with "\f" to match a file name, and it will automatically adjust to
the system you are using it on.

	Note:
	Actually, Unix allows using just about any character in a file name,
	including white space.  Including these characters in 'isfname' would
	be theoretically correct.  But it would make it impossible to find the
	end of a file name in text.  Thus the default value of 'isfname' is a
	compromise.

The character classes are:

	item	matches				option ~
	\i	identifier characters		'isident'
	\I	like \i, excluding digits
	\k	keyword characters		'iskeyword'
	\K	like \k, excluding digits
	\p	printable characters		'isprint'
	\P	like \p, excluding digits
	\f	file name characters		'isfname'
	\F	like \f, excluding digits

==============================================================================
*27.8*	Matching a line break

Vim can find a pattern that includes a line break.  You need to specify where
the line break happens, because all items mentioned so far don't match a line
break.
   To check for a line break in a specific place, use the "\n" item: >

	/the\nword

This will match at a line that ends in "the" and the next line starts with
"word".  To match "the word" as well, you need to match a space or a line
break.  The item to use for it is "\_s": >

	/the\_sword

To allow any amount of white space: >

	/the\_s\+word

This also matches when "the  " is at the end of a line and "   word" at the
start of the next one.

"\s" matches white space, "\_s" matches white space or a line break.
Similarly, "\a" matches an alphabetic character, and "\_a" matches an
alphabetic character or a line break.  The other character classes and ranges
can be modified in the same way by inserting a "_".

Many other items can be made to match a line break by prepending "\_".  For
example: "\_." matches any character or a line break.

	Note:
	"\_.*" matches everything until the end of the file.  Be careful with
	this, it can make a search command very slow.

Another example is "\_[]", a character range that includes a line break: >

	/"\_[^"]*"

This finds a text in double quotes that may be split up in several lines.

==============================================================================
*27.9*	Examples

Here are a few search patterns you might find useful.  This shows how the
items mentioned above can be combined.


FINDING A CALIFORNIA LICENSE PLATE

A sample license plate number is "1MGU103".  It has one digit, three uppercase
letters and three digits.  Directly putting this into a search pattern: >

	/\d\u\u\u\d\d\d

Another way is to specify that there are three digits and letters with a
count: >

	/\d\u\{3}\d\{3}

Using [] ranges instead: >

	/[0-9][A-Z]\{3}[0-9]\{3}

Which one of these you should use?  Whichever one you can remember.  The
simple way you can remember is much faster than the fancy way that you can't.
If you can remember them all, then avoid the last one, because it's both more
typing and slower to execute.


FINDING AN IDENTIFIER

In C programs (and many other computer languages) an identifier starts with a
letter and further consists of letters and digits.  Underscores can be used
too.  This can be found with: >

	/\<\h\w*\>

"\<" and "\>" are used to find only whole words.  "\h" stands for "[A-Za-z_]"
and "\w" for "[0-9A-Za-z_]".

	Note:
	"\<" and "\>" depend on the 'iskeyword' option.  If it includes "-",
	for example, then "ident-" is not matched.  In this situation use: >

		/\w\@<!\h\w*\w\@!
<
	This checks if "\w" does not match before or after the identifier.
	See |/\@<!| and |/\@!|.

==============================================================================

Next chapter: |usr_28.txt|  Folding

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z6?:��vim80/doc/options.txtnu�[���*options.txt*	For Vim version 8.0.  Last change: 2018 Apr 21


		  VIM REFERENCE MANUAL	  by Bram Moolenaar


Options							*options*

1. Setting options			|set-option|
2. Automatically setting options	|auto-setting|
3. Options summary			|option-summary|

For an overview of options see quickref.txt |option-list|.

Vim has a number of internal variables and switches which can be set to
achieve special effects.  These options come in three forms:
	boolean		can only be on or off		*boolean* *toggle*
	number		has a numeric value
	string		has a string value

==============================================================================
1. Setting options					*set-option* *E764*

							*:se* *:set*
:se[t]			Show all options that differ from their default value.

:se[t] all		Show all but terminal options.

:se[t] termcap		Show all terminal options.  Note that in the GUI the
			key codes are not shown, because they are generated
			internally and can't be changed.  Changing the terminal
			codes in the GUI is not useful either...

								*E518* *E519*
:se[t] {option}?	Show value of {option}.

:se[t] {option}		Toggle option: set, switch it on.
			Number option: show value.
			String option: show value.

:se[t] no{option}	Toggle option: Reset, switch it off.

							   *:set-!* *:set-inv*
:se[t] {option}!   or
:se[t] inv{option}	Toggle option: Invert value. {not in Vi}

				*:set-default* *:set-&* *:set-&vi* *:set-&vim*
:se[t] {option}&	Reset option to its default value.  May depend on the
			current value of 'compatible'. {not in Vi}
:se[t] {option}&vi	Reset option to its Vi default value. {not in Vi}
:se[t] {option}&vim	Reset option to its Vim default value. {not in Vi}

:se[t] all&		Set all options to their default value.  The values of
			these options are not changed:
			  all terminal options, starting with t_
			  'columns'
			  'cryptmethod'
			  'encoding'
			  'key'
			  'lines'
			  'term'
			  'ttymouse'
			  'ttytype'
			Warning: This may have a lot of side effects.
			{not in Vi}

						*:set-args* *E487* *E521*
:se[t] {option}={value}		or
:se[t] {option}:{value}
			Set string or number option to {value}.
			For numeric options the value can be given in decimal,
			hex (preceded with 0x) or octal (preceded with '0').
			The old value can be inserted by typing 'wildchar' (by
			default this is a <Tab> or CTRL-E if 'compatible' is
			set).  See |cmdline-completion|.
			White space between {option} and '=' is allowed and
			will be ignored.  White space between '=' and {value}
			is not allowed.
			See |option-backslash| for using white space and
			backslashes in {value}.

:se[t] {option}+={value}				*:set+=*
			Add the {value} to a number option, or append the
			{value} to a string option.  When the option is a
			comma separated list, a comma is added, unless the
			value was empty.
			If the option is a list of flags, superfluous flags
			are removed.  When adding a flag that was already
			present the option value doesn't change.
			Also see |:set-args| above.
			{not in Vi}

:se[t] {option}^={value}				*:set^=*
			Multiply the {value} to a number option, or prepend
			the {value} to a string option.  When the option is a
			comma separated list, a comma is added, unless the
			value was empty.
			Also see |:set-args| above.
			{not in Vi}

:se[t] {option}-={value}				*:set-=*
			Subtract the {value} from a number option, or remove
			the {value} from a string option, if it is there.
			If the {value} is not found in a string option, there
			is no error or warning.  When the option is a comma
			separated list, a comma is deleted, unless the option
			becomes empty.
			When the option is a list of flags, {value} must be
			exactly as they appear in the option.  Remove flags
			one by one to avoid problems.
			Also see |:set-args| above.
			{not in Vi}

The {option} arguments to ":set" may be repeated.  For example: >
	:set ai nosi sw=3 ts=3
If you make an error in one of the arguments, an error message will be given
and the following arguments will be ignored.

							*:set-verbose*
When 'verbose' is non-zero, displaying an option value will also tell where it
was last set.  Example: >
	:verbose set shiftwidth cindent?
<	  shiftwidth=4 ~
		  Last set from modeline ~
	  cindent ~
		  Last set from /usr/local/share/vim/vim60/ftplugin/c.vim ~
This is only done when specific option values are requested, not for ":verbose
set all" or ":verbose set" without an argument.
When the option was set by hand there is no "Last set" message.
When the option was set while executing a function, user command or
autocommand, the script in which it was defined is reported.
Note that an option may also have been set as a side effect of setting
'compatible'.
A few special texts:
	Last set from modeline ~
		Option was set in a |modeline|.
	Last set from --cmd argument ~
		Option was set with command line argument |--cmd| or +.
	Last set from -c argument ~
		Option was set with command line argument |-c|, +, |-S| or
		|-q|.
	Last set from environment variable ~
		Option was set from an environment variable, $VIMINIT,
		$GVIMINIT or $EXINIT.
	Last set from error handler ~
		Option was cleared when evaluating it resulted in an error.

{not available when compiled without the |+eval| feature}

							*:set-termcap* *E522*
For {option} the form "t_xx" may be used to set a terminal option.  This will
override the value from the termcap.  You can then use it in a mapping.  If
the "xx" part contains special characters, use the <t_xx> form: >
	:set <t_#4>=^[Ot
This can also be used to translate a special code for a normal key.  For
example, if Alt-b produces <Esc>b, use this: >
	:set <M-b>=^[b
(the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
The advantage over a mapping is that it works in all situations.

You can define any key codes, e.g.: >
	:set t_xy=^[foo;
There is no warning for using a name that isn't recognized.  You can map these
codes as you like: >
	:map <t_xy> something
<								*E846*
When a key code is not set, it's like it does not exist.  Trying to get its
value will result in an error: >
	:set t_kb=
	:set t_kb
	E846: Key code not set: t_kb

The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
security reasons.

The listing from ":set" looks different from Vi.  Long string options are put
at the end of the list.  The number of options is quite large.  The output of
"set all" probably does not fit on the screen, causing Vim to give the
|more-prompt|.

							*option-backslash*
To include white space in a string option value it has to be preceded with a
backslash.  To include a backslash you have to use two.  Effectively this
means that the number of backslashes in an option value is halved (rounded
down).
A few examples: >
   :set tags=tags\ /usr/tags	    results in "tags /usr/tags"
   :set tags=tags\\,file	    results in "tags\,file"
   :set tags=tags\\\ file	    results in "tags\ file"

The "|" character separates a ":set" command from a following command.  To
include the "|" in the option value, use "\|" instead.  This example sets the
'titlestring' option to "hi|there": >
   :set titlestring=hi\|there
This sets the 'titlestring' option to "hi" and 'iconstring' to "there": >
   :set titlestring=hi|set iconstring=there

Similarly, the double quote character starts a comment.  To include the '"' in
the option value, use '\"' instead.  This example sets the 'titlestring'
option to 'hi "there"': >
   :set titlestring=hi\ \"there\"

For MS-DOS and WIN32 backslashes in file names are mostly not removed.  More
precise: For options that expect a file name (those where environment
variables are expanded) a backslash before a normal file name character is not
removed.  But a backslash before a special character (space, backslash, comma,
etc.) is used like explained above.
There is one special situation, when the value starts with "\\": >
   :set dir=\\machine\path	    results in "\\machine\path"
   :set dir=\\\\machine\\path	    results in "\\machine\path"
   :set dir=\\path\\file	    results in "\\path\file" (wrong!)
For the first one the start is kept, but for the second one the backslashes
are halved.  This makes sure it works both when you expect backslashes to be
halved and when you expect the backslashes to be kept.  The third gives a
result which is probably not what you want.  Avoid it.

				*add-option-flags* *remove-option-flags*
				*E539* *E550* *E551* *E552*
Some options are a list of flags.  When you want to add a flag to such an
option, without changing the existing ones, you can do it like this: >
   :set guioptions+=a
Remove a flag from an option like this: >
   :set guioptions-=a
This removes the 'a' flag from 'guioptions'.
Note that you should add or remove one flag at a time.  If 'guioptions' has
the value "ab", using "set guioptions-=ba" won't work, because the string "ba"
doesn't appear.

			   *:set_env* *expand-env* *expand-environment-var*
Environment variables in specific string options will be expanded.  If the
environment variable exists the '$' and the following environment variable
name is replaced with its value.  If it does not exist the '$' and the name
are not modified.  Any non-id character (not a letter, digit or '_') may
follow the environment variable name.  That character and what follows is
appended to the value of the environment variable.  Examples: >
   :set term=$TERM.new
   :set path=/usr/$INCLUDE,$HOME/include,.
When adding or removing a string from an option with ":set opt-=val" or ":set
opt+=val" the expansion is done before the adding or removing.


Handling of local options			*local-options*

Some of the options only apply to a window or buffer.  Each window or buffer
has its own copy of this option, thus each can have its own value.  This
allows you to set 'list' in one window but not in another.  And set
'shiftwidth' to 3 in one buffer and 4 in another.

The following explains what happens to these local options in specific
situations.  You don't really need to know all of this, since Vim mostly uses
the option values you would expect.  Unfortunately, doing what the user
expects is a bit complicated...

When splitting a window, the local options are copied to the new window.  Thus
right after the split the contents of the two windows look the same.

When editing a new buffer, its local option values must be initialized.  Since
the local options of the current buffer might be specifically for that buffer,
these are not used.  Instead, for each buffer-local option there also is a
global value, which is used for new buffers.  With ":set" both the local and
global value is changed.  With "setlocal" only the local value is changed,
thus this value is not used when editing a new buffer.

When editing a buffer that has been edited before, the options from the window
that was last closed are used again.  If this buffer has been edited in this
window, the values from back then are used.  Otherwise the values from the
last closed window where the buffer was edited last are used.

It's possible to set a local window option specifically for a type of buffer.
When you edit another buffer in the same window, you don't want to keep
using these local window options.  Therefore Vim keeps a global value of the
local window options, which is used when editing another buffer.  Each window
has its own copy of these values.  Thus these are local to the window, but
global to all buffers in the window.  With this you can do: >
	:e one
	:set list
	:e two
Now the 'list' option will also be set in "two", since with the ":set list"
command you have also set the global value. >
	:set nolist
	:e one
	:setlocal list
	:e two
Now the 'list' option is not set, because ":set nolist" resets the global
value, ":setlocal list" only changes the local value and ":e two" gets the
global value.  Note that if you do this next: >
	:e one
You will get back the 'list' value as it was the last time you edited "one".
The options local to a window are remembered for each buffer.  This also
happens when the buffer is not loaded, but they are lost when the buffer is
wiped out |:bwipe|.

							*:setl* *:setlocal*
:setl[ocal] ...		Like ":set" but set only the value local to the
			current buffer or window.  Not all options have a
			local value.  If the option does not have a local
			value the global value is set.
			With the "all" argument: display local values for all
			local options.
			Without argument: Display local values for all local
			options which are different from the default.
			When displaying a specific local option, show the
			local value.  For a global/local boolean option, when
			the global value is being used, "--" is displayed
			before the option name.
			For a global option the global value is
			shown (but that might change in the future).
			{not in Vi}

:setl[ocal] {option}<	Set the local value of {option} to its global value by
			copying the value.
			{not in Vi}

:se[t] {option}<	For |global-local| options: Remove the local value of
			{option}, so that the global value will be used.
			{not in Vi}

							*:setg* *:setglobal*
:setg[lobal] ...	Like ":set" but set only the global value for a local
			option without changing the local value.
			When displaying an option, the global value is shown.
			With the "all" argument: display global values for all
			local options.
			Without argument: display global values for all local
			options which are different from the default.
			{not in Vi}

For buffer-local and window-local options:
	Command		 global value	    local value ~
      :set option=value	     set		set
 :setlocal option=value	      -			set
:setglobal option=value	     set		 -
      :set option?	      -		       display
 :setlocal option?	      -		       display
:setglobal option?	    display		 -


Global options with a local value			*global-local*

Options are global when you mostly use one value for all buffers and windows.
For some global options it's useful to sometimes have a different local value.
You can set the local value with ":setlocal".  That buffer or window will then
use the local value, while other buffers and windows continue using the global
value.

For example, you have two windows, both on C source code.  They use the global
'makeprg' option.  If you do this in one of the two windows: >
	:set makeprg=gmake
then the other window will switch to the same value.  There is no need to set
the 'makeprg' option in the other C source window too.
However, if you start editing a Perl file in a new window, you want to use
another 'makeprg' for it, without changing the value used for the C source
files.  You use this command: >
	:setlocal makeprg=perlmake
You can switch back to using the global value by making the local value empty: >
	:setlocal makeprg=
This only works for a string option.  For a boolean option you need to use the
"<" flag, like this: >
	:setlocal autoread<
Note that for non-boolean options using "<" copies the global value to the
local value, it doesn't switch back to using the global value (that matters
when the global value changes later).  You can also use: >
	:set path<
This will make the local value of 'path' empty, so that the global value is
used.  Thus it does the same as: >
	:setlocal path=
Note: In the future more global options can be made global-local.  Using
":setlocal" on a global option might work differently then.


Setting the filetype

:setf[iletype] [FALLBACK] {filetype}			*:setf* *:setfiletype*
			Set the 'filetype' option to {filetype}, but only if
			not done yet in a sequence of (nested) autocommands.
			This is short for: >
				:if !did_filetype()
				:  setlocal filetype={filetype}
				:endif
<			This command is used in a filetype.vim file to avoid
			setting the 'filetype' option twice, causing different
			settings and syntax files to be loaded.

			When the optional FALLBACK argument is present, a
			later :setfiletype command will override the
			'filetype'.  This is to used for filetype detections
			that are just a guess.  |did_filetype()| will return
			false after this command.

			{not in Vi}

				*option-window* *optwin*
:bro[wse] se[t]			*:set-browse* *:browse-set* *:opt* *:options*
:opt[ions]		Open a window for viewing and setting all options.
			Options are grouped by function.
			Offers short help for each option.  Hit <CR> on the
			short help to open a help window with more help for
			the option.
			Modify the value of the option and hit <CR> on the
			"set" line to set the new value.  For window and
			buffer specific options, the last accessed window is
			used to set the option value in, unless this is a help
			window, in which case the window below help window is
			used (skipping the option-window).
			{not available when compiled without the |+eval|
			feature}

								*$HOME*
Using "~" is like using "$HOME", but it is only recognized at the start of an
option and after a space or comma.

On Unix systems "~user" can be used too.  It is replaced by the home directory
of user "user".  Example: >
    :set path=~mool/include,/usr/include,.

On Unix systems the form "${HOME}" can be used too.  The name between {} can
contain non-id characters then.  Note that if you want to use this for the
"gf" command, you need to add the '{' and '}' characters to 'isfname'.

NOTE: expanding environment variables and "~/" is only done with the ":set"
command, not when assigning a value to an option with ":let".

							*$HOME-windows*
On MS-Windows, if $HOME is not defined as an environment variable, then
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
If $HOMEDRIVE is not set then $USERPROFILE is used.

This expanded value is not exported to the environment, this matters when
running an external command: >
	:echo system('set | findstr ^HOME=')
and >
	:echo luaeval('os.getenv("HOME")')
should echo nothing (an empty string) despite exists('$HOME') being true.
When setting $HOME to a non-empty string it will be exported to the
subprocesses.


Note the maximum length of an expanded option is limited.  How much depends on
the system, mostly it is something like 256 or 1024 characters.

							*:fix* *:fixdel*
:fix[del]		Set the value of 't_kD':
				't_kb' is     't_kD' becomes	~
				  CTRL-?	CTRL-H
				not CTRL-?	CTRL-?

			(CTRL-? is 0177 octal, 0x7f hex) {not in Vi}

			If your delete key terminal code is wrong, but the
			code for backspace is alright, you can put this in
			your .vimrc: >
				:fixdel
<			This works no matter what the actual code for
			backspace is.

			If the backspace key terminal code is wrong you can
			use this: >
				:if &term == "termname"
				:  set t_kb=^V<BS>
				:  fixdel
				:endif
<			Where "^V" is CTRL-V and "<BS>" is the backspace key
			(don't type four characters!).  Replace "termname"
			with your terminal name.

			If your <Delete> key sends a strange key sequence (not
			CTRL-? or CTRL-H) you cannot use ":fixdel".  Then use: >
				:if &term == "termname"
				:  set t_kD=^V<Delete>
				:endif
<			Where "^V" is CTRL-V and "<Delete>" is the delete key
			(don't type eight characters!).  Replace "termname"
			with your terminal name.

							*Linux-backspace*
			Note about Linux: By default the backspace key
			produces CTRL-?, which is wrong.  You can fix it by
			putting this line in your rc.local: >
				echo "keycode 14 = BackSpace" | loadkeys
<
							*NetBSD-backspace*
			Note about NetBSD: If your backspace doesn't produce
			the right code, try this: >
				xmodmap -e "keycode 22 = BackSpace"
<			If this works, add this in your .Xmodmap file: >
				keysym 22 = BackSpace
<			You need to restart for this to take effect.

==============================================================================
2. Automatically setting options			*auto-setting*

Besides changing options with the ":set" command, there are three alternatives
to set options automatically for one or more files:

1. When starting Vim initializations are read from various places.  See
   |initialization|.  Most of them are performed for all editing sessions,
   and some of them depend on the directory where Vim is started.
   You can create an initialization file with |:mkvimrc|, |:mkview| and
   |:mksession|.
2. If you start editing a new file, the automatic commands are executed.
   This can be used to set options for files matching a particular pattern and
   many other things.  See |autocommand|.
3. If you start editing a new file, and the 'modeline' option is on, a
   number of lines at the beginning and end of the file are checked for
   modelines.  This is explained here.

					*modeline* *vim:* *vi:* *ex:* *E520*
There are two forms of modelines.  The first form:
	[text]{white}{vi:|vim:|ex:}[white]{options}

[text]			any text or empty
{white}			at least one blank character (<Space> or <Tab>)
{vi:|vim:|ex:}		the string "vi:", "vim:" or "ex:"
[white]			optional white space
{options}		a list of option settings, separated with white space
			or ':', where each part between ':' is the argument
			for a ":set" command (can be empty)

Examples:
   vi:noai:sw=3 ts=6 ~
   vim: tw=77 ~

The second form (this is compatible with some versions of Vi):

	[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]

[text]			any text or empty
{white}			at least one blank character (<Space> or <Tab>)
{vi:|vim:|Vim:|ex:}	the string "vi:", "vim:", "Vim:" or "ex:"
[white]			optional white space
se[t]			the string "set " or "se " (note the space); When
			"Vim" is used it must be "set".
{options}		a list of options, separated with white space, which
			is the argument for a ":set" command
:			a colon
[text]			any text or empty

Examples:
   /* vim: set ai tw=75: */ ~
   /* Vim: set ai tw=75: */ ~

The white space before {vi:|vim:|Vim:|ex:} is required.  This minimizes the
chance that a normal word like "lex:" is caught.  There is one exception:
"vi:" and "vim:" can also be at the start of the line (for compatibility with
version 3.0).  Using "ex:" at the start of the line will be ignored (this
could be short for "example:").

							*modeline-local*
The options are set like with ":setlocal": The new value only applies to the
buffer and window that contain the file.  Although it's possible to set global
options from a modeline, this is unusual.  If you have two windows open and
the files in it set the same global option to a different value, the result
depends on which one was opened last.

When editing a file that was already loaded, only the window-local options
from the modeline are used.  Thus if you manually changed a buffer-local
option after opening the file, it won't be changed if you edit the same buffer
in another window.  But window-local options will be set.

							*modeline-version*
If the modeline is only to be used for some versions of Vim, the version
number can be specified where "vim:" or "Vim:" is used:
	vim{vers}:	version {vers} or later
	vim<{vers}:	version before {vers}
	vim={vers}:	version {vers}
	vim>{vers}:	version after {vers}
{vers} is 700 for Vim 7.0 (hundred times the major version plus minor).
For example, to use a modeline only for Vim 7.0:
	/* vim700: set foldmethod=marker */ ~
To use a modeline for Vim after version 7.2:
	/* vim>702: set cole=2: */ ~
There can be no blanks between "vim" and the ":".


The number of lines that are checked can be set with the 'modelines' option.
If 'modeline' is off or 'modelines' is 0 no lines are checked.

Note that for the first form all of the rest of the line is used, thus a line
like:
   /* vi:ts=4: */ ~
will give an error message for the trailing "*/".  This line is OK:
   /* vi:set ts=4: */ ~

If an error is detected the rest of the line is skipped.

If you want to include a ':' in a set command precede it with a '\'.  The
backslash in front of the ':' will be removed.  Example:
   /* vi:set dir=c\:\tmp: */ ~
This sets the 'dir' option to "c:\tmp".  Only a single backslash before the
':' is removed.  Thus to include "\:" you have to specify "\\:".

No other commands than "set" are supported, for security reasons (somebody
might create a Trojan horse text file with modelines).  And not all options
can be set.  For some options a flag is set, so that when it's used the
|sandbox| is effective.  Still, there is always a small risk that a modeline
causes trouble.  E.g., when some joker sets 'textwidth' to 5 all your lines
are wrapped unexpectedly.  So disable modelines before editing untrusted text.
The mail ftplugin does this, for example.

Hint: If you would like to do something else than setting an option, you could
define an autocommand that checks the file for a specific string.  For
example: >
	au BufReadPost * if getline(1) =~ "VAR" | call SetVar() | endif
And define a function SetVar() that does something with the line containing
"VAR".

==============================================================================
3. Options summary					*option-summary*

In the list below all the options are mentioned with their full name and with
an abbreviation if there is one.  Both forms may be used.

In this document when a boolean option is "set" that means that ":set option"
is entered.  When an option is "reset", ":set nooption" is used.

For some options there are two default values: The "Vim default", which is
used when 'compatible' is not set, and the "Vi default", which is used when
'compatible' is set.

Most options are the same in all windows and buffers.  There are a few that
are specific to how the text is presented in a window.  These can be set to a
different value in each window.  For example the 'list' option can be set in
one window and reset in another for the same text, giving both types of view
at the same time.  There are a few options that are specific to a certain
file.  These can have a different value for each file or buffer.  For example
the 'textwidth' option can be 78 for a normal text file and 0 for a C
program.

	global			one option for all buffers and windows
	local to window		each window has its own copy of this option
	local to buffer		each buffer has its own copy of this option

When creating a new window the option values from the currently active window
are used as a default value for the window-specific options.  For the
buffer-specific options this depends on the 's' and 'S' flags in the
'cpoptions' option.  If 's' is included (which is the default) the values for
buffer options are copied from the currently active buffer when a buffer is
first entered.  If 'S' is present the options are copied each time the buffer
is entered, this is almost like having global options.  If 's' and 'S' are not
present, the options are copied from the currently active buffer when the
buffer is created.

Hidden options						*hidden-options*

Not all options are supported in all versions.  This depends on the supported
features and sometimes on the system.  A remark about this is in curly braces
below.  When an option is not supported it may still be set without getting an
error, this is called a hidden option.  You can't get the value of a hidden
option though, it is not stored.

To test if option "foo" can be used with ":set" use something like this: >
	if exists('&foo')
This also returns true for a hidden option.  To test if option "foo" is really
supported use something like this: >
	if exists('+foo')
<
							*E355*
A jump table for the options with a short description can be found at |Q_op|.

					*'aleph'* *'al'* *aleph* *Aleph*
'aleph' 'al'		number	(default 128 for MS-DOS, 224 otherwise)
			global
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	The ASCII code for the first letter of the Hebrew alphabet.  The
	routine that maps the keyboard in Hebrew mode, both in Insert mode
	(when hkmap is set) and on the command-line (when hitting CTRL-_)
	outputs the Hebrew characters in the range [aleph..aleph+26].
	aleph=128 applies to PC code, and aleph=224 applies to ISO 8859-8.
	See |rileft.txt|.

			*'allowrevins'* *'ari'* *'noallowrevins'* *'noari'*
'allowrevins' 'ari'	boolean	(default off)
			global
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	Allow CTRL-_ in Insert and Command-line mode.  This is default off, to
	avoid that users that accidentally type CTRL-_ instead of SHIFT-_ get
	into reverse Insert mode, and don't know how to get out.  See
	'revins'.
	NOTE: This option is reset when 'compatible' is set.

			 *'altkeymap'* *'akm'* *'noaltkeymap'* *'noakm'*
'altkeymap' 'akm'	boolean (default off)
			global
			{not in Vi}
			{only available when compiled with the |+farsi|
			feature}
	When on, the second language is Farsi.  In editing mode CTRL-_ toggles
	the keyboard map between Farsi and English, when 'allowrevins' set.

	When off, the keyboard map toggles between Hebrew and English.  This
	is useful to start the Vim in native mode i.e. English (left-to-right
	mode) and have default second language Farsi or Hebrew (right-to-left
	mode).  See |farsi.txt|.

						*'ambiwidth'* *'ambw'*
'ambiwidth' 'ambw'	string (default: "single")
			global
			{not in Vi}
			{only available when compiled with the |+multi_byte|
			feature}
	Only effective when 'encoding' is "utf-8" or another Unicode encoding.
	Tells Vim what to do with characters with East Asian Width Class
	Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek
	letters, Cyrillic letters).

	There are currently two possible values:
	"single":	Use the same width as characters in US-ASCII.  This is
			expected by most users.
	"double":	Use twice the width of ASCII characters.
							*E834* *E835*
	The value "double" cannot be used if 'listchars' or 'fillchars'
	contains a character that would be double width.

	There are a number of CJK fonts for which the width of glyphs for
	those characters are solely based on how many octets they take in
	legacy/traditional CJK encodings.  In those encodings, Euro,
	Registered sign, Greek/Cyrillic letters are represented by two octets,
	therefore those fonts have "wide" glyphs for them.  This is also
	true of some line drawing characters used to make tables in text
	file.  Therefore, when a CJK font is used for GUI Vim or
	Vim is running inside a terminal (emulators) that uses a CJK font
	(or Vim is run inside an xterm invoked with "-cjkwidth" option.),
	this option should be set to "double" to match the width perceived
	by Vim with the width of glyphs in the font.  Perhaps it also has
	to be set to "double" under CJK Windows 9x/ME or Windows 2k/XP
	when the system locale is set to one of CJK locales.  See Unicode
	Standard Annex #11 (http://www.unicode.org/reports/tr11).

	Vim may set this option automatically at startup time when Vim is
	compiled with the |+termresponse| feature and if |t_u7| is set to the
	escape sequence to request cursor position report.  The response can
	be found in |v:termu7resp|.

			*'antialias'* *'anti'* *'noantialias'* *'noanti'*
'antialias' 'anti'	boolean (default: off)
			global
			{not in Vi}
			{only available when compiled with GUI enabled
			on Mac OS X}
	This option only has an effect in the GUI version of Vim on Mac OS X
	v10.2 or later.  When on, Vim will use smooth ("antialiased") fonts,
	which can be easier to read at certain sizes on certain displays.
	Setting this option can sometimes cause problems if 'guifont' is set
	to its default (empty string).
	NOTE: This option is reset when 'compatible' is set.

			*'autochdir'* *'acd'* *'noautochdir'* *'noacd'*
'autochdir' 'acd'	boolean (default off)
			global
			{not in Vi}
			{only available when compiled with it, use
			exists("+autochdir") to check}
	When on, Vim will change the current working directory whenever you
	open a file, switch buffers, delete a buffer or open/close a window.
	It will change to the directory containing the file which was opened
	or selected.
	Note: When this option is on some plugins may not work.

				*'arabic'* *'arab'* *'noarabic'* *'noarab'*
'arabic' 'arab'		boolean (default off)
			local to window
			{not in Vi}
			{only available when compiled with the |+arabic|
			feature}
	This option can be set to start editing Arabic text.
	Setting this option will:
	- Set the 'rightleft' option, unless 'termbidi' is set.
	- Set the 'arabicshape' option, unless 'termbidi' is set.
	- Set the 'keymap' option to "arabic"; in Insert mode CTRL-^ toggles
	  between typing English and Arabic key mapping.
	- Set the 'delcombine' option
	Note that 'encoding' must be "utf-8" for working with Arabic text.

	Resetting this option will:
	- Reset the 'rightleft' option.
	- Disable the use of 'keymap' (without changing its value).
	Note that 'arabicshape' and 'delcombine' are not reset (it is a global
	option).
	NOTE: This option is reset when 'compatible' is set.
	Also see |arabic.txt|.

					*'arabicshape'* *'arshape'*
					*'noarabicshape'* *'noarshape'*
'arabicshape' 'arshape'	boolean (default on)
			global
			{not in Vi}
			{only available when compiled with the |+arabic|
			feature}
	When on and 'termbidi' is off, the required visual character
	corrections that need to take place for displaying the Arabic language
	take effect.  Shaping, in essence, gets enabled; the term is a broad
	one which encompasses:
	  a) the changing/morphing of characters based on their location
	     within a word (initial, medial, final and stand-alone).
	  b) the enabling of the ability to compose characters
	  c) the enabling of the required combining of some characters
	When disabled the display shows each character's true stand-alone
	form.
	Arabic is a complex language which requires other settings, for
	further details see |arabic.txt|.
	NOTE: This option is set when 'compatible' is set.

			*'autoindent'* *'ai'* *'noautoindent'* *'noai'*
'autoindent' 'ai'	boolean	(default off)
			local to buffer
	Copy indent from current line when starting a new line (typing <CR>
	in Insert mode or when using the "o" or "O" command).  If you do not
	type anything on the new line except <BS> or CTRL-D and then type
	<Esc>, CTRL-O or <CR>, the indent is deleted again.  Moving the cursor
	to another line has the same effect, unless the 'I' flag is included
	in 'cpoptions'.
	When autoindent is on, formatting (with the "gq" command or when you
	reach 'textwidth' in Insert mode) uses the indentation of the first
	line.
	When 'smartindent' or 'cindent' is on the indent is changed in
	a different way.
	The 'autoindent' option is reset when the 'paste' option is set and
	restored when 'paste' is reset.
	{small difference from Vi: After the indent is deleted when typing
	<Esc> or <CR>, the cursor position when moving up or down is after the
	deleted indent; Vi puts the cursor somewhere in the deleted indent}.

				 *'autoread'* *'ar'* *'noautoread'* *'noar'*
'autoread' 'ar'		boolean	(default off)
			global or local to buffer |global-local|
			{not in Vi}
	When a file has been detected to have been changed outside of Vim and
	it has not been changed inside of Vim, automatically read it again.
	When the file has been deleted this is not done.  |timestamp|
	If this option has a local value, use this command to switch back to
	using the global value: >
		:set autoread<
<
				 *'autowrite'* *'aw'* *'noautowrite'* *'noaw'*
'autowrite' 'aw'	boolean	(default off)
			global
	Write the contents of the file, if it has been modified, on each
	:next, :rewind, :last, :first, :previous, :stop, :suspend, :tag, :!,
	:make, CTRL-] and CTRL-^ command; and when a :buffer, CTRL-O, CTRL-I,
	'{A-Z0-9}, or `{A-Z0-9} command takes one to another file.
	Note that for some commands the 'autowrite' option is not used, see
	'autowriteall' for that.

			 *'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'*
'autowriteall' 'awa'	boolean	(default off)
			global
			{not in Vi}
	Like 'autowrite', but also used for commands ":edit", ":enew", ":quit",
	":qall", ":exit", ":xit", ":recover" and closing the Vim window.
	Setting this option also implies that Vim behaves like 'autowrite' has
	been set.

							*'background'* *'bg'*
'background' 'bg'	string	(default "dark" or "light", see below)
			global
			{not in Vi}
	When set to "dark", Vim will try to use colors that look good on a
	dark background.  When set to "light", Vim will try to use colors that
	look good on a light background.  Any other value is illegal.
	Vim tries to set the default value according to the terminal used.
	This will not always be correct.
	Setting this option does not change the background color, it tells Vim
	what the background color looks like.  For changing the background
	color, see |:hi-normal|.

	When 'background' is set Vim will adjust the default color groups for
	the new value.  But the colors used for syntax highlighting will not
	change.					*g:colors_name*
	When a color scheme is loaded (the "g:colors_name" variable is set)
	setting 'background' will cause the color scheme to be reloaded.  If
	the color scheme adjusts to the value of 'background' this will work.
	However, if the color scheme sets 'background' itself the effect may
	be undone.  First delete the "g:colors_name" variable when needed.

	When setting 'background' to the default value with: >
		:set background&
<	Vim will guess the value.  In the GUI this should work correctly,
	in other cases Vim might not be able to guess the right value.

	When the |t_RB| option is set, Vim will use it to request the background
	color from the terminal.  If the returned RGB value is dark/light and
	'background' is not dark/light, 'background' will be set and the
	screen is redrawn.  This may have side effects, make t_BG empty in
	your .vimrc if you suspect this problem.  The response to |t_RB| can
	be found in |v:termrbgresp|.

	When starting the GUI, the default value for 'background' will be
	"light".  When the value is not set in the .gvimrc, and Vim detects
	that the background is actually quite dark, 'background' is set to
	"dark".  But this happens only AFTER the .gvimrc file has been read
	(because the window needs to be opened to find the actual background
	color).  To get around this, force the GUI window to be opened by
	putting a ":gui" command in the .gvimrc file, before where the value
	of 'background' is used (e.g., before ":syntax on").

	For MS-DOS, Windows and OS/2 the default is "dark".
	For other systems "dark" is used when 'term' is "linux",
	"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
	background.  Otherwise the default is "light".

	The |:terminal| command and the |term_start()| function use the
	'background' value to decide whether the terminal window will start
	with a white or black background.

	Normally this option would be set in the .vimrc file.  Possibly
	depending on the terminal name.  Example: >
		:if &term == "pcterm"
		:  set background=dark
		:endif
<	When this option is set, the default settings for the highlight groups
	will change.  To use other settings, place ":highlight" commands AFTER
	the setting of the 'background' option.
	This option is also used in the "$VIMRUNTIME/syntax/syntax.vim" file
	to select the colors for syntax highlighting.  After changing this
	option, you must load syntax.vim again to see the result.  This can be
	done with ":syntax on".

							*'backspace'* *'bs'*
'backspace' 'bs'	string	(default "", set to "indent,eol,start"
							    in |defaults.vim|)
			global
			{not in Vi}
	Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
	mode.  This is a list of items, separated by commas.  Each item allows
	a way to backspace over something:
	value	effect	~
	indent	allow backspacing over autoindent
	eol	allow backspacing over line breaks (join lines)
	start	allow backspacing over the start of insert; CTRL-W and CTRL-U
		stop once at the start of insert.

	When the value is empty, Vi compatible backspacing is used.

	For backwards compatibility with version 5.4 and earlier:
	value	effect	~
	  0	same as ":set backspace=" (Vi compatible)
	  1	same as ":set backspace=indent,eol"
	  2	same as ":set backspace=indent,eol,start"

	See |:fixdel| if your <BS> or <Del> key does not do what you want.
	NOTE: This option is set to "" when 'compatible' is set.

				*'backup'* *'bk'* *'nobackup'* *'nobk'*
'backup' 'bk'		boolean	(default off)
			global
			{not in Vi}
	Make a backup before overwriting a file.  Leave it around after the
	file has been successfully written.  If you do not want to keep the
	backup file, but you do want a backup while the file is being
	written, reset this option and set the 'writebackup' option (this is
	the default).  If you do not want a backup file at all reset both
	options (use this if your file system is almost full).  See the
	|backup-table| for more explanations.
	When the 'backupskip' pattern matches, a backup is not made anyway.
	When 'patchmode' is set, the backup may be renamed to become the
	oldest version of a file.
	NOTE: This option is reset when 'compatible' is set.

						*'backupcopy'* *'bkc'*
'backupcopy' 'bkc'	string	(Vi default for Unix: "yes", otherwise: "auto")
			global or local to buffer |global-local|
			{not in Vi}
	When writing a file and a backup is made, this option tells how it's
	done.  This is a comma separated list of words.

	The main values are:
	"yes"	make a copy of the file and overwrite the original one
	"no"	rename the file and write a new one
	"auto"	one of the previous, what works best

	Extra values that can be combined with the ones above are:
	"breaksymlink"	always break symlinks when writing
	"breakhardlink"	always break hardlinks when writing

	Making a copy and overwriting the original file:
	- Takes extra time to copy the file.
	+ When the file has special attributes, is a (hard/symbolic) link or
	  has a resource fork, all this is preserved.
	- When the file is a link the backup will have the name of the link,
	  not of the real file.

	Renaming the file and writing a new one:
	+ It's fast.
	- Sometimes not all attributes of the file can be copied to the new
	  file.
	- When the file is a link the new file will not be a link.

	The "auto" value is the middle way: When Vim sees that renaming file
	is possible without side effects (the attributes can be passed on and
	the file is not a link) that is used.  When problems are expected, a
	copy will be made.

	The "breaksymlink" and "breakhardlink" values can be used in
	combination with any of "yes", "no" and "auto".  When included, they
	force Vim to always break either symbolic or hard links by doing
	exactly what the "no" option does, renaming the original file to
	become the backup and writing a new file in its place.  This can be
	useful for example in source trees where all the files are symbolic or
	hard links and any changes should stay in the local source tree, not
	be propagated back to the original source.
							*crontab*
	One situation where "no" and "auto" will cause problems: A program
	that opens a file, invokes Vim to edit that file, and then tests if
	the open file was changed (through the file descriptor) will check the
	backup file instead of the newly created file.  "crontab -e" is an
	example.

	When a copy is made, the original file is truncated and then filled
	with the new text.  This means that protection bits, owner and
	symbolic links of the original file are unmodified.  The backup file
	however, is a new file, owned by the user who edited the file.  The
	group of the backup is set to the group of the original file.  If this
	fails, the protection bits for the group are made the same as for
	others.

	When the file is renamed this is the other way around: The backup has
	the same attributes of the original file, and the newly written file
	is owned by the current user.  When the file was a (hard/symbolic)
	link, the new file will not!  That's why the "auto" value doesn't
	rename when the file is a link.  The owner and group of the newly
	written file will be set to the same ones as the original file, but
	the system may refuse to do this.  In that case the "auto" value will
	again not rename the file.

	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'backupdir'* *'bdir'*
'backupdir' 'bdir'	string	(default for Amiga: ".,t:",
				 for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp"
				 for Unix: ".,~/tmp,~/")
			global
			{not in Vi}
	List of directories for the backup file, separated with commas.
	- The backup file will be created in the first directory in the list
	  where this is possible.  The directory must exist, Vim will not
	  create it for you.
	- Empty means that no backup file will be created ('patchmode' is
	  impossible!).  Writing may fail because of this.
	- A directory "." means to put the backup file in the same directory
	  as the edited file.
	- A directory starting with "./" (or ".\" for MS-DOS et al.) means to
	  put the backup file relative to where the edited file is.  The
	  leading "." is replaced with the path name of the edited file.
	  ("." inside a directory name has no special meaning).
	- Spaces after the comma are ignored, other spaces are considered part
	  of the directory name.  To have a space at the start of a directory
	  name, precede it with a backslash.
	- To include a comma in a directory name precede it with a backslash.
	- A directory name may end in an '/'.
	- Environment variables are expanded |:set_env|.
	- Careful with '\' characters, type one before a space, type two to
	  get one in the option (see |option-backslash|), for example: >
	    :set bdir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces
<	- For backwards compatibility with Vim version 3.0 a '>' at the start
	  of the option is removed.
	See also 'backup' and 'writebackup' options.
	If you want to hide your backup files on Unix, consider this value: >
		:set backupdir=./.backup,~/.backup,.,/tmp
<	You must create a ".backup" directory in each directory and in your
	home directory for this to work properly.
	The use of |:set+=| and |:set-=| is preferred when adding or removing
	directories from the list.  This avoids problems when a future version
	uses another default.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'backupext'* *'bex'* *E589*
'backupext' 'bex'	string	(default "~", for VMS: "_")
			global
			{not in Vi}
	String which is appended to a file name to make the name of the
	backup file.  The default is quite unusual, because this avoids
	accidentally overwriting existing files with a backup file.  You might
	prefer using ".bak", but make sure that you don't have files with
	".bak" that you want to keep.
	Only normal file name characters can be used, "/\*?[|<>" are illegal.

	If you like to keep a lot of backups, you could use a BufWritePre
	autocommand to change 'backupext' just before writing the file to
	include a timestamp. >
		:au BufWritePre * let &bex = '-' . strftime("%Y%b%d%X") . '~'
<	Use 'backupdir' to put the backup in a different directory.

						*'backupskip'* *'bsk'*
'backupskip' 'bsk'	string	(default: "$TMPDIR/*,$TMP/*,$TEMP/*"
				 Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*"
				 Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
			global
			{not in Vi}
			{not available when compiled without the |+wildignore|
			feature}
	A list of file patterns.  When one of the patterns matches with the
	name of the file which is written, no backup file is created.  Both
	the specified file name and the full path name of the file are used.
	The pattern is used like with |:autocmd|, see |autocmd-patterns|.
	Watch out for special characters, see |option-backslash|.
	When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the
	default value.  "/tmp/*" is only used for Unix.

	WARNING: Not having a backup file means that when Vim fails to write
	your buffer correctly and then, for whatever reason, Vim exits, you
	lose both the original file and what you were writing.  Only disable
	backups if you don't care about losing the file.

	Note that environment variables are not expanded.  If you want to use
	$HOME you must expand it explicitly, e.g.: >
		:let &backupskip = escape(expand('$HOME'), '\') . '/tmp/*'

<	Note that the default also makes sure that "crontab -e" works (when a
	backup would be made by renaming the original file crontab won't see
	the newly created file).  Also see 'backupcopy' and |crontab|.

						*'balloondelay'* *'bdlay'*
'balloondelay' 'bdlay'	number	(default: 600)
			global
			{not in Vi}
			{only available when compiled with the |+balloon_eval|
			feature}
	Delay in milliseconds before a balloon may pop up.  See |balloon-eval|.

		       *'ballooneval'* *'beval'* *'noballooneval'* *'nobeval'*
'ballooneval' 'beval'	boolean	(default off)
			global
			{not in Vi}
			{only available when compiled with the |+balloon_eval|
			feature}
	Switch on the |balloon-eval| functionality for the GUI.

		       *'balloonevalterm'* *'bevalterm'* *'noballoonevalterm'*
		       *'nobevalterm'*
'balloonevalterm' 'bevalterm'	boolean	(default off)
			global
			{not in Vi}
			{only available when compiled with the
			|+balloon_eval_term| feature}
	Switch on the |balloon-eval| functionality for the terminal.

						     *'balloonexpr'* *'bexpr'*
'balloonexpr' 'bexpr'	string	(default "")
			global or local to buffer |global-local|
			{not in Vi}
			{only available when compiled with the |+balloon_eval|
			feature}
	Expression for text to show in evaluation balloon.  It is only used
	when 'ballooneval' is on.  These variables can be used:

	v:beval_bufnr	number of the buffer in which balloon is going to show
	v:beval_winnr	number of the window
	v:beval_winid	ID of the window
	v:beval_lnum	line number
	v:beval_col	column number (byte index)
	v:beval_text	word under or after the mouse pointer

	The evaluation of the expression must not have side effects!
	Example: >
    function! MyBalloonExpr()
	return 'Cursor is at line ' . v:beval_lnum .
		\', column ' . v:beval_col .
		\ ' of file ' .  bufname(v:beval_bufnr) .
		\ ' on word "' . v:beval_text . '"'
    endfunction
    set bexpr=MyBalloonExpr()
    set ballooneval
<
	Also see |balloon_show()|, can be used if the content of the balloon
	is to be fetched asynchronously.

	NOTE: The balloon is displayed only if the cursor is on a text
	character.  If the result of evaluating 'balloonexpr' is not empty,
	Vim does not try to send a message to an external debugger (Netbeans
	or Sun Workshop).

	The expression will be evaluated in the |sandbox| when set from a
	modeline, see |sandbox-option|.

	It is not allowed to change text or jump to another window while
	evaluating 'balloonexpr' |textlock|.

	To check whether line breaks in the balloon text work use this check: >
		if has("balloon_multiline")
<	When they are supported "\n" characters will start a new line.  If the
	expression evaluates to a |List| this is equal to using each List item
	as a string and putting "\n" in between them.
	NOTE: This option is set to "" when 'compatible' is set.

						*'belloff'* *'bo'*
'belloff' 'bo'		string	(default "")
			global
			{not in Vi}
	Specifies for which events the bell will not be rung. It is a comma
	separated list of items. For each item that is present, the bell
	will be silenced. This is most useful to specify specific events in
	insert mode to be silenced.

	item	    meaning when present	~
	all	    All events.
	backspace   When hitting <BS> or <Del> and deleting results in an
		    error.
	cursor	    Fail to move around using the cursor keys or
		    <PageUp>/<PageDown> in |Insert-mode|.
	complete    Error occurred when using |i_CTRL-X_CTRL-K| or
		    |i_CTRL-X_CTRL-T|.
	copy	    Cannot copy char from insert mode using |i_CTRL-Y| or
		    |i_CTRL-E|.
	ctrlg	    Unknown Char after <C-G> in Insert mode.
	error	    Other Error occurred (e.g. try to join last line)
		    (mostly used in |Normal-mode| or |Cmdline-mode|).
	esc	    hitting <Esc> in |Normal-mode|.
	ex	    In |Visual-mode|, hitting |Q| results in an error.
	hangul	    Error occurred when using hangul input.
	insertmode  Pressing <Esc> in 'insertmode'.
	lang	    Calling the beep module for Lua/Mzscheme/TCL.
	mess	    No output available for |g<|.
	showmatch   Error occurred for 'showmatch' function.
	operator    Empty region error |cpo-E|.
	register    Unknown register after <C-R> in |Insert-mode|.
	shell	    Bell from shell output |:!|.
	spell	    Error happened on spell suggest.
	wildmode    More matches in |cmdline-completion| available
		    (depends on the 'wildmode' setting).

	This is most useful to fine tune when in Insert mode the bell should
	be rung. For Normal mode and Ex commands, the bell is often rung to
	indicate that an error occurred. It can be silenced by adding the
	"error" keyword.

				     *'binary'* *'bin'* *'nobinary'* *'nobin'*
'binary' 'bin'		boolean	(default off)
			local to buffer
			{not in Vi}
	This option should be set before editing a binary file.  You can also
	use the |-b| Vim argument.  When this option is switched on a few
	options will be changed (also when it already was on):
		'textwidth'  will be set to 0
		'wrapmargin' will be set to 0
		'modeline'   will be off
		'expandtab'  will be off
	Also, 'fileformat' and 'fileformats' options will not be used, the
	file is read and written like 'fileformat' was "unix" (a single <NL>
	separates lines).
	The 'fileencoding' and 'fileencodings' options will not be used, the
	file is read without conversion.
	NOTE: When you start editing a(nother) file while the 'bin' option is
	on, settings from autocommands may change the settings again (e.g.,
	'textwidth'), causing trouble when editing.  You might want to set
	'bin' again when the file has been loaded.
	The previous values of these options are remembered and restored when
	'bin' is switched from on to off.  Each buffer has its own set of
	saved option values.
	To edit a file with 'binary' set you can use the |++bin| argument.
	This avoids you have to do ":set bin", which would have effect for all
	files you edit.
	When writing a file the <EOL> for the last line is only written if
	there was one in the original file (normally Vim appends an <EOL> to
	the last line if there is none; this would make the file longer).  See
	the 'endofline' option.

			*'bioskey'* *'biosk'* *'nobioskey'* *'nobiosk'*
'bioskey' 'biosk'	boolean	(default on)
			global
			{not in Vi}  {only for MS-DOS}
	This was for MS-DOS and is no longer supported.

							*'bomb'* *'nobomb'*
'bomb'			boolean	(default off)
			local to buffer
			{not in Vi}
			{only available when compiled with the |+multi_byte|
			feature}
	When writing a file and the following conditions are met, a BOM (Byte
	Order Mark) is prepended to the file:
	- this option is on
	- the 'binary' option is off
	- 'fileencoding' is "utf-8", "ucs-2", "ucs-4" or one of the little/big
	  endian variants.
	Some applications use the BOM to recognize the encoding of the file.
	Often used for UCS-2 files on MS-Windows.  For other applications it
	causes trouble, for example: "cat file1 file2" makes the BOM of file2
	appear halfway the resulting file.  Gcc doesn't accept a BOM.
	When Vim reads a file and 'fileencodings' starts with "ucs-bom", a
	check for the presence of the BOM is done and 'bomb' set accordingly.
	Unless 'binary' is set, it is removed from the first line, so that you
	don't see it when editing.  When you don't change the options, the BOM
	will be restored when writing the file.

						*'breakat'* *'brk'*
'breakat' 'brk'		string	(default " ^I!@*-+;:,./?")
			global
			{not in Vi}
			{not available when compiled without the |+linebreak|
			feature}
	This option lets you choose which characters might cause a line
	break if 'linebreak' is on.  Only works for ASCII and also for 8-bit
	characters when 'encoding' is an 8-bit encoding.

			*'breakindent'* *'bri'* *'nobreakindent'* *'nobri'*
'breakindent' 'bri'	boolean (default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+linebreak|
			feature}
	Every wrapped line will continue visually indented (same amount of
	space as the beginning of that line), thus preserving horizontal blocks
	of text.
	NOTE: This option is reset when 'compatible' is set.

						*'breakindentopt'* *'briopt'*
'breakindentopt' 'briopt' string (default empty)
			local to window
			{not in Vi}
			{not available when compiled without the |+linebreak|
			feature}
	Settings for 'breakindent'. It can consist of the following optional
	items and must be separated by a comma:
		min:{n}	    Minimum text width that will be kept after
			    applying 'breakindent', even if the resulting
			    text should normally be narrower. This prevents
			    text indented almost to the right window border
			    occupying lot of vertical space when broken.
		shift:{n}   After applying 'breakindent', the wrapped line's
			    beginning will be shifted by the given number of
			    characters.  It permits dynamic French paragraph
			    indentation (negative) or emphasizing the line
			    continuation (positive).
		sbr	    Display the 'showbreak' value before applying the
			    additional indent.
	The default value for min is 20 and shift is 0.

						*'browsedir'* *'bsdir'*
'browsedir' 'bsdir'	string	(default: "last")
			global
			{not in Vi} {only for Motif, Athena, GTK, Mac and
			Win32 GUI}
	Which directory to use for the file browser:
	   last		Use same directory as with last file browser, where a
			file was opened or saved.
	   buffer	Use the directory of the related buffer.
	   current	Use the current directory.
	   {path}	Use the specified directory

						*'bufhidden'* *'bh'*
'bufhidden' 'bh'	string (default: "")
			local to buffer
			{not in Vi}
	This option specifies what happens when a buffer is no longer
	displayed in a window:
	  <empty>	follow the global 'hidden' option
	  hide		hide the buffer (don't unload it), also when 'hidden'
			is not set
	  unload	unload the buffer, also when 'hidden' is set or using
			|:hide|
	  delete	delete the buffer from the buffer list, also when
			'hidden' is set or using |:hide|, like using
			|:bdelete|
	  wipe		wipe out the buffer from the buffer list, also when
			'hidden' is set or using |:hide|, like using
			|:bwipeout|

	CAREFUL: when "unload", "delete" or "wipe" is used changes in a buffer
	are lost without a warning.  Also, these values may break autocommands
	that switch between buffers temporarily.
	This option is used together with 'buftype' and 'swapfile' to specify
	special kinds of buffers.   See |special-buffers|.

			*'buflisted'* *'bl'* *'nobuflisted'* *'nobl'* *E85*
'buflisted' 'bl'	boolean (default: on)
			local to buffer
			{not in Vi}
	When this option is set, the buffer shows up in the buffer list.  If
	it is reset it is not used for ":bnext", "ls", the Buffers menu, etc.
	This option is reset by Vim for buffers that are only used to remember
	a file name or marks.  Vim sets it when starting to edit a buffer.
	But not when moving to a buffer with ":buffer".

						*'buftype'* *'bt'* *E382*
'buftype' 'bt'		string (default: "")
			local to buffer
			{not in Vi}
	The value of this option specifies the type of a buffer:
	  <empty>	normal buffer
	  nofile	buffer which is not related to a file and will not be
			written
	  nowrite	buffer which will not be written
	  acwrite	buffer which will always be written with BufWriteCmd
			autocommands.
	  quickfix	quickfix buffer, contains list of errors |:cwindow|
			or list of locations |:lwindow|
	  help		help buffer (you are not supposed to set this
			manually)
	  terminal	buffer for a |terminal| (you are not supposed to set
			this manually)

	This option is used together with 'bufhidden' and 'swapfile' to
	specify special kinds of buffers.   See |special-buffers|.

	Be careful with changing this option, it can have many side effects!

	A "quickfix" buffer is only used for the error list and the location
	list.  This value is set by the |:cwindow| and |:lwindow| commands and
	you are not supposed to change it.

	"nofile" and "nowrite" buffers are similar:
	both:		The buffer is not to be written to disk, ":w" doesn't
			work (":w filename" does work though).
	both:		The buffer is never considered to be |'modified'|.
			There is no warning when the changes will be lost, for
			example when you quit Vim.
	both:		A swap file is only created when using too much memory
			(when 'swapfile' has been reset there is never a swap
			file).
	nofile only:	The buffer name is fixed, it is not handled like a
			file name.  It is not modified in response to a |:cd|
			command.
	both:		When using ":e bufname" and already editing "bufname"
			the buffer is made empty and autocommands are
			triggered as usual for |:edit|.
							*E676*
	"acwrite" implies that the buffer name is not related to a file, like
	"nofile", but it will be written.  Thus, in contrast to "nofile" and
	"nowrite", ":w" does work and a modified buffer can't be abandoned
	without saving.  For writing there must be matching |BufWriteCmd|,
	|FileWriteCmd| or |FileAppendCmd| autocommands.

						*'casemap'* *'cmp'*
'casemap' 'cmp'		string	(default: "internal,keepascii")
			global
			{not in Vi}
			{only available when compiled with the |+multi_byte|
			feature}
	Specifies details about changing the case of letters.  It may contain
	these words, separated by a comma:
	internal	Use internal case mapping functions, the current
			locale does not change the case mapping.  This only
			matters when 'encoding' is a Unicode encoding,
			"latin1" or "iso-8859-15".  When "internal" is
			omitted, the towupper() and towlower() system library
			functions are used when available.
	keepascii	For the ASCII characters (0x00 to 0x7f) use the US
			case mapping, the current locale is not effective.
			This probably only matters for Turkish.

						*'cdpath'* *'cd'* *E344* *E346*
'cdpath' 'cd'		string	(default: equivalent to $CDPATH or ",,")
			global
			{not in Vi}
			{not available when compiled without the
			|+file_in_path| feature}
	This is a list of directories which will be searched when using the
	|:cd| and |:lcd| commands, provided that the directory being searched
	for has a relative path, not an absolute part starting with "/", "./"
	or "../", the 'cdpath' option is not used then.
	The 'cdpath' option's value has the same form and semantics as
	|'path'|.  Also see |file-searching|.
	The default value is taken from $CDPATH, with a "," prepended to look
	in the current directory first.
	If the default value taken from $CDPATH is not what you want, include
	a modified version of the following command in your vimrc file to
	override it: >
	  :let &cdpath = ',' . substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g')
<	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.
	(parts of 'cdpath' can be passed to the shell to expand file names).

						*'cedit'*
'cedit'			string	(Vi default: "", Vim default: CTRL-F)
			global
			{not in Vi}
			{not available when compiled without the |+vertsplit|
			feature}
	The key used in Command-line Mode to open the command-line window.
	The default is CTRL-F when 'compatible' is off.
	Only non-printable keys are allowed.
	The key can be specified as a single character, but it is difficult to
	type.  The preferred way is to use the <> notation.  Examples: >
		:exe "set cedit=\<C-Y>"
		:exe "set cedit=\<Esc>"
<	|Nvi| also has this option, but it only uses the first character.
	See |cmdwin|.
	NOTE: This option is set to the Vim default value when 'compatible'
	is reset.

				*'charconvert'* *'ccv'* *E202* *E214* *E513*
'charconvert' 'ccv'	string (default "")
			global
			{only available when compiled with the |+multi_byte|
			and |+eval| features}
			{not in Vi}
	An expression that is used for character encoding conversion.  It is
	evaluated when a file that is to be read or has been written has a
	different encoding from what is desired.
	'charconvert' is not used when the internal iconv() function is
	supported and is able to do the conversion.  Using iconv() is
	preferred, because it is much faster.
	'charconvert' is not used when reading stdin |--|, because there is no
	file to convert from.  You will have to save the text in a file first.
	The expression must return zero or an empty string for success,
	non-zero for failure.
	The possible encoding names encountered are in 'encoding'.
	Additionally, names given in 'fileencodings' and 'fileencoding' are
	used.
	Conversion between "latin1", "unicode", "ucs-2", "ucs-4" and "utf-8"
	is done internally by Vim, 'charconvert' is not used for this.
	'charconvert' is also used to convert the viminfo file, if the 'c'
	flag is present in 'viminfo'.  Also used for Unicode conversion.
	Example: >
		set charconvert=CharConvert()
		fun CharConvert()
		  system("recode "
			\ . v:charconvert_from . ".." . v:charconvert_to
			\ . " <" . v:fname_in . " >" v:fname_out)
		  return v:shell_error
		endfun
<	The related Vim variables are:
		v:charconvert_from	name of the current encoding
		v:charconvert_to	name of the desired encoding
		v:fname_in		name of the input file
		v:fname_out		name of the output file
	Note that v:fname_in and v:fname_out will never be the same.
	Note that v:charconvert_from and v:charconvert_to may be different
	from 'encoding'.  Vim internally uses UTF-8 instead of UCS-2 or UCS-4.
	Encryption is not done by Vim when using 'charconvert'.  If you want
	to encrypt the file after conversion, 'charconvert' should take care
	of this.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

				   *'cindent'* *'cin'* *'nocindent'* *'nocin'*
'cindent' 'cin'		boolean	(default off)
			local to buffer
			{not in Vi}
			{not available when compiled without the |+cindent|
			feature}
	Enables automatic C program indenting.  See 'cinkeys' to set the keys
	that trigger reindenting in insert mode and 'cinoptions' to set your
	preferred indent style.
	If 'indentexpr' is not empty, it overrules 'cindent'.
	If 'lisp' is not on and both 'indentexpr' and 'equalprg' are empty,
	the "=" operator indents using this algorithm rather than calling an
	external program.
	See |C-indenting|.
	When you don't like the way 'cindent' works, try the 'smartindent'
	option or 'indentexpr'.
	This option is not used when 'paste' is set.
	NOTE: This option is reset when 'compatible' is set.

							*'cinkeys'* *'cink'*
'cinkeys' 'cink'	string	(default "0{,0},0),:,0#,!^F,o,O,e")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+cindent|
			feature}
	A list of keys that, when typed in Insert mode, cause reindenting of
	the current line.  Only used if 'cindent' is on and 'indentexpr' is
	empty.
	For the format of this option see |cinkeys-format|.
	See |C-indenting|.

						*'cinoptions'* *'cino'*
'cinoptions' 'cino'	string	(default "")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+cindent|
			feature}
	The 'cinoptions' affect the way 'cindent' reindents lines in a C
	program.  See |cinoptions-values| for the values of this option, and
	|C-indenting| for info on C indenting in general.


						*'cinwords'* *'cinw'*
'cinwords' 'cinw'	string	(default "if,else,while,do,for,switch")
			local to buffer
			{not in Vi}
			{not available when compiled without both the
			|+cindent| and the |+smartindent| features}
	These keywords start an extra indent in the next line when
	'smartindent' or 'cindent' is set.  For 'cindent' this is only done at
	an appropriate place (inside {}).
	Note that 'ignorecase' isn't used for 'cinwords'.  If case doesn't
	matter, include the keyword both the uppercase and lowercase:
	"if,If,IF".

						*'clipboard'* *'cb'*
'clipboard' 'cb'	string	(default "autoselect,exclude:cons\|linux"
						  for X-windows, "" otherwise)
			global
			{not in Vi}
			{only in GUI versions or when the |+xterm_clipboard|
			feature is included}
	This option is a list of comma separated names.
	These names are recognized:

						*clipboard-unnamed*
	unnamed		When included, Vim will use the clipboard register '*'
			for all yank, delete, change and put operations which
			would normally go to the unnamed register.  When a
			register is explicitly specified, it will always be
			used regardless of whether "unnamed" is in 'clipboard'
			or not.  The clipboard register can always be
			explicitly accessed using the "* notation.  Also see
			|gui-clipboard|.

						*clipboard-unnamedplus*
	unnamedplus	A variant of the "unnamed" flag which uses the
			clipboard register '+' (|quoteplus|) instead of
			register '*' for all yank, delete, change and put
			operations which would normally go to the unnamed
			register.  When "unnamed" is also included to the
			option, yank operations (but not delete, change or
			put) will additionally copy the text into register
			'*'.
			Only available with the |+X11| feature.
			Availability can be checked with: >
				if has('unnamedplus')
<
						*clipboard-autoselect*
	autoselect	Works like the 'a' flag in 'guioptions': If present,
			then whenever Visual mode is started, or the Visual
			area extended, Vim tries to become the owner of the
			windowing system's global selection or put the
			selected text on the clipboard used by the selection
			register "*.  See |guioptions_a| and |quotestar| for
			details.  When the GUI is active, the 'a' flag in
			'guioptions' is used, when the GUI is not active, this
			"autoselect" flag is used.
			Also applies to the modeless selection.

						*clipboard-autoselectplus*
	autoselectplus  Like "autoselect" but using the + register instead of
			the * register.  Compare to the 'P' flag in
			'guioptions'.

						*clipboard-autoselectml*
	autoselectml	Like "autoselect", but for the modeless selection
			only.  Compare to the 'A' flag in 'guioptions'.

						*clipboard-html*
	html		When the clipboard contains HTML, use this when
			pasting.  When putting text on the clipboard, mark it
			as HTML.  This works to copy rendered HTML from
			Firefox, paste it as raw HTML in Vim, select the HTML
			in Vim and paste it in a rich edit box in Firefox.
			You probably want to add this only temporarily,
			possibly use BufEnter autocommands.
			Only supported for GTK version 2 and later.
			Only available with the |+multi_byte| feature.

						*clipboard-exclude*
	exclude:{pattern}
			Defines a pattern that is matched against the name of
			the terminal 'term'.  If there is a match, no
			connection will be made to the X server.  This is
			useful in this situation:
			- Running Vim in a console.
			- $DISPLAY is set to start applications on another
			  display.
			- You do not want to connect to the X server in the
			  console, but do want this in a terminal emulator.
			To never connect to the X server use: >
				exclude:.*
<			This has the same effect as using the |-X| argument.
			Note that when there is no connection to the X server
			the window title won't be restored and the clipboard
			cannot be accessed.
			The value of 'magic' is ignored, {pattern} is
			interpreted as if 'magic' was on.
			The rest of the option value will be used for
			{pattern}, this must be the last entry.

						*'cmdheight'* *'ch'*
'cmdheight' 'ch'	number	(default 1)
			global
			{not in Vi}
	Number of screen lines to use for the command-line.  Helps avoiding
	|hit-enter| prompts.
	The value of this option is stored with the tab page, so that each tab
	page can have a different value.

						*'cmdwinheight'* *'cwh'*
'cmdwinheight' 'cwh'	number	(default 7)
			global
			{not in Vi}
			{not available when compiled without the |+vertsplit|
			feature}
	Number of screen lines to use for the command-line window. |cmdwin|

						*'colorcolumn'* *'cc'*
'colorcolumn' 'cc'	string	(default "")
			local to window
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	'colorcolumn' is a comma separated list of screen columns that are
	highlighted with ColorColumn |hl-ColorColumn|.  Useful to align
	text.  Will make screen redrawing slower.
	The screen column can be an absolute number, or a number preceded with
	'+' or '-', which is added to or subtracted from 'textwidth'. >

		:set cc=+1  " highlight column after 'textwidth'
		:set cc=+1,+2,+3  " highlight three columns after 'textwidth'
		:hi ColorColumn ctermbg=lightgrey guibg=lightgrey
<
	When 'textwidth' is zero then the items with '-' and '+' are not used.
	A maximum of 256 columns are highlighted.

						*'columns'* *'co'* *E594*
'columns' 'co'		number	(default 80 or terminal width)
			global
			{not in Vi}
	Number of columns of the screen.  Normally this is set by the terminal
	initialization and does not have to be set by hand.  Also see
	|posix-screen-size|.
	When Vim is running in the GUI or in a resizable window, setting this
	option will cause the window size to be changed.  When you only want
	to use the size for the GUI, put the command in your |gvimrc| file.
	When you set this option and Vim is unable to change the physical
	number of columns of the display, the display may be messed up.  For
	the GUI it is always possible and Vim limits the number of columns to
	what fits on the screen.  You can use this command to get the widest
	window possible: >
		:set columns=9999
<	Minimum value is 12, maximum value is 10000.

					*'comments'* *'com'* *E524* *E525*
'comments' 'com'	string	(default
				"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+comments|
			feature}
	A comma separated list of strings that can start a comment line.  See
	|format-comments|.  See |option-backslash| about using backslashes to
	insert a space.

					*'commentstring'* *'cms'* *E537*
'commentstring' 'cms'	string	(default "/*%s*/")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	A template for a comment.  The "%s" in the value is replaced with the
	comment text.  Currently only used to add markers for folding, see
	|fold-marker|.

			*'compatible'* *'cp'* *'nocompatible'* *'nocp'*
'compatible' 'cp'	boolean	(default on, off when a |vimrc| or |gvimrc|
					file is found, reset in |defaults.vim|)
			global
			{not in Vi}
	This option has the effect of making Vim either more Vi-compatible, or
	make Vim behave in a more useful way.

	This is a special kind of option, because when it's set or reset,
	other options are also changed as a side effect.
	NOTE: Setting or resetting this option can have a lot of unexpected
	effects: Mappings are interpreted in another way, undo behaves
	differently, etc.  If you set this option in your vimrc file, you
	should probably put it at the very start.

	By default this option is on and the Vi defaults are used for the
	options.  This default was chosen for those people who want to use Vim
	just like Vi, and don't even (want to) know about the 'compatible'
	option.
	When a |vimrc| or |gvimrc| file is found while Vim is starting up,
	this option is switched off, and all options that have not been
	modified will be set to the Vim defaults.  Effectively, this means
	that when a |vimrc| or |gvimrc| file exists, Vim will use the Vim
	defaults, otherwise it will use the Vi defaults.  (Note: This doesn't
	happen for the system-wide vimrc or gvimrc file, nor for a file given
	with the |-u| argument).  Also see |compatible-default| and
	|posix-compliance|.
	You can also set this option with the "-C" argument, and reset it with
	"-N".  See |-C| and |-N|.
	See 'cpoptions' for more fine tuning of Vi compatibility.

	When this option is set, numerous other options are set to make Vim as
	Vi-compatible as possible.  When this option is unset, various options
	are set to make Vim more useful.  The table below lists all the
	options affected.
	The {?} column indicates when the options are affected:
	+  Means that the option is set to the value given in {set value} when
	   'compatible' is set.
	&  Means that the option is set to the value given in {set value} when
	   'compatible' is set AND is set to its Vim default value when
	   'compatible' is unset.
	-  Means the option is NOT changed when setting 'compatible' but IS
	   set to its Vim default when 'compatible' is unset.
	The {effect} column summarises the change when 'compatible' is set.

	option		? set value	effect ~

	'allowrevins'	+ off		no CTRL-_ command
	'antialias'	+ off		don't use antialiased fonts
	'arabic'	+ off	 	reset arabic-related options
	'arabicshape'	+ on		correct character shapes
	'backspace'	+ ""		normal backspace
	'backup'	+ off		no backup file
	'backupcopy'	& Unix: "yes"	backup file is a copy
			  else: "auto"	copy or rename backup file
	'balloonexpr'	+ ""		text to show in evaluation balloon
	'breakindent'	+ off		don't indent when wrapping lines
	'cedit'		- {unchanged}	{set vim default only on resetting 'cp'}
	'cindent'	+ off		no C code indentation
	'compatible'	- {unchanged}	{set vim default only on resetting 'cp'}
	'copyindent'	+ off		don't copy indent structure
	'cpoptions'	& (all flags)	Vi-compatible flags
	'cscopepathcomp'+ 0		don't show directories in tags list
	'cscoperelative'+ off		don't use basename of path as prefix
	'cscopetag'	+ off		don't use cscope for ":tag"
	'cscopetagorder'+ 0		see |cscopetagorder|
	'cscopeverbose'	+ off		see |cscopeverbose|
	'delcombine'	+ off		unicode: delete whole char combination
	'digraph'	+ off		no digraphs
	'esckeys'	& off		no <Esc>-keys in Insert mode
	'expandtab'	+ off		tabs not expanded to spaces
	'fileformats'	& ""		no automatic file format detection,
			  "dos,unix"	except for DOS, Windows and OS/2
	'formatexpr'	+ ""		use 'formatprg' for auto-formatting
	'formatoptions'	& "vt"		Vi compatible formatting
	'gdefault'	+ off		no default 'g' flag for ":s"
	'history'	& 0		no commandline history
	'hkmap'		+ off		no Hebrew keyboard mapping
	'hkmapp'	+ off		no phonetic Hebrew keyboard mapping
	'hlsearch'	+ off		no highlighting of search matches
	'incsearch'	+ off		no incremental searching
	'indentexpr'	+ ""		no indenting by expression
	'insertmode'	+ off		do not start in Insert mode
	'iskeyword'	& "@,48-57,_"	keywords contain alphanumeric
						characters and '_'
	'joinspaces'	+ on		insert 2 spaces after period
	'modeline'	& off		no modelines
	'more'		& off		no pauses in listings
	'mzquantum'	- {unchanged}	{set vim default only on resetting 'cp'}
	'numberwidth'	& 8		min number of columns for line number
	'preserveindent'+ off		don't preserve current indent structure
						when changing it
	'revins'	+ off		no reverse insert
	'ruler'		+ off		no ruler
	'scrolljump'	+ 1		no jump scroll
	'scrolloff'	+ 0		no scroll offset
	'shelltemp'	- {unchanged}	{set vim default only on resetting 'cp'}
	'shiftround'	+ off		indent not rounded to shiftwidth
	'shortmess'	& ""		no shortening of messages
	'showcmd'	& off		command characters not shown
	'showmode'	& off		current mode not shown
	'sidescrolloff'	+ 0		cursor moves to edge of screen in scroll
	'smartcase'	+ off		no automatic ignore case switch
	'smartindent'	+ off		no smart indentation
	'smarttab'	+ off		no smart tab size
	'softtabstop'	+ 0		tabs are always 'tabstop' positions
	'startofline'	+ on		goto startofline with some commands
	'tagcase'	& "followic"	'ignorecase' when searching tags file
	'tagrelative'	& off		tag file names are not relative
	'termguicolors'	+ off		don't use highlight-(guifg|guibg)
	'textauto'	& off		no automatic textmode detection
	'textwidth'	+ 0		no automatic line wrap
	'tildeop'	+ off		tilde is not an operator
	'ttimeout'	+ off		no terminal timeout
	'undofile'	+ off		don't use an undo file
	'viminfo'       - {unchanged}	{set Vim default only on resetting 'cp'}
	'virtualedit'	+ ""		cursor can only be placed on characters
	'whichwrap'	& ""		left-right movements don't wrap
	'wildchar'	& CTRL-E	only when the current value is <Tab>
					use CTRL-E for cmdline completion
	'writebackup'	+ on or off	depends on the |+writebackup| feature

						*'complete'* *'cpt'* *E535*
'complete' 'cpt'	string	(default: ".,w,b,u,t,i")
			local to buffer
			{not in Vi}
	This option specifies how keyword completion |ins-completion| works
	when CTRL-P or CTRL-N are used.  It is also used for whole-line
	completion |i_CTRL-X_CTRL-L|.  It indicates the type of completion
	and the places to scan.  It is a comma separated list of flags:
	.	scan the current buffer ('wrapscan' is ignored)
	w	scan buffers from other windows
	b	scan other loaded buffers that are in the buffer list
	u	scan the unloaded buffers that are in the buffer list
	U	scan the buffers that are not in the buffer list
	k	scan the files given with the 'dictionary' option
	kspell  use the currently active spell checking |spell|
	k{dict}	scan the file {dict}.  Several "k" flags can be given,
		patterns are valid too.  For example: >
			:set cpt=k/usr/dict/*,k~/spanish
<	s	scan the files given with the 'thesaurus' option
	s{tsr}	scan the file {tsr}.  Several "s" flags can be given, patterns
		are valid too.
	i	scan current and included files
	d	scan current and included files for defined name or macro
		|i_CTRL-X_CTRL-D|
	]	tag completion
	t	same as "]"

	Unloaded buffers are not loaded, thus their autocmds |:autocmd| are
	not executed, this may lead to unexpected completions from some files
	(gzipped files for example).  Unloaded buffers are not scanned for
	whole-line completion.

	The default is ".,w,b,u,t,i", which means to scan:
	   1. the current buffer
	   2. buffers in other windows
	   3. other loaded buffers
	   4. unloaded buffers
	   5. tags
	   6. included files

	As you can see, CTRL-N and CTRL-P can be used to do any 'iskeyword'-
	based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns
	|i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).

						*'completefunc'* *'cfu'*
'completefunc' 'cfu'	string	(default: empty)
			local to buffer
			{not in Vi}
			{not available when compiled without the |+eval|
			or |+insert_expand| features}
	This option specifies a function to be used for Insert mode completion
	with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|
	See |complete-functions| for an explanation of how the function is
	invoked and what it should return.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'completeopt'* *'cot'*
'completeopt' 'cot'	string	(default: "menu,preview")
			global
			{not available when compiled without the
			|+insert_expand| feature}
			{not in Vi}
	A comma separated list of options for Insert mode completion
	|ins-completion|.  The supported values are:

	   menu	    Use a popup menu to show the possible completions.  The
		    menu is only shown when there is more than one match and
		    sufficient colors are available.  |ins-completion-menu|

	   menuone  Use the popup menu also when there is only one match.
		    Useful when there is additional information about the
		    match, e.g., what file it comes from.

	   longest  Only insert the longest common text of the matches.  If
		    the menu is displayed you can use CTRL-L to add more
		    characters.  Whether case is ignored depends on the kind
		    of completion.  For buffer text the 'ignorecase' option is
		    used.

	   preview  Show extra information about the currently selected
		    completion in the preview window.  Only works in
		    combination with "menu" or "menuone".

	   noinsert Do not insert any text for a match until the user selects
		    a match from the menu. Only works in combination with
		    "menu" or "menuone". No effect if "longest" is present.

	   noselect Do not select a match in the menu, force the user to
		    select one from the menu. Only works in combination with
		    "menu" or "menuone".


						*'concealcursor'* *'cocu'*
'concealcursor' 'cocu'	string (default: "")
			local to window
			{not in Vi}
			{not available when compiled without the |+conceal|
			feature}
	Sets the modes in which text in the cursor line can also be concealed.
	When the current mode is listed then concealing happens just like in
	other lines.
	  n		Normal mode
	  v		Visual mode
	  i		Insert mode
	  c		Command line editing, for 'incsearch'

	'v' applies to all lines in the Visual area, not only the cursor.
	A useful value is "nc".  This is used in help files.  So long as you
	are moving around text is concealed, but when starting to insert text
	or selecting a Visual area the concealed text is displayed, so that
	you can see what you are doing.
	Keep in mind that the cursor position is not always where it's
	displayed.  E.g., when moving vertically it may change column.


'conceallevel' 'cole'		*'conceallevel'* *'cole'*
			number (default 0)
			local to window
			{not in Vi}
			{not available when compiled without the |+conceal|
			feature}
	Determine how text with the "conceal" syntax attribute |:syn-conceal|
	is shown:

	Value		Effect ~
	0		Text is shown normally
	1		Each block of concealed text is replaced with one
			character.  If the syntax item does not have a custom
			replacement character defined (see |:syn-cchar|) the
			character defined in 'listchars' is used (default is a
			space).
			It is highlighted with the "Conceal" highlight group.
	2		Concealed text is completely hidden unless it has a
			custom replacement character defined (see
			|:syn-cchar|).
	3		Concealed text is completely hidden.

	Note: in the cursor line concealed text is not hidden, so that you can
	edit and copy the text.  This can be changed with the 'concealcursor'
	option.

				*'confirm'* *'cf'* *'noconfirm'* *'nocf'*
'confirm' 'cf'		boolean (default off)
			global
			{not in Vi}
	When 'confirm' is on, certain operations that would normally
	fail because of unsaved changes to a buffer, e.g. ":q" and ":e",
	instead raise a |dialog| asking if you wish to save the current
	file(s).  You can still use a ! to unconditionally |abandon| a buffer.
	If 'confirm' is off you can still activate confirmation for one
	command only (this is most useful in mappings) with the |:confirm|
	command.
	Also see the |confirm()| function and the 'v' flag in 'guioptions'.

			*'conskey'* *'consk'* *'noconskey'* *'noconsk'*
'conskey' 'consk'	boolean	(default off)
			global
			{not in Vi}  {only for MS-DOS}
	This was for MS-DOS and is no longer supported.

			*'copyindent'* *'ci'* *'nocopyindent'* *'noci'*
'copyindent' 'ci'	boolean	(default off)
			local to buffer
			{not in Vi}
	Copy the structure of the existing lines indent when autoindenting a
	new line.  Normally the new indent is reconstructed by a series of
	tabs followed by spaces as required (unless |'expandtab'| is enabled,
	in which case only spaces are used).  Enabling this option makes the
	new line copy whatever characters were used for indenting on the
	existing line.  'expandtab' has no effect on these characters, a Tab
	remains a Tab.  If the new indent is greater than on the existing
	line, the remaining space is filled in the normal manner.
	NOTE: This option is reset when 'compatible' is set.
	Also see 'preserveindent'.

						*'cpoptions'* *'cpo'* *cpo*
'cpoptions' 'cpo'	string	(Vim default: "aABceFs",
				 Vi default:  all flags)
			global
			{not in Vi}
	A sequence of single character flags.  When a character is present
	this indicates Vi-compatible behavior.  This is used for things where
	not being Vi-compatible is mostly or sometimes preferred.
	'cpoptions' stands for "compatible-options".
	Commas can be added for readability.
	To avoid problems with flags that are added in the future, use the
	"+=" and "-=" feature of ":set" |add-option-flags|.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.
	NOTE: This option is set to the POSIX default value at startup when
	the Vi default value would be used and the $VIM_POSIX environment
	variable exists |posix|.  This means Vim tries to behave like the
	POSIX specification.

	    contains	behavior	~
								*cpo-a*
		a	When included, a ":read" command with a file name
			argument will set the alternate file name for the
			current window.
								*cpo-A*
		A	When included, a ":write" command with a file name
			argument will set the alternate file name for the
			current window.
								*cpo-b*
		b	"\|" in a ":map" command is recognized as the end of
			the map command.  The '\' is included in the mapping,
			the text after the '|' is interpreted as the next
			command.  Use a CTRL-V instead of a backslash to
			include the '|' in the mapping.  Applies to all
			mapping, abbreviation, menu and autocmd commands.
			See also |map_bar|.
								*cpo-B*
		B	A backslash has no special meaning in mappings,
			abbreviations and the "to" part of the menu commands.
			Remove this flag to be able to use a backslash like a
			CTRL-V.  For example, the command ":map X \<Esc>"
			results in X being mapped to:
				'B' included:	"\^["	 (^[ is a real <Esc>)
				'B' excluded:	"<Esc>"  (5 characters)
				('<' excluded in both cases)
								*cpo-c*
		c	Searching continues at the end of any match at the
			cursor position, but not further than the start of the
			next line.  When not present searching continues
			one character from the cursor position.  With 'c'
			"abababababab" only gets three matches when repeating
			"/abab", without 'c' there are five matches.
								*cpo-C*
		C	Do not concatenate sourced lines that start with a
			backslash.  See |line-continuation|.
								*cpo-d*
		d	Using "./" in the 'tags' option doesn't mean to use
			the tags file relative to the current file, but the
			tags file in the current directory.
								*cpo-D*
		D	Can't use CTRL-K to enter a digraph after Normal mode
			commands with a character argument, like |r|, |f| and
			|t|.
								*cpo-e*
		e	When executing a register with ":@r", always add a
			<CR> to the last line, also when the register is not
			linewise.  If this flag is not present, the register
			is not linewise and the last line does not end in a
			<CR>, then the last line is put on the command-line
			and can be edited before hitting <CR>.
								*cpo-E*
		E	It is an error when using "y", "d", "c", "g~", "gu" or
			"gU" on an Empty region.  The operators only work when
			at least one character is to be operate on.  Example:
			This makes "y0" fail in the first column.
								*cpo-f*
		f	When included, a ":read" command with a file name
			argument will set the file name for the current buffer,
			if the current buffer doesn't have a file name yet.
								*cpo-F*
		F	When included, a ":write" command with a file name
			argument will set the file name for the current
			buffer, if the current buffer doesn't have a file name
			yet.  Also see |cpo-P|.
								*cpo-g*
		g	Goto line 1 when using ":edit" without argument.
								*cpo-H*
		H	When using "I" on a line with only blanks, insert
			before the last blank.  Without this flag insert after
			the last blank.
								*cpo-i*
		i	When included, interrupting the reading of a file will
			leave it modified.
								*cpo-I*
		I	When moving the cursor up or down just after inserting
			indent for 'autoindent', do not delete the indent.
								*cpo-j*
		j	When joining lines, only add two spaces after a '.',
			not after '!' or '?'.  Also see 'joinspaces'.
								*cpo-J*
		J	A |sentence| has to be followed by two spaces after
			the '.', '!' or '?'.  A <Tab> is not recognized as
			white space.
								*cpo-k*
		k	Disable the recognition of raw key codes in
			mappings, abbreviations, and the "to" part of menu
			commands.  For example, if <Key> sends ^[OA (where ^[
			is <Esc>), the command ":map X ^[OA" results in X
			being mapped to:
				'k' included:	"^[OA"	 (3 characters)
				'k' excluded:	"<Key>"  (one key code)
			Also see the '<' flag below.
								*cpo-K*
		K	Don't wait for a key code to complete when it is
			halfway a mapping.  This breaks mapping <F1><F1> when
			only part of the second <F1> has been read.  It
			enables cancelling the mapping by typing <F1><Esc>.
								*cpo-l*
		l	Backslash in a [] range in a search pattern is taken
			literally, only "\]", "\^", "\-" and "\\" are special.
			See |/[]|
			   'l' included: "/[ \t]"  finds <Space>, '\' and 't'
			   'l' excluded: "/[ \t]"  finds <Space> and <Tab>
			Also see |cpo-\|.
								*cpo-L*
		L	When the 'list' option is set, 'wrapmargin',
			'textwidth', 'softtabstop' and Virtual Replace mode
			(see |gR|) count a <Tab> as two characters, instead of
			the normal behavior of a <Tab>.
								*cpo-m*
		m	When included, a showmatch will always wait half a
			second.  When not included, a showmatch will wait half
			a second or until a character is typed.  |'showmatch'|
								*cpo-M*
		M	When excluded, "%" matching will take backslashes into
			account.  Thus in "( \( )" and "\( ( \)" the outer
			parenthesis match.  When included "%" ignores
			backslashes, which is Vi compatible.
								*cpo-n*
		n	When included, the column used for 'number' and
			'relativenumber' will also be used for text of wrapped
			lines.
								*cpo-o*
		o	Line offset to search command is not remembered for
			next search.
								*cpo-O*
		O	Don't complain if a file is being overwritten, even
			when it didn't exist when editing it.  This is a
			protection against a file unexpectedly created by
			someone else.  Vi didn't complain about this.
								*cpo-p*
		p	Vi compatible Lisp indenting.  When not present, a
			slightly better algorithm is used.
								*cpo-P*
		P	When included, a ":write" command that appends to a
			file will set the file name for the current buffer, if
			the current buffer doesn't have a file name yet and
			the 'F' flag is also included |cpo-F|.
								*cpo-q*
		q	When joining multiple lines leave the cursor at the
			position where it would be when joining two lines.
								*cpo-r*
		r	Redo ("." command) uses "/" to repeat a search
			command, instead of the actually used search string.
								*cpo-R*
		R	Remove marks from filtered lines.  Without this flag
			marks are kept like |:keepmarks| was used.
								*cpo-s*
		s	Set buffer options when entering the buffer for the
			first time.  This is like it is in Vim version 3.0.
			And it is the default.  If not present the options are
			set when the buffer is created.
								*cpo-S*
		S	Set buffer options always when entering a buffer
			(except 'readonly', 'fileformat', 'filetype' and
			'syntax').  This is the (most) Vi compatible setting.
			The options are set to the values in the current
			buffer.  When you change an option and go to another
			buffer, the value is copied.  Effectively makes the
			buffer options global to all buffers.

			's'    'S'     copy buffer options
			no     no      when buffer created
			yes    no      when buffer first entered (default)
			 X     yes     each time when buffer entered (vi comp.)
								*cpo-t*
		t	Search pattern for the tag command is remembered for
			"n" command.  Otherwise Vim only puts the pattern in
			the history for search pattern, but doesn't change the
			last used search pattern.
								*cpo-u*
		u	Undo is Vi compatible.  See |undo-two-ways|.
								*cpo-v*
		v	Backspaced characters remain visible on the screen in
			Insert mode.  Without this flag the characters are
			erased from the screen right away.  With this flag the
			screen newly typed text overwrites backspaced
			characters.
								*cpo-w*
		w	When using "cw" on a blank character, only change one
			character and not all blanks until the start of the
			next word.
								*cpo-W*
		W	Don't overwrite a readonly file.  When omitted, ":w!"
			overwrites a readonly file, if possible.
								*cpo-x*
		x	<Esc> on the command-line executes the command-line.
			The default in Vim is to abandon the command-line,
			because <Esc> normally aborts a command.  |c_<Esc>|
								*cpo-X*
		X	When using a count with "R" the replaced text is
			deleted only once.  Also when repeating "R" with "."
			and a count.
								*cpo-y*
		y	A yank command can be redone with ".".
								*cpo-Z*
		Z	When using "w!" while the 'readonly' option is set,
			don't reset 'readonly'.
								*cpo-!*
		!	When redoing a filter command, use the last used
			external command, whatever it was.  Otherwise the last
			used -filter- command is used.
								*cpo-$*
		$	When making a change to one line, don't redisplay the
			line, but put a '$' at the end of the changed text.
			The changed text will be overwritten when you type the
			new text.  The line is redisplayed if you type any
			command that moves the cursor from the insertion
			point.
								*cpo-%*
		%	Vi-compatible matching is done for the "%" command.
			Does not recognize "#if", "#endif", etc.
			Does not recognize "/*" and "*/".
			Parens inside single and double quotes are also
			counted, causing a string that contains a paren to
			disturb the matching.  For example, in a line like
			"if (strcmp("foo(", s))" the first paren does not
			match the last one.  When this flag is not included,
			parens inside single and double quotes are treated
			specially.  When matching a paren outside of quotes,
			everything inside quotes is ignored.  When matching a
			paren inside quotes, it will find the matching one (if
			there is one).  This works very well for C programs.
			This flag is also used for other features, such as
			C-indenting.
								*cpo--*
		-	When included, a vertical movement command fails when
			it would go above the first line or below the last
			line.  Without it the cursor moves to the first or
			last line, unless it already was in that line.
			Applies to the commands "-", "k", CTRL-P, "+", "j",
			CTRL-N, CTRL-J and ":1234".
								*cpo-+*
		+	When included, a ":write file" command will reset the
			'modified' flag of the buffer, even though the buffer
			itself may still be different from its file.
								*cpo-star*
		*	Use ":*" in the same way as ":@".  When not included,
			":*" is an alias for ":'<,'>", select the Visual area.
								*cpo-<*
		<	Disable the recognition of special key codes in |<>|
			form in mappings, abbreviations, and the "to" part of
			menu commands.  For example, the command
			":map X <Tab>" results in X being mapped to:
				'<' included:	"<Tab>"  (5 characters)
				'<' excluded:	"^I"	 (^I is a real <Tab>)
			Also see the 'k' flag above.
								*cpo->*
		>	When appending to a register, put a line break before
			the appended text.
								*cpo-;*
		;	When using |,| or |;| to repeat the last |t| search
			and the cursor is right in front of the searched
			character, the cursor won't move. When not included,
			the cursor would skip over it and jump to the
			following occurrence.

	POSIX flags.  These are not included in the Vi default value, except
	when $VIM_POSIX was set on startup. |posix|

	    contains	behavior	~
								*cpo-#*
		#	A count before "D", "o" and "O" has no effect.
								*cpo-&*
		&	When ":preserve" was used keep the swap file when
			exiting normally while this buffer is still loaded.
			This flag is tested when exiting.
								*cpo-\*
		\	Backslash in a [] range in a search pattern is taken
			literally, only "\]" is special  See |/[]|
			   '\' included: "/[ \-]"  finds <Space>, '\' and '-'
			   '\' excluded: "/[ \-]"  finds <Space> and '-'
			Also see |cpo-l|.
								*cpo-/*
		/	When "%" is used as the replacement string in a |:s|
			command, use the previous replacement string. |:s%|
								*cpo-{*
		{	The |{| and |}| commands also stop at a "{" character
			at the start of a line.
								*cpo-.*
		.	The ":chdir" and ":cd" commands fail if the current
			buffer is modified, unless ! is used.  Vim doesn't
			need this, since it remembers the full path of an
			opened file.
								*cpo-bar*
		|	The value of the $LINES and $COLUMNS environment
			variables overrule the terminal size values obtained
			with system specific functions.


						*'cryptmethod'* *'cm'*
'cryptmethod' 'cm'	string	(default "zip")
			global or local to buffer |global-local|
			{not in Vi}
	Method used for encryption when the buffer is written to a file:
							*pkzip*
	   zip		PkZip compatible method.  A weak kind of encryption.
			Backwards compatible with Vim 7.2 and older.
							*blowfish*
	   blowfish	Blowfish method.  Medium strong encryption but it has
			an implementation flaw.  Requires Vim 7.3 or later,
			files can NOT be read by Vim 7.2 and older.  This adds
			a "seed" to the file, every time you write the file
			the encrypted bytes will be different.
							*blowfish2*
	   blowfish2	Blowfish method.  Medium strong encryption.  Requires
			Vim 7.4.401 or later, files can NOT be read by Vim 7.3
			and older.  This adds a "seed" to the file, every time
			you write the file the encrypted bytes will be
			different.  The whole undo file is encrypted, not just
			the pieces of text.

	You should use "blowfish2", also to re-encrypt older files.

	When reading an encrypted file 'cryptmethod' will be set automatically
	to the detected method of the file being read.  Thus if you write it
	without changing 'cryptmethod' the same method will be used.
	Changing 'cryptmethod' does not mark the file as modified, you have to
	explicitly write it, you don't get a warning unless there are other
	modifications.  Also see |:X|.

	When setting the global value to an empty string, it will end up with
	the value "zip".  When setting the local value to an empty string the
	buffer will use the global value.

	When a new encryption method is added in a later version of Vim, and
	the current version does not recognize it, you will get	*E821* .
	You need to edit this file with the later version of Vim.


						*'cscopepathcomp'* *'cspc'*
'cscopepathcomp' 'cspc'	number	(default 0)
			global
			{not available when compiled without the |+cscope|
			feature}
			{not in Vi}
	Determines how many components of the path to show in a list of tags.
	See |cscopepathcomp|.
	NOTE: This option is set to 0 when 'compatible' is set.

						*'cscopeprg'* *'csprg'*
'cscopeprg' 'csprg'	string	(default "cscope")
			global
			{not available when compiled without the |+cscope|
			feature}
			{not in Vi}
	Specifies the command to execute cscope.  See |cscopeprg|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'cscopequickfix'* *'csqf'*
'cscopequickfix' 'csqf' string	(default "")
			global
			{not available when compiled without the |+cscope|
			or |+quickfix| features}
			{not in Vi}
	Specifies whether to use quickfix window to show cscope results.
	See |cscopequickfix|.

		*'cscoperelative'* *'csre'* *'nocscoperelative'* *'nocsre'*
'cscoperelative' 'csre' boolean (default off)
			global
			{not available when compiled without the |+cscope|
			feature}
			{not in Vi}
	In the absence of a prefix (-P) for cscope. setting this option enables
	to use the basename of cscope.out path as the prefix.
	See |cscoperelative|.
	NOTE: This option is reset when 'compatible' is set.

				*'cscopetag'* *'cst'* *'nocscopetag'* *'nocst'*
'cscopetag' 'cst'	boolean (default off)
			global
			{not available when compiled without the |+cscope|
			feature}
			{not in Vi}
	Use cscope for tag commands.  See |cscope-options|.
	NOTE: This option is reset when 'compatible' is set.

						*'cscopetagorder'* *'csto'*
'cscopetagorder' 'csto'	number	(default 0)
			global
			{not available when compiled without the |+cscope|
			feature}
			{not in Vi}
	Determines the order in which ":cstag" performs a search.  See
	|cscopetagorder|.
	NOTE: This option is set to 0 when 'compatible' is set.

					*'cscopeverbose'* *'csverb'*
					*'nocscopeverbose'* *'nocsverb'*
'cscopeverbose' 'csverb' boolean (default off)
			global
			{not available when compiled without the |+cscope|
			feature}
			{not in Vi}
	Give messages when adding a cscope database.  See |cscopeverbose|.
	NOTE: This option is reset when 'compatible' is set.

			*'cursorbind'* *'crb'* *'nocursorbind'* *'nocrb'*
'cursorbind' 'crb'	boolean  (default off)
			local to window
			{not in Vi}
	When this option is set, as the cursor in the current
	window moves other cursorbound windows (windows that also have
	this option set) move their cursors to the corresponding line and
	column.  This option is useful for viewing the
	differences between two versions of a file (see 'diff'); in diff mode,
	inserted and deleted lines (though not characters within a line) are
	taken into account.


			*'cursorcolumn'* *'cuc'* *'nocursorcolumn'* *'nocuc'*
'cursorcolumn' 'cuc'	boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	Highlight the screen column of the cursor with CursorColumn
	|hl-CursorColumn|.  Useful to align text.  Will make screen redrawing
	slower.
	If you only want the highlighting in the current window you can use
	these autocommands: >
		au WinLeave * set nocursorline nocursorcolumn
		au WinEnter * set cursorline cursorcolumn
<

			*'cursorline'* *'cul'* *'nocursorline'* *'nocul'*
'cursorline' 'cul'	boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	Highlight the screen line of the cursor with CursorLine
	|hl-CursorLine|.  Useful to easily spot the cursor.  Will make screen
	redrawing slower.
	When Visual mode is active the highlighting isn't used to make it
	easier to see the selected text.


						*'debug'*
'debug'			string	(default "")
			global
			{not in Vi}
	These values can be used:
	msg	Error messages that would otherwise be omitted will be given
		anyway.
	throw	Error messages that would otherwise be omitted will be given
		anyway and also throw an exception and set |v:errmsg|.
	beep	A message will be given when otherwise only a beep would be
		produced.
	The values can be combined, separated by a comma.
	"msg" and "throw" are useful for debugging 'foldexpr', 'formatexpr' or
	'indentexpr'.

						*'define'* *'def'*
'define' 'def'		string	(default "^\s*#\s*define")
			global or local to buffer |global-local|
			{not in Vi}
	Pattern to be used to find a macro definition.  It is a search
	pattern, just like for the "/" command.  This option is used for the
	commands like "[i" and "[d" |include-search|.  The 'isident' option is
	used to recognize the defined name after the match:
		{match with 'define'}{non-ID chars}{defined name}{non-ID char}
	See |option-backslash| about inserting backslashes to include a space
	or backslash.
	The default value is for C programs.  For C++ this value would be
	useful, to include const type declarations: >
		^\(#\s*define\|[a-z]*\s*const\s*[a-z]*\)
<	When using the ":set" command, you need to double the backslashes!

			*'delcombine'* *'deco'* *'nodelcombine'* *'nodeco'*
'delcombine' 'deco'	boolean (default off)
			global
			{not in Vi}
			{only available when compiled with the |+multi_byte|
			feature}
	If editing Unicode and this option is set, backspace and Normal mode
	"x" delete each combining character on its own.  When it is off (the
	default) the character along with its combining characters are
	deleted.
	Note: When 'delcombine' is set "xx" may work different from "2x"!

	This is useful for Arabic, Hebrew and many other languages where one
	may have combining characters overtop of base characters, and want
	to remove only the combining ones.
	NOTE: This option is reset when 'compatible' is set.

						*'dictionary'* *'dict'*
'dictionary' 'dict'	string	(default "")
			global or local to buffer |global-local|
			{not in Vi}
	List of file names, separated by commas, that are used to lookup words
	for keyword completion commands |i_CTRL-X_CTRL-K|.  Each file should
	contain a list of words.  This can be one word per line, or several
	words per line, separated by non-keyword characters (white space is
	preferred).  Maximum line length is 510 bytes.
	When this option is empty, or an entry "spell" is present, spell
	checking is enabled the currently active spelling is used. |spell|
	To include a comma in a file name precede it with a backslash.  Spaces
	after a comma are ignored, otherwise spaces are included in the file
	name.  See |option-backslash| about using backslashes.
	This has nothing to do with the |Dictionary| variable type.
	Where to find a list of words?
	- On FreeBSD, there is the file "/usr/share/dict/words".
	- In the Simtel archive, look in the "msdos/linguist" directory.
	- In "miscfiles" of the GNU collection.
	The use of |:set+=| and |:set-=| is preferred when adding or removing
	directories from the list.  This avoids problems when a future version
	uses another default.
	Backticks cannot be used in this option for security reasons.

							*'diff'* *'nodiff'*
'diff'			boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+diff|
			feature}
	Join the current window in the group of windows that shows differences
	between files.  See |vimdiff|.

						*'dex'* *'diffexpr'*
'diffexpr' 'dex'	string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+diff|
			feature}
	Expression which is evaluated to obtain an ed-style diff file from two
	versions of a file.  See |diff-diffexpr|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'dip'* *'diffopt'*
'diffopt' 'dip'		string	(default "filler")
			global
			{not in Vi}
			{not available when compiled without the |+diff|
			feature}
	Option settings for diff mode.  It can consist of the following items.
	All are optional.  Items must be separated by a comma.

		filler		Show filler lines, to keep the text
				synchronized with a window that has inserted
				lines at the same position.  Mostly useful
				when windows are side-by-side and 'scrollbind'
				is set.

		context:{n}	Use a context of {n} lines between a change
				and a fold that contains unchanged lines.
				When omitted a context of six lines is used.
				See |fold-diff|.

		icase		Ignore changes in case of text.  "a" and "A"
				are considered the same.  Adds the "-i" flag
				to the "diff" command if 'diffexpr' is empty.

		iwhite		Ignore changes in amount of white space.  Adds
				the "-b" flag to the "diff" command if
				'diffexpr' is empty.  Check the documentation
				of the "diff" command for what this does
				exactly.  It should ignore adding trailing
				white space, but not leading white space.

		horizontal	Start diff mode with horizontal splits (unless
				explicitly specified otherwise).

		vertical	Start diff mode with vertical splits (unless
				explicitly specified otherwise).

		hiddenoff	Do not use diff mode for a buffer when it
				becomes hidden.

		foldcolumn:{n}	Set the 'foldcolumn' option to {n} when
				starting diff mode.  Without this 2 is used.

	Examples: >

		:set diffopt=filler,context:4
		:set diffopt=
		:set diffopt=filler,foldcolumn:3
<
				     *'digraph'* *'dg'* *'nodigraph'* *'nodg'*
'digraph' 'dg'		boolean	(default off)
			global
			{not in Vi}
			{not available when compiled without the |+digraphs|
			feature}
	Enable the entering of digraphs in Insert mode with {char1} <BS>
	{char2}.  See |digraphs|.
	NOTE: This option is reset when 'compatible' is set.

						*'directory'* *'dir'*
'directory' 'dir'	string	(default for Amiga: ".,t:",
				 for MS-DOS and Win32: ".,$TEMP,c:\tmp,c:\temp"
				 for Unix: ".,~/tmp,/var/tmp,/tmp")
			global
	List of directory names for the swap file, separated with commas.
	- The swap file will be created in the first directory where this is
	  possible.
	- Empty means that no swap file will be used (recovery is
	  impossible!).
	- A directory "." means to put the swap file in the same directory as
	  the edited file.  On Unix, a dot is prepended to the file name, so
	  it doesn't show in a directory listing.  On MS-Windows the "hidden"
	  attribute is set and a dot prepended if possible.
	- A directory starting with "./" (or ".\" for MS-DOS et al.) means to
	  put the swap file relative to where the edited file is.  The leading
	  "." is replaced with the path name of the edited file.
	- For Unix and Win32, if a directory ends in two path separators "//"
	  or "\\", the swap file name will be built from the complete path to
	  the file with all path separators substituted to percent '%' signs.
	  This will ensure file name uniqueness in the preserve directory.
	  On Win32, when a separating comma is following, you must use "//",
	  since "\\" will include the comma in the file name.
	- Spaces after the comma are ignored, other spaces are considered part
	  of the directory name.  To have a space at the start of a directory
	  name, precede it with a backslash.
	- To include a comma in a directory name precede it with a backslash.
	- A directory name may end in an ':' or '/'.
	- Environment variables are expanded |:set_env|.
	- Careful with '\' characters, type one before a space, type two to
	  get one in the option (see |option-backslash|), for example: >
	    :set dir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces
<	- For backwards compatibility with Vim version 3.0 a '>' at the start
	  of the option is removed.
	Using "." first in the list is recommended.  This means that editing
	the same file twice will result in a warning.  Using "/tmp" on Unix is
	discouraged: When the system crashes you lose the swap file.
	"/var/tmp" is often not cleared when rebooting, thus is a better
	choice than "/tmp".  But it can contain a lot of files, your swap
	files get lost in the crowd.  That is why a "tmp" directory in your
	home directory is tried first.
	The use of |:set+=| and |:set-=| is preferred when adding or removing
	directories from the list.  This avoids problems when a future version
	uses another default.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.
	{Vi: directory to put temp file in, defaults to "/tmp"}

					*'display'* *'dy'*
'display' 'dy'		string	(default "", set to "truncate" in
							       |defaults.vim|)
			global
			{not in Vi}
	Change the way text is displayed.  This is comma separated list of
	flags:
	lastline	When included, as much as possible of the last line
			in a window will be displayed.  "@@@" is put in the
			last columns of the last screen line to indicate the
			rest of the line is not displayed.
	truncate	Like "lastline", but "@@@" is displayed in the first
			column of the last screen line.  Overrules "lastline".
	uhex		Show unprintable characters hexadecimal as <xx>
			instead of using ^C and ~C.

	When neither "lastline" nor "truncate" is included, a last line that
	doesn't fit is replaced with "@" lines.

						*'eadirection'* *'ead'*
'eadirection' 'ead'	string	(default "both")
			global
			{not in Vi}
			{not available when compiled without the |+vertsplit|
			feature}
	Tells when the 'equalalways' option applies:
		ver	vertically, width of windows is not affected
		hor	horizontally, height of windows is not affected
		both	width and height of windows is affected

			   *'ed'* *'edcompatible'* *'noed'* *'noedcompatible'*
'edcompatible' 'ed'	boolean	(default off)
			global
	Makes the 'g' and 'c' flags of the ":substitute" command to be
	toggled each time the flag is given.  See |complex-change|.  See
	also 'gdefault' option.
	Switching this option on may break plugins!

					*'emoji'* *'emo'* *'noemoji'* *'noemo'*
'emoji' 'emo'	boolean (default: on)
			global
			{not in Vi}
			{only available when compiled with the |+multi_byte|
			feature}
	When on all Unicode emoji characters are considered to be full width.


					*'encoding'* *'enc'* *E543*
'encoding' 'enc'	string (default: "latin1" or value from $LANG)
			global
			{only available when compiled with the |+multi_byte|
			feature}
			{not in Vi}
	Sets the character encoding used inside Vim.  It applies to text in
	the buffers, registers, Strings in expressions, text stored in the
	viminfo file, etc.  It sets the kind of characters which Vim can work
	with.  See |encoding-names| for the possible values.

	NOTE: Changing this option will not change the encoding of the
	existing text in Vim.  It may cause non-ASCII text to become invalid.
	It should normally be kept at its default value, or set when Vim
	starts up.  See |multibyte|.  To reload the menus see |:menutrans|.

	This option cannot be set from a |modeline|.  It would most likely
	corrupt the text.

	NOTE: For GTK+ 2 or later, it is highly recommended to set 'encoding'
	to "utf-8".  Although care has been taken to allow different values of
	'encoding', "utf-8" is the natural choice for the environment and
	avoids unnecessary conversion overhead.  "utf-8" has not been made
	the default to prevent different behavior of the GUI and terminal
	versions, and to avoid changing the encoding of newly created files
	without your knowledge (in case 'fileencodings' is empty).

	The character encoding of files can be different from 'encoding'.
	This is specified with 'fileencoding'.  The conversion is done with
	iconv() or as specified with 'charconvert'.

	If you need to know whether 'encoding' is a multi-byte encoding, you
	can use: >
		if has("multi_byte_encoding")
<
	Normally 'encoding' will be equal to your current locale.  This will
	be the default if Vim recognizes your environment settings.  If
	'encoding' is not set to the current locale, 'termencoding' must be
	set to convert typed and displayed text.  See |encoding-table|.

	When you set this option, it fires the |EncodingChanged| autocommand
	event so that you can set up fonts if necessary.

	When the option is set, the value is converted to lowercase.  Thus
	you can set it with uppercase values too.  Underscores are translated
	to '-' signs.
	When the encoding is recognized, it is changed to the standard name.
	For example "Latin-1" becomes "latin1", "ISO_88592" becomes
	"iso-8859-2" and "utf8" becomes "utf-8".

	Note: "latin1" is also used when the encoding could not be detected.
	This only works when editing files in the same encoding!  When the
	actual character set is not latin1, make sure 'fileencoding' and
	'fileencodings' are empty.  When conversion is needed, switch to using
	utf-8.

	When "unicode", "ucs-2" or "ucs-4" is used, Vim internally uses utf-8.
	You don't notice this while editing, but it does matter for the
	|viminfo-file|.  And Vim expects the terminal to use utf-8 too.  Thus
	setting 'encoding' to one of these values instead of utf-8 only has
	effect for encoding used for files when 'fileencoding' is empty.

	When 'encoding' is set to a Unicode encoding, and 'fileencodings' was
	not set yet, the default for 'fileencodings' is changed.

			*'endofline'* *'eol'* *'noendofline'* *'noeol'*
'endofline' 'eol'	boolean	(default on)
			local to buffer
			{not in Vi}
	When writing a file and this option is off and the 'binary' option
	is on, or 'fixeol' option is off, no <EOL> will be written for the
	last line in the file.  This option is automatically set or reset when
	starting to edit a new file, depending on whether file has an <EOL>
	for the last line in the file.  Normally you don't have to set or
	reset this option.
	When 'binary' is off and 'fixeol' is on the value is not used when
	writing the file.  When 'binary' is on or 'fixeol' is off it is used
	to remember the presence of a <EOL> for the last line in the file, so
	that when you write the file the situation from the original file can
	be kept.  But you can change it if you want to.

			     *'equalalways'* *'ea'* *'noequalalways'* *'noea'*
'equalalways' 'ea'	boolean	(default on)
			global
			{not in Vi}
	When on, all the windows are automatically made the same size after
	splitting or closing a window.  This also happens the moment the
	option is switched on.  When off, splitting a window will reduce the
	size of the current window and leave the other windows the same.  When
	closing a window the extra lines are given to the window next to it
	(depending on 'splitbelow' and 'splitright').
	When mixing vertically and horizontally split windows, a minimal size
	is computed and some windows may be larger if there is room.  The
	'eadirection' option tells in which direction the size is affected.
	Changing the height and width of a window can be avoided by setting
	'winfixheight' and 'winfixwidth', respectively.
	If a window size is specified when creating a new window sizes are
	currently not equalized (it's complicated, but may be implemented in
	the future).

						*'equalprg'* *'ep'*
'equalprg' 'ep'		string	(default "")
			global or local to buffer |global-local|
			{not in Vi}
	External program to use for "=" command.  When this option is empty
	the internal formatting functions are used; either 'lisp', 'cindent'
	or 'indentexpr'.  When Vim was compiled without internal formatting,
	the "indent" program is used.
	Environment variables are expanded |:set_env|.  See |option-backslash|
	about including spaces and backslashes.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

			*'errorbells'* *'eb'* *'noerrorbells'* *'noeb'*
'errorbells' 'eb'	boolean	(default off)
			global
	Ring the bell (beep or screen flash) for error messages.  This only
	makes a difference for error messages, the bell will be used always
	for a lot of errors without a message (e.g., hitting <Esc> in Normal
	mode).  See 'visualbell' on how to make the bell behave like a beep,
	screen flash or do nothing. See 'belloff' to finetune when to ring the
	bell.

						*'errorfile'* *'ef'*
'errorfile' 'ef'	string	(Amiga default: "AztecC.Err",
					others: "errors.err")
			global
			{not in Vi}
			{not available when compiled without the |+quickfix|
			feature}
	Name of the errorfile for the QuickFix mode (see |:cf|).
	When the "-q" command-line argument is used, 'errorfile' is set to the
	following argument.  See |-q|.
	NOT used for the ":make" command.  See 'makeef' for that.
	Environment variables are expanded |:set_env|.
	See |option-backslash| about including spaces and backslashes.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'errorformat'* *'efm'*
'errorformat' 'efm'	string	(default is very long)
			global or local to buffer |global-local|
			{not in Vi}
			{not available when compiled without the |+quickfix|
			feature}
	Scanf-like description of the format for the lines in the error file
	(see |errorformat|).

				     *'esckeys'* *'ek'* *'noesckeys'* *'noek'*
'esckeys' 'ek'		boolean	(Vim default: on, Vi default: off)
			global
			{not in Vi}
	Function keys that start with an <Esc> are recognized in Insert
	mode.  When this option is off, the cursor and function keys cannot be
	used in Insert mode if they start with an <Esc>.  The advantage of
	this is that the single <Esc> is recognized immediately, instead of
	after one second.  Instead of resetting this option, you might want to
	try changing the values for 'timeoutlen' and 'ttimeoutlen'.  Note that
	when 'esckeys' is off, you can still map anything, but the cursor keys
	won't work by default.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'eventignore'* *'ei'*
'eventignore' 'ei'	string	(default "")
			global
			{not in Vi}
	A list of autocommand event names, which are to be ignored.
	When set to "all" or when "all" is one of the items, all autocommand
	events are ignored, autocommands will not be executed.
	Otherwise this is a comma separated list of event names.  Example: >
	    :set ei=WinEnter,WinLeave
<
				 *'expandtab'* *'et'* *'noexpandtab'* *'noet'*
'expandtab' 'et'	boolean	(default off)
			local to buffer
			{not in Vi}
	In Insert mode: Use the appropriate number of spaces to insert a
	<Tab>.  Spaces are used in indents with the '>' and '<' commands and
	when 'autoindent' is on.  To insert a real tab when 'expandtab' is
	on, use CTRL-V<Tab>.  See also |:retab| and |ins-expandtab|.
	This option is reset when the 'paste' option is set and restored when
	the 'paste' option is reset.
	NOTE: This option is reset when 'compatible' is set.

					*'exrc'* *'ex'* *'noexrc'* *'noex'*
'exrc' 'ex'		boolean (default off)
			global
			{not in Vi}
	Enables the reading of .vimrc, .exrc and .gvimrc in the current
	directory.

	Setting this option is a potential security leak.  E.g., consider
	unpacking a package or fetching files from github, a .vimrc in there
	might be a trojan horse.  BETTER NOT SET THIS OPTION!
	Instead, define an autocommand in your .vimrc to set options for a
	matching directory.

	If you do switch this option on you should also consider setting the
	'secure' option (see |initialization|).
	Also see |.vimrc| and |gui-init|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

				*'fileencoding'* *'fenc'* *E213*
'fileencoding' 'fenc'	string (default: "")
			local to buffer
			{only available when compiled with the |+multi_byte|
			feature}
			{not in Vi}
	Sets the character encoding for the file of this buffer.

	When 'fileencoding' is different from 'encoding', conversion will be
	done when writing the file.  For reading see below.
	When 'fileencoding' is empty, the same value as 'encoding' will be
	used (no conversion when reading or writing a file).
	No error will be given when the value is set, only when it is used,
	only when writing a file.
	Conversion will also be done when 'encoding' and 'fileencoding' are
	both a Unicode encoding and 'fileencoding' is not utf-8.  That's
	because internally Unicode is always stored as utf-8.
		WARNING: Conversion can cause loss of information!  When
		'encoding' is "utf-8" or another Unicode encoding, conversion
		is most likely done in a way that the reverse conversion
		results in the same text.  When 'encoding' is not "utf-8" some
		characters may be lost!

	See 'encoding' for the possible values.  Additionally, values may be
	specified that can be handled by the converter, see
	|mbyte-conversion|.

	When reading a file 'fileencoding' will be set from 'fileencodings'.
	To read a file in a certain encoding it won't work by setting
	'fileencoding', use the |++enc| argument.  One exception: when
	'fileencodings' is empty the value of 'fileencoding' is used.
	For a new file the global value of 'fileencoding' is used.

	Prepending "8bit-" and "2byte-" has no meaning here, they are ignored.
	When the option is set, the value is converted to lowercase.  Thus
	you can set it with uppercase values too.  '_' characters are
	replaced with '-'.  If a name is recognized from the list for
	'encoding', it is replaced by the standard name.  For example
	"ISO8859-2" becomes "iso-8859-2".

	When this option is set, after starting to edit a file, the 'modified'
	option is set, because the file would be different when written.

	Keep in mind that changing 'fenc' from a modeline happens
	AFTER the text has been read, thus it applies to when the file will be
	written.  If you do set 'fenc' in a modeline, you might want to set
	'nomodified' to avoid not being able to ":q".

	This option can not be changed when 'modifiable' is off.

							*'fe'*
	NOTE: Before version 6.0 this option specified the encoding for the
	whole of Vim, this was a mistake.  Now use 'encoding' instead.  The
	old short name was 'fe', which is no longer used.

					*'fileencodings'* *'fencs'*
'fileencodings' 'fencs'	string (default: "ucs-bom",
				    "ucs-bom,utf-8,default,latin1" when
				    'encoding' is set to a Unicode value)
			global
			{only available when compiled with the |+multi_byte|
			feature}
			{not in Vi}
	This is a list of character encodings considered when starting to edit
	an existing file.  When a file is read, Vim tries to use the first
	mentioned character encoding.  If an error is detected, the next one
	in the list is tried.  When an encoding is found that works,
	'fileencoding' is set to it.  If all fail, 'fileencoding' is set to
	an empty string, which means the value of 'encoding' is used.
		WARNING: Conversion can cause loss of information!  When
		'encoding' is "utf-8" (or one of the other Unicode variants)
		conversion is most likely done in a way that the reverse
		conversion results in the same text.  When 'encoding' is not
		"utf-8" some non-ASCII characters may be lost!  You can use
		the |++bad| argument to specify what is done with characters
		that can't be converted.
	For an empty file or a file with only ASCII characters most encodings
	will work and the first entry of 'fileencodings' will be used (except
	"ucs-bom", which requires the BOM to be present).  If you prefer
	another encoding use an BufReadPost autocommand event to test if your
	preferred encoding is to be used.  Example: >
		au BufReadPost * if search('\S', 'w') == 0 |
			\ set fenc=iso-2022-jp | endif
<	This sets 'fileencoding' to "iso-2022-jp" if the file does not contain
	non-blank characters.
	When the |++enc| argument is used then the value of 'fileencodings' is
	not used.
	Note that 'fileencodings' is not used for a new file, the global value
	of 'fileencoding' is used instead.  You can set it with: >
		:setglobal fenc=iso-8859-2
<	This means that a non-existing file may get a different encoding than
	an empty file.
	The special value "ucs-bom" can be used to check for a Unicode BOM
	(Byte Order Mark) at the start of the file.  It must not be preceded
	by "utf-8" or another Unicode encoding for this to work properly.
	An entry for an 8-bit encoding (e.g., "latin1") should be the last,
	because Vim cannot detect an error, thus the encoding is always
	accepted.
	The special value "default" can be used for the encoding from the
	environment.  This is the default value for 'encoding'.  It is useful
	when 'encoding' is set to "utf-8" and your environment uses a
	non-latin1 encoding, such as Russian.
	When 'encoding' is "utf-8" and a file contains an illegal byte
	sequence it won't be recognized as UTF-8.  You can use the |8g8|
	command to find the illegal byte sequence.
	WRONG VALUES:			WHAT'S WRONG:
		latin1,utf-8		"latin1" will always be used
		utf-8,ucs-bom,latin1	BOM won't be recognized in an utf-8
					file
		cp1250,latin1		"cp1250" will always be used
	If 'fileencodings' is empty, 'fileencoding' is not modified.
	See 'fileencoding' for the possible values.
	Setting this option does not have an effect until the next time a file
	is read.

					*'fileformat'* *'ff'*
'fileformat' 'ff'	string (MS-DOS, MS-Windows, OS/2 default: "dos",
				Unix default: "unix",
				Macintosh default: "mac")
			local to buffer
			{not in Vi}
	This gives the <EOL> of the current buffer, which is used for
	reading/writing the buffer from/to a file:
	    dos	    <CR> <NL>
	    unix    <NL>
	    mac	    <CR>
	When "dos" is used, CTRL-Z at the end of a file is ignored.
	See |file-formats| and |file-read|.
	For the character encoding of the file see 'fileencoding'.
	When 'binary' is set, the value of 'fileformat' is ignored, file I/O
	works like it was set to "unix".
	This option is set automatically when starting to edit a file and
	'fileformats' is not empty and 'binary' is off.
	When this option is set, after starting to edit a file, the 'modified'
	option is set, because the file would be different when written.
	This option can not be changed when 'modifiable' is off.
	For backwards compatibility: When this option is set to "dos",
	'textmode' is set, otherwise 'textmode' is reset.

					*'fileformats'* *'ffs'*
'fileformats' 'ffs'	string (default:
				Vim+Vi	MS-DOS, MS-Windows OS/2: "dos,unix",
				Vim	Unix: "unix,dos",
				Vim	Mac: "mac,unix,dos",
				Vi	Cygwin: "unix,dos",
				Vi	others: "")
			global
			{not in Vi}
	This gives the end-of-line (<EOL>) formats that will be tried when
	starting to edit a new buffer and when reading a file into an existing
	buffer:
	- When empty, the format defined with 'fileformat' will be used
	  always.  It is not set automatically.
	- When set to one name, that format will be used whenever a new buffer
	  is opened.  'fileformat' is set accordingly for that buffer.  The
	  'fileformats' name will be used when a file is read into an existing
	  buffer, no matter what 'fileformat' for that buffer is set to.
	- When more than one name is present, separated by commas, automatic
	  <EOL> detection will be done when reading a file.  When starting to
	  edit a file, a check is done for the <EOL>:
	  1. If all lines end in <CR><NL>, and 'fileformats' includes "dos",
	     'fileformat' is set to "dos".
	  2. If a <NL> is found and 'fileformats' includes "unix", 'fileformat'
	     is set to "unix".  Note that when a <NL> is found without a
	     preceding <CR>, "unix" is preferred over "dos".
	  3. If 'fileformat' has not yet been set, and if a <CR> is found, and
	     if 'fileformats' includes "mac", 'fileformat' is set to "mac".
	     This means that "mac" is only chosen when:
	      "unix" is not present or no <NL> is found in the file, and
	      "dos" is not present or no <CR><NL> is found in the file.
	     Except: if "unix" was chosen, but there is a <CR> before
	     the first <NL>, and there appear to be more <CR>s than <NL>s in
	     the first few lines, "mac" is used.
	  4. If 'fileformat' is still not set, the first name from
	     'fileformats' is used.
	  When reading a file into an existing buffer, the same is done, but
	  this happens like 'fileformat' has been set appropriately for that
	  file only, the option is not changed.
	When 'binary' is set, the value of 'fileformats' is not used.

	When Vim starts up with an empty buffer the first item is used.  You
	can overrule this by setting 'fileformat' in your .vimrc.

	For systems with a Dos-like <EOL> (<CR><NL>), when reading files that
	are ":source"ed and for vimrc files, automatic <EOL> detection may be
	done:
	- When 'fileformats' is empty, there is no automatic detection.  Dos
	  format will be used.
	- When 'fileformats' is set to one or more names, automatic detection
	  is done.  This is based on the first <NL> in the file: If there is a
	  <CR> in front of it, Dos format is used, otherwise Unix format is
	  used.
	Also see |file-formats|.
	For backwards compatibility: When this option is set to an empty
	string or one format (no comma is included), 'textauto' is reset,
	otherwise 'textauto' is set.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

		*'fileignorecase'* *'fic'* *'nofileignorecase'* *'nofic'*
'fileignorecase' 'fic'	boolean	(default on for systems where case in file
				 names is normally ignored)
			global
			{not in Vi}
	When set case is ignored when using file names and directories.
	See 'wildignorecase' for only ignoring case when doing completion.

					*'filetype'* *'ft'*
'filetype' 'ft'		string (default: "")
			local to buffer
			{not in Vi}
	When this option is set, the FileType autocommand event is triggered.
	All autocommands that match with the value of this option will be
	executed.  Thus the value of 'filetype' is used in place of the file
	name.
	Otherwise this option does not always reflect the current file type.
	This option is normally set when the file type is detected.  To enable
	this use the ":filetype on" command. |:filetype|
	Setting this option to a different value is most useful in a modeline,
	for a file for which the file type is not automatically recognized.
	Example, for in an IDL file:
		/* vim: set filetype=idl : */ ~
	|FileType| |filetypes|
	When a dot appears in the value then this separates two filetype
	names.  Example:
		/* vim: set filetype=c.doxygen : */ ~
	This will use the "c" filetype first, then the "doxygen" filetype.
	This works both for filetype plugins and for syntax files.  More than
	one dot may appear.
	This option is not copied to another buffer, independent of the 's' or
	'S' flag in 'cpoptions'.
	Only normal file name characters can be used, "/\*?[|<>" are illegal.

						*'fillchars'* *'fcs'*
'fillchars' 'fcs'	string	(default "vert:|,fold:-")
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			and |+folding| features}
	Characters to fill the statuslines and vertical separators.
	It is a comma separated list of items:

	  item		default		Used for ~
	  stl:c		' ' or '^'	statusline of the current window
	  stlnc:c	' ' or '='	statusline of the non-current windows
	  vert:c	'|'		vertical separators |:vsplit|
	  fold:c	'-'		filling 'foldtext'
	  diff:c	'-'		deleted lines of the 'diff' option

	Any one that is omitted will fall back to the default.  For "stl" and
	"stlnc" the space will be used when there is highlighting, '^' or '='
	otherwise.

	Example: >
	    :set fillchars=stl:^,stlnc:=,vert:\|,fold:-,diff:-
<	This is similar to the default, except that these characters will also
	be used when there is highlighting.

	for "stl" and "stlnc" only single-byte values are supported.

	The highlighting used for these items:
	  item		highlight group ~
	  stl:c		StatusLine		|hl-StatusLine|
	  stlnc:c	StatusLineNC		|hl-StatusLineNC|
	  vert:c	VertSplit		|hl-VertSplit|
	  fold:c	Folded			|hl-Folded|
	  diff:c	DiffDelete		|hl-DiffDelete|

		*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
'fixendofline' 'fixeol'	boolean	(default on)
			local to buffer
			{not in Vi}
	When writing a file and this option is on, <EOL> at the end of file
	will be restored if missing. Turn this option off if you want to
	preserve the situation from the original file.
	When the 'binary' option is set the value of this option doesn't
	matter.
	See the 'endofline' option.

					*'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
'fkmap' 'fk'		boolean (default off)			*E198*
			global
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	When on, the keyboard is mapped for the Farsi character set.
	Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
	toggle this option |i_CTRL-_|.  See |farsi.txt|.

						*'foldclose'* *'fcl'*
'foldclose' 'fcl'	string (default "")
			global
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	When set to "all", a fold is closed when the cursor isn't in it and
	its level is higher than 'foldlevel'.  Useful if you want folds to
	automatically close when moving out of them.

						*'foldcolumn'* *'fdc'*
'foldcolumn' 'fdc'	number (default 0)
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	When non-zero, a column with the specified width is shown at the side
	of the window which indicates open and closed folds.  The maximum
	value is 12.
	See |folding|.

			*'foldenable'* *'fen'* *'nofoldenable'* *'nofen'*
'foldenable' 'fen'	boolean (default on)
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	When off, all folds are open.  This option can be used to quickly
	switch between showing all text unfolded and viewing the text with
	folds (including manually opened or closed folds).  It can be toggled
	with the |zi| command.  The 'foldcolumn' will remain blank when
	'foldenable' is off.
	This option is set by commands that create a new fold or close a fold.
	See |folding|.

						*'foldexpr'* *'fde'*
'foldexpr' 'fde'	string (default: "0")
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			or |+eval| features}
	The expression used for when 'foldmethod' is "expr".  It is evaluated
	for each line to obtain its fold level.  See |fold-expr|.

	The expression will be evaluated in the |sandbox| if set from a
	modeline, see |sandbox-option|.
	This option can't be set from a |modeline| when the 'diff' option is
	on.

	It is not allowed to change text or jump to another window while
	evaluating 'foldexpr' |textlock|.

						*'foldignore'* *'fdi'*
'foldignore' 'fdi'	string (default: "#")
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	Used only when 'foldmethod' is "indent".  Lines starting with
	characters in 'foldignore' will get their fold level from surrounding
	lines.  White space is skipped before checking for this character.
	The default "#" works well for C programs.  See |fold-indent|.

						*'foldlevel'* *'fdl'*
'foldlevel' 'fdl'	number (default: 0)
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	Sets the fold level: Folds with a higher level will be closed.
	Setting this option to zero will close all folds.  Higher numbers will
	close fewer folds.
	This option is set by commands like |zm|, |zM| and |zR|.
	See |fold-foldlevel|.

						*'foldlevelstart'* *'fdls'*
'foldlevelstart' 'fdls'	number (default: -1)
			global
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	Sets 'foldlevel' when starting to edit another buffer in a window.
	Useful to always start editing with all folds closed (value zero),
	some folds closed (one) or no folds closed (99).
	This is done before reading any modeline, thus a setting in a modeline
	overrules this option.  Starting to edit a file for |diff-mode| also
	ignores this option and closes all folds.
	It is also done before BufReadPre autocommands, to allow an autocmd to
	overrule the 'foldlevel' value for specific files.
	When the value is negative, it is not used.

						*'foldmarker'* *'fmr'* *E536*
'foldmarker' 'fmr'	string (default: "{{{,}}}")
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	The start and end marker used when 'foldmethod' is "marker".  There
	must be one comma, which separates the start and end marker.  The
	marker is a literal string (a regular expression would be too slow).
	See |fold-marker|.

						*'foldmethod'* *'fdm'*
'foldmethod' 'fdm'	string (default: "manual")
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	The kind of folding used for the current window.  Possible values:
	|fold-manual|	manual	    Folds are created manually.
	|fold-indent|	indent	    Lines with equal indent form a fold.
	|fold-expr|	expr	    'foldexpr' gives the fold level of a line.
	|fold-marker|	marker	    Markers are used to specify folds.
	|fold-syntax|	syntax	    Syntax highlighting items specify folds.
	|fold-diff|	diff	    Fold text that is not changed.

						*'foldminlines'* *'fml'*
'foldminlines' 'fml'	number (default: 1)
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	Sets the number of screen lines above which a fold can be displayed
	closed.  Also for manually closed folds.  With the default value of
	one a fold can only be closed if it takes up two or more screen lines.
	Set to zero to be able to close folds of just one screen line.
	Note that this only has an effect on what is displayed.  After using
	"zc" to close a fold, which is displayed open because it's smaller
	than 'foldminlines', a following "zc" may close a containing fold.

						*'foldnestmax'* *'fdn'*
'foldnestmax' 'fdn'	number (default: 20)
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	Sets the maximum nesting of folds for the "indent" and "syntax"
	methods.  This avoids that too many folds will be created.  Using more
	than 20 doesn't work, because the internal limit is 20.

						*'foldopen'* *'fdo'*
'foldopen' 'fdo'	string (default: "block,hor,mark,percent,quickfix,
							     search,tag,undo")
			global
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	Specifies for which type of commands folds will be opened, if the
	command moves the cursor into a closed fold.  It is a comma separated
	list of items.
	NOTE: When the command is part of a mapping this option is not used.
	Add the |zv| command to the mapping to get the same effect.
	(rationale: the mapping may want to control opening folds itself)

		item		commands ~
		all		any
		block		"(", "{", "[[", "[{", etc.
		hor		horizontal movements: "l", "w", "fx", etc.
		insert		any command in Insert mode
		jump		far jumps: "G", "gg", etc.
		mark		jumping to a mark: "'m", CTRL-O, etc.
		percent		"%"
		quickfix	":cn", ":crew", ":make", etc.
		search		search for a pattern: "/", "n", "*", "gd", etc.
				(not for a search pattern in a ":" command)
				Also for |[s| and |]s|.
		tag		jumping to a tag: ":ta", CTRL-T, etc.
		undo		undo or redo: "u" and CTRL-R
	When a movement command is used for an operator (e.g., "dl" or "y%")
	this option is not used.  This means the operator will include the
	whole closed fold.
	Note that vertical movements are not here, because it would make it
	very difficult to move onto a closed fold.
	In insert mode the folds containing the cursor will always be open
	when text is inserted.
	To close folds you can re-apply 'foldlevel' with the |zx| command or
	set the 'foldclose' option to "all".

						*'foldtext'* *'fdt'*
'foldtext' 'fdt'	string (default: "foldtext()")
			local to window
			{not in Vi}
			{not available when compiled without the |+folding|
			feature}
	An expression which is used to specify the text displayed for a closed
	fold.  See |fold-foldtext|.

	The expression will be evaluated in the |sandbox| if set from a
	modeline, see |sandbox-option|.

	It is not allowed to change text or jump to another window while
	evaluating 'foldtext' |textlock|.

						*'formatexpr'* *'fex'*
'formatexpr' 'fex'	string (default "")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+eval|
			feature}
	Expression which is evaluated to format a range of lines for the |gq|
	operator or automatic formatting (see 'formatoptions').  When this
	option is empty 'formatprg' is used.

	The |v:lnum|  variable holds the first line to be formatted.
	The |v:count| variable holds the number of lines to be formatted.
	The |v:char|  variable holds the character that is going to be
		      inserted if the expression is being evaluated due to
		      automatic formatting.  This can be empty.  Don't insert
		      it yet!

	Example: >
		:set formatexpr=mylang#Format()
<	This will invoke the mylang#Format() function in the
	autoload/mylang.vim file in 'runtimepath'. |autoload|

	The expression is also evaluated when 'textwidth' is set and adding
	text beyond that limit.  This happens under the same conditions as
	when internal formatting is used.  Make sure the cursor is kept in the
	same spot relative to the text then!  The |mode()| function will
	return "i" or "R" in this situation.

	When the expression evaluates to non-zero Vim will fall back to using
	the internal format mechanism.

	The expression will be evaluated in the |sandbox| when set from a
	modeline, see |sandbox-option|.  That stops the option from working,
	since changing the buffer text is not allowed.
	NOTE: This option is set to "" when 'compatible' is set.

					*'formatoptions'* *'fo'*
'formatoptions' 'fo'	string (Vim default: "tcq", Vi default: "vt")
			local to buffer
			{not in Vi}
	This is a sequence of letters which describes how automatic
	formatting is to be done.  See |fo-table|.  When the 'paste' option is
	on, no formatting is done (like 'formatoptions' is empty).  Commas can
	be inserted for readability.
	To avoid problems with flags that are added in the future, use the
	"+=" and "-=" feature of ":set" |add-option-flags|.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

					*'formatlistpat'* *'flp'*
'formatlistpat' 'flp'	string (default: "^\s*\d\+[\]:.)}\t ]\s*")
			local to buffer
			{not in Vi}
	A pattern that is used to recognize a list header.  This is used for
	the "n" flag in 'formatoptions'.
	The pattern must match exactly the text that will be the indent for
	the line below it.  You can use |/\ze| to mark the end of the match
	while still checking more characters.  There must be a character
	following the pattern, when it matches the whole line it is handled
	like there is no match.
	The default recognizes a number, followed by an optional punctuation
	character and white space.

						*'formatprg'* *'fp'*
'formatprg' 'fp'	string (default "")
			global or local to buffer |global-local|
			{not in Vi}
	The name of an external program that will be used to format the lines
	selected with the |gq| operator.  The program must take the input on
	stdin and produce the output on stdout.  The Unix program "fmt" is
	such a program.
	If the 'formatexpr' option is not empty it will be used instead.
	Otherwise, if 'formatprg' option is an empty string, the internal
	format function will be used |C-indenting|.
	Environment variables are expanded |:set_env|.  See |option-backslash|
	about including spaces and backslashes.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

					*'fsync'* *'fs'* *'nofsync'* *'nofs'*
'fsync' 'fs'		boolean	(default on)
			global
			{not in Vi}
	When on, the library function fsync() will be called after writing a
	file.  This will flush a file to disk, ensuring that it is safely
	written even on filesystems which do metadata-only journaling.  This
	will force the harddrive to spin up on Linux systems running in laptop
	mode, so it may be undesirable in some situations.  Be warned that
	turning this off increases the chances of data loss after a crash.  On
	systems without an fsync() implementation, this variable is always
	off.
	Also see 'swapsync' for controlling fsync() on swap files.
	'fsync' also applies to |writefile()|, unless a flag is used to
	overrule it.

				   *'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
'gdefault' 'gd'		boolean	(default off)
			global
			{not in Vi}
	When on, the ":substitute" flag 'g' is default on.  This means that
	all matches in a line are substituted instead of one.  When a 'g' flag
	is given to a ":substitute" command, this will toggle the substitution
	of all or one match.  See |complex-change|.

		command		'gdefault' on	'gdefault' off	~
		:s///		  subst. all	  subst. one
		:s///g		  subst. one	  subst. all
		:s///gg		  subst. all	  subst. one

	NOTE: This option is reset when 'compatible' is set.
	DEPRECATED: Setting this option may break plugins that are not aware
	of this option.  Also, many users get confused that adding the /g flag
	has the opposite effect of that it normally does.

						*'grepformat'* *'gfm'*
'grepformat' 'gfm'	string	(default "%f:%l:%m,%f:%l%m,%f  %l%m")
			global
			{not in Vi}
	Format to recognize for the ":grep" command output.
	This is a scanf-like string that uses the same format as the
	'errorformat' option: see |errorformat|.

						*'grepprg'* *'gp'*
'grepprg' 'gp'		string	(default "grep -n ",
					Unix: "grep -n $* /dev/null",
					Win32: "findstr /n" or "grep -n",
						      VMS: "SEARCH/NUMBERS ")
			global or local to buffer |global-local|
			{not in Vi}
	Program to use for the |:grep| command.  This option may contain '%'
	and '#' characters, which are expanded like when used in a command-
	line.  The placeholder "$*" is allowed to specify where the arguments
	will be included.  Environment variables are expanded |:set_env|.  See
	|option-backslash| about including spaces and backslashes.
	When your "grep" accepts the "-H" argument, use this to make ":grep"
	also work well with a single file: >
		:set grepprg=grep\ -nH
<	Special value: When 'grepprg' is set to "internal" the |:grep| command
	works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like
	|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.
	See also the section |:make_makeprg|, since most of the comments there
	apply equally to 'grepprg'.
	For Win32, the default is "findstr /n" if "findstr.exe" can be found,
	otherwise it's "grep -n".
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

			*'guicursor'* *'gcr'* *E545* *E546* *E548* *E549*
'guicursor' 'gcr'	string	(default "n-v-c:block-Cursor/lCursor,
					ve:ver35-Cursor,
					o:hor50-Cursor,
					i-ci:ver25-Cursor/lCursor,
					r-cr:hor20-Cursor/lCursor,
					sm:block-Cursor
					-blinkwait175-blinkoff150-blinkon175",
				for MS-DOS and Win32 console:
					"n-v-c:block,o:hor50,i-ci:hor15,
					r-cr:hor30,sm:block")
			global
			{not in Vi}
			{only available when compiled with GUI enabled, and
			for MS-DOS and Win32 console}
	This option tells Vim what the cursor should look like in different
	modes.  It fully works in the GUI.  In an MSDOS or Win32 console, only
	the height of the cursor can be changed.  This can be done by
	specifying a block cursor, or a percentage for a vertical or
	horizontal cursor.
	For a console the 't_SI', 't_SR', and 't_EI' escape sequences are
	used.

	The option is a comma separated list of parts.  Each part consist of a
	mode-list and an argument-list:
		mode-list:argument-list,mode-list:argument-list,..
	The mode-list is a dash separated list of these modes:
		n	Normal mode
		v	Visual mode
		ve	Visual mode with 'selection' "exclusive" (same as 'v',
			if not specified)
		o	Operator-pending mode
		i	Insert mode
		r	Replace mode
		c	Command-line Normal (append) mode
		ci	Command-line Insert mode
		cr	Command-line Replace mode
		sm	showmatch in Insert mode
		a	all modes
	The argument-list is a dash separated list of these arguments:
		hor{N}	horizontal bar, {N} percent of the character height
		ver{N}	vertical bar, {N} percent of the character width
		block	block cursor, fills the whole character
			[only one of the above three should be present]
		blinkwait{N}				*cursor-blinking*
		blinkon{N}
		blinkoff{N}
			blink times for cursor: blinkwait is the delay before
			the cursor starts blinking, blinkon is the time that
			the cursor is shown and blinkoff is the time that the
			cursor is not shown.  The times are in msec.  When one
			of the numbers is zero, there is no blinking.  The
			default is: "blinkwait700-blinkon400-blinkoff250".
			These numbers are used for a missing entry.  This
			means that blinking is enabled by default.  To switch
			blinking off you can use "blinkon0".  The cursor only
			blinks when Vim is waiting for input, not while
			executing a command.
			To make the cursor blink in an xterm, see
			|xterm-blink|.
		{group-name}
			a highlight group name, that sets the color and font
			for the cursor
		{group-name}/{group-name}
			Two highlight group names, the first is used when
			no language mappings are used, the other when they
			are. |language-mapping|

	Examples of parts:
	   n-c-v:block-nCursor	in Normal, Command-line and Visual mode, use a
				block cursor with colors from the "nCursor"
				highlight group
	   i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150
				In Insert and Command-line Insert mode, use a
				30% vertical bar cursor with colors from the
				"iCursor" highlight group.  Blink a bit
				faster.

	The 'a' mode is different.  It will set the given argument-list for
	all modes.  It does not reset anything to defaults.  This can be used
	to do a common setting for all modes.  For example, to switch off
	blinking: "a:blinkon0"

	Examples of cursor highlighting: >
	    :highlight Cursor gui=reverse guifg=NONE guibg=NONE
	    :highlight Cursor gui=NONE guifg=bg guibg=fg
<
					*'guifont'* *'gfn'*
						   *E235* *E596*
'guifont' 'gfn'		string	(default "")
			global
			{not in Vi}
			{only available when compiled with GUI enabled}
	This is a list of fonts which will be used for the GUI version of Vim.
	In its simplest form the value is just one font name.  When
	the font cannot be found you will get an error message.  To try other
	font names a list can be specified, font names separated with commas.
	The first valid font is used.

	On systems where 'guifontset' is supported (X11) and 'guifontset' is
	not empty, then 'guifont' is not used.

	Note: As to the GTK GUIs, no error is given against any invalid names,
	and the first element of the list is always picked up and made use of.
	This is because, instead of identifying a given name with a font, the
	GTK GUIs use it to construct a pattern and try to look up a font which
	best matches the pattern among available fonts, and this way, the
	matching never fails.  An invalid name doesn't matter because a number
	of font properties other than name will do to get the matching done.

	Spaces after a comma are ignored.  To include a comma in a font name
	precede it with a backslash.  Setting an option requires an extra
	backslash before a space and a backslash.  See also
	|option-backslash|.  For example: >
	    :set guifont=Screen15,\ 7x13,font\\,with\\,commas
<	will make Vim try to use the font "Screen15" first, and if it fails it
	will try to use "7x13" and then "font,with,commas" instead.

	If none of the fonts can be loaded, Vim will keep the current setting.
	If an empty font list is given, Vim will try using other resource
	settings (for X, it will use the Vim.font resource), and finally it
	will try some builtin default which should always be there ("7x13" in
	the case of X).  The font names given should be "normal" fonts.  Vim
	will try to find the related bold and italic fonts.

	For Win32, GTK, Motif, Mac OS and Photon: >
	    :set guifont=*
<	will bring up a font requester, where you can pick the font you want.

	The font name depends on the GUI used.  See |setting-guifont| for a
	way to set 'guifont' for various systems.

	For the GTK+ 2 and 3 GUIs, the font name looks like this: >
	    :set guifont=Andale\ Mono\ 11
<	That's all.  XLFDs are not used.  For Chinese this is reported to work
	well: >
	    if has("gui_gtk2")
	      set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
	      set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
	    endif
<
        (Replace gui_gtk2 with gui_gtk3 for the GTK+ 3 GUI)

	For Mac OSX you can use something like this: >
	    :set guifont=Monaco:h10
<	Also see 'macatsui', it can help fix display problems.
								*E236*
	Note that the fonts must be mono-spaced (all characters have the same
	width).  An exception is GTK: all fonts are accepted, but mono-spaced
	fonts look best.

	To preview a font on X11, you might be able to use the "xfontsel"
	program.  The "xlsfonts" program gives a list of all available fonts.

	For the Win32 GUI					*E244* *E245*
	- takes these options in the font name:
		hXX - height is XX (points, can be floating-point)
		wXX - width is XX (points, can be floating-point)
		b   - bold
		i   - italic
		u   - underline
		s   - strikeout
		cXX - character set XX.  Valid charsets are: ANSI, ARABIC,
		      BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,
		      HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,
		      SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.
		      Normally you would use "cDEFAULT".
		qXX - quality XX.  Valid quality names are: PROOF, DRAFT,
		      ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT.
		      Normally you would use "qDEFAULT".
		      Some quality values are not supported in legacy OSs.

	  Use a ':' to separate the options.
	- A '_' can be used in the place of a space, so you don't need to use
	  backslashes to escape the spaces.
	- Examples: >
	    :set guifont=courier_new:h12:w5:b:cRUSSIAN
	    :set guifont=Andale_Mono:h7.5:w4.5
<	See also |font-sizes|.

					*'guifontset'* *'gfs'*
					*E250* *E252* *E234* *E597* *E598*
'guifontset' 'gfs'	string	(default "")
			global
			{not in Vi}
			{only available when compiled with GUI enabled and
			with the |+xfontset| feature}
			{not available in the GTK+ GUI}
	When not empty, specifies two (or more) fonts to be used.  The first
	one for normal English, the second one for your special language.  See
	|xfontset|.
	Setting this option also means that all font names will be handled as
	a fontset name.  Also the ones used for the "font" argument of the
	|:highlight| command.
	The fonts must match with the current locale.  If fonts for the
	character sets that the current locale uses are not included, setting
	'guifontset' will fail.
	Note the difference between 'guifont' and 'guifontset': In 'guifont'
	the comma-separated names are alternative names, one of which will be
	used.  In 'guifontset' the whole string is one fontset name,
	including the commas.  It is not possible to specify alternative
	fontset names.
	This example works on many X11 systems: >
		:set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*
<
				*'guifontwide'* *'gfw'* *E231* *E533* *E534*
'guifontwide' 'gfw'	string	(default "")
			global
			{not in Vi}
			{only available when compiled with GUI enabled}
	When not empty, specifies a comma-separated list of fonts to be used
	for double-width characters.  The first font that can be loaded is
	used.
	Note: The size of these fonts must be exactly twice as wide as the one
	specified with 'guifont' and the same height.

	All GUI versions but GTK+:

	'guifontwide' is only used when 'encoding' is set to "utf-8" and
	'guifontset' is empty or invalid.
	When 'guifont' is set and a valid font is found in it and
	'guifontwide' is empty Vim will attempt to find a matching
	double-width font and set 'guifontwide' to it.

	GTK+ GUI only:  		    	*guifontwide_gtk*

	If set and valid, 'guifontwide' is always used for double width
	characters, even if 'encoding' is not set to "utf-8".
	Vim does not attempt to find an appropriate value for 'guifontwide'
	automatically.  If 'guifontwide' is empty Pango/Xft will choose the
	font for characters not available in 'guifont'.  Thus you do not need
	to set 'guifontwide' at all unless you want to override the choice
	made by Pango/Xft.

	Windows +multibyte only:		*guifontwide_win_mbyte*

	If set and valid, 'guifontwide' is used for IME instead of 'guifont'.

						*'guiheadroom'* *'ghr'*
'guiheadroom' 'ghr'	number	(default 50)
			global
			{not in Vi} {only for GTK and X11 GUI}
	The number of pixels subtracted from the screen height when fitting
	the GUI window on the screen.  Set this before the GUI is started,
	e.g., in your |gvimrc| file.  When zero, the whole screen height will
	be used by the window.  When positive, the specified number of pixel
	lines will be left for window decorations and other items on the
	screen.  Set it to a negative value to allow windows taller than the
	screen.

						*'guioptions'* *'go'*
'guioptions' 'go'	string	(default "egmrLtT"   (MS-Windows, "t" is
						   removed in |defaults.vim|),
					 "aegimrLtT" (GTK, Motif and Athena),
					 )
			global
			{not in Vi}
			{only available when compiled with GUI enabled}
	This option only has an effect in the GUI version of Vim.  It is a
	sequence of letters which describes what components and options of the
	GUI should be used.
	To avoid problems with flags that are added in the future, use the
	"+=" and "-=" feature of ":set" |add-option-flags|.

	Valid characters are as follows:
								*'go-!'*
	  '!'	External commands are executed in a terminal window.  Without
		this flag the MS-Windows GUI will open a console window to
		execute the command.  The Unix GUI will simulate a dumb
		terminal to list the command output.
		The terminal window will be positioned at the bottom, and grow
		upwards as needed.
							*guioptions_a* *'go-a'*
	  'a'	Autoselect:  If present, then whenever VISUAL mode is started,
		or the Visual area extended, Vim tries to become the owner of
		the windowing system's global selection.  This means that the
		Visually highlighted text is available for pasting into other
		applications as well as into Vim itself.  When the Visual mode
		ends, possibly due to an operation on the text, or when an
		application wants to paste the selection, the highlighted text
		is automatically yanked into the "* selection register.
		Thus the selection is still available for pasting into other
		applications after the VISUAL mode has ended.
		    If not present, then Vim won't become the owner of the
		windowing system's global selection unless explicitly told to
		by a yank or delete operation for the "* register.
		The same applies to the modeless selection.
								*'go-P'*
	  'P'	Like autoselect but using the "+ register instead of the "*
		register.
								*'go-A'*
	  'A'	Autoselect for the modeless selection.  Like 'a', but only
		applies to the modeless selection.

		    'guioptions'   autoselect Visual  autoselect modeless ~
			 ""		 -			 -
			 "a"		yes			yes
			 "A"		 -			yes
			 "aA"		yes			yes

								*'go-c'*
	  'c'	Use console dialogs instead of popup dialogs for simple
		choices.
								*'go-e'*
	  'e'	Add tab pages when indicated with 'showtabline'.
		'guitablabel' can be used to change the text in the labels.
		When 'e' is missing a non-GUI tab pages line may be used.
		The GUI tabs are only supported on some systems, currently
		GTK, Motif, Mac OS/X and MS-Windows.
								*'go-f'*
	  'f'	Foreground: Don't use fork() to detach the GUI from the shell
		where it was started.  Use this for programs that wait for the
		editor to finish (e.g., an e-mail program).  Alternatively you
		can use "gvim -f" or ":gui -f" to start the GUI in the
		foreground.  |gui-fork|
		Note: Set this option in the vimrc file.  The forking may have
		happened already when the |gvimrc| file is read.
								*'go-i'*
	  'i'	Use a Vim icon.  For GTK with KDE it is used in the left-upper
		corner of the window.  It's black&white on non-GTK, because of
		limitations of X11.  For a color icon, see |X11-icon|.
								*'go-m'*
	  'm'	Menu bar is present.
								*'go-M'*
	  'M'	The system menu "$VIMRUNTIME/menu.vim" is not sourced.  Note
		that this flag must be added in the .vimrc file, before
		switching on syntax or filetype recognition (when the |gvimrc|
		file is sourced the system menu has already been loaded; the
		`:syntax on` and `:filetype on` commands load the menu too).
								*'go-g'*
	  'g'	Grey menu items: Make menu items that are not active grey.  If
		'g' is not included inactive menu items are not shown at all.
		Exception: Athena will always use grey menu items.
								*'go-t'*
	  't'	Include tearoff menu items.  Currently only works for Win32,
		GTK+, and Motif 1.2 GUI.
								*'go-T'*
	  'T'	Include Toolbar.  Currently only in Win32, GTK+, Motif, Photon
		and Athena GUIs.
								*'go-r'*
	  'r'	Right-hand scrollbar is always present.
								*'go-R'*
	  'R'	Right-hand scrollbar is present when there is a vertically
		split window.
								*'go-l'*
	  'l'	Left-hand scrollbar is always present.
								*'go-L'*
	  'L'	Left-hand scrollbar is present when there is a vertically
		split window.
								*'go-b'*
	  'b'	Bottom (horizontal) scrollbar is present.  Its size depends on
		the longest visible line, or on the cursor line if the 'h'
		flag is included. |gui-horiz-scroll|
								*'go-h'*
	  'h'	Limit horizontal scrollbar size to the length of the cursor
		line.  Reduces computations. |gui-horiz-scroll|

	And yes, you may even have scrollbars on the left AND the right if
	you really want to :-).  See |gui-scrollbars| for more information.

								*'go-v'*
	  'v'	Use a vertical button layout for dialogs.  When not included,
		a horizontal layout is preferred, but when it doesn't fit a
		vertical layout is used anyway.
								*'go-p'*
	  'p'	Use Pointer callbacks for X11 GUI.  This is required for some
		window managers.  If the cursor is not blinking or hollow at
		the right moment, try adding this flag.  This must be done
		before starting the GUI.  Set it in your |gvimrc|.  Adding or
		removing it after the GUI has started has no effect.
								*'go-F'*
	  'F'	Add a footer.  Only for Motif.  See |gui-footer|.
								*'go-k'*
	  'k'	Keep the GUI window size when adding/removing a scrollbar, or
		toolbar, tabline, etc.  Instead, the behavior is similar to
		when the window is maximized and will adjust 'lines' and
		'columns' to fit to the window.  Without the 'k' flag Vim will
		try to keep 'lines' and 'columns' the same when adding and
		removing GUI components.

						*'guipty'* *'noguipty'*
'guipty'		boolean	(default on)
			global
			{not in Vi}
			{only available when compiled with GUI enabled}
	Only in the GUI: If on, an attempt is made to open a pseudo-tty for
	I/O to/from shell commands.  See |gui-pty|.

						*'guitablabel'* *'gtl'*
'guitablabel' 'gtl'	string	(default empty)
			global
			{not in Vi}
			{only available when compiled with GUI enabled and
			with the |+windows| feature}
	When nonempty describes the text to use in a label of the GUI tab
	pages line.  When empty and when the result is empty Vim will use a
	default label.  See |setting-guitablabel| for more info.

	The format of this option is like that of 'statusline'.
	'guitabtooltip' is used for the tooltip, see below.
	The expression will be evaluated in the |sandbox| when set from a
	modeline, see |sandbox-option|.

	Only used when the GUI tab pages line is displayed.  'e' must be
	present in 'guioptions'.  For the non-GUI tab pages line 'tabline' is
	used.

						*'guitabtooltip'* *'gtt'*
'guitabtooltip' 'gtt'	string	(default empty)
			global
			{not in Vi}
			{only available when compiled with GUI enabled and
			with the |+windows| feature}
	When nonempty describes the text to use in a tooltip for the GUI tab
	pages line.  When empty Vim will use a default tooltip.
	This option is otherwise just like 'guitablabel' above.
	You can include a line break.  Simplest method is to use |:let|: >
		:let &guitabtooltip = "line one\nline two"
<

						*'helpfile'* *'hf'*
'helpfile' 'hf'		string	(default (MSDOS)  "$VIMRUNTIME\doc\help.txt"
					 (others) "$VIMRUNTIME/doc/help.txt")
			global
			{not in Vi}
	Name of the main help file.  All distributed help files should be
	placed together in one directory.  Additionally, all "doc" directories
	in 'runtimepath' will be used.
	Environment variables are expanded |:set_env|.  For example:
	"$VIMRUNTIME/doc/help.txt".  If $VIMRUNTIME is not set, $VIM is also
	tried.  Also see |$VIMRUNTIME| and |option-backslash| about including
	spaces and backslashes.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'helpheight'* *'hh'*
'helpheight' 'hh'	number	(default 20)
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	Minimal initial height of the help window when it is opened with the
	":help" command.  The initial height of the help window is half of the
	current window, or (when the 'ea' option is on) the same as other
	windows.  When the height is less than 'helpheight', the height is
	set to 'helpheight'.  Set to zero to disable.

						*'helplang'* *'hlg'*
'helplang' 'hlg'	string	(default: messages language or empty)
			global
			{only available when compiled with the |+multi_lang|
			feature}
			{not in Vi}
	Comma separated list of languages.  Vim will use the first language
	for which the desired help can be found.  The English help will always
	be used as a last resort.  You can add "en" to prefer English over
	another language, but that will only find tags that exist in that
	language and not in the English help.
	Example: >
		:set helplang=de,it
<	This will first search German, then Italian and finally English help
	files.
	When using |CTRL-]| and ":help!" in a non-English help file Vim will
	try to find the tag in the current language before using this option.
	See |help-translated|.

				     *'hidden'* *'hid'* *'nohidden'* *'nohid'*
'hidden' 'hid'		boolean	(default off)
			global
			{not in Vi}
	When off a buffer is unloaded when it is |abandon|ed.  When on a
	buffer becomes hidden when it is |abandon|ed.  If the buffer is still
	displayed in another window, it does not become hidden, of course.
	The commands that move through the buffer list sometimes make a buffer
	hidden although the 'hidden' option is off: When the buffer is
	modified, 'autowrite' is off or writing is not possible, and the '!'
	flag was used.  See also |windows.txt|.
	To only make one buffer hidden use the 'bufhidden' option.
	This option is set for one command with ":hide {command}" |:hide|.
	WARNING: It's easy to forget that you have changes in hidden buffers.
	Think twice when using ":q!" or ":qa!".

						*'highlight'* *'hl'*
'highlight' 'hl'	string	(default (as a single string):
				     "8:SpecialKey,~:EndOfBuffer,@:NonText,
				     d:Directory,e:ErrorMsg,i:IncSearch,
				     l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
				     N:CursorLineNr,r:Question,s:StatusLine,
				     S:StatusLineNC,c:VertSplit,t:Title,
				     v:Visual,w:WarningMsg,W:WildMenu,f:Folded,
				     F:FoldColumn,A:DiffAdd,C:DiffChange,
				     D:DiffDelete,T:DiffText,>:SignColumn,
				     B:SpellBad,P:SpellCap,R:SpellRare,
				     L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
				     x:PmenuSbar,X:PmenuThumb,*:TabLine,
				     #:TabLineSel,_:TabLineFill,!:CursorColumn,
				     .:CursorLine,o:ColorColumn,q:QuickFixLine,
				     z:StatusLineTerm,Z:StatusLineTermNC")
			global
			{not in Vi}
	This option can be used to set highlighting mode for various
	occasions.  It is a comma separated list of character pairs.  The
	first character in a pair gives the occasion, the second the mode to
	use for that occasion.  The occasions are:
	|hl-SpecialKey|	 8  Meta and special keys listed with ":map"
	|hl-EndOfBuffer|   ~  lines after the last line in the buffer
	|hl-NonText|	 @  '@' at the end of the window and
			    characters from 'showbreak'
	|hl-Directory|	 d  directories in CTRL-D listing and other special
			    things in listings
	|hl-ErrorMsg|	 e  error messages
			 h  (obsolete, ignored)
	|hl-IncSearch|	 i  'incsearch' highlighting
	|hl-Search|	 l  last search pattern highlighting (see 'hlsearch')
	|hl-MoreMsg|	 m  |more-prompt|
	|hl-ModeMsg|	 M  Mode (e.g., "-- INSERT --")
	|hl-LineNr|	 n  line number for ":number" and ":#" commands, and
			    when 'number' or 'relativenumber' option is set.
	|hl-CursorLineNr|  N like n for when 'cursorline' or 'relativenumber' is
			    set.
	|hl-Question|	 r  |hit-enter| prompt and yes/no questions
	|hl-StatusLine|	 s  status line of current window |status-line|
	|hl-StatusLineNC|  S  status lines of not-current windows
	|hl-Title|	 t  Titles for output from ":set all", ":autocmd" etc.
	|hl-VertSplit|	 c  column used to separate vertically split windows
	|hl-Visual|	 v  Visual mode
	|hl-VisualNOS|	 V  Visual mode when Vim does is "Not Owning the
			    Selection" Only X11 Gui's |gui-x11| and
			    |xterm-clipboard|.
	|hl-WarningMsg|	 w  warning messages
	|hl-WildMenu|	 W  wildcard matches displayed for 'wildmenu'
	|hl-Folded|	 f  line used for closed folds
	|hl-FoldColumn|	 F  'foldcolumn'
	|hl-DiffAdd|	 A  added line in diff mode
	|hl-DiffChange|	 C  changed line in diff mode
	|hl-DiffDelete|	 D  deleted line in diff mode
	|hl-DiffText|	 T  inserted text in diff mode
	|hl-SignColumn|	 >  column used for |signs|
	|hl-SpellBad|	 B  misspelled word |spell|
	|hl-SpellCap|	 P  word that should start with capital |spell|
	|hl-SpellRare|	 R  rare word |spell|
	|hl-SpellLocal|	 L  word from other region |spell|
	|hl-Conceal|	 -  the placeholders used for concealed characters
			    (see 'conceallevel')
	|hl-Pmenu|       +  popup menu normal line
	|hl-PmenuSel|    =  popup menu normal line
	|hl-PmenuSbar|   x  popup menu scrollbar
	|hl-PmenuThumb|  X  popup menu scrollbar thumb

	The display modes are:
		r	reverse		(termcap entry "mr" and "me")
		i	italic		(termcap entry "ZH" and "ZR")
		b	bold		(termcap entry "md" and "me")
		s	standout	(termcap entry "so" and "se")
		u	underline	(termcap entry "us" and "ue")
		c	undercurl	(termcap entry "Cs" and "Ce")
		t	strikethrough	(termcap entry "Ts" and "Te")
		n	no highlighting
		-	no highlighting
		:	use a highlight group
	The default is used for occasions that are not included.
	If you want to change what the display modes do, see |dos-colors|
	for an example.
	When using the ':' display mode, this must be followed by the name of
	a highlight group.  A highlight group can be used to define any type
	of highlighting, including using color.  See |:highlight| on how to
	define one.  The default uses a different group for each occasion.
	See |highlight-default| for the default highlight groups.

						*'history'* *'hi'*
'history' 'hi'		number	(Vim default: 50, Vi default: 0,
						 set to 200 in |defaults.vim|)
			global
			{not in Vi}
	A history of ":" commands, and a history of previous search patterns
	is remembered.  This option decides how many entries may be stored in
	each of these histories (see |cmdline-editing|).
	The maximum value is 10000.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

					 *'hkmap'* *'hk'* *'nohkmap'* *'nohk'*
'hkmap' 'hk'		boolean (default off)
			global
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	When on, the keyboard is mapped for the Hebrew character set.
	Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
	toggle this option.  See |rileft.txt|.
	NOTE: This option is reset when 'compatible' is set.

				 *'hkmapp'* *'hkp'* *'nohkmapp'* *'nohkp'*
'hkmapp' 'hkp'		boolean (default off)
			global
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	When on, phonetic keyboard mapping is used.  'hkmap' must also be on.
	This is useful if you have a non-Hebrew keyboard.
	See |rileft.txt|.
	NOTE: This option is reset when 'compatible' is set.

				 *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
'hlsearch' 'hls'	boolean	(default off)
			global
			{not in Vi}
			{not available when compiled without the
			|+extra_search| feature}
	When there is a previous search pattern, highlight all its matches.
	The type of highlighting used can be set with the 'l' occasion in the
	'highlight' option.  This uses the "Search" highlight group by
	default.  Note that only the matching text is highlighted, any offsets
	are not applied.
	See also: 'incsearch' and |:match|.
	When you get bored looking at the highlighted matches, you can turn it
	off with |:nohlsearch|.  This does not change the option value, as
	soon as you use a search command, the highlighting comes back.
	'redrawtime' specifies the maximum time spent on finding matches.
	When the search pattern can match an end-of-line, Vim will try to
	highlight all of the matched text.  However, this depends on where the
	search starts.  This will be the first line in the window or the first
	line below a closed fold.  A match in a previous line which is not
	drawn may not continue in a newly drawn line.
	You can specify whether the highlight status is restored on startup
	with the 'h' flag in 'viminfo' |viminfo-h|.
	NOTE: This option is reset when 'compatible' is set.

						*'icon'* *'noicon'*
'icon'			boolean	(default off, on when title can be restored)
			global
			{not in Vi}
			{not available when compiled without the |+title|
			feature}
	When on, the icon text of the window will be set to the value of
	'iconstring' (if it is not empty), or to the name of the file
	currently being edited.  Only the last part of the name is used.
	Overridden by the 'iconstring' option.
	Only works if the terminal supports setting window icons (currently
	only X11 GUI and terminals with a non-empty 't_IS' option - these are
	Unix xterm and iris-ansi by default, where 't_IS' is taken from the
	builtin termcap).
	When Vim was compiled with HAVE_X11 defined, the original icon will be
	restored if possible |X11|.  See |X11-icon| for changing the icon on
	X11.
	For MS-Windows the icon can be changed, see |windows-icon|.

						*'iconstring'*
'iconstring'		string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+title|
			feature}
	When this option is not empty, it will be used for the icon text of
	the window.  This happens only when the 'icon' option is on.
	Only works if the terminal supports setting window icon text
	(currently only X11 GUI and terminals with a non-empty 't_IS' option).
	Does not work for MS Windows.
	When Vim was compiled with HAVE_X11 defined, the original icon will be
	restored if possible |X11|.
	When this option contains printf-style '%' items, they will be
	expanded according to the rules used for 'statusline'.  See
	'titlestring' for example settings.
	{not available when compiled without the |+statusline| feature}

			*'ignorecase'* *'ic'* *'noignorecase'* *'noic'*
'ignorecase' 'ic'	boolean	(default off)
			global
	Ignore case in search patterns.  Also used when searching in the tags
	file.
	Also see 'smartcase' and 'tagcase'.
	Can be overruled by using "\c" or "\C" in the pattern, see
	|/ignorecase|.

						*'imactivatefunc'* *'imaf'*
'imactivatefunc' 'imaf'	string (default "")
			global
			{not in Vi}
			{only available when compiled with |+mbyte|}
	This option specifies a function that will be called to
	activate or deactivate the Input Method.
	It is not used in the GUI.

	Example: >
		function ImActivateFunc(active)
		  if a:active
		    ... do something
		  else
		    ... do something
		  endif
		  " return value is not used
		endfunction
		set imactivatefunc=ImActivateFunc
<
						*'imactivatekey'* *'imak'*
'imactivatekey' 'imak'	string (default "")
			global
			{not in Vi}
			{only available when compiled with |+xim| and
			|+GUI_GTK|}				*E599*
	Specifies the key that your Input Method in X-Windows uses for
	activation.  When this is specified correctly, vim can fully control
	IM with 'imcmdline', 'iminsert' and 'imsearch'.
	You can't use this option to change the activation key, the option
	tells Vim what the key is.
	Format:
		[MODIFIER_FLAG-]KEY_STRING

	These characters can be used for MODIFIER_FLAG (case is ignored):
		S	    Shift key
		L	    Lock key
		C	    Control key
		1	    Mod1 key
		2	    Mod2 key
		3	    Mod3 key
		4	    Mod4 key
		5	    Mod5 key
	Combinations are allowed, for example "S-C-space" or "SC-space" are
	both shift+ctrl+space.
	See <X11/keysymdef.h> and XStringToKeysym for KEY_STRING.

	Example: >
		:set imactivatekey=S-space
<	"S-space" means shift+space.  This is the activation key for kinput2 +
	canna (Japanese), and ami (Korean).

				*'imcmdline'* *'imc'* *'noimcmdline'* *'noimc'*
'imcmdline' 'imc'	boolean (default off)
			global
			{not in Vi}
			{only available when compiled with |+mbyte|}
	When set the Input Method is always on when starting to edit a command
	line, unless entering a search pattern (see 'imsearch' for that).
	Setting this option is useful when your input method allows entering
	English characters directly, e.g., when it's used to type accented
	characters with dead keys.

				*'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
'imdisable' 'imd'	boolean (default off, on for some systems (SGI))
			global
			{not in Vi}
			{only available when compiled with |+mbyte|}
	When set the Input Method is never used.  This is useful to disable
	the IM when it doesn't work properly.
	Currently this option is on by default for SGI/IRIX machines.  This
	may change in later releases.

						*'iminsert'* *'imi'*
'iminsert' 'imi'	number (default 0)
			local to buffer
			{not in Vi}
	Specifies whether :lmap or an Input Method (IM) is to be used in
	Insert mode.  Valid values:
		0	:lmap is off and IM is off
		1	:lmap is ON and IM is off
		2	:lmap is off and IM is ON
	To always reset the option to zero when leaving Insert mode with <Esc>
	this can be used: >
		:inoremap <ESC> <ESC>:set iminsert=0<CR>
<	This makes :lmap and IM turn off automatically when leaving Insert
	mode.
	Note that this option changes when using CTRL-^ in Insert mode
	|i_CTRL-^|.
	The value is set to 1 when setting 'keymap' to a valid keymap name.
	It is also used for the argument of commands like "r" and "f".
	The value 0 may not work correctly with Athena and Motif with some XIM
	methods.  Use 'imdisable' to disable XIM then.

	You can set 'imactivatefunc' and 'imstatusfunc' to handle IME/XIM
	via external command if vim is not compiled with the |+xim|,
	|+multi_byte_ime| or |global-ime|.

						*'imsearch'* *'ims'*
'imsearch' 'ims'	number (default -1)
			local to buffer
			{not in Vi}
	Specifies whether :lmap or an Input Method (IM) is to be used when
	entering a search pattern.  Valid values:
		-1	the value of 'iminsert' is used, makes it look like
			'iminsert' is also used when typing a search pattern
		0	:lmap is off and IM is off
		1	:lmap is ON and IM is off
		2	:lmap is off and IM is ON
	Note that this option changes when using CTRL-^ in Command-line mode
	|c_CTRL-^|.
	The value is set to 1 when it is not -1 and setting the 'keymap'
	option to a valid keymap name.
	The value 0 may not work correctly with Athena and Motif with some XIM
	methods.  Use 'imdisable' to disable XIM then.

						*'imstatusfunc'* *'imsf'*
'imstatusfunc' 'imsf'	string (default "")
			global
			{not in Vi}
			{only available when compiled with |+mbyte|}
	This option specifies a function that is called to obtain the status
	of Input Method.  It must return a positive number when IME is active.
	It is not used in the GUI.

	Example: >
		function ImStatusFunc()
		  let is_active = ...do something
		  return is_active ? 1 : 0
		endfunction
		set imstatusfunc=ImStatusFunc
<
	NOTE: This function is invoked very often.  Keep it fast.

						*'imstyle'* *'imst'*
'imstyle' 'imst'	number (default 1)
			global
			{not in Vi}
			{only available when compiled with |+xim| and
			|+GUI_GTK|}
	This option specifies the input style of Input Method:
	0   use on-the-spot style
	1   over-the-spot style
	See: |xim-input-style|

	For a long time on-the-spot style had been used in the GTK version of
	vim, however, it is known that it causes troubles when using mappings,
	|single-repeat|, etc.  Therefore over-the-spot style becomes the
	default now.  This should work fine for most people, however if you
	have any problem with it, try using on-the-spot style.

						*'include'* *'inc'*
'include' 'inc'		string	(default "^\s*#\s*include")
			global or local to buffer |global-local|
			{not in Vi}
			{not available when compiled without the
			|+find_in_path| feature}
	Pattern to be used to find an include command.  It is a search
	pattern, just like for the "/" command (See |pattern|).  The default
	value is for C programs.  This option is used for the commands "[i",
	"]I", "[d", etc.
	Normally the 'isfname' option is used to recognize the file name that
	comes after the matched pattern.  But if "\zs" appears in the pattern
	then the text matched from "\zs" to the end, or until "\ze" if it
	appears, is used as the file name.  Use this to include characters
	that are not in 'isfname', such as a space.  You can then use
	'includeexpr' to process the matched text.
	See |option-backslash| about including spaces and backslashes.

						*'includeexpr'* *'inex'*
'includeexpr' 'inex'	string	(default "")
			local to buffer
			{not in Vi}
			{not available when compiled without the
			|+find_in_path| or |+eval| features}
	Expression to be used to transform the string found with the 'include'
	option to a file name.  Mostly useful to change "." to "/" for Java: >
		:set includeexpr=substitute(v:fname,'\\.','/','g')
<	The "v:fname" variable will be set to the file name that was detected.

	Also used for the |gf| command if an unmodified file name can't be
	found.  Allows doing "gf" on the name after an 'include' statement.
	Also used for |<cfile>|.

	The expression will be evaluated in the |sandbox| when set from a
	modeline, see |sandbox-option|.

	It is not allowed to change text or jump to another window while
	evaluating 'includeexpr' |textlock|.

				 *'incsearch'* *'is'* *'noincsearch'* *'nois'*
'incsearch' 'is'	boolean	(default off, set in |defaults.vim| if the
						+reltime feature is supported)
			global
			{not in Vi}
			{not available when compiled without the
			|+extra_search| features}
	While typing a search command, show where the pattern, as it was typed
	so far, matches.  The matched string is highlighted.  If the pattern
	is invalid or not found, nothing is shown.  The screen will be updated
	often, this is only useful on fast terminals.
	Note that the match will be shown, but the cursor will return to its
	original position when no match is found and when pressing <Esc>.  You
	still need to finish the search command with <Enter> to move the
	cursor to the match.
	You can use the CTRL-G and CTRL-T keys to move to the next and
	previous match. |c_CTRL-G| |c_CTRL-T|
	When compiled with the |+reltime| feature Vim only searches for about
	half a second.  With a complicated pattern and/or a lot of text the
	match may not be found.  This is to avoid that Vim hangs while you
	are typing the pattern.
	The highlighting can be set with the 'i' flag in 'highlight'.
	When 'hlsearch' is on, all matched strings are highlighted too while
	typing a search command. See also: 'hlsearch'.
	If you don't want turn 'hlsearch' on, but want to highlight all matches
	while searching, you can turn on and off 'hlsearch' with autocmd.
	Example: >
		augroup vimrc-incsearch-highlight
		  autocmd!
		  autocmd CmdlineEnter /,\? :set hlsearch
		  autocmd CmdlineLeave /,\? :set nohlsearch
		augroup END
<
	CTRL-L can be used to add one character from after the current match
	to the command line.  If 'ignorecase' and 'smartcase' are set and the
	command line has no uppercase characters, the added character is
	converted to lowercase.
	CTRL-R CTRL-W can be used to add the word at the end of the current
	match, excluding the characters that were already typed.
	NOTE: This option is reset when 'compatible' is set.

						*'indentexpr'* *'inde'*
'indentexpr' 'inde'	string	(default "")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+cindent|
			or |+eval| features}
	Expression which is evaluated to obtain the proper indent for a line.
	It is used when a new line is created, for the |=| operator and
	in Insert mode as specified with the 'indentkeys' option.
	When this option is not empty, it overrules the 'cindent' and
	'smartindent' indenting.  When 'lisp' is set, this option is
	overridden by the Lisp indentation algorithm.
	When 'paste' is set this option is not used for indenting.
	The expression is evaluated with |v:lnum| set to the line number for
	which the indent is to be computed.  The cursor is also in this line
	when the expression is evaluated (but it may be moved around).
	The expression must return the number of spaces worth of indent.  It
	can return "-1" to keep the current indent (this means 'autoindent' is
	used for the indent).
	Functions useful for computing the indent are |indent()|, |cindent()|
	and |lispindent()|.
	The evaluation of the expression must not have side effects!  It must
	not change the text, jump to another window, etc.  Afterwards the
	cursor position is always restored, thus the cursor may be moved.
	Normally this option would be set to call a function: >
		:set indentexpr=GetMyIndent()
<	Error messages will be suppressed, unless the 'debug' option contains
	"msg".
	See |indent-expression|.
	NOTE: This option is set to "" when 'compatible' is set.

	The expression will be evaluated in the |sandbox| when set from a
	modeline, see |sandbox-option|.

	It is not allowed to change text or jump to another window while
	evaluating 'indentexpr' |textlock|.


						*'indentkeys'* *'indk'*
'indentkeys' 'indk'	string	(default "0{,0},:,0#,!^F,o,O,e")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+cindent|
			feature}
	A list of keys that, when typed in Insert mode, cause reindenting of
	the current line.  Only happens if 'indentexpr' isn't empty.
	The format is identical to 'cinkeys', see |indentkeys-format|.
	See |C-indenting| and |indent-expression|.

			*'infercase'* *'inf'* *'noinfercase'* *'noinf'*
'infercase' 'inf'	boolean	(default off)
			local to buffer
			{not in Vi}
	When doing keyword completion in insert mode |ins-completion|, and
	'ignorecase' is also on, the case of the match is adjusted depending
	on the typed text.  If the typed text contains a lowercase letter
	where the match has an upper case letter, the completed part is made
	lowercase.  If the typed text has no lowercase letters and the match
	has a lowercase letter where the typed text has an uppercase letter,
	and there is a letter before it, the completed part is made uppercase.
	With 'noinfercase' the match is used as-is.

			*'insertmode'* *'im'* *'noinsertmode'* *'noim'*
'insertmode' 'im'	boolean	(default off)
			global
			{not in Vi}
	Makes Vim work in a way that Insert mode is the default mode.  Useful
	if you want to use Vim as a modeless editor.  Used for |evim|.
	These Insert mode commands will be useful:
	- Use the cursor keys to move around.
	- Use CTRL-O to execute one Normal mode command |i_CTRL-O|.  When
	  this is a mapping, it is executed as if 'insertmode' was off.
	  Normal mode remains active until the mapping is finished.
	- Use CTRL-L to execute a number of Normal mode commands, then use
	  <Esc> to get back to Insert mode.  Note that CTRL-L moves the cursor
	  left, like <Esc> does when 'insertmode' isn't set.  |i_CTRL-L|

	These items change when 'insertmode' is set:
	- when starting to edit of a file, Vim goes to Insert mode.
	- <Esc> in Insert mode is a no-op and beeps.
	- <Esc> in Normal mode makes Vim go to Insert mode.
	- CTRL-L in Insert mode is a command, it is not inserted.
	- CTRL-Z in Insert mode suspends Vim, see |CTRL-Z|.	*i_CTRL-Z*
	However, when <Esc> is used inside a mapping, it behaves like
	'insertmode' was not set.  This was done to be able to use the same
	mappings with 'insertmode' set or not set.
	When executing commands with |:normal| 'insertmode' is not used.

	NOTE: This option is reset when 'compatible' is set.

						*'isfname'* *'isf'*
'isfname' 'isf'		string	(default for MS-DOS, Win32 and OS/2:
			     "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,="
			    for AMIGA: "@,48-57,/,.,-,_,+,,,$,:"
			    for VMS: "@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~"
			    for OS/390: "@,240-249,/,.,-,_,+,,,#,$,%,~,="
			    otherwise: "@,48-57,/,.,-,_,+,,,#,$,%,~,=")
			global
			{not in Vi}
	The characters specified by this option are included in file names and
	path names.  Filenames are used for commands like "gf", "[i" and in
	the tags file.  It is also used for "\f" in a |pattern|.
	Multi-byte characters 256 and above are always included, only the
	characters up to 255 are specified with this option.
	For UTF-8 the characters 0xa0 to 0xff are included as well.
	Think twice before adding white space to this option.  Although a
	space may appear inside a file name, the effect will be that Vim
	doesn't know where a file name starts or ends when doing completion.
	It most likely works better without a space in 'isfname'.

	Note that on systems using a backslash as path separator, Vim tries to
	do its best to make it work as you would expect.  That is a bit
	tricky, since Vi originally used the backslash to escape special
	characters.  Vim will not remove a backslash in front of a normal file
	name character on these systems, but it will on Unix and alikes.  The
	'&' and '^' are not included by default, because these are special for
	cmd.exe.

	The format of this option is a list of parts, separated with commas.
	Each part can be a single character number or a range.  A range is two
	character numbers with '-' in between.  A character number can be a
	decimal number between 0 and 255 or the ASCII character itself (does
	not work for digits).  Example:
		"_,-,128-140,#-43"	(include '_' and '-' and the range
					128 to 140 and '#' to 43)
	If a part starts with '^', the following character number or range
	will be excluded from the option.  The option is interpreted from left
	to right.  Put the excluded character after the range where it is
	included.  To include '^' itself use it as the last character of the
	option or the end of a range.  Example:
		"^a-z,#,^"	(exclude 'a' to 'z', include '#' and '^')
	If the character is '@', all characters where isalpha() returns TRUE
	are included.  Normally these are the characters a to z and A to Z,
	plus accented characters.  To include '@' itself use "@-@".  Examples:
		"@,^a-z"	All alphabetic characters, excluding lower
				case ASCII letters.
		"a-z,A-Z,@-@"	All letters plus the '@' character.
	A comma can be included by using it where a character number is
	expected.  Example:
		"48-57,,,_"	Digits, comma and underscore.
	A comma can be excluded by prepending a '^'.  Example:
		" -~,^,,9"	All characters from space to '~', excluding
				comma, plus <Tab>.
	See |option-backslash| about including spaces and backslashes.

						*'isident'* *'isi'*
'isident' 'isi'		string	(default for MS-DOS, Win32 and OS/2:
					   "@,48-57,_,128-167,224-235"
				otherwise: "@,48-57,_,192-255")
			global
			{not in Vi}
	The characters given by this option are included in identifiers.
	Identifiers are used in recognizing environment variables and after a
	match of the 'define' option.  It is also used for "\i" in a
	|pattern|.  See 'isfname' for a description of the format of this
	option.
	Careful: If you change this option, it might break expanding
	environment variables.  E.g., when '/' is included and Vim tries to
	expand "$HOME/.viminfo".  Maybe you should change 'iskeyword' instead.

						*'iskeyword'* *'isk'*
'iskeyword' 'isk'	string (Vim default for MS-DOS and Win32:
					    "@,48-57,_,128-167,224-235"
				   otherwise:  "@,48-57,_,192-255"
				Vi default: "@,48-57,_")
			local to buffer
			{not in Vi}
	Keywords are used in searching and recognizing with many commands:
	"w", "*", "[i", etc.  It is also used for "\k" in a |pattern|.  See
	'isfname' for a description of the format of this option.  For C
	programs you could use "a-z,A-Z,48-57,_,.,-,>".
	For a help file it is set to all non-blank printable characters except
	'*', '"' and '|' (so that CTRL-] on a command finds the help for that
	command).
	When the 'lisp' option is on the '-' character is always included.
	This option also influences syntax highlighting, unless the syntax
	uses |:syn-iskeyword|.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'isprint'* *'isp'*
'isprint' 'isp'	string	(default for MS-DOS, Win32, OS/2 and Macintosh:
				"@,~-255"; otherwise: "@,161-255")
			global
			{not in Vi}
	The characters given by this option are displayed directly on the
	screen.  It is also used for "\p" in a |pattern|.  The characters from
	space (ASCII 32) to '~' (ASCII 126) are always displayed directly,
	even when they are not included in 'isprint' or excluded.  See
	'isfname' for a description of the format of this option.

	Non-printable characters are displayed with two characters:
		  0 -  31	"^@" - "^_"
		 32 - 126	always single characters
		   127		"^?"
		128 - 159	"~@" - "~_"
		160 - 254	"| " - "|~"
		   255		"~?"
	When 'encoding' is a Unicode one, illegal bytes from 128 to 255 are
	displayed as <xx>, with the hexadecimal value of the byte.
	When 'display' contains "uhex" all unprintable characters are
	displayed as <xx>.
	The SpecialKey highlighting will be used for unprintable characters.
	|hl-SpecialKey|

	Multi-byte characters 256 and above are always included, only the
	characters up to 255 are specified with this option.  When a character
	is printable but it is not available in the current font, a
	replacement character will be shown.
	Unprintable and zero-width Unicode characters are displayed as <xxxx>.
	There is no option to specify these characters.

			*'joinspaces'* *'js'* *'nojoinspaces'* *'nojs'*
'joinspaces' 'js'	boolean	(default on)
			global
			{not in Vi}
	Insert two spaces after a '.', '?' and '!' with a join command.
	When 'cpoptions' includes the 'j' flag, only do this after a '.'.
	Otherwise only one space is inserted.
	NOTE: This option is set when 'compatible' is set.

							*'key'*
'key'			string	(default "")
			local to buffer
			{not in Vi}
			{only available when compiled with the |+cryptv|
			feature}
	The key that is used for encrypting and decrypting the current buffer.
	See |encryption| and 'cryptmethod'.
	Careful: Do not set the key value by hand, someone might see the typed
	key.  Use the |:X| command.  But you can make 'key' empty: >
		:set key=
<	It is not possible to get the value of this option with ":set key" or
	"echo &key".  This is to avoid showing it to someone who shouldn't
	know.  It also means you cannot see it yourself once you have set it,
	be careful not to make a typing error!
	You can use "&key" in an expression to detect whether encryption is
	enabled.  When 'key' is set it returns "*****" (five stars).

					*'keymap'* *'kmp'* *E544*
'keymap' 'kmp'		string	(default "")
			local to buffer
			{not in Vi}
			{only available when compiled with the |+keymap|
			feature}
	Name of a keyboard mapping.  See |mbyte-keymap|.
	Setting this option to a valid keymap name has the side effect of
	setting 'iminsert' to one, so that the keymap becomes effective.
	'imsearch' is also set to one, unless it was -1
	Only normal file name characters can be used, "/\*?[|<>" are illegal.

					*'keymodel'* *'km'*
'keymodel' 'km'		string	(default "")
			global
			{not in Vi}
	List of comma separated words, which enable special things that keys
	can do.  These values can be used:
	   startsel	Using a shifted special key starts selection (either
			Select mode or Visual mode, depending on "key" being
			present in 'selectmode').
	   stopsel	Using a not-shifted special key stops selection.
	Special keys in this context are the cursor keys, <End>, <Home>,
	<PageUp> and <PageDown>.
	The 'keymodel' option is set by the |:behave| command.

					*'keywordprg'* *'kp'*
'keywordprg' 'kp'	string	(default "man" or "man -s",  DOS: ":help",
								  VMS: "help")
			global or local to buffer |global-local|
			{not in Vi}
	Program to use for the |K| command.  Environment variables are
	expanded |:set_env|.  ":help" may be used to access the Vim internal
	help.  (Note that previously setting the global option to the empty
	value did this, which is now deprecated.)
	When the first character is ":", the command is invoked as a Vim
	Ex command prefixed with [count].
	When "man", "man -s" or an Ex command is used, Vim will automatically
	translate a count for the "K" command and pass it as the first
	argument.  For "man -s" the "-s" is removed when there is no count.
	See |option-backslash| about including spaces and backslashes.
	Example: >
		:set keywordprg=man\ -s
<	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

					*'langmap'* *'lmap'* *E357* *E358*
'langmap' 'lmap'	string	(default "")
			global
			{not in Vi}
			{only available when compiled with the |+langmap|
			feature}
	This option allows switching your keyboard into a special language
	mode.  When you are typing text in Insert mode the characters are
	inserted directly.  When in Normal mode the 'langmap' option takes
	care of translating these special characters to the original meaning
	of the key.  This means you don't have to change the keyboard mode to
	be able to execute Normal mode commands.
	This is the opposite of the 'keymap' option, where characters are
	mapped in Insert mode.
	Also consider resetting 'langremap' to avoid 'langmap' applies to
	characters resulting from a mapping.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

	Example (for Greek, in UTF-8):				*greek*  >
	    :set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
<	Example (exchanges meaning of z and y for commands): >
	    :set langmap=zy,yz,ZY,YZ
<
	The 'langmap' option is a list of parts, separated with commas.  Each
	part can be in one of two forms:
	1.  A list of pairs.  Each pair is a "from" character immediately
	    followed by the "to" character.  Examples: "aA", "aAbBcC".
	2.  A list of "from" characters, a semi-colon and a list of "to"
	    characters.  Example: "abc;ABC"
	Example: "aA,fgh;FGH,cCdDeE"
	Special characters need to be preceded with a backslash.  These are
	";", ',' and backslash itself.

	This will allow you to activate vim actions without having to switch
	back and forth between the languages.  Your language characters will
	be understood as normal vim English characters (according to the
	langmap mappings) in the following cases:
	 o Normal/Visual mode (commands, buffer/register names, user mappings)
	 o Insert/Replace Mode: Register names after CTRL-R
	 o Insert/Replace Mode: Mappings
	Characters entered in Command-line mode will NOT be affected by
	this option.   Note that this option can be changed at any time
	allowing to switch between mappings for different languages/encodings.
	Use a mapping to avoid having to type it each time!

					*'langmenu'* *'lm'*
'langmenu' 'lm'		string	(default "")
			global
			{not in Vi}
			{only available when compiled with the |+menu| and
			|+multi_lang| features}
	Language to use for menu translation.  Tells which file is loaded
	from the "lang" directory in 'runtimepath': >
		"lang/menu_" . &langmenu . ".vim"
<	(without the spaces).  For example, to always use the Dutch menus, no
	matter what $LANG is set to: >
		:set langmenu=nl_NL.ISO_8859-1
<	When 'langmenu' is empty, |v:lang| is used.
	Only normal file name characters can be used, "/\*?[|<>" are illegal.
	If your $LANG is set to a non-English language but you do want to use
	the English menus: >
		:set langmenu=none
<	This option must be set before loading menus, switching on filetype
	detection or syntax highlighting.  Once the menus are defined setting
	this option has no effect.  But you could do this: >
		:source $VIMRUNTIME/delmenu.vim
		:set langmenu=de_DE.ISO_8859-1
		:source $VIMRUNTIME/menu.vim
<	Warning: This deletes all menus that you defined yourself!

			*'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
'langnoremap' 'lnr'	boolean (default off, set in |defaults.vim|)
			global
			{not in Vi}
			{only available when compiled with the |+langmap|
			feature}
	This is just like 'langremap' but with the value inverted.  It only
	exists for backwards compatibility.  When setting 'langremap' then
	'langnoremap' is set to the inverted value, and the other way around.

			*'langremap'* *'lrm'* *'nolangremap'* *'nolrm'*
'langremap' 'lrm'	boolean (default on, reset in |defaults.vim|)
			global
			{not in Vi}
			{only available when compiled with the |+langmap|
			feature}
	When off, setting 'langmap' does not apply to characters resulting from
	a mapping.  This basically means, if you noticed that setting
	'langmap' disables some of your mappings, try resetting this option.
	This option defaults to on for backwards compatibility.  Set it off if
	that works for you to avoid mappings to break.

					*'laststatus'* *'ls'*
'laststatus' 'ls'	number	(default 1)
			global
			{not in Vi}
	The value of this option influences when the last window will have a
	status line:
		0: never
		1: only if there are at least two windows
		2: always
	The screen looks nicer with a status line if you have several
	windows, but it takes another screen line. |status-line|

			*'lazyredraw'* *'lz'* *'nolazyredraw'* *'nolz'*
'lazyredraw' 'lz'	boolean	(default off)
			global
			{not in Vi}
	When this option is set, the screen will not be redrawn while
	executing macros, registers and other commands that have not been
	typed.  Also, updating the window title is postponed.  To force an
	update use |:redraw|.

			*'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'*
'linebreak' 'lbr'	boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+linebreak|
			feature}
	If on, Vim will wrap long lines at a character in 'breakat' rather
	than at the last character that fits on the screen.  Unlike
	'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file,
	it only affects the way the file is displayed, not its contents.
	If 'breakindent' is set, line is visually indented. Then, the value
	of 'showbreak' is used to put in front of wrapped lines. This option
	is not used when the 'wrap' option is off.
	Note that <Tab> characters after an <EOL> are mostly not displayed
	with the right amount of white space.

						*'lines'* *E593*
'lines'			number	(default 24 or terminal height)
			global
	Number of lines of the Vim window.
	Normally you don't need to set this.  It is done automatically by the
	terminal initialization code.  Also see |posix-screen-size|.
	When Vim is running in the GUI or in a resizable window, setting this
	option will cause the window size to be changed.  When you only want
	to use the size for the GUI, put the command in your |gvimrc| file.
	Vim limits the number of lines to what fits on the screen.  You can
	use this command to get the tallest window possible: >
		:set lines=999
<	Minimum value is 2, maximum value is 1000.
	If you get fewer lines than expected, check the 'guiheadroom' option.
	When you set this option and Vim is unable to change the physical
	number of lines of the display, the display may be messed up.

						*'linespace'* *'lsp'*
'linespace' 'lsp'	number	(default 0, 1 for Win32 GUI)
			global
			{not in Vi}
			{only in the GUI}
	Number of pixel lines inserted between characters.  Useful if the font
	uses the full character cell height, making lines touch each other.
	When non-zero there is room for underlining.
	With some fonts there can be too much room between lines (to have
	space for ascents and descents).  Then it makes sense to set
	'linespace' to a negative value.  This may cause display problems
	though!

						*'lisp'* *'nolisp'*
'lisp'			boolean	(default off)
			local to buffer
			{not available when compiled without the |+lispindent|
			feature}
	Lisp mode: When <Enter> is typed in insert mode set the indent for
	the next line to Lisp standards (well, sort of).  Also happens with
	"cc" or "S".  'autoindent' must also be on for this to work.  The 'p'
	flag in 'cpoptions' changes the method of indenting: Vi compatible or
	better.  Also see 'lispwords'.
	The '-' character is included in keyword characters.  Redefines the
	"=" operator to use this same indentation algorithm rather than
	calling an external program if 'equalprg' is empty.
	This option is not used when 'paste' is set.
	{Vi: Does it a little bit differently}

						*'lispwords'* *'lw'*
'lispwords' 'lw'	string	(default is very long)
			global or local to buffer |global-local|
			{not in Vi}
			{not available when compiled without the |+lispindent|
			feature}
	Comma separated list of words that influence the Lisp indenting.
	|'lisp'|

						*'list'* *'nolist'*
'list'			boolean	(default off)
			local to window
	List mode: Show tabs as CTRL-I is displayed, display $ after end of
	line.  Useful to see the difference between tabs and spaces and for
	trailing blanks.  Further changed by the 'listchars' option.

	The cursor is displayed at the start of the space a Tab character
	occupies, not at the end as usual in Normal mode.  To get this cursor
	position while displaying Tabs with spaces, use: >
		:set list lcs=tab:\ \ 
<
	Note that list mode will also affect formatting (set with 'textwidth'
	or 'wrapmargin') when 'cpoptions' includes 'L'.  See 'listchars' for
	changing the way tabs are displayed.

						*'listchars'* *'lcs'*
'listchars' 'lcs'	string	(default "eol:$")
			global
			{not in Vi}
	Strings to use in 'list' mode and for the |:list| command.  It is a
	comma separated list of string settings.
							*lcs-eol*
	  eol:c		Character to show at the end of each line.  When
			omitted, there is no extra character at the end of the
			line.
							*lcs-tab*
	  tab:xy	Two characters to be used to show a tab.  The first
			char is used once.  The second char is repeated to
			fill the space that the tab normally occupies.
			"tab:>-" will show a tab that takes four spaces as
			">---".  When omitted, a tab is show as ^I.
							*lcs-space*
	  space:c	Character to show for a space.  When omitted, spaces
			are left blank.
							*lcs-trail*
	  trail:c	Character to show for trailing spaces.  When omitted,
			trailing spaces are blank.  Overrides the "space"
			setting for trailing spaces.
							*lcs-extends*
	  extends:c	Character to show in the last column, when 'wrap' is
			off and the line continues beyond the right of the
			screen.
							*lcs-precedes*
	  precedes:c	Character to show in the first column, when 'wrap'
			is off and there is text preceding the character
			visible in the first column.
							*lcs-conceal*
	  conceal:c	Character to show in place of concealed text, when
			'conceallevel' is set to 1.
							*lcs-nbsp*
	  nbsp:c	Character to show for a non-breakable space character
			(0xA0 (160 decimal) and U+202F).  Left blank when
			omitted.

	The characters ':' and ',' should not be used.  UTF-8 characters can
	be used when 'encoding' is "utf-8", otherwise only printable
	characters are allowed.  All characters must be single width.

	Examples: >
	    :set lcs=tab:>-,trail:-
	    :set lcs=tab:>-,eol:<,nbsp:%
	    :set lcs=extends:>,precedes:<
<	The "NonText" highlighting will be used for "eol", "extends" and
	"precedes".  "SpecialKey" for "nbsp", "space", "tab" and "trail".
	|hl-NonText| |hl-SpecialKey|

			*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
'loadplugins' 'lpl'	boolean	(default on)
			global
			{not in Vi}
	When on the plugin scripts are loaded when starting up |load-plugins|.
	This option can be reset in your |vimrc| file to disable the loading
	of plugins.
	Note that using the "-u NONE", "-u DEFAULTS" and "--noplugin" command
	line arguments reset this option.  See |-u| and |--noplugin|.

						*'luadll'*
'luadll'		string	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+lua/dyn|
			feature}
	Specifies the name of the Lua shared library. The default is
	DYNAMIC_LUA_DLL, which was specified at compile time.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'macatsui'* *'nomacatsui'*
'macatsui'		boolean	(default on)
			global
			{only available in Mac GUI version}
	This is a workaround for when drawing doesn't work properly.  When set
	and compiled with multi-byte support ATSUI text drawing is used.  When
	not set ATSUI text drawing is not used.  Switch this option off when
	you experience drawing problems.  In a future version the problems may
	be solved and this option becomes obsolete.  Therefore use this method
	to unset it: >
		if exists('&macatsui')
		   set nomacatsui
		endif
<	Another option to check if you have drawing problems is
	'termencoding'.

						*'magic'* *'nomagic'*
'magic'			boolean	(default on)
			global
	Changes the special characters that can be used in search patterns.
	See |pattern|.
	WARNING: Switching this option off most likely breaks plugins!  That
	is because many patterns assume it's on and will fail when it's off.
	Only switch it off when working with old Vi scripts.  In any other
	situation write patterns that work when 'magic' is on.  Include "\M"
	when you want to |/\M|.

						*'makeef'* *'mef'*
'makeef' 'mef'		string	(default: "")
			global
			{not in Vi}
			{not available when compiled without the |+quickfix|
			feature}
	Name of the errorfile for the |:make| command (see |:make_makeprg|)
	and the |:grep| command.
	When it is empty, an internally generated temp file will be used.
	When "##" is included, it is replaced by a number to make the name
	unique.  This makes sure that the ":make" command doesn't overwrite an
	existing file.
	NOT used for the ":cf" command.  See 'errorfile' for that.
	Environment variables are expanded |:set_env|.
	See |option-backslash| about including spaces and backslashes.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

					*'makeencoding'* *'menc'*
'makeencoding' 'menc'	string	(default "")
			global or local to buffer |global-local|
			{only available when compiled with the |+multi_byte|
			feature}
			{not in Vi}
	Encoding used for reading the output of external commands.  When empty,
	encoding is not converted.
	This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`,
	`:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`,
	and `:laddfile`.

	This would be mostly useful when you use MS-Windows and set 'encoding'
	to "utf-8".  If |+iconv| is enabled and GNU libiconv is used, setting
	'makeencoding' to "char" has the same effect as setting to the system
	locale encoding.  Example: >
		:set encoding=utf-8
		:set makeencoding=char	" system locale is used
<
						*'makeprg'* *'mp'*
'makeprg' 'mp'		string	(default "make", VMS: "MMS")
			global or local to buffer |global-local|
			{not in Vi}
	Program to use for the ":make" command.  See |:make_makeprg|.
	This option may contain '%' and '#' characters (see  |:_%| and |:_#|),
	which are expanded to the current and alternate file name.  Use |::S|
	to escape file names in case they contain special characters.
	Environment variables are expanded |:set_env|.  See |option-backslash|
	about including spaces and backslashes.
	Note that a '|' must be escaped twice: once for ":set" and once for
	the interpretation of a command.  When you use a filter called
	"myfilter" do it like this: >
	    :set makeprg=gmake\ \\\|\ myfilter
<	The placeholder "$*" can be given (even multiple times) to specify
	where the arguments will be included, for example: >
	    :set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}
<	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'matchpairs'* *'mps'*
'matchpairs' 'mps'	string	(default "(:),{:},[:]")
			local to buffer
			{not in Vi}
	Characters that form pairs.  The |%| command jumps from one to the
	other.
	Only character pairs are allowed that are different, thus you cannot
	jump between two double quotes.
	The characters must be separated by a colon.
	The pairs must be separated by a comma.  Example for including '<' and
	'>' (HTML): >
		:set mps+=<:>

<	A more exotic example, to jump between the '=' and ';' in an
	assignment, useful for languages like C and Java: >
		:au FileType c,cpp,java set mps+==:;

<	For a more advanced way of using "%", see the matchit.vim plugin in
	the $VIMRUNTIME/pack/dist/opt/matchit directory. |add-local-help|

						*'matchtime'* *'mat'*
'matchtime' 'mat'	number	(default 5)
			global
			{not in Vi}{in Nvi}
	Tenths of a second to show the matching paren, when 'showmatch' is
	set.  Note that this is not in milliseconds, like other options that
	set a time.  This is to be compatible with Nvi.

						*'maxcombine'* *'mco'*
'maxcombine' 'mco'	number (default 2)
			global
			{not in Vi}
			{only available when compiled with the |+multi_byte|
			feature}
	The maximum number of combining characters supported for displaying.
	Only used when 'encoding' is "utf-8".
	The default is OK for most languages.  Hebrew may require 4.
	Maximum value is 6.
	Even when this option is set to 2 you can still edit text with more
	combining characters, you just can't see them.  Use |g8| or |ga|.
	See |mbyte-combining|.

						*'maxfuncdepth'* *'mfd'*
'maxfuncdepth' 'mfd'	number	(default 100)
			global
			{not in Vi}
			{not available when compiled without the |+eval|
			feature}
	Maximum depth of function calls for user functions.  This normally
	catches endless recursion.  When using a recursive function with
	more depth, set 'maxfuncdepth' to a bigger number.  But this will use
	more memory, there is the danger of failing when memory is exhausted.
	Increasing this limit above 200 also changes the maximum for Ex
	command resursion, see |E169|.
	See also |:function|.

						*'maxmapdepth'* *'mmd'* *E223*
'maxmapdepth' 'mmd'	number	(default 1000)
			global
			{not in Vi}
	Maximum number of times a mapping is done without resulting in a
	character to be used.  This normally catches endless mappings, like
	":map x y" with ":map y x".  It still does not catch ":map g wg",
	because the 'w' is used before the next mapping is done.  See also
	|key-mapping|.

						*'maxmem'* *'mm'*
'maxmem' 'mm'		number	(default between 256 to 5120 (system
				 dependent) or half the amount of memory
				 available)
			global
			{not in Vi}
	Maximum amount of memory (in Kbyte) to use for one buffer.  When this
	limit is reached allocating extra memory for a buffer will cause
	other memory to be freed.
	The maximum usable value is about 2000000.  Use this to work without a
	limit.
	The value is ignored when 'swapfile' is off.
	Also see 'maxmemtot'.

						*'maxmempattern'* *'mmp'*
'maxmempattern' 'mmp'	number	(default 1000)
			global
			{not in Vi}
	Maximum amount of memory (in Kbyte) to use for pattern matching.
	The maximum value is about 2000000.  Use this to work without a limit.
							*E363*
	When Vim runs into the limit it gives an error message and mostly
	behaves like CTRL-C was typed.
	Running into the limit often means that the pattern is very
	inefficient or too complex.  This may already happen with the pattern
	"\(.\)*" on a very long line.  ".*" works much better.
	Vim may run out of memory before hitting the 'maxmempattern' limit.

						*'maxmemtot'* *'mmt'*
'maxmemtot' 'mmt'	number	(default between 2048 and 10240 (system
				 dependent) or half the amount of memory
				 available)
			global
			{not in Vi}
	Maximum amount of memory in Kbyte to use for all buffers together.
	The maximum usable value is about 2000000 (2 Gbyte).  Use this to work
	without a limit.
	On 64 bit machines higher values might work.  But hey, do you really
	need more than 2 Gbyte for text editing?  Keep in mind that text is
	stored in the swap file, one can edit files > 2 Gbyte anyway.  We do
	need the memory to store undo info.
	Buffers with 'swapfile' off still count to the total amount of memory
	used.
	Also see 'maxmem'.

						*'menuitems'* *'mis'*
'menuitems' 'mis'	number	(default 25)
			global
			{not in Vi}
			{not available when compiled without the |+menu|
			feature}
	Maximum number of items to use in a menu.  Used for menus that are
	generated from a list of items, e.g., the Buffers menu.  Changing this
	option has no direct effect, the menu must be refreshed first.

						*'mkspellmem'* *'msm'*
'mkspellmem' 'msm'	string	(default "460000,2000,500")
			global
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	Parameters for |:mkspell|.  This tunes when to start compressing the
	word tree.  Compression can be slow when there are many words, but
	it's needed to avoid running out of memory.  The amount of memory used
	per word depends very much on how similar the words are, that's why
	this tuning is complicated.

	There are three numbers, separated by commas:
		{start},{inc},{added}

	For most languages the uncompressed word tree fits in memory.  {start}
	gives the amount of memory in Kbyte that can be used before any
	compression is done.  It should be a bit smaller than the amount of
	memory that is available to Vim.

	When going over the {start} limit the {inc} number specifies the
	amount of memory in Kbyte that can be allocated before another
	compression is done.  A low number means compression is done after
	less words are added, which is slow.  A high number means more memory
	will be allocated.

	After doing compression, {added} times 1024 words can be added before
	the {inc} limit is ignored and compression is done when any extra
	amount of memory is needed.  A low number means there is a smaller
	chance of hitting the {inc} limit, less memory is used but it's
	slower.

	The languages for which these numbers are important are Italian and
	Hungarian.  The default works for when you have about 512 Mbyte.  If
	you have 1 Gbyte you could use: >
		:set mkspellmem=900000,3000,800
<	If you have less than 512 Mbyte |:mkspell| may fail for some
	languages, no matter what you set 'mkspellmem' to.

				   *'modeline'* *'ml'* *'nomodeline'* *'noml'*
'modeline' 'ml'		boolean	(Vim default: on (off for root),
				 Vi default: off)
			local to buffer
						*'modelines'* *'mls'*
'modelines' 'mls'	number	(default 5)
			global
			{not in Vi}
	If 'modeline' is on 'modelines' gives the number of lines that is
	checked for set commands.  If 'modeline' is off or 'modelines' is zero
	no lines are checked.  See |modeline|.
	NOTE: 'modeline' is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

				*'modifiable'* *'ma'* *'nomodifiable'* *'noma'*
'modifiable' 'ma'	boolean	(default on)
			local to buffer
			{not in Vi}		*E21*
	When off the buffer contents cannot be changed.  The 'fileformat' and
	'fileencoding' options also can't be changed.
	Can be reset on startup with the |-M| command line argument.

				*'modified'* *'mod'* *'nomodified'* *'nomod'*
'modified' 'mod'	boolean	(default off)
			local to buffer
			{not in Vi}
	When on, the buffer is considered to be modified.  This option is set
	when:
	1. A change was made to the text since it was last written.  Using the
	   |undo| command to go back to the original text will reset the
	   option.  But undoing changes that were made before writing the
	   buffer will set the option again, since the text is different from
	   when it was written.
	2. 'fileformat' or 'fileencoding' is different from its original
	   value.  The original value is set when the buffer is read or
	   written.  A ":set nomodified" command also resets the original
	   values to the current values and the 'modified' option will be
	   reset.
	   Similarly for 'eol' and 'bomb'.
	This option is not set when a change is made to the buffer as the
	result of a BufNewFile, BufRead/BufReadPost, BufWritePost,
	FileAppendPost or VimLeave autocommand event.  See |gzip-example| for
	an explanation.
	When 'buftype' is "nowrite" or "nofile" this option may be set, but
	will be ignored.
	Note that the text may actually be the same, e.g. 'modified' is set
	when using "rA" on an "A".

						*'more'* *'nomore'*
'more'			boolean	(Vim default: on, Vi default: off)
			global
			{not in Vi}
	When on, listings pause when the whole screen is filled.  You will get
	the |more-prompt|.  When this option is off there are no pauses, the
	listing continues until finished.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'mouse'* *E538*
'mouse'			string	(default "", "a" for GUI, MS-DOS and Win32,
						 set to "a" in |defaults.vim|)
			global
			{not in Vi}
	Enable the use of the mouse.  Only works for certain terminals
	(xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
	sysmouse and Linux console with gpm).  For using the mouse in the
	GUI, see |gui-mouse|.
	The mouse can be enabled for different modes:
		n	Normal mode and Terminal modes
		v	Visual mode
		i	Insert mode
		c	Command-line mode
		h	all previous modes when editing a help file
		a	all previous modes
		r	for |hit-enter| and |more-prompt| prompt
	Normally you would enable the mouse in all four modes with: >
		:set mouse=a
<	When the mouse is not enabled, the GUI will still use the mouse for
	modeless selection.  This doesn't move the text cursor.

	See |mouse-using|.  Also see |'clipboard'|.

	Note: When enabling the mouse in a terminal, copy/paste will use the
	"* register if there is access to an X-server.  The xterm handling of
	the mouse buttons can still be used by keeping the shift key pressed.
	Also see the 'clipboard' option.

			*'mousefocus'* *'mousef'* *'nomousefocus'* *'nomousef'*
'mousefocus' 'mousef'	boolean	(default off)
			global
			{not in Vi}
			{only works in the GUI}
	The window that the mouse pointer is on is automatically activated.
	When changing the window layout or window focus in another way, the
	mouse pointer is moved to the window with keyboard focus.  Off is the
	default because it makes using the pull down menus a little goofy, as
	a pointer transit may activate a window unintentionally.

			*'mousehide'* *'mh'* *'nomousehide'* *'nomh'*
'mousehide' 'mh'	boolean	(default on)
			global
			{not in Vi}
			{only works in the GUI}
	When on, the mouse pointer is hidden when characters are typed.
	The mouse pointer is restored when the mouse is moved.

						*'mousemodel'* *'mousem'*
'mousemodel' 'mousem'	string	(default "extend", "popup" for MS-DOS and Win32)
			global
			{not in Vi}
	Sets the model to use for the mouse.  The name mostly specifies what
	the right mouse button is used for:
	   extend	Right mouse button extends a selection.  This works
			like in an xterm.
	   popup	Right mouse button pops up a menu.  The shifted left
			mouse button extends a selection.  This works like
			with Microsoft Windows.
	   popup_setpos Like "popup", but the cursor will be moved to the
			position where the mouse was clicked, and thus the
			selected operation will act upon the clicked object.
			If clicking inside a selection, that selection will
			be acted upon, i.e. no cursor move.  This implies of
			course, that right clicking outside a selection will
			end Visual mode.
	Overview of what button does what for each model:
	mouse		    extend		popup(_setpos) ~
	left click	    place cursor	place cursor
	left drag	    start selection	start selection
	shift-left	    search word		extend selection
	right click	    extend selection	popup menu (place cursor)
	right drag	    extend selection	-
	middle click	    paste		paste

	In the "popup" model the right mouse button produces a pop-up menu.
	You need to define this first, see |popup-menu|.
	In a terminal the popup menu works if Vim is compiled with the
	|+insert_expand| option.

	Note that you can further refine the meaning of buttons with mappings.
	See |gui-mouse-mapping|.  But mappings are NOT used for modeless
	selection (because that's handled in the GUI code directly).

	The 'mousemodel' option is set by the |:behave| command.

					*'mouseshape'* *'mouses'* *E547*
'mouseshape' 'mouses'	string	(default "i:beam,r:beam,s:updown,sd:cross,
					m:no,ml:up-arrow,v:rightup-arrow")
			global
			{not in Vi}
			{only available when compiled with the |+mouseshape|
			feature}
	This option tells Vim what the mouse pointer should look like in
	different modes.  The option is a comma separated list of parts, much
	like used for 'guicursor'.  Each part consist of a mode/location-list
	and an argument-list:
		mode-list:shape,mode-list:shape,..
	The mode-list is a dash separated list of these modes/locations:
			In a normal window: ~
		n	Normal mode
		v	Visual mode
		ve	Visual mode with 'selection' "exclusive" (same as 'v',
			if not specified)
		o	Operator-pending mode
		i	Insert mode
		r	Replace mode

			Others: ~
		c	appending to the command-line
		ci	inserting in the command-line
		cr	replacing in the command-line
		m	at the 'Hit ENTER' or 'More' prompts
		ml	idem, but cursor in the last line
		e	any mode, pointer below last window
		s	any mode, pointer on a status line
		sd	any mode, while dragging a status line
		vs	any mode, pointer on a vertical separator line
		vd	any mode, while dragging a vertical separator line
		a	everywhere

	The shape is one of the following:
	avail	name		looks like ~
	w x	arrow		Normal mouse pointer
	w x	blank		no pointer at all (use with care!)
	w x	beam		I-beam
	w x	updown		up-down sizing arrows
	w x	leftright	left-right sizing arrows
	w x	busy		The system's usual busy pointer
	w x	no		The system's usual 'no input' pointer
	  x	udsizing	indicates up-down resizing
	  x	lrsizing	indicates left-right resizing
	  x	crosshair	like a big thin +
	  x	hand1		black hand
	  x	hand2		white hand
	  x	pencil		what you write with
	  x	question	big ?
	  x	rightup-arrow	arrow pointing right-up
	w x	up-arrow	arrow pointing up
	  x	<number>	any X11 pointer number (see X11/cursorfont.h)

	The "avail" column contains a 'w' if the shape is available for Win32,
	x for X11.
	Any modes not specified or shapes not available use the normal mouse
	pointer.

	Example: >
		:set mouseshape=s:udsizing,m:no
<	will make the mouse turn to a sizing arrow over the status lines and
	indicate no input when the hit-enter prompt is displayed (since
	clicking the mouse has no effect in this state.)

						*'mousetime'* *'mouset'*
'mousetime' 'mouset'	number	(default 500)
			global
			{not in Vi}
	Only for GUI, MS-DOS, Win32 and Unix with xterm.  Defines the maximum
	time in msec between two mouse clicks for the second click to be
	recognized as a multi click.

						*'mzschemedll'*
'mzschemedll'		string	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+mzscheme/dyn|
			feature}
	Specifies the name of the MzScheme shared library. The default is
	DYNAMIC_MZSCH_DLL which was specified at compile time.
	Environment variables are expanded |:set_env|.
	The value must be set in the |vimrc| script or earlier.  In the
	startup, before the |load-plugins| step.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'mzschemegcdll'*
'mzschemegcdll'		string	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+mzscheme/dyn|
			feature}
	Specifies the name of the MzScheme GC shared library. The default is
	DYNAMIC_MZGC_DLL which was specified at compile time.
	The value can be equal to 'mzschemedll' if it includes the GC code.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						    *'mzquantum'* *'mzq'*
'mzquantum' 'mzq'	number	(default 100)
			global
			{not in Vi}
			{not available when compiled without the |+mzscheme|
			feature}
	The number of milliseconds between polls for MzScheme threads.
	Negative or zero value means no thread scheduling.
	NOTE: This option is set to the Vim default value when 'compatible'
	is reset.

							*'nrformats'* *'nf'*
'nrformats' 'nf'	string	(default "bin,octal,hex",
					   set to "bin,hex" in |defaults.vim|)
			local to buffer
			{not in Vi}
	This defines what bases Vim will consider for numbers when using the
	CTRL-A and CTRL-X commands for adding to and subtracting from a number
	respectively; see |CTRL-A| for more info on these commands.
	alpha	If included, single alphabetical characters will be
		incremented or decremented.  This is useful for a list with a
		letter index a), b), etc.		*octal-nrformats*
	octal	If included, numbers that start with a zero will be considered
		to be octal.  Example: Using CTRL-A on "007" results in "010".
	hex	If included, numbers starting with "0x" or "0X" will be
		considered to be hexadecimal.  Example: Using CTRL-X on
		"0x100" results in "0x0ff".
	bin	If included, numbers starting with "0b" or "0B" will be
		considered to be binary.  Example: Using CTRL-X on
		"0b1000" subtracts one, resulting in "0b0111".
	Numbers which simply begin with a digit in the range 1-9 are always
	considered decimal.  This also happens for numbers that are not
	recognized as octal or hex.

				*'number'* *'nu'* *'nonumber'* *'nonu'*
'number' 'nu'		boolean	(default off)
			local to window
	Print the line number in front of each line.  When the 'n' option is
	excluded from 'cpoptions' a wrapped line will not use the column of
	line numbers (this is the default when 'compatible' isn't set).
	The 'numberwidth' option can be used to set the room used for the line
	number.
	When a long, wrapped line doesn't start with the first character, '-'
	characters are put before the number.
	See |hl-LineNr|  and |hl-CursorLineNr| for the highlighting used for
	the number.
						*number_relativenumber*
	The 'relativenumber' option changes the displayed number to be
	relative to the cursor.  Together with 'number' there are these
	four combinations (cursor in line 3):

		'nonu'          'nu'            'nonu'          'nu'
		'nornu'         'nornu'         'rnu'           'rnu'

	    |apple          |  1 apple      |  2 apple      |  2 apple
	    |pear           |  2 pear       |  1 pear       |  1 pear
	    |nobody         |  3 nobody     |  0 nobody     |3   nobody
	    |there          |  4 there      |  1 there      |  1 there

						*'numberwidth'* *'nuw'*
'numberwidth' 'nuw'	number	(Vim default: 4  Vi default: 8)
			local to window
			{not in Vi}
			{only available when compiled with the |+linebreak|
			feature}
	Minimal number of columns to use for the line number.  Only relevant
	when the 'number' or 'relativenumber' option is set or printing lines
	with a line number. Since one space is always between the number and
	the text, there is one less character for the number itself.
	The value is the minimum width.  A bigger width is used when needed to
	fit the highest line number in the buffer respectively the number of
	rows in the window, depending on whether 'number' or 'relativenumber'
	is set. Thus with the Vim default of 4 there is room for a line number
	up to 999. When the buffer has 1000 lines five columns will be used.
	The minimum value is 1, the maximum value is 10.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'omnifunc'* *'ofu'*
'omnifunc' 'ofu'	string	(default: empty)
			local to buffer
			{not in Vi}
			{not available when compiled without the |+eval|
			or |+insert_expand| features}
	This option specifies a function to be used for Insert mode omni
	completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O|
	See |complete-functions| for an explanation of how the function is
	invoked and what it should return.
	This option is usually set by a filetype plugin:
	|:filetype-plugin-on|
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.


			    *'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
'opendevice' 'odev'	boolean	(default off)
			global
			{not in Vi}
			{only for MS-DOS, MS-Windows and OS/2}
	Enable reading and writing from devices.  This may get Vim stuck on a
	device that can be opened but doesn't actually do the I/O.  Therefore
	it is off by default.
	Note that on MS-Windows editing "aux.h", "lpt1.txt" and the like also
	result in editing a device.


						*'operatorfunc'* *'opfunc'*
'operatorfunc' 'opfunc'	string	(default: empty)
			global
			{not in Vi}
	This option specifies a function to be called by the |g@| operator.
	See |:map-operator| for more info and an example.

	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.


					*'osfiletype'* *'oft'*
'osfiletype' 'oft'	string (default: "")
			local to buffer
			{not in Vi}
	This option was supported on RISC OS, which has been removed.


				*'packpath'* *'pp'*
'packpath' 'pp'		string	(default: see 'runtimepath')
			{not in Vi}
	Directories used to find packages.  See |packages|.


						*'paragraphs'* *'para'*
'paragraphs' 'para'	string	(default "IPLPPPQPP TPHPLIPpLpItpplpipbp")
			global
	Specifies the nroff macros that separate paragraphs.  These are pairs
	of two letters (see |object-motions|).

						*'paste'* *'nopaste'*
'paste'			boolean	(default off)
			global
			{not in Vi}
	Put Vim in Paste mode.  This is useful if you want to cut or copy
	some text from one window and paste it in Vim.  This will avoid
	unexpected effects.
	Setting this option is useful when using Vim in a terminal, where Vim
	cannot distinguish between typed text and pasted text.  In the GUI, Vim
	knows about pasting and will mostly do the right thing without 'paste'
	being set.  The same is true for a terminal where Vim handles the
	mouse clicks itself.
	This option is reset when starting the GUI.  Thus if you set it in
	your .vimrc it will work in a terminal, but not in the GUI.  Setting
	'paste' in the GUI has side effects: e.g., the Paste toolbar button
	will no longer work in Insert mode, because it uses a mapping.
	When the 'paste' option is switched on (also when it was already on):
		- mapping in Insert mode and Command-line mode is disabled
		- abbreviations are disabled
		- 'autoindent' is reset
		- 'expandtab' is reset
		- 'formatoptions' is used like it is empty
		- 'revins' is reset
		- 'ruler' is reset
		- 'showmatch' is reset
		- 'smartindent' is reset
		- 'smarttab' is reset
		- 'softtabstop' is set to 0
		- 'textwidth' is set to 0
		- 'wrapmargin' is set to 0
	These options keep their value, but their effect is disabled:
		- 'cindent'
		- 'indentexpr'
		- 'lisp'
	NOTE: When you start editing another file while the 'paste' option is
	on, settings from the modelines or autocommands may change the
	settings again, causing trouble when pasting text.  You might want to
	set the 'paste' option again.
	When the 'paste' option is reset the mentioned options are restored to
	the value before the moment 'paste' was switched from off to on.
	Resetting 'paste' before ever setting it does not have any effect.
	Since mapping doesn't work while 'paste' is active, you need to use
	the 'pastetoggle' option to toggle the 'paste' option with some key.

						*'pastetoggle'* *'pt'*
'pastetoggle' 'pt'	string	(default "")
			global
			{not in Vi}
	When non-empty, specifies the key sequence that toggles the 'paste'
	option.  This is like specifying a mapping: >
	    :map {keys} :set invpaste<CR>
<	Where {keys} is the value of 'pastetoggle'.
	The difference is that it will work even when 'paste' is set.
	'pastetoggle' works in Insert mode and Normal mode, but not in
	Command-line mode.
	Mappings are checked first, thus overrule 'pastetoggle'.  However,
	when 'paste' is on mappings are ignored in Insert mode, thus you can do
	this: >
	    :map <F10> :set paste<CR>
	    :map <F11> :set nopaste<CR>
	    :imap <F10> <C-O>:set paste<CR>
	    :imap <F11> <nop>
	    :set pastetoggle=<F11>
<	This will make <F10> start paste mode and <F11> stop paste mode.
	Note that typing <F10> in paste mode inserts "<F10>", since in paste
	mode everything is inserted literally, except the 'pastetoggle' key
	sequence.
	When the value has several bytes 'ttimeoutlen' applies.

						*'pex'* *'patchexpr'*
'patchexpr' 'pex'	string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+diff|
			feature}
	Expression which is evaluated to apply a patch to a file and generate
	the resulting new version of the file.  See |diff-patchexpr|.

					*'patchmode'* *'pm'* *E205* *E206*
'patchmode' 'pm'	string	(default "")
			global
			{not in Vi}
	When non-empty the oldest version of a file is kept.  This can be used
	to keep the original version of a file if you are changing files in a
	source distribution.  Only the first time that a file is written a
	copy of the original file will be kept.  The name of the copy is the
	name of the original file with the string in the 'patchmode' option
	appended.  This option should start with a dot.  Use a string like
	".orig" or ".org".  'backupdir' must not be empty for this to work
	(Detail: The backup file is renamed to the patchmode file after the
	new file has been successfully written, that's why it must be possible
	to write a backup file).  If there was no file to be backed up, an
	empty file is created.
	When the 'backupskip' pattern matches, a patchmode file is not made.
	Using 'patchmode' for compressed files appends the extension at the
	end (e.g., "file.gz.orig"), thus the resulting name isn't always
	recognized as a compressed file.
	Only normal file name characters can be used, "/\*?[|<>" are illegal.

				*'path'* *'pa'* *E343* *E345* *E347* *E854*
'path' 'pa'		string	(default on Unix: ".,/usr/include,,"
				   on OS/2:	  ".,/emx/include,,"
				   other systems: ".,,")
			global or local to buffer |global-local|
			{not in Vi}
	This is a list of directories which will be searched when using the
	|gf|, [f, ]f, ^Wf, |:find|, |:sfind|, |:tabfind| and other commands,
	provided that the file being searched for has a relative path (not
	starting with "/", "./" or "../").  The directories in the 'path'
	option may be relative or absolute.
	- Use commas to separate directory names: >
		:set path=.,/usr/local/include,/usr/include
<	- Spaces can also be used to separate directory names (for backwards
	  compatibility with version 3.0).  To have a space in a directory
	  name, precede it with an extra backslash, and escape the space: >
		:set path=.,/dir/with\\\ space
<	- To include a comma in a directory name precede it with an extra
	  backslash: >
		:set path=.,/dir/with\\,comma
<	- To search relative to the directory of the current file, use: >
		:set path=.
<	- To search in the current directory use an empty string between two
	  commas: >
		:set path=,,
<	- A directory name may end in a ':' or '/'.
	- Environment variables are expanded |:set_env|.
	- When using |netrw.vim| URLs can be used.  For example, adding
	  "http://www.vim.org" will make ":find index.html" work.
	- Search upwards and downwards in a directory tree using "*", "**" and
	  ";".  See |file-searching| for info and syntax.
	  {not available when compiled without the |+path_extra| feature}
	- Careful with '\' characters, type two to get one in the option: >
		:set path=.,c:\\include
<	  Or just use '/' instead: >
		:set path=.,c:/include
<	Don't forget "." or files won't even be found in the same directory as
	the file!
	The maximum length is limited.  How much depends on the system, mostly
	it is something like 256 or 1024 characters.
	You can check if all the include files are found, using the value of
	'path', see |:checkpath|.
	The use of |:set+=| and |:set-=| is preferred when adding or removing
	directories from the list.  This avoids problems when a future version
	uses another default.  To remove the current directory use: >
		:set path-=
<	To add the current directory use: >
		:set path+=
<	To use an environment variable, you probably need to replace the
	separator.  Here is an example to append $INCL, in which directory
	names are separated with a semi-colon: >
		:let &path = &path . "," . substitute($INCL, ';', ',', 'g')
<	Replace the ';' with a ':' or whatever separator is used.  Note that
	this doesn't work when $INCL contains a comma or white space.

						*'perldll'*
'perldll'		string	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+perl/dyn|
			feature}
	Specifies the name of the Perl shared library. The default is
	DYNAMIC_PERL_DLL, which was specified at compile time.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

			*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
'preserveindent' 'pi'	boolean	(default off)
			local to buffer
			{not in Vi}
	When changing the indent of the current line, preserve as much of the
	indent structure as possible.  Normally the indent is replaced by a
	series of tabs followed by spaces as required (unless |'expandtab'| is
	enabled, in which case only spaces are used).  Enabling this option
	means the indent will preserve as many existing characters as possible
	for indenting, and only add additional tabs or spaces as required.
	'expandtab' does not apply to the preserved white space, a Tab remains
	a Tab.
	NOTE: When using ">>" multiple times the resulting indent is a mix of
	tabs and spaces.  You might not like this.
	NOTE: This option is reset when 'compatible' is set.
	Also see 'copyindent'.
	Use |:retab| to clean up white space.

					*'previewheight'* *'pvh'*
'previewheight' 'pvh'	number (default 12)
			global
			{not in Vi}
			{not available when compiled without the |+windows| or
			|+quickfix| features}
	Default height for a preview window.  Used for |:ptag| and associated
	commands.  Used for |CTRL-W_}| when no count is given.

					*'previewwindow'* *'nopreviewwindow'*
					*'pvw'* *'nopvw'* *E590*
'previewwindow' 'pvw'	boolean (default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+windows| or
			|+quickfix| features}
	Identifies the preview window.  Only one window can have this option
	set.  It's normally not set directly, but by using one of the commands
	|:ptag|, |:pedit|, etc.

						*'printdevice'* *'pdev'*
'printdevice' 'pdev'	string	(default empty)
			global
			{not in Vi}
			{only available when compiled with the |+printer|
			feature}
	The name of the printer to be used for |:hardcopy|.
	See |pdev-option|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'printencoding'* *'penc'*
'printencoding' 'penc'	String	(default empty, except for some systems)
			global
			{not in Vi}
			{only available when compiled with the |+printer|
			and |+postscript| features}
	Sets the character encoding used when printing.
	See |penc-option|.

						*'printexpr'* *'pexpr'*
'printexpr' 'pexpr'	String	(default: see below)
			global
			{not in Vi}
			{only available when compiled with the |+printer|
			and |+postscript| features}
	Expression used to print the PostScript produced with |:hardcopy|.
	See |pexpr-option|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'printfont'* *'pfn'*
'printfont' 'pfn'	string	(default "courier")
			global
			{not in Vi}
			{only available when compiled with the |+printer|
			feature}
	The name of the font that will be used for |:hardcopy|.
	See |pfn-option|.

						*'printheader'* *'pheader'*
'printheader' 'pheader'  string  (default "%<%f%h%m%=Page %N")
			global
			{not in Vi}
			{only available when compiled with the |+printer|
			feature}
	The format of the header produced in |:hardcopy| output.
	See |pheader-option|.

						*'printmbcharset'* *'pmbcs'*
'printmbcharset' 'pmbcs'  string (default "")
			global
			{not in Vi}
			{only available when compiled with the |+printer|,
			|+postscript| and |+multi_byte| features}
	The CJK character set to be used for CJK output from |:hardcopy|.
	See |pmbcs-option|.

						*'printmbfont'* *'pmbfn'*
'printmbfont' 'pmbfn'	string (default "")
			global
			{not in Vi}
			{only available when compiled with the |+printer|,
			|+postscript| and |+multi_byte| features}
	List of font names to be used for CJK output from |:hardcopy|.
	See |pmbfn-option|.

						*'printoptions'* *'popt'*
'printoptions' 'popt' string (default "")
			global
			{not in Vi}
			{only available when compiled with |+printer| feature}
	List of items that control the format of the output of |:hardcopy|.
	See |popt-option|.

						*'prompt'* *'noprompt'*
'prompt'		boolean	(default on)
			global
	When on a ":" prompt is used in Ex mode.

						*'pumheight'* *'ph'*
'pumheight' 'ph'	number	(default 0)
			global
			{not available when compiled without the
			|+insert_expand| feature}
			{not in Vi}
	Determines the maximum number of items to show in the popup menu for
	Insert mode completion.  When zero as much space as available is used.
	|ins-completion-menu|.

						*'pumwidth'* *'pw'*
'pumwidth' 'pw'		number	(default 15)
			global
			{not available when compiled without the
			|+insert_expand| feature}
			{not in Vi}
	Determines the minimum width to use for the popup menu for Insert mode
	completion.  |ins-completion-menu|.

						*'pythondll'*
'pythondll'		string	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+python/dyn|
			feature}
	Specifies the name of the Python 2.x shared library. The default is
	DYNAMIC_PYTHON_DLL, which was specified at compile time.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'pythonhome'*
'pythonhome'		string	(default "")
			global
			{not in Vi}
			{only available when compiled with the |+python/dyn|
			feature}
	Specifies the name of the Python 2.x home directory. When 'pythonhome'
	and the PYTHONHOME environment variable are not set, PYTHON_HOME,
	which was specified at compile time, will be used for the Python 2.x
	home directory.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'pythonthreedll'*
'pythonthreedll'	string	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+python3/dyn|
			feature}
	Specifies the name of the Python 3 shared library. The default is
	DYNAMIC_PYTHON3_DLL, which was specified at compile time.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'pythonthreehome'*
'pythonthreehome'	string	(default "")
			global
			{not in Vi}
			{only available when compiled with the |+python3/dyn|
			feature}
	Specifies the name of the Python 3 home directory. When
	'pythonthreehome' and the PYTHONHOME environment variable are not set,
	PYTHON3_HOME, which was specified at compile time, will be used for
	the Python 3 home directory.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'pyxversion'* *'pyx'*
'pyxversion' 'pyx'	number	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+python| or
			the |+python3| feature}
	Specifies the python version used for pyx* functions and commands
	|python_x|.  The default value is as follows:

		Compiled with		     Default ~
		|+python| and |+python3|	0
		only |+python|			2
		only |+python3|			3

	Available values are 0, 2 and 3.
	If 'pyxversion' is 0, it is set to 2 or 3 after the first execution of
	any python2/3 commands or functions.  E.g. `:py` sets to 2, and `:py3`
	sets to 3. `:pyx` sets it to 3 if Python 3 is available, otherwise sets
	to 2 if Python 2 is available.
	See also: |has-pythonx|

	If Vim is compiled with only |+python| or |+python3| setting
	'pyxversion' has no effect.  The pyx* functions and commands are
	always the same as the compiled version.

	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'quoteescape'* *'qe'*
'quoteescape' 'qe'	string	(default "\")
			local to buffer
			{not in Vi}
	The characters that are used to escape quotes in a string.  Used for
	objects like a', a" and a` |a'|.
	When one of the characters in this option is found inside a string,
	the following character will be skipped.  The default value makes the
	text "foo\"bar\\" considered to be one string.

				   *'readonly'* *'ro'* *'noreadonly'* *'noro'*
'readonly' 'ro'		boolean	(default off)
			local to buffer
	If on, writes fail unless you use a '!'.  Protects you from
	accidentally overwriting a file.  Default on when Vim is started
	in read-only mode ("vim -R") or when the executable is called "view".
	When using ":w!" the 'readonly' option is reset for the current
	buffer, unless the 'Z' flag is in 'cpoptions'.
	{not in Vi:}  When using the ":view" command the 'readonly' option is
	set for the newly edited buffer.
	See 'modifiable' for disallowing changes to the buffer.

						*'redrawtime'* *'rdt'*
'redrawtime' 'rdt'	number	(default 2000)
			global
			{not in Vi}
			{only available when compiled with the |+reltime|
			feature}
	The time in milliseconds for redrawing the display.  This applies to
	searching for patterns for 'hlsearch', |:match| highlighting an syntax
	highlighting.
	When redrawing takes more than this many milliseconds no further
	matches will be highlighted.
	For syntax highlighting the time applies per window.  When over the
	limit syntax highlighting is disabled until |CTRL-L| is used.
	This is used to avoid that Vim hangs when using a very complicated
	pattern.

						*'regexpengine'* *'re'*
'regexpengine' 're'	number	(default 0)
			global
			{not in Vi}
	This selects the default regexp engine. |two-engines|
	The possible values are:
		0	automatic selection
		1	old engine
		2	NFA engine
	Note that when using the NFA engine and the pattern contains something
	that is not supported the pattern will not match.  This is only useful
	for debugging the regexp engine.
	Using automatic selection enables Vim to switch the engine, if the
	default engine becomes too costly.  E.g., when the NFA engine uses too
	many states.  This should prevent Vim from hanging on a combination of
	a complex pattern with long text.

		*'relativenumber'* *'rnu'* *'norelativenumber'* *'nornu'*
'relativenumber' 'rnu'	boolean	(default off)
			local to window
			{not in Vi}
	Show the line number relative to the line with the cursor in front of
	each line. Relative line numbers help you use the |count| you can
	precede some vertical motion commands (e.g. j k + -) with, without
	having to calculate it yourself. Especially useful in combination with
	other commands (e.g. y d c < > gq gw =).
	When the 'n' option is excluded from 'cpoptions' a wrapped
	line will not use the column of line numbers (this is the default when
	'compatible' isn't set).
	The 'numberwidth' option can be used to set the room used for the line
	number.
	When a long, wrapped line doesn't start with the first character, '-'
	characters are put before the number.
	See |hl-LineNr|  and |hl-CursorLineNr| for the highlighting used for
	the number.

	The number in front of the cursor line also depends on the value of
	'number', see |number_relativenumber| for all combinations of the two
	options.

						*'remap'* *'noremap'*
'remap'			boolean	(default on)
			global
	Allows for mappings to work recursively.  If you do not want this for
	a single entry, use the :noremap[!] command.
	NOTE: To avoid portability problems with Vim scripts, always keep
	this option at the default "on".  Only switch it off when working with
	old Vi scripts.

                                               *'renderoptions'* *'rop'*
'renderoptions' 'rop'	string  (default: empty)
			global
			{not in Vi}
			{only available when compiled with GUI and DIRECTX on
			MS-Windows}
	Select a text renderer and set its options.  The options depend on the
	renderer.

	Syntax: >
		set rop=type:{renderer}(,{name}:{value})*
<
	Currently, only one optional renderer is available.

	render	behavior    ~
	directx	Vim will draw text using DirectX (DirectWrite).  It makes
		drawn glyphs more beautiful than default GDI.
		It requires 'encoding' is "utf-8", and only works on
		MS-Windows Vista or newer version.

		Options:
		  name	    meaning		type	value       ~
		  gamma	    gamma		float	1.0 - 2.2 (maybe)
		  contrast  enhancedContrast	float	(unknown)
		  level	    clearTypeLevel	float	(unknown)
		  geom	    pixelGeometry	int	0 - 2 (see below)
		  renmode   renderingMode	int	0 - 6 (see below)
		  taamode   textAntialiasMode	int	0 - 3 (see below)
		  scrlines  Scroll Lines	int	(deprecated)

		See this URL for detail (except for scrlines):
		  https://msdn.microsoft.com/en-us/library/dd368190.aspx

		For geom: structure of a device pixel.
		  0 - DWRITE_PIXEL_GEOMETRY_FLAT
		  1 - DWRITE_PIXEL_GEOMETRY_RGB
		  2 - DWRITE_PIXEL_GEOMETRY_BGR

		See this URL for detail:
		  https://msdn.microsoft.com/en-us/library/dd368114.aspx

		For renmode: method of rendering glyphs.
		  0 - DWRITE_RENDERING_MODE_DEFAULT
		  1 - DWRITE_RENDERING_MODE_ALIASED
		  2 - DWRITE_RENDERING_MODE_GDI_CLASSIC
		  3 - DWRITE_RENDERING_MODE_GDI_NATURAL
		  4 - DWRITE_RENDERING_MODE_NATURAL
		  5 - DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC
		  6 - DWRITE_RENDERING_MODE_OUTLINE

		See this URL for detail:
		  https://msdn.microsoft.com/en-us/library/dd368118.aspx

		For taamode: antialiasing mode used for drawing text.
		  0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
		  1 - D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE
		  2 - D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE
		  3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED

		See this URL for detail:
		  https://msdn.microsoft.com/en-us/library/dd368170.aspx

		For scrlines:
		This was used for optimizing scrolling behavior, however this
		is now deprecated.  If specified, it is simply ignored.

		Example: >
		  set encoding=utf-8
		  set gfn=Ricty_Diminished:h12
		  set rop=type:directx
<
		If select a raster font (Courier, Terminal or FixedSys which
		have ".fon" extension in file name) to 'guifont', it will be
		drawn by GDI as a fallback.

		NOTE: It is known that some fonts and options combination
		causes trouble on drawing glyphs.

		  - 'renmode:5' and 'renmode:6' will not work with some
		    special made fonts (True-Type fonts which includes only
		    bitmap glyphs).
		  - 'taamode:3' will not work with some vector fonts.

		NOTE: With this option, you can display colored emoji
		(emoticon) in Windows 8.1 or later.  To display colored emoji,
		there are some conditions which you should notice.

		  - If your font includes non-colored emoji already, it will
		    be used.
		  - If your font doesn't have emoji, the system chooses an
		    alternative symbol font.  On Windows 10, "Segoe UI Emoji"
		    will be used.
		  - When this alternative font didn't have fixed width glyph,
		    emoji might be rendered beyond the bounding box of drawing
		    cell.

	Other render types are currently not supported.

						*'report'*
'report'		number	(default 2)
			global
	Threshold for reporting number of lines changed.  When the number of
	changed lines is more than 'report' a message will be given for most
	":" commands.  If you want it always, set 'report' to 0.
	For the ":substitute" command the number of substitutions is used
	instead of the number of lines.

			 *'restorescreen'* *'rs'* *'norestorescreen'* *'nors'*
'restorescreen' 'rs'	boolean	(default on)
			global
			{not in Vi}  {only in Windows 95/NT console version}
	When set, the screen contents is restored when exiting Vim.  This also
	happens when executing external commands.

	For non-Windows Vim: You can set or reset the 't_ti' and 't_te'
	options in your .vimrc.  To disable restoring:
		set t_ti= t_te=
	To enable restoring (for an xterm):
		set t_ti=^[7^[[r^[[?47h t_te=^[[?47l^[8
	(Where ^[ is an <Esc>, type CTRL-V <Esc> to insert it)

				*'revins'* *'ri'* *'norevins'* *'nori'*
'revins' 'ri'		boolean	(default off)
			global
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	Inserting characters in Insert mode will work backwards.  See "typing
	backwards" |ins-reverse|.  This option can be toggled with the CTRL-_
	command in Insert mode, when 'allowrevins' is set.
	NOTE: This option is reset when 'compatible' is set.
	This option is reset when 'paste' is set and restored when 'paste' is
	reset.

				 *'rightleft'* *'rl'* *'norightleft'* *'norl'*
'rightleft' 'rl'	boolean	(default off)
			local to window
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	When on, display orientation becomes right-to-left, i.e., characters
	that are stored in the file appear from the right to the left.
	Using this option, it is possible to edit files for languages that
	are written from the right to the left such as Hebrew and Arabic.
	This option is per window, so it is possible to edit mixed files
	simultaneously, or to view the same file in both ways (this is
	useful whenever you have a mixed text file with both right-to-left
	and left-to-right strings so that both sets are displayed properly
	in different windows).  Also see |rileft.txt|.

			*'rightleftcmd'* *'rlc'*
'rightleftcmd' 'rlc'	string	(default "search")
			local to window
			{not in Vi}
			{only available when compiled with the |+rightleft|
			feature}
	Each word in this option enables the command line editing to work in
	right-to-left mode for a group of commands:

		search		"/" and "?" commands

	This is useful for languages such as Hebrew, Arabic and Farsi.
	The 'rightleft' option must be set for 'rightleftcmd' to take effect.

						*'rubydll'*
'rubydll'		string	(default: depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+ruby/dyn|
			feature}
	Specifies the name of the Ruby shared library. The default is
	DYNAMIC_RUBY_DLL, which was specified at compile time.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

					 *'ruler'* *'ru'* *'noruler'* *'noru'*
'ruler' 'ru'		boolean	(default off, set in |defaults.vim|)
			global
			{not in Vi}
			{not available when compiled without the
			|+cmdline_info| feature}
	Show the line and column number of the cursor position, separated by a
	comma.  When there is room, the relative position of the displayed
	text in the file is shown on the far right:
		Top	first line is visible
		Bot	last line is visible
		All	first and last line are visible
		45%	relative position in the file
	If 'rulerformat' is set, it will determine the contents of the ruler.
	Each window has its own ruler.  If a window has a status line, the
	ruler is shown there.  Otherwise it is shown in the last line of the
	screen.  If the statusline is given by 'statusline' (i.e. not empty),
	this option takes precedence over 'ruler' and 'rulerformat'
	If the number of characters displayed is different from the number of
	bytes in the text (e.g., for a TAB or a multi-byte character), both
	the text column (byte number) and the screen column are shown,
	separated with a dash.
	For an empty line "0-1" is shown.
	For an empty buffer the line number will also be zero: "0,0-1".
	This option is reset when 'paste' is set and restored when 'paste' is
	reset.
	If you don't want to see the ruler all the time but want to know where
	you are, use "g CTRL-G" |g_CTRL-G|.
	NOTE: This option is reset when 'compatible' is set.

						*'rulerformat'* *'ruf'*
'rulerformat' 'ruf'	string	(default empty)
			global
			{not in Vi}
			{not available when compiled without the |+statusline|
			feature}
	When this option is not empty, it determines the content of the ruler
	string, as displayed for the 'ruler' option.
	The format of this option is like that of 'statusline'.
	The default ruler width is 17 characters.  To make the ruler 15
	characters wide, put "%15(" at the start and "%)" at the end.
	Example: >
		:set rulerformat=%15(%c%V\ %p%%%)
<
				*'runtimepath'* *'rtp'* *vimfiles*
'runtimepath' 'rtp'	string	(default:
					Unix: "$HOME/.vim,
						$VIM/vimfiles,
						$VIMRUNTIME,
						$VIM/vimfiles/after,
						$HOME/.vim/after"
					Amiga: "home:vimfiles,
						$VIM/vimfiles,
						$VIMRUNTIME,
						$VIM/vimfiles/after,
						home:vimfiles/after"
					PC, OS/2: "$HOME/vimfiles,
						$VIM/vimfiles,
						$VIMRUNTIME,
						$VIM/vimfiles/after,
						$HOME/vimfiles/after"
					Macintosh: "$VIM:vimfiles,
						$VIMRUNTIME,
						$VIM:vimfiles:after"
					RISC-OS: "Choices:vimfiles,
						$VIMRUNTIME,
						Choices:vimfiles/after"
					VMS: "sys$login:vimfiles,
						$VIM/vimfiles,
						$VIMRUNTIME,
						$VIM/vimfiles/after,
						sys$login:vimfiles/after")
			global
			{not in Vi}
	This is a list of directories which will be searched for runtime
	files:
	  filetype.vim	filetypes by file name |new-filetype|
	  scripts.vim	filetypes by file contents |new-filetype-scripts|
	  autoload/	automatically loaded scripts |autoload-functions|
	  colors/	color scheme files |:colorscheme|
	  compiler/	compiler files |:compiler|
	  doc/		documentation |write-local-help|
	  ftplugin/	filetype plugins |write-filetype-plugin|
	  indent/	indent scripts |indent-expression|
	  keymap/	key mapping files |mbyte-keymap|
	  lang/		menu translations |:menutrans|
	  menu.vim	GUI menus |menu.vim|
	  pack/		packages |:packadd|
	  plugin/	plugin scripts |write-plugin|
	  print/	files for printing |postscript-print-encoding|
	  spell/	spell checking files |spell|
	  syntax/	syntax files |mysyntaxfile|
	  tutor/	files for vimtutor |tutor|

	And any other file searched for with the |:runtime| command.

	The defaults for most systems are setup to search five locations:
	1. In your home directory, for your personal preferences.
	2. In a system-wide Vim directory, for preferences from the system
	   administrator.
	3. In $VIMRUNTIME, for files distributed with Vim.
							*after-directory*
	4. In the "after" directory in the system-wide Vim directory.  This is
	   for the system administrator to overrule or add to the distributed
	   defaults (rarely needed)
	5. In the "after" directory in your home directory.  This is for
	   personal preferences to overrule or add to the distributed defaults
	   or system-wide settings (rarely needed).

	More entries are added when using |packages|.  If it gets very long
	then `:set rtp` will be truncated, use `:echo &rtp` to see the full
	string.

	Note that, unlike 'path', no wildcards like "**" are allowed.  Normal
	wildcards are allowed, but can significantly slow down searching for
	runtime files.  For speed, use as few items as possible and avoid
	wildcards.
	See |:runtime|.
	Example: >
		:set runtimepath=~/vimruntime,/mygroup/vim,$VIMRUNTIME
<	This will use the directory "~/vimruntime" first (containing your
	personal Vim runtime files), then "/mygroup/vim" (shared between a
	group of people) and finally "$VIMRUNTIME" (the distributed runtime
	files).
	You probably should always include $VIMRUNTIME somewhere, to use the
	distributed runtime files.  You can put a directory before $VIMRUNTIME
	to find files which replace a distributed runtime files.  You can put
	a directory after $VIMRUNTIME to find files which add to distributed
	runtime files.
	When Vim is started with |--clean| the home directory entries are not
	included.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'scroll'* *'scr'*
'scroll' 'scr'		number	(default: half the window height)
			local to window
	Number of lines to scroll with CTRL-U and CTRL-D commands.  Will be
	set to half the number of lines in the window when the window size
	changes.  If you give a count to the CTRL-U or CTRL-D command it will
	be used as the new value for 'scroll'.  Reset to half the window
	height with ":set scroll=0".   {Vi is a bit different: 'scroll' gives
	the number of screen lines instead of file lines, makes a difference
	when lines wrap}

			*'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'*
'scrollbind' 'scb'	boolean  (default off)
			local to window
			{not in Vi}
	See also |scroll-binding|.  When this option is set, the current
	window scrolls as other scrollbind windows (windows that also have
	this option set) scroll.  This option is useful for viewing the
	differences between two versions of a file, see 'diff'.
	See |'scrollopt'| for options that determine how this option should be
	interpreted.
	This option is mostly reset when splitting a window to edit another
	file.  This means that ":split | edit file" results in two windows
	with scroll-binding, but ":split file" does not.

						*'scrolljump'* *'sj'*
'scrolljump' 'sj'	number	(default 1)
			global
			{not in Vi}
	Minimal number of lines to scroll when the cursor gets off the
	screen (e.g., with "j").  Not used for scroll commands (e.g., CTRL-E,
	CTRL-D).  Useful if your terminal scrolls very slowly.
	When set to a negative number from -1 to -100 this is used as the
	percentage of the window height.  Thus -50 scrolls half the window
	height.
	NOTE: This option is set to 1 when 'compatible' is set.

						*'scrolloff'* *'so'*
'scrolloff' 'so'	number	(default 0, set to 5 in |defaults.vim|)
			global
			{not in Vi}
	Minimal number of screen lines to keep above and below the cursor.
	This will make some context visible around where you are working.  If
	you set it to a very large value (999) the cursor line will always be
	in the middle of the window (except at the start or end of the file or
	when long lines wrap).
	For scrolling horizontally see 'sidescrolloff'.
	NOTE: This option is set to 0 when 'compatible' is set.

						*'scrollopt'* *'sbo'*
'scrollopt' 'sbo'	string	(default "ver,jump")
			global
			{not in Vi}
	This is a comma-separated list of words that specifies how
	'scrollbind' windows should behave.  'sbo' stands for ScrollBind
	Options.
	The following words are available:
	    ver		Bind vertical scrolling for 'scrollbind' windows
	    hor		Bind horizontal scrolling for 'scrollbind' windows
	    jump	Applies to the offset between two windows for vertical
			scrolling.  This offset is the difference in the first
			displayed line of the bound windows.  When moving
			around in a window, another 'scrollbind' window may
			reach a position before the start or after the end of
			the buffer.  The offset is not changed though, when
			moving back the 'scrollbind' window will try to scroll
			to the desired position when possible.
			When now making that window the current one, two
			things can be done with the relative offset:
			1. When "jump" is not included, the relative offset is
			   adjusted for the scroll position in the new current
			   window.  When going back to the other window, the
			   new relative offset will be used.
			2. When "jump" is included, the other windows are
			   scrolled to keep the same relative offset.  When
			   going back to the other window, it still uses the
			   same relative offset.
	Also see |scroll-binding|.
	When 'diff' mode is active there always is vertical scroll binding,
	even when "ver" isn't there.

						*'sections'* *'sect'*
'sections' 'sect'	string	(default "SHNHH HUnhsh")
			global
	Specifies the nroff macros that separate sections.  These are pairs of
	two letters (See |object-motions|).  The default makes a section start
	at the nroff macros ".SH", ".NH", ".H", ".HU", ".nh" and ".sh".

						*'secure'* *'nosecure'* *E523*
'secure'		boolean	(default off)
			global
			{not in Vi}
	When on, ":autocmd", shell and write commands are not allowed in
	".vimrc" and ".exrc" in the current directory and map commands are
	displayed.  Switch it off only if you know that you will not run into
	problems, or when the 'exrc' option is off.  On Unix this option is
	only used if the ".vimrc" or ".exrc" is not owned by you.  This can be
	dangerous if the systems allows users to do a "chown".  You better set
	'secure' at the end of your ~/.vimrc then.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'selection'* *'sel'*
'selection' 'sel'	string	(default "inclusive")
			global
			{not in Vi}
	This option defines the behavior of the selection.  It is only used
	in Visual and Select mode.
	Possible values:
	   value	past line     inclusive ~
	   old		   no		yes
	   inclusive	   yes		yes
	   exclusive	   yes		no
	"past line" means that the cursor is allowed to be positioned one
	character past the line.
	"inclusive" means that the last character of the selection is included
	in an operation.  For example, when "x" is used to delete the
	selection.
	When "old" is used and 'virtualedit' allows the cursor to move past
	the end of line the line break still isn't included.
	Note that when "exclusive" is used and selecting from the end
	backwards, you cannot include the last character of a line, when
	starting in Normal mode and 'virtualedit' empty.

	The 'selection' option is set by the |:behave| command.

						*'selectmode'* *'slm'*
'selectmode' 'slm'	string	(default "")
			global
			{not in Vi}
	This is a comma separated list of words, which specifies when to start
	Select mode instead of Visual mode, when a selection is started.
	Possible values:
	   mouse	when using the mouse
	   key		when using shifted special keys
	   cmd		when using "v", "V" or CTRL-V
	See |Select-mode|.
	The 'selectmode' option is set by the |:behave| command.

						*'sessionoptions'* *'ssop'*
'sessionoptions' 'ssop'	string	(default: "blank,buffers,curdir,folds,
					 help,options,tabpages,winsize,terminal")
			global
			{not in Vi}
			{not available when compiled without the |+mksession|
			feature}
	Changes the effect of the |:mksession| command.  It is a comma
	separated list of words.  Each word enables saving and restoring
	something:
	   word		save and restore ~
	   blank	empty windows
	   buffers	hidden and unloaded buffers, not just those in windows
	   curdir	the current directory
	   folds	manually created folds, opened/closed folds and local
			fold options
	   globals	global variables that start with an uppercase letter
			and contain at least one lowercase letter.  Only
			String and Number types are stored.
	   help		the help window
	   localoptions	options and mappings local to a window or buffer (not
			global values for local options)
	   options	all options and mappings (also global values for local
			options)
	   resize	size of the Vim window: 'lines' and 'columns'
	   sesdir	the directory in which the session file is located
			will become the current directory (useful with
			projects accessed over a network from different
			systems)
	   slash	backslashes in file names replaced with forward
			slashes
	   tabpages	all tab pages; without this only the current tab page
			is restored, so that you can make a session for each
			tab page separately
	   terminal	include terminal windows where the command can be restored
	   unix		with Unix end-of-line format (single <NL>), even when
			on Windows or DOS
	   winpos	position of the whole Vim window
	   winsize	window sizes

	Don't include both "curdir" and "sesdir".
	When neither "curdir" nor "sesdir" is included, file names are stored
	with absolute paths.
	"slash" and "unix" are useful on Windows when sharing session files
	with Unix.  The Unix version of Vim cannot source dos format scripts,
	but the Windows version of Vim can source unix format scripts.

						*'shell'* *'sh'* *E91*
'shell' 'sh'		string	(default $SHELL or "sh",
					MS-DOS and Win32: "command.com" or
					"cmd.exe", OS/2: "cmd")
			global
	Name of the shell to use for ! and :! commands.  When changing the
	value also check these options: 'shelltype', 'shellpipe', 'shellslash'
	'shellredir', 'shellquote', 'shellxquote' and 'shellcmdflag'.
	It is allowed to give an argument to the command, e.g.  "csh -f".
	See |option-backslash| about including spaces and backslashes.
	Environment variables are expanded |:set_env|.

	If the name of the shell contains a space, you might need to enclose
	it in quotes or escape the space.  Example with quotes: >
		:set shell=\"c:\program\ files\unix\sh.exe\"\ -f
<	Note the backslash before each quote (to avoid starting a comment) and
	each space (to avoid ending the option value).  Also note that the
	"-f" is not inside the quotes, because it is not part of the command
	name.  Vim automagically recognizes the backslashes that are path
	separators.
	Example with escaped space (Vim will do this when initializing the
	option from $SHELL): >
		:set shell=/bin/with\\\ space/sh
<	The resulting value of 'shell' is  "/bin/with\ space/sh", two
	backslashes are consumed by `:set`.

	Under MS-Windows, when the executable ends in ".com" it must be
	included.  Thus setting the shell to "command.com" or "4dos.com"
	works, but "command" and "4dos" do not work for all commands (e.g.,
	filtering).
	For unknown reasons, when using "4dos.com" the current directory is
	changed to "C:\".  To avoid this set 'shell' like this: >
		:set shell=command.com\ /c\ 4dos
<	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'shellcmdflag'* *'shcf'*
'shellcmdflag' 'shcf'	string	(default: "-c";
				 MS-DOS and Win32, when 'shell' does not
				 contain "sh" somewhere: "/c")
			global
			{not in Vi}
	Flag passed to the shell to execute "!" and ":!" commands; e.g.,
	"bash.exe -c ls" or "command.com /c dir".  For the MS-DOS-like
	systems, the default is set according to the value of 'shell', to
	reduce the need to set this option by the user.
	On Unix it can have more than one flag.  Each white space separated
	part is passed as an argument to the shell command.
	See |option-backslash| about including spaces and backslashes.
	Also see |dos-shell| for MS-DOS and MS-Windows.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'shellpipe'* *'sp'*
'shellpipe' 'sp'	string	(default ">", "| tee", "|& tee" or "2>&1| tee")
			global
			{not in Vi}
			{not available when compiled without the |+quickfix|
			feature}
	String to be used to put the output of the ":make" command in the
	error file.  See also |:make_makeprg|.  See |option-backslash| about
	including spaces and backslashes.
	The name of the temporary file can be represented by "%s" if necessary
	(the file name is appended automatically if no %s appears in the value
	of this option).
	For the Amiga and MS-DOS the default is ">".  The output is directly
	saved in a file and not echoed to the screen.
	For Unix the default it "| tee".  The stdout of the compiler is saved
	in a file and echoed to the screen.  If the 'shell' option is "csh" or
	"tcsh" after initializations, the default becomes "|& tee".  If the
	'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh" or "bash" the
	default becomes "2>&1| tee".  This means that stderr is also included.
	Before using the 'shell' option a path is removed, thus "/bin/sh" uses
	"sh".
	The initialization of this option is done after reading the ".vimrc"
	and the other initializations, so that when the 'shell' option is set
	there, the 'shellpipe' option changes automatically, unless it was
	explicitly set before.
	When 'shellpipe' is set to an empty string, no redirection of the
	":make" output will be done.  This is useful if you use a 'makeprg'
	that writes to 'makeef' by itself.  If you want no piping, but do
	want to include the 'makeef', set 'shellpipe' to a single space.
	Don't forget to precede the space with a backslash: ":set sp=\ ".
	In the future pipes may be used for filtering and this option will
	become obsolete (at least for Unix).
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'shellquote'* *'shq'*
'shellquote' 'shq'	string	(default: ""; MS-DOS and Win32, when 'shell'
					contains "sh" somewhere: "\"")
			global
			{not in Vi}
	Quoting character(s), put around the command passed to the shell, for
	the "!" and ":!" commands.  The redirection is kept outside of the
	quoting.  See 'shellxquote' to include the redirection.  It's
	probably not useful to set both options.
	This is an empty string by default.  Only known to be useful for
	third-party shells on MS-DOS-like systems, such as the MKS Korn Shell
	or bash, where it should be "\"".  The default is adjusted according
	the value of 'shell', to reduce the need to set this option by the
	user.  See |dos-shell|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'shellredir'* *'srr'*
'shellredir' 'srr'	string	(default ">", ">&" or ">%s 2>&1")
			global
			{not in Vi}
	String to be used to put the output of a filter command in a temporary
	file.  See also |:!|.  See |option-backslash| about including spaces
	and backslashes.
	The name of the temporary file can be represented by "%s" if necessary
	(the file name is appended automatically if no %s appears in the value
	of this option).
	The default is ">".  For Unix, if the 'shell' option is "csh", "tcsh"
	or "zsh" during initializations, the default becomes ">&".  If the
	'shell' option is "sh", "ksh" or "bash" the default becomes
	">%s 2>&1".  This means that stderr is also included.
	For Win32, the Unix checks are done and additionally "cmd" is checked
	for, which makes the default ">%s 2>&1".  Also, the same names with
	".exe" appended are checked for.
	The initialization of this option is done after reading the ".vimrc"
	and the other initializations, so that when the 'shell' option is set
	there, the 'shellredir' option changes automatically unless it was
	explicitly set before.
	In the future pipes may be used for filtering and this option will
	become obsolete (at least for Unix).
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

			*'shellslash'* *'ssl'* *'noshellslash'* *'nossl'*
'shellslash' 'ssl'	boolean	(default off)
			global
			{not in Vi} {only for MSDOS, MS-Windows and OS/2}
	When set, a forward slash is used when expanding file names.  This is
	useful when a Unix-like shell is used instead of command.com or
	cmd.exe.  Backward slashes can still be typed, but they are changed to
	forward slashes by Vim.
	Note that setting or resetting this option has no effect for some
	existing file names, thus this option needs to be set before opening
	any file for best results.  This might change in the future.
	'shellslash' only works when a backslash can be used as a path
	separator.  To test if this is so use: >
		if exists('+shellslash')
<
			*'shelltemp'* *'stmp'* *'noshelltemp'* *'nostmp'*
'shelltemp' 'stmp'	boolean	(Vi default off, Vim default on)
			global
			{not in Vi}
	When on, use temp files for shell commands.  When off use a pipe.
	When using a pipe is not possible temp files are used anyway.
	Currently a pipe is only supported on Unix and MS-Windows 2K and
	later.  You can check it with: >
		:if has("filterpipe")
<	The advantage of using a pipe is that nobody can read the temp file
	and the 'shell' command does not need to support redirection.
	The advantage of using a temp file is that the file type and encoding
	can be detected.
	The |FilterReadPre|, |FilterReadPost| and |FilterWritePre|,
	|FilterWritePost| autocommands event are not triggered when
	'shelltemp' is off.
	The `system()` function does not respect this option and always uses
	temp files.
	NOTE: This option is set to the Vim default value when 'compatible'
	is reset.

						*'shelltype'* *'st'*
'shelltype' 'st'	number	(default 0)
			global
			{not in Vi} {only for the Amiga}
	On the Amiga this option influences the way how the commands work
	which use a shell.
	0 and 1: always use the shell
	2 and 3: use the shell only to filter lines
	4 and 5: use shell only for ':sh' command
	When not using the shell, the command is executed directly.

	0 and 2: use "shell 'shellcmdflag' cmd" to start external commands
	1 and 3: use "shell cmd" to start external commands

						*'shellxescape'* *'sxe'*
'shellxescape' 'sxe'	string	(default: "";
				 for MS-DOS and MS-Windows: "\"&|<>()@^")
			global
			{not in Vi}
	When 'shellxquote' is set to "(" then the characters listed in this
	option will be escaped with a '^' character.  This makes it possible
	to execute most external commands with cmd.exe.

						*'shellxquote'* *'sxq'*
'shellxquote' 'sxq'	string	(default: "";
					for Win32, when 'shell' is cmd.exe: "("
					for Win32, when 'shell' contains "sh"
					somewhere: "\""
					for Unix, when using system(): "\"")
			global
			{not in Vi}
	Quoting character(s), put around the command passed to the shell, for
	the "!" and ":!" commands.  Includes the redirection.  See
	'shellquote' to exclude the redirection.  It's probably not useful
	to set both options.
	When the value is '(' then ')' is appended. When the value is '"('
	then ')"' is appended.
	When the value is '(' then also see 'shellxescape'.
	This is an empty string by default on most systems, but is known to be
	useful for on Win32 version, either for cmd.exe which automatically
	strips off the first and last quote on a command, or 3rd-party shells
	such as the MKS Korn Shell or bash, where it should be "\"".  The
	default is adjusted according the value of 'shell', to reduce the need
	to set this option by the user.  See |dos-shell|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

			*'shiftround'* *'sr'* *'noshiftround'* *'nosr'*
'shiftround' 'sr'	boolean	(default off)
			global
			{not in Vi}
	Round indent to multiple of 'shiftwidth'.  Applies to > and <
	commands.  CTRL-T and CTRL-D in Insert mode always round the indent to
	a multiple of 'shiftwidth' (this is Vi compatible).
	NOTE: This option is reset when 'compatible' is set.

						*'shiftwidth'* *'sw'*
'shiftwidth' 'sw'	number	(default 8)
			local to buffer
	Number of spaces to use for each step of (auto)indent.  Used for
	|'cindent'|, |>>|, |<<|, etc.
	When zero the 'ts' value will be used.  Use the |shiftwidth()|
	function to get the effective shiftwidth value.

						*'shortmess'* *'shm'*
'shortmess' 'shm'	string	(Vim default "filnxtToO", Vi default: "",
							POSIX default: "A")
			global
			{not in Vi}
	This option helps to avoid all the |hit-enter| prompts caused by file
	messages, for example  with CTRL-G, and to avoid some other messages.
	It is a list of flags:
	 flag	meaning when present	~
	  f	use "(3 of 5)" instead of "(file 3 of 5)"
	  i	use "[noeol]" instead of "[Incomplete last line]"
	  l	use "999L, 888C" instead of "999 lines, 888 characters"
	  m	use "[+]" instead of "[Modified]"
	  n	use "[New]" instead of "[New File]"
	  r	use "[RO]" instead of "[readonly]"
	  w	use "[w]" instead of "written" for file write message
		and "[a]" instead of "appended" for ':w >> file' command
	  x	use "[dos]" instead of "[dos format]", "[unix]" instead of
		"[unix format]" and "[mac]" instead of "[mac format]".
	  a	all of the above abbreviations

	  o	overwrite message for writing a file with subsequent message
		for reading a file (useful for ":wn" or when 'autowrite' on)
	  O	message for reading a file overwrites any previous message.
		Also for quickfix message (e.g., ":cn").
	  s	don't give "search hit BOTTOM, continuing at TOP" or "search
		hit TOP, continuing at BOTTOM" messages
	  t	truncate file message at the start if it is too long to fit
		on the command-line, "<" will appear in the left most column.
		Ignored in Ex mode.
	  T	truncate other messages in the middle if they are too long to
		fit on the command line.  "..." will appear in the middle.
		Ignored in Ex mode.
	  W	don't give "written" or "[w]" when writing a file
	  A	don't give the "ATTENTION" message when an existing swap file
		is found.
	  I	don't give the intro message when starting Vim |:intro|.
	  c	don't give |ins-completion-menu| messages.  For example,
		"-- XXX completion (YYY)", "match 1 of 2", "The only match",
		"Pattern not found", "Back at original", etc.
	  q	use "recording" instead of "recording @a"
	  F	don't give the file info when editing a file, like `:silent`
		was used for the command

	This gives you the opportunity to avoid that a change between buffers
	requires you to hit <Enter>, but still gives as useful a message as
	possible for the space available.  To get the whole message that you
	would have got with 'shm' empty, use ":file!"
	Useful values:
	    shm=	No abbreviation of message.
	    shm=a	Abbreviation, but no loss of information.
	    shm=at	Abbreviation, and truncate message when necessary.

	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

				 *'shortname'* *'sn'* *'noshortname'* *'nosn'*
'shortname' 'sn'	boolean	(default off)
			local to buffer
			{not in Vi, not in MS-DOS versions}
	Filenames are assumed to be 8 characters plus one extension of 3
	characters.  Multiple dots in file names are not allowed.  When this
	option is on, dots in file names are replaced with underscores when
	adding an extension (".~" or ".swp").  This option is not available
	for MS-DOS, because then it would always be on.  This option is useful
	when editing files on an MS-DOS compatible filesystem, e.g., messydos
	or crossdos.  When running the Win32 GUI version under Win32s, this
	option is always on by default.

						*'showbreak'* *'sbr'* *E595*
'showbreak' 'sbr'	string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+linebreak|
			feature}
	String to put at the start of lines that have been wrapped.  Useful
	values are "> " or "+++ ": >
		:set showbreak=>\ 
<	Note the backslash to escape the trailing space.  It's easier like
	this: >
		:let &showbreak = '+++ '
<	Only printable single-cell characters are allowed, excluding <Tab> and
	comma (in a future version the comma might be used to separate the
	part that is shown at the end and at the start of a line).
	The characters are highlighted according to the '@' flag in
	'highlight'.
	Note that tabs after the showbreak will be displayed differently.
	If you want the 'showbreak' to appear in between line numbers, add the
	"n" flag to 'cpoptions'.

				     *'showcmd'* *'sc'* *'noshowcmd'* *'nosc'*
'showcmd' 'sc'		boolean	(Vim default: on, off for Unix,
				       Vi default: off, set in |defaults.vim|)
			global
			{not in Vi}
			{not available when compiled without the
			|+cmdline_info| feature}
	Show (partial) command in the last line of the screen.  Set this
	option off if your terminal is slow.
	In Visual mode the size of the selected area is shown:
	- When selecting characters within a line, the number of characters.
	  If the number of bytes is different it is also displayed: "2-6"
	  means two characters and six bytes.
	- When selecting more than one line, the number of lines.
	- When selecting a block, the size in screen characters:
	  {lines}x{columns}.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

			*'showfulltag'* *'sft'* *'noshowfulltag'* *'nosft'*
'showfulltag' 'sft'	boolean (default off)
			global
			{not in Vi}
	When completing a word in insert mode (see |ins-completion|) from the
	tags file, show both the tag name and a tidied-up form of the search
	pattern (if there is one) as possible matches.  Thus, if you have
	matched a C function, you can see a template for what arguments are
	required (coding style permitting).
	Note that this doesn't work well together with having "longest" in
	'completeopt', because the completion from the search pattern may not
	match the typed text.

				 *'showmatch'* *'sm'* *'noshowmatch'* *'nosm'*
'showmatch' 'sm'	boolean	(default off)
			global
	When a bracket is inserted, briefly jump to the matching one.  The
	jump is only done if the match can be seen on the screen.  The time to
	show the match can be set with 'matchtime'.
	A Beep is given if there is no match (no matter if the match can be
	seen or not).
	This option is reset when 'paste' is set and restored when 'paste' is
	reset.
	When the 'm' flag is not included in 'cpoptions', typing a character
	will immediately move the cursor back to where it belongs.
	See the "sm" field in 'guicursor' for setting the cursor shape and
	blinking when showing the match.
	The 'matchpairs' option can be used to specify the characters to show
	matches for.  'rightleft' and 'revins' are used to look for opposite
	matches.
	Also see the matchparen plugin for highlighting the match when moving
	around |pi_paren.txt|.
	Note: Use of the short form is rated PG.

				 *'showmode'* *'smd'* *'noshowmode'* *'nosmd'*
'showmode' 'smd'	boolean	(Vim default: on, Vi default: off)
			global
	If in Insert, Replace or Visual mode put a message on the last line.
	Use the 'M' flag in 'highlight' to set the type of highlighting for
	this message.
	When |XIM| may be used the message will include "XIM".  But this
	doesn't mean XIM is really active, especially when 'imactivatekey' is
	not set.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'showtabline'* *'stal'*
'showtabline' 'stal'	number	(default 1)
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	The value of this option specifies when the line with tab page labels
	will be displayed:
		0: never
		1: only if there are at least two tab pages
		2: always
	This is both for the GUI and non-GUI implementation of the tab pages
	line.
	See |tab-page| for more information about tab pages.

						*'sidescroll'* *'ss'*
'sidescroll' 'ss'	number	(default 0)
			global
			{not in Vi}
	The minimal number of columns to scroll horizontally.  Used only when
	the 'wrap' option is off and the cursor is moved off of the screen.
	When it is zero the cursor will be put in the middle of the screen.
	When using a slow terminal set it to a large number or 0.  When using
	a fast terminal use a small number or 1.  Not used for "zh" and "zl"
	commands.

						*'sidescrolloff'* *'siso'*
'sidescrolloff' 'siso'	number (default 0)
			global
			{not in Vi}
	The minimal number of screen columns to keep to the left and to the
	right of the cursor if 'nowrap' is set.  Setting this option to a
	value greater than 0 while having |'sidescroll'| also at a non-zero
	value makes some context visible in the line you are scrolling in
	horizontally (except at beginning of the line).  Setting this option
	to a large value (like 999) has the effect of keeping the cursor
	horizontally centered in the window, as long as one does not come too
	close to the beginning of the line.
	NOTE: This option is set to 0 when 'compatible' is set.

	Example: Try this together with 'sidescroll' and 'listchars' as
		 in the following example to never allow the cursor to move
		 onto the "extends" character: >

		 :set nowrap sidescroll=1 listchars=extends:>,precedes:<
		 :set sidescrolloff=1
<
						*'signcolumn'* *'scl'*
'signcolumn' 'scl'	string	(default "auto")
			local to window
			{not in Vi}
			{not available when compiled without the |+signs|
			feature}
	Whether or not to draw the signcolumn. Valid values are:
	   "auto"   	only when there is a sign to display
	   "no"	    	never
	   "yes"    	always


			*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
'smartcase' 'scs'	boolean	(default off)
			global
			{not in Vi}
	Override the 'ignorecase' option if the search pattern contains upper
	case characters.  Only used when the search pattern is typed and
	'ignorecase' option is on.  Used for the commands "/", "?", "n", "N",
	":g" and ":s".  Not used for "*", "#", "gd", tag search, etc.  After
	"*" and "#" you can make 'smartcase' used by doing a "/" command,
	recalling the search pattern from history and hitting <Enter>.
	NOTE: This option is reset when 'compatible' is set.

			     *'smartindent'* *'si'* *'nosmartindent'* *'nosi'*
'smartindent' 'si'	boolean	(default off)
			local to buffer
			{not in Vi}
			{not available when compiled without the
			|+smartindent| feature}
	Do smart autoindenting when starting a new line.  Works for C-like
	programs, but can also be used for other languages.  'cindent' does
	something like this, works better in most cases, but is more strict,
	see |C-indenting|.  When 'cindent' is on or 'indentexpr' is set,
	setting 'si' has no effect.  'indentexpr' is a more advanced
	alternative.
	Normally 'autoindent' should also be on when using 'smartindent'.
	An indent is automatically inserted:
	- After a line ending in '{'.
	- After a line starting with a keyword from 'cinwords'.
	- Before a line starting with '}' (only with the "O" command).
	When typing '}' as the first character in a new line, that line is
	given the same indent as the matching '{'.
	When typing '#' as the first character in a new line, the indent for
	that line is removed, the '#' is put in the first column.  The indent
	is restored for the next line.  If you don't want this, use this
	mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
	When using the ">>" command, lines starting with '#' are not shifted
	right.
	NOTE: This option is reset when 'compatible' is set.
	This option is reset when 'paste' is set and restored when 'paste' is
	reset.

				 *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'*
'smarttab' 'sta'	boolean	(default off)
			global
			{not in Vi}
	When on, a <Tab> in front of a line inserts blanks according to
	'shiftwidth'.  'tabstop' or 'softtabstop' is used in other places.  A
	<BS> will delete a 'shiftwidth' worth of space at the start of the
	line.
	When off, a <Tab> always inserts blanks according to 'tabstop' or
	'softtabstop'.  'shiftwidth' is only used for shifting text left or
	right |shift-left-right|.
	What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
	option.  Also see |ins-expandtab|.  When 'expandtab' is not set, the
	number of spaces is minimized by using <Tab>s.
	This option is reset when 'paste' is set and restored when 'paste' is
	reset.
	NOTE: This option is reset when 'compatible' is set.

					*'softtabstop'* *'sts'*
'softtabstop' 'sts'	number	(default 0)
			local to buffer
			{not in Vi}
	Number of spaces that a <Tab> counts for while performing editing
	operations, like inserting a <Tab> or using <BS>.  It "feels" like
	<Tab>s are being inserted, while in fact a mix of spaces and <Tab>s is
	used.  This is useful to keep the 'ts' setting at its standard value
	of 8, while being able to edit like it is set to 'sts'.  However,
	commands like "x" still work on the actual characters.
	When 'sts' is zero, this feature is off.
	When 'sts' is negative, the value of 'shiftwidth' is used.
	'softtabstop' is set to 0 when the 'paste' option is set and restored
	when 'paste' is reset.
	See also |ins-expandtab|.  When 'expandtab' is not set, the number of
	spaces is minimized by using <Tab>s.
	The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is
	set.
	NOTE: This option is set to 0 when 'compatible' is set.

						*'spell'* *'nospell'*
'spell'			boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	When on spell checking will be done.  See |spell|.
	The languages are specified with 'spelllang'.

						*'spellcapcheck'* *'spc'*
'spellcapcheck' 'spc'	string	(default "[.?!]\_[\])'" \t]\+")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	Pattern to locate the end of a sentence.  The following word will be
	checked to start with a capital letter.  If not then it is highlighted
	with SpellCap |hl-SpellCap| (unless the word is also badly spelled).
	When this check is not wanted make this option empty.
	Only used when 'spell' is set.
	Be careful with special characters, see |option-backslash| about
	including spaces and backslashes.
	To set this option automatically depending on the language, see
	|set-spc-auto|.

						*'spellfile'* *'spf'*
'spellfile' 'spf'	string	(default empty)
			local to buffer
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	Name of the word list file where words are added for the |zg| and |zw|
	commands.  It must end in ".{encoding}.add".  You need to include the
	path, otherwise the file is placed in the current directory.
								*E765*
	It may also be a comma separated list of names.  A count before the
	|zg| and |zw| commands can be used to access each.  This allows using
	a personal word list file and a project word list file.
	When a word is added while this option is empty Vim will set it for
	you: Using the first directory in 'runtimepath' that is writable.  If
	there is no "spell" directory yet it will be created.  For the file
	name the first language name that appears in 'spelllang' is used,
	ignoring the region.
	The resulting ".spl" file will be used for spell checking, it does not
	have to appear in 'spelllang'.
	Normally one file is used for all regions, but you can add the region
	name if you want to.  However, it will then only be used when
	'spellfile' is set to it, for entries in 'spelllang' only files
	without region name will be found.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'spelllang'* *'spl'*
'spelllang' 'spl'	string	(default "en")
			local to buffer
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	A comma separated list of word list names.  When the 'spell' option is
	on spellchecking will be done for these languages.  Example: >
		set spelllang=en_us,nl,medical
<	This means US English, Dutch and medical words are recognized.  Words
	that are not recognized will be highlighted.
	The word list name must not include a comma or dot.  Using a dash is
	recommended to separate the two letter language name from a
	specification.  Thus "en-rare" is used for rare English words.
	A region name must come last and have the form "_xx", where "xx" is
	the two-letter, lower case region name.  You can use more than one
	region by listing them: "en_us,en_ca" supports both US and Canadian
	English, but not words specific for Australia, New Zealand or Great
	Britain. (Note: currently en_au and en_nz dictionaries are older than
	en_ca, en_gb and en_us).
	If the name "cjk" is included East Asian characters are excluded from
	spell checking.  This is useful when editing text that also has Asian
	words.
							*E757*
	As a special case the name of a .spl file can be given as-is.  The
	first "_xx" in the name is removed and used as the region name
	(_xx is an underscore, two letters and followed by a non-letter).
	This is mainly for testing purposes.  You must make sure the correct
	encoding is used, Vim doesn't check it.
	When 'encoding' is set the word lists are reloaded.  Thus it's a good
	idea to set 'spelllang' after setting 'encoding' to avoid loading the
	files twice.
	How the related spell files are found is explained here: |spell-load|.

	If the |spellfile.vim| plugin is active and you use a language name
	for which Vim cannot find the .spl file in 'runtimepath' the plugin
	will ask you if you want to download the file.

	After this option has been set successfully, Vim will source the files
	"spell/LANG.vim" in 'runtimepath'.  "LANG" is the value of 'spelllang'
	up to the first comma, dot or underscore.
	Also see |set-spc-auto|.


						*'spellsuggest'* *'sps'*
'spellsuggest' 'sps'	string	(default "best")
			global
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	Methods used for spelling suggestions.  Both for the |z=| command and
	the |spellsuggest()| function.  This is a comma-separated list of
	items:

	best		Internal method that works best for English.  Finds
			changes like "fast" and uses a bit of sound-a-like
			scoring to improve the ordering.

	double		Internal method that uses two methods and mixes the
			results.  The first method is "fast", the other method
			computes how much the suggestion sounds like the bad
			word.  That only works when the language specifies
			sound folding.  Can be slow and doesn't always give
			better results.

	fast		Internal method that only checks for simple changes:
			character inserts/deletes/swaps.  Works well for
			simple typing mistakes.

	{number}	The maximum number of suggestions listed for |z=|.
			Not used for |spellsuggest()|.  The number of
			suggestions is never more than the value of 'lines'
			minus two.

	file:{filename} Read file {filename}, which must have two columns,
			separated by a slash.  The first column contains the
			bad word, the second column the suggested good word.
			Example:
				theribal/terrible ~
			Use this for common mistakes that do not appear at the
			top of the suggestion list with the internal methods.
			Lines without a slash are ignored, use this for
			comments.
			The word in the second column must be correct,
			otherwise it will not be used.  Add the word to an
			".add" file if it is currently flagged as a spelling
			mistake.
			The file is used for all languages.

	expr:{expr}	Evaluate expression {expr}.  Use a function to avoid
			trouble with spaces.  |v:val| holds the badly spelled
			word.  The expression must evaluate to a List of
			Lists, each with a suggestion and a score.
			Example:
				[['the', 33], ['that', 44]] ~
			Set 'verbose' and use |z=| to see the scores that the
			internal methods use.  A lower score is better.
			This may invoke |spellsuggest()| if you temporarily
			set 'spellsuggest' to exclude the "expr:" part.
			Errors are silently ignored, unless you set the
			'verbose' option to a non-zero value.

	Only one of "best", "double" or "fast" may be used.  The others may
	appear several times in any order.  Example: >
		:set sps=file:~/.vim/sugg,best,expr:MySuggest()
<
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.


			*'splitbelow'* *'sb'* *'nosplitbelow'* *'nosb'*
'splitbelow' 'sb'	boolean	(default off)
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	When on, splitting a window will put the new window below the current
	one. |:split|

			*'splitright'* *'spr'* *'nosplitright'* *'nospr'*
'splitright' 'spr'	boolean	(default off)
			global
			{not in Vi}
			{not available when compiled without the |+vertsplit|
			feature}
	When on, splitting a window will put the new window right of the
	current one. |:vsplit|

			   *'startofline'* *'sol'* *'nostartofline'* *'nosol'*
'startofline' 'sol'	boolean	(default on)
			global
			{not in Vi}
	When "on" the commands listed below move the cursor to the first
	non-blank of the line.  When off the cursor is kept in the same column
	(if possible).  This applies to the commands: CTRL-D, CTRL-U, CTRL-B,
	CTRL-F, "G", "H", "M", "L", gg, and to the commands "d", "<<" and ">>"
	with a linewise operator, with "%" with a count and to buffer changing
	commands (CTRL-^, :bnext, :bNext, etc.).  Also for an Ex command that
	only has a line number, e.g., ":25" or ":+".
	In case of buffer changing commands the cursor is placed at the column
	where it was the last time the buffer was edited.
	NOTE: This option is set when 'compatible' is set.

			   *'statusline'* *'stl'* *E540* *E542*
'statusline' 'stl'	string	(default empty)
			global or local to window |global-local|
			{not in Vi}
			{not available when compiled without the |+statusline|
			feature}
	When nonempty, this option determines the content of the status line.
	Also see |status-line|.

	The option consists of printf style '%' items interspersed with
	normal text.  Each status line item is of the form:
	  %-0{minwid}.{maxwid}{item}
	All fields except the {item} are optional.  A single percent sign can
	be given as "%%".  Up to 80 items can be specified.  *E541*

	When the option starts with "%!" then it is used as an expression,
	evaluated and the result is used as the option value.  Example: >
		:set statusline=%!MyStatusLine()
<	The result can contain %{} items that will be evaluated too.
	Note that the "%!" expression is evaluated in the context of the
	current window and buffer, while %{} items are evaluated in the
	context of the window that the statusline belongs to.

	When there is error while evaluating the option then it will be made
	empty to avoid further errors.  Otherwise screen updating would loop.

	Note that the only effect of 'ruler' when this option is set (and
	'laststatus' is 2) is controlling the output of |CTRL-G|.

	field	    meaning ~
	-	    Left justify the item.  The default is right justified
		    when minwid is larger than the length of the item.
	0	    Leading zeroes in numeric items.  Overridden by '-'.
	minwid	    Minimum width of the item, padding as set by '-' & '0'.
		    Value must be 50 or less.
	maxwid	    Maximum width of the item.  Truncation occurs with a '<'
		    on the left for text items.  Numeric items will be
		    shifted down to maxwid-2 digits followed by '>'number
		    where number is the amount of missing digits, much like
		    an exponential notation.
	item	    A one letter code as described below.

	Following is a description of the possible statusline items.  The
	second character in "item" is the type:
		N for number
		S for string
		F for flags as described below
		- not applicable

	item  meaning ~
	f S   Path to the file in the buffer, as typed or relative to current
	      directory.
	F S   Full path to the file in the buffer.
	t S   File name (tail) of file in the buffer.
	m F   Modified flag, text is "[+]"; "[-]" if 'modifiable' is off.
	M F   Modified flag, text is ",+" or ",-".
	r F   Readonly flag, text is "[RO]".
	R F   Readonly flag, text is ",RO".
	h F   Help buffer flag, text is "[help]".
	H F   Help buffer flag, text is ",HLP".
	w F   Preview window flag, text is "[Preview]".
	W F   Preview window flag, text is ",PRV".
	y F   Type of file in the buffer, e.g., "[vim]".  See 'filetype'.
	Y F   Type of file in the buffer, e.g., ",VIM".  See 'filetype'.
	q S   "[Quickfix List]", "[Location List]" or empty.
	k S   Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are
	      being used: "<keymap>"
	n N   Buffer number.
	b N   Value of character under cursor.
	B N   As above, in hexadecimal.
	o N   Byte number in file of byte under cursor, first byte is 1.
	      Mnemonic: Offset from start of file (with one added)
	      {not available when compiled without |+byte_offset| feature}
	O N   As above, in hexadecimal.
	N N   Printer page number.  (Only works in the 'printheader' option.)
	l N   Line number.
	L N   Number of lines in buffer.
	c N   Column number.
	v N   Virtual column number.
	V N   Virtual column number as -{num}.  Not displayed if equal to 'c'.
	p N   Percentage through file in lines as in |CTRL-G|.
	P S   Percentage through file of displayed window.  This is like the
	      percentage described for 'ruler'.  Always 3 in length, unless
	      translated.
	a S   Argument list status as in default title.  ({current} of {max})
	      Empty if the argument file count is zero or one.
	{ NF  Evaluate expression between '%{' and '}' and substitute result.
	      Note that there is no '%' before the closing '}'.  The
	      expression cannot contain a '}' character, call a function to
	      work around that.
	( -   Start of item group.  Can be used for setting the width and
	      alignment of a section.  Must be followed by %) somewhere.
	) -   End of item group.  No width fields allowed.
	T N   For 'tabline': start of tab page N label.  Use %T after the last
	      label.  This information is used for mouse clicks.
	X N   For 'tabline': start of close tab N label.  Use %X after the
	      label, e.g.: %3Xclose%X.  Use %999X for a "close current tab"
	      mark.  This information is used for mouse clicks.
	< -   Where to truncate line if too long.  Default is at the start.
	      No width fields allowed.
	= -   Separation point between left and right aligned items.
	      No width fields allowed.
	# -   Set highlight group.  The name must follow and then a # again.
	      Thus use %#HLname# for highlight group HLname.  The same
	      highlighting is used, also for the statusline of non-current
	      windows.
	* -   Set highlight group to User{N}, where {N} is taken from the
	      minwid field, e.g. %1*.  Restore normal highlight with %* or %0*.
	      The difference between User{N} and StatusLine  will be applied
	      to StatusLineNC for the statusline of non-current windows.
	      The number N must be between 1 and 9.  See |hl-User1..9|

	When displaying a flag, Vim removes the leading comma, if any, when
	that flag comes right after plaintext.  This will make a nice display
	when flags are used like in the examples below.

	When all items in a group becomes an empty string (i.e. flags that are
	not set) and a minwid is not set for the group, the whole group will
	become empty.  This will make a group like the following disappear
	completely from the statusline when none of the flags are set. >
		:set statusline=...%(\ [%M%R%H]%)...
<							*g:actual_curbuf*
	Beware that an expression is evaluated each and every time the status
	line is displayed.  The current buffer and current window will be set
	temporarily to that of the window (and buffer) whose statusline is
	currently being drawn.  The expression will evaluate in this context.
	The variable "actual_curbuf" is set to the 'bufnr()' number of the
	real current buffer.

	The 'statusline' option will be evaluated in the |sandbox| if set from
	a modeline, see |sandbox-option|.

	It is not allowed to change text or jump to another window while
	evaluating 'statusline' |textlock|.

	If the statusline is not updated when you want it (e.g., after setting
	a variable that's used in an expression), you can force an update by
	setting an option without changing its value.  Example: >
		:let &ro = &ro

<	A result of all digits is regarded a number for display purposes.
	Otherwise the result is taken as flag text and applied to the rules
	described above.

	Watch out for errors in expressions.  They may render Vim unusable!
	If you are stuck, hold down ':' or 'Q' to get a prompt, then quit and
	edit your .vimrc or whatever with "vim --clean" to get it right.

	Examples:
	Emulate standard status line with 'ruler' set >
	  :set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
<	Similar, but add ASCII value of char under the cursor (like "ga") >
	  :set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
<	Display byte count and byte value, modified flag in red. >
	  :set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'
	  :hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red
<	Display a ,GZ flag if a compressed file is loaded >
	  :set statusline=...%r%{VarExists('b:gzflag','\ [GZ]')}%h...
<	In the |:autocmd|'s: >
	  :let b:gzflag = 1
<	And: >
	  :unlet b:gzflag
<	And define this function: >
	  :function VarExists(var, val)
	  :    if exists(a:var) | return a:val | else | return '' | endif
	  :endfunction
<
						*'suffixes'* *'su'*
'suffixes' 'su'		string	(default ".bak,~,.o,.h,.info,.swp,.obj")
			global
			{not in Vi}
	Files with these suffixes get a lower priority when multiple files
	match a wildcard.  See |suffixes|.  Commas can be used to separate the
	suffixes.  Spaces after the comma are ignored.  A dot is also seen as
	the start of a suffix.  To avoid a dot or comma being recognized as a
	separator, precede it with a backslash (see |option-backslash| about
	including spaces and backslashes).
	See 'wildignore' for completely ignoring files.
	The use of |:set+=| and |:set-=| is preferred when adding or removing
	suffixes from the list.  This avoids problems when a future version
	uses another default.

						*'suffixesadd'* *'sua'*
'suffixesadd' 'sua'	string	(default "")
			local to buffer
			{not in Vi}
			{not available when compiled without the
			|+file_in_path| feature}
	Comma separated list of suffixes, which are used when searching for a
	file for the "gf", "[I", etc. commands.  Example: >
		:set suffixesadd=.java
<
				*'swapfile'* *'swf'* *'noswapfile'* *'noswf'*
'swapfile' 'swf'	boolean (default on)
			local to buffer
			{not in Vi}
	Use a swapfile for the buffer.  This option can be reset when a
	swapfile is not wanted for a specific buffer.  For example, with
	confidential information that even root must not be able to access.
	Careful: All text will be in memory:
		- Don't use this for big files.
		- Recovery will be impossible!
	A swapfile will only be present when |'updatecount'| is non-zero and
	'swapfile' is set.
	When 'swapfile' is reset, the swap file for the current buffer is
	immediately deleted.  When 'swapfile' is set, and 'updatecount' is
	non-zero, a swap file is immediately created.
	Also see |swap-file| and |'swapsync'|.
	If you want to open a new buffer without creating a swap file for it,
	use the |:noswapfile| modifier.
	See 'directory' for where the swap file is created.

	This option is used together with 'bufhidden' and 'buftype' to
	specify special kinds of buffers.   See |special-buffers|.

						*'swapsync'* *'sws'*
'swapsync' 'sws'	string	(default "fsync")
			global
			{not in Vi}
	When this option is not empty a swap file is synced to disk after
	writing to it.  This takes some time, especially on busy unix systems.
	When this option is empty parts of the swap file may be in memory and
	not written to disk.  When the system crashes you may lose more work.
	On Unix the system does a sync now and then without Vim asking for it,
	so the disadvantage of setting this option off is small.  On some
	systems the swap file will not be written at all.  For a unix system
	setting it to "sync" will use the sync() call instead of the default
	fsync(), which may work better on some systems.
	The 'fsync' option is used for the actual file.

						*'switchbuf'* *'swb'*
'switchbuf' 'swb'	string	(default "")
			global
			{not in Vi}
	This option controls the behavior when switching between buffers.
	Possible values (comma separated list):
	   useopen	If included, jump to the first open window that
			contains the specified buffer (if there is one).
			Otherwise: Do not examine other windows.
			This setting is checked with |quickfix| commands, when
			jumping to errors (":cc", ":cn", "cp", etc.).  It is
			also used in all buffer related split commands, for
			example ":sbuffer", ":sbnext", or ":sbrewind".
	   usetab	Like "useopen", but also consider windows in other tab
			pages.
	   split	If included, split the current window before loading
			a buffer for a |quickfix| command that display errors.
			Otherwise: do not split, use current window.
	   vsplit	Just like "split" but split vertically.
	   newtab	Like "split", but open a new tab page.  Overrules
			"split" when both are present.

						*'synmaxcol'* *'smc'*
'synmaxcol' 'smc'	number	(default 3000)
			local to buffer
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	Maximum column in which to search for syntax items.  In long lines the
	text after this column is not highlighted and following lines may not
	be highlighted correctly, because the syntax state is cleared.
	This helps to avoid very slow redrawing for an XML file that is one
	long line.
	Set to zero to remove the limit.

						*'syntax'* *'syn'*
'syntax' 'syn'		string	(default empty)
			local to buffer
			{not in Vi}
			{not available when compiled without the |+syntax|
			feature}
	When this option is set, the syntax with this name is loaded, unless
	syntax highlighting has been switched off with ":syntax off".
	Otherwise this option does not always reflect the current syntax (the
	b:current_syntax variable does).
	This option is most useful in a modeline, for a file which syntax is
	not automatically recognized.  Example, in an IDL file:
		/* vim: set syntax=idl : */ ~
	When a dot appears in the value then this separates two filetype
	names.  Example:
		/* vim: set syntax=c.doxygen : */ ~
	This will use the "c" syntax first, then the "doxygen" syntax.
	Note that the second one must be prepared to be loaded as an addition,
	otherwise it will be skipped.  More than one dot may appear.
	To switch off syntax highlighting for the current file, use: >
		:set syntax=OFF
<	To switch syntax highlighting on according to the current value of the
	'filetype' option: >
		:set syntax=ON
<	What actually happens when setting the 'syntax' option is that the
	Syntax autocommand event is triggered with the value as argument.
	This option is not copied to another buffer, independent of the 's' or
	'S' flag in 'cpoptions'.
	Only normal file name characters can be used, "/\*?[|<>" are illegal.

						*'tabline'* *'tal'*
'tabline' 'tal'		string	(default empty)
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	When nonempty, this option determines the content of the tab pages
	line at the top of the Vim window.  When empty Vim will use a default
	tab pages line.  See |setting-tabline| for more info.

	The tab pages line only appears as specified with the 'showtabline'
	option and only when there is no GUI tab line.  When 'e' is in
	'guioptions' and the GUI supports a tab line 'guitablabel' is used
	instead.  Note that the two tab pages lines are very different.

	The value is evaluated like with 'statusline'.  You can use
	|tabpagenr()|, |tabpagewinnr()| and |tabpagebuflist()| to figure out
	the text to be displayed.  Use "%1T" for the first label, "%2T" for
	the second one, etc.  Use "%X" items for closing labels.

	Keep in mind that only one of the tab pages is the current one, others
	are invisible and you can't jump to their windows.


						*'tabpagemax'* *'tpm'*
'tabpagemax' 'tpm'	number	(default 10)
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	Maximum number of tab pages to be opened by the |-p| command line
	argument or the ":tab all" command. |tabpage|


						*'tabstop'* *'ts'*
'tabstop' 'ts'		number	(default 8)
			local to buffer
	Number of spaces that a <Tab> in the file counts for.  Also see
	|:retab| command, and 'softtabstop' option.

	Note: Setting 'tabstop' to any other value than 8 can make your file
	appear wrong in many places (e.g., when printing it).

	There are four main ways to use tabs in Vim:
	1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
	   (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
	   will use a mix of tabs and spaces, but typing <Tab> and <BS> will
	   behave like a tab appears every 4 (or 3) characters.
	2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
	   'expandtab'.  This way you will always insert spaces.  The
	   formatting will never be messed up when 'tabstop' is changed.
	3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
	   |modeline| to set these values when editing the file again.  Only
	   works when using Vim to edit the file.
	4. Always set 'tabstop' and 'shiftwidth' to the same value, and
	   'noexpandtab'.  This should then work (for initial indents only)
	   for any tabstop setting that people use.  It might be nice to have
	   tabs after the first non-blank inserted as spaces if you do this
	   though.  Otherwise aligned comments will be wrong when 'tabstop' is
	   changed.

			*'tagbsearch'* *'tbs'* *'notagbsearch'* *'notbs'*
'tagbsearch' 'tbs'	boolean	(default on)
			global
			{not in Vi}
	When searching for a tag (e.g., for the |:ta| command), Vim can either
	use a binary search or a linear search in a tags file.  Binary
	searching makes searching for a tag a LOT faster, but a linear search
	will find more tags if the tags file wasn't properly sorted.
	Vim normally assumes that your tags files are sorted, or indicate that
	they are not sorted.  Only when this is not the case does the
	'tagbsearch' option need to be switched off.

	When 'tagbsearch' is on, binary searching is first used in the tags
	files.  In certain situations, Vim will do a linear search instead for
	certain files, or retry all files with a linear search.  When
	'tagbsearch' is off, only a linear search is done.

	Linear searching is done anyway, for one file, when Vim finds a line
	at the start of the file indicating that it's not sorted: >
   !_TAG_FILE_SORTED	0	/some comment/
<	[The whitespace before and after the '0' must be a single <Tab>]

	When a binary search was done and no match was found in any of the
	files listed in 'tags', and case is ignored or a pattern is used
	instead of a normal tag name, a retry is done with a linear search.
	Tags in unsorted tags files, and matches with different case will only
	be found in the retry.

	If a tag file indicates that it is case-fold sorted, the second,
	linear search can be avoided when case is ignored.  Use a value of '2'
	in the "!_TAG_FILE_SORTED" line for this.  A tag file can be case-fold
	sorted with the -f switch to "sort" in most unices, as in the command:
	"sort -f -o tags tags".  For "Exuberant ctags" version 5.x or higher
	(at least 5.5) the --sort=foldcase switch can be used for this as
	well.  Note that case must be folded to uppercase for this to work.

	By default, tag searches are case-sensitive.  Case is ignored when
	'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
	"ignore".
	Also when 'tagcase' is "followscs" and 'smartcase' is set, or
	'tagcase' is "smart", and the pattern contains only lowercase
	characters.

	When 'tagbsearch' is off, tags searching is slower when a full match
	exists, but faster when no full match exists.  Tags in unsorted tags
	files may only be found with 'tagbsearch' off.
	When the tags file is not sorted, or sorted in a wrong way (not on
	ASCII byte value), 'tagbsearch' should be off, or the line given above
	must be included in the tags file.
	This option doesn't affect commands that find all matching tags (e.g.,
	command-line completion and ":help").
	{Vi: always uses binary search in some versions}

							*'tagcase'* *'tc'*
'tagcase' 'tc'		string	(default "followic")
			global or local to buffer |global-local|
			{not in Vi}
	This option specifies how case is handled when searching the tags
	file:
	   followic	Follow the 'ignorecase' option
	   followscs    Follow the 'smartcase' and 'ignorecase' options
	   ignore	Ignore case
	   match	Match case
	   smart	Ignore case unless an upper case letter is used
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'taglength'* *'tl'*
'taglength' 'tl'	number	(default 0)
			global
	If non-zero, tags are significant up to this number of characters.

			*'tagrelative'* *'tr'* *'notagrelative'* *'notr'*
'tagrelative' 'tr'	boolean	(Vim default: on, Vi default: off)
			global
			{not in Vi}
	If on and using a tags file in another directory, file names in that
	tags file are relative to the directory where the tags file is.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'tags'* *'tag'* *E433*
'tags' 'tag'		string	(default "./tags,tags", when compiled with
				|+emacs_tags|: "./tags,./TAGS,tags,TAGS")
			global or local to buffer |global-local|
	Filenames for the tag command, separated by spaces or commas.  To
	include a space or comma in a file name, precede it with a backslash
	(see |option-backslash| about including spaces and backslashes).
	When a file name starts with "./", the '.' is replaced with the path
	of the current file.  But only when the 'd' flag is not included in
	'cpoptions'.  Environment variables are expanded |:set_env|.  Also see
	|tags-option|.
	"*", "**" and other wildcards can be used to search for tags files in
	a directory tree.  See |file-searching|.  E.g., "/lib/**/tags" will
	find all files named "tags" below "/lib".  The filename itself cannot
	contain wildcards, it is used as-is.  E.g., "/lib/**/tags?" will find
	files called "tags?".  {not available when compiled without the
	|+path_extra| feature}
	The |tagfiles()| function can be used to get a list of the file names
	actually used.
	If Vim was compiled with the |+emacs_tags| feature, Emacs-style tag
	files are also supported.  They are automatically recognized.  The
	default value becomes "./tags,./TAGS,tags,TAGS", unless case
	differences are ignored (MS-Windows).  |emacs-tags|
	The use of |:set+=| and |:set-=| is preferred when adding or removing
	file names from the list.  This avoids problems when a future version
	uses another default.
	{Vi: default is "tags /usr/lib/tags"}

				*'tagstack'* *'tgst'* *'notagstack'* *'notgst'*
'tagstack' 'tgst'	boolean	(default on)
			global
			{not in all versions of Vi}
	When on, the |tagstack| is used normally.  When off, a ":tag" or
	":tselect" command with an argument will not push the tag onto the
	tagstack.  A following ":tag" without an argument, a ":pop" command or
	any other command that uses the tagstack will use the unmodified
	tagstack, but does change the pointer to the active entry.
	Resetting this option is useful when using a ":tag" command in a
	mapping which should not change the tagstack.

						*'tcldll'*
'tcldll'		string	(default depends on the build)
			global
			{not in Vi}
			{only available when compiled with the |+tcl/dyn|
			feature}
	Specifies the name of the Tcl shared library. The default is
	DYNAMIC_TCL_DLL, which was specified at compile time.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'term'* *E529* *E530* *E531*
'term'			string	(default is $TERM, if that fails:
				      in the GUI: "builtin_gui"
					on Amiga: "amiga"
					 on BeOS: "beos-ansi"
					  on Mac: "mac-ansi"
					 on MiNT: "vt52"
				       on MS-DOS: "pcterm"
					 on OS/2: "os2ansi"
					 on Unix: "ansi"
					  on VMS: "ansi"
				       on Win 32: "win32")
			global
	Name of the terminal.  Used for choosing the terminal control
	characters.  Environment variables are expanded |:set_env|.
	For example: >
		:set term=$TERM
<	See |termcap|.

						*'termbidi'* *'tbidi'*
						*'notermbidi'* *'notbidi'*
'termbidi' 'tbidi'	boolean (default off, on for "mlterm")
			global
			{not in Vi}
			{only available when compiled with the |+arabic|
			feature}
	The terminal is in charge of Bi-directionality of text (as specified
	by Unicode).  The terminal is also expected to do the required shaping
	that some languages (such as Arabic) require.
	Setting this option implies that 'rightleft' will not be set when
	'arabic' is set and the value of 'arabicshape' will be ignored.
	Note that setting 'termbidi' has the immediate effect that
	'arabicshape' is ignored, but 'rightleft' isn't changed automatically.
	This option is reset when the GUI is started.
	For further details see |arabic.txt|.

					*'termencoding'* *'tenc'*
'termencoding' 'tenc'	string	(default ""; with GTK+ GUI: "utf-8"; with
						    Macintosh GUI: "macroman")
			global
			{only available when compiled with the |+multi_byte|
			feature}
			{not in Vi}
	Encoding used for the terminal.  This specifies what character
	encoding the keyboard produces and the display will understand.  For
	the GUI it only applies to the keyboard ('encoding' is used for the
	display).  Except for the Mac when 'macatsui' is off, then
	'termencoding' should be "macroman".
								*E617*
	Note: This does not apply to the GTK+ GUI.  After the GUI has been
	successfully initialized, 'termencoding' is forcibly set to "utf-8".
	Any attempts to set a different value will be rejected, and an error
	message is shown.
	For the Win32 GUI and console versions 'termencoding' is not used,
	because the Win32 system always passes Unicode characters.
	When empty, the same encoding is used as for the 'encoding' option.
	This is the normal value.
	Not all combinations for 'termencoding' and 'encoding' are valid.  See
	|encoding-table|.
	The value for this option must be supported by internal conversions or
	iconv().  When this is not possible no conversion will be done and you
	will probably experience problems with non-ASCII characters.
	Example: You are working with the locale set to euc-jp (Japanese) and
	want to edit a UTF-8 file: >
		:let &termencoding = &encoding
		:set encoding=utf-8
<	You need to do this when your system has no locale support for UTF-8.

					*'termguicolors'* *'tgc'* *E954*
'termguicolors' 'tgc'	boolean (default off)
			global
			{not in Vi}
			{not available when compiled without the
			|+termguicolors| feature}
	When on, uses |highlight-guifg| and |highlight-guibg| attributes in
	the terminal (thus using 24-bit color).

	Requires a ISO-8613-3 compatible terminal.  If setting this option
	does not work (produces a colorless UI) reading |xterm-true-color|
	might help.

	For Win32 console, Windows 10 version 1703 (Creators Update) or later
	is required. Use this check to find out: >
		if has('vcon')
<	This requires Vim to be built with the |+vtp| feature.

	Note that the "cterm" attributes are still used, not the "gui" ones.
	NOTE: This option is reset when 'compatible' is set.

						*'termwinscroll'* *'twsl'*
'termwinscroll' 'twsl'	number	(default 10000)
			local to buffer
			{not in Vi}
			{not available when compiled without the
			|+terminal| feature}
	Number of scrollback lines to keep.  When going over this limit the
	first 10% of the scrollback lines are deleted.  This is just to reduce
	the memory usage.  See |Terminal-Normal|.

						*'termwinkey'* *'twk'*
'termwinkey' 'twk'	string	(default "")
			local to window
			{not in Vi}
	The key that starts a CTRL-W command in a terminal window.  Other keys
	are sent to the job running in the window.
	The <> notation can be used, e.g.: >
		:set termwinkey=<C-L>
<	The string must be one key stroke but can be multiple bytes.
	When not set CTRL-W is used, so that CTRL-W : gets you to the command
	line.  If 'termwinkey' is set to CTRL-L then CTRL-L : gets you to the
	command line.

						*'termwinsize'* *'tws'*
'termwinsize' 'tws'	string	(default "")
			local to window
			{not in Vi}
	Size of the |terminal| window.  Format: {rows}x{columns} or
	{rows}*{columns}.
	- When empty the terminal gets the size from the window.
	- When set with a "x" (e.g., "24x80") the terminal size is not
	  adjusted to the window size.  If the window is smaller only the
	  top-left part is displayed.
	- When set with a "*" (e.g., "10*50") the terminal size follows the
	  window size, but will not be smaller than the specified rows and/or
	  columns.
	- When rows is zero then use the height of the window.
	- When columns is zero then use the width of the window.
	- Using "0x0" or "0*0" is the same as empty.

	Examples:
	  "30x0" uses 30 rows and the current window width.
	  "20*0" uses at least 20 rows and the current window width.
	  "0*40" uses the current window height and at least 40 columns.
	Note that the command running in the terminal window may still change
	the size of the terminal.  In that case the Vim window will be
	adjusted to that size, if possible.

						*'terse'* *'noterse'*
'terse'			boolean	(default off)
			global
	When set: Add 's' flag to 'shortmess' option (this makes the message
	for a search that hits the start or end of the file not being
	displayed).  When reset: Remove 's' flag from 'shortmess' option.  {Vi
	shortens a lot of messages}

				   *'textauto'* *'ta'* *'notextauto'* *'nota'*
'textauto' 'ta'		boolean	(Vim default: on, Vi default: off)
			global
			{not in Vi}
	This option is obsolete.  Use 'fileformats'.
	For backwards compatibility, when 'textauto' is set, 'fileformats' is
	set to the default value for the current system.  When 'textauto' is
	reset, 'fileformats' is made empty.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

				   *'textmode'* *'tx'* *'notextmode'* *'notx'*
'textmode' 'tx'		boolean	(MS-DOS, Win32 and OS/2: default on,
				 others: default off)
			local to buffer
			{not in Vi}
	This option is obsolete.  Use 'fileformat'.
	For backwards compatibility, when 'textmode' is set, 'fileformat' is
	set to "dos".  When 'textmode' is reset, 'fileformat' is set to
	"unix".

						*'textwidth'* *'tw'*
'textwidth' 'tw'	number	(default 0)
			local to buffer
			{not in Vi}
	Maximum width of text that is being inserted.  A longer line will be
	broken after white space to get this width.  A zero value disables
	this.
	'textwidth' is set to 0 when the 'paste' option is set and restored
	when 'paste' is reset.
	When 'textwidth' is zero, 'wrapmargin' may be used.  See also
	'formatoptions' and |ins-textwidth|.
	When 'formatexpr' is set it will be used to break the line.
	NOTE: This option is set to 0 when 'compatible' is set.

						*'thesaurus'* *'tsr'*
'thesaurus' 'tsr'	string	(default "")
			global or local to buffer |global-local|
			{not in Vi}
	List of file names, separated by commas, that are used to lookup words
	for thesaurus completion commands |i_CTRL-X_CTRL-T|.  Each line in
	the file should contain words with similar meaning, separated by
	non-keyword characters (white space is preferred).  Maximum line
	length is 510 bytes.
	To obtain a file to be used here, check out this ftp site:
	[Sorry this link doesn't work anymore, do you know the right one?]
	ftp://ftp.ox.ac.uk/pub/wordlists/  First get the README file.
	To include a comma in a file name precede it with a backslash.  Spaces
	after a comma are ignored, otherwise spaces are included in the file
	name.  See |option-backslash| about using backslashes.
	The use of |:set+=| and |:set-=| is preferred when adding or removing
	directories from the list.  This avoids problems when a future version
	uses another default.
	Backticks cannot be used in this option for security reasons.

			     *'tildeop'* *'top'* *'notildeop'* *'notop'*
'tildeop' 'top'		boolean	(default off)
			global
			{not in Vi}
	When on: The tilde command "~" behaves like an operator.
	NOTE: This option is reset when 'compatible' is set.

				*'timeout'* *'to'* *'notimeout'* *'noto'*
'timeout' 'to'		boolean (default on)
			global
						*'ttimeout'* *'nottimeout'*
'ttimeout'		boolean (default off, set in |defaults.vim|)
			global
			{not in Vi}
	These two options together determine the behavior when part of a
	mapped key sequence or keyboard code has been received:

	'timeout'    'ttimeout'		action	~
	   off		off		do not time out
	   on		on or off	time out on :mappings and key codes
	   off		on		time out on key codes

	If both options are off, Vim will wait until either the complete
	mapping or key sequence has been received, or it is clear that there
	is no mapping or key sequence for the received characters.  For
	example: if you have mapped "vl" and Vim has received 'v', the next
	character is needed to see if the 'v' is followed by an 'l'.
	When one of the options is on, Vim will wait for about 1 second for
	the next character to arrive.  After that the already received
	characters are interpreted as single characters.  The waiting time can
	be changed with the 'timeoutlen' option.
	On slow terminals or very busy systems timing out may cause
	malfunctioning cursor keys.  If both options are off, Vim waits
	forever after an entered <Esc> if there are key codes that start
	with <Esc>.  You will have to type <Esc> twice.  If you do not have
	problems with key codes, but would like to have :mapped key
	sequences not timing out in 1 second, set the 'ttimeout' option and
	reset the 'timeout' option.

	NOTE: 'ttimeout' is reset when 'compatible' is set.

						*'timeoutlen'* *'tm'*
'timeoutlen' 'tm'	number	(default 1000)
			global
			{not in all versions of Vi}
						*'ttimeoutlen'* *'ttm'*
'ttimeoutlen' 'ttm'	number	(default -1, set to 100 in |defaults.vim|)
			global
			{not in Vi}
	The time in milliseconds that is waited for a key code or mapped key
	sequence to complete.  Also used for CTRL-\ CTRL-N and CTRL-\ CTRL-G
	when part of a command has been typed.
	Normally only 'timeoutlen' is used and 'ttimeoutlen' is -1.  When a
	different timeout value for key codes is desired set 'ttimeoutlen' to
	a non-negative number.

		ttimeoutlen	mapping delay	   key code delay	~
		   < 0		'timeoutlen'	   'timeoutlen'
		  >= 0		'timeoutlen'	   'ttimeoutlen'

	The timeout only happens when the 'timeout' and 'ttimeout' options
	tell so.  A useful setting would be >
		:set timeout timeoutlen=3000 ttimeoutlen=100
<	(time out on mapping after three seconds, time out on key codes after
	a tenth of a second).

						*'title'* *'notitle'*
'title'			boolean	(default off, on when title can be restored)
			global
			{not in Vi}
			{not available when compiled without the |+title|
			feature}
	When on, the title of the window will be set to the value of
	'titlestring' (if it is not empty), or to:
		filename [+=-] (path) - VIM
	Where:
		filename	the name of the file being edited
		-		indicates the file cannot be modified, 'ma' off
		+		indicates the file was modified
		=		indicates the file is read-only
		=+		indicates the file is read-only and modified
		(path)		is the path of the file being edited
		- VIM		the server name |v:servername| or "VIM"
	Only works if the terminal supports setting window titles
	(currently Amiga console, Win32 console, all GUI versions and
	terminals with a non- empty 't_ts' option - these are Unix xterm and
	iris-ansi by default, where 't_ts' is taken from the builtin termcap).
								*X11*
	When Vim was compiled with HAVE_X11 defined, the original title will
	be restored if possible.  The output of ":version" will include "+X11"
	when HAVE_X11 was defined, otherwise it will be "-X11".  This also
	works for the icon name |'icon'|.
	But: When Vim was started with the |-X| argument, restoring the title
	will not work (except in the GUI).
	If the title cannot be restored, it is set to the value of 'titleold'.
	You might want to restore the title outside of Vim then.
	When using an xterm from a remote machine you can use this command:
	    rsh machine_name xterm -display $DISPLAY &
	then the WINDOWID environment variable should be inherited and the
	title of the window should change back to what it should be after
	exiting Vim.

								*'titlelen'*
'titlelen'		number	(default 85)
			global
			{not in Vi}
			{not available when compiled without the |+title|
			feature}
	Gives the percentage of 'columns' to use for the length of the window
	title.  When the title is longer, only the end of the path name is
	shown.  A '<' character before the path name is used to indicate this.
	Using a percentage makes this adapt to the width of the window.  But
	it won't work perfectly, because the actual number of characters
	available also depends on the font used and other things in the title
	bar.  When 'titlelen' is zero the full path is used.  Otherwise,
	values from 1 to 30000 percent can be used.
	'titlelen' is also used for the 'titlestring' option.

						*'titleold'*
'titleold'		string	(default "Thanks for flying Vim")
			global
			{not in Vi}
			{only available when compiled with the |+title|
			feature}
	This option will be used for the window title when exiting Vim if the
	original title cannot be restored.  Only happens if 'title' is on or
	'titlestring' is not empty.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.
						*'titlestring'*
'titlestring'		string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+title|
			feature}
	When this option is not empty, it will be used for the title of the
	window.  This happens only when the 'title' option is on.
	Only works if the terminal supports setting window titles (currently
	Amiga console, Win32 console, all GUI versions and terminals with a
	non-empty 't_ts' option).
	When Vim was compiled with HAVE_X11 defined, the original title will
	be restored if possible, see |X11|.
	When this option contains printf-style '%' items, they will be
	expanded according to the rules used for 'statusline'.
	Example: >
    :auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p")
    :set title titlestring=%<%F%=%l/%L-%P titlelen=70
<	The value of 'titlelen' is used to align items in the middle or right
	of the available space.
	Some people prefer to have the file name first: >
    :set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:.:h\")})%)%(\ %a%)
<	Note the use of "%{ }" and an expression to get the path of the file,
	without the file name.  The "%( %)" constructs are used to add a
	separating space only when needed.
	NOTE: Use of special characters in 'titlestring' may cause the display
	to be garbled (e.g., when it contains a CR or NL character).
	{not available when compiled without the |+statusline| feature}

				*'toolbar'* *'tb'*
'toolbar' 'tb'		string	(default "icons,tooltips")
			global
			{only for |+GUI_GTK|, |+GUI_Athena|, |+GUI_Motif| and
			|+GUI_Photon|}
	The contents of this option controls various toolbar settings.  The
	possible values are:
		icons		Toolbar buttons are shown with icons.
		text		Toolbar buttons shown with text.
		horiz		Icon and text of a toolbar button are
				horizontally arranged.  {only in GTK+ 2 GUI}
		tooltips	Tooltips are active for toolbar buttons.
	Tooltips refer to the popup help text which appears after the mouse
	cursor is placed over a toolbar button for a brief moment.

	If you want the toolbar to be shown with icons as well as text, do the
	following: >
		:set tb=icons,text
<	Motif and Athena cannot display icons and text at the same time.  They
	will show icons if both are requested.

	If none of the strings specified in 'toolbar' are valid or if
	'toolbar' is empty, this option is ignored.  If you want to disable
	the toolbar, you need to set the 'guioptions' option.  For example: >
		:set guioptions-=T
<	Also see |gui-toolbar|.

						*'toolbariconsize'* *'tbis'*
'toolbariconsize' 'tbis'	string	(default "small")
				global
				{not in Vi}
				{only in the GTK+ GUI}
	Controls the size of toolbar icons.  The possible values are:
		tiny		Use tiny icons.
		small		Use small icons (default).
		medium		Use medium-sized icons.
		large		Use large icons.
		huge		Use even larger icons.
		giant		Use very big icons.
	The exact dimensions in pixels of the various icon sizes depend on
	the current theme.  Common dimensions are giant=48x48, huge=32x32,
	large=24x24, medium=24x24, small=20x20 and tiny=16x16.

	If 'toolbariconsize' is empty, the global default size as determined
	by user preferences or the current theme is used.

			     *'ttybuiltin'* *'tbi'* *'nottybuiltin'* *'notbi'*
'ttybuiltin' 'tbi'	boolean	(default on)
			global
			{not in Vi}
	When on, the builtin termcaps are searched before the external ones.
	When off the builtin termcaps are searched after the external ones.
	When this option is changed, you should set the 'term' option next for
	the change to take effect, for example: >
		:set notbi term=$TERM
<	See also |termcap|.
	Rationale: The default for this option is "on", because the builtin
	termcap entries are generally better (many systems contain faulty
	xterm entries...).

				     *'ttyfast'* *'tf'* *'nottyfast'* *'notf'*
'ttyfast' 'tf'		boolean	(default off, on when 'term' is xterm, hpterm,
					sun-cmd, screen, rxvt, dtterm or
					iris-ansi; also on when running Vim in
					a DOS console)
			global
			{not in Vi}
	Indicates a fast terminal connection.  More characters will be sent to
	the screen for redrawing, instead of using insert/delete line
	commands.  Improves smoothness of redrawing when there are multiple
	windows and the terminal does not support a scrolling region.
	Also enables the extra writing of characters at the end of each screen
	line for lines that wrap.  This helps when using copy/paste with the
	mouse in an xterm and other terminals.

						*'ttymouse'* *'ttym'*
'ttymouse' 'ttym'	string	(default depends on 'term')
			global
			{not in Vi}
			{only in Unix and VMS, doesn't work in the GUI; not
			available when compiled without |+mouse|}
	Name of the terminal type for which mouse codes are to be recognized.
	Currently these strings are valid:
							*xterm-mouse*
	   xterm	xterm-like mouse handling.  The mouse generates
			"<Esc>[Mscr", where "scr" is three bytes:
				"s"  = button state
				"c"  = column plus 33
				"r"  = row plus 33
			This only works up to 223 columns!  See "dec",
			"urxvt", and "sgr" for solutions.
	   xterm2	Works like "xterm", but with the xterm reporting the
			mouse position while the mouse is dragged.  This works
			much faster and more precise.  Your xterm must at
			least at patchlevel 88 / XFree 3.3.3 for this to
			work.  See below for how Vim detects this
			automatically.
							*netterm-mouse*
	   netterm	NetTerm mouse handling.  The mouse generates
			"<Esc>}r,c<CR>", where "r,c" are two decimal numbers
			for the row and column.
							*dec-mouse*
	   dec		DEC terminal mouse handling.  The mouse generates a
			rather complex sequence, starting with "<Esc>[".
			This is also available for an Xterm, if it was
			configured with "--enable-dec-locator".
							*jsbterm-mouse*
	   jsbterm	JSB term mouse handling.
							*pterm-mouse*
	   pterm	QNX pterm mouse handling.
							*urxvt-mouse*
	   urxvt	Mouse handling for the urxvt (rxvt-unicode) terminal.
			The mouse works only if the terminal supports this
			encoding style, but it does not have 223 columns limit
			unlike "xterm" or "xterm2".
							*sgr-mouse*
	   sgr		Mouse handling for the terminal that emits SGR-styled
			mouse reporting.  The mouse works even in columns
			beyond 223.  This option is backward compatible with
			"xterm2" because it can also decode "xterm2" style
			mouse codes.

	The mouse handling must be enabled at compile time |+mouse_xterm|
	|+mouse_dec| |+mouse_netterm| |+mouse_jsbterm| |+mouse_urxvt|
	|+mouse_sgr|.
	Only "xterm"(2) is really recognized.  NetTerm mouse codes are always
	recognized, if enabled at compile time.  DEC terminal mouse codes
	are recognized if enabled at compile time, and 'ttymouse' is not
	"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
	with them).
	This option is automatically set to "xterm", when the 'term' option is
	set to a name that starts with "xterm", "mlterm", "screen", "tmux",
	"st" (full match only), "st-" or "stterm", and 'ttymouse' is not set
	already.
	Additionally, if vim is compiled with the |+termresponse| feature and
	|t_RV| is set to the escape sequence to request the xterm version
	number, more intelligent detection process runs.
	The "xterm2" value will be set if the xterm version is reported to be
	from 95 to 276.  The "sgr" value will be set if the xterm version is
	277 or higher and when Vim detects Mac Terminal.app or iTerm2.
	If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
	automatically, set t_RV to an empty string: >
		:set t_RV=
<
						*'ttyscroll'* *'tsl'*
'ttyscroll' 'tsl'	number	(default 999)
			global
	Maximum number of lines to scroll the screen.  If there are more lines
	to scroll the window is redrawn.  For terminals where scrolling is
	very slow and redrawing is not slow this can be set to a small number,
	e.g., 3, to speed up displaying.

						*'ttytype'* *'tty'*
'ttytype' 'tty'		string	(default from $TERM)
			global
	Alias for 'term', see above.

						*'undodir'* *'udir'*
'undodir' 'udir'	string	(default ".")
			global
			{not in Vi}
			{only when compiled with the |+persistent_undo| feature}
	List of directory names for undo files, separated with commas.
	See |'backupdir'| for details of the format.
	"." means using the directory of the file.  The undo file name for
	"file.txt" is ".file.txt.un~".
	For other directories the file name is the full path of the edited
	file, with path separators replaced with "%".
	When writing: The first directory that exists is used. "." always
	works, no directories after "." will be used for writing.
	When reading all entries are tried to find an undo file.  The first
	undo file that exists is used.  When it cannot be read an error is
	given, no further entry is used.
	See |undo-persistence|.

				*'undofile'* *'noundofile'* *'udf'* *'noudf'*
'undofile' 'udf'	boolean	(default off)
			local to buffer
			{not in Vi}
			{only when compiled with the |+persistent_undo| feature}
	When on, Vim automatically saves undo history to an undo file when
	writing a buffer to a file, and restores undo history from the same
	file on buffer read.
	The directory where the undo file is stored is specified by 'undodir'.
	For more information about this feature see |undo-persistence|.
	The undo file is not read when 'undoreload' causes the buffer from
	before a reload to be saved for undo.
	When 'undofile' is turned off the undo file is NOT deleted.
	NOTE: This option is reset when 'compatible' is set.

						*'undolevels'* *'ul'*
'undolevels' 'ul'	number	(default 100, 1000 for Unix, VMS,
						Win32 and OS/2)
			global or local to buffer |global-local|
			{not in Vi}
	Maximum number of changes that can be undone.  Since undo information
	is kept in memory, higher numbers will cause more memory to be used
	(nevertheless, a single change can use an unlimited amount of memory).
	Set to 0 for Vi compatibility: One level of undo and "u" undoes
	itself: >
		set ul=0
<	But you can also get Vi compatibility by including the 'u' flag in
	'cpoptions', and still be able to use CTRL-R to repeat undo.
	Also see |undo-two-ways|.
	Set to -1 for no undo at all.  You might want to do this only for the
	current buffer: >
		setlocal ul=-1
<	This helps when you run out of memory for a single change.

	The local value is set to -123456 when the global value is to be used.

	Also see |clear-undo|.

						*'undoreload'* *'ur'*
'undoreload' 'ur'	number	(default 10000)
			global
			{not in Vi}
	Save the whole buffer for undo when reloading it.  This applies to the
	":e!" command and reloading for when the buffer changed outside of
	Vim. |FileChangedShell|
	The save only happens when this option is negative or when the number
	of lines is smaller than the value of this option.
	Set this option to zero to disable undo for a reload.

	When saving undo for a reload, any undo file is not read.

	Note that this causes the whole buffer to be stored in memory.  Set
	this option to a lower value if you run out of memory.

						*'updatecount'* *'uc'*
'updatecount' 'uc'	number	(default: 200)
			global
			{not in Vi}
	After typing this many characters the swap file will be written to
	disk.  When zero, no swap file will be created at all (see chapter on
	recovery |crash-recovery|).  'updatecount' is set to zero by starting
	Vim with the "-n" option, see |startup|.  When editing in readonly
	mode this option will be initialized to 10000.
	The swapfile can be disabled per buffer with |'swapfile'|.
	When 'updatecount' is set from zero to non-zero, swap files are
	created for all buffers that have 'swapfile' set.  When 'updatecount'
	is set to zero, existing swap files are not deleted.
	Also see |'swapsync'|.
	This option has no meaning in buffers where |'buftype'| is "nofile"
	or "nowrite".

						*'updatetime'* *'ut'*
'updatetime' 'ut'	number	(default 4000)
			global
			{not in Vi}
	If this many milliseconds nothing is typed the swap file will be
	written to disk (see |crash-recovery|).  Also used for the
	|CursorHold| autocommand event.

						*'verbose'* *'vbs'*
'verbose' 'vbs'		number	(default 0)
			global
			{not in Vi, although some versions have a boolean
			verbose option}
	When bigger than zero, Vim will give messages about what it is doing.
	Currently, these messages are given:
	>= 1	When the viminfo file is read or written.
	>= 2	When a file is ":source"'ed.
	>= 5	Every searched tags file and include file.
	>= 8	Files for which a group of autocommands is executed.
	>= 9	Every executed autocommand.
	>= 12	Every executed function.
	>= 13	When an exception is thrown, caught, finished, or discarded.
	>= 14	Anything pending in a ":finally" clause.
	>= 15	Every executed Ex command (truncated at 200 characters).

	This option can also be set with the "-V" argument.  See |-V|.
	This option is also set by the |:verbose| command.

	When the 'verbosefile' option is set then the verbose messages are not
	displayed.

						*'verbosefile'* *'vfile'*
'verbosefile' 'vfile'	string	(default empty)
			global
			{not in Vi}
	When not empty all messages are written in a file with this name.
	When the file exists messages are appended.
	Writing to the file ends when Vim exits or when 'verbosefile' is made
	empty.  Writes are buffered, thus may not show up for some time.
	Setting 'verbosefile' to a new value is like making it empty first.
	The difference with |:redir| is that verbose messages are not
	displayed when 'verbosefile' is set.

						*'viewdir'* *'vdir'*
'viewdir' 'vdir'	string	(default for Amiga, MS-DOS, OS/2 and Win32:
							 "$VIM/vimfiles/view",
				 for Unix: "~/.vim/view",
				 for Macintosh: "$VIM:vimfiles:view"
				 for VMS: "sys$login:vimfiles/view"
				 for RiscOS: "Choices:vimfiles/view")
			global
			{not in Vi}
			{not available when compiled without the |+mksession|
			feature}
	Name of the directory where to store files for |:mkview|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'viewoptions'* *'vop'*
'viewoptions' 'vop'	string	(default: "folds,options,cursor,curdir")
			global
			{not in Vi}
			{not available when compiled without the |+mksession|
			feature}
	Changes the effect of the |:mkview| command.  It is a comma separated
	list of words.  Each word enables saving and restoring something:
	   word		save and restore ~
	   cursor	cursor position in file and in window
	   folds	manually created folds, opened/closed folds and local
			fold options
	   options	options and mappings local to a window or buffer (not
			global values for local options)
	   localoptions same as "options"
	   slash	backslashes in file names replaced with forward
			slashes
	   unix		with Unix end-of-line format (single <NL>), even when
			on Windows or DOS
	   curdir	the window-local directory, if set with `:lcd`

	"slash" and "unix" are useful on Windows when sharing view files
	with Unix.  The Unix version of Vim cannot source dos format scripts,
	but the Windows version of Vim can source unix format scripts.

				*'viminfo'* *'vi'* *E526* *E527* *E528*
'viminfo' 'vi'		string	(Vi default: "", Vim default for MS-DOS,
				   Windows and OS/2: '100,<50,s10,h,rA:,rB:,
				   for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2:
				   for others: '100,<50,s10,h)
			global
			{not in Vi}
			{not available when compiled without the |+viminfo|
			feature}
	When non-empty, the viminfo file is read upon startup and written
	when exiting Vim (see |viminfo-file|). Except when 'viminfofile' is
	"NONE".
	The string should be a comma separated list of parameters, each
	consisting of a single character identifying the particular parameter,
	followed by a number or string which specifies the value of that
	parameter.  If a particular character is left out, then the default
	value is used for that parameter.  The following is a list of the
	identifying characters and the effect of their value.
	CHAR	VALUE	~
							*viminfo-!*
	!	When included, save and restore global variables that start
		with an uppercase letter, and don't contain a lowercase
		letter.  Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
		and "_K_L_M" are not.  Nested List and Dict items may not be
		read back correctly, you end up with an empty item.
							*viminfo-quote*
	"	Maximum number of lines saved for each register.  Old name of
		the '<' item, with the disadvantage that you need to put a
		backslash before the ", otherwise it will be recognized as the
		start of a comment!
							*viminfo-%*
	%	When included, save and restore the buffer list.  If Vim is
		started with a file name argument, the buffer list is not
		restored.  If Vim is started without a file name argument, the
		buffer list is restored from the viminfo file.  Quickfix
		('buftype'), unlisted ('buflisted'), unnamed and buffers on
		removable media (|viminfo-r|) are not saved.
		When followed by a number, the number specifies the maximum
		number of buffers that are stored.  Without a number all
		buffers are stored.
							*viminfo-'*
	'	Maximum number of previously edited files for which the marks
		are remembered.  This parameter must always be included when
		'viminfo' is non-empty.
		Including this item also means that the |jumplist| and the
		|changelist| are stored in the viminfo file.
							*viminfo-/*
	/	Maximum number of items in the search pattern history to be
		saved.  If non-zero, then the previous search and substitute
		patterns are also saved.  When not included, the value of
		'history' is used.
							*viminfo-:*
	:	Maximum number of items in the command-line history to be
		saved.  When not included, the value of 'history' is used.
							*viminfo-<*
	<	Maximum number of lines saved for each register.  If zero then
		registers are not saved.  When not included, all lines are
		saved.  '"' is the old name for this item.
		Also see the 's' item below: limit specified in Kbyte.
							*viminfo-@*
	@	Maximum number of items in the input-line history to be
		saved.  When not included, the value of 'history' is used.
							*viminfo-c*
	c	When included, convert the text in the viminfo file from the
		'encoding' used when writing the file to the current
		'encoding'.  See |viminfo-encoding|.
							*viminfo-f*
	f	Whether file marks need to be stored.  If zero, file marks ('0
		to '9, 'A to 'Z) are not stored.  When not present or when
		non-zero, they are all stored.  '0 is used for the current
		cursor position (when exiting or when doing ":wviminfo").
							*viminfo-h*
	h	Disable the effect of 'hlsearch' when loading the viminfo
		file.  When not included, it depends on whether ":nohlsearch"
		has been used since the last search command.
							*viminfo-n*
	n	Name of the viminfo file.  The name must immediately follow
		the 'n'.  Must be at the end of the option!  If the
		'viminfofile' option is set, that file name overrides the one
		given here with 'viminfo'.  Environment variables are
		expanded when opening the file, not when setting the option.
							*viminfo-r*
	r	Removable media.  The argument is a string (up to the next
		',').  This parameter can be given several times.  Each
		specifies the start of a path for which no marks will be
		stored.  This is to avoid removable media.  For MS-DOS you
		could use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:".  You can
		also use it for temp files, e.g., for Unix: "r/tmp".  Case is
		ignored.  Maximum length of each 'r' argument is 50
		characters.
							*viminfo-s*
	s	Maximum size of an item in Kbyte.  If zero then registers are
		not saved.  Currently only applies to registers.  The default
		"s10" will exclude registers with more than 10 Kbyte of text.
		Also see the '<' item above: line count limit.

	Example: >
	    :set viminfo='50,<1000,s100,:0,n~/vim/viminfo
<
	'50		Marks will be remembered for the last 50 files you
			edited.
	<1000		Contents of registers (up to 1000 lines each) will be
			remembered.
	s100		Registers with more than 100 Kbyte text are skipped.
	:0		Command-line history will not be saved.
	n~/vim/viminfo	The name of the file to use is "~/vim/viminfo".
	no /		Since '/' is not specified, the default will be used,
			that is, save all of the search history, and also the
			previous search and substitute patterns.
	no %		The buffer list will not be saved nor read back.
	no h		'hlsearch' highlighting will be restored.

	When setting 'viminfo' from an empty value you can use |:rviminfo| to
	load the contents of the file, this is not done automatically.

	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.
	NOTE: This option is set to the Vim default value when 'compatible'
	is reset.

				*'viminfofile'* *'vif'*
'viminfofile' 'vif'	string	(default: "")
			global
			{not in Vi}
			{not available when compiled without the |+viminfo|
			feature}
	When non-empty, overrides the file name used for viminfo.
	When equal to "NONE" no viminfo file will be read or written.
	This option can be set with the |-i| command line flag.  The |--clean|
	command line flag sets it to "NONE".

					    *'virtualedit'* *'ve'*
'virtualedit' 've'	string	(default "")
			global
			{not in Vi}
			{not available when compiled without the
			|+virtualedit| feature}
	A comma separated list of these words:
	    block	Allow virtual editing in Visual block mode.
	    insert	Allow virtual editing in Insert mode.
	    all		Allow virtual editing in all modes.
	    onemore	Allow the cursor to move just past the end of the line

	Virtual editing means that the cursor can be positioned where there is
	no actual character.  This can be halfway into a tab or beyond the end
	of the line.  Useful for selecting a rectangle in Visual mode and
	editing a table.
	"onemore" is not the same, it will only allow moving the cursor just
	after the last character of the line.  This makes some commands more
	consistent.  Previously the cursor was always past the end of the line
	if the line was empty.  But it is far from Vi compatible.  It may also
	break some plugins or Vim scripts.  For example because |l| can move
	the cursor after the last character.  Use with care!
	Using the `$` command will move to the last character in the line, not
	past it.  This may actually move the cursor to the left!
	The `g$` command will move to the end of the screen line.
	It doesn't make sense to combine "all" with "onemore", but you will
	not get a warning for it.
	NOTE: This option is set to "" when 'compatible' is set.

			*'visualbell'* *'vb'* *'novisualbell'* *'novb'* *beep*
'visualbell' 'vb'	boolean	(default off)
			global
			{not in Vi}
	Use a visual bell instead of beeping.  The terminal code to display the
	visual bell is given with 't_vb'.  When no beep or flash is wanted,
	use: >
		:set vb t_vb=
<	If you want a short flash, you can use this on many terminals: >
		:set vb t_vb=[?5h$<100>[?5l
<	Here $<100> specifies the time, you can use a smaller or bigger value
	to get a shorter or longer flash.

	Note: Vim will limit the bell to once per half a second.  This avoids
	having to wait for the flashing to finish when there are lots of
	bells, e.g. on key repeat.  This also happens without 'visualbell'
	set.

	In the GUI, 't_vb' defaults to "<Esc>|f", which inverts the display
	for 20 msec.  If you want to use a different time, use "<Esc>|40f",
	where 40 is the time in msec.

	Note: When the GUI starts, 't_vb' is reset to its default value.  You
	might want to set it again in your |gvimrc|.

	Does not work on the Amiga, you always get a screen flash.
	Also see 'errorbells'.

						*'warn'* *'nowarn'*
'warn'			boolean	(default on)
			global
	Give a warning message when a shell command is used while the buffer
	has been changed.

		     *'weirdinvert'* *'wiv'* *'noweirdinvert'* *'nowiv'*
'weirdinvert' 'wiv'	boolean	(default off)
			global
			{not in Vi}
	This option has the same effect as the 't_xs' terminal option.
	It is provided for backwards compatibility with version 4.x.
	Setting 'weirdinvert' has the effect of making 't_xs' non-empty, and
	vice versa.  Has no effect when the GUI is running.

						*'whichwrap'* *'ww'*
'whichwrap' 'ww'	string	(Vim default: "b,s", Vi default: "")
			global
			{not in Vi}
	Allow specified keys that move the cursor left/right to move to the
	previous/next line when the cursor is on the first/last character in
	the line.  Concatenate characters to allow this for these keys:
		char   key	  mode	~
		 b    <BS>	 Normal and Visual
		 s    <Space>	 Normal and Visual
		 h    "h"	 Normal and Visual (not recommended)
		 l    "l"	 Normal and Visual (not recommended)
		 <    <Left>	 Normal and Visual
		 >    <Right>	 Normal and Visual
		 ~    "~"	 Normal
		 [    <Left>	 Insert and Replace
		 ]    <Right>	 Insert and Replace
	For example: >
		:set ww=<,>,[,]
<	allows wrap only when cursor keys are used.
	When the movement keys are used in combination with a delete or change
	operator, the <EOL> also counts for a character.  This makes "3h"
	different from "3dh" when the cursor crosses the end of a line.  This
	is also true for "x" and "X", because they do the same as "dl" and
	"dh".  If you use this, you may also want to use the mapping
	":map <BS> X" to make backspace delete the character in front of the
	cursor.
	When 'l' is included and it is used after an operator at the end of a
	line then it will not move to the next line.  This makes "dl", "cl",
	"yl" etc. work normally.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'wildchar'* *'wc'*
'wildchar' 'wc'		number	(Vim default: <Tab>, Vi default: CTRL-E)
			global
			{not in Vi}
	Character you have to type to start wildcard expansion in the
	command-line, as specified with 'wildmode'.
	More info here: |cmdline-completion|.
	The character is not recognized when used inside a macro.  See
	'wildcharm' for that.
	Although 'wc' is a number option, you can set it to a special key: >
		:set wc=<Esc>
<	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'wildcharm'* *'wcm'*
'wildcharm' 'wcm'	number	(default: none (0))
			global
			{not in Vi}
	'wildcharm' works exactly like 'wildchar', except that it is
	recognized when used inside a macro.  You can find "spare" command-line
	keys suitable for this option by looking at |ex-edit-index|.  Normally
	you'll never actually type 'wildcharm', just use it in mappings that
	automatically invoke completion mode, e.g.: >
		:set wcm=<C-Z>
		:cnoremap ss so $vim/sessions/*.vim<C-Z>
<	Then after typing :ss you can use CTRL-P & CTRL-N.

						*'wildignore'* *'wig'*
'wildignore' 'wig'	string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+wildignore|
			feature}
	A list of file patterns.  A file that matches with one of these
	patterns is ignored when expanding |wildcards|, completing file or
	directory names, and influences the result of |expand()|, |glob()| and
	|globpath()| unless a flag is passed to disable this.
	The pattern is used like with |:autocmd|, see |autocmd-patterns|.
	Also see 'suffixes'.
	Example: >
		:set wildignore=*.o,*.obj
<	The use of |:set+=| and |:set-=| is preferred when adding or removing
	a pattern from the list.  This avoids problems when a future version
	uses another default.


			*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
'wildignorecase' 'wic'	boolean	(default off)
			global
			{not in Vi}
	When set case is ignored when completing file names and directories.
	Has no effect when 'fileignorecase' is set.
	Does not apply when the shell is used to expand wildcards, which
	happens when there are special characters.


				*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
'wildmenu' 'wmnu'	boolean	(default off, set in |defaults.vim|)
			global
			{not in Vi}
			{not available if compiled without the |+wildmenu|
			feature}
	When 'wildmenu' is on, command-line completion operates in an enhanced
	mode.  On pressing 'wildchar' (usually <Tab>) to invoke completion,
	the possible matches are shown just above the command line, with the
	first match highlighted (overwriting the status line, if there is
	one).  Keys that show the previous/next match, such as <Tab> or
	CTRL-P/CTRL-N, cause the highlight to move to the appropriate match.
	When 'wildmode' is used, "wildmenu" mode is used where "full" is
	specified.  "longest" and "list" do not start "wildmenu" mode.
	You can check the current mode with |wildmenumode()|.
	If there are more matches than can fit in the line, a ">" is shown on
	the right and/or a "<" is shown on the left.  The status line scrolls
	as needed.
	The "wildmenu" mode is abandoned when a key is hit that is not used
	for selecting a completion.
	While the "wildmenu" is active the following keys have special
	meanings:

	<Left> <Right>	- select previous/next match (like CTRL-P/CTRL-N)
	<Down>		- in filename/menu name completion: move into a
			  subdirectory or submenu.
	<CR>		- in menu completion, when the cursor is just after a
			  dot: move into a submenu.
	<Up>		- in filename/menu name completion: move up into
			  parent directory or parent menu.

	This makes the menus accessible from the console |console-menus|.

	If you prefer the <Left> and <Right> keys to move the cursor instead
	of selecting a different match, use this: >
		:cnoremap <Left> <Space><BS><Left>
		:cnoremap <Right> <Space><BS><Right>
<
	The "WildMenu" highlighting is used for displaying the current match
	|hl-WildMenu|.

						*'wildmode'* *'wim'*
'wildmode' 'wim'	string	(Vim default: "full")
			global
			{not in Vi}
	Completion mode that is used for the character specified with
	'wildchar'.  It is a comma separated list of up to four parts.  Each
	part specifies what to do for each consecutive use of 'wildchar'.  The
	first part specifies the behavior for the first use of 'wildchar',
	The second part for the second use, etc.
	These are the possible values for each part:
	""		Complete only the first match.
	"full"		Complete the next full match.  After the last match,
			the original string is used and then the first match
			again.
	"longest"	Complete till longest common string.  If this doesn't
			result in a longer string, use the next part.
	"longest:full"	Like "longest", but also start 'wildmenu' if it is
			enabled.
	"list"		When more than one match, list all matches.
	"list:full"	When more than one match, list all matches and
			complete first match.
	"list:longest"	When more than one match, list all matches and
			complete till longest common string.
	When there is only a single match, it is fully completed in all cases.

	Examples: >
		:set wildmode=full
<	Complete first full match, next match, etc.  (the default) >
		:set wildmode=longest,full
<	Complete longest common string, then each full match >
		:set wildmode=list:full
<	List all matches and complete each full match >
		:set wildmode=list,full
<	List all matches without completing, then each full match >
		:set wildmode=longest,list
<	Complete longest common string, then list alternatives.
	More info here: |cmdline-completion|.

						*'wildoptions'* *'wop'*
'wildoptions' 'wop'	string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+wildignore|
			feature}
	A list of words that change how command line completion is done.
	Currently only one word is allowed:
	  tagfile	When using CTRL-D to list matching tags, the kind of
			tag and the file of the tag is listed.	Only one match
			is displayed per line.  Often used tag kinds are:
				d	#define
				f	function
	Also see |cmdline-completion|.

						*'winaltkeys'* *'wak'*
'winaltkeys' 'wak'	string	(default "menu")
			global
			{not in Vi}
			{only used in Win32, Motif, GTK and Photon GUI}
	Some GUI versions allow the access to menu entries by using the ALT
	key in combination with a character that appears underlined in the
	menu.  This conflicts with the use of the ALT key for mappings and
	entering special characters.  This option tells what to do:
	  no	Don't use ALT keys for menus.  ALT key combinations can be
		mapped, but there is no automatic handling.  This can then be
		done with the |:simalt| command.
	  yes	ALT key handling is done by the windowing system.  ALT key
		combinations cannot be mapped.
	  menu	Using ALT in combination with a character that is a menu
		shortcut key, will be handled by the windowing system.  Other
		keys can be mapped.
	If the menu is disabled by excluding 'm' from 'guioptions', the ALT
	key is never used for the menu.
	This option is not used for <F10>; on Win32 and with GTK <F10> will
	select the menu, unless it has been mapped.

						*'window'* *'wi'*
'window' 'wi'		number  (default screen height - 1)
			global
	Window height.  Do not confuse this with the height of the Vim window,
	use 'lines' for that.
	Used for |CTRL-F| and |CTRL-B| when there is only one window and the
	value is smaller than 'lines' minus one.  The screen will scroll
	'window' minus two lines, with a minimum of one.
	When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll
	in a much smarter way, taking care of wrapping lines.
	When resizing the Vim window, the value is smaller than 1 or more than
	or equal to 'lines' it will be set to 'lines' minus 1.
	{Vi also uses the option to specify the number of displayed lines}

						*'winheight'* *'wh'* *E591*
'winheight' 'wh'	number	(default 1)
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	Minimal number of lines for the current window.  This is not a hard
	minimum, Vim will use fewer lines if there is not enough room.  If the
	focus goes to a window that is smaller, its size is increased, at the
	cost of the height of other windows.
	Set 'winheight' to a small number for normal editing.
	Set it to 999 to make the current window fill most of the screen.
	Other windows will be only 'winminheight' high.  This has the drawback
	that ":all" will create only two windows.  To avoid "vim -o 1 2 3 4"
	to create only two windows, set the option after startup is done,
	using the |VimEnter| event: >
		au VimEnter * set winheight=999
<	Minimum value is 1.
	The height is not adjusted after one of the commands that change the
	height of the current window.
	'winheight' applies to the current window.  Use 'winminheight' to set
	the minimal height for other windows.

			*'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'*
'winfixheight' 'wfh'	boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	Keep the window height when windows are opened or closed and
	'equalalways' is set.  Also for |CTRL-W_=|.  Set by default for the
	|preview-window| and |quickfix-window|.
	The height may be changed anyway when running out of room.

			*'winfixwidth'* *'wfw'* *'nowinfixwidth'* *'nowfw'*
'winfixwidth' 'wfw'	boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	Keep the window width when windows are opened or closed and
	'equalalways' is set.  Also for |CTRL-W_=|.
	The width may be changed anyway when running out of room.

						*'winminheight'* *'wmh'*
'winminheight' 'wmh'	number	(default 1)
			global
			{not in Vi}
			{not available when compiled without the |+windows|
			feature}
	The minimal height of a window, when it's not the current window.
	This is a hard minimum, windows will never become smaller.
	When set to zero, windows may be "squashed" to zero lines (i.e. just a
	status bar) if necessary.  They will return to at least one line when
	they become active (since the cursor has to have somewhere to go.)
	Use 'winheight' to set the minimal height of the current window.
	This option is only checked when making a window smaller.  Don't use a
	large number, it will cause errors when opening more than a few
	windows.  A value of 0 to 3 is reasonable.

						*'winminwidth'* *'wmw'*
'winminwidth' 'wmw'	number	(default 1)
			global
			{not in Vi}
			{not available when compiled without the |+vertsplit|
			feature}
	The minimal width of a window, when it's not the current window.
	This is a hard minimum, windows will never become smaller.
	When set to zero, windows may be "squashed" to zero columns (i.e. just
	a vertical separator) if necessary.  They will return to at least one
	line when they become active (since the cursor has to have somewhere
	to go.)
	Use 'winwidth' to set the minimal width of the current window.
	This option is only checked when making a window smaller.  Don't use a
	large number, it will cause errors when opening more than a few
	windows.  A value of 0 to 12 is reasonable.

						*'winptydll'*
'winptydll'		string	(default "winpty32.dll" or "winpty64.dll")
			global
			{not in Vi}
			{only available when compiled with the |terminal|
			feature on MS-Windows}
	Specifies the name of the winpty shared library, used for the
	|:terminal| command. The default depends on whether was build as a
	32-bit or 64-bit executable.  If not found, "winpty.dll" is tried as
	a fallback.
	Environment variables are expanded |:set_env|.
	This option cannot be set from a |modeline| or in the |sandbox|, for
	security reasons.

						*'winwidth'* *'wiw'* *E592*
'winwidth' 'wiw'	number	(default 20)
			global
			{not in Vi}
			{not available when compiled without the |+vertsplit|
			feature}
	Minimal number of columns for the current window.  This is not a hard
	minimum, Vim will use fewer columns if there is not enough room.  If
	the current window is smaller, its size is increased, at the cost of
	the width of other windows.  Set it to 999 to make the current window
	always fill the screen.  Set it to a small number for normal editing.
	The width is not adjusted after one of the commands to change the
	width of the current window.
	'winwidth' applies to the current window.  Use 'winminwidth' to set
	the minimal width for other windows.

						*'wrap'* *'nowrap'*
'wrap'			boolean	(default on)
			local to window
			{not in Vi}
	This option changes how text is displayed.  It doesn't change the text
	in the buffer, see 'textwidth' for that.
	When on, lines longer than the width of the window will wrap and
	displaying continues on the next line.  When off lines will not wrap
	and only part of long lines will be displayed.  When the cursor is
	moved to a part that is not shown, the screen will scroll
	horizontally.
	The line will be broken in the middle of a word if necessary.  See
	'linebreak' to get the break at a word boundary.
	To make scrolling horizontally a bit more useful, try this: >
		:set sidescroll=5
		:set listchars+=precedes:<,extends:>
<	See 'sidescroll', 'listchars' and |wrap-off|.
	This option can't be set from a |modeline| when the 'diff' option is
	on.

						*'wrapmargin'* *'wm'*
'wrapmargin' 'wm'	number	(default 0)
			local to buffer
	Number of characters from the right window border where wrapping
	starts.  When typing text beyond this limit, an <EOL> will be inserted
	and inserting continues on the next line.
	Options that add a margin, such as 'number' and 'foldcolumn', cause
	the text width to be further reduced.  This is Vi compatible.
	When 'textwidth' is non-zero, this option is not used.
	This option is set to 0 when 'paste' is set and restored when 'paste'
	is reset.
	See also 'formatoptions' and |ins-textwidth|.  {Vi: works differently
	and less usefully}

				   *'wrapscan'* *'ws'* *'nowrapscan'* *'nows'*
'wrapscan' 'ws'		boolean	(default on)			*E384* *E385*
			global
	Searches wrap around the end of the file.  Also applies to |]s| and
	|[s|, searching for spelling mistakes.

						   *'write'* *'nowrite'*
'write'			boolean	(default on)
			global
			{not in Vi}
	Allows writing files.  When not set, writing a file is not allowed.
	Can be used for a view-only mode, where modifications to the text are
	still allowed.  Can be reset with the |-m| or |-M| command line
	argument.  Filtering text is still possible, even though this requires
	writing a temporary file.

				   *'writeany'* *'wa'* *'nowriteany'* *'nowa'*
'writeany' 'wa'		boolean	(default off)
			global
	Allows writing to any file with no need for "!" override.

			     *'writebackup'* *'wb'* *'nowritebackup'* *'nowb'*
'writebackup' 'wb'	boolean	(default on with |+writebackup| feature, off
					otherwise)
			global
			{not in Vi}
	Make a backup before overwriting a file.  The backup is removed after
	the file was successfully written, unless the 'backup' option is
	also on.
	WARNING: Switching this option off means that when Vim fails to write
	your buffer correctly and then, for whatever reason, Vim exits, you
	lose both the original file and what you were writing.  Only reset
	this option if your file system is almost full and it makes the write
	fail (and make sure not to exit Vim until the write was successful).
	See |backup-table| for another explanation.
	When the 'backupskip' pattern matches, a backup is not made anyway.
	NOTE: This option is set to the default value when 'compatible' is
	set.

						*'writedelay'* *'wd'*
'writedelay' 'wd'	number	(default 0)
			global
			{not in Vi}
	The number of milliseconds to wait for each character sent to the
	screen.  When non-zero, characters are sent to the terminal one by
	one.  For MS-DOS pcterm this does not work.  For debugging purposes.

 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�xr__vim80/doc/usr_02.txtnu�[���*usr_02.txt*	For Vim version 8.0.  Last change: 2017 Mar 14

		     VIM USER MANUAL - by Bram Moolenaar

			    The first steps in Vim


This chapter provides just enough information to edit a file with Vim.  Not
well or fast, but you can edit.  Take some time to practice with these
commands, they form the base for what follows.

|02.1|	Running Vim for the First Time
|02.2|	Inserting text
|02.3|	Moving around
|02.4|	Deleting characters
|02.5|	Undo and Redo
|02.6|	Other editing commands
|02.7|	Getting out
|02.8|	Finding help

     Next chapter: |usr_03.txt|  Moving around
 Previous chapter: |usr_01.txt|  About the manuals
Table of contents: |usr_toc.txt|

==============================================================================
*02.1*	Running Vim for the First Time

To start Vim, enter this command: >

	gvim file.txt

In UNIX you can type this at any command prompt.  If you are running Microsoft
Windows, open an MS-DOS prompt window and enter the command.
   In either case, Vim starts editing a file called file.txt.  Because this
is a new file, you get a blank window. This is what your screen will look
like:

	+---------------------------------------+
	|#					|
	|~					|
	|~					|
	|~					|
	|~					|
	|"file.txt" [New file]			|
	+---------------------------------------+
		('#" is the cursor position.)

The tilde (~) lines indicate lines not in the file.  In other words, when Vim
runs out of file to display, it displays tilde lines.  At the bottom of the
screen, a message line indicates the file is named file.txt and shows that you
are creating a new file.  The message information is temporary and other
information overwrites it.


THE VIM COMMAND

The gvim command causes the editor to create a new window for editing.  If you
use this command: >

	vim file.txt

the editing occurs inside your command window.  In other words, if you are
running inside an xterm, the editor uses your xterm window.  If you are using
an MS-DOS command prompt window under Microsoft Windows, the editing occurs
inside this window.  The text in the window will look the same for both
versions, but with gvim you have extra features, like a menu bar.  More about
that later.

==============================================================================
*02.2*	Inserting text

The Vim editor is a modal editor.  That means that the editor behaves
differently, depending on which mode you are in.  The two basic modes are
called Normal mode and Insert mode.  In Normal mode the characters you type
are commands.  In Insert mode the characters are inserted as text.
   Since you have just started Vim it will be in Normal mode.  To start Insert
mode you type the "i" command (i for Insert).  Then you can enter
the text.  It will be inserted into the file.  Do not worry if you make
mistakes; you can correct them later.  To enter the following programmer's
limerick, this is what you type: >

	iA very intelligent turtle
	Found programming UNIX a hurdle

After typing "turtle" you press the <Enter> key to start a new line.  Finally
you press the <Esc> key to stop Insert mode and go back to Normal mode.  You
now have two lines of text in your Vim window:

	+---------------------------------------+
	|A very intelligent turtle		|
	|Found programming UNIX a hurdle	|
	|~					|
	|~					|
	|					|
	+---------------------------------------+


WHAT IS THE MODE?

To be able to see what mode you are in, type this command: >

	:set showmode

You will notice that when typing the colon Vim moves the cursor to the last
line of the window.  That's where you type colon commands (commands that start
with a colon).  Finish this command by pressing the <Enter> key (all commands
that start with a colon are finished this way).
   Now, if you type the "i" command Vim will display --INSERT-- at the bottom
of the window.  This indicates you are in Insert mode.

	+---------------------------------------+
	|A very intelligent turtle		|
	|Found programming UNIX a hurdle	|
	|~					|
	|~					|
	|-- INSERT --				|
	+---------------------------------------+

If you press <Esc> to go back to Normal mode the last line will be made blank.


GETTING OUT OF TROUBLE

One of the problems for Vim novices is mode confusion, which is caused by
forgetting which mode you are in or by accidentally typing a command that
switches modes.  To get back to Normal mode, no matter what mode you are in,
press the <Esc> key.  Sometimes you have to press it twice.  If Vim beeps back
at you, you already are in Normal mode.

==============================================================================
*02.3*	Moving around

After you return to Normal mode, you can move around by using these keys:

	h   left						*hjkl*
	j   down
	k   up
	l   right

At first, it may appear that these commands were chosen at random.  After all,
who ever heard of using l for right?  But actually, there is a very good
reason for these choices: Moving the cursor is the most common thing you do in
an editor, and these keys are on the home row of your right hand.  In other
words, these commands are placed where you can type them the fastest
(especially when you type with ten fingers).

	Note:
	You can also move the cursor by using the arrow keys.  If you do,
	however, you greatly slow down your editing because to press the arrow
	keys, you must move your hand from the text keys to the arrow keys.
	Considering that you might be doing it hundreds of times an hour, this
	can take a significant amount of time.
	   Also, there are keyboards which do not have arrow keys, or which
	locate them in unusual places; therefore, knowing the use of the hjkl
	keys helps in those situations.

One way to remember these commands is that h is on the left, l is on the
right and j points down.  In a picture: >

		       k
		   h     l
		     j

The best way to learn these commands is by using them.  Use the "i" command to
insert some more lines of text.  Then use the hjkl keys to move around and
insert a word somewhere.  Don't forget to press <Esc> to go back to Normal
mode.  The |vimtutor| is also a nice way to learn by doing.

For Japanese users, Hiroshi Iwatani suggested using this:

			Komsomolsk
			    ^
			    |
	   Huan Ho	<--- --->  Los Angeles
	(Yellow river)	    |
			    v
			  Java (the island, not the programming language)

==============================================================================
*02.4*	Deleting characters

To delete a character, move the cursor over it and type "x".  (This is a
throwback to the old days of the typewriter, when you deleted things by typing
xxxx over them.)  Move the cursor to the beginning of the first line, for
example, and type xxxxxxx (seven x's) to delete "A very ".  The result should
look like this:

	+---------------------------------------+
	|intelligent turtle			|
	|Found programming UNIX a hurdle	|
	|~					|
	|~					|
	|					|
	+---------------------------------------+

Now you can insert new text, for example by typing: >

	iA young <Esc>

This begins an insert (the i), inserts the words "A young", and then exits
insert mode (the final <Esc>).	The result:

	+---------------------------------------+
	|A young intelligent turtle		|
	|Found programming UNIX a hurdle	|
	|~					|
	|~					|
	|					|
	+---------------------------------------+


DELETING A LINE

To delete a whole line use the "dd" command.  The following line will
then move up to fill the gap:

	+---------------------------------------+
	|Found programming UNIX a hurdle	|
	|~					|
	|~					|
	|~					|
	|					|
	+---------------------------------------+


DELETING A LINE BREAK

In Vim you can join two lines together, which means that the line break
between them is deleted.  The "J" command does this.
   Take these two lines:

	A young intelligent ~
	turtle ~

Move the cursor to the first line and press "J":

	A young intelligent turtle ~

==============================================================================
*02.5*	Undo and Redo

Suppose you delete too much.  Well, you can type it in again, but an easier
way exists.  The "u" command undoes the last edit.  Take a look at this in
action: After using "dd" to delete the first line, "u" brings it back.
   Another one: Move the cursor to the A in the first line:

	A young intelligent turtle ~

Now type xxxxxxx to delete "A young".  The result is as follows:

	 intelligent turtle ~

Type "u" to undo the last delete.  That delete removed the g, so the undo
restores the character.

	g intelligent turtle ~

The next u command restores the next-to-last character deleted:

	ng intelligent turtle ~

The next u command gives you the u, and so on:

	ung intelligent turtle ~
	oung intelligent turtle ~
	young intelligent turtle ~
	 young intelligent turtle ~
	A young intelligent turtle ~

	Note:
	If you type "u" twice, and the result is that you get the same text
	back, you have Vim configured to work Vi compatible.  Look here to fix
	this: |not-compatible|.
	   This text assumes you work "The Vim Way".  You might prefer to use
	the good old Vi way, but you will have to watch out for small
	differences in the text then.


REDO

If you undo too many times, you can press CTRL-R (redo) to reverse the
preceding command.  In other words, it undoes the undo.  To see this in
action, press CTRL-R twice.  The character A and the space after it disappear:

	young intelligent turtle ~

There's a special version of the undo command, the "U" (undo line) command.
The undo line command undoes all the changes made on the last line that was
edited.  Typing this command twice cancels the preceding "U".

	A very intelligent turtle ~
	  xxxx				Delete very

	A intelligent turtle ~
		      xxxxxx		Delete turtle

	A intelligent ~
					Restore line with "U"
	A very intelligent turtle ~
					Undo "U" with "u"
	A intelligent ~

The "U" command is a change by itself, which the "u" command undoes and CTRL-R
redoes.  This might be a bit confusing.  Don't worry, with "u" and CTRL-R you
can go to any of the situations you had.  More about that in section |32.2|.

==============================================================================
*02.6*	Other editing commands

Vim has a large number of commands to change the text.  See |Q_in| and below.
Here are a few often used ones.


APPENDING

The "i" command inserts a character before the character under the cursor.
That works fine; but what happens if you want to add stuff to the end of the
line?  For that you need to insert text after the cursor.  This is done with
the "a" (append) command.
   For example, to change the line

	and that's not saying much for the turtle. ~
to
	and that's not saying much for the turtle!!! ~

move the cursor over to the dot at the end of the line. Then type "x" to
delete the period.  The cursor is now positioned at the end of the line on the
e in turtle.  Now type >

	a!!!<Esc>

to append three exclamation points after the e in turtle:

	and that's not saying much for the turtle!!! ~


OPENING UP A NEW LINE

The "o" command creates a new, empty line below the cursor and puts Vim in
Insert mode.  Then you can type the text for the new line.
   Suppose the cursor is somewhere in the first of these two lines:

	A very intelligent turtle ~
	Found programming UNIX a hurdle ~

If you now use the "o" command and type new text: >

	oThat liked using Vim<Esc>

The result is:

	A very intelligent turtle ~
	That liked using Vim ~
	Found programming UNIX a hurdle ~

The "O" command (uppercase) opens a line above the cursor.


USING A COUNT

Suppose you want to move up nine lines.  You can type "kkkkkkkkk" or you can
enter the command "9k".  In fact, you can precede many commands with a number.
Earlier in this chapter, for instance, you added three exclamation points to
the end of a line by typing "a!!!<Esc>".  Another way to do this is to use the
command "3a!<Esc>".  The count of 3 tells the command that follows to triple
its effect.  Similarly, to delete three characters, use the command "3x".  The
count always comes before the command it applies to.

==============================================================================
*02.7*	Getting out

To exit, use the "ZZ" command.  This command writes the file and exits.

	Note:
	Unlike many other editors, Vim does not automatically make a backup
	file.  If you type "ZZ", your changes are committed and there's no
	turning back.  You can configure the Vim editor to produce backup
	files, see |07.4|.


DISCARDING CHANGES

Sometimes you will make a sequence of changes and suddenly realize you were
better off before you started.  Not to worry; Vim has a
quit-and-throw-things-away command.  It is: >

	:q!

Don't forget to press <Enter> to finish the command.

For those of you interested in the details, the three parts of this command
are the colon (:), which enters Command-line mode; the q command, which tells
the editor to quit; and the override command modifier (!).
   The override command modifier is needed because Vim is reluctant to throw
away changes.  If you were to just type ":q", Vim would display an error
message and refuse to exit:

	E37: No write since last change (use ! to override) ~

By specifying the override, you are in effect telling Vim, "I know that what
I'm doing looks stupid, but I'm a big boy and really want to do this."

If you want to continue editing with Vim: The ":e!" command reloads the
original version of the file.

==============================================================================
*02.8*	Finding help

Everything you always wanted to know can be found in the Vim help files.
Don't be afraid to ask!

If you know what you are looking for, it is usually easier to search for it
using the help system, instead of using Google.  Because the subjects follow
a certain style guide.

Also the help has the advantage of belonging to your particular Vim version.
You won't see help for commands added later.  These would not work for you.

To get generic help use this command: >

	:help

You could also use the first function key <F1>.  If your keyboard has a <Help>
key it might work as well.
   If you don't supply a subject, ":help" displays the general help window.
The creators of Vim did something very clever (or very lazy) with the help
system: They made the help window a normal editing window.  You can use all
the normal Vim commands to move through the help information.  Therefore h, j,
k, and l move left, down, up and right.
   To get out of the help window, use the same command you use to get out of
the editor: "ZZ".  This will only close the help window, not exit Vim.

As you read the help text, you will notice some text enclosed in vertical bars
(for example, |help|).  This indicates a hyperlink.  If you position the
cursor anywhere between the bars and press CTRL-] (jump to tag), the help
system takes you to the indicated subject.  (For reasons not discussed here,
the Vim terminology for a hyperlink is tag.  So CTRL-] jumps to the location
of the tag given by the word under the cursor.)
   After a few jumps, you might want to go back.  CTRL-T (pop tag) takes you
back to the preceding position.  CTRL-O (jump to older position) also works
nicely here.
   At the top of the help screen, there is the notation *help.txt*.  This name
between "*" characters is used by the help system to define a tag (hyperlink
destination).
   See |29.1| for details about using tags.

To get help on a given subject, use the following command: >

	:help {subject}

To get help on the "x" command, for example, enter the following: >

	:help x

To find out how to delete text, use this command: >

	:help deleting

To get a complete index of all Vim commands, use the following command: >

	:help index

When you need to get help for a control character command (for example,
CTRL-A), you need to spell it with the prefix "CTRL-". >

	:help CTRL-A

The Vim editor has many different modes.  By default, the help system displays
the normal-mode commands.  For example, the following command displays help
for the normal-mode CTRL-H command: >

	:help CTRL-H

To identify other modes, use a mode prefix.  If you want the help for the
insert-mode version of a command, use "i_".  For CTRL-H this gives you the
following command: >

	:help i_CTRL-H

When you start the Vim editor, you can use several command-line arguments.
These all begin with a dash (-).  To find what the -t argument does, for
example, use the command: >

	:help -t

The Vim editor has a number of options that enable you to configure and
customize the editor.  If you want help for an option, you need to enclose it
in single quotation marks.  To find out what the 'number' option does, for
example, use the following command: >

	:help 'number'

The table with all mode prefixes can be found below: |help-summary|.

Special keys are enclosed in angle brackets.  To find help on the up-arrow key
in Insert mode, for instance, use this command: >

	:help i_<Up>

If you see an error message that you don't understand, for example:

	E37: No write since last change (use ! to override) ~

You can use the error ID at the start to find help about it: >

	:help E37


Summary: 					*help-summary*  >

1) Use Ctrl-D after typing a topic and let Vim show all available topics.
   Or press Tab to complete: >
    	:help some<Tab>
<   More information on how to use the help: >
	:help helphelp

2) Follow the links in bars to related help.  You can go from the detailed
   help to the user documentation, which describes certain commands more from
   a user perspective and less detailed.  E.g. after: >
   	:help pattern.txt
<   You can see the user guide topics |03.9| and |usr_27.txt| in the
   introduction.

3) Options are enclosed in single apostrophes.  To go to the help topic for the
   list option: >
	:help 'list'
<   If you only know you are looking for a certain option, you can also do: >
	:help options.txt
<   to open the help page which describes all option handling and then search
   using regular expressions, e.g. textwidth.
   Certain options have their own namespace, e.g.: >
   	:help cpo-<letter>
<   for the corresponding flag of the 'cpoptions' settings, substitute <letter>
   by a specific flag, e.g.: >
  	:help cpo-;
<   And for the guioption flags: >
  	:help go-<letter>

4) Normal mode commands do not have a prefix. To go to the help page for the
   "gt" command: >
   	:help gt

5) Insert mode commands start with i_.  Help for deleting a word: >
   	:help i_CTRL-W

6) Visual mode commands start with v_.  Help for jumping to the other side of
   the Visual area: >
   	:help v_o

7) Command line editing and arguments start with c_.  Help for using the
   command argument %: >
   	:help c_%

8) Ex-commands always start with ":", so to go to the :s command help: >
	:help :s

9) Commands specifically for debugging start with ">".  To go to the help
   for the "cont" debug command: >
	:help >cont

10) Key combinations.  They usually start with a single letter indicating
    the mode for which they can be used.  E.g.: >
   	:help i_CTRL-X
<    takes you to the family of Ctrl-X commands for insert mode which can be
    used to auto complete different things.  Note, that certain keys will
    always be written the same, e.g. Control will always be CTRL.
    For normal mode commands there is no prefix and the topic is available at
    :h CTRL-<Letter>. E.g.  >
   	:help CTRL-W
<    In contrast >
	:help c_CTRL-R
<    will describe what the Ctrl-R does when entering commands in the Command
    line and >
   	:help v_Ctrl-A
<    talks about incrementing numbers in visual mode and >
	:help g_CTRL-A
<    talks about the g<C-A> command (e.g. you have to press "g" then <Ctrl-A>).
    Here the "g" stand for the normal command "g" which always expects a second
    key before doing something similar to the commands starting with "z"

11) Regexp items always start with /.  So to get help for the "\+" quantifier
    in Vim regexes: >
   	:help /\+
<    If you need to know everything about regular expressions, start reading
    at: >
   	:help pattern.txt

12) Registers always start with "quote". To find out about the special ":"
    register: >
   	:help quote:

13) Vim script is available at >
	:help eval.txt
<   Certain aspects of the language are available at :h expr-X where "X" is a
   single letter. E.g.  >
   	:help expr-!
<   will take you to the topic describing the "!" (Not) operator for
   VimScript.
   Also important is >
   	:help function-list
<   to find a short description of all functions available.  Help topics for
   Vim script functions always include the "()", so: >
   	:help append()
<   talks about the append Vim script function rather than how to append text
   in the current buffer.

14) Mappings are talked about in the help page :h |map.txt|. Use >
    	:help mapmode-i
<    to find out about the |:imap| command.  Also use :map-topic
    to find out about certain subtopics particular for mappings.  e.g: >
    	:help :map-local
<    for buffer-local mappings or >
	:help map-bar
<    for how the '|' is handled in mappings.

15) Command definitions are talked about :h command-topic, so use >
	:help command-bar
<    to find out about the '!' argument for custom commands.

16) Window management commands always start with CTRL-W, so you find the
    corresponding help at :h CTRL-W_letter.  E.g. >
   	:help CTRL-W_p
<    for moving the previous accessed window.  You can also access >
	:help windows.txt
<    and read your way through if you are looking for window handling
    commands.

17) Use |:helpgrep| to search in all help pages (and also of any installed
    plugins).  See |:helpgrep| for how to use it.
    To search for a topic: >
    	:helpgrep topic
<    This takes you to the first match.  To go to the next one: >
	:cnext
<    All matches are available in the quickfix window which can be opened
    with: >
    	:copen
<    Move around to the match you like and press Enter to jump to that help.

18) The user manual.  This describes help topics for beginners in a rather
    friendly way.  Start at |usr_toc.txt| to find the table of content (as you
    might have guessed): >
    	:help usr_toc.txt
<    Skim over the contents to find interesting topics. The "Digraphs" and
    "Entering special characters" items are in chapter 24, so to go to that
    particular help page: >
    	:help usr_24.txt
<    Also if you want to access a certain chapter in the help, the chapter
    number can be accessed directly like this: >
    	:help 10.1
<    goes to chapter 10.1 in |usr_10.txt| and talks about recording macros.

19) Highlighting groups.  Always start with hl-groupname.  E.g. >
    	:help hl-WarningMsg
<    talks about the WarningMsg highlighting group.

20) Syntax highlighting is namespaced to :syn-topic e.g. >
	:help :syn-conceal
<    talks about the conceal argument for the :syn command.

21) Quickfix commands usually start with :c while location list commands
    usually start with :l

22) Autocommand events can be found by their name: >
     	:help BufWinLeave
<    To see all possible events: >
	:help autocommand-events

23) Command-line switches always start with "-".  So for the help of the -f
    command switch of Vim use: >
    	:help -f

24) Optional features always start with "+".  To find out about the
    conceal feature use: >
    	:help +conceal

25) Documentation for included filetype specific functionality is usually
    available  in the form ft-<filetype>-<functionality>.  So >
    	:help ft-c-syntax
<    talks about the C syntax file and the option it provides.  Sometimes,
    additional sections for omni completion >
    	:help ft-php-omni
<    or filetype plugins >
	:help ft-tex-plugin
<    are available.

26) Error and Warning codes can be looked up directly in the help.  So >
	:help E297
<    takes you exactly to the description of the swap error message and >
	:help W10
<    talks about the warning "Changing a readonly file".
    Sometimes however, those error codes are not described, but rather are
    listed at the Vim command that usually causes this.  So: >
    	:help E128
<    takes you to the |:function| command


==============================================================================

Next chapter: |usr_03.txt|  Moving around

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z\.^C1C1vim80/doc/usr_11.txtnu�[���*usr_11.txt*	For Vim version 8.0.  Last change: 2018 Apr 13

		     VIM USER MANUAL - by Bram Moolenaar

			   Recovering from a crash


Did your computer crash?  And you just spent hours editing?  Don't panic!  Vim
stores enough information to be able to restore most of your work.  This
chapter shows you how to get your work back and explains how the swap file is
used.

|11.1|	Basic recovery
|11.2|	Where is the swap file?
|11.3|	Crashed or not?
|11.4|	Further reading

     Next chapter: |usr_12.txt|  Clever tricks
 Previous chapter: |usr_10.txt|  Making big changes
Table of contents: |usr_toc.txt|

==============================================================================
*11.1*	Basic recovery

In most cases recovering a file is quite simple, assuming you know which file
you were editing (and the harddisk is still working).  Start Vim on the file,
with the "-r" argument added: >

	vim -r help.txt

Vim will read the swap file (used to store text you were editing) and may read
bits and pieces of the original file.  If Vim recovered your changes you will
see these messages (with different file names, of course):

	Using swap file ".help.txt.swp" ~
	Original file "~/vim/runtime/doc/help.txt" ~
	Recovery completed. You should check if everything is OK. ~
	(You might want to write out this file under another name ~
	and run diff with the original file to check for changes) ~
	You may want to delete the .swp file now. ~

To be on the safe side, write this file under another name: >

	:write help.txt.recovered

Compare the file with the original file to check if you ended up with what you
expected.  Vimdiff is very useful for this |08.7|.  For example: >

	:write help.txt.recovered
	:edit #
	:diffsp help.txt

Watch out for the original file to contain a more recent version (you saved
the file just before the computer crashed).  And check that no lines are
missing (something went wrong that Vim could not recover).
   If Vim produces warning messages when recovering, read them carefully.
This is rare though.

If the recovery resulted in text that is exactly the same as the file
contents, you will get this message:

	Using swap file ".help.txt.swp" ~
	Original file "~/vim/runtime/doc/help.txt" ~
	Recovery completed. Buffer contents equals file contents. ~
	You may want to delete the .swp file now. ~

This usually happens if you already recovered your changes, or you wrote the
file after making changes.  It is safe to delete the swap file now.

It is normal that the last few changes can not be recovered.  Vim flushes the
changes to disk when you don't type for about four seconds, or after typing
about two hundred characters.  This is set with the 'updatetime' and
'updatecount' options.  Thus when Vim didn't get a chance to save itself when
the system went down, the changes after the last flush will be lost.

If you were editing without a file name, give an empty string as argument: >

	vim -r ""

You must be in the right directory, otherwise Vim can't find the swap file.

==============================================================================
*11.2*	Where is the swap file?

Vim can store the swap file in several places.  Normally it is in the same
directory as the original file.  To find it, change to the directory of the
file, and use: >

	vim -r

Vim will list the swap files that it can find.  It will also look in other
directories where the swap file for files in the current directory may be
located.  It will not find swap files in any other directories though, it
doesn't search the directory tree.
   The output could look like this:

	Swap files found: ~
	   In current directory: ~
	1.    .main.c.swp ~
		  owned by: mool   dated: Tue May 29 21:00:25 2001 ~
		 file name: ~mool/vim/vim6/src/main.c ~
		  modified: YES ~
		 user name: mool   host name: masaka.moolenaar.net ~
		process ID: 12525 ~
	   In directory ~/tmp: ~
	      -- none -- ~
	   In directory /var/tmp: ~
	      -- none -- ~
	   In directory /tmp: ~
	      -- none -- ~

If there are several swap files that look like they may be the one you want to
use, a list is given of these swap files and you are requested to enter the
number of the one you want to use.  Carefully look at the dates to decide
which one you want to use.
   In case you don't know which one to use, just try them one by one and check
the resulting files if they are what you expected.


USING A SPECIFIC SWAP FILE

If you know which swap file needs to be used, you can recover by giving the
swap file name.  Vim will then finds out the name of the original file from
the swap file.

Example: >
	vim -r .help.txt.swo

This is also handy when the swap file is in another directory than expected.
Vim recognizes files with the pattern *.s[uvw][a-z] as swap files.

If this still does not work, see what file names Vim reports and rename the
files accordingly.  Check the 'directory' option to see where Vim may have
put the swap file.

	Note:
	Vim tries to find the swap file by searching the directories in the
	'dir' option, looking for files that match "filename.sw?".  If
	wildcard expansion doesn't work (e.g., when the 'shell' option is
	invalid), Vim does a desperate try to find the file "filename.swp".
	If that fails too, you will have to give the name of the swapfile
	itself to be able to recover the file.

==============================================================================
*11.3*	Crashed or not?					*ATTENTION* *E325*

Vim tries to protect you from doing stupid things.  Suppose you innocently
start editing a file, expecting the contents of the file to show up.  Instead,
Vim produces a very long message:

		E325: ATTENTION ~
	Found a swap file by the name ".main.c.swp" ~
		  owned by: mool   dated: Tue May 29 21:09:28 2001 ~
		 file name: ~mool/vim/vim6/src/main.c ~
		  modified: no ~
		 user name: mool   host name: masaka.moolenaar.net ~
		process ID: 12559 (still running) ~
	While opening file "main.c" ~
		     dated: Tue May 29 19:46:12 2001 ~
 ~
	(1) Another program may be editing the same file. ~
	    If this is the case, be careful not to end up with two ~
	    different instances of the same file when making changes. ~
	    Quit, or continue with caution. ~
 ~
	(2) An edit session for this file crashed. ~
	    If this is the case, use ":recover" or "vim -r main.c" ~
	    to recover the changes (see ":help recovery"). ~
	    If you did this already, delete the swap file ".main.c.swp" ~
	    to avoid this message. ~

You get this message, because, when starting to edit a file, Vim checks if a
swap file already exists for that file.  If there is one, there must be
something wrong.  It may be one of these two situations.

1. Another edit session is active on this file.  Look in the message for the
   line with "process ID".  It might look like this:

		process ID: 12559 (still running) ~

   The text "(still running)" indicates that the process editing this file
   runs on the same computer.  When working on a non-Unix system you will not
   get this extra hint.  When editing a file over a network, you may not see
   the hint, because the process might be running on another computer.  In
   those two cases you must find out what the situation is yourself.
      If there is another Vim editing the same file, continuing to edit will
   result in two versions of the same file.  The one that is written last will
   overwrite the other one, resulting in loss of changes.  You better quit
   this Vim.

2. The swap file might be the result from a previous crash of Vim or the
   computer.  Check the dates mentioned in the message.  If the date of the
   swap file is newer than the file you were editing, and this line appears:

		modified: YES ~

   Then you very likely have a crashed edit session that is worth recovering.
      If the date of the file is newer than the date of the swap file, then
   either it was changed after the crash (perhaps you recovered it earlier,
   but didn't delete the swap file?), or else the file was saved before the
   crash but after the last write of the swap file (then you're lucky: you
   don't even need that old swap file).  Vim will warn you for this with this
   extra line:

      NEWER than swap file! ~


UNREADABLE SWAP FILE

Sometimes the line

	[cannot be read] ~

will appear under the name of the swap file.  This can be good or bad,
depending on circumstances.

It is good if a previous editing session crashed without having made any
changes to the file.  Then a directory listing of the swap file will show
that it has zero bytes.  You may delete it and proceed.

It is slightly bad if you don't have read permission for the swap file.  You
may want to view the file read-only, or quit.  On multi-user systems, if you
yourself did the last changes under a different login name, a logout
followed by a login under that other name might cure the "read error".  Or
else you might want to find out who last edited (or is editing) the file and
have a talk with them.

It is very bad if it means there is a physical read error on the disk
containing the swap file.  Fortunately, this almost never happens.
You may want to view the file read-only at first (if you can), to see the
extent of the changes that were "forgotten".  If you are the one in charge of
that file, be prepared to redo your last changes.


WHAT TO DO?					*swap-exists-choices*

If dialogs are supported you will be asked to select one of six choices:

  Swap file ".main.c.swp" already exists! ~
  [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort, (D)elete it: ~

O  Open the file readonly.  Use this when you just want to view the file and
   don't need to recover it.  You might want to use this when you know someone
   else is editing the file, but you just want to look in it and not make
   changes.

E  Edit the file anyway.  Use this with caution!  If the file is being edited
   in another Vim, you might end up with two versions of the file.  Vim will
   try to warn you when this happens, but better be safe then sorry.

R  Recover the file from the swap file.  Use this if you know that the swap
   file contains changes that you want to recover.

Q  Quit.  This avoids starting to edit the file.  Use this if there is another
   Vim editing the same file.
      When you just started Vim, this will exit Vim.  When starting Vim with
   files in several windows, Vim quits only if there is a swap file for the
   first one.  When using an edit command, the file will not be loaded and you
   are taken back to the previously edited file.

A  Abort.  Like Quit, but also abort further commands.  This is useful when
   loading a script that edits several files, such as a session with multiple
   windows.

D  Delete the swap file.  Use this when you are sure you no longer need it.
   For example, when it doesn't contain changes, or when the file itself is
   newer than the swap file.
      On Unix this choice is only offered when the process that created the
   swap file does not appear to be running.

If you do not get the dialog (you are running a version of Vim that does not
support it), you will have to do it manually.  To recover the file, use this
command: >

	:recover


Vim cannot always detect that a swap file already exists for a file.  This is
the case when the other edit session puts the swap files in another directory
or when the path name for the file is different when editing it on different
machines.  Therefore, don't rely on Vim always warning you.

If you really don't want to see this message, you can add the 'A' flag to the
'shortmess' option.  But it's very unusual that you need this.

For remarks about encryption and the swap file, see |:recover-crypt|.

==============================================================================
*11.4*	Further reading

|swap-file|	An explanation about where the swap file will be created and
		what its name is.
|:preserve|	Manually flushing the swap file to disk.
|:swapname|	See the name of the swap file for the current file.
'updatecount'	Number of key strokes after which the swap file is flushed to
		disk.
'updatetime'	Timeout after which the swap file is flushed to disk.
'swapsync'	Whether the disk is synced when the swap file is flushed.
'directory'	List of directory names where to store the swap file.
'maxmem'	Limit for memory usage before writing text to the swap file.
'maxmemtot'	Same, but for all files in total.

==============================================================================

Next chapter: |usr_12.txt|  Clever tricks

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
PK�j�Z,���CCvim80/doc/os_risc.txtnu�[���*os_risc.txt*   For Vim version 8.0.  Last change: 2011 May 10


		  VIM REFERENCE MANUAL    by Thomas Leonard


						*riscos* *RISCOS* *RISC-OS*
The RISC OS support has been removed from Vim with patch 7.3.187.
If you would like to use Vim on RISC OS get the files from before that patch.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z�0��)�)vim80/doc/recover.txtnu�[���*recover.txt*   For Vim version 8.0.  Last change: 2014 Mar 27


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Recovery after a crash					*crash-recovery*

You have spent several hours typing in that text that has to be finished
next morning, and then disaster strikes: Your computer crashes.

			DON'T PANIC!

You can recover most of your changes from the files that Vim uses to store
the contents of the file.  Mostly you can recover your work with one command:
	vim -r filename

1. The swap file	|swap-file|
2. Recovery		|recovery|

==============================================================================
1. The swap file					*swap-file*

Vim stores the things you changed in a swap file.  Using the original file
you started from plus the swap file you can mostly recover your work.

You can see the name of the current swap file being used with the command:

	:sw[apname]					*:sw* *:swapname*

The name of the swap file is normally the same as the file you are editing,
with the extension ".swp".
- On Unix, a '.' is prepended to swap file names in the same directory as the
  edited file.  This avoids that the swap file shows up in a directory
  listing.
- On MS-DOS machines and when the 'shortname' option is on, any '.' in the
  original file name is replaced with '_'.
- If this file already exists (e.g., when you are recovering from a crash) a
  warning is given and another extension is used, ".swo", ".swn", etc.
- An existing file will never be overwritten.
- The swap file is deleted as soon as Vim stops editing the file.

Technical: The replacement of '.' with '_' is done to avoid problems with
	   MS-DOS compatible filesystems (e.g., crossdos, multidos).  If Vim
	   is able to detect that the file is on an MS-DOS-like filesystem, a
	   flag is set that has the same effect as the 'shortname' option.
	   This flag is reset when you start editing another file.
							*E326*
	   If the ".swp" file name already exists, the last character is
	   decremented until there is no file with that name or ".saa" is
	   reached.  In the last case, no swap file is created.

By setting the 'directory' option you can place the swap file in another place
than where the edited file is.
Advantages:
- You will not pollute the directories with ".swp" files.
- When the 'directory' is on another partition, reduce the risk of damaging
  the file system where the file is (in a crash).
Disadvantages:
- You can get name collisions from files with the same name but in different
  directories (although Vim tries to avoid that by comparing the path name).
  This will result in bogus ATTENTION warning messages.
- When you use your home directory, and somebody else tries to edit the same
  file, he will not see your swap file and will not get the ATTENTION warning
  message.
On the Amiga you can also use a recoverable ram disk, but there is no 100%
guarantee that this works.  Putting swap files in a normal ram disk (like RAM:
on the Amiga) or in a place that is cleared when rebooting (like /tmp on Unix)
makes no sense, you will lose the swap file in a crash.

If you want to put swap files in a fixed place, put a command resembling the
following ones in your .vimrc:
	:set dir=dh2:tmp	(for Amiga)
	:set dir=~/tmp		(for Unix)
	:set dir=c:\\tmp	(for MS-DOS and Win32)
This is also very handy when editing files on floppy.  Of course you will have
to create that "tmp" directory for this to work!

For read-only files, a swap file is not used.  Unless the file is big, causing
the amount of memory used to be higher than given with 'maxmem' or
'maxmemtot'.  And when making a change to a read-only file, the swap file is
created anyway.

The 'swapfile' option can be reset to avoid creating a swapfile.  And the
|:noswapfile| modifier can be used to not create a swapfile for a new buffer.

:nos[wapfile]   {command}			*:nos* *:noswapfile*
		Execute {command}. If it contains a command that loads a new
		buffer, it will be loaded without creating a swapfile and the
		'swapfile' option will be reset.  If a buffer already had a
		swapfile it is not removed and 'swapfile' is not reset.


Detecting an existing swap file ~

You can find this in the user manual, section |11.3|.


Updating the swapfile ~

The swap file is updated after typing 200 characters or when you have not
typed anything for four seconds.  This only happens if the buffer was
changed, not when you only moved around.  The reason why it is not kept up to
date all the time is that this would slow down normal work too much.  You can
change the 200 character count with the 'updatecount' option.  You can set
the time with the 'updatetime' option.  The time is given in milliseconds.
After writing to the swap file Vim syncs the file to disk.  This takes some
time, especially on busy Unix systems.  If you don't want this you can set the
'swapsync' option to an empty string.  The risk of losing work becomes bigger
though.  On some non-Unix systems (MS-DOS, Amiga) the swap file won't be
written at all.

If the writing to the swap file is not wanted, it can be switched off by
setting the 'updatecount' option to 0.  The same is done when starting Vim
with the "-n" option.  Writing can be switched back on by setting the
'updatecount' option to non-zero.  Swap files will be created for all buffers
when doing this.  But when setting 'updatecount' to zero, the existing swap
files will not be removed, it will only affect files that will be opened
after this.

If you want to make sure that your changes are in the swap file use this
command:

					*:pre* *:preserve* *E313* *E314*
:pre[serve]		Write all text for all buffers into swap file.  The
			original file is no longer needed for recovery.
			This sets a flag in the current buffer.  When the '&'
			flag is present in 'cpoptions' the swap file will not
			be deleted for this buffer when Vim exits and the
			buffer is still loaded |cpo-&|.
			{Vi: might also exit}

A Vim swap file can be recognized by the first six characters: "b0VIM ".
After that comes the version number, e.g., "3.0".


Links and symbolic links ~

On Unix it is possible to have two names for the same file.  This can be done
with hard links and with symbolic links (symlinks).

For hard links Vim does not know the other name of the file.  Therefore, the
name of the swapfile will be based on the name you used to edit the file.
There is no check for editing the same file by the other name too, because Vim
cannot find the other swapfile (except for searching all of your harddisk,
which would be very slow).

For symbolic links Vim resolves the links to find the name of the actual file.
The swap file name is based on that name.  Thus it doesn't matter by what name
you edit the file, the swap file name will normally be the same.  However,
there are exceptions:
- When the directory of the actual file is not writable the swapfile is put
  elsewhere.
- When the symbolic links somehow create a loop you get an *E773* error
  message and the unmodified file name will be used.  You won't be able to
  save your file normally.

==============================================================================
2. Recovery					*recovery* *E308* *E311*

Basic file recovery is explained in the user manual: |usr_11.txt|.

Another way to do recovery is to start Vim and use the ":recover" command.
This is easy when you start Vim to edit a file and you get the "ATTENTION:
Found a swap file ..." message.  In this case the single command ":recover"
will do the work.  You can also give the name of the file or the swap file to
the recover command:
					*:rec* *:recover* *E305* *E306* *E307*
:rec[over] [file]	Try to recover [file] from the swap file.  If [file]
			is not given use the file name for the current
			buffer.  The current contents of the buffer are lost.
			This command fails if the buffer was modified.

:rec[over]! [file]	Like ":recover", but any changes in the current
			buffer are lost.

							*E312* *E309* *E310*
Vim has some intelligence about what to do if the swap file is corrupt in
some way.  If Vim has doubt about what it found, it will give an error
message and insert lines with "???" in the text.  If you see an error message
while recovering, search in the file for "???" to see what is wrong.  You may
want to cut and paste to get the text you need.

The most common remark is "???LINES MISSING".  This means that Vim cannot read
the text from the original file.  This can happen if the system crashed and
parts of the original file were not written to disk.

Be sure that the recovery was successful before overwriting the original
file or deleting the swap file.  It is good practice to write the recovered
file elsewhere and run 'diff' to find out if the changes you want are in the
recovered file.  Or use |:DiffOrig|.

Once you are sure the recovery is ok delete the swap file.  Otherwise, you
will continue to get warning messages that the ".swp" file already exists.

{Vi: recovers in another way and sends mail if there is something to recover}


ENCRYPTION AND THE SWAP FILE				*:recover-crypt*

When the text file is encrypted the swap file is encrypted as well.  This
makes recovery a bit more complicated.  When recovering from a swap file and
encryption has been used, you will be asked to enter one or two crypt keys.

If the text file does not exist you will only be asked to enter the crypt key
for the swap file.

If the text file does exist, it may be encrypted in a different way than the
swap file.  You will be asked for the crypt key twice:

	Need encryption key for "/tmp/tt" ~
	Enter encryption key: ****** ~
	"/tmp/tt" [crypted] 23200L, 522129C ~
	Using swap file "/tmp/.tt.swp" ~
	Original file "/tmp/tt" ~
	Swap file is encrypted: "/tmp/.tt.swp" ~
	If you entered a new crypt key but did not write the text file, ~
	enter the new crypt key. ~
	If you wrote the text file after changing the crypt key press enter ~
	to use the same key for text file and swap file ~
	Enter encryption key:  ~

You can be in one of these two situations:

1. The encryption key was not changed, or after changing the key the text file
   was written.  You will be prompted for the crypt key twice.  The second
   time you can simply press Enter.  That means the same key is used for the
   text file and the swap file.
2. You entered a new encryption key, but did not save the text file.  Vim will
   then use the new key for the swap file, and the text file will still be
   encrypted with the old key.  At the second prompt enter the new key.

Note that after recovery the key of the swap file will be used for the text
file.  Thus if you write the text file, you need to use that new key.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��:�/./.vim80/doc/if_mzsch.txtnu�[���*if_mzsch.txt*  For Vim version 8.0.  Last change: 2017 Oct 08


		  VIM REFERENCE MANUAL    by Sergey Khorev


The MzScheme Interface to Vim				*mzscheme* *MzScheme*

1. Commands				|mzscheme-commands|
2. Examples				|mzscheme-examples|
3. Threads				|mzscheme-threads|
4. Vim access from MzScheme		|mzscheme-vim|
5. mzeval() Vim function		|mzscheme-mzeval|
6. Using Function references		|mzscheme-funcref|
7. Dynamic loading			|mzscheme-dynamic|
8. MzScheme setup			|mzscheme-setup|

{Vi does not have any of these commands}

The MzScheme interface is available only if Vim was compiled with the
|+mzscheme| feature.

Based on the work of Brent Fulgham.
Dynamic loading added by Sergey Khorev

MzScheme and PLT Scheme names have been rebranded as Racket. For more
information please check http://racket-lang.org

Futures and places of Racket version 5.x up to and including 5.3.1 do not
work correctly with processes created by Vim.
The simplest solution is to build Racket on your own with these features
disabled: >
  ./configure --disable-futures --disable-places --prefix=your-install-prefix

To speed up the process, you might also want to use --disable-gracket and
--disable-docs

==============================================================================
1. Commands						*mzscheme-commands*

							*:mzscheme* *:mz*
:[range]mz[scheme] {stmt}
			Execute MzScheme statement {stmt}.  {not in Vi}

:[range]mz[scheme] << {endmarker}
{script}
{endmarker}
			Execute inlined MzScheme script {script}.
			Note: This command doesn't work if the MzScheme
			feature wasn't compiled in.  To avoid errors, see
			|script-here|.

							*:mzfile* *:mzf*
:[range]mzf[ile] {file}	Execute the MzScheme script in {file}.  {not in Vi}

All of these commands do essentially the same thing - they execute a piece of
MzScheme code, with the "current range" set to the given line
range.

In the case of :mzscheme, the code to execute is in the command-line.
In the case of :mzfile, the code to execute is the contents of the given file.

MzScheme interface defines exception exn:vim, derived from exn.
It is raised for various Vim errors.

During compilation, the MzScheme interface will remember the current MzScheme
collection path. If you want to specify additional paths use the
'current-library-collection-paths' parameter. E.g., to cons the user-local
MzScheme collection path: >
    :mz << EOF
    (current-library-collection-paths
	(cons
	    (build-path (find-system-path 'addon-dir) (version) "collects")
	    (current-library-collection-paths)))
    EOF
<

All functionality is provided through module vimext.

The exn:vim is available without explicit import.

To avoid clashes with MzScheme, consider using prefix when requiring module,
e.g.: >
	:mzscheme (require (prefix vim- vimext))
<
All the examples below assume this naming scheme. 

							*mzscheme-sandbox*
When executed in the |sandbox|, access to some filesystem and Vim interface
procedures is restricted.

==============================================================================
2. Examples						*mzscheme-examples*
>
	:mzscheme (display "Hello")
	:mz (display (string-append "Using MzScheme version " (version)))
	:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
	:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
	:mzscheme (vim-set-buff-line 10 "This is line #10")

To see what version of MzScheme you have: >
	:mzscheme (display (version))
<
Inline script usage: >
	function! <SID>SetFirstLine()
	    :mz << EOF
	    (display "!!!")
	    (require (prefix vim- vimext))
	    ; for newer versions (require (prefix-in vim- 'vimext))
	    (vim-set-buff-line 1 "This is line #1")
	    (vim-beep)
	EOF
	endfunction

	nmap <F9> :call <SID>SetFirstLine() <CR>
<
File execution: >
	:mzfile supascript.scm
<
Vim exception handling: >
	:mz << EOF
	(require (prefix vim- vimext))
	; for newer versions (require (prefix-in vim- 'vimext))
	(with-handlers
	  ([exn:vim? (lambda (e) (display (exn-message e)))])
	  (vim-eval "nonsense-string"))
	EOF
<
Auto-instantiation of vimext module (can be placed in your |vimrc|): >
    function! MzRequire()
	:redir => l:mzversion
	:mz (version)
	:redir END
	if strpart(l:mzversion, 1, 1) < "4"
	    " MzScheme versions < 4.x:
	    :mz (require (prefix vim- vimext))
	else
	    " newer versions:
	    :mz (require (prefix-in vim- 'vimext))
	endif
    endfunction

    if has("mzscheme")
	silent call MzRequire()
    endif
<
==============================================================================
3. Threads						*mzscheme-threads*

The MzScheme interface supports threads. They are independent from OS threads,
thus scheduling is required. The option 'mzquantum' determines how often
Vim should poll for available MzScheme threads.
NOTE
Thread scheduling in the console version of Vim is less reliable than in the
GUI version.

==============================================================================
4. Vim access from MzScheme				*mzscheme-vim*

							*mzscheme-vimext*
The 'vimext' module provides access to procedures defined in the MzScheme
interface.

Common
------
    (command {command-string})	    Perform the vim ":Ex" style command.
    (eval {expr-string})	    Evaluate the vim expression into
				    respective MzScheme object: |Lists| are
				    represented as Scheme lists,
				    |Dictionaries| as hash tables,
				    |Funcref|s as functions (see also
				    |mzscheme-funcref|)
				    NOTE the name clashes with MzScheme eval,
				    use module qualifiers to overcome this.
    (range-start)		    Start/End of the range passed with
    (range-end)			    the Scheme command.
    (beep)			    beep
    (get-option {option-name} [buffer-or-window]) Get Vim option value (either
				    local or global, see set-option).
    (set-option {string} [buffer-or-window])
				    Set a Vim option. String must have option
				    setting form (like optname=optval, or
				    optname+=optval, etc.) When called with
				    {buffer} or {window} the local option will
				    be set. The symbol 'global can be passed
				    as {buffer-or-window}. Then |:setglobal|
				    will be used.

Buffers							 *mzscheme-buffer*
-------
    (buff? {object})		    Is object a buffer?
    (buff-valid? {object})	    Is object a valid buffer? (i.e.
				    corresponds to the real Vim buffer)
    (get-buff-line {linenr} [buffer])
				    Get line from a buffer.
    (set-buff-line {linenr} {string} [buffer])
				    Set a line in a buffer. If {string} is #f,
				    the line gets deleted.  The [buffer]
				    argument is optional. If omitted, the
				    current buffer will be used.
    (get-buff-line-list {start} {end} [buffer])
				    Get a list of lines in a buffer. {Start}
				    and {end} are 1-based and inclusive.
    (set-buff-line-list {start} {end} {string-list} [buffer])
				    Set a list of lines in a buffer. If
				    string-list is #f or null, the lines get
				    deleted. If a list is shorter than
				    {end}-{start} the remaining lines will
				    be deleted.
    (get-buff-name [buffer])	    Get a buffer's text name.
    (get-buff-num [buffer])	    Get a buffer's number.
    (get-buff-size [buffer])	    Get buffer line count.
    (insert-buff-line-list {linenr} {string/string-list} [buffer])
				    Insert a list of lines into a buffer after
				    {linenr}. If {linenr} is 0, lines will be
				    inserted at start.
    (curr-buff)			    Get the current buffer. Use other MzScheme
				    interface procedures to change it.
    (buff-count)		    Get count of total buffers in the editor.
    (get-next-buff [buffer])	    Get next buffer.
    (get-prev-buff [buffer])	    Get previous buffer. Return #f when there
				    are no more buffers.
    (open-buff {filename})	    Open a new buffer (for file "name")
    (get-buff-by-name {buffername}) Get a buffer by its filename or #f
					if there is no such buffer.
    (get-buff-by-num {buffernum})   Get a buffer by its number (return #f if
				    there is no buffer with this number).

Windows							    *mzscheme-window*
------
    (win? {object})		    Is object a window?
    (win-valid? {object})	    Is object a valid window (i.e. corresponds
				    to the real Vim window)?
    (curr-win)			    Get the current window.
    (win-count)			    Get count of windows.
    (get-win-num [window])	    Get window number.
    (get-win-by-num {windownum})    Get window by its number.
    (get-win-buffer	[window])   Get the buffer for a given window.
    (get-win-height [window])
    (set-win-height {height} [window])  Get/Set height of window.
    (get-win-width [window])
    (set-win-width {width} [window])Get/Set width of window.
    (get-win-list [buffer])	    Get list of windows for a buffer.
    (get-cursor [window])	    Get cursor position in a window as
				    a pair (linenr . column).
    (set-cursor (line . col) [window])  Set cursor position.

==============================================================================
5. mzeval() Vim function				    *mzscheme-mzeval*

To facilitate bi-directional interface, you can use |mzeval()| function to
evaluate MzScheme expressions and pass their values to Vim script.

==============================================================================
6. Using Function references				    *mzscheme-funcref*

MzScheme interface allows use of |Funcref|s so you can call Vim functions
directly from Scheme. For instance: >
    function! MyAdd2(arg)
	return a:arg + 2
    endfunction
    mz (define f2 (vim-eval "function(\"MyAdd2\")"))
    mz (f2 7)
< or : >
    :mz (define indent (vim-eval "function('indent')"))
    " return Vim indent for line 12
    :mz (indent 12)
<

==============================================================================
7. Dynamic loading				*mzscheme-dynamic* *E815*

On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|.

This means that Vim will search for the MzScheme DLL files only when needed.
When you don't use the MzScheme interface you don't need them, thus you can
use Vim without these DLL files.
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
initialisation via scheme_main_setup.  So Vim always loads the MzScheme DLL at
startup if possible.  This may make Vim startup slower.

To use the MzScheme interface the MzScheme DLLs must be in your search path.
In a console window type "path" to see what directories are used.

On MS-Windows the options 'mzschemedll' and 'mzschemegcdll' are used for the
name of the library to load.  The initial value is specified at build time.

The version of the DLL must match the MzScheme version Vim was compiled with.
For MzScheme version 209 they will be "libmzsch209_000.dll" and
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
command, look for -DDYNAMIC_MZSCH_DLL="something" and
-DDYNAMIC_MZGC_DLL="something" in the "Compilation" info.

For example, if MzScheme (Racket) is installed at C:\Racket63, you may need
to set the environment variable as the following: >

  PATH=%PATH%;C:\Racket63\lib
  PLTCOLLECTS=C:\Racket63\collects
  PLTCONFIGDIR=C:\Racket63\etc
<
==============================================================================
8. MzScheme setup				    *mzscheme-setup* *E895*

Vim requires "racket/base" module for if_mzsch core (fallback to "scheme/base"
if it doesn't exist), "r5rs" module for test and "raco ctool" command for
building Vim.  If MzScheme did not have them, you can install them with
MzScheme's raco command:
>
  raco pkg install scheme-lib       # scheme/base module
  raco pkg install r5rs-lib         # r5rs module
  raco pkg install cext-lib         # raco ctool command
<
======================================================================
  vim:tw=78:ts=8:sts=4:ft=help:norl:
PK�j�ZY�B<�<�vim80/doc/vi_diff.txtnu�[���*vi_diff.txt*   For Vim version 8.0.  Last change: 2016 Aug 16


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Differences between Vim and Vi				*vi-differences*

Throughout the help files differences between Vim and Vi/Ex are given in
curly braces, like "{not in Vi}".  This file only lists what has not been
mentioned in other files and gives an overview.

Vim is mostly POSIX 1003.2-1 compliant.  The only command known to be missing
is ":open".  There are probably a lot of small differences (either because Vim
is missing something or because Posix is beside the mark).

1. Simulated command			|simulated-command|
2. Missing options			|missing-options|
3. Limits				|limits|
4. The most interesting additions	|vim-additions|
5. Other vim features			|other-features|
6. Command-line arguments		|cmdline-arguments|
7. POSIX compliance			|posix-compliance|

==============================================================================
1. Simulated command					*simulated-command*

This command is in Vi, but Vim only simulates it:

							*:o* *:op* *:open*
:[range]o[pen]			Works like |:visual|: end Ex mode.
				{Vi: start editing in open mode}

:[range]o[pen] /pattern/	As above, additionally move the cursor to the
				column where "pattern" matches in the cursor
				line.

Vim does not support open mode, since it's not really useful.  For those
situations where ":open" would start open mode Vim will leave Ex mode, which
allows executing the same commands, but updates the whole screen instead of
only one line.

==============================================================================
2. Missing options					*missing-options*

These options are in the Unix Vi, but not in Vim.  If you try to set one of
them you won't get an error message, but the value is not used and cannot be
printed.

autoprint (ap)		boolean	(default on)		*'autoprint'* *'ap'*
beautify (bf)		boolean	(default off)		*'beautify'* *'bf'*
flash (fl)		boolean	(default ??)		*'flash'* *'fl'*
graphic (gr)		boolean	(default off)		*'graphic'* *'gr'*
hardtabs (ht)		number	(default 8)		*'hardtabs'* *'ht'*
	number of spaces that a <Tab> moves on the display
mesg			boolean	(default on)		*'mesg'*
novice			boolean	(default off)		*'novice'*
open			boolean	(default on)		*'open'*
optimize (op)		boolean	(default off)		*'optimize'* *'op'*
redraw			boolean	(default off)		*'redraw'*
slowopen (slow)		boolean	(default off)		*'slowopen'* *'slow'*
sourceany		boolean	(default off)		*'sourceany'*
w300			number	(default 23)		*'w300'*
w1200			number	(default 23)		*'w1200'*
w9600			number	(default 23)		*'w9600'*

==============================================================================
3. Limits						*limits*

Vim has only a few limits for the files that can be edited {Vi: can not handle
<Nul> characters and characters above 128, has limited line length, many other
limits}.
							*E340*
Maximum line length	   On machines with 16-bit ints (Amiga and MS-DOS real
			   mode): 32767, otherwise 2147483647 characters.
			   Longer lines are split.
Maximum number of lines	   2147483647 lines.
Maximum file size	   2147483647 bytes (2 Gbyte) when a long integer is
			   32 bits.  Much more for 64 bit longs.  Also limited
			   by available disk space for the |swap-file|.
							*E75*
Length of a file path	   Unix and Win32: 1024 characters, otherwise 256
			   characters (or as much as the system supports).
Length of an expanded string option
			   Unix and Win32: 1024 characters, otherwise 256
			   characters
Maximum display width	   Unix and Win32: 1024 characters, otherwise 255
			   characters
Maximum lhs of a mapping   50 characters.
Number of different highlighting types: over 30000
Range of a Number variable:  -2147483648 to 2147483647 (might be more on 64
			   bit systems)
Maximum length of a line in a tags file: 512 bytes.

Information for undo and text in registers is kept in memory, thus when making
(big) changes the amount of (virtual) memory available limits the number of
undo levels and the text that can be kept in registers.  Other things are also
kept in memory:  Command-line history, error messages for Quickfix mode, etc.

Memory usage limits
-------------------

The option 'maxmem' ('mm') is used to set the maximum memory used for one
buffer (in kilobytes).  'maxmemtot' is used to set the maximum memory used for
all buffers (in kilobytes).  The defaults depend on the system used.  For the
Amiga and MS-DOS, 'maxmemtot' is set depending on the amount of memory
available.
These are not hard limits, but tell Vim when to move text into a swap file.
If you don't like Vim to swap to a file, set 'maxmem' and 'maxmemtot' to a
very large value.  The swap file will then only be used for recovery.  If you
don't want a swap file at all, set 'updatecount' to 0, or use the "-n"
argument when starting Vim.

==============================================================================
4. The most interesting additions			*vim-additions*

Vi compatibility.					|'compatible'|
	Although Vim is 99% Vi compatible, some things in Vi can be
	considered to be a bug, or at least need improvement.  But still, Vim
	starts in a mode which behaves like the "real" Vi as much as possible.
	To make Vim behave a little bit better, try resetting the 'compatible'
	option:
		:set nocompatible
	Or start Vim with the "-N" argument:
		vim -N
	Vim starts with 'nocompatible' automatically if you have a .vimrc
	file.  See |startup|.
	The 'cpoptions' option can be used to set Vi compatibility on/off for
	a number of specific items.

Support for different systems.
	Vim can be used on:
	- All Unix systems (it works on all systems it was tested on, although
	  the GUI and Perl interface may not work everywhere).
	- Amiga (500, 1000, 1200, 2000, 3000, 4000, ...).
	- MS-DOS in real-mode (no additional drivers required).
	- In protected mode on Windows 3.1 and MS-DOS (DPMI driver required).
	- Windows 95 and Windows NT, with support for long file names.
	- OS/2 (needs emx.dll)
	- Atari MiNT
	- VMS
	- BeOS
	- Macintosh
	- Risc OS
	- IBM OS/390
	Note that on some systems features need to be disabled to reduce
	resource usage, esp. on MS-DOS.  For some outdated systems you need to
	use an older Vim version.

Multi level persistent undo.					|undo|
	'u' goes backward in time, 'CTRL-R' goes forward again.  Set option
	'undolevels' to the number of changes to be remembered (default 1000).
	Set 'undolevels' to 0 for a Vi-compatible one level undo.  Set it to
	-1 for no undo at all.
	When all changes in a buffer have been undone, the buffer is not
	considered changed anymore.  You can exit it with :q, without <!>.
	When undoing a few changes and then making a new change Vim will
	create a branch in the undo tree.  This means you can go back to any
	state of the text, there is no risk of a change causing text to be
	lost forever. |undo-tree|
	The undo information is stored in a file when the 'undofile' option is
	set.  This means you can exit Vim, start Vim on a previously edited
	file and undo changes that were made before exiting Vim.

Graphical User Interface (GUI).				|gui|
	Included support for GUI: menu's, mouse, scrollbars, etc.  You can
	define your own menus.  Better support for CTRL/SHIFT/ALT keys in
	combination with special keys and mouse.  Supported for various
	platforms, such as X11 (with Motif and Athena interfaces), GTK, Win32
	(Windows 95 and later), BeOS, Amiga and Macintosh.

Multiple windows and buffers.				|windows.txt|
	Vim can split the screen into several windows, each editing a
	different buffer or the same buffer at a different location.  Buffers
	can still be loaded (and changed) but not displayed in a window.  This
	is called a hidden buffer.  Many commands and options have been added
	for this facility.
	Vim can also use multiple tab pages, each with one or more windows.  A
	line with tab labels can be used to quickly switch between these pages.
	|tab-page|

Syntax highlighting.					|:syntax|
	Vim can highlight keywords, patterns and other things.  This is
	defined by a number of |:syntax| commands, and can be made to
	highlight most languages and file types.  A number of files are
	included for highlighting the most common languages, like C, C++,
	Java, Pascal, Makefiles, shell scripts, etc.  The colors used for
	highlighting can be defined for ordinary terminals, color terminals
	and the GUI with the |:highlight| command.  A convenient way to do
	this is using a |:colorscheme| command.
	The highlighted text can be exported as HTML. |convert-to-HTML|
	Other items that can be highlighted are matches with the search string
	|'hlsearch'|, matching parens |matchparen| and the cursor line and
	column |'cursorline'| |'cursorcolumn'|.

Spell checking.						|spell|
	When the 'spell' option is set Vim will highlight spelling mistakes.
	About 50 languages are currently supported, selected with the
	'spelllang' option.  In source code only comments and strings are
	checked for spelling.

Folding.						|folding|
	A range of lines can be shown as one "folded" line.  This allows
	overviewing a file and moving blocks of text around quickly.
	Folds can be created manually, from the syntax of the file, by indent,
	etc.

Diff mode.						|diff|
	Vim can show two versions of a file with the differences highlighted.
	Parts of the text that are equal are folded away.  Commands can be
	used to move text from one version to the other.

Plugins.						|add-plugin|
	The functionality can be extended by dropping a plugin file in the
	right directory.  That's an easy way to start using Vim scripts
	written by others.  Plugins can be for all kind of files, or
	specifically for a filetype.
	Packages make this even easier. |packages|

Asynchronous communication and timers.			|channel| |job| |timer|
	Vim can exchange messages with other processes in the background.
	This makes it possible to have servers do work and send back the
	results to Vim. |channel|
	Vim can start a job, communicate with it and stop it. |job|
	Timers can fire once or repeatedly and invoke a function to do any
	work. |timer|

Repeat a series of commands.				|q|
	"q{c}" starts recording typed characters into named register {c}.
	A subsequent "q" stops recording.  The register can then be executed
	with the "@{c}" command.  This is very useful to repeat a complex
	action.

Flexible insert mode.					|ins-special-special|
	The arrow keys can be used in insert mode to move around in the file.
	This breaks the insert in two parts as far as undo and redo is
	concerned.

	CTRL-O can be used to execute a single Normal mode command.  This is
	almost the same as hitting <Esc>, typing the command and doing |a|.

Visual mode.						|Visual-mode|
	Visual mode can be used to first highlight a piece of text and then
	give a command to do something with it.  This is an (easy to use)
	alternative to first giving the operator and then moving to the end of
	the text to be operated upon.
	|v| and |V| are used to start Visual mode.  |v| works on characters
	and |V| on lines.  Move the cursor to extend the Visual area.  It is
	shown highlighted on the screen.  By typing "o" the other end of the
	Visual area can be moved.  The Visual area can be affected by an
	operator:
		d	delete
		c	change
		y	yank
		> or <	insert or delete indent
		!	filter through external program
		=	filter through indent
		:	start |:| command for the Visual lines.
		gq	format text to 'textwidth' columns
		J	join lines
		~	swap case
		u	make lowercase
		U	make uppercase

Block operators.					|visual-block|
	With Visual mode a rectangular block of text can be selected.  Start
	Visual mode with CTRL-V.  The block can be deleted ("d"), yanked ("y")
	or its case can be changed ("~", "u" and "U").  A deleted or yanked
	block can be put into the text with the "p" and "P" commands.

Help system.						|:help|
	Help is displayed in a window.  The usual commands can be used to
	move around, search for a string, etc.  Tags can be used to jump
	around in the help files, just like hypertext links.  The |:help|
	command takes an argument to quickly jump to the info on a subject.
	<F1> is the quick access to the help system.  The name of the help
	index file can be set with the 'helpfile' option.

Command-line editing and history.			|cmdline-editing|
	You can insert or delete at any place in the command-line using the
	cursor keys.  The right/left cursor keys can be used to move
	forward/backward one character.  The shifted right/left cursor keys
	can be used to move forward/backward one word.  CTRL-B/CTRL-E can be
	used to go to the begin/end of the command-line.
							|cmdline-history|
	The command-lines are remembered.  The up/down cursor keys can be used
	to recall previous command-lines.  The 'history' option can be set to
	the number of lines that will be remembered.  There is a separate
	history for commands and for search patterns.

Command-line completion.				|cmdline-completion|
	While entering a command-line (on the bottom line of the screen)
	<Tab> can be typed to complete
	   what		example		~
	- command	:e<Tab>
	- tag		:ta scr<Tab>
	- option	:set sc<Tab>
	- option value  :set hf=<Tab>
	- file name	:e ve<Tab>
	- etc.

	If there are multiple matches, CTRL-N (next) and CTRL-P (previous)
	will walk through the matches.  <Tab> works like CTRL-N, but wraps
	around to the first match.

	The 'wildchar' option can be set to the character for command-line
	completion, <Tab> is the default.  CTRL-D can be typed after an
	(incomplete) wildcard; all matches will be listed.  CTRL-A will insert
	all matches.  CTRL-L will insert the longest common part of the
	matches.

Insert-mode completion.					|ins-completion|
	In Insert mode the CTRL-N and CTRL-P keys can be used to complete a
	word that appears elsewhere.	|i_CTRL-N|
	With CTRL-X another mode is entered, through which completion can be
	done for:
	|i_CTRL-X_CTRL-F|	file names
	|i_CTRL-X_CTRL-K|	words from 'dictionary' files
	|i_CTRL-X_CTRL-T|	words from 'thesaurus' files
	|i_CTRL-X_CTRL-I|	words from included files
	|i_CTRL-X_CTRL-L|	whole lines
	|i_CTRL-X_CTRL-]|	words from the tags file
	|i_CTRL-X_CTRL-D|	definitions or macros
	|i_CTRL-X_CTRL-O|	Omni completion: clever completion
				specifically for a file type
	etc.

Long line support.					|'wrap'| |'linebreak'|
	If the 'wrap' option is off, long lines will not wrap and only part
	of them will be shown.  When the cursor is moved to a part that is not
	shown, the screen will scroll horizontally.  The minimum number of
	columns to scroll can be set with the 'sidescroll' option.  The |zh|
	and |zl| commands can be used to scroll sideways.
	Alternatively, long lines are broken in between words when the
	'linebreak' option is set.  This allows editing a single-line
	paragraph conveniently (e.g. when the text is later read into a DTP
	program).  Move the cursor up/down with the |gk| and |gj| commands.

Text formatting.					|formatting|
	The 'textwidth' option can be used to automatically limit the line
	length.  This supplements the 'wrapmargin' option of Vi, which was not
	very useful.  The |gq| operator can be used to format a piece of text
	(for example, |gqap| formats the current paragraph).  Commands for
	text alignment: |:center|, |:left| and |:right|.

Extended search patterns.				|pattern|
	There are many extra items to match various text items.  Examples:
	A "\n" can be used in a search pattern to match a line break.
	"x\{2,4}" matches "x" 2 to 4 times.
	"\s" matches a white space character.

Directory, remote and archive browsing.			|netrw|
	Vim can browse the file system.  Simply edit a directory.  Move around
	in the list with the usual commands and press <Enter> to go to the
	directory or file under the cursor.
	This also works for remote files over ftp, http, ssh, etc.
	Zip and tar archives can also be browsed. |tar| |zip|

Edit-compile-edit speedup.				|quickfix|
	The |:make| command can be used to run the compilation and jump to the
	first error.  A file with compiler error messages is interpreted.  Vim
	jumps to the first error.

	Each line in the error file is scanned for the name of a file, line
	number and error message.  The 'errorformat' option can be set to a
	list of scanf-like strings to handle output from many compilers.

	The |:cn| command can be used to jump to the next error.
	|:cl| lists all the error messages.  Other commands are available.
	The 'makeef' option has the name of the file with error messages.
	The 'makeprg' option contains the name of the program to be executed
	with the |:make| command.
	The 'shellpipe' option contains the string to be used to put the
	output of the compiler into the errorfile.

Finding matches in files.				|:vimgrep|
	Vim can search for a pattern in multiple files.  This uses the
	advanced Vim regexp pattern, works on all systems and also works to
	search in compressed files.

Improved indenting for programs.			|'cindent'|
	When the 'cindent' option is on the indent of each line is
	automatically adjusted.  C syntax is mostly recognized.  The indent
	for various styles can be set with 'cinoptions'.  The keys to trigger
	indenting can be set with 'cinkeys'.

	Comments can be automatically formatted.  The 'comments' option can be
	set to the characters that start and end a comment.  This works best
	for C code, but also works for e-mail (">" at start of the line) and
	other types of text.  The |=| operator can be used to re-indent
	lines.

	For many other languages an indent plugin is present to support
	automatic indenting. |30.3|

Searching for words in included files.			|include-search|
	The |[i| command can be used to search for a match of the word under
	the cursor in the current and included files.  The 'include' option
	can be set to a pattern that describes a command to include a file
	(the default is for C programs).
	The |[I| command lists all matches, the |[_CTRL-I| command jumps to
	a match.
	The |[d|, |[D| and |[_CTRL-D| commands do the same, but only for
	lines where the pattern given with the 'define' option matches.

Automatic commands.					|autocommand|
	Commands can be automatically executed when reading a file, writing a
	file, jumping to another buffer, etc., depending on the file name.
	This is useful to set options and mappings for C programs,
	documentation, plain text, e-mail, etc.  This also makes it possible
	to edit compressed files.

Scripts and Expressions.				|expression|
	Commands have been added to form up a powerful script language.
	|:if|		Conditional execution, which can be used for example
			to set options depending on the value of $TERM.
	|:while|	Repeat a number of commands.
	|:for|		Loop over a list.
	|:echo|		Print the result of an expression.
	|:let|		Assign a value to an internal variable, option, etc.
			Variable types are Number, String, List and Dictionary.
	|:execute|	Execute a command formed by an expression.
	|:try|		Catch exceptions.
	etc., etc.  See |eval|.
	Debugging and profiling are supported. |debug-scripts| |profile|
	If this is not enough, an interface is provided to |Python|, |Ruby|,
	|Tcl|, |Lua|, |Perl| and |MzScheme|.

Viminfo.						|viminfo-file|
	The command-line history, marks and registers can be stored in a file
	that is read on startup.  This can be used to repeat a search command
	or command-line command after exiting and restarting Vim.  It is also
	possible to jump right back to where the last edit stopped with |'0|.
	The 'viminfo' option can be set to select which items to store in the
	.viminfo file.  This is off by default.

Printing.						|printing|
	The |:hardcopy| command sends text to the printer.  This can include
	syntax highlighting.

Mouse support.						|mouse-using|
	The mouse is supported in the GUI version, in an xterm for Unix, for
	BSDs with sysmouse, for Linux with gpm, for MS-DOS, and Win32.  It
	can be used to position the cursor, select the visual area, paste a
	register, etc.

Usage of key names.					|<>| |key-notation|
	Special keys now all have a name like <Up>, <End>, etc.
	This name can be used in mappings, to make it easy to edit them.

Editing binary files.					|edit-binary|
	Vim can edit binary files.  You can change a few characters in an
	executable file, without corrupting it.  Vim doesn't remove NUL
	characters (they are represented as <NL> internally).
	|-b|		command-line argument to start editing a binary file
	|'binary'|	Option set by |-b|.  Prevents adding an <EOL> for the
			last line in the file.

Multi-language support.					|multi-lang|
	Files in double-byte or multi-byte encodings can be edited.  There is
	UTF-8 support to be able to edit various languages at the same time,
	without switching fonts. |UTF-8|
	Messages and menus are available in different languages.

Move cursor beyond lines.
	When the 'virtualedit' option is set the cursor can move all over the
	screen, also where there is no text.  This is useful to edit tables
	and figures easily.

==============================================================================
5. Other vim features					*other-features*

A random collection of nice extra features.


When Vim is started with "-s scriptfile", the characters read from
"scriptfile" are treated as if you typed them.  If end of file is reached
before the editor exits, further characters are read from the console.

The "-w" option can be used to record all typed characters in a script file.
This file can then be used to redo the editing, possibly on another file or
after changing some commands in the script file.

The "-o" option opens a window for each argument.  "-o4" opens four windows.

Vi requires several termcap entries to be able to work full-screen.  Vim only
requires the "cm" entry (cursor motion).


In command mode:

When the 'showcmd' option is set, the command characters are shown in the last
line of the screen.  They are removed when the command is finished.

If the 'ruler' option is set, the current cursor position is shown in the
last line of the screen.

"U" still works after having moved off the last changed line and after "u".

Characters with the 8th bit set are displayed.  The characters between '~' and
0xa0 are displayed as "~?", "~@", "~A", etc., unless they are included in the
'isprint' option.

"][" goes to the next ending of a C function ('}' in column 1).
"[]" goes to the previous ending of a C function ('}' in column 1).

"]f", "[f" and "gf" start editing the file whose name is under the cursor.
CTRL-W f splits the window and starts editing the file whose name is under
the cursor.

"*" searches forward for the identifier under the cursor, "#" backward.
"K" runs the program defined by the 'keywordprg' option, with the identifier
under the cursor as argument.

"%" can be preceded with a count.  The cursor jumps to the line that
percentage down in the file.  The normal "%" function to jump to the matching
brace skips braces inside quotes.

With the CTRL-] command, the cursor may be in the middle of the identifier.

The used tags are remembered.  Commands that can be used with the tag stack
are CTRL-T, ":pop" and ":tag".  ":tags" lists the tag stack.

The 'tags' option can be set to a list of tag file names.  Thus multiple
tag files can be used.  For file names that start with "./", the "./" is
replaced with the path of the current file.  This makes it possible to use a
tags file in the same directory as the file being edited.

Previously used file names are remembered in the alternate file name list.
CTRL-^ accepts a count, which is an index in this list.
":files" command shows the list of alternate file names.
"#<N>" is replaced with the <N>th alternate file name in the list.
"#<" is replaced with the current file name without extension.

Search patterns have more features.  The <NL> character is seen as part of the
search pattern and the substitute string of ":s".  Vi sees it as the end of
the command.

Searches can put the cursor on the end of a match and may include a character
offset.

Count added to "~", ":next", ":Next", "n" and "N".

The command ":next!" with 'autowrite' set does not write the file.  In vi the
file was written, but this is considered to be a bug, because one does not
expect it and the file is not written with ":rewind!".

In Vi when entering a <CR> in replace mode deletes a character only when 'ai'
is set (but does not show it until you hit <Esc>).  Vim always deletes a
character (and shows it immediately).

Added :wnext command.  Same as ":write" followed by ":next".

The ":w!" command always writes, also when the file is write protected.  In Vi
you would have to do ":!chmod +w %:S" and ":set noro".

When 'tildeop' has been set, "~" is an operator (must be followed by a
movement command).

With the "J" (join) command you can reset the 'joinspaces' option to have only
one space after a period (Vi inserts two spaces).

"cw" can be used to change white space formed by several characters (Vi is
confusing: "cw" only changes one space, while "dw" deletes all white space).

"o" and "O" accept a count for repeating the insert (Vi clears a part of
display).

Flags after Ex commands not supported (no plans to include it).

On non-UNIX systems ":cd" command shows current directory instead of going to
the home directory (there isn't one).  ":pwd" prints the current directory on
all systems.

After a ":cd" command the file names (in the argument list, opened files)
still point to the same files.  In Vi ":cd" is not allowed in a changed file;
otherwise the meaning of file names change.

":source!" command reads Vi commands from a file.

":mkexrc" command writes current modified options and mappings to a ".exrc"
file.  ":mkvimrc" writes to a ".vimrc" file.

No check for "tail recursion" with mappings.  This allows things like
":map! foo ^]foo".

When a mapping starts with number, vi loses the count typed before it (e.g.
when using the mapping ":map g 4G" the command "7g" goes to line 4).  This is
considered a vi bug.  Vim concatenates the counts (in the example it becomes
"74G"), as most people would expect.

The :put! command inserts the contents of a register above the current line.

The "p" and "P" commands of vi cannot be repeated with "." when the putted
text is less than a line.  In Vim they can always be repeated.

":noremap" command can be used to enter a mapping that will not be remapped.
This is useful to exchange the meaning of two keys.  ":cmap", ":cunmap" and
":cnoremap" can be used for mapping in command-line editing only.  ":imap",
":iunmap" and ":inoremap" can be used for mapping in insert mode only.
Similar commands exist for abbreviations: ":noreabbrev", ":iabbrev"
":cabbrev", ":iunabbrev", ":cunabbrev", ":inoreabbrev", ":cnoreabbrev".

In Vi the command ":map foo bar" would remove a previous mapping
":map bug foo".  This is considered a bug, so it is not included in Vim.
":unmap! foo" does remove ":map! bug foo", because unmapping would be very
difficult otherwise (this is vi compatible).

The ':' register contains the last command-line.
The '%' register contains the current file name.
The '.' register contains the last inserted text.

":dis" command shows the contents of the yank registers.

CTRL-O/CTRL-I can be used to jump to older/newer positions.  These are the
same positions as used with the '' command, but may be in another file.  The
":jumps" command lists the older positions.

If the 'shiftround' option is set, an indent is rounded to a multiple of
'shiftwidth' with ">" and "<" commands.

The 'scrolljump' option can be set to the minimum number of lines to scroll
when the cursor gets off the screen.  Use this when scrolling is slow.

The 'scrolloff' option can be set to the minimum number of lines to keep
above and below the cursor.  This gives some context to where you are
editing.  When set to a large number the cursor line is always in the middle
of the window.

Uppercase marks can be used to jump between files.  The ":marks" command lists
all currently set marks.  The commands "']" and "`]" jump to the end of the
previous operator or end of the text inserted with the put command.  "'[" and
"`[" do jump to the start.

The 'shelltype' option can be set to reflect the type of shell used on the
Amiga.

The 'highlight' option can be set for the highlight mode to be used for
several commands.

The CTRL-A (add) and CTRL-X (subtract) commands are new.  The count to the
command (default 1) is added to/subtracted from the number at or after the
cursor.  That number may be decimal, octal (starts with a '0') or hexadecimal
(starts with '0x').  Very useful in macros.

With the :set command the prefix "inv" can be used to invert boolean options.

In both Vi and Vim you can create a line break with the ":substitute" command
by using a CTRL-M.  For Vi this means you cannot insert a real CTRL-M in the
text.  With Vim you can put a real CTRL-M in the text by preceding it with a
CTRL-V.


In Insert mode:

If the 'revins' option is set, insert happens backwards.  This is for typing
Hebrew.  When inserting normal characters the cursor will not be shifted and
the text moves rightwards.  Backspace, CTRL-W and CTRL-U will also work in
the opposite direction.  CTRL-B toggles the 'revins' option.  In replace mode
'revins' has no effect.  Only when enabled at compile time.

The backspace key can be used just like CTRL-D to remove auto-indents.

You can backspace, CTRL-U and CTRL-W over line breaks if the 'backspace' (bs)
option includes "eol".  You can backspace over the start of insert if the
'backspace' option includes "start".

When the 'paste' option is set, a few options are reset and mapping in insert
mode and abbreviation are disabled.  This allows for pasting text in windowing
systems without unexpected results.  When the 'paste' option is reset, the old
option values are restored.

CTRL-T/CTRL-D always insert/delete an indent in the current line, no matter
what column the cursor is in.

CTRL-@ (insert previously inserted text) works always (Vi: only when typed as
first character).

CTRL-A works like CTRL-@ but does not leave insert mode.

CTRL-R {0-9a-z..} can be used to insert the contents of a register.

When the 'smartindent' option is set, C programs will be better auto-indented.
With 'cindent' even more.

CTRL-Y and CTRL-E can be used to copy a character from above/below the
current cursor position.

After CTRL-V you can enter a three digit decimal number.  This byte value is
inserted in the text as a single character.  Useful for international
characters that are not on your keyboard.

When the 'expandtab' (et) option is set, a <Tab> is expanded to the
appropriate number of spaces.

The window always reflects the contents of the buffer (Vi does not do this
when changing text and in some other cases).

If Vim is compiled with DIGRAPHS defined, digraphs are supported.  A set of
normal digraphs is included.  They are shown with the ":digraph" command.
More can be added with ":digraph {char1}{char2} {number}".  A digraph is
entered with "CTRL-K {char1} {char2}" or "{char1} BS {char2}" (only when
'digraph' option is set).

When repeating an insert, e.g. "10atest <Esc>" vi would only handle wrapmargin
for the first insert.  Vim does it for all.

A count to the "i" or "a" command is used for all the text.  Vi uses the count
only for one line.  "3iabc<NL>def<Esc>" would insert "abcabcabc<NL>def" in Vi
but "abc<NL>defabc<NL>defabc<NL>def" in Vim.


In Command-line mode:

<Esc> terminates the command-line without executing it.  In vi the command
line would be executed, which is not what most people expect (hitting <Esc>
should always get you back to command mode).  To avoid problems with some
obscure macros, an <Esc> in a macro will execute the command.  If you want a
typed <Esc> to execute the command like vi does you can fix this with
	":cmap ^V<Esc> ^V<CR>"

General:

The 'ttimeout' option is like 'timeout', but only works for cursor and
function keys, not for ordinary mapped characters.  The 'timeoutlen' option
gives the number of milliseconds that is waited for.  If the 'esckeys' option
is not set, cursor and function keys that start with <Esc> are not recognized
in insert mode.

There is an option for each terminal string.  Can be used when termcap is not
supported or to change individual strings.

The 'fileformat' option can be set to select the <EOL>: "dos" <CR><NL>, "unix"
<NL> or "mac" <CR>.
When the 'fileformats' option is not empty, Vim tries to detect the type of
<EOL> automatically.  The 'fileformat' option is set accordingly.

On systems that have no job control (older Unix systems and non-Unix systems)
the CTRL-Z, ":stop" or ":suspend" command starts a new shell.

If Vim is started on the Amiga without an interactive window for output, a
window is opened (and :sh still works).  You can give a device to use for
editing with the |-d| argument, e.g. "-d con:20/20/600/150".

The 'columns' and 'lines' options are used to set or get the width and height
of the display.

Option settings are read from the first and last few lines of the file.
Option 'modelines' determines how many lines are tried (default is 5).  Note
that this is different from the Vi versions that can execute any Ex command
in a modeline (a major security problem).  |trojan-horse|

If the 'insertmode' option is set (e.g. in .exrc), Vim starts in insert mode.
And it comes back there, when pressing <Esc>.

Undo information is kept in memory.  Available memory limits the number and
size of change that can be undone.  This may be a problem with MS-DOS, is
hardly a problem on the Amiga and almost never with Unix and Win32.

If the 'backup' or 'writebackup' option is set: Before a file is overwritten,
a backup file (.bak) is made.  If the "backup" option is set it is left
behind.

Vim creates a file ending in ".swp" to store parts of the file that have been
changed or that do not fit in memory.  This file can be used to recover from
an aborted editing session with "vim -r file".  Using the swap file can be
switched off by setting the 'updatecount' option to 0 or starting Vim with
the "-n" option.  Use the 'directory' option for placing the .swp file
somewhere else.

Vim is able to work correctly on filesystems with 8.3 file names, also when
using messydos or crossdos filesystems on the Amiga, or any 8.3 mounted
filesystem under Unix.  See |'shortname'|.

Error messages are shown at least one second (Vi overwrites error messages).

If Vim gives the |hit-enter| prompt, you can hit any key.  Characters other
than <CR>, <NL> and <Space> are interpreted as the (start of) a command.  (Vi
only accepts a command starting with ':').

The contents of the numbered and unnamed registers is remembered when
changing files.

The "No lines in buffer" message is a normal message instead of an error
message, since that may cause a mapping to be aborted.

The AUX: device of the Amiga is supported.

==============================================================================
6. Command-line arguments				*cmdline-arguments*

Different versions of Vi have different command-line arguments.  This can be
confusing.  To help you, this section gives an overview of the differences.

Five variants of Vi will be considered here:
	Elvis	Elvis version 2.1b
	Nvi	Nvi version 1.79
	Posix	Posix 1003.2
	Vi	Vi version 3.7 (for Sun 4.1.x)
	Vile	Vile version 7.4 (incomplete)
	Vim	Vim version 5.2

Only Vim is able to accept options in between and after the file names.

+{command}	Elvis, Nvi, Posix, Vi, Vim: Same as "-c {command}".

-		Nvi, Posix, Vi: Run Ex in batch mode.
		Vim: Read file from stdin (use -s for batch mode).

--		Vim: End of options, only file names are following.

--cmd {command}	Vim: execute {command} before sourcing vimrc files.

--echo-wid	Vim: GTK+ echoes the Window ID on stdout

--help		Vim: show help message and exit.

--literal	Vim: take file names literally, don't expand wildcards.

--nofork	Vim: same as |-f|

--noplugin[s]	Vim: Skip loading plugins.

--remote	Vim: edit the files in another Vim server

--remote-expr {expr}	Vim: evaluate {expr} in another Vim server

--remote-send {keys}	Vim: send {keys} to a Vim server and exit

--remote-silent {file}	Vim: edit the files in another Vim server if possible

--remote-wait	Vim: edit the files in another Vim server and wait for it

--remote-wait-silent	Vim: like --remote-wait, no complaints if not possible

--role {role}	Vim: GTK+ 2: set role of main window

--serverlist	Vim: Output a list of Vim servers and exit

--servername {name}	Vim: Specify Vim server name

--socketid {id}		Vim: GTK window socket to run Vim in

--windowid {id}		Vim: Win32 window ID to run Vim in

--version	Vim: show version message and exit.

-?		Vile: print usage summary and exit.

-a		Elvis: Load all specified file names into a window (use -o for
		Vim).

-A		Vim: Start in Arabic mode (when compiled with Arabic).

-b {blksize}	Elvis: Use {blksize} blocksize for the session file.
-b		Vim: set 'binary' mode.

-C		Vim: Compatible mode.

-c {command}	Elvis, Nvi, Posix, Vim: run {command} as an Ex command after
		loading the edit buffer.
		Vim: allow up to 10 "-c" arguments

-d {device}	Vim: Use {device} for I/O (Amiga only). {only when compiled
		without the |+diff| feature}
-d		Vim: start with 'diff' set. |vimdiff|

-dev {device}	Vim: Use {device} for I/O (Amiga only).

-D		Vim: debug mode.

-e		Elvis, Nvi, Vim: Start in Ex mode, as if the executable is
		called "ex".

-E		Vim: Start in improved Ex mode |gQ|, like "exim".

-f		Vim: Run GUI in foreground (Amiga: don't open new window).
-f {session}	Elvis: Use {session} as the session file.

-F		Vim: Start in Farsi mode (when compiled with Farsi).
		Nvi: Fast start, don't read the entire file when editing
		starts.

-G {gui}	Elvis: Use the {gui} as user interface.

-g		Vim: Start GUI.
-g N		Vile: start editing at line N

-h		Vim: Give help message.
		Vile: edit the help file

-H		Vim: start Hebrew mode (when compiled with it).

-i		Elvis: Start each window in Insert mode.
-i {viminfo}	Vim: Use {viminfo} for viminfo file.

-L		Vim: Same as "-r" (also in some versions of Vi).

-l		Nvi, Vi, Vim: Set 'lisp' and 'showmatch' options.

-m		Vim: Modifications not allowed to be written, resets 'write'
		option.

-M		Vim: Modifications not allowed, resets 'modifiable' and the
		'write' option.

-N		Vim: No-compatible mode.

-n		Vim: No swap file used.

-nb[args]	Vim: open a NetBeans interface connection

-O[N]		Vim: Like -o, but use vertically split windows.

-o[N]		Vim: Open [N] windows, or one for each file.

-p[N]		Vim: Open [N] tab pages, or one for each file.

-P {parent-title} Win32 Vim: open Vim inside a parent application window

-q {name}	Vim: Use {name} for quickfix error file.
-q{name}	Vim: Idem.

-R		Elvis, Nvi, Posix, Vile, Vim: Set the 'readonly' option.

-r		Elvis, Nvi, Posix, Vi, Vim: Recovery mode.

-S		Nvi: Set 'secure' option.
-S {script}	Vim: source script after starting up.

-s		Nvi, Posix, Vim: Same as "-" (silent mode), when in Ex mode.
		Elvis: Sets the 'safer' option.
-s {scriptin}	Vim: Read from script file {scriptin}; only when not in Ex
		mode.
-s {pattern}	Vile: search for {pattern}

-t {tag}	Elvis, Nvi, Posix, Vi, Vim: Edit the file containing {tag}.
-t{tag}		Vim: Idem.

-T {term}	Vim: Set terminal name to {term}.

-u {vimrc}	Vim: Read initializations from {vimrc} file.

-U {gvimrc}	Vim: Read GUI initializations from {gvimrc} file.

-v		Nvi, Posix, Vi, Vim: Begin in Normal mode (visual mode, in Vi
		terms).
		Vile: View mode, no changes possible.

-V		Elvis, Vim: Verbose mode.
-V{nr}		Vim: Verbose mode with specified level.

-w {size}	Elvis, Posix, Nvi, Vi, Vim: Set value of 'window' to {size}.
-w{size}	Nvi, Vi: Same as "-w {size}".
-w {name}	Vim: Write to script file {name} (must start with non-digit).

-W {name}	Vim: Append to script file {name}.

-x		Vi, Vim: Ask for encryption key.  See |encryption|.

-X		Vim: Don't connect to the X server.

-y		Vim: Start in easy mode, like |evim|.

-Z		Vim: restricted mode

@{cmdfile}	Vile: use {cmdfile} as startup file.

==============================================================================
7. POSIX compliance				*posix* *posix-compliance*

In 2005 the POSIX test suite was run to check the compatibility of Vim.  Most
of the test was executed properly.  There are the few things where Vim
is not POSIX compliant, even when run in Vi compatibility mode.
							*$VIM_POSIX*
Set the $VIM_POSIX environment variable to have 'cpoptions' include the POSIX
flags when Vim starts up.  This makes Vim run as POSIX as it can.  That's
a bit different from being Vi compatible.

This is where Vim does not behave as POSIX specifies and why:

							*posix-screen-size*
	The $COLUMNS and $LINES environment variables are ignored by Vim if
	the size can be obtained from the terminal in a more reliable way.
	Add the '|' flag to 'cpoptions' to have $COLUMNS and $LINES overrule
	sizes obtained in another way.

	The "{" and "}" commands don't stop at a "{" in the original Vi, but
	POSIX specifies it does.  Add the '{' flag to 'cpoptions' if you want
	it the POSIX way.

	The "D", "o" and "O" commands accept a count.  Also when repeated.
	Add the '#' flag to 'cpoptions' if you want to ignore the count.

	The ":cd" command fails if the current buffer is modified when the '.'
	flag is present in 'cpoptions'.

	There is no ATTENTION message, the "A" flag is added to 'shortmess'.

These are remarks about running the POSIX test suite:
- vi test 33 sometimes fails for unknown reasons
- vi test 250 fails; behavior will be changed in a new revision
    http://www.opengroup.org/austin/mailarchives/ag-review/msg01710.html
    (link no longer works, perhaps it's now:
    https://www.opengroup.org/sophocles/show_mail.tpl?CALLER=show_archive.tpl&source=L&listname=austin-review-l&id=1711)
- vi test 310 fails; exit code non-zero when any error occurred?
- ex test 24 fails because test is wrong.  Changed between SUSv2 and SUSv3.
- ex tests 47, 48, 49, 72, 73 fail because .exrc file isn't read in silent
  mode and $EXINIT isn't used.
- ex tests 76, 78 fail because echo is used instead of printf. (fixed)
    Also: problem with \s not changed to space.
- ex test 355 fails because 'window' isn't used for "30z".
- ex test 368 fails because shell command isn't echoed in silent mode.
- ex test 394 fails because "=" command output isn't visible in silent mode.
- ex test 411 fails because test file is wrong, contains stray ':'.
- ex test 475 and 476 fail because reprint output isn't visible in silent mode.
- ex test 480 and 481 fail because the tags file has spaces instead of a tab.
- ex test 502 fails because .exrc isn't read in silent mode.
- ex test 509 fails because .exrc isn't read in silent mode. and exit code is
  1 instead of 2.
- ex test 534 fails because .exrc isn't read in silent mode.


 vim:tw=78:ts=8:ft=help:norl:
PK�j�Z��sl��vim80/vimrc_example.vimnu�[���" An example for a vimrc file.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2017 Sep 20
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"	      for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"	    for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Get the defaults that most users want.
source $VIMRUNTIME/defaults.vim

if has("vms")
  set nobackup		" do not keep a backup file, use versions instead
else
  set backup		" keep a backup file (restore to previous version)
  if has('persistent_undo')
    set undofile	" keep an undo file (undo changes after closing)
  endif
endif

if &t_Co > 2 || has("gui_running")
  " Switch on highlighting the last used search pattern.
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  augroup END

else

  set autoindent		" always set autoindenting on

endif " has("autocmd")

" Add optional packages.
"
" The matchit plugin makes the % command work better, but it is not backwards
" compatible.
" The ! means the package won't be loaded right away but when plugins are
" loaded during initialization.
if has('syntax') && has('eval')
  packadd! matchit
endif
PK�j�Z�~%�+�+vim80/scripts.vimnu�[���" Vim support file to detect file types in scripts
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2018 Feb 03

" This file is called by an autocommand for every file that has just been
" loaded into a buffer.  It checks if the type of file can be recognized by
" the file contents.  The autocommand is in $VIMRUNTIME/filetype.vim.
"
" Note that the pattern matches are done with =~# to avoid the value of the
" 'ignorecase' option making a difference.  Where case is to be ignored use
" =~? instead.  Do not use =~ anywhere.


" Only do the rest when the FileType autocommand has not been triggered yet.
if did_filetype()
  finish
endif

" Load the user defined scripts file first
" Only do this when the FileType autocommand has not been triggered yet
if exists("myscriptsfile") && filereadable(expand(myscriptsfile))
  execute "source " . myscriptsfile
  if did_filetype()
    finish
  endif
endif

" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim

let s:line1 = getline(1)

if s:line1 =~# "^#!"
  " A script that starts with "#!".

  " Check for a line like "#!/usr/bin/env VAR=val bash".  Turn it into
  " "#!/usr/bin/bash" to make matching easier.
  if s:line1 =~# '^#!\s*\S*\<env\s'
    let s:line1 = substitute(s:line1, '\S\+=\S\+', '', 'g')
    let s:line1 = substitute(s:line1, '\<env\s\+', '', '')
  endif

  " Get the program name.
  " Only accept spaces in PC style paths: "#!c:/program files/perl [args]".
  " If the word env is used, use the first word after the space:
  " "#!/usr/bin/env perl [path/args]"
  " If there is no path use the first word: "#!perl [path/args]".
  " Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
  if s:line1 =~# '^#!\s*\a:[/\\]'
    let s:name = substitute(s:line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
  elseif s:line1 =~# '^#!.*\<env\>'
    let s:name = substitute(s:line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
  elseif s:line1 =~# '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
    let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
  else
    let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
  endif

  " tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
  " third line.  Suggested by Steven Atkinson.
  if getline(3) =~# '^exec wish'
    let s:name = 'wish'
  endif

  " Bourne-like shell scripts: bash bash2 ksh ksh93 sh
  if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
    call dist#ft#SetFileTypeSH(s:line1)	" defined in filetype.vim

    " csh scripts
  elseif s:name =~# '^csh\>'
    if exists("g:filetype_csh")
      call dist#ft#SetFileTypeShell(g:filetype_csh)
    else
      call dist#ft#SetFileTypeShell("csh")
    endif

    " tcsh scripts
  elseif s:name =~# '^tcsh\>'
    call dist#ft#SetFileTypeShell("tcsh")

    " Z shell scripts
  elseif s:name =~# '^zsh\>'
    set ft=zsh

    " TCL scripts
  elseif s:name =~# '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
    set ft=tcl

    " Expect scripts
  elseif s:name =~# '^expect\>'
    set ft=expect

    " Gnuplot scripts
  elseif s:name =~# '^gnuplot\>'
    set ft=gnuplot

    " Makefiles
  elseif s:name =~# 'make\>'
    set ft=make

    " Pike
  elseif s:name =~# '^pike\%(\>\|[0-9]\)'
    set ft=pike

    " Lua
  elseif s:name =~# 'lua'
    set ft=lua

    " Perl 6
  elseif s:name =~# 'perl6'
    set ft=perl6

    " Perl
  elseif s:name =~# 'perl'
    set ft=perl

    " PHP
  elseif s:name =~# 'php'
    set ft=php

    " Python
  elseif s:name =~# 'python'
    set ft=python

    " Groovy
  elseif s:name =~# '^groovy\>'
    set ft=groovy

    " Ruby
  elseif s:name =~# 'ruby'
    set ft=ruby

    " JavaScript
  elseif s:name =~# 'node\(js\)\=\>\|js\>' || s:name =~# 'rhino\>'
    set ft=javascript

    " BC calculator
  elseif s:name =~# '^bc\>'
    set ft=bc

    " sed
  elseif s:name =~# 'sed\>'
    set ft=sed

    " OCaml-scripts
  elseif s:name =~# 'ocaml'
    set ft=ocaml

    " Awk scripts
  elseif s:name =~# 'awk\>'
    set ft=awk

    " Website MetaLanguage
  elseif s:name =~# 'wml'
    set ft=wml

    " Scheme scripts
  elseif s:name =~# 'scheme'
    set ft=scheme

    " CFEngine scripts
  elseif s:name =~# 'cfengine'
    set ft=cfengine

    " Erlang scripts
  elseif s:name =~# 'escript'
    set ft=erlang

    " Haskell
  elseif s:name =~# 'haskell'
    set ft=haskell

    " Scala
  elseif s:name =~# 'scala\>'
    set ft=scala

    " Clojure
  elseif s:name =~# 'clojure'
    set ft=clojure

  endif
  unlet s:name

else
  " File does not start with "#!".

  let s:line2 = getline(2)
  let s:line3 = getline(3)
  let s:line4 = getline(4)
  let s:line5 = getline(5)

  " Bourne-like shell scripts: sh ksh bash bash2
  if s:line1 =~# '^:$'
    call dist#ft#SetFileTypeSH(s:line1)	" defined in filetype.vim

    " Z shell scripts
  elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
        \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
    set ft=zsh

  " ELM Mail files
  elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
    set ft=mail

    " Mason
  elseif s:line1 =~# '^<[%&].*>'
    set ft=mason

    " Vim scripts (must have '" vim' as the first line to trigger this)
  elseif s:line1 =~# '^" *[vV]im$'
    set ft=vim

    " MOO
  elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
    set ft=moo

    " Diff file:
    " - "diff" in first line (context diff)
    " - "Only in " in first line
    " - "--- " in first line and "+++ " in second line (unified diff).
    " - "*** " in first line and "--- " in second line (context diff).
    " - "# It was generated by makepatch " in the second line (makepatch diff).
    " - "Index: <filename>" in the first line (CVS file)
    " - "=== ", line of "=", "---", "+++ " (SVK diff)
    " - "=== ", "--- ", "+++ " (bzr diff, common case)
    " - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
    " - "# HG changeset patch" in first line (Mercurial export format)
  elseif s:line1 =~# '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
	\ || (s:line1 =~# '^--- ' && s:line2 =~# '^+++ ')
	\ || (s:line1 =~# '^\* looking for ' && s:line2 =~# '^\* comparing to ')
	\ || (s:line1 =~# '^\*\*\* ' && s:line2 =~# '^--- ')
	\ || (s:line1 =~# '^=== ' && ((s:line2 =~# '^=\{66\}' && s:line3 =~# '^--- ' && s:line4 =~# '^+++') || (s:line2 =~# '^--- ' && s:line3 =~# '^+++ ')))
	\ || (s:line1 =~# '^=== \(removed\|added\|renamed\|modified\)')
    set ft=diff

    " PostScript Files (must have %!PS as the first line, like a2ps output)
  elseif s:line1 =~# '^%![ \t]*PS'
    set ft=postscr

    " M4 scripts: Guess there is a line that starts with "dnl".
  elseif s:line1 =~# '^\s*dnl\>'
	\ || s:line2 =~# '^\s*dnl\>'
	\ || s:line3 =~# '^\s*dnl\>'
	\ || s:line4 =~# '^\s*dnl\>'
	\ || s:line5 =~# '^\s*dnl\>'
    set ft=m4

    " AmigaDos scripts
  elseif $TERM == "amiga"
	\ && (s:line1 =~# "^;" || s:line1 =~? '^\.bra')
    set ft=amiga

    " SiCAD scripts (must have procn or procd as the first line to trigger this)
  elseif s:line1 =~? '^ *proc[nd] *$'
    set ft=sicad

    " Purify log files start with "****  Purify"
  elseif s:line1 =~# '^\*\*\*\*  Purify'
    set ft=purifylog

    " XML
  elseif s:line1 =~# '<?\s*xml.*?>'
    set ft=xml

    " XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
  elseif s:line1 =~# '\<DTD\s\+XHTML\s'
    set ft=xhtml

    " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
    " Avoid "doctype html", used by slim.
  elseif s:line1 =~? '<!DOCTYPE\s\+html\>'
    set ft=html

    " PDF
  elseif s:line1 =~# '^%PDF-'
    set ft=pdf

    " XXD output
  elseif s:line1 =~# '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
    set ft=xxd

    " RCS/CVS log output
  elseif s:line1 =~# '^RCS file:' || s:line2 =~# '^RCS file:'
    set ft=rcslog

    " CVS commit
  elseif s:line2 =~# '^CVS:' || getline("$") =~# '^CVS: '
    set ft=cvs

    " Prescribe
  elseif s:line1 =~# '^!R!'
    set ft=prescribe

    " Send-pr
  elseif s:line1 =~# '^SEND-PR:'
    set ft=sendpr

    " SNNS files
  elseif s:line1 =~# '^SNNS network definition file'
    set ft=snnsnet
  elseif s:line1 =~# '^SNNS pattern definition file'
    set ft=snnspat
  elseif s:line1 =~# '^SNNS result file'
    set ft=snnsres

    " Virata
  elseif s:line1 =~# '^%.\{-}[Vv]irata'
	\ || s:line2 =~# '^%.\{-}[Vv]irata'
	\ || s:line3 =~# '^%.\{-}[Vv]irata'
	\ || s:line4 =~# '^%.\{-}[Vv]irata'
	\ || s:line5 =~# '^%.\{-}[Vv]irata'
    set ft=virata

    " Strace
  elseif s:line1 =~# '[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
    set ft=strace

    " VSE JCL
  elseif s:line1 =~# '^\* $$ JOB\>' || s:line1 =~# '^// *JOB\>'
    set ft=vsejcl

    " TAK and SINDA
  elseif s:line4 =~# 'K & K  Associates' || s:line2 =~# 'TAK 2000'
    set ft=takout
  elseif s:line3 =~# 'S Y S T E M S   I M P R O V E D '
    set ft=sindaout
  elseif getline(6) =~# 'Run Date: '
    set ft=takcmp
  elseif getline(9) =~# 'Node    File  1'
    set ft=sindacmp

    " DNS zone files
  elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
    set ft=bindzone

    " BAAN
  elseif s:line1 =~# '|\*\{1,80}' && s:line2 =~# 'VRC '
	\ || s:line2 =~# '|\*\{1,80}' && s:line3 =~# 'VRC '
    set ft=baan

  " Valgrind
  elseif s:line1 =~# '^==\d\+== valgrind' || s:line3 =~# '^==\d\+== Using valgrind'
    set ft=valgrind

  " Go docs
  elseif s:line1 =~# '^PACKAGE DOCUMENTATION$'
    set ft=godoc

  " Renderman Interface Bytestream
  elseif s:line1 =~# '^##RenderMan'
    set ft=rib

  " Scheme scripts
  elseif s:line1 =~# 'exec\s\+\S*scheme' || s:line2 =~# 'exec\s\+\S*scheme'
    set ft=scheme

  " Git output
  elseif s:line1 =~# '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
    set ft=git

   " Gprof (gnu profiler)
   elseif s:line1 == 'Flat profile:'
     \ && s:line2 == ''
     \ && s:line3 =~# '^Each sample counts as .* seconds.$'
     set ft=gprof

  " Erlang terms
  " (See also: http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html#Choosing-Modes)
  elseif s:line1 =~? '-\*-.*erlang.*-\*-'
    set ft=erlang

  " CVS diff
  else
    let s:lnum = 1
    while getline(s:lnum) =~# "^? " && s:lnum < line("$")
      let s:lnum += 1
    endwhile
    if getline(s:lnum) =~# '^Index:\s\+\f\+$'
      set ft=diff

      " locale input files: Formal Definitions of Cultural Conventions
      " filename must be like en_US, fr_FR@euro or en_US.UTF-8
    elseif expand("%") =~# '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
      let s:lnum = 1
      while s:lnum < 100 && s:lnum < line("$")
	if getline(s:lnum) =~# '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
	  setf fdcc
	  break
	endif
	let s:lnum += 1
      endwhile
    endif
    unlet s:lnum

  endif

  unlet s:line2 s:line3 s:line4 s:line5

endif

" Restore 'cpoptions'
let &cpo = s:cpo_save

unlet s:cpo_save s:line1
PK�j�Z��vim80/indoff.vimnu�[���" Vim support file to switch off loading indent files for file types
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2001 Jun 11

if exists("did_indent_on")
  unlet did_indent_on
endif

" Remove all autocommands in the filetypeindent group
silent! au! filetypeindent *
PK�j�ZL飐22vim80/syntax/slrnrc.vimnu�[���" Vim syntax file
" Language:	Slrn setup file (based on slrn 0.9.8.1)
" Maintainer:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
" Last Change:	23 April 2006

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword slrnrcTodo		contained Todo

" In some places whitespace is illegal
syn match slrnrcSpaceError	contained "\s"

syn match slrnrcNumber		contained "-\=\<\d\+\>"
syn match slrnrcNumber		contained +'[^']\+'+

syn match slrnrcSpecKey		contained +\(\\[er"']\|\^[^'"]\|\\\o\o\o\)+

syn match  slrnrcKey		contained "\S\+"	contains=slrnrcSpecKey
syn region slrnrcKey		contained start=+"+ skip=+\\"+ end=+"+ oneline contains=slrnrcSpecKey
syn region slrnrcKey		contained start=+'+ skip=+\\'+ end=+'+ oneline contains=slrnrcSpecKey

syn match slrnrcSpecChar	contained +'+
syn match slrnrcSpecChar	contained +\\[n"]+
syn match slrnrcSpecChar	contained "%[dfmnrs%]"

syn match  slrnrcString		contained /[^ \t%"']\+/	contains=slrnrcSpecChar
syn region slrnrcString		contained start=+"+ skip=+\\"+ end=+"+ oneline contains=slrnrcSpecChar

syn match slrnSlangPreCondit	"^#\s*ifn\=\(def\>\|false\>\|true\>\|\$\)"
syn match slrnSlangPreCondit	"^#\s*e\(lif\|lse\|ndif\)\>"

syn match slrnrcComment		"%.*$"	contains=slrnrcTodo

syn keyword  slrnrcVarInt	contained abort_unmodified_edits article_window_page_overlap auto_mark_article_as_read beep broken_xref broken_xref cc_followup check_new_groups
syn keyword  slrnrcVarInt	contained color_by_score confirm_actions custom_sort_by_threads display_cursor_bar drop_bogus_groups editor_uses_mime_charset emphasized_text_mask
syn keyword  slrnrcVarInt	contained emphasized_text_mode fold_headers fold_headers followup_strip_signature force_authentication force_authentication generate_date_header
syn keyword  slrnrcVarInt	contained generate_email_from generate_email_from generate_message_id grouplens_port hide_pgpsignature hide_quotes hide_signature
syn keyword  slrnrcVarInt	contained hide_verbatim_marks hide_verbatim_text highlight_unread_subjects highlight_urls ignore_signature kill_score lines_per_update
syn keyword  slrnrcVarInt	contained mail_editor_is_mua max_low_score max_queued_groups min_high_score mouse netiquette_warnings new_subject_breaks_threads no_autosave
syn keyword  slrnrcVarInt	contained no_backups prefer_head process_verbatim_marks query_next_article query_next_group query_read_group_cutoff read_active reject_long_lines
syn keyword  slrnrcVarInt	contained scroll_by_page show_article show_thread_subject simulate_graphic_chars smart_quote sorting_method spoiler_char spoiler_char
syn keyword  slrnrcVarInt	contained spoiler_display_mode spoiler_display_mode spool_check_up_on_nov spool_check_up_on_nov uncollapse_threads unsubscribe_new_groups use_blink
syn keyword  slrnrcVarInt	contained use_color use_flow_control use_grouplens use_grouplens use_header_numbers use_inews use_inews use_localtime use_metamail use_mime use_mime
syn keyword  slrnrcVarInt	contained use_recommended_msg_id use_slrnpull use_slrnpull use_tilde use_tmpdir use_uudeview use_uudeview warn_followup_to wrap_flags wrap_method
syn keyword  slrnrcVarInt	contained write_newsrc_flags

" Listed for removal
syn keyword  slrnrcVarInt	contained author_display display_author_realname display_score group_dsc_start_column process_verbatum_marks prompt_next_group query_reconnect
syn keyword  slrnrcVarInt	contained show_descriptions use_xgtitle

" Match as a "string" too
syn region  slrnrcVarIntStr	contained matchgroup=slrnrcVarInt start=+"+ end=+"+ oneline contains=slrnrcVarInt,slrnrcSpaceError

syn keyword slrnrcVarStr	contained Xbrowser art_help_line art_status_line cansecret_file cc_post_string charset custom_headers custom_sort_order decode_directory
syn keyword slrnrcVarStr	contained editor_command failed_posts_file followup_custom_headers followup_date_format followup_string followupto_string group_help_line
syn keyword slrnrcVarStr	contained group_status_line grouplens_host grouplens_pseudoname header_help_line header_status_line hostname inews_program macro_directory
syn keyword slrnrcVarStr	contained mail_editor_command metamail_command mime_charset non_Xbrowser organization overview_date_format post_editor_command post_object
syn keyword slrnrcVarStr	contained postpone_directory printer_name quote_string realname reply_custom_headers reply_string replyto save_directory save_posts save_replies
syn keyword slrnrcVarStr	contained score_editor_command scorefile sendmail_command server_object signature signoff_string spool_active_file spool_activetimes_file
syn keyword slrnrcVarStr	contained spool_inn_root spool_newsgroups_file spool_nov_file spool_nov_root spool_overviewfmt_file spool_root supersedes_custom_headers
syn keyword slrnrcVarStr	contained top_status_line username

" Listed for removal
syn keyword slrnrcVarStr	contained followup cc_followup_string

" Match as a "string" too
syn region  slrnrcVarStrStr	contained matchgroup=slrnrcVarStr start=+"+ end=+"+ oneline contains=slrnrcVarStr,slrnrcSpaceError

" Various commands
syn region slrnrcCmdLine	matchgroup=slrnrcCmd start="\<\(autobaud\|color\|compatible_charsets\|group_display_format\|grouplens_add\|header_display_format\|ignore_quotes\|include\|interpret\|mono\|nnrpaccess\|posting_host\|server\|set\|setkey\|strip_re_regexp\|strip_sig_regexp\|strip_was_regexp\|unsetkey\|visible_headers\)\>" end="$" oneline contains=slrnrc\(String\|Comment\)

" Listed for removal
syn region slrnrcCmdLine	matchgroup=slrnrcCmd start="\<\(cc_followup_string\|decode_directory\|editor_command\|followup\|hostname\|organization\|quote_string\|realname\|replyto\|scorefile\|signature\|username\)\>" end="$" oneline contains=slrnrc\(String\|Comment\)

" Setting variables
syn keyword slrnrcSet		contained set
syn match   slrnrcSetStr	"^\s*set\s\+\S\+" skipwhite nextgroup=slrnrcString contains=slrnrcSet,slrnrcVarStr\(Str\)\=
syn match   slrnrcSetInt	contained "^\s*set\s\+\S\+" contains=slrnrcSet,slrnrcVarInt\(Str\)\=
syn match   slrnrcSetIntLine	"^\s*set\s\+\S\+\s\+\(-\=\d\+\>\|'[^']\+'\)" contains=slrnrcSetInt,slrnrcNumber,slrnrcVarInt

" Color definitions
syn match   slrnrcColorObj	contained "\<quotes\d\+\>"
syn keyword slrnrcColorObj	contained article author boldtext box cursor date description error frame from_myself group grouplens_display header_name header_number headers
syn keyword slrnrcColorObj	contained high_score italicstext menu menu_press message neg_score normal pgpsignature pos_score quotes response_char selection signature status
syn keyword slrnrcColorObj	contained subject thread_number tilde tree underlinetext unread_subject url verbatim

" Listed for removal
syn keyword slrnrcColorObj	contained verbatum

syn region  slrnrcColorObjStr	contained matchgroup=slrnrcColorObj start=+"+ end=+"+ oneline contains=slrnrcColorObj,slrnrcSpaceError
syn keyword slrnrcColorVal	contained default
syn keyword slrnrcColorVal	contained black blue brightblue brightcyan brightgreen brightmagenta brightred brown cyan gray green lightgray magenta red white yellow
syn region  slrnrcColorValStr	contained matchgroup=slrnrcColorVal start=+"+ end=+"+ oneline contains=slrnrcColorVal,slrnrcSpaceError
" Mathcing a function with three arguments
syn keyword slrnrcColor		contained color
syn match   slrnrcColorInit	contained "^\s*color\s\+\S\+" skipwhite nextgroup=slrnrcColorVal\(Str\)\= contains=slrnrcColor\(Obj\|ObjStr\)\=
syn match   slrnrcColorLine	"^\s*color\s\+\S\+\s\+\S\+" skipwhite nextgroup=slrnrcColorVal\(Str\)\= contains=slrnrcColor\(Init\|Val\|ValStr\)

" Mono settings
syn keyword slrnrcMonoVal	contained blink bold none reverse underline
syn region  slrnrcMonoValStr	contained matchgroup=slrnrcMonoVal start=+"+ end=+"+ oneline contains=slrnrcMonoVal,slrnrcSpaceError
" Color object is inherited
" Mono needs at least one argument
syn keyword slrnrcMono		contained mono
syn match   slrnrcMonoInit	contained "^\s*mono\s\+\S\+" contains=slrnrcMono,slrnrcColorObj\(Str\)\=
syn match   slrnrcMonoLine	"^\s*mono\s\+\S\+\s\+\S.*" contains=slrnrcMono\(Init\|Val\|ValStr\),slrnrcComment

" Functions in article mode
syn keyword slrnrcFunArt	contained article_bob article_eob article_left article_line_down article_line_up article_page_down article_page_up article_right article_search
syn keyword slrnrcFunArt	contained author_search_backward author_search_forward browse_url cancel catchup catchup_all create_score decode delete delete_thread digit_arg
syn keyword slrnrcFunArt	contained enlarge_article_window evaluate_cmd exchange_mark expunge fast_quit followup forward forward_digest get_children_headers get_parent_header
syn keyword slrnrcFunArt	contained goto_article goto_last_read grouplens_rate_article header_bob header_eob header_line_down header_line_up header_page_down header_page_up
syn keyword slrnrcFunArt	contained help hide_article locate_article mark_spot next next_high_score next_same_subject pipe post post_postponed previous print quit redraw
syn keyword slrnrcFunArt	contained repeat_last_key reply request save show_spoilers shrink_article_window skip_quotes skip_to_next_group skip_to_previous_group
syn keyword slrnrcFunArt	contained subject_search_backward subject_search_forward supersede suspend tag_header toggle_collapse_threads toggle_header_formats
syn keyword slrnrcFunArt	contained toggle_header_tag toggle_headers toggle_pgpsignature toggle_quotes toggle_rot13 toggle_signature toggle_sort toggle_verbatim_marks
syn keyword slrnrcFunArt	contained toggle_verbatim_text uncatchup uncatchup_all undelete untag_headers view_scores wrap_article zoom_article_window

" Listed for removal
syn keyword slrnrcFunArt	contained art_bob art_eob art_xpunge article_linedn article_lineup article_pagedn article_pageup down enlarge_window goto_beginning goto_end left
syn keyword slrnrcFunArt	contained locate_header_by_msgid pagedn pageup pipe_article prev print_article right scroll_dn scroll_up shrink_window skip_to_prev_group
syn keyword slrnrcFunArt	contained toggle_show_author up

" Functions in group mode
syn keyword slrnrcFunGroup	contained add_group bob catchup digit_arg eob evaluate_cmd group_search group_search_backward group_search_forward help line_down line_up move_group
syn keyword slrnrcFunGroup	contained page_down page_up post post_postponed quit redraw refresh_groups repeat_last_key save_newsrc select_group subscribe suspend
syn keyword slrnrcFunGroup	contained toggle_group_formats toggle_hidden toggle_list_all toggle_scoring transpose_groups uncatchup unsubscribe

" Listed for removal
syn keyword slrnrcFunGroup	contained down group_bob group_eob pagedown pageup toggle_group_display uncatch_up up

" Functions in readline mode (actually from slang's slrline.c)
syn keyword slrnrcFunRead	contained bdel bol complete cycle del delbol delbow deleol down enter eol left quoted_insert right self_insert trim up

" Binding keys
syn keyword slrnrcSetkeyObj	contained article group readline
syn region  slrnrcSetkeyObjStr	contained matchgroup=slrnrcSetkeyObj start=+"+ end=+"+ oneline contains=slrnrcSetkeyObj
syn match   slrnrcSetkeyArt	contained '\("\=\)\<article\>\1\s\+\S\+' skipwhite nextgroup=slrnrcKey contains=slrnrcSetKeyObj\(Str\)\=,slrnrcFunArt
syn match   slrnrcSetkeyGroup	contained '\("\=\)\<group\>\1\s\+\S\+' skipwhite nextgroup=slrnrcKey contains=slrnrcSetKeyObj\(Str\)\=,slrnrcFunGroup
syn match   slrnrcSetkeyRead	contained '\("\=\)\<readline\>\1\s\+\S\+' skipwhite nextgroup=slrnrcKey contains=slrnrcSetKeyObj\(Str\)\=,slrnrcFunRead
syn match   slrnrcSetkey	"^\s*setkey\>" skipwhite nextgroup=slrnrcSetkeyArt,slrnrcSetkeyGroup,slrnrcSetkeyRead

" Unbinding keys
syn match   slrnrcUnsetkey	'^\s*unsetkey\s\+\("\)\=\(article\|group\|readline\)\>\1' skipwhite nextgroup=slrnrcKey contains=slrnrcSetkeyObj\(Str\)\=

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link slrnrcTodo		Todo
hi def link slrnrcSpaceError	Error
hi def link slrnrcNumber		Number
hi def link slrnrcSpecKey		SpecialChar
hi def link slrnrcKey		String
hi def link slrnrcSpecChar		SpecialChar
hi def link slrnrcString		String
hi def link slrnSlangPreCondit	Special
hi def link slrnrcComment		Comment
hi def link slrnrcVarInt		Identifier
hi def link slrnrcVarStr		Identifier
hi def link slrnrcCmd		slrnrcSet
hi def link slrnrcSet		Operator
hi def link slrnrcColor		Keyword
hi def link slrnrcColorObj		Identifier
hi def link slrnrcColorVal		String
hi def link slrnrcMono		Keyword
hi def link slrnrcMonoObj		Identifier
hi def link slrnrcMonoVal		String
hi def link slrnrcFunArt		Macro
hi def link slrnrcFunGroup		Macro
hi def link slrnrcFunRead		Macro
hi def link slrnrcSetkeyObj	Identifier
hi def link slrnrcSetkey		Keyword
hi def link slrnrcUnsetkey		slrnrcSetkey


let b:current_syntax = "slrnrc"

"EOF	vim: ts=8 noet tw=120 sw=8 sts=0
PK�j�Z���G??vim80/syntax/cdrdaoconf.vimnu�[���" Vim syntax file
" Language:             cdrdao(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-09-02

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword cdrdaoconfTodo
      \ TODO FIXME XXX NOTE

syn match   cdrdaoconfBegin
      \ display
      \ nextgroup=@cdrdaoconfKeyword,cdrdaoconfComment
      \ '^'

syn cluster cdrdaoconfKeyword
      \ contains=cdrdaoconfIntegerKeyword,
      \          cdrdaoconfDriverKeyword,
      \          cdrdaoconfDeviceKeyword,
      \          cdrdaoconfPathKeyword

syn keyword cdrdaoconfIntegerKeyword
      \ contained
      \ nextgroup=cdrdaoconfIntegerDelimiter
      \ write_speed
      \ write_buffers
      \ user_capacity
      \ full_burn
      \ read_speed
      \ cddb_timeout

syn keyword cdrdaoconfIntegerKeyword
      \ contained
      \ nextgroup=cdrdaoconfParanoiaModeDelimiter
      \ read_paranoia_mode

syn keyword cdrdaoconfDriverKeyword
      \ contained
      \ nextgroup=cdrdaoconfDriverDelimiter
      \ write_driver
      \ read_driver

syn keyword cdrdaoconfDeviceKeyword
      \ contained
      \ nextgroup=cdrdaoconfDeviceDelimiter
      \ write_device
      \ read_device

syn keyword cdrdaoconfPathKeyword
      \ contained
      \ nextgroup=cdrdaoconfPathDelimiter
      \ cddb_directory
      \ tmp_file_dir

syn match   cdrdaoconfIntegerDelimiter
      \ contained
      \ nextgroup=cdrdaoconfInteger
      \ skipwhite
      \ ':'

syn match   cdrdaoconfParanoiaModeDelimiter
      \ contained
      \ nextgroup=cdrdaoconfParanoiaMode
      \ skipwhite
      \ ':'

syn match   cdrdaoconfDriverDelimiter
      \ contained
      \ nextgroup=cdrdaoconfDriver
      \ skipwhite
      \ ':'

syn match   cdrdaoconfDeviceDelimiter
      \ contained
      \ nextgroup=cdrdaoconfDevice
      \ skipwhite
      \ ':'

syn match   cdrdaoconfPathDelimiter
      \ contained
      \ nextgroup=cdrdaoconfPath
      \ skipwhite
      \ ':'

syn match   cdrdaoconfInteger
      \ contained
      \ '\<\d\+\>'

syn match   cdrdaoParanoiaMode
      \ contained
      \ '[0123]'

syn match   cdrdaoconfDriver
      \ contained
      \ '\<\(cdd2600\|generic-mmc\%(-raw\)\=\|plextor\%(-scan\)\|ricoh-mp6200\|sony-cdu9\%(20\|48\)\|taiyo-yuden\|teac-cdr55\|toshiba\|yamaha-cdr10x\)\>'

syn region  cdrdaoconfDevice
      \ contained
      \ matchgroup=cdrdaoconfDevice
      \ start=+"+
      \ end=+"+

syn region  cdrdaoconfPath
      \ contained
      \ matchgroup=cdrdaoconfPath
      \ start=+"+
      \ end=+"+

syn match   cdrdaoconfComment
      \ contains=cdrdaoconfTodo,@Spell
      \ '^.*#.*$'

hi def link cdrdaoconfTodo              Todo
hi def link cdrdaoconfComment           Comment
hi def link cdrdaoconfKeyword           Keyword
hi def link cdrdaoconfIntegerKeyword    cdrdaoconfKeyword
hi def link cdrdaoconfDriverKeyword     cdrdaoconfKeyword
hi def link cdrdaoconfDeviceKeyword     cdrdaoconfKeyword
hi def link cdrdaoconfPathKeyword       cdrdaoconfKeyword
hi def link cdrdaoconfDelimiter         Delimiter
hi def link cdrdaoconfIntegerDelimiter  cdrdaoconfDelimiter
hi def link cdrdaoconfDriverDelimiter   cdrdaoconfDelimiter
hi def link cdrdaoconfDeviceDelimiter   cdrdaoconfDelimiter
hi def link cdrdaoconfPathDelimiter     cdrdaoconfDelimiter
hi def link cdrdaoconfInteger           Number
hi def link cdrdaoconfParanoiaMode      Number
hi def link cdrdaoconfDriver            Identifier
hi def link cdrdaoconfDevice            cdrdaoconfPath
hi def link cdrdaoconfPath              String

let b:current_syntax = "cdrdaoconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z˕g���vim80/syntax/cvsrc.vimnu�[���" Vim syntax file
" Language:             cvs(1) RC file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn region  cvsrcString   display oneline start=+"+ skip=+\\\\\|\\\\"+ end=+"+
syn region  cvsrcString   display oneline start=+'+ skip=+\\\\\|\\\\'+ end=+'+

syn match   cvsrcNumber   display '\<\d\+\>'

syn match   cvsrcBegin    display '^' nextgroup=cvsrcCommand skipwhite

syn region  cvsrcCommand  contained transparent matchgroup=cvsrcCommand
                          \ start='add\|admin\|checkout\|commit\|cvs\|diff'
                          \ start='export\|history\|import\|init\|log'
                          \ start='rdiff\|release\|remove\|rtag\|status\|tag'
                          \ start='update'
                          \ end='$'
                          \ contains=cvsrcOption,cvsrcString,cvsrcNumber
                          \ keepend

syn match   cvsrcOption   contained display '-\a\+'

hi def link cvsrcString   String
hi def link cvsrcNumber   Number
hi def link cvsrcCommand  Keyword
hi def link cvsrcOption   Identifier

let b:current_syntax = "cvsrc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�L���vim80/syntax/wsh.vimnu�[���" Vim syntax file
" Language:	Windows Scripting Host
" Maintainer:	Paul Moore <pf_moore AT yahoo.co.uk>
" Last Change:	Fre, 24 Nov 2000 21:54:09 +0100

" This reuses the XML, VB and JavaScript syntax files. While VB is not
" VBScript, it's close enough for us. No attempt is made to handle
" other languages.
" Send comments, suggestions and requests to the maintainer.

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:wsh_cpo_save = &cpo
set cpo&vim

runtime! syntax/xml.vim
unlet b:current_syntax

syn case ignore
syn include @wshVBScript <sfile>:p:h/vb.vim
unlet b:current_syntax
syn include @wshJavaScript <sfile>:p:h/javascript.vim
unlet b:current_syntax
syn region wshVBScript
    \ matchgroup=xmlTag    start="<script[^>]*VBScript\(>\|[^>]*[^/>]>\)"
    \ matchgroup=xmlEndTag end="</script>"
    \ fold
    \ contains=@wshVBScript
    \ keepend
syn region wshJavaScript
    \ matchgroup=xmlTag    start="<script[^>]*J\(ava\)\=Script\(>\|[^>]*[^/>]>\)"
    \ matchgroup=xmlEndTag end="</script>"
    \ fold
    \ contains=@wshJavaScript
    \ keepend

syn cluster xmlRegionHook add=wshVBScript,wshJavaScript

let b:current_syntax = "wsh"

let &cpo = s:wsh_cpo_save
unlet s:wsh_cpo_save
PK�j�Z�$s  vim80/syntax/dsl.vimnu�[���" Vim syntax file
" Language:	DSSSL
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Tue, 27 Apr 2004 14:54:59 CEST
" Filenames:	*.dsl
" $Id: dsl.vim,v 1.1 2004/06/13 19:13:31 vimboss Exp $

if exists("b:current_syntax") | finish | endif

runtime syntax/xml.vim
syn cluster xmlRegionHook add=dslRegion,dslComment
syn cluster xmlCommentHook add=dslCond

" EXAMPLE:
"   <![ %output.html; [
"     <!-- some comment -->
"     (define html-manifest #f)
"   ]]>
"
" NOTE: 'contains' the same as xmlRegion, except xmlTag / xmlEndTag
syn region  dslCond matchgroup=dslCondDelim start="\[\_[^[]\+\[" end="]]" contains=xmlCdata,@xmlRegionCluster,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook

" NOTE, that dslRegion and dslComment do both NOT have a 'contained'
" argument, so this will also work in plain dsssl documents.

syn region dslRegion matchgroup=Delimiter start=+(+ end=+)+ contains=dslRegion,dslString,dslComment
syn match dslString +"\_[^"]*"+ contained
syn match dslComment +;.*$+ contains=dslTodo
syn keyword dslTodo contained TODO FIXME XXX display

" The default highlighting.
hi def link dslTodo		Todo
hi def link dslString		String
hi def link dslComment		Comment
" compare the following with xmlCdataStart / xmlCdataEnd
hi def link dslCondDelim	Type

let b:current_syntax = "dsl"
PK�j�Z�kwЃ�vim80/syntax/tags.vimnu�[���" Language:		tags
" Maintainer:	Charles E. Campbell  <NdrOchip@PcampbellAfamily.Mbiz>
" Last Change:	Oct 26, 2016
" Version:		7
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match	tagName		"^[^\t]\+"	skipwhite	nextgroup=tagPath
syn match	tagPath		"[^\t]\+"	contained	skipwhite	nextgroup=tagAddr	contains=tagBaseFile
syn match	tagBaseFile	"[a-zA-Z_]\+[\.a-zA-Z_0-9]*\t"me=e-1		contained
syn match	tagAddr		"\d*"		contained skipwhite nextgroup=tagComment
syn region	tagAddr				matchgroup=tagDelim start="/" skip="\(\\\\\)*\\/" matchgroup=tagDelim end="$\|/" oneline contained skipwhite nextgroup=tagComment
syn match	tagComment	";.*$"		contained contains=tagField
syn match	tagComment	"^!_TAG_.*$"
syn match	tagField			contained "[a-z]*:"

" Define the default highlighting.
if !exists("skip_drchip_tags_inits")
 hi def link tagBaseFile	PreProc
 hi def link tagComment		Comment
 hi def link tagDelim		Delimiter
 hi def link tagField		Number
 hi def link tagName		Identifier
 hi def link tagPath		PreProc
endif

let b:current_syntax = "tags"
PK�j�Z��CKOKOvim80/syntax/vb.vimnu�[���" Vim syntax file
" Language:	Visual Basic
" Maintainer:	Tim Chase <vb.vim@tim.thechases.com>
" Former Maintainer:	Robert M. Cortopassi <cortopar@mindspring.com>
"	(tried multiple times to contact, but email bounced)
" Last Change:
"   2005 May 25  Synched with work by Thomas Barthel
"   2004 May 30  Added a few keywords

" This was thrown together after seeing numerous requests on the
" VIM and VIM-DEV mailing lists.  It is by no means complete.
" Send comments, suggestions and requests to the maintainer.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

" VB is case insensitive
syn case ignore

syn keyword vbConditional If Then ElseIf Else Select Case

syn keyword vbOperator AddressOf And ByRef ByVal Eqv Imp In
syn keyword vbOperator Is Like Mod Not Or To Xor

syn match vbOperator "[()+.,\-/*=&]"
syn match vbOperator "[<>]=\="
syn match vbOperator "<>"
syn match vbOperator "\s\+_$"

syn keyword vbBoolean  True False
syn keyword vbConst Null Nothing

syn keyword vbRepeat Do For ForEach Loop Next
syn keyword vbRepeat Step To Until Wend While

syn keyword vbEvents AccessKeyPress Activate ActiveRowChanged
syn keyword vbEvents AfterAddFile AfterChangeFileName AfterCloseFile
syn keyword vbEvents AfterColEdit AfterColUpdate AfterDelete
syn keyword vbEvents AfterInsert AfterLabelEdit AfterRemoveFile
syn keyword vbEvents AfterUpdate AfterWriteFile AmbientChanged
syn keyword vbEvents ApplyChanges Associate AsyncProgress
syn keyword vbEvents AsyncReadComplete AsyncReadProgress AxisActivated
syn keyword vbEvents AxisLabelActivated AxisLabelSelected
syn keyword vbEvents AxisLabelUpdated AxisSelected AxisTitleActivated
syn keyword vbEvents AxisTitleSelected AxisTitleUpdated AxisUpdated
syn keyword vbEvents BeforeClick BeforeColEdit BeforeColUpdate
syn keyword vbEvents BeforeConnect BeforeDelete BeforeInsert
syn keyword vbEvents BeforeLabelEdit BeforeLoadFile BeforeUpdate
syn keyword vbEvents BeginRequest BeginTrans ButtonClick
syn keyword vbEvents ButtonCompleted ButtonDropDown ButtonGotFocus
syn keyword vbEvents ButtonLostFocus CallbackKeyDown Change Changed
syn keyword vbEvents ChartActivated ChartSelected ChartUpdated Click
syn keyword vbEvents Close CloseQuery CloseUp ColEdit ColResize
syn keyword vbEvents Collapse ColumnClick CommitTrans Compare
syn keyword vbEvents ConfigChageCancelled ConfigChanged
syn keyword vbEvents ConfigChangedCancelled Connect ConnectionRequest
syn keyword vbEvents CurrentRecordChanged DECommandAdded
syn keyword vbEvents DECommandPropertyChanged DECommandRemoved
syn keyword vbEvents DEConnectionAdded DEConnectionPropertyChanged
syn keyword vbEvents DEConnectionRemoved DataArrival DataChanged
syn keyword vbEvents DataUpdated DateClicked DblClick Deactivate
syn keyword vbEvents DevModeChange DeviceArrival DeviceOtherEvent
syn keyword vbEvents DeviceQueryRemove DeviceQueryRemoveFailed
syn keyword vbEvents DeviceRemoveComplete DeviceRemovePending
syn keyword vbEvents Disconnect DisplayChanged Dissociate
syn keyword vbEvents DoGetNewFileName Done DonePainting DownClick
syn keyword vbEvents DragDrop DragOver DropDown EditProperty EditQuery
syn keyword vbEvents EndRequest EnterCell EnterFocus ExitFocus Expand
syn keyword vbEvents FontChanged FootnoteActivated FootnoteSelected
syn keyword vbEvents FootnoteUpdated Format FormatSize GotFocus
syn keyword vbEvents HeadClick HeightChanged Hide InfoMessage
syn keyword vbEvents IniProperties InitProperties Initialize
syn keyword vbEvents ItemActivated ItemAdded ItemCheck ItemClick
syn keyword vbEvents ItemReloaded ItemRemoved ItemRenamed
syn keyword vbEvents ItemSeletected KeyDown KeyPress KeyUp LeaveCell
syn keyword vbEvents LegendActivated LegendSelected LegendUpdated
syn keyword vbEvents LinkClose LinkError LinkExecute LinkNotify
syn keyword vbEvents LinkOpen Load LostFocus MouseDown MouseMove
syn keyword vbEvents MouseUp NodeCheck NodeClick OLECompleteDrag
syn keyword vbEvents OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData
syn keyword vbEvents OLEStartDrag ObjectEvent ObjectMove OnAddNew
syn keyword vbEvents OnComm Paint PanelClick PanelDblClick PathChange
syn keyword vbEvents PatternChange PlotActivated PlotSelected
syn keyword vbEvents PlotUpdated PointActivated PointLabelActivated
syn keyword vbEvents PointLabelSelected PointLabelUpdated PointSelected
syn keyword vbEvents PointUpdated PowerQuerySuspend PowerResume
syn keyword vbEvents PowerStatusChanged PowerSuspend ProcessTag
syn keyword vbEvents ProcessingTimeout QueryChangeConfig QueryClose
syn keyword vbEvents QueryComplete QueryCompleted QueryTimeout
syn keyword vbEvents QueryUnload ReadProperties RepeatedControlLoaded
syn keyword vbEvents RepeatedControlUnloaded Reposition
syn keyword vbEvents RequestChangeFileName RequestWriteFile Resize
syn keyword vbEvents ResultsChanged RetainedProject RollbackTrans
syn keyword vbEvents RowColChange RowCurrencyChange RowResize
syn keyword vbEvents RowStatusChanged Scroll SelChange SelectionChanged
syn keyword vbEvents SendComplete SendProgress SeriesActivated
syn keyword vbEvents SeriesSelected SeriesUpdated SettingChanged Show
syn keyword vbEvents SplitChange Start StateChanged StatusUpdate
syn keyword vbEvents SysColorsChanged Terminate TimeChanged Timer
syn keyword vbEvents TitleActivated TitleSelected TitleUpdated
syn keyword vbEvents UnboundAddData UnboundDeleteRow
syn keyword vbEvents UnboundGetRelativeBookmark UnboundReadData
syn keyword vbEvents UnboundWriteData Unformat Unload UpClick Updated
syn keyword vbEvents UserEvent Validate ValidationError
syn keyword vbEvents VisibleRecordChanged WillAssociate WillChangeData
syn keyword vbEvents WillDissociate WillExecute WillUpdateRows
syn keyword vbEvents WriteProperties


syn keyword vbFunction Abs Array Asc AscB AscW Atn Avg BOF CBool CByte
syn keyword vbFunction CCur CDate CDbl CInt CLng CSng CStr CVDate CVErr
syn keyword vbFunction CVar CallByName Cdec Choose Chr ChrB ChrW Command
syn keyword vbFunction Cos Count CreateObject CurDir DDB Date DateAdd
syn keyword vbFunction DateDiff DatePart DateSerial DateValue Day Dir
syn keyword vbFunction DoEvents EOF Environ Error Exp FV FileAttr
syn keyword vbFunction FileDateTime FileLen FilterFix Fix Format
syn keyword vbFunction FormatCurrency FormatDateTime FormatNumber
syn keyword vbFunction FormatPercent FreeFile GetAllStrings GetAttr
syn keyword vbFunction GetAutoServerSettings GetObject GetSetting Hex
syn keyword vbFunction Hour IIf IMEStatus IPmt InStr Input InputB
syn keyword vbFunction InputBox InstrB Int IsArray IsDate IsEmpty IsError
syn keyword vbFunction IsMissing IsNull IsNumeric IsObject Join LBound
syn keyword vbFunction LCase LOF LTrim Left LeftB Len LenB LoadPicture
syn keyword vbFunction LoadResData LoadResPicture LoadResString Loc Log
syn keyword vbFunction MIRR Max Mid MidB Min Minute Month MonthName
syn keyword vbFunction MsgBox NPV NPer Now Oct PPmt PV Partition Pmt
syn keyword vbFunction QBColor RGB RTrim Rate Replace Right RightB Rnd
syn keyword vbFunction Round SLN SYD Second Seek Sgn Shell Sin Space Spc
syn keyword vbFunction Split Sqr StDev StDevP Str StrComp StrConv
syn keyword vbFunction StrReverse String Sum Switch Tab Tan Time
syn keyword vbFunction TimeSerial TimeValue Timer Trim TypeName UBound
syn keyword vbFunction UCase Val Var VarP VarType Weekday WeekdayName
syn keyword vbFunction Year

syn keyword vbMethods AboutBox Accept Activate Add AddCustom AddFile
syn keyword vbMethods AddFromFile AddFromGuid AddFromString
syn keyword vbMethods AddFromTemplate AddItem AddNew AddToAddInToolbar
syn keyword vbMethods AddToolboxProgID Append AppendAppendChunk
syn keyword vbMethods AppendChunk Arrange Assert AsyncRead BatchUpdate
syn keyword vbMethods BeginQueryEdit BeginTrans Bind BuildPath
syn keyword vbMethods CanPropertyChange Cancel CancelAsyncRead
syn keyword vbMethods CancelBatch CancelUpdate CaptureImage CellText
syn keyword vbMethods CellValue Circle Clear ClearFields ClearSel
syn keyword vbMethods ClearSelCols ClearStructure Clone Close Cls
syn keyword vbMethods ColContaining CollapseAll ColumnSize CommitTrans
syn keyword vbMethods CompactDatabase Compose Connect Copy CopyFile
syn keyword vbMethods CopyFolder CopyQueryDef Count CreateDatabase
syn keyword vbMethods CreateDragImage CreateEmbed CreateField
syn keyword vbMethods CreateFolder CreateGroup CreateIndex CreateLink
syn keyword vbMethods CreatePreparedStatement CreatePropery CreateQuery
syn keyword vbMethods CreateQueryDef CreateRelation CreateTableDef
syn keyword vbMethods CreateTextFile CreateToolWindow CreateUser
syn keyword vbMethods CreateWorkspace Customize Cut Delete
syn keyword vbMethods DeleteColumnLabels DeleteColumns DeleteFile
syn keyword vbMethods DeleteFolder DeleteLines DeleteRowLabels
syn keyword vbMethods DeleteRows DeselectAll DesignerWindow DoVerb Drag
syn keyword vbMethods Draw DriveExists Edit EditCopy EditPaste EndDoc
syn keyword vbMethods EnsureVisible EstablishConnection Execute Exists
syn keyword vbMethods Expand Export ExportReport ExtractIcon Fetch
syn keyword vbMethods FetchVerbs FileExists Files FillCache Find
syn keyword vbMethods FindFirst FindItem FindLast FindNext FindPrevious
syn keyword vbMethods FolderExists Forward GetAbsolutePathName
syn keyword vbMethods GetBaseName GetBookmark GetChunk GetClipString
syn keyword vbMethods GetData GetDrive GetDriveName GetFile GetFileName
syn keyword vbMethods GetFirstVisible GetFolder GetFormat GetHeader
syn keyword vbMethods GetLineFromChar GetNumTicks GetParentFolderName
syn keyword vbMethods GetRows GetSelectedPart GetSelection
syn keyword vbMethods GetSpecialFolder GetTempName GetText
syn keyword vbMethods GetVisibleCount GoBack GoForward Hide HitTest
syn keyword vbMethods HoldFields Idle Import InitializeLabels Insert
syn keyword vbMethods InsertColumnLabels InsertColumns InsertFile
syn keyword vbMethods InsertLines InsertObjDlg InsertRowLabels
syn keyword vbMethods InsertRows Item Keys KillDoc Layout Line Lines
syn keyword vbMethods LinkExecute LinkPoke LinkRequest LinkSend Listen
syn keyword vbMethods LoadFile LoadResData LoadResPicture LoadResString
syn keyword vbMethods LogEvent MakeCompileFile MakeCompiledFile
syn keyword vbMethods MakeReplica MoreResults Move MoveData MoveFile
syn keyword vbMethods MoveFirst MoveFolder MoveLast MoveNext
syn keyword vbMethods MovePrevious NavigateTo NewPage NewPassword
syn keyword vbMethods NextRecordset OLEDrag OnAddinsUpdate OnConnection
syn keyword vbMethods OnDisconnection OnStartupComplete Open
syn keyword vbMethods OpenAsTextStream OpenConnection OpenDatabase
syn keyword vbMethods OpenQueryDef OpenRecordset OpenResultset OpenURL
syn keyword vbMethods Overlay PSet PaintPicture PastSpecialDlg Paste
syn keyword vbMethods PeekData Play Point PopulatePartial PopupMenu
syn keyword vbMethods Print PrintForm PrintReport PropertyChanged Quit
syn keyword vbMethods Raise RandomDataFill RandomFillColumns
syn keyword vbMethods RandomFillRows ReFill Read ReadAll ReadFromFile
syn keyword vbMethods ReadLine ReadProperty Rebind Refresh RefreshLink
syn keyword vbMethods RegisterDatabase ReleaseInstance Reload Remove
syn keyword vbMethods RemoveAddInFromToolbar RemoveAll RemoveItem Render
syn keyword vbMethods RepairDatabase ReplaceLine Reply ReplyAll Requery
syn keyword vbMethods ResetCustom ResetCustomLabel ResolveName
syn keyword vbMethods RestoreToolbar Resync Rollback RollbackTrans
syn keyword vbMethods RowBookmark RowContaining RowTop Save SaveAs
syn keyword vbMethods SaveFile SaveToFile SaveToOle1File SaveToolbar
syn keyword vbMethods Scale ScaleX ScaleY Scroll SelPrint SelectAll
syn keyword vbMethods SelectPart Send SendData Set SetAutoServerSettings
syn keyword vbMethods SetData SetFocus SetOption SetSelection SetSize
syn keyword vbMethods SetText SetViewport Show ShowColor ShowFont
syn keyword vbMethods ShowHelp ShowOpen ShowPrinter ShowSave
syn keyword vbMethods ShowWhatsThis SignOff SignOn Size Skip SkipLine
syn keyword vbMethods Span Split SplitContaining StartLabelEdit
syn keyword vbMethods StartLogging Stop Synchronize Tag TextHeight
syn keyword vbMethods TextWidth ToDefaults Trace TwipsToChartPart
syn keyword vbMethods TypeByChartType URLFor Update UpdateControls
syn keyword vbMethods UpdateRecord UpdateRow Upto ValidateControls Value
syn keyword vbMethods WhatsThisMode Write WriteBlankLines WriteLine
syn keyword vbMethods WriteProperty WriteTemplate ZOrder
syn keyword vbMethods rdoCreateEnvironment rdoRegisterDataSource

syn keyword vbStatement Alias AppActivate As Base Beep Begin Call ChDir
syn keyword vbStatement ChDrive Close Const Date Declare DefBool DefByte
syn keyword vbStatement DefCur DefDate DefDbl DefDec DefInt DefLng DefObj
syn keyword vbStatement DefSng DefStr DefVar Deftype DeleteSetting Dim Do
syn keyword vbStatement Each ElseIf End Enum Erase Error Event Exit
syn keyword vbStatement Explicit FileCopy For ForEach Function Get GoSub
syn keyword vbStatement GoTo Gosub Implements Kill LSet Let Lib LineInput
syn keyword vbStatement Load Lock Loop Mid MkDir Name Next On OnError Open
syn keyword vbStatement Option Preserve Private Property Public Put RSet
syn keyword vbStatement RaiseEvent Randomize ReDim Redim Reset Resume
syn keyword vbStatement Return RmDir SavePicture SaveSetting Seek SendKeys
syn keyword vbStatement Sendkeys Set SetAttr Static Step Stop Sub Time
syn keyword vbStatement Type Unload Unlock Until Wend While Width With
syn keyword vbStatement Write

syn keyword vbKeyword As Binary ByRef ByVal Date Empty Error Friend Get
syn keyword vbKeyword Input Is Len Lock Me Mid New Nothing Null On
syn keyword vbKeyword Option Optional ParamArray Print Private Property
syn keyword vbKeyword Public PublicNotCreateable OnNewProcessSingleUse
syn keyword vbKeyword InSameProcessMultiUse GlobalMultiUse Resume Seek
syn keyword vbKeyword Set Static Step String Time WithEvents

syn keyword vbTodo contained	TODO

"Datatypes
syn keyword vbTypes Boolean Byte Currency Date Decimal Double Empty
syn keyword vbTypes Integer Long Object Single String Variant

"VB defined values
syn keyword vbDefine dbBigInt dbBinary dbBoolean dbByte dbChar
syn keyword vbDefine dbCurrency dbDate dbDecimal dbDouble dbFloat
syn keyword vbDefine dbGUID dbInteger dbLong dbLongBinary dbMemo
syn keyword vbDefine dbNumeric dbSingle dbText dbTime dbTimeStamp
syn keyword vbDefine dbVarBinary

"VB defined values
syn keyword vbDefine vb3DDKShadow vb3DFace vb3DHighlight vb3DLight
syn keyword vbDefine vb3DShadow vbAbort vbAbortRetryIgnore
syn keyword vbDefine vbActiveBorder vbActiveTitleBar vbAlias
syn keyword vbDefine vbApplicationModal vbApplicationWorkspace
syn keyword vbDefine vbAppTaskManager vbAppWindows vbArchive vbArray
syn keyword vbDefine vbBack vbBinaryCompare vbBlack vbBlue vbBoolean
syn keyword vbDefine vbButtonFace vbButtonShadow vbButtonText vbByte
syn keyword vbDefine vbCalGreg vbCalHijri vbCancel vbCr vbCritical
syn keyword vbDefine vbCrLf vbCurrency vbCyan vbDatabaseCompare
syn keyword vbDefine vbDataObject vbDate vbDecimal vbDefaultButton1
syn keyword vbDefine vbDefaultButton2 vbDefaultButton3 vbDefaultButton4
syn keyword vbDefine vbDesktop vbDirectory vbDouble vbEmpty vbError
syn keyword vbDefine vbExclamation vbFirstFourDays vbFirstFullWeek
syn keyword vbDefine vbFirstJan1 vbFormCode vbFormControlMenu
syn keyword vbDefine vbFormFeed vbFormMDIForm vbFriday vbFromUnicode
syn keyword vbDefine vbGrayText vbGreen vbHidden vbHide vbHighlight
syn keyword vbDefine vbHighlightText vbHiragana vbIgnore vbIMEAlphaDbl
syn keyword vbDefine vbIMEAlphaSng vbIMEDisable vbIMEHiragana
syn keyword vbDefine vbIMEKatakanaDbl vbIMEKatakanaSng vbIMEModeAlpha
syn keyword vbDefine vbIMEModeAlphaFull vbIMEModeDisable
syn keyword vbDefine vbIMEModeHangul vbIMEModeHangulFull
syn keyword vbDefine vbIMEModeHiragana vbIMEModeKatakana
syn keyword vbDefine vbIMEModeKatakanaHalf vbIMEModeNoControl
syn keyword vbDefine vbIMEModeOff vbIMEModeOn vbIMENoOp vbIMEOff
syn keyword vbDefine vbIMEOn vbInactiveBorder vbInactiveCaptionText
syn keyword vbDefine vbInactiveTitleBar vbInfoBackground vbInformation
syn keyword vbDefine vbInfoText vbInteger vbKatakana vbKey0 vbKey1
syn keyword vbDefine vbKey2 vbKey3 vbKey4 vbKey5 vbKey6 vbKey7 vbKey8
syn keyword vbDefine vbKey9 vbKeyA vbKeyAdd vbKeyB vbKeyBack vbKeyC
syn keyword vbDefine vbKeyCancel vbKeyCapital vbKeyClear vbKeyControl
syn keyword vbDefine vbKeyD vbKeyDecimal vbKeyDelete vbKeyDivide
syn keyword vbDefine vbKeyDown vbKeyE vbKeyEnd vbKeyEscape vbKeyExecute
syn keyword vbDefine vbKeyF vbKeyF1 vbKeyF10 vbKeyF11 vbKeyF12 vbKeyF13
syn keyword vbDefine vbKeyF14 vbKeyF15 vbKeyF16 vbKeyF2 vbKeyF3 vbKeyF4
syn keyword vbDefine vbKeyF5 vbKeyF6 vbKeyF7 vbKeyF8 vbKeyF9 vbKeyG
syn keyword vbDefine vbKeyH vbKeyHelp vbKeyHome vbKeyI vbKeyInsert
syn keyword vbDefine vbKeyJ vbKeyK vbKeyL vbKeyLButton vbKeyLeft vbKeyM
syn keyword vbDefine vbKeyMButton vbKeyMenu vbKeyMultiply vbKeyN
syn keyword vbDefine vbKeyNumlock vbKeyNumpad0 vbKeyNumpad1
syn keyword vbDefine vbKeyNumpad2 vbKeyNumpad3 vbKeyNumpad4
syn keyword vbDefine vbKeyNumpad5 vbKeyNumpad6 vbKeyNumpad7
syn keyword vbDefine vbKeyNumpad8 vbKeyNumpad9 vbKeyO vbKeyP
syn keyword vbDefine vbKeyPageDown vbKeyPageUp vbKeyPause vbKeyPrint
syn keyword vbDefine vbKeyQ vbKeyR vbKeyRButton vbKeyReturn vbKeyRight
syn keyword vbDefine vbKeyS vbKeySelect vbKeySeparator vbKeyShift
syn keyword vbDefine vbKeySnapshot vbKeySpace vbKeySubtract vbKeyT
syn keyword vbDefine vbKeyTab vbKeyU vbKeyUp vbKeyV vbKeyW vbKeyX
syn keyword vbDefine vbKeyY vbKeyZ vbLf vbLong vbLowerCase vbMagenta
syn keyword vbDefine vbMaximizedFocus vbMenuBar vbMenuText
syn keyword vbDefine vbMinimizedFocus vbMinimizedNoFocus vbMonday
syn keyword vbDefine vbMsgBox vbMsgBoxHelpButton vbMsgBoxRight
syn keyword vbDefine vbMsgBoxRtlReading vbMsgBoxSetForeground
syn keyword vbDefine vbMsgBoxText vbNarrow vbNewLine vbNo vbNormal
syn keyword vbDefine vbNormalFocus vbNormalNoFocus vbNull vbNullChar
syn keyword vbDefine vbNullString vbObject vbObjectError vbOK
syn keyword vbDefine vbOKCancel vbOKOnly vbProperCase vbQuestion
syn keyword vbDefine vbReadOnly vbRed vbRetry vbRetryCancel vbSaturday
syn keyword vbDefine vbScrollBars vbSingle vbString vbSunday vbSystem
syn keyword vbDefine vbSystemModal vbTab vbTextCompare vbThursday
syn keyword vbDefine vbTitleBarText vbTuesday vbUnicode vbUpperCase
syn keyword vbDefine vbUseSystem vbUseSystemDayOfWeek vbVariant
syn keyword vbDefine vbVerticalTab vbVolume vbWednesday vbWhite vbWide
syn keyword vbDefine vbWindowBackground vbWindowFrame vbWindowText
syn keyword vbDefine vbYellow vbYes vbYesNo vbYesNoCancel

"Numbers
"integer number, or floating point number without a dot.
syn match vbNumber "\<\d\+\>"
"floating point number, with dot
syn match vbNumber "\<\d\+\.\d*\>"
"floating point number, starting with a dot
syn match vbNumber "\.\d\+\>"
"syn match  vbNumber		"{[[:xdigit:]-]\+}\|&[hH][[:xdigit:]]\+&"
"syn match  vbNumber		":[[:xdigit:]]\+"
"syn match  vbNumber		"[-+]\=\<\d\+\>"
syn match  vbFloat		"[-+]\=\<\d\+[eE][\-+]\=\d\+"
syn match  vbFloat		"[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
syn match  vbFloat		"[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="

" String and Character contstants
syn region  vbString		start=+"+  end=+"\|$+
syn region  vbComment		start="\(^\|\s\)REM\s" end="$" contains=vbTodo
syn region  vbComment		start="\(^\|\s\)\'"   end="$" contains=vbTodo
syn match   vbLineNumber	"^\d\+\(\s\|$\)"
syn match   vbTypeSpecifier  "[a-zA-Z0-9][\$%&!#]"ms=s+1
syn match   vbTypeSpecifier  "#[a-zA-Z0-9]"me=e-1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link vbBoolean		Boolean
hi def link vbLineNumber		Comment
hi def link vbComment		Comment
hi def link vbConditional	Conditional
hi def link vbConst			Constant
hi def link vbDefine			Constant
hi def link vbError			Error
hi def link vbFunction		Identifier
hi def link vbIdentifier		Identifier
hi def link vbNumber			Number
hi def link vbFloat			Float
hi def link vbMethods		PreProc
hi def link vbOperator		Operator
hi def link vbRepeat			Repeat
hi def link vbString			String
hi def link vbStatement		Statement
hi def link vbKeyword		Statement
hi def link vbEvents			Special
hi def link vbTodo			Todo
hi def link vbTypes			Type
hi def link vbTypeSpecifier	Type


let b:current_syntax = "vb"

" vim: ts=8
PK�j�Z�ͅGGvim80/syntax/cfg.vimnu�[���" Vim syntax file
" Language:	Good old CFG files
" Maintainer:	Igor N. Prischepoff (igor@tyumbit.ru, pri_igor@mail.ru)
" Last change:	2012 Aug 11

" quit when a syntax file was already loaded
if exists ("b:current_syntax")
    finish
endif

" case off
syn case ignore
syn keyword CfgOnOff  ON OFF YES NO TRUE FALSE  contained
syn match UncPath "\\\\\p*" contained
"Dos Drive:\Path
syn match CfgDirectory "[a-zA-Z]:\\\p*" contained
"Parameters
syn match   CfgParams    ".\{0}="me=e-1 contains=CfgComment
"... and their values (don't want to highlight '=' sign)
syn match   CfgValues    "=.*"hs=s+1 contains=CfgDirectory,UncPath,CfgComment,CfgString,CfgOnOff

" Sections
syn match CfgSection	    "\[.*\]"
syn match CfgSection	    "{.*}"

" String
syn match  CfgString	"\".*\"" contained
syn match  CfgString    "'.*'"   contained

" Comments (Everything before '#' or '//' or ';')
syn match  CfgComment	"#.*"
syn match  CfgComment	";.*"
syn match  CfgComment	"\/\/.*"

" Define the default hightlighting.
" Only when an item doesn't have highlighting yet
hi def link CfgOnOff     Label
hi def link CfgComment	Comment
hi def link CfgSection	Type
hi def link CfgString	String
hi def link CfgParams    Keyword
hi def link CfgValues    Constant
hi def link CfgDirectory Directory
hi def link UncPath      Directory


let b:current_syntax = "cfg"
" vim:ts=8
PK�j�Zkz����vim80/syntax/catalog.vimnu�[���" Vim syntax file
" Language:	sgml catalog file
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Fr, 04 Nov 2005 12:46:45 CET
" Filenames:	/etc/sgml.catalog
" $Id: catalog.vim,v 1.2 2005/11/23 21:11:10 vimboss Exp $

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" strings
syn region  catalogString start=+"+ skip=+\\\\\|\\"+ end=+"+ keepend
syn region  catalogString start=+'+ skip=+\\\\\|\\'+ end=+'+ keepend

syn region  catalogComment      start=+--+   end=+--+ contains=catalogTodo
syn keyword catalogTodo		TODO FIXME XXX NOTE contained
syn keyword catalogKeyword	DOCTYPE OVERRIDE PUBLIC DTDDECL ENTITY CATALOG


" The default highlighting.
hi def link catalogString		     String
hi def link catalogComment		     Comment
hi def link catalogTodo			     Todo
hi def link catalogKeyword		     Statement

let b:current_syntax = "catalog"
PK�j�Z�/�vim80/syntax/pyrex.vimnu�[���" Vim syntax file
" Language:	Pyrex
" Maintainer:	Marco Barisione <marco.bari@people.it>
" URL:		http://marcobari.altervista.org/pyrex_vim.html
" Last Change:	2009 Nov 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the Python syntax to start with
runtime! syntax/python.vim
unlet b:current_syntax

" Pyrex extentions
syn keyword pyrexStatement      cdef typedef ctypedef sizeof
syn keyword pyrexType		int long short float double char object void
syn keyword pyrexType		signed unsigned
syn keyword pyrexStructure	struct union enum
syn keyword pyrexInclude	include cimport
syn keyword pyrexAccess		public private property readonly extern
" If someome wants Python's built-ins highlighted probably he
" also wants Pyrex's built-ins highlighted
if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
    syn keyword pyrexBuiltin    NULL
endif

" This deletes "from" from the keywords and re-adds it as a
" match with lower priority than pyrexForFrom
syn clear   pythonInclude
syn keyword pythonInclude     import
syn match   pythonInclude     "from"

" With "for[^:]*\zsfrom" VIM does not match "for" anymore, so
" I used the slower "\@<=" form
syn match   pyrexForFrom        "\(for[^:]*\)\@<=from"

" Default highlighting
hi def link pyrexStatement		Statement
hi def link pyrexType		Type
hi def link pyrexStructure		Structure
hi def link pyrexInclude		PreCondit
hi def link pyrexAccess		pyrexStatement
if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
hi def link pyrexBuiltin	Function
endif
hi def link pyrexForFrom		Statement


let b:current_syntax = "pyrex"
PK�j�Z�`y&vim80/syntax/eiffel.vimnu�[���" Eiffel syntax file
" Language:	Eiffel
" Maintainer: Jocelyn Fiat <jfiat@eiffel.com>
" Previous maintainer:	Reimer Behrends <behrends@cse.msu.edu>
" Contributions from: Thilo Six
" 
" URL: https://github.com/eiffelhub/vim-eiffel
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:keepcpo= &cpo
set cpo&vim

" Option handling

if exists("eiffel_ignore_case")
  syn case ignore
else
  syn case match
  if exists("eiffel_pedantic") || exists("eiffel_strict")
    syn keyword eiffelError	current void result precursor none
    syn keyword eiffelError	CURRENT VOID RESULT PRECURSOR None
    syn keyword eiffelError	TRUE FALSE
  endif
  if exists("eiffel_pedantic")
    syn keyword eiffelError	true false
    syn match eiffelError	"\<[a-z_]\+[A-Z][a-zA_Z_]*\>"
    syn match eiffelError	"\<[A-Z][a-z_]*[A-Z][a-zA-Z_]*\>"
  endif
  if exists("eiffel_lower_case_predef")
    syn keyword eiffelPredefined current void result precursor
  endif
endif

if exists("eiffel_hex_constants")
  syn match  eiffelNumber	"\d[0-9a-fA-F]*[xX]"
endif

" Keyword definitions

syn keyword eiffelTopStruct	note indexing feature creation inherit
syn match   eiffelTopStruct	"\<class\>"
syn match   eiffelKeyword	"\<end\>"
syn match   eiffelTopStruct	"^end\>\(\s*--\s\+class\s\+\<[A-Z][A-Z0-9_]*\>\)\=" contains=eiffelClassName
syn match   eiffelBrackets	"[[\]]"
syn match eiffelBracketError	"\]"
syn region eiffelGeneric	transparent matchgroup=eiffelBrackets start="\[" end="\]" contains=ALLBUT,eiffelBracketError,eiffelGenericDecl,eiffelStringError,eiffelStringEscape,eiffelGenericCreate,eiffelTopStruct
if exists("eiffel_ise")
  syn match   eiffelAgent	"\<agent\>"
  syn match   eiffelConvert	"\<convert\>"
  syn match   eiffelCreate	"\<create\>"
  syn match   eiffelTopStruct	contained "\<create\>"
  syn match   eiffelTopStruct	contained "\<convert\>"
  syn match   eiffelGenericCreate  contained "\<create\>"
  syn match   eiffelTopStruct	"^create\>"
  syn region  eiffelGenericDecl	transparent matchgroup=eiffelBrackets contained start="\[" end="\]" contains=ALLBUT,eiffelCreate,eiffelTopStruct,eiffelGeneric,eiffelBracketError,eiffelStringEscape,eiffelStringError,eiffelBrackets
  syn region  eiffelClassHeader	start="^class\>" end="$" contains=ALLBUT,eiffelCreate,eiffelGenericCreate,eiffelGeneric,eiffelStringEscape,eiffelStringError,eiffelBrackets
endif
syn keyword eiffelDeclaration	is do once deferred unique local attribute assign
syn keyword eiffelDeclaration	attached detachable Unique
syn keyword eiffelProperty	expanded obsolete separate frozen
syn keyword eiffelProperty	prefix infix
syn keyword eiffelInheritClause	rename redefine undefine select export as
syn keyword eiffelAll		all
syn keyword eiffelKeyword	external alias some
syn keyword eiffelStatement	if else elseif inspect
syn keyword eiffelStatement	when then
syn match   eiffelAssertion	"\<require\(\s\+else\)\=\>"
syn match   eiffelAssertion	"\<ensure\(\s\+then\)\=\>"
syn keyword eiffelAssertion	check
syn keyword eiffelDebug		debug
syn keyword eiffelStatement	across from until loop
syn keyword eiffelAssertion	variant
syn match   eiffelAssertion	"\<invariant\>"
syn match   eiffelTopStruct	"^invariant\>"
syn keyword eiffelException	rescue retry

syn keyword eiffelPredefined	Current Void Result Precursor

" Operators
syn match   eiffelOperator	"\<and\(\s\+then\)\=\>"
syn match   eiffelOperator	"\<or\(\s\+else\)\=\>"
syn keyword eiffelOperator	xor implies not
syn keyword eiffelOperator	strip old
syn keyword eiffelOperator	Strip
syn match   eiffelOperator	"\$"
syn match   eiffelCreation	"!"
syn match   eiffelExport	"[{}]"
syn match   eiffelArray		"<<"
syn match   eiffelArray		">>"
syn match   eiffelConstraint	"->"
syn match   eiffelOperator	"[@#|&][^ \e\t\b%]*"

" Special classes
syn keyword eiffelAnchored	like
syn keyword eiffelBitType	BIT

" Constants
if !exists("eiffel_pedantic")
  syn keyword eiffelBool	true false
endif
syn keyword eiffelBool		True False
syn region  eiffelString	start=+"+ skip=+%"+ end=+"+ contains=eiffelStringEscape,eiffelStringError
syn match   eiffelStringEscape	contained "%[^/]"
syn match   eiffelStringEscape	contained "%/\d\+/"
syn match   eiffelStringEscape	contained "^[ \t]*%"
syn match   eiffelStringEscape	contained "%[ \t]*$"
syn match   eiffelStringError	contained "%/[^0-9]"
syn match   eiffelStringError	contained "%/\d\+[^0-9/]"
syn match   eiffelBadConstant	"'\(%[^/]\|%/\d\+/\|[^'%]\)\+'"
syn match   eiffelBadConstant	"''"
syn match   eiffelCharacter	"'\(%[^/]\|%/\d\+/\|[^'%]\)'" contains=eiffelStringEscape
syn match   eiffelNumber	"-\=\<\d\+\(_\d\+\)*\>"
syn match   eiffelNumber	"\<[01]\+[bB]\>"
syn match   eiffelNumber	"-\=\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\)\=\([eE][-+]\=\d\+\(_\d\+\)*\)\="
syn match   eiffelNumber	"-\=\.\d\+\(_\d\+\)*\([eE][-+]\=\d\+\(_\d\+\)*\)\="
syn match   eiffelComment	"--.*" contains=eiffelTodo

syn case match

" Case sensitive stuff

syn keyword eiffelTodo		contained TODO XXX FIXME
syn match   eiffelClassName	"\<[A-Z][A-Z0-9_]*\>"

" Catch mismatched parentheses
syn match eiffelParenError	")"
syn region eiffelParen		transparent start="(" end=")" contains=ALLBUT,eiffelParenError,eiffelStringError,eiffelStringEscape

if exists("eiffel_fold")
"    setlocal foldmethod=indent
"    syn sync fromstart
endif

" Should suffice for even very long strings and expressions
syn sync lines=40

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link eiffelKeyword		Statement
hi def link eiffelProperty		Statement
hi def link eiffelInheritClause	Statement
hi def link eiffelStatement	Statement
hi def link eiffelDeclaration	Statement
hi def link eiffelAssertion	Statement
hi def link eiffelDebug		Statement
hi def link eiffelException	Statement
hi def link eiffelGenericCreate	Statement

hi def link eiffelAgent		Statement
hi def link eiffelConvert		Statement

hi def link eiffelTopStruct	PreProc

hi def link eiffelAll		Special
hi def link eiffelAnchored		Special
hi def link eiffelBitType		Special


hi def link eiffelBool		Boolean
hi def link eiffelString		String
hi def link eiffelCharacter	Character
hi def link eiffelClassName	Type
hi def link eiffelNumber		Number

hi def link eiffelStringEscape	Special

hi def link eiffelOperator		Special
hi def link eiffelArray		Special
hi def link eiffelExport		Special
hi def link eiffelCreation		Special
hi def link eiffelBrackets		Special
hi def link eiffelGeneric		Special
hi def link eiffelGenericDecl	Special
hi def link eiffelConstraint	Special
hi def link eiffelCreate		Special

hi def link eiffelPredefined	Constant

hi def link eiffelComment		Comment

hi def link eiffelError		Error
hi def link eiffelBadConstant	Error
hi def link eiffelStringError	Error
hi def link eiffelParenError	Error
hi def link eiffelBracketError	Error

hi def link eiffelTodo		Todo


let b:current_syntax = "eiffel"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: ts=8
PK�j�Z�Ժ��#�#vim80/syntax/screen.vimnu�[���" Vim syntax file
" Language:             screen(1) configuration file
" Maintainer:           Dmitri Vereshchagin <dmitri.vereshchagin@gmail.com>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2015-09-24

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   screenEscape    '\\.'

syn keyword screenTodo      contained TODO FIXME XXX NOTE

syn region  screenComment   display oneline start='#' end='$'
                          \ contains=screenTodo,@Spell

syn region  screenString    display oneline start=+"+ skip=+\\"+ end=+"+
                          \ contains=screenVariable,screenSpecial

syn region  screenLiteral   display oneline start=+'+ skip=+\\'+ end=+'+

syn match   screenVariable  contained display '$\%(\h\w*\|{\h\w*}\)'

syn keyword screenBoolean   on off

syn match   screenNumbers   display '\<\d\+\>'

syn match   screenSpecials  contained
                          \ '%\%([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)'

syn keyword screenCommands
                          \ acladd
                          \ aclchg
                          \ acldel
                          \ aclgrp
                          \ aclumask
                          \ activity
                          \ addacl
                          \ allpartial
                          \ altscreen
                          \ at
                          \ attrcolor
                          \ autodetach
                          \ autonuke
                          \ backtick
                          \ bce
                          \ bd_bc_down
                          \ bd_bc_left
                          \ bd_bc_right
                          \ bd_bc_up
                          \ bd_bell
                          \ bd_braille_table
                          \ bd_eightdot
                          \ bd_info
                          \ bd_link
                          \ bd_lower_left
                          \ bd_lower_right
                          \ bd_ncrc
                          \ bd_port
                          \ bd_scroll
                          \ bd_skip
                          \ bd_start_braille
                          \ bd_type
                          \ bd_upper_left
                          \ bd_upper_right
                          \ bd_width
                          \ bell
                          \ bell_msg
                          \ bind
                          \ bindkey
                          \ blanker
                          \ blankerprg
                          \ break
                          \ breaktype
                          \ bufferfile
                          \ bumpleft
                          \ bumpright
                          \ c1
                          \ caption
                          \ chacl
                          \ charset
                          \ chdir
                          \ cjkwidth
                          \ clear
                          \ collapse
                          \ colon
                          \ command
                          \ compacthist
                          \ console
                          \ copy
                          \ crlf
                          \ debug
                          \ defautonuke
                          \ defbce
                          \ defbreaktype
                          \ defc1
                          \ defcharset
                          \ defencoding
                          \ defescape
                          \ defflow
                          \ defgr
                          \ defhstatus
                          \ defkanji
                          \ deflog
                          \ deflogin
                          \ defmode
                          \ defmonitor
                          \ defmousetrack
                          \ defnonblock
                          \ defobuflimit
                          \ defscrollback
                          \ defshell
                          \ defsilence
                          \ defslowpaste
                          \ defutf8
                          \ defwrap
                          \ defwritelock
                          \ defzombie
                          \ detach
                          \ digraph
                          \ dinfo
                          \ displays
                          \ dumptermcap
                          \ echo
                          \ encoding
                          \ escape
                          \ eval
                          \ exec
                          \ fit
                          \ flow
                          \ focus
                          \ focusminsize
                          \ gr
                          \ group
                          \ hardcopy
                          \ hardcopy_append
                          \ hardcopydir
                          \ hardstatus
                          \ height
                          \ help
                          \ history
                          \ hstatus
                          \ idle
                          \ ignorecase
                          \ info
                          \ kanji
                          \ kill
                          \ lastmsg
                          \ layout
                          \ license
                          \ lockscreen
                          \ log
                          \ logfile
                          \ login
                          \ logtstamp
                          \ mapdefault
                          \ mapnotnext
                          \ maptimeout
                          \ markkeys
                          \ maxwin
                          \ meta
                          \ monitor
                          \ mousetrack
                          \ msgminwait
                          \ msgwait
                          \ multiuser
                          \ nethack
                          \ next
                          \ nonblock
                          \ number
                          \ obuflimit
                          \ only
                          \ other
                          \ partial
                          \ password
                          \ paste
                          \ pastefont
                          \ pow_break
                          \ pow_detach
                          \ pow_detach_msg
                          \ prev
                          \ printcmd
                          \ process
                          \ quit
                          \ readbuf
                          \ readreg
                          \ redisplay
                          \ register
                          \ remove
                          \ removebuf
                          \ rendition
                          \ reset
                          \ resize
                          \ screen
                          \ scrollback
                          \ select
                          \ sessionname
                          \ setenv
                          \ setsid
                          \ shell
                          \ shelltitle
                          \ silence
                          \ silencewait
                          \ sleep
                          \ slowpaste
                          \ sorendition
                          \ sort
                          \ source
                          \ split
                          \ startup_message
                          \ stuff
                          \ su
                          \ suspend
                          \ term
                          \ termcap
                          \ termcapinfo
                          \ terminfo
                          \ time
                          \ title
                          \ umask
                          \ unbindall
                          \ unsetenv
                          \ utf8
                          \ vbell
                          \ vbell_msg
                          \ vbellwait
                          \ verbose
                          \ version
                          \ wall
                          \ width
                          \ windowlist
                          \ windows
                          \ wrap
                          \ writebuf
                          \ writelock
                          \ xoff
                          \ xon
                          \ zmodem
                          \ zombie
                          \ zombie_timeout

hi def link screenEscape    Special
hi def link screenComment   Comment
hi def link screenTodo      Todo
hi def link screenString    String
hi def link screenLiteral   String
hi def link screenVariable  Identifier
hi def link screenBoolean   Boolean
hi def link screenNumbers   Number
hi def link screenSpecials  Special
hi def link screenCommands  Keyword

let b:current_syntax = "screen"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZE��c00vim80/syntax/udevrules.vimnu�[���" Vim syntax file
" Language:             udev(8) rules file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-18

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" TODO: Line continuations.

syn keyword udevrulesTodo       contained TODO FIXME XXX NOTE

syn region  udevrulesComment    display oneline start='^\s*#' end='$'
                                \ contains=udevrulesTodo,@Spell

syn keyword udevrulesRuleKey    ACTION DEVPATH KERNEL SUBSYSTEM KERNELS
                                \ SUBSYSTEMS DRIVERS RESULT
                                \ nextgroup=udevrulesRuleTest
                                \ skipwhite

syn keyword udevrulesRuleKey    ATTRS nextgroup=udevrulesAttrsPath

syn region  udevrulesAttrsPath  display transparent
                                \ matchgroup=udevrulesDelimiter start='{'
                                \ matchgroup=udevrulesDelimiter end='}'
                                \ contains=udevrulesPath
                                \ nextgroup=udevrulesRuleTest
                                \ skipwhite

syn keyword udevrulesRuleKey    ENV nextgroup=udevrulesEnvVar

syn region  udevrulesEnvVar     display transparent
                                \ matchgroup=udevrulesDelimiter start='{'
                                \ matchgroup=udevrulesDelimiter end='}'
                                \ contains=udevrulesVariable
                                \ nextgroup=udevrulesRuleTest,udevrulesRuleEq
                                \ skipwhite

syn keyword udevrulesRuleKey    PROGRAM RESULT
                                \ nextgroup=udevrulesEStringTest,udevrulesEStringEq
                                \ skipwhite

syn keyword udevrulesAssignKey  NAME SYMLINK OWNER GROUP RUN
                                \ nextgroup=udevrulesEStringEq
                                \ skipwhite

syn keyword udevrulesAssignKey  MODE LABEL GOTO WAIT_FOR_SYSFS
                                \ nextgroup=udevrulesRuleEq
                                \ skipwhite

syn keyword udevrulesAssignKey  ATTR nextgroup=udevrulesAttrsPath

syn region  udevrulesAttrKey    display transparent
                                \ matchgroup=udevrulesDelimiter start='{'
                                \ matchgroup=udevrulesDelimiter end='}'
                                \ contains=udevrulesKey
                                \ nextgroup=udevrulesRuleEq
                                \ skipwhite

syn keyword udevrulesAssignKey  IMPORT nextgroup=udevrulesImport,
                                \ udevrulesEStringEq
                                \ skipwhite

syn region  udevrulesImport     display transparent
                                \ matchgroup=udevrulesDelimiter start='{'
                                \ matchgroup=udevrulesDelimiter end='}'
                                \ contains=udevrulesImportType
                                \ nextgroup=udevrulesEStringEq
                                \ skipwhite

syn keyword udevrulesImportType program file parent

syn keyword udevrulesAssignKey  OPTIONS
                                \ nextgroup=udevrulesOptionsEq

syn match   udevrulesPath       contained display '[^}]\+'

syn match   udevrulesVariable   contained display '[^}]\+'

syn match   udevrulesRuleTest   contained display '[=!:]='
                                \ nextgroup=udevrulesString skipwhite

syn match   udevrulesEStringTest contained display '[=!+:]='
                                \ nextgroup=udevrulesEString skipwhite

syn match   udevrulesRuleEq     contained display '+=\|=\ze[^=]'
                                \ nextgroup=udevrulesString skipwhite

syn match   udevrulesEStringEq  contained '+=\|=\ze[^=]'
                                \ nextgroup=udevrulesEString skipwhite

syn match   udevrulesOptionsEq  contained '+=\|=\ze[^=]'
                                \ nextgroup=udevrulesOptions skipwhite

syn region  udevrulesEString    contained display oneline start=+"+ end=+"+
                                \ contains=udevrulesStrEscapes,udevrulesStrVars

syn match   udevrulesStrEscapes contained '%[knpbMmcPrN%]'

" TODO: This can actually stand alone (without {…}), so add a nextgroup here.
syn region  udevrulesStrEscapes contained start='%c{' end='}'
                                \ contains=udevrulesStrNumber

syn region  udevrulesStrEscapes contained start='%s{' end='}'
                                \ contains=udevrulesPath

syn region  udevrulesStrEscapes contained start='%E{' end='}'
                                \ contains=udevrulesVariable

syn match   udevrulesStrNumber  contained '\d\++\='

syn match   udevrulesStrVars    contained display '$\%(kernel\|number\|devpath\|id\|major\|minor\|result\|parent\|root\|tempnode\)\>'

syn region  udevrulesStrVars    contained start='$attr{' end='}'
                                \ contains=udevrulesPath

syn region  udevrulesStrVars    contained start='$env{' end='}'
                                \ contains=udevrulesVariable

syn match   udevrulesStrVars    contained display '\$\$'

syn region  udevrulesString     contained display oneline start=+"+ end=+"+
                                \ contains=udevrulesPattern

syn match   udevrulesPattern    contained '[*?]'
syn region  udevrulesPattern    contained start='\[!\=' end='\]'
                                \ contains=udevrulesPatRange

syn match   udevrulesPatRange   contained '[^[-]-[^]-]'

syn region  udevrulesOptions    contained display oneline start=+"+ end=+"+
                                \ contains=udevrulesOption,udevrulesOptionSep

syn keyword udevrulesOption     contained last_rule ignore_device ignore_remove
                                \ all_partitions

syn match   udevrulesOptionSep  contained ','

hi def link udevrulesTodo       Todo
hi def link udevrulesComment    Comment
hi def link udevrulesRuleKey    Keyword
hi def link udevrulesDelimiter  Delimiter
hi def link udevrulesAssignKey  Identifier
hi def link udevrulesPath       Identifier
hi def link udevrulesVariable   Identifier
hi def link udevrulesAttrKey    Identifier
" XXX: setting this to Operator makes for extremely intense highlighting.
hi def link udevrulesEq         Normal
hi def link udevrulesRuleEq     udevrulesEq
hi def link udevrulesEStringEq  udevrulesEq
hi def link udevrulesOptionsEq  udevrulesEq
hi def link udevrulesEString    udevrulesString
hi def link udevrulesStrEscapes SpecialChar
hi def link udevrulesStrNumber  Number
hi def link udevrulesStrVars    Identifier
hi def link udevrulesString     String
hi def link udevrulesPattern    SpecialChar
hi def link udevrulesPatRange   SpecialChar
hi def link udevrulesOptions    udevrulesString
hi def link udevrulesOption     Type
hi def link udevrulesOptionSep  Delimiter
hi def link udevrulesImportType Type

let b:current_syntax = "udevrules"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z*?���vim80/syntax/udevconf.vimnu�[���" Vim syntax file
" Language:             udev(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword udevconfTodo        contained TODO FIXME XXX NOTE

syn region  udevconfComment     display oneline start='^\s*#' end='$'
                                \ contains=udevconfTodo,@Spell

syn match   udevconfBegin       display '^'
                                \ nextgroup=udevconfVariable,udevconfComment
                                \ skipwhite

syn keyword udevconfVariable    contained udev_root udev_db udev_rules udev_log
                                \ nextgroup=udevconfVariableEq

syn match   udevconfVariableEq  contained '[[:space:]=]'
                                \ nextgroup=udevconfString skipwhite

syn region  udevconfString      contained display oneline start=+"+ end=+"+

hi def link udevconfTodo        Todo
hi def link udevconfComment     Comment
hi def link udevconfVariable    Identifier
hi def link udevconfVariableEq  Operator
hi def link udevconfString      String

let b:current_syntax = "udevconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��vim80/syntax/cdl.vimnu�[���" Vim syntax file
" Language: Comshare Dimension Definition Language
" Maintainer:	Raul Segura Acevedo <raulseguraaceved@netscape.net>
" Last change:	2016 Sep 20

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

sy case ignore
sy sync fromstart
sy keyword	cdlStatement	dimension hierarchy group grouphierarchy schedule class
sy keyword	cdlType		add update file category main altername removeall required notrequired
sy keyword	cdlConditional	if then elseif else endif and or not cons rpt xlt
sy keyword	cdlFunction	ChildOf IChildOf LeafChildOf DescendantOf IDescendantOf LeafDescendantOf MemberIs CountOf

sy keyword	cdlIdentifier	contained id name desc description xlttype precision symbol curr_ name group_name rate_name
sy keyword	cdlIdentifier	contained xcheck endbal accounttype natsign consolidate formula pctown usage periodicity
sy match	cdlIdentifier	contained 'child\s*name'
sy match	cdlIdentifier	contained 'parent\s*name'
sy match	cdlIdentifier	contained 'grp\s*description'
sy match	cdlIdentifier	contained 'grpchild\s*name'
sy match	cdlIdentifier	contained 'grpparent\s*name'
sy match	cdlIdentifier	contained 'preceding\s*member'
sy match	cdlIdentifier	contained 'unit\s*name'
sy match	cdlIdentifier	contained 'unit\s*id'
sy match	cdlIdentifier	contained 'schedule\s*name'
sy match	cdlIdentifier	contained 'schedule\s*id'

sy match	cdlString	/\[[^]]*]/	contains=cdlRestricted,cdlNotSupported
sy match	cdlRestricted	contained /[&*,_]/
" not supported
sy match	cdlNotSupported	contained /[:"!']/

sy keyword	cdlTodo		contained TODO FIXME XXX
sy cluster	cdlCommentGroup contains=cdlTodo
sy match	cdlComment	'//.*' contains=@cdlCommentGroup
sy region	cdlComment	start="/\*" end="\*/" contains=@cdlCommentGroup fold
sy match	cdlCommentE	"\*/"

sy region	cdlParen	transparent start='(' end=')' contains=ALLBUT,cdlParenE,cdlRestricted,cdlNotSupported
"sy region	cdlParen	transparent start='(' end=')' contains=cdlIdentifier,cdlComment,cdlParenWordE
sy match	cdlParenE	")"
"sy match	cdlParenWordE	contained "\k\+"

sy keyword	cdlFxType	allocation downfoot expr xltgain
"sy keyword	cdlFxType	contained allocation downfoot expr xltgain
"sy region	cdlFx		transparent start='\k\+(' end=')' contains=cdlConditional,cdlFunction,cdlString,cdlComment,cdlFxType

set foldmethod=expr
set foldexpr=(getline(v:lnum+1)=~'{'\|\|getline(v:lnum)=~'//\\s\\*\\{5}.*table')?'>1':1
%foldo!
set foldmethod=manual
let b:match_words='\<if\>:\<then\>:\<elseif\>:\<else\>:\<endif\>'

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cdlStatement	Statement
hi def link cdlType		Type
hi def link cdlFxType	Type
hi def link cdlIdentifier	Identifier
hi def link cdlString	String
hi def link cdlRestricted	WarningMsg
hi def link cdlNotSupported	ErrorMsg
hi def link cdlTodo		Todo
hi def link cdlComment	Comment
hi def link cdlCommentE	ErrorMsg
hi def link cdlParenE	ErrorMsg
hi def link cdlParenWordE	ErrorMsg
hi def link cdlFunction	Function
hi def link cdlConditional	Conditional


let b:current_syntax = "cdl"

" vim: ts=8
PK�j�Z
�,vim80/syntax/bdf.vimnu�[���" Vim syntax file
" Language:             BDF font definition
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn region  bdfFontDefinition transparent matchgroup=bdfKeyword
                              \ start='^STARTFONT\>' end='^ENDFONT\>'
                              \ contains=bdfComment,bdfFont,bdfSize,
                              \ bdfBoundingBox,bdfProperties,bdfChars,bdfChar

syn match   bdfNumber         contained display
                              \ '\<\%(\x\+\|[+-]\=\d\+\%(\.\d\+\)*\)'

syn keyword bdfTodo           contained FIXME TODO XXX NOTE

syn region  bdfComment        contained start='^COMMENT\>' end='$'
                              \ contains=bdfTodo,@Spell

syn region  bdfFont           contained matchgroup=bdfKeyword
                              \ start='^FONT\>' end='$'

syn region  bdfSize           contained transparent matchgroup=bdfKeyword
                              \ start='^SIZE\>' end='$' contains=bdfNumber

syn region  bdfBoundingBox    contained transparent matchgroup=bdfKeyword
                              \ start='^FONTBOUNDINGBOX' end='$'
                              \ contains=bdfNumber

syn region  bdfProperties     contained transparent matchgroup=bdfKeyword
                              \ start='^STARTPROPERTIES' end='^ENDPROPERTIES'
                              \ contains=bdfNumber,bdfString,bdfProperty,
                              \ bdfXProperty

syn keyword bdfProperty       contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
syn match   bdfProperty       contained '^\S\+'

syn keyword bdfXProperty      contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
                              \ FONTNAME_REGISTRY FOUNDRY FAMILY_NAME
                              \ WEIGHT_NAME SLANT SETWIDTH_NAME PIXEL_SIZE
                              \ POINT_SIZE RESOLUTION_X RESOLUTION_Y SPACING
                              \ CHARSET_REGISTRY CHARSET_ENCODING COPYRIGHT
                              \ ADD_STYLE_NAME WEIGHT RESOLUTION X_HEIGHT
                              \ QUAD_WIDTH FONT AVERAGE_WIDTH

syn region  bdfString         contained start=+"+ skip=+""+ end=+"+

syn region  bdfChars          contained display transparent
                              \ matchgroup=bdfKeyword start='^CHARS' end='$'
                              \ contains=bdfNumber

syn region  bdfChar           transparent matchgroup=bdfKeyword
                              \ start='^STARTCHAR' end='^ENDCHAR'
                              \ contains=bdfEncoding,bdfWidth,bdfAttributes,
                              \ bdfBitmap

syn region  bdfEncoding       contained transparent matchgroup=bdfKeyword
                              \ start='^ENCODING' end='$' contains=bdfNumber

syn region  bdfWidth          contained transparent matchgroup=bdfKeyword
                              \ start='^SWIDTH\|DWIDTH\|BBX' end='$'
                              \ contains=bdfNumber

syn region  bdfAttributes     contained transparent matchgroup=bdfKeyword
                              \ start='^ATTRIBUTES' end='$'

syn keyword bdfBitmap         contained BITMAP

if exists("bdf_minlines")
  let b:bdf_minlines = bdf_minlines
else
  let b:bdf_minlines = 30
endif
exec "syn sync ccomment bdfChar minlines=" . b:bdf_minlines


hi def link bdfKeyword        Keyword
hi def link bdfNumber         Number
hi def link bdfTodo           Todo
hi def link bdfComment        Comment
hi def link bdfFont           String
hi def link bdfProperty       Identifier
hi def link bdfXProperty      Identifier
hi def link bdfString         String
hi def link bdfChars          Keyword
hi def link bdfBitmap         Keyword

let b:current_syntax = "bdf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZD-���vim80/syntax/manconf.vimnu�[���" Vim syntax file
" Language:             man.conf(5) - man configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword manconfTodo         contained TODO FIXME XXX NOTE

syn region  manconfComment      display oneline start='^#' end='$'
                                \ contains=manconfTodo,@Spell

if !has("win32") && $OSTYPE =~   'bsd'
  syn match   manconfBegin      display '^'
                                \ nextgroup=manconfKeyword,manconfSection,
                                \ manconfComment skipwhite

  syn keyword manconfKeyword    contained _build _crunch
                                \ nextgroup=manconfExtCmd skipwhite

  syn keyword manconfKeyword    contained _suffix
                                \ nextgroup=manconfExt skipwhite

  syn keyword manconfKeyword    contained _crunch

  syn keyword manconfKeyword    contained _subdir _version _whatdb
                                \ nextgroup=manconfPaths skipwhite

  syn match   manconfExtCmd     contained display '\.\S\+'
                                \ nextgroup=manconfPaths skipwhite

  syn match   manconfSection    contained '[^#_ \t]\S*'
                                \ nextgroup=manconfPaths skipwhite

  syn keyword manconfSection    contained _default
                                \ nextgroup=manconfPaths skipwhite

  syn match   manconfPaths      contained display '\S\+'
                                \ nextgroup=manconfPaths skipwhite

  syn match   manconfExt        contained display '\.\S\+'

  hi def link manconfExtCmd     Type
  hi def link manconfSection    Identifier
  hi def link manconfPaths      String
else
  syn match   manconfBegin      display '^'
                                \ nextgroup=manconfBoolean,manconfKeyword,
                                \ manconfDecompress,manconfComment skipwhite

  syn keyword manconfBoolean    contained FSSTND FHS NOAUTOPATH NOCACHE

  syn keyword manconfKeyword    contained MANBIN
                                \ nextgroup=manconfPath skipwhite

  syn keyword manconfKeyword    contained MANPATH MANPATH_MAP
                                \ nextgroup=manconfFirstPath skipwhite

  syn keyword manconfKeyword    contained APROPOS WHATIS TROFF NROFF JNROFF EQN
                                \ NEQN JNEQN TBL COL REFER PIC VGRIND GRAP
                                \ PAGER BROWSER HTMLPAGER CMP CAT COMPRESS
                                \ DECOMPRESS MANDEFOPTIONS
                                \ nextgroup=manconfCommand skipwhite

  syn keyword manconfKeyword    contained COMPRESS_EXT
                                \ nextgroup=manconfExt skipwhite

  syn keyword manconfKeyword    contained MANSECT
                                \ nextgroup=manconfManSect skipwhite

  syn match   manconfPath       contained display '\S\+'

  syn match   manconfFirstPath  contained display '\S\+'
                                \ nextgroup=manconfSecondPath skipwhite

  syn match   manconfSecondPath contained display '\S\+'

  syn match   manconfCommand    contained display '\%(/[^/ \t]\+\)\+'
                                \ nextgroup=manconfCommandOpt skipwhite

  syn match   manconfCommandOpt contained display '\S\+'
                                \ nextgroup=manconfCommandOpt skipwhite

  syn match   manconfExt        contained display '\.\S\+'

  syn match   manconfManSect    contained '[^:]\+' nextgroup=manconfManSectSep

  syn match   manconfManSectSep contained ':' nextgroup=manconfManSect

  syn match   manconfDecompress contained '\.\S\+'
                                \ nextgroup=manconfCommand skipwhite

  hi def link manconfBoolean    Boolean
  hi def link manconfPath       String
  hi def link manconfFirstPath  manconfPath
  hi def link manconfSecondPath manconfPath
  hi def link manconfCommand    String
  hi def link manconfCommandOpt Special
  hi def link manconfManSect    Identifier
  hi def link manconfManSectSep Delimiter
  hi def link manconfDecompress Type
endif

hi def link manconfTodo         Todo
hi def link manconfComment      Comment
hi def link manconfKeyword      Keyword
hi def link manconfExt          Type

let b:current_syntax = "manconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZN�k�gBgBvim80/syntax/readline.vimnu�[���" Vim syntax file
" Language:             readline(3) configuration file
" Maintainer:           Daniel Moch <daniel@danielmoch.com>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2017-12-25
"   readline_has_bash - if defined add support for bash specific
"                       settings/functions

if exists('b:current_syntax')
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn match   readlineKey         contained
                              \ '\S'
                              \ nextgroup=readlineKeyTerminator

syn match   readlineBegin       display '^'
                              \ nextgroup=readlineComment,
                              \           readlineConditional,
                              \           readlineInclude,
                              \           readlineKeyName,
                              \           readlineKey,
                              \           readlineKeySeq,
                              \           readlineKeyword
                              \ skipwhite

syn region  readlineComment     contained display oneline
                                \ start='#'
                                \ end='$'
                                \ contains=readlineTodo,
                                \          @Spell

syn keyword readlineTodo        contained
                              \ TODO
                              \ FIXME
                              \ XXX
                              \ NOTE

syn match   readlineConditional contained
                              \ '$if\>'
                              \ nextgroup=readlineTest,
                              \           readlineTestApp
                              \ skipwhite

syn keyword readlineTest        contained
                              \ mode
                              \ nextgroup=readlineTestModeEq

syn match   readlineTestModeEq  contained
                              \ '='
                              \ nextgroup=readlineEditingMode

syn keyword readlineTest        contained
                              \ term
                              \ nextgroup=readlineTestTermEq

syn match   readlineTestTermEq  contained
                              \ '='
                              \ nextgroup=readlineTestTerm

syn match   readlineTestTerm    contained
                              \ '\S\+'

syn match   readlineTestApp     contained
                              \ '\S\+'

syn match   readlineConditional contained display
                              \ '$\%(else\|endif\)\>'

syn match   readlineInclude     contained display
                              \ '$include\>'
                              \ nextgroup=readlinePath

syn match   readlinePath        contained display
                              \ '.\+'

syn case ignore
syn match   readlineKeyName     contained display
                              \ nextgroup=readlineKeySeparator,
                              \           readlineKeyTerminator
                              \ '\%(Control\|Del\|Esc\|Escape\|LFD\|Meta\|Newline\|Ret\|Return\|Rubout\|Space\|Spc\|Tab\)'
syn case match

syn match   readlineKeySeparator  contained
                                \ '-'
                                \ nextgroup=readlineKeyName,
                                \           readlineKey

syn match   readlineKeyTerminator contained
                                \ ':'
                                \ nextgroup=readlineFunction
                                \ skipwhite

syn region  readlineKeySeq     contained display oneline
                              \ start=+"+
                              \ skip=+\\\\\|\\"+
                              \ end=+"+
                              \ contains=readlineKeyEscape
                              \ nextgroup=readlineKeyTerminator

syn match   readlineKeyEscape   contained display
                              \ +\\\([CM]-\|[e\\"'abdfnrtv]\|\o\{3}\|x\x\{2}\)+

syn keyword readlineKeyword     contained
                              \ set
                              \ nextgroup=readlineVariable
                              \ skipwhite

syn keyword readlineVariable    contained 
                              \ nextgroup=readlineBellStyle
                              \ skipwhite
                              \ bell-style

syn keyword readlineVariable    contained
                              \ nextgroup=readlineBoolean
                              \ skipwhite
                              \ bind-tty-special-chars
                              \ colored-stats
                              \ completion-ignore-case
                              \ completion-map-case
                              \ convert-meta
                              \ disable-completion
                              \ echo-control-characters
                              \ enable-keypad
                              \ enable-meta-key
                              \ expand-tilde
                              \ history-preserve-point
                              \ horizontal-scroll-mode
                              \ input-meta
                              \ meta-flag
                              \ mark-directories
                              \ mark-modified-lines
                              \ mark-symlinked-directories
                              \ match-hidden-files
                              \ menu-complete-display-prefix
                              \ output-meta
                              \ page-completions
                              \ print-completions-horizontally
                              \ revert-all-at-newline
                              \ show-all-if-ambiguous
                              \ show-all-if-unmodified
                              \ show-mode-in-prompt
                              \ skip-completed-text
                              \ visible-stats

syn keyword readlineVariable    contained
                              \ nextgroup=readlineString
                              \ skipwhite
                              \ comment-begin
                              \ isearch-terminators
                              \ vi-cmd-mode-string
                              \ vi-ins-mode-string
                              \ emacs-mode-string

syn keyword readlineVariable    contained
                              \ nextgroup=readlineNumber
                              \ skipwhite
                              \ completion-display-width
                              \ completion-prefix-display-length
                              \ completion-query-items
                              \ history-size
                              \ keyseq-timeout

syn keyword readlineVariable    contained
                              \ nextgroup=readlineEditingMode
                              \ skipwhite
                              \ editing-mode

syn keyword readlineVariable    contained
                              \ nextgroup=readlineKeymap
                              \ skipwhite
                              \ keymap

syn keyword readlineBellStyle   contained
                              \ audible
                              \ visible
                              \ none

syn case ignore
syn keyword readlineBoolean     contained
                              \ on
                              \ off
syn case match

syn region  readlineString      contained display oneline
                              \ matchgroup=readlineStringDelimiter
                              \ start=+"+
                              \ skip=+\\\\\|\\"+
                              \ end=+"+

syn match   readlineNumber      contained display
                              \ '[+-]\d\+\>'

syn keyword readlineEditingMode contained
                              \ emacs
                              \ vi

syn match   readlineKeymap      contained display
                              \ 'emacs\%(-\%(standard\|meta\|ctlx\)\)\=\|vi\%(-\%(move\|command\|insert\)\)\='

syn keyword readlineFunction    contained
                              \ beginning-of-line
                              \ end-of-line
                              \ forward-char
                              \ backward-char
                              \ forward-word
                              \ backward-word
                              \ clear-screen
                              \ redraw-current-line
                              \
                              \ accept-line
                              \ previous-history
                              \ next-history
                              \ beginning-of-history
                              \ end-of-history
                              \ reverse-search-history
                              \ forward-search-history
                              \ non-incremental-reverse-search-history
                              \ non-incremental-forward-search-history
                              \ history-search-forward
                              \ history-search-backward
                              \ yank-nth-arg
                              \ yank-last-arg
                              \
                              \ delete-char
                              \ backward-delete-char
                              \ forward-backward-delete-char
                              \ quoted-insert
                              \ tab-insert
                              \ self-insert
                              \ transpose-chars
                              \ transpose-words
                              \ upcase-word
                              \ downcase-word
                              \ capitalize-word
                              \ overwrite-mode
                              \
                              \ kill-line
                              \ backward-kill-line
                              \ unix-line-discard
                              \ kill-whole-line
                              \ kill-word
                              \ backward-kill-word
                              \ unix-word-rubout
                              \ unix-filename-rubout
                              \ delete-horizontal-space
                              \ kill-region
                              \ copy-region-as-kill
                              \ copy-backward-word
                              \ copy-forward-word
                              \ yank
                              \ yank-pop
                              \
                              \ digit-argument
                              \ universal-argument
                              \
                              \ complete
                              \ possible-completions
                              \ insert-completions
                              \ menu-complete
                              \ menu-complete-backward
                              \ delete-char-or-list
                              \
                              \ start-kbd-macro
                              \ end-kbd-macro
                              \ call-last-kbd-macro
                              \
                              \ re-read-init-file
                              \ abort
                              \ do-uppercase-version
                              \ prefix-meta
                              \ undo
                              \ revert-line
                              \ tilde-expand
                              \ set-mark
                              \ exchange-point-and-mark
                              \ character-search
                              \ character-search-backward
                              \ skip-csi-sequence
                              \ insert-comment
                              \ dump-functions
                              \ dump-variables
                              \ dump-macros
                              \ emacs-editing-mode
                              \ vi-editing-mode
                              \
                              \ vi-eof-maybe
                              \ vi-movement-mode
                              \ vi-undo
                              \ vi-match
                              \ vi-tilde-expand
                              \ vi-complete
                              \ vi-char-search
                              \ vi-redo
                              \ vi-search
                              \ vi-arg-digit
                              \ vi-append-eol
                              \ vi-prev-word
                              \ vi-change-to
                              \ vi-delete-to
                              \ vi-end-word
                              \ vi-char-search
                              \ vi-fetch-history
                              \ vi-insert-beg
                              \ vi-search-again
                              \ vi-put
                              \ vi-replace
                              \ vi-subst
                              \ vi-char-search
                              \ vi-next-word
                              \ vi-yank-to
                              \ vi-first-print
                              \ vi-yank-arg
                              \ vi-goto-mark
                              \ vi-append-mode
                              \ vi-prev-word
                              \ vi-change-to
                              \ vi-delete-to
                              \ vi-end-word
                              \ vi-char-search
                              \ vi-insert-mode
                              \ vi-set-mark
                              \ vi-search-again
                              \ vi-put
                              \ vi-change-char
                              \ vi-subst
                              \ vi-char-search
                              \ vi-undo
                              \ vi-next-word
                              \ vi-delete
                              \ vi-yank-to
                              \ vi-column
                              \ vi-change-case

if exists("readline_has_bash")
  syn keyword readlineFunction  contained
                              \ shell-expand-line
                              \ history-expand-line
                              \ magic-space
                              \ alias-expand-line
                              \ history-and-alias-expand-line
                              \ insert-last-argument
                              \ operate-and-get-next
                              \ forward-backward-delete-char
                              \ delete-char-or-list
                              \ complete-filename
                              \ possible-filename-completions
                              \ complete-username
                              \ possible-username-completions
                              \ complete-variable
                              \ possible-variable-completions
                              \ complete-hostname
                              \ possible-hostname-completions
                              \ complete-command
                              \ possible-command-completions
                              \ dynamic-complete-history
                              \ complete-into-braces
                              \ glob-expand-word
                              \ glob-list-expansions
                              \ display-shell-version
                              \ glob-complete-word
                              \ edit-and-execute-command
endif

hi def link readlineKey           readlineKeySeq
hi def link readlineComment       Comment
hi def link readlineTodo          Todo
hi def link readlineConditional   Conditional
hi def link readlineTest          Type
hi def link readlineDelimiter     Delimiter
hi def link readlineTestModeEq    readlineEq
hi def link readlineTestTermEq    readlineEq
hi def link readlineTestTerm      readlineString
hi def link readlineTestAppEq     readlineEq
hi def link readlineTestApp       readlineString
hi def link readlineInclude       Include
hi def link readlinePath          String
hi def link readlineKeyName       SpecialChar
hi def link readlineKeySeparator  readlineKeySeq
hi def link readlineKeyTerminator readlineDelimiter
hi def link readlineKeySeq        String
hi def link readlineKeyEscape     SpecialChar
hi def link readlineKeyword       Keyword
hi def link readlineVariable      Identifier
hi def link readlineBellStyle     Constant
hi def link readlineBoolean       Boolean
hi def link readlineString        String
hi def link readlineStringDelimiter readlineString
hi def link readlineNumber        Number
hi def link readlineEditingMode   Constant
hi def link readlineKeymap        Constant
hi def link readlineFunction      Function

let b:current_syntax = 'readline'

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZNx�b��vim80/syntax/papp.vimnu�[���" Vim syntax file for the "papp" file format (_p_erl _app_lication)
"
" Language:	papp
" Maintainer:	Marc Lehmann <pcg@goof.com>
" Last Change:	2009 Nov 11
" Filenames:    *.papp *.pxml *.pxsl
" URL:		http://papp.plan9.de/

" You can set the "papp_include_html" variable so that html will be
" rendered as such inside phtml sections (in case you actually put html
" there - papp does not require that). Also, rendering html tends to keep
" the clutter high on the screen - mixing three languages is difficult
" enough(!). PS: it is also slow.

" pod is, btw, allowed everywhere, which is actually wrong :(

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" source is basically xml, with included html (this is common) and perl bits
runtime! syntax/xml.vim
unlet b:current_syntax

if exists("papp_include_html")
  syn include @PAppHtml syntax/html.vim
  unlet b:current_syntax
  syntax spell default  " added by Bram
endif

syn include @PAppPerl syntax/perl.vim

syn cluster xmlFoldCluster add=papp_perl,papp_xperl,papp_phtml,papp_pxml,papp_perlPOD

" preprocessor commands
syn region papp_prep matchgroup=papp_prep start="^#\s*\(if\|elsif\)" end="$" keepend contains=@perlExpr contained
syn match papp_prep /^#\s*\(else\|endif\|??\).*$/ contained
" translation entries
syn region papp_gettext start=/__"/ end=/"/ contained contains=@papp_perlInterpDQ
syn cluster PAppHtml add=papp_gettext,papp_prep

" add special, paired xperl, perl and phtml tags
syn region papp_perl  matchgroup=xmlTag start="<perl>"  end="</perl>"  contains=papp_CDATAp,@PAppPerl keepend
syn region papp_xperl matchgroup=xmlTag start="<xperl>" end="</xperl>" contains=papp_CDATAp,@PAppPerl keepend
syn region papp_phtml matchgroup=xmlTag start="<phtml>" end="</phtml>" contains=papp_CDATAh,papp_ph_perl,papp_ph_html,papp_ph_hint,@PAppHtml keepend
syn region papp_pxml  matchgroup=xmlTag start="<pxml>"	end="</pxml>"  contains=papp_CDATAx,papp_ph_perl,papp_ph_xml,papp_ph_xint	     keepend
syn region papp_perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,perlTodo keepend

" cdata sections
syn region papp_CDATAp matchgroup=xmlCdataDecl start="<!\[CDATA\[" end="\]\]>" contains=@PAppPerl					 contained keepend
syn region papp_CDATAh matchgroup=xmlCdataDecl start="<!\[CDATA\[" end="\]\]>" contains=papp_ph_perl,papp_ph_html,papp_ph_hint,@PAppHtml contained keepend
syn region papp_CDATAx matchgroup=xmlCdataDecl start="<!\[CDATA\[" end="\]\]>" contains=papp_ph_perl,papp_ph_xml,papp_ph_xint		 contained keepend

syn region papp_ph_perl matchgroup=Delimiter start="<[:?]" end="[:?]>"me=e-2 nextgroup=papp_ph_html contains=@PAppPerl		     contained keepend
syn region papp_ph_html matchgroup=Delimiter start=":>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@PAppHtml		     contained keepend
syn region papp_ph_hint matchgroup=Delimiter start="?>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@perlInterpDQ,@PAppHtml contained keepend
syn region papp_ph_xml	matchgroup=Delimiter start=":>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=			     contained keepend
syn region papp_ph_xint matchgroup=Delimiter start="?>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@perlInterpDQ	     contained keepend

" synchronization is horrors!
syn sync clear
syn sync match pappSync grouphere papp_CDATAh "</\(perl\|xperl\|phtml\|macro\|module\)>"
syn sync match pappSync grouphere papp_CDATAh "^# *\(if\|elsif\|else\|endif\)"
syn sync match pappSync grouphere papp_CDATAh "</\(tr\|td\|table\|hr\|h1\|h2\|h3\)>"
syn sync match pappSync grouphere NONE	      "</\=\(module\|state\|macro\)>"

syn sync maxlines=300
syn sync minlines=5

" The default highlighting.

hi def link papp_prep		preCondit
hi def link papp_gettext	String

let b:current_syntax = "papp"
PK�j�Z��X��vim80/syntax/form.vimnu�[���" Vim syntax file
" Language:	FORM
" Version: 2.0
" Maintainer:	Michael M. Tung <michael.tung@uni-mainz.de>
" Last Change: <Thu Oct 23 13:11:21 CEST 2008>
" Past Change: <October 2008 Thomas Reiter thomasr@nikhef.nl>
" Past Change: <Wed, 2005/05/25 09:24:58 arwagner wptx44>

" First public release based on 'Symbolic Manipulation with FORM'
" by J.A.M. Vermaseren, CAN, Netherlands, 1991.
" This syntax file is still in development. Please send suggestions
" to the maintainer.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" a bunch of useful FORM keywords
syn keyword formType		global local
syn keyword formHeaderStatement	symbol symbols cfunction cfunctions
syn keyword formHeaderStatement	function functions vector vectors
syn keyword formHeaderStatement tensor tensors ctensor ctensors
syn keyword formHeaderStatement	set sets index indices table ctable
syn keyword formHeaderStatement	dimension dimensions unittrace
syn keyword formConditional	if else elseif endif while
syn keyword formConditional	repeat endrepeat label goto
syn keyword formConditional     argument endargument exit
syn keyword formConditional     inexpression inside term
syn keyword formConditional     endinexpression endinside endterm
syn keyword formStatement       abrackets also antibrackets antisymmetrize
syn keyword formStatement       argexplode argimplode apply auto autodeclare
syn keyword formStatement       brackets chainin chainout chisholm cleartable
syn keyword formStatement       collect commuting compress contract
syn keyword formStatement       cyclesymmetrize deallocatetable delete
syn keyword formStatement       dimension discard disorder drop factarg fill
syn keyword formStatement       fillexpression fixindex format funpowers hide
syn keyword formStatement       identify idnew idold ifmatch inparallel
syn keyword formStatement       insidefirst keep load makeinteger many metric
syn keyword formStatement       moduleoption modulus multi multiply ndrop
syn keyword formStatement       nfunctions nhide normalize notinparallel
syn keyword formStatement       nprint nskip ntable ntensors nunhide nwrite
syn keyword formStatement       off on once only polyfun pophide print
syn keyword formStatement       printtable propercount pushhide ratio
syn keyword formStatement       rcyclesymmetrize redefine renumber
syn keyword formStatement       replaceinarg replaceloop save select
syn keyword formStatement       setexitflag skip slavepatchsize sort splitarg
syn keyword formStatement       splitfirstarg splitlastarg sum symmetrize
syn keyword formStatement       tablebase testuse threadbucketsize totensor
syn keyword formStatement       tovector trace4 tracen tryreplace unhide
syn keyword formStatement       unittrace vectors write
" for compatibility with older FORM versions:
syn keyword formStatement       id bracket count match traceN

" some special functions
syn keyword formStatement       abs_ bernoulli_ binom_ conjg_ count_
syn keyword formStatement       d_ dd_ delta_ deltap_ denom_ distrib_
syn keyword formStatement       dum_ dummy_ dummyten_ e_ exp_ fac_
syn keyword formStatement       factorin_ firstbracket_ g5_ g6_ g7_
syn keyword formStatement       g_ gcd_ gi_ integer_ invfac_ match_
syn keyword formStatement       max_ maxpowerof_ min_ minpowerof_
syn keyword formStatement       mod_ nargs_ nterms_ pattern_ poly_
syn keyword formStatement       polyadd_ polydiv_ polygcd_ polyintfac_
syn keyword formStatement       polymul_ polynorm_ polyrem_ polysub_
syn keyword formStatement       replace_ reverse_ root_ setfun_ sig_
syn keyword formStatement       sign_ sum_ sump_ table_ tbl_ term_
syn keyword formStatement       termsin_ termsinbracket_ theta_ thetap_ 
syn keyword formStatement	5_ 6_ 7_

syn keyword formReserved        sqrt_ ln_ sin_ cos_ tan_ asin_ acos_
syn keyword formReserved        atan_ atan2_ sinh_ cosh_ tanh_ asinh_
syn keyword formReserved        acosh_ atanh_ li2_ lin_ 

syn keyword formTodo            contained TODO FIXME XXX

syn match   formSpecial         display contained "\\\(n\|t\|b\|\\\|\"\)"
syn match   formSpecial         display contained "%\(%\|e\|E\|s\|f\|\$\)"
syn match   formSpecial         "\<N\d\+_[?]"

" pattern matching for keywords
syn match   formComment		"^\ *\*.*$" contains=formTodo
syn match   formComment		"\;\ *\*.*$" contains=formTodo
syn region  formString		start=+"+  end=+"+ contains=formSpecial
syn region  formString		start=+'+  end=+'+
syn region  formNestedString	start=+`+  end=+'+ contains=formNestedString
syn match   formPreProc		"^\=\#[a-zA-Z][a-zA-Z0-9]*\>"
syn match   formNumber		"\<\d\+\>"
syn match   formNumber		"\<\d\+\.\d*\>"
syn match   formNumber		"\.\d\+\>"
syn match   formNumber		"-\d" contains=Number
syn match   formNumber		"-\.\d" contains=Number
syn match   formNumber		"i_\+\>"
syn match   formNumber		"fac_\+\>"
" pattern matching wildcards
syn match   formNumber		"?[a-zA-Z0-9]*"
" dollar-variables (new in 3.x)
syn match   formNumber		"\\$[a-zA-Z0-9]*"
" scalar products
syn match   formNumber		"^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>"

syn match   formDirective	"^\=\.[a-zA-Z][a-zA-Z0-9]*\>"

" hi User Labels
syn sync ccomment formComment minlines=10

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link formConditional	Conditional
hi def link formNumber		Number
hi def link formStatement		Statement
hi def link formComment		Comment
hi def link formPreProc		PreProc
hi def link formDirective		PreProc
hi def link formType		Type
hi def link formString		String
hi def link formNestedString	String
hi def link formReserved           Error
hi def link formTodo               Todo
hi def link formSpecial            SpecialChar

if !exists("form_enhanced_color")
hi def link formHeaderStatement	Statement
else
" enhanced color mode
hi def link formHeaderStatement	HeaderStatement
" dark and a light background for local types
if &background == "dark"
hi HeaderStatement term=underline ctermfg=LightGreen guifg=LightGreen gui=bold
else
hi HeaderStatement term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold
endif
" change slightly the default for dark gvim
if has("gui_running") && &background == "dark"
hi Conditional guifg=LightBlue gui=bold
hi Statement guifg=LightYellow
endif
endif


  let b:current_syntax = "form"

" vim: ts=8
PK�j�Z�b<��vim80/syntax/srec.vimnu�[���" Vim syntax file
" Language:	Motorola S-Record
" Maintainer:	Markus Heidelberg <markus.heidelberg@web.de>
" Last Change:	2015 Feb 24

" Each record (line) is built as follows:
"
"    field       digits          states
"
"  +----------+
"  | start    |  1 ('S')         srecRecStart
"  +----------+
"  | type     |  1               srecRecType, (srecRecTypeUnknown)
"  +----------+
"  | count    |  2               srecByteCount
"  +----------+
"  | address  |  4/6/8           srecNoAddress, srecDataAddress, srecRecCount, srecStartAddress, (srecAddressFieldUnknown)
"  +----------+
"  | data     |  0..504/502/500  srecDataOdd, srecDataEven, (srecDataUnexpected)
"  +----------+
"  | checksum |  2               srecChecksum
"  +----------+
"
" States in parentheses in the upper format description indicate that they
" should not appear in a valid file.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match srecRecStart "^S"

syn match srecRecTypeUnknown "^S."        contains=srecRecStart
syn match srecRecType        "^S[0-35-9]" contains=srecRecStart

syn match srecByteCount "^S.[0-9a-fA-F]\{2}"        contains=srecRecTypeUnknown nextgroup=srecAddressFieldUnknown,srecChecksum
syn match srecByteCount "^S[0-35-9][0-9a-fA-F]\{2}" contains=srecRecType

syn match srecAddressFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=srecAddressFieldUnknown,srecChecksum

syn match srecNoAddress    "^S0[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecDataAddress  "^S1[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecDataAddress  "^S2[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecDataAddress  "^S3[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecRecCount     "^S5[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecRecCount     "^S6[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecStartAddress "^S7[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecStartAddress "^S8[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecStartAddress "^S9[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum

" alternating highlight per byte for easier reading
syn match srecDataOdd        "[0-9a-fA-F]\{2}" contained nextgroup=srecDataEven,srecChecksum
syn match srecDataEven       "[0-9a-fA-F]\{2}" contained nextgroup=srecDataOdd,srecChecksum
" data bytes which should not exist
syn match srecDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=srecDataUnexpected,srecChecksum
" Data digit pair regex usage also results in only highlighting the checksum
" if the number of data characters is even.

syn match srecChecksum "[0-9a-fA-F]\{2}$" contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting. Can be overridden later
hi def link srecRecStart            srecRecType
hi def link srecRecTypeUnknown      srecRecType
hi def link srecRecType             WarningMsg
hi def link srecByteCount           Constant
hi def srecAddressFieldUnknown term=italic cterm=italic gui=italic
hi def link srecNoAddress           DiffAdd
hi def link srecDataAddress         Comment
hi def link srecRecCount            srecNoAddress
hi def link srecStartAddress        srecDataAddress
hi def srecDataOdd             term=bold cterm=bold gui=bold
hi def srecDataEven            term=NONE cterm=NONE gui=NONE
hi def link srecDataUnexpected      Error
hi def link srecChecksum            DiffChange


let b:current_syntax = "srec"

" vim: ts=8
PK�j�Z�IE�**vim80/syntax/dtrace.vimnu�[���" DTrace D script syntax file. To avoid confusion with the D programming
" language, I call this script dtrace.vim instead of d.vim.
" Language: D script as described in "Solaris Dynamic Tracing Guide",
"           http://docs.sun.com/app/docs/doc/817-6223
" Version: 1.5
" Last Change: 2008/04/05
" Maintainer: Nicolas Weber <nicolasweber@gmx.de>

" dtrace lexer and parser are at
" http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libdtrace/common/dt_lex.l
" http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libdtrace/common/dt_grammar.y

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C syntax to start with
runtime! syntax/c.vim
unlet b:current_syntax

syn clear cCommentL  " dtrace doesn't support // style comments

" First line may start with #!, also make sure a '-s' flag is somewhere in
" that line.
syn match dtraceComment "\%^#!.*-s.*"

" Probe descriptors need explicit matches, so that keywords in probe
" descriptors don't show up as errors. Note that this regex detects probes
" as "something with three ':' in it". This works in practice, but it's not
" really correct. Also add special case code for BEGIN, END and ERROR, since
" they are common.
" Be careful not to detect '/*some:::node*/\n/**/' as probe, as it's
" commented out.
" XXX: This allows a probe description to end with ',', even if it's not
" followed by another probe.
" XXX: This doesn't work if followed by a comment.
let s:oneProbe = '\%(BEGIN\|END\|ERROR\|\S\{-}:\S\{-}:\S\{-}:\S\{-}\)\_s*'
exec 'syn match dtraceProbe "'.s:oneProbe.'\%(,\_s*'.s:oneProbe.'\)*\ze\_s\%({\|\/[^*]\|\%$\)"'

" Note: We have to be careful to not make this match /* */ comments.
" Also be careful not to eat `c = a / b; b = a / 2;`. We use the same
" technique as the dtrace lexer: a predicate has to be followed by {, ;, or
" EOF. Also note that dtrace doesn't allow an empty predicate // (we do).
" This regex doesn't allow a divison operator in the predicate.
" Make sure that this matches the empty predicate as well.
" XXX: This doesn't work if followed by a comment.
syn match dtracePredicate "/\*\@!\_[^/]*/\ze\_s*\%({\|;\|\%$\)"
  "contains=ALLBUT,dtraceOption  " this lets the region contain too much stuff

" Pragmas.
" dtrace seems not to support whitespace before or after the '='.  dtrace
" supports only one option per #pragma, and no continuations of #pragma over
" several lines with '\'.
" Note that dtrace treats units (Hz etc) as case-insenstive, we allow only
" sane unit capitalization in this script (ie 'ns', 'us', 'ms', 's' have to be
" small, Hertz can be 'Hz' or 'hz')
" XXX: "cpu" is always highlighted as builtin var, not as option

"   auto or manual: bufresize
syn match dtraceOption contained "bufresize=\%(auto\|manual\)\s*$"

"   scalar: cpu jstackframes jstackstrsize nspec stackframes stackindent ustackframes
syn match dtraceOption contained "\%(cpu\|jstackframes\|jstackstrsize\|nspec\|stackframes\|stackindent\|ustackframes\)=\d\+\s*$"

"   size: aggsize bufsize dynvarsize specsize strsize 
"   size defaults to something if no unit is given (ie., having no unit is ok)
syn match dtraceOption contained "\%(aggsize\|bufsize\|dynvarsize\|specsize\|strsize\)=\d\+\%(k\|m\|g\|t\|K\|M\|G\|T\)\=\s*$"

"   time: aggrate cleanrate statusrate switchrate
"   time defaults to hz if no unit is given
syn match dtraceOption contained "\%(aggrate\|cleanrate\|statusrate\|switchrate\)=\d\+\%(hz\|Hz\|ns\|us\|ms\|s\)\=\s*$"

"   No type: defaultargs destructive flowindent grabanon quiet rawbytes
syn match dtraceOption contained "\%(defaultargs\|destructive\|flowindent\|grabanon\|quiet\|rawbytes\)\s*$"


" Turn reserved but unspecified keywords into errors
syn keyword dtraceReservedKeyword auto break case continue counter default do
syn keyword dtraceReservedKeyword else for goto if import probe provider
syn keyword dtraceReservedKeyword register restrict return static switch while

" Add dtrace-specific stuff
syn keyword dtraceOperator   sizeof offsetof stringof xlate
syn keyword dtraceStatement  self inline xlate this translator

" Builtin variables
syn keyword dtraceIdentifier arg0 arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 
syn keyword dtraceIdentifier args caller chip cpu curcpu curlwpsinfo curpsinfo
syn keyword dtraceIdentifier curthread cwd epid errno execname gid id ipl lgrp
syn keyword dtraceIdentifier pid ppid probefunc probemod probename probeprov
syn keyword dtraceIdentifier pset root stackdepth tid timestamp uid uregs
syn keyword dtraceIdentifier vtimestamp walltimestamp
syn keyword dtraceIdentifier ustackdepth

" Macro Variables
syn match dtraceConstant     "$[0-9]\+"
syn match dtraceConstant     "$\(egid\|euid\|gid\|pgid\|ppid\)"
syn match dtraceConstant     "$\(projid\|sid\|target\|taskid\|uid\)"

" Data Recording Actions
syn keyword dtraceFunction   trace tracemem printf printa stack ustack jstack

" Process Destructive Actions
syn keyword dtraceFunction   stop raise copyout copyoutstr system

" Kernel Destructive Actions
syn keyword dtraceFunction   breakpoint panic chill

" Special Actions
syn keyword dtraceFunction   speculate commit discard exit

" Subroutines
syn keyword dtraceFunction   alloca basename bcopy cleanpath copyin copyinstr
syn keyword dtraceFunction   copyinto dirname msgdsize msgsize mutex_owned
syn keyword dtraceFunction   mutex_owner mutex_type_adaptive progenyof
syn keyword dtraceFunction   rand rw_iswriter rw_write_held speculation
syn keyword dtraceFunction   strjoin strlen

" Aggregating Functions
syn keyword dtraceAggregatingFunction count sum avg min max lquantize quantize

syn keyword dtraceType int8_t int16_t int32_t int64_t intptr_t
syn keyword dtraceType uint8_t uint16_t uint32_t uint64_t uintptr_t
syn keyword dtraceType string
syn keyword dtraceType pid_t id_t


" Define the default highlighting.
" We use `hi def link` directly, this requires 5.8.
hi def link dtraceReservedKeyword Error
hi def link dtracePredicate String
hi def link dtraceProbe dtraceStatement
hi def link dtraceStatement Statement
hi def link dtraceConstant Constant
hi def link dtraceIdentifier Identifier
hi def link dtraceAggregatingFunction dtraceFunction
hi def link dtraceFunction Function
hi def link dtraceType Type
hi def link dtraceOperator Operator
hi def link dtraceComment Comment
hi def link dtraceNumber Number
hi def link dtraceOption Identifier

let b:current_syntax = "dtrace"
PK�j�Z��VYYvim80/syntax/xpm2.vimnu�[���" Vim syntax file
" Language:	X Pixmap v2
" Maintainer:	Steve Wall (hitched97@velnet.com)
" Last Change:	2017 Feb 01
" 		(Dominique Pelle added @Spell)
" Version:	5.8
"               Jemma Nelson added termguicolors support
"
" Made from xpm.vim by Ronald Schild <rs@scutum.de>

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn region  xpm2PixelString	start="^"  end="$"  contains=@xpm2Colors
syn keyword xpm2Todo		TODO FIXME XXX  contained
syn match   xpm2Comment		"\!.*$"  contains=@Spell,xpm2Todo


command -nargs=+ Hi hi def <args>

if has("gui_running") || has("termguicolors") && &termguicolors

  let color  = ""
  let chars  = ""
  let colors = 0
  let cpp    = 0
  let n      = 0
  let i      = 1

  while i <= line("$")		" scanning all lines

    let s = getline(i)
    if match(s,"\!.*$") != -1
      let s = matchstr(s, "^[^\!]*")
    endif
    if s != ""			" does line contain a string?

      if n == 0			" first string is the Values string

	" get the 3rd value: colors = number of colors
	let colors = substitute(s, '\s*\d\+\s\+\d\+\s\+\(\d\+\).*', '\1', '')
	" get the 4th value: cpp = number of character per pixel
	let cpp = substitute(s, '\s*\d\+\s\+\d\+\s\+\d\+\s\+\(\d\+\).*', '\1', '')
	if cpp =~ '[^0-9]'
	  break  " if cpp is not made of digits there must be something wrong
	endif

	" Highlight the Values string as normal string (no pixel string).
	" Only when there is no slash, it would terminate the pattern.
	if s !~ '/'
	  exe 'syn match xpm2Values /' . s . '/'
	endif
	hi def link xpm2Values Statement

	let n = 1			" n = color index

      elseif n <= colors		" string is a color specification

	" get chars = <cpp> length string representing the pixels
	" (first incl. the following whitespace)
	let chars = substitute(s, '\(.\{'.cpp.'}\s\+\).*', '\1', '')

	" now get color, first try 'c' key if any (color visual)
	let color = substitute(s, '.*\sc\s\+\(.\{-}\)\s*\(\(g4\=\|[ms]\)\s.*\)*\s*', '\1', '')
	if color == s
	  " no 'c' key, try 'g' key (grayscale with more than 4 levels)
	  let color = substitute(s, '.*\sg\s\+\(.\{-}\)\s*\(\(g4\|[ms]\)\s.*\)*\s*', '\1', '')
	  if color == s
	    " next try: 'g4' key (4-level grayscale)
	    let color = substitute(s, '.*\sg4\s\+\(.\{-}\)\s*\([ms]\s.*\)*\s*', '\1', '')
	    if color == s
	      " finally try 'm' key (mono visual)
	      let color = substitute(s, '.*\sm\s\+\(.\{-}\)\s*\(s\s.*\)*\s*', '\1', '')
	      if color == s
		let color = ""
	      endif
	    endif
	  endif
	endif

	" Vim cannot handle RGB codes with more than 6 hex digits
	if color =~ '#\x\{10,}$'
	  let color = substitute(color, '\(\x\x\)\x\x', '\1', 'g')
	elseif color =~ '#\x\{7,}$'
	  let color = substitute(color, '\(\x\x\)\x', '\1', 'g')
	" nor with 3 digits
	elseif color =~ '#\x\{3}$'
	  let color = substitute(color, '\(\x\)\(\x\)\(\x\)', '0\10\20\3', '')
	endif

	" escape meta characters in patterns
	let s = escape(s, '/\*^$.~[]')
	let chars = escape(chars, '/\*^$.~[]')

	" change whitespace to "\s\+"
	let s = substitute(s, "[ \t][ \t]*", "\\\\s\\\\+", "g")
	let chars = substitute(chars, "[ \t][ \t]*", "\\\\s\\\\+", "g")

	" now create syntax items
	" highlight the color string as normal string (no pixel string)
	exe 'syn match xpm2Col'.n.'Def /'.s.'/ contains=xpm2Col'.n.'inDef'
	exe 'hi def link xpm2Col'.n.'Def Constant'

	" but highlight the first whitespace after chars in its color
	exe 'syn match xpm2Col'.n.'inDef /^'.chars.'/hs=s+'.(cpp).' contained'
	exe 'hi def link xpm2Col'.n.'inDef xpm2Color'.n

	" remove the following whitespace from chars
	let chars = substitute(chars, '\\s\\+$', '', '')

	" and create the syntax item contained in the pixel strings
	exe 'syn match xpm2Color'.n.' /'.chars.'/ contained'
	exe 'syn cluster xpm2Colors add=xpm2Color'.n

	" if no color or color = "None" show background
	if color == ""  ||  substitute(color, '.*', '\L&', '') == 'none'
	  exe 'Hi xpm2Color'.n.' guifg=bg guibg=NONE'
	elseif color !~ "'"
	  exe 'Hi xpm2Color'.n." guifg='".color."' guibg='".color."'"
	endif
	let n = n + 1
      else
	break			" no more color string
      endif
    endif
    let i = i + 1
  endwhile

  unlet color chars colors cpp n i s

endif          " has("gui_running") || has("termguicolors") && &termguicolors

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
" The default highlighting.
hi def link xpm2Type		Type
hi def link xpm2StorageClass	StorageClass
hi def link xpm2Todo		Todo
hi def link xpm2Comment		Comment
hi def link xpm2PixelString	String

delcommand Hi

let b:current_syntax = "xpm2"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8:sw=2:noet:
PK�j�Z5M�@�7�7vim80/syntax/r.vimnu�[���" Vim syntax file
" Language:	      R (GNU S)
" Maintainer:	      Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com>
" 		      Tom Payne <tom@tompayne.org>
" Contributor:        Johannes Ranke <jranke@uni-bremen.de>
" Homepage:           https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	      Sat Apr 08, 2017  07:01PM
" Filenames:	      *.R *.r *.Rhistory *.Rt
"
" NOTE: The highlighting of R functions might be defined in
" runtime files created by a filetype plugin, if installed.
"
" CONFIGURATION:
"   Syntax folding can be turned on by
"
"      let r_syntax_folding = 1
"
"   ROxygen highlighting can be turned off by
"
"      let r_syntax_hl_roxygen = 0
"
" Some lines of code were borrowed from Zhuojun Chen.

if exists("b:current_syntax")
  finish
endif

if has("patch-7.4.1142")
  syn iskeyword @,48-57,_,.
else
  setlocal iskeyword=@,48-57,_,.
endif

" The variables g:r_hl_roxygen and g:r_syn_minlines were renamed on April 8, 2017.
if exists("g:r_hl_roxygen")
  let g:r_syntax_hl_roxygen = g:r_hl_roxygen
endif
if exists("g:r_syn_minlines")
  let g:r_syntax_minlines = g:r_syn_minlines
endif

if exists("g:r_syntax_folding") && g:r_syntax_folding
  setlocal foldmethod=syntax
endif
if !exists("g:r_syntax_hl_roxygen")
  let g:r_syntax_hl_roxygen = 1
endif

syn case match

" Comment
syn match rCommentTodo contained "\(BUG\|FIXME\|NOTE\|TODO\):"
syn match rComment contains=@Spell,rCommentTodo,rOBlock "#.*"

" Roxygen
if g:r_syntax_hl_roxygen
  " A roxygen block can start at the beginning of a file (first version) and
  " after a blank line (second version). It ends when a line that does not
  " contain a roxygen comment. In the following comments, any line containing
  " a roxygen comment marker (one or two hash signs # followed by a single
  " quote ' and preceded only by whitespace) is called a roxygen line. A
  " roxygen line containing only a roxygen comment marker, optionally followed
  " by whitespace is called an empty roxygen line.

  " First we match all roxygen blocks as containing only a title. In case an
  " empty roxygen line ending the title or a tag is found, this will be
  " overriden later by the definitions of rOBlock.
  syn match rOTitleBlock "\%^\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag
  syn match rOTitleBlock "^\s*\n\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag

  " When a roxygen block has a title and additional content, the title
  " consists of one or more roxygen lines (as little as possible are matched),
  " followed either by an empty roxygen line
  syn region rOBlock start="\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
  syn region rOBlock start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold

  " or by a roxygen tag (we match everything starting with @ but not @@ which is used as escape sequence for a literal @).
  syn region rOBlock start="\%^\(\s*#\{1,2}' .*\n\)\{-}\s*#\{1,2}' @\(@\)\@!" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
  syn region rOBlock start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-}\s*#\{1,2}' @\(@\)\@!" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold

  " If a block contains an @rdname, @describeIn tag, it may have paragraph breaks, but does not have a title
  syn region rOBlockNoTitle start="\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @rdname" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
  syn region rOBlockNoTitle start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @rdname" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
  syn region rOBlockNoTitle start="\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @describeIn" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
  syn region rOBlockNoTitle start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @describeIn" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold

  " A title as part of a block is always at the beginning of the block, i.e.
  " either at the start of a file or after a completely empty line.
  syn match rOTitle "\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag
  syn match rOTitle "^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag
  syn match rOTitleTag contained "@title"

  syn match rOCommentKey "#\{1,2}'" contained
  syn region rOExamples start="^#\{1,2}' @examples.*"rs=e+1,hs=e+1 end="^\(#\{1,2}' @.*\)\@=" end="^\(#\{1,2}'\)\@!" contained contains=rOTag fold

  " rOTag list generated from the lists in
  " https://github.com/klutometis/roxygen/R/rd.R and
  " https://github.com/klutometis/roxygen/R/namespace.R
  " using s/^    \([A-Za-z0-9]*\) = .*/  syn match rOTag contained "@\1"/
  " Plus we need the @include tag

  " rd.R
  syn match rOTag contained "@aliases"
  syn match rOTag contained "@author"
  syn match rOTag contained "@backref"
  syn match rOTag contained "@concept"
  syn match rOTag contained "@describeIn"
  syn match rOTag contained "@description"
  syn match rOTag contained "@details"
  syn match rOTag contained "@docType"
  syn match rOTag contained "@encoding"
  syn match rOTag contained "@evalRd"
  syn match rOTag contained "@example"
  syn match rOTag contained "@examples"
  syn match rOTag contained "@family"
  syn match rOTag contained "@field"
  syn match rOTag contained "@format"
  syn match rOTag contained "@inherit"
  syn match rOTag contained "@inheritParams"
  syn match rOTag contained "@inheritDotParams"
  syn match rOTag contained "@inheritSection"
  syn match rOTag contained "@keywords"
  syn match rOTag contained "@method"
  syn match rOTag contained "@name"
  syn match rOTag contained "@md"
  syn match rOTag contained "@noMd"
  syn match rOTag contained "@noRd"
  syn match rOTag contained "@note"
  syn match rOTag contained "@param"
  syn match rOTag contained "@rdname"
  syn match rOTag contained "@rawRd"
  syn match rOTag contained "@references"
  syn match rOTag contained "@return"
  syn match rOTag contained "@section"
  syn match rOTag contained "@seealso"
  syn match rOTag contained "@slot"
  syn match rOTag contained "@source"
  syn match rOTag contained "@template"
  syn match rOTag contained "@templateVar"
  syn match rOTag contained "@title"
  syn match rOTag contained "@usage"
  " namespace.R
  syn match rOTag contained "@export"
  syn match rOTag contained "@exportClass"
  syn match rOTag contained "@exportMethod"
  syn match rOTag contained "@exportPattern"
  syn match rOTag contained "@import"
  syn match rOTag contained "@importClassesFrom"
  syn match rOTag contained "@importFrom"
  syn match rOTag contained "@importMethodsFrom"
  syn match rOTag contained "@rawNamespace"
  syn match rOTag contained "@S3method"
  syn match rOTag contained "@useDynLib"
  " other
  syn match rOTag contained "@include"
endif


if &filetype == "rhelp"
  " string enclosed in double quotes
  syn region rString contains=rSpecial,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
  " string enclosed in single quotes
  syn region rString contains=rSpecial,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
else
  " string enclosed in double quotes
  syn region rString contains=rSpecial,rStrError,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
  " string enclosed in single quotes
  syn region rString contains=rSpecial,rStrError,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
endif

syn match rStrError display contained "\\."


" New line, carriage return, tab, backspace, bell, feed, vertical tab, backslash
syn match rSpecial display contained "\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"

" Hexadecimal and Octal digits
syn match rSpecial display contained "\\\(x\x\{1,2}\|[0-8]\{1,3}\)"

" Unicode characters
syn match rSpecial display contained "\\u\x\{1,4}"
syn match rSpecial display contained "\\U\x\{1,8}"
syn match rSpecial display contained "\\u{\x\{1,4}}"
syn match rSpecial display contained "\\U{\x\{1,8}}"

" Statement
syn keyword rStatement   break next return
syn keyword rConditional if else
syn keyword rRepeat      for in repeat while

" Constant (not really)
syn keyword rConstant T F LETTERS letters month.abb month.name pi
syn keyword rConstant R.version.string

syn keyword rNumber   NA_integer_ NA_real_ NA_complex_ NA_character_

" Constants
syn keyword rConstant NULL
syn keyword rBoolean  FALSE TRUE
syn keyword rNumber   NA Inf NaN

" integer
syn match rInteger "\<\d\+L"
syn match rInteger "\<0x\([0-9]\|[a-f]\|[A-F]\)\+L"
syn match rInteger "\<\d\+[Ee]+\=\d\+L"

" number with no fractional part or exponent
syn match rNumber "\<\d\+\>"
" hexadecimal number
syn match rNumber "\<0x\([0-9]\|[a-f]\|[A-F]\)\+"

" floating point number with integer and fractional parts and optional exponent
syn match rFloat "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\="
" floating point number with no integer part and optional exponent
syn match rFloat "\<\.\d\+\([Ee][-+]\=\d\+\)\="
" floating point number with no fractional part and optional exponent
syn match rFloat "\<\d\+[Ee][-+]\=\d\+"

" complex number
syn match rComplex "\<\d\+i"
syn match rComplex "\<\d\++\d\+i"
syn match rComplex "\<0x\([0-9]\|[a-f]\|[A-F]\)\+i"
syn match rComplex "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=i"
syn match rComplex "\<\.\d\+\([Ee][-+]\=\d\+\)\=i"
syn match rComplex "\<\d\+[Ee][-+]\=\d\+i"

syn match rAssign    '='
syn match rOperator    "&"
syn match rOperator    '-'
syn match rOperator    '\*'
syn match rOperator    '+'
if &filetype != "rmd" && &filetype != "rrst"
  syn match rOperator    "[|!<>^~/:]"
else
  syn match rOperator    "[|!<>^~`/:]"
endif
syn match rOperator    "%\{2}\|%\S\{-}%"
syn match rOperator '\([!><]\)\@<=='
syn match rOperator '=='
syn match rOpError  '\*\{3}'
syn match rOpError  '//'
syn match rOpError  '&&&'
syn match rOpError  '|||'
syn match rOpError  '<<'
syn match rOpError  '>>'

syn match rAssign "<\{1,2}-"
syn match rAssign "->\{1,2}"

" Special
syn match rDelimiter "[,;:]"

" Error
if exists("g:r_syntax_folding")
  syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError fold
  syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError fold
  syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError fold
else
  syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError
  syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
  syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
endif

syn match rError      "[)\]}]"
syn match rBraceError "[)}]" contained
syn match rCurlyError "[)\]]" contained
syn match rParenError "[\]}]" contained

" Use Nvim-R to highlight functions dynamically if it is installed
if !exists("g:r_syntax_fun_pattern")
  let s:ff = split(substitute(globpath(&rtp, "R/functions.vim"), "functions.vim", "", "g"), "\n")
  if len(s:ff) > 0
    let g:r_syntax_fun_pattern = 0
  else
    let g:r_syntax_fun_pattern = 1
  endif
endif

" Only use Nvim-R to highlight functions if they should not be highlighted
" according to a generic pattern
if g:r_syntax_fun_pattern == 1
  syn match rFunction '[0-9a-zA-Z_\.]\+\s*\ze('
else
  if !exists("g:R_hi_fun")
    let g:R_hi_fun = 1
  endif
  if g:R_hi_fun
    " Nvim-R:
    runtime R/functions.vim
  endif
endif

syn match rDollar display contained "\$"
syn match rDollar display contained "@"

" List elements will not be highlighted as functions:
syn match rLstElmt "\$[a-zA-Z0-9\\._]*" contains=rDollar
syn match rLstElmt "@[a-zA-Z0-9\\._]*" contains=rDollar

" Functions that may add new objects
syn keyword rPreProc     library require attach detach source

if &filetype == "rhelp"
  syn match rHelpIdent '\\method'
  syn match rHelpIdent '\\S4method'
endif

" Type
syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame

" Name of object with spaces
if &filetype != "rmd" && &filetype != "rrst"
  syn region rNameWSpace start="`" end="`"
endif

if &filetype == "rhelp"
  syn match rhPreProc "^#ifdef.*"
  syn match rhPreProc "^#endif.*"
  syn match rhSection "\\dontrun\>"
endif

if exists("r_syntax_minlines")
  exe "syn sync minlines=" . r_syntax_minlines
else
  syn sync minlines=40
endif

" Define the default highlighting.
hi def link rAssign      Statement
hi def link rBoolean     Boolean
hi def link rBraceError  Error
hi def link rComment     Comment
hi def link rCommentTodo Todo
hi def link rComplex     Number
hi def link rConditional Conditional
hi def link rConstant    Constant
hi def link rCurlyError  Error
hi def link rDelimiter   Delimiter
hi def link rDollar      SpecialChar
hi def link rError       Error
hi def link rFloat       Float
hi def link rFunction    Function
hi def link rHelpIdent   Identifier
hi def link rhPreProc    PreProc
hi def link rhSection    PreCondit
hi def link rInteger     Number
hi def link rLstElmt     Normal
hi def link rNameWSpace  Normal
hi def link rNumber      Number
hi def link rOperator    Operator
hi def link rOpError     Error
hi def link rParenError  Error
hi def link rPreProc     PreProc
hi def link rRepeat      Repeat
hi def link rSpecial     SpecialChar
hi def link rStatement   Statement
hi def link rString      String
hi def link rStrError    Error
hi def link rType        Type
if g:r_syntax_hl_roxygen
  hi def link rOTitleTag   Operator
  hi def link rOTag        Operator
  hi def link rOTitleBlock Title
  hi def link rOBlock         Comment
  hi def link rOBlockNoTitle  Comment
  hi def link rOTitle      Title
  hi def link rOCommentKey Comment
  hi def link rOExamples   SpecialComment
endif

let b:current_syntax="r"

" vim: ts=8 sw=2
PK�j�Z��||vim80/syntax/cuplsim.vimnu�[���" Vim syntax file
" Language:	CUPL simulation
" Maintainer:	John Cook <john.cook@kla-tencor.com>
" Last Change:	2001 Apr 25

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the CUPL syntax to start with
runtime! syntax/cupl.vim
unlet b:current_syntax

" omit definition-specific stuff
syn clear cuplStatement
syn clear cuplFunction
syn clear cuplLogicalOperator
syn clear cuplArithmeticOperator
syn clear cuplAssignmentOperator
syn clear cuplEqualityOperator
syn clear cuplTruthTableOperator
syn clear cuplExtension

" simulation order statement
syn match  cuplsimOrder "order:" nextgroup=cuplsimOrderSpec skipempty
syn region cuplsimOrderSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimOrderFormat,cuplBitVector,cuplSpecialChar,cuplLogicalOperator,cuplCommaOperator contained

" simulation base statement
syn match   cuplsimBase "base:" nextgroup=cuplsimBaseSpec skipempty
syn region  cuplsimBaseSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimBaseType contained
syn keyword cuplsimBaseType octal decimal hex contained

" simulation vectors statement
syn match cuplsimVectors "vectors:"

" simulator format control
syn match cuplsimOrderFormat "%\d\+\>" contained

" simulator control
syn match cuplsimStimulus "[10ckpx]\+"
syn match cuplsimStimulus +'\(\x\|x\)\+'+
syn match cuplsimOutput "[lhznx*]\+"
syn match cuplsimOutput +"\x\+"+

syn sync minlines=1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" append to the highlighting links in cupl.vim
" The default highlighting.
hi def link cuplsimOrder		cuplStatement
hi def link cuplsimBase		cuplStatement
hi def link cuplsimBaseType	cuplStatement
hi def link cuplsimVectors		cuplStatement
hi def link cuplsimStimulus	cuplNumber
hi def link cuplsimOutput		cuplNumber
hi def link cuplsimOrderFormat	cuplNumber


let b:current_syntax = "cuplsim"
" vim:ts=8
PK�j�Z�q�[vim80/syntax/gkrellmrc.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: gkrellm theme files `gkrellmrc'
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2003-04-30
" URL: http://trific.ath.cx/Ftp/vim/syntax/gkrellmrc.vim

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

setlocal iskeyword=_,-,a-z,A-Z,48-57

syn case match

" Base constructs
syn match gkrellmrcComment "#.*$" contains=gkrellmrcFixme
syn keyword gkrellmrcFixme FIXME TODO XXX NOT contained
syn region gkrellmrcString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
syn match gkrellmrcNumber "^-\=\(\d\+\)\=\.\=\d\+"
syn match gkrellmrcNumber "\W-\=\(\d\+\)\=\.\=\d\+"lc=1
syn keyword gkrellmrcConstant none
syn match gkrellmrcRGBColor "#\(\x\{12}\|\x\{9}\|\x\{6}\|\x\{3}\)\>"

" Keywords
syn keyword gkrellmrcBuiltinExt cpu_nice_color cpu_nice_grid_color krell_depth krell_expand krell_left_margin krell_right_margin krell_x_hot krell_yoff mem_krell_buffers_depth mem_krell_buffers_expand mem_krell_buffers_x_hot mem_krell_buffers_yoff mem_krell_cache_depth mem_krell_cache_expand mem_krell_cache_x_hot mem_krell_cache_yoff sensors_bg_volt timer_bg_timer
syn keyword gkrellmrcGlobal allow_scaling author chart_width_ref theme_alternatives
syn keyword gkrellmrcSetCmd set_image_border set_integer set_string
syn keyword gkrellmrcGlobal bg_slider_meter_border bg_slider_panel_border
syn keyword gkrellmrcGlobal frame_bottom_height frame_left_width frame_right_width frame_top_height frame_left_chart_overlap frame_right_chart_overlap frame_left_panel_overlap frame_right_panel_overlap frame_left_spacer_overlap frame_right_spacer_overlap spacer_overlap_off cap_images_off
syn keyword gkrellmrcGlobal frame_bottom_border frame_left_border frame_right_border frame_top_border spacer_top_border spacer_bottom_border frame_left_chart_border frame_right_chart_border frame_left_panel_border frame_right_panel_border
syn keyword gkrellmrcGlobal chart_in_color chart_in_color_grid chart_out_color chart_out_color_grid
syn keyword gkrellmrcGlobal bg_separator_height bg_grid_mode
syn keyword gkrellmrcGlobal rx_led_x rx_led_y tx_led_x tx_led_y
syn keyword gkrellmrcGlobal decal_mail_frames decal_mail_delay
syn keyword gkrellmrcGlobal decal_alarm_frames decal_warn_frames
syn keyword gkrellmrcGlobal krell_slider_depth krell_slider_expand krell_slider_x_hot
syn keyword gkrellmrcGlobal button_panel_border button_meter_border
syn keyword gkrellmrcGlobal large_font normal_font small_font
syn keyword gkrellmrcGlobal spacer_bottom_height spacer_top_height spacer_bottom_height_chart spacer_top_height_chart spacer_bottom_height_meter spacer_top_height_meter
syn keyword gkrellmrcExpandMode left right bar-mode left-scaled right-scaled bar-mode-scaled
syn keyword gkrellmrcMeterName apm cal clock fs host mail mem swap timer sensors uptime
syn keyword gkrellmrcChartName cpu proc disk inet and net
syn match gkrellmrcSpecialClassName "\*"
syn keyword gkrellmrcStyleCmd StyleMeter StyleChart StylePanel
syn keyword gkrellmrcStyleItem textcolor alt_textcolor font alt_font transparency border label_position margin margins left_margin right_margin top_margin bottom_margin krell_depth krell_yoff krell_x_hot krell_expand krell_left_margin krell_right_margin

" Define the default highlighting

hi def link gkrellmrcComment Comment
hi def link gkrellmrcFixme Todo

hi def link gkrellmrcString gkrellmrcConstant
hi def link gkrellmrcNumber gkrellmrcConstant
hi def link gkrellmrcRGBColor gkrellmrcConstant
hi def link gkrellmrcExpandMode gkrellmrcConstant
hi def link gkrellmrcConstant Constant

hi def link gkrellmrcMeterName gkrellmrcClass
hi def link gkrellmrcChartName gkrellmrcClass
hi def link gkrellmrcSpecialClassName gkrellmrcClass
hi def link gkrellmrcClass Type

hi def link gkrellmrcGlobal gkrellmrcItem
hi def link gkrellmrcBuiltinExt gkrellmrcItem
hi def link gkrellmrcStyleItem gkrellmrcItem
hi def link gkrellmrcItem Function

hi def link gkrellmrcSetCmd Special
hi def link gkrellmrcStyleCmd Statement


let b:current_syntax = "gkrellmrc"
PK�j�Zm2�%�4�4vim80/syntax/idlang.vimnu�[���" Interactive Data Language syntax file (IDL, too  [:-)]
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last change: 2011 Apr 11
" Created by: Hermann Rochholz <Hermann.Rochholz AT gmx.de>

" Remove any old syntax stuff hanging around
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syntax case ignore

syn match idlangStatement "^\s*pro\s"
syn match idlangStatement "^\s*function\s"
syn keyword idlangStatement return continue mod do break
syn keyword idlangStatement compile_opt forward_function goto
syn keyword idlangStatement begin common end of
syn keyword idlangStatement inherits on_ioerror begin

syn keyword idlangConditional if else then for while case switch
syn keyword idlangConditional endcase endelse endfor endswitch
syn keyword idlangConditional endif endrep endwhile repeat until

syn match idlangOperator "\ and\ "
syn match idlangOperator "\ eq\ "
syn match idlangOperator "\ ge\ "
syn match idlangOperator "\ gt\ "
syn match idlangOperator "\ le\ "
syn match idlangOperator "\ lt\ "
syn match idlangOperator "\ ne\ "
syn match idlangOperator /\(\ \|(\)not\ /hs=e-3
syn match idlangOperator "\ or\ "
syn match idlangOperator "\ xor\ "

syn keyword idlangStop stop pause

syn match idlangStrucvar "\h\w*\(\.\h\w*\)\+"
syn match idlangStrucvar "[),\]]\(\.\h\w*\)\+"hs=s+1

syn match idlangSystem "\!\a\w*\(\.\w*\)\="

syn match idlangKeyword "\([(,]\s*\(\$\_s*\)\=\)\@<=/\h\w*"
syn match idlangKeyword "\([(,]\s*\(\$\_s*\)\=\)\@<=\h\w*\s*="

syn keyword idlangTodo contained TODO

syn region idlangString start=+"+ end=+"+
syn region idlangString start=+'+ end=+'+

syn match idlangPreCondit "^\s*@\w*\(\.\a\{3}\)\="

syn match idlangRealNumber "\<\d\+\(\.\=\d*e[+-]\=\d\+\|\.\d*d\|\.\d*\|d\)"
syn match idlangRealNumber "\.\d\+\(d\|e[+-]\=\d\+\)\="

syn match idlangNumber "\<\.\@!\d\+\.\@!\(b\|u\|us\|s\|l\|ul\|ll\|ull\)\=\>"

syn match  idlangComment "[\;].*$" contains=idlangTodo

syn match idlangContinueLine "\$\s*\($\|;\)"he=s+1 contains=idlangComment
syn match idlangContinueLine "&\s*\(\h\|;\)"he=s+1 contains=ALL

syn match  idlangDblCommaError "\,\s*\,"

" List of standard routines as of IDL version 5.4.
syn match idlangRoutine "EOS_\a*"
syn match idlangRoutine "HDF_\a*"
syn match idlangRoutine "CDF_\a*"
syn match idlangRoutine "NCDF_\a*"
syn match idlangRoutine "QUERY_\a*"
syn match idlangRoutine "\<MAX\s*("he=e-1
syn match idlangRoutine "\<MIN\s*("he=e-1

syn keyword idlangRoutine A_CORRELATE ABS ACOS ADAPT_HIST_EQUAL ALOG ALOG10
syn keyword idlangRoutine AMOEBA ANNOTATE ARG_PRESENT ARRAY_EQUAL ARROW
syn keyword idlangRoutine ASCII_TEMPLATE ASIN ASSOC ATAN AXIS BAR_PLOT
syn keyword idlangRoutine BESELI BESELJ BESELK BESELY BETA BILINEAR BIN_DATE
syn keyword idlangRoutine BINARY_TEMPLATE BINDGEN BINOMIAL BLAS_AXPY BLK_CON
syn keyword idlangRoutine BOX_CURSOR BREAK BREAKPOINT BROYDEN BYTARR BYTE
syn keyword idlangRoutine BYTEORDER BYTSCL C_CORRELATE CALDAT CALENDAR
syn keyword idlangRoutine CALL_EXTERNAL CALL_FUNCTION CALL_METHOD
syn keyword idlangRoutine CALL_PROCEDURE CATCH CD CEIL CHEBYSHEV CHECK_MATH
syn keyword idlangRoutine CHISQR_CVF CHISQR_PDF CHOLDC CHOLSOL CINDGEN
syn keyword idlangRoutine CIR_3PNT CLOSE CLUST_WTS CLUSTER COLOR_CONVERT
syn keyword idlangRoutine COLOR_QUAN COLORMAP_APPLICABLE COMFIT COMMON
syn keyword idlangRoutine COMPLEX COMPLEXARR COMPLEXROUND
syn keyword idlangRoutine COMPUTE_MESH_NORMALS COND CONGRID CONJ
syn keyword idlangRoutine CONSTRAINED_MIN CONTOUR CONVERT_COORD CONVOL
syn keyword idlangRoutine COORD2TO3 CORRELATE COS COSH CRAMER CREATE_STRUCT
syn keyword idlangRoutine CREATE_VIEW CROSSP CRVLENGTH CT_LUMINANCE CTI_TEST
syn keyword idlangRoutine CURSOR CURVEFIT CV_COORD CVTTOBM CW_ANIMATE
syn keyword idlangRoutine CW_ANIMATE_GETP CW_ANIMATE_LOAD CW_ANIMATE_RUN
syn keyword idlangRoutine CW_ARCBALL CW_BGROUP CW_CLR_INDEX CW_COLORSEL
syn keyword idlangRoutine CW_DEFROI CW_FIELD CW_FILESEL CW_FORM CW_FSLIDER
syn keyword idlangRoutine CW_LIGHT_EDITOR CW_LIGHT_EDITOR_GET
syn keyword idlangRoutine CW_LIGHT_EDITOR_SET CW_ORIENT CW_PALETTE_EDITOR
syn keyword idlangRoutine CW_PALETTE_EDITOR_GET CW_PALETTE_EDITOR_SET
syn keyword idlangRoutine CW_PDMENU CW_RGBSLIDER CW_TMPL CW_ZOOM DBLARR
syn keyword idlangRoutine DCINDGEN DCOMPLEX DCOMPLEXARR DEFINE_KEY DEFROI
syn keyword idlangRoutine DEFSYSV DELETE_SYMBOL DELLOG DELVAR DERIV DERIVSIG
syn keyword idlangRoutine DETERM DEVICE DFPMIN DIALOG_MESSAGE
syn keyword idlangRoutine DIALOG_PICKFILE DIALOG_PRINTERSETUP
syn keyword idlangRoutine DIALOG_PRINTJOB DIALOG_READ_IMAGE
syn keyword idlangRoutine DIALOG_WRITE_IMAGE DIGITAL_FILTER DILATE DINDGEN
syn keyword idlangRoutine DISSOLVE DIST DLM_LOAD DLM_REGISTER
syn keyword idlangRoutine DO_APPLE_SCRIPT DOC_LIBRARY DOUBLE DRAW_ROI EFONT
syn keyword idlangRoutine EIGENQL EIGENVEC ELMHES EMPTY ENABLE_SYSRTN EOF
syn keyword idlangRoutine ERASE ERODE ERRORF ERRPLOT EXECUTE EXIT EXP EXPAND
syn keyword idlangRoutine EXPAND_PATH EXPINT EXTRAC EXTRACT_SLICE F_CVF
syn keyword idlangRoutine F_PDF FACTORIAL FFT FILE_CHMOD FILE_DELETE
syn keyword idlangRoutine FILE_EXPAND_PATH FILE_MKDIR FILE_TEST FILE_WHICH
syn keyword idlangRoutine FILEPATH FINDFILE FINDGEN FINITE FIX FLICK FLOAT
syn keyword idlangRoutine FLOOR FLOW3 FLTARR FLUSH FORMAT_AXIS_VALUES
syn keyword idlangRoutine FORWARD_FUNCTION FREE_LUN FSTAT FULSTR FUNCT
syn keyword idlangRoutine FV_TEST FX_ROOT FZ_ROOTS GAMMA GAMMA_CT
syn keyword idlangRoutine GAUSS_CVF GAUSS_PDF GAUSS2DFIT GAUSSFIT GAUSSINT
syn keyword idlangRoutine GET_DRIVE_LIST GET_KBRD GET_LUN GET_SCREEN_SIZE
syn keyword idlangRoutine GET_SYMBOL GETENV GOTO GRID_TPS GRID3 GS_ITER
syn keyword idlangRoutine H_EQ_CT H_EQ_INT HANNING HEAP_GC HELP HILBERT
syn keyword idlangRoutine HIST_2D HIST_EQUAL HISTOGRAM HLS HOUGH HQR HSV
syn keyword idlangRoutine IBETA IDENTITY IDL_Container IDLanROI
syn keyword idlangRoutine IDLanROIGroup IDLffDICOM IDLffDXF IDLffLanguageCat
syn keyword idlangRoutine IDLffShape IDLgrAxis IDLgrBuffer IDLgrClipboard
syn keyword idlangRoutine IDLgrColorbar IDLgrContour IDLgrFont IDLgrImage
syn keyword idlangRoutine IDLgrLegend IDLgrLight IDLgrModel IDLgrMPEG
syn keyword idlangRoutine IDLgrPalette IDLgrPattern IDLgrPlot IDLgrPolygon
syn keyword idlangRoutine IDLgrPolyline IDLgrPrinter IDLgrROI IDLgrROIGroup
syn keyword idlangRoutine IDLgrScene IDLgrSurface IDLgrSymbol
syn keyword idlangRoutine IDLgrTessellator IDLgrText IDLgrView
syn keyword idlangRoutine IDLgrViewgroup IDLgrVolume IDLgrVRML IDLgrWindow
syn keyword idlangRoutine IGAMMA IMAGE_CONT IMAGE_STATISTICS IMAGINARY
syn keyword idlangRoutine INDGEN INT_2D INT_3D INT_TABULATED INTARR INTERPOL
syn keyword idlangRoutine INTERPOLATE INVERT IOCTL ISHFT ISOCONTOUR
syn keyword idlangRoutine ISOSURFACE JOURNAL JULDAY KEYWORD_SET KRIG2D
syn keyword idlangRoutine KURTOSIS KW_TEST L64INDGEN LABEL_DATE LABEL_REGION
syn keyword idlangRoutine LADFIT LAGUERRE LEEFILT LEGENDRE LINBCG LINDGEN
syn keyword idlangRoutine LINFIT LINKIMAGE LIVE_CONTOUR LIVE_CONTROL
syn keyword idlangRoutine LIVE_DESTROY LIVE_EXPORT LIVE_IMAGE LIVE_INFO
syn keyword idlangRoutine LIVE_LINE LIVE_LOAD LIVE_OPLOT LIVE_PLOT
syn keyword idlangRoutine LIVE_PRINT LIVE_RECT LIVE_STYLE LIVE_SURFACE
syn keyword idlangRoutine LIVE_TEXT LJLCT LL_ARC_DISTANCE LMFIT LMGR LNGAMMA
syn keyword idlangRoutine LNP_TEST LOADCT LOCALE_GET LON64ARR LONARR LONG
syn keyword idlangRoutine LONG64 LSODE LU_COMPLEX LUDC LUMPROVE LUSOL
syn keyword idlangRoutine M_CORRELATE MACHAR MAKE_ARRAY MAKE_DLL MAP_2POINTS
syn keyword idlangRoutine MAP_CONTINENTS MAP_GRID MAP_IMAGE MAP_PATCH
syn keyword idlangRoutine MAP_PROJ_INFO MAP_SET MATRIX_MULTIPLY MD_TEST MEAN
syn keyword idlangRoutine MEANABSDEV MEDIAN MEMORY MESH_CLIP MESH_DECIMATE
syn keyword idlangRoutine MESH_ISSOLID MESH_MERGE MESH_NUMTRIANGLES MESH_OBJ
syn keyword idlangRoutine MESH_SMOOTH MESH_SURFACEAREA MESH_VALIDATE
syn keyword idlangRoutine MESH_VOLUME MESSAGE MIN_CURVE_SURF MK_HTML_HELP
syn keyword idlangRoutine MODIFYCT MOMENT MORPH_CLOSE MORPH_DISTANCE
syn keyword idlangRoutine MORPH_GRADIENT MORPH_HITORMISS MORPH_OPEN
syn keyword idlangRoutine MORPH_THIN MORPH_TOPHAT MPEG_CLOSE MPEG_OPEN
syn keyword idlangRoutine MPEG_PUT MPEG_SAVE MSG_CAT_CLOSE MSG_CAT_COMPILE
syn keyword idlangRoutine MSG_CAT_OPEN MULTI N_ELEMENTS N_PARAMS N_TAGS
syn keyword idlangRoutine NEWTON NORM OBJ_CLASS OBJ_DESTROY OBJ_ISA OBJ_NEW
syn keyword idlangRoutine OBJ_VALID OBJARR ON_ERROR ON_IOERROR ONLINE_HELP
syn keyword idlangRoutine OPEN OPENR OPENW OPLOT OPLOTERR P_CORRELATE
syn keyword idlangRoutine PARTICLE_TRACE PCOMP PLOT PLOT_3DBOX PLOT_FIELD
syn keyword idlangRoutine PLOTERR PLOTS PNT_LINE POINT_LUN POLAR_CONTOUR
syn keyword idlangRoutine POLAR_SURFACE POLY POLY_2D POLY_AREA POLY_FIT
syn keyword idlangRoutine POLYFILL POLYFILLV POLYSHADE POLYWARP POPD POWELL
syn keyword idlangRoutine PRIMES PRINT PRINTF PRINTD PROFILE PROFILER
syn keyword idlangRoutine PROFILES PROJECT_VOL PS_SHOW_FONTS PSAFM PSEUDO
syn keyword idlangRoutine PTR_FREE PTR_NEW PTR_VALID PTRARR PUSHD QROMB
syn keyword idlangRoutine QROMO QSIMP R_CORRELATE R_TEST RADON RANDOMN
syn keyword idlangRoutine RANDOMU RANKS RDPIX READ READF READ_ASCII
syn keyword idlangRoutine READ_BINARY READ_BMP READ_DICOM READ_IMAGE
syn keyword idlangRoutine READ_INTERFILE READ_JPEG READ_PICT READ_PNG
syn keyword idlangRoutine READ_PPM READ_SPR READ_SRF READ_SYLK READ_TIFF
syn keyword idlangRoutine READ_WAV READ_WAVE READ_X11_BITMAP READ_XWD READS
syn keyword idlangRoutine READU REBIN RECALL_COMMANDS RECON3 REDUCE_COLORS
syn keyword idlangRoutine REFORM REGRESS REPLICATE REPLICATE_INPLACE
syn keyword idlangRoutine RESOLVE_ALL RESOLVE_ROUTINE RESTORE RETALL RETURN
syn keyword idlangRoutine REVERSE REWIND RK4 ROBERTS ROT ROTATE ROUND
syn keyword idlangRoutine ROUTINE_INFO RS_TEST S_TEST SAVE SAVGOL SCALE3
syn keyword idlangRoutine SCALE3D SEARCH2D SEARCH3D SET_PLOT SET_SHADING
syn keyword idlangRoutine SET_SYMBOL SETENV SETLOG SETUP_KEYS SFIT
syn keyword idlangRoutine SHADE_SURF SHADE_SURF_IRR SHADE_VOLUME SHIFT SHOW3
syn keyword idlangRoutine SHOWFONT SIN SINDGEN SINH SIZE SKEWNESS SKIPF
syn keyword idlangRoutine SLICER3 SLIDE_IMAGE SMOOTH SOBEL SOCKET SORT SPAWN
syn keyword idlangRoutine SPH_4PNT SPH_SCAT SPHER_HARM SPL_INIT SPL_INTERP
syn keyword idlangRoutine SPLINE SPLINE_P SPRSAB SPRSAX SPRSIN SPRSTP SQRT
syn keyword idlangRoutine STANDARDIZE STDDEV STOP STRARR STRCMP STRCOMPRESS
syn keyword idlangRoutine STREAMLINE STREGEX STRETCH STRING STRJOIN STRLEN
syn keyword idlangRoutine STRLOWCASE STRMATCH STRMESSAGE STRMID STRPOS
syn keyword idlangRoutine STRPUT STRSPLIT STRTRIM STRUCT_ASSIGN STRUCT_HIDE
syn keyword idlangRoutine STRUPCASE SURFACE SURFR SVDC SVDFIT SVSOL
syn keyword idlangRoutine SWAP_ENDIAN SWITCH SYSTIME T_CVF T_PDF T3D
syn keyword idlangRoutine TAG_NAMES TAN TANH TAPRD TAPWRT TEK_COLOR
syn keyword idlangRoutine TEMPORARY TETRA_CLIP TETRA_SURFACE TETRA_VOLUME
syn keyword idlangRoutine THIN THREED TIME_TEST2 TIMEGEN TM_TEST TOTAL TRACE
syn keyword idlangRoutine TRANSPOSE TRI_SURF TRIANGULATE TRIGRID TRIQL
syn keyword idlangRoutine TRIRED TRISOL TRNLOG TS_COEF TS_DIFF TS_FCAST
syn keyword idlangRoutine TS_SMOOTH TV TVCRS TVLCT TVRD TVSCL UINDGEN UINT
syn keyword idlangRoutine UINTARR UL64INDGEN ULINDGEN ULON64ARR ULONARR
syn keyword idlangRoutine ULONG ULONG64 UNIQ USERSYM VALUE_LOCATE VARIANCE
syn keyword idlangRoutine VAX_FLOAT VECTOR_FIELD VEL VELOVECT VERT_T3D VOIGT
syn keyword idlangRoutine VORONOI VOXEL_PROJ WAIT WARP_TRI WATERSHED WDELETE
syn keyword idlangRoutine WEOF WF_DRAW WHERE WIDGET_BASE WIDGET_BUTTON
syn keyword idlangRoutine WIDGET_CONTROL WIDGET_DRAW WIDGET_DROPLIST
syn keyword idlangRoutine WIDGET_EVENT WIDGET_INFO WIDGET_LABEL WIDGET_LIST
syn keyword idlangRoutine WIDGET_SLIDER WIDGET_TABLE WIDGET_TEXT WINDOW
syn keyword idlangRoutine WRITE_BMP WRITE_IMAGE WRITE_JPEG WRITE_NRIF
syn keyword idlangRoutine WRITE_PICT WRITE_PNG WRITE_PPM WRITE_SPR WRITE_SRF
syn keyword idlangRoutine WRITE_SYLK WRITE_TIFF WRITE_WAV WRITE_WAVE WRITEU
syn keyword idlangRoutine WSET WSHOW WTN WV_APPLET WV_CW_WAVELET WV_CWT
syn keyword idlangRoutine WV_DENOISE WV_DWT WV_FN_COIFLET WV_FN_DAUBECHIES
syn keyword idlangRoutine WV_FN_GAUSSIAN WV_FN_HAAR WV_FN_MORLET WV_FN_PAUL
syn keyword idlangRoutine WV_FN_SYMLET WV_IMPORT_DATA WV_IMPORT_WAVELET
syn keyword idlangRoutine WV_PLOT3D_WPS WV_PLOT_MULTIRES WV_PWT
syn keyword idlangRoutine WV_TOOL_DENOISE XBM_EDIT XDISPLAYFILE XDXF XFONT
syn keyword idlangRoutine XINTERANIMATE XLOADCT XMANAGER XMNG_TMPL XMTOOL
syn keyword idlangRoutine XOBJVIEW XPALETTE XPCOLOR XPLOT3D XREGISTERED XROI
syn keyword idlangRoutine XSQ_TEST XSURFACE XVAREDIT XVOLUME XVOLUME_ROTATE
syn keyword idlangRoutine XVOLUME_WRITE_IMAGE XYOUTS ZOOM ZOOM_24

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link idlangConditional	Conditional
hi def link idlangRoutine	Type
hi def link idlangStatement	Statement
hi def link idlangContinueLine	Todo
hi def link idlangRealNumber	Float
hi def link idlangNumber	Number
hi def link idlangString	String
hi def link idlangOperator	Operator
hi def link idlangComment	Comment
hi def link idlangTodo	Todo
hi def link idlangPreCondit	Identifier
hi def link idlangDblCommaError	Error
hi def link idlangStop	Error
hi def link idlangStrucvar	PreProc
hi def link idlangSystem	Identifier
hi def link idlangKeyword	Special


let b:current_syntax = "idlang"
" vim: ts=18
PK�j�ZF�y9U.U.vim80/syntax/autohotkey.vimnu�[���" Vim syntax file
" Language:         AutoHotkey script file
" Maintainer:       Michael Wong
"                   https://github.com/mmikeww/autohotkey.vim
" Latest Revision:  2017-04-03
" Previous Maintainers:       SungHyun Nam <goweol@gmail.com>
"                             Nikolai Weibull <now@bitwi.se>

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

syn keyword autohotkeyTodo
      \ contained
      \ TODO FIXME XXX NOTE

" only these chars are valid as escape sequences:   ,%`;nrbtvaf
" https://autohotkey.com/docs/commands/_EscapeChar.htm
syn match   autohotkeyEscape
      \ display
      \ '`[,%`;nrbtvaf]'

syn region autohotkeyString
      \ display
      \ oneline
      \ matchgroup=autohotkeyStringDelimiter
      \ start=+"+
      \ end=+"+
      \ contains=autohotkeyEscape

syn match autohotkeyVariable
      \ display
      \ oneline
      \ contains=autohotkeyBuiltinVariable
      \ keepend
      \ '%\S\{-}%'

syn keyword autohotkeyBuiltinVariable
      \ A_Space A_Tab
      \ A_WorkingDir A_ScriptDir A_ScriptName A_ScriptFullPath A_ScriptHwnd A_LineNumber
      \ A_LineFile A_ThisFunc A_ThisLabel A_AhkVersion A_AhkPath A_IsUnicode A_IsCompiled A_ExitReason
      \ A_YYYY A_MM A_DD A_MMMM A_MMM A_DDDD A_DDD A_WDay A_YDay A_YWeek A_Hour A_Min
      \ A_Mon A_Year A_MDay A_NumBatchLines
      \ A_Sec A_MSec A_Now A_NowUTC A_TickCount
      \ A_IsSuspended A_IsPaused A_IsCritical A_BatchLines A_TitleMatchMode A_TitleMatchModeSpeed
      \ A_DetectHiddenWindows A_DetectHiddenText A_AutoTrim A_StringCaseSense
      \ A_FileEncoding A_FormatInteger A_FormatFloat A_KeyDelay A_WinDelay A_ControlDelay
      \ A_SendMode A_SendLevel A_StoreCapsLockMode A_KeyDelay A_KeyDelayDuration
      \ A_KeyDelayPlay A_KeyDelayPlayDuration A_MouseDelayPlay
      \ A_MouseDelay A_DefaultMouseSpeed A_RegView A_IconHidden A_IconTip A_IconFile
      \ A_CoordModeToolTip A_CoordModePixel A_CoordModeMouse A_CoordModeCaret A_CoordModeMenu
      \ A_IconNumber
      \ A_TimeIdle A_TimeIdlePhysical A_DefaultGui A_DefaultListView A_DefaultTreeView
      \ A_Gui A_GuiControl A_GuiWidth A_GuiHeight A_GuiX A_GuiY A_GuiEvent
      \ A_GuiControlEvent A_EventInfo
      \ A_ThisMenuItem A_ThisMenu A_ThisMenuItemPos A_ThisHotkey A_PriorHotkey
      \ A_PriorKey A_TimeSinceThisHotkey A_TimeSincePriorHotkey A_EndChar
      \ ComSpec A_Temp A_OSType A_OSVersion A_Language A_ComputerName A_UserName
      \ A_Is64BitOS A_PtrSize
      \ A_WinDir A_ProgramFiles ProgramFiles A_AppData A_AppDataCommon A_Desktop
      \ A_DesktopCommon A_StartMenu A_StartMenuCommon A_Programs
      \ A_ProgramsCommon A_Startup A_StartupCommon A_MyDocuments A_IsAdmin
      \ A_ScreenWidth A_ScreenHeight A_ScreenDPI A_IPAddress1 A_IPAddress2 A_IPAddress3
      \ A_IPAddress4
      \ A_Cursor A_CaretX A_CaretY Clipboard ClipboardAll ErrorLevel A_LastError
      \ A_Index A_LoopFileName A_LoopRegName A_LoopReadLine A_LoopField
      \ A_LoopFileExt A_LoopFileFullPath A_LoopFileLongPath A_LoopFileShortPath
      \ A_LoopFileShortName A_LoopFileDir A_LoopFileTimeModified A_LoopFileTimeCreated
      \ A_LoopFileTimeAccessed A_LoopFileAttrib A_LoopFileSize A_LoopFileSizeKB A_LoopFileSizeMB
      \ A_LoopRegType A_LoopRegKey A_LoopRegSubKey A_LoopRegTimeModified

syn match   autohotkeyBuiltinVariable
      \ contained
      \ display
      \ '%\d\+%'

syn keyword autohotkeyCommand
      \ ClipWait EnvGet EnvSet EnvUpdate
      \ Drive DriveGet DriveSpaceFree FileAppend FileCopy FileCopyDir
      \ FileCreateDir FileCreateShortcut FileDelete FileGetAttrib FileEncoding
      \ FileGetShortcut FileGetSize FileGetTime FileGetVersion FileInstall
      \ FileMove FileMoveDir FileReadLine FileRead FileRecycle FileRecycleEmpty
      \ FileRemoveDir FileSelectFolder FileSelectFile FileSetAttrib FileSetTime
      \ IniDelete IniRead IniWrite SetWorkingDir
      \ SplitPath
      \ Gui GuiControl GuiControlGet IfMsgBox InputBox MsgBox Progress
      \ SplashImage SplashTextOn SplashTextOff ToolTip TrayTip
      \ Hotkey ListHotkeys BlockInput ControlSend ControlSendRaw GetKeyState
      \ KeyHistory KeyWait Input Send SendRaw SendInput SendPlay SendEvent
      \ SendMode SetKeyDelay SetNumScrollCapsLockState SetStoreCapslockMode
      \ EnvAdd EnvDiv EnvMult EnvSub Random SetFormat Transform
      \ AutoTrim BlockInput CoordMode Critical Edit ImageSearch
      \ ListLines ListVars Menu OutputDebug PixelGetColor PixelSearch
      \ SetBatchLines SetEnv SetTimer SysGet Thread Transform URLDownloadToFile
      \ Click ControlClick MouseClick MouseClickDrag MouseGetPos MouseMove
      \ SetDefaultMouseSpeed SetMouseDelay
      \ Process Run RunWait RunAs Shutdown Sleep
      \ RegDelete RegRead RegWrite
      \ SoundBeep SoundGet SoundGetWaveVolume SoundPlay SoundSet
      \ SoundSetWaveVolume
      \ FormatTime IfInString IfNotInString Sort StringCaseSense StringGetPos
      \ StringLeft StringRight StringLower StringUpper StringMid StringReplace
      \ StringSplit StringTrimLeft StringTrimRight StringLen
      \ StrSplit StrReplace Throw
      \ Control ControlClick ControlFocus ControlGet ControlGetFocus
      \ ControlGetPos ControlGetText ControlMove ControlSend ControlSendRaw
      \ ControlSetText Menu PostMessage SendMessage SetControlDelay
      \ WinMenuSelectItem GroupActivate GroupAdd GroupClose GroupDeactivate
      \ DetectHiddenText DetectHiddenWindows SetTitleMatchMode SetWinDelay
      \ StatusBarGetText StatusBarWait WinActivate WinActivateBottom WinClose
      \ WinGet WinGetActiveStats WinGetActiveTitle WinGetClass WinGetPos
      \ WinGetText WinGetTitle WinHide WinKill WinMaximize WinMinimize
      \ WinMinimizeAll WinMinimizeAllUndo WinMove WinRestore WinSet
      \ WinSetTitle WinShow WinWait WinWaitActive WinWaitNotActive WinWaitClose
      \ SetCapsLockState SetNumLockState SetScrollLockState

syn keyword autohotkeyFunction
      \ InStr RegExMatch RegExReplace StrLen SubStr Asc Chr Func
      \ DllCall VarSetCapacity WinActive WinExist IsLabel OnMessage 
      \ Abs Ceil Exp Floor Log Ln Mod Round Sqrt Sin Cos Tan ASin ACos ATan
      \ FileExist GetKeyState NumGet NumPut StrGet StrPut RegisterCallback
      \ IsFunc Trim LTrim RTrim IsObject Object Array FileOpen
      \ ComObjActive ComObjArray ComObjConnect ComObjCreate ComObjGet
      \ ComObjError ComObjFlags ComObjQuery ComObjType ComObjValue ComObject
      \ Format Exception

syn keyword autohotkeyStatement
      \ Break Continue Exit ExitApp Gosub Goto OnExit Pause Return
      \ Suspend Reload new class extends

syn keyword autohotkeyRepeat
      \ Loop

syn keyword autohotkeyConditional
      \ IfExist IfNotExist If IfEqual IfLess IfGreater Else
      \ IfWinExist IfWinNotExist IfWinActive IfWinNotActive
      \ IfNotEqual IfLessOrEqual IfGreaterOrEqual
      \ while until for in try catch finally

syn match   autohotkeyPreProcStart
      \ nextgroup=
      \   autohotkeyInclude,
      \   autohotkeyPreProc
      \ skipwhite
      \ display
      \ '^\s*\zs#'

syn keyword autohotkeyInclude
      \ contained
      \ Include
      \ IncludeAgain

syn keyword autohotkeyPreProc
      \ contained
      \ HotkeyInterval HotKeyModifierTimeout
      \ Hotstring
      \ IfWinActive IfWinNotActive IfWinExist IfWinNotExist
      \ If IfTimeout
      \ MaxHotkeysPerInterval MaxThreads MaxThreadsBuffer MaxThreadsPerHotkey
      \ UseHook InstallKeybdHook InstallMouseHook
      \ KeyHistory
      \ NoTrayIcon SingleInstance
      \ WinActivateForce
      \ AllowSameLineComments
      \ ClipboardTimeout
      \ CommentFlag
      \ ErrorStdOut
      \ EscapeChar
      \ MaxMem
      \ NoEnv
      \ Persistent
      \ LTrim
      \ InputLevel
      \ MenuMaskKey
      \ Warn

syn keyword autohotkeyMatchClass
      \ ahk_group ahk_class ahk_id ahk_pid ahk_exe

syn match   autohotkeyNumbers
      \ display
      \ transparent
      \ contains=
      \   autohotkeyInteger,
      \   autohotkeyFloat
      \ '\<\d\|\.\d'

syn match   autohotkeyInteger
      \ contained
      \ display
      \ '\d\+\>'

syn match   autohotkeyInteger
      \ contained
      \ display
      \ '0x\x\+\>'

syn match   autohotkeyFloat
      \ contained
      \ display
      \ '\d\+\.\d*\|\.\d\+\>'

syn keyword autohotkeyType
      \ local
      \ global
      \ static
      \ byref

syn keyword autohotkeyBoolean
      \ true
      \ false

syn match   autohotkeyHotkey
      \ contains=autohotkeyKey,
      \   autohotkeyHotkeyDelimiter
      \ display
      \ '^\s*\S*\%( Up\)\?::'

syn match   autohotkeyKey
      \ contained
      \ display
      \ '^.\{-}'

syn match   autohotkeyDelimiter
      \ contained
      \ display
      \ '::'

" allowable hotstring options:
" https://autohotkey.com/docs/Hotstrings.htm
syn match   autohotkeyHotstringDefinition
      \ contains=autohotkeyHotstring,
      \   autohotkeyHotstringDelimiter
      \ display
      \ '^\s*:\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:.\{-}::'

syn match   autohotkeyHotstring
      \ contained
      \ display
      \ '.\{-}'

syn match   autohotkeyHotstringDelimiter
      \ contained
      \ display
      \ '::'

syn match   autohotkeyHotstringDelimiter
      \ contains=autohotkeyHotstringOptions
      \ contained
      \ display
      \ ':\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:'

syn match   autohotkeyHotstringOptions
      \ contained
      \ display
      \ '\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*'

syn cluster autohotkeyCommentGroup
      \ contains=
      \   autohotkeyTodo,
      \   @Spell

syn match   autohotkeyComment
      \ display
      \ contains=@autohotkeyCommentGroup
      \ '\%(^;\|\s\+;\).*$'

syn region  autohotkeyComment
      \ contains=@autohotkeyCommentGroup
      \ matchgroup=autohotkeyCommentStart
      \ start='^\s*/\*'
      \ end='^\s*\*/'

" TODO: Shouldn't we look for g:, b:,  variables before defaulting to
" something?
if exists("g:autohotkey_syntax_sync_minlines")
  let b:autohotkey_syntax_sync_minlines = g:autohotkey_syntax_sync_minlines
else
  let b:autohotkey_syntax_sync_minlines = 50
endif
exec "syn sync ccomment autohotkeyComment minlines=" . b:autohotkey_syntax_sync_minlines

hi def link autohotkeyTodo                Todo
hi def link autohotkeyComment             Comment
hi def link autohotkeyCommentStart        autohotkeyComment
hi def link autohotkeyEscape              Special
hi def link autohotkeyHotkey              Type
hi def link autohotkeyKey                 Type
hi def link autohotkeyDelimiter           Delimiter
hi def link autohotkeyHotstringDefinition Type
hi def link autohotkeyHotstring           Type
hi def link autohotkeyHotstringDelimiter  autohotkeyDelimiter
hi def link autohotkeyHotstringOptions    Special
hi def link autohotkeyString              String
hi def link autohotkeyStringDelimiter     autohotkeyString
hi def link autohotkeyVariable            Identifier
hi def link autohotkeyVariableDelimiter   autohotkeyVariable
hi def link autohotkeyBuiltinVariable     Macro
hi def link autohotkeyCommand             Keyword
hi def link autohotkeyFunction            Function
hi def link autohotkeyStatement           autohotkeyCommand
hi def link autohotkeyRepeat              Repeat
hi def link autohotkeyConditional         Conditional
hi def link autohotkeyPreProcStart        PreProc
hi def link autohotkeyInclude             Include
hi def link autohotkeyPreProc             PreProc
hi def link autohotkeyMatchClass          Typedef
hi def link autohotkeyNumber              Number
hi def link autohotkeyInteger             autohotkeyNumber
hi def link autohotkeyFloat               autohotkeyNumber
hi def link autohotkeyType                Type
hi def link autohotkeyBoolean             Boolean

let b:current_syntax = "autohotkey"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z,aC��vim80/syntax/lisp.vimnu�[���" Vim syntax file
" Language:    Lisp
" Maintainer:  Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Feb 15, 2018
" Version:     27
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
"
"  Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
"  Clisp additions courtesy of http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/emacs/lisp.vim

" ---------------------------------------------------------------------
"  Load Once: {{{1
if exists("b:current_syntax")
 finish
endif

if exists("g:lisp_isk")
 exe "setl isk=".g:lisp_isk
elseif !has("patch-7.4.1142")
 setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
else
 syn iskeyword 38,42,43,45,47-58,60-62,64-90,97-122,_
endif

if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp")
 set ignorecase
endif

" ---------------------------------------------------------------------
" Clusters: {{{1
syn cluster			lispAtomCluster		contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
syn cluster			lispBaseListCluster	contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispEscapeSpecial,lispSymbol,lispVar,lispLeadWhite
if exists("g:lisp_instring")
 syn cluster			lispListCluster		contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
else
 syn cluster			lispListCluster		contains=@lispBaseListCluster,lispString
endif

syn case ignore

" ---------------------------------------------------------------------
" Lists: {{{1
syn match lispSymbol	contained	![^()'`,"; \t]\+!
syn match lispBarSymbol	contained	!|..\{-}|!
if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
 syn region lispParen0           matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1
 syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2
 syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3
 syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4
 syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5
 syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6
 syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7
 syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8
 syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
 syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
else
 syn region lispList			matchgroup=Delimiter start="("   skip="|.\{-}|"			matchgroup=Delimiter end=")"	contains=@lispListCluster
 syn region lispBQList			matchgroup=PreProc   start="`("  skip="|.\{-}|"			matchgroup=PreProc   end=")"		contains=@lispListCluster
endif

" ---------------------------------------------------------------------
" Atoms: {{{1
syn match lispAtomMark			"'"
syn match lispAtom			"'("me=e-1			contains=lispAtomMark	nextgroup=lispAtomList
syn match lispAtom			"'[^ \t()]\+"			contains=lispAtomMark
syn match lispAtomBarSymbol		!'|..\{-}|!			contains=lispAtomMark
syn region lispAtom			start=+'"+			skip=+\\"+ end=+"+
syn region lispAtomList			contained			matchgroup=Special start="("	skip="|.\{-}|" matchgroup=Special end=")"	contains=@lispAtomCluster,lispString,lispEscapeSpecial
syn match lispAtomNmbr			contained			"\<\d\+"
syn match lispLeadWhite			contained			"^\s\+"

" ---------------------------------------------------------------------
" Standard Lisp Functions and Macros: {{{1
syn keyword lispFunc		<				find-method				pprint-indent
syn keyword lispFunc		<=				find-package				pprint-linear
syn keyword lispFunc		=				find-restart				pprint-logical-block
syn keyword lispFunc		>				find-symbol				pprint-newline
syn keyword lispFunc		>=				finish-output				pprint-pop
syn keyword lispFunc		-				first					pprint-tab
syn keyword lispFunc		/				fixnum					pprint-tabular
syn keyword lispFunc		/=				flet					prin1
syn keyword lispFunc		//				float					prin1-to-string
syn keyword lispFunc		///				float-digits				princ
syn keyword lispFunc		*				floating-point-inexact			princ-to-string
syn keyword lispFunc		**				floating-point-invalid-operation	print
syn keyword lispFunc		***				floating-point-overflow			print-not-readable
syn keyword lispFunc		+				floating-point-underflow		print-not-readable-object
syn keyword lispFunc		++				floatp					print-object
syn keyword lispFunc		+++				float-precision				print-unreadable-object
syn keyword lispFunc		1-				float-radix				probe-file
syn keyword lispFunc		1+				float-sign				proclaim
syn keyword lispFunc		abort				floor					prog
syn keyword lispFunc		abs				fmakunbound				prog*
syn keyword lispFunc		access				force-output				prog1
syn keyword lispFunc		acons				format					prog2
syn keyword lispFunc		acos				formatter				progn
syn keyword lispFunc		acosh				fourth					program-error
syn keyword lispFunc		add-method			fresh-line				progv
syn keyword lispFunc		adjoin				fround					provide
syn keyword lispFunc		adjustable-array-p		ftruncate				psetf
syn keyword lispFunc		adjust-array			ftype					psetq
syn keyword lispFunc		allocate-instance		funcall					push
syn keyword lispFunc		alpha-char-p			function				pushnew
syn keyword lispFunc		alphanumericp			function-keywords			putprop
syn keyword lispFunc		and				function-lambda-expression		quote
syn keyword lispFunc		append				functionp				random
syn keyword lispFunc		apply				gbitp					random-state
syn keyword lispFunc		applyhook			gcd					random-state-p
syn keyword lispFunc		apropos				generic-function			rassoc
syn keyword lispFunc		apropos-list			gensym					rassoc-if
syn keyword lispFunc		aref				gentemp					rassoc-if-not
syn keyword lispFunc		arithmetic-error		get					ratio
syn keyword lispFunc		arithmetic-error-operands	get-decoded-time			rational
syn keyword lispFunc		arithmetic-error-operation	get-dispatch-macro-character		rationalize
syn keyword lispFunc		array				getf					rationalp
syn keyword lispFunc		array-dimension			gethash					read
syn keyword lispFunc		array-dimension-limit		get-internal-real-time			read-byte
syn keyword lispFunc		array-dimensions		get-internal-run-time			read-char
syn keyword lispFunc		array-displacement		get-macro-character			read-char-no-hang
syn keyword lispFunc		array-element-type		get-output-stream-string		read-delimited-list
syn keyword lispFunc		array-has-fill-pointer-p	get-properties				reader-error
syn keyword lispFunc		array-in-bounds-p		get-setf-expansion			read-eval-print
syn keyword lispFunc		arrayp				get-setf-method				read-from-string
syn keyword lispFunc		array-rank			get-universal-time			read-line
syn keyword lispFunc		array-rank-limit		go					read-preserving-whitespace
syn keyword lispFunc		array-row-major-index		graphic-char-p				read-sequence
syn keyword lispFunc		array-total-size		handler-bind				readtable
syn keyword lispFunc		array-total-size-limit		handler-case				readtable-case
syn keyword lispFunc		ash				hash-table				readtablep
syn keyword lispFunc		asin				hash-table-count			real
syn keyword lispFunc		asinh				hash-table-p				realp
syn keyword lispFunc		assert				hash-table-rehash-size			realpart
syn keyword lispFunc		assoc				hash-table-rehash-threshold		reduce
syn keyword lispFunc		assoc-if			hash-table-size				reinitialize-instance
syn keyword lispFunc		assoc-if-not			hash-table-test				rem
syn keyword lispFunc		atan				host-namestring				remf
syn keyword lispFunc		atanh				identity				remhash
syn keyword lispFunc		atom				if					remove
syn keyword lispFunc		base-char			if-exists				remove-duplicates
syn keyword lispFunc		base-string			ignorable				remove-if
syn keyword lispFunc		bignum				ignore					remove-if-not
syn keyword lispFunc		bit				ignore-errors				remove-method
syn keyword lispFunc		bit-and				imagpart				remprop
syn keyword lispFunc		bit-andc1			import					rename-file
syn keyword lispFunc		bit-andc2			incf					rename-package
syn keyword lispFunc		bit-eqv				initialize-instance			replace
syn keyword lispFunc		bit-ior				inline					require
syn keyword lispFunc		bit-nand			in-package				rest
syn keyword lispFunc		bit-nor				in-package				restart
syn keyword lispFunc		bit-not				input-stream-p				restart-bind
syn keyword lispFunc		bit-orc1			inspect					restart-case
syn keyword lispFunc		bit-orc2			int-char				restart-name
syn keyword lispFunc		bit-vector			integer					return
syn keyword lispFunc		bit-vector-p			integer-decode-float			return-from
syn keyword lispFunc		bit-xor				integer-length				revappend
syn keyword lispFunc		block				integerp				reverse
syn keyword lispFunc		boole				interactive-stream-p			room
syn keyword lispFunc		boole-1				intern					rotatef
syn keyword lispFunc		boole-2				internal-time-units-per-second		round
syn keyword lispFunc		boolean				intersection				row-major-aref
syn keyword lispFunc		boole-and			invalid-method-error			rplaca
syn keyword lispFunc		boole-andc1			invoke-debugger				rplacd
syn keyword lispFunc		boole-andc2			invoke-restart				safety
syn keyword lispFunc		boole-c1			invoke-restart-interactively		satisfies
syn keyword lispFunc		boole-c2			isqrt					sbit
syn keyword lispFunc		boole-clr			keyword					scale-float
syn keyword lispFunc		boole-eqv			keywordp				schar
syn keyword lispFunc		boole-ior			labels					search
syn keyword lispFunc		boole-nand			lambda					second
syn keyword lispFunc		boole-nor			lambda-list-keywords			sequence
syn keyword lispFunc		boole-orc1			lambda-parameters-limit			serious-condition
syn keyword lispFunc		boole-orc2			last					set
syn keyword lispFunc		boole-set			lcm					set-char-bit
syn keyword lispFunc		boole-xor			ldb					set-difference
syn keyword lispFunc		both-case-p			ldb-test				set-dispatch-macro-character
syn keyword lispFunc		boundp				ldiff					set-exclusive-or
syn keyword lispFunc		break				least-negative-double-float		setf
syn keyword lispFunc		broadcast-stream		least-negative-long-float		set-macro-character
syn keyword lispFunc		broadcast-stream-streams	least-negative-normalized-double-float	set-pprint-dispatch
syn keyword lispFunc		built-in-class			least-negative-normalized-long-float	setq
syn keyword lispFunc		butlast				least-negative-normalized-short-float	set-syntax-from-char
syn keyword lispFunc		byte				least-negative-normalized-single-float	seventh
syn keyword lispFunc		byte-position			least-negative-short-float		shadow
syn keyword lispFunc		byte-size			least-negative-single-float		shadowing-import
syn keyword lispFunc		call-arguments-limit		least-positive-double-float		shared-initialize
syn keyword lispFunc		call-method			least-positive-long-float		shiftf
syn keyword lispFunc		call-next-method		least-positive-normalized-double-float	short-float
syn keyword lispFunc		capitalize			least-positive-normalized-long-float	short-float-epsilon
syn keyword lispFunc		car				least-positive-normalized-short-float	short-float-negative-epsilon
syn keyword lispFunc		case				least-positive-normalized-single-float	short-site-name
syn keyword lispFunc		catch				least-positive-short-float		signal
syn keyword lispFunc		ccase				least-positive-single-float		signed-byte
syn keyword lispFunc		cdr				length					signum
syn keyword lispFunc		ceiling				let					simple-array
syn keyword lispFunc		cell-error			let*					simple-base-string
syn keyword lispFunc		cell-error-name			lisp					simple-bit-vector
syn keyword lispFunc		cerror				lisp-implementation-type		simple-bit-vector-p
syn keyword lispFunc		change-class			lisp-implementation-version		simple-condition
syn keyword lispFunc		char				list					simple-condition-format-arguments
syn keyword lispFunc		char<				list*					simple-condition-format-control
syn keyword lispFunc		char<=				list-all-packages			simple-error
syn keyword lispFunc		char=				listen					simple-string
syn keyword lispFunc		char>				list-length				simple-string-p
syn keyword lispFunc		char>=				listp					simple-type-error
syn keyword lispFunc		char/=				load					simple-vector
syn keyword lispFunc		character			load-logical-pathname-translations	simple-vector-p
syn keyword lispFunc		characterp			load-time-value				simple-warning
syn keyword lispFunc		char-bit			locally					sin
syn keyword lispFunc		char-bits			log					single-flaot-epsilon
syn keyword lispFunc		char-bits-limit			logand					single-float
syn keyword lispFunc		char-code			logandc1				single-float-epsilon
syn keyword lispFunc		char-code-limit			logandc2				single-float-negative-epsilon
syn keyword lispFunc		char-control-bit		logbitp					sinh
syn keyword lispFunc		char-downcase			logcount				sixth
syn keyword lispFunc		char-equal			logeqv					sleep
syn keyword lispFunc		char-font			logical-pathname			slot-boundp
syn keyword lispFunc		char-font-limit			logical-pathname-translations		slot-exists-p
syn keyword lispFunc		char-greaterp			logior					slot-makunbound
syn keyword lispFunc		char-hyper-bit			lognand					slot-missing
syn keyword lispFunc		char-int			lognor					slot-unbound
syn keyword lispFunc		char-lessp			lognot					slot-value
syn keyword lispFunc		char-meta-bit			logorc1					software-type
syn keyword lispFunc		char-name			logorc2					software-version
syn keyword lispFunc		char-not-equal			logtest					some
syn keyword lispFunc		char-not-greaterp		logxor					sort
syn keyword lispFunc		char-not-lessp			long-float				space
syn keyword lispFunc		char-super-bit			long-float-epsilon			special
syn keyword lispFunc		char-upcase			long-float-negative-epsilon		special-form-p
syn keyword lispFunc		check-type			long-site-name				special-operator-p
syn keyword lispFunc		cis				loop					speed
syn keyword lispFunc		class				loop-finish				sqrt
syn keyword lispFunc		class-name			lower-case-p				stable-sort
syn keyword lispFunc		class-of			machine-instance			standard
syn keyword lispFunc		clear-input			machine-type				standard-char
syn keyword lispFunc		clear-output			machine-version				standard-char-p
syn keyword lispFunc		close				macroexpand				standard-class
syn keyword lispFunc		clrhash				macroexpand-1				standard-generic-function
syn keyword lispFunc		code-char			macroexpand-l				standard-method
syn keyword lispFunc		coerce				macro-function				standard-object
syn keyword lispFunc		commonp				macrolet				step
syn keyword lispFunc		compilation-speed		make-array				storage-condition
syn keyword lispFunc		compile				make-array				store-value
syn keyword lispFunc		compiled-function		make-broadcast-stream			stream
syn keyword lispFunc		compiled-function-p		make-char				stream-element-type
syn keyword lispFunc		compile-file			make-concatenated-stream		stream-error
syn keyword lispFunc		compile-file-pathname		make-condition				stream-error-stream
syn keyword lispFunc		compiler-let			make-dispatch-macro-character		stream-external-format
syn keyword lispFunc		compiler-macro			make-echo-stream			streamp
syn keyword lispFunc		compiler-macro-function		make-hash-table				streamup
syn keyword lispFunc		complement			make-instance				string
syn keyword lispFunc		complex				make-instances-obsolete			string<
syn keyword lispFunc		complexp			make-list				string<=
syn keyword lispFunc		compute-applicable-methods	make-load-form				string=
syn keyword lispFunc		compute-restarts		make-load-form-saving-slots		string>
syn keyword lispFunc		concatenate			make-method				string>=
syn keyword lispFunc		concatenated-stream		make-package				string/=
syn keyword lispFunc		concatenated-stream-streams	make-pathname				string-capitalize
syn keyword lispFunc		cond				make-random-state			string-char
syn keyword lispFunc		condition			make-sequence				string-char-p
syn keyword lispFunc		conjugate			make-string				string-downcase
syn keyword lispFunc		cons				make-string-input-stream		string-equal
syn keyword lispFunc		consp				make-string-output-stream		string-greaterp
syn keyword lispFunc		constantly			make-symbol				string-left-trim
syn keyword lispFunc		constantp			make-synonym-stream			string-lessp
syn keyword lispFunc		continue			make-two-way-stream			string-not-equal
syn keyword lispFunc		control-error			makunbound				string-not-greaterp
syn keyword lispFunc		copy-alist			map					string-not-lessp
syn keyword lispFunc		copy-list			mapc					stringp
syn keyword lispFunc		copy-pprint-dispatch		mapcan					string-right-strim
syn keyword lispFunc		copy-readtable			mapcar					string-right-trim
syn keyword lispFunc		copy-seq			mapcon					string-stream
syn keyword lispFunc		copy-structure			maphash					string-trim
syn keyword lispFunc		copy-symbol			map-into				string-upcase
syn keyword lispFunc		copy-tree			mapl					structure
syn keyword lispFunc		cos				maplist					structure-class
syn keyword lispFunc		cosh				mask-field				structure-object
syn keyword lispFunc		count				max					style-warning
syn keyword lispFunc		count-if			member					sublim
syn keyword lispFunc		count-if-not			member-if				sublis
syn keyword lispFunc		ctypecase			member-if-not				subseq
syn keyword lispFunc		debug				merge					subsetp
syn keyword lispFunc		decf				merge-pathname				subst
syn keyword lispFunc		declaim				merge-pathnames				subst-if
syn keyword lispFunc		declaration			method					subst-if-not
syn keyword lispFunc		declare				method-combination			substitute
syn keyword lispFunc		decode-float			method-combination-error		substitute-if
syn keyword lispFunc		decode-universal-time		method-qualifiers			substitute-if-not
syn keyword lispFunc		defclass			min					subtypep
syn keyword lispFunc		defconstant			minusp					svref
syn keyword lispFunc		defgeneric			mismatch				sxhash
syn keyword lispFunc		define-compiler-macro		mod					symbol
syn keyword lispFunc		define-condition		most-negative-double-float		symbol-function
syn keyword lispFunc		define-method-combination	most-negative-fixnum			symbol-macrolet
syn keyword lispFunc		define-modify-macro		most-negative-long-float		symbol-name
syn keyword lispFunc		define-setf-expander		most-negative-short-float		symbolp
syn keyword lispFunc		define-setf-method		most-negative-single-float		symbol-package
syn keyword lispFunc		define-symbol-macro		most-positive-double-float		symbol-plist
syn keyword lispFunc		defmacro			most-positive-fixnum			symbol-value
syn keyword lispFunc		defmethod			most-positive-long-float		synonym-stream
syn keyword lispFunc		defpackage			most-positive-short-float		synonym-stream-symbol
syn keyword lispFunc		defparameter			most-positive-single-float		sys
syn keyword lispFunc		defsetf				muffle-warning				system
syn keyword lispFunc		defstruct			multiple-value-bind			t
syn keyword lispFunc		deftype				multiple-value-call			tagbody
syn keyword lispFunc		defun				multiple-value-list			tailp
syn keyword lispFunc		defvar				multiple-value-prog1			tan
syn keyword lispFunc		delete				multiple-value-seteq			tanh
syn keyword lispFunc		delete-duplicates		multiple-value-setq			tenth
syn keyword lispFunc		delete-file			multiple-values-limit			terpri
syn keyword lispFunc		delete-if			name-char				the
syn keyword lispFunc		delete-if-not			namestring				third
syn keyword lispFunc		delete-package			nbutlast				throw
syn keyword lispFunc		denominator			nconc					time
syn keyword lispFunc		deposit-field			next-method-p				trace
syn keyword lispFunc		describe			nil					translate-logical-pathname
syn keyword lispFunc		describe-object			nintersection				translate-pathname
syn keyword lispFunc		destructuring-bind		ninth					tree-equal
syn keyword lispFunc		digit-char			no-applicable-method			truename
syn keyword lispFunc		digit-char-p			no-next-method				truncase
syn keyword lispFunc		directory			not					truncate
syn keyword lispFunc		directory-namestring		notany					two-way-stream
syn keyword lispFunc		disassemble			notevery				two-way-stream-input-stream
syn keyword lispFunc		division-by-zero		notinline				two-way-stream-output-stream
syn keyword lispFunc		do				nreconc					type
syn keyword lispFunc		do*				nreverse				typecase
syn keyword lispFunc		do-all-symbols			nset-difference				type-error
syn keyword lispFunc		documentation			nset-exclusive-or			type-error-datum
syn keyword lispFunc		do-exeternal-symbols		nstring					type-error-expected-type
syn keyword lispFunc		do-external-symbols		nstring-capitalize			type-of
syn keyword lispFunc		dolist				nstring-downcase			typep
syn keyword lispFunc		do-symbols			nstring-upcase				unbound-slot
syn keyword lispFunc		dotimes				nsublis					unbound-slot-instance
syn keyword lispFunc		double-float			nsubst					unbound-variable
syn keyword lispFunc		double-float-epsilon		nsubst-if				undefined-function
syn keyword lispFunc		double-float-negative-epsilon	nsubst-if-not				unexport
syn keyword lispFunc		dpb				nsubstitute				unintern
syn keyword lispFunc		dribble				nsubstitute-if				union
syn keyword lispFunc		dynamic-extent			nsubstitute-if-not			unless
syn keyword lispFunc		ecase				nth					unread
syn keyword lispFunc		echo-stream			nthcdr					unread-char
syn keyword lispFunc		echo-stream-input-stream	nth-value				unsigned-byte
syn keyword lispFunc		echo-stream-output-stream	null					untrace
syn keyword lispFunc		ed				number					unuse-package
syn keyword lispFunc		eighth				numberp					unwind-protect
syn keyword lispFunc		elt				numerator				update-instance-for-different-class
syn keyword lispFunc		encode-universal-time		nunion					update-instance-for-redefined-class
syn keyword lispFunc		end-of-file			oddp					upgraded-array-element-type
syn keyword lispFunc		endp				open					upgraded-complex-part-type
syn keyword lispFunc		enough-namestring		open-stream-p				upper-case-p
syn keyword lispFunc		ensure-directories-exist	optimize				use-package
syn keyword lispFunc		ensure-generic-function		or					user
syn keyword lispFunc		eq				otherwise				user-homedir-pathname
syn keyword lispFunc		eql				output-stream-p				use-value
syn keyword lispFunc		equal				package					values
syn keyword lispFunc		equalp				package-error				values-list
syn keyword lispFunc		error				package-error-package			variable
syn keyword lispFunc		etypecase			package-name				vector
syn keyword lispFunc		eval				package-nicknames			vectorp
syn keyword lispFunc		evalhook			packagep				vector-pop
syn keyword lispFunc		eval-when			package-shadowing-symbols		vector-push
syn keyword lispFunc		evenp				package-used-by-list			vector-push-extend
syn keyword lispFunc		every				package-use-list			warn
syn keyword lispFunc		exp				pairlis					warning
syn keyword lispFunc		export				parse-error				when
syn keyword lispFunc		expt				parse-integer				wild-pathname-p
syn keyword lispFunc		extended-char			parse-namestring			with-accessors
syn keyword lispFunc		fboundp				pathname				with-compilation-unit
syn keyword lispFunc		fceiling			pathname-device				with-condition-restarts
syn keyword lispFunc		fdefinition			pathname-directory			with-hash-table-iterator
syn keyword lispFunc		ffloor				pathname-host				with-input-from-string
syn keyword lispFunc		fifth				pathname-match-p			with-open-file
syn keyword lispFunc		file-author			pathname-name				with-open-stream
syn keyword lispFunc		file-error			pathnamep				with-output-to-string
syn keyword lispFunc		file-error-pathname		pathname-type				with-package-iterator
syn keyword lispFunc		file-length			pathname-version			with-simple-restart
syn keyword lispFunc		file-namestring			peek-char				with-slots
syn keyword lispFunc		file-position			phase					with-standard-io-syntax
syn keyword lispFunc		file-stream			pi					write
syn keyword lispFunc		file-string-length		plusp					write-byte
syn keyword lispFunc		file-write-date			pop					write-char
syn keyword lispFunc		fill				position				write-line
syn keyword lispFunc		fill-pointer			position-if				write-sequence
syn keyword lispFunc		find				position-if-not				write-string
syn keyword lispFunc		find-all-symbols		pprint					write-to-string
syn keyword lispFunc		find-class			pprint-dispatch				yes-or-no-p
syn keyword lispFunc		find-if				pprint-exit-if-list-exhausted		y-or-n-p
syn keyword lispFunc		find-if-not			pprint-fill				zerop

syn match   lispFunc		"\<c[ad]\+r\>"
if exists("g:lispsyntax_clisp")
  " CLISP FFI:
  syn match lispFunc	"\<\(ffi:\)\?with-c-\(place\|var\)\>"
  syn match lispFunc	"\<\(ffi:\)\?with-foreign-\(object\|string\)\>"
  syn match lispFunc	"\<\(ffi:\)\?default-foreign-\(language\|library\)\>"
  syn match lispFunc	"\<\([us]_\?\)\?\(element\|deref\|cast\|slot\|validp\)\>"
  syn match lispFunc	"\<\(ffi:\)\?set-foreign-pointer\>"
  syn match lispFunc	"\<\(ffi:\)\?allocate-\(deep\|shallow\)\>"
  syn match lispFunc	"\<\(ffi:\)\?c-lines\>"
  syn match lispFunc	"\<\(ffi:\)\?foreign-\(value\|free\|variable\|function\|object\)\>"
  syn match lispFunc	"\<\(ffi:\)\?foreign-address\(-null\|unsigned\)\?\>"
  syn match lispFunc	"\<\(ffi:\)\?undigned-foreign-address\>"
  syn match lispFunc	"\<\(ffi:\)\?c-var-\(address\|object\)\>"
  syn match lispFunc	"\<\(ffi:\)\?typeof\>"
  syn match lispFunc	"\<\(ffi:\)\?\(bit\)\?sizeof\>"
" CLISP Macros, functions et al:
  syn match lispFunc	"\<\(ext:\)\?with-collect\>"
  syn match lispFunc	"\<\(ext:\)\?letf\*\?\>"
  syn match lispFunc	"\<\(ext:\)\?finalize\>\>"
  syn match lispFunc	"\<\(ext:\)\?memoized\>"
  syn match lispFunc	"\<\(ext:\)\?getenv\>"
  syn match lispFunc	"\<\(ext:\)\?convert-string-\(to\|from\)-bytes\>"
  syn match lispFunc	"\<\(ext:\)\?ethe\>"
  syn match lispFunc	"\<\(ext:\)\?with-gensyms\>"
  syn match lispFunc	"\<\(ext:\)\?open-http\>"
  syn match lispFunc	"\<\(ext:\)\?string-concat\>"
  syn match lispFunc	"\<\(ext:\)\?with-http-\(in\|out\)put\>"
  syn match lispFunc	"\<\(ext:\)\?with-html-output\>"
  syn match lispFunc	"\<\(ext:\)\?expand-form\>"
  syn match lispFunc	"\<\(ext:\)\?\(without-\)\?package-lock\>"
  syn match lispFunc	"\<\(ext:\)\?re-export\>"
  syn match lispFunc	"\<\(ext:\)\?saveinitmem\>"
  syn match lispFunc	"\<\(ext:\)\?\(read\|write\)-\(integer\|float\)\>"
  syn match lispFunc	"\<\(ext:\)\?\(read\|write\)-\(char\|byte\)-sequence\>"
  syn match lispFunc	"\<\(custom:\)\?\*system-package-list\*\>"
  syn match lispFunc	"\<\(custom:\)\?\*ansi\*\>"
endif

" ---------------------------------------------------------------------
" Lisp Keywords (modifiers): {{{1
syn keyword lispKey		:abort				:from-end			:overwrite
syn keyword lispKey		:adjustable			:gensym				:predicate
syn keyword lispKey		:append				:host				:preserve-whitespace
syn keyword lispKey		:array				:if-does-not-exist		:pretty
syn keyword lispKey		:base				:if-exists			:print
syn keyword lispKey		:case				:include			:print-function
syn keyword lispKey		:circle				:index				:probe
syn keyword lispKey		:conc-name			:inherited			:radix
syn keyword lispKey		:constructor			:initial-contents		:read-only
syn keyword lispKey		:copier				:initial-element		:rehash-size
syn keyword lispKey		:count				:initial-offset			:rehash-threshold
syn keyword lispKey		:create				:initial-value			:rename
syn keyword lispKey		:default			:input				:rename-and-delete
syn keyword lispKey		:defaults			:internal			:size
syn keyword lispKey		:device				:io				:start
syn keyword lispKey		:direction			:junk-allowed			:start1
syn keyword lispKey		:directory			:key				:start2
syn keyword lispKey		:displaced-index-offset		:length				:stream
syn keyword lispKey		:displaced-to			:level				:supersede
syn keyword lispKey		:element-type			:name				:test
syn keyword lispKey		:end				:named				:test-not
syn keyword lispKey		:end1				:new-version			:type
syn keyword lispKey		:end2				:nicknames			:use
syn keyword lispKey		:error				:output				:verbose
syn keyword lispKey		:escape				:output-file			:version
syn keyword lispKey		:external
" defpackage arguments
syn keyword lispKey	:documentation	:shadowing-import-from	:modern		:export
syn keyword lispKey	:case-sensitive	:case-inverted		:shadow		:import-from	:intern
" lambda list keywords
syn keyword lispKey	&allow-other-keys	&aux		&body
syn keyword lispKey	&environment	&key			&optional	&rest		&whole
" make-array argument
syn keyword lispKey	:fill-pointer
" readtable-case values
syn keyword lispKey	:upcase		:downcase		:preserve	:invert
" eval-when situations
syn keyword lispKey	:load-toplevel	:compile-toplevel	:execute
" ANSI Extended LOOP:
syn keyword lispKey	:while      :until       :for         :do       :if          :then         :else     :when      :unless :in
syn keyword lispKey	:across     :finally     :collect     :nconc    :maximize    :minimize     :sum
syn keyword lispKey	:and        :with        :initially   :append   :into        :count        :end      :repeat
syn keyword lispKey	:always     :never       :thereis     :from     :to          :upto         :downto   :below
syn keyword lispKey	:above      :by          :on          :being    :each        :the          :hash-key :hash-keys
syn keyword lispKey	:hash-value :hash-values :using       :of-type  :upfrom      :downfrom
if exists("g:lispsyntax_clisp")
  " CLISP FFI:
  syn keyword lispKey	:arguments  :return-type :library     :full     :malloc-free
  syn keyword lispKey	:none       :alloca      :in          :out      :in-out      :stdc-stdcall :stdc     :c
  syn keyword lispKey	:language   :built-in    :typedef     :external
  syn keyword lispKey	:fini       :init-once   :init-always
endif

" ---------------------------------------------------------------------
" Standard Lisp Variables: {{{1
syn keyword lispVar		*applyhook*			*load-pathname*			*print-pprint-dispatch*
syn keyword lispVar		*break-on-signals*		*load-print*			*print-pprint-dispatch*
syn keyword lispVar		*break-on-signals*		*load-truename*			*print-pretty*
syn keyword lispVar		*break-on-warnings*		*load-verbose*			*print-radix*
syn keyword lispVar		*compile-file-pathname*		*macroexpand-hook*		*print-readably*
syn keyword lispVar		*compile-file-pathname*		*modules*			*print-right-margin*
syn keyword lispVar		*compile-file-truename*		*package*			*print-right-margin*
syn keyword lispVar		*compile-file-truename*		*print-array*			*query-io*
syn keyword lispVar		*compile-print*			*print-base*			*random-state*
syn keyword lispVar		*compile-verbose*		*print-case*			*read-base*
syn keyword lispVar		*compile-verbose*		*print-circle*			*read-default-float-format*
syn keyword lispVar		*debug-io*			*print-escape*			*read-eval*
syn keyword lispVar		*debugger-hook*			*print-gensym*			*read-suppress*
syn keyword lispVar		*default-pathname-defaults*	*print-length*			*readtable*
syn keyword lispVar		*error-output*			*print-level*			*standard-input*
syn keyword lispVar		*evalhook*			*print-lines*			*standard-output*
syn keyword lispVar		*features*			*print-miser-width*		*terminal-io*
syn keyword lispVar		*gensym-counter*		*print-miser-width*		*trace-output*

" ---------------------------------------------------------------------
" Strings: {{{1
syn region			lispString			start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=@Spell
if exists("g:lisp_instring")
 syn region			lispInString			keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
 syn region			lispInStringString		start=+\\"+ skip=+\\\\+ end=+\\"+ contained
endif

" ---------------------------------------------------------------------
" Shared with Xlisp, Declarations, Macros, Functions: {{{1
syn keyword lispDecl		defmacro			do-all-symbols		labels
syn keyword lispDecl		defsetf				do-external-symbols	let
syn keyword lispDecl		deftype				do-symbols		locally
syn keyword lispDecl		defun				dotimes			macrolet
syn keyword lispDecl		do*				flet			multiple-value-bind
if exists("g:lispsyntax_clisp")
  " CLISP FFI:
  syn match lispDecl	"\<\(ffi:\)\?def-c-\(var\|const\|enum\|type\|struct\)\>"
  syn match lispDecl	"\<\(ffi:\)\?def-call-\(out\|in\)\>"
  syn match lispDecl	"\<\(ffi:\)\?c-\(function\|struct\|pointer\|string\)\>"
  syn match lispDecl	"\<\(ffi:\)\?c-ptr\(-null\)\?\>"
  syn match lispDecl	"\<\(ffi:\)\?c-array\(-ptr\|-max\)\?\>"
  syn match lispDecl	"\<\(ffi:\)\?[us]\?\(char\|short\|int\|long\)\>"
  syn match lispDecl	"\<\(win32:\|w32\)\?d\?word\>"
  syn match lispDecl	"\<\([us]_\?\)\?int\(8\|16\|32\|64\)\(_t\)\?\>"
  syn keyword lispDecl	size_t off_t time_t handle
endif

" ---------------------------------------------------------------------
" Numbers: supporting integers and floating point numbers {{{1
syn match lispNumber		"-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\([dDeEfFlL][-+]\=\d\+\)\="
syn match lispNumber		"-\=\(\d\+/\d\+\)"

syn match lispEscapeSpecial		"\*\w[a-z_0-9-]*\*"
syn match lispEscapeSpecial		!#|[^()'`,"; \t]\+|#!
syn match lispEscapeSpecial		!#x\x\+!
syn match lispEscapeSpecial		!#o\o\+!
syn match lispEscapeSpecial		!#b[01]\+!
syn match lispEscapeSpecial		!#\\[ -}\~]!
syn match lispEscapeSpecial		!#[':][^()'`,"; \t]\+!
syn match lispEscapeSpecial		!#([^()'`,"; \t]\+)!
syn match lispEscapeSpecial		!#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
syn match lispEscapeSpecial		"\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>"

syn match lispConcat		"\s\.\s"
syn match lispParenError	")"

" ---------------------------------------------------------------------
" Comments: {{{1
syn cluster lispCommentGroup	contains=lispTodo,@Spell
syn match   lispComment		";.*$"				contains=@lispCommentGroup
syn region  lispCommentRegion	start="#|" end="|#"		contains=lispCommentRegion,@lispCommentGroup
syn keyword lispTodo		contained			combak			combak:			todo			todo:

" ---------------------------------------------------------------------
" Synchronization: {{{1
syn sync lines=100

" ---------------------------------------------------------------------
" Define Highlighting: {{{1
if !exists("skip_lisp_syntax_inits")

  hi def link lispCommentRegion		lispComment
  hi def link lispAtomNmbr		lispNumber
  hi def link lispAtomMark		lispMark
  hi def link lispInStringString	lispString

  hi def link lispAtom			Identifier
  hi def link lispAtomBarSymbol		Special
  hi def link lispBarSymbol		Special
  hi def link lispComment		Comment
  hi def link lispConcat		Statement
  hi def link lispDecl			Statement
  hi def link lispFunc			Statement
  hi def link lispKey			Type
  hi def link lispMark			Delimiter
  hi def link lispNumber		Number
  hi def link lispParenError		Error
  hi def link lispEscapeSpecial		Type
  hi def link lispString		String
  hi def link lispTodo			Todo
  hi def link lispVar			Statement

  if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
   if &bg == "dark"
    hi def hlLevel0 ctermfg=red		guifg=red1
    hi def hlLevel1 ctermfg=yellow	guifg=orange1
    hi def hlLevel2 ctermfg=green	guifg=yellow1
    hi def hlLevel3 ctermfg=cyan	guifg=greenyellow
    hi def hlLevel4 ctermfg=magenta	guifg=green1
    hi def hlLevel5 ctermfg=red		guifg=springgreen1
    hi def hlLevel6 ctermfg=yellow	guifg=cyan1
    hi def hlLevel7 ctermfg=green	guifg=slateblue1
    hi def hlLevel8 ctermfg=cyan	guifg=magenta1
    hi def hlLevel9 ctermfg=magenta	guifg=purple1
   else
    hi def hlLevel0 ctermfg=red		guifg=red3
    hi def hlLevel1 ctermfg=darkyellow	guifg=orangered3
    hi def hlLevel2 ctermfg=darkgreen	guifg=orange2
    hi def hlLevel3 ctermfg=blue	guifg=yellow3
    hi def hlLevel4 ctermfg=darkmagenta	guifg=olivedrab4
    hi def hlLevel5 ctermfg=red		guifg=green4
    hi def hlLevel6 ctermfg=darkyellow	guifg=paleturquoise3
    hi def hlLevel7 ctermfg=darkgreen	guifg=deepskyblue4
    hi def hlLevel8 ctermfg=blue	guifg=darkslateblue
    hi def hlLevel9 ctermfg=darkmagenta	guifg=darkviolet
   endif
  endif

endif

let b:current_syntax = "lisp"

" ---------------------------------------------------------------------
" vim: ts=8 nowrap fdm=marker
PK�j�Z�܋�vim80/syntax/uil.vimnu�[���" Vim syntax file
" Language:	Motif UIL (User Interface Language)
" Maintainer:	Thomas Koehler <jean-luc@picard.franken.de>
"		Please be aware: I'm often slow to answer email due to a high
"		non-computer related workload (sometimes 4-8 weeks)
" Last Change:	2016 September 6
" URL:		http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/uil.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful keywords
syn keyword uilType	arguments	callbacks	color
syn keyword uilType	compound_string	controls	end
syn keyword uilType	exported	file		include
syn keyword uilType	module		object		procedure
syn keyword uilType	user_defined	xbitmapfile

syn keyword uilTodo contained	TODO

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match   uilSpecial contained "\\\d\d\d\|\\."
syn region  uilString		start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=@Spell,uilSpecial
syn match   uilCharacter	"'[^\\]'"
syn region  uilString		start=+'+  skip=+\\\\\|\\'+  end=+'+  contains=@Spell,uilSpecial
syn match   uilSpecialCharacter	"'\\.'"
syn match   uilSpecialStatement	"Xm[^	 =(){}:;]*"
syn match   uilSpecialFunction	"MrmNcreateCallback"
syn match   uilRessource	"XmN[^	 =(){}:;]*"

syn match  uilNumber		"-\=\<\d*\.\=\d\+\(e\=f\=\|[uU]\=[lL]\=\)\>"
syn match  uilNumber		"0[xX]\x\+\>"

syn region uilComment		start="/\*"  end="\*/" contains=@Spell,uilTodo
syn match  uilComment		"!.*" contains=@Spell,uilTodo
syn match  uilCommentError	"\*/"

syn region uilPreCondit		start="^#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"  end="$" contains=uilComment,uilString,uilCharacter,uilNumber,uilCommentError
syn match  uilIncluded contained "<[^>]*>"
syn match  uilInclude		"^#\s*include\s\+." contains=uilString,uilIncluded
syn match  uilLineSkip		"\\$"
syn region uilDefine		start="^#\s*\(define\>\|undef\>\)" end="$" contains=uilLineSkip,uilComment,uilString,uilCharacter,uilNumber,uilCommentError

syn sync ccomment uilComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link uilCharacter		uilString
hi def link uilSpecialCharacter	uilSpecial
hi def link uilNumber		uilString
hi def link uilCommentError	uilError
hi def link uilInclude		uilPreCondit
hi def link uilDefine		uilPreCondit
hi def link uilIncluded		uilString
hi def link uilSpecialFunction	uilRessource
hi def link uilRessource		Identifier
hi def link uilSpecialStatement	Keyword
hi def link uilError		Error
hi def link uilPreCondit		PreCondit
hi def link uilType		Type
hi def link uilString		String
hi def link uilComment		Comment
hi def link uilSpecial		Special
hi def link uilTodo		Todo



let b:current_syntax = "uil"

" vim: ts=8
PK�j�Zӌ�ҷ�vim80/syntax/taskdata.vimnu�[���" Vim syntax file
" Language:	task data
" Maintainer:	John Florian <jflorian@doubledog.org>
" Updated:	Wed Jul  8 19:46:20 EDT 2009


" quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

" Key Names for values.
syn keyword taskdataKey		description due end entry imask mask parent
syn keyword taskdataKey		priority project recur start status tags uuid
syn match taskdataKey		"annotation_\d\+"
syn match taskdataUndo		"^time.*$"
syn match taskdataUndo		"^\(old \|new \|---\)"

" Values associated with key names.
"
" Strings
syn region taskdataString	matchgroup=Normal start=+"+ end=+"+
			\	contains=taskdataEncoded,taskdataUUID,@Spell
"
" Special Embedded Characters (e.g., "&comma;")
syn match taskdataEncoded	"&\a\+;" contained
" UUIDs
syn match taskdataUUID		"\x\{8}-\(\x\{4}-\)\{3}\x\{12}" contained


" The default methods for highlighting.  Can be overridden later.
hi def link taskdataEncoded	Function
hi def link taskdataKey		Statement
hi def link taskdataString 	String
hi def link taskdataUUID 	Special
hi def link taskdataUndo 	Type

let b:current_syntax = "taskdata"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:noexpandtab
PK�j�Zْpr�r�vim80/syntax/nsis.vimnu�[���" Vim syntax file
" Language:		NSIS script, for version of NSIS 3.02 and later
" Maintainer:		Ken Takata
" URL:			https://github.com/k-takata/vim-nsis
" Previous Maintainer:	Alex Jakushev <Alex.Jakushev@kemek.lt>
" Last Change:		2018-01-26

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore


"Pseudo definitions
syn match nsisLine nextgroup=@nsisPseudoStatement skipwhite "^"
syn cluster nsisPseudoStatement	contains=nsisFirstComment,nsisLocalLabel,nsisGlobalLabel
syn cluster nsisPseudoStatement add=nsisDefine,nsisPreCondit,nsisMacro,nsisInclude,nsisSystem
syn cluster nsisPseudoStatement add=nsisAttribute,nsisCompiler,nsisVersionInfo,nsisInstruction,nsisStatement

"COMMENTS (4.1)
syn keyword nsisTodo	todo attention note fixme readme
syn region nsisComment	start="[;#]" end="$" contains=nsisTodo,nsisLineContinuation,@Spell oneline
syn region nsisComment	start=".\@1<=/\*" end="\*/" contains=nsisTodo,@Spell
syn region nsisFirstComment  start="/\*" end="\*/" contained contains=nsisTodo,@Spell skipwhite
			\ nextgroup=@nsisPseudoStatement

syn match nsisLineContinuation	"\\$"

"STRINGS (4.1)
syn region nsisString	start=/"/ end=/"/ contains=@nsisStringItems,@Spell
syn region nsisString	start=/'/ end=/'/ contains=@nsisStringItems,@Spell
syn region nsisString	start=/`/ end=/`/ contains=@nsisStringItems,@Spell

syn cluster nsisStringItems	contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisRegistry,nsisLineContinuation

"NUMBERS (4.1)
syn match nsisNumber		"\<[1-9]\d*\>"
syn match nsisNumber		"\<0x\x\+\>"
syn match nsisNumber		"\<0\o*\>"

"STRING REPLACEMENT (5.4, 4.9.15.2, 5.3.1)
syn region nsisPreprocSubst	start="\${" end="}" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
syn region nsisPreprocLangStr	start="\$(" end=")" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
syn region nsisPreprocEnvVar	start="\$%" end="%" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar

"VARIABLES (4.2.2)
syn match nsisUserVar		"$\d"
syn match nsisUserVar		"$R\d"
syn match nsisSysVar		"$INSTDIR"
syn match nsisSysVar		"$OUTDIR"
syn match nsisSysVar		"$CMDLINE"
syn match nsisSysVar		"$LANGUAGE"
"CONSTANTS (4.2.3)
syn match nsisSysVar		"$PROGRAMFILES"
syn match nsisSysVar		"$PROGRAMFILES32"
syn match nsisSysVar		"$PROGRAMFILES64"
syn match nsisSysVar		"$COMMONFILES"
syn match nsisSysVar		"$COMMONFILES32"
syn match nsisSysVar		"$COMMONFILES64"
syn match nsisSysVar		"$DESKTOP"
syn match nsisSysVar		"$EXEDIR"
syn match nsisSysVar		"$EXEFILE"
syn match nsisSysVar		"$EXEPATH"
syn match nsisSysVar		"${NSISDIR}"
syn match nsisSysVar		"$WINDIR"
syn match nsisSysVar		"$SYSDIR"
syn match nsisSysVar		"$TEMP"
syn match nsisSysVar		"$STARTMENU"
syn match nsisSysVar		"$SMPROGRAMS"
syn match nsisSysVar		"$SMSTARTUP"
syn match nsisSysVar		"$QUICKLAUNCH"
syn match nsisSysVar		"$DOCUMENTS"
syn match nsisSysVar		"$SENDTO"
syn match nsisSysVar		"$RECENT"
syn match nsisSysVar		"$FAVORITES"
syn match nsisSysVar		"$MUSIC"
syn match nsisSysVar		"$PICTURES"
syn match nsisSysVar		"$VIDEOS"
syn match nsisSysVar		"$NETHOOD"
syn match nsisSysVar		"$FONTS"
syn match nsisSysVar		"$TEMPLATES"
syn match nsisSysVar		"$APPDATA"
syn match nsisSysVar		"$LOCALAPPDATA"
syn match nsisSysVar		"$PRINTHOOD"
syn match nsisSysVar		"$INTERNET_CACHE"
syn match nsisSysVar		"$COOKIES"
syn match nsisSysVar		"$HISTORY"
syn match nsisSysVar		"$PROFILE"
syn match nsisSysVar		"$ADMINTOOLS"
syn match nsisSysVar		"$RESOURCES"
syn match nsisSysVar		"$RESOURCES_LOCALIZED"
syn match nsisSysVar		"$CDBURN_AREA"
syn match nsisSysVar		"$HWNDPARENT"
syn match nsisSysVar		"$PLUGINSDIR"
syn match nsisSysVar		"$\\r"
syn match nsisSysVar		"$\\n"
syn match nsisSysVar		"$\\t"
syn match nsisSysVar		"$\$"
syn match nsisSysVar		"$\\["'`]"

"LABELS (4.3)
syn match nsisLocalLabel	contained "[^-+!$0-9;#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
syn match nsisGlobalLabel	contained "\.[^-+!$0-9;# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"

"CONSTANTS
syn keyword nsisBoolean		contained true false
syn keyword nsisOnOff		contained on off

syn keyword nsisRegistry	contained HKCR HKLM HKCU HKU HKCC HKDD HKPD SHCTX
syn keyword nsisRegistry	contained HKCR32 HKCR64 HKCU32 HKCU64 HKLM32 HKLM64
syn keyword nsisRegistry	contained HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS
syn keyword nsisRegistry	contained HKEY_CLASSES_ROOT32 HKEY_CLASSES_ROOT64
syn keyword nsisRegistry	contained HKEY_CURRENT_USER32 HKEY_CURRENT_USER64
syn keyword nsisRegistry	contained HKEY_LOCAL_MACHINE32 HKEY_LOCAL_MACHINE64
syn keyword nsisRegistry	contained HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA
syn keyword nsisRegistry	contained SHELL_CONTEXT


" common options
syn cluster nsisAnyOpt		contains=nsisComment,nsisLineContinuation,nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisString,nsisNumber
syn region nsisBooleanOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBoolean
syn region nsisOnOffOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisOnOff
syn region nsisLangOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLangKwd
syn match nsisLangKwd		contained "/LANG\>"
syn region nsisFontOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFontKwd
syn match nsisFontKwd		contained "/\%(ITALIC\|UNDERLINE\|STRIKE\)\>"

"STATEMENTS - pages (4.5)
syn keyword nsisStatement	contained Page UninstPage nextgroup=nsisPageOpt skipwhite
syn region nsisPageOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageKwd
syn keyword nsisPageKwd		contained custom license components directory instfiles uninstConfirm
syn match nsisPageKwd		contained "/ENABLECANCEL\>"

syn keyword nsisStatement	contained PageEx nextgroup=nsisPageExOpt skipwhite
syn region nsisPageExOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageExKwd
syn match nsisPageExKwd		contained "\<\%(un\.\)\?\%(custom\|license\|components\|directory\|instfiles\|uninstConfirm\)\>"

syn keyword nsisStatement	contained PageExEnd PageCallbacks

"STATEMENTS - sections (4.6.1)
syn keyword nsisStatement	contained AddSize SectionEnd SectionGroupEnd

syn keyword nsisStatement	contained Section nextgroup=nsisSectionOpt skipwhite
syn region nsisSectionOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionKwd
syn match nsisSectionKwd	contained "/o\>"

syn keyword nsisStatement	contained SectionIn nextgroup=nsisSectionInOpt skipwhite
syn region nsisSectionInOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionInKwd
syn keyword nsisSectionInKwd	contained RO

syn keyword nsisStatement	contained SectionGroup nextgroup=nsisSectionGroupOpt skipwhite
syn region nsisSectionGroupOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionGroupKwd
syn match nsisSectionGroupKwd	contained "/e\>"

"STATEMENTS - functions (4.7.1)
syn keyword nsisStatement	contained Function FunctionEnd


"STATEMENTS - LogicLib.nsh
syn match nsisStatement		"${If}"
syn match nsisStatement		"${IfNot}"
syn match nsisStatement		"${Unless}"
syn match nsisStatement		"${ElseIf}"
syn match nsisStatement		"${ElseIfNot}"
syn match nsisStatement		"${ElseUnless}"
syn match nsisStatement		"${Else}"
syn match nsisStatement		"${EndIf}"
syn match nsisStatement		"${EndUnless}"
syn match nsisStatement		"${AndIf}"
syn match nsisStatement		"${AndIfNot}"
syn match nsisStatement		"${AndUnless}"
syn match nsisStatement		"${OrIf}"
syn match nsisStatement		"${OrIfNot}"
syn match nsisStatement		"${OrUnless}"
syn match nsisStatement		"${IfThen}"
syn match nsisStatement		"${IfNotThen}"
syn match nsisStatement		"${||\?}" nextgroup=@nsisPseudoStatement skipwhite
syn match nsisStatement		"${IfCmd}" nextgroup=@nsisPseudoStatement skipwhite
syn match nsisStatement		"${Select}"
syn match nsisStatement		"${Case}"
syn match nsisStatement		"${Case[2-5]}"
syn match nsisStatement		"${CaseElse}"
syn match nsisStatement		"${Default}"
syn match nsisStatement		"${EndSelect}"
syn match nsisStatement		"${Switch}"
syn match nsisStatement		"${EndSwitch}"
syn match nsisStatement		"${Break}"
syn match nsisStatement		"${Do}"
syn match nsisStatement		"${DoWhile}"
syn match nsisStatement		"${DoUntil}"
syn match nsisStatement		"${ExitDo}"
syn match nsisStatement		"${Continue}"
syn match nsisStatement		"${Loop}"
syn match nsisStatement		"${LoopWhile}"
syn match nsisStatement		"${LoopUntil}"
syn match nsisStatement		"${For}"
syn match nsisStatement		"${ForEach}"
syn match nsisStatement		"${ExitFor}"
syn match nsisStatement		"${Next}"
"STATEMENTS - Memento.nsh
syn match nsisStatement		"${MementoSection}"
syn match nsisStatement		"${MementoSectionEnd}"


"USER VARIABLES (4.2.1)
syn keyword nsisInstruction	contained Var nextgroup=nsisVarOpt skipwhite
syn region nsisVarOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVarKwd
syn match nsisVarKwd		contained "/GLOBAL\>"

"INSTALLER ATTRIBUTES (4.8.1)
syn keyword nsisAttribute	contained Caption ChangeUI CheckBitmap CompletedText ComponentText
syn keyword nsisAttribute	contained DetailsButtonText DirText DirVar
syn keyword nsisAttribute	contained FileErrorText Icon InstallButtonText
syn keyword nsisAttribute	contained InstallDir InstProgressFlags
syn keyword nsisAttribute	contained LicenseData LicenseText
syn keyword nsisAttribute	contained MiscButtonText Name OutFile
syn keyword nsisAttribute	contained SpaceTexts SubCaption UninstallButtonText UninstallCaption
syn keyword nsisAttribute	contained UninstallIcon UninstallSubCaption UninstallText

syn keyword nsisAttribute	contained AddBrandingImage nextgroup=nsisAddBrandingImageOpt skipwhite
syn region nsisAddBrandingImageOpt  contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddBrandingImageKwd
syn keyword nsisAddBrandingImageKwd contained left right top bottom width height

syn keyword nsisAttribute	contained nextgroup=nsisBooleanOpt skipwhite
			\ AllowRootDirInstall AutoCloseWindow

syn keyword nsisAttribute	contained BGFont nextgroup=nsisFontOpt skipwhite

syn keyword nsisAttribute	contained BGGradient nextgroup=nsisBGGradientOpt skipwhite
syn region nsisBGGradientOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBGGradientKwd
syn keyword nsisBGGradientKwd	contained off

syn keyword nsisAttribute	contained BrandingText nextgroup=nsisBrandingTextOpt skipwhite
syn region nsisBrandingTextOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBrandingTextKwd
syn match nsisBrandingTextKwd	contained "/TRIM\%(LEFT\|RIGHT\|CENTER\)\>"

syn keyword nsisAttribute	contained CRCCheck nextgroup=nsisCRCCheckOpt skipwhite
syn region nsisCRCCheckOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCRCCheckKwd
syn keyword nsisCRCCheckKwd	contained on off force

syn keyword nsisAttribute	contained DirVerify nextgroup=nsisDirVerifyOpt skipwhite
syn region nsisDirVerifyOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDirVerifyKwd
syn keyword nsisDirVerifyKwd	contained auto leave

syn keyword nsisAttribute	contained InstallColors nextgroup=nsisInstallColorsOpt skipwhite
syn region nsisInstallColorsOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstallColorsKwd
syn match nsisInstallColorsKwd	contained "/windows\>"

syn keyword nsisAttribute	contained InstallDirRegKey nextgroup=nsisRegistryOpt skipwhite

syn keyword nsisAttribute	contained InstType nextgroup=nsisInstTypeOpt skipwhite
syn region nsisInstTypeOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstTypeKwd
syn match nsisInstTypeKwd	contained "/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\)\>"

syn keyword nsisAttribute	contained LicenseBkColor nextgroup=nsisLicenseBkColorOpt skipwhite
syn region nsisLicenseBkColorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseBkColorKwd
syn match nsisLicenseBkColorKwd  contained "/\%(gray\|windows\)\>"

syn keyword nsisAttribute	contained LicenseForceSelection nextgroup=nsisLicenseForceSelectionOpt skipwhite
syn region nsisLicenseForceSelectionOpt  contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseForceSelectionKwd
syn keyword nsisLicenseForceSelectionKwd contained checkbox radiobuttons off

syn keyword nsisAttribute	contained ManifestDPIAware nextgroup=nsisManifestDPIAwareOpt skipwhite
syn region nsisManifestDPIAwareOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestDPIAwareKwd
syn keyword nsisManifestDPIAwareKwd	contained notset true false

syn keyword nsisAttribute	contained ManifestSupportedOS nextgroup=nsisManifestSupportedOSOpt skipwhite
syn region nsisManifestSupportedOSOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd
syn match nsisManifestSupportedOSKwd	contained "\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>"

syn keyword nsisAttribute	contained RequestExecutionLevel nextgroup=nsisRequestExecutionLevelOpt skipwhite
syn region nsisRequestExecutionLevelOpt  contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd
syn keyword nsisRequestExecutionLevelKwd contained none user highest admin

syn keyword nsisAttribute	contained SetFont nextgroup=nsisLangOpt skipwhite

syn keyword nsisAttribute	contained nextgroup=nsisShowInstDetailsOpt skipwhite
			\ ShowInstDetails ShowUninstDetails
syn region nsisShowInstDetailsOpt  contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisShowInstDetailsKwd
syn keyword nsisShowInstDetailsKwd contained hide show nevershow

syn keyword nsisAttribute	contained SilentInstall nextgroup=nsisSilentInstallOpt skipwhite
syn region nsisSilentInstallOpt	 contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentInstallKwd
syn keyword nsisSilentInstallKwd contained normal silent silentlog

syn keyword nsisAttribute	contained SilentUnInstall nextgroup=nsisSilentUnInstallOpt skipwhite
syn region nsisSilentUnInstallOpt  contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentUnInstallKwd
syn keyword nsisSilentUnInstallKwd contained normal silent

syn keyword nsisAttribute	contained nextgroup=nsisOnOffOpt skipwhite
			\ WindowIcon XPStyle

"COMPILER FLAGS (4.8.2)
syn keyword nsisCompiler	contained nextgroup=nsisOnOffOpt skipwhite
			\ AllowSkipFiles SetDatablockOptimize SetDateSave

syn keyword nsisCompiler	contained FileBufSize SetCompressorDictSize

syn keyword nsisCompiler	contained SetCompress nextgroup=nsisSetCompressOpt skipwhite
syn region nsisSetCompressOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressKwd
syn keyword nsisSetCompressKwd  contained auto force off

syn keyword nsisCompiler	contained SetCompressor nextgroup=nsisSetCompressorOpt skipwhite
syn region nsisSetCompressorOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressorKwd
syn keyword nsisSetCompressorKwd  contained zlib bzip2 lzma
syn match nsisSetCompressorKwd	contained "/\%(SOLID\|FINAL\)"

syn keyword nsisCompiler	contained SetOverwrite nextgroup=nsisSetOverwriteOpt skipwhite
syn region nsisSetOverwriteOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetOverwriteKwd
syn keyword nsisSetOverwriteKwd	contained on off try ifnewer ifdiff lastused

syn keyword nsisCompiler	contained Unicode nextgroup=nsisBooleanOpt skipwhite

"VERSION INFORMATION (4.8.3)
syn keyword nsisVersionInfo	contained VIAddVersionKey nextgroup=nsisLangOpt skipwhite

syn keyword nsisVersionInfo	contained VIProductVersion VIFileVersion


"FUNCTIONS - basic (4.9.1)
syn keyword nsisInstruction	contained Delete Rename nextgroup=nsisDeleteOpt skipwhite
syn region nsisDeleteOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteKwd
syn match nsisDeleteKwd		contained "/REBOOTOK\>"

syn keyword nsisInstruction	contained Exec ExecWait SetOutPath

syn keyword nsisInstruction	contained ExecShell ExecShellWait nextgroup=nsisExecShellOpt skipwhite
syn region nsisExecShellOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisExecShellKwd
syn keyword nsisExecShellKwd	contained SW_SHOWDEFAULT SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE
syn match nsisExecShellKwd	contained "/INVOKEIDLIST\>"

syn keyword nsisInstruction	contained File nextgroup=nsisFileOpt skipwhite
syn region nsisFileOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileKwd
syn match nsisFileKwd		contained "/\%(nonfatal\|[arx]\|oname\)\>"

syn keyword nsisInstruction	contained ReserveFile nextgroup=nsisReserveFileOpt skipwhite
syn region nsisReserveFileOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisReserveFileKwd
syn match nsisReserveFileKwd	contained "/\%(nonfatal\|[rx]\|plugin\)\>"

syn keyword nsisInstruction	contained RMDir nextgroup=nsisRMDirOpt skipwhite
syn region nsisRMDirOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRMDirKwd
syn match nsisRMDirKwd		contained "/\%(REBOOTOK\|r\)\>"


"FUNCTIONS - registry & ini (4.9.2)
syn keyword nsisInstruction	contained DeleteINISec DeleteINIStr FlushINI ReadINIStr WriteINIStr
syn keyword nsisInstruction	contained ExpandEnvStrings ReadEnvStr

syn keyword nsisInstruction	contained DeleteRegKey nextgroup=nsisDeleteRegKeyOpt skipwhite
syn region nsisDeleteRegKeyOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteRegKeyKwd,nsisRegistry
syn match nsisDeleteRegKeyKwd	contained "/ifempty\>"

syn keyword nsisInstruction	contained nextgroup=nsisRegistryOpt skipwhite
			\ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr
syn region nsisRegistryOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry

syn keyword nsisInstruction	contained WriteRegMultiStr nextgroup=nsisWriteRegMultiStrOpt skipwhite
syn region nsisWriteRegMultiStrOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry,nsisWriteRegMultiStrKwd
syn match nsisWriteRegMultiStrKwd  contained "/REGEDIT5\>"

syn keyword nsisInstruction	contained SetRegView nextgroup=nsisSetRegViewOpt skipwhite
syn region nsisSetRegViewOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetRegViewKwd
syn keyword nsisSetRegViewKwd	contained default lastused

"FUNCTIONS - general purpose (4.9.3)
syn keyword nsisInstruction	contained CallInstDLL CreateDirectory GetDLLVersion
syn keyword nsisInstruction	contained GetDLLVersionLocal GetFileTime GetFileTimeLocal
syn keyword nsisInstruction	contained GetTempFileName SearchPath RegDLL UnRegDLL

syn keyword nsisInstruction	contained CopyFiles nextgroup=nsisCopyFilesOpt skipwhite
syn region nsisCopyFilesOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCopyFilesKwd
syn match nsisCopyFilesKwd	contained "/\%(SILENT\|FILESONLY\)\>"

syn keyword nsisInstruction	contained CreateShortcut nextgroup=nsisCreateShortcutOpt skipwhite
syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd
syn match nsisCreateShortcutKwd	 contained "/NoWorkingDir\>"

syn keyword nsisInstruction	contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite
syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd
syn match nsisGetFullPathNameKwd  contained "/SHORT\>"

syn keyword nsisInstruction	contained SetFileAttributes nextgroup=nsisSetFileAttributesOpt skipwhite
syn region nsisSetFileAttributesOpt  contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileAttrib
syn keyword nsisFileAttrib	contained NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY
syn keyword nsisFileAttrib	contained FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN
syn keyword nsisFileAttrib	contained FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM
syn keyword nsisFileAttrib	contained FILE_ATTRIBUTE_TEMPORARY

"FUNCTIONS - Flow Control (4.9.4)
syn keyword nsisInstruction	contained Abort Call ClearErrors GetCurrentAddress
syn keyword nsisInstruction	contained GetFunctionAddress GetLabelAddress Goto
syn keyword nsisInstruction	contained IfAbort IfErrors IfFileExists IfRebootFlag IfSilent
syn keyword nsisInstruction	contained IntCmp IntCmpU Return Quit SetErrors StrCmp StrCmpS

syn keyword nsisInstruction	contained MessageBox nextgroup=nsisMessageBoxOpt skipwhite
syn region nsisMessageBoxOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisMessageBox
syn keyword nsisMessageBox	contained MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL
syn keyword nsisMessageBox	contained MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP MB_USERICON
syn keyword nsisMessageBox	contained MB_TOPMOST MB_SETFOREGROUND MB_RIGHT MB_RTLREADING
syn keyword nsisMessageBox	contained MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4
syn keyword nsisMessageBox	contained IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES
syn match nsisMessageBox	contained "/SD\>"

"FUNCTIONS - File and directory i/o instructions (4.9.5)
syn keyword nsisInstruction	contained FileClose FileOpen FileRead FileReadUTF16LE
syn keyword nsisInstruction	contained FileReadByte FileReadWord FileSeek FileWrite
syn keyword nsisInstruction	contained FileWriteByte FileWriteWord
syn keyword nsisInstruction	contained FindClose FindFirst FindNext

syn keyword nsisInstruction	contained FileWriteUTF16LE nextgroup=nsisFileWriteUTF16LEOpt skipwhite
syn region nsisFileWriteUTF16LEOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileWriteUTF16LEKwd
syn match nsisFileWriteUTF16LEKwd  contained "/BOM\>"

"FUNCTIONS - Uninstaller instructions (4.9.6)
syn keyword nsisInstruction	contained WriteUninstaller

"FUNCTIONS - Misc instructions (4.9.7)
syn keyword nsisInstruction	contained GetErrorLevel GetInstDirError InitPluginsDir Nop
syn keyword nsisInstruction	contained SetErrorLevel Sleep

syn keyword nsisInstruction	contained SetShellVarContext nextgroup=nsisSetShellVarContextOpt skipwhite
syn region nsisSetShellVarContextOpt  contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetShellVarContextKwd
syn keyword nsisSetShellVarContextKwd contained current all

"FUNCTIONS - String manipulation support (4.9.8)
syn keyword nsisInstruction	contained StrCpy StrLen

"FUNCTIONS - Stack support (4.9.9)
syn keyword nsisInstruction	contained Exch Push Pop

"FUNCTIONS - Integer manipulation support (4.9.10)
syn keyword nsisInstruction	contained IntOp IntFmt

"FUNCTIONS - Rebooting support (4.9.11)
syn keyword nsisInstruction	contained Reboot SetRebootFlag

"FUNCTIONS - Install logging instructions (4.9.12)
syn keyword nsisInstruction	contained LogSet nextgroup=nsisOnOffOpt skipwhite
syn keyword nsisInstruction	contained LogText

"FUNCTIONS - Section management instructions (4.9.13)
syn keyword nsisInstruction	contained SectionSetFlags SectionGetFlags SectionSetText
syn keyword nsisInstruction	contained SectionGetText SectionSetInstTypes SectionGetInstTypes
syn keyword nsisInstruction	contained SectionSetSize SectionGetSize SetCurInstType GetCurInstType
syn keyword nsisInstruction	contained InstTypeSetText InstTypeGetText

"FUNCTIONS - User Interface Instructions (4.9.14)
syn keyword nsisInstruction	contained BringToFront DetailPrint EnableWindow
syn keyword nsisInstruction	contained FindWindow GetDlgItem HideWindow IsWindow
syn keyword nsisInstruction	contained ShowWindow

syn keyword nsisInstruction	contained CreateFont nextgroup=nsisFontOpt skipwhite

syn keyword nsisInstruction	contained nextgroup=nsisBooleanOpt skipwhite
			\ LockWindow SetAutoClose

syn keyword nsisInstruction	contained SendMessage nextgroup=nsisSendMessageOpt skipwhite
syn region nsisSendMessageOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSendMessageKwd
syn match nsisSendMessageKwd	contained "/TIMEOUT\>"

syn keyword nsisInstruction	contained SetBrandingImage nextgroup=nsisSetBrandingImageOpt skipwhite
syn region nsisSetBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetBrandingImageKwd
syn match nsisSetBrandingImageKwd  contained "/\%(IMGID\|RESIZETOFIT\)\>"

syn keyword nsisInstruction	contained SetDetailsView nextgroup=nsisSetDetailsViewOpt skipwhite
syn region nsisSetDetailsViewOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsViewKwd
syn keyword nsisSetDetailsViewKwd	contained show hide

syn keyword nsisInstruction	contained SetDetailsPrint nextgroup=nsisSetDetailsPrintOpt skipwhite
syn region nsisSetDetailsPrintOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsPrintKwd
syn keyword nsisSetDetailsPrintKwd	contained none listonly textonly both lastused

syn keyword nsisInstruction	contained SetCtlColors nextgroup=nsisSetCtlColorsOpt skipwhite
syn region nsisSetCtlColorsOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCtlColorsKwd
syn match nsisSetCtlColorsKwd	contained "/BRANDING\>"

syn keyword nsisInstruction	contained SetSilent nextgroup=nsisSetSilentOpt skipwhite
syn region nsisSetSilentOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetSilentKwd
syn keyword nsisSetSilentKwd	contained silent normal


"FUNCTIONS - Multiple Languages Instructions (4.9.15)
syn keyword nsisInstruction	contained LoadLanguageFile LangString LicenseLangString


"SPECIAL FUNCTIONS - install (4.7.2.1)
syn match nsisCallback		"\.onGUIInit"
syn match nsisCallback		"\.onInit"
syn match nsisCallback		"\.onInstFailed"
syn match nsisCallback		"\.onInstSuccess"
syn match nsisCallback		"\.onGUIEnd"
syn match nsisCallback		"\.onMouseOverSection"
syn match nsisCallback		"\.onRebootFailed"
syn match nsisCallback		"\.onSelChange"
syn match nsisCallback		"\.onUserAbort"
syn match nsisCallback		"\.onVerifyInstDir"

"SPECIAL FUNCTIONS - uninstall (4.7.2.2)
syn match nsisCallback		"un\.onGUIInit"
syn match nsisCallback		"un\.onInit"
syn match nsisCallback		"un\.onUninstFailed"
syn match nsisCallback		"un\.onUninstSuccess"
syn match nsisCallback		"un\.onGUIEnd"
syn match nsisCallback		"un\.onRebootFailed"
syn match nsisCallback		"un\.onSelChange"
syn match nsisCallback		"un\.onUserAbort"


"COMPILER UTILITY (5.1)
syn match nsisInclude		contained "!include\>" nextgroup=nsisIncludeOpt skipwhite
syn region nsisIncludeOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIncludeKwd
syn match nsisIncludeKwd	contained "/\%(NONFATAL\|CHARSET\)\>"

syn match nsisSystem		contained "!addincludedir\>"

syn match nsisSystem		contained "!addplugindir\>" nextgroup=nsisAddplugindirOpt skipwhite
syn region nsisAddplugindirOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddplugindirKwd
syn match nsisAddplugindirKwd	contained "/\%(x86-ansi\|x86-unicode\)\>"

syn match nsisSystem		contained "!appendfile\>" nextgroup=nsisAppendfileOpt skipwhite
syn region nsisAppendfileOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAppendfileKwd
syn match nsisAppendfileKwd	contained "/\%(CHARSET\|RawNL\)\>"

syn match nsisSystem		contained "!cd\>"

syn match nsisSystem		contained "!delfile\>" nextgroup=nsisDelfileOpt skipwhite
syn region nsisDelfileOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDelfileKwd
syn match nsisDelfileKwd	contained "/nonfatal\>"

syn match nsisSystem		contained "!echo\>"
syn match nsisSystem		contained "!error\>"
syn match nsisSystem		contained "!execute\>"
syn match nsisSystem		contained "!makensis\>"
syn match nsisSystem		contained "!packhdr\>"
syn match nsisSystem		contained "!finalize\>"
syn match nsisSystem		contained "!system\>"
syn match nsisSystem		contained "!tempfile\>"
syn match nsisSystem		contained "!getdllversion\>"
syn match nsisSystem		contained "!warning\>"

syn match nsisSystem		contained "!pragma\>" nextgroup=nsisPragmaOpt skipwhite
syn region nsisPragmaOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPragmaKwd
syn keyword nsisPragmaKwd	contained enable disable default push pop

syn match nsisSystem		contained "!verbose\>" nextgroup=nsisVerboseOpt skipwhite
syn region nsisVerboseOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVerboseKwd
syn keyword nsisVerboseKwd	contained push pop

"PREPROCESSOR (5.4)
syn match nsisDefine		contained "!define\>" nextgroup=nsisDefineOpt skipwhite
syn region nsisDefineOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd
syn match nsisDefineKwd		contained "/\%(ifndef\|redef\|date\|utcdate\|math\|file\)\>"

syn match nsisDefine		contained "!undef\>"
syn match nsisPreCondit		contained "!ifdef\>"
syn match nsisPreCondit		contained "!ifndef\>"

syn match nsisPreCondit		contained "!if\>" nextgroup=nsisIfOpt skipwhite
syn region nsisIfOpt		contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIfKwd
syn match nsisIfKwd		contained "/FileExists\>"

syn match nsisPreCondit		contained "!ifmacrodef\>"
syn match nsisPreCondit		contained "!ifmacrondef\>"
syn match nsisPreCondit		contained "!else\>"
syn match nsisPreCondit		contained "!endif\>"
syn match nsisMacro		contained "!insertmacro\>"
syn match nsisMacro		contained "!macro\>"
syn match nsisMacro		contained "!macroend\>"
syn match nsisMacro		contained "!macroundef\>"

syn match nsisMacro		contained "!searchparse\>" nextgroup=nsisSearchparseOpt skipwhite
syn region nsisSearchparseOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchparseKwd
syn match nsisSearchparseKwd	contained "/\%(ignorecase\|noerrors\|file\)\>"

syn match nsisMacro		contained "!searchreplace\>" nextgroup=nsisSearchreplaceOpt skipwhite
syn region nsisSearchreplaceOpt	contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchreplaceKwd
syn match nsisSearchreplaceKwd	contained "/ignorecase\>"



" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link nsisInstruction		Function
hi def link nsisComment			Comment
hi def link nsisFirstComment		Comment
hi def link nsisLocalLabel		Label
hi def link nsisGlobalLabel		Label
hi def link nsisStatement		Statement
hi def link nsisString			String
hi def link nsisBoolean			Boolean
hi def link nsisOnOff			Boolean
hi def link nsisFontKwd			Constant
hi def link nsisLangKwd			Constant
hi def link nsisPageKwd			Constant
hi def link nsisPageExKwd		Constant
hi def link nsisSectionKwd		Constant
hi def link nsisSectionInKwd		Constant
hi def link nsisSectionGroupKwd		Constant
hi def link nsisVarKwd			Constant
hi def link nsisAddBrandingImageKwd	Constant
hi def link nsisBGGradientKwd		Constant
hi def link nsisBrandingTextKwd		Constant
hi def link nsisCRCCheckKwd		Constant
hi def link nsisDirVerifyKwd		Constant
hi def link nsisInstallColorsKwd	Constant
hi def link nsisInstTypeKwd		Constant
hi def link nsisLicenseBkColorKwd	Constant
hi def link nsisLicenseForceSelectionKwd Constant
hi def link nsisManifestDPIAwareKwd	Constant
hi def link nsisManifestSupportedOSKwd	Constant
hi def link nsisRequestExecutionLevelKwd Constant
hi def link nsisShowInstDetailsKwd	Constant
hi def link nsisSilentInstallKwd	Constant
hi def link nsisSilentUnInstallKwd	Constant
hi def link nsisSetCompressKwd		Constant
hi def link nsisSetCompressorKwd	Constant
hi def link nsisSetOverwriteKwd		Constant
hi def link nsisDeleteKwd		Constant
hi def link nsisExecShellKwd		Constant
hi def link nsisFileKwd			Constant
hi def link nsisReserveFileKwd		Constant
hi def link nsisRMDirKwd		Constant
hi def link nsisDeleteRegKeyKwd		Constant
hi def link nsisWriteRegMultiStrKwd	Constant
hi def link nsisSetRegViewKwd		Constant
hi def link nsisCopyFilesKwd		Constant
hi def link nsisCreateShortcutKwd	Constant
hi def link nsisGetFullPathNameKwd	Constant
hi def link nsisFileAttrib		Constant
hi def link nsisMessageBox		Constant
hi def link nsisFileWriteUTF16LEKwd	Constant
hi def link nsisSetShellVarContextKwd	Constant
hi def link nsisSendMessageKwd		Constant
hi def link nsisSetBrandingImageKwd	Constant
hi def link nsisSetDetailsViewKwd	Constant
hi def link nsisSetDetailsPrintKwd	Constant
hi def link nsisSetCtlColorsKwd		Constant
hi def link nsisSetSilentKwd		Constant
hi def link nsisRegistry		Identifier
hi def link nsisNumber			Number
hi def link nsisError			Error
hi def link nsisUserVar			Identifier
hi def link nsisSysVar			Identifier
hi def link nsisAttribute		Type
hi def link nsisCompiler		Type
hi def link nsisVersionInfo		Type
hi def link nsisTodo			Todo
hi def link nsisCallback		Identifier
" preprocessor commands
hi def link nsisPreprocSubst		PreProc
hi def link nsisPreprocLangStr		PreProc
hi def link nsisPreprocEnvVar		PreProc
hi def link nsisDefine			Define
hi def link nsisMacro			Macro
hi def link nsisPreCondit		PreCondit
hi def link nsisInclude			Include
hi def link nsisSystem			PreProc
hi def link nsisLineContinuation	Special
hi def link nsisIncludeKwd		Constant
hi def link nsisAddplugindirKwd		Constant
hi def link nsisAppendfileKwd		Constant
hi def link nsisDelfileKwd		Constant
hi def link nsisPragmaKwd		Constant
hi def link nsisVerboseKwd		Constant
hi def link nsisDefineKwd		Constant
hi def link nsisIfKwd			Constant
hi def link nsisSearchparseKwd		Constant
hi def link nsisSearchreplaceKwd	Constant


let b:current_syntax = "nsis"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZjLi4��vim80/syntax/cabal.vimnu�[���" Vim syntax file
" Language:	Haskell Cabal Build file
" Maintainer:	Vincent Berthoux <twinside@gmail.com>
" File Types:	.cabal
" Last Change:  2010 May 18
" v1.3: Updated to the last version of cabal
"       Added more highlighting for cabal function, true/false
"       and version number. Also added missing comment highlighting.
"       Cabal known compiler are highlighted too.
"
" V1.2: Added cpp-options which was missing. Feature implemented
"       by GHC, found with a GHC warning, but undocumented. 
"       Whatever...
"
" v1.1: Fixed operator problems and added ftdetect file
"       (thanks to Sebastian Schwarz)
"
" v1.0: Cabal syntax in vimball format
"       (thanks to Magnus Therning)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword	cabalCategory	Library library Executable executable Flag flag
syn keyword	cabalCategory	source-repository Source-Repository

syn keyword     cabalConditional    if else
syn match       cabalOperator       "&&\|||\|!\|==\|>=\|<="
syn keyword     cabalFunction       os arche impl flag
syn match       cabalComment    /--.*$/
syn match       cabalVersion    "\d\+\(.\(\d\)\+\)\+"

syn match       cabalTruth      "\ctrue"
syn match       cabalTruth      "\cfalse"

syn match       cabalCompiler   "\cghc"
syn match       cabalCompiler   "\cnhc"
syn match       cabalCompiler   "\cyhc"
syn match       cabalCompiler   "\chugs"
syn match       cabalCompiler   "\chbc"
syn match       cabalCompiler   "\chelium"
syn match       cabalCompiler   "\cjhc"
syn match       cabalCompiler   "\clhc"


syn match	cabalStatement	"\cauthor"
syn match	cabalStatement	"\cbranch"
syn match	cabalStatement	"\cbug-reports"
syn match	cabalStatement	"\cbuild-depends"
syn match	cabalStatement	"\cbuild-tools"
syn match	cabalStatement	"\cbuild-type"
syn match	cabalStatement	"\cbuildable"
syn match	cabalStatement	"\cc-sources"
syn match	cabalStatement	"\ccabal-version"
syn match	cabalStatement	"\ccategory"
syn match	cabalStatement	"\ccc-options"
syn match	cabalStatement	"\ccopyright"
syn match       cabalStatement  "\ccpp-options"
syn match	cabalStatement	"\cdata-dir"
syn match	cabalStatement	"\cdata-files"
syn match	cabalStatement	"\cdefault"
syn match	cabalStatement	"\cdescription"
syn match	cabalStatement	"\cexecutable"
syn match	cabalStatement	"\cexposed-modules"
syn match	cabalStatement	"\cexposed"
syn match	cabalStatement	"\cextensions"
syn match	cabalStatement	"\cextra-lib-dirs"
syn match	cabalStatement	"\cextra-libraries"
syn match	cabalStatement	"\cextra-source-files"
syn match	cabalStatement	"\cextra-tmp-files"
syn match	cabalStatement	"\cfor example"
syn match	cabalStatement	"\cframeworks"
syn match	cabalStatement	"\cghc-options"
syn match	cabalStatement	"\cghc-prof-options"
syn match	cabalStatement	"\cghc-shared-options"
syn match	cabalStatement	"\chomepage"
syn match	cabalStatement	"\chs-source-dirs"
syn match	cabalStatement	"\chugs-options"
syn match	cabalStatement	"\cinclude-dirs"
syn match	cabalStatement	"\cincludes"
syn match	cabalStatement	"\cinstall-includes"
syn match	cabalStatement	"\cld-options"
syn match	cabalStatement	"\clicense-file"
syn match	cabalStatement	"\clicense"
syn match	cabalStatement	"\clocation"
syn match	cabalStatement	"\cmain-is"
syn match	cabalStatement	"\cmaintainer"
syn match	cabalStatement	"\cmodule"
syn match	cabalStatement	"\cname"
syn match	cabalStatement	"\cnhc98-options"
syn match	cabalStatement	"\cother-modules"
syn match	cabalStatement	"\cpackage-url"
syn match	cabalStatement	"\cpkgconfig-depends"
syn match	cabalStatement	"\cstability"
syn match	cabalStatement	"\csubdir"
syn match	cabalStatement	"\csynopsis"
syn match	cabalStatement	"\ctag"
syn match	cabalStatement	"\ctested-with"
syn match	cabalStatement	"\ctype"
syn match	cabalStatement	"\cversion"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cabalVersion       Number
hi def link cabalTruth         Boolean
hi def link cabalComment       Comment
hi def link cabalStatement     Statement
hi def link cabalCategory      Type
hi def link cabalFunction      Function
hi def link cabalConditional   Conditional
hi def link cabalOperator      Operator
hi def link cabalCompiler      Constant

let b:current_syntax = "cabal"

" vim: ts=8
PK�j�Z��g}}vim80/syntax/arch.vimnu�[���" Vim syntax file
" Language:             GNU Arch inventory file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-17

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn keyword archTodo    TODO FIXME XXX NOTE

syn region  archComment display start='^\%(#\|\s\)' end='$'
                        \ contains=archTodo,@Spell

syn match   archBegin   display '^' nextgroup=archKeyword,archComment

syn keyword archKeyword contained implicit tagline explicit names
syn keyword archKeyword contained untagged-source
                        \ nextgroup=archTMethod skipwhite
syn keyword archKeyword contained exclude junk backup precious unrecognized
                        \ source nextgroup=archRegex skipwhite

syn keyword archTMethod contained source precious backup junk unrecognized

syn match   archRegex   contained '\s*\zs.*'

hi def link archTodo    Todo
hi def link archComment Comment
hi def link archKeyword Keyword
hi def link archTMethod Type
hi def link archRegex   String

let b:current_syntax = "arch"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�%nB��vim80/syntax/cvs.vimnu�[���" Vim syntax file
" Language:	CVS commit file
" Maintainer:	Matt Dunford (zoot@zotikos.com)
" URL:		http://www.zotikos.com/downloads/cvs.vim
" Last Change:	Sat Nov 24 23:25:11 CET 2001

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn region cvsLine start="^CVS: " end="$" contains=cvsFile,cvsCom,cvsFiles,cvsTag
syn match cvsFile  contained " \t\(\(\S\+\) \)\+"
syn match cvsTag   contained " Tag:"
syn match cvsFiles contained "\(Added\|Modified\|Removed\) Files:"
syn region cvsCom start="Committing in" end="$" contains=cvsDir contained extend keepend
syn match cvsDir   contained "\S\+$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cvsLine		Comment
hi def link cvsDir		cvsFile
hi def link cvsFile		Constant
hi def link cvsFiles		cvsCom
hi def link cvsTag		cvsCom
hi def link cvsCom		Statement


let b:current_syntax = "cvs"
PK�j�ZЛ�6ЍЍvim80/syntax/kconfig.vimnu�[���" Vim syntax file
" Maintainer:           Christian Brabandt <cb@256bit.org>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2015-05-29
" License:              Vim (see :h license)
" Repository:		https://github.com/chrisbra/vim-kconfig

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

if exists("g:kconfig_syntax_heavy")

syn match   kconfigBegin              '^' nextgroup=kconfigKeyword
                                      \ skipwhite

syn keyword kconfigTodo               contained TODO FIXME XXX NOTE

syn match   kconfigComment            display '#.*$' contains=kconfigTodo

syn keyword kconfigKeyword            config nextgroup=kconfigSymbol
                                      \ skipwhite

syn keyword kconfigKeyword            menuconfig nextgroup=kconfigSymbol
                                      \ skipwhite

syn keyword kconfigKeyword            comment menu mainmenu
                                      \ nextgroup=kconfigKeywordPrompt
                                      \ skipwhite

syn keyword kconfigKeyword            choice
                                      \ nextgroup=@kconfigConfigOptions
                                      \ skipwhite skipnl

syn keyword kconfigKeyword            endmenu endchoice

syn keyword kconfigPreProc            source
                                      \ nextgroup=kconfigPath
                                      \ skipwhite

" TODO: This is a hack.  The who .*Expr stuff should really be generated so
" that we can reuse it for various nextgroups.
syn keyword kconfigConditional        if endif
                                      \ nextgroup=@kconfigConfigOptionIfExpr
                                      \ skipwhite

syn match   kconfigKeywordPrompt      '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigPath               '"[^"\\]*\%(\\.[^"\\]*\)*"\|\S\+'
                                      \ contained

syn match   kconfigSymbol             '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions
                                      \ skipwhite skipnl

" FIXME: There is – probably – no reason to cluster these instead of just
" defining them in the same group.
syn cluster kconfigConfigOptions      contains=kconfigTypeDefinition,
                                      \        kconfigInputPrompt,
                                      \        kconfigDefaultValue,
                                      \        kconfigDependencies,
                                      \        kconfigReverseDependencies,
                                      \        kconfigNumericalRanges,
                                      \        kconfigHelpText,
                                      \        kconfigDefBool,
                                      \        kconfigOptional

syn keyword kconfigTypeDefinition     bool boolean tristate string hex int
                                      \ contained
                                      \ nextgroup=kconfigTypeDefPrompt,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigTypeDefPrompt      '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigTypeDefPrompt      "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn keyword kconfigInputPrompt        prompt
                                      \ contained
                                      \ nextgroup=kconfigPromptPrompt
                                      \ skipwhite

syn match   kconfigPromptPrompt       '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigPromptPrompt       "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn keyword   kconfigDefaultValue     default
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionExpr
                                      \ skipwhite

syn match   kconfigDependencies       'depends on\|requires'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfExpr
                                      \ skipwhite

syn keyword kconfigReverseDependencies select
                                      \ contained
                                      \ nextgroup=@kconfigRevDepSymbol
                                      \ skipwhite

syn cluster kconfigRevDepSymbol       contains=kconfigRevDepCSymbol,
                                      \        kconfigRevDepNCSymbol

syn match   kconfigRevDepCSymbol      '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigRevDepCSymbol      "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigRevDepNCSymbol     '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn keyword kconfigNumericalRanges    range
                                      \ contained
                                      \ nextgroup=@kconfigRangeSymbol
                                      \ skipwhite

syn cluster kconfigRangeSymbol        contains=kconfigRangeCSymbol,
                                      \        kconfigRangeNCSymbol

syn match   kconfigRangeCSymbol       '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=@kconfigRangeSymbol2
                                      \ skipwhite skipnl

syn match   kconfigRangeCSymbol       "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=@kconfigRangeSymbol2
                                      \ skipwhite skipnl

syn match   kconfigRangeNCSymbol      '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=@kconfigRangeSymbol2
                                      \ skipwhite skipnl

syn cluster kconfigRangeSymbol2       contains=kconfigRangeCSymbol2,
                                      \        kconfigRangeNCSymbol2

syn match   kconfigRangeCSymbol2      "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigRangeNCSymbol2     '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn region  kconfigHelpText           contained
      \ matchgroup=kconfigConfigOption
      \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
      \ skip='^$'
      \ end='^\z1\@!'
      \ nextgroup=@kconfigConfigOptions
      \ skipwhite skipnl

" XXX: Undocumented
syn keyword kconfigDefBool            def_bool
                                      \ contained
                                      \ nextgroup=@kconfigDefBoolSymbol
                                      \ skipwhite

syn cluster kconfigDefBoolSymbol      contains=kconfigDefBoolCSymbol,
                                      \        kconfigDefBoolNCSymbol

syn match   kconfigDefBoolCSymbol     '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigDefBoolCSymbol     "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigDefBoolNCSymbol    '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

" XXX: This is actually only a valid option for “choice”, but treating it
" specially would require a lot of extra groups.
syn keyword kconfigOptional           optional
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions
                                      \ skipwhite skipnl

syn keyword kconfigConfigOptionIf     if
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfExpr
                                      \ skipwhite

syn cluster kconfigConfigOptionIfExpr contains=@kconfigConfOptIfExprSym,
                                      \        kconfigConfOptIfExprNeg,
                                      \        kconfigConfOptIfExprGroup

syn cluster kconfigConfOptIfExprSym   contains=kconfigConfOptIfExprCSym,
                                      \        kconfigConfOptIfExprNCSym

syn match   kconfigConfOptIfExprCSym  '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions,
                                      \           kconfigConfOptIfExprAnd,
                                      \           kconfigConfOptIfExprOr,
                                      \           kconfigConfOptIfExprEq,
                                      \           kconfigConfOptIfExprNEq
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfExprCSym  "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions,
                                      \           kconfigConfOptIfExprAnd,
                                      \           kconfigConfOptIfExprOr,
                                      \           kconfigConfOptIfExprEq,
                                      \           kconfigConfOptIfExprNEq
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfExprNCSym '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions,
                                      \           kconfigConfOptIfExprAnd,
                                      \           kconfigConfOptIfExprOr,
                                      \           kconfigConfOptIfExprEq,
                                      \           kconfigConfOptIfExprNEq
                                      \ skipwhite skipnl

syn cluster kconfigConfOptIfExprSym2  contains=kconfigConfOptIfExprCSym2,
                                      \        kconfigConfOptIfExprNCSym2

syn match   kconfigConfOptIfExprEq    '='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptIfExprSym2
                                      \ skipwhite

syn match   kconfigConfOptIfExprNEq   '!='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptIfExprSym2
                                      \ skipwhite

syn match   kconfigConfOptIfExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions,
                                      \           kconfigConfOptIfExprAnd,
                                      \           kconfigConfOptIfExprOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfExprNCSym2 '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions,
                                      \           kconfigConfOptIfExprAnd,
                                      \           kconfigConfOptIfExprOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfExprNeg   '!'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfExpr
                                      \ skipwhite

syn match   kconfigConfOptIfExprAnd   '&&'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfExpr
                                      \ skipwhite

syn match   kconfigConfOptIfExprOr    '||'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfExpr
                                      \ skipwhite

syn match   kconfigConfOptIfExprGroup '('
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfGExp
                                      \ skipwhite

" TODO: hm, this kind of recursion doesn't work right.  We need another set of
" expressions that have kconfigConfigOPtionIfGExp as nextgroup and a matcher
" for '(' that sets it all off.
syn cluster kconfigConfigOptionIfGExp contains=@kconfigConfOptIfGExpSym,
                                      \        kconfigConfOptIfGExpNeg,
                                      \        kconfigConfOptIfExprGroup

syn cluster kconfigConfOptIfGExpSym   contains=kconfigConfOptIfGExpCSym,
                                      \        kconfigConfOptIfGExpNCSym

syn match   kconfigConfOptIfGExpCSym  '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=@kconfigConfigIf,
                                      \           kconfigConfOptIfGExpAnd,
                                      \           kconfigConfOptIfGExpOr,
                                      \           kconfigConfOptIfGExpEq,
                                      \           kconfigConfOptIfGExpNEq
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfGExpCSym  "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=@kconfigConfigIf,
                                      \           kconfigConfOptIfGExpAnd,
                                      \           kconfigConfOptIfGExpOr,
                                      \           kconfigConfOptIfGExpEq,
                                      \           kconfigConfOptIfGExpNEq
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfGExpNCSym '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfOptIfExprGrpE,
                                      \           kconfigConfOptIfGExpAnd,
                                      \           kconfigConfOptIfGExpOr,
                                      \           kconfigConfOptIfGExpEq,
                                      \           kconfigConfOptIfGExpNEq
                                      \ skipwhite skipnl

syn cluster kconfigConfOptIfGExpSym2  contains=kconfigConfOptIfGExpCSym2,
                                      \        kconfigConfOptIfGExpNCSym2

syn match   kconfigConfOptIfGExpEq    '='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptIfGExpSym2
                                      \ skipwhite

syn match   kconfigConfOptIfGExpNEq   '!='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptIfGExpSym2
                                      \ skipwhite

syn match   kconfigConfOptIfGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfOptIfExprGrpE,
                                      \           kconfigConfOptIfGExpAnd,
                                      \           kconfigConfOptIfGExpOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfOptIfExprGrpE,
                                      \           kconfigConfOptIfGExpAnd,
                                      \           kconfigConfOptIfGExpOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfGExpNCSym2 '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfOptIfExprGrpE,
                                      \           kconfigConfOptIfGExpAnd,
                                      \           kconfigConfOptIfGExpOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptIfGExpNeg   '!'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfGExp
                                      \ skipwhite

syn match   kconfigConfOptIfGExpAnd   '&&'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfGExp
                                      \ skipwhite

syn match   kconfigConfOptIfGExpOr    '||'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionIfGExp
                                      \ skipwhite

syn match   kconfigConfOptIfExprGrpE  ')'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptions,
                                      \           kconfigConfOptIfExprAnd,
                                      \           kconfigConfOptIfExprOr
                                      \ skipwhite skipnl


syn cluster kconfigConfigOptionExpr   contains=@kconfigConfOptExprSym,
                                      \        kconfigConfOptExprNeg,
                                      \        kconfigConfOptExprGroup

syn cluster kconfigConfOptExprSym     contains=kconfigConfOptExprCSym,
                                      \        kconfigConfOptExprNCSym

syn match   kconfigConfOptExprCSym    '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           kconfigConfOptExprAnd,
                                      \           kconfigConfOptExprOr,
                                      \           kconfigConfOptExprEq,
                                      \           kconfigConfOptExprNEq,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigConfOptExprCSym    "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           kconfigConfOptExprAnd,
                                      \           kconfigConfOptExprOr,
                                      \           kconfigConfOptExprEq,
                                      \           kconfigConfOptExprNEq,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigConfOptExprNCSym   '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           kconfigConfOptExprAnd,
                                      \           kconfigConfOptExprOr,
                                      \           kconfigConfOptExprEq,
                                      \           kconfigConfOptExprNEq,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn cluster kconfigConfOptExprSym2    contains=kconfigConfOptExprCSym2,
                                      \        kconfigConfOptExprNCSym2

syn match   kconfigConfOptExprEq      '='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptExprSym2
                                      \ skipwhite

syn match   kconfigConfOptExprNEq     '!='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptExprSym2
                                      \ skipwhite

syn match   kconfigConfOptExprCSym2   '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           kconfigConfOptExprAnd,
                                      \           kconfigConfOptExprOr,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigConfOptExprCSym2   "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           kconfigConfOptExprAnd,
                                      \           kconfigConfOptExprOr,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigConfOptExprNCSym2  '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           kconfigConfOptExprAnd,
                                      \           kconfigConfOptExprOr,
                                      \           @kconfigConfigOptions
                                      \ skipwhite skipnl

syn match   kconfigConfOptExprNeg     '!'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionExpr
                                      \ skipwhite

syn match   kconfigConfOptExprAnd     '&&'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionExpr
                                      \ skipwhite

syn match   kconfigConfOptExprOr      '||'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionExpr
                                      \ skipwhite

syn match   kconfigConfOptExprGroup   '('
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionGExp
                                      \ skipwhite

syn cluster kconfigConfigOptionGExp   contains=@kconfigConfOptGExpSym,
                                      \        kconfigConfOptGExpNeg,
                                      \        kconfigConfOptGExpGroup

syn cluster kconfigConfOptGExpSym     contains=kconfigConfOptGExpCSym,
                                      \        kconfigConfOptGExpNCSym

syn match   kconfigConfOptGExpCSym    '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfOptExprGrpE,
                                      \           kconfigConfOptGExpAnd,
                                      \           kconfigConfOptGExpOr,
                                      \           kconfigConfOptGExpEq,
                                      \           kconfigConfOptGExpNEq
                                      \ skipwhite skipnl

syn match   kconfigConfOptGExpCSym    "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfOptExprGrpE,
                                      \           kconfigConfOptGExpAnd,
                                      \           kconfigConfOptGExpOr,
                                      \           kconfigConfOptGExpEq,
                                      \           kconfigConfOptGExpNEq
                                      \ skipwhite skipnl

syn match   kconfigConfOptGExpNCSym   '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfOptExprGrpE,
                                      \           kconfigConfOptGExpAnd,
                                      \           kconfigConfOptGExpOr,
                                      \           kconfigConfOptGExpEq,
                                      \           kconfigConfOptGExpNEq
                                      \ skipwhite skipnl

syn cluster kconfigConfOptGExpSym2    contains=kconfigConfOptGExpCSym2,
                                      \        kconfigConfOptGExpNCSym2

syn match   kconfigConfOptGExpEq      '='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptGExpSym2
                                      \ skipwhite

syn match   kconfigConfOptGExpNEq     '!='
                                      \ contained
                                      \ nextgroup=@kconfigConfOptGExpSym2
                                      \ skipwhite

syn match   kconfigConfOptGExpCSym2   '"[^"\\]*\%(\\.[^"\\]*\)*"'
                                      \ contained
                                      \ nextgroup=kconfigConfOptExprGrpE,
                                      \           kconfigConfOptGExpAnd,
                                      \           kconfigConfOptGExpOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptGExpCSym2   "'[^'\\]*\%(\\.[^'\\]*\)*'"
                                      \ contained
                                      \ nextgroup=kconfigConfOptExprGrpE,
                                      \           kconfigConfOptGExpAnd,
                                      \           kconfigConfOptGExpOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptGExpNCSym2  '\<\k\+\>'
                                      \ contained
                                      \ nextgroup=kconfigConfOptExprGrpE,
                                      \           kconfigConfOptGExpAnd,
                                      \           kconfigConfOptGExpOr
                                      \ skipwhite skipnl

syn match   kconfigConfOptGExpNeg     '!'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionGExp
                                      \ skipwhite

syn match   kconfigConfOptGExpAnd     '&&'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionGExp
                                      \ skipwhite

syn match   kconfigConfOptGExpOr      '||'
                                      \ contained
                                      \ nextgroup=@kconfigConfigOptionGExp
                                      \ skipwhite

syn match   kconfigConfOptExprGrpE    ')'
                                      \ contained
                                      \ nextgroup=kconfigConfigOptionIf,
                                      \           kconfigConfOptExprAnd,
                                      \           kconfigConfOptExprOr
                                      \ skipwhite skipnl

syn sync minlines=50

hi def link kconfigTodo                 Todo
hi def link kconfigComment              Comment
hi def link kconfigKeyword              Keyword
hi def link kconfigPreProc              PreProc
hi def link kconfigConditional          Conditional
hi def link kconfigPrompt               String
hi def link kconfigKeywordPrompt        kconfigPrompt
hi def link kconfigPath                 String
hi def link kconfigSymbol               String
hi def link kconfigConstantSymbol       Constant
hi def link kconfigConfigOption         Type
hi def link kconfigTypeDefinition       kconfigConfigOption
hi def link kconfigTypeDefPrompt        kconfigPrompt
hi def link kconfigInputPrompt          kconfigConfigOption
hi def link kconfigPromptPrompt         kconfigPrompt
hi def link kconfigDefaultValue         kconfigConfigOption
hi def link kconfigDependencies         kconfigConfigOption
hi def link kconfigReverseDependencies  kconfigConfigOption
hi def link kconfigRevDepCSymbol        kconfigConstantSymbol
hi def link kconfigRevDepNCSymbol       kconfigSymbol
hi def link kconfigNumericalRanges      kconfigConfigOption
hi def link kconfigRangeCSymbol         kconfigConstantSymbol
hi def link kconfigRangeNCSymbol        kconfigSymbol
hi def link kconfigRangeCSymbol2        kconfigConstantSymbol
hi def link kconfigRangeNCSymbol2       kconfigSymbol
hi def link kconfigHelpText             Normal
hi def link kconfigDefBool              kconfigConfigOption
hi def link kconfigDefBoolCSymbol       kconfigConstantSymbol
hi def link kconfigDefBoolNCSymbol      kconfigSymbol
hi def link kconfigOptional             kconfigConfigOption
hi def link kconfigConfigOptionIf       Conditional
hi def link kconfigConfOptIfExprCSym    kconfigConstantSymbol
hi def link kconfigConfOptIfExprNCSym   kconfigSymbol
hi def link kconfigOperator             Operator
hi def link kconfigConfOptIfExprEq      kconfigOperator
hi def link kconfigConfOptIfExprNEq     kconfigOperator
hi def link kconfigConfOptIfExprCSym2   kconfigConstantSymbol
hi def link kconfigConfOptIfExprNCSym2  kconfigSymbol
hi def link kconfigConfOptIfExprNeg     kconfigOperator
hi def link kconfigConfOptIfExprAnd     kconfigOperator
hi def link kconfigConfOptIfExprOr      kconfigOperator
hi def link kconfigDelimiter            Delimiter
hi def link kconfigConfOptIfExprGroup   kconfigDelimiter
hi def link kconfigConfOptIfGExpCSym    kconfigConstantSymbol
hi def link kconfigConfOptIfGExpNCSym   kconfigSymbol
hi def link kconfigConfOptIfGExpEq      kconfigOperator
hi def link kconfigConfOptIfGExpNEq     kconfigOperator
hi def link kconfigConfOptIfGExpCSym2   kconfigConstantSymbol
hi def link kconfigConfOptIfGExpNCSym2  kconfigSymbol
hi def link kconfigConfOptIfGExpNeg     kconfigOperator
hi def link kconfigConfOptIfGExpAnd     kconfigOperator
hi def link kconfigConfOptIfGExpOr      kconfigOperator
hi def link kconfigConfOptIfExprGrpE    kconfigDelimiter
hi def link kconfigConfOptExprCSym      kconfigConstantSymbol
hi def link kconfigConfOptExprNCSym     kconfigSymbol
hi def link kconfigConfOptExprEq        kconfigOperator
hi def link kconfigConfOptExprNEq       kconfigOperator
hi def link kconfigConfOptExprCSym2     kconfigConstantSymbol
hi def link kconfigConfOptExprNCSym2    kconfigSymbol
hi def link kconfigConfOptExprNeg       kconfigOperator
hi def link kconfigConfOptExprAnd       kconfigOperator
hi def link kconfigConfOptExprOr        kconfigOperator
hi def link kconfigConfOptExprGroup     kconfigDelimiter
hi def link kconfigConfOptGExpCSym      kconfigConstantSymbol
hi def link kconfigConfOptGExpNCSym     kconfigSymbol
hi def link kconfigConfOptGExpEq        kconfigOperator
hi def link kconfigConfOptGExpNEq       kconfigOperator
hi def link kconfigConfOptGExpCSym2     kconfigConstantSymbol
hi def link kconfigConfOptGExpNCSym2    kconfigSymbol
hi def link kconfigConfOptGExpNeg       kconfigOperator
hi def link kconfigConfOptGExpAnd       kconfigOperator
hi def link kconfigConfOptGExpOr        kconfigOperator
hi def link kconfigConfOptExprGrpE      kconfigConfOptIfExprGroup

else

syn keyword kconfigTodo               contained TODO FIXME XXX NOTE

syn match   kconfigComment            display '#.*$' contains=kconfigTodo

syn keyword kconfigKeyword            config menuconfig comment mainmenu

syn keyword kconfigConditional        menu endmenu choice endchoice if endif

syn keyword kconfigPreProc            source
                                      \ nextgroup=kconfigPath
                                      \ skipwhite

syn keyword kconfigTriState           y m n

syn match   kconfigSpecialChar        contained '\\.'
syn match   kconfigSpecialChar        '\\$'

syn region  kconfigPath               matchgroup=kconfigPath
                                      \ start=+"+ skip=+\\\\\|\\\"+ end=+"+
                                      \ contains=kconfigSpecialChar

syn region  kconfigPath               matchgroup=kconfigPath
                                      \ start=+'+ skip=+\\\\\|\\\'+ end=+'+
                                      \ contains=kconfigSpecialChar

syn match   kconfigPath               '\S\+'
                                      \ contained

syn region  kconfigString             matchgroup=kconfigString
                                      \ start=+"+ skip=+\\\\\|\\\"+ end=+"+
                                      \ contains=kconfigSpecialChar

syn region  kconfigString             matchgroup=kconfigString
                                      \ start=+'+ skip=+\\\\\|\\\'+ end=+'+
                                      \ contains=kconfigSpecialChar

syn keyword kconfigType               bool boolean tristate string hex int

syn keyword kconfigOption             prompt default requires select range
                                      \ optional
syn match   kconfigOption             'depends\%( on\)\='

syn keyword kconfigMacro              def_bool def_tristate

syn region  kconfigHelpText
      \ matchgroup=kconfigOption
      \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
      \ skip='^$'
      \ end='^\z1\@!'

syn sync    match kconfigSyncHelp     grouphere kconfigHelpText 'help\|---help---'

hi def link kconfigTodo         Todo
hi def link kconfigComment      Comment
hi def link kconfigKeyword      Keyword
hi def link kconfigConditional  Conditional
hi def link kconfigPreProc      PreProc
hi def link kconfigTriState     Boolean
hi def link kconfigSpecialChar  SpecialChar
hi def link kconfigPath         String
hi def link kconfigString       String
hi def link kconfigType         Type
hi def link kconfigOption       Identifier
hi def link kconfigHelpText     Normal
hi def link kconfigmacro        Macro

endif

let b:current_syntax = "kconfig"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���T1T1vim80/syntax/spec.vimnu�[���" Filename:    spec.vim
" Purpose:     Vim syntax file
" Language:    SPEC: Build/install scripts for Linux RPM packages
" Maintainer:  Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer:  Donovan Rebbechi elflord@panix.com (until March 2014)
" Last Change: Sat Apr 9 15:30 2016 Filip Szymański

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn sync minlines=1000

syn match specSpecialChar contained '[][!$()\\|>^;:{}]'
syn match specColon       contained ':'
syn match specPercent     contained '%'

syn match specVariables   contained '\$\h\w*' contains=specSpecialVariablesNames,specSpecialChar
syn match specVariables   contained '\${\w*}' contains=specSpecialVariablesNames,specSpecialChar

syn match specMacroIdentifier contained '%\h\w*' contains=specMacroNameLocal,specMacroNameOther,specPercent
syn match specMacroIdentifier contained '%{\w*}' contains=specMacroNameLocal,specMacroNameOther,specPercent,specSpecialChar

syn match specSpecialVariables contained '\$[0-9]\|\${[0-9]}'
syn match specCommandOpts      contained '\s\(-\w\+\|--\w[a-zA-Z_-]\+\)'ms=s+1
syn match specComment '^\s*#.*$'


syn case match


"matches with no highlight
syn match specNoNumberHilite 'X11\|X11R6\|[a-zA-Z]*\.\d\|[a-zA-Z][-/]\d'
syn match specManpageFile '[a-zA-Z]\.1'

"Day, Month and most used license acronyms
syn keyword specLicense contained GPL LGPL BSD MIT GNU distributable
syn keyword specWeekday contained Mon Tue Wed Thu Fri Sat Sun
syn keyword specMonth   contained Jan Feb Mar Apr Jun Jul Aug Sep Oct Nov Dec
syn keyword specMonth   contained January February March April May June July August September October November December

"#, @, www
syn match specNumber '\(^-\=\|[ \t]-\=\|-\)[0-9.-]*[0-9]'
syn match specEmail contained "<\=\<[A-Za-z0-9_.-]\+@\([A-Za-z0-9_-]\+\.\)\+[A-Za-z]\+\>>\="
syn match specURL      contained '\<\(\(https\{0,1}\|ftp\)://\|\(www[23]\{0,1}\.\|ftp\.\)\)[A-Za-z0-9._/~:,#-]\+\>'
syn match specURLMacro contained '\<\(\(https\{0,1}\|ftp\)://\|\(www[23]\{0,1}\.\|ftp\.\)\)[A-Za-z0-9._/~:,#%{}-]\+\>' contains=specMacroIdentifier

"TODO take specSpecialVariables out of the cluster for the sh* contains (ALLBUT)
"Special system directories
syn match specListedFilesPrefix contained '/\(usr\|local\|opt\|X11R6\|X11\)/'me=e-1
syn match specListedFilesBin    contained '/s\=bin/'me=e-1
syn match specListedFilesLib    contained '/\(lib\|include\)/'me=e-1
syn match specListedFilesDoc    contained '/\(man\d*\|doc\|info\)\>'
syn match specListedFilesEtc    contained '/etc/'me=e-1
syn match specListedFilesShare  contained '/share/'me=e-1
syn cluster specListedFiles contains=specListedFilesBin,specListedFilesLib,specListedFilesDoc,specListedFilesEtc,specListedFilesShare,specListedFilesPrefix,specVariables,specSpecialChar

"specComands
syn match   specConfigure  contained '\./configure'
syn match   specTarCommand contained '\<tar\s\+[cxvpzIjf]\{,5}\s*'
syn keyword specCommandSpecial contained root
syn keyword specCommand		contained make xmkmf mkdir chmod ln find sed rm strip moc echo grep ls rm mv mkdir install cp pwd cat tail then else elif cd gzip rmdir ln eval export touch bzip2 bunzip2 gunzip
syn cluster specCommands contains=specCommand,specTarCommand,specConfigure,specCommandSpecial

"frequently used rpm env vars
syn keyword specSpecialVariablesNames contained RPM_BUILD_ROOT RPM_BUILD_DIR RPM_SOURCE_DIR RPM_OPT_FLAGS LDFLAGS CC CC_FLAGS CPPNAME CFLAGS CXX CXXFLAGS CPPFLAGS

"valid macro names from /usr/lib/rpm/macros
syn keyword specMacroNameOther contained buildroot buildsubdir distribution disturl ix86 name nil optflags perl_sitearch release requires_eq vendor version
syn match   specMacroNameOther contained '\<\(PATCH\|SOURCE\)\d*\>'

"valid _macro names from /usr/lib/rpm/macros
syn keyword specMacroNameLocal contained _arch _binary_payload _bindir _build _build_alias _build_cpu _builddir _build_os _buildshell _buildsubdir _build_vendor _bzip2bin _datadir _dbpath _dbpath_rebuild _defaultdocdir _docdir _excludedocs _exec_prefix _fixgroup _fixowner _fixperms _ftpport _ftpproxy _gpg_path _gzipbin _host _host_alias _host_cpu _host_os _host_vendor _httpport _httpproxy _includedir _infodir _install_langs _install_script_path _instchangelog _langpatt _lib _libdir _libexecdir _localstatedir _mandir _netsharedpath _oldincludedir _os _pgpbin _pgp_path _prefix _preScriptEnvironment _provides _rpmdir _rpmfilename _sbindir _sharedstatedir _signature _sourcedir _source_payload _specdir _srcrpmdir _sysconfdir _target _target_alias _target_cpu _target_os _target_platform _target_vendor _timecheck _tmppath _topdir _usr _usrsrc _var _vendor


"------------------------------------------------------------------------------
" here's is all the spec sections definitions: PreAmble, Description, Package,
"   Scripts, Files and Changelog

"One line macros - valid in all ScriptAreas
"tip: remember do include new items on specScriptArea's skip section
syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|global\|patch\d*\|setup\|autosetup\|autopatch\|configure\|GNUconfigure\|find_lang\|make_build\|makeinstall\|make_install\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier
syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|make_build\|makeinstall\|make_install\)}' end='$' contains=specCommandOpts,specMacroIdentifier

"%% Files Section %%
"TODO %config valid parameters: missingok\|noreplace
"TODO %verify valid parameters: \(not\)\= \(md5\|atime\|...\)
syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\|license\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier
"tip: remember to include new itens in specFilesArea above
syn match  specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\|license\)\>'

"valid options for certain section headers
syn match specDescriptionOpts contained '\s-[ln]\s*\a'ms=s+1,me=e-1
syn match specPackageOpts     contained    '\s-n\s*\w'ms=s+1,me=e-1
syn match specFilesOpts       contained    '\s-f\s*\w'ms=s+1,me=e-1


syn case ignore


"%% PreAmble Section %%
"Copyright and Serial were deprecated by License and Epoch
syn region specPreAmbleDeprecated oneline matchgroup=specError start='^\(Copyright\|Serial\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Recommends\|Suggests\|Supplements\|Enhances\|Icon\|URL\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExcludeOS\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier

"%% Description Section %%
syn region specDescriptionArea matchgroup=specSection start='^%description' end='^%'me=e-1 contains=specDescriptionOpts,specEmail,specURL,specNumber,specMacroIdentifier,specComment

"%% Package Section %%
syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment

"%% Scripts Section %%
syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|check\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|global\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2

"%% Changelog Section %%
syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense



"------------------------------------------------------------------------------
"here's the shell syntax for all the Script Sections


syn case match


"sh-like comment stile, only valid in script part
syn match shComment contained '#.*$'

syn region shQuote1 contained matchgroup=shQuoteDelim start=+'+ skip=+\\'+ end=+'+ contains=specMacroIdentifier
syn region shQuote2 contained matchgroup=shQuoteDelim start=+"+ skip=+\\"+ end=+"+ contains=specVariables,specMacroIdentifier

syn match shOperator contained '[><|!&;]\|[!=]='
syn region shDo transparent matchgroup=specBlock start="\<do\>" end="\<done\>" contains=ALLBUT,shFunction,shDoError,shCase,specPreAmble,@specListedFiles

syn region specIf  matchgroup=specBlock start="%ifosf\|%ifos\|%ifnos\|%ifarch\|%ifnarch\|%else"  end='%endif'  contains=ALLBUT, specIfError, shCase

syn region  shIf transparent matchgroup=specBlock start="\<if\>" end="\<fi\>" contains=ALLBUT,shFunction,shIfError,shCase,@specListedFiles

syn region  shFor  matchgroup=specBlock start="\<for\>" end="\<in\>" contains=ALLBUT,shFunction,shInError,shCase,@specListedFiles

syn region shCaseEsac transparent matchgroup=specBlock start="\<case\>" matchgroup=NONE end="\<in\>"me=s-1 contains=ALLBUT,shFunction,shCaseError,@specListedFiles nextgroup=shCaseEsac
syn region shCaseEsac matchgroup=specBlock start="\<in\>" end="\<esac\>" contains=ALLBUT,shFunction,shCaseError,@specListedFilesBin
syn region shCase matchgroup=specBlock contained start=")"  end=";;" contains=ALLBUT,shFunction,shCaseError,shCase,@specListedFiles

syn sync match shDoSync       grouphere  shDo       "\<do\>"
syn sync match shDoSync       groupthere shDo       "\<done\>"
syn sync match shIfSync       grouphere  shIf       "\<if\>"
syn sync match shIfSync       groupthere shIf       "\<fi\>"
syn sync match specIfSync     grouphere  specIf     "%ifarch\|%ifos\|%ifnos"
syn sync match specIfSync     groupthere specIf     "%endIf"
syn sync match shForSync      grouphere  shFor      "\<for\>"
syn sync match shForSync      groupthere shFor      "\<in\>"
syn sync match shCaseEsacSync grouphere  shCaseEsac "\<case\>"
syn sync match shCaseEsacSync groupthere shCaseEsac "\<esac\>"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

"main types color definitions
hi def link specSection			Structure
hi def link specSectionMacro		Macro
hi def link specWWWlink			PreProc
hi def link specOpts			Operator

"yes, it's ugly, but white is sooo cool
if &background == "dark"
hi def specGlobalMacro		ctermfg=white
else
hi def link specGlobalMacro		Identifier
endif

"sh colors
hi def link shComment			Comment
hi def link shIf				Statement
hi def link shOperator			Special
hi def link shQuote1			String
hi def link shQuote2			String
hi def link shQuoteDelim			Statement

"spec colors
hi def link specBlock			Function
hi def link specColon			Special
hi def link specCommand			Statement
hi def link specCommandOpts		specOpts
hi def link specCommandSpecial		Special
hi def link specComment			Comment
hi def link specConfigure			specCommand
hi def link specDate			String
hi def link specDescriptionOpts		specOpts
hi def link specEmail			specWWWlink
hi def link specError			Error
hi def link specFilesDirective		specSectionMacro
hi def link specFilesOpts			specOpts
hi def link specLicense			String
hi def link specMacroNameLocal		specGlobalMacro
hi def link specMacroNameOther		specGlobalMacro
hi def link specManpageFile		NONE
hi def link specMonth			specDate
hi def link specNoNumberHilite		NONE
hi def link specNumber			Number
hi def link specPackageOpts		specOpts
hi def link specPercent			Special
hi def link specSpecialChar		Special
hi def link specSpecialVariables		specGlobalMacro
hi def link specSpecialVariablesNames	specGlobalMacro
hi def link specTarCommand			specCommand
hi def link specURL			specWWWlink
hi def link specURLMacro			specWWWlink
hi def link specVariables			Identifier
hi def link specWeekday			specDate
hi def link specListedFilesBin		Statement
hi def link specListedFilesDoc		Statement
hi def link specListedFilesEtc		Statement
hi def link specListedFilesLib		Statement
hi def link specListedFilesPrefix		Statement
hi def link specListedFilesShare		Statement


let b:current_syntax = "spec"

" vim: ts=8
PK�j�Z��0�		vim80/syntax/asteriskvm.vimnu�[���" Vim syntax file
" Language:	Asterisk voicemail config file
" Maintainer: Tilghman Lesher (Corydon76)
" Last Change:	2006 Mar 21
" version 0.2

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn sync clear
syn sync fromstart


syn keyword     asteriskvmTodo    TODO contained
syn match       asteriskvmComment         ";.*" contains=asteriskvmTodo
syn match       asteriskvmContext         "\[.\{-}\]"

" ZoneMessages
syn match       asteriskvmZone            "^[[:alnum:]]\+\s*=>\?\s*[[:alnum:]/_]\+|.*$" contains=zoneName,zoneDef
syn match       zoneName                "=\zs[[:alnum:]/_]\+\ze" contained
syn match       zoneDef                 "|\zs.*\ze$" contained

syn match       asteriskvmSetting         "\<\(format\|serveremail\|minmessage\|maxmessage\|maxgreet\|skipms\|maxsilence\|silencethreshold\|maxlogins\)="
syn match       asteriskvmSetting         "\<\(externnotify\|externpass\|directoryintro\|charset\|adsi\(fdn\|sec\|ver\)\|\(pager\)\?fromstring\|email\(subject\|body\|cmd\)\|tz\|cidinternalcontexts\|saydurationm\|dialout\|callback\)="
syn match       asteriskvmSettingBool     "\<\(attach\|pbxskip\|usedirectory\|saycid\|sayduration\|sendvoicemail\|review\|operator\|envelope\|delete\|nextaftercmd\|forcename\|forcegreeting\)=\(yes\|no\|1\|0\|true\|false\|t\|f\)"

" Individual mailbox definitions
syn match       asteriskvmMailbox         "^[[:digit:]]\+\s*=>\?\s*[[:digit:]]\+\(,[^,]*\(,[^,]*\(,[^,]*\(,[^,]*\)\?\)\?\)\?\)\?" contains=mailboxEmail,asteriskvmSetting,asteriskvmSettingBool,comma
syn match       mailboxEmail            ",\zs[^@=,]*@[[:alnum:]\-\.]\+\.[[:alpha:]]\{2,10}\ze" contains=comma
syn match       comma                   "[,|]" contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link        asteriskvmComment Comment
hi def link        asteriskvmContext         Identifier
hi def link        asteriskvmZone            Type
hi def link        zoneName                String
hi def link        zoneDef                 String
hi def link        asteriskvmSetting         Type
hi def link        asteriskvmSettingBool     Type

hi def link        asteriskvmMailbox         Statement
hi def link        mailboxEmail            String

let b:current_syntax = "asteriskvm"

" vim: ts=8 sw=2

PK�j�Zj�N.t<t<vim80/syntax/mupad.vimnu�[���" Vim syntax file
" Language:    MuPAD source
" Maintainer:  Dave Silvia <dsilvia@mchsi.com>
" Filenames:   *.mu
" Date:        6/30/2004


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Set default highlighting to Win2k
if !exists("mupad_cmdextversion")
  let mupad_cmdextversion = 2
endif

syn case match

syn match mupadComment	"//\p*$"
syn region mupadComment	start="/\*"	end="\*/"

syn region mupadString	start="\""	skip=/\\"/	end="\""

syn match mupadOperator		"(\|)\|:=\|::\|:\|;"
" boolean
syn keyword mupadOperator	and	or	not	xor
syn match mupadOperator		"==>\|\<=\>"

" Informational
syn keyword mupadSpecial		FILEPATH	NOTEBOOKFILE	NOTEBOOKPATH
" Set-able, e.g., DIGITS:=10
syn keyword mupadSpecial		DIGITS		HISTORY		LEVEL
syn keyword mupadSpecial		MAXLEVEL	MAXDEPTH	ORDER
syn keyword mupadSpecial		TEXTWIDTH
" Set-able, e.g., PRETTYPRINT:=TRUE
syn keyword mupadSpecial		PRETTYPRINT
" Set-able, e.g., LIBPATH:="C:\\MuPAD Pro\\mylibdir" or LIBPATH:="/usr/MuPAD Pro/mylibdir"
syn keyword mupadSpecial		LIBPATH		PACKAGEPATH
syn keyword mupadSpecial		READPATH	TESTPATH	WRITEPATH
" Symbols and Constants
syn keyword mupadDefine		FAIL		NIL
syn keyword mupadDefine		TRUE		FALSE		UNKNOWN
syn keyword mupadDefine		complexInfinity		infinity
syn keyword mupadDefine		C_	CATALAN	E	EULER	I	PI	Q_	R_
syn keyword mupadDefine		RD_INF	RD_NINF	undefined	unit	universe	Z_
" print() directives
syn keyword mupadDefine		Unquoted	NoNL	KeepOrder	Typeset
" domain specifics
syn keyword mupadStatement	domain	begin	end_domain	end
syn keyword mupadIdentifier	inherits	category	axiom	info	doc interface
" basic programming statements
syn keyword mupadStatement	proc	begin	end_proc
syn keyword mupadUnderlined	name	local	option	save
syn keyword mupadConditional	if	then	elif	else	end_if
syn keyword mupadConditional	case	of	do	break	end_case
syn keyword mupadRepeat		for	do	next	break	end_for
syn keyword mupadRepeat		while	do	next break end_while
syn keyword mupadRepeat		repeat	next break until	end_repeat
" domain packages/libraries
syn keyword mupadType			detools	import	linalg	numeric	numlib	plot	polylib
syn match mupadType				'\<DOM_\w*\>'

"syn keyword mupadFunction	contains
" Functions dealing with prime numbers
syn keyword mupadFunction	phi	invphi	mersenne	nextprime	numprimedivisors
syn keyword mupadFunction	pollard	prevprime	primedivisors
" Functions operating on Lists, Matrices, Sets, ...
syn keyword mupadFunction	array	_index
" Evaluation
syn keyword mupadFunction	float contains
" stdlib
syn keyword mupadFunction	_exprseq	_invert	_lazy_and	_lazy_or	_negate
syn keyword mupadFunction	_stmtseq	_invert	intersect	minus		union
syn keyword mupadFunction	Ci	D	Ei	O	Re	Im	RootOf	Si
syn keyword mupadFunction	Simplify
syn keyword mupadFunction	abs	airyAi	airyBi	alias	unalias	anames	append
syn keyword mupadFunction	arcsin	arccos	arctan	arccsc	arcsec	arccot
syn keyword mupadFunction	arcsinh	arccosh	arctanh	arccsch	arcsech	arccoth
syn keyword mupadFunction	arg	args	array	assert	assign	assignElements
syn keyword mupadFunction	assume	assuming	asympt	bernoulli
syn keyword mupadFunction	besselI	besselJ	besselK	besselY	beta	binomial	bool
syn keyword mupadFunction	bytes	card
syn keyword mupadFunction	ceil	floor	round	trunc
syn keyword mupadFunction	coeff	coerce	collect	combine	copyClosure
syn keyword mupadFunction	conjugate	content	context	contfrac
syn keyword mupadFunction	debug	degree	degreevec	delete	_delete	denom
syn keyword mupadFunction	densematrix	diff	dilog	dirac	discont	div	_div
syn keyword mupadFunction	divide	domtype	doprint	erf	erfc	error	eval	evalassign
syn keyword mupadFunction	evalp	exp	expand	export	unexport	expose	expr
syn keyword mupadFunction	expr2text	external	extnops	extop	extsubsop
syn keyword mupadFunction	fact	fact2	factor	fclose	finput	fname	fopen	fprint
syn keyword mupadFunction	fread	ftextinput	readbitmap	readdata	pathname
syn keyword mupadFunction	protocol	read	readbytes	write	writebytes
syn keyword mupadFunction	float	frac	frame	_frame	frandom	freeze	unfreeze
syn keyword mupadFunction	funcenv	gamma	gcd	gcdex	genident	genpoly
syn keyword mupadFunction	getpid	getprop	ground	has	hastype	heaviside	help
syn keyword mupadFunction	history	hold	hull	hypergeom	icontent	id
syn keyword mupadFunction	ifactor	igamma	igcd	igcdex	ilcm	in	_in
syn keyword mupadFunction	indets	indexval	info	input	int	int2text
syn keyword mupadFunction	interpolate	interval	irreducible	is
syn keyword mupadFunction	isprime	isqrt	iszero	ithprime	kummerU	lambertW
syn keyword mupadFunction	last	lasterror	lcm	lcoeff	ldegree	length
syn keyword mupadFunction	level	lhs	rhs	limit	linsolve	lllint
syn keyword mupadFunction	lmonomial	ln	loadmod	loadproc	log	lterm
syn keyword mupadFunction	match	map	mapcoeffs	maprat	matrix	max	min
syn keyword mupadFunction	mod	modp	mods	monomials	multcoeffs	new
syn keyword mupadFunction	newDomain	_next	nextprime	nops
syn keyword mupadFunction	norm	normal	nterms	nthcoeff	nthmonomial	nthterm
syn keyword mupadFunction	null	numer	ode	op	operator	package
syn keyword mupadFunction	pade	partfrac	patchlevel	pdivide
syn keyword mupadFunction	piecewise	plot	plotfunc2d	plotfunc3d
syn keyword mupadFunction	poly	poly2list	polylog	powermod	print
syn keyword mupadFunction	product	protect	psi	quit	_quit	radsimp	random	rationalize
syn keyword mupadFunction	rec	rectform	register	reset	return	revert
syn keyword mupadFunction	rewrite	select	series	setuserinfo	share	sign	signIm
syn keyword mupadFunction	simplify
syn keyword mupadFunction	sin	cos	tan	csc	sec	cot
syn keyword mupadFunction	sinh	cosh	tanh	csch	sech	coth
syn keyword mupadFunction	slot	solve
syn keyword mupadFunction	pdesolve	matlinsolve	matlinsolveLU	toeplitzSolve
syn keyword mupadFunction	vandermondeSolve	fsolve	odesolve	odesolve2
syn keyword mupadFunction	polyroots	polysysroots	odesolveGeometric
syn keyword mupadFunction	realroot	realroots	mroots	lincongruence
syn keyword mupadFunction	msqrts
syn keyword mupadFunction	sort	split	sqrt	strmatch	strprint
syn keyword mupadFunction	subs	subset	subsex	subsop	substring	sum
syn keyword mupadFunction	surd	sysname	sysorder	system	table	taylor	tbl2text
syn keyword mupadFunction	tcoeff	testargs	testeq	testtype	text2expr
syn keyword mupadFunction	text2int	text2list	text2tbl	rtime	time
syn keyword mupadFunction	traperror	type	unassume	unit	universe
syn keyword mupadFunction	unloadmod	unprotect	userinfo	val	version
syn keyword mupadFunction	warning	whittakerM	whittakerW	zeta	zip

" graphics  plot::
syn keyword mupadFunction	getDefault	setDefault	copy	modify	Arc2d	Arrow2d
syn keyword mupadFunction	Arrow3d	Bars2d	Bars3d	Box	Boxplot	Circle2d	Circle3d
syn keyword mupadFunction	Cone	Conformal	Curve2d	Curve3d	Cylinder	Cylindrical
syn keyword mupadFunction	Density	Ellipse2d	Function2d	Function3d	Hatch
syn keyword mupadFunction	Histogram2d	HOrbital	Implicit2d	Implicit3d
syn keyword mupadFunction	Inequality	Iteration	Line2d	Line3d	Lsys	Matrixplot
syn keyword mupadFunction	MuPADCube	Ode2d	Ode3d	Parallelogram2d	Parallelogram3d
syn keyword mupadFunction	Piechart2d	Piechart3d	Point2d	Point3d	Polar
syn keyword mupadFunction	Polygon2d	Polygon3d	Raster	Rectangle	Sphere
syn keyword mupadFunction	Ellipsoid	Spherical	Sum	Surface	SurfaceSet
syn keyword mupadFunction	SurfaceSTL	Tetrahedron	Hexahedron	Octahedron
syn keyword mupadFunction	Dodecahedron	Icosahedron	Text2d	Text3d	Tube	Turtle
syn keyword mupadFunction	VectorField2d	XRotate	ZRotate	Canvas	CoordinateSystem2d
syn keyword mupadFunction	CoordinateSystem3d	Group2d	Group3d	Scene2d	Scene3d	ClippingBox
syn keyword mupadFunction	Rotate2d	Rotate3d	Scale2d	Scale3d	Transform2d
syn keyword mupadFunction	Transform3d	Translate2d	Translate3d	AmbientLight
syn keyword mupadFunction	Camera	DistantLight	PointLight	SpotLight

" graphics Attributes
" graphics  Output Attributes
syn keyword mupadIdentifier	OutputFile	OutputOptions
" graphics  Defining Attributes
syn keyword mupadIdentifier	Angle	AngleRange	AngleBegin	AngleEnd
syn keyword mupadIdentifier	Area	Axis	AxisX	AxisY	AxisZ	Base	Top
syn keyword mupadIdentifier	BaseX	TopX	BaseY	TopY	BaseZ	TopZ
syn keyword mupadIdentifier	BaseRadius	TopRadius	Cells
syn keyword mupadIdentifier	Center	CenterX	CenterY	CenterZ
syn keyword mupadIdentifier	Closed	ColorData	CommandList	Contours	CoordinateType
syn keyword mupadIdentifier	Data	DensityData	DensityFunction	From	To
syn keyword mupadIdentifier	FromX	ToX	FromY	ToY	FromZ	ToZ
syn keyword mupadIdentifier	Function	FunctionX	FunctionY	FunctionZ
syn keyword mupadIdentifier	Function1	Function2	Baseline
syn keyword mupadIdentifier	Generations	RotationAngle	IterationRules	StartRule StepLength
syn keyword mupadIdentifier	TurtleRules	Ground	Heights	Moves	Inequalities
syn keyword mupadIdentifier	InputFile	Iterations	StartingPoint
syn keyword mupadIdentifier	LineColorFunction	FillColorFunction
syn keyword mupadIdentifier	Matrix2d	Matrix3d
syn keyword mupadIdentifier	MeshList	MeshListType	MeshListNormals
syn keyword mupadIdentifier	MagneticQuantumNumber	MomentumQuantumNumber	PrincipalQuantumNumber
syn keyword mupadIdentifier	Name	Normal	NormalX	NormalY	NormalZ
syn keyword mupadIdentifier	ParameterName	ParameterBegin	ParameterEnd	ParameterRange
syn keyword mupadIdentifier	Points2d	Points3d	Radius	RadiusFunction
syn keyword mupadIdentifier	Position	PositionX	PositionY	PositionZ
syn keyword mupadIdentifier	Scale	ScaleX	ScaleY	ScaleZ Shift	ShiftX	ShiftY	ShiftZ
syn keyword mupadIdentifier	SemiAxes	SemiAxisX	SemiAxisY	SemiAxisZ
syn keyword mupadIdentifier	Tangent1	Tangent1X	Tangent1Y	Tangent1Z
syn keyword mupadIdentifier	Tangent2	Tangent2X	Tangent2Y	Tangent2Z
syn keyword mupadIdentifier	Text	TextOrientation	TextRotation
syn keyword mupadIdentifier	UName	URange	UMin	UMax	VName	VRange	VMin	VMax
syn keyword mupadIdentifier	XName	XRange	XMin	XMax	YName	YRange	YMin	YMax
syn keyword mupadIdentifier	ZName	ZRange	ZMin	ZMax	ViewingBox
syn keyword mupadIdentifier	ViewingBoxXMin	ViewingBoxXMax	ViewingBoxXRange
syn keyword mupadIdentifier	ViewingBoxYMin	ViewingBoxYMax	ViewingBoxYRange
syn keyword mupadIdentifier	ViewingBoxZMin	ViewingBoxZMax	ViewingBoxZRange
syn keyword mupadIdentifier	Visible
" graphics  Axis Attributes
syn keyword mupadIdentifier	Axes	AxesInFront	AxesLineColor	AxesLineWidth
syn keyword mupadIdentifier	AxesOrigin	AxesOriginX	AxesOriginY	AxesOriginZ
syn keyword mupadIdentifier	AxesTips	AxesTitleAlignment
syn keyword mupadIdentifier	AxesTitleAlignmentX	AxesTitleAlignmentY	AxesTitleAlignmentZ
syn keyword mupadIdentifier	AxesTitles	XAxisTitle	YAxisTitle	ZAxisTitle
syn keyword mupadIdentifier	AxesVisible	XAxisVisible	YAxisVisible	ZAxisVisible
syn keyword mupadIdentifier	YAxisTitleOrientation
" graphics  Tick Marks Attributes
syn keyword mupadIdentifier	TicksAnchor	XTicksAnchor	YTicksAnchor	ZTicksAnchor
syn keyword mupadIdentifier	TicksAt	XTicksAt	YTicksAt	ZTicksAt
syn keyword mupadIdentifier	TicksBetween	XTicksBetween	YTicksBetween	ZTicksBetween
syn keyword mupadIdentifier	TicksDistance	XTicksDistance	YTicksDistance	ZTicksDistance
syn keyword mupadIdentifier	TicksNumber	XTicksNumber	YTicksNumber	ZTicksNumber
syn keyword mupadIdentifier	TicksVisible	XTicksVisible	YTicksVisible	ZTicksVisible
syn keyword mupadIdentifier	TicksLength	TicksLabelStyle
syn keyword mupadIdentifier	XTicksLabelStyle	YTicksLabelStyle	ZTicksLabelStyle
syn keyword mupadIdentifier	TicksLabelsVisible
syn keyword mupadIdentifier	XTicksLabelsVisible	YTicksLabelsVisible	ZTicksLabelsVisible
" graphics  Grid Lines Attributes
syn keyword mupadIdentifier	GridInFront	GridLineColor	SubgridLineColor
syn keyword mupadIdentifier	GridLineStyle	SubgridLineStyle GridLineWidth	SubgridLineWidth
syn keyword mupadIdentifier	GridVisible	XGridVisible	YGridVisible	ZGridVisible
syn keyword mupadIdentifier	SubgridVisible	XSubgridVisible	YSubgridVisible	ZSubgridVisible
" graphics  Animation Attributes
syn keyword mupadIdentifier	Frames	TimeRange	TimeBegin	TimeEnd
syn keyword mupadIdentifier	VisibleAfter	VisibleBefore	VisibleFromTo
syn keyword mupadIdentifier	VisibleAfterEnd	VisibleBeforeBegin
" graphics  Annotation Attributes
syn keyword mupadIdentifier	Footer	Header	FooterAlignment	HeaderAlignment
syn keyword mupadIdentifier	HorizontalAlignment	TitleAlignment	VerticalAlignment
syn keyword mupadIdentifier	Legend	LegendEntry	LegendText
syn keyword mupadIdentifier	LegendAlignment	LegendPlacement	LegendVisible
syn keyword mupadIdentifier	Title	Titles
syn keyword mupadIdentifier	TitlePosition	TitlePositionX	TitlePositionY	TitlePositionZ
" graphics  Layout Attributes
syn keyword mupadIdentifier	Bottom	Left	Height	Width	Layout	Rows	Columns
syn keyword mupadIdentifier	Margin	BottomMargin	TopMargin	LeftMargin	RightMargin
syn keyword mupadIdentifier	OutputUnits	Spacing
" graphics  Calculation Attributes
syn keyword mupadIdentifier	AdaptiveMesh	DiscontinuitySearch	Mesh	SubMesh
syn keyword mupadIdentifier	UMesh	USubMesh	VMesh	VSubMesh
syn keyword mupadIdentifier	XMesh	XSubMesh	YMesh	YSubMesh	Zmesh
" graphics  Camera and Lights Attributes
syn keyword mupadIdentifier	CameraCoordinates	CameraDirection
syn keyword mupadIdentifier	CameraDirectionX	CameraDirectionY	CameraDirectionZ
syn keyword mupadIdentifier	FocalPoint	FocalPointX	FocalPointY	FocalPointZ
syn keyword mupadIdentifier	LightColor	Lighting	LightIntensity	OrthogonalProjection
syn keyword mupadIdentifier	SpotAngle	ViewingAngle
syn keyword mupadIdentifier	Target	TargetX	TargetY	TargetZ
" graphics  Presentation Style and Fonts Attributes
syn keyword mupadIdentifier	ArrowLength
syn keyword mupadIdentifier	AxesTitleFont	FooterFont	HeaderFont	LegendFont
syn keyword mupadIdentifier	TextFont	TicksLabelFont	TitleFont
syn keyword mupadIdentifier	BackgroundColor	BackgroundColor2	BackgroundStyle
syn keyword mupadIdentifier	BackgroundTransparent	Billboarding	BorderColor	BorderWidth
syn keyword mupadIdentifier	BoxCenters	BoxWidths	DrawMode Gap	XGap	YGap
syn keyword mupadIdentifier	Notched	NotchWidth	Scaling	YXRatio	ZXRatio
syn keyword mupadIdentifier	VerticalAsymptotesVisible	VerticalAsymptotesStyle
syn keyword mupadIdentifier	VerticalAsymptotesColor	VerticalAsymptotesWidth
" graphics  Line Style Attributes
syn keyword mupadIdentifier	LineColor	LineColor2	LineColorType	LineStyle
syn keyword mupadIdentifier	LinesVisible	ULinesVisible	VLinesVisible	XLinesVisible
syn keyword mupadIdentifier	YLinesVisible	LineWidth	MeshVisible
" graphics  Point Style Attributes
syn keyword mupadIdentifier	PointColor	PointSize	PointStyle	PointsVisible
" graphics  Surface Style Attributes
syn keyword mupadIdentifier	BarStyle	Shadows	Color	Colors	FillColor	FillColor2
syn keyword mupadIdentifier	FillColorTrue	FillColorFalse	FillColorUnknown	FillColorType
syn keyword mupadIdentifier	Filled	FillPattern	FillPatterns	FillStyle
syn keyword mupadIdentifier	InterpolationStyle	Shading	UseNormals
" graphics  Arrow Style Attributes
syn keyword mupadIdentifier	TipAngle	TipLength	TipStyle	TubeDiameter
syn keyword mupadIdentifier	Tubular
" graphics  meta-documentation Attributes
syn keyword mupadIdentifier	objectGroupsListed


hi def link mupadComment		Comment
hi def link mupadString		String
hi def link mupadOperator		Operator
hi def link mupadSpecial		Special
hi def link mupadStatement		Statement
hi def link mupadUnderlined	Underlined
hi def link mupadConditional	Conditional
hi def link mupadRepeat		Repeat
hi def link mupadFunction		Function
hi def link mupadType		Type
hi def link mupadDefine		Define
hi def link mupadIdentifier	Identifier


" TODO  More comprehensive listing.
PK�j�Z���vim80/syntax/ch.vimnu�[���" Vim syntax file
" Language:     Ch
" Maintainer:   SoftIntegration, Inc. <info@softintegration.com>
" URL:		http://www.softintegration.com/download/vim/syntax/ch.vim
" Last change:	2004 Sep 01
"		Created based on cpp.vim
"
" Ch is a C/C++ interpreter with many high level extensions
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C syntax to start with
runtime! syntax/c.vim
unlet b:current_syntax

" Ch extentions

syn keyword	chStatement	new delete this foreach
syn keyword	chAccess	public private
syn keyword	chStorageClass	__declspec(global) __declspec(local)
syn keyword	chStructure	class
syn keyword	chType		string_t array

" Default highlighting

hi def link chAccess		chStatement
hi def link chExceptions		Exception
hi def link chStatement		Statement
hi def link chType			Type
hi def link chStructure		Structure

let b:current_syntax = "ch"

" vim: ts=8
PK�j�ZX�1�$$vim80/syntax/moo.vimnu�[���" Vim syntax file
" Language:	MOO
" Maintainer:	Timo Frenay <timo@frenay.net>
" Last Change:	2001 Oct 06
" Note:		Requires Vim 6.0 or above

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Initializations
syn case ignore

" C-style comments
syn match mooUncommentedError display ~\*/~
syn match mooCStyleCommentError display ~/\ze\*~ contained
syn region mooCStyleComment matchgroup=mooComment start=~/\*~ end=~\*/~ contains=mooCStyleCommentError

" Statements
if exists("moo_extended_cstyle_comments")
  syn match mooIdentifier display ~\%(\%(/\*.\{-}\*/\s*\)*\)\@>\<\h\w*\>~ contained transparent contains=mooCStyleComment,@mooKeyword,mooType,mooVariable
else
  syn match mooIdentifier display ~\<\h\w*\>~ contained transparent contains=@mooKeyword,mooType,mooVariable
endif
syn keyword mooStatement break continue else elseif endfor endfork endif endtry endwhile finally for if try
syn keyword mooStatement except fork while nextgroup=mooIdentifier skipwhite
syn keyword mooStatement return nextgroup=mooString skipwhite

" Operators
syn keyword mooOperatorIn in

" Error constants
syn keyword mooAny ANY
syn keyword mooErrorConstant E_ARGS E_INVARG E_DIV E_FLOAT E_INVIND E_MAXREC E_NACC E_NONE E_PERM E_PROPNF E_QUOTA E_RANGE E_RECMOVE E_TYPE E_VARNF E_VERBNF

" Builtin variables
syn match mooType display ~\<\%(ERR\|FLOAT\|INT\|LIST\|NUM\|OBJ\|STR\)\>~
syn match mooVariable display ~\<\%(args\%(tr\)\=\|caller\|dobj\%(str\)\=\|iobj\%(str\)\=\|player\|prepstr\|this\|verb\)\>~

" Strings
syn match mooStringError display ~[^\t -[\]-~]~ contained
syn match mooStringSpecialChar display ~\\["\\]~ contained
if !exists("moo_no_regexp")
  " Regular expressions
  syn match mooRegexp display ~%%~ contained containedin=mooString,mooRegexpParentheses transparent contains=NONE
  syn region mooRegexpParentheses display matchgroup=mooRegexpOr start=~%(~ skip=~%%~ end=~%)~ contained containedin=mooString,mooRegexpParentheses transparent oneline
  syn match mooRegexpOr display ~%|~ contained containedin=mooString,mooRegexpParentheses
endif
if !exists("moo_no_pronoun_sub")
  " Pronoun substitutions
  syn match mooPronounSub display ~%%~ contained containedin=mooString transparent contains=NONE
  syn match mooPronounSub display ~%[#dilnopqrst]~ contained containedin=mooString
  syn match mooPronounSub display ~%\[#[dilnt]\]~ contained containedin=mooString
  syn match mooPronounSub display ~%(\h\w*)~ contained containedin=mooString
  syn match mooPronounSub display ~%\[[dilnt]\h\w*\]~ contained containedin=mooString
  syn match mooPronounSub display ~%<\%([dilnt]:\)\=\a\+>~ contained containedin=mooString
endif
if exists("moo_unmatched_quotes")
  syn region mooString matchgroup=mooStringError start=~"~ end=~$~ contains=@mooStringContents keepend
  syn region mooString start=~"~ skip=~\\.~ end=~"~ contains=@mooStringContents oneline keepend
else
  syn region mooString start=~"~ skip=~\\.~ end=~"\|$~ contains=@mooStringContents keepend
endif

" Numbers and object numbers
syn match mooNumber display ~\%(\%(\<\d\+\)\=\.\d\+\|\<\d\+\)\%(e[+\-]\=\d\+\)\=\>~
syn match mooObject display ~#-\=\d\+\>~

" Properties and verbs
if exists("moo_builtin_properties")
  "Builtin properties
  syn keyword mooBuiltinProperty contents f location name owner programmer r w wizard contained containedin=mooPropRef
endif
if exists("moo_extended_cstyle_comments")
  syn match mooPropRef display ~\.\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\h\w*\>~ transparent contains=mooCStyleComment,@mooKeyword
  syn match mooVerbRef display ~:\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\h\w*\>~ transparent contains=mooCStyleComment,@mooKeyword
else
  syn match mooPropRef display ~\.\s*\h\w*\>~ transparent contains=@mooKeyword
  syn match mooVerbRef display ~:\s*\h\w*\>~ transparent contains=@mooKeyword
endif

" Builtin functions, core properties and core verbs
if exists("moo_extended_cstyle_comments")
  syn match mooBuiltinFunction display ~\<\h\w*\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\ze(~ contains=mooCStyleComment
  syn match mooCorePropOrVerb display ~\$\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\%(in\>\)\@!\h\w*\>~ contains=mooCStyleComment,@mooKeyword
else
  syn match mooBuiltinFunction display ~\<\h\w*\s*\ze(~ contains=NONE
  syn match mooCorePropOrVerb display ~\$\s*\%(in\>\)\@!\h\w*\>~ contains=@mooKeyword
endif
if exists("moo_unknown_builtin_functions")
  syn match mooUnknownBuiltinFunction ~\<\h\w*\>~ contained containedin=mooBuiltinFunction contains=mooKnownBuiltinFunction
  " Known builtin functions as of version 1.8.1 of the server
  " Add your own extensions to this group if you like
  syn keyword mooKnownBuiltinFunction abs acos add_property add_verb asin atan binary_hash boot_player buffered_output_length callers caller_perms call_function ceil children chparent clear_property connected_players connected_seconds connection_name connection_option connection_options cos cosh create crypt ctime db_disk_size decode_binary delete_property delete_verb disassemble dump_database encode_binary equal eval exp floatstr floor flush_input force_input function_info idle_seconds index is_clear_property is_member is_player kill_task length listappend listdelete listen listeners listinsert listset log log10 match max max_object memory_usage min move notify object_bytes open_network_connection output_delimiters parent pass players properties property_info queued_tasks queue_info raise random read recycle renumber reset_max_object resume rindex rmatch seconds_left server_log server_version setadd setremove set_connection_option set_player_flag set_property_info set_task_perms set_verb_args set_verb_code set_verb_info shutdown sin sinh sqrt strcmp string_hash strsub substitute suspend tan tanh task_id task_stack ticks_left time tofloat toint toliteral tonum toobj tostr trunc typeof unlisten valid value_bytes value_hash verbs verb_args verb_code verb_info contained
endif

"�Enclosed expressions
syn match mooUnenclosedError display ~[')\]|}]~
syn match mooParenthesesError display ~[';\]|}]~ contained
syn region mooParentheses start=~(~ end=~)~ transparent contains=@mooEnclosedContents,mooParenthesesError
syn match mooBracketsError display ~[');|}]~ contained
syn region mooBrackets start=~\[~ end=~\]~ transparent contains=@mooEnclosedContents,mooBracketsError
syn match mooBracesError display ~[');\]|]~ contained
syn region mooBraces start=~{~ end=~}~ transparent contains=@mooEnclosedContents,mooBracesError
syn match mooQuestionError display ~[');\]}]~ contained
syn region mooQuestion start=~?~ end=~|~ transparent contains=@mooEnclosedContents,mooQuestionError
syn match mooCatchError display ~[);\]|}]~ contained
syn region mooCatch matchgroup=mooExclamation start=~`~ end=~'~ transparent contains=@mooEnclosedContents,mooCatchError,mooExclamation
if exists("moo_extended_cstyle_comments")
  syn match mooExclamation display ~[\t !%&(*+,\-/<=>?@[^`{|]\@<!\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>!=\@!~ contained contains=mooCStyleComment
else
  syn match mooExclamation display ~[\t !%&(*+,\-/<=>?@[^`{|]\@<!\s*!=\@!~ contained
endif

" Comments
syn match mooCommentSpecialChar display ~\\["\\]~ contained transparent contains=NONE
syn match mooComment ~[\t !%&*+,\-/<=>?@^|]\@<!\s*"\([^\"]\|\\.\)*"\s*;~ contains=mooStringError,mooCommentSpecialChar

" Non-code
syn region mooNonCode start=~^\s*@\<~ end=~$~
syn match mooNonCode display ~^\.$~
syn match mooNonCode display ~^\s*\d\+:~he=e-1

" Overriding matches
syn match mooRangeOperator display ~\.\.~ transparent contains=NONE
syn match mooOrOperator display ~||~ transparent contains=NONE
if exists("moo_extended_cstyle_comments")
  syn match mooScattering ~[,{]\@<=\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>?~ transparent contains=mooCStyleComment
else
  syn match mooScattering ~[,{]\@<=\s*?~ transparent contains=NONE
endif

" Clusters
syn cluster mooKeyword contains=mooStatement,mooOperatorIn,mooAny,mooErrorConstant
syn cluster mooStringContents contains=mooStringError,mooStringSpecialChar
syn cluster mooEnclosedContents contains=TOP,mooUnenclosedError,mooComment,mooNonCode

" Define the default highlighting.
hi def link mooUncommentedError Error
hi def link mooCStyleCommentError Error
hi def link mooCStyleComment Comment
hi def link mooStatement Statement
hi def link mooOperatorIn Operator
hi def link mooAny Constant " link this to Keyword if you want
hi def link mooErrorConstant Constant
hi def link mooType Type
hi def link mooVariable Type
hi def link mooStringError Error
hi def link mooStringSpecialChar SpecialChar
hi def link mooRegexpOr SpecialChar
hi def link mooPronounSub SpecialChar
hi def link mooString String
hi def link mooNumber Number
hi def link mooObject Number
hi def link mooBuiltinProperty Type
hi def link mooBuiltinFunction Function
hi def link mooUnknownBuiltinFunction Error
hi def link mooKnownBuiltinFunction Function
hi def link mooCorePropOrVerb Identifier
hi def link mooUnenclosedError Error
hi def link mooParenthesesError Error
hi def link mooBracketsError Error
hi def link mooBracesError Error
hi def link mooQuestionError Error
hi def link mooCatchError Error
hi def link mooExclamation Exception
hi def link mooComment Comment
hi def link mooNonCode PreProc

let b:current_syntax = "moo"

" vim: ts=8
PK�j�ZW�ӷ��vim80/syntax/euphoria3.vimnu�[���" Vim syntax file
" Language:	Euphoria 3.1.1 - supports DOS - (http://www.rapideuphoria.com/)
" Maintainer:	Shian Lee  
" Last Change:	2014 Feb 24 (for Vim 7.4)
" Remark:       Euphoria has two syntax files, euphoria3.vim and euphoria4.vim; 
"               For details see :help ft-euphoria-syntax

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Reset compatible-options to Vim default value, just in case: 
let s:save_cpo = &cpo
set cpo&vim

" Should suffice for very long expressions:
syn sync lines=40

" Euphoria is a case-sensitive language (with only 4 builtin types):
syntax case match 

" Keywords/Builtins for Debug - from $EUDIR/bin/keywords.e:
syn keyword euphoria3Debug	with without trace profile  
syn keyword euphoria3Debug	profile_time warning type_check 

" Keywords (Statments) - from $EUDIR/bin/keywords.e:
syn keyword euphoria3Keyword	if end then procedure else for return 	
syn keyword euphoria3Keyword	do elsif while type constant to and or
syn keyword euphoria3Keyword	exit function global by not include
syn keyword euphoria3Keyword	xor                      

" Builtins (Identifiers) - from $EUDIR/bin/keywords.e:
syn keyword euphoria3Builtin	length puts integer sequence position object
syn keyword euphoria3Builtin	append prepend print printf 
syn keyword euphoria3Builtin	clear_screen floor getc gets get_key
syn keyword euphoria3Builtin	rand repeat atom compare find match
syn keyword euphoria3Builtin	time command_line open close getenv
syn keyword euphoria3Builtin	sqrt sin cos tan log system date remainder
syn keyword euphoria3Builtin	power machine_func machine_proc abort peek poke 
syn keyword euphoria3Builtin	call sprintf arctan and_bits or_bits xor_bits
syn keyword euphoria3Builtin	not_bits pixel get_pixel mem_copy mem_set
syn keyword euphoria3Builtin	c_proc c_func routine_id call_proc call_func 
syn keyword euphoria3Builtin	poke4 peek4s peek4u equal system_exec
syn keyword euphoria3Builtin	platform task_create task_schedule task_yield
syn keyword euphoria3Builtin	task_self task_suspend task_list
syn keyword euphoria3Builtin	task_status task_clock_stop task_clock_start 
syn keyword euphoria3Builtin	find_from match_from  
" Builtins (Identifiers) shortcuts for length() and print():
syn match   euphoria3Builtin	"\$" 
syn match   euphoria3Builtin	"?"

" Library Identifiers (Function) - from $EUDIR/doc/library.doc:
syn keyword euphoria3Library	reverse sort custom_sort lower upper
syn keyword euphoria3Library	wildcard_match wildcard_file arcsin 
syn keyword euphoria3Library	arccos PI flush lock_file unlock_file
syn keyword euphoria3Library	pretty_print sprint get_bytes prompt_string 
syn keyword euphoria3Library	wait_key get prompt_number value seek where 
syn keyword euphoria3Library	current_dir chdir dir walk_dir allow_break 
syn keyword euphoria3Library	check_break get_mouse mouse_events mouse_pointer
syn keyword euphoria3Library	tick_rate sleep get_position graphics_mode 
syn keyword euphoria3Library	video_config scroll wrap text_color bk_color 
syn keyword euphoria3Library	palette all_palette get_all_palette read_bitmap 
syn keyword euphoria3Library	save_bitmap get_active_page set_active_page 
syn keyword euphoria3Library	get_display_page set_display_page sound
syn keyword euphoria3Library	cursor text_rows get_screen_char put_screen_char
syn keyword euphoria3Library	save_text_image display_text_image draw_line 
syn keyword euphoria3Library	polygon ellipse save_screen save_image display_image 
syn keyword euphoria3Library	dos_interrupt allocate free allocate_low free_low 
syn keyword euphoria3Library	allocate_string register_block unregister_block 
syn keyword euphoria3Library	get_vector set_vector lock_memory int_to_bytes 
syn keyword euphoria3Library	bytes_to_int int_to_bits bits_to_int atom_to_float64 
syn keyword euphoria3Library	atom_to_float32 float64_to_atom float32_to_atom 
syn keyword euphoria3Library	set_rand use_vesa crash_file crash_message
syn keyword euphoria3Library	crash_routine open_dll define_c_proc define_c_func
syn keyword euphoria3Library	define_c_var call_back message_box free_console 
syn keyword euphoria3Library	instance

" Library Identifiers (Function) - from $EUDIR/doc/database.doc:
syn keyword euphoria3Library 	db_create db_open db_select db_close db_create_table
syn keyword euphoria3Library 	db_select_table db_rename_table db_delete_table
syn keyword euphoria3Library 	db_table_list db_table_size db_find_key db_record_key
syn keyword euphoria3Library 	db_record_data db_insert db_delete_record 
syn keyword euphoria3Library	db_replace_data	db_compress db_dump db_fatal_id

" Linux shell comment (#!...):
syn match   euphoria3Comment	"\%^#!.*$"
" Comment on one line:
syn region  euphoria3Comment 	start=/--/ end=/$/

" Delimiters and brackets:
syn match   euphoria3Delimit	"[([\])]"
syn match   euphoria3Delimit	"\.\."
syn match   euphoria3Operator	"[{}]"

" Character constant:
syn region  euphoria3Char	start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline

" String constant: 
syn region  euphoria3String	start=/"/ skip=/\\"\|\\\\/ end=/"/ oneline

" Hexadecimal integer:
syn match   euphoria3Number 	"#[0-9A-F]\+\>"

" Integer/Floating point without a dot:
syn match   euphoria3Number	"\<\d\+\>"
" Floating point with dot:
syn match   euphoria3Number	"\<\d\+\.\d*\>"
" Floating point starting with a dot:
syn match   euphoria3Number	"\.\d\+\>"
" Boolean constants: 
syn keyword euphoria3Boolean	true TRUE false FALSE

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet:
hi def link euphoria3Comment	Comment
hi def link euphoria3String	String
hi def link euphoria3Char	Character
hi def link euphoria3Number	Number	
hi def link euphoria3Boolean	Boolean	
hi def link euphoria3Builtin	Identifier	
hi def link euphoria3Library 	Function	
hi def link euphoria3Keyword	Statement	
hi def link euphoria3Operator	Statement	
hi def link euphoria3Debug	Debug	
hi def link euphoria3Delimit	Delimiter	
 	
let b:current_syntax = "euphoria3"

" Restore current compatible-options: 
let &cpo = s:save_cpo
unlet s:save_cpo

PK�j�Z�Y��{5{5vim80/syntax/neomuttrc.vimnu�[���" Vim syntax file
" Language:	NeoMutt setup files
" Maintainer:	Guillaume Brogi <gui-gui@netcourrier.com>
" Last Change:	2018-03-25
" Original version based on syntax/muttrc.vim

" This file covers NeoMutt 2018-03-23

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Set the keyword characters
setlocal isk=@,48-57,_,-

" handling optional variables
syntax match muttrcComment		"^# .*$" contains=@Spell
syntax match muttrcComment		"^#[^ ].*$"
syntax match muttrcComment		"^#$"
syntax match muttrcComment		"[^\\]#.*$"lc=1

" Escape sequences (back-tick and pipe goes here too)
syntax match muttrcEscape		+\\[#tnr"'Cc ]+
syntax match muttrcEscape		+[`|]+
syntax match muttrcEscape		+\\$+

" The variables takes the following arguments
"syn match  muttrcString		contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
syntax region muttrcString		contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
syntax region muttrcString		contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
syntax match muttrcStringNL	contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL

syntax region muttrcShellString	matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand,muttrcVarDeprecatedStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad

syntax match  muttrcRXChars	contained /[^\\][][.*?+]\+/hs=s+1
syntax match  muttrcRXChars	contained /[][|()][.*?+]*/
syntax match  muttrcRXChars	contained /['"]^/ms=s+1
syntax match  muttrcRXChars	contained /$['"]/me=e-1
syntax match  muttrcRXChars	contained /\\/
" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
syntax region muttrcRXString	contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
syntax region muttrcRXString	contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
syntax region muttrcRXString	contained skipwhite start=+[^ 	"'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
" For some reason, skip refuses to match backslashes here...
syntax region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
syntax region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
syntax region muttrcRXString2	contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
syntax region muttrcRXString2	contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars

" these must be kept synchronized with muttrcRXString, but are intended for
" muttrcRXHooks
syntax region muttrcRXHookString	contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syntax region muttrcRXHookString	contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syntax region muttrcRXHookString	contained keepend skipwhite start=+[^ 	"'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syntax region muttrcRXHookString	contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syntax region muttrcRXHookString	contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syntax match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL

" these are exclusively for args lists (e.g. -rx pat pat pat ...)
syntax region muttrcRXPat		contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
syntax region muttrcRXPat		contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
syntax match muttrcRXPat		contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
syntax match muttrcRXDef 		contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat

syntax match muttrcSpecial		+\(['"]\)!\1+

syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" Now catch some email addresses and headers (purified version from mail.vim)
syntax match muttrcEmail		"[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
syntax match muttrcHeader		"\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="

syntax match   muttrcKeySpecial	contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
syntax match   muttrcKey		contained "\S\+"			contains=muttrcKeySpecial,muttrcKeyName
syntax region  muttrcKey		contained start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=muttrcKeySpecial,muttrcKeyName
syntax region  muttrcKey		contained start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=muttrcKeySpecial,muttrcKeyName
syntax match   muttrcKeyName	contained "\\[trne]"
syntax match   muttrcKeyName	contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|Next\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
syntax match   muttrcKeyName	contained "\c<F\d\+>"

syntax match muttrcFormatErrors contained /%./

syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/
syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/

syntax region muttrcIndexFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcIndexFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcGroupIndexFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcGroupIndexFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcSidebarFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcSidebarFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcAliasFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcAliasFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcAttachFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcAttachFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcComposeFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcComposeFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcFolderFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcFolderFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcMixFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcMixFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcPGPFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcPGPFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcPGPCmdFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcPGPCmdFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcStatusFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcStatusFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcPGPGetKeysFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcPGPGetKeysFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcSmimeFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcSmimeFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" Format escapes and conditionals
syntax match muttrcFormatConditionals2 contained /[^?]*?/
function! s:escapesConditionals(baseName, sequence, alignment, secondary)
	exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/'
	if a:alignment
		exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%[>|*]./'
	endif
	if a:secondary
		exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/ nextgroup=muttrcFormatConditionals2'
	else
		exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/'
	endif
endfunction

" CHECKED 2018-04-18
" Ref: index_format_str() in hdrline.c
call s:escapesConditionals('IndexFormat', '[AaBbCcDdEeFfgHIiJKLlMmNnOPqRrSsTtuvWXxYyZz(<[{]\|G[a-zA-Z]\+', 1, 1)
" Ref: alias_format_str() in addrbook.c
syntax match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
" Ref: group_index_format_str() in browser.c
call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1)
" Ref: sidebar_format_str() in sidebar.c
call s:escapesConditionals('SidebarFormat', '[BdFLNnSt!]', 1, 1)
" Ref: query_format_str() in query.c
call s:escapesConditionals('QueryFormat', '[acent]', 0, 1)
" Ref: attach_format_str() in recvattach.c
call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1)
" Ref: compose_format_str() in compose.c
syntax match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
syntax match muttrcComposeFormatEscapes contained /%[>|*]./
" Ref: folder_format_str() in browser.c
call s:escapesConditionals('FolderFormat', '[CDdFfglmNnstu]', 1, 0)
" Ref: mix_format_str() in remailer.c
call s:escapesConditionals('MixFormat', '[acns]', 0, 0)
" Ref: status_format_str() in status.c
call s:escapesConditionals('StatusFormat', '[bdFfhLlMmnoPpRrSstuVv]', 1, 1)
" Ref: fmt_smime_command() in ncrypt/smime.c
call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1)
" Ref: crypt_format_str() in ncrypt/crypt_gpgme.c
" Ref: pgp_entry_fmt() in ncrypt/pgpkey.c
" Note: crypt_format_str() supports 'p', but pgp_entry_fmt() does not
call s:escapesConditionals('PGPFormat', '[acfklnptu[]', 0, 0)
" Ref: fmt_pgp_command() ncrypt/pgpinvoke.c
call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1)

" This matches the documentation, but directly contradicts the code
" (according to the code, this should be identical to the muttrcPGPCmdFormatEscapes
syntax match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acfklntu[%]/

syntax region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes
syntax region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
syntax region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes
syntax region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes
syntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes

syntax match muttrcVarEqualsAliasFmt      contained skipwhite "=" nextgroup=muttrcAliasFormatStr
syntax match muttrcVarEqualsAttachFmt     contained skipwhite "=" nextgroup=muttrcAttachFormatStr
syntax match muttrcVarEqualsComposeFmt    contained skipwhite "=" nextgroup=muttrcComposeFormatStr
syntax match muttrcVarEqualsFolderFmt     contained skipwhite "=" nextgroup=muttrcFolderFormatStr
syntax match muttrcVarEqualsGrpIdxFmt     contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr
syntax match muttrcVarEqualsIdxFmt        contained skipwhite "=" nextgroup=muttrcIndexFormatStr
syntax match muttrcVarEqualsMixFmt        contained skipwhite "=" nextgroup=muttrcMixFormatStr
syntax match muttrcVarEqualsPGPCmdFmt     contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
syntax match muttrcVarEqualsPGPFmt        contained skipwhite "=" nextgroup=muttrcPGPFormatStr
syntax match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
syntax match muttrcVarEqualsQueryFmt      contained skipwhite "=" nextgroup=muttrcQueryFormatStr
syntax match muttrcVarEqualsSdbFmt        contained skipwhite "=" nextgroup=muttrcSidebarFormatStr
syntax match muttrcVarEqualsSmimeFmt      contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
syntax match muttrcVarEqualsStatusFmt     contained skipwhite "=" nextgroup=muttrcStatusFormatStr
syntax match muttrcVarEqualsStrftimeFmt   contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr

syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" CHECKED 2018-04-18
" List of the different screens in mutt
syntax keyword muttrcMenu contained alias attach browser compose editor generic index key_select_pgp key_select_smime mix pager pgp postpone query smime
syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu
syntax match muttrcMenuCommas /,/ contained

" CHECKED 2018-04-18
" List of hooks in Commands in init.h
syntax keyword muttrcHooks contained skipwhite
			\ account-hook append-hook close-hook crypt-hook fcc-hook fcc-save-hook
			\ folder-hook iconv-hook mbox-hook message-hook open-hook pgp-hook
			\ reply-hook save-hook send-hook send2-hook
syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand

syntax region muttrcSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
syntax region muttrcSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL

syntax region muttrcNoSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
syntax region muttrcNoSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern

syntax match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
syntax match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
syntax match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag

syntax match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"

syntax keyword muttrcAsterisk	contained *
syntax keyword muttrcListsKeyword	lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
syntax keyword muttrcListsKeyword	unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment

syntax keyword muttrcSubscribeKeyword	subscribe nextgroup=muttrcGroupDef,muttrcComment
syntax keyword muttrcSubscribeKeyword	unsubscribe nextgroup=muttrcAsterisk,muttrcComment

syntax keyword muttrcAlternateKeyword contained alternates unalternates
syntax region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment

" muttrcVariable includes a prefix because partial strings are considered
" valid.
syntax match muttrcVariable	contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
syntax match muttrcVariableInner	contained "\$[a-zA-Z_-]\+"
syntax match muttrcEscapedVariable	contained "\\\$[a-zA-Z_-]\+"

syntax match muttrcBadAction	contained "[^<>]\+" contains=muttrcEmail
syntax match muttrcAction		contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName

" First, functions that take regular expressions:
syntax match  muttrcRXHookNot	contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
syntax match  muttrcRXHooks	/\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL

" Now, functions that take patterns
syntax match muttrcPatHookNot	contained /!\s*/ skipwhite nextgroup=muttrcPattern
syntax match muttrcPatHooks	/\<\%(charset\|iconv\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
syntax match muttrcPatHooks	/\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-save\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern

syntax match muttrcBindFunction	contained /\S\+\>/ skipwhite contains=muttrcFunction
syntax match muttrcBindFunctionNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
syntax match muttrcBindKey		contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
syntax match muttrcBindKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
syntax match muttrcBindMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
syntax match muttrcBindMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL

syntax region muttrcMacroDescr	contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
syntax region muttrcMacroDescr	contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
syntax region muttrcMacroDescr	contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
syntax match muttrcMacroDescrNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syntax region muttrcMacroBody	contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syntax region muttrcMacroBody matchgroup=Type contained skipwhite start=+'+ms=e skip=+\\'+ end=+'\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syntax region muttrcMacroBody matchgroup=Type contained skipwhite start=+"+ms=e skip=+\\"+ end=+"\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syntax match muttrcMacroBodyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
syntax match muttrcMacroKey	contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
syntax match muttrcMacroKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
syntax match muttrcMacroMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
syntax match muttrcMacroMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL

syntax match muttrcAddrContent	contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
syntax region muttrcAddrContent	contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
syntax region muttrcAddrContent	contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
syntax match muttrcAddrDef 	contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent

syntax match muttrcGroupFlag	contained "-group"
syntax region muttrcGroupDef	contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace

syntax keyword muttrcGroupKeyword	contained group ungroup
syntax region muttrcGroupLine	keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment

syntax match muttrcAliasGroupName	contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
syntax match muttrcAliasGroupDefNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
syntax match muttrcAliasGroupDef	contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
syntax match muttrcAliasComma	contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
syntax match muttrcAliasEmail	contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
syntax match muttrcAliasEncEmail	contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
syntax match muttrcAliasEncEmailNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
syntax match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
syntax region muttrcAliasName	contained matchgroup=Type start=/(/ end=/)/ skipwhite
syntax match muttrcAliasNameNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
syntax match muttrcAliasENNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
syntax match muttrcAliasKey	contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
syntax match muttrcAliasNL		contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL

syntax match muttrcUnAliasKey	contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
syntax match muttrcUnAliasNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL

syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
syntax match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable
syntax match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
syntax match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
syntax match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
syntax region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
syntax region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
syntax region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
syntax region muttrcSimplePatString contained keepend start=+[^ 	"']+ skip=+\\ + end=+\s+re=e-1
syntax region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
syntax region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
syntax region muttrcSimplePatRXContainer contained keepend start=+[^ 	"']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
syntax match muttrcSimplePatMetas contained /[(|)]/

syntax match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
syntax match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
syntax region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
syntax region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
syntax region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
syntax match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
syntax match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
" Keep muttrcPattern and muttrcOptPattern synchronized
syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
syntax region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
syntax match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
syntax match muttrcPattern contained skipwhite /[.]/
syntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
syntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas

" Colour definitions takes object, foreground and background arguments (regexps excluded).
syntax match muttrcColorMatchCount	contained "[0-9]\+"
syntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
syntax region muttrcColorRXPat	contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
syntax region muttrcColorRXPat	contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
syntax keyword muttrcColor	contained black blue cyan default green magenta red white yellow
syntax keyword muttrcColor	contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
syntax match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,3}\>"
" Now for the structure of the color line
syntax match muttrcColorRXNL	contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
syntax match muttrcColorBG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
syntax match muttrcColorBGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
syntax match muttrcColorFG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
syntax match muttrcColorFGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
syntax match muttrcColorContext 	contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL
syntax match muttrcColorNL 	contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
syntax match muttrcColorKeyword	contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
" And now color's brother:
syntax region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syntax region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syntax match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syntax match muttrcUnColorPatNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syntax match muttrcUnColorAll	contained skipwhite /[*]/
syntax match muttrcUnColorAPNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
syntax match muttrcUnColorIndex	contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
syntax match muttrcUnColorIndexNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
syntax match muttrcUnColorKeyword	contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
syntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace

syntax keyword muttrcMonoAttrib	contained bold none normal reverse standout underline
syntax keyword muttrcMono	contained mono		skipwhite nextgroup=muttrcColorField,muttrcColorCompose
syntax match   muttrcMonoLine	"^\s*mono\s\+\S\+"	skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono

" CHECKED 2018-04-18
" List of fields in Fields in color.c
syntax keyword muttrcColorField skipwhite contained
			\ attachment attach_headers body bold error hdrdefault header index
			\ index_author index_collapsed index_date index_flags index_label
			\ index_number index_size index_subject index_tag index_tags indicator
			\ markers message normal progress prompt quoted search sidebar_divider
			\ sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new
			\ sidebar_ordinary sidebar_spoolfile signature status tilde tree underline
			\ nextgroup=muttrcColor
syntax match   muttrcColorField	contained "\<quoted\d\=\>"

syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField

" CHECKED 2018-04-18
" List of fields in ComposeFields in color.c
syntax keyword muttrcColorComposeField skipwhite contained
			\ header security_both security_encrypt security_none security_sign
			\ nextgroup=muttrcColorFG,muttrcColorFGNL
syntax region muttrcColorLine keepend start=/^\s*color\s\+/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace


function! s:boolQuadGen(type, vars, deprecated)
	let l:novars = copy(a:vars)
	call map(l:novars, '"no" . v:val')
	let l:invvars = copy(a:vars)
	call map(l:invvars, '"inv" . v:val')

	let l:orig_type = copy(a:type)
	if a:deprecated
		let l:type = 'Deprecated' . a:type
	else
		let l:type = a:type
	endif

	exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
	exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
	exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
endfunction

" CHECKED 2018-04-18
" List of DT_BOOL in MuttVars in init.h
call s:boolQuadGen('Bool', [
			\ 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'askbcc',
			\ 'askcc', 'ask_follow_up', 'ask_x_comment_to', 'attach_split', 'autoedit',
			\ 'auto_tag', 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly',
			\ 'change_folder_next', 'check_mbox_size', 'check_new', 'collapse_all',
			\ 'collapse_flagged', 'collapse_unread', 'confirmappend', 'confirmcreate',
			\ 'crypt_autoencrypt', 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime',
			\ 'crypt_confirmhook', 'crypt_opportunistic_encrypt', 'crypt_replyencrypt',
			\ 'crypt_replysign', 'crypt_replysignencrypted', 'crypt_timestamp',
			\ 'crypt_use_gpgme', 'crypt_use_pka', 'delete_untag', 'digest_collapse',
			\ 'duplicate_threads', 'edit_headers', 'encode_from', 'fast_reply',
			\ 'fcc_clear', 'flag_safe', 'followup_to', 'force_name', 'forward_decode',
			\ 'forward_decrypt', 'forward_quote', 'forward_references', 'hdrs',
			\ 'header', 'header_cache_compress', 'header_color_partial', 'help',
			\ 'hidden_host', 'hide_limited', 'hide_missing', 'hide_thread_subject',
			\ 'hide_top_limited', 'hide_top_missing', 'history_remove_dups',
			\ 'honor_disposition', 'idn_decode', 'idn_encode', 'ignore_list_reply_to',
			\ 'imap_check_subscribed', 'imap_idle', 'imap_list_subscribed',
			\ 'imap_passive', 'imap_peek', 'imap_servernoise', 'implicit_autoview',
			\ 'include_onlyfirst', 'keep_flagged', 'mailcap_sanitize',
			\ 'maildir_check_cur', 'maildir_header_cache_verify', 'maildir_trash',
			\ 'mail_check_recent', 'mail_check_stats', 'markers', 'mark_old',
			\ 'menu_move_off', 'menu_scroll', 'message_cache_clean', 'meta_key',
			\ 'metoo', 'mh_purge', 'mime_forward_decode', 'mime_subject',
			\ 'mime_type_query_first', 'narrow_tree', 'nm_record', 'nntp_listgroup',
			\ 'nntp_load_description', 'pager_stop', 'pgp_autoinline',
			\ 'pgp_auto_decode', 'pgp_check_exit', 'pgp_ignore_subkeys', 'pgp_long_ids',
			\ 'pgp_replyinline', 'pgp_retainable_sigs', 'pgp_self_encrypt',
			\ 'pgp_show_unusable', 'pgp_strict_enc', 'pgp_use_gpg_agent', 'pipe_decode',
			\ 'pipe_split', 'pop_auth_try_all', 'pop_last', 'postpone_encrypt',
			\ 'print_decode', 'print_split', 'prompt_after', 'read_only',
			\ 'reflow_space_quotes', 'reflow_text', 'reply_self', 'reply_with_xorig',
			\ 'resolve', 'resume_draft_files', 'resume_edited_draft_files',
			\ 'reverse_alias', 'reverse_name', 'reverse_realname', 'rfc2047_parameters',
			\ 'save_address', 'save_empty', 'save_name', 'save_unsubscribed', 'score',
			\ 'show_new_news', 'show_only_unread', 'sidebar_folder_indent',
			\ 'sidebar_new_mail_only', 'sidebar_next_new_wrap', 'sidebar_on_right',
			\ 'sidebar_short_path', 'sidebar_visible', 'sig_dashes', 'sig_on_top',
			\ 'smart_wrap', 'smime_ask_cert_label', 'smime_decrypt_use_default_key',
			\ 'smime_is_default', 'smime_self_encrypt', 'sort_re', 'ssl_force_tls',
			\ 'ssl_usesystemcerts', 'ssl_use_sslv2', 'ssl_use_sslv3', 'ssl_use_tlsv1',
			\ 'ssl_use_tlsv1_1', 'ssl_use_tlsv1_2', 'ssl_verify_dates',
			\ 'ssl_verify_host', 'ssl_verify_partial_chains', 'status_on_top',
			\ 'strict_threads', 'suspend', 'text_flowed', 'thorough_search',
			\ 'thread_received', 'tilde', 'ts_enabled', 'uncollapse_jump',
			\ 'uncollapse_new', 'user_agent', 'use_8bitmime', 'use_domain',
			\ 'use_envelope_from', 'use_from', 'use_ipv6', 'virtual_spoolfile',
			\ 'wait_key', 'weed', 'wrap_search', 'write_bcc', 'x_comment_to'
			\ ], 0)

" CHECKED 2018-04-18
" Deprecated Bools
" List of DT_SYNONYM synonyms of Bools in MuttVars in init.h
call s:boolQuadGen('Bool', [
			\ 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt',
			\ 'forw_quote', 'ignore_linear_white_space', 'pgp_autoencrypt',
			\ 'pgp_autosign', 'pgp_auto_traditional', 'pgp_create_traditional',
			\ 'pgp_replyencrypt', 'pgp_replysign', 'pgp_replysignencrypted',
			\ 'xterm_set_titles'
			\ ], 1)

" CHECKED 2018-04-18
" List of DT_QUAD in MuttVars in init.h
call s:boolQuadGen('Quad', [
			\ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce',
			\ 'catchup_newsgroup', 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach',
			\ 'followup_to_poster', 'forward_edit', 'honor_followup_to', 'include',
			\ 'mime_forward', 'mime_forward_rest', 'move', 'pgp_mime_auto',
			\ 'pop_delete', 'pop_reconnect', 'postpone', 'post_moderated', 'print',
			\ 'quit', 'recall', 'reply_to', 'ssl_starttls'
			\ ], 0)

" CHECKED 2018-04-18
" Deprecated Quads
" List of DT_SYNONYM synonyms of Quads in MuttVars in init.h
call s:boolQuadGen('Quad', [
			\ 'mime_fwd', 'pgp_encrypt_self', 'pgp_verify_sig', 'smime_encrypt_self'
			\ ], 1)

" CHECKED 2018-04-18
" List of DT_NUMBER in MuttVars in init.h
syntax keyword muttrcVarNum	skipwhite contained
			\ connect_timeout debug_level history imap_keepalive imap_pipeline_depth
			\ imap_poll_timeout mail_check mail_check_stats_interval menu_context
			\ net_inc nm_db_limit nm_open_timeout nm_query_window_current_position
			\ nm_query_window_duration nntp_context nntp_poll pager_context
			\ pager_index_lines pgp_timeout pop_checkinterval read_inc reflow_wrap
			\ save_history score_threshold_delete score_threshold_flag
			\ score_threshold_read search_context sendmail_wait sidebar_component_depth
			\ sidebar_width skip_quoted_offset sleep_time smime_timeout
			\ ssl_min_dh_prime_bits timeout time_inc wrap wrap_headers write_inc
			\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax keyword muttrcVarDeprecatedNum	contained skipwhite
			\ wrapmargin
			\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" CHECKED 2018-04-18
" List of DT_STRING in MuttVars in init.h
" Special cases first, and all the rest at the end
" Formats themselves must be updated in their respective groups
" See s:escapesConditionals
syntax match muttrcVarStr	contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax keyword muttrcVarStr	contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
syntax keyword muttrcVarStr	contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
syntax keyword muttrcVarStr	contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
syntax keyword muttrcVarStr	contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt
syntax keyword muttrcVarStr	contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
" Deprecated format
syntax keyword muttrcVarDeprecatedStr	contained skipwhite hdr_format msg_format nextgroup=muttrcVarEqualsIdxFmt
syntax keyword muttrcVarStr	contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
syntax keyword muttrcVarStr	contained skipwhite
			\ pgp_clearsign_command pgp_decode_command pgp_decrypt_command
			\ pgp_encrypt_only_command pgp_encrypt_sign_command pgp_export_command
			\ pgp_import_command pgp_list_pubring_command pgp_list_secring_command
			\ pgp_sign_command pgp_verify_command pgp_verify_key_command
			\ nextgroup=muttrcVarEqualsPGPCmdFmt
syntax keyword muttrcVarStr	contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
syntax keyword muttrcVarStr	contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
syntax keyword muttrcVarStr	contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
syntax keyword muttrcVarStr	contained skipwhite
			\ smime_decrypt_command smime_encrypt_command smime_get_cert_command
			\ smime_get_cert_email_command smime_get_signer_cert_command
			\ smime_import_cert_command smime_pk7out_command smime_sign_command
			\ smime_verify_command smime_verify_opaque_command
			\ nextgroup=muttrcVarEqualsSmimeFmt
syntax keyword muttrcVarStr	contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
" Deprecated format
syntax keyword muttrcVarDeprecatedStr	contained skipwhite xterm_icon xterm_title nextgroup=muttrcVarEqualsStatusFmt
syntax keyword muttrcVarStr	contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
syntax keyword muttrcVarStr	contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt
syntax keyword muttrcVarStr	contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt
syntax keyword muttrcVarStr	contained skipwhite
			\ assumed_charset attach_charset attach_sep attribution_locale charset
			\ config_charset content_type default_hook dsn_notify dsn_return
			\ empty_subject escape forward_attribution_intro forward_attribution_trailer
			\ forward_format header_cache_pagesize hidden_tags hostname
			\ imap_authenticators imap_delim_chars imap_headers imap_login imap_pass
			\ imap_user indent_string mailcap_path mark_macro_prefix mh_seq_flagged
			\ mh_seq_replied mh_seq_unseen mime_type_query_command newsgroups_charset
			\ news_server nm_default_uri nm_exclude_tags nm_query_type
			\ nm_query_window_current_search nm_query_window_timebase nm_record_tags
			\ nm_unread_tag nntp_authenticators nntp_pass nntp_user pgp_default_key
			\ pgp_sign_as pipe_sep pop_authenticators pop_host pop_pass pop_user
			\ postpone_encrypt_as post_indent_string preconnect realname send_charset
			\ show_multipart_alternative sidebar_delim_chars sidebar_divider_char
			\ sidebar_indent_string simple_search smime_default_key smime_encrypt_with
			\ smime_sign_as smime_sign_digest_alg smtp_authenticators smtp_pass smtp_url
			\ spam_separator ssl_ciphers tunnel
			\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
" Deprecated strings
syntax keyword muttrcVarDeprecatedStr	contained skipwhite
			\ forw_format indent_str pgp_self_encrypt_as post_indent_str
			\ smime_self_encrypt_as
			\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" CHECKED 2018-04-18
" List of DT_ADDRESS
syntax keyword muttrcVarStr	contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
" List of DT_HCACHE
syntax keyword muttrcVarStr	contained skipwhite header_cache_backend nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
" List of DT_MAGIC
syntax keyword muttrcVarStr	contained skipwhite mbox_type nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
" List of DT_MBTABLE
syntax keyword muttrcVarStr	contained skipwhite flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" CHECKED 2018-04-18
" List of DT_PATH
syntax keyword muttrcVarStr	contained skipwhite
			\ alias_file certificate_file debug_file display_filter editor entropy_file
			\ folder header_cache history_file inews ispell mbox message_cachedir mixmaster
			\ new_mail_command news_cache_dir newsrc pager postponed print_command
			\ query_command record sendmail shell signature smime_ca_location
			\ smime_certificates smime_keys spoolfile ssl_ca_certificates_file
			\ ssl_client_cert tmpdir trash visual
			\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" CHECKED 2018-04-18
" List of DT_REGEX
syntax keyword muttrcVarStr	contained skipwhite
			\ abort_noattach_regex gecos_mask mask pgp_decryption_okay pgp_good_sign
			\ quote_regex reply_regex smileys
			\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
" List of deprecated DT_PATH
syntax keyword muttrcVarDeprecatedStr	contained skipwhite print_cmd nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
" List of deprecated DT_REGEX
syntax keyword muttrcVarDeprecatedStr	contained skipwhite abort_noattach_regexp attach_keyword quote_regexp reply_regexp nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
" List of DT_SORT
syntax keyword muttrcVarStr	contained skipwhite
			\ pgp_sort_keys sidebar_sort_method sort sort_alias sort_aux sort_browser
			\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr

" CHECKED 2018-04-18
" List of commands in Commands in init.h
" Remember to remove hooks, they have already been dealt with
syntax keyword muttrcCommand	skipwhite charset-hook nextgroup=muttrcRXString
syntax keyword muttrcCommand	skipwhite unhook nextgroup=muttrcHooks
syntax keyword muttrcCommand	skipwhite spam nextgroup=muttrcSpamPattern
syntax keyword muttrcCommand	skipwhite nospam nextgroup=muttrcNoSpamPattern
syntax keyword muttrcCommand	skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
syntax keyword muttrcCommand	skipwhite macro	nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
syntax keyword muttrcCommand	skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
syntax keyword muttrcCommand	skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
syntax keyword muttrcCommand	skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
syntax keyword muttrcCommand	skipwhite exec nextgroup=muttrcFunction
syntax keyword muttrcCommand	skipwhite
			\ alternative_order attachments auto_view finish hdr_order ifdef ifndef
			\ ignore lua lua-source mailboxes mailto_allow mime_lookup my_hdr push score
			\ setenv sidebar_whitelist source subjectrx subscribe-to tag-formats
			\ tag-transforms unalternative_order unattachments unauto_view uncolor
			\ unhdr_order unignore unmailboxes unmailto_allow unmime_lookup unmono
			\ unmy_hdr unscore unsetenv unsidebar_whitelist unsubjectrx unsubscribe-from
			\ unvirtual-mailboxes virtual-mailboxes

" CHECKED 2018-04-18
" List of functions in functions.h
syntax match muttrcFunction contained "\<accept\>"
syntax match muttrcFunction contained "\<append\>"
syntax match muttrcFunction contained "\<attach-file\>"
syntax match muttrcFunction contained "\<attach-key\>"
syntax match muttrcFunction contained "\<attach-message\>"
syntax match muttrcFunction contained "\<attach-news-message\>"
syntax match muttrcFunction contained "\<backspace\>"
syntax match muttrcFunction contained "\<backward-char\>"
syntax match muttrcFunction contained "\<backward-word\>"
syntax match muttrcFunction contained "\<bol\>"
syntax match muttrcFunction contained "\<bottom-page\>"
syntax match muttrcFunction contained "\<bottom\>"
syntax match muttrcFunction contained "\<bounce-message\>"
syntax match muttrcFunction contained "\<break-thread\>"
syntax match muttrcFunction contained "\<buffy-cycle\>"
syntax match muttrcFunction contained "\<buffy-list\>"
syntax match muttrcFunction contained "\<capitalize-word\>"
syntax match muttrcFunction contained "\<catchup\>"
syntax match muttrcFunction contained "\<chain-next\>"
syntax match muttrcFunction contained "\<chain-prev\>"
syntax match muttrcFunction contained "\<change-dir\>"
syntax match muttrcFunction contained "\<change-folder-readonly\>"
syntax match muttrcFunction contained "\<change-folder\>"
syntax match muttrcFunction contained "\<change-newsgroup-readonly\>"
syntax match muttrcFunction contained "\<change-newsgroup\>"
syntax match muttrcFunction contained "\<change-vfolder\>"
syntax match muttrcFunction contained "\<check-new\>"
syntax match muttrcFunction contained "\<check-traditional-pgp\>"
syntax match muttrcFunction contained "\<clear-flag\>"
syntax match muttrcFunction contained "\<collapse-all\>"
syntax match muttrcFunction contained "\<collapse-parts\>"
syntax match muttrcFunction contained "\<collapse-thread\>"
syntax match muttrcFunction contained "\<complete-query\>"
syntax match muttrcFunction contained "\<complete\>"
syntax match muttrcFunction contained "\<compose-to-sender\>"
syntax match muttrcFunction contained "\<copy-file\>"
syntax match muttrcFunction contained "\<copy-message\>"
syntax match muttrcFunction contained "\<create-alias\>"
syntax match muttrcFunction contained "\<create-mailbox\>"
syntax match muttrcFunction contained "\<current-bottom\>"
syntax match muttrcFunction contained "\<current-middle\>"
syntax match muttrcFunction contained "\<current-top\>"
syntax match muttrcFunction contained "\<decode-copy\>"
syntax match muttrcFunction contained "\<decode-save\>"
syntax match muttrcFunction contained "\<decrypt-copy\>"
syntax match muttrcFunction contained "\<decrypt-save\>"
syntax match muttrcFunction contained "\<delete-char\>"
syntax match muttrcFunction contained "\<delete-entry\>"
syntax match muttrcFunction contained "\<delete-mailbox\>"
syntax match muttrcFunction contained "\<delete-message\>"
syntax match muttrcFunction contained "\<delete-pattern\>"
syntax match muttrcFunction contained "\<delete-subthread\>"
syntax match muttrcFunction contained "\<delete-thread\>"
syntax match muttrcFunction contained "\<delete\>"
syntax match muttrcFunction contained "\<detach-file\>"
syntax match muttrcFunction contained "\<display-address\>"
syntax match muttrcFunction contained "\<display-filename\>"
syntax match muttrcFunction contained "\<display-message\>"
syntax match muttrcFunction contained "\<display-toggle-weed\>"
syntax match muttrcFunction contained "\<downcase-word\>"
syntax match muttrcFunction contained "\<edit-bcc\>"
syntax match muttrcFunction contained "\<edit-cc\>"
syntax match muttrcFunction contained "\<edit-description\>"
syntax match muttrcFunction contained "\<edit-encoding\>"
syntax match muttrcFunction contained "\<edit-fcc\>"
syntax match muttrcFunction contained "\<edit-file\>"
syntax match muttrcFunction contained "\<edit-followup-to\>"
syntax match muttrcFunction contained "\<edit-from\>"
syntax match muttrcFunction contained "\<edit-headers\>"
syntax match muttrcFunction contained "\<edit-label\>"
syntax match muttrcFunction contained "\<edit-message\>"
syntax match muttrcFunction contained "\<edit-mime\>"
syntax match muttrcFunction contained "\<edit-newsgroups\>"
syntax match muttrcFunction contained "\<edit-or-view-raw-message\>"
syntax match muttrcFunction contained "\<edit-raw-message\>"
syntax match muttrcFunction contained "\<edit-reply-to\>"
syntax match muttrcFunction contained "\<edit-subject\>"
syntax match muttrcFunction contained "\<edit-to\>"
syntax match muttrcFunction contained "\<edit-type\>"
syntax match muttrcFunction contained "\<edit-x-comment-to\>"
syntax match muttrcFunction contained "\<edit\>"
syntax match muttrcFunction contained "\<end-cond\>"
syntax match muttrcFunction contained "\<enter-command\>"
syntax match muttrcFunction contained "\<enter-mask\>"
syntax match muttrcFunction contained "\<entire-thread\>"
syntax match muttrcFunction contained "\<eol\>"
syntax match muttrcFunction contained "\<exit\>"
syntax match muttrcFunction contained "\<extract-keys\>"
syntax match muttrcFunction contained "\<fetch-mail\>"
syntax match muttrcFunction contained "\<filter-entry\>"
syntax match muttrcFunction contained "\<first-entry\>"
syntax match muttrcFunction contained "\<flag-message\>"
syntax match muttrcFunction contained "\<followup-message\>"
syntax match muttrcFunction contained "\<forget-passphrase\>"
syntax match muttrcFunction contained "\<forward-char\>"
syntax match muttrcFunction contained "\<forward-message\>"
syntax match muttrcFunction contained "\<forward-to-group\>"
syntax match muttrcFunction contained "\<forward-word\>"
syntax match muttrcFunction contained "\<get-attachment\>"
syntax match muttrcFunction contained "\<get-children\>"
syntax match muttrcFunction contained "\<get-message\>"
syntax match muttrcFunction contained "\<get-parent\>"
syntax match muttrcFunction contained "\<goto-folder\>"
syntax match muttrcFunction contained "\<goto-parent\>"
syntax match muttrcFunction contained "\<group-reply\>"
syntax match muttrcFunction contained "\<half-down\>"
syntax match muttrcFunction contained "\<half-up\>"
syntax match muttrcFunction contained "\<help\>"
syntax match muttrcFunction contained "\<history-down\>"
syntax match muttrcFunction contained "\<history-search\>"
syntax match muttrcFunction contained "\<history-up\>"
syntax match muttrcFunction contained "\<imap-fetch-mail\>"
syntax match muttrcFunction contained "\<imap-logout-all\>"
syntax match muttrcFunction contained "\<insert\>"
syntax match muttrcFunction contained "\<ispell\>"
syntax match muttrcFunction contained "\<jump\>"
syntax match muttrcFunction contained "\<kill-eol\>"
syntax match muttrcFunction contained "\<kill-eow\>"
syntax match muttrcFunction contained "\<kill-line\>"
syntax match muttrcFunction contained "\<kill-word\>"
syntax match muttrcFunction contained "\<last-entry\>"
syntax match muttrcFunction contained "\<limit-current-thread\>"
syntax match muttrcFunction contained "\<limit\>"
syntax match muttrcFunction contained "\<link-threads\>"
syntax match muttrcFunction contained "\<list-reply\>"
syntax match muttrcFunction contained "\<mail-key\>"
syntax match muttrcFunction contained "\<mail\>"
syntax match muttrcFunction contained "\<mark-as-new\>"
syntax match muttrcFunction contained "\<mark-message\>"
syntax match muttrcFunction contained "\<middle-page\>"
syntax match muttrcFunction contained "\<mix\>"
syntax match muttrcFunction contained "\<modify-labels-then-hide\>"
syntax match muttrcFunction contained "\<modify-labels\>"
syntax match muttrcFunction contained "\<modify-tags-then-hide\>"
syntax match muttrcFunction contained "\<modify-tags\>"
syntax match muttrcFunction contained "\<new-mime\>"
syntax match muttrcFunction contained "\<next-entry\>"
syntax match muttrcFunction contained "\<next-line\>"
syntax match muttrcFunction contained "\<next-new-then-unread\>"
syntax match muttrcFunction contained "\<next-new\>"
syntax match muttrcFunction contained "\<next-page\>"
syntax match muttrcFunction contained "\<next-subthread\>"
syntax match muttrcFunction contained "\<next-thread\>"
syntax match muttrcFunction contained "\<next-undeleted\>"
syntax match muttrcFunction contained "\<next-unread-mailbox\>"
syntax match muttrcFunction contained "\<next-unread\>"
syntax match muttrcFunction contained "\<noop\>"
syntax match muttrcFunction contained "\<parent-message\>"
syntax match muttrcFunction contained "\<pgp-menu\>"
syntax match muttrcFunction contained "\<pipe-entry\>"
syntax match muttrcFunction contained "\<pipe-message\>"
syntax match muttrcFunction contained "\<post-message\>"
syntax match muttrcFunction contained "\<postpone-message\>"
syntax match muttrcFunction contained "\<previous-entry\>"
syntax match muttrcFunction contained "\<previous-line\>"
syntax match muttrcFunction contained "\<previous-new-then-unread\>"
syntax match muttrcFunction contained "\<previous-new\>"
syntax match muttrcFunction contained "\<previous-page\>"
syntax match muttrcFunction contained "\<previous-subthread\>"
syntax match muttrcFunction contained "\<previous-thread\>"
syntax match muttrcFunction contained "\<previous-undeleted\>"
syntax match muttrcFunction contained "\<previous-unread\>"
syntax match muttrcFunction contained "\<print-entry\>"
syntax match muttrcFunction contained "\<print-message\>"
syntax match muttrcFunction contained "\<purge-message\>"
syntax match muttrcFunction contained "\<purge-thread\>"
syntax match muttrcFunction contained "\<quasi-delete\>"
syntax match muttrcFunction contained "\<query-append\>"
syntax match muttrcFunction contained "\<query\>"
syntax match muttrcFunction contained "\<quit\>"
syntax match muttrcFunction contained "\<quote-char\>"
syntax match muttrcFunction contained "\<read-subthread\>"
syntax match muttrcFunction contained "\<read-thread\>"
syntax match muttrcFunction contained "\<recall-message\>"
syntax match muttrcFunction contained "\<reconstruct-thread\>"
syntax match muttrcFunction contained "\<redraw-screen\>"
syntax match muttrcFunction contained "\<refresh\>"
syntax match muttrcFunction contained "\<reload-active\>"
syntax match muttrcFunction contained "\<rename-attachment\>"
syntax match muttrcFunction contained "\<rename-file\>"
syntax match muttrcFunction contained "\<rename-mailbox\>"
syntax match muttrcFunction contained "\<reply\>"
syntax match muttrcFunction contained "\<resend-message\>"
syntax match muttrcFunction contained "\<root-message\>"
syntax match muttrcFunction contained "\<save-entry\>"
syntax match muttrcFunction contained "\<save-message\>"
syntax match muttrcFunction contained "\<search-next\>"
syntax match muttrcFunction contained "\<search-opposite\>"
syntax match muttrcFunction contained "\<search-reverse\>"
syntax match muttrcFunction contained "\<search-toggle\>"
syntax match muttrcFunction contained "\<search\>"
syntax match muttrcFunction contained "\<select-entry\>"
syntax match muttrcFunction contained "\<select-new\>"
syntax match muttrcFunction contained "\<send-message\>"
syntax match muttrcFunction contained "\<set-flag\>"
syntax match muttrcFunction contained "\<shell-escape\>"
syntax match muttrcFunction contained "\<show-limit\>"
syntax match muttrcFunction contained "\<show-log-messages\>"
syntax match muttrcFunction contained "\<show-version\>"
syntax match muttrcFunction contained "\<sidebar-next-new\>"
syntax match muttrcFunction contained "\<sidebar-next\>"
syntax match muttrcFunction contained "\<sidebar-open\>"
syntax match muttrcFunction contained "\<sidebar-page-down\>"
syntax match muttrcFunction contained "\<sidebar-page-up\>"
syntax match muttrcFunction contained "\<sidebar-prev-new\>"
syntax match muttrcFunction contained "\<sidebar-prev\>"
syntax match muttrcFunction contained "\<sidebar-toggle-virtual\>"
syntax match muttrcFunction contained "\<sidebar-toggle-visible\>"
syntax match muttrcFunction contained "\<skip-quoted\>"
syntax match muttrcFunction contained "\<smime-menu\>"
syntax match muttrcFunction contained "\<sort-mailbox\>"
syntax match muttrcFunction contained "\<sort-reverse\>"
syntax match muttrcFunction contained "\<sort\>"
syntax match muttrcFunction contained "\<subscribe-pattern\>"
syntax match muttrcFunction contained "\<subscribe\>"
syntax match muttrcFunction contained "\<sync-mailbox\>"
syntax match muttrcFunction contained "\<tag-entry\>"
syntax match muttrcFunction contained "\<tag-message\>"
syntax match muttrcFunction contained "\<tag-pattern\>"
syntax match muttrcFunction contained "\<tag-prefix-cond\>"
syntax match muttrcFunction contained "\<tag-prefix\>"
syntax match muttrcFunction contained "\<tag-subthread\>"
syntax match muttrcFunction contained "\<tag-thread\>"
syntax match muttrcFunction contained "\<toggle-disposition\>"
syntax match muttrcFunction contained "\<toggle-mailboxes\>"
syntax match muttrcFunction contained "\<toggle-new\>"
syntax match muttrcFunction contained "\<toggle-quoted\>"
syntax match muttrcFunction contained "\<toggle-read\>"
syntax match muttrcFunction contained "\<toggle-recode\>"
syntax match muttrcFunction contained "\<toggle-subscribed\>"
syntax match muttrcFunction contained "\<toggle-unlink\>"
syntax match muttrcFunction contained "\<toggle-write\>"
syntax match muttrcFunction contained "\<top-page\>"
syntax match muttrcFunction contained "\<top\>"
syntax match muttrcFunction contained "\<transpose-chars\>"
syntax match muttrcFunction contained "\<uncatchup\>"
syntax match muttrcFunction contained "\<undelete-entry\>"
syntax match muttrcFunction contained "\<undelete-message\>"
syntax match muttrcFunction contained "\<undelete-pattern\>"
syntax match muttrcFunction contained "\<undelete-subthread\>"
syntax match muttrcFunction contained "\<undelete-thread\>"
syntax match muttrcFunction contained "\<unsubscribe-pattern\>"
syntax match muttrcFunction contained "\<unsubscribe\>"
syntax match muttrcFunction contained "\<untag-pattern\>"
syntax match muttrcFunction contained "\<upcase-word\>"
syntax match muttrcFunction contained "\<update-encoding\>"
syntax match muttrcFunction contained "\<verify-key\>"
syntax match muttrcFunction contained "\<vfolder-from-query\>"
syntax match muttrcFunction contained "\<vfolder-window-backward\>"
syntax match muttrcFunction contained "\<vfolder-window-forward\>"
syntax match muttrcFunction contained "\<view-attachments\>"
syntax match muttrcFunction contained "\<view-attach\>"
syntax match muttrcFunction contained "\<view-file\>"
syntax match muttrcFunction contained "\<view-mailcap\>"
syntax match muttrcFunction contained "\<view-name\>"
syntax match muttrcFunction contained "\<view-raw-message\>"
syntax match muttrcFunction contained "\<view-text\>"
syntax match muttrcFunction contained "\<what-key\>"
syntax match muttrcFunction contained "\<write-fcc\>"



" Define the default highlighting.
" Only when an item doesn't have highlighting yet

highlight def link muttrcComment			Comment
highlight def link muttrcEscape				SpecialChar
highlight def link muttrcRXChars			SpecialChar
highlight def link muttrcString				String
highlight def link muttrcRXString			String
highlight def link muttrcRXString2			String
highlight def link muttrcSpecial			Special
highlight def link muttrcHooks				Type
highlight def link muttrcGroupFlag			Type
highlight def link muttrcGroupDef			Macro
highlight def link muttrcAddrDef			muttrcGroupFlag
highlight def link muttrcRXDef				muttrcGroupFlag
highlight def link muttrcRXPat				String
highlight def link muttrcAliasGroupName			Macro
highlight def link muttrcAliasKey	        	Identifier
highlight def link muttrcUnAliasKey			Identifier
highlight def link muttrcAliasEncEmail			Identifier
highlight def link muttrcAliasParens			Type
highlight def link muttrcSetNumAssignment		Number
highlight def link muttrcSetBoolAssignment		Boolean
highlight def link muttrcSetQuadAssignment		Boolean
highlight def link muttrcSetStrAssignment		String
highlight def link muttrcEmail				Special
highlight def link muttrcVariableInner			Special
highlight def link muttrcEscapedVariable		String
highlight def link muttrcHeader				Type
highlight def link muttrcKeySpecial			SpecialChar
highlight def link muttrcKey				Type
highlight def link muttrcKeyName			SpecialChar
highlight def link muttrcVarBool			Identifier
highlight def link muttrcVarQuad			Identifier
highlight def link muttrcVarNum				Identifier
highlight def link muttrcVarStr				Identifier
highlight def link muttrcMenu				Identifier
highlight def link muttrcCommand			Keyword
highlight def link muttrcMacroDescr			String
highlight def link muttrcAction				Macro
highlight def link muttrcBadAction			Error
highlight def link muttrcBindFunction			Error
highlight def link muttrcBindMenuList			Error
highlight def link muttrcFunction			Macro
highlight def link muttrcGroupKeyword			muttrcCommand
highlight def link muttrcGroupLine			Error
highlight def link muttrcSubscribeKeyword		muttrcCommand
highlight def link muttrcSubscribeLine			Error
highlight def link muttrcListsKeyword			muttrcCommand
highlight def link muttrcListsLine			Error
highlight def link muttrcAlternateKeyword		muttrcCommand
highlight def link muttrcAlternatesLine			Error
highlight def link muttrcAttachmentsLine		muttrcCommand
highlight def link muttrcAttachmentsFlag		Type
highlight def link muttrcAttachmentsMimeType		String
highlight def link muttrcColorLine			Error
highlight def link muttrcColorContext			Error
highlight def link muttrcColorContextI			Identifier
highlight def link muttrcColorContextH			Identifier
highlight def link muttrcColorKeyword			muttrcCommand
highlight def link muttrcColorField			Identifier
highlight def link muttrcColorCompose			Identifier
highlight def link muttrcColorComposeField		Identifier
highlight def link muttrcColor				Type
highlight def link muttrcColorFG			Error
highlight def link muttrcColorFGI			Error
highlight def link muttrcColorFGH			Error
highlight def link muttrcColorBG			Error
highlight def link muttrcColorBGI			Error
highlight def link muttrcColorBGH			Error
highlight def link muttrcMonoAttrib			muttrcColor
highlight def link muttrcMono				muttrcCommand
highlight def link muttrcSimplePat			Identifier
highlight def link muttrcSimplePatString		Macro
highlight def link muttrcSimplePatMetas			Special
highlight def link muttrcPattern			Error
highlight def link muttrcUnColorLine			Error
highlight def link muttrcUnColorKeyword			muttrcCommand
highlight def link muttrcUnColorIndex			Identifier
highlight def link muttrcShellString			muttrcEscape
highlight def link muttrcRXHooks			muttrcCommand
highlight def link muttrcRXHookNot			Type
highlight def link muttrcPatHooks			muttrcCommand
highlight def link muttrcPatHookNot			Type
highlight def link muttrcFormatConditionals2		Type
highlight def link muttrcIndexFormatStr			muttrcString
highlight def link muttrcIndexFormatEscapes		muttrcEscape
highlight def link muttrcIndexFormatConditionals	muttrcFormatConditionals2
highlight def link muttrcAliasFormatStr			muttrcString
highlight def link muttrcAliasFormatEscapes		muttrcEscape
highlight def link muttrcAttachFormatStr		muttrcString
highlight def link muttrcAttachFormatEscapes		muttrcEscape
highlight def link muttrcAttachFormatConditionals	muttrcFormatConditionals2
highlight def link muttrcComposeFormatStr		muttrcString
highlight def link muttrcComposeFormatEscapes		muttrcEscape
highlight def link muttrcFolderFormatStr		muttrcString
highlight def link muttrcFolderFormatEscapes		muttrcEscape
highlight def link muttrcFolderFormatConditionals	muttrcFormatConditionals2
highlight def link muttrcMixFormatStr			muttrcString
highlight def link muttrcMixFormatEscapes		muttrcEscape
highlight def link muttrcMixFormatConditionals		muttrcFormatConditionals2
highlight def link muttrcPGPFormatStr			muttrcString
highlight def link muttrcPGPFormatEscapes		muttrcEscape
highlight def link muttrcPGPFormatConditionals		muttrcFormatConditionals2
highlight def link muttrcPGPCmdFormatStr		muttrcString
highlight def link muttrcPGPCmdFormatEscapes		muttrcEscape
highlight def link muttrcPGPCmdFormatConditionals	muttrcFormatConditionals2
highlight def link muttrcStatusFormatStr		muttrcString
highlight def link muttrcStatusFormatEscapes		muttrcEscape
highlight def link muttrcStatusFormatConditionals	muttrcFormatConditionals2
highlight def link muttrcPGPGetKeysFormatStr		muttrcString
highlight def link muttrcPGPGetKeysFormatEscapes	muttrcEscape
highlight def link muttrcSmimeFormatStr			muttrcString
highlight def link muttrcSmimeFormatEscapes		muttrcEscape
highlight def link muttrcSmimeFormatConditionals	muttrcFormatConditionals2
highlight def link muttrcTimeEscapes			muttrcEscape
highlight def link muttrcPGPTimeEscapes			muttrcEscape
highlight def link muttrcStrftimeEscapes		Type
highlight def link muttrcStrftimeFormatStr		muttrcString
highlight def link muttrcFormatErrors			Error

highlight def link muttrcBindFunctionNL			SpecialChar
highlight def link muttrcBindKeyNL			SpecialChar
highlight def link muttrcBindMenuListNL			SpecialChar
highlight def link muttrcMacroDescrNL			SpecialChar
highlight def link muttrcMacroBodyNL			SpecialChar
highlight def link muttrcMacroKeyNL			SpecialChar
highlight def link muttrcMacroMenuListNL		SpecialChar
highlight def link muttrcColorMatchCountNL		SpecialChar
highlight def link muttrcColorNL			SpecialChar
highlight def link muttrcColorRXNL			SpecialChar
highlight def link muttrcColorBGNL			SpecialChar
highlight def link muttrcColorFGNL			SpecialChar
highlight def link muttrcAliasNameNL			SpecialChar
highlight def link muttrcAliasENNL			SpecialChar
highlight def link muttrcAliasNL			SpecialChar
highlight def link muttrcUnAliasNL			SpecialChar
highlight def link muttrcAliasGroupDefNL		SpecialChar
highlight def link muttrcAliasEncEmailNL		SpecialChar
highlight def link muttrcPatternNL			SpecialChar
highlight def link muttrcUnColorPatNL			SpecialChar
highlight def link muttrcUnColorAPNL			SpecialChar
highlight def link muttrcUnColorIndexNL			SpecialChar
highlight def link muttrcStringNL			SpecialChar

highlight def link muttrcVarDeprecatedBool		Error
highlight def link muttrcVarDeprecatedQuad		Error
highlight def link muttrcVarDeprecatedStr		Error


let b:current_syntax = "neomuttrc"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim isk+=-
PK�j�Z�O���vim80/syntax/dcl.vimnu�[���" Vim syntax file
" Language:	DCL (Digital Command Language - vms)
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	11
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !has("patch-7.4.1142")
  setlocal iskeyword=$,@,48-57,_
else
 syn iskeyword $,@,48-57,_
endif

syn case ignore
syn keyword dclInstr	accounting	del[ete]	gen[cat]	mou[nt]	run
syn keyword dclInstr	all[ocate]	dep[osit]	gen[eral]	ncp	run[off]
syn keyword dclInstr	ana[lyze]	dia[gnose]	gos[ub]	ncs	sca
syn keyword dclInstr	app[end]	dif[ferences]	got[o]	on	sea[rch]
syn keyword dclInstr	ass[ign]	dir[ectory]	hel[p]	ope[n]	set
syn keyword dclInstr	att[ach]	dis[able]	ico[nv]	pas[cal]	sho[w]
syn keyword dclInstr	aut[horize]	dis[connect]	if	pas[sword]	sor[t]
syn keyword dclInstr	aut[ogen]	dis[mount]	ini[tialize]	pat[ch]	spa[wn]
syn keyword dclInstr	bac[kup]	dpm[l]	inq[uire]	pca	sta[rt]
syn keyword dclInstr	cal[l]	dqs	ins[tall]	pho[ne]	sto[p]
syn keyword dclInstr	can[cel]	dsr	job	pri[nt]	sub[mit]
syn keyword dclInstr	cc	dst[graph]	lat[cp]	pro[duct]	sub[routine]
syn keyword dclInstr	clo[se]	dtm	lib[rary]	psw[rap]	swx[cr]
syn keyword dclInstr	cms	dum[p]	lic[ense]	pur[ge]	syn[chronize]
syn keyword dclInstr	con[nect]	edi[t]	lin[k]	qde[lete]	sys[gen]
syn keyword dclInstr	con[tinue]	ena[ble]	lmc[p]	qse[t]	sys[man]
syn keyword dclInstr	con[vert]	end[subroutine]	loc[ale]	qsh[ow]	tff
syn keyword dclInstr	cop[y]	eod	log[in]	rea[d]	then
syn keyword dclInstr	cre[ate]	eoj	log[out]	rec[all]	typ[e]
syn keyword dclInstr	cxx	exa[mine]	lse[dit]	rec[over]	uil
syn keyword dclInstr	cxx[l_help]	exc[hange]	mac[ro]	ren[ame]	unl[ock]
syn keyword dclInstr	dea[llocate]	exi[t]	mai[l]	rep[ly]	ves[t]
syn keyword dclInstr	dea[ssign]	fdl	mer[ge]	req[uest]	vie[w]
syn keyword dclInstr	deb[ug]	flo[wgraph]	mes[sage]	ret[urn]	wai[t]
syn keyword dclInstr	dec[k]	fon[t]	mms	rms	wri[te]
syn keyword dclInstr	def[ine]	for[tran]

syn keyword dclLexical	f$context	f$edit	  f$getjpi	f$message	f$setprv
syn keyword dclLexical	f$csid	f$element	  f$getqui	f$mode	f$string
syn keyword dclLexical	f$cvsi	f$environment	  f$getsyi	f$parse	f$time
syn keyword dclLexical	f$cvtime	f$extract	  f$identifier	f$pid	f$trnlnm
syn keyword dclLexical	f$cvui	f$fao	  f$integer	f$privilege	f$type
syn keyword dclLexical	f$device	f$file_attributes f$length	f$process	f$user
syn keyword dclLexical	f$directory	f$getdvi	  f$locate	f$search	f$verify

syn match   dclMdfy	"/\I\i*"	nextgroup=dclMdfySet,dclMdfySetString
syn match   dclMdfySet	"=[^ \t"]*"	contained
syn region  dclMdfySet	matchgroup=dclMdfyBrkt start="=\[" matchgroup=dclMdfyBrkt end="]"	contains=dclMdfySep
syn region  dclMdfySetString	start='="'	skip='""'	end='"'	contained
syn match   dclMdfySep	"[:,]"	contained

" Numbers
syn match   dclNumber	"\d\+"

" Varname (mainly to prevent dclNumbers from being recognized when part of a dclVarname)
syn match   dclVarname	"\I\i*"

" Filenames (devices, paths)
syn match   dclDevice	"\I\i*\(\$\I\i*\)\=:[^=]"me=e-1		nextgroup=dclDirPath,dclFilename
syn match   dclDirPath	"\[\(\I\i*\.\)*\I\i*\]"		contains=dclDirSep	nextgroup=dclFilename
syn match   dclFilename	"\I\i*\$\(\I\i*\)\=\.\(\I\i*\)*\(;\d\+\)\="	contains=dclDirSep
syn match   dclFilename	"\I\i*\.\(\I\i*\)\=\(;\d\+\)\="	contains=dclDirSep	contained
syn match   dclDirSep	"[[\].;]"

" Strings
syn region  dclString	start='"'	skip='""'	end='"'	contains=@Spell

" $ stuff and comments
syn cluster dclCommentGroup	contains=dclStart,dclTodo,@Spell
syn match   dclStart	"^\$"	skipwhite nextgroup=dclExe
syn match   dclContinue	"-$"
syn match   dclComment	"^\$!.*$"	contains=@dclCommentGroup
syn match   dclExe	"\I\i*"	contained
syn keyword dclTodo contained	COMBAK	DEBUG	FIXME	TODO	XXX

" Assignments and Operators
syn match   dclAssign	":==\="
syn match   dclAssign	"="
syn match   dclOper	"--\|+\|\*\|/"
syn match   dclLogOper	"\.[a-zA-Z][a-zA-Z][a-zA-Z]\=\." contains=dclLogical,dclLogSep
syn keyword dclLogical contained	and	ge	gts	lt	nes
syn keyword dclLogical contained	eq	ges	le	lts	not
syn keyword dclLogical contained	eqs	gt	les	ne	or
syn match   dclLogSep	"\."		contained

" @command procedures
syn match   dclCmdProcStart	"@"			nextgroup=dclCmdProc
syn match   dclCmdProc	"\I\i*\(\.\I\i*\)\="	contained
syn match   dclCmdProc	"\I\i*:"		contained	nextgroup=dclCmdDirPath,dclCmdProc
syn match   dclCmdDirPath	"\[\(\I\i*\.\)*\I\i*\]"	contained	nextgroup=delCmdProc

" labels
syn match   dclGotoLabel	"^\$\s*\I\i*:\s*$"	contains=dclStart

" parameters
syn match   dclParam	"'\I[a-zA-Z0-9_$]*'\="

" () matching (the clusters are commented out until a vim/vms comes out for v5.2+)
"syn cluster dclNextGroups	contains=dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo
"syn region  dclFuncList	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,@dclNextGroups
syn region  dclFuncList	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo
syn match   dclError	")"

" Define the default highlighting.
if !exists("skip_dcl_syntax_inits")

 hi def link dclLogOper	dclError
 hi def link dclLogical	dclOper
 hi def link dclLogSep	dclSep

 hi def link dclAssign	Operator
 hi def link dclCmdProc	Special
 hi def link dclCmdProcStart	Operator
 hi def link dclComment	Comment
 hi def link dclContinue	Statement
 hi def link dclDevice	Identifier
 hi def link dclDirPath	Identifier
 hi def link dclDirPath	Identifier
 hi def link dclDirSep	Delimiter
 hi def link dclError	Error
 hi def link dclExe		Statement
 hi def link dclFilename	NONE
 hi def link dclGotoLabel	Label
 hi def link dclInstr	Statement
 hi def link dclLexical	Function
 hi def link dclMdfy	Type
 hi def link dclMdfyBrkt	Delimiter
 hi def link dclMdfySep	Delimiter
 hi def link dclMdfySet	Type
 hi def link dclMdfySetString	String
 hi def link dclNumber	Number
 hi def link dclOper	Operator
 hi def link dclParam	Special
 hi def link dclSep		Delimiter
 hi def link dclStart	Delimiter
 hi def link dclString	String
 hi def link dclTodo	Todo

endif

let b:current_syntax = "dcl"

" vim: ts=16
PK�j�Z��'�y:y:vim80/syntax/apache.vimnu�[���" Vim syntax file
" Language: Apache configuration (httpd.conf, srm.conf, access.conf, .htaccess)
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" License: This file can be redistribued and/or modified under the same terms
"		as Vim itself.
" Last Change: 2014-03-04
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
" TODO: see particular FIXME's scattered through the file
"		make it really linewise?
"		+ add `display' where appropriate

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn case ignore

" Base constructs
syn match apacheComment "^\s*#.*$" contains=apacheFixme
syn match apacheUserID "#-\?\d\+\>"
syn case match
syn keyword apacheFixme FIXME TODO XXX NOT
syn case ignore
syn match apacheAnything "\s[^>]*" contained
syn match apacheError "\w\+" contained
syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+ oneline

" Following is to prevent escaped quotes from being parsed as strings.
syn match apacheSkipQuote +\\"+

" Core and mpm
syn keyword apacheDeclaration AccessFileName AddDefaultCharset AllowOverride AuthName AuthType ContentDigest DefaultType DocumentRoot ErrorDocument ErrorLog HostNameLookups IdentityCheck Include KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens TimeOut UseCanonicalName
syn keyword apacheDeclaration AcceptPathInfo CGIMapExtension EnableMMAP FileETag ForceType LimitXMLRequestBody SetHandler SetInputFilter SetOutputFilter
syn keyword apacheDeclaration AcceptFilter AllowEncodedSlashes EnableSendfile LimitInternalRecursion TraceEnable
syn keyword apacheOption INode MTime Size
syn keyword apacheOption Any All On Off Double EMail DNS Min Minimal OS Prod ProductOnly Full
syn keyword apacheOption emerg alert crit error warn notice info debug
syn keyword apacheOption registry script inetd standalone
syn match apacheOptionOption "[+-]\?\<\(ExecCGI\|FollowSymLinks\|Includes\|IncludesNoExec\|Indexes\|MultiViews\|SymLinksIfOwnerMatch\)\>"
syn keyword apacheOption user group
syn match apacheOption "\<valid-user\>"
syn case match
syn keyword apacheMethodOption GET POST PUT DELETE CONNECT OPTIONS TRACE PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK contained
syn case ignore
syn match apacheSection "<\/\=\(Directory\|DirectoryMatch\|Files\|FilesMatch\|IfModule\|IfDefine\|Location\|LocationMatch\|VirtualHost\)[^>]*>" contains=apacheAnything
syn match apacheLimitSection "<\/\=\(Limit\|LimitExcept\)[^>]*>" contains=apacheLimitSectionKeyword,apacheMethodOption,apacheError
syn keyword apacheLimitSectionKeyword Limit LimitExcept contained
syn match apacheAuthType "AuthType\s.*$" contains=apacheAuthTypeValue
syn keyword apacheAuthTypeValue Basic Digest
syn match apacheAllowOverride "AllowOverride\s.*$" contains=apacheAllowOverrideValue,apacheComment
syn keyword apacheAllowOverrideValue AuthConfig FileInfo Indexes Limit Options contained
syn keyword apacheDeclaration CoreDumpDirectory EnableExceptionHook GracefulShutdownTimeout Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MaxSpareThreadsPerChild MinSpareThreads NumServers PidFile ScoreBoardFile SendBufferSize ServerLimit StartServers StartThreads ThreadLimit ThreadsPerChild User
syn keyword apacheDeclaration MaxThreads ThreadStackSize
syn keyword apacheDeclaration Win32DisableAcceptEx
syn keyword apacheDeclaration AssignUserId ChildPerUserId
syn keyword apacheDeclaration AcceptMutex MaxSpareServers MinSpareServers
syn keyword apacheOption flock fcntl sysvsem pthread

" Modules
syn keyword apacheDeclaration Action Script
syn keyword apacheDeclaration Alias AliasMatch Redirect RedirectMatch RedirectTemp RedirectPermanent ScriptAlias ScriptAliasMatch
syn keyword apacheOption permanent temp seeother gone
syn keyword apacheDeclaration AuthAuthoritative AuthGroupFile AuthUserFile
syn keyword apacheDeclaration AuthBasicAuthoritative AuthBasicProvider
syn keyword apacheDeclaration AuthDigestAlgorithm AuthDigestDomain AuthDigestNcCheck AuthDigestNonceFormat AuthDigestNonceLifetime AuthDigestProvider AuthDigestQop AuthDigestShmemSize
syn keyword apacheOption none auth auth-int MD5 MD5-sess
syn match apacheSection "<\/\=\(<AuthnProviderAlias\)[^>]*>" contains=apacheAnything
syn keyword apacheDeclaration Anonymous Anonymous_Authoritative Anonymous_LogEmail Anonymous_MustGiveEmail Anonymous_NoUserID Anonymous_VerifyEmail
syn keyword apacheDeclaration AuthDBDUserPWQuery AuthDBDUserRealmQuery
syn keyword apacheDeclaration AuthDBMGroupFile AuthDBMAuthoritative
syn keyword apacheDeclaration AuthDBM TypeAuthDBMUserFile
syn keyword apacheOption default SDBM GDBM NDBM DB
syn keyword apacheDeclaration AuthDefaultAuthoritative
syn keyword apacheDeclaration AuthUserFile
syn keyword apacheDeclaration AuthLDAPBindON AuthLDAPEnabled AuthLDAPFrontPageHack AuthLDAPStartTLS
syn keyword apacheDeclaration AuthLDAPBindDN AuthLDAPBindPassword AuthLDAPCharsetConfig AuthLDAPCompareDNOnServer AuthLDAPDereferenceAliases AuthLDAPGroupAttribute AuthLDAPGroupAttributeIsDN AuthLDAPRemoteUserIsDN AuthLDAPUrl AuthzLDAPAuthoritative
syn keyword apacheOption always never searching finding
syn keyword apacheOption ldap-user ldap-group ldap-dn ldap-attribute ldap-filter
syn keyword apacheDeclaration AuthDBMGroupFile AuthzDBMAuthoritative AuthzDBMType
syn keyword apacheDeclaration AuthzDefaultAuthoritative
syn keyword apacheDeclaration AuthGroupFile AuthzGroupFileAuthoritative
syn match apacheAllowDeny "Allow\s\+from.*$" contains=apacheAllowDenyValue,apacheComment
syn match apacheAllowDeny "Deny\s\+from.*$" contains=apacheAllowDenyValue,apacheComment
syn keyword apacheAllowDenyValue All None contained
syn match apacheOrder "^\s*Order\s.*$" contains=apacheOrderValue,apacheComment
syn keyword apacheOrderValue Deny Allow contained
syn keyword apacheDeclaration  AuthzOwnerAuthoritative
syn keyword apacheDeclaration  AuthzUserAuthoritative
syn keyword apacheDeclaration AddAlt AddAltByEncoding AddAltByType AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon HeaderName IndexIgnore IndexOptions IndexOrderDefault ReadmeName
syn keyword apacheDeclaration IndexStyleSheet
syn keyword apacheOption DescriptionWidth FancyIndexing FoldersFirst IconHeight IconsAreLinks IconWidth NameWidth ScanHTMLTitles SuppressColumnSorting SuppressDescription SuppressHTMLPreamble SuppressLastModified SuppressSize TrackModified
syn keyword apacheOption Ascending Descending Name Date Size Description
syn keyword apacheOption HTMLTable SuppressIcon SuppressRules VersionSort XHTML
syn keyword apacheOption IgnoreClient IgnoreCase ShowForbidden SuppresRules
syn keyword apacheDeclaration CacheForceCompletion CacheMaxStreamingBuffer
syn keyword apacheDeclaration CacheDefaultExpire CacheDisable CacheEnable CacheIgnoreCacheControl CacheIgnoreHeaders CacheIgnoreNoLastMod CacheLastModifiedFactor CacheMaxExpire CacheStoreNoStore CacheStorePrivate
syn keyword apacheDeclaration MetaFiles MetaDir MetaSuffix
syn keyword apacheDeclaration ScriptLog ScriptLogLength ScriptLogBuffer
syn keyword apacheDeclaration ScriptStock
syn keyword apacheDeclaration CharsetDefault CharsetOptions CharsetSourceEnc
syn keyword apacheOption DebugLevel ImplicitAdd NoImplicitAdd
syn keyword apacheDeclaration Dav DavDepthInfinity DavMinTimeout
syn keyword apacheDeclaration DavLockDB
syn keyword apacheDeclaration DavGenericLockDB
syn keyword apacheDeclaration DBDExptime DBDKeep DBDMax DBDMin DBDParams DBDPersist DBDPrepareSQL DBDriver
syn keyword apacheDeclaration DeflateCompressionLevel DeflateBufferSize DeflateFilterNote DeflateMemLevel DeflateWindowSize
syn keyword apacheDeclaration DirectoryIndex DirectorySlash
syn keyword apacheDeclaration CacheExpiryCheck CacheGcClean CacheGcDaily CacheGcInterval CacheGcMemUsage CacheGcUnused CacheSize CacheTimeMargin
syn keyword apacheDeclaration CacheDirLength CacheDirLevels CacheMaxFileSize CacheMinFileSize CacheRoot
syn keyword apacheDeclaration DumpIOInput DumpIOOutput
syn keyword apacheDeclaration ProtocolEcho
syn keyword apacheDeclaration PassEnv SetEnv UnsetEnv
syn keyword apacheDeclaration Example
syn keyword apacheDeclaration ExpiresActive ExpiresByType ExpiresDefault
syn keyword apacheDeclaration ExtFilterDefine ExtFilterOptions
syn keyword apacheOption PreservesContentLength DebugLevel LogStderr NoLogStderr
syn match apacheOption "\<\(cmd\|mode\|intype\|outtype\|ftype\|disableenv\|enableenv\)\ze="
syn keyword apacheDeclaration CacheFile MMapFile
syn keyword apacheDeclaration FilterChain FilterDeclare FilterProtocol FilterProvider FilterTrace
syn keyword apacheDeclaration Header
syn keyword apacheDeclaration RequestHeader
syn keyword apacheOption set unset append add
syn keyword apacheDeclaration IdentityCheck IdentityCheckTimeout
syn keyword apacheDeclaration ImapMenu ImapDefault ImapBase
syn keyword apacheOption none formatted semiformatted unformatted
syn keyword apacheOption nocontent referer error map
syn keyword apacheDeclaration SSIEndTag SSIErrorMsg SSIStartTag SSITimeFormat SSIUndefinedEcho XBitHack
syn keyword apacheOption on off full
syn keyword apacheDeclaration AddModuleInfo
syn keyword apacheDeclaration ISAPIReadAheadBuffer ISAPILogNotSupported ISAPIAppendLogToErrors ISAPIAppendLogToQuery
syn keyword apacheDeclaration ISAPICacheFile ISAIPFakeAsync
syn keyword apacheDeclaration LDAPCertDBPath
syn keyword apacheDeclaration LDAPCacheEntries LDAPCacheTTL LDAPConnectionTimeout LDAPOpCacheEntries LDAPOpCacheTTL LDAPSharedCacheFile LDAPSharedCacheSize LDAPTrustedClientCert LDAPTrustedGlobalCert LDAPTrustedMode LDAPVerifyServerCert
syn keyword apacheOption CA_DER CA_BASE64 CA_CERT7_DB CA_SECMOD CERT_DER CERT_BASE64 CERT_KEY3_DB CERT_NICKNAME CERT_PFX KEY_DER KEY_BASE64 KEY_PFX
syn keyword apacheDeclaration BufferedLogs CookieLog CustomLog LogFormat TransferLog
syn keyword apacheDeclaration ForensicLog
syn keyword apacheDeclaration MCacheMaxObjectCount MCacheMaxObjectSize MCacheMaxStreamingBuffer MCacheMinObjectSize MCacheRemovalAlgorithm MCacheSize
syn keyword apacheDeclaration AddCharset AddEncoding AddHandler AddLanguage AddType DefaultLanguage RemoveEncoding RemoveHandler RemoveType TypesConfig
syn keyword apacheDeclaration AddInputFilter AddOutputFilter ModMimeUsePathInfo MultiviewsMatch RemoveInputFilter RemoveOutputFilter RemoveCharset
syn keyword apacheOption NegotiatedOnly Filters Handlers
syn keyword apacheDeclaration MimeMagicFile
syn keyword apacheDeclaration MMapFile
syn keyword apacheDeclaration CacheNegotiatedDocs LanguagePriority ForceLanguagePriority
syn keyword apacheDeclaration NWSSLTrustedCerts NWSSLUpgradeable SecureListen
syn keyword apacheDeclaration PerlModule PerlRequire PerlTaintCheck PerlWarn
syn keyword apacheDeclaration PerlSetVar PerlSetEnv PerlPassEnv PerlSetupEnv
syn keyword apacheDeclaration PerlInitHandler PerlPostReadRequestHandler PerlHeaderParserHandler
syn keyword apacheDeclaration PerlTransHandler PerlAccessHandler PerlAuthenHandler PerlAuthzHandler
syn keyword apacheDeclaration PerlTypeHandler PerlFixupHandler PerlHandler PerlLogHandler
syn keyword apacheDeclaration PerlCleanupHandler PerlChildInitHandler PerlChildExitHandler
syn keyword apacheDeclaration PerlRestartHandler PerlDispatchHandler
syn keyword apacheDeclaration PerlFreshRestart PerlSendHeader
syn keyword apacheDeclaration php_value php_flag php_admin_value php_admin_flag
syn match apacheSection "<\/\=\(Proxy\|ProxyMatch\)[^>]*>" contains=apacheAnything
syn keyword apacheDeclaration AllowCONNECT NoProxy ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize ProxyMaxForwards ProxyPass ProxyPassMatch ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia
syn keyword apacheDeclaration RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule
syn keyword apacheOption inherit
syn keyword apacheDeclaration BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase
syn keyword apacheDeclaration LoadFile LoadModule
syn keyword apacheDeclaration CheckSpelling CheckCaseOnly
syn keyword apacheDeclaration SSLCACertificateFile SSLCACertificatePath SSLCADNRequestFile SSLCADNRequestPath SSLCARevocationFile SSLCARevocationPath SSLCertificateChainFile SSLCertificateFile SSLCertificateKeyFile SSLCipherSuite SSLCryptoDevice SSLEngine SSLHonorCipherOrder SSLMutex SSLOptions SSLPassPhraseDialog SSLProtocol SSLProxyCACertificateFile SSLProxyCACertificatePath SSLProxyCARevocationFile SSLProxyCARevocationPath SSLProxyCipherSuite SSLProxyEngine SSLProxyMachineCertificateFile SSLProxyMachineCertificatePath SSLProxyProtocol SSLProxyVerify SSLProxyVerifyDepth SSLRandomSeed SSLRequire SSLRequireSSL SSLSessionCache SSLSessionCacheTimeout SSLUserName SSLVerifyClient SSLVerifyDepth
syn match apacheOption "[+-]\?\<\(StdEnvVars\|CompatEnvVars\|ExportCertData\|FakeBasicAuth\|StrictRequire\|OptRenegotiate\)\>"
syn keyword apacheOption builtin sem
syn match apacheOption "\(file\|exec\|egd\|dbm\|shm\):"
syn match apacheOption "[+-]\?\<\(SSLv2\|SSLv3\|TLSv1\|kRSA\|kHDr\|kDHd\|kEDH\|aNULL\|aRSA\|aDSS\|aRH\|eNULL\|DES\|3DES\|RC2\|RC4\|IDEA\|MD5\|SHA1\|SHA\|EXP\|EXPORT40\|EXPORT56\|LOW\|MEDIUM\|HIGH\|RSA\|DH\|EDH\|ADH\|DSS\|NULL\)\>"
syn keyword apacheOption optional optional_no_ca
syn keyword apacheDeclaration ExtendedStatus
syn keyword apacheDeclaration SuexecUserGroup
syn keyword apacheDeclaration UserDir
syn keyword apacheDeclaration CookieDomain CookieExpires CookieName CookieStyle CookieTracking
syn keyword apacheOption Netscape Cookie Cookie2 RFC2109 RFC2965
syn match apacheSection "<\/\=\(<IfVersion\)[^>]*>" contains=apacheAnything
syn keyword apacheDeclaration VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP

" Define the default highlighting

hi def link apacheAllowOverride apacheDeclaration
hi def link apacheAllowOverrideValue apacheOption
hi def link apacheAuthType apacheDeclaration
hi def link apacheAuthTypeValue apacheOption
hi def link apacheOptionOption apacheOption
hi def link apacheDeclaration Function
hi def link apacheAnything apacheOption
hi def link apacheOption Number
hi def link apacheComment Comment
hi def link apacheFixme Todo
hi def link apacheLimitSectionKeyword apacheLimitSection
hi def link apacheLimitSection apacheSection
hi def link apacheSection Label
hi def link apacheMethodOption Type
hi def link apacheAllowDeny Include
hi def link apacheAllowDenyValue Identifier
hi def link apacheOrder Special
hi def link apacheOrderValue String
hi def link apacheString String
hi def link apacheError Error
hi def link apacheUserID Number


let b:current_syntax = "apache"
PK�j�Z�z	F�	�	vim80/syntax/chordpro.vimnu�[���" Vim syntax file
" Language:     ChordPro (v. 3.6.2)
" Maintainer:   Niels Bo Andersen <niels@niboan.dk>
" Last Change:	2006 Apr 30
" Remark:       Requires VIM version 6.00 or greater

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn case ignore

syn keyword chordproDirective contained
  \ start_of_chorus soc end_of_chorus eoc new_song ns no_grid ng grid g
  \ new_page np new_physical_page npp start_of_tab sot end_of_tab eot
  \ column_break colb

syn keyword chordproDirWithOpt contained
  \ comment c comment_italic ci comment_box cb title t subtitle st define
  \ textfont textsize chordfont chordsize columns col

syn keyword chordproDefineKeyword contained base-fret frets

syn match chordproDirMatch /{\w*}/ contains=chordproDirective contained transparent
syn match chordproDirOptMatch /{\w*:/ contains=chordproDirWithOpt contained transparent

" Workaround for a bug in VIM 6, which causes incorrect coloring of the first {
if version < 700
  syn region chordproOptions start=/{\w*:/ end=/}/ contains=chordproDirOptMatch contained transparent
  syn region chordproOptions start=/{define:/ end=/}/ contains=chordproDirOptMatch, chordproDefineKeyword contained transparent
else
  syn region chordproOptions start=/{\w*:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch contained
  syn region chordproOptions start=/{define:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch, chordproDefineKeyword contained
endif

syn region chordproTag start=/{/ end=/}/ contains=chordproDirMatch,chordproOptions oneline

syn region chordproChord matchgroup=chordproBracket start=/\[/ end=/]/ oneline

syn region chordproTab start=/{start_of_tab}\|{sot}/hs=e+1 end=/{end_of_tab}\|{eot}/he=s-1 contains=chordproTag,chordproComment keepend

syn region chordproChorus start=/{start_of_chorus}\|{soc}/hs=e+1 end=/{end_of_chorus}\|{eoc}/he=s-1 contains=chordproTag,chordproChord,chordproComment keepend

syn match chordproComment /^#.*/

" Define the default highlighting.
hi def link chordproDirective Statement
hi def link chordproDirWithOpt Statement
hi def link chordproOptions Special
hi def link chordproChord Type
hi def link chordproTag Constant
hi def link chordproTab PreProc
hi def link chordproComment Comment
hi def link chordproBracket Constant
hi def link chordproDefineKeyword Type
hi def chordproChorus term=bold cterm=bold gui=bold

let b:current_syntax = "chordpro"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZP��~��vim80/syntax/cynpp.vimnu�[���" Vim syntax file
" Language:     Cyn++
" Maintainer:   Phil Derrick <phild@forteds.com>
" Last change:  2001 Sep 02
"
" Language Information
"
"		Cynpp (Cyn++) is a macro language to ease coding in Cynlib.
"		Cynlib is a library of C++ classes to allow hardware
"		modelling in C++. Combined with a simulation kernel,
"		the compiled and linked executable forms a hardware
"		simulation of the described design.
"
"		Cyn++ is designed to be HDL-like.
"
"		Further information can be found from www.forteds.com





" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the Cynlib syntax to start with - this includes the C++ syntax
runtime! syntax/cynlib.vim
unlet b:current_syntax



" Cyn++ extensions

syn keyword     cynppMacro      Always EndAlways
syn keyword     cynppMacro      Module EndModule
syn keyword     cynppMacro      Initial EndInitial
syn keyword     cynppMacro      Posedge Negedge Changed
syn keyword     cynppMacro      At
syn keyword     cynppMacro      Thread EndThread
syn keyword     cynppMacro      Instantiate

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cLabel		Label
hi def link cynppMacro  Statement


let b:current_syntax = "cynpp"
PK�j�Z�s�R��vim80/syntax/haml.vimnu�[���" Vim syntax file
" Language:	Haml
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Filenames:	*.haml
" Last Change:	2016 Aug 29

if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'haml'
endif
let b:ruby_no_expensive = 1

runtime! syntax/html.vim
unlet! b:current_syntax
silent! syn include @hamlSassTop syntax/sass.vim
unlet! b:current_syntax
syn include @hamlRubyTop syntax/ruby.vim

syn case match

syn region  rubyCurlyBlock   start="{" end="}" contains=@hamlRubyTop contained
syn cluster hamlRubyTop add=rubyCurlyBlock

syn cluster hamlComponent    contains=hamlAttributes,hamlAttributesHash,hamlClassChar,hamlIdChar,hamlObject,hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable
syn cluster hamlEmbeddedRuby contains=hamlAttributesHash,hamlObject,hamlRuby,hamlRubyFilter
syn cluster hamlTop          contains=hamlBegin,hamlPlainFilter,hamlRubyFilter,hamlSassFilter,hamlComment,hamlHtmlComment

syn match   hamlBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=hamlTag,hamlClassChar,hamlIdChar,hamlRuby,hamlPlainChar,hamlInterpolatable

syn match   hamlTag        "%\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@hamlComponent
syn region  hamlAttributes     matchgroup=hamlAttributesDelimiter start="(" end=")" contained contains=htmlArg,hamlAttributeString,hamlAttributeVariable,htmlEvent,htmlCssDefinition nextgroup=@hamlComponent
syn region  hamlAttributesHash matchgroup=hamlAttributesDelimiter start="{" end="}" contained contains=@hamlRubyTop nextgroup=@hamlComponent
syn region  hamlObject         matchgroup=hamlObjectDelimiter     start="\[" end="\]" contained contains=@hamlRubyTop nextgroup=@hamlComponent
syn match   hamlDespacer "[<>]" contained nextgroup=hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable
syn match   hamlSelfCloser "/" contained
syn match   hamlClassChar "\." contained nextgroup=hamlClass
syn match   hamlIdChar "#{\@!" contained nextgroup=hamlId
syn match   hamlClass "\%(\w\|-\)\+" contained nextgroup=@hamlComponent
syn match   hamlId    "\%(\w\|-\)\+" contained nextgroup=@hamlComponent
syn region  hamlDocType start="^\s*!!!" end="$"

syn region  hamlRuby   matchgroup=hamlRubyOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@hamlRubyTop keepend
syn region  hamlRuby   matchgroup=hamlRubyChar       start="-"           skip=",\s*$" end="$" contained contains=@hamlRubyTop keepend
syn match   hamlPlainChar "\\" contained
syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="!\===\|!=\@!" end="$" keepend contained contains=hamlInterpolation,hamlInterpolationEscape,@hamlHtmlTop
syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="&==\|&=\@!"   end="$" keepend contained contains=hamlInterpolation,hamlInterpolationEscape
syn region hamlInterpolation matchgroup=hamlInterpolationDelimiter start="#{" end="}" contains=@hamlRubyTop containedin=javascriptStringS,javascriptStringD
syn match  hamlInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)"
syn region hamlErbInterpolation matchgroup=hamlInterpolationDelimiter start="<%[=-]\=" end="-\=%>" contained contains=@hamlRubyTop

syn region  hamlAttributeString start=+\%(=\s*\)\@<='+ skip=+\%(\\\\\)*\\'+ end=+'+ contains=hamlInterpolation,hamlInterpolationEscape
syn region  hamlAttributeString start=+\%(=\s*\)\@<="+ skip=+\%(\\\\\)*\\"+ end=+"+ contains=hamlInterpolation,hamlInterpolationEscape
syn match   hamlAttributeVariable "\%(=\s*\)\@<=\%(@@\=\|\$\)\=\w\+" contained

syn match   hamlHelper  "\<action_view?\|\<block_is_haml?\|\<is_haml?\|\.\@<!\<flatten" contained containedin=@hamlEmbeddedRuby,@hamlRubyTop
syn keyword hamlHelper   capture_haml escape_once find_and_preserve haml_concat haml_indent haml_tag html_attrs html_esape init_haml_helpers list_of non_haml precede preserve succeed surround tab_down tab_up page_class contained containedin=@hamlEmbeddedRuby,@hamlRubyTop

syn cluster hamlHtmlTop contains=@htmlTop,htmlBold,htmlItalic,htmlUnderline
syn region  hamlPlainFilter      matchgroup=hamlFilter start="^\z(\s*\):\%(plain\|preserve\|redcloth\|textile\|markdown\|maruku\)\s*$" end="^\%(\z1 \| *$\)\@!" contains=@hamlHtmlTop,hamlInterpolation
syn region  hamlEscapedFilter    matchgroup=hamlFilter start="^\z(\s*\):\%(escaped\|cdata\)\s*$"    end="^\%(\z1 \| *$\)\@!" contains=hamlInterpolation
syn region  hamlErbFilter        matchgroup=hamlFilter start="^\z(\s*\):erb\s*$"        end="^\%(\z1 \| *$\)\@!" contains=@hamlHtmlTop,hamlErbInterpolation
syn region  hamlRubyFilter       matchgroup=hamlFilter start="^\z(\s*\):ruby\s*$"       end="^\%(\z1 \| *$\)\@!" contains=@hamlRubyTop
syn region  hamlJavascriptFilter matchgroup=hamlFilter start="^\z(\s*\):javascript\s*$" end="^\%(\z1 \| *$\)\@!" contains=@htmlJavaScript,hamlInterpolation keepend
syn region  hamlCSSFilter        matchgroup=hamlFilter start="^\z(\s*\):css\s*$"        end="^\%(\z1 \| *$\)\@!" contains=@htmlCss,hamlInterpolation keepend
syn region  hamlSassFilter       matchgroup=hamlFilter start="^\z(\s*\):sass\s*$"       end="^\%(\z1 \| *$\)\@!" contains=@hamlSassTop

syn region  hamlJavascriptBlock start="^\z(\s*\)%script\%((type=[\"']text/javascript[\"'])\)\=\s*$" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlJavaScript keepend
syn region  hamlCssBlock        start="^\z(\s*\)%style" nextgroup=@hamlComponent,hamlError  end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlCss keepend
syn match   hamlError "\$" contained

syn region  hamlComment     start="^\z(\s*\)-#" end="^\%(\z1 \| *$\)\@!" contains=rubyTodo
syn region  hamlHtmlComment start="^\z(\s*\)/"  end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,rubyTodo
syn match   hamlIEConditional "\%(^\s*/\)\@<=\[if\>[^]]*]" contained containedin=hamlHtmlComment

hi def link hamlSelfCloser             Special
hi def link hamlDespacer               Special
hi def link hamlClassChar              Special
hi def link hamlIdChar                 Special
hi def link hamlTag                    Special
hi def link hamlClass                  Type
hi def link hamlId                     Identifier
hi def link hamlPlainChar              Special
hi def link hamlInterpolatableChar     hamlRubyChar
hi def link hamlRubyOutputChar         hamlRubyChar
hi def link hamlRubyChar               Special
hi def link hamlInterpolationDelimiter Delimiter
hi def link hamlInterpolationEscape    Special
hi def link hamlAttributeString        String
hi def link hamlAttributeVariable      Identifier
hi def link hamlDocType                PreProc
hi def link hamlFilter                 PreProc
hi def link hamlAttributesDelimiter    Delimiter
hi def link hamlObjectDelimiter        Delimiter
hi def link hamlHelper                 Function
hi def link hamlHtmlComment            hamlComment
hi def link hamlComment                Comment
hi def link hamlIEConditional          SpecialComment
hi def link hamlError                  Error

let b:current_syntax = "haml"

if main_syntax == "haml"
  unlet main_syntax
endif

" vim:set sw=2:
PK�j�Z�6j��vim80/syntax/snobol4.vimnu�[���" Vim syntax file
" Language:     SNOBOL4
" Maintainer:   Rafal Sulejman <rms@poczta.onet.pl>
" Site: http://rms.republika.pl/vim/syntax/snobol4.vim
" Last change:  : Thu, 25 Jan 2018 14:21:24 +0100
" Changes: 
" - system variables updated for SNOBOL4 2.0+
" - strict snobol4 mode (set snobol4_strict_mode to activate)
" - incorrect HL of dots in strings corrected
" - incorrect HL of dot-variables in parens corrected 
" - one character labels weren't displayed correctly.
" - nonexistent Snobol4 keywords displayed as errors.

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syntax case ignore

" Snobol4 keywords
syn keyword     snobol4Keyword      any apply arb arbno arg array
syn keyword     snobol4Keyword      break
syn keyword     snobol4Keyword      char clear code collect convert copy
syn keyword     snobol4Keyword      data datatype date define detach differ dump dupl
syn keyword     snobol4Keyword      endfile eq eval
syn keyword     snobol4Keyword      field
syn keyword     snobol4Keyword      ge gt ident
syn keyword     snobol4Keyword      input integer item
syn keyword     snobol4Keyword      le len lgt local lpad lt
syn keyword     snobol4Keyword      ne notany
syn keyword     snobol4Keyword      opsyn output
syn keyword     snobol4Keyword      pos prototype
syn keyword     snobol4Keyword      remdr replace rpad rpos rtab rewind
syn keyword     snobol4Keyword      size span stoptr
syn keyword     snobol4Keyword      tab table time trace trim terminal
syn keyword     snobol4Keyword      unload
syn keyword     snobol4Keyword      value

" CSNOBOL keywords
syn keyword     snobol4ExtKeyword   breakx
syn keyword     snobol4ExtKeyword   char chop
syn keyword     snobol4ExtKeyword   date delete
syn keyword     snobol4ExtKeyword   exp
syn keyword     snobol4ExtKeyword   freeze function
syn keyword     snobol4ExtKeyword   host
syn keyword     snobol4ExtKeyword   io_findunit
syn keyword     snobol4ExtKeyword   label lpad leq lge lle llt lne log
syn keyword     snobol4ExtKeyword   ord
syn keyword     snobol4ExtKeyword   reverse rpad rsort rename
syn keyword     snobol4ExtKeyword   serv_listen sset set sort sqrt substr
syn keyword     snobol4ExtKeyword   thaw
syn keyword     snobol4ExtKeyword   vdiffer

syn region      snobol4String       matchgroup=Quote start=+"+ end=+"+
syn region      snobol4String       matchgroup=Quote start=+'+ end=+'+
syn match       snobol4BogusStatement    "^-[^ ][^ ]*"
syn match       snobol4Statement    "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)"
syn match       snobol4Constant     /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1
syn region      snobol4Goto         start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
syn match       snobol4Number       "\<\d*\(\.\d\d*\)*\>" 
syn match       snobol4BogusSysVar  "&\w\{1,}"
syn match       snobol4SysVar       "&\<\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|digits\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)\>"
syn match       snobol4ExtSysVar    "&\(gtrace\|line\|file\|lastline\|lastfile\)"
syn match       snobol4Label        "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*"
syn match       snobol4Comment      "\(^\|;\)\([\*\|!;#].*$\)"

" Parens matching
syn cluster     snobol4ParenGroup   contains=snobol4ParenError
syn region      snobol4Paren        transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket
syn match       snobol4ParenError   display "[\])]"
syn match       snobol4ErrInParen   display contained "[\]{}]\|<%\|%>"
syn region      snobol4Bracket      transparent start='\[\|<:' end=']\|:>' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInParen
syn match       snobol4ErrInBracket display contained "[){}]\|<%\|%>"

" optional shell shebang line
" syn match       snobol4Comment      "^\#\!.*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link snobol4Constant        Constant
hi def link snobol4Label           Label
hi def link snobol4Goto            Repeat
hi def link snobol4Conditional     Conditional
hi def link snobol4Repeat          Repeat
hi def link snobol4Number          Number
hi def link snobol4Error           Error
hi def link snobol4Statement       PreProc
hi def link snobol4BogusStatement  snobol4Error
hi def link snobol4String          String
hi def link snobol4Comment         Comment
hi def link snobol4Special         Special
hi def link snobol4Todo            Todo
hi def link snobol4Keyword         Keyword
hi def link snobol4Function        Function
hi def link snobol4MathsOperator   Operator
hi def link snobol4ParenError      snobol4Error
hi def link snobol4ErrInParen      snobol4Error
hi def link snobol4ErrInBracket    snobol4Error
hi def link snobol4SysVar          Keyword
hi def link snobol4BogusSysVar     snobol4Error
if exists("snobol4_strict_mode")
  hi def link snobol4ExtSysVar       WarningMsg
  hi def link snobol4ExtKeyword      WarningMsg
else
  hi def link snobol4ExtSysVar       snobol4SysVar
  hi def link snobol4ExtKeyword      snobol4Keyword
endif


let b:current_syntax = "snobol4"
" vim: ts=8
PK�j�Z��K-:-:vim80/syntax/php.vimnu�[���" Vim syntax file
" Language: php PHP 3/4/5/7
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: Jul 14, 2017
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
"         Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
"
" Note: If you are using a colour terminal with dark background, you will
"       probably find the 'elflord' colorscheme is much better for PHP's syntax
"       than the default colourscheme, because elflord's colours will better
"       highlight the break-points (Statements) in your code.
"
" Options:
"   Set to anything to enable:
"     php_sql_query           SQL syntax highlighting inside strings
"     php_htmlInStrings       HTML syntax highlighting inside strings
"     php_baselib             highlighting baselib functions
"     php_asp_tags            highlighting ASP-style short tags
"     php_parent_error_close  highlighting parent error ] or )
"     php_parent_error_open   skipping an php end tag, if there exists
"                               an open ( or [ without a closing one
"     php_oldStyle            use old colorstyle
"     php_noShortTags         don't sync <? ?> as php
"   Set to a specific value:
"     php_folding = 1         fold classes and functions
"     php_folding = 2         fold all { } regions
"     php_sync_method = x  where x is an integer:
"                       -1  sync by search ( default )
"                       >0  sync at least x lines backwards
"                       0   sync from start
"   Set to 0 to _disable_:      (Added by Peter Hodge On June 9, 2006)
"     php_special_functions = 0      highlight functions with abnormal behaviour
"     php_alt_comparisons = 0        comparison operators in an alternate colour
"     php_alt_assignByReference = 0  '= &' in an alternate colour
"
"
" Note:
" Setting php_folding=1 will match a closing } by comparing the indent
" before the class or function keyword with the indent of a matching }.
" Setting php_folding=2 will match all of pairs of {,} ( see known
" bugs ii )

" Known Bugs:
"  - setting  php_parent_error_close  on  and  php_parent_error_open  off
"    has these two leaks:
"     i) A closing ) or ] inside a string match to the last open ( or [
"        before the string, when the the closing ) or ] is on the same line
"        where the string started. In this case a following ) or ] after
"        the string would be highlighted as an error, what is incorrect.
"    ii) Same problem if you are setting php_folding = 2 with a closing
"        } inside an string on the first line of this string.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'php'
endif

runtime! syntax/html.vim
unlet b:current_syntax

" accept old options
if !exists("php_sync_method")
  if exists("php_minlines")
    let php_sync_method=php_minlines
  else
    let php_sync_method=-1
  endif
endif

if exists("php_parentError") && !exists("php_parent_error_open") && !exists("php_parent_error_close")
  let php_parent_error_close=1
  let php_parent_error_open=1
endif

syn cluster htmlPreproc add=phpRegion,phpRegionAsp,phpRegionSc

syn include @sqlTop syntax/sql.vim
syn sync clear
unlet b:current_syntax
syn cluster sqlTop remove=sqlString,sqlComment
if exists( "php_sql_query")
  syn cluster phpAddStrings contains=@sqlTop
endif

if exists( "php_htmlInStrings")
  syn cluster phpAddStrings add=@htmlTop
endif

" make sure we can use \ at the begining of the line to do a continuation
let s:cpo_save = &cpo
set cpo&vim

syn case match

" Env Variables
syn keyword phpEnvVar GATEWAY_INTERFACE SERVER_NAME SERVER_SOFTWARE SERVER_PROTOCOL REQUEST_METHOD QUERY_STRING DOCUMENT_ROOT HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_CONNECTION HTTP_HOST HTTP_REFERER HTTP_USER_AGENT REMOTE_ADDR REMOTE_PORT SCRIPT_FILENAME SERVER_ADMIN SERVER_PORT SERVER_SIGNATURE PATH_TRANSLATED SCRIPT_NAME REQUEST_URI contained

" Internal Variables
syn keyword phpIntVar GLOBALS PHP_ERRMSG PHP_SELF HTTP_GET_VARS HTTP_POST_VARS HTTP_COOKIE_VARS HTTP_POST_FILES HTTP_ENV_VARS HTTP_SERVER_VARS HTTP_SESSION_VARS HTTP_RAW_POST_DATA HTTP_STATE_VARS _GET _POST _COOKIE _FILES _SERVER _ENV _SERVER _REQUEST _SESSION contained

" Constants
syn keyword phpCoreConstant PHP_VERSION PHP_OS DEFAULT_INCLUDE_PATH PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_BINDIR PHP_LIBDIR PHP_DATADIR PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END contained

" Predefined constants
" Generated by: curl -q http://php.net/manual/en/errorfunc.constants.php | grep -oP 'E_\w+' | sort -u
syn keyword phpCoreConstant E_ALL E_COMPILE_ERROR E_COMPILE_WARNING E_CORE_ERROR E_CORE_WARNING E_DEPRECATED E_ERROR E_NOTICE E_PARSE E_RECOVERABLE_ERROR E_STRICT E_USER_DEPRECATED E_USER_ERROR E_USER_NOTICE E_USER_WARNING E_WARNING contained

syn case ignore

syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__ __TRAIT__ contained


" Function and Methods ripped from php_manual_de.tar.gz Jan 2003
syn keyword phpFunctions apache_child_terminate apache_get_modules apache_get_version apache_getenv apache_lookup_uri apache_note apache_request_headers apache_response_headers apache_setenv ascii2ebcdic ebcdic2ascii getallheaders virtual contained
syn keyword phpFunctions array_change_key_case array_chunk array_column array_combine array_count_values array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_diff array_fill_keys array_fill array_filter array_flip array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey array_intersect array_key_exists array_keys array_map array_merge_recursive array_merge array_multisort array_pad array_pop array_product array_push array_rand array_reduce array_replace_recursive array_replace array_reverse array_search array_shift array_slice array_splice array_sum array_udiff_assoc array_udiff_uassoc array_udiff array_uintersect_assoc array_uintersect_uassoc array_uintersect array_unique array_unshift array_values array_walk_recursive array_walk arsort asort count current each end in_array key_exists key krsort ksort natcasesort natsort next pos prev range reset rsort shuffle sizeof sort uasort uksort usort contained
syn keyword phpFunctions aspell_check aspell_new aspell_suggest contained
syn keyword phpFunctions bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub contained
syn keyword phpFunctions bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite contained
syn keyword phpFunctions cal_days_in_month cal_from_jd cal_info cal_to_jd easter_date easter_days frenchtojd gregoriantojd jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd juliantojd unixtojd contained
syn keyword phpFunctions ccvs_add ccvs_auth ccvs_command ccvs_count ccvs_delete ccvs_done ccvs_init ccvs_lookup ccvs_new ccvs_report ccvs_return ccvs_reverse ccvs_sale ccvs_status ccvs_textvalue ccvs_void contained
syn keyword phpFunctions call_user_method_array call_user_method class_exists get_class_methods get_class_vars get_class get_declared_classes get_object_vars get_parent_class is_a is_subclass_of method_exists contained
syn keyword phpFunctions com VARIANT com_addref com_get com_invoke com_isenum com_load_typelib com_load com_propget com_propput com_propset com_release com_set contained
syn keyword phpFunctions cpdf_add_annotation cpdf_add_outline cpdf_arc cpdf_begin_text cpdf_circle cpdf_clip cpdf_close cpdf_closepath_fill_stroke cpdf_closepath_stroke cpdf_closepath cpdf_continue_text cpdf_curveto cpdf_end_text cpdf_fill_stroke cpdf_fill cpdf_finalize_page cpdf_finalize cpdf_global_set_document_limits cpdf_import_jpeg cpdf_lineto cpdf_moveto cpdf_newpath cpdf_open cpdf_output_buffer cpdf_page_init cpdf_place_inline_image cpdf_rect cpdf_restore cpdf_rlineto cpdf_rmoveto cpdf_rotate_text cpdf_rotate cpdf_save_to_file cpdf_save cpdf_scale cpdf_set_action_url cpdf_set_char_spacing cpdf_set_creator cpdf_set_current_page cpdf_set_font_directories cpdf_set_font_map_file cpdf_set_font cpdf_set_horiz_scaling cpdf_set_keywords cpdf_set_leading cpdf_set_page_animation cpdf_set_subject cpdf_set_text_matrix cpdf_set_text_pos cpdf_set_text_rendering cpdf_set_text_rise cpdf_set_title cpdf_set_viewer_preferences cpdf_set_word_spacing cpdf_setdash cpdf_setflat cpdf_setgray_fill cpdf_setgray_stroke cpdf_setgray cpdf_setlinecap cpdf_setlinejoin cpdf_setlinewidth cpdf_setmiterlimit cpdf_setrgbcolor_fill cpdf_setrgbcolor_stroke cpdf_setrgbcolor cpdf_show_xy cpdf_show cpdf_stringwidth cpdf_stroke cpdf_text cpdf_translate contained
syn keyword phpFunctions crack_check crack_closedict crack_getlastmessage crack_opendict contained
syn keyword phpFunctions ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_graph ctype_lower ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit contained
syn keyword phpFunctions curl_close curl_errno curl_error curl_exec curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_setopt curl_version contained
syn keyword phpFunctions cybercash_base64_decode cybercash_base64_encode cybercash_decr cybercash_encr contained
syn keyword phpFunctions cyrus_authenticate cyrus_bind cyrus_close cyrus_connect cyrus_query cyrus_unbind contained
syn keyword phpFunctions checkdate date getdate gettimeofday gmdate gmmktime gmstrftime localtime microtime mktime strftime strtotime time contained
syn keyword phpFunctions dba_close dba_delete dba_exists dba_fetch dba_firstkey dba_handlers dba_insert dba_key_split dba_list dba_nextkey dba_open dba_optimize dba_popen dba_replace dba_sync contained
syn keyword phpFunctions dbase_add_record dbase_close dbase_create dbase_delete_record dbase_get_header_info dbase_get_record_with_names dbase_get_record dbase_numfields dbase_numrecords dbase_open dbase_pack dbase_replace_record contained
syn keyword phpFunctions dblist dbmclose dbmdelete dbmexists dbmfetch dbmfirstkey dbminsert dbmnextkey dbmopen dbmreplace contained
syn keyword phpFunctions dbplus_add dbplus_aql dbplus_chdir dbplus_close dbplus_curr dbplus_errcode dbplus_errno dbplus_find dbplus_first dbplus_flush dbplus_freealllocks dbplus_freelock dbplus_freerlocks dbplus_getlock dbplus_getunique dbplus_info dbplus_last dbplus_lockrel dbplus_next dbplus_open dbplus_prev dbplus_rchperm dbplus_rcreate dbplus_rcrtexact dbplus_rcrtlike dbplus_resolve dbplus_restorepos dbplus_rkeys dbplus_ropen dbplus_rquery dbplus_rrename dbplus_rsecindex dbplus_runlink dbplus_rzap dbplus_savepos dbplus_setindex dbplus_setindexbynumber dbplus_sql dbplus_tcl dbplus_tremove dbplus_undo dbplus_undoprepare dbplus_unlockrel dbplus_unselect dbplus_update dbplus_xlockrel dbplus_xunlockrel contained
syn keyword phpFunctions dbx_close dbx_compare dbx_connect dbx_error dbx_escape_string dbx_fetch_row dbx_query dbx_sort contained
syn keyword phpFunctions dio_close dio_fcntl dio_open dio_read dio_seek dio_stat dio_tcsetattr dio_truncate dio_write contained
syn keyword phpFunctions chdir chroot dir closedir getcwd opendir readdir rewinddir scandir contained
syn keyword phpFunctions domxml_new_doc domxml_open_file domxml_open_mem domxml_version domxml_xmltree domxml_xslt_stylesheet_doc domxml_xslt_stylesheet_file domxml_xslt_stylesheet xpath_eval_expression xpath_eval xpath_new_context xptr_eval xptr_new_context contained
syn keyword phpMethods name specified value create_attribute create_cdata_section create_comment create_element_ns create_element create_entity_reference create_processing_instruction create_text_node doctype document_element dump_file dump_mem get_element_by_id get_elements_by_tagname html_dump_mem xinclude entities internal_subset name notations public_id system_id get_attribute_node get_attribute get_elements_by_tagname has_attribute remove_attribute set_attribute tagname add_namespace append_child append_sibling attributes child_nodes clone_node dump_node first_child get_content has_attributes has_child_nodes insert_before is_blank_node last_child next_sibling node_name node_type node_value owner_document parent_node prefix previous_sibling remove_child replace_child replace_node set_content set_name set_namespace unlink_node data target process result_dump_file result_dump_mem contained
syn keyword phpFunctions dotnet_load contained
syn keyword phpFunctions debug_backtrace debug_print_backtrace error_log error_reporting restore_error_handler set_error_handler trigger_error user_error contained
syn keyword phpFunctions escapeshellarg escapeshellcmd exec passthru proc_close proc_get_status proc_nice proc_open proc_terminate shell_exec system contained
syn keyword phpFunctions fam_cancel_monitor fam_close fam_monitor_collection fam_monitor_directory fam_monitor_file fam_next_event fam_open fam_pending fam_resume_monitor fam_suspend_monitor contained
syn keyword phpFunctions fbsql_affected_rows fbsql_autocommit fbsql_change_user fbsql_close fbsql_commit fbsql_connect fbsql_create_blob fbsql_create_clob fbsql_create_db fbsql_data_seek fbsql_database_password fbsql_database fbsql_db_query fbsql_db_status fbsql_drop_db fbsql_errno fbsql_error fbsql_fetch_array fbsql_fetch_assoc fbsql_fetch_field fbsql_fetch_lengths fbsql_fetch_object fbsql_fetch_row fbsql_field_flags fbsql_field_len fbsql_field_name fbsql_field_seek fbsql_field_table fbsql_field_type fbsql_free_result fbsql_get_autostart_info fbsql_hostname fbsql_insert_id fbsql_list_dbs fbsql_list_fields fbsql_list_tables fbsql_next_result fbsql_num_fields fbsql_num_rows fbsql_password fbsql_pconnect fbsql_query fbsql_read_blob fbsql_read_clob fbsql_result fbsql_rollback fbsql_select_db fbsql_set_lob_mode fbsql_set_transaction fbsql_start_db fbsql_stop_db fbsql_tablename fbsql_username fbsql_warnings contained
syn keyword phpFunctions fdf_add_doc_javascript fdf_add_template fdf_close fdf_create fdf_enum_values fdf_errno fdf_error fdf_get_ap fdf_get_attachment fdf_get_encoding fdf_get_file fdf_get_flags fdf_get_opt fdf_get_status fdf_get_value fdf_get_version fdf_header fdf_next_field_name fdf_open_string fdf_open fdf_remove_item fdf_save_string fdf_save fdf_set_ap fdf_set_encoding fdf_set_file fdf_set_flags fdf_set_javascript_action fdf_set_opt fdf_set_status fdf_set_submit_form_action fdf_set_target_frame fdf_set_value fdf_set_version contained
syn keyword phpFunctions filepro_fieldcount filepro_fieldname filepro_fieldtype filepro_fieldwidth filepro_retrieve filepro_rowcount filepro contained
syn keyword phpFunctions basename chgrp chmod chown clearstatcache copy delete dirname disk_free_space disk_total_space diskfreespace fclose feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents file fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype flock fnmatch fopen fpassthru fputs fread fscanf fseek fstat ftell ftruncate fwrite glob is_dir is_executable is_file is_link is_readable is_uploaded_file is_writable is_writeable link linkinfo lstat mkdir move_uploaded_file parse_ini_file pathinfo pclose popen readfile readlink realpath rename rewind rmdir set_file_buffer stat symlink tempnam tmpfile touch umask unlink contained
syn keyword phpFunctions fribidi_log2vis contained
syn keyword phpFunctions ftp_alloc ftp_cdup ftp_chdir ftp_chmod ftp_close ftp_connect ftp_delete ftp_exec ftp_fget ftp_fput ftp_get_option ftp_get ftp_login ftp_mdtm ftp_mkdir ftp_nb_continue ftp_nb_fget ftp_nb_fput ftp_nb_get ftp_nb_put ftp_nlist ftp_pasv ftp_put ftp_pwd ftp_quit ftp_raw ftp_rawlist ftp_rename ftp_rmdir ftp_set_option ftp_site ftp_size ftp_ssl_connect ftp_systype contained
syn keyword phpFunctions call_user_func_array call_user_func create_function func_get_arg func_get_args func_num_args function_exists get_defined_functions register_shutdown_function register_tick_function unregister_tick_function contained
syn keyword phpFunctions bind_textdomain_codeset bindtextdomain dcgettext dcngettext dgettext dngettext gettext ngettext textdomain contained
syn keyword phpFunctions gmp_abs gmp_add gmp_and gmp_clrbit gmp_cmp gmp_com gmp_div_q gmp_div_qr gmp_div_r gmp_div gmp_divexact gmp_fact gmp_gcd gmp_gcdext gmp_hamdist gmp_init gmp_intval gmp_invert gmp_jacobi gmp_legendre gmp_mod gmp_mul gmp_neg gmp_or gmp_perfect_square gmp_popcount gmp_pow gmp_powm gmp_prob_prime gmp_random gmp_scan0 gmp_scan1 gmp_setbit gmp_sign gmp_sqrt gmp_sqrtrem gmp_sqrtrm gmp_strval gmp_sub gmp_xor contained
syn keyword phpFunctions header headers_list headers_sent setcookie contained
syn keyword phpFunctions hw_api_attribute hwapi_hgcsp hw_api_content hw_api_object contained
syn keyword phpMethods key langdepvalue value values checkin checkout children mimetype read content copy dbstat dcstat dstanchors dstofsrcanchors count reason find ftstat hwstat identify info insert insertanchor insertcollection insertdocument link lock move assign attreditable count insert remove title value object objectbyanchor parents description type remove replace setcommitedversion srcanchors srcsofdst unlock user userlist contained
syn keyword phpFunctions hw_Array2Objrec hw_changeobject hw_Children hw_ChildrenObj hw_Close hw_Connect hw_connection_info hw_cp hw_Deleteobject hw_DocByAnchor hw_DocByAnchorObj hw_Document_Attributes hw_Document_BodyTag hw_Document_Content hw_Document_SetContent hw_Document_Size hw_dummy hw_EditText hw_Error hw_ErrorMsg hw_Free_Document hw_GetAnchors hw_GetAnchorsObj hw_GetAndLock hw_GetChildColl hw_GetChildCollObj hw_GetChildDocColl hw_GetChildDocCollObj hw_GetObject hw_GetObjectByQuery hw_GetObjectByQueryColl hw_GetObjectByQueryCollObj hw_GetObjectByQueryObj hw_GetParents hw_GetParentsObj hw_getrellink hw_GetRemote hw_getremotechildren hw_GetSrcByDestObj hw_GetText hw_getusername hw_Identify hw_InCollections hw_Info hw_InsColl hw_InsDoc hw_insertanchors hw_InsertDocument hw_InsertObject hw_mapid hw_Modifyobject hw_mv hw_New_Document hw_objrec2array hw_Output_Document hw_pConnect hw_PipeDocument hw_Root hw_setlinkroot hw_stat hw_Unlock hw_Who contained
syn keyword phpFunctions ibase_add_user ibase_affected_rows ibase_blob_add ibase_blob_cancel ibase_blob_close ibase_blob_create ibase_blob_echo ibase_blob_get ibase_blob_import ibase_blob_info ibase_blob_open ibase_close ibase_commit_ret ibase_commit ibase_connect ibase_delete_user ibase_drop_db ibase_errcode ibase_errmsg ibase_execute ibase_fetch_assoc ibase_fetch_object ibase_fetch_row ibase_field_info ibase_free_event_handler ibase_free_query ibase_free_result ibase_gen_id ibase_modify_user ibase_name_result ibase_num_fields ibase_num_params ibase_param_info ibase_pconnect ibase_prepare ibase_query ibase_rollback_ret ibase_rollback ibase_set_event_handler ibase_timefmt ibase_trans ibase_wait_event contained
syn keyword phpFunctions iconv_get_encoding iconv_mime_decode_headers iconv_mime_decode iconv_mime_encode iconv_set_encoding iconv_strlen iconv_strpos iconv_strrpos iconv_substr iconv ob_iconv_handler contained
syn keyword phpFunctions ifx_affected_rows ifx_blobinfile_mode ifx_byteasvarchar ifx_close ifx_connect ifx_copy_blob ifx_create_blob ifx_create_char ifx_do ifx_error ifx_errormsg ifx_fetch_row ifx_fieldproperties ifx_fieldtypes ifx_free_blob ifx_free_char ifx_free_result ifx_get_blob ifx_get_char ifx_getsqlca ifx_htmltbl_result ifx_nullformat ifx_num_fields ifx_num_rows ifx_pconnect ifx_prepare ifx_query ifx_textasvarchar ifx_update_blob ifx_update_char ifxus_close_slob ifxus_create_slob ifxus_free_slob ifxus_open_slob ifxus_read_slob ifxus_seek_slob ifxus_tell_slob ifxus_write_slob contained
syn keyword phpFunctions exif_imagetype exif_read_data exif_thumbnail gd_info getimagesize image_type_to_mime_type image2wbmp imagealphablending imageantialias imagearc imagechar imagecharup imagecolorallocate imagecolorallocatealpha imagecolorat imagecolorclosest imagecolorclosestalpha imagecolorclosesthwb imagecolordeallocate imagecolorexact imagecolorexactalpha imagecolormatch imagecolorresolve imagecolorresolvealpha imagecolorset imagecolorsforindex imagecolorstotal imagecolortransparent imagecopy imagecopymerge imagecopymergegray imagecopyresampled imagecopyresized imagecreate imagecreatefromgd2 imagecreatefromgd2part imagecreatefromgd imagecreatefromgif imagecreatefromjpeg imagecreatefrompng imagecreatefromstring imagecreatefromwbmp imagecreatefromxbm imagecreatefromxpm imagecreatetruecolor imagedashedline imagedestroy imageellipse imagefill imagefilledarc imagefilledellipse imagefilledpolygon imagefilledrectangle imagefilltoborder imagefontheight imagefontwidth imageftbbox imagefttext imagegammacorrect imagegd2 imagegd imagegif imageinterlace imageistruecolor imagejpeg imageline imageloadfont imagepalettecopy imagepng imagepolygon imagepsbbox imagepscopyfont imagepsencodefont imagepsextendfont imagepsfreefont imagepsloadfont imagepsslantfont imagepstext imagerectangle imagerotate imagesavealpha imagesetbrush imagesetpixel imagesetstyle imagesetthickness imagesettile imagestring imagestringup imagesx imagesy imagetruecolortopalette imagettfbbox imagettftext imagetypes imagewbmp iptcembed iptcparse jpeg2wbmp png2wbmp read_exif_data contained
syn keyword phpFunctions imap_8bit imap_alerts imap_append imap_base64 imap_binary imap_body imap_bodystruct imap_check imap_clearflag_full imap_close imap_createmailbox imap_delete imap_deletemailbox imap_errors imap_expunge imap_fetch_overview imap_fetchbody imap_fetchheader imap_fetchstructure imap_get_quota imap_get_quotaroot imap_getacl imap_getmailboxes imap_getsubscribed imap_header imap_headerinfo imap_headers imap_last_error imap_list imap_listmailbox imap_listscan imap_listsubscribed imap_lsub imap_mail_compose imap_mail_copy imap_mail_move imap_mail imap_mailboxmsginfo imap_mime_header_decode imap_msgno imap_num_msg imap_num_recent imap_open imap_ping imap_qprint imap_renamemailbox imap_reopen imap_rfc822_parse_adrlist imap_rfc822_parse_headers imap_rfc822_write_address imap_scanmailbox imap_search imap_set_quota imap_setacl imap_setflag_full imap_sort imap_status imap_subscribe imap_thread imap_timeout imap_uid imap_undelete imap_unsubscribe imap_utf7_decode imap_utf7_encode imap_utf8 contained
syn keyword phpFunctions assert_options assert dl extension_loaded get_cfg_var get_current_user get_defined_constants get_extension_funcs get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime get_required_files getenv getlastmod getmygid getmyinode getmypid getmyuid getopt getrusage ini_alter ini_get_all ini_get ini_restore ini_set main memory_get_usage php_ini_scanned_files php_logo_guid php_sapi_name php_uname phpcredits phpinfo phpversion putenv restore_include_path set_include_path set_magic_quotes_runtime set_time_limit version_compare zend_logo_guid zend_version contained
syn keyword phpFunctions ingres_autocommit ingres_close ingres_commit ingres_connect ingres_fetch_array ingres_fetch_object ingres_fetch_row ingres_field_length ingres_field_name ingres_field_nullable ingres_field_precision ingres_field_scale ingres_field_type ingres_num_fields ingres_num_rows ingres_pconnect ingres_query ingres_rollback contained
syn keyword phpFunctions ircg_channel_mode ircg_disconnect ircg_fetch_error_msg ircg_get_username ircg_html_encode ircg_ignore_add ircg_ignore_del ircg_is_conn_alive ircg_join ircg_kick ircg_lookup_format_messages ircg_msg ircg_nick ircg_nickname_escape ircg_nickname_unescape ircg_notice ircg_part ircg_pconnect ircg_register_format_messages ircg_set_current ircg_set_file ircg_set_on_die ircg_topic ircg_whois contained
syn keyword phpFunctions java_last_exception_clear java_last_exception_get contained
syn keyword phpFunctions json_decode json_encode json_last_error contained
syn keyword phpFunctions ldap_8859_to_t61 ldap_add ldap_bind ldap_close ldap_compare ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry ldap_first_reference ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_option ldap_get_values_len ldap_get_values ldap_list ldap_mod_add ldap_mod_del ldap_mod_replace ldap_modify ldap_next_attribute ldap_next_entry ldap_next_reference ldap_parse_reference ldap_parse_result ldap_read ldap_rename ldap_search ldap_set_option ldap_set_rebind_proc ldap_sort ldap_start_tls ldap_t61_to_8859 ldap_unbind contained
syn keyword phpFunctions lzf_compress lzf_decompress lzf_optimized_for contained
syn keyword phpFunctions ezmlm_hash mail contained
syn keyword phpFunctions mailparse_determine_best_xfer_encoding mailparse_msg_create mailparse_msg_extract_part_file mailparse_msg_extract_part mailparse_msg_free mailparse_msg_get_part_data mailparse_msg_get_part mailparse_msg_get_structure mailparse_msg_parse_file mailparse_msg_parse mailparse_rfc822_parse_addresses mailparse_stream_encode mailparse_uudecode_all contained
syn keyword phpFunctions abs acos acosh asin asinh atan2 atan atanh base_convert bindec ceil cos cosh decbin dechex decoct deg2rad exp expm1 floor fmod getrandmax hexdec hypot is_finite is_infinite is_nan lcg_value log10 log1p log max min mt_getrandmax mt_rand mt_srand octdec pi pow rad2deg rand round sin sinh sqrt srand tan tanh contained
syn keyword phpFunctions mb_convert_case mb_convert_encoding mb_convert_kana mb_convert_variables mb_decode_mimeheader mb_decode_numericentity mb_detect_encoding mb_detect_order mb_encode_mimeheader mb_encode_numericentity mb_ereg_match mb_ereg_replace mb_ereg_search_getpos mb_ereg_search_getregs mb_ereg_search_init mb_ereg_search_pos mb_ereg_search_regs mb_ereg_search_setpos mb_ereg_search mb_ereg mb_eregi_replace mb_eregi mb_get_info mb_http_input mb_http_output mb_internal_encoding mb_language mb_output_handler mb_parse_str mb_preferred_mime_name mb_regex_encoding mb_regex_set_options mb_send_mail mb_split mb_strcut mb_strimwidth mb_strlen mb_strpos mb_strrpos mb_strtolower mb_strtoupper mb_strwidth mb_substitute_character mb_substr_count mb_substr contained
syn keyword phpFunctions mcal_append_event mcal_close mcal_create_calendar mcal_date_compare mcal_date_valid mcal_day_of_week mcal_day_of_year mcal_days_in_month mcal_delete_calendar mcal_delete_event mcal_event_add_attribute mcal_event_init mcal_event_set_alarm mcal_event_set_category mcal_event_set_class mcal_event_set_description mcal_event_set_end mcal_event_set_recur_daily mcal_event_set_recur_monthly_mday mcal_event_set_recur_monthly_wday mcal_event_set_recur_none mcal_event_set_recur_weekly mcal_event_set_recur_yearly mcal_event_set_start mcal_event_set_title mcal_expunge mcal_fetch_current_stream_event mcal_fetch_event mcal_is_leap_year mcal_list_alarms mcal_list_events mcal_next_recurrence mcal_open mcal_popen mcal_rename_calendar mcal_reopen mcal_snooze mcal_store_event mcal_time_valid mcal_week_of_year contained
syn keyword phpFunctions mcrypt_cbc mcrypt_cfb mcrypt_create_iv mcrypt_decrypt mcrypt_ecb mcrypt_enc_get_algorithms_name mcrypt_enc_get_block_size mcrypt_enc_get_iv_size mcrypt_enc_get_key_size mcrypt_enc_get_modes_name mcrypt_enc_get_supported_key_sizes mcrypt_enc_is_block_algorithm_mode mcrypt_enc_is_block_algorithm mcrypt_enc_is_block_mode mcrypt_enc_self_test mcrypt_encrypt mcrypt_generic_deinit mcrypt_generic_end mcrypt_generic_init mcrypt_generic mcrypt_get_block_size mcrypt_get_cipher_name mcrypt_get_iv_size mcrypt_get_key_size mcrypt_list_algorithms mcrypt_list_modes mcrypt_module_close mcrypt_module_get_algo_block_size mcrypt_module_get_algo_key_size mcrypt_module_get_supported_key_sizes mcrypt_module_is_block_algorithm_mode mcrypt_module_is_block_algorithm mcrypt_module_is_block_mode mcrypt_module_open mcrypt_module_self_test mcrypt_ofb mdecrypt_generic contained
syn keyword phpFunctions mcve_adduser mcve_adduserarg mcve_bt mcve_checkstatus mcve_chkpwd mcve_chngpwd mcve_completeauthorizations mcve_connect mcve_connectionerror mcve_deleteresponse mcve_deletetrans mcve_deleteusersetup mcve_deluser mcve_destroyconn mcve_destroyengine mcve_disableuser mcve_edituser mcve_enableuser mcve_force mcve_getcell mcve_getcellbynum mcve_getcommadelimited mcve_getheader mcve_getuserarg mcve_getuserparam mcve_gft mcve_gl mcve_gut mcve_initconn mcve_initengine mcve_initusersetup mcve_iscommadelimited mcve_liststats mcve_listusers mcve_maxconntimeout mcve_monitor mcve_numcolumns mcve_numrows mcve_override mcve_parsecommadelimited mcve_ping mcve_preauth mcve_preauthcompletion mcve_qc mcve_responseparam mcve_return mcve_returncode mcve_returnstatus mcve_sale mcve_setblocking mcve_setdropfile mcve_setip mcve_setssl_files mcve_setssl mcve_settimeout mcve_settle mcve_text_avs mcve_text_code mcve_text_cv mcve_transactionauth mcve_transactionavs mcve_transactionbatch mcve_transactioncv mcve_transactionid mcve_transactionitem mcve_transactionssent mcve_transactiontext mcve_transinqueue mcve_transnew mcve_transparam mcve_transsend mcve_ub mcve_uwait mcve_verifyconnection mcve_verifysslcert mcve_void contained
syn keyword phpFunctions mhash_count mhash_get_block_size mhash_get_hash_name mhash_keygen_s2k mhash contained
syn keyword phpFunctions mime_content_type contained
syn keyword phpFunctions ming_setcubicthreshold ming_setscale ming_useswfversion SWFAction SWFBitmap swfbutton_keypress SWFbutton SWFDisplayItem SWFFill SWFFont SWFGradient SWFMorph SWFMovie SWFShape SWFSprite SWFText SWFTextField contained
syn keyword phpMethods getHeight getWidth addAction addShape setAction setdown setHit setOver setUp addColor move moveTo multColor remove Rotate rotateTo scale scaleTo setDepth setName setRatio skewX skewXTo skewY skewYTo moveTo rotateTo scaleTo skewXTo skewYTo getwidth addEntry getshape1 getshape2 add nextframe output remove save setbackground setdimension setframes setrate streammp3 addFill drawCurve drawCurveTo drawLine drawLineTo movePen movePenTo setLeftFill setLine setRightFill add nextframe remove setframes addString getWidth moveTo setColor setFont setHeight setSpacing addstring align setbounds setcolor setFont setHeight setindentation setLeftMargin setLineSpacing setMargins setname setrightMargin contained
syn keyword phpFunctions connection_aborted connection_status connection_timeout constant define defined die eval exit get_browser highlight_file highlight_string ignore_user_abort pack show_source sleep uniqid unpack usleep contained
syn keyword phpFunctions udm_add_search_limit udm_alloc_agent udm_api_version udm_cat_list udm_cat_path udm_check_charset udm_check_stored udm_clear_search_limits udm_close_stored udm_crc32 udm_errno udm_error udm_find udm_free_agent udm_free_ispell_data udm_free_res udm_get_doc_count udm_get_res_field udm_get_res_param udm_load_ispell_data udm_open_stored udm_set_agent_param contained
syn keyword phpFunctions msession_connect msession_count msession_create msession_destroy msession_disconnect msession_find msession_get_array msession_get msession_getdata msession_inc msession_list msession_listvar msession_lock msession_plugin msession_randstr msession_set_array msession_set msession_setdata msession_timeout msession_uniq msession_unlock contained
syn keyword phpFunctions msql_affected_rows msql_close msql_connect msql_create_db msql_createdb msql_data_seek msql_dbname msql_drop_db msql_dropdb msql_error msql_fetch_array msql_fetch_field msql_fetch_object msql_fetch_row msql_field_seek msql_fieldflags msql_fieldlen msql_fieldname msql_fieldtable msql_fieldtype msql_free_result msql_freeresult msql_list_dbs msql_list_fields msql_list_tables msql_listdbs msql_listfields msql_listtables msql_num_fields msql_num_rows msql_numfields msql_numrows msql_pconnect msql_query msql_regcase msql_result msql_select_db msql_selectdb msql_tablename msql contained
syn keyword phpFunctions mssql_bind mssql_close mssql_connect mssql_data_seek mssql_execute mssql_fetch_array mssql_fetch_assoc mssql_fetch_batch mssql_fetch_field mssql_fetch_object mssql_fetch_row mssql_field_length mssql_field_name mssql_field_seek mssql_field_type mssql_free_result mssql_free_statement mssql_get_last_message mssql_guid_string mssql_init mssql_min_error_severity mssql_min_message_severity mssql_next_result mssql_num_fields mssql_num_rows mssql_pconnect mssql_query mssql_result mssql_rows_affected mssql_select_db contained
syn keyword phpFunctions muscat_close muscat_get muscat_give muscat_setup_net muscat_setup contained
syn keyword phpFunctions mysql_affected_rows mysql_change_user mysql_client_encoding mysql_close mysql_connect mysql_create_db mysql_data_seek mysql_db_name mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_escape_string mysql_fetch_array mysql_fetch_assoc mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type mysql_free_result mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql_insert_id mysql_list_dbs mysql_list_fields mysql_list_processes mysql_list_tables mysql_num_fields mysql_num_rows mysql_pconnect mysql_ping mysql_query mysql_real_escape_string mysql_result mysql_select_db mysql_stat mysql_tablename mysql_thread_id mysql_unbuffered_query contained
syn keyword phpFunctions mysqli_affected_rows mysqli_autocommit mysqli_bind_param mysqli_bind_result mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect mysqli_data_seek mysqli_debug mysqli_disable_reads_from_master mysqli_disable_rpl_parse mysqli_dump_debug_info mysqli_enable_reads_from_master mysqli_enable_rpl_parse mysqli_errno mysqli_error mysqli_execute mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_fetch mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_client_info mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_master_query mysqli_num_fields mysqli_num_rows mysqli_options mysqli_param_count mysqli_ping mysqli_prepare_result mysqli_prepare mysqli_profiler mysqli_query mysqli_read_query_result mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reload mysqli_rollback mysqli_rpl_parse_enabled mysqli_rpl_probe mysqli_rpl_query_type mysqli_select_db mysqli_send_long_data mysqli_send_query mysqli_slave_query mysqli_ssl_set mysqli_stat mysqli_stmt_affected_rows mysqli_stmt_close mysqli_stmt_errno mysqli_stmt_error mysqli_stmt_store_result mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count contained
syn keyword phpFunctions ncurses_addch ncurses_addchnstr ncurses_addchstr ncurses_addnstr ncurses_addstr ncurses_assume_default_colors ncurses_attroff ncurses_attron ncurses_attrset ncurses_baudrate ncurses_beep ncurses_bkgd ncurses_bkgdset ncurses_border ncurses_bottom_panel ncurses_can_change_color ncurses_cbreak ncurses_clear ncurses_clrtobot ncurses_clrtoeol ncurses_color_content ncurses_color_set ncurses_curs_set ncurses_def_prog_mode ncurses_def_shell_mode ncurses_define_key ncurses_del_panel ncurses_delay_output ncurses_delch ncurses_deleteln ncurses_delwin ncurses_doupdate ncurses_echo ncurses_echochar ncurses_end ncurses_erase ncurses_erasechar ncurses_filter ncurses_flash ncurses_flushinp ncurses_getch ncurses_getmaxyx ncurses_getmouse ncurses_getyx ncurses_halfdelay ncurses_has_colors ncurses_has_ic ncurses_has_il ncurses_has_key ncurses_hide_panel ncurses_hline ncurses_inch ncurses_init_color ncurses_init_pair ncurses_init ncurses_insch ncurses_insdelln ncurses_insertln ncurses_insstr ncurses_instr ncurses_isendwin ncurses_keyok ncurses_keypad ncurses_killchar ncurses_longname ncurses_meta ncurses_mouse_trafo ncurses_mouseinterval ncurses_mousemask ncurses_move_panel ncurses_move ncurses_mvaddch ncurses_mvaddchnstr ncurses_mvaddchstr ncurses_mvaddnstr ncurses_mvaddstr ncurses_mvcur ncurses_mvdelch ncurses_mvgetch ncurses_mvhline ncurses_mvinch ncurses_mvvline ncurses_mvwaddstr ncurses_napms ncurses_new_panel ncurses_newpad ncurses_newwin ncurses_nl ncurses_nocbreak ncurses_noecho ncurses_nonl ncurses_noqiflush ncurses_noraw ncurses_pair_content ncurses_panel_above ncurses_panel_below ncurses_panel_window ncurses_pnoutrefresh ncurses_prefresh ncurses_putp ncurses_qiflush ncurses_raw ncurses_refresh ncurses_replace_panel ncurses_reset_prog_mode ncurses_reset_shell_mode ncurses_resetty ncurses_savetty ncurses_scr_dump ncurses_scr_init ncurses_scr_restore ncurses_scr_set ncurses_scrl ncurses_show_panel ncurses_slk_attr ncurses_slk_attroff ncurses_slk_attron ncurses_slk_attrset ncurses_slk_clear ncurses_slk_color ncurses_slk_init ncurses_slk_noutrefresh ncurses_slk_refresh ncurses_slk_restore ncurses_slk_set ncurses_slk_touch ncurses_standend ncurses_standout ncurses_start_color ncurses_termattrs ncurses_termname ncurses_timeout ncurses_top_panel ncurses_typeahead ncurses_ungetch ncurses_ungetmouse ncurses_update_panels ncurses_use_default_colors ncurses_use_env ncurses_use_extended_names ncurses_vidattr ncurses_vline ncurses_waddch ncurses_waddstr ncurses_wattroff ncurses_wattron ncurses_wattrset ncurses_wborder ncurses_wclear ncurses_wcolor_set ncurses_werase ncurses_wgetch ncurses_whline ncurses_wmouse_trafo ncurses_wmove ncurses_wnoutrefresh ncurses_wrefresh ncurses_wstandend ncurses_wstandout ncurses_wvline contained
syn keyword phpFunctions checkdnsrr closelog debugger_off debugger_on define_syslog_variables dns_check_record dns_get_mx dns_get_record fsockopen gethostbyaddr gethostbyname gethostbynamel getmxrr getprotobyname getprotobynumber getservbyname getservbyport ip2long long2ip openlog pfsockopen socket_get_status socket_set_blocking socket_set_timeout syslog contained
syn keyword phpFunctions yp_all yp_cat yp_err_string yp_errno yp_first yp_get_default_domain yp_master yp_match yp_next yp_order contained
syn keyword phpFunctions notes_body notes_copy_db notes_create_db notes_create_note notes_drop_db notes_find_note notes_header_info notes_list_msgs notes_mark_read notes_mark_unread notes_nav_create notes_search notes_unread notes_version contained
syn keyword phpFunctions nsapi_request_headers nsapi_response_headers nsapi_virtual contained
syn keyword phpFunctions aggregate_info aggregate_methods_by_list aggregate_methods_by_regexp aggregate_methods aggregate_properties_by_list aggregate_properties_by_regexp aggregate_properties aggregate aggregation_info deaggregate contained
syn keyword phpFunctions ocibindbyname ocicancel ocicloselob ocicollappend ocicollassign ocicollassignelem ocicollgetelem ocicollmax ocicollsize ocicolltrim ocicolumnisnull ocicolumnname ocicolumnprecision ocicolumnscale ocicolumnsize ocicolumntype ocicolumntyperaw ocicommit ocidefinebyname ocierror ociexecute ocifetch ocifetchinto ocifetchstatement ocifreecollection ocifreecursor ocifreedesc ocifreestatement ociinternaldebug ociloadlob ocilogoff ocilogon ocinewcollection ocinewcursor ocinewdescriptor ocinlogon ocinumcols ociparse ociplogon ociresult ocirollback ocirowcount ocisavelob ocisavelobfile ociserverversion ocisetprefetch ocistatementtype ociwritelobtofile ociwritetemporarylob contained
syn keyword phpFunctions odbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables contained
syn keyword phpFunctions openssl_cipher_iv_length openssl_csr_export_to_file openssl_csr_export openssl_csr_get_public_key openssl_csr_get_subject openssl_csr_new openssl_csr_sign openssl_decrypt openssl_dh_compute_key openssl_digest openssl_encrypt openssl_error_string openssl_free_key openssl_get_cert_locations openssl_get_cipher_methods openssl_get_md_methods openssl_get_privatekey openssl_get_publickey openssl_open openssl_pbkdf2 openssl_pkcs12_export_to_file openssl_pkcs12_export openssl_pkcs12_read openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export_to_file openssl_pkey_export openssl_pkey_free openssl_pkey_get_details openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_random_pseudo_bytes openssl_seal openssl_sign openssl_spki_export_challenge openssl_spki_export openssl_spki_new openssl_spki_verify openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export_to_file openssl_x509_export openssl_x509_fingerprint openssl_x509_free openssl_x509_parse openssl_x509_read contained
syn keyword phpFunctions ora_bind ora_close ora_columnname ora_columnsize ora_columntype ora_commit ora_commitoff ora_commiton ora_do ora_error ora_errorcode ora_exec ora_fetch_into ora_fetch ora_getcolumn ora_logoff ora_logon ora_numcols ora_numrows ora_open ora_parse ora_plogon ora_rollback contained
syn keyword phpFunctions flush ob_clean ob_end_clean ob_end_flush ob_flush ob_get_clean ob_get_contents ob_get_flush ob_get_length ob_get_level ob_get_status ob_gzhandler ob_implicit_flush ob_list_handlers ob_start output_add_rewrite_var output_reset_rewrite_vars contained
syn keyword phpFunctions overload contained
syn keyword phpFunctions ovrimos_close ovrimos_commit ovrimos_connect ovrimos_cursor ovrimos_exec ovrimos_execute ovrimos_fetch_into ovrimos_fetch_row ovrimos_field_len ovrimos_field_name ovrimos_field_num ovrimos_field_type ovrimos_free_result ovrimos_longreadlen ovrimos_num_fields ovrimos_num_rows ovrimos_prepare ovrimos_result_all ovrimos_result ovrimos_rollback contained
syn keyword phpFunctions pcntl_exec pcntl_fork pcntl_signal pcntl_waitpid pcntl_wexitstatus pcntl_wifexited pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig contained
syn keyword phpFunctions preg_grep preg_match_all preg_match preg_quote preg_replace_callback preg_replace preg_split contained
syn keyword phpFunctions pdf_add_annotation pdf_add_bookmark pdf_add_launchlink pdf_add_locallink pdf_add_note pdf_add_outline pdf_add_pdflink pdf_add_thumbnail pdf_add_weblink pdf_arc pdf_arcn pdf_attach_file pdf_begin_page pdf_begin_pattern pdf_begin_template pdf_circle pdf_clip pdf_close_image pdf_close_pdi_page pdf_close_pdi pdf_close pdf_closepath_fill_stroke pdf_closepath_stroke pdf_closepath pdf_concat pdf_continue_text pdf_curveto pdf_delete pdf_end_page pdf_end_pattern pdf_end_template pdf_endpath pdf_fill_stroke pdf_fill pdf_findfont pdf_get_buffer pdf_get_font pdf_get_fontname pdf_get_fontsize pdf_get_image_height pdf_get_image_width pdf_get_majorversion pdf_get_minorversion pdf_get_parameter pdf_get_pdi_parameter pdf_get_pdi_value pdf_get_value pdf_initgraphics pdf_lineto pdf_makespotcolor pdf_moveto pdf_new pdf_open_CCITT pdf_open_file pdf_open_gif pdf_open_image_file pdf_open_image pdf_open_jpeg pdf_open_memory_image pdf_open_pdi_page pdf_open_pdi pdf_open_png pdf_open_tiff pdf_open pdf_place_image pdf_place_pdi_page pdf_rect pdf_restore pdf_rotate pdf_save pdf_scale pdf_set_border_color pdf_set_border_dash pdf_set_border_style pdf_set_char_spacing pdf_set_duration pdf_set_font pdf_set_horiz_scaling pdf_set_info_author pdf_set_info_creator pdf_set_info_keywords pdf_set_info_subject pdf_set_info_title pdf_set_info pdf_set_leading pdf_set_parameter pdf_set_text_matrix pdf_set_text_pos pdf_set_text_rendering pdf_set_text_rise pdf_set_value pdf_set_word_spacing pdf_setcolor pdf_setdash pdf_setflat pdf_setfont pdf_setgray_fill pdf_setgray_stroke pdf_setgray pdf_setlinecap pdf_setlinejoin pdf_setlinewidth pdf_setmatrix pdf_setmiterlimit pdf_setpolydash pdf_setrgbcolor_fill pdf_setrgbcolor_stroke pdf_setrgbcolor pdf_show_boxed pdf_show_xy pdf_show pdf_skew pdf_stringwidth pdf_stroke pdf_translate contained
syn keyword phpFunctions pfpro_cleanup pfpro_init pfpro_process_raw pfpro_process pfpro_version contained
syn keyword phpFunctions pg_affected_rows pg_cancel_query pg_client_encoding pg_close pg_connect pg_connection_busy pg_connection_reset pg_connection_status pg_convert pg_copy_from pg_copy_to pg_dbname pg_delete pg_end_copy pg_escape_bytea pg_escape_string pg_fetch_all pg_fetch_array pg_fetch_assoc pg_fetch_object pg_fetch_result pg_fetch_row pg_field_is_null pg_field_name pg_field_num pg_field_prtlen pg_field_size pg_field_type pg_free_result pg_get_notify pg_get_pid pg_get_result pg_host pg_insert pg_last_error pg_last_notice pg_last_oid pg_lo_close pg_lo_create pg_lo_export pg_lo_import pg_lo_open pg_lo_read_all pg_lo_read pg_lo_seek pg_lo_tell pg_lo_unlink pg_lo_write pg_meta_data pg_num_fields pg_num_rows pg_options pg_pconnect pg_ping pg_port pg_put_line pg_query pg_result_error pg_result_seek pg_result_status pg_select pg_send_query pg_set_client_encoding pg_trace pg_tty pg_unescape_bytea pg_untrace pg_update contained
syn keyword phpFunctions posix_ctermid posix_get_last_error posix_getcwd posix_getegid posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid posix_isatty posix_kill posix_mkfifo posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid posix_setuid posix_strerror posix_times posix_ttyname posix_uname contained
syn keyword phpFunctions printer_abort printer_close printer_create_brush printer_create_dc printer_create_font printer_create_pen printer_delete_brush printer_delete_dc printer_delete_font printer_delete_pen printer_draw_bmp printer_draw_chord printer_draw_elipse printer_draw_line printer_draw_pie printer_draw_rectangle printer_draw_roundrect printer_draw_text printer_end_doc printer_end_page printer_get_option printer_list printer_logical_fontheight printer_open printer_select_brush printer_select_font printer_select_pen printer_set_option printer_start_doc printer_start_page printer_write contained
syn keyword phpFunctions pspell_add_to_personal pspell_add_to_session pspell_check pspell_clear_session pspell_config_create pspell_config_ignore pspell_config_mode pspell_config_personal pspell_config_repl pspell_config_runtogether pspell_config_save_repl pspell_new_config pspell_new_personal pspell_new pspell_save_wordlist pspell_store_replacement pspell_suggest contained
syn keyword phpFunctions qdom_error qdom_tree contained
syn keyword phpFunctions readline_add_history readline_clear_history readline_completion_function readline_info readline_list_history readline_read_history readline_write_history readline contained
syn keyword phpFunctions recode_file recode_string recode contained
syn keyword phpFunctions ereg_replace ereg eregi_replace eregi split spliti sql_regcase contained
syn keyword phpFunctions ftok msg_get_queue msg_receive msg_remove_queue msg_send msg_set_queue msg_stat_queue sem_acquire sem_get sem_release sem_remove shm_attach shm_detach shm_get_var shm_put_var shm_remove_var shm_remove contained
syn keyword phpFunctions sesam_affected_rows sesam_commit sesam_connect sesam_diagnostic sesam_disconnect sesam_errormsg sesam_execimm sesam_fetch_array sesam_fetch_result sesam_fetch_row sesam_field_array sesam_field_name sesam_free_result sesam_num_fields sesam_query sesam_rollback sesam_seek_row sesam_settransaction contained
syn keyword phpFunctions session_cache_expire session_cache_limiter session_decode session_destroy session_encode session_get_cookie_params session_id session_is_registered session_module_name session_name session_regenerate_id session_register session_save_path session_set_cookie_params session_set_save_handler session_start session_unregister session_unset session_write_close contained
syn keyword phpFunctions shmop_close shmop_delete shmop_open shmop_read shmop_size shmop_write contained
syn keyword phpFunctions snmp_get_quick_print snmp_set_quick_print snmpget snmprealwalk snmpset snmpwalk snmpwalkoid contained
syn keyword phpFunctions socket_accept socket_bind socket_clear_error socket_close socket_connect socket_create_listen socket_create_pair socket_create socket_get_option socket_getpeername socket_getsockname socket_iovec_add socket_iovec_alloc socket_iovec_delete socket_iovec_fetch socket_iovec_free socket_iovec_set socket_last_error socket_listen socket_read socket_readv socket_recv socket_recvfrom socket_recvmsg socket_select socket_send socket_sendmsg socket_sendto socket_set_block socket_set_nonblock socket_set_option socket_shutdown socket_strerror socket_write socket_writev contained
syn keyword phpFunctions sqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_fetch_array sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen sqlite_query sqlite_rewind sqlite_seek sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query contained
syn keyword phpFunctions stream_context_create stream_context_get_options stream_context_set_option stream_context_set_params stream_copy_to_stream stream_filter_append stream_filter_prepend stream_filter_register stream_get_contents stream_get_filters stream_get_line stream_get_meta_data stream_get_transports stream_get_wrappers stream_register_wrapper stream_select stream_set_blocking stream_set_timeout stream_set_write_buffer stream_socket_accept stream_socket_client stream_socket_get_name stream_socket_recvfrom stream_socket_sendto stream_socket_server stream_wrapper_register contained
syn keyword phpFunctions addcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string count_chars crc32 crypt explode fprintf get_html_translation_table hebrev hebrevc html_entity_decode htmlentities htmlspecialchars implode join levenshtein localeconv ltrim md5_file md5 metaphone money_format nl_langinfo nl2br number_format ord parse_str print printf quoted_printable_decode quotemeta rtrim setlocale sha1_file sha1 similar_text soundex sprintf sscanf str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count strcasecmp strchr strcmp strcoll strcspn strip_tags stripcslashes stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpos strrchr strrev strripos strrpos strspn strstr strtok strtolower strtoupper strtr substr_compare substr_count substr_replace substr trim ucfirst ucwords vprintf vsprintf wordwrap contained
syn keyword phpFunctions swf_actiongeturl swf_actiongotoframe swf_actiongotolabel swf_actionnextframe swf_actionplay swf_actionprevframe swf_actionsettarget swf_actionstop swf_actiontogglequality swf_actionwaitforframe swf_addbuttonrecord swf_addcolor swf_closefile swf_definebitmap swf_definefont swf_defineline swf_definepoly swf_definerect swf_definetext swf_endbutton swf_enddoaction swf_endshape swf_endsymbol swf_fontsize swf_fontslant swf_fonttracking swf_getbitmapinfo swf_getfontinfo swf_getframe swf_labelframe swf_lookat swf_modifyobject swf_mulcolor swf_nextid swf_oncondition swf_openfile swf_ortho2 swf_ortho swf_perspective swf_placeobject swf_polarview swf_popmatrix swf_posround swf_pushmatrix swf_removeobject swf_rotate swf_scale swf_setfont swf_setframe swf_shapearc swf_shapecurveto3 swf_shapecurveto swf_shapefillbitmapclip swf_shapefillbitmaptile swf_shapefilloff swf_shapefillsolid swf_shapelinesolid swf_shapelineto swf_shapemoveto swf_showframe swf_startbutton swf_startdoaction swf_startshape swf_startsymbol swf_textwidth swf_translate swf_viewport contained
syn keyword phpFunctions sybase_affected_rows sybase_close sybase_connect sybase_data_seek sybase_deadlock_retry_count sybase_fetch_array sybase_fetch_assoc sybase_fetch_field sybase_fetch_object sybase_fetch_row sybase_field_seek sybase_free_result sybase_get_last_message sybase_min_client_severity sybase_min_error_severity sybase_min_message_severity sybase_min_server_severity sybase_num_fields sybase_num_rows sybase_pconnect sybase_query sybase_result sybase_select_db sybase_set_message_handler sybase_unbuffered_query contained
syn keyword phpFunctions tidy_access_count tidy_clean_repair tidy_config_count tidy_diagnose tidy_error_count tidy_get_body tidy_get_config tidy_get_error_buffer tidy_get_head tidy_get_html_ver tidy_get_html tidy_get_output tidy_get_release tidy_get_root tidy_get_status tidy_getopt tidy_is_xhtml tidy_load_config tidy_parse_file tidy_parse_string tidy_repair_file tidy_repair_string tidy_reset_config tidy_save_config tidy_set_encoding tidy_setopt tidy_warning_count contained
syn keyword phpMethods attributes children get_attr get_nodes has_children has_siblings is_asp is_comment is_html is_jsp is_jste is_text is_xhtml is_xml next prev tidy_node contained
syn keyword phpFunctions token_get_all token_name contained
syn keyword phpFunctions base64_decode base64_encode get_meta_tags http_build_query parse_url rawurldecode rawurlencode urldecode urlencode contained
syn keyword phpFunctions doubleval empty floatval get_defined_vars get_resource_type gettype import_request_variables intval is_array is_bool is_callable is_double is_float is_int is_integer is_long is_null is_numeric is_object is_real is_resource is_scalar is_string isset print_r serialize settype strval unserialize unset var_dump var_export contained
syn keyword phpFunctions vpopmail_add_alias_domain_ex vpopmail_add_alias_domain vpopmail_add_domain_ex vpopmail_add_domain vpopmail_add_user vpopmail_alias_add vpopmail_alias_del_domain vpopmail_alias_del vpopmail_alias_get_all vpopmail_alias_get vpopmail_auth_user vpopmail_del_domain_ex vpopmail_del_domain vpopmail_del_user vpopmail_error vpopmail_passwd vpopmail_set_user_quota contained
syn keyword phpFunctions w32api_deftype w32api_init_dtype w32api_invoke_function w32api_register_function w32api_set_call_method contained
syn keyword phpFunctions wddx_add_vars wddx_deserialize wddx_packet_end wddx_packet_start wddx_serialize_value wddx_serialize_vars contained
syn keyword phpFunctions utf8_decode utf8_encode xml_error_string xml_get_current_byte_index xml_get_current_column_number xml_get_current_line_number xml_get_error_code xml_parse_into_struct xml_parse xml_parser_create_ns xml_parser_create xml_parser_free xml_parser_get_option xml_parser_set_option xml_set_character_data_handler xml_set_default_handler xml_set_element_handler xml_set_end_namespace_decl_handler xml_set_external_entity_ref_handler xml_set_notation_decl_handler xml_set_object xml_set_processing_instruction_handler xml_set_start_namespace_decl_handler xml_set_unparsed_entity_decl_handler contained
syn keyword phpFunctions xmlrpc_decode_request xmlrpc_decode xmlrpc_encode_request xmlrpc_encode xmlrpc_get_type xmlrpc_parse_method_descriptions xmlrpc_server_add_introspection_data xmlrpc_server_call_method xmlrpc_server_create xmlrpc_server_destroy xmlrpc_server_register_introspection_callback xmlrpc_server_register_method xmlrpc_set_type contained
syn keyword phpFunctions xslt_create xslt_errno xslt_error xslt_free xslt_output_process xslt_set_base xslt_set_encoding xslt_set_error_handler xslt_set_log xslt_set_sax_handler xslt_set_sax_handlers xslt_set_scheme_handler xslt_set_scheme_handlers contained
syn keyword phpFunctions yaz_addinfo yaz_ccl_conf yaz_ccl_parse yaz_close yaz_connect yaz_database yaz_element yaz_errno yaz_error yaz_es_result yaz_get_option yaz_hits yaz_itemorder yaz_present yaz_range yaz_record yaz_scan_result yaz_scan yaz_schema yaz_search yaz_set_option yaz_sort yaz_syntax yaz_wait contained
syn keyword phpFunctions zip_close zip_entry_close zip_entry_compressedsize zip_entry_compressionmethod zip_entry_filesize zip_entry_name zip_entry_open zip_entry_read zip_open zip_read contained
syn keyword phpFunctions gzclose gzcompress gzdeflate gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell gzuncompress gzwrite readgzfile zlib_get_coding_type contained

if exists( "php_baselib" )
  syn keyword phpMethods query next_record num_rows affected_rows nf f p np num_fields haltmsg seek link_id query_id metadata table_names nextid connect halt free register unregister is_registered delete url purl self_url pself_url hidden_session add_query padd_query reimport_get_vars reimport_post_vars reimport_cookie_vars set_container set_tokenname release_token put_headers get_id get_id put_id freeze thaw gc reimport_any_vars start url purl login_if is_authenticated auth_preauth auth_loginform auth_validatelogin auth_refreshlogin auth_registerform auth_doregister start check have_perm permsum perm_invalid contained
  syn keyword phpFunctions page_open page_close sess_load sess_save contained
endif

" Conditional
syn keyword phpConditional declare else enddeclare endswitch elseif endif if switch contained

" Repeat
syn keyword phpRepeat as do endfor endforeach endwhile for foreach while contained

" Repeat
syn keyword phpLabel case default switch contained

" Statement
syn keyword phpStatement return break continue exit goto yield contained

" Keyword
syn keyword phpKeyword var const contained

" Type
syn keyword phpType bool boolean int integer real double float string array object NULL callable iterable contained

" Structure
syn keyword phpStructure namespace extends implements instanceof parent self contained

" Operator
syn match phpOperator "[-=+%^&|*!.~?:]" contained display
syn match phpOperator "[-+*/%^&|.]=" contained display
syn match phpOperator "/[^*/]"me=e-1 contained display
syn match phpOperator "\$" contained display
syn match phpOperator "&&\|\<and\>" contained display
syn match phpOperator "||\|\<x\=or\>" contained display
syn match phpRelation "[!=<>]=" contained display
syn match phpRelation "[<>]" contained display
syn match phpMemberSelector "->" contained display
syn match phpVarSelector "\$" contained display

" Identifier
syn match phpIdentifier "$\h\w*" contained contains=phpEnvVar,phpIntVar,phpVarSelector display
syn match phpIdentifierSimply "${\h\w*}" contains=phpOperator,phpParent contained display
syn region phpIdentifierComplex matchgroup=phpParent start="{\$"rs=e-1 end="}" contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained

" Interpolated indentifiers (inside strings)
	syn match phpBrackets "[][}{]" contained display
	" errors
		syn match phpInterpSimpleError "\[[^]]*\]" contained display " fallback (if nothing else matches)
		syn match phpInterpSimpleError "->[^a-zA-Z_]" contained display
		" make sure these stay above the correct DollarCurlies so they don't take priority
		syn match phpInterpBogusDollarCurley "${[^}]*}" contained display " fallback (if nothing else matches)
	syn match phpinterpSimpleBracketsInner "\w\+" contained
	syn match phpInterpSimpleBrackets "\[\h\w*]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
	syn match phpInterpSimpleBrackets "\[\d\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
	syn match phpInterpSimpleBrackets "\[0[xX]\x\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
	syn match phpInterpSimple "\$\h\w*\(\[[^]]*\]\|->\h\w*\)\?" contained contains=phpInterpSimpleBrackets,phpIdentifier,phpInterpSimpleError,phpMethods,phpMemberSelector display
	syn match phpInterpVarname "\h\w*" contained
	syn match phpInterpMethodName "\h\w*" contained " default color
	syn match phpInterpSimpleCurly "\${\h\w*}" contains=phpInterpVarname contained extend
	syn region phpInterpDollarCurley1Helper matchgroup=phpParent start="{" end="\[" contains=phpInterpVarname contained
	syn region phpInterpDollarCurly1 matchgroup=phpParent start="\${\h\w*\["rs=s+1 end="]}" contains=phpInterpDollarCurley1Helper,@phpClConst contained extend

	syn match phpInterpDollarCurley2Helper "{\h\w*->" contains=phpBrackets,phpInterpVarname,phpMemberSelector contained

	syn region phpInterpDollarCurly2 matchgroup=phpParent start="\${\h\w*->"rs=s+1 end="}" contains=phpInterpDollarCurley2Helper,phpInterpMethodName contained

	syn match phpInterpBogusDollarCurley "${\h\w*->}" contained display
	syn match phpInterpBogusDollarCurley "${\h\w*\[]}" contained display

	syn region phpInterpComplex matchgroup=phpParent start="{\$"rs=e-1 end="}" contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
	syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
	" define a cluster to get all interpolation syntaxes for double-quoted strings
	syn cluster phpInterpDouble contains=phpInterpSimple,phpInterpSimpleCurly,phpInterpDollarCurly1,phpInterpDollarCurly2,phpInterpBogusDollarCurley,phpInterpComplex

" Methoden
syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelector display

" Include
syn keyword phpInclude include require include_once require_once use contained

" Define
syn keyword phpDefine new clone contained

" Boolean
syn keyword phpBoolean true false contained

" Number
syn match phpNumber "-\=\<\d\+\>" contained display
syn match phpNumber "\<0x\x\{1,8}\>" contained display

" Float
syn match phpFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" contained display

" Backslash escapes
	syn case match
	" for double quotes and heredoc
	syn match phpBackslashSequences "\\[fnrtv\\\"$]" contained display
	syn match phpBackslashSequences "\\\d\{1,3}" contained contains=phpOctalError display
	syn match phpBackslashSequences "\\x\x\{1,2}" contained display
	" additional sequence for double quotes only
	syn match phpBackslashDoubleQuote "\\[\"]" contained display
	" for single quotes only
	syn match phpBackslashSingleQuote "\\[\\']" contained display
	syn case ignore


" Error
syn match phpOctalError "[89]" contained display
if exists("php_parent_error_close")
  syn match phpParentError "[)\]}]" contained display
endif

" Todo
syn keyword phpTodo todo fixme xxx contained

" Comment
if exists("php_parent_error_open")
  syn region phpComment start="/\*" end="\*/" contained contains=phpTodo,@Spell
else
  syn region phpComment start="/\*" end="\*/" contained contains=phpTodo,@Spell extend
endif
syn match phpComment "#.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell

" String
if exists("php_parent_error_open")
  syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble,@Spell contained keepend
  syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained keepend
  syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote,@Spell contained keepend
else
  syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble,@Spell contained extend keepend
  syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
  syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote,@Spell contained keepend extend
endif

" HereDoc and NowDoc
syn case match

" HereDoc
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\I\i*\)\2$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend

" NowDoc
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\I\i*\)'$" end="^\z1\(;\=$\)\@=" contained contains=@Spell keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,@Spell keepend extend
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,@Spell keepend extend
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,@Spell keepend extend
syn case ignore

" Parent
if exists("php_parent_error_close") || exists("php_parent_error_open")
  syn match phpParent "[{}]" contained
  syn region phpParent matchgroup=Delimiter start="(" end=")" contained contains=@phpClInside transparent
  syn region phpParent matchgroup=Delimiter start="\[" end="\]" contained contains=@phpClInside transparent
  if !exists("php_parent_error_close")
    syn match phpParent "[\])]" contained
  endif
else
  syn match phpParent "[({[\]})]" contained
endif

syn cluster phpClConst contains=phpFunctions,phpIdentifier,phpConditional,phpRepeat,phpStatement,phpOperator,phpRelation,phpStringSingle,phpStringDouble,phpBacktick,phpNumber,phpFloat,phpKeyword,phpType,phpBoolean,phpStructure,phpMethodsVar,phpConstant,phpCoreConstant,phpException
syn cluster phpClInside contains=@phpClConst,phpComment,phpLabel,phpParent,phpParentError,phpInclude,phpHereDoc,phpNowDoc
syn cluster phpClFunction contains=@phpClInside,phpDefine,phpParentError,phpStorageClass
syn cluster phpClTop contains=@phpClFunction,phpFoldFunction,phpFoldClass,phpFoldInterface,phpFoldTry,phpFoldCatch

" Php Region
if exists("php_parent_error_open")
  if exists("php_noShortTags")
    syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop
  else
    syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop
  endif
  syn region phpRegionSc matchgroup=Delimiter start=+<script language="php">+ end=+</script>+ contains=@phpClTop
  if exists("php_asp_tags")
    syn region phpRegionAsp matchgroup=Delimiter start="<%\(=\)\=" end="%>" contains=@phpClTop
  endif
else
  if exists("php_noShortTags")
    syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop keepend
  else
    syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop keepend
  endif
  syn region phpRegionSc matchgroup=Delimiter start=+<script language="php">+ end=+</script>+ contains=@phpClTop keepend
  if exists("php_asp_tags")
    syn region phpRegionAsp matchgroup=Delimiter start="<%\(=\)\=" end="%>" contains=@phpClTop keepend
  endif
endif

" Fold
if exists("php_folding") && php_folding==1
" match one line constructs here and skip them at folding
  syn keyword phpSCKeyword abstract final private protected public static contained
  syn keyword phpFCKeyword function contained
  syn keyword phpStorageClass global contained
  syn match phpDefine "\(\s\|^\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\(\s\+.*[;}]\)\@=" contained contains=phpSCKeyword
  syn match phpStructure "\(\s\|^\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\(\s\+.*}\)\@=" contained
  syn match phpStructure "\(\s\|^\)interface\(\s\+.*}\)\@=" contained
  syn match phpException "\(\s\|^\)try\(\s\+.*}\)\@=" contained
  syn match phpException "\(\s\|^\)catch\(\s\+.*}\)\@=" contained
  syn match phpException "\(\s\|^\)finally\(\s\+.*}\)\@=" contained

  set foldmethod=syntax
  syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
  syn region phpFoldFunction matchgroup=Storageclass start="^\z(\s*\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\s\([^};]*$\)\@="rs=e-9 matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldHtmlInside,phpFCKeyword contained transparent fold extend
  syn region phpFoldFunction matchgroup=Define start="^function\s\([^};]*$\)\@=" matchgroup=Delimiter end="^}" contains=@phpClFunction,phpFoldHtmlInside contained transparent fold extend
  syn region phpFoldClass matchgroup=Structure start="^\z(\s*\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction,phpSCKeyword contained transparent fold extend
  syn region phpFoldInterface matchgroup=Structure start="^\z(\s*\)interface\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
  syn region phpFoldCatch matchgroup=Exception start="^\z(\s*\)catch\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
  syn region phpFoldTry matchgroup=Exception start="^\z(\s*\)try\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
else
  syn keyword phpDefine function contained
  syn keyword phpStructure abstract class trait interface contained
  syn keyword phpException catch throw try finally contained
  syn keyword phpStorageClass final global private protected public static contained
  if exists("php_folding") && php_folding==2
    set foldmethod=syntax
    syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
    syn region phpParent matchgroup=Delimiter start="{" end="}" contained contains=@phpClFunction,phpFoldHtmlInside transparent fold
  endif
endif

" ================================================================
" Peter Hodge - June 9, 2006
" Some of these changes (highlighting isset/unset/echo etc) are not so
" critical, but they make things more colourful. :-)

" different syntax highlighting for 'echo', 'print', 'switch', 'die' and 'list' keywords
" to better indicate what they are.
syntax keyword phpDefine echo print contained
syntax keyword phpStructure list contained
syntax keyword phpConditional switch contained
syntax keyword phpStatement die contained

" Highlighting for PHP5's user-definable magic class methods
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier
  \ __construct __destruct __call __callStatic __get __set __isset __unset __sleep __wakeup __toString __invoke __set_state __clone __debugInfo
" Highlighting for __autoload slightly different from line above
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
  \ __autoload
hi def link phpSpecialFunction phpOperator

" Highlighting for PHP5's built-in classes
" - built-in classes harvested from get_declared_classes() in 5.1.4
syntax keyword phpClasses containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
  \ stdClass __PHP_Incomplete_Class php_user_filter Directory ArrayObject
  \ Exception ErrorException LogicException BadFunctionCallException BadMethodCallException DomainException
  \ RecursiveIteratorIterator IteratorIterator FilterIterator RecursiveFilterIterator ParentIterator LimitIterator
  \ CachingIterator RecursiveCachingIterator NoRewindIterator AppendIterator InfiniteIterator EmptyIterator
  \ ArrayIterator RecursiveArrayIterator DirectoryIterator RecursiveDirectoryIterator
  \ InvalidArgumentException LengthException OutOfRangeException RuntimeException OutOfBoundsException
  \ OverflowException RangeException UnderflowException UnexpectedValueException
  \ PDO PDOException PDOStatement PDORow
  \ Reflection ReflectionFunction ReflectionParameter ReflectionMethod ReflectionClass
  \ ReflectionObject ReflectionProperty ReflectionExtension ReflectionException
  \ SplFileInfo SplFileObject SplTempFileObject SplObjectStorage
  \ XMLWriter LibXMLError XMLReader SimpleXMLElement SimpleXMLIterator
  \ DOMException DOMStringList DOMNameList DOMDomError DOMErrorHandler
  \ DOMImplementation DOMImplementationList DOMImplementationSource
  \ DOMNode DOMNameSpaceNode DOMDocumentFragment DOMDocument DOMNodeList DOMNamedNodeMap
  \ DOMCharacterData DOMAttr DOMElement DOMText DOMComment DOMTypeinfo DOMUserDataHandler
  \ DOMLocator DOMConfiguration DOMCdataSection DOMDocumentType DOMNotation DOMEntity
  \ DOMEntityReference DOMProcessingInstruction DOMStringExtend DOMXPath
hi def link phpClasses phpFunctions

" Highlighting for PHP5's built-in interfaces
" - built-in classes harvested from get_declared_interfaces() in 5.1.4
syntax keyword phpInterfaces containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
  \ Iterator IteratorAggregate RecursiveIterator OuterIterator SeekableIterator
  \ Traversable ArrayAccess Serializable Countable SplObserver SplSubject Reflector
hi def link phpInterfaces phpConstant

" option defaults:
if ! exists('php_special_functions')
  let php_special_functions = 1
endif
if ! exists('php_alt_comparisons')
  let php_alt_comparisons = 1
endif
if ! exists('php_alt_assignByReference')
  let php_alt_assignByReference = 1
endif

if php_special_functions
  " Highlighting for PHP built-in functions which exhibit special behaviours
  " - isset()/unset()/empty() are not real functions.
  " - compact()/extract() directly manipulate variables in the local scope where
  "   regular functions would not be able to.
  " - eval() is the token 'make_your_code_twice_as_complex()' function for PHP.
  " - user_error()/trigger_error() can be overloaded by set_error_handler and also
  "   have the capacity to terminate your script when type is E_USER_ERROR.
  syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
  \ user_error trigger_error isset unset eval extract compact empty
endif

if php_alt_assignByReference
  " special highlighting for '=&' operator
  syntax match phpAssignByRef /=\s*&/ containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
    hi def link phpAssignByRef Type
endif

if php_alt_comparisons
  " highlight comparison operators differently
  syntax match phpComparison "\v[=!]\=\=?" contained containedin=phpRegion
  syntax match phpComparison "\v[=<>-]@<![<>]\=?[<>]@!" contained containedin=phpRegion

  " highlight the 'instanceof' operator as a comparison operator rather than a structure
  syntax case ignore
  syntax keyword phpComparison instanceof contained containedin=phpRegion

  hi def link phpComparison Statement
endif

" ================================================================

" Sync
if php_sync_method==-1
  if exists("php_noShortTags")
    syn sync match phpRegionSync grouphere phpRegion "^\s*<?php\s*$"
  else
    syn sync match phpRegionSync grouphere phpRegion "^\s*<?\(php\)\=\s*$"
  endif
  syn sync match phpRegionSync grouphere phpRegionSc +^\s*<script language="php">\s*$+
  if exists("php_asp_tags")
    syn sync match phpRegionSync grouphere phpRegionAsp "^\s*<%\(=\)\=\s*$"
  endif
  syn sync match phpRegionSync grouphere NONE "^\s*?>\s*$"
  syn sync match phpRegionSync grouphere NONE "^\s*%>\s*$"
  syn sync match phpRegionSync grouphere phpRegion "function\s.*(.*\$"
  "syn sync match phpRegionSync grouphere NONE "/\i*>\s*$"
elseif php_sync_method>0
  exec "syn sync minlines=" . php_sync_method
else
  exec "syn sync fromstart"
endif

syntax match phpDocCustomTags "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment
syntax region phpDocTags start="{@\(example\|id\|internal\|inheritdoc\|link\|source\|toc\|tutorial\)" end="}" containedin=phpComment
syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\|return\|see\|since\|static\|staticvar\|subpackage\|tutorial\|uses\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment
syntax match phpDocTodo "@\(todo\|fixme\|xxx\)\(\s\+\)\?" containedin=phpComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link phpConstant Constant
hi def link phpCoreConstant Constant
hi def link phpComment Comment
hi def link phpDocTags PreProc
hi def link phpDocCustomTags Type
hi def link phpException Exception
hi def link phpBoolean Boolean
hi def link phpStorageClass StorageClass
hi def link phpSCKeyword StorageClass
hi def link phpFCKeyword Define
hi def link phpStructure Structure
hi def link phpStringSingle String
hi def link phpStringDouble String
hi def link phpBacktick String
hi def link phpNumber Number
hi def link phpFloat Float
hi def link phpMethods Function
hi def link phpFunctions Function
hi def link phpBaselib Function
hi def link phpRepeat Repeat
hi def link phpConditional Conditional
hi def link phpLabel Label
hi def link phpStatement Statement
hi def link phpKeyword Statement
hi def link phpType Type
hi def link phpInclude Include
hi def link phpDefine Define
hi def link phpBackslashSequences SpecialChar
hi def link phpBackslashDoubleQuote SpecialChar
hi def link phpBackslashSingleQuote SpecialChar
hi def link phpParent Delimiter
hi def link phpBrackets Delimiter
hi def link phpIdentifierConst Delimiter
hi def link phpParentError Error
hi def link phpOctalError Error
hi def link phpInterpSimpleError Error
hi def link phpInterpBogusDollarCurley Error
hi def link phpInterpDollarCurly1 Error
hi def link phpInterpDollarCurly2 Error
hi def link phpInterpSimpleBracketsInner String
hi def link phpInterpSimpleCurly Delimiter
hi def link phpInterpVarname Identifier
hi def link phpTodo Todo
hi def link phpDocTodo Todo
hi def link phpMemberSelector Structure
if exists("php_oldStyle")
  hi def phpIntVar guifg=Red ctermfg=DarkRed
  hi def phpEnvVar guifg=Red ctermfg=DarkRed
  hi def phpOperator guifg=SeaGreen ctermfg=DarkGreen
  hi def phpVarSelector guifg=SeaGreen ctermfg=DarkGreen
  hi def phpRelation guifg=SeaGreen ctermfg=DarkGreen
  hi def phpIdentifier guifg=DarkGray ctermfg=Brown
  hi def phpIdentifierSimply guifg=DarkGray ctermfg=Brown
else
  hi def link phpIntVar Identifier
  hi def link phpEnvVar Identifier
  hi def link phpOperator Operator
  hi def link phpVarSelector Operator
  hi def link phpRelation Operator
  hi def link phpIdentifier Identifier
  hi def link phpIdentifierSimply Identifier
endif


let b:current_syntax = "php"

if main_syntax == 'php'
  unlet main_syntax
endif

" put cpoptions back the way we found it
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 sts=2 sw=2 expandtab
PK�j�Z��p<<vim80/syntax/svn.vimnu�[���" Vim syntax file
" Language:     Subversion (svn) commit file
" Maintainer:   Dmitry Vasiliev <dima at hlabs dot org>
" URL:          https://github.com/hdima/vim-scripts/blob/master/syntax/svn.vim
" Last Change:  2013-11-08
" Filenames:    svn-commit*.tmp
" Version:      1.10

" Contributors:
"
" List of the contributors in alphabetical order:
"
"   A. S. Budden
"   Ingo Karkat
"   Myk Taylor
"   Stefano Zacchiroli

" quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif

syn spell toplevel

syn match svnFirstLine  "\%^.*" nextgroup=svnRegion,svnBlank skipnl
syn match svnSummary    "^.\{0,50\}" contained containedin=svnFirstLine nextgroup=svnOverflow contains=@Spell
syn match svnOverflow   ".*" contained contains=@Spell
syn match svnBlank      "^.*" contained contains=@Spell

syn region svnRegion    end="\%$" matchgroup=svnDelimiter start="^--.*--$" contains=svnRemoved,svnRenamed,svnAdded,svnModified,svnProperty,@NoSpell
syn match svnRemoved    "^D    .*$" contained contains=@NoSpell
syn match svnRenamed    "^R[ M][ U][ +] .*$" contained contains=@NoSpell
syn match svnAdded      "^A[ M][ U][ +] .*$" contained contains=@NoSpell
syn match svnModified   "^M[ M][ U]  .*$" contained contains=@NoSpell
syn match svnProperty   "^_M[ U]  .*$" contained contains=@NoSpell

" Synchronization.
syn sync clear
syn sync match svnSync  grouphere svnRegion "^--.*--$"me=s-1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet.

hi def link svnSummary     Keyword
hi def link svnBlank       Error

hi def link svnRegion      Comment
hi def link svnDelimiter   NonText
hi def link svnRemoved     Constant
hi def link svnAdded       Identifier
hi def link svnModified    Special
hi def link svnProperty    Special
hi def link svnRenamed     Special


let b:current_syntax = "svn"
PK�j�Z�x���6�6vim80/syntax/openroad.vimnu�[���" Vim syntax file
" Language:		CA-OpenROAD
" Maintainer:	Luis Moreno <lmoreno@eresmas.net>
" Last change:	2001 Jun 12

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syntax case ignore

" Keywords
"
syntax keyword openroadKeyword	ABORT ALL ALTER AND ANY AS ASC AT AVG BEGIN
syntax keyword openroadKeyword	BETWEEN BY BYREF CALL CALLFRAME CALLPROC CASE
syntax keyword openroadKeyword	CLEAR CLOSE COMMIT CONNECT CONTINUE COPY COUNT
syntax keyword openroadKeyword	CREATE CURRENT DBEVENT DECLARE DEFAULT DELETE
syntax keyword openroadKeyword	DELETEROW DESC DIRECT DISCONNECT DISTINCT DO
syntax keyword openroadKeyword	DROP ELSE ELSEIF END ENDCASE ENDDECLARE ENDFOR
syntax keyword openroadKeyword	ENDIF ENDLOOP ENDWHILE ESCAPE EXECUTE EXISTS
syntax keyword openroadKeyword	EXIT FETCH FIELD FOR FROM GOTOFRAME GRANT GROUP
syntax keyword openroadKeyword	HAVING IF IMMEDIATE IN INDEX INITIALISE
syntax keyword openroadKeyword	INITIALIZE INQUIRE_INGRES INQUIRE_SQL INSERT
syntax keyword openroadKeyword	INSERTROW INSTALLATION INTEGRITY INTO KEY LIKE
syntax keyword openroadKeyword	LINK MAX MESSAGE METHOD MIN MODE MODIFY NEXT
syntax keyword openroadKeyword	NOECHO NOT NULL OF ON OPEN OPENFRAME OR ORDER
syntax keyword openroadKeyword	PERMIT PROCEDURE PROMPT QUALIFICATION RAISE
syntax keyword openroadKeyword	REGISTER RELOCATE REMOVE REPEAT REPEATED RESUME
syntax keyword openroadKeyword	RETURN RETURNING REVOKE ROLE ROLLBACK RULE SAVE
syntax keyword openroadKeyword	SAVEPOINT SELECT SET SLEEP SOME SUM SYSTEM TABLE
syntax keyword openroadKeyword	THEN TO TRANSACTION UNION UNIQUE UNTIL UPDATE
syntax keyword openroadKeyword	VALUES VIEW WHERE WHILE WITH WORK

syntax keyword openroadTodo contained	TODO

" Catch errors caused by wrong parenthesis
"
syntax cluster	openroadParenGroup	contains=openroadParenError,openroadTodo
syntax region	openroadParen		transparent start='(' end=')' contains=ALLBUT,@openroadParenGroup
syntax match	openroadParenError	")"
highlight link	openroadParenError	cError

" Numbers
"
syntax match	openroadNumber		"\<[0-9]\+\>"

" String
"
syntax region	openroadString		start=+'+  end=+'+

" Operators, Data Types and Functions
"
syntax match	openroadOperator	/[\+\-\*\/=\<\>;\(\)]/

syntax keyword	openroadType		ARRAY BYTE CHAR DATE DECIMAL FLOAT FLOAT4
syntax keyword	openroadType		FLOAT8 INT1 INT2 INT4 INTEGER INTEGER1
syntax keyword	openroadType		INTEGER2 INTEGER4 MONEY OBJECT_KEY
syntax keyword	openroadType		SECURITY_LABEL SMALLINT TABLE_KEY VARCHAR

syntax keyword	openroadFunc		IFNULL

" System Classes
"
syntax keyword	openroadClass	ACTIVEFIELD ANALOGFIELD APPFLAG APPSOURCE
syntax keyword	openroadClass	ARRAYOBJECT ATTRIBUTEOBJECT BARFIELD
syntax keyword	openroadClass	BITMAPOBJECT BOXTRIM BREAKSPEC BUTTONFIELD
syntax keyword	openroadClass	CELLATTRIBUTE CHOICEBITMAP CHOICEDETAIL
syntax keyword	openroadClass	CHOICEFIELD CHOICEITEM CHOICELIST CLASS
syntax keyword	openroadClass	CLASSSOURCE COLUMNCROSS COLUMNFIELD
syntax keyword	openroadClass	COMPOSITEFIELD COMPSOURCE CONTROLBUTTON
syntax keyword	openroadClass	CROSSTABLE CURSORBITMAP CURSOROBJECT DATASTREAM
syntax keyword	openroadClass	DATEOBJECT DBEVENTOBJECT DBSESSIONOBJECT
syntax keyword	openroadClass	DISPLAYFORM DYNEXPR ELLIPSESHAPE ENTRYFIELD
syntax keyword	openroadClass	ENUMFIELD EVENT EXTOBJECT EXTOBJFIELD
syntax keyword	openroadClass	FIELDOBJECT FLEXIBLEFORM FLOATOBJECT FORMFIELD
syntax keyword	openroadClass	FRAMEEXEC FRAMEFORM FRAMESOURCE FREETRIM
syntax keyword	openroadClass	GHOSTEXEC GHOSTSOURCE IMAGEFIELD IMAGETRIM
syntax keyword	openroadClass	INTEGEROBJECT LISTFIELD LISTVIEWCOLATTR
syntax keyword	openroadClass	LISTVIEWFIELD LONGBYTEOBJECT LONGVCHAROBJECT
syntax keyword	openroadClass	MATRIXFIELD MENUBAR MENUBUTTON MENUFIELD
syntax keyword	openroadClass	MENUGROUP MENUITEM MENULIST MENUSEPARATOR
syntax keyword	openroadClass	MENUSTACK MENUTOGGLE METHODEXEC METHODOBJECT
syntax keyword	openroadClass	MONEYOBJECT OBJECT OPTIONFIELD OPTIONMENU
syntax keyword	openroadClass	PALETTEFIELD POPUPBUTTON PROC4GLSOURCE PROCEXEC
syntax keyword	openroadClass	PROCHANDLE QUERYCOL QUERYOBJECT QUERYPARM
syntax keyword	openroadClass	QUERYTABLE RADIOFIELD RECTANGLESHAPE ROWCROSS
syntax keyword	openroadClass	SCALARFIELD SCOPE SCROLLBARFIELD SEGMENTSHAPE
syntax keyword	openroadClass	SESSIONOBJECT SHAPEFIELD SLIDERFIELD SQLSELECT
syntax keyword	openroadClass	STACKFIELD STRINGOBJECT SUBFORM TABBAR
syntax keyword	openroadClass	TABFIELD TABFOLDER TABLEFIELD TABPAGE
syntax keyword	openroadClass	TOGGLEFIELD TREE TREENODE TREEVIEWFIELD
syntax keyword	openroadClass	USERCLASSOBJECT USEROBJECT VIEWPORTFIELD

" System Events
"
syntax keyword	openroadEvent	CHILDCLICK CHILDCLICKPOINT CHILDCOLLAPSED
syntax keyword	openroadEvent	CHILDDETAILS CHILDDOUBLECLICK CHILDDRAGBOX
syntax keyword	openroadEvent	CHILDDRAGSEGMENT CHILDENTRY CHILDEXIT
syntax keyword	openroadEvent	CHILDEXPANDED CHILDHEADERCLICK CHILDMOVED
syntax keyword	openroadEvent	CHILDPROPERTIES CHILDRESIZED CHILDSCROLL
syntax keyword	openroadEvent	CHILDSELECT CHILDSELECTIONCHANGED CHILDSETVALUE
syntax keyword	openroadEvent	CHILDUNSELECT CHILDVALIDATE CLICK CLICKPOINT
syntax keyword	openroadEvent	COLLAPSED DBEVENT DETAILS DOUBLECLICK DRAGBOX
syntax keyword	openroadEvent	DRAGSEGMENT ENTRY EXIT EXPANDED EXTCLASSEVENT
syntax keyword	openroadEvent	FRAMEACTIVATE FRAMEDEACTIVATE HEADERCLICK
syntax keyword	openroadEvent	INSERTROW LABELCHANGED MOVED PAGEACTIVATED
syntax keyword	openroadEvent	PAGECHANGED PAGEDEACTIVATED PROPERTIES RESIZED
syntax keyword	openroadEvent	SCROLL SELECT SELECTIONCHANGED SETVALUE
syntax keyword	openroadEvent	TERMINATE UNSELECT USEREVENT VALIDATE
syntax keyword	openroadEvent	WINDOWCLOSE WINDOWICON WINDOWMOVED WINDOWRESIZED
syntax keyword	openroadEvent	WINDOWVISIBLE

" System Constants
"
syntax keyword	openroadConst	BF_BMP BF_GIF BF_SUNRASTER BF_TIFF
syntax keyword	openroadConst	BF_WINDOWCURSOR BF_WINDOWICON BF_XBM
syntax keyword	openroadConst	CC_BACKGROUND CC_BLACK CC_BLUE CC_BROWN CC_CYAN
syntax keyword	openroadConst	CC_DEFAULT_1 CC_DEFAULT_10 CC_DEFAULT_11
syntax keyword	openroadConst	CC_DEFAULT_12 CC_DEFAULT_13 CC_DEFAULT_14
syntax keyword	openroadConst	CC_DEFAULT_15 CC_DEFAULT_16 CC_DEFAULT_17
syntax keyword	openroadConst	CC_DEFAULT_18 CC_DEFAULT_19 CC_DEFAULT_2
syntax keyword	openroadConst	CC_DEFAULT_20 CC_DEFAULT_21 CC_DEFAULT_22
syntax keyword	openroadConst	CC_DEFAULT_23 CC_DEFAULT_24 CC_DEFAULT_25
syntax keyword	openroadConst	CC_DEFAULT_26 CC_DEFAULT_27 CC_DEFAULT_28
syntax keyword	openroadConst	CC_DEFAULT_29 CC_DEFAULT_3 CC_DEFAULT_30
syntax keyword	openroadConst	CC_DEFAULT_4 CC_DEFAULT_5 CC_DEFAULT_6
syntax keyword	openroadConst	CC_DEFAULT_7 CC_DEFAULT_8 CC_DEFAULT_9
syntax keyword	openroadConst	CC_FOREGROUND CC_GRAY CC_GREEN CC_LIGHT_BLUE
syntax keyword	openroadConst	CC_LIGHT_BROWN	CC_LIGHT_CYAN CC_LIGHT_GRAY
syntax keyword	openroadConst	CC_LIGHT_GREEN CC_LIGHT_ORANGE CC_LIGHT_PINK
syntax keyword	openroadConst	CC_LIGHT_PURPLE CC_LIGHT_RED CC_LIGHT_YELLOW
syntax keyword	openroadConst	CC_MAGENTA CC_ORANGE CC_PALE_BLUE CC_PALE_BROWN
syntax keyword	openroadConst	CC_PALE_CYAN CC_PALE_GRAY CC_PALE_GREEN
syntax keyword	openroadConst	CC_PALE_ORANGE CC_PALE_PINK CC_PALE_PURPLE
syntax keyword	openroadConst	CC_PALE_RED CC_PALE_YELLOW CC_PINK CC_PURPLE
syntax keyword	openroadConst	CC_RED CC_SYS_ACTIVEBORDER CC_SYS_ACTIVECAPTION
syntax keyword	openroadConst	CC_SYS_APPWORKSPACE CC_SYS_BACKGROUND
syntax keyword	openroadConst	CC_SYS_BTNFACE CC_SYS_BTNSHADOW CC_SYS_BTNTEXT
syntax keyword	openroadConst	CC_SYS_CAPTIONTEXT CC_SYS_GRAYTEXT
syntax keyword	openroadConst	CC_SYS_HIGHLIGHT CC_SYS_HIGHLIGHTTEXT
syntax keyword	openroadConst	CC_SYS_INACTIVEBORDER CC_SYS_INACTIVECAPTION
syntax keyword	openroadConst	CC_SYS_INACTIVECAPTIONTEXT CC_SYS_MENU
syntax keyword	openroadConst	CC_SYS_MENUTEXT CC_SYS_SCROLLBAR CC_SYS_SHADOW
syntax keyword	openroadConst	CC_SYS_WINDOW CC_SYS_WINDOWFRAME
syntax keyword	openroadConst	CC_SYS_WINDOWTEXT CC_WHITE CC_YELLOW
syntax keyword	openroadConst	CL_INVALIDVALUE CP_BOTH CP_COLUMNS CP_NONE
syntax keyword	openroadConst	CP_ROWS CS_CLOSED CS_CURRENT CS_NOCURRENT
syntax keyword	openroadConst	CS_NO_MORE_ROWS CS_OPEN CS_OPEN_CACHED DC_BW
syntax keyword	openroadConst	DC_COLOR DP_AUTOSIZE_FIELD DP_CLIP_IMAGE
syntax keyword	openroadConst	DP_SCALE_IMAGE_H DP_SCALE_IMAGE_HW
syntax keyword	openroadConst	DP_SCALE_IMAGE_W DS_CONNECTED DS_DISABLED
syntax keyword	openroadConst	DS_DISCONNECTED DS_INGRES_DBMS DS_NO_DBMS
syntax keyword	openroadConst	DS_ORACLE_DBMS DS_SQLSERVER_DBMS DV_NULL
syntax keyword	openroadConst	DV_STRING DV_SYSTEM EH_NEXT_HANDLER EH_RESUME
syntax keyword	openroadConst	EH_RETRY EP_INTERACTIVE EP_NONE EP_OUTPUT
syntax keyword	openroadConst	ER_FAIL ER_NAMEEXISTS ER_OK ER_OUTOFRANGE
syntax keyword	openroadConst	ER_ROWNOTFOUND ER_USER1 ER_USER10 ER_USER2
syntax keyword	openroadConst	ER_USER3 ER_USER4 ER_USER5 ER_USER6 ER_USER7
syntax keyword	openroadConst	ER_USER8 ER_USER9 FALSE FA_BOTTOMCENTER
syntax keyword	openroadConst	FA_BOTTOMLEFT FA_BOTTOMRIGHT FA_CENTER
syntax keyword	openroadConst	FA_CENTERLEFT FA_CENTERRIGHT FA_DEFAULT FA_NONE
syntax keyword	openroadConst	FA_TOPCENTER FA_TOPLEFT FA_TOPRIGHT
syntax keyword	openroadConst	FB_CHANGEABLE FB_CLICKPOINT FB_DIMMED FB_DRAGBOX
syntax keyword	openroadConst	FB_DRAGSEGMENT FB_FLEXIBLE FB_INVISIBLE
syntax keyword	openroadConst	FB_LANDABLE FB_MARKABLE FB_RESIZEABLE
syntax keyword	openroadConst	FB_VIEWABLE FB_VISIBLE FC_LOWER FC_NONE FC_UPPER
syntax keyword	openroadConst	FM_QUERY FM_READ FM_UPDATE FM_USER1 FM_USER2
syntax keyword	openroadConst	FM_USER3 FO_DEFAULT FO_HORIZONTAL FO_VERTICAL
syntax keyword	openroadConst	FP_BITMAP FP_CLEAR FP_CROSSHATCH FP_DARKSHADE
syntax keyword	openroadConst	FP_DEFAULT FP_HORIZONTAL FP_LIGHTSHADE FP_SHADE
syntax keyword	openroadConst	FP_SOLID FP_VERTICAL FT_NOTSETVALUE FT_SETVALUE
syntax keyword	openroadConst	FT_TABTO FT_TAKEFOCUS GF_BOTTOM GF_DEFAULT
syntax keyword	openroadConst	GF_LEFT GF_RIGHT GF_TOP HC_DOUBLEQUOTE
syntax keyword	openroadConst	HC_FORMFEED HC_NEWLINE HC_QUOTE HC_SPACE HC_TAB
syntax keyword	openroadConst	HV_CONTENTS HV_CONTEXT HV_HELPONHELP HV_KEY
syntax keyword	openroadConst	HV_QUIT LS_3D LS_DASH LS_DASHDOT LS_DASHDOTDOT
syntax keyword	openroadConst	LS_DEFAULT LS_DOT LS_SOLID LW_DEFAULT
syntax keyword	openroadConst	LW_EXTRATHIN LW_MAXIMUM LW_MIDDLE LW_MINIMUM
syntax keyword	openroadConst	LW_NOLINE LW_THICK LW_THIN LW_VERYTHICK
syntax keyword	openroadConst	LW_VERYTHIN MB_DISABLED MB_ENABLED MB_INVISIBLE
syntax keyword	openroadConst	MB_MOVEABLE MT_ERROR MT_INFO MT_NONE MT_WARNING
syntax keyword	openroadConst	OP_APPEND OP_NONE OS3D OS_DEFAULT OS_SHADOW
syntax keyword	openroadConst	OS_SOLID PU_CANCEL PU_OK QS_ACTIVE QS_INACTIVE
syntax keyword	openroadConst	QS_SETCOL QY_ARRAY QY_CACHE QY_CURSOR QY_DIRECT
syntax keyword	openroadConst	RC_CHILDSELECTED RC_DOWN RC_END RC_FIELDFREED
syntax keyword	openroadConst	RC_FIELDORPHANED RC_GROUPSELECT RC_HOME RC_LEFT
syntax keyword	openroadConst	RC_MODECHANGED RC_MOUSECLICK RC_MOUSEDRAG
syntax keyword	openroadConst	RC_NEXT RC_NOTAPPLICABLE RC_PAGEDOWN RC_PAGEUP
syntax keyword	openroadConst	RC_PARENTSELECTED RC_PREVIOUS RC_PROGRAM
syntax keyword	openroadConst	RC_RESUME RC_RETURN RC_RIGHT RC_ROWDELETED
syntax keyword	openroadConst	RC_ROWINSERTED RC_ROWSALLDELETED RC_SELECT
syntax keyword	openroadConst	RC_TFSCROLL RC_TOGGLESELECT RC_UP RS_CHANGED
syntax keyword	openroadConst	RS_DELETED RS_NEW RS_UNCHANGED RS_UNDEFINED
syntax keyword	openroadConst	SK_CLOSE SK_COPY SK_CUT SK_DELETE SK_DETAILS
syntax keyword	openroadConst	SK_DUPLICATE SK_FIND SK_GO SK_HELP SK_NEXT
syntax keyword	openroadConst	SK_NONE SK_PASTE SK_PROPS SK_QUIT SK_REDO
syntax keyword	openroadConst	SK_SAVE SK_TFDELETEALLROWS SK_TFDELETEROW
syntax keyword	openroadConst	SK_TFFIND SK_TFINSERTROW SK_UNDO SP_APPSTARTING
syntax keyword	openroadConst	SP_ARROW SP_CROSS SP_IBEAM SP_ICON SP_NO
syntax keyword	openroadConst	SP_SIZE SP_SIZENESW SP_SIZENS SP_SIZENWSE
syntax keyword	openroadConst	SP_SIZEWE SP_UPARROW SP_WAIT SY_NT SY_OS2
syntax keyword	openroadConst	SY_UNIX SY_VMS SY_WIN95 TF_COURIER TF_HELVETICA
syntax keyword	openroadConst	TF_LUCIDA TF_MENUDEFAULT TF_NEWCENTURY TF_SYSTEM
syntax keyword	openroadConst	TF_TIMESROMAN TRUE UE_DATAERROR UE_EXITED
syntax keyword	openroadConst	UE_NOTACTIVE UE_PURGED UE_RESUMED UE_UNKNOWN
syntax keyword	openroadConst	WI_MOTIF WI_MSWIN32 WI_MSWINDOWS WI_NONE WI_PM
syntax keyword	openroadConst	WP_FLOATING WP_INTERACTIVE WP_PARENTCENTERED
syntax keyword	openroadConst	WP_PARENTRELATIVE WP_SCREENCENTERED
syntax keyword	openroadConst	WP_SCREENRELATIVE WV_ICON WV_INVISIBLE
syntax keyword	openroadConst	WV_UNREALIZED WV_VISIBLE

" System Variables
"
syntax keyword	openroadVar		CurFrame CurProcedure CurMethod CurObject

" Identifiers
"
syntax match	openroadIdent	/[a-zA-Z_][a-zA-Z_]*![a-zA-Z_][a-zA-Z_]*/

" Comments
"
if exists("openroad_comment_strings")
	syntax match openroadCommentSkip	contained "^\s*\*\($\|\s\+\)"
	syntax region openroadCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$"
	syntax region openroadComment		start="/\*" end="\*/" contains=openroadCommentString,openroadCharacter,openroadNumber
	syntax match openroadComment		"//.*" contains=openroadComment2String,openroadCharacter,openroadNumber
else
	syn region openroadComment			start="/\*" end="\*/"
	syn match openroadComment			"//.*"
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
"

hi def link openroadKeyword	Statement
hi def link openroadNumber	Number
hi def link openroadString	String
hi def link openroadComment	Comment
hi def link openroadOperator	Operator
hi def link openroadType		Type
hi def link openroadFunc		Special
hi def link openroadClass	Type
hi def link openroadEvent	Statement
hi def link openroadConst	Constant
hi def link openroadVar		Identifier
hi def link openroadIdent	Identifier
hi def link openroadTodo		Todo


let b:current_syntax = "openroad"
PK�j�Z��Jb..vim80/syntax/usserverlog.vimnu�[���" Vim syntax file
" Language:             Innovation Data Processing usserver.log file
" Maintainer:           Rob Owens <rowens@fdrinnovation.com>
" Latest Revision:      2013-09-19

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Date:
syn match usserverlog_Date /\u\l\l \u\l\l\s\{1,2}\d\{1,2} \d\d:\d\d:\d\d \d\d\d\d/
" Msg Types:
syn match usserverlog_MsgD /Msg #\(Agt\|PC\|Srv\)\d\{4,5}D/ nextgroup=usserverlog_Process skipwhite
syn match usserverlog_MsgE /Msg #\(Agt\|PC\|Srv\)\d\{4,5}E/ nextgroup=usserverlog_Process skipwhite
syn match usserverlog_MsgI /Msg #\(Agt\|PC\|Srv\)\d\{4,5}I/ nextgroup=usserverlog_Process skipwhite
syn match usserverlog_MsgW /Msg #\(Agt\|PC\|Srv\)\d\{4,5}W/ nextgroup=usserverlog_Process skipwhite
" Processes:
syn region usserverlog_Process start="(" end=")" contained
" IP Address:
syn match usserverlog_IPaddr /\( \|(\)\zs\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
" Profile:
syn match usserverlog_Profile /Using default configuration for profile \zs\S\{1,8}\ze/
syn match usserverlog_Profile /Now running profile \zs\S\{1,8}\ze/
syn match usserverlog_Profile /in profile set \zs\S\{1,8}\ze/
syn match usserverlog_Profile /Migrate disk backup from profile \zs\S\{1,8}\ze/
syn match usserverlog_Profile /Using profile prefix for profile \zs\S\{1,8}\ze/
syn match usserverlog_Profile /Add\/update profile \zs\S\{1,8}\ze/
syn match usserverlog_Profile /Profileset=\zs\S\{1,8}\ze,/
syn match usserverlog_Profile /profileset=\zs\S\{1,8}\ze/
syn match usserverlog_Profile /Vault \(disk\|tape\) backup to vault \d\{1,4} from profile \zs\S\{1,8}\ze/
syn match usserverlog_Profile /Profile name \zs\"\S\{1,8}\"/
syn match usserverlog_Profile / Profile: \zs\S\{1,8}/
syn match usserverlog_Profile /  Profile: \zs\S\{1,8}\ze, /
syn match usserverlog_Profile /, profile: \zs\S\{1,8}\ze,/
syn match usserverlog_Profile /Expecting Profile: \zs\S\{1,8}\ze,/
syn match usserverlog_Profile /found Profile: \zs\S\{1,8}\ze,/
syn match usserverlog_Profile /Profile \zs\S\{1,8} \zeis a member of group: /
syn match upstreamlog_Profile /Backup Profile: \zs\S\{1,8}\ze Version date/
syn match upstreamlog_Profile /Backup profile: \zs\S\{1,8}\ze  Version date/
syn match usserverlog_Profile /Full of \zs\S\{1,8}\ze$/
syn match usserverlog_Profile /Incr. of \zs\S\{1,8}\ze$/
syn match usserverlog_Profile /Profile=\zs\S\{1,8}\ze,/
" Target:
syn region usserverlog_Target start="Computer: \zs" end="\ze[\]\)]" 
syn region usserverlog_Target start="Computer name \zs\"" end="\"\ze" 
syn region usserverlog_Target start="Registration add request successful \zs" end="$"
syn region usserverlog_Target start="request to registered name \zs" end=" "
syn region usserverlog_Target start=", sending to \zs" end="$"

hi def link usserverlog_Date	Underlined
hi def link usserverlog_MsgD	Type
hi def link usserverlog_MsgE	Error
hi def link usserverlog_MsgW	Constant
hi def link usserverlog_Process	Statement
hi def link usserverlog_IPaddr	Identifier
hi def link usserverlog_Profile	Identifier
hi def link usserverlog_Target	Identifier

let b:current_syntax = "usserverlog"
PK�j�ZOQTTvim80/syntax/qf.vimnu�[���" Vim syntax file
" Language:	Quickfix window
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2001 Jan 15

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful C keywords
syn match	qfFileName	"^[^|]*" nextgroup=qfSeparator
syn match	qfSeparator	"|" nextgroup=qfLineNr contained
syn match	qfLineNr	"[^|]*" contained contains=qfError
syn match	qfError		"error" contained

" The default highlighting.
hi def link qfFileName	Directory
hi def link qfLineNr	LineNr
hi def link qfError	Error

let b:current_syntax = "qf"

" vim: ts=8
PK�j�Z�e��M�Mvim80/syntax/idl.vimnu�[���" Vim syntax file
" Language:    IDL (Interface Description Language)
" Created By:  Jody Goldberg
" Maintainer:  Michael Geddes <vim@frog.wheelycreek.net>
" Last Change:  2012 Jan 11


" This is an experiment.  IDL's structure is simple enough to permit a full
" grammar based approach to rather than using a few heuristics.  The result
" is large and somewhat repetative but seems to work.

" There are some Microsoft extensions to idl files that are here.  Some of
" them are disabled by defining idl_no_ms_extensions.
"
" The more complex of the extensions are disabled by defining idl_no_extensions.
"
" History:
" 2.0: Michael's new version
" 2.1: Support for Vim 7 spell (Anduin Withers)
"

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
try
  set cpo&vim

  if exists("idlsyntax_showerror")
    syn match idlError +\S+ skipwhite skipempty nextgroup=idlError
  endif

  syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString

  " Misc basic
  syn match   idlId          contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber
  syn match   idlEnumComma   contained ","
  syn match   idlEnumNumber  contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral
  syn match   idlSemiColon   contained ";"
  syn match   idlCommaArg    contained ","                      skipempty skipwhite nextgroup=idlSimpDecl
  syn region  idlArraySize1  contained start=:\[: end=:\]:      skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
  syn match   idlSimpDecl    contained "[a-zA-Z][a-zA-Z0-9_]*"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize1
  syn region  idlString      contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+ contains=@Spell
  syn match   idlLiteral     contained "[1-9]\d*\(\.\d*\)\="
  syn match   idlLiteral     contained "0"
  syn match   idlLiteral     contained "\.\d\+"
  syn match   idlLiteral     contained "0x[0-9A-Fa-f]\+"
  syn match   idlLiteral     contained "0[0-7]\+"
  syn keyword idlLiteral     contained TRUE FALSE

  " Comments
  syn keyword idlTodo        contained TODO FIXME XXX
  syn region idlComment      start="/\*"  end="\*/" contains=idlTodo,@Spell
  syn match  idlComment      "//.*" contains=idlTodo,@Spell
  syn match  idlCommentError "\*/"

  " C style Preprocessor
  syn region idlIncluded    contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+
  syn match  idlIncluded    contained "<[^>]*>"
  syn match  idlInclude     "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
  syn region idlPreCondit   start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"  end="$" contains=idlComment,idlCommentError
  syn region idlDefine      start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString

  " Constants
  syn keyword idlConst    const                             skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt

  " Attribute
  syn keyword idlROAttr   readonly                          skipempty skipwhite nextgroup=idlAttr
  syn keyword idlAttr     attribute                         skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType

  " Types
  syn region  idlD4          contained start="<" end=">"    skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
  syn keyword idlSeqType     contained sequence             skipempty skipwhite nextgroup=idlD4
  syn keyword idlBaseType    contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl
  syn keyword idlBaseTypeInt contained short long           skipempty skipwhite nextgroup=idlSimpDecl
  syn keyword idlBaseType    contained unsigned             skipempty skipwhite nextgroup=idlBaseTypeInt
  syn region  idlD1          contained start="<" end=">"    skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral
  syn keyword idlBaseType    contained string               skipempty skipwhite nextgroup=idlD1,idlSimpDecl
  syn match   idlBaseType    contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*"  skipempty skipwhite nextgroup=idlSimpDecl

  " Modules
  syn region  idlModuleContent contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
  syn match   idlModuleName  contained "[a-zA-Z0-9_]\+"     skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon
  syn keyword idlModule      module                         skipempty skipwhite nextgroup=idlModuleName

  " Interfaces
  syn cluster idlCommentable contains=idlComment
  syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections

  syn region  idlInterfaceContent contained start="{" end="}"   skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
  syn match   idlInheritFrom2 contained ","                     skipempty skipwhite nextgroup=idlInheritFrom
  syn match   idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
  syn match   idlInherit contained ":"                            skipempty skipwhite nextgroup=idlInheritFrom
  syn match   idlInterfaceName contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon
  syn keyword idlInterface     interface dispinterface          skipempty skipwhite nextgroup=idlInterfaceName
  syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError
  syn match   idlSectionColon contained ":"


  syn match   idlLibraryName  contained  "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon
  syn keyword idlLibrary      library                           skipempty skipwhite nextgroup=idlLibraryName
  syn region  idlLibraryContent contained start="{" end="}"     skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface

  syn keyword idlImportlib contained importlib                  skipempty skipwhite nextgroup=idlStringArg
  syn region idlStringArg contained start="(" end=")"           contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket

  syn keyword idlCoclass coclass contained                      skipempty skipwhite nextgroup=idlCoclassName
  syn match   idlCoclassName "[a-zA-Z0-9_]\+" contained         skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon

  syn region idlCoclassDefinition contained start="{" end="}"   contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon
  syn region idlCoclassAttributes contained start=+\[+ end=+]+  skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute
  syn keyword idlCoclassAttribute contained default source
  "syn keyword idlInterface       interface                      skipempty skipwhite nextgroup=idlInterfaceStubName

  syn match idlImportString       +"\f\+"+                      skipempty skipwhite nextgroup=idlError,idlSemiColon
  syn keyword idlImport           import                        skipempty skipwhite nextgroup=idlImportString

  syn region  idlAttributes start="\[" end="\]"                 contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment
  syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default
  if !exists('idl_no_ms_extensions')
  syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation
  endif
  syn region idlAttributeParam contained start="(" end=")"      contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket
  " skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
  syn match idlErrorBrace contained "}"
  syn match idlErrorBracket contained ")"
  syn match idlErrorSquareBracket contained "\]"

  syn match idlUuid         contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+

  " Raises
  syn keyword idlRaises     contained raises               skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon

  " Context
  syn keyword idlContext    contained context              skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon

  " Operation
  syn match   idlParmList   contained ","                  skipempty skipwhite nextgroup=idlOpParms
  syn region  idlArraySize  contained start="\[" end="\]"  skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
  syn match   idlParmName   contained "[a-zA-Z0-9_]\+"     skipempty skipwhite nextgroup=idlParmList,idlArraySize
  syn keyword idlParmInt    contained short long           skipempty skipwhite nextgroup=idlParmName
  syn keyword idlParmType   contained unsigned             skipempty skipwhite nextgroup=idlParmInt
  syn region  idlD3         contained start="<" end=">"    skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral
  syn keyword idlParmType   contained string               skipempty skipwhite nextgroup=idlD3,idlParmName
  syn keyword idlParmType   contained void float double char boolean octet any    skipempty skipwhite nextgroup=idlParmName
  syn match   idlParmType   contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
  syn keyword idlOpParms    contained in out inout         skipempty skipwhite nextgroup=idlParmType

  if !exists('idl_no_ms_extensions')
  syn keyword idlOpParms    contained retval optional      skipempty skipwhite nextgroup=idlParmType
    syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType

    syn keyword idlVariantType  contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE
    syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType
  endif

  syn region  idlOpContents contained start="(" end=")"    skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable
  syn match   idlOpName   contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlOpContents
  syn keyword idlOpInt    contained short long             skipempty skipwhite nextgroup=idlOpName
  syn region  idlD2       contained start="<" end=">"      skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral
  syn keyword idlOp       contained unsigned               skipempty skipwhite nextgroup=idlOpInt
  syn keyword idlOp       contained string                 skipempty skipwhite nextgroup=idlD2,idlOpName
  syn keyword idlOp       contained void float double char boolean octet any  skipempty skipwhite nextgroup=idlOpName
  syn match   idlOp       contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName
  syn keyword idlOp       contained void                   skipempty skipwhite nextgroup=idlOpName
  syn keyword idlOneWayOp contained oneway                 skipempty skipwhite nextgroup=idOp

  " Enum
  syn region  idlEnumContents contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable
  syn match   idlEnumName contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlEnumContents
  syn keyword idlEnum     enum                             skipempty skipwhite nextgroup=idlEnumName,idlEnumContents

  " Typedef
  syn keyword idlTypedef typedef                          skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError

  if !exists('idl_no_extensions')
    syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite

    syn region  idlDefAttributes        contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError

    syn keyword idlDefBaseType      contained float double char boolean octet any  skipempty skipwhite nextgroup=idlTypedefDecl,idlError
    syn keyword idlDefBaseTypeInt   contained short long                           skipempty skipwhite nextgroup=idlTypedefDecl,idlError
    syn match idlDefOtherType       contained +\<\k\+\>+ skipempty                 nextgroup=idlTypedefDecl,idlError
    " syn keyword idlDefSeqType     contained sequence                             skipempty skipwhite nextgroup=idlD4

    " Enum typedef
    syn keyword idlDefEnum          contained enum skipempty                       skipwhite nextgroup=idlDefEnumName,idlDefEnumContents
    syn match   idlDefEnumName      contained "[a-zA-Z0-9_]\+"                     skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl
    syn region  idlDefEnumContents  contained start="{" end="}"                    skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes

    syn match   idlTypedefDecl      contained "[a-zA-Z0-9_]\+"                     skipempty skipwhite nextgroup=idlError,idlSemiColon
  endif

  " Struct
  syn region  idlStructContent   contained start="{" end="}"   skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion
  syn match   idlStructName      contained "[a-zA-Z0-9_]\+"    skipempty skipwhite nextgroup=idlStructContent
  syn keyword idlStruct          struct                        skipempty skipwhite nextgroup=idlStructName

  " Exception
  syn keyword idlException       exception                     skipempty skipwhite nextgroup=idlStructName

  " Union
  syn match   idlColon            contained ":"                skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
  syn region  idlCaseLabel        contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
  syn keyword idlCase             contained case               skipempty skipwhite nextgroup=idlCaseLabel
  syn keyword idlCase             contained default            skipempty skipwhite nextgroup=idlColon
  syn region  idlUnionContent     contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase
  syn region  idlSwitchType       contained start="(" end=")"  skipempty skipwhite nextgroup=idlUnionContent
  syn keyword idlUnionSwitch      contained switch             skipempty skipwhite nextgroup=idlSwitchType
  syn match   idlUnionName        contained "[a-zA-Z0-9_]\+"   skipempty skipwhite nextgroup=idlUnionSwitch
  syn keyword idlUnion            union                        skipempty skipwhite nextgroup=idlUnionName

  if !exists('idl_no_extensions')
    syn sync match  idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
    syn sync maxlines=1000 minlines=100
  else
    syn sync lines=200
  endif
  " syn sync fromstart

  if !exists("did_idl_syntax_inits")
    let did_idl_syntax_inits = 1
    " The default methods for highlighting.  Can be overridden later

    hi def link idlInclude             Include
    hi def link idlPreProc             PreProc
    hi def link idlPreCondit           PreCondit
    hi def link idlDefine              Macro
    hi def link idlIncluded            String
    hi def link idlString              String
    hi def link idlComment             Comment
    hi def link idlTodo                Todo
    hi def link idlLiteral             Number
    hi def link idlUuid                Number
    hi def link idlType                Type
    hi def link idlVariantType         idlType

    hi def link idlModule              Keyword
    hi def link idlInterface           Keyword
    hi def link idlEnum                Keyword
    hi def link idlStruct              Keyword
    hi def link idlUnion               Keyword
    hi def link idlTypedef             Keyword
    hi def link idlException           Keyword
    hi def link idlTypedefOtherTypeQualifier keyword

    hi def link idlModuleName          Typedef
    hi def link idlInterfaceName       Typedef
    hi def link idlEnumName            Typedef
    hi def link idlStructName          Typedef
    hi def link idlUnionName           Typedef

    hi def link idlBaseTypeInt         idlType
    hi def link idlBaseType            idlType
    hi def link idlSeqType             idlType
    hi def link idlD1                  Paren
    hi def link idlD2                  Paren
    hi def link idlD3                  Paren
    hi def link idlD4                  Paren
    "hi def link idlArraySize          Paren
    "hi def link idlArraySize1         Paren
    hi def link idlModuleContent       Paren
    hi def link idlUnionContent        Paren
    hi def link idlStructContent       Paren
    hi def link idlEnumContents        Paren
    hi def link idlInterfaceContent    Paren

    hi def link idlSimpDecl            Identifier
    hi def link idlROAttr              StorageClass
    hi def link idlAttr                Keyword
    hi def link idlConst               StorageClass

    hi def link idlOneWayOp            StorageClass
    hi def link idlOp                  idlType
    hi def link idlParmType            idlType
    hi def link idlOpName              Function
    hi def link idlOpParms             SpecialComment
    hi def link idlParmName            Identifier
    hi def link idlInheritFrom         Identifier
    hi def link idlAttribute           SpecialComment

    hi def link idlId                  Constant
    "hi def link idlCase               Keyword
    hi def link idlCaseLabel           Constant

    hi def link idlErrorBracket        Error
    hi def link idlErrorBrace          Error
    hi def link idlErrorSquareBracket  Error

    hi def link idlImport              Keyword
    hi def link idlImportString        idlString
    hi def link idlCoclassAttribute    StorageClass
    hi def link idlLibrary             Keyword
    hi def link idlImportlib           Keyword
    hi def link idlCoclass             Keyword
    hi def link idlLibraryName         Typedef
    hi def link idlCoclassName         Typedef
    " hi def link idlLibraryContent guifg=red
    hi def link idlTypedefDecl         Typedef
    hi def link idlDefEnum             Keyword
    hi def link idlDefv1Enum           Keyword
    hi def link idlDefEnumName         Typedef
    hi def link idlDefEnumContents     Paren
    hi def link idlDefBaseTypeInt      idlType
    hi def link idlDefBaseType         idlType
    hi def link idlDefSeqType          idlType
    hi def link idlInterfaceSections   Label

    if exists("idlsyntax_showerror")
      if exists("idlsyntax_showerror_soft")
        hi default idlError guibg=#d0ffd0
      else
        hi def link idlError Error
      endif
    endif
  endif

  let b:current_syntax = "idl"
finally
  let &cpo = s:cpo_save
  unlet s:cpo_save
endtry
" vim: sw=2 et
PK�j�ZQK�ك%�%vim80/syntax/mrxvtrc.vimnu�[���" Description	: Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up)
" Created	: Wed 26 Apr 2006 01:20:53 AM CDT
" Modified	: Thu 02 Feb 2012 08:37:45 PM EST
" Maintainer	: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case match

" Errors
syn match	mrxvtrcError	contained	'\v\S+'

" Comments
syn match	mrxvtrcComment	contains=@Spell '^\s*[!#].*$'
syn match	mrxvtrcComment	'\v^\s*[#!]\s*\w+[.*]\w+.*:.*'

"
" Options.
"
syn match	mrxvtrcClass	'\v^\s*\w+[.*]'
	    \ nextgroup=mrxvtrcOptions,mrxvtrcProfile,@mrxvtrcPOpts,mrxvtrcError

" Boolean options
syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcBColon,mrxvtrcError
				\ highlightTabOnBell syncTabTitle hideTabbar
				\ autohideTabbar bottomTabbar hideButtons
				\ syncTabIcon veryBoldFont maximized
				\ fullscreen reverseVideo loginShell
				\ jumpScroll scrollBar scrollbarRight
				\ scrollbarFloating scrollTtyOutputInhibit
				\ scrollTtyKeypress transparentForce
				\ transparentScrollbar transparentMenubar
				\ transparentTabbar tabUsePixmap utmpInhibit
				\ visualBell mapAlert meta8
				\ mouseWheelScrollPage multibyte_cursor
				\ tripleclickwords showMenu xft xftNomFont
				\ xftSlowOutput xftAntialias xftHinting
				\ xftAutoHint xftGlobalAdvance cmdAllTabs
				\ protectSecondary thai borderLess
				\ overrideRedirect broadcast smartResize
				\ pointerBlank cursorBlink noSysConfig
				\ disableMacros linuxHomeEndKey sessionMgt
				\ boldColors smoothResize useFifo veryBright
syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcBColon,mrxvtrcError
				\ '\v<transparent>'
syn match	mrxvtrcBColon	contained skipwhite
				\ nextgroup=mrxvtrcBoolVal,mrxvtrcError ':'
syn case ignore
syn keyword	mrxvtrcBoolVal	contained skipwhite nextgroup=mrxvtrcError
				\ 0 1 yes no on off true false
syn case match

" Color options
syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcCColon,mrxvtrcError
				\ ufBackground textShadow tabForeground
				\ itabForeground tabBackground itabBackground
				\ scrollColor troughColor highlightColor
				\ cursorColor cursorColor2 pointerColor
				\ borderColor tintColor
syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcCColon,mrxvtrcError
				\ '\v<color([0-9]|1[0-5]|BD|UL|RV)>'
syn match	mrxvtrcCColon	contained skipwhite
				\ nextgroup=mrxvtrcColorVal ':'
syn match	mrxvtrcColorVal	contained skipwhite nextgroup=mrxvtrcError
				\ '\v#[0-9a-fA-F]{6}'

" Numeric options
syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcNColon,mrxvtrcError
				\ maxTabWidth minVisibleTabs
				\ scrollbarThickness xftmSize xftSize desktop
				\ externalBorder internalBorder lineSpace
				\ pointerBlankDelay cursorBlinkInterval
				\ shading backgroundFade bgRefreshInterval
				\ fading opacity opacityDegree xftPSize
syn match	mrxvtrcNColon	contained skipwhite
				\ nextgroup=mrxvtrcNumVal,mrxvtrcError ':'
syn match	mrxvtrcNumVal	contained skipwhite nextgroup=mrxvtrcError
				\ '\v[+-]?<(0[0-7]+|\d+|0x[0-9a-f]+)>'

" String options
syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcSColon,mrxvtrcError
				\ tabTitle termName title clientName iconName
				\ bellCommand backspaceKey deleteKey
				\ printPipe cutChars answerbackString
				\ smClientID geometry path boldFont xftFont
				\ xftmFont xftPFont inputMethod
				\ greektoggle_key menu menubarPixmap
				\ scrollbarPixmap tabbarPixmap appIcon
				\ multichar_encoding initProfileList
syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcSColon,mrxvtrcError
				\ '\v<m?font[1-5]?>'
syn match	mrxvtrcSColon	contained skipwhite nextgroup=mrxvtrcStrVal ':'
syn match	mrxvtrcStrVal	contained '\v\S.*'

" Profile options
syn cluster	mrxvtrcPOpts	contains=mrxvtrcPSOpts,mrxvtrcPCOpts,mrxvtrcPNOpts
syn match	mrxvtrcProfile	contained nextgroup=@mrxvtrcPOpts,mrxvtrcError
				\ '\vprofile\d+\.'
syn keyword	mrxvtrcPSOpts	contained nextgroup=mrxvtrcSColon,mrxvtrcError
				\ tabTitle command holdExitText holdExitTitle
				\ Pixmap workingDirectory titleFormat
				\ winTitleFormat
syn keyword	mrxvtrcPCOpts	contained nextgroup=mrxvtrcCColon,mrxvtrcError
				\ background foreground
syn keyword	mrxvtrcPNOpts	contained nextgroup=mrxvtrcNColon,mrxvtrcError
				\ holdExit saveLines

" scrollbarStyle
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcSBstyle,mrxvtrcError
				\ '\v<scrollbarStyle:'
syn keyword	mrxvtrcSBstyle	contained skipwhite nextgroup=mrxvtrcError
				\ plain xterm rxvt next sgi

" scrollbarAlign
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcSBalign,mrxvtrcError
				\ '\v<scrollbarAlign:'
syn keyword	mrxvtrcSBalign	contained skipwhite nextgroup=mrxvtrcError
				\ top bottom

" textShadowMode
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcTSmode,mrxvtrcError
				\ '\v<textShadowMode:'
syn keyword	mrxvtrcTSmode	contained skipwhite nextgroup=mrxvtrcError
				\ none top bottom left right topleft topright
				\ botleft botright

" greek_keyboard
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcGrkKbd,mrxvtrcError
				\ '\v<greek_keyboard:'
syn keyword	mrxvtrcGrkKbd	contained skipwhite nextgroup=mrxvtrcError
				\ iso ibm

" xftWeight
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcXftWt,mrxvtrcError
				\ '\v<(xftWeight|xftBoldWeight):'
syn keyword	mrxvtrcXftWt	contained skipwhite nextgroup=mrxvtrcError
				\ light medium demibold bold black

" xftSlant
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcXftSl,mrxvtrcError
				\ '\v<xftSlant:'
syn keyword	mrxvtrcXftSl	contained skipwhite nextgroup=mrxvtrcError
				\ roman italic oblique

" xftWidth
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcXftWd,mrxvtrcError
				\ '\v<xftWidth:'
syn keyword	mrxvtrcXftWd	contained skipwhite nextgroup=mrxvtrcError
				\ ultracondensed ultraexpanded
				\ condensed expanded normal

" xftRGBA
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcXftHt,mrxvtrcError
				\ '\v<xftRGBA:'
syn keyword	mrxvtrcXftHt	contained skipwhite nextgroup=mrxvtrcError
				\ rgb bgr vrgb vbgr none

" preeditType
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcPedit,mrxvtrcError
				\ '\v<preeditType:'
syn keyword	mrxvtrcPedit	contained skipwhite nextgroup=mrxvtrcError
				\ OverTheSpot OffTheSpot Root

" modifier
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcMod,mrxvtrcError
				\ '\v<modifier:'
syn keyword	mrxvtrcMod	contained skipwhite nextgroup=mrxvtrcError
				\ alt meta hyper super mod1 mod2 mod3 mod4 mod5

" selectStyle
syn match	mrxvtrcOptions	contained skipwhite
				\ nextgroup=mrxvtrcSelSty,mrxvtrcError
				\ '\v<selectStyle:'
syn keyword	mrxvtrcSelSty	contained skipwhite nextgroup=mrxvtrcError
				\ old oldword


"
" Macros
"
syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcKey,mrxvtrcError
				\ macro
syn case ignore
syn match	mrxvtrcKey	contained skipwhite
			    \ nextgroup=mrxvtrcMacro,mrxvtrcError
			    \ '\v\.((primary|add|ctrl|alt|meta|shift)\+)*\w+:'
syn case match

" Macros without arguments
syn keyword	mrxvtrcMacro	contained skipwhite nextgroup=mrxvtrcError
				\ Dummy Copy Paste ToggleVeryBold
				\ ToggleTransparency ToggleBroadcast
				\ ToggleHold SetTitle ToggleMacros
				\ ToggleFullscreen Raise

" Macros with a string argument
syn keyword	mrxvtrcMacro	contained skipwhite nextgroup=mrxvtrcStrVal
				\ Esc Str Exec Scroll PrintScreen SaveConfig

" Macros with a numeric argument
syn keyword	mrxvtrcMacro	contained skipwhite
				\ nextgroup=mrxvtrcNumVal,mrxvtrcError
				\ Close GotoTab MoveTab ResizeFont UseFifo

" NewTab macro
syn keyword	mrxvtrcMacro	contained skipwhite
				\ nextgroup=mrxvtrcTitle,mrxvtrcShell,mrxvtrcCmd
				\ NewTab
syn region	mrxvtrcTitle	contained oneline skipwhite
				\ nextgroup=mrxvtrcShell,mrxvtrcCmd
				\ start='"' end='"'
syn match	mrxvtrcShell	contained nextgroup=mrxvtrcCmd '!' 
syn match	mrxvtrcCmd	contained '\v[^!" \t].*'

" ToggleSubwin macro
syn keyword	mrxvtrcMacro	contained skipwhite
				\ nextgroup=mrxvtrcSubwin,mrxvtrcError
				\ ToggleSubwin
syn match	mrxvtrcSubwin	contained skipwhite nextgroup=mrxvtrcError
				\ '\v[-+]?[bmst]>'

"
" Highlighting groups
"
hi def link mrxvtrcError	Error
hi def link mrxvtrcComment	Comment

hi def link mrxvtrcClass	Statement
hi def link mrxvtrcOptions	mrxvtrcClass
hi def link mrxvtrcBColon	mrxvtrcClass
hi def link mrxvtrcCColon	mrxvtrcClass
hi def link mrxvtrcNColon	mrxvtrcClass
hi def link mrxvtrcSColon	mrxvtrcClass
hi def link mrxvtrcProfile	mrxvtrcClass
hi def link mrxvtrcPSOpts	mrxvtrcClass
hi def link mrxvtrcPCOpts	mrxvtrcClass
hi def link mrxvtrcPNOpts	mrxvtrcClass

hi def link mrxvtrcBoolVal	Boolean
hi def link mrxvtrcStrVal	String
hi def link mrxvtrcColorVal	Constant
hi def link mrxvtrcNumVal	Number

hi def link mrxvtrcSBstyle	mrxvtrcStrVal
hi def link mrxvtrcSBalign	mrxvtrcStrVal
hi def link mrxvtrcTSmode	mrxvtrcStrVal
hi def link mrxvtrcGrkKbd	mrxvtrcStrVal
hi def link mrxvtrcXftWt	mrxvtrcStrVal
hi def link mrxvtrcXftSl	mrxvtrcStrVal
hi def link mrxvtrcXftWd	mrxvtrcStrVal
hi def link mrxvtrcXftHt	mrxvtrcStrVal
hi def link mrxvtrcPedit	mrxvtrcStrVal
hi def link mrxvtrcMod		mrxvtrcStrVal
hi def link mrxvtrcSelSty	mrxvtrcStrVal

hi def link mrxvtrcMacro	Identifier
hi def link mrxvtrcKey		mrxvtrcClass
hi def link mrxvtrcTitle	mrxvtrcStrVal
hi def link mrxvtrcShell	Special
hi def link mrxvtrcCmd		PreProc
hi def link mrxvtrcSubwin	mrxvtrcStrVal

let b:current_syntax = "mrxvtrc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z%E�eevim80/syntax/whitespace.vimnu�[���" Simplistic way to make spaces and Tabs visible

" This can be added to an already active syntax.

syn match Space " "
syn match Tab "\t"
if &background == "dark"
  hi def Space ctermbg=darkred guibg=#500000
  hi def Tab ctermbg=darkgreen guibg=#003000
else
  hi def Space ctermbg=lightred guibg=#ffd0d0
  hi def Tab ctermbg=lightgreen guibg=#d0ffd0
endif
PK�j�ZL�%��vim80/syntax/model.vimnu�[���" Vim syntax file
" Language:	Model
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2005 Jun 20

" very basic things only (based on the vgrindefs file).
" If you use this language, please improve it, and send me the patches!

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of keywords
syn keyword modelKeyword abs and array boolean by case cdnl char copied dispose
syn keyword modelKeyword div do dynamic else elsif end entry external FALSE false
syn keyword modelKeyword fi file for formal fortran global if iff ift in integer include
syn keyword modelKeyword inline is lbnd max min mod new NIL nil noresult not notin od of
syn keyword modelKeyword or procedure public read readln readonly record recursive rem rep
syn keyword modelKeyword repeat res result return set space string subscript such then TRUE
syn keyword modelKeyword true type ubnd union until varies while width

" Special keywords
syn keyword modelBlock beginproc endproc

" Comments
syn region modelComment start="\$" end="\$" end="$"

" Strings
syn region modelString start=+"+ end=+"+

" Character constant (is this right?)
syn match modelString "'."

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link modelKeyword	Statement
hi def link modelBlock		PreProc
hi def link modelComment	Comment
hi def link modelString		String

let b:current_syntax = "model"

" vim: ts=8 sw=2
PK�j�ZԞ��AAvim80/syntax/cl.vimnu�[���" Vim syntax file
" Language:		CL
" 			(pronounced alphabetically: "Cee-El".
" 			CL stands for Clever Language,
" 			but the language is CL, not "Clever".
" 			CL was created by Multibase, http://www.mbase.com.au)
" Filename extensions:	*.ent
"			*.eni
" Maintainer:		Philip Uren	<philuSPAX@ieee.org> Remove SPAX spam block
" Version:              6
" Last Change:		Mar 06 2013

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

setlocal iskeyword=@,48-57,_,-

syn case ignore

syn sync lines=300

"If/else/elsif/endif and while/wend mismatch errors
syn match	clifError	"\<wend\>"
syn match	clifError	"\<elsif\>"
syn match	clifError	"\<else\>"
syn match	clifError	"\<endif\>"

syn match	clSpaceError	"\s\+$"

" If and while regions
syn region	clLoop		transparent matchgroup=clWhile start="\<while\>" matchgroup=clWhile end="\<wend\>" contains=ALLBUT,clBreak,clProcedure
syn region	clIf		transparent matchgroup=clConditional start="\<if\>" matchgroup=clConditional end="\<endif\>"   contains=ALLBUT,clBreak,clProcedure

" Make those TODO notes and debugging stand out!
syn keyword	clTodo		contained	TODO BUG DEBUG FIX
syn match	clNeedsWork	contained	"NEED[S]*\s\s*WORK"
syn keyword	clDebug		contained	debug

syn match	clComment	"#.*$"		contains=clTodo,clNeedsWork,@Spell
syn region	clProcedure	oneline		start="^\s*[{}]" end="$"
syn match	clInclude	"^\s*include\s.*"

" We don't put "debug" in the clSetOptions;
" we contain it in clSet so we can make it stand out.
syn keyword	clSetOptions	transparent aauto abort align convert E fill fnum goback hangup justify null_exit output rauto rawprint rawdisplay repeat skip tab trim
syn match	clSet		"^\s*set\s.*" contains=clSetOptions,clDebug

syn match	clPreProc	"^\s*#P.*"

syn keyword	clConditional	else elsif
syn keyword	clWhile		continue endloop
" 'break' needs to be a region so we can sync on it above.
syn region	clBreak		oneline start="^\s*break" end="$"

syn match	clOperator	"[!;|)(:.><+*=-]"

syn match	clNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"

syn region	clString	matchgroup=clQuote	start=+"+ end=+"+	skip=+\\"+ contains=@Spell
syn region	clString	matchgroup=clQuote	start=+'+ end=+'+	skip=+\\'+ contains=@Spell

syn keyword	clReserved	ERROR EXIT INTERRUPT LOCKED LREPLY MODE MCOL MLINE MREPLY NULL REPLY V1 V2 V3 V4 V5 V6 V7 V8 V9 ZERO BYPASS GOING_BACK AAUTO ABORT ABORT ALIGN BIGE CONVERT FNUM GOBACK HANGUP JUSTIFY NEXIT OUTPUT RAUTO RAWDISPLAY RAWPRINT REPEAT SKIP TAB TRIM LCOUNT PCOUNT PLINES SLINES SCOLS MATCH LMATCH

syn keyword	clFunction	asc asize chr name random slen srandom day getarg getcgi getenv lcase scat sconv sdel skey smult srep substr sword trim ucase match

syn keyword	clStatement	clear clear_eol clear_eos close copy create unique with where empty define define ldefine delay_form delete escape exit_block exit_do exit_process field fork format get getfile getnext getprev goto head join maintain message no_join on_eop on_key on_exit on_delete openin openout openapp pause popenin popenout popenio print put range read redisplay refresh restart_block screen select sleep text unlock write and not or do

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link clifError	Error
hi def link clSpaceError	Error
hi def link clWhile		Repeat
hi def link clConditional	Conditional
hi def link clDebug		Debug
hi def link clNeedsWork	Todo
hi def link clTodo		Todo
hi def link clComment	Comment
hi def link clProcedure	Procedure
hi def link clBreak		Procedure
hi def link clInclude	Include
hi def link clSetOption	Statement
hi def link clSet		Identifier
hi def link clPreProc	PreProc
hi def link clOperator	Operator
hi def link clNumber		Number
hi def link clString		String
hi def link clQuote		Delimiter
hi def link clReserved	Identifier
hi def link clFunction	Function
hi def link clStatement	Statement


let b:current_syntax = "cl"

" vim: ts=8 sw=8
PK�j�Z�c�5WWvim80/syntax/groovy.vimnu�[���" Vim syntax file
" Language:	Groovy
" Original Author:	Alessio Pace <billy.corgan@tiscali.it>
" Maintainer:	Tobias Rapp <yahuxo@gmx.de>
" Version: 	0.1.16
" URL:	  http://www.vim.org/scripts/script.php?script_id=945
" Last Change:	2016 May 23

" THE ORIGINAL AUTHOR'S NOTES:
"
" This is my very first vim script, I hope to have
" done it the right way.
"
" I must directly or indirectly thank the author of java.vim and ruby.vim:
" I copied from them most of the stuff :-)
"
" Relies on html.vim

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
"
" HOWTO USE IT (INSTALL) when not part of the distribution:
"
" 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder
"
" 2) add this line to recognize groovy files by filename extension:
"
" au BufNewFile,BufRead *.groovy  setf groovy
" in the global vim filetype.vim file or inside $HOME/.vim/filetype.vim
"
" 3) add this part to recognize by content groovy script (no extension needed :-)
"
"  if did_filetype()
"    finish
"  endif
"  if getline(1) =~ '^#!.*[/\\]groovy\>'
"    setf groovy
"  endif
"
"  in the global scripts.vim file or in $HOME/.vim/scripts.vim
"
" 4) open/write a .groovy file or a groovy script :-)
"
" Let me know if you like it or send me patches, so that I can improve it
" when I have time

" quit when a syntax file was already loaded
if !exists("main_syntax")
  if exists("b:current_syntax")
    finish
  endif
  " we define it here so that included files can test for it
  let main_syntax='groovy'
endif

let s:cpo_save = &cpo
set cpo&vim

" ##########################
" Java stuff taken from java.vim
" some characters that cannot be in a groovy program (outside a string)
" syn match groovyError "[\\@`]"
"syn match groovyError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"
"syn match groovyOK "\.\.\."

" keyword definitions
syn keyword groovyExternal        native package
syn match groovyExternal          "\<import\>\(\s\+static\>\)\?"
syn keyword groovyError           goto const
syn keyword groovyConditional     if else switch
syn keyword groovyRepeat          while for do
syn keyword groovyBoolean         true false
syn keyword groovyConstant        null
syn keyword groovyTypedef         this super
syn keyword groovyOperator        new instanceof
syn keyword groovyType            boolean char byte short int long float double
syn keyword groovyType            void
syn keyword groovyType		  Integer Double Date Boolean Float String Array Vector List
syn keyword groovyStatement       return
syn keyword groovyStorageClass    static synchronized transient volatile final strictfp serializable
syn keyword groovyExceptions      throw try catch finally
syn keyword groovyAssert          assert
syn keyword groovyMethodDecl      synchronized throws
syn keyword groovyClassDecl       extends implements interface
" to differentiate the keyword class from MyClass.class we use a match here
syn match   groovyTypedef         "\.\s*\<class\>"ms=s+1
syn keyword groovyClassDecl         enum
syn match   groovyClassDecl       "^class\>"
syn match   groovyClassDecl       "[^.]\s*\<class\>"ms=s+1
syn keyword groovyBranch          break continue nextgroup=groovyUserLabelRef skipwhite
syn match   groovyUserLabelRef    "\k\+" contained
syn keyword groovyScopeDecl       public protected private abstract


if exists("groovy_highlight_groovy_lang_ids") || exists("groovy_highlight_groovy_lang") || exists("groovy_highlight_all")
  " groovy.lang.*
  syn keyword groovyLangClass  Closure MetaMethod GroovyObject

  syn match groovyJavaLangClass "\<System\>"
  syn keyword groovyJavaLangClass  Cloneable Comparable Runnable Serializable Boolean Byte Class Object
  syn keyword groovyJavaLangClass  Character CharSequence ClassLoader Compiler
  " syn keyword groovyJavaLangClass  Integer Double Float Long
  syn keyword groovyJavaLangClass  InheritableThreadLocal Math Number Object Package Process
  syn keyword groovyJavaLangClass  Runtime RuntimePermission InheritableThreadLocal
  syn keyword groovyJavaLangClass  SecurityManager Short StrictMath StackTraceElement
  syn keyword groovyJavaLangClass  StringBuffer Thread ThreadGroup
  syn keyword groovyJavaLangClass  ThreadLocal Throwable Void ArithmeticException
  syn keyword groovyJavaLangClass  ArrayIndexOutOfBoundsException AssertionError
  syn keyword groovyJavaLangClass  ArrayStoreException ClassCastException
  syn keyword groovyJavaLangClass  ClassNotFoundException
  syn keyword groovyJavaLangClass  CloneNotSupportedException Exception
  syn keyword groovyJavaLangClass  IllegalAccessException
  syn keyword groovyJavaLangClass  IllegalArgumentException
  syn keyword groovyJavaLangClass  IllegalMonitorStateException
  syn keyword groovyJavaLangClass  IllegalStateException
  syn keyword groovyJavaLangClass  IllegalThreadStateException
  syn keyword groovyJavaLangClass  IndexOutOfBoundsException
  syn keyword groovyJavaLangClass  InstantiationException InterruptedException
  syn keyword groovyJavaLangClass  NegativeArraySizeException NoSuchFieldException
  syn keyword groovyJavaLangClass  NoSuchMethodException NullPointerException
  syn keyword groovyJavaLangClass  NumberFormatException RuntimeException
  syn keyword groovyJavaLangClass  SecurityException StringIndexOutOfBoundsException
  syn keyword groovyJavaLangClass  UnsupportedOperationException
  syn keyword groovyJavaLangClass  AbstractMethodError ClassCircularityError
  syn keyword groovyJavaLangClass  ClassFormatError Error ExceptionInInitializerError
  syn keyword groovyJavaLangClass  IllegalAccessError InstantiationError
  syn keyword groovyJavaLangClass  IncompatibleClassChangeError InternalError
  syn keyword groovyJavaLangClass  LinkageError NoClassDefFoundError
  syn keyword groovyJavaLangClass  NoSuchFieldError NoSuchMethodError
  syn keyword groovyJavaLangClass  OutOfMemoryError StackOverflowError
  syn keyword groovyJavaLangClass  ThreadDeath UnknownError UnsatisfiedLinkError
  syn keyword groovyJavaLangClass  UnsupportedClassVersionError VerifyError
  syn keyword groovyJavaLangClass  VirtualMachineError

  syn keyword groovyJavaLangObject clone equals finalize getClass hashCode
  syn keyword groovyJavaLangObject notify notifyAll toString wait

  hi def link groovyLangClass                   groovyConstant
  hi def link groovyJavaLangClass               groovyExternal
  hi def link groovyJavaLangObject              groovyConstant
  syn cluster groovyTop add=groovyJavaLangObject,groovyJavaLangClass,groovyLangClass
  syn cluster groovyClasses add=groovyJavaLangClass,groovyLangClass
endif


" Groovy stuff
syn match groovyOperator "\.\."
syn match groovyOperator "<\{2,3}"
syn match groovyOperator ">\{2,3}"
syn match groovyOperator "->"
syn match groovyLineComment       '^\%1l#!.*'  " Shebang line
syn match groovyExceptions        "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"

" Groovy JDK stuff
syn keyword groovyJDKBuiltin    as def in
syn keyword groovyJDKOperOverl  div minus plus abs round power multiply
syn keyword groovyJDKMethods 	each call inject sort print println
syn keyword groovyJDKMethods    getAt putAt size push pop toList getText writeLine eachLine readLines
syn keyword groovyJDKMethods    withReader withStream withWriter withPrintWriter write read leftShift
syn keyword groovyJDKMethods    withWriterAppend readBytes splitEachLine
syn keyword groovyJDKMethods    newInputStream newOutputStream newPrintWriter newReader newWriter
syn keyword groovyJDKMethods    compareTo next previous isCase
syn keyword groovyJDKMethods    times step toInteger upto any collect dump every find findAll grep
syn keyword groovyJDKMethods    inspect invokeMethods join
syn keyword groovyJDKMethods    getErr getIn getOut waitForOrKill
syn keyword groovyJDKMethods    count tokenize asList flatten immutable intersect reverse reverseEach
syn keyword groovyJDKMethods    subMap append asWritable eachByte eachLine eachFile
syn cluster groovyTop add=groovyJDKBuiltin,groovyJDKOperOverl,groovyJDKMethods

" no useful I think, so I comment it..
"if filereadable(expand("<sfile>:p:h")."/groovyid.vim")
 " source <sfile>:p:h/groovyid.vim
"endif

if exists("groovy_space_errors")
  if !exists("groovy_no_trail_space_error")
    syn match   groovySpaceError  "\s\+$"
  endif
  if !exists("groovy_no_tab_space_error")
    syn match   groovySpaceError  " \+\t"me=e-1
  endif
endif

" it is a better case construct than java.vim to match groovy syntax
syn region  groovyLabelRegion     transparent matchgroup=groovyLabel start="\<case\>" matchgroup=NONE end=":\|$" contains=groovyNumber,groovyString,groovyLangClass,groovyJavaLangClass
syn match   groovyUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=groovyLabel
syn keyword groovyLabel           default

if !exists("groovy_allow_cpp_keywords")
  syn keyword groovyError auto delete extern friend inline redeclared
  syn keyword groovyError register signed sizeof struct template typedef union
  syn keyword groovyError unsigned operator
endif

" The following cluster contains all groovy groups except the contained ones
syn cluster groovyTop add=groovyExternal,groovyError,groovyError,groovyBranch,groovyLabelRegion,groovyLabel,groovyConditional,groovyRepeat,groovyBoolean,groovyConstant,groovyTypedef,groovyOperator,groovyType,groovyType,groovyStatement,groovyStorageClass,groovyAssert,groovyExceptions,groovyMethodDecl,groovyClassDecl,groovyClassDecl,groovyClassDecl,groovyScopeDecl,groovyError,groovyError2,groovyUserLabel,groovyLangObject


" Comments
syn keyword groovyTodo             contained TODO FIXME XXX
if exists("groovy_comment_strings")
  syn region  groovyCommentString    contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=groovySpecial,groovyCommentStar,groovySpecialChar,@Spell
  syn region  groovyComment2String   contained start=+"+  end=+$\|"+  contains=groovySpecial,groovySpecialChar,@Spell
  syn match   groovyCommentCharacter contained "'\\[^']\{1,6\}'" contains=groovySpecialChar
  syn match   groovyCommentCharacter contained "'\\''" contains=groovySpecialChar
  syn match   groovyCommentCharacter contained "'[^\\]'"
  syn cluster groovyCommentSpecial add=groovyCommentString,groovyCommentCharacter,groovyNumber
  syn cluster groovyCommentSpecial2 add=groovyComment2String,groovyCommentCharacter,groovyNumber
endif
syn region  groovyComment          start="/\*"  end="\*/" contains=@groovyCommentSpecial,groovyTodo,@Spell
syn match   groovyCommentStar      contained "^\s*\*[^/]"me=e-1
syn match   groovyCommentStar      contained "^\s*\*$"
syn match   groovyLineComment      "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
hi def link groovyCommentString groovyString
hi def link groovyComment2String groovyString
hi def link groovyCommentCharacter groovyCharacter

syn cluster groovyTop add=groovyComment,groovyLineComment

if !exists("groovy_ignore_groovydoc") && main_syntax != 'jsp'
  syntax case ignore
  " syntax coloring for groovydoc comments (HTML)
  " syntax include @groovyHtml <sfile>:p:h/html.vim
   syntax include @groovyHtml runtime! syntax/html.vim
  unlet b:current_syntax
  syntax spell default  " added by Bram
  syn region  groovyDocComment    start="/\*\*"  end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell
  syn region  groovyCommentTitle  contained matchgroup=groovyDocComment start="/\*\*"   matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags

  syn region groovyDocTags  contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
  syn match  groovyDocTags  contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=groovyDocParam
  syn match  groovyDocParam contained "\s\S\+"
  syn match  groovyDocTags  contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
  syntax case match
endif

" match the special comment /**/
syn match   groovyComment          "/\*\*/"

" Strings and constants
syn match   groovySpecialError     contained "\\."
syn match   groovySpecialCharError contained "[^']"
syn match   groovySpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)"
syn match   groovyRegexChar        contained "\\."
syn region  groovyString          start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
syn region  groovyString          start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell
syn region  groovyString          start=+"""+ end=+"""+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
syn region  groovyString          start=+'''+ end=+'''+ contains=groovySpecialChar,groovySpecialError,@Spell
if exists("groovy_regex_strings")
  " regex strings interfere with the division operator and thus are disabled
  " by default
  syn region groovyString         start='/[^/*]' end='/' contains=groovySpecialChar,groovyRegexChar,groovyELExpr
endif
" syn region groovyELExpr start=+${+ end=+}+ keepend contained
syn match groovyELExpr /\${.\{-}}/ contained
syn match groovyELExpr /\$[a-zA-Z_][a-zA-Z0-9_.]*/ contained
hi def link groovyELExpr Identifier

" TODO: better matching. I am waiting to understand how it really works in groovy
" syn region  groovyClosureParamsBraces          start=+|+ end=+|+ contains=groovyClosureParams
" syn match groovyClosureParams	"[ a-zA-Z0-9_*]\+" contained
" hi def link groovyClosureParams Identifier

" next line disabled, it can cause a crash for a long line
"syn match   groovyStringError      +"\([^"\\]\|\\.\)*$+

" disabled: in groovy strings or characters are written the same
" syn match   groovyCharacter        "'[^']*'" contains=groovySpecialChar,groovySpecialCharError
" syn match   groovyCharacter        "'\\''" contains=groovySpecialChar
" syn match   groovyCharacter        "'[^\\]'"
syn match   groovyNumber           "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
syn match   groovyNumber           "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
syn match   groovyNumber           "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match   groovyNumber           "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"

" unicode characters
syn match   groovySpecial "\\u\d\{4\}"

syn cluster groovyTop add=groovyString,groovyCharacter,groovyNumber,groovySpecial,groovyStringError

if exists("groovy_highlight_functions")
  if groovy_highlight_functions == "indent"
    syn match  groovyFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
    syn region groovyFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
    syn match  groovyFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
    syn region groovyFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
  else
    " This line catches method declarations at any indentation>0, but it assumes
    " two things:
    "   1. class names are always capitalized (ie: Button)
    "   2. method names are never capitalized (except constructors, of course)
    syn region groovyFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,groovyComment,groovyLineComment,@groovyClasses
  endif
  syn match  groovyBraces  "[{}]"
  syn cluster groovyTop add=groovyFuncDef,groovyBraces
endif

if exists("groovy_highlight_debug")

  " Strings and constants
  syn match   groovyDebugSpecial          contained "\\\d\d\d\|\\."
  syn region  groovyDebugString           contained start=+"+  end=+"+  contains=groovyDebugSpecial
  syn match   groovyDebugStringError      +"\([^"\\]\|\\.\)*$+
  syn match   groovyDebugCharacter        contained "'[^\\]'"
  syn match   groovyDebugSpecialCharacter contained "'\\.'"
  syn match   groovyDebugSpecialCharacter contained "'\\''"
  syn match   groovyDebugNumber           contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  syn match   groovyDebugNumber           contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  syn match   groovyDebugNumber           contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  syn match   groovyDebugNumber           contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  syn keyword groovyDebugBoolean          contained true false
  syn keyword groovyDebugType             contained null this super
  syn region groovyDebugParen  start=+(+ end=+)+ contained contains=groovyDebug.*,groovyDebugParen

  " to make this work you must define the highlighting for these groups
  syn match groovyDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
  syn match groovyDebug "\<p\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
  syn match groovyDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
  syn match groovyDebug "\<trace[SL]\=\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen

  syn cluster groovyTop add=groovyDebug

  hi def link groovyDebug                 Debug
  hi def link groovyDebugString           DebugString
  hi def link groovyDebugStringError      groovyError
  hi def link groovyDebugType             DebugType
  hi def link groovyDebugBoolean          DebugBoolean
  hi def link groovyDebugNumber           Debug
  hi def link groovyDebugSpecial          DebugSpecial
  hi def link groovyDebugSpecialCharacter DebugSpecial
  hi def link groovyDebugCharacter        DebugString
  hi def link groovyDebugParen            Debug

  hi def link DebugString               String
  hi def link DebugSpecial              Special
  hi def link DebugBoolean              Boolean
  hi def link DebugType                 Type
endif

" Match all Exception classes
syn match groovyExceptions        "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"


if !exists("groovy_minlines")
  let groovy_minlines = 10
endif
exec "syn sync ccomment groovyComment minlines=" . groovy_minlines


" ###################
" Groovy stuff
" syn match groovyOperator		"|[ ,a-zA-Z0-9_*]\+|"

" All groovy valid tokens
" syn match groovyTokens ";\|,\|<=>\|<>\|:\|:=\|>\|>=\|=\|==\|<\|<=\|!=\|/\|/=\|\.\.|\.\.\.\|\~=\|\~=="
" syn match groovyTokens "\*=\|&\|&=\|\*\|->\|\~\|+\|-\|/\|?\|<<<\|>>>\|<<\|>>"

" Must put explicit these ones because groovy.vim mark them as errors otherwise
" syn match groovyTokens "<=>\|<>\|==\~"
"syn cluster groovyTop add=groovyTokens

" Mark these as operators

" Hightlight brackets
" syn match  groovyBraces		"[{}]"
" syn match  groovyBraces		"[\[\]]"
" syn match  groovyBraces		"[\|]"

if exists("groovy_mark_braces_in_parens_as_errors")
  syn match groovyInParen          contained "[{}]"
  hi def link groovyInParen        groovyError
  syn cluster groovyTop add=groovyInParen
endif

" catch errors caused by wrong parenthesis
syn region  groovyParenT  transparent matchgroup=groovyParen  start="("  end=")" contains=@groovyTop,groovyParenT1
syn region  groovyParenT1 transparent matchgroup=groovyParen1 start="(" end=")" contains=@groovyTop,groovyParenT2 contained
syn region  groovyParenT2 transparent matchgroup=groovyParen2 start="(" end=")" contains=@groovyTop,groovyParenT  contained
syn match   groovyParenError       ")"
hi def link groovyParenError       groovyError

" catch errors caused by wrong square parenthesis
syn region  groovyParenT  transparent matchgroup=groovyParen  start="\["  end="\]" contains=@groovyTop,groovyParenT1
syn region  groovyParenT1 transparent matchgroup=groovyParen1 start="\[" end="\]" contains=@groovyTop,groovyParenT2 contained
syn region  groovyParenT2 transparent matchgroup=groovyParen2 start="\[" end="\]" contains=@groovyTop,groovyParenT  contained
syn match   groovyParenError       "\]"

" ###############################
" java.vim default highlighting
hi def link groovyFuncDef		Function
hi def link groovyBraces		Function
hi def link groovyBranch		Conditional
hi def link groovyUserLabelRef	groovyUserLabel
hi def link groovyLabel		Label
hi def link groovyUserLabel		Label
hi def link groovyConditional	Conditional
hi def link groovyRepeat		Repeat
hi def link groovyExceptions		Exception
hi def link groovyAssert 		Statement
hi def link groovyStorageClass	StorageClass
hi def link groovyMethodDecl		groovyStorageClass
hi def link groovyClassDecl		groovyStorageClass
hi def link groovyScopeDecl		groovyStorageClass
hi def link groovyBoolean		Boolean
hi def link groovySpecial		Special
hi def link groovySpecialError	Error
hi def link groovySpecialCharError	Error
hi def link groovyString		String
hi def link groovyRegexChar		String
hi def link groovyCharacter		Character
hi def link groovySpecialChar	SpecialChar
hi def link groovyNumber		Number
hi def link groovyError		Error
hi def link groovyStringError	Error
hi def link groovyStatement		Statement
hi def link groovyOperator		Operator
hi def link groovyComment		Comment
hi def link groovyDocComment		Comment
hi def link groovyLineComment	Comment
hi def link groovyConstant		Constant
hi def link groovyTypedef		Typedef
hi def link groovyTodo		Todo

hi def link groovyCommentTitle	SpecialComment
hi def link groovyDocTags		Special
hi def link groovyDocParam		Function
hi def link groovyCommentStar	groovyComment

hi def link groovyType		Type
hi def link groovyExternal		Include

hi def link htmlComment		Special
hi def link htmlCommentPart		Special
hi def link groovySpaceError		Error
hi def link groovyJDKBuiltin         Special
hi def link groovyJDKOperOverl       Operator
hi def link groovyJDKMethods         Function


let b:current_syntax = "groovy"
if main_syntax == 'groovy'
  unlet main_syntax
endif

let b:spell_options="contained"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�ZuDI55vim80/syntax/cpp.vimnu�[���" Vim syntax file
" Language:	C++
" Current Maintainer:	vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer:	Ken Shan <ccshan@post.harvard.edu>
" Last Change:	2017 Jun 05

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C syntax to start with
runtime! syntax/c.vim
unlet b:current_syntax

" C++ extensions
syn keyword cppStatement	new delete this friend using
syn keyword cppAccess		public protected private
syn keyword cppModifier		inline virtual explicit export
syn keyword cppType		bool wchar_t
syn keyword cppExceptions	throw try catch
syn keyword cppOperator		operator typeid
syn keyword cppOperator		and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq
syn match cppCast		"\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1
syn match cppCast		"\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$"
syn keyword cppStorageClass	mutable
syn keyword cppStructure	class typename template namespace
syn keyword cppBoolean		true false
syn keyword cppConstant		__cplusplus

" C++ 11 extensions
if !exists("cpp_no_cpp11")
  syn keyword cppModifier	override final
  syn keyword cppType		nullptr_t auto
  syn keyword cppExceptions	noexcept
  syn keyword cppStorageClass	constexpr decltype thread_local
  syn keyword cppConstant	nullptr
  syn keyword cppConstant	ATOMIC_FLAG_INIT ATOMIC_VAR_INIT
  syn keyword cppConstant	ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE
  syn keyword cppConstant	ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE
  syn keyword cppConstant	ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE
  syn keyword cppConstant	ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE
  syn keyword cppConstant	ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE
  syn region cppRawString	matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
endif

" C++ 14 extensions
if !exists("cpp_no_cpp14")
  syn case ignore
  syn match cppNumber		display "\<0b[01]\('\=[01]\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
  syn match cppNumber		display "\<[1-9]\('\=\d\+\)*\(u\=l\{0,2}\|ll\=u\)\>" contains=cFloat
  syn match cppNumber		display "\<0x\x\('\=\x\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
  syn case match
endif

" The minimum and maximum operators in GNU C++
syn match cppMinMax "[<>]?"

" Default highlighting
hi def link cppAccess		cppStatement
hi def link cppCast		cppStatement
hi def link cppExceptions		Exception
hi def link cppOperator		Operator
hi def link cppStatement		Statement
hi def link cppModifier		Type
hi def link cppType		Type
hi def link cppStorageClass	StorageClass
hi def link cppStructure		Structure
hi def link cppBoolean		Boolean
hi def link cppConstant		Constant
hi def link cppRawStringDelimiter	Delimiter
hi def link cppRawString		String
hi def link cppNumber		Number

let b:current_syntax = "cpp"

" vim: ts=8
PK�j�Z"���+H+Hvim80/syntax/sicad.vimnu�[���" Vim syntax file
" Language:     SiCAD (procedure language)
" Maintainer:   Zsolt Branyiczky <zbranyiczky@lmark.mgx.hu>
" Last Change:  2003 May 11
" URL:		http://lmark.mgx.hu:81/download/vim/sicad.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" use SQL highlighting after 'sql' command
syn include @SQL syntax/sql.vim
unlet b:current_syntax

" spaces are used in (auto)indents since sicad hates tabulator characters
setlocal expandtab

" ignore case
syn case ignore

" most important commands - not listed by ausku
syn keyword sicadStatement define
syn keyword sicadStatement dialog
syn keyword sicadStatement do
syn keyword sicadStatement dop contained
syn keyword sicadStatement end
syn keyword sicadStatement enddo
syn keyword sicadStatement endp
syn keyword sicadStatement erroff
syn keyword sicadStatement erron
syn keyword sicadStatement exitp
syn keyword sicadGoto      goto contained
syn keyword sicadStatement hh
syn keyword sicadStatement if
syn keyword sicadStatement in
syn keyword sicadStatement msgsup
syn keyword sicadStatement out
syn keyword sicadStatement padd
syn keyword sicadStatement parbeg
syn keyword sicadStatement parend
syn keyword sicadStatement pdoc
syn keyword sicadStatement pprot
syn keyword sicadStatement procd
syn keyword sicadStatement procn
syn keyword sicadStatement psav
syn keyword sicadStatement psel
syn keyword sicadStatement psymb
syn keyword sicadStatement ptrace
syn keyword sicadStatement ptstat
syn keyword sicadStatement set
syn keyword sicadStatement sql contained
syn keyword sicadStatement step
syn keyword sicadStatement sys
syn keyword sicadStatement ww

" functions
syn match sicadStatement "\<atan("me=e-1
syn match sicadStatement "\<atan2("me=e-1
syn match sicadStatement "\<cos("me=e-1
syn match sicadStatement "\<dist("me=e-1
syn match sicadStatement "\<exp("me=e-1
syn match sicadStatement "\<log("me=e-1
syn match sicadStatement "\<log10("me=e-1
syn match sicadStatement "\<sin("me=e-1
syn match sicadStatement "\<sqrt("me=e-1
syn match sicadStatement "\<tanh("me=e-1
syn match sicadStatement "\<x("me=e-1
syn match sicadStatement "\<y("me=e-1
syn match sicadStatement "\<v("me=e-1
syn match sicadStatement "\<x%g\=p[0-9]\{1,2}\>"me=s+1
syn match sicadStatement "\<y%g\=p[0-9]\{1,2}\>"me=s+1

" logical operators
syn match sicadOperator "\.and\."
syn match sicadOperator "\.ne\."
syn match sicadOperator "\.not\."
syn match sicadOperator "\.eq\."
syn match sicadOperator "\.ge\."
syn match sicadOperator "\.gt\."
syn match sicadOperator "\.le\."
syn match sicadOperator "\.lt\."
syn match sicadOperator "\.or\."
syn match sicadOperator "\.eqv\."
syn match sicadOperator "\.neqv\."

" variable name
syn match sicadIdentifier "%g\=[irpt][0-9]\{1,2}\>"
syn match sicadIdentifier "%g\=l[0-9]\>"
syn match sicadIdentifier "%g\=[irptl]("me=e-1
syn match sicadIdentifier "%error\>"
syn match sicadIdentifier "%nsel\>"
syn match sicadIdentifier "%nvar\>"
syn match sicadIdentifier "%scl\>"
syn match sicadIdentifier "%wd\>"
syn match sicadIdentifier "\$[irt][0-9]\{1,2}\>" contained

" label
syn match sicadLabel1 "^ *\.[a-z][a-z0-9]\{0,7} \+[^ ]"me=e-1
syn match sicadLabel1 "^ *\.[a-z][a-z0-9]\{0,7}\*"me=e-1
syn match sicadLabel2 "\<goto \.\=[a-z][a-z0-9]\{0,7}\>" contains=sicadGoto
syn match sicadLabel2 "\<goto\.[a-z][a-z0-9]\{0,7}\>" contains=sicadGoto

" boolean
syn match sicadBoolean "\.[ft]\."
" integer without sign
syn match sicadNumber "\<[0-9]\+\>"
" floating point number, with dot, optional exponent
syn match sicadFloat "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>"
" floating point number, starting with a dot, optional exponent
syn match sicadFloat "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
" floating point number, without dot, with exponent
syn match sicadFloat "\<[0-9]\+e[-+]\=[0-9]\+\>"

" without this extraString definition a ' ;  ' could stop the comment
syn region sicadString_ transparent start=+'+ end=+'+ oneline contained
" string
syn region sicadString start=+'+ end=+'+ oneline

" comments - nasty ones in sicad

" - ' *  blabla' or ' *  blabla;'
syn region sicadComment start="^ *\*" skip='\\ *$' end=";"me=e-1 end="$" contains=sicadString_
" - ' .LABEL03 *  blabla' or ' .LABEL03 *  blabla;'
syn region sicadComment start="^ *\.[a-z][a-z0-9]\{0,7} *\*" skip='\\ *$' end=";"me=e-1 end="$" contains=sicadLabel1,sicadString_
" - '; * blabla' or '; * blabla;'
syn region sicadComment start="; *\*"ms=s+1 skip='\\ *$' end=";"me=e-1 end="$" contains=sicadString_
" - comments between docbeg and docend
syn region sicadComment matchgroup=sicadStatement start="\<docbeg\>" end="\<docend\>"

" catch \ at the end of line
syn match sicadLineCont "\\ *$"

" parameters in dop block - for the time being it is not used
"syn match sicadParameter " [a-z][a-z0-9]*[=:]"me=e-1 contained
" dop block - for the time being it is not used
syn region sicadDopBlock transparent matchgroup=sicadStatement start='\<dop\>' skip='\\ *$' end=';'me=e-1 end='$' contains=ALL

" sql block - new highlighting mode is used (see syn include)
syn region sicadSqlBlock transparent matchgroup=sicadStatement start='\<sql\>' skip='\\ *$' end=';'me=e-1 end='$' contains=@SQL,sicadIdentifier,sicadLineCont

" synchronizing
syn sync clear  " clear sync used in sql.vim
syn sync match sicadSyncComment groupthere NONE "\<docend\>"
syn sync match sicadSyncComment grouphere sicadComment "\<docbeg\>"
" next line must be examined too
syn sync linecont "\\ *$"

" catch error caused by tabulator key
syn match sicadError "\t"
" catch errors caused by wrong parenthesis
"syn region sicadParen transparent start='(' end=')' contains=ALLBUT,sicadParenError
syn region sicadParen transparent start='(' skip='\\ *$' end=')' end='$' contains=ALLBUT,sicadParenError
syn match sicadParenError ')'
"syn region sicadApostrophe transparent start=+'+ end=+'+ contains=ALLBUT,sicadApostropheError
"syn match sicadApostropheError +'+
" not closed apostrophe
"syn region sicadError start=+'+ end=+$+ contains=ALLBUT,sicadApostropheError
"syn match sicadApostropheError +'[^']*$+me=s+1 contained

" SICAD keywords
syn keyword sicadStatement abst add addsim adrin aib
syn keyword sicadStatement aibzsn aidump aifgeo aisbrk alknam
syn keyword sicadStatement alknr alksav alksel alktrc alopen
syn keyword sicadStatement ansbo aractiv ararea arareao ararsfs
syn keyword sicadStatement arbuffer archeck arcomv arcont arconv
syn keyword sicadStatement arcopy arcopyo arcorr arcreate arerror
syn keyword sicadStatement areval arflfm arflop arfrast argbkey
syn keyword sicadStatement argenf argraph argrapho arinters arkompfl
syn keyword sicadStatement arlasso arlcopy arlgraph arline arlining
syn keyword sicadStatement arlisly armakea armemo arnext aroverl
syn keyword sicadStatement arovers arparkmd arpars arrefp arselect
syn keyword sicadStatement arset arstruct arunify arupdate arvector
syn keyword sicadStatement arveinfl arvflfl arvoroni ausku basis
syn keyword sicadStatement basisaus basisdar basisnr bebos befl
syn keyword sicadStatement befla befli befls beo beorta
syn keyword sicadStatement beortn bep bepan bepap bepola
syn keyword sicadStatement bepoln bepsn bepsp ber berili
syn keyword sicadStatement berk bewz bkl bli bma
syn keyword sicadStatement bmakt bmakts bmbm bmerk bmerw
syn keyword sicadStatement bmerws bminit bmk bmorth bmos
syn keyword sicadStatement bmoss bmpar bmsl bmsum bmsums
syn keyword sicadStatement bmver bmvero bmw bo bta
syn keyword sicadStatement buffer bvl bw bza bzap
syn keyword sicadStatement bzd bzgera bzorth cat catel
syn keyword sicadStatement cdbdiff ce cgmparam close closesim
syn keyword sicadStatement comgener comp comp conclose conclose coninfo
syn keyword sicadStatement conopen conread contour conwrite cop
syn keyword sicadStatement copar coparp coparp2 copel cr
syn keyword sicadStatement cs cstat cursor d da
syn keyword sicadStatement dal dasp dasps dataout dcol
syn keyword sicadStatement dd defsr del delel deskrdef
syn keyword sicadStatement df dfn dfns dfpos dfr
syn keyword sicadStatement dgd dgm dgp dgr dh
syn keyword sicadStatement diag diaus dir disbsd dkl
syn keyword sicadStatement dktx dkur dlgfix dlgfre dma
syn keyword sicadStatement dprio dr druse dsel dskinfo
syn keyword sicadStatement dsr dv dve eba ebd
syn keyword sicadStatement ebdmod ebs edbsdbin edbssnin edbsvtin
syn keyword sicadStatement edt egaus egdef egdefs eglist
syn keyword sicadStatement egloe egloenp egloes egxx eib
syn keyword sicadStatement ekur ekuradd elel elpos epg
syn keyword sicadStatement esau esauadd esek eta etap
syn keyword sicadStatement etav feparam ficonv filse fl
syn keyword sicadStatement fli flin flini flinit flins
syn keyword sicadStatement flkor fln flnli flop flout
syn keyword sicadStatement flowert flparam flraster flsy flsyd
syn keyword sicadStatement flsym flsyms flsymt fmtatt fmtdia
syn keyword sicadStatement fmtlib fpg gbadddb gbaim gbanrs
syn keyword sicadStatement gbatw gbau gbaudit gbclosp gbcredic
syn keyword sicadStatement gbcreem gbcreld gbcresdb gbcretd gbde
syn keyword sicadStatement gbdeldb gbdeldic gbdelem gbdelld gbdelref
syn keyword sicadStatement gbdeltd gbdisdb gbdisem gbdisld gbdistd
syn keyword sicadStatement gbebn gbemau gbepsv gbgetdet gbgetes
syn keyword sicadStatement gbgetmas gbgqel gbgqelr gbgqsa gbgrant
syn keyword sicadStatement gbimpdic gbler gblerb gblerf gbles
syn keyword sicadStatement gblocdic gbmgmg gbmntdb gbmoddb gbnam
syn keyword sicadStatement gbneu gbopenp gbpoly gbpos gbpruef
syn keyword sicadStatement gbpruefg gbps gbqgel gbqgsa gbrefdic
syn keyword sicadStatement gbreftab gbreldic gbresem gbrevoke gbsav
syn keyword sicadStatement gbsbef gbsddk gbsicu gbsrt gbss
syn keyword sicadStatement gbstat gbsysp gbszau gbubp gbueb
syn keyword sicadStatement gbunmdb gbuseem gbw gbweg gbwieh
syn keyword sicadStatement gbzt gelp gera getvar hgw
syn keyword sicadStatement hpg hr0 hra hrar icclchan
syn keyword sicadStatement iccrecon icdescon icfree icgetcon icgtresp
syn keyword sicadStatement icopchan icputcon icreacon icreqd icreqnw
syn keyword sicadStatement icreqw icrespd icresrve icwricon imsget
syn keyword sicadStatement imsgqel imsmget imsplot imsprint inchk
syn keyword sicadStatement inf infd inst kbml kbmls
syn keyword sicadStatement kbmm kbmms kbmt kbmtdps kbmts
syn keyword sicadStatement khboe khbol khdob khe khetap
syn keyword sicadStatement khfrw khktk khlang khld khmfrp
syn keyword sicadStatement khmks khms khpd khpfeil khpl
syn keyword sicadStatement khprofil khrand khsa khsabs khsaph
syn keyword sicadStatement khsd khsdl khse khskbz khsna
syn keyword sicadStatement khsnum khsob khspos khsvph khtrn
syn keyword sicadStatement khver khzpe khzpl kib kldat
syn keyword sicadStatement klleg klsch klsym klvert kmpg
syn keyword sicadStatement kmtlage kmtp kmtps kodef kodefp
syn keyword sicadStatement kodefs kok kokp kolae kom
syn keyword sicadStatement kontly kopar koparp kopg kosy
syn keyword sicadStatement kp kr krsek krtclose krtopen
syn keyword sicadStatement ktk lad lae laesel language
syn keyword sicadStatement lasso lbdes lcs ldesk ldesks
syn keyword sicadStatement le leak leattdes leba lebas
syn keyword sicadStatement lebaznp lebd lebm lebv lebvaus
syn keyword sicadStatement lebvlist lede ledel ledepo ledepol
syn keyword sicadStatement ledepos leder ledist ledm lee
syn keyword sicadStatement leeins lees lege lekr lekrend
syn keyword sicadStatement lekwa lekwas lel lelh lell
syn keyword sicadStatement lelp lem lena lend lenm
syn keyword sicadStatement lep lepe lepee lepko lepl
syn keyword sicadStatement lepmko lepmkop lepos leposm leqs
syn keyword sicadStatement leqsl leqssp leqsv leqsvov les
syn keyword sicadStatement lesch lesr less lestd let
syn keyword sicadStatement letaum letl lev levm levtm
syn keyword sicadStatement levtp levtr lew lewm lexx
syn keyword sicadStatement lfs li lining lldes lmode
syn keyword sicadStatement loedk loepkt lop lose loses
syn keyword sicadStatement lp lppg lppruef lr ls
syn keyword sicadStatement lsop lsta lstat ly lyaus
syn keyword sicadStatement lz lza lzae lzbz lze
syn keyword sicadStatement lznr lzo lzpos ma ma0
syn keyword sicadStatement ma1 mad map mapoly mcarp
syn keyword sicadStatement mccfr mccgr mcclr mccrf mcdf
syn keyword sicadStatement mcdma mcdr mcdrp mcdve mcebd
syn keyword sicadStatement mcgse mcinfo mcldrp md me
syn keyword sicadStatement mefd mefds minmax mipg ml
syn keyword sicadStatement mmcmdme mmdbf mmdellb mmdir mmdome
syn keyword sicadStatement mmfsb mminfolb mmlapp mmlbf mmlistlb
syn keyword sicadStatement mmloadcm mmmsg mmreadlb mmsetlb mmshowcm
syn keyword sicadStatement mmstatme mnp mpo mr mra
syn keyword sicadStatement ms msav msgout msgsnd msp
syn keyword sicadStatement mspf mtd nasel ncomp new
syn keyword sicadStatement nlist nlistlt nlistly nlistnp nlistpo
syn keyword sicadStatement np npa npdes npe npem
syn keyword sicadStatement npinfa npruef npsat npss npssa
syn keyword sicadStatement ntz oa oan odel odf
syn keyword sicadStatement odfx oj oja ojaddsk ojaed
syn keyword sicadStatement ojaeds ojaef ojaefs ojaen ojak
syn keyword sicadStatement ojaks ojakt ojakz ojalm ojatkis
syn keyword sicadStatement ojatt ojatw ojbsel ojcasel ojckon
syn keyword sicadStatement ojde ojdtl ojeb ojebd ojel
syn keyword sicadStatement ojelpas ojesb ojesbd ojex ojezge
syn keyword sicadStatement ojko ojlb ojloe ojlsb ojmerk
syn keyword sicadStatement ojmos ojnam ojpda ojpoly ojprae
syn keyword sicadStatement ojs ojsak ojsort ojstrukt ojsub
syn keyword sicadStatement ojtdef ojvek ojx old oldd
syn keyword sicadStatement op opa opa1 open opensim
syn keyword sicadStatement opnbsd orth osanz ot otp
syn keyword sicadStatement otrefp param paranf pas passw
syn keyword sicadStatement pcatchf pda pdadd pg pg0
syn keyword sicadStatement pgauf pgaufsel pgb pgko pgm
syn keyword sicadStatement pgr pgvs pily pkpg plot
syn keyword sicadStatement plotf plotfr pmap pmdata pmdi
syn keyword sicadStatement pmdp pmeb pmep pminfo pmlb
syn keyword sicadStatement pmli pmlp pmmod pnrver poa
syn keyword sicadStatement pos posa posaus post printfr
syn keyword sicadStatement protect prs prssy prsym ps
syn keyword sicadStatement psadd psclose psopen psparam psprw
syn keyword sicadStatement psres psstat psw pswr qualif
syn keyword sicadStatement rahmen raster rasterd rbbackup rbchang2
syn keyword sicadStatement rbchange rbcmd rbcoldst rbcolor rbcopy
syn keyword sicadStatement rbcut rbcut2 rbdbcl rbdbload rbdbop
syn keyword sicadStatement rbdbwin rbdefs rbedit rbfdel rbfill
syn keyword sicadStatement rbfill2 rbfload rbfload2 rbfnew rbfnew2
syn keyword sicadStatement rbfpar rbfree rbg rbgetcol rbgetdst
syn keyword sicadStatement rbinfo rbpaste rbpixel rbrstore rbsnap
syn keyword sicadStatement rbsta rbtile rbtrpix rbvtor rcol
syn keyword sicadStatement rd rdchange re reb rebmod
syn keyword sicadStatement refunc ren renel rk rkpos
syn keyword sicadStatement rohr rohrpos rpr rr rr0
syn keyword sicadStatement rra rrar rs samtosdb sav
syn keyword sicadStatement savd savesim savx scol scopy
syn keyword sicadStatement scopye sdbtosam sddk sdwr se
syn keyword sicadStatement selaus selpos seman semi sesch
syn keyword sicadStatement setscl setvar sfclntpf sfconn sffetchf
syn keyword sicadStatement sffpropi sfftypi sfqugeoc sfquwhcl sfself
syn keyword sicadStatement sfstat sftest sge sid sie
syn keyword sicadStatement sig sigp skk skks sn
syn keyword sicadStatement sn21 snpa snpar snparp snparps
syn keyword sicadStatement snpars snpas snpd snpi snpkor
syn keyword sicadStatement snpl snpm sob sob0 sobloe
syn keyword sicadStatement sobs sof sop split spr
syn keyword sicadStatement sqdadd sqdlad sqdold sqdsav
syn keyword sicadStatement sr sres srt sset stat
syn keyword sicadStatement stdtxt string strukt strupru suinfl
syn keyword sicadStatement suinflk suinfls supo supo1 sva
syn keyword sicadStatement svr sy sya syly sysout
syn keyword sicadStatement syu syux taa tabeg tabl
syn keyword sicadStatement tabm tam tanr tapg tapos
syn keyword sicadStatement tarkd tas tase tb tbadd
syn keyword sicadStatement tbd tbext tbget tbint tbout
syn keyword sicadStatement tbput tbsat tbsel tbstr tcaux
syn keyword sicadStatement tccable tcchkrep tccomm tccond tcdbg
syn keyword sicadStatement tcgbnr tcgrpos tcinit tclconv tcmodel
syn keyword sicadStatement tcnwe tcpairs tcpath tcrect tcrmdli
syn keyword sicadStatement tcscheme tcschmap tcse tcselc tcstar
syn keyword sicadStatement tcstrman tcsubnet tcsymbol tctable tcthrcab
syn keyword sicadStatement tctrans tctst tdb tdbdel tdbget
syn keyword sicadStatement tdblist tdbput tgmod titel tmoff
syn keyword sicadStatement tmon tp tpa tps tpta
syn keyword sicadStatement tra trans transkdo transopt transpro
syn keyword sicadStatement triangle trm trpg trrkd trs
syn keyword sicadStatement ts tsa tx txa txchk
syn keyword sicadStatement txcng txju txl txp txpv
syn keyword sicadStatement txtcmp txv txz uckon uiinfo
syn keyword sicadStatement uistatus umdk umdk1 umdka umge
syn keyword sicadStatement umges umr verbo verflli verif
syn keyword sicadStatement verly versinfo vfg vpactive vpcenter
syn keyword sicadStatement vpcreate vpdelete vpinfo vpmodify vpscroll
syn keyword sicadStatement vpsta wabsym wzmerk zdrhf zdrhfn
syn keyword sicadStatement zdrhfw zdrhfwn zefp zfl zflaus
syn keyword sicadStatement zka zlel zlels zortf zortfn
syn keyword sicadStatement zortfw zortfwn zortp zortpn zparb
syn keyword sicadStatement zparbn zparf zparfn zparfw zparfwn
syn keyword sicadStatement zparp zparpn zwinkp zwinkpn

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link sicadLabel PreProc
hi def link sicadLabel1 sicadLabel
hi def link sicadLabel2 sicadLabel
hi def link sicadConditional Conditional
hi def link sicadBoolean Boolean
hi def link sicadNumber Number
hi def link sicadFloat Float
hi def link sicadOperator Operator
hi def link sicadStatement Statement
hi def link sicadParameter sicadStatement
hi def link sicadGoto sicadStatement
hi def link sicadLineCont sicadStatement
hi def link sicadString String
hi def link sicadComment Comment
hi def link sicadSpecial Special
hi def link sicadIdentifier Type
"  hi def link sicadIdentifier Identifier
hi def link sicadError Error
hi def link sicadParenError sicadError
hi def link sicadApostropheError sicadError
hi def link sicadStringError sicadError
hi def link sicadCommentError sicadError
"  hi def link sqlStatement Special  " modified highlight group in sql.vim


let b:current_syntax = "sicad"

" vim: ts=8 sw=2
PK�j�Z�li�88vim80/syntax/icemenu.vimnu�[���" Vim syntax file
" Language:	Icewm Menu
" Maintainer:	James Mahler <James.Mahler@gmail.com>
" Last Change:	Fri Apr  1 15:13:48 EST 2005
" Extensions:	~/.icewm/menu
" Comment:	Icewm is a lightweight window manager.  This adds syntax
"		highlighting when editing your user's menu file (~/.icewm/menu).

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

" not case sensitive
syntax case ignore

" icons .xpm .png and .gif
syntax match _icon /"\=\/.*\.xpm"\=/
syntax match _icon /"\=\/.*\.png"\=/
syntax match _icon /"\=\/.*\.gif"\=/
syntax match _icon /"\-"/

" separator
syntax keyword _rules separator

" prog and menu
syntax keyword _ids menu prog

" highlights
highlight link _rules Underlined
highlight link _ids Type
highlight link _icon Special

let b:current_syntax = "IceMenu"
PK�j�Z�/�((vim80/syntax/tasm.vimnu�[���" Vim syntax file
" Language: TASM: turbo assembler by Borland
" Maintaner: FooLman of United Force <foolman@bigfoot.com>
" Last Change: 2012 Feb 03 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore
syn match tasmLabel "^[\ \t]*[@a-z_$][a-z0-9_$@]*\ *:"
syn keyword tasmDirective ALIAS ALIGN ARG ASSUME %BIN CATSRT CODESEG
syn match tasmDirective "\<\(byte\|word\|dword\|qword\)\ ptr\>"
" CALL extended syntax
syn keyword tasmDirective COMM %CONDS CONST %CREF %CREFALL %CREFREF
syn keyword tasmDirective %CREFUREF %CTLS DATASEG DB DD %DEPTH DF DISPLAY
syn keyword tasmDirective DOSSEG DP DQ DT DW ELSE EMUL END ENDIF
" IF XXXX
syn keyword tasmDirective ENDM ENDP ENDS ENUM EQU ERR EVEN EVENDATA EXITCODE
syn keyword tasmDirective EXITM EXTRN FARDATA FASTIMUL FLIPFLAG GETFIELD GLOBAL
syn keyword tasmDirective GOTO GROUP IDEAL %INCL INCLUDE INCLUDELIB INSTR IRP
"JMP
syn keyword tasmDirective IRPC JUMPS LABEL LARGESTACK %LINUM %LIST LOCAL
syn keyword tasmDirective LOCALS MACRO %MACS MASKFLAG MASM MASM51 MODEL
syn keyword tasmDirective MULTERRS NAME %NEWPAGE %NOCONDS %NOCREF %NOCTLS
syn keyword tasmDirective NOEMUL %NOINCL NOJUMPS %NOLIST NOLOCALS %NOMACS
syn keyword tasmDirective NOMASM51 NOMULTERRS NOSMART %NOSYMS %NOTRUNC NOWARN
syn keyword tasmDirective %PAGESIZE %PCNT PNO87 %POPLCTL POPSTATE PROC PROCDESC
syn keyword tasmDirective PROCTYPE PUBLIC PUBLICDLL PURGE %PUSHCTL PUSHSTATE
"rept, ret
syn keyword tasmDirective QUIRKS RADIX RECORD RETCODE SEGMENT SETFIELD
syn keyword tasmDirective SETFLAG SIZESTR SMALLSTACK SMART STACK STARTUPCODE
syn keyword tasmDirective STRUC SUBSTR %SUBTTL %SYMS TABLE %TABSIZE TBLINIT
syn keyword tasmDirective TBLINST TBLPTR TESTFLAG %TEXT %TITLE %TRUNC TYPEDEF
syn keyword tasmDirective UDATASEG UFARDATA UNION USES VERSION WAR WHILE ?DEBUG

syn keyword tasmInstruction AAA AAD AAM AAS ADC ADD AND ARPL BOUND BSF BSR
syn keyword tasmInstruction BSWAP BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS
syn keyword tasmInstruction CMC CMP CMPXCHG CMPXCHG8B CPUID CWD CDQ CWDE
syn keyword tasmInstruction DAA DAS DEC DIV ENTER RETN RETF F2XM1
syn keyword tasmCoprocInstr FABS FADD FADDP FBLD FBSTP FCHG FCOM FCOM2 FCOMI
syn keyword tasmCoprocInstr FCOMIP FCOMP FCOMP3 FCOMP5 FCOMPP FCOS FDECSTP
syn keyword tasmCoprocInstr FDISI FDIV FDIVP FDIVR FENI FFREE FFREEP FIADD
syn keyword tasmCoprocInstr FICOM FICOMP FIDIV FIDIVR FILD FIMUL FINIT FINCSTP
syn keyword tasmCoprocInstr FIST FISTP FISUB FISUBR FLD FLD1 FLDCW FLDENV
syn keyword tasmCoprocInstr FLDL2E FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP
syn keyword tasmCoprocInstr FNCLEX FNINIT FNOP FNSAVE FNSTCW FNSTENV FNSTSW
syn keyword tasmCoprocInstr FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FSCALE
syn keyword tasmCoprocInstr FSETPM FSIN FSINCOM FSQRT FST FSTP FSTP1 FSTP8
syn keyword tasmCoprocInstr FSTP9 FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMI
syn keyword tasmCoprocInstr FUCOMPP FWAIT FXAM FXCH FXCH4 FXCH7 FXTRACT FYL2X
syn keyword tasmCoprocInstr FYL2XP1 FSTCW FCHS FSINCOS
syn keyword tasmInstruction IDIV IMUL IN INC INT INTO INVD INVLPG IRET JMP
syn keyword tasmInstruction LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT
syn keyword tasmInstruction LMSW LOCK LODSB LSL LSS LTR MOV MOVSX MOVZX MUL
syn keyword tasmInstruction NEG NOP NOT OR OUT POP POPA POPAD POPF POPFD PUSH
syn keyword tasmInstruction PUSHA PUSHAD PUSHF PUSHFD RCL RCR RDMSR RDPMC RDTSC
syn keyword tasmInstruction REP RET ROL ROR RSM SAHF SAR SBB SGDT SHL SAL SHLD
syn keyword tasmInstruction SHR SHRD SIDT SMSW STC STD STI STR SUB TEST VERR
syn keyword tasmInstruction VERW WBINVD WRMSR XADD XCHG XLAT XOR
syn keyword tasmMMXinst     EMMS MOVD MOVQ PACKSSDW PACKSSWB PACKUSWB PADDB
syn keyword tasmMMXinst     PADDD PADDSB PADDSB PADDSW PADDUSB PADDUSW PADDW
syn keyword tasmMMXinst     PAND PANDN PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD
syn keyword tasmMMXinst     PCMPGTW PMADDWD PMULHW PMULLW POR PSLLD PSLLQ
syn keyword tasmMMXinst     PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW PSUBB PSUBD
syn keyword tasmMMXinst     PSUBSB PSUBSW PSUBUSB PSUBUSW PSUBW PUNPCKHBW
syn keyword tasmMMXinst     PUNPCKHBQ PUNPCKHWD PUNPCKLBW PUNPCKLDQ PUNPCKLWD
syn keyword tasmMMXinst     PXOR
"FCMOV
syn match tasmInstruction "\<\(CMPS\|MOVS\|OUTS\|SCAS\|STOS\|LODS\|INS\)[BWD]"
syn match tasmInstruction "\<\(CMOV\|SET\|J\)N\=[ABCGLESXZ]\>"
syn match tasmInstruction "\<\(CMOV\|SET\|J\)N\=[ABGL]E\>"
syn match tasmInstruction "\<\(LOOP\|REP\)N\=[EZ]\=\>"
syn match tasmRegister "\<[A-D][LH]\>"
syn match tasmRegister "\<E\=\([A-D]X\|[SD]I\|[BS]P\)\>"
syn match tasmRegister "\<[C-GS]S\>"
syn region tasmComment start=";" end="$"
"HACK! comment ? ... selection
syn region tasmComment start="comment \+\$" end="\$"
syn region tasmComment start="comment \+\~" end="\~"
syn region tasmComment start="comment \+#" end="#"
syn region tasmString start="'" end="'"
syn region tasmString start='"' end='"'

syn match tasmDec "\<-\=[0-9]\+\.\=[0-9]*\>"
syn match tasmHex "\<[0-9][0-9A-F]*H\>"
syn match tasmOct "\<[0-7]\+O\>"
syn match tasmBin "\<[01]\+B\>"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link tasmString String
hi def link tasmDec Number
hi def link tasmHex Number
hi def link tasmOct Number
hi def link tasmBin Number
hi def link tasmInstruction Keyword
hi def link tasmCoprocInstr Keyword
hi def link tasmMMXInst	Keyword
hi def link tasmDirective PreProc
hi def link tasmRegister Identifier
hi def link tasmProctype PreProc
hi def link tasmComment Comment
hi def link tasmLabel Label


let b:curret_syntax = "tasm"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZKA�'��vim80/syntax/fvwm2m4.vimnu�[���" Vim syntax file
" Language: FvwmM4 preprocessed Fvwm2 configuration files
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2002-06-02
" URI: http://physics.muni.cz/~yeti/download/syntax/fvwmm4.vim

" Setup
" quit when a syntax file was already loaded
if exists('b:current_syntax')
  finish
endif

" Let included files know they are included
if !exists('main_syntax')
  let main_syntax = 'fvwm2m4'
endif

" Include M4 syntax
runtime! syntax/m4.vim
unlet b:current_syntax

" Include Fvwm2 syntax (Fvwm1 doesn't have M4 preprocessor)
runtime! syntax/fvwm.vim
unlet b:current_syntax

" That's all!
let b:current_syntax = 'fvwm2m4'

if main_syntax == 'fvwm2m4'
  unlet main_syntax
endif

PK�j�ZDm�vim80/syntax/desc.vimnu�[���" Vim syntax file
" Language:	T2 / ROCK Linux .desc
" Maintainer:	René Rebe <rene@exactcode.de>, Piotr Esden-Tempski <esden@rocklinux.org>
" Last Change:	2006 Aug 14

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" syntax definitions

setl iskeyword+=-
syn keyword descFlag DIETLIBC KAFFE JAIL NOPARALLEL FPIC-QUIRK LIBTOOL-WUIRK NO-LIBTOOL-FIX AUTOMAKE-QUIRK NO-AS-NEEDED NO-SSP KERNEL INIT LIBC CC CXX F77 KCC contained
syn keyword descLicense Unknown GPL LGPL FDL MIT BSD OpenSource Free-to-use Commercial contained

" tags
syn match descTag /^\[\(COPY\)\]/
syn match descTag /^\[\(I\|TITLE\)\]/
syn match descTag /^\[\(T\|TEXT\)\]/ contained
syn match descTag /^\[\(U\|URL\)\]/
syn match descTag /^\[\(A\|AUTHOR\)\]/
syn match descTag /^\[\(M\|MAINTAINER\)\]/
syn match descTag /^\[\(C\|CATEGORY\)\]/ contained
syn match descTag /^\[\(F\|FLAG\)\]/ contained
syn match descTag /^\[\(E\|DEP\|DEPENDENCY\)\]/
syn match descTag /^\[\(R\|ARCH\|ARCHITECTURE\)\]/
syn match descTag /^\[\(L\|LICENSE\)\]/ contained
syn match descTag /^\[\(S\|STATUS\)\]/
syn match descTag /^\[\(O\|CONF\)\]/
syn match descTag /^\[\(V\|VER\|VERSION\)\]/
syn match descTag /^\[\(P\|PRI\|PRIORITY\)\]/ nextgroup=descInstall skipwhite
syn match descTag /^\[\(D\|DOWN\|DOWNLOAD\)\]/ nextgroup=descSum skipwhite

" misc
syn match descUrl /\w\+:\/\/\S\+/
syn match descCategory /\w\+\/\w\+/ contained
syn match descEmail /<[\.A-Za-z0-9]\+@[\.A-Za-z0-9]\+>/

" priority tag
syn match descInstallX /X/ contained
syn match descInstallO /O/ contained
syn match descInstall /[OX]/ contained contains=descInstallX,descInstallO nextgroup=descStage skipwhite
syn match descDash /-/ contained
syn match descDigit /\d/ contained
syn match descStage /[\-0][\-1][\-2][\-3][\-4][\-5][\-6][\-7][\-8][\-9]/ contained contains=descDash,descDigit nextgroup=descCompilePriority skipwhite
syn match descCompilePriority /\d\{3}\.\d\{3}/ contained

" download tag
syn match descSum /\d\+/ contained nextgroup=descTarball skipwhite
syn match descTarball /\S\+/ contained nextgroup=descUrl skipwhite


" tag regions
syn region descText start=/^\[\(T\|TEXT\)\]/ end=/$/ contains=descTag,descUrl,descEmail

syn region descTagRegion start=/^\[\(C\|CATEGORY\)\]/ end=/$/ contains=descTag,descCategory

syn region descTagRegion start=/^\[\(F\|FLAG\)\]/ end=/$/ contains=descTag,descFlag

syn region descTagRegion start=/^\[\(L\|LICENSE\)\]/ end=/$/ contains=descTag,descLicense

" Only when an item doesn't have highlighting yet

hi def link descFlag		Identifier
hi def link descLicense		Identifier
hi def link descCategory		Identifier

hi def link descTag		Type
hi def link descUrl		Underlined
hi def link descEmail		Underlined

" priority tag colors
hi def link descInstallX		Boolean
hi def link descInstallO		Type
hi def link descDash		Operator
hi def link descDigit		Number
hi def link descCompilePriority	Number

" download tag colors
hi def link descSum		Number
hi def link descTarball		Underlined

" tag region colors
hi def link descText		Comment


let b:current_syntax = "desc"
PK�j�Z��� ��vim80/syntax/eviews.vimnu�[���" Vim syntax file
" Language:	Eviews (http://www.eviews.com)
" Maintainer:	Vaidotas Zemlys <zemlys@gmail.com>
" Last Change:  2006 Apr 30
" Filenames:	*.prg
" URL:	http://uosis.mif.vu.lt/~zemlys/vim-syntax/eviews.vim
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=@,48-57,_,.

syn case match

" Comment
syn match eComment /\'.*/

" Constant
" string enclosed in double quotes
syn region eString start=/"/ skip=/\\\\\|\\"/ end=/"/
" number with no fractional part or exponent
syn match eNumber /\d\+/
" floating point number with integer and fractional parts and optional exponent
syn match eFloat /\d\+\.\d*\([Ee][-+]\=\d\+\)\=/
" floating point number with no integer part and optional exponent
syn match eFloat /\.\d\+\([Ee][-+]\=\d\+\)\=/
" floating point number with no fractional part and optional exponent
syn match eFloat /\d\+[Ee][-+]\=\d\+/

" Identifier
" identifier with leading letter and optional following keyword characters
syn match eIdentifier /\a\k*/

" Eviews Programing Language
syn keyword eProgLang  @date else endif @errorcount @evpath exitloop for if @isobject next poff pon return statusline step stop  @temppath then @time to @toc wend while  include call subroutine endsub and or

" Eviews Objects, Views and Procedures
syn keyword eOVP alpha coef equation graph group link logl matrix model pool rowvector sample scalar series sspace sym system table text valmap var vector


" Standard Eviews Commands
syn keyword eStdCmd 3sls add addassign addinit addtext align alpha append arch archtest area arlm arma arroots auto axis bar bdstest binary block boxplot boxplotby bplabel cause ccopy cd cdfplot cellipse censored cfetch checkderivs chow clabel cleartext close coef coefcov coint comment control copy cor correl correlsq count cov create cross data datelabel dates db dbcopy dbcreate dbdelete dbopen dbpack dbrebuild dbrename dbrepair decomp define delete derivs describe displayname do draw driconvert drop dtable ec edftest endog eqs equation errbar exclude exit expand fetch fill fiml fit forecast freeze freq frml garch genr gmm grads graph group hconvert hfetch hilo hist hlabel hpf impulse jbera kdensity kerfit label laglen legend line linefit link linkto load logit logl ls makecoint makederivs makeendog makefilter makegarch makegrads makegraph makegroup makelimits makemodel makeregs makeresids makesignals makestates makestats makesystem map matrix means merge metafile ml model msg name nnfit open options ordered output override pageappend pagecontract pagecopy pagecreate pagedelete pageload pagerename pagesave pageselect pagestack pagestruct pageunstack param pcomp pie pool predict print probit program qqplot qstats range read rename representations resample reset residcor residcov resids results rls rndint rndseed rowvector run sample save scalar scale scat scatmat scenario seas seasplot series set setbpelem setcell setcolwidth setconvert setelem setfillcolor setfont setformat setheight setindent setjust setline setlines setmerge settextcolor setwidth sheet show signalgraphs smooth smpl solve solveopt sort spec spike sspace statby statefinal stategraphs stateinit stats statusline stomna store structure sur svar sym system table template testadd testbtw testby testdrop testexog testfit testlags teststat text tic toc trace tramoseats tsls unlink update updatecoefs uroot usage valmap var vars vector wald wfcreate wfopen wfsave wfselect white wls workfile write wtsls x11 x12 xy xyline xypair 

" Constant Identifier
syn match eConstant /\!\k*/
" String Identifier
syn match eStringId /%\k*/
" Command Identifier
syn match eCommand /@\k*/

" Special
syn match eDelimiter /[,;:]/

" Error
syn region eRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError
syn region eRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
syn region eRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
syn match eError      /[)\]}]/
syn match eBraceError /[)}]/ contained
syn match eCurlyError /[)\]]/ contained
syn match eParenError /[\]}]/ contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link eComment     Comment
hi def link eConstant    Identifier
hi def link eStringId    Identifier
hi def link eCommand     Type
hi def link eString      String
hi def link eNumber      Number
hi def link eBoolean     Boolean
hi def link eFloat       Float
hi def link eConditional Conditional
hi def link eProgLang    Statement
hi def link eOVP	      Statement
hi def link eStdCmd      Statement
hi def link eIdentifier  Normal
hi def link eDelimiter   Delimiter
hi def link eError       Error
hi def link eBraceError  Error
hi def link eCurlyError  Error
hi def link eParenError  Error

let b:current_syntax="eviews"

" vim: ts=8 sw=2
PK�j�Z���llvim80/syntax/ave.vimnu�[���" Vim syntax file
" Copyright by Jan-Oliver Wagner
" Language:	avenue
" Maintainer:	Jan-Oliver Wagner <Jan-Oliver.Wagner@intevation.de>
" Last change:	2001 May 10

" Avenue is the ArcView built-in language. ArcView is
" a desktop GIS by ESRI. Though it is a built-in language
" and a built-in editor is provided, the use of VIM increases
" development speed.
" I use some technologies to automatically load avenue scripts
" into ArcView.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Avenue is entirely case-insensitive.
syn case ignore

" The keywords

syn keyword aveStatement	if then elseif else end break exit return
syn keyword aveStatement	for each in continue while

" String

syn region aveString		start=+"+ end=+"+

" Integer number
syn match  aveNumber		"[+-]\=\<[0-9]\+\>"

" Operator

syn keyword aveOperator		or and max min xor mod by
" 'not' is a kind of a problem: It's an Operator as well as a method
" 'not' is only marked as an Operator if not applied as method
syn match aveOperator		"[^\.]not[^a-zA-Z]"

" Variables

syn keyword aveFixVariables	av nil self false true nl tab cr tab
syn match globalVariables	"_[a-zA-Z][a-zA-Z0-9]*"
syn match aveVariables		"[a-zA-Z][a-zA-Z0-9_]*"
syn match aveConst		"#[A-Z][A-Z_]+"

" Comments

syn match aveComment	"'.*"

" Typical Typos

" for C programmers:
syn match aveTypos	"=="
syn match aveTypos	"!="

" Define the default highlighting.
" Only when an item doesn't have highlighting+yet

hi def link aveStatement		Statement

hi def link aveString		String
hi def link aveNumber		Number

hi def link aveFixVariables	Special
hi def link aveVariables		Identifier
hi def link globalVariables	Special
hi def link aveConst		Special

hi def link aveClassMethods	Function

hi def link aveOperator		Operator
hi def link aveComment		Comment

hi def link aveTypos		Error


let b:current_syntax = "ave"
PK�j�Z"��r;;vim80/syntax/sgmllnx.vimnu�[���" Vim syntax file
" Language:	SGML-linuxdoc (supported by old sgmltools-1.x)
" Maintainer:	SungHyun Nam <goweol@gmail.com>
" Last Change:	2013 May 13

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" tags
syn region sgmllnxEndTag	start=+</+    end=+>+	contains=sgmllnxTagN,sgmllnxTagError
syn region sgmllnxTag	start=+<[^/]+ end=+>+	contains=sgmllnxTagN,sgmllnxTagError
syn match  sgmllnxTagN	contained +<\s*[-a-zA-Z0-9]\++ms=s+1	contains=sgmllnxTagName
syn match  sgmllnxTagN	contained +</\s*[-a-zA-Z0-9]\++ms=s+2	contains=sgmllnxTagName

syn region sgmllnxTag2	start=+<\s*[a-zA-Z]\+/+ keepend end=+/+	contains=sgmllnxTagN2
syn match  sgmllnxTagN2	contained +/.*/+ms=s+1,me=e-1

syn region sgmllnxSpecial	oneline start="&" end=";"

" tag names
syn keyword sgmllnxTagName contained article author date toc title sect verb
syn keyword sgmllnxTagName contained abstract tscreen p itemize item enum
syn keyword sgmllnxTagName contained descrip quote htmlurl code ref
syn keyword sgmllnxTagName contained tt tag bf it url
syn match   sgmllnxTagName contained "sect\d\+"

" Comments
syn region sgmllnxComment start=+<!--+ end=+-->+
syn region sgmllnxDocType start=+<!doctype+ end=+>+

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link sgmllnxTag2	    Function
hi def link sgmllnxTagN2	    Function
hi def link sgmllnxTag	    Special
hi def link sgmllnxEndTag	    Special
hi def link sgmllnxParen	    Special
hi def link sgmllnxEntity	    Type
hi def link sgmllnxDocEnt	    Type
hi def link sgmllnxTagName	    Statement
hi def link sgmllnxComment	    Comment
hi def link sgmllnxSpecial	    Special
hi def link sgmllnxDocType	    PreProc
hi def link sgmllnxTagError    Error


let b:current_syntax = "sgmllnx"

" vim:set tw=78 ts=8 sts=2 sw=2 noet:
PK�j�Z!��l��vim80/syntax/gsp.vimnu�[���" Vim syntax file
" Language:	GSP - GNU Server Pages (v. 0.86)
" Created By:	Nathaniel Harward nharward@yahoo.com
" Last Changed: 2012 Jan 08 by Thilo Six
" Filenames:    *.gsp
" URL:		http://www.constructicon.com/~nharward/vim/syntax/gsp.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'gsp'
endif

" Source HTML syntax
runtime! syntax/html.vim
unlet b:current_syntax

syn case match

" Include Java syntax
syn include @gspJava syntax/java.vim

let s:cpo_save = &cpo
set cpo&vim

" Add <java> as an HTML tag name along with its args
syn keyword htmlTagName contained java
syn keyword htmlArg     contained type file page

" Redefine some HTML things to include (and highlight) gspInLine code in
" places where it's likely to be found
syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine
syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine
syn match  htmlValue  contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc,gspInLine
syn region htmlEndTag		start=+</+    end=+>+ contains=htmlTagN,htmlTagError,gspInLine
syn region htmlTag		start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster,gspInLine
syn match  htmlTagN   contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster,gspInLine
syn match  htmlTagN   contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster,gspInLine

" Define the GSP java code blocks
syn region  gspJavaBlock start="<java\>[^>]*\>" end="</java>"me=e-7 contains=@gspJava,htmlTag
syn region  gspInLine    matchgroup=htmlError start="`" end="`" contains=@gspJava

let b:current_syntax = "gsp"

if main_syntax == 'gsp'
  unlet main_syntax
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZI-�I 
 
vim80/syntax/debchangelog.vimnu�[���" Vim syntax file
" Language:    Debian changelog files
" Maintainer:  Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
"                     Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2018 Jan 06
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim

" Standard syntax initialization
if exists("b:current_syntax")
  finish
endif

" Case doesn't matter for us
syn case ignore

let s:urgency='urgency=\(low\|medium\|high\|critical\)\( [^[:space:],][^,]*\)\='
let s:binNMU='binary-only=yes'

" Define some common expressions we can use later on
syn match debchangelogName	contained "^[[:alnum:]][[:alnum:].+-]\+ "
exe 'syn match debchangelogFirstKV	contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
exe 'syn match debchangelogOtherKV	contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
syn match debchangelogTarget	contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion	contained "(.\{-})"
syn match debchangelogCloses	contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP	contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
syn match debchangelogEmail	contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+"
syn match debchangelogEmail	contained "<.\{-}>"

" Define the entries that make up the changelog
syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogFirstKV,debchangelogOtherKV,debchangelogTarget,debchangelogVersion,debchangelogBinNMU oneline
syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail oneline
syn region debchangelogEntry start="^  " end="$" contains=debchangelogCloses,debchangelogLP oneline

" Associate our matches and regions with pretty colours
hi def link debchangelogHeader  Error
hi def link debchangelogFooter  Identifier
hi def link debchangelogEntry   Normal
hi def link debchangelogCloses  Statement
hi def link debchangelogLP      Statement
hi def link debchangelogFirstKV Identifier
hi def link debchangelogOtherKV Identifier
hi def link debchangelogName    Comment
hi def link debchangelogVersion Identifier
hi def link debchangelogTarget  Identifier
hi def link debchangelogEmail   Special

let b:current_syntax = "debchangelog"

" vim: ts=8 sw=2
PK�j�Z�R\���vim80/syntax/plp.vimnu�[���" Vim syntax file
" Language:	PLP (Perl in HTML)
" Maintainer:	Juerd <juerd@juerd.nl>
" Last Change:	2003 Apr 25
" Cloned From:	aspperl.vim

" Add to filetype.vim the following line (without quote sign):
" au BufNewFile,BufRead *.plp setf plp

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'perlscript'
endif

runtime! syntax/html.vim
unlet b:current_syntax
syn include @PLPperl syntax/perl.vim

syn cluster htmlPreproc add=PLPperlblock

syn keyword perlControl PLP_END
syn keyword perlStatementInclude include Include
syn keyword perlStatementFiles ReadFile WriteFile Counter
syn keyword perlStatementScalar Entity AutoURL DecodeURI EncodeURI

syn cluster PLPperlcode contains=perlStatement.*,perlFunction,perlOperator,perlVarPlain,perlVarNotInMatches,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlControl,perlConditional,perlRepeat,perlComment,perlPOD,perlHereDoc,perlPackageDecl,perlElseIfError,perlFiledescRead,perlMatch

syn region  PLPperlblock keepend matchgroup=Delimiter start=+<:=\=+ end=+:>+ transparent contains=@PLPperlcode

syn region  PLPinclude keepend matchgroup=Delimiter start=+<(+ end=+)>+

let b:current_syntax = "plp"

PK�j�Z �wd��vim80/syntax/snnspat.vimnu�[���" Vim syntax file
" Language:	SNNS pattern file
" Maintainer:	Davide Alberani <alberanid@bigfoot.com>
" Last Change:	2012 Feb 03 by Thilo Six
" Version:	0.2
" URL:		http://digilander.iol.it/alberanid/vim/syntax/snnspat.vim
"
" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/
" is a simulator for neural networks.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" anything that isn't part of the header, a comment or a number
" is wrong
syn match	snnspatError	".*"
" hoping that matches any kind of notation...
syn match	snnspatAccepted	"\([-+]\=\(\d\+\.\|\.\)\=\d\+\([Ee][-+]\=\d\+\)\=\)"
syn match	snnspatAccepted "\s"
syn match	snnspatBrac	"\[\s*\d\+\(\s\|\d\)*\]" contains=snnspatNumbers

" the accepted fields in the header
syn match	snnspatNoHeader	"No\. of patterns\s*:\s*" contained
syn match	snnspatNoHeader	"No\. of input units\s*:\s*" contained
syn match	snnspatNoHeader	"No\. of output units\s*:\s*" contained
syn match	snnspatNoHeader	"No\. of variable input dimensions\s*:\s*" contained
syn match	snnspatNoHeader	"No\. of variable output dimensions\s*:\s*" contained
syn match	snnspatNoHeader	"Maximum input dimensions\s*:\s*" contained
syn match	snnspatNoHeader	"Maximum output dimensions\s*:\s*" contained
syn match	snnspatGen	"generated at.*" contained contains=snnspatNumbers
syn match	snnspatGen	"SNNS pattern definition file [Vv]\d\.\d" contained contains=snnspatNumbers

" the header, what is not an accepted field, is an error
syn region	snnspatHeader	start="^SNNS" end="^\s*[-+\.]\=[0-9#]"me=e-2 contains=snnspatNoHeader,snnspatNumbers,snnspatGen,snnspatBrac

" numbers inside the header
syn match	snnspatNumbers	"\d" contained
syn match	snnspatComment	"#.*$" contains=snnspatTodo
syn keyword	snnspatTodo	TODO XXX FIXME contained


hi def link snnspatGen		Statement
hi def link snnspatHeader		Error
hi def link snnspatNoHeader	Define
hi def link snnspatNumbers		Number
hi def link snnspatComment		Comment
hi def link snnspatError		Error
hi def link snnspatTodo		Todo
hi def link snnspatAccepted	NONE
hi def link snnspatBrac		NONE


let b:current_syntax = "snnspat"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 sw=2
PK�j�Z)M���$�$vim80/syntax/j.vimnu�[���" Vim syntax file
" Language:	J
" Maintainer:	David Bürgin <676c7473@gmail.com>
" URL:		https://github.com/glts/vim-j
" Last Change:	2015-01-11

if exists('b:current_syntax')
  finish
endif

let s:save_cpo = &cpo
set cpo&vim

syntax case match
syntax sync minlines=100

syntax cluster jStdlibItems contains=jStdlibNoun,jStdlibAdverb,jStdlibConjunction,jStdlibVerb
syntax cluster jPrimitiveItems contains=jNoun,jAdverb,jConjunction,jVerb,jCopula

syntax match jControl /\<\%(assert\|break\|case\|catch[dt]\=\|continue\|do\|else\%(if\)\=\|end\|fcase\|for\|if\|return\|select\|throw\|try\|whil\%(e\|st\)\)\./
syntax match jControl /\<\%(for\|goto\|label\)_\a\k*\./

" Standard library names. A few names need to be defined with ":syntax match"
" because they would otherwise take precedence over the corresponding jControl
" and jDefineExpression items.
syntax keyword jStdlibNoun ARGV BINPATH CR CRLF DEL Debug EAV EMPTY FF FHS IF64 IFIOS IFJCDROID IFJHS IFQT IFRASPI IFUNIX IFWIN IFWINCE IFWINE IFWOW64 JB01 JBOXED JCHAR JCMPX JFL JINT JPTR JSIZES JSTR JTYPES JVERSION LF LF2 TAB UNAME UNXLIB dbhelp libjqt
syntax keyword jStdlibAdverb define each every fapplylines inv inverse items leaf rows rxapply rxmerge table
syntax keyword jStdlibConjunction bind cuts def on
syntax keyword jStdlibVerb AND Endian IFDEF OR XOR anddf android_exec_am android_exec_host andunzip apply boxopen boxxopen bx calendar cd cdcb cder cderx cdf charsub chopstring cleartags clear coclass cocreate cocurrent codestroy coerase cofind cofindv cofullname coinfo coinsert compare coname conames conew conl conouns conounsx copath copathnl copathnlx coreset costate cut cutLF cutopen cutpara datatype dbctx dberm dberr dbg dbjmp dblocals dblxq dblxs dbnxt dbq dbr dbret dbrr dbrrx dbrun dbs dbsig dbsq dbss dbst dbstack dbstk dbstop dbstopme dbstopnext dbstops dbtrace dbview deb debc delstring detab dfh dir dircompare dircompares dirfind dirpath dirss dirssrplc dirtree dirused dlb dltb dltbs dquote drop dropafter dropto dtb dtbs echo empty endian erase evtloop exit expand f2utf8 fappend fappends fboxname fc fcompare fcompares fcopynew fdir ferase fetch fexist fexists fgets file2url fixdotdot fliprgb fmakex foldpara foldtext fpathcreate fpathname fputs fread freadblock freadr freads frename freplace fsize fss fssrplc fstamp fstringreplace ftype fview fwrite fwritenew fwrites getalpha getargs getdate getenv getqtbin hfd hostpathsep ic install iospath isatty isotimestamp isutf8 jcwdpath joinstring jpath jpathsep jsystemdefs launch list ljust load loadd loadtags mema memf memr memw nameclass namelist names nc nl pick quote require rjust rplc rxE rxall rxcomp rxcut rxeq rxerror rxfirst rxfree rxfrom rxhandles rxin rxindex rxinfo rxmatch rxmatches rxrplc rxutf8 script scriptd scripts setalpha setbreak shell show sign sminfo smoutput sort split splitnostring splitstring ss startupandroid startupconsole startupide stderr stdin stdout stringreplace symdat symget symset ta tagcp tagopen tagselect take takeafter taketo timespacex timestamp timex tmoutput toCRLF toHOST toJ todate todayno tolower topara toupper tsdiff tsrep tstamp type ucp ucpcount unxlib usleep utf8 uucp valdate wcsize weekday weeknumber weeksinyear winpathsep xedit
syntax match jStdlibNoun /\<\%(adverb\|conjunction\|dyad\|monad\|noun\|verb\)\>/
syntax match jStdlibVerb /\<\%(Note\|\%(assert\|break\|do\)\.\@!\)\>/

" Numbers. Matching J numbers is difficult. In fact, the job cannot be done
" with regular expressions alone. Below is a sketch of the pattern used. It
" accepts most well-formed numbers and rejects most of the ill-formed ones.
" See http://www.jsoftware.com/help/dictionary/dcons.htm for reference.
"
" "double1" and "double2" patterns:
"     (_?\d+(\.\d*)?|_\.\d+)([eE]_?\d+)?
"     (_?\d+(\.\d*)?|_\.\d+|\.\d+)([eE]_?\d+)?
"
" "rational1" and "rational2" patterns:
"     \k<double1>(r\k<double2>)?|__?
"     \k<double2>(r\k<double2>)?|__?
"
" "complex1" and "complex2" patterns:
"     \k<rational1>((j|a[dr])\k<rational2>)?
"     \k<rational2>((j|a[dr])\k<rational2>)?
"
" "basevalue" pattern:
"     _?[0-9a-z]+(\.[0-9a-z]*)?|_?\.[0-9a-z]+
"
" all numbers:
"     \b\k<complex1>([px]\k<complex2>)?(b\k<basevalue>)?(?![0-9A-Za-z_.])
syntax match jNumber /\<_\.[0-9A-Za-z_.]\@!/
syntax match jNumber /\<_\=\d\+x[0-9A-Za-z_.]\@!/
syntax match jNumber /\<\%(__\=r_\=\d\+\|_\=\d\+r__\=\)[0-9A-Za-z_.]\@!/
syntax match jNumber /\<\%(\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\)\%([eE]_\=\d\+\)\=\%(r\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\|\.\d\+\)\%([eE]_\=\d\+\)\=\)\=\|__\=\)\%(\%(j\|a[dr]\)\%(\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\|\.\d\+\)\%([eE]_\=\d\+\)\=\%(r\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\|\.\d\+\)\%([eE]_\=\d\+\)\=\)\=\|__\=\)\)\=\%([px]\%(\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\|\.\d\+\)\%([eE]_\=\d\+\)\=\%(r\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\|\.\d\+\)\%([eE]_\=\d\+\)\=\)\=\|__\=\)\%(\%(j\|a[dr]\)\%(\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\|\.\d\+\)\%([eE]_\=\d\+\)\=\%(r\%(_\=\d\+\%(\.\d*\)\=\|_\.\d\+\|\.\d\+\)\%([eE]_\=\d\+\)\=\)\=\|__\=\)\)\=\)\=\%(b\%(_\=[0-9a-z]\+\%(\.[0-9a-z]*\)\=\|_\=\.[0-9a-z]\+\)\)\=[0-9A-Za-z_.]\@!/

syntax region jString oneline start=/'/ skip=/''/ end=/'/

syntax keyword jArgument contained x y u v m n

" Primitives. Order is significant both within the patterns and among
" ":syntax match" statements. Refer to "Parts of speech" in the J dictionary.
syntax match jNoun /\<a[.:]/
syntax match jAdverb /[}~]\|[/\\]\.\=\|\<\%([Mbft]\.\|t:\)/
syntax match jConjunction /"\|`:\=\|[.:@&][.:]\=\|&\.:\|\<\%([dDHT]\.\|[DLS]:\)/
syntax match jVerb /[=!\]]\|[\^?]\.\=\|[;[]:\=\|{\.\|[_/\\]:\|[<>+*\-%$|,#][.:]\=\|[~}"][.:]\|{\%[::]\|\<\%([ACeEiIjLor]\.\|p\.\.\=\|[ipqsux]:\|0:\|_\=[1-9]:\)/
syntax match jCopula /=[.:]/
syntax match jConjunction /;\.\|\^:\|![.:]/

" Explicit noun definition. The difficulty is that the define expression can
" occur in the middle of a line but the jNounDefine region must only start on
" the next line. The trick is to split the problem into two regions and link
" them with "nextgroup=". The fold wrapper provides syntax folding.
syntax region jNounDefineFold
    \ matchgroup=NONE start=/\%(\%(\%(^\s*Note\)\|\<\%(0\|noun\)\s\+\%(\:\s*0\|def\s\+0\|define\)\)\>\)\@=/
    \ keepend matchgroup=NONE end=/^\s*)\s*$/
    \ contains=jNounDefineStart
    \ fold
syntax region jNounDefineStart
    \ matchgroup=jDefineExpression start=/\%(\%(^\s*Note\)\|\<\%(0\|noun\)\s\+\%(\:\s*0\|def\s\+0\|define\)\)\>/
    \ keepend matchgroup=NONE end=/$/
    \ contains=@jStdlibItems,@jPrimitiveItems,jNumber,jString,jParenGroup,jParen,jComment
    \ contained oneline skipempty nextgroup=jDefineEnd,jNounDefine
" These two items must have "contained", which allows them to match only after
" jNounDefineStart thanks to the "nextgroup=" above.
syntax region jNounDefine
    \ matchgroup=NONE start=/^/
    \ matchgroup=jDefineEnd end=/^\s*)\s*$/
    \ contained
" This match is necessary in case of an empty noun definition
syntax match jDefineEnd contained /^\s*)\s*$/

" Explicit verb, adverb, and conjunction definition
syntax region jDefine
    \ matchgroup=jDefineExpression start=/\<\%([1-4]\|13\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\>/
    \ matchgroup=jDefineEnd end=/^\s*)\s*$/
    \ contains=jControl,@jStdlibItems,@jPrimitiveItems,jNumber,jString,jArgument,jParenGroup,jParen,jComment,jDefineMonadDyad
    \ fold
syntax match jDefineMonadDyad contained /^\s*:\s*$/

" Paired parentheses. When a jDefineExpression such as "3 : 0" is
" parenthesised it will erroneously extend jParenGroup to span over the whole
" definition body. This situation receives a special treatment here.
syntax match jParen /(\%(\s*\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\s*)\)\@=/
syntax match jParen contained /\%((\s*\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\s*\)\@<=)/
syntax region jParenGroup
    \ matchgroup=jParen start=/(\%(\s*\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\>\)\@!/
    \ matchgroup=jParen end=/)/
    \ oneline transparent

syntax keyword jTodo contained TODO FIXME XXX
syntax match jComment /\<NB\..*$/ contains=jTodo,@Spell

syntax match jSharpBang /\%^#!.*$/

highlight default link jControl           Statement
highlight default link jStdlibNoun        Identifier
highlight default link jStdlibAdverb      Function
highlight default link jStdlibConjunction Function
highlight default link jStdlibVerb        Function
highlight default link jString            String
highlight default link jNumber            Number
highlight default link jNoun              Constant
highlight default link jAdverb            Normal
highlight default link jConjunction       Normal
highlight default link jVerb              Normal
highlight default link jCopula            Normal
highlight default link jArgument          Identifier
highlight default link jParen             Delimiter

highlight default link jDefineExpression  Define
highlight default link jDefineMonadDyad   Delimiter
highlight default link jDefineEnd         Delimiter
highlight default link jNounDefine        Normal

highlight default link jTodo              Todo
highlight default link jComment           Comment
highlight default link jSharpBang         PreProc

let b:current_syntax = 'j'

let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�ZĜ�vim80/syntax/cmod.vimnu�[���" Vim syntax file
" Language:		Cmod
" Current Maintainer:	Stephen R. van den Berg <srb@cuci.nl>
" Last Change:		2018 Jan 23
" Version:      	2.9
" Remark: Is used to edit Cmod files for Pike development.
" Remark: Includes a highlighter for any embedded Autodoc format.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Read the C syntax to start with
runtime! syntax/c.vim
unlet b:current_syntax

if !exists("c_autodoc")
  " For embedded Autodoc documentation
  syn include @cmodAutodoc <sfile>:p:h/autodoc.vim
  unlet b:current_syntax
endif

" Supports rotating amongst several same-level preprocessor conditionals
packadd! matchit
let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"

" Cmod extensions
syn keyword cmodStatement	__INIT INIT EXIT GC_RECURSE GC_CHECK
syn keyword cmodStatement	EXTRA OPTIMIZE RETURN
syn keyword cmodStatement	ADD_EFUN ADD_EFUN2 ADD_FUNCTION
syn keyword cmodStatement	MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN

syn keyword cmodStatement	SET_SVAL pop_n_elems pop_stack
syn keyword cmodStatement	SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP
syn keyword cmodStatement	SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP
syn keyword cmodStatement	PTR_FROM_INT INHERIT_FROM_PTR
syn keyword cmodStatement	DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC
syn keyword cmodStatement	UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO
syn keyword cmodStatement	MKPCHARP_STR APPLY_MASTER current_storage
syn keyword cmodStatement	PIKE_MAP_VARIABLE size_shift
syn keyword cmodStatement	THREADS_ALLOW THREADS_DISALLOW

syn keyword cmodStatement	add_integer_constant ref_push_object
syn keyword cmodStatement	push_string apply_svalue free_svalue
syn keyword cmodStatement	get_inherit_storage get_storage
syn keyword cmodStatement	make_shared_binary_string push_int64
syn keyword cmodStatement	begin_shared_string end_shared_string
syn keyword cmodStatement	add_ref fast_clone_object clone_object
syn keyword cmodStatement	push_undefined push_int ref_push_string
syn keyword cmodStatement	free_string push_ulongest free_object
syn keyword cmodStatement	convert_stack_top_to_bignum push_array
syn keyword cmodStatement	push_object reduce_stack_top_bignum
syn keyword cmodStatement	push_static_text apply_current
syn keyword cmodStatement	assign_svalue free_program destruct_object
syn keyword cmodStatement	start_new_program low_inherit stack_swap
syn keyword cmodStatement	generic_error_program end_program
syn keyword cmodStatement	free_array apply_external copy_mapping
syn keyword cmodStatement	push_constant_text ref_push_mapping
syn keyword cmodStatement	mapping_insert mapping_string_insert_string
syn keyword cmodStatement	f_aggregate_mapping f_aggregate apply
syn keyword cmodStatement	push_mapping push_svalue low_mapping_lookup
syn keyword cmodStatement	assign_svalues_no_free f_add
syn keyword cmodStatement	push_empty_string stack_dup assign_lvalue
syn keyword cmodStatement	low_mapping_string_lookup allocate_mapping
syn keyword cmodStatement	copy_shared_string make_shared_binary_string0
syn keyword cmodStatement	f_call_function f_index f_utf8_to_string
syn keyword cmodStatement	finish_string_builder init_string_builder
syn keyword cmodStatement	reset_string_builder free_string_builder
syn keyword cmodStatement	string_builder_putchar get_all_args
syn keyword cmodStatement	add_shared_strings check_all_args
syn keyword cmodStatement	do_inherit add_string_constant
syn keyword cmodStatement	add_program_constant set_init_callback
syn keyword cmodStatement	simple_mapping_string_lookup
syn keyword cmodStatement	f_sprintf push_text string_has_null
syn keyword cmodStatement	end_and_resize_shared_string

syn keyword cmodStatement	args sp

syn keyword cmodStatement	free

syn keyword cmodConstant	ID_PROTECTED ID_FINAL PIKE_DEBUG
syn keyword cmodConstant	NUMBER_NUMBER
syn keyword cmodConstant	PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY
syn keyword cmodConstant	PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING
syn keyword cmodConstant	NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION
syn keyword cmodConstant	T_OBJECT T_STRING T_ARRAY T_MAPPING

syn keyword cmodException	SET_ONERROR UNSET_ONERROR ONERROR
syn keyword cmodException	CALL_AND_UNSET_ONERROR

syn keyword cmodDebug		Pike_fatal Pike_error check_stack

syn keyword cmodAccess		public protected private INHERIT
syn keyword cmodAccess		CTYPE CVAR PIKEVAR PIKEFUN

syn keyword cmodModifier	efun export flags optflags optfunc
syn keyword cmodModifier	type rawtype errname name c_name prototype
syn keyword cmodModifier	program_flags gc_trivial PMOD_EXPORT
syn keyword cmodModifier	ATTRIBUTE noclone noinline
syn keyword cmodModifier	tOr tFuncV tInt tMix tVoid tStr tMap tPrg
syn keyword cmodModifier	tSetvar tArr tMult tMultiset
syn keyword cmodModifier	tArray tMapping tString tSetvar tVar

syn keyword cmodType		bool mapping string multiset array mixed
syn keyword cmodType		object function program auto svalue
syn keyword cmodType		bignum longest zero pike_string
syn keyword cmodType		this this_program THIS INT_TYPE INT64 INT32
syn keyword cmodType		p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT

syn keyword cmodOperator	_destruct create __hash _sizeof _indices _values
syn keyword cmodOperator	_is_type _sprintf _equal _m_delete _get_iterator
syn keyword cmodOperator	_search _types _serialize _deserialize
syn keyword cmodOperator	_size_object _random _sqrt TYPEOF SUBTYPEOF
syn keyword cmodOperator	LIKELY UNLIKELY

syn keyword cmodStructure	DECLARATIONS PIKECLASS DECLARE_STORAGE

if !exists("c_autodoc")
  syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL
  syn cluster cCommentGroup add=cmodAutodocReal
  syn cluster cPreProcGroup add=cmodAutodocReal
endif

" Default highlighting
hi def link cmodAccess		Statement
hi def link cmodOperator	Operator
hi def link cmodStatement	Statement
hi def link cmodConstant	Constant
hi def link cmodModifier	Type
hi def link cmodType		Type
hi def link cmodStorageClass	StorageClass
hi def link cmodStructure	Structure
hi def link cmodException	Exception
hi def link cmodDebug		Debug

let b:current_syntax = "cmod"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�{����vim80/syntax/automake.vimnu�[���" Vim syntax file
" Language:	automake Makefile.am
" Maintainer:   Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer:	John Williams <jrw@pobox.com>
" Last Change:	2011-06-13
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/automake.vim
"
" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
"     it only because patches have been submitted for it by Debian users and the
"     former maintainer was MIA (Missing In Action), taking over its
"     maintenance was thus the only way to include those patches.
"     If you care about this file, and have time to maintain it please do so!
"
" This script adds support for automake's Makefile.am format. It highlights
" Makefile variables significant to automake as well as highlighting
" autoconf-style @variable@ substitutions . Subsitutions are marked as errors
" when they are used in an inappropriate place, such as in defining
" EXTRA_SOURCES.

" Standard syntax initialization
if exists("b:current_syntax")
  finish
endif

" Read the Makefile syntax to start with
runtime! syntax/make.vim

syn match automakePrimary "^\w\+\(_PROGRAMS\|_LIBRARIES\|_LISP\|_PYTHON\|_JAVA\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_LTLIBRARIES\)\s*\ze+\=="
syn match automakePrimary "^TESTS\s*\ze+\=="me=e-1
syn match automakeSecondary "^\w\+\(_SOURCES\|_LIBADD\|_LDADD\|_LDFLAGS\|_DEPENDENCIES\|_AR\|_CCASFLAGS\|_CFLAGS\|_CPPFLAGS\|_CXXFLAGS\|_FCFLAGS\|_FFLAGS\|_GCJFLAGS\|_LFLAGS\|_LIBTOOLFLAGS\|OBJCFLAGS\|RFLAGS\|UPCFLAGS\|YFLAGS\)\s*\ze+\=="
syn match automakeSecondary "^\(LDADD\|ARFLAGS\|OMIT_DEPENDENCIES\|AM_MAKEFLAGS\|\(AM_\)\=\(MAKEINFOFLAGS\|RUNTESTDEFAULTFLAGS\|ETAGSFLAGS\|CTAGSFLAGS\|JAVACFLAGS\)\)\s*\ze+\=="
syn match automakeExtra "^EXTRA_\w\+\s*\ze+\=="
syn match automakeOptions "^\(ACLOCAL_AMFLAGS\|AUTOMAKE_OPTIONS\|DISTCHECK_CONFIGURE_FLAGS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*\ze+\=="
syn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*\ze+\=="
syn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*\ze+\=="
syn match automakeConditional "^\(if\s*!\=\w\+\|else\|endif\)\s*$"

syn match automakeSubst     "@\w\+@"
syn match automakeSubst     "^\s*@\w\+@"
syn match automakeComment1 "#.*$" contains=automakeSubst
syn match automakeComment2 "##.*$"

syn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call
syn match automakeMakeError "^AM_LDADD\s*\ze+\==" " Common mistake

syn region automakeNoSubst start="^EXTRA_\w*\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
syn region automakeNoSubst start="^DIST_SUBDIRS\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
syn region automakeNoSubst start="^\w*_SOURCES\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
syn match automakeBadSubst  "@\(\w*@\=\)\=" contained

syn region  automakeMakeDString start=+"+  skip=+\\"+  end=+"+  contains=makeIdent,automakeSubstitution
syn region  automakeMakeSString start=+'+  skip=+\\'+  end=+'+  contains=makeIdent,automakeSubstitution
syn region  automakeMakeBString start=+`+  skip=+\\`+  end=+`+  contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link automakePrimary     Statement
hi def link automakeSecondary   Type
hi def link automakeExtra       Special
hi def link automakeOptions     Special
hi def link automakeClean       Special
hi def link automakeSubdirs     Statement
hi def link automakeConditional PreProc
hi def link automakeSubst       PreProc
hi def link automakeComment1    makeComment
hi def link automakeComment2    makeComment
hi def link automakeMakeError   makeError
hi def link automakeBadSubst    makeError
hi def link automakeMakeDString makeDString
hi def link automakeMakeSString makeSString
hi def link automakeMakeBString makeBString


let b:current_syntax = "automake"

" vi: ts=8 sw=4 sts=4
PK�j�Z�գG��vim80/syntax/tf.vimnu�[���" Vim syntax file
" Language:	tf
" Maintainer:	Lutz Eymers <ixtab@polzin.com>
" URL:		http://www.isp.de/data/tf.vim
" Email:	send syntax_vim.tgz
" Last Change:	2001 May 10
"
" Options	lite_minlines = x     to sync at least x lines backwards

" Remove any old syntax stuff hanging around

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

if !exists("main_syntax")
  let main_syntax = 'tf'
endif

" Special global variables
syn keyword tfVar  HOME LANG MAIL SHELL TERM TFHELP TFLIBDIR TFLIBRARY TZ  contained
syn keyword tfVar  background backslash  contained
syn keyword tfVar  bamf bg_output borg clearfull cleardone clock connect  contained
syn keyword tfVar  emulation end_color gag gethostbyname gpri hook hilite  contained
syn keyword tfVar  hiliteattr histsize hpri insert isize istrip kecho  contained
syn keyword tfVar  kprefix login lp lpquote maildelay matching max_iter  contained
syn keyword tfVar  max_recur mecho more mprefix oldslash promt_sec  contained
syn keyword tfVar  prompt_usec proxy_host proxy_port ptime qecho qprefix  contained
syn keyword tfVar  quite quitdone redef refreshtime scroll shpause snarf sockmload  contained
syn keyword tfVar  start_color tabsize telopt sub time_format visual  contained
syn keyword tfVar  watch_dog watchname wordpunct wrap wraplog wrapsize  contained
syn keyword tfVar  wrapspace  contained

" Worldvar
syn keyword tfWorld  world_name world_character world_password world_host contained
syn keyword tfWorld  world_port world_mfile world_type contained

" Number
syn match tfNumber  "-\=\<\d\+\>"

" Float
syn match tfFloat  "\(-\=\<\d+\|-\=\)\.\d\+\>"

" Operator
syn match tfOperator  "[-+=?:&|!]"
syn match tfOperator  "/[^*~@]"he=e-1
syn match tfOperator  ":="
syn match tfOperator  "[^/%]\*"hs=s+1
syn match tfOperator  "$\+[([{]"he=e-1,me=e-1
syn match tfOperator  "\^\[\+"he=s+1 contains=tfSpecialCharEsc

" Relational
syn match tfRelation  "&&"
syn match tfRelation  "||"
syn match tfRelation  "[<>/!=]="
syn match tfRelation  "[<>]"
syn match tfRelation  "[!=]\~"
syn match tfRelation  "[=!]/"


" Readonly Var
syn match tfReadonly  "[#*]" contained
syn match tfReadonly  "\<-\=L\=\d\{-}\>" contained
syn match tfReadonly  "\<P\(\d\+\|R\|L\)\>" contained
syn match tfReadonly  "\<R\>" contained

" Identifier
syn match tfIdentifier "%\+[a-zA-Z_#*-0-9]\w*" contains=tfVar,tfReadonly
syn match tfIdentifier "%\+[{]"he=e-1,me=e-1
syn match tfIdentifier "\$\+{[a-zA-Z_#*-0-9]\w*}" contains=tfWorld

" Function names
syn keyword tfFunctions  ascii char columns echo filename ftime fwrite getopts
syn keyword tfFunctions  getpid idle kbdel kbgoto kbhead kblen kbmatch kbpoint
syn keyword tfFunctions  kbtail kbwordleft kbwordright keycode lines mod
syn keyword tfFunctions  moresize pad rand read regmatch send strcat strchr
syn keyword tfFunctions  strcmp strlen strncmp strrchr strrep strstr substr
syn keyword tfFunctions  systype time tolower toupper

syn keyword tfStatement  addworld bamf beep bind break cat changes connect  contained
syn keyword tfStatement  dc def dokey echo edit escape eval export expr fg for  contained
syn keyword tfStatement  gag getfile grab help hilite histsize hook if input  contained
syn keyword tfStatement  kill lcd let list listsockets listworlds load  contained
syn keyword tfStatement  localecho log nohilite not partial paste ps purge  contained
syn keyword tfStatement  purgeworld putfile quit quote recall recordline save  contained
syn keyword tfStatement  saveworld send sh shift sub substitute  contained
syn keyword tfStatement  suspend telnet test time toggle trig trigger unbind  contained
syn keyword tfStatement  undef undefn undeft unhook  untrig unworld  contained
syn keyword tfStatement  version watchdog watchname while world  contained

" Hooks
syn keyword tfHook  ACTIVITY BACKGROUND BAMF CONFAIL CONFLICT CONNECT DISCONNECT
syn keyword tfHook  KILL LOAD LOADFAIL LOG LOGIN MAIL MORE PENDING PENDING
syn keyword tfHook  PROCESS PROMPT PROXY REDEF RESIZE RESUME SEND SHADOW SHELL
syn keyword tfHook  SIGHUP SIGTERM SIGUSR1 SIGUSR2 WORLD

" Conditional
syn keyword tfConditional  if endif then else elseif  contained

" Repeat
syn keyword tfRepeat  while do done repeat for  contained

" Statement
syn keyword tfStatement  break quit contained

" Include
syn keyword  tfInclude require load save loaded contained

" Define
syn keyword  tfDefine bind unbind def undef undefn undefn purge hook unhook trig untrig  contained
syn keyword  tfDefine set unset setenv  contained

" Todo
syn keyword  tfTodo TODO Todo todo  contained

" SpecialChar
syn match tfSpecialChar "\\[abcfnrtyv\\]" contained
syn match tfSpecialChar "\\\d\{3}" contained contains=tfOctalError
syn match tfSpecialChar "\\x[0-9a-fA-F]\{2}" contained
syn match tfSpecialCharEsc "\[\+" contained

syn match tfOctalError "[89]" contained

" Comment
syn region tfComment		start="^;" end="$"  contains=tfTodo

" String
syn region tfString   oneline matchgroup=None start=+'+  skip=+\\\\\|\\'+  end=+'+ contains=tfIdentifier,tfSpecialChar,tfEscape
syn region tfString   matchgroup=None start=+"+  skip=+\\\\\|\\"+  end=+"+ contains=tfIdentifier,tfSpecialChar,tfEscape

syn match tfParentError "[)}\]]"

" Parents
syn region tfParent matchgroup=Delimiter start="(" end=")" contains=ALLBUT,tfReadonly
syn region tfParent matchgroup=Delimiter start="\[" end="\]" contains=ALL
syn region tfParent matchgroup=Delimiter start="{" end="}" contains=ALL

syn match tfEndCommand "%%\{-};"
syn match tfJoinLines "\\$"

" Types

syn match tfType "/[a-zA-Z_~@][a-zA-Z0-9_]*" contains=tfConditional,tfRepeat,tfStatement,tfInclude,tfDefine,tfStatement

" Catch /quote .. '
syn match tfQuotes "/quote .\{-}'" contains=ALLBUT,tfString
" Catch $(/escape   )
syn match tfEscape "(/escape .*)"

" sync
if exists("tf_minlines")
  exec "syn sync minlines=" . tf_minlines
else
  syn sync minlines=100
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link tfComment		Comment
hi def link tfString		String
hi def link tfNumber		Number
hi def link tfFloat		Float
hi def link tfIdentifier		Identifier
hi def link tfVar			Identifier
hi def link tfWorld		Identifier
hi def link tfReadonly		Identifier
hi def link tfHook		Identifier
hi def link tfFunctions		Function
hi def link tfRepeat		Repeat
hi def link tfConditional		Conditional
hi def link tfLabel		Label
hi def link tfStatement		Statement
hi def link tfType		Type
hi def link tfInclude		Include
hi def link tfDefine		Define
hi def link tfSpecialChar		SpecialChar
hi def link tfSpecialCharEsc	SpecialChar
hi def link tfParentError		Error
hi def link tfTodo		Todo
hi def link tfEndCommand		Delimiter
hi def link tfJoinLines		Delimiter
hi def link tfOperator		Operator
hi def link tfRelation		Operator


let b:current_syntax = "tf"

if main_syntax == 'tf'
  unlet main_syntax
endif

" vim: ts=8
PK�j�Z�y���vim80/syntax/slang.vimnu�[���" Vim syntax file
" Language:	S-Lang
" Maintainer:	Jan Hlavacek <lahvak@math.ohio-state.edu>
" Last Change:	980216

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword slangStatement	break return continue EXECUTE_ERROR_BLOCK
syn match slangStatement	"\<X_USER_BLOCK[0-4]\>"
syn keyword slangLabel		case
syn keyword slangConditional	!if if else switch
syn keyword slangRepeat		while for _for loop do forever
syn keyword slangDefinition	define typedef variable struct
syn keyword slangOperator	or and andelse orelse shr shl xor not
syn keyword slangBlock		EXIT_BLOCK ERROR_BLOCK
syn match slangBlock		"\<USER_BLOCK[0-4]\>"
syn keyword slangConstant	NULL
syn keyword slangType		Integer_Type Double_Type Complex_Type String_Type Struct_Type Ref_Type Null_Type Array_Type DataType_Type

syn match slangOctal		"\<0\d\+\>" contains=slangOctalError
syn match slangOctalError	"[89]\+" contained
syn match slangHex		"\<0[xX][0-9A-Fa-f]*\>"
syn match slangDecimal		"\<[1-9]\d*\>"
syn match slangFloat		"\<\d\+\."
syn match slangFloat		"\<\d\+\.\d\+\([Ee][-+]\=\d\+\)\=\>"
syn match slangFloat		"\<\d\+\.[Ee][-+]\=\d\+\>"
syn match slangFloat		"\<\d\+[Ee][-+]\=\d\+\>"
syn match slangFloat		"\.\d\+\([Ee][-+]\=\d\+\)\=\>"
syn match slangImaginary	"\.\d\+\([Ee][-+]\=\d*\)\=[ij]\>"
syn match slangImaginary	"\<\d\+\(\.\d*\)\=\([Ee][-+]\=\d\+\)\=[ij]\>"

syn region slangString oneline start='"' end='"' skip='\\"'
syn match slangCharacter	"'[^\\]'"
syn match slangCharacter	"'\\.'"
syn match slangCharacter	"'\\[0-7]\{1,3}'"
syn match slangCharacter	"'\\d\d\{1,3}'"
syn match slangCharacter	"'\\x[0-7a-fA-F]\{1,2}'"

syn match slangDelim		"[][{};:,]"
syn match slangOperator		"[-%+/&*=<>|!~^@]"

"catch errors caused by wrong parenthesis
syn region slangParen	matchgroup=slangDelim transparent start='(' end=')' contains=ALLBUT,slangParenError
syn match slangParenError	")"

syn match slangComment		"%.*$"
syn keyword slangOperator	sizeof

syn region slangPreCondit start="^\s*#\s*\(ifdef\>\|ifndef\>\|iftrue\>\|ifnfalse\>\|iffalse\>\|ifntrue\>\|if\$\|ifn\$\|\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=cComment,slangString,slangCharacter,slangNumber

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link slangDefinition	Type
hi def link slangBlock		slangDefinition
hi def link slangLabel		Label
hi def link slangConditional	Conditional
hi def link slangRepeat		Repeat
hi def link slangCharacter	Character
hi def link slangFloat		Float
hi def link slangImaginary	Float
hi def link slangDecimal		slangNumber
hi def link slangOctal		slangNumber
hi def link slangHex		slangNumber
hi def link slangNumber		Number
hi def link slangParenError	Error
hi def link slangOctalError	Error
hi def link slangOperator		Operator
hi def link slangStructure	Structure
hi def link slangInclude		Include
hi def link slangPreCondit	PreCondit
hi def link slangError		Error
hi def link slangStatement	Statement
hi def link slangType		Type
hi def link slangString		String
hi def link slangConstant		Constant
hi def link slangRangeArray	slangConstant
hi def link slangComment		Comment
hi def link slangSpecial		SpecialChar
hi def link slangTodo		Todo
hi def link slangDelim		Delimiter


let b:current_syntax = "slang"

" vim: ts=8
PK�j�Z�+u��vim80/syntax/promela.vimnu�[���" Vim syntax file
" Language:			ProMeLa
" Maintainer:		Maurizio Tranchero <maurizio.tranchero@polito.it> - <maurizio.tranchero@gmail.com>
" First Release:	Mon Oct 16 08:49:46 CEST 2006
" Last Change:		Thu Aug 7 21:22:48 CEST 2008
" Version:			0.5

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" case is significant
" syn case ignore
" ProMeLa Keywords
syn keyword promelaStatement	proctype if else while chan do od fi break goto unless
syn keyword promelaStatement	active assert label atomic
syn keyword promelaFunctions	skip timeout run
syn keyword promelaTodo         contained TODO
" ProMeLa Types
syn keyword promelaType			bit bool byte short int
" Operators and special characters
syn match promelaOperator	"!"
syn match promelaOperator	"?"
syn match promelaOperator	"->"
syn match promelaOperator	"="
syn match promelaOperator	"+"
syn match promelaOperator	"*"
syn match promelaOperator	"/"
syn match promelaOperator	"-"
syn match promelaOperator	"<"
syn match promelaOperator	">"
syn match promelaOperator	"<="
syn match promelaOperator	">="
syn match promelaSpecial	"\["
syn match promelaSpecial	"\]"
syn match promelaSpecial	";"
syn match promelaSpecial	"::"
" ProMeLa Comments
syn region promelaComment start="/\*" end="\*/" contains=promelaTodo,@Spell
syn match  promelaComment "//.*" contains=promelaTodo,@Spell

" Class Linking
hi def link promelaStatement    Statement
hi def link promelaType	        Type
hi def link promelaComment      Comment
hi def link promelaOperator	    Type
hi def link promelaSpecial      Special
hi def link promelaFunctions    Special
hi def link promelaString		String
hi def link promelaTodo	        Todo

let b:current_syntax = "promela"
PK�j�Z�~5�//vim80/syntax/lftp.vimnu�[���" Vim syntax file
" Language:             lftp(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-17

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn region  lftpComment         display oneline start='#' end='$'
                                \ contains=lftpTodo,@Spell

syn keyword lftpTodo            contained TODO FIXME XXX NOTE

syn region  lftpString          contained display
                                \ start=+"+ skip=+\\$\|\\"+ end=+"+ end=+$+

syn match   lftpNumber          contained display '\<\d\+\(\.\d\+\)\=\>'

syn keyword lftpBoolean         contained yes no on off true false

syn keyword lftpInterval        contained infinity inf never forever
syn match   lftpInterval        contained '\<\(\d\+\(\.\d\+\)\=[dhms]\)\+\>'

syn keyword lftpKeywords        alias anon at bookmark cache cat cd chmod close
                                \ cls command debug du echo exit fg find get
                                \ get1 glob help history jobs kill lcd lftp
                                \ lpwd ls mget mirror mkdir module more mput
                                \ mrm mv nlist open pget put pwd queue quote
                                \ reget recls rels renlist repeat reput rm
                                \ rmdir scache site source suspend user version
                                \ wait zcat zmore

syn region  lftpSet             matchgroup=lftpKeywords
                                \ start="set" end=";" end="$"
                                \ contains=lftpString,lftpNumber,lftpBoolean,
                                \ lftpInterval,lftpSettingsPrefix,lftpSettings
syn match   lftpSettingsPrefix  contained '\<\%(bmk\|cache\|cmd\|color\|dns\):'
syn match   lftpSettingsPrefix  contained '\<\%(file\|fish\|ftp\|hftp\):'
syn match   lftpSettingsPrefix  contained '\<\%(http\|https\|mirror\|module\):'
syn match   lftpSettingsPrefix  contained '\<\%(net\|sftp\|ssl\|xfer\):'
" bmk:
syn keyword lftpSettings        contained save-p[asswords]
" cache:
syn keyword lftpSettings        contained cache-em[pty-listings] en[able]
                                \ exp[ire] siz[e]
" cmd:
syn keyword lftpSettings        contained at[-exit] cls-c[ompletion-default]
                                \ cls-d[efault] cs[h-history]
                                \ default-p[rotocol] default-t[itle]
syn keyword lftpSettings        contained fai[l-exit] in[teractive]
                                \ lo[ng-running] ls[-default] mo[ve-background]
                                \ prom[pt]
                                \ rem[ote-completion]
                                \ save-c[wd-history] save-r[l-history]
                                \ set-t[erm-status] statu[s-interval]
                                \ te[rm-status] verb[ose] verify-h[ost]
                                \ verify-path verify-path[-cached]
" color:
syn keyword lftpSettings        contained dir[-colors] use-c[olor]
" dns:
syn keyword lftpSettings        contained S[RV-query] cache-en[able]
                                \ cache-ex[pire] cache-s[ize]
                                \ fat[al-timeout] o[rder] use-fo[rk]
" file:
syn keyword lftpSettings        contained ch[arset]
" fish:
syn keyword lftpSettings        contained connect[-program] sh[ell]
" ftp:
syn keyword lftpSettings        contained acct anon-p[ass] anon-u[ser]
                                \ au[to-sync-mode] b[ind-data-socket]
                                \ ch[arset] cli[ent] dev[ice-prefix]
                                \ fi[x-pasv-address] fxp-f[orce]
                                \ fxp-p[assive-source] h[ome] la[ng]
                                \ list-e[mpty-ok] list-o[ptions]
                                \ nop[-interval] pas[sive-mode]
                                \ port-i[pv4] port-r[ange] prox[y]
                                \ rest-l[ist] rest-s[tor]
                                \ retry-530 retry-530[-anonymous]
                                \ sit[e-group] skey-a[llow]
                                \ skey-f[orce] ssl-allow
                                \ ssl-allow[-anonymous] ssl-au[th]
                                \ ssl-f[orce] ssl-protect-d[ata]
                                \ ssl-protect-l[ist] stat-[interval]
                                \ sy[nc-mode] timez[one] use-a[bor]
                                \ use-fe[at] use-fx[p] use-hf[tp]
                                \ use-mdtm use-mdtm[-overloaded]
                                \ use-ml[sd] use-p[ret] use-q[uit]
                                \ use-site-c[hmod] use-site-i[dle]
                                \ use-site-u[time] use-siz[e]
                                \ use-st[at] use-te[lnet-iac]
                                \ verify-a[ddress] verify-p[ort]
                                \ w[eb-mode]
" hftp:
syn keyword lftpSettings        contained w[eb-mode] cache prox[y]
                                \ use-au[thorization] use-he[ad] use-ty[pe]
" http:
syn keyword lftpSettings        contained accept accept-c[harset]
                                \ accept-l[anguage] cache coo[kie]
                                \ pos[t-content-type] prox[y]
                                \ put-c[ontent-type] put-m[ethod] ref[erer]
                                \ set-c[ookies] user[-agent]
" https:
syn keyword lftpSettings        contained prox[y]
" mirror:
syn keyword lftpSettings        contained exc[lude-regex] o[rder]
                                \ parallel-d[irectories]
                                \ parallel-t[ransfer-count] use-p[get-n]
" module:
syn keyword lftpSettings        contained pat[h]
" net:
syn keyword lftpSettings        contained connection-l[imit]
                                \ connection-t[akeover] id[le] limit-m[ax]
                                \ limit-r[ate] limit-total-m[ax]
                                \ limit-total-r[ate] max-ret[ries] no-[proxy]
                                \ pe[rsist-retries] reconnect-interval-b[ase]
                                \ reconnect-interval-ma[x]
                                \ reconnect-interval-mu[ltiplier]
                                \ socket-bind-ipv4 socket-bind-ipv6
                                \ socket-bu[ffer] socket-m[axseg] timeo[ut]
" sftp:
syn keyword lftpSettings        contained connect[-program]
                                \ max-p[ackets-in-flight] prot[ocol-version]
                                \ ser[ver-program] size-r[ead] size-w[rite]
" ssl:
syn keyword lftpSettings        contained ca-f[ile] ca-p[ath] ce[rt-file]
                                \ crl-f[ile] crl-p[ath] k[ey-file]
                                \ verify-c[ertificate]
" xfer:
syn keyword lftpSettings        contained clo[bber] dis[k-full-fatal]
                                \ eta-p[eriod] eta-t[erse] mak[e-backup]
                                \ max-red[irections] ra[te-period]

hi def link lftpComment         Comment
hi def link lftpTodo            Todo
hi def link lftpString          String
hi def link lftpNumber          Number
hi def link lftpBoolean         Boolean
hi def link lftpInterval        Number
hi def link lftpKeywords        Keyword
hi def link lftpSettingsPrefix  PreProc
hi def link lftpSettings        Type

let b:current_syntax = "lftp"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�\N���vim80/syntax/pamconf.vimnu�[���" Vim syntax file
" Language:             pam(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-08-03


if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   pamconfService          '^[[:graph:]]\+'
                                    \ nextgroup=pamconfType,
                                    \ pamconfServiceLineCont skipwhite

syn keyword pamconfTodo             contained TODO FIXME XXX NOTE

syn region  pamconfComment          display oneline start='#' end='$'
                                    \ contains=pamconfTodo,@Spell

syn match   pamconfServiceLineCont  contained '\\$'
                                    \ nextgroup=pamconfType,
                                    \ pamconfServiceLineCont skipwhite skipnl

syn keyword pamconfType             account auth password session
                                    \ nextgroup=pamconfControl,
                                    \ pamconfTypeLineCont skipwhite

syn match   pamconfTypeLineCont     contained '\\$'
                                    \ nextgroup=pamconfControl,
                                    \ pamconfTypeLineCont skipwhite skipnl

syn keyword pamconfControl          contained requisite required sufficient
                                    \ optional include substack
                                    \ nextgroup=pamconfMPath,
                                    \ pamconfControlLineContH skipwhite

syn match   pamconfControlBegin     '\[' nextgroup=pamconfControlValues,
                                    \ pamconfControlLineCont skipwhite

syn match   pamconfControlLineCont  contained '\\$'
                                    \ nextgroup=pamconfControlValues,
                                    \ pamconfControlLineCont skipwhite skipnl

syn keyword pamconfControlValues    contained success open_err symbol_err
                                    \ service_err system_err buf_err
                                    \ perm_denied auth_err cred_insufficient
                                    \ authinfo_unavail user_unknown maxtries
                                    \ new_authtok_reqd acct_expired session_err
                                    \ cred_unavail cred_expired cred_err
                                    \ no_module_data conv_err authtok_err
                                    \ authtok_recover_err authtok_lock_busy
                                    \ authtok_disable_aging try_again ignore
                                    \ abort authtok_expired module_unknown
                                    \ bad_item and default
                                    \ nextgroup=pamconfControlValueEq

syn match   pamconfControlValueEq   contained '='
                                    \ nextgroup=pamconfControlActionN,
                                    \           pamconfControlAction

syn match   pamconfControlActionN   contained '\d\+\>'
                                    \ nextgroup=pamconfControlValues,
                                    \ pamconfControlLineCont,pamconfControlEnd
                                    \ skipwhite
syn keyword pamconfControlAction    contained ignore bad die ok done reset
                                    \ nextgroup=pamconfControlValues,
                                    \ pamconfControlLineCont,pamconfControlEnd
                                    \ skipwhite

syn match   pamconfControlEnd       contained '\]'
                                    \ nextgroup=pamconfMPath,
                                    \ pamconfControlLineContH skipwhite

syn match   pamconfControlLineContH contained '\\$'
                                    \ nextgroup=pamconfMPath,
                                    \ pamconfControlLineContH skipwhite skipnl

syn match   pamconfMPath            contained '\S\+'
                                    \ nextgroup=pamconfMPathLineCont,
                                    \ pamconfArgs skipwhite

syn match   pamconfArgs             contained '\S\+'
                                    \ nextgroup=pamconfArgsLineCont,
                                    \ pamconfArgs skipwhite

syn match   pamconfMPathLineCont    contained '\\$'
                                    \ nextgroup=pamconfMPathLineCont,
                                    \ pamconfArgs skipwhite skipnl

syn match   pamconfArgsLineCont     contained '\\$'
                                    \ nextgroup=pamconfArgsLineCont,
                                    \ pamconfArgs skipwhite skipnl

hi def link pamconfTodo             Todo
hi def link pamconfComment          Comment
hi def link pamconfService          Statement
hi def link pamconfServiceLineCont  Special
hi def link pamconfType             Type
hi def link pamconfTypeLineCont     pamconfServiceLineCont
hi def link pamconfControl          Macro
hi def link pamconfControlBegin     Delimiter
hi def link pamconfControlLineContH pamconfServiceLineCont
hi def link pamconfControlLineCont  pamconfServiceLineCont
hi def link pamconfControlValues    Identifier
hi def link pamconfControlValueEq   Operator
hi def link pamconfControlActionN   Number
hi def link pamconfControlAction    Identifier
hi def link pamconfControlEnd       Delimiter
hi def link pamconfMPath            String
hi def link pamconfMPathLineCont    pamconfServiceLineCont
hi def link pamconfArgs             Normal
hi def link pamconfArgsLineCont     pamconfServiceLineCont

let b:current_syntax = "pamconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z{��%;
;
vim80/syntax/inittab.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: SysV-compatible init process control file `inittab'
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2002-09-13
" URL: http://physics.muni.cz/~yeti/download/syntax/inittab.vim

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" Base constructs
syn match inittabError "[^:]\+:"me=e-1 contained
syn match inittabError "[^:]\+$" contained
syn match inittabComment "^[#:].*$" contains=inittabFixme
syn match inittabComment "#.*$" contained contains=inittabFixme
syn keyword inittabFixme FIXME TODO XXX NOT

" Shell
syn region inittabShString start=+"+ end=+"+ skip=+\\\\\|\\\"+ contained
syn region inittabShString start=+'+ end=+'+ contained
syn match inittabShOption "\s[-+][[:alnum:]]\+"ms=s+1 contained
syn match inittabShOption "\s--[:alnum:][-[:alnum:]]*"ms=s+1 contained
syn match inittabShCommand "/\S\+" contained
syn cluster inittabSh add=inittabShOption,inittabShString,inittabShCommand

" Keywords
syn keyword inittabActionName respawn wait once boot bootwait off ondemand sysinit powerwait powerfail powerokwait powerfailnow ctrlaltdel kbrequest initdefault contained

" Line parser
syn match inittabId "^[[:alnum:]~]\{1,4}" nextgroup=inittabColonRunLevels,inittabError
syn match inittabColonRunLevels ":" contained nextgroup=inittabRunLevels,inittabColonAction,inittabError
syn match inittabRunLevels "[0-6A-Ca-cSs]\+" contained nextgroup=inittabColonAction,inittabError
syn match inittabColonAction ":" contained nextgroup=inittabAction,inittabError
syn match inittabAction "\w\+" contained nextgroup=inittabColonProcess,inittabError contains=inittabActionName
syn match inittabColonProcess ":" contained nextgroup=inittabProcessPlus,inittabProcess,inittabError
syn match inittabProcessPlus "+" contained nextgroup=inittabProcess,inittabError
syn region inittabProcess start="/" end="$" transparent oneline contained contains=@inittabSh,inittabComment

" Define the default highlighting

hi def link inittabComment Comment
hi def link inittabFixme Todo
hi def link inittabActionName Type
hi def link inittabError Error
hi def link inittabId Identifier
hi def link inittabRunLevels Special

hi def link inittabColonProcess inittabColon
hi def link inittabColonAction inittabColon
hi def link inittabColonRunLevels inittabColon
hi def link inittabColon PreProc

hi def link inittabShString String
hi def link inittabShOption Special
hi def link inittabShCommand Statement


let b:current_syntax = "inittab"
PK�j�ZQr�ɟ*�*vim80/syntax/erlang.vimnu�[���" Vim syntax file
" Language:     Erlang (http://www.erlang.org)
" Maintainer:   Csaba Hoch <csaba.hoch@gmail.com>
" Contributor:  Adam Rutkowski <hq@mtod.org>
" Last Update:  2017-Mar-05
" License:      Vim license
" URL:          https://github.com/vim-erlang/vim-erlang-runtime

" Acknowledgements: This script was originally created by Kresimir Marzic [1].
" The script was then revamped by Csaba Hoch [2]. During the revamp, the new
" highlighting style and some code was taken from the Erlang syntax script
" that is part of vimerl [3], created by Oscar Hellström [4] and improved by
" Ricardo Catalinas Jiménez [5].

" [1]: Kreąimir Marľić (Kresimir Marzic) <kmarzic@fly.srk.fer.hr>
" [2]: Csaba Hoch <csaba.hoch@gmail.com>
" [3]: https://github.com/jimenezrick/vimerl
" [4]: Oscar Hellström <oscar@oscarh.net> (http://oscar.hellstrom.st)
" [5]: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>

" Customization:
"
" To use the old highlighting style, add this to your .vimrc:
"
"     let g:erlang_old_style_highlight = 1
"
" To highlight further module attributes, add them to
" ~/.vim/after/syntax/erlang.vim:
"
"     syn keyword erlangAttribute myattr1 myattr2 contained

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Case sensitive
syn case match

setlocal iskeyword+=$,@-@

" Comments
syn match erlangComment           '%.*$' contains=erlangCommentAnnotation,erlangTodo
syn match erlangCommentAnnotation ' \@<=@\%(clear\|docfile\|end\|headerfile\|todo\|TODO\|type\|author\|copyright\|doc\|reference\|see\|since\|title\|version\|deprecated\|hidden\|private\|equiv\|spec\|throws\)' contained
syn match erlangCommentAnnotation /`[^']*'/ contained
syn keyword erlangTodo            TODO FIXME XXX contained

" Numbers (minimum base is 2, maximum is 36.)
syn match erlangNumberInteger '\<\d\+\>'
syn match erlangNumberInteger '\<\%([2-9]\|[12]\d\|3[0-6]\)\+#[[:alnum:]]\+\>'
syn match erlangNumberFloat   '\<\d\+\.\d\+\%([eE][+-]\=\d\+\)\=\>'

" Strings, atoms, characters
syn region erlangString            start=/"/ end=/"/ contains=erlangStringModifier
syn region erlangQuotedAtom        start=/'/ end=/'/ contains=erlangQuotedAtomModifier
syn match erlangStringModifier     '\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)\|\~\%([ni~]\|\%(-\=\d\+\|\*\)\=\.\=\%(\*\|\d\+\)\=\%(\..\)\=[tl]*[cfegswpWPBX#bx+]\)' contained
syn match erlangQuotedAtomModifier '\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
syn match erlangModifier           '\$\%([^\\]\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)\)'

" Operators, separators
syn match erlangOperator   '==\|=:=\|/=\|=/=\|<\|=<\|>\|>=\|=>\|:=\|++\|--\|=\|!\|<-\|+\|-\|\*\|\/'
syn keyword erlangOperator div rem or xor bor bxor bsl bsr and band not bnot andalso orelse
syn match erlangBracket    '{\|}\|\[\|]\||\|||'
syn match erlangPipe       '|'
syn match erlangRightArrow '->'

" Atoms, function calls (order is important)
syn match erlangAtom           '\<\l[[:alnum:]_@]*' contains=erlangBoolean
syn keyword erlangBoolean      true false contained
syn match erlangLocalFuncCall  '\<\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*(\)\@=' contains=erlangBIF
syn match erlangLocalFuncRef   '\<\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*/\)\@='
syn match erlangGlobalFuncCall '\<\%(\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*\.\%(\s\|\n\|%.*\n\)*\)*\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*:\%(\s\|\n\|%.*\n\)*\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*(\)\@=' contains=erlangComment,erlangVariable
syn match erlangGlobalFuncRef  '\<\%(\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*\.\%(\s\|\n\|%.*\n\)*\)*\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*:\%(\s\|\n\|%.*\n\)*\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*/\)\@=' contains=erlangComment,erlangVariable

" Variables, macros, records, maps
syn match erlangVariable '\<[A-Z_][[:alnum:]_@]*'
syn match erlangMacro    '??\=[[:alnum:]_@]\+'
syn match erlangMacro    '\%(-define(\)\@<=[[:alnum:]_@]\+'
syn match erlangMap      '#'
syn match erlangRecord   '#\s*\l[[:alnum:]_@]*'
syn region erlangQuotedRecord        start=/#\s*'/ end=/'/ contains=erlangQuotedAtomModifier

" Shebang (this line has to be after the ErlangMap)
syn match erlangShebang  '^#!.*'

" Bitstrings
syn match erlangBitType '\%(\/\%(\s\|\n\|%.*\n\)*\)\@<=\%(integer\|float\|binary\|bytes\|bitstring\|bits\|binary\|utf8\|utf16\|utf32\|signed\|unsigned\|big\|little\|native\|unit\)\%(\%(\s\|\n\|%.*\n\)*-\%(\s\|\n\|%.*\n\)*\%(integer\|float\|binary\|bytes\|bitstring\|bits\|binary\|utf8\|utf16\|utf32\|signed\|unsigned\|big\|little\|native\|unit\)\)*' contains=erlangComment

" Constants and Directives
syn match erlangUnknownAttribute '^\s*-\%(\s\|\n\|%.*\n\)*\l[[:alnum:]_@]*' contains=erlangComment
syn match erlangAttribute '^\s*-\%(\s\|\n\|%.*\n\)*\%(behaviou\=r\|compile\|export\(_type\)\=\|file\|import\|module\|author\|copyright\|doc\|vsn\|on_load\)\>' contains=erlangComment
syn match erlangInclude   '^\s*-\%(\s\|\n\|%.*\n\)*\%(include\|include_lib\)\>' contains=erlangComment
syn match erlangRecordDef '^\s*-\%(\s\|\n\|%.*\n\)*record\>' contains=erlangComment
syn match erlangDefine    '^\s*-\%(\s\|\n\|%.*\n\)*\%(define\|undef\)\>' contains=erlangComment
syn match erlangPreCondit '^\s*-\%(\s\|\n\|%.*\n\)*\%(ifdef\|ifndef\|else\|endif\)\>' contains=erlangComment
syn match erlangType      '^\s*-\%(\s\|\n\|%.*\n\)*\%(spec\|type\|opaque\|callback\)\>' contains=erlangComment

" Keywords
syn keyword erlangKeyword after begin case catch cond end fun if let of
syn keyword erlangKeyword receive when try

" Build-in-functions (BIFs)
syn keyword erlangBIF abs alive apply atom_to_binary atom_to_list contained
syn keyword erlangBIF binary_part binary_to_atom contained
syn keyword erlangBIF binary_to_existing_atom binary_to_float contained
syn keyword erlangBIF binary_to_integer bitstring_to_list contained
syn keyword erlangBIF binary_to_list binary_to_term bit_size contained
syn keyword erlangBIF byte_size check_old_code check_process_code contained
syn keyword erlangBIF concat_binary date delete_module demonitor contained
syn keyword erlangBIF disconnect_node element erase error exit contained
syn keyword erlangBIF float float_to_binary float_to_list contained
syn keyword erlangBIF garbage_collect get get_keys group_leader contained
syn keyword erlangBIF halt hd integer_to_binary integer_to_list contained
syn keyword erlangBIF iolist_to_binary iolist_size is_alive contained
syn keyword erlangBIF is_atom is_binary is_bitstring is_boolean contained
syn keyword erlangBIF is_float is_function is_integer is_list contained
syn keyword erlangBIF is_number is_pid is_port is_process_alive contained
syn keyword erlangBIF is_record is_reference is_tuple length link contained
syn keyword erlangBIF list_to_atom list_to_binary contained
syn keyword erlangBIF list_to_bitstring list_to_existing_atom contained
syn keyword erlangBIF list_to_float list_to_integer list_to_pid contained
syn keyword erlangBIF list_to_tuple load_module make_ref max min contained
syn keyword erlangBIF module_loaded monitor monitor_node node contained
syn keyword erlangBIF nodes now open_port pid_to_list port_close contained
syn keyword erlangBIF port_command port_connect pre_loaded contained
syn keyword erlangBIF process_flag process_flag process_info contained
syn keyword erlangBIF process purge_module put register registered contained
syn keyword erlangBIF round self setelement size spawn spawn_link contained
syn keyword erlangBIF spawn_monitor spawn_opt split_binary contained
syn keyword erlangBIF statistics term_to_binary throw time tl contained
syn keyword erlangBIF trunc tuple_size tuple_to_list unlink contained
syn keyword erlangBIF unregister whereis contained

" Sync at the beginning of functions: if this is not used, multiline string
" are not always recognized, and the indentation script cannot use the
" "searchpair" (because it would not always skip strings and comments when
" looking for keywords and opening parens/brackets).
syn sync match erlangSync grouphere NONE "^[a-z]\s*("
let b:erlang_syntax_synced = 1

" Define the default highlighting. See ":help group-name" for the groups and
" their colors.

let s:old_style = (exists("g:erlang_old_style_highlight") &&
                  \g:erlang_old_style_highlight == 1)


" Comments
hi def link erlangComment Comment
hi def link erlangCommentAnnotation Special
hi def link erlangTodo Todo
hi def link erlangShebang Comment

" Numbers
hi def link erlangNumberInteger Number
hi def link erlangNumberFloat Float

" Strings, atoms, characters
hi def link erlangString String

if s:old_style
hi def link erlangQuotedAtom Type
else
hi def link erlangQuotedAtom String
endif

hi def link erlangStringModifier Special
hi def link erlangQuotedAtomModifier Special
hi def link erlangModifier Special

" Operators, separators
hi def link erlangOperator Operator
hi def link erlangRightArrow Operator
if s:old_style
hi def link erlangBracket Normal
hi def link erlangPipe Normal
else
hi def link erlangBracket Delimiter
hi def link erlangPipe Delimiter
endif

" Atoms, functions, variables, macros
if s:old_style
hi def link erlangAtom Normal
hi def link erlangLocalFuncCall Normal
hi def link erlangLocalFuncRef Normal
hi def link erlangGlobalFuncCall Function
hi def link erlangGlobalFuncRef Function
hi def link erlangVariable Normal
hi def link erlangMacro Normal
hi def link erlangRecord Normal
hi def link erlangQuotedRecord Normal
hi def link erlangMap Normal
else
hi def link erlangAtom String
hi def link erlangLocalFuncCall Normal
hi def link erlangLocalFuncRef Normal
hi def link erlangGlobalFuncCall Normal
hi def link erlangGlobalFuncRef Normal
hi def link erlangVariable Identifier
hi def link erlangMacro Macro
hi def link erlangRecord Structure
hi def link erlangQuotedRecord Structure
hi def link erlangMap Structure
endif

" Bitstrings
if !s:old_style
hi def link erlangBitType Type
endif

" Constants and Directives
if s:old_style
hi def link erlangAttribute Type
hi def link erlangMacroDef Type
hi def link erlangUnknownAttribute Normal
hi def link erlangInclude Type
hi def link erlangRecordDef Type
hi def link erlangDefine Type
hi def link erlangPreCondit Type
hi def link erlangType Type
else
hi def link erlangAttribute Keyword
hi def link erlangMacroDef Macro
hi def link erlangUnknownAttribute Normal
hi def link erlangInclude Include
hi def link erlangRecordDef Keyword
hi def link erlangDefine Define
hi def link erlangPreCondit PreCondit
hi def link erlangType Type
endif

" Keywords
hi def link erlangKeyword Keyword

" Build-in-functions (BIFs)
hi def link erlangBIF Function

if s:old_style
hi def link erlangBoolean Statement
hi def link erlangExtra Statement
hi def link erlangSignal Statement
else
hi def link erlangBoolean Boolean
hi def link erlangExtra Statement
hi def link erlangSignal Statement
endif


let b:current_syntax = "erlang"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: sw=2 et
PK�j�Z#���vim80/syntax/scilab.vimnu�[���"
" Vim syntax file
" Language   :	Scilab
" Maintainer :	Benoit Hamelin
" File type  :	*.sci (see :help filetype)
" History
"	28jan2002	benoith		0.1		Creation.  Adapted from matlab.vim.
"	04feb2002	benoith		0.5		Fixed bugs with constant highlighting.
"


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


" Reserved words.
syn keyword scilabStatement			abort clear clearglobal end exit global mode predef quit resume
syn keyword scilabStatement			return
syn keyword scilabFunction			function endfunction funptr
syn keyword scilabPredicate			null iserror isglobal
syn keyword scilabKeyword			typename
syn keyword scilabDebug				debug pause what where whereami whereis who whos
syn keyword scilabRepeat			for while break
syn keyword scilabConditional		if then else elseif
syn keyword scilabMultiplex			select case

" Reserved constants.
syn match scilabConstant			"\(%\)[0-9A-Za-z?!#$]\+"
syn match scilabBoolean				"\(%\)[FTft]\>"

" Delimiters and operators.
syn match scilabDelimiter			"[][;,()]"
syn match scilabComparison			"[=~]="
syn match scilabComparison			"[<>]=\="
syn match scilabComparison			"<>"
syn match scilabLogical				"[&|~]"
syn match scilabAssignment			"="
syn match scilabArithmetic			"[+-]"
syn match scilabArithmetic			"\.\=[*/\\]\.\="
syn match scilabArithmetic			"\.\=^"
syn match scilabRange				":"
syn match scilabMlistAccess			"\."

syn match scilabLineContinuation	"\.\{2,}"

syn match scilabTransposition		"[])a-zA-Z0-9?!_#$.]'"lc=1

" Comments and tools.
syn keyword scilabTodo				TODO todo FIXME fixme TBD tbd	contained
syn match scilabComment				"//.*$"	contains=scilabTodo

" Constants.
syn match scilabNumber				"[0-9]\+\(\.[0-9]*\)\=\([DEde][+-]\=[0-9]\+\)\="
syn match scilabNumber				"\.[0-9]\+\([DEde][+-]\=[0-9]\+\)\="
syn region scilabString				start=+'+ skip=+''+ end=+'+		oneline
syn region scilabString				start=+"+ end=+"+				oneline

" Identifiers.
syn match scilabIdentifier			"\<[A-Za-z?!_#$][A-Za-z0-9?!_#$]*\>"
syn match scilabOverload			"%[A-Za-z0-9?!_#$]\+_[A-Za-z0-9?!_#$]\+"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link scilabStatement				Statement
hi def link scilabFunction				Keyword
hi def link scilabPredicate				Keyword
hi def link scilabKeyword				Keyword
hi def link scilabDebug					Debug
hi def link scilabRepeat				Repeat
hi def link scilabConditional			Conditional
hi def link scilabMultiplex				Conditional

hi def link scilabConstant				Constant
hi def link scilabBoolean				Boolean

hi def link scilabDelimiter				Delimiter
hi def link scilabMlistAccess			Delimiter
hi def link scilabComparison			Operator
hi def link scilabLogical				Operator
hi def link scilabAssignment			Operator
hi def link scilabArithmetic			Operator
hi def link scilabRange					Operator
hi def link scilabLineContinuation		Underlined
hi def link scilabTransposition			Operator

hi def link scilabTodo					Todo
hi def link scilabComment				Comment

hi def link scilabNumber				Number
hi def link scilabString				String

hi def link scilabIdentifier			Identifier
hi def link scilabOverload				Special


let b:current_syntax = "scilab"

"EOF	vim: ts=4 noet tw=100 sw=4 sts=0
PK�j�Z4P��!�!vim80/syntax/xml.vimnu�[���" Vim syntax file
" Language:	XML
" Maintainer:	Johannes Zellner <johannes@zellner.org>
"		Author and previous maintainer:
"		Paul Siegmann <pauls@euronet.nl>
" Last Change:	2013 Jun 07
" Filenames:	*.xml
" $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $

" CONFIGURATION:
"   syntax folding can be turned on by
"
"      let g:xml_syntax_folding = 1
"
"   before the syntax file gets loaded (e.g. in ~/.vimrc).
"   This might slow down syntax highlighting significantly,
"   especially for large files.
"
" CREDITS:
"   The original version was derived by Paul Siegmann from
"   Claudio Fleiner's html.vim.
"
" REFERENCES:
"   [1] http://www.w3.org/TR/2000/REC-xml-20001006
"   [2] http://www.w3.org/XML/1998/06/xmlspec-report-19980910.htm
"
"   as <hirauchi@kiwi.ne.jp> pointed out according to reference [1]
"
"   2.3 Common Syntactic Constructs
"   [4]    NameChar    ::=    Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
"   [5]    Name        ::=    (Letter | '_' | ':') (NameChar)*
"
" NOTE:
"   1) empty tag delimiters "/>" inside attribute values (strings)
"      confuse syntax highlighting.
"   2) for large files, folding can be pretty slow, especially when
"      loading a file the first time and viewoptions contains 'folds'
"      so that folds of previous sessions are applied.
"      Don't use 'foldmethod=syntax' in this case.


" Quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

let s:xml_cpo_save = &cpo
set cpo&vim

syn case match

" mark illegal characters
syn match xmlError "[<&]"

" strings (inside tags) aka VALUES
"
" EXAMPLE:
"
" <tag foo.attribute = "value">
"                      ^^^^^^^
syn region  xmlString contained start=+"+ end=+"+ contains=xmlEntity,@Spell display
syn region  xmlString contained start=+'+ end=+'+ contains=xmlEntity,@Spell display


" punctuation (within attributes) e.g. <tag xml:foo.attribute ...>
"                                              ^   ^
" syn match   xmlAttribPunct +[-:._]+ contained display
syn match   xmlAttribPunct +[:.]+ contained display

" no highlighting for xmlEqual (xmlEqual has no highlighting group)
syn match   xmlEqual +=+ display


" attribute, everything before the '='
"
" PROVIDES: @xmlAttribHook
"
" EXAMPLE:
"
" <tag foo.attribute = "value">
"      ^^^^^^^^^^^^^
"
syn match   xmlAttrib
    \ +[-'"<]\@1<!\<[a-zA-Z:_][-.0-9a-zA-Z:_]*\>\%(['">]\@!\|$\)+
    \ contained
    \ contains=xmlAttribPunct,@xmlAttribHook
    \ display


" namespace spec
"
" PROVIDES: @xmlNamespaceHook
"
" EXAMPLE:
"
" <xsl:for-each select = "lola">
"  ^^^
"
if exists("g:xml_namespace_transparent")
syn match   xmlNamespace
    \ +\(<\|</\)\@2<=[^ /!?<>"':]\+[:]\@=+
    \ contained
    \ contains=@xmlNamespaceHook
    \ transparent
    \ display
else
syn match   xmlNamespace
    \ +\(<\|</\)\@2<=[^ /!?<>"':]\+[:]\@=+
    \ contained
    \ contains=@xmlNamespaceHook
    \ display
endif


" tag name
"
" PROVIDES: @xmlTagHook
"
" EXAMPLE:
"
" <tag foo.attribute = "value">
"  ^^^
"
syn match   xmlTagName
    \ +<\@1<=[^ /!?<>"']\++
    \ contained
    \ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook
    \ display


if exists('g:xml_syntax_folding')

    " start tag
    " use matchgroup=xmlTag to skip over the leading '<'
    "
    " PROVIDES: @xmlStartTagHook
    "
    " EXAMPLE:
    "
    " <tag id="whoops">
    " s^^^^^^^^^^^^^^^e
    "
    syn region   xmlTag
	\ matchgroup=xmlTag start=+<[^ /!?<>"']\@=+
	\ matchgroup=xmlTag end=+>+
	\ contained
	\ contains=xmlError,xmlTagName,xmlAttrib,xmlEqual,xmlString,@xmlStartTagHook


    " highlight the end tag
    "
    " PROVIDES: @xmlTagHook
    " (should we provide a separate @xmlEndTagHook ?)
    "
    " EXAMPLE:
    "
    " </tag>
    " ^^^^^^
    "
    syn match   xmlEndTag
	\ +</[^ /!?<>"']\+>+
	\ contained
	\ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook


    " tag elements with syntax-folding.
    " NOTE: NO HIGHLIGHTING -- highlighting is done by contained elements
    "
    " PROVIDES: @xmlRegionHook
    "
    " EXAMPLE:
    "
    " <tag id="whoops">
    "   <!-- comment -->
    "   <another.tag></another.tag>
    "   <empty.tag/>
    "   some data
    " </tag>
    "
    syn region   xmlRegion
	\ start=+<\z([^ /!?<>"']\+\)+
	\ skip=+<!--\_.\{-}-->+
	\ end=+</\z1\_\s\{-}>+
	\ matchgroup=xmlEndTag end=+/>+
	\ fold
	\ contains=xmlTag,xmlEndTag,xmlCdata,xmlRegion,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook,@Spell
	\ keepend
	\ extend

else

    " no syntax folding:
    " - contained attribute removed
    " - xmlRegion not defined
    "
    syn region   xmlTag
	\ matchgroup=xmlTag start=+<[^ /!?<>"']\@=+
	\ matchgroup=xmlTag end=+>+
	\ contains=xmlError,xmlTagName,xmlAttrib,xmlEqual,xmlString,@xmlStartTagHook

    syn match   xmlEndTag
	\ +</[^ /!?<>"']\+>+
	\ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook

endif


" &entities; compare with dtd
syn match   xmlEntity                 "&[^; \t]*;" contains=xmlEntityPunct
syn match   xmlEntityPunct  contained "[&.;]"

if exists('g:xml_syntax_folding')

    " The real comments (this implements the comments as defined by xml,
    " but not all xml pages actually conform to it. Errors are flagged.
    syn region  xmlComment
	\ start=+<!+
	\ end=+>+
	\ contains=xmlCommentStart,xmlCommentError
	\ extend
	\ fold

else

    " no syntax folding:
    " - fold attribute removed
    "
    syn region  xmlComment
	\ start=+<!+
	\ end=+>+
	\ contains=xmlCommentStart,xmlCommentError
	\ extend

endif

syn match xmlCommentStart   contained "<!" nextgroup=xmlCommentPart
syn keyword xmlTodo         contained TODO FIXME XXX
syn match   xmlCommentError contained "[^><!]"
syn region  xmlCommentPart
    \ start=+--+
    \ end=+--+
    \ contained
    \ contains=xmlTodo,@xmlCommentHook,@Spell


" CData sections
"
" PROVIDES: @xmlCdataHook
"
syn region    xmlCdata
    \ start=+<!\[CDATA\[+
    \ end=+]]>+
    \ contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook,@Spell
    \ keepend
    \ extend

" using the following line instead leads to corrupt folding at CDATA regions
" syn match    xmlCdata      +<!\[CDATA\[\_.\{-}]]>+  contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook
syn match    xmlCdataStart +<!\[CDATA\[+  contained contains=xmlCdataCdata
syn keyword  xmlCdataCdata CDATA          contained
syn match    xmlCdataEnd   +]]>+          contained


" Processing instructions
" This allows "?>" inside strings -- good idea?
syn region  xmlProcessing matchgroup=xmlProcessingDelim start="<?" end="?>" contains=xmlAttrib,xmlEqual,xmlString


if exists('g:xml_syntax_folding')

    " DTD -- we use dtd.vim here
    syn region  xmlDocType matchgroup=xmlDocTypeDecl
	\ start="<!DOCTYPE"he=s+2,rs=s+2 end=">"
	\ fold
	\ contains=xmlDocTypeKeyword,xmlInlineDTD,xmlString
else

    " no syntax folding:
    " - fold attribute removed
    "
    syn region  xmlDocType matchgroup=xmlDocTypeDecl
	\ start="<!DOCTYPE"he=s+2,rs=s+2 end=">"
	\ contains=xmlDocTypeKeyword,xmlInlineDTD,xmlString

endif

syn keyword xmlDocTypeKeyword contained DOCTYPE PUBLIC SYSTEM
syn region  xmlInlineDTD contained matchgroup=xmlDocTypeDecl start="\[" end="]" contains=@xmlDTD
syn include @xmlDTD <sfile>:p:h/dtd.vim
unlet b:current_syntax


" synchronizing
" TODO !!! to be improved !!!

syn sync match xmlSyncDT grouphere  xmlDocType +\_.\(<!DOCTYPE\)\@=+
" syn sync match xmlSyncDT groupthere  NONE       +]>+

if exists('g:xml_syntax_folding')
    syn sync match xmlSync grouphere   xmlRegion  +\_.\(<[^ /!?<>"']\+\)\@=+
    " syn sync match xmlSync grouphere  xmlRegion "<[^ /!?<>"']*>"
    syn sync match xmlSync groupthere  xmlRegion  +</[^ /!?<>"']\+>+
endif

syn sync minlines=100


" The default highlighting.
hi def link xmlTodo		Todo
hi def link xmlTag		Function
hi def link xmlTagName		Function
hi def link xmlEndTag		Identifier
if !exists("g:xml_namespace_transparent")
    hi def link xmlNamespace	Tag
endif
hi def link xmlEntity		Statement
hi def link xmlEntityPunct	Type

hi def link xmlAttribPunct	Comment
hi def link xmlAttrib		Type

hi def link xmlString		String
hi def link xmlComment		Comment
hi def link xmlCommentStart	xmlComment
hi def link xmlCommentPart	Comment
hi def link xmlCommentError	Error
hi def link xmlError		Error

hi def link xmlProcessingDelim	Comment
hi def link xmlProcessing	Type

hi def link xmlCdata		String
hi def link xmlCdataCdata	Statement
hi def link xmlCdataStart	Type
hi def link xmlCdataEnd		Type

hi def link xmlDocTypeDecl	Function
hi def link xmlDocTypeKeyword	Statement
hi def link xmlInlineDTD	Function

let b:current_syntax = "xml"

let &cpo = s:xml_cpo_save
unlet s:xml_cpo_save

" vim: ts=8
PK�j�Zj���LLvim80/syntax/cweb.vimnu�[���" Vim syntax file
" Language:	CWEB
" Maintainer:	Andreas Scherer <andreas.scherer@pobox.com>
" Last Change:	2011 Dec 25 by Thilo Six

" Details of the CWEB language can be found in the article by Donald E. Knuth
" and Silvio Levy, "The CWEB System of Structured Documentation", included as
" file "cwebman.tex" in the standard CWEB distribution, available for
" anonymous ftp at ftp://labrea.stanford.edu/pub/cweb/.

" TODO: Section names and C/C++ comments should be treated as TeX material.
" TODO: The current version switches syntax highlighting off for section
" TODO: names, and leaves C/C++ comments as such. (On the other hand,
" TODO: switching to TeX mode in C/C++ comments might be colour overkill.)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" For starters, read the TeX syntax; TeX syntax items are allowed at the top
" level in the CWEB syntax, e.g., in the preamble.  In general, a CWEB source
" code can be seen as a normal TeX document with some C/C++ material
" interspersed in certain defined regions.
runtime! syntax/tex.vim
unlet b:current_syntax

" Read the C/C++ syntax too; C/C++ syntax items are treated as such in the
" C/C++ section of a CWEB chunk or in inner C/C++ context in "|...|" groups.
syntax include @webIncludedC <sfile>:p:h/cpp.vim

let s:cpo_save = &cpo
set cpo&vim

" Inner C/C++ context (ICC) should be quite simple as it's comprised of
" material in "|...|"; however the naive definition for this region would
" hickup at the innocious "\|" TeX macro.  Note: For the time being we expect
" that an ICC begins either at the start of a line or after some white space.
syntax region webInnerCcontext start="\(^\|[ \t\~`(]\)|" end="|" contains=@webIncludedC,webSectionName,webRestrictedTeX,webIgnoredStuff

" Genuine C/C++ material.  This syntactic region covers both the definition
" part and the C/C++ part of a CWEB section; it is ended by the TeX part of
" the next section.
syntax region webCpart start="@[dfscp<(]" end="@[ \*]" contains=@webIncludedC,webSectionName,webRestrictedTeX,webIgnoredStuff

" Section names contain C/C++ material only in inner context.
syntax region webSectionName start="@[<(]" end="@>" contains=webInnerCcontext contained

" The contents of "control texts" is not treated as TeX material, because in
" non-trivial cases this completely clobbers the syntax recognition.  Instead,
" we highlight these elements as "strings".
syntax region webRestrictedTeX start="@[\^\.:t=q]" end="@>" oneline

" Double-@ means single-@, anywhere in the CWEB source.  (This allows e-mail
" address <someone@@fsf.org> without going into C/C++ mode.)
syntax match webIgnoredStuff "@@"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link webRestrictedTeX String


let b:current_syntax = "cweb"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z!|�

vim80/syntax/ayacc.vimnu�[���" Vim syntax file
" Language:	AYacc
" Maintainer:	Mathieu Clabaut <mathieu.clabaut@free.fr>
" LastChange:	2011 Dec 25
" Original:	Yacc, maintained by Dr. Charles E. Campbell, Jr.
" Comment:	     Replaced sourcing c.vim file by ada.vim and rename yacc*
"		in ayacc*

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

" Read the Ada syntax to start with
runtime! syntax/ada.vim
unlet b:current_syntax

let s:cpo_save = &cpo
set cpo&vim

" Clusters
syn cluster	ayaccActionGroup	contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError
syn cluster	ayaccUnionGroup	contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly

" Yacc stuff
syn match	ayaccDelim	"^[ \t]*[:|;]"
syn match	ayaccOper	"@\d\+"

syn match	ayaccKey	"^[ \t]*%\(token\|type\|left\|right\|start\|ident\)\>"
syn match	ayaccKey	"[ \t]%\(prec\|expect\|nonassoc\)\>"
syn match	ayaccKey	"\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"
syn keyword	ayaccKeyActn	yyerrok yyclearin

syn match	ayaccUnionStart	"^%union"	skipwhite skipnl nextgroup=ayaccUnion
syn region	ayaccUnion	contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}"	contains=@ayaccUnionGroup
syn region	ayaccUnionCurly	contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup
syn match	ayaccBrkt	contained "[<>]"
syn match	ayaccType	"<[a-zA-Z_][a-zA-Z0-9_]*>"	contains=ayaccBrkt
syn match	ayaccDefinition	"^[A-Za-z][A-Za-z0-9_]*[ \t]*:"

" special Yacc separators
syn match	ayaccSectionSep	"^[ \t]*%%"
syn match	ayaccSep	"^[ \t]*%{"
syn match	ayaccSep	"^[ \t]*%}"

" I'd really like to highlight just the outer {}.  Any suggestions???
syn match	ayaccCurlyError	"[{}]"
syn region	ayaccAction	matchgroup=ayaccCurly start="{" end="}" contains=ALLBUT,@ayaccActionGroup


" Internal ayacc highlighting links
hi def link ayaccBrkt	ayaccStmt
hi def link ayaccKey	ayaccStmt
hi def link ayaccOper	ayaccStmt
hi def link ayaccUnionStart	ayaccKey

" External ayacc highlighting links
hi def link ayaccCurly	Delimiter
hi def link ayaccCurlyError	Error
hi def link ayaccDefinition	Function
hi def link ayaccDelim	Function
hi def link ayaccKeyActn	Special
hi def link ayaccSectionSep	Todo
hi def link ayaccSep	Delimiter
hi def link ayaccStmt	Statement
hi def link ayaccType	Type

" since Bram doesn't like my Delimiter :|
hi def link Delimiter	Type

let b:current_syntax = "ayacc"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=15
PK�j�Z��FFvim80/syntax/abaqus.vimnu�[���" Vim syntax file
" Language:	Abaqus finite element input file (www.hks.com)
" Maintainer:	Carl Osterwisch <osterwischc@asme.org>
" Last Change:	2002 Feb 24
" Remark:	Huge improvement in folding performance--see filetype plugin

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Abaqus comment lines
syn match abaqusComment	"^\*\*.*$"

" Abaqus keyword lines
syn match abaqusKeywordLine "^\*\h.*" contains=abaqusKeyword,abaqusParameter,abaqusValue display
syn match abaqusKeyword "^\*\h[^,]*" contained display
syn match abaqusParameter ",[^,=]\+"lc=1 contained display
syn match abaqusValue	"=\s*[^,]*"lc=1 contained display

" Illegal syntax
syn match abaqusBadLine	"^\s\+\*.*" display

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link abaqusComment	Comment
hi def link abaqusKeyword	Statement
hi def link abaqusParameter	Identifier
hi def link abaqusValue	Constant
hi def link abaqusBadLine    Error


let b:current_syntax = "abaqus"
PK�j�Z�f�Rvim80/syntax/squid.vimnu�[���" Vim syntax file
" Language:	Squid config file
" Maintainer:	Klaus Muth <klaus@hampft.de>
" Last Change:	2005 Jun 12
" URL:		http://www.hampft.de/vim/syntax/squid.vim
" ThanksTo:	Ilya Sher <iso8601@mail.ru>,
"               Michael Dotzler <Michael.Dotzler@leoni.com>


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" squid.conf syntax seems to be case insensitive
syn case ignore

syn keyword	squidTodo	contained TODO
syn match	squidComment	"#.*$" contains=squidTodo,squidTag
syn match	squidTag	contained "TAG: .*$"

" Lots & lots of Keywords!
syn keyword	squidConf	acl always_direct announce_host announce_period
syn keyword	squidConf	announce_port announce_to anonymize_headers
syn keyword	squidConf	append_domain as_whois_server auth_param_basic
syn keyword	squidConf	authenticate_children authenticate_program
syn keyword	squidConf	authenticate_ttl broken_posts buffered_logs
syn keyword	squidConf	cache_access_log cache_announce cache_dir
syn keyword	squidConf	cache_dns_program cache_effective_group
syn keyword	squidConf	cache_effective_user cache_host cache_host_acl
syn keyword	squidConf	cache_host_domain cache_log cache_mem
syn keyword	squidConf	cache_mem_high cache_mem_low cache_mgr
syn keyword	squidConf	cachemgr_passwd cache_peer cache_peer_access
syn keyword	squidConf	cahce_replacement_policy cache_stoplist
syn keyword	squidConf	cache_stoplist_pattern cache_store_log cache_swap
syn keyword	squidConf	cache_swap_high cache_swap_log cache_swap_low
syn keyword	squidConf	client_db client_lifetime client_netmask
syn keyword	squidConf	connect_timeout coredump_dir dead_peer_timeout
syn keyword	squidConf	debug_options delay_access delay_class
syn keyword	squidConf	delay_initial_bucket_level delay_parameters
syn keyword	squidConf	delay_pools deny_info dns_children dns_defnames
syn keyword	squidConf	dns_nameservers dns_testnames emulate_httpd_log
syn keyword	squidConf	err_html_text fake_user_agent firewall_ip
syn keyword	squidConf	forwarded_for forward_snmpd_port fqdncache_size
syn keyword	squidConf	ftpget_options ftpget_program ftp_list_width
syn keyword	squidConf	ftp_passive ftp_user half_closed_clients
syn keyword	squidConf	header_access header_replace hierarchy_stoplist
syn keyword	squidConf	high_response_time_warning high_page_fault_warning
syn keyword	squidConf	htcp_port http_access http_anonymizer httpd_accel
syn keyword	squidConf	httpd_accel_host httpd_accel_port
syn keyword	squidConf	httpd_accel_uses_host_header
syn keyword	squidConf	httpd_accel_with_proxy http_port http_reply_access
syn keyword	squidConf	icp_access icp_hit_stale icp_port
syn keyword	squidConf	icp_query_timeout ident_lookup ident_lookup_access
syn keyword	squidConf	ident_timeout incoming_http_average
syn keyword	squidConf	incoming_icp_average inside_firewall ipcache_high
syn keyword	squidConf	ipcache_low ipcache_size local_domain local_ip
syn keyword	squidConf	logfile_rotate log_fqdn log_icp_queries
syn keyword	squidConf	log_mime_hdrs maximum_object_size
syn keyword	squidConf	maximum_single_addr_tries mcast_groups
syn keyword	squidConf	mcast_icp_query_timeout mcast_miss_addr
syn keyword	squidConf	mcast_miss_encode_key mcast_miss_port memory_pools
syn keyword	squidConf	memory_pools_limit memory_replacement_policy
syn keyword	squidConf	mime_table min_http_poll_cnt min_icp_poll_cnt
syn keyword	squidConf	minimum_direct_hops minimum_object_size
syn keyword	squidConf	minimum_retry_timeout miss_access negative_dns_ttl
syn keyword	squidConf	negative_ttl neighbor_timeout neighbor_type_domain
syn keyword	squidConf	netdb_high netdb_low netdb_ping_period
syn keyword	squidConf	netdb_ping_rate never_direct no_cache
syn keyword	squidConf	passthrough_proxy pconn_timeout pid_filename
syn keyword	squidConf	pinger_program positive_dns_ttl prefer_direct
syn keyword	squidConf	proxy_auth proxy_auth_realm query_icmp quick_abort
syn keyword	squidConf	quick_abort quick_abort_max quick_abort_min
syn keyword	squidConf	quick_abort_pct range_offset_limit read_timeout
syn keyword	squidConf	redirect_children redirect_program
syn keyword	squidConf	redirect_rewrites_host_header reference_age
syn keyword	squidConf	reference_age refresh_pattern reload_into_ims
syn keyword	squidConf	request_body_max_size request_size request_timeout
syn keyword	squidConf	shutdown_lifetime single_parent_bypass
syn keyword	squidConf	siteselect_timeout snmp_access
syn keyword	squidConf	snmp_incoming_address snmp_port source_ping
syn keyword	squidConf	ssl_proxy store_avg_object_size
syn keyword	squidConf	store_objects_per_bucket strip_query_terms
syn keyword	squidConf	swap_level1_dirs swap_level2_dirs
syn keyword	squidConf	tcp_incoming_address tcp_outgoing_address
syn keyword	squidConf	tcp_recv_bufsize test_reachability udp_hit_obj
syn keyword	squidConf	udp_hit_obj_size udp_incoming_address
syn keyword	squidConf	udp_outgoing_address unique_hostname
syn keyword	squidConf	unlinkd_program uri_whitespace useragent_log
syn keyword	squidConf	visible_hostname wais_relay wais_relay_host
syn keyword	squidConf	wais_relay_port

syn keyword	squidOpt	proxy-only weight ttl no-query default
syn keyword	squidOpt	round-robin multicast-responder
syn keyword	squidOpt	on off all deny allow
syn keyword	squidopt	via parent no-digest heap lru realm
syn keyword	squidopt	children credentialsttl none disable
syn keyword	squidopt	offline_toggle diskd q1 q2

" Security Actions for cachemgr_passwd
syn keyword	squidAction	shutdown info parameter server_list
syn keyword	squidAction	client_list
syn match	squidAction	"stats/\(objects\|vm_objects\|utilization\|ipcache\|fqdncache\|dns\|redirector\|io\|reply_headers\|filedescriptors\|netdb\)"
syn match	squidAction	"log\(/\(status\|enable\|disable\|clear\)\)\="
syn match	squidAction	"squid\.conf"

" Keywords for the acl-config
syn keyword	squidAcl	url_regex urlpath_regex referer_regex port proto
syn keyword	squidAcl	req_mime_type rep_mime_type
syn keyword	squidAcl	method browser user src dst
syn keyword	squidAcl	time dstdomain ident snmp_community

syn match	squidNumber	"\<\d\+\>"
syn match	squidIP		"\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>"
syn match	squidStr	"\(^\s*acl\s\+\S\+\s\+\(\S*_regex\|re[pq]_mime_type\|browser\|_domain\|user\)\+\s\+\)\@<=.*" contains=squidRegexOpt
syn match	squidRegexOpt	contained "\(^\s*acl\s\+\S\+\s\+\S\+\(_regex\|_mime_type\)\s\+\)\@<=[-+]i\s\+"

" All config is in one line, so this has to be sufficient
" Make it fast like hell :)
syn sync minlines=3

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link squidTodo	Todo
hi def link squidComment	Comment
hi def link squidTag	Special
hi def link squidConf	Keyword
hi def link squidOpt	Constant
hi def link squidAction	String
hi def link squidNumber	Number
hi def link squidIP	Number
hi def link squidAcl	Keyword
hi def link squidStr	String
hi def link squidRegexOpt	Special


let b:current_syntax = "squid"

" vim: ts=8
PK�j�Z�.��=�=vim80/syntax/lsl.vimnu�[���" Vim syntax file
" Language:	Linden Scripting Language
" Maintainer:	Timo Frenay <timo@frenay.net>
" Last Change:	2012 Apr 30

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

" Initializations
syn case match

" Keywords
syn keyword lslKeyword default do else for if jump return state while

" Types
syn keyword lslType float integer key list quaternion rotation string vector

" Labels
syn match lslLabel +@\h\w*+ display

" Constants
syn keyword lslConstant
\ ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AWAY AGENT_BUSY
\ AGENT_CROUCHING AGENT_FLYING AGENT_IN_AIR AGENT_MOUSELOOK AGENT_ON_OBJECT
\ AGENT_SCRIPTED AGENT_SITTING AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON
\ ATTACH_BACK ATTACH_BELLY ATTACH_CHEST ATTACH_CHIN ATTACH_HEAD
\ ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT
\ ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER
\ ATTACH_HUD_TOP_LEFT ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEYE ATTACH_LFOOT
\ ATTACH_LHAND ATTACH_LHIP ATTACH_LLARM ATTACH_LLLEG ATTACH_LPEC
\ ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_MOUTH ATTACH_NOSE
\ ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHIP
\ ATTACH_RLARM ATTACH_RLLEG ATTACH_RPEC ATTACH_RSHOULDER ATTACH_RUARM
\ ATTACH_RULEG CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE CAMERA_BEHINDNESS_LAG
\ CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED
\ CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION
\ CAMERA_POSITION_LAG CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD
\ CHANGED_ALLOWED_DROP CHANGED_COLOR CHANGED_INVENTORY CHANGED_LINK
\ CHANGED_OWNER CHANGED_REGION CHANGED_SCALE CHANGED_SHAPE CHANGED_TELEPORT
\ CHANGED_TEXTURE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN
\ CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT
\ CLICK_ACTION_TOUCH CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON
\ CONTROL_LEFT CONTROL_ML_LBUTTON CONTROL_RIGHT CONTROL_ROT_LEFT
\ CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME DATA_ONLINE DATA_PAYINFO
\ DATA_RATING DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL
\ DEG_TO_RAD EOF FALSE HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_METHOD
\ HTTP_MIMETYPE HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION
\ INVENTORY_BODYPART INVENTORY_CLOTHING INVENTORY_GESTURE INVENTORY_LANDMARK
\ INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT
\ INVENTORY_SOUND INVENTORY_TEXTURE LAND_LARGE_BRUSH LAND_LEVEL LAND_LOWER
\ LAND_MEDIUM_BRUSH LAND_NOISE LAND_RAISE LAND_REVERT LAND_SMALL_BRUSH
\ LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_ROOT LINK_SET LINK_THIS
\ LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN
\ LIST_STAT_MIN LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV
\ LIST_STAT_SUM LIST_STAT_SUM_SQUARES LOOP MASK_BASE MASK_EVERYONE MASK_GROUP
\ MASK_NEXT MASK_OWNER NULL_KEY OBJECT_CREATOR OBJECT_DESC OBJECT_GROUP
\ OBJECT_NAME OBJECT_OWNER OBJECT_POS OBJECT_ROT OBJECT_UNKNOWN_DETAIL
\ OBJECT_VELOCITY PARCEL_COUNT_GROUP PARCEL_COUNT_OTHER PARCEL_COUNT_OWNER
\ PARCEL_COUNT_SELECTED PARCEL_COUNT_TEMP PARCEL_COUNT_TOTAL PARCEL_DETAILS_AREA
\ PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP PARCEL_DETAILS_NAME
\ PARCEL_DETAILS_OWNER PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY
\ PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS
\ PARCEL_FLAG_ALLOW_DAMAGE PARCEL_FLAG_ALLOW_FLY
\ PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS
\ PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS
\ PARCEL_FLAG_ALLOW_TERRAFORM PARCEL_FLAG_LOCAL_SOUND_ONLY
\ PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP
\ PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST
\ PARCEL_FLAG_USE_LAND_PASS_LIST PARCEL_MEDIA_COMMAND_AGENT
\ PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC
\ PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET
\ PARCEL_MEDIA_COMMAND_PAUSE PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE
\ PARCEL_MEDIA_COMMAND_STOP PARCEL_MEDIA_COMMAND_TEXTURE
\ PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE
\ PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE
\ PAYMENT_INFO_ON_FILE PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE PERM_ALL PERM_COPY
\ PERM_MODIFY PERM_MOVE PERM_TRANSFER PERMISSION_ATTACH PERMISSION_CHANGE_LINKS
\ PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT PERMISSION_TAKE_CONTROLS
\ PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PI PI_BY_TWO PING_PONG
\ PRIM_BUMP_BARK PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT
\ PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE PRIM_BUMP_DARK PRIM_BUMP_DISKS
\ PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE PRIM_BUMP_SHINY
\ PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION
\ PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_CAST_SHADOWS PRIM_COLOR
\ PRIM_FLEXIBLE PRIM_FULLBRIGHT PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT
\ PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE PRIM_MATERIAL PRIM_MATERIAL_FLESH
\ PRIM_MATERIAL_GLASS PRIM_MATERIAL_LIGHT PRIM_MATERIAL_METAL
\ PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE
\ PRIM_MATERIAL_WOOD PRIM_PHANTOM PRIM_PHYSICS PRIM_POINT_LIGHT PRIM_POSITION
\ PRIM_ROTATION PRIM_SCULPT_TYPE_CYLINDER PRIM_SCULPT_TYPE_PLANE
\ PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH PRIM_SHINY_LOW
\ PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIZE PRIM_TEMP_ON_REZ PRIM_TEXGEN
\ PRIM_TEXGEN_DEFAULT PRIM_TEXGEN_PLANAR PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX
\ PRIM_TYPE_BOX PRIM_TYPE_CYLINDER PRIM_TYPE_CYLINDER PRIM_TYPE_LEGACY
\ PRIM_TYPE_PRISM PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT
\ PRIM_TYPE_SPHERE PRIM_TYPE_SPHERE PRIM_TYPE_TORUS PRIM_TYPE_TORUS
\ PRIM_TYPE_TUBE PRIM_TYPE_TUBE PSYS_PART_BEAM_MASK PSYS_PART_BOUNCE_MASK
\ PSYS_PART_DEAD_MASK PSYS_PART_EMISSIVE_MASK PSYS_PART_END_ALPHA
\ PSYS_PART_END_COLOR PSYS_PART_END_SCALE PSYS_PART_FLAGS
\ PSYS_PART_FOLLOW_SRC_MASK PSYS_PART_FOLLOW_VELOCITY_MASK
\ PSYS_PART_INTERP_COLOR_MASK PSYS_PART_INTERP_SCALE_MASK PSYS_PART_MAX_AGE
\ PSYS_PART_RANDOM_ACCEL_MASK PSYS_PART_RANDOM_VEL_MASK PSYS_PART_START_ALPHA
\ PSYS_PART_START_COLOR PSYS_PART_START_SCALE PSYS_PART_TARGET_LINEAR_MASK
\ PSYS_PART_TARGET_POS_MASK PSYS_PART_TRAIL_MASK PSYS_PART_WIND_MASK
\ PSYS_SRC_ACCEL PSYS_SRC_ANGLE_BEGIN PSYS_SRC_ANGLE_END
\ PSYS_SRC_BURST_PART_COUNT PSYS_SRC_BURST_RADIUS PSYS_SRC_BURST_RATE
\ PSYS_SRC_BURST_SPEED_MAX PSYS_SRC_BURST_SPEED_MIN PSYS_SRC_INNERANGLE
\ PSYS_SRC_MAX_AGE PSYS_SRC_OMEGA PSYS_SRC_OUTERANGLE PSYS_SRC_PATTERN
\ PSYS_SRC_PATTERN_ANGLE PSYS_SRC_PATTERN_ANGLE_CONE
\ PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY PSYS_SRC_PATTERN_DROP
\ PSYS_SRC_PATTERN_EXPLODE PSYS_SRC_TARGET_KEY PSYS_SRC_TEXTURE PUBLIC_CHANNEL
\ RAD_TO_DEG REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT
\ REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM
\ REGION_FLAG_DISABLE_COLLISIONS REGION_FLAG_DISABLE_PHYSICS
\ REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX
\ REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REVERSE ROTATE SCALE
\ SCRIPTED SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE
\ STATUS_PHANTOM STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X
\ STATUS_ROTATE_Y STATUS_ROTATE_Z STATUS_SANDBOX STRING_TRIM STRING_TRIM_HEAD
\ STRING_TRIM_TAIL TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER TYPE_INVALID TYPE_KEY
\ TYPE_ROTATION TYPE_STRING TYPE_VECTOR VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY
\ VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE
\ VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION
\ VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_EFFICIENCY VEHICLE_BANKING_MIX
\ VEHICLE_BANKING_TIMESCALE VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED
\ VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT VEHICLE_FLAG_HOVER_TERRAIN_ONLY
\ VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY
\ VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY
\ VEHICLE_FLAG_MOUSELOOK_BANK VEHICLE_FLAG_MOUSELOOK_STEER
\ VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_HOVER_EFFICIENCY VEHICLE_HOVER_HEIGHT
\ VEHICLE_HOVER_TIMESCALE VEHICLE_LINEAR_DEFLECTION_EFFICIENCY
\ VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE
\ VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_TIMESCALE
\ VEHICLE_LINEAR_MOTOR_DIRECTION VEHICLE_LINEAR_MOTOR_OFFSET
\ VEHICLE_REFERENCE_FRAME VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON
\ VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED
\ VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY VEHICLE_VERTICAL_ATTRACTION_TIMESCALE
\ ZERO_ROTATION ZERO_VECTOR

" Events
syn keyword lslEvent
\ attach at_rot_target at_target changed collision collision_end collision_start
\ control dataserver email http_response land_collision land_collision_end
\ land_collision_start link_message listen money moving_end moving_start
\ not_at_rot_target no_sensor object_rez on_rez remote_data run_time_permissions
\ sensor state_entry state_exit timer touch touch_end touch_start not_at_target

" Functions
syn keyword lslFunction
\ llAbs llAcos llAddToLandBanList llAddToLandPassList llAdjustSoundVolume
\ llAllowInventoryDrop llAngleBetween llApplyImpulse llApplyRotationalImpulse
\ llAsin llAtan2 llAttachToAvatar llAvatarOnSitTarget llAxes2Rot llAxisAngle2Rot
\ llBase64ToInteger llBase64ToString llBreakAllLinks llBreakLink llCSV2List
\ llCeil llClearCameraParams llCloseRemoteDataChannel llCloud llCollisionFilter
\ llCollisionSound llCollisionSprite llCos llCreateLink llDeleteSubList
\ llDeleteSubString llDetachFromAvatar llDetectedGrab llDetectedGroup
\ llDetectedKey llDetectedLinkNumber llDetectedName llDetectedOwner
\ llDetectedPos llDetectedRot llDetectedType llDetectedVel llDialog llDie
\ llDumpList2String llEdgeOfWorld llEjectFromLand llEmail llEscapeURL
\ llEuler2Rot llFabs llFloor llForceMouselook llFrand llGetAccel llGetAgentInfo
\ llGetAgentSize llGetAlpha llGetAndResetTime llGetAnimation llGetAnimationList
\ llGetAttached llGetBoundingBox llGetCameraPos llGetCameraRot llGetCenterOfMass
\ llGetColor llGetCreator llGetDate llGetEnergy llGetForce llGetFreeMemory
\ llGetGMTclock llGetGeometricCenter llGetInventoryCreator llGetInventoryKey
\ llGetInventoryName llGetInventoryNumber llGetInventoryPermMask
\ llGetInventoryType llGetKey llGetLandOwnerAt llGetLinkKey llGetLinkName
\ llGetLinkNumber llGetListEntryType llGetListLength llGetLocalPos llGetLocalRot
\ llGetMass llGetNextEmail llGetNotecardLine llGetNumberOfNotecardLines
\ llGetNumberOfPrims llGetNumberOfSides llGetObjectDesc llGetObjectDetails
\ llGetObjectMass llGetObjectName llGetObjectPermMask llGetObjectPrimCount
\ llGetOmega llGetOwner llGetOwnerKey llGetParcelDetails llGetParcelFlags
\ llGetParcelMaxPrims llGetParcelPrimCount llGetParcelPrimOwners
\ llGetPermissions llGetPermissionsKey llGetPos llGetPrimitiveParams
\ llGetRegionCorner llGetRegionFPS llGetRegionFlags llGetRegionName
\ llGetRegionTimeDilation llGetRootPosition llGetRootRotation llGetRot
\ llGetScale llGetScriptName llGetScriptState llGetSimulatorHostname
\ llGetStartParameter llGetStatus llGetSubString llGetSunDirection llGetTexture
\ llGetTextureOffset llGetTextureRot llGetTextureScale llGetTime llGetTimeOfDay
\ llGetTimestamp llGetTorque llGetUnixTime llGetVel llGetWallclock
\ llGiveInventory llGiveInventoryList llGiveMoney llGodLikeRezObject llGround
\ llGroundContour llGroundNormal llGroundRepel llGroundSlope llHTTPRequest
\ llInsertString llInstantMessage llIntegerToBase64 llKey2Name llList2CSV
\ llList2Float llList2Integer llList2Key llList2List llList2ListStrided
\ llList2Rot llList2String llList2Vector llListFindList llListInsertList
\ llListRandomize llListReplaceList llListSort llListStatistics llListen
\ llListenControl llListenRemove llLoadURL llLog llLog10 llLookAt llLoopSound
\ llLoopSoundMaster llLoopSoundSlave llMD5String llMakeExplosion llMakeFire
\ llMakeFountain llMakeSmoke llMapDestination llMessageLinked llMinEventDelay
\ llModPow llModifyLand llMoveToTarget llOffsetTexture llOpenRemoteDataChannel
\ llOverMyLand llOwnerSay llParcelMediaCommandList llParcelMediaQuery
\ llParseString2List llParseStringKeepNulls llParticleSystem llPassCollisions
\ llPassTouches llPlaySound llPlaySoundSlave llPointAt llPow llPreloadSound
\ llPushObject llRefreshPrimURL llRegionSay llReleaseCamera llReleaseControls
\ llRemoteDataReply llRemoteDataSetRegion llRemoteLoadScript
\ llRemoteLoadScriptPin llRemoveFromLandBanList llRemoveFromLandPassList
\ llRemoveInventory llRemoveVehicleFlags llRequestAgentData
\ llRequestInventoryData llRequestPermissions llRequestSimulatorData
\ llResetLandBanList llResetLandPassList llResetOtherScript llResetScript
\ llResetTime llRezAtRoot llRezObject llRot2Angle llRot2Axis llRot2Euler
\ llRot2Fwd llRot2Left llRot2Up llRotBetween llRotLookAt llRotTarget
\ llRotTargetRemove llRotateTexture llRound llSameGroup llSay llScaleTexture
\ llScriptDanger llSendRemoteData llSensor llSensorRemove llSensorRepeat
\ llSetAlpha llSetBuoyancy llSetCameraAtOffset llSetCameraEyeOffset
\ llSetCameraParams llSetClickAction llSetColor llSetDamage llSetForce
\ llSetForceAndTorque llSetHoverHeight llSetInventoryPermMask llSetLinkAlpha
\ llSetLinkColor llSetLinkPrimitiveParams llSetLinkTexture llSetLocalRot
\ llSetObjectDesc llSetObjectName llSetObjectPermMask llSetParcelMusicURL
\ llSetPayPrice llSetPos llSetPrimURL llSetPrimitiveParams
\ llSetRemoteScriptAccessPin llSetRot llSetScale llSetScriptState llSetSitText
\ llSetSoundQueueing llSetSoundRadius llSetStatus llSetText llSetTexture
\ llSetTextureAnim llSetTimerEvent llSetTorque llSetTouchText llSetVehicleFlags
\ llSetVehicleFloatParam llSetVehicleRotationParam llSetVehicleType
\ llSetVehicleVectorParam llShout llSin llSitTarget llSleep llSound
\ llSoundPreload llSqrt llStartAnimation llStopAnimation llStopHover
\ llStopLookAt llStopMoveToTarget llStopPointAt llStopSound llStringLength
\ llStringToBase64 llStringTrim llSubStringIndex llTakeCamera llTakeControls
\ llTan llTarget llTargetOmega llTargetRemove llTeleportAgentHome llToLower
\ llToUpper llTriggerSound llTriggerSoundLimited llUnSit llUnescapeURL llVecDist
\ llVecMag llVecNorm llVolumeDetect llWater llWhisper llWind llXorBase64Strings
\ llXorBase64StringsCorrect

" Operators
syn match lslOperator +[-!%&*+/<=>^|~]+ display

" Numbers
syn match lslNumber +-\=\%(\<\d\+\|\%(\<\d\+\)\=\.\d\+\)\%([Ee][-+]\=\d\+\)\=\>\|\<0x\x\+\>+ display

" Vectors and rotations
syn match lslVectorRot +<[-\t +.0-9A-Za-z_]\+\%(,[-\t +.0-9A-Za-z_]\+\)\{2,3}>+ contains=lslNumber display

" Vector and rotation properties
syn match lslProperty +\.\@<=[sxyz]\>+ display

" Strings
syn region lslString start=+"+ skip=+\\.+ end=+"+ contains=lslSpecialChar,@Spell
syn match lslSpecialChar +\\.+ contained display

" Keys
syn match lslKey +"\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}"+ display

" Parentheses, braces and brackets
syn match lslBlock +[][(){}]+ display

" Typecast operators
syn match lslTypecast +(\%(float\|integer\|key\|list\|quaternion\|rotation\|string\|vector\))+ contains=lslType display

" Comments
syn match lslComment +//.*+ contains=@Spell

" Define the default highlighting.
hi def link lslKeyword      Keyword
hi def link lslType         Type
hi def link lslLabel        Label
hi def link lslConstant     Constant
hi def link lslEvent        PreProc
hi def link lslFunction     Function
hi def link lslOperator     Operator
hi def link lslNumber       Number
hi def link lslVectorRot    Special
hi def link lslProperty     Identifier
hi def link lslString       String
hi def link lslSpecialChar  SpecialChar
hi def link lslKey          Special
hi def link lslBlock        Special
hi def link lslTypecast     Operator
hi def link lslComment      Comment

let b:current_syntax = "lsl"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: ts=8
PK�j�Z�Z��77vim80/syntax/2html.vimnu�[���" Vim syntax support file
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2015 Sep 08
"
" Additional contributors:
"
"             Original by Bram Moolenaar <Bram@vim.org>
"             Modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
"             XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>
"             Made w3 compliant by Edd Barrett <vext01@gmail.com>
"             Added html_font. Edd Barrett <vext01@gmail.com>
"             Progress bar based off code from "progressbar widget" plugin by
"               Andreas Politz, heavily modified:
"               http://www.vim.org/scripts/script.php?script_id=2006
"
"             See Mercurial change logs for more!

" Transform a file into HTML, using the current syntax highlighting.

" this file uses line continuations
let s:cpo_sav = &cpo
let s:ls  = &ls
set cpo&vim

let s:end=line('$')

" Font
if exists("g:html_font")
  if type(g:html_font) == type([])
    let s:htmlfont = "'". join(g:html_font,"','") . "', monospace"
  else
    let s:htmlfont = "'". g:html_font . "', monospace"
  endif
else
  let s:htmlfont = "monospace"
endif

let s:settings = tohtml#GetUserSettings()

if !exists('s:FOLDED_ID')
  let s:FOLDED_ID  = hlID("Folded")     | lockvar s:FOLDED_ID
  let s:FOLD_C_ID  = hlID("FoldColumn") | lockvar s:FOLD_C_ID
  let s:LINENR_ID  = hlID('LineNr')     | lockvar s:LINENR_ID
  let s:DIFF_D_ID  = hlID("DiffDelete") | lockvar s:DIFF_D_ID
  let s:DIFF_A_ID  = hlID("DiffAdd")    | lockvar s:DIFF_A_ID
  let s:DIFF_C_ID  = hlID("DiffChange") | lockvar s:DIFF_C_ID
  let s:DIFF_T_ID  = hlID("DiffText")   | lockvar s:DIFF_T_ID
  let s:CONCEAL_ID = hlID('Conceal')    | lockvar s:CONCEAL_ID
endif

" Whitespace
if s:settings.pre_wrap
  let s:whitespace = "white-space: pre-wrap; "
else
  let s:whitespace = ""
endif

if !empty(s:settings.prevent_copy)
  if s:settings.no_invalid
    " User has decided they don't want invalid markup. Still works in
    " OpenOffice, and for text editors, but when pasting into Microsoft Word the
    " input elements get pasted too and they cannot be deleted (at least not
    " easily).
    let s:unselInputType = ""
  else
    " Prevent from copy-pasting the input elements into Microsoft Word where
    " they cannot be deleted easily by deliberately inserting invalid markup.
    let s:unselInputType = " type='invalid_input_type'"
  endif
endif

" When not in gui we can only guess the colors.
" TODO - is this true anymore?
if has("gui_running")
  let s:whatterm = "gui"
else
  let s:whatterm = "cterm"
  if &t_Co == 8
    let s:cterm_color = {
	    \   0: "#808080", 1: "#ff6060", 2: "#00ff00", 3: "#ffff00",
	    \   4: "#8080ff", 5: "#ff40ff", 6: "#00ffff", 7: "#ffffff"
	    \ }
  else
    let s:cterm_color = {
	    \   0: "#000000", 1: "#c00000", 2: "#008000", 3: "#804000", 
	    \   4: "#0000c0", 5: "#c000c0", 6: "#008080", 7: "#c0c0c0", 
	    \   8: "#808080", 9: "#ff6060", 10: "#00ff00", 11: "#ffff00",
	    \   12: "#8080ff", 13: "#ff40ff", 14: "#00ffff", 15: "#ffffff"
	    \ }

    " Colors for 88 and 256 come from xterm.
    if &t_Co == 88
      call extend(s:cterm_color, {
	    \   16: "#000000", 17: "#00008b", 18: "#0000cd", 19: "#0000ff",
	    \   20: "#008b00", 21: "#008b8b", 22: "#008bcd", 23: "#008bff",
	    \   24: "#00cd00", 25: "#00cd8b", 26: "#00cdcd", 27: "#00cdff",
	    \   28: "#00ff00", 29: "#00ff8b", 30: "#00ffcd", 31: "#00ffff",
	    \   32: "#8b0000", 33: "#8b008b", 34: "#8b00cd", 35: "#8b00ff",
	    \   36: "#8b8b00", 37: "#8b8b8b", 38: "#8b8bcd", 39: "#8b8bff",
	    \   40: "#8bcd00", 41: "#8bcd8b", 42: "#8bcdcd", 43: "#8bcdff",
	    \   44: "#8bff00", 45: "#8bff8b", 46: "#8bffcd", 47: "#8bffff",
	    \   48: "#cd0000", 49: "#cd008b", 50: "#cd00cd", 51: "#cd00ff",
	    \   52: "#cd8b00", 53: "#cd8b8b", 54: "#cd8bcd", 55: "#cd8bff",
	    \   56: "#cdcd00", 57: "#cdcd8b", 58: "#cdcdcd", 59: "#cdcdff",
	    \   60: "#cdff00", 61: "#cdff8b", 62: "#cdffcd", 63: "#cdffff",
	    \   64: "#ff0000"
	    \ })
      call extend(s:cterm_color, {
	    \   65: "#ff008b", 66: "#ff00cd", 67: "#ff00ff", 68: "#ff8b00",
	    \   69: "#ff8b8b", 70: "#ff8bcd", 71: "#ff8bff", 72: "#ffcd00",
	    \   73: "#ffcd8b", 74: "#ffcdcd", 75: "#ffcdff", 76: "#ffff00",
	    \   77: "#ffff8b", 78: "#ffffcd", 79: "#ffffff", 80: "#2e2e2e",
	    \   81: "#5c5c5c", 82: "#737373", 83: "#8b8b8b", 84: "#a2a2a2",
	    \   85: "#b9b9b9", 86: "#d0d0d0", 87: "#e7e7e7"
	    \ })
    elseif &t_Co == 256
      call extend(s:cterm_color, {
	    \   16: "#000000", 17: "#00005f", 18: "#000087", 19: "#0000af",
	    \   20: "#0000d7", 21: "#0000ff", 22: "#005f00", 23: "#005f5f",
	    \   24: "#005f87", 25: "#005faf", 26: "#005fd7", 27: "#005fff",
	    \   28: "#008700", 29: "#00875f", 30: "#008787", 31: "#0087af",
	    \   32: "#0087d7", 33: "#0087ff", 34: "#00af00", 35: "#00af5f",
	    \   36: "#00af87", 37: "#00afaf", 38: "#00afd7", 39: "#00afff",
	    \   40: "#00d700", 41: "#00d75f", 42: "#00d787", 43: "#00d7af",
	    \   44: "#00d7d7", 45: "#00d7ff", 46: "#00ff00", 47: "#00ff5f",
	    \   48: "#00ff87", 49: "#00ffaf", 50: "#00ffd7", 51: "#00ffff",
	    \   52: "#5f0000", 53: "#5f005f", 54: "#5f0087", 55: "#5f00af",
	    \   56: "#5f00d7", 57: "#5f00ff", 58: "#5f5f00", 59: "#5f5f5f",
	    \   60: "#5f5f87", 61: "#5f5faf", 62: "#5f5fd7", 63: "#5f5fff",
	    \   64: "#5f8700"
	    \ })
      call extend(s:cterm_color, {
	    \   65: "#5f875f", 66: "#5f8787", 67: "#5f87af", 68: "#5f87d7",
	    \   69: "#5f87ff", 70: "#5faf00", 71: "#5faf5f", 72: "#5faf87",
	    \   73: "#5fafaf", 74: "#5fafd7", 75: "#5fafff", 76: "#5fd700",
	    \   77: "#5fd75f", 78: "#5fd787", 79: "#5fd7af", 80: "#5fd7d7",
	    \   81: "#5fd7ff", 82: "#5fff00", 83: "#5fff5f", 84: "#5fff87",
	    \   85: "#5fffaf", 86: "#5fffd7", 87: "#5fffff", 88: "#870000",
	    \   89: "#87005f", 90: "#870087", 91: "#8700af", 92: "#8700d7",
	    \   93: "#8700ff", 94: "#875f00", 95: "#875f5f", 96: "#875f87",
	    \   97: "#875faf", 98: "#875fd7", 99: "#875fff", 100: "#878700",
	    \   101: "#87875f", 102: "#878787", 103: "#8787af", 104: "#8787d7",
	    \   105: "#8787ff", 106: "#87af00", 107: "#87af5f", 108: "#87af87",
	    \   109: "#87afaf", 110: "#87afd7", 111: "#87afff", 112: "#87d700"
	    \ })
      call extend(s:cterm_color, {
	    \   113: "#87d75f", 114: "#87d787", 115: "#87d7af", 116: "#87d7d7",
	    \   117: "#87d7ff", 118: "#87ff00", 119: "#87ff5f", 120: "#87ff87",
	    \   121: "#87ffaf", 122: "#87ffd7", 123: "#87ffff", 124: "#af0000",
	    \   125: "#af005f", 126: "#af0087", 127: "#af00af", 128: "#af00d7",
	    \   129: "#af00ff", 130: "#af5f00", 131: "#af5f5f", 132: "#af5f87",
	    \   133: "#af5faf", 134: "#af5fd7", 135: "#af5fff", 136: "#af8700",
	    \   137: "#af875f", 138: "#af8787", 139: "#af87af", 140: "#af87d7",
	    \   141: "#af87ff", 142: "#afaf00", 143: "#afaf5f", 144: "#afaf87",
	    \   145: "#afafaf", 146: "#afafd7", 147: "#afafff", 148: "#afd700",
	    \   149: "#afd75f", 150: "#afd787", 151: "#afd7af", 152: "#afd7d7",
	    \   153: "#afd7ff", 154: "#afff00", 155: "#afff5f", 156: "#afff87",
	    \   157: "#afffaf", 158: "#afffd7"
	    \ })
      call extend(s:cterm_color, {
	    \   159: "#afffff", 160: "#d70000", 161: "#d7005f", 162: "#d70087",
	    \   163: "#d700af", 164: "#d700d7", 165: "#d700ff", 166: "#d75f00",
	    \   167: "#d75f5f", 168: "#d75f87", 169: "#d75faf", 170: "#d75fd7",
	    \   171: "#d75fff", 172: "#d78700", 173: "#d7875f", 174: "#d78787",
	    \   175: "#d787af", 176: "#d787d7", 177: "#d787ff", 178: "#d7af00",
	    \   179: "#d7af5f", 180: "#d7af87", 181: "#d7afaf", 182: "#d7afd7",
	    \   183: "#d7afff", 184: "#d7d700", 185: "#d7d75f", 186: "#d7d787",
	    \   187: "#d7d7af", 188: "#d7d7d7", 189: "#d7d7ff", 190: "#d7ff00",
	    \   191: "#d7ff5f", 192: "#d7ff87", 193: "#d7ffaf", 194: "#d7ffd7",
	    \   195: "#d7ffff", 196: "#ff0000", 197: "#ff005f", 198: "#ff0087",
	    \   199: "#ff00af", 200: "#ff00d7", 201: "#ff00ff", 202: "#ff5f00",
	    \   203: "#ff5f5f", 204: "#ff5f87"
	    \ })
      call extend(s:cterm_color, {
	    \   205: "#ff5faf", 206: "#ff5fd7", 207: "#ff5fff", 208: "#ff8700",
	    \   209: "#ff875f", 210: "#ff8787", 211: "#ff87af", 212: "#ff87d7",
	    \   213: "#ff87ff", 214: "#ffaf00", 215: "#ffaf5f", 216: "#ffaf87",
	    \   217: "#ffafaf", 218: "#ffafd7", 219: "#ffafff", 220: "#ffd700",
	    \   221: "#ffd75f", 222: "#ffd787", 223: "#ffd7af", 224: "#ffd7d7",
	    \   225: "#ffd7ff", 226: "#ffff00", 227: "#ffff5f", 228: "#ffff87",
	    \   229: "#ffffaf", 230: "#ffffd7", 231: "#ffffff", 232: "#080808",
	    \   233: "#121212", 234: "#1c1c1c", 235: "#262626", 236: "#303030",
	    \   237: "#3a3a3a", 238: "#444444", 239: "#4e4e4e", 240: "#585858",
	    \   241: "#626262", 242: "#6c6c6c", 243: "#767676", 244: "#808080",
	    \   245: "#8a8a8a", 246: "#949494", 247: "#9e9e9e", 248: "#a8a8a8",
	    \   249: "#b2b2b2", 250: "#bcbcbc", 251: "#c6c6c6", 252: "#d0d0d0",
	    \   253: "#dadada", 254: "#e4e4e4", 255: "#eeeeee"
	    \ })
    endif
  endif
endif

" Return good color specification: in GUI no transformation is done, in
" terminal return RGB values of known colors and empty string for unknown
if s:whatterm == "gui"
  function! s:HtmlColor(color)
    return a:color
  endfun
else
  function! s:HtmlColor(color)
    if has_key(s:cterm_color, a:color)
      return s:cterm_color[a:color]
    else
      return ""
    endif
  endfun
endif

" Find out the background and foreground color for use later
let s:fgc = s:HtmlColor(synIDattr(hlID("Normal"), "fg#", s:whatterm))
let s:bgc = s:HtmlColor(synIDattr(hlID("Normal"), "bg#", s:whatterm))
if s:fgc == ""
  let s:fgc = ( &background == "dark" ? "#ffffff" : "#000000" )
endif
if s:bgc == ""
  let s:bgc = ( &background == "dark" ? "#000000" : "#ffffff" )
endif

if !s:settings.use_css
  " Return opening HTML tag for given highlight id
  function! s:HtmlOpening(id, extra_attrs)
    let a = ""
    if synIDattr(a:id, "inverse")
      " For inverse, we always must set both colors (and exchange them)
      let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
      let a = a . '<span '.a:extra_attrs.'style="background-color: ' . ( x != "" ? x : s:fgc ) . '">'
      let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
      let a = a . '<font color="' . ( x != "" ? x : s:bgc ) . '">'
    else
      let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
      if x != ""
	let a = a . '<span '.a:extra_attrs.'style="background-color: ' . x . '">'
      elseif !empty(a:extra_attrs)
	let a = a . '<span '.a:extra_attrs.'>'
      endif
      let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
      if x != "" | let a = a . '<font color="' . x . '">' | endif
    endif
    if synIDattr(a:id, "bold") | let a = a . "<b>" | endif
    if synIDattr(a:id, "italic") | let a = a . "<i>" | endif
    if synIDattr(a:id, "underline") | let a = a . "<u>" | endif
    return a
  endfun

  " Return closing HTML tag for given highlight id
  function! s:HtmlClosing(id, has_extra_attrs)
    let a = ""
    if synIDattr(a:id, "underline") | let a = a . "</u>" | endif
    if synIDattr(a:id, "italic") | let a = a . "</i>" | endif
    if synIDattr(a:id, "bold") | let a = a . "</b>" | endif
    if synIDattr(a:id, "inverse")
      let a = a . '</font></span>'
    else
      let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
      if x != "" | let a = a . '</font>' | endif
      let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
      if x != "" || a:has_extra_attrs | let a = a . '</span>' | endif
    endif
    return a
  endfun
endif

" Use a different function for formatting based on user options. This way we
" can avoid a lot of logic during the actual execution.
"
" Build the function line by line containing only what is needed for the options
" in use for maximum code sharing with minimal branch logic for greater speed.
"
" Note, 'exec' commands do not recognize line continuations, so must concatenate
" lines rather than continue them.
if s:settings.use_css
  " save CSS to a list of rules to add to the output at the end of processing

  " first, get the style names we need
  let wrapperfunc_lines = [
	\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, make_unselectable, unformatted)',
	\ '',
	\ '  let l:style_name = synIDattr(a:style_id, "name", s:whatterm)'
	\ ]
  if &diff
    let wrapperfunc_lines += [
	\ '  let l:diff_style_name = synIDattr(a:diff_style_id, "name", s:whatterm)']

  " Add normal groups and diff groups to separate lists so we can order them to
  " allow diff highlight to override normal highlight

  " if primary style IS a diff style, grab it from the diff cache instead
  " (always succeeds because we pre-populate it)
  let wrapperfunc_lines += [
	\ '',
	\ '  if a:style_id == s:DIFF_D_ID || a:style_id == s:DIFF_A_ID ||'.
	\ '          a:style_id == s:DIFF_C_ID || a:style_id == s:DIFF_T_ID',
	\ '    let l:saved_style = get(s:diffstylelist,a:style_id)',
	\ '  else'
	\ ]
  endif

  " get primary style info from cache or build it on the fly if not found
  let wrapperfunc_lines += [
	\ '    let l:saved_style = get(s:stylelist,a:style_id)',
	\ '    if type(l:saved_style) == type(0)',
	\ '      unlet l:saved_style',
	\ '      let l:saved_style = s:CSS1(a:style_id)',
	\ '      if l:saved_style != ""',
	\ '        let l:saved_style = "." . l:style_name . " { " . l:saved_style . "}"',
	\ '      endif',
	\ '      let s:stylelist[a:style_id]= l:saved_style',
	\ '    endif'
	\ ]
  if &diff
    let wrapperfunc_lines += [ '  endif' ]
  endif

  " Build the wrapper tags around the text. It turns out that caching these
  " gives pretty much zero performance gain and adds a lot of logic.

  let wrapperfunc_lines += [
	\ '',
	\ '  if l:saved_style == "" && empty(a:extra_attrs)'
	\ ]
  if &diff
    let wrapperfunc_lines += [
	\ '    if a:diff_style_id <= 0'
	\ ]
  endif
  " no surroundings if neither primary nor diff style has any info
  let wrapperfunc_lines += [
	\ '       return a:text'
	\ ]
  if &diff
    " no primary style, but diff style
    let wrapperfunc_lines += [
	\ '     else',
	\ '       return "<span class=\"" .l:diff_style_name . "\">".a:text."</span>"',
	\ '     endif'
	\ ]
  endif
  " open tag for non-empty primary style
  let wrapperfunc_lines += [
	\ '  else']
  " non-empty primary style. handle either empty or non-empty diff style.
  "
  " separate the two classes by a space to apply them both if there is a diff
  " style name, unless the primary style is empty, then just use the diff style
  " name
  let diffstyle =
	  \ (&diff ? '(a:diff_style_id <= 0 ? "" : " ". l:diff_style_name) .'
	  \        : "")
  if s:settings.prevent_copy == ""
    let wrapperfunc_lines += [
	  \ '    return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\">".a:text."</span>"'
	  \ ]
  else

    "
    " Wrap the <input> in a <span> to allow fixing the stupid bug in some fonts
    " which cause browsers to display a 1px gap between lines when these
    " <input>s have a background color (maybe not really a bug, this isn't
    " well-defined)
    "
    " use strwidth, because we care only about how many character boxes are
    " needed to size the input, we don't care how many characters (including
    " separately counted composing chars, from strchars()) or bytes (from
    " len())the string contains. strdisplaywidth() is not needed because none of
    " the unselectable groups can contain tab characters (fold column, fold
    " text, line number).
    "
    " Note, if maxlength property needs to be added in the future, it will need
    " to use strchars(), because HTML specifies that the maxlength parameter
    " uses the number of unique codepoints for its limit.
    let wrapperfunc_lines += [
	  \ '    if a:make_unselectable',
	  \ '      return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\">'.
	  \                '<input'.s:unselInputType.' class=\"" . l:style_name .'.diffstyle.'"\"'.
	  \                 ' value=\"".substitute(a:unformatted,''\s\+$'',"","")."\"'.
	  \                 ' onselect=''this.blur(); return false;'''.
	  \                 ' onmousedown=''this.blur(); return false;'''.
	  \                 ' onclick=''this.blur(); return false;'''.
	  \                 ' readonly=''readonly'''.
	  \                 ' size=\"".strwidth(a:unformatted)."\"'.
	  \                 (s:settings.use_xhtml ? '/' : '').'></span>"',
	  \ '    else',
	  \ '      return "<span ".a:extra_attrs."class=\"" . l:style_name .'. diffstyle .'"\">".a:text."</span>"'
	  \ ]
  endif
  let wrapperfunc_lines += [
	\ '  endif',
	\ 'endfun'
	\ ]
else
  " Non-CSS method just needs the wrapper.
  "
  " Functions used to get opening/closing automatically return null strings if
  " no styles exist.
  if &diff
    let wrapperfunc_lines = [
	  \ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2)',
	  \ '  return s:HtmlOpening(a:style_id, a:extra_attrs).(a:diff_style_id <= 0 ? "" :'.
	  \                                     's:HtmlOpening(a:diff_style_id, "")).a:text.'.
	  \   '(a:diff_style_id <= 0 ? "" : s:HtmlClosing(a:diff_style_id, 0)).s:HtmlClosing(a:style_id, !empty(a:extra_attrs))',
	  \ 'endfun'
	  \ ]
  else
    let wrapperfunc_lines = [
	  \ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2)',
	  \ '  return s:HtmlOpening(a:style_id, a:extra_attrs).a:text.s:HtmlClosing(a:style_id, !empty(a:extra_attrs))',
	  \ 'endfun'
	  \ ]
  endif
endif

" create the function we built line by line above
exec join(wrapperfunc_lines, "\n")

let s:diff_mode = &diff

" Return HTML valid characters enclosed in a span of class style_name with
" unprintable characters expanded and double spaces replaced as necessary.
"
" TODO: eliminate unneeded logic like done for BuildStyleWrapper
function! s:HtmlFormat(text, style_id, diff_style_id, extra_attrs, make_unselectable)
  " Replace unprintable characters
  let unformatted = strtrans(a:text)

  let formatted = unformatted

  " Replace the reserved html characters
  let formatted = substitute(formatted, '&', '\&amp;',  'g')
  let formatted = substitute(formatted, '<', '\&lt;',   'g')
  let formatted = substitute(formatted, '>', '\&gt;',   'g')
  let formatted = substitute(formatted, '"', '\&quot;', 'g')
  " &apos; is not valid in HTML but it is in XHTML, so just use the numeric
  " reference for it instead. Needed because it could appear in quotes
  " especially if unselectable regions is turned on.
  let formatted = substitute(formatted, '"', '\&#0039;', 'g')

  " Replace a "form feed" character with HTML to do a page break
  " TODO: need to prevent this in unselectable areas? Probably it should never
  " BE in an unselectable area...
  let formatted = substitute(formatted, "\x0c", '<hr class="PAGE-BREAK">', 'g')

  " Replace double spaces, leading spaces, and trailing spaces if needed
  if ' ' != s:HtmlSpace
    let formatted = substitute(formatted, '  ', s:HtmlSpace . s:HtmlSpace, 'g')
    let formatted = substitute(formatted, '^ ', s:HtmlSpace, 'g')
    let formatted = substitute(formatted, ' \+$', s:HtmlSpace, 'g')
  endif

  " Enclose in the correct format
  return s:BuildStyleWrapper(a:style_id, a:diff_style_id, a:extra_attrs, formatted, a:make_unselectable, unformatted)
endfun

" set up functions to call HtmlFormat in certain ways based on whether the
" element is supposed to be unselectable or not
if s:settings.prevent_copy =~# 'n'
  if s:settings.number_lines
    if s:settings.line_ids
      function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
	if a:lnr > 0
	  return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.s:settings.id_suffix.'" ', 1)
	else
	  return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
	endif
      endfun
    else
      function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
	return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
      endfun
    endif
  elseif s:settings.line_ids
    " if lines are not being numbered the only reason this function gets called
    " is to put the line IDs on each line; "text" will be emtpy but lnr will
    " always be non-zero, however we don't want to use the <input> because that
    " won't work as nice for empty text
    function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
      return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.s:settings.id_suffix.'" ', 0)
    endfun
  endif
else
  if s:settings.line_ids
    function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
      if a:lnr > 0
	return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.s:settings.id_suffix.'" ', 0)
      else
	return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
      endif
    endfun
  else
    function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
      return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
    endfun
  endif
endif
if s:settings.prevent_copy =~# 'd'
  function! s:HtmlFormat_d(text, style_id, diff_style_id)
    return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
  endfun
else
  function! s:HtmlFormat_d(text, style_id, diff_style_id)
    return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
  endfun
endif
if s:settings.prevent_copy =~# 'f'
  " Note the <input> elements for fill spaces will have a single space for
  " content, to allow active cursor CSS selection to work.
  "
  " Wrap the whole thing in a span for the 1px padding workaround for gaps.
  function! s:FoldColumn_build(char, len, numfill, char2, class, click)
    let l:input_open = "<input readonly='readonly'".s:unselInputType.
	  \ " onselect='this.blur(); return false;'".
	  \ " onmousedown='this.blur(); ".a:click." return false;'".
	  \ " onclick='return false;' size='".
	  \ string(a:len + (empty(a:char2) ? 0 : 1) + a:numfill) .
	  \ "' "
    let l:common_attrs = "class='FoldColumn' value='"
    let l:input_close = (s:settings.use_xhtml ? "' />" : "'>")
    return "<span class='".a:class."'>".
	  \ l:input_open.l:common_attrs.repeat(a:char, a:len).
	  \ (!empty(a:char2) ? a:char2 : "").
	  \ l:input_close . "</span>"
  endfun
  function! s:FoldColumn_fill()
    return s:FoldColumn_build('', s:foldcolumn, 0, '', 'FoldColumn', '')
  endfun
else
  " For normal fold columns, simply space-pad to the desired width (note that
  " the FoldColumn definition includes a whitespace:pre rule)
  function! s:FoldColumn_build(char, len, numfill, char2, class, click)
    return "<a href='#' class='".a:class."' onclick='".a:click."'>".
	  \ repeat(a:char, a:len).a:char2.repeat(' ', a:numfill).
	  \ "</a>"
  endfun
  function! s:FoldColumn_fill()
    return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 0)
  endfun
endif
if s:settings.prevent_copy =~# 't'
  " put an extra empty span at the end for dynamic folds, so the linebreak can
  " be surrounded. Otherwise do it as normal.
  "
  " TODO: isn't there a better way to do this, than placing it here and using a
  " substitute later?
  if s:settings.dynamic_folds
    function! s:HtmlFormat_t(text, style_id, diff_style_id)
      return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) .
	    \ s:HtmlFormat("", a:style_id, 0, "", 0)
    endfun
  else
    function! s:HtmlFormat_t(text, style_id, diff_style_id)
      return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
    endfun
  endif
else
  function! s:HtmlFormat_t(text, style_id, diff_style_id)
    return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
  endfun
endif

" Return CSS style describing given highlight id (can be empty)
function! s:CSS1(id)
  let a = ""
  if synIDattr(a:id, "inverse")
    " For inverse, we always must set both colors (and exchange them)
    let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
    let a = a . "color: " . ( x != "" ? x : s:bgc ) . "; "
    let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
    let a = a . "background-color: " . ( x != "" ? x : s:fgc ) . "; "
  else
    let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
    if x != "" | let a = a . "color: " . x . "; " | endif
    let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
    if x != ""
      let a = a . "background-color: " . x . "; "
      " stupid hack because almost every browser seems to have at least one font
      " which shows 1px gaps between lines which have background
      let a = a . "padding-bottom: 1px; "
    elseif (a:id == s:FOLDED_ID || a:id == s:LINENR_ID || a:id == s:FOLD_C_ID) && !empty(s:settings.prevent_copy)
      " input elements default to a different color than the rest of the page
      let a = a . "background-color: " . s:bgc . "; "
    endif
  endif
  if synIDattr(a:id, "bold") | let a = a . "font-weight: bold; " | endif
  if synIDattr(a:id, "italic") | let a = a . "font-style: italic; " | endif
  if synIDattr(a:id, "underline") | let a = a . "text-decoration: underline; " | endif
  return a
endfun

if s:settings.dynamic_folds
  " compares two folds as stored in our list of folds
  " A fold is "less" than another if it starts at an earlier line number,
  " or ends at a later line number, ties broken by fold level
  function! s:FoldCompare(f1, f2)
    if a:f1.firstline != a:f2.firstline
      " put it before if it starts earlier
      return a:f1.firstline - a:f2.firstline
    elseif a:f1.lastline != a:f2.lastline
      " put it before if it ends later
      return a:f2.lastline - a:f1.lastline
    else
      " if folds begin and end on the same lines, put lowest fold level first
      return a:f1.level - a:f2.level
    endif
  endfunction

endif


" Set some options to make it work faster.
" Don't report changes for :substitute, there will be many of them.
" Don't change other windows; turn off scroll bind temporarily
let s:old_title = &title
let s:old_icon = &icon
let s:old_et = &l:et
let s:old_bind = &l:scrollbind
let s:old_report = &report
let s:old_search = @/
let s:old_more = &more
set notitle noicon
setlocal et
set nomore
set report=1000000
setlocal noscrollbind

if exists(':ownsyntax') && exists('w:current_syntax')
  let s:current_syntax = w:current_syntax
elseif exists('b:current_syntax')
  let s:current_syntax = b:current_syntax
else
  let s:current_syntax = 'none'
endif

if s:current_syntax == ''
  let s:current_syntax = 'none'
endif

" Split window to create a buffer with the HTML file.
let s:orgbufnr = winbufnr(0)
let s:origwin_stl = &l:stl
if expand("%") == ""
  if exists('g:html_diff_win_num')
    exec 'new Untitled_win'.g:html_diff_win_num.'.'.(s:settings.use_xhtml ? 'x' : '').'html'
  else
    exec 'new Untitled.'.(s:settings.use_xhtml ? 'x' : '').'html'
  endif
else
  exec 'new %.'.(s:settings.use_xhtml ? 'x' : '').'html'
endif

" Resize the new window to very small in order to make it draw faster
let s:old_winheight = winheight(0)
let s:old_winfixheight = &l:winfixheight
if s:old_winheight > 2
  resize 1 " leave enough room to view one line at a time
  norm! G
  norm! zt
endif
setlocal winfixheight

let s:newwin_stl = &l:stl

" on the new window, set the least time-consuming fold method
let s:old_fen = &foldenable
setlocal foldmethod=manual
setlocal nofoldenable

let s:newwin = winnr()
let s:orgwin = bufwinnr(s:orgbufnr)

setlocal modifiable
%d
let s:old_paste = &paste
set paste
let s:old_magic = &magic
set magic

" set the fileencoding to match the charset we'll be using
let &l:fileencoding=s:settings.vim_encoding

" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
" order mark is highly recommend on the web when using multibyte encodings. But,
" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
" determine when it is actually inserted.
if s:settings.vim_encoding == 'utf-8'
  setlocal nobomb
else
  setlocal bomb
endif

let s:lines = []

if s:settings.use_xhtml
  if s:settings.encoding != ""
    call add(s:lines, "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>")
  else
    call add(s:lines, "<?xml version=\"1.0\"?>")
  endif
  let s:tag_close = ' />'
else
  let s:tag_close = '>'
endif

let s:HtmlSpace = ' '
let s:LeadingSpace = ' '
let s:HtmlEndline = ''
if s:settings.no_pre
  let s:HtmlEndline = '<br' . s:tag_close
  let s:LeadingSpace = s:settings.use_xhtml ? '&#160;' : '&nbsp;'
  let s:HtmlSpace = '\' . s:LeadingSpace
endif

" HTML header, with the title and generator ;-). Left free space for the CSS,
" to be filled at the end.
call extend(s:lines, [
      \ "<html>",
      \ "<head>"])
" include encoding as close to the top as possible, but only if not already
" contained in XML information (to avoid haggling over content type)
if s:settings.encoding != "" && !s:settings.use_xhtml
  call add(s:lines, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . s:tag_close)
endif
call extend(s:lines, [
      \ ("<title>".expand("%:p:~")."</title>"),
      \ ("<meta name=\"Generator\" content=\"Vim/".v:version/100.".".v:version%100.'"'.s:tag_close),
      \ ("<meta name=\"plugin-version\" content=\"".g:loaded_2html_plugin.'"'.s:tag_close)
      \ ])
call add(s:lines, '<meta name="syntax" content="'.s:current_syntax.'"'.s:tag_close)
call add(s:lines, '<meta name="settings" content="'.
      \ join(filter(keys(s:settings),'s:settings[v:val]'),',').
      \ ',prevent_copy='.s:settings.prevent_copy.
      \ '"'.s:tag_close)
call add(s:lines, '<meta name="colorscheme" content="'.
      \ (exists('g:colors_name')
      \ ? g:colors_name
      \ : 'none'). '"'.s:tag_close)

if s:settings.use_css
  if s:settings.dynamic_folds
    if s:settings.hover_unfold
      " if we are doing hover_unfold, use css 2 with css 1 fallback for IE6
      call extend(s:lines, [
	    \ "<style type=\"text/css\">",
	    \ s:settings.use_xhtml ? "" : "<!--",
	    \ ".FoldColumn { text-decoration: none; white-space: pre; }",
	    \ "",
	    \ "body * { margin: 0; padding: 0; }", "",
	    \ ".open-fold   > .Folded { display: none;  }",
	    \ ".open-fold   > .fulltext { display: inline; }",
	    \ ".closed-fold > .fulltext { display: none;  }",
	    \ ".closed-fold > .Folded { display: inline; }",
	    \ "",
	    \ ".open-fold   > .toggle-open   { display: none;   }",
	    \ ".open-fold   > .toggle-closed { display: inline; }",
	    \ ".closed-fold > .toggle-open   { display: inline; }",
	    \ ".closed-fold > .toggle-closed { display: none;   }",
	    \ "", "",
	    \ '/* opening a fold while hovering won''t be supported by IE6 and other',
	    \ "similar browsers, but it should fail gracefully. */",
	    \ ".closed-fold:hover > .fulltext { display: inline; }",
	    \ ".closed-fold:hover > .toggle-filler { display: none; }",
	    \ ".closed-fold:hover > .Folded { display: none; }",
	    \ s:settings.use_xhtml ? "" : '-->',
	    \ '</style>'])
      " TODO: IE7 doesn't *actually* support XHTML, maybe we should remove this.
      " But if it's served up as tag soup, maybe the following will work, so
      " leave it in for now.
      call extend(s:lines, [
	    \ "<!--[if lt IE 7]><style type=\"text/css\">",
	    \ ".open-fold   .Folded      { display: none; }",
	    \ ".open-fold   .fulltext      { display: inline; }",
	    \ ".open-fold   .toggle-open   { display: none; }",
	    \ ".closed-fold .toggle-closed { display: inline; }",
	    \ "",
	    \ ".closed-fold .fulltext      { display: none; }",
	    \ ".closed-fold .Folded      { display: inline; }",
	    \ ".closed-fold .toggle-open   { display: inline; }",
	    \ ".closed-fold .toggle-closed { display: none; }",
	    \ "</style>",
	    \ "<![endif]-->",
	    \])
    else
      " if we aren't doing hover_unfold, use CSS 1 only
      call extend(s:lines, [
	    \ "<style type=\"text/css\">",
	    \ s:settings.use_xhtml ? "" :"<!--",
	    \ ".FoldColumn { text-decoration: none; white-space: pre; }",
	    \ ".open-fold   .Folded      { display: none; }",
	    \ ".open-fold   .fulltext      { display: inline; }",
	    \ ".open-fold   .toggle-open   { display: none; }",
	    \ ".closed-fold .toggle-closed { display: inline; }",
	    \ "",
	    \ ".closed-fold .fulltext      { display: none; }",
	    \ ".closed-fold .Folded      { display: inline; }",
	    \ ".closed-fold .toggle-open   { display: inline; }",
	    \ ".closed-fold .toggle-closed { display: none; }",
	    \ s:settings.use_xhtml ? "" : '-->',
	    \ '</style>'
	    \])
    endif
  else
    " if we aren't doing any dynamic folding, no need for any special rules
    call extend(s:lines, [
	  \ "<style type=\"text/css\">",
	  \ s:settings.use_xhtml ? "" : "<!--",
	  \ s:settings.use_xhtml ? "" : '-->',
	  \ "</style>",
	  \])
  endif
endif

" insert script tag; javascript is always needed for the line number
" normalization for URL hashes
call extend(s:lines, [
      \ "",
      \ "<script type='text/javascript'>",
      \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])

" insert javascript to toggle folds open and closed
if s:settings.dynamic_folds
  call extend(s:lines, [
	\ "",
	\ "function toggleFold(objID)",
	\ "{",
	\ "  var fold;",
	\ "  fold = document.getElementById(objID);",
	\ "  if(fold.className == 'closed-fold')",
	\ "  {",
	\ "    fold.className = 'open-fold';",
	\ "  }",
	\ "  else if (fold.className == 'open-fold')",
	\ "  {",
	\ "    fold.className = 'closed-fold';",
	\ "  }",
	\ "}"
	\ ])
endif

if s:settings.line_ids
  " insert javascript to get IDs from line numbers, and to open a fold before
  " jumping to any lines contained therein
  call extend(s:lines, [
	\ "",
	\ "/* function to open any folds containing a jumped-to line before jumping to it */",
	\ "function JumpToLine()",
	\ "{",
	\ "  var lineNum;",
	\ "  lineNum = window.location.hash;",
	\ "  lineNum = lineNum.substr(1); /* strip off '#' */",
	\ "",
	\ "  if (lineNum.indexOf('L') == -1) {",
	\ "    lineNum = 'L'+lineNum;",
	\ "  }",
	\ "  lineElem = document.getElementById(lineNum);"
	\ ])
  if s:settings.dynamic_folds
    call extend(s:lines, [
	  \ "",
	  \ "  /* navigate upwards in the DOM tree to open all folds containing the line */",
	  \ "  var node = lineElem;",
	  \ "  while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
	  \ "  {",
	  \ "    if (node.className == 'closed-fold')",
	  \ "    {",
	  \ "      node.className = 'open-fold';",
	  \ "    }",
	  \ "    node = node.parentNode;",
	  \ "  }",
	  \ ])
  endif
  call extend(s:lines, [
	\ "  /* Always jump to new location even if the line was hidden inside a fold, or",
	\ "   * we corrected the raw number to a line ID.",
	\ "   */",
	\ "  if (lineElem) {",
	\ "    lineElem.scrollIntoView(true);",
	\ "  }",
	\ "  return true;",
	\ "}",
	\ "if ('onhashchange' in window) {",
	\ "  window.onhashchange = JumpToLine;",
	\ "}"
	\ ])
endif

" Small text columns like the foldcolumn and line number column need a weird
" hack to work around Webkit's and (in versions prior to 9) IE's lack of support
" for the 'ch' unit without messing up Opera, which also doesn't support it but
" works anyway.
"
" The problem is that without the 'ch' unit, it is not possible to specify a
" size of an <input> in terms of character widths. Only Opera seems to do the
" "sensible" thing and make the <input> sized to fit exactly as many characters
" as specified by its "size" attribute, but the spec actually says "at least
" wide enough to fit 'size' characters", so the other browsers are technically
" correct as well.
"
" Anyway, this leads to two diffculties:
"   1. The foldcolumn is made up of multiple elements side-by-side with
"      different sizes, each of which has their own extra padding added. Thus, a
"      column made up of one item of size 1 and another of size 2 would not
"      necessarily be equal in size to another line's foldcolumn with a single
"      item of size 3.
"   2. The extra padding added to the <input> elements adds up to make the
"      foldcolumn and line number column too wide, especially in Webkit
"      browsers.
"
" So, the full workaround is:
"   1. Define a default size in em, equal to the number of characters in the
"      input element, in case javascript is disabled and the browser does not
"      support the 'ch' unit. Unfortunately this makes Opera no longer work
"      properly without javascript. 1em per character is much too wide but it
"      looks better in webkit browsers than unaligned columns.
"   2. Insert the following javascript to run at page load, which checks for the
"      width of a single character (in an extraneous page element inserted
"      before the page title, and set to hidden) and compares it to the width of
"      another extra <input> element with only one character. If the width
"      matches, the script does nothing more, but if not, it will figure out the
"      fraction of an em unit which would correspond with a ch unit if there
"      were one, and set the containing element (<pre> or <div>) to a class with
"      pre-defined rules which is closest to that fraction of an em. Rules are
"      defined from 0.05 em to 1em per ch.
if !empty(s:settings.prevent_copy)
  call extend(s:lines, [
	\ '',
	\ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
	\ 'function FixCharWidth() {',
	\ '  /* get the hidden element which gives the width of a single character */',
	\ '  var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
	\ '  /* get all input elements, we''ll filter on class later */',
	\ '  var inputTags = document.getElementsByTagName("input");',
	\ '  var ratio = 5;',
	\ '  var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
	\ '  var emWidth = document.getElementById("oneEmWidth").clientWidth;',
	\ '  if (inputWidth > goodWidth) {',
	\ '    while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
	\ '      ratio += 5;',
	\ '    }',
	\ '    document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;',
	\ '  }',
	\ '}'
	\ ])
endif

" insert script closing tag
call extend(s:lines, [
      \ '',
      \ s:settings.use_xhtml ? '//]]>' : '-->',
      \ "</script>"
      \ ])

call extend(s:lines, ["</head>"])
if !empty(s:settings.prevent_copy)
  call extend(s:lines,
	\ ["<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>",
	\ "<!-- hidden divs used by javascript to get the width of a char -->",
	\ "<div id='oneCharWidth'>0</div>",
	\ "<div id='oneInputWidth'><input size='1' value='0'".s:tag_close."</div>",
	\ "<div id='oneEmWidth' style='width: 1em;'></div>"
	\ ])
else
  call extend(s:lines, ["<body".(s:settings.line_ids ? " onload='JumpToLine();'" : "").">"])
endif
if s:settings.no_pre
  " if we're not using CSS we use a font tag which can't have a div inside
  if s:settings.use_css
    call extend(s:lines, ["<div id='vimCodeElement".s:settings.id_suffix."'>"])
  endif
else
  call extend(s:lines, ["<pre id='vimCodeElement".s:settings.id_suffix."'>"])
endif

exe s:orgwin . "wincmd w"

" caches of style data
" initialize to include line numbers if using them
if s:settings.number_lines
  let s:stylelist = { s:LINENR_ID : ".LineNr { " . s:CSS1( s:LINENR_ID ) . "}" }
else
  let s:stylelist = {}
endif
let s:diffstylelist = {
      \   s:DIFF_A_ID : ".DiffAdd { " . s:CSS1( s:DIFF_A_ID ) . "}",
      \   s:DIFF_C_ID : ".DiffChange { " . s:CSS1( s:DIFF_C_ID ) . "}",
      \   s:DIFF_D_ID : ".DiffDelete { " . s:CSS1( s:DIFF_D_ID ) . "}",
      \   s:DIFF_T_ID : ".DiffText { " . s:CSS1( s:DIFF_T_ID ) . "}"
      \ }

" set up progress bar in the status line
if !s:settings.no_progress
  " ProgressBar Indicator
  let s:progressbar={}

  " Progessbar specific functions
  func! s:ProgressBar(title, max_value, winnr)
    let pgb=copy(s:progressbar)
    let pgb.title = a:title.' '
    let pgb.max_value = a:max_value
    let pgb.winnr = a:winnr
    let pgb.cur_value = 0
    let pgb.items = { 'title'   : { 'color' : 'Statusline' },
	  \'bar'     : { 'color' : 'Statusline' , 'fillcolor' : 'DiffDelete' , 'bg' : 'Statusline' } ,
	  \'counter' : { 'color' : 'Statusline' } }
    let pgb.last_value = 0
    let pgb.needs_redraw = 0
    " Note that you must use len(split) instead of len() if you want to use 
    " unicode in title.
    "
    " Subtract 3 for spacing around the title.
    " Subtract 4 for the percentage display.
    " Subtract 2 for spacing before this.
    " Subtract 2 more for the '|' on either side of the progress bar
    let pgb.subtractedlen=len(split(pgb.title, '\zs'))+3+4+2+2
    let pgb.max_len = 0
    set laststatus=2
    return pgb
  endfun

  " Function: progressbar.calculate_ticks() {{{1
  func! s:progressbar.calculate_ticks(pb_len)
    if a:pb_len<=0
      let pb_len = 100
    else
      let pb_len = a:pb_len
    endif
    let self.progress_ticks = map(range(pb_len+1), "v:val * self.max_value / pb_len")
  endfun

  "Function: progressbar.paint()
  func! s:progressbar.paint()
    " Recalculate widths.
    let max_len = winwidth(self.winnr)
    let pb_len = 0
    " always true on first call because of initial value of self.max_len
    if max_len != self.max_len
      let self.max_len = max_len

      " Progressbar length
      let pb_len = max_len - self.subtractedlen

      call self.calculate_ticks(pb_len)

      let self.needs_redraw = 1
      let cur_value = 0
      let self.pb_len = pb_len
    else
      " start searching at the last found index to make the search for the
      " appropriate tick value normally take 0 or 1 comparisons
      let cur_value = self.last_value
      let pb_len = self.pb_len
    endif

    let cur_val_max = pb_len > 0 ? pb_len : 100

    " find the current progress bar position based on precalculated thresholds
    while cur_value < cur_val_max && self.cur_value > self.progress_ticks[cur_value]
      let cur_value += 1
    endwhile

    " update progress bar
    if self.last_value != cur_value || self.needs_redraw || self.cur_value == self.max_value
      let self.needs_redraw = 1
      let self.last_value = cur_value

      let t_color  = self.items.title.color
      let b_fcolor = self.items.bar.fillcolor
      let b_color  = self.items.bar.color
      let c_color  = self.items.counter.color

      let stl =  "%#".t_color."#%-( ".self.title." %)".
	    \"%#".b_color."#".
	    \(pb_len>0 ?
	    \	('|%#'.b_fcolor."#%-(".repeat(" ",cur_value)."%)".
	    \	 '%#'.b_color."#".repeat(" ",pb_len-cur_value)."|"):
	    \	('')).
	    \"%=%#".c_color."#%( ".printf("%3.d ",100*self.cur_value/self.max_value)."%% %)"
      call setwinvar(self.winnr, '&stl', stl)
    endif
  endfun

  func! s:progressbar.incr( ... )
    let self.cur_value += (a:0 ? a:1 : 1)
    " if we were making a general-purpose progress bar, we'd need to limit to a
    " lower limit as well, but since we always increment with a positive value
    " in this script, we only need limit the upper value
    let self.cur_value = (self.cur_value > self.max_value ? self.max_value : self.cur_value)
    call self.paint()
  endfun
  " }}}
  if s:settings.dynamic_folds
    " to process folds we make two passes through each line
    let s:pgb = s:ProgressBar("Processing folds:", line('$')*2, s:orgwin)
  endif
endif

" First do some preprocessing for dynamic folding. Do this for the entire file
" so we don't accidentally start within a closed fold or something.
let s:allfolds = []

if s:settings.dynamic_folds
  let s:lnum = 1
  let s:end = line('$')
  " save the fold text and set it to the default so we can find fold levels
  let s:foldtext_save = &foldtext
  setlocal foldtext&

  " we will set the foldcolumn in the html to the greater of the maximum fold
  " level and the current foldcolumn setting
  let s:foldcolumn = &foldcolumn

  " get all info needed to describe currently closed folds
  while s:lnum <= s:end
    if foldclosed(s:lnum) == s:lnum
      " default fold text has '+-' and then a number of dashes equal to fold
      " level, so subtract 2 from index of first non-dash after the dashes
      " in order to get the fold level of the current fold
      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
      " store fold info for later use
      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
      call add(s:allfolds, s:newfold)
      " open the fold so we can find any contained folds
      execute s:lnum."foldopen"
    else
      if !s:settings.no_progress
	call s:pgb.incr()
	if s:pgb.needs_redraw
	  redrawstatus
	  let s:pgb.needs_redraw = 0
	endif
      endif
      let s:lnum = s:lnum + 1
    endif
  endwhile

  " close all folds to get info for originally open folds
  silent! %foldclose!
  let s:lnum = 1

  " the originally open folds will be all folds we encounter that aren't
  " already in the list of closed folds
  while s:lnum <= s:end
    if foldclosed(s:lnum) == s:lnum
      " default fold text has '+-' and then a number of dashes equal to fold
      " level, so subtract 2 from index of first non-dash after the dashes
      " in order to get the fold level of the current fold
      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
      " only add the fold if we don't already have it
      if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1
	let s:newfold.type = "open-fold"
	call add(s:allfolds, s:newfold)
      endif
      " open the fold so we can find any contained folds
      execute s:lnum."foldopen"
    else
      if !s:settings.no_progress
	call s:pgb.incr()
	if s:pgb.needs_redraw
	  redrawstatus
	  let s:pgb.needs_redraw = 0
	endif
      endif
      let s:lnum = s:lnum + 1
    endif
  endwhile

  " sort the folds so that we only ever need to look at the first item in the
  " list of folds
  call sort(s:allfolds, "s:FoldCompare")

  let &l:foldtext = s:foldtext_save
  unlet s:foldtext_save

  " close all folds again so we can get the fold text as we go
  silent! %foldclose!

  " Go through and remove folds we don't need to (or cannot) process in the
  " current conversion range
  "
  " If a fold is removed which contains other folds, which are included, we need
  " to adjust the level of the included folds as used by the conversion logic
  " (avoiding special cases is good)
  "
  " Note any time we remove a fold, either all of the included folds are in it,
  " or none of them, because we only remove a fold if neither its start nor its
  " end are within the conversion range.
  let leveladjust = 0
  for afold in s:allfolds
    let removed = 0
    if exists("g:html_start_line") && exists("g:html_end_line")
      if afold.firstline < g:html_start_line
	if afold.lastline <= g:html_end_line && afold.lastline >= g:html_start_line
	  " if a fold starts before the range to convert but stops within the
	  " range, we need to include it. Make it start on the first converted
	  " line.
	  let afold.firstline = g:html_start_line
	else
	  " if the fold lies outside the range or the start and stop enclose
	  " the entire range, don't bother parsing it
	  call remove(s:allfolds, index(s:allfolds, afold))
	  let removed = 1
	  if afold.lastline > g:html_end_line
	    let leveladjust += 1
	  endif
	endif
      elseif afold.firstline > g:html_end_line
	" If the entire fold lies outside the range we need to remove it.
	call remove(s:allfolds, index(s:allfolds, afold))
	let removed = 1
      endif
    elseif exists("g:html_start_line")
      if afold.firstline < g:html_start_line
	" if there is no last line, but there is a first line, the end of the
	" fold will always lie within the region of interest, so keep it
	let afold.firstline = g:html_start_line
      endif
    elseif exists("g:html_end_line")
      " if there is no first line we default to the first line in the buffer so
      " the fold start will always be included if the fold itself is included.
      " If however the entire fold lies outside the range we need to remove it.
      if afold.firstline > g:html_end_line
	call remove(s:allfolds, index(s:allfolds, afold))
	let removed = 1
      endif
    endif
    if !removed
      let afold.level -= leveladjust
      if afold.level+1 > s:foldcolumn
	let s:foldcolumn = afold.level+1
      endif
    endif
  endfor

  " if we've removed folds containing the conversion range from processing,
  " getting foldtext as we go won't know to open the removed folds, so the
  " foldtext would be wrong; open them now.
  "
  " Note that only when a start and an end line is specified will a fold
  " containing the current range ever be removed.
  while leveladjust > 0
    exe g:html_start_line."foldopen"
    let leveladjust -= 1
  endwhile
endif

" Now loop over all lines in the original text to convert to html.
" Use html_start_line and html_end_line if they are set.
if exists("g:html_start_line")
  let s:lnum = html_start_line
  if s:lnum < 1 || s:lnum > line("$")
    let s:lnum = 1
  endif
else
  let s:lnum = 1
endif
if exists("g:html_end_line")
  let s:end = html_end_line
  if s:end < s:lnum || s:end > line("$")
    let s:end = line("$")
  endif
else
  let s:end = line("$")
endif

" stack to keep track of all the folds containing the current line
let s:foldstack = []

if !s:settings.no_progress
  let s:pgb = s:ProgressBar("Processing lines:", s:end - s:lnum + 1, s:orgwin)
endif

if s:settings.number_lines
  let s:margin = strlen(s:end) + 1
else
  let s:margin = 0
endif

if has('folding') && !s:settings.ignore_folding
  let s:foldfillchar = &fillchars[matchend(&fillchars, 'fold:')]
  if s:foldfillchar == ''
    let s:foldfillchar = '-'
  endif
endif
let s:difffillchar = &fillchars[matchend(&fillchars, 'diff:')]
if s:difffillchar == ''
  let s:difffillchar = '-'
endif

let s:foldId = 0

if !s:settings.expand_tabs
  " If keeping tabs, add them to printable characters so we keep them when
  " formatting text (strtrans() doesn't replace printable chars)
  let s:old_isprint = &isprint
  setlocal isprint+=9
endif

while s:lnum <= s:end

  " If there are filler lines for diff mode, show these above the line.
  let s:filler = diff_filler(s:lnum)
  if s:filler > 0
    let s:n = s:filler
    while s:n > 0
      let s:new = repeat(s:difffillchar, 3)

      if s:n > 2 && s:n < s:filler && !s:settings.whole_filler
	let s:new = s:new . " " . s:filler . " inserted lines "
	let s:n = 2
      endif

      if !s:settings.no_pre
	" HTML line wrapping is off--go ahead and fill to the margin
	" TODO: what about when CSS wrapping is turned on?
	let s:new = s:new . repeat(s:difffillchar, &columns - strlen(s:new) - s:margin)
      else
	let s:new = s:new . repeat(s:difffillchar, 3)
      endif

      let s:new = s:HtmlFormat_d(s:new, s:DIFF_D_ID, 0)
      if s:settings.number_lines
	" Indent if line numbering is on. Indent gets style of line number
	" column.
	let s:new = s:HtmlFormat_n(repeat(' ', s:margin), s:LINENR_ID, 0, 0) . s:new
      endif
      if s:settings.dynamic_folds && !s:settings.no_foldcolumn && s:foldcolumn > 0
	" Indent for foldcolumn if there is one. Assume it's empty, there should
	" not be a fold for deleted lines in diff mode.
	let s:new = s:FoldColumn_fill() . s:new
      endif
      call add(s:lines, s:new.s:HtmlEndline)

      let s:n = s:n - 1
    endwhile
    unlet s:n
  endif
  unlet s:filler

  " Start the line with the line number.
  if s:settings.number_lines
    let s:numcol = repeat(' ', s:margin - 1 - strlen(s:lnum)) . s:lnum . ' '
  endif

  let s:new = ""

  if has('folding') && !s:settings.ignore_folding && foldclosed(s:lnum) > -1 && !s:settings.dynamic_folds
    "
    " This is the beginning of a folded block (with no dynamic folding)
    let s:new = foldtextresult(s:lnum)
    if !s:settings.no_pre
      " HTML line wrapping is off--go ahead and fill to the margin
      let s:new = s:new . repeat(s:foldfillchar, &columns - strlen(s:new))
    endif

    " put numcol in a separate group for sake of unselectable text
    let s:new = (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, s:lnum): "") . s:HtmlFormat_t(s:new, s:FOLDED_ID, 0)

    " Skip to the end of the fold
    let s:new_lnum = foldclosedend(s:lnum)

    if !s:settings.no_progress
      call s:pgb.incr(s:new_lnum - s:lnum)
    endif

    let s:lnum = s:new_lnum

  else
    "
    " A line that is not folded, or doing dynamic folding.
    "
    let s:line = getline(s:lnum)
    let s:len = strlen(s:line)

    if s:settings.dynamic_folds
      " First insert a closing for any open folds that end on this line
      while !empty(s:foldstack) && get(s:foldstack,0).lastline == s:lnum-1
	let s:new = s:new."</span></span>"
	call remove(s:foldstack, 0)
      endwhile

      " Now insert an opening for any new folds that start on this line
      let s:firstfold = 1
      while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum
	let s:foldId = s:foldId + 1
	let s:new .= "<span id='"
	let s:new .= (exists('g:html_diff_win_num') ? "win".g:html_diff_win_num : "")
	let s:new .= "fold".s:foldId.s:settings.id_suffix."' class='".s:allfolds[0].type."'>"


	" Unless disabled, add a fold column for the opening line of a fold.
	"
	" Note that dynamic folds require using css so we just use css to take
	" care of the leading spaces rather than using &nbsp; in the case of
	" html_no_pre to make it easier
	if !s:settings.no_foldcolumn
	  " add fold column that can open the new fold
	  if s:allfolds[0].level > 1 && s:firstfold
	    let s:new = s:new . s:FoldColumn_build('|', s:allfolds[0].level - 1, 0, "",
		  \ 'toggle-open FoldColumn','javascript:toggleFold("fold'.s:foldstack[0].id.s:settings.id_suffix.'");')
	  endif
	  " add the filler spaces separately from the '+' char so that it can be
	  " shown/hidden separately during a hover unfold
	  let s:new = s:new . s:FoldColumn_build("+", 1, 0, "",
		\ 'toggle-open FoldColumn', 'javascript:toggleFold("fold'.s:foldId.s:settings.id_suffix.'");')
	  " If this is not the last fold we're opening on this line, we need
	  " to keep the filler spaces hidden if the fold is opened by mouse
	  " hover. If it is the last fold to open in the line, we shouldn't hide
	  " them, so don't apply the toggle-filler class.
	  let s:new = s:new . s:FoldColumn_build(" ", 1, s:foldcolumn - s:allfolds[0].level - 1, "",
		\ 'toggle-open FoldColumn'. (get(s:allfolds, 1, {'firstline': 0}).firstline == s:lnum ?" toggle-filler" :""),
		\ 'javascript:toggleFold("fold'.s:foldId.s:settings.id_suffix.'");')

	  " add fold column that can close the new fold
	  " only add extra blank space if we aren't opening another fold on the
	  " same line
	  if get(s:allfolds, 1, {'firstline': 0}).firstline != s:lnum
	    let s:extra_space = s:foldcolumn - s:allfolds[0].level
	  else
	    let s:extra_space = 0
	  endif
	  if s:firstfold
	    " the first fold in a line has '|' characters from folds opened in
	    " previous lines, before the '-' for this fold
	    let s:new .= s:FoldColumn_build('|', s:allfolds[0].level - 1, s:extra_space, '-',
		  \ 'toggle-closed FoldColumn', 'javascript:toggleFold("fold'.s:foldId.s:settings.id_suffix.'");')
	  else
	    " any subsequent folds in the line only add a single '-'
	    let s:new = s:new . s:FoldColumn_build("-", 1, s:extra_space, "",
		  \ 'toggle-closed FoldColumn', 'javascript:toggleFold("fold'.s:foldId.s:settings.id_suffix.'");')
	  endif
	  let s:firstfold = 0
	endif

	" Add fold text, moving the span ending to the next line so collapsing
	" of folds works correctly.
	" Put numcol in a separate group for sake of unselectable text.
	let s:new = s:new . (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, 0) : "") . substitute(s:HtmlFormat_t(foldtextresult(s:lnum), s:FOLDED_ID, 0), '</span>', s:HtmlEndline.'\n\0', '')
	let s:new = s:new . "<span class='fulltext'>"

	" open the fold now that we have the fold text to allow retrieval of
	" fold text for subsequent folds
	execute s:lnum."foldopen"
	call insert(s:foldstack, remove(s:allfolds,0))
	let s:foldstack[0].id = s:foldId
      endwhile

      " Unless disabled, add a fold column for other lines.
      "
      " Note that dynamic folds require using css so we just use css to take
      " care of the leading spaces rather than using &nbsp; in the case of
      " html_no_pre to make it easier
      if !s:settings.no_foldcolumn
	if empty(s:foldstack)
	  " add the empty foldcolumn for unfolded lines if there is a fold
	  " column at all
	  if s:foldcolumn > 0
	    let s:new = s:new . s:FoldColumn_fill()
	  endif
	else
	  " add the fold column for folds not on the opening line
	  if get(s:foldstack, 0).firstline < s:lnum
	    let s:new = s:new . s:FoldColumn_build('|', s:foldstack[0].level, s:foldcolumn - s:foldstack[0].level, "",
		  \ 'FoldColumn', 'javascript:toggleFold("fold'.s:foldstack[0].id.s:settings.id_suffix.'");')
	  endif
	endif
      endif
    endif

    " Now continue with the unfolded line text
    if s:settings.number_lines
      let s:new = s:new . s:HtmlFormat_n(s:numcol, s:LINENR_ID, 0, s:lnum)
    elseif s:settings.line_ids
      let s:new = s:new . s:HtmlFormat_n("", s:LINENR_ID, 0, s:lnum)
    endif

    " Get the diff attribute, if any.
    let s:diffattr = diff_hlID(s:lnum, 1)

    " initialize conceal info to act like not concealed, just in case
    let s:concealinfo = [0, '']

    " Loop over each character in the line
    let s:col = 1

    " most of the time we won't use the diff_id, initialize to zero
    let s:diff_id = 0

    while s:col <= s:len || (s:col == 1 && s:diffattr)
      let s:startcol = s:col " The start column for processing text
      if !s:settings.ignore_conceal && has('conceal')
	let s:concealinfo = synconcealed(s:lnum, s:col)
      endif
      if !s:settings.ignore_conceal && s:concealinfo[0]
	let s:col = s:col + 1
	" Speed loop (it's small - that's the trick)
	" Go along till we find a change in the match sequence number (ending
	" the specific concealed region) or until there are no more concealed
	" characters.
	while s:col <= s:len && s:concealinfo == synconcealed(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
      elseif s:diffattr
	let s:diff_id = diff_hlID(s:lnum, s:col)
	let s:id = synID(s:lnum, s:col, 1)
	let s:col = s:col + 1
	" Speed loop (it's small - that's the trick)
	" Go along till we find a change in hlID
	while s:col <= s:len && s:id == synID(s:lnum, s:col, 1)
	      \   && s:diff_id == diff_hlID(s:lnum, s:col) |
	      \     let s:col = s:col + 1 |
	      \ endwhile
	if s:len < &columns && !s:settings.no_pre
	  " Add spaces at the end of the raw text line to extend the changed
	  " line to the full width.
	  let s:line = s:line . repeat(' ', &columns - virtcol([s:lnum, s:len]) - s:margin)
	  let s:len = &columns
	endif
      else
	let s:id = synID(s:lnum, s:col, 1)
	let s:col = s:col + 1
	" Speed loop (it's small - that's the trick)
	" Go along till we find a change in synID
	while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) | let s:col = s:col + 1 | endwhile
      endif

      if s:settings.ignore_conceal || !s:concealinfo[0]
	" Expand tabs if needed
	let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol)
	if s:settings.expand_tabs
	  let s:offset = 0
	  let s:idx = stridx(s:expandedtab, "\t")
	  while s:idx >= 0
	    if has("multi_byte_encoding")
	      if s:startcol + s:idx == 1
		let s:i = &ts
	      else
		if s:idx == 0
		  let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
		else
		  let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
		endif
		let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
		let s:i = &ts - (s:vcol % &ts)
	      endif
	      let s:offset -= s:i - 1
	    else
	      let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
	    endif
	    let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
	    let s:idx = stridx(s:expandedtab, "\t")
	  endwhile
	end

	" get the highlight group name to use
	let s:id = synIDtrans(s:id)
      else
	" use Conceal highlighting for concealed text
	let s:id = s:CONCEAL_ID
	let s:expandedtab = s:concealinfo[1]
      endif

      " Output the text with the same synID, with class set to the highlight ID
      " name, unless it has been concealed completely.
      if strlen(s:expandedtab) > 0
	let s:new = s:new . s:HtmlFormat(s:expandedtab,  s:id, s:diff_id, "", 0)
      endif
    endwhile
  endif

  call extend(s:lines, split(s:new.s:HtmlEndline, '\n', 1))
  if !s:settings.no_progress && s:pgb.needs_redraw
    redrawstatus
    let s:pgb.needs_redraw = 0
  endif
  let s:lnum = s:lnum + 1

  if !s:settings.no_progress
    call s:pgb.incr()
  endif
endwhile

if s:settings.dynamic_folds
  " finish off any open folds
  while !empty(s:foldstack)
    let s:lines[-1].="</span></span>"
    call remove(s:foldstack, 0)
  endwhile

  " add fold column to the style list if not already there
  let s:id = s:FOLD_C_ID
  if !has_key(s:stylelist, s:id)
    let s:stylelist[s:id] = '.FoldColumn { ' . s:CSS1(s:id) . '}'
  endif
endif

if s:settings.no_pre
  if !s:settings.use_css
    " Close off the font tag that encapsulates the whole <body>
    call extend(s:lines, ["</font>", "</body>", "</html>"])
  else
    call extend(s:lines, ["</div>", "</body>", "</html>"])
  endif
else
  call extend(s:lines, ["</pre>", "</body>", "</html>"])
endif

exe s:newwin . "wincmd w"
call setline(1, s:lines)
unlet s:lines

" Mangle modelines so Vim doesn't try to use HTML text as a modeline if editing
" this file in the future; need to do this after generating all the text in case
" the modeline text has different highlight groups which all turn out to be
" stripped from the final output.
%s!\v(%(^|\s+)%([Vv]i%(m%([<=>]?\d+)?)?|ex)):!\1\&#0058;!ge

" The generated HTML is admittedly ugly and takes a LONG time to fold.
" Make sure the user doesn't do syntax folding when loading a generated file,
" using a modeline.
call append(line('$'), "<!-- vim: set foldmethod=manual : -->")

" Now, when we finally know which, we define the colors and styles
if s:settings.use_css
  1;/<style type="text/+1
endif

" Normal/global attributes
" For Netscape 4, set <body> attributes too, though, strictly speaking, it's
" incorrect.
if s:settings.use_css
  if s:settings.no_pre
    call append('.', "body { color: " . s:fgc . "; background-color: " . s:bgc . "; font-family: ". s:htmlfont ."; }")
    +
  else
    call append('.', "pre { " . s:whitespace . "font-family: ". s:htmlfont ."; color: " . s:fgc . "; background-color: " . s:bgc . "; }")
    +
    yank
    put
    execute "normal! ^cwbody\e"
    " body should not have the wrap formatting, only the pre section
    if s:whitespace != ''
      exec 's#'.s:whitespace
    endif
  endif
  " fix browser inconsistencies (sometimes within the same browser) of different
  " default font size for different elements
  call append('.', '* { font-size: 1em; }')
  +
  " if we use any input elements for unselectable content, make sure they look
  " like normal text
  if !empty(s:settings.prevent_copy)
    call append('.', 'input { border: none; margin: 0; padding: 0; font-family: '.s:htmlfont.'; }')
    +
    " ch units for browsers which support them, em units for a somewhat
    " reasonable fallback. Also make sure the special elements for size
    " calculations aren't seen.
    call append('.', [
	  \ "input[size='1'] { width: 1em; width: 1ch; }",
	  \ "input[size='2'] { width: 2em; width: 2ch; }",
	  \ "input[size='3'] { width: 3em; width: 3ch; }",
	  \ "input[size='4'] { width: 4em; width: 4ch; }",
	  \ "input[size='5'] { width: 5em; width: 5ch; }",
	  \ "input[size='6'] { width: 6em; width: 6ch; }",
	  \ "input[size='7'] { width: 7em; width: 7ch; }",
	  \ "input[size='8'] { width: 8em; width: 8ch; }",
	  \ "input[size='9'] { width: 9em; width: 9ch; }",
	  \ "input[size='10'] { width: 10em; width: 10ch; }",
	  \ "input[size='11'] { width: 11em; width: 11ch; }",
	  \ "input[size='12'] { width: 12em; width: 12ch; }",
	  \ "input[size='13'] { width: 13em; width: 13ch; }",
	  \ "input[size='14'] { width: 14em; width: 14ch; }",
	  \ "input[size='15'] { width: 15em; width: 15ch; }",
	  \ "input[size='16'] { width: 16em; width: 16ch; }",
	  \ "input[size='17'] { width: 17em; width: 17ch; }",
	  \ "input[size='18'] { width: 18em; width: 18ch; }",
	  \ "input[size='19'] { width: 19em; width: 19ch; }",
	  \ "input[size='20'] { width: 20em; width: 20ch; }",
	  \ "#oneCharWidth, #oneEmWidth, #oneInputWidth { padding: 0; margin: 0; position: absolute; left: -999999px; visibility: hidden; }"
	  \ ])
    +21
    for w in range(5, 100, 5)
      let base = 0.01 * w
      call append('.', join(map(range(1,20), "'.em'.w.' input[size='''.v:val.'''] { width: '.string(v:val*base).'em; }'")))
      +
    endfor
    if s:settings.prevent_copy =~# 'f'
    " Make the cursor show active fold columns as active areas, and empty fold
    " columns as not interactive.
      call append('.', ['input.FoldColumn { cursor: pointer; }',
	    \ 'input.FoldColumn[value=""] { cursor: default; }'
	    \ ])
      +2
    endif
    " make line number column show as non-interactive if not selectable
    if s:settings.prevent_copy =~# 'n'
      call append('.', 'input.LineNr { cursor: default; }')
      +
    endif
    " make fold text and line number column within fold text show as
    " non-interactive if not selectable
    if (s:settings.prevent_copy =~# 'n' || s:settings.prevent_copy =~# 't') && !s:settings.ignore_folding
      call append('.', 'input.Folded { cursor: default; }')
      +
    endif
  endif
else
  execute '%s:<body\([^>]*\):<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"\1>\r<font face="'. s:htmlfont .'"'
endif

" Gather attributes for all other classes. Do diff first so that normal
" highlight groups are inserted before it.
if s:settings.use_css
  if s:diff_mode
    call append('.', filter(map(keys(s:diffstylelist), "s:diffstylelist[v:val]"), 'v:val != ""'))
  endif
  if !empty(s:stylelist)
    call append('.', filter(map(keys(s:stylelist), "s:stylelist[v:val]"), 'v:val != ""'))
  endif
endif

" Add hyperlinks
" TODO: add option to not do this? Maybe just make the color the same as the
" text highlight group normally is?
%s+\(https\=://\S\{-}\)\(\([.,;:}]\=\(\s\|$\)\)\|[\\"'<>]\|&gt;\|&lt;\|&quot;\)+<a href="\1">\1</a>\2+ge

" The DTD
if s:settings.use_xhtml
  exe "normal! gg$a\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
elseif s:settings.use_css && !s:settings.no_pre
  exe "normal! gg0i<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n"
else
  exe "normal! gg0i<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n"
endif

if s:settings.use_xhtml
  exe "normal! gg/<html/e\na xmlns=\"http://www.w3.org/1999/xhtml\"\e"
endif

" Cleanup
%s:\s\+$::e

" Restore old settings (new window first)
"
" Don't bother restoring foldmethod in case it was syntax because the markup is
" so weirdly formatted it can take a LONG time.
let &l:foldenable = s:old_fen
let &report = s:old_report
let &title = s:old_title
let &icon = s:old_icon
let &paste = s:old_paste
let &magic = s:old_magic
let @/ = s:old_search
let &more = s:old_more

" switch to original window to restore those settings
exe s:orgwin . "wincmd w"

if !s:settings.expand_tabs
  let &l:isprint = s:old_isprint
endif
let &l:stl = s:origwin_stl
let &l:et = s:old_et
let &l:scrollbind = s:old_bind

" and back to the new window again to end there
exe s:newwin . "wincmd w"

let &l:stl = s:newwin_stl
exec 'resize' s:old_winheight
let &l:winfixheight = s:old_winfixheight

let &ls=s:ls

" Save a little bit of memory (worth doing?)
unlet s:htmlfont s:whitespace
unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
unlet s:old_magic s:old_more s:old_fen s:old_winheight
unlet! s:old_isprint
unlet s:whatterm s:stylelist s:diffstylelist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight
unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo s:diff_mode
unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:origwin_stl
unlet! s:newwin_stl s:current_syntax
if !v:profiling
  delfunc s:HtmlColor
  delfunc s:HtmlFormat
  delfunc s:CSS1
  delfunc s:BuildStyleWrapper
  if !s:settings.use_css
    delfunc s:HtmlOpening
    delfunc s:HtmlClosing
  endif
  if s:settings.dynamic_folds
    delfunc s:FoldCompare
  endif

  if !s:settings.no_progress
    delfunc s:ProgressBar
    delfunc s:progressbar.paint
    delfunc s:progressbar.incr
    unlet s:pgb s:progressbar
  endif
endif

unlet! s:new_lnum s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace
unlet! s:LeadingSpace s:HtmlEndline s:firstfold s:numcol s:foldcolumn
unlet s:foldstack s:allfolds s:foldId s:settings

let &cpo = s:cpo_sav
unlet! s:cpo_sav

" Make sure any patches will probably use consistent indent
"   vim: ts=8 sw=2 sts=2 noet
PK�j�ZNz�y�
�
vim80/syntax/obj.vimnu�[���" Vim syntax file
" Language:	3D wavefront's obj file
" Maintainer:	Vincent Berthoux <twinside@gmail.com>
" File Types:	.obj (used in 3D)
" Last Change:  2010 May 18
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match       objError        "^\a\+"

syn match       objKeywords     "^cstype\s"
syn match       objKeywords     "^ctech\s"
syn match       objKeywords     "^stech\s"
syn match       objKeywords     "^deg\s"
syn match       objKeywords     "^curv\(2\?\)\s"
syn match       objKeywords     "^parm\s"
syn match       objKeywords     "^surf\s"
syn match       objKeywords     "^end\s"
syn match       objKeywords     "^bzp\s"
syn match       objKeywords     "^bsp\s"
syn match       objKeywords     "^res\s"
syn match       objKeywords     "^cdc\s"
syn match       objKeywords     "^con\s"

syn match       objKeywords     "^shadow_obj\s"
syn match       objKeywords     "^trace_obj\s"
syn match       objKeywords     "^usemap\s"
syn match       objKeywords     "^lod\s"
syn match       objKeywords     "^maplib\s"
syn match       objKeywords     "^d_interp\s"
syn match       objKeywords     "^c_interp\s"
syn match       objKeywords     "^bevel\s"
syn match       objKeywords     "^mg\s"
syn match       objKeywords     "^s\s"
syn match       objKeywords     "^con\s"
syn match       objKeywords     "^trim\s"
syn match       objKeywords     "^hole\s"
syn match       objKeywords     "^scrv\s"
syn match       objKeywords     "^sp\s"
syn match       objKeywords     "^step\s"
syn match       objKeywords     "^bmat\s"
syn match       objKeywords     "^csh\s"
syn match       objKeywords     "^call\s"

syn match       objComment      "^#.*"
syn match       objVertex       "^v\s"
syn match       objFace         "^f\s"
syn match       objVertice      "^vt\s"
syn match       objNormale      "^vn\s"
syn match       objGroup        "^g\s.*"
syn match       objMaterial     "^usemtl\s.*"
syn match       objInclude      "^mtllib\s.*"

syn match       objFloat        "-\?\d\+\.\d\+\(e\(+\|-\)\d\+\)\?"
syn match       objInt          "\d\+"
syn match       objIndex        "\d\+\/\d*\/\d*"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link objError           Error
hi def link objComment         Comment
hi def link objInclude         PreProc
hi def link objFloat           Float
hi def link objInt             Number
hi def link objGroup           Structure
hi def link objIndex           Constant
hi def link objMaterial        Label

hi def link objVertex          Keyword
hi def link objNormale         Keyword
hi def link objVertice         Keyword
hi def link objFace            Keyword
hi def link objKeywords        Keyword



let b:current_syntax = "obj"

" vim: ts=8
PK�j�Z��J�vim80/syntax/tsscl.vimnu�[���" Vim syntax file
" Language:     TSS (Thermal Synthesizer System) Command Line
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.tsscl
" URL:		http://www.naglenet.org/vim/syntax/tsscl.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
"
" Begin syntax definitions for tss geomtery file.
"

" Load TSS geometry syntax file
"source $VIM/myvim/tssgm.vim
"source $VIMRUNTIME/syntax/c.vim

" Define keywords for TSS
syn keyword tssclCommand  begin radk list heatrates attr draw

syn keyword tssclKeyword   cells rays error nodes levels objects cpu
syn keyword tssclKeyword   units length positions energy time unit solar
syn keyword tssclKeyword   solar_constant albedo planet_power

syn keyword tssclEnd    exit

syn keyword tssclUnits  cm feet meters inches
syn keyword tssclUnits  Celsius Kelvin Fahrenheit Rankine



" Define matches for TSS
syn match  tssclString    /"[^"]\+"/ contains=ALLBUT,tssInteger,tssclKeyword,tssclCommand,tssclEnd,tssclUnits

syn match  tssclComment     "#.*$"

"  rational and logical operators
"  <       Less than
"  >       Greater than
"  <=      Less than or equal
"  >=      Greater than or equal
"  == or = Equal to
"  !=      Not equal to
"  && or & Logical AND
"  || or | Logical OR
"  !       Logical NOT
"
" algebraic operators:
"  ^ or ** Exponentation
"  *       Multiplication
"  /       Division
"  %       Remainder
"  +       Addition
"  -       Subtraction
"
syn match  tssclOper      "||\||\|&&\|&\|!=\|!\|>=\|<=\|>\|<\|+\|-\|^\|\*\*\|\*\|/\|%\|==\|=\|\." skipwhite

" CLI Directive Commands, with arguments
"
" BASIC COMMAND LIST
" *ADD input_source
" *ARITHMETIC { [ON] | OFF }
" *CLOSE unit_number
" *CPU
" *DEFINE
" *ECHO[/qualifiers] { [ON] | OFF }
" *ELSE [IF { 0 | 1 } ]
" *END { IF | WHILE }
" *EXIT
" *IF { 0 | 1 }
" *LIST/n list variable
" *OPEN[/r | /r+ | /w | /w+ ] unit_number file_name
" *PROMPT prompt_string sybol_name
" *READ/unit=unit_number[/LOCAL | /GLOBAL ] sym1 [sym2, [sym3 ...]]
" *REWIND
" *STOP
" *STRCMP string_1 string_2 difference
" *SYSTEM command
" *UNDEFINE[/LOCAL][/GLOBAL] symbol_name
" *WHILE { 0 | 1 }
" *WRITE[/unit=unit_number] output text
"
syn match  tssclDirective "\*ADD"
syn match  tssclDirective "\*ARITHMETIC \+\(ON\|OFF\)"
syn match  tssclDirective "\*CLOSE"
syn match  tssclDirective "\*CPU"
syn match  tssclDirective "\*DEFINE"
syn match  tssclDirective "\*ECHO"
syn match  tssclConditional "\*ELSE"
syn match  tssclConditional "\*END \+\(IF\|WHILE\)"
syn match  tssclDirective "\*EXIT"
syn match  tssclConditional "\*IF"
syn match  tssclDirective "\*LIST"
syn match  tssclDirective "\*OPEN"
syn match  tssclDirective "\*PROMPT"
syn match  tssclDirective "\*READ"
syn match  tssclDirective "\*REWIND"
syn match  tssclDirective "\*STOP"
syn match  tssclDirective "\*STRCMP"
syn match  tssclDirective "\*SYSTEM"
syn match  tssclDirective "\*UNDEFINE"
syn match  tssclConditional "\*WHILE"
syn match  tssclDirective "\*WRITE"

syn match  tssclContChar  "-$"

" C library functoins
" Bessel functions (jn, yn)
" Error and complementary error fuctions (erf, erfc)
" Exponential functions (exp)
" Logrithm (log, log10)
" Power (pow)
" Square root (sqrt)
" Floor (floor)
" Ceiling (ceil)
" Floating point remainder (fmod)
" Floating point absolute value (fabs)
" Gamma (gamma)
" Euclidean distance function (hypot)
" Hperbolic functions (sinh, cosh, tanh)
" Trigometric functions in radians (sin, cos, tan, asin, acos, atan, atan2)
" Trigometric functions in degrees (sind, cosd, tand, asind, acosd, atand,
"    atan2d)
"
" local varialbles: cl_arg1, cl_arg2, etc. (cl_arg is an array of arguments)
" cl_args is the number of arguments
"
"
" I/O: *PROMPT, *WRITE, *READ
"
" Conditional branching:
" IF, ELSE IF, END
" *IF value       *IF I==10
" *ELSE IF value  *ELSE IF I<10
" *ELSE		  *ELSE
" *ENDIF	  *ENDIF
"
"
" Iterative looping:
" WHILE
" *WHILE test
" .....
" *END WHILE
"
"
" EXAMPLE:
" *DEFINE I = 1
" *WHILE (I <= 10)
"    *WRITE I = 'I'
"    *DEFINE I = (I + 1)
" *END WHILE
"

syn match  tssclQualifier "/[^/ ]\+"hs=s+1
syn match  tssclSymbol    "'\S\+'"
"syn match  tssclSymbol2   " \S\+ " contained

syn match  tssclInteger     "-\=\<[0-9]*\>"
syn match  tssclFloat       "-\=\<[0-9]*\.[0-9]*"
syn match  tssclScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link tssclCommand		Statement
hi def link tssclKeyword		Special
hi def link tssclEnd		Macro
hi def link tssclUnits		Special

hi def link tssclComment		Comment
hi def link tssclDirective		Statement
hi def link tssclConditional	Conditional
hi def link tssclContChar		Macro
hi def link tssclQualifier		Typedef
hi def link tssclSymbol		Identifier
hi def link tssclSymbol2		Symbol
hi def link tssclString		String
hi def link tssclOper		Operator

hi def link tssclInteger		Number
hi def link tssclFloat		Number
hi def link tssclScientific	Number



let b:current_syntax = "tsscl"

" vim: ts=8 sw=2
PK�j�Z]r��\\vim80/syntax/eruby.vimnu�[���" Vim syntax file
" Language:		eRuby
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'eruby'
endif

if !exists("g:eruby_default_subtype")
  let g:eruby_default_subtype = "html"
endif

if &filetype =~ '^eruby\.'
  let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+')
elseif !exists("b:eruby_subtype") && main_syntax == 'eruby'
  let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
  let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+')
  if b:eruby_subtype == ''
    let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
  endif
  if b:eruby_subtype == 'rhtml'
    let b:eruby_subtype = 'html'
  elseif b:eruby_subtype == 'rb'
    let b:eruby_subtype = 'ruby'
  elseif b:eruby_subtype == 'yml'
    let b:eruby_subtype = 'yaml'
  elseif b:eruby_subtype == 'js'
    let b:eruby_subtype = 'javascript'
  elseif b:eruby_subtype == 'txt'
    " Conventional; not a real file type
    let b:eruby_subtype = 'text'
  elseif b:eruby_subtype == ''
    let b:eruby_subtype = g:eruby_default_subtype
  endif
endif

if !exists("b:eruby_nest_level")
  let b:eruby_nest_level = strlen(substitute(substitute(substitute(expand("%:t"),'@','','g'),'\c\.\%(erb\|rhtml\)\>','@','g'),'[^@]','','g'))
endif
if !b:eruby_nest_level
  let b:eruby_nest_level = 1
endif

if exists("b:eruby_subtype") && b:eruby_subtype != ''
  exe "runtime! syntax/".b:eruby_subtype.".vim"
  unlet! b:current_syntax
endif
syn include @rubyTop syntax/ruby.vim

syn cluster erubyRegions contains=erubyOneLiner,erubyBlock,erubyExpression,erubyComment

exe 'syn region  erubyOneLiner   matchgroup=erubyDelimiter start="^%\{1,'.b:eruby_nest_level.'\}%\@!"    end="$"     contains=@rubyTop	     containedin=ALLBUT,@erubyRegions keepend oneline'
exe 'syn region  erubyBlock      matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}%\@!-\=" end="[=-]\=%\@<!%\{1,'.b:eruby_nest_level.'\}>" contains=@rubyTop  containedin=ALLBUT,@erubyRegions keepend'
exe 'syn region  erubyExpression matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}=\{1,4}" end="[=-]\=%\@<!%\{1,'.b:eruby_nest_level.'\}>" contains=@rubyTop  containedin=ALLBUT,@erubyRegions keepend'
exe 'syn region  erubyComment    matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}-\=#"    end="[=-]\=%\@<!%\{1,'.b:eruby_nest_level.'\}>" contains=rubyTodo,@Spell containedin=ALLBUT,@erubyRegions keepend'

" Define the default highlighting.

hi def link erubyDelimiter		PreProc
hi def link erubyComment		Comment

let b:current_syntax = 'eruby'

if main_syntax == 'eruby'
  unlet main_syntax
endif

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�Z�C���vim80/syntax/updatedb.vimnu�[���" Vim syntax file
" Language:             updatedb.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2009-05-25

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword updatedbTodo    contained TODO FIXME XXX NOTE

syn region  updatedbComment display oneline start='^\s*#' end='$'
                            \ contains=updatedbTodo,@Spell

syn match   updatedbBegin   display '^'
                            \ nextgroup=updatedbName,updatedbComment skipwhite

syn keyword updatedbName    contained
                            \ PRUNEFS
                            \ PRUNENAMES
                            \ PRUNEPATHS
                            \ PRUNE_BIND_MOUNTS
                            \ nextgroup=updatedbNameEq

syn match   updatedbNameEq  contained display '=' nextgroup=updatedbValue

syn region  updatedbValue   contained display oneline start='"' end='"'

hi def link updatedbTodo    Todo
hi def link updatedbComment Comment
hi def link updatedbName    Identifier
hi def link updatedbNameEq  Operator
hi def link updatedbValue   String

let b:current_syntax = "updatedb"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�AZ�
�
vim80/syntax/remind.vimnu�[���" Vim syntax file
" Language:	Remind
" Maintainer:	Davide Alberani <da@erlug.linux.it>
" Last Change:	02 Nov 2015
" Version:	0.7
" URL:		http://ismito.it/vim/syntax/remind.vim
"
" Remind is a sophisticated calendar and alarm program.
" You can download remind from:
"   https://www.roaringpenguin.com/products/remind
"
" Changelog
" version 0.7: updated email and link
" version 0.6: added THROUGH keyword (courtesy of Ben Orchard)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" shut case off.
syn case ignore

syn keyword remindCommands	REM OMIT SET FSET UNSET
syn keyword remindExpiry	UNTIL FROM SCANFROM SCAN WARN SCHED THROUGH
syn keyword remindTag		PRIORITY TAG
syn keyword remindTimed		AT DURATION
syn keyword remindMove		ONCE SKIP BEFORE AFTER
syn keyword remindSpecial	INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR
syn keyword remindRun		MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
syn keyword remindConditional	IF ELSE ENDIF IFTRIG
syn keyword remindDebug		DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
syn match remindComment		"#.*$"
syn region remindString		start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
syn region remindString		start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
syn match remindVar		"\$[_a-zA-Z][_a-zA-Z0-9]*"
syn match remindSubst		"%[^ ]"
syn match remindAdvanceNumber	"\(\*\|+\|-\|++\|--\)[0-9]\+"
" XXX: use different separators for dates and times?
syn match remindDateSeparators	"[/:@\.-]" contained
syn match remindTimes		"[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators
" XXX: why not match only valid dates?  Ok, checking for 'Feb the 30' would
"       be impossible, but at least check for valid months and times.
syn match remindDates		"'[0-9]\{4}[/-][0-9]\{1,2}[/-][0-9]\{1,2}\(@[0-9]\{1,2}[:\.][0-9]\{1,2}\)\?'" contains=remindDateSeparators
" This will match trailing whitespaces that seem to break rem2ps.
" Courtesy of Michael Dunn.
syn match remindWarning		display excludenl "\S\s\+$"ms=s+1



hi def link remindCommands		Function
hi def link remindExpiry		Repeat
hi def link remindTag		Label
hi def link remindTimed		Statement
hi def link remindMove		Statement
hi def link remindSpecial		Include
hi def link remindRun		Function
hi def link remindConditional	Conditional
hi def link remindComment		Comment
hi def link remindTimes		String
hi def link remindString		String
hi def link remindDebug		Debug
hi def link remindVar		Identifier
hi def link remindSubst		Constant
hi def link remindAdvanceNumber	Number
hi def link remindDateSeparators	Comment
hi def link remindDates		String
hi def link remindWarning		Error


let b:current_syntax = "remind"

" vim: ts=8 sw=2
PK�j�Z�X�<<vim80/syntax/gitrebase.vimnu�[���" Vim syntax file
" Language:	git rebase --interactive
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Filenames:	git-rebase-todo
" Last Change:	2016 Aug 29

if exists("b:current_syntax")
  finish
endif

syn case match

syn match   gitrebaseHash   "\v<\x{7,40}>"                             contained
syn match   gitrebaseCommit "\v<\x{7,40}>"  nextgroup=gitrebaseSummary skipwhite
syn match   gitrebasePick   "\v^p%(ick)=>"   nextgroup=gitrebaseCommit skipwhite
syn match   gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
syn match   gitrebaseEdit   "\v^e%(dit)=>"   nextgroup=gitrebaseCommit skipwhite
syn match   gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
syn match   gitrebaseFixup  "\v^f%(ixup)=>"  nextgroup=gitrebaseCommit skipwhite
syn match   gitrebaseExec   "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite
syn match   gitrebaseDrop   "\v^d%(rop)=>"   nextgroup=gitrebaseCommit skipwhite
syn match   gitrebaseSummary ".*"               contains=gitrebaseHash contained
syn match   gitrebaseCommand ".*"                                      contained
syn match   gitrebaseComment "^#.*"             contains=gitrebaseHash
syn match   gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite

hi def link gitrebaseCommit         gitrebaseHash
hi def link gitrebaseHash           Identifier
hi def link gitrebasePick           Statement
hi def link gitrebaseReword         Number
hi def link gitrebaseEdit           PreProc
hi def link gitrebaseSquash         Type
hi def link gitrebaseFixup          Special
hi def link gitrebaseExec           Function
hi def link gitrebaseDrop           Comment
hi def link gitrebaseSummary        String
hi def link gitrebaseComment        Comment
hi def link gitrebaseSquashError    Error

let b:current_syntax = "gitrebase"
PK�j�Z[q�uGGvim80/syntax/chaiscript.vimnu�[���" Vim syntax file
" Language:	ChaiScript
" Maintainer:	Jason Turner <lefticus 'at' gmail com>

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
end

syn case match

" syncing method
syn sync fromstart

" Strings
syn region chaiscriptString        start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=chaiscriptSpecial,chaiscriptEval,@Spell

" Escape characters
syn match  chaiscriptSpecial       contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}" 

" String evals
syn region chaiscriptEval          contained start="${" end="}" 
 
" integer number
syn match  chaiscriptNumber        "\<\d\+\>"

" floating point number, with dot, optional exponent
syn match  chaiscriptFloat         "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>"

" floating point number, starting with a dot, optional exponent
syn match  chaiscriptFloat         "\.\d\+\%(e[-+]\=\d\+\)\=\>"

" floating point number, without dot, with exponent
syn match  chaiscriptFloat         "\<\d\+e[-+]\=\d\+\>"

" Hex strings
syn match  chaiscriptNumber        "\<0x\x\+\>"

" Binary strings
syn match  chaiscriptNumber        "\<0b[01]\+\>"

" Various language features
syn keyword chaiscriptCond         if else
syn keyword chaiscriptRepeat       while for do
syn keyword chaiscriptStatement    break continue return
syn keyword chaiscriptExceptions   try catch throw

"Keyword
syn keyword chaiscriptKeyword      def true false attr

"Built in types
syn keyword chaiscriptType         fun var

"Built in funcs, keep it simple
syn keyword chaiscriptFunc         eval throw

"Let's treat all backtick operator function lookups as built in too
syn region  chaiscriptFunc         matchgroup=chaiscriptFunc start="`" end="`"

" Account for the "[1..10]" syntax, treating it as an operator
" Intentionally leaving out all of the normal, well known operators
syn match   chaiscriptOperator     "\.\."

" Guard seperator as an operator
syn match   chaiscriptOperator     ":"

" Comments
syn match   chaiscriptComment      "//.*$" contains=@Spell
syn region  chaiscriptComment      matchgroup=chaiscriptComment start="/\*" end="\*/" contains=@Spell



hi def link chaiscriptExceptions	Exception
hi def link chaiscriptKeyword		Keyword
hi def link chaiscriptStatement		Statement
hi def link chaiscriptRepeat		Repeat
hi def link chaiscriptString		String
hi def link chaiscriptNumber		Number
hi def link chaiscriptFloat		Float
hi def link chaiscriptOperator		Operator
hi def link chaiscriptConstant		Constant
hi def link chaiscriptCond		Conditional
hi def link chaiscriptFunction		Function
hi def link chaiscriptComment		Comment
hi def link chaiscriptTodo		Todo
hi def link chaiscriptError		Error
hi def link chaiscriptSpecial		SpecialChar
hi def link chaiscriptFunc		Identifier
hi def link chaiscriptType		Type
hi def link chaiscriptEval	        Special

let b:current_syntax = "chaiscript"

" vim: nowrap sw=2 sts=2 ts=8 noet
PK�j�Zfa2��	�	vim80/syntax/cynlib.vimnu�[���" Vim syntax file
" Language:     Cynlib(C++)
" Maintainer:   Phil Derrick <phild@forteds.com>
" Last change:  2001 Sep 02
" URL http://www.derrickp.freeserve.co.uk/vim/syntax/cynlib.vim
"
" Language Information
"
"		Cynlib is a library of C++ classes to allow hardware
"		modelling in C++. Combined with a simulation kernel,
"		the compiled and linked executable forms a hardware
"		simulation of the described design.
"
"		Further information can be found from www.forteds.com


" Remove any old syntax stuff hanging around
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Read the C++ syntax to start with - this includes the C syntax
runtime! syntax/cpp.vim
unlet b:current_syntax

" Cynlib extensions

syn keyword	cynlibMacro	   Default CYNSCON
syn keyword	cynlibMacro	   Case CaseX EndCaseX
syn keyword	cynlibType	   CynData CynSignedData CynTime
syn keyword	cynlibType	   In Out InST OutST
syn keyword	cynlibType	   Struct
syn keyword	cynlibType	   Int Uint Const
syn keyword	cynlibType	   Long Ulong
syn keyword	cynlibType	   OneHot
syn keyword	cynlibType	   CynClock Cynclock0
syn keyword     cynlibFunction     time configure my_name
syn keyword     cynlibFunction     CynModule epilog execute_on
syn keyword     cynlibFunction     my_name
syn keyword     cynlibFunction     CynBind bind
syn keyword     cynlibFunction     CynWait CynEvent
syn keyword     cynlibFunction     CynSetName
syn keyword     cynlibFunction     CynTick CynRun
syn keyword     cynlibFunction     CynFinish
syn keyword     cynlibFunction     Cynprintf CynSimTime
syn keyword     cynlibFunction     CynVcdFile
syn keyword     cynlibFunction     CynVcdAdd CynVcdRemove
syn keyword     cynlibFunction     CynVcdOn CynVcdOff
syn keyword     cynlibFunction     CynVcdScale
syn keyword     cynlibFunction     CynBgnName CynEndName
syn keyword     cynlibFunction     CynClock configure time
syn keyword     cynlibFunction     CynRedAnd CynRedNand
syn keyword     cynlibFunction     CynRedOr CynRedNor
syn keyword     cynlibFunction     CynRedXor CynRedXnor
syn keyword     cynlibFunction     CynVerify


syn match       cynlibOperator     "<<="
syn keyword	cynlibType	   In Out InST OutST Int Uint Const Cynclock

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cynlibOperator   Operator
hi def link cynlibMacro      Statement
hi def link cynlibFunction   Statement
hi def link cynlibppMacro      Statement
hi def link cynlibType       Type


let b:current_syntax = "cynlib"
PK�j�Z�>IFFvim80/syntax/dtd.vimnu�[���" Vim syntax file
" Language:	DTD (Document Type Definition for XML)
" Maintainer:	Johannes Zellner <johannes@zellner.org>
"		Author and previous maintainer:
"		Daniel Amyot <damyot@site.uottawa.ca>
" Last Change:	Tue, 27 Apr 2004 14:54:59 CEST
" Filenames:	*.dtd
"
" REFERENCES:
"   http://www.w3.org/TR/html40/
"   http://www.w3.org/TR/NOTE-html-970421
"
" TODO:
"   - improve synchronizing.

if exists("b:current_syntax")
    finish
endif
let s:dtd_cpo_save = &cpo
set cpo&vim

if !exists("dtd_ignore_case")
    " I prefer having the case takes into consideration.
    syn case match
else
    syn case ignore
endif


" the following line makes the opening <! and
" closing > highlighted using 'dtdFunction'.
"
" PROVIDES: @dtdTagHook
"
syn region dtdTag matchgroup=dtdFunction
    \ start=+<!+ end=+>+ matchgroup=NONE
    \ contains=dtdTag,dtdTagName,dtdError,dtdComment,dtdString,dtdAttrType,dtdAttrDef,dtdEnum,dtdParamEntityInst,dtdParamEntityDecl,dtdCard,@dtdTagHook

if !exists("dtd_no_tag_errors")
    " mark everything as an error which starts with a <!
    " and is not overridden later. If this is annoying,
    " it can be switched off by setting the variable
    " dtd_no_tag_errors.
    syn region dtdError contained start=+<!+lc=2 end=+>+
endif

" if this is a html like comment hightlight also
" the opening <! and the closing > as Comment.
syn region dtdComment		start=+<![ \t]*--+ end=+-->+ contains=dtdTodo,@Spell


" proper DTD comment
syn region dtdComment contained start=+--+ end=+--+ contains=dtdTodo,@Spell


" Start tags (keywords). This is contained in dtdFunction.
" Note that everything not contained here will be marked
" as error.
syn match dtdTagName contained +<!\(ATTLIST\|DOCTYPE\|ELEMENT\|ENTITY\|NOTATION\|SHORTREF\|USEMAP\|\[\)+lc=2,hs=s+2


" wildcards and operators
syn match  dtdCard contained "|"
syn match  dtdCard contained ","
" evenutally overridden by dtdEntity
syn match  dtdCard contained "&"
syn match  dtdCard contained "?"
syn match  dtdCard contained "\*"
syn match  dtdCard contained "+"

" ...and finally, special cases.
syn match  dtdCard      "ANY"
syn match  dtdCard      "EMPTY"

if !exists("dtd_no_param_entities")

    " highlight parameter entity declarations
    " and instances. Note that the closing `;'
    " is optional.

    " instances
    syn region dtdParamEntityInst oneline matchgroup=dtdParamEntityPunct
	\ start="%[-_a-zA-Z0-9.]\+"he=s+1,rs=s+1
	\ skip=+[-_a-zA-Z0-9.]+
	\ end=";\|\>"
	\ matchgroup=NONE contains=dtdParamEntityPunct
    syn match  dtdParamEntityPunct contained "\."

    " declarations
    " syn region dtdParamEntityDecl oneline matchgroup=dtdParamEntityDPunct start=+<!ENTITY % +lc=8 skip=+[-_a-zA-Z0-9.]+ matchgroup=NONE end="\>" contains=dtdParamEntityDPunct
    syn match dtdParamEntityDecl +<!ENTITY % [-_a-zA-Z0-9.]*+lc=8 contains=dtdParamEntityDPunct
    syn match  dtdParamEntityDPunct contained "%\|\."

endif

" &entities; compare with xml
syn match   dtdEntity		      "&[^; \t]*;" contains=dtdEntityPunct
syn match   dtdEntityPunct  contained "[&.;]"

" Strings are between quotes
syn region dtdString    start=+"+ skip=+\\\\\|\\"+  end=+"+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard
syn region dtdString    start=+'+ skip=+\\\\\|\\'+  end=+'+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard

" Enumeration of elements or data between parenthesis
"
" PROVIDES: @dtdEnumHook
"
syn region dtdEnum matchgroup=dtdType start="(" end=")" matchgroup=NONE contains=dtdEnum,dtdParamEntityInst,dtdCard,@dtdEnumHook

"Attribute types
syn keyword dtdAttrType NMTOKEN  ENTITIES  NMTOKENS  ID  CDATA
syn keyword dtdAttrType IDREF  IDREFS
" ENTITY has to treated special for not overriding <!ENTITY
syn match   dtdAttrType +[^!]\<ENTITY+

"Attribute Definitions
syn match  dtdAttrDef   "#REQUIRED"
syn match  dtdAttrDef   "#IMPLIED"
syn match  dtdAttrDef   "#FIXED"

syn case match
" define some common keywords to mark TODO
" and important sections inside comments.
syn keyword dtdTodo contained TODO FIXME XXX

syn sync lines=250

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link dtdFunction		Function
hi def link dtdTag		Normal
hi def link dtdType		Type
hi def link dtdAttrType		dtdType
hi def link dtdAttrDef		dtdType
hi def link dtdConstant		Constant
hi def link dtdString		dtdConstant
hi def link dtdEnum		dtdConstant
hi def link dtdCard		dtdFunction

hi def link dtdEntity		Statement
hi def link dtdEntityPunct	dtdType
hi def link dtdParamEntityInst	dtdConstant
hi def link dtdParamEntityPunct	dtdType
hi def link dtdParamEntityDecl	dtdType
hi def link dtdParamEntityDPunct dtdComment

hi def link dtdComment		Comment
hi def link dtdTagName		Statement
hi def link dtdError		Error
hi def link dtdTodo		Todo


let &cpo = s:dtd_cpo_save
unlet s:dtd_cpo_save

let b:current_syntax = "dtd"

" vim: ts=8
PK�j�Z!��Httvim80/syntax/bib.vimnu�[���" Vim syntax file
" Language:	BibTeX (bibliographic database format for (La)TeX)
" Maintainer:	Bernd Feige <Bernd.Feige@gmx.net>
" Filenames:	*.bib
" Last Change:	2017 Sep 29

" Thanks to those who pointed out problems with this file or supplied fixes!

" Initialization
" ==============
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Ignore case
syn case ignore

" Keywords
" ========
syn keyword bibType contained	article book booklet conference inbook
syn keyword bibType contained	incollection inproceedings manual
syn keyword bibType contained	mastersthesis misc phdthesis
syn keyword bibType contained	proceedings techreport unpublished
syn keyword bibType contained	string preamble

syn keyword bibEntryKw contained	address annote author booktitle chapter
syn keyword bibEntryKw contained	crossref edition editor howpublished
syn keyword bibEntryKw contained	institution journal key month note
syn keyword bibEntryKw contained	number organization pages publisher
syn keyword bibEntryKw contained	school series title type volume year

" biblatex keywords, cf. http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf
syn keyword bibType contained	mvbook bookinbook suppbook collection mvcollection suppcollection
syn keyword bibType contained	online patent periodical suppperiodical mvproceedings reference
syn keyword bibType contained	mvreference inreference report set thesis xdata customa customb
syn keyword bibType contained	customc customd custome customf electronic www artwork audio bibnote
syn keyword bibType contained	commentary image jurisdiction legislation legal letter movie music
syn keyword bibType contained	performance review software standard video

syn keyword bibEntryKw contained	abstract isbn issn keywords url
syn keyword bibEntryKw contained	addendum afterwordannotation annotation annotator authortype
syn keyword bibEntryKw contained	bookauthor bookpagination booksubtitle booktitleaddon
syn keyword bibEntryKw contained	commentator date doi editora editorb editorc editortype
syn keyword bibEntryKw contained	editoratype editorbtype editorctype eid entrysubtype
syn keyword bibEntryKw contained	eprint eprintclass eprinttype eventdate eventtitle
syn keyword bibEntryKw contained	eventtitleaddon file foreword holder indextitle
syn keyword bibEntryKw contained	introduction isan ismn isrn issue issuesubtitle
syn keyword bibEntryKw contained	issuetitle iswc journalsubtitle journaltitle label
syn keyword bibEntryKw contained	language library location mainsubtitle maintitle
syn keyword bibEntryKw contained	maintitleaddon nameaddon origdate origlanguage
syn keyword bibEntryKw contained	origlocation origpublisher origtitle pagetotal
syn keyword bibEntryKw contained	pagination part pubstate reprinttitle shortauthor
syn keyword bibEntryKw contained	shorteditor shorthand shorthandintro shortjournal
syn keyword bibEntryKw contained	shortseries shorttitle subtitle titleaddon translator
syn keyword bibEntryKw contained	urldate venue version volumes entryset execute gender
syn keyword bibEntryKw contained	langid langidopts ids indexsorttitle options presort
syn keyword bibEntryKw contained	related relatedoptions relatedtype relatedstring
syn keyword bibEntryKw contained	sortkey sortname sortshorthand sorttitle sortyear xdata
syn keyword bibEntryKw contained	xref namea nameb namec nameatype namebtype namectype
syn keyword bibEntryKw contained	lista listb listc listd liste listf usera userb userc
syn keyword bibEntryKw contained	userd usere userf verba verbb verbc archiveprefix pdf
syn keyword bibEntryKw contained	primaryclass

" Non-standard:
" AMS mref http://www.ams.org/mref
syn keyword bibNSEntryKw contained	mrclass mrnumber mrreviewer fjournal coden

" Clusters
" ========
syn cluster bibVarContents	contains=bibUnescapedSpecial,bibBrace,bibParen,bibMath
" This cluster is empty but things can be added externally:
"syn cluster bibCommentContents

" Matches
" =======
syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1
syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField
syn match bibVariable contained /[^{}," \t=]/
syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
syn region bibMath contained start=/\(\\\)\@<!\$/ end=/\$/ skip=/\(\\\$\)/
syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents
syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents
syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents
syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bibEntryKw,bibNSEntryKw,bibBrace,bibParen,bibQuote,bibVariable
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField,bibComment3
" Actually, 5.8 <= Vim < 6.0 would ignore the `fold' keyword anyway, but Vim<5.8 would produce
" an error, so we explicitly distinguish versions with and without folding functionality:
syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
syn region bibComment2 start=/@Comment\s*[{(]/ end=/^\s*[})]/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
" biblatex style comments inside a bibEntry
syn match bibComment3 "%.*"

" Synchronization
" ===============
syn sync match All grouphere bibEntry /^\s*@/
syn sync maxlines=200
syn sync minlines=50

" Highlighting defaults
" =====================
" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link bibType	Identifier
hi def link bibEntryKw	Statement
hi def link bibNSEntryKw	PreProc
hi def link bibKey		Special
hi def link bibVariable	Constant
hi def link bibUnescapedSpecial	Error
hi def link bibComment	Comment
hi def link bibComment2	Comment
hi def link bibComment3	Comment

let b:current_syntax = "bib"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZSȶ�
�
vim80/syntax/ppwiz.vimnu�[���" Vim syntax file
" Language:     PPWizard (preprocessor by Dennis Bareis)
" Maintainer:   Stefan Schwarzer <s.schwarzer@ndh.net>
" URL:			http://www.ndh.net/home/sschwarzer/download/ppwiz.vim
" Last Change:  2003 May 11
" Filename:     ppwiz.vim

" Remove old syntax stuff
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

if !exists("ppwiz_highlight_defs")
    let ppwiz_highlight_defs = 1
endif

if !exists("ppwiz_with_html")
    let ppwiz_with_html = 1
endif

" comments
syn match   ppwizComment  "^;.*$"
syn match   ppwizComment  ";;.*$"
" HTML
if ppwiz_with_html > 0
    syn region ppwizHTML  start="<" end=">" contains=ppwizArg,ppwizMacro
    syn match  ppwizHTML  "\&\w\+;"
endif
" define, evaluate etc.
if ppwiz_highlight_defs == 1
    syn match  ppwizDef   "^\s*\#\S\+\s\+\S\+" contains=ALL
    syn match  ppwizDef   "^\s*\#\(if\|else\|endif\)" contains=ALL
    syn match  ppwizDef   "^\s*\#\({\|break\|continue\|}\)" contains=ALL
" elseif ppwiz_highlight_defs == 2
"     syn region ppwizDef   start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ALL
else
    syn region ppwizDef   start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ppwizCont
endif
syn match   ppwizError    "\s.\\$"
syn match   ppwizCont     "\s\([+\-%]\|\)\\$"
" macros to execute
syn region  ppwizMacro    start="<\$" end=">" contains=@ppwizArgVal,ppwizCont
" macro arguments
syn region  ppwizArg      start="{" end="}" contains=ppwizEqual,ppwizString
syn match   ppwizEqual    "=" contained
syn match   ppwizOperator "<>\|=\|<\|>" contained
" standard variables (builtin)
syn region  ppwizStdVar   start="<?[^?]" end=">" contains=@ppwizArgVal
" Rexx variables
syn region  ppwizRexxVar  start="<??" end=">" contains=@ppwizArgVal
" Constants
syn region  ppwizString   start=+"+ end=+"+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar
syn region  ppwizString   start=+'+ end=+'+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar
syn match   ppwizInteger  "\d\+" contained

" Clusters
syn cluster ppwizArgVal add=ppwizString,ppwizInteger

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link ppwizSpecial  Special
hi def link ppwizEqual    ppwizSpecial
hi def link ppwizOperator ppwizSpecial
hi def link ppwizComment  Comment
hi def link ppwizDef      PreProc
hi def link ppwizMacro    Statement
hi def link ppwizArg      Identifier
hi def link ppwizStdVar   Identifier
hi def link ppwizRexxVar  Identifier
hi def link ppwizString   Constant
hi def link ppwizInteger  Constant
hi def link ppwizCont     ppwizSpecial
hi def link ppwizError    Error
hi def link ppwizHTML     Type


let b:current_syntax = "ppwiz"

" vim: ts=4

PK�j�Z����;�;vim80/syntax/rexx.vimnu�[���" Vim syntax file
" Language:	Rexx
" Maintainer:	Thomas Geulig <geulig@nentec.de>
" Last Change:  2012 Sep 14, added support for new ooRexx 4.0 features
" URL:		http://www.geulig.de/vim/rexx.vim
" Special Thanks to Dan Sharp <dwsharp@hotmail.com> and Rony G. Flatscher
" <Rony.Flatscher@wu-wien.ac.at> for comments and additions

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" add to valid identifier chars
setlocal iskeyword+=.
setlocal iskeyword+=!
setlocal iskeyword+=?

" ---rgf, position important: must be before comments etc. !
syn match rexxOperator "[=|\/\\\+\*\[\],;:<>&\~%\-]"

" rgf syn match rexxIdentifier        "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>"
syn match rexxIdentifier        "\<\K\k*\>"
syn match rexxEnvironmentSymbol "\<\.\k\+\>"

" A Keyword is the first symbol in a clause.  A clause begins at the start
" of a line or after a semicolon.  THEN, ELSE, OTHERWISE, and colons are always
" followed by an implied semicolon.
syn match rexxClause "\(^\|;\|:\|then \|else \|when \|otherwise \)\s*\S*" contains=ALLBUT,rexxParse2,rexxRaise2,rexxForward2

" Considered keywords when used together in a phrase and begin a clause
syn match rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\?\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>" containedin=rexxClause contains=rexxParse2
syn match rexxParse2 "\<with\>" containedin=rexxParse

syn match rexxKeyword contained "\<numeric \(digits\|form \(scientific\|engineering\|value\)\|fuzz\)\>"
syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\?\>"
syn match rexxKeyword contained "\<procedure\(\s*expose\)\?\>"

syn match rexxKeyword contained "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\(\s\+forever\)\?\>"
syn match rexxKeyword contained "\<use\>\s*\(strict\s*\)\?\<arg\>"

" Another keyword phrase, separated to aid highlighting in rexxFunction
syn match rexxRegularCallSignal contained "\<\(call\|signal\)\s\(\s*on\>\|\s*off\>\)\@!\(\k\+\ze\|\ze(\)\(\s*\|;\|$\|(\)"
syn region rexxLabel contained start="\<\(call\|signal\)\>\s*\zs\(\k*\|(\)" end="\ze\(\s*\|;\|$\|(\)" containedin=rexxRegularCallSignal

syn match rexxExceptionHandling contained "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>.*\(;\|$\)" contains=rexxComment

" hilite label given after keyword "name"
syn match rexxLabel "name\s\+\zs\k\+\ze" containedin=rexxExceptionHandling
" hilite condition name (serves as label)
syn match rexxLabel "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>\s*\zs\k\+\ze\s*\(;\|$\)" containedin=rexxExceptionHandling
" user exception handling, hilite user defined name
syn region rexxLabel contained start="user\s\+\zs\k" end="\ze\(\s\|;\|$\)" containedin=rexxExceptionHandling

" Considered keywords when they begin a clause
syn match rexxKeywordStatements "\<\(arg\|catch\|do\|drop\|end\|exit\|expose\|finally\|forward\|if\|interpret\|iterate\|leave\|loop\|nop\)\>"
syn match rexxKeywordStatements "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"

" Conditional keywords starting a new statement
syn match rexxConditional "\<\(then\|else\|when\|otherwise\)\(\s*\|;\|\_$\|\)\>" contains=rexxKeywordStatements

" Conditional phrases
syn match rexxLoopKeywords "\<\(to\|by\|for\|until\|while\|over\)\>" containedin=doLoopSelectLabelRegion

" must be after Conditional phrases!
syn match doLoopSelectLabelRegion "\<\(do\|loop\|select\)\>\s\+\(label\s\+\)\?\(\s\+\k\+\s\+\zs\<over\>\)\?\k*\(\s\+forever\)\?\(\s\|;\|$\)" contains=doLoopSelectLabelRegion,rexxStartValueAssignment,rexxLoopKeywords

" color label's name
syn match rexxLabel2 "\<\(do\|loop\|select\)\>\s\+label\s\+\zs\k*\ze" containedin=doLoopSelectLabelRegion

" make sure control variable is normal
" TODO: re-activate ?
"rgf syn match rexxControlVariable        "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\s\+\<over\>" containedin=doLoopSelectLabelRegion

" make sure control variable assignment is normal
syn match rexxStartValueAssignment       "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\(=.*\)\?\s\+\<to\>" containedin=doLoopSelectLabelRegion

" highlight label name
syn match endIterateLeaveLabelRegion "\<\(end\|leave\|iterate\)\>\(\s\+\K\k*\)" contains=rexxLabel2
syn match rexxLabel2 "\<\(end\|leave\|iterate\)\>\s\+\zs\k*\ze" containedin=endIterateLeaveLabelRegion

" Guard statement
syn match rexxGuard "\(^\|;\|:\)\s*\<guard\>\s\+\<\(on\|off\)\>"

" Trace statement
syn match rexxTrace "\(^\|;\|:\)\s*\<trace\>\s\+\<\K\k*\>"

" Raise statement
" syn match rexxRaise "\(^\|;\|:\)\s\+\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2
syn match rexxRaise "\(^\|;\|:\)\s*\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2
syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|propagate\|return\)\>" containedin=rexxRaise

" Forward statement
syn match rexxForward  "\(^\|;\|:\)\<forward\>\s*" contains=rexxForward2
syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained

" Functions/Procedures
syn match rexxFunction 	"\<\<[a-zA-Z\!\?_]\k*\>("me=e-1
syn match rexxFunction "[()]"

" String constants
syn region rexxString	start=+"+ skip=+""+ end=+"\(x\|b\)\?+ oneline
syn region rexxString	start=+'+ skip=+''+ end=+'\(x\|b\)\?+ oneline

syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword
" Catch errors caused by wrong parenthesis
syn match rexxParenError	 ")"
syn match rexxInParen		"[\\[\\]{}]"

" Comments
syn region	rexxComment	start="/\*"	end="\*/" contains=rexxTodo,rexxComment
syn match	rexxCommentError "\*/"
syn region	rexxLineComment	start="--"	end="\_$" oneline

" Highlight User Labels
" check for labels between comments, labels stated in a statement in the middle of a line
syn match rexxLabel		 "\(\_^\|;\)\s*\(\/\*.*\*\/\)*\s*\k\+\s*\(\/\*.*\*\/\)*\s*:"me=e-1 contains=rexxTodo,rexxComment

syn keyword rexxTodo contained	TODO FIXME XXX

" ooRexx messages
syn region rexxMessageOperator start="\(\~\|\~\~\)" end="\(\S\|\s\)"me=e-1
syn match rexxMessage "\(\~\|\~\~\)\s*\<\.*[a-zA-Z]\([a-zA-Z0-9._?!]\)*\>" contains=rexxMessageOperator

" line continuations, take care of (line-)comments after it
syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$"

" the following is necessary, otherwise three consecutive dashes will cause it to highlight the first one
syn match rexxLineContinue "-\ze-\@!\s*\(--.*\|\s*\/\*.*\)\?$"

" Special Variables
syn keyword rexxSpecialVariable  sigl rc result self super
syn keyword rexxSpecialVariable  .environment .error .input .local .methods .output .rs .stderr .stdin .stdout .stdque

" Constants
syn keyword rexxConst .true .false .nil .endOfLine .line .context

" Rexx numbers
" int like number
syn match rexxNumber '\d\+' contained
syn match rexxNumber '[-+]\s*\d\+' contained

" Floating point number with decimal
syn match rexxNumber '\d\+\.\d*' contained
syn match rexxNumber '[-+]\s*\d\+\.\d*' contained

" Floating point like number with E
syn match rexxNumber '[-+]\s*\d*[eE][\-+]\d\+' contained
syn match rexxNumber '\d*[eE][\-+]\d\+' contained

" Floating point like number with E and decimal point (+,-)
syn match rexxNumber '[-+]\s*\d*\.\d*[eE][\-+]\d\+' contained
syn match rexxNumber '\d*\.\d*[eE][\-+]\d\+' contained


" ooRexx builtin classes (as of version 3.2.0, fall 2007), first define dot to be o.k. in keywords
syn keyword rexxBuiltinClass .Alarm .ArgUtil .Array .Bag .CaselessColumnComparator
syn keyword rexxBuiltinClass .CaselessComparator .CaselessDescendingComparator .CircularQueue
syn keyword rexxBuiltinClass .Class .Collection .ColumnComparator .Comparable .Comparator
syn keyword rexxBuiltinClass .DateTime .DescendingComparator .Directory .File .InputOutputStream
syn keyword rexxBuiltinClass .InputStream .InvertingComparator .List .MapCollection
syn keyword rexxBuiltinClass .Message .Method .Monitor .MutableBuffer .Object
syn keyword rexxBuiltinClass .OrderedCollection .OutputStream .Package .Properties .Queue
syn keyword rexxBuiltinClass .RegularExpression .Relation .RexxContext .RexxQueue .Routine
syn keyword rexxBuiltinClass .Set .SetCollection .Stem .Stream
syn keyword rexxBuiltinClass .StreamSupplier .String .Supplier .Table .TimeSpan

" Windows-only classes
syn keyword rexxBuiltinClass .AdvancedControls .AnimatedButton .BaseDialog .ButtonControl
syn keyword rexxBuiltinClass .CategoryDialog .CheckBox .CheckList .ComboBox .DialogControl
syn keyword rexxBuiltinClass .DialogExtensions .DlgArea .DlgAreaU .DynamicDialog
syn keyword rexxBuiltinClass .EditControl .InputBox .IntegerBox .ListBox .ListChoice
syn keyword rexxBuiltinClass .ListControl .MenuObject .MessageExtensions .MultiInputBox
syn keyword rexxBuiltinClass .MultiListChoice .OLEObject .OLEVariant
syn keyword rexxBuiltinClass .PasswordBox .PlainBaseDialog .PlainUserDialog
syn keyword rexxBuiltinClass .ProgressBar .ProgressIndicator .PropertySheet .RadioButton
syn keyword rexxBuiltinClass .RcDialog .ResDialog .ScrollBar .SingleSelection .SliderControl
syn keyword rexxBuiltinClass .StateIndicator .StaticControl .TabControl .TimedMessage
syn keyword rexxBuiltinClass .TreeControl .UserDialog .VirtualKeyCodes .WindowBase
syn keyword rexxBuiltinClass .WindowExtensions .WindowObject .WindowsClassesBase .WindowsClipboard
syn keyword rexxBuiltinClass .WindowsEventLog .WindowsManager .WindowsProgramManager .WindowsRegistry

" BSF4ooRexx classes
syn keyword rexxBuiltinClass .BSF .bsf.dialog .bsf_proxy
syn keyword rexxBuiltinClass .UNO .UNO_ENUM .UNO_CONSTANTS .UNO_PROPERTIES

" ooRexx directives, ---rgf location important, otherwise directives in top of file not matched!
syn region rexxClassDirective     start="::\s*class\s*"ms=e+1    end="\ze\(\s\|;\|$\)"
syn region rexxMethodDirective    start="::\s*method\s*"ms=e+1   end="\ze\(\s\|;\|$\)"
syn region rexxRequiresDirective  start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
syn region rexxRoutineDirective   start="::\s*routine\s*"ms=e+1  end="\ze\(\s\|;\|$\)"
syn region rexxAttributeDirective start="::\s*attribute\s*"ms=e+1  end="\ze\(\s\|;\|$\)"
" rgf, 2012-09-09
syn region rexxOptionsDirective   start="::\s*options\s*"ms=e+1  end="\ze\(\s\|;\|$\)"
syn region rexxConstantDirective  start="::\s*constant\s*"ms=e+1  end="\ze\(\s\|;\|$\)"

syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+"  end="\($\|;\)" contains=rexxString,rexxNumber,rexxComment,rexxLineComment,rexxClassDirective,rexxMethodDirective,rexxRoutineDirective,rexxRequiresDirective,rexxAttributeDirective,rexxOptionsDirective,rexxConstantDirective keepend

syn match rexxOptionsDirective2 "\<\(digits\|form\|fuzz\|trace\)\>" containedin = rexxOptionsDirective3
syn region rexxOptionsDirective3 start="\(^\|;\)\s*::\s*options\s"ms=e+1  end="\($\|;\)" contains=rexxString,rexxNumber,rexxVariable,rexxComment,rexxLineComment containedin = rexxDirective


syn region rexxVariable start="\zs\<\(\.\)\@!\K\k\+\>\ze\s*\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)" end="\(\_$\|.\)"me=e-1
syn match rexxVariable "\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)\s*\zs\K\k*\ze"

" rgf, 2007-07-22: unfortunately, the entire region is colored (not only the
" patterns), hence useless (vim 7.0)! (syntax-docs hint that that should work)
" attempt: just colorize the parenthesis in matching colors, keep content
"          transparent to keep the formatting already done to it!
" TODO: test on 7.3
" syn region par1 matchgroup=par1 start="(" matchgroup=par1 end=")" transparent contains=par2
" syn region par2 matchgroup=par2 start="(" matchgroup=par2 end=")" transparent contains=par3 contained
" syn region par3 matchgroup=par3 start="(" matchgroup=par3 end=")" transparent contains=par4 contained
" syn region par4 matchgroup=par4 start="(" matchgroup=par4 end=")" transparent contains=par5 contained
" syn region par5 matchgroup=par5 start="(" matchgroup=par5 end=")" transparent contains=par1 contained

" this will colorize the entire region, removing any colorizing already done!
" syn region par1 matchgroup=par1 start="(" end=")" contains=par2
" syn region par2 matchgroup=par2 start="(" end=")" contains=par3 contained
" syn region par3 matchgroup=par3 start="(" end=")" contains=par4 contained
" syn region par4 matchgroup=par4 start="(" end=")" contains=par5 contained
" syn region par5 matchgroup=par5 start="(" end=")" contains=par1 contained

hi par1 ctermfg=red 		guifg=red          "guibg=grey
hi par2 ctermfg=blue 		guifg=blue         "guibg=grey
hi par3 ctermfg=darkgreen 	guifg=darkgreen    "guibg=grey
hi par4 ctermfg=darkyellow	guifg=darkyellow   "guibg=grey
hi par5 ctermfg=darkgrey 	guifg=darkgrey     "guibg=grey

" line continuation (trailing comma or single dash)
syn sync linecont "\(,\|-\ze-\@!\)\ze\s*\(--.*\|\/\*.*\)*$"

" if !exists("rexx_minlines")
"   let rexx_minlines = 500
" endif
" exec "syn sync ccomment rexxComment minlines=" . rexx_minlines

" always scan from start, PCs have long become to be powerful enough for that
exec "syn sync fromstart"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" make binary and hex strings stand out
hi rexxStringConstant term=bold,underline ctermfg=5 cterm=bold guifg=darkMagenta gui=bold

hi def link rexxLabel2		Function
hi def link doLoopSelectLabelRegion	rexxKeyword
hi def link endIterateLeaveLabelRegion	rexxKeyword
hi def link rexxLoopKeywords	rexxKeyword " Todo

hi def link rexxNumber		Normal "DiffChange
"  hi def link rexxIdentifier		DiffChange

hi def link rexxRegularCallSignal	Statement
hi def link rexxExceptionHandling	Statement

hi def link rexxLabel		Function
hi def link rexxCharacter		Character
hi def link rexxParenError		rexxError
hi def link rexxInParen		rexxError
hi def link rexxCommentError	rexxError
hi def link rexxError		Error
hi def link rexxKeyword		Statement
hi def link rexxKeywordStatements	Statement

hi def link rexxFunction		Function
hi def link rexxString		String
hi def link rexxComment		Comment
hi def link rexxTodo		Todo
hi def link rexxSpecialVariable	Special
hi def link rexxConditional	rexxKeyword

hi def link rexxOperator		Operator
hi def link rexxMessageOperator	rexxOperator
hi def link rexxLineComment	Comment

hi def link rexxLineContinue	WildMenu

hi def link rexxDirective		rexxKeyword
hi def link rexxClassDirective	Type
hi def link rexxMethodDirective	rexxFunction
hi def link rexxAttributeDirective	rexxFunction
hi def link rexxRequiresDirective	Include
hi def link rexxRoutineDirective	rexxFunction

" rgf, 2012-09-09
hi def link rexxOptionsDirective	rexxFunction
hi def link rexxOptionsDirective2  rexxOptionsDirective
hi def link rexxOptionsDirective3  Normal " rexxOptionsDirective

hi def link rexxConstantDirective	rexxFunction

hi def link rexxConst		Constant
hi def link rexxTypeSpecifier	Type
hi def link rexxBuiltinClass	rexxTypeSpecifier

hi def link rexxEnvironmentSymbol  rexxConst
hi def link rexxMessage		rexxFunction

hi def link rexxParse              rexxKeyword
hi def link rexxParse2             rexxParse

hi def link rexxGuard              rexxKeyword
hi def link rexxTrace              rexxKeyword

hi def link rexxRaise              rexxKeyword
hi def link rexxRaise2             rexxRaise

hi def link rexxForward            rexxKeyword
hi def link rexxForward2           rexxForward


let b:current_syntax = "rexx"

"vim: ts=8
PK�j�Zcz.�jjvim80/syntax/taskedit.vimnu�[���" Vim syntax file
" Language:	support for 'task 42 edit'
" Maintainer:	John Florian <jflorian@doubledog.org>
" Updated:	Wed Jul  8 19:46:32 EDT 2009


" quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn match taskeditHeading	"^\s*#\s*Name\s\+Editable details\s*$" contained
syn match taskeditHeading	"^\s*#\s*-\+\s\+-\+\s*$" contained
syn match taskeditReadOnly	"^\s*#\s*\(UU\)\?ID:.*$" contained
syn match taskeditReadOnly	"^\s*#\s*Status:.*$" contained
syn match taskeditReadOnly	"^\s*#\s*i\?Mask:.*$" contained
syn match taskeditKey		"^ *.\{-}:" nextgroup=taskeditString
syn match taskeditComment	"^\s*#.*$"
			\	contains=taskeditReadOnly,taskeditHeading
syn match taskeditString	".*$" contained contains=@Spell


" The default methods for highlighting.  Can be overridden later.
hi def link taskeditComment	Comment
hi def link taskeditHeading	Function
hi def link taskeditKey		Statement
hi def link taskeditReadOnly	Special
hi def link taskeditString	String

let b:current_syntax = "taskedit"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:noexpandtab
PK�j�Z��hj�
�
vim80/syntax/ahdl.vimnu�[���" Vim syn file
" Language:	Altera AHDL
" Maintainer:	John Cook <john.cook@kla-tencor.com>
" Last Change:	2001 Apr 25

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

"this language is oblivious to case.
syn case ignore

" a bunch of keywords
syn keyword ahdlKeyword assert begin bidir bits buried case clique
syn keyword ahdlKeyword connected_pins constant defaults define design
syn keyword ahdlKeyword device else elsif end for function generate
syn keyword ahdlKeyword gnd help_id if in include input is machine
syn keyword ahdlKeyword node of options others output parameters
syn keyword ahdlKeyword returns states subdesign table then title to
syn keyword ahdlKeyword tri_state_node variable vcc when with

" a bunch of types
syn keyword ahdlIdentifier carry cascade dffe dff exp global
syn keyword ahdlIdentifier jkffe jkff latch lcell mcell memory opendrn
syn keyword ahdlIdentifier soft srffe srff tffe tff tri wire x

syn keyword ahdlMegafunction lpm_and lpm_bustri lpm_clshift lpm_constant
syn keyword ahdlMegafunction lpm_decode lpm_inv lpm_mux lpm_or lpm_xor
syn keyword ahdlMegafunction busmux mux

syn keyword ahdlMegafunction divide lpm_abs lpm_add_sub lpm_compare
syn keyword ahdlMegafunction lpm_counter lpm_mult

syn keyword ahdlMegafunction altdpram csfifo dcfifo scfifo csdpram lpm_ff
syn keyword ahdlMegafunction lpm_latch lpm_shiftreg lpm_ram_dq lpm_ram_io
syn keyword ahdlMegafunction lpm_rom lpm_dff lpm_tff clklock pll ntsc

syn keyword ahdlTodo contained TODO

" String contstants
syn region ahdlString start=+"+  skip=+\\"+  end=+"+

" valid integer number formats (decimal, binary, octal, hex)
syn match ahdlNumber '\<\d\+\>'
syn match ahdlNumber '\<b"\(0\|1\|x\)\+"'
syn match ahdlNumber '\<\(o\|q\)"\o\+"'
syn match ahdlNumber '\<\(h\|x\)"\x\+"'

" operators
syn match   ahdlOperator "[!&#$+\-<>=?:\^]"
syn keyword ahdlOperator not and nand or nor xor xnor
syn keyword ahdlOperator mod div log2 used ceil floor

" one line and multi-line comments
" (define these after ahdlOperator so -- overrides -)
syn match  ahdlComment "--.*" contains=ahdlNumber,ahdlTodo
syn region ahdlComment start="%" end="%" contains=ahdlNumber,ahdlTodo

" other special characters
syn match   ahdlSpecialChar "[\[\]().,;]"

syn sync minlines=1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link ahdlNumber		ahdlString
hi def link ahdlMegafunction	ahdlIdentifier
hi def link ahdlSpecialChar	SpecialChar
hi def link ahdlKeyword		Statement
hi def link ahdlString		String
hi def link ahdlComment		Comment
hi def link ahdlIdentifier		Identifier
hi def link ahdlOperator		Operator
hi def link ahdlTodo		Todo


let b:current_syntax = "ahdl"
" vim:ts=8
PK�j�Z��|
|
vim80/syntax/vim.vimnu�[���" Vim syntax file
" Language:	Vim 8.0 script
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	February 13, 2018
" Version:		8.0-12
" URL:			http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
" Automatically generated keyword lists: {{{1

" Quit when a syntax file was already loaded {{{2
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

" vimTodo: contains common special-notices for comments {{{2
" Use the vimCommentGroup cluster to add your own.
syn keyword vimTodo contained	COMBAK	FIXME	TODO	XXX
syn cluster vimCommentGroup	contains=vimTodo,@Spell

" regular vim commands {{{2
syn keyword vimCommand contained	a  arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] cc cf[ile] changes cla[st] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea el[se] endt[ry] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] isp[lit] keepa l[ist] lat lcl[ose] lex[pr] lgete[xpr] lla[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkv[imrc] n[ext] nmapc[lear] nore omapc[lear] pa[ckadd] perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] pyx quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs te[aroff] tm[enu] to[pleft] tu[nmenu] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
syn keyword vimCommand contained	ab argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] ccl[ose] cfdo chd[ir] cle[arjumps] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier elsei[f] endw[hile] files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] iuna[bbrev] keepalt la[st] later lcs lf[ile] lgr[ep] lli[st] lo[adview] lop[en] lua m[ove] mes mkvie[w] nb[key] noa nos[wapfile] on[ly] packl[oadall] po[p] pro ps[earch] ptl[ast] pu[t] pydo pyxdo r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tf[irst] tma[p] tp[revious] tunma[p] unh[ide] v  vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
syn keyword vimCommand contained	abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cd cfir[st] che[ckpath] clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i  imapc[lear] j[oin] keepj[umps] lad[dexpr] lb[uffer] lcscope lfdo lgrepa[dd] lmak[e] loadk lp[revious] luado ma[rk] messages mod[e] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] pyxfile rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] tmapc[lear] tr[ewind] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
syn keyword vimCommand contained	abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] cdo cg[etfile] checkt[ime] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] ia in ju[mps] keepp[atterns] laddb[uffer] lbo[ttom] ld[o] lfir[st] lh[elpgrep] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mk[exrc] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t  tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tn[ext] try una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
syn keyword vimCommand contained	al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] ce[nter] cgetb[uffer] chi[story] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro k  lN[ext] laddf[ile] lc[d] le[ft] lg[etfile] lhi[story] lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mks[ession] mzf[ile] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do pythonx qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tno[remap] ts[elect] undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
syn keyword vimCommand contained	ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g  h[elp] hi if is[earch] kee[pmarks] lNf[ile] lan[guage] lch[dir] lefta[bove] lgetb[uffer] ll lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell]
syn match   vimCommand contained	"\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained	DiffOrig Man N[ext] P[rint] S  TOhtml XMLent XMLns

" vimOptions are caught only when contained in a vimSet {{{2
syn keyword vimOption contained	acd ambw arshape background ballooneval bg bomb bs cb ch cinoptions cms commentstring copyindent cscopepathcomp csprg cursorbind delcombine digraph eadirection emo equalprg expandtab fdls fex fileignorecase fml foldlevel formatexpr gcr go guifontset helpheight history hlsearch imactivatekey imi imstyle indentkeys isf isprint km laststatus lisp loadplugins lz mat maxmempattern mh mmp more mouses mzq number opendevice paragraphs penc pi previewheight printmbcharset pvw rdt renderoptions rl ru sbo scrollbind secure shcf shelltemp shortmess showtabline sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs termguicolors tf title tms ts ttybuiltin tx undolevels vbs viewdir vop wd wic wildmode winheight wm wrapscan
syn keyword vimOption contained	ai anti autochdir backspace balloonexpr bh breakat bsdir cc charconvert cinw co compatible cot cscopeprg csqf cursorcolumn dex dip eb emoji errorbells exrc fdm ff filetype fmr foldlevelstart formatlistpat gd gp guifontwide helplang hk ic imaf iminsert inc indk isfname joinspaces kmp lazyredraw lispwords lpl ma matchpairs maxmemtot mis mmt mouse mouseshape mzquantum numberwidth operatorfunc paste perldll pm previewwindow printmbfont pythondll re report rlc rubydll sbr scrolljump sel shell shelltype shortname shq slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc termkey tgc titlelen to tsl ttyfast uc undoreload vdir viewoptions wa weirdinvert wig wildoptions winminheight wmh write
syn keyword vimOption contained	akm antialias autoindent backup bdir bin breakindent bsk ccv ci cinwords cocu complete cp cscopequickfix csre cursorline dg dir ed enc errorfile fcl fdn ffs fillchars fo foldmarker formatoptions gdefault grepformat guiheadroom hf hkmap icon imak ims include inex isi js kp lbr list lrm macatsui matchtime mco mkspellmem mod mousef mouset mzschemedll nuw opfunc pastetoggle pex pmbcs printdevice printoptions pythonthreedll readonly restorescreen rnu ruf sc scrolloff selection shellcmdflag shellxescape showbreak si sm so spellfile spr st sts swapsync syn tag tal tcldll termsize tgst titleold toolbar tsr ttym udf updatecount ve vif wak wfh wildchar wim winminwidth wmnu writeany
syn keyword vimOption contained	al ar autoread backupcopy bdlay binary breakindentopt bt cd cin clipboard cole completefunc cpo cscoperelative cst cwh dict directory edcompatible encoding errorformat fcs fdo fic fixendofline foldclose foldmethod formatprg gfm grepprg guioptions hh hkmapp iconstring imc imsearch includeexpr inf isident key langmap lcs listchars ls magic maxcombine mef ml modeline mousefocus mousetime mzschemegcdll odev osfiletype patchexpr pexpr pmbfn printencoding prompt pyx redrawtime revins ro ruler scb scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc terse thesaurus titlestring toolbariconsize ttimeout ttymouse udir updatetime verbose viminfo warn wfw wildcharm winaltkeys winptydll wmw writebackup
syn keyword vimOption contained	aleph arab autowrite backupdir belloff bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscopetag csto debug dictionary display ef endofline esckeys fdc fdt fileencoding fixeol foldcolumn foldminlines fp gfn gtl guipty hi hkp ignorecase imcmdline imsf incsearch infercase isk keymap langmenu linebreak lm lsp makeef maxfuncdepth menc mls modelines mousehide mp nf oft pa patchmode pfn popt printexpr pt pyxversion regexpengine ri rop rulerformat scl scs sessionoptions shellquote shiftround showfulltag sidescrolloff smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term textauto tildeop tk top ttimeoutlen ttyscroll ul ur verbosefile viminfofile wb wh wildignore window winwidth wop writedelay
syn keyword vimOption contained	allowrevins arabic autowriteall backupext beval bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetagorder csverb deco diff dy efm eol et fde fen fileencodings fk foldenable foldnestmax fs gfs gtt guitablabel hid hl im imd imst inde insertmode iskeyword keymodel langnoremap lines lmap luadll makeencoding maxmapdepth menuitems mm modifiable mousem mps nrformats ofu packpath path ph pp printfont pumheight qe relativenumber rightleft rs runtimepath scr sect sft shellredir shiftwidth showmatch signcolumn smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi textmode timeout tl tpm ttm ttytype undodir ut vfile virtualedit wc whichwrap wildignorecase winfixheight wiv wrap ws
syn keyword vimOption contained	altkeymap arabicshape aw backupskip bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc def diffexpr ea ei ep eventignore fdi fenc fileformat fkmap foldexpr foldopen fsync gfw guicursor guitabtooltip hidden hlg imactivatefunc imdisable imstatusfunc indentexpr is isp keywordprg langremap linespace lnr lw makeprg maxmem mfd mmd modified mousemodel msm nu omnifunc para pdev pheader preserveindent printheader pvh quoteescape remap rightleftcmd rtp sb scroll sections sh shellslash shm showmode siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding textwidth timeoutlen tm tr tty tw undofile vb vi visualbell wcm wi wildmenu winfixwidth wiw wrapmargin ww
syn keyword vimOption contained	ambiwidth ari awa balloondelay bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls

" vimOptions: These are the turn-off setting variants {{{2
syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois nolangnoremap nolazyredraw nolinebreak nolist noloadplugins nolrm noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained	noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noemo noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangremap nolbr nolisp nolnr nolpl nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained	noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs

" vimOptions: These are the invertible variants {{{2
syn keyword vimOption contained	invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis invlangnoremap invlazyredraw invlinebreak invlist invloadplugins invlrm invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained	invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangremap invlbr invlisp invlnr invlpl invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained	invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs

" termcap codes (which can also be set) {{{2
syn keyword vimOption contained	t_8b t_AB t_al t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F2 t_F4 t_F6 t_F8 t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_RI t_RS t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_so t_sr t_SR t_te t_Te t_ti t_ts t_Ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR
syn keyword vimOption contained	t_8f t_AF t_AL t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7
syn match   vimOption contained	"t_%1"
syn match   vimOption contained	"t_#2"
syn match   vimOption contained	"t_#4"
syn match   vimOption contained	"t_@7"
syn match   vimOption contained	"t_*7"
syn match   vimOption contained	"t_&8"
syn match   vimOption contained	"t_%i"
syn match   vimOption contained	"t_k;"

" unsupported settings: some were supported by vi but don't do anything in vim {{{2
" others have been dropped along with msdos support
syn keyword vimErrSetting contained	bioskey biosk conskey consk autoprint beautify flash graphic hardtabs mesg novice open op optimize redraw slow slowopen sourceany w300 w1200 w9600 hardtabs ht nobioskey nobiosk noconskey noconsk noautoprint nobeautify noflash nographic nohardtabs nomesg nonovice noopen noop nooptimize noredraw noslow noslowopen nosourceany now300 now1200 now9600 w1200 w300 w9600

" AutoCmd Events {{{2
syn case ignore
syn keyword vimAutoEvent contained	BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineEnter CmdlineLeave CmdUndefined CmdwinEnter CmdwinLeave ColorScheme CompleteDone CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TermResponse TextChanged TextChangedI User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew

" Highlight commonly used Groupnames {{{2
syn keyword vimGroup contained	Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo

" Default highlighting groups {{{2
syn keyword vimHLGroup contained	ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
syn match vimHLGroup contained	"Conceal"
syn case match

" Function Names {{{2
syn keyword vimFuncName contained	abs append argv assert_fails assert_notequal atan browsedir bufname byte2line ceil ch_close ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode len line2byte log10 mapcheck matcharg matchstr mkdir nr2char pow py3eval readfile remote_expr remote_send repeat screenattr search searchpos setbufvar setline setqflist setwinvar simplify soundfold sqrt strcharpart strftime string strridx submatch synID synstack tabpagebuflist tagfiles tanh term_getattr term_getline term_getstatus term_gettty term_sendkeys term_wait test_feedinput test_null_channel test_null_list test_override timer_pause timer_stopall tr undofile values wildmenumode win_findbuf winheight winline winrestview wordcount
syn keyword vimFuncName contained	acos argc asin assert_false assert_notmatch atan2 bufexists bufnr byteidx changenr ch_close_in ch_getjob ch_open ch_sendraw clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchar getcmdpos getcurpos getfsize getloclist getqflist gettabvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode libcall lispindent luaeval match matchdelete matchstrpos mode or prevnonblank pyeval reltime remote_foreground remote_startserver resolve screenchar searchdecl server2client setcharsearch setloclist setreg sha256 sin spellbadword str2float strchars strgetchar strlen strtrans substitute synIDattr system tabpagenr taglist tempname term_getcursor term_getscrolled term_gettitle term_list term_setsize test_alloc_fail test_garbagecollect_now test_null_dict test_null_partial test_settime timer_start tolower trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview writefile
syn keyword vimFuncName contained	add argidx assert_equal assert_inrange assert_report balloon_show buflisted bufwinid byteidxcomp char2nr ch_evalexpr ch_info ch_read ch_setoptions col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getcharmod getcmdtype getcwd getftime getmatches getreg gettabwinvar getwinvar has histadd hlexists indent inputlist insert isnan job_setoptions join json_encode libcallnr localtime map matchadd matchend max mzeval pathshorten printf pyxeval reltimefloat remote_peek remove reverse screencol searchpair serverlist setcmdpos setmatches settabvar shellescape sinh spellsuggest str2nr strdisplaywidth stridx strpart strwidth synconcealed synIDtrans systemlist tabpagewinnr tan term_getaltscreen term_getjob term_getsize term_getttty term_scrape term_start test_autochdir test_ignore_error test_null_job test_null_string timer_info timer_stop toupper type uniq visualmode wincol win_gotoid win_id2win winrestcmd winwidth xor
syn keyword vimFuncName contained	and arglistid assert_exception assert_match assert_true browse bufloaded bufwinnr call ch_canread ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlID index inputrestore invert items job_start js_decode keys line log maparg matchaddpos matchlist min nextnonblank perleval pumvisible range reltimestr remote_read rename round screenrow searchpairpos setbufline setfperm setpos settabwinvar shiftwidth sort split

"--- syntax here and above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1

" Set up folding commands
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[aflmpPrt]'
 if g:vimsyn_folding =~# 'a'
  com! -nargs=* VimFolda <args> fold
 else
  com! -nargs=* VimFolda <args>
 endif
 if g:vimsyn_folding =~# 'f'
  com! -nargs=* VimFoldf <args> fold
 else
  com! -nargs=* VimFoldf <args>
 endif
 if g:vimsyn_folding =~# 'l'
  com! -nargs=* VimFoldl <args> fold
 else
  com! -nargs=* VimFoldl <args>
 endif
 if g:vimsyn_folding =~# 'm'
  com! -nargs=* VimFoldm <args> fold
 else
  com! -nargs=* VimFoldm <args>
 endif
 if g:vimsyn_folding =~# 'p'
  com! -nargs=* VimFoldp <args> fold
 else
  com! -nargs=* VimFoldp <args>
 endif
 if g:vimsyn_folding =~# 'P'
  com! -nargs=* VimFoldP <args> fold
 else
  com! -nargs=* VimFoldP <args>
 endif
 if g:vimsyn_folding =~# 'r'
  com! -nargs=* VimFoldr <args> fold
 else
  com! -nargs=* VimFoldr <args>
 endif
 if g:vimsyn_folding =~# 't'
  com! -nargs=* VimFoldt <args> fold
 else
  com! -nargs=* VimFoldt <args>
 endif
else
 com! -nargs=*	VimFolda	<args>
 com! -nargs=*	VimFoldf	<args>
 com! -nargs=*	VimFoldl	<args>
 com! -nargs=*	VimFoldm	<args>
 com! -nargs=*	VimFoldp	<args>
 com! -nargs=*	VimFoldP	<args>
 com! -nargs=*	VimFoldr	<args>
 com! -nargs=*	VimFoldt	<args>
endif

" commands not picked up by the generator (due to non-standard format)
syn keyword vimCommand contained	py3

" Deprecated variable options {{{2
if exists("g:vim_minlines")
 let g:vimsyn_minlines= g:vim_minlines
endif
if exists("g:vim_maxlines")
 let g:vimsyn_maxlines= g:vim_maxlines
endif
if exists("g:vimsyntax_noerror")
 let g:vimsyn_noerror= g:vimsyntax_noerror
endif

" Variable options {{{2
if exists("g:vim_maxlines")
 let s:vimsyn_maxlines= g:vim_maxlines
else
 let s:vimsyn_maxlines= 60
endif

" Numbers {{{2
" =======
syn match vimNumber	"\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber	"-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\="  skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber	"\<0[xX]\x\+"
syn match vimNumber	"\%(^\|\A\)\zs#\x\{6}"

" All vimCommands are contained by vimIsCommands. {{{2
syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=vimAddress,vimAutoCmd,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
syn match vimIsCommand	"\<\h\w*\>"	contains=vimCommand
syn match vimVar        contained	"\<\h[a-zA-Z0-9#_]*\>"
syn match vimVar		"\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
syn match vimFBVar      contained   "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
syn keyword vimCommand  contained	in

" Insertions And Appends: insert append {{{2
" =======================
syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$"	matchgroup=vimCommand end="^\.$""
syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$"	matchgroup=vimCommand end="^\.$""
syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$"	matchgroup=vimCommand end="^\.$""

" Behave! {{{2
" =======
syn match   vimBehave	"\<be\%[have]\>" skipwhite nextgroup=vimBehaveModel,vimBehaveError
syn keyword vimBehaveModel contained	mswin	xterm
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nobehaveerror")
 syn match   vimBehaveError contained	"[^ ]\+"
endif

" Filetypes {{{2
" =========
syn match   vimFiletype	"\<filet\%[ype]\(\s\+\I\i*\)*"	skipwhite contains=vimFTCmd,vimFTOption,vimFTError
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimFTError")
 syn match   vimFTError  contained	"\I\i*"
endif
syn keyword vimFTCmd    contained	filet[ype]
syn keyword vimFTOption contained	detect indent off on plugin

" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
syn cluster vimAugroupList	contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue,vimSetEqual,vimOption
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
 syn region  vimAugroup	fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>"	contains=vimAutoCmd,@vimAugroupList
else
 syn region  vimAugroup	matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>"		contains=vimAutoCmd,@vimAugroupList
endif
syn match   vimAugroup	"aug\%[roup]!"	contains=vimAugroupKey
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror")
 syn match   vimAugroupError	"\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
endif
syn keyword vimAugroupKey contained	aug[roup]

" Operators: {{{2
" =========
syn cluster	vimOperGroup	contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
syn match	vimOper	"\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
syn match	vimOper	"\(\<is\>\|\<isnot\>\)[?#]\{0,2}"		skipwhite nextgroup=vimString,vimSpecFile
syn match	vimOper	"||\|&&\|[-+.]"			skipwhite nextgroup=vimString,vimSpecFile
syn region	vimOperParen 	matchgroup=vimParenSep	start="(" end=")" contains=@vimOperGroup
syn region	vimOperParen	matchgroup=vimSep		start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
 syn match	vimOperError	")"
endif

" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
" =========
syn cluster	vimFuncList	contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
syn cluster	vimFuncBodyList	contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
syn match	vimFunction	"\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*("	contains=@vimFuncList nextgroup=vimFuncBody

if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
 syn region	vimFuncBody  contained	fold start="\ze\s*("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
else
 syn region	vimFuncBody  contained	start="\ze\s*("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
endif
syn match	vimFuncVar   contained	"a:\(\K\k*\|\d\+\)"
syn match	vimFuncSID   contained	"\c<sid>\|\<s:"
syn keyword	vimFuncKey   contained	fu[nction]
syn match	vimFuncBlank contained	"\s\+"

syn keyword	vimPattern   contained	start	skip	end

" Special Filenames, Modifiers, Extension Removal: {{{2
" ===============================================
syn match	vimSpecFile	"<c\(word\|WORD\)>"	nextgroup=vimSpecFileMod,vimSubst
syn match	vimSpecFile	"<\([acs]file\|amatch\|abuf\)>"	nextgroup=vimSpecFileMod,vimSubst
syn match	vimSpecFile	"\s%[ \t:]"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
syn match	vimSpecFile	"\s%$"ms=s+1	nextgroup=vimSpecFileMod,vimSubst
syn match	vimSpecFile	"\s%<"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
syn match	vimSpecFile	"#\d\+\|[#%]<\>"	nextgroup=vimSpecFileMod,vimSubst
syn match	vimSpecFileMod	"\(:[phtre]\)\+"	contained

" User-Specified Commands: {{{2
" =======================
syn cluster	vimUserCmdList	contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
syn keyword	vimUserCommand	contained	com[mand]
syn match	vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList
syn match	vimUserAttrbError	contained	"-\a\+\ze\s"
syn match	vimUserAttrb	contained	"-nargs=[01*?+]"	contains=vimUserAttrbKey,vimOper
syn match	vimUserAttrb	contained	"-complete="		contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
syn match	vimUserAttrb	contained	"-range\(=%\|=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
syn match	vimUserAttrb	contained	"-count\(=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
syn match	vimUserAttrb	contained	"-bang\>"		contains=vimOper,vimUserAttrbKey
syn match	vimUserAttrb	contained	"-bar\>"		contains=vimOper,vimUserAttrbKey
syn match	vimUserAttrb	contained	"-buffer\>"		contains=vimOper,vimUserAttrbKey
syn match	vimUserAttrb	contained	"-register\>"		contains=vimOper,vimUserAttrbKey
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror")
 syn match	vimUserCmdError	contained	"\S\+\>"
endif
syn case ignore
syn keyword	vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
syn keyword	vimUserAttrbCmplt contained	augroup buffer behave color command compiler cscope dir environment event expression file file_in_path filetype function help highlight history locale mapping menu option packadd shellcmd sign syntax syntime tag tag_listfiles user var
syn keyword	vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
syn match	vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError

syn case match
syn match	vimUserAttrbCmplt contained	"custom,\u\w*"

" Lower Priority Comments: after some vim commands... {{{2
" =======================
syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString
syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString
syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString
syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e	end='"'

" Environment Variables: {{{2
" =====================
syn match	vimEnvvar	"\$\I\i*"
syn match	vimEnvvar	"\${\I\i*}"

" In-String Specials: {{{2
" Try to catch strings, if nothing else matches (therefore it must precede the others!)
"  vimEscapeBrace handles ["]  []"] (ie. "s don't terminate string inside [])
syn region	vimEscapeBrace	oneline   contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
syn match	vimPatSepErr	contained	"\\)"
syn match	vimPatSep	contained	"\\|"
syn region	vimPatSepZone	oneline   contained   matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]"	contains=@vimStringGroup
syn region	vimPatRegion	contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)"	contains=@vimSubstList oneline
syn match	vimNotPatSep	contained	"\\\\"
syn cluster	vimStringGroup	contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+	contains=@vimStringGroup
syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+
syn region	vimString	oneline	start=+=!+lc=1	skip=+\\\\\|\\!+ end=+!+	contains=@vimStringGroup
syn region	vimString	oneline	start="=+"lc=1	skip="\\\\\|\\+" end="+"	contains=@vimStringGroup
syn region	vimString	oneline	start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"	contains=@vimStringGroup
syn match	vimString	contained	+"[^"]*\\$+	skipnl nextgroup=vimStringCont
syn match	vimStringCont	contained	+\(\\\\\|.\)\{-}[^\\]"+

" Substitutions: {{{2
" =============
syn cluster	vimSubstList	contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
syn cluster	vimSubstRepList	contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
syn cluster	vimSubstList	add=vimCollection
syn match	vimSubst	"\(:\+\s*\|^\s*\||\s*\)\<\%(\<s\%[ubstitute]\>\|\<sm\%[agic]\>\|\<sno\%[magic]\>\)[:#[:alpha:]]\@!" nextgroup=vimSubstPat
syn match	vimSubst	"\%(^\|[^\\]\)\<s\%[ubstitute]\>[:#[:alpha:]]\@!"	nextgroup=vimSubstPat contained
syn match	vimSubst	"/\zs\<s\%[ubstitute]\>\ze/"		nextgroup=vimSubstPat
syn match	vimSubst	"\(:\+\s*\|^\s*\)s\ze#.\{-}#.\{-}#"		nextgroup=vimSubstPat
syn match	vimSubst1       contained	"\<s\%[ubstitute]\>"	nextgroup=vimSubstPat
syn region	vimSubstPat     contained	matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1	 contains=@vimSubstList	nextgroup=vimSubstRep4	oneline
syn region	vimSubstRep4    contained	matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList	nextgroup=vimSubstFlagErr	oneline
syn region	vimCollection   contained transparent	start="\\\@<!\[" skip="\\\[" end="\]"	contains=vimCollClass
syn match	vimCollClassErr contained	"\[:.\{-\}:\]"
syn match	vimCollClass    contained transparent	"\%#=1\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
syn match	vimSubstSubstr  contained	"\\z\=\d"
syn match	vimSubstTwoBS   contained	"\\\\"
syn match	vimSubstFlagErr contained	"[^< \t\r|]\+" contains=vimSubstFlags
syn match	vimSubstFlags   contained	"[&cegiIpr]\+"

" 'String': {{{2
syn match	vimString	"[^(,]'[^']\{-}\zs'"

" Marks, Registers, Addresses, Filters: {{{2
syn match	vimMark	"'[a-zA-Z0-9]\ze[-+,!]"	nextgroup=vimOper,vimMarkNumber,vimSubst
syn match	vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimOper,vimMarkNumber,vimSubst
syn match	vimMark	",\zs'[<>]\ze"		nextgroup=vimOper,vimMarkNumber,vimSubst
syn match	vimMark	"[!,:]\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
syn match	vimMark	"\<norm\%[al]\s\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
syn match	vimMarkNumber	"[-+]\d\+"		nextgroup=vimSubst contained contains=vimOper
syn match	vimPlainMark contained	"'[a-zA-Z0-9]"

syn match	vimRegister	'[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
syn match	vimRegister	'\<norm\s\+\zs"[a-zA-Z0-9]'
syn match	vimRegister	'\<normal\s\+\zs"[a-zA-Z0-9]'
syn match	vimRegister	'@"'
syn match	vimPlainRegister contained	'"[a-zA-Z0-9\-:.%#*+=]'

syn match	vimAddress	",\zs[.$]"	skipwhite nextgroup=vimSubst1
syn match	vimAddress	"%\ze\a"	skipwhite nextgroup=vimString,vimSubst1

syn match	vimFilter contained	"^!.\{-}\(|\|$\)"		contains=vimSpecFile
syn match	vimFilter contained	"\A!.\{-}\(|\|$\)"ms=s+1	contains=vimSpecFile,vimFunction,vimFuncName,vimOperParen

" Complex repeats (:h complex-repeat) {{{2
syn match	vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'

" Set command and associated set-options (vimOptions) with comment {{{2
syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline
syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar
syn match	vimSetSep	contained	"[,:]" skipwhite nextgroup=vimCommand
syn match	vimSetMod	contained	"&vim\=\|[!&?<]\|all&"

" Let {{{2
" ===
syn keyword	vimLet	let	unl[et]	skipwhite nextgroup=vimVar,vimFuncVar

" Abbreviations {{{2
" =============
syn keyword vimAbb	ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbrev] ia[bbrev] skipwhite nextgroup=vimMapMod,vimMapLhs

" Autocmd {{{2
" =======
syn match	vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace
syn match	vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList
syn match	vimAutoCmdSfxList	contained	"\S*"
syn keyword	vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList

" Echo and Execute -- prefer strings! {{{2
" ================
syn region	vimEcho	oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar
syn region	vimExecute	oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar
syn match	vimEchoHL	"echohl\="	skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone
syn case ignore
syn keyword	vimEchoHLNone	none
syn case match

" Maps {{{2
" ====
syn match	vimMap		"\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
syn keyword	vimMap		cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
syn keyword	vimMap		mapc[lear] smapc[lear]
syn keyword	vimUnmap		cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
syn match	vimMapLhs	contained	"\S\+"			contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
syn match	vimMapBang	contained	"!"			skipwhite nextgroup=vimMapMod,vimMapLhs
syn match	vimMapMod	contained	"\%#=1\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
syn match	vimMapRhs	contained	".*" contains=vimNotation,vimCtrlChar	skipnl nextgroup=vimMapRhsExtend
syn match	vimMapRhsExtend	contained	"^\s*\\.*$"			contains=vimContinue
syn case ignore
syn keyword	vimMapModKey	contained	buffer	expr	leader	localleader	nowait	plug	script	sid	silent	unique
syn case match

" Menus {{{2
" =====
syn cluster	vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
syn keyword	vimCommand	am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
syn match	vimMenuName	"[^ \t\\<]\+"	contained nextgroup=vimMenuNameMore,vimMenuMap
syn match	vimMenuPriority	"\d\+\(\.\d\+\)*"	contained skipwhite nextgroup=vimMenuName
syn match	vimMenuNameMore	"\c\\\s\|<tab>\|\\\."	contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation
syn match	vimMenuMod    contained	"\c<\(script\|silent\)\+>"  skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList
syn match	vimMenuMap	"\s"	contained skipwhite nextgroup=vimMenuRhs
syn match	vimMenuRhs	".*$"	contained contains=vimString,vimComment,vimIsCommand
syn match	vimMenuBang	"!"	contained skipwhite nextgroup=@vimMenuList

" Angle-Bracket Notation (tnx to Michael Geddes) {{{2
" ======================
syn case ignore
syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket
syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket
syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"			contains=vimBracket
syn match	vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1				contains=vimBracket
syn match	vimNotation	'\%#=1\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'	contains=vimBracket
syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket
syn match	vimBracket contained	"[\\<>]"
syn case match

" User Function Highlighting {{{2
" (following Gautam Iyer's suggestion)
" ==========================
syn match vimFunc		"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute
syn match vimUserFunc contained	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation
syn match vimNotFunc	"\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"

" Errors And Warnings: {{{2
" ====================
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
 syn match	vimFunctionError	"\s\zs[a-z0-9]\i\{-}\ze\s*("			contained contains=vimFuncKey,vimFuncBlank
" syn match	vimFunctionError	"\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*("	contained contains=vimFuncKey,vimFuncBlank
 syn match	vimElseIfErr	"\<else\s\+if\>"
 syn match	vimBufnrWarn	/\<bufnr\s*(\s*["']\.['"]\s*)/
endif

" Norm {{{2
" ====
syn match	vimNorm		"\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
syn match	vimNormCmds contained	".*$"

" Syntax {{{2
"=======
syn match	vimGroupList	contained	"@\=[^ \t,]*"	contains=vimGroupSpecial,vimPatSep
syn match	vimGroupList	contained	"@\=[^ \t,]*,"	nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
syn keyword	vimGroupSpecial	contained	ALL	ALLBUT	CONTAINED	TOP
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror")
 syn match	vimSynError	contained	"\i\+"
 syn match	vimSynError	contained	"\i\+="	nextgroup=vimGroupList
endif
syn match	vimSynContains	contained	"\<contain\(s\|edin\)="	nextgroup=vimGroupList
syn match	vimSynKeyContainedin	contained	"\<containedin="	nextgroup=vimGroupList
syn match	vimSynNextgroup	contained	"nextgroup="	nextgroup=vimGroupList

syn match	vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
syn match	vimAuSyntax	contained	"\s+sy\%[ntax]"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
syn cluster vimFuncBodyList add=vimSyntax

" Syntax: case {{{2
syn keyword	vimSynType	contained	case	skipwhite nextgroup=vimSynCase,vimSynCaseError
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncaseerror")
 syn match	vimSynCaseError	contained	"\i\+"
endif
syn keyword	vimSynCase	contained	ignore	match

" Syntax: clear {{{2
syn keyword	vimSynType	contained	clear	skipwhite nextgroup=vimGroupList

" Syntax: cluster {{{2
syn keyword	vimSynType	contained	cluster	skipwhite nextgroup=vimClusterName
syn region	vimClusterName	contained	matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
syn match	vimGroupAdd	contained	"add="	nextgroup=vimGroupList
syn match	vimGroupRem	contained	"remove="	nextgroup=vimGroupList
syn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem

" Syntax: iskeyword {{{2
syn keyword	vimSynType	contained	iskeyword	skipwhite nextgroup=vimIskList
syn match	vimIskList	contained	'\S\+'	contains=vimIskSep
syn match	vimIskSep	contained	','

" Syntax: include {{{2
syn keyword	vimSynType	contained	include	skipwhite nextgroup=vimGroupList
syn cluster vimFuncBodyList add=vimSynType

" Syntax: keyword {{{2
syn cluster	vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
syn keyword	vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion
syn region	vimSynKeyRegion	contained oneline keepend	matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
syn match	vimSynKeyOpt	contained	"\%#=1\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
syn cluster vimFuncBodyList add=vimSynType

" Syntax: match {{{2
syn cluster	vimSynMtchGroup	contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
syn keyword	vimSynType	contained	match	skipwhite nextgroup=vimSynMatchRegion
syn region	vimSynMatchRegion	contained keepend	matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
syn match	vimSynMtchOpt	contained	"\%#=1\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
if has("conceal")
 syn match	vimSynMtchOpt	contained	"\<cchar="	nextgroup=vimSynMtchCchar
 syn match	vimSynMtchCchar	contained	"\S"
endif
syn cluster vimFuncBodyList add=vimSynMtchGroup

" Syntax: off and on {{{2
syn keyword	vimSynType	contained	enable	list	manual	off	on	reset

" Syntax: region {{{2
syn cluster	vimSynRegPatGroup	contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
syn cluster	vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
syn keyword	vimSynType	contained	region	skipwhite nextgroup=vimSynRegion
syn region	vimSynRegion	contained keepend	matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
syn match	vimSynRegOpt	contained	"\%#=1\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
syn match	vimSynReg	contained	"\(start\|skip\|end\)="he=e-1	nextgroup=vimSynRegPat
syn match	vimSynMtchGrp	contained	"matchgroup="	nextgroup=vimGroup,vimHLGroup
syn region	vimSynRegPat	contained extend	start="\z([-`~!@#$%^&*_=+;:'",./?]\)"  skip="\\\\\|\\\z1"  end="\z1"  contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
syn match	vimSynPatMod	contained	"\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
syn match	vimSynPatMod	contained	"\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
syn match	vimSynPatMod	contained	"lc=\d\+"
syn match	vimSynPatMod	contained	"lc=\d\+," nextgroup=vimSynPatMod
syn region	vimSynPatRange	contained	start="\["	skip="\\\\\|\\]"   end="]"
syn match	vimSynNotPatRange	contained	"\\\\\|\\\["
syn match	vimMtchComment	contained	'"[^"]\+$'
syn cluster vimFuncBodyList add=vimSynType

" Syntax: sync {{{2
" ============
syn keyword vimSynType	contained	sync	skipwhite	nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncerror")
 syn match	vimSyncError	contained	"\i\+"
endif
syn keyword	vimSyncC	contained	ccomment	clear	fromstart
syn keyword	vimSyncMatch	contained	match	skipwhite	nextgroup=vimSyncGroupName
syn keyword	vimSyncRegion	contained	region	skipwhite	nextgroup=vimSynReg
syn match	vimSyncLinebreak	contained	"\<linebreaks="	skipwhite	nextgroup=vimNumber
syn keyword	vimSyncLinecont	contained	linecont	skipwhite	nextgroup=vimSynRegPat
syn match	vimSyncLines	contained	"\(min\|max\)\=lines="	nextgroup=vimNumber
syn match	vimSyncGroupName	contained	"\h\w*"	skipwhite	nextgroup=vimSyncKey
syn match	vimSyncKey	contained	"\<groupthere\|grouphere\>"	skipwhite nextgroup=vimSyncGroup
syn match	vimSyncGroup	contained	"\h\w*"	skipwhite	nextgroup=vimSynRegPat,vimSyncNone
syn keyword	vimSyncNone	contained	NONE

" Additional IsCommand, here by reasons of precedence {{{2
" ====================
syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation

" Highlighting {{{2
" ============
syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror")
 syn match	vimHiCtermError	contained	"\D\i*"
endif
syn match	vimHighlight	"\<hi\%[ghlight]\>"	skipwhite nextgroup=vimHiBang,@vimHighlightCluster
syn match	vimHiBang	contained	"!"	skipwhite nextgroup=@vimHighlightCluster

syn match	vimHiGroup	contained	"\i\+"
syn case ignore
syn keyword	vimHiAttrib	contained	none bold inverse italic nocombine reverse standout strikethrough underline undercurl
syn keyword	vimFgBgAttrib	contained	none bg background fg foreground
syn case match
syn match	vimHiAttribList	contained	"\i\+"	contains=vimHiAttrib
syn match	vimHiAttribList	contained	"\i\+,"he=e-1	contains=vimHiAttrib nextgroup=vimHiAttribList
syn case ignore
syn keyword	vimHiCtermColor	contained	black blue brown cyan darkblue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow
syn match	vimHiCtermColor	contained	"\<color\d\{1,3}\>"

syn case match
syn match	vimHiFontname	contained	"[a-zA-Z\-*]\+"
syn match	vimHiGuiFontname	contained	"'[a-zA-Z\-* ]\+'"
syn match	vimHiGuiRgb	contained	"#\x\{6}"

" Highlighting: hi group key=arg ... {{{2
syn cluster	vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
syn region	vimHiKeyList	contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||"	contains=@vimHiCluster
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror")
 syn match	vimHiKeyError	contained	"\i\+="he=e-1
endif
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	vimHiCTerm	contained	"\ccterm="he=e-1		nextgroup=vimHiAttribList
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	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	vimHiTermcap	contained	"\S\+"		contains=vimNotation
syn match	vimHiNmbr	contained	'\d\+'

" Highlight: clear {{{2
syn keyword	vimHiClear	contained	clear	nextgroup=vimHiGroup

" Highlight: link {{{2
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

" Control Characters {{{2
" ==================
syn match	vimCtrlChar	"[--]"

" Beginners - Patterns that involve ^ {{{2
" =========
syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle
syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
syn match	vimContinue	"^\s*\\"
syn region	vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
syn match	vimCommentTitleLeader	'"\s\+'ms=s+1	contained

" Searches And Globals: {{{2
" ====================
syn match	vimSearch	'^\s*[/?].*'		contains=vimSearchDelim
syn match	vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained
syn region	vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/'  skip='\\.' end='/'	skipwhite nextgroup=vimSubst
syn region	vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'	skipwhite nextgroup=vimSubst

" Scripts  : perl,ruby : Benoit Cerrina {{{2
" =======    python,tcl: Johannes Zellner
"            lua

" Allows users to specify the type of embedded script highlighting
" they want:  (perl/python/ruby/tcl support)
"   g:vimsyn_embed == 0   : don't embed any scripts
"   g:vimsyn_embed =~# 'l' : embed lua      (but only if vim supports it)
"   g:vimsyn_embed =~# 'm' : embed mzscheme (but only if vim supports it)
"   g:vimsyn_embed =~# 'p' : embed perl     (but only if vim supports it)
"   g:vimsyn_embed =~# 'P' : embed python   (but only if vim supports it)
"   g:vimsyn_embed =~# 'r' : embed ruby     (but only if vim supports it)
"   g:vimsyn_embed =~# 't' : embed tcl      (but only if vim supports it)
if !exists("g:vimsyn_embed")
 let g:vimsyn_embed= "lmpPr"
endif

" [-- lua --] {{{3
let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim")
if !filereadable(s:luapath)
 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
if (g:vimsyn_embed =~# 'l' && has("lua")) && filereadable(s:luapath)
 unlet! b:current_syntax
 syn cluster vimFuncBodyList	add=vimLuaRegion
 exe "syn include @vimLuaScript ".s:luapath
 VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimLuaScript
 VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+		contains=@vimLuaScript
 syn cluster vimFuncBodyList	add=vimLuaRegion
else
 syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+
 syn region vimEmbedError start=+lua\s*<<\s*$+ end=+\.$+
endif
unlet s:luapath

" [-- perl --] {{{3
let s:perlpath= fnameescape(expand("<sfile>:p:h")."/perl.vim")
if !filereadable(s:perlpath)
 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
if (g:vimsyn_embed =~# 'p' && has("perl")) && filereadable(s:perlpath)
 unlet! b:current_syntax
 syn cluster vimFuncBodyList	add=vimPerlRegion
 exe "syn include @vimPerlScript ".s:perlpath
 VimFoldp syn region vimPerlRegion  matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPerlScript
 VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+	contains=@vimPerlScript
 syn cluster vimFuncBodyList	add=vimPerlRegion
else
 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+
 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+
endif
unlet s:perlpath

" [-- ruby --] {{{3
let s:rubypath= fnameescape(expand("<sfile>:p:h")."/ruby.vim")
if !filereadable(s:rubypath)
 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
if (g:vimsyn_embed =~# 'r' && has("ruby")) && filereadable(s:rubypath)
 syn cluster vimFuncBodyList	add=vimRubyRegion
 unlet! b:current_syntax
 exe "syn include @vimRubyScript ".s:rubypath
 VimFoldr syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimRubyScript
 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+		contains=@vimRubyScript
 syn cluster vimFuncBodyList	add=vimRubyRegion
else
 syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+
 syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+
endif
unlet s:rubypath

" [-- python --] {{{3
let s:pythonpath= fnameescape(expand("<sfile>:p:h")."/python.vim")
if !filereadable(s:pythonpath)
 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
if g:vimsyn_embed =~# 'P' && has("pythonx") && filereadable(s:pythonpath)
 unlet! b:current_syntax
 syn cluster vimFuncBodyList	add=vimPythonRegion
 exe "syn include @vimPythonScript ".s:pythonpath
 VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
 VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+		contains=@vimPythonScript
 VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
 VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+		contains=@vimPythonScript
 syn cluster vimFuncBodyList	add=vimPythonRegion
else
 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+
endif
unlet s:pythonpath

" [-- tcl --] {{{3
if has("win32") || has("win95") || has("win64") || has("win16")
 " apparently has("tcl") has been hanging vim on some windows systems with cygwin
 let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
else
 let s:trytcl= 1
endif
if s:trytcl
 let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
 if !filereadable(s:tclpath)
  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
 if (g:vimsyn_embed =~# 't' && has("tcl")) && filereadable(s:tclpath)
  unlet! b:current_syntax
  syn cluster vimFuncBodyList	add=vimTclRegion
  exe "syn include @vimTclScript ".s:tclpath
  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript
  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+	contains=@vimTclScript
  syn cluster vimFuncBodyList	add=vimTclScript
 else
  syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
 endif
 unlet s:tclpath
else
 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
endif
unlet s:trytcl

" [-- mzscheme --] {{{3
let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim")
if !filereadable(s:mzschemepath)
 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
if (g:vimsyn_embed =~# 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
 unlet! b:current_syntax
 let s:iskKeep= &isk
 syn cluster vimFuncBodyList	add=vimMzSchemeRegion
 exe "syn include @vimMzSchemeScript ".s:mzschemepath
 let &isk= s:iskKeep
 unlet s:iskKeep
 VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimMzSchemeScript
 VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+		contains=@vimMzSchemeScript
 syn cluster vimFuncBodyList	add=vimMzSchemeRegion
else
 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+
 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+
endif
unlet s:mzschemepath

" Synchronize (speed) {{{2
"============
if exists("g:vimsyn_minlines")
 exe "syn sync minlines=".g:vimsyn_minlines
endif
exe "syn sync maxlines=".s:vimsyn_maxlines
syn sync linecont	"^\s\+\\"
syn sync match vimAugroupSyncA	groupthere NONE	"\<aug\%[roup]\>\s\+[eE][nN][dD]"

" ====================
" Highlighting Settings {{{2
" ====================

if !exists("skip_vim_syntax_inits")
 if !exists("g:vimsyn_noerror")
  hi def link vimBehaveError	vimError
  hi def link vimCollClassErr	vimError
  hi def link vimErrSetting	vimError
  hi def link vimEmbedError	vimError
  hi def link vimFTError	vimError
  hi def link vimFunctionError	vimError
  hi def link vimFunc         	vimError
  hi def link vimHiAttribList	vimError
  hi def link vimHiCtermError	vimError
  hi def link vimHiKeyError	vimError
  hi def link vimKeyCodeError	vimError
  hi def link vimMapModErr	vimError
  hi def link vimSubstFlagErr	vimError
  hi def link vimSynCaseError	vimError
  hi def link vimBufnrWarn	vimWarn
 endif

 hi def link vimAbb	vimCommand
 hi def link vimAddress	vimMark
 hi def link vimAugroupError	vimError
 hi def link vimAugroupKey	vimCommand
 hi def link vimAuHighlight	vimHighlight
 hi def link vimAutoCmdOpt	vimOption
 hi def link vimAutoCmd	vimCommand
 hi def link vimAutoEvent	Type
 hi def link vimAutoSet	vimCommand
 hi def link vimBehaveModel	vimBehave
 hi def link vimBehave	vimCommand
 hi def link vimBracket	Delimiter
 hi def link vimCmplxRepeat	SpecialChar
 hi def link vimCommand	Statement
 hi def link vimComment	Comment
 hi def link vimCommentString	vimString
 hi def link vimCommentTitle	PreProc
 hi def link vimCondHL	vimCommand
 hi def link vimContinue	Special
 hi def link vimCtrlChar	SpecialChar
 hi def link vimEchoHLNone	vimGroup
 hi def link vimEchoHL	vimCommand
 hi def link vimElseIfErr	Error
 hi def link vimElseif	vimCondHL
 hi def link vimEnvvar	PreProc
 hi def link vimError	Error
 hi def link vimFBVar	vimVar
 hi def link vimFgBgAttrib	vimHiAttrib
 hi def link vimFold	Folded
 hi def link vimFTCmd	vimCommand
 hi def link vimFTOption	vimSynType
 hi def link vimFuncKey	vimCommand
 hi def link vimFuncName	Function
 hi def link vimFuncSID	Special
 hi def link vimFuncVar	Identifier
 hi def link vimGroupAdd	vimSynOption
 hi def link vimGroupName	vimGroup
 hi def link vimGroupRem	vimSynOption
 hi def link vimGroupSpecial	Special
 hi def link vimGroup	Type
 hi def link vimHiAttrib	PreProc
 hi def link vimHiClear	vimHighlight
 hi def link vimHiCtermFgBg	vimHiTerm
 hi def link vimHiCTerm	vimHiTerm
 hi def link vimHighlight	vimCommand
 hi def link vimHiGroup	vimGroupName
 hi def link vimHiGuiFgBg	vimHiTerm
 hi def link vimHiGuiFont	vimHiTerm
 hi def link vimHiGuiRgb	vimNumber
 hi def link vimHiGui	vimHiTerm
 hi def link vimHiNmbr	Number
 hi def link vimHiStartStop	vimHiTerm
 hi def link vimHiTerm	Type
 hi def link vimHLGroup	vimGroup
 hi def link vimHLMod	PreProc
 hi def link vimInsert	vimString
 hi def link vimIskSep	Delimiter
 hi def link vimKeyCode	vimSpecFile
 hi def link vimKeyword	Statement
 hi def link vimLet	vimCommand
 hi def link vimLineComment	vimComment
 hi def link vimMapBang	vimCommand
 hi def link vimMapModKey	vimFuncSID
 hi def link vimMapMod	vimBracket
 hi def link vimMap	vimCommand
 hi def link vimMark	Number
 hi def link vimMarkNumber	vimNumber
 hi def link vimMenuMod	vimMapMod
 hi def link vimMenuNameMore	vimMenuName
 hi def link vimMenuName	PreProc
 hi def link vimMtchComment	vimComment
 hi def link vimNorm	vimCommand
 hi def link vimNotation	Special
 hi def link vimNotFunc	vimCommand
 hi def link vimNotPatSep	vimString
 hi def link vimNumber	Number
 hi def link vimOperError	Error
 hi def link vimOper	Operator
 hi def link vimOption	PreProc
 hi def link vimParenSep	Delimiter
 hi def link vimPatSepErr	vimPatSep
 hi def link vimPatSepR	vimPatSep
 hi def link vimPatSep	SpecialChar
 hi def link vimPatSepZone	vimString
 hi def link vimPatSepZ	vimPatSep
 hi def link vimPattern	Type
 hi def link vimPlainMark	vimMark
 hi def link vimPlainRegister	vimRegister
 hi def link vimRegister	SpecialChar
 hi def link vimScriptDelim	Comment
 hi def link vimSearchDelim	Statement
 hi def link vimSearch	vimString
 hi def link vimSep	Delimiter
 hi def link vimSetMod	vimOption
 hi def link vimSetSep	Statement
 hi def link vimSetString	vimString
 hi def link vimSpecFile	Identifier
 hi def link vimSpecFileMod	vimSpecFile
 hi def link vimSpecial	Type
 hi def link vimStatement	Statement
 hi def link vimStringCont	vimString
 hi def link vimString	String
 hi def link vimSubst1	vimSubst
 hi def link vimSubstDelim	Delimiter
 hi def link vimSubstFlags	Special
 hi def link vimSubstSubstr	SpecialChar
 hi def link vimSubstTwoBS	vimString
 hi def link vimSubst	vimCommand
 hi def link vimSynCaseError	Error
 hi def link vimSynCase	Type
 hi def link vimSyncC	Type
 hi def link vimSyncError	Error
 hi def link vimSyncGroupName	vimGroupName
 hi def link vimSyncGroup	vimGroupName
 hi def link vimSyncKey	Type
 hi def link vimSyncNone	Type
 hi def link vimSynContains	vimSynOption
 hi def link vimSynError	Error
 hi def link vimSynKeyContainedin	vimSynContains
 hi def link vimSynKeyOpt	vimSynOption
 hi def link vimSynMtchGrp	vimSynOption
 hi def link vimSynMtchOpt	vimSynOption
 hi def link vimSynNextgroup	vimSynOption
 hi def link vimSynNotPatRange	vimSynRegPat
 hi def link vimSynOption	Special
 hi def link vimSynPatRange	vimString
 hi def link vimSynRegOpt	vimSynOption
 hi def link vimSynRegPat	vimString
 hi def link vimSynReg	Type
 hi def link vimSyntax	vimCommand
 hi def link vimSynType	vimSpecial
 hi def link vimTodo	Todo
 hi def link vimUnmap	vimMap
 hi def link vimUserAttrbCmpltFunc	Special
 hi def link vimUserAttrbCmplt	vimSpecial
 hi def link vimUserAttrbKey	vimOption
 hi def link vimUserAttrb	vimSpecial
 hi def link vimUserAttrbError	Error
 hi def link vimUserCmdError	Error
 hi def link vimUserCommand	vimCommand
 hi def link vimUserFunc	Normal
 hi def link vimVar	Identifier
 hi def link vimWarn	WarningMsg
endif

" Current Syntax Variable: {{{2
let b:current_syntax = "vim"

" ---------------------------------------------------------------------
" Cleanup: {{{1
delc VimFolda
delc VimFoldf
delc VimFoldl
delc VimFoldm
delc VimFoldp
delc VimFoldP
delc VimFoldr
delc VimFoldt
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:ts=18  fdm=marker
PK�j�Z��7���vim80/syntax/modula2.vimnu�[���" Vim syntax file
" Language:	Modula 2
" Maintainer:	pf@artcom0.north.de (Peter Funk)
"   based on original work of Bram Moolenaar <Bram@vim.org>
" Last Change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Don't ignore case (Modula-2 is case significant). This is the default in vim

" Especially emphasize headers of procedures and modules:
syn region modula2Header matchgroup=modula2Header start="PROCEDURE " end="(" contains=modula2Ident oneline
syn region modula2Header matchgroup=modula2Header start="MODULE " end=";" contains=modula2Ident oneline
syn region modula2Header matchgroup=modula2Header start="BEGIN (\*" end="\*)" contains=modula2Ident oneline
syn region modula2Header matchgroup=modula2Header start="END " end=";" contains=modula2Ident oneline
syn region modula2Keyword start="END" end=";" contains=ALLBUT,modula2Ident oneline

" Some very important keywords which should be emphasized more than others:
syn keyword modula2AttKeyword CONST EXIT HALT RETURN TYPE VAR
" All other keywords in alphabetical order:
syn keyword modula2Keyword AND ARRAY BY CASE DEFINITION DIV DO ELSE
syn keyword modula2Keyword ELSIF EXPORT FOR FROM IF IMPLEMENTATION IMPORT
syn keyword modula2Keyword IN LOOP MOD NOT OF OR POINTER QUALIFIED RECORD
syn keyword modula2Keyword SET THEN TO UNTIL WHILE WITH

syn keyword modula2Type ADDRESS BITSET BOOLEAN CARDINAL CHAR INTEGER REAL WORD
syn keyword modula2StdFunc ABS CAP CHR DEC EXCL INC INCL ORD SIZE TSIZE VAL
syn keyword modula2StdConst FALSE NIL TRUE
" The following may be discussed, since NEW and DISPOSE are some kind of
" special builtin macro functions:
syn keyword modula2StdFunc NEW DISPOSE
" The following types are added later on and may be missing from older
" Modula-2 Compilers (they are at least missing from the original report
" by N.Wirth from March 1980 ;-)  Highlighting should apply nevertheless:
syn keyword modula2Type BYTE LONGCARD LONGINT LONGREAL PROC SHORTCARD SHORTINT
" same note applies to min and max, which were also added later to m2:
syn keyword modula2StdFunc MAX MIN
" The underscore was originally disallowed in m2 ids, it was also added later:
syn match   modula2Ident " [A-Z,a-z][A-Z,a-z,0-9,_]*" contained

" Comments may be nested in Modula-2:
syn region modula2Comment start="(\*" end="\*)" contains=modula2Comment,modula2Todo
syn keyword modula2Todo	contained TODO FIXME XXX

" Strings
syn region modula2String start=+"+ end=+"+
syn region modula2String start="'" end="'"
syn region modula2Set start="{" end="}"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link modula2Ident		Identifier
hi def link modula2StdConst	Boolean
hi def link modula2Type		Identifier
hi def link modula2StdFunc		Identifier
hi def link modula2Header		Type
hi def link modula2Keyword		Statement
hi def link modula2AttKeyword	PreProc
hi def link modula2Comment		Comment
" The following is just a matter of taste (you want to try this instead):
" hi modula2Comment term=bold ctermfg=DarkBlue guifg=Blue gui=bold
hi def link modula2Todo		Todo
hi def link modula2String		String
hi def link modula2Set		String


let b:current_syntax = "modula2"

" vim: ts=8
PK�j�Z�ݐOOvim80/syntax/upstart.vimnu�[���" Vim syntax file
" Language:	Upstart job files
" Maintainer:	Michael Biebl <biebl@debian.org>
"		James Hunt <james.hunt@ubuntu.com>
" Last Change:	2012 Jan 16
" License:	The Vim license
" Version:	0.4
" Remark:	Syntax highlighting for Upstart (init(8)) job files.
"
" It is inspired by the initng syntax file and includes sh.vim to do the
" highlighting of script blocks.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

let is_bash = 1
syn include @Shell syntax/sh.vim

syn case match

" avoid need to use 'match' for most events
setlocal iskeyword+=-

syn match upstartComment /#.*$/ contains=upstartTodo
syn keyword upstartTodo TODO FIXME contained

syn region upstartString start=/"/ end=/"/ skip=/\\"/

syn region upstartScript matchgroup=upstartStatement start="script" end="end script" contains=@upstartShellCluster

syn cluster upstartShellCluster contains=@Shell

" one argument
syn keyword upstartStatement description author version instance expect
syn keyword upstartStatement pid kill normal console env exit export
syn keyword upstartStatement umask nice oom chroot chdir exec

" two arguments
syn keyword upstartStatement limit

" one or more arguments (events)
syn keyword upstartStatement emits

syn keyword upstartStatement on start stop

" flag, no parameter
syn keyword upstartStatement respawn service instance manual debug task

" prefix for exec or script 
syn keyword upstartOption pre-start post-start pre-stop post-stop

" option for kill
syn keyword upstartOption timeout
" option for oom
syn keyword upstartOption never
" options for console
syn keyword upstartOption output owner
" options for expect
syn keyword upstartOption fork daemon
" options for limit
syn keyword upstartOption unlimited

" 'options' for start/stop on
syn keyword upstartOption and or

" Upstart itself and associated utilities
syn keyword upstartEvent runlevel
syn keyword upstartEvent started
syn keyword upstartEvent starting
syn keyword upstartEvent startup
syn keyword upstartEvent stopped
syn keyword upstartEvent stopping
syn keyword upstartEvent control-alt-delete
syn keyword upstartEvent keyboard-request
syn keyword upstartEvent power-status-changed

" D-Bus
syn keyword upstartEvent dbus-activation

" Display Manager (ie gdm)
syn keyword upstartEvent desktop-session-start
syn keyword upstartEvent login-session-start

" mountall
syn keyword upstartEvent all-swaps
syn keyword upstartEvent filesystem
syn keyword upstartEvent mounted
syn keyword upstartEvent mounting
syn keyword upstartEvent local-filesystems
syn keyword upstartEvent remote-filesystems
syn keyword upstartEvent virtual-filesystems

" SysV umountnfs.sh
syn keyword upstartEvent mounted-remote-filesystems

" upstart-udev-bridge and ifup/down
syn match   upstartEvent /\<\i\{-1,}-device-\(added\|removed\|up\|down\)/

" upstart-socket-bridge
syn keyword upstartEvent socket

hi def link upstartComment   Comment
hi def link upstartTodo	     Todo
hi def link upstartString    String
hi def link upstartStatement Statement
hi def link upstartOption    Type
hi def link upstartEvent     Define

let b:current_syntax = "upstart"
PK�j�Z<��xxvim80/syntax/jproperties.vimnu�[���" Vim syntax file
" Language:	Java Properties resource file (*.properties[_*])
" Maintainer:	Simon Baldwin <simonb@sco.com>
" Last change:	26th Mar 2000

" =============================================================================

" Optional and tuning variables:

" jproperties_lines
" -----------------
"   Set a value for the sync block that we use to find long continuation lines
"   in properties; the value is already large - if you have larger continuation
"   sets you may need to increase it further - if not, and you find editing is
"   slow, reduce the value of jproperties_lines.
if !exists("jproperties_lines")
	let jproperties_lines = 256
endif

" jproperties_strict_syntax
" -------------------------
"   Most properties files assign values with "id=value" or "id:value".  But,
"   strictly, the Java properties parser also allows "id value", "id", and
"   even more bizarrely "=value", ":value", " value", and so on.  These latter
"   ones, however, are rarely used, if ever, and handling them in the high-
"   lighting can obscure errors in the more normal forms.  So, in practice
"   we take special efforts to pick out only "id=value" and "id:value" forms
"   by default.  If you want strict compliance, set jproperties_strict_syntax
"   to non-zero (and good luck).
if !exists("jproperties_strict_syntax")
	let jproperties_strict_syntax = 0
endif

" jproperties_show_messages
" -------------------------
"   If this properties file contains messages for use with MessageFormat,
"   setting a non-zero value will highlight them.  Messages are of the form
"   "{...}".  Highlighting doesn't go to the pains of picking apart what is
"   in the format itself - just the basics for now.
if !exists("jproperties_show_messages")
	let jproperties_show_messages = 0
endif

" =============================================================================

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" switch case sensitivity off
syn case ignore

" set the block
exec "syn sync lines=" . jproperties_lines

" switch between 'normal' and 'strict' syntax
if jproperties_strict_syntax != 0

	" an assignment is pretty much any non-empty line at this point,
	" trying to not think about continuation lines
	syn match   jpropertiesAssignment	"^\s*[^[:space:]]\+.*$" contains=jpropertiesIdentifier

	" an identifier is anything not a space character, pretty much; it's
	" followed by = or :, or space or tab.  Or end-of-line.
	syn match   jpropertiesIdentifier	"[^=:[:space:]]*" contained nextgroup=jpropertiesDelimiter

	" treat the delimiter specially to get colours right
	syn match   jpropertiesDelimiter	"\s*[=:[:space:]]\s*" contained nextgroup=jpropertiesString

	" catch the bizarre case of no identifier; a special case of delimiter
	syn match   jpropertiesEmptyIdentifier	"^\s*[=:]\s*" nextgroup=jpropertiesString
else

	" here an assignment is id=value or id:value, and we conveniently
	" ignore continuation lines for the present
	syn match   jpropertiesAssignment	"^\s*[^=:[:space:]]\+\s*[=:].*$" contains=jpropertiesIdentifier

	" an identifier is anything not a space character, pretty much; it's
	" always followed by = or :, and we find it in an assignment
	syn match   jpropertiesIdentifier	"[^=:[:space:]]\+" contained nextgroup=jpropertiesDelimiter

	" treat the delimiter specially to get colours right; this time the
	" delimiter must contain = or :
	syn match   jpropertiesDelimiter	"\s*[=:]\s*" contained nextgroup=jpropertiesString
endif

" a definition is all up to the last non-\-terminated line; strictly, Java
" properties tend to ignore leading whitespace on all lines of a multi-line
" definition, but we don't look for that here (because it's a major hassle)
syn region  jpropertiesString		start="" skip="\\$" end="$" contained contains=jpropertiesSpecialChar,jpropertiesError,jpropertiesSpecial

" {...} is a Java Message formatter - add a minimal recognition of these
" if required
if jproperties_show_messages != 0
	syn match   jpropertiesSpecial		"{[^}]*}\{-1,\}" contained
	syn match   jpropertiesSpecial		"'{" contained
	syn match   jpropertiesSpecial		"''" contained
endif

" \uABCD are unicode special characters
syn match   jpropertiesSpecialChar	"\\u\x\{1,4}" contained

" ...and \u not followed by a hex digit is an error, though the properties
" file parser won't issue an error on it, just set something wacky like zero
syn match   jpropertiesError		"\\u\X\{1,4}" contained
syn match   jpropertiesError		"\\u$"me=e-1 contained

" other things of note are the \t,r,n,\, and the \ preceding line end
syn match   jpropertiesSpecial		"\\[trn\\]" contained
syn match   jpropertiesSpecial		"\\\s" contained
syn match   jpropertiesSpecial		"\\$" contained

" comments begin with # or !, and persist to end of line; put here since
" they may have been caught by patterns above us
syn match   jpropertiesComment		"^\s*[#!].*$" contains=jpropertiesTODO
syn keyword jpropertiesTodo		TODO FIXME XXX contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link jpropertiesComment	Comment
hi def link jpropertiesTodo		Todo
hi def link jpropertiesIdentifier	Identifier
hi def link jpropertiesString	String
hi def link jpropertiesExtendString	String
hi def link jpropertiesCharacter	Character
hi def link jpropertiesSpecial	Special
hi def link jpropertiesSpecialChar	SpecialChar
hi def link jpropertiesError	Error


let b:current_syntax = "jproperties"

" vim:ts=8
PK�j�Zz~!���vim80/syntax/pf.vimnu�[���" pf syntax file
" Language:        OpenBSD packet filter configuration (pf.conf)
" Original Author: Camiel Dobbelaar <cd@sentia.nl>
" Maintainer:      Lauri Tirkkonen <lotheac@iki.fi>
" Last Change:     2016 Jul 06

if exists("b:current_syntax")
  finish
endif

setlocal foldmethod=syntax
syn iskeyword @,48-57,_,-,+
syn sync fromstart

syn cluster	pfNotLS		contains=pfTodo,pfVarAssign
syn keyword	pfCmd		anchor antispoof block include match pass queue
syn keyword	pfCmd		queue set table
syn match	pfCmd		/^\s*load\sanchor\>/
syn keyword	pfTodo		TODO XXX contained
syn keyword	pfWildAddr	all any
syn match	pfComment	/#.*$/ contains=pfTodo
syn match	pfCont		/\\$/
syn match	pfErrClose	/}/
syn match	pfIPv4		/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
syn match	pfIPv6		/[a-fA-F0-9:]*::[a-fA-F0-9:.]*/
syn match	pfIPv6		/[a-fA-F0-9:]\+:[a-fA-F0-9:]\+:[a-fA-F0-9:.]\+/
syn match	pfNetmask	/\/\d\+/
syn match	pfNum		/[a-zA-Z0-9_:.]\@<!\d\+[a-zA-Z0-9_:.]\@!/
syn match	pfTable		/<\s*[a-zA-Z0-9_:][a-zA-Z0-9_:.-]*\s*>/
syn match	pfVar		/$[a-zA-Z][a-zA-Z0-9_]*/
syn match	pfVarAssign	/^\s*[a-zA-Z][a-zA-Z0-9_]*\s*=/me=e-1
syn region	pfFold1		start=/^#\{1}>/ end=/^#\{1,3}>/me=s-1 transparent fold
syn region	pfFold2		start=/^#\{2}>/ end=/^#\{2,3}>/me=s-1 transparent fold
syn region	pfFold3		start=/^#\{3}>/ end=/^#\{3}>/me=s-1 transparent fold
syn region	pfList		start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfNotLS
syn region	pfString	start=/"/ skip=/\\"/ end=/"/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar
syn region	pfString	start=/'/ skip=/\\'/ end=/'/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar

syn keyword	pfService	802-11-iapp Microsoft-SQL-Monitor
syn keyword	pfService	Microsoft-SQL-Server NeXTStep NextStep
syn keyword	pfService	afpovertcp afs3-bos afs3-callback afs3-errors
syn keyword	pfService	afs3-fileserver afs3-kaserver afs3-prserver
syn keyword	pfService	afs3-rmtsys afs3-update afs3-vlserver
syn keyword	pfService	afs3-volser amt-redir-tcp amt-redir-tls
syn keyword	pfService	amt-soap-http amt-soap-https asf-rmcp at-echo
syn keyword	pfService	at-nbp at-rtmp at-zis auth authentication
syn keyword	pfService	bfd-control bfd-echo bftp bgp bgpd biff bootpc
syn keyword	pfService	bootps canna cddb cddbp chargen chat cmd
syn keyword	pfService	cmip-agent cmip-man comsat conference
syn keyword	pfService	conserver courier csnet-ns cso-ns cvspserver
syn keyword	pfService	daap datametrics daytime dhcpd-sync
syn keyword	pfService	dhcpv6-client dhcpv6-server discard domain
syn keyword	pfService	echo efs eklogin ekshell ekshell2 epmap eppc
syn keyword	pfService	exec finger ftp ftp-data git gopher hostname
syn keyword	pfService	hostnames hprop http https hunt hylafax iapp
syn keyword	pfService	icb ident imap imap2 imap3 imaps ingreslock
syn keyword	pfService	ipp iprop ipsec-msft ipsec-nat-t ipx irc
syn keyword	pfService	isakmp iscsi isisd iso-tsap kauth kdc kerberos
syn keyword	pfService	kerberos-adm kerberos-iv kerberos-sec
syn keyword	pfService	kerberos_master kf kip klogin kpasswd kpop
syn keyword	pfService	krb524 krb_prop krbupdate krcmd kreg kshell kx
syn keyword	pfService	l2tp ldap ldaps ldp link login mail mdns
syn keyword	pfService	mdnsresponder microsoft-ds ms-sql-m ms-sql-s
syn keyword	pfService	msa msp mtp mysql name nameserver netbios-dgm
syn keyword	pfService	netbios-ns netbios-ssn netnews netplan netrjs
syn keyword	pfService	netstat netwall newdate nextstep nfs nfsd
syn keyword	pfService	nicname nnsp nntp ntalk ntp null openwebnet
syn keyword	pfService	ospf6d ospfapi ospfd photuris pop2 pop3 pop3pw
syn keyword	pfService	pop3s poppassd portmap postgresql postoffice
syn keyword	pfService	pptp presence printer prospero prospero-np
syn keyword	pfService	puppet pwdgen qotd quote radacct radius
syn keyword	pfService	radius-acct rdp readnews remotefs resource rfb
syn keyword	pfService	rfe rfs rfs_server ripd ripng rje rkinit rlp
syn keyword	pfService	routed router rpc rpcbind rsync rtelnet rtsp
syn keyword	pfService	sa-msg-port sane-port sftp shell sieve silc
syn keyword	pfService	sink sip smtp smtps smux snmp snmp-trap
syn keyword	pfService	snmptrap snpp socks source spamd spamd-cfg
syn keyword	pfService	spamd-sync spooler spop3 ssdp ssh submission
syn keyword	pfService	sunrpc supdup supfiledbg supfilesrv support
syn keyword	pfService	svn svrloc swat syslog syslog-tls systat
syn keyword	pfService	tacacs tacas+ talk tap tcpmux telnet tempo
syn keyword	pfService	tftp time timed timeserver timserver tsap
syn keyword	pfService	ttylink ttytst ub-dns-control ulistserv untp
syn keyword	pfService	usenet users uucp uucp-path uucpd vnc vxlan
syn keyword	pfService	wais webster who whod whois www x400 x400-snd
syn keyword	pfService	xcept xdmcp xmpp-bosh xmpp-client xmpp-server
syn keyword	pfService	z3950 zabbix-agent zabbix-trapper zebra
syn keyword	pfService	zebrasrv

hi def link pfCmd	Statement
hi def link pfComment	Comment
hi def link pfCont	Statement
hi def link pfErrClose	Error
hi def link pfIPv4	Type
hi def link pfIPv6	Type
hi def link pfNetmask	Constant
hi def link pfNum	Constant
hi def link pfService	Constant
hi def link pfString	String
hi def link pfTable	Identifier
hi def link pfTodo	Todo
hi def link pfVar	Identifier
hi def link pfVarAssign	Identifier
hi def link pfWildAddr	Type

let b:current_syntax = "pf"
PK�j�Z��Jh4h4vim80/syntax/ncf.vimnu�[���" Vim syntax file
" Language:     Novell "NCF" Batch File
" Maintainer:   Jonathan J. Miner <miner@doit.wisc.edu>
" Last Change:	Tue, 04 Sep 2001 16:20:33 CDT
" $Id: ncf.vim,v 1.1 2004/06/13 16:31:58 vimboss Exp $

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

syn case ignore

syn keyword ncfCommands		mount load unload
syn keyword ncfBoolean		on off
syn keyword ncfCommands		set nextgroup=ncfSetCommands
syn keyword ncfTimeTypes	Reference Primary Secondary Single
syn match ncfLoad       "\(unl\|l\)oad .*"lc=4 contains=ALLBUT,Error
syn match ncfMount      "mount .*"lc=5 contains=ALLBUT,Error

syn match ncfComment    "^\ *rem.*$"
syn match ncfComment    "^\ *;.*$"
syn match ncfComment    "^\ *#.*$"

syn match ncfSearchPath "search \(add\|del\) " nextgroup=ncfPath
syn match ncfPath       "\<[^: ]\+:\([A-Za-z0-9._]\|\\\)*\>"
syn match ncfServerName "^file server name .*$"
syn match ncfIPXNet     "^ipx internal net"

" String
syn region ncfString    start=+"+  end=+"+
syn match ncfContString "= \(\(\.\{0,1}\(OU=\|O=\)\{0,1}[A-Z_]\+\)\+;\{0,1}\)\+"lc=2

syn match ncfHexNumber  "\<\d\(\d\+\|[A-F]\+\)*\>"
syn match ncfNumber     "\<\d\+\.\{0,1}\d*\>"
syn match ncfIPAddr     "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}"
syn match ncfTime       "\(+|=\)\{0,1}\d\{1,2}:\d\{1,2}:\d\{1,2}"
syn match ncfDSTTime    "([^ ]\+ [^ ]\+ \(FIRST\|LAST\)\s*\d\{1,2}:\d\{1,2}:\d\{1,2} \(AM\|PM\))"
syn match ncfTimeZone   "[A-Z]\{3}\d[A-Z]\{3}"

syn match ncfLogins     "^\([Dd]is\|[Ee]n\)able login[s]*"
syn match ncfScript     "[^ ]*\.ncf"

"  SET Commands that take a Number following
syn match ncfSetCommandsNum "\(Alert Message Nodes\)\s*="
syn match ncfSetCommandsNum "\(Auto Restart After Abend\)\s*="
syn match ncfSetCommandsNum "\(Auto Restart After Abend Delay Time\)\s*="
syn match ncfSetCommandsNum "\(Compression Daily Check Starting Hour\)\s*="
syn match ncfSetCommandsNum "\(Compression Daily Check Stop Hour\)\s*="
syn match ncfSetCommandsNum "\(Concurrent Remirror Requests\)\s*="
syn match ncfSetCommandsNum "\(Convert Compressed to Uncompressed Option\)\s*="
syn match ncfSetCommandsNum "\(Days Untouched Before Compression\)\s*="
syn match ncfSetCommandsNum "\(Decompress Free Space Warning Interval\)\s*="
syn match ncfSetCommandsNum "\(Decompress Percent Disk Space Free to Allow Commit\)\s*="
syn match ncfSetCommandsNum "\(Deleted Files Compression Option\)\s*="
syn match ncfSetCommandsNum "\(Directory Cache Allocation Wait Time\)\s*="
syn match ncfSetCommandsNum "\(Enable IPX Checksums\)\s*="
syn match ncfSetCommandsNum "\(Garbage Collection Interval\)\s*="
syn match ncfSetCommandsNum "\(IPX NetBIOS Replication Option\)\s*="
syn match ncfSetCommandsNum "\(Maximum Concurrent Compressions\)\s*="
syn match ncfSetCommandsNum "\(Maximum Concurrent Directory Cache Writes\)\s*="
syn match ncfSetCommandsNum "\(Maximum Concurrent Disk Cache Writes\)\s*="
syn match ncfSetCommandsNum "\(Maximum Directory Cache Buffers\)\s*="
syn match ncfSetCommandsNum "\(Maximum Extended Attributes per File or Path\)\s*="
syn match ncfSetCommandsNum "\(Maximum File Locks\)\s*="
syn match ncfSetCommandsNum "\(Maximum File Locks Per Connection\)\s*="
syn match ncfSetCommandsNum "\(Maximum Interrupt Events\)\s*="
syn match ncfSetCommandsNum "\(Maximum Number of Directory Handles\)\s*="
syn match ncfSetCommandsNum "\(Maximum Number of Internal Directory Handles\)\s*="
syn match ncfSetCommandsNum "\(Maximum Outstanding NCP Searches\)\s*="
syn match ncfSetCommandsNum "\(Maximum Packet Receive Buffers\)\s*="
syn match ncfSetCommandsNum "\(Maximum Physical Receive Packet Size\)\s*="
syn match ncfSetCommandsNum "\(Maximum Record Locks\)\s*="
syn match ncfSetCommandsNum "\(Maximum Record Locks Per Connection\)\s*="
syn match ncfSetCommandsNum "\(Maximum Service Processes\)\s*="
syn match ncfSetCommandsNum "\(Maximum Subdirectory Tree Depth\)\s*="
syn match ncfSetCommandsNum "\(Maximum Transactions\)\s*="
syn match ncfSetCommandsNum "\(Minimum Compression Percentage Gain\)\s*="
syn match ncfSetCommandsNum "\(Minimum Directory Cache Buffers\)\s*="
syn match ncfSetCommandsNum "\(Minimum File Cache Buffers\)\s*="
syn match ncfSetCommandsNum "\(Minimum File Cache Report Threshold\)\s*="
syn match ncfSetCommandsNum "\(Minimum Free Memory for Garbage Collection\)\s*="
syn match ncfSetCommandsNum "\(Minimum Packet Receive Buffers\)\s*="
syn match ncfSetCommandsNum "\(Minimum Service Processes\)\s*="
syn match ncfSetCommandsNum "\(NCP Packet Signature Option\)\s*="
syn match ncfSetCommandsNum "\(NDS Backlink Interval\)\s*="
syn match ncfSetCommandsNum "\(NDS Client NCP Retries\)\s*="
syn match ncfSetCommandsNum "\(NDS External Reference Life Span\)\s*="
syn match ncfSetCommandsNum "\(NDS Inactivity Synchronization Interval\)\s*="
syn match ncfSetCommandsNum "\(NDS Janitor Interval\)\s*="
syn match ncfSetCommandsNum "\(New Service Process Wait Time\)\s*="
syn match ncfSetCommandsNum "\(Number of Frees for Garbage Collection\)\s*="
syn match ncfSetCommandsNum "\(Number of Watchdog Packets\)\s*="
syn match ncfSetCommandsNum "\(Pseudo Preemption Count\)\s*="
syn match ncfSetCommandsNum "\(Read Ahead LRU Sitting Time Threshold\)\s*="
syn match ncfSetCommandsNum "\(Remirror Block Size\)\s*="
syn match ncfSetCommandsNum "\(Reserved Buffers Below 16 Meg\)\s*="
syn match ncfSetCommandsNum "\(Server Log File Overflow Size\)\s*="
syn match ncfSetCommandsNum "\(Server Log File State\)\s*="
syn match ncfSetCommandsNum "\(SMP Polling Count\)\s*="
syn match ncfSetCommandsNum "\(SMP Stack Size\)\s*="
syn match ncfSetCommandsNum "\(TIMESYNC Polling Count\)\s*="
syn match ncfSetCommandsNum "\(TIMESYNC Polling Interval\)\s*="
syn match ncfSetCommandsNum "\(TIMESYNC Synchronization Radius\)\s*="
syn match ncfSetCommandsNum "\(TIMESYNC Write Value\)\s*="
syn match ncfSetCommandsNum "\(Volume Log File Overflow Size\)\s*="
syn match ncfSetCommandsNum "\(Volume Log File State\)\s*="
syn match ncfSetCommandsNum "\(Volume Low Warning Reset Threshold\)\s*="
syn match ncfSetCommandsNum "\(Volume Low Warning Threshold\)\s*="
syn match ncfSetCommandsNum "\(Volume TTS Log File Overflow Size\)\s*="
syn match ncfSetCommandsNum "\(Volume TTS Log File State\)\s*="
syn match ncfSetCommandsNum "\(Worker Thread Execute In a Row Count\)\s*="

" SET Commands that take a Boolean (ON/OFF)

syn match ncfSetCommandsBool "\(Alloc Memory Check Flag\)\s*="
syn match ncfSetCommandsBool "\(Allow Audit Passwords\)\s*="
syn match ncfSetCommandsBool "\(Allow Change to Client Rights\)\s*="
syn match ncfSetCommandsBool "\(Allow Deletion of Active Directories\)\s*="
syn match ncfSetCommandsBool "\(Allow Invalid Pointers\)\s*="
syn match ncfSetCommandsBool "\(Allow LIP\)\s*="
syn match ncfSetCommandsBool "\(Allow Unencrypted Passwords\)\s*="
syn match ncfSetCommandsBool "\(Allow Unowned Files To Be Extended\)\s*="
syn match ncfSetCommandsBool "\(Auto Register Memory Above 16 Megabytes\)\s*="
syn match ncfSetCommandsBool "\(Auto TTS Backout Flag\)\s*="
syn match ncfSetCommandsBool "\(Automatically Repair Bad Volumes\)\s*="
syn match ncfSetCommandsBool "\(Check Equivalent to Me\)\s*="
syn match ncfSetCommandsBool "\(Command Line Prompt Default Choice\)\s*="
syn match ncfSetCommandsBool "\(Console Display Watchdog Logouts\)\s*="
syn match ncfSetCommandsBool "\(Daylight Savings Time Status\)\s*="
syn match ncfSetCommandsBool "\(Developer Option\)\s*="
syn match ncfSetCommandsBool "\(Display Incomplete IPX Packet Alerts\)\s*="
syn match ncfSetCommandsBool "\(Display Lost Interrupt Alerts\)\s*="
syn match ncfSetCommandsBool "\(Display NCP Bad Component Warnings\)\s*="
syn match ncfSetCommandsBool "\(Display NCP Bad Length Warnings\)\s*="
syn match ncfSetCommandsBool "\(Display Old API Names\)\s*="
syn match ncfSetCommandsBool "\(Display Relinquish Control Alerts\)\s*="
syn match ncfSetCommandsBool "\(Display Spurious Interrupt Alerts\)\s*="
syn match ncfSetCommandsBool "\(Enable Deadlock Detection\)\s*="
syn match ncfSetCommandsBool "\(Enable Disk Read After Write Verify\)\s*="
syn match ncfSetCommandsBool "\(Enable File Compression\)\s*="
syn match ncfSetCommandsBool "\(Enable IO Handicap Attribute\)\s*="
syn match ncfSetCommandsBool "\(Enable SECURE.NCF\)\s*="
syn match ncfSetCommandsBool "\(Fast Volume Mounts\)\s*="
syn match ncfSetCommandsBool "\(Global Pseudo Preemption\)\s*="
syn match ncfSetCommandsBool "\(Halt System on Invalid Parameters\)\s*="
syn match ncfSetCommandsBool "\(Ignore Disk Geometry\)\s*="
syn match ncfSetCommandsBool "\(Immediate Purge of Deleted Files\)\s*="
syn match ncfSetCommandsBool "\(NCP File Commit\)\s*="
syn match ncfSetCommandsBool "\(NDS Trace File Length to Zero\)\s*="
syn match ncfSetCommandsBool "\(NDS Trace to File\)\s*="
syn match ncfSetCommandsBool "\(NDS Trace to Screen\)\s*="
syn match ncfSetCommandsBool "\(New Time With Daylight Savings Time Status\)\s*="
syn match ncfSetCommandsBool "\(Read Ahead Enabled\)\s*="
syn match ncfSetCommandsBool "\(Read Fault Emulation\)\s*="
syn match ncfSetCommandsBool "\(Read Fault Notification\)\s*="
syn match ncfSetCommandsBool "\(Reject NCP Packets with Bad Components\)\s*="
syn match ncfSetCommandsBool "\(Reject NCP Packets with Bad Lengths\)\s*="
syn match ncfSetCommandsBool "\(Replace Console Prompt with Server Name\)\s*="
syn match ncfSetCommandsBool "\(Reply to Get Nearest Server\)\s*="
syn match ncfSetCommandsBool "\(SMP Developer Option\)\s*="
syn match ncfSetCommandsBool "\(SMP Flush Processor Cache\)\s*="
syn match ncfSetCommandsBool "\(SMP Intrusive Abend Mode\)\s*="
syn match ncfSetCommandsBool "\(SMP Memory Protection\)\s*="
syn match ncfSetCommandsBool "\(Sound Bell for Alerts\)\s*="
syn match ncfSetCommandsBool "\(TIMESYNC Configured Sources\)\s*="
syn match ncfSetCommandsBool "\(TIMESYNC Directory Tree Mode\)\s*="
syn match ncfSetCommandsBool "\(TIMESYNC Hardware Clock\)\s*="
syn match ncfSetCommandsBool "\(TIMESYNC RESET\)\s*="
syn match ncfSetCommandsBool "\(TIMESYNC Restart Flag\)\s*="
syn match ncfSetCommandsBool "\(TIMESYNC Service Advertising\)\s*="
syn match ncfSetCommandsBool "\(TIMESYNC Write Parameters\)\s*="
syn match ncfSetCommandsBool "\(TTS Abort Dump Flag\)\s*="
syn match ncfSetCommandsBool "\(Upgrade Low Priority Threads\)\s*="
syn match ncfSetCommandsBool "\(Volume Low Warn All Users\)\s*="
syn match ncfSetCommandsBool "\(Write Fault Emulation\)\s*="
syn match ncfSetCommandsBool "\(Write Fault Notification\)\s*="

" Set Commands that take a "string" -- NOT QUOTED

syn match ncfSetCommandsStr "\(Default Time Server Type\)\s*="
syn match ncfSetCommandsStr "\(SMP NetWare Kernel Mode\)\s*="
syn match ncfSetCommandsStr "\(Time Zone\)\s*="
syn match ncfSetCommandsStr "\(TIMESYNC ADD Time Source\)\s*="
syn match ncfSetCommandsStr "\(TIMESYNC REMOVE Time Source\)\s*="
syn match ncfSetCommandsStr "\(TIMESYNC Time Source\)\s*="
syn match ncfSetCommandsStr "\(TIMESYNC Type\)\s*="

" SET Commands that take a "Time"

syn match ncfSetCommandsTime "\(Command Line Prompt Time Out\)\s*="
syn match ncfSetCommandsTime "\(Delay Before First Watchdog Packet\)\s*="
syn match ncfSetCommandsTime "\(Delay Between Watchdog Packets\)\s*="
syn match ncfSetCommandsTime "\(Directory Cache Buffer NonReferenced Delay\)\s*="
syn match ncfSetCommandsTime "\(Dirty Directory Cache Delay Time\)\s*="
syn match ncfSetCommandsTime "\(Dirty Disk Cache Delay Time\)\s*="
syn match ncfSetCommandsTime "\(File Delete Wait Time\)\s*="
syn match ncfSetCommandsTime "\(Minimum File Delete Wait Time\)\s*="
syn match ncfSetCommandsTime "\(Mirrored Devices Are Out of Sync Message Frequency\)\s*="
syn match ncfSetCommandsTime "\(New Packet Receive Buffer Wait Time\)\s*="
syn match ncfSetCommandsTime "\(TTS Backout File Truncation Wait Time\)\s*="
syn match ncfSetCommandsTime "\(TTS UnWritten Cache Wait Time\)\s*="
syn match ncfSetCommandsTime "\(Turbo FAT Re-Use Wait Time\)\s*="
syn match ncfSetCommandsTime "\(Daylight Savings Time Offset\)\s*="

syn match ncfSetCommandsTimeDate "\(End of Daylight Savings Time\)\s*="
syn match ncfSetCommandsTimeDate "\(Start of Daylight Savings Time\)\s*="

syn match ncfSetCommandsBindCon "\(Bindery Context\)\s*=" nextgroup=ncfContString

syn cluster ncfSetCommands contains=ncfSetCommandsNum,ncfSetCommandsBool,ncfSetCommandsStr,ncfSetCommandsTime,ncfSetCommandsTimeDate,ncfSetCommandsBindCon


if exists("ncf_highlight_unknowns")
    syn match Error "[^ \t]*" contains=ALL
endif


" The default methods for highlighting.  Can be overridden later
hi def link ncfCommands		Statement
hi def link ncfSetCommands	ncfCommands
hi def link ncfLogins		ncfCommands
hi def link ncfString		String
hi def link ncfContString	ncfString
hi def link ncfComment		Comment
hi def link ncfImplicit		Type
hi def link ncfBoolean		Boolean
hi def link ncfScript		Identifier
hi def link ncfNumber		Number
hi def link ncfIPAddr		ncfNumber
hi def link ncfHexNumber		ncfNumber
hi def link ncfTime		ncfNumber
hi def link ncfDSTTime		ncfNumber
hi def link ncfPath		Constant
hi def link ncfServerName	Special
hi def link ncfIPXNet		ncfServerName
hi def link ncfTimeTypes		Constant
hi def link ncfSetCommandsNum	   ncfSetCommands
hi def link ncfSetCommandsBool	   ncfSetCommands
hi def link ncfSetCommandsStr	   ncfSetCommands
hi def link ncfSetCommandsTime	   ncfSetCommands
hi def link ncfSetCommandsTimeDate  ncfSetCommands
hi def link ncfSetCommandsBindCon   ncfSetCommands



let b:current_syntax = "ncf"
PK�j�Z�����vim80/syntax/sl.vimnu�[���" Vim syntax file
" Language:	Renderman shader language
" Maintainer:	Dan Piponi <dan@tanelorn.demon.co.uk>
" Last Change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful Renderman keywords including special
" RenderMan control structures
syn keyword slStatement	break return continue
syn keyword slConditional	if else
syn keyword slRepeat		while for
syn keyword slRepeat		illuminance illuminate solar

syn keyword slTodo contained	TODO FIXME XXX

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match slSpecial contained	"\\[0-9][0-9][0-9]\|\\."
syn region slString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=slSpecial
syn match slCharacter		"'[^\\]'"
syn match slSpecialCharacter	"'\\.'"
syn match slSpecialCharacter	"'\\[0-9][0-9]'"
syn match slSpecialCharacter	"'\\[0-9][0-9][0-9]'"

"catch errors caused by wrong parenthesis
syn region slParen		transparent start='(' end=')' contains=ALLBUT,slParenError,slIncluded,slSpecial,slTodo,slUserLabel
syn match slParenError		")"
syn match slInParen contained	"[{}]"

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match slNumber		"\<[0-9]\+\(u\=l\=\|lu\|f\)\>"
"floating point number, with dot, optional exponent
syn match slFloat		"\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=[fl]\=\>"
"floating point number, starting with a dot, optional exponent
syn match slFloat		"\.[0-9]\+\(e[-+]\=[0-9]\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match slFloat		"\<[0-9]\+e[-+]\=[0-9]\+[fl]\=\>"
"hex number
syn match slNumber		"\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
"syn match slIdentifier	"\<[a-z_][a-z0-9_]*\>"
syn case match

if exists("sl_comment_strings")
  " A comment can contain slString, slCharacter and slNumber.
  " But a "*/" inside a slString in a slComment DOES end the comment!  So we
  " need to use a special type of slString: slCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  " Unfortunately this doesn't very well work for // type of comments :-(
  syntax match slCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region slCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=slSpecial,slCommentSkip
  syntax region slComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=slSpecial
  syntax region slComment	start="/\*" end="\*/" contains=slTodo,slCommentString,slCharacter,slNumber
else
  syn region slComment		start="/\*" end="\*/" contains=slTodo
endif
syntax match slCommentError	"\*/"

syn keyword slOperator	sizeof
syn keyword slType		float point color string vector normal matrix void
syn keyword slStorageClass	varying uniform extern
syn keyword slStorageClass	light surface volume displacement transformation imager
syn keyword slVariable	Cs Os P dPdu dPdv N Ng u v du dv s t
syn keyword slVariable L Cl Ol E I ncomps time Ci Oi
syn keyword slVariable Ps alpha
syn keyword slVariable dtime dPdtime

syn sync ccomment slComment minlines=10

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link slLabel	Label
hi def link slUserLabel	Label
hi def link slConditional	Conditional
hi def link slRepeat	Repeat
hi def link slCharacter	Character
hi def link slSpecialCharacter slSpecial
hi def link slNumber	Number
hi def link slFloat	Float
hi def link slParenError	slError
hi def link slInParen	slError
hi def link slCommentError	slError
hi def link slOperator	Operator
hi def link slStorageClass	StorageClass
hi def link slError	Error
hi def link slStatement	Statement
hi def link slType		Type
hi def link slCommentError	slError
hi def link slCommentString slString
hi def link slComment2String slString
hi def link slCommentSkip	slComment
hi def link slString	String
hi def link slComment	Comment
hi def link slSpecial	SpecialChar
hi def link slTodo	Todo
hi def link slVariable	Identifier
"hi def link slIdentifier	Identifier


let b:current_syntax = "sl"

" vim: ts=8
PK�j�Z��1.

vim80/syntax/tap.vimnu�[���" Vim syntax file
" Language:    Verbose TAP Output
" Maintainer:  Rufus Cable <rufus@threebytesfull.com>
" Remark:      Simple syntax highlighting for TAP output
" License:
" Copyright:   (c) 2008-2013 Rufus Cable
" Last Change: 2014-12-13

if exists("b:current_syntax")
  finish
endif

syn match tapTestDiag /^ *#.*/ contains=tapTestTodo
syn match tapTestTime /^ *\[\d\d:\d\d:\d\d\].*/ contains=tapTestFile
syn match tapTestFile /\w\+\/[^. ]*/ contained
syn match tapTestFileWithDot /\w\+\/[^ ]*/ contained

syn match tapTestPlan /^ *\d\+\.\.\d\+$/

" tapTest is a line like 'ok 1', 'not ok 2', 'ok 3 - xxxx'
syn match tapTest /^ *\(not \)\?ok \d\+.*/ contains=tapTestStatusOK,tapTestStatusNotOK,tapTestLine

" tapTestLine is the line without the ok/not ok status - i.e. number and
" optional message
syn match tapTestLine /\d\+\( .*\|$\)/ contains=tapTestNumber,tapTestLoadMessage,tapTestTodo,tapTestSkip contained

" turn ok/not ok messages green/red respectively
syn match tapTestStatusOK /ok/ contained
syn match tapTestStatusNotOK /not ok/ contained

" highlight todo tests
syn match tapTestTodo /\(# TODO\|Failed (TODO)\) .*$/ contained contains=tapTestTodoRev
syn match tapTestTodoRev /\<TODO\>/ contained

" highlight skipped tests
syn match tapTestSkip /# skip .*$/ contained contains=tapTestSkipTag
syn match tapTestSkipTag /\(# \)\@<=skip\>/ contained

" look behind so "ok 123" and "not ok 124" match test number
syn match tapTestNumber /\(ok \)\@<=\d\d*/ contained
syn match tapTestLoadMessage /\*\*\*.*\*\*\*/ contained contains=tapTestThreeStars,tapTestFileWithDot
syn match tapTestThreeStars /\*\*\*/ contained

syn region tapTestRegion start=/^ *\(not \)\?ok.*$/me=e+1 end=/^\(\(not \)\?ok\|# Looks like you planned \|All tests successful\|Bailout called\)/me=s-1 fold transparent excludenl
syn region tapTestResultsOKRegion start=/^\(All tests successful\|Result: PASS\)/ end=/$/
syn region tapTestResultsNotOKRegion start=/^\(# Looks like you planned \|Bailout called\|# Looks like you failed \|Result: FAIL\)/ end=/$/
syn region tapTestResultsSummaryRegion start=/^Test Summary Report/ end=/^Files=.*$/ contains=tapTestResultsSummaryHeading,tapTestResultsSummaryNotOK

syn region tapTestResultsSummaryHeading start=/^Test Summary Report/ end=/^-\+$/ contained
syn region tapTestResultsSummaryNotOK start=/TODO passed:/ end=/$/ contained

syn region tapTestInstructionsRegion start=/\%1l/ end=/^$/

set foldtext=TAPTestLine_foldtext()
function! TAPTestLine_foldtext()
    let line = getline(v:foldstart)
    let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
    return sub
endfunction

set foldminlines=5
set foldcolumn=2
set foldenable
set foldmethod=syntax
syn sync fromstart

if !exists("did_tapverboseoutput_syntax_inits")
  let did_tapverboseoutput_syntax_inits = 1

  hi      tapTestStatusOK    term=bold    ctermfg=green                 guifg=Green
  hi      tapTestStatusNotOK term=reverse ctermfg=black  ctermbg=red    guifg=Black     guibg=Red
  hi      tapTestTodo        term=bold    ctermfg=yellow ctermbg=black  guifg=Yellow    guibg=Black
  hi      tapTestTodoRev     term=reverse ctermfg=black  ctermbg=yellow guifg=Black     guibg=Yellow
  hi      tapTestSkip        term=bold    ctermfg=lightblue             guifg=LightBlue
  hi      tapTestSkipTag     term=reverse ctermfg=black  ctermbg=lightblue guifg=Black  guibg=LightBlue
  hi      tapTestTime        term=bold    ctermfg=blue                  guifg=Blue
  hi      tapTestFile        term=reverse ctermfg=black  ctermbg=yellow guibg=Black     guifg=Yellow
  hi      tapTestLoadedFile  term=bold    ctermfg=black  ctermbg=cyan   guibg=Cyan      guifg=Black
  hi      tapTestThreeStars  term=reverse ctermfg=blue                                  guifg=Blue
  hi      tapTestPlan        term=bold    ctermfg=yellow                                guifg=Yellow

  hi link tapTestFileWithDot tapTestLoadedFile
  hi link tapTestNumber      Number
  hi link tapTestDiag        Comment

  hi tapTestRegion ctermbg=green

  hi tapTestResultsOKRegion ctermbg=green ctermfg=black
  hi tapTestResultsNotOKRegion ctermbg=red ctermfg=black

  hi tapTestResultsSummaryHeading ctermbg=blue ctermfg=white
  hi tapTestResultsSummaryNotOK ctermbg=red ctermfg=black

  hi tapTestInstructionsRegion ctermbg=lightmagenta ctermfg=black
endif

let b:current_syntax="tapVerboseOutput"
PK�j�Z�`��vim80/syntax/denyhosts.vimnu�[���" Vim syntax file
" Language:             denyhosts configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-25

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword denyhostsTodo
      \ contained
      \ TODO
      \ FIXME
      \ XXX
      \ NOTE

syn case ignore

syn match   denyhostsComment
      \ contained
      \ display
      \ '#.*'
      \ contains=denyhostsTodo,
      \          @Spell

syn match   denyhostsBegin
      \ display
      \ '^'
      \ nextgroup=@denyhostsSetting,
      \           denyhostsComment
      \ skipwhite

syn cluster denyhostsSetting
      \ contains=denyhostsStringSetting,
      \          denyhostsBooleanSetting,
      \          denyhostsPathSetting,
      \          denyhostsNumericSetting,
      \          denyhostsTimespecSetting,
      \          denyhostsFormatSetting,
      \          denyhostsRegexSetting

syn keyword denyhostsStringSetting
      \ contained
      \ ADMIN_EMAIL
      \ SMTP_HOST
      \ SMTP_USERNAME
      \ SMTP_PASSWORD
      \ SMTP_FROM
      \ SMTP_SUBJECT
      \ BLOCK_SERVICE
      \ nextgroup=denyhostsStringDelimiter
      \ skipwhite

syn keyword denyhostsBooleanSetting
      \ contained
      \ SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS
      \ HOSTNAME_LOOKUP
      \ SYSLOG_REPORT
      \ RESET_ON_SUCCESS
      \ SYNC_UPLOAD
      \ SYNC_DOWNLOAD
      \ ALLOWED_HOSTS_HOSTNAME_LOOKUP
      \ nextgroup=denyhostsBooleanDelimiter
      \ skipwhite

syn keyword denyhostsPathSetting
      \ contained
      \ DAEMON_LOG
      \ PLUGIN_DENY
      \ PLUGIN_PURGE
      \ SECURE_LOG
      \ LOCK_FILE
      \ HOSTS_DENY
      \ WORK_DIR
      \ nextgroup=denyhostsPathDelimiter
      \ skipwhite

syn keyword denyhostsNumericSetting
      \ contained
      \ SYNC_DOWNLOAD_THRESHOLD
      \ SMTP_PORT
      \ PURGE_THRESHOLD
      \ DENY_THRESHOLD_INVALID
      \ DENY_THRESHOLD_VALID
      \ DENY_THRESHOLD_ROOT
      \ DENY_THRESHOLD_RESTRICTED
      \ nextgroup=denyhostsNumericDelimiter
      \ skipwhite

syn keyword denyhostsTimespecSetting
      \ contained
      \ DAEMON_SLEEP
      \ DAEMON_PURGE
      \ AGE_RESET_INVALID
      \ AGE_RESET_VALID
      \ AGE_RESET_ROOT
      \ AGE_RESET_RESTRICTED
      \ SYNC_INTERVAL
      \ SYNC_DOWNLOAD_RESILIENCY
      \ PURGE_DENY
      \ nextgroup=denyhostsTimespecDelimiter
      \ skipwhite

syn keyword denyhostsFormatSetting
      \ contained
      \ DAEMON_LOG_TIME_FORMAT
      \ DAEMON_LOG_MESSAGE_FORMAT
      \ SMTP_DATE_FORMAT
      \ nextgroup=denyhostsFormatDelimiter
      \ skipwhite

syn keyword denyhostsRegexSetting
      \ contained
      \ SSHD_FORMAT_REGEX
      \ FAILED_ENTRY_REGEX
      \ FAILED_ENTRY_REGEX2
      \ FAILED_ENTRY_REGEX3
      \ FAILED_ENTRY_REGEX4
      \ FAILED_ENTRY_REGEX5
      \ FAILED_ENTRY_REGEX6
      \ FAILED_ENTRY_REGEX7
      \ USERDEF_FAILED_ENTRY_REGEX
      \ SUCCESSFUL_ENTRY_REGEX
      \ nextgroup=denyhostsRegexDelimiter
      \ skipwhite

syn keyword denyhostURLSetting
      \ contained
      \ SYNC_SERVER
      \ nextgroup=denyhostsURLDelimiter
      \ skipwhite

syn match   denyhostsStringDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=denyhostsString
      \ skipwhite

syn match   denyhostsBooleanDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=@denyhostsBoolean
      \ skipwhite

syn match   denyhostsPathDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=denyhostsPath
      \ skipwhite

syn match   denyhostsNumericDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=denyhostsNumber
      \ skipwhite

syn match   denyhostsTimespecDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=denyhostsTimespec
      \ skipwhite

syn match   denyhostsFormatDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=denyhostsFormat
      \ skipwhite

syn match   denyhostsRegexDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=denyhostsRegex
      \ skipwhite

syn match   denyhostsURLDelimiter
      \ contained
      \ display
      \ '[:=]'
      \ nextgroup=denyhostsURL
      \ skipwhite

syn match   denyhostsString
      \ contained
      \ display
      \ '.\+'

syn cluster denyhostsBoolean
      \ contains=denyhostsBooleanTrue,
      \          denyhostsBooleanFalse

syn match   denyhostsBooleanFalse
      \ contained
      \ display
      \ '.\+'

syn match   denyhostsBooleanTrue
      \ contained
      \ display
      \ '\s*\%(1\|t\%(rue\)\=\|y\%(es\)\=\)\>\s*$'

syn match   denyhostsPath
      \ contained
      \ display
      \ '.\+'

syn match   denyhostsNumber
      \ contained
      \ display
      \ '\d\+\>'

syn match   denyhostsTimespec
      \ contained
      \ display
      \ '\d\+[mhdwy]\>'

syn match   denyhostsFormat
      \ contained
      \ display
      \ '.\+'
      \ contains=denyhostsFormattingExpandos

syn match   denyhostsFormattingExpandos
      \ contained
      \ display
      \ '%.'

syn match   denyhostsRegex
      \ contained
      \ display
      \ '.\+'

" TODO: Perhaps come up with a better regex here?  There should really be a
" library for these kinds of generic regexes, that is, URLs, mail addresses, …
syn match   denyhostsURL
      \ contained
      \ display
      \ '.\+'

hi def link denyhostsTodo               Todo
hi def link denyhostsComment            Comment
hi def link denyhostsSetting            Keyword
hi def link denyhostsStringSetting      denyhostsSetting
hi def link denyhostsBooleanSetting     denyhostsSetting
hi def link denyhostsPathSetting        denyhostsSetting
hi def link denyhostsNumericSetting     denyhostsSetting
hi def link denyhostsTimespecSetting    denyhostsSetting
hi def link denyhostsFormatSetting      denyhostsSetting
hi def link denyhostsRegexSetting       denyhostsSetting
hi def link denyhostURLSetting          denyhostsSetting
hi def link denyhostsDelimiter          Normal
hi def link denyhostsStringDelimiter    denyhostsDelimiter
hi def link denyhostsBooleanDelimiter   denyhostsDelimiter
hi def link denyhostsPathDelimiter      denyhostsDelimiter
hi def link denyhostsNumericDelimiter   denyhostsDelimiter
hi def link denyhostsTimespecDelimiter  denyhostsDelimiter
hi def link denyhostsFormatDelimiter    denyhostsDelimiter
hi def link denyhostsRegexDelimiter     denyhostsDelimiter
hi def link denyhostsURLDelimiter       denyhostsDelimiter
hi def link denyhostsString             String
if exists('g:syntax_booleans_simple') || exists('b:syntax_booleans_simple')
  hi def link denyhostsBoolean          Boolean
  hi def link denyhostsBooleanFalse     denyhostsBoolean
  hi def link denyhostsBooleanTrue      denyhostsBoolean
else
  hi def    denyhostsBooleanTrue        term=bold ctermfg=Green guifg=Green
  hi def    denyhostsBooleanFalse       ctermfg=Red guifg=Red
endif
hi def link denyhostsPath               String
hi def link denyhostsNumber             Number
hi def link denyhostsTimespec           Number
hi def link denyhostsFormat             String
hi def link denyhostsFormattingExpandos Special
hi def link denyhostsRegex              String
hi def link denyhostsURL                String

let b:current_syntax = "denyhosts"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZI�S]
]
vim80/syntax/messages.vimnu�[���" Vim syntax file
" Language:         /var/log/messages file
" Maintainer:       Yakov Lerner <iler.ml@gmail.com>
" Latest Revision:  2008-06-29
" Changes:          2008-06-29 support for RFC3339 tuimestamps James Vega
" 		    2016 Jan 19: messagesDate changed by Bram

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   messagesBegin       display '^' nextgroup=messagesDate,messagesDateRFC3339

syn match   messagesDate        contained display '[[:lower:][:upper:]][[:lower:][:upper:]][[:lower:][:upper:]] [ 0-9]\d *'
                                \ nextgroup=messagesHour

syn match   messagesHour        contained display '\d\d:\d\d:\d\d\s*'
                                \ nextgroup=messagesHost

syn match   messagesDateRFC3339 contained display '\d\{4}-\d\d-\d\d'
                                \ nextgroup=messagesRFC3339T

syn match   messagesRFC3339T    contained display '\cT'
                                \ nextgroup=messagesHourRFC3339

syn match   messagesHourRFC3339 contained display '\c\d\d:\d\d:\d\d\(\.\d\+\)\=\([+-]\d\d:\d\d\|Z\)'
                                \ nextgroup=messagesHost

syn match   messagesHost        contained display '\S*\s*'
                                \ nextgroup=messagesLabel

syn match   messagesLabel       contained display '\s*[^:]*:\s*'
                                \ nextgroup=messagesText contains=messagesKernel,messagesPID

syn match   messagesPID         contained display '\[\zs\d\+\ze\]'

syn match   messagesKernel      contained display 'kernel:'


syn match   messagesIP          '\d\+\.\d\+\.\d\+\.\d\+'

syn match   messagesURL         '\w\+://\S\+'

syn match   messagesText        contained display '.*'
                                \ contains=messagesNumber,messagesIP,messagesURL,messagesError

syn match   messagesNumber      contained '0x[0-9a-fA-F]*\|\[<[0-9a-f]\+>\]\|\<\d[0-9a-fA-F]*'

syn match   messagesError       contained '\c.*\<\(FATAL\|ERROR\|ERRORS\|FAILED\|FAILURE\).*'


hi def link messagesDate        Constant
hi def link messagesHour        Type
hi def link messagesDateRFC3339 Constant
hi def link messagesHourRFC3339 Type
hi def link messagesRFC3339T    Normal
hi def link messagesHost        Identifier
hi def link messagesLabel       Operator
hi def link messagesPID         Constant
hi def link messagesKernel      Special
hi def link messagesError       ErrorMsg
hi def link messagesIP          Constant
hi def link messagesURL         Underlined
hi def link messagesText        Normal
hi def link messagesNumber      Number

let b:current_syntax = "messages"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�����vim80/syntax/asterisk.vimnu�[���" Vim syntax file
" Language:	Asterisk config file
" Maintainer: 	Jean Aunis <jean.aunis@yahoo.fr>
" Previous Maintainer:	brc007
" Updated for 1.2 by Tilghman Lesher (Corydon76)
" Last Change:	2015 Feb 27
" version 0.4

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn sync clear
syn sync fromstart

syn keyword     asteriskTodo    TODO contained
syn match       asteriskComment         ";.*" contains=asteriskTodo
syn match       asteriskContext         "\[.\{-}\]"
syn match       asteriskExten           "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority
syn match       asteriskExten           "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority
syn match       asteriskExten           "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?"
syn match       asteriskPattern         "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained
syn match       asteriskPattern         "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained
syn match       asteriskApp             ",\zs[a-zA-Z]\+\ze$"
syn match       asteriskApp             ",\zs[a-zA-Z]\+\ze("
" Digits plus oldlabel (newlabel)
syn match       asteriskPriority        "\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
" oldlabel plus digits (newlabel)
syn match       asteriskPriority        "\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
" s or n plus digits (newlabel)
syn match       asteriskPriority        "\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
syn match       asteriskLabel           "(\zs[[:alpha:]][[:alnum:]]*\ze)" contained
syn match       asteriskError           "^\s*#\s*[[:alnum:]]*"
syn match       asteriskInclude         "^\s*#\s*\(include\|exec\)\s.*"
syn match       asteriskVar             "\${_\{0,2}[[:alpha:]][[:alnum:]_]*\(:-\?[[:digit:]]\+\(:[[:digit:]]\+\)\?\)\?}"
syn match       asteriskVar             "_\{0,2}[[:alpha:]][[:alnum:]_]*\ze="
syn match       asteriskVarLen          "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.*)}" contains=asteriskVar,asteriskVarLen,asteriskExp
syn match       asteriskVarLen          "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp
syn match       asteriskExp             "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp
syn match       asteriskCodecsPermit    "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs
syn match       asteriskCodecs          "\(g723\|gsm\|ulaw\|alaw\|g726\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|all\s*$\)"
syn match       asteriskError           "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$"
syn match       asteriskType            "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType
syn match       asteriskTypeType        "\<\(peer\|user\|friend\)\>" contained
syn match       asteriskAuth            "^\zsauth\s*=\ze\s*\<\(md5\|rsa\|plaintext\)\>$" contains=asteriskAuthType
syn match       asteriskAuthType        "\<\(md5\|rsa\|plaintext\)\>"
syn match       asteriskAuth            "^\zs\(secret\|inkeys\|outkey\)\s*=\ze.*$"
syn match       asteriskAuth            "^\(permit\|deny\)\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\s*$" contains=asteriskIPRange
syn match       asteriskIPRange         "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained
syn match       asteriskIP              "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained
syn match       asteriskHostname        "[[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}" contained
syn match       asteriskPort            "\d\{1,5}" contained
syn match       asteriskSetting         "^bindaddr\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}$" contains=asteriskIP
syn match       asteriskSetting         "^port\s*=\s*\d\{1,5}\s*$" contains=asteriskPort
syn match       asteriskSetting         "^host\s*=\s*\(dynamic\|\(\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)\|\([[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}\)\)" contains=asteriskIP,asteriskHostname

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link        asteriskComment		Comment
hi def link        asteriskExten		String
hi def link        asteriskContext         Preproc
hi def link        asteriskPattern         Type
hi def link        asteriskApp             Statement
hi def link        asteriskInclude         Preproc
hi def link        asteriskIncludeBad	Error
hi def link        asteriskPriority        Preproc
hi def link        asteriskLabel           Type
hi def link        asteriskVar             String
hi def link        asteriskVarLen          Function
hi def link        asteriskExp             Type
hi def link        asteriskCodecsPermit    Preproc
hi def link        asteriskCodecs          String
hi def link        asteriskType            Statement
hi def link        asteriskTypeType        Type
hi def link        asteriskAuth            String
hi def link        asteriskAuthType        Type
hi def link        asteriskIPRange         Identifier
hi def link        asteriskIP              Identifier
hi def link        asteriskPort            Identifier
hi def link        asteriskHostname        Identifier
hi def link        asteriskSetting         Statement
hi def link        asteriskError           Error

let b:current_syntax = "asterisk" 
" vim: ts=8 sw=2

PK�j�Z�6�xvim80/syntax/bzr.vimnu�[���" Vim syntax file
" Language:     Bazaar (bzr) commit file
" Maintainer:   Dmitry Vasiliev <dima at hlabs dot org>
" URL:          https://github.com/hdima/vim-scripts/blob/master/syntax/bzr.vim
" Last Change:  2012-02-11
" Filenames:    bzr_log.*
" Version:      1.2.2
"
" Thanks:
"
"    Gioele Barabucci
"       for idea of diff highlighting

" quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif

if exists("bzr_highlight_diff")
  syn include @Diff syntax/diff.vim
endif

syn match bzrRemoved   "^removed:$" contained
syn match bzrAdded     "^added:$" contained
syn match bzrRenamed   "^renamed:$" contained
syn match bzrModified  "^modified:$" contained
syn match bzrUnchanged "^unchanged:$" contained
syn match bzrUnknown   "^unknown:$" contained
syn cluster Statuses contains=bzrRemoved,bzrAdded,bzrRenamed,bzrModified,bzrUnchanged,bzrUnknown
if exists("bzr_highlight_diff")
  syn cluster Statuses add=@Diff
endif
syn region bzrRegion   start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=@NoSpell,@Statuses

" Synchronization.
syn sync clear
syn sync match bzrSync  grouphere bzrRegion "^-\{14} This line and the following will be ignored -\{14}$"me=s-1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet.

hi def link bzrRemoved    Constant
hi def link bzrAdded      Identifier
hi def link bzrModified   Special
hi def link bzrRenamed    Special
hi def link bzrUnchanged  Special
hi def link bzrUnknown    Special


let b:current_syntax = "bzr"
PK�j�ZD�/+

vim80/syntax/tt2js.vimnu�[���" Language:      TT2 embedded with Javascript
" Maintainer:    Andy Lester <andy@petdance.com>
" Author:        Yates, Peter <pd.yates@gmail.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2013-07-21

if exists("b:current_syntax")
    finish
endif

runtime! syntax/javascript.vim
unlet b:current_syntax

runtime! syntax/tt2.vim
unlet b:current_syntax

syn cluster javascriptPreProc add=@tt2_top_cluster

let b:current_syntax = "tt2js"
PK�j�Z{�H�
�
vim80/syntax/msidl.vimnu�[���" Vim syntax file
" Language:     MS IDL (Microsoft dialect of Interface Description Language)
" Maintainer:   Vadim Zeitlin <vadim@wxwindows.org>
" Last Change:  2012 Feb 12 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Misc basic
syn match   msidlId		"[a-zA-Z][a-zA-Z0-9_]*"
syn match   msidlUUID		"{\?[[:xdigit:]]\{8}-\([[:xdigit:]]\{4}-\)\{3}[[:xdigit:]]\{12}}\?"
syn region  msidlString		start=/"/  skip=/\\\(\\\\\)*"/	end=/"/
syn match   msidlLiteral	"\d\+\(\.\d*\)\="
syn match   msidlLiteral	"\.\d\+"
syn match   msidlSpecial	contained "[]\[{}:]"

" Comments
syn keyword msidlTodo		contained TODO FIXME XXX
syn region  msidlComment	start="/\*"  end="\*/" contains=msidlTodo
syn match   msidlComment	"//.*" contains=msidlTodo
syn match   msidlCommentError	"\*/"

" C style Preprocessor
syn region  msidlIncluded	contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+
syn match   msidlIncluded	contained "<[^>]*>"
syn match   msidlInclude	"^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=msidlIncluded,msidlString
syn region  msidlPreCondit	start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"	end="$" contains=msidlComment,msidlCommentError
syn region  msidlDefine		start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=msidlLiteral, msidlString

" Attributes
syn keyword msidlAttribute      contained in out propget propput propputref retval
syn keyword msidlAttribute      contained aggregatable appobject binadable coclass control custom default defaultbind defaultcollelem defaultvalue defaultvtable dispinterface displaybind dual entry helpcontext helpfile helpstring helpstringdll hidden id immediatebind lcid library licensed nonbrowsable noncreatable nonextensible oleautomation optional object public readonly requestedit restricted source string uidefault usesgetlasterror vararg version
syn match   msidlAttribute      /uuid(.*)/he=s+4 contains=msidlUUID
syn match   msidlAttribute      /helpstring(.*)/he=s+10 contains=msidlString
syn region  msidlAttributes     start="\[" end="]" keepend contains=msidlSpecial,msidlString,msidlAttribute,msidlComment,msidlCommentError

" Keywords
syn keyword msidlEnum		enum
syn keyword msidlImport		import importlib
syn keyword msidlStruct		interface library coclass
syn keyword msidlTypedef	typedef

" Types
syn keyword msidlStandardType   byte char double float hyper int long short void wchar_t
syn keyword msidlStandardType   BOOL BSTR HRESULT VARIANT VARIANT_BOOL
syn region  msidlSafeArray      start="SAFEARRAY(" end=")" contains=msidlStandardType

syn sync lines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link msidlInclude		Include
hi def link msidlPreProc		PreProc
hi def link msidlPreCondit		PreCondit
hi def link msidlDefine		Macro
hi def link msidlIncluded		String
hi def link msidlString		String
hi def link msidlComment		Comment
hi def link msidlTodo		Todo
hi def link msidlSpecial		SpecialChar
hi def link msidlLiteral		Number
hi def link msidlUUID		Number

hi def link msidlImport		Include
hi def link msidlEnum		StorageClass
hi def link msidlStruct		Structure
hi def link msidlTypedef		Typedef
hi def link msidlAttribute		StorageClass

hi def link msidlStandardType	Type
hi def link msidlSafeArray		Type


let b:current_syntax = "msidl"

let &cpo = s:cpo_save
unlet s:cpo_save
" vi: set ts=8 sw=4:
PK�j�Z�/�)��vim80/syntax/sass.vimnu�[���" Vim syntax file
" Language:	Sass
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Filenames:	*.sass
" Last Change:	2016 Aug 29

if exists("b:current_syntax")
  finish
endif

runtime! syntax/css.vim

syn case ignore

syn cluster sassCssProperties contains=cssFontProp,cssFontDescriptorProp,cssColorProp,cssTextProp,cssBoxProp,cssGeneratedContentProp,cssPagingProp,cssUIProp,cssRenderProp,cssAuralProp,cssTableProp
syn cluster sassCssAttributes contains=css.*Attr,sassEndOfLineComment,scssComment,cssValue.*,cssColor,cssURL,sassDefault,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp

syn region sassDefinition matchgroup=cssBraces start="{" end="}" contains=TOP

syn match sassProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:" contains=css.*Prop skipwhite nextgroup=sassCssAttribute contained containedin=sassDefinition
syn match sassProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
syn match sassProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
syn match sassCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@sassCssAttributes,sassVariable,sassFunction,sassInterpolation
syn match sassDefault "!default\>" contained
syn match sassVariable "!\%(important\>\|default\>\)\@![[:alnum:]_-]\+"
syn match sassVariable "$[[:alnum:]_-]\+"
syn match sassVariableAssignment "\%([!$][[:alnum:]_-]\+\s*\)\@<=\%(||\)\==" nextgroup=sassCssAttribute skipwhite
syn match sassVariableAssignment "\%([!$][[:alnum:]_-]\+\s*\)\@<=:" nextgroup=sassCssAttribute skipwhite

syn match sassFunction "\<\%(rgb\|rgba\|red\|green\|blue\|mix\)\>(\@=" contained
syn match sassFunction "\<\%(hsl\|hsla\|hue\|saturation\|lightness\|adjust-hue\|lighten\|darken\|saturate\|desaturate\|grayscale\|complement\)\>(\@=" contained
syn match sassFunction "\<\%(alpha\|opacity\|rgba\|opacify\|fade-in\|transparentize\|fade-out\)\>(\@=" contained
syn match sassFunction "\<\%(unquote\|quote\)\>(\@=" contained
syn match sassFunction "\<\%(percentage\|round\|ceil\|floor\|abs\)\>(\@=" contained
syn match sassFunction "\<\%(type-of\|unit\|unitless\|comparable\)\>(\@=" contained

syn region sassInterpolation matchgroup=sassInterpolationDelimiter start="#{" end="}" contains=@sassCssAttributes,sassVariable,sassFunction containedin=cssStringQ,cssStringQQ,cssPseudoClass,sassProperty

syn match sassMixinName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute
syn match sassMixin  "^="               nextgroup=sassMixinName skipwhite
syn match sassMixin  "\%([{};]\s*\|^\s*\)\@<=@mixin"   nextgroup=sassMixinName skipwhite
syn match sassMixing "^\s\+\zs+"        nextgroup=sassMixinName
syn match sassMixing "\%([{};]\s*\|^\s*\)\@<=@include" nextgroup=sassMixinName skipwhite
syn match sassExtend "\%([{};]\s*\|^\s*\)\@<=@extend"
syn match sassPlaceholder "\%([{};]\s*\|^\s*\)\@<=%"   nextgroup=sassMixinName skipwhite

syn match sassFunctionName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute
syn match sassFunctionDecl "\%([{};]\s*\|^\s*\)\@<=@function"   nextgroup=sassFunctionName skipwhite
syn match sassReturn "\%([{};]\s*\|^\s*\)\@<=@return"

syn match sassEscape     "^\s*\zs\\"
syn match sassIdChar     "#[[:alnum:]_-]\@=" nextgroup=sassId
syn match sassId         "[[:alnum:]_-]\+" contained
syn match sassClassChar  "\.[[:alnum:]_-]\@=" nextgroup=sassClass
syn match sassClass      "[[:alnum:]_-]\+" contained
syn match sassAmpersand  "&"

" TODO: Attribute namespaces
" TODO: Arithmetic (including strings and concatenation)

syn region sassMediaQuery matchgroup=sassMedia start="@media" end="[{};]\@=\|$" contains=sassMediaOperators
syn keyword sassMediaOperators and not only contained
syn region sassCharset start="@charset" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction
syn region sassWarnLine end=";\|$" matchgroup=sassWarn start="@warn\>" contains=@sassCssAttributes,sassVariable,sassFunction
syn region sassControlLine matchgroup=sassControl start="@\%(if\|else\%(\s\+if\)\=\|while\|for\|each\)\>" end="[{};]\@=\|$" contains=sassFor,@sassCssAttributes,sassVariable,sassFunction
syn keyword sassFor from to through in contained

syn keyword sassTodo        FIXME NOTE TODO OPTIMIZE XXX contained
syn region  sassComment     start="^\z(\s*\)//"  end="^\%(\z1 \)\@!" contains=sassTodo,@Spell
syn region  sassCssComment  start="^\z(\s*\)/\*" end="^\%(\z1 \)\@!" contains=sassTodo,@Spell
syn match   sassEndOfLineComment "//.*" contains=sassComment,sassTodo,@Spell

hi def link sassEndOfLineComment        sassComment
hi def link sassCssComment              sassComment
hi def link sassComment                 Comment
hi def link sassDefault                 cssImportant
hi def link sassVariable                Identifier
hi def link sassFunction                Function
hi def link sassMixing                  PreProc
hi def link sassMixin                   PreProc
hi def link sassPlaceholder             PreProc
hi def link sassExtend                  PreProc
hi def link sassFunctionDecl            PreProc
hi def link sassReturn                  PreProc
hi def link sassTodo                    Todo
hi def link sassCharset                 PreProc
hi def link sassMedia                   PreProc
hi def link sassMediaOperators          PreProc
hi def link sassInclude                 Include
hi def link sassDebug                   sassControl
hi def link sassWarn                    sassControl
hi def link sassControl                 PreProc
hi def link sassFor                     PreProc
hi def link sassEscape                  Special
hi def link sassIdChar                  Special
hi def link sassClassChar               Special
hi def link sassInterpolationDelimiter  Delimiter
hi def link sassAmpersand               Character
hi def link sassId                      Identifier
hi def link sassClass                   Type

let b:current_syntax = "sass"

" vim:set sw=2:
PK�j�Z�v�k��vim80/syntax/change.vimnu�[���" Vim syntax file
" Language:	WEB Changes
" Maintainer:	Andreas Scherer <andreas.scherer@pobox.com>
" Last Change:	April 25, 2001

" Details of the change mechanism of the WEB and CWEB languages can be found
" in the articles by Donald E. Knuth and Silvio Levy cited in "web.vim" and
" "cweb.vim" respectively.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" We distinguish two groups of material, (a) stuff between @x..@y, and
" (b) stuff between @y..@z. WEB/CWEB ignore everything else in a change file.
syn region changeFromMaterial start="^@x.*$"ms=e+1 end="^@y.*$"me=s-1
syn region changeToMaterial start="^@y.*$"ms=e+1 end="^@z.*$"me=s-1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link changeFromMaterial String
hi def link changeToMaterial Statement


let b:current_syntax = "change"

" vim: ts=8
PK�j�Z�'}���vim80/syntax/asmh8300.vimnu�[���" Vim syntax file
" Language:	Hitachi H-8300h specific syntax for GNU Assembler
" Maintainer:	Kevin Dahlhausen <kdahlhaus@yahoo.com>
" Last Change:	2002 Sep 19

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn match asmDirective "\.h8300[h]*"

"h8300[h] registers
syn match asmReg	"e\=r[0-7][lh]\="

"h8300[h] opcodes - order is important!
syn match asmOpcode "add\.[lbw]"
syn match asmOpcode "add[sx :]"
syn match asmOpcode "and\.[lbw]"
syn match asmOpcode "bl[deots]"
syn match asmOpcode "cmp\.[lbw]"
syn match asmOpcode "dec\.[lbw]"
syn match asmOpcode "divx[us].[bw]"
syn match asmOpcode "ext[su]\.[lw]"
syn match asmOpcode "inc\.[lw]"
syn match asmOpcode "mov\.[lbw]"
syn match asmOpcode "mulx[su]\.[bw]"
syn match asmOpcode "neg\.[lbw]"
syn match asmOpcode "not\.[lbw]"
syn match asmOpcode "or\.[lbw]"
syn match asmOpcode "pop\.[wl]"
syn match asmOpcode "push\.[wl]"
syn match asmOpcode "rotx\=[lr]\.[lbw]"
syn match asmOpcode "sha[lr]\.[lbw]"
syn match asmOpcode "shl[lr]\.[lbw]"
syn match asmOpcode "sub\.[lbw]"
syn match asmOpcode "xor\.[lbw]"
syn keyword asmOpcode "andc" "band" "bcc" "bclr" "bcs" "beq" "bf" "bge" "bgt"
syn keyword asmOpcode "bhi" "bhs" "biand" "bild" "bior" "bist" "bixor" "bmi"
syn keyword asmOpcode "bne" "bnot" "bnp" "bor" "bpl" "bpt" "bra" "brn" "bset"
syn keyword asmOpcode "bsr" "btst" "bst" "bt" "bvc" "bvs" "bxor" "cmp" "daa"
syn keyword asmOpcode "das" "eepmov" "eepmovw" "inc" "jmp" "jsr" "ldc" "movfpe"
syn keyword asmOpcode "movtpe" "mov" "nop" "orc" "rte" "rts" "sleep" "stc"
syn keyword asmOpcode "sub" "trapa" "xorc"

syn case match


" Read the general asm syntax
runtime! syntax/asm.vim


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link asmOpcode  Statement
hi def link asmRegister  Identifier

" My default-color overrides:
"hi asmOpcode ctermfg=yellow
"hi asmReg	ctermfg=lightmagenta


let b:current_syntax = "asmh8300"

" vim: ts=8
PK�j�Z��Avim80/syntax/blank.vimnu�[���" Vim syntax file
" Language:     Blank 1.4.1
" Maintainer:   Rafal M. Sulejman <unefunge@friko2.onet.pl>
" Last change:  2011 Dec 28 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

" Blank instructions
syn match blankInstruction "{[:;,\.+\-*$#@/\\`'"!\|><{}\[\]()?xspo\^&\~=_%]}"

" Common strings
syn match blankString "\~[^}]"

" Numbers
syn match blankNumber "\[[0-9]\+\]"

syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link blankInstruction      Statement
hi def link blankNumber	       Number
hi def link blankString	       String


let b:current_syntax = "blank"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z��5�!�!vim80/syntax/perl6.vimnu�[���" Vim syntax file
" Language:      Perl 6
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2013-07-21

" Contributors:  Luke Palmer <fibonaci@babylonia.flatirons.org>
"                Moritz Lenz <moritz@faui2k3.org>
"                Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
" This is a big undertaking. Perl 6 is the sort of language that only Perl
" can parse. But I'll do my best to get vim to.
"
" You can associate the extension ".pl" with the filetype "perl6" by setting
"     autocmd BufNewFile,BufRead *.pl setf perl6
" in your ~/.vimrc. But that will infringe on Perl 5, so you might want to
" put a modeline near the beginning or end of your Perl 6 files instead:
"     # vim: filetype=perl6

" TODO:
"   * Deal with s:Perl5//
"   * m:s// is a match, not a substitution
"   * Make these highlight as strings, not operators:
"       <==> <=:=> <===> <=~> <« »> «>» «<»
"   * Allow more keywords to match as function calls(leave() is export(), etc)
"   * Optimization: use nextgroup instead of lookaround (:help syn-nextgroup)
"   * Fix s''' substitutions being matched as package names
"   * Match s/// and m/// better, so things like "$s/" won't match
"   * Add more support for folding (:help syn-fold)
"   * Add more syntax syncing hooks (:help syn-sync)
"   * Q//:
"       :to, :heredoc
"       interpolate \q:s{$scalar} (though the spec isn't very clear on it)
"
" Impossible TODO?:
"   * Unspace
"   * Unicode bracketing characters for quoting (there are so many)
"   * Various tricks depending on context. I.e. we can't know when Perl
"     expects «*» to be a string or a hyperoperator. The latter is presumably
"     more common, so that's what we assume.
"   * Selective highlighting of Pod formatting codes with the :allow option
"   * Arbitrary number, order, and negation of adverbs to Q//, q//, qq//.
"     Currently only the first adverb is considered significant. Anything
"     more would require an exponential amount of regexes, making this
"     already slow syntax file even slower.
"
" If you want to have Pir code inside Q:PIR// strings highlighted, do:
"  let perl6_embedded_pir=1
"
" The above requires pir.vim, which you can find in Parrot's repository:
" https://svn.parrot.org/parrot/trunk/editor/
"
" Some less than crucial things have been made optional to speed things up.
" Look at the comments near the if/else branches in this file to see exactly
" which features are affected. "perl6_extended_all" enables everything.
"
" The defaults are:
"
"  unlet perl6_extended_comments
"  unlet perl6_extended_q
"  unlet perl6_extended_all

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif
let s:keepcpo= &cpo
set cpo&vim

" identifiers
syn match p6Normal display "\K\%(\k\|[-']\K\@=\)*"

" This is used in the for loops below
" Don't use the "syn keyword" construct because that always has higher
" priority than matches/regions, so the words can't be autoquoted with
" the "=>" and "p5=>" operators. All the lookaround stuff is to make sure
" we don't match them as part of some other identifier.
let s:before_keyword = " display \"\\%(\\k\\|\\K\\@<=[-']\\)\\@<!\\%("
let s:after_keyword = "\\)\\%(\\k\\|[-']\\K\\@=\\)\\@!\""

" Billions of keywords
let s:keywords = {
 \ "p6Attention": [
 \   "ACHTUNG ATTN ATTENTION FIXME NB TODO TBD WTF XXX NOTE",
 \ ],
 \ "p6DeclareRoutine": [
 \   "macro sub submethod method multi proto only rule token regex category",
 \ ],
 \ "p6Module": [
 \   "module class role package enum grammar slang subset",
 \ ],
 \ "p6Variable": [
 \   "self",
 \ ],
 \ "p6Include": [
 \   "use require",
 \ ],
 \ "p6Conditional": [
 \   "if else elsif unless",
 \ ],
 \ "p6VarStorage": [
 \   "let my our state temp has constant",
 \ ],
 \ "p6Repeat": [
 \   "for loop repeat while until gather given",
 \ ],
 \ "p6FlowControl": [
 \   "take do when next last redo return contend maybe defer",
 \   "default exit make continue break goto leave async lift",
 \ ],
 \ "p6TypeConstraint": [
 \   "is as but trusts of returns handles where augment supersede",
 \ ],
 \ "p6ClosureTrait": [
 \   "BEGIN CHECK INIT START FIRST ENTER LEAVE KEEP",
 \   "UNDO NEXT LAST PRE POST END CATCH CONTROL TEMP",
 \ ],
 \ "p6Exception": [
 \   "die fail try warn",
 \ ],
 \ "p6Property": [
 \   "prec irs ofs ors export deep binary unary reparsed rw parsed cached",
 \   "readonly defequiv will ref copy inline tighter looser equiv assoc",
 \   "required",
 \ ],
 \ "p6Number": [
 \   "NaN Inf",
 \ ],
 \ "p6Pragma": [
 \   "oo fatal",
 \ ],
 \ "p6Type": [
 \   "Object Any Junction Whatever Capture Match",
 \   "Signature Proxy Matcher Package Module Class",
 \   "Grammar Scalar Array Hash KeyHash KeySet KeyBag",
 \   "Pair List Seq Range Set Bag Mapping Void Undef",
 \   "Failure Exception Code Block Routine Sub Macro",
 \   "Method Submethod Regex Str Blob Char Byte",
 \   "Codepoint Grapheme StrPos StrLen Version Num",
 \   "Complex num complex Bit bit bool True False",
 \   "Increasing Decreasing Ordered Callable AnyChar",
 \   "Positional Associative Ordering KeyExtractor",
 \   "Comparator OrderingPair IO KitchenSink Role",
 \   "Int int int1 int2 int4 int8 int16 int32 int64",
 \   "Rat rat rat1 rat2 rat4 rat8 rat16 rat32 rat64",
 \   "Buf buf buf1 buf2 buf4 buf8 buf16 buf32 buf64",
 \   "UInt uint uint1 uint2 uint4 uint8 uint16 uint32",
 \   "uint64 Abstraction utf8 utf16 utf32",
 \ ],
 \ "p6Operator": [
 \   "div x xx mod also leg cmp before after eq ne le lt",
 \   "gt ge eqv ff fff and andthen Z X or xor",
 \   "orelse extra m mm rx s tr",
 \ ],
\ }

for [group, words] in items(s:keywords)
    let s:words_space = join(words, " ")
    let s:temp = split(s:words_space)
    let s:words = join(s:temp, "\\|")
    exec "syn match ". group ." ". s:before_keyword . s:words . s:after_keyword
endfor
unlet s:keywords s:words_space s:temp s:words

" More operators
" Don't put a "\+" at the end of the character class. That makes it so
" greedy that the "%" " in "+%foo" won't be allowed to match as a sigil,
" among other things
syn match p6Operator display "[-+/*~?|=^!%&,<>.;\\]"
syn match p6Operator display "\%(:\@<!::\@!\|::=\|\.::\)"
" these require whitespace on the left side
syn match p6Operator display "\%(\s\|^\)\@<=\%(xx=\|p5=>\)"
" "i" requires a digit to the left, and no keyword char to the right
syn match p6Operator display "\d\@<=i\k\@!"
" index overloading
syn match p6Operator display "\%(&\.(\@=\|@\.\[\@=\|%\.{\@=\)"

" all infix operators except nonassocative ones
let s:infix_a = [
    \ "div % mod +& +< +> \\~& ?& \\~< \\~> +| +\\^ \\~| \\~\\^ ?| ?\\^ xx x",
    \ "\\~ && & also <== ==> <<== ==>> == != < <= > >= \\~\\~ eq ne lt le gt",
    \ "ge =:= === eqv before after \\^\\^ min max \\^ff ff\\^ \\^ff\\^",
    \ "\\^fff fff\\^ \\^fff\\^ fff ff ::= := \\.= => , : p5=> Z minmax",
    \ "\\.\\.\\. and andthen or orelse xor \\^ += -= /= \\*= \\~= //= ||=",
    \ "+ - \\*\\* \\* // / \\~ || |",
\ ]
" nonassociative infix operators
let s:infix_n = "but does <=> leg cmp \\.\\. \\.\\.\\^\\^ \\^\\.\\. \\^\\.\\.\\^"

let s:infix_a_long = join(s:infix_a, " ")
let s:infix_a_words = split(s:infix_a_long)
let s:infix_a_pattern = join(s:infix_a_words, "\\|")

let s:infix_n_words = split(s:infix_n)
let s:infix_n_pattern = join(s:infix_n_words, "\\|")

let s:both = [s:infix_a_pattern, s:infix_n_pattern]
let s:infix = join(s:both, "\\|")

let s:infix_assoc = "!\\?\\%(" . s:infix_a_pattern . "\\)"
let s:infix = "!\\?\\%(" . s:infix . "\\)"

unlet s:infix_a s:infix_a_long s:infix_a_words s:infix_a_pattern
unlet s:infix_n s:infix_n_pattern s:both

" [+] reduce
exec "syn match p6ReduceOp display \"\\k\\@<!\\[[R\\\\]\\?!\\?". s:infix_assoc ."]\\%(«\\|<<\\)\\?\""
unlet s:infix_assoc

" Reverse and cross operators (Rop, Xop)
exec "syn match p6ReverseCrossOp display \"[RX]". s:infix ."\""

" q() or whatever() is always a function call
syn match p6Normal display "\K\%(\k\|[-']\K\@=\)*(\@="

" basically all builtins that can be followed by parentheses
let s:routines = [
 \ "eager hyper substr index rindex grep map sort join lines hints chmod",
 \ "split reduce min max reverse truncate zip cat roundrobin classify",
 \ "first sum keys values pairs defined delete exists elems end kv any",
 \ "all one wrap shape key value name pop push shift splice unshift floor",
 \ "ceiling abs exp log log10 rand sign sqrt sin cos tan round strand",
 \ "roots cis unpolar polar atan2 pick chop p5chop chomp p5chomp lc",
 \ "lcfirst uc ucfirst capitalize normalize pack unpack quotemeta comb",
 \ "samecase sameaccent chars nfd nfc nfkd nfkc printf sprintf caller",
 \ "evalfile run runinstead nothing want bless chr ord gmtime time eof",
 \ "localtime gethost getpw chroot getlogin getpeername kill fork wait",
 \ "perl graphs codes bytes clone print open read write readline say seek",
 \ "close opendir readdir slurp pos fmt vec link unlink symlink uniq pair",
 \ "asin atan sec cosec cotan asec acosec acotan sinh cosh tanh asinh",
 \ "acos acosh atanh sech cosech cotanh sech acosech acotanh asech ok",
 \ "plan_ok dies_ok lives_ok skip todo pass flunk force_todo use_ok isa_ok",
 \ "diag is_deeply isnt like skip_rest unlike cmp_ok eval_dies_ok nok_error",
 \ "eval_lives_ok approx is_approx throws_ok version_lt plan eval succ pred",
 \ "times nonce once signature new connect operator undef undefine sleep",
 \ "from to infix postfix prefix circumfix postcircumfix minmax lazy count",
 \ "unwrap getc pi e context void quasi body each contains rewinddir subst",
 \ "can isa flush arity assuming rewind callwith callsame nextwith nextsame",
 \ "attr eval_elsewhere none srand trim trim_start trim_end lastcall WHAT",
 \ "WHERE HOW WHICH VAR WHO WHENCE ACCEPTS REJECTS does not true iterator by",
 \ "re im invert flip",
\ ]

" we want to highlight builtins like split() though, so this comes afterwards
" TODO: check if this would be faster as one big regex
let s:words_space = join(s:routines, " ")
let s:temp = split(s:words_space)
let s:words = join(s:temp, "\\|")
exec "syn match p6Routine ". s:before_keyword . s:words . s:after_keyword
unlet s:before_keyword s:after_keyword s:words_space s:temp s:words s:routines

" packages, must come after all the keywords
syn match p6Normal display "\%(::\)\@<=\K\%(\k\|[-']\K\@=\)*"
syn match p6Normal display "\K\%(\k\|[-']\K\@=\)*\%(::\)\@="

" some standard packages
syn match p6Type display "\%(::\|\k\|\K\@<=[-']\)\@<!\%(Order\%(::Same\|::Increase\|::Decrease\)\?\)\%(\k\|[-']\K\@=\)\@!"
syn match p6Type display "\%(::\|\k\|\K\@<=[-']\)\@<!\%(Bool\%(::True\|::False\)\?\)\%(\k\|[-']\K\@=\)\@!"


syn match p6Shebang    display "\%^#!.*"
syn match p6BlockLabel display "\%(^\s*\)\@<=\h\w*\s*::\@!\_s\@="
syn match p6Number     display "\k\@<!_\@!\%(\d\|__\@!\)\+_\@<!\%([eE]_\@!+\?\%(\d\|_\)\+\)\?_\@<!"
syn match p6Float      display "\k\@<!_\@!\%(\d\|__\@!\)\+_\@<![eE]_\@!-\%(\d\|_\)\+"
syn match p6Float      display "\k\@<!_\@<!\%(\d\|__\@!\)*_\@<!\.\@<!\._\@!\.\@!\a\@!\%(\d\|_\)\+_\@<!\%([eE]_\@!\%(\d\|_\)\+\)\?"

syn match p6NumberBase display "[obxd]" contained
syn match p6Number     display "\<0\%(o[0-7][0-7_]*\)\@="     nextgroup=p6NumberBase
syn match p6Number     display "\<0\%(b[01][01_]*\)\@="       nextgroup=p6NumberBase
syn match p6Number     display "\<0\%(x\x[[:xdigit:]_]*\)\@=" nextgroup=p6NumberBase
syn match p6Number     display "\<0\%(d\d[[:digit:]_]*\)\@="  nextgroup=p6NumberBase
syn match p6Number     display "\%(\<0o\)\@<=[0-7][0-7_]*"
syn match p6Number     display "\%(\<0b\)\@<=[01][01_]*"
syn match p6Number     display "\%(\<0x\)\@<=\x[[:xdigit:]_]*"
syn match p6Number     display "\%(\<0d\)\@<=\d[[:digit:]_]*"

syn match p6Version    display "\<v\d\@=" nextgroup=p6VersionNum
syn match p6VersionNum display "\d\+" nextgroup=p6VersionDot contained
syn match p6VersionDot display "\.\%(\d\|\*\)\@=" nextgroup=p6VersionNum contained

" try to distinguish the "is" function from the "is" trail auxiliary
syn match p6Routine     display "\%(\%(\S\k\@<!\|^\)\s*\)\@<=is\>"

" does is a type constraint sometimes
syn match p6TypeConstraint display "does\%(\s*\%(\k\|[-']\K\@=\)\)\@="

" int is a type sometimes
syn match p6Type        display "\<int\>\%(\s*(\|\s\+\d\)\@!"

" these Routine names are also Properties, if preceded by "is"
syn match p6Property    display "\%(is\s\+\)\@<=\%(signature\|context\|also\|shape\)"

" The sigil in ::*Package
syn match p6PackageTwigil display "\%(::\)\@<=\*"

" $<match>
syn region p6MatchVarSigil
    \ matchgroup=p6Variable
    \ start="\$\%(<<\@!\)\@="
    \ end=">\@<="
    \ contains=p6MatchVar

syn region p6MatchVar
    \ matchgroup=p6Twigil
    \ start="<"
    \ end=">"
    \ contained

" Contextualizers
syn match p6Context display "\<\%(item\|list\|slice\|hash\)\>"
syn match p6Context display "\%(\$\|@\|%\|&\|@@\)(\@="

" the "$" placeholder in "$var1, $, var2 = @list"
syn match p6Placeholder display "\%(,\s*\)\@<=\$\%(\K\|\%([.^*?=!~]\|:\@<!::\@!\)\)\@!"
syn match p6Placeholder display "\$\%(\K\|\%([.^*?=!~]\|:\@<!::\@!\)\)\@!\%(,\s*\)\@="

" Quoting

" one cluster for every quote adverb
syn cluster p6Interp_s
    \ add=p6InterpScalar
syn cluster p6Interp_scalar
    \ add=p6InterpScalar

syn cluster p6Interp_a
    \ add=p6InterpArray
syn cluster p6Interp_array
    \ add=p6InterpArray

syn cluster p6Interp_h
    \ add=p6InterpHash
syn cluster p6Interp_hash
    \ add=p6InterpHash

syn cluster p6Interp_f
    \ add=p6InterpFunction
syn cluster p6Interp_f
    \ add=p6InterpFunction

syn cluster p6Interp_c
    \ add=p6InterpClosure
syn cluster p6Interp_closure
    \ add=p6InterpClosure


if exists("perl6_extended_q") || exists("perl6_extended_all")
    syn cluster p6Interp_ww
        \ add=p6StringSQ
        \ add=p6StringDQ
    syn cluster p6Interp_quotewords
        \ add=p6StringSQ
        \ add=p6StringDQ
endif

syn cluster p6Interp_q
    \ add=p6EscQQ
    \ add=p6EscBackSlash
syn cluster p6Interp_single
    \ add=p6EscQQ
    \ add=p6EscBackSlash

syn cluster p6Interp_b
    \ add=@p6Interp_q
    \ add=p6Escape
    \ add=p6EscOpenCurly
    \ add=p6EscCodePoint
    \ add=p6EscHex
    \ add=p6EscOct
    \ add=p6EscOctOld
    \ add=p6EscNull
syn cluster p6Interp_backslash
    \ add=@p6Interp_q
    \ add=p6Escape
    \ add=p6EscOpenCurly
    \ add=p6EscCodePoint
    \ add=p6EscHex
    \ add=p6EscOct
    \ add=p6EscOctOld
    \ add=p6EscNull

syn cluster p6Interp_qq
    \ add=@p6Interp_scalar
    \ add=@p6Interp_array
    \ add=@p6Interp_hash
    \ add=@p6Interp_function
    \ add=@p6Interp_closure
    \ add=@p6Interp_backslash
syn cluster p6Interp_double
    \ add=@p6Interp_scalar
    \ add=@p6Interp_array
    \ add=@p6Interp_hash
    \ add=@p6Interp_function
    \ add=@p6Interp_closure
    \ add=@p6Interp_backslash

syn region p6InterpScalar
    \ start="\ze\z(\$\%(\%(\%(\d\+\|!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ start="\ze\z(\$\%(\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\|\%(\d\+\|!\|/\|¢\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpScalar
    \ matchgroup=p6Context
    \ start="\$\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpArray
    \ start="\ze\z(@\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpArray
    \ matchgroup=p6Context
    \ start="@\ze()\@!"
    \ start="@@\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpHash
    \ start="\ze\z(%\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpHash
    \ matchgroup=p6Context
    \ start="%\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpFunction
    \ start="\ze\z(&\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpFunction
    \ matchgroup=p6Context
    \ start="&\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpClosure
    \ start="\\\@<!{}\@!"
    \ skip="{[^}]*}"
    \ end="}"
    \ contained
    \ contains=TOP
    \ keepend

" generic escape
syn match p6Escape          display "\\\S" contained

" escaped closing delimiters
syn match p6EscQuote        display "\\'" contained
syn match p6EscDoubleQuote  display "\\\"" contained
syn match p6EscCloseAngle   display "\\>" contained
syn match p6EscCloseFrench  display "\\»" contained
syn match p6EscBackTick     display "\\`" contained
syn match p6EscForwardSlash display "\\/" contained
syn match p6EscVerticalBar  display "\\|" contained
syn match p6EscExclamation  display "\\!" contained
syn match p6EscComma        display "\\," contained
syn match p6EscDollar       display "\\\$" contained
syn match p6EscCloseCurly   display "\\}" contained
syn match p6EscCloseBracket display "\\\]" contained

" misc escapes
syn match p6EscOctOld    display "\\\d\{1,3}" contained
syn match p6EscNull      display "\\0\d\@!" contained
syn match p6EscCodePoint display "\%(\\c\)\@<=\%(\d\|\S\|\[\)\@=" contained nextgroup=p6CodePoint
syn match p6EscHex       display "\%(\\x\)\@<=\%(\x\|\[\)\@=" contained nextgroup=p6HexSequence
syn match p6EscOct       display "\%(\\o\)\@<=\%(\o\|\[\)\@=" contained nextgroup=p6OctSequence
syn match p6EscQQ        display "\\qq" contained nextgroup=p6QQSequence
syn match p6EscOpenCurly display "\\{" contained
syn match p6EscHash      display "\\#" contained
syn match p6EscBackSlash display "\\\\" contained

syn region p6QQSequence
    \ matchgroup=p6Escape
    \ start="\["
    \ skip="\[[^\]]*]"
    \ end="]"
    \ contained
    \ transparent
    \ contains=@p6Interp_qq

syn match p6CodePoint   display "\%(\d\+\|\S\)" contained
syn region p6CodePoint
    \ matchgroup=p6Escape
    \ start="\["
    \ end="]"
    \ contained

syn match p6HexSequence display "\x\+" contained
syn region p6HexSequence
    \ matchgroup=p6Escape
    \ start="\["
    \ end="]"
    \ contained

syn match p6OctSequence display "\o\+" contained
syn region p6OctSequence
    \ matchgroup=p6Escape
    \ start="\["
    \ end="]"
    \ contained

" matches :key, :!key, :$var, :key<var>, etc
" Since we don't know in advance how the adverb ends, we use a trick.
" Consume nothing with the start pattern (\ze at the beginning),
" while capturing the whole adverb into \z1 and then putting it before
" the match start (\zs) of the end pattern.
syn region p6Adverb
    \ start="\ze\z(:!\?\K\%(\k\|[-']\K\@=\)*\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\?\)"
    \ start="\ze\z(:!\?[@$%]\$*\%(::\|\%(\$\@<=\d\+\|!\|/\|¢\)\|\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\)\|\%(\K\%(\k\|[-']\K\@=\)*\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

" <words>
" FIXME: not sure how to distinguish this from the "less than" operator
" in all cases. For now, it matches if any of the following is true:
"
" * There is whitespace missing on either side of the "<", since
"   people tend to put spaces around "less than"
" * It comes after "enum", "for", "any", "all", or "none"
" * It's the first or last thing on a line (ignoring whitespace)
" * It's preceded by "= "
"
" It never matches when:
"
" * Preceded by [<+~=] (e.g. <<foo>>, =<$foo>)
" * Followed by [-=] (e.g. <--, <=, <==)
syn region p6StringAngle
    \ matchgroup=p6Quote
    \ start="\%(\<\%(enum\|for\|any\|all\|none\)\>\s*(\?\s*\)\@<=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="\%(\s\|[<+~=]\)\@<!<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="[<+~=]\@<!<\%(\s\|<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="\%(^\s*\)\@<=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="[<+~=]\@<!<\%(\s*$\)\@="
    \ start="\%(=\s\+\)\@=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ skip="\\\@<!\\>"
    \ end=">"
    \ contains=p6InnerAnglesOne,p6EscBackSlash,p6EscCloseAngle

syn region p6InnerAnglesOne
    \ matchgroup=p6StringAngle
    \ start="<"
    \ skip="\\\@<!\\>"
    \ end=">"
    \ transparent
    \ contained
    \ contains=p6InnerAnglesOne

" <<words>>
syn region p6StringAngles
    \ matchgroup=p6Quote
    \ start="<<=\@!"
    \ skip="\\\@<!\\>"
    \ end=">>"
    \ contains=p6InnerAnglesTwo,@p6Interp_qq,p6Comment,p6EscHash,p6EscCloseAngle,p6Adverb,p6StringSQ,p6StringDQ

syn region p6InnerAnglesTwo
    \ matchgroup=p6StringAngles
    \ start="<<"
    \ skip="\\\@<!\\>"
    \ end=">>"
    \ transparent
    \ contained
    \ contains=p6InnerAnglesTwo

" «words»
syn region p6StringFrench
    \ matchgroup=p6Quote
    \ start="«"
    \ skip="\\\@<!\\»"
    \ end="»"
    \ contains=p6InnerFrench,@p6Interp_qq,p6Comment,p6EscHash,p6EscCloseFrench,p6Adverb,p6StringSQ,p6StringDQ

syn region p6InnerFrench
    \ matchgroup=p6StringFrench
    \ start="«"
    \ skip="\\\@<!\\»"
    \ end="»"
    \ transparent
    \ contained
    \ contains=p6InnerFrench

" 'string'
syn region p6StringSQ
    \ matchgroup=p6Quote
    \ start="'"
    \ skip="\\\@<!\\'"
    \ end="'"
    \ contains=@p6Interp_q,p6EscQuote

" "string"
syn region p6StringDQ
    \ matchgroup=p6Quote
    \ start=+"+
    \ skip=+\\\@<!\\"+
    \ end=+"+
    \ contains=@p6Interp_qq,p6EscDoubleQuote

" Q// and friends.

syn match p6QuoteQ display "\%([Qq]\%(ww\|to\|[qwxsahfcb]\)\?\)\>" nextgroup=p6QPairs skipwhite skipempty
syn match p6QPairs contained transparent skipwhite skipempty nextgroup=p6StringQ,p6StringQ_PIR "\%(\_s*:!\?\K\%(\k\|[-']\K\@=\)*\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\?\)*"

if exists("perl6_embedded_pir")
    syn include @p6PIR syntax/pir.vim
endif

" hardcoded set of delimiters
let s:delims = [
  \ ["\\\"",         "\\\"", "p6EscDoubleQuote",  "\\\\\\@<!\\\\\\\""],
  \ ["'",            "'",    "p6EscQuote",        "\\\\\\@<!\\\\'"],
  \ ["/",            "/",    "p6EscForwardSlash", "\\\\\\@<!\\\\/"],
  \ ["`",            "`",    "p6EscBackTick",     "\\\\\\@<!\\\\`"],
  \ ["|",            "|",    "p6EscVerticalBar",  "\\\\\\@<!\\\\|"],
  \ ["!",            "!",    "p6EscExclamation",  "\\\\\\@<!\\\\!"],
  \ [",",            ",",    "p6EscComma",        "\\\\\\@<!\\\\,"],
  \ ["\\$",          "\\$",  "p6EscDollar",       "\\\\\\@<!\\\\\\$"],
  \ ["{",            "}",    "p6EscCloseCurly",   "\\%(\\\\\\@<!\\\\}\\|{[^}]*}\\)"],
  \ ["<",            ">",    "p6EscCloseAngle",   "\\%(\\\\\\@<!\\\\>\\|<[^>]*>\\)"],
  \ ["«",            "»",    "p6EscCloseFrench",  "\\%(\\\\\\@<!\\\\»\\|«[^»]*»\\)"],
  \ ["\\\[",         "]",    "p6EscCloseBracket", "\\%(\\\\\\@<!\\\\]\\|\\[^\\]]*]\\)"],
  \ ["\\s\\@<=(",    ")",    "p6EscCloseParen",   "\\%(\\\\\\@<!\\\\)\\|([^)]*)\\)"],
\ ]

" double and triple delimiters too
if exists("perl6_extended_q") || exists("perl6_extended_all")
    call add(s:delims, ["««",           "»»",  "p6EscCloseFrench",  "\\%(\\\\\\@<!\\\\»»\\|««\\%([^»]\\|»»\\@!\\)*»»\\)"])
    call add(s:delims, ["«««",          "»»»", "p6EscCloseFrench",  "\\%(\\\\\\@<!\\\\»»»\\|«««\\%([^»]\\|»\\%(»»\\)\\@!\\)*»»»\\)"])
    call add(s:delims, ["{{",           "}}",  "p6EscCloseCurly",   "\\%(\\\\\\@<!\\\\}}\\|{{\\%([^}]\\|}}\\@!\\)*}}\\)"])
    call add(s:delims, ["{{{",          "}}}", "p6EscCloseCurly",   "\\%(\\\\\\@<!\\\\}}}\\|{{{\\%([^}]\\|}\\%(}}\\)\\@!\\)*}}}\\)"])
    call add(s:delims, ["\\\[\\\[",     "]]",  "p6EscCloseBracket", "\\%(\\\\\\@<!\\\\]]\\|\\[\\[\\%([^\\]]\\|]]\\@!\\)*]]\\)"])
    call add(s:delims, ["\\\[\\\[\\\[", "]]]", "p6EscCloseBracket", "\\%(\\\\\\@<!\\\\]]]\\|\\[\\[\\[\\%([^\\]]\\|]\\%(]]\\)\\@!\\)*]]]\\)"])
    call add(s:delims, ["\\s\\@<=((",   "))",  "p6EscCloseParen",   "\\%(\\\\\\@<!\\\\))\\|((\\%([^)]\\|))\\@!\\)*))\\)"])
    call add(s:delims, ["\\s\\@<=(((",  ")))", "p6EscCloseParen",   "\\%(\\\\\\@<!\\\\)))\\|(((\\%([^)]\\|)\\%())\\)\\@!\\)*)))\\)"])
    call add(s:delims, ["\\s\\@<=<<",   ">>",  "p6EscCloseAngle",   "\\%(\\\\\\@<!\\\\>>\\|<<\\%([^>]\\|>>\\@!\\)*>>\\)"])
    call add(s:delims, ["\\s\\@<=<<<",  ">>>", "p6EscCloseAngle",   "\\%(\\\\\\@<!\\\\>>>\\|<<<\\%([^>]\\|>\\%(>>\\)\\@!\\)*>>>\\)"])
endif

if !exists("perl6_extended_q") && !exists("perl6_extended_all")
    " simple version, no special highlighting within the string
    for [start_delim, end_delim, end_group, skip] in s:delims
        exec "syn region p6StringQ matchgroup=p6Quote start=\"".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contains=".end_group." contained"
    endfor

    if exists("perl6_embedded_pir")
        " highlight embedded PIR code
        for [start_delim, end_delim, end_group, skip] in s:delims
            exec "syn region p6StringQ_PIR matchgroup=p6Quote start=\"\\%(Q\\s*:PIR\\s*\\)\\@<=".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contains=@p6PIR,".end_group." contained"
        endfor
    endif
else
    let s:before = "syn region p6StringQ matchgroup=p6Quote start=\"\\%("
    let s:after  = "\\%(\\_s*:!\\?\\K\\%(\\k\\|[-']\\K\\@=\\)*\\%(([^)]*)\\|\\[[^\\]]*]\\|<[^>]*>\\|«[^»]*»\\|{[^}]*}\\)\\?\\)*\\_s*\\)\\@<="

    let s:adverbs = [
        \ ["s", "scalar"],
        \ ["a", "array"],
        \ ["h", "hash"],
        \ ["f", "function"],
        \ ["c", "closure"],
        \ ["b", "backslash"],
        \ ["w", "words"],
        \ ["ww", "quotewords"],
        \ ["x", "exec"],
    \ ]

    " these can't be conjoined with q and qq (e.g. as qqq and qqqq)
    let s:q_adverbs = [
        \ ["q", "single"],
        \ ["qq", "double"],
    \ ]

    for [start_delim, end_delim, end_group, skip] in s:delims
        " Q, q, and qq with any number of (ignored) adverbs
        exec s:before ."Q". s:after .start_delim."\" end=\"". end_delim ."\""." contained"
        exec s:before ."q". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q"." contained"
        exec s:before ."qq". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq"." contained"

        for [short, long] in s:adverbs
            " Qs, qs, qqs, Qa, qa, qqa, etc, with ignored adverbs
            exec s:before ."Q".short. s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long." contained"
            exec s:before ."q".short. s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q,@p6Interp_".long." contained"
            exec s:before ."qq".short. s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq,@p6Interp_".long." contained"

            " Q, q, and qq, with one significant adverb
            exec s:before ."Q\\s*:\\%(".short."\\|".long."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long." contained"
            for [q_short, q_long] in s:q_adverbs
                exec s:before ."Q\\s*:\\%(".q_short."\\|".q_long."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".q_long." contained"
            endfor
            exec s:before ."q\\s*:\\%(".short."\\|".long."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q,@p6Interp_".long." contained"
            exec s:before ."qq\\s*:\\%(".short."\\|".long."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq,@p6Interp_".long." contained"

            for [short2, long2] in s:adverbs
                " Qs, qs, qqs, Qa, qa, qqa, etc, with one significant adverb
                exec s:before ."Q".short."\\s*:\\%(".short2."\\|".long2."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long.",@p6Interp_".long2." contained"
                for [q_short2, q_long2] in s:q_adverbs
                    exec s:before ."Q".short."\\s*:\\%(".q_short2."\\|".q_long2."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long.",@p6Interp_".q_long2." contained"
                endfor
                exec s:before ."q".short."\\s*:\\%(".short2."\\|".long2."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q,@p6Interp_".long.",@p6Interp_".long2." contained"
                exec s:before ."qq".short."\\s*:\\%(".short2."\\|".long2."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq,@p6Interp_".long.",@p6Interp_".long2." contained"
            endfor
        endfor
    endfor
    unlet s:before s:after s:adverbs s:q_adverbs
endif
unlet s:delims

" Match these so something else above can't. E.g. the "q" in "role q { }"
" should not be considered a string
syn match p6Normal display "\%(\<\%(role\|grammar\|slang\)\s\+\)\@<=\K\%(\k\|[-']\K\@=\)*"

" :key
syn match p6Operator display ":\@<!::\@!!\?" nextgroup=p6Key
syn match p6Key display "\k\%(\k\|[-']\K\@=\)*" contained

" => and p5=> autoquoting
syn match p6StringP5Auto display "\K\%(\k\|[-']\K\@=\)*\ze\s\+p5=>"
syn match p6StringAuto   display "\K\%(\k\|[-']\K\@=\)*\ze\%(p5\)\@<!=>"
syn match p6StringAuto   display "\K\%(\k\|[-']\K\@=\)*\ze\s\+=>"
syn match p6StringAuto   display "\K\%(\k\|[-']\K\@=\)*p5\ze=>"

" Hyperoperators. Needs to come after the quoting operators (<>, «», etc)
exec "syn match p6HyperOp display \"»"   .s:infix."»\\?\""
exec "syn match p6HyperOp display \"«\\?".s:infix."«\""
exec "syn match p6HyperOp display \"»"   .s:infix."«\""
exec "syn match p6HyperOp display \"«"   .s:infix. "»\""

exec "syn match p6HyperOp display \">>"          .s:infix."\\%(>>\\)\\?\""
exec "syn match p6HyperOp display \"\\%(<<\\)\\?".s:infix."<<\""
exec "syn match p6HyperOp display \">>"          .s:infix."<<\""
exec "syn match p6HyperOp display \"<<"          .s:infix.">>\""
unlet s:infix

" Regexes and grammars

syn match p6RegexName display "\%(\<\%(regex\|rule\|token\)\s\+\)\@<=\K\%(\k\|[-']\K\@=\)*" nextgroup=p6RegexBlockCrap skipwhite skipempty
syn match p6RegexBlockCrap "[^{]*" nextgroup=p6RegexBlock skipwhite skipempty transparent contained

syn region p6RegexBlock
    \ matchgroup=p6Normal
    \ start="{"
    \ end="}"
    \ contained
    \ contains=@p6Regexen,@p6Variables

" Perl 6 regex bits

syn cluster p6Regexen
    \ add=p6RxMeta
    \ add=p6RxEscape
    \ add=p6EscHex
    \ add=p6EscOct
    \ add=p6EscNull
    \ add=p6RxAnchor
    \ add=p6RxCapture
    \ add=p6RxGroup
    \ add=p6RxAlternation
    \ add=p6RxAdverb
    \ add=p6RxAdverbArg
    \ add=p6RxStorage
    \ add=p6RxAssertion
    \ add=p6RxQuoteWords
    \ add=p6RxClosure
    \ add=p6RxStringSQ
    \ add=p6RxStringDQ
    \ add=p6Comment

syn match p6RxMeta        display contained ".\%(\k\|\s\)\@<!"
syn match p6RxAnchor      display contained "[$^]"
syn match p6RxEscape      display contained "\\\S"
syn match p6RxCapture     display contained "[()]"
syn match p6RxAlternation display contained "|"
syn match p6RxRange       display contained "\.\."

syn region p6RxClosure
    \ matchgroup=p6Normal
    \ start="{"
    \ end="}"
    \ contained
    \ containedin=p6RxClosure
    \ contains=TOP
syn region p6RxGroup
    \ matchgroup=p6StringSpecial2
    \ start="\["
    \ end="]"
    \ contained
    \ contains=@p6Regexen,@p6Variables
syn region p6RxAssertion
    \ matchgroup=p6StringSpecial2
    \ start="<"
    \ end=">"
    \ contained
    \ contains=@p6Regexen,@p6Variables,p6RxCharClass,p6RxAssertCall
syn region p6RxAssertCall
    \ matchgroup=p6Normal
    \ start="\%(::\|\%(\K\%(\k\|[-']\K\@=\)*\)\)\@<=(\@="
    \ end=")\@<="
    \ contained
    \ contains=TOP
syn region p6RxCharClass
    \ matchgroup=p6StringSpecial2
    \ start="\%(<[-!+?]\?\)\@<=\["
    \ skip="\\]"
    \ end="]"
    \ contained
    \ contains=p6RxRange,p6RxEscape,p6EscHex,p6EscOct,p6EscNull
syn region p6RxQuoteWords
    \ matchgroup=p6StringSpecial2
    \ start="< "
    \ end=">"
    \ contained
syn region p6RxAdverb
    \ start="\ze\z(:!\?\K\%(\k\|[-']\K\@=\)*\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend
syn region p6RxAdverbArg
    \ start="\%(:!\?\K\%(\k\|[-']\K\@=\)*\)\@<=("
    \ skip="([^)]*)"
    \ end=")"
    \ contained
    \ contains=TOP
syn region p6RxStorage
    \ matchgroup=p6Operator
    \ start="\%(^\s*\)\@<=:\%(my\>\|temp\>\)\@="
    \ end="$"
    \ contains=TOP
    \ contained

" Perl 5 regex bits

syn cluster p6RegexP5Base
    \ add=p6RxP5Escape
    \ add=p6RxP5Oct
    \ add=p6RxP5Hex
    \ add=p6RxP5EscMeta
    \ add=p6RxP5CodePoint
    \ add=p6RxP5Prop

" normal regex stuff
syn cluster p6RegexP5
    \ add=@p6RegexP5Base
    \ add=p6RxP5Quantifier
    \ add=p6RxP5Meta
    \ add=p6RxP5QuoteMeta
    \ add=p6RxP5ParenMod
    \ add=p6RxP5Verb
    \ add=p6RxP5Count
    \ add=p6RxP5Named
    \ add=p6RxP5ReadRef
    \ add=p6RxP5WriteRef
    \ add=p6RxP5CharClass
    \ add=p6RxP5Anchor

" inside character classes
syn cluster p6RegexP5Class
    \ add=@p6RegexP5Base
    \ add=p6RxP5Posix
    \ add=p6RxP5Range

syn match p6RxP5Escape     display contained "\\\S"
syn match p6RxP5CodePoint  display contained "\\c\S\@=" nextgroup=p6RxP5CPId
syn match p6RxP5CPId       display contained "\S"
syn match p6RxP5Oct        display contained "\\\%(\o\{1,3}\)\@=" nextgroup=p6RxP5OctSeq
syn match p6RxP5OctSeq     display contained "\o\{1,3}"
syn match p6RxP5Anchor     display contained "[\^$]"
syn match p6RxP5Hex        display contained "\\x\%({\x\+}\|\x\{1,2}\)\@=" nextgroup=p6RxP5HexSeq
syn match p6RxP5HexSeq     display contained "\x\{1,2}"
syn region p6RxP5HexSeq
    \ matchgroup=p6RxP5Escape
    \ start="{"
    \ end="}"
    \ contained
syn region p6RxP5Named
    \ matchgroup=p6RxP5Escape
    \ start="\%(\\N\)\@<={"
    \ end="}"
    \ contained
syn match p6RxP5Quantifier display contained "\%([+*]\|(\@<!?\)"
syn match p6RxP5ReadRef    display contained "\\[1-9]\d\@!"
syn match p6RxP5ReadRef    display contained "\\k<\@=" nextgroup=p6RxP5ReadRefId
syn region p6RxP5ReadRefId
    \ matchgroup=p6RxP5Escape
    \ start="<"
    \ end=">"
    \ contained
syn match p6RxP5WriteRef   display contained "\\g\%(\d\|{\)\@=" nextgroup=p6RxP5WriteRefId
syn match p6RxP5WriteRefId display contained "\d\+"
syn region p6RxP5WriteRefId
    \ matchgroup=p6RxP5Escape
    \ start="{"
    \ end="}"
    \ contained
syn match p6RxP5Prop       display contained "\\[pP]\%(\a\|{\)\@=" nextgroup=p6RxP5PropId
syn match p6RxP5PropId     display contained "\a"
syn region p6RxP5PropId
    \ matchgroup=p6RxP5Escape
    \ start="{"
    \ end="}"
    \ contained
syn match p6RxP5Meta       display contained "[(|).]"
syn match p6RxP5ParenMod   display contained "(\@<=?\@=" nextgroup=p6RxP5Mod,p6RxP5ModName,p6RxP5Code
syn match p6RxP5Mod        display contained "?\%(<\?=\|<\?!\|[#:|]\)"
syn match p6RxP5Mod        display contained "?-\?[impsx]\+"
syn match p6RxP5Mod        display contained "?\%([-+]\?\d\+\|R\)"
syn match p6RxP5Mod        display contained "?(DEFINE)"
syn match p6RxP5Mod        display contained "?\%(&\|P[>=]\)" nextgroup=p6RxP5ModDef
syn match p6RxP5ModDef     display contained "\h\w*"
syn region p6RxP5ModName
    \ matchgroup=p6StringSpecial
    \ start="?'"
    \ end="'"
    \ contained
syn region p6RxP5ModName
    \ matchgroup=p6StringSpecial
    \ start="?P\?<"
    \ end=">"
    \ contained
syn region p6RxP5Code
    \ matchgroup=p6StringSpecial
    \ start="??\?{"
    \ end="})\@="
    \ contained
    \ contains=TOP
syn match p6RxP5EscMeta    display contained "\\[?*.{}()[\]|\^$]"
syn match p6RxP5Count      display contained "\%({\d\+\%(,\%(\d\+\)\?\)\?}\)\@=" nextgroup=p6RxP5CountId
syn region p6RxP5CountId
    \ matchgroup=p6RxP5Escape
    \ start="{"
    \ end="}"
    \ contained
syn match p6RxP5Verb       display contained "(\@<=\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\?\|\%(MARK\|\):[^)]*\|COMMIT\|F\%(AIL\)\?\|ACCEPT\)"
syn region p6RxP5QuoteMeta
    \ matchgroup=p6RxP5Escape
    \ start="\\Q"
    \ end="\\E"
    \ contained
    \ contains=@p6Variables,p6EscBackSlash
syn region p6RxP5CharClass
    \ matchgroup=p6StringSpecial
    \ start="\[\^\?"
    \ skip="\\]"
    \ end="]"
    \ contained
    \ contains=@p6RegexP5Class
syn region p6RxP5Posix
    \ matchgroup=p6RxP5Escape
    \ start="\[:"
    \ end=":]"
    \ contained
syn match p6RxP5Range      display contained "-"

" 'string' inside a regex
syn region p6RxStringSQ
    \ matchgroup=p6Quote
    \ start="'"
    \ skip="\\\@<!\\'"
    \ end="'"
    \ contained
    \ contains=p6EscQuote,p6EscBackSlash

" "string" inside a regex
syn region p6RxStringDQ
    \ matchgroup=p6Quote
    \ start=+"+
    \ skip=+\\\@<!\\"+
    \ end=+"+
    \ contained
    \ contains=p6EscDoubleQuote,p6EscBackSlash

" $!, $var, $!var, $::var, $package::var $*::package::var, etc
" Thus must come after the matches for the "$" regex anchor, but before
" the match for the $ regex delimiter
syn cluster p6Variables
    \ add=p6VarSlash
    \ add=p6VarExclam
    \ add=p6VarMatch
    \ add=p6VarNum
    \ add=p6Variable

syn match p6VarSlash     display "\$/"
syn match p6VarExclam    display "\$!"
syn match p6VarMatch     display "\$¢"
syn match p6VarNum       display "\$\d\+"
syn match p6Variable     display "\%(@@\|[@&$%]\$*\)\%(::\|\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\)\|\K\)\@=" nextgroup=p6Twigil,p6VarName,p6PackageScope
syn match p6VarName      display "\K\%(\k\|[-']\K\@=\)*" contained
syn match p6Twigil       display "\%([.^*?=!~]\|:\@<!::\@!\)\K\@=" nextgroup=p6PackageScope,p6VarName contained
syn match p6PackageScope display "\%(\K\%(\k\|[-']\K\@=\)*\)\?::" nextgroup=p6PackageScope,p6VarName contained

" Perl 6 regex regions

" /foo/
" Below some hacks to recognise the // variant. This is virtually impossible
" to catch in all cases as the / is used in so many other ways, but these
" should be the most obvious ones.
" TODO: mostly stolen from perl.vim, might need more work
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\%(\<\%(split\|while\|until\|if\|unless\)\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=//\@!"
    \ start="^//\@!"
    \ start=+\s\@<=/[^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!/\@!+
    \ skip="\\/"
    \ end="/"
    \ contains=@p6Regexen,p6Variable,p6VarExclam,p6VarMatch,p6VarNum

" m/foo/, mm/foo/, rx/foo/
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=//\@!"
    \ skip="\\/"
    \ end="/"
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarExclam,p6VarMatch,p6VarNum

" m!foo!, mm!foo!, rx!foo!
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!!\@!"
    \ skip="\\!"
    \ end="!"
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarSlash,p6VarMatch,p6VarNum

" m$foo$, mm$foo$, rx$foo$, m|foo|, mm|foo|, rx|foo|, etc
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)\$\@!"
    \ skip="\\\z1"
    \ end="\z1"
    \ keepend
    \ contains=@p6Regexen,@p6Variables

" m (foo), mm (foo), rx (foo)
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!)\@!"
    \ skip="\\)"
    \ end=")"
    \ contains=@p6Regexen,@p6Variables

" m[foo], mm[foo], rx[foo]
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!]\@!"
    \ skip="\\]"
    \ end="]"
    \ contains=@p6Regexen,@p6Variables

" m{foo}, mm{foo}, rx{foo}
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!}\@!"
    \ skip="\\}"
    \ end="}"
    \ contains=@p6Regexen,@p6Variables

" m<foo>, mm<foo>, rx<foo>
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!>\@!"
    \ skip="\\>"
    \ end=">"
    \ contains=@p6Regexen,@p6Variables

" m«foo», mm«foo», rx«foo»
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!»\@!"
    \ skip="\\»"
    \ end="»"
    \ contains=@p6Regexen,@p6Variables

" Substitutions

" s/foo/bar/
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=/"
    \ skip="\\/"
    \ end="/"me=e-1
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarExclam,p6VarMatch,p6VarNum
    \ nextgroup=p6Substitution

syn region p6Substitution
    \ matchgroup=p6Quote
    \ start="/"
    \ skip="\\/"
    \ end="/"
    \ contained
    \ keepend
    \ contains=@p6Interp_qq

" s!foo!bar!
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!"
    \ skip="\\!"
    \ end="!"me=e-1
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarSlash,p6VarMatch,p6VarNum
    \ nextgroup=p6Substitution

syn region p6Substitution
    \ matchgroup=p6Quote
    \ start="!"
    \ skip="\\!"
    \ end="!"
    \ contained
    \ keepend
    \ contains=@p6Interp_qq

" s$foo$bar$, s|foo|bar, etc
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)"
    \ skip="\\\z1"
    \ end="\z1"me=e-1
    \ keepend
    \ contains=@p6Regexen,@p6Variables
    \ nextgroup=p6Substitution

syn region p6Substitution
    \ matchgroup=p6Quote
    \ start="\z([\"'`|,$]\)"
    \ skip="\\\z1"
    \ end="\z1"
    \ contained
    \ keepend
    \ contains=@p6Interp_qq

" s{foo}
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!"
    \ skip="\\}"
    \ end="}"
    \ contains=@p6Regexen,@p6Variables

" s[foo]
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!"
    \ skip="\\]"
    \ end="]"
    \ contains=@p6Regexen,@p6Variables

" s<foo>
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!"
    \ skip="\\>"
    \ end=">"
    \ contains=@p6Regexen,@p6Variables

" s«foo»
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!"
    \ skip="\\»"
    \ end="»"
    \ contains=@p6Regexen,@p6Variables

" s (foo)
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!"
    \ skip="\\)"
    \ end=")"
    \ contains=@p6Regexen,@p6Variables

" Perl 5 regex regions

" m:P5//
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=/"
    \ skip="\\/"
    \ end="/"
    \ contains=@p6RegexP5,p6Variable,p6VarExclam,p6VarMatch,p6VarNum

" m:P5!!
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=!"
    \ skip="\\!"
    \ end="!"
    \ contains=@p6RegexP5,p6Variable,p6VarSlash,p6VarMatch,p6VarNum

" m:P5$$, m:P5||, etc
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=\z([\"'`|,$]\)"
    \ skip="\\\z1"
    \ end="\z1"
    \ contains=@p6RegexP5,@p6Variables

" m:P5 ()
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s\+\)\@<=()\@!"
    \ skip="\\)"
    \ end=")"
    \ contains=@p6RegexP5,@p6Variables

" m:P5[]
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=[]\@!"
    \ skip="\\]"
    \ end="]"
    \ contains=@p6RegexP5,@p6Variables

" m:P5{}
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<={}\@!"
    \ skip="\\}"
    \ end="}"
    \ contains=@p6RegexP5,p6Variables

" m:P5<>
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=<>\@!"
    \ skip="\\>"
    \ end=">"
    \ contains=@p6RegexP5,p6Variables

" m:P5«»
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=«»\@!"
    \ skip="\\»"
    \ end="»"
    \ contains=@p6RegexP5,p6Variables

" Transliteration

" tr/foo/bar/, tr|foo|bar, etc
syn region p6String
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<tr\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([/\"'`|!,$]\)"
    \ skip="\\\z1"
    \ end="\z1"me=e-1
    \ contains=p6RxRange
    \ nextgroup=p6Transliteration

syn region p6Transliteration
    \ matchgroup=p6Quote
    \ start="\z([/\"'`|!,$]\)"
    \ skip="\\\z1"
    \ end="\z1"
    \ contained
    \ contains=@p6Interp_qq

" Comments

" normal end-of-line comment
syn match p6Comment display "#.*" contains=p6Attention

" Multiline comments. Arbitrary numbers of opening brackets are allowed,
" but we only define regions for 1 to 3
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#("
    \ skip="([^)]*)"
    \ end=")"
    \ matchgroup=p6Error
    \ start="^#("
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#\["
    \ skip="\[[^\]]*]"
    \ end="]"
    \ matchgroup=p6Error
    \ start="^#\["
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#{"
    \ skip="{[^}]*}"
    \ end="}"
    \ matchgroup=p6Error
    \ start="^#{"
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#<"
    \ skip="<[^>]*>"
    \ end=">"
    \ matchgroup=p6Error
    \ start="^#<"
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#«"
    \ skip="«[^»]*»"
    \ end="»"
    \ matchgroup=p6Error
    \ start="^#«"
    \ contains=p6Attention,p6Comment

" double and triple delimiters
if exists("perl6_extended_comments") || exists("perl6_extended_all")
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#(("
        \ skip="((\%([^)\|))\@!]\)*))"
        \ end="))"
        \ matchgroup=p6Error
        \ start="^#(("
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#((("
        \ skip="(((\%([^)]\|)\%())\)\@!\)*)))"
        \ end=")))"
        \ matchgroup=p6Error
        \ start="^#((("
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#\[\["
        \ skip="\[\[\%([^\]]\|]]\@!\)*]]"
        \ end="]]"
        \ matchgroup=p6Error
        \ start="^#\[\["
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#\[\[\["
        \ skip="\[\[\[\%([^\]]\|]\%(]]\)\@!\)*]]]"
        \ end="]]]"
        \ matchgroup=p6Error
        \ start="^#\[\[\["
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#{{"
        \ skip="{{\%([^}]\|}}\@!\)*}}"
        \ end="}}"
        \ matchgroup=p6Error
        \ start="^#{{"
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#{{{"
        \ skip="{{{\%([^}]\|}\%(}}\)\@!\)*}}}"
        \ end="}}}"
        \ matchgroup=p6Error
        \ start="^#{{{"
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#<<"
        \ skip="<<\%([^>]\|>>\@!\)*>>"
        \ end=">>"
        \ matchgroup=p6Error
        \ start="^#<<"
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#<<<"
        \ skip="<<<\%([^>]\|>\%(>>\)\@!\)*>>>"
        \ end=">>>"
        \ matchgroup=p6Error
        \ start="^#<<<"
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#««"
        \ skip="««\%([^»]\|»»\@!\)*»»"
        \ end="»»"
        \ matchgroup=p6Error
        \ start="^#««"
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#«««"
        \ skip="«««\%([^»]\|»\%(»»\)\@!\)*»»»"
        \ end="»»»"
        \ matchgroup=p6Error
        \ start="^#«««"
        \ contains=p6Attention,p6Comment
endif

" Pod

" Abbreviated blocks (implicit code forbidden)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\ze\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrNoCodeType
    \ keepend

syn region p6PodAbbrNoCodeType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodName,p6PodAbbrNoCode

syn match p6PodName contained ".\+" contains=@p6PodFormat
syn match p6PodComment contained ".\+"

syn region p6PodAbbrNoCode
    \ start="^"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=@p6PodFormat

" Abbreviated blocks (everything is code)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\zecode\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrCodeType
    \ keepend

syn region p6PodAbbrCodeType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodName,p6PodAbbrCode

syn region p6PodAbbrCode
    \ start="^"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained

" Abbreviated blocks (everything is a comment)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\zecomment\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrCommentType
    \ keepend

syn region p6PodAbbrCommentType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodComment,p6PodAbbrNoCode

" Abbreviated blocks (implicit code allowed)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\ze\%(pod\|item\|nested\|\u\+\)\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrType
    \ keepend

syn region p6PodAbbrType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodName,p6PodAbbr

syn region p6PodAbbr
    \ start="^"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=@p6PodFormat,p6PodImplicitCode

" Abbreviated block to end-of-file
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\zeEND\>"
    \ end="\%$"
    \ contains=p6PodAbbrEOFType
    \ keepend

syn region p6PodAbbrEOFType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="\%$"
    \ contained
    \ contains=p6PodName,p6PodAbbrEOF

syn region p6PodAbbrEOF
    \ start="^"
    \ end="\%$"
    \ contained
    \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode

" Directives
syn region p6PodDirectRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\%(config\|use\)\>"
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contains=p6PodDirectArgRegion
    \ keepend

syn region p6PodDirectArgRegion
    \ matchgroup=p6PodType
    \ start="\S\+"
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained
    \ contains=p6PodDirectConfigRegion

syn region p6PodDirectConfigRegion
    \ start=""
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained
    \ contains=@p6PodConfig

" =encoding is a special directive
syn region p6PodDirectRegion
    \ matchgroup=p6PodPrefix
    \ start="^=encoding\>"
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contains=p6PodEncodingArgRegion
    \ keepend

syn region p6PodEncodingArgRegion
    \ matchgroup=p6PodName
    \ start="\S\+"
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained

" Paragraph blocks (implicit code forbidden)
syn region p6PodParaRegion
    \ matchgroup=p6PodPrefix
    \ start="^=for\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodParaNoCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodParaNoCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodParaNoCode,p6PodParaConfigRegion

syn region p6PodParaConfigRegion
    \ start=""
    \ end="^\ze\%([^=]\|=\k\@<!\)"
    \ contained
    \ contains=@p6PodConfig

syn region p6PodParaNoCode
    \ start="^[^=]"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=@p6PodFormat

" Paragraph blocks (everything is code)
syn region p6PodParaRegion
    \ matchgroup=p6PodPrefix
    \ start="^=for\>\ze\s*code\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodParaCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodParaCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodParaCode,p6PodParaConfigRegion

syn region p6PodParaCode
    \ start="^[^=]"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained

" Paragraph blocks (implicit code allowed)
syn region p6PodParaRegion
    \ matchgroup=p6PodPrefix
    \ start="^=for\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodParaTypeRegion
    \ keepend
    \ extend

syn region p6PodParaTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodPara,p6PodParaConfigRegion

syn region p6PodPara
    \ start="^[^=]"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=@p6PodFormat,p6PodImplicitCode

" Paragraph block to end-of-file
syn region p6PodParaRegion
    \ matchgroup=p6PodPrefix
    \ start="^=for\>\ze\s\+END\>"
    \ end="\%$"
    \ contains=p6PodParaEOFTypeRegion
    \ keepend
    \ extend

syn region p6PodParaEOFTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="\%$"
    \ contained
    \ contains=p6PodParaEOF,p6PodParaConfigRegion

syn region p6PodParaEOF
    \ start="^[^=]"
    \ end="\%$"
    \ contained
    \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode

" Delimited blocks (implicit code forbidden)
syn region p6PodDelimRegion
    \ matchgroup=p6PodPrefix
    \ start="^=begin\>"
    \ end="^=end\>"
    \ contains=p6PodDelimNoCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodDelimNoCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze=end\>"
    \ contained
    \ contains=p6PodDelimNoCode,p6PodDelimConfigRegion

syn region p6PodDelimConfigRegion
    \ start=""
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained
    \ contains=@p6PodConfig

syn region p6PodDelimNoCode
    \ start="^"
    \ end="^\ze=end\>"
    \ contained
    \ contains=@p6PodNestedBlocks,@p6PodFormat

" Delimited blocks (everything is code)
syn region p6PodDelimRegion
    \ matchgroup=p6PodPrefix
    \ start="^=begin\>\ze\s*code\>"
    \ end="^=end\>"
    \ contains=p6PodDelimCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodDelimCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze=end\>"
    \ contained
    \ contains=p6PodDelimCode,p6PodDelimConfigRegion

syn region p6PodDelimCode
    \ start="^"
    \ end="^\ze=end\>"
    \ contained
    \ contains=@p6PodNestedBlocks

" Delimited blocks (implicit code allowed)
syn region p6PodDelimRegion
    \ matchgroup=p6PodPrefix
    \ start="^=begin\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>"
    \ end="^=end\>"
    \ contains=p6PodDelimTypeRegion
    \ keepend
    \ extend

syn region p6PodDelimTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze=end\>"
    \ contained
    \ contains=p6PodDelim,p6PodDelimConfigRegion

syn region p6PodDelim
    \ start="^"
    \ end="^\ze=end\>"
    \ contained
    \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode

" Delimited block to end-of-file
syn region p6PodDelimRegion
    \ matchgroup=p6PodPrefix
    \ start="^=begin\>\ze\s\+END\>"
    \ end="\%$"
    \ contains=p6PodDelimEOFTypeRegion
    \ extend

syn region p6PodDelimEOFTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="\%$"
    \ contained
    \ contains=p6PodDelimEOF,p6PodDelimConfigRegion

syn region p6PodDelimEOF
    \ start="^"
    \ end="\%$"
    \ contained
    \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode

syn cluster p6PodConfig
    \ add=p6PodConfigOperator
    \ add=p6PodExtraConfig
    \ add=p6StringAuto
    \ add=p6PodAutoQuote
    \ add=p6StringSQ

syn region p6PodParens
    \ start="("
    \ end=")"
    \ contained
    \ contains=p6Number,p6StringSQ

syn match p6PodAutoQuote      display contained "=>"
syn match p6PodConfigOperator display contained ":!\?" nextgroup=p6PodConfigOption
syn match p6PodConfigOption   display contained "[^[:space:](<]\+" nextgroup=p6PodParens,p6StringAngle
syn match p6PodExtraConfig    display contained "^="
syn match p6PodVerticalBar    display contained "|"
syn match p6PodColon          display contained ":"
syn match p6PodSemicolon      display contained ";"
syn match p6PodComma          display contained ","
syn match p6PodImplicitCode   display contained "^\s.*"

syn region p6PodDelimEndRegion
    \ matchgroup=p6PodType
    \ start="\%(^=end\>\)\@<="
    \ end="\K\k*"

" These may appear inside delimited blocks
syn cluster p6PodNestedBlocks
    \ add=p6PodAbbrRegion
    \ add=p6PodDirectRegion
    \ add=p6PodParaRegion
    \ add=p6PodDelimRegion
    \ add=p6PodDelimEndRegion

" Pod formatting codes

syn cluster p6PodFormat
    \ add=p6PodFormatOne
    \ add=p6PodFormatTwo
    \ add=p6PodFormatThree
    \ add=p6PodFormatFrench

" Balanced angles found inside formatting codes. Ensures proper nesting.

syn region p6PodFormatAnglesOne
    \ matchgroup=p6PodFormat
    \ start="<"
    \ skip="<[^>]*>"
    \ end=">"
    \ transparent
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne

syn region p6PodFormatAnglesTwo
    \ matchgroup=p6PodFormat
    \ start="<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ transparent
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne,p6PodFormatAnglesTwo

syn region p6PodFormatAnglesThree
    \ matchgroup=p6PodFormat
    \ start="<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ transparent
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne,p6PodFormatAnglesTwo,p6PodFormatAnglesThree

syn region p6PodFormatAnglesFrench
    \ matchgroup=p6PodFormat
    \ start="«"
    \ skip="«[^»]*»"
    \ end="»"
    \ transparent
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne,p6PodFormatAnglesTwo,p6PodFormatAnglesThree

" All formatting codes

syn region p6PodFormatOne
    \ matchgroup=p6PodFormatCode
    \ start="\u<"
    \ skip="<[^>]*>"
    \ end=">"
    \ contained
    \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne

syn region p6PodFormatTwo
    \ matchgroup=p6PodFormatCode
    \ start="\u<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ contained
    \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo

syn region p6PodFormatThree
    \ matchgroup=p6PodFormatCode
    \ start="\u<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ contained
    \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree

syn region p6PodFormatFrench
    \ matchgroup=p6PodFormatCode
    \ start="\u«"
    \ skip="«[^»]*»"
    \ end="»"
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree

" C<> and V<> don't allow nested formatting formatting codes

syn region p6PodFormatOne
    \ matchgroup=p6PodFormatCode
    \ start="[CV]<"
    \ skip="<[^>]*>"
    \ end=">"
    \ contained
    \ contains=p6PodFormatAnglesOne

syn region p6PodFormatTwo
    \ matchgroup=p6PodFormatCode
    \ start="[CV]<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ contained
    \ contains=p6PodFormatAnglesTwo

syn region p6PodFormatThree
    \ matchgroup=p6PodFormatCode
    \ start="[CV]<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ contained
    \ contains=p6PodFormatAnglesThree

syn region p6PodFormatFrench
    \ matchgroup=p6PodFormatCode
    \ start="[CV]«"
    \ skip="«[^»]*»"
    \ end="»"
    \ contained
    \ contains=p6PodFormatAnglesFrench

" L<> can have a "|" separator

syn region p6PodFormatOne
    \ matchgroup=p6PodFormatCode
    \ start="L<"
    \ skip="<[^>]*>"
    \ end=">"
    \ contained
    \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodVerticalBar

syn region p6PodFormatTwo
    \ matchgroup=p6PodFormatCode
    \ start="L<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ contained
    \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodVerticalBar

syn region p6PodFormatThree
    \ matchgroup=p6PodFormatCode
    \ start="L<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ contained
    \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar

syn region p6PodFormatFrench
    \ matchgroup=p6PodFormatCode
    \ start="L«"
    \ skip="«[^»]*»"
    \ end="»"
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar

" E<> can have a ";" separator

syn region p6PodFormatOne
    \ matchgroup=p6PodFormatCode
    \ start="E<"
    \ skip="<[^>]*>"
    \ end=">"
    \ contained
    \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodSemiColon

syn region p6PodFormatTwo
    \ matchgroup=p6PodFormatCode
    \ start="E<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ contained
    \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodSemiColon

syn region p6PodFormatThree
    \ matchgroup=p6PodFormatCode
    \ start="E<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ contained
    \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodSemiColon

syn region p6PodFormatFrench
    \ matchgroup=p6PodFormatCode
    \ start="E«"
    \ skip="«[^»]*»"
    \ end="»"
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodSemiColon

" M<> can have a ":" separator

syn region p6PodFormatOne
    \ matchgroup=p6PodFormatCode
    \ start="M<"
    \ skip="<[^>]*>"
    \ end=">"
    \ contained
    \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodColon

syn region p6PodFormatTwo
    \ matchgroup=p6PodFormatCode
    \ start="M<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ contained
    \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodColon

syn region p6PodFormatThree
    \ matchgroup=p6PodFormatCode
    \ start="M<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ contained
    \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodColon

syn region p6PodFormatFrench
    \ matchgroup=p6PodFormatCode
    \ start="M«"
    \ skip="«[^»]*»"
    \ end="»"
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodColon

" D<> can have "|" and ";" separators

syn region p6PodFormatOne
    \ matchgroup=p6PodFormatCode
    \ start="D<"
    \ skip="<[^>]*>"
    \ end=">"
    \ contained
    \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodVerticalBar,p6PodSemiColon

syn region p6PodFormatTwo
    \ matchgroup=p6PodFormatCode
    \ start="D<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ contained
    \ contains=p6PodFormatAngleTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodVerticalBar,p6PodSemiColon

syn region p6PodFormatThree
    \ matchgroup=p6PodFormatCode
    \ start="D<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ contained
    \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon

syn region p6PodFormatFrench
    \ matchgroup=p6PodFormatCode
    \ start="D«"
    \ skip="«[^»]*»"
    \ end="»"
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon

" X<> can have "|", "," and ";" separators

syn region p6PodFormatOne
    \ matchgroup=p6PodFormatCode
    \ start="X<"
    \ skip="<[^>]*>"
    \ end=">"
    \ contained
    \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodVerticalBar,p6PodSemiColon,p6PodComma

syn region p6PodFormatTwo
    \ matchgroup=p6PodFormatCode
    \ start="X<<"
    \ skip="<<[^>]*>>"
    \ end=">>"
    \ contained
    \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodVerticalBar,p6PodSemiColon,p6PodComma

syn region p6PodFormatThree
    \ matchgroup=p6PodFormatCode
    \ start="X<<<"
    \ skip="<<<[^>]*>>>"
    \ end=">>>"
    \ contained
    \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon,p6PodComma

syn region p6PodFormatFrench
    \ matchgroup=p6PodFormatCode
    \ start="X«"
    \ skip="«[^»]*»"
    \ end="»"
    \ contained
    \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon,p6PodComma

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link p6EscOctOld       p6Error
hi def link p6PackageTwigil   p6Twigil
hi def link p6StringAngle     p6String
hi def link p6StringFrench    p6String
hi def link p6StringAngles    p6String
hi def link p6StringSQ        p6String
hi def link p6StringDQ        p6String
hi def link p6StringQ         p6String
hi def link p6RxStringSQ      p6String
hi def link p6RxStringDQ      p6String
hi def link p6Substitution    p6String
hi def link p6Transliteration p6String
hi def link p6StringAuto      p6String
hi def link p6StringP5Auto    p6String
hi def link p6Key             p6String
hi def link p6Match           p6String
hi def link p6RegexBlock      p6String
hi def link p6RxP5CharClass   p6String
hi def link p6RxP5QuoteMeta   p6String
hi def link p6RxCharClass     p6String
hi def link p6RxQuoteWords    p6String
hi def link p6ReduceOp        p6Operator
hi def link p6ReverseCrossOp  p6Operator
hi def link p6HyperOp         p6Operator
hi def link p6QuoteQ          p6Operator
hi def link p6RxRange         p6StringSpecial
hi def link p6RxAnchor        p6StringSpecial
hi def link p6RxP5Anchor      p6StringSpecial
hi def link p6CodePoint       p6StringSpecial
hi def link p6RxMeta          p6StringSpecial
hi def link p6RxP5Range       p6StringSpecial
hi def link p6RxP5CPId        p6StringSpecial
hi def link p6RxP5Posix       p6StringSpecial
hi def link p6RxP5Mod         p6StringSpecial
hi def link p6RxP5HexSeq      p6StringSpecial
hi def link p6RxP5OctSeq      p6StringSpecial
hi def link p6RxP5WriteRefId  p6StringSpecial
hi def link p6HexSequence     p6StringSpecial
hi def link p6OctSequence     p6StringSpecial
hi def link p6RxP5Named       p6StringSpecial
hi def link p6RxP5PropId      p6StringSpecial
hi def link p6RxP5Quantifier  p6StringSpecial
hi def link p6RxP5CountId     p6StringSpecial
hi def link p6RxP5Verb        p6StringSpecial
hi def link p6Escape          p6StringSpecial2
hi def link p6EscNull         p6StringSpecial2
hi def link p6EscHash         p6StringSpecial2
hi def link p6EscQQ           p6StringSpecial2
hi def link p6EscQuote        p6StringSpecial2
hi def link p6EscDoubleQuote  p6StringSpecial2
hi def link p6EscBackTick     p6StringSpecial2
hi def link p6EscForwardSlash p6StringSpecial2
hi def link p6EscVerticalBar  p6StringSpecial2
hi def link p6EscExclamation  p6StringSpecial2
hi def link p6EscDollar       p6StringSpecial2
hi def link p6EscOpenCurly    p6StringSpecial2
hi def link p6EscCloseCurly   p6StringSpecial2
hi def link p6EscCloseBracket p6StringSpecial2
hi def link p6EscCloseAngle   p6StringSpecial2
hi def link p6EscCloseFrench  p6StringSpecial2
hi def link p6EscBackSlash    p6StringSpecial2
hi def link p6RxEscape        p6StringSpecial2
hi def link p6RxCapture       p6StringSpecial2
hi def link p6RxAlternation   p6StringSpecial2
hi def link p6RxP5            p6StringSpecial2
hi def link p6RxP5ReadRef     p6StringSpecial2
hi def link p6RxP5Oct         p6StringSpecial2
hi def link p6RxP5Hex         p6StringSpecial2
hi def link p6RxP5EscMeta     p6StringSpecial2
hi def link p6RxP5Meta        p6StringSpecial2
hi def link p6RxP5Escape      p6StringSpecial2
hi def link p6RxP5CodePoint   p6StringSpecial2
hi def link p6RxP5WriteRef    p6StringSpecial2
hi def link p6RxP5Prop        p6StringSpecial2

hi def link p6Property       Tag
hi def link p6Attention      Todo
hi def link p6Type           Type
hi def link p6Error          Error
hi def link p6BlockLabel     Label
hi def link p6Float          Float
hi def link p6Normal         Normal
hi def link p6Package        Normal
hi def link p6PackageScope   Normal
hi def link p6Number         Number
hi def link p6VersionNum     Number
hi def link p6String         String
hi def link p6Repeat         Repeat
hi def link p6Keyword        Keyword
hi def link p6Pragma         Keyword
hi def link p6Module         Keyword
hi def link p6DeclareRoutine Keyword
hi def link p6VarStorage     Special
hi def link p6FlowControl    Special
hi def link p6NumberBase     Special
hi def link p6Twigil         Special
hi def link p6StringSpecial2 Special
hi def link p6VersionDot     Special
hi def link p6Comment        Comment
hi def link p6Include        Include
hi def link p6Shebang        PreProc
hi def link p6ClosureTrait   PreProc
hi def link p6Routine        Function
hi def link p6Operator       Operator
hi def link p6Version        Operator
hi def link p6Context        Operator
hi def link p6Quote          Delimiter
hi def link p6TypeConstraint PreCondit
hi def link p6Exception      Exception
hi def link p6Placeholder    Identifier
hi def link p6Variable       Identifier
hi def link p6VarSlash       Identifier
hi def link p6VarNum         Identifier
hi def link p6VarExclam      Identifier
hi def link p6VarMatch       Identifier
hi def link p6VarName        Identifier
hi def link p6MatchVar       Identifier
hi def link p6RxP5ReadRefId  Identifier
hi def link p6RxP5ModDef     Identifier
hi def link p6RxP5ModName    Identifier
hi def link p6Conditional    Conditional
hi def link p6StringSpecial  SpecialChar

hi def link p6PodAbbr         p6Pod
hi def link p6PodAbbrEOF      p6Pod
hi def link p6PodAbbrNoCode   p6Pod
hi def link p6PodAbbrCode     p6PodCode
hi def link p6PodPara         p6Pod
hi def link p6PodParaEOF      p6Pod
hi def link p6PodParaNoCode   p6Pod
hi def link p6PodParaCode     p6PodCode
hi def link p6PodDelim        p6Pod
hi def link p6PodDelimEOF     p6Pod
hi def link p6PodDelimNoCode  p6Pod
hi def link p6PodDelimCode    p6PodCode
hi def link p6PodImplicitCode p6PodCode
hi def link p6PodExtraConfig  p6PodPrefix
hi def link p6PodVerticalBar  p6PodFormatCode
hi def link p6PodColon        p6PodFormatCode
hi def link p6PodSemicolon    p6PodFormatCode
hi def link p6PodComma        p6PodFormatCode
hi def link p6PodFormatOne    p6PodFormat
hi def link p6PodFormatTwo    p6PodFormat
hi def link p6PodFormatThree  p6PodFormat
hi def link p6PodFormatFrench p6PodFormat

hi def link p6PodType           Type
hi def link p6PodConfigOption   String
hi def link p6PodCode           PreProc
hi def link p6Pod               Comment
hi def link p6PodComment        Comment
hi def link p6PodAutoQuote      Operator
hi def link p6PodConfigOperator Operator
hi def link p6PodPrefix         Statement
hi def link p6PodName           Identifier
hi def link p6PodFormatCode     SpecialChar
hi def link p6PodFormat         SpecialComment


" Syncing to speed up processing
"syn sync match p6SyncPod groupthere p6PodAbbrRegion     "^=\K\k*\>"
"syn sync match p6SyncPod groupthere p6PodDirectRegion   "^=\%(config\|use\|encoding\)\>"
"syn sync match p6SyncPod groupthere p6PodParaRegion     "^=for\>"
"syn sync match p6SyncPod groupthere p6PodDelimRegion    "^=begin\>"
"syn sync match p6SyncPod groupthere p6PodDelimEndRegion "^=end\>"

" Let's just sync whole file, the other methods aren't reliable (or I don't
" know how to use them reliably)
syn sync fromstart

setlocal foldmethod=syntax

let b:current_syntax = "perl6"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:ts=8:sts=4:sw=4:expandtab:ft=vim
PK�j�Z��N���vim80/syntax/nosyntax.vimnu�[���" Vim syntax support file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2006 Apr 16

" This file is used for ":syntax off".
" It removes the autocommands and stops highlighting for all buffers.

if !has("syntax")
  finish
endif

" Remove all autocommands for the Syntax event.  This also avoids that
" "syntax=foo" in a modeline triggers the SynSet() function of synload.vim.
au! Syntax

" remove all syntax autocommands and remove the syntax for each buffer
augroup syntaxset
  au!
  au BufEnter * syn clear
  au BufEnter * if exists("b:current_syntax") | unlet b:current_syntax | endif
  doautoall syntaxset BufEnter *
  au!
augroup END

if exists("syntax_on")
  unlet syntax_on
endif
if exists("syntax_manual")
  unlet syntax_manual
endif
PK�j�Z���''vim80/syntax/named.vimnu�[���" Vim syntax file
" Language:	BIND configuration file
" Maintainer:	Nick Hibma <nick@van-laarhoven.org>
" Last change:	2007-01-30
" Filenames:	named.conf, rndc.conf
" Location:	http://www.van-laarhoven.org/vim/syntax/named.vim
"
" Previously maintained by glory hump <rnd@web-drive.ru> and updated by Marcin
" Dalecki.
"
" This file could do with a lot of improvements, so comments are welcome.
" Please submit the named.conf (segment) with any comments.
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

setlocal iskeyword=.,-,48-58,A-Z,a-z,_

syn sync match namedSync grouphere NONE "^(zone|controls|acl|key)"

let s:save_cpo = &cpo
set cpo-=C

" BIND configuration file

syn match	namedComment	"//.*"
syn match	namedComment	"#.*"
syn region	namedComment	start="/\*" end="\*/"
syn region	namedString	start=/"/ end=/"/ contained
" --- omitted trailing semicolon
syn match	namedError	/[^;{#]$/

" --- top-level keywords

syn keyword	namedInclude	include nextgroup=namedString skipwhite
syn keyword	namedKeyword	acl key nextgroup=namedIntIdent skipwhite
syn keyword	namedKeyword	server nextgroup=namedIdentifier skipwhite
syn keyword	namedKeyword	controls nextgroup=namedSection skipwhite
syn keyword	namedKeyword	trusted-keys nextgroup=namedIntSection skipwhite
syn keyword	namedKeyword	logging nextgroup=namedLogSection skipwhite
syn keyword	namedKeyword	options nextgroup=namedOptSection skipwhite
syn keyword	namedKeyword	zone nextgroup=namedZoneString skipwhite

" --- Identifier: name of following { ... } Section
syn match	namedIdentifier	contained /\k\+/ nextgroup=namedSection skipwhite
" --- IntIdent: name of following IntSection
syn match	namedIntIdent	contained /"\=\k\+"\=/ nextgroup=namedIntSection skipwhite

" --- Section: { ... } clause
syn region	namedSection	contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword

" --- IntSection: section that does not contain other sections
syn region	namedIntSection	contained start=+{+ end=+}+ contains=namedIntKeyword,namedError

" --- IntKeyword: keywords contained within `{ ... }' sections only
" + these keywords are contained within `key' and `acl' sections
syn keyword	namedIntKeyword	contained key algorithm
syn keyword	namedIntKeyword	contained secret nextgroup=namedString skipwhite

" + these keywords are contained within `server' section only
syn keyword	namedIntKeyword	contained bogus support-ixfr nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedIntKeyword	contained transfers nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedIntKeyword	contained transfer-format
syn keyword	namedIntKeyword	contained keys nextgroup=namedIntSection skipwhite

" + these keywords are contained within `controls' section only
syn keyword	namedIntKeyword	contained inet nextgroup=namedIPaddr,namedIPerror skipwhite
syn keyword	namedIntKeyword	contained unix nextgroup=namedString skipwhite
syn keyword	namedIntKeyword	contained port perm owner group nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedIntKeyword	contained allow nextgroup=namedIntSection skipwhite

" + these keywords are contained within `update-policy' section only
syn keyword	namedIntKeyword	contained grant nextgroup=namedString skipwhite
syn keyword	namedIntKeyword	contained name self subdomain wildcard nextgroup=namedString skipwhite
syn keyword	namedIntKeyword	TXT A PTR NS SOA A6 CNAME MX ANY skipwhite

" --- options
syn region	namedOptSection	contained start=+{+ end=+};+ contains=namedOption,namedCNOption,namedComment,namedParenError

syn keyword	namedOption	contained version directory
\		nextgroup=namedString skipwhite
syn keyword	namedOption	contained named-xfer dump-file pid-file
\		nextgroup=namedString skipwhite
syn keyword	namedOption	contained mem-statistics-file statistics-file
\		nextgroup=namedString skipwhite
syn keyword	namedOption	contained auth-nxdomain deallocate-on-exit
\		nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedOption	contained dialup fake-iquery fetch-glue
\		nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedOption	contained has-old-clients host-statistics
\		nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedOption	contained maintain-ixfr-base multiple-cnames
\		nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedOption	contained notify recursion rfc2308-type1
\		nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedOption	contained use-id-pool treat-cr-as-space
\		nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedOption	contained also-notify forwarders
\		nextgroup=namedIPlist skipwhite
syn keyword	namedOption	contained forward check-names
syn keyword	namedOption	contained allow-query allow-transfer allow-recursion
\		nextgroup=namedAML skipwhite
syn keyword	namedOption	contained blackhole listen-on
\		nextgroup=namedIntSection skipwhite
syn keyword	namedOption	contained lame-ttl max-transfer-time-in
\		nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedOption	contained max-ncache-ttl min-roots
\		nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedOption	contained serial-queries transfers-in
\		nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedOption	contained transfers-out transfers-per-ns
syn keyword	namedOption	contained transfer-format
syn keyword	namedOption	contained transfer-source
\		nextgroup=namedIPaddr,namedIPerror skipwhite
syn keyword	namedOption	contained max-ixfr-log-size
\		nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedOption	contained coresize datasize files stacksize
syn keyword	namedOption	contained cleaning-interval interface-interval statistics-interval heartbeat-interval
\		nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedOption	contained topology sortlist rrset-order
\		nextgroup=namedIntSection skipwhite

syn match	namedOption	contained /\<query-source\s\+.*;/he=s+12 contains=namedQSKeywords
syn keyword	namedQSKeywords	contained address port
syn match	namedCNOption	contained /\<check-names\s\+.*;/he=s+11 contains=namedCNKeywords
syn keyword	namedCNKeywords	contained fail warn ignore master slave response

" --- logging facilities
syn region	namedLogSection	contained start=+{+ end=+};+ contains=namedLogOption
syn keyword	namedLogOption	contained channel nextgroup=namedIntIdent skipwhite
syn keyword	namedLogOption	contained category nextgroup=namedIntIdent skipwhite
syn keyword	namedIntKeyword	contained syslog null versions size severity
syn keyword	namedIntKeyword	contained file nextgroup=namedString skipwhite
syn keyword	namedIntKeyword	contained print-category print-severity print-time nextgroup=namedBool,namedNotBool skipwhite

" --- zone section
syn region	namedZoneString	contained oneline start=+"+ end=+"+ skipwhite
\		contains=namedDomain,namedIllegalDom
\		nextgroup=namedZoneClass,namedZoneSection
syn keyword	namedZoneClass	contained in hs hesiod chaos
\		IN HS HESIOD CHAOS
\		nextgroup=namedZoneSection skipwhite

syn region	namedZoneSection	contained start=+{+ end=+};+ contains=namedZoneOpt,namedCNOption,namedComment,namedMasters,namedParenError
syn keyword	namedZoneOpt	contained file ixfr-base
\		nextgroup=namedString skipwhite
syn keyword	namedZoneOpt	contained notify dialup
\		nextgroup=namedBool,namedNotBool skipwhite
syn keyword	namedZoneOpt	contained pubkey forward
syn keyword	namedZoneOpt	contained max-transfer-time-in
\		nextgroup=namedNumber,namedNotNumber skipwhite
syn keyword	namedZoneOpt	contained type nextgroup=namedZoneType skipwhite
syn keyword	namedZoneType	contained master slave stub forward hint

syn keyword	namedZoneOpt	contained masters forwarders
\		nextgroup=namedIPlist skipwhite
syn region	namedIPlist	contained start=+{+ end=+};+ contains=namedIPaddr,namedIPerror,namedParenError,namedComment
syn keyword	namedZoneOpt	contained allow-update allow-query allow-transfer
\		nextgroup=namedAML skipwhite
syn keyword	namedZoneOpt	contained update-policy
\		nextgroup=namedIntSection skipwhite

" --- boolean parameter
syn match	namedNotBool	contained "[^ 	;]\+"
syn keyword	namedBool	contained yes no true false 1 0

" --- number parameter
syn match	namedNotNumber	contained "[^ 	0-9;]\+"
syn match	namedNumber	contained "\d\+"

" --- address match list
syn region	namedAML	contained start=+{+ end=+};+ contains=namedParenError,namedComment,namedString

" --- IPs & Domains
syn match	namedIPaddr	contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{3};/he=e-1
syn match	namedDomain	contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/ nextgroup=namedSpareDot
syn match	namedDomain	contained /"\."/ms=s+1,me=e-1
syn match	namedSpareDot	contained /\./

" --- syntax errors
syn match	namedIllegalDom	contained /"\S*[^-A-Za-z0-9.[:space:]]\S*"/ms=s+1,me=e-1
syn match	namedIPerror	contained /\<\S*[^0-9.[:space:];]\S*/
syn match	namedEParenError	contained +{+
syn match	namedParenError	+}\([^;]\|$\)+

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link namedComment	Comment
hi def link namedInclude	Include
hi def link namedKeyword	Keyword
hi def link namedIntKeyword	Keyword
hi def link namedIdentifier	Identifier
hi def link namedIntIdent	Identifier

hi def link namedString	String
hi def link namedBool	Type
hi def link namedNotBool	Error
hi def link namedNumber	Number
hi def link namedNotNumber	Error

hi def link namedOption	namedKeyword
hi def link namedLogOption	namedKeyword
hi def link namedCNOption	namedKeyword
hi def link namedQSKeywords	Type
hi def link namedCNKeywords	Type
hi def link namedLogCategory	Type
hi def link namedIPaddr	Number
hi def link namedDomain	Identifier
hi def link namedZoneOpt	namedKeyword
hi def link namedZoneType	Type
hi def link namedParenError	Error
hi def link namedEParenError	Error
hi def link namedIllegalDom	Error
hi def link namedIPerror	Error
hi def link namedSpareDot	Error
hi def link namedError	Error


let &cpo = s:save_cpo
unlet s:save_cpo

let b:current_syntax = "named"

" vim: ts=17
PK�j�Z����:
:
vim80/syntax/chicken.vimnu�[���" Vim syntax file
" Language: Scheme (CHICKEN)
" Last Change: 2018-02-05
" Author: Evan Hanson <evhan@foldling.org>
" Maintainer: Evan Hanson <evhan@foldling.org>
" URL: https://foldling.org/vim/syntax/chicken.vim
" Notes: This is supplemental syntax, to be loaded after the core Scheme
" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1
" and filetype=scheme.

" Only to be used on top of the Scheme syntax.
if !exists('b:did_scheme_syntax')
  finish
endif

" Lighten parentheses.
hi! def link schemeParentheses Comment

" foo#bar
syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/

" ##foo#bar
syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/

" Heredocs.
syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/

" Keywords.
syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/
syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/

" C/C++ syntax.
let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1)
if len(s:c)
  exe 'syn include @c ' s:c[0]
  syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c
endif

syn keyword schemeSyntax define-record

syn keyword schemeLibrarySyntax declare
syn keyword schemeLibrarySyntax module
syn keyword schemeLibrarySyntax reexport
syn keyword schemeLibrarySyntax require-library

syn keyword schemeTypeSyntax -->
syn keyword schemeTypeSyntax ->
syn keyword schemeTypeSyntax :
syn keyword schemeTypeSyntax assume
syn keyword schemeTypeSyntax compiler-typecase
syn keyword schemeTypeSyntax define-specialization
syn keyword schemeTypeSyntax define-type
syn keyword schemeTypeSyntax the

syn keyword schemeExtraSyntax and-let*
syn keyword schemeExtraSyntax match
syn keyword schemeExtraSyntax match-lambda
syn keyword schemeExtraSyntax match-lambda*

syn keyword schemeSpecialSyntax define-compiler-syntax
syn keyword schemeSpecialSyntax define-constant
syn keyword schemeSpecialSyntax define-external
syn keyword schemeSpecialSyntax define-inline
syn keyword schemeSpecialSyntax foreign-code
syn keyword schemeSpecialSyntax foreign-declare
syn keyword schemeSpecialSyntax foreign-lambda
syn keyword schemeSpecialSyntax foreign-lambda*
syn keyword schemeSpecialSyntax foreign-primitive
syn keyword schemeSpecialSyntax foreign-safe-lambda
syn keyword schemeSpecialSyntax foreign-safe-lambda*
syn keyword schemeSpecialSyntax foreign-value

syn keyword schemeSyntaxSyntax begin-for-syntax
syn keyword schemeSyntaxSyntax define-for-syntax
syn keyword schemeSyntaxSyntax er-macro-transformer
syn keyword schemeSyntaxSyntax ir-macro-transformer
syn keyword schemeSyntaxSyntax require-library-for-syntax
PK�j�Zp�O�)�)vim80/syntax/forth.vimnu�[���" Vim syntax file
" Language:    FORTH
" Current Maintainer:  Johan Kotlinski <kotlinski@gmail.com>
" Previous Maintainer:  Christian V. J. Br�ssow <cvjb@cvjb.de>
" Last Change: 2018-03-29
" Filenames:   *.fs,*.ft
" URL:	       https://github.com/jkotlinski/forth.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Synchronization method
syn sync ccomment
syn sync maxlines=200

" I use gforth, so I set this to case ignore
syn case ignore

" Some special, non-FORTH keywords
syn keyword forthTodo contained TODO FIXME XXX
syn match forthTodo contained 'Copyright\(\s([Cc])\)\=\(\s[0-9]\{2,4}\)\='

" Characters allowed in keywords
" I don't know if 128-255 are allowed in ANS-FORTH
setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255

" when wanted, highlight trailing white space
if exists("forth_space_errors")
    if !exists("forth_no_trail_space_error")
        syn match forthSpaceError display excludenl "\s\+$"
    endif
    if !exists("forth_no_tab_space_error")
        syn match forthSpaceError display " \+\t"me=e-1
    endif
endif

" Keywords

" basic mathematical and logical operators
syn keyword forthOperators + - * / MOD /MOD NEGATE ABS MIN MAX
syn keyword forthOperators AND OR XOR NOT LSHIFT RSHIFT INVERT 2* 2/ 1+
syn keyword forthOperators 1- 2+ 2- 8* UNDER+
syn keyword forthOperators M+ */ */MOD M* UM* M*/ UM/MOD FM/MOD SM/REM
syn keyword forthOperators D+ D- DNEGATE DABS DMIN DMAX D2* D2/
syn keyword forthOperators F+ F- F* F/ FNEGATE FABS FMAX FMIN FLOOR FROUND
syn keyword forthOperators F** FSQRT FEXP FEXPM1 FLN FLNP1 FLOG FALOG FSIN
syn keyword forthOperators FCOS FSINCOS FTAN FASIN FACOS FATAN FATAN2 FSINH
syn keyword forthOperators FCOSH FTANH FASINH FACOSH FATANH F2* F2/ 1/F
syn keyword forthOperators F~REL F~ABS F~
syn keyword forthOperators 0< 0<= 0<> 0= 0> 0>= < <= <> = > >= U< U<=
syn keyword forthOperators U> U>= D0< D0<= D0<> D0= D0> D0>= D< D<= D<>
syn keyword forthOperators D= D> D>= DU< DU<= DU> DU>= WITHIN ?NEGATE
syn keyword forthOperators ?DNEGATE TRUE FALSE

" various words that take an input and do something with it
syn keyword forthFunction . U. .R U.R

" stack manipulations
syn keyword forthStack DROP NIP DUP OVER TUCK SWAP ROT -ROT ?DUP PICK ROLL
syn keyword forthStack 2DROP 2NIP 2DUP 2OVER 2TUCK 2SWAP 2ROT 2-ROT
syn keyword forthStack 3DUP 4DUP 5DUP 3DROP 4DROP 5DROP 8DROP 4SWAP 4ROT
syn keyword forthStack 4-ROT 4TUCK 8SWAP 8DUP
syn keyword forthRStack >R R> R@ RDROP 2>R 2R> 2R@ 2RDROP
syn keyword forthRstack 4>R 4R> 4R@ 4RDROP
syn keyword forthFStack FDROP FNIP FDUP FOVER FTUCK FSWAP FROT

" stack pointer manipulations
syn keyword forthSP SP@ SP! FP@ FP! RP@ RP! LP@ LP! DEPTH

" address operations
syn keyword forthMemory @ ! +! C@ C! 2@ 2! F@ F! SF@ SF! DF@ DF!
syn keyword forthAdrArith CHARS CHAR+ CELLS CELL+ CELL ALIGN ALIGNED FLOATS
syn keyword forthAdrArith FLOAT+ FLOAT FALIGN FALIGNED SFLOATS SFLOAT+
syn keyword forthAdrArith SFALIGN SFALIGNED DFLOATS DFLOAT+ DFALIGN DFALIGNED
syn keyword forthAdrArith MAXALIGN MAXALIGNED CFALIGN CFALIGNED
syn keyword forthAdrArith ADDRESS-UNIT-BITS ALLOT ALLOCATE HERE
syn keyword forthMemBlks MOVE ERASE CMOVE CMOVE> FILL BLANK UNUSED

" conditionals
syn keyword forthCond IF ELSE ENDIF THEN CASE OF ENDOF ENDCASE ?DUP-IF
syn keyword forthCond ?DUP-0=-IF AHEAD CS-PICK CS-ROLL CATCH THROW WITHIN

" iterations
syn keyword forthLoop BEGIN WHILE REPEAT UNTIL AGAIN
syn keyword forthLoop ?DO LOOP I J K +DO U+DO -DO U-DO DO +LOOP -LOOP
syn keyword forthLoop UNLOOP LEAVE ?LEAVE EXIT DONE FOR NEXT RECURSE

" new words
syn match forthClassDef '\<:class\s*[^ \t]\+\>'
syn match forthObjectDef '\<:object\s*[^ \t]\+\>'
syn match forthColonDef '\<:m\?\s*[^ \t]\+\>'
syn keyword forthEndOfColonDef ; ;M ;m
syn keyword forthEndOfClassDef ;class
syn keyword forthEndOfObjectDef ;object
syn keyword forthDefine CONSTANT 2CONSTANT FCONSTANT VARIABLE 2VARIABLE
syn keyword forthDefine FVARIABLE CREATE USER VALUE TO DEFER IS DOES> IMMEDIATE
syn keyword forthDefine COMPILE-ONLY COMPILE RESTRICT INTERPRET POSTPONE EXECUTE
syn keyword forthDefine LITERAL CREATE-INTERPRET/COMPILE INTERPRETATION>
syn keyword forthDefine <INTERPRETATION COMPILATION> <COMPILATION ] LASTXT
syn keyword forthDefine COMP' POSTPONE, FIND-NAME NAME>INT NAME?INT NAME>COMP
syn keyword forthDefine NAME>STRING STATE C; CVARIABLE BUFFER: MARKER
syn keyword forthDefine , 2, F, C, COMPILE,
syn match forthDefine "\[IFDEF]"
syn match forthDefine "\[IFUNDEF]"
syn match forthDefine "\[THEN]"
syn match forthDefine "\[ENDIF]"
syn match forthDefine "\[ELSE]"
syn match forthDefine "\[?DO]"
syn match forthDefine "\[DO]"
syn match forthDefine "\[LOOP]"
syn match forthDefine "\[+LOOP]"
syn match forthDefine "\[NEXT]"
syn match forthDefine "\[BEGIN]"
syn match forthDefine "\[UNTIL]"
syn match forthDefine "\[AGAIN]"
syn match forthDefine "\[WHILE]"
syn match forthDefine "\[REPEAT]"
syn match forthDefine "\[COMP']"
syn match forthDefine "'"
syn match forthDefine '\<\[\>'
syn match forthDefine "\[']"
syn match forthDefine '\[COMPILE]'
syn match forthDefine '\[CHAR]'

" debugging
syn keyword forthDebug PRINTDEBUGDATA PRINTDEBUGLINE
syn match forthDebug "\<\~\~\>"

" Assembler
syn keyword forthAssembler ASSEMBLER CODE END-CODE ;CODE FLUSH-ICACHE C,

" basic character operations
syn keyword forthCharOps (.) CHAR EXPECT FIND WORD TYPE -TRAILING EMIT KEY
syn keyword forthCharOps KEY? TIB CR BL COUNT SPACE SPACES
" recognize 'char (' or '[char] (' correctly, so it doesn't
" highlight everything after the paren as a comment till a closing ')'
syn match forthCharOps '\<char\s\S\s'
syn match forthCharOps '\<\[char\]\s\S\s'
syn region forthCharOps start=+."\s+ skip=+\\"+ end=+"+

" char-number conversion
syn keyword forthConversion <<# <# # #> #>> #S (NUMBER) (NUMBER?) CONVERT D>F
syn keyword forthConversion D>S DIGIT DPL F>D HLD HOLD NUMBER S>D SIGN >NUMBER
syn keyword forthConversion F>S S>F HOLDS

" interpreter, wordbook, compiler
syn keyword forthForth (LOCAL) BYE COLD ABORT >BODY >NEXT >LINK CFA >VIEW HERE
syn keyword forthForth PAD WORDS VIEW VIEW> N>LINK NAME> LINK> L>NAME FORGET
syn keyword forthForth BODY> ASSERT( ASSERT0( ASSERT1( ASSERT2( ASSERT3( )
syn keyword forthForth >IN ACCEPT ENVIRONMENT? EVALUATE QUIT SOURCE ACTION-OF
syn keyword forthForth DEFER! DEFER@ PARSE PARSE-NAME REFILL RESTORE-INPUT
syn keyword forthForth SAVE-INPUT SOURCE-ID
syn region forthForth start=+ABORT"\s+ skip=+\\"+ end=+"+

" vocabularies
syn keyword forthVocs ONLY FORTH ALSO ROOT SEAL VOCS ORDER CONTEXT #VOCS
syn keyword forthVocs VOCABULARY DEFINITIONS

" File keywords
syn keyword forthFileMode R/O R/W W/O BIN
syn keyword forthFileWords OPEN-FILE CREATE-FILE CLOSE-FILE DELETE-FILE
syn keyword forthFileWords RENAME-FILE READ-FILE READ-LINE KEY-FILE
syn keyword forthFileWords KEY?-FILE WRITE-FILE WRITE-LINE EMIT-FILE
syn keyword forthFileWords FLUSH-FILE FILE-STATUS FILE-POSITION
syn keyword forthFileWords REPOSITION-FILE FILE-SIZE RESIZE-FILE
syn keyword forthFileWords SLURP-FILE SLURP-FID STDIN STDOUT STDERR
syn keyword forthFileWords INCLUDE-FILE INCLUDED REQUIRED
syn keyword forthBlocks OPEN-BLOCKS USE LOAD --> BLOCK-OFFSET
syn keyword forthBlocks GET-BLOCK-FID BLOCK-POSITION LIST SCR BLOCK
syn keyword forthBlocks BUFER EMPTY-BUFFERS EMPTY-BUFFER UPDATE UPDATED?
syn keyword forthBlocks SAVE-BUFFERS SAVE-BUFFER FLUSH THRU +LOAD +THRU
syn keyword forthBlocks BLOCK-INCLUDED BLK

" numbers
syn keyword forthMath DECIMAL HEX BASE
syn match forthInteger '\<-\=[0-9]\+.\=\>'
syn match forthInteger '\<&-\=[0-9]\+.\=\>'
" recognize hex and binary numbers, the '$' and '%' notation is for gforth
syn match forthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess
syn match forthInteger '\<\x*\d\x*\>'  " *2* --- this order!
syn match forthInteger '\<%[0-1]*[0-1]\+\>'
syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe]\d\+\>'
syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe][-+]\d\+\>'

" XXX If you find this overkill you can remove it. this has to come after the
" highlighting for numbers otherwise it has no effect.
syn region forthComment start='0 \[if\]' end='\[endif\]' end='\[then\]' contains=forthTodo

" Strings
syn region forthString start=+\.*\"+ end=+"+ end=+$+
" XXX
syn region forthString start=+s\"+ end=+"+ end=+$+
syn region forthString start=+s\\\"+ end=+"+ end=+$+
syn region forthString start=+c\"+ end=+"+ end=+$+

" Comments
syn match forthComment '\\\s.*$' contains=forthTodo,forthSpaceError
syn region forthComment start='\\S\s' end='.*' contains=forthTodo,forthSpaceError
syn match forthComment '\.(\s[^)]*)' contains=forthTodo,forthSpaceError
syn region forthComment start='\(^\|\s\)\zs(\s' skip='\\)' end=')' contains=forthTodo,forthSpaceError
syn region forthComment start='/\*' end='\*/' contains=forthTodo,forthSpaceError

" Include files
syn match forthInclude '^INCLUDE\s\+\k\+'
syn match forthInclude '^REQUIRE\s\+\k\+'
syn match forthInclude '^FLOAD\s\+'
syn match forthInclude '^NEEDS\s\+'

" Locals definitions
syn region forthLocals start='{\s' start='{$' end='\s}' end='^}'
syn match forthLocals '{ }' " otherwise, at least two spaces between
syn region forthDeprecated start='locals|' end='|'

" Define the default highlighting.
hi def link forthTodo Todo
hi def link forthOperators Operator
hi def link forthMath Number
hi def link forthInteger Number
hi def link forthFloat Float
hi def link forthStack Special
hi def link forthRstack Special
hi def link forthFStack Special
hi def link forthSP Special
hi def link forthMemory Function
hi def link forthAdrArith Function
hi def link forthMemBlks Function
hi def link forthCond Conditional
hi def link forthLoop Repeat
hi def link forthColonDef Define
hi def link forthEndOfColonDef Define
hi def link forthDefine Define
hi def link forthDebug Debug
hi def link forthAssembler Include
hi def link forthCharOps Character
hi def link forthConversion String
hi def link forthForth Statement
hi def link forthVocs Statement
hi def link forthString String
hi def link forthComment Comment
hi def link forthClassDef Define
hi def link forthEndOfClassDef Define
hi def link forthObjectDef Define
hi def link forthEndOfObjectDef Define
hi def link forthInclude Include
hi def link forthLocals Type " nothing else uses type and locals must stand out
hi def link forthDeprecated Error " if you must, change to Type
hi def link forthFileMode Function
hi def link forthFunction Function
hi def link forthFileWords Statement
hi def link forthBlocks Statement
hi def link forthSpaceError Error

let b:current_syntax = "forth"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim:ts=8:sw=4:nocindent:smartindent:
PK�j�Z3NՑ�
�
vim80/syntax/pdf.vimnu�[���" Vim syntax file
" Language:	PDF
" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
" Last Change:	2007 Dec 16

if exists("b:current_syntax")
    finish
endif

if !exists("main_syntax")
    let main_syntax = 'pdf'
endif

syn include @pdfXML syntax/xml.vim

syn case match

syn cluster pdfObjects contains=pdfBoolean,pdfConstant,pdfNumber,pdfFloat,pdfName,pdfHexString,pdfString,pdfArray,pdfHash,pdfReference,pdfComment
syn keyword pdfBoolean  true false contained
syn keyword pdfConstant null       contained
syn match   pdfNumber "[+-]\=\<\d\+\>"
syn match   pdfFloat   "[+-]\=\<\%(\d\+\.\|\d*\.\d\+\)\>" contained

syn match   pdfNameError "#\X\|#\x\X\|#00" contained containedin=pdfName
syn match   pdfSpecialChar "#\x\x" contained containedin=pdfName
syn match   pdfName   "/[^[:space:]\[\](){}<>/]*"   contained
syn match   pdfHexError  "[^[:space:][:xdigit:]<>]" contained
"syn match   pdfHexString "<\s*\x[^<>]*\x\s*>"    contained contains=pdfHexError
"syn match   pdfHexString "<\s*\x\=\s*>"          contained
syn region  pdfHexString matchgroup=pdfDelimiter start="<<\@!" end=">" contained contains=pdfHexError
syn match   pdfStringError "\\."      contained containedin=pdfString
syn match   pdfSpecialChar "\\\%(\o\{1,3\}\|[nrtbf()\\]\)"  contained containedin=pdfString
syn region  pdfString matchgroup=pdfDelimiter start="\\\@<!(" end="\\\@<!)" contains=pdfString

syn region  pdfArray  matchgroup=pdfOperator start="\[" end="\]" contains=@pdfObjects contained
syn region  pdfHash   matchgroup=pdfOperator start="<<" end=">>" contains=@pdfObjects contained
syn match   pdfReference "\<\d\+\s\+\d\+\s\+R\>"
"syn keyword pdfOperator R contained containedin=pdfReference

syn region  pdfObject matchgroup=pdfType start="\<obj\>"     end="\<endobj\>" contains=@pdfObjects
syn region  pdfObject matchgroup=pdfType start="\<obj\r\=\n" end="\<endobj\>" contains=@pdfObjects fold

" Do these twice.  The ones with only newlines are foldable
syn region  pdfStream matchgroup=pdfType start="\<stream\r\=\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject
syn region  pdfXMLStream matchgroup=pdfType start="\<stream\r\=\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML
syn region  pdfStream matchgroup=pdfType start="\<stream\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject fold
syn region  pdfXMLStream matchgroup=pdfType start="\<stream\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML fold

syn region  pdfPreProc start="\<xref\%(\r\|\n\|\r\n\)" end="^trailer\%(\r\|\n\|\r\n\)" skipwhite skipempty nextgroup=pdfHash contains=pdfNumber fold
syn keyword pdfPreProc startxref
syn match   pdfComment  "%.*\%(\r\|\n\)" contains=pdfPreProc
syn match   pdfPreProc  "^%\%(%EOF\|PDF-\d\.\d\)\(\r\|\n\)"

hi def link pdfOperator     Operator
hi def link pdfNumber       Number
hi def link pdfFloat        Float
hi def link pdfBoolean      Boolean
hi def link pdfConstant     Constant
hi def link pdfName         Identifier
hi def link pdfNameError    pdfStringError
hi def link pdfHexString    pdfString
hi def link pdfHexError     pdfStringError
hi def link pdfString       String
hi def link pdfStringError  Error
hi def link pdfSpecialChar  SpecialChar
hi def link pdfDelimiter    Delimiter
hi def link pdfType         Type
hi def link pdfReference    Tag
hi def link pdfStream       NonText
hi def link pdfPreProc      PreProc
hi def link pdfComment      Comment

let b:current_syntax = "pdf"
PK�j�ZP-�		vim80/syntax/bst.vimnu�[���" Vim syntax file
" Language:     BibTeX Bibliography Style
" Maintainer:   Tim Pope <vimNOSPAM@tpope.info>
" Filenames:    *.bst
" $Id: bst.vim,v 1.2 2007/05/05 18:24:42 vimboss Exp $

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

setlocal iskeyword=48-57,#,$,',.,A-Z,a-z

syn case ignore

syn match   bstString +"[^"]*\%("\|$\)+ contains=bstField,bstType,bstError
" Highlight the last character of an unclosed string, but only when the cursor
" is not beyond it (i.e., it is still being edited). Imperfect.
syn match   bstError     '[^"]\%#\@!$' contained

syn match   bstNumber         "#-\=\d\+\>"
syn keyword bstNumber         entry.max$ global.max$
syn match   bstComment        "%.*"

syn keyword bstCommand        ENTRY FUNCTION INTEGERS MACRO STRINGS
syn keyword bstCommand        READ EXECUTE ITERATE REVERSE SORT
syn match   bstBuiltIn        "\s[-<>=+*]\|\s:="
syn keyword bstBuiltIn        add.period$
syn keyword bstBuiltIn        call.type$ change.case$ chr.to.int$ cite$
syn keyword bstBuiltIn        duplicate$ empty$ format.name$
syn keyword bstBuiltIn        if$ int.to.chr$ int.to.str$
syn keyword bstBuiltIn        missing$
syn keyword bstBuiltIn        newline$ num.names$
syn keyword bstBuiltIn        pop$ preamble$ purify$ quote$
syn keyword bstBuiltIn        skip$ stack$ substring$ swap$
syn keyword bstBuiltIn        text.length$ text.prefix$ top$ type$
syn keyword bstBuiltIn        warning$ while$ width$ write$
syn match   bstIdentifier     "'\k*"
syn keyword bstType           article book booklet conference
syn keyword bstType           inbook incollection inproceedings
syn keyword bstType           manual mastersthesis misc
syn keyword bstType           phdthesis proceedings
syn keyword bstType           techreport unpublished
syn keyword bstField          abbr address annote author
syn keyword bstField          booktitle chapter crossref comment
syn keyword bstField          edition editor
syn keyword bstField          howpublished institution journal key month
syn keyword bstField          note number
syn keyword bstField          organization
syn keyword bstField          pages publisher
syn keyword bstField          school series
syn keyword bstField          title type
syn keyword bstField          volume year

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link bstComment           Comment
hi def link bstString            String
hi def link bstCommand           PreProc
hi def link bstBuiltIn           Statement
hi def link bstField             Special
hi def link bstNumber            Number
hi def link bstType              Type
hi def link bstIdentifier        Identifier
hi def link bstError             Error

let b:current_syntax = "bst"

" vim:set ft=vim sts=4 sw=4:
PK�j�ZӋ966vim80/syntax/fortran.vimnu�[���" Vim syntax file
" Language:	Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version:	100
" Last Change:	2016 Oct. 29
" Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage:	For instructions, do :help fortran-syntax from Vim
" Credits:
"  Version 0.1 (April 2000) for Fortran 95 was based on the Fortran 77 syntax file by
"  Mario Eusebio and Preben Guldberg. Since then, useful suggestions and contributions
"  have been made, in chronological order, by:
"  Andrej Panjkov, Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
"  Walter Dieudonn�, Alexander Wagner, Roman Bertle, Charles Rendleman,
"  Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann,
"  Stefano Zaghi, Vishnu V. Krishnan and Judica�l Grasset

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Choose fortran_dialect using the priority:
" source file directive > buffer-local value > global value > file extension
" first try using directive in first three lines of file
let b:fortran_retype = getline(1)." ".getline(2)." ".getline(3)
if b:fortran_retype =~? '\<fortran_dialect\s*=\s*F\>'
  let b:fortran_dialect = "F"
elseif b:fortran_retype =~? '\<fortran_dialect\s*=\s*f08\>'
  let b:fortran_dialect = "f08"
elseif !exists("b:fortran_dialect")
  if exists("g:fortran_dialect") && g:fortran_dialect =~# '\<F\|f08\>'
    " try global variable
    let b:fortran_dialect = g:fortran_dialect
  else         " nothing found, so use default
    let b:fortran_dialect = "f08"
  endif
endif
unlet! b:fortran_retype
" make sure buffer-local value is not invalid
if b:fortran_dialect !~# '\<F\|f08\>'
  let b:fortran_dialect = "f08"
endif

" Choose between fixed and free source form if this hasn't been done yet
if !exists("b:fortran_fixed_source")
  if b:fortran_dialect == "F"
    " F requires free source form
    let b:fortran_fixed_source = 0
  elseif exists("fortran_free_source")
    " User guarantees free source form for all fortran files
    let b:fortran_fixed_source = 0
  elseif exists("fortran_fixed_source")
    " User guarantees fixed source form for all fortran files
    let b:fortran_fixed_source = 1
  elseif expand("%:e") ==? "f\<90\|95\|03\|08\>"
    " Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers
    let b:fortran_fixed_source = 0
  elseif expand("%:e") ==? "f\|f77\|for"
    " Fixed-form file extension defaults
    let b:fortran_fixed_source = 1
  else
    " Modern fortran still allows both free and fixed source form.
    " Assume fixed source form unless signs of free source form
    " are detected in the first five columns of the first s:lmax lines.
    " Detection becomes more accurate and time-consuming if more lines
    " are checked. Increase the limit below if you keep lots of comments at
    " the very top of each file and you have a fast computer.
    let s:lmax = 500
    if ( s:lmax > line("$") )
      let s:lmax = line("$")
    endif
    let b:fortran_fixed_source = 1
    let s:ln=1
    while s:ln <= s:lmax
      let s:test = strpart(getline(s:ln),0,5)
      if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t'
        let b:fortran_fixed_source = 0
        break
      endif
      let s:ln = s:ln + 1
    endwhile
    unlet! s:lmax s:ln s:test
  endif
endif

syn case ignore

if b:fortran_fixed_source == 1
  syn match fortranConstructName	"^\s\{6,}\zs\a\w*\ze\s*:"
else
  syn match fortranConstructName	"^\s*\zs\a\w*\ze\s*:"
endif
if exists("fortran_more_precise")
  syn match fortranConstructName "\(\<end\s*do\s\+\)\@<=\a\w*"
  syn match fortranConstructName "\(\<end\s*if\s\+\)\@<=\a\w*"
  syn match fortranConstructName "\(\<end\s*select\s\+\)\@<=\a\w*"
endif

syn match fortranUnitHeader	"\<end\>"
syn match fortranType		"\<character\>"
syn match fortranType		"\<complex\>"
syn match fortranType		"\<integer\>"
syn keyword fortranType		intrinsic
syn match fortranType		"\<implicit\>"
syn keyword fortranStructure	dimension
syn keyword fortranStorageClass	parameter save
syn match fortranUnitHeader	"\<subroutine\>"
syn keyword fortranCall		call
syn match fortranUnitHeader	"\<function\>"
syn match fortranUnitHeader	"\<program\>"
syn match fortranUnitHeader	"\<block\>"
syn keyword fortranKeyword	return stop
syn keyword fortranConditional	else then
syn match fortranConditional	"\<if\>"
syn match fortranConditionalOb	"\<if\s*(.*)\s*\d\+\s*,\s*\d\+\s*,\s*\d\+\s*$"
syn match fortranRepeat		"\<do\>"

syn keyword fortranTodo		contained todo fixme

"Catch errors caused by too many right parentheses
syn region fortranParen transparent start="(" end=")" contains=ALLBUT,fortranParenError,@fortranCommentGroup,cIncluded,@spell
syn match  fortranParenError   ")"

syn match fortranOperator	"\.\s*n\=eqv\s*\."
syn match fortranOperator	"\.\s*\(and\|or\|not\)\s*\."
syn match fortranOperator	"\(+\|-\|/\|\*\)"
syn match fortranTypeOb		"\<character\s*\*"

syn match fortranBoolean	"\.\s*\(true\|false\)\s*\."

syn keyword fortranReadWrite	backspace close endfile inquire open print read rewind write

"If tabs are allowed then the left margin checks do not work
if exists("fortran_have_tabs")
  syn match fortranTab		"\t"  transparent
else
  syn match fortranTab		"\t"
endif

syn keyword fortranIO		access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit

syn keyword fortranIntrinsicR		alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl

" Intrinsics provided by some vendors
syn keyword fortranExtraIntrinsic	algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh

syn keyword fortranIntrinsic	abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh
syn match fortranIntrinsic	"\<len\s*[(,]"me=s+3
syn match fortranIntrinsic	"\<real\s*("me=s+4
syn match fortranType		"\<implicit\s\+real"
syn match fortranType		"^\s*real\>"
syn match fortranIntrinsic	"\<logical\s*("me=s+7
syn match fortranType		"\<implicit\s\+logical"
syn match fortranType		"^\s*logical\>"

"Numbers of various sorts
" Integers
syn match fortranNumber	display "\<\d\+\(_\a\w*\)\=\>"
" floating point number, without a decimal point
syn match fortranFloatIll	display	"\<\d\+[deq][-+]\=\d\+\(_\a\w*\)\=\>"
" floating point number, starting with a decimal point
syn match fortranFloatIll	display	"\.\d\+\([deq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
" floating point number, no digits after decimal
syn match fortranFloatIll	display	"\<\d\+\.\([deq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
" floating point number, D or Q exponents
syn match fortranFloatIll	display	"\<\d\+\.\d\+\([dq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
" floating point number
syn match fortranFloat	display	"\<\d\+\.\d\+\(e[-+]\=\d\+\)\=\(_\a\w*\)\=\>"
" Numbers in formats
syn match fortranFormatSpec	display	"\d*f\d\+\.\d\+"
syn match fortranFormatSpec	display	"\d*e[sn]\=\d\+\.\d\+\(e\d+\>\)\="
syn match fortranFormatSpec	display	"\d*\(d\|q\|g\)\d\+\.\d\+\(e\d+\)\="
syn match fortranFormatSpec	display	"\d\+x\>"
" The next match cannot be used because it would pick up identifiers as well
" syn match fortranFormatSpec	display	"\<\(a\|i\)\d\+"

" Numbers as labels
syn match fortranLabelNumber	display	"^\d\{1,5}\s"me=e-1
syn match fortranLabelNumber	display	"^ \d\{1,4}\s"ms=s+1,me=e-1
syn match fortranLabelNumber	display	"^  \d\{1,3}\s"ms=s+2,me=e-1
syn match fortranLabelNumber	display	"^   \d\d\=\s"ms=s+3,me=e-1
syn match fortranLabelNumber	display	"^    \d\s"ms=s+4,me=e-1

if exists("fortran_more_precise")
  " Numbers as targets
  syn match fortranTarget	display	"\(\<if\s*(.\+)\s*\)\@<=\(\d\+\s*,\s*\)\{2}\d\+\>"
  syn match fortranTarget	display	"\(\<do\s\+\)\@<=\d\+\>"
  syn match fortranTarget	display	"\(\<go\s*to\s*(\=\)\@<=\(\d\+\s*,\s*\)*\d\+\>"
endif

syn keyword fortranTypeR	external
syn keyword fortranIOR		format
syn match fortranKeywordR	"\<continue\>"
syn match fortranKeyword	"^\s*\d\+\s\+continue\>"
syn match fortranKeyword  	"\<go\s*to\>"
syn match fortranKeywordDel  	"\<go\s*to\ze\s\+.*,\s*(.*$"
syn match fortranKeywordOb  	"\<go\s*to\ze\s*(\d\+.*$"
syn region fortranStringR	start=+'+ end=+'+ contains=fortranContinueMark,fortranLeftMargin,fortranSerialNumber
syn keyword fortranIntrinsicR	dim lge lgt lle llt mod
syn keyword fortranKeywordDel	assign pause

syn match fortranType           "\<type\>"
syn keyword fortranType	        none

syn keyword fortranStructure	private public intent optional
syn keyword fortranStructure	pointer target allocatable
syn keyword fortranStorageClass	in out
syn match fortranStorageClass	"\<kind\s*="me=s+4
syn match fortranStorageClass	"\<len\s*="me=s+3

syn match fortranUnitHeader	"\<module\>"
syn match fortranUnitHeader	"\<submodule\>"
syn keyword fortranUnitHeader	use only contains
syn keyword fortranUnitHeader	result operator assignment
syn match fortranUnitHeader	"\<interface\>"
syn match fortranUnitHeader	"\<recursive\>"
syn keyword fortranKeyword	allocate deallocate nullify cycle exit
syn match fortranConditional	"\<select\>"
syn keyword fortranConditional	case default where elsewhere

syn match fortranOperator	"\(\(>\|<\)=\=\|==\|/=\|=\)"
syn match fortranOperator	"=>"

syn region fortranString	start=+"+ end=+"+	contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber
syn keyword fortranIO		pad position action delim readwrite
syn keyword fortranIO		eor advance nml

syn keyword fortranIntrinsic	adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack precision present product radix random_number random_seed range repeat reshape rrspacing
syn keyword fortranIntrinsic	scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify
syn match fortranIntrinsic		"\<not\>\(\s*\.\)\@!"me=s+3
syn match fortranIntrinsic	"\<kind\>\s*[(,]"me=s+4

syn match  fortranUnitHeader	"\<end\s*function"
syn match  fortranUnitHeader	"\<end\s*interface"
syn match  fortranUnitHeader	"\<end\s*module"
syn match  fortranUnitHeader	"\<end\s*submodule"
syn match  fortranUnitHeader	"\<end\s*program"
syn match  fortranUnitHeader	"\<end\s*subroutine"
syn match  fortranUnitHeader	"\<end\s*block"
syn match  fortranRepeat	"\<end\s*do"
syn match  fortranConditional	"\<end\s*where"
syn match  fortranConditional	"\<select\s*case"
syn match  fortranConditional	"\<end\s*select"
syn match  fortranType	"\<end\s*type"
syn match  fortranType	"\<in\s*out"

syn keyword fortranType	        procedure
syn match  fortranType	        "\<module\ze\s\+procedure\>"
syn keyword fortranIOR		namelist
syn keyword fortranConditionalR	while
syn keyword fortranIntrinsicR	achar iachar transfer

syn keyword fortranInclude		include
syn keyword fortranStorageClassR	sequence

syn match   fortranConditional	"\<end\s*if"
syn match   fortranIO		contains=fortranOperator "\<e\(nd\|rr\)\s*=\s*\d\+"
syn match   fortranConditional	"\<else\s*if"

syn keyword fortranUnitHeaderOb	entry
syn match fortranTypeR		display "double\s\+precision"
syn match fortranTypeR		display "double\s\+complex"
syn match fortranUnitHeaderR	display "block\s\+data"
syn keyword fortranStorageClassR	common equivalence data
syn keyword fortranIntrinsicR	dble dprod
syn match   fortranOperatorR	"\.\s*[gl][et]\s*\."
syn match   fortranOperatorR	"\.\s*\(eq\|ne\)\s*\."

syn keyword fortranRepeat		forall
syn match fortranRepeat		"\<end\s*forall"
syn keyword fortranIntrinsic	null cpu_time
syn match fortranType			"\<elemental\>"
syn match fortranType			"\<pure\>"
syn match fortranType			"\<impure\>"
if exists("fortran_more_precise")
  syn match fortranConstructName "\(\<end\s*forall\s\+\)\@<=\a\w*\>"
endif

if b:fortran_dialect == "f08"
  " F2003
  syn keyword fortranIntrinsic        command_argument_count get_command get_command_argument get_environment_variable is_iostat_end is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of
  " ISO_C_binding
  syn keyword fortranConstant         c_null_char c_alert c_backspace c_form_feed c_new_line c_carriage_return c_horizontal_tab c_vertical_tab
  syn keyword fortranConstant         c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr
  syn keyword fortranIntrinsic        iso_c_binding c_loc c_funloc c_associated  c_f_pointer c_f_procpointer
  syn keyword fortranType             c_ptr c_funptr
  " ISO_Fortran_env
  syn keyword fortranConstant         iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit
  " IEEE_arithmetic
  syn keyword fortranIntrinsic        ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode

  syn keyword fortranReadWrite	flush wait
  syn keyword fortranIO 	      decimal round iomsg
  syn keyword fortranType             asynchronous nopass non_overridable pass protected volatile extends import
  syn keyword fortranType             non_intrinsic value bind deferred generic final enumerator
  syn match fortranType               "\<abstract\>"
  syn match fortranType               "\<class\>"
  syn match fortranType               "\<associate\>"
  syn match fortranType               "\<end\s*associate"
  syn match fortranType               "\<enum\s*,\s*bind\s*(\s*c\s*)"
  syn match fortranType               "\<end\s*enum"
  syn match fortranConditional	"\<select\s*type"
  syn match fortranConditional        "\<type\s*is\>"
  syn match fortranConditional        "\<class\s*is\>"
  syn match fortranUnitHeader         "\<abstract\s*interface\>"
  syn match fortranOperator           "\([\|]\)"

  " F2008
  syn keyword fortranIntrinsic        acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2
  syn keyword fortranIntrinsic        atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits
  syn keyword fortranIntrinsic        bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image
  syn keyword fortranIO               newunit
  syn keyword fortranType             contiguous
  syn keyword fortranRepeat           concurrent

" CUDA fortran
  syn match fortranTypeCUDA           "\<attributes\>"
  syn keyword fortranTypeCUDA         host global device value
  syn keyword fortranTypeCUDA         shared constant pinned texture
  syn keyword fortranTypeCUDA         dim1 dim2 dim3 dim4
  syn keyword fortranTypeCUDA         cudadeviceprop cuda_count_kind cuda_stream_kind
  syn keyword fortranTypeCUDA         cudaEvent cudaFuncAttributes cudaArrayPtr
  syn keyword fortranTypeCUDA         cudaSymbol cudaChannelFormatDesc cudaPitchedPtr
  syn keyword fortranTypeCUDA         cudaExtent cudaMemcpy3DParms
  syn keyword fortranTypeCUDA         cudaFuncCachePreferNone cudaFuncCachePreferShared
  syn keyword fortranTypeCUDA         cudaFuncCachePreferL1 cudaLimitStackSize
  syn keyword fortranTypeCUDA         cudaLimitPrintfSize cudaLimitMallocHeapSize
  syn keyword fortranTypeCUDA         cudaSharedMemBankSizeDefault cudaSharedMemBankSizeFourByte cudaSharedMemBankSizeEightByte
  syn keyword fortranTypeCUDA         cudaEventDefault cudaEventBlockingSync cudaEventDisableTiming
  syn keyword fortranTypeCUDA         cudaMemcpyHostToDevice cudaMemcpyDeviceToHost
  syn keyword fortranTypeCUDA         cudaMemcpyDeviceToDevice
  syn keyword fortranTypeCUDA         cudaErrorNotReady cudaSuccess cudaErrorInvalidValue
  syn keyword fortranTypeCUDA         c_devptr

  syn match fortranStringCUDA         "blockidx%[xyz]"
  syn match fortranStringCUDA         "blockdim%[xyz]"
  syn match fortranStringCUDA         "griddim%[xyz]"
  syn match fortranStringCUDA         "threadidx%[xyz]"

  syn keyword fortranIntrinsicCUDA    warpsize syncthreads syncthreads_and syncthreads_count syncthreads_or threadfence threadfence_block threadfence_system gpu_time allthreads anythread ballot
  syn keyword fortranIntrinsicCUDA    atomicadd atomicsub atomicmax atomicmin atomicand atomicor atomicxor atomicexch atomicinc atomicdec atomiccas sizeof __shfl __shfl_up __shfl_down __shfl_xor
  syn keyword fortranIntrinsicCUDA    cudaChooseDevice cudaDeviceGetCacheConfig cudaDeviceGetLimit cudaDeviceGetSharedMemConfig cudaDeviceReset cudaDeviceSetCacheConfig cudaDeviceSetLimit cudaDeviceSetSharedMemConfig cudaDeviceSynchronize cudaGetDevice cudaGetDeviceCount cudaGetDeviceProperties cudaSetDevice cudaSetDeviceFlags cudaSetValidDevices
  syn keyword fortranIntrinsicCUDA    cudaThreadExit cudaThreadSynchronize cudaGetLastError cudaGetErrorString cudaPeekAtLastError cudaStreamCreate cudaStreamDestroy cudaStreamQuery cudaStreamSynchronize cudaStreamWaitEvent cudaEventCreate cudaEventCreateWithFlags cudaEventDestroy cudaEventElapsedTime cudaEventQuery cudaEventRecord cudaEventSynchronize
  syn keyword fortranIntrinsicCUDA    cudaFuncGetAttributes cudaFuncSetCacheConfig cudaFuncSetSharedMemConfig cudaSetDoubleForDevice cudaSetDoubleForHost cudaFree cudaFreeArray cudaFreeHost cudaGetSymbolAddress cudaGetSymbolSize
  syn keyword fortranIntrinsicCUDA    cudaHostAlloc cudaHostGetDevicePointer cudaHostGetFlags cudaHostRegister cudaHostUnregister cudaMalloc cudaMallocArray cudaMallocHost cudaMallocPitch cudaMalloc3D cudaMalloc3DArray
  syn keyword fortranIntrinsicCUDA    cudaMemcpy cudaMemcpyArraytoArray cudaMemcpyAsync cudaMemcpyFromArray cudaMemcpyFromSymbol cudaMemcpyFromSymbolAsync cudaMemcpyPeer cudaMemcpyPeerAsync cudaMemcpyToArray cudaMemcpyToSymbol cudaMemcpyToSymbolAsync cudaMemcpy2D cudaMemcpy2DArrayToArray cudaMemcpy2DAsync cudaMemcpy2DFromArray cudaMemcpy2DToArray cudaMemcpy3D cudaMemcpy3DAsync
  syn keyword fortranIntrinsicCUDA    cudaMemGetInfo cudaMemset cudaMemset2D cudaMemset3D cudaDeviceCanAccessPeer cudaDeviceDisablePeerAccess cudaDeviceEnablePeerAccess cudaPointerGetAttributes cudaDriverGetVersion cudaRuntimeGetVersion

  syn region none matchgroup=fortranType start="<<<" end=">>>" contains=ALLBUT,none
endif

syn cluster fortranCommentGroup contains=fortranTodo

if (b:fortran_fixed_source == 1)
  if !exists("fortran_have_tabs")
    "Flag items beyond column 72
    syn match fortranSerialNumber	excludenl "^.\{73,}$"lc=72
    "Flag left margin errors
    syn match fortranLabelError	"^.\{-,4}[^0-9 ]" contains=fortranTab
    syn match fortranLabelError	"^.\{4}\d\S"
  endif
  syn match fortranComment		excludenl "^[!c*].*$" contains=@fortranCommentGroup,@spell
  syn match fortranLeftMargin		transparent "^ \{5}"
  syn match fortranContinueMark		display "^.\{5}\S"lc=5
else
  syn match fortranContinueMark		display "&"
endif

syn match fortranComment	excludenl "!.*$" contains=@fortranCommentGroup,@spell
syn match fortranOpenMP		excludenl 		"^\s*!\$\(OMP\)\=&\=\s.*$"

"cpp is often used with Fortran
syn match	cPreProc		"^\s*#\s*\(define\|ifdef\)\>.*"
syn match	cPreProc		"^\s*#\s*\(elif\|if\)\>.*"
syn match	cPreProc		"^\s*#\s*\(ifndef\|undef\)\>.*"
syn match	cPreCondit		"^\s*#\s*\(else\|endif\)\>.*"
syn region	cIncluded	contained start=+"[^(]+ skip=+\\\\\|\\"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber
syn match	cIncluded		contained "<[^>]*>"
syn match	cInclude		"^\s*#\s*include\>\s*["<]" contains=cIncluded

"Synchronising limits assume that comment and continuation lines are not mixed
if exists("fortran_fold") || exists("fortran_more_precise")
  syn sync fromstart
elseif (b:fortran_fixed_source == 0)
  syn sync linecont "&" minlines=30
else
  syn sync minlines=30
endif

if exists("fortran_fold")

  if (b:fortran_fixed_source == 1)
    syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
    syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(submodule\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram,fortranModule
    syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
    syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
    syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
    syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
    syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
    syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
    syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
  else
    syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
    syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(submodule\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram,fortranModule
    syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
    syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
    syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
    syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
    syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\s*[!#].*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
    syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
    syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
  endif

  if exists("fortran_fold_conditionals")
    if (b:fortran_fixed_source == 1)
      syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
      syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
      syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(.\+)\s*then\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
      syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
    else
      syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
      syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\s*[!#].*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
      syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(\(.\|&\s*\n\)\+)\(\s\|&\s*\n\)*then\>" skip="^\s*[!#].*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
      syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
    endif
  endif

  if exists("fortran_fold_multilinecomments")
    if (b:fortran_fixed_source == 1)
      syn match fortranMultiLineComments transparent fold "\(^[!c*].*\(\n\|\%$\)\)\{4,}" contains=ALLBUT,fortranMultiCommentLines
    else
      syn match fortranMultiLineComments transparent fold "\(^\s*!.*\(\n\|\%$\)\)\{4,}" contains=ALLBUT,fortranMultiCommentLines
    endif
  endif
endif

" Define the default highlighting.
" The default highlighting differs for each dialect.
" Transparent groups:
" fortranParen, fortranLeftMargin
" fortranProgram, fortranModule, fortranSubroutine, fortranFunction,
" fortranBlockData
" fortran77Loop, fortran90Loop, fortranIfBlock, fortranCase
" fortranMultiCommentLines
hi def link fortranKeyword 	Keyword
hi def link fortranConstructName	Identifier
hi def link fortranConditional	Conditional
hi def link fortranRepeat	Repeat
hi def link fortranTodo		Todo
hi def link fortranContinueMark	Special
hi def link fortranString	String
hi def link fortranNumber	Number
hi def link fortranOperator	Operator
hi def link fortranBoolean	Boolean
hi def link fortranLabelError	Error
hi def link fortranObsolete	Todo
hi def link fortranType		Type
hi def link fortranStructure	Type
hi def link fortranStorageClass	StorageClass
hi def link fortranCall		Function
hi def link fortranUnitHeader	fortranPreCondit
hi def link fortranReadWrite	Keyword
hi def link fortranIO		Keyword
hi def link fortranIntrinsic	Function
hi def link fortranConstant	Constant

" To stop deleted & obsolescent features being highlighted as Todo items,
" comment out the next 5 lines and uncomment the 5 lines after that
hi def link fortranUnitHeaderOb    fortranObsolete
hi def link fortranKeywordOb       fortranObsolete
hi def link fortranConditionalOb   fortranObsolete
hi def link fortranTypeOb          fortranObsolete
hi def link fortranKeywordDel      fortranObsolete
"hi def link fortranUnitHeaderOb    fortranUnitHeader
"hi def link fortranKeywordOb       fortranKeyword
"hi def link fortranConditionalOb   fortranConditional
"hi def link fortranTypeOb          fortranType
"hi def link fortranKeywordDel      fortranKeyword

if b:fortran_dialect == "F"
  hi! def link fortranIntrinsicR	fortranObsolete
  hi! def link fortranUnitHeaderR	fortranObsolete
  hi! def link fortranTypeR		fortranObsolete
  hi! def link fortranStorageClassR	fortranObsolete
  hi! def link fortranOperatorR 	fortranObsolete
  hi! def link fortranInclude   	fortranObsolete
  hi! def link fortranLabelNumber	fortranObsolete
  hi! def link fortranTarget	        fortranObsolete
  hi! def link fortranFloatIll	        fortranObsolete
  hi! def link fortranIOR		fortranObsolete
  hi! def link fortranKeywordR	        fortranObsolete
  hi! def link fortranStringR	        fortranObsolete
  hi! def link fortranConditionalR	fortranObsolete
else
  hi! def link fortranIntrinsicR	fortranIntrinsic
  hi! def link fortranUnitHeaderR	fortranPreCondit
  hi! def link fortranTypeR		fortranType
  hi! def link fortranStorageClassR	fortranStorageClass
  hi! def link fortranOperatorR	        fortranOperator
  hi! def link fortranInclude	        Include
  hi! def link fortranLabelNumber	Special
  hi! def link fortranTarget	        Special
  hi! def link fortranFloatIll	        fortranFloat
  hi! def link fortranIOR		fortranIO
  hi! def link fortranKeywordR	        fortranKeyword
  hi! def link fortranStringR	        fortranString
  hi! def link fortranConditionalR	fortranConditional
endif

" CUDA
hi def link fortranIntrinsicCUDA        fortranIntrinsic
hi def link fortranTypeCUDA             fortranType
hi def link fortranStringCUDA           fortranString

hi def link fortranFormatSpec	Identifier
hi def link fortranFloat	Float
hi def link fortranPreCondit	PreCondit
hi def link cIncluded		fortranString
hi def link cInclude		Include
hi def link cPreProc		PreProc
hi def link cPreCondit		PreCondit
hi def link fortranOpenMP       PreProc
hi def link fortranParenError	Error
hi def link fortranComment	Comment
hi def link fortranSerialNumber	Todo
hi def link fortranTab		Error

" Uncomment the next line if you use extra intrinsics provided by vendors
"hi def link fortranExtraIntrinsic	Function

let b:current_syntax = "fortran"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 tw=132
PK�j�Z?p<�3�3vim80/syntax/ldapconf.vimnu�[���" Vim syntax file
" Language:             ldap.conf(5) configuration file.
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-12-11

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword ldapconfTodo          contained TODO FIXME XXX NOTE

syn region  ldapconfComment       display oneline start='^\s*#' end='$'
      \                           contains=ldapconfTodo,
      \                                    @Spell

syn match   ldapconfBegin         display '^'
      \                           nextgroup=ldapconfOption,
      \                                     ldapconfDeprOption,
      \                                     ldapconfComment

syn case    ignore

syn keyword ldapconfOption        contained URI 
      \                           nextgroup=ldapconfURI
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           BASE
      \                           BINDDN
      \                           nextgroup=ldapconfDNAttrType
      \                           skipwhite

syn keyword ldapconfDeprOption    contained 
      \                           HOST
      \                           nextgroup=ldapconfHost
      \                           skipwhite

syn keyword ldapconfDeprOption    contained
      \                           PORT
      \                           nextgroup=ldapconfPort
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           REFERRALS
      \                           nextgroup=ldapconfBoolean
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           SIZELIMIT
      \                           TIMELIMIT
      \                           nextgroup=ldapconfInteger
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           DEREF
      \                           nextgroup=ldapconfDerefWhen
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           SASL_MECH
      \                           nextgroup=ldapconfSASLMechanism
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           SASL_REALM
      \                           nextgroup=ldapconfSASLRealm
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           SASL_AUTHCID
      \                           SASL_AUTHZID
      \                           nextgroup=ldapconfSASLAuthID
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           SASL_SECPROPS
      \                           nextgroup=ldapconfSASLSecProps
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           TLS_CACERT
      \                           TLS_CERT
      \                           TLS_KEY
      \                           TLS_RANDFILE
      \                           nextgroup=ldapconfFilename
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           TLS_CACERTDIR
      \                           nextgroup=ldapconfPath
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           TLS_CIPHER_SUITE
      \                           nextgroup=@ldapconfTLSCipher
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           TLS_REQCERT
      \                           nextgroup=ldapconfTLSCertCheck
      \                           skipwhite

syn keyword ldapconfOption        contained
      \                           TLS_CRLCHECK
      \                           nextgroup=ldapconfTLSCRLCheck
      \                           skipwhite

syn case    match

syn match   ldapconfURI           contained display
      \                           'ldaps\=://[^[:space:]:]\+\%(:\d\+\)\='
      \                           nextgroup=ldapconfURI
      \                           skipwhite

" LDAP Distinguished Names are defined in Section 3 of RFC 2253:
" http://www.ietf.org/rfc/rfc2253.txt.
syn match   ldapconfDNAttrType    contained display
      \                           '\a[a-zA-Z0-9-]\+\|\d\+\%(\.\d\+\)*'
      \                           nextgroup=ldapconfDNAttrTypeEq

syn match   ldapconfDNAttrTypeEq  contained display
      \                           '='
      \                           nextgroup=ldapconfDNAttrValue

syn match   ldapconfDNAttrValue   contained display
      \                           '\%([^,=+<>#;\\"]\|\\\%([,=+<>#;\\"]\|\x\x\)\)*\|#\%(\x\x\)\+\|"\%([^\\"]\|\\\%([,=+<>#;\\"]\|\x\x\)\)*"'
      \                           nextgroup=ldapconfDNSeparator

syn match   ldapconfDNSeparator   contained display
      \                           '[+,]'
      \                           nextgroup=ldapconfDNAttrType

syn match   ldapconfHost          contained display
      \                           '[^[:space:]:]\+\%(:\d\+\)\='
      \                           nextgroup=ldapconfHost
      \                           skipwhite

syn match   ldapconfPort          contained display
      \                           '\d\+'

syn keyword ldapconfBoolean       contained
      \                           on
      \                           true
      \                           yes
      \                           off
      \                           false
      \                           no

syn match   ldapconfInteger       contained display
      \                           '\d\+'

syn keyword ldapconfDerefWhen     contained
      \                           never
      \                           searching
      \                           finding
      \                           always

" Taken from http://www.iana.org/assignments/sasl-mechanisms.
syn keyword ldapconfSASLMechanism contained
      \                           KERBEROS_V4
      \                           GSSAPI
      \                           SKEY
      \                           EXTERNAL
      \                           ANONYMOUS
      \                           OTP
      \                           PLAIN
      \                           SECURID
      \                           NTLM
      \                           NMAS_LOGIN
      \                           NMAS_AUTHEN
      \                           KERBEROS_V5

syn match   ldapconfSASLMechanism contained display
      \                           'CRAM-MD5\|GSS-SPNEGO\|DIGEST-MD5\|9798-[UM]-\%(RSA-SHA1-ENC\|\%(EC\)\=DSA-SHA1\)\|NMAS-SAMBA-AUTH'

" TODO: I have been unable to find a definition for a SASL realm,
" authentication identity, and proxy authorization identity.
syn match   ldapconfSASLRealm     contained display
      \                           '\S\+'

syn match   ldapconfSASLAuthID    contained display
      \                           '\S\+'

syn keyword ldapconfSASLSecProps  contained
      \                           none
      \                           noplain
      \                           noactive
      \                           nodict
      \                           noanonymous
      \                           forwardsec
      \                           passcred
      \                           nextgroup=ldapconfSASLSecPSep

syn keyword ldapconfSASLSecProps  contained
      \                           minssf
      \                           maxssf
      \                           maxbufsize
      \                           nextgroup=ldapconfSASLSecPEq

syn match   ldapconfSASLSecPEq    contained display
      \                           '='
      \                           nextgroup=ldapconfSASLSecFactor

syn match   ldapconfSASLSecFactor contained display
      \                           '\d\+'
      \                           nextgroup=ldapconfSASLSecPSep

syn match   ldapconfSASLSecPSep   contained display
      \                           ','
      \                           nextgroup=ldapconfSASLSecProps

syn match   ldapconfFilename      contained display
      \                           '.\+'

syn match   ldapconfPath          contained display
      \                           '.\+'

" Defined in openssl-ciphers(1).
" TODO: Should we include the stuff under CIPHER SUITE NAMES?
syn cluster ldapconfTLSCipher     contains=ldapconfTLSCipherOp,
      \                                    ldapconfTLSCipherName,
      \                                    ldapconfTLSCipherSort

syn match   ldapconfTLSCipherOp   contained display
      \                           '[+!-]'
      \                           nextgroup=ldapconfTLSCipherName

syn keyword ldapconfTLSCipherName contained
      \                           DEFAULT
      \                           COMPLEMENTOFDEFAULT
      \                           ALL
      \                           COMPLEMENTOFALL
      \                           HIGH
      \                           MEDIUM
      \                           LOW
      \                           EXP
      \                           EXPORT
      \                           EXPORT40
      \                           EXPORT56
      \                           eNULL
      \                           NULL
      \                           aNULL
      \                           kRSA
      \                           RSA
      \                           kEDH
      \                           kDHr
      \                           kDHd
      \                           aRSA
      \                           aDSS
      \                           DSS
      \                           aDH
      \                           kFZA
      \                           aFZA
      \                           eFZA
      \                           FZA
      \                           TLSv1
      \                           SSLv3
      \                           SSLv2
      \                           DH
      \                           ADH
      \                           AES
      \                           3DES
      \                           DES
      \                           RC4
      \                           RC2
      \                           IDEA
      \                           MD5
      \                           SHA1
      \                           SHA
      \                           Camellia
      \                           nextgroup=ldapconfTLSCipherSep

syn match   ldapconfTLSCipherSort contained display
      \                           '@STRENGTH'
      \                           nextgroup=ldapconfTLSCipherSep

syn match   ldapconfTLSCipherSep  contained display
      \                           '[:, ]'
      \                           nextgroup=@ldapconfTLSCipher

syn keyword ldapconfTLSCertCheck  contained
      \                           never
      \                           allow
      \                           try
      \                           demand
      \                           hard

syn keyword ldapconfTLSCRLCheck   contained
      \                           none
      \                           peer
      \                           all

hi def link ldapconfTodo          Todo
hi def link ldapconfComment       Comment
hi def link ldapconfOption        Keyword
hi def link ldapconfDeprOption    Error
hi def link ldapconfString        String
hi def link ldapconfURI           ldapconfString
hi def link ldapconfDNAttrType    Identifier
hi def link ldapconfOperator      Operator
hi def link ldapconfEq            ldapconfOperator
hi def link ldapconfDNAttrTypeEq  ldapconfEq
hi def link ldapconfValue         ldapconfString
hi def link ldapconfDNAttrValue   ldapconfValue
hi def link ldapconfSeparator     ldapconfOperator
hi def link ldapconfDNSeparator   ldapconfSeparator
hi def link ldapconfHost          ldapconfURI
hi def link ldapconfNumber        Number
hi def link ldapconfPort          ldapconfNumber
hi def link ldapconfBoolean       Boolean
hi def link ldapconfInteger       ldapconfNumber
hi def link ldapconfType          Type
hi def link ldapconfDerefWhen     ldapconfType
hi def link ldapconfDefine        Define
hi def link ldapconfSASLMechanism ldapconfDefine
hi def link ldapconfSASLRealm     ldapconfURI
hi def link ldapconfSASLAuthID    ldapconfValue
hi def link ldapconfSASLSecProps  ldapconfType
hi def link ldapconfSASLSecPEq    ldapconfEq
hi def link ldapconfSASLSecFactor ldapconfNumber
hi def link ldapconfSASLSecPSep   ldapconfSeparator
hi def link ldapconfFilename      ldapconfString
hi def link ldapconfPath          ldapconfFilename
hi def link ldapconfTLSCipherOp   ldapconfOperator
hi def link ldapconfTLSCipherName ldapconfDefine
hi def link ldapconfSpecial       Special
hi def link ldapconfTLSCipherSort ldapconfSpecial
hi def link ldapconfTLSCipherSep  ldapconfSeparator
hi def link ldapconfTLSCertCheck  ldapconfType
hi def link ldapconfTLSCRLCheck   ldapconfType

let b:current_syntax = "ldapconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZM֫���vim80/syntax/uc.vimnu�[���" Vim syntax file
" Language:	UnrealScript
" Maintainer:	Mark Ferrell <major@chaoticdreams.org>
" URL:		ftp://ftp.chaoticdreams.org/pub/ut/vim/uc.vim
" Credits:	Based on the java.vim syntax file by Claudio Fleiner
" Last change:	2003 May 31

" Please check :help uc.vim for comments on some of the options available.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" some characters that cannot be in a UnrealScript program (outside a string)
syn match ucError "[\\@`]"
syn match ucError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"

" we define it here so that included files can test for it
if !exists("main_syntax")
  let main_syntax='uc'
endif

syntax case ignore

" keyword definitions
syn keyword ucBranch	      break continue
syn keyword ucConditional     if else switch
syn keyword ucRepeat	      while for do foreach
syn keyword ucBoolean	      true false
syn keyword ucConstant	      null
syn keyword ucOperator	      new instanceof
syn keyword ucType	      boolean char byte short int long float double
syn keyword ucType	      void Pawn sound state auto exec function ipaddr
syn keyword ucType	      ELightType actor ammo defaultproperties bool
syn keyword ucType	      native noexport var out vector name local string
syn keyword ucType	      event
syn keyword ucStatement       return
syn keyword ucStorageClass    static synchronized transient volatile final
syn keyword ucMethodDecl      synchronized throws

" UnrealScript defines classes in sorta fscked up fashion
syn match   ucClassDecl       "^[Cc]lass[\s$]*\S*[\s$]*expands[\s$]*\S*;" contains=ucSpecial,ucSpecialChar,ucClassKeys
syn keyword ucClassKeys	      class expands extends
syn match   ucExternal	      "^\#exec.*" contains=ucCommentString,ucNumber
syn keyword ucScopeDecl       public protected private abstract

" UnrealScript Functions
syn match   ucFuncDef	      "^.*function\s*[\(]*" contains=ucType,ucStorageClass
syn match   ucEventDef	      "^.*event\s*[\(]*" contains=ucType,ucStorageClass
syn match   ucClassLabel      "[a-zA-Z0-9]*\'[a-zA-Z0-9]*\'" contains=ucCharacter

syn region  ucLabelRegion     transparent matchgroup=ucLabel start="\<case\>" matchgroup=NONE end=":" contains=ucNumber
syn match   ucUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=ucLabel
syn keyword ucLabel	      default

" The following cluster contains all java groups except the contained ones
syn cluster ucTop contains=ucExternal,ucError,ucError,ucBranch,ucLabelRegion,ucLabel,ucConditional,ucRepeat,ucBoolean,ucConstant,ucTypedef,ucOperator,ucType,ucType,ucStatement,ucStorageClass,ucMethodDecl,ucClassDecl,ucClassDecl,ucClassDecl,ucScopeDecl,ucError,ucError2,ucUserLabel,ucClassLabel

" Comments
syn keyword ucTodo	       contained TODO FIXME XXX
syn region  ucCommentString    contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=ucSpecial,ucCommentStar,ucSpecialChar
syn region  ucComment2String   contained start=+"+  end=+$\|"+  contains=ucSpecial,ucSpecialChar
syn match   ucCommentCharacter contained "'\\[^']\{1,6\}'" contains=ucSpecialChar
syn match   ucCommentCharacter contained "'\\''" contains=ucSpecialChar
syn match   ucCommentCharacter contained "'[^\\]'"
syn region  ucComment	       start="/\*"  end="\*/" contains=ucCommentString,ucCommentCharacter,ucNumber,ucTodo
syn match   ucCommentStar      contained "^\s*\*[^/]"me=e-1
syn match   ucCommentStar      contained "^\s*\*$"
syn match   ucLineComment      "//.*" contains=ucComment2String,ucCommentCharacter,ucNumber,ucTodo
hi link ucCommentString ucString
hi link ucComment2String ucString
hi link ucCommentCharacter ucCharacter

syn cluster ucTop add=ucComment,ucLineComment

" match the special comment /**/
syn match   ucComment	       "/\*\*/"

" Strings and constants
syn match   ucSpecialError     contained "\\."
"syn match   ucSpecialCharError contained "[^']"
syn match   ucSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
syn region  ucString	       start=+"+ end=+"+  contains=ucSpecialChar,ucSpecialError
syn match   ucStringError      +"\([^"\\]\|\\.\)*$+
syn match   ucCharacter        "'[^']*'" contains=ucSpecialChar,ucSpecialCharError
syn match   ucCharacter        "'\\''" contains=ucSpecialChar
syn match   ucCharacter        "'[^\\]'"
syn match   ucNumber	       "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
syn match   ucNumber	       "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
syn match   ucNumber	       "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match   ucNumber	       "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"

" unicode characters
syn match   ucSpecial "\\u\d\{4\}"

syn cluster ucTop add=ucString,ucCharacter,ucNumber,ucSpecial,ucStringError

" catch errors caused by wrong parenthesis
syn region  ucParen	       transparent start="(" end=")" contains=@ucTop,ucParen
syn match   ucParenError       ")"
hi link     ucParenError       ucError

if !exists("uc_minlines")
  let uc_minlines = 10
endif
exec "syn sync ccomment ucComment minlines=" . uc_minlines

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link ucFuncDef			Conditional
hi def link ucEventDef			Conditional
hi def link ucBraces			Function
hi def link ucBranch			Conditional
hi def link ucLabel			Label
hi def link ucUserLabel			Label
hi def link ucConditional			Conditional
hi def link ucRepeat			Repeat
hi def link ucStorageClass			StorageClass
hi def link ucMethodDecl			ucStorageClass
hi def link ucClassDecl			ucStorageClass
hi def link ucScopeDecl			ucStorageClass
hi def link ucBoolean			Boolean
hi def link ucSpecial			Special
hi def link ucSpecialError			Error
hi def link ucSpecialCharError		Error
hi def link ucString			String
hi def link ucCharacter			Character
hi def link ucSpecialChar			SpecialChar
hi def link ucNumber			Number
hi def link ucError			Error
hi def link ucStringError			Error
hi def link ucStatement			Statement
hi def link ucOperator			Operator
hi def link ucOverLoaded			Operator
hi def link ucComment			Comment
hi def link ucDocComment			Comment
hi def link ucLineComment			Comment
hi def link ucConstant			ucBoolean
hi def link ucTypedef			Typedef
hi def link ucTodo				Todo

hi def link ucCommentTitle			SpecialComment
hi def link ucDocTags			Special
hi def link ucDocParam			Function
hi def link ucCommentStar			ucComment

hi def link ucType				Type
hi def link ucExternal			Include

hi def link ucClassKeys			Conditional
hi def link ucClassLabel			Conditional

hi def link htmlComment			Special
hi def link htmlCommentPart		Special


let b:current_syntax = "uc"

if main_syntax == 'uc'
  unlet main_syntax
endif

" vim: ts=8
PK�j�Z���O��vim80/syntax/hex.vimnu�[���" Vim syntax file
" Language:	Intel HEX
" Maintainer:	Markus Heidelberg <markus.heidelberg@web.de>
" Previous version:	Sams Ricahrd <sams@ping.at>
" Last Change:	2015 Feb 24

" Each record (line) is built as follows:
"
"    field       digits          states
"
"  +----------+
"  | start    |  1 (':')         hexRecStart
"  +----------+
"  | count    |  2               hexDataByteCount
"  +----------+
"  | address  |  4               hexNoAddress, hexDataAddress, (hexAddressFieldUnknown)
"  +----------+
"  | type     |  2               hexRecType, (hexRecTypeUnknown)
"  +----------+
"  | data     |  0..510          hexDataOdd, hexDataEven, hexExtendedAddress, hexStartAddress, (hexDataFieldUnknown, hexDataUnexpected)
"  +----------+
"  | checksum |  2               hexChecksum
"  +----------+
"
" States in parentheses in the upper format description indicate that they
" should not appear in a valid file.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match hexRecStart "^:"

syn match hexDataByteCount "^:[0-9a-fA-F]\{2}" contains=hexRecStart nextgroup=hexAddress

syn match hexAddress "[0-9a-fA-F]\{4}" transparent contained nextgroup=hexRecTypeUnknown,hexRecType
" The address field groups include the record type field in the last 2
" characters, the proper match for highlighting follows below.
syn match hexAddressFieldUnknown "^:[0-9a-fA-F]\{8}"      contains=hexDataByteCount nextgroup=hexDataFieldUnknown,hexChecksum
syn match hexDataAddress         "^:[0-9a-fA-F]\{6}00"    contains=hexDataByteCount nextgroup=hexDataOdd,hexChecksum
syn match hexNoAddress           "^:[0-9a-fA-F]\{6}01"    contains=hexDataByteCount nextgroup=hexDataUnexpected,hexChecksum
syn match hexNoAddress           "^:[0-9a-fA-F]\{6}0[24]" contains=hexDataByteCount nextgroup=hexExtendedAddress
syn match hexNoAddress           "^:[0-9a-fA-F]\{6}0[35]" contains=hexDataByteCount nextgroup=hexStartAddress

syn match hexRecTypeUnknown "[0-9a-fA-F]\{2}" contained
syn match hexRecType        "0[0-5]"          contained

syn match hexDataFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=hexDataFieldUnknown,hexChecksum
" alternating highlight per byte for easier reading
syn match hexDataOdd          "[0-9a-fA-F]\{2}" contained nextgroup=hexDataEven,hexChecksum
syn match hexDataEven         "[0-9a-fA-F]\{2}" contained nextgroup=hexDataOdd,hexChecksum
" data bytes which should not exist
syn match hexDataUnexpected   "[0-9a-fA-F]\{2}" contained nextgroup=hexDataUnexpected,hexChecksum
" Data digit pair regex usage also results in only highlighting the checksum
" if the number of data characters is even.

" special data fields
syn match hexExtendedAddress "[0-9a-fA-F]\{4}" contained nextgroup=hexDataUnexpected,hexChecksum
syn match hexStartAddress    "[0-9a-fA-F]\{8}" contained nextgroup=hexDataUnexpected,hexChecksum

syn match hexChecksum "[0-9a-fA-F]\{2}$" contained

" Folding Data Records below an Extended Segment/Linear Address Record
syn region hexExtAdrBlock start="^:[0-9a-fA-F]\{7}[24]" skip="^:[0-9a-fA-F]\{7}0" end="^:"me=s-1 fold transparent

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting. Can be overridden later
hi def link hexRecStart            hexRecType
hi def link hexDataByteCount       Constant
hi def hexAddressFieldUnknown term=italic cterm=italic gui=italic
hi def link hexDataAddress         Comment
hi def link hexNoAddress           DiffAdd
hi def link hexRecTypeUnknown      hexRecType
hi def link hexRecType             WarningMsg
hi def hexDataFieldUnknown    term=italic cterm=italic gui=italic
hi def hexDataOdd             term=bold cterm=bold gui=bold
hi def hexDataEven            term=NONE cterm=NONE gui=NONE
hi def link hexDataUnexpected      Error
hi def link hexExtendedAddress     hexDataAddress
hi def link hexStartAddress        hexDataAddress
hi def link hexChecksum            DiffChange


let b:current_syntax = "hex"

" vim: ts=8
PK�j�Zi��c�cvim80/syntax/texinfo.vimnu�[���" Vim syntax file
" Language:	Texinfo (macro package for TeX)
" Maintainer:	Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
" URL:		<->
" Last Change:	2004 Jun 23
"
" the file follows the Texinfo manual structure; this file is based
" on manual for Texinfo version 4.0, 28 September 1999
" since @ can have special meanings, everything is 'match'-ed and 'region'-ed
" (including @ in 'iskeyword' option has unexpected effects)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'texinfo'
endif

"in Texinfo can be real big things, like tables; sync for that
syn sync lines=200

"some general stuff
"syn match texinfoError     "\S" contained TODO
syn match texinfoIdent	    "\k\+"		  contained "IDENTifier
syn match texinfoAssignment "\k\+\s*=\s*\k\+\s*$" contained "assigment statement ( var = val )
syn match texinfoSinglePar  "\k\+\s*$"		  contained "single parameter (used for several @-commands)
syn match texinfoIndexPar   "\k\k\s*$"		  contained "param. used for different *index commands (+ @documentlanguage command)


"marking words and phrases (chap. 9 in Texinfo manual)
"(almost) everything appears as 'contained' too; is for tables (@table)

"this chapter is at the beginning of this file to avoid overwritings

syn match texinfoSpecialChar				    "@acronym"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@acronym{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@b"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@b{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@cite"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@cite{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@code"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@code{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@command"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@command{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@dfn"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dfn{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@email"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@email{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@emph"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@emph{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@env"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@env{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@file"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@file{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@i"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@i{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@kbd"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@kbd{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@key"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@key{"	end="}" contains=texinfoSpecialChar
syn match texinfoSpecialChar				    "@option"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@option{"	end="}" contains=texinfoSpecialChar
syn match texinfoSpecialChar				    "@r"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@r{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@samp"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@samp{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@sc"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@sc{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@strong"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@strong{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@t"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@t{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@url"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@url{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoSpecialChar				    "@var"		contained
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@var{"	end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn match texinfoAtCmd "^@kbdinputstyle" nextgroup=texinfoSinglePar skipwhite


"overview of Texinfo (chap. 1 in Texinfo manual)
syn match texinfoComment  "@c .*"
syn match texinfoComment  "@c$"
syn match texinfoComment  "@comment .*"
syn region texinfoMltlnAtCmd matchgroup=texinfoComment start="^@ignore\s*$" end="^@end ignore\s*$" contains=ALL


"beginning a Texinfo file (chap. 3 in Texinfo manual)
syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="@center "		 skip="\\$" end="$"		       contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
syn region texinfoMltlnDMAtCmd matchgroup=texinfoAtCmd start="^@detailmenu\s*$"		    end="^@end detailmenu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@setfilename "    skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@settitle "       skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@shorttitlepage " skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@title "		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoBrcPrmAtCmd  matchgroup=texinfoAtCmd start="@titlefont{"		    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn region texinfoMltlnAtCmd   matchgroup=texinfoAtCmd start="^@titlepage\s*$"		    end="^@end titlepage\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd,texinfoAtCmd,texinfoPrmAtCmd,texinfoMltlnAtCmd
syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@vskip "		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn match texinfoAtCmd "^@exampleindent"     nextgroup=texinfoSinglePar skipwhite
syn match texinfoAtCmd "^@headings"	     nextgroup=texinfoSinglePar skipwhite
syn match texinfoAtCmd "^\\input"	     nextgroup=texinfoSinglePar skipwhite
syn match texinfoAtCmd "^@paragraphindent"   nextgroup=texinfoSinglePar skipwhite
syn match texinfoAtCmd "^@setchapternewpage" nextgroup=texinfoSinglePar skipwhite


"ending a Texinfo file (chap. 4 in Texinfo manual)
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@author " skip="\\$" end="$" contains=texinfoSpecialChar oneline
"all below @bye should be comment TODO
syn match texinfoAtCmd "^@bye\s*$"
syn match texinfoAtCmd "^@contents\s*$"
syn match texinfoAtCmd "^@printindex" nextgroup=texinfoIndexPar skipwhite
syn match texinfoAtCmd "^@setcontentsaftertitlepage\s*$"
syn match texinfoAtCmd "^@setshortcontentsaftertitlepage\s*$"
syn match texinfoAtCmd "^@shortcontents\s*$"
syn match texinfoAtCmd "^@summarycontents\s*$"


"chapter structuring (chap. 5 in Texinfo manual)
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendix"		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsec"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsection"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsec"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsubsec"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@centerchap"		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapheading"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapter"		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@heading"		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@majorheading"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@section"		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subheading "	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsection"		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubheading"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubsection"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subtitle"		 skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumbered"		 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsec"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsec"	 skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn match  texinfoAtCmd "^@lowersections\s*$"
syn match  texinfoAtCmd "^@raisesections\s*$"


"nodes (chap. 6 in Texinfo manual)
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@anchor{"		  end="}"
syn region texinfoPrmAtCmd    matchgroup=texinfoAtCmd start="^@top"    skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd    matchgroup=texinfoAtCmd start="^@node"   skip="\\$" end="$" contains=texinfoSpecialChar oneline


"menus (chap. 7 in Texinfo manual)
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@menu\s*$" end="^@end menu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd


"cross references (chap. 8 in Texinfo manual)
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@inforef{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@pxref{"   end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@ref{"     end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@uref{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@xref{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd


"marking words and phrases (chap. 9 in Texinfo manual)
"(almost) everything appears as 'contained' too; is for tables (@table)

"this chapter is at the beginning of this file to avoid overwritings


"quotations and examples (chap. 10 in Texinfo manual)
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@cartouche\s*$"	    end="^@end cartouche\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@display\s*$"	    end="^@end display\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@example\s*$"	    end="^@end example\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushleft\s*$"	    end="^@end flushleft\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushright\s*$"	    end="^@end flushright\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@format\s*$"	    end="^@end format\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@lisp\s*$"		    end="^@end lisp\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@quotation\s*$"	    end="^@end quotation\s*$"	    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalldisplay\s*$"     end="^@end smalldisplay\s*$"    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallexample\s*$"     end="^@end smallexample\s*$"    contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallformat\s*$"	    end="^@end smallformat\s*$"     contains=ALL
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalllisp\s*$"	    end="^@end smalllisp\s*$"	    contains=ALL
syn region texinfoPrmAtCmd   matchgroup=texinfoAtCmd start="^@exdent"	 skip="\\$" end="$"			    contains=texinfoSpecialChar oneline
syn match texinfoAtCmd "^@noindent\s*$"
syn match texinfoAtCmd "^@smallbook\s*$"


"lists and tables (chap. 11 in Texinfo manual)
syn match texinfoAtCmd "@asis"		   contained
syn match texinfoAtCmd "@columnfractions"  contained
syn match texinfoAtCmd "@item"		   contained
syn match texinfoAtCmd "@itemx"		   contained
syn match texinfoAtCmd "@tab"		   contained
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@enumerate"  end="^@end enumerate\s*$"  contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ftable"     end="^@end ftable\s*$"     contains=ALL
syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@itemize"    end="^@end itemize\s*$"    contains=ALL
syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@multitable" end="^@end multitable\s*$" contains=ALL
syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@table"      end="^@end table\s*$"      contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@vtable"     end="^@end vtable\s*$"     contains=ALL


"indices (chap. 12 in Texinfo manual)
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@\(c\|f\|k\|p\|t\|v\)index"   skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@..index"			 skip="\\$" end="$" contains=texinfoSpecialChar oneline
"@defcodeindex and @defindex is defined after chap. 15's @def* commands (otherwise those ones will overwrite these ones)
syn match texinfoSIPar "\k\k\s*\k\k\s*$" contained
syn match texinfoAtCmd "^@syncodeindex" nextgroup=texinfoSIPar skipwhite
syn match texinfoAtCmd "^@synindex"     nextgroup=texinfoSIPar skipwhite

"special insertions (chap. 13 in Texinfo manual)
syn match texinfoSpecialChar "@\(!\|?\|@\|\s\)"
syn match texinfoSpecialChar "@{"
syn match texinfoSpecialChar "@}"
"accents
syn match texinfoSpecialChar "@=."
syn match texinfoSpecialChar "@\('\|\"\|\^\|`\)[aeiouyAEIOUY]"
syn match texinfoSpecialChar "@\~[aeinouyAEINOUY]"
syn match texinfoSpecialChar "@dotaccent{.}"
syn match texinfoSpecialChar "@H{.}"
syn match texinfoSpecialChar "@,{[cC]}"
syn match texinfoSpecialChar "@AA{}"
syn match texinfoSpecialChar "@aa{}"
syn match texinfoSpecialChar "@L{}"
syn match texinfoSpecialChar "@l{}"
syn match texinfoSpecialChar "@O{}"
syn match texinfoSpecialChar "@o{}"
syn match texinfoSpecialChar "@ringaccent{.}"
syn match texinfoSpecialChar "@tieaccent{..}"
syn match texinfoSpecialChar "@u{.}"
syn match texinfoSpecialChar "@ubaraccent{.}"
syn match texinfoSpecialChar "@udotaccent{.}"
syn match texinfoSpecialChar "@v{.}"
"ligatures
syn match texinfoSpecialChar "@AE{}"
syn match texinfoSpecialChar "@ae{}"
syn match texinfoSpecialChar "@copyright{}"
syn match texinfoSpecialChar "@bullet" contained "for tables and lists
syn match texinfoSpecialChar "@bullet{}"
syn match texinfoSpecialChar "@dotless{i}"
syn match texinfoSpecialChar "@dotless{j}"
syn match texinfoSpecialChar "@dots{}"
syn match texinfoSpecialChar "@enddots{}"
syn match texinfoSpecialChar "@equiv" contained "for tables and lists
syn match texinfoSpecialChar "@equiv{}"
syn match texinfoSpecialChar "@error{}"
syn match texinfoSpecialChar "@exclamdown{}"
syn match texinfoSpecialChar "@expansion{}"
syn match texinfoSpecialChar "@minus" contained "for tables and lists
syn match texinfoSpecialChar "@minus{}"
syn match texinfoSpecialChar "@OE{}"
syn match texinfoSpecialChar "@oe{}"
syn match texinfoSpecialChar "@point" contained "for tables and lists
syn match texinfoSpecialChar "@point{}"
syn match texinfoSpecialChar "@pounds{}"
syn match texinfoSpecialChar "@print{}"
syn match texinfoSpecialChar "@questiondown{}"
syn match texinfoSpecialChar "@result" contained "for tables and lists
syn match texinfoSpecialChar "@result{}"
syn match texinfoSpecialChar "@ss{}"
syn match texinfoSpecialChar "@TeX{}"
"other
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dmn{"      end="}"
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@footnote{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@image{"    end="}"
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@math{"     end="}"
syn match texinfoAtCmd "@footnotestyle" nextgroup=texinfoSinglePar skipwhite


"making and preventing breaks (chap. 14 in Texinfo manual)
syn match texinfoSpecialChar  "@\(\*\|-\|\.\)"
syn match texinfoAtCmd	      "^@need"	   nextgroup=texinfoSinglePar skipwhite
syn match texinfoAtCmd	      "^@page\s*$"
syn match texinfoAtCmd	      "^@sp"	   nextgroup=texinfoSinglePar skipwhite
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@group\s*$"   end="^@end group\s*$" contains=ALL
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@hyphenation{" end="}"
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@w{"	    end="}"		  contains=texinfoSpecialChar,texinfoBrcPrmAtCmd


"definition commands (chap. 15 in Texinfo manual)
syn match texinfoMltlnAtCmdFLine "^@def\k\+" contained
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@def\k\+" end="^@end def\k\+$"      contains=ALL

"next 2 commands are from chap. 12; must be defined after @def* commands above to overwrite them
syn match texinfoAtCmd "@defcodeindex" nextgroup=texinfoIndexPar skipwhite
syn match texinfoAtCmd "@defindex" nextgroup=texinfoIndexPar skipwhite


"conditionally visible text (chap. 16 in Texinfo manual)
syn match texinfoAtCmd "^@clear" nextgroup=texinfoSinglePar skipwhite
syn region texinfoMltln2AtCmd matchgroup=texinfoAtCmd start="^@html\s*$"	end="^@end html\s*$"
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifclear"		end="^@end ifclear\s*$"   contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifhtml"		end="^@end ifhtml\s*$"	  contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifinfo"		end="^@end ifinfo\s*$"	  contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifnothtml"	end="^@end ifnothtml\s*$" contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifnotinfo"	end="^@end ifnotinfo\s*$" contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifnottex"	end="^@end ifnottex\s*$"  contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifset"		end="^@end ifset\s*$"	  contains=ALL
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@iftex"		end="^@end iftex\s*$"	  contains=ALL
syn region texinfoPrmAtCmd    matchgroup=texinfoAtCmd start="^@set " skip="\\$" end="$" contains=texinfoSpecialChar oneline
syn region texinfoTexCmd			      start="\$\$"		end="\$\$" contained
syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@tex"		end="^@end tex\s*$"	  contains=texinfoTexCmd
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@value{"		end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd


"internationalization (chap. 17 in Texinfo manual)
syn match texinfoAtCmd "@documentencoding" nextgroup=texinfoSinglePar skipwhite
syn match texinfoAtCmd "@documentlanguage" nextgroup=texinfoIndexPar skipwhite


"defining new texinfo commands (chap. 18 in Texinfo manual)
syn match texinfoAtCmd	"@alias"		      nextgroup=texinfoAssignment skipwhite
syn match texinfoDIEPar "\S*\s*,\s*\S*\s*,\s*\S*\s*$" contained
syn match texinfoAtCmd	"@definfoenclose"	      nextgroup=texinfoDIEPar	  skipwhite
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@macro" end="^@end macro\s*$" contains=ALL


"formatting hardcopy (chap. 19 in Texinfo manual)
syn match texinfoAtCmd "^@afourlatex\s*$"
syn match texinfoAtCmd "^@afourpaper\s*$"
syn match texinfoAtCmd "^@afourwide\s*$"
syn match texinfoAtCmd "^@finalout\s*$"
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@pagesizes" end="$" oneline


"creating and installing Info Files (chap. 20 in Texinfo manual)
syn region texinfoPrmAtCmd   matchgroup=texinfoAtCmd start="^@dircategory"  skip="\\$" end="$" oneline
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@direntry\s*$"	       end="^@end direntry\s*$" contains=texinfoSpecialChar
syn match  texinfoAtCmd "^@novalidate\s*$"


"include files (appendix E in Texinfo manual)
syn match texinfoAtCmd "^@include" nextgroup=texinfoSinglePar skipwhite


"page headings (appendix F in Texinfo manual)
syn match texinfoHFSpecialChar "@|"		  contained
syn match texinfoThisAtCmd     "@thischapter"	  contained
syn match texinfoThisAtCmd     "@thischaptername" contained
syn match texinfoThisAtCmd     "@thisfile"	  contained
syn match texinfoThisAtCmd     "@thispage"	  contained
syn match texinfoThisAtCmd     "@thistitle"	  contained
syn match texinfoThisAtCmd     "@today{}"	  contained
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenfooting"  skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenheading"  skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddfooting"   skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddheading"   skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline


"refilling paragraphs (appendix H in Texinfo manual)
syn match  texinfoAtCmd "@refill"


syn cluster texinfoAll contains=ALLBUT,texinfoThisAtCmd,texinfoHFSpecialChar
syn cluster texinfoReducedAll contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
"==============================================================================
" highlighting

" Only when an item doesn't have highlighting yet

hi def link texinfoSpecialChar	Special
hi def link texinfoHFSpecialChar	Special

hi def link texinfoError		Error
hi def link texinfoIdent		Identifier
hi def link texinfoAssignment	Identifier
hi def link texinfoSinglePar	Identifier
hi def link texinfoIndexPar	Identifier
hi def link texinfoSIPar		Identifier
hi def link texinfoDIEPar		Identifier
hi def link texinfoTexCmd		PreProc


hi def link texinfoAtCmd		Statement	"@-command
hi def link texinfoPrmAtCmd	String		"@-command in one line with unknown nr. of parameters
					      "is String because is found as a region and is 'matchgroup'-ed
					      "to texinfoAtCmd
hi def link texinfoBrcPrmAtCmd	String		"@-command with parameter(s) in braces ({})
					      "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
hi def link texinfoMltlnAtCmdFLine  texinfoAtCmd	"repeated embedded First lines in @-commands
hi def link texinfoMltlnAtCmd	String		"@-command in multiple lines
					      "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
hi def link texinfoMltln2AtCmd	PreProc		"@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
hi def link texinfoMltlnDMAtCmd	PreProc		"@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors; used for @detailmenu, which can be included in @menu)
hi def link texinfoMltlnNAtCmd	Normal		"@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
hi def link texinfoThisAtCmd	Statement	"@-command used in headers and footers (@this... series)

hi def link texinfoComment	Comment



let b:current_syntax = "texinfo"

if main_syntax == 'texinfo'
  unlet main_syntax
endif

" vim: ts=8
PK�j�ZF��vim80/syntax/haste.vimnu�[���" Vim syntax file
" Language:	HASTE - a language for VLSI IC programming
" Maintainer:	M. Tranchero - maurizio.tranchero?gmail.com
" Credits:	some parts have been taken from vhdl, verilog, and C syntax
"		files
" Version:	0.9
" Last Change:	0.9 improvement of haste numbers detection
" Change:	0.8 error matching for wrong hierarchical connections 
" Change:	0.7 added more rules to highlight pre-processor directives

" HASTE
if exists("b:current_syntax")
    finish
endif
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" case is significant
syn case match

" HASTE keywords
syn keyword hasteStatement act alias arb array begin bitvec 
syn keyword hasteStatement bitwidth boolvec broad case
syn keyword hasteStatement cast chan const dataprobe do edge
syn keyword hasteStatement else end export false ff fi file
syn keyword hasteStatement fit for forever func if import
syn keyword hasteStatement inprobe is les main narb narrow
syn keyword hasteStatement negedge od of or outprobe pas
syn keyword hasteStatement posedge probe proc ram ramreg
syn keyword hasteStatement repeat rom romreg sample sel si
syn keyword hasteStatement sign sizeof skip stop then true
syn keyword hasteStatement type until var wait wire
syn keyword hasteFutureExt Z ffe partial 
syn keyword hasteVerilog   buf reg while 

" Special match for "if", "or", and "else" since "else if"
" and other "else+if" combination shouldn't be highlighted.
" The right keyword is "or" 
syn match   hasteStatement	"\<\(if\|then\|else\|fi\)\>"
syn match   hasteNone		"\<else\s\+if\>$"
syn match   hasteNone		"\<else\s\+if\>\s"
syn match   hasteNone		"\<elseif\>\s"
syn match   hasteNone		"\<elsif\>\s"
syn match   hasteStatement	"\<\(case\|is\|si\)\>"
syn match   hasteStatement	"\<\(repeat\|until\)\>"
syn match   hasteStatement	"\<\(forever\|do\|od\)\>"
syn match   hasteStatement	"\<\(for\|do\|od\)\>"
syn match   hasteStatement	"\<\(do\|or\|od\)\>"
syn match   hasteStatement	"\<\(sel\|les\)\>"
syn match   hasteError		"\<\d\+[_a-zA-Z]\+\>"
syn match   hasteError		"\(\([[:alnum:]]\+\s*(\s\+\|)\s*,\)\)\s*\([[:alnum:]]\+\s*(\)"

" Predifined Haste types
syn keyword hasteType bool

" Values for standard Haste types
" syn match hasteVector "\'[0L1HXWZU\-\?]\'"

syn match  hasteVector "0b\"[01_]\+\""
syn match  hasteVector "0x\"[0-9a-f_]\+\""
syn match  hasteCharacter "'.'"
" syn region hasteString start=+"+  end=+"+
syn match  hasteIncluded	display contained "<[^>]*>"
syn match  hasteIncluded	display contained "<[^"]*>"
syn region hasteInclude	start="^\s*#include\>\s*" end="$" contains=hasteIncluded,hasteString

" integer numbers
syn match hasteNumber "\d\+\^[[:alnum:]]*[-+]\{0,1\}[[:alnum:]]*"
syn match hasteNumber "-\=\<\d\+\(\^[+\-]\=\d\+\)\>"
syn match hasteNumber "-\=\<\d\+\>"
" syn match hasteNumber "0*2#[01_]\+#\(\^[+\-]\=\d\+\)\="
" syn match hasteNumber "0*16#[0-9a-f_]\+#\(\^[+\-]\=\d\+\)\="
" operators
syn keyword hasteSeparators	& , . \| 
syn keyword hasteExecution	\|\| ; @
syn keyword hasteOperator	:= ? ! :
syn keyword hasteTypeConstr	"[" << >> .. "]" ~
syn keyword hasteExprOp		< <= >= > = # <> + - * == ##
syn keyword hasteMisc		( ) 0x 0b
"
syn match   hasteSeparators	"[&:\|,.]"
syn match   hasteOperator	":="
syn match   hasteOperator	":"
syn match   hasteOperator	"?"
syn match   hasteOperator	"!"
syn match   hasteExecution	"||"
syn match   hasteExecution	";"
syn match   hasteExecution	"@"
syn match   hasteType		"\[\["
syn match   hasteType		"\]\]"
syn match   hasteType		"<<"
syn match   hasteType		">>"
syn match   hasteExprOp		"<"
syn match   hasteExprOp		"<="
syn match   hasteExprOp		">="
syn match   hasteExprOp		">"
syn match   hasteExprOp		"<>"
syn match   hasteExprOp		"="
syn match   hasteExprOp		"=="
syn match   hasteExprOp		"##"
" syn match   hasteExprOp		"#"
syn match   hasteExprOp		"*"
syn match   hasteExprOp		"+"

syn region  hasteComment start="/\*" end="\*/" contains=@Spell
syn region  hasteComment start="{" end="}" contains=@Spell
syn match   hasteComment "//.*" contains=@Spell

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link hasteSpecial	Special
hi def link hasteStatement	Statement
hi def link hasteCharacter	String
hi def link hasteString		String
hi def link hasteVector		String
hi def link hasteBoolean	String
hi def link hasteComment	Comment
hi def link hasteNumber		String
hi def link hasteTime		String
hi def link hasteType		Type
hi def link hasteGlobal		Error
hi def link hasteError		Error
hi def link hasteAttribute	Type
"
hi def link hasteSeparators	Special
hi def link hasteExecution	Special
hi def link hasteTypeConstr	Special
hi def link hasteOperator	Type
hi def link hasteExprOp		Type
hi def link hasteMisc		String
hi def link hasteFutureExt 	Error
hi def link hasteVerilog	Error
hi def link hasteDefine		Macro
hi def link hasteInclude	Include
" hi def link hastePreProc	Preproc
" hi def link hastePreProcVar	Special

let b:current_syntax = "haste"

" vim: ts=8
PK�j�Z�����vim80/syntax/specman.vimnu�[���" Vim syntax file
" Language:	SPECMAN E-LANGUAGE
" Maintainer:	Or Freund <or@mobilian.com ;omf@gmx.co.uk; OrMeir@yahoo.com>
" Last Update: Wed Oct 24 2001

"---------------------------------------------------------
"| If anyone found an error or fix the parenthesis part  |
"| I will be happy to hear about it			 |
"| Thanks Or.						 |
"---------------------------------------------------------

" Remove any old syntax stuff hanging around
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword  specmanTodo	contained TODO todo ToDo FIXME XXX

syn keyword specmanStatement   var instance on compute start event expect check that routine
syn keyword specmanStatement   specman is also first only with like
syn keyword specmanStatement   list of all radix hex dec bin ignore illegal
syn keyword specmanStatement   traceable untraceable
syn keyword specmanStatement   cover using count_only trace_only at_least transition item ranges
syn keyword specmanStatement   cross text call task within

syn keyword specmanMethod      initialize non_terminal testgroup delayed exit finish
syn keyword specmanMethod      out append print outf appendf
syn keyword specmanMethod      post_generate pre_generate setup_test finalize_test extract_test
syn keyword specmanMethod      init run copy as_a set_config dut_error add clear lock quit
syn keyword specmanMethod      lock unlock release swap quit to_string value stop_run
syn keyword specmanMethod      crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all
syn keyword specmanMethod      apply average count delete exists first_index get_indices
syn keyword specmanMethod      has insert is_a_permutation is_empty key key_exists key_index
syn keyword specmanMethod      last last_index max max_index max_value min min_index
syn keyword specmanMethod      min_value or_all pop pop0 push push0 product resize reverse
syn keyword specmanMethod      sort split sum top top0 unique clear is_all_iterations
syn keyword specmanMethod      get_enclosing_unit hdl_path exec deep_compare deep_compare_physical
syn keyword specmanMethod      pack unpack warning error fatal
syn match   specmanMethod      "size()"
syn keyword specmanPacking     packing low high
syn keyword specmanType        locker address
syn keyword specmanType        body code vec chars
syn keyword specmanType        integer real bool int long uint byte bits bit time string
syn keyword specmanType        byte_array external_pointer
syn keyword specmanBoolean     TRUE FALSE
syn keyword specmanPreCondit   #ifdef #ifndef #else

syn keyword specmanConditional choose matches
syn keyword specmanConditional if then else when try



syn keyword specmanLabel  case casex casez default

syn keyword specmanLogical     and or not xor

syn keyword specmanRepeat      until repeat while for from to step each do break continue
syn keyword specmanRepeat      before next sequence always -kind network
syn keyword specmanRepeat      index it me in new return result select

syn keyword specmanTemporal    cycle sample events forever
syn keyword specmanTemporal    wait  change  negedge rise fall delay sync sim true detach eventually emit

syn keyword specmanConstant    MAX_INT MIN_INT NULL UNDEF

syn keyword specmanDefine       define as computed type extend
syn keyword specmanDefine       verilog vhdl variable global sys
syn keyword specmanStructure    struct unit
syn keyword specmanInclude     import
syn keyword specmanConstraint  gen keep keeping soft	before

syn keyword specmanSpecial     untyped symtab ECHO DOECHO
syn keyword specmanFile        files load module ntv source_ref script read write
syn keyword specmanFSM	       initial idle others posedge clock cycles


syn match   specmanOperator    "[&|~><!)(*%@+/=?:;}{,.\^\-\[\]]"
syn match   specmanOperator    "+="
syn match   specmanOperator    "-="
syn match   specmanOperator    "*="

syn match   specmanComment     "//.*"  contains=specmanTodo
syn match   specmanComment     "--.*"
syn region  specmanComment     start="^'>"hs=s+2 end="^<'"he=e-2

syn match   specmanHDL	       "'[`.a-zA-Z0-9_@\[\]]\+\>'"


syn match   specmanCompare    "=="
syn match   specmanCompare    "!==="
syn match   specmanCompare    "==="
syn match   specmanCompare    "!="
syn match   specmanCompare    ">="
syn match   specmanCompare    "<="
syn match   specmanNumber "[0-9]:[0-9]"
syn match   specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
syn match   specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>"
syn match   specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
syn match   specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>"
syn match   specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
syn match   specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
syn match   specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>"
syn match   specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"

syn region  specmanString start=+"+  end=+"+



"**********************************************************************
" I took this section from c.vim but I didnt succeded to make it work
" ANY one who dare jumping to this deep watter is more than welocome!
"**********************************************************************
""catch errors caused by wrong parenthesis and brackets

"syn cluster     specmanParenGroup     contains=specmanParenError
"" ,specmanNumbera,specmanComment
"if exists("specman_no_bracket_error")
"syn region    specmanParen	     transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup
"syn match     specmanParenError     ")"
"syn match     specmanErrInParen     contained "[{}]"
"else
"syn region    specmanParen	     transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup,specmanErrInBracket
"syn match     specmanParenError     "[\])]"
"syn match     specmanErrInParen     contained "[\]{}]"
"syn region    specmanBracket	     transparent start='\[' end=']' contains=ALLBUT,@specmanParenGroup,specmanErrInParen
"syn match     specmanErrInBracket   contained "[);{}]"
"endif
"

"Modify the following as needed.  The trade-off is performance versus
"functionality.

syn sync lines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
" The default methods for highlighting.  Can be overridden later
hi def link specmanConditional	Conditional
hi def link specmanConstraint	Conditional
hi def link specmanRepeat		Repeat
hi def link specmanString		String
hi def link specmanComment		Comment
hi def link specmanConstant		Macro
hi def link specmanNumber		Number
hi def link specmanCompare		Operator
hi def link specmanOperator		Operator
hi def link specmanLogical		Operator
hi def link specmanStatement	Statement
hi def link specmanHDL		SpecialChar
hi def link specmanMethod		Function
hi def link specmanInclude		Include
hi def link specmanStructure	Structure
hi def link specmanBoolean		Boolean
hi def link specmanFSM		Label
hi def link specmanSpecial		Special
hi def link specmanType		Type
hi def link specmanTemporal		Type
hi def link specmanFile		Include
hi def link specmanPreCondit	Include
hi def link specmanDefine		Typedef
hi def link specmanLabel		Label
hi def link specmanPacking		keyword
hi def link specmanTodo		Todo
hi def link specmanParenError	Error
hi def link specmanErrInParen	Error
hi def link specmanErrInBracket	Error

let b:current_syntax = "specman"
PK�j�Z��Ƚ�-�-vim80/syntax/framescript.vimnu�[���" Vim syntax file
" Language:             FrameScript v4.0
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-02-22

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   framescriptOperator
      \ '[+*/%=-]\|[><]=\=\|#[&|]'

syn keyword framescriptTodo
      \ contained
      \ TODO FIXME XXX NOTE

syn cluster framescriptCommentGroup
      \ contains=
      \   framescriptTodo,
      \   @Spell

syn match   framescriptComment
      \ display
      \ contains=@framescriptCommentGroup
      \ '//.*$'

syn region  framescriptComment
      \ contains=@framescriptCommentGroup
      \ matchgroup=framescriptCommentStart
      \ start='/\*'
      \ end='\*/'

syn case ignore

syn match   framescriptInclude
      \ display
      \ contains=framescriptIncluded
      \ "^\s*<#Include\>\s*'"

syn region  framescriptIncluded
      \ contained
      \ display
      \ start=+'+
      \ skip=+\\\\\|\\'+
      \ end=+'+

syn match   framescriptNumbers
      \ display
      \ transparent
      \ contains=
      \   framescriptInteger,
      \   framescriptReal,
      \   framescriptMetric,
      \   framescriptCharacter
      \ '\<\d\|\.\d'

syn keyword framescriptBoolean
      \ True False

syn match   framescriptInteger
      \ contained
      \ display
      \ '\d\+\>'

syn match   framescriptInteger
      \ contained
      \ display
      \ '\x\+H\>'

syn match   framescriptInteger
      \ contained
      \ display
      \ '[01]\+B\>'

syn match   framescriptReal
      \ contained
      \ display
      \ '\d\+\.\d*\|\.\d\+\>'

syn match   framescriptMetric
      \ contained
      \ display
      \ '\%(\d\+\%(\.\d*\)\=\|\.\d\+\)\%(pts\|in\|"\|cm\|mm\|pica\)\>'

syn match   framescriptCharacter
      \ contained
      \ display
      \ '\d\+S\>'

syn region  framescriptString
      \ contains=framescriptStringSpecialChar,@Spell
      \ start=+'+
      \ skip=+\\\\\|\\'+
      \ end=+'+

syn match   framescriptStringSpecialChar
      \ contained
      \ display
      \ "\\[\\']"

syn keyword framescriptConstant
      \ BackSlash
      \ CharCR
      \ CharLF
      \ CharTAB
      \ ClientDir
      \ ClientName
      \ FslVersionMajor
      \ FslVersionMinor
      \ InstallName
      \ InstalledScriptList
      \ MainScript
      \ NULL
      \ ObjEndOffset
      \ ProductRevision
      \ Quote
      \ ThisScript

syn keyword framescriptOperator
      \ not
      \ and
      \ or

syn keyword framescriptSessionVariables
      \ ErrorCode
      \ ErrorMsg
      \ DeclareVarMode
      \ PlatformEncodingMode

syn keyword framescriptStructure
      \ Event
      \ EndEvent

syn keyword framescriptStatement
      \ Sub
      \ EndSub
      \ Run
      \ Function
      \ EndFunction
      \ Set
      \ Add
      \ Apply
      \ CallClient
      \ Close
      \ Copy
      \ Cut
      \ DialogBox
      \ Delete
      \ Demote
      \ Display
      \ DocCompare
      \ Export
      \ Find
      \ LeaveLoop
      \ LeaveScript
      \ LeaveSub
      \ LoopNext
      \ Merge
      \ MsgBox
      \ Paste
      \ PopClipboard
      \ PushClipboard
      \ Read
      \ Replace
      \ Return
      \ Sort
      \ Split

syn keyword framescriptStatement
      \ nextgroup=framescriptApplySubStatement skipwhite skipempty
      \ Apply

syn keyword framescriptApplySubStatement
      \ contained
      \ Pagelayout
      \ TextProperties

syn keyword framescriptStatement
      \ nextgroup=framescriptClearSubStatement skipwhite skipempty
      \ Clear

syn keyword framescriptClearSubStatement
      \ contained
      \ ChangeBars
      \ Text

syn keyword framescriptStatement
      \ nextgroup=framescriptCloseSubStatement skipwhite skipempty
      \ Close

syn keyword framescriptCloseSubStatement
      \ contained
      \ Book
      \ Document
      \ TextFile

syn keyword framescriptStatement
      \ nextgroup=framescriptExecSubStatement skipwhite skipempty
      \ Exec

syn keyword framescriptExecSubStatement
      \ contained
      \ Compile
      \ Script
      \ Wait

syn keyword framescriptStatement
      \ nextgroup=framescriptExecuteSubStatement skipwhite skipempty
      \ Execute

syn keyword framescriptExecuteSubStatement
      \ contained
      \ FrameCommand
      \ Hypertext
      \ StartUndoCheckPoint
      \ EndUndoCheckPoint
      \ ClearUndoHistory

syn keyword framescriptStatement
      \ nextgroup=framescriptGenerateSubStatement skipwhite skipempty
      \ Generate

syn keyword framescriptGenerateSubStatement
      \ contained
      \ Bookfile

syn keyword framescriptStatement
      \ nextgroup=framescriptGetSubStatement skipwhite skipempty
      \ Get

syn keyword framescriptGetSubStatement
      \ contained
      \ Member
      \ Object
      \ String
      \ TextList
      \ TextProperties

syn keyword framescriptStatement
      \ nextgroup=framescriptImportSubStatement skipwhite skipempty
      \ Import

syn keyword framescriptImportSubStatement
      \ contained
      \ File
      \ Formats
      \ ElementDefs

syn keyword framescriptStatement
      \ nextgroup=framescriptInstallSubStatement skipwhite skipempty
      \ Install
      \ Uninstall

syn keyword framescriptInstallSubStatement
      \ contained
      \ ChangeBars
      \ Text

syn keyword framescriptStatement
      \ nextgroup=framescriptNewSubStatement skipwhite skipempty
      \ New

syn keyword framescriptNewSubStatement
      \ contained
      \ AFrame
      \ Footnote
      \ Marker
      \ TiApiClient
      \ Variable
      \ XRef
      \ FormatChangeList
      \ FormatRule
      \ FmtRuleClause
      \ Arc
      \ Ellipse
      \ Flow
      \ Group
      \ Inset
      \ Line
      \ Math
      \ Polygon
      \ Polyline
      \ Rectangle
      \ RoundRect
      \ TextFrame
      \ Textline
      \ UnanchoredFrame
      \ Command
      \ Menu
      \ MenuItemSeparator
      \ Book
      \ CharacterFormat
      \ Color
      \ ConditionFormat
      \ ElementDef
      \ FormatChangeList
      \ MarkerType
      \ MasterPage
      \ ParagraphFormat
      \ PgfFmt
      \ ReferencePAge
      \ RulingFormat
      \ TableFormat
      \ VariableFormat
      \ XRefFormat
      \ BodyPage
      \ BookComponent
      \ Paragraph
      \ Element
      \ Attribute
      \ AttributeDef
      \ AttributeList
      \ AttributeDefList
      \ ElementLoc
      \ ElementRange
      \ Table
      \ TableRows
      \ TableCols
      \ Text
      \ Integer
      \ Real
      \ Metric
      \ String
      \ Object
      \ TextLoc
      \ TextRange
      \ IntList
      \ UIntList
      \ MetricList
      \ StringList
      \ PointList
      \ TabList
      \ PropertyList
      \ LibVar
      \ ScriptVar
      \ SubVar
      \ TextFile

syn keyword framescriptStatement
      \ nextgroup=framescriptOpenSubStatement skipwhite skipempty
      \ Open

syn keyword framescriptOpenSubStatement
      \ contained
      \ Document
      \ Book
      \ TextFile

syn keyword framescriptStatement
      \ nextgroup=framescriptPrintSubStatement skipwhite skipempty
      \ Print

syn keyword framescriptPrintSubStatement
      \ contained
      \ Document
      \ Book

syn keyword framescriptStatement
      \ nextgroup=framescriptQuitSubStatement skipwhite skipempty
      \ Quit

syn keyword framescriptQuitSubStatement
      \ contained
      \ Session

syn keyword framescriptStatement
      \ nextgroup=framescriptRemoveSubStatement skipwhite skipempty
      \ Remove

syn keyword framescriptRemoveSubStatement
      \ contained
      \ Attribute
      \ CommandObject

syn keyword framescriptStatement
      \ nextgroup=framescriptSaveSubStatement skipwhite skipempty
      \ Save

syn keyword framescriptSaveSubStatement
      \ contained
      \ Document
      \ Book

syn keyword framescriptStatement
      \ nextgroup=framescriptSelectSubStatement skipwhite skipempty
      \ Select

syn keyword framescriptSelectSubStatement
      \ contained
      \ TableCells

syn keyword framescriptStatement
      \ nextgroup=framescriptStraddleSubStatement skipwhite skipempty
      \ Straddle

syn keyword framescriptStraddleSubStatement
      \ contained
      \ TableCells

syn keyword framescriptStatement
      \ nextgroup=framescriptUpdateSubStatement skipwhite skipempty
      \ Update

syn keyword framescriptUpdateSubStatement
      \ contained
      \ ReDisplay
      \ Formatting
      \ Hyphenating
      \ ResetEquationsSettings
      \ ResetRefFrames
      \ RestartPgfNums
      \ TextInset
      \ Variables
      \ XRefs
      \ Book

syn keyword framescriptStatement
      \ nextgroup=framescriptWriteSubStatement skipwhite skipempty
      \ Write

syn keyword framescriptUpdateSubStatement
      \ contained
      \ Console
      \ Display

syn keyword framescriptRepeat
      \ Loop
      \ EndLoop

syn keyword framescriptConditional
      \ If
      \ ElseIf
      \ Else
      \ EndIf

syn keyword framescriptType
      \ Local
      \ GlobalVar

let b:framescript_minlines = exists("framescript_minlines")
                         \ ? framescript_minlines : 15
exec "syn sync ccomment framescriptComment minlines=" . b:framescript_minlines

hi def link framescriptTodo                 Todo
hi def link framescriptComment              Comment
hi def link framescriptCommentStart         framescriptComment
hi def link framescriptInclude              Include
hi def link framescriptIncluded             String
hi def link framescriptBoolean              Boolean
hi def link framescriptNumber               Number
hi def link framescriptInteger              framescriptNumber
hi def link framescriptReal                 framescriptNumber
hi def link framescriptMetric               framescriptNumber
hi def link framescriptCharacter            framescriptNumber
hi def link framescriptString               String
hi def link framescriptStringSpecialChar    SpecialChar
hi def link framescriptConstant             Constant
hi def link framescriptOperator             None
hi def link framescriptSessionVariables     PreProc
hi def link framescriptStructure            Structure
hi def link framescriptStatement            Statement
hi def link framescriptSubStatement         Type
hi def link framescriptApplySubStatement    framescriptSubStatement
hi def link framescriptClearSubStatement    framescriptSubStatement
hi def link framescriptCloseSubStatement    framescriptSubStatement
hi def link framescriptExecSubStatement     framescriptSubStatement
hi def link framescriptExecuteSubStatement  framescriptSubStatement
hi def link framescriptGenerateSubStatement framescriptSubStatement
hi def link framescriptGetSubStatement      framescriptSubStatement
hi def link framescriptImportSubStatement   framescriptSubStatement
hi def link framescriptInstallSubStatement  framescriptSubStatement
hi def link framescriptNewSubStatement      framescriptSubStatement
hi def link framescriptOpenSubStatement     framescriptSubStatement
hi def link framescriptPrintSubStatement    framescriptSubStatement
hi def link framescriptQuitSubStatement     framescriptSubStatement
hi def link framescriptRemoveSubStatement   framescriptSubStatement
hi def link framescriptSaveSubStatement     framescriptSubStatement
hi def link framescriptSelectSubStatement   framescriptSubStatement
hi def link framescriptStraddleSubStatement framescriptSubStatement
hi def link framescriptUpdateSubStatement   framescriptSubStatement
hi def link framescriptRepeat               Repeat
hi def link framescriptConditional          Conditional
hi def link framescriptType                 Type

let b:current_syntax = "framescript"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZX��pvim80/syntax/acedb.vimnu�[���" Vim syntax file
" Language:	AceDB model files
" Maintainer:	Stewart Morris (Stewart.Morris@ed.ac.uk)
" Last change:	Thu Apr 26 10:38:01 BST 2001
" URL:		http://www.ed.ac.uk/~swmorris/vim/acedb.vim

" Syntax file to handle all $ACEDB/wspec/*.wrm files, primarily models.wrm
" AceDB software is available from http://www.acedb.org

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword	acedbXref	XREF
syn keyword	acedbModifier	UNIQUE REPEAT

syn case ignore
syn keyword	acedbModifier	Constraints
syn keyword	acedbType	DateType Int Text Float

" Magic tags from: http://genome.cornell.edu/acedocs/magic/summary.html
syn keyword	acedbMagic	pick_me_to_call No_cache Non_graphic Title
syn keyword	acedbMagic	Flipped Centre Extent View Default_view
syn keyword	acedbMagic	From_map Minimal_view Main_Marker Map Includes
syn keyword	acedbMagic	Mapping_data More_data Position Ends Left Right
syn keyword	acedbMagic	Multi_Position Multi_Ends With Error Relative
syn keyword	acedbMagic	Min Anchor Gmap Grid_map Grid Submenus Cambridge
syn keyword	acedbMagic	No_buttons Columns Colour Surround_colour Tag
syn keyword	acedbMagic	Scale_unit Cursor Cursor_on Cursor_unit
syn keyword	acedbMagic	Locator Magnification Projection_lines_on
syn keyword	acedbMagic	Marker_points Marker_intervals Contigs
syn keyword	acedbMagic	Physical_genes Two_point Multi_point Likelihood
syn keyword	acedbMagic	Point_query Point_yellow Point_width
syn keyword	acedbMagic	Point_pne Point_pe Point_nne Point_ne
syn keyword	acedbMagic	Derived_tags DT_query DT_width DT_no_duplicates
syn keyword	acedbMagic	RH_data RH_query RH_spacing RH_show_all
syn keyword	acedbMagic	Names_on Width Symbol Colours Pne Pe Nne pMap
syn keyword	acedbMagic	Sequence Gridded FingerPrint In_Situ Cosmid_grid
syn keyword	acedbMagic	Layout Lines_at Space_at No_stagger A1_labelling
syn keyword	acedbMagic	DNA Structure From Source Source_Exons
syn keyword	acedbMagic	Coding CDS Transcript Assembly_tags Allele
syn keyword	acedbMagic	Display Colour Frame_sensitive Strand_sensitive
syn keyword	acedbMagic	Score_bounds Percent Bumpable Width Symbol
syn keyword	acedbMagic	Blixem_N Address E_mail Paper Reference Title
syn keyword	acedbMagic	Point_1 Point_2 Calculation Full One_recombinant
syn keyword	acedbMagic	Tested Selected_trans Backcross Back_one
syn keyword	acedbMagic	Dom_semi Dom_let Direct Complex_mixed Calc
syn keyword	acedbMagic	Calc_upper_conf Item_1 Item_2 Results A_non_B
syn keyword	acedbMagic	Score Score_by_offset Score_by_width
syn keyword	acedbMagic	Right_priority Blastn Blixem Blixem_X
syn keyword	acedbMagic	Journal Year Volume Page Author
syn keyword	acedbMagic	Selected One_all Recs_all One_let
syn keyword	acedbMagic	Sex_full Sex_one Sex_cis Dom_one Dom_selected
syn keyword	acedbMagic	Calc_distance Calc_lower_conf Canon_for_cosmid
syn keyword	acedbMagic	Reversed_physical Points Positive Negative
syn keyword	acedbMagic	Point_error_scale Point_segregate_ordered
syn keyword	acedbMagic	Point_symbol Interval_JTM Interval_RD
syn keyword	acedbMagic	EMBL_feature Homol Feature
syn keyword	acedbMagic	DT_tag Spacer Spacer_colour Spacer_width
syn keyword	acedbMagic	RH_positive RH_negative RH_contradictory Query
syn keyword	acedbMagic	Clone Y_remark PCR_remark Hybridizes_to
syn keyword	acedbMagic	Row Virtual_row Mixed In_pool Subpool B_non_A
syn keyword	acedbMagic	Interval_SRK Point_show_marginal Subsequence
syn keyword	acedbMagic	Visible Properties Transposon

syn match	acedbClass	"^?\w\+\|^#\w\+"
syn match	acedbComment	"//.*"
syn region	acedbComment	start="/\*" end="\*/"
syn match	acedbComment	"^#\W.*"
syn match	acedbHelp	"^\*\*\w\+$"
syn match	acedbTag	"[^^]?\w\+\|[^^]#\w\+"
syn match	acedbBlock	"//#.\+#$"
syn match	acedbOption	"^_[DVH]\S\+"
syn match	acedbFlag	"\s\+-\h\+"
syn match	acedbSubclass	"^Class"
syn match	acedbSubtag	"^Visible\|^Is_a_subclass_of\|^Filter\|^Hidden"
syn match	acedbNumber	"\<\d\+\>"
syn match	acedbNumber	"\<\d\+\.\d\+\>"
syn match	acedbHyb	"\<Positive_\w\+\>\|\<Negative\w\+\>"
syn region	acedbString	start=/"/ end=/"/ skip=/\\"/ oneline

" Rest of syntax highlighting rules start here

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link acedbMagic	Special
hi def link acedbHyb	Special
hi def link acedbType	Type
hi def link acedbOption	Type
hi def link acedbSubclass	Type
hi def link acedbSubtag	Include
hi def link acedbFlag	Include
hi def link acedbTag	Include
hi def link acedbClass	Todo
hi def link acedbHelp	Todo
hi def link acedbXref	Identifier
hi def link acedbModifier	Label
hi def link acedbComment	Comment
hi def link acedbBlock	ModeMsg
hi def link acedbNumber	Number
hi def link acedbString	String


let b:current_syntax = "acedb"

" The structure of the model.wrm file is sensitive to mixed tab and space
" indentation and assumes tabs are 8 so...
se ts=8
PK�j�Z>���:�:vim80/syntax/pascal.vimnu�[���" Vim syntax file
" Language:	Pascal
" Version: 2.8
" Last Change:	2004/10/17 17:47:30
" Maintainer:  Xavier Cr�gut <xavier.cregut@enseeiht.fr>
" Previous Maintainer:	Mario Eusebio <bio@dq.fct.unl.pt>

" Contributors: Tim Chase <tchase@csc.com>,
"	Stas Grabois <stsi@vtrails.com>,
"	Mazen NEIFER <mazen.neifer.2001@supaero.fr>,
"	Klaus Hast <Klaus.Hast@arcor.net>,
"	Austin Ziegler <austin@halostatue.ca>,
"	Markus Koenig <markus@stber-koenig.de>

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


syn case ignore
syn sync lines=250

syn keyword pascalBoolean	true false
syn keyword pascalConditional	if else then
syn keyword pascalConstant	nil maxint
syn keyword pascalLabel		case goto label
syn keyword pascalOperator	and div downto in mod not of or packed with
syn keyword pascalRepeat	do for do repeat while to until
syn keyword pascalStatement	procedure function
syn keyword pascalStatement	program begin end const var type
syn keyword pascalStruct	record
syn keyword pascalType		array boolean char integer file pointer real set
syn keyword pascalType		string text variant


    " 20011222az: Added new items.
syn keyword pascalTodo contained	TODO FIXME XXX DEBUG NOTE

    " 20010723az: When wanted, highlight the trailing whitespace -- this is
    " based on c_space_errors; to enable, use "pascal_space_errors".
if exists("pascal_space_errors")
    if !exists("pascal_no_trail_space_error")
        syn match pascalSpaceError "\s\+$"
    endif
    if !exists("pascal_no_tab_space_error")
        syn match pascalSpaceError " \+\t"me=e-1
    endif
endif



" String
if !exists("pascal_one_line_string")
  syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ contains=pascalStringEscape
  if exists("pascal_gpc")
    syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ contains=pascalStringEscapeGPC
  else
    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ contains=pascalStringEscape
  endif
else
  "wrong strings
  syn region  pascalStringError matchgroup=pascalStringError start=+'+ end=+'+ end=+$+ contains=pascalStringEscape
  if exists("pascal_gpc")
    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscapeGPC
  else
    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscape
  endif

  "right strings
  syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ oneline contains=pascalStringEscape
  " To see the start and end of strings:
  " syn region  pascalString matchgroup=pascalStringError start=+'+ end=+'+ oneline contains=pascalStringEscape
  if exists("pascal_gpc")
    syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ oneline contains=pascalStringEscapeGPC
  else
    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ oneline contains=pascalStringEscape
  endif
end
syn match   pascalStringEscape		contained "''"
syn match   pascalStringEscapeGPC	contained '""'


" syn match   pascalIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"


if exists("pascal_symbol_operator")
  syn match   pascalSymbolOperator      "[+\-/*=]"
  syn match   pascalSymbolOperator      "[<>]=\="
  syn match   pascalSymbolOperator      "<>"
  syn match   pascalSymbolOperator      ":="
  syn match   pascalSymbolOperator      "[()]"
  syn match   pascalSymbolOperator      "\.\."
  syn match   pascalSymbolOperator       "[\^.]"
  syn match   pascalMatrixDelimiter	"[][]"
  "if you prefer you can highlight the range
  "syn match  pascalMatrixDelimiter	"[\d\+\.\.\d\+]"
endif

syn match  pascalNumber		"-\=\<\d\+\>"
syn match  pascalFloat		"-\=\<\d\+\.\d\+\>"
syn match  pascalFloat		"-\=\<\d\+\.\d\+[eE]-\=\d\+\>"
syn match  pascalHexNumber	"\$[0-9a-fA-F]\+\>"

if exists("pascal_no_tabs")
  syn match pascalShowTab "\t"
endif

syn region pascalComment	start="(\*\|{"  end="\*)\|}" contains=pascalTodo,pascalSpaceError


if !exists("pascal_no_functions")
  " array functions
  syn keyword pascalFunction	pack unpack

  " memory function
  syn keyword pascalFunction	Dispose New

  " math functions
  syn keyword pascalFunction	Abs Arctan Cos Exp Ln Sin Sqr Sqrt

  " file functions
  syn keyword pascalFunction	Eof Eoln Write Writeln
  syn keyword pascalPredefined	Input Output

  if exists("pascal_traditional")
    " These functions do not seem to be defined in Turbo Pascal
    syn keyword pascalFunction	Get Page Put 
  endif

  " ordinal functions
  syn keyword pascalFunction	Odd Pred Succ

  " transfert functions
  syn keyword pascalFunction	Chr Ord Round Trunc
endif


if !exists("pascal_traditional")

  syn keyword pascalStatement	constructor destructor implementation inherited
  syn keyword pascalStatement	interface unit uses
  syn keyword pascalModifier	absolute assembler external far forward inline
  syn keyword pascalModifier	interrupt near virtual 
  syn keyword pascalAcces	private public 
  syn keyword pascalStruct	object 
  syn keyword pascalOperator	shl shr xor

  syn region pascalPreProc	start="(\*\$"  end="\*)" contains=pascalTodo
  syn region pascalPreProc	start="{\$"  end="}"

  syn region  pascalAsm		matchgroup=pascalAsmKey start="\<asm\>" end="\<end\>" contains=pascalComment,pascalPreProc

  syn keyword pascalType	ShortInt LongInt Byte Word
  syn keyword pascalType	ByteBool WordBool LongBool
  syn keyword pascalType	Cardinal LongWord
  syn keyword pascalType	Single Double Extended Comp
  syn keyword pascalType	PChar


  if !exists ("pascal_fpc")
    syn keyword pascalPredefined	Result
  endif

  if exists("pascal_fpc")
    syn region pascalComment        start="//" end="$" contains=pascalTodo,pascalSpaceError
    syn keyword pascalStatement	fail otherwise operator
    syn keyword pascalDirective	popstack
    syn keyword pascalPredefined self
    syn keyword pascalType	ShortString AnsiString WideString
  endif

  if exists("pascal_gpc")
    syn keyword pascalType	SmallInt
    syn keyword pascalType	AnsiChar
    syn keyword pascalType	PAnsiChar
  endif

  if exists("pascal_delphi")
    syn region pascalComment	start="//"  end="$" contains=pascalTodo,pascalSpaceError
    syn keyword pascalType	SmallInt Int64
    syn keyword pascalType	Real48 Currency
    syn keyword pascalType	AnsiChar WideChar
    syn keyword pascalType	ShortString AnsiString WideString
    syn keyword pascalType	PAnsiChar PWideChar
    syn match  pascalFloat	"-\=\<\d\+\.\d\+[dD]-\=\d\+\>"
    syn match  pascalStringEscape	contained "#[12][0-9]\=[0-9]\="
    syn keyword pascalStruct	class dispinterface
    syn keyword pascalException	try except raise at on finally
    syn keyword pascalStatement	out
    syn keyword pascalStatement	library package 
    syn keyword pascalStatement	initialization finalization uses exports
    syn keyword pascalStatement	property out resourcestring threadvar
    syn keyword pascalModifier	contains
    syn keyword pascalModifier	overridden reintroduce abstract
    syn keyword pascalModifier	override export dynamic name message
    syn keyword pascalModifier	dispid index stored default nodefault readonly
    syn keyword pascalModifier	writeonly implements overload requires resident
    syn keyword pascalAcces	protected published automated
    syn keyword pascalDirective	register pascal cvar cdecl stdcall safecall
    syn keyword pascalOperator	as is
  endif

  if exists("pascal_no_functions")
    "syn keyword pascalModifier	read write
    "may confuse with Read and Write functions.  Not easy to handle.
  else
    " control flow functions
    syn keyword pascalFunction	Break Continue Exit Halt RunError

    " ordinal functions
    syn keyword pascalFunction	Dec Inc High Low

    " math functions
    syn keyword pascalFunction	Frac Int Pi

    " string functions
    syn keyword pascalFunction	Concat Copy Delete Insert Length Pos Str Val

    " memory function
    syn keyword pascalFunction	FreeMem GetMem MaxAvail MemAvail

    " pointer and address functions
    syn keyword pascalFunction	Addr Assigned CSeg DSeg Ofs Ptr Seg SPtr SSeg

    " misc functions
    syn keyword pascalFunction	Exclude FillChar Hi Include Lo Move ParamCount
    syn keyword pascalFunction	ParamStr Random Randomize SizeOf Swap TypeOf
    syn keyword pascalFunction	UpCase

    " predefined variables
    syn keyword pascalPredefined ErrorAddr ExitCode ExitProc FileMode FreeList
    syn keyword pascalPredefined FreeZero HeapEnd HeapError HeapOrg HeapPtr
    syn keyword pascalPredefined InOutRes OvrCodeList OvrDebugPtr OvrDosHandle
    syn keyword pascalPredefined OvrEmsHandle OvrHeapEnd OvrHeapOrg OvrHeapPtr
    syn keyword pascalPredefined OvrHeapSize OvrLoadList PrefixSeg RandSeed
    syn keyword pascalPredefined SaveInt00 SaveInt02 SaveInt1B SaveInt21
    syn keyword pascalPredefined SaveInt23 SaveInt24 SaveInt34 SaveInt35
    syn keyword pascalPredefined SaveInt36 SaveInt37 SaveInt38 SaveInt39
    syn keyword pascalPredefined SaveInt3A SaveInt3B SaveInt3C SaveInt3D
    syn keyword pascalPredefined SaveInt3E SaveInt3F SaveInt75 SegA000 SegB000
    syn keyword pascalPredefined SegB800 SelectorInc StackLimit Test8087

    " file functions
    syn keyword pascalFunction	Append Assign BlockRead BlockWrite ChDir Close
    syn keyword pascalFunction	Erase FilePos FileSize Flush GetDir IOResult
    syn keyword pascalFunction	MkDir Read Readln Rename Reset Rewrite RmDir
    syn keyword pascalFunction	Seek SeekEof SeekEoln SetTextBuf Truncate

    " crt unit
    syn keyword pascalFunction	AssignCrt ClrEol ClrScr Delay DelLine GotoXY
    syn keyword pascalFunction	HighVideo InsLine KeyPressed LowVideo NormVideo
    syn keyword pascalFunction	NoSound ReadKey Sound TextBackground TextColor
    syn keyword pascalFunction	TextMode WhereX WhereY Window
    syn keyword pascalPredefined CheckBreak CheckEOF CheckSnow DirectVideo
    syn keyword pascalPredefined LastMode TextAttr WindMin WindMax
    syn keyword pascalFunction BigCursor CursorOff CursorOn
    syn keyword pascalConstant Black Blue Green Cyan Red Magenta Brown
    syn keyword pascalConstant LightGray DarkGray LightBlue LightGreen
    syn keyword pascalConstant LightCyan LightRed LightMagenta Yellow White
    syn keyword pascalConstant Blink ScreenWidth ScreenHeight bw40
    syn keyword pascalConstant co40 bw80 co80 mono
    syn keyword pascalPredefined TextChar 

    " DOS unit
    syn keyword pascalFunction	AddDisk DiskFree DiskSize DosExitCode DosVersion
    syn keyword pascalFunction	EnvCount EnvStr Exec Expand FindClose FindFirst
    syn keyword pascalFunction	FindNext FSearch FSplit GetCBreak GetDate
    syn keyword pascalFunction	GetEnv GetFAttr GetFTime GetIntVec GetTime
    syn keyword pascalFunction	GetVerify Intr Keep MSDos PackTime SetCBreak
    syn keyword pascalFunction	SetDate SetFAttr SetFTime SetIntVec SetTime
    syn keyword pascalFunction	SetVerify SwapVectors UnPackTime
    syn keyword pascalConstant	FCarry FParity FAuxiliary FZero FSign FOverflow
    syn keyword pascalConstant	Hidden Sysfile VolumeId Directory Archive
    syn keyword pascalConstant	AnyFile fmClosed fmInput fmOutput fmInout
    syn keyword pascalConstant	TextRecNameLength TextRecBufSize
    syn keyword pascalType	ComStr PathStr DirStr NameStr ExtStr SearchRec
    syn keyword pascalType	FileRec TextBuf TextRec Registers DateTime
    syn keyword pascalPredefined DosError

    "Graph Unit
    syn keyword pascalFunction	Arc Bar Bar3D Circle ClearDevice ClearViewPort
    syn keyword pascalFunction	CloseGraph DetectGraph DrawPoly Ellipse
    syn keyword pascalFunction	FillEllipse FillPoly FloodFill GetArcCoords
    syn keyword pascalFunction	GetAspectRatio GetBkColor GetColor
    syn keyword pascalFunction	GetDefaultPalette GetDriverName GetFillPattern
    syn keyword pascalFunction	GetFillSettings GetGraphMode GetImage
    syn keyword pascalFunction	GetLineSettings GetMaxColor GetMaxMode GetMaxX
    syn keyword pascalFunction	GetMaxY GetModeName GetModeRange GetPalette
    syn keyword pascalFunction	GetPaletteSize GetPixel GetTextSettings
    syn keyword pascalFunction	GetViewSettings GetX GetY GraphDefaults
    syn keyword pascalFunction	GraphErrorMsg GraphResult ImageSize InitGraph
    syn keyword pascalFunction	InstallUserDriver InstallUserFont Line LineRel
    syn keyword pascalFunction	LineTo MoveRel MoveTo OutText OutTextXY
    syn keyword pascalFunction	PieSlice PutImage PutPixel Rectangle
    syn keyword pascalFunction	RegisterBGIDriver RegisterBGIFont
    syn keyword pascalFunction	RestoreCRTMode Sector SetActivePage
    syn keyword pascalFunction	SetAllPallette SetAspectRatio SetBkColor
    syn keyword pascalFunction	SetColor SetFillPattern SetFillStyle
    syn keyword pascalFunction	SetGraphBufSize SetGraphMode SetLineStyle
    syn keyword pascalFunction	SetPalette SetRGBPalette SetTextJustify
    syn keyword pascalFunction	SetTextStyle SetUserCharSize SetViewPort
    syn keyword pascalFunction	SetVisualPage SetWriteMode TextHeight TextWidth
    syn keyword pascalType	ArcCoordsType FillPatternType FillSettingsType
    syn keyword pascalType	LineSettingsType PaletteType PointType
    syn keyword pascalType	TextSettingsType ViewPortType

    " string functions
    syn keyword pascalFunction	StrAlloc StrBufSize StrCat StrComp StrCopy
    syn keyword pascalFunction	StrDispose StrECopy StrEnd StrFmt StrIComp
    syn keyword pascalFunction	StrLCat StrLComp StrLCopy StrLen StrLFmt
    syn keyword pascalFunction	StrLIComp StrLower StrMove StrNew StrPas
    syn keyword pascalFunction	StrPCopy StrPLCopy StrPos StrRScan StrScan
    syn keyword pascalFunction	StrUpper
  endif

endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link pascalAcces		pascalStatement
hi def link pascalBoolean		Boolean
hi def link pascalComment		Comment
hi def link pascalConditional	Conditional
hi def link pascalConstant		Constant
hi def link pascalDelimiter	Identifier
hi def link pascalDirective	pascalStatement
hi def link pascalException	Exception
hi def link pascalFloat		Float
hi def link pascalFunction		Function
hi def link pascalLabel		Label
hi def link pascalMatrixDelimiter	Identifier
hi def link pascalModifier		Type
hi def link pascalNumber		Number
hi def link pascalOperator		Operator
hi def link pascalPredefined	pascalStatement
hi def link pascalPreProc		PreProc
hi def link pascalRepeat		Repeat
hi def link pascalSpaceError	Error
hi def link pascalStatement	Statement
hi def link pascalString		String
hi def link pascalStringEscape	Special
hi def link pascalStringEscapeGPC	Special
hi def link pascalStringError	Error
hi def link pascalStruct		pascalStatement
hi def link pascalSymbolOperator	pascalOperator
hi def link pascalTodo		Todo
hi def link pascalType		Type
hi def link pascalUnclassified	pascalStatement
"  hi def link pascalAsm		Assembler
hi def link pascalError		Error
hi def link pascalAsmKey		pascalStatement
hi def link pascalShowTab		Error



let b:current_syntax = "pascal"

" vim: ts=8 sw=2
PK�j�Zg���vim80/syntax/docbksgml.vimnu�[���" Vim syntax file
" Language:	DocBook SGML
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Sam, 07 Sep 2002 17:20:46 CEST

let b:docbk_type="sgml"
runtime syntax/docbk.vim
PK�j�Zb�(�(vim80/syntax/lilo.vimnu�[���" Vim syntax file
" Language: lilo configuration (lilo.conf)
" Maintainer: Niels Horn <niels.horn@gmail.com>
" Previous Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" Last Change: 2010-02-03

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=@,48-57,.,-,_

syn case ignore

" Base constructs
syn match liloError "\S\+"
syn match liloComment "#.*$"
syn match liloEnviron "\$\w\+" contained
syn match liloEnviron "\${[^}]\+}" contained
syn match liloDecNumber "\d\+" contained
syn match liloHexNumber "0[xX]\x\+" contained
syn match liloDecNumberP "\d\+p\=" contained
syn match liloSpecial contained "\\\(\"\|\\\|$\)"
syn region liloString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=liloSpecial,liloEnviron
syn match liloLabel :[^ "]\+: contained contains=liloSpecial,liloEnviron
syn region liloPath start=+[$/]+ skip=+\\\\\|\\ \|\\$"+ end=+ \|$+ contained contains=liloSpecial,liloEnviron
syn match liloDecNumberList "\(\d\|,\)\+" contained contains=liloDecNumber
syn match liloDecNumberPList "\(\d\|[,p]\)\+" contained contains=liloDecNumberP,liloDecNumber
syn region liloAnything start=+[^[:space:]#]+ skip=+\\\\\|\\ \|\\$+ end=+ \|$+ contained contains=liloSpecial,liloEnviron,liloString

" Path
syn keyword liloOption backup bitmap boot disktab force-backup keytable map message nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloKernelOpt initrd root nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloImageOpt path loader table nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloDiskOpt partition nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty

" Other
syn keyword liloOption menu-scheme raid-extra-boot serial install nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloOption bios-passes-dl nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloOption default label alias wmdefault nextgroup=liloEqLabelString,liloEqLabelStringComment,liloError skipwhite skipempty
syn keyword liloKernelOpt ramdisk nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloImageOpt password range nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloDiskOpt set type nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty

" Symbolic
syn keyword liloKernelOpt vga nextgroup=liloEqVga,liloEqVgaComment,liloError skipwhite skipempty

" Number
syn keyword liloOption delay timeout verbose nextgroup=liloEqDecNumber,liloEqDecNumberComment,liloError skipwhite skipempty
syn keyword liloDiskOpt sectors heads cylinders start nextgroup=liloEqDecNumber,liloEqDecNumberComment,liloError skipwhite skipempty

" String
syn keyword liloOption menu-title nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
syn keyword liloKernelOpt append addappend nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
syn keyword liloImageOpt fallback literal nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty

" Hex number
syn keyword liloImageOpt map-drive to boot-as nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
syn keyword liloDiskOpt bios normal hidden nextgroup=liloEqNumber,liloEqNumberComment,liloError skipwhite skipempty

" Number list
syn keyword liloOption bmp-colors nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty

" Number list, some of the numbers followed by p
syn keyword liloOption bmp-table bmp-timer nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty

" Flag
syn keyword liloOption compact fix-table geometric ignore-table lba32 linear mandatory nowarn prompt
syn keyword liloOption bmp-retain el-torito-bootable-CD large-memory suppress-boot-time-BIOS-data
syn keyword liloKernelOpt read-only read-write
syn keyword liloImageOpt bypass lock mandatory optional restricted single-key unsafe
syn keyword liloImageOpt master-boot wmwarn wmdisable
syn keyword liloDiskOpt change activate deactivate inaccessible reset

" Image
syn keyword liloImage image other nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloDisk disk nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloChRules change-rules

" Vga keywords
syn keyword liloVgaKeyword ask ext extended normal contained

" Comment followed by equal sign and ...
syn match liloEqPathComment "#.*$" contained nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn match liloEqVgaComment "#.*$" contained nextgroup=liloEqVga,liloEqVgaComment,liloError skipwhite skipempty
syn match liloEqNumberComment "#.*$" contained nextgroup=liloEqNumber,liloEqNumberComment,liloError skipwhite skipempty
syn match liloEqDecNumberComment "#.*$" contained nextgroup=liloEqDecNumber,liloEqDecNumberComment,liloError skipwhite skipempty
syn match liloEqHexNumberComment "#.*$" contained nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
syn match liloEqStringComment "#.*$" contained nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
syn match liloEqLabelStringComment "#.*$" contained nextgroup=liloEqLabelString,liloEqLabelStringComment,liloError skipwhite skipempty
syn match liloEqNumberListComment "#.*$" contained nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty
syn match liloEqDecNumberPListComment "#.*$" contained nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty
syn match liloEqAnythingComment "#.*$" contained nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty

" Equal sign followed by ...
syn match liloEqPath "=" contained nextgroup=liloPath,liloPathComment,liloError skipwhite skipempty
syn match liloEqVga "=" contained nextgroup=liloVgaKeyword,liloHexNumber,liloDecNumber,liloVgaComment,liloError skipwhite skipempty
syn match liloEqNumber "=" contained nextgroup=liloDecNumber,liloHexNumber,liloNumberComment,liloError skipwhite skipempty
syn match liloEqDecNumber "=" contained nextgroup=liloDecNumber,liloDecNumberComment,liloError skipwhite skipempty
syn match liloEqHexNumber "=" contained nextgroup=liloHexNumber,liloHexNumberComment,liloError skipwhite skipempty
syn match liloEqString "=" contained nextgroup=liloString,liloStringComment,liloError skipwhite skipempty
syn match liloEqLabelString "=" contained nextgroup=liloString,liloLabel,liloLabelStringComment,liloError skipwhite skipempty
syn match liloEqNumberList "=" contained nextgroup=liloDecNumberList,liloDecNumberListComment,liloError skipwhite skipempty
syn match liloEqDecNumberPList "=" contained nextgroup=liloDecNumberPList,liloDecNumberPListComment,liloError skipwhite skipempty
syn match liloEqAnything "=" contained nextgroup=liloAnything,liloAnythingComment,liloError skipwhite skipempty

" Comment followed by ...
syn match liloPathComment "#.*$" contained nextgroup=liloPath,liloPathComment,liloError skipwhite skipempty
syn match liloVgaComment "#.*$" contained nextgroup=liloVgaKeyword,liloHexNumber,liloVgaComment,liloError skipwhite skipempty
syn match liloNumberComment "#.*$" contained nextgroup=liloDecNumber,liloHexNumber,liloNumberComment,liloError skipwhite skipempty
syn match liloDecNumberComment "#.*$" contained nextgroup=liloDecNumber,liloDecNumberComment,liloError skipwhite skipempty
syn match liloHexNumberComment "#.*$" contained nextgroup=liloHexNumber,liloHexNumberComment,liloError skipwhite skipempty
syn match liloStringComment "#.*$" contained nextgroup=liloString,liloStringComment,liloError skipwhite skipempty
syn match liloLabelStringComment "#.*$" contained nextgroup=liloString,liloLabel,liloLabelStringComment,liloError skipwhite skipempty
syn match liloDecNumberListComment "#.*$" contained nextgroup=liloDecNumberList,liloDecNumberListComment,liloError skipwhite skipempty
syn match liloDecNumberPListComment "#.*$" contained nextgroup=liloDecNumberPList,liloDecNumberPListComment,liloError skipwhite skipempty
syn match liloAnythingComment "#.*$" contained nextgroup=liloAnything,liloAnythingComment,liloError skipwhite skipempty

" Define the default highlighting

hi def link liloEqPath             liloEquals
hi def link liloEqWord             liloEquals
hi def link liloEqVga              liloEquals
hi def link liloEqDecNumber        liloEquals
hi def link liloEqHexNumber        liloEquals
hi def link liloEqNumber           liloEquals
hi def link liloEqString           liloEquals
hi def link liloEqAnything         liloEquals
hi def link liloEquals             Special

hi def link liloError              Error

hi def link liloEqPathComment      liloComment
hi def link liloEqVgaComment       liloComment
hi def link liloEqDecNumberComment liloComment
hi def link liloEqHexNumberComment liloComment
hi def link liloEqStringComment    liloComment
hi def link liloEqAnythingComment  liloComment
hi def link liloPathComment        liloComment
hi def link liloVgaComment         liloComment
hi def link liloDecNumberComment   liloComment
hi def link liloHexNumberComment   liloComment
hi def link liloNumberComment      liloComment
hi def link liloStringComment      liloComment
hi def link liloAnythingComment    liloComment
hi def link liloComment            Comment

hi def link liloDiskOpt            liloOption
hi def link liloKernelOpt          liloOption
hi def link liloImageOpt           liloOption
hi def link liloOption             Keyword

hi def link liloDecNumber          liloNumber
hi def link liloHexNumber          liloNumber
hi def link liloDecNumberP         liloNumber
hi def link liloNumber             Number
hi def link liloString             String
hi def link liloPath               Constant

hi def link liloSpecial            Special
hi def link liloLabel              Title
hi def link liloDecNumberList      Special
hi def link liloDecNumberPList     Special
hi def link liloAnything           Normal
hi def link liloEnviron            Identifier
hi def link liloVgaKeyword         Identifier
hi def link liloImage              Type
hi def link liloChRules            Preproc
hi def link liloDisk               Preproc


let b:current_syntax = "lilo"
PK�j�Z�P�C77vim80/syntax/context.vimnu�[���" Vim syntax file
" Language:           ConTeXt typesetting engine
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision:    2016 Oct 16

if exists("b:current_syntax")
  finish
endif

runtime! syntax/plaintex.vim
unlet b:current_syntax

let s:cpo_save = &cpo
set cpo&vim

" Dictionary of (filetype, group) pairs to highlight between \startGROUP \stopGROUP.
let s:context_include = get(b:, 'context_include', get(g:, 'context_include', {'xml': 'XML'}))

" For backward compatibility (g:context_include used to be a List)
if type(s:context_include) ==# type([])
  let g:context_metapost = (index(s:context_include, 'mp') != -1)
  let s:context_include = filter(
        \ {'c': 'C', 'javascript': 'JS', 'ruby': 'Ruby', 'xml': 'XML'},
        \ { k,_ -> index(s:context_include, k) != -1 }
        \ )
endif

syn iskeyword @,48-57,a-z,A-Z,192-255

syn spell   toplevel

" ConTeXt options, i.e., [...] blocks
syn region  contextOptions    matchgroup=contextDelimiter start='\['  end=']\|\ze\\stop' skip='\\\[\|\\\]' contains=ALLBUT,contextBeginEndLua,@Spell

" Highlight braces
syn match   contextDelimiter  '[{}]'

" Comments
syn match   contextComment '\\\@<!\%(\\\\\)*\zs%.*$' display contains=initexTodo
syn match   contextComment '^\s*%[CDM].*$'           display contains=initexTodo

syn match   contextBlockDelim '\\\%(start\|stop\)\a\+' contains=@NoSpell

syn region  contextEscaped    matchgroup=contextPreProc start='\\type\%(\s*\|\n\)*\z([^A-Za-z%]\)' end='\z1'
syn region  contextEscaped    matchgroup=contextPreProc start='\\type\=\%(\s\|\n\)*{' end='}'
syn region  contextEscaped    matchgroup=contextPreProc start='\\type\=\%(\s*\|\n\)*<<' end='>>'
syn region  contextEscaped    matchgroup=contextPreProc
                              \ start='\\start\z(\a*\%(typing\|typen\)\)'
                              \ end='\\stop\z1' contains=plaintexComment keepend
syn region  contextEscaped    matchgroup=contextPreProc start='\\\h\+Type\%(\s\|\n\)*{' end='}'
syn region  contextEscaped    matchgroup=contextPreProc start='\\Typed\h\+\%(\s\|\n\)*{' end='}'

syn match   contextBuiltin    display contains=@NoSpell
      \ '\\\%(unprotect\|protect\|unexpanded\)\>'

syn match   contextPreProc    '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\)\>'
                              \ contains=@NoSpell

if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
  let b:mp_metafun_macros = 1 " Highlight MetaFun keywords
  syn include @mpTop          syntax/mp.vim
  unlet b:current_syntax

  syn region  contextMPGraphic  matchgroup=contextBlockDelim
                                \ start='\\start\z(MP\%(clip\|code\|definitions\|drawing\|environment\|extensions\|inclusions\|initializations\|page\|\)\)\>.*$'
                                \ end='\\stop\z1'
                                \ contains=@mpTop,@NoSpell
  syn region  contextMPGraphic  matchgroup=contextBlockDelim
                                \ start='\\start\z(\%(\%[re]usable\|use\|unique\|static\)MPgraphic\|staticMPfigure\|uniqueMPpagegraphic\)\>.*$'
                                \ end='\\stop\z1'
                                \ contains=@mpTop,@NoSpell
endif

if get(b:, 'context_lua', get(g:, 'context_lua', 1))
  syn include @luaTop          syntax/lua.vim
  unlet b:current_syntax

  syn region  contextLuaCode    matchgroup=contextBlockDelim
                                \ start='\\startluacode\>'
                                \ end='\\stopluacode\>' keepend
                                \ contains=@luaTop,@NoSpell

  syn match   contextDirectLua  "\\\%(directlua\|ctxlua\)\>\%(\s*%.*$\)\="
                                \ nextgroup=contextBeginEndLua skipwhite skipempty
                                \ contains=initexComment
  syn region  contextBeginEndLua matchgroup=contextSpecial
                                \ start="{" end="}" skip="\\[{}]"
                                \ contained contains=@luaTop,@NoSpell
endif

for synname in keys(s:context_include)
  execute 'syn include @' . synname . 'Top' 'syntax/' . synname . '.vim'
  unlet b:current_syntax
  execute 'syn region context' . s:context_include[synname] . 'Code'
        \ 'matchgroup=contextBlockDelim'
        \ 'start=+\\start' . s:context_include[synname] . '+'
        \ 'end=+\\stop' . s:context_include[synname] . '+'
        \ 'contains=@' . synname . 'Top,@NoSpell'
endfor

syn match   contextSectioning '\\\%(start\|stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>'
                              \ contains=@NoSpell

syn match   contextSpecial    '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
                              \ contains=@NoSpell
syn match   contextSpecial    /\\[`'"]/
syn match   contextSpecial    +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+
                              \ contains=@NoSpell
syn match   contextSpecial    '\^\^.'
syn match   contextSpecial    '`\%(\\.\|\^\^.\|.\)'

syn match   contextStyle      '\\\%(em\|ss\|hw\|cg\|mf\)\>'
                              \ contains=@NoSpell
syn match   contextFont       '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
                              \ contains=@NoSpell
syn match   contextFont       '\\\%(Word\|WORD\|Words\|WORDS\)\>'
                              \ contains=@NoSpell
syn match   contextFont       '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
                              \ contains=@NoSpell
syn match   contextFont       '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
                              \ contains=@NoSpell

hi def link contextOptions    Typedef
hi def link contextComment    Comment
hi def link contextBlockDelim Keyword
hi def link contextBuiltin    Keyword
hi def link contextDelimiter  Delimiter
hi def link contextEscaped    String
hi def link contextPreProc    PreProc
hi def link contextSectioning PreProc
hi def link contextSpecial    Special
hi def link contextType       Type
hi def link contextStyle      contextType
hi def link contextFont       contextType
hi def link contextDirectLua  Keyword

let b:current_syntax = "context"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��I|��vim80/syntax/viminfo.vimnu�[���" Vim syntax file
" Language:	Vim .viminfo file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2016 Jun 05

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" The lines that are NOT recognized
syn match viminfoError "^[^\t].*"

" The one-character one-liners that are recognized
syn match viminfoStatement "^[/&$@:?=%!<]"

" The two-character one-liners that are recognized
syn match viminfoStatement "^[-'>"]."
syn match viminfoStatement +^"".+
syn match viminfoStatement "^\~[/&]"
syn match viminfoStatement "^\~[hH]"
syn match viminfoStatement "^\~[mM][sS][lL][eE]\d\+\~\=[/&]"

syn match viminfoOption "^\*.*=" contains=viminfoOptionName
syn match viminfoOptionName "\*\a*"ms=s+1 contained

" Comments
syn match viminfoComment "^#.*"

" New style lines.  TODO: highlight numbers and strings.
syn match viminfoNew "^|.*"

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link viminfoComment	Comment
hi def link viminfoError	Error
hi def link viminfoStatement	Statement
hi def link viminfoNew		String

let b:current_syntax = "viminfo"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 sw=2
PK�j�Z��9�AAvim80/syntax/aap.vimnu�[���" Vim syntax file
" Language:	A-A-P recipe
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2004 Jun 13

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn include @aapPythonScript syntax/python.vim

syn match       aapVariable /$[-+?*="'\\!]*[a-zA-Z0-9_.]*/
syn match       aapVariable /$[-+?*="'\\!]*([a-zA-Z0-9_.]*)/
syn keyword	aapTodo contained TODO Todo
syn match	aapString +'[^']\{-}'+
syn match	aapString +"[^"]\{-}"+

syn match	aapCommand '^\s*:action\>'
syn match	aapCommand '^\s*:add\>'
syn match	aapCommand '^\s*:addall\>'
syn match	aapCommand '^\s*:asroot\>'
syn match	aapCommand '^\s*:assertpkg\>'
syn match	aapCommand '^\s*:attr\>'
syn match	aapCommand '^\s*:attribute\>'
syn match	aapCommand '^\s*:autodepend\>'
syn match	aapCommand '^\s*:buildcheck\>'
syn match	aapCommand '^\s*:cd\>'
syn match	aapCommand '^\s*:chdir\>'
syn match	aapCommand '^\s*:checkin\>'
syn match	aapCommand '^\s*:checkout\>'
syn match	aapCommand '^\s*:child\>'
syn match	aapCommand '^\s*:chmod\>'
syn match	aapCommand '^\s*:commit\>'
syn match	aapCommand '^\s*:commitall\>'
syn match	aapCommand '^\s*:conf\>'
syn match	aapCommand '^\s*:copy\>'
syn match	aapCommand '^\s*:del\>'
syn match	aapCommand '^\s*:deldir\>'
syn match	aapCommand '^\s*:delete\>'
syn match	aapCommand '^\s*:delrule\>'
syn match	aapCommand '^\s*:dll\>'
syn match	aapCommand '^\s*:do\>'
syn match	aapCommand '^\s*:error\>'
syn match	aapCommand '^\s*:execute\>'
syn match	aapCommand '^\s*:exit\>'
syn match	aapCommand '^\s*:export\>'
syn match	aapCommand '^\s*:fetch\>'
syn match	aapCommand '^\s*:fetchall\>'
syn match	aapCommand '^\s*:filetype\>'
syn match	aapCommand '^\s*:finish\>'
syn match	aapCommand '^\s*:global\>'
syn match	aapCommand '^\s*:import\>'
syn match	aapCommand '^\s*:include\>'
syn match	aapCommand '^\s*:installpkg\>'
syn match	aapCommand '^\s*:lib\>'
syn match	aapCommand '^\s*:local\>'
syn match	aapCommand '^\s*:log\>'
syn match	aapCommand '^\s*:ltlib\>'
syn match	aapCommand '^\s*:mkdir\>'
syn match	aapCommand '^\s*:mkdownload\>'
syn match	aapCommand '^\s*:move\>'
syn match	aapCommand '^\s*:pass\>'
syn match	aapCommand '^\s*:popdir\>'
syn match	aapCommand '^\s*:produce\>'
syn match	aapCommand '^\s*:program\>'
syn match	aapCommand '^\s*:progsearch\>'
syn match	aapCommand '^\s*:publish\>'
syn match	aapCommand '^\s*:publishall\>'
syn match	aapCommand '^\s*:pushdir\>'
syn match	aapCommand '^\s*:quit\>'
syn match	aapCommand '^\s*:recipe\>'
syn match	aapCommand '^\s*:refresh\>'
syn match	aapCommand '^\s*:remove\>'
syn match	aapCommand '^\s*:removeall\>'
syn match	aapCommand '^\s*:require\>'
syn match	aapCommand '^\s*:revise\>'
syn match	aapCommand '^\s*:reviseall\>'
syn match	aapCommand '^\s*:route\>'
syn match	aapCommand '^\s*:rule\>'
syn match	aapCommand '^\s*:start\>'
syn match	aapCommand '^\s*:symlink\>'
syn match	aapCommand '^\s*:sys\>'
syn match	aapCommand '^\s*:sysdepend\>'
syn match	aapCommand '^\s*:syspath\>'
syn match	aapCommand '^\s*:system\>'
syn match	aapCommand '^\s*:tag\>'
syn match	aapCommand '^\s*:tagall\>'
syn match	aapCommand '^\s*:toolsearch\>'
syn match	aapCommand '^\s*:totype\>'
syn match	aapCommand '^\s*:touch\>'
syn match	aapCommand '^\s*:tree\>'
syn match	aapCommand '^\s*:unlock\>'
syn match	aapCommand '^\s*:update\>'
syn match	aapCommand '^\s*:usetool\>'
syn match	aapCommand '^\s*:variant\>'
syn match	aapCommand '^\s*:verscont\>'

syn match	aapCommand '^\s*:print\>' nextgroup=aapPipeEnd
syn match	aapPipeCmd '\s*:print\>' nextgroup=aapPipeEnd contained
syn match	aapCommand '^\s*:cat\>' nextgroup=aapPipeEnd
syn match	aapPipeCmd '\s*:cat\>' nextgroup=aapPipeEnd contained
syn match	aapCommand '^\s*:syseval\>' nextgroup=aapPipeEnd
syn match	aapPipeCmd '\s*:syseval\>' nextgroup=aapPipeEnd contained
syn match	aapPipeCmd '\s*:assign\>' contained
syn match	aapCommand '^\s*:eval\>' nextgroup=aapPipeEnd
syn match	aapPipeCmd '\s*:eval\>' nextgroup=aapPipeEndPy contained
syn match	aapPipeCmd '\s*:tee\>' nextgroup=aapPipeEnd contained
syn match	aapPipeCmd '\s*:log\>' nextgroup=aapPipeEnd contained
syn match	aapPipeEnd '[^|]*|' nextgroup=aapPipeCmd contained skipnl
syn match	aapPipeEndPy '[^|]*|' nextgroup=aapPipeCmd contained skipnl contains=@aapPythonScript
syn match	aapPipeStart '^\s*|' nextgroup=aapPipeCmd

"
" A Python line starts with @.  Can be continued with a trailing backslash.
syn region aapPythonRegion start="\s*@" skip='\\$' end=+$+ contains=@aapPythonScript keepend
"
" A Python block starts with ":python" and continues so long as the indent is
" bigger.
syn region aapPythonRegion matchgroup=aapCommand start="\z(\s*\):python" skip='\n\z1\s\|\n\s*\n' end=+$+ contains=@aapPythonScript

" A Python expression is enclosed in backticks.
syn region aapPythonRegion start="`" skip="``" end="`" contains=@aapPythonScript

" TODO: There is something wrong with line continuation.
syn match	aapComment '#.*' contains=aapTodo
syn match	aapComment '#.*\(\\\n.*\)' contains=aapTodo

syn match	aapSpecial '$#'
syn match	aapSpecial '$\$'
syn match	aapSpecial '$(.)'

" A heredoc assignment.
syn region aapHeredoc start="^\s*\k\+\s*$\=+\=?\=<<\s*\z(\S*\)"hs=e+1 end="^\s*\z1\s*$"he=s-1

" Syncing is needed for ":python" and "VAR << EOF".  Don't use Python syncing
syn sync clear
syn sync fromstart

" The default highlighting.
hi def link aapTodo		Todo
hi def link aapString		String
hi def link aapComment		Comment
hi def link aapSpecial		Special
hi def link aapVariable		Identifier
hi def link aapPipeCmd		aapCommand
hi def link aapCommand		Statement
hi def link aapHeredoc		Constant

let b:current_syntax = "aap"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z����6�6vim80/syntax/nqc.vimnu�[���" Vim syntax file
" Language:	NQC - Not Quite C, for LEGO mindstorms
"		NQC homepage: http://www.enteract.com/~dbaum/nqc/
" Maintainer:	Stefan Scherer <stefan@enotes.de>
" Last Change:	2001 May 10
" URL:		http://www.enotes.de/twiki/pub/Home/LegoMindstorms/nqc.vim
" Filenames:	.nqc

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Statements
syn keyword	nqcStatement	break return continue start stop abs sign
syn keyword     nqcStatement	sub task
syn keyword     nqcLabel	case default
syn keyword	nqcConditional	if else switch
syn keyword	nqcRepeat	while for do until repeat

" Scout and RCX2
syn keyword	nqcEvents	acquire catch monitor

" types and classes
syn keyword	nqcType		int true false void
syn keyword	nqcStorageClass	asm const inline



" Sensors --------------------------------------------
" Input Sensors
syn keyword     nqcConstant	SENSOR_1 SENSOR_2 SENSOR_3

" Types for SetSensorType()
syn keyword     nqcConstant	SENSOR_TYPE_TOUCH SENSOR_TYPE_TEMPERATURE
syn keyword     nqcConstant	SENSOR_TYPE_LIGHT SENSOR_TYPE_ROTATION
syn keyword     nqcConstant	SENSOR_LIGHT SENSOR_TOUCH

" Modes for SetSensorMode()
syn keyword     nqcConstant	SENSOR_MODE_RAW SENSOR_MODE_BOOL
syn keyword     nqcConstant	SENSOR_MODE_EDGE SENSOR_MODE_PULSE
syn keyword     nqcConstant	SENSOR_MODE_PERCENT SENSOR_MODE_CELSIUS
syn keyword     nqcConstant	SENSOR_MODE_FAHRENHEIT SENSOR_MODE_ROTATION

" Sensor configurations for SetSensor()
syn keyword     nqcConstant	SENSOR_TOUCH SENSOR_LIGHT SENSOR_ROTATION
syn keyword     nqcConstant	SENSOR_CELSIUS SENSOR_FAHRENHEIT SENSOR_PULSE
syn keyword     nqcConstant	SENSOR_EDGE

" Functions - All
syn keyword	nqcFunction	ClearSensor
syn keyword	nqcFunction	SensorValue SensorType

" Functions - RCX
syn keyword	nqcFunction	SetSensor SetSensorType
syn keyword	nqcFunction	SensorValueBool

" Functions - RCX, CyberMaster
syn keyword	nqcFunction	SetSensorMode SensorMode

" Functions - RCX, Scout
syn keyword	nqcFunction	SensorValueRaw

" Functions - Scout
syn keyword	nqcFunction	SetSensorLowerLimit SetSensorUpperLimit
syn keyword	nqcFunction	SetSensorHysteresis CalibrateSensor


" Outputs --------------------------------------------
" Outputs for On(), Off(), etc.
syn keyword     nqcConstant	OUT_A OUT_B OUT_C

" Modes for SetOutput()
syn keyword     nqcConstant	OUT_ON OUT_OFF OUT_FLOAT

" Directions for SetDirection()
syn keyword     nqcConstant	OUT_FWD OUT_REV OUT_TOGGLE

" Output power for SetPower()
syn keyword     nqcConstant	OUT_LOW OUT_HALF OUT_FULL

" Functions - All
syn keyword	nqcFunction	SetOutput SetDirection SetPower OutputStatus
syn keyword	nqcFunction	On Off Float Fwd Rev Toggle
syn keyword	nqcFunction	OnFwd OnRev OnFor

" Functions - RXC2, Scout
syn keyword	nqcFunction	SetGlobalOutput SetGlobalDirection SetMaxPower
syn keyword	nqcFunction	GlobalOutputStatus


" Sound ----------------------------------------------
" Sounds for PlaySound()
syn keyword     nqcConstant	SOUND_CLICK SOUND_DOUBLE_BEEP SOUND_DOWN
syn keyword     nqcConstant	SOUND_UP SOUND_LOW_BEEP SOUND_FAST_UP

" Functions - All
syn keyword	nqcFunction	PlaySound PlayTone

" Functions - RCX2, Scout
syn keyword	nqcFunction	MuteSound UnmuteSound ClearSound
syn keyword	nqcFunction	SelectSounds


" LCD ------------------------------------------------
" Modes for SelectDisplay()
syn keyword     nqcConstant	DISPLAY_WATCH DISPLAY_SENSOR_1 DISPLAY_SENSOR_2
syn keyword     nqcConstant	DISPLAY_SENSOR_3 DISPLAY_OUT_A DISPLAY_OUT_B
syn keyword     nqcConstant	DISPLAY_OUT_C
" RCX2
syn keyword     nqcConstant	DISPLAY_USER

" Functions - RCX
syn keyword	nqcFunction	SelectDisplay
" Functions - RCX2
syn keyword	nqcFunction	SetUserDisplay


" Communication --------------------------------------
" Messages - RCX, Scout ------------------------------
" Tx power level for SetTxPower()
syn keyword     nqcConstant	TX_POWER_LO TX_POWER_HI

" Functions - RCX, Scout
syn keyword	nqcFunction	Message ClearMessage SendMessage SetTxPower

" Serial - RCX2 --------------------------------------
" for SetSerialComm()
syn keyword     nqcConstant	SERIAL_COMM_DEFAULT SERIAL_COMM_4800
syn keyword     nqcConstant	SERIAL_COMM_DUTY25 SERIAL_COMM_76KHZ

" for SetSerialPacket()
syn keyword     nqcConstant	SERIAL_PACKET_DEFAULT SERIAL_PACKET_PREAMBLE
syn keyword     nqcConstant	SERIAL_PACKET_NEGATED SERIAL_PACKET_CHECKSUM
syn keyword     nqcConstant	SERIAL_PACKET_RCX

" Functions - RCX2
syn keyword	nqcFunction	SetSerialComm SetSerialPacket SetSerialData
syn keyword	nqcFunction	SerialData SendSerial

" VLL - Scout ----------------------------------------
" Functions - Scout
syn keyword	nqcFunction	SendVLL


" Timers ---------------------------------------------
" Functions - All
syn keyword	nqcFunction	ClearTimer Timer

" Functions - RCX2
syn keyword	nqcFunction	SetTimer FastTimer


" Counters -------------------------------------------
" Functions - RCX2, Scout
syn keyword	nqcFunction	ClearCounter IncCounter DecCounter Counter


" Access Control -------------------------------------
syn keyword     nqcConstant	ACQUIRE_OUT_A ACQUIRE_OUT_B ACQUIRE_OUT_C
syn keyword     nqcConstant	ACQUIRE_SOUND
" RCX2 only
syn keyword     nqcConstant	ACQUIRE_USER_1 ACQUIRE_USER_2 ACQUIRE_USER_3
syn keyword     nqcConstant	ACQUIRE_USER_4

" Functions - RCX2, Scout
syn keyword	nqcFunction	SetPriority


" Events ---------------------------------------------
" RCX2 Events
syn keyword     nqcConstant	EVENT_TYPE_PRESSED EVENT_TYPE_RELEASED
syn keyword     nqcConstant	EVENT_TYPE_PULSE EVENT_TYPE_EDGE
syn keyword     nqcConstant	EVENT_TYPE_FAST_CHANGE EVENT_TYPE_LOW
syn keyword     nqcConstant	EVENT_TYPE_NORMAL EVENT_TYPE_HIGH
syn keyword     nqcConstant	EVENT_TYPE_CLICK EVENT_TYPE_DOUBLECLICK
syn keyword     nqcConstant	EVENT_TYPE_MESSAGE

" Scout Events
syn keyword     nqcConstant	EVENT_1_PRESSED EVENT_1_RELEASED
syn keyword     nqcConstant	EVENT_2_PRESSED EVENT_2_RELEASED
syn keyword     nqcConstant	EVENT_LIGHT_HIGH EVENT_LIGHT_NORMAL
syn keyword     nqcConstant	EVENT_LIGHT_LOW EVENT_LIGHT_CLICK
syn keyword     nqcConstant	EVENT_LIGHT_DOUBLECLICK EVENT_COUNTER_0
syn keyword     nqcConstant	EVENT_COUNTER_1 EVENT_TIMER_0 EVENT_TIMER_1
syn keyword     nqcConstant	EVENT_TIMER_2 EVENT_MESSAGE

" Functions - RCX2, Scout
syn keyword	nqcFunction	ActiveEvents Event

" Functions - RCX2
syn keyword	nqcFunction	CurrentEvents
syn keyword	nqcFunction	SetEvent ClearEvent ClearAllEvents EventState
syn keyword	nqcFunction	CalibrateEvent SetUpperLimit UpperLimit
syn keyword	nqcFunction	SetLowerLimit LowerLimit SetHysteresis
syn keyword	nqcFunction	Hysteresis
syn keyword	nqcFunction	SetClickTime ClickTime SetClickCounter
syn keyword	nqcFunction	ClickCounter

" Functions - Scout
syn keyword	nqcFunction	SetSensorClickTime SetCounterLimit
syn keyword	nqcFunction	SetTimerLimit


" Data Logging ---------------------------------------
" Functions - RCX
syn keyword	nqcFunction	CreateDatalog AddToDatalog
syn keyword	nqcFunction	UploadDatalog


" General Features -----------------------------------
" Functions - All
syn keyword	nqcFunction	Wait StopAllTasks Random
syn keyword	nqcFunction	SetSleepTime SleepNow

" Functions - RCX
syn keyword	nqcFunction	Program Watch SetWatch

" Functions - RCX2
syn keyword	nqcFunction	SetRandomSeed SelectProgram
syn keyword	nqcFunction	BatteryLevel FirmwareVersion

" Functions - Scout
" Parameters for SetLight()
syn keyword     nqcConstant	LIGHT_ON LIGHT_OFF
syn keyword	nqcFunction	SetScoutRules ScoutRules SetScoutMode
syn keyword	nqcFunction	SetEventFeedback EventFeedback SetLight

" additional CyberMaster defines
syn keyword     nqcConstant	OUT_L OUT_R OUT_X
syn keyword     nqcConstant	SENSOR_L SENSOR_M SENSOR_R
" Functions - CyberMaster
syn keyword	nqcFunction	Drive OnWait OnWaitDifferent
syn keyword	nqcFunction	ClearTachoCounter TachoCount TachoSpeed
syn keyword	nqcFunction	ExternalMotorRunning AGC



" nqcCommentGroup allows adding matches for special things in comments
syn keyword	nqcTodo		contained TODO FIXME XXX
syn cluster	nqcCommentGroup	contains=nqcTodo

"when wanted, highlight trailing white space
if exists("nqc_space_errors")
  if !exists("nqc_no_trail_space_error")
    syn match	nqcSpaceError	display excludenl "\s\+$"
  endif
  if !exists("nqc_no_tab_space_error")
    syn match	nqcSpaceError	display " \+\t"me=e-1
  endif
endif

"catch errors caused by wrong parenthesis and brackets
syn cluster	nqcParenGroup	contains=nqcParenError,nqcIncluded,nqcCommentSkip,@nqcCommentGroup,nqcCommentStartError,nqcCommentSkip,nqcCppOut,nqcCppOut2,nqcCppSkip,nqcNumber,nqcFloat,nqcNumbers
if exists("nqc_no_bracket_error")
  syn region	nqcParen	transparent start='(' end=')' contains=ALLBUT,@nqcParenGroup,nqcCppParen
  " nqcCppParen: same as nqcParen but ends at end-of-line; used in nqcDefine
  syn region	nqcCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcParen
  syn match	nqcParenError	display ")"
  syn match	nqcErrInParen	display contained "[{}]"
else
  syn region	nqcParen		transparent start='(' end=')' contains=ALLBUT,@nqcParenGroup,nqcCppParen,nqcErrInBracket,nqcCppBracket
  " nqcCppParen: same as nqcParen but ends at end-of-line; used in nqcDefine
  syn region	nqcCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcErrInBracket,nqcParen,nqcBracket
  syn match	nqcParenError	display "[\])]"
  syn match	nqcErrInParen	display contained "[\]{}]"
  syn region	nqcBracket	transparent start='\[' end=']' contains=ALLBUT,@nqcParenGroup,nqcErrInParen,nqcCppParen,nqcCppBracket
  " nqcCppBracket: same as nqcParen but ends at end-of-line; used in nqcDefine
  syn region	nqcCppBracket	transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcErrInParen,nqcParen,nqcBracket
  syn match	nqcErrInBracket	display contained "[);{}]"
endif

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	nqcNumbers	display transparent "\<\d\|\.\d" contains=nqcNumber,nqcFloat
" Same, but without octal error (for comments)
syn match	nqcNumber	display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match	nqcNumber	display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match	nqcFloat	display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match	nqcFloat	display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match	nqcFloat	display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match	nqcFloat	display contained "\d\+e[-+]\=\d\+[fl]\=\>"
" flag an octal number with wrong digits
syn case match

syn region	nqcCommentL	start="//" skip="\\$" end="$" keepend contains=@nqcCommentGroup,nqcSpaceError
syn region	nqcComment	matchgroup=nqcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@nqcCommentGroup,nqcCommentStartError,nqcSpaceError

" keep a // comment separately, it terminates a preproc. conditional
syntax match	nqcCommentError	display "\*/"
syntax match	nqcCommentStartError display "/\*" contained





syn region	nqcPreCondit	start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=nqcComment,nqcCharacter,nqcCppParen,nqcParenError,nqcNumbers,nqcCommentError,nqcSpaceError
syn match	nqcPreCondit	display "^\s*#\s*\(else\|endif\)\>"
if !exists("nqc_no_if0")
  syn region	nqcCppOut		start="^\s*#\s*if\s\+0\>" end=".\|$" contains=nqcCppOut2
  syn region	nqcCppOut2	contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=nqcSpaceError,nqcCppSkip
  syn region	nqcCppSkip	contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=nqcSpaceError,nqcCppSkip
endif
syn region	nqcIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	nqcInclude	display "^\s*#\s*include\>\s*["]" contains=nqcIncluded
"syn match nqcLineSkip	"\\$"
syn cluster	nqcPreProcGroup	contains=nqcPreCondit,nqcIncluded,nqcInclude,nqcDefine,nqcErrInParen,nqcErrInBracket,nqcCppOut,nqcCppOut2,nqcCppSkip,nqcNumber,nqcFloat,nqcNumbers,nqcCommentSkip,@nqcCommentGroup,nqcCommentStartError,nqcParen,nqcBracket
syn region	nqcDefine	start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" contains=ALLBUT,@nqcPreProcGroup
syn region	nqcPreProc	start="^\s*#\s*\(pragma\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@nqcPreProcGroup

if !exists("nqc_minlines")
  if !exists("nqc_no_if0")
    let nqc_minlines = 50	    " #if 0 constructs can be long
  else
    let nqc_minlines = 15	    " mostly for () constructs
  endif
endif
exec "syn sync ccomment nqcComment minlines=" . nqc_minlines

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link nqcLabel		Label
hi def link nqcConditional		Conditional
hi def link nqcRepeat		Repeat
hi def link nqcCharacter		Character
hi def link nqcNumber		Number
hi def link nqcFloat		Float
hi def link nqcFunction		Function
hi def link nqcParenError		nqcError
hi def link nqcErrInParen		nqcError
hi def link nqcErrInBracket	nqcError
hi def link nqcCommentL		nqcComment
hi def link nqcCommentStart	nqcComment
hi def link nqcCommentError	nqcError
hi def link nqcCommentStartError	nqcError
hi def link nqcSpaceError		nqcError
hi def link nqcStorageClass	StorageClass
hi def link nqcInclude		Include
hi def link nqcPreProc		PreProc
hi def link nqcDefine		Macro
hi def link nqcIncluded		String
hi def link nqcError		Error
hi def link nqcStatement		Statement
hi def link nqcEvents		Statement
hi def link nqcPreCondit		PreCondit
hi def link nqcType		Type
hi def link nqcConstant		Constant
hi def link nqcCommentSkip		nqcComment
hi def link nqcComment		Comment
hi def link nqcTodo		Todo
hi def link nqcCppSkip		nqcCppOut
hi def link nqcCppOut2		nqcCppOut
hi def link nqcCppOut		Comment


let b:current_syntax = "nqc"

" vim: ts=8
PK�j�Z
�bZbZvim80/syntax/lpc.vimnu�[���" Vim syntax file
" Language:	LPC
" Maintainer:	Shizhu Pan <poet@mudbuilder.net>
" URL:		http://poet.tomud.com/pub/lpc.vim.bz2
" Last Change:	2016 Aug 31
" Comments:	If you are using Vim 6.2 or later, see :h lpc.vim for
"		file type recognizing, if not, you had to use modeline.


" Nodule: This is the start nodule. {{{1

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Nodule: Keywords {{{1

" LPC keywords
" keywords should always be highlighted so "contained" is not used.
syn cluster	lpcKeywdGrp	contains=lpcConditional,lpcLabel,lpcOperator,lpcRepeat,lpcStatement,lpcModifier,lpcReserved

syn keyword	lpcConditional	if else switch
syn keyword	lpcLabel	case default
syn keyword	lpcOperator	catch efun in inherit
syn keyword	lpcRepeat	do for foreach while
syn keyword	lpcStatement	break continue return

syn match	lpcEfunError	/efun[^:]/ display

" Illegal to use keyword as function
" It's not working, maybe in the next version.
syn keyword	lpcKeywdError	contained if for foreach return switch while

" These are keywords only because they take lvalue or type as parameter,
" so these keywords should only be used as function but cannot be names of
" user-defined functions.
syn keyword	lpcKeywdFunc	new parse_command sscanf time_expression

" Nodule: Type and modifiers {{{1

" Type names list.

" Special types
syn keyword	lpcType		void mixed unknown
" Scalar/Value types.
syn keyword	lpcType		int float string
" Pointer types.
syn keyword	lpcType		array buffer class function mapping object
" Other types.
if exists("lpc_compat_32")
    syn keyword     lpcType	    closure status funcall
else
    syn keyword     lpcError	    closure status
    syn keyword     lpcType	    multiset
endif

" Type modifier.
syn keyword	lpcModifier	nomask private public
syn keyword	lpcModifier	varargs virtual

" sensible modifiers
if exists("lpc_pre_v22")
    syn keyword	lpcReserved	nosave protected ref
    syn keyword	lpcModifier	static
else
    syn keyword	lpcError	static
    syn keyword	lpcModifier	nosave protected ref
endif

" Nodule: Applies {{{1

" Match a function declaration or function pointer
syn match	lpcApplyDecl	excludenl /->\h\w*(/me=e-1 contains=lpcApplies transparent display

" We should note that in func_spec.c the efun definition syntax is so
" complicated that I use such a long regular expression to describe.
syn match	lpcLongDecl	excludenl /\(\s\|\*\)\h\+\s\h\+(/me=e-1 contains=@lpcEfunGroup,lpcType,@lpcKeywdGrp transparent display

" this is form for all functions
" ->foo() form had been excluded
syn match	lpcFuncDecl	excludenl /\h\w*(/me=e-1 contains=lpcApplies,@lpcEfunGroup,lpcKeywdError transparent display

" The (: :) parenthesis or $() forms a function pointer
syn match	lpcFuncName	/(:\s*\h\+\s*:)/me=e-1 contains=lpcApplies,@lpcEfunGroup transparent display contained
syn match	lpcFuncName	/(:\s*\h\+,/ contains=lpcApplies,@lpcEfunGroup transparent display contained
syn match	lpcFuncName	/\$(\h\+)/ contains=lpcApplies,@lpcEfunGroup transparent display contained

" Applies list.
"       system applies
syn keyword     lpcApplies      contained __INIT clean_up create destructor heart_beat id init move_or_destruct reset
"       interactive
syn keyword     lpcApplies      contained catch_tell logon net_dead process_input receive_message receive_snoop telnet_suboption terminal_type window_size write_prompt
"       master applies
syn keyword     lpcApplies      contained author_file compile_object connect crash creator_file domain_file epilog error_handler flag get_bb_uid get_root_uid get_save_file_name log_error make_path_absolute object_name preload privs_file retrieve_ed_setup save_ed_setup slow_shutdown
syn keyword     lpcApplies      contained valid_asm valid_bind valid_compile_to_c valid_database valid_hide valid_link valid_object valid_override valid_read valid_save_binary valid_seteuid valid_shadow valid_socket valid_write
"       parsing
syn keyword     lpcApplies      contained inventory_accessible inventory_visible is_living parse_command_adjectiv_id_list parse_command_adjective_id_list parse_command_all_word parse_command_id_list parse_command_plural_id_list parse_command_prepos_list parse_command_users parse_get_environment parse_get_first_inventory parse_get_next_inventory parser_error_message


" Nodule: Efuns {{{1

syn cluster	lpcEfunGroup	contains=lpc_efuns,lpcOldEfuns,lpcNewEfuns,lpcKeywdFunc

" Compat32 efuns
if exists("lpc_compat_32")
    syn keyword lpc_efuns	contained closurep heart_beat_info m_delete m_values m_indices query_once_interactive strstr
else
    syn match   lpcErrFunc	/#`\h\w*/
    " Shell compatible first line comment.
    syn region	lpcCommentFunc	start=/^#!/ end=/$/
endif

" pre-v22 efuns which are removed in newer versions.
syn keyword     lpcOldEfuns     contained tail dump_socket_status

" new efuns after v22 should be added here!
syn keyword     lpcNewEfuns     contained socket_status

" LPC efuns list.
" DEBUG efuns Not included.
" New efuns should NOT be added to this list, see v22 efuns above.
" Efuns list {{{2
syn keyword     lpc_efuns       contained acos add_action all_inventory all_previous_objects allocate allocate_buffer allocate_mapping apply arrayp asin atan author_stats
syn keyword     lpc_efuns       contained bind break_string bufferp
syn keyword     lpc_efuns       contained cache_stats call_other call_out call_out_info call_stack capitalize catch ceil check_memory children classp clear_bit clone_object clonep command commands copy cos cp crc32 crypt ctime
syn keyword     lpc_efuns       contained db_close db_commit db_connect db_exec db_fetch db_rollback db_status debug_info debugmalloc debug_message deep_inherit_list deep_inventory destruct disable_commands disable_wizard domain_stats dumpallobj dump_file_descriptors dump_prog
syn keyword     lpc_efuns       contained each ed ed_cmd ed_start enable_commands enable_wizard environment error errorp eval_cost evaluate exec exp explode export_uid external_start
syn keyword     lpc_efuns       contained fetch_variable file_length file_name file_size filter filter_array filter_mapping find_call_out find_living find_object find_player first_inventory floatp floor flush_messages function_exists function_owner function_profile functionp functions
syn keyword     lpc_efuns       contained generate_source get_char get_config get_dir geteuid getuid
syn keyword     lpc_efuns       contained heart_beats
syn keyword     lpc_efuns       contained id_matrix implode in_edit in_input inherit_list inherits input_to interactive intp
syn keyword     lpc_efuns       contained keys
syn keyword     lpc_efuns       contained link living livings load_object localtime log log10 lookat_rotate lower_case lpc_info
syn keyword     lpc_efuns       contained malloc_check malloc_debug malloc_status map map_array map_delete map_mapping mapp master match_path max_eval_cost member_array memory_info memory_summary message mkdir moncontrol move_object mud_status
syn keyword     lpc_efuns       contained named_livings network_stats next_bit next_inventory notify_fail nullp
syn keyword     lpc_efuns       contained objectp objects oldcrypt opcprof origin
syn keyword     lpc_efuns       contained parse_add_rule parse_add_synonym parse_command parse_dump parse_init parse_my_rules parse_refresh parse_remove parse_sentence pluralize pointerp pow present previous_object printf process_string process_value program_info
syn keyword     lpc_efuns       contained query_ed_mode query_heart_beat query_host_name query_idle query_ip_name query_ip_number query_ip_port query_load_average query_notify_fail query_privs query_replaced_program query_shadowing query_snoop query_snooping query_verb
syn keyword     lpc_efuns       contained random read_buffer read_bytes read_file receive reclaim_objects refs regexp reg_assoc reload_object remove_action remove_call_out remove_interactive remove_shadow rename repeat_string replace_program replace_string replaceable reset_eval_cost resolve restore_object restore_variable rm rmdir rotate_x rotate_y rotate_z rusage
syn keyword     lpc_efuns       contained save_object save_variable say scale set_author set_bit set_eval_limit set_heart_beat set_hide set_light set_living_name set_malloc_mask set_privs set_reset set_this_player set_this_user seteuid shadow shallow_inherit_list shout shutdown sin sizeof snoop socket_accept socket_acquire socket_address socket_bind socket_close socket_connect socket_create socket_error socket_listen socket_release socket_write sort_array sprintf sqrt stat store_variable strcmp stringp strlen strsrch
syn keyword     lpc_efuns       contained tan tell_object tell_room terminal_colour test_bit this_interactive this_object this_player this_user throw time to_float to_int trace traceprefix translate typeof
syn keyword     lpc_efuns       contained undefinedp unique_array unique_mapping upper_case uptime userp users
syn keyword     lpc_efuns       contained values variables virtualp
syn keyword     lpc_efuns       contained wizardp write write_buffer write_bytes write_file

" Nodule: Constants {{{1

" LPC Constants.
" like keywords, constants are always highlighted, be careful to choose only
" the constants we used to add to this list.
syn keyword     lpcConstant     __ARCH__ __COMPILER__ __DIR__ __FILE__ __OPTIMIZATION__ __PORT__ __VERSION__
"       Defines in options.h are all predefined in LPC sources surrounding by
"       two underscores. Do we need to include all of that?
syn keyword     lpcConstant     __SAVE_EXTENSION__ __HEARTBEAT_INTERVAL__
"       from the documentation we know that these constants remains only for
"       backward compatibility and should not be used any more.
syn keyword     lpcConstant     HAS_ED HAS_PRINTF HAS_RUSAGE HAS_DEBUG_LEVEL
syn keyword     lpcConstant     MUD_NAME F__THIS_OBJECT

" Nodule: Todo for this file.  {{{1

" TODO : need to check for LPC4 syntax and other series of LPC besides
" v22, b21 and l32, if you had a good idea, contact me at poet@mudbuilder.net
" and I will be appreciated about that.

" Notes about some FAQ:
"
" About variables : We adopts the same behavior for C because almost all the
" LPC programmers are also C programmers, so we don't need separate settings
" for C and LPC. That is the reason why I don't change variables like
" "c_no_utf"s to "lpc_no_utf"s.
"
" Copy : Some of the following seems to be copied from c.vim but not quite
" the same in details because the syntax for C and LPC is different.
"
" Color scheme : this syntax file had been thouroughly tested to work well
" for all of the dark-backgrounded color schemes Vim has provided officially,
" and it should be quite Ok for all of the bright-backgrounded color schemes,
" of course it works best for the color scheme that I am using, download it
" from http://poet.tomud.com/pub/ps_color.vim.bz2 if you want to try it.
"

" Nodule: String and Character {{{1


" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match	lpcSpecial	display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
if !exists("c_no_utf")
  syn match	lpcSpecial	display contained "\\\(u\x\{4}\|U\x\{8}\)"
endif

" LPC version of sprintf() format,
syn match	lpcFormat	display "%\(\d\+\)\=[-+ |=#@:.]*\(\d\+\)\=\('\I\+'\|'\I*\\'\I*'\)\=[OsdicoxXf]" contained
syn match	lpcFormat	display "%%" contained
syn region	lpcString	start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lpcSpecial,lpcFormat
" lpcCppString: same as lpcString, but ends at end of line
syn region	lpcCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=lpcSpecial,lpcFormat

" LPC preprocessor for the text formatting short cuts
" Thanks to Dr. Charles E. Campbell <cec@gryphon.gsfc.nasa.gov>
"	he suggests the best way to do this.
syn region	lpcTextString	start=/@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial
syn region	lpcArrayString	start=/@@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial

" Character
syn match	lpcCharacter	"L\='[^\\]'"
syn match	lpcCharacter	"L'[^']*'" contains=lpcSpecial
syn match	lpcSpecialError	"L\='\\[^'\"?\\abefnrtv]'"
syn match	lpcSpecialCharacter "L\='\\['\"?\\abefnrtv]'"
syn match	lpcSpecialCharacter display "L\='\\\o\{1,3}'"
syn match	lpcSpecialCharacter display "'\\x\x\{1,2}'"
syn match	lpcSpecialCharacter display "L'\\x\x\+'"

" Nodule: White space {{{1

" when wanted, highlight trailing white space
if exists("c_space_errors")
  if !exists("c_no_trail_space_error")
    syn match	lpcSpaceError	display excludenl "\s\+$"
  endif
  if !exists("c_no_tab_space_error")
    syn match	lpcSpaceError	display " \+\t"me=e-1
  endif
endif

" Nodule: Parenthesis and brackets {{{1

" catch errors caused by wrong parenthesis and brackets
syn cluster	lpcParenGroup	contains=lpcParenError,lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcCommentSkip,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom
syn region	lpcParen	transparent start='(' end=')' contains=ALLBUT,@lpcParenGroup,lpcCppParen,lpcErrInBracket,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcKeywdError
" lpcCppParen: same as lpcParen but ends at end-of-line; used in lpcDefine
syn region	lpcCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInBracket,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcKeywdError
syn match	lpcParenError	display ")"
syn match	lpcParenError	display "\]"
" for LPC:
" Here we should consider the array ({ }) parenthesis and mapping ([ ])
" parenthesis and multiset (< >) parenthesis.
syn match	lpcErrInParen	display contained "[^^]{"ms=s+1
syn match	lpcErrInParen	display contained "\(}\|\]\)[^)]"me=e-1
syn region	lpcBracket	transparent start='\[' end=']' contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcCppParen,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError
" lpcCppBracket: same as lpcParen but ends at end-of-line; used in lpcDefine
syn region	lpcCppBracket	transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError
syn match	lpcErrInBracket	display contained "[);{}]"

" Nodule: Numbers {{{1

" integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	lpcNumbers	display transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctalError,lpcOctal
" Same, but without octal error (for comments)
syn match	lpcNumbersCom	display contained transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctal
syn match	lpcNumber	display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
" hex number
syn match	lpcNumber	display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match	lpcOctal	display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=lpcOctalZero
syn match	lpcOctalZero	display contained "\<0"
syn match	lpcFloat	display contained "\d\+f"
" floating point number, with dot, optional exponent
syn match	lpcFloat	display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
" floating point number, starting with a dot, optional exponent
syn match	lpcFloat	display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
" floating point number, without dot, with exponent
syn match	lpcFloat	display contained "\d\+e[-+]\=\d\+[fl]\=\>"
" flag an octal number with wrong digits
syn match	lpcOctalError	display contained "0\o*[89]\d*"
syn case match

" Nodule: Comment string {{{1

" lpcCommentGroup allows adding matches for special things in comments
syn keyword	lpcTodo		contained TODO FIXME XXX
syn cluster	lpcCommentGroup	contains=lpcTodo

if exists("c_comment_strings")
  " A comment can contain lpcString, lpcCharacter and lpcNumber.
  syntax match	lpcCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region lpcCommentString	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=lpcSpecial,lpcCommentSkip
  syntax region lpcComment2String	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=lpcSpecial
  syntax region  lpcCommentL	start="//" skip="\\$" end="$" keepend contains=@lpcCommentGroup,lpcComment2String,lpcCharacter,lpcNumbersCom,lpcSpaceError
  syntax region lpcComment	matchgroup=lpcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@lpcCommentGroup,lpcCommentStartError,lpcCommentString,lpcCharacter,lpcNumbersCom,lpcSpaceError
else
  syn region	lpcCommentL	start="//" skip="\\$" end="$" keepend contains=@lpcCommentGroup,lpcSpaceError
  syn region	lpcComment	matchgroup=lpcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@lpcCommentGroup,lpcCommentStartError,lpcSpaceError
endif
" keep a // comment separately, it terminates a preproc. conditional
syntax match	lpcCommentError	display "\*/"
syntax match	lpcCommentStartError display "/\*"me=e-1 contained

" Nodule: Pre-processor {{{1

syn region	lpcPreCondit	start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=lpcComment,lpcCppString,lpcCharacter,lpcCppParen,lpcParenError,lpcNumbers,lpcCommentError,lpcSpaceError
syn match	lpcPreCondit	display "^\s*#\s*\(else\|endif\)\>"
if !exists("c_no_if0")
  syn region	lpcCppOut		start="^\s*#\s*if\s\+0\+\>" end=".\|$" contains=lpcCppOut2
  syn region	lpcCppOut2	contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=lpcSpaceError,lpcCppSkip
  syn region	lpcCppSkip	contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=lpcSpaceError,lpcCppSkip
endif
syn region	lpcIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	lpcIncluded	display contained "<[^>]*>"
syn match	lpcInclude	display "^\s*#\s*include\>\s*["<]" contains=lpcIncluded
syn match lpcLineSkip	"\\$"
syn cluster	lpcPreProcGroup	contains=lpcPreCondit,lpcIncluded,lpcInclude,lpcDefine,lpcErrInParen,lpcErrInBracket,lpcUserLabel,lpcSpecial,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcString,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcParen,lpcBracket,lpcMulti,lpcKeywdError
syn region	lpcDefine	start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@lpcPreProcGroup

if exists("lpc_pre_v22")
    syn region	lpcPreProc	start="^\s*#\s*\(pragma\>\|echo\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup
else
    syn region	lpcPreProc	start="^\s*#\s*\(pragma\>\|echo\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup
endif

" Nodule: User labels {{{1

" Highlight Labels
" User labels in LPC is not allowed, only "case x" and "default" is supported
syn cluster	lpcMultiGroup	contains=lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcCppParen,lpcCppBracket,lpcCppString,lpcKeywdError
syn region	lpcMulti		transparent start='\(case\|default\|public\|protected\|private\)' skip='::' end=':' contains=ALLBUT,@lpcMultiGroup

syn cluster	lpcLabelGroup	contains=lpcUserLabel
syn match	lpcUserCont	display "^\s*lpc:$" contains=@lpcLabelGroup

" Don't want to match anything
syn match	lpcUserLabel	display "lpc" contained

" Nodule: Initializations {{{1

if exists("c_minlines")
  let b:c_minlines = c_minlines
else
  if !exists("c_no_if0")
    let b:c_minlines = 50	" #if 0 constructs can be long
  else
    let b:c_minlines = 15	" mostly for () constructs
  endif
endif
exec "syn sync ccomment lpcComment minlines=" . b:c_minlines

" Make sure these options take place since we no longer depend on file type
" plugin for C
setlocal cindent
setlocal fo-=t fo+=croql
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
    let b:browsefilter = "LPC Source Files (*.c *.d *.h)\t*.c;*.d;*.h\n" .
	\ "LPC Data Files (*.scr *.o *.dat)\t*.scr;*.o;*.dat\n" .
	\ "Text Documentation (*.txt)\t*.txt\n" .
	\ "All Files (*.*)\t*.*\n"
endif

" Nodule: Highlight links {{{1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link lpcModifier		lpcStorageClass

hi def link lpcQuotedFmt		lpcFormat
hi def link lpcFormat		lpcSpecial
hi def link lpcCppString		lpcString	" Cpp means
					      " C Pre-Processor
hi def link lpcCommentL		lpcComment
hi def link lpcCommentStart	lpcComment
hi def link lpcUserLabel		lpcLabel
hi def link lpcSpecialCharacter	lpcSpecial
hi def link lpcOctal		lpcPreProc
hi def link lpcOctalZero		lpcSpecial  " LPC will treat octal numbers
					  " as decimals, programmers should
					  " be aware of that.
hi def link lpcEfunError		lpcError
hi def link lpcKeywdError		lpcError
hi def link lpcOctalError		lpcError
hi def link lpcParenError		lpcError
hi def link lpcErrInParen		lpcError
hi def link lpcErrInBracket	lpcError
hi def link lpcCommentError	lpcError
hi def link lpcCommentStartError	lpcError
hi def link lpcSpaceError		lpcError
hi def link lpcSpecialError	lpcError
hi def link lpcErrFunc		lpcError

if exists("lpc_pre_v22")
    hi def link lpcOldEfuns	lpc_efuns
    hi def link lpcNewEfuns	lpcError
else
    hi def link lpcOldEfuns	lpcReserved
    hi def link lpcNewEfuns	lpc_efuns
endif
hi def link lpc_efuns		lpcFunction

hi def link lpcReserved		lpcPreProc
hi def link lpcTextString		lpcString   " This should be preprocessors, but
hi def link lpcArrayString		lpcPreProc  " let's make some difference
					  " between text and array

hi def link lpcIncluded		lpcString
hi def link lpcCommentString	lpcString
hi def link lpcComment2String	lpcString
hi def link lpcCommentSkip		lpcComment
hi def link lpcCommentFunc		lpcComment

hi def link lpcCppSkip		lpcCppOut
hi def link lpcCppOut2		lpcCppOut
hi def link lpcCppOut		lpcComment

" Standard type below
hi def link lpcApplies		Special
hi def link lpcCharacter		Character
hi def link lpcComment		Comment
hi def link lpcConditional		Conditional
hi def link lpcConstant		Constant
hi def link lpcDefine		Macro
hi def link lpcError		Error
hi def link lpcFloat		Float
hi def link lpcFunction		Function
hi def link lpcIdentifier		Identifier
hi def link lpcInclude		Include
hi def link lpcLabel		Label
hi def link lpcNumber		Number
hi def link lpcOperator		Operator
hi def link lpcPreCondit		PreCondit
hi def link lpcPreProc		PreProc
hi def link lpcRepeat		Repeat
hi def link lpcStatement		Statement
hi def link lpcStorageClass	StorageClass
hi def link lpcString		String
hi def link lpcStructure		Structure
hi def link lpcSpecial		LineNr
hi def link lpcTodo		Todo
hi def link lpcType		Type


" Nodule: This is the end nodule. {{{1

let b:current_syntax = "lpc"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:ts=8:nosta:sw=2:ai:si:
" vim600:set fdm=marker: }}}1
PK�j�Z�8h�--vim80/syntax/rcslog.vimnu�[���" Vim syntax file
" Language:	RCS log output
" Maintainer:	Joe Karthauser <joe@freebsd.org>
" Last Change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match rcslogRevision	"^revision.*$"
syn match rcslogFile		"^RCS file:.*"
syn match rcslogDate		"^date: .*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link rcslogFile		Type
hi def link rcslogRevision	Constant
hi def link rcslogDate		Identifier


let b:current_syntax = "rcslog"

" vim: ts=8
PK�j�Zۢ����vim80/syntax/edif.vimnu�[���" Vim syntax file
" Language:     EDIF (Electronic Design Interchange Format)
" Maintainer:   Artem Zankovich <z_artem@hotbox.ru>
" Last Change:  Oct 14, 2002
"
" Supported standarts are:
"   ANSI/EIA Standard 548-1988 (EDIF Version 2 0 0)
"   IEC 61690-1 (EDIF Version 3 0 0)
"   IEC 61690-2 (EDIF Version 4 0 0)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=48-57,-,+,A-Z,a-z,_,&

syn region	edifList	matchgroup=Delimiter start="(" end=")" contains=edifList,edifKeyword,edifString,edifNumber

" Strings
syn match       edifInStringError    /%/ contained
syn match       edifInString    /%\s*\d\+\s*%/ contained
syn region      edifString      start=/"/ end=/"/ contains=edifInString,edifInStringError contained

" Numbers
syn match       edifNumber      "\<[-+]\=[0-9]\+\>"

" Keywords
syn match       edifKeyword     "(\@<=\s*[a-zA-Z&][a-zA-Z_0-9]*\>" contained

syn match       edifError       ")"

" synchronization
syntax sync fromstart

" Define the default highlighting.

hi def link edifInString		SpecialChar
hi def link edifKeyword		Keyword
hi def link edifNumber		Number
hi def link edifInStringError	edifError
hi def link edifError		Error
hi def link edifString		String

let b:current_syntax = "edif"
PK�j�Z
BL`vim80/syntax/gdb.vimnu�[���" Vim syntax file
" Language:	GDB command files
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/gdb.vim
" Last Change:	2012 Oct 05

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword gdbInfo contained address architecture args breakpoints catch common copying dcache
syn keyword gdbInfo contained display files float frame functions handle line
syn keyword gdbInfo contained locals program registers scope set sharedlibrary signals
syn keyword gdbInfo contained source sources stack symbol target terminal threads
syn keyword gdbInfo contained syn keyword tracepoints types udot variables warranty watchpoints
syn match gdbInfo contained "all-registers"


syn keyword gdbStatement contained actions apply attach awatch backtrace break bt call catch cd clear collect commands
syn keyword gdbStatement contained complete condition continue delete detach directory disable disassemble display down
syn keyword gdbStatement contained echo else enable end file finish frame handle hbreak help if ignore
syn keyword gdbStatement contained inspect jump kill list load maintenance make next nexti ni output overlay
syn keyword gdbStatement contained passcount path print printf ptype pwd quit rbreak remote return run rwatch
syn keyword gdbStatement contained search section set sharedlibrary shell show si signal source step stepi stepping
syn keyword gdbStatement contained stop target tbreak tdump tfind thbreak thread tp trace tstart tstatus tstop
syn keyword gdbStatement contained tty undisplay unset until up watch whatis where while ws x
syn match gdbFuncDef "\<define\>.*"
syn match gdbStatmentContainer "^\s*\S\+" contains=gdbStatement,gdbFuncDef
syn match gdbStatement "^\s*info" nextgroup=gdbInfo skipwhite skipempty

" some commonly used abbreviations
syn keyword gdbStatement c disp undisp disas p

syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end\s*$"

syn match gdbStatement "\<add-shared-symbol-files\>"
syn match gdbStatement "\<add-symbol-file\>"
syn match gdbStatement "\<core-file\>"
syn match gdbStatement "\<dont-repeat\>"
syn match gdbStatement "\<down-silently\>"
syn match gdbStatement "\<exec-file\>"
syn match gdbStatement "\<forward-search\>"
syn match gdbStatement "\<reverse-search\>"
syn match gdbStatement "\<save-tracepoints\>"
syn match gdbStatement "\<select-frame\>"
syn match gdbStatement "\<symbol-file\>"
syn match gdbStatement "\<up-silently\>"
syn match gdbStatement "\<while-stepping\>"

syn keyword gdbSet annotate architecture args check complaints confirm editing endian
syn keyword gdbSet environment gnutarget height history language listsize print prompt
syn keyword gdbSet radix remotebaud remotebreak remotecache remotedebug remotedevice remotelogbase
syn keyword gdbSet remotelogfile remotetimeout remotewritesize targetdebug variable verbose
syn keyword gdbSet watchdog width write
syn match gdbSet "\<auto-solib-add\>"
syn match gdbSet "\<solib-absolute-prefix\>"
syn match gdbSet "\<solib-search-path\>"
syn match gdbSet "\<stop-on-solib-events\>"
syn match gdbSet "\<symbol-reloading\>"
syn match gdbSet "\<input-radix\>"
syn match gdbSet "\<demangle-style\>"
syn match gdbSet "\<output-radix\>"

syn match gdbComment "^\s*#.*" contains=@Spell

syn match gdbVariable "\$\K\k*"

" Strings and constants
syn region  gdbString		start=+"+  skip=+\\\\\|\\"+  end=+"+ contains=@Spell
syn match   gdbCharacter	"'[^']*'" contains=gdbSpecialChar,gdbSpecialCharError
syn match   gdbCharacter	"'\\''" contains=gdbSpecialChar
syn match   gdbCharacter	"'[^\\]'"
syn match   gdbNumber		"\<[0-9_]\+\>"
syn match   gdbNumber		"\<0x[0-9a-fA-F_]\+\>"


if !exists("gdb_minlines")
  let gdb_minlines = 10
endif
exec "syn sync ccomment gdbComment minlines=" . gdb_minlines

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link gdbFuncDef	Function
hi def link gdbComment	Comment
hi def link gdbStatement	Statement
hi def link gdbString	String
hi def link gdbCharacter	Character
hi def link gdbVariable	Identifier
hi def link gdbSet		Constant
hi def link gdbInfo	Type
hi def link gdbDocument	Special
hi def link gdbNumber	Number

let b:current_syntax = "gdb"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�ZBP�M��vim80/syntax/docbkxml.vimnu�[���" Vim syntax file
" Language:	DocBook XML
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Sam, 07 Sep 2002 17:20:12 CEST

let b:docbk_type="xml"
runtime syntax/docbk.vim
PK�j�Z�/M>��vim80/syntax/xhtml.vimnu�[���" Vim syntax file
" Language:	XHTML
" Maintainer:	noone
" Last Change:	2003 Feb 04

" Load the HTML syntax for now.
runtime! syntax/html.vim

let b:current_syntax = "xhtml"

" vim: ts=8
PK�j�Z�����
�
vim80/syntax/st.vimnu�[���" Vim syntax file
" Language:	Smalltalk
" Maintainer:	Arndt Hesse <hesse@self.de>
" Last Change:	2012 Feb 12 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" some Smalltalk keywords and standard methods
syn keyword	stKeyword	super self class true false new not
syn keyword	stKeyword	notNil isNil inspect out nil
syn match	stMethod	"\<do\>:"
syn match	stMethod	"\<whileTrue\>:"
syn match	stMethod	"\<whileFalse\>:"
syn match	stMethod	"\<ifTrue\>:"
syn match	stMethod	"\<ifFalse\>:"
syn match	stMethod	"\<put\>:"
syn match	stMethod	"\<to\>:"
syn match	stMethod	"\<at\>:"
syn match	stMethod	"\<add\>:"
syn match	stMethod	"\<new\>:"
syn match	stMethod	"\<for\>:"
syn match	stMethod	"\<methods\>:"
syn match	stMethod	"\<methodsFor\>:"
syn match	stMethod	"\<instanceVariableNames\>:"
syn match	stMethod	"\<classVariableNames\>:"
syn match	stMethod	"\<poolDictionaries\>:"
syn match	stMethod	"\<subclass\>:"

" the block of local variables of a method
syn region stLocalVariables	start="^[ \t]*|" end="|"

" the Smalltalk comment
syn region stComment	start="\"" end="\""

" the Smalltalk strings and single characters
syn region stString	start='\'' skip="''" end='\''
syn match  stCharacter	"$."

syn case ignore

" the symols prefixed by a '#'
syn match  stSymbol	"\(#\<[a-z_][a-z0-9_]*\>\)"
syn match  stSymbol	"\(#'[^']*'\)"

" the variables in a statement block for loops
syn match  stBlockVariable "\(:[ \t]*\<[a-z_][a-z0-9_]*\>[ \t]*\)\+|" contained

" some representations of numbers
syn match  stNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"
syn match  stFloat	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
syn match  stFloat	"\<\d\+e[-+]\=\d\+[fl]\=\>"

syn case match

" a try to higlight paren mismatches
syn region stParen	transparent start='(' end=')' contains=ALLBUT,stParenError
syn match  stParenError	")"
syn region stBlock	transparent start='\[' end='\]' contains=ALLBUT,stBlockError
syn match  stBlockError	"\]"
syn region stSet	transparent start='{' end='}' contains=ALLBUT,stSetError
syn match  stSetError	"}"

hi link stParenError stError
hi link stSetError stError
hi link stBlockError stError

" synchronization for syntax analysis
syn sync minlines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link stKeyword		Statement
hi def link stMethod		Statement
hi def link stComment		Comment
hi def link stCharacter		Constant
hi def link stString		Constant
hi def link stSymbol		Special
hi def link stNumber		Type
hi def link stFloat		Type
hi def link stError		Error
hi def link stLocalVariables	Identifier
hi def link stBlockVariable	Identifier


let b:current_syntax = "st"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�ۡ>>vim80/syntax/fstab.vimnu�[���" Vim syntax file
" Language: fstab file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
" Last Change: 2017 Nov 09
" Version: 1.2
"
" Credits:
"   David Necas (Yeti) <yeti@physics.muni.cz>
"   Stefano Zacchiroli <zack@debian.org>
"   Georgi Georgiev <chutz@gg3.net>
"   James Vega <jamessan@debian.org>
"   Elias Probst <mail@eliasprobst.eu>

" Options:
"   let fstab_unknown_fs_errors = 1
"     highlight unknown filesystems as errors
"
"   let fstab_unknown_device_errors = 0
"     do not highlight unknown devices as errors

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

let s:cpo_save = &cpo
set cpo&vim

" General
syn cluster fsGeneralCluster contains=fsComment
syn match fsComment /\s*#.*/ contains=@Spell
syn match fsOperator /[,=:#]/

" Device
syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs
syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
syn keyword fsDeviceKeyword contained PARTLABEL nextgroup=fsDevicePARTLABEL
syn keyword fsDeviceKeyword contained PARTUUID nextgroup=fsDevicePARTUUID
syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDevicePARTLABEL contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDevicePARTUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator

" Mount Point
syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError
syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained
syn keyword fsMountPointKeyword contained none swap

" Type
syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
syn match fsTypeUnknown /\s\+\zs\w\+/ contained
syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 cfs cgroup cifs coda configfs cpuset cramfs devfs devpts devtmpfs e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse fuseblk fusectl hfs hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfsd nilfs2 none ntfs null nwfs overlay ovlfs pipefs portal proc procfs pstore ptyfs qnx4 reiserfs ramfs romfs rpc_pipefs securityfs shm smbfs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xenfs xfs zisofs

" Options
" -------
" Options: General
syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown
syn match fsOptionsNumber /\d\+/
syn match fsOptionsNumberOctal /[0-8]\+/
syn match fsOptionsString /[a-zA-Z0-9_-]\+/
syn keyword fsOptionsYesNo yes no
syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
syn keyword fsOptionsSize 512 1024 2048
syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop managed mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand norelatime nosuid nosymfollow nouser owner pamconsole rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx
syn match fsOptionsGeneral /_netdev/

" Options: adfs
syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber

" Options: affs
syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber
syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString
syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize
syn keyword fsOptionsKeywords contained protect usemp verbose

" Options: btrfs
syn match fsOptionsKeywords contained /\<\%(subvol\|subvolid\|subvolrootid\|device\|compress\|compress-force\|fatal_errors\)=/ nextgroup=fsOptionsString
syn match fsOptionsKeywords contained /\<\%(max_inline\|alloc_start\|thread_pool\|metadata_ratio\|check_int_print_mask\)=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsKeywords contained degraded nodatasum nodatacow nobarrier ssd ssd_spread noacl notreelog flushoncommit space_cache nospace_cache clear_cache user_subvol_rm_allowed autodefrag inode_cache enospc_debug recovery check_int check_int_data skip_balance discard

" Options: cd9660
syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet

" Options: devpts
" -- everything already defined

" Options: ext2
syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster
syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors
syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsExt2Check contained none normal strict
syn keyword fsOptionsExt2Errors contained continue panic
syn match fsOptionsExt2Errors contained /\<remount-ro\>/
syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr

" Options: ext3
syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal
syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data
syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsExt3Journal contained update inum
syn keyword fsOptionsExt3Data contained journal ordered writeback
syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl

" Options: ext4
syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data
syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier
syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber
syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber
syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber
syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber
syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsExt4Journal contained update inum
syn keyword fsOptionsExt4Data contained journal ordered writeback
syn match fsOptionsExt4Barrier /[0-1]/
syn keyword fsOptionsKeywords contained noload extents orlov oldalloc user_xattr nouser_xattr acl noacl reservation noreservation bsddf minixdf check=none nocheck debug grpid nogroupid sysvgroups bsdgroups quota noquota grpquota usrquota bh nobh

" Options: fat
syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal
syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString
syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster
syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv
syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType
syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo
syn keyword fsOptionsFatCheck contained r n s relaxed normal strict
syn keyword fsOptionsConv contained b t a binary text auto
syn keyword fsOptionsFatType contained 12 16 32
syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots

" Options: hfs
syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString
syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal
syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber

" Options: ffs
syn keyword fsOptionsKeyWords contained noperm softdep

" Options: hpfs
syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase
syn keyword fsOptionsHpfsCase contained lower asis

" Options: iso9660
syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap
syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize
syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsIsoMap contained n o a normal off acorn
syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft
syn keyword fsOptionsConv contained m mtext

" Options: jfs
syn keyword fsOptionsKeywords nointegrity integrity

" Options: nfs
syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString
syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock

" Options: ntfs
syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber
syn keyword fsOptionsKeywords contained utf8

" Options: proc
" -- everything already defined

" Options: reiserfs
syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash
syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsReiserHash contained rupasov tea r5 detect
syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly

" Options: sshfs
syn match fsOptionsKeywords contained /\<\%(BatchMode\|ChallengeResponseAuthentication\|CheckHostIP\|ClearAllForwardings\|Compression\|EnableSSHKeysign\|ForwardAgent\|ForwardX11\|ForwardX11Trusted\|GatewayPorts\|GSSAPIAuthentication\|GSSAPIDelegateCredentials\|HashKnownHosts\|HostbasedAuthentication\|IdentitiesOnly\|NoHostAuthenticationForLocalhost\|PasswordAuthentication\|PubkeyAuthentication\|RhostsRSAAuthentication\|RSAAuthentication\|TCPKeepAlive\|UsePrivilegedPort\|cache\)=/ nextgroup=fsOptionsYesNo
syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk
syn match fsOptionsKeywords contained /\<\%(AddressFamily\|BindAddress\|Cipher\|Ciphers\|ControlPath\|DynamicForward\|EscapeChar\|GlobalKnownHostsFile\|HostKeyAlgorithms\|HostKeyAlias\|HostName\|IdentityFile\|KbdInteractiveDevices\|LocalForward\|LogLevel\|MACs\|PreferredAuthentications\|Protocol\|ProxyCommand\|RemoteForward\|RhostsAuthentication\|SendEnv\|SmartcardDevice\|User\|UserKnownHostsFile\|XAuthLocation\|comment\|workaround\|idmap\|ssh_command\|sftp_server\|fsname\)=/ nextgroup=fsOptionsString
syn match fsOptionsKeywords contained /\<\%(CompressionLevel\|ConnectionAttempts\|ConnectTimeout\|NumberOfPasswordPrompts\|Port\|ServerAliveCountMax\|ServerAliveInterval\|cache_timeout\|cache_X_timeout\|ssh_protocol\|directport\|max_read\|umask\|uid\|gid\|entry_timeout\|negative_timeout\|attr_timeout\)=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsKeywords contained reconnect sshfs_sync no_readahead sshfs_debug transform_symlinks allow_other allow_root nonempty default_permissions large_read hard_remove use_ino readdir_ino direct_io kernel_cache
syn keyword fsOptionsSshYesNoAsk contained yes no ask

" Options: subfs
syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString
syn keyword fsOptionsKeywords contained procuid

" Options: swap
syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber

" Options: tmpfs
syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber

" Options: udf
syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString
syn keyword fsOptionsKeywords contained unhide undelete strict novrs

" Options: ufs
syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType
syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError
syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep
syn match fsOptionsUfsType contained /\<nextstep-cd\>/
syn keyword fsOptionsUfsError contained panic lock umount repair

" Options: usbfs
syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber
syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal

" Options: vfat
syn keyword fsOptionsKeywords contained nonumtail posix utf8
syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname
syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed

" Options: xfs
syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString
syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce

" Frequency / Pass No.
syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError
syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained
syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained

" Groups
syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster
syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained
syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained
syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained

" Whole line comments
syn match fsCommentLine /^#.*$/ contains=@Spell

hi def link fsOperator Operator
hi def link fsComment Comment
hi def link fsCommentLine Comment

hi def link fsTypeKeyword Type
hi def link fsDeviceKeyword Identifier
hi def link fsDeviceLabel String
hi def link fsDeviceUUID String
hi def link fsDevicePARTLABEL String
hi def link fsDevicePARTUUID String
hi def link fsDeviceSshfs String
hi def link fsFreqPassNumber Number

if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
	hi def link fsTypeUnknown Error
endif

if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1
	hi def link fsDeviceError Error
endif

hi def link fsMountPointError Error
hi def link fsMountPointKeyword Keyword
hi def link fsFreqPassError Error

hi def link fsOptionsGeneral Type
hi def link fsOptionsKeywords Keyword
hi def link fsOptionsNumber Number
hi def link fsOptionsNumberOctal Number
hi def link fsOptionsString String
hi def link fsOptionsSize Number
hi def link fsOptionsExt2Check String
hi def link fsOptionsExt2Errors String
hi def link fsOptionsExt3Journal String
hi def link fsOptionsExt3Data String
hi def link fsOptionsExt4Journal String
hi def link fsOptionsExt4Data String
hi def link fsOptionsExt4Barrier Number
hi def link fsOptionsFatCheck String
hi def link fsOptionsConv String
hi def link fsOptionsFatType Number
hi def link fsOptionsYesNo String
hi def link fsOptionsHpfsCase String
hi def link fsOptionsIsoMap String
hi def link fsOptionsReiserHash String
hi def link fsOptionsSshYesNoAsk String
hi def link fsOptionsUfsType String
hi def link fsOptionsUfsError String

hi def link fsOptionsVfatShortname String

let b:current_syntax = "fstab"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 ft=vim
PK�j�Zi��EEEvim80/syntax/gprof.vimnu�[���" Vim syntax file
" Language: Syntax for Gprof Output
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2013 Jun 09

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn case match
syn sync minlines=100

" Flat profile
syn match gprofFlatProfileTitle
  \ "^Flat profile:$" 
syn region gprofFlatProfileHeader 
  \ start="^Each sample counts as.*"
  \ end="^ time.*name\s*$"
syn region gprofFlatProfileTrailer
  \ start="^\s*%\s\+the percentage of the total running time.*"
  \ end="^\s*the gprof listing if it were to be printed\."

" Call graph
syn match gprofCallGraphTitle "Call graph (explanation follows)"
syn region gprofCallGraphHeader
  \ start="^granularity: each sample hit covers.*"
  \ end="^\s*index % time\s\+self\s\+children\s\+called\s\+name$"
syn match gprofCallGraphFunction "\s\+\(\d\+\.\d\+\s\+\)\{3}\([0-9+]\+\)\?\s\+[a-zA-Z_<].*\ze\["
syn match gprofCallGraphSeparator "^-\+$"
syn region gprofCallGraphTrailer
  \ start="This table describes the call tree of the program"
  \ end="^\s*the cycle\.$"

" Index
syn region gprofIndex
  \ start="^Index by function name$"
  \ end="\%$"

syn match gprofIndexFunctionTitle "^Index by function name$"

syn match gprofNumbers "^\s\+[0-9 ./+]\+"
syn match gprofFunctionIndex "\[\d\+\]"
syn match gprofSpecial "<\(spontaneous\|cycle \d\+\)>"

hi def link gprofFlatProfileTitle      Title
hi def link gprofFlatProfileHeader     Comment
hi def link gprofFlatProfileFunction   Number
hi def link gprofFlatProfileTrailer    Comment

hi def link gprofCallGraphTitle        Title
hi def link gprofCallGraphHeader       Comment
hi def link gprofFlatProfileFunction   Number
hi def link gprofCallGraphFunction     Special
hi def link gprofCallGraphTrailer      Comment
hi def link gprofCallGraphSeparator    Label

hi def link gprofFunctionIndex         Label
hi def link gprofSpecial               SpecialKey
hi def link gprofNumbers               Number

hi def link gprofIndexFunctionTitle Title

let b:current_syntax = "gprof"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�knʤV�Vvim80/syntax/sisu.vimnu�[���" SiSU Vim syntax file
" SiSU Maintainer: Ralph Amissah <ralph.amissah@gmail.com>
" SiSU Markup:     SiSU (sisu-5.6.7)
" Last Change:     2017 Jun 22
" URL: <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=data/sisu/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
"      <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob_plain;f=data/sisu/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
"(originally looked at Ruby Vim by Mirko Nasato)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
let s:cpo_save = &cpo
set cpo&vim

"% "Errors:
syn match sisu_error contains=sisu_link,sisu_error_wspace "<![^ei]\S\+!>"

"% "Markers Identifiers:
if !exists("sisu_no_identifiers")
  syn match   sisu_mark_endnote                                           "\~^"
  syn match   sisu_break               contains=@NoSpell                  " \\\\\( \|$\)\|<br>\|<br />"
  syn match   sisu_control             contains=@NoSpell                  "^\(-\\\\-\|=\\\\=\|-\.\.-\|<:p[bn]>\)\s*$"
  syn match   sisu_control             contains=@NoSpell                  "^<:\(bo\|---\)>\s*$"
  syn match   sisu_marktail            contains=@NoSpell                  "^--[+~-]#\s*$"
  syn match   sisu_marktail                                               "[~-]#"
  syn match   sisu_control                                                "\""
  syn match   sisu_underline                                              "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"
  syn match   sisu_number              contains=@NoSpell                  "[0-9a-f]\{32\}\|[0-9a-f]\{64\}"
  syn match   sisu_link                contains=@NoSpell                  "\(_\?https\?://\|\.\.\/\)\S\+"
  syn match   sisu_link                                                   " \*\~\S\+"
  syn match   sisu_require             contains=@NoSpell                  "^<<\s*[a-zA-Z0-9^./_-]\+\.ss[it]$"
  syn match   sisu_structure                                              "^:A\~$"

"% "Document Sub Headers:
  syn match   sisu_sub_header_title                                       "^\s\+:\(subtitle\|short\|edition\|language\|lang_char\|note\):\s" "group=sisu_header_content
  syn match   sisu_sub_header_creator                                     "^\s\+:\(author\|editor\|contributor\|illustrator\|photographer\|translator\|digitized_by\|prepared_by\|audio\|video\):\s"                               " &hon &institution
  syn match   sisu_sub_header_rights                                      "^\s\+:\(copyright\|text\|translation\|illustrations\|photographs\|preparation\|digitization\|audio\|video\|license\|all\):\s"                   " access_rights license
  syn match   sisu_sub_header_classify                                    "^\s\+:\(topic_register\|keywords\|subject\|dewey\|loc\):\s"
  syn match   sisu_sub_header_identifier                                  "^\s\+:\(oclc\|isbn\):\s"
  syn match   sisu_sub_header_date                                        "^\s\+:\(added_to_site\|available\|created\|issued\|modified\|published\|valid\|translated\|original_publication\):\s"
  syn match   sisu_sub_header_original                                    "^\s\+:\(publisher\|date\|language\|lang_char\|institution\|nationality\|source\):\s"
  syn match   sisu_sub_header_make                                        "^\s\+:\(headings\|num_top\|breaks\|language\|italics\|bold\|emphasis\|substitute\|omit\|plaintext_wrap\|texpdf_font_mono\|texpdf_font\|stamp\|promo\|ad\|manpage\|home_button_text\|home_button_image\|cover_image\|footer\):\s"
  syn match   sisu_sub_header_notes                                       "^\s\+:\(description\|abstract\|comment\|coverage\|relation\|source\|history\|type\|format\|prefix\|prefix_[ab]\|suffix\):\s"
  syn match   sisu_within_index_ignore                                    "\S\+[:;]\(\s\+\|$\)"
  syn match   sisu_within_index                                           "[:|;]\|+\d\+"

"% "semantic markers: (ignore)
  syn match   sisu_sem_marker                                             ";{\|};[a-z._]*[a-z]"
  syn match   sisu_sem_marker_block                                       "\([a-z][a-z._]*\|\):{\|}:[a-z._]*[a-z]"
  syn match   sisu_sem_ex_marker                                          ";\[\|\];[a-z._]*[a-z]"
  syn match   sisu_sem_ex_marker_block                                    "\([a-z][a-z._]*\|\):\[\|\]:[a-z._]*[a-z]"
  syn match   sisu_sem_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):{[^}].\{-}}:\1"
  syn match   sisu_sem_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";{[^}].\{-}};[a-z]\+"
  syn match   sisu_sem_ex_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):\[[^}].\{-}\]:\1"
  syn match   sisu_sem_ex_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";\[[^}].\{-}\];[a-z]\+"
endif

"% "URLs Numbers And ASCII Codes:
syn match   sisu_number                              "\<\(0x\x\+\|0b[01]\+\|0\o\+\|0\.\d\+\|0\|[1-9][\.0-9_]*\)\>"
syn match   sisu_number                              "?\(\\M-\\C-\|\\c\|\\C-\|\\M-\)\=\(\\\o\{3}\|\\x\x\{2}\|\\\=\w\)"

"% "Tuned Error: (is error if not already matched)
syn match sisu_error             contains=sisu_error "[\~/\*!_]{\|}[\~/\*!_]"
syn match sisu_error             contains=sisu_error "<a href\|</a>]"

"% "Simple Paired Enclosed Markup:
"url/link
syn region sisu_link contains=sisu_error,sisu_error_wspace matchgroup=sisu_action start="^<<\s*|[a-zA-Z0-9^._-]\+|@|[a-zA-Z0-9^._-]\+|"rs=s+2 end="$"

"% "Document Header:
" title
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_title matchgroup=sisu_header start="^[@]title:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" creator
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_creator matchgroup=sisu_header start="^[@]creator:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" dates
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_date matchgroup=sisu_header start="^[@]date:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" publisher
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_publisher matchgroup=sisu_header start="^[@]publisher:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" rights
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_rights matchgroup=sisu_header start="^[@]rights:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" classify document
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_classify matchgroup=sisu_header start="^[@]classify:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" identifier document
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_identifier matchgroup=sisu_header start="^[@]identifier:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" original language (depreciated)
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_original matchgroup=sisu_header start="^[@]original:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" notes
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_notes matchgroup=sisu_header start="^[@]notes:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" links of interest
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_linked,sisu_sub_header_links matchgroup=sisu_header start="^[@]links:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" make, processing instructions
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_make matchgroup=sisu_header start="^[@]make:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"

"% "Headings:
syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_ocn,sisu_error,sisu_error_wspace matchgroup=sisu_structure start="^\([1-4]\|:\?[A-D]\)\~\(\S\+\|[^-]\)" end="$"

"% "Block Group Text:
" table
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^table{.\+" end="}table"
" table
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+table" end="^```\(\s\|$\)"
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^{\(t\|table\)\(\~h\)\?\(\sc[0-9]\+;\)\?[0-9; ]*}" end="\n$"
" block, group, poem, alt
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\z(block\|group\|poem\|alt\){" end="^}\z1"
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+\(block\|group\|poem\|alt\)" end="^```\(\s\|$\)"
" box
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^box\(\.[a-z]\+\)\?{" end="^}box"
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+\box\(\.[a-z]\+\)\?" end="^```\(\s\|$\)"
" code
syn region sisu_content_alt contains=sisu_error,@NoSpell matchgroup=sisu_contain start="^code\(\.[a-z][0-9a-z_]\+\)\?{" end="^}code"
syn region sisu_content_alt contains=sisu_error,@NoSpell matchgroup=sisu_contain start="^```\s\+code\(\.[a-z][0-9a-z_]\+\)\?" end="^```\(\s\|$\)"
" quote
syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_contain start="^```\s\+quote" end="^```\(\s\|$\)"

"% "Endnotes:
" regular endnote or asterisk or plus sign endnote
syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n"
" numbered asterisk or plus sign endnote
syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n"
" endnote content marker (for binary content marking)
syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n$"

"% "Links And Images:
" image with url link (and possibly footnote of url)
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|:\|\.\.\/\|#\)\S\+" oneline
" sisu outputs, short notation
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="\[[1-5][sS]*\]}\S\+\.ss[tm]" oneline
" image
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}image" oneline

"% "Some Line Operations:
" bold line
syn region sisu_bold contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^!_ " end=" \\\\\|$"
" indent and bullet paragraph
syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\) " end="$"
" indent and bullet (bold start) paragraph
syn region sisu_bold contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\)!_\? " end=" \\\\\|$"
" hanging indent paragraph [proposed]
syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_[0-9]\?_[0-9] " end="$"
" hanging indent (bold start/ definition) paragraph [proposed]
syn region sisu_bold contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_[0-9]\?_[0-9]!_\? " end=" \\\\\|$"
" list numbering
syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^\(#[ 1]\|_# \)" end="$"

"% "Font Face Curly Brackets:
"syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline
" book index:
syn region sisu_index contains=sisu_within_index_ignore,sisu_within_index matchgroup=sisu_index_block start="^={" end="}"
" emphasis:
syn region sisu_bold contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
" bold:
syn region sisu_bold contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
" underscore:
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
" italics:
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="/{" end="}/"
" added:
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="+{" end="}+"
" superscript:
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\^{" end="}\^"
" subscript:
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start=",{" end="},"
" monospace:
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="#{" end="}#"
" strikethrough:
syn region sisu_strikeout contains=sisu_error matchgroup=sisu_fontface start="-{" end="}-"

"% "Single Words Bold Italicise Etc: (depreciated)
syn region sisu_bold contains=sisu_error matchgroup=sisu_bold start="\([ (]\|^\)\*[^\|{\n\~\\]"hs=e-1 end="\*"he=e-0 skip="[a-zA-Z0-9']" oneline
syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="\([ ]\|^\)/[^{ \|\n\\]"hs=e-1 end="/\[ \.\]" skip="[a-zA-Z0-9']" oneline
"misc
syn region sisu_identifier contains=sisu_error matchgroup=sisu_fontface start="\^[^ {\|\n\\]"rs=s+1 end="\^[ ,.;:'})\\\n]" skip="[a-zA-Z0-9']" oneline

"% "Expensive Mode:
if !exists("sisu_no_expensive")
else " not Expensive
  syn region  sisu_content_alt  matchgroup=sisu_control start="^\s*def\s" matchgroup=NONE end="[?!]\|\>" skip="\.\|\(::\)" oneline
endif " Expensive?

"% "Headers And Headings: (Document Instructions)
syn match sisu_control contains=sisu_error,sisu_error_wspace "4\~! \S\+"
syn region  sisu_markpara contains=sisu_error,sisu_error_wspace start="^=begin" end="^=end.*$"

"% "Errors:
syn match sisu_error_wspace contains=sisu_error_wspace "^\s\+[^:]"
syn match sisu_error_wspace contains=sisu_error_wspace "\s\s\+"
syn match sisu_error_wspace contains=sisu_error_wspace "\s\+$"
syn match sisu_error contains=sisu_error_wspace "\t\+"
syn match sisu_error contains=sisu_error,sisu_error_wspace "\([^ (][_\\]\||[^ (}]\)https\?:\S\+"
syn match sisu_error contains=sisu_error "_\?https\?:\S\+[}><]"
syn match sisu_error contains=sisu_error "\([!*/_\+,^]\){\([^(\}\1)]\)\{-}\n$"
syn match sisu_error contains=sisu_error "^[\~]{[^{]\{-}\n$"
syn match sisu_error contains=sisu_error "\s\+.{{"
syn match sisu_error contains=sisu_error "^\~\s*$"
syn match sisu_error contains=sisu_error "^0\~.*"
syn match sisu_error contains=sisu_error "^[1-9]\~\s*$"
syn match sisu_error contains=sisu_error "^[1-9]\~\S\+\s*$"
syn match sisu_error contains=sisu_error "[^{]\~\^[^ \)]"
syn match sisu_error contains=sisu_error "\~\^\s\+\.\s*"
syn match sisu_error contains=sisu_error "{\~^\S\+"
syn match sisu_error contains=sisu_error "[_/\*!^]{[ .,:;?><]*}[_/\*!^]"
syn match sisu_error contains=sisu_error "[^ (\"'(\[][_/\*!]{\|}[_/\*!][a-zA-Z0-9)\]\"']"
syn match sisu_error contains=sisu_error "<dir>"
"errors for filetype sisu, though not error in 'metaverse':
syn match sisu_error contains=sisu_error,sisu_match,sisu_strikeout,sisu_contain,sisu_content_alt,sisu_mark,sisu_break,sisu_number "<[a-zA-Z\/]\+>"
syn match sisu_error  "/\?<\([biu]\)>[^(</\1>)]\{-}\n$"

"% "Error Exceptions:
syn match sisu_control "\n$" "contains=ALL
"syn match sisu_control " //"
syn match sisu_error   "%{"
syn match sisu_error   "<br>_\?https\?:\S\+\|_\?https\?:\S\+<br>"
syn match sisu_error   "[><]_\?https\?:\S\+\|_\?https\?:\S\+[><]"
syn match sisu_comment "^%\{1,2\}.\+"

"% "Definitions Default Highlighting:
hi def link sisu_normal                Normal
hi def link sisu_bold                  Statement
hi def link sisu_header                PreProc
hi def link sisu_header_content        Normal
hi def link sisu_sub_header_title      Statement
hi def link sisu_sub_header_creator    Statement
hi def link sisu_sub_header_date       Statement
hi def link sisu_sub_header_publisher  Statement
hi def link sisu_sub_header_rights     Statement
hi def link sisu_sub_header_classify   Statement
hi def link sisu_sub_header_identifier Statement
hi def link sisu_sub_header_original   Statement
hi def link sisu_sub_header_links      Statement
hi def link sisu_sub_header_notes      Statement
hi def link sisu_sub_header_make       Statement
hi def link sisu_heading               Title
hi def link sisu_structure             Operator
hi def link sisu_contain               Include
hi def link sisu_mark_endnote          Delimiter
hi def link sisu_require               NonText
hi def link sisu_link                  NonText
hi def link sisu_linked                String
hi def link sisu_fontface              Delimiter
hi def link sisu_strikeout             DiffDelete
hi def link sisu_content_alt           Special
hi def link sisu_sem_content           SpecialKey
hi def link sisu_sem_block             Special
hi def link sisu_sem_marker            Visual
"hi def link sisu_sem_marker            Structure
hi def link sisu_sem_marker_block      MatchParen
hi def link sisu_sem_ex_marker         FoldColumn
hi def link sisu_sem_ex_marker_block   Folded
hi def link sisu_sem_ex_content        Comment
"hi def link sisu_sem_ex_content        SpecialKey
hi def link sisu_sem_ex_block          Comment
hi def link sisu_index                 SpecialKey
hi def link sisu_index_block           Visual
hi def link sisu_content_endnote       Special
hi def link sisu_control               Delimiter
hi def link sisu_within_index          Delimiter
hi def link sisu_within_index_ignore   SpecialKey
hi def link sisu_ocn                   Include
hi def link sisu_number                Number
hi def link sisu_identifier            Function
hi def link sisu_underline             Underlined
hi def link sisu_markpara              Include
hi def link sisu_marktail              Include
hi def link sisu_mark                  Identifier
hi def link sisu_break                 Structure
hi def link sisu_html                  Type
hi def link sisu_action                Identifier
hi def link sisu_comment               Comment
hi def link sisu_error_sem_marker      Error
hi def link sisu_error_wspace          Error
hi def link sisu_error                 Error
let b:current_syntax = "sisu"
let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zt3/vim80/syntax/litestep.vimnu�[���" Vim syntax file
" Language:             LiteStep RC file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-02-22

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword litestepTodo
      \ contained
      \ TODO FIXME XXX NOTE

syn match   litestepComment
      \ contained display contains=litestepTodo,@Spell
      \ ';.*$'

syn case ignore

syn cluster litestepBeginnings
      \ contains=
      \   litestepComment,
      \   litestepPreProc,
      \   litestepMultiCommandStart,
      \   litestepBangCommandStart,
      \   litestepGenericDirective

syn match   litestepGenericDirective
      \ contained display
      \ '\<\h\w\+\>'

syn match   litestepBeginning
      \ nextgroup=@litestepBeginnings skipwhite
      \ '^'

syn keyword litestepPreProc
      \ contained
      \ Include
      \ If
      \ ElseIf
      \ Else
      \ EndIf

syn cluster litestepMultiCommands
      \ contains=
      \   litestepMultiCommand

syn match   litestepMultiCommandStart
      \ nextgroup=@litestepMultiCommands
      \ '\*'

syn match   litestepMultiCommand
      \ contained display
      \ '\<\h\w\+\>'

syn cluster litestepVariables
      \ contains=
      \   litestepBuiltinFolderVariable,
      \   litestepBuiltinConditionalVariable,
      \   litestepBuiltinResourceVariable,
      \   litestepBuiltinGUIDFolderMappingVariable,
      \   litestepVariable

syn region litestepVariableExpansion
      \ display oneline transparent
      \ contains=
      \   @litestepVariables,
      \   litestepNumber,
      \   litestepMathOperator
      \ matchgroup=litestepVariableExpansion
      \ start='\$'
      \ end='\$'

syn match litestepNumber
      \ display
      \ '\<\d\+\>'

syn region litestepString
      \ display oneline contains=litestepVariableExpansion
      \ start=+"+ end=+"+

" TODO: unsure about this one.
syn region litestepSubValue
      \ display oneline contains=litestepVariableExpansion
      \ start=+'+ end=+'+

syn keyword litestepBoolean
      \ true
      \ false

"syn keyword litestepLine
"      \ ?

"syn match   litestepColor
"      \ display
"      \ '\<\x\+\>'

syn match   litestepRelationalOperator
      \ display
      \ '=\|<[>=]\=\|>=\='

syn keyword litestepLogicalOperator
      \ and
      \ or
      \ not

syn match   litestepMathOperator
      \ contained display
      \ '[+*/-]'

syn keyword litestepBuiltinDirective
      \ LoadModule
      \ LSNoStartup
      \ LSAutoHideModules
      \ LSNoShellWarning
      \ LSSetAsShell
      \ LSUseSystemDDE
      \ LSDisableTrayService
      \ LSImageFolder
      \ ThemeAuthor
      \ ThemeName

syn keyword litestepDeprecatedBuiltinDirective
      \ LSLogLevel
      \ LSLogFile

syn match   litestepVariable
      \ contained display
      \ '\<\h\w\+\>'

syn keyword litestepBuiltinFolderVariable
      \ contained
      \ AdminToolsDir
      \ CommonAdminToolsDir
      \ CommonDesktopDir
      \ CommonFavorites
      \ CommonPrograms
      \ CommonStartMenu
      \ CommonStartup
      \ Cookies
      \ Desktop
      \ DesktopDir
      \ DocumentsDir
      \ Favorites
      \ Fonts
      \ History
      \ Internet
      \ InternetCache
      \ LitestepDir
      \ Nethood
      \ Printhood
      \ Programs
      \ QuickLaunch
      \ Recent
      \ Sendto
      \ Startmenu
      \ Startup
      \ Templates
      \ WinDir
      \ LitestepDir

syn keyword litestepBuiltinConditionalVariable
      \ contained
      \ Win2000
      \ Win95
      \ Win98
      \ Win9X
      \ WinME
      \ WinNT
      \ WinNT4
      \ WinXP

syn keyword litestepBuiltinResourceVariable
      \ contained
      \ CompileDate
      \ ResolutionX
      \ ResolutionY
      \ UserName

syn keyword litestepBuiltinGUIDFolderMappingVariable
      \ contained
      \ AdminTools
      \ BitBucket
      \ Controls
      \ Dialup
      \ Documents
      \ Drives
      \ Network
      \ NetworkAndDialup
      \ Printers
      \ Scheduled

syn cluster litestepBangs
      \ contains=
      \   litestepBuiltinBang,
      \   litestepBang

syn match   litestepBangStart
      \ nextgroup=@litestepBangs
      \ '!'

syn match   litestepBang
      \ contained display
      \ '\<\h\w\+\>'

syn keyword litestepBuiltinBang
      \ contained
      \ About
      \ Alert
      \ CascadeWindows
      \ Confirm
      \ Execute
      \ Gather
      \ HideModules
      \ LogOff
      \ MinimizeWindows
      \ None
      \ Quit
      \ Recycle
      \ Refresh
      \ Reload
      \ ReloadModule
      \ RestoreWindows
      \ Run
      \ ShowModules
      \ Shutdown
      \ Switchuser
      \ TileWindowsH
      \ TileWindowsV
      \ ToggleModules
      \ UnloadModule

hi def link litestepTodo                              Todo
hi def link litestepComment                           Comment
hi def link litestepDirective                         Keyword
hi def link litestepGenericDirective                  litestepDirective
hi def link litestepPreProc                           PreProc
hi def link litestepMultiCommandStart                 litestepPreProc
hi def link litestepMultiCommand                      litestepDirective
hi def link litestepDelimiter                         Delimiter
hi def link litestepVariableExpansion                 litestepDelimiter
hi def link litestepNumber                            Number
hi def link litestepString                            String
hi def link litestepSubValue                          litestepString
hi def link litestepBoolean                           Boolean
"hi def link litestepLine 
"hi def link litestepColor                             Type
hi def link litestepOperator                          Operator
hi def link litestepRelationalOperator                litestepOperator
hi def link litestepLogicalOperator                   litestepOperator
hi def link litestepMathOperator                      litestepOperator
hi def link litestepBuiltinDirective                  litestepDirective
hi def link litestepDeprecatedBuiltinDirective        Error
hi def link litestepVariable                          Identifier
hi def link litestepBuiltinFolderVariable             Identifier
hi def link litestepBuiltinConditionalVariable        Identifier
hi def link litestepBuiltinResourceVariable           Identifier
hi def link litestepBuiltinGUIDFolderMappingVariable  Identifier
hi def link litestepBangStart                         litestepPreProc
hi def link litestepBang                              litestepDirective
hi def link litestepBuiltinBang                       litestepBang

let b:current_syntax = "litestep"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�E�q��vim80/syntax/xdefaults.vimnu�[���" Vim syntax file
" Language:	X resources files like ~/.Xdefaults (xrdb)
" Maintainer:	Johannes Zellner <johannes@zellner.org>
"		Author and previous maintainer:
"		Gautam H. Mudunuri <gmudunur@informatica.com>
" Last Change:	Di, 09 Mai 2006 23:10:23 CEST
" $Id: xdefaults.vim,v 1.2 2007/05/05 17:19:40 vimboss Exp $
"
" REFERENCES:
"   xrdb manual page
"   xrdb source: ftp://ftp.x.org/pub/R6.4/xc/programs/xrdb/xrdb.c

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" turn case on
syn case match


if !exists("xdefaults_no_colon_errors")
    " mark lines which do not contain a colon as errors.
    " This does not really catch all errors but only lines
    " which contain at least two WORDS and no colon. This
    " was done this way so that a line is not marked as
    " error while typing (which would be annoying).
    syntax match xdefaultsErrorLine "^\s*[a-zA-Z.*]\+\s\+[^: 	]\+"
endif


" syn region  xdefaultsLabel   start=+^[^:]\{-}:+he=e-1 skip=+\\+ end="$"
syn match   xdefaultsLabel   +^[^:]\{-}:+he=e-1                       contains=xdefaultsPunct,xdefaultsSpecial,xdefaultsLineEnd
syn region  xdefaultsValue   keepend start=+:+lc=1 skip=+\\+ end=+$+ contains=xdefaultsSpecial,xdefaultsLabel,xdefaultsLineEnd

syn match   xdefaultsSpecial	contained +#override+
syn match   xdefaultsSpecial	contained +#augment+
syn match   xdefaultsPunct	contained +[.*:]+
syn match   xdefaultsLineEnd	contained +\\$+
syn match   xdefaultsLineEnd	contained +\\n\\$+
syn match   xdefaultsLineEnd	contained +\\n$+



" COMMENTS

" note, that the '!' must be at the very first position of the line
syn match   xdefaultsComment "^!.*$"                     contains=xdefaultsTodo,@Spell

" lines starting with a '#' mark and which are not preprocessor
" lines are skipped.  This is not part of the xrdb documentation.
" It was reported by Bram Moolenaar and could be confirmed by
" having a look at xrdb.c:GetEntries()
syn match   xdefaultsCommentH		"^#.*$"
"syn region  xdefaultsComment start="^#"  end="$" keepend contains=ALL
syn region  xdefaultsComment start="/\*" end="\*/"       contains=xdefaultsTodo,@Spell

syntax match xdefaultsCommentError	"\*/"

syn keyword xdefaultsTodo contained TODO FIXME XXX display



" PREPROCESSOR STUFF

syn region	xdefaultsPreProc	start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\|else\|endif\)\>" skip="\\$" end="$" contains=xdefaultsSymbol
if !exists("xdefaults_no_if0")
  syn region	xdefaultsCppOut		start="^\s*#\s*if\s\+0\>" end=".\|$" contains=xdefaultsCppOut2
  syn region	xdefaultsCppOut2	contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=xdefaultsCppSkip
  syn region	xdefaultsCppSkip	contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=xdefaultsCppSkip
endif
syn region	xdefaultsIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	xdefaultsIncluded	contained "<[^>]*>"
syn match	xdefaultsInclude	"^\s*#\s*include\>\s*["<]" contains=xdefaultsIncluded
syn cluster	xdefaultsPreProcGroup	contains=xdefaultsPreProc,xdefaultsIncluded,xdefaultsInclude,xdefaultsDefine,xdefaultsCppOut,xdefaultsCppOut2,xdefaultsCppSkip
syn region	xdefaultsDefine		start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue
syn region	xdefaultsPreProc	start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue



" symbols as defined by xrdb
syn keyword xdefaultsSymbol contained SERVERHOST
syn match   xdefaultsSymbol contained "SRVR_[a-zA-Z0-9_]\+"
syn keyword xdefaultsSymbol contained HOST
syn keyword xdefaultsSymbol contained DISPLAY_NUM
syn keyword xdefaultsSymbol contained CLIENTHOST
syn match   xdefaultsSymbol contained "CLNT_[a-zA-Z0-9_]\+"
syn keyword xdefaultsSymbol contained RELEASE
syn keyword xdefaultsSymbol contained REVISION
syn keyword xdefaultsSymbol contained VERSION
syn keyword xdefaultsSymbol contained VENDOR
syn match   xdefaultsSymbol contained "VNDR_[a-zA-Z0-9_]\+"
syn match   xdefaultsSymbol contained "EXT_[a-zA-Z0-9_]\+"
syn keyword xdefaultsSymbol contained NUM_SCREENS
syn keyword xdefaultsSymbol contained SCREEN_NUM
syn keyword xdefaultsSymbol contained BITS_PER_RGB
syn keyword xdefaultsSymbol contained CLASS
syn keyword xdefaultsSymbol contained StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor
syn match   xdefaultsSymbol contained "CLASS_\(StaticGray\|GrayScale\|StaticColor\|PseudoColor\|TrueColor\|DirectColor\)"
syn keyword xdefaultsSymbol contained COLOR
syn match   xdefaultsSymbol contained "CLASS_\(StaticGray\|GrayScale\|StaticColor\|PseudoColor\|TrueColor\|DirectColor\)_[0-9]\+"
syn keyword xdefaultsSymbol contained HEIGHT
syn keyword xdefaultsSymbol contained WIDTH
syn keyword xdefaultsSymbol contained PLANES
syn keyword xdefaultsSymbol contained X_RESOLUTION
syn keyword xdefaultsSymbol contained Y_RESOLUTION

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link xdefaultsLabel		Type
hi def link xdefaultsValue		Constant
hi def link xdefaultsComment	Comment
hi def link xdefaultsCommentH	xdefaultsComment
hi def link xdefaultsPreProc	PreProc
hi def link xdefaultsInclude	xdefaultsPreProc
hi def link xdefaultsCppSkip	xdefaultsCppOut
hi def link xdefaultsCppOut2	xdefaultsCppOut
hi def link xdefaultsCppOut	Comment
hi def link xdefaultsIncluded	String
hi def link xdefaultsDefine	Macro
hi def link xdefaultsSymbol	Statement
hi def link xdefaultsSpecial	Statement
hi def link xdefaultsErrorLine	Error
hi def link xdefaultsCommentError	Error
hi def link xdefaultsPunct		Normal
hi def link xdefaultsLineEnd	Special
hi def link xdefaultsTodo		Todo


let b:current_syntax = "xdefaults"

" vim:ts=8
PK�j�Z��mvim80/syntax/conf.vimnu�[���" Vim syntax file
" Language:	generic configure file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2005 Jun 20

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword	confTodo	contained TODO FIXME XXX
" Avoid matching "text#text", used in /etc/disktab and /etc/gettytab
syn match	confComment	"^#.*" contains=confTodo
syn match	confComment	"\s#.*"ms=s+1 contains=confTodo
syn region	confString	start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
syn region	confString	start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link confComment	Comment
hi def link confTodo	Todo
hi def link confString	String

let b:current_syntax = "conf"

" vim: ts=8 sw=2
PK�j�Z�	(e+
+
vim80/syntax/simula.vimnu�[���" Vim syntax file
" Language:	Simula
" Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
" URL:		http://folk.uio.no/hakonrk/vim/syntax/simula.vim
" Last Change:	2001 May 15

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" No case sensitivity in Simula
syn case	ignore

syn match	simulaComment		"^%.*$" contains=simulaTodo
syn region	simulaComment		start="!\|\<comment\>" end=";" contains=simulaTodo

" Text between the keyword 'end' and either a semicolon or one of the
" keywords 'end', 'else', 'when' or 'otherwise' is also a comment
syn region	simulaComment		start="\<end\>"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>"

syn match	simulaCharError		"'.\{-2,}'"
syn match	simulaCharacter		"'.'"
syn match	simulaCharacter		"'!\d\{-}!'" contains=simulaSpecialChar
syn match	simulaString		'".\{-}"' contains=simulaSpecialChar,simulaTodo

syn keyword	simulaBoolean		true false
syn keyword	simulaCompound		begin end
syn keyword	simulaConditional	else if otherwise then until when
syn keyword	simulaConstant		none notext
syn keyword	simulaFunction		procedure
syn keyword	simulaOperator		eq eqv ge gt imp in is le lt ne new not qua
syn keyword	simulaRepeat		while for
syn keyword	simulaReserved		activate after at before delay go goto label prior reactivate switch to
syn keyword	simulaStatement		do inner inspect step this
syn keyword	simulaStorageClass	external hidden name protected value
syn keyword	simulaStructure		class
syn keyword	simulaType		array boolean character integer long real short text virtual
syn match	simulaAssigned		"\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2
syn match	simulaOperator		"[&:=<>+\-*/]"
syn match	simulaOperator		"\<and\(\s\+then\)\=\>"
syn match	simulaOperator		"\<or\(\s\+else\)\=\>"
syn match	simulaReferenceType	"\<ref\s*(.\{-})"
syn match	simulaSemicolon		";"
syn match	simulaSpecial		"[(),.]"
syn match	simulaSpecialCharErr	"!\d\{-4,}!" contained
syn match	simulaSpecialCharErr	"!!" contained
syn match	simulaSpecialChar	"!\d\{-}!" contains=simulaSpecialCharErr contained
syn match	simulaTodo		"xxx\+" contained

" Integer number (or float without `.')
syn match	simulaNumber		"-\=\<\d\+\>"
" Real with optional exponent
syn match	simulaReal		"-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>"
" Real starting with a `.', optional exponent
syn match	simulaReal		"-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>"


hi def link simulaAssigned		Identifier
hi def link simulaBoolean		Boolean
hi def link simulaCharacter		Character
hi def link simulaCharError		Error
hi def link simulaComment		Comment
hi def link simulaCompound		Statement
hi def link simulaConditional		Conditional
hi def link simulaConstant		Constant
hi def link simulaFunction		Function
hi def link simulaNumber			Number
hi def link simulaOperator		Operator
hi def link simulaReal			Float
hi def link simulaReferenceType		Type
hi def link simulaRepeat			Repeat
hi def link simulaReserved		Error
hi def link simulaSemicolon		Statement
hi def link simulaSpecial		Special
hi def link simulaSpecialChar		SpecialChar
hi def link simulaSpecialCharErr		Error
hi def link simulaStatement		Statement
hi def link simulaStorageClass		StorageClass
hi def link simulaString			String
hi def link simulaStructure		Structure
hi def link simulaTodo			Todo
hi def link simulaType			Type


let b:current_syntax = "simula"
" vim: sts=4 sw=4 ts=8
PK�j�Z�i{��@�@vim80/syntax/dtml.vimnu�[���" DTML syntax file
" Language:			Zope's Dynamic Template Markup Language
" Maintainer:	    Jean Jordaan <jean@upfrontsystems.co.za> (njj)
" Last change:	    2001 Sep 02

" These are used with Claudio Fleiner's html.vim in the standard distribution.
"
" Still very hackish. The 'dtml attributes' and 'dtml methods' have been
" hacked out of the Zope Quick Reference in case someone finds something
" sensible to do with them. I certainly haven't.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" First load the HTML syntax
runtime! syntax/html.vim

syn case match

" This doesn't have any effect.  Does it need to be moved to above/
" if !exists("main_syntax")
"   let main_syntax = 'dtml'
" endif

" dtml attributes
syn keyword dtmlAttribute ac_inherited_permissions access_debug_info contained
syn keyword dtmlAttribute acquiredRolesAreUsedBy all_meta_types assume_children AUTH_TYPE contained
syn keyword dtmlAttribute AUTHENTICATED_USER AUTHENTICATION_PATH BASE0 batch-end-index batch-size contained
syn keyword dtmlAttribute batch-start-index bobobase_modification_time boundary branches contained
syn keyword dtmlAttribute branches_expr capitalize cb_dataItems cb_dataValid cb_isCopyable contained
syn keyword dtmlAttribute cb_isMoveable changeClassId classDefinedAndInheritedPermissions contained
syn keyword dtmlAttribute classDefinedPermissions classInheritedPermissions collapse-all column contained
syn keyword dtmlAttribute connected connectionIsValid CONTENT_LENGTH CONTENT_TYPE cook cookies contained
syn keyword dtmlAttribute COPY count- createInObjectManager da_has_single_argument dav__allprop contained
syn keyword dtmlAttribute dav__init dav__propnames dav__propstat dav__validate default contained
syn keyword dtmlAttribute delClassAttr DELETE Destination DestinationURL digits discard contained
syn keyword dtmlAttribute disposition document_src e encode enter etc expand-all expr File contained
syn keyword dtmlAttribute filtered_manage_options filtered_meta_types first- fmt footer form contained
syn keyword dtmlAttribute GATEWAY_INTERFACE get_local_roles get_local_roles_for_userid contained
syn keyword dtmlAttribute get_request_var_or_attr get_size get_size get_valid_userids getAttribute contained
syn keyword dtmlAttribute getAttributeNode getAttributes getChildNodes getClassAttr getContentType contained
syn keyword dtmlAttribute getData getDocType getDocumentElement getElementsByTagName getFirstChild contained
syn keyword dtmlAttribute getImplementation getLastChild getLength getName getNextSibling contained
syn keyword dtmlAttribute getNodeName getNodeType getNodeValue getOwnerDocument getParentNode contained
syn keyword dtmlAttribute getPreviousSibling getProperty getPropertyType getSize getSize getSize contained
syn keyword dtmlAttribute get_size getTagName getUser getUserName getUserNames getUsers contained
syn keyword dtmlAttribute has_local_roles hasChildNodes hasProperty HEAD header hexdigits HTML contained
syn keyword dtmlAttribute html_quote HTMLFile id index_html index_objects indexes contained
syn keyword dtmlAttribute inheritedAttribute items last- leave leave_another leaves letters LOCK contained
syn keyword dtmlAttribute locked_in_version lower lowercase mailfrom mailhost mailhost_list mailto contained
syn keyword dtmlAttribute manage manage_ methods manage_access manage_acquiredPermissions contained
syn keyword dtmlAttribute manage_addConferaTopic manage_addDocument manage_addDTMLDocument contained
syn keyword dtmlAttribute manage_addDTMLMethod manage_addFile manage_addFolder manage_addImage contained
syn keyword dtmlAttribute manage_addLocalRoles manage_addMailHost manage_addPermission contained
syn keyword dtmlAttribute manage_addPrincipiaFactory manage_addProduct manage_addProperty contained
syn keyword dtmlAttribute manage_addUserFolder manage_addZClass manage_addZGadflyConnection contained
syn keyword dtmlAttribute manage_addZGadflyConnectionForm manage_advanced manage_afterAdd contained
syn keyword dtmlAttribute manage_afterClone manage_beforeDelete manage_changePermissions contained
syn keyword dtmlAttribute manage_changeProperties manage_clone manage_CopyContainerFirstItem contained
syn keyword dtmlAttribute manage_copyObjects manage_cutObjects manage_defined_roles contained
syn keyword dtmlAttribute manage_delLocalRoles manage_delObjects manage_delProperties contained
syn keyword dtmlAttribute manage_distribute manage_edit manage_editedDialog manage_editProperties contained
syn keyword dtmlAttribute manage_editRoles manage_exportObject manage_FTPget manage_FTPlist contained
syn keyword dtmlAttribute manage_FTPstat manage_get_product_readme__ manage_getPermissionMapping contained
syn keyword dtmlAttribute manage_haveProxy manage_help manage_importObject manage_listLocalRoles contained
syn keyword dtmlAttribute manage_options manage_pasteObjects manage_permission contained
syn keyword dtmlAttribute manage_propertiesForm manage_proxy manage_renameObject manage_role contained
syn keyword dtmlAttribute manage_setLocalRoles manage_setPermissionMapping contained
syn keyword dtmlAttribute manage_subclassableClassNames manage_test manage_testForm contained
syn keyword dtmlAttribute manage_undo_transactions manage_upload manage_users manage_workspace contained
syn keyword dtmlAttribute management_interface mapping math max- mean- median- meta_type min- contained
syn keyword dtmlAttribute MKCOL modified_in_version MOVE multiple name navigate_filter new_version contained
syn keyword dtmlAttribute newline_to_br next next-batches next-sequence next-sequence-end-index contained
syn keyword dtmlAttribute next-sequence-size next-sequence-start-index no manage_access None contained
syn keyword dtmlAttribute nonempty normalize nowrap null Object Manager objectIds objectItems contained
syn keyword dtmlAttribute objectMap objectValues octdigits only optional OPTIONS orphan overlap contained
syn keyword dtmlAttribute PARENTS PATH_INFO PATH_TRANSLATED permission_settings contained
syn keyword dtmlAttribute permissionMappingPossibleValues permissionsOfRole pi port contained
syn keyword dtmlAttribute possible_permissions previous previous-batches previous-sequence contained
syn keyword dtmlAttribute previous-sequence-end-index previous-sequence-size contained
syn keyword dtmlAttribute previous-sequence-start-index PrincipiaFind PrincipiaSearchSource contained
syn keyword dtmlAttribute propdict propertyIds propertyItems propertyLabel propertyMap propertyMap contained
syn keyword dtmlAttribute propertyValues PROPFIND PROPPATCH PUT query_day query_month QUERY_STRING contained
syn keyword dtmlAttribute query_year quoted_input quoted_report raise_standardErrorMessage random contained
syn keyword dtmlAttribute read read_raw REMOTE_ADDR REMOTE_HOST REMOTE_IDENT REMOTE_USER REQUEST contained
syn keyword dtmlAttribute REQUESTED_METHOD required RESPONSE reverse rolesOfPermission save schema contained
syn keyword dtmlAttribute SCRIPT_NAME sequence-end sequence-even sequence-index contained
syn keyword dtmlAttribute sequence-index-var- sequence-item sequence-key sequence-Letter contained
syn keyword dtmlAttribute sequence-letter sequence-number sequence-odd sequence-query contained
syn keyword dtmlAttribute sequence-roman sequence-Roman sequence-start sequence-step-end-index contained
syn keyword dtmlAttribute sequence-step-size sequence-step-start-index sequence-var- SERVER_NAME contained
syn keyword dtmlAttribute SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE setClassAttr setName single contained
syn keyword dtmlAttribute size skip_unauthorized smtphost sort spacify sql_quote SQLConnectionIDs contained
syn keyword dtmlAttribute standard-deviation- standard-deviation-n- standard_html_footer contained
syn keyword dtmlAttribute standard_html_header start String string subject SubTemplate superValues contained
syn keyword dtmlAttribute tabs_path_info tag test_url_ text_content this thousands_commas title contained
syn keyword dtmlAttribute title_and_id title_or_id total- tpURL tpValues TRACE translate tree-c contained
syn keyword dtmlAttribute tree-colspan tree-e tree-item-expanded tree-item-url tree-level contained
syn keyword dtmlAttribute tree-root-url tree-s tree-state type undoable_transactions UNLOCK contained
syn keyword dtmlAttribute update_data upper uppercase url url_quote URLn user_names contained
syn keyword dtmlAttribute userdefined_roles valid_property_id valid_roles validate_roles contained
syn keyword dtmlAttribute validClipData validRoles values variance- variance-n- view_image_or_file contained
syn keyword dtmlAttribute where whitespace whrandom xml_namespace zclass_candidate_view_actions contained
syn keyword dtmlAttribute ZClassBaseClassNames ziconImage ZopeFind ZQueryIds contained

syn keyword dtmlMethod abs absolute_url ac_inherited_permissions aCommon contained
syn keyword dtmlMethod aCommonZ acos acquiredRolesAreUsedBy aDay addPropertySheet aMonth AMPM contained
syn keyword dtmlMethod ampm AMPMMinutes appendChild appendData appendHeader asin atan atan2 contained
syn keyword dtmlMethod atof atoi betavariate capatilize capwords catalog_object ceil center contained
syn keyword dtmlMethod choice chr cloneNode COPY cos cosh count createInObjectManager contained
syn keyword dtmlMethod createSQLInput cunifvariate Date DateTime Day day dayOfYear dd default contained
syn keyword dtmlMethod DELETE deleteData delPropertySheet divmod document_id document_title dow contained
syn keyword dtmlMethod earliestTime enter equalTo exp expireCookie expovariate fabs fCommon contained
syn keyword dtmlMethod fCommonZ filtered_manage_options filtered_meta_types find float floor contained
syn keyword dtmlMethod fmod frexp gamma gauss get get_local_roles_for_userid get_size getattr contained
syn keyword dtmlMethod getAttribute getAttributeNode getClassAttr getDomains contained
syn keyword dtmlMethod getElementsByTagName getHeader getitem getNamedItem getobject contained
syn keyword dtmlMethod getObjectsInfo getpath getProperty getRoles getStatus getUser contained
syn keyword dtmlMethod getUserName greaterThan greaterThanEqualTo h_12 h_24 has_key contained
syn keyword dtmlMethod has_permission has_role hasattr hasFeature hash hasProperty HEAD hex contained
syn keyword dtmlMethod hour hypot index index_html inheritedAttribute insertBefore insertData contained
syn keyword dtmlMethod int isCurrentDay isCurrentHour isCurrentMinute isCurrentMonth contained
syn keyword dtmlMethod isCurrentYear isFuture isLeadYear isPast item join latestTime ldexp contained
syn keyword dtmlMethod leave leave_another len lessThan lessThanEqualTo ljust log log10 contained
syn keyword dtmlMethod lognormvariate lower lstrip maketrans manage manage_access contained
syn keyword dtmlMethod manage_acquiredPermissions manage_addColumn manage_addDocument contained
syn keyword dtmlMethod manage_addDTMLDocument manage_addDTMLMethod manage_addFile contained
syn keyword dtmlMethod manage_addFolder manage_addImage manage_addIndex manage_addLocalRoles contained
syn keyword dtmlMethod manage_addMailHost manage_addPermission manage_addPrincipiaFactory contained
syn keyword dtmlMethod manage_addProduct manage_addProperty manage_addPropertySheet contained
syn keyword dtmlMethod manage_addUserFolder manage_addZCatalog manage_addZClass contained
syn keyword dtmlMethod manage_addZGadflyConnection manage_addZGadflyConnectionForm contained
syn keyword dtmlMethod manage_advanced manage_catalogClear manage_catalogFoundItems contained
syn keyword dtmlMethod manage_catalogObject manage_catalogReindex manage_changePermissions contained
syn keyword dtmlMethod manage_changeProperties manage_clone manage_CopyContainerFirstItem contained
syn keyword dtmlMethod manage_copyObjects manage_createEditor manage_createView contained
syn keyword dtmlMethod manage_cutObjects manage_defined_roles manage_delColumns contained
syn keyword dtmlMethod manage_delIndexes manage_delLocalRoles manage_delObjects contained
syn keyword dtmlMethod manage_delProperties manage_Discard__draft__ manage_distribute contained
syn keyword dtmlMethod manage_edit manage_edit manage_editedDialog manage_editProperties contained
syn keyword dtmlMethod manage_editRoles manage_exportObject manage_importObject contained
syn keyword dtmlMethod manage_makeChanges manage_pasteObjects manage_permission contained
syn keyword dtmlMethod manage_propertiesForm manage_proxy manage_renameObject manage_role contained
syn keyword dtmlMethod manage_Save__draft__ manage_setLocalRoles manage_setPermissionMapping contained
syn keyword dtmlMethod manage_test manage_testForm manage_uncatalogObject contained
syn keyword dtmlMethod manage_undo_transactions manage_upload manage_users manage_workspace contained
syn keyword dtmlMethod mange_createWizard max min minute MKCOL mm modf month Month MOVE contained
syn keyword dtmlMethod namespace new_version nextObject normalvariate notEqualTo objectIds contained
syn keyword dtmlMethod objectItems objectValues oct OPTIONS ord paretovariate parts pCommon contained
syn keyword dtmlMethod pCommonZ pDay permissionsOfRole pMonth pow PreciseAMPM PreciseTime contained
syn keyword dtmlMethod previousObject propertyInfo propertyLabel PROPFIND PROPPATCH PUT quit contained
syn keyword dtmlMethod raise_standardErrorMessage randint random read read_raw redirect contained
syn keyword dtmlMethod removeAttribute removeAttributeNode removeChild replace replaceChild contained
syn keyword dtmlMethod replaceData rfc822 rfind rindex rjust rolesOfPermission round rstrip contained
syn keyword dtmlMethod save searchResults second seed set setAttribute setAttributeNode setBase contained
syn keyword dtmlMethod setCookie setHeader setStatus sin sinh split splitText sqrt str strip contained
syn keyword dtmlMethod substringData superValues swapcase tabs_path_info tan tanh Time contained
syn keyword dtmlMethod TimeMinutes timeTime timezone title title_and_id title_or_id toXML contained
syn keyword dtmlMethod toZone uncatalog_object undoable_transactions uniform uniqueValuesFor contained
syn keyword dtmlMethod update_data upper valid_property_id validate_roles vonmisesvariate contained
syn keyword dtmlMethod weibullvariate year yy zfill ZopeFind contained

" DTML tags
syn keyword dtmlTagName var if elif else unless in with let call raise try except tag comment tree sqlvar sqltest sqlgroup sendmail mime transparent contained

syn keyword dtmlEndTagName if unless in with let raise try tree sendmail transparent contained

" Own additions
syn keyword dtmlTODO    TODO FIXME		contained

syn region dtmlComment start=+<dtml-comment>+ end=+</dtml-comment>+ contains=dtmlTODO

" All dtmlTagNames are contained by dtmlIsTag.
syn match dtmlIsTag	    "dtml-[A-Za-z]\+"    contains=dtmlTagName

" 'var' tag entity syntax: &dtml-variableName;
"       - with attributes: &dtml.attribute1[.attribute2]...-variableName;
syn match dtmlSpecialChar "&dtml[.0-9A-Za-z_]\{-}-[0-9A-Za-z_.]\+;"

" Redefine to allow inclusion of DTML within HTML strings.
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
syn region htmlLink start="<a\>[^>]*href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
syn region  htmlString   contained start=+"+ end=+"+ contains=dtmlSpecialChar,htmlSpecialChar,javaScriptExpression,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlPreproc
syn match   htmlTagN     contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlTagNameCluster
syn match   htmlTagN     contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlTagNameCluster

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dtmlIsTag			PreProc
hi def link dtmlAttribute		Identifier
hi def link dtmlMethod			Function
hi def link dtmlComment		Comment
hi def link dtmlTODO			Todo
hi def link dtmlSpecialChar    Special


let b:current_syntax = "dtml"

" if main_syntax == 'dtml'
"   unlet main_syntax
" endif

" vim: ts=4
PK�j�ZҚ݁�4�4vim80/syntax/ocaml.vimnu�[���" Vim syntax file
" Language:     OCaml
" Filenames:    *.ml *.mli *.mll *.mly
" Maintainers:  Markus Mottl      <markus.mottl@gmail.com>
"               Karl-Heinz Sylla  <Karl-Heinz.Sylla@gmd.de>
"               Issac Trotts      <ijtrotts@ucdavis.edu>
" URL:          http://www.ocaml.info/vim/syntax/ocaml.vim
" Last Change:  2012 May 12 - Added Dominique Pellé's spell checking patch (MM)
"               2012 Feb 01 - Improved module path highlighting (MM)
"               2010 Oct 11 - Added highlighting of lnot (MM, thanks to Erick Matsen)

" A minor patch was applied to the official version so that object/end
" can be distinguished from begin/end, which is used for indentation,
" and folding. (David Baelde)

" quit when a syntax file was already loaded
if exists("b:current_syntax") && b:current_syntax == "ocaml"
  finish
endif

" OCaml is case sensitive.
syn case match

" Access to the method of an object
syn match    ocamlMethod       "#"

" Script headers highlighted like comments
syn match    ocamlComment   "^#!.*" contains=@Spell

" Scripting directives
syn match    ocamlScript "^#\<\(quit\|labels\|warnings\|directory\|cd\|load\|use\|install_printer\|remove_printer\|require\|thread\|trace\|untrace\|untrace_all\|print_depth\|print_length\|camlp4o\)\>"

" lowercase identifier - the standard way to match
syn match    ocamlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/

syn match    ocamlKeyChar    "|"

" Errors
syn match    ocamlBraceErr   "}"
syn match    ocamlBrackErr   "\]"
syn match    ocamlParenErr   ")"
syn match    ocamlArrErr     "|]"

syn match    ocamlCommentErr "\*)"

syn match    ocamlCountErr   "\<downto\>"
syn match    ocamlCountErr   "\<to\>"

if !exists("ocaml_revised")
  syn match    ocamlDoErr      "\<do\>"
endif

syn match    ocamlDoneErr    "\<done\>"
syn match    ocamlThenErr    "\<then\>"

" Error-highlighting of "end" without synchronization:
" as keyword or as error (default)
if exists("ocaml_noend_error")
  syn match    ocamlKeyword    "\<end\>"
else
  syn match    ocamlEndErr     "\<end\>"
endif

" Some convenient clusters
syn cluster  ocamlAllErrs contains=ocamlBraceErr,ocamlBrackErr,ocamlParenErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr

syn cluster  ocamlAENoParen contains=ocamlBraceErr,ocamlBrackErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr

syn cluster  ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlPreMPRestr,ocamlMPRestr,ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3,ocamlModRHS,ocamlFuncWith,ocamlFuncStruct,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlModType,ocamlFullMod,ocamlVal


" Enclosing delimiters
syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="(" matchgroup=ocamlKeyword end=")" contains=ALLBUT,@ocamlContained,ocamlParenErr
syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="{" matchgroup=ocamlKeyword end="}"  contains=ALLBUT,@ocamlContained,ocamlBraceErr
syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="\[" matchgroup=ocamlKeyword end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErr
syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="\[|" matchgroup=ocamlKeyword end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr


" Comments
syn region   ocamlComment start="(\*" end="\*)" contains=@Spell,ocamlComment,ocamlTodo
syn keyword  ocamlTodo contained TODO FIXME XXX NOTE


" Objects
syn region   ocamlEnd matchgroup=ocamlObject start="\<object\>" matchgroup=ocamlObject end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr


" Blocks
if !exists("ocaml_revised")
  syn region   ocamlEnd matchgroup=ocamlKeyword start="\<begin\>" matchgroup=ocamlKeyword end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr
endif


" "for"
syn region   ocamlNone matchgroup=ocamlKeyword start="\<for\>" matchgroup=ocamlKeyword end="\<\(to\|downto\)\>" contains=ALLBUT,@ocamlContained,ocamlCountErr


" "do"
if !exists("ocaml_revised")
  syn region   ocamlDo matchgroup=ocamlKeyword start="\<do\>" matchgroup=ocamlKeyword end="\<done\>" contains=ALLBUT,@ocamlContained,ocamlDoneErr
endif

" "if"
syn region   ocamlNone matchgroup=ocamlKeyword start="\<if\>" matchgroup=ocamlKeyword end="\<then\>" contains=ALLBUT,@ocamlContained,ocamlThenErr


"" Modules

" "sig"
syn region   ocamlSig matchgroup=ocamlModule start="\<sig\>" matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule
syn region   ocamlModSpec matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr

" "open"
syn region   ocamlNone matchgroup=ocamlKeyword start="\<open\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\( *\. *\u\(\w\|'\)*\)*\>" contains=@ocamlAllErrs,ocamlComment

" "include"
syn match    ocamlKeyword "\<include\>" skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod

" "module" - somewhat complicated stuff ;-)
syn region   ocamlModule matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlPreDef
syn region   ocamlPreDef start="."me=e-1 matchgroup=ocamlKeyword end="\l\|=\|)"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlModTypeRestr,ocamlModTRWith nextgroup=ocamlModPreRHS
syn region   ocamlModParam start="([^*]" end=")" contained contains=@ocamlAENoParen,ocamlModParam1,ocamlVal
syn match    ocamlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=ocamlPreMPRestr

syn region   ocamlPreMPRestr start="."me=e-1 end=")"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlMPRestr,ocamlModTypeRestr

syn region   ocamlMPRestr start=":" end="."me=e-1 contained contains=@ocamlComment skipwhite skipempty nextgroup=ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3
syn region   ocamlMPRestr1 matchgroup=ocamlModule start="\ssig\s\=" matchgroup=ocamlModule end="\<end\>" contained contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule
syn region   ocamlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=ocamlKeyword end="->" contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam skipwhite skipempty nextgroup=ocamlFuncWith,ocamlMPRestr2
syn match    ocamlMPRestr3 "\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*" contained
syn match    ocamlModPreRHS "=" contained skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
syn keyword  ocamlKeyword val
syn region   ocamlVal matchgroup=ocamlKeyword start="\<val\>" matchgroup=ocamlLCIdentifier end="\<\l\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment,ocamlFullMod skipwhite skipempty nextgroup=ocamlMPRestr
syn region   ocamlModRHS start="." end=". *\w\|([^*]"me=e-2 contained contains=ocamlComment skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
syn match    ocamlFullMod "\<\u\(\w\|'\)*\( *\. *\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=ocamlFuncWith

syn region   ocamlFuncWith start="([^*]"me=e-1 end=")" contained contains=ocamlComment,ocamlWith,ocamlFuncStruct skipwhite skipempty nextgroup=ocamlFuncWith
syn region   ocamlFuncStruct matchgroup=ocamlModule start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr

syn match    ocamlModTypeRestr "\<\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*\>" contained
syn region   ocamlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@ocamlAENoParen,ocamlWith
syn match    ocamlWith "\<\(\u\(\w\|'\)* *\. *\)*\w\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=ocamlWithRest
syn region   ocamlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@ocamlContained

" "struct"
syn region   ocamlStruct matchgroup=ocamlModule start="\<\(module\s\+\)\=struct\>" matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr

" "module type"
syn region   ocamlKeyword start="\<module\>\s*\<type\>\(\s*\<of\>\)\=" matchgroup=ocamlModule end="\<\w\(\w\|'\)*\>" contains=ocamlComment skipwhite skipempty nextgroup=ocamlMTDef
syn match    ocamlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=s+1 skipwhite skipempty nextgroup=ocamlFullMod

syn keyword  ocamlKeyword  and as assert class
syn keyword  ocamlKeyword  constraint else
syn keyword  ocamlKeyword  exception external fun

syn keyword  ocamlKeyword  in inherit initializer
syn keyword  ocamlKeyword  land lazy let match
syn keyword  ocamlKeyword  method mutable new of
syn keyword  ocamlKeyword  parser private raise rec
syn keyword  ocamlKeyword  try type
syn keyword  ocamlKeyword  virtual when while with

if exists("ocaml_revised")
  syn keyword  ocamlKeyword  do value
  syn keyword  ocamlBoolean  True False
else
  syn keyword  ocamlKeyword  function
  syn keyword  ocamlBoolean  true false
  syn match    ocamlKeyChar  "!"
endif

syn keyword  ocamlType     array bool char exn float format format4
syn keyword  ocamlType     int int32 int64 lazy_t list nativeint option
syn keyword  ocamlType     string unit

syn keyword  ocamlOperator asr lnot lor lsl lsr lxor mod not

syn match    ocamlConstructor  "(\s*)"
syn match    ocamlConstructor  "\[\s*\]"
syn match    ocamlConstructor  "\[|\s*>|]"
syn match    ocamlConstructor  "\[<\s*>\]"
syn match    ocamlConstructor  "\u\(\w\|'\)*\>"

" Polymorphic variants
syn match    ocamlConstructor  "`\w\(\w\|'\)*\>"

" Module prefix
syn match    ocamlModPath      "\u\(\w\|'\)* *\."he=e-1

syn match    ocamlCharacter    "'\\\d\d\d'\|'\\[\'ntbr]'\|'.'"
syn match    ocamlCharacter    "'\\x\x\x'"
syn match    ocamlCharErr      "'\\\d\d'\|'\\\d'"
syn match    ocamlCharErr      "'\\[^\'ntbr]'"
syn region   ocamlString       start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell

syn match    ocamlFunDef       "->"
syn match    ocamlRefAssign    ":="
syn match    ocamlTopStop      ";;"
syn match    ocamlOperator     "\^"
syn match    ocamlOperator     "::"

syn match    ocamlOperator     "&&"
syn match    ocamlOperator     "<"
syn match    ocamlOperator     ">"
syn match    ocamlAnyVar       "\<_\>"
syn match    ocamlKeyChar      "|[^\]]"me=e-1
syn match    ocamlKeyChar      ";"
syn match    ocamlKeyChar      "\~"
syn match    ocamlKeyChar      "?"
syn match    ocamlKeyChar      "\*"
syn match    ocamlKeyChar      "="

if exists("ocaml_revised")
  syn match    ocamlErr        "<-"
else
  syn match    ocamlOperator   "<-"
endif

syn match    ocamlNumber        "\<-\=\d\(_\|\d\)*[l|L|n]\?\>"
syn match    ocamlNumber        "\<-\=0[x|X]\(\x\|_\)\+[l|L|n]\?\>"
syn match    ocamlNumber        "\<-\=0[o|O]\(\o\|_\)\+[l|L|n]\?\>"
syn match    ocamlNumber        "\<-\=0[b|B]\([01]\|_\)\+[l|L|n]\?\>"
syn match    ocamlFloat         "\<-\=\d\(_\|\d\)*\.\?\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>"

" Labels
syn match    ocamlLabel        "\~\(\l\|_\)\(\w\|'\)*"lc=1
syn match    ocamlLabel        "?\(\l\|_\)\(\w\|'\)*"lc=1
syn region   ocamlLabel transparent matchgroup=ocamlLabel start="?(\(\l\|_\)\(\w\|'\)*"lc=2 end=")"me=e-1 contains=ALLBUT,@ocamlContained,ocamlParenErr


" Synchronization
syn sync minlines=50
syn sync maxlines=500

if !exists("ocaml_revised")
  syn sync match ocamlDoSync      grouphere  ocamlDo      "\<do\>"
  syn sync match ocamlDoSync      groupthere ocamlDo      "\<done\>"
endif

if exists("ocaml_revised")
  syn sync match ocamlEndSync     grouphere  ocamlEnd     "\<\(object\)\>"
else
  syn sync match ocamlEndSync     grouphere  ocamlEnd     "\<\(begin\|object\)\>"
endif

syn sync match ocamlEndSync     groupthere ocamlEnd     "\<end\>"
syn sync match ocamlStructSync  grouphere  ocamlStruct  "\<struct\>"
syn sync match ocamlStructSync  groupthere ocamlStruct  "\<end\>"
syn sync match ocamlSigSync     grouphere  ocamlSig     "\<sig\>"
syn sync match ocamlSigSync     groupthere ocamlSig     "\<end\>"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link ocamlBraceErr	   Error
hi def link ocamlBrackErr	   Error
hi def link ocamlParenErr	   Error
hi def link ocamlArrErr	   Error

hi def link ocamlCommentErr   Error

hi def link ocamlCountErr	   Error
hi def link ocamlDoErr	   Error
hi def link ocamlDoneErr	   Error
hi def link ocamlEndErr	   Error
hi def link ocamlThenErr	   Error

hi def link ocamlCharErr	   Error

hi def link ocamlErr	   Error

hi def link ocamlComment	   Comment

hi def link ocamlModPath	   Include
hi def link ocamlObject	   Include
hi def link ocamlModule	   Include
hi def link ocamlModParam1    Include
hi def link ocamlModType	   Include
hi def link ocamlMPRestr3	   Include
hi def link ocamlFullMod	   Include
hi def link ocamlModTypeRestr Include
hi def link ocamlWith	   Include
hi def link ocamlMTDef	   Include

hi def link ocamlScript	   Include

hi def link ocamlConstructor  Constant

hi def link ocamlVal          Keyword
hi def link ocamlModPreRHS    Keyword
hi def link ocamlMPRestr2	   Keyword
hi def link ocamlKeyword	   Keyword
hi def link ocamlMethod	   Include
hi def link ocamlFunDef	   Keyword
hi def link ocamlRefAssign    Keyword
hi def link ocamlKeyChar	   Keyword
hi def link ocamlAnyVar	   Keyword
hi def link ocamlTopStop	   Keyword
hi def link ocamlOperator	   Keyword

hi def link ocamlBoolean	   Boolean
hi def link ocamlCharacter    Character
hi def link ocamlNumber	   Number
hi def link ocamlFloat	   Float
hi def link ocamlString	   String

hi def link ocamlLabel	   Identifier

hi def link ocamlType	   Type

hi def link ocamlTodo	   Todo

hi def link ocamlEncl	   Keyword


let b:current_syntax = "ocaml"

" vim: ts=8
PK�j�Z�NDDvim80/syntax/gitsendemail.vimnu�[���" Vim syntax file
" Language:	git send-email message
" Maintainer:	Tim Pope
" Filenames:	.gitsendemail.*
" Last Change:	2016 Aug 29

if exists("b:current_syntax")
  finish
endif

runtime! syntax/mail.vim
unlet! b:current_syntax
syn include @gitsendemailDiff syntax/diff.vim
syn region gitsendemailDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^-- %/ fold contains=@gitsendemailDiff

syn case match

syn match   gitsendemailComment "\%^From.*#.*"
syn match   gitsendemailComment "^GIT:.*"

hi def link gitsendemailComment Comment

let b:current_syntax = "gitsendemail"
PK�j�Z|����
�
vim80/syntax/latte.vimnu�[���" Vim syntax file
" Language:	Latte
" Maintainer:	Nick Moffitt, <nick@zork.net>
" Last Change:	14 June, 2000
"
" Notes:
" I based this on the TeX and Scheme syntax files (but mostly scheme).
" See http://www.latte.org for info on the language.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match latteError "[{}\\]"
syn match latteOther "\\{"
syn match latteOther "\\}"
syn match latteOther "\\\\"

setlocal iskeyword=33,43,45,48-57,63,65-90,95,97-122,_

syn region latteVar matchgroup=SpecialChar start=!\\[A-Za-z_]!rs=s+1 end=![^A-Za-z0-9?!+_-]!me=e-1 contains=ALLBUT,latteNumber,latteOther
syn region latteVar matchgroup=SpecialChar start=!\\[=\&][A-Za-z_]!rs=s+2 end=![^A-Za-z0-9?!+_-]!me=e-1 contains=ALLBUT,latteNumber,latteOther
syn region latteString	start=+\\"+ skip=+\\\\"+ end=+\\"+

syn region latteGroup	matchgroup=Delimiter start="{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=ALLBUT,latteSyntax

syn region latteUnquote matchgroup=Delimiter start="\\,{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=ALLBUT,latteSyntax
syn region latteSplice matchgroup=Delimiter start="\\,@{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=ALLBUT,latteSyntax
syn region latteQuote matchgroup=Delimiter start="\\'{" skip="\\[{}]" matchgroup=Delimiter end="}"
syn region latteQuote matchgroup=Delimiter start="\\`{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=latteUnquote,latteSplice

syn match  latteOperator   '\\/'
syn match  latteOperator   '='

syn match  latteComment	"\\;.*$"

" This was gathered by slurping in the index.

syn keyword latteSyntax __FILE__ __latte-version__ contained
syn keyword latteSyntax _bal-tag _pre _tag add and append apply back contained
syn keyword latteSyntax caar cadr car cdar cddr cdr ceil compose contained
syn keyword latteSyntax concat cons def defmacro divide downcase contained
syn keyword latteSyntax empty? equal? error explode file-contents contained
syn keyword latteSyntax floor foreach front funcall ge?  getenv contained
syn keyword latteSyntax greater-equal? greater? group group? gt? html contained
syn keyword latteSyntax if include lambda le? length less-equal? contained
syn keyword latteSyntax less? let lmap load-file load-library lt?  macro contained
syn keyword latteSyntax member?  modulo multiply not nth operator? contained
syn keyword latteSyntax or ordinary quote process-output push-back contained
syn keyword latteSyntax push-front quasiquote quote random rdc reverse contained
syn keyword latteSyntax set!  snoc splicing unquote strict-html4 contained
syn keyword latteSyntax string-append string-ge?  string-greater-equal? contained
syn keyword latteSyntax string-greater?  string-gt?  string-le? contained
syn keyword latteSyntax string-less-equal?  string-less?  string-lt? contained
syn keyword latteSyntax string?  subseq substr subtract  contained
syn keyword latteSyntax upcase useless warn while zero?  contained


" If it's good enough for scheme...

syn sync match matchPlace grouphere NONE "^[^ \t]"
" ... i.e. synchronize on a line that starts at the left margin

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link latteSyntax		Statement
hi def link latteVar			Function

hi def link latteString		String
hi def link latteQuote			String

hi def link latteDelimiter		Delimiter
hi def link latteOperator		Operator

hi def link latteComment		Comment
hi def link latteError			Error


let b:current_syntax = "latte"
PK�j�ZYk��i	i	vim80/syntax/udevperm.vimnu�[���" Vim syntax file
" Language:             udev(8) permissions file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   udevpermBegin       display '^' nextgroup=udevpermDevice

syn match   udevpermDevice      contained display '[^:]\+'
                                \ contains=udevpermPattern
                                \ nextgroup=udevpermUserColon

syn match   udevpermPattern     contained '[*?]'
syn region  udevpermPattern     contained start='\[!\=' end='\]'
                                \ contains=udevpermPatRange

syn match   udevpermPatRange    contained '[^[-]-[^]-]'

syn match   udevpermUserColon   contained display ':'
                                \ nextgroup=udevpermUser

syn match   udevpermUser        contained display '[^:]\+'
                                \ nextgroup=udevpermGroupColon

syn match   udevpermGroupColon  contained display ':'
                                \ nextgroup=udevpermGroup

syn match   udevpermGroup       contained display '[^:]\+'
                                \ nextgroup=udevpermPermColon

syn match   udevpermPermColon   contained display ':'
                                \ nextgroup=udevpermPerm

syn match   udevpermPerm        contained display '\<0\=\o\+\>'
                                \ contains=udevpermOctalZero

syn match   udevpermOctalZero   contained display '\<0'
syn match   udevpermOctalError  contained display '\<0\o*[89]\d*\>'

syn keyword udevpermTodo        contained TODO FIXME XXX NOTE

syn region  udevpermComment     display oneline start='^\s*#' end='$'
                                \ contains=udevpermTodo,@Spell

hi def link udevpermTodo        Todo
hi def link udevpermComment     Comment
hi def link udevpermDevice      String
hi def link udevpermPattern     SpecialChar
hi def link udevpermPatRange    udevpermPattern
hi def link udevpermColon       Normal
hi def link udevpermUserColon   udevpermColon
hi def link udevpermUser        Identifier
hi def link udevpermGroupColon  udevpermColon
hi def link udevpermGroup       Type
hi def link udevpermPermColon   udevpermColon
hi def link udevpermPerm        Number
hi def link udevpermOctalZero   PreProc
hi def link udevpermOctalError  Error

let b:current_syntax = "udevperm"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�3���vim80/syntax/arduino.vimnu�[���" Vim syntax file
" Language:    Arduino
" Maintainer:  Johannes Hoff <johannes@johanneshoff.com>
" Last Change: 2011 June 3
" License:     VIM license (:help license, replace vim by arduino.vim)

" Syntax highlighting like in the Arduino IDE
" Keywords extracted from <arduino>/build/shared/lib/keywords.txt (arduino
" version 0021)

" Thanks to Rik, Erik Nomitch, Adam Obeng and Graeme Cross for helpful feedback!

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C syntax to start with
runtime! syntax/cpp.vim

syn keyword arduinoConstant HIGH LOW INPUT OUTPUT
syn keyword arduinoConstant DEC BIN HEX OCT BYTE
syn keyword arduinoConstant PI HALF_PI TWO_PI
syn keyword arduinoConstant LSBFIRST MSBFIRST 
syn keyword arduinoConstant CHANGE FALLING RISING 
syn keyword arduinoConstant SERIAL DISPLAY
syn keyword arduinoConstant DEFAULT EXTERNAL INTERNAL INTERNAL1V1 INTERNAL2V56

syn keyword arduinoStdFunc abs acos asin atan atan2 ceil constrain
syn keyword arduinoStdFunc cos degrees exp floor log
syn keyword arduinoStdFunc map max min pow radians 
syn keyword arduinoStdFunc round sin sq sqrt tan
syn keyword arduinoStdFunc randomSeed random

syn keyword arduinoFunc analogReference analogRead analogWrite 
syn keyword arduinoFunc attachInterrupt detachInterrupt interrupts noInterrupts 
syn keyword arduinoFunc lowByte highByte bitRead bitWrite bitSet bitClear
syn keyword arduinoFunc millis micros delay delayMicroseconds 
syn keyword arduinoFunc pinMode digitalWrite digitalRead 
syn keyword arduinoFunc tone noTone pulseIn shiftOut 

syn keyword arduinoMethod setup loop
syn keyword arduinoMethod begin end available read flush print println write peek

syn keyword arduinoType boolean byte word String 

syn keyword arduinoModule Serial Serial1 Serial2 Serial3

hi def link arduinoType Type
hi def link arduinoConstant Constant
hi def link arduinoStdFunc Function
hi def link arduinoFunc Function
hi def link arduinoMethod Function
hi def link arduinoModule Identifier
PK�j�Z��H�

vim80/syntax/trustees.vimnu�[���" Vim syntax file
" Language:     trustees
" Maintainer:   Nima Talebi <nima@it.net.au>
" Last Change:  2005-10-12

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syntax case match
syntax sync minlines=0 maxlines=0

" Errors & Comments
syntax match tfsError /.*/
highlight link tfsError Error
syntax keyword tfsSpecialComment TODO XXX FIXME contained
highlight link tfsSpecialComment Todo
syntax match tfsComment ~\s*#.*~ contains=tfsSpecialComment
highlight link tfsComment Comment 

" Operators & Delimiters
highlight link tfsSpecialChar Operator
syntax match tfsSpecialChar ~[*!+]~ contained
highlight link tfsDelimiter Delimiter
syntax match tfsDelimiter ~:~ contained

" Trustees Rules - Part 1 of 3 - The Device
syntax region tfsRuleDevice matchgroup=tfsDeviceContainer start=~\[/~ end=~\]~ nextgroup=tfsRulePath oneline
highlight link tfsRuleDevice Label
highlight link tfsDeviceContainer PreProc

" Trustees Rules - Part 2 of 3 - The Path
syntax match tfsRulePath ~/[-_a-zA-Z0-9/]*~ nextgroup=tfsRuleACL contained contains=tfsDelimiter 
highlight link tfsRulePath String

" Trustees Rules - Part 3 of 3 - The ACLs
syntax match tfsRuleACL ~\(:\(\*\|[+]\{0,1\}[a-zA-Z0-9/]\+\):[RWEBXODCU!]\+\)\+$~ contained contains=tfsDelimiter,tfsRuleWho,tfsRuleWhat
syntax match tfsRuleWho ~\(\*\|[+]\{0,1\}[a-zA-Z0-9/]\+\)~ contained contains=tfsSpecialChar
highlight link tfsRuleWho Identifier
syntax match tfsRuleWhat ~[RWEBXODCU!]\+~ contained contains=tfsSpecialChar
highlight link tfsRuleWhat Structure
PK�j�Z�3~���vim80/syntax/sed.vimnu�[���" Vim syntax file
" Language:	sed
" Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
" URL:		http://folk.uio.no/hakonrk/vim/syntax/sed.vim
" Last Change:	2010 May 29

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

syn match sedError	"\S"

syn match sedWhitespace "\s\+" contained
syn match sedSemicolon	";"
syn match sedAddress	"[[:digit:]$]"
syn match sedAddress	"\d\+\~\d\+"
syn region sedAddress   matchgroup=Special start="[{,;]\s*/\(\\/\)\="lc=1 skip="[^\\]\(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta
syn region sedAddress   matchgroup=Special start="^\s*/\(\\/\)\=" skip="[^\\]\(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta
syn match sedComment	"^\s*#.*$"
syn match sedFunction	"[dDgGhHlnNpPqQx=]\s*\($\|;\)" contains=sedSemicolon,sedWhitespace
syn match sedLabel	":[^;]*"
syn match sedLineCont	"^\(\\\\\)*\\$" contained
syn match sedLineCont	"[^\\]\(\\\\\)*\\$"ms=e contained
syn match sedSpecial	"[{},!]"
if exists("highlight_sedtabs")
    syn match sedTab	"\t" contained
endif

" Append/Change/Insert
syn region sedACI	matchgroup=sedFunction start="[aci]\\$" matchgroup=NONE end="^.*$" contains=sedLineCont,sedTab

syn region sedBranch	matchgroup=sedFunction start="[bt]" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace
syn region sedRW	matchgroup=sedFunction start="[rw]" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace

" Substitution/transform with various delimiters
syn region sedFlagwrite	    matchgroup=sedFlag start="w" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace contained
syn match sedFlag	    "[[:digit:]gpI]*w\=" contains=sedFlagwrite contained
syn match sedRegexpMeta	    "[.*^$]" contained
syn match sedRegexpMeta	    "\\." contains=sedTab contained
syn match sedRegexpMeta	    "\[.\{-}\]" contains=sedTab contained
syn match sedRegexpMeta	    "\\{\d\*,\d*\\}" contained
syn match sedRegexpMeta	    "\\(.\{-}\\)" contains=sedTab contained
syn match sedReplaceMeta    "&\|\\\($\|.\)" contains=sedTab contained

" Metacharacters: $ * . \ ^ [ ~
" @ is used as delimiter and treated on its own below
let __at = char2nr("@")
let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64
if has("ebcdic")
    let __sed_last = 255
else
    let __sed_last = 126
endif
let __sed_metacharacters = '$*.\^[~'
while __sed_i <= __sed_last
    let __sed_delimiter = escape(nr2char(__sed_i), __sed_metacharacters)
	if __sed_i != __at
	    exe 'syn region sedAddress matchgroup=Special start=@\\'.__sed_delimiter.'\(\\'.__sed_delimiter.'\)\=@ skip=@[^\\]\(\\\\\)*\\'.__sed_delimiter.'@ end=@'.__sed_delimiter.'I\=@ contains=sedTab'
	    exe 'syn region sedRegexp'.__sed_i  'matchgroup=Special start=@'.__sed_delimiter.'\(\\\\\|\\'.__sed_delimiter.'\)*@ skip=@[^\\'.__sed_delimiter.']\(\\\\\)*\\'.__sed_delimiter.'@ end=@'.__sed_delimiter.'@me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement'.__sed_i
	    exe 'syn region sedReplacement'.__sed_i 'matchgroup=Special start=@'.__sed_delimiter.'\(\\\\\|\\'.__sed_delimiter.'\)*@ skip=@[^\\'.__sed_delimiter.']\(\\\\\)*\\'.__sed_delimiter.'@ end=@'.__sed_delimiter.'@ contains=sedTab,sedReplaceMeta keepend contained nextgroup=sedFlag'
	endif
    let __sed_i = __sed_i + 1
endwhile
syn region sedAddress matchgroup=Special start=+\\@\(\\@\)\=+ skip=+[^\\]\(\\\\\)*\\@+ end=+@I\=+ contains=sedTab,sedRegexpMeta
syn region sedRegexp64 matchgroup=Special start=+@\(\\\\\|\\@\)*+ skip=+[^\\@]\(\\\\\)*\\@+ end=+@+me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement64
syn region sedReplacement64 matchgroup=Special start=+@\(\\\\\|\\@\)*+ skip=+[^\\@]\(\\\\\)*\\@+ end=+@+ contains=sedTab,sedReplaceMeta keepend contained nextgroup=sedFlag

" Since the syntax for the substituion command is very similar to the
" syntax for the transform command, I use the same pattern matching
" for both commands.  There is one problem -- the transform command
" (y) does not allow any flags.  To save memory, I ignore this problem.
syn match sedST	"[sy]" nextgroup=sedRegexp\d\+


hi def link sedAddress		Macro
hi def link sedACI		NONE
hi def link sedBranch		Label
hi def link sedComment		Comment
hi def link sedDelete		Function
hi def link sedError		Error
hi def link sedFlag		Type
hi def link sedFlagwrite		Constant
hi def link sedFunction		Function
hi def link sedLabel		Label
hi def link sedLineCont		Special
hi def link sedPutHoldspc	Function
hi def link sedReplaceMeta	Special
hi def link sedRegexpMeta	Special
hi def link sedRW		Constant
hi def link sedSemicolon		Special
hi def link sedST		Function
hi def link sedSpecial		Special
hi def link sedWhitespace	NONE
if exists("highlight_sedtabs")
hi def link sedTab		Todo
endif
let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64
while __sed_i <= __sed_last
exe "hi def link sedRegexp".__sed_i		"Macro"
exe "hi def link sedReplacement".__sed_i	"NONE"
let __sed_i = __sed_i + 1
endwhile


unlet __sed_i __sed_last __sed_delimiter __sed_metacharacters

let b:current_syntax = "sed"

" vim: sts=4 sw=4 ts=8
PK�j�ZC[�mrIrIvim80/syntax/maxima.vimnu�[���" Vim syntax file
" Language:	Maxima (symbolic algebra program)
" Maintainer:	Robert Dodier (robert.dodier@gmail.com)
" Last Change:	April 6, 2006
" Version:	1
" Adapted mostly from xmath.vim
" Number formats adapted from r.vim
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn sync lines=1000

" parenthesis sanity checker
syn region maximaZone	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaCurlyError
syn region maximaZone	matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaParenError
syn region maximaZone	matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,maximaError,maximaCurlyError,maximaParenError
syn match  maximaError	"[)\]}]"
syn match  maximaBraceError	"[)}]"	contained
syn match  maximaCurlyError	"[)\]]"	contained
syn match  maximaParenError	"[\]}]"	contained
syn match  maximaComma	"[\[\](),;]"
syn match  maximaComma	"\.\.\.$"

" A bunch of useful maxima keywords
syn keyword maximaConditional	if then else elseif and or not
syn keyword maximaRepeat	do for thru

" ---------------------- BEGIN LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS)  ----------------------
syn keyword maximaFunc abasep  abs  absboxchar  absint  acos  acosh  acot  acoth  acsc  
syn keyword maximaFunc acsch  activate  activecontexts  addcol  additive  addrow  adim  
syn keyword maximaFunc adjoint  af  aform  airy  algebraic  algepsilon  algexact  algsys  
syn keyword maximaFunc alg_type  alias  aliases  allbut  all_dotsimp_denoms  allroots  allsym  
syn keyword maximaFunc alphabetic  antid  antidiff  antisymmetric  append  appendfile  
syn keyword maximaFunc apply  apply1  apply2  applyb1  apropos  args  array  arrayapply  
syn keyword maximaFunc arrayinfo  arraymake  arrays  asec  asech  asin  asinh  askexp  
syn keyword maximaFunc askinteger  asksign  assoc  assoc_legendre_p  assoc_legendre_q  assume  
syn keyword maximaFunc assume_pos  assume_pos_pred  assumescalar  asymbol  asympa  at  atan  
syn keyword maximaFunc atan2  atanh  atensimp  atom  atomgrad  atrig1  atvalue  augcoefmatrix  
syn keyword maximaFunc av  backsubst  backtrace  bashindices  batch  batchload  bc2  bdvac  
syn keyword maximaFunc berlefact  bern  bernpoly  bessel  besselexpand  bessel_i  bessel_j  
syn keyword maximaFunc bessel_k  bessel_y  beta  bezout  bffac  bfhzeta  bfloat  bfloatp  
syn keyword maximaFunc bfpsi  bfpsi0  bftorat  bftrunc  bfzeta  bimetric  binomial  block  
syn keyword maximaFunc bothcoef  box  boxchar  break  breakup  bug_report  build_info  buildq  
syn keyword maximaFunc burn  cabs  canform  canten  carg  cartan  catch  cauchysum  cbffac  
syn keyword maximaFunc cdisplay  cf  cfdisrep  cfexpand  cflength  cframe_flag  cgeodesic  
syn keyword maximaFunc changename  changevar  charpoly  checkdiv  check_overlaps  christof  
syn keyword maximaFunc clear_rules  closefile  closeps  cmetric  cnonmet_flag  coeff  
syn keyword maximaFunc coefmatrix  cograd  col  collapse  columnvector  combine  commutative  
syn keyword maximaFunc comp2pui  compfile  compile  compile_file  components  concan  concat  
syn keyword maximaFunc conj  conjugate  conmetderiv  cons  constant  constantp  cont2part  
syn keyword maximaFunc content  context  contexts  contortion  contract  contragrad  coord  
syn keyword maximaFunc copylist  copymatrix  cos  cosh  cosnpiflag  cot  coth  covdiff  
syn keyword maximaFunc covect  create_list  csc  csch  csetup  ctaylor  ctaypov  ctaypt  
syn keyword maximaFunc ctayswitch  ctayvar  ct_coords  ct_coordsys  ctorsion_flag  ctransform  
syn keyword maximaFunc ctrgsimp  current_let_rule_package  dblint  deactivate  debugmode  
syn keyword maximaFunc declare  declare_translated  declare_weight  decsym  
syn keyword maximaFunc default_let_rule_package  defcon  define  define_variable  defint  
syn keyword maximaFunc defmatch  defrule  deftaylor  del  delete  deleten  delta  demo  
syn keyword maximaFunc demoivre  denom  dependencies  depends  derivabbrev  derivdegree  
syn keyword maximaFunc derivlist  derivsubst  describe  desolve  determinant  detout  
syn keyword maximaFunc diagmatrix  diagmatrixp  diagmetric  diff  dim  dimension  direct  
syn keyword maximaFunc disolate  disp  dispcon  dispflag  dispform  dispfun  display  
syn keyword maximaFunc display2d  display_format_internal  disprule  dispterms  distrib  
syn keyword maximaFunc divide  divsum  doallmxops  domain  domxexpt  domxmxops  domxnctimes  
syn keyword maximaFunc dontfactor  doscmxops  doscmxplus  dot0nscsimp  dot0simp  dot1simp  
syn keyword maximaFunc dotassoc  dotconstrules  dotdistrib  dotexptsimp  dotident  dotscrules  
syn keyword maximaFunc dotsimp  dpart  dscalar  %e  echelon  %edispflag  eigenvalues  
syn keyword maximaFunc eigenvectors  eighth  einstein  eivals  eivects  ele2comp  
syn keyword maximaFunc ele2polynome  ele2pui  elem  eliminate  elliptic_e  elliptic_ec  
syn keyword maximaFunc elliptic_eu  elliptic_f  elliptic_kc  elliptic_pi  ematrix  %emode  
syn keyword maximaFunc endcons  entermatrix  entertensor  entier  %enumer  equal  equalp  erf  
syn keyword maximaFunc erfflag  errcatch  error  errormsg  error_size  error_syms  
syn keyword maximaFunc %e_to_numlog  euler  ev  eval  evenp  every  evflag  evfun  evundiff  
syn keyword maximaFunc example  exp  expand  expandwrt  expandwrt_denom  expandwrt_factored  
syn keyword maximaFunc explose  expon  exponentialize  expop  express  expt  exptdispflag  
syn keyword maximaFunc exptisolate  exptsubst  extdiff  extract_linear_equations  ezgcd  
syn keyword maximaFunc facexpand  factcomb  factlim  factor  factorflag  factorial  factorout  
syn keyword maximaFunc factorsum  facts  false  fast_central_elements  fast_linsolve  
syn keyword maximaFunc fasttimes  fb  feature  featurep  features  fft  fib  fibtophi  fifth  
syn keyword maximaFunc filename_merge  file_search  file_search_demo  file_search_lisp  
syn keyword maximaFunc file_search_maxima  file_type  fillarray  findde  first  fix  flatten  
syn keyword maximaFunc flipflag  float  float2bf  floatnump  flush  flush1deriv  flushd  
syn keyword maximaFunc flushnd  forget  fortindent  fortran  fortspaces  fourcos  fourexpand  
syn keyword maximaFunc fourier  fourint  fourintcos  fourintsin  foursimp  foursin  fourth  
syn keyword maximaFunc fpprec  fpprintprec  frame_bracket  freeof  fullmap  fullmapl  
syn keyword maximaFunc fullratsimp  fullratsubst  funcsolve  functions  fundef  funmake  funp  
syn keyword maximaFunc gamma  %gamma  gammalim  gauss  gcd  gcdex  gcfactor  gdet  genfact  
syn keyword maximaFunc genindex  genmatrix  gensumnum  get  getchar  gfactor  gfactorsum  
syn keyword maximaFunc globalsolve  go  gradef  gradefs  gramschmidt  grind  grobner_basis  
syn keyword maximaFunc gschmit  hach  halfangles  hermite  hipow  hodge  horner  i0  i1  
syn keyword maximaFunc *read-base*  ic1  ic2  icc1  icc2  ic_convert  ichr1  ichr2  icounter  
syn keyword maximaFunc icurvature  ident  idiff  idim  idummy  idummyx  ieqn  ieqnprint  ifb  
syn keyword maximaFunc ifc1  ifc2  ifg  ifgi  ifr  iframe_bracket_form  iframes  ifri  ift  
syn keyword maximaFunc igeodesic_coords  igeowedge_flag  ikt1  ikt2  ilt  imagpart  imetric  
syn keyword maximaFunc inchar  indexed_tensor  indices  inf  %inf  infeval  infinity  infix  
syn keyword maximaFunc inflag  infolists  init_atensor  init_ctensor  inm  inmc1  inmc2  
syn keyword maximaFunc innerproduct  in_netmath  inpart  inprod  inrt  integerp  integrate  
syn keyword maximaFunc integrate_use_rootsof  integration_constant_counter  interpolate  
syn keyword maximaFunc intfaclim  intopois  intosum  intpolabs  intpolerror  intpolrel  
syn keyword maximaFunc invariant1  invariant2  inverse_jacobi_cd  inverse_jacobi_cn  
syn keyword maximaFunc inverse_jacobi_cs  inverse_jacobi_dc  inverse_jacobi_dn  
syn keyword maximaFunc inverse_jacobi_ds  inverse_jacobi_nc  inverse_jacobi_nd  
syn keyword maximaFunc inverse_jacobi_ns  inverse_jacobi_sc  inverse_jacobi_sd  
syn keyword maximaFunc inverse_jacobi_sn  invert  is  ishow  isolate  isolate_wrt_times  
syn keyword maximaFunc isqrt  itr  j0  j1  jacobi  jacobi_cd  jacobi_cn  jacobi_cs  jacobi_dc  
syn keyword maximaFunc jacobi_dn  jacobi_ds  jacobi_nc  jacobi_nd  jacobi_ns  jacobi_sc  
syn keyword maximaFunc jacobi_sd  jacobi_sn  jn  kdels  kdelta  keepfloat  kill  killcontext  
syn keyword maximaFunc kinvariant  kostka  kt  labels  lambda  laplace  lassociative  last  
syn keyword maximaFunc lc2kdt  lc_l  lcm  lc_u  ldefint  ldisp  ldisplay  leinstein  length  
syn keyword maximaFunc let  letrat  let_rule_packages  letrules  letsimp  levi_civita  lfg  
syn keyword maximaFunc lfreeof  lg  lgtreillis  lhospitallim  lhs  liediff  limit  limsubst  
syn keyword maximaFunc linear  linechar  linel  linenum  linsolve  linsolve_params  
syn keyword maximaFunc linsolvewarn  listarith  listarray  listconstvars  listdummyvars  
syn keyword maximaFunc list_nc_monomials  listoftens  listofvars  listp  lmxchar  load  
syn keyword maximaFunc loadfile  loadprint  local  log  logabs  logarc  logconcoeffp  
syn keyword maximaFunc logcontract  logexpand  lognegint  lognumer  logsimp  lopow  
syn keyword maximaFunc lorentz_gauge  lpart  lratsubst  lriem  lriemann  lsum  ltreillis  
syn keyword maximaFunc m1pbranch  macroexpansion  mainvar  make_array  makebox  makefact  
syn keyword maximaFunc makegamma  makelist  make_random_state  make_transform  map  mapatom  
syn keyword maximaFunc maperror  maplist  matchdeclare  matchfix  matrix  matrix_element_add  
syn keyword maximaFunc matrix_element_mult  matrix_element_transpose  matrixmap  matrixp  
syn keyword maximaFunc mattrace  max  maxapplydepth  maxapplyheight  maxnegex  maxposex  
syn keyword maximaFunc maxtayorder  member  min  %minf  minfactorial  minor  mod  
syn keyword maximaFunc mode_check_errorp  mode_checkp  mode_check_warnp  mode_declare  
syn keyword maximaFunc mode_identity  modulus  mon2schur  mono  monomial_dimensions  
syn keyword maximaFunc multi_elem  multinomial  multi_orbit  multiplicative  multiplicities  
syn keyword maximaFunc multi_pui  multsym  multthru  myoptions  nc_degree  ncexpt  ncharpoly  
syn keyword maximaFunc negdistrib  negsumdispflag  newcontext  newdet  newton  niceindices  
syn keyword maximaFunc niceindicespref  ninth  nm  nmc  noeval  nolabels  nonmetricity  
syn keyword maximaFunc nonscalar  nonscalarp  noun  noundisp  nounify  nouns  np  npi  
syn keyword maximaFunc nptetrad  nroots  nterms  ntermst  nthroot  ntrig  num  numberp  numer  
syn keyword maximaFunc numerval  numfactor  nusum  obase  oddp  ode2  op  openplot_curves  
syn keyword maximaFunc operatorp  opproperties  opsubst  optimize  optimprefix  optionset
syn keyword maximaFunc orbit  ordergreat  ordergreatp  orderless  orderlessp  outative  
syn keyword maximaFunc outchar  outermap  outofpois  packagefile  pade  part  part2cont  
syn keyword maximaFunc partfrac  partition  partpol  partswitch  permanent  permut  petrov  
syn keyword maximaFunc pfeformat  pi  pickapart  piece  playback  plog  plot2d  plot2d_ps  
syn keyword maximaFunc plot3d  plot_options  poisdiff  poisexpt  poisint  poislim  poismap  
syn keyword maximaFunc poisplus  poissimp  poisson  poissubst  poistimes  poistrim  polarform  
syn keyword maximaFunc polartorect  polynome2ele  posfun  potential  powerdisp  powers  
syn keyword maximaFunc powerseries  pred  prederror  primep  print  printpois  printprops  
syn keyword maximaFunc prodhack  prodrac  product  programmode  prompt  properties  props  
syn keyword maximaFunc propvars  pscom  psdraw_curve  psexpand  psi  pui  pui2comp  pui2ele  
syn keyword maximaFunc pui2polynome  pui_direct  puireduc  put  qput  qq  quad_qag  quad_qagi  
syn keyword maximaFunc quad_qags  quad_qawc  quad_qawf  quad_qawo  quad_qaws  quanc8  quit  
syn keyword maximaFunc qunit  quotient  radcan  radexpand  radsubstflag  random  rank  
syn keyword maximaFunc rassociative  rat  ratalgdenom  ratchristof  ratcoef  ratdenom  
syn keyword maximaFunc ratdenomdivide  ratdiff  ratdisrep  rateinstein  ratepsilon  ratexpand  
syn keyword maximaFunc ratfac  ratmx  ratnumer  ratnump  ratp  ratprint  ratriemann  ratsimp  
syn keyword maximaFunc ratsimpexpons  ratsubst  ratvars  ratweight  ratweights  ratweyl  
syn keyword maximaFunc ratwtlvl  read  readonly  realonly  realpart  realroots  rearray  
syn keyword maximaFunc rectform  recttopolar  rediff  refcheck  rem  remainder  remarray  
syn keyword maximaFunc rembox  remcomps  remcon  remcoord  remfun  remfunction  remlet  
syn keyword maximaFunc remove  remrule  remsym  remvalue  rename  reset  residue  resolvante  
syn keyword maximaFunc resolvante_alternee1  resolvante_bipartite  resolvante_diedrale  
syn keyword maximaFunc resolvante_klein  resolvante_klein3  resolvante_produit_sym  
syn keyword maximaFunc resolvante_unitaire  resolvante_vierer  rest  resultant  return  
syn keyword maximaFunc reveal  reverse  revert  revert2  rhs  ric  ricci  riem  riemann  
syn keyword maximaFunc rinvariant  risch  rmxchar  rncombine  %rnum_list  romberg  rombergabs  
syn keyword maximaFunc rombergit  rombergmin  rombergtol  room  rootsconmode  rootscontract  
syn keyword maximaFunc rootsepsilon  round  row  run_testsuite  save  savedef  savefactors  
syn keyword maximaFunc scalarmatrixp  scalarp  scalefactors  scanmap  schur2comp  sconcat  
syn keyword maximaFunc scsimp  scurvature  sec  sech  second  setcheck  setcheckbreak  
syn keyword maximaFunc setelmx  set_plot_option  set_random_state  setup_autoload  
syn keyword maximaFunc set_up_dot_simplifications  setval  seventh  sf  show  showcomps  
syn keyword maximaFunc showratvars  showtime  sign  signum  similaritytransform  simpsum  
syn keyword maximaFunc simtran  sin  sinh  sinnpiflag  sixth  solve  solvedecomposes  
syn keyword maximaFunc solveexplicit  solvefactors  solve_inconsistent_error  solvenullwarn  
syn keyword maximaFunc solveradcan  solvetrigwarn  somrac  sort  sparse  spherical_bessel_j  
syn keyword maximaFunc spherical_bessel_y  spherical_hankel1  spherical_hankel2  
syn keyword maximaFunc spherical_harmonic  splice  sqfr  sqrt  sqrtdispflag  sstatus  
syn keyword maximaFunc stardisp  status  string  stringout  sublis  sublis_apply_lambda  
syn keyword maximaFunc sublist  submatrix  subst  substinpart  substpart  subvarp  sum  
syn keyword maximaFunc sumcontract  sumexpand  sumhack  sumsplitfact  supcontext  symbolp  
syn keyword maximaFunc symmetric  symmetricp  system  tan  tanh  taylor  taylordepth  
syn keyword maximaFunc taylorinfo  taylor_logexpand  taylor_order_coefficients  taylorp  
syn keyword maximaFunc taylor_simplifier  taylor_truncate_polynomials  taytorat  tcl_output  
syn keyword maximaFunc tcontract  tellrat  tellsimp  tellsimpafter  tensorkill  tentex  tenth  
syn keyword maximaFunc tex  %th  third  throw  time  timer  timer_devalue  timer_info  
syn keyword maximaFunc tldefint  tlimit  tlimswitch  todd_coxeter  to_lisp  totaldisrep  
syn keyword maximaFunc totalfourier  totient  tpartpol  tr  trace  trace_options  
syn keyword maximaFunc transcompile  translate  translate_file  transpose  transrun  
syn keyword maximaFunc tr_array_as_ref  tr_bound_function_applyp  treillis  treinat  
syn keyword maximaFunc tr_file_tty_messagesp  tr_float_can_branch_complex  
syn keyword maximaFunc tr_function_call_default  triangularize  trigexpand  trigexpandplus  
syn keyword maximaFunc trigexpandtimes  triginverses  trigrat  trigreduce  trigsign  trigsimp  
syn keyword maximaFunc tr_numer  tr_optimize_max_loop  tr_semicompile  tr_state_vars  true  
syn keyword maximaFunc trunc  truncate  tr_warn_bad_function_calls  tr_warn_fexpr  
syn keyword maximaFunc tr_warnings_get  tr_warn_meval  tr_warn_mode  tr_warn_undeclared  
syn keyword maximaFunc tr_warn_undefined_variable  tr_windy  ttyoff  ueivects  ufg  ug  
syn keyword maximaFunc ultraspherical  undiff  uniteigenvectors  unitvector  unknown  unorder  
syn keyword maximaFunc unsum  untellrat  untimer  untrace  uric  uricci  uriem  uriemann  
syn keyword maximaFunc use_fast_arrays  uvect  values  vect_cross  vectorpotential  
syn keyword maximaFunc vectorsimp  verb  verbify  verbose  weyl  with_stdout  writefile  
syn keyword maximaFunc xgraph_curves  xthru  zerobern  zeroequiv  zeromatrix  zeta  zeta%pi
syn match maximaOp "[\*\/\+\-\#\!\~\^\=\:\<\>\@]"
" ---------------------- END LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS)  ----------------------


syn case match

" Labels (supports maxima's goto)
syn match   maximaLabel	 "^\s*<[a-zA-Z_][a-zA-Z0-9%_]*>"

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match   maximaSpecial	contained "\\\d\d\d\|\\."
syn region  maximaString	start=+"+  skip=+\\\\\|\\"+  end=+"+ contains=maximaSpecial
syn match   maximaCharacter	"'[^\\]'"
syn match   maximaSpecialChar	"'\\.'"

" number with no fractional part or exponent
syn match maximaNumber /\<\d\+\>/
" floating point number with integer and fractional parts and optional exponent
syn match maximaFloat /\<\d\+\.\d*\([BbDdEeSs][-+]\=\d\+\)\=\>/
" floating point number with no integer part and optional exponent
syn match maximaFloat /\<\.\d\+\([BbDdEeSs][-+]\=\d\+\)\=\>/
" floating point number with no fractional part and optional exponent
syn match maximaFloat /\<\d\+[BbDdEeSs][-+]\=\d\+\>/

" Comments:
" maxima supports /* ... */ (like C)
syn keyword maximaTodo contained	TODO Todo DEBUG
syn region  maximaCommentBlock	start="/\*" end="\*/"	contains=maximaString,maximaTodo,maximaCommentBlock

" synchronizing
syn sync match maximaSyncComment	grouphere maximaCommentBlock "/*"
syn sync match maximaSyncComment	groupthere NONE "*/"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link maximaBraceError	maximaError
hi def link maximaCmd	maximaStatement
hi def link maximaCurlyError	maximaError
hi def link maximaFuncCmd	maximaStatement
hi def link maximaParenError	maximaError

" The default methods for highlighting.  Can be overridden later
hi def link maximaCharacter	Character
hi def link maximaComma	Function
hi def link maximaCommentBlock	Comment
hi def link maximaConditional	Conditional
hi def link maximaError	Error
hi def link maximaFunc	Delimiter
hi def link maximaOp                 Delimiter
hi def link maximaLabel	PreProc
hi def link maximaNumber	Number
hi def link maximaFloat	Float
hi def link maximaRepeat	Repeat
hi def link maximaSpecial	Type
hi def link maximaSpecialChar	SpecialChar
hi def link maximaStatement	Statement
hi def link maximaString	String
hi def link maximaTodo	Todo


let b:current_syntax = "maxima"
PK�j�ZD����vim80/syntax/vgrindefs.vimnu�[���" Vim syntax file
" Language:	Vgrindefs
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2005 Jun 20

" The Vgrindefs file is used to specify a language for vgrind

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Comments
syn match vgrindefsComment "^#.*"

" The fields that vgrind recognizes
syn match vgrindefsField ":ab="
syn match vgrindefsField ":ae="
syn match vgrindefsField ":pb="
syn match vgrindefsField ":bb="
syn match vgrindefsField ":be="
syn match vgrindefsField ":cb="
syn match vgrindefsField ":ce="
syn match vgrindefsField ":sb="
syn match vgrindefsField ":se="
syn match vgrindefsField ":lb="
syn match vgrindefsField ":le="
syn match vgrindefsField ":nc="
syn match vgrindefsField ":tl"
syn match vgrindefsField ":oc"
syn match vgrindefsField ":kw="

" Also find the ':' at the end of the line, so all ':' are highlighted
syn match vgrindefsField ":\\$"
syn match vgrindefsField ":$"
syn match vgrindefsField "\\$"

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link vgrindefsField	Statement
hi def link vgrindefsComment	Comment

let b:current_syntax = "vgrindefs"

" vim: ts=8
PK�j�Z�GV�%%vim80/syntax/matlab.vimnu�[���" Vim syntax file
" Language:	Matlab
" Maintainer:	Alex Burka <vim@alexburka.com>
" Credits:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
"		Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
"		Original author: Mario Eusebio
" Last Change:	Mon Jan 23 2017
" 		added support for cell mode
" Change History:
" 		- now highlights cell-mode separator comments
" 		- 'global' and 'persistent' keyword are now recognized

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword matlabStatement		return
syn keyword matlabLabel			case switch
syn keyword matlabConditional		else elseif end if otherwise
syn keyword matlabRepeat		do for while
" MT_ADDON - added exception-specific keywords
syn keyword matlabExceptions		try catch
syn keyword matlabOO			classdef properties events methods

syn keyword matlabTodo			contained  TODO
syn keyword matlabScope			global persistent

" If you do not want these operators lit, uncommment them and the "hi link" below
syn match matlabArithmeticOperator	"[-+]"
syn match matlabArithmeticOperator	"\.\=[*/\\^]"
syn match matlabRelationalOperator	"[=~]="
syn match matlabRelationalOperator	"[<>]=\="
syn match matlabLogicalOperator		"[&|~]"

syn match matlabLineContinuation	"\.\{3}"

"syn match matlabIdentifier		"\<\a\w*\>"

" String
" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence 
syn region matlabString			start=+'+ end=+'+	oneline skip=+''+

" If you don't like tabs
syn match matlabTab			"\t"

" Standard numbers
syn match matlabNumber		"\<\d\+[ij]\=\>"
" floating point number, with dot, optional exponent
syn match matlabFloat		"\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
" floating point number, starting with a dot, optional exponent
syn match matlabFloat		"\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"

" Transpose character and delimiters: Either use just [...] or (...) aswell
syn match matlabDelimiter		"[][]"
"syn match matlabDelimiter		"[][()]"
syn match matlabTransposeOperator	"[])a-zA-Z0-9.]'"lc=1

syn match matlabSemicolon		";"

syn match matlabComment			"%.*$"	contains=matlabTodo,matlabTab
" MT_ADDON - correctly highlights words after '...' as comments
syn match matlabComment			"\.\.\..*$"	contains=matlabTodo,matlabTab
syn region matlabMultilineComment	start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
syn match matlabCellComment     "^%%.*$"

syn keyword matlabOperator		break zeros default margin round ones rand
syn keyword matlabOperator		ceil floor size clear zeros eye mean std cov

syn keyword matlabFunction		error eval function

syn keyword matlabImplicit		abs acos atan asin cos cosh exp log prod sum
syn keyword matlabImplicit		log10 max min sign sin sinh sqrt tan reshape

syn match matlabError	"-\=\<\d\+\.\d\+\.[^*/\\^]"
syn match matlabError	"-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link matlabTransposeOperator	matlabOperator
hi def link matlabOperator			Operator
hi def link matlabLineContinuation		Special
hi def link matlabLabel			Label
hi def link matlabConditional		Conditional
hi def link matlabExceptions		Conditional
hi def link matlabRepeat			Repeat
hi def link matlabTodo			Todo
hi def link matlabString			String
hi def link matlabDelimiter		Identifier
hi def link matlabTransposeOther		Identifier
hi def link matlabNumber			Number
hi def link matlabFloat			Float
hi def link matlabFunction			Function
hi def link matlabError			Error
hi def link matlabImplicit			matlabStatement
hi def link matlabStatement		Statement
hi def link matlabOO			Statement
hi def link matlabSemicolon		SpecialChar
hi def link matlabComment			Comment
hi def link matlabMultilineComment		Comment
hi def link matlabCellComment          Todo
hi def link matlabScope			Type

hi def link matlabArithmeticOperator	matlabOperator
hi def link matlabRelationalOperator	matlabOperator
hi def link matlabLogicalOperator		matlabOperator

"optional highlighting
"hi def link matlabIdentifier		Identifier
"hi def link matlabTab			Error


let b:current_syntax = "matlab"

"EOF	vim: ts=8 noet tw=100 sw=8 sts=0
PK�j�Z�×z;F;Fvim80/syntax/java.vimnu�[���" Vim syntax file
" Language:	Java
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/java.vim
" Last Change:	2015 March 01

" Please check :help java.vim for comments on some of the options available.

" quit when a syntax file was already loaded
if !exists("main_syntax")
  if exists("b:current_syntax")
    finish
  endif
  " we define it here so that included files can test for it
  let main_syntax='java'
  syn region javaFold start="{" end="}" transparent fold
endif

let s:cpo_save = &cpo
set cpo&vim

" some characters that cannot be in a java program (outside a string)
syn match javaError "[\\@`]"
syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|\*\/"

syn match javaOK "\.\.\."

" use separate name so that it can be deleted in javacc.vim
syn match   javaError2 "#\|=<"
hi def link javaError2 javaError



" keyword definitions
syn keyword javaExternal	native package
syn match javaExternal		"\<import\>\(\s\+static\>\)\?"
syn keyword javaError		goto const
syn keyword javaConditional	if else switch
syn keyword javaRepeat		while for do
syn keyword javaBoolean		true false
syn keyword javaConstant	null
syn keyword javaTypedef		this super
syn keyword javaOperator	new instanceof
syn keyword javaType		boolean char byte short int long float double
syn keyword javaType		void
syn keyword javaStatement	return
syn keyword javaStorageClass	static synchronized transient volatile final strictfp serializable
syn keyword javaExceptions	throw try catch finally
syn keyword javaAssert		assert
syn keyword javaMethodDecl	synchronized throws
syn keyword javaClassDecl	extends implements interface
" to differentiate the keyword class from MyClass.class we use a match here
syn match   javaTypedef		"\.\s*\<class\>"ms=s+1
syn keyword javaClassDecl	enum
syn match   javaClassDecl	"^class\>"
syn match   javaClassDecl	"[^.]\s*\<class\>"ms=s+1
syn match   javaAnnotation	"@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>\(([^)]*)\)\=" contains=javaString
syn match   javaClassDecl	"@interface\>"
syn keyword javaBranch		break continue nextgroup=javaUserLabelRef skipwhite
syn match   javaUserLabelRef	"\k\+" contained
syn match   javaVarArg		"\.\.\."
syn keyword javaScopeDecl	public protected private abstract

if exists("java_highlight_java_lang_ids")
  let java_highlight_all=1
endif
if exists("java_highlight_all")  || exists("java_highlight_java")  || exists("java_highlight_java_lang") 
  " java.lang.*
  syn match javaLangClass "\<System\>"
  syn keyword javaR_JavaLang NegativeArraySizeException ArrayStoreException IllegalStateException RuntimeException IndexOutOfBoundsException UnsupportedOperationException ArrayIndexOutOfBoundsException ArithmeticException ClassCastException EnumConstantNotPresentException StringIndexOutOfBoundsException IllegalArgumentException IllegalMonitorStateException IllegalThreadStateException NumberFormatException NullPointerException TypeNotPresentException SecurityException
  syn cluster javaTop add=javaR_JavaLang
  syn cluster javaClasses add=javaR_JavaLang
  hi def link javaR_JavaLang javaR_Java
  syn keyword javaC_JavaLang Process RuntimePermission StringKeySet CharacterData01 Class ThreadLocal ThreadLocalMap CharacterData0E Package Character StringCoding Long ProcessImpl ProcessEnvironment Short AssertionStatusDirectives 1PackageInfoProxy UnicodeBlock InheritableThreadLocal AbstractStringBuilder StringEnvironment ClassLoader ConditionalSpecialCasing CharacterDataPrivateUse StringBuffer StringDecoder Entry StringEntry WrappedHook StringBuilder StrictMath State ThreadGroup Runtime CharacterData02 MethodArray Object CharacterDataUndefined Integer Gate Boolean Enum Variable Subset StringEncoder Void Terminator CharsetSD IntegerCache CharacterCache Byte CharsetSE Thread SystemClassLoaderAction CharacterDataLatin1 StringValues StackTraceElement Shutdown ShortCache String ConverterSD ByteCache Lock EnclosingMethodInfo Math Float Value Double SecurityManager LongCache ProcessBuilder StringEntrySet Compiler Number UNIXProcess ConverterSE ExternalData CaseInsensitiveComparator CharacterData00 NativeLibrary
  syn cluster javaTop add=javaC_JavaLang
  syn cluster javaClasses add=javaC_JavaLang
  hi def link javaC_JavaLang javaC_Java
  syn keyword javaE_JavaLang IncompatibleClassChangeError InternalError UnknownError ClassCircularityError AssertionError ThreadDeath IllegalAccessError NoClassDefFoundError ClassFormatError UnsupportedClassVersionError NoSuchFieldError VerifyError ExceptionInInitializerError InstantiationError LinkageError NoSuchMethodError Error UnsatisfiedLinkError StackOverflowError AbstractMethodError VirtualMachineError OutOfMemoryError
  syn cluster javaTop add=javaE_JavaLang
  syn cluster javaClasses add=javaE_JavaLang
  hi def link javaE_JavaLang javaE_Java
  syn keyword javaX_JavaLang CloneNotSupportedException Exception NoSuchMethodException IllegalAccessException NoSuchFieldException Throwable InterruptedException ClassNotFoundException InstantiationException
  syn cluster javaTop add=javaX_JavaLang
  syn cluster javaClasses add=javaX_JavaLang
  hi def link javaX_JavaLang javaX_Java

  hi def link javaR_Java javaR_
  hi def link javaC_Java javaC_
  hi def link javaE_Java javaE_
  hi def link javaX_Java javaX_
  hi def link javaX_		     javaExceptions
  hi def link javaR_		     javaExceptions
  hi def link javaE_		     javaExceptions
  hi def link javaC_		     javaConstant

  syn keyword javaLangObject clone equals finalize getClass hashCode
  syn keyword javaLangObject notify notifyAll toString wait
  hi def link javaLangObject		     javaConstant
  syn cluster javaTop add=javaLangObject
endif

if filereadable(expand("<sfile>:p:h")."/javaid.vim")
  source <sfile>:p:h/javaid.vim
endif

if exists("java_space_errors")
  if !exists("java_no_trail_space_error")
    syn match	javaSpaceError	"\s\+$"
  endif
  if !exists("java_no_tab_space_error")
    syn match	javaSpaceError	" \+\t"me=e-1
  endif
endif

syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber,javaCharacter,javaString
syn match   javaUserLabel	"^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
syn keyword javaLabel		default

" highlighting C++ keywords as errors removed, too many people find it
" annoying.  Was: if !exists("java_allow_cpp_keywords")

" The following cluster contains all java groups except the contained ones
syn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg


" Comments
syn keyword javaTodo		 contained TODO FIXME XXX
if exists("java_comment_strings")
  syn region  javaCommentString    contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell
  syn region  javaComment2String   contained start=+"+	end=+$\|"+  contains=javaSpecial,javaSpecialChar,@Spell
  syn match   javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar
  syn match   javaCommentCharacter contained "'\\''" contains=javaSpecialChar
  syn match   javaCommentCharacter contained "'[^\\]'"
  syn cluster javaCommentSpecial add=javaCommentString,javaCommentCharacter,javaNumber
  syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber
endif
syn region  javaComment		 start="/\*"  end="\*/" contains=@javaCommentSpecial,javaTodo,@Spell
syn match   javaCommentStar	 contained "^\s*\*[^/]"me=e-1
syn match   javaCommentStar	 contained "^\s*\*$"
syn match   javaLineComment	 "//.*" contains=@javaCommentSpecial2,javaTodo,@Spell
hi def link javaCommentString javaString
hi def link javaComment2String javaString
hi def link javaCommentCharacter javaCharacter

syn cluster javaTop add=javaComment,javaLineComment

if !exists("java_ignore_javadoc") && main_syntax != 'jsp'
  syntax case ignore
  " syntax coloring for javadoc comments (HTML)
  syntax include @javaHtml <sfile>:p:h/html.vim
  unlet b:current_syntax
  " HTML enables spell checking for all text that is not in a syntax item. This
  " is wrong for Java (all identifiers would be spell-checked), so it's undone
  " here.
  syntax spell default

  syn region  javaDocComment	start="/\*\*"  end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaTodo,@Spell
  syn region  javaCommentTitle	contained matchgroup=javaDocComment start="/\*\*"   matchgroup=javaCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,@Spell,javaDocTags,javaDocSeeTag

  syn region javaDocTags	 contained start="{@\(code\|link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
  syn match  javaDocTags	 contained "@\(param\|exception\|throws\|since\)\s\+\S\+" contains=javaDocParam
  syn match  javaDocParam	 contained "\s\S\+"
  syn match  javaDocTags	 contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
  syn region javaDocSeeTag	 contained matchgroup=javaDocTags start="@see\s\+" matchgroup=NONE end="\_."re=e-1 contains=javaDocSeeTagParam
  syn match  javaDocSeeTagParam  contained @"\_[^"]\+"\|<a\s\+\_.\{-}</a>\|\(\k\|\.\)*\(#\k\+\((\_[^)]\+)\)\=\)\=@ extend
  syntax case match
endif

" match the special comment /**/
syn match   javaComment		 "/\*\*/"

" Strings and constants
syn match   javaSpecialError	 contained "\\."
syn match   javaSpecialCharError contained "[^']"
syn match   javaSpecialChar	 contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
syn region  javaString		start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
" next line disabled, it can cause a crash for a long line
"syn match   javaStringError	  +"\([^"\\]\|\\.\)*$+
syn match   javaCharacter	 "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
syn match   javaCharacter	 "'\\''" contains=javaSpecialChar
syn match   javaCharacter	 "'[^\\]'"
syn match   javaNumber		 "\<\(0[bB][0-1]\+\|0[0-7]*\|0[xX]\x\+\|\d\(\d\|_\d\)*\)[lL]\=\>"
syn match   javaNumber		 "\(\<\d\(\d\|_\d\)*\.\(\d\(\d\|_\d\)*\)\=\|\.\d\(\d\|_\d\)*\)\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\="
syn match   javaNumber		 "\<\d\(\d\|_\d\)*[eE][-+]\=\d\(\d\|_\d\)*[fFdD]\=\>"
syn match   javaNumber		 "\<\d\(\d\|_\d\)*\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\>"

" unicode characters
syn match   javaSpecial "\\u\d\{4\}"

syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError

if exists("java_highlight_functions")
  if java_highlight_functions == "indent"
    syn match  javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]<>]*([^-+*/]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
    syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]<>]*([^-+*/]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
    syn match  javaFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]<>]*([^-+*/]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
    syn region javaFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]<>]*([^-+*/]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
  else
    " This line catches method declarations at any indentation>0, but it assumes
    " two things:
    "	1. class names are always capitalized (ie: Button)
    "	2. method names are never capitalized (except constructors, of course)
    "syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses
    syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(<.*>\s\+\)\?\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^(){}]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses,javaAnnotation
  endif
  syn match javaLambdaDef "[a-zA-Z_][a-zA-Z0-9_]*\s*->"
  syn match  javaBraces  "[{}]"
  syn cluster javaTop add=javaFuncDef,javaBraces,javaLambdaDef
endif

if exists("java_highlight_debug")

  " Strings and constants
  syn match   javaDebugSpecial		contained "\\\d\d\d\|\\."
  syn region  javaDebugString		contained start=+"+  end=+"+  contains=javaDebugSpecial
  syn match   javaDebugStringError	+"\([^"\\]\|\\.\)*$+
  syn match   javaDebugCharacter	contained "'[^\\]'"
  syn match   javaDebugSpecialCharacter contained "'\\.'"
  syn match   javaDebugSpecialCharacter contained "'\\''"
  syn match   javaDebugNumber		contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  syn match   javaDebugNumber		contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  syn match   javaDebugNumber		contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  syn match   javaDebugNumber		contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  syn keyword javaDebugBoolean		contained true false
  syn keyword javaDebugType		contained null this super
  syn region javaDebugParen  start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen

  " to make this work you must define the highlighting for these groups
  syn match javaDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen
  syn match javaDebug "\<p\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen
  syn match javaDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen
  syn match javaDebug "\<trace[SL]\=\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen

  syn cluster javaTop add=javaDebug

  hi def link javaDebug		 Debug
  hi def link javaDebugString		 DebugString
  hi def link javaDebugStringError	 javaError
  hi def link javaDebugType		 DebugType
  hi def link javaDebugBoolean		 DebugBoolean
  hi def link javaDebugNumber		 Debug
  hi def link javaDebugSpecial		 DebugSpecial
  hi def link javaDebugSpecialCharacter DebugSpecial
  hi def link javaDebugCharacter	 DebugString
  hi def link javaDebugParen		 Debug

  hi def link DebugString		 String
  hi def link DebugSpecial		 Special
  hi def link DebugBoolean		 Boolean
  hi def link DebugType		 Type
endif

if exists("java_mark_braces_in_parens_as_errors")
  syn match javaInParen		 contained "[{}]"
  hi def link javaInParen	javaError
  syn cluster javaTop add=javaInParen
endif

" catch errors caused by wrong parenthesis
syn region  javaParenT	transparent matchgroup=javaParen  start="(" end=")" contains=@javaTop,javaParenT1
syn region  javaParenT1 transparent matchgroup=javaParen1 start="(" end=")" contains=@javaTop,javaParenT2 contained
syn region  javaParenT2 transparent matchgroup=javaParen2 start="(" end=")" contains=@javaTop,javaParenT  contained
syn match   javaParenError	 ")"
" catch errors caused by wrong square parenthesis
syn region  javaParenT	transparent matchgroup=javaParen  start="\[" end="\]" contains=@javaTop,javaParenT1
syn region  javaParenT1 transparent matchgroup=javaParen1 start="\[" end="\]" contains=@javaTop,javaParenT2 contained
syn region  javaParenT2 transparent matchgroup=javaParen2 start="\[" end="\]" contains=@javaTop,javaParenT  contained
syn match   javaParenError	 "\]"

hi def link javaParenError	javaError

if exists("java_highlight_functions")
   syn match javaLambdaDef "([a-zA-Z0-9_<>\[\], \t]*)\s*->"
   " needs to be defined after the parenthesis error catcher to work
endif

if !exists("java_minlines")
  let java_minlines = 10
endif
exec "syn sync ccomment javaComment minlines=" . java_minlines

" The default highlighting.
hi def link javaLambdaDef		Function
hi def link javaFuncDef		Function
hi def link javaVarArg			Function
hi def link javaBraces			Function
hi def link javaBranch			Conditional
hi def link javaUserLabelRef		javaUserLabel
hi def link javaLabel			Label
hi def link javaUserLabel		Label
hi def link javaConditional		Conditional
hi def link javaRepeat			Repeat
hi def link javaExceptions		Exception
hi def link javaAssert			Statement
hi def link javaStorageClass		StorageClass
hi def link javaMethodDecl		javaStorageClass
hi def link javaClassDecl		javaStorageClass
hi def link javaScopeDecl		javaStorageClass
hi def link javaBoolean		Boolean
hi def link javaSpecial		Special
hi def link javaSpecialError		Error
hi def link javaSpecialCharError	Error
hi def link javaString			String
hi def link javaCharacter		Character
hi def link javaSpecialChar		SpecialChar
hi def link javaNumber			Number
hi def link javaError			Error
hi def link javaStringError		Error
hi def link javaStatement		Statement
hi def link javaOperator		Operator
hi def link javaComment		Comment
hi def link javaDocComment		Comment
hi def link javaLineComment		Comment
hi def link javaConstant		Constant
hi def link javaTypedef		Typedef
hi def link javaTodo			Todo
hi def link javaAnnotation		PreProc

hi def link javaCommentTitle		SpecialComment
hi def link javaDocTags		Special
hi def link javaDocParam		Function
hi def link javaDocSeeTagParam		Function
hi def link javaCommentStar		javaComment

hi def link javaType			Type
hi def link javaExternal		Include

hi def link htmlComment		Special
hi def link htmlCommentPart		Special
hi def link javaSpaceError		Error

let b:current_syntax = "java"

if main_syntax == 'java'
  unlet main_syntax
endif

let b:spell_options="contained"
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z2�.y2y2vim80/syntax/cmusrc.vimnu�[���" Vim syntax file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-17

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn keyword cmusrcTodo          contained TODO FIXME XXX NOTE

syn match   cmusrcComment       contained display '^\s*#.*$'

syn match   cmusrcBegin         display '^'
                                \ nextgroup=cmusrcKeyword,cmusrcComment
                                \ skipwhite

syn keyword cmusrcKeyword       contained add
                                \ nextgroup=cmusrcAddSwitches,cmusrcURI
                                \ skipwhite

syn match   cmusrcAddSwitches   contained display '-[lpqQ]'
                                \ nextgroup=cmusrcURI
                                \ skipwhite

syn match   cmusrcURI           contained display '.\+'

syn keyword cmusrcKeyword       contained bind
                                \ nextgroup=cmusrcBindSwitches,
                                \           cmusrcBindContext
                                \ skipwhite

syn match   cmusrcBindSwitches  contained display '-[f]'
                                \ nextgroup=cmusrcBindContext
                                \ skipwhite

syn keyword cmusrcBindContext   contained common library playlist queue
                                \ browser filters
                                \ nextgroup=cmusrcBindKey
                                \ skipwhite

syn match   cmusrcBindKey       contained display '\S\+'
                                \ nextgroup=cmusrcKeyword
                                \ skipwhite

syn keyword cmusrcKeyword       contained browser-up colorscheme echo factivate
                                \ filter invert player-next player-pause
                                \ player-play player-prev player-stop quit
                                \ refresh run search-next search-prev shuffle
                                \ unmark win-activate win-add-l win-add-p
                                \ win-add-Q win-add-q win-bottom win-down
                                \ win-mv-after win-mv-before win-next
                                \ win-page-down win-page-up win-remove
                                \ win-sel-cur win-toggle win-top win-up
                                \ win-update

syn keyword cmusrcKeyword       contained cd
                                \ nextgroup=cmusrcDirectory
                                \ skipwhite

syn match   cmusrcDirectory     contained display '.\+'

syn keyword cmusrcKeyword       contained clear
                                \ nextgroup=cmusrcClearSwitches

syn match   cmusrcClearSwitches contained display '-[lpq]'

syn keyword cmusrcKeyword       contained fset
                                \ nextgroup=cmusrcFSetName
                                \ skipwhite

syn match   cmusrcFSetName      contained display '[^=]\+'
                                \ nextgroup=cmusrcFSetEq

syn match   cmusrcFSetEq        contained display '='
                                \ nextgroup=cmusrcFilterExpr

syn match   cmusrcFilterExpr    contained display '.\+'

syn keyword cmusrcKeyword       contained load
                                \ nextgroup=cmusrcLoadSwitches,cmusrcURI
                                \ skipwhite

syn match   cmusrcLoadSwitches  contained display '-[lp]'
                                \ nextgroup=cmusrcURI
                                \ skipwhite

syn keyword cmusrcKeyword       contained mark
                                \ nextgroup=cmusrcFilterExpr

syn keyword cmusrcKeyword       contained save
                                \ nextgroup=cmusrcSaveSwitches,cmusrcFile
                                \ skipwhite

syn match   cmusrcSaveSwitches  contained display '-[lp]'
                                \ nextgroup=cmusrcFile
                                \ skipwhite

syn match   cmusrcFile          contained display '.\+'

syn keyword cmusrcKeyword       contained seek
                                \ nextgroup=cmusrcSeekOffset
                                \ skipwhite

syn match   cmusrcSeekOffset    contained display
      \ '[+-]\=\%(\d\+[mh]\=\|\%(\%(0\=\d\|[1-5]\d\):\)\=\%(0\=\d\|[1-5]\d\):\%(0\=\d\|[1-5]\d\)\)'

syn keyword cmusrcKeyword       contained set
                                \ nextgroup=cmusrcOption
                                \ skipwhite

syn keyword cmusrcOption        contained auto_reshuffle confirm_run
                                \ continue play_library play_sorted repeat
                                \ show_hidden show_remaining_time shuffle
                                \ nextgroup=cmusrcSetTest,cmusrcOptEqBoolean

syn match   cmusrcSetTest       contained display '?'

syn match   cmusrcOptEqBoolean  contained display '='
                                \ nextgroup=cmusrcOptBoolean

syn keyword cmusrcOptBoolean    contained true false

syn keyword cmusrcOption        contained aaa_mode
                                \ nextgroup=cmusrcOptEqAAA

syn match   cmusrcOptEqAAA      contained display '='
                                \ nextgroup=cmusrcOptAAA

syn keyword cmusrcOptAAA        contained all artist album

syn keyword cmusrcOption        contained buffer_seconds
                                \ nextgroup=cmusrcOptEqNumber

syn match   cmusrcOptEqNumber   contained display '='
                                \ nextgroup=cmusrcOptNumber

syn match   cmusrcOptNumber     contained display '\d\+'

syn keyword cmusrcOption        contained altformat_current altformat_playlist
                                \ altformat_title altformat_trackwin
                                \ format_current format_playlist format_title
                                \ format_trackwin
                                \ nextgroup=cmusrcOptEqFormat

syn match   cmusrcOptEqFormat   contained display '='
                                \ nextgroup=cmusrcOptFormat

syn match   cmusrcOptFormat     contained display '.\+'
                                \ contains=cmusrcFormatSpecial

syn match   cmusrcFormatSpecial contained display '%[0-]*\d*[alDntgydfF=%]'

syn keyword cmusrcOption        contained color_cmdline_bg color_cmdline_fg
                                \ color_error color_info color_separator
                                \ color_statusline_bg color_statusline_fg
                                \ color_titleline_bg color_titleline_fg
                                \ color_win_bg color_win_cur
                                \ color_win_cur_sel_bg color_win_cur_sel_fg
                                \ color_win_dir color_win_fg
                                \ color_win_inactive_cur_sel_bg
                                \ color_win_inactive_cur_sel_fg
                                \ color_win_inactive_sel_bg
                                \ color_win_inactive_sel_fg
                                \ color_win_sel_bg color_win_sel_fg
                                \ color_win_title_bg color_win_title_fg
                                \ nextgroup=cmusrcOptEqColor

syn match   cmusrcOptEqColor    contained display '='
                                \ nextgroup=@cmusrcOptColor

syn cluster cmusrcOptColor      contains=cmusrcOptColorName,cmusrcOptColorValue

syn keyword cmusrcOptColorName  contained default black red green yellow blue
                                \ magenta cyan gray darkgray lightred lightred
                                \ lightgreen lightyellow lightblue lightmagenta
                                \ lightcyan white

syn match   cmusrcOptColorValue contained display
                        \ '-1\|0*\%(\d\|[1-9]\d\|1\d\d\|2\%([0-4]\d\|5[0-5]\)\)'

syn keyword cmusrcOption        contained id3_default_charset output_plugin
                                \ status_display_program
                                \ nextgroup=cmusrcOptEqString

syn match   cmusrcOption        contained
                    \ '\%(dsp\|mixer\)\.\%(alsa\|oss\|sun\)\.\%(channel\|device\)'
                    \ nextgroup=cmusrcOptEqString

syn match   cmusrcOption        contained
                    \ 'dsp\.ao\.\%(buffer_size\|driver\|wav_counter\|wav_dir\)'
                    \ nextgroup=cmusrcOptEqString

syn match   cmusrcOptEqString   contained display '='
                                \ nextgroup=cmusrcOptString

syn match   cmusrcOptString     contained display '.\+'

syn keyword cmusrcOption        contained lib_sort pl_sort
                                \ nextgroup=cmusrcOptEqSortKeys

syn match   cmusrcOptEqSortKeys contained display '='
                                \ nextgroup=cmusrcOptSortKeys

syn keyword cmusrcOptSortKeys   contained artist album title tracknumber
                                \ discnumber date genre filename
                                \ nextgroup=cmusrcOptSortKeys
                                \ skipwhite

syn keyword cmusrcKeyword       contained showbind
                                \ nextgroup=cmusrcSBindContext
                                \ skipwhite

syn keyword cmusrcSBindContext  contained common library playlist queue
                                \ browser filters
                                \ nextgroup=cmusrcSBindKey
                                \ skipwhite

syn match   cmusrcSBindKey      contained display '\S\+'

syn keyword cmusrcKeyword       contained toggle
                                \ nextgroup=cmusrcTogglableOpt
                                \ skipwhite

syn keyword cmusrcTogglableOpt  contained auto_reshuffle aaa_mode
                                \ confirm_run continue play_library play_sorted
                                \ repeat show_hidden show_remaining_time shuffle

syn keyword cmusrcKeyword       contained unbind
                                \ nextgroup=cmusrcUnbindSwitches,
                                \           cmusrcSBindContext
                                \ skipwhite

syn match   cmusrcUnbindSwitches  contained display '-[f]'
                                  \ nextgroup=cmusrcSBindContext
                                  \ skipwhite

syn keyword cmusrcKeyword       contained view
                                \ nextgroup=cmusrcView
                                \ skipwhite

syn keyword cmusrcView          contained library playlist queue browser filters
syn match   cmusrcView          contained display '[1-6]'

syn keyword cmusrcKeyword       contained vol
                                \ nextgroup=cmusrcVolume1
                                \ skipwhite

syn match   cmusrcVolume1       contained display '[+-]\=\d\+%'
                                \ nextgroup=cmusrcVolume2
                                \ skipwhite

syn match   cmusrcVolume2       contained display '[+-]\=\d\+%'

hi def link cmusrcTodo            Todo
hi def link cmusrcComment         Comment
hi def link cmusrcKeyword         Keyword
hi def link cmusrcSwitches        Special
hi def link cmusrcAddSwitches     cmusrcSwitches
hi def link cmusrcURI             Normal
hi def link cmusrcBindSwitches    cmusrcSwitches
hi def link cmusrcContext         Type
hi def link cmusrcBindContext     cmusrcContext
hi def link cmusrcKey             String
hi def link cmusrcBindKey         cmusrcKey
hi def link cmusrcDirectory       Normal
hi def link cmusrcClearSwitches   cmusrcSwitches
hi def link cmusrcFSetName        PreProc
hi def link cmusrcEq              Normal
hi def link cmusrcFSetEq          cmusrcEq
hi def link cmusrcFilterExpr      Normal
hi def link cmusrcLoadSwitches    cmusrcSwitches
hi def link cmusrcSaveSwitches    cmusrcSwitches
hi def link cmusrcFile            Normal
hi def link cmusrcSeekOffset      Number
hi def link cmusrcOption          PreProc
hi def link cmusrcSetTest         Normal
hi def link cmusrcOptBoolean      Boolean
hi def link cmusrcOptEqAAA        cmusrcEq
hi def link cmusrcOptAAA          Identifier
hi def link cmusrcOptEqNumber     cmusrcEq
hi def link cmusrcOptNumber       Number
hi def link cmusrcOptEqFormat     cmusrcEq
hi def link cmusrcOptFormat       String
hi def link cmusrcFormatSpecial   SpecialChar
hi def link cmusrcOptEqColor      cmusrcEq
hi def link cmusrcOptColor        Normal
hi def link cmusrcOptColorName    cmusrcOptColor
hi def link cmusrcOptColorValue   cmusrcOptColor
hi def link cmusrcOptEqString     cmusrcEq
hi def link cmusrcOptString       Normal
hi def link cmusrcOptEqSortKeys   cmusrcEq
hi def link cmusrcOptSortKeys     Identifier
hi def link cmusrcSBindContext    cmusrcContext
hi def link cmusrcSBindKey        cmusrcKey
hi def link cmusrcTogglableOpt    cmusrcOption
hi def link cmusrcUnbindSwitches  cmusrcSwitches
hi def link cmusrcView            Normal
hi def link cmusrcVolume1         Number
hi def link cmusrcVolume2         Number

let b:current_syntax = "cmusrc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z}�~���vim80/syntax/csp.vimnu�[���" Vim syntax file
" Language:	CSP (Communication Sequential Processes, using FDR input syntax)
" Maintainer:	Jan Bredereke <brederek@tzi.de>
" Version:	0.6.0
" Last change:	Mon Mar 25, 2002
" URL:		http://www.tzi.de/~brederek/vim/
" Copying:	You may distribute and use this file freely, in the same
"		way as the vim editor itself.
"
" To Do:	- Probably I missed some keywords or operators, please
"		  fix them and notify me, the maintainer.
"		- Currently, we do lexical highlighting only. It would be
"		  nice to have more actual syntax checks, including
"		  highlighting of wrong syntax.
"		- The additional syntax for the RT-Tester (pseudo-comments)
"		  should be optional.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" case is significant to FDR:
syn case match

" Block comments in CSP are between {- and -}
syn region cspComment	start="{-"  end="-}" contains=cspTodo
" Single-line comments start with --
syn region cspComment	start="--"  end="$" contains=cspTodo,cspOldRttComment,cspSdlRttComment keepend

" Numbers:
syn match  cspNumber "\<\d\+\>"

" Conditionals:
syn keyword  cspConditional if then else

" Operators on processes:
" -> ? : ! ' ; /\ \ [] |~| [> & [[..<-..]] ||| [|..|] || [..<->..] ; : @ |||
syn match  cspOperator "->"
syn match  cspOperator "/\\"
syn match  cspOperator "[^/]\\"lc=1
syn match  cspOperator "\[\]"
syn match  cspOperator "|\~|"
syn match  cspOperator "\[>"
syn match  cspOperator "\[\["
syn match  cspOperator "\]\]"
syn match  cspOperator "<-"
syn match  cspOperator "|||"
syn match  cspOperator "[^|]||[^|]"lc=1,me=e-1
syn match  cspOperator "[^|{\~]|[^|}\~]"lc=1,me=e-1
syn match  cspOperator "\[|"
syn match  cspOperator "|\]"
syn match  cspOperator "\[[^>]"me=e-1
syn match  cspOperator "\]"
syn match  cspOperator "<->"
syn match  cspOperator "[?:!';@]"
syn match  cspOperator "&"
syn match  cspOperator "\."

" (not on processes:)
" syn match  cspDelimiter	"{|"
" syn match  cspDelimiter	"|}"
" syn match  cspDelimiter	"{[^-|]"me=e-1
" syn match  cspDelimiter	"[^-|]}"lc=1

" Keywords:
syn keyword cspKeyword		length null head tail concat elem
syn keyword cspKeyword		union inter diff Union Inter member card
syn keyword cspKeyword		empty set Set Seq
syn keyword cspKeyword		true false and or not within let
syn keyword cspKeyword		nametype datatype diamond normal
syn keyword cspKeyword		sbisim tau_loop_factor model_compress
syn keyword cspKeyword		explicate
syn match cspKeyword		"transparent"
syn keyword cspKeyword		external chase prioritize
syn keyword cspKeyword		channel Events
syn keyword cspKeyword		extensions productions
syn keyword cspKeyword		Bool Int

" Reserved keywords:
syn keyword cspReserved		attribute embed module subtype

" Include:
syn region cspInclude matchgroup=cspIncludeKeyword start="^include" end="$" keepend contains=cspIncludeArg
syn region cspIncludeArg start='\s\+\"' end= '\"\s*' contained

" Assertions:
syn keyword cspAssert		assert deterministic divergence free deadlock
syn keyword cspAssert		livelock
syn match cspAssert		"\[T="
syn match cspAssert		"\[F="
syn match cspAssert		"\[FD="
syn match cspAssert		"\[FD\]"
syn match cspAssert		"\[F\]"

" Types and Sets
" (first char a capital, later at least one lower case, no trailing underscore):
syn match cspType     "\<_*[A-Z][A-Z_0-9]*[a-z]\(\|[A-Za-z_0-9]*[A-Za-z0-9]\)\>"

" Processes (all upper case, no trailing underscore):
" (For identifiers that could be types or sets, too, this second rule set
" wins.)
syn match cspProcess		"\<[A-Z_][A-Z_0-9]*[A-Z0-9]\>"
syn match cspProcess		"\<[A-Z_]\>"

" reserved identifiers for tool output (ending in underscore):
syn match cspReservedIdentifier	"\<[A-Za-z_][A-Za-z_0-9]*_\>"

" ToDo markers:
syn match cspTodo		"FIXME"	contained
syn match cspTodo		"TODO"	contained
syn match cspTodo		"!!!"	contained

" RT-Tester pseudo comments:
" (The now obsolete syntax:)
syn match cspOldRttComment	"^--\$\$AM_UNDEF"lc=2		contained
syn match cspOldRttComment	"^--\$\$AM_ERROR"lc=2		contained
syn match cspOldRttComment	"^--\$\$AM_WARNING"lc=2		contained
syn match cspOldRttComment	"^--\$\$AM_SET_TIMER"lc=2	contained
syn match cspOldRttComment	"^--\$\$AM_RESET_TIMER"lc=2	contained
syn match cspOldRttComment	"^--\$\$AM_ELAPSED_TIMER"lc=2	contained
syn match cspOldRttComment	"^--\$\$AM_OUTPUT"lc=2		contained
syn match cspOldRttComment	"^--\$\$AM_INPUT"lc=2		contained
" (The current syntax:)
syn region cspRttPragma matchgroup=cspRttPragmaKeyword start="^pragma\s\+" end="\s*$" oneline keepend contains=cspRttPragmaArg,cspRttPragmaSdl
syn keyword cspRttPragmaArg	AM_ERROR AM_WARNING AM_SET_TIMER contained
syn keyword cspRttPragmaArg	AM_RESET_TIMER AM_ELAPSED_TIMER  contained
syn keyword cspRttPragmaArg	AM_OUTPUT AM_INPUT AM_INTERNAL   contained
" the "SDL_MATCH" extension:
syn region cspRttPragmaSdl	matchgroup=cspRttPragmaKeyword start="SDL_MATCH\s\+" end="\s*$" contains=cspRttPragmaSdlArg contained
syn keyword cspRttPragmaSdlArg	TRANSLATE nextgroup=cspRttPragmaSdlTransName contained
syn keyword cspRttPragmaSdlArg	PARAM SKIP OPTIONAL CHOICE ARRAY nextgroup=cspRttPragmaSdlName contained
syn match cspRttPragmaSdlName	"\s*\S\+\s*" nextgroup=cspRttPragmaSdlTail contained
syn region cspRttPragmaSdlTail  start="" end="\s*$" contains=cspRttPragmaSdlTailArg contained
syn keyword cspRttPragmaSdlTailArg	SUBSET_USED DEFAULT_VALUE Present contained
syn match cspRttPragmaSdlTransName	"\s*\w\+\s*" nextgroup=cspRttPragmaSdlTransTail contained
syn region cspRttPragmaSdlTransTail  start="" end="\s*$" contains=cspRttPragmaSdlTransTailArg contained
syn keyword cspRttPragmaSdlTransTailArg	sizeof contained
syn match cspRttPragmaSdlTransTailArg	"\*" contained
syn match cspRttPragmaSdlTransTailArg	"(" contained
syn match cspRttPragmaSdlTransTailArg	")" contained

" temporary syntax extension for commented-out "pragma SDL_MATCH":
syn match cspSdlRttComment	"pragma\s\+SDL_MATCH\s\+" nextgroup=cspRttPragmaSdlArg contained

syn sync lines=250

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
" (For vim version <=5.7, the command groups are defined in
" $VIMRUNTIME/syntax/synload.vim )
hi def link cspComment			Comment
hi def link cspNumber			Number
hi def link cspConditional			Conditional
hi def link cspOperator			Delimiter
hi def link cspKeyword			Keyword
hi def link cspReserved			SpecialChar
hi def link cspInclude			Error
hi def link cspIncludeKeyword		Include
hi def link cspIncludeArg			Include
hi def link cspAssert			PreCondit
hi def link cspType			Type
hi def link cspProcess			Function
hi def link cspTodo			Todo
hi def link cspOldRttComment		Define
hi def link cspRttPragmaKeyword		Define
hi def link cspSdlRttComment		Define
hi def link cspRttPragmaArg		Define
hi def link cspRttPragmaSdlArg		Define
hi def link cspRttPragmaSdlName		Default
hi def link cspRttPragmaSdlTailArg		Define
hi def link cspRttPragmaSdlTransName	Default
hi def link cspRttPragmaSdlTransTailArg	Define
hi def link cspReservedIdentifier	Error
" (Currently unused vim method: Debug)


let b:current_syntax = "csp"

" vim: ts=8
PK�j�Z�C�%��vim80/syntax/mason.vimnu�[���" Vim syntax file
" Language:     Mason (Perl embedded in HTML)
" Maintainer:   vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:  2017-09-12
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"               Andrew Smith <andrewdsmith@yahoo.com>
"
" TODO:
"  - Fix <%text> blocks to show HTML tags but ignore Mason tags.
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

" The HTML syntax file included below uses this variable.
"
if !exists("main_syntax")
	let main_syntax = 'mason'
endif

" First pull in the HTML syntax.
"
runtime! syntax/html.vim
unlet b:current_syntax

syn cluster htmlPreproc add=@masonTop

" Now pull in the Perl syntax.
"
syn include @perlTop syntax/perl.vim
unlet b:current_syntax
syn include @podTop syntax/pod.vim

" It's hard to reduce down to the correct sub-set of Perl to highlight in some
" of these cases so I've taken the safe option of just using perlTop in all of
" them. If you have any suggestions, please let me know.
"
syn region masonPod start="^=[a-z]" end="^=cut" keepend contained contains=@podTop
syn cluster perlTop remove=perlBraces
syn region masonLine matchgroup=Delimiter start="^%" end="$" keepend contains=@perlTop
syn region masonPerlComment start="#" end="\%(%>\)\@=\|$" contained contains=perlTodo,@Spell
syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop,masonPerlComment
syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=masonPod,@perlTop
syn region masonComp keepend matchgroup=Delimiter start="<&\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop
syn region masonComp keepend matchgroup=Delimiter skipnl start="<&|\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop nextgroup=masonCompContent
syn region masonCompContent matchgroup=Delimiter start="" end="</&>" contained contains=@masonTop

syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=masonPod,@perlTop

syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=masonPod,@perlTop
syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=masonPod,@perlTop
syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=masonPod,@perlTop
syn region masonClass matchgroup=Delimiter start="<%class>" end="</%class>" contains=masonPod,@perlTop
syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=masonPod,@perlTop

syn region masonDef matchgroup=Delimiter start="<%def\s*[-._/[:alnum:]]\+\s*>" end="</%def>" contains=@htmlTop
syn region masonMethod matchgroup=Delimiter start="<%method\s*[-._/[:alnum:]]\+\s*>" end="</%method>" contains=@htmlTop

syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=masonPod,@perlTop
syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=masonPod,@perlTop

syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=masonPod,@perlTop

syn region masonDoc matchgroup=Delimiter start="<%doc>" end="</%doc>"
syn region masonText matchgroup=Delimiter start="<%text>" end="</%text>"

syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,masonInit,masonCleanup,masonOnce,masonShared,masonDef,masonMethod,masonFlags,masonAttr,masonFilter,masonDoc,masonText

" Set up default highlighting. Almost all of this is done in the included
" syntax files.
hi def link masonDoc Comment
hi def link masonPod Comment
hi def link masonPerlComment perlComment

let b:current_syntax = "mason"

if main_syntax == 'mason'
	unlet main_syntax
endif
PK�j�Zt�SfQ(Q(vim80/syntax/docbk.vimnu�[���" Vim syntax file
" Language:	DocBook
" Maintainer:	Devin Weaver <vim@tritarget.com>
" Last Updated By: Shlomi Fish
" URL:		http://tritarget.com/pub/vim/syntax/docbk.vim
" Last Change:	2012 Nov 28
" Version:	1.2 (and modified after that)
" Thanks to Johannes Zellner <johannes@zellner.org> for the default to XML
" suggestion.

" REFERENCES:
"   http://docbook.org/
"   http://www.open-oasis.org/docbook/
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Auto detect added by Bram Moolenaar
if !exists('b:docbk_type')
  if expand('%:e') == "sgml"
    let b:docbk_type = 'sgml'
  else
    let b:docbk_type = 'xml'
  endif
endif

if !exists('b:docbk_ver')
  if exists('docbk_ver')
    let b:docbk_ver = docbk_ver
  else
    let b:docbk_ver = 4
  endif
end

if 'xml' == b:docbk_type
    doau Syntax xml
    syn cluster xmlTagHook add=docbkKeyword
    syn cluster xmlRegionHook add=docbkRegion,docbkTitle,docbkRemark,docbkCite
    syn case match
elseif 'sgml' == b:docbk_type
    doau Syntax sgml
    syn cluster sgmlTagHook add=docbkKeyword
    syn cluster sgmlRegionHook add=docbkRegion,docbkTitle,docbkRemark,docbkCite
    syn case ignore
endif

syn keyword docbkKeyword abbrev abstract accel acronym address contained
syn keyword docbkKeyword affiliation alt anchor answer appendix contained
syn keyword docbkKeyword application area areaset areaspec arg contained
syn keyword docbkKeyword article artpagenums attribution audiodata contained
syn keyword docbkKeyword audioobject author authorgroup contained
syn keyword docbkKeyword authorinitials bibliocoverage bibliodiv contained
syn keyword docbkKeyword biblioentry bibliography biblioid contained
syn keyword docbkKeyword bibliolist bibliomisc bibliomixed contained
syn keyword docbkKeyword bibliomset biblioref bibliorelation contained
syn keyword docbkKeyword biblioset bibliosource blockquote book contained
syn keyword docbkKeyword bridgehead callout calloutlist caption contained
syn keyword docbkKeyword caution chapter citation citebiblioid contained
syn keyword docbkKeyword citerefentry citetitle city classname contained
syn keyword docbkKeyword classsynopsis classsynopsisinfo cmdsynopsis contained
syn keyword docbkKeyword co code col colgroup collab colophon contained
syn keyword docbkKeyword colspec command computeroutput confdates contained
syn keyword docbkKeyword confgroup confnum confsponsor conftitle contained
syn keyword docbkKeyword constant constructorsynopsis contractnum contained
syn keyword docbkKeyword contractsponsor contrib copyright coref contained
syn keyword docbkKeyword country database date dedication contained
syn keyword docbkKeyword destructorsynopsis edition editor email contained
syn keyword docbkKeyword emphasis entry entrytbl envar epigraph contained
syn keyword docbkKeyword equation errorcode errorname errortext contained
syn keyword docbkKeyword errortype example exceptionname fax contained
syn keyword docbkKeyword fieldsynopsis figure filename firstname contained
syn keyword docbkKeyword firstterm footnote footnoteref contained
syn keyword docbkKeyword foreignphrase formalpara funcdef funcparams contained
syn keyword docbkKeyword funcprototype funcsynopsis funcsynopsisinfo contained
syn keyword docbkKeyword function glossary glossdef glossdiv contained
syn keyword docbkKeyword glossentry glosslist glosssee glossseealso contained
syn keyword docbkKeyword glossterm group guibutton guiicon guilabel contained
syn keyword docbkKeyword guimenu guimenuitem guisubmenu hardware contained
syn keyword docbkKeyword holder honorific imagedata imageobject contained
syn keyword docbkKeyword imageobjectco important index indexdiv contained
syn keyword docbkKeyword indexentry indexterm informalequation contained
syn keyword docbkKeyword informalexample informalfigure contained
syn keyword docbkKeyword informaltable initializer inlineequation contained
syn keyword docbkKeyword inlinemediaobject interfacename issuenum contained
syn keyword docbkKeyword itemizedlist itermset jobtitle keycap contained
syn keyword docbkKeyword keycode keycombo keysym keyword keywordset contained
syn keyword docbkKeyword label legalnotice lineage lineannotation contained
syn keyword docbkKeyword link listitem literal literallayout contained
syn keyword docbkKeyword manvolnum markup mathphrase mediaobject contained
syn keyword docbkKeyword member menuchoice methodname methodparam contained
syn keyword docbkKeyword methodsynopsis modifier mousebutton msg contained
syn keyword docbkKeyword msgaud msgentry msgexplan msginfo msglevel contained
syn keyword docbkKeyword msgmain msgorig msgrel msgset msgsub contained
syn keyword docbkKeyword msgtext note olink ooclass ooexception contained
syn keyword docbkKeyword oointerface option optional orderedlist contained
syn keyword docbkKeyword orgdiv orgname otheraddr othercredit contained
syn keyword docbkKeyword othername package pagenums para paramdef contained
syn keyword docbkKeyword parameter part partintro personblurb contained
syn keyword docbkKeyword personname phone phrase pob postcode contained
syn keyword docbkKeyword preface primary primaryie printhistory contained
syn keyword docbkKeyword procedure productname productnumber contained
syn keyword docbkKeyword programlisting programlistingco prompt contained
syn keyword docbkKeyword property pubdate publisher publishername contained
syn keyword docbkKeyword qandadiv qandaentry qandaset question quote contained
syn keyword docbkKeyword refclass refdescriptor refentry contained
syn keyword docbkKeyword refentrytitle reference refmeta refmiscinfo contained
syn keyword docbkKeyword refname refnamediv refpurpose refsect1 contained
syn keyword docbkKeyword refsect2 refsect3 refsection refsynopsisdiv contained
syn keyword docbkKeyword releaseinfo remark replaceable returnvalue contained
syn keyword docbkKeyword revdescription revhistory revision contained
syn keyword docbkKeyword revnumber revremark row sbr screen screenco contained
syn keyword docbkKeyword screenshot secondary secondaryie sect1 contained
syn keyword docbkKeyword sect2 sect3 sect4 sect5 section see seealso contained
syn keyword docbkKeyword seealsoie seeie seg seglistitem contained
syn keyword docbkKeyword segmentedlist segtitle seriesvolnums set contained
syn keyword docbkKeyword setindex shortaffil shortcut sidebar contained
syn keyword docbkKeyword simpara simplelist simplemsgentry contained
syn keyword docbkKeyword simplesect spanspec state step contained
syn keyword docbkKeyword stepalternatives street subject subjectset contained
syn keyword docbkKeyword subjectterm subscript substeps subtitle contained
syn keyword docbkKeyword superscript surname symbol synopfragment contained
syn keyword docbkKeyword synopfragmentref synopsis systemitem table contained
syn keyword docbkKeyword task taskprerequisites taskrelated contained
syn keyword docbkKeyword tasksummary tbody td term termdef tertiary contained
syn keyword docbkKeyword tertiaryie textdata textobject tfoot tgroup contained
syn keyword docbkKeyword th thead tip title titleabbrev toc tocentry contained
syn keyword docbkKeyword token tr trademark type uri userinput contained
syn keyword docbkKeyword varargs variablelist varlistentry varname contained
syn keyword docbkKeyword videodata videoobject void volumenum contained
syn keyword docbkKeyword warning wordasword xref year contained

if b:docbk_ver == 4
  syn keyword docbkKeyword ackno action appendixinfo articleinfo contained
  syn keyword docbkKeyword authorblurb beginpage bibliographyinfo contained
  syn keyword docbkKeyword blockinfo bookinfo chapterinfo contained
  syn keyword docbkKeyword collabname corpauthor corpcredit contained
  syn keyword docbkKeyword corpname glossaryinfo graphic graphicco contained
  syn keyword docbkKeyword highlights indexinfo inlinegraphic contained
  syn keyword docbkKeyword interface invpartnumber isbn issn lot contained
  syn keyword docbkKeyword lotentry medialabel mediaobjectco contained
  syn keyword docbkKeyword modespec objectinfo partinfo contained
  syn keyword docbkKeyword prefaceinfo pubsnumber refentryinfo contained
  syn keyword docbkKeyword referenceinfo refsect1info refsect2info contained
  syn keyword docbkKeyword refsect3info refsectioninfo contained
  syn keyword docbkKeyword refsynopsisdivinfo screeninfo sect1info contained
  syn keyword docbkKeyword sect2info sect3info sect4info sect5info contained
  syn keyword docbkKeyword sectioninfo setindexinfo setinfo contained
  syn keyword docbkKeyword sgmltag sidebarinfo structfield contained
  syn keyword docbkKeyword structname tocback tocchap tocfront contained
  syn keyword docbkKeyword toclevel1 toclevel2 toclevel3 toclevel4 contained
  syn keyword docbkKeyword toclevel5 tocpart ulink contained

else
  syn keyword docbkKeyword acknowledgements annotation arc contained
  syn keyword docbkKeyword constraint constraintdef cover contained
  syn keyword docbkKeyword extendedlink givenname info lhs locator contained
  syn keyword docbkKeyword multimediaparam nonterminal org person contained
  syn keyword docbkKeyword production productionrecap contained
  syn keyword docbkKeyword productionset rhs tag tocdiv topic contained

endif

" Add special emphasis on some regions. Thanks to Rory Hunter <roryh@dcs.ed.ac.uk> for these ideas.
syn region docbkRegion start="<emphasis>"lc=10 end="</emphasis>"me=e-11 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend
syn region docbkTitle  start="<title>"lc=7     end="</title>"me=e-8	contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend
syn region docbkRemark start="<remark>"lc=8    end="</remark>"me=e-9	contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend
syn region docbkRemark start="<comment>"lc=9  end="</comment>"me=e-10	contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend
syn region docbkCite   start="<citation>"lc=10 end="</citation>"me=e-11 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def DocbkBold term=bold cterm=bold gui=bold

hi def link docbkKeyword	Statement
hi def link docbkRegion	DocbkBold
hi def link docbkTitle	Title
hi def link docbkRemark	Comment
hi def link docbkCite	Constant


let b:current_syntax = "docbk"

" vim: ts=8
PK�j�Z�����vim80/syntax/sindaout.vimnu�[���" Vim syntax file
" Language:     sinda85, sinda/fluint output file
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.out
" URL:		http://www.naglenet.org/vim/syntax/sindaout.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case match



" Load SINDA syntax file
runtime! syntax/sinda.vim
unlet b:current_syntax



"
"
" Begin syntax definitions for sinda output files.
"

" Define keywords for sinda output
syn case match

syn keyword sindaoutPos       ON SI
syn keyword sindaoutNeg       OFF ENG



" Define matches for sinda output
syn match sindaoutFile	       ": \w*\.TAK"hs=s+2

syn match sindaoutInteger      "T\=[0-9]*\>"ms=s+1

syn match sindaoutSectionDelim "[-<>]\{4,}" contains=sindaoutSectionTitle
syn match sindaoutSectionDelim ":\=\.\{4,}:\=" contains=sindaoutSectionTitle
syn match sindaoutSectionTitle "[-<:] \w[0-9A-Za-z_() ]\+ [->:]"hs=s+1,me=e-1

syn match sindaoutHeaderDelim  "=\{5,}"
syn match sindaoutHeaderDelim  "|\{5,}"
syn match sindaoutHeaderDelim  "+\{5,}"

syn match sindaoutLabel		"Input File:" contains=sindaoutFile
syn match sindaoutLabel		"Begin Solution: Routine"

syn match sindaoutError		"<<< Error >>>"


" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi sindaHeaderDelim  ctermfg=Black ctermbg=Green	       guifg=Black guibg=Green

hi def link sindaoutPos		     Statement
hi def link sindaoutNeg		     PreProc
hi def link sindaoutTitle		     Type
hi def link sindaoutFile		     sindaIncludeFile
hi def link sindaoutInteger	     sindaInteger

hi def link sindaoutSectionDelim	      Delimiter
hi def link sindaoutSectionTitle	     Exception
hi def link sindaoutHeaderDelim	     SpecialComment
hi def link sindaoutLabel		     Identifier

hi def link sindaoutError		     Error



let b:current_syntax = "sindaout"

" vim: ts=8 sw=2
PK�j�Z���VVvim80/syntax/ipfilter.vimnu�[���" ipfilter syntax file
" Language: ipfilter configuration file
" Maintainer: Hendrik Scholz <hendrik@scholz.net>
" Last Change: 2005 Jan 27
"
" http://www.wormulon.net/files/misc/ipfilter.vim
"
" This will also work for OpenBSD pf but there might be some tags that are
" not correctly identified.
" Please send comments to hendrik@scholz.net

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Comment
syn match	IPFComment	/#.*$/	contains=ipfTodo
syn keyword	IPFTodo		TODO XXX FIXME contained

syn keyword IPFActionBlock	block
syn keyword IPFActionPass	pass
syn keyword	IPFProto	tcp udp icmp
syn keyword	IPFSpecial	quick log first
" how could we use keyword for words with '-' ?
syn match	IPFSpecial	/return-rst/
syn match	IPFSpecial	/dup-to/
"syn match	IPFSpecial	/icmp-type unreach/
syn keyword IPFAny		all any
syn match	IPFIPv4		/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
syn match	IPFNetmask	/\/\d\+/

" service name constants
syn keyword IPFService	auth bgp domain finger ftp http https ident
syn keyword IPFService	imap irc isakmp kerberos mail nameserver nfs
syn keyword IPFService	nntp ntp pop3 portmap pptp rpcbind rsync smtp
syn keyword IPFService	snmp snmptrap socks ssh sunrpc syslog telnet
syn keyword IPFService	tftp www

" Comment
hi def link IPFComment	Comment
hi def link IPFTodo		Todo

hi def link IPFService	Constant

hi def link IPFAction	Type
hi def link ipfActionBlock	String
hi def link ipfActionPass	Type
hi def link IPFSpecial	Statement
hi def link IPFIPv4		Label
hi def link IPFNetmask	String
hi def link IPFAny		Statement
hi def link IPFProto	Identifier

PK�j�Z�4�..vim80/syntax/zimbu.vimnu�[���" Vim syntax file
" Language:	Zimbu
" Maintainer:	Bram Moolenaar
" Last Change:	2014 Nov 23

if exists("b:current_syntax")
  finish
endif

syn include @Ccode syntax/c.vim

syn keyword zimbuTodo		TODO FIXME XXX contained
syn match   zimbuNoBar          "|" contained
syn match   zimbuParam  	"|[^| ]\+|" contained contains=zimbuNoBar
syn match   zimbuNoBacktick     "`" contained
syn match   zimbuCode  		"`[^`]\+`" contained contains=zimbuNoBacktick
syn match   zimbuComment	"#.*$" contains=zimbuTodo,zimbuParam,zimbuCode,@Spell
syn match   zimbuComment	"/\*.\{-}\*/" contains=zimbuTodo,zimbuParam,zimbuCode,@Spell

syn match   zimbuChar	"'\\\=.'"

syn keyword zimbuBasicType	bool status
syn keyword zimbuBasicType	int1 int2 int3 int4 int5 int6 int7
syn keyword zimbuBasicType	int9 int10 int11 int12 int13 int14 int15
syn keyword zimbuBasicType	int int8 int16 int32 int64 bigInt
syn keyword zimbuBasicType	nat nat8 byte nat16 nat32 nat64 bigNat
syn keyword zimbuBasicType	nat1 nat2 nat3 nat4 nat5 nat6 nat7
syn keyword zimbuBasicType	nat9 nat10 nat11 nat12 nat13 nat14 nat15
syn keyword zimbuBasicType	float float32 float64 float80 float128
syn keyword zimbuBasicType	fixed1 fixed2 fixed3 fixed4 fixed5 fixed6
syn keyword zimbuBasicType	fixed7 fixed8 fixed9 fixed10 fixed11 fixed12
syn keyword zimbuBasicType	fixed13 fixed14 fixed15

syn keyword zimbuCompType	string varString
syn keyword zimbuCompType	byteString varByteString
syn keyword zimbuCompType	tuple array list dict dictList set callback
syn keyword zimbuCompType	sortedList multiDict multiDictList multiSet
syn keyword zimbuCompType	complex complex32 complex64 complex80 complex128
syn keyword zimbuCompType	proc func def thread evalThread lock cond pipe

syn keyword zimbuType   VAR dyn type USE GET
syn match zimbuType	"IO.File"
syn match zimbuType	"IO.Stat"

syn keyword zimbuStatement IF ELSE ELSEIF IFNIL WHILE REPEAT FOR IN TO STEP
syn keyword zimbuStatement DO UNTIL SWITCH WITH
syn keyword zimbuStatement TRY CATCH FINALLY
syn keyword zimbuStatement GENERATE_IF GENERATE_ELSE GENERATE_ELSEIF
syn keyword zimbuStatement GENERATE_ERROR
syn keyword zimbuStatement BUILD_IF BUILD_ELSE BUILD_ELSEIF
syn keyword zimbuStatement CASE DEFAULT FINAL ABSTRACT VIRTUAL DEFINE REPLACE
syn keyword zimbuStatement IMPLEMENTS EXTENDS PARENT LOCAL
syn keyword zimbuStatement PART ALIAS TYPE CONNECT WRAP
syn keyword zimbuStatement BREAK CONTINUE PROCEED
syn keyword zimbuStatement RETURN EXIT THROW DEFER
syn keyword zimbuStatement IMPORT AS OPTIONS MAIN
syn keyword zimbuStatement INTERFACE PIECE INCLUDE MODULE ENUM BITS
syn keyword zimbuStatement SHARED STATIC
syn keyword zimbuStatement LAMBDA
syn match zimbuStatement "\<\(FUNC\|PROC\|DEF\)\>"
syn match zimbuStatement "\<CLASS\>"
syn match zimbuStatement "}"

syn match zimbuAttribute "@backtrace=no\>"
syn match zimbuAttribute "@backtrace=yes\>"
syn match zimbuAttribute "@abstract\>"
syn match zimbuAttribute "@earlyInit\>"
syn match zimbuAttribute "@default\>"
syn match zimbuAttribute "@define\>"
syn match zimbuAttribute "@replace\>"
syn match zimbuAttribute "@final\>"
syn match zimbuAttribute "@primitive\>"
syn match zimbuAttribute "@notOnExit\>"

syn match zimbuAttribute "@private\>"
syn match zimbuAttribute "@protected\>"
syn match zimbuAttribute "@public\>"
syn match zimbuAttribute "@local\>"
syn match zimbuAttribute "@file\>"
syn match zimbuAttribute "@directory\>"
syn match zimbuAttribute "@read=private\>"
syn match zimbuAttribute "@read=protected\>"
syn match zimbuAttribute "@read=public\>"
syn match zimbuAttribute "@read=file\>"
syn match zimbuAttribute "@read=directory\>"
syn match zimbuAttribute "@items=private\>"
syn match zimbuAttribute "@items=protected\>"
syn match zimbuAttribute "@items=public\>"
syn match zimbuAttribute "@items=file\>"
syn match zimbuAttribute "@items=directory\>"

syn keyword zimbuMethod NEW EQUAL COPY COMPARE SIZE GET SET INIT EARLYINIT

syn keyword zimbuOperator IS ISNOT ISA ISNOTA

syn keyword zimbuModule  ARG CHECK E GC IO LOG PROTO SYS HTTP ZC ZWT T TIME THREAD

syn match zimbuImport  "\.\zsPROTO"
syn match zimbuImport  "\.\zsCHEADER"

"syn match zimbuString  +"\([^"\\]\|\\.\)*\("\|$\)+ contains=zimbuStringExpr
syn region zimbuString  start=+"+  skip=+[^"\\]\|\\.+ end=+"\|$+ contains=zimbuStringExpr
syn match zimbuString  +R"\([^"]\|""\)*\("\|$\)+
syn region zimbuLongString  start=+''"+ end=+"''+
syn match zimbuStringExpr +\\([^)]*)+hs=s+2,he=e-1 contained contains=zimbuString,zimbuParenPairOuter
syn region zimbuParenPairOuter  start=+(+ms=s+1  end=+)+me=e-1 contained contains=zimbuString,zimbuParenPair
syn region zimbuParenPair  start=+(+  end=+)+ contained contains=zimbuString,zimbuParenPair

syn keyword zimbuFixed  TRUE FALSE NIL THIS THISTYPE FAIL OK
syn keyword zimbuError  NULL

" trailing whitespace
syn match   zimbuSpaceError   display excludenl "\S\s\+$"ms=s+1
" mixed tabs and spaces
syn match   zimbuSpaceError   display " \+\t"
syn match   zimbuSpaceError   display "\t\+ "

syn match zimbuUses contained "\<uses([a-zA-Z_ ,]*)"
syn match zimbuBlockgc contained "blockgc"
syn match zimbuBlockComment contained " #.*"

syn region zimbuCregion matchgroup=zimbuCblock start="^>>>" end="^<<<.*" contains=@Ccode,zimbuUses,zimbuBlockgc,zimbuBlockComment keepend

" Assume long strings and C regions don't take more than 200 lines.
syn sync minlines=200

" When we find the start of a long string, without a # or " before it, we are
" sure to be inside a long string.
syn sync match zimbuLongStringSync grouphere zimbuLongString +^[^"#]*''\"+

hi def link zimbuBasicType	Type
hi def link zimbuCompType	Type
hi def link zimbuType		Type
hi def link zimbuStatement	Statement
hi def link zimbuOperator	Statement
hi def link zimbuMethod		PreProc
hi def link zimbuModule		PreProc
hi def link zimbuImport		PreProc
hi def link zimbuUses		PreProc
hi def link zimbuBlockgc	PreProc
hi def link zimbuAttribute	PreProc
hi def link zimbuString		Constant
hi def link zimbuLongString	Special
hi def link zimbuChar		Constant
hi def link zimbuFixed		Constant
hi def link zimbuComment	Comment
hi def link zimbuCommentStart	zimbuComment
hi def link zimbuBlockComment	Comment
hi def link zimbuCblock		Comment
hi def link zimbuTodo		Todo
hi def link zimbuParam		Constant
hi def link zimbuCode		Statement
hi def link zimbuNoBar		Ignore
hi def link zimbuNoBacktick	Ignore
hi def link zimbuSpaceError	Error
hi def link zimbuError		Error

let b:current_syntax = "zimbu"

" vim: ts=8
PK�j�Z�T�
�
vim80/syntax/privoxy.vimnu�[���" Vim syntax file
" Language:	Privoxy actions file
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" URL:		http://gus.gscit.monash.edu.au/~djkea2/vim/syntax/privoxy.vim
" Last Change:	2007 Mar 30

" Privoxy 3.0.6

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword=@,48-57,_,-

syn keyword privoxyTodo		 contained TODO FIXME XXX NOTE
syn match   privoxyComment "#.*" contains=privoxyTodo,@Spell

syn region privoxyActionLine matchgroup=privoxyActionLineDelimiter start="^\s*\zs{" end="}\ze\s*$"
	\ contains=privoxyEnabledPrefix,privoxyDisabledPrefix

syn match privoxyEnabledPrefix	"\%(^\|\s\|{\)\@<=+\l\@=" nextgroup=privoxyAction,privoxyFilterAction contained
syn match privoxyDisabledPrefix "\%(^\|\s\|{\)\@<=-\l\@=" nextgroup=privoxyAction,privoxyFilterAction contained

syn match privoxyAction "\%(add-header\|block\|content-type-overwrite\|crunch-client-header\|crunch-if-none-match\)\>" contained
syn match privoxyAction "\%(crunch-incoming-cookies\|crunch-outgoing-cookies\|crunch-server-header\|deanimate-gifs\)\>" contained
syn match privoxyAction "\%(downgrade-http-version\|fast-redirects\|filter-client-headers\|filter-server-headers\)\>" contained
syn match privoxyAction "\%(filter\|force-text-mode\|handle-as-empty-document\|handle-as-image\)\>" contained
syn match privoxyAction "\%(hide-accept-language\|hide-content-disposition\|hide-forwarded-for-headers\)\>" contained
syn match privoxyAction "\%(hide-from-header\|hide-if-modified-since\|hide-referrer\|hide-user-agent\|inspect-jpegs\)\>" contained
syn match privoxyAction "\%(kill-popups\|limit-connect\|overwrite-last-modified\|prevent-compression\|redirect\)\>" contained
syn match privoxyAction "\%(send-vanilla-wafer\|send-wafer\|session-cookies-only\|set-image-blocker\)\>" contained
syn match privoxyAction "\%(treat-forbidden-connects-like-blocks\)\>"

syn match privoxyFilterAction "filter{[^}]*}" contained contains=privoxyFilterArg,privoxyActionBraces
syn match privoxyActionBraces "[{}]" contained
syn keyword privoxyFilterArg js-annoyances js-events html-annoyances content-cookies refresh-tags unsolicited-popups all-popups
	\ img-reorder banners-by-size banners-by-link webbugs tiny-textforms jumping-windows frameset-borders demoronizer
	\ shockwave-flash quicktime-kioskmode fun crude-parental ie-exploits site-specifics no-ping google yahoo msn blogspot
	\ x-httpd-php-to-html html-to-xml xml-to-html hide-tor-exit-notation contained

" Alternative spellings
syn match privoxyAction "\%(kill-popup\|hide-referer\|prevent-keeping-cookies\)\>" contained

" Pre-3.0 compatibility
syn match privoxyAction "\%(no-cookie-read\|no-cookie-set\|prevent-reading-cookies\|prevent-setting-cookies\)\>" contained
syn match privoxyAction "\%(downgrade\|hide-forwarded\|hide-from\|image\|image-blocker\|no-compression\)\>" contained
syn match privoxyAction "\%(no-cookies-keep\|no-cookies-read\|no-cookies-set\|no-popups\|vanilla-wafer\|wafer\)\>" contained

syn match privoxySetting "\<for-privoxy-version\>"

syn match privoxyHeader "^\s*\zs{{\%(alias\|settings\)}}\ze\s*$"

hi def link privoxyAction		Identifier
hi def link privoxyFilterAction		Identifier
hi def link privoxyActionLineDelimiter	Delimiter
hi def link privoxyDisabledPrefix	SpecialChar
hi def link privoxyEnabledPrefix	SpecialChar
hi def link privoxyHeader		PreProc
hi def link privoxySetting		Identifier
hi def link privoxyFilterArg		Constant

hi def link privoxyComment		Comment
hi def link privoxyTodo			Todo

let b:current_syntax = "privoxy"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z%}5��vim80/syntax/basic.vimnu�[���" Vim syntax file
" Language:	BASIC
" Maintainer:	Allan Kelly <allan@fruitloaf.co.uk>
" Last Change:  2011 Dec 25 by Thilo Six

" First version based on Micro$soft QBASIC circa 1989, as documented in
" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
" This syntax file not a complete implementation yet.  Send suggestions to the
" maintainer.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" A bunch of useful BASIC keywords
syn keyword basicStatement	BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave
syn keyword basicStatement	CALL call Call ABSOLUTE absolute Absolute
syn keyword basicStatement	CHAIN chain Chain CHDIR chdir Chdir
syn keyword basicStatement	CIRCLE circle Circle CLEAR clear Clear
syn keyword basicStatement	CLOSE close Close CLS cls Cls COLOR color Color
syn keyword basicStatement	COM com Com COMMON common Common
syn keyword basicStatement	CONST const Const DATA data Data
syn keyword basicStatement	DECLARE declare Declare DEF def Def
syn keyword basicStatement	DEFDBL defdbl Defdbl DEFINT defint Defint
syn keyword basicStatement	DEFLNG deflng Deflng DEFSNG defsng Defsng
syn keyword basicStatement	DEFSTR defstr Defstr DIM dim Dim
syn keyword basicStatement	DO do Do LOOP loop Loop
syn keyword basicStatement	DRAW draw Draw END end End
syn keyword basicStatement	ENVIRON environ Environ ERASE erase Erase
syn keyword basicStatement	ERROR error Error EXIT exit Exit
syn keyword basicStatement	FIELD field Field FILES files Files
syn keyword basicStatement	FOR for For NEXT next Next
syn keyword basicStatement	FUNCTION function Function GET get Get
syn keyword basicStatement	GOSUB gosub Gosub GOTO goto Goto
syn keyword basicStatement	IF if If THEN then Then ELSE else Else
syn keyword basicStatement	INPUT input Input INPUT# input# Input#
syn keyword basicStatement	IOCTL ioctl Ioctl KEY key Key
syn keyword basicStatement	KILL kill Kill LET let Let
syn keyword basicStatement	LINE line Line LOCATE locate Locate
syn keyword basicStatement	LOCK lock Lock UNLOCK unlock Unlock
syn keyword basicStatement	LPRINT lprint Lprint USING using Using
syn keyword basicStatement	LSET lset Lset MKDIR mkdir Mkdir
syn keyword basicStatement	NAME name Name ON on On
syn keyword basicStatement	ERROR error Error OPEN open Open
syn keyword basicStatement	OPTION option Option BASE base Base
syn keyword basicStatement	OUT out Out PAINT paint Paint
syn keyword basicStatement	PALETTE palette Palette PCOPY pcopy Pcopy
syn keyword basicStatement	PEN pen Pen PLAY play Play
syn keyword basicStatement	PMAP pmap Pmap POKE poke Poke
syn keyword basicStatement	PRESET preset Preset PRINT print Print
syn keyword basicStatement	PRINT# print# Print# USING using Using
syn keyword basicStatement	PSET pset Pset PUT put Put
syn keyword basicStatement	RANDOMIZE randomize Randomize READ read Read
syn keyword basicStatement	REDIM redim Redim RESET reset Reset
syn keyword basicStatement	RESTORE restore Restore RESUME resume Resume
syn keyword basicStatement	RETURN return Return RMDIR rmdir Rmdir
syn keyword basicStatement	RSET rset Rset RUN run Run
syn keyword basicStatement	SEEK seek Seek SELECT select Select
syn keyword basicStatement	CASE case Case SHARED shared Shared
syn keyword basicStatement	SHELL shell Shell SLEEP sleep Sleep
syn keyword basicStatement	SOUND sound Sound STATIC static Static
syn keyword basicStatement	STOP stop Stop STRIG strig Strig
syn keyword basicStatement	SUB sub Sub SWAP swap Swap
syn keyword basicStatement	SYSTEM system System TIMER timer Timer
syn keyword basicStatement	TROFF troff Troff TRON tron Tron
syn keyword basicStatement	TYPE type Type UNLOCK unlock Unlock
syn keyword basicStatement	VIEW view View WAIT wait Wait
syn keyword basicStatement	WHILE while While WEND wend Wend
syn keyword basicStatement	WIDTH width Width WINDOW window Window
syn keyword basicStatement	WRITE write Write DATE$ date$ Date$
syn keyword basicStatement	MID$ mid$ Mid$ TIME$ time$ Time$

syn keyword basicFunction	ABS abs Abs ASC asc Asc
syn keyword basicFunction	ATN atn Atn CDBL cdbl Cdbl
syn keyword basicFunction	CINT cint Cint CLNG clng Clng
syn keyword basicFunction	COS cos Cos CSNG csng Csng
syn keyword basicFunction	CSRLIN csrlin Csrlin CVD cvd Cvd
syn keyword basicFunction	CVDMBF cvdmbf Cvdmbf CVI cvi Cvi
syn keyword basicFunction	CVL cvl Cvl CVS cvs Cvs
syn keyword basicFunction	CVSMBF cvsmbf Cvsmbf EOF eof Eof
syn keyword basicFunction	ERDEV erdev Erdev ERL erl Erl
syn keyword basicFunction	ERR err Err EXP exp Exp
syn keyword basicFunction	FILEATTR fileattr Fileattr FIX fix Fix
syn keyword basicFunction	FRE fre Fre FREEFILE freefile Freefile
syn keyword basicFunction	INP inp Inp INSTR instr Instr
syn keyword basicFunction	INT int Int LBOUND lbound Lbound
syn keyword basicFunction	LEN len Len LOC loc Loc
syn keyword basicFunction	LOF lof Lof LOG log Log
syn keyword basicFunction	LPOS lpos Lpos PEEK peek Peek
syn keyword basicFunction	PEN pen Pen POINT point Point
syn keyword basicFunction	POS pos Pos RND rnd Rnd
syn keyword basicFunction	SADD sadd Sadd SCREEN screen Screen
syn keyword basicFunction	SEEK seek Seek SETMEM setmem Setmem
syn keyword basicFunction	SGN sgn Sgn SIN sin Sin
syn keyword basicFunction	SPC spc Spc SQR sqr Sqr
syn keyword basicFunction	STICK stick Stick STRIG strig Strig
syn keyword basicFunction	TAB tab Tab TAN tan Tan
syn keyword basicFunction	UBOUND ubound Ubound VAL val Val
syn keyword basicFunction	VALPTR valptr Valptr VALSEG valseg Valseg
syn keyword basicFunction	VARPTR varptr Varptr VARSEG varseg Varseg
syn keyword basicFunction	CHR$ Chr$ chr$ COMMAND$ command$ Command$
syn keyword basicFunction	DATE$ date$ Date$ ENVIRON$ environ$ Environ$
syn keyword basicFunction	ERDEV$ erdev$ Erdev$ HEX$ hex$ Hex$
syn keyword basicFunction	INKEY$ inkey$ Inkey$ INPUT$ input$ Input$
syn keyword basicFunction	IOCTL$ ioctl$ Ioctl$ LCASES$ lcases$ Lcases$
syn keyword basicFunction	LAFT$ laft$ Laft$ LTRIM$ ltrim$ Ltrim$
syn keyword basicFunction	MID$ mid$ Mid$ MKDMBF$ mkdmbf$ Mkdmbf$
syn keyword basicFunction	MKD$ mkd$ Mkd$ MKI$ mki$ Mki$
syn keyword basicFunction	MKL$ mkl$ Mkl$ MKSMBF$ mksmbf$ Mksmbf$
syn keyword basicFunction	MKS$ mks$ Mks$ OCT$ oct$ Oct$
syn keyword basicFunction	RIGHT$ right$ Right$ RTRIM$ rtrim$ Rtrim$
syn keyword basicFunction	SPACE$ space$ Space$ STR$ str$ Str$
syn keyword basicFunction	STRING$ string$ String$ TIME$ time$ Time$
syn keyword basicFunction	UCASE$ ucase$ Ucase$ VARPTR$ varptr$ Varptr$
syn keyword basicTodo contained	TODO

"integer number, or floating point number without a dot.
syn match  basicNumber		"\<\d\+\>"
"floating point number, with dot
syn match  basicNumber		"\<\d\+\.\d*\>"
"floating point number, starting with a dot
syn match  basicNumber		"\.\d\+\>"

" String and Character contstants
syn match   basicSpecial contained "\\\d\d\d\|\\."
syn region  basicString		  start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=basicSpecial

syn region  basicComment	start="REM" end="$" contains=basicTodo
syn region  basicComment	start="^[ \t]*'" end="$" contains=basicTodo
syn region  basicLineNumber	start="^\d" end="\s"
syn match   basicTypeSpecifier  "[a-zA-Z0-9][\$%&!#]"ms=s+1
" Used with OPEN statement
syn match   basicFilenumber  "#\d\+"
"syn sync ccomment basicComment
" syn match   basicMathsOperator "[<>+\*^/\\=-]"
syn match   basicMathsOperator   "-\|=\|[:<>+\*^/\\]\|AND\|OR"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link basicLabel		Label
hi def link basicConditional	Conditional
hi def link basicRepeat		Repeat
hi def link basicLineNumber	Comment
hi def link basicNumber		Number
hi def link basicError		Error
hi def link basicStatement	Statement
hi def link basicString		String
hi def link basicComment		Comment
hi def link basicSpecial		Special
hi def link basicTodo		Todo
hi def link basicFunction		Identifier
hi def link basicTypeSpecifier Type
hi def link basicFilenumber basicTypeSpecifier
"hi basicMathsOperator term=bold cterm=bold gui=bold


let b:current_syntax = "basic"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�:��vim80/syntax/sieve.vimnu�[���" Vim syntax file
" Language:             Sieve filtering language input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-10-25

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword sieveTodo         contained TODO FIXME XXX NOTE

syn region  sieveComment      start='/\*' end='\*/' contains=sieveTodo,@Spell
syn region  sieveComment      display oneline start='#' end='$'
                              \ contains=sieveTodo,@Spell

syn case ignore

syn match   sieveTag          display ':\h\w*'

syn match   sieveNumber       display '\<\d\+[KMG]\=\>'

syn match   sieveSpecial      display '\\["\\]'

syn region  sieveString       start=+"+ skip=+\\\\\|\\"+ end=+"+
                              \ contains=sieveSpecial
syn region  sieveString       start='text:' end='\n.\n'

syn keyword sieveConditional  if elsif else
syn keyword sieveTest         address allof anyof envelope exists false header
                              \ not size true
syn keyword sievePreProc      require stop
syn keyword sieveAction       reject fileinto redirect keep discard
syn keyword sieveKeyword      vacation

syn case match

hi def link sieveTodo        Todo
hi def link sieveComment     Comment
hi def link sieveTag         Type
hi def link sieveNumber      Number
hi def link sieveSpecial     Special
hi def link sieveString      String
hi def link sieveConditional Conditional
hi def link sieveTest        Keyword
hi def link sievePreProc     PreProc
hi def link sieveAction      Function
hi def link sieveKeyword     Keyword

let b:current_syntax = "sieve"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���vim80/syntax/samba.vimnu�[���" Vim syntax file
" Language:	samba configuration files (smb.conf)
" Maintainer:	Rafael Garcia-Suarez <rgarciasuarez@free.fr>
" URL:		http://rgarciasuarez.free.fr/vim/syntax/samba.vim
" Last change:	2009 Aug 06
"
"               New maintainer wanted!
"
" Don't forget to run your config file through testparm(1)!

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn match sambaParameter /^[a-zA-Z \t]\+=/ contains=sambaKeyword
syn match sambaSection /^\s*\[[a-zA-Z0-9_\-.$ ]\+\]/
syn match sambaMacro /%[SPugUGHvhmLMNpRdaITD]/
syn match sambaMacro /%$([a-zA-Z0-9_]\+)/
syn match sambaComment /^\s*[;#].*/
syn match sambaContinue /\\$/
syn keyword sambaBoolean true false yes no

" Keywords for Samba 2.0.5a
syn keyword sambaKeyword contained account acl action add address admin aliases
syn keyword sambaKeyword contained allow alternate always announce anonymous
syn keyword sambaKeyword contained archive as auto available bind blocking
syn keyword sambaKeyword contained bmpx break browsable browse browseable ca
syn keyword sambaKeyword contained cache case casesignames cert certDir
syn keyword sambaKeyword contained certFile change char character chars chat
syn keyword sambaKeyword contained ciphers client clientcert code coding
syn keyword sambaKeyword contained command comment compatibility config
syn keyword sambaKeyword contained connections contention controller copy
syn keyword sambaKeyword contained create deadtime debug debuglevel default
syn keyword sambaKeyword contained delete deny descend dfree dir directory
syn keyword sambaKeyword contained disk dns domain domains dont dos dot drive
syn keyword sambaKeyword contained driver encrypt encrypted equiv exec fake
syn keyword sambaKeyword contained file files filetime filetimes filter follow
syn keyword sambaKeyword contained force fstype getwd group groups guest
syn keyword sambaKeyword contained hidden hide home homedir hosts include
syn keyword sambaKeyword contained interfaces interval invalid keepalive
syn keyword sambaKeyword contained kernel key ldap length level level2 limit
syn keyword sambaKeyword contained links list lm load local location lock
syn keyword sambaKeyword contained locking locks log logon logons logs lppause
syn keyword sambaKeyword contained lpq lpresume lprm machine magic mangle
syn keyword sambaKeyword contained mangled mangling map mask master max mem
syn keyword sambaKeyword contained message min mode modes mux name names
syn keyword sambaKeyword contained netbios nis notify nt null offset ok ole
syn keyword sambaKeyword contained only open oplock oplocks options order os
syn keyword sambaKeyword contained output packet page panic passwd password
syn keyword sambaKeyword contained passwords path permissions pipe port ports
syn keyword sambaKeyword contained postexec postscript prediction preexec
syn keyword sambaKeyword contained prefered preferred preload preserve print
syn keyword sambaKeyword contained printable printcap printer printers
syn keyword sambaKeyword contained printing program protocol proxy public
syn keyword sambaKeyword contained queuepause queueresume raw read readonly
syn keyword sambaKeyword contained realname remote require resign resolution
syn keyword sambaKeyword contained resolve restrict revalidate rhosts root
syn keyword sambaKeyword contained script security sensitive server servercert
syn keyword sambaKeyword contained service services set share shared short
syn keyword sambaKeyword contained size smb smbrun socket space ssl stack stat
syn keyword sambaKeyword contained status strict string strip suffix support
syn keyword sambaKeyword contained symlinks sync syslog system time timeout
syn keyword sambaKeyword contained times timestamp to trusted ttl unix update
syn keyword sambaKeyword contained use user username users valid version veto
syn keyword sambaKeyword contained volume wait wide wins workgroup writable
syn keyword sambaKeyword contained write writeable xmit

" New keywords for Samba 2.0.6
syn keyword sambaKeyword contained hook hires pid uid close rootpreexec

" New keywords for Samba 2.0.7
syn keyword sambaKeyword contained utmp wtmp hostname consolidate
syn keyword sambaKeyword contained inherit source environment

" New keywords for Samba 2.2.0
syn keyword sambaKeyword contained addprinter auth browsing deleteprinter
syn keyword sambaKeyword contained enhanced enumports filemode gid host jobs
syn keyword sambaKeyword contained lanman msdfs object os2 posix processes
syn keyword sambaKeyword contained scope separator shell show smbd template
syn keyword sambaKeyword contained total vfs winbind wizard

" New keywords for Samba 2.2.1
syn keyword sambaKeyword contained large obey pam readwrite restrictions
syn keyword sambaKeyword contained unreadable

" New keywords for Samba 2.2.2 - 2.2.4
syn keyword sambaKeyword contained acls allocate bytes count csc devmode
syn keyword sambaKeyword contained disable dn egd entropy enum extensions mmap
syn keyword sambaKeyword contained policy spin spoolss

" Since Samba 3.0.2
syn keyword sambaKeyword contained abort afs algorithmic backend
syn keyword sambaKeyword contained charset cups defer display
syn keyword sambaKeyword contained enable idmap kerberos lookups
syn keyword sambaKeyword contained methods modules nested NIS ntlm NTLMv2
syn keyword sambaKeyword contained objects paranoid partners passdb
syn keyword sambaKeyword contained plaintext prefix primary private
syn keyword sambaKeyword contained profile quota realm replication
syn keyword sambaKeyword contained reported rid schannel sendfile sharing
syn keyword sambaKeyword contained shutdown signing special spnego
syn keyword sambaKeyword contained store unknown unwriteable

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link sambaParameter Normal
hi def link sambaKeyword   Type
hi def link sambaSection   Statement
hi def link sambaMacro     PreProc
hi def link sambaComment   Comment
hi def link sambaContinue  Operator
hi def link sambaBoolean   Constant

let b:current_syntax = "samba"

" vim: ts=8
PK�j�Z*�:6��vim80/syntax/dylanlid.vimnu�[���" Vim syntax file
" Language:	Dylan Library Interface Files
" Authors:	Justus Pendleton <justus@acm.org>
"		Brent Fulgham <bfulgham@debian.org>
" Last Change:	Fri Sep 29 13:50:20 PDT 2000
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn region	dylanlidInfo		matchgroup=Statement start="^" end=":" oneline
syn region	dylanlidEntry		matchgroup=Statement start=":%" end="$" oneline

syn sync	lines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dylanlidInfo		Type
hi def link dylanlidEntry		String


let b:current_syntax = "dylanlid"

" vim:ts=8
PK�j�Z�C���vim80/syntax/rebol.vimnu�[���" Vim syntax file
" Language:	Rebol
" Maintainer:	Mike Williams <mrw@eandem.co.uk>
" Filenames:	*.r
" Last Change:	27th June 2002
" URL:		http://www.eandem.co.uk/mrw/vim
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Rebol is case insensitive
syn case ignore

" As per current users documentation
setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~

" Yer TODO highlighter
syn keyword	rebolTodo	contained TODO

" Comments
syn match       rebolComment    ";.*$" contains=rebolTodo

" Words
syn match       rebolWord       "\a\k*"
syn match       rebolWordPath   "[^[:space:]]/[^[:space]]"ms=s+1,me=e-1

" Booleans
syn keyword     rebolBoolean    true false on off yes no

" Values
" Integers
syn match       rebolInteger    "\<[+-]\=\d\+\('\d*\)*\>"
" Decimals
syn match       rebolDecimal    "[+-]\=\(\d\+\('\d*\)*\)\=[,.]\d*\(e[+-]\=\d\+\)\="
syn match       rebolDecimal    "[+-]\=\d\+\('\d*\)*\(e[+-]\=\d\+\)\="
" Time
syn match       rebolTime       "[+-]\=\(\d\+\('\d*\)*\:\)\{1,2}\d\+\('\d*\)*\([.,]\d\+\)\=\([AP]M\)\=\>"
syn match       rebolTime       "[+-]\=:\d\+\([.,]\d*\)\=\([AP]M\)\=\>"
" Dates
" DD-MMM-YY & YYYY format
syn match       rebolDate       "\d\{1,2}\([/-]\)\(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\1\(\d\{2}\)\{1,2}\>"
" DD-month-YY & YYYY format
syn match       rebolDate       "\d\{1,2}\([/-]\)\(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December\)\1\(\d\{2}\)\{1,2}\>"
" DD-MM-YY & YY format
syn match       rebolDate       "\d\{1,2}\([/-]\)\d\{1,2}\1\(\d\{2}\)\{1,2}\>"
" YYYY-MM-YY format
syn match       rebolDate       "\d\{4}-\d\{1,2}-\d\{1,2}\>"
" DD.MM.YYYY format
syn match       rebolDate       "\d\{1,2}\.\d\{1,2}\.\d\{4}\>"
" Money
syn match       rebolMoney      "\a*\$\d\+\('\d*\)*\([,.]\d\+\)\="
" Strings
syn region      rebolString     oneline start=+"+ skip=+^"+ end=+"+ contains=rebolSpecialCharacter
syn region      rebolString     start=+[^#]{+ end=+}+ skip=+{[^}]*}+ contains=rebolSpecialCharacter
" Binary
syn region      rebolBinary     start=+\d*#{+ end=+}+ contains=rebolComment
" Email
syn match       rebolEmail      "\<\k\+@\(\k\+\.\)*\k\+\>"
" File
syn match       rebolFile       "%\(\k\+/\)*\k\+[/]\=" contains=rebolSpecialCharacter
syn region      rebolFile       oneline start=+%"+ end=+"+ contains=rebolSpecialCharacter
" URLs
syn match	rebolURL	"http://\k\+\(\.\k\+\)*\(:\d\+\)\=\(/\(\k\+/\)*\(\k\+\)\=\)*"
syn match	rebolURL	"file://\k\+\(\.\k\+\)*/\(\k\+/\)*\k\+"
syn match	rebolURL	"ftp://\(\k\+:\k\+@\)\=\k\+\(\.\k\+\)*\(:\d\+\)\=/\(\k\+/\)*\k\+"
syn match	rebolURL	"mailto:\k\+\(\.\k\+\)*@\k\+\(\.\k\+\)*"
" Issues
syn match	rebolIssue	"#\(\d\+-\)*\d\+"
" Tuples
syn match	rebolTuple	"\(\d\+\.\)\{2,}"

" Characters
syn match       rebolSpecialCharacter contained "\^[^[:space:][]"
syn match       rebolSpecialCharacter contained "%\d\+"


" Operators
" Math operators
syn match       rebolMathOperator  "\(\*\{1,2}\|+\|-\|/\{1,2}\)"
syn keyword     rebolMathFunction  abs absolute add arccosine arcsine arctangent cosine
syn keyword     rebolMathFunction  divide exp log-10 log-2 log-e max maximum min
syn keyword     rebolMathFunction  minimum multiply negate power random remainder sine
syn keyword     rebolMathFunction  square-root subtract tangent
" Binary operators
syn keyword     rebolBinaryOperator complement and or xor ~
" Logic operators
syn match       rebolLogicOperator "[<>=]=\="
syn match       rebolLogicOperator "<>"
syn keyword     rebolLogicOperator not
syn keyword     rebolLogicFunction all any
syn keyword     rebolLogicFunction head? tail?
syn keyword     rebolLogicFunction negative? positive? zero? even? odd?
syn keyword     rebolLogicFunction binary? block? char? date? decimal? email? empty?
syn keyword     rebolLogicFunction file? found? function? integer? issue? logic? money?
syn keyword     rebolLogicFunction native? none? object? paren? path? port? series?
syn keyword     rebolLogicFunction string? time? tuple? url? word?
syn keyword     rebolLogicFunction exists? input? same? value?

" Datatypes
syn keyword     rebolType       binary! block! char! date! decimal! email! file!
syn keyword     rebolType       function! integer! issue! logic! money! native!
syn keyword     rebolType       none! object! paren! path! port! string! time!
syn keyword     rebolType       tuple! url! word!
syn keyword     rebolTypeFunction type?

" Control statements
syn keyword     rebolStatement  break catch exit halt reduce return shield
syn keyword     rebolConditional if else
syn keyword     rebolRepeat     for forall foreach forskip loop repeat while until do

" Series statements
syn keyword     rebolStatement  change clear copy fifth find first format fourth free
syn keyword     rebolStatement  func function head insert last match next parse past
syn keyword     rebolStatement  pick remove second select skip sort tail third trim length?

" Context
syn keyword     rebolStatement  alias bind use

" Object
syn keyword     rebolStatement  import make make-object rebol info?

" I/O statements
syn keyword     rebolStatement  delete echo form format import input load mold prin
syn keyword     rebolStatement  print probe read save secure send write
syn keyword     rebolOperator   size? modified?

" Debug statement
syn keyword     rebolStatement  help probe trace

" Misc statements
syn keyword     rebolStatement  func function free

" Constants
syn keyword     rebolConstant   none


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link rebolTodo     Todo

hi def link rebolStatement Statement
hi def link rebolLabel	Label
hi def link rebolConditional Conditional
hi def link rebolRepeat	Repeat

hi def link rebolOperator	Operator
hi def link rebolLogicOperator rebolOperator
hi def link rebolLogicFunction rebolLogicOperator
hi def link rebolMathOperator rebolOperator
hi def link rebolMathFunction rebolMathOperator
hi def link rebolBinaryOperator rebolOperator
hi def link rebolBinaryFunction rebolBinaryOperator

hi def link rebolType     Type
hi def link rebolTypeFunction rebolOperator

hi def link rebolWord     Identifier
hi def link rebolWordPath rebolWord
hi def link rebolFunction	Function

hi def link rebolCharacter Character
hi def link rebolSpecialCharacter SpecialChar
hi def link rebolString	String

hi def link rebolNumber   Number
hi def link rebolInteger  rebolNumber
hi def link rebolDecimal  rebolNumber
hi def link rebolTime     rebolNumber
hi def link rebolDate     rebolNumber
hi def link rebolMoney    rebolNumber
hi def link rebolBinary   rebolNumber
hi def link rebolEmail    rebolString
hi def link rebolFile     rebolString
hi def link rebolURL      rebolString
hi def link rebolIssue    rebolNumber
hi def link rebolTuple    rebolNumber
hi def link rebolFloat    Float
hi def link rebolBoolean  Boolean

hi def link rebolConstant Constant

hi def link rebolComment	Comment

hi def link rebolError	Error


if exists("my_rebol_file")
  if file_readable(expand(my_rebol_file))
    execute "source " . my_rebol_file
  endif
endif

let b:current_syntax = "rebol"

" vim: ts=8
PK�j�Z�ϛ$$vim80/syntax/groff.vimnu�[���" VIM syntax file
" Language:	groff
" Maintainer:	Alejandro L�pez-Valencia <dradul@yahoo.com>
" URL:		http://dradul.tripod.com/vim
" Last Change:	2003-05-08-12:41:13 GMT-5.

" This uses the nroff.vim syntax file.
let b:main_syntax = "nroff"
let b:nroff_is_groff = 1
runtime! syntax/nroff.vim
PK�j�Z'+��=(=(vim80/syntax/plaintex.vimnu�[���" Vim syntax file
" Language:             TeX (plain.tex format)
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-10-26

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   plaintexControlSequence         display contains=@NoSpell
      \ '\\[a-zA-Z@]\+'

runtime! syntax/initex.vim
unlet b:current_syntax

syn match   plaintexComment                 display
      \ contains=ALLBUT,initexComment,plaintexComment
      \ '^\s*%[CDM].*$'

if exists("g:plaintex_delimiters")
  syn match   plaintexDelimiter             display '[][{}]'
endif

syn match   plaintexRepeat                  display contains=@NoSpell
      \ '\\\%(loop\|repeat\)\>'

syn match   plaintexCommand                 display contains=@NoSpell
      \ '\\\%(plainoutput\|TeX\)\>'
syn match   plaintexBoxCommand              display contains=@NoSpell
      \ '\\\%(null\|strut\)\>'
syn match   plaintexDebuggingCommand        display contains=@NoSpell
      \ '\\\%(showhyphens\|tracingall\|wlog\)\>'
syn match   plaintexFontsCommand            display contains=@NoSpell
      \ '\\\%(bf\|\%(five\|seven\)\%(bf\|i\|rm\|sy\)\|it\|oldstyle\|rm\|sl\|ten\%(bf\|ex\|it\=\|rm\|sl\|sy\|tt\)\|tt\)\>'
syn match   plaintexGlueCommand             display contains=@NoSpell
      \ '\\\%(\%(big\|en\|med\|\%(no\|off\)interline\|small\)skip\|\%(center\|left\|right\)\=line\|\%(dot\|\%(left\|right\)arrow\)fill\|[hv]glue\|[lr]lap\|q\=quad\|space\|topglue\)\>'
syn match   plaintexInsertsCommand          display contains=@NoSpell
      \ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>'
syn match   plaintexJobCommand              display contains=@NoSpell
      \ '\\\%(bye\|fmt\%(name\|version\)\)\>'
syn match   plaintexInsertsCommand          display contains=@NoSpell
      \ '\\\%(mid\|page\)insert\>'
syn match   plaintexKernCommand             display contains=@NoSpell
      \ '\\\%(en\|\%(neg\)\=thin\)space\>'
syn match   plaintexMacroCommand            display contains=@NoSpell
      \ '\\\%(active\|[be]group\|empty\)\>'
syn match   plaintexPageCommand             display contains=@NoSpell
      \ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>'
syn match   plaintexParagraphCommand        display contains=@NoSpell
      \ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>'
syn match   plaintexPenaltiesCommand        display contains=@NoSpell
      \ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>'
syn match   plaintexRegistersCommand        display contains=@NoSpell
      \ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>'
syn match   plaintexTablesCommand           display contains=@NoSpell
      \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>'

if !exists("g:plaintex_no_math")
  syn region  plaintexMath                  matchgroup=plaintexMath
      \ contains=@plaintexMath,@NoSpell
      \ start='\$' skip='\\\\\|\\\$' end='\$'
  syn region  plaintexMath                  matchgroup=plaintexMath
      \ contains=@plaintexMath,@NoSpell keepend
      \ start='\$\$' skip='\\\\\|\\\$' end='\$\$'
endif

" Keep this after plaintexMath, as we don’t want math mode started at a \$.
syn match   plaintexCharacterCommand        display contains=@NoSpell
      \ /\\\%(["#$%&'.=^_`~]\|``\|''\|-\{2,3}\|[?!]`\|^^L\|\~\|\%(a[ae]\|A[AE]\|acute\|[cdHoOPStuvijlL]\|copyright\|d\=dag\|folio\|ldotp\|[lr]q\|oe\|OE\|slash\|ss\|underbar\)\>\)/

syn cluster plaintexMath
      \ contains=plaintexMathCommand,plaintexMathBoxCommand,
      \ plaintexMathCharacterCommand,plaintexMathDelimiter,
      \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol,
      \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation,
      \ plaintexMathRelation

syn match   plaintexMathCommand             display contains=@NoSpell contained
      \ '\\\%([!*,;>{}|_^]\|\%([aA]rrowvert\|[bB]ig\%(g[lmr]\=\|r\)\=\|\%(border\|p\)\=matrix\|displaylines\|\%(down\|up\)bracefill\|eqalign\%(no\)\|leqalignno\|[lr]moustache\|mathpalette\|root\|s[bp]\|skew\|sqrt\)\>\)'
syn match   plaintexMathBoxCommand          display contains=@NoSpell contained
      \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>'
syn match   plaintexMathCharacterCommand    display contains=@NoSpell contained
      \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>'
syn match   plaintexMathDelimiter           display contains=@NoSpell contained
      \ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>'
syn match   plaintexMathFontsCommand        display contains=@NoSpell contained
      \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>'
syn match   plaintexMathLetter              display contains=@NoSpell contained
      \ '\\\%(aleph\|alpha\|beta\|chi\|[dD]elta\|ell\|epsilon\|eta\|[gG]amma\|[ij]math\|iota\|kappa\|[lL]ambda\|[mn]u\|[oO]mega\|[pP][hs]\=i\|rho\|[sS]igma\|tau\|[tT]heta\|[uU]psilon\|var\%(epsilon\|ph\=i\|rho\|sigma\|theta\)\|[xX]i\|zeta\)\>'
syn match   plaintexMathSymbol              display contains=@NoSpell contained
      \ '\\\%(angle\|backslash\|bot\|clubsuit\|emptyset\|epsilon\|exists\|flat\|forall\|hbar\|heartsuit\|Im\|infty\|int\|lnot\|nabla\|natural\|neg\|pmod\|prime\|Re\|sharp\|smallint\|spadesuit\|surd\|top\|triangle\%(left\|right\)\=\|vdash\|wp\)\>'
syn match   plaintexMathFunction            display contains=@NoSpell contained
      \ '\\\%(arc\%(cos\|sin\|tan\)\|arg\|\%(cos\|sin\|tan\)h\=\|coth\=\|csc\|de[gt]\|dim\|exp\|gcd\|hom\|inf\|ker\|lo\=g\|lim\%(inf\|sup\)\=\|ln\|max\|min\|Pr\|sec\|sup\)\>'
syn match   plaintexMathOperator            display contains=@NoSpell contained
      \ '\\\%(amalg\|ast\|big\%(c[au]p\|circ\|o\%(dot\|plus\|times\|sqcup\)\|triangle\%(down\|up\)\|uplus\|vee\|wedge\|bmod\|bullet\)\|c[au]p\|cdot[ps]\=\|circ\|coprod\|d\=dagger\|diamond\%(suit\)\=\|div\|land\|lor\|mp\|o\%(dot\|int\|minus\|plus\|slash\|times\)pm\|prod\|setminus\|sqc[au]p\|sqsu[bp]seteq\|star\|su[bp]set\%(eq\)\=\|sum\|times\|uplus\|vee\|wedge\|wr\)\>'
syn match   plaintexMathPunctuation         display contains=@NoSpell contained
      \ '\\\%(colon\)\>'
syn match   plaintexMathRelation            display contains=@NoSpell contained
      \ '\\\%(approx\|asymp\|bowtie\|buildrel\|cong\|dashv\|doteq\|[dD]ownarrow\|equiv\|frown\|geq\=\|gets\|gg\|hook\%(left\|right\)arrow\|iff\|in\|leq\=\|[lL]eftarrow\|\%(left\|right\)harpoon\%(down\|up\)\|[lL]eftrightarrow\|ll\|[lL]ongleftrightarrow\|longmapsto\|[lL]ongrightarrow\|mapsto\|mid\|models\|[ns][ew]arrow\|neq\=\|ni\|not\%(in\)\=\|owns\|parallel\|perp\|prec\%(eq\)\=\|propto\|[rR]ightarrow\|rightleftharpoons\|sim\%(eq\)\=\|smile\|succ\%(eq\)\=\|to\|[uU]parrow\|[uU]pdownarrow\|[vV]ert\)\>'

syn match   plaintexParameterDimen          display contains=@NoSpell
      \ '\\maxdimen\>'
syn match   plaintexMathParameterDimen      display contains=@NoSpell
      \ '\\jot\>'
syn match   plaintexParagraphParameterGlue  display contains=@NoSpell
      \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>'

syn match   plaintexFontParameterInteger    display contains=@NoSpell
      \ '\\magstep\%(half\)\=\>'
syn match   plaintexJobParameterInteger     display contains=@NoSpell
      \ '\\magnification\>'
syn match   plaintexPageParameterInteger    display contains=@NoSpell
      \ '\\pageno\>'

syn match   plaintexPageParameterToken      display contains=@NoSpell
      \ '\\\%(foot\|head\)line\>'

hi def link plaintexOperator                Operator

hi def link plaintexDelimiter               Delimiter

hi def link plaintexControlSequence         Identifier
hi def link plaintexComment                 Comment
hi def link plaintexInclude                 Include
hi def link plaintexRepeat                  Repeat

hi def link plaintexCommand                 initexCommand
hi def link plaintexBoxCommand              plaintexCommand
hi def link plaintexCharacterCommand        initexCharacterCommand
hi def link plaintexDebuggingCommand        initexDebuggingCommand
hi def link plaintexFontsCommand            initexFontsCommand
hi def link plaintexGlueCommand             plaintexCommand
hi def link plaintexInsertsCommand          plaintexCommand
hi def link plaintexJobCommand              initexJobCommand
hi def link plaintexKernCommand             plaintexCommand
hi def link plaintexMacroCommand            initexMacroCommand
hi def link plaintexPageCommand             plaintexCommand
hi def link plaintexParagraphCommand        plaintexCommand
hi def link plaintexPenaltiesCommand        plaintexCommand
hi def link plaintexRegistersCommand        plaintexCommand
hi def link plaintexTablesCommand           plaintexCommand

hi def link plaintexMath                    String
hi def link plaintexMathCommand             plaintexCommand
hi def link plaintexMathBoxCommand          plaintexBoxCommand
hi def link plaintexMathCharacterCommand    plaintexCharacterCommand
hi def link plaintexMathDelimiter           plaintexDelimiter
hi def link plaintexMathFontsCommand        plaintexFontsCommand
hi def link plaintexMathLetter              plaintexMathCharacterCommand
hi def link plaintexMathSymbol              plaintexMathLetter
hi def link plaintexMathFunction            Function
hi def link plaintexMathOperator            plaintexOperator
hi def link plaintexMathPunctuation         plaintexCharacterCommand
hi def link plaintexMathRelation            plaintexOperator

hi def link plaintexParameterDimen          initexParameterDimen
hi def link plaintexMathParameterDimen      initexMathParameterDimen
hi def link plaintexParagraphParameterGlue  initexParagraphParameterGlue
hi def link plaintexFontParameterInteger    initexFontParameterInteger
hi def link plaintexJobParameterInteger     initexJobParameterInteger
hi def link plaintexPageParameterInteger    initexPageParameterInteger
hi def link plaintexPageParameterToken      initexParameterToken

let b:current_syntax = "plaintex"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�t"�

vim80/syntax/alsaconf.vimnu�[���" Vim syntax file
" Language:             alsaconf(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword alsoconfTodo        contained FIXME TODO XXX NOTE

syn region  alsaconfComment     display oneline
                                \ start='#' end='$'
                                \ contains=alsaconfTodo,@Spell

syn match   alsaconfSpecialChar contained display '\\[ntvbrf]'
syn match   alsaconfSpecialChar contained display '\\\o\+'

syn region  alsaconfString      start=+"+ skip=+\\$+ end=+"\|$+
                                \ contains=alsaconfSpecialChar

syn match   alsaconfSpecial     contained display 'confdir:'

syn region  alsaconfPreProc     start='<' end='>' contains=alsaconfSpecial

syn match   alsaconfMode        display '[+?!-]'

syn keyword alsaconfKeyword     card default device errors files func strings
syn keyword alsaconfKeyword     subdevice type vars

syn match   alsaconfVariables   display '@\(hooks\|func\|args\)'

hi def link alsoconfTodo        Todo
hi def link alsaconfComment     Comment
hi def link alsaconfSpecialChar SpecialChar
hi def link alsaconfString      String
hi def link alsaconfSpecial     Special
hi def link alsaconfPreProc     PreProc
hi def link alsaconfMode        Special
hi def link alsaconfKeyword     Keyword
hi def link alsaconfVariables   Identifier

let b:current_syntax = "alsaconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZOc�ccvim80/syntax/wml.vimnu�[���" Vim syntax file
" Language:     WML - Website MetaLanguage
" Maintainer:   Gerfried Fuchs <alfie@ist.org>
" Filenames:    *.wml
" Last Change:  07 Feb 2002
" URL:		http://alfie.ist.org/software/vim/syntax/wml.vim
"
" Original Version: Craig Small <csmall@eye-net.com.au>

" Comments are very welcome - but please make sure that you are commenting on
" the latest version of this file.
" SPAM is _NOT_ welcome - be ready to be reported!

"  If you are looking for the "Wireless Markup Language" syntax file,
"  please take a look at the wap.vim file done by Ralf Schandl, soon in a
"  vim-package around your corner :)


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


" A lot of the web stuff looks like HTML so we load that first
runtime! syntax/html.vim
unlet b:current_syntax

if !exists("main_syntax")
  let main_syntax = 'wml'
endif

" special character
syn match wmlNextLine	"\\$"

" Redfine htmlTag
syn clear htmlTag
syn region  htmlTag  start=+<[^/<]+ end=+>+  contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition

"
" Add in extra Arguments used by wml
syn keyword htmlTagName contained gfont imgbg imgdot lowsrc
syn keyword htmlTagName contained navbar:define navbar:header
syn keyword htmlTagName contained navbar:footer navbar:prolog
syn keyword htmlTagName contained navbar:epilog navbar:button
syn keyword htmlTagName contained navbar:filter navbar:debug
syn keyword htmlTagName contained navbar:render
syn keyword htmlTagName contained preload rollover
syn keyword htmlTagName contained space hspace vspace over
syn keyword htmlTagName contained ps ds pi ein big sc spaced headline
syn keyword htmlTagName contained ue subheadline zwue verbcode
syn keyword htmlTagName contained isolatin pod sdf text url verbatim
syn keyword htmlTagName contained xtable
syn keyword htmlTagName contained csmap fsview import box
syn keyword htmlTagName contained case:upper case:lower
syn keyword htmlTagName contained grid cell info lang: logo page
syn keyword htmlTagName contained set-var restore
syn keyword htmlTagName contained array:push array:show set-var ifdef
syn keyword htmlTagName contained say m4 symbol dump enter divert
syn keyword htmlTagName contained toc
syn keyword htmlTagName contained wml card do refresh oneevent catch spawn

"
" The wml arguments
syn keyword htmlArg contained adjust background base bdcolor bdspace
syn keyword htmlArg contained bdwidth complete copyright created crop
syn keyword htmlArg contained direction description domainname eperlfilter
syn keyword htmlArg contained file hint imgbase imgstar interchar interline
syn keyword htmlArg contained keephr keepindex keywords layout spacing
syn keyword htmlArg contained padding nonetscape noscale notag notypo
syn keyword htmlArg contained onload oversrc pos select slices style
syn keyword htmlArg contained subselected txtcol_select txtcol_normal
syn keyword htmlArg contained txtonly via
syn keyword htmlArg contained mode columns localsrc ordered


" Lines starting with an # are usually comments
syn match   wmlComment     "^\s*#.*"
" The different exceptions to comments
syn match   wmlSharpBang   "^#!.*"
syn match   wmlUsed	   contained "\s\s*[A-Za-z:_-]*"
syn match   wmlUse	   "^\s*#\s*use\s\+" contains=wmlUsed
syn match   wmlInclude	   "^\s*#\s*include.+"

syn region  wmlBody	   contained start=+<<+ end=+>>+

syn match   wmlLocationId  contained "[A-Za-z]\+"
syn region  wmlLocation    start=+<<+ end=+>>+ contains=wmlLocationId
"syn region  wmlLocation    start=+{#+ end=+#}+ contains=wmlLocationId
"syn region  wmlLocationed  contained start=+<<+ end=+>>+ contains=wmlLocationId

syn match   wmlDivert      "\.\.[a-zA-Z_]\+>>"
syn match   wmlDivertEnd   "<<\.\."
" new version
"syn match   wmlDivert      "{#[a-zA-Z_]\+#:"
"syn match   wmlDivertEnd   ":##}"

syn match   wmlDefineName  contained "\s\+[A-Za-z-]\+"
syn region  htmlTagName    start="\<\(define-tag\|define-region\)" end="\>" contains=wmlDefineName

" The perl include stuff
if main_syntax != 'perl'
  " Perl script
  syn include @wmlPerlScript syntax/perl.vim
  unlet b:current_syntax

  syn region perlScript   start=+<perl>+ keepend end=+</perl>+ contains=@wmlPerlScript,wmlPerlTag
" eperl between '<:' and ':>'  -- Alfie [1999-12-26]
  syn region perlScript   start=+<:+ keepend end=+:>+ contains=@wmlPerlScript,wmlPerlTag
  syn match    wmlPerlTag  contained "</*perl>" contains=wmlPerlTagN
  syn keyword  wmlPerlTagN contained perl

  hi link   wmlPerlTag  htmlTag
  hi link   wmlPerlTagN htmlStatement
endif

" verbatim tags -- don't highlight anything in between  -- Alfie [2002-02-07]
syn region  wmlVerbatimText start=+<verbatim>+ keepend end=+</verbatim>+ contains=wmlVerbatimTag
syn match   wmlVerbatimTag  contained "</*verbatim>" contains=wmlVerbatimTagN
syn keyword wmlVerbatimTagN contained verbatim
hi link     wmlVerbatimTag  htmlTag
hi link     wmlVerbatimTagN htmlStatement

if main_syntax == "html"
  syn sync match wmlHighlight groupthere NONE "</a-zA-Z]"
  syn sync match wmlHighlight groupthere perlScript "<perl>"
  syn sync match wmlHighlightSkip "^.*['\"].*$"
  syn sync minlines=10
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link wmlNextLine	Special
hi def link wmlUse		Include
hi def link wmlUsed	String
hi def link wmlBody	Special
hi def link wmlDiverted	Label
hi def link wmlDivert	Delimiter
hi def link wmlDivertEnd	Delimiter
hi def link wmlLocationId	Label
hi def link wmlLocation	Delimiter
" hi def link wmlLocationed	Delimiter
hi def link wmlDefineName	String
hi def link wmlComment	Comment
hi def link wmlInclude	Include
hi def link wmlSharpBang	PreProc


let b:current_syntax = "wml"
PK�j�Z�`]�7�7vim80/syntax/xinetd.vimnu�[���" Vim syntax file
" Language:             xinetd.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword xinetdTodo          contained TODO FIXME XXX NOTE

syn region  xinetdComment       display oneline start='^\s*#' end='$'
                                \ contains=xinetdTodo,@Spell

syn match   xinetdService       '^\s*service\>'
                                \ nextgroup=xinetdServiceName skipwhite

syn match   xinetdServiceName   contained '\S\+'
                                \ nextgroup=xinetdServiceGroup skipwhite skipnl

syn match   xinetdDefaults      '^\s*defaults'
                                \ nextgroup=xinetdServiceGroup skipwhite skipnl

syn region  xinetdServiceGroup  contained transparent
                                \ matchgroup=xinetdServiceGroupD start='{'
                                \ matchgroup=xinetdServiceGroupD end='}'
                                \ contains=xinetdAttribute,xinetdReqAttribute,
                                \ xinetdDisable

syn keyword xinetdReqAttribute  contained user server protocol
                                \ nextgroup=xinetdStringEq skipwhite

syn keyword xinetdAttribute     contained id group bind
                                \ interface
                                \ nextgroup=xinetdStringEq skipwhite

syn match   xinetdStringEq      contained display '='
                                \ nextgroup=xinetdString skipwhite

syn match   xinetdString        contained display '\S\+'

syn keyword xinetdAttribute     contained type nextgroup=xinetdTypeEq skipwhite

syn match   xinetdTypeEq        contained display '='
                                \ nextgroup=xinetdType skipwhite

syn keyword xinetdType          contained RPC INTERNAL TCPMUX TCPMUXPLUS
                                \ UNLISTED
                                \ nextgroup=xinetdType skipwhite

syn keyword xinetdAttribute     contained flags
                                \ nextgroup=xinetdFlagsEq skipwhite

syn cluster xinetdFlagsC        contains=xinetdFlags,xinetdDeprFlags

syn match   xinetdFlagsEq       contained display '='
                                \ nextgroup=@xinetdFlagsC skipwhite

syn keyword xinetdFlags         contained INTERCEPT NORETRY IDONLY NAMEINARGS
                                \ NODELAY KEEPALIVE NOLIBWRAP SENSOR IPv4 IPv6
                                \ nextgroup=@xinetdFlagsC skipwhite

syn keyword xinetdDeprFlags     contained REUSE nextgroup=xinetdFlagsC skipwhite

syn keyword xinetdDisable       contained disable
                                \ nextgroup=xinetdBooleanEq skipwhite

syn match   xinetdBooleanEq     contained display '='
                                \ nextgroup=xinetdBoolean skipwhite

syn keyword xinetdBoolean       contained yes no

syn keyword xinetdReqAttribute  contained socket_type
                                \ nextgroup=xinetdSocketTypeEq skipwhite

syn match   xinetdSocketTypeEq  contained display '='
                                \ nextgroup=xinetdSocketType skipwhite

syn keyword xinetdSocketType    contained stream dgram raw seqpacket

syn keyword xinetdReqAttribute  contained wait
                                \ nextgroup=xinetdBooleanEq skipwhite

syn keyword xinetdAttribute     contained groups mdns
                                \ nextgroup=xinetdBooleanEq skipwhite

syn keyword xinetdAttribute     contained instances per_source rlimit_cpu
                                \ rlimit_data rlimit_rss rlimit_stack
                                \ nextgroup=xinetdUNumberEq skipwhite

syn match   xinetdUNumberEq     contained display '='
                                \ nextgroup=xinetdUnlimited,xinetdNumber
                                \ skipwhite

syn keyword xinetdUnlimited     contained UNLIMITED

syn match   xinetdNumber        contained display '\<\d\+\>'

syn keyword xinetdAttribute     contained nice
                                \ nextgroup=xinetdSignedNumEq skipwhite

syn match   xinetdSignedNumEq   contained display '='
                                \ nextgroup=xinetdSignedNumber skipwhite

syn match   xinetdSignedNumber  contained display '[+-]\=\d\+\>'

syn keyword xinetdAttribute     contained server_args
                                \ enabled
                                \ nextgroup=xinetdStringsEq skipwhite

syn match   xinetdStringsEq     contained display '='
                                \ nextgroup=xinetdStrings skipwhite

syn match   xinetdStrings       contained display '\S\+'
                                \ nextgroup=xinetdStrings skipwhite

syn keyword xinetdAttribute     contained only_from no_access passenv
                                \ nextgroup=xinetdStringsAdvEq skipwhite

syn match   xinetdStringsAdvEq  contained display '[+-]\=='
                                \ nextgroup=xinetdStrings skipwhite

syn keyword xinetdAttribute     contained access_times
                                \ nextgroup=xinetdTimeRangesEq skipwhite

syn match   xinetdTimeRangesEq  contained display '='
                                \ nextgroup=xinetdTimeRanges skipwhite

syn match   xinetdTimeRanges    contained display
                                \ '\%(0?\d\|1\d\|2[0-3]\):\%(0?\d\|[1-5]\d\)-\%(0?\d\|1\d\|2[0-3]\):\%(0?\d\|[1-5]\d\)'
                                \ nextgroup=xinetdTimeRanges skipwhite

syn keyword xinetdAttribute     contained log_type nextgroup=xinetdLogTypeEq
                                \ skipwhite

syn match   xinetdLogTypeEq     contained display '='
                                \ nextgroup=xinetdLogType skipwhite

syn keyword xinetdLogType       contained SYSLOG nextgroup=xinetdSyslogType
                                \ skipwhite

syn keyword xinetdLogType       contained FILE nextgroup=xinetdLogFile skipwhite

syn keyword xinetdSyslogType    contained daemon auth authpriv user mail lpr
                                \ news uucp ftp local0 local1 local2 local3
                                \ local4 local5 local6 local7
                                \ nextgroup=xinetdSyslogLevel skipwhite

syn keyword xinetdSyslogLevel   contained emerg alert crit err warning notice
                                \ info debug

syn match   xinetdLogFile       contained display '\S\+'
                                \ nextgroup=xinetdLogSoftLimit skipwhite

syn match   xinetdLogSoftLimit  contained display '\<\d\+\>'
                                \ nextgroup=xinetdLogHardLimit skipwhite

syn match   xinetdLogHardLimit  contained display '\<\d\+\>'

syn keyword xinetdAttribute     contained log_on_success
                                \ nextgroup=xinetdLogSuccessEq skipwhite

syn match   xinetdLogSuccessEq  contained display '[+-]\=='
                                \ nextgroup=xinetdLogSuccess skipwhite

syn keyword xinetdLogSuccess    contained PID HOST USERID EXIT DURATION TRAFFIC
                                \ nextgroup=xinetdLogSuccess skipwhite

syn keyword xinetdAttribute     contained log_on_failure
                                \ nextgroup=xinetdLogFailureEq skipwhite

syn match   xinetdLogFailureEq  contained display '[+-]\=='
                                \ nextgroup=xinetdLogFailure skipwhite

syn keyword xinetdLogFailure    contained HOST USERID ATTEMPT
                                \ nextgroup=xinetdLogFailure skipwhite

syn keyword xinetdReqAttribute  contained rpc_version
                                \ nextgroup=xinetdRPCVersionEq skipwhite

syn match   xinetdRPCVersionEq  contained display '='
                                \ nextgroup=xinetdRPCVersion skipwhite

syn match   xinetdRPCVersion    contained display '\d\+\%(-\d\+\)\=\>'

syn keyword xinetdReqAttribute  contained rpc_number port
                                \ nextgroup=xinetdNumberEq skipwhite

syn match   xinetdNumberEq      contained display '='
                                \ nextgroup=xinetdNumber skipwhite

syn keyword xinetdAttribute     contained env nextgroup=xinetdEnvEq skipwhite

syn match   xinetdEnvEq         contained display '+\=='
                                \ nextgroup=xinetdEnvName skipwhite

syn match   xinetdEnvName       contained display '[^=]\+'
                                \ nextgroup=xinetdEnvNameEq

syn match   xinetdEnvNameEq     contained display '=' nextgroup=xinetdEnvValue

syn match   xinetdEnvValue      contained display '\S\+'
                                \ nextgroup=xinetdEnvName skipwhite

syn keyword xinetdAttribute     contained banner banner_success banner_failure
                                \ nextgroup=xinetdPathEq skipwhite

syn keyword xinetdPPAttribute   include includedir
                                \ nextgroup=xinetdPath skipwhite

syn match   xinetdPathEq        contained display '='
                                \ nextgroup=xinetdPath skipwhite

syn match   xinetdPath          contained display '\S\+'

syn keyword xinetdAttribute     contained redirect nextgroup=xinetdRedirectEq
                                \ skipwhite

syn match   xinetdRedirectEq    contained display '='
                                \ nextgroup=xinetdRedirectIP skipwhite

syn match   xinetdRedirectIP    contained display '\S\+'
                                \ nextgroup=xinetdNumber skipwhite

syn keyword xinetdAttribute     contained cps nextgroup=xinetdCPSEq skipwhite

syn match   xinetdCPSEq         contained display '='
                                \ nextgroup=xinetdCPS skipwhite

syn match   xinetdCPS           contained display '\<\d\+\>'
                                \ nextgroup=xinetdNumber skipwhite

syn keyword xinetdAttribute     contained max_load nextgroup=xinetdFloatEq
                                \ skipwhite

syn match   xinetdFloatEq       contained display '='
                                \ nextgroup=xinetdFloat skipwhite

syn match   xinetdFloat         contained display '\d\+\.\d*\|\.\d\+'

syn keyword xinetdAttribute     contained umask nextgroup=xinetdOctalEq
                                \ skipwhite

syn match   xinetdOctalEq       contained display '='
                                \ nextgroup=xinetdOctal,xinetdOctalError
                                \ skipwhite

syn match   xinetdOctal         contained display '\<0\o\+\>'
                                \ contains=xinetdOctalZero
syn match   xinetdOctalZero     contained display '\<0'
syn match   xinetdOctalError    contained display '\<0\o*[89]\d*\>'

syn keyword xinetdAttribute     contained rlimit_as nextgroup=xinetdASEq
                                \ skipwhite

syn match   xinetdASEq          contained display '='
                                \ nextgroup=xinetdAS,xinetdUnlimited
                                \ skipwhite

syn match   xinetdAS            contained display '\d\+' nextgroup=xinetdASMult

syn match   xinetdASMult        contained display '[KM]'

syn keyword xinetdAttribute     contained deny_time nextgroup=xinetdDenyTimeEq
                                \ skipwhite

syn match   xinetdDenyTimeEq    contained display '='
                                \ nextgroup=xinetdDenyTime,xinetdNumber
                                \ skipwhite

syn keyword xinetdDenyTime      contained FOREVER NEVER

hi def link xinetdTodo          Todo
hi def link xinetdComment       Comment
hi def link xinetdService       Keyword
hi def link xinetdServiceName   String
hi def link xinetdDefaults      Keyword
hi def link xinetdServiceGroupD Delimiter
hi def link xinetdReqAttribute  Keyword
hi def link xinetdAttribute     Type
hi def link xinetdEq            Operator
hi def link xinetdStringEq      xinetdEq
hi def link xinetdString        String
hi def link xinetdTypeEq        xinetdEq
hi def link xinetdType          Identifier
hi def link xinetdFlagsEq       xinetdEq
hi def link xinetdFlags         xinetdType
hi def link xinetdDeprFlags     WarningMsg
hi def link xinetdDisable       Special
hi def link xinetdBooleanEq     xinetdEq
hi def link xinetdBoolean       Boolean
hi def link xinetdSocketTypeEq  xinetdEq
hi def link xinetdSocketType    xinetdType
hi def link xinetdUNumberEq     xinetdEq
hi def link xinetdUnlimited     Define
hi def link xinetdNumber        Number
hi def link xinetdSignedNumEq   xinetdEq
hi def link xinetdSignedNumber  xinetdNumber
hi def link xinetdStringsEq     xinetdEq
hi def link xinetdStrings       xinetdString
hi def link xinetdStringsAdvEq  xinetdEq
hi def link xinetdTimeRangesEq  xinetdEq
hi def link xinetdTimeRanges    Number
hi def link xinetdLogTypeEq     xinetdEq
hi def link xinetdLogType       Keyword
hi def link xinetdSyslogType    xinetdType
hi def link xinetdSyslogLevel   Number
hi def link xinetdLogFile       xinetdPath
hi def link xinetdLogSoftLimit  xinetdNumber
hi def link xinetdLogHardLimit  xinetdNumber
hi def link xinetdLogSuccessEq  xinetdEq
hi def link xinetdLogSuccess    xinetdType
hi def link xinetdLogFailureEq  xinetdEq
hi def link xinetdLogFailure    xinetdType
hi def link xinetdRPCVersionEq  xinetdEq
hi def link xinetdRPCVersion    xinetdNumber
hi def link xinetdNumberEq      xinetdEq
hi def link xinetdEnvEq         xinetdEq
hi def link xinetdEnvName       Identifier
hi def link xinetdEnvNameEq     xinetdEq
hi def link xinetdEnvValue      String
hi def link xinetdPPAttribute   PreProc
hi def link xinetdPathEq        xinetdEq
hi def link xinetdPath          String
hi def link xinetdRedirectEq    xinetdEq
hi def link xinetdRedirectIP    String
hi def link xinetdCPSEq         xinetdEq
hi def link xinetdCPS           xinetdNumber
hi def link xinetdFloatEq       xinetdEq
hi def link xinetdFloat         xinetdNumber
hi def link xinetdOctalEq       xinetdEq
hi def link xinetdOctal         xinetdNumber
hi def link xinetdOctalZero     PreProc
hi def link xinetdOctalError    Error
hi def link xinetdASEq          xinetdEq
hi def link xinetdAS            xinetdNumber
hi def link xinetdASMult        PreProc
hi def link xinetdDenyTimeEq    xinetdEq
hi def link xinetdDenyTime      PreProc

let b:current_syntax = "xinetd"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�t&�3�3vim80/syntax/mush.vimnu�[���" MUSHcode syntax file
" Maintainer: Rick Bird <nveid@nveid.com>
" Based on vim Syntax file by: Bek Oberin <gossamer@tertius.net.au>
" Last Updated: Fri Nov 04 20:28:15 2005
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


" regular mush functions

syntax keyword mushFunction contained @@ abs accent accname acos add after align
syntax keyword mushFunction contained allof alphamax alphamin and andflags
syntax keyword mushFunction contained andlflags andlpowers andpowers ansi aposs art
syntax keyword mushFunction contained asin atan atan2 atrlock attrcnt band baseconv
syntax keyword mushFunction contained beep before blank2tilde bnand bnot bor bound
syntax keyword mushFunction contained brackets break bxor cand cansee capstr case
syntax keyword mushFunction contained caseall cat ceil center checkpass children
syntax keyword mushFunction contained chr clone cmds cnetpost comp con config conn
syntax keyword mushFunction contained controls convsecs convtime convutcsecs cor
syntax keyword mushFunction contained cos create ctime ctu dec decrypt default
syntax keyword mushFunction contained delete die dig digest dist2d dist3d div
syntax keyword mushFunction contained division divscope doing downdiv dynhelp e
syntax keyword mushFunction contained edefault edit element elements elist elock
syntax keyword mushFunction contained emit empire empower encrypt endtag entrances
syntax keyword mushFunction contained eq escape etimefmt eval exit exp extract fdiv
syntax keyword mushFunction contained filter filterbool findable first firstof
syntax keyword mushFunction contained flags flip floor floordiv fmod fold
syntax keyword mushFunction contained folderstats followers following foreach
syntax keyword mushFunction contained fraction fullname functions get get_eval grab
syntax keyword mushFunction contained graball grep grepi gt gte hasattr hasattrp
syntax keyword mushFunction contained hasattrpval hasattrval hasdivpower hasflag
syntax keyword mushFunction contained haspower haspowergroup hastype height hidden
syntax keyword mushFunction contained home host hostname html idle idlesecs
syntax keyword mushFunction contained idle_average idle_times idle_total if ifelse
syntax keyword mushFunction contained ilev iname inc index indiv indivall insert
syntax keyword mushFunction contained inum ipaddr isdaylight isdbref isint isnum
syntax keyword mushFunction contained isword itemize items iter itext last lattr
syntax keyword mushFunction contained lcon lcstr ldelete ldivisions left lemit
syntax keyword mushFunction contained level lexits lflags link list lit ljust lmath
syntax keyword mushFunction contained ln lnum loc localize locate lock loctree log
syntax keyword mushFunction contained lparent lplayers lports lpos lsearch lsearchr
syntax keyword mushFunction contained lstats lt lte lthings lvcon lvexits lvplayers
syntax keyword mushFunction contained lvthings lwho mail maildstats mailfrom
syntax keyword mushFunction contained mailfstats mailstats mailstatus mailsubject
syntax keyword mushFunction contained mailtime map match matchall max mean median
syntax keyword mushFunction contained member merge mid min mix mod modulo modulus
syntax keyword mushFunction contained money mtime mudname mul munge mwho name nand
syntax keyword mushFunction contained nattr ncon nearby neq nexits next nor not
syntax keyword mushFunction contained nplayers nsemit nslemit nsoemit nspemit
syntax keyword mushFunction contained nsremit nszemit nthings null num nvcon
syntax keyword mushFunction contained nvexits nvplayers nvthings obj objeval objid
syntax keyword mushFunction contained objmem oemit ooref open or ord orflags
syntax keyword mushFunction contained orlflags orlpowers orpowers owner parent
syntax keyword mushFunction contained parse pcreate pemit pi pickrand playermem
syntax keyword mushFunction contained pmatch poll ports pos poss power powergroups
syntax keyword mushFunction contained powers powover program prompt pueblo quitprog
syntax keyword mushFunction contained quota r rand randword recv regedit regeditall
syntax keyword mushFunction contained regeditalli regediti regmatch regmatchi
syntax keyword mushFunction contained regrab regraball regraballi regrabi regrep
syntax keyword mushFunction contained regrepi remainder remit remove repeat replace
syntax keyword mushFunction contained rest restarts restarttime reswitch
syntax keyword mushFunction contained reswitchall reswitchalli reswitchi reverse
syntax keyword mushFunction contained revwords right rjust rloc rnum room root
syntax keyword mushFunction contained round s scan scramble search secs secure sent
syntax keyword mushFunction contained set setdiff setinter setq setr setunion sha0
syntax keyword mushFunction contained shl shr shuffle sign signal sin sort sortby
syntax keyword mushFunction contained soundex soundlike soundslike space spellnum
syntax keyword mushFunction contained splice sql sqlescape sqrt squish ssl
syntax keyword mushFunction contained starttime stats stddev step strcat strinsert
syntax keyword mushFunction contained stripaccents stripansi strlen strmatch
syntax keyword mushFunction contained strreplace sub subj switch switchall t table
syntax keyword mushFunction contained tag tagwrap tan tel terminfo textfile
syntax keyword mushFunction contained tilde2blank time timefmt timestring tr
syntax keyword mushFunction contained trigger trim trimpenn trimtiny trunc type u
syntax keyword mushFunction contained ucstr udefault ufun uldefault ulocal updiv
syntax keyword mushFunction contained utctime v vadd val valid vcross vdim vdot
syntax keyword mushFunction contained version visible vmag vmax vmin vmul vsub
syntax keyword mushFunction contained vtattr vtcount vtcreate vtdestroy vtlcon
syntax keyword mushFunction contained vtloc vtlocate vtmaster vtname vtref vttel
syntax keyword mushFunction contained vunit wait where width wipe wordpos words
syntax keyword mushFunction contained wrap xcon xexits xget xor xplayers xthings
syntax keyword mushFunction contained xvcon xvexits xvplayers xvthings zemit zfun
syntax keyword mushFunction contained zmwho zone zwho

" only highligh functions when they have an in-bracket immediately after
syntax match mushFunctionBrackets  "\i*(" contains=mushFunction
"
" regular mush commands
syntax keyword mushAtCommandList contained @ALLHALT @ALLQUOTA @ASSERT @ATRCHOWN @ATRLOCK @ATTRIBUTE @BOOT 
syntax keyword mushAtCommandList contained @BREAK @CEMIT @CHANNEL @CHAT @CHOWN @CHOWNALL @CHZONE @CHZONEALL 
syntax keyword mushAtCommandList contained @CLOCK @CLONE @COBJ @COMMAND @CONFIG @CPATTR @CREATE @CRPLOG @DBCK
syntax keyword mushAtCommandList contained @DECOMPILE @DESTROY @DIG @DISABLE @DIVISION @DOING @DOLIST @DRAIN 
syntax keyword mushAtCommandList contained @DUMP @EDIT @ELOCK @EMIT @EMPOWER @ENABLE @ENTRANCES @EUNLOCK @FIND 
syntax keyword mushAtCommandList contained @FIRSTEXIT @FLAG @FORCE @FUNCTION @EDIT @GREP @HALT @HIDE @HOOK @KICK 
syntax keyword mushAtCommandList contained @LEMIT @LEVEL @LINK @LIST @LISTMOTD @LOCK @LOG @LOGWIPE @LSET @MAIL @MALIAS 
syntax keyword mushAtCommandList contained @MAP @MOTD @MVATTR @NAME @NEWPASSWORD @NOTIFY @NSCEMIT @NSEMIT @NSLEMIT 
syntax keyword mushAtCommandList contained @NSOEMIT @NSPEMIT @NSPEMIT @NSREMIT @NSZEMIT @NUKE @OEMIT @OPEN @PARENT @PASSWORD
syntax keyword mushAtCommandList contained @PCREATE @PEMIT @POLL @POOR @POWERLEVEL @PROGRAM @PROMPT @PS @PURGE @QUOTA 
syntax keyword mushAtCommandList contained @READCACHE @RECYCLE @REJECTMOTD @REMIT @RESTART @SCAN @SEARCH @SELECT @SET 
syntax keyword mushAtCommandList contained @SHUTDOWN @SITELOCK @SNOOP @SQL @SQUOTA @STATS @SWITCH @SWEEP @SWITCH @TELEPORT 
syntax keyword mushAtCommandList contained @TRIGGER @ULOCK @UNDESTROY @UNLINK @UNLOCK @UNRECYCLE @UPTIME @UUNLOCK @VERB 
syntax keyword mushAtCommandList contained @VERSION @WAIT @WALL @WARNINGS @WCHECK @WHEREIS @WIPE @ZCLONE @ZEMIT
syntax match mushCommand  "@\i\I*" contains=mushAtCommandList


syntax keyword mushCommand AHELP ANEWS ATTRIB_SET BRIEF BRIEF BUY CHANGES DESERT
syntax keyword mushCommand DISMISS DROP EMPTY ENTER EXAMINE FOLLOW GET GIVE GOTO 
syntax keyword mushCommand HELP HUH_COMMAND INVENTORY INVENTORY LOOK LEAVE LOOK
syntax keyword mushCommand GOTO NEWS PAGE PAGE POSE RULES SAY SCORE SEMIPOSE 
syntax keyword mushCommand SPECIALNEWS TAKE TEACH THINK UNFOLLOW USE WHISPER WHISPER
syntax keyword mushCommand WARN_ON_MISSING WHISPER WITH

syntax match mushSpecial     "\*\|!\|=\|-\|\\\|+"
syntax match mushSpecial2 contained     "\*"

syn region    mushString         start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=mushSpecial,mushSpecial2,@Spell


syntax match mushIdentifier   "&[^ ]\+"

syntax match mushVariable   "%r\|%t\|%cr\|%[A-Za-z0-9]\+\|%#\|##\|here"

" numbers
syntax match mushNumber	+[0-9]\++

" A comment line starts with a or # or " at the start of the line
" or an @@
syntax keyword mushTodo contained	TODO FIXME XXX
syntax cluster mushCommentGroup contains=mushTodo
syntax match	mushComment	"^\s*@@.*$"	contains=mushTodo
syntax match mushComment "^#[^define|^ifdef|^else|^pragma|^ifndef|^echo|^elif|^undef|^warning].*$" contains=mushTodo
syntax match mushComment "^#$" contains=mushTodo
syntax region mushComment        matchgroup=mushCommentStart start="/@@" end="@@/" contains=@mushCommentGroup,mushCommentStartError,mushCommentString,@Spell
syntax region mushCommentString  contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+@@/+me=s-1 contains=mushCommentSkip
syntax match  mushCommentSkip    contained "^\s*@@\($\|\s\+\)"


syntax match mushCommentStartError display "/@@"me=e-1 contained

" syntax match	mushComment	+^".*$+	contains=mushTodo
" Work on this one
" syntax match	mushComment	+^#.*$+	contains=mushTodo

syn region      mushPreCondit      start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=mushComment
syn match       mushPreCondit      display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"

syn cluster     mushPreProcGroup   contains=mushPreCondit,mushIncluded,mushInclude,mushDefine,mushSpecial,mushString,mushCommentSkip,mushCommentString,@mushCommentGroup,mushCommentStartError

syn region      mushIncluded       display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match       mushIncluded       display contained "<[^>]*>"
syn match       mushInclude        display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=mushIncluded
syn region	mushDefine		start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@mushPreProcGroup,@Spell
syn region	mushPreProc	start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@mushPreProcGroup


syntax region	mushFuncBoundaries start="\[" end="\]" contains=mushFunction,mushFlag,mushAttributes,mushNumber,mushCommand,mushVariable,mushSpecial2

" FLAGS
syntax keyword mushFlag PLAYER ABODE BUILDER CHOWN_OK DARK FLOATING
syntax keyword mushFlag GOING HAVEN INHERIT JUMP_OK KEY LINK_OK MONITOR
syntax keyword mushFlag NOSPOOF OPAQUE QUIET STICKY TRACE UNFINDABLE VISUAL
syntax keyword mushFlag WIZARD PARENT_OK ZONE AUDIBLE CONNECTED DESTROY_OK
syntax keyword mushFlag ENTER_OK HALTED IMMORTAL LIGHT MYOPIC PUPPET TERSE
syntax keyword mushFlag ROBOT SAFE TRANSPARENT VERBOSE CONTROL_OK COMMANDS

syntax keyword mushAttribute aahear aclone aconnect adesc adfail adisconnect
syntax keyword mushAttribute adrop aefail aenter afail agfail ahear akill
syntax keyword mushAttribute aleave alfail alias amhear amove apay arfail
syntax keyword mushAttribute asucc atfail atport aufail ause away charges
syntax keyword mushAttribute cost desc dfail drop ealias efail enter fail
syntax keyword mushAttribute filter forwardlist gfail idesc idle infilter
syntax keyword mushAttribute inprefix kill lalias last lastsite leave lfail
syntax keyword mushAttribute listen move odesc odfail odrop oefail oenter
syntax keyword mushAttribute ofail ogfail okill oleave olfail omove opay
syntax keyword mushAttribute orfail osucc otfail otport oufail ouse oxenter
syntax keyword mushAttribute oxleave oxtport pay prefix reject rfail runout
syntax keyword mushAttribute semaphore sex startup succ tfail tport ufail
syntax keyword mushAttribute use va vb vc vd ve vf vg vh vi vj vk vl vm vn
syntax keyword mushAttribute vo vp vq vr vs vt vu vv vw vx vy vz



" The default methods for highlighting.  Can be overridden later
hi def link mushAttribute  Constant
hi def link mushCommand    Function
hi def link mushNumber     Number
hi def link mushSetting    PreProc
hi def link mushFunction   Statement
hi def link mushVariable   Identifier
hi def link mushSpecial    Special
hi def link mushTodo       Todo
hi def link mushFlag       Special
hi def link mushIdentifier Identifier
hi def link mushDefine     Macro
hi def link mushPreProc    PreProc
hi def link mushPreProcGroup PreProc 
hi def link mushPreCondit PreCondit
hi def link mushIncluded cString
hi def link mushInclude Include



" Comments
hi def link mushCommentStart mushComment
hi def link mushComment    Comment
hi def link mushCommentString mushString



let b:current_syntax = "mush"

" mush: ts=17
PK�j�Z��++vim80/syntax/sqlhana.vimnu�[���" 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
"
" quit when a syntax file was already loaded
if 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:
PK�j�Zg=��vim80/syntax/slrnsc.vimnu�[���" Vim syntax file
" Language:	Slrn score file (based on slrn 0.9.8.0)
" Maintainer:	Preben 'Peppe' Guldberg <peppe@wielders.org>
" Last Change:	8 Oct 2004

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" characters in newsgroup names
setlocal isk=@,48-57,.,-,_,+

syn match slrnscComment		"%.*$"
syn match slrnscSectionCom	".].*"lc=2

syn match slrnscGroup		contained "\(\k\|\*\)\+"
syn match slrnscNumber		contained "\d\+"
syn match slrnscDate		contained "\(\d\{1,2}[-/]\)\{2}\d\{4}"
syn match slrnscDelim		contained ":"
syn match slrnscComma		contained ","
syn match slrnscOper		contained "\~"
syn match slrnscEsc		contained "\\[ecC<>.]"
syn match slrnscEsc		contained "[?^]"
syn match slrnscEsc		contained "[^\\]$\s*$"lc=1

syn keyword slrnscInclude	contained include
syn match slrnscIncludeLine	"^\s*Include\s\+\S.*$"

syn region slrnscSection	matchgroup=slrnscSectionStd start="^\s*\[" end='\]' contains=slrnscGroup,slrnscComma,slrnscSectionCom
syn region slrnscSection	matchgroup=slrnscSectionNot start="^\s*\[\~" end='\]' contains=slrnscGroup,slrnscCommas,slrnscSectionCom

syn keyword slrnscItem		contained Age Bytes Date Expires From Has-Body Lines Message-Id Newsgroup References Subject Xref

syn match slrnscScoreItem	contained "%.*$"						skipempty nextgroup=slrnscScoreItem contains=slrnscComment
syn match slrnscScoreItem	contained "^\s*Expires:\s*\(\d\{1,2}[-/]\)\{2}\d\{4}\s*$"	skipempty nextgroup=slrnscScoreItem contains=slrnscItem,slrnscDelim,slrnscDate
syn match slrnscScoreItem	contained "^\s*\~\=\(Age\|Bytes\|Has-Body\|Lines\):\s*\d\+\s*$"	skipempty nextgroup=slrnscScoreItem contains=slrnscOper,slrnscItem,slrnscDelim,slrnscNumber
syn match slrnscScoreItemFill	contained ".*$"							skipempty nextgroup=slrnscScoreItem contains=slrnscEsc
syn match slrnscScoreItem	contained "^\s*\~\=\(Date\|From\|Message-Id\|Newsgroup\|References\|Subject\|Xref\):"	nextgroup=slrnscScoreItemFill contains=slrnscOper,slrnscItem,slrnscDelim
syn region slrnscScoreItem	contained matchgroup=Special start="^\s*\~\={::\=" end="^\s*}" skipempty nextgroup=slrnscScoreItem contains=slrnscScoreItem

syn keyword slrnscScore		contained Score
syn match slrnscScoreIdent	contained "%.*"
syn match slrnScoreLine		"^\s*Score::\=\s\+=\=[-+]\=\d\+\s*\(%.*\)\=$" skipempty nextgroup=slrnscScoreItem contains=slrnscScore,slrnscDelim,slrnscOper,slrnscNumber,slrnscScoreIdent

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link slrnscComment		Comment
hi def link slrnscSectionCom	slrnscComment
hi def link slrnscGroup		String
hi def link slrnscNumber		Number
hi def link slrnscDate		Special
hi def link slrnscDelim		Delimiter
hi def link slrnscComma		SpecialChar
hi def link slrnscOper		SpecialChar
hi def link slrnscEsc		String
hi def link slrnscSectionStd	Type
hi def link slrnscSectionNot	Delimiter
hi def link slrnscItem		Statement
hi def link slrnscScore		Keyword
hi def link slrnscScoreIdent	Identifier
hi def link slrnscInclude		Keyword


let b:current_syntax = "slrnsc"

"EOF	vim: ts=8 noet tw=200 sw=8 sts=0
PK�j�ZT.���vim80/syntax/lout.vimnu�[���" Vim syntax file
" Language:    Lout
" Maintainer:  Christian V. J. Br�ssow <cvjb@cvjb.de>
" Last Change: So 12 Feb 2012 15:15:03 CET
" Filenames:   *.lout,*.lt
" URL:         http://www.cvjb.de/comp/vim/lout.vim

" $Id: lout.vim,v 1.4 2012/02/12 15:16:17 bruessow Exp $
"
" Lout: Basser Lout document formatting system.

" Many Thanks to...
" 
" 2012-02-12:
" Thilo Six <T.Six at gmx dot de> send a patch for cpoptions.
" See the discussion at http://thread.gmane.org/gmane.editors.vim.devel/32151


" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

let s:cpo_save=&cpo
set cpo&vim

" Lout is case sensitive
syn case match

" Synchronization, I know it is a huge number, but normal texts can be
" _very_ long ;-)
syn sync lines=1000

" Characters allowed in keywords
" I don't know if 128-255 are allowed in ANS-FORHT
setlocal iskeyword=@,48-57,.,@-@,_,192-255

" Some special keywords
syn keyword loutTodo contained TODO lout Lout LOUT
syn keyword loutDefine def macro

" Some big structures
syn keyword loutKeyword @Begin @End @Figure @Tab
syn keyword loutKeyword @Book @Doc @Document @Report
syn keyword loutKeyword @Introduction @Abstract @Appendix
syn keyword loutKeyword @Chapter @Section @BeginSections @EndSections

" All kind of Lout keywords
syn match loutFunction '\<@[^ \t{}]\+\>'

" Braces -- Don`t edit these lines!
syn match loutMBraces '[{}]'
syn match loutIBraces '[{}]'
syn match loutBBrace '[{}]'
syn match loutBIBraces '[{}]'
syn match loutHeads '[{}]'

" Unmatched braces.
syn match loutBraceError '}'

" End of multi-line definitions, like @Document, @Report and @Book.
syn match loutEOmlDef '^//$'

" Grouping of parameters and objects.
syn region loutObject transparent matchgroup=Delimiter start='{' matchgroup=Delimiter end='}' contains=ALLBUT,loutBraceError

" The NULL object has a special meaning
syn keyword loutNULL {}

" Comments
syn region loutComment start='\#' end='$' contains=loutTodo

" Double quotes
syn region loutSpecial start=+"+ skip=+\\\\\|\\"+ end=+"+

" ISO-LATIN-1 characters created with @Char, or Adobe symbols
" created with @Sym
syn match loutSymbols '@\(\(Char\)\|\(Sym\)\)\s\+[A-Za-z]\+'

" Include files
syn match loutInclude '@IncludeGraphic\s\+\k\+'
syn region loutInclude start='@\(\(SysInclude\)\|\(IncludeGraphic\)\|\(Include\)\)\s*{' end='}'

" Tags
syn match loutTag '@\(\(Tag\)\|\(PageMark\)\|\(PageOf\)\|\(NumberOf\)\)\s\+\k\+'
syn region loutTag start='@Tag\s*{' end='}'

" Equations
syn match loutMath '@Eq\s\+\k\+'
syn region loutMath matchgroup=loutMBraces start='@Eq\s*{' matchgroup=loutMBraces end='}' contains=ALLBUT,loutBraceError
"
" Fonts
syn match loutItalic '@I\s\+\k\+'
syn region loutItalic matchgroup=loutIBraces start='@I\s*{' matchgroup=loutIBraces end='}' contains=ALLBUT,loutBraceError
syn match loutBold '@B\s\+\k\+'
syn region loutBold matchgroup=loutBBraces start='@B\s*{' matchgroup=loutBBraces end='}' contains=ALLBUT,loutBraceError
syn match loutBoldItalic '@BI\s\+\k\+'
syn region loutBoldItalic matchgroup=loutBIBraces start='@BI\s*{' matchgroup=loutBIBraces end='}' contains=ALLBUT,loutBraceError
syn region loutHeadings matchgroup=loutHeads start='@\(\(Title\)\|\(Caption\)\)\s*{' matchgroup=loutHeads end='}' contains=ALLBUT,loutBraceError

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting. Can be overrriden later.
hi def link loutTodo Todo
hi def link loutDefine Define
hi def link loutEOmlDef Define
hi def link loutFunction Function
hi def link loutBraceError Error
hi def link loutNULL Special
hi def link loutComment Comment
hi def link loutSpecial Special
hi def link loutSymbols Character
hi def link loutInclude Include
hi def link loutKeyword Keyword
hi def link loutTag Tag
hi def link loutMath Number

hi def link loutMBraces loutMath
hi loutItalic term=italic cterm=italic gui=italic
hi def link loutIBraces loutItalic
hi loutBold term=bold cterm=bold gui=bold
hi def link loutBBraces loutBold
hi loutBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
hi def link loutBIBraces loutBoldItalic
hi loutHeadings term=bold cterm=bold guifg=indianred
hi def link loutHeads loutHeadings


let b:current_syntax = "lout"

let &cpo=s:cpo_save
unlet s:cpo_save

" vim:ts=8:sw=4:nocindent:smartindent:
PK�j�Z���ssvim80/syntax/pod.vimnu�[���" Vim syntax file
" Language:      Perl POD format
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Previously:    Scott Bigham <dsb@killerbunnies.org>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2017-09-12

" To add embedded POD documentation highlighting to your syntax file, add
" the commands:
"
"   syn include @Pod <sfile>:p:h/pod.vim
"   syn region myPOD start="^=pod" start="^=head" end="^=cut" keepend contained contains=@Pod
"
" and add myPod to the contains= list of some existing region, probably a
" comment.  The "keepend" flag is needed because "=cut" is matched as a
" pattern in its own right.


" Remove any old syntax stuff hanging around (this is suppressed
" automatically by ":syn include" if necessary).
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" POD commands
syn match podCommand    "^=encoding"  nextgroup=podCmdText contains=@NoSpell
syn match podCommand    "^=head[1234]"  nextgroup=podCmdText contains=@NoSpell
syn match podCommand    "^=item"        nextgroup=podCmdText contains=@NoSpell
syn match podCommand    "^=over"        nextgroup=podOverIndent skipwhite contains=@NoSpell
syn match podCommand    "^=back"        contains=@NoSpell
syn match podCommand    "^=cut"         contains=@NoSpell
syn match podCommand    "^=pod"         contains=@NoSpell
syn match podCommand    "^=for"         nextgroup=podForKeywd skipwhite contains=@NoSpell
syn match podCommand    "^=begin"       nextgroup=podForKeywd skipwhite contains=@NoSpell
syn match podCommand    "^=end"         nextgroup=podForKeywd skipwhite contains=@NoSpell

" Text of a =head1, =head2 or =item command
syn match podCmdText	".*$" contained contains=podFormat,@NoSpell

" Indent amount of =over command
syn match podOverIndent	"\d\+" contained contains=@NoSpell

" Formatter identifier keyword for =for, =begin and =end commands
syn match podForKeywd	"\S\+" contained contains=@NoSpell

" An indented line, to be displayed verbatim
syn match podVerbatimLine	"^\s.*$" contains=@NoSpell

" Inline textual items handled specially by POD
syn match podSpecial	"\(\<\|&\)\I\i*\(::\I\i*\)*([^)]*)" contains=@NoSpell
syn match podSpecial	"[$@%]\I\i*\(::\I\i*\)*\>" contains=@NoSpell

" Special formatting sequences
syn region podFormat	start="[IBSCLFX]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell
syn region podFormat	start="[IBSCLFX]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell
syn match  podFormat	"Z<>"
syn match  podFormat	"E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell
syn match  podEscape	"\I\i*>"me=e-1 contained contains=@NoSpell
syn match  podEscape2	"\d\+>"me=e-1 contained contains=@NoSpell

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link podCommand		Statement
hi def link podCmdText		String
hi def link podOverIndent	Number
hi def link podForKeywd		Identifier
hi def link podFormat		Identifier
hi def link podVerbatimLine	PreProc
hi def link podSpecial		Identifier
hi def link podEscape		String
hi def link podEscape2		Number

if exists("perl_pod_spellcheck_headings")
  " Spell-check headings
  syn clear podCmdText
  syn match podCmdText    ".*$" contained contains=podFormat
endif

if exists("perl_pod_formatting")
  " By default, escapes like C<> are not checked for spelling. Remove B<>
  " and I<> from the list of escapes.
  syn clear podFormat
  syn region podFormat start="[CLF]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell
  syn region podFormat start="[CLF]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell

  " Don't spell-check inside E<>, but ensure that the E< itself isn't
  " marked as a spelling mistake.
  syn match podFormat   "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell

  " Z<> is a mock formatting code. Ensure Z<> on its own isn't marked as a
  " spelling mistake.
  syn match podFormat   "Z<>" contains=podEscape,podEscape2,@NoSpell

  " These are required so that whatever is *within* B<...>, I<...>, etc. is
  " spell-checked, but not the B, I, ... itself.
  syn match podBoldOpen    "B<" contains=@NoSpell
  syn match podItalicOpen  "I<" contains=@NoSpell
  syn match podNoSpaceOpen "S<" contains=@NoSpell
  syn match podIndexOpen   "X<" contains=@NoSpell

  " Same as above but for the << >> syntax.
  syn match podBoldAlternativeDelimOpen    "B<< " contains=@NoSpell
  syn match podItalicAlternativeDelimOpen  "I<< " contains=@NoSpell
  syn match podNoSpaceAlternativeDelimOpen "S<< " contains=@NoSpell
  syn match podIndexAlternativeDelimOpen   "X<< " contains=@NoSpell

  " Add support for spell checking text inside B<>, I<>, S<> and X<>.
  syn region podBold start="B<[^<]"me=e end=">" oneline contains=podBoldItalic,podBoldOpen
  syn region podBoldAlternativeDelim start="B<<\s" end="\s>>" oneline contains=podBoldAlternativeDelimOpen

  syn region podItalic start="I<[^<]"me=e end=">" oneline contains=podItalicBold,podItalicOpen
  syn region podItalicAlternativeDelim start="I<<\s" end="\s>>" oneline contains=podItalicAlternativeDelimOpen

  " Nested bold/italic and vice-versa
  syn region podBoldItalic contained start="I<[^<]"me=e end=">" oneline
  syn region podItalicBold contained start="B<[^<]"me=e end=">" oneline

  syn region podNoSpace start="S<[^<]"ms=s-2 end=">"me=e oneline contains=podNoSpaceOpen
  syn region podNoSpaceAlternativeDelim start="S<<\s"ms=s-2 end="\s>>"me=e oneline contains=podNoSpaceAlternativeDelimOpen

  syn region podIndex start="X<[^<]"ms=s-2 end=">"me=e oneline contains=podIndexOpen
  syn region podIndexAlternativeDelim start="X<<\s"ms=s-2 end="\s>>"me=e oneline contains=podIndexAlternativeDelimOpen

  " Restore this (otherwise B<> is shown as bold inside verbatim)
  syn match podVerbatimLine	"^\s.*$" contains=@NoSpell

  " Ensure formatted text can be displayed in headings and items
  syn clear podCmdText

  if exists("perl_pod_spellcheck_headings")
    syn match podCmdText ".*$" contained contains=podFormat,podBold,
          \podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
          \podBoldOpen,podItalicOpen,podBoldAlternativeDelimOpen,
          \podItalicAlternativeDelimOpen,podNoSpaceOpen
  else
    syn match podCmdText ".*$" contained contains=podFormat,podBold,
          \podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
          \@NoSpell
  endif

  " Specify how to display these
  hi def podBold term=bold cterm=bold gui=bold

  hi link podBoldAlternativeDelim podBold
  hi link podBoldAlternativeDelimOpen podBold
  hi link podBoldOpen podBold

  hi link podNoSpace                 Identifier
  hi link podNoSpaceAlternativeDelim Identifier

  hi link podIndex                   Identifier
  hi link podIndexAlternativeDelim   Identifier

  hi def podItalic term=italic cterm=italic gui=italic

  hi link podItalicAlternativeDelim podItalic
  hi link podItalicAlternativeDelimOpen podItalic
  hi link podItalicOpen podItalic

  hi def podBoldItalic term=italic,bold cterm=italic,bold gui=italic,bold
  hi def podItalicBold term=italic,bold cterm=italic,bold gui=italic,bold
endif

let b:current_syntax = "pod"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Zs�X��vim80/syntax/crm.vimnu�[���" Vim syntax file
" Language:             CRM114
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword crmTodo       contained TODO FIXME XXX NOTE

syn region  crmComment    display oneline start='#' end='\\#'
                          \ contains=crmTodo,@Spell

syn match   crmVariable   display ':[*#@]:[^:]\{-1,}:'

syn match   crmSpecial    display '\\\%(x\x\x\|o\o\o\o\|[]nrtabvf0>)};/\\]\)'

syn keyword crmStatement  insert noop accept alius alter classify eval exit
syn keyword crmStatement  fail fault goto hash intersect isolate input learn
syn keyword crmStatement  liaf match output syscall trap union window

syn region  crmRegex      start='/' skip='\\/' end='/' contains=crmVariable

syn match   crmLabel      display '^\s*:[[:graph:]]\+:'

hi def link crmTodo       Todo
hi def link crmComment    Comment
hi def link crmVariable   Identifier
hi def link crmSpecial    SpecialChar
hi def link crmStatement  Statement
hi def link crmRegex      String
hi def link crmLabel      Label

let b:current_syntax = "crm"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�64��vim80/syntax/robots.vimnu�[���" Vim syntax file
" Language:	"Robots.txt" files
" Robots.txt files indicate to WWW robots which parts of a web site should not be accessed.
" Maintainer:	Dominique St�phan (dominique@mggen.com)
" URL: http://www.mggen.com/vim/syntax/robots.zip
" Last change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif


" shut case off
syn case ignore

" Comment
syn match  robotsComment	"#.*$" contains=robotsUrl,robotsMail,robotsString

" Star * (means all spiders)
syn match  robotsStar		"\*"

" :
syn match  robotsDelimiter	":"


" The keywords
" User-agent
syn match  robotsAgent		"^[Uu][Ss][Ee][Rr]\-[Aa][Gg][Ee][Nn][Tt]"
" Disallow
syn match  robotsDisallow	"^[Dd][Ii][Ss][Aa][Ll][Ll][Oo][Ww]"

" Disallow: or User-Agent: and the rest of the line before an eventual comment
synt match robotsLine		"\(^[Uu][Ss][Ee][Rr]\-[Aa][Gg][Ee][Nn][Tt]\|^[Dd][Ii][Ss][Aa][Ll][Ll][Oo][Ww]\):[^#]*"	contains=robotsAgent,robotsDisallow,robotsStar,robotsDelimiter

" Some frequent things in comments
syn match  robotsUrl		"http[s]\=://\S*"
syn match  robotsMail		"\S*@\S*"
syn region robotsString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+


hi def link robotsComment		Comment
hi def link robotsAgent		Type
hi def link robotsDisallow		Statement
hi def link robotsLine		Special
hi def link robotsStar		Operator
hi def link robotsDelimiter	Delimiter
hi def link robotsUrl		String
hi def link robotsMail		String
hi def link robotsString		String



let b:current_syntax = "robots"

" vim: ts=8 sw=2

PK�j�Z̝�=�)�)vim80/syntax/hog.vimnu�[���" Vim syntax file
" Language: hog (Snort.conf + .rules)
" Maintainer: Victor Roemer, <vroemer@badsec.org>.
" Last Change: 2015 Oct 24  -> Rename syntax items from Snort -> Hog
"              2012 Oct 24  -> Originalish release

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

setlocal iskeyword-=:
setlocal iskeyword+=-
syn case ignore

" Hog ruletype crap
syn keyword     HogRuleType       ruletype nextgroup=HogRuleTypeName skipwhite
syn match       HogRuleTypeName   "[[:alnum:]_]\+" contained nextgroup=HogRuleTypeBody skipwhite
syn region      HogRuleTypeBody   start="{" end="}" contained contains=HogRuleTypeType,HogOutput fold
syn keyword     HogRuleTypeType   type contained

" Hog Configurables
syn keyword     HogPreproc    preprocessor nextgroup=HogConfigName skipwhite
syn keyword     HogConfig     config nextgroup=HogConfigName skipwhite
syn keyword     HogOutput     output nextgroup=HogConfigName skipwhite
syn match       HogConfigName "[[:alnum:]_-]\+" contained nextgroup=HogConfigOpts skipwhite
syn region      HogConfigOpts start=":" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold keepend contained contains=HogSpecial,HogNumber,HogIPAddr,HogVar,HogComment

" Event filter's and threshold's
syn region      HogEvFilter         start="event_filter\|threshold" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold transparent keepend contains=HogEvFilterKeyword,HogEvFilterOptions,HogComment
syn keyword     HogEvFilterKeyword  skipwhite event_filter threshold
syn keyword     HogEvFilterOptions  skipwhite type nextgroup=HogEvFilterTypes
syn keyword     HogEvFilterTypes    skipwhite limit threshold both contained
syn keyword     HogEvFilterOptions  skipwhite track nextgroup=HogEvFilterTrack
syn keyword     HogEvFilterTrack    skipwhite by_src by_dst contained
syn keyword     HogEvFilterOptions  skipwhite gen_id sig_id count seconds nextgroup=HogNumber

" Suppressions
syn region      HogEvFilter         start="suppress" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold transparent keepend contains=HogSuppressKeyword,HogComment
syn keyword     HogSuppressKeyword  skipwhite suppress
syn keyword     HogSuppressOptions  skipwhite gen_id sig_id nextgroup=HogNumber
syn keyword     HogSuppressOptions  skipwhite track nextgroup=HogEvFilterTrack
syn keyword     HogSuppressOptions  skipwhite ip nextgroup=HogIPAddr

" Attribute table
syn keyword     HogAttribute        attribute_table nextgroup=HogAttributeFile
syn match       HogAttributeFile    contained ".*$" contains=HogVar,HogAttributeType,HogComment
syn keyword     HogAttributeType    filename

" Hog includes
syn keyword     HogInclude    include nextgroup=HogIncludeFile skipwhite
syn match       HogIncludeFile ".*$" contained contains=HogVar,HogComment

" Hog dynamic libraries
syn keyword     HogDylib      dynamicpreprocessor dynamicengine dynamicdetection nextgroup=HogDylibFile skipwhite
syn match       HogDylibFile  "\s.*$" contained contains=HogVar,HogDylibType,HogComment
syn keyword     HogDylibType  directory file contained

" Variable dereferenced with '$'
syn match       HogVar        "\$[[:alnum:]_]\+"

", Variables declared with 'var'
syn keyword     HogVarType    var nextgroup=HogVarSet skipwhite
syn match       HogVarSet     "[[:alnum:]_]\+" display contained nextgroup=HogVarValue skipwhite
syn match       HogVarValue   ".*$" contained contains=HogString,HogNumber,HogVar,HogComment

" Variables declared with 'ipvar'
syn keyword     HogIPVarType  ipvar nextgroup=HogIPVarSet skipwhite
syn match       HogIPVarSet   "[[:alnum:]_]\+" display contained nextgroup=HogIPVarList,HogSpecial skipwhite
syn region      HogIPVarList  start="\[" end="]" contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot

" Variables declared with 'portvar'
syn keyword     HogPortVarType portvar nextgroup=HogPortVarSet skipwhite
syn match       HogPortVarSet "[[:alnum:]_]\+" display contained nextgroup=HogPortVarList,HogPort,HogOpRange,HogOpNot,HogSpecial skipwhite
syn region      HogPortVarList start="\[" end="]" contains=HogPortVarList,HogVar,HogOpNot,HogPort,HogOpRange,HogOpNot
syn match       HogPort       "\<\%(\d\+\|any\)\>" display contains=HogOpRange nextgroup=HogOpRange

" Generic stuff
syn match       HogIPAddr     contained "\<\%(\d\{1,3}\(\.\d\{1,3}\)\{3}\|any\)\>" nextgroup=HogIPCidr
syn match       HogIPAddr     contained "\<\d\{1,3}\(\.\d\{1,3}\)\{3}\>" nextgroup=HogIPCidr
syn match       HogIPCidr     contained "\/\([0-2][0-9]\=\|3[0-2]\=\)"
syn region      HogHexEsc     contained start='|' end='|' oneline
syn region      HogString     contained start='"' end='"' extend oneline contains=HogHexEsc
syn match       HogNumber     contained display "\<\d\+\>"
syn match       HogNumber     contained display "\<\d\+\>"
syn match       HogNumber     contained display "0x\x\+\>"
syn keyword     HogSpecial    contained true false yes no default all any
syn keyword     HogSpecialAny contained any
syn match       HogOpNot      "!" contained
syn match       HogOpRange    ":" contained

" Rules
syn keyword     HogRuleAction     activate alert drop block dynamic log pass reject sdrop sblock skipwhite nextgroup=HogRuleProto,HogRuleBlock
syn keyword     HogRuleProto      ip tcp udp icmp skipwhite contained nextgroup=HogRuleSrcIP
syn match       HogRuleSrcIP      "\S\+" transparent skipwhite contained contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot nextgroup=HogRuleSrcPort
syn match       HogRuleSrcPort    "\S\+" transparent skipwhite contained contains=HogPortVarList,HogVar,HogPort,HogOpRange,HogOpNot nextgroup=HogRuleDir
syn match       HogRuleDir        "->\|<>" skipwhite contained nextgroup=HogRuleDstIP
syn match       HogRuleDstIP      "\S\+" transparent skipwhite contained contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot nextgroup=HogRuleDstPort
syn match       HogRuleDstPort    "\S\+" transparent skipwhite contained contains=HogPortVarList,HogVar,HogPort,HogOpRange,HogOpNot nextgroup=HogRuleBlock
syn region      HogRuleBlock      start="(" end=")" transparent skipwhite contained contains=HogRuleOption,HogComment fold
",HogString,HogComment,HogVar,HogOptNot
"syn region      HogRuleOption     start="\<gid\|sid\|rev\|depth\|offset\|distance\|within\>" end="\ze;" skipwhite contained contains=HogNumber
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP msg gid sid rev classtype priority metadata content nocase rawbytes
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP depth offset distance within http_client_body http_cookie http_raw_cookie http_header
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP http_raw_header http_method http_uri http_raw_uri http_stat_code http_stat_msg
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP fast_pattern uricontent urilen isdataat pcre pkt_data file_data base64_decode base64_data
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP byte_test byte_jump byte_extract ftpbounce asn1 cvs dce_iface dce_opnum dce_stub_data
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP sip_method sip_stat_code sip_header sip_body gtp_type gtp_info gtp_version ssl_version
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP ssl_state fragoffset ttl tos id ipopts fragbits dsize flags flow flowbits seq ack window
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP itype icode icmp_id icmp_seq rpc ip_proto sameip stream_reassemble stream_size
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP logto session resp react tag activates activated_by count replace detection_filter
syn keyword     HogRuleOption   skipwhite contained nextgroup=HogRuleSROP threshold reference sd_pattern file_type file_group

syn region      HogRuleSROP     start=':' end=";" transparent keepend contained contains=HogRuleChars,HogString,HogNumber
syn match       HogRuleChars    "\%(\k\|\.\|?\|=\|/\|%\|&\)\+" contained
syn match       HogURLChars     "\%(\.\|?\|=\)\+" contained

" Hog File Type Rules
syn match       HogFileType   /^\s*file.*$/ transparent contains=HogFileTypeOpt,HogFileFROP
syn keyword     HogFileTypeOpt  skipwhite contained nextgroup=HogRuleFROP file type ver category id rev content offset msg group 
syn region      HogFileFROP  start=':' end=";" transparent keepend contained contains=NotASemicoln
syn match       NotASemiColn   ".*$" contained


" Comments
syn keyword HogTodo   XXX TODO NOTE contained
syn match   HogTodo   "Step\s\+#\=\d\+" contained
syn region HogComment start="#" end="$" contains=HogTodo,@Spell

syn case match

if !exists("hog_minlines")
    let hog_minlines = 100
endif
exec "syn sync minlines=" . hog_minlines

hi link HogRuleType           Statement
hi link HogRuleTypeName       Type
hi link HogRuleTypeType       Keyword

hi link HogPreproc            Statement
hi link HogConfig             Statement
hi link HogOutput             Statement
hi link HogConfigName         Type

"hi link HogEvFilter
hi link HogEvFilterKeyword    Statement
hi link HogSuppressKeyword    Statement
hi link HogEvFilterTypes      Constant
hi link HogEvFilterTrack      Constant

hi link HogAttribute          Statement
hi link HogAttributeFile      String
hi link HogAttributeType      Statement

hi link HogInclude            Statement
hi link HogIncludeFile        String

hi link HogDylib              Statement
hi link HogDylibType          Statement
hi link HogDylibFile          String

" Variables
" var
hi link HogVar                Identifier
hi link HogVarType            Keyword
hi link HogVarSet             Identifier
hi link HogVarValue           String
" ipvar
hi link HogIPVarType          Keyword
hi link HogIPVarSet           Identifier
" portvar
hi link HogPortVarType         Keyword
hi link HogPortVarSet          Identifier
hi link HogPort                Constant

hi link HogTodo               Todo
hi link HogComment            Comment
hi link HogString             String
hi link HogHexEsc             PreProc
hi link HogNumber             Number
hi link HogSpecial            Constant
hi link HogSpecialAny         Constant
hi link HogIPAddr             Constant
hi link HogIPCidr             Constant
hi link HogOpNot              Operator
hi link HogOpRange            Operator

hi link HogRuleAction         Statement
hi link HogRuleProto          Identifier
hi link HogRuleDir            Operator
hi link HogRuleOption         Keyword
hi link HogRuleChars           String 

hi link HogFileType    HogRuleAction
hi link HogFileTypeOpt HogRuleOption
hi link NotASemiColn     HogRuleChars

let b:current_syntax = "hog"
PK�j�Z�O:���vim80/syntax/abel.vimnu�[���" Vim syntax file
" Language:	ABEL
" Maintainer:	John Cook <johncook3@gmail.com>
" Last Change:	2011 Dec 27

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" this language is oblivious to case
syn case ignore

" A bunch of keywords
syn keyword abelHeader		module title device options
syn keyword abelSection		declarations equations test_vectors end
syn keyword abelDeclaration	state truth_table state_diagram property
syn keyword abelType		pin node attribute constant macro library

syn keyword abelTypeId		com reg neg pos buffer dc reg_d reg_t contained
syn keyword abelTypeId		reg_sr reg_jk reg_g retain xor invert contained

syn keyword abelStatement	when then else if with endwith case endcase
syn keyword abelStatement	fuses expr trace

" option to omit obsolete statements
if exists("abel_obsolete_ok")
  syn keyword abelStatement enable flag in
else
  syn keyword abelError enable flag in
endif

" directives
syn match abelDirective "@alternate"
syn match abelDirective "@standard"
syn match abelDirective "@const"
syn match abelDirective "@dcset"
syn match abelDirective "@include"
syn match abelDirective "@page"
syn match abelDirective "@radix"
syn match abelDirective "@repeat"
syn match abelDirective "@irp"
syn match abelDirective "@expr"
syn match abelDirective "@if"
syn match abelDirective "@ifb"
syn match abelDirective "@ifnb"
syn match abelDirective "@ifdef"
syn match abelDirective "@ifndef"
syn match abelDirective "@ifiden"
syn match abelDirective "@ifniden"

syn keyword abelTodo contained TODO XXX FIXME

" wrap up type identifiers to differentiate them from normal strings
syn region abelSpecifier start='istype' end=';' contains=abelTypeIdChar,abelTypeId,abelTypeIdEnd keepend
syn match  abelTypeIdChar "[,']" contained
syn match  abelTypeIdEnd  ";" contained

" string contstants and special characters within them
syn match  abelSpecial contained "\\['\\]"
syn region abelString start=+'+ skip=+\\"+ end=+'+ contains=abelSpecial

" valid integer number formats (decimal, binary, octal, hex)
syn match abelNumber "\<[-+]\=[0-9]\+\>"
syn match abelNumber "\^d[0-9]\+\>"
syn match abelNumber "\^b[01]\+\>"
syn match abelNumber "\^o[0-7]\+\>"
syn match abelNumber "\^h[0-9a-f]\+\>"

" special characters
" (define these after abelOperator so ?= overrides ?)
syn match abelSpecialChar "[\[\](){},;:?]"

" operators
syn match abelLogicalOperator "[!#&$]"
syn match abelRangeOperator "\.\."
syn match abelAlternateOperator "[/*+]"
syn match abelAlternateOperator ":[+*]:"
syn match abelArithmeticOperator "[-%]"
syn match abelArithmeticOperator "<<"
syn match abelArithmeticOperator ">>"
syn match abelRelationalOperator "[<>!=]="
syn match abelRelationalOperator "[<>]"
syn match abelAssignmentOperator "[:?]\=="
syn match abelAssignmentOperator "?:="
syn match abelTruthTableOperator "->"

" signal extensions
syn match abelExtension "\.aclr\>"
syn match abelExtension "\.aset\>"
syn match abelExtension "\.clk\>"
syn match abelExtension "\.clr\>"
syn match abelExtension "\.com\>"
syn match abelExtension "\.fb\>"
syn match abelExtension "\.[co]e\>"
syn match abelExtension "\.l[eh]\>"
syn match abelExtension "\.fc\>"
syn match abelExtension "\.pin\>"
syn match abelExtension "\.set\>"
syn match abelExtension "\.[djksrtq]\>"
syn match abelExtension "\.pr\>"
syn match abelExtension "\.re\>"
syn match abelExtension "\.a[pr]\>"
syn match abelExtension "\.s[pr]\>"

" special constants
syn match abelConstant "\.[ckudfpxz]\."
syn match abelConstant "\.sv[2-9]\."

" one-line comments
syn region abelComment start=+"+ end=+"\|$+ contains=abelNumber,abelTodo
" option to prevent C++ style comments
if !exists("abel_cpp_comments_illegal")
  syn region abelComment start=+//+ end=+$+ contains=abelNumber,abelTodo
endif

syn sync minlines=1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link abelHeader		abelStatement
hi def link abelSection		abelStatement
hi def link abelDeclaration	abelStatement
hi def link abelLogicalOperator	abelOperator
hi def link abelRangeOperator	abelOperator
hi def link abelAlternateOperator	abelOperator
hi def link abelArithmeticOperator	abelOperator
hi def link abelRelationalOperator	abelOperator
hi def link abelAssignmentOperator	abelOperator
hi def link abelTruthTableOperator	abelOperator
hi def link abelSpecifier		abelStatement
hi def link abelOperator		abelStatement
hi def link abelStatement		Statement
hi def link abelIdentifier		Identifier
hi def link abelTypeId		abelType
hi def link abelTypeIdChar		abelType
hi def link abelType		Type
hi def link abelNumber		abelString
hi def link abelString		String
hi def link abelConstant		Constant
hi def link abelComment		Comment
hi def link abelExtension		abelSpecial
hi def link abelSpecialChar	abelSpecial
hi def link abelTypeIdEnd		abelSpecial
hi def link abelSpecial		Special
hi def link abelDirective		PreProc
hi def link abelTodo		Todo
hi def link abelError		Error


let b:current_syntax = "abel"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:ts=8
PK�j�Zk,�!�"�"vim80/syntax/haskell.vimnu�[���" Vim syntax file
" Language:		Haskell
" Maintainer:		Haskell Cafe mailinglist <haskell-cafe@haskell.org>
" Last Change:		2018 Mar 29 by Marcin Szamotulski
" Original Author:	John Williams <jrw@pobox.com>
"
" Thanks to Ryan Crumley for suggestions and John Meacham for
" pointing out bugs. Also thanks to Ian Lynagh and Donald Bruce Stewart
" for providing the inspiration for the inclusion of the handling
" of C preprocessor directives, and for pointing out a bug in the
" end-of-line comment handling.
"
" Options-assign a value to these variables to turn the option on:
"
" hs_highlight_delimiters - Highlight delimiter characters--users
"			    with a light-colored background will
"			    probably want to turn this on.
" hs_highlight_boolean - Treat True and False as keywords.
" hs_highlight_types - Treat names of primitive types as keywords.
" hs_highlight_more_types - Treat names of other common types as keywords.
" hs_highlight_debug - Highlight names of debugging functions.
" hs_allow_hash_operator - Don't highlight seemingly incorrect C
"			   preprocessor directives but assume them to be
"			   operators
"
" 2004 Feb 19: Added C preprocessor directive handling, corrected eol comments
"	       cleaned away literate haskell support (should be entirely in
"	       lhaskell.vim)
" 2004 Feb 20: Cleaned up C preprocessor directive handling, fixed single \
"	       in eol comment character class
" 2004 Feb 23: Made the leading comments somewhat clearer where it comes
"	       to attribution of work.
" 2008 Dec 15: Added comments as contained element in import statements

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" (Qualified) identifiers (no default highlighting)
syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[A-Z][a-zA-Z0-9_']*\>" contains=@NoSpell
syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[a-z][a-zA-Z0-9_']*\>" contains=@NoSpell

" Infix operators--most punctuation characters and any (qualified) identifier
" enclosed in `backquotes`. An operator starting with : is a constructor,
" others are variables (e.g. functions).
syn match hsVarSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[-!#$%&\*\+/<=>\?@\\^|~.][-!#$%&\*\+/<=>\?@\\^|~:.]*"
syn match hsConSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./<=>\?@\\^|~:]*"
syn match hsVarSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[a-z][a-zA-Z0-9_']*`"
syn match hsConSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[A-Z][a-zA-Z0-9_']*`"

" Reserved symbols--cannot be overloaded.
syn match hsDelimiter  "(\|)\|\[\|\]\|,\|;\|_\|{\|}"

" Strings and constants
syn match   hsSpecialChar	contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)"
syn match   hsSpecialChar	contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)"
syn match   hsSpecialCharError	contained "\\&\|'''\+"
syn region  hsString		start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=hsSpecialChar,@NoSpell
syn match   hsCharacter		"[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=hsSpecialChar,hsSpecialCharError
syn match   hsCharacter		"^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hsSpecialCharError
syn match   hsNumber		"\v<[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*>|<0[oO]_*%(_*[0-7])*>|<0[bB]_*[01]%(_*[01])*>"
syn match   hsFloat		"\v<[0-9]%(_*[0-9])*\.[0-9]%(_*[0-9])*%(_*[eE][-+]?[0-9]%(_*[0-9])*)?>|<[0-9]%(_*[0-9])*_*[eE][-+]?[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*\.[0-9a-fA-F]%(_*[0-9a-fA-F])*%(_*[pP][-+]?[0-9]%(_*[0-9])*)?>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*_*[pP][-+]?[0-9]%(_*[0-9])*>"

" Keyword definitions. These must be patterns instead of keywords
" because otherwise they would match as keywords at the start of a
" "literate" comment (see lhs.vim).
syn match hsModule		"\<module\>"
syn match hsImport		"\<import\>.*"he=s+6 contains=hsImportMod,hsLineComment,hsBlockComment,@NoSpell
syn match hsImportMod		contained "\<\(as\|qualified\|hiding\)\>" contains=@NoSpell
syn match hsInfix		"\<\(infix\|infixl\|infixr\)\>"
syn match hsStructure		"\<\(class\|data\|deriving\|instance\|default\|where\)\>"
syn match hsTypedef		"\<\(type\|newtype\)\>"
syn match hsStatement		"\<\(do\|case\|of\|let\|in\)\>"
syn match hsConditional		"\<\(if\|then\|else\)\>"

" Not real keywords, but close.
if exists("hs_highlight_boolean")
  " Boolean constants from the standard prelude.
  syn match hsBoolean "\<\(True\|False\)\>"
endif
if exists("hs_highlight_types")
  " Primitive types from the standard prelude and libraries.
  syn match hsType "\<\(Int\|Integer\|Char\|Bool\|Float\|Double\|IO\|Void\|Addr\|Array\|String\)\>"
endif
if exists("hs_highlight_more_types")
  " Types from the standard prelude libraries.
  syn match hsType "\<\(Maybe\|Either\|Ratio\|Complex\|Ordering\|IOError\|IOResult\|ExitCode\)\>"
  syn match hsMaybe    "\<Nothing\>"
  syn match hsExitCode "\<\(ExitSuccess\)\>"
  syn match hsOrdering "\<\(GT\|LT\|EQ\)\>"
endif
if exists("hs_highlight_debug")
  " Debugging functions from the standard prelude.
  syn match hsDebug "\<\(undefined\|error\|trace\)\>"
endif


" Comments
syn match   hsLineComment      "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=@Spell
syn region  hsBlockComment     start="{-"  end="-}" contains=hsBlockComment,@Spell
syn region  hsPragma	       start="{-#" end="#-}"

" C Preprocessor directives. Shamelessly ripped from c.vim and trimmed
" First, see whether to flag directive-like lines or not
if (!exists("hs_allow_hash_operator"))
    syn match	cError		display "^\s*\(%:\|#\).*$"
endif
" Accept %: for # (C99)
syn region	cPreCondit	start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCommentError
syn match	cPreCondit	display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
syn region	cCppOut		start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2
syn region	cCppOut2	contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cCppSkip
syn region	cCppSkip	contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cCppSkip
syn region	cIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	cIncluded	display contained "<[^>]*>"
syn match	cInclude	display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
syn cluster	cPreProcGroup	contains=cPreCondit,cIncluded,cInclude,cDefine,cCppOut,cCppOut2,cCppSkip,cCommentStartError
syn region	cDefine		matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$"
syn region	cPreProc	matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend

syn region	cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=cCommentStartError,cSpaceError contained
syntax match	cCommentError	display "\*/" contained
syntax match	cCommentStartError display "/\*"me=e-1 contained
syn region	cCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link hsModule			  hsStructure
hi def link hsImport			  Include
hi def link hsImportMod			  hsImport
hi def link hsInfix			  PreProc
hi def link hsStructure			  Structure
hi def link hsStatement			  Statement
hi def link hsConditional			  Conditional
hi def link hsSpecialChar			  SpecialChar
hi def link hsTypedef			  Typedef
hi def link hsVarSym			  hsOperator
hi def link hsConSym			  hsOperator
hi def link hsOperator			  Operator
if exists("hs_highlight_delimiters")
" Some people find this highlighting distracting.
hi def link hsDelimiter			  Delimiter
endif
hi def link hsSpecialCharError		  Error
hi def link hsString			  String
hi def link hsCharacter			  Character
hi def link hsNumber			  Number
hi def link hsFloat			  Float
hi def link hsConditional			  Conditional
hi def link hsLiterateComment		  hsComment
hi def link hsBlockComment		  hsComment
hi def link hsLineComment			  hsComment
hi def link hsComment			  Comment
hi def link hsPragma			  SpecialComment
hi def link hsBoolean			  Boolean
hi def link hsType			  Type
hi def link hsMaybe			  hsEnumConst
hi def link hsOrdering			  hsEnumConst
hi def link hsEnumConst			  Constant
hi def link hsDebug			  Debug

hi def link cCppString		hsString
hi def link cCommentStart		hsComment
hi def link cCommentError		hsError
hi def link cCommentStartError	hsError
hi def link cInclude		Include
hi def link cPreProc		PreProc
hi def link cDefine		Macro
hi def link cIncluded		hsString
hi def link cError			Error
hi def link cPreCondit		PreCondit
hi def link cComment		Comment
hi def link cCppSkip		cCppOut
hi def link cCppOut2		cCppOut
hi def link cCppOut		Comment


let b:current_syntax = "haskell"

" Options for vi: ts=8 sw=2 sts=2 nowrap noexpandtab ft=vim
PK�j�Z��v2v2vim80/syntax/plsql.vimnu�[���" Vim syntax file
" Language: Oracle Procedureal SQL (PL/SQL)
" Maintainer: Jeff Lanzarotta (jefflanzarotta at yahoo dot com)
" Original Maintainer: C. Laurence Gonsalves (clgonsal@kami.com)
" URL: http://lanzarotta.tripod.com/vim/syntax/plsql.vim.zip
" Last Change: September 18, 2002
" History: Geoff Evans & Bill Pribyl (bill at plnet dot org)
"		Added 9i keywords.
"	   Austin Ziegler (austin at halostatue dot ca)
"		Added 8i+ features.
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Todo.
syn keyword plsqlTodo TODO FIXME XXX DEBUG NOTE
syn cluster plsqlCommentGroup contains=plsqlTodo

syn case ignore

syn match   plsqlGarbage "[^ \t()]"
syn match   plsqlIdentifier "[a-z][a-z0-9$_#]*"
syn match   plsqlHostIdentifier ":[a-z][a-z0-9$_#]*"

" When wanted, highlight the trailing whitespace.
if exists("c_space_errors")
  if !exists("c_no_trail_space_error")
    syn match plsqlSpaceError "\s\+$"
  endif

  if !exists("c_no_tab_space_error")
    syn match plsqlSpaceError " \+\t"me=e-1
  endif
endif

" Symbols.
syn match   plsqlSymbol "\(;\|,\|\.\)"

" Operators.
syn match   plsqlOperator "\(+\|-\|\*\|/\|=\|<\|>\|@\|\*\*\|!=\|\~=\)"
syn match   plsqlOperator "\(^=\|<=\|>=\|:=\|=>\|\.\.\|||\|<<\|>>\|\"\)"

" Some of Oracle's SQL keywords.
syn keyword plsqlSQLKeyword ABORT ACCESS ACCESSED ADD AFTER ALL ALTER AND ANY
syn keyword plsqlSQLKeyword AS ASC ATTRIBUTE AUDIT AUTHORIZATION AVG BASE_TABLE
syn keyword plsqlSQLKeyword BEFORE BETWEEN BY CASCADE CAST CHECK CLUSTER
syn keyword plsqlSQLKeyword CLUSTERS COLAUTH COLUMN COMMENT COMPRESS CONNECT
syn keyword plsqlSQLKeyword CONSTRAINT CRASH CREATE CURRENT DATA DATABASE
syn keyword plsqlSQLKeyword DATA_BASE DBA DEFAULT DELAY DELETE DESC DISTINCT
syn keyword plsqlSQLKeyword DROP DUAL ELSE EXCLUSIVE EXISTS EXTENDS EXTRACT
syn keyword plsqlSQLKeyword FILE FORCE FOREIGN FROM GRANT GROUP HAVING HEAP
syn keyword plsqlSQLKeyword IDENTIFIED IDENTIFIER IMMEDIATE IN INCLUDING
syn keyword plsqlSQLKeyword INCREMENT INDEX INDEXES INITIAL INSERT INSTEAD
syn keyword plsqlSQLKeyword INTERSECT INTO INVALIDATE IS ISOLATION KEY LIBRARY
syn keyword plsqlSQLKeyword LIKE LOCK MAXEXTENTS MINUS MODE MODIFY MULTISET
syn keyword plsqlSQLKeyword NESTED NOAUDIT NOCOMPRESS NOT NOWAIT OF OFF OFFLINE
syn keyword plsqlSQLKeyword ON ONLINE OPERATOR OPTION OR ORDER ORGANIZATION
syn keyword plsqlSQLKeyword PCTFREE PRIMARY PRIOR PRIVATE PRIVILEGES PUBLIC
syn keyword plsqlSQLKeyword QUOTA RELEASE RENAME REPLACE RESOURCE REVOKE ROLLBACK
syn keyword plsqlSQLKeyword ROW ROWLABEL ROWS SCHEMA SELECT SEPARATE SESSION SET
syn keyword plsqlSQLKeyword SHARE SIZE SPACE START STORE SUCCESSFUL SYNONYM
syn keyword plsqlSQLKeyword SYSDATE TABLE TABLES TABLESPACE TEMPORARY TO TREAT
syn keyword plsqlSQLKeyword TRIGGER TRUNCATE UID UNION UNIQUE UNLIMITED UPDATE
syn keyword plsqlSQLKeyword USE USER VALIDATE VALUES VIEW WHENEVER WHERE WITH

" PL/SQL's own keywords.
syn keyword plsqlKeyword AGENT AND ANY ARRAY ASSIGN AS AT AUTHID BEGIN BODY BY
syn keyword plsqlKeyword BULK C CASE CHAR_BASE CHARSETFORM CHARSETID CLOSE
syn keyword plsqlKeyword COLLECT CONSTANT CONSTRUCTOR CONTEXT CURRVAL DECLARE
syn keyword plsqlKeyword DVOID EXCEPTION EXCEPTION_INIT EXECUTE EXIT FETCH
syn keyword plsqlKeyword FINAL FUNCTION GOTO HASH IMMEDIATE IN INDICATOR
syn keyword plsqlKeyword INSTANTIABLE IS JAVA LANGUAGE LIBRARY MAP MAXLEN
syn keyword plsqlKeyword MEMBER NAME NEW NOCOPY NUMBER_BASE OBJECT OCICOLL
syn keyword plsqlKeyword OCIDATE OCIDATETIME OCILOBLOCATOR OCINUMBER OCIRAW
syn keyword plsqlKeyword OCISTRING OF OPAQUE OPEN OR ORDER OTHERS OUT
syn keyword plsqlKeyword OVERRIDING PACKAGE PARALLEL_ENABLE PARAMETERS
syn keyword plsqlKeyword PARTITION PIPELINED PRAGMA PROCEDURE RAISE RANGE REF
syn keyword plsqlKeyword RESULT RETURN REVERSE ROWTYPE SB1 SELF SHORT SIZE_T
syn keyword plsqlKeyword SQL SQLCODE SQLERRM STATIC STRUCT SUBTYPE TDO THEN
syn keyword plsqlKeyword TABLE TIMEZONE_ABBR TIMEZONE_HOUR TIMEZONE_MINUTE
syn keyword plsqlKeyword TIMEZONE_REGION TYPE UNDER UNSIGNED USING VARIANCE
syn keyword plsqlKeyword VARRAY VARYING WHEN WRITE
syn match   plsqlKeyword "\<END\>"
syn match   plsqlKeyword "\.COUNT\>"hs=s+1
syn match   plsqlKeyword "\.EXISTS\>"hs=s+1
syn match   plsqlKeyword "\.FIRST\>"hs=s+1
syn match   plsqlKeyword "\.LAST\>"hs=s+1
syn match   plsqlKeyword "\.DELETE\>"hs=s+1
syn match   plsqlKeyword "\.PREV\>"hs=s+1
syn match   plsqlKeyword "\.NEXT\>"hs=s+1

" PL/SQL functions.
syn keyword plsqlFunction ABS ACOS ADD_MONTHS ASCII ASCIISTR ASIN ATAN ATAN2
syn keyword plsqlFunction BFILENAME BITAND CEIL CHARTOROWID CHR COALESCE
syn keyword plsqlFunction COMMIT COMMIT_CM COMPOSE CONCAT  CONVERT  COS COSH
syn keyword plsqlFunction COUNT CUBE CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP
syn keyword plsqlFunction DBTIMEZONE DECODE DECOMPOSE DEREF DUMP EMPTY_BLOB
syn keyword plsqlFunction EMPTY_CLOB EXISTS EXP FLOOR FROM_TZ GETBND GLB
syn keyword plsqlFunction GREATEST GREATEST_LB GROUPING HEXTORAW  INITCAP
syn keyword plsqlFunction INSTR INSTR2 INSTR4 INSTRB INSTRC ISNCHAR LAST_DAY
syn keyword plsqlFunction LEAST LEAST_UB LENGTH LENGTH2 LENGTH4 LENGTHB LENGTHC
syn keyword plsqlFunction LN LOCALTIME LOCALTIMESTAMP LOG LOWER LPAD
syn keyword plsqlFunction LTRIM LUB MAKE_REF MAX MIN MOD MONTHS_BETWEEN
syn keyword plsqlFunction NCHARTOROWID NCHR NEW_TIME NEXT_DAY NHEXTORAW
syn keyword plsqlFunction NLS_CHARSET_DECL_LEN NLS_CHARSET_ID NLS_CHARSET_NAME
syn keyword plsqlFunction NLS_INITCAP NLS_LOWER NLSSORT NLS_UPPER NULLFN NULLIF
syn keyword plsqlFunction NUMTODSINTERVAL NUMTOYMINTERVAL NVL POWER
syn keyword plsqlFunction RAISE_APPLICATION_ERROR RAWTOHEX RAWTONHEX REF
syn keyword plsqlFunction REFTOHEX REPLACE ROLLBACK_NR ROLLBACK_SV ROLLUP ROUND
syn keyword plsqlFunction ROWIDTOCHAR ROWIDTONCHAR ROWLABEL RPAD RTRIM
syn keyword plsqlFunction SAVEPOINT SESSIONTIMEZONE SETBND SET_TRANSACTION_USE
syn keyword plsqlFunction SIGN SIN SINH SOUNDEX SQLCODE SQLERRM SQRT STDDEV
syn keyword plsqlFunction SUBSTR SUBSTR2 SUBSTR4 SUBSTRB SUBSTRC SUM
syn keyword plsqlFunction SYS_AT_TIME_ZONE SYS_CONTEXT SYSDATE SYS_EXTRACT_UTC
syn keyword plsqlFunction SYS_GUID SYS_LITERALTODATE SYS_LITERALTODSINTERVAL
syn keyword plsqlFunction SYS_LITERALTOTIME SYS_LITERALTOTIMESTAMP
syn keyword plsqlFunction SYS_LITERALTOTZTIME SYS_LITERALTOTZTIMESTAMP
syn keyword plsqlFunction SYS_LITERALTOYMINTERVAL SYS_OVER__DD SYS_OVER__DI
syn keyword plsqlFunction SYS_OVER__ID SYS_OVER_IID SYS_OVER_IIT
syn keyword plsqlFunction SYS_OVER__IT SYS_OVER__TI SYS_OVER__TT
syn keyword plsqlFunction SYSTIMESTAMP TAN TANH TO_ANYLOB TO_BLOB TO_CHAR
syn keyword plsqlFunction TO_CLOB TO_DATE TO_DSINTERVAL TO_LABEL TO_MULTI_BYTE
syn keyword plsqlFunction TO_NCHAR TO_NCLOB TO_NUMBER TO_RAW TO_SINGLE_BYTE
syn keyword plsqlFunction TO_TIME TO_TIMESTAMP TO_TIMESTAMP_TZ TO_TIME_TZ
syn keyword plsqlFunction TO_YMINTERVAL TRANSLATE TREAT TRIM TRUNC TZ_OFFSET UID
syn keyword plsqlFunction UNISTR UPPER UROWID USER USERENV VALUE VARIANCE
syn keyword plsqlFunction VSIZE WORK XOR
syn match   plsqlFunction "\<SYS\$LOB_REPLICATION\>"

" PL/SQL Exceptions
syn keyword plsqlException ACCESS_INTO_NULL CASE_NOT_FOUND COLLECTION_IS_NULL
syn keyword plsqlException CURSOR_ALREADY_OPEN DUP_VAL_ON_INDEX INVALID_CURSOR
syn keyword plsqlException INVALID_NUMBER LOGIN_DENIED NO_DATA_FOUND
syn keyword plsqlException NOT_LOGGED_ON PROGRAM_ERROR ROWTYPE_MISMATCH
syn keyword plsqlException SELF_IS_NULL STORAGE_ERROR SUBSCRIPT_BEYOND_COUNT
syn keyword plsqlException SUBSCRIPT_OUTSIDE_LIMIT SYS_INVALID_ROWID
syn keyword plsqlException TIMEOUT_ON_RESOURCE TOO_MANY_ROWS VALUE_ERROR
syn keyword plsqlException ZERO_DIVIDE

" Oracle Pseudo Colums.
syn keyword plsqlPseudo CURRVAL LEVEL NEXTVAL ROWID ROWNUM

if exists("plsql_highlight_triggers")
  syn keyword plsqlTrigger INSERTING UPDATING DELETING
endif

" Conditionals.
syn keyword plsqlConditional ELSIF ELSE IF
syn match   plsqlConditional "\<END\s\+IF\>"

" Loops.
syn keyword plsqlRepeat FOR LOOP WHILE FORALL
syn match   plsqlRepeat "\<END\s\+LOOP\>"

" Various types of comments.
if exists("c_comment_strings")
  syntax match plsqlCommentSkip contained "^\s*\*\($\|\s\+\)"
  syntax region plsqlCommentString contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=plsqlCommentSkip
  syntax region plsqlComment2String contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end="$"
  syntax region plsqlCommentL start="--" skip="\\$" end="$" keepend contains=@plsqlCommentGroup,plsqlComment2String,plsqlCharLiteral,plsqlBooleanLiteral,plsqlNumbersCom,plsqlSpaceError
  syntax region plsqlComment start="/\*" end="\*/" contains=@plsqlCommentGroup,plsqlComment2String,plsqlCharLiteral,plsqlBooleanLiteral,plsqlNumbersCom,plsqlSpaceError
else
  syntax region plsqlCommentL start="--" skip="\\$" end="$" keepend contains=@plsqlCommentGroup,plsqlSpaceError
  syntax region plsqlComment start="/\*" end="\*/" contains=@plsqlCommentGroup,plsqlSpaceError
endif

syn sync ccomment plsqlComment
syn sync ccomment plsqlCommentL

" To catch unterminated string literals.
syn match   plsqlStringError "'.*$"

" Various types of literals.
syn match   plsqlNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=plsqlIntLiteral,plsqlFloatLiteral
syn match   plsqlNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=plsqlIntLiteral,plsqlFloatLiteral
syn match   plsqlIntLiteral contained "[+-]\=\d\+"
syn match   plsqlFloatLiteral contained "[+-]\=\d\+\.\d*"
syn match   plsqlFloatLiteral contained "[+-]\=\d*\.\d*"
syn match   plsqlCharLiteral    "'[^']'"
syn match   plsqlStringLiteral  "'\([^']\|''\)*'"
syn keyword plsqlBooleanLiteral TRUE FALSE NULL

" The built-in types.
syn keyword plsqlStorage ANYDATA ANYTYPE BFILE BINARY_INTEGER BLOB BOOLEAN
syn keyword plsqlStorage BYTE CHAR CHARACTER CLOB CURSOR DATE DAY DEC DECIMAL
syn keyword plsqlStorage DOUBLE DSINTERVAL_UNCONSTRAINED FLOAT HOUR
syn keyword plsqlStorage INT INTEGER INTERVAL LOB LONG MINUTE
syn keyword plsqlStorage MLSLABEL MONTH NATURAL NATURALN NCHAR NCHAR_CS NCLOB
syn keyword plsqlStorage NUMBER NUMERIC NVARCHAR PLS_INT PLS_INTEGER
syn keyword plsqlStorage POSITIVE POSITIVEN PRECISION RAW REAL RECORD
syn keyword plsqlStorage SECOND SIGNTYPE SMALLINT STRING SYS_REFCURSOR TABLE TIME
syn keyword plsqlStorage TIMESTAMP TIMESTAMP_UNCONSTRAINED
syn keyword plsqlStorage TIMESTAMP_TZ_UNCONSTRAINED
syn keyword plsqlStorage TIMESTAMP_LTZ_UNCONSTRAINED UROWID VARCHAR
syn keyword plsqlStorage VARCHAR2 YEAR YMINTERVAL_UNCONSTRAINED ZONE

" A type-attribute is really a type.
syn match plsqlTypeAttribute  "%\(TYPE\|ROWTYPE\)\>"

" All other attributes.
syn match plsqlAttribute "%\(BULK_EXCEPTIONS\|BULK_ROWCOUNT\|ISOPEN\|FOUND\|NOTFOUND\|ROWCOUNT\)\>"

" This'll catch mis-matched close-parens.
syn cluster plsqlParenGroup contains=plsqlParenError,@plsqlCommentGroup,plsqlCommentSkip,plsqlIntLiteral,plsqlFloatLiteral,plsqlNumbersCom
if exists("c_no_bracket_error")
  syn region plsqlParen transparent start='(' end=')' contains=ALLBUT,@plsqlParenGroup
  syn match plsqlParenError ")"
  syn match plsqlErrInParen contained "[{}]"
else
  syn region plsqlParen transparent start='(' end=')' contains=ALLBUT,@plsqlParenGroup,plsqlErrInBracket
  syn match plsqlParenError "[\])]"
  syn match plsqlErrInParen contained "[{}]"
  syn region plsqlBracket transparent start='\[' end=']' contains=ALLBUT,@plsqlParenGroup,plsqlErrInParen
  syn match plsqlErrInBracket contained "[);{}]"
endif

" Syntax Synchronizing
syn sync minlines=10 maxlines=100

" Define the default highlighting.
" Only when an item doesn't have highlighting yet.

hi def link plsqlAttribute		Macro
hi def link plsqlBlockError	Error
hi def link plsqlBooleanLiteral	Boolean
hi def link plsqlCharLiteral	Character
hi def link plsqlComment		Comment
hi def link plsqlCommentL		Comment
hi def link plsqlConditional	Conditional
hi def link plsqlError		Error
hi def link plsqlErrInBracket	Error
hi def link plsqlErrInBlock	Error
hi def link plsqlErrInParen	Error
hi def link plsqlException		Function
hi def link plsqlFloatLiteral	Float
hi def link plsqlFunction		Function
hi def link plsqlGarbage		Error
hi def link plsqlHostIdentifier	Label
hi def link plsqlIdentifier	Normal
hi def link plsqlIntLiteral	Number
hi def link plsqlOperator		Operator
hi def link plsqlParen		Normal
hi def link plsqlParenError	Error
hi def link plsqlSpaceError	Error
hi def link plsqlPseudo		PreProc
hi def link plsqlKeyword		Keyword
hi def link plsqlRepeat		Repeat
hi def link plsqlStorage		StorageClass
hi def link plsqlSQLKeyword	Function
hi def link plsqlStringError	Error
hi def link plsqlStringLiteral	String
hi def link plsqlCommentString	String
hi def link plsqlComment2String	String
hi def link plsqlSymbol		Normal
hi def link plsqlTrigger		Function
hi def link plsqlTypeAttribute	StorageClass
hi def link plsqlTodo		Todo


let b:current_syntax = "plsql"

" vim: ts=8 sw=2
PK�j�Z���vqoqovim80/syntax/maple.vimnu�[���" Vim syntax file
" Language:	Maple V (based on release 4)
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	15
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
"
" Package Function Selection: {{{1
" Because there are a lot of packages, and because of the potential for namespace
" clashes, this version of <maple.vim> needs the user to select which, if any,
" package functions should be highlighted.  Select your packages and put into your
" <.vimrc> none or more of the lines following let ...=1 lines:
"
"   if exists("mvpkg_all")
"    ...
"   endif
"
" *OR* let mvpkg_all=1

" This syntax file contains all the keywords and top-level packages of Maple 9.5
" but only the contents of packages of Maple V Release 4, and the top-level
" routines of Release 4.  <Jacques Carette - carette@mcmaster.ca>

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Iskeyword Effects: {{{1
if !has("patch-7.4.1142")
 setl isk=$,48-57,_,a-z,@-Z
else
 syn iskeyword $,48-57,_,a-z,@-Z
endif

" Package Selection: {{{1
" allow user to simply select all packages for highlighting
if exists("mvpkg_all")
  let mv_DEtools    = 1
  let mv_Galois     = 1
  let mv_GaussInt   = 1
  let mv_LREtools   = 1
  let mv_combinat   = 1
  let mv_combstruct = 1
  let mv_difforms   = 1
  let mv_finance    = 1
  let mv_genfunc    = 1
  let mv_geometry   = 1
  let mv_grobner    = 1
  let mv_group      = 1
  let mv_inttrans   = 1
  let mv_liesymm    = 1
  let mv_linalg     = 1
  let mv_logic      = 1
  let mv_networks   = 1
  let mv_numapprox  = 1
  let mv_numtheory  = 1
  let mv_orthopoly  = 1
  let mv_padic      = 1
  let mv_plots      = 1
  let mv_plottools  = 1
  let mv_powseries  = 1
  let mv_process    = 1
  let mv_simplex    = 1
  let mv_stats      = 1
  let mv_student    = 1
  let mv_sumtools   = 1
  let mv_tensor     = 1
  let mv_totorder   = 1
endif

" Parenthesis/curly/brace sanity checker: {{{1
syn case match

" parenthesis/curly/brace sanity checker
syn region mvZone	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,mvError,mvBraceError,mvCurlyError
syn region mvZone	matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,mvError,mvBraceError,mvParenError
syn region mvZone	matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,mvError,mvCurlyError,mvParenError
syn match  mvError		"[)\]}]"
syn match  mvBraceError	"[)}]"	contained
syn match  mvCurlyError	"[)\]]"	contained
syn match  mvParenError	"[\]}]"	contained
syn match  mvComma		"[,;:]"
syn match  mvSemiError	"[;:]"	contained
syn match  mvDcolon		"::"

" Maple Packages, updated for Maple 9.5
syn keyword mvPackage	algcurves	ArrayTools	Cache	codegen
syn keyword mvPackage	CodeGeneration	CodeTools	combinat	combstruct
syn keyword mvPackage	ContextMenu	CurveFitting	DEtools	diffalg
syn keyword mvPackage	difforms	DiscreteTransforms	Domains	ExternalCalling
syn keyword mvPackage	FileTools	finance	GaussInt	genfunc
syn keyword mvPackage	geom3d	geometry	gfun	Groebner
syn keyword mvPackage	group	hashmset	IntegerRelations	inttrans
syn keyword mvPackage	LargeExpressions	LibraryTools	liesymm	linalg
syn keyword mvPackage	LinearAlgebra	LinearFunctionalSystems	LinearOperators
syn keyword mvPackage	ListTools	Logic	LREtools	Maplets
syn keyword mvPackage	MathematicalFunctions	MathML	Matlab
syn keyword mvPackage	MatrixPolynomialAlgebra	MmaTranslator	networks
syn keyword mvPackage	numapprox	numtheory	Optimization	OreTools
syn keyword mvPackage	Ore_algebra	OrthogonalSeries	orthopoly	padic
syn keyword mvPackage	PDEtools	plots	plottools	PolynomialIdeals
syn keyword mvPackage	PolynomialTools	powseries	process	QDifferenceEquations
syn keyword mvPackage	RandomTools	RationalNormalForms	RealDomain	RootFinding
syn keyword mvPackage	ScientificConstants	ScientificErrorAnalysis	simplex
syn keyword mvPackage	Slode	SNAP	Sockets	SoftwareMetrics
syn keyword mvPackage	SolveTools	Spread	stats	StringTools
syn keyword mvPackage	Student	student	sumtools	SumTools
syn keyword mvPackage	tensor	TypeTools	Units	VariationalCalculus
syn keyword mvPackage	VectorCalculus	Worksheet	XMLTools

" Language Support: {{{1
syn keyword mvTodo	contained	COMBAK	FIXME	TODO	XXX
if exists("g:mapleversion") && g:mapleversion < 9
 syn region  mvString	start=+`+ skip=+``+ end=+`+	keepend	contains=mvTodo,@Spell
 syn region  mvString	start=+"+ skip=+""+ end=+"+	keepend	contains=@Spell
 syn region  mvDelayEval	start=+'+ end=+'+	keepend contains=ALLBUT,mvError,mvBraceError,mvCurlyError,mvParenError,mvSemiError
 syn match   mvVarAssign	"[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:=" contains=mvAssign
 syn match   mvAssign	":="	contained
else
 syn region  mvName		start=+`+ skip=+``+ end=+`+	keepend	contains=mvTodo
 syn region  mvString	start=+"+ skip=+""+ end=+"+	keepend	contains=@Spell
 syn region  mvDelayEval	start=+'+ end=+'+	keepend contains=ALLBUT,mvError,mvBraceError,mvCurlyError,mvParenError
 syn match   mvDelim		"[;:]"	display
 syn match   mvAssign	":="
endif

" Lower-Priority Operators: {{{1
syn match mvOper	"\."

" Number handling: {{{1
syn match mvNumber	"\<\d\+"		" integer
 syn match mvNumber	"[-+]\=\.\d\+"		" . integer
syn match mvNumber	"\<\d\+\.\d\+"		" integer . integer
syn match mvNumber	"\<\d\+\."		" integer .
syn match mvNumber	"\<\d\+\.\."	contains=mvRange	" integer ..

syn match mvNumber	"\<\d\+e[-+]\=\d\+"		" integer e [-+] integer
syn match mvNumber	"[-+]\=\.\d\+e[-+]\=\d\+"	" . integer e [-+] integer
syn match mvNumber	"\<\d\+\.\d*e[-+]\=\d\+"	" integer . [integer] e [-+] integer

syn match mvNumber	"[-+]\d\+"		" integer
syn match mvNumber	"[-+]\d\+\.\d\+"		" integer . integer
syn match mvNumber	"[-+]\d\+\."		" integer .
syn match mvNumber	"[-+]\d\+\.\."	contains=mvRange	" integer ..

syn match mvNumber	"[-+]\d\+e[-+]\=\d\+"	" integer e [-+] integer
syn match mvNumber	"[-+]\d\+\.\d*e[-+]\=\d\+"	" integer . [integer] e [-+] integer

syn match mvRange	"\.\."

" Operators: {{{1
syn keyword mvOper	and not or xor implies union intersect subset minus mod
syn match   mvOper	"<>\|[<>]=\|[<>]\|="
syn match   mvOper	"&+\|&-\|&\*\|&\/\|&"
syn match   mvError	"\.\.\."

" MapleV Statements: ? statement {{{1

" MapleV Statements: ? statement
" Split into booleans, conditionals, operators, repeat-logic, etc
syn keyword mvBool	true	false	FAIL
syn keyword mvCond	elif	else	fi	if	then
syn match   mvCond	"end\s\+if"

syn keyword mvRepeat	by	for	in	to
syn keyword mvRepeat	do	from	od	while
syn match   mvRepeat	"end\s\+do"

syn keyword mvSpecial	NULL
syn match   mvSpecial	"\[\]\|{}"

if exists("g:mapleversion") && g:mapleversion < 9
 syn keyword mvStatement	Order	fail	options	read	save
 syn keyword mvStatement	break	local	point	remember	stop
 syn keyword mvStatement	done	mod	proc	restart	with
 syn keyword mvStatement	end	mods	quit	return
 syn keyword mvStatement	error	next
else
 syn keyword mvStatement	option	options	read	save
 syn keyword mvStatement	break	local	remember	stop
 syn keyword mvStatement	done	mod	proc	restart
 syn keyword mvStatement	end	mods	quit	return
 syn keyword mvStatement	error	next	try	catch
 syn keyword mvStatement	finally	assuming	global	export
 syn keyword mvStatement	module	description	use
endif

" Builtin Constants: ? constants {{{1
syn keyword mvConstant	Catalan	I	gamma	infinity
syn keyword mvConstant	Pi

" Comments:  DEBUG, if in a comment, is specially highlighted. {{{1
syn keyword mvDebug	contained	DEBUG
syn cluster mvCommentGroup	contains=mvTodo,mvDebug,@Spell
syn match mvComment "#.*$"	contains=@mvCommentGroup

" Basic Library Functions: ? index[function]
syn keyword mvLibrary $	@	@@	ERROR
syn keyword mvLibrary AFactor	KelvinHer	arctan	factor	log	rhs
syn keyword mvLibrary AFactors	KelvinKei	arctanh	factors	log10	root
syn keyword mvLibrary AiryAi	KelvinKer	argument	fclose	lprint	roots
syn keyword mvLibrary AiryBi	LambertW	array	feof	map	round
syn keyword mvLibrary AngerJ	Lcm	assign	fflush	map2	rsolve
syn keyword mvLibrary Berlekamp	LegendreE	assigned	filepos	match	savelib
syn keyword mvLibrary BesselI	LegendreEc	asspar	fixdiv	matrix	scanf
syn keyword mvLibrary BesselJ	LegendreEc1	assume	float	max	searchtext
syn keyword mvLibrary BesselK	LegendreF	asubs	floor	maximize	sec
syn keyword mvLibrary BesselY	LegendreKc	asympt	fnormal	maxnorm	sech
syn keyword mvLibrary Beta	LegendreKc1	attribute	fopen	maxorder	select
syn keyword mvLibrary C	LegendrePi	bernstein	forget	member	seq
syn keyword mvLibrary Chi	LegendrePic	branches	fortran	min	series
syn keyword mvLibrary Ci	LegendrePic1	bspline	fprintf	minimize	setattribute
syn keyword mvLibrary CompSeq	Li	cat	frac	minpoly	shake
syn keyword mvLibrary Content	Linsolve	ceil	freeze	modp	showprofile
syn keyword mvLibrary D	MOLS	chrem	fremove	modp1	showtime
syn keyword mvLibrary DESol	Maple_floats	close	frontend	modp2	sign
syn keyword mvLibrary Det	MeijerG	close	fscanf	modpol	signum
syn keyword mvLibrary Diff	Norm	coeff	fsolve	mods	simplify
syn keyword mvLibrary Dirac	Normal	coeffs	galois	msolve	sin
syn keyword mvLibrary DistDeg	Nullspace	coeftayl	gc	mtaylor	singular
syn keyword mvLibrary Divide	Power	collect	gcd	mul	sinh
syn keyword mvLibrary Ei	Powmod	combine	gcdex	nextprime	sinterp
syn keyword mvLibrary Eigenvals	Prem	commutat	genpoly	nops	solve
syn keyword mvLibrary EllipticCE	Primfield	comparray	harmonic	norm	sort
syn keyword mvLibrary EllipticCK	Primitive	compoly	has	normal	sparse
syn keyword mvLibrary EllipticCPi	Primpart	conjugate	hasfun	numboccur	spline
syn keyword mvLibrary EllipticE	ProbSplit	content	hasoption	numer	split
syn keyword mvLibrary EllipticF	Product	convergs	hastype	op	splits
syn keyword mvLibrary EllipticK	Psi	convert	heap	open	sprem
syn keyword mvLibrary EllipticModulus	Quo	coords	history	optimize	sprintf
syn keyword mvLibrary EllipticNome	RESol	copy	hypergeom	order	sqrfree
syn keyword mvLibrary EllipticPi	Randpoly	cos	iFFT	parse	sqrt
syn keyword mvLibrary Eval	Randprime	cosh	icontent	pclose	sscanf
syn keyword mvLibrary Expand	Ratrecon	cost	identity	pclose	ssystem
syn keyword mvLibrary FFT	Re	cot	igcd	pdesolve	stack
syn keyword mvLibrary Factor	Rem	coth	igcdex	piecewise	sturm
syn keyword mvLibrary Factors	Resultant	csc	ilcm	plot	sturmseq
syn keyword mvLibrary FresnelC	RootOf	csch	ilog	plot3d	subs
syn keyword mvLibrary FresnelS	Roots	csgn	ilog10	plotsetup	subsop
syn keyword mvLibrary Fresnelf	SPrem	dawson	implicitdiff	pochhammer	substring
syn keyword mvLibrary Fresnelg	Searchtext	define	indets	pointto	sum
syn keyword mvLibrary Frobenius	Shi	degree	index	poisson	surd
syn keyword mvLibrary GAMMA	Si	denom	indexed	polar	symmdiff
syn keyword mvLibrary GaussAGM	Smith	depends	indices	polylog	symmetric
syn keyword mvLibrary Gaussejord	Sqrfree	diagonal	inifcn	polynom	system
syn keyword mvLibrary Gausselim	Ssi	diff	ininame	powmod	table
syn keyword mvLibrary Gcd	StruveH	dilog	initialize	prem	tan
syn keyword mvLibrary Gcdex	StruveL	dinterp	insert	prevprime	tanh
syn keyword mvLibrary HankelH1	Sum	disassemble	int	primpart	testeq
syn keyword mvLibrary HankelH2	Svd	discont	interface	print	testfloat
syn keyword mvLibrary Heaviside	TEXT	discrim	interp	printf	thaw
syn keyword mvLibrary Hermite	Trace	dismantle	invfunc	procbody	thiele
syn keyword mvLibrary Im	WeberE	divide	invztrans	procmake	time
syn keyword mvLibrary Indep	WeierstrassP	dsolve	iostatus	product	translate
syn keyword mvLibrary Interp	WeierstrassPPrime	eliminate	iperfpow	proot	traperror
syn keyword mvLibrary Inverse	WeierstrassSigma	ellipsoid	iquo	property	trigsubs
syn keyword mvLibrary Irreduc	WeierstrassZeta	entries	iratrecon	protect	trunc
syn keyword mvLibrary Issimilar	Zeta	eqn	irem	psqrt	type
syn keyword mvLibrary JacobiAM	abs	erf	iroot	quo	typematch
syn keyword mvLibrary JacobiCD	add	erfc	irreduc	radnormal	unames
syn keyword mvLibrary JacobiCN	addcoords	eulermac	iscont	radsimp	unapply
syn keyword mvLibrary JacobiCS	addressof	eval	isdifferentiable	rand	unassign
syn keyword mvLibrary JacobiDC	algebraic	evala	isolate	randomize	unload
syn keyword mvLibrary JacobiDN	algsubs	evalapply	ispoly	randpoly	unprotect
syn keyword mvLibrary JacobiDS	alias	evalb	isqrfree	range	updatesR4
syn keyword mvLibrary JacobiNC	allvalues	evalc	isqrt	rationalize	userinfo
syn keyword mvLibrary JacobiND	anames	evalf	issqr	ratrecon	value
syn keyword mvLibrary JacobiNS	antisymm	evalfint	latex	readbytes	vector
syn keyword mvLibrary JacobiSC	applyop	evalgf	lattice	readdata	verify
syn keyword mvLibrary JacobiSD	arccos	evalhf	lcm	readlib	whattype
syn keyword mvLibrary JacobiSN	arccosh	evalm	lcoeff	readline	with
syn keyword mvLibrary JacobiTheta1	arccot	evaln	leadterm	readstat	writebytes
syn keyword mvLibrary JacobiTheta2	arccoth	evalr	length	realroot	writedata
syn keyword mvLibrary JacobiTheta3	arccsc	exp	lexorder	recipoly	writeline
syn keyword mvLibrary JacobiTheta4	arccsch	expand	lhs	rem	writestat
syn keyword mvLibrary JacobiZeta	arcsec	expandoff	limit	remove	writeto
syn keyword mvLibrary KelvinBei	arcsech	expandon	ln	residue	zip
syn keyword mvLibrary KelvinBer	arcsin	extract	lnGAMMA	resultant	ztrans
syn keyword mvLibrary KelvinHei	arcsinh


" ==  PACKAGES  ======================================================= {{{1
" Note: highlighting of package functions is now user-selectable by package.

" Package: DEtools     differential equations tools {{{2
if exists("mv_DEtools")
  syn keyword mvPkg_DEtools	DEnormal	Dchangevar	autonomous	dfieldplot	reduceOrder	untranslate
  syn keyword mvPkg_DEtools	DEplot	PDEchangecoords	convertAlg	indicialeq	regularsp	varparam
  syn keyword mvPkg_DEtools	DEplot3d	PDEplot	convertsys	phaseportrait	translate
endif

" Package: Domains: create domains of computation {{{2
if exists("mv_Domains")
endif

" Package: GF: Galois Fields {{{2
if exists("mv_GF")
  syn keyword mvPkg_Galois	galois
endif

" Package: GaussInt: Gaussian Integers {{{2
if exists("mv_GaussInt")
  syn keyword mvPkg_GaussInt	GIbasis	GIfactor	GIissqr	GInorm	GIquadres	GIsmith
  syn keyword mvPkg_GaussInt	GIchrem	GIfactors	GIlcm	GInormal	GIquo	GIsqrfree
  syn keyword mvPkg_GaussInt	GIdivisor	GIgcd	GImcmbine	GIorder	GIrem	GIsqrt
  syn keyword mvPkg_GaussInt	GIfacpoly	GIgcdex	GInearest	GIphi	GIroots	GIunitnormal
  syn keyword mvPkg_GaussInt	GIfacset	GIhermite	GInodiv	GIprime	GIsieve
endif

" Package: LREtools: manipulate linear recurrence relations {{{2
if exists("mv_LREtools")
  syn keyword mvPkg_LREtools	REcontent	REprimpart	REtodelta	delta	hypergeomsols	ratpolysols
  syn keyword mvPkg_LREtools	REcreate	REreduceorder	REtoproc	dispersion	polysols	shift
  syn keyword mvPkg_LREtools	REplot	REtoDE	constcoeffsol
endif

" Package: combinat: combinatorial functions {{{2
if exists("mv_combinat")
  syn keyword mvPkg_combinat	Chi	composition	graycode	numbcomb	permute	randperm
  syn keyword mvPkg_combinat	bell	conjpart	inttovec	numbcomp	powerset	stirling1
  syn keyword mvPkg_combinat	binomial	decodepart	lastpart	numbpart	prevpart	stirling2
  syn keyword mvPkg_combinat	cartprod	encodepart	multinomial	numbperm	randcomb	subsets
  syn keyword mvPkg_combinat	character	fibonacci	nextpart	partition	randpart	vectoint
  syn keyword mvPkg_combinat	choose	firstpart
endif

" Package: combstruct: combinatorial structures {{{2
if exists("mv_combstruct")
  syn keyword mvPkg_combstruct	allstructs	draw	iterstructs	options	specification	structures
  syn keyword mvPkg_combstruct	count	finished	nextstruct
endif

" Package: difforms: differential forms {{{2
if exists("mv_difforms")
  syn keyword mvPkg_difforms	const	defform	formpart	parity	scalarpart	wdegree
  syn keyword mvPkg_difforms	d	form	mixpar	scalar	simpform	wedge
endif

" Package: finance: financial mathematics {{{2
if exists("mv_finance")
  syn keyword mvPkg_finance	amortization	cashflows	futurevalue	growingperpetuity	mv_finance	presentvalue
  syn keyword mvPkg_finance	annuity	effectiverate	growingannuity	levelcoupon	perpetuity	yieldtomaturity
  syn keyword mvPkg_finance	blackscholes
endif

" Package: genfunc: rational generating functions {{{2
if exists("mv_genfunc")
  syn keyword mvPkg_genfunc	rgf_charseq	rgf_expand	rgf_hybrid	rgf_pfrac	rgf_sequence	rgf_term
  syn keyword mvPkg_genfunc	rgf_encode	rgf_findrecur	rgf_norm	rgf_relate	rgf_simp	termscale
endif

" Package: geometry: Euclidean geometry {{{2
if exists("mv_geometry")
  syn keyword mvPkg_geometry	circle	dsegment	hyperbola	parabola	segment	triangle
  syn keyword mvPkg_geometry	conic	ellipse	line	point	square
endif

" Package: grobner: Grobner bases {{{2
if exists("mv_grobner")
  syn keyword mvPkg_grobner	finduni	gbasis	leadmon	normalf	solvable	spoly
  syn keyword mvPkg_grobner	finite	gsolve
endif

" Package: group: permutation and finitely-presented groups {{{2
if exists("mv_group")
  syn keyword mvPkg_group	DerivedS	areconjugate	cosets	grouporder	issubgroup	permrep
  syn keyword mvPkg_group	LCS	center	cosrep	inter	mulperms	pres
  syn keyword mvPkg_group	NormalClosure	centralizer	derived	invperm	normalizer	subgrel
  syn keyword mvPkg_group	RandElement	convert	grelgroup	isabelian	orbit	type
  syn keyword mvPkg_group	Sylow	core	groupmember	isnormal	permgroup
endif

" Package: inttrans: integral transforms {{{2
if exists("mv_inttrans")
  syn keyword mvPkg_inttrans	addtable	fouriercos	hankel	invfourier	invlaplace	mellin
  syn keyword mvPkg_inttrans	fourier	fouriersin	hilbert	invhilbert	laplace
endif

" Package: liesymm: Lie symmetries {{{2
if exists("mv_liesymm")
  syn keyword mvPkg_liesymm	&^	TD	depvars	getform	mixpar	vfix
  syn keyword mvPkg_liesymm	&mod	annul	determine	hasclosure	prolong	wcollect
  syn keyword mvPkg_liesymm	Eta	autosimp	dvalue	hook	reduce	wdegree
  syn keyword mvPkg_liesymm	Lie	close	extvars	indepvars	setup	wedgeset
  syn keyword mvPkg_liesymm	Lrank	d	getcoeff	makeforms	translate	wsubs
endif

" Package: linalg: Linear algebra {{{2
if exists("mv_linalg")
  syn keyword mvPkg_linalg	GramSchmidt	coldim	equal	indexfunc	mulcol	singval
  syn keyword mvPkg_linalg	JordanBlock	colspace	exponential	innerprod	multiply	smith
  syn keyword mvPkg_linalg	LUdecomp	colspan	extend	intbasis	norm	stack
  syn keyword mvPkg_linalg	QRdecomp	companion	ffgausselim	inverse	normalize	submatrix
  syn keyword mvPkg_linalg	addcol	cond	fibonacci	ismith	orthog	subvector
  syn keyword mvPkg_linalg	addrow	copyinto	forwardsub	issimilar	permanent	sumbasis
  syn keyword mvPkg_linalg	adjoint	crossprod	frobenius	iszero	pivot	swapcol
  syn keyword mvPkg_linalg	angle	curl	gausselim	jacobian	potential	swaprow
  syn keyword mvPkg_linalg	augment	definite	gaussjord	jordan	randmatrix	sylvester
  syn keyword mvPkg_linalg	backsub	delcols	geneqns	kernel	randvector	toeplitz
  syn keyword mvPkg_linalg	band	delrows	genmatrix	laplacian	rank	trace
  syn keyword mvPkg_linalg	basis	det	grad	leastsqrs	references	transpose
  syn keyword mvPkg_linalg	bezout	diag	hadamard	linsolve	row	vandermonde
  syn keyword mvPkg_linalg	blockmatrix	diverge	hermite	matadd	rowdim	vecpotent
  syn keyword mvPkg_linalg	charmat	dotprod	hessian	matrix	rowspace	vectdim
  syn keyword mvPkg_linalg	charpoly	eigenval	hilbert	minor	rowspan	vector
  syn keyword mvPkg_linalg	cholesky	eigenvect	htranspose	minpoly	scalarmul	wronskian
  syn keyword mvPkg_linalg	col	entermatrix	ihermite
endif

" Package: logic: Boolean logic {{{2
if exists("mv_logic")
  syn keyword mvPkg_logic	MOD2	bsimp	distrib	environ	randbool	tautology
  syn keyword mvPkg_logic	bequal	canon	dual	frominert	satisfy	toinert
endif

" Package: networks: graph networks {{{2
if exists("mv_networks")
  syn keyword mvPkg_networks	acycpoly	connect	dinic	graph	mincut	show
  syn keyword mvPkg_networks	addedge	connectivity	djspantree	graphical	mindegree	shrink
  syn keyword mvPkg_networks	addvertex	contract	dodecahedron	gsimp	neighbors	span
  syn keyword mvPkg_networks	adjacency	countcuts	draw	gunion	new	spanpoly
  syn keyword mvPkg_networks	allpairs	counttrees	duplicate	head	octahedron	spantree
  syn keyword mvPkg_networks	ancestor	cube	edges	icosahedron	outdegree	tail
  syn keyword mvPkg_networks	arrivals	cycle	ends	incidence	path	tetrahedron
  syn keyword mvPkg_networks	bicomponents	cyclebase	eweight	incident	petersen	tuttepoly
  syn keyword mvPkg_networks	charpoly	daughter	flow	indegree	random	vdegree
  syn keyword mvPkg_networks	chrompoly	degreeseq	flowpoly	induce	rank	vertices
  syn keyword mvPkg_networks	complement	delete	fundcyc	isplanar	rankpoly	void
  syn keyword mvPkg_networks	complete	departures	getlabel	maxdegree	shortpathtree	vweight
  syn keyword mvPkg_networks	components	diameter	girth
endif

" Package: numapprox: numerical approximation {{{2
if exists("mv_numapprox")
  syn keyword mvPkg_numapprox	chebdeg	chebsort	fnorm	laurent	minimax	remez
  syn keyword mvPkg_numapprox	chebmult	chebyshev	hornerform	laurent	pade	taylor
  syn keyword mvPkg_numapprox	chebpade	confracform	infnorm	minimax
endif

" Package: numtheory: number theory {{{2
if exists("mv_numtheory")
  syn keyword mvPkg_numtheory	B	cyclotomic	invcfrac	mcombine	nthconver	primroot
  syn keyword mvPkg_numtheory	F	divisors	invphi	mersenne	nthdenom	quadres
  syn keyword mvPkg_numtheory	GIgcd	euler	isolve	minkowski	nthnumer	rootsunity
  syn keyword mvPkg_numtheory	J	factorEQ	isprime	mipolys	nthpow	safeprime
  syn keyword mvPkg_numtheory	L	factorset	issqrfree	mlog	order	sigma
  syn keyword mvPkg_numtheory	M	fermat	ithprime	mobius	pdexpand	sq2factor
  syn keyword mvPkg_numtheory	bernoulli	ifactor	jacobi	mroot	phi	sum2sqr
  syn keyword mvPkg_numtheory	bigomega	ifactors	kronecker	msqrt	pprimroot	tau
  syn keyword mvPkg_numtheory	cfrac	imagunit	lambda	nearestp	prevprime	thue
  syn keyword mvPkg_numtheory	cfracpol	index	legendre	nextprime
endif

" Package: orthopoly: orthogonal polynomials {{{2
if exists("mv_orthopoly")
  syn keyword mvPkg_orthopoly	G	H	L	P	T	U
endif

" Package: padic: p-adic numbers {{{2
if exists("mv_padic")
  syn keyword mvPkg_padic	evalp	function	orderp	ratvaluep	rootp	valuep
  syn keyword mvPkg_padic	expansion	lcoeffp	ordp
endif

" Package: plots: graphics package {{{2
if exists("mv_plots")
  syn keyword mvPkg_plots	animate	coordplot3d	gradplot3d	listplot3d	polarplot	setoptions3d
  syn keyword mvPkg_plots	animate3d	cylinderplot	implicitplot	loglogplot	polygonplot	spacecurve
  syn keyword mvPkg_plots	changecoords	densityplot	implicitplot3d	logplot	polygonplot3d	sparsematrixplot
  syn keyword mvPkg_plots	complexplot	display	inequal	matrixplot	polyhedraplot	sphereplot
  syn keyword mvPkg_plots	complexplot3d	display3d	listcontplot	odeplot	replot	surfdata
  syn keyword mvPkg_plots	conformal	fieldplot	listcontplot3d	pareto	rootlocus	textplot
  syn keyword mvPkg_plots	contourplot	fieldplot3d	listdensityplot	pointplot	semilogplot	textplot3d
  syn keyword mvPkg_plots	contourplot3d	gradplot	listplot	pointplot3d	setoptions	tubeplot
  syn keyword mvPkg_plots	coordplot
endif

" Package: plottools: basic graphical objects {{{2
if exists("mv_plottools")
  syn keyword mvPkg_plottools	arc	curve	dodecahedron	hyperbola	pieslice	semitorus
  syn keyword mvPkg_plottools	arrow	cutin	ellipse	icosahedron	point	sphere
  syn keyword mvPkg_plottools	circle	cutout	ellipticArc	line	polygon	tetrahedron
  syn keyword mvPkg_plottools	cone	cylinder	hemisphere	octahedron	rectangle	torus
  syn keyword mvPkg_plottools	cuboid	disk	hexahedron
endif

" Package: powseries: formal power series {{{2
if exists("mv_powseries")
  syn keyword mvPkg_powseries	compose	multiply	powcreate	powlog	powsolve	reversion
  syn keyword mvPkg_powseries	evalpow	negative	powdiff	powpoly	powsqrt	subtract
  syn keyword mvPkg_powseries	inverse	powadd	powexp	powseries	quotient	tpsform
  syn keyword mvPkg_powseries	multconst	powcos	powint	powsin
endif

" Package: process: (Unix)-multi-processing {{{2
if exists("mv_process")
  syn keyword mvPkg_process	block	fork	pclose	pipe	popen	wait
  syn keyword mvPkg_process	exec	kill
endif

" Package: simplex: linear optimization {{{2
if exists("mv_simplex")
  syn keyword mvPkg_simplex	NONNEGATIVE	cterm	dual	maximize	pivoteqn	setup
  syn keyword mvPkg_simplex	basis	define_zero	equality	minimize	pivotvar	standardize
  syn keyword mvPkg_simplex	convexhull	display	feasible	pivot	ratio
endif

" Package: stats: statistics {{{2
if exists("mv_stats")
  syn keyword mvPkg_stats	anova	describe	fit	random	statevalf	statplots
endif

" Package: student: student calculus {{{2
if exists("mv_student")
  syn keyword mvPkg_student	D	Product	distance	isolate	middlesum	rightsum
  syn keyword mvPkg_student	Diff	Sum	equate	leftbox	midpoint	showtangent
  syn keyword mvPkg_student	Doubleint	Tripleint	extrema	leftsum	minimize	simpson
  syn keyword mvPkg_student	Int	changevar	integrand	makeproc	minimize	slope
  syn keyword mvPkg_student	Limit	combine	intercept	maximize	powsubs	trapezoid
  syn keyword mvPkg_student	Lineint	completesquare	intparts	middlebox	rightbox	value
  syn keyword mvPkg_student	Point
endif

" Package: sumtools: indefinite and definite sums {{{2
if exists("mv_sumtools")
  syn keyword mvPkg_sumtools	Hypersum	extended_gosper	hyperrecursion	hyperterm	sumrecursion	sumtohyper
  syn keyword mvPkg_sumtools	Sumtohyper	gosper	hypersum	simpcomb
endif

" Package: tensor: tensor computations and General Relativity {{{2
if exists("mv_tensor")
  syn keyword mvPkg_tensor	Christoffel1	Riemann	connexF	display_allGR	get_compts	partial_diff
  syn keyword mvPkg_tensor	Christoffel2	RiemannF	contract	dual	get_rank	permute_indices
  syn keyword mvPkg_tensor	Einstein	Weyl	convertNP	entermetric	invars	petrov
  syn keyword mvPkg_tensor	Jacobian	act	cov_diff	exterior_diff	invert	prod
  syn keyword mvPkg_tensor	Killing_eqns	antisymmetrize	create	exterior_prod	lin_com	raise
  syn keyword mvPkg_tensor	Levi_Civita	change_basis	d1metric	frame	lower	symmetrize
  syn keyword mvPkg_tensor	Lie_diff	commutator	d2metric	geodesic_eqns	npcurve	tensorsGR
  syn keyword mvPkg_tensor	Ricci	compare	directional_diff	get_char	npspin	transform
  syn keyword mvPkg_tensor	Ricciscalar	conj	displayGR
endif

" Package: totorder: total orders on names {{{2
if exists("mv_totorder")
  syn keyword mvPkg_totorder	forget	init	ordering	tassume	tis
endif
" =====================================================================

" Highlighting: Define the default highlighting. {{{1
" Only when an item doesn't have highlighting yet
if !exists("skip_maplev_syntax_inits")

  " Maple->Maple Links {{{2
  hi def link mvBraceError	mvError
  hi def link mvCurlyError	mvError
  hi def link mvDebug		mvTodo
  hi def link mvParenError	mvError
  hi def link mvPkg_DEtools	mvPkgFunc
  hi def link mvPkg_Galois	mvPkgFunc
  hi def link mvPkg_GaussInt	mvPkgFunc
  hi def link mvPkg_LREtools	mvPkgFunc
  hi def link mvPkg_combinat	mvPkgFunc
  hi def link mvPkg_combstruct	mvPkgFunc
  hi def link mvPkg_difforms	mvPkgFunc
  hi def link mvPkg_finance	mvPkgFunc
  hi def link mvPkg_genfunc	mvPkgFunc
  hi def link mvPkg_geometry	mvPkgFunc
  hi def link mvPkg_grobner	mvPkgFunc
  hi def link mvPkg_group	mvPkgFunc
  hi def link mvPkg_inttrans	mvPkgFunc
  hi def link mvPkg_liesymm	mvPkgFunc
  hi def link mvPkg_linalg	mvPkgFunc
  hi def link mvPkg_logic	mvPkgFunc
  hi def link mvPkg_networks	mvPkgFunc
  hi def link mvPkg_numapprox	mvPkgFunc
  hi def link mvPkg_numtheory	mvPkgFunc
  hi def link mvPkg_orthopoly	mvPkgFunc
  hi def link mvPkg_padic	mvPkgFunc
  hi def link mvPkg_plots	mvPkgFunc
  hi def link mvPkg_plottools	mvPkgFunc
  hi def link mvPkg_powseries	mvPkgFunc
  hi def link mvPkg_process	mvPkgFunc
  hi def link mvPkg_simplex	mvPkgFunc
  hi def link mvPkg_stats	mvPkgFunc
  hi def link mvPkg_student	mvPkgFunc
  hi def link mvPkg_sumtools	mvPkgFunc
  hi def link mvPkg_tensor	mvPkgFunc
  hi def link mvPkg_totorder	mvPkgFunc
  hi def link mvRange		mvOper
  hi def link mvSemiError	mvError
  hi def link mvDelim		Delimiter

  " Maple->Standard Links {{{2
  hi def link mvAssign		Delimiter
  hi def link mvBool		Boolean
  hi def link mvComma		Delimiter
  hi def link mvComment		Comment
  hi def link mvCond		Conditional
  hi def link mvConstant		Number
  hi def link mvDelayEval	Label
  hi def link mvDcolon		Delimiter
  hi def link mvError		Error
  hi def link mvLibrary		Statement
  hi def link mvNumber		Number
  hi def link mvOper		Operator
  hi def link mvAssign		Delimiter
  hi def link mvPackage		Type
  hi def link mvPkgFunc		Function
  hi def link mvPktOption	Special
  hi def link mvRepeat		Repeat
  hi def link mvSpecial		Special
  hi def link mvStatement	Statement
  hi def link mvName		String
  hi def link mvString		String
  hi def link mvTodo		Todo

endif

" Current Syntax: {{{1
let b:current_syntax = "maple"
" vim: ts=20 fdm=marker
PK�j�ZI7yQ??vim80/syntax/mplayerconf.vimnu�[���" Vim syntax file
" Language:             mplayer(1) configuration file
" Maintainer:           Dmitri Vereshchagin <dmitri.vereshchagin@gmail.com>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2015-01-24

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn keyword mplayerconfTodo     contained TODO FIXME XXX NOTE

syn region mplayerconfComment   display oneline start='#' end='$'
                                \ contains=mplayerconfTodo,@Spell

syn keyword mplayerconfPreProc  include

syn keyword mplayerconfBoolean  yes no true false

syn match   mplayerconfNumber   '\<\d\+\>'

syn keyword mplayerconfOption   hardframedrop nomouseinput bandwidth dumpstream
                                \ rtsp-stream-over-tcp tv overlapsub
                                \ sub-bg-alpha subfont-outline unicode format
                                \ vo edl cookies fps zrfd af-adv nosound
                                \ audio-density passlogfile vobsuboutindex autoq
                                \ autosync benchmark colorkey nocolorkey edlout
                                \ enqueue fixed-vo framedrop h identify input
                                \ lircconf list-options loop menu menu-cfg
                                \ menu-root nojoystick nolirc nortc playlist
                                \ quiet really-quiet shuffle skin slave
                                \ softsleep speed sstep use-stdin aid alang
                                \ audio-demuxer audiofile audiofile-cache
                                \ cdrom-device cache cdda channels chapter
                                \ cookies-file demuxer dumpaudio dumpfile
                                \ dumpvideo dvbin dvd-device dvdangle forceidx
                                \ frames hr-mp3-seek idx ipv4-only-proxy
                                \ loadidx mc mf ni nobps noextbased
                                \ passwd prefer-ipv4 prefer-ipv6 rawaudio
                                \ rawvideo saveidx sb srate ss tskeepbroken
                                \ tsprog tsprobe user user-agent vid vivo
                                \ dumpjacosub dumpmicrodvdsub dumpmpsub dumpsami
                                \ dumpsrtsub dumpsub ffactor flip-hebrew font
                                \ forcedsubsonly fribidi-charset ifo noautosub
                                \ osdlevel sid slang spuaa spualign spugauss
                                \ sub sub-bg-color sub-demuxer sub-fuzziness
                                \ sub-no-text-pp subalign subcc subcp subdelay
                                \ subfile subfont-autoscale subfont-blur
                                \ subfont-encoding subfont-osd-scale
                                \ subfont-text-scale subfps subpos subwidth
                                \ utf8 vobsub vobsubid abs ao aofile aop delay
                                \ mixer nowaveheader aa bpp brightness contrast
                                \ dfbopts display double dr dxr2 fb fbmode
                                \ fbmodeconfig forcexv fs fsmode-dontuse fstype
                                \ geometry guiwid hue jpeg monitor-dotclock
                                \ monitor-hfreq monitor-vfreq monitoraspect
                                \ nograbpointer nokeepaspect noxv ontop panscan
                                \ rootwin saturation screenw stop-xscreensaver
                                \ vm vsync wid xineramascreen z zrbw zrcrop
                                \ zrdev zrhelp zrnorm zrquality zrvdec zrxdoff
                                \ ac af afm aspect flip lavdopts noaspect
                                \ noslices novideo oldpp pp pphelp ssf stereo
                                \ sws vc vfm x xvidopts xy y zoom vf vop
                                \ audio-delay audio-preload endpos ffourcc
                                \ include info noautoexpand noskip o oac of
                                \ ofps ovc skiplimit v vobsubout vobsuboutid
                                \ lameopts lavcopts nuvopts xvidencopts a52drc
                                \ adapter af-add af-clr af-del af-pre
                                \ allow-dangerous-playlist-parsing ass
                                \ ass-border-color ass-bottom-margin ass-color
                                \ ass-font-scale ass-force-style ass-hinting
                                \ ass-line-spacing ass-styles ass-top-margin
                                \ ass-use-margins ausid bluray-angle
                                \ bluray-device border border-pos-x border-pos-y
                                \ cache-min cache-seek-min capture codecpath
                                \ codecs-file correct-pts crash-debug
                                \ doubleclick-time dvd-speed edl-backward-delay
                                \ edl-start-pts embeddedfonts fafmttag
                                \ field-dominance fontconfig force-avi-aspect
                                \ force-key-frames frameno-file fullscreen gamma
                                \ gui gui-include gui-wid heartbeat-cmd
                                \ heartbeat-interval hr-edl-seek
                                \ http-header-fields idle ignore-start
                                \ key-fifo-size list-properties menu-chroot
                                \ menu-keepdir menu-startup mixer-channel
                                \ monitor-orientation monitorpixelaspect
                                \ mouse-movements msgcharset msgcolor msglevel
                                \ msgmodule name noar nocache noconfig
                                \ noconsolecontrols nocorrect-pts nodouble
                                \ noedl-start-pts noencodedups
                                \ noflip-hebrew-commas nogui noidx noodml
                                \ nostop-xscreensaver nosub noterm-osd
                                \ osd-duration osd-fractions panscanrange
                                \ pausing playing-msg priority profile
                                \ progbar-align psprobe pvr radio referrer
                                \ refreshrate reuse-socket rtc rtc-device
                                \ rtsp-destination rtsp-port
                                \ rtsp-stream-over-http screenh show-profile
                                \ softvol softvol-max sub-paths subfont
                                \ term-osd-esc title tvscan udp-ip udp-master
                                \ udp-port udp-seek-threshold udp-slave
                                \ unrarexec use-filedir-conf use-filename-title
                                \ vf-add vf-clr vf-del vf-pre volstep volume
                                \ zrhdec zrydoff

syn region  mplayerconfString   display oneline start=+"+ end=+"+
syn region  mplayerconfString   display oneline start=+'+ end=+'+

syn region  mplayerconfProfile  display oneline start='^\s*\[' end='\]'

hi def link mplayerconfTodo     Todo
hi def link mplayerconfComment  Comment
hi def link mplayerconfPreProc  PreProc
hi def link mplayerconfBoolean  Boolean
hi def link mplayerconfNumber   Number
hi def link mplayerconfOption   Keyword
hi def link mplayerconfString   String
hi def link mplayerconfProfile  Special

let b:current_syntax = "mplayerconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z1��XCXCvim80/syntax/html.vimnu�[���" Vim syntax file
" Language:             HTML
" Maintainer:           Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer:  Claudio Fleiner <claudio@fleiner.com>
" Repository:           https://notabug.org/jorgesumle/vim-html-syntax
" Last Change:          2017 Dec 16
" Included patch from Jorge Maldonado Ventura to add the dialog element
"

" Please check :help html.vim for some comments and a description of the options

" quit when a syntax file was already loaded
if !exists("main_syntax")
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'html'
endif

let s:cpo_save = &cpo
set cpo&vim

syntax spell toplevel

syn case ignore

" mark illegal characters
syn match htmlError "[<>&]"


" tags
syn region  htmlString   contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
syn region  htmlString   contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
syn match   htmlValue    contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1   contains=javaScriptExpression,@htmlPreproc
syn region  htmlEndTag             start=+</+      end=+>+ contains=htmlTagN,htmlTagError
syn region  htmlTag                start=+<[^/]+   end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
syn match   htmlTagN     contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
syn match   htmlTagN     contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
syn match   htmlTagError contained "[^>]<"ms=s+1


" tag names
syn keyword htmlTagName contained address applet area a base basefont
syn keyword htmlTagName contained big blockquote br caption center
syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
syn keyword htmlTagName contained form hr html img
syn keyword htmlTagName contained input isindex kbd li link map menu
syn keyword htmlTagName contained meta ol option param pre p samp span
syn keyword htmlTagName contained select small sub sup
syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"

" new html 4.0 tags
syn keyword htmlTagName contained abbr acronym bdo button col label
syn keyword htmlTagName contained colgroup fieldset iframe ins legend
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead

" new html 5 tags
syn keyword htmlTagName contained article aside audio bdi canvas data
syn keyword htmlTagName contained datalist details embed figcaption figure
syn keyword htmlTagName contained footer header hgroup keygen main mark
syn keyword htmlTagName contained menuitem meter nav output picture
syn keyword htmlTagName contained progress rb rp rt rtc ruby section
syn keyword htmlTagName contained slot source template time track video wbr

" legal arg names
syn keyword htmlArg contained action
syn keyword htmlArg contained align alink alt archive background bgcolor
syn keyword htmlArg contained border bordercolor cellpadding
syn keyword htmlArg contained cellspacing checked class clear code codebase color
syn keyword htmlArg contained cols colspan content coords enctype face
syn keyword htmlArg contained gutter height hspace id
syn keyword htmlArg contained link lowsrc marginheight
syn keyword htmlArg contained marginwidth maxlength method name prompt
syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
syn keyword htmlArg contained size src start target text type url
syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
syn match   htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1

" Netscape extensions
syn keyword htmlTagName contained frame noframes frameset nobr blink
syn keyword htmlTagName contained layer ilayer nolayer spacer
syn keyword htmlArg     contained frameborder noresize pagex pagey above below
syn keyword htmlArg     contained left top visibility clip id noshade
syn match   htmlArg     contained "\<z-index\>"

" Microsoft extensions
syn keyword htmlTagName contained marquee

" html 4.0 arg names
syn match   htmlArg contained "\<\(accept-charset\|label\)\>"
syn keyword htmlArg contained abbr accept accesskey axis char charoff charset
syn keyword htmlArg contained cite classid codetype compact data datetime
syn keyword htmlArg contained declare defer dir disabled for frame
syn keyword htmlArg contained headers hreflang lang language longdesc
syn keyword htmlArg contained multiple nohref nowrap object profile readonly
syn keyword htmlArg contained rules scheme scope span standby style
syn keyword htmlArg contained summary tabindex valuetype version

" html 5 arg names
syn keyword htmlArg contained allowfullscreen async autocomplete autofocus
syn keyword htmlArg contained autoplay challenge contenteditable contextmenu
syn keyword htmlArg contained controls crossorigin default dialog dirname
syn keyword htmlArg contained download draggable dropzone form formaction
syn keyword htmlArg contained formenctype formmethod formnovalidate formtarget
syn keyword htmlArg contained hidden high icon inputmode keytype kind list loop
syn keyword htmlArg contained low max min minlength muted nonce novalidate open
syn keyword htmlArg contained optimum pattern placeholder poster preload
syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate
syn keyword htmlArg contained typemustmatch

" special characters
syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"

" Comments (the real ones or the old netscape ones)
if exists("html_wrong_comments")
  syn region htmlComment                start=+<!--+    end=+--\s*>+ contains=@Spell
else
  syn region htmlComment                start=+<!+      end=+>+   contains=htmlCommentPart,htmlCommentError,@Spell
  syn match  htmlCommentError contained "[^><!]"
  syn region htmlCommentPart  contained start=+--+      end=+--\s*+  contains=@htmlPreProc,@Spell
endif
syn region htmlComment                  start=+<!DOCTYPE+ keepend end=+>+

" server-parsed commands
syn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr
syn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>"
syn match htmlPreError contained "<!--#\S*"ms=s+4
syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName
syn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keepend
syn match htmlPreProcAttrError contained "\w\+="he=e-1
syn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1

if !exists("html_no_rendering")
  " rendering
  syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc

  syn region htmlStrike start="<del\>" end="</del>"me=e-6 contains=@htmlTop
  syn region htmlStrike start="<strike\>" end="</strike>"me=e-9 contains=@htmlTop

  syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
  syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
  syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
  syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline
  syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline
  syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
  syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
  syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic

  syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
  syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic
  syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic
  syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlUnderlineItalicBold
  syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlUnderlineItalicBold
  syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
  syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
  syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
  syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop

  syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
  syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop
  syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline
  syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline
  syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop
  syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold
  syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
  syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop

  syn match htmlLeadingSpace "^\s\+" contained
  syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
  syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop
  syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop
  syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop
  syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop
  syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop
  syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop
  syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
  syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
endif

syn keyword htmlTagName         contained noscript
syn keyword htmlSpecialTagName  contained script style
if main_syntax != 'java' || exists("java_javascript")
  " JAVA SCRIPT
  syn include @htmlJavaScript syntax/javascript.vim
  unlet b:current_syntax
  syn region  javaScript start=+<script\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
  syn region  htmlScriptTag     contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
  hi def link htmlScriptTag htmlTag

  " html events (i.e. arguments that include javascript commands)
  if exists("html_extended_events")
    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ
    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ
  else
    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ
    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ
  endif
  syn region htmlEventSQ        contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript
  syn region htmlEventDQ        contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript
  hi def link htmlEventSQ htmlEvent
  hi def link htmlEventDQ htmlEvent

  " a javascript expression is used as an arg value
  syn region  javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc
endif

if main_syntax != 'java' || exists("java_vb")
  " VB SCRIPT
  syn include @htmlVbScript syntax/vb.vim
  unlet b:current_syntax
  syn region  javaScript start=+<script \_[^>]*language *=\_[^>]*vbscript\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
endif

syn cluster htmlJavaScript      add=@htmlPreproc

if main_syntax != 'java' || exists("java_css")
  " embedded style sheets
  syn keyword htmlArg           contained media
  syn include @htmlCss syntax/css.vim
  unlet b:current_syntax
  syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc
  syn match htmlCssStyleComment contained "\(<!--\|-->\)"
  syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc
  hi def link htmlStyleArg htmlString
endif

if main_syntax == "html"
  " synchronizing (does not always work if a comment includes legal
  " html tags, but doing it right would mean to always start
  " at the first line, which is too slow)
  syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
  syn sync match htmlHighlight groupthere javaScript "<script"
  syn sync match htmlHighlightSkip "^.*['\"].*$"
  syn sync minlines=10
endif

" The default highlighting.
hi def link htmlTag                     Function
hi def link htmlEndTag                  Identifier
hi def link htmlArg                     Type
hi def link htmlTagName                 htmlStatement
hi def link htmlSpecialTagName          Exception
hi def link htmlValue                     String
hi def link htmlSpecialChar             Special

if !exists("html_no_rendering")
  hi def link htmlH1                      Title
  hi def link htmlH2                      htmlH1
  hi def link htmlH3                      htmlH2
  hi def link htmlH4                      htmlH3
  hi def link htmlH5                      htmlH4
  hi def link htmlH6                      htmlH5
  hi def link htmlHead                    PreProc
  hi def link htmlTitle                   Title
  hi def link htmlBoldItalicUnderline     htmlBoldUnderlineItalic
  hi def link htmlUnderlineBold           htmlBoldUnderline
  hi def link htmlUnderlineItalicBold     htmlBoldUnderlineItalic
  hi def link htmlUnderlineBoldItalic     htmlBoldUnderlineItalic
  hi def link htmlItalicUnderline         htmlUnderlineItalic
  hi def link htmlItalicBold              htmlBoldItalic
  hi def link htmlItalicBoldUnderline     htmlBoldUnderlineItalic
  hi def link htmlItalicUnderlineBold     htmlBoldUnderlineItalic
  hi def link htmlLink                    Underlined
  hi def link htmlLeadingSpace            None
  if !exists("html_my_rendering")
    hi def htmlBold                term=bold cterm=bold gui=bold
    hi def htmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline
    hi def htmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic
    hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
    hi def htmlUnderline           term=underline cterm=underline gui=underline
    hi def htmlUnderlineItalic     term=italic,underline cterm=italic,underline gui=italic,underline
    hi def htmlItalic              term=italic cterm=italic gui=italic
    if v:version > 800 || v:version == 800 && has("patch1038")
        hi def htmlStrike              term=strikethrough cterm=strikethrough gui=strikethrough
    else
        hi def htmlStrike              term=underline cterm=underline gui=underline
    endif
  endif
endif

hi def link htmlPreStmt            PreProc
hi def link htmlPreError           Error
hi def link htmlPreProc            PreProc
hi def link htmlPreAttr            String
hi def link htmlPreProcAttrName    PreProc
hi def link htmlPreProcAttrError   Error
hi def link htmlSpecial            Special
hi def link htmlSpecialChar        Special
hi def link htmlString             String
hi def link htmlStatement          Statement
hi def link htmlComment            Comment
hi def link htmlCommentPart        Comment
hi def link htmlValue              String
hi def link htmlCommentError       htmlError
hi def link htmlTagError           htmlError
hi def link htmlEvent              javaScript
hi def link htmlError              Error

hi def link javaScript             Special
hi def link javaScriptExpression   javaScript
hi def link htmlCssStyleComment    Comment
hi def link htmlCssDefinition      Special

let b:current_syntax = "html"

if main_syntax == 'html'
  unlet main_syntax
endif

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�-	��vim80/syntax/datascript.vimnu�[���" Vim syntax file
" Language:	DataScript
" Maintainer:	Dominique Pelle <dominique.pelle@gmail.com>
" Last Change:	2015 Jul 30
"
" DataScript is a formal language for modelling binary datatypes,
" bitstreams or file formats. For more information, see:
"
" http://dstools.sourceforge.net/DataScriptLanguageOverview.html

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn keyword dsPackage      import package
syn keyword dsType         bit bool string
syn keyword dsType         int int8 int16 int32 int64
syn keyword dsType         uint8 uint16 uint32 uint64
syn keyword dsType         varint16 varint32 varint64
syn keyword dsType         varuint16 varuint32 varuint64
syn keyword dsType         leint16 leint32 leint64
syn keyword dsType         leuint16 leuint32 leuint64
syn keyword dsEndian       little big
syn keyword dsAlign        align
syn keyword dsLabel        case default
syn keyword dsConditional  if condition
syn keyword dsBoolean      true false
syn keyword dsCompound     union choice on enum bitmask subtype explicit
syn keyword dsKeyword      function return
syn keyword dsOperator     sizeof bitsizeof lengthof is sum forall in
syn keyword dsStorageClass const
syn keyword dsTodo         contained TODO FIXME XXX
syn keyword dsSql          sql sql_table sql_database sql_pragma sql_index
syn keyword dsSql          sql_integer sql_metadata sql_key sql_virtual
syn keyword dsSql          using reference_key foreign_key to

" dsCommentGroup allows adding matches for special things in comments.
syn cluster dsCommentGroup  contains=dsTodo

syn match   dsOffset        display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:"

syn match   dsNumber        display "\<\d\+\>"
syn match   dsNumberHex     display "\<0[xX]\x\+\>"
syn match   dsNumberBin     display "\<[01]\+[bB]\>" contains=dsBinaryB
syn match   dsBinaryB       display contained "[bB]\>"
syn match   dsOctal         display "\<0\o\+\>" contains=dsOctalZero
syn match   dsOctalZero     display contained "\<0"

syn match   dsOctalError    display "\<0\o*[89]\d*\>"

syn match   dsCommentError      display "\*/"
syn match   dsCommentStartError display "/\*"me=e-1 contained

syn region   dsCommentL
  \ start="//" skip="\\$" end="$" keepend
  \ contains=@dsCommentGroup,@Spell
syn region   dsComment
  \ matchgroup=dsCommentStart start="/\*" end="\*/"
  \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend

syn region  dsString
  \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell

syn sync ccomment dsComment

" Define the default highlighting.
hi def link dsType              Type
hi def link dsEndian            StorageClass
hi def link dsStorageClass      StorageClass
hi def link dsAlign             Label
hi def link dsLabel             Label
hi def link dsOffset            Label
hi def link dsSql               PreProc
hi def link dsCompound          Structure
hi def link dsConditional       Conditional
hi def link dsBoolean           Boolean
hi def link dsKeyword           Statement
hi def link dsString            String
hi def link dsNumber            Number
hi def link dsNumberBin         Number
hi def link dsBinaryB           Special
hi def link dsOctal             Number
hi def link dsOctalZero         Special
hi def link dsOctalError        Error
hi def link dsNumberHex         Number
hi def link dsTodo              Todo
hi def link dsOperator          Operator
hi def link dsPackage           Include
hi def link dsCommentError      Error
hi def link dsCommentStartError Error
hi def link dsCommentStart      dsComment
hi def link dsCommentL          dsComment
hi def link cCommentL           dsComment
hi def link dsComment           Comment

let b:current_syntax = "datascript"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z#���H�Hvim80/syntax/cf.vimnu�[���" Vim syntax file
"
" Language:     CFML (ColdFusion)
" Author:       Ernst M. van der Linden <ernst.vanderlinden@ernestoz.com>
" License:      The MIT License (MIT)
"
" Maintainer:   Ernst M. van der Linden <ernst.vanderlinden@ernestoz.com>
" URL:          https://github.com/ernstvanderlinden/vim-coldfusion
" Last Change:  2017 Nov 28
"
" Filenames:    *.cfc *.cfm

" Quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif

" Using line continuation here.
let s:cpo_save=&cpo
set cpo-=C

sy sync fromstart
" 20171126: disabled as we have fast computers now.
"sy sync maxlines=2000
sy case ignore

" INCLUDES {{{
sy include @sqlSyntax $VIMRUNTIME/syntax/sql.vim
" 20161010: Disabled include html highlighting as it contains huge keywords
" regex, so it will have impact on performance.  Use own simple SGML tag
" coloring instead.
"runtime! syntax/html.vim
" / INCLUDES }}}

" NUMBER {{{
sy match cfmlNumber
    \ "\v<\d+>"
" / NUMBER }}}

" EQUAL SIGN {{{
sy match cfmlEqualSign
    \ "\v\="
" / EQUAL SIGN }}}

" BOOLEAN {{{
sy match cfmlBoolean
    \ "\v<(true|false)>"
" / BOOLEAN }}}

" HASH SURROUNDED {{{
sy region cfmlHashSurround
  \ keepend
  \ oneline
  \ start="#"
  \ end="#"
  \ skip="##"
    \ contains=
      \@cfmlOperator,
      \@cfmlPunctuation,
      \cfmlBoolean,
      \cfmlCoreKeyword,
      \cfmlCoreScope,
      \cfmlCustomKeyword,
      \cfmlCustomScope,
      \cfmlEqualSign,
      \cfmlFunctionName,
      \cfmlNumber
" / HASH SURROUNDED }}}

" OPERATOR {{{

" OPERATOR - ARITHMETIC {{{
" +7 -7
" ++i --i
" i++ i--
" + - * / %
" += -= *= /= %=
" ^ mod
sy match cfmlArithmeticOperator
  \ "\v
  \(\+|-)\ze\d
  \|(\+\+|--)\ze\w
  \|\w\zs(\+\+|--)
  \|(\s(
  \(\+|-|\*|\/|\%){1}\={,1}
  \|\^
  \|mod
  \)\s)
  \"
" / OPERATOR - ARITHMETIC }}}

" OPERATOR - BOOLEAN {{{
" not and or xor eqv imp
" ! && ||
sy match cfmlBooleanOperator
  \ "\v\s
  \(not|and|or|xor|eqv|imp
  \|\!|\&\&|\|\|
  \)(\s|\))
  \|\s\!\ze\w
  \"
" / OPERATOR - BOOLEAN }}}

" OPERATOR - DECISION {{{
"is|equal|eq
"is not|not equal|neq
"contains|does not contain
"greater than|gt
"less than|lt
"greater than or equal to|gte|ge
"less than or equal to|lte|le
"==|!=|>|<|>=|<=
sy match cfmlDecisionOperator
  \ "\v\s
  \(is|equal|eq
  \|is not|not equal|neq
  \|contains|does not contain
  \|greater than|gt
  \|less than|lt
  \|greater than or equal to|gte|ge
  \|less than or equal to|lte|le
  \|(!|\<|\>|\=){1}\=
  \|\<
  \|\>
  \)\s"
" / OPERATOR - DECISION }}}

" OPERATOR - STRING {{{
" &
" &=
sy match cfmlStringOperator
    \ "\v\s\&\={,1}\s"
" / OPERATOR - STRING }}}

" OPERATOR - TERNARY {{{
" ? :
sy match cfmlTernaryOperator
  \ "\v\s
  \\?|\:
  \\s"
" / OPERATOR - TERNARY }}}

sy cluster cfmlOperator
  \ contains=
    \cfmlArithmeticOperator,
    \cfmlBooleanOperator,
    \cfmlDecisionOperator,
    \cfmlStringOperator,
    \cfmlTernaryOperator
" / OPERATOR }}}

" PARENTHESIS {{{
sy cluster cfmlParenthesisRegionContains
  \ contains=
    \@cfmlAttribute,
    \@cfmlComment,
    \@cfmlFlowStatement,
    \@cfmlOperator,
    \@cfmlPunctuation,
    \cfmlBoolean,
    \cfmlBrace,
    \cfmlCoreKeyword,
    \cfmlCoreScope,
    \cfmlCustomKeyword,
    \cfmlCustomScope,
    \cfmlEqualSign,
    \cfmlFunctionName,
    \cfmlNumber,
    \cfmlStorageKeyword,
    \cfmlStorageType

sy region cfmlParenthesisRegion1
  \ extend
  \ matchgroup=cfmlParenthesis1
  \ transparent
  \ start=/(/
  \ end=/)/
  \ contains=
    \cfmlParenthesisRegion2,
    \@cfmlParenthesisRegionContains
sy region cfmlParenthesisRegion2
  \ matchgroup=cfmlParenthesis2
  \ transparent
  \ start=/(/
  \ end=/)/
  \ contains=
    \cfmlParenthesisRegion3,
    \@cfmlParenthesisRegionContains
sy region cfmlParenthesisRegion3
  \ matchgroup=cfmlParenthesis3
  \ transparent
  \ start=/(/
  \ end=/)/
  \ contains=
    \cfmlParenthesisRegion1,
    \@cfmlParenthesisRegionContains
sy cluster cfmlParenthesisRegion
  \ contains=
    \cfmlParenthesisRegion1,
    \cfmlParenthesisRegion2,
    \cfmlParenthesisRegion3
" / PARENTHESIS }}}

" BRACE {{{
sy match cfmlBrace
    \ "{\|}"

sy region cfmlBraceRegion
  \ extend
  \ fold
  \ keepend
  \ transparent
  \ start="{"
  \ end="}"
" / BRACE }}}

" PUNCTUATION {{{

" PUNCTUATION - BRACKET {{{
sy match cfmlBracket
  \ "\(\[\|\]\)"
  \ contained
" / PUNCTUATION - BRACKET }}}

" PUNCTUATION - CHAR {{{
sy match cfmlComma ","
sy match cfmlDot "\."
sy match cfmlSemiColon ";"

" / PUNCTUATION - CHAR }}}

" PUNCTUATION - QUOTE {{{
sy region cfmlSingleQuotedValue
  \ matchgroup=cfmlSingleQuote
  \ start=/'/
  \ skip=/''/
  \ end=/'/
  \ contains=
    \cfmlHashSurround

sy region cfmlDoubleQuotedValue
  \ matchgroup=cfmlDoubleQuote
  \ start=/"/
  \ skip=/""/
  \ end=/"/
  \ contains=
    \cfmlHashSurround

sy cluster cfmlQuotedValue
  \ contains=
    \cfmlDoubleQuotedValue,
    \cfmlSingleQuotedValue

sy cluster cfmlQuote
  \ contains=
    \cfmlDoubleQuote,
    \cfmlSingleQuote
" / PUNCTUATION - QUOTE }}}

sy cluster cfmlPunctuation
  \ contains=
    \@cfmlQuote,
    \@cfmlQuotedValue,
    \cfmlBracket,
    \cfmlComma,
    \cfmlDot,
    \cfmlSemiColon

" / PUNCTUATION }}}

" TAG START AND END {{{
" tag start
" <cf...>
" s^^   e
sy region cfmlTagStart
  \ keepend
  \ transparent
  \ start="\c<cf_*"
  \ end=">"
\ contains=
  \@cfmlAttribute,
  \@cfmlComment,
  \@cfmlOperator,
  \@cfmlParenthesisRegion,
  \@cfmlPunctuation,
  \@cfmlQuote,
  \@cfmlQuotedValue,
  \cfmlAttrEqualSign,
  \cfmlBoolean,
  \cfmlBrace,
  \cfmlCoreKeyword,
  \cfmlCoreScope,
  \cfmlCustomKeyword,
  \cfmlCustomScope,
  \cfmlEqualSign,
  \cfmlFunctionName,
  \cfmlNumber,
  \cfmlStorageKeyword,
  \cfmlStorageType,
  \cfmlTagBracket,
  \cfmlTagName

" tag end
" </cf...>
" s^^^   e
sy match cfmlTagEnd
  \ transparent
  \ "\c</cf_*[^>]*>"
  \ contains=
    \cfmlTagBracket,
    \cfmlTagName

" tag bracket
" </...>
" ^^   ^
sy match cfmlTagBracket
  \ contained
  \ "\(<\|>\|\/\)"

" tag name
" <cf...>
"  s^^^e
sy match cfmlTagName
  \ contained
  \ "\v<\/*\zs\ccf\w*"
" / TAG START AND END }}}

" ATTRIBUTE NAME AND VALUE {{{
sy match cfmlAttrName
  \ contained
  \ "\v(var\s)@<!\w+\ze\s*\=([^\=])+"

sy match cfmlAttrValue
  \ contained
  \ "\v(\=\"*)\zs\s*\w*"

sy match cfmlAttrEqualSign
  \ contained
  \ "\v\="

sy cluster cfmlAttribute
\ contains=
  \@cfmlQuotedValue,
  \cfmlAttrEqualSign,
  \cfmlAttrName,
  \cfmlAttrValue,
  \cfmlCoreKeyword,
  \cfmlCoreScope
" / ATTRIBUTE NAME AND VALUE }}}

" TAG REGION AND FOLDING {{{

" CFCOMPONENT REGION AND FOLD {{{
" <cfcomponent
" s^^^^^^^^^^^
" </cfcomponent>
" ^^^^^^^^^^^^^e
sy region cfmlComponentTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfcomponent"
  \ end="\c</cfcomponent>"

" / CFCOMPONENT REGION AND FOLD }}}

" CFFUNCTION REGION AND FOLD {{{
" <cffunction
" s^^^^^^^^^^
" </cffunction>
" ^^^^^^^^^^^^e
sy region cfmlFunctionTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cffunction"
  \ end="\c</cffunction>"
" / CFFUNCTION REGION AND FOLD }}}

" CFIF REGION AND FOLD {{{
" <cfif
" s^^^^
" </cfif>
" ^^^^^^e
sy region cfmlIfTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfif"
  \ end="\c</cfif>"
" / CFIF REGION AND FOLD }}}

" CFLOOP REGION AND FOLD {{{
" <cfloop
" s^^^^^^
" </cfloop>
" ^^^^^^^^e
sy region cfmlLoopTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfloop"
  \ end="\c</cfloop>"
" / CFLOOP REGION AND FOLD }}}

" CFOUTPUT REGION AND FOLD {{{
" <cfoutput
" s^^^^^^^^
" </cfoutput>
" ^^^^^^^^^^e
sy region cfmlOutputTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfoutput"
  \ end="\c</cfoutput>"
" / CFOUTPUT REGION AND FOLD }}}

" CFQUERY REGION AND FOLD {{{
" <cfquery
" s^^^^^^^
" </cfquery>
" ^^^^^^^^^e
        "\@cfmlSqlStatement,
sy region cfmlQueryTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfquery"
  \ end="\c</cfquery>"
  \ contains=
    \@cfmlSqlStatement,
    \cfmlTagStart,
    \cfmlTagEnd,
    \cfmlTagComment
" / CFQUERY REGION AND FOLD }}}

" SAVECONTENT REGION AND FOLD {{{
" <savecontent
" s^^^^^^^^^^^
" </savecontent>
" ^^^^^^^^^^^^^e
sy region cfmlSavecontentTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfsavecontent"
  \ end="\c</cfsavecontent>"
" / SAVECONTENT REGION AND FOLD }}}

" CFSCRIPT REGION AND FOLD {{{
" <cfscript>
" s^^^^^^^^^
" </cfscript>
" ^^^^^^^^^^e
"\cfmlCustomScope,
sy region cfmlScriptTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfscript>"
  \ end="\c</cfscript>"
  \ contains=
    \@cfmlComment,
    \@cfmlFlowStatement,
    \cfmlHashSurround,
    \@cfmlOperator,
    \@cfmlParenthesisRegion,
    \@cfmlPunctuation,
    \cfmlBoolean,
    \cfmlBrace,
    \cfmlCoreKeyword,
    \cfmlCoreScope,
    \cfmlCustomKeyword,
    \cfmlCustomScope,
    \cfmlEqualSign,
    \cfmlFunctionDefinition,
    \cfmlFunctionName,
    \cfmlNumber,
    \cfmlOddFunction,
    \cfmlStorageKeyword,
    \cfmlTagEnd,
    \cfmlTagStart
" / CFSCRIPT REGION AND FOLD }}}

" CFSWITCH REGION AND FOLD {{{
" <cfswitch
" s^^^^^^^^
" </cfswitch>
" ^^^^^^^^^^e
sy region cfmlSwitchTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cfswitch"
  \ end="\c</cfswitch>"
" / CFSWITCH REGION AND FOLD }}}

" CFTRANSACTION REGION AND FOLD {{{
" <cftransaction
" s^^^^^^^^^^^^^
" </cftransaction>
" ^^^^^^^^^^^^^^^e
sy region cfmlTransactionTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cftransaction"
  \ end="\c</cftransaction>"
" / CFTRANSACTION REGION AND FOLD }}}

" CUSTOM TAG REGION AND FOLD {{{
" <cf_...>
" s^^^   ^
" </cf_...>
" ^^^^^   e
sy region cfmlCustomTagRegion
  \ fold
  \ keepend
  \ transparent
  \ start="\c<cf_[^>]*>"
  \ end="\c</cf_[^>]*>"
" / CUSTOM TAG REGION AND FOLD }}}

" / TAG REGION AND FOLDING }}}

" COMMENT {{{

" COMMENT BLOCK {{{
" /*...*/
" s^   ^e
sy region cfmlCommentBlock
  \ keepend
  \ start="/\*"
  \ end="\*/"
  \ contains=
    \cfmlMetaData
" / COMMENT BLOCK }}}

" COMMENT LINE {{{
" //...
" s^
sy match cfmlCommentLine
        \ "\/\/.*"
" / COMMENT LINE }}}

sy cluster cfmlComment
  \ contains=
    \cfmlCommentBlock,
    \cfmlCommentLine
" / COMMENT }}}

" TAG COMMENT {{{
" <!---...--->
" s^^^^   ^^^e
sy region cfmlTagComment
  \ keepend
    \ start="<!---"
    \ end="--->"
    \ contains=
      \cfmlTagComment
" / TAG COMMENT }}}

" FLOW STATEMENT {{{
" BRANCH FLOW KEYWORD {{{
sy keyword cfmlBranchFlowKeyword
  \ break
  \ continue
  \ return

" / BRANCH KEYWORD }}}

" DECISION FLOW KEYWORD {{{
sy keyword cfmlDecisionFlowKeyword
  \ case
  \ defaultcase
  \ else
  \ if
  \ switch

" / DECISION FLOW KEYWORD }}}

" LOOP FLOW KEYWORD {{{
sy keyword cfmlLoopFlowKeyword
  \ do
  \ for
  \ in
  \ while

" / LOOP FLOW KEYWORD }}}

" TRY FLOW KEYWORD {{{
sy keyword cfmlTryFlowKeyword
  \ catch
  \ finally
  \ rethrow
  \ throw
  \ try

" / TRY FLOW KEYWORD }}}

sy cluster cfmlFlowStatement
  \ contains=
    \cfmlBranchFlowKeyword,
    \cfmlDecisionFlowKeyword,
    \cfmlLoopFlowKeyword,
    \cfmlTryFlowKeyword

" / FLOW STATEMENT }}}

" STORAGE KEYWORD {{{
sy keyword cfmlStorageKeyword
    \ var
" / STORAGE KEYWORD }}}

" STORAGE TYPE {{{
sy match cfmlStorageType
  \ contained
  \ "\v<
    \(any
    \|array
    \|binary
    \|boolean
    \|date
    \|numeric
    \|query
    \|string
    \|struct
    \|uuid
    \|void
    \|xml
  \){1}\ze(\s*\=)@!"
" / STORAGE TYPE }}}

" CORE KEYWORD {{{
sy match cfmlCoreKeyword
  \ "\v<
    \(new
    \|required
    \)\ze\s"
" / CORE KEYWORD }}}

" CORE SCOPE {{{
sy match cfmlCoreScope
  \ "\v<
    \(application
    \|arguments
    \|attributes
    \|caller
    \|cfcatch
    \|cffile
    \|cfhttp
    \|cgi
    \|client
    \|cookie
    \|form
    \|local
    \|request
    \|server
    \|session
    \|super
    \|this
    \|thisTag
    \|thread
    \|variables
    \|url
    \){1}\ze(,|\.|\[|\)|\s)"
" / CORE SCOPE }}}

" SQL STATEMENT {{{
sy cluster cfmlSqlStatement
  \ contains=
    \@cfmlParenthesisRegion,
    \@cfmlQuote,
    \@cfmlQuotedValue,
    \@sqlSyntax,
    \cfmlBoolean,
    \cfmlDot,
    \cfmlEqualSign,
    \cfmlFunctionName,
    \cfmlHashSurround,
    \cfmlNumber
" / SQL STATEMENT }}}

" TAG IN SCRIPT {{{
sy match cfmlTagNameInScript
    \ "\vcf_*\w+\s*\ze\("
" / TAG IN SCRIPT }}}

" METADATA {{{
sy region cfmlMetaData
  \ contained
  \ keepend
  \ start="@\w\+"
  \ end="$"
  \ contains=
    \cfmlMetaDataName

sy match cfmlMetaDataName
    \ contained
    \ "@\w\+"
" / METADATA }}}

" COMPONENT DEFINITION {{{
sy region cfmlComponentDefinition
  \ start="component"
  \ end="{"me=e-1
  \ contains=
    \@cfmlAttribute,
    \cfmlComponentKeyword

sy match cfmlComponentKeyword
  \ contained
  \ "\v<component>"
" / COMPONENT DEFINITION }}}

" INTERFACE DEFINITION {{{
sy match cfmlInterfaceDefinition
  \ "interface\s.*{"me=e-1
  \ contains=
    \cfmlInterfaceKeyword

sy match cfmlInterfaceKeyword
    \ contained
    \ "\v<interface>"
" / INTERFACE DEFINITION }}}

" PROPERTY {{{
sy region cfmlProperty
  \ transparent
  \ start="\v<property>"
  \ end=";"me=e-1
  \ contains=
    \@cfmlQuotedValue,
    \cfmlAttrEqualSign,
    \cfmlAttrName,
    \cfmlAttrValue,
    \cfmlPropertyKeyword

sy match cfmlPropertyKeyword
        \ contained
        \ "\v<property>"
" / PROPERTY }}}

" FUNCTION DEFINITION {{{
sy match cfmlFunctionDefinition
  \ "\v
    \(<(public|private|package)\s){,1}
    \(<
      \(any
      \|array
      \|binary
      \|boolean
      \|date
      \|numeric
      \|query
      \|string
      \|struct
      \|uuid
      \|void
      \|xml
    \)\s){,1}
  \<function\s\w+\s*\("me=e-1
  \ contains=
    \cfmlFunctionKeyword,
    \cfmlFunctionModifier,
    \cfmlFunctionName,
    \cfmlFunctionReturnType

" FUNCTION KEYWORD {{{
sy match cfmlFunctionKeyword
  \ contained
  \ "\v<function>"
" / FUNCTION KEYWORD }}}

" FUNCTION MODIFIER {{{
sy match cfmlFunctionModifier
  \ contained
    \ "\v<
    \(public
    \|private
    \|package
    \)>"
" / FUNCTION MODIFIER }}}

" FUNCTION RETURN TYPE {{{
sy match cfmlFunctionReturnType
  \ contained
    \ "\v
    \(any
    \|array
    \|binary
    \|boolean
    \|date
    \|numeric
    \|query
    \|string
    \|struct
    \|uuid
    \|void
    \|xml
    \)"
" / FUNCTION RETURN TYPE }}}

" FUNCTION NAME {{{
" specific regex for core functions decreases performance
" so use the same highlighting for both function types
sy match cfmlFunctionName
    \ "\v<(cf|if|elseif|throw)@!\w+\s*\ze\("
" / FUNCTION NAME }}}

" / FUNCTION DEFINITION }}}

" ODD FUNCTION {{{
sy region cfmlOddFunction
  \ transparent
  \ start="\v<
    \(abort
    \|exit
    \|import
    \|include
    \|lock
    \|pageencoding
    \|param
    \|savecontent
    \|thread
    \|transaction
    \){1}"
  \ end="\v(\{|;)"me=e-1
  \ contains=
    \@cfmlQuotedValue,
    \cfmlAttrEqualSign,
    \cfmlAttrName,
    \cfmlAttrValue,
    \cfmlCoreKeyword,
    \cfmlOddFunctionKeyword,
    \cfmlCoreScope

" ODD FUNCTION KEYWORD {{{
sy match cfmlOddFunctionKeyword
  \ contained
    \ "\v<
    \(abort
    \|exit
    \|import
    \|include
    \|lock
    \|pageencoding
    \|param
    \|savecontent
    \|thread
    \|transaction
    \)\ze(\s|$|;)"
" / ODD FUNCTION KEYWORD }}}

" / ODD FUNCTION }}}

" CUSTOM {{{

" CUSTOM KEYWORD {{{
sy match cfmlCustomKeyword
  \ contained
    \ "\v<
    \(customKeyword1
    \|customKeyword2
    \|customKeyword3
    \)>"
" / CUSTOM KEYWORD }}}

" CUSTOM SCOPE {{{
sy match cfmlCustomScope
  \ contained
    \ "\v<
    \(prc
    \|rc
    \|event
    \|(\w+Service)
    \){1}\ze(\.|\[)"
" / CUSTOM SCOPE }}}

" / CUSTOM }}}

" SGML TAG START AND END {{{
" SGML tag start
" <...>
" s^^^e
sy region cfmlSGMLTagStart
  \ keepend
  \ transparent
  \ start="\v(\<cf)@!\zs\<\w+"
  \ end=">"
  \ contains=
    \@cfmlAttribute,
    \@cfmlComment,
    \@cfmlOperator,
    \@cfmlParenthesisRegion,
    \@cfmlPunctuation,
    \@cfmlQuote,
    \@cfmlQuotedValue,
    \cfmlAttrEqualSign,
    \cfmlBoolean,
    \cfmlBrace,
    \cfmlCoreKeyword,
    \cfmlCoreScope,
    \cfmlCustomKeyword,
    \cfmlCustomScope,
    \cfmlEqualSign,
    \cfmlFunctionName,
    \cfmlNumber,
    \cfmlStorageKeyword,
    \cfmlStorageType,
    \cfmlTagBracket,
    \cfmlSGMLTagName

" SGML tag end
" </...>
" s^^^^e
sy match cfmlSGMLTagEnd
  \ transparent
  \ "\v(\<\/cf)@!\zs\<\/\w+\>"
  \ contains=
    \cfmlTagBracket,
    \cfmlSGMLTagName

" SGML tag name
" <...>
" s^^^e
sy match cfmlSGMLTagName
  \ contained
  \ "\v(\<\/*)\zs\w+"

" / SGML TAG START AND END }}}

" HIGHLIGHTING {{{

hi link cfmlNumber Number
hi link cfmlBoolean Boolean
hi link cfmlEqualSign Keyword
" HASH SURROUND
hi link cfmlHash PreProc
hi link cfmlHashSurround PreProc
" OPERATOR
hi link cfmlArithmeticOperator Function
hi link cfmlBooleanOperator Function
hi link cfmlDecisionOperator Function
hi link cfmlStringOperator Function
hi link cfmlTernaryOperator Function
" PARENTHESIS
hi link cfmlParenthesis1 Statement
hi link cfmlParenthesis2 String
hi link cfmlParenthesis3 Delimiter
" BRACE
hi link cfmlBrace PreProc
" PUNCTUATION - BRACKET
hi link cfmlBracket Statement
" PUNCTUATION - CHAR
hi link cfmlComma Comment
hi link cfmlDot Comment
hi link cfmlSemiColon Comment
" PUNCTUATION - QUOTE
hi link cfmlDoubleQuote String
hi link cfmlDoubleQuotedValue String
hi link cfmlSingleQuote String
hi link cfmlSingleQuotedValue String
" TAG START AND END
hi link cfmlTagName Function
hi link cfmlTagBracket Comment
" ATTRIBUTE NAME AND VALUE
hi link cfmlAttrName Type
hi link cfmlAttrValue Special
" COMMENT
hi link cfmlCommentBlock Comment
hi link cfmlCommentLine Comment
hi link cfmlTagComment Comment
" FLOW STATEMENT
hi link cfmlDecisionFlowKeyword Conditional
hi link cfmlLoopFlowKeyword Repeat
hi link cfmlTryFlowKeyword Exception
hi link cfmlBranchFlowKeyword Keyword
" STORAGE KEYWORD
hi link cfmlStorageKeyword Keyword
" STORAGE TYPE
hi link cfmlStorageType Keyword
" CORE KEYWORD
hi link cfmlCoreKeyword PreProc
" CORE SCOPE
hi link cfmlCoreScope Keyword
" TAG IN SCRIPT
hi link cfmlTagNameInScript Function
" METADATA
" meta data value = cfmlMetaData
hi link cfmlMetaData String
hi link cfmlMetaDataName Type
" COMPONENT DEFINITION
hi link cfmlComponentKeyword Keyword
" INTERFACE DEFINITION
hi link cfmlInterfaceKeyword Keyword
" PROPERTY
hi link cfmlPropertyKeyword Keyword
" FUNCTION DEFINITION
hi link cfmlFunctionKeyword Keyword
hi link cfmlFunctionModifier Keyword
hi link cfmlFunctionReturnType Keyword
hi link cfmlFunctionName Function
" ODD FUNCTION
hi link cfmlOddFunctionKeyword Function
" CUSTOM
hi link cfmlCustomKeyword Keyword
hi link cfmlCustomScope Structure
" SGML TAG
hi link cfmlSGMLTagName Ignore

" / HIGHLIGHTING }}}

let b:current_syntax = "cfml"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�B�{{vim80/syntax/README.txtnu�[���This directory contains Vim scripts for syntax highlighting.

These scripts are not for a language, but are used by Vim itself:

syntax.vim	Used for the ":syntax on" command.  Uses synload.vim.

manual.vim	Used for the ":syntax manual" command.  Uses synload.vim.

synload.vim	Contains autocommands to load a language file when a certain
		file name (extension) is used.  And sets up the Syntax menu
		for the GUI.

nosyntax.vim	Used for the ":syntax off" command.  Undo the loading of
		synload.vim.


A few special files:

2html.vim	Converts any highlighted file to HTML (GUI only).
colortest.vim	Check for color names and actual color on screen.
hitest.vim	View the current highlight settings.
whitespace.vim  View Tabs and Spaces.


If you want to write a syntax file, read the docs at ":help usr_44.txt".

If you make a new syntax file which would be useful for others, please send it
to Bram@vim.org.  Include instructions for detecting the file type for this
language, by file name extension or by checking a few lines in the file.
And please write the file in a portable way, see ":help 44.12".

If you have remarks about an existing file, send them to the maintainer of
that file.  Only when you get no response send a message to Bram@vim.org.

If you are the maintainer of a syntax file and make improvements, send the new
version to Bram@vim.org.

For further info see ":help syntax" in Vim.
PK�j�Z�?|)|)vim80/syntax/nanorc.vimnu�[���" Vim syntax file
" Language:             nanorc(5) - GNU nano configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword nanorcTodo          contained TODO FIXME XXX NOTE

syn region  nanorcComment       display oneline start='^\s*#' end='$'
                                \ contains=nanorcTodo,@Spell

syn match   nanorcBegin         display '^'
                                \ nextgroup=nanorcKeyword,nanorcComment
                                \ skipwhite

syn keyword nanorcKeyword       contained set unset
                                \ nextgroup=nanorcBoolOption,
                                \ nanorcStringOption,nanorcNumberOption
                                \ skipwhite

syn keyword nanorcKeyword       contained syntax
                                \ nextgroup=nanorcSynGroupName skipwhite

syn keyword nanorcKeyword       contained color
                                \ nextgroup=@nanorcFGColor skipwhite

syn keyword nanorcBoolOption    contained autoindent backup const cut
                                \ historylog morespace mouse multibuffer
                                \ noconvert nofollow nohelp nowrap preserve
                                \ rebinddelete regexp smarthome smooth suspend
                                \ tempfile view

syn keyword nanorcStringOption  contained backupdir brackets operatingdir
                                \ punct quotestr speller whitespace
                                \ nextgroup=nanorcString skipwhite

syn keyword nanorcNumberOption  contained fill tabsize
                                \ nextgroup=nanorcNumber skipwhite

syn region  nanorcSynGroupName  contained display oneline start=+"+
                                \ end=+"\ze\%([[:blank:]]\|$\)+
                                \ nextgroup=nanorcRegexes skipwhite

syn match   nanorcString        contained display '".*"'

syn region  nanorcRegexes       contained display oneline start=+"+
                                \ end=+"\ze\%([[:blank:]]\|$\)+
                                \ nextgroup=nanorcRegexes skipwhite

syn match   nanorcNumber        contained display '[+-]\=\<\d\+\>'

syn cluster nanorcFGColor       contains=nanorcFGWhite,nanorcFGBlack,
                                \ nanorcFGRed,nanorcFGBlue,nanorcFGGreen,
                                \ nanorcFGYellow,nanorcFGMagenta,nanorcFGCyan,
                                \ nanorcFGBWhite,nanorcFGBBlack,nanorcFGBRed,
                                \ nanorcFGBBlue,nanorcFGBGreen,nanorcFGBYellow,
                                \ nanorcFGBMagenta,nanorcFGBCyan

syn keyword nanorcFGWhite       contained white
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBlack       contained black
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGRed         contained red
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBlue        contained blue
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGGreen       contained green
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGYellow      contained yellow
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGMagenta     contained magenta
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGCyan        contained cyan
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBWhite      contained brightwhite
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBBlack      contained brightblack
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBRed        contained brightred
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBBlue       contained brightblue
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBGreen      contained brightgreen
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBYellow     contained brightyellow
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBMagenta    contained brightmagenta
                                \ nextgroup=@nanorcFGSpec skipwhite

syn keyword nanorcFGBCyan       contained brightcyan
                                \ nextgroup=@nanorcFGSpec skipwhite

syn cluster nanorcBGColor       contains=nanorcBGWhite,nanorcBGBlack,
                                \ nanorcBGRed,nanorcBGBlue,nanorcBGGreen,
                                \ nanorcBGYellow,nanorcBGMagenta,nanorcBGCyan,
                                \ nanorcBGBWhite,nanorcBGBBlack,nanorcBGBRed,
                                \ nanorcBGBBlue,nanorcBGBGreen,nanorcBGBYellow,
                                \ nanorcBGBMagenta,nanorcBGBCyan

syn keyword nanorcBGWhite       contained white
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBlack       contained black
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGRed         contained red
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBlue        contained blue
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGGreen       contained green
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGYellow      contained yellow
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGMagenta     contained magenta
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGCyan        contained cyan
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBWhite      contained brightwhite
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBBlack      contained brightblack
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBRed        contained brightred
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBBlue       contained brightblue
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBGreen      contained brightgreen
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBYellow     contained brightyellow
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBMagenta    contained brightmagenta
                                \ nextgroup=@nanorcBGSpec skipwhite

syn keyword nanorcBGBCyan       contained brightcyan
                                \ nextgroup=@nanorcBGSpec skipwhite

syn match   nanorcBGColorSep    contained ',' nextgroup=@nanorcBGColor

syn cluster nanorcFGSpec        contains=nanorcBGColorSep,nanorcRegexes,
                                \ nanorcStartRegion

syn cluster nanorcBGSpec        contains=nanorcRegexes,nanorcStartRegion

syn keyword nanorcStartRegion   contained start nextgroup=nanorcStartRegionEq

syn match   nanorcStartRegionEq contained '=' nextgroup=nanorcRegion

syn region  nanorcRegion        contained display oneline start=+"+
                                \ end=+"\ze\%([[:blank:]]\|$\)+
                                \ nextgroup=nanorcEndRegion skipwhite

syn keyword nanorcEndRegion     contained end nextgroup=nanorcStartRegionEq

syn match   nanorcEndRegionEq   contained '=' nextgroup=nanorcRegex

syn region  nanorcRegex         contained display oneline start=+"+
                                \ end=+"\ze\%([[:blank:]]\|$\)+

hi def link nanorcTodo          Todo
hi def link nanorcComment       Comment
hi def link nanorcKeyword       Keyword
hi def link nanorcBoolOption    Identifier
hi def link nanorcStringOption  Identifier
hi def link nanorcNumberOption  Identifier
hi def link nanorcSynGroupName  String
hi def link nanorcString        String
hi def link nanorcRegexes       nanorcString
hi def link nanorcNumber        Number
hi def      nanorcFGWhite       ctermfg=Gray guifg=Gray
hi def      nanorcFGBlack       ctermfg=Black guifg=Black
hi def      nanorcFGRed         ctermfg=DarkRed guifg=DarkRed
hi def      nanorcFGBlue        ctermfg=DarkBlue guifg=DarkBlue
hi def      nanorcFGGreen       ctermfg=DarkGreen guifg=DarkGreen
hi def      nanorcFGYellow      ctermfg=Brown guifg=Brown
hi def      nanorcFGMagenta     ctermfg=DarkMagenta guifg=DarkMagenta
hi def      nanorcFGCyan        ctermfg=DarkCyan guifg=DarkCyan
hi def      nanorcFGBWhite      ctermfg=White guifg=White
hi def      nanorcFGBBlack      ctermfg=DarkGray guifg=DarkGray
hi def      nanorcFGBRed        ctermfg=Red guifg=Red
hi def      nanorcFGBBlue       ctermfg=Blue guifg=Blue
hi def      nanorcFGBGreen      ctermfg=Green guifg=Green
hi def      nanorcFGBYellow     ctermfg=Yellow guifg=Yellow
hi def      nanorcFGBMagenta    ctermfg=Magenta guifg=Magenta
hi def      nanorcFGBCyan       ctermfg=Cyan guifg=Cyan
hi def link nanorcBGColorSep    Normal
hi def      nanorcBGWhite       ctermbg=Gray guibg=Gray
hi def      nanorcBGBlack       ctermbg=Black guibg=Black
hi def      nanorcBGRed         ctermbg=DarkRed guibg=DarkRed
hi def      nanorcBGBlue        ctermbg=DarkBlue guibg=DarkBlue
hi def      nanorcBGGreen       ctermbg=DarkGreen guibg=DarkGreen
hi def      nanorcBGYellow      ctermbg=Brown guibg=Brown
hi def      nanorcBGMagenta     ctermbg=DarkMagenta guibg=DarkMagenta
hi def      nanorcBGCyan        ctermbg=DarkCyan guibg=DarkCyan
hi def      nanorcBGBWhite      ctermbg=White guibg=White
hi def      nanorcBGBBlack      ctermbg=DarkGray guibg=DarkGray
hi def      nanorcBGBRed        ctermbg=Red guibg=Red
hi def      nanorcBGBBlue       ctermbg=Blue guibg=Blue
hi def      nanorcBGBGreen      ctermbg=Green guibg=Green
hi def      nanorcBGBYellow     ctermbg=Yellow guibg=Yellow
hi def      nanorcBGBMagenta    ctermbg=Magenta guibg=Magenta
hi def      nanorcBGBCyan       ctermbg=Cyan guibg=Cyan
hi def link nanorcStartRegion   Type
hi def link nanorcStartRegionEq Operator
hi def link nanorcRegion        nanorcString
hi def link nanorcEndRegion     Type
hi def link nanorcEndRegionEq   Operator
hi def link nanorcRegex         nanoRegexes

let b:current_syntax = "nanorc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zh�S��vim80/syntax/apachestyle.vimnu�[���" Vim syntax file
" Language:	Apache-Style configuration files (proftpd.conf/apache.conf/..)
" Maintainer:	Ben RUBSON <ben.rubson@gmail.com>
" Former Maintainer:	Christian Hammers <ch@westend.com>
" ChangeLog:
"	2017-12-17,ch
"		correctly detect comments
"	2001-05-04,ch
"		adopted Vim 6.0 syntax style
"	1999-10-28,ch
"		initial release

" The following formats are recognised:
" Apache-style .conf
"	# Comment
"	Option	value
"	Option	value1 value2
"	Option = value1 value2 #not apache but also allowed
"	<Section Name?>
"		Option	value
"		<SubSection Name?>
"		</SubSection>
"	</Section>

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn match  apOption	/^\s*[^ \t#<=]*/
syn match  apComment	/^\s*#.*$/
"syn match  apLastValue	/[^ \t<=#]*$/ contains=apComment	ugly

" tags
syn region apTag	start=/</ end=/>/ contains=apTagOption,apTagError
" the following should originally be " [^<>]+" but this didn't work :(
syn match  apTagOption	contained / [-\/_\.:*a-zA-Z0-9]\+/ms=s+1
syn match  apTagError	contained /[^>]</ms=s+1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link apComment	Comment
hi def link apOption	Keyword
"hi def link apLastValue	Identifier		ugly?
hi def link apTag		Special
hi def link apTagOption	Identifier
hi def link apTagError	Error


let b:current_syntax = "apachestyle"
" vim: ts=8
PK�j�ZU[r�eevim80/syntax/loginaccess.vimnu�[���" Vim syntax file
" Language:             login.access(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword loginaccessTodo           contained TODO FIXME XXX NOTE

syn region  loginaccessComment        display oneline start='^#' end='$'
                                      \ contains=loginaccessTodo,@Spell

syn match   loginaccessBegin          display '^'
                                      \ nextgroup=loginaccessPermission,
                                      \ loginaccessComment skipwhite

syn match   loginaccessPermission     contained display '[^#]'
                                      \ contains=loginaccessPermError
                                      \ nextgroup=loginaccessUserSep

syn match   loginaccessPermError      contained display '[^+-]'

syn match   loginaccessUserSep        contained display ':'
                                      \ nextgroup=loginaccessUsers,
                                      \ loginaccessAllUsers,
                                      \ loginaccessExceptUsers

syn match   loginaccessUsers          contained display '[^, \t:]\+'
                                      \ nextgroup=loginaccessUserIntSep,
                                      \ loginaccessOriginSep

syn match   loginaccessAllUsers       contained display '\<ALL\>'
                                      \ nextgroup=loginaccessUserIntSep,
                                      \ loginaccessOriginSep

syn match   loginaccessLocalUsers     contained display '\<LOCAL\>'
                                      \ nextgroup=loginaccessUserIntSep,
                                      \ loginaccessOriginSep

syn match   loginaccessExceptUsers    contained display '\<EXCEPT\>'
                                      \ nextgroup=loginaccessUserIntSep,
                                      \ loginaccessOriginSep

syn match   loginaccessUserIntSep     contained display '[, \t]'
                                      \ nextgroup=loginaccessUsers,
                                      \ loginaccessAllUsers,
                                      \ loginaccessExceptUsers

syn match   loginaccessOriginSep      contained display ':'
                                      \ nextgroup=loginaccessOrigins,
                                      \ loginaccessAllOrigins,
                                      \ loginaccessExceptOrigins

syn match   loginaccessOrigins        contained display '[^, \t]\+'
                                      \ nextgroup=loginaccessOriginIntSep

syn match   loginaccessAllOrigins     contained display '\<ALL\>'
                                      \ nextgroup=loginaccessOriginIntSep

syn match   loginaccessLocalOrigins   contained display '\<LOCAL\>'
                                      \ nextgroup=loginaccessOriginIntSep

syn match   loginaccessExceptOrigins  contained display '\<EXCEPT\>'
                                      \ nextgroup=loginaccessOriginIntSep

syn match   loginaccessOriginIntSep   contained display '[, \t]'
                                      \ nextgroup=loginaccessOrigins,
                                      \ loginaccessAllOrigins,
                                      \ loginaccessExceptOrigins

hi def link loginaccessTodo           Todo
hi def link loginaccessComment        Comment
hi def link loginaccessPermission     Type
hi def link loginaccessPermError      Error
hi def link loginaccessUserSep        Delimiter
hi def link loginaccessUsers          Identifier
hi def link loginaccessAllUsers       Macro
hi def link loginaccessLocalUsers     Macro
hi def link loginaccessExceptUsers    Operator
hi def link loginaccessUserIntSep     loginaccessUserSep
hi def link loginaccessOriginSep      loginaccessUserSep
hi def link loginaccessOrigins        Identifier
hi def link loginaccessAllOrigins     Macro
hi def link loginaccessLocalOrigins   Macro
hi def link loginaccessExceptOrigins  loginaccessExceptUsers
hi def link loginaccessOriginIntSep   loginaccessUserSep

let b:current_syntax = "loginaccess"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�%ddvim80/syntax/ppd.vimnu�[���" Vim syntax file
" Language:	PPD (PostScript printer description) file
" Maintainer:	Bjoern Jacke <bjacke@suse.de>
" Last Change:	2001-10-06

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


syn match	ppdComment	"^\*%.*"
syn match	ppdDef		"\*[a-zA-Z0-9]\+"
syn match	ppdDefine	"\*[a-zA-Z0-9\-_]\+:"
syn match	ppdUI		"\*[a-zA-Z]*\(Open\|Close\)UI"
syn match	ppdUIGroup	"\*[a-zA-Z]*\(Open\|Close\)Group"
syn match	ppdGUIText	"/.*:"
syn match	ppdContraints	"^*UIConstraints:"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet


hi def link ppdComment		Comment
hi def link ppdDefine		Statement
hi def link ppdUI			Function
hi def link ppdUIGroup		Function
hi def link ppdDef			String
hi def link ppdGUIText		Type
hi def link ppdContraints		Special


let b:current_syntax = "ppd"

" vim: ts=8
PK�j�Z�(Ĵ�vim80/syntax/svg.vimnu�[���" Vim syntax file
" Language:	SVG (Scalable Vector Graphics)
" Maintainer:	Vincent Berthoux <twinside@gmail.com>
" File Types:	.svg (used in Web and vector programs)
"
" Directly call the xml syntax, because SVG is an XML
" dialect. But as some plugins base their effect on filetype,
" providing a distinct filetype from xml is better.

if exists("b:current_syntax")
  finish
endif

runtime! syntax/xml.vim
let b:current_syntax = "svg"
PK�j�Z�^�VVvim80/syntax/ld.vimnu�[���" Vim syntax file
" Language:             ld(1) script
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword ldTodo          contained TODO FIXME XXX NOTE

syn region  ldComment       start='/\*' end='\*/' contains=ldTodo,@Spell

syn region  ldFileName      start=+"+ end=+"+

syn keyword ldPreProc       SECTIONS MEMORY OVERLAY PHDRS VERSION INCLUDE
syn match   ldPreProc       '\<VERS_\d\+\.\d\+'

syn keyword ldFunction      ABSOLUTE ADDR ALIGN BLOCK DATA_SEGMENT_ALIGN
                            \ DATA_SEGMENT_END DATA_SEGMENT_RELRO_END DEFINED
                            \ LOADADDR MAX MIN NEXT SIZEOF SIZEOF_HEADERS
                            \ sizeof_headers

syn keyword ldKeyword       ENTRY INPUT GROUP OUTPUT
                            \ SEARCH_DIR STARTUP OUTPUT_FORMAT TARGET
                            \ ASSERT EXTERN FORCE_COMMON_ALLOCATION
                            \ INHIBIT_COMMON_ALLOCATION NOCROSSREFS OUTPUT_ARCH
                            \ PROVIDE EXCLUDE_FILE SORT KEEP FILL
                            \ CREATE_OBJECT_SYMBOLS CONSTRUCTORS SUBALIGN
                            \ FILEHDR AT __asm__ ABSOLUTE

syn keyword ldDataType      BYTE SHORT LONG QUAD SQUAD
syn keyword ldOutputType    NOLOAD DSECT COPY INFO OVERLAY
syn keyword ldPTType        PT_NULL PT_LOAD PT_DYNAMIC PT_INTERP
                            \ PT_NOTE PT_SHLIB PT_PHDR

syn keyword ldSpecial       COMMON
syn match   ldSpecial       '/DISCARD/'

syn keyword ldIdentifier    ORIGIN LENGTH

syn match   ldSpecSections  '\.'
syn match   ldSections      '\.\S\+'
syn match   ldSpecSections  '\.\%(text\|data\|bss\|symver\)\>'

syn match   ldNumber        display '\<0[xX]\x\+\>'
syn match   ldNumber        display '\d\+[KM]\>' contains=ldNumberMult
syn match   ldNumberMult    display '[KM]\>'
syn match   ldOctal         contained display '\<0\o\+\>'
                            \ contains=ldOctalZero
syn match   ldOctalZero     contained display '\<0'
syn match   ldOctalError    contained display '\<0\o*[89]\d*\>'


hi def link ldTodo          Todo
hi def link ldComment       Comment
hi def link ldFileName      String
hi def link ldPreProc       PreProc
hi def link ldFunction      Identifier
hi def link ldKeyword       Keyword
hi def link ldType          Type
hi def link ldDataType      ldType
hi def link ldOutputType    ldType
hi def link ldPTType        ldType
hi def link ldSpecial       Special
hi def link ldIdentifier    Identifier
hi def link ldSections      Constant
hi def link ldSpecSections  Special
hi def link ldNumber        Number
hi def link ldNumberMult    PreProc
hi def link ldOctal         ldNumber
hi def link ldOctalZero     PreProc
hi def link ldOctalError    Error

let b:current_syntax = "ld"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�ʋ9	9	vim80/syntax/lotos.vimnu�[���" Vim syntax file
" Language:	LOTOS (Language Of Temporal Ordering Specifications, IS8807)
" Maintainer:	Daniel Amyot <damyot@csi.uottawa.ca>
" Last Change:	Wed Aug 19 1998
" URL:		http://lotos.csi.uottawa.ca/~damyot/vim/lotos.vim
" This file is an adaptation of pascal.vim by Mario Eusebio
" I'm not sure I understand all of the syntax highlight language,
" but this file seems to do the job for standard LOTOS.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

"Comments in LOTOS are between (* and *)
syn region lotosComment	start="(\*"  end="\*)" contains=lotosTodo

"Operators [], [...], >>, ->, |||, |[...]|, ||, ;, !, ?, :, =, ,, :=
syn match  lotosDelimiter       "[][]"
syn match  lotosDelimiter	">>"
syn match  lotosDelimiter	"->"
syn match  lotosDelimiter	"\[>"
syn match  lotosDelimiter	"[|;!?:=,]"

"Regular keywords
syn keyword lotosStatement	specification endspec process endproc
syn keyword lotosStatement	where behaviour behavior
syn keyword lotosStatement      any let par accept choice hide of in
syn keyword lotosStatement	i stop exit noexit

"Operators from the Abstract Data Types in IS8807
syn keyword lotosOperator	eq ne succ and or xor implies iff
syn keyword lotosOperator	not true false
syn keyword lotosOperator	Insert Remove IsIn NotIn Union Ints
syn keyword lotosOperator	Minus Includes IsSubsetOf
syn keyword lotosOperator	lt le ge gt 0

"Sorts in IS8807
syn keyword lotosSort		Boolean Bool FBoolean FBool Element
syn keyword lotosSort		Set String NaturalNumber Nat HexString
syn keyword lotosSort		HexDigit DecString DecDigit
syn keyword lotosSort		OctString OctDigit BitString Bit
syn keyword lotosSort		Octet OctetString

"Keywords for ADTs
syn keyword lotosType	type endtype library endlib sorts formalsorts
syn keyword lotosType	eqns formaleqns opns formalopns forall ofsort is
syn keyword lotosType   for renamedby actualizedby sortnames opnnames
syn keyword lotosType   using

syn sync lines=250

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link lotosStatement		Statement
hi def link lotosProcess		Label
hi def link lotosOperator		Operator
hi def link lotosSort		Function
hi def link lotosType		Type
hi def link lotosComment		Comment
hi def link lotosDelimiter		String


let b:current_syntax = "lotos"

" vim: ts=8
PK�j�ZS�>Bf6f6vim80/syntax/spup.vimnu�[���" Vim syntax file
" Language:     Speedup, plant simulator from AspenTech
" Maintainer:   Stefan.Schwarzer <s.schwarzer@ndh.net>
" URL:		http://www.ndh.net/home/sschwarzer/download/spup.vim
" Last Change:  2012 Feb 03 by Thilo Six
" Filename:     spup.vim

" Bugs
" - in the appropriate sections keywords are always highlighted
"   even if they are not used with the appropriate meaning;
"   example: in
"       MODEL demonstration
"       TYPE
"      *area AS area
"   both "area" are highlighted as spupType.
"
" If you encounter problems or have questions or suggestions, mail me

" Remove old syntax stuff
" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

" don't hightlight several keywords like subsections
"let strict_subsections = 1

" highlight types usually found in DECLARE section
if !exists("hightlight_types")
    let highlight_types = 1
endif

" one line comment syntax (# comments)
" 1. allow appended code after comment, do not complain
" 2. show code beginnig with the second # as an error
" 3. show whole lines with more than one # as an error
if !exists("oneline_comments")
    let oneline_comments = 2
endif

" Speedup SECTION regions
syn case ignore
syn region spupCdi	  matchgroup=spupSection start="^CDI"	     end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary
syn region spupConditions matchgroup=spupSection start="^CONDITIONS" end="^\*\*\*\*" contains=spupConditionsSubs,@spupOrdinary,spupConditional,spupOperator,spupCode
syn region spupDeclare    matchgroup=spupSection start="^DECLARE"    end="^\*\*\*\*" contains=spupDeclareSubs,@spupOrdinary,spupTypes,spupCode
syn region spupEstimation matchgroup=spupSection start="^ESTIMATION" end="^\*\*\*\*" contains=spupEstimationSubs,@spupOrdinary
syn region spupExternal   matchgroup=spupSection start="^EXTERNAL"   end="^\*\*\*\*" contains=spupExternalSubs,@spupOrdinary
syn region spupFlowsheet  matchgroup=spupSection start="^FLOWSHEET"  end="^\*\*\*\*" contains=spupFlowsheetSubs,@spupOrdinary,spupStreams,@spupTextproc
syn region spupFunction   matchgroup=spupSection start="^FUNCTION"   end="^\*\*\*\*" contains=spupFunctionSubs,@spupOrdinary,spupHelp,spupCode,spupTypes
syn region spupGlobal     matchgroup=spupSection start="^GLOBAL"     end="^\*\*\*\*" contains=spupGlobalSubs,@spupOrdinary
syn region spupHomotopy   matchgroup=spupSection start="^HOMOTOPY"   end="^\*\*\*\*" contains=spupHomotopySubs,@spupOrdinary
syn region spupMacro      matchgroup=spupSection start="^MACRO"      end="^\*\*\*\*" contains=spupMacroSubs,@spupOrdinary,@spupTextproc,spupTypes,spupStreams,spupOperator
syn region spupModel      matchgroup=spupSection start="^MODEL"      end="^\*\*\*\*" contains=spupModelSubs,@spupOrdinary,spupConditional,spupOperator,spupTypes,spupStreams,@spupTextproc,spupHelp
syn region spupOperation  matchgroup=spupSection start="^OPERATION"  end="^\*\*\*\*" contains=spupOperationSubs,@spupOrdinary,@spupTextproc
syn region spupOptions    matchgroup=spupSection start="^OPTIONS"    end="^\*\*\*\*" contains=spupOptionsSubs,@spupOrdinary
syn region spupProcedure  matchgroup=spupSection start="^PROCEDURE"  end="^\*\*\*\*" contains=spupProcedureSubs,@spupOrdinary,spupHelp,spupCode,spupTypes
syn region spupProfiles   matchgroup=spupSection start="^PROFILES"   end="^\*\*\*\*" contains=@spupOrdinary,@spupTextproc
syn region spupReport     matchgroup=spupSection start="^REPORT"     end="^\*\*\*\*" contains=spupReportSubs,@spupOrdinary,spupHelp,@spupTextproc
syn region spupTitle      matchgroup=spupSection start="^TITLE"      end="^\*\*\*\*" contains=spupTitleSubs,spupComment,spupConstant,spupError
syn region spupUnit       matchgroup=spupSection start="^UNIT"       end="^\*\*\*\*" contains=spupUnitSubs,@spupOrdinary

" Subsections
syn keyword spupCdiSubs	       INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained
syn keyword spupDeclareSubs    TYPE STREAM contained
syn keyword spupEstimationSubs ESTIMATE SSEXP DYNEXP RESULT contained
syn keyword spupExternalSubs   TRANSMIT RECEIVE contained
syn keyword spupFlowsheetSubs  STREAM contained
syn keyword spupFunctionSubs   INPUT OUTPUT contained
syn keyword spupGlobalSubs     VARIABLES MAXIMIZE MINIMIZE CONSTRAINT contained
syn keyword spupHomotopySubs   VARY OPTIONS contained
syn keyword spupMacroSubs      MODEL FLOWSHEET contained
syn keyword spupModelSubs      CATEGORY SET TYPE STREAM EQUATION PROCEDURE contained
syn keyword spupOperationSubs  SET PRESET INITIAL SSTATE FREE contained
syn keyword spupOptionsSubs    ROUTINES TRANSLATE EXECUTION contained
syn keyword spupProcedureSubs  INPUT OUTPUT SPACE PRECALL POSTCALL DERIVATIVE STREAM contained
" no subsections for Profiles
syn keyword spupReportSubs     SET INITIAL FIELDS FIELDMARK DISPLAY WITHIN contained
syn keyword spupUnitSubs       ROUTINES SET contained

" additional keywords for subsections
if !exists( "strict_subsections" )
    syn keyword spupConditionsSubs STOP PRINT contained
    syn keyword spupDeclareSubs    UNIT SET COMPONENTS THERMO OPTIONS contained
    syn keyword spupEstimationSubs VARY MEASURE INITIAL contained
    syn keyword spupFlowsheetSubs  TYPE FEED PRODUCT INPUT OUTPUT CONNECTION OF IS contained
    syn keyword spupMacroSubs      CONNECTION STREAM SET INPUT OUTPUT OF IS FEED PRODUCT TYPE contained
    syn keyword spupModelSubs      AS ARRAY OF INPUT OUTPUT CONNECTION contained
    syn keyword spupOperationSubs  WITHIN contained
    syn keyword spupReportSubs     LEFT RIGHT CENTER CENTRE UOM TIME DATE VERSION RELDATE contained
    syn keyword spupUnitSubs       IS A contained
endif

" Speedup data types
if exists( "highlight_types" )
    syn keyword spupTypes act_coeff_liq area coefficient concentration contained
    syn keyword spupTypes control_signal cond_liq cond_vap cp_mass_liq contained
    syn keyword spupTypes cp_mol_liq cp_mol_vap cv_mol_liq cv_mol_vap contained
    syn keyword spupTypes diffus_liq diffus_vap delta_p dens_mass contained
    syn keyword spupTypes dens_mass_sol dens_mass_liq dens_mass_vap dens_mol contained
    syn keyword spupTypes dens_mol_sol dens_mol_liq dens_mol_vap enthflow contained
    syn keyword spupTypes enth_mass enth_mass_liq enth_mass_vap enth_mol contained
    syn keyword spupTypes enth_mol_sol enth_mol_liq enth_mol_vap entr_mol contained
    syn keyword spupTypes entr_mol_sol entr_mol_liq entr_mol_vap fraction contained
    syn keyword spupTypes flow_mass flow_mass_liq flow_mass_vap flow_mol contained
    syn keyword spupTypes flow_mol_vap flow_mol_liq flow_vol flow_vol_vap contained
    syn keyword spupTypes flow_vol_liq fuga_vap fuga_liq fuga_sol contained
    syn keyword spupTypes gibb_mol_sol heat_react heat_trans_coeff contained
    syn keyword spupTypes holdup_heat holdup_heat_liq holdup_heat_vap contained
    syn keyword spupTypes holdup_mass holdup_mass_liq holdup_mass_vap contained
    syn keyword spupTypes holdup_mol holdup_mol_liq holdup_mol_vap k_value contained
    syn keyword spupTypes length length_delta length_short liqfraction contained
    syn keyword spupTypes liqmassfraction mass massfraction molefraction contained
    syn keyword spupTypes molweight moment_inertia negative notype percent contained
    syn keyword spupTypes positive pressure press_diff press_drop press_rise contained
    syn keyword spupTypes ratio reaction reaction_mass rotation surf_tens contained
    syn keyword spupTypes temperature temperature_abs temp_diff temp_drop contained
    syn keyword spupTypes temp_rise time vapfraction vapmassfraction contained
    syn keyword spupTypes velocity visc_liq visc_vap volume zmom_rate contained
    syn keyword spupTypes seg_rate smom_rate tmom_rate zmom_mass seg_mass contained
    syn keyword spupTypes smom_mass tmom_mass zmom_holdup seg_holdup contained
    syn keyword spupTypes smom_holdup tmom_holdup contained
endif

" stream types
syn keyword spupStreams  mainstream vapour liquid contained

" "conditional" keywords
syn keyword spupConditional  IF THEN ELSE ENDIF contained
" Operators, symbols etc.
syn keyword spupOperator  AND OR NOT contained
syn match spupSymbol  "[,\-+=:;*/\"<>@%()]" contained
syn match spupSpecial  "[&\$?]" contained
" Surprisingly, Speedup allows no unary + instead of the -
syn match spupError  "[(=+\-*/]\s*+\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained
syn match spupError  "[(=+\-*/]\s*+\d\+\.\([ed][+-]\=\d\+\)\=\>"lc=1 contained
syn match spupError  "[(=+\-*/]\s*+\d*\.\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained
" String
syn region spupString  start=+"+  end=+"+  oneline contained
syn region spupString  start=+'+  end=+'+  oneline contained
" Identifier
syn match spupIdentifier  "\<[a-z][a-z0-9_]*\>" contained
" Textprocessor directives
syn match spupTextprocGeneric  "?[a-z][a-z0-9_]*\>" contained
syn region spupTextprocError matchgroup=spupTextprocGeneric start="?ERROR"  end="?END"he=s-1 contained
" Number, without decimal point
syn match spupNumber  "-\=\d\+\([ed][+-]\=\d\+\)\=" contained
" Number, allows 1. before exponent
syn match spupNumber  "-\=\d\+\.\([ed][+-]\=\d\+\)\=" contained
" Number allows .1 before exponent
syn match spupNumber  "-\=\d*\.\d\+\([ed][+-]\=\d\+\)\=" contained
" Help subsections
syn region spupHelp  start="^HELP"hs=e+1  end="^\$ENDHELP"he=s-1 contained
" Fortran code
syn region spupCode  start="^CODE"hs=e+1  end="^\$ENDCODE"he=s-1 contained
" oneline comments
if oneline_comments > 3
    oneline_comments = 2   " default
endif
if oneline_comments == 1
    syn match spupComment  "#[^#]*#\="
elseif oneline_comments == 2
    syn match spupError  "#.*$"
    syn match spupComment  "#[^#]*"  nextgroup=spupError
elseif oneline_comments == 3
    syn match spupComment  "#[^#]*"
    syn match spupError  "#[^#]*#.*"
endif
" multiline comments
syn match spupOpenBrace "{" contained
syn match spupError  "}"
syn region spupComment  matchgroup=spupComment2  start="{"  end="}"  keepend  contains=spupOpenBrace

syn cluster spupOrdinary  contains=spupNumber,spupIdentifier,spupSymbol
syn cluster spupOrdinary  add=spupError,spupString,spupComment
syn cluster spupTextproc  contains=spupTextprocGeneric,spupTextprocError

" define syncronizing; especially OPERATION sections can become very large
syn sync clear
syn sync minlines=100
syn sync maxlines=500

syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
syn sync match spupSyncCdi	  grouphere spupCdi	   "^CDI"
syn sync match spupSyncConditions grouphere spupConditions "^CONDITIONS"
syn sync match spupSyncDeclare    grouphere spupDeclare    "^DECLARE"
syn sync match spupSyncEstimation grouphere spupEstimation "^ESTIMATION"
syn sync match spupSyncExternal   grouphere spupExternal   "^EXTERNAL"
syn sync match spupSyncFlowsheet  grouphere spupFlowsheet  "^FLOWSHEET"
syn sync match spupSyncFunction   grouphere spupFunction   "^FUNCTION"
syn sync match spupSyncGlobal     grouphere spupGlobal     "^GLOBAL"
syn sync match spupSyncHomotopy   grouphere spupHomotopy   "^HOMOTOPY"
syn sync match spupSyncMacro      grouphere spupMacro      "^MACRO"
syn sync match spupSyncModel      grouphere spupModel      "^MODEL"
syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
syn sync match spupSyncOptions    grouphere spupOptions    "^OPTIONS"
syn sync match spupSyncProcedure  grouphere spupProcedure  "^PROCEDURE"
syn sync match spupSyncProfiles   grouphere spupProfiles   "^PROFILES"
syn sync match spupSyncReport     grouphere spupReport     "^REPORT"
syn sync match spupSyncTitle      grouphere spupTitle      "^TITLE"
syn sync match spupSyncUnit       grouphere spupUnit       "^UNIT"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link spupCdi	    spupSection
hi def link spupConditions   spupSection
hi def link spupDeclare	    spupSection
hi def link spupEstimation   spupSection
hi def link spupExternal	    spupSection
hi def link spupFlowsheet    spupSection
hi def link spupFunction	    spupSection
hi def link spupGlobal	    spupSection
hi def link spupHomotopy	    spupSection
hi def link spupMacro	    spupSection
hi def link spupModel	    spupSection
hi def link spupOperation    spupSection
hi def link spupOptions	    spupSection
hi def link spupProcedure    spupSection
hi def link spupProfiles	    spupSection
hi def link spupReport	    spupSection
hi def link spupTitle	    spupConstant  " this is correct, truly ;)
hi def link spupUnit	    spupSection

hi def link spupCdiSubs	      spupSubs
hi def link spupConditionsSubs spupSubs
hi def link spupDeclareSubs    spupSubs
hi def link spupEstimationSubs spupSubs
hi def link spupExternalSubs   spupSubs
hi def link spupFlowsheetSubs  spupSubs
hi def link spupFunctionSubs   spupSubs
hi def link spupHomotopySubs   spupSubs
hi def link spupMacroSubs      spupSubs
hi def link spupModelSubs      spupSubs
hi def link spupOperationSubs  spupSubs
hi def link spupOptionsSubs    spupSubs
hi def link spupProcedureSubs  spupSubs
hi def link spupReportSubs     spupSubs
hi def link spupUnitSubs	      spupSubs

hi def link spupCode	       Normal
hi def link spupComment	       Comment
hi def link spupComment2	       spupComment
hi def link spupConditional     Statement
hi def link spupConstant	       Constant
hi def link spupError	       Error
hi def link spupHelp	       Normal
hi def link spupIdentifier      Identifier
hi def link spupNumber	       Constant
hi def link spupOperator	       Special
hi def link spupOpenBrace       spupError
hi def link spupSection	       Statement
hi def link spupSpecial	       spupTextprocGeneric
hi def link spupStreams	       Type
hi def link spupString	       Constant
hi def link spupSubs	       Statement
hi def link spupSymbol	       Special
hi def link spupTextprocError   Normal
hi def link spupTextprocGeneric PreProc
hi def link spupTypes	       Type


let b:current_syntax = "spup"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim:ts=8
PK�j�Z�_M���vim80/syntax/procmail.vimnu�[���" Vim syntax file
" Language:	Procmail definition file
" Maintainer:	Melchior FRANZ <mfranz@aon.at>
" Last Change:	2003 Aug 14
" Author:	Sonia Heimann

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match   procmailComment      "#.*$" contains=procmailTodo
syn keyword   procmailTodo      contained Todo TBD

syn region  procmailString       start=+"+  skip=+\\"+  end=+"+
syn region  procmailString       start=+'+  skip=+\\'+  end=+'+

syn region procmailVarDeclRegion start="^\s*[a-zA-Z0-9_]\+\s*="hs=e-1 skip=+\\$+ end=+$+ contains=procmailVar,procmailVarDecl,procmailString
syn match procmailVarDecl contained "^\s*[a-zA-Z0-9_]\+"
syn match procmailVar "$[a-zA-Z0-9_]\+"

syn match procmailCondition contained "^\s*\*.*"

syn match procmailActionFolder contained "^\s*[-_a-zA-Z0-9/]\+"
syn match procmailActionVariable contained "^\s*$[a-zA-Z_]\+"
syn region procmailActionForward start=+^\s*!+ skip=+\\$+ end=+$+
syn region procmailActionPipe start=+^\s*|+ skip=+\\$+ end=+$+
syn region procmailActionNested start=+^\s*{+ end=+^\s*}+ contains=procmailRecipe,procmailComment,procmailVarDeclRegion

syn region procmailRecipe start=+^\s*:.*$+ end=+^\s*\($\|}\)+me=e-1 contains=procmailComment,procmailCondition,procmailActionFolder,procmailActionVariable,procmailActionForward,procmailActionPipe,procmailActionNested,procmailVarDeclRegion

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link procmailComment Comment
hi def link procmailTodo    Todo

hi def link procmailRecipe   Statement
"hi def link procmailCondition   Statement

hi def link procmailActionFolder	procmailAction
hi def link procmailActionVariable procmailAction
hi def link procmailActionForward	procmailAction
hi def link procmailActionPipe	procmailAction
hi def link procmailAction		Function
hi def link procmailVar		Identifier
hi def link procmailVarDecl	Identifier

hi def link procmailString String


let b:current_syntax = "procmail"

" vim: ts=8
PK�j�Z`q��ttvim80/syntax/rnoweb.vimnu�[���" Vim syntax file
" Language:    R noweb Files
" Maintainer:  Johannes Ranke <jranke@uni-bremen.de>
" Last Change: Sat Feb 06, 2016  06:47AM
" Version:     0.9.1
" Remarks:     - This file is inspired by the proposal of 
"                Fernando Henrique Ferraz Pereira da Rosa <feferraz@ime.usp.br>
"                http://www.ime.usp.br/~feferraz/en/sweavevim.html
"

if exists("b:current_syntax")
  finish
endif 

syn case match

" Extension of Tex clusters {{{1
runtime syntax/tex.vim
unlet b:current_syntax

syn cluster texMatchGroup add=@rnoweb
syn cluster texMathMatchGroup add=rnowebSexpr
syn cluster texMathZoneGroup add=rnowebSexpr
syn cluster texEnvGroup add=@rnoweb
syn cluster texFoldGroup add=@rnoweb
syn cluster texDocGroup add=@rnoweb
syn cluster texPartGroup add=@rnoweb
syn cluster texChapterGroup add=@rnoweb
syn cluster texSectionGroup add=@rnoweb
syn cluster texSubSectionGroup add=@rnoweb
syn cluster texSubSubSectionGroup add=@rnoweb
syn cluster texParaGroup add=@rnoweb

" Highlighting of R code using an existing r.vim syntax file if available {{{1
syn include @rnowebR syntax/r.vim
syn region rnowebChunk matchgroup=rnowebDelimiter start="^<<.*>>=" matchgroup=rnowebDelimiter end="^@" contains=@rnowebR,rnowebChunkReference,rnowebChunk fold keepend
syn match rnowebChunkReference "^<<.*>>$" contained
syn region rnowebSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter end="}" contains=@rnowebR contained

" Sweave options command {{{1
syn region rnowebSweaveopts matchgroup=Delimiter start="\\SweaveOpts{" matchgroup=Delimiter end="}"

" rnoweb Cluster {{{1
syn cluster rnoweb contains=rnowebChunk,rnowebChunkReference,rnowebDelimiter,rnowebSexpr,rnowebSweaveopts

" Highlighting {{{1
hi def link rnowebDelimiter	Delimiter
hi def link rnowebSweaveOpts Statement
hi def link rnowebChunkReference Delimiter

let   b:current_syntax = "rnoweb"
" vim: foldmethod=marker:
PK�j�Z�aK�

vim80/syntax/asn.vimnu�[���" Vim syntax file
" Language:	ASN.1
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/asn.vim
" Last Change:	2012 Oct 05

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" keyword definitions
syn keyword asnExternal		DEFINITIONS BEGIN END IMPORTS EXPORTS FROM
syn match   asnExternal		"\<IMPLICIT\s\+TAGS\>"
syn match   asnExternal		"\<EXPLICIT\s\+TAGS\>"
syn keyword asnFieldOption	DEFAULT OPTIONAL
syn keyword asnTagModifier	IMPLICIT EXPLICIT
syn keyword asnTypeInfo		ABSENT PRESENT SIZE UNIVERSAL APPLICATION PRIVATE
syn keyword asnBoolValue	TRUE FALSE
syn keyword asnNumber		MIN MAX
syn match   asnNumber		"\<PLUS-INFINITY\>"
syn match   asnNumber		"\<MINUS-INFINITY\>"
syn keyword asnType		INTEGER REAL STRING BIT BOOLEAN OCTET NULL EMBEDDED PDV
syn keyword asnType		BMPString IA5String TeletexString GeneralString GraphicString ISO646String NumericString PrintableString T61String UniversalString VideotexString VisibleString
syn keyword asnType		ANY DEFINED
syn match   asnType		"\.\.\."
syn match   asnType		"OBJECT\s\+IDENTIFIER"
syn match   asnType		"TYPE-IDENTIFIER"
syn keyword asnType		UTF8String
syn keyword asnStructure	CHOICE SEQUENCE SET OF ENUMERATED CONSTRAINED BY WITH COMPONENTS CLASS

" Strings and constants
syn match   asnSpecial		contained "\\\d\d\d\|\\."
syn region  asnString		start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=asnSpecial
syn match   asnCharacter	"'[^\\]'"
syn match   asnSpecialCharacter "'\\.'"
syn match   asnNumber		"-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
syn match   asnLineComment	"--.*"
syn match   asnLineComment	"--.*--"

syn match asnDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3 contains=asnType
syn match asnBraces     "[{}]"

syn sync ccomment asnComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link asnDefinition	Function
hi def link asnBraces		Function
hi def link asnStructure	Statement
hi def link asnBoolValue	Boolean
hi def link asnSpecial		Special
hi def link asnString		String
hi def link asnCharacter	Character
hi def link asnSpecialCharacter	asnSpecial
hi def link asnNumber		asnValue
hi def link asnComment		Comment
hi def link asnLineComment	asnComment
hi def link asnType		Type
hi def link asnTypeInfo		PreProc
hi def link asnValue		Number
hi def link asnExternal		Include
hi def link asnTagModifier	Function
hi def link asnFieldOption	Type

let &cpo = s:cpo_save
unlet s:cpo_save
let b:current_syntax = "asn"

" vim: ts=8
PK�j�Z�H�-''vim80/syntax/tidy.vimnu�[���" Vim syntax file
" Language:	HMTL Tidy configuration file (/etc/tidyrc ~/.tidyrc)
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2016 Apr 24

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn iskeyword @,48-57,-,_

syn case ignore
syn keyword	tidyBoolean	contained t[rue] f[alse] y[es] n[o] 1 0
syn keyword	tidyAutoBoolean	contained t[rue] f[alse] y[es] n[o] 1 0 auto
syn case match
syn keyword	tidyDoctype	contained html5 omit auto strict loose transitional user
syn keyword	tidyEncoding	contained raw ascii latin0 latin1 utf8 iso2022 mac win1252 ibm858 utf16le utf16be utf16 big5 shiftjis
syn keyword	tidyNewline	contained LF CRLF CR
syn match	tidyNumber	contained "\<\d\+\>"
syn keyword	tidyRepeat	contained keep-first keep-last
syn keyword	tidySorter	contained alpha none
syn region	tidyString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
syn region	tidyString	contained start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline
syn match	tidyTags	contained "\<\w\+\(\s*,\s*\w\+\)*\>"

syn keyword tidyBooleanOption add-xml-decl add-xml-pi add-xml-space
	\ anchor-as-name ascii-chars assume-xml-procins bare break-before-br
	\ clean coerce-endtags decorate-inferred-ul drop-empty-paras
	\ drop-empty-elements drop-font-tags drop-proprietary-attributes
	\ enclose-block-text enclose-text escape-cdata escape-scripts
	\ fix-backslash fix-bad-comments fix-uri force-output gdoc gnu-emacs
	\ hide-comments hide-endtags indent-attributes indent-cdata
	\ indent-with-tabs input-xml join-classes join-styles keep-time
	\ language literal-attributes logical-emphasis lower-literals markup
	\ merge-emphasis ncr numeric-entities omit-optional-tags output-html
	\ output-xhtml output-xml preserve-entities punctuation-wrap quiet
	\ quote-ampersand quote-marks quote-nbsp raw replace-color show-info
	\ show-warnings skip-nested split strict-tags-attributes tidy-mark
	\ uppercase-attributes uppercase-tags word-2000 wrap-asp
	\ wrap-attributes wrap-jste wrap-php wrap-script-literals
	\ wrap-sections write-back
	\ contained nextgroup=tidyBooleanDelimiter

syn match tidyBooleanDelimiter ":" nextgroup=tidyBoolean contained skipwhite

syn keyword tidyAutoBooleanOption indent merge-divs merge-spans output-bom show-body-only vertical-space contained nextgroup=tidyAutoBooleanDelimiter
syn match tidyAutoBooleanDelimiter ":" nextgroup=tidyAutoBoolean contained skipwhite

syn keyword tidyCSSSelectorOption css-prefix contained nextgroup=tidyCSSSelectorDelimiter
syn match tidyCSSSelectorDelimiter ":" nextgroup=tidyCSSSelector contained skipwhite

syn keyword tidyDoctypeOption doctype contained nextgroup=tidyDoctypeDelimiter
syn match tidyDoctypeDelimiter ":" nextgroup=tidyDoctype contained skipwhite

syn keyword tidyEncodingOption char-encoding input-encoding output-encoding contained nextgroup=tidyEncodingDelimiter
syn match tidyEncodingDelimiter ":" nextgroup=tidyEncoding contained skipwhite

syn keyword tidyIntegerOption accessibility-check doctype-mode indent-spaces show-errors tab-size wrap contained nextgroup=tidyIntegerDelimiter
syn match tidyIntegerDelimiter ":" nextgroup=tidyNumber contained skipwhite

syn keyword tidyNameOption slide-style contained nextgroup=tidyNameDelimiter
syn match tidyNameDelimiter ":" nextgroup=tidyName contained skipwhite

syn keyword tidyNewlineOption newline contained nextgroup=tidyNewlineDelimiter
syn match tidyNewlineDelimiter ":" nextgroup=tidyNewline contained skipwhite

syn keyword tidyTagsOption new-blocklevel-tags new-empty-tags new-inline-tags new-pre-tags contained nextgroup=tidyTagsDelimiter
syn match tidyTagsDelimiter ":" nextgroup=tidyTags contained skipwhite

syn keyword tidyRepeatOption repeated-attributes contained nextgroup=tidyRepeatDelimiter
syn match tidyRepeatDelimiter ":" nextgroup=tidyRepeat contained skipwhite

syn keyword tidySorterOption sort-attributes contained nextgroup=tidySorterDelimiter
syn match tidySorterDelimiter ":" nextgroup=tidySorter contained skipwhite

syn keyword tidyStringOption alt-text error-file gnu-emacs-file output-file contained nextgroup=tidyStringDelimiter
syn match tidyStringDelimiter ":" nextgroup=tidyString contained skipwhite

syn cluster tidyOptions contains=tidy.*Option

syn match tidyStart "^" nextgroup=@tidyOptions

syn match	tidyComment	"^\s*//.*$" contains=tidyTodo
syn match	tidyComment	"^\s*#.*$"  contains=tidyTodo
syn keyword	tidyTodo	TODO NOTE FIXME XXX contained

hi def link tidyAutoBooleanOption	Identifier
hi def link tidyBooleanOption		Identifier
hi def link tidyCSSSelectorOption	Identifier
hi def link tidyDoctypeOption		Identifier
hi def link tidyEncodingOption		Identifier
hi def link tidyIntegerOption		Identifier
hi def link tidyNameOption		Identifier
hi def link tidyNewlineOption		Identifier
hi def link tidyTagsOption		Identifier
hi def link tidyRepeatOption		Identifier
hi def link tidySorterOption		Identifier
hi def link tidyStringOption		Identifier

hi def link tidyAutoBooleanDelimiter	Special
hi def link tidyBooleanDelimiter	Special
hi def link tidyCSSSelectorDelimiter	Special
hi def link tidyDoctypeDelimiter	Special
hi def link tidyEncodingDelimiter	Special
hi def link tidyIntegerDelimiter	Special
hi def link tidyNameDelimiter		Special
hi def link tidyNewlineDelimiter	Special
hi def link tidyTagsDelimiter		Special
hi def link tidyRepeatDelimiter		Special
hi def link tidySorterDelimiter		Special
hi def link tidyStringDelimiter		Special

hi def link tidyAutoBoolean		Boolean
hi def link tidyBoolean			Boolean
hi def link tidyDoctype			Constant
hi def link tidyEncoding		Constant
hi def link tidyNewline			Constant
hi def link tidyTags			Constant
hi def link tidyNumber			Number
hi def link tidyRepeat			Constant
hi def link tidySorter			Constant
hi def link tidyString			String

hi def link tidyComment			Comment
hi def link tidyTodo			Todo

let b:current_syntax = "tidy"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z�NK)��vim80/syntax/valgrind.vimnu�[���" Vim syntax file
" Language: Valgrind Memory Debugger Output
" Maintainer: Roger Luethi <rl@hellgate.ch>
" Program URL: http://devel-home.kde.org/~sewardj/
" Last Change: 2015 Jan 27
" 		Included improvement by Dominique Pelle
"
" Notes: mostly based on strace.vim and xml.vim
"
" Contributors: Christoph Gysin <christoph.gysin@gmail.com>

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif
let s:keepcpo= &cpo
set cpo&vim

" Lines can be long with demangled c++ functions.
setlocal synmaxcol=8000

syn case match
syn sync minlines=50

syn match valgrindSpecLine "^[+-]\{2}\d\+[+-]\{2}.*$"

syn region valgrindRegion
	\ start=+^==\z(\d\+\)== \w.*$+
	\ skip=+^==\z1==\( \|    .*\)$+
	\ end=+^+
	\ fold
	\ keepend
	\ contains=valgrindPidChunk,valgrindLine

syn region valgrindPidChunk
	\ start=+^==\zs+
	\ end=+\ze==+
	\ contained
	\ contains=valgrindPid0,valgrindPid1,valgrindPid2,valgrindPid3,valgrindPid4,valgrindPid5,valgrindPid6,valgrindPid7,valgrindPid8,valgrindPid9
	\ keepend

syn match valgrindPid0 "\d\+0=" contained
syn match valgrindPid1 "\d\+1=" contained
syn match valgrindPid2 "\d\+2=" contained
syn match valgrindPid3 "\d\+3=" contained
syn match valgrindPid4 "\d\+4=" contained
syn match valgrindPid5 "\d\+5=" contained
syn match valgrindPid6 "\d\+6=" contained
syn match valgrindPid7 "\d\+7=" contained
syn match valgrindPid8 "\d\+8=" contained
syn match valgrindPid9 "\d\+9=" contained

syn region valgrindLine
	\ start=+\(^==\d\+== \)\@<=+
	\ end=+$+
	\ keepend
	\ contained
	\ contains=valgrindOptions,valgrindMsg,valgrindLoc

syn match valgrindOptions "[ ]\{3}-.*$" contained

syn match valgrindMsg "\S.*$" contained
	\ contains=valgrindError,valgrindNote,valgrindSummary
syn match valgrindError "\(Invalid\|\d\+ errors\|.* definitely lost\).*$" contained
syn match valgrindNote ".*still reachable.*" contained
syn match valgrindSummary ".*SUMMARY:" contained

syn match valgrindLoc "\s\+\(by\|at\|Address\).*$" contained
	\ contains=valgrindAt,valgrindAddr,valgrindFunc,valgrindBin,valgrindSrc
syn match valgrindAt "at\s\@=" contained
syn match valgrindAddr "\W\zs0x\x\+" contained

syn match valgrindFunc ": \zs\h[a-zA-Z0-9_:\[\]()<>&*+\-,=%!|^ ]*\ze([^)]*)$" contained
syn match valgrindBin "(\(with\)\=in \zs\S\+)\@=" contained
syn match valgrindSrc "(\zs[^)]*:\d\+)\@=" contained

" Define the default highlighting

hi def link valgrindSpecLine	Type
"hi def link valgrindRegion	Special

hi def link valgrindPid0	Special
hi def link valgrindPid1	Comment
hi def link valgrindPid2	Type
hi def link valgrindPid3	Constant
hi def link valgrindPid4	Number
hi def link valgrindPid5	Identifier
hi def link valgrindPid6	Statement
hi def link valgrindPid7	Error
hi def link valgrindPid8	LineNr
hi def link valgrindPid9	Normal
"hi def link valgrindLine	Special

hi def link valgrindOptions	Type
"hi def link valgrindMsg	Special
"hi def link valgrindLoc	Special

hi def link valgrindError	Special
hi def link valgrindNote	Comment
hi def link valgrindSummary	Type

hi def link valgrindAt		Special
hi def link valgrindAddr	Number
hi def link valgrindFunc	Type
hi def link valgrindBin		Comment
hi def link valgrindSrc		Statement

let b:current_syntax = "valgrind"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�K|��vim80/syntax/sensors.vimnu�[���" Vim syntax file
" Language:             sensors.conf(5) - libsensors configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword sensorsTodo         contained TODO FIXME XXX NOTE

syn region  sensorsComment      display oneline start='#' end='$'
                                \ contains=sensorsTodo,@Spell


syn keyword sensorsKeyword      bus chip label compute ignore set

syn region  sensorsName         display oneline
                                \ start=+"+ skip=+\\\\\|\\"+ end=+"+
                                \ contains=sensorsNameSpecial
syn match   sensorsName         display '\w\+'

syn match   sensorsNameSpecial  display '\\["\\rnt]'

syn match   sensorsLineContinue '\\$'

syn match   sensorsNumber       display '\d*.\d\+\>'

syn match   sensorsRealWorld    display '@'

syn match   sensorsOperator     display '[+*/-]'

syn match   sensorsDelimiter    display '[()]'

hi def link sensorsTodo         Todo
hi def link sensorsComment      Comment
hi def link sensorsKeyword      Keyword
hi def link sensorsName         String
hi def link sensorsNameSpecial  SpecialChar
hi def link sensorsLineContinue Special
hi def link sensorsNumber       Number
hi def link sensorsRealWorld    Identifier
hi def link sensorsOperator     Normal
hi def link sensorsDelimiter    Normal

let b:current_syntax = "sensors"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zu�`L`Lvim80/syntax/vera.vimnu�[���" Vim syntax file
" Language:	Vera
" Maintainer:	Dave Eggum (opine at bluebottle dOt com)
" Last Change:	2005 Dec 19

" NOTE: extra white space at the end of the line will be highlighted if you
" add this line to your colorscheme:

" highlight SpaceError    guibg=#204050

" (change the value for guibg to any color you like)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful Vera keywords
syn keyword	veraStatement	break return continue fork join terminate
syn keyword	veraStatement	breakpoint proceed

syn keyword	veraLabel	bad_state bad_trans bind constraint coverage_group
syn keyword	veraLabel	class CLOCK default function interface m_bad_state
syn keyword	veraLabel	m_bad_trans m_state m_trans program randseq state
syn keyword	veraLabel	task trans

syn keyword	veraConditional	if else case casex casez randcase
syn keyword 	veraRepeat      repeat while for do foreach
syn keyword 	veraModifier	after all any around assoc_size async
syn keyword 	veraModifier	before big_endian bit_normal bit_reverse export
syn keyword 	veraModifier	extends extern little_endian local hdl_node hdl_task
syn keyword 	veraModifier	negedge none packed protected posedge public rules
syn keyword 	veraModifier	shadow soft static super this typedef unpacked var
syn keyword 	veraModifier	vca virtual virtuals wildcard with

syn keyword 	veraType	reg string enum event bit
syn keyword 	veraType	rand randc integer port prod

syn keyword     veraDeprecated	call_func call_task close_conn get_bind get_bind_id
syn keyword     veraDeprecated	get_conn_err mailbox_receive mailbox_send make_client
syn keyword     veraDeprecated	make_server simwave_plot up_connections

" predefined tasks and functions
syn keyword 	veraTask	alloc assoc_index cast_assign cm_coverage
syn keyword 	veraTask	cm_get_coverage cm_get_limit delay error error_mode
syn keyword 	veraTask	exit fclose feof ferror fflush flag fopen fprintf
syn keyword 	veraTask	freadb freadh freadstr get_cycle get_env get_memsize
syn keyword 	veraTask	get_plus_arg getstate get_systime get_time get_time_unit
syn keyword 	veraTask	initstate lock_file mailbox_get mailbox_put os_command
syn keyword 	veraTask	printf prodget prodset psprintf query query_str query_x
syn keyword 	veraTask	rand48 random region_enter region_exit rewind
syn keyword 	veraTask	semaphore_get semaphore_put setstate signal_connect
syn keyword 	veraTask	sprintf srandom sscanf stop suspend_thread sync
syn keyword 	veraTask	timeout trace trigger unit_delay unlock_file urand48
syn keyword 	veraTask	urandom urandom_range vera_bit_reverse vera_crc
syn keyword 	veraTask	vera_pack vera_pack_big_endian vera_plot
syn keyword 	veraTask	vera_report_profile vera_unpack vera_unpack_big_endian
syn keyword 	veraTask	vsv_call_func vsv_call_task vsv_get_conn_err
syn keyword 	veraTask	vsv_make_client vsv_make_server vsv_up_connections
syn keyword 	veraTask	vsv_wait_for_done vsv_wait_for_input wait_child wait_var

syn cluster	veraOperGroup	contains=veraOperator,veraOperParen,veraNumber,veraString,veraOperOk,veraType
" syn match	veraOperator	"++\|--\|&\|\~&\||\|\~|\|^\|\~^\|\~\|><"
" syn match	veraOperator	"*\|/\|%\|+\|-\|<<\|>>\|<\|<=\|>\|>=\|!in"
" syn match	veraOperator	"=?=\|!?=\|==\|!=\|===\|!==\|&\~\|^\~\||\~"
" syn match	veraOperator	"&&\|||\|=\|+=\|-=\|*=\|/=\|%=\|<<=\|>>=\|&="
" syn match	veraOperator	"|=\|^=\|\~&=\|\~|=\|\~^="

syn match	veraOperator	"[&|\~><!*@+/=,.\^\-]"
syn keyword	veraOperator	or in dist not

" open vera class methods
syn keyword	veraMethods	atobin atohex atoi atooct backref bittostr capacity
syn keyword	veraMethods	compare Configure constraint_mode delete DisableTrigger
syn keyword	veraMethods	DoAction empty EnableCount EnableTrigger Event find
syn keyword	veraMethods	find_index first first_index GetAssert get_at_least
syn keyword	veraMethods	get_auto_bin getc GetCount get_coverage_goal get_cov_weight
syn keyword	veraMethods	get_cross_bin_max GetFirstAssert GetName GetNextAssert
syn keyword	veraMethods	get_status get_status_msg hide hash icompare insert
syn keyword	veraMethods	inst_get_at_least inst_get_auto_bin_max inst_get_collect
syn keyword	veraMethods	inst_get_coverage_goal inst_get_cov_weight inst_getcross_bin_max
syn keyword	veraMethods	inst_query inst_set_at_least inst_set_auto_bin_max
syn keyword	veraMethods	inst_set_bin_activiation inst_set_collect inst_set_coverage_goal
syn keyword	veraMethods	inst_set_cov_weight inst_set_cross_bin_max itoa last last_index
syn keyword	veraMethods	len load match max max_index min min_index new object_compare
syn keyword	veraMethods	object_compare object_copy object_print pack pick_index
syn keyword	veraMethods	pop_back pop_front post_boundary postmatch post_pack post_pack
syn keyword	veraMethods	post_randomize post_randomize post_unpack post_unpack
syn keyword	veraMethods	pre_boundary prematch pre_pack pre_pack pre_randomize
syn keyword	veraMethods	pre-randomize pre_unpack push_back push_front putc query
syn keyword	veraMethods	query_str rand_mode randomize reserve reverse rsort search
syn keyword	veraMethods	set_at_least set_auto_bin_max set_bin_activiation
syn keyword	veraMethods	set_coverage_goal set_cov_weight set_cross_bin_max set_name
syn keyword	veraMethods	size sort substr sum thismatch tolower toupper unique_index
syn keyword	veraMethods	unpack Wait

" interface keywords
syn keyword	veraInterface	ASYNC CLOCK gnr gr0 gr1 grx grz NHOLD nr NR0 NR1
syn keyword	veraInterface	NRZ NRZ NSAMPLE PHOLD PR0 PR1 PRX PRZ r0 r1 rx snr
syn keyword	veraInterface	sr0 sr1 srx srz depth inout input output
syn match       veraInterface   "\$\w\+"


syn keyword	veraTodo	contained TODO FIXME XXX FINISH

" veraCommentGroup allows adding matches for special things in comments
syn cluster	veraCommentGroup	contains=veraTodo

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match	veraSpecial	display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
syn match	veraFormat	display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpnm]\|\[\^\=.[^]]*\]\)" contained
syn match	veraFormat	display "%%" contained
syn region	veraString	start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=veraSpecial,veraFormat,@Spell
syn region	veraConcat	contained transparent oneline start='{' end='}'

" veraCppString: same as veraString, but ends at end of line
syn region	veraCppString	start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=veraSpecial,veraFormat,@Spell

syn match	veraCharacter	"'[^\\]'"
syn match	veraCharacter	"L'[^']*'" contains=veraSpecial
syn match	veraSpecialError	"'\\[^'\"?\\abefnrtv]'"
syn match	veraSpecialCharacter	"'\\['\"?\\abefnrtv]'"
syn match	veraSpecialCharacter	display	"'\\\o\{1,3}'"
syn match	veraSpecialCharacter	display	"'\\x\x\{1,2}'"
syn match	veraSpecialCharacter	display	"L'\\x\x\+'"

" highlight trailing white space
syn match	veraSpaceError	display	excludenl "\s\+$"
syn match	veraSpaceError	display	" \+\t"me=e-1

"catch errors caused by wrong parenthesis and brackets
syn cluster	veraParenGroup	contains=veraParenError,veraIncluded,veraSpecial,veraCommentSkip,veraCommentString,veraComment2String,@veraCommentGroup,veraCommentStartError,veraUserCont,veraUserLabel,veraBitField,veraCommentSkip,veraOctalZero,veraCppOut,veraCppOut2,veraCppSkip,veraFormat,veraNumber,veraFloat,veraOctal,veraOctalError,veraNumbersCom

syn region	veraParen	transparent start='(' end=')' contains=ALLBUT,@veraParenGroup,veraCppParen,veraErrInBracket,veraCppBracket,veraCppString,@Spell
" veraCppParen: same as veraParen but ends at end-of-line; used in veraDefine
syn region	veraCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@veraParenGroup,veraErrInBracket,veraParen,veraBracket,veraString,@Spell
syn match	veraParenError	display "[\])]"
" syn match	veraErrInParen	display contained "[\]{}]"
syn match	veraErrInParen	display contained "[\]]"
syn region	veraBracket	transparent start='\[' end=']' contains=ALLBUT,@veraParenGroup,veraErrInParen,veraCppParen,veraCppBracket,veraCppString,@Spell

" veraCppBracket: same as veraParen but ends at end-of-line; used in veraDefine
syn region	veraCppBracket	transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@veraParenGroup,veraErrInParen,veraParen,veraBracket,veraString,@Spell
syn match	veraErrInBracket	display contained "[);{}]"

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	veraNumbers	display transparent "\<\d\|\.\d" contains=veraNumber,veraFloat,veraOctalError,veraOctal
" Same, but without octal error (for comments)
syn match	veraNumbersCom	display contained transparent "\<\d\|\.\d" contains=veraNumber,veraFloat,veraOctal
" syn match	veraNumber	display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
" "hex number
" syn match	veraNumber	display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" syn match   veraNumber "\(\<[0-9]\+\|\)'[bdoh][0-9a-fxzA-FXZ_]\+\>"
syn match	veraNumber "\<\(\<[0-9]\+\)\?\('[bdoh]\)\?[0-9a-fxz_]\+\>"
" syn match   veraNumber "\<[+-]\=[0-9]\+\>"
" Flag the first zero of an octal number as something special
syn match	veraOctal	display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=veraOctalZero
syn match	veraOctalZero	display contained "\<0"
syn match	veraFloat	display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match	veraFloat	display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match	veraFloat	display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match	veraFloat	display contained "\d\+e[-+]\=\d\+[fl]\=\>"
"hexadecimal floating point number, optional leading digits, with dot, with exponent
syn match	veraFloat	display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>"
"hexadecimal floating point number, with leading digits, optional dot, with exponent
syn match	veraFloat	display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>"

" flag an octal number with wrong digits
syn match	veraOctalError	display contained "0\o*[89]\d*"
syn case match

let vera_comment_strings = 1

if exists("vera_comment_strings")
  " A comment can contain veraString, veraCharacter and veraNumber.
  " But a "*/" inside a veraString in a veraComment DOES end the comment!  So we
  " need to use a special type of veraString: veraCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  " Unfortunately this doesn't work very well for // type of comments :-(
  syntax match	veraCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region veraCommentString	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=veraSpecial,veraCommentSkip
  syntax region veraComment2String	contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=veraSpecial
  syntax region  veraCommentL	start="//" skip="\\$" end="$" keepend contains=@veraCommentGroup,veraComment2String,veraCharacter,veraNumbersCom,veraSpaceError,@Spell
  if exists("vera_no_comment_fold")
    syntax region veraComment	matchgroup=veraCommentStart start="/\*" end="\*/" contains=@veraCommentGroup,veraCommentStartError,veraCommentString,veraCharacter,veraNumbersCom,veraSpaceError,@Spell
  else
    syntax region veraComment	matchgroup=veraCommentStart start="/\*" end="\*/" contains=@veraCommentGroup,veraCommentStartError,veraCommentString,veraCharacter,veraNumbersCom,veraSpaceError,@Spell fold
  endif
else
  syn region	veraCommentL	start="//" skip="\\$" end="$" keepend contains=@veraCommentGroup,veraSpaceError,@Spell
  if exists("vera_no_comment_fold")
    syn region	veraComment	matchgroup=veraCommentStart start="/\*" end="\*/" contains=@veraCommentGroup,veraCommentStartError,veraSpaceError,@Spell
  else
    syn region	veraComment	matchgroup=veraCommentStart start="/\*" end="\*/" contains=@veraCommentGroup,veraCommentStartError,veraSpaceError,@Spell fold
  endif
endif
" keep a // comment separately, it terminates a preproc. conditional
syntax match	veraCommentError	display "\*/"
syntax match	veraCommentStartError display "/\*"me=e-1 contained

syntax region	veraBlock		start="{" end="}" transparent fold

" open vera pre-defined constants
syn keyword veraConstant	ALL ANY BAD_STATE BAD_TRANS CALL CHECK CHGEDGE
syn keyword veraConstant	CLEAR COPY_NO_WAIT COPY_WAIT CROSS CROSS_TRANS
syn keyword veraConstant	DEBUG DELETE EC_ARRAYX EC_CODE_END EC_CONFLICT
syn keyword veraConstant	EC_EVNTIMOUT EC_EXPECT EC_FULLEXPECT EC_MBXTMOUT
syn keyword veraConstant	EC_NEXPECT EC_RETURN EC_RGNTMOUT EC_SCONFLICT
syn keyword veraConstant	EC_SEMTMOUT EC_SEXPECT EC_SFULLEXPECT EC_SNEXTPECT
syn keyword veraConstant	EC_USERSET EQ EVENT FAIL FIRST FORK GE GOAL GT
syn keyword veraConstant	HAND_SHAKE HI HIGH HNUM LE LIC_EXIT LIC_PRERR
syn keyword veraConstant	LIC_PRWARN LIC_WAIT LO LOAD LOW LT MAILBOX MAX_COM
syn keyword veraConstant	NAME NE NEGEDGE NEXT NO_OVERLAP NO_OVERLAP_STATE
syn keyword veraConstant	NO_OVERLAP_TRANS NO_VARS NO_WAIT NUM NUM_BIN
syn keyword veraConstant	NUM_DET null OFF OK OK_LAST ON ONE_BLAST ONE_SHOT ORDER
syn keyword veraConstant	PAST_IT PERCENT POSEDGE PROGRAM RAWIN REGION REPORT
syn keyword veraConstant	SAMPLE SAVE SEMAPHORE SET SILENT STATE stderr
syn keyword veraConstant	stdin stdout STR STR_ERR_OUT_OF_RANGE
syn keyword veraConstant	STR_ERR_REGEXP_SYNTAX SUM TRANS VERBOSE void WAIT
syn keyword veraConstant	__LINE__ __FILE__ __DATE__ __TIME__ __VERA__
syn keyword veraConstant	__VERSION__ __VERA_VERSION__ __VERA_MINOR__
syn keyword veraConstant	__VERA_PATCH__ __VERA_VMC__ __VERA_VMC_MINOR__

syn match   veraUserConstant "\<[A-Z][A-Z0-9_]\+\>"

syn match veraClass "\zs\w\+\ze::"
syn match veraClass "\zs\w\+\ze\s\+\w\+\s*[=;,)\[]" contains=veraConstant,veraUserConstant
syn match veraClass "\zs\w\+\ze\s\+\w\+\s*$" contains=veraConstant,veraUserConstant
syn match veraUserMethod "\zs\w\+\ze\s*(" contains=veraConstant,veraUserConstant
syn match veraObject "\zs\w\+\ze\.\w"
syn match veraObject "\zs\w\+\ze\.\$\w"

" Accept ` for # (Verilog)
syn region	veraPreCondit	start="^\s*\(`\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=veraComment,veraCppString,veraCharacter,veraCppParen,veraParenError,veraNumbers,veraCommentError,veraSpaceError
syn match	veraPreCondit	display "^\s*\(`\|#\)\s*\(else\|endif\)\>"
if !exists("vera_no_if0")
  syn region	veraCppOut		start="^\s*\(`\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=veraCppOut2
  syn region	veraCppOut2	contained start="0" end="^\s*\(`\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=veraSpaceError,veraCppSkip
  syn region	veraCppSkip	contained start="^\s*\(`\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(`\|#\)\s*endif\>" contains=veraSpaceError,veraCppSkip
endif
syn region	veraIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	veraIncluded	display contained "<[^>]*>"
syn match	veraInclude	display "^\s*\(`\|#\)\s*include\>\s*["<]" contains=veraIncluded
"syn match veraLineSkip	"\\$"
syn cluster	veraPreProcGroup	contains=veraPreCondit,veraIncluded,veraInclude,veraDefine,veraErrInParen,veraErrInBracket,veraUserLabel,veraSpecial,veraOctalZero,veraCppOut,veraCppOut2,veraCppSkip,veraFormat,veraNumber,veraFloat,veraOctal,veraOctalError,veraNumbersCom,veraString,veraCommentSkip,veraCommentString,veraComment2String,@veraCommentGroup,veraCommentStartError,veraParen,veraBracket,veraMulti
syn region	veraDefine		start="^\s*\(`\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@veraPreProcGroup,@Spell
syn region	veraPreProc	start="^\s*\(`\|#\)\s*\(pragma\>\|line\>\|warning\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@veraPreProcGroup,@Spell

" Highlight User Labels
syn cluster	veraMultiGroup	contains=veraIncluded,veraSpecial,veraCommentSkip,veraCommentString,veraComment2String,@veraCommentGroup,veraCommentStartError,veraUserCont,veraUserLabel,veraBitField,veraOctalZero,veraCppOut,veraCppOut2,veraCppSkip,veraFormat,veraNumber,veraFloat,veraOctal,veraOctalError,veraNumbersCom,veraCppParen,veraCppBracket,veraCppString
syn region	veraMulti		transparent start='?' skip='::' end=':' contains=ALLBUT,@veraMultiGroup,@Spell
" syn region	veraMulti		transparent start='?' skip='::' end=':' contains=ALL
" The above causes veraCppOut2 to catch on:
"    i = (isTrue) ? 0 : 1;
" which ends up commenting the rest of the file

" Avoid matching foo::bar() by requiring that the next char is not ':'
syn cluster	veraLabelGroup	contains=veraUserLabel
syn match	veraUserCont	display "^\s*\I\i*\s*:$" contains=@veraLabelGroup
syn match	veraUserCont	display ";\s*\I\i*\s*:$" contains=@veraLabelGroup
syn match	veraUserCont	display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@veraLabelGroup
syn match	veraUserCont	display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@veraLabelGroup

syn match	veraUserLabel	display "\I\i*" contained

" Avoid recognizing most bitfields as labels
syn match	veraBitField	display "^\s*\I\i*\s*:\s*[1-9]"me=e-1
syn match	veraBitField	display ";\s*\I\i*\s*:\s*[1-9]"me=e-1

if exists("vera_minlines")
  let b:vera_minlines = vera_minlines
else
  if !exists("vera_no_if0")
    let b:vera_minlines = 50	" #if 0 constructs can be long
  else
    let b:vera_minlines = 15	" mostly for () constructs
  endif
endif
exec "syn sync ccomment veraComment minlines=" . b:vera_minlines

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link veraClass		Identifier
hi def link veraObject		Identifier
hi def link veraUserMethod		Function
hi def link veraTask		Keyword
hi def link veraModifier		Tag
hi def link veraDeprecated		veraError
hi def link veraMethods		Statement
" hi def link veraInterface		Label
hi def link veraInterface		Function

hi def link veraFormat		veraSpecial
hi def link veraCppString		veraString
hi def link veraCommentL		veraComment
hi def link veraCommentStart		veraComment
hi def link veraLabel			Label
hi def link veraUserLabel		Label
hi def link veraConditional		Conditional
hi def link veraRepeat		Repeat
hi def link veraCharacter		Character
hi def link veraSpecialCharacter	veraSpecial
hi def link veraNumber		Number
hi def link veraOctal			Number
hi def link veraOctalZero		PreProc	 " link this to Error if you want
hi def link veraFloat			Float
hi def link veraOctalError		veraError
hi def link veraParenError		veraError
hi def link veraErrInParen		veraError
hi def link veraErrInBracket		veraError
hi def link veraCommentError		veraError
hi def link veraCommentStartError	veraError
hi def link veraSpaceError         SpaceError
hi def link veraSpecialError		veraError
hi def link veraOperator		Operator
hi def link veraStructure		Structure
hi def link veraInclude		Include
hi def link veraPreProc		PreProc
hi def link veraDefine		Macro
hi def link veraIncluded		veraString
hi def link veraError			Error
hi def link veraStatement		Statement
hi def link veraPreCondit		PreCondit
hi def link veraType			Type
" hi def link veraConstant		Constant
hi def link veraConstant		Keyword
hi def link veraUserConstant		Constant
hi def link veraCommentString		veraString
hi def link veraComment2String	veraString
hi def link veraCommentSkip		veraComment
hi def link veraString		String
hi def link veraComment		Comment
hi def link veraSpecial		SpecialChar
hi def link veraTodo			Todo
hi def link veraCppSkip		veraCppOut
hi def link veraCppOut2		veraCppOut
hi def link veraCppOut		Comment


let b:current_syntax = "vera"

" vim: ts=8
PK�j�Z�]�	�	vim80/syntax/snnsnet.vimnu�[���" Vim syntax file
" Language:	SNNS network file
" Maintainer:	Davide Alberani <alberanid@bigfoot.com>
" Last Change:	28 Apr 2001
" Version:	0.2
" URL:		http://digilander.iol.it/alberanid/vim/syntax/snnsnet.vim
"
" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/
" is a simulator for neural networks.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match	snnsnetTitle	"no\."
syn match	snnsnetTitle	"type name"
syn match	snnsnetTitle	"unit name"
syn match	snnsnetTitle	"act\( func\)\="
syn match	snnsnetTitle	"out func"
syn match	snnsnetTitle	"site\( name\)\="
syn match	snnsnetTitle	"site function"
syn match	snnsnetTitle	"source:weight"
syn match	snnsnetTitle	"unitNo\."
syn match	snnsnetTitle	"delta x"
syn match	snnsnetTitle	"delta y"
syn keyword	snnsnetTitle	typeName unitName bias st position subnet layer sites name target z LLN LUN Toff Soff Ctype

syn match	snnsnetType	"SNNS network definition file [Vv]\d.\d.*" contains=snnsnetNumbers
syn match	snnsnetType	"generated at.*" contains=snnsnetNumbers
syn match	snnsnetType	"network name\s*:"
syn match	snnsnetType	"source files\s*:"
syn match	snnsnetType	"no\. of units\s*:.*" contains=snnsnetNumbers
syn match	snnsnetType	"no\. of connections\s*:.*" contains=snnsnetNumbers
syn match	snnsnetType	"no\. of unit types\s*:.*" contains=snnsnetNumbers
syn match	snnsnetType	"no\. of site types\s*:.*" contains=snnsnetNumbers
syn match	snnsnetType	"learning function\s*:"
syn match	snnsnetType	"pruning function\s*:"
syn match	snnsnetType	"subordinate learning function\s*:"
syn match	snnsnetType	"update function\s*:"

syn match	snnsnetSection	"unit definition section"
syn match	snnsnetSection	"unit default section"
syn match	snnsnetSection	"site definition section"
syn match	snnsnetSection	"type definition section"
syn match	snnsnetSection	"connection definition section"
syn match	snnsnetSection	"layer definition section"
syn match	snnsnetSection	"subnet definition section"
syn match	snnsnetSection	"3D translation section"
syn match	snnsnetSection	"time delay section"

syn match	snnsnetNumbers	"\d" contained
syn match	snnsnetComment	"#.*$" contains=snnsnetTodo
syn keyword	snnsnetTodo	TODO XXX FIXME contained


hi def link snnsnetType		Type
hi def link snnsnetComment		Comment
hi def link snnsnetNumbers		Number
hi def link snnsnetSection		Statement
hi def link snnsnetTitle		Label
hi def link snnsnetTodo		Todo


let b:current_syntax = "snnsnet"

" vim: ts=8 sw=2
PK�j�ZW%��6�6vim80/syntax/lua.vimnu�[���" Vim syntax file
" Language:	Lua 4.0, Lua 5.0, Lua 5.1 and Lua 5.2
" Maintainer:	Marcus Aurelius Farias <masserahguard-lua 'at' yahoo com>
" First Author:	Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>
" Last Change:	2012 Aug 12
" Options:	lua_version = 4 or 5
"		lua_subversion = 0 (4.0, 5.0) or 1 (5.1) or 2 (5.2)
"		default 5.2

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

if !exists("lua_version")
  " Default is lua 5.2
  let lua_version = 5
  let lua_subversion = 2
elseif !exists("lua_subversion")
  " lua_version exists, but lua_subversion doesn't. So, set it to 0
  let lua_subversion = 0
endif

syn case match

" syncing method
syn sync minlines=100

" Comments
syn keyword luaTodo            contained TODO FIXME XXX
syn match   luaComment         "--.*$" contains=luaTodo,@Spell
if lua_version == 5 && lua_subversion == 0
  syn region luaComment        matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell
  syn region luaInnerComment   contained transparent start="\[\[" end="\]\]"
elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
  " Comments in Lua 5.1: --[[ ... ]], [=[ ... ]=], [===[ ... ]===], etc.
  syn region luaComment        matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell
endif

" First line may start with #!
syn match luaComment "\%^#!.*"

" catch errors caused by wrong parenthesis and wrong curly brackets or
" keywords placed outside their respective blocks
syn region luaParen      transparent                     start='(' end=')' contains=ALLBUT,luaParenError,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaBlock,luaLoopBlock,luaIn,luaStatement
syn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaBraceError,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaBlock,luaLoopBlock,luaIn,luaStatement

syn match  luaParenError ")"
syn match  luaBraceError "}"
syn match  luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>"

" function ... end
syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn

" if ... then
syn region luaIfThen transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4           contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaIn nextgroup=luaThenEnd skipwhite skipempty

" then ... end
syn region luaThenEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaThenEnd,luaIn

" elseif ... then
syn region luaElseifThen contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn

" else
syn keyword luaElse contained else

" do ... end
syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>"          contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn

" repeat ... until
syn region luaLoopBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>"   contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn

" while ... do
syn region luaLoopBlock transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaIn nextgroup=luaBlock skipwhite skipempty

" for ... do and for ... in ... do
syn region luaLoopBlock transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2   contains=ALLBUT,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd nextgroup=luaBlock skipwhite skipempty

syn keyword luaIn contained in

" other keywords
syn keyword luaStatement return local break
if lua_version > 5 || (lua_version == 5 && lua_subversion >= 2)
  syn keyword luaStatement goto
  syn match luaLabel "::\I\i*::"
endif
syn keyword luaOperator and or not
syn keyword luaConstant nil
if lua_version > 4
  syn keyword luaConstant true false
endif

" Strings
if lua_version < 5
  syn match  luaSpecial contained "\\[\\abfnrtv\'\"]\|\\[[:digit:]]\{,3}"
elseif lua_version == 5
  if lua_subversion == 0
    syn match  luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}#
    syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell
  else
    if lua_subversion == 1
      syn match  luaSpecial contained #\\[\\abfnrtv'"]\|\\[[:digit:]]\{,3}#
    else " Lua 5.2
      syn match  luaSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}#
    endif
    syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
  endif
endif
syn region luaString  start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell
syn region luaString  start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell

" integer number
syn match luaNumber "\<\d\+\>"
" floating point number, with dot, optional exponent
syn match luaNumber  "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>"
" floating point number, starting with a dot, optional exponent
syn match luaNumber  "\.\d\+\%([eE][-+]\=\d\+\)\=\>"
" floating point number, without dot, with exponent
syn match luaNumber  "\<\d\+[eE][-+]\=\d\+\>"

" hex numbers
if lua_version >= 5
  if lua_subversion == 1
    syn match luaNumber "\<0[xX]\x\+\>"
  elseif lua_subversion >= 2
    syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>"
  endif
endif

syn keyword luaFunc assert collectgarbage dofile error next
syn keyword luaFunc print rawget rawset tonumber tostring type _VERSION

if lua_version == 4
  syn keyword luaFunc _ALERT _ERRORMESSAGE gcinfo
  syn keyword luaFunc call copytagmethods dostring
  syn keyword luaFunc foreach foreachi getglobal getn
  syn keyword luaFunc gettagmethod globals newtag
  syn keyword luaFunc setglobal settag settagmethod sort
  syn keyword luaFunc tag tinsert tremove
  syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR
  syn keyword luaFunc openfile closefile flush seek
  syn keyword luaFunc setlocale execute remove rename tmpname
  syn keyword luaFunc getenv date clock exit
  syn keyword luaFunc readfrom writeto appendto read write
  syn keyword luaFunc PI abs sin cos tan asin
  syn keyword luaFunc acos atan atan2 ceil floor
  syn keyword luaFunc mod frexp ldexp sqrt min max log
  syn keyword luaFunc log10 exp deg rad random
  syn keyword luaFunc randomseed strlen strsub strlower strupper
  syn keyword luaFunc strchar strrep ascii strbyte
  syn keyword luaFunc format strfind gsub
  syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook
elseif lua_version == 5
  syn keyword luaFunc getmetatable setmetatable
  syn keyword luaFunc ipairs pairs
  syn keyword luaFunc pcall xpcall
  syn keyword luaFunc _G loadfile rawequal require
  if lua_subversion == 0
    syn keyword luaFunc getfenv setfenv
    syn keyword luaFunc loadstring unpack
    syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME
  else
    syn keyword luaFunc load select
    syn match   luaFunc /\<package\.cpath\>/
    syn match   luaFunc /\<package\.loaded\>/
    syn match   luaFunc /\<package\.loadlib\>/
    syn match   luaFunc /\<package\.path\>/
    if lua_subversion == 1
      syn keyword luaFunc getfenv setfenv
      syn keyword luaFunc loadstring module unpack
      syn match   luaFunc /\<package\.loaders\>/
      syn match   luaFunc /\<package\.preload\>/
      syn match   luaFunc /\<package\.seeall\>/
    elseif lua_subversion == 2
      syn keyword luaFunc _ENV rawlen
      syn match   luaFunc /\<package\.config\>/
      syn match   luaFunc /\<package\.preload\>/
      syn match   luaFunc /\<package\.searchers\>/
      syn match   luaFunc /\<package\.searchpath\>/
      syn match   luaFunc /\<bit32\.arshift\>/
      syn match   luaFunc /\<bit32\.band\>/
      syn match   luaFunc /\<bit32\.bnot\>/
      syn match   luaFunc /\<bit32\.bor\>/
      syn match   luaFunc /\<bit32\.btest\>/
      syn match   luaFunc /\<bit32\.bxor\>/
      syn match   luaFunc /\<bit32\.extract\>/
      syn match   luaFunc /\<bit32\.lrotate\>/
      syn match   luaFunc /\<bit32\.lshift\>/
      syn match   luaFunc /\<bit32\.replace\>/
      syn match   luaFunc /\<bit32\.rrotate\>/
      syn match   luaFunc /\<bit32\.rshift\>/
    endif
    syn match luaFunc /\<coroutine\.running\>/
  endif
  syn match   luaFunc /\<coroutine\.create\>/
  syn match   luaFunc /\<coroutine\.resume\>/
  syn match   luaFunc /\<coroutine\.status\>/
  syn match   luaFunc /\<coroutine\.wrap\>/
  syn match   luaFunc /\<coroutine\.yield\>/
  syn match   luaFunc /\<string\.byte\>/
  syn match   luaFunc /\<string\.char\>/
  syn match   luaFunc /\<string\.dump\>/
  syn match   luaFunc /\<string\.find\>/
  syn match   luaFunc /\<string\.format\>/
  syn match   luaFunc /\<string\.gsub\>/
  syn match   luaFunc /\<string\.len\>/
  syn match   luaFunc /\<string\.lower\>/
  syn match   luaFunc /\<string\.rep\>/
  syn match   luaFunc /\<string\.sub\>/
  syn match   luaFunc /\<string\.upper\>/
  if lua_subversion == 0
    syn match luaFunc /\<string\.gfind\>/
  else
    syn match luaFunc /\<string\.gmatch\>/
    syn match luaFunc /\<string\.match\>/
    syn match luaFunc /\<string\.reverse\>/
  endif
  if lua_subversion == 0
    syn match luaFunc /\<table\.getn\>/
    syn match luaFunc /\<table\.setn\>/
    syn match luaFunc /\<table\.foreach\>/
    syn match luaFunc /\<table\.foreachi\>/
  elseif lua_subversion == 1
    syn match luaFunc /\<table\.maxn\>/
  elseif lua_subversion == 2
    syn match luaFunc /\<table\.pack\>/
    syn match luaFunc /\<table\.unpack\>/
  endif
  syn match   luaFunc /\<table\.concat\>/
  syn match   luaFunc /\<table\.sort\>/
  syn match   luaFunc /\<table\.insert\>/
  syn match   luaFunc /\<table\.remove\>/
  syn match   luaFunc /\<math\.abs\>/
  syn match   luaFunc /\<math\.acos\>/
  syn match   luaFunc /\<math\.asin\>/
  syn match   luaFunc /\<math\.atan\>/
  syn match   luaFunc /\<math\.atan2\>/
  syn match   luaFunc /\<math\.ceil\>/
  syn match   luaFunc /\<math\.sin\>/
  syn match   luaFunc /\<math\.cos\>/
  syn match   luaFunc /\<math\.tan\>/
  syn match   luaFunc /\<math\.deg\>/
  syn match   luaFunc /\<math\.exp\>/
  syn match   luaFunc /\<math\.floor\>/
  syn match   luaFunc /\<math\.log\>/
  syn match   luaFunc /\<math\.max\>/
  syn match   luaFunc /\<math\.min\>/
  if lua_subversion == 0
    syn match luaFunc /\<math\.mod\>/
    syn match luaFunc /\<math\.log10\>/
  else
    if lua_subversion == 1
      syn match luaFunc /\<math\.log10\>/
    endif
    syn match luaFunc /\<math\.huge\>/
    syn match luaFunc /\<math\.fmod\>/
    syn match luaFunc /\<math\.modf\>/
    syn match luaFunc /\<math\.cosh\>/
    syn match luaFunc /\<math\.sinh\>/
    syn match luaFunc /\<math\.tanh\>/
  endif
  syn match   luaFunc /\<math\.pow\>/
  syn match   luaFunc /\<math\.rad\>/
  syn match   luaFunc /\<math\.sqrt\>/
  syn match   luaFunc /\<math\.frexp\>/
  syn match   luaFunc /\<math\.ldexp\>/
  syn match   luaFunc /\<math\.random\>/
  syn match   luaFunc /\<math\.randomseed\>/
  syn match   luaFunc /\<math\.pi\>/
  syn match   luaFunc /\<io\.close\>/
  syn match   luaFunc /\<io\.flush\>/
  syn match   luaFunc /\<io\.input\>/
  syn match   luaFunc /\<io\.lines\>/
  syn match   luaFunc /\<io\.open\>/
  syn match   luaFunc /\<io\.output\>/
  syn match   luaFunc /\<io\.popen\>/
  syn match   luaFunc /\<io\.read\>/
  syn match   luaFunc /\<io\.stderr\>/
  syn match   luaFunc /\<io\.stdin\>/
  syn match   luaFunc /\<io\.stdout\>/
  syn match   luaFunc /\<io\.tmpfile\>/
  syn match   luaFunc /\<io\.type\>/
  syn match   luaFunc /\<io\.write\>/
  syn match   luaFunc /\<os\.clock\>/
  syn match   luaFunc /\<os\.date\>/
  syn match   luaFunc /\<os\.difftime\>/
  syn match   luaFunc /\<os\.execute\>/
  syn match   luaFunc /\<os\.exit\>/
  syn match   luaFunc /\<os\.getenv\>/
  syn match   luaFunc /\<os\.remove\>/
  syn match   luaFunc /\<os\.rename\>/
  syn match   luaFunc /\<os\.setlocale\>/
  syn match   luaFunc /\<os\.time\>/
  syn match   luaFunc /\<os\.tmpname\>/
  syn match   luaFunc /\<debug\.debug\>/
  syn match   luaFunc /\<debug\.gethook\>/
  syn match   luaFunc /\<debug\.getinfo\>/
  syn match   luaFunc /\<debug\.getlocal\>/
  syn match   luaFunc /\<debug\.getupvalue\>/
  syn match   luaFunc /\<debug\.setlocal\>/
  syn match   luaFunc /\<debug\.setupvalue\>/
  syn match   luaFunc /\<debug\.sethook\>/
  syn match   luaFunc /\<debug\.traceback\>/
  if lua_subversion == 1
    syn match luaFunc /\<debug\.getfenv\>/
    syn match luaFunc /\<debug\.setfenv\>/
    syn match luaFunc /\<debug\.getmetatable\>/
    syn match luaFunc /\<debug\.setmetatable\>/
    syn match luaFunc /\<debug\.getregistry\>/
  elseif lua_subversion == 2
    syn match luaFunc /\<debug\.getmetatable\>/
    syn match luaFunc /\<debug\.setmetatable\>/
    syn match luaFunc /\<debug\.getregistry\>/
    syn match luaFunc /\<debug\.getuservalue\>/
    syn match luaFunc /\<debug\.setuservalue\>/
    syn match luaFunc /\<debug\.upvalueid\>/
    syn match luaFunc /\<debug\.upvaluejoin\>/
  endif
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link luaStatement		Statement
hi def link luaRepeat		Repeat
hi def link luaFor			Repeat
hi def link luaString		String
hi def link luaString2		String
hi def link luaNumber		Number
hi def link luaOperator		Operator
hi def link luaIn			Operator
hi def link luaConstant		Constant
hi def link luaCond		Conditional
hi def link luaElse		Conditional
hi def link luaFunction		Function
hi def link luaComment		Comment
hi def link luaTodo		Todo
hi def link luaTable		Structure
hi def link luaError		Error
hi def link luaParenError		Error
hi def link luaBraceError		Error
hi def link luaSpecial		SpecialChar
hi def link luaFunc		Identifier
hi def link luaLabel		Label


let b:current_syntax = "lua"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: et ts=8 sw=2
PK�j�Z�T_vvvim80/syntax/bzl.vimnu�[���" Vim syntax file
" Language:	Bazel (http://bazel.io)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-bzl)
" Last Change:	2015 Aug 11

if exists('b:current_syntax')
  finish
endif


runtime! syntax/python.vim

let b:current_syntax = 'bzl'

syn region bzlRule start='^\w\+($' end='^)\n*' transparent fold
syn region bzlList start='\[' end='\]' transparent fold
PK�j�Z�E�$��vim80/syntax/hitest.vimnu�[���" Vim syntax file
" Language:	none; used to see highlighting
" Maintainer:	Ronald Schild <rs@scutum.de>
" Last Change:	2017 Jul 28
" Version:	5.4n.1

" To see your current highlight settings, do
"    :so $VIMRUNTIME/syntax/hitest.vim

" save global options and registers
let s:hidden      = &hidden
let s:lazyredraw  = &lazyredraw
let s:more	  = &more
let s:report      = &report
let s:shortmess   = &shortmess
let s:wrapscan    = &wrapscan
let s:register_a  = @a
let s:register_se = @/

" set global options
set hidden lazyredraw nomore report=99999 shortmess=aoOstTW wrapscan

" print current highlight settings into register a
redir @a
highlight
redir END

" Open a new window if the current one isn't empty
if line("$") != 1 || getline(1) != ""
  new
endif

" edit temporary file
edit Highlight\ test

" set local options
setlocal autoindent noexpandtab formatoptions=t shiftwidth=16 noswapfile tabstop=16
let &textwidth=&columns

" insert highlight settings
% delete
put a

" remove the colored xxx items
g/xxx /s///e

" remove color settings (not needed here)
global! /links to/ substitute /\s.*$//e

" move linked groups to the end of file
global /links to/ move $

" move linked group names to the matching preferred groups
% substitute /^\(\w\+\)\s*\(links to\)\s*\(\w\+\)$/\3\t\2 \1/e
global /links to/ normal mz3ElD0#$p'zdd

" delete empty lines
global /^ *$/ delete

" precede syntax command
% substitute /^[^ ]*/syn keyword &\t&/

" execute syntax commands
syntax clear
% yank a
@a

" remove syntax commands again
% substitute /^syn keyword //

" pretty formatting
global /^/ exe "normal Wi\<CR>\t\eAA\ex"
global /^\S/ join

" find out first syntax highlighting
let b:various = &highlight.',:Normal,:Cursor,:,'
let b:i = 1
while b:various =~ ':'.substitute(getline(b:i), '\s.*$', ',', '')
   let b:i = b:i + 1
   if b:i > line("$") | break | endif
endwhile

" insert headlines
call append(0, "Highlighting groups for various occasions")
call append(1, "-----------------------------------------")

if b:i < line("$")-1
   let b:synhead = "Syntax highlighting groups"
   if exists("hitest_filetypes")
      redir @a
      let
      redir END
      let @a = substitute(@a, 'did_\(\w\+\)_syn\w*_inits\s*#1', ', \1', 'g')
      let @a = substitute(@a, "\n\\w[^\n]*", '', 'g')
      let @a = substitute(@a, "\n", '', 'g')
      let @a = substitute(@a, '^,', '', 'g')
      if @a != ""
	 let b:synhead = b:synhead." - filetype"
	 if @a =~ ','
	    let b:synhead = b:synhead."s"
	 endif
	 let b:synhead = b:synhead.":".@a
      endif
   endif
   call append(b:i+1, "")
   call append(b:i+2, b:synhead)
   call append(b:i+3, substitute(b:synhead, '.', '-', 'g'))
endif

" remove 'hls' highlighting
nohlsearch
normal 0

" we don't want to save this temporary file
set nomodified

" the following trick avoids the "Press RETURN ..." prompt
0 append
.

" restore global options and registers
let &hidden      = s:hidden
let &lazyredraw  = s:lazyredraw
let &more	 = s:more
let &report	 = s:report
let &shortmess	 = s:shortmess
let &wrapscan	 = s:wrapscan
let @a		 = s:register_a

" restore last search pattern
call histdel("search", -1)
let @/ = s:register_se

" remove variables
unlet s:hidden s:lazyredraw s:more s:report s:shortmess
unlet s:wrapscan s:register_a s:register_se

" vim: ts=8
PK�j�Z���[vim80/syntax/xquery.vimnu�[���" Vim syntax file
" Language:	XQuery
" Author: René Neumann <necoro@necoro.eu>
" Author: Steve Spigarelli <http://spig.net/>
" Original Author:	Jean-Marc Vanel <http://jmvanel.free.fr/>
" Last Change:	mar jui 12 18:04:05 CEST 2005
" Filenames:	*.xq
" URL:		http://jmvanel.free.fr/vim/xquery.vim

" REFERENCES:
"   [1] http://www.w3.org/TR/xquery/

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" - is allowed in keywords
setlocal iskeyword+=-

runtime syntax/xml.vim

syn case match

" From XQuery grammar:
syn keyword xqStatement ancestor ancestor-or-self and as ascending at attribute base-uri boundary-space by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes

" TODO contains clashes with vim keyword
syn	keyword	xqFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one

syn keyword xqOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than

syn match xqType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)"


" From XPath grammar:
syn keyword xqXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element

" eXist extensions
syn	match xqExist "&="

" XQdoc
syn	match	XQdoc contained "@\(param\|return\|author\)\>" 

" floating point number, with dot, optional exponent
syn match xqFloat   "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
" floating point number, starting with a dot, optional exponent
syn match xqFloat   "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
" floating point number, without dot, with exponent
syn match xqFloat   "\d\+e[-+]\=\d\+[fl]\=\>"
syn match xqNumber  "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
syn match xqNumber  "\<\d\+\>"

syn region xqString  start=+\z(['"]\)+ skip=+\\.+ end=+\z1+
syn region xqComment start='(:' excludenl end=':)' contains=XQdoc

syn match xqVariable "$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>"
syn match xqSeparator ",\|;"
syn region xqCode transparent contained start='{' excludenl end='}' contains=xqFunction,xqCode,xmlRegionBis,xqComment,xqStatement,xmlString,xqSeparator,xqNumber,xqVariable,xqString keepend extend

syn region xmlRegionBis start=+<\z([^ /!?<>"']\+\)+ skip=+<!--\_.\{-}-->+ end=+</\z1\_\s\{-}>+ end=+/>+ fold contains=xmlTag,xmlEndTag,xmlCdata,xmlRegionBis,xmlComment,xmlEntity,xmlProcessing,xqCode keepend extend

hi def link xqNumber    Number
hi def link xqFloat     Number
hi def link xqString    String
hi def link xqVariable  Identifier
hi def link xqComment   Comment
hi def link xqSeparator Operator
hi def link xqStatement Statement
hi def link xqFunction  Function
hi def link xqOperator  Operator
hi def link xqType      Type
hi def link xqXPath     Operator
hi def link XQdoc       Special
hi def link xqExist     Operator

" override the xml highlighting
"hi link xmlTag      Structure
"hi link xmlTagName  Structure
"hi link xmlEndTag   Structure

let b:current_syntax = "xquery"
PK�j�Z�\����vim80/syntax/xmodmap.vimnu�[���" Vim syntax file
" Language:             xmodmap(1) definition file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword xmodmapTodo       contained TODO FIXME XXX NOTE

syn region  xmodmapComment    display oneline start='^!' end='$'
                              \ contains=xmodmapTodo,@Spell

syn case ignore
syn match   xmodmapInt        display '\<\d\+\>'
syn match   xmodmapHex        display '\<0x\x\+\>'
syn match   xmodmapOctal      display '\<0\o\+\>'
syn match   xmodmapOctalError display '\<0\o*[89]\d*'
syn case match

syn match   xmodmapKeySym     display '\<[A-Za-z]\>'

" #include <X11/keysymdef.h>
syn keyword xmodmapKeySym     XK_VoidSymbol XK_BackSpace XK_Tab XK_Linefeed
                              \ XK_Clear XK_Return XK_Pause XK_Scroll_Lock
                              \ XK_Sys_Req XK_Escape XK_Delete XK_Multi_key
                              \ XK_Codeinput XK_SingleCandidate
                              \ XK_MultipleCandidate XK_PreviousCandidate
                              \ XK_Kanji XK_Muhenkan XK_Henkan_Mode
                              \ XK_Henkan XK_Romaji XK_Hiragana XK_Katakana
                              \ XK_Hiragana_Katakana XK_Zenkaku XK_Hankaku
                              \ XK_Zenkaku_Hankaku XK_Touroku XK_Massyo
                              \ XK_Kana_Lock XK_Kana_Shift XK_Eisu_Shift
                              \ XK_Eisu_toggle XK_Kanji_Bangou XK_Zen_Koho
                              \ XK_Mae_Koho XK_Home XK_Left XK_Up XK_Right
                              \ XK_Down XK_Prior XK_Page_Up XK_Next
                              \ XK_Page_Down XK_End XK_Begin XK_Select
                              \ XK_Print XK_Execute XK_Insert XK_Undo XK_Redo
                              \ XK_Menu XK_Find XK_Cancel XK_Help XK_Break
                              \ XK_Mode_switch XK_script_switch XK_Num_Lock
                              \ XK_KP_Space XK_KP_Tab XK_KP_Enter XK_KP_F1
                              \ XK_KP_F2 XK_KP_F3 XK_KP_F4 XK_KP_Home
                              \ XK_KP_Left XK_KP_Up XK_KP_Right XK_KP_Down
                              \ XK_KP_Prior XK_KP_Page_Up XK_KP_Next
                              \ XK_KP_Page_Down XK_KP_End XK_KP_Begin
                              \ XK_KP_Insert XK_KP_Delete XK_KP_Equal
                              \ XK_KP_Multiply XK_KP_Add XK_KP_Separator
                              \ XK_KP_Subtract XK_KP_Decimal XK_KP_Divide
                              \ XK_KP_0 XK_KP_1 XK_KP_2 XK_KP_3 XK_KP_4
                              \ XK_KP_5 XK_KP_6 XK_KP_7 XK_KP_8 XK_KP_9 XK_F1
                              \ XK_F2 XK_F3 XK_F4 XK_F5 XK_F6 XK_F7 XK_F8
                              \ XK_F9 XK_F10 XK_F11 XK_L1 XK_F12 XK_L2 XK_F13
                              \ XK_L3 XK_F14 XK_L4 XK_F15 XK_L5 XK_F16 XK_L6
                              \ XK_F17 XK_L7 XK_F18 XK_L8 XK_F19 XK_L9 XK_F20
                              \ XK_L10 XK_F21 XK_R1 XK_F22 XK_R2 XK_F23
                              \ XK_R3 XK_F24 XK_R4 XK_F25 XK_R5 XK_F26
                              \ XK_R6 XK_F27 XK_R7 XK_F28 XK_R8 XK_F29
                              \ XK_R9 XK_F30 XK_R10 XK_F31 XK_R11 XK_F32
                              \ XK_R12 XK_F33 XK_R13 XK_F34 XK_R14 XK_F35
                              \ XK_R15 XK_Shift_L XK_Shift_R XK_Control_L
                              \ XK_Control_R XK_Caps_Lock XK_Shift_Lock
                              \ XK_Meta_L XK_Meta_R XK_Alt_L XK_Alt_R
                              \ XK_Super_L XK_Super_R XK_Hyper_L XK_Hyper_R
                              \ XK_dead_hook XK_dead_horn XK_3270_Duplicate
                              \ XK_3270_FieldMark XK_3270_Right2 XK_3270_Left2
                              \ XK_3270_BackTab XK_3270_EraseEOF
                              \ XK_3270_EraseInput XK_3270_Reset
                              \ XK_3270_Quit XK_3270_PA1 XK_3270_PA2
                              \ XK_3270_PA3 XK_3270_Test XK_3270_Attn
                              \ XK_3270_CursorBlink XK_3270_AltCursor
                              \ XK_3270_KeyClick XK_3270_Jump
                              \ XK_3270_Ident XK_3270_Rule XK_3270_Copy
                              \ XK_3270_Play XK_3270_Setup XK_3270_Record
                              \ XK_3270_ChangeScreen XK_3270_DeleteWord
                              \ XK_3270_ExSelect XK_3270_CursorSelect
                              \ XK_3270_PrintScreen XK_3270_Enter XK_space
                              \ XK_exclam XK_quotedbl XK_numbersign XK_dollar
                              \ XK_percent XK_ampersand XK_apostrophe
                              \ XK_quoteright XK_parenleft XK_parenright
                              \ XK_asterisk XK_plus XK_comma XK_minus
                              \ XK_period XK_slash XK_0 XK_1 XK_2 XK_3
                              \ XK_4 XK_5 XK_6 XK_7 XK_8 XK_9 XK_colon
                              \ XK_semicolon XK_less XK_equal XK_greater
                              \ XK_question XK_at XK_A XK_B XK_C XK_D XK_E
                              \ XK_F XK_G XK_H XK_I XK_J XK_K XK_L XK_M XK_N
                              \ XK_O XK_P XK_Q XK_R XK_S XK_T XK_U XK_V XK_W
                              \ XK_X XK_Y XK_Z XK_bracketleft XK_backslash
                              \ XK_bracketright XK_asciicircum XK_underscore
                              \ XK_grave XK_quoteleft XK_a XK_b XK_c XK_d
                              \ XK_e XK_f XK_g XK_h XK_i XK_j XK_k XK_l
                              \ XK_m XK_n XK_o XK_p XK_q XK_r XK_s XK_t XK_u
                              \ XK_v XK_w XK_x XK_y XK_z XK_braceleft XK_bar
                              \ XK_braceright XK_asciitilde XK_nobreakspace
                              \ XK_exclamdown XK_cent XK_sterling XK_currency
                              \ XK_yen XK_brokenbar XK_section XK_diaeresis
                              \ XK_copyright XK_ordfeminine XK_guillemotleft
                              \ XK_notsign XK_hyphen XK_registered XK_macron
                              \ XK_degree XK_plusminus XK_twosuperior
                              \ XK_threesuperior XK_acute XK_mu XK_paragraph
                              \ XK_periodcentered XK_cedilla XK_onesuperior
                              \ XK_masculine XK_guillemotright XK_onequarter
                              \ XK_onehalf XK_threequarters XK_questiondown
                              \ XK_Agrave XK_Aacute XK_Acircumflex XK_Atilde
                              \ XK_Adiaeresis XK_Aring XK_AE XK_Ccedilla
                              \ XK_Egrave XK_Eacute XK_Ecircumflex
                              \ XK_Ediaeresis XK_Igrave XK_Iacute
                              \ XK_Icircumflex XK_Idiaeresis XK_ETH XK_Eth
                              \ XK_Ntilde XK_Ograve XK_Oacute XK_Ocircumflex
                              \ XK_Otilde XK_Odiaeresis XK_multiply
                              \ XK_Ooblique XK_Ugrave XK_Uacute XK_Ucircumflex
                              \ XK_Udiaeresis XK_Yacute XK_THORN XK_Thorn
                              \ XK_ssharp XK_agrave XK_aacute XK_acircumflex
                              \ XK_atilde XK_adiaeresis XK_aring XK_ae
                              \ XK_ccedilla XK_egrave XK_eacute XK_ecircumflex
                              \ XK_ediaeresis XK_igrave XK_iacute
                              \ XK_icircumflex XK_idiaeresis XK_eth XK_ntilde
                              \ XK_ograve XK_oacute XK_ocircumflex XK_otilde
                              \ XK_odiaeresis XK_division XK_oslash XK_ugrave
                              \ XK_uacute XK_ucircumflex XK_udiaeresis
                              \ XK_yacute XK_thorn XK_ydiaeresis XK_Aogonek
                              \ XK_breve XK_Lstroke XK_Lcaron XK_Sacute
                              \ XK_Scaron XK_Scedilla XK_Tcaron XK_Zacute
                              \ XK_Zcaron XK_Zabovedot XK_aogonek XK_ogonek
                              \ XK_lstroke XK_lcaron XK_sacute XK_caron
                              \ XK_scaron XK_scedilla XK_tcaron XK_zacute
                              \ XK_doubleacute XK_zcaron XK_zabovedot
                              \ XK_Racute XK_Abreve XK_Lacute XK_Cacute
                              \ XK_Ccaron XK_Eogonek XK_Ecaron XK_Dcaron
                              \ XK_Dstroke XK_Nacute XK_Ncaron XK_Odoubleacute
                              \ XK_Rcaron XK_Uring XK_Udoubleacute
                              \ XK_Tcedilla XK_racute XK_abreve XK_lacute
                              \ XK_cacute XK_ccaron XK_eogonek XK_ecaron
                              \ XK_dcaron XK_dstroke XK_nacute XK_ncaron
                              \ XK_odoubleacute XK_udoubleacute XK_rcaron
                              \ XK_uring XK_tcedilla XK_abovedot XK_Hstroke
                              \ XK_Hcircumflex XK_Iabovedot XK_Gbreve
                              \ XK_Jcircumflex XK_hstroke XK_hcircumflex
                              \ XK_idotless XK_gbreve XK_jcircumflex
                              \ XK_Cabovedot XK_Ccircumflex XK_Gabovedot
                              \ XK_Gcircumflex XK_Ubreve XK_Scircumflex
                              \ XK_cabovedot XK_ccircumflex XK_gabovedot
                              \ XK_gcircumflex XK_ubreve XK_scircumflex XK_kra
                              \ XK_kappa XK_Rcedilla XK_Itilde XK_Lcedilla
                              \ XK_Emacron XK_Gcedilla XK_Tslash XK_rcedilla
                              \ XK_itilde XK_lcedilla XK_emacron XK_gcedilla
                              \ XK_tslash XK_ENG XK_eng XK_Amacron XK_Iogonek
                              \ XK_Eabovedot XK_Imacron XK_Ncedilla XK_Omacron
                              \ XK_Kcedilla XK_Uogonek XK_Utilde XK_Umacron
                              \ XK_amacron XK_iogonek XK_eabovedot XK_imacron
                              \ XK_ncedilla XK_omacron XK_kcedilla XK_uogonek
                              \ XK_utilde XK_umacron XK_Babovedot XK_babovedot
                              \ XK_Dabovedot XK_Wgrave XK_Wacute XK_dabovedot
                              \ XK_Ygrave XK_Fabovedot XK_fabovedot
                              \ XK_Mabovedot XK_mabovedot XK_Pabovedot
                              \ XK_wgrave XK_pabovedot XK_wacute XK_Sabovedot
                              \ XK_ygrave XK_Wdiaeresis XK_wdiaeresis
                              \ XK_sabovedot XK_Wcircumflex XK_Tabovedot
                              \ XK_Ycircumflex XK_wcircumflex
                              \ XK_tabovedot XK_ycircumflex XK_OE XK_oe
                              \ XK_Ydiaeresis XK_overline XK_kana_fullstop
                              \ XK_kana_openingbracket XK_kana_closingbracket
                              \ XK_kana_comma XK_kana_conjunctive
                              \ XK_kana_middledot XK_kana_WO XK_kana_a
                              \ XK_kana_i XK_kana_u XK_kana_e XK_kana_o
                              \ XK_kana_ya XK_kana_yu XK_kana_yo
                              \ XK_kana_tsu XK_kana_tu XK_prolongedsound
                              \ XK_kana_A XK_kana_I XK_kana_U XK_kana_E
                              \ XK_kana_O XK_kana_KA XK_kana_KI XK_kana_KU
                              \ XK_kana_KE XK_kana_KO XK_kana_SA XK_kana_SHI
                              \ XK_kana_SU XK_kana_SE XK_kana_SO XK_kana_TA
                              \ XK_kana_CHI XK_kana_TI XK_kana_TSU
                              \ XK_kana_TU XK_kana_TE XK_kana_TO XK_kana_NA
                              \ XK_kana_NI XK_kana_NU XK_kana_NE XK_kana_NO
                              \ XK_kana_HA XK_kana_HI XK_kana_FU XK_kana_HU
                              \ XK_kana_HE XK_kana_HO XK_kana_MA XK_kana_MI
                              \ XK_kana_MU XK_kana_ME XK_kana_MO XK_kana_YA
                              \ XK_kana_YU XK_kana_YO XK_kana_RA XK_kana_RI
                              \ XK_kana_RU XK_kana_RE XK_kana_RO XK_kana_WA
                              \ XK_kana_N XK_voicedsound XK_semivoicedsound
                              \ XK_kana_switch XK_Farsi_0 XK_Farsi_1
                              \ XK_Farsi_2 XK_Farsi_3 XK_Farsi_4 XK_Farsi_5
                              \ XK_Farsi_6 XK_Farsi_7 XK_Farsi_8 XK_Farsi_9
                              \ XK_Arabic_percent XK_Arabic_superscript_alef
                              \ XK_Arabic_tteh XK_Arabic_peh XK_Arabic_tcheh
                              \ XK_Arabic_ddal XK_Arabic_rreh XK_Arabic_comma
                              \ XK_Arabic_fullstop XK_Arabic_0 XK_Arabic_1
                              \ XK_Arabic_2 XK_Arabic_3 XK_Arabic_4
                              \ XK_Arabic_5 XK_Arabic_6 XK_Arabic_7
                              \ XK_Arabic_8 XK_Arabic_9 XK_Arabic_semicolon
                              \ XK_Arabic_question_mark XK_Arabic_hamza
                              \ XK_Arabic_maddaonalef XK_Arabic_hamzaonalef
                              \ XK_Arabic_hamzaonwaw XK_Arabic_hamzaunderalef
                              \ XK_Arabic_hamzaonyeh XK_Arabic_alef
                              \ XK_Arabic_beh XK_Arabic_tehmarbuta
                              \ XK_Arabic_teh XK_Arabic_theh XK_Arabic_jeem
                              \ XK_Arabic_hah XK_Arabic_khah XK_Arabic_dal
                              \ XK_Arabic_thal XK_Arabic_ra XK_Arabic_zain
                              \ XK_Arabic_seen XK_Arabic_sheen
                              \ XK_Arabic_sad XK_Arabic_dad XK_Arabic_tah
                              \ XK_Arabic_zah XK_Arabic_ain XK_Arabic_ghain
                              \ XK_Arabic_tatweel XK_Arabic_feh XK_Arabic_qaf
                              \ XK_Arabic_kaf XK_Arabic_lam XK_Arabic_meem
                              \ XK_Arabic_noon XK_Arabic_ha XK_Arabic_heh
                              \ XK_Arabic_waw XK_Arabic_alefmaksura
                              \ XK_Arabic_yeh XK_Arabic_fathatan
                              \ XK_Arabic_dammatan XK_Arabic_kasratan
                              \ XK_Arabic_fatha XK_Arabic_damma
                              \ XK_Arabic_kasra XK_Arabic_shadda
                              \ XK_Arabic_sukun XK_Arabic_madda_above
                              \ XK_Arabic_hamza_above XK_Arabic_hamza_below
                              \ XK_Arabic_jeh XK_Arabic_veh XK_Arabic_keheh
                              \ XK_Arabic_gaf XK_Arabic_noon_ghunna
                              \ XK_Arabic_heh_doachashmee XK_Farsi_yeh
                              \ XK_Arabic_yeh_baree XK_Arabic_heh_goal
                              \ XK_Arabic_switch XK_Cyrillic_GHE_bar
                              \ XK_Cyrillic_ghe_bar XK_Cyrillic_ZHE_descender
                              \ XK_Cyrillic_zhe_descender
                              \ XK_Cyrillic_KA_descender
                              \ XK_Cyrillic_ka_descender
                              \ XK_Cyrillic_KA_vertstroke
                              \ XK_Cyrillic_ka_vertstroke
                              \ XK_Cyrillic_EN_descender
                              \ XK_Cyrillic_en_descender
                              \ XK_Cyrillic_U_straight XK_Cyrillic_u_straight
                              \ XK_Cyrillic_U_straight_bar
                              \ XK_Cyrillic_u_straight_bar
                              \ XK_Cyrillic_HA_descender
                              \ XK_Cyrillic_ha_descender
                              \ XK_Cyrillic_CHE_descender
                              \ XK_Cyrillic_che_descender
                              \ XK_Cyrillic_CHE_vertstroke
                              \ XK_Cyrillic_che_vertstroke XK_Cyrillic_SHHA
                              \ XK_Cyrillic_shha XK_Cyrillic_SCHWA
                              \ XK_Cyrillic_schwa XK_Cyrillic_I_macron
                              \ XK_Cyrillic_i_macron XK_Cyrillic_O_bar
                              \ XK_Cyrillic_o_bar XK_Cyrillic_U_macron
                              \ XK_Cyrillic_u_macron XK_Serbian_dje
                              \ XK_Macedonia_gje XK_Cyrillic_io
                              \ XK_Ukrainian_ie XK_Ukranian_je
                              \ XK_Macedonia_dse XK_Ukrainian_i XK_Ukranian_i
                              \ XK_Ukrainian_yi XK_Ukranian_yi XK_Cyrillic_je
                              \ XK_Serbian_je XK_Cyrillic_lje XK_Serbian_lje
                              \ XK_Cyrillic_nje XK_Serbian_nje XK_Serbian_tshe
                              \ XK_Macedonia_kje XK_Ukrainian_ghe_with_upturn
                              \ XK_Byelorussian_shortu XK_Cyrillic_dzhe
                              \ XK_Serbian_dze XK_numerosign
                              \ XK_Serbian_DJE XK_Macedonia_GJE
                              \ XK_Cyrillic_IO XK_Ukrainian_IE XK_Ukranian_JE
                              \ XK_Macedonia_DSE XK_Ukrainian_I XK_Ukranian_I
                              \ XK_Ukrainian_YI XK_Ukranian_YI XK_Cyrillic_JE
                              \ XK_Serbian_JE XK_Cyrillic_LJE XK_Serbian_LJE
                              \ XK_Cyrillic_NJE XK_Serbian_NJE XK_Serbian_TSHE
                              \ XK_Macedonia_KJE XK_Ukrainian_GHE_WITH_UPTURN
                              \ XK_Byelorussian_SHORTU XK_Cyrillic_DZHE
                              \ XK_Serbian_DZE XK_Cyrillic_yu
                              \ XK_Cyrillic_a XK_Cyrillic_be XK_Cyrillic_tse
                              \ XK_Cyrillic_de XK_Cyrillic_ie XK_Cyrillic_ef
                              \ XK_Cyrillic_ghe XK_Cyrillic_ha XK_Cyrillic_i
                              \ XK_Cyrillic_shorti XK_Cyrillic_ka
                              \ XK_Cyrillic_el XK_Cyrillic_em XK_Cyrillic_en
                              \ XK_Cyrillic_o XK_Cyrillic_pe XK_Cyrillic_ya
                              \ XK_Cyrillic_er XK_Cyrillic_es XK_Cyrillic_te
                              \ XK_Cyrillic_u XK_Cyrillic_zhe XK_Cyrillic_ve
                              \ XK_Cyrillic_softsign XK_Cyrillic_yeru
                              \ XK_Cyrillic_ze XK_Cyrillic_sha XK_Cyrillic_e
                              \ XK_Cyrillic_shcha XK_Cyrillic_che
                              \ XK_Cyrillic_hardsign XK_Cyrillic_YU
                              \ XK_Cyrillic_A XK_Cyrillic_BE XK_Cyrillic_TSE
                              \ XK_Cyrillic_DE XK_Cyrillic_IE XK_Cyrillic_EF
                              \ XK_Cyrillic_GHE XK_Cyrillic_HA XK_Cyrillic_I
                              \ XK_Cyrillic_SHORTI XK_Cyrillic_KA
                              \ XK_Cyrillic_EL XK_Cyrillic_EM XK_Cyrillic_EN
                              \ XK_Cyrillic_O XK_Cyrillic_PE XK_Cyrillic_YA
                              \ XK_Cyrillic_ER XK_Cyrillic_ES XK_Cyrillic_TE
                              \ XK_Cyrillic_U XK_Cyrillic_ZHE XK_Cyrillic_VE
                              \ XK_Cyrillic_SOFTSIGN XK_Cyrillic_YERU
                              \ XK_Cyrillic_ZE XK_Cyrillic_SHA XK_Cyrillic_E
                              \ XK_Cyrillic_SHCHA XK_Cyrillic_CHE
                              \ XK_Cyrillic_HARDSIGN XK_Greek_ALPHAaccent
                              \ XK_Greek_EPSILONaccent XK_Greek_ETAaccent
                              \ XK_Greek_IOTAaccent XK_Greek_IOTAdieresis
                              \ XK_Greek_OMICRONaccent XK_Greek_UPSILONaccent
                              \ XK_Greek_UPSILONdieresis
                              \ XK_Greek_OMEGAaccent XK_Greek_accentdieresis
                              \ XK_Greek_horizbar XK_Greek_alphaaccent
                              \ XK_Greek_epsilonaccent XK_Greek_etaaccent
                              \ XK_Greek_iotaaccent XK_Greek_iotadieresis
                              \ XK_Greek_iotaaccentdieresis
                              \ XK_Greek_omicronaccent XK_Greek_upsilonaccent
                              \ XK_Greek_upsilondieresis
                              \ XK_Greek_upsilonaccentdieresis
                              \ XK_Greek_omegaaccent XK_Greek_ALPHA
                              \ XK_Greek_BETA XK_Greek_GAMMA XK_Greek_DELTA
                              \ XK_Greek_EPSILON XK_Greek_ZETA XK_Greek_ETA
                              \ XK_Greek_THETA XK_Greek_IOTA XK_Greek_KAPPA
                              \ XK_Greek_LAMDA XK_Greek_LAMBDA XK_Greek_MU
                              \ XK_Greek_NU XK_Greek_XI XK_Greek_OMICRON
                              \ XK_Greek_PI XK_Greek_RHO XK_Greek_SIGMA
                              \ XK_Greek_TAU XK_Greek_UPSILON XK_Greek_PHI
                              \ XK_Greek_CHI XK_Greek_PSI XK_Greek_OMEGA
                              \ XK_Greek_alpha XK_Greek_beta XK_Greek_gamma
                              \ XK_Greek_delta XK_Greek_epsilon XK_Greek_zeta
                              \ XK_Greek_eta XK_Greek_theta XK_Greek_iota
                              \ XK_Greek_kappa XK_Greek_lamda XK_Greek_lambda
                              \ XK_Greek_mu XK_Greek_nu XK_Greek_xi
                              \ XK_Greek_omicron XK_Greek_pi XK_Greek_rho
                              \ XK_Greek_sigma XK_Greek_finalsmallsigma
                              \ XK_Greek_tau XK_Greek_upsilon XK_Greek_phi
                              \ XK_Greek_chi XK_Greek_psi XK_Greek_omega
                              \ XK_Greek_switch XK_leftradical
                              \ XK_topleftradical XK_horizconnector
                              \ XK_topintegral XK_botintegral
                              \ XK_vertconnector XK_topleftsqbracket
                              \ XK_botleftsqbracket XK_toprightsqbracket
                              \ XK_botrightsqbracket XK_topleftparens
                              \ XK_botleftparens XK_toprightparens
                              \ XK_botrightparens XK_leftmiddlecurlybrace
                              \ XK_rightmiddlecurlybrace
                              \ XK_topleftsummation XK_botleftsummation
                              \ XK_topvertsummationconnector
                              \ XK_botvertsummationconnector
                              \ XK_toprightsummation XK_botrightsummation
                              \ XK_rightmiddlesummation XK_lessthanequal
                              \ XK_notequal XK_greaterthanequal XK_integral
                              \ XK_therefore XK_variation XK_infinity
                              \ XK_nabla XK_approximate XK_similarequal
                              \ XK_ifonlyif XK_implies XK_identical XK_radical
                              \ XK_includedin XK_includes XK_intersection
                              \ XK_union XK_logicaland XK_logicalor
                              \ XK_partialderivative XK_function XK_leftarrow
                              \ XK_uparrow XK_rightarrow XK_downarrow XK_blank
                              \ XK_soliddiamond XK_checkerboard XK_ht XK_ff
                              \ XK_cr XK_lf XK_nl XK_vt XK_lowrightcorner
                              \ XK_uprightcorner XK_upleftcorner
                              \ XK_lowleftcorner XK_crossinglines
                              \ XK_horizlinescan1 XK_horizlinescan3
                              \ XK_horizlinescan5 XK_horizlinescan7
                              \ XK_horizlinescan9 XK_leftt XK_rightt XK_bott
                              \ XK_topt XK_vertbar XK_emspace XK_enspace
                              \ XK_em3space XK_em4space XK_digitspace
                              \ XK_punctspace XK_thinspace XK_hairspace
                              \ XK_emdash XK_endash XK_signifblank XK_ellipsis
                              \ XK_doubbaselinedot XK_onethird XK_twothirds
                              \ XK_onefifth XK_twofifths XK_threefifths
                              \ XK_fourfifths XK_onesixth XK_fivesixths
                              \ XK_careof XK_figdash XK_leftanglebracket
                              \ XK_decimalpoint XK_rightanglebracket
                              \ XK_marker XK_oneeighth XK_threeeighths
                              \ XK_fiveeighths XK_seveneighths XK_trademark
                              \ XK_signaturemark XK_trademarkincircle
                              \ XK_leftopentriangle XK_rightopentriangle
                              \ XK_emopencircle XK_emopenrectangle
                              \ XK_leftsinglequotemark XK_rightsinglequotemark
                              \ XK_leftdoublequotemark XK_rightdoublequotemark
                              \ XK_prescription XK_minutes XK_seconds
                              \ XK_latincross XK_hexagram XK_filledrectbullet
                              \ XK_filledlefttribullet XK_filledrighttribullet
                              \ XK_emfilledcircle XK_emfilledrect
                              \ XK_enopencircbullet XK_enopensquarebullet
                              \ XK_openrectbullet XK_opentribulletup
                              \ XK_opentribulletdown XK_openstar
                              \ XK_enfilledcircbullet XK_enfilledsqbullet
                              \ XK_filledtribulletup XK_filledtribulletdown
                              \ XK_leftpointer XK_rightpointer XK_club
                              \ XK_diamond XK_heart XK_maltesecross
                              \ XK_dagger XK_doubledagger XK_checkmark
                              \ XK_ballotcross XK_musicalsharp XK_musicalflat
                              \ XK_malesymbol XK_femalesymbol XK_telephone
                              \ XK_telephonerecorder XK_phonographcopyright
                              \ XK_caret XK_singlelowquotemark
                              \ XK_doublelowquotemark XK_cursor
                              \ XK_leftcaret XK_rightcaret XK_downcaret
                              \ XK_upcaret XK_overbar XK_downtack XK_upshoe
                              \ XK_downstile XK_underbar XK_jot XK_quad
                              \ XK_uptack XK_circle XK_upstile XK_downshoe
                              \ XK_rightshoe XK_leftshoe XK_lefttack
                              \ XK_righttack XK_hebrew_doublelowline
                              \ XK_hebrew_aleph XK_hebrew_bet XK_hebrew_beth
                              \ XK_hebrew_gimel XK_hebrew_gimmel
                              \ XK_hebrew_dalet XK_hebrew_daleth
                              \ XK_hebrew_he XK_hebrew_waw XK_hebrew_zain
                              \ XK_hebrew_zayin XK_hebrew_chet XK_hebrew_het
                              \ XK_hebrew_tet XK_hebrew_teth XK_hebrew_yod
                              \ XK_hebrew_finalkaph XK_hebrew_kaph
                              \ XK_hebrew_lamed XK_hebrew_finalmem
                              \ XK_hebrew_mem XK_hebrew_finalnun XK_hebrew_nun
                              \ XK_hebrew_samech XK_hebrew_samekh
                              \ XK_hebrew_ayin XK_hebrew_finalpe XK_hebrew_pe
                              \ XK_hebrew_finalzade XK_hebrew_finalzadi
                              \ XK_hebrew_zade XK_hebrew_zadi XK_hebrew_qoph
                              \ XK_hebrew_kuf XK_hebrew_resh XK_hebrew_shin
                              \ XK_hebrew_taw XK_hebrew_taf XK_Hebrew_switch
                              \ XK_Thai_kokai XK_Thai_khokhai XK_Thai_khokhuat
                              \ XK_Thai_khokhwai XK_Thai_khokhon
                              \ XK_Thai_khorakhang XK_Thai_ngongu
                              \ XK_Thai_chochan XK_Thai_choching
                              \ XK_Thai_chochang XK_Thai_soso XK_Thai_chochoe
                              \ XK_Thai_yoying XK_Thai_dochada XK_Thai_topatak
                              \ XK_Thai_thothan XK_Thai_thonangmontho
                              \ XK_Thai_thophuthao XK_Thai_nonen
                              \ XK_Thai_dodek XK_Thai_totao XK_Thai_thothung
                              \ XK_Thai_thothahan XK_Thai_thothong
                              \ XK_Thai_nonu XK_Thai_bobaimai XK_Thai_popla
                              \ XK_Thai_phophung XK_Thai_fofa XK_Thai_phophan
                              \ XK_Thai_fofan XK_Thai_phosamphao XK_Thai_moma
                              \ XK_Thai_yoyak XK_Thai_rorua XK_Thai_ru
                              \ XK_Thai_loling XK_Thai_lu XK_Thai_wowaen
                              \ XK_Thai_sosala XK_Thai_sorusi XK_Thai_sosua
                              \ XK_Thai_hohip XK_Thai_lochula XK_Thai_oang
                              \ XK_Thai_honokhuk XK_Thai_paiyannoi
                              \ XK_Thai_saraa XK_Thai_maihanakat
                              \ XK_Thai_saraaa XK_Thai_saraam XK_Thai_sarai
                              \ XK_Thai_saraii XK_Thai_saraue XK_Thai_sarauee
                              \ XK_Thai_sarau XK_Thai_sarauu XK_Thai_phinthu
                              \ XK_Thai_maihanakat_maitho XK_Thai_baht
                              \ XK_Thai_sarae XK_Thai_saraae XK_Thai_sarao
                              \ XK_Thai_saraaimaimuan XK_Thai_saraaimaimalai
                              \ XK_Thai_lakkhangyao XK_Thai_maiyamok
                              \ XK_Thai_maitaikhu XK_Thai_maiek XK_Thai_maitho
                              \ XK_Thai_maitri XK_Thai_maichattawa
                              \ XK_Thai_thanthakhat XK_Thai_nikhahit
                              \ XK_Thai_leksun XK_Thai_leknung XK_Thai_leksong
                              \ XK_Thai_leksam XK_Thai_leksi XK_Thai_lekha
                              \ XK_Thai_lekhok XK_Thai_lekchet XK_Thai_lekpaet
                              \ XK_Thai_lekkao XK_Hangul XK_Hangul_Start
                              \ XK_Hangul_End XK_Hangul_Hanja XK_Hangul_Jamo
                              \ XK_Hangul_Romaja XK_Hangul_Codeinput
                              \ XK_Hangul_Jeonja XK_Hangul_Banja
                              \ XK_Hangul_PreHanja XK_Hangul_PostHanja
                              \ XK_Hangul_SingleCandidate
                              \ XK_Hangul_MultipleCandidate
                              \ XK_Hangul_PreviousCandidate XK_Hangul_Special
                              \ XK_Hangul_switch XK_Hangul_Kiyeog
                              \ XK_Hangul_SsangKiyeog XK_Hangul_KiyeogSios
                              \ XK_Hangul_Nieun XK_Hangul_NieunJieuj
                              \ XK_Hangul_NieunHieuh XK_Hangul_Dikeud
                              \ XK_Hangul_SsangDikeud XK_Hangul_Rieul
                              \ XK_Hangul_RieulKiyeog XK_Hangul_RieulMieum
                              \ XK_Hangul_RieulPieub XK_Hangul_RieulSios
                              \ XK_Hangul_RieulTieut XK_Hangul_RieulPhieuf
                              \ XK_Hangul_RieulHieuh XK_Hangul_Mieum
                              \ XK_Hangul_Pieub XK_Hangul_SsangPieub
                              \ XK_Hangul_PieubSios XK_Hangul_Sios
                              \ XK_Hangul_SsangSios XK_Hangul_Ieung
                              \ XK_Hangul_Jieuj XK_Hangul_SsangJieuj
                              \ XK_Hangul_Cieuc XK_Hangul_Khieuq
                              \ XK_Hangul_Tieut XK_Hangul_Phieuf
                              \ XK_Hangul_Hieuh XK_Hangul_A XK_Hangul_AE
                              \ XK_Hangul_YA XK_Hangul_YAE XK_Hangul_EO
                              \ XK_Hangul_E XK_Hangul_YEO XK_Hangul_YE
                              \ XK_Hangul_O XK_Hangul_WA XK_Hangul_WAE
                              \ XK_Hangul_OE XK_Hangul_YO XK_Hangul_U
                              \ XK_Hangul_WEO XK_Hangul_WE XK_Hangul_WI
                              \ XK_Hangul_YU XK_Hangul_EU XK_Hangul_YI
                              \ XK_Hangul_I XK_Hangul_J_Kiyeog
                              \ XK_Hangul_J_SsangKiyeog XK_Hangul_J_KiyeogSios
                              \ XK_Hangul_J_Nieun XK_Hangul_J_NieunJieuj
                              \ XK_Hangul_J_NieunHieuh XK_Hangul_J_Dikeud
                              \ XK_Hangul_J_Rieul XK_Hangul_J_RieulKiyeog
                              \ XK_Hangul_J_RieulMieum XK_Hangul_J_RieulPieub
                              \ XK_Hangul_J_RieulSios XK_Hangul_J_RieulTieut
                              \ XK_Hangul_J_RieulPhieuf XK_Hangul_J_RieulHieuh
                              \ XK_Hangul_J_Mieum XK_Hangul_J_Pieub
                              \ XK_Hangul_J_PieubSios XK_Hangul_J_Sios
                              \ XK_Hangul_J_SsangSios XK_Hangul_J_Ieung
                              \ XK_Hangul_J_Jieuj XK_Hangul_J_Cieuc
                              \ XK_Hangul_J_Khieuq XK_Hangul_J_Tieut
                              \ XK_Hangul_J_Phieuf XK_Hangul_J_Hieuh
                              \ XK_Hangul_RieulYeorinHieuh
                              \ XK_Hangul_SunkyeongeumMieum
                              \ XK_Hangul_SunkyeongeumPieub XK_Hangul_PanSios
                              \ XK_Hangul_KkogjiDalrinIeung
                              \ XK_Hangul_SunkyeongeumPhieuf
                              \ XK_Hangul_YeorinHieuh XK_Hangul_AraeA
                              \ XK_Hangul_AraeAE XK_Hangul_J_PanSios
                              \ XK_Hangul_J_KkogjiDalrinIeung
                              \ XK_Hangul_J_YeorinHieuh XK_Korean_Won
                              \ XK_Armenian_eternity XK_Armenian_ligature_ew
                              \ XK_Armenian_full_stop XK_Armenian_verjaket
                              \ XK_Armenian_parenright XK_Armenian_parenleft
                              \ XK_Armenian_guillemotright
                              \ XK_Armenian_guillemotleft XK_Armenian_em_dash
                              \ XK_Armenian_dot XK_Armenian_mijaket
                              \ XK_Armenian_separation_mark XK_Armenian_but
                              \ XK_Armenian_comma XK_Armenian_en_dash
                              \ XK_Armenian_hyphen XK_Armenian_yentamna
                              \ XK_Armenian_ellipsis XK_Armenian_exclam
                              \ XK_Armenian_amanak XK_Armenian_accent
                              \ XK_Armenian_shesht XK_Armenian_question
                              \ XK_Armenian_paruyk XK_Armenian_AYB
                              \ XK_Armenian_ayb XK_Armenian_BEN
                              \ XK_Armenian_ben XK_Armenian_GIM
                              \ XK_Armenian_gim XK_Armenian_DA XK_Armenian_da
                              \ XK_Armenian_YECH XK_Armenian_yech
                              \ XK_Armenian_ZA XK_Armenian_za XK_Armenian_E
                              \ XK_Armenian_e XK_Armenian_AT XK_Armenian_at
                              \ XK_Armenian_TO XK_Armenian_to
                              \ XK_Armenian_ZHE XK_Armenian_zhe
                              \ XK_Armenian_INI XK_Armenian_ini
                              \ XK_Armenian_LYUN XK_Armenian_lyun
                              \ XK_Armenian_KHE XK_Armenian_khe
                              \ XK_Armenian_TSA XK_Armenian_tsa
                              \ XK_Armenian_KEN XK_Armenian_ken XK_Armenian_HO
                              \ XK_Armenian_ho XK_Armenian_DZA XK_Armenian_dza
                              \ XK_Armenian_GHAT XK_Armenian_ghat
                              \ XK_Armenian_TCHE XK_Armenian_tche
                              \ XK_Armenian_MEN XK_Armenian_men XK_Armenian_HI
                              \ XK_Armenian_hi XK_Armenian_NU XK_Armenian_nu
                              \ XK_Armenian_SHA XK_Armenian_sha XK_Armenian_VO
                              \ XK_Armenian_vo XK_Armenian_CHA XK_Armenian_cha
                              \ XK_Armenian_PE XK_Armenian_pe XK_Armenian_JE
                              \ XK_Armenian_je XK_Armenian_RA XK_Armenian_ra
                              \ XK_Armenian_SE XK_Armenian_se XK_Armenian_VEV
                              \ XK_Armenian_vev XK_Armenian_TYUN
                              \ XK_Armenian_tyun XK_Armenian_RE
                              \ XK_Armenian_re XK_Armenian_TSO
                              \ XK_Armenian_tso XK_Armenian_VYUN
                              \ XK_Armenian_vyun XK_Armenian_PYUR
                              \ XK_Armenian_pyur XK_Armenian_KE XK_Armenian_ke
                              \ XK_Armenian_O XK_Armenian_o XK_Armenian_FE
                              \ XK_Armenian_fe XK_Armenian_apostrophe
                              \ XK_Armenian_section_sign XK_Georgian_an
                              \ XK_Georgian_ban XK_Georgian_gan
                              \ XK_Georgian_don XK_Georgian_en XK_Georgian_vin
                              \ XK_Georgian_zen XK_Georgian_tan
                              \ XK_Georgian_in XK_Georgian_kan XK_Georgian_las
                              \ XK_Georgian_man XK_Georgian_nar XK_Georgian_on
                              \ XK_Georgian_par XK_Georgian_zhar
                              \ XK_Georgian_rae XK_Georgian_san
                              \ XK_Georgian_tar XK_Georgian_un
                              \ XK_Georgian_phar XK_Georgian_khar
                              \ XK_Georgian_ghan XK_Georgian_qar
                              \ XK_Georgian_shin XK_Georgian_chin
                              \ XK_Georgian_can XK_Georgian_jil
                              \ XK_Georgian_cil XK_Georgian_char
                              \ XK_Georgian_xan XK_Georgian_jhan
                              \ XK_Georgian_hae XK_Georgian_he XK_Georgian_hie
                              \ XK_Georgian_we XK_Georgian_har XK_Georgian_hoe
                              \ XK_Georgian_fi XK_Ccedillaabovedot
                              \ XK_Xabovedot XK_Qabovedot XK_IE XK_UO
                              \ XK_Zstroke XK_ccedillaabovedot XK_xabovedot
                              \ XK_qabovedot XK_ie XK_uo XK_zstroke XK_SCHWA
                              \ XK_schwa XK_Lbelowdot XK_Lstrokebelowdot
                              \ XK_lbelowdot XK_lstrokebelowdot XK_Gtilde
                              \ XK_gtilde XK_Abelowdot XK_abelowdot
                              \ XK_Ahook XK_ahook XK_Acircumflexacute
                              \ XK_acircumflexacute XK_Acircumflexgrave
                              \ XK_acircumflexgrave XK_Acircumflexhook
                              \ XK_acircumflexhook XK_Acircumflextilde
                              \ XK_acircumflextilde XK_Acircumflexbelowdot
                              \ XK_acircumflexbelowdot XK_Abreveacute
                              \ XK_abreveacute XK_Abrevegrave XK_abrevegrave
                              \ XK_Abrevehook XK_abrevehook XK_Abrevetilde
                              \ XK_abrevetilde XK_Abrevebelowdot
                              \ XK_abrevebelowdot XK_Ebelowdot XK_ebelowdot
                              \ XK_Ehook XK_ehook XK_Etilde XK_etilde
                              \ XK_Ecircumflexacute XK_ecircumflexacute
                              \ XK_Ecircumflexgrave XK_ecircumflexgrave
                              \ XK_Ecircumflexhook XK_ecircumflexhook
                              \ XK_Ecircumflextilde XK_ecircumflextilde
                              \ XK_Ecircumflexbelowdot XK_ecircumflexbelowdot
                              \ XK_Ihook XK_ihook XK_Ibelowdot XK_ibelowdot
                              \ XK_Obelowdot XK_obelowdot XK_Ohook XK_ohook
                              \ XK_Ocircumflexacute XK_ocircumflexacute
                              \ XK_Ocircumflexgrave XK_ocircumflexgrave
                              \ XK_Ocircumflexhook XK_ocircumflexhook
                              \ XK_Ocircumflextilde XK_ocircumflextilde
                              \ XK_Ocircumflexbelowdot XK_ocircumflexbelowdot
                              \ XK_Ohornacute XK_ohornacute XK_Ohorngrave
                              \ XK_ohorngrave XK_Ohornhook XK_ohornhook
                              \ XK_Ohorntilde XK_ohorntilde XK_Ohornbelowdot
                              \ XK_ohornbelowdot XK_Ubelowdot XK_ubelowdot
                              \ XK_Uhook XK_uhook XK_Uhornacute XK_uhornacute
                              \ XK_Uhorngrave XK_uhorngrave XK_Uhornhook
                              \ XK_uhornhook XK_Uhorntilde XK_uhorntilde
                              \ XK_Uhornbelowdot XK_uhornbelowdot XK_Ybelowdot
                              \ XK_ybelowdot XK_Yhook XK_yhook XK_Ytilde
                              \ XK_ytilde XK_Ohorn XK_ohorn XK_Uhorn XK_uhorn
                              \ XK_combining_tilde XK_combining_grave
                              \ XK_combining_acute XK_combining_hook
                              \ XK_combining_belowdot XK_EcuSign XK_ColonSign
                              \ XK_CruzeiroSign XK_FFrancSign XK_LiraSign
                              \ XK_MillSign XK_NairaSign XK_PesetaSign
                              \ XK_RupeeSign XK_WonSign XK_NewSheqelSign
                              \ XK_DongSign XK_EuroSign

" #include <X11/Sunkeysym.h>
syn keyword xmodmapKeySym     SunXK_Sys_Req SunXK_Print_Screen SunXK_Compose
                              \ SunXK_AltGraph SunXK_PageUp SunXK_PageDown
                              \ SunXK_Undo SunXK_Again SunXK_Find SunXK_Stop
                              \ SunXK_Props SunXK_Front SunXK_Copy SunXK_Open
                              \ SunXK_Paste SunXK_Cut SunXK_PowerSwitch
                              \ SunXK_AudioLowerVolume SunXK_AudioMute
                              \ SunXK_AudioRaiseVolume SunXK_VideoDegauss
                              \ SunXK_VideoLowerBrightness
                              \ SunXK_VideoRaiseBrightness
                              \ SunXK_PowerSwitchShift

" #include <X11/XF86keysym.h>
syn keyword xmodmapKeySym     XF86XK_ModeLock XF86XK_Standby
                              \ XF86XK_AudioLowerVolume XF86XK_AudioMute
                              \ XF86XK_AudioRaiseVolume XF86XK_AudioPlay
                              \ XF86XK_AudioStop XF86XK_AudioPrev
                              \ XF86XK_AudioNext XF86XK_HomePage
                              \ XF86XK_Mail XF86XK_Start XF86XK_Search
                              \ XF86XK_AudioRecord XF86XK_Calculator
                              \ XF86XK_Memo XF86XK_ToDoList XF86XK_Calendar
                              \ XF86XK_PowerDown XF86XK_ContrastAdjust
                              \ XF86XK_RockerUp XF86XK_RockerDown
                              \ XF86XK_RockerEnter XF86XK_Back XF86XK_Forward
                              \ XF86XK_Stop XF86XK_Refresh XF86XK_PowerOff
                              \ XF86XK_WakeUp XF86XK_Eject XF86XK_ScreenSaver
                              \ XF86XK_WWW XF86XK_Sleep XF86XK_Favorites
                              \ XF86XK_AudioPause XF86XK_AudioMedia
                              \ XF86XK_MyComputer XF86XK_VendorHome
                              \ XF86XK_LightBulb XF86XK_Shop XF86XK_History
                              \ XF86XK_OpenURL XF86XK_AddFavorite
                              \ XF86XK_HotLinks XF86XK_BrightnessAdjust
                              \ XF86XK_Finance XF86XK_Community
                              \ XF86XK_AudioRewind XF86XK_XF86BackForward
                              \ XF86XK_Launch0 XF86XK_Launch1 XF86XK_Launch2
                              \ XF86XK_Launch3 XF86XK_Launch4 XF86XK_Launch5
                              \ XF86XK_Launch6 XF86XK_Launch7 XF86XK_Launch8
                              \ XF86XK_Launch9 XF86XK_LaunchA XF86XK_LaunchB
                              \ XF86XK_LaunchC XF86XK_LaunchD XF86XK_LaunchE
                              \ XF86XK_LaunchF XF86XK_ApplicationLeft
                              \ XF86XK_ApplicationRight XF86XK_Book
                              \ XF86XK_CD XF86XK_Calculater XF86XK_Clear
                              \ XF86XK_Close XF86XK_Copy XF86XK_Cut
                              \ XF86XK_Display XF86XK_DOS XF86XK_Documents
                              \ XF86XK_Excel XF86XK_Explorer XF86XK_Game
                              \ XF86XK_Go XF86XK_iTouch XF86XK_LogOff
                              \ XF86XK_Market XF86XK_Meeting XF86XK_MenuKB
                              \ XF86XK_MenuPB XF86XK_MySites XF86XK_New
                              \ XF86XK_News XF86XK_OfficeHome XF86XK_Open
                              \ XF86XK_Option XF86XK_Paste XF86XK_Phone
                              \ XF86XK_Q XF86XK_Reply XF86XK_Reload
                              \ XF86XK_RotateWindows XF86XK_RotationPB
                              \ XF86XK_RotationKB XF86XK_Save XF86XK_ScrollUp
                              \ XF86XK_ScrollDown XF86XK_ScrollClick
                              \ XF86XK_Send XF86XK_Spell XF86XK_SplitScreen
                              \ XF86XK_Support XF86XK_TaskPane XF86XK_Terminal
                              \ XF86XK_Tools XF86XK_Travel XF86XK_UserPB
                              \ XF86XK_User1KB XF86XK_User2KB XF86XK_Video
                              \ XF86XK_WheelButton XF86XK_Word XF86XK_Xfer
                              \ XF86XK_ZoomIn XF86XK_ZoomOut XF86XK_Away
                              \ XF86XK_Messenger XF86XK_WebCam
                              \ XF86XK_MailForward XF86XK_Pictures
                              \ XF86XK_Music XF86XK_Switch_VT_1
                              \ XF86XK_Switch_VT_2 XF86XK_Switch_VT_3
                              \ XF86XK_Switch_VT_4 XF86XK_Switch_VT_5
                              \ XF86XK_Switch_VT_6 XF86XK_Switch_VT_7
                              \ XF86XK_Switch_VT_8 XF86XK_Switch_VT_9
                              \ XF86XK_Switch_VT_10 XF86XK_Switch_VT_11
                              \ XF86XK_Switch_VT_12 XF86XK_Ungrab
                              \ XF86XK_ClearGrab XF86XK_Next_VMode
                              \ XF86XK_Prev_VMode

syn keyword xmodmapKeyword    keycode keysym clear add remove pointer

hi def link xmodmapComment    Comment
hi def link xmodmapTodo       Todo
hi def link xmodmapInt        Number
hi def link xmodmapHex        Number
hi def link xmodmapOctal      Number
hi def link xmodmapOctalError Error
hi def link xmodmapKeySym     Constant
hi def link xmodmapKeyword    Keyword

let b:current_syntax = "xmodmap"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z*&�$�d�dvim80/syntax/skill.vimnu�[���" Vim syntax file
" Language:		SKILL
" Maintainer:	Toby Schaffer <jtschaff@eos.ncsu.edu>
" Last Change:	2003 May 11
" Comments:		SKILL is a Lisp-like programming language for use in EDA
"				tools from Cadence Design Systems. It allows you to have
"				a programming environment within the Cadence environment
"				that gives you access to the complete tool set and design
"				database. This file also defines syntax highlighting for
"				certain Design Framework II interface functions.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword skillConstants			t nil unbound

" enumerate all the SKILL reserved words/functions
syn match skillFunction     "(abs\>"hs=s+1
syn match skillFunction     "\<abs("he=e-1
syn match skillFunction     "(a\=cos\>"hs=s+1
syn match skillFunction     "\<a\=cos("he=e-1
syn match skillFunction     "(add1\>"hs=s+1
syn match skillFunction     "\<add1("he=e-1
syn match skillFunction     "(addDefstructClass\>"hs=s+1
syn match skillFunction     "\<addDefstructClass("he=e-1
syn match skillFunction     "(alias\>"hs=s+1
syn match skillFunction     "\<alias("he=e-1
syn match skillFunction     "(alphalessp\>"hs=s+1
syn match skillFunction     "\<alphalessp("he=e-1
syn match skillFunction     "(alphaNumCmp\>"hs=s+1
syn match skillFunction     "\<alphaNumCmp("he=e-1
syn match skillFunction     "(append1\=\>"hs=s+1
syn match skillFunction     "\<append1\=("he=e-1
syn match skillFunction     "(apply\>"hs=s+1
syn match skillFunction     "\<apply("he=e-1
syn match skillFunction     "(arrayp\>"hs=s+1
syn match skillFunction     "\<arrayp("he=e-1
syn match skillFunction     "(arrayref\>"hs=s+1
syn match skillFunction     "\<arrayref("he=e-1
syn match skillFunction     "(a\=sin\>"hs=s+1
syn match skillFunction     "\<a\=sin("he=e-1
syn match skillFunction     "(assoc\>"hs=s+1
syn match skillFunction     "\<assoc("he=e-1
syn match skillFunction     "(ass[qv]\>"hs=s+1
syn match skillFunction     "\<ass[qv]("he=e-1
syn match skillFunction     "(a\=tan\>"hs=s+1
syn match skillFunction     "\<a\=tan("he=e-1
syn match skillFunction     "(ato[fim]\>"hs=s+1
syn match skillFunction     "\<ato[fim]("he=e-1
syn match skillFunction     "(bcdp\>"hs=s+1
syn match skillFunction     "\<bcdp("he=e-1
syn match skillKeywords     "(begin\>"hs=s+1
syn match skillKeywords     "\<begin("he=e-1
syn match skillFunction     "(booleanp\>"hs=s+1
syn match skillFunction     "\<booleanp("he=e-1
syn match skillFunction     "(boundp\>"hs=s+1
syn match skillFunction     "\<boundp("he=e-1
syn match skillFunction     "(buildString\>"hs=s+1
syn match skillFunction     "\<buildString("he=e-1
syn match skillFunction     "(c[ad]{1,3}r\>"hs=s+1
syn match skillFunction     "\<c[ad]{1,3}r("he=e-1
syn match skillConditional  "(caseq\=\>"hs=s+1
syn match skillConditional  "\<caseq\=("he=e-1
syn match skillFunction     "(ceiling\>"hs=s+1
syn match skillFunction     "\<ceiling("he=e-1
syn match skillFunction     "(changeWorkingDir\>"hs=s+1
syn match skillFunction     "\<changeWorkingDir("he=e-1
syn match skillFunction     "(charToInt\>"hs=s+1
syn match skillFunction     "\<charToInt("he=e-1
syn match skillFunction     "(clearExitProcs\>"hs=s+1
syn match skillFunction     "\<clearExitProcs("he=e-1
syn match skillFunction     "(close\>"hs=s+1
syn match skillFunction     "\<close("he=e-1
syn match skillFunction     "(compareTime\>"hs=s+1
syn match skillFunction     "\<compareTime("he=e-1
syn match skillFunction     "(compress\>"hs=s+1
syn match skillFunction     "\<compress("he=e-1
syn match skillFunction     "(concat\>"hs=s+1
syn match skillFunction     "\<concat("he=e-1
syn match skillConditional  "(cond\>"hs=s+1
syn match skillConditional  "\<cond("he=e-1
syn match skillFunction     "(cons\>"hs=s+1
syn match skillFunction     "\<cons("he=e-1
syn match skillFunction     "(copy\>"hs=s+1
syn match skillFunction     "\<copy("he=e-1
syn match skillFunction     "(copyDefstructDeep\>"hs=s+1
syn match skillFunction     "\<copyDefstructDeep("he=e-1
syn match skillFunction     "(createDir\>"hs=s+1
syn match skillFunction     "\<createDir("he=e-1
syn match skillFunction     "(csh\>"hs=s+1
syn match skillFunction     "\<csh("he=e-1
syn match skillKeywords     "(declare\>"hs=s+1
syn match skillKeywords     "\<declare("he=e-1
syn match skillKeywords     "(declare\(N\|SQN\)\=Lambda\>"hs=s+1
syn match skillKeywords     "\<declare\(N\|SQN\)\=Lambda("he=e-1
syn match skillKeywords     "(defmacro\>"hs=s+1
syn match skillKeywords     "\<defmacro("he=e-1
syn match skillKeywords     "(defprop\>"hs=s+1
syn match skillKeywords     "\<defprop("he=e-1
syn match skillKeywords     "(defstruct\>"hs=s+1
syn match skillKeywords     "\<defstruct("he=e-1
syn match skillFunction     "(defstructp\>"hs=s+1
syn match skillFunction     "\<defstructp("he=e-1
syn match skillKeywords     "(defun\>"hs=s+1
syn match skillKeywords     "\<defun("he=e-1
syn match skillKeywords     "(defUserInitProc\>"hs=s+1
syn match skillKeywords     "\<defUserInitProc("he=e-1
syn match skillKeywords     "(defvar\>"hs=s+1
syn match skillKeywords     "\<defvar("he=e-1
syn match skillFunction     "(delete\(Dir\|File\)\>"hs=s+1
syn match skillKeywords     "\<delete\(Dir\|File\)("he=e-1
syn match skillFunction     "(display\>"hs=s+1
syn match skillFunction     "\<display("he=e-1
syn match skillFunction     "(drain\>"hs=s+1
syn match skillFunction     "\<drain("he=e-1
syn match skillFunction     "(dtpr\>"hs=s+1
syn match skillFunction     "\<dtpr("he=e-1
syn match skillFunction     "(ed\(i\|l\|it\)\=\>"hs=s+1
syn match skillFunction     "\<ed\(i\|l\|it\)\=("he=e-1
syn match skillFunction     "(envobj\>"hs=s+1
syn match skillFunction     "\<envobj("he=e-1
syn match skillFunction     "(equal\>"hs=s+1
syn match skillFunction     "\<equal("he=e-1
syn match skillFunction     "(eqv\=\>"hs=s+1
syn match skillFunction     "\<eqv\=("he=e-1
syn match skillFunction     "(err\>"hs=s+1
syn match skillFunction     "\<err("he=e-1
syn match skillFunction     "(error\>"hs=s+1
syn match skillFunction     "\<error("he=e-1
syn match skillFunction     "(errset\>"hs=s+1
syn match skillFunction     "\<errset("he=e-1
syn match skillFunction     "(errsetstring\>"hs=s+1
syn match skillFunction     "\<errsetstring("he=e-1
syn match skillFunction     "(eval\>"hs=s+1
syn match skillFunction     "\<eval("he=e-1
syn match skillFunction     "(evalstring\>"hs=s+1
syn match skillFunction     "\<evalstring("he=e-1
syn match skillFunction     "(evenp\>"hs=s+1
syn match skillFunction     "\<evenp("he=e-1
syn match skillFunction     "(exists\>"hs=s+1
syn match skillFunction     "\<exists("he=e-1
syn match skillFunction     "(exit\>"hs=s+1
syn match skillFunction     "\<exit("he=e-1
syn match skillFunction     "(exp\>"hs=s+1
syn match skillFunction     "\<exp("he=e-1
syn match skillFunction     "(expandMacro\>"hs=s+1
syn match skillFunction     "\<expandMacro("he=e-1
syn match skillFunction     "(file\(Length\|Seek\|Tell\|TimeModified\)\>"hs=s+1
syn match skillFunction     "\<file\(Length\|Seek\|Tell\|TimeModified\)("he=e-1
syn match skillFunction     "(fixp\=\>"hs=s+1
syn match skillFunction     "\<fixp\=("he=e-1
syn match skillFunction     "(floatp\=\>"hs=s+1
syn match skillFunction     "\<floatp\=("he=e-1
syn match skillFunction     "(floor\>"hs=s+1
syn match skillFunction     "\<floor("he=e-1
syn match skillRepeat       "(for\(all\|each\)\=\>"hs=s+1
syn match skillRepeat       "\<for\(all\|each\)\=("he=e-1
syn match skillFunction     "([fs]\=printf\>"hs=s+1
syn match skillFunction     "\<[fs]\=printf("he=e-1
syn match skillFunction     "(f\=scanf\>"hs=s+1
syn match skillFunction     "\<f\=scanf("he=e-1
syn match skillFunction     "(funobj\>"hs=s+1
syn match skillFunction     "\<funobj("he=e-1
syn match skillFunction     "(gc\>"hs=s+1
syn match skillFunction     "\<gc("he=e-1
syn match skillFunction     "(gensym\>"hs=s+1
syn match skillFunction     "\<gensym("he=e-1
syn match skillFunction     "(get\(_pname\|_string\)\=\>"hs=s+1
syn match skillFunction     "\<get\(_pname\|_string\)\=("he=e-1
syn match skillFunction     "(getc\(har\)\=\>"hs=s+1
syn match skillFunction     "\<getc\(har\)\=("he=e-1
syn match skillFunction     "(getCurrentTime\>"hs=s+1
syn match skillFunction     "\<getCurrentTime("he=e-1
syn match skillFunction     "(getd\>"hs=s+1
syn match skillFunction     "\<getd("he=e-1
syn match skillFunction     "(getDirFiles\>"hs=s+1
syn match skillFunction     "\<getDirFiles("he=e-1
syn match skillFunction     "(getFnWriteProtect\>"hs=s+1
syn match skillFunction     "\<getFnWriteProtect("he=e-1
syn match skillFunction     "(getRunType\>"hs=s+1
syn match skillFunction     "\<getRunType("he=e-1
syn match skillFunction     "(getInstallPath\>"hs=s+1
syn match skillFunction     "\<getInstallPath("he=e-1
syn match skillFunction     "(getqq\=\>"hs=s+1
syn match skillFunction     "\<getqq\=("he=e-1
syn match skillFunction     "(gets\>"hs=s+1
syn match skillFunction     "\<gets("he=e-1
syn match skillFunction     "(getShellEnvVar\>"hs=s+1
syn match skillFunction     "\<getShellEnvVar("he=e-1
syn match skillFunction     "(getSkill\(Path\|Version\)\>"hs=s+1
syn match skillFunction     "\<getSkill\(Path\|Version\)("he=e-1
syn match skillFunction     "(getVarWriteProtect\>"hs=s+1
syn match skillFunction     "\<getVarWriteProtect("he=e-1
syn match skillFunction     "(getVersion\>"hs=s+1
syn match skillFunction     "\<getVersion("he=e-1
syn match skillFunction     "(getWarn\>"hs=s+1
syn match skillFunction     "\<getWarn("he=e-1
syn match skillFunction     "(getWorkingDir\>"hs=s+1
syn match skillFunction     "\<getWorkingDir("he=e-1
syn match skillRepeat       "(go\>"hs=s+1
syn match skillRepeat       "\<go("he=e-1
syn match skillConditional  "(if\>"hs=s+1
syn match skillConditional  "\<if("he=e-1
syn keyword skillConditional then else
syn match skillFunction     "(index\>"hs=s+1
syn match skillFunction     "\<index("he=e-1
syn match skillFunction     "(infile\>"hs=s+1
syn match skillFunction     "\<infile("he=e-1
syn match skillFunction     "(inportp\>"hs=s+1
syn match skillFunction     "\<inportp("he=e-1
syn match skillFunction     "(in\(Scheme\|Skill\)\>"hs=s+1
syn match skillFunction     "\<in\(Scheme\|Skill\)("he=e-1
syn match skillFunction     "(instring\>"hs=s+1
syn match skillFunction     "\<instring("he=e-1
syn match skillFunction     "(integerp\>"hs=s+1
syn match skillFunction     "\<integerp("he=e-1
syn match skillFunction     "(intToChar\>"hs=s+1
syn match skillFunction     "\<intToChar("he=e-1
syn match skillFunction     "(is\(Callable\|Dir\|Executable\|File\|FileEncrypted\|FileName\|Link\|Macro\|Writable\)\>"hs=s+1
syn match skillFunction     "\<is\(Callable\|Dir\|Executable\|File\|FileEncrypted\|FileName\|Link\|Macro\|Writable\)("he=e-1
syn match skillKeywords     "(n\=lambda\>"hs=s+1
syn match skillKeywords     "\<n\=lambda("he=e-1
syn match skillKeywords     "(last\>"hs=s+1
syn match skillKeywords     "\<last("he=e-1
syn match skillFunction     "(lconc\>"hs=s+1
syn match skillFunction     "\<lconc("he=e-1
syn match skillFunction     "(length\>"hs=s+1
syn match skillFunction     "\<length("he=e-1
syn match skillKeywords     "(let\>"hs=s+1
syn match skillKeywords     "\<let("he=e-1
syn match skillFunction     "(lineread\(string\)\=\>"hs=s+1
syn match skillFunction     "\<lineread\(string\)\=("he=e-1
syn match skillKeywords     "(list\>"hs=s+1
syn match skillKeywords     "\<list("he=e-1
syn match skillFunction     "(listp\>"hs=s+1
syn match skillFunction     "\<listp("he=e-1
syn match skillFunction     "(listToVector\>"hs=s+1
syn match skillFunction     "\<listToVector("he=e-1
syn match skillFunction     "(loadi\=\>"hs=s+1
syn match skillFunction     "\<loadi\=("he=e-1
syn match skillFunction     "(loadstring\>"hs=s+1
syn match skillFunction     "\<loadstring("he=e-1
syn match skillFunction     "(log\>"hs=s+1
syn match skillFunction     "\<log("he=e-1
syn match skillFunction     "(lowerCase\>"hs=s+1
syn match skillFunction     "\<lowerCase("he=e-1
syn match skillFunction     "(makeTable\>"hs=s+1
syn match skillFunction     "\<makeTable("he=e-1
syn match skillFunction     "(makeTempFileName\>"hs=s+1
syn match skillFunction     "\<makeTempFileName("he=e-1
syn match skillFunction     "(makeVector\>"hs=s+1
syn match skillFunction     "\<makeVector("he=e-1
syn match skillFunction     "(map\(c\|can\|car\|list\)\>"hs=s+1
syn match skillFunction     "\<map\(c\|can\|car\|list\)("he=e-1
syn match skillFunction     "(max\>"hs=s+1
syn match skillFunction     "\<max("he=e-1
syn match skillFunction     "(measureTime\>"hs=s+1
syn match skillFunction     "\<measureTime("he=e-1
syn match skillFunction     "(member\>"hs=s+1
syn match skillFunction     "\<member("he=e-1
syn match skillFunction     "(mem[qv]\>"hs=s+1
syn match skillFunction     "\<mem[qv]("he=e-1
syn match skillFunction     "(min\>"hs=s+1
syn match skillFunction     "\<min("he=e-1
syn match skillFunction     "(minusp\>"hs=s+1
syn match skillFunction     "\<minusp("he=e-1
syn match skillFunction     "(mod\(ulo\)\=\>"hs=s+1
syn match skillFunction     "\<mod\(ulo\)\=("he=e-1
syn match skillKeywords     "([mn]\=procedure\>"hs=s+1
syn match skillKeywords     "\<[mn]\=procedure("he=e-1
syn match skillFunction     "(ncon[cs]\>"hs=s+1
syn match skillFunction     "\<ncon[cs]("he=e-1
syn match skillFunction     "(needNCells\>"hs=s+1
syn match skillFunction     "\<needNCells("he=e-1
syn match skillFunction     "(negativep\>"hs=s+1
syn match skillFunction     "\<negativep("he=e-1
syn match skillFunction     "(neq\(ual\)\=\>"hs=s+1
syn match skillFunction     "\<neq\(ual\)\=("he=e-1
syn match skillFunction     "(newline\>"hs=s+1
syn match skillFunction     "\<newline("he=e-1
syn match skillFunction     "(nindex\>"hs=s+1
syn match skillFunction     "\<nindex("he=e-1
syn match skillFunction     "(not\>"hs=s+1
syn match skillFunction     "\<not("he=e-1
syn match skillFunction     "(nth\(cdr\|elem\)\=\>"hs=s+1
syn match skillFunction     "\<nth\(cdr\|elem\)\=("he=e-1
syn match skillFunction     "(null\>"hs=s+1
syn match skillFunction     "\<null("he=e-1
syn match skillFunction     "(numberp\>"hs=s+1
syn match skillFunction     "\<numberp("he=e-1
syn match skillFunction     "(numOpenFiles\>"hs=s+1
syn match skillFunction     "\<numOpenFiles("he=e-1
syn match skillFunction     "(oddp\>"hs=s+1
syn match skillFunction     "\<oddp("he=e-1
syn match skillFunction     "(onep\>"hs=s+1
syn match skillFunction     "\<onep("he=e-1
syn match skillFunction     "(otherp\>"hs=s+1
syn match skillFunction     "\<otherp("he=e-1
syn match skillFunction     "(outfile\>"hs=s+1
syn match skillFunction     "\<outfile("he=e-1
syn match skillFunction     "(outportp\>"hs=s+1
syn match skillFunction     "\<outportp("he=e-1
syn match skillFunction     "(pairp\>"hs=s+1
syn match skillFunction     "\<pairp("he=e-1
syn match skillFunction     "(parseString\>"hs=s+1
syn match skillFunction     "\<parseString("he=e-1
syn match skillFunction     "(plist\>"hs=s+1
syn match skillFunction     "\<plist("he=e-1
syn match skillFunction     "(plusp\>"hs=s+1
syn match skillFunction     "\<plusp("he=e-1
syn match skillFunction     "(portp\>"hs=s+1
syn match skillFunction     "\<portp("he=e-1
syn match skillFunction     "(p\=print\>"hs=s+1
syn match skillFunction     "\<p\=print("he=e-1
syn match skillFunction     "(prependInstallPath\>"hs=s+1
syn match skillFunction     "\<prependInstallPath("he=e-1
syn match skillFunction     "(printl\(ev\|n\)\>"hs=s+1
syn match skillFunction     "\<printl\(ev\|n\)("he=e-1
syn match skillFunction     "(procedurep\>"hs=s+1
syn match skillFunction     "\<procedurep("he=e-1
syn match skillKeywords     "(prog[12n]\=\>"hs=s+1
syn match skillKeywords     "\<prog[12n]\=("he=e-1
syn match skillFunction     "(putd\>"hs=s+1
syn match skillFunction     "\<putd("he=e-1
syn match skillFunction     "(putpropq\{,2}\>"hs=s+1
syn match skillFunction     "\<putpropq\{,2}("he=e-1
syn match skillFunction     "(random\>"hs=s+1
syn match skillFunction     "\<random("he=e-1
syn match skillFunction     "(read\>"hs=s+1
syn match skillFunction     "\<read("he=e-1
syn match skillFunction     "(readString\>"hs=s+1
syn match skillFunction     "\<readString("he=e-1
syn match skillFunction     "(readTable\>"hs=s+1
syn match skillFunction     "\<readTable("he=e-1
syn match skillFunction     "(realp\>"hs=s+1
syn match skillFunction     "\<realp("he=e-1
syn match skillFunction     "(regExit\(After\|Before\)\>"hs=s+1
syn match skillFunction     "\<regExit\(After\|Before\)("he=e-1
syn match skillFunction     "(remainder\>"hs=s+1
syn match skillFunction     "\<remainder("he=e-1
syn match skillFunction     "(remdq\=\>"hs=s+1
syn match skillFunction     "\<remdq\=("he=e-1
syn match skillFunction     "(remExitProc\>"hs=s+1
syn match skillFunction     "\<remExitProc("he=e-1
syn match skillFunction     "(remove\>"hs=s+1
syn match skillFunction     "\<remove("he=e-1
syn match skillFunction     "(remprop\>"hs=s+1
syn match skillFunction     "\<remprop("he=e-1
syn match skillFunction     "(remq\>"hs=s+1
syn match skillFunction     "\<remq("he=e-1
syn match skillKeywords     "(return\>"hs=s+1
syn match skillKeywords     "\<return("he=e-1
syn match skillFunction     "(reverse\>"hs=s+1
syn match skillFunction     "\<reverse("he=e-1
syn match skillFunction     "(rexCompile\>"hs=s+1
syn match skillFunction     "\<rexCompile("he=e-1
syn match skillFunction     "(rexExecute\>"hs=s+1
syn match skillFunction     "\<rexExecute("he=e-1
syn match skillFunction     "(rexMagic\>"hs=s+1
syn match skillFunction     "\<rexMagic("he=e-1
syn match skillFunction     "(rexMatchAssocList\>"hs=s+1
syn match skillFunction     "\<rexMatchAssocList("he=e-1
syn match skillFunction     "(rexMatchList\>"hs=s+1
syn match skillFunction     "\<rexMatchList("he=e-1
syn match skillFunction     "(rexMatchp\>"hs=s+1
syn match skillFunction     "\<rexMatchp("he=e-1
syn match skillFunction     "(rexReplace\>"hs=s+1
syn match skillFunction     "\<rexReplace("he=e-1
syn match skillFunction     "(rexSubstitute\>"hs=s+1
syn match skillFunction     "\<rexSubstitute("he=e-1
syn match skillFunction     "(rindex\>"hs=s+1
syn match skillFunction     "\<rindex("he=e-1
syn match skillFunction     "(round\>"hs=s+1
syn match skillFunction     "\<round("he=e-1
syn match skillFunction     "(rplac[ad]\>"hs=s+1
syn match skillFunction     "\<rplac[ad]("he=e-1
syn match skillFunction     "(schemeTopLevelEnv\>"hs=s+1
syn match skillFunction     "\<schemeTopLevelEnv("he=e-1
syn match skillFunction     "(set\>"hs=s+1
syn match skillFunction     "\<set("he=e-1
syn match skillFunction     "(setarray\>"hs=s+1
syn match skillFunction     "\<setarray("he=e-1
syn match skillFunction     "(setc[ad]r\>"hs=s+1
syn match skillFunction     "\<setc[ad]r("he=e-1
syn match skillFunction     "(setFnWriteProtect\>"hs=s+1
syn match skillFunction     "\<setFnWriteProtect("he=e-1
syn match skillFunction     "(setof\>"hs=s+1
syn match skillFunction     "\<setof("he=e-1
syn match skillFunction     "(setplist\>"hs=s+1
syn match skillFunction     "\<setplist("he=e-1
syn match skillFunction     "(setq\>"hs=s+1
syn match skillFunction     "\<setq("he=e-1
syn match skillFunction     "(setShellEnvVar\>"hs=s+1
syn match skillFunction     "\<setShellEnvVar("he=e-1
syn match skillFunction     "(setSkillPath\>"hs=s+1
syn match skillFunction     "\<setSkillPath("he=e-1
syn match skillFunction     "(setVarWriteProtect\>"hs=s+1
syn match skillFunction     "\<setVarWriteProtect("he=e-1
syn match skillFunction     "(sh\(ell\)\=\>"hs=s+1
syn match skillFunction     "\<sh\(ell\)\=("he=e-1
syn match skillFunction     "(simplifyFilename\>"hs=s+1
syn match skillFunction     "\<simplifyFilename("he=e-1
syn match skillFunction     "(sort\(car\)\=\>"hs=s+1
syn match skillFunction     "\<sort\(car\)\=("he=e-1
syn match skillFunction     "(sqrt\>"hs=s+1
syn match skillFunction     "\<sqrt("he=e-1
syn match skillFunction     "(srandom\>"hs=s+1
syn match skillFunction     "\<srandom("he=e-1
syn match skillFunction     "(sstatus\>"hs=s+1
syn match skillFunction     "\<sstatus("he=e-1
syn match skillFunction     "(strn\=cat\>"hs=s+1
syn match skillFunction     "\<strn\=cat("he=e-1
syn match skillFunction     "(strn\=cmp\>"hs=s+1
syn match skillFunction     "\<strn\=cmp("he=e-1
syn match skillFunction     "(stringp\>"hs=s+1
syn match skillFunction     "\<stringp("he=e-1
syn match skillFunction     "(stringTo\(Function\|Symbol\|Time\)\>"hs=s+1
syn match skillFunction     "\<stringTo\(Function\|Symbol\|Time\)("he=e-1
syn match skillFunction     "(strlen\>"hs=s+1
syn match skillFunction     "\<strlen("he=e-1
syn match skillFunction     "(sub1\>"hs=s+1
syn match skillFunction     "\<sub1("he=e-1
syn match skillFunction     "(subst\>"hs=s+1
syn match skillFunction     "\<subst("he=e-1
syn match skillFunction     "(substring\>"hs=s+1
syn match skillFunction     "\<substring("he=e-1
syn match skillFunction     "(sxtd\>"hs=s+1
syn match skillFunction     "\<sxtd("he=e-1
syn match skillFunction     "(symbolp\>"hs=s+1
syn match skillFunction     "\<symbolp("he=e-1
syn match skillFunction     "(symbolToString\>"hs=s+1
syn match skillFunction     "\<symbolToString("he=e-1
syn match skillFunction     "(symeval\>"hs=s+1
syn match skillFunction     "\<symeval("he=e-1
syn match skillFunction     "(symstrp\>"hs=s+1
syn match skillFunction     "\<symstrp("he=e-1
syn match skillFunction     "(system\>"hs=s+1
syn match skillFunction     "\<system("he=e-1
syn match skillFunction     "(tablep\>"hs=s+1
syn match skillFunction     "\<tablep("he=e-1
syn match skillFunction     "(tableToList\>"hs=s+1
syn match skillFunction     "\<tableToList("he=e-1
syn match skillFunction     "(tailp\>"hs=s+1
syn match skillFunction     "\<tailp("he=e-1
syn match skillFunction     "(tconc\>"hs=s+1
syn match skillFunction     "\<tconc("he=e-1
syn match skillFunction     "(timeToString\>"hs=s+1
syn match skillFunction     "\<timeToString("he=e-1
syn match skillFunction     "(timeToTm\>"hs=s+1
syn match skillFunction     "\<timeToTm("he=e-1
syn match skillFunction     "(tmToTime\>"hs=s+1
syn match skillFunction     "\<tmToTime("he=e-1
syn match skillFunction     "(truncate\>"hs=s+1
syn match skillFunction     "\<truncate("he=e-1
syn match skillFunction     "(typep\=\>"hs=s+1
syn match skillFunction     "\<typep\=("he=e-1
syn match skillFunction     "(unalias\>"hs=s+1
syn match skillFunction     "\<unalias("he=e-1
syn match skillConditional  "(unless\>"hs=s+1
syn match skillConditional  "\<unless("he=e-1
syn match skillFunction     "(upperCase\>"hs=s+1
syn match skillFunction     "\<upperCase("he=e-1
syn match skillFunction     "(vector\(ToList\)\=\>"hs=s+1
syn match skillFunction     "\<vector\(ToList\)\=("he=e-1
syn match skillFunction     "(warn\>"hs=s+1
syn match skillFunction     "\<warn("he=e-1
syn match skillConditional  "(when\>"hs=s+1
syn match skillConditional  "\<when("he=e-1
syn match skillRepeat       "(while\>"hs=s+1
syn match skillRepeat       "\<while("he=e-1
syn match skillFunction     "(write\>"hs=s+1
syn match skillFunction     "\<write("he=e-1
syn match skillFunction     "(writeTable\>"hs=s+1
syn match skillFunction     "\<writeTable("he=e-1
syn match skillFunction     "(xcons\>"hs=s+1
syn match skillFunction     "\<xcons("he=e-1
syn match skillFunction     "(zerop\>"hs=s+1
syn match skillFunction     "\<zerop("he=e-1
syn match skillFunction     "(zxtd\>"hs=s+1
syn match skillFunction     "\<zxtd("he=e-1

" DFII procedural interface routines

" CDF functions
syn match skillcdfFunctions			"(cdf\u\a\+\>"hs=s+1
syn match skillcdfFunctions			"\<cdf\u\a\+("he=e-1
" graphic editor functions
syn match skillgeFunctions			"(ge\u\a\+\>"hs=s+1
syn match skillgeFunctions			"\<ge\u\a\+("he=e-1
" human interface functions
syn match skillhiFunctions			"(hi\u\a\+\>"hs=s+1
syn match skillhiFunctions			"\<hi\u\a\+("he=e-1
" layout editor functions
syn match skillleFunctions			"(le\u\a\+\>"hs=s+1
syn match skillleFunctions			"\<le\u\a\+("he=e-1
" database|design editor|design flow functions
syn match skilldbefFunctions		"(d[bef]\u\a\+\>"hs=s+1
syn match skilldbefFunctions		"\<d[bef]\u\a\+("he=e-1
" design management & design data services functions
syn match skillddFunctions			"(dd[s]\=\u\a\+\>"hs=s+1
syn match skillddFunctions			"\<dd[s]\=\u\a\+("he=e-1
" parameterized cell functions
syn match skillpcFunctions			"(pc\u\a\+\>"hs=s+1
syn match skillpcFunctions			"\<pc\u\a\+("he=e-1
" tech file functions
syn match skilltechFunctions		"(\(tech\|tc\)\u\a\+\>"hs=s+1
syn match skilltechFunctions		"\<\(tech\|tc\)\u\a\+("he=e-1

" strings
syn region skillString				start=+"+ skip=+\\"+ end=+"+

syn keyword skillTodo contained		TODO FIXME XXX
syn keyword skillNote contained		NOTE IMPORTANT

" comments are either C-style or begin with a semicolon
syn region skillComment				start="/\*" end="\*/" contains=skillTodo,skillNote
syn match skillComment				";.*" contains=skillTodo,skillNote
syn match skillCommentError			"\*/"

syn sync ccomment skillComment minlines=10

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link skillcdfFunctions	Function
hi def link skillgeFunctions		Function
hi def link skillhiFunctions		Function
hi def link skillleFunctions		Function
hi def link skilldbefFunctions	Function
hi def link skillddFunctions		Function
hi def link skillpcFunctions		Function
hi def link skilltechFunctions	Function
hi def link skillConstants		Constant
hi def link skillFunction		Function
hi def link skillKeywords		Statement
hi def link skillConditional		Conditional
hi def link skillRepeat			Repeat
hi def link skillString			String
hi def link skillTodo			Todo
hi def link skillNote			Todo
hi def link skillComment			Comment
hi def link skillCommentError	Error


let b:current_syntax = "skill"

" vim: ts=4
PK�j�Z5�H
||vim80/syntax/progress.vimnu�[���" Vim syntax file
" Language:		Progress 4GL
" Filename extensions:	*.p (collides with Pascal),
"			*.i (collides with assembler)
"			*.w (collides with cweb)
" Maintainer:		Philip Uren		<philuSPAXY@ieee.org> Remove SPAXY spam block
" Contributors:         Matthew Stickney	<mtstickneySPAXY@gmail.com>
" 			Chris Ruprecht		<chrisSPAXY@ruprecht.org>
"			Mikhail Kuperblum	<mikhailSPAXY@whasup.com>
"			John Florian		<jflorianSPAXY@voyager.net>
" Version:              13
" Last Change:		Nov 11 2012

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword=@,48-57,_,-,!,#,$,%

" The Progress editor doesn't cope with tabs very well.
set expandtab

syn case ignore

" Progress Blocks of code and mismatched "end." errors.
syn match   ProgressEndError		"\<end\>"
syn region ProgressDoBlock transparent matchgroup=ProgressDo start="\<do\>" matchgroup=ProgressDo end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
syn region ProgressForBlock transparent matchgroup=ProgressFor start="\<for\>" matchgroup=ProgressFor end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
syn region ProgressRepeatBlock transparent matchgroup=ProgressRepeat start="\<repeat\>" matchgroup=ProgressRepeat end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
syn region ProgressCaseBlock transparent matchgroup=ProgressCase start="\<case\>" matchgroup=ProgressCase end="\<end\scase\>\|\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction

" These are Progress reserved words,
" and they could go in ProgressReserved,
" but I found it more helpful to highlight them in a different color.
syn keyword ProgressConditional	if else then when otherwise
syn keyword ProgressFor				each where

" Make those TODO and debugging notes stand out!
syn keyword ProgressTodo			contained	TODO BUG FIX
syn keyword ProgressDebug			contained	DEBUG
syn keyword ProgressDebug			debugger

" If you like to highlight the whole line of
" the start and end of procedures
" to make the whole block of code stand out:
syn match ProgressProcedure		"^\s*procedure.*"
syn match ProgressProcedure		"^\s*end\s\s*procedure.*"
syn match ProgressFunction		"^\s*function.*"
syn match ProgressFunction		"^\s*end\s\s*function.*"
" ... otherwise use this:
" syn keyword ProgressFunction	procedure function

syn keyword ProgressReserved	accum[ulate] active-form active-window add alias all alter ambig[uous] analyz[e] and any apply as asc[ending]
syn keyword ProgressReserved	assign asynchronous at attr[-space] audit-control audit-policy authorization auto-ret[urn] avail[able] back[ground]
syn keyword ProgressReserved	before-h[ide] begins bell between big-endian blank break buffer-comp[are] buffer-copy by by-pointer by-variant-point[er] call
syn keyword ProgressReserved	can-do can-find case case-sen[sitive] cast center[ed] check chr clear clipboard codebase-locator colon color column-lab[el]
syn keyword ProgressReserved	col[umns] com-self compiler connected control copy-lob count-of cpstream create current current-changed current-lang[uage]
syn keyword ProgressReserved	current-window current_date curs[or] database dataservers dataset dataset-handle db-remote-host dbcodepage dbcollation dbname
syn keyword ProgressReserved	dbparam dbrest[rictions] dbtaskid dbtype dbvers[ion] dde deblank debug-list debugger decimals declare default
syn keyword ProgressReserved	default-noxl[ate] default-window def[ine] delete delimiter desc[ending] dict[ionary] disable discon[nect] disp[lay] distinct do dos
syn keyword ProgressReserved	down drop dynamic-cast dynamic-func[tion] dynamic-new each editing else enable encode end entry error-stat[us] escape
syn keyword ProgressReserved	etime event-procedure except exclusive[-lock] exclusive-web[-user] exists export false fetch field[s] file-info[rmation]
syn keyword ProgressReserved	fill find find-case-sensitive find-global find-next-occurrence find-prev-occurrence find-select find-wrap-around first
syn keyword ProgressReserved	first-of focus font for form[at] fram[e] frame-col frame-db frame-down frame-field frame-file frame-inde[x] frame-line
syn keyword ProgressReserved	frame-name frame-row frame-val[ue] from from-c[hars] from-p[ixels] function-call-type gateway[s] get-attr-call-type get-byte
syn keyword ProgressReserved	get-codepage[s] get-coll[ations] get-column get-error-column get-error-row get-file-name get-file-offse[t] get-key-val[ue]
syn keyword ProgressReserved	get-message-type get-row getbyte global go-on go-pend[ing] grant graphic-e[dge] group having header help hide host-byte-order if
syn keyword ProgressReserved	import in index indicator input input-o[utput] insert into is is-attr[-space] join kblabel key-code key-func[tion] key-label
syn keyword ProgressReserved	keycode keyfunc[tion] keylabel keys keyword label last last-even[t] last-key last-of lastkey ldbname leave library like
syn keyword ProgressReserved	like-sequential line-count[er] listi[ng] little-endian locked log-manager lookup machine-class map member message message-lines mouse
syn keyword ProgressReserved	mpe new next next-prompt no no-attr[-space] no-error no-f[ill] no-help no-hide no-label[s] no-lobs no-lock no-map
syn keyword ProgressReserved	no-mes[sage] no-pause no-prefe[tch] no-return-val[ue] no-undo no-val[idate] no-wait not now null num-ali[ases] num-dbs num-entries
syn keyword ProgressReserved	of off old on open opsys option or os-append os-command os-copy os-create-dir os-delete os-dir os-drive[s] os-error
syn keyword ProgressReserved	os-rename otherwise output overlay page page-bot[tom] page-num[ber] page-top param[eter] password-field pause pdbname
syn keyword ProgressReserved	persist[ent] pixels preproc[ess] privileges proc-ha[ndle] proc-st[atus] procedure-call-type process profiler program-name progress
syn keyword ProgressReserved	prompt[-for] promsgs propath provers[ion] publish put put-byte put-key-val[ue] putbyte query query-tuning quit r-index
syn keyword ProgressReserved	rcode-info[rmation] read-available read-exact-num readkey recid record-len[gth] rect[angle] release repeat reposition retain retry return
syn keyword ProgressReserved	return-val[ue] revert revoke row-created row-deleted row-modified row-unmodified run save sax-comple[te] sax-parser-error
syn keyword ProgressReserved	sax-running sax-uninitialized sax-write-begin sax-write-complete sax-write-content sax-write-element sax-write-error
syn keyword ProgressReserved	sax-write-idle sax-write-tag schema screen screen-io screen-lines scroll sdbname search search-self search-target security-policy
syn keyword ProgressReserved	seek select self session set set-attr-call-type setuser[id] share[-lock] shared show-stat[s] skip some source-procedure
syn keyword ProgressReserved	space status stream stream-handle stream-io string-xref subscribe super system-dialog table table-handle target-procedure
syn keyword ProgressReserved	term[inal] text text-cursor text-seg[-grow] then this-object this-procedure time title to today top-only trans[action] trigger
syn keyword ProgressReserved	triggers trim true underl[ine] undo unform[atted] union unique unix unless-hidden unsubscribe up update use-index use-revvideo
syn keyword ProgressReserved	use-underline user[id] using value values view view-as wait-for web-con[text] when where while window window-delayed-min[imize]
syn keyword ProgressReserved	window-maxim[ized] window-minim[ized] window-normal with work-tab[le] workfile write xcode xcode-session-key xref xref-xml yes

" Strings. Handles embedded quotes.
" Note that, for some reason, Progress doesn't use the backslash, "\"
" 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 match  ProgressIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>()"

" syn match  ProgressDelimiter		"()"

syn match  ProgressMatrixDelimiter	"[][]"
" If you prefer you can highlight the range:
"syn match  ProgressMatrixDelimiter	"[\d\+\.\.\d\+]"

syn match  ProgressNumber		"\<\-\=\d\+\(u\=l\=\|lu\|f\)\>"
syn match  ProgressByte			"\$[0-9a-fA-F]\+"

" More values: Logicals, and Progress's unknown value, ?.
syn match   ProgressNumber				"?"
syn keyword ProgressNumber		true false yes no

" If you don't like tabs:
syn match ProgressShowTab "\t"

" If you don't like white space on the end of lines, uncomment this:
" syn match   ProgressSpaceError "\s\+$"

syn region ProgressComment		start="/\*"  end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug,@Spell
syn region ProgressInclude		start="^[ 	]*[{]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,ProgressComment
syn region ProgressPreProc		start="&" end="\>" contained

" This next line works reasonably well.
" syn match ProgressOperator        "[!;|)(:.><+*=-]"
"
" Progress allows a '-' to be part of an identifier.  To be considered
" the subtraction/negation operation operator it needs a non-word
" character on either side.  Also valid are cases where the minus
" operation appears at the beginning or end of a line.
" This next line trips up on "no-undo" etc.
" syn match ProgressOperator    "[!;|)(:.><+*=]\|\W-\W\|^-\W\|\W-$"
syn match ProgressOperator      "[!;|)(:.><+*=]\|\s-\s\|^-\s\|\s-$"

syn keyword ProgressOperator	<= <> >=
syn keyword ProgressOperator	abs[olute] accelerator accept-changes accept-row-changes across active actor add-buffer add-calc-col[umn]
syn keyword ProgressOperator	add-columns-from add-events-proc[edure] add-fields-from add-first add-header-entry add-index-field add-interval add-last
syn keyword ProgressOperator	add-like-col[umn] add-like-field add-like-index add-new-field add-new-index add-rel[ation] add-schema-location add-source-buffer
syn keyword ProgressOperator	add-super-proc[edure] adm-data advise after-buffer after-rowid after-table alert-box allow-column-searching allow-replication alternate-key
syn keyword ProgressOperator	always-on-top ansi-only anywhere append append-child appl-alert[-boxes] appl-context-id application apply-callback appserver-info
syn keyword ProgressOperator	appserver-password appserver-userid array-m[essage] ask-overwrite assembly async-request-count async-request-handle attach-data-source
syn keyword ProgressOperator	attached-pairlist attach attribute-names audit-enabled audit-event-context authentication-failed auto-comp[letion] auto-delete
syn keyword ProgressOperator	auto-delete-xml auto-end-key auto-endkey auto-go auto-ind[ent] auto-resize auto-synchronize auto-val[idate] auto-z[ap] automatic
syn keyword ProgressOperator	available-formats ave[rage] avg backward[s] base-ade base-key basic-logging batch[-mode] batch-size before-buffer before-rowid
syn keyword ProgressOperator	before-table begin-event-group bgc[olor] binary bind bind-where blob block-iteration-display border-b[ottom-chars]
syn keyword ProgressOperator	border-bottom-p[ixels] border-l[eft-chars] border-left-p[ixels] border-r[ight-chars] border-right-p[ixels] border-t[op-chars]
syn keyword ProgressOperator	border-top-p[ixels] both bottom box box-select[able] browse buffer buffer-chars buffer-create buffer-delete buffer-field buffer-handle
syn keyword ProgressOperator	buffer-lines buffer-n[ame] buffer-releas[e] buffer-validate buffer-value button[s] by-reference by-value byte bytes-read
syn keyword ProgressOperator	bytes-written cache cache-size call-name call-type can-crea[te] can-dele[te] can-query can-read can-set can-writ[e] cancel-break
syn keyword ProgressOperator	cancel-button cancel-requests cancelled caps careful-paint catch cdecl chained char[acter] character_length charset checked
syn keyword ProgressOperator	child-buffer child-num choose class class-type clear-appl-context clear-log clear-select[ion] clear-sort-arrow[s]
syn keyword ProgressOperator	client-connection-id client-principal client-tty client-type client-workstation clob clone-node close close-log code codepage
syn keyword ProgressOperator	codepage-convert col-of collate colon-align[ed] color-table column-bgc[olor] column-codepage column-dcolor column-fgc[olor]
syn keyword ProgressOperator	column-font column-movable column-of column-pfc[olor] column-read-only column-resizable column-sc[rolling] com-handle combo-box
syn keyword ProgressOperator	command compare[s] compile complete config-name connect constructor contents context context-help context-help-file
syn keyword ProgressOperator	context-help-id context-pop[up] control-box control-fram[e] convert convert-to-offs[et] copy-dataset copy-sax-attributes
syn keyword ProgressOperator	copy-temp-table count cpcase cpcoll cpint[ernal] cplog cpprint cprcodein cprcodeout cpterm crc-val[ue] create-like
syn keyword ProgressOperator	create-like-sequential create-node create-node-namespace create-result-list-entry create-test-file current-column current-env[ironment]
syn keyword ProgressOperator	current-iteration current-query current-result-row current-row-modified current-value cursor-char cursor-line cursor-offset data-b[ind]
syn keyword ProgressOperator	data-entry-ret[urn] data-rel[ation] data-source data-source-complete-map data-source-modified data-source-rowid data-t[ype] date
syn keyword ProgressOperator	date-f[ormat] day db-references dcolor dde-error dde-i[d] dde-item dde-name dde-topic debu[g] debug-alert
syn keyword ProgressOperator	declare-namespace decrypt default-buffer-handle default-but[ton] default-commit default-ex[tension] default-string
syn keyword ProgressOperator	default-value define-user-event-manager defined delete-char delete-current-row delete-header-entry delete-line delete-node
syn keyword ProgressOperator	delete-result-list-entry delete-selected-row delete-selected-rows descript[ion] deselect-focused-row deselect-rows deselect-selected-row
syn keyword ProgressOperator	destructor detach-data-source dialog-box dir directory disable-auto-zap disable-connections disable-dump-triggers
syn keyword ProgressOperator	disable-load-triggers disabled display-message display-timezone display-t[ype] domain-description domain-name domain-type double
syn keyword ProgressOperator	drag-enabled drop-down drop-down-list drop-target dump dump-logging-now dynamic dynamic-current-value dynamic-next-value echo
syn keyword ProgressOperator	edge[-chars] edge-p[ixels] edit-can-paste edit-can-undo edit-clear edit-copy edit-cut edit-paste edit-undo editor empty
syn keyword ProgressOperator	empty-dataset empty-temp-table enable-connections enabled encoding encrypt encrypt-audit-mac-key encryption-salt end-document
syn keyword ProgressOperator	end-element end-event-group end-file-drop end-key end-user-prompt endkey entered entry-types-list eq error error-col[umn]
syn keyword ProgressOperator	error-object-detail error-row error-stack-trace error-string event-group-id event-procedure-context event-t[ype] events exclusive-id
syn keyword ProgressOperator	execute execution-log exp expand expandable expire explicit export-principal extended extent external extract
syn keyword ProgressOperator	fetch-selected-row fgc[olor] file file-create-d[ate] file-create-t[ime] file-mod-d[ate] file-mod-t[ime] file-name file-off[set]
syn keyword ProgressOperator	file-size file-type filename fill-in fill-mode fill-where-string filled filters final finally find-by-rowid find-current
syn keyword ProgressOperator	find-first find-last find-unique finder first-async[-request] first-buffer first-child first-column first-data-source
syn keyword ProgressOperator	first-dataset first-form first-object first-proc[edure] first-query first-serv[er] first-server-socket first-socket
syn keyword ProgressOperator	first-tab-i[tem] fit-last-column fix-codepage fixed-only flat-button float focused-row focused-row-selected font-table force-file
syn keyword ProgressOperator	fore[ground] foreign-key-hidden form-input form-long-input formatte[d] forward-only forward[s] fragmen[t] frame-spa[cing] frame-x
syn keyword ProgressOperator	frame-y frequency from-cur[rent] full-height[-chars] full-height-p[ixels] full-pathn[ame] full-width[-chars]
syn keyword ProgressOperator	full-width-p[ixels] function ge generate-pbe-key generate-pbe-salt generate-random-key generate-uuid get get-attribute get-attribute-node
syn keyword ProgressOperator	get-binary-data get-bits get-blue[-value] get-browse-col[umn] get-buffer-handle get-byte-order get-bytes get-bytes-available
syn keyword ProgressOperator	get-callback-proc-context get-callback-proc-name get-cgi-list get-cgi-long-value get-cgi-value get-changes get-child get-child-rel[ation]
syn keyword ProgressOperator	get-config-value get-curr[ent] get-dataset-buffer get-dir get-document-element get-double get-dropped-file get-dynamic get-file
syn keyword ProgressOperator	get-firs[t] get-float get-green[-value] get-header-entr[y] get-index-by-namespace-name get-index-by-qname get-iteration get-last
syn keyword ProgressOperator	get-localname-by-index get-long get-message get-next get-node get-number get-parent get-pointer-value get-prev get-printers get-property
syn keyword ProgressOperator	get-qname-by-index get-red[-value] get-rel[ation] get-repositioned-row get-rgb[-value] get-selected[-widget] get-serialized get-short
syn keyword ProgressOperator	get-signature get-size get-socket-option get-source-buffer get-string get-tab-item get-text-height[-chars] get-text-height-p[ixels]
syn keyword ProgressOperator	get-text-width[-chars] get-text-width-p[ixels] get-top-buffer get-type-by-index get-type-by-namespace-name get-type-by-qname
syn keyword ProgressOperator	get-unsigned-long get-unsigned-short get-uri-by-index get-value-by-index get-value-by-namespace-name get-value-by-qname
syn keyword ProgressOperator	get-wait[-state] grayed grid-factor-h[orizontal] grid-factor-v[ertical] grid-snap grid-unit-height[-chars] grid-unit-height-p[ixels]
syn keyword ProgressOperator	grid-unit-width[-chars] grid-unit-width-p[ixels] grid-visible group-box gt guid handle handler has-lobs has-records height[-chars]
syn keyword ProgressOperator	height-p[ixels] help-topic hex-decode hex-encode hidden hint hori[zontal] html-charset html-end-of-line html-end-of-page
syn keyword ProgressOperator	html-frame-begin html-frame-end html-header-begin html-header-end html-title-begin html-title-end hwnd icfparam[eter] icon
syn keyword ProgressOperator	ignore-current-mod[ified] image image-down image-insensitive image-size image-size-c[hars] image-size-p[ixels] image-up immediate-display
syn keyword ProgressOperator	implements import-node import-principal in-handle increment-exclusive-id index-hint index-info[rmation] indexed-reposition
syn keyword ProgressOperator	info[rmation] inherit-bgc[olor] inherit-fgc[olor] inherits init[ial] initial-dir initial-filter initialize-document-type initiate
syn keyword ProgressOperator	inner inner-chars inner-lines input-value insert-attribute insert-b[acktab] insert-before insert-file insert-row
syn keyword ProgressOperator	insert-string insert-t[ab] instantiating-procedure int[eger] interface internal-entries interval invoke is-clas[s]
syn keyword ProgressOperator	is-codepage-fixed is-column-codepage is-lead-byte is-open is-parameter-set is-row-selected is-selected is-xml iso-date item
syn keyword ProgressOperator	items-per-row join-by-sqldb keep-connection-open keep-frame-z[-order] keep-messages keep-security-cache keep-tab-order key
syn keyword ProgressOperator	keyword-all label-bgc[olor] label-dc[olor] label-fgc[olor] label-font label-pfc[olor] labels landscape language[s] large
syn keyword ProgressOperator	large-to-small last-async[-request] last-batch last-child last-form last-object last-proce[dure] last-serv[er] last-server-socket
syn keyword ProgressOperator	last-socket last-tab-i[tem] lc le leading left left-align[ed] left-trim length line list-events list-item-pairs list-items
syn keyword ProgressOperator	list-property-names list-query-attrs list-set-attrs list-widgets literal-question load load-domains load-icon load-image load-image-down
syn keyword ProgressOperator	load-image-insensitive load-image-up load-mouse-p[ointer] load-picture load-small-icon lob-dir local-host local-name local-port
syn keyword ProgressOperator	locator-column-number locator-line-number locator-public-id locator-system-id locator-type lock-registration log log-audit-event
syn keyword ProgressOperator	log-entry-types log-threshold logfile-name logging-level logical login-expiration-timestamp login-host login-state logout long[char]
syn keyword ProgressOperator	longchar-to-node-value lookahead lower lt mandatory manual-highlight margin-extra margin-height[-chars] margin-height-p[ixels]
syn keyword ProgressOperator	margin-width[-chars] margin-width-p[ixels] mark-new mark-row-state matches max-button max-chars max-data-guess max-height[-chars]
syn keyword ProgressOperator	max-height-p[ixels] max-rows max-size max-val[ue] max-width[-chars] max-width-p[ixels] maximize max[imum] maximum-level memory memptr
syn keyword ProgressOperator	memptr-to-node-value menu menu-bar menu-item menu-k[ey] menu-m[ouse] menubar merge-by-field merge-changes merge-row-changes message-area
syn keyword ProgressOperator	message-area-font method min-button min-column-width-c[hars] min-column-width-p[ixels] min-height[-chars] min-height-p[ixels]
syn keyword ProgressOperator	min-schema-marshal min-size min-val[ue] min-width[-chars] min-width-p[ixels] min[imum] modified mod[ulo] month mouse-p[ointer] movable
syn keyword ProgressOperator	move-after[-tab-item] move-befor[e-tab-item] move-col[umn] move-to-b[ottom] move-to-eof move-to-t[op] mtime multi-compile multiple
syn keyword ProgressOperator	multiple-key multitasking-interval must-exist must-understand name namespace-prefix namespace-uri native ne needs-appserver-prompt
syn keyword ProgressOperator	needs-prompt nested new-instance new-row next-col[umn] next-rowid next-sibling next-tab-ite[m] next-value no-apply
syn keyword ProgressOperator	no-array-m[essage] no-assign no-attr-l[ist] no-auto-validate no-bind-where no-box no-console no-convert no-current-value no-debug
syn keyword ProgressOperator	no-drag no-echo no-empty-space no-focus no-index-hint no-inherit-bgc[olor] no-inherit-fgc[olor] no-join-by-sqldb no-lookahead
syn keyword ProgressOperator	no-row-markers no-schema-marshal no-scrollbar-v[ertical] no-separate-connection no-separators no-tab[-stop] no-und[erline]
syn keyword ProgressOperator	no-word-wrap node-value node-value-to-longchar node-value-to-memptr nonamespace-schema-location none normalize not-active
syn keyword ProgressOperator	num-buffers num-but[tons] num-child-relations num-children num-col[umns] num-copies num-dropped-files num-fields num-formats
syn keyword ProgressOperator	num-header-entries num-items num-iterations num-lines num-locked-col[umns] num-log-files num-messages num-parameters num-references
syn keyword ProgressOperator	num-relations num-repl[aced] num-results num-selected-rows num-selected[-widgets] num-source-buffers num-tabs num-to-retain
syn keyword ProgressOperator	num-top-buffers num-visible-col[umns] numeric numeric-dec[imal-point] numeric-f[ormat] numeric-sep[arator] object ok ok-cancel
syn keyword ProgressOperator	on-frame[-border] ordered-join ordinal orientation origin-handle origin-rowid os-getenv outer outer-join override owner owner-document
syn keyword ProgressOperator	page-size page-wid[th] paged parent parent-buffer parent-rel[ation] parse-status partial-key pascal pathname
syn keyword ProgressOperator	pbe-hash-alg[orithm] pbe-key-rounds perf[ormance] persistent-cache-disabled persistent-procedure pfc[olor] pixels-per-col[umn]
syn keyword ProgressOperator	pixels-per-row popup-m[enu] popup-o[nly] portrait position precision prefer-dataset prepare-string prepared presel[ect] prev
syn keyword ProgressOperator	prev-col[umn] prev-sibling prev-tab-i[tem] primary printer printer-control-handle printer-hdc printer-name printer-port
syn keyword ProgressOperator	printer-setup private private-d[ata] proce[dure] procedure-name progress-s[ource] property protected proxy proxy-password
syn keyword ProgressOperator	proxy-userid public public-id published-events put-bits put-bytes put-double put-float put-long put-short put-string
syn keyword ProgressOperator	put-unsigned-long put-unsigned-short query-close query-off-end query-open query-prepare question quoter radio-buttons radio-set random
syn keyword ProgressOperator	raw raw-transfer read read-file read-only read-xml read-xmlschema real recursive reference-only refresh
syn keyword ProgressOperator	refresh-audit-policy refreshable register-domain reject-changes reject-row-changes rejected relation-fi[elds] relations-active remote
syn keyword ProgressOperator	remote-host remote-port remove-attribute remove-child remove-events-proc[edure] remove-super-proc[edure] replace replace-child
syn keyword ProgressOperator	replace-selection-text replication-create replication-delete replication-write reposition-back[ward] reposition-forw[ard] reposition-to-row
syn keyword ProgressOperator	reposition-to-rowid request reset resiza[ble] resize restart-row restart-rowid result retain-s[hape] retry-cancel return-ins[erted]
syn keyword ProgressOperator	return-to-start-di[r] return-value-data-type returns reverse-from rgb-v[alue] right right-align[ed] right-trim roles round rounded
syn keyword ProgressOperator	routine-level row row-height[-chars] row-height-p[ixels] row-ma[rkers] row-of row-resizable row-state rowid rule run-proc[edure]
syn keyword ProgressOperator	save-as save-file save-row-changes save-where-string sax-attributes sax-parse sax-parse-first sax-parse-next sax-reader
syn keyword ProgressOperator	sax-writer schema-change schema-location schema-marshal schema-path screen-val[ue] scroll-bars scroll-delta scroll-offset
syn keyword ProgressOperator	scroll-to-current-row scroll-to-i[tem] scroll-to-selected-row scrollable scrollbar-h[orizontal] scrollbar-v[ertical]
syn keyword ProgressOperator	scrolled-row-pos[ition] scrolling seal seal-timestamp section select-all select-focused-row select-next-row select-prev-row select-row
syn keyword ProgressOperator	selectable selected selection-end selection-list selection-start selection-text send sensitive separate-connection
syn keyword ProgressOperator	separator-fgc[olor] separators server server-connection-bo[und] server-connection-bound-re[quest] server-connection-co[ntext]
syn keyword ProgressOperator	server-connection-id server-operating-mode server-socket session-end session-id set-actor set-appl-context set-attribute
syn keyword ProgressOperator	set-attribute-node set-blue[-value] set-break set-buffers set-byte-order set-callback set-callback-procedure set-client set-commit
syn keyword ProgressOperator	set-connect-procedure set-contents set-db-client set-dynamic set-green[-value] set-input-source set-must-understand set-node
syn keyword ProgressOperator	set-numeric-form[at] set-option set-output-destination set-parameter set-pointer-val[ue] set-property set-read-response-procedure
syn keyword ProgressOperator	set-red[-value] set-repositioned-row set-rgb[-value] set-rollback set-selection set-serialized set-size set-socket-option
syn keyword ProgressOperator	set-sort-arrow set-wait[-state] short show-in-task[bar] side-label-h[andle] side-lab[els] silent simple single single-character size
syn keyword ProgressOperator	size-c[hars] size-p[ixels] skip-deleted-rec[ord] slider small-icon small-title smallint soap-fault soap-fault-actor
syn keyword ProgressOperator	soap-fault-code soap-fault-detail soap-fault-string soap-header soap-header-entryref socket sort sort-ascending sort-number source
syn keyword ProgressOperator	sql sqrt ssl-server-name standalone start-document start-element start[ing] startup-parameters state-detail static
syn keyword ProgressOperator	status-area status-area-font stdcall stop stop-parsing stoppe[d] stored-proc[edure] stretch-to-fit strict string string-value
syn keyword ProgressOperator	sub-ave[rage] sub-count sub-max[imum] sub-menu sub-menu-help sub-min[imum] sub-total subst[itute] substr[ing] subtype sum
syn keyword ProgressOperator	super-proc[edures] suppress-namespace-processing suppress-w[arnings] suspend symmetric-encryption-algorithm symmetric-encryption-iv
syn keyword ProgressOperator	symmetric-encryption-key symmetric-support synchronize system-alert[-boxes] system-help system-id tab-position tab-stop table-crc-list
syn keyword ProgressOperator	table-list table-num[ber] target temp-dir[ectory] temp-table temp-table-prepar[e] terminate text-selected three-d through throw
syn keyword ProgressOperator	thru tic-marks time-source timezone title-bgc[olor] title-dc[olor] title-fgc[olor] title-fo[nt] to-rowid toggle-box
syn keyword ProgressOperator	tooltip tooltips top top-nav-query topic total tracking-changes trailing trans-init-proc[edure] transaction-mode
syn keyword ProgressOperator	transpar[ent] trunc[ate] ttcodepage type type-of unbox unbuff[ered] unique-id unique-match unload unsigned-byte unsigned-integer
syn keyword ProgressOperator	unsigned-long unsigned-short update-attribute upper url url-decode url-encode url-password url-userid use use-dic[t-exps]
syn keyword ProgressOperator	use-filename use-text use-widget-pool user-id valid-event valid-handle valid-object validate validate-expressio[n]
syn keyword ProgressOperator	validate-message validate-seal validate-xml validation-enabled var[iable] verb[ose] version vert[ical] view-first-column-on-reopen
syn keyword ProgressOperator	virtual-height[-chars] virtual-height-p[ixels] virtual-width[-chars] virtual-width-p[ixels] visible void wait warning weekday where-string
syn keyword ProgressOperator	widget widget-e[nter] widget-h[andle] widget-id widget-l[eave] widget-pool width[-chars] width-p[ixels] window-name
syn keyword ProgressOperator	window-sta[te] window-sys[tem] word-index word-wrap work-area-height-p[ixels] work-area-width-p[ixels] work-area-x work-area-y
syn keyword ProgressOperator	write-cdata write-characters write-comment write-data-element write-empty-element write-entity-ref write-external-dtd
syn keyword ProgressOperator	write-fragment write-message write-processing-instruction write-status write-xml write-xmlschema x x-document x-noderef x-of
syn keyword ProgressOperator	xml-data-type xml-node-name xml-node-type xml-schema-pat[h] xml-suppress-namespace-processing y y-of year year-offset yes-no
syn keyword ProgressOperator	yes-no-cancel

syn keyword ProgressType	char[acter] int[eger] int64 dec[imal] log[ical] da[te] datetime datetime-tz

syn sync lines=800

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting. Can be overridden later.
hi def link ProgressByte		Number
hi def link ProgressCase		Repeat
hi def link ProgressComment		Comment
hi def link ProgressConditional	Conditional
hi def link ProgressDebug		Debug
hi def link ProgressDo		Repeat
hi def link ProgressEndError		Error
hi def link ProgressFor		Repeat
hi def link ProgressFunction		Procedure
hi def link ProgressIdentifier	Identifier
hi def link ProgressInclude		Include
hi def link ProgressMatrixDelimiter	Identifier
hi def link ProgressNumber		Number
hi def link ProgressOperator		Operator
hi def link ProgressPreProc		PreProc
hi def link ProgressProcedure	Procedure
hi def link ProgressQuote		Delimiter
hi def link ProgressRepeat		Repeat
hi def link ProgressReserved		Statement
hi def link ProgressSpaceError	Error
hi def link ProgressString		String
hi def link ProgressTodo		Todo
hi def link ProgressType		Statement
hi def link ProgressShowTab		Error


let b:current_syntax = "progress"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 sw=8
PK�j�Z�����=�=vim80/syntax/splint.vimnu�[���" Vim syntax file
" Language:	splint (C with lclint/splint Annotations)
" Maintainer:	Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home:	http://www.splint.org/
" Last Change:	$Date: 2004/06/13 20:08:47 $
" $Revision: 1.1 $

" Note:		Splint annotated files are not detected by default.
"		If you want to use this file for highlighting C code,
"		please make sure splint.vim is sourced instead of c.vim,
"		for example by putting
"			/* vim: set filetype=splint : */
"		at the end of your code or something like
"			au! BufRead,BufNewFile *.c	setfiletype splint
"		in your vimrc file or filetype.vim


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C syntax to start with
runtime! syntax/c.vim


" FIXME: uses and changes several clusters defined in c.vim
"	so watch for changes there

" TODO: make a little more grammar explicit
"	match flags with hyphen and underscore notation
"	match flag expanded forms
"	accept other comment char than @

syn case match
" splint annotations (taken from 'splint -help annotations')
syn match   splintStateAnnot	contained "\(pre\|post\):\(only\|shared\|owned\|dependent\|observer\|exposed\|isnull\|notnull\)"
syn keyword splintSpecialAnnot  contained special
syn keyword splintSpecTag	contained uses sets defines allocated releases
syn keyword splintModifies	contained modifies
syn keyword splintRequires	contained requires ensures
syn keyword splintGlobals	contained globals
syn keyword splintGlobitem	contained internalState fileSystem
syn keyword splintGlobannot	contained undef killed
syn keyword splintWarning	contained warn

syn keyword splintModitem	contained internalState fileSystem nothing
syn keyword splintReqitem	contained MaxSet MaxRead result
syn keyword splintIter		contained iter yield
syn keyword splintConst		contained constant
syn keyword splintAlt		contained alt

syn keyword splintType		contained abstract concrete mutable immutable refcounted numabstract
syn keyword splintGlobalType	contained unchecked checkmod checked checkedstrict
syn keyword splintMemMgm	contained dependent keep killref only owned shared temp
syn keyword splintAlias		contained unique returned
syn keyword splintExposure	contained observer exposed
syn keyword splintDefState	contained out in partial reldef
syn keyword splintGlobState	contained undef killed
syn keyword splintNullState	contained null notnull relnull
syn keyword splintNullPred	contained truenull falsenull nullwhentrue falsewhennull
syn keyword splintExit		contained exits mayexit trueexit falseexit neverexit
syn keyword splintExec		contained noreturn maynotreturn noreturnwhentrue noreturnwhenfalse alwaysreturns
syn keyword splintSef		contained sef
syn keyword splintDecl		contained unused external
syn keyword splintCase		contained fallthrough
syn keyword splintBreak		contained innerbreak loopbreak switchbreak innercontinue
syn keyword splintUnreach	contained notreached
syn keyword splintSpecFunc	contained printflike scanflike messagelike

" TODO: make these region or match
syn keyword splintErrSupp	contained i ignore end t
syn match   splintErrSupp	contained "[it]\d\+\>"
syn keyword splintTypeAcc	contained access noaccess

syn keyword splintMacro		contained notfunction
syn match   splintSpecType	contained "\(\|unsigned\|signed\)integraltype"

" Flags taken from 'splint -help flags full' divided in local and global flags
"				 Local Flags:
syn keyword splintFlag contained abstract abstractcompare accessall accessczech accessczechoslovak
syn keyword splintFlag contained accessfile accessmodule accessslovak aliasunique allblock
syn keyword splintFlag contained allempty allglobs allimponly allmacros alwaysexits
syn keyword splintFlag contained annotationerror ansi89limits assignexpose badflag bitwisesigned
syn keyword splintFlag contained boolcompare boolfalse boolint boolops booltrue
syn keyword splintFlag contained booltype bounds boundscompacterrormessages boundsread boundswrite
syn keyword splintFlag contained branchstate bufferoverflow bufferoverflowhigh bugslimit casebreak
syn keyword splintFlag contained caseinsensitivefilenames castexpose castfcnptr charindex charint
syn keyword splintFlag contained charintliteral charunsignedchar checkedglobalias checkmodglobalias checkpost
syn keyword splintFlag contained checkstrictglobalias checkstrictglobs codeimponly commentchar commenterror
syn keyword splintFlag contained compdef compdestroy compmempass constmacros constprefix
syn keyword splintFlag contained constprefixexclude constuse continuecomment controlnestdepth cppnames
syn keyword splintFlag contained csvoverwrite czech czechconsts czechfcns czechmacros
syn keyword splintFlag contained czechoslovak czechoslovakconsts czechoslovakfcns czechoslovakmacros czechoslovaktypes
syn keyword splintFlag contained czechoslovakvars czechtypes czechvars debugfcnconstraint declundef
syn keyword splintFlag contained deepbreak deparrays dependenttrans distinctexternalnames distinctinternalnames
syn keyword splintFlag contained duplicatecases duplicatequals elseifcomplete emptyret enumindex
syn keyword splintFlag contained enumint enummembers enummemuse enumprefix enumprefixexclude
syn keyword splintFlag contained evalorder evalorderuncon exitarg exportany exportconst
syn keyword splintFlag contained exportfcn exportheader exportheadervar exportiter exportlocal
syn keyword splintFlag contained exportmacro exporttype exportvar exposetrans externalnamecaseinsensitive
syn keyword splintFlag contained externalnamelen externalprefix externalprefixexclude fcnderef fcnmacros
syn keyword splintFlag contained fcnpost fcnuse fielduse fileextensions filestaticprefix
syn keyword splintFlag contained filestaticprefixexclude firstcase fixedformalarray floatdouble forblock
syn keyword splintFlag contained forcehints forempty forloopexec formalarray formatcode
syn keyword splintFlag contained formatconst formattype forwarddecl freshtrans fullinitblock
syn keyword splintFlag contained globalias globalprefix globalprefixexclude globimponly globnoglobs
syn keyword splintFlag contained globs globsimpmodsnothing globstate globuse gnuextensions
syn keyword splintFlag contained grammar hasyield hints htmlfileformat ifblock
syn keyword splintFlag contained ifempty ignorequals ignoresigns immediatetrans impabstract
syn keyword splintFlag contained impcheckedglobs impcheckedspecglobs impcheckedstatics impcheckedstrictglobs impcheckedstrictspecglobs
syn keyword splintFlag contained impcheckedstrictstatics impcheckmodglobs impcheckmodinternals impcheckmodspecglobs impcheckmodstatics
syn keyword splintFlag contained impconj implementationoptional implictconstraint impouts imptype
syn keyword splintFlag contained includenest incompletetype incondefs incondefslib indentspaces
syn keyword splintFlag contained infloops infloopsuncon initallelements initsize internalglobs
syn keyword splintFlag contained internalglobsnoglobs internalnamecaseinsensitive internalnamelen internalnamelookalike iso99limits
syn keyword splintFlag contained isoreserved isoreservedinternal iterbalance iterloopexec iterprefix
syn keyword splintFlag contained iterprefixexclude iteryield its4low its4moderate its4mostrisky
syn keyword splintFlag contained its4risky its4veryrisky keep keeptrans kepttrans
syn keyword splintFlag contained legacy libmacros likelyboundsread likelyboundswrite likelybool
syn keyword splintFlag contained likelybounds limit linelen lintcomments localprefix
syn keyword splintFlag contained localprefixexclude locindentspaces longint longintegral longsignedintegral
syn keyword splintFlag contained longunsignedintegral longunsignedunsignedintegral loopexec looploopbreak looploopcontinue
syn keyword splintFlag contained loopswitchbreak macroassign macroconstdecl macrodecl macroempty
syn keyword splintFlag contained macrofcndecl macromatchname macroparams macroparens macroredef
syn keyword splintFlag contained macroreturn macrostmt macrounrecog macrovarprefix macrovarprefixexclude
syn keyword splintFlag contained maintype matchanyintegral matchfields mayaliasunique memchecks
syn keyword splintFlag contained memimp memtrans misplacedsharequal misscase modfilesys
syn keyword splintFlag contained modglobs modglobsnomods modglobsunchecked modinternalstrict modnomods
syn keyword splintFlag contained modobserver modobserveruncon mods modsimpnoglobs modstrictglobsnomods
syn keyword splintFlag contained moduncon modunconnomods modunspec multithreaded mustdefine
syn keyword splintFlag contained mustfree mustfreefresh mustfreeonly mustmod mustnotalias
syn keyword splintFlag contained mutrep namechecks needspec nestcomment nestedextern
syn keyword splintFlag contained newdecl newreftrans nextlinemacros noaccess nocomments
syn keyword splintFlag contained noeffect noeffectuncon noparams nopp noret
syn keyword splintFlag contained null nullassign nullderef nullinit nullpass
syn keyword splintFlag contained nullptrarith nullret nullstate nullterminated
syn keyword splintFlag contained numabstract numabstractcast numabstractindex numabstractlit numabstractprint
syn keyword splintFlag contained numenummembers numliteral numstructfields observertrans obviousloopexec
syn keyword splintFlag contained oldstyle onlytrans onlyunqglobaltrans orconstraint overload
syn keyword splintFlag contained ownedtrans paramimptemp paramuse parenfileformat partial
syn keyword splintFlag contained passunknown portability predassign predbool predboolint
syn keyword splintFlag contained predboolothers predboolptr preproc protoparammatch protoparamname
syn keyword splintFlag contained protoparamprefix protoparamprefixexclude ptrarith ptrcompare ptrnegate
syn keyword splintFlag contained quiet readonlystrings readonlytrans realcompare redecl
syn keyword splintFlag contained redef redundantconstraints redundantsharequal refcounttrans relaxquals
syn keyword splintFlag contained relaxtypes repeatunrecog repexpose retalias retexpose
syn keyword splintFlag contained retimponly retval retvalbool retvalint retvalother
syn keyword splintFlag contained sefparams sefuncon shadow sharedtrans shiftimplementation
syn keyword splintFlag contained shiftnegative shortint showallconjs showcolumn showconstraintlocation
syn keyword splintFlag contained showconstraintparens showdeephistory showfunc showloadloc showscan
syn keyword splintFlag contained showsourceloc showsummary sizeofformalarray sizeoftype skipisoheaders
syn keyword splintFlag contained skipposixheaders slashslashcomment slovak slovakconsts slovakfcns
syn keyword splintFlag contained slovakmacros slovaktypes slovakvars specglobimponly specimponly
syn keyword splintFlag contained specmacros specretimponly specstructimponly specundecl specundef
syn keyword splintFlag contained stackref statemerge statetransfer staticinittrans statictrans
syn keyword splintFlag contained strictbranchstate strictdestroy strictops strictusereleased stringliterallen
syn keyword splintFlag contained stringliteralnoroom stringliteralnoroomfinalnull stringliteralsmaller stringliteraltoolong structimponly
syn keyword splintFlag contained superuser switchloopbreak switchswitchbreak syntax sysdirerrors
syn keyword splintFlag contained sysdirexpandmacros sysunrecog tagprefix tagprefixexclude temptrans
syn keyword splintFlag contained tmpcomments toctou topuse trytorecover type
syn keyword splintFlag contained typeprefix typeprefixexclude typeuse uncheckedglobalias uncheckedmacroprefix
syn keyword splintFlag contained uncheckedmacroprefixexclude uniondef unixstandard unqualifiedinittrans unqualifiedtrans
syn keyword splintFlag contained unreachable unrecog unrecogcomments unrecogdirective unrecogflagcomments
syn keyword splintFlag contained unsignedcompare unusedspecial usedef usereleased usevarargs
syn keyword splintFlag contained varuse voidabstract warnflags warnlintcomments warnmissingglobs
syn keyword splintFlag contained warnmissingglobsnoglobs warnposixheaders warnrc warnsysfiles warnunixlib
syn keyword splintFlag contained warnuse whileblock whileempty whileloopexec zerobool
syn keyword splintFlag contained zeroptr
"				       Global Flags:
syn keyword splintGlobalFlag contained csv dump errorstream errorstreamstderr errorstreamstdout
syn keyword splintGlobalFlag contained expect f help i isolib
syn keyword splintGlobalFlag contained larchpath lclexpect lclimportdir lcs lh
syn keyword splintGlobalFlag contained load messagestream messagestreamstderr messagestreamstdout mts
syn keyword splintGlobalFlag contained neverinclude nof nolib posixlib posixstrictlib
syn keyword splintGlobalFlag contained showalluses singleinclude skipsysheaders stats streamoverwrite
syn keyword splintGlobalFlag contained strictlib supcounts sysdirs timedist tmpdir
syn keyword splintGlobalFlag contained unixlib unixstrictlib warningstream warningstreamstderr warningstreamstdout
syn keyword splintGlobalFlag contained whichlib
syn match   splintFlagExpr contained "[\+\-\=]" nextgroup=splintFlag,splintGlobalFlag

" detect missing /*@ and wrong */
syn match	splintAnnError	"@\*/"
syn cluster	cCommentGroup	add=splintAnnError
syn match	splintAnnError2	"[^@]\*/"hs=s+1 contained
syn region	splintAnnotation start="/\*@" end="@\*/" contains=@splintAnnotElem,cType keepend
syn match	splintShortAnn	"/\*@\*/"
syn cluster	splintAnnotElem	contains=splintStateAnnot,splintSpecialAnnot,splintSpecTag,splintModifies,splintRequires,splintGlobals,splintGlobitem,splintGlobannot,splintWarning,splintModitem,splintIter,splintConst,splintAlt,splintType,splintGlobalType,splintMemMgm,splintAlias,splintExposure,splintDefState,splintGlobState,splintNullState,splintNullPred,splintExit,splintExec,splintSef,splintDecl,splintCase,splintBreak,splintUnreach,splintSpecFunc,splintErrSupp,splintTypeAcc,splintMacro,splintSpecType,splintAnnError2,splintFlagExpr
syn cluster	splintAllStuff	contains=@splintAnnotElem,splintFlag,splintGlobalFlag
syn cluster	cParenGroup	add=@splintAllStuff
syn cluster	cPreProcGroup	add=@splintAllStuff
syn cluster	cMultiGroup	add=@splintAllStuff

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link splintShortAnn		splintAnnotation
hi def link splintAnnotation	Comment
hi def link splintAnnError		splintError
hi def link splintAnnError2	splintError
hi def link splintFlag		SpecialComment
hi def link splintGlobalFlag	splintError
hi def link splintSpecialAnnot	splintAnnKey
hi def link splintStateAnnot	splintAnnKey
hi def link splintSpecTag		splintAnnKey
hi def link splintModifies		splintAnnKey
hi def link splintRequires		splintAnnKey
hi def link splintGlobals		splintAnnKey
hi def link splintGlobitem		Constant
hi def link splintGlobannot	splintAnnKey
hi def link splintWarning		splintAnnKey
hi def link splintModitem		Constant
hi def link splintIter		splintAnnKey
hi def link splintConst		splintAnnKey
hi def link splintAlt		splintAnnKey
hi def link splintType		splintAnnKey
hi def link splintGlobalType	splintAnnKey
hi def link splintMemMgm		splintAnnKey
hi def link splintAlias		splintAnnKey
hi def link splintExposure		splintAnnKey
hi def link splintDefState		splintAnnKey
hi def link splintGlobState	splintAnnKey
hi def link splintNullState	splintAnnKey
hi def link splintNullPred		splintAnnKey
hi def link splintExit		splintAnnKey
hi def link splintExec		splintAnnKey
hi def link splintSef		splintAnnKey
hi def link splintDecl		splintAnnKey
hi def link splintCase		splintAnnKey
hi def link splintBreak		splintAnnKey
hi def link splintUnreach		splintAnnKey
hi def link splintSpecFunc		splintAnnKey
hi def link splintErrSupp		splintAnnKey
hi def link splintTypeAcc		splintAnnKey
hi def link splintMacro		splintAnnKey
hi def link splintSpecType		splintAnnKey
hi def link splintAnnKey		Type
hi def link splintError		Error


let b:current_syntax = "splint"

" vim: ts=8
PK�j�Z�\��%%vim80/syntax/limits.vimnu�[���" Vim syntax file
" Language:             limits(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword limitsTodo    contained TODO FIXME XXX NOTE

syn region  limitsComment display oneline start='^\s*#' end='$'
                          \ contains=limitsTodo,@Spell

syn match   limitsBegin   display '^'
                          \ nextgroup=limitsUser,limitsDefault,limitsComment
                          \ skipwhite

syn match   limitsUser    contained '[^ \t#*]\+'
                          \ nextgroup=limitsLimit,limitsDeLimit skipwhite

syn match   limitsDefault contained '*'
                          \ nextgroup=limitsLimit,limitsDeLimit skipwhite

syn match   limitsLimit   contained '[ACDFMNRSTUKLP]' nextgroup=limitsNumber
syn match   limitsDeLimit contained '-'

syn match   limitsNumber  contained '\d\+\>' nextgroup=limitsLimit skipwhite

hi def link limitsTodo    Todo
hi def link limitsComment Comment
hi def link limitsUser    Keyword
hi def link limitsDefault Macro
hi def link limitsLimit   Identifier
hi def link limitsDeLimit Special
hi def link limitsNumber  Number

let b:current_syntax = "limits"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��Jf/f/vim80/syntax/rhelp.vimnu�[���" Vim syntax file
" Language:    R Help File
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change: Tue Jun 28, 2016  08:53AM
" Remarks:     - Includes R syntax highlighting in the appropriate
"                sections if an r.vim file is in the same directory or in the
"                default debian location.
"              - There is no Latex markup in equations
"              - Thanks to Will Gray for finding and fixing a bug
"              - No support for \var tag within quoted string

" Version Clears: {{{1
if exists("b:current_syntax")
  finish
endif 

scriptencoding utf-8

syn case match

" R help identifiers {{{1
syn region rhelpIdentifier matchgroup=rhelpSection	start="\\name{" end="}" 
syn region rhelpIdentifier matchgroup=rhelpSection	start="\\alias{" end="}" 
syn region rhelpIdentifier matchgroup=rhelpSection	start="\\pkg{" end="}" contains=rhelpLink
syn region rhelpIdentifier matchgroup=rhelpSection	start="\\CRANpkg{" end="}" contains=rhelpLink
syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end="}" contained
syn region rhelpIdentifier matchgroup=rhelpSection start="\\Rdversion{" end="}"


" Highlighting of R code using an existing r.vim syntax file if available {{{1
syn include @R syntax/r.vim

" Strings {{{1
syn region rhelpString start=/"/ skip=/\\"/ end=/"/ contains=rhelpSpecialChar,rhelpCodeSpecial,rhelpLink contained

" Special characters in R strings
syn match rhelpCodeSpecial display contained "\\\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"

" Special characters  ( \$ \& \% \# \{ \} \_)
syn match rhelpSpecialChar        "\\[$&%#{}_]"


" R code {{{1
syn match rhelpDots		"\\dots" containedin=@R
syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpLink,rhelpIdentifier,rhelpString,rhelpSpecialChar,rhelpSection
syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpIdentifier,rhelpS4method
syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end="}" contains=@R
syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end="}" contains=@R

if v:version > 703
  syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@1<!{.\{-}\\\@1<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend
else
  syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@<!{.\{-}\\\@<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend
endif
syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=")" contains=@R,rhelpDots
syn region rhelpSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter transparent end="}" contains=@R

" PreProc {{{1
syn match rhelpPreProc "^#ifdef.*" 
syn match rhelpPreProc "^#endif.*" 

" Special Delimiters {{{1
syn match rhelpDelimiter		"\\cr"
syn match rhelpDelimiter		"\\tab "

" Keywords {{{1
syn match rhelpKeyword	"\\R\>"
syn match rhelpKeyword	"\\ldots\>"
syn match rhelpKeyword	"\\sspace\>"
syn match rhelpKeyword  "--"
syn match rhelpKeyword  "---"

" Condition Keywords {{{2
syn match rhelpKeyword	"\\if\>"
syn match rhelpKeyword	"\\ifelse\>"
syn match rhelpKeyword	"\\out\>"
" Examples of usage:
" \ifelse{latex}{\eqn{p = 5 + 6 - 7 \times 8}}{\eqn{p = 5 + 6 - 7 * 8}}
" \ifelse{latex}{\out{$\alpha$}}{\ifelse{html}{\out{&alpha;}}{alpha}}

" Keywords and operators valid only if in math mode {{{2
syn match rhelpMathOp  "<" contained
syn match rhelpMathOp  ">" contained
syn match rhelpMathOp  "+" contained
syn match rhelpMathOp  "-" contained
syn match rhelpMathOp  "=" contained

" Conceal function based on syntax/tex.vim {{{2
if exists("g:tex_conceal")
  let s:tex_conceal = g:tex_conceal
else
  let s:tex_conceal = 'gm'
endif
function s:HideSymbol(pat, cchar, hide)
  if a:hide
    exe "syn match rhelpMathSymb '" . a:pat . "' contained conceal cchar=" . a:cchar
  else
    exe "syn match rhelpMathSymb '" . a:pat . "' contained"
  endif
endfunction

" Math symbols {{{2
if s:tex_conceal =~ 'm'
  let s:hd = 1
else
  let s:hd = 0
endif
call s:HideSymbol('\\infty\>',  '∞', s:hd)
call s:HideSymbol('\\ge\>',     '≥', s:hd)
call s:HideSymbol('\\le\>',     '≤', s:hd)
call s:HideSymbol('\\prod\>',   '∏', s:hd)
call s:HideSymbol('\\sum\>',    '∑', s:hd)
syn match rhelpMathSymb   	"\\sqrt\>" contained

" Greek letters {{{2
if s:tex_conceal =~ 'g'
  let s:hd = 1
else
  let s:hd = 0
endif
call s:HideSymbol('\\alpha\>',    'α', s:hd)
call s:HideSymbol('\\beta\>',     'β', s:hd)
call s:HideSymbol('\\gamma\>',    'γ', s:hd)
call s:HideSymbol('\\delta\>',    'δ', s:hd)
call s:HideSymbol('\\epsilon\>',  'ϵ', s:hd)
call s:HideSymbol('\\zeta\>',     'ζ', s:hd)
call s:HideSymbol('\\eta\>',      'η', s:hd)
call s:HideSymbol('\\theta\>',    'θ', s:hd)
call s:HideSymbol('\\iota\>',     'ι', s:hd)
call s:HideSymbol('\\kappa\>',    'κ', s:hd)
call s:HideSymbol('\\lambda\>',   'λ', s:hd)
call s:HideSymbol('\\mu\>',       'μ', s:hd)
call s:HideSymbol('\\nu\>',       'ν', s:hd)
call s:HideSymbol('\\xi\>',       'ξ', s:hd)
call s:HideSymbol('\\pi\>',       'π', s:hd)
call s:HideSymbol('\\rho\>',      'ρ', s:hd)
call s:HideSymbol('\\sigma\>',    'σ', s:hd)
call s:HideSymbol('\\tau\>',      'τ', s:hd)
call s:HideSymbol('\\upsilon\>',  'υ', s:hd)
call s:HideSymbol('\\phi\>',      'ϕ', s:hd)
call s:HideSymbol('\\chi\>',      'χ', s:hd)
call s:HideSymbol('\\psi\>',      'ψ', s:hd)
call s:HideSymbol('\\omega\>',    'ω', s:hd)
call s:HideSymbol('\\Gamma\>',    'Γ', s:hd)
call s:HideSymbol('\\Delta\>',    'Δ', s:hd)
call s:HideSymbol('\\Theta\>',    'Θ', s:hd)
call s:HideSymbol('\\Lambda\>',   'Λ', s:hd)
call s:HideSymbol('\\Xi\>',       'Ξ', s:hd)
call s:HideSymbol('\\Pi\>',       'Π', s:hd)
call s:HideSymbol('\\Sigma\>',    'Σ', s:hd)
call s:HideSymbol('\\Upsilon\>',  'Υ', s:hd)
call s:HideSymbol('\\Phi\>',      'Φ', s:hd)
call s:HideSymbol('\\Psi\>',      'Ψ', s:hd)
call s:HideSymbol('\\Omega\>',    'Ω', s:hd)
delfunction s:HideSymbol
" Note: The letters 'omicron', 'Alpha', 'Beta', 'Epsilon', 'Zeta', 'Eta',
" 'Iota', 'Kappa', 'Mu', 'Nu', 'Omicron', 'Rho', 'Tau' and 'Chi' are listed
" at src/library/tools/R/Rd2txt.R because they are valid in HTML, although
" they do not make valid LaTeX code (e.g. &Alpha; versus \Alpha).

" Links {{{1
syn region rhelpLink matchgroup=rhelpType start="\\link{" end="}" contained keepend extend
syn region rhelpLink matchgroup=rhelpType start="\\link\[.\{-}\]{" end="}" contained keepend extend
syn region rhelpLink matchgroup=rhelpType start="\\linkS4class{" end="}" contained keepend extend
syn region rhelpLink matchgroup=rhelpType start="\\url{" end="}" contained keepend extend
syn region rhelpLink matchgroup=rhelpType start="\\href{" end="}" contained keepend extend
syn region rhelpLink matchgroup=rhelpType start="\\figure{" end="}" contained keepend extend

" Verbatim like {{{1
syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpSpecialChar,rhelpComment
syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpSpecialChar,rhelpComment

" Equation {{{1
syn region rhelpEquation matchgroup=rhelpType start="\\eqn{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpMathSymb,rhelpMathOp,rhelpRegion contained keepend extend
syn region rhelpEquation matchgroup=rhelpType start="\\deqn{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpMathSymb,rhelpMathOp,rhelpRegion contained keepend extend

" Type Styles {{{1
syn match rhelpType		"\\emph\>"
syn match rhelpType		"\\strong\>"
syn match rhelpType		"\\bold\>"
syn match rhelpType		"\\sQuote\>"
syn match rhelpType		"\\dQuote\>"
syn match rhelpType		"\\preformatted\>"
syn match rhelpType		"\\kbd\>"
syn match rhelpType		"\\file\>"
syn match rhelpType		"\\email\>"
syn match rhelpType		"\\enc\>"
syn match rhelpType		"\\var\>"
syn match rhelpType		"\\env\>"
syn match rhelpType		"\\option\>"
syn match rhelpType		"\\command\>"
syn match rhelpType		"\\newcommand\>"
syn match rhelpType		"\\renewcommand\>"
syn match rhelpType		"\\dfn\>"
syn match rhelpType		"\\cite\>"
syn match rhelpType		"\\acronym\>"
syn match rhelpType		"\\doi\>"

" rhelp sections {{{1
syn match rhelpSection		"\\encoding\>"
syn match rhelpSection		"\\title\>"
syn match rhelpSection		"\\item\>"
syn match rhelpSection		"\\description\>"
syn match rhelpSection		"\\concept\>"
syn match rhelpSection		"\\arguments\>"
syn match rhelpSection		"\\details\>"
syn match rhelpSection		"\\value\>"
syn match rhelpSection		"\\references\>"
syn match rhelpSection		"\\note\>"
syn match rhelpSection		"\\author\>"
syn match rhelpSection		"\\seealso\>"
syn match rhelpSection		"\\keyword\>"
syn match rhelpSection		"\\docType\>"
syn match rhelpSection		"\\format\>"
syn match rhelpSection		"\\source\>"
syn match rhelpSection    "\\itemize\>"
syn match rhelpSection    "\\describe\>"
syn match rhelpSection    "\\enumerate\>"
syn match rhelpSection    "\\item "
syn match rhelpSection    "\\item$"
syn match rhelpSection		"\\tabular{[lcr]*}"
syn match rhelpSection		"\\dontrun\>"
syn match rhelpSection		"\\dontshow\>"
syn match rhelpSection		"\\testonly\>"
syn match rhelpSection		"\\donttest\>"

" Freely named Sections {{{1
syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end="}"
syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end="}" 

syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}"

" R help file comments {{{1
syn match rhelpComment /%.*$/

" Error {{{1
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim,rhelpEquation
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim,rhelpEquation
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim,rhelpEquation
syn match rhelpError      /[)\]}]/
syn match rhelpBraceError /[)}]/ contained
syn match rhelpCurlyError /[)\]]/ contained
syn match rhelpParenError /[\]}]/ contained

syntax sync match rhelpSyncRcode grouphere rhelpRcode "\\examples{"

" Define the default highlighting {{{1
hi def link rhelpVerbatim    String
hi def link rhelpDelimiter   Delimiter
hi def link rhelpIdentifier  Identifier
hi def link rhelpString      String
hi def link rhelpCodeSpecial Special
hi def link rhelpKeyword     Keyword
hi def link rhelpDots        Keyword
hi def link rhelpLink        Underlined
hi def link rhelpType        Type
hi def link rhelpSection     PreCondit
hi def link rhelpError       Error
hi def link rhelpBraceError  Error
hi def link rhelpCurlyError  Error
hi def link rhelpParenError  Error
hi def link rhelpPreProc     PreProc
hi def link rhelpDelimiter   Delimiter
hi def link rhelpComment     Comment
hi def link rhelpRComment    Comment
hi def link rhelpSpecialChar SpecialChar
hi def link rhelpMathSymb    Special
hi def link rhelpMathOp      Operator

let   b:current_syntax = "rhelp"

" vim: foldmethod=marker sw=2
PK�j�Z�)�{��vim80/syntax/mp.vimnu�[���" Vim syntax file
" Language:           MetaPost
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change:        2016 Oct 14

if exists("b:current_syntax")
  finish
endif

let s:cpo_sav = &cpo
set cpo&vim

if exists("g:plain_mf_macros")
  let s:plain_mf_macros = g:plain_mf_macros
endif
if exists("g:plain_mf_modes")
  let s:plain_mf_modes = g:plain_mf_modes
endif
if exists("g:other_mf_macros")
  let s:other_mf_macros = g:other_mf_macros
endif

let g:plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
let g:plain_mf_modes  = 0 " No METAFONT modes
let g:other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither

" Read the METAFONT syntax to start with
runtime! syntax/mf.vim
unlet b:current_syntax " Necessary for syn include below

" Restore the value of existing global variables
if exists("s:plain_mf_macros")
  let g:plain_mf_macros = s:plain_mf_macros
else
  unlet g:plain_mf_macros
endif
if exists("s:plain_mf_modes")
  let g:plain_mf_modes = s:plain_mf_modes
else
  unlet g:plain_mf_modes
endif
if exists("s:other_mf_macros")
  let g:other_mf_macros = s:other_mf_macros
else
  unlet g:other_mf_macros
endif

" Use TeX highlighting inside verbatimtex/btex... etex
syn include @MPTeX syntax/tex.vim
unlet b:current_syntax
" These are defined as keywords rather than using matchgroup
" in order to make them available to syntaxcomplete.
syn keyword mpTeXdelim       btex etex verbatimtex contained
syn region mpTeXinsert
      \ start=/\<verbatimtex\>\|\<btex\>/rs=e+1
      \ end=/\<etex\>/re=s-1 keepend
      \ contains=@MPTeX,mpTeXdelim

" iskeyword must be set after the syn include above, because tex.vim sets `syn
" iskeyword`. Note that keywords do not contain numbers (numbers are
" subscripts)
syntax iskeyword @,_

" MetaPost primitives not found in METAFONT
syn keyword mpBoolExp        bounded clipped filled stroked textual arclength
syn keyword mpNumExp         arctime blackpart bluepart colormodel cyanpart
syn keyword mpNumExp         fontsize greenpart greypart magentapart redpart
syn keyword mpPairExp        yellowpart llcorner lrcorner ulcorner urcorner
" envelope is seemingly undocumented, but it exists since mpost 1.003.
" The syntax is: envelope <polygonal pen> of <path primary>. For example,
"     path p;
"     p := envelope pensquare of (up--left);
" (Thanks to Daniel H. Luecking for the example!)
syn keyword mpPathExp        envelope pathpart
syn keyword mpPenExp         penpart
syn keyword mpPicExp         dashpart glyph infont
syn keyword mpStringExp      fontpart readfrom textpart
syn keyword mpType           cmykcolor color rgbcolor
" Other MetaPost primitives listed in the manual
syn keyword mpPrimitive      mpxbreak within
" Internal quantities not found in METAFONT
" (Table 6 in MetaPost: A User's Manual)
syn keyword mpInternal       defaultcolormodel hour minute linecap linejoin
syn keyword mpInternal       miterlimit mpprocset mpversion numberprecision
syn keyword mpInternal       numbersystem outputfilename outputformat
syn keyword mpInternal       outputformatoptions outputtemplate prologues
syn keyword mpInternal       restoreclipcolor tracinglostchars troffmode
syn keyword mpInternal       truecorners
" List of commands not found in METAFONT (from MetaPost: A User's Manual)
syn keyword mpCommand        clip closefrom dashed filenametemplate fontmapfile
syn keyword mpCommand        fontmapline setbounds withcmykcolor withcolor
syn keyword mpCommand        withgreyscale withoutcolor withpostscript
syn keyword mpCommand        withprescript withrgbcolor write
" METAFONT internal variables not found in MetaPost
syn keyword notDefined       autorounding chardx chardy fillin granularity
syn keyword notDefined       proofing smoothing tracingedges tracingpens
syn keyword notDefined       turningcheck xoffset yoffset
" Suffix defined only in METAFONT:
syn keyword notDefined       nodot
" Other not implemented primitives (see MetaPost: A User's Manual, §C.1)
syn keyword notDefined       cull display openwindow numspecial totalweight
syn keyword notDefined       withweight

" Keywords defined by plain.mp
if get(g:, "plain_mp_macros", 1) || get(g:, "mp_metafun_macros", 0)
  syn keyword mpDef          beginfig clear_pen_memory clearit clearpen clearpen
  syn keyword mpDef          clearxy colorpart cutdraw downto draw drawarrow
  syn keyword mpDef          drawdblarrow drawdot drawoptions endfig erase
  syn keyword mpDef          exitunless fill filldraw flex gobble hide interact
  syn keyword mpDef          label loggingall makelabel numtok penstroke pickup
  syn keyword mpDef          range reflectedabout rotatedaround shipit
  syn keyword mpDef          stop superellipse takepower tracingall tracingnone
  syn keyword mpDef          undraw undrawdot unfill unfilldraw upto
  syn match   mpDef          "???"
  syn keyword mpVardef       arrowhead bbox bot buildcycle byte ceiling center
  syn keyword mpVardef       counterclockwise decr dir direction directionpoint
  syn keyword mpVardef       dotlabel dotlabels image incr interpath inverse
  syn keyword mpVardef       labels lft magstep max min penlabels penpos round
  syn keyword mpVardef       rt savepen solve tensepath thelabel top unitvector
  syn keyword mpVardef       whatever z
  syn keyword mpPrimaryDef   div dotprod gobbled mod
  syn keyword mpSecondaryDef intersectionpoint
  syn keyword mpTertiaryDef  cutafter cutbefore softjoin thru
  syn keyword mpNewInternal  ahangle ahlength bboxmargin beveled butt defaultpen
  syn keyword mpNewInternal  defaultscale dotlabeldiam eps epsilon infinity
  syn keyword mpNewInternal  join_radius labeloffset mitered pen_bot pen_lft
  syn keyword mpNewInternal  pen_rt pen_top rounded squared tolerance
  " Predefined constants
  syn keyword mpConstant     EOF background base_name base_version black
  syn keyword mpConstant     blankpicture blue ditto down evenly fullcircle
  syn keyword mpConstant     green halfcircle identity left origin penrazor
  syn keyword mpConstant     penspeck pensquare quartercircle red right
  syn keyword mpConstant     unitsquare up white withdots
  " Other predefined variables
  syn keyword mpVariable     currentpen currentpen_path currentpicture cuttings
  syn keyword mpVariable     defaultfont extra_beginfig extra_endfig
  syn match   mpVariable     /\<\%(laboff\|labxf\|labyf\)\>/
  syn match   mpVariable     /\<\%(laboff\|labxf\|labyf\)\.\%(lft\|rt\|bot\|top\|ulft\|urt\|llft\|lrt\)\>/
  " let statements:
  syn keyword mpnumExp       abs
  syn keyword mpDef          rotatedabout
  syn keyword mpCommand      bye relax
  " on and off are not technically keywords, but it is nice to highlight them
  " inside dashpattern().
  syn keyword mpOnOff        off on contained
  syn keyword mpDash         dashpattern contained
  syn region  mpDashPattern
        \ start="dashpattern\s*"
        \ end=")"he=e-1
        \ contains=mfNumeric,mfLength,mpOnOff,mpDash
endif

" Keywords defined by mfplain.mp
if get(g:, "mfplain_mp_macros", 0)
  syn keyword mpDef          beginchar capsule_def change_width
  syn keyword mpDef          define_blacker_pixels define_corrected_pixels
  syn keyword mpDef          define_good_x_pixels define_good_y_pixels
  syn keyword mpDef          define_horizontal_corrected_pixels define_pixels
  syn keyword mpDef          define_whole_blacker_pixels define_whole_pixels
  syn keyword mpDef          define_whole_vertical_blacker_pixels
  syn keyword mpDef          define_whole_vertical_pixels endchar
  syn keyword mpDef          font_coding_scheme font_extra_space font_identifier
  syn keyword mpDef          font_normal_shrink font_normal_space
  syn keyword mpDef          font_normal_stretch font_quad font_size font_slant
  syn keyword mpDef          font_x_height italcorr labelfont lowres_fix makebox
  syn keyword mpDef          makegrid maketicks mode_def mode_setup proofrule
  syn keyword mpDef          smode
  syn keyword mpVardef       hround proofrulethickness vround
  syn keyword mpNewInternal  blacker o_correction
  syn keyword mpVariable     extra_beginchar extra_endchar extra_setup rulepen
  " plus some no-ops, also from mfplain.mp
  syn keyword mpDef          cull cullit gfcorners imagerules nodisplays
  syn keyword mpDef          notransforms openit proofoffset screenchars
  syn keyword mpDef          screenrule screenstrokes showit
  syn keyword mpVardef       grayfont slantfont titlefont
  syn keyword mpVariable     currenttransform
  syn keyword mpConstant     unitpixel
  " These are not listed in the MetaPost manual, and some are ignored by
  " MetaPost, but are nonetheless defined in mfplain.mp
  syn keyword mpDef          killtext
  syn match   mpVardef       "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
  syn keyword mpVariable     aspect_ratio localfont mag mode mode_name
  syn keyword mpVariable     proofcolor
  syn keyword mpConstant     lowres proof smoke
  syn keyword mpNewInternal  autorounding bp_per_pixel granularity
  syn keyword mpNewInternal  number_of_modes proofing smoothing turningcheck
endif

" Keywords defined by all base macro packages:
" - (r)boxes.mp
" - format.mp
" - graph.mp
" - marith.mp
" - sarith.mp
" - string.mp
" - TEX.mp
if get(g:, "other_mp_macros", 1)
  " boxes and rboxes
  syn keyword mpDef          boxjoin drawboxed drawboxes drawunboxed
  syn keyword mpNewInternal  circmargin defaultdx defaultdy rbox_radius
  syn keyword mpVardef       boxit bpath circleit fixpos fixsize generic_declare
  syn keyword mpVardef       generic_redeclare generisize pic rboxit str_prefix
  " format
  syn keyword mpVardef       Mformat format init_numbers roundd
  syn keyword mpVariable     Fe_base Fe_plus
  syn keyword mpConstant     Ten_to
  " graph
  syn keyword mpDef          Gfor Gxyscale OUT auto begingraph endgraph gdata
  syn keyword mpDef          gdraw gdrawarrow gdrawdblarrow gfill plot
  syn keyword mpVardef       augment autogrid frame gdotlabel glabel grid itick
  syn keyword mpVardef       otick
  syn keyword mpVardef       Mreadpath setcoords setrange
  syn keyword mpNewInternal  Gmarks Gminlog Gpaths linear log
  syn keyword mpVariable     Autoform Gemarks Glmarks Gumarks
  syn keyword mpConstant     Gtemplate
  syn match   mpVariable     /Gmargin\.\%(low\|high\)/
  " marith
  syn keyword mpVardef       Mabs Meform Mexp Mexp_str Mlog Mlog_Str Mlog_str
  syn keyword mpPrimaryDef   Mdiv Mmul
  syn keyword mpSecondaryDef Madd Msub
  syn keyword mpTertiaryDef  Mleq
  syn keyword mpNewInternal  Mten Mzero
  " sarith
  syn keyword mpVardef       Sabs Scvnum
  syn keyword mpPrimaryDef   Sdiv Smul
  syn keyword mpSecondaryDef Sadd Ssub
  syn keyword mpTertiaryDef  Sleq Sneq
  " string
  syn keyword mpVardef       cspan isdigit loptok
  " TEX
  syn keyword mpVardef       TEX TEXPOST TEXPRE
endif

" Up to date as of 23-Sep-2016.
if get(b:, 'mp_metafun_macros', get(g:, 'mp_metafun_macros', 0))
  " Highlight TeX keywords (for use in ConTeXt documents)
  syn match   mpTeXKeyword  '\\[a-zA-Z@]\+'

  " These keywords have been added manually.
  syn keyword mpPrimitive runscript

  " The following MetaFun keywords have been extracted automatically from
  " ConTeXt source code. They include all "public" macros (where a macro is
  " considered public if and only if it does not start with _, mfun_, mlib_, or
  " do_, and it does not end with _), all "public" unsaved variables, and all
  " `let` statements.

  " mp-abck.mpiv
  syn keyword mpDef          abck_grid_line anchor_box box_found boxfilloptions
  syn keyword mpDef          boxgridoptions boxlineoptions draw_multi_pars
  syn keyword mpDef          draw_multi_side draw_multi_side_path freeze_box
  syn keyword mpDef          initialize_box initialize_box_pos
  syn keyword mpDef          multi_side_draw_options show_multi_kind
  syn keyword mpDef          show_multi_pars
  syn keyword mpVardef       abck_baseline_grid abck_draw_path abck_graphic_grid
  syn keyword mpVariable     boxdashtype boxfilloffset boxfilltype
  syn keyword mpVariable     boxgriddirection boxgriddistance boxgridshift
  syn keyword mpVariable     boxgridtype boxgridwidth boxlineoffset
  syn keyword mpVariable     boxlineradius boxlinetype boxlinewidth multikind
  syn keyword mpConstant     context_abck
  " mp-apos.mpiv
  syn keyword mpDef          anch_sidebars_draw boxfilloptions boxlineoptions
  syn keyword mpDef          connect_positions
  syn keyword mpConstant     context_apos
  " mp-asnc.mpiv
  syn keyword mpDef          FlushSyncTasks ProcessSyncTask ResetSyncTasks
  syn keyword mpDef          SetSyncColor SetSyncThreshold SyncTask
  syn keyword mpVardef       PrepareSyncTasks SyncBox TheSyncColor
  syn keyword mpVardef       TheSyncThreshold
  syn keyword mpVariable     CurrentSyncClass NOfSyncPaths SyncColor
  syn keyword mpVariable     SyncLeftOffset SyncPaths SyncTasks SyncThreshold
  syn keyword mpVariable     SyncThresholdMethod SyncWidth
  syn keyword mpConstant     context_asnc
  " mp-back.mpiv
  syn keyword mpDef          some_double_back some_hash
  syn keyword mpVariable     back_nillcolor
  syn keyword mpConstant     context_back
  " mp-bare.mpiv
  syn keyword mpVardef       colordecimals rawtextext
  syn keyword mpPrimaryDef   infont
  syn keyword mpConstant     context_bare
  " mp-base.mpiv
  " This is essentially plain.mp with only a few keywords added
  syn keyword mpNumExp       graypart
  syn keyword mpType         graycolor greycolor
  syn keyword mpConstant     cyan magenta yellow
  " mp-butt.mpiv
  syn keyword mpDef          predefinedbutton some_button
  syn keyword mpConstant     context_butt
  " mp-char.mpiv
  syn keyword mpDef          flow_begin_chart flow_begin_sub_chart
  syn keyword mpDef          flow_chart_draw_comment flow_chart_draw_exit
  syn keyword mpDef          flow_chart_draw_label flow_chart_draw_text
  syn keyword mpDef          flow_clip_chart flow_collapse_points
  syn keyword mpDef          flow_connect_bottom_bottom flow_connect_bottom_left
  syn keyword mpDef          flow_connect_bottom_right flow_connect_bottom_top
  syn keyword mpDef          flow_connect_left_bottom flow_connect_left_left
  syn keyword mpDef          flow_connect_left_right flow_connect_left_top
  syn keyword mpDef          flow_connect_right_bottom flow_connect_right_left
  syn keyword mpDef          flow_connect_right_right flow_connect_right_top
  syn keyword mpDef          flow_connect_top_bottom flow_connect_top_left
  syn keyword mpDef          flow_connect_top_right flow_connect_top_top
  syn keyword mpDef          flow_draw_connection flow_draw_connection_point
  syn keyword mpDef          flow_draw_midpoint flow_draw_shape
  syn keyword mpDef          flow_draw_test_area flow_draw_test_shape
  syn keyword mpDef          flow_draw_test_shapes flow_end_chart
  syn keyword mpDef          flow_end_sub_chart flow_flush_connections
  syn keyword mpDef          flow_flush_picture flow_flush_pictures
  syn keyword mpDef          flow_flush_shape flow_flush_shapes
  syn keyword mpDef          flow_initialize_grid flow_new_chart flow_new_shape
  syn keyword mpDef          flow_scaled_to_grid flow_show_connection
  syn keyword mpDef          flow_show_connections flow_show_shapes
  syn keyword mpDef          flow_xy_offset flow_y_pos
  syn keyword mpVardef       flow_connection_path flow_down_on_grid
  syn keyword mpVardef       flow_down_to_grid flow_i_point flow_left_on_grid
  syn keyword mpVardef       flow_left_to_grid flow_offset
  syn keyword mpVardef       flow_points_initialized flow_right_on_grid
  syn keyword mpVardef       flow_right_to_grid flow_smooth_connection
  syn keyword mpVardef       flow_trim_points flow_trimmed flow_up_on_grid
  syn keyword mpVardef       flow_up_to_grid flow_valid_connection
  syn keyword mpVardef       flow_x_on_grid flow_xy_bottom flow_xy_left
  syn keyword mpVardef       flow_xy_on_grid flow_xy_right flow_xy_top
  syn keyword mpVardef       flow_y_on_grid
  syn keyword mpVariable     flow_arrowtip flow_chart_background_color
  syn keyword mpVariable     flow_chart_offset flow_comment_offset
  syn keyword mpVariable     flow_connection_arrow_size
  syn keyword mpVariable     flow_connection_dash_size
  syn keyword mpVariable     flow_connection_line_color
  syn keyword mpVariable     flow_connection_line_width
  syn keyword mpVariable     flow_connection_smooth_size flow_connections
  syn keyword mpVariable     flow_cpath flow_dash_pattern flow_dashline
  syn keyword mpVariable     flow_exit_offset flow_forcevalid flow_grid_height
  syn keyword mpVariable     flow_grid_width flow_label_offset flow_max_x
  syn keyword mpVariable     flow_max_y flow_peepshape flow_reverse_connection
  syn keyword mpVariable     flow_reverse_y flow_shape_action flow_shape_archive
  syn keyword mpVariable     flow_shape_decision flow_shape_down
  syn keyword mpVariable     flow_shape_fill_color flow_shape_height
  syn keyword mpVariable     flow_shape_left flow_shape_line_color
  syn keyword mpVariable     flow_shape_line_width flow_shape_loop
  syn keyword mpVariable     flow_shape_multidocument flow_shape_node
  syn keyword mpVariable     flow_shape_procedure flow_shape_product
  syn keyword mpVariable     flow_shape_right flow_shape_singledocument
  syn keyword mpVariable     flow_shape_subprocedure flow_shape_up
  syn keyword mpVariable     flow_shape_wait flow_shape_width
  syn keyword mpVariable     flow_show_all_points flow_show_con_points
  syn keyword mpVariable     flow_show_mid_points flow_showcrossing flow_smooth
  syn keyword mpVariable     flow_touchshape flow_xypoint flow_zfactor
  syn keyword mpConstant     context_flow
  " mp-chem.mpiv
  syn keyword mpDef          chem_init_all chem_reset chem_start_structure
  syn keyword mpDef          chem_transformed
  syn keyword mpVardef       chem_ad chem_adj chem_align chem_arrow chem_au
  syn keyword mpVardef       chem_b chem_bb chem_bd chem_bw chem_c chem_cc
  syn keyword mpVardef       chem_ccd chem_cd chem_crz chem_cz chem_dash chem_db
  syn keyword mpVardef       chem_diff chem_dir chem_do chem_dr chem_draw
  syn keyword mpVardef       chem_drawarrow chem_eb chem_ed chem_ep chem_er
  syn keyword mpVardef       chem_es chem_et chem_fill chem_hb chem_init_some
  syn keyword mpVardef       chem_label chem_ldb chem_ldd chem_line chem_lr
  syn keyword mpVardef       chem_lrb chem_lrbd chem_lrd chem_lrh chem_lrn
  syn keyword mpVardef       chem_lrt chem_lrz chem_lsr chem_lsub chem_mark
  syn keyword mpVardef       chem_marked chem_mid chem_mids chem_midz chem_mir
  syn keyword mpVardef       chem_mov chem_move chem_number chem_oe chem_off
  syn keyword mpVardef       chem_pb chem_pe chem_r chem_r_fragment chem_rb
  syn keyword mpVardef       chem_rbd chem_rd chem_rdb chem_rdd chem_restore
  syn keyword mpVardef       chem_rh chem_rm chem_rn chem_rot chem_rr chem_rrb
  syn keyword mpVardef       chem_rrbd chem_rrd chem_rrh chem_rrn chem_rrt
  syn keyword mpVardef       chem_rrz chem_rsr chem_rsub chem_rt chem_rz chem_s
  syn keyword mpVardef       chem_save chem_sb chem_sd chem_set chem_sr chem_ss
  syn keyword mpVardef       chem_start_component chem_stop_component
  syn keyword mpVardef       chem_stop_structure chem_sub chem_symbol chem_tb
  syn keyword mpVardef       chem_text chem_z chem_zln chem_zlt chem_zn chem_zrn
  syn keyword mpVardef       chem_zrt chem_zt
  syn keyword mpVariable     chem_mark_pair chem_stack_mirror chem_stack_origin
  syn keyword mpVariable     chem_stack_p chem_stack_previous
  syn keyword mpVariable     chem_stack_rotation chem_trace_boundingbox
  syn keyword mpVariable     chem_trace_nesting chem_trace_text
  syn keyword mpConstant     context_chem
  " mp-core.mpiv
  syn keyword mpDef          FlushSyncTasks ProcessSyncTask
  syn keyword mpDef          RegisterLocalTextArea RegisterPlainTextArea
  syn keyword mpDef          RegisterRegionTextArea RegisterTextArea
  syn keyword mpDef          ResetLocalTextArea ResetSyncTasks ResetTextAreas
  syn keyword mpDef          SaveTextAreas SetSyncColor SetSyncThreshold
  syn keyword mpDef          SyncTask anchor_box box_found boxfilloptions
  syn keyword mpDef          boxgridoptions boxlineoptions collapse_multi_pars
  syn keyword mpDef          draw_box draw_multi_pars draw_par freeze_box
  syn keyword mpDef          initialize_area initialize_area_par initialize_box
  syn keyword mpDef          initialize_box_pos initialize_par
  syn keyword mpDef          prepare_multi_pars relocate_multipars save_multipar
  syn keyword mpDef          set_par_line_height show_multi_pars show_par
  syn keyword mpDef          simplify_multi_pars sort_multi_pars
  syn keyword mpVardef       InsideSavedTextArea InsideSomeSavedTextArea
  syn keyword mpVardef       InsideSomeTextArea InsideTextArea PrepareSyncTasks
  syn keyword mpVardef       SyncBox TextAreaH TextAreaW TextAreaWH TextAreaX
  syn keyword mpVardef       TextAreaXY TextAreaY TheSyncColor TheSyncThreshold
  syn keyword mpVardef       baseline_grid graphic_grid multi_par_at_top
  syn keyword mpVariable     CurrentSyncClass NOfSavedTextAreas
  syn keyword mpVariable     NOfSavedTextColumns NOfSyncPaths NOfTextAreas
  syn keyword mpVariable     NOfTextColumns PlainTextArea RegionTextArea
  syn keyword mpVariable     SavedTextColumns SyncColor SyncLeftOffset SyncPaths
  syn keyword mpVariable     SyncTasks SyncThreshold SyncThresholdMethod
  syn keyword mpVariable     SyncWidth TextAreas TextColumns
  syn keyword mpVariable     auto_multi_par_hsize boxdashtype boxfilloffset
  syn keyword mpVariable     boxfilltype boxgriddirection boxgriddistance
  syn keyword mpVariable     boxgridshift boxgridtype boxgridwidth boxlineradius
  syn keyword mpVariable     boxlinetype boxlinewidth check_multi_par_chain
  syn keyword mpVariable     compensate_multi_par_topskip
  syn keyword mpVariable     enable_multi_par_fallback force_multi_par_chain
  syn keyword mpVariable     ignore_multi_par_page last_multi_par_shift lefthang
  syn keyword mpVariable     local_multi_par_area multi_column_first_page_hack
  syn keyword mpVariable     multi_par_pages multiloc multilocs multipar
  syn keyword mpVariable     multipars multiref multirefs nofmultipars
  syn keyword mpVariable     obey_multi_par_hang obey_multi_par_more
  syn keyword mpVariable     one_piece_multi_par par_hang_after par_hang_indent
  syn keyword mpVariable     par_indent par_left_skip par_line_height
  syn keyword mpVariable     par_right_skip par_start_pos par_stop_pos
  syn keyword mpVariable     par_strut_depth par_strut_height ppos righthang
  syn keyword mpVariable     snap_multi_par_tops somehang span_multi_column_pars
  syn keyword mpVariable     use_multi_par_region
  syn keyword mpConstant     context_core
  syn keyword LET            anchor_area anchor_par draw_area
  " mp-cows.mpiv
  syn keyword mpConstant     context_cows cow
  " mp-crop.mpiv
  syn keyword mpDef          page_marks_add_color page_marks_add_lines
  syn keyword mpDef          page_marks_add_marking page_marks_add_number
  syn keyword mpVardef       crop_color crop_gray crop_marks_cmyk
  syn keyword mpVardef       crop_marks_cmykrgb crop_marks_gray crop_marks_lines
  syn keyword mpVariable     crop_colors more page
  syn keyword mpConstant     context_crop
  " mp-figs.mpiv
  syn keyword mpDef          naturalfigure registerfigure
  syn keyword mpVardef       figuredimensions figureheight figuresize
  syn keyword mpVardef       figurewidth
  syn keyword mpConstant     context_figs
  " mp-fobg.mpiv
  syn keyword mpDef          DrawFoFrame
  syn keyword mpVardef       equalpaths
  syn keyword mpPrimaryDef   inset outset
  syn keyword mpVariable     FoBackground FoBackgroundColor FoFrame FoLineColor
  syn keyword mpVariable     FoLineStyle FoLineWidth FoSplit
  syn keyword mpConstant     FoAll FoBottom FoDash FoDotted FoDouble FoGroove
  syn keyword mpConstant     FoHidden FoInset FoLeft FoMedium FoNoColor FoNone
  syn keyword mpConstant     FoOutset FoRidge FoRight FoSolid FoThick FoThin
  syn keyword mpConstant     FoTop context_fobg
  " mp-form.mpiv
  syn keyword mpConstant     context_form
  " mp-func.mpiv
  syn keyword mpDef          constructedfunction constructedpairs
  syn keyword mpDef          constructedpath curvedfunction curvedpairs
  syn keyword mpDef          curvedpath function pathconnectors straightfunction
  syn keyword mpDef          straightpairs straightpath
  syn keyword mpConstant     context_func
  " mp-grap.mpiv
  syn keyword mpDef          Gfor OUT auto begingraph circles crosses diamonds
  syn keyword mpDef          downtriangles endgraph gdata gdraw gdrawarrow
  syn keyword mpDef          gdrawdblarrow gfill graph_addto
  syn keyword mpDef          graph_addto_currentpicture graph_comma
  syn keyword mpDef          graph_coordinate_multiplication graph_draw
  syn keyword mpDef          graph_draw_label graph_errorbar_text graph_fill
  syn keyword mpDef          graph_generate_exponents
  syn keyword mpDef          graph_generate_label_position
  syn keyword mpDef          graph_generate_numbers graph_label_location
  syn keyword mpDef          graph_scan_mark graph_scan_marks graph_setbounds
  syn keyword mpDef          graph_suffix graph_tick_label
  syn keyword mpDef          graph_with_pen_and_color graph_withlist
  syn keyword mpDef          graph_xyscale lefttriangles makefunctionpath plot
  syn keyword mpDef          plotsymbol points rainbow righttriangles smoothpath
  syn keyword mpDef          squares stars uptriangles witherrorbars
  syn keyword mpVardef       addtopath augment autogrid constant_fit
  syn keyword mpVardef       constant_function det escaped_format exp
  syn keyword mpVardef       exponential_fit exponential_function format
  syn keyword mpVardef       formatted frame functionpath gaussian_fit
  syn keyword mpVardef       gaussian_function gdotlabel glabel graph_Feform
  syn keyword mpVardef       graph_Meform graph_arrowhead_extent graph_bounds
  syn keyword mpVardef       graph_clear_bounds
  syn keyword mpVardef       graph_convert_user_path_to_internal graph_cspan
  syn keyword mpVardef       graph_draw_arrowhead graph_error graph_errorbars
  syn keyword mpVardef       graph_exp graph_factor_and_exponent_to_string
  syn keyword mpVardef       graph_gridline_picture graph_is_null
  syn keyword mpVardef       graph_label_convert_user_to_internal graph_loptok
  syn keyword mpVardef       graph_match_exponents graph_mlog
  syn keyword mpVardef       graph_modified_exponent_ypart graph_pair_adjust
  syn keyword mpVardef       graph_picture_conversion graph_post_draw
  syn keyword mpVardef       graph_read_line graph_readpath graph_remap
  syn keyword mpVardef       graph_scan_path graph_select_exponent_mark
  syn keyword mpVardef       graph_select_mark graph_set_bounds
  syn keyword mpVardef       graph_set_default_bounds graph_shapesize
  syn keyword mpVardef       graph_stash_label graph_tick_mark_spacing
  syn keyword mpVardef       graph_unknown_pair_bbox grid isdigit itick
  syn keyword mpVardef       linear_fit linear_function ln logten lorentzian_fit
  syn keyword mpVardef       lorentzian_function otick polynomial_fit
  syn keyword mpVardef       polynomial_function power_law_fit
  syn keyword mpVardef       power_law_function powten setcoords setrange
  syn keyword mpVardef       sortpath strfmt tick varfmt
  syn keyword mpNewInternal  Mzero doubleinfinity graph_log_minimum
  syn keyword mpNewInternal  graph_minimum_number_of_marks largestmantissa
  syn keyword mpNewInternal  linear lntwo log mlogten singleinfinity
  syn keyword mpVariable     Autoform determinant fit_chi_squared
  syn keyword mpVariable     graph_errorbar_picture graph_exp_marks
  syn keyword mpVariable     graph_frame_pair_a graph_frame_pair_b
  syn keyword mpVariable     graph_lin_marks graph_log_marks graph_modified_bias
  syn keyword mpVariable     graph_modified_higher graph_modified_lower
  syn keyword mpVariable     graph_shape r_s resistance_color resistance_name
  syn keyword mpConstant     context_grap
  " mp-grid.mpiv
  syn keyword mpDef          hlingrid hloggrid vlingrid vloggrid
  syn keyword mpVardef       hlinlabel hlintext hlogtext linlin linlinpath
  syn keyword mpVardef       linlog linlogpath loglin loglinpath loglog
  syn keyword mpVardef       loglogpath processpath vlinlabel vlintext vlogtext
  syn keyword mpVariable     fmt_initialize fmt_pictures fmt_precision
  syn keyword mpVariable     fmt_separator fmt_zerocheck grid_eps
  syn keyword mpConstant     context_grid
  " mp-grph.mpiv
  syn keyword mpDef          beginfig begingraphictextfig data_mpo_file
  syn keyword mpDef          data_mpy_file doloadfigure draw endfig
  syn keyword mpDef          endgraphictextfig fill fixedplace graphictext
  syn keyword mpDef          loadfigure new_graphictext normalwithshade number
  syn keyword mpDef          old_graphictext outlinefill protectgraphicmacros
  syn keyword mpDef          resetfig reversefill withdrawcolor withfillcolor
  syn keyword mpDef          withshade
  syn keyword mpVariable     currentgraphictext figureshift
  syn keyword mpConstant     context_grph
  " mp-idea.mpiv
  syn keyword mpVardef       bcomponent ccomponent gcomponent mcomponent
  syn keyword mpVardef       rcomponent somecolor ycomponent
  " mp-luas.mpiv
  syn keyword mpDef          luacall message
  syn keyword mpVardef       MP lua lualist
  syn keyword mpConstant     context_luas
  " mp-mlib.mpiv
  syn keyword mpDef          autoalign bitmapimage circular_shade cmyk comment
  syn keyword mpDef          defineshade eofill eofillup externalfigure figure
  syn keyword mpDef          fillup label linear_shade multitonecolor namedcolor
  syn keyword mpDef          nofill onlayer passarrayvariable passvariable
  syn keyword mpDef          plain_label register resolvedcolor scantokens
  syn keyword mpDef          set_circular_vector set_linear_vector shaded
  syn keyword mpDef          spotcolor startpassingvariable stoppassingvariable
  syn keyword mpDef          thelabel transparent[] usemetafunlabels
  syn keyword mpDef          useplainlabels withcircularshade withlinearshade
  syn keyword mpDef          withmask withproperties withshadecenter
  syn keyword mpDef          withshadecolors withshadedirection withshadedomain
  syn keyword mpDef          withshadefactor withshadefraction withshadeorigin
  syn keyword mpDef          withshaderadius withshadestep withshadetransform
  syn keyword mpDef          withshadevector withtransparency
  syn keyword mpVardef       anchored checkbounds checkedbounds
  syn keyword mpVardef       define_circular_shade define_linear_shade dotlabel
  syn keyword mpVardef       escaped_format fmttext fontsize format formatted
  syn keyword mpVardef       installlabel onetimefmttext onetimetextext
  syn keyword mpVardef       outlinetext plain_thelabel properties rawfmttext
  syn keyword mpVardef       rawtexbox rawtextext rule strfmt strut texbox
  syn keyword mpVardef       textext thefmttext thelabel thetexbox thetextext
  syn keyword mpVardef       tostring transparency_alternative_to_number
  syn keyword mpVardef       validtexbox varfmt verbatim
  syn keyword mpPrimaryDef   asgroup infont normalinfont shadedinto
  syn keyword mpPrimaryDef   shownshadecenter shownshadedirection
  syn keyword mpPrimaryDef   shownshadeorigin shownshadevector withshade
  syn keyword mpPrimaryDef   withshademethod
  syn keyword mpNewInternal  colorburntransparent colordodgetransparent
  syn keyword mpNewInternal  colortransparent darkentransparent
  syn keyword mpNewInternal  differencetransparent exclusiontransparent
  syn keyword mpNewInternal  hardlighttransparent huetransparent
  syn keyword mpNewInternal  lightentransparent luminositytransparent
  syn keyword mpNewInternal  multiplytransparent normaltransparent
  syn keyword mpNewInternal  overlaytransparent saturationtransparent
  syn keyword mpNewInternal  screentransparent shadefactor softlighttransparent
  syn keyword mpNewInternal  textextoffset
  syn keyword mpType         property transparency
  syn keyword mpVariable     currentoutlinetext shadeddown shadedleft
  syn keyword mpVariable     shadedright shadedup shadeoffset trace_shades
  syn keyword mpConstant     context_mlib
  " mp-page.mpiv
  syn keyword mpDef          BoundCoverAreas BoundPageAreas Enlarged FakeRule
  syn keyword mpDef          FakeWord LoadPageState OverlayBox RuleColor
  syn keyword mpDef          SetAreaVariables SetPageArea SetPageBackPage
  syn keyword mpDef          SetPageCoverPage SetPageField SetPageFrontPage
  syn keyword mpDef          SetPageHsize SetPageHstep SetPageLocation
  syn keyword mpDef          SetPagePage SetPageSpine SetPageVariables
  syn keyword mpDef          SetPageVsize SetPageVstep StartCover StartPage
  syn keyword mpDef          StopCover StopPage SwapPageState innerenlarged
  syn keyword mpDef          llEnlarged lrEnlarged outerenlarged ulEnlarged
  syn keyword mpDef          urEnlarged
  syn keyword mpVardef       BackPageHeight BackPageWidth BackSpace BaseLineSkip
  syn keyword mpVardef       BodyFontSize BottomDistance BottomHeight
  syn keyword mpVardef       BottomSpace CoverHeight CoverWidth CurrentColumn
  syn keyword mpVardef       CurrentHeight CurrentWidth CutSpace EmWidth
  syn keyword mpVardef       ExHeight FooterDistance FooterHeight
  syn keyword mpVardef       FrontPageHeight FrontPageWidth HSize HeaderDistance
  syn keyword mpVardef       HeaderHeight InPageBody InnerEdgeDistance
  syn keyword mpVardef       InnerEdgeWidth InnerMarginDistance InnerMarginWidth
  syn keyword mpVardef       InnerSpaceWidth LastPageNumber LayoutColumnDistance
  syn keyword mpVardef       LayoutColumnWidth LayoutColumns LeftEdgeDistance
  syn keyword mpVardef       LeftEdgeWidth LeftMarginDistance LeftMarginWidth
  syn keyword mpVardef       LineHeight MakeupHeight MakeupWidth NOfColumns
  syn keyword mpVardef       NOfPages OnOddPage OnRightPage OuterEdgeDistance
  syn keyword mpVardef       OuterEdgeWidth OuterMarginDistance OuterMarginWidth
  syn keyword mpVardef       OuterSpaceWidth OverlayDepth OverlayHeight
  syn keyword mpVardef       OverlayLineWidth OverlayOffset OverlayWidth
  syn keyword mpVardef       PageDepth PageFraction PageNumber PageOffset
  syn keyword mpVardef       PaperBleed PaperHeight PaperWidth PrintPaperHeight
  syn keyword mpVardef       PrintPaperWidth RealPageNumber RightEdgeDistance
  syn keyword mpVardef       RightEdgeWidth RightMarginDistance RightMarginWidth
  syn keyword mpVardef       SpineHeight SpineWidth StrutDepth StrutHeight
  syn keyword mpVardef       TextHeight TextWidth TopDistance TopHeight TopSkip
  syn keyword mpVardef       TopSpace VSize defaultcolormodel
  syn keyword mpVariable     Area BackPage CoverPage CurrentLayout Field
  syn keyword mpVariable     FrontPage HorPos Hsize Hstep Location Page
  syn keyword mpVariable     PageStateAvailable RuleDepth RuleDirection
  syn keyword mpVariable     RuleFactor RuleH RuleHeight RuleOffset RuleOption
  syn keyword mpVariable     RuleThickness RuleV RuleWidth Spine VerPos Vsize
  syn keyword mpVariable     Vstep
  syn keyword mpConstant     context_page
  " mp-shap.mpiv
  syn keyword mpDef          drawline drawshape some_shape
  syn keyword mpDef          start_predefined_shape_definition
  syn keyword mpDef          stop_predefined_shape_definition
  syn keyword mpVardef       drawpredefinedline drawpredefinedshape
  syn keyword mpVardef       some_shape_path
  syn keyword mpVariable     predefined_shapes predefined_shapes_xradius
  syn keyword mpVariable     predefined_shapes_xxradius
  syn keyword mpVariable     predefined_shapes_yradius
  syn keyword mpVariable     predefined_shapes_yyradius
  syn keyword mpConstant     context_shap
  " mp-step.mpiv
  syn keyword mpDef          initialize_step_variables midbottomboundary
  syn keyword mpDef          midtopboundary step_begin_cell step_begin_chart
  syn keyword mpDef          step_cell_ali step_cell_bot step_cell_top
  syn keyword mpDef          step_cells step_end_cell step_end_chart
  syn keyword mpDef          step_text_bot step_text_mid step_text_top
  syn keyword mpDef          step_texts
  syn keyword mpVariable     cell_distance_x cell_distance_y cell_fill_color
  syn keyword mpVariable     cell_line_color cell_line_width cell_offset
  syn keyword mpVariable     chart_align chart_category chart_vertical
  syn keyword mpVariable     line_distance line_height line_line_color
  syn keyword mpVariable     line_line_width line_offset nofcells
  syn keyword mpVariable     text_distance_set text_fill_color text_line_color
  syn keyword mpVariable     text_line_width text_offset
  syn keyword mpConstant     context_cell
  " mp-symb.mpiv
  syn keyword mpDef          finishglyph prepareglyph
  syn keyword mpConstant     lefttriangle midbar onebar righttriangle sidebar
  syn keyword mpConstant     sublefttriangle subrighttriangle twobar
  " mp-text.mpiv
  syn keyword mpDef          build_parshape
  syn keyword mpVardef       found_point
  syn keyword mpVariable     trace_parshape
  syn keyword mpConstant     context_text
  " mp-tool.mpiv
  syn keyword mpCommand      dump
  syn keyword mpDef          addbackground b_color beginglyph break centerarrow
  syn keyword mpDef          clearxy condition data_mpd_file detaileddraw
  syn keyword mpDef          detailpaths dowithpath draw drawboundary
  syn keyword mpDef          drawboundingbox drawcontrollines drawcontrolpoints
  syn keyword mpDef          drawfill draworigin drawpath drawpathonly
  syn keyword mpDef          drawpathwithpoints drawpoint drawpointlabels
  syn keyword mpDef          drawpoints drawticks drawwholepath drawxticks
  syn keyword mpDef          drawyticks endglyph fill finishsavingdata g_color
  syn keyword mpDef          inner_boundingbox job_name leftarrow loadmodule
  syn keyword mpDef          midarrowhead naturalizepaths newboolean newcolor
  syn keyword mpDef          newnumeric newpair newpath newpicture newstring
  syn keyword mpDef          newtransform normalcolors normaldraw normalfill
  syn keyword mpDef          normalwithcolor outer_boundingbox pop_boundingbox
  syn keyword mpDef          popboundingbox popcurrentpicture push_boundingbox
  syn keyword mpDef          pushboundingbox pushcurrentpicture r_color readfile
  syn keyword mpDef          recolor redraw refill register_dirty_chars
  syn keyword mpDef          remapcolor remapcolors remappedcolor reprocess
  syn keyword mpDef          resetarrows resetcolormap resetdrawoptions
  syn keyword mpDef          resolvedcolor restroke retext rightarrow savedata
  syn keyword mpDef          saveoptions scale_currentpicture set_ahlength
  syn keyword mpDef          set_grid showgrid startplaincompatibility
  syn keyword mpDef          startsavingdata stopplaincompatibility
  syn keyword mpDef          stopsavingdata stripe_path_a stripe_path_n undashed
  syn keyword mpDef          undrawfill untext visualizeddraw visualizedfill
  syn keyword mpDef          visualizepaths withcolor withgray
  syn keyword mpDef          xscale_currentpicture xshifted
  syn keyword mpDef          xyscale_currentpicture yscale_currentpicture
  syn keyword mpDef          yshifted
  syn keyword mpVardef       acos acosh anglebetween area arrowhead
  syn keyword mpVardef       arrowheadonpath arrowpath asciistring asin asinh
  syn keyword mpVardef       atan basiccolors bbheight bbwidth bcomponent
  syn keyword mpVardef       blackcolor bottomboundary boundingbox c_phantom
  syn keyword mpVardef       ccomponent center cleanstring colorcircle
  syn keyword mpVardef       colordecimals colordecimalslist colorlike colorpart
  syn keyword mpVardef       colortype complementary complemented copylist cos
  syn keyword mpVardef       cosh cot cotd curved ddddecimal dddecimal ddecimal
  syn keyword mpVardef       decorated drawarrowpath epsed exp freedotlabel
  syn keyword mpVardef       freelabel gcomponent getunstringed grayed greyed
  syn keyword mpVardef       hsvtorgb infinite innerboundingbox interpolated inv
  syn keyword mpVardef       invcos inverted invsin invtan laddered leftboundary
  syn keyword mpVardef       leftpath leftrightpath listsize listtocurves
  syn keyword mpVardef       listtolines ln log mcomponent new_on_grid
  syn keyword mpVardef       outerboundingbox paired pen_size penpoint phantom
  syn keyword mpVardef       pointarrow pow punked rangepath rcomponent
  syn keyword mpVardef       redecorated repathed rightboundary rightpath
  syn keyword mpVardef       rotation roundedsquare set_inner_boundingbox
  syn keyword mpVardef       set_outer_boundingbox setunstringed shapedlist
  syn keyword mpVardef       simplified sin sinh sortlist sqr straightpath tan
  syn keyword mpVardef       tand tanh tensecircle thefreelabel topboundary
  syn keyword mpVardef       tripled undecorated unitvector unspiked unstringed
  syn keyword mpVardef       whitecolor ycomponent
  syn keyword mpPrimaryDef   along blownup bottomenlarged cornered crossed
  syn keyword mpPrimaryDef   enlarged enlonged leftenlarged llenlarged llmoved
  syn keyword mpPrimaryDef   lrenlarged lrmoved on paralleled randomized
  syn keyword mpPrimaryDef   randomizedcontrols randomshifted rightenlarged
  syn keyword mpPrimaryDef   shortened sized smoothed snapped softened squeezed
  syn keyword mpPrimaryDef   stretched superellipsed topenlarged ulenlarged
  syn keyword mpPrimaryDef   ulmoved uncolored urenlarged urmoved xsized
  syn keyword mpPrimaryDef   xstretched xyscaled xysized ysized ystretched zmod
  syn keyword mpSecondaryDef anglestriped intersection_point numberstriped
  syn keyword mpSecondaryDef peepholed
  syn keyword mpTertiaryDef  cutends
  syn keyword mpNewInternal  ahdimple ahvariant anglelength anglemethod
  syn keyword mpNewInternal  angleoffset charscale cmykcolormodel graycolormodel
  syn keyword mpNewInternal  greycolormodel maxdimensions metapostversion
  syn keyword mpNewInternal  nocolormodel rgbcolormodel striped_normal_inner
  syn keyword mpNewInternal  striped_normal_outer striped_reverse_inner
  syn keyword mpNewInternal  striped_reverse_outer
  syn keyword mpType         grayscale greyscale quadruplet triplet
  syn keyword mpVariable     ahfactor collapse_data color_map drawoptionsfactor
  syn keyword mpVariable     freedotlabelsize freelabeloffset grid grid_full
  syn keyword mpVariable     grid_h grid_left grid_nx grid_ny grid_w grid_x
  syn keyword mpVariable     grid_y intersection_found originlength
  syn keyword mpVariable     plain_compatibility_data pointlabelfont
  syn keyword mpVariable     pointlabelscale refillbackground savingdata
  syn keyword mpVariable     savingdatadone swappointlabels ticklength tickstep
  syn keyword mpConstant     CRLF DQUOTE PERCENT SPACE bcircle context_tool crlf
  syn keyword mpConstant     darkblue darkcyan darkgray darkgreen darkmagenta
  syn keyword mpConstant     darkred darkyellow downtriangle dquote freesquare
  syn keyword mpConstant     fulldiamond fullsquare fulltriangle lcircle
  syn keyword mpConstant     lefttriangle lightgray llcircle lltriangle lrcircle
  syn keyword mpConstant     lrtriangle mpversion nocolor noline oddly
  syn keyword mpConstant     originpath percent rcircle righttriangle space
  syn keyword mpConstant     tcircle triangle ulcircle ultriangle unitcircle
  syn keyword mpConstant     unitdiamond unittriangle uptriangle urcircle
  syn keyword mpConstant     urtriangle
endif " MetaFun macros

" Define the default highlighting
hi def link mpTeXdelim     mpPrimitive
hi def link mpBoolExp      mfBoolExp
hi def link mpNumExp       mfNumExp
hi def link mpPairExp      mfPairExp
hi def link mpPathExp      mfPathExp
hi def link mpPenExp       mfPenExp
hi def link mpPicExp       mfPicExp
hi def link mpStringExp    mfStringExp
hi def link mpInternal     mfInternal
hi def link mpCommand      mfCommand
hi def link mpType         mfType
hi def link mpPrimitive    mfPrimitive
hi def link mpDef          mfDef
hi def link mpVardef       mpDef
hi def link mpPrimaryDef   mpDef
hi def link mpSecondaryDef mpDef
hi def link mpTertiaryDef  mpDef
hi def link mpNewInternal  mpInternal
hi def link mpVariable     mfVariable
hi def link mpConstant     mfConstant
hi def link mpOnOff        mpPrimitive
hi def link mpDash         mpPrimitive
hi def link mpTeXKeyword   Identifier

let b:current_syntax = "mp"

let &cpo = s:cpo_sav
unlet! s:cpo_sav

" vim:sw=2
PK�j�Zt�"��vim80/syntax/verilogams.vimnu�[���" Vim syntax file
" Language:    Verilog-AMS
" Maintainer:  S. Myles Prather <smprather@gmail.com>
"
" Version 1.1  S. Myles Prather <smprather@gmail.com>
"              Moved some keywords to the type category.
"              Added the metrix suffixes to the number matcher.
" Version 1.2  Prasanna Tamhankar <pratam@gmail.com>
"              Minor reserved keyword updates.
" Last Update: Thursday September 15 15:36:03 CST 2005 

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

" Set the local value of the 'iskeyword' option
setlocal iskeyword=@,48-57,_,192-255

" Annex B.1 'All keywords'
syn keyword verilogamsStatement above abs absdelay acos acosh ac_stim
syn keyword verilogamsStatement always analog analysis and asin
syn keyword verilogamsStatement asinh assign atan atan2 atanh
syn keyword verilogamsStatement buf bufif0 bufif1 ceil cmos connectmodule
syn keyword verilogamsStatement connectrules cos cosh cross ddt ddx deassign
syn keyword verilogamsStatement defparam disable discipline
syn keyword verilogamsStatement driver_update edge enddiscipline
syn keyword verilogamsStatement endconnectrules endmodule endfunction endgenerate
syn keyword verilogamsStatement endnature endparamset endprimitive endspecify
syn keyword verilogamsStatement endtable endtask event exp final_step
syn keyword verilogamsStatement flicker_noise floor flow force fork
syn keyword verilogamsStatement function generate highz0
syn keyword verilogamsStatement highz1 hypot idt idtmod if ifnone inf initial
syn keyword verilogamsStatement initial_step inout input join
syn keyword verilogamsStatement laplace_nd laplace_np laplace_zd laplace_zp
syn keyword verilogamsStatement large last_crossing limexp ln localparam log
syn keyword verilogamsStatement macromodule max medium min module nand nature
syn keyword verilogamsStatement negedge net_resolution nmos noise_table nor not
syn keyword verilogamsStatement notif0 notif1 or output paramset pmos
syn keyword verilogamsType      parameter real integer electrical input output
syn keyword verilogamsType      inout reg tri tri0 tri1 triand trior trireg
syn keyword verilogamsType      string from exclude aliasparam ground genvar
syn keyword verilogamsType      branch time realtime
syn keyword verilogamsStatement posedge potential pow primitive pull0 pull1
syn keyword verilogamsStatement pullup pulldown rcmos release
syn keyword verilogamsStatement rnmos rpmos rtran rtranif0 rtranif1
syn keyword verilogamsStatement scalared sin sinh slew small specify specparam
syn keyword verilogamsStatement sqrt strong0 strong1 supply0 supply1
syn keyword verilogamsStatement table tan tanh task timer tran tranif0
syn keyword verilogamsStatement tranif1 transition
syn keyword verilogamsStatement vectored wait wand weak0 weak1
syn keyword verilogamsStatement white_noise wire wor wreal xnor xor zi_nd
syn keyword verilogamsStatement zi_np zi_zd zi_zp
syn keyword verilogamsRepeat    forever repeat while for
syn keyword verilogamsLabel     begin end
syn keyword verilogamsConditional if else case casex casez default endcase
syn match   verilogamsConstant  ":inf"lc=1
syn match   verilogamsConstant  "-inf"lc=1
" Annex B.2 Discipline/nature
syn keyword verilogamsStatement abstol access continuous ddt_nature discrete
syn keyword verilogamsStatement domain idt_nature units 
" Annex B.3 Connect Rules
syn keyword verilogamsStatement connect merged resolveto split

syn match   verilogamsOperator  "[&|~><!)(*#%@+/=?:;}{,.\^\-\[\]]"
syn match   verilogamsOperator  "<+"
syn match   verilogamsStatement "[vV]("me=e-1
syn match   verilogamsStatement "[iI]("me=e-1

syn keyword verilogamsTodo contained TODO
syn region  verilogamsComment start="/\*" end="\*/" contains=verilogamsTodo
syn match   verilogamsComment "//.*" contains=verilogamsTodo

syn match verilogamsGlobal "`celldefine"
syn match verilogamsGlobal "`default_nettype"
syn match verilogamsGlobal "`define"
syn match verilogamsGlobal "`else"
syn match verilogamsGlobal "`elsif"
syn match verilogamsGlobal "`endcelldefine"
syn match verilogamsGlobal "`endif"
syn match verilogamsGlobal "`ifdef"
syn match verilogamsGlobal "`ifndef"
syn match verilogamsGlobal "`include"
syn match verilogamsGlobal "`line"
syn match verilogamsGlobal "`nounconnected_drive"
syn match verilogamsGlobal "`resetall"
syn match verilogamsGlobal "`timescale"
syn match verilogamsGlobal "`unconnected_drive"
syn match verilogamsGlobal "`undef"
syn match verilogamsSystask "$[a-zA-Z0-9_]\+\>"

syn match verilogamsConstant "\<[A-Z][A-Z0-9_]\+\>"

syn match   verilogamsNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
syn match   verilogamsNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
syn match   verilogamsNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
syn match   verilogamsNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
syn match   verilogamsNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)[TGMKkmunpfa]\=\>"

syn region  verilogamsString start=+"+ skip=+\\"+ end=+"+ contains=verilogamsEscape
syn match   verilogamsEscape +\\[nt"\\]+ contained
syn match   verilogamsEscape "\\\o\o\=\o\=" contained

"Modify the following as needed.  The trade-off is performance versus
"functionality.
syn sync lines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link verilogamsCharacter    Character
hi def link verilogamsConditional  Conditional
hi def link verilogamsRepeat       Repeat
hi def link verilogamsString       String
hi def link verilogamsTodo         Todo
hi def link verilogamsComment      Comment
hi def link verilogamsConstant     Constant
hi def link verilogamsLabel        Label
hi def link verilogamsNumber       Number
hi def link verilogamsOperator     Special
hi def link verilogamsStatement    Statement
hi def link verilogamsGlobal       Define
hi def link verilogamsDirective    SpecialComment
hi def link verilogamsEscape       Special
hi def link verilogamsType         Type
hi def link verilogamsSystask      Function


let b:current_syntax = "verilogams"

" vim: ts=8
PK�j�Z4����vim80/syntax/fetchmail.vimnu�[���" Vim syntax file
" Language:             fetchmail(1) RC File
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword fetchmailTodo       contained FIXME TODO XXX NOTE

syn region  fetchmailComment    start='#' end='$' contains=fetchmailTodo,@Spell

syn match   fetchmailNumber     display '\<\d\+\>'

syn region  fetchmailString     start=+"+ skip=+\\\\\|\\"+ end=+"+
                                \ contains=fetchmailStringEsc
syn region  fetchmailString     start=+'+ skip=+\\\\\|\\'+ end=+'+
                                \ contains=fetchmailStringEsc

syn match   fetchmailStringEsc  contained '\\\([ntb]\|0\d*\|x\x\+\)'

syn region  fetchmailKeyword    transparent matchgroup=fetchmailKeyword
                                \ start='\<poll\|skip\|defaults\>'
                                \ end='\<poll\|skip\|defaults\>'
                                \ contains=ALLBUT,fetchmailOptions,fetchmailSet

syn keyword fetchmailServerOpts contained via proto[col] local[domains] port
                                \ auth[enticate] timeout envelope qvirtual aka
                                \ interface monitor plugin plugout dns
                                \ checkalias uidl interval netsec principal
                                \ esmtpname esmtppassword
                                \ sslcertck sslcertpath sslfingerprint
syn match   fetchmailServerOpts contained '\<no\_s\+\(envelope\|dns\|checkalias\|uidl\)'

syn keyword fetchmailUserOpts   contained user[name] is to pass[word] ssl
                                \ sslcert sslkey sslproto folder smtphost
                                \ fetchdomains smtpaddress smtpname antispam
                                \ mda bsmtp preconnect postconnect keep flush
                                \ fetchall rewrite stripcr forcecr pass8bits
                                \ dropstatus dropdelivered mimedecode idle
                                \ limit warnings batchlimit fetchlimit expunge
                                \ tracepolls properties
syn match   fetchmailUserOpts   contained '\<no\_s\+\(keep\|flush\|fetchall\|rewrite\|stripcr\|forcecr\|pass8bits\|dropstatus\|dropdelivered\|mimedecode\|noidle\)'

syn keyword fetchmailSpecial    contained here there

syn keyword fetchmailNoise      and with has wants options
syn match   fetchmailNoise      display '[:;,]'

syn keyword fetchmailSet        nextgroup=fetchmailOptions skipwhite skipnl set

syn keyword fetchmailOptions    daemon postmaster bouncemail spambounce logfile
                                \ idfile syslog nosyslog properties
syn match   fetchmailOptions    '\<no\_s\+\(bouncemail\|spambounce\)'

hi def link fetchmailComment    Comment
hi def link fetchmailTodo       Todo
hi def link fetchmailNumber     Number
hi def link fetchmailString     String
hi def link fetchmailStringEsc  SpecialChar
hi def link fetchmailKeyword    Keyword
hi def link fetchmailServerOpts Identifier
hi def link fetchmailUserOpts   Identifier
hi def link fetchmailSpecial    Special
hi def link fetchmailSet        Keyword
hi def link fetchmailOptions    Identifier

let b:current_syntax = "fetchmail"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�j��++vim80/syntax/aspperl.vimnu�[���" Vim syntax file
" Language:	Active State's PerlScript (ASP)
" Maintainer:	Aaron Hope <edh@brioforge.com>
" URL:		http://nim.dhs.org/~edh/aspperl.vim
" Last Change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'perlscript'
endif

runtime! syntax/html.vim
unlet b:current_syntax
syn include @AspPerlScript syntax/perl.vim

syn cluster htmlPreproc add=AspPerlScriptInsideHtmlTags

syn region  AspPerlScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ skip=+".*%>.*"+ end=+%>+ contains=@AspPerlScript
syn region  AspPerlScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<script\s\+language="\=perlscript"\=[^>]*>+ end=+</script>+ contains=@AspPerlScript

let b:current_syntax = "aspperl"
PK�j�Z�D�j!j!vim80/syntax/quake.vimnu�[���" Vim syntax file
" Language:             Quake[1-3] configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-17
"               quake_is_quake1 - the syntax is to be used for quake1 configs
"               quake_is_quake2 - the syntax is to be used for quake2 configs
"               quake_is_quake3 - the syntax is to be used for quake3 configs
" Credits:              Tomasz Kalkosinski wrote the original quake3Colors stuff

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-,+

syn keyword quakeTodo         contained TODO FIXME XXX NOTE

syn region  quakeComment      display oneline start='//' end='$' end=';'
                              \ keepend contains=quakeTodo,@Spell

syn region  quakeString       display oneline start=+"+ skip=+\\\\\|\\"+
                              \ end=+"\|$+ contains=quakeNumbers,
                              \ @quakeCommands,@quake3Colors

syn case ignore

syn match quakeNumbers        display transparent '\<-\=\d\|\.\d'
                              \ contains=quakeNumber,quakeFloat,
                              \ quakeOctalError,quakeOctal
syn match quakeNumber         contained display '\d\+\>'
syn match quakeFloat          contained display '\d\+\.\d*'
syn match quakeFloat          contained display '\.\d\+\>'

if exists("quake_is_quake1") || exists("quake_is_quake2")
  syn match quakeOctal        contained display '0\o\+\>'
                              \ contains=quakeOctalZero
  syn match quakeOctalZero    contained display '\<0'
  syn match quakeOctalError   contained display '0\o*[89]\d*'
endif

syn cluster quakeCommands     contains=quakeCommand,quake1Command,
                              \ quake12Command,Quake2Command,Quake23Command,
                              \ Quake3Command

syn keyword quakeCommand      +attack +back +forward +left +lookdown +lookup
syn keyword quakeCommand      +mlook +movedown +moveleft +moveright +moveup
syn keyword quakeCommand      +right +speed +strafe -attack -back bind
syn keyword quakeCommand      bindlist centerview clear connect cvarlist dir
syn keyword quakeCommand      disconnect dumpuser echo error exec -forward
syn keyword quakeCommand      god heartbeat joy_advancedupdate kick kill
syn keyword quakeCommand      killserver -left -lookdown -lookup map
syn keyword quakeCommand      messagemode messagemode2 -mlook modellist
syn keyword quakeCommand      -movedown -moveleft -moveright -moveup play
syn keyword quakeCommand      quit rcon reconnect record -right say say_team
syn keyword quakeCommand      screenshot serverinfo serverrecord serverstop
syn keyword quakeCommand      set sizedown sizeup snd_restart soundinfo
syn keyword quakeCommand      soundlist -speed spmap status -strafe stopsound
syn keyword quakeCommand      toggleconsole unbind unbindall userinfo pause
syn keyword quakeCommand      vid_restart viewpos wait weapnext weapprev

if exists("quake_is_quake1")
  syn keyword quake1Command   sv
endif

if exists("quake_is_quake1") || exists("quake_is_quake2")
  syn keyword quake12Command  +klook alias cd impulse link load save
  syn keyword quake12Command  timerefresh changing info loading
  syn keyword quake12Command  pingservers playerlist players score
endif

if exists("quake_is_quake2")
  syn keyword quake2Command   cmd demomap +use condump download drop gamemap
  syn keyword quake2Command   give gun_model setmaster sky sv_maplist wave
  syn keyword quake2Command   cmdlist gameversiona gun_next gun_prev invdrop
  syn keyword quake2Command   inven invnext invnextp invnextw invprev
  syn keyword quake2Command   invprevp invprevw invuse menu_addressbook
  syn keyword quake2Command   menu_credits menu_dmoptions menu_game
  syn keyword quake2Command   menu_joinserver menu_keys menu_loadgame
  syn keyword quake2Command   menu_main menu_multiplayer menu_options
  syn keyword quake2Command   menu_playerconfig menu_quit menu_savegame
  syn keyword quake2Command   menu_startserver menu_video
  syn keyword quake2Command   notarget precache prog togglechat vid_front
  syn keyword quake2Command   weaplast
endif

if exists("quake_is_quake2") || exists("quake_is_quake3")
  syn keyword quake23Command  imagelist modellist path z_stats
endif

if exists("quake_is_quake3")
  syn keyword quake3Command   +info +scores +zoom addbot arena banClient
  syn keyword quake3Command   banUser callteamvote callvote changeVectors
  syn keyword quake3Command   cinematic clientinfo clientkick cmd cmdlist
  syn keyword quake3Command   condump configstrings crash cvar_restart devmap
  syn keyword quake3Command   fdir follow freeze fs_openedList Fs_pureList
  syn keyword quake3Command   Fs_referencedList gfxinfo globalservers
  syn keyword quake3Command   hunk_stats in_restart -info levelshot
  syn keyword quake3Command   loaddeferred localservers map_restart mem_info
  syn keyword quake3Command   messagemode3 messagemode4 midiinfo model music
  syn keyword quake3Command   modelist net_restart nextframe nextskin noclip
  syn keyword quake3Command   notarget ping prevframe prevskin reset restart
  syn keyword quake3Command   s_disable_a3d s_enable_a3d s_info s_list s_stop
  syn keyword quake3Command   scanservers -scores screenshotJPEG sectorlist
  syn keyword quake3Command   serverstatus seta setenv sets setu setviewpos
  syn keyword quake3Command   shaderlist showip skinlist spdevmap startOribt
  syn keyword quake3Command   stats stopdemo stoprecord systeminfo togglemenu
  syn keyword quake3Command   tcmd team teamtask teamvote tell tell_attacker
  syn keyword quake3Command   tell_target testgun testmodel testshader toggle
  syn keyword quake3Command   touchFile vminfo vmprofile vmtest vosay
  syn keyword quake3Command   vosay_team vote votell vsay vsay_team vstr
  syn keyword quake3Command   vtaunt vtell vtell_attacker vtell_target weapon
  syn keyword quake3Command   writeconfig -zoom
  syn match   quake3Command   display "\<[+-]button\(\d\|1[0-4]\)\>"
endif

if exists("quake_is_quake3")
  syn cluster quake3Colors    contains=quake3Red,quake3Green,quake3Yellow,
                              \ quake3Blue,quake3Cyan,quake3Purple,quake3White,
                              \ quake3Orange,quake3Grey,quake3Black,quake3Shadow

  syn region quake3Red        contained start=+\^1+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Green      contained start=+\^2+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Yellow     contained start=+\^3+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Blue       contained start=+\^4+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Cyan       contained start=+\^5+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Purple     contained start=+\^6+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3White      contained start=+\^7+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Orange     contained start=+\^8+hs=e+1 end=+[$^\"\n]+he=e-1
  syn region quake3Grey       contained start=+\^9+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Black      contained start=+\^0+hs=e+1 end=+[$^"\n]+he=e-1
  syn region quake3Shadow     contained start=+\^[Xx]+hs=e+1 end=+[$^"\n]+he=e-1
endif

hi def link quakeComment      Comment
hi def link quakeTodo         Todo
hi def link quakeString       String
hi def link quakeNumber       Number
hi def link quakeOctal        Number
hi def link quakeOctalZero    PreProc
hi def link quakeFloat        Number
hi def link quakeOctalError   Error
hi def link quakeCommand      quakeCommands
hi def link quake1Command     quakeCommands
hi def link quake12Command    quakeCommands
hi def link quake2Command     quakeCommands
hi def link quake23Command    quakeCommands
hi def link quake3Command     quakeCommands
hi def link quakeCommands     Keyword

if exists("quake_is_quake3")
  hi quake3Red                ctermfg=Red         guifg=Red
  hi quake3Green              ctermfg=Green       guifg=Green
  hi quake3Yellow             ctermfg=Yellow      guifg=Yellow
  hi quake3Blue               ctermfg=Blue        guifg=Blue
  hi quake3Cyan               ctermfg=Cyan        guifg=Cyan
  hi quake3Purple             ctermfg=DarkMagenta guifg=Purple
  hi quake3White              ctermfg=White       guifg=White
  hi quake3Black              ctermfg=Black       guifg=Black
  hi quake3Orange             ctermfg=Brown       guifg=Orange
  hi quake3Grey               ctermfg=LightGrey   guifg=LightGrey
  hi quake3Shadow             cterm=underline     gui=underline
endif

let b:current_syntax = "quake"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�R���vim80/syntax/rnc.vimnu�[���" Vim syntax file
" Language:             Relax NG compact syntax
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-17

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-,.

syn keyword rncTodo         contained TODO FIXME XXX NOTE

syn region  rncComment      display oneline start='^\s*#' end='$'
                            \ contains=rncTodo,@Spell

syn match   rncOperator     display '[-|,&+?*~]'
syn match   rncOperator     display '\%(|&\)\=='
syn match   rncOperator     display '>>'

syn match   rncNamespace    display '\<\k\+:'

syn match   rncQuoted       display '\\\k\+\>'

syn match   rncSpecial      display '\\x{\x\+}'

syn region rncAnnotation    transparent start='\[' end='\]'
                            \ contains=ALLBUT,rncComment,rncTodo

syn region  rncLiteral      display oneline start=+"+ end=+"+
                            \ contains=rncSpecial
syn region  rncLiteral      display oneline start=+'+ end=+'+
syn region  rncLiteral      display oneline start=+"""+ end=+"""+
                            \ contains=rncSpecial
syn region  rncLiteral      display oneline start=+'''+ end=+'''+

syn match   rncDelimiter    display '[{},()]'

syn keyword rncKeyword      datatypes default div empty external grammar
syn keyword rncKeyword      include inherit list mixed name namespace
syn keyword rncKeyword      notAllowed parent start string text token

syn match   rncIdentifier   display '\k\+\_s*\%(=\|&=\||=\)\@='
                            \ nextgroup=rncOperator
syn keyword rncKeyword      element attribute
                            \ nextgroup=rncIdName skipwhite skipempty
syn match   rncIdName       contained '\k\+'

hi def link rncTodo         Todo
hi def link rncComment      Comment
hi def link rncOperator     Operator
hi def link rncNamespace    Identifier
hi def link rncQuoted       Special
hi def link rncSpecial      SpecialChar
hi def link rncAnnotation   Special
hi def link rncLiteral      String
hi def link rncDelimiter    Delimiter
hi def link rncKeyword      Keyword
hi def link rncIdentifier   Identifier
hi def link rncIdName       Identifier

let b:current_syntax = "rnc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zy��qy y vim80/syntax/htmlos.vimnu�[���" Vim syntax file
" Language:	HTML/OS by Aestiva
" Maintainer:	Jason Rust <jrust@westmont.edu>
" URL:		http://www.rustyparts.com/vim/syntax/htmlos.vim
" Info:		http://www.rustyparts.com/scripts.php
" Last Change:	2003 May 11
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'htmlos'
endif

runtime! syntax/html.vim
unlet b:current_syntax

syn cluster htmlPreproc add=htmlosRegion

syn case ignore

" Function names
syn keyword	htmlosFunctions	expand sleep getlink version system ascii getascii syslock sysunlock cr lf clean postprep listtorow split listtocol coltolist rowtolist tabletolist	contained
syn keyword	htmlosFunctions	cut \display cutall cutx cutallx length reverse lower upper proper repeat left right middle trim trimleft trimright count countx locate locatex replace replacex replaceall replaceallx paste pasteleft pasteleftx pasteleftall pasteleftallx pasteright pasterightall pasterightallx chopleft chopleftx chopright choprightx format concat	contained
syn keyword	htmlosFunctions	goto exitgoto	contained
syn keyword	htmlosFunctions	layout cols rows row items getitem putitem switchitems gettable delrow delrows delcol delcols append  merge fillcol fillrow filltable pastetable getcol getrow fillindexcol insindexcol dups nodups maxtable mintable maxcol mincol maxrow minrow avetable avecol averow mediantable mediancol medianrow producttable productcol productrow sumtable sumcol sumrow sumsqrtable sumsqrcol sumsqrrow reversecols reverserows switchcols switchrows inscols insrows insfillcol sortcol reversesortcol sortcoln reversesortcoln sortrow sortrown reversesortrow reversesortrown getcoleq getcoleqn getcolnoteq getcolany getcolbegin getcolnotany getcolnotbegin getcolge getcolgt getcolle getcollt getcolgen getcolgtn getcollen getcoltn getcolend getcolnotend getrowend getrownotend getcolin getcolnotin getcolinbegin getcolnotinbegin getcolinend getcolnotinend getrowin getrownotin getrowinbegin getrownotinbegin getrowinend getrownotinend	contained
syn keyword	htmlosFunctions	dbcreate dbadd dbedit dbdelete dbsearch dbsearchsort dbget dbgetsort dbstatus dbindex dbimport dbfill dbexport dbsort dbgetrec dbremove dbpurge dbfind dbfindsort dbunique dbcopy dbmove dbkill dbtransfer dbpoke dbsearchx dbgetx	contained
syn keyword	htmlosFunctions	syshtmlosname sysstartname sysfixfile fileinfo filelist fileindex domainname page browser regdomain username usernum getenv httpheader copy file ts row sysls syscp sysmv sysmd sysrd filepush filepushlink dirname	contained
syn keyword	htmlosFunctions	mail to address subject netmail netmailopen netmailclose mailfilelist netweb netwebresults webpush netsockopen netsockread netsockwrite netsockclose	contained
syn keyword	htmlosFunctions today time systime now yesterday tomorrow getday getmonth getyear getminute getweekday getweeknum getyearday getdate gettime getamorpm gethour addhours addminutes adddays timebetween timetill timefrom datetill datefrom mixedtimebetween mixeddatetill mixedtimetill mixedtimefrom mixeddatefrom nextdaybyweekfromdate nextdaybyweekfromtoday nextdaybymonthfromdate nextdaybymonthfromtoday nextdaybyyearfromdate nextdaybyyearfromtoday offsetdaybyweekfromdate offsetdaybyweekfromtoday offsetdaybymonthfromdate offsetdaybymonthfromtoday	contained
syn keyword	htmlosFunctions isprivate ispublic isfile isdir isblank iserror iserror iseven isodd istrue isfalse islogical istext istag isnumber isinteger isdate istableeq istableeqx istableeqn isfuture ispast istoday isweekday isweekend issamedate iseq isnoteq isge isle ismod10 isvalidstring	contained
syn keyword	htmlosFunctions celtof celtokel ftocel ftokel keltocel keltof cmtoin intocm fttom mtoft fttomile miletoft kmtomile miletokm mtoyd ydtom galtoltr ltrtogal ltrtoqt qttoltr gtooz oztog kgtolb lbtokg mttoton tontomt	contained
syn keyword	htmlosFunctions max min abs sign inverse square sqrt cube roundsig round ceiling roundup floor rounddown roundeven rounddowneven roundupeven roundodd roundupodd rounddownodd random factorial summand fibonacci remainder mod radians degrees cos sin tan cotan secant cosecant acos asin atan exp power power10 ln log10 log sinh cosh tanh	contained
syn keyword	htmlosFunctions xmldelete xmldeletex xmldeleteattr xmldeleteattrx xmledit xmleditx xmleditvalue xmleditvaluex xmleditattr xmleditattrx xmlinsertbefore xmlinsertbeforex smlinsertafter xmlinsertafterx xmlinsertattr xmlinsertattrx smlget xmlgetx xmlgetvalue xmlgetvaluex xmlgetattrvalue xmlgetattrvaluex xmlgetrec xmlgetrecx xmlgetrecattrvalue xmlgetrecattrvaluex xmlchopleftbefore xmlchopleftbeforex xmlchoprightbefore xmlchoprightbeforex xmlchopleftafter xmlchopleftafterx xmlchoprightafter xmlchoprightafterx xmllocatebefore xmllocatebeforex xmllocateafter xmllocateafterx	contained

" Type
syn keyword	htmlosType	int str dol flt dat grp	contained

" StorageClass
syn keyword	htmlosStorageClass	locals	contained

" Operator
syn match	htmlosOperator	"[-=+/\*!]"	contained
syn match	htmlosRelation	"[~]"	contained
syn match	htmlosRelation	"[=~][&!]"	contained
syn match	htmlosRelation	"[!=<>]="	contained
syn match	htmlosRelation	"[<>]"	contained

" Comment
syn region	htmlosComment	start="#" end="/#"	contained

" Conditional
syn keyword	htmlosConditional	if then /if to else elif	contained
syn keyword	htmlosConditional	and or nand nor xor not	contained
" Repeat
syn keyword	htmlosRepeat	while do /while for /for	contained

" Keyword
syn keyword	htmlosKeyword	name value step do rowname colname rownum	contained

" Repeat
syn keyword	htmlosLabel	case matched /case switch	contained

" Statement
syn keyword	htmlosStatement     break exit return continue	contained

" Identifier
syn match	htmlosIdentifier	"\h\w*[\.]*\w*"	contained

" Special identifier
syn match	htmlosSpecialIdentifier	"[\$@]"	contained

" Define
syn keyword	htmlosDefine	function overlay	contained

" Boolean
syn keyword	htmlosBoolean	true false	contained

" String
syn region	htmlosStringDouble	keepend matchgroup=None start=+"+ end=+"+ contained
syn region	htmlosStringSingle	keepend matchgroup=None start=+'+ end=+'+ contained

" Number
syn match htmlosNumber	"-\=\<\d\+\>"	contained

" Float
syn match htmlosFloat	"\(-\=\<\d+\|-\=\)\.\d\+\>"	contained

" Error
syn match htmlosError	"ERROR"	contained

" Parent
syn match     htmlosParent       "[({[\]})]"     contained

" Todo
syn keyword	htmlosTodo TODO Todo todo	contained

syn cluster	htmlosInside	contains=htmlosComment,htmlosFunctions,htmlosIdentifier,htmlosSpecialIdentifier,htmlosConditional,htmlosRepeat,htmlosLabel,htmlosStatement,htmlosOperator,htmlosRelation,htmlosStringSingle,htmlosStringDouble,htmlosNumber,htmlosFloat,htmlosError,htmlosKeyword,htmlosType,htmlosBoolean,htmlosParent

syn cluster	htmlosTop	contains=@htmlosInside,htmlosDefine,htmlosError,htmlosStorageClass

syn region	 htmlosRegion	keepend matchgroup=Delimiter start="<<" skip=+".\{-}?>.\{-}"\|'.\{-}?>.\{-}'\|/\*.\{-}?>.\{-}\*/+ end=">>" contains=@htmlosTop
syn region	 htmlosRegion	keepend matchgroup=Delimiter start="\[\[" skip=+".\{-}?>.\{-}"\|'.\{-}?>.\{-}'\|/\*.\{-}?>.\{-}\*/+ end="\]\]" contains=@htmlosTop


" sync
if exists("htmlos_minlines")
  exec "syn sync minlines=" . htmlos_minlines
else
  syn sync minlines=100
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link htmlosSpecialIdentifier	Operator
hi def link htmlosIdentifier	Identifier
hi def link htmlosStorageClass	StorageClass
hi def link htmlosComment	Comment
hi def link htmlosBoolean	Boolean
hi def link htmlosStringSingle	String
hi def link htmlosStringDouble	String
hi def link htmlosNumber	Number
hi def link htmlosFloat	Float
hi def link htmlosFunctions	Function
hi def link htmlosRepeat	Repeat
hi def link htmlosConditional	Conditional
hi def link htmlosLabel	Label
hi def link htmlosStatement	Statement
hi def link htmlosKeyword	Statement
hi def link htmlosType	Type
hi def link htmlosDefine	Define
hi def link htmlosParent	Delimiter
hi def link htmlosError	Error
hi def link htmlosTodo	Todo
hi def link htmlosOperator	Operator
hi def link htmlosRelation	Operator

let b:current_syntax = "htmlos"

if main_syntax == 'htmlos'
  unlet main_syntax
endif

" vim: ts=8 sw=2
PK�j�Z��O��vim80/syntax/smil.vimnu�[���" Vim syntax file
" Language:	SMIL (Synchronized Multimedia Integration Language)
" Maintainer:	Herve Foucher <Herve.Foucher@helio.org>
" URL:		http://www.helio.org/vim/syntax/smil.vim
" Last Change:	2012 Feb 03 by Thilo Six

" To learn more about SMIL, please refer to http://www.w3.org/AudioVideo/
" and to http://www.helio.org/products/smil/tutorial/

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" SMIL is case sensitive
syn case match

" illegal characters
syn match smilError "[<>&]"
syn match smilError "[()&]"

if !exists("main_syntax")
  let main_syntax = 'smil'
endif

" tags
syn match   smilSpecial  contained "\\\d\d\d\|\\."
syn match   smilSpecial  contained "("
syn match   smilSpecial  contained "id("
syn match   smilSpecial  contained ")"
syn keyword smilSpecial  contained remove freeze true false on off overdub caption new pause replace
syn keyword smilSpecial  contained first last
syn keyword smilSpecial  contained fill meet slice scroll hidden
syn region  smilString   contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=smilSpecial
syn region  smilString   contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=smilSpecial
syn match   smilValue    contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1
syn region  smilEndTag		   start=+</+	 end=+>+	      contains=smilTagN,smilTagError
syn region  smilTag		   start=+<[^/]+ end=+>+	      contains=smilTagN,smilString,smilArg,smilValue,smilTagError,smilEvent,smilCssDefinition
syn match   smilTagN     contained +<\s*[-a-zA-Z0-9]\++ms=s+1 contains=smilTagName,smilSpecialTagName
syn match   smilTagN     contained +</\s*[-a-zA-Z0-9]\++ms=s+2 contains=smilTagName,smilSpecialTagName
syn match   smilTagError contained "[^>]<"ms=s+1

" tag names
syn keyword smilTagName contained smil head body anchor a switch region layout meta
syn match   smilTagName contained "root-layout"
syn keyword smilTagName contained par seq
syn keyword smilTagName contained animation video img audio ref text textstream
syn match smilTagName contained "\<\(head\|body\)\>"


" legal arg names
syn keyword smilArg contained dur begin end href target id coords show title abstract author copyright alt
syn keyword smilArg contained left top width height fit src name content fill longdesc repeat type
syn match   smilArg contained "z-index"
syn match   smilArg contained " end-sync"
syn match   smilArg contained " region"
syn match   smilArg contained "background-color"
syn match   smilArg contained "system-bitrate"
syn match   smilArg contained "system-captions"
syn match   smilArg contained "system-overdub-or-caption"
syn match   smilArg contained "system-language"
syn match   smilArg contained "system-required"
syn match   smilArg contained "system-screen-depth"
syn match   smilArg contained "system-screen-size"
syn match   smilArg contained "clip-begin"
syn match   smilArg contained "clip-end"
syn match   smilArg contained "skip-content"


" SMIL Boston ext.
" This are new SMIL functionnalities seen on www.w3.org on August 3rd 1999

" Animation
syn keyword smilTagName contained animate set move
syn keyword smilArg contained calcMode from to by additive values origin path
syn keyword smilArg contained accumulate hold attribute
syn match   smilArg contained "xml:link"
syn keyword smilSpecial contained discrete linear spline parent layout
syn keyword smilSpecial contained top left simple

" Linking
syn keyword smilTagName contained area
syn keyword smilArg contained actuate behavior inline sourceVolume
syn keyword smilArg contained destinationVolume destinationPlaystate tabindex
syn keyword smilArg contained class style lang dir onclick ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup shape nohref accesskey onfocus onblur
syn keyword smilSpecial contained play pause stop rect circ poly child par seq

" Media Object
syn keyword smilTagName contained rtpmap
syn keyword smilArg contained port transport encoding payload clipBegin clipEnd
syn match   smilArg contained "fmt-list"

" Timing and Synchronization
syn keyword smilTagName contained excl
syn keyword smilArg contained beginEvent endEvent eventRestart endSync repeatCount repeatDur
syn keyword smilArg contained syncBehavior syncTolerance
syn keyword smilSpecial contained canSlip locked

" special characters
syn match smilSpecialChar "&[^;]*;"

if exists("smil_wrong_comments")
  syn region smilComment		start=+<!--+	  end=+-->+
else
  syn region smilComment		start=+<!+	  end=+>+   contains=smilCommentPart,smilCommentError
  syn match  smilCommentError contained "[^><!]"
  syn region smilCommentPart  contained start=+--+	  end=+--+
endif
syn region smilComment		      start=+<!DOCTYPE+ keepend end=+>+

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link smilTag			Function
hi def link smilEndTag			Identifier
hi def link smilArg			Type
hi def link smilTagName			smilStatement
hi def link smilSpecialTagName		Exception
hi def link smilValue			Value
hi def link smilSpecialChar		Special

hi def link smilSpecial			Special
hi def link smilSpecialChar		Special
hi def link smilString			String
hi def link smilStatement			Statement
hi def link smilComment			Comment
hi def link smilCommentPart		Comment
hi def link smilPreProc			PreProc
hi def link smilValue			String
hi def link smilCommentError		smilError
hi def link smilTagError			smilError
hi def link smilError			Error


let b:current_syntax = "smil"

if main_syntax == 'smil'
  unlet main_syntax
endif

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z(}�9,	,	vim80/syntax/elf.vimnu�[���" Vim syntax file
" Language:    ELF
" Maintainer:  Christian V. J. Br�ssow <cvjb@cvjb.de>
" Last Change: Son 22 Jun 2003 20:43:14 CEST
" Filenames:   *.ab,*.am
" URL:	       http://www.cvjb.de/comp/vim/elf.vim
" $Id: elf.vim,v 1.1 2004/06/13 19:52:27 vimboss Exp $
"
" ELF: Extensible Language Facility
"      This is the Applix Inc., Macro and Builder programming language.
"      It has nothing in common with the binary format called ELF.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

" Case does not matter
syn case ignore

" Environments
syn region elfEnvironment transparent matchgroup=Special start="{" matchgroup=Special end="}" contains=ALLBUT,elfBraceError

" Unmatched braces
syn match elfBraceError "}"

" All macros must have at least one of these definitions
syn keyword elfSpecial endmacro
syn region elfSpecial transparent matchgroup=Special start="^\(\(macro\)\|\(set\)\) \S\+$" matchgroup=Special end="^\(\(endmacro\)\|\(endset\)\)$" contains=ALLBUT,elfBraceError

" Preprocessor Commands
syn keyword elfPPCom define include

" Some keywords
syn keyword elfKeyword  false true null
syn keyword elfKeyword	var format object function endfunction

" Conditionals and loops
syn keyword elfConditional if else case of endcase for to next while until return goto

" All built-in elf macros end with an '@'
syn match elfMacro "[0-9_A-Za-z]\+@"

" Strings and characters
syn region elfString start=+"+  skip=+\\\\\|\\"+  end=+"+

" Numbers
syn match elfNumber "-\=\<[0-9]*\.\=[0-9_]\>"

" Comments
syn region elfComment start="/\*"  end="\*/"
syn match elfComment  "\'.*$"

syn sync ccomment elfComment

" Parenthesis
syn match elfParens "[\[\]()]"

" Punctuation
syn match elfPunct "[,;]"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting. Can be overridden later.
hi def link elfComment Comment
hi def link elfPPCom Include
hi def link elfKeyword Keyword
hi def link elfSpecial Special
hi def link elfEnvironment Special
hi def link elfBraceError Error
hi def link elfConditional Conditional
hi def link elfMacro Function
hi def link elfNumber Number
hi def link elfString String
hi def link elfParens Delimiter
hi def link elfPunct Delimiter


let b:current_syntax = "elf"

" vim:ts=8:sw=4:nocindent:smartindent:
PK�j�ZU�u��vim80/syntax/verilog.vimnu�[���" Vim syntax file
" Language:	Verilog
" Maintainer:	Mun Johl <Mun.Johl@emulex.com>
" Last Update:  Wed Jul 20 16:04:19 PDT 2011

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

" Set the local value of the 'iskeyword' option.
" NOTE: '?' was added so that verilogNumber would be processed correctly when
"       '?' is the last character of the number.
setlocal iskeyword=@,48-57,63,_,192-255

" A bunch of useful Verilog keywords

syn keyword verilogStatement   always and assign automatic buf
syn keyword verilogStatement   bufif0 bufif1 cell cmos
syn keyword verilogStatement   config deassign defparam design
syn keyword verilogStatement   disable edge endconfig
syn keyword verilogStatement   endfunction endgenerate endmodule
syn keyword verilogStatement   endprimitive endspecify endtable endtask
syn keyword verilogStatement   event force function
syn keyword verilogStatement   generate genvar highz0 highz1 ifnone
syn keyword verilogStatement   incdir include initial inout input
syn keyword verilogStatement   instance integer large liblist
syn keyword verilogStatement   library localparam macromodule medium
syn keyword verilogStatement   module nand negedge nmos nor
syn keyword verilogStatement   noshowcancelled not notif0 notif1 or
syn keyword verilogStatement   output parameter pmos posedge primitive
syn keyword verilogStatement   pull0 pull1 pulldown pullup
syn keyword verilogStatement   pulsestyle_onevent pulsestyle_ondetect
syn keyword verilogStatement   rcmos real realtime reg release
syn keyword verilogStatement   rnmos rpmos rtran rtranif0 rtranif1
syn keyword verilogStatement   scalared showcancelled signed small
syn keyword verilogStatement   specify specparam strong0 strong1
syn keyword verilogStatement   supply0 supply1 table task time tran
syn keyword verilogStatement   tranif0 tranif1 tri tri0 tri1 triand
syn keyword verilogStatement   trior trireg unsigned use vectored wait
syn keyword verilogStatement   wand weak0 weak1 wire wor xnor xor
syn keyword verilogLabel       begin end fork join
syn keyword verilogConditional if else case casex casez default endcase
syn keyword verilogRepeat      forever repeat while for

syn keyword verilogTodo contained TODO FIXME

syn match   verilogOperator "[&|~><!)(*#%@+/=?:;}{,.\^\-\[\]]"

syn region  verilogComment start="/\*" end="\*/" contains=verilogTodo,@Spell
syn match   verilogComment "//.*" contains=verilogTodo,@Spell

"syn match   verilogGlobal "`[a-zA-Z0-9_]\+\>"
syn match verilogGlobal "`celldefine"
syn match verilogGlobal "`default_nettype"
syn match verilogGlobal "`define"
syn match verilogGlobal "`else"
syn match verilogGlobal "`elsif"
syn match verilogGlobal "`endcelldefine"
syn match verilogGlobal "`endif"
syn match verilogGlobal "`ifdef"
syn match verilogGlobal "`ifndef"
syn match verilogGlobal "`include"
syn match verilogGlobal "`line"
syn match verilogGlobal "`nounconnected_drive"
syn match verilogGlobal "`resetall"
syn match verilogGlobal "`timescale"
syn match verilogGlobal "`unconnected_drive"
syn match verilogGlobal "`undef"
syn match   verilogGlobal "$[a-zA-Z0-9_]\+\>"

syn match   verilogConstant "\<[A-Z][A-Z0-9_]\+\>"

syn match   verilogNumber "\(\<\d\+\|\)'[sS]\?[bB]\s*[0-1_xXzZ?]\+\>"
syn match   verilogNumber "\(\<\d\+\|\)'[sS]\?[oO]\s*[0-7_xXzZ?]\+\>"
syn match   verilogNumber "\(\<\d\+\|\)'[sS]\?[dD]\s*[0-9_xXzZ?]\+\>"
syn match   verilogNumber "\(\<\d\+\|\)'[sS]\?[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
syn match   verilogNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"

syn region  verilogString start=+"+ skip=+\\"+ end=+"+ contains=verilogEscape,@Spell
syn match   verilogEscape +\\[nt"\\]+ contained
syn match   verilogEscape "\\\o\o\=\o\=" contained

" Directives
syn match   verilogDirective   "//\s*synopsys\>.*$"
syn region  verilogDirective   start="/\*\s*synopsys\>" end="\*/"
syn region  verilogDirective   start="//\s*synopsys dc_script_begin\>" end="//\s*synopsys dc_script_end\>"

syn match   verilogDirective   "//\s*\$s\>.*$"
syn region  verilogDirective   start="/\*\s*\$s\>" end="\*/"
syn region  verilogDirective   start="//\s*\$s dc_script_begin\>" end="//\s*\$s dc_script_end\>"

"Modify the following as needed.  The trade-off is performance versus
"functionality.
syn sync minlines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link verilogCharacter       Character
hi def link verilogConditional     Conditional
hi def link verilogRepeat          Repeat
hi def link verilogString          String
hi def link verilogTodo            Todo
hi def link verilogComment         Comment
hi def link verilogConstant        Constant
hi def link verilogLabel           Label
hi def link verilogNumber          Number
hi def link verilogOperator        Special
hi def link verilogStatement       Statement
hi def link verilogGlobal          Define
hi def link verilogDirective       SpecialComment
hi def link verilogEscape		 Special


let b:current_syntax = "verilog"

" vim: ts=8
PK�j�Z�f���F�Fvim80/syntax/exim.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: Exim configuration file exim.conf
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2002-10-15
" URL: http://trific.ath.cx/Ftp/vim/syntax/exim.vim

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn case match

" Base constructs
syn match eximComment "^\s*#.*$" contains=eximFixme
syn match eximComment "\s#.*$" contains=eximFixme
syn keyword eximFixme FIXME TODO XXX NOT contained
syn keyword eximConstant true false yes no
syn match eximNumber "\<\d\+[KM]\?\>"
syn match eximNumber "\<0[xX]\x\+\>"
syn match eximNumber "\<\d\+\(\.\d\{,3}\)\?\>"
syn match eximTime "\<\(\d\+[wdhms]\)\+\>"
syn match eximSpecialChar "\\[\\nrt]\|\\\o\{1,3}\|\\x\x\{1,2}"
syn region eximMacroDefinition matchgroup=eximMacroName start="^[A-Z]\i*\s*=" end="$" skip="\\\s*$" transparent

syn match eximDriverName "\<\(aliasfile\|appendfile\|autoreply\|domainlist\|forwardfile\|ipliteral\|iplookup\|lmtp\|localuser\|lookuphost\|pipe\|queryprogram\|smartuser\|smtp\)\>"
syn match eximTransport "^\s*\i\+:"

" Options
syn keyword eximEnd end
syn keyword eximKeyword accept_8bitmime accept_timeout admin_groups allow_mx_to_ip always_bcc auth_always_advertise auth_hosts auth_over_tls_hosts auto_thaw bi_command check_log_inodes check_log_space check_spool_inodes check_spool_space collapse_source_routes daemon_smtp_port daemon_smtp_service debug_level delay_warning delay_warning_condition deliver_load_max deliver_queue_load_max delivery_date_remove dns_again_means_nonexist dns_check_names dns_check_names_pattern dns_retrans dns_ipv4_lookup dns_retry envelope_to_remove errmsg_text errmsg_file errors_address errors_copy errors_reply_to exim_group exim_path exim_user extract_addresses_remove_arguments finduser_retries forbid_domain_literals freeze_tell_mailmaster gecos_name gecos_pattern headers_check_syntax headers_checks_fail headers_sender_verify headers_sender_verify_errmsg helo_accept_junk_hosts helo_strict_syntax helo_verify hold_domains host_accept_relay host_auth_accept_relay host_lookup host_reject host_reject_recipients hosts_treat_as_local ignore_errmsg_errors ignore_errmsg_errors_after ignore_fromline_hosts ignore_fromline_local keep_malformed kill_ip_options ldap_default_servers local_domains local_domains_include_host local_domains_include_host_literals local_from_check local_from_prefix local_from_suffix local_interfaces localhost_number locally_caseless log_all_parents log_arguments log_file_path log_incoming_port log_ip_options log_level log_queue_run_level log_received_recipients log_received_sender log_refused_recipients log_rewrites log_sender_on_delivery log_smtp_confirmation log_smtp_connections log_smtp_syntax_errors log_subject lookup_open_max max_username_length message_body_visible message_filter message_filter_directory_transport message_filter_directory2_transport message_filter_file_transport message_filter_group message_filter_pipe_transport message_filter_reply_transport message_filter_user message_id_header_text message_size_limit message_size_limit_count_recipients move_frozen_messages mysql_servers never_users nobody_group nobody_user percent_hack_domains perl_at_start perl_startup pgsql_servers pid_file_path preserve_message_logs primary_hostname print_topbitchars prod_requires_admin prohibition_message qualify_domain qualify_recipient queue_list_requires_admin queue_only queue_only_file queue_only_load queue_remote_domains queue_run_in_order queue_run_max queue_smtp_domains rbl_domains rbl_hosts rbl_log_headers rbl_log_rcpt_count rbl_reject_recipients rbl_warn_header received_header_text received_headers_max receiver_try_verify receiver_unqualified_hosts receiver_verify receiver_verify_addresses receiver_verify_hosts receiver_verify_senders recipients_max recipients_max_reject recipients_reject_except recipients_reject_except_senders refuse_ip_options relay_domains relay_domains_include_local_mx relay_match_host_or_sender remote_max_parallel remote_sort retry_data_expire retry_interval_max return_path_remove return_size_limit rfc1413_hosts rfc1413_query_timeout security sender_address_relay sender_address_relay_hosts sender_reject sender_reject_recipients sender_try_verify sender_unqualified_hosts sender_verify sender_verify_batch sender_verify_callback_domains sender_verify_callback_timeout sender_verify_fixup sender_verify_hosts sender_verify_hosts_callback sender_verify_max_retry_rate sender_verify_reject smtp_accept_keepalive smtp_accept_max smtp_accept_max_per_host smtp_accept_queue smtp_accept_queue_per_connection smtp_accept_reserve smtp_banner smtp_check_spool_space smtp_connect_backlog smtp_etrn_command smtp_etrn_hosts smtp_etrn_serialize smtp_expn_hosts smtp_load_reserve smtp_receive_timeout smtp_reserve_hosts smtp_verify split_spool_directory spool_directory strip_excess_angle_brackets strip_trailing_dot syslog_timestamp timeout_frozen_after timestamps_utc timezone tls_advertise_hosts tls_certificate tls_dhparam tls_host_accept_relay tls_hosts tls_log_cipher tls_log_peerdn tls_privatekey tls_verify_certificates tls_verify_ciphers tls_verify_hosts trusted_groups trusted_users unknown_login unknown_username untrusted_set_sender uucp_from_pattern uucp_from_sender warnmsg_file
syn keyword eximKeyword no_accept_8bitmime no_allow_mx_to_ip no_always_bcc no_auth_always_advertise no_collapse_source_routes no_delivery_date_remove no_dns_check_names no_envelope_to_remove no_extract_addresses_remove_arguments no_forbid_domain_literals no_freeze_tell_mailmaster no_headers_check_syntax no_headers_checks_fail no_headers_sender_verify no_headers_sender_verify_errmsg no_helo_strict_syntax no_ignore_errmsg_errors no_ignore_fromline_local no_kill_ip_options no_local_domains_include_host no_local_domains_include_host_literals no_local_from_check no_locally_caseless no_log_all_parents no_log_arguments no_log_incoming_port no_log_ip_options no_log_received_recipients no_log_received_sender no_log_refused_recipients no_log_rewrites no_log_sender_on_delivery no_log_smtp_confirmation no_log_smtp_connections no_log_smtp_syntax_errors no_log_subject no_message_size_limit_count_recipients no_move_frozen_messages no_preserve_message_logs no_print_topbitchars no_prod_requires_admin no_queue_list_requires_admin no_queue_only no_rbl_log_headers no_rbl_log_rcpt_count no_rbl_reject_recipients no_receiver_try_verify no_receiver_verify no_recipients_max_reject no_refuse_ip_options no_relay_domains_include_local_mx no_relay_match_host_or_sender no_return_path_remove no_sender_try_verify no_sender_verify no_sender_verify_batch no_sender_verify_fixup no_sender_verify_reject no_smtp_accept_keepalive no_smtp_check_spool_space no_smtp_etrn_serialize no_smtp_verify no_split_spool_directory no_strip_excess_angle_brackets no_strip_trailing_dot no_syslog_timestamp no_timestamps_utc no_tls_log_cipher no_tls_log_peerdn no_untrusted_set_sender
syn keyword eximKeyword not_accept_8bitmime not_allow_mx_to_ip not_always_bcc not_auth_always_advertise not_collapse_source_routes not_delivery_date_remove not_dns_check_names not_envelope_to_remove not_extract_addresses_remove_arguments not_forbid_domain_literals not_freeze_tell_mailmaster not_headers_check_syntax not_headers_checks_fail not_headers_sender_verify not_headers_sender_verify_errmsg not_helo_strict_syntax not_ignore_errmsg_errors not_ignore_fromline_local not_kill_ip_options not_local_domains_include_host not_local_domains_include_host_literals not_local_from_check not_locally_caseless not_log_all_parents not_log_arguments not_log_incoming_port not_log_ip_options not_log_received_recipients not_log_received_sender not_log_refused_recipients not_log_rewrites not_log_sender_on_delivery not_log_smtp_confirmation not_log_smtp_connections not_log_smtp_syntax_errors not_log_subject not_message_size_limit_count_recipients not_move_frozen_messages not_preserve_message_logs not_print_topbitchars not_prod_requires_admin not_queue_list_requires_admin not_queue_only not_rbl_log_headers not_rbl_log_rcpt_count not_rbl_reject_recipients not_receiver_try_verify not_receiver_verify not_recipients_max_reject not_refuse_ip_options not_relay_domains_include_local_mx not_relay_match_host_or_sender not_return_path_remove not_sender_try_verify not_sender_verify not_sender_verify_batch not_sender_verify_fixup not_sender_verify_reject not_smtp_accept_keepalive not_smtp_check_spool_space not_smtp_etrn_serialize not_smtp_verify not_split_spool_directory not_strip_excess_angle_brackets not_strip_trailing_dot not_syslog_timestamp not_timestamps_utc not_tls_log_cipher not_tls_log_peerdn not_untrusted_set_sender
syn keyword eximKeyword body_only debug_print delivery_date_add driver envelope_to_add headers_add headers_only headers_remove headers_rewrite message_size_limit return_path return_path_add shadow_condition shadow_transport transport_filter
syn keyword eximKeyword no_body_only no_delivery_date_add no_envelope_to_add no_headers_only no_return_path_add
syn keyword eximKeyword not_body_only not_delivery_date_add not_envelope_to_add not_headers_only not_return_path_add
syn keyword eximKeyword allow_fifo allow_symlink batch batch_max bsmtp bsmtp_helo check_group check_owner check_string create_directory create_file current_directory directory directory_mode escape_string file file_format file_must_exist from_hack group lock_fcntl_timeout lock_interval lock_retries lockfile_mode lockfile_timeout maildir_format maildir_retries maildir_tag mailstore_format mailstore_prefix mailstore_suffix mbx_format mode mode_fail_narrower notify_comsat prefix quota quota_filecount quota_is_inclusive quota_size_regex quota_warn_message quota_warn_threshold require_lockfile retry_use_local_part suffix use_crlf use_fcntl_lock use_lockfile use_mbx_lock user
syn keyword eximKeyword no_allow_fifo no_allow_symlink no_bsmtp_helo no_check_group no_check_owner no_create_directory no_file_must_exist no_from_hack no_maildir_format no_mailstore_format no_mbx_format no_mode_fail_narrower no_notify_comsat no_quota_is_inclusive no_require_lockfile no_retry_use_local_part no_use_crlf no_use_fcntl_lock no_use_lockfile no_use_mbx_lock
syn keyword eximKeyword not_allow_fifo not_allow_symlink not_bsmtp_helo not_check_group not_check_owner not_create_directory not_file_must_exist not_from_hack not_maildir_format not_mailstore_format not_mbx_format not_mode_fail_narrower not_notify_comsat not_quota_is_inclusive not_require_lockfile not_retry_use_local_part not_use_crlf not_use_fcntl_lock not_use_lockfile not_use_mbx_lock
syn keyword eximKeyword bcc cc file file_expand file_optional from group headers initgroups log mode once once_file_size once_repeat reply_to return_message subject text to user
syn keyword eximKeyword no_file_expand no_file_optional no_initgroups no_return_message
syn keyword eximKeyword not_file_expand not_file_optional not_initgroups not_return_message
syn keyword eximKeyword batch batch_max command group initgroups retry_use_local_part timeout user
syn keyword eximKeyword no_initgroups
syn keyword eximKeyword not_initgroups
syn keyword eximKeyword allow_commands batch batch_max bsmtp bsmtp_helo check_string command current_directory environment escape_string freeze_exec_fail from_hack group home_directory ignore_status initgroups log_defer_output log_fail_output log_output max_output path pipe_as_creator prefix restrict_to_path retry_use_local_part return_fail_output return_output suffix temp_errors timeout umask use_crlf use_shell user
syn keyword eximKeyword no_bsmtp_helo no_freeze_exec_fail no_from_hack no_ignore_status no_log_defer_output no_log_fail_output no_log_output no_pipe_as_creator no_restrict_to_path no_return_fail_output no_return_output no_use_crlf no_use_shell
syn keyword eximKeyword not_bsmtp_helo not_freeze_exec_fail not_from_hack not_ignore_status not_log_defer_output not_log_fail_output not_log_output not_pipe_as_creator not_restrict_to_path not_return_fail_output not_return_output not_use_crlf not_use_shell
syn keyword eximKeyword allow_localhost authenticate_hosts batch_max command_timeout connect_timeout data_timeout delay_after_cutoff dns_qualify_single dns_search_parents fallback_hosts final_timeout gethostbyname helo_data hosts hosts_avoid_tls hosts_require_tls hosts_override hosts_max_try hosts_randomize interface keepalive max_rcpt multi_domain mx_domains port protocol retry_include_ip_address serialize_hosts service size_addition tls_certificate tls_privatekey tls_verify_certificates tls_verify_ciphers
syn keyword eximKeyword no_allow_localhost no_delay_after_cutoff no_dns_qualify_single no_dns_search_parents no_gethostbyname no_hosts_override no_hosts_randomize no_keepalive no_multi_domain no_retry_include_ip_address
syn keyword eximKeyword not_allow_localhost not_delay_after_cutoff not_dns_qualify_single not_dns_search_parents not_gethostbyname not_hosts_override not_hosts_randomize not_keepalive not_multi_domain not_retry_include_ip_address
syn keyword eximKeyword condition debug_print domains driver errors_to fail_verify fail_verify_recipient fail_verify_sender fallback_hosts group headers_add headers_remove initgroups local_parts more require_files senders transport unseen user verify verify_only verify_recipient verify_sender
syn keyword eximKeyword no_fail_verify no_fail_verify_recipient no_fail_verify_sender no_initgroups no_more no_unseen no_verify no_verify_only no_verify_recipient no_verify_sender
syn keyword eximKeyword not_fail_verify not_fail_verify_recipient not_fail_verify_sender not_initgroups not_more not_unseen not_verify not_verify_only not_verify_recipient not_verify_sender
syn keyword eximKeyword current_directory expn home_directory new_director prefix prefix_optional suffix suffix_optional
syn keyword eximKeyword no_expn no_prefix_optional no_suffix_optional
syn keyword eximKeyword not_expn not_prefix_optional not_suffix_optional
syn keyword eximKeyword check_ancestor directory_transport directory2_transport file_transport forbid_file forbid_include forbid_pipe freeze_missing_include hide_child_in_errmsg modemask one_time owners owngroups pipe_transport qualify_preserve_domain rewrite skip_syntax_errors syntax_errors_text syntax_errors_to
syn keyword eximKeyword no_check_ancestor no_forbid_file no_forbid_include no_forbid_pipe no_freeze_missing_include no_hide_child_in_errmsg no_one_time no_qualify_preserve_domain no_rewrite no_skip_syntax_errors
syn keyword eximKeyword not_check_ancestor not_forbid_file not_forbid_include not_forbid_pipe not_freeze_missing_include not_hide_child_in_errmsg not_one_time not_qualify_preserve_domain not_rewrite not_skip_syntax_errors
syn keyword eximKeyword expand file forbid_special include_domain optional queries query search_type
syn keyword eximKeyword no_expand no_forbid_special no_include_domain no_optional
syn keyword eximKeyword not_expand not_forbid_special not_include_domain not_optional
syn keyword eximKeyword allow_system_actions check_group check_local_user data file file_directory filter forbid_filter_existstest forbid_filter_logwrite forbid_filter_lookup forbid_filter_perl forbid_filter_reply ignore_eacces ignore_enotdir match_directory reply_transport seteuid
syn keyword eximKeyword no_allow_system_actions no_check_local_user no_forbid_filter_reply no_forbid_filter_existstest no_forbid_filter_logwrite no_forbid_filter_lookup no_forbid_filter_perl no_forbid_filter_reply no_ignore_eacces no_ignore_enotdir no_seteuid
syn keyword eximKeyword not_allow_system_actions not_check_local_user not_forbid_filter_reply not_forbid_filter_existstest not_forbid_filter_logwrite not_forbid_filter_lookup not_forbid_filter_perl not_forbid_filter_reply not_ignore_eacces not_ignore_enotdir not_seteuid
syn keyword eximKeyword match_directory
syn keyword eximKeyword directory_transport directory2_transport file_transport forbid_file forbid_pipe hide_child_in_errmsg new_address panic_expansion_fail pipe_transport qualify_preserve_domain rewrite
syn keyword eximKeyword no_forbid_file no_forbid_pipe no_hide_child_in_errmsg no_panic_expansion_fail no_qualify_preserve_domain no_rewrite
syn keyword eximKeyword not_forbid_file not_forbid_pipe not_hide_child_in_errmsg not_panic_expansion_fail not_qualify_preserve_domain not_rewrite
syn keyword eximKeyword ignore_target_hosts pass_on_timeout self translate_ip_address
syn keyword eximKeyword no_pass_on_timeout
syn keyword eximKeyword not_pass_on_timeout
syn keyword eximKeyword host_find_failed hosts_randomize modemask owners owngroups qualify_single route_file route_list route_queries route_query search_parents search_type
syn keyword eximKeyword no_hosts_randomize no_qualify_single no_search_parents
syn keyword eximKeyword not_hosts_randomize not_qualify_single not_search_parents
syn keyword eximKeyword hosts optional port protocol query reroute response_pattern service timeout
syn keyword eximKeyword no_optional
syn keyword eximKeyword not_optional
syn keyword eximKeyword check_secondary_mx gethostbyname mx_domains qualify_single rewrite_headers search_parents widen_domains
syn keyword eximKeyword no_check_secondary_mx no_gethostbyname no_qualify_single no_search_parents
syn keyword eximKeyword not_check_secondary_mx not_gethostbyname not_qualify_single not_search_parents
syn keyword eximKeyword command command_group command_user current_directory timeout
syn keyword eximKeyword driver public_name server_set_id server_mail_auth_condition
syn keyword eximKeyword server_prompts server_condition client_send
syn keyword eximKeyword server_secret client_name client_secret

" Define the default highlighting

hi def link eximComment Comment
hi def link eximFixme Todo
hi def link eximEnd Keyword
hi def link eximNumber Number
hi def link eximDriverName Constant
hi def link eximConstant Constant
hi def link eximTime Constant
hi def link eximKeyword Type
hi def link eximSpecialChar Special
hi def link eximMacroName Preproc
hi def link eximTransport Identifier


let b:current_syntax = "exim"
PK�j�Z�D��i�ivim80/syntax/stata.vimnu�[���" stata.vim -- Vim syntax file for Stata do, ado, and class files.
" Language:	Stata and/or Mata
" Maintainer:	Jeff Pitblado <jpitblado@stata.com>
" Last Change:	26apr2006
" Version:	1.1.4

" Log:
" 14apr2006	renamed syntax groups st* to stata*
"		'syntax clear' only under version control
"		check for 'b:current_syntax', removed 'did_stata_syntax_inits'
" 17apr2006	fixed start expression for stataFunc
" 26apr2006	fixed brace confusion in stataErrInParen and stataErrInBracket
"		fixed paren/bracket confusion in stataFuncGroup

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syntax case match

" comments - single line
" note that the triple slash continuing line comment comes free
syn region stataStarComment  start=/^\s*\*/ end=/$/    contains=stataComment oneline
syn region stataSlashComment start="\s//"   end=/$/    contains=stataComment oneline
syn region stataSlashComment start="^//"    end=/$/    contains=stataComment oneline
" comments - multiple line
syn region stataComment      start="/\*"    end="\*/"  contains=stataComment

" global macros - simple case
syn match  stataGlobal /\$\a\w*/
" global macros - general case
syn region stataGlobal start=/\${/ end=/}/ oneline contains=@stataMacroGroup
" local macros - general case
syn region stataLocal  start=/`/ end=/'/   oneline contains=@stataMacroGroup

" numeric formats
syn match  stataFormat /%-\=\d\+\.\d\+[efg]c\=/
" numeric hex format
syn match  stataFormat /%-\=21x/
" string format
syn match  stataFormat /%\(\|-\|\~\)\d\+s/

" Statements
syn keyword stataConditional else if
syn keyword stataRepeat      foreach
syn keyword stataRepeat      forv[alues]
syn keyword stataRepeat      while

" Common programming commands
syn keyword stataCommand about
syn keyword stataCommand adopath
syn keyword stataCommand adoupdate
syn keyword stataCommand assert
syn keyword stataCommand break
syn keyword stataCommand by
syn keyword stataCommand cap[ture]
syn keyword stataCommand cd
syn keyword stataCommand chdir
syn keyword stataCommand checksum
syn keyword stataCommand class
syn keyword stataCommand classutil
syn keyword stataCommand compress
syn keyword stataCommand conf[irm]
syn keyword stataCommand conren
syn keyword stataCommand continue
syn keyword stataCommand cou[nt]
syn keyword stataCommand cscript
syn keyword stataCommand cscript_log
syn keyword stataCommand #delimit
syn keyword stataCommand d[escribe]
syn keyword stataCommand dir
syn keyword stataCommand discard
syn keyword stataCommand di[splay]
syn keyword stataCommand do
syn keyword stataCommand doedit
syn keyword stataCommand drop
syn keyword stataCommand edit
syn keyword stataCommand end
syn keyword stataCommand erase
syn keyword stataCommand eret[urn]
syn keyword stataCommand err[or]
syn keyword stataCommand e[xit]
syn keyword stataCommand expand
syn keyword stataCommand expandcl
syn keyword stataCommand file
syn keyword stataCommand findfile
syn keyword stataCommand format
syn keyword stataCommand g[enerate]
syn keyword stataCommand gettoken
syn keyword stataCommand gl[obal]
syn keyword stataCommand help
syn keyword stataCommand hexdump
syn keyword stataCommand include
syn keyword stataCommand infile
syn keyword stataCommand infix
syn keyword stataCommand input
syn keyword stataCommand insheet
syn keyword stataCommand joinby
syn keyword stataCommand la[bel]
syn keyword stataCommand levelsof
syn keyword stataCommand list
syn keyword stataCommand loc[al]
syn keyword stataCommand log
syn keyword stataCommand ma[cro]
syn keyword stataCommand mark
syn keyword stataCommand markout
syn keyword stataCommand marksample
syn keyword stataCommand mata
syn keyword stataCommand matrix
syn keyword stataCommand memory
syn keyword stataCommand merge
syn keyword stataCommand mkdir
syn keyword stataCommand more
syn keyword stataCommand net
syn keyword stataCommand nobreak
syn keyword stataCommand n[oisily]
syn keyword stataCommand note[s]
syn keyword stataCommand numlist
syn keyword stataCommand outfile
syn keyword stataCommand outsheet
syn keyword stataCommand _parse
syn keyword stataCommand pause
syn keyword stataCommand plugin
syn keyword stataCommand post
syn keyword stataCommand postclose
syn keyword stataCommand postfile
syn keyword stataCommand preserve
syn keyword stataCommand print
syn keyword stataCommand printer
syn keyword stataCommand profiler
syn keyword stataCommand pr[ogram]
syn keyword stataCommand q[uery]
syn keyword stataCommand qui[etly]
syn keyword stataCommand rcof
syn keyword stataCommand reg[ress]
syn keyword stataCommand rename
syn keyword stataCommand repeat
syn keyword stataCommand replace
syn keyword stataCommand reshape
syn keyword stataCommand ret[urn]
syn keyword stataCommand _rmcoll
syn keyword stataCommand _rmcoll
syn keyword stataCommand _rmcollright
syn keyword stataCommand rmdir
syn keyword stataCommand _robust
syn keyword stataCommand save
syn keyword stataCommand sca[lar]
syn keyword stataCommand search
syn keyword stataCommand serset
syn keyword stataCommand set
syn keyword stataCommand shell
syn keyword stataCommand sleep
syn keyword stataCommand sort
syn keyword stataCommand split
syn keyword stataCommand sret[urn]
syn keyword stataCommand ssc
syn keyword stataCommand su[mmarize]
syn keyword stataCommand syntax
syn keyword stataCommand sysdescribe
syn keyword stataCommand sysdir
syn keyword stataCommand sysuse
syn keyword stataCommand token[ize]
syn keyword stataCommand translate
syn keyword stataCommand type
syn keyword stataCommand unab
syn keyword stataCommand unabcmd
syn keyword stataCommand update
syn keyword stataCommand use
syn keyword stataCommand vers[ion]
syn keyword stataCommand view
syn keyword stataCommand viewsource
syn keyword stataCommand webdescribe
syn keyword stataCommand webseek
syn keyword stataCommand webuse
syn keyword stataCommand which
syn keyword stataCommand who
syn keyword stataCommand window

" Literals
syn match  stataQuote   /"/
syn region stataEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=@stataMacroGroup,stataQuote,stataString,stataEString
syn region stataString  matchgroup=Nothing start=/"/ end=/"/   oneline contains=@stataMacroGroup

" define clusters
syn cluster stataFuncGroup contains=@stataMacroGroup,stataFunc,stataString,stataEstring,stataParen,stataBracket
syn cluster stataMacroGroup contains=stataGlobal,stataLocal
syn cluster stataParenGroup contains=stataParenError,stataBracketError,stataBraceError,stataSpecial,stataFormat

" Stata functions
" Math
syn region stataFunc matchgroup=Function start=/\<abs(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<acos(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<asin(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<atan(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<atan2(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<atanh(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<ceil(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<cloglog(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<comb(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<cos(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<digamma(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<exp(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<floor(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<int(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invcloglog(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invlogit(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<ln(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<lnfact(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<lnfactorial(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<lngamma(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<log(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<log10(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<logit(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<max(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<mod(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<reldif(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<round(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<sign(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<sin(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<sqrt(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<sum(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<tan(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<tanh(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<trigamma(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<trunc(/ end=/)/ contains=@stataFuncGroup
" Probability distriubtions and density functions
syn region stataFunc matchgroup=Function start=/\<betaden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<Binomial(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<binorm(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<binormal(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<chi2(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<chi2tail(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dgammapda(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dgammapdada(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dgammapdadx(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dgammapdx(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dgammapdxdx(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<F(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<Fden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<Ftail(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<gammaden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<gammap(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<ibeta(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invbinomial(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invchi2(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invchi2tail(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invF(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invgammap(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invnchi2(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invnorm(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invnormal(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invttail(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<lnnormal(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<lnnormalden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<nbetaden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<nchi2(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<nFden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<nFtail(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<nibeta(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<norm(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<normal(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<normalden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<normden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<npnchi2(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<tden(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<ttail(/ end=/)/ contains=@stataFuncGroup
" Random numbers
syn region stataFunc matchgroup=Function start=/\<uniform(/ end=/)/ contains=@stataFuncGroup
" String
syn region stataFunc matchgroup=Function start=/\<abbrev(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<hchar(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<indexnot(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<itrim(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<length(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<lower(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<ltrim(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<plural(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<proper(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<real(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<regexm(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<regexr(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<regexs(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<reverse(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<rtrim(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<string(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<strlen(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<strmatch(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<strpos(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<subinstr(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<subinword(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<substr(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<trim(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<upper(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<word(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<wordcount(/ end=/)/ contains=@stataFuncGroup
" Programming
syn region stataFunc matchgroup=Function start=/\<autocode(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<byteorder(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<c(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<_caller(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<chop(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<clip(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<cond(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<e(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<epsdouble(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<epsfloat(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<float(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<inlist(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<inrange(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<irecode(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<matrix(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<maxbyte(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<maxdouble(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<maxfloat(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<maxint(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<maxlong(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<mi(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<minbyte(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<mindouble(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<minfloat(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<minint(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<minlong(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<missing(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<r(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<recode(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<replay(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<return(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<s(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<scalar(/ end=/)/ contains=@stataFuncGroup
" Date
syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<date(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<day(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dow(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<doy(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<halfyear(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<mdy(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<month(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<quarter(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<week(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<year(/ end=/)/ contains=@stataFuncGroup
" Time-series
syn region stataFunc matchgroup=Function start=/\<daily(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<halfyearly(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<monthly(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<quarterly(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<weekly(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<yearly(/ end=/)/ contains=@stataFuncGroup
"
syn region stataFunc matchgroup=Function start=/\<yh(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<ym(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<yq(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<yw(/ end=/)/ contains=@stataFuncGroup
"
syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<h(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<m(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<q(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<w(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<y(/ end=/)/ contains=@stataFuncGroup
"
syn region stataFunc matchgroup=Function start=/\<dofd(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dofh(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dofm(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dofq(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dofw(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<dofy(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<hofd(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<mofd(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<qofd(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<wofd(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<yofd(/ end=/)/ contains=@stataFuncGroup
"
syn region stataFunc matchgroup=Function start=/\<tin(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<twithin(/ end=/)/ contains=@stataFuncGroup
" Matrix
syn region stataFunc matchgroup=Function start=/\<colnumb(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<colsof(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<det(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<diag0cnt(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<el(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<issymmetric(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<matmissing(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<mreldif(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<rownumb(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<rowsof(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<trace(/ end=/)/ contains=@stataFuncGroup
"
syn region stataFunc matchgroup=Function start=/\<cholsky(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<corr(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<diag(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<get(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<hadamard(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<I(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<inv(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<invsym(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<J(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<matuniform(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<nullmat(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<sweep(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<vec(/ end=/)/ contains=@stataFuncGroup
syn region stataFunc matchgroup=Function start=/\<vecdiag(/ end=/)/ contains=@stataFuncGroup

" Errors to catch
" taken from $VIMRUNTIME/syntax/c.vim 
" catch errors caused by wrong parenthesis, braces and brackets
syn region	stataParen	transparent start=/(/ end=/)/  contains=ALLBUT,@stataParenGroup,stataErrInBracket,stataErrInBrace
syn region	stataBracket	transparent start=/\[/ end=/]/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBrace
syn region	stataBrace	transparent start=/{/ end=/}/  contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBracket
syn match	stataParenError	/[\])}]/
syn match	stataBracketError	/]/
syn match	stataBraceError	/}/
syn match	stataErrInParen	contained /[\]}]/
syn match	stataErrInBracket	contained /[)}]/
syn match	stataErrInBrace	contained /[)\]]/

" assign highlight groups
hi def link stataBraceError	stataError
hi def link stataBracketError	stataError
hi def link stataErrInBrace	stataError
hi def link stataErrInBracket	stataError
hi def link stataErrInParen	stataError
hi def link stataEString	stataString
hi def link stataFormat		stataSpecial
hi def link stataGlobal		stataMacro
hi def link stataLocal		stataMacro
hi def link stataParenError	stataError
hi def link stataSlashComment	stataComment
hi def link stataStarComment	stataComment

hi def link stataCommand	Define
hi def link stataComment	Comment
hi def link stataConditional	Conditional
hi def link stataError		Error
hi def link stataFunc		None
hi def link stataMacro		Define
hi def link stataRepeat		Repeat
hi def link stataSpecial	SpecialChar
hi def link stataString		String

let b:current_syntax = "stata"

" vim: ts=8
PK�j�Z�`uIIvim80/syntax/def.vimnu�[���" Vim syntax file
" Language:	Microsoft Module-Definition (.def) File
" Orig Author:	Rob Brady <robb@datatone.com>
" Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
" Last Change:	$Date: 2007/10/02 13:51:24 $
" $Revision: 1.2 $

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn match defComment	";.*"

syn keyword defKeyword	LIBRARY STUB EXETYPE DESCRIPTION CODE WINDOWS DOS
syn keyword defKeyword	RESIDENTNAME PRIVATE EXPORTS IMPORTS SEGMENTS
syn keyword defKeyword	HEAPSIZE DATA
syn keyword defStorage	LOADONCALL MOVEABLE DISCARDABLE SINGLE
syn keyword defStorage	FIXED PRELOAD

syn match   defOrdinal	"\s\+@\d\+"

syn region  defString	start=+'+ end=+'+

syn match   defNumber	"\d+"
syn match   defNumber	"0x\x\+"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link defComment	Comment
hi def link defKeyword	Keyword
hi def link defStorage	StorageClass
hi def link defString	String
hi def link defNumber	Number
hi def link defOrdinal	Operator


let b:current_syntax = "def"

" vim: ts=8
PK�j�Z�((vim80/syntax/debsources.vimnu�[���" Vim syntax file
" Language:     Debian sources.list
" Maintainer:   Debian Vim Maintainers
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2018 Jan 06
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim

" Standard syntax initialization
if exists("b:current_syntax")
  finish
endif

" case sensitive
syn case match

" A bunch of useful keywords
syn match debsourcesKeyword        /\(deb-src\|deb\|main\|contrib\|non-free\|restricted\|universe\|multiverse\)/

" Match comments
syn match debsourcesComment        /#.*/  contains=@Spell

let s:cpo = &cpo
set cpo-=C
let s:supported = [
      \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
      \ 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
      \
      \ 'trusty', 'xenial', 'zesty', 'artful', 'bionic', 'devel'
      \ ]
let s:unsupported = [
      \ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
      \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze',
      \
      \ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
      \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
      \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
      \ 'utopic', 'vivid', 'wily', 'yakkety'
      \ ]
let &cpo=s:cpo

" Match uri's
syn match debsourcesUri            +\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' 	<>"]\++
exe 'syn match debsourcesDistrKeyword   +\([[:alnum:]_./]*\)\<\('. join(s:supported, '\|'). '\)\>\([-[:alnum:]_./]*\)+'
exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(s:unsupported, '\|') .'\)\>\([-[:alnum:]_./]*\)+'

" Associate our matches and regions with pretty colours
hi def link debsourcesLine                    Error
hi def link debsourcesKeyword                 Statement
hi def link debsourcesDistrKeyword            Type
hi def link debsourcesUnsupportedDistrKeyword WarningMsg
hi def link debsourcesComment                 Comment
hi def link debsourcesUri                     Constant

let b:current_syntax = "debsources"
PK�j�Z�@3

vim80/syntax/sqlinformix.vimnu�[���" Vim syntax file
" Informix Structured Query Language (SQL) and Stored Procedure Language (SPL)
" Language:	SQL, SPL (Informix Dynamic Server 2000 v9.2)
" Maintainer:	Dean Hill <dhill@hotmail.com>
" Last Change:	2004 Aug 30

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore



" === Comment syntax group ===
syn region sqlComment    start="{"  end="}" contains=sqlTodo
syn match sqlComment	"--.*$" contains=sqlTodo
syn sync ccomment sqlComment



" === Constant syntax group ===
" = Boolean subgroup =
syn keyword sqlBoolean  true false
syn keyword sqlBoolean  null
syn keyword sqlBoolean  public user
syn keyword sqlBoolean  current today
syn keyword sqlBoolean  year month day hour minute second fraction

" = String subgroup =
syn region sqlString		start=+"+  end=+"+
syn region sqlString		start=+'+  end=+'+

" = Numbers subgroup =
syn match sqlNumber		"-\=\<\d*\.\=[0-9_]\>"



" === Statement syntax group ===
" SQL
syn keyword sqlStatement allocate alter
syn keyword sqlStatement begin
syn keyword sqlStatement close commit connect create
syn keyword sqlStatement database deallocate declare delete describe disconnect drop
syn keyword sqlStatement execute fetch flush free get grant info insert
syn keyword sqlStatement load lock open output
syn keyword sqlStatement prepare put
syn keyword sqlStatement rename revoke rollback select set start stop
syn keyword sqlStatement truncate unload unlock update
syn keyword sqlStatement whenever
" SPL
syn keyword sqlStatement call continue define
syn keyword sqlStatement exit
syn keyword sqlStatement let
syn keyword sqlStatement return system trace

" = Conditional subgroup =
" SPL
syn keyword sqlConditional elif else if then
syn keyword sqlConditional case
" Highlight "end if" with one or more separating spaces
syn match  sqlConditional "end \+if"

" = Repeat subgroup =
" SQL/SPL
" Handle SQL triggers' "for each row" clause and SPL "for" loop
syn match  sqlRepeat "for\( \+each \+row\)\="
" SPL
syn keyword sqlRepeat foreach while
" Highlight "end for", etc. with one or more separating spaces
syn match  sqlRepeat "end \+for"
syn match  sqlRepeat "end \+foreach"
syn match  sqlRepeat "end \+while"

" = Exception subgroup =
" SPL
syn match  sqlException "on \+exception"
syn match  sqlException "end \+exception"
syn match  sqlException "end \+exception \+with \+resume"
syn match  sqlException "raise \+exception"

" = Keyword subgroup =
" SQL
syn keyword sqlKeyword aggregate add as authorization autofree by
syn keyword sqlKeyword cache cascade check cluster collation
syn keyword sqlKeyword column connection constraint cross
syn keyword sqlKeyword dataskip debug default deferred_prepare
syn keyword sqlKeyword descriptor diagnostics
syn keyword sqlKeyword each escape explain external
syn keyword sqlKeyword file foreign fragment from function
syn keyword sqlKeyword group having
syn keyword sqlKeyword immediate index inner into isolation
syn keyword sqlKeyword join key
syn keyword sqlKeyword left level log
syn keyword sqlKeyword mode modify mounting new no
syn keyword sqlKeyword object of old optical option
syn keyword sqlKeyword optimization order outer
syn keyword sqlKeyword pdqpriority pload primary procedure
syn keyword sqlKeyword references referencing release reserve
syn keyword sqlKeyword residency right role routine row
syn keyword sqlKeyword schedule schema scratch session set
syn keyword sqlKeyword statement statistics synonym
syn keyword sqlKeyword table temp temporary timeout to transaction trigger
syn keyword sqlKeyword using values view violations
syn keyword sqlKeyword where with work
" Highlight "on" (if it's not followed by some words we've already handled)
syn match sqlKeyword "on \+\(exception\)\@!"
" SPL
" Highlight "end" (if it's not followed by some words we've already handled)
syn match sqlKeyword "end \+\(if\|for\|foreach\|while\|exception\)\@!"
syn keyword sqlKeyword resume returning

" = Operator subgroup =
" SQL
syn keyword sqlOperator	not and or
syn keyword sqlOperator	in is any some all between exists
syn keyword sqlOperator	like matches
syn keyword sqlOperator union intersect
syn keyword sqlOperator distinct unique



" === Identifier syntax group ===
" = Function subgroup =
" SQL
syn keyword sqlFunction	abs acos asin atan atan2 avg
syn keyword sqlFunction	cardinality cast char_length character_length cos count
syn keyword sqlFunction	exp filetoblob filetoclob hex
syn keyword sqlFunction	initcap length logn log10 lower lpad
syn keyword sqlFunction	min max mod octet_length pow range replace root round rpad
syn keyword sqlFunction	sin sqrt stdev substr substring sum
syn keyword sqlFunction	to_char tan to_date trim trunc upper variance



" === Type syntax group ===
" SQL
syn keyword sqlType	blob boolean byte char character clob
syn keyword sqlType	date datetime dec decimal double
syn keyword sqlType	float int int8 integer interval list lvarchar
syn keyword sqlType	money multiset nchar numeric nvarchar
syn keyword sqlType	real serial serial8 smallfloat smallint
syn keyword sqlType	text varchar varying



" === Todo syntax group ===
syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE



" Define the default highlighting.
" Only when an item doesn't have highlighting yet


" === Comment syntax group ===
hi def link sqlComment	Comment

" === Constant syntax group ===
hi def link sqlNumber	Number
hi def link sqlBoolean	Boolean
hi def link sqlString	String

" === Statment syntax group ===
hi def link sqlStatement	Statement
hi def link sqlConditional	Conditional
hi def link sqlRepeat		Repeat
hi def link sqlKeyword		Keyword
hi def link sqlOperator	Operator
hi def link sqlException	Exception

" === Identifier syntax group ===
hi def link sqlFunction	Function

" === Type syntax group ===
hi def link sqlType	Type

" === Todo syntax group ===
hi def link sqlTodo	Todo


let b:current_syntax = "sqlinformix"
PK�j�Zt�;r�$�$vim80/syntax/vhdl.vimnu�[���" Vim syntax file
" Language:		VHDL [VHSIC (Very High Speed Integrated Circuit) Hardware Description Language]
" Maintainer:		Daniel Kho <daniel.kho@tauhop.com>
" Previous Maintainer:	Czo <Olivier.Sirol@lip6.fr>
" Credits:		Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
" Last Changed:		2016 Mar 05 by Daniel Kho

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" case is not significant
syn case	ignore

" VHDL keywords
syn keyword	vhdlStatement	access after alias all assert
syn keyword 	vhdlStatement	architecture array attribute
syn keyword 	vhdlStatement	assume assume_guarantee
syn keyword 	vhdlStatement	begin block body buffer bus
syn keyword 	vhdlStatement	case component configuration constant
syn keyword 	vhdlStatement	context cover
syn keyword 	vhdlStatement	default disconnect downto
syn keyword 	vhdlStatement	elsif end entity exit
syn keyword 	vhdlStatement	file for function
syn keyword 	vhdlStatement	fairness force
syn keyword 	vhdlStatement	generate generic group guarded
syn keyword 	vhdlStatement	impure in inertial inout is
syn keyword 	vhdlStatement	label library linkage literal loop
syn keyword 	vhdlStatement	map
syn keyword 	vhdlStatement	new next null
syn keyword 	vhdlStatement	of on open others out
syn keyword 	vhdlStatement	package port postponed procedure process pure
syn keyword 	vhdlStatement	parameter property protected
syn keyword 	vhdlStatement	range record register reject report return
syn keyword 	vhdlStatement	release restrict restrict_guarantee
syn keyword 	vhdlStatement	select severity signal shared
syn keyword 	vhdlStatement	subtype
syn keyword 	vhdlStatement	sequence strong
syn keyword 	vhdlStatement	then to transport type
syn keyword 	vhdlStatement	unaffected units until use
syn keyword 	vhdlStatement	variable
syn keyword 	vhdlStatement	vmode vprop vunit
syn keyword 	vhdlStatement	wait when while with
syn keyword 	vhdlStatement	note warning error failure

" Linting of conditionals.
syn match	vhdlStatement	"\<\(if\|else\)\>"
syn match	vhdlError	"\<else\s\+if\>"

" Types and type qualifiers
" Predefined standard VHDL types
syn match	vhdlType	"\<bit\>\'\="
syn match	vhdlType	"\<boolean\>\'\="
syn match	vhdlType	"\<natural\>\'\="
syn match	vhdlType	"\<positive\>\'\="
syn match	vhdlType	"\<integer\>\'\="
syn match	vhdlType	"\<real\>\'\="
syn match	vhdlType	"\<time\>\'\="

syn match	vhdlType	"\<bit_vector\>\'\="
syn match	vhdlType	"\<boolean_vector\>\'\="
syn match	vhdlType	"\<integer_vector\>\'\="
syn match	vhdlType	"\<real_vector\>\'\="
syn match	vhdlType	"\<time_vector\>\'\="

syn match	vhdlType	"\<character\>\'\="
syn match	vhdlType	"\<string\>\'\="
"syn keyword	vhdlType	severity_level
syn keyword	vhdlType	line
syn keyword	vhdlType	text

" Predefined standard IEEE VHDL types
syn match	vhdlType	"\<std_ulogic\>\'\="
syn match	vhdlType	"\<std_logic\>\'\="
syn match	vhdlType	"\<std_ulogic_vector\>\'\="
syn match	vhdlType	"\<std_logic_vector\>\'\="
syn match	vhdlType	"\<unresolved_signed\>\'\="
syn match	vhdlType	"\<unresolved_unsigned\>\'\="
syn match	vhdlType	"\<u_signed\>\'\="
syn match	vhdlType	"\<u_unsigned\>\'\="
syn match	vhdlType	"\<signed\>\'\="
syn match	vhdlType	"\<unsigned\>\'\="


" array attributes
syn match	vhdlAttribute	"\'high"
syn match	vhdlAttribute	"\'left"
syn match	vhdlAttribute	"\'length"
syn match	vhdlAttribute	"\'low"
syn match	vhdlAttribute	"\'range"
syn match	vhdlAttribute	"\'reverse_range"
syn match	vhdlAttribute	"\'right"
syn match	vhdlAttribute	"\'ascending"
" block attributes
syn match	vhdlAttribute	"\'simple_name"
syn match   	vhdlAttribute	"\'instance_name"
syn match   	vhdlAttribute	"\'path_name"
syn match   	vhdlAttribute	"\'foreign"	    " VHPI
" signal attribute
syn match	vhdlAttribute	"\'active"
syn match   	vhdlAttribute	"\'delayed"
syn match   	vhdlAttribute	"\'event"
syn match   	vhdlAttribute	"\'last_active"
syn match   	vhdlAttribute	"\'last_event"
syn match   	vhdlAttribute	"\'last_value"
syn match   	vhdlAttribute	"\'quiet"
syn match   	vhdlAttribute	"\'stable"
syn match   	vhdlAttribute	"\'transaction"
syn match   	vhdlAttribute	"\'driving"
syn match   	vhdlAttribute	"\'driving_value"
" type attributes
syn match	vhdlAttribute	"\'base"
syn match   	vhdlAttribute	"\'subtype"
syn match   	vhdlAttribute	"\'element"
syn match   	vhdlAttribute	"\'leftof"
syn match   	vhdlAttribute	"\'pos"
syn match   	vhdlAttribute	"\'pred"
syn match   	vhdlAttribute	"\'rightof"
syn match   	vhdlAttribute	"\'succ"
syn match   	vhdlAttribute	"\'val"
syn match   	vhdlAttribute	"\'image"
syn match   	vhdlAttribute	"\'value"

syn keyword	vhdlBoolean	true false

" for this vector values case is significant
syn case	match
" Values for standard VHDL types
syn match	vhdlVector	"\'[0L1HXWZU\-\?]\'"
syn case	ignore

syn match	vhdlVector	"B\"[01_]\+\""
syn match   	vhdlVector	"O\"[0-7_]\+\""
syn match   	vhdlVector	"X\"[0-9a-f_]\+\""
syn match   	vhdlCharacter   "'.'"
syn region  	vhdlString	start=+"+  end=+"+

" floating numbers
syn match	vhdlNumber	"-\=\<\d\+\.\d\+\(E[+\-]\=\d\+\)\>"
syn match	vhdlNumber	"-\=\<\d\+\.\d\+\>"
syn match	vhdlNumber	"0*2#[01_]\+\.[01_]\+#\(E[+\-]\=\d\+\)\="
syn match	vhdlNumber	"0*16#[0-9a-f_]\+\.[0-9a-f_]\+#\(E[+\-]\=\d\+\)\="
" integer numbers
syn match	vhdlNumber	"-\=\<\d\+\(E[+\-]\=\d\+\)\>"
syn match	vhdlNumber	"-\=\<\d\+\>"
syn match	vhdlNumber	"0*2#[01_]\+#\(E[+\-]\=\d\+\)\="
syn match	vhdlNumber	"0*16#[0-9a-f_]\+#\(E[+\-]\=\d\+\)\="

" operators
syn keyword	vhdlOperator	and nand or nor xor xnor
syn keyword	vhdlOperator	rol ror sla sll sra srl
syn keyword	vhdlOperator	mod rem abs not

" Concatenation and math operators
syn match	vhdlOperator	"&\|+\|-\|\*\|\/"

" Equality and comparison operators
syn match	vhdlOperator	"=\|\/=\|>\|<\|>="

" Assignment operators
syn match	vhdlOperator	"<=\|:="
syn match	vhdlOperator	"=>"

" VHDL-2008 conversion, matching equality/non-equality operators
syn match	vhdlOperator	"??\|?=\|?\/=\|?<\|?<=\|?>\|?>="

" VHDL-2008 external names
syn match	vhdlOperator	"<<\|>>"

" Linting for illegal operators
" '='
syn match	vhdlError	"\(=\)[<=&+\-\*\/\\]\+"
syn match	vhdlError	"[=&+\-\*\\]\+\(=\)"
" '>', '<'
" Allow external names: '<< ... >>'
syn match	vhdlError	"\(>\)[<&+\-\/\\]\+"
syn match	vhdlError	"[&+\-\/\\]\+\(>\)"
syn match	vhdlError	"\(<\)[&+\-\/\\]\+"
syn match	vhdlError	"[>=&+\-\/\\]\+\(<\)"
" Covers most operators
" support negative sign after operators. E.g. q<=-b;
syn match	vhdlError	"\(&\|+\|\-\|\*\*\|\/=\|??\|?=\|?\/=\|?<=\|?>=\|>=\|<=\|:=\|=>\)[<>=&+\*\\?:]\+"
syn match	vhdlError	"[<>=&+\-\*\\:]\+\(&\|+\|\*\*\|\/=\|??\|?=\|?\/=\|?<\|?<=\|?>\|?>=\|>=\|<=\|:=\|=>\)"
syn match	vhdlError	"\(?<\|?>\)[<>&+\*\/\\?:]\+"
syn match	vhdlError	"\(<<\|>>\)[<>&+\*\/\\?:]\+"

"syn match	vhdlError	"[?]\+\(&\|+\|\-\|\*\*\|??\|?=\|?\/=\|?<\|?<=\|?>\|?>=\|:=\|=>\)"
" '/'
syn match	vhdlError	"\(\/\)[<>&+\-\*\/\\?:]\+"
syn match	vhdlError	"[<>=&+\-\*\/\\:]\+\(\/\)"

syn match	vhdlSpecial	"<>"
syn match	vhdlSpecial	"[().,;]"


" time
syn match	vhdlTime	"\<\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"
syn match	vhdlTime	"\<\d\+\.\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"

syn case	match
syn keyword	vhdlTodo	contained TODO NOTE
syn keyword	vhdlFixme	contained FIXME
syn case	ignore

syn region	vhdlComment	start="/\*" end="\*/"	contains=vhdlTodo,vhdlFixme,@Spell
syn match	vhdlComment	"\(^\|\s\)--.*"		contains=vhdlTodo,vhdlFixme,@Spell

" Standard IEEE P1076.6 preprocessor directives (metacomments).
syn match	vhdlPreProc	"/\*\s*rtl_synthesis\s\+\(on\|off\)\s*\*/"
syn match	vhdlPreProc	"\(^\|\s\)--\s*rtl_synthesis\s\+\(on\|off\)\s*"
syn match	vhdlPreProc	"/\*\s*rtl_syn\s\+\(on\|off\)\s*\*/"
syn match	vhdlPreProc	"\(^\|\s\)--\s*rtl_syn\s\+\(on\|off\)\s*"

" Industry-standard directives. These are not standard VHDL, but are commonly
" used in the industry.
syn match	vhdlPreProc	"/\*\s*synthesis\s\+translate_\(on\|off\)\s*\*/"
"syn match	vhdlPreProc	"/\*\s*simulation\s\+translate_\(on\|off\)\s*\*/"
syn match	vhdlPreProc	"/\*\s*pragma\s\+translate_\(on\|off\)\s*\*/"
syn match	vhdlPreProc	"/\*\s*pragma\s\+synthesis_\(on\|off\)\s*\*/"
syn match	vhdlPreProc	"/\*\s*synopsys\s\+translate_\(on\|off\)\s*\*/"

syn match	vhdlPreProc	"\(^\|\s\)--\s*synthesis\s\+translate_\(on\|off\)\s*"
"syn match	vhdlPreProc	"\(^\|\s\)--\s*simulation\s\+translate_\(on\|off\)\s*"
syn match	vhdlPreProc	"\(^\|\s\)--\s*pragma\s\+translate_\(on\|off\)\s*"
syn match	vhdlPreProc	"\(^\|\s\)--\s*pragma\s\+synthesis_\(on\|off\)\s*"
syn match	vhdlPreProc	"\(^\|\s\)--\s*synopsys\s\+translate_\(on\|off\)\s*"

"Modify the following as needed.  The trade-off is performance versus functionality.
syn sync	minlines=600

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link vhdlSpecial	Special
hi def link vhdlStatement   Statement
hi def link vhdlCharacter   Character
hi def link vhdlString	String
hi def link vhdlVector	Number
hi def link vhdlBoolean	Number
hi def link vhdlTodo	Todo
hi def link vhdlFixme	Fixme
hi def link vhdlComment	Comment
hi def link vhdlNumber	Number
hi def link vhdlTime	Number
hi def link vhdlType	Type
hi def link vhdlOperator    Operator
hi def link vhdlError	Error
hi def link vhdlAttribute   Special
hi def link vhdlPreProc	PreProc


let b:current_syntax = "vhdl"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�'��vim80/syntax/gretl.vimnu�[���" Vim syntax file
" Language:	gretl (http://gretl.sf.net)
" Maintainer:	Vaidotas Zemlys <zemlys@gmail.com>
" Last Change:  2006 Apr 30
" Filenames:	*.inp *.gretl
" URL:	http://uosis.mif.vu.lt/~zemlys/vim-syntax/gretl.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=@,48-57,_,.

syn case match

" Constant
" string enclosed in double quotes
syn region gString start=/"/ skip=/\\\\\|\\"/ end=/"/
" number with no fractional part or exponent
syn match gNumber /\d\+/
" floating point number with integer and fractional parts and optional exponent
syn match gFloat /\d\+\.\d*\([Ee][-+]\=\d\+\)\=/
" floating point number with no integer part and optional exponent
syn match gFloat /\.\d\+\([Ee][-+]\=\d\+\)\=/
" floating point number with no fractional part and optional exponent
syn match gFloat /\d\+[Ee][-+]\=\d\+/

" Gretl commands
syn keyword gCommands add addobs addto adf append ar arch arma break boxplot chow coeffsum coint coint2 corc corr corrgm criteria critical cusum data delete diff else end endif endloop eqnprint equation estimate fcast fcasterr fit freq function funcerr garch genr gnuplot graph hausman hccm help hilu hsk hurst if import include info kpss label labels lad lags ldiff leverage lmtest logistic logit logs loop mahal meantest mle modeltab mpols multiply nls nulldata ols omit omitfrom open outfile panel pca pergm plot poisson pooled print printf probit pvalue pwe quit remember rename reset restrict rhodiff rmplot run runs scatters sdiff set setobs setmiss shell sim smpl spearman square store summary system tabprint testuhat tobit transpos tsls var varlist vartest vecm vif wls 

"Gretl genr functions
syn keyword gGenrFunc log exp sin cos tan atan diff ldiff sdiff mean sd min max sort int ln coeff abs rho sqrt sum nobs firstobs lastobs normal uniform stderr cum missing ok misszero corr vcv var sst cov median zeromiss pvalue critical obsnum mpow dnorm cnorm gamma lngamma resample hpfilt bkfilt fracdiff varnum isvector islist nelem 

" Identifier
" identifier with leading letter and optional following keyword characters
syn match gIdentifier /\a\k*/

"  Variable with leading $
syn match gVariable /\$\k*/
" Arrow
syn match gArrow /<-/

" Special
syn match gDelimiter /[,;:]/

" Error
syn region gRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError,gBCstart,gBCend
syn region gRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
syn region gRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
syn match gError      /[)\]}]/
syn match gBraceError /[)}]/ contained
syn match gCurlyError /[)\]]/ contained
syn match gParenError /[\]}]/ contained

" Comment
syn match gComment /#.*/
syn match gBCstart /(\*/
syn match gBCend /\*)/

syn region gBlockComment matchgroup=gCommentStart start="(\*" end="\*)"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link gComment      Comment
hi def link gCommentStart Comment
hi def link gBlockComment Comment
hi def link gString       String
hi def link gNumber       Number
hi def link gBoolean      Boolean
hi def link gFloat        Float
hi def link gCommands     Repeat	
hi def link gGenrFunc     Type
hi def link gDelimiter    Delimiter
hi def link gError        Error
hi def link gBraceError   Error
hi def link gCurlyError   Error
hi def link gParenError   Error
hi def link gIdentifier   Normal
hi def link gVariable     Identifier
hi def link gArrow	       Repeat

let b:current_syntax="gretl"

" vim: ts=8 sw=2
PK�j�Z��Y��vim80/syntax/tt2.vimnu�[���" Language:      TT2 (Perl Template Toolkit)
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Author:        Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2015-04-25
"
" Installation:
"   put tt2.vim and tt2html.vim in to your syntax directory.
"
"   add below in your filetype.vim.
"       au BufNewFile,BufRead *.tt2 setf tt2
"           or
"       au BufNewFile,BufRead *.tt2
"           \ if ( getline(1) . getline(2) . getline(3) =~ '<\chtml' |
"           \           && getline(1) . getline(2) . getline(3) !~ '<[%?]' ) |
"           \   || getline(1) =~ '<!DOCTYPE HTML' |
"           \   setf tt2html |
"           \ else |
"           \   setf tt2 |
"           \ endif
"
"   define START_TAG, END_TAG
"       "ASP"
"       :let b:tt2_syn_tags = '<% %>'
"       "PHP"
"       :let b:tt2_syn_tags = '<? ?>'
"       "TT2 and HTML"
"       :let b:tt2_syn_tags = '\[% %] <!-- -->'
"
" Changes:
"           0.1.3
"               Changed fileformat from 'dos' to 'unix'
"               Deleted 'echo' that print obstructive message
"           0.1.2
"               Added block comment syntax
"               e.g. [%# COMMENT
"                        COMMENT TOO %]
"                    [%# IT'S SAFE %]  HERE IS OUTSIDE OF TT2 DIRECTIVE
"                    [% # WRONG!! %]   HERE STILL BE COMMENT
"           0.1.1
"               Release
"           0.1.0
"               Internal
"
" License: follow Vim :help uganda
"

if !exists("b:tt2_syn_tags")
    let b:tt2_syn_tags = '\[% %]'
    "let b:tt2_syn_tags = '\[% %] \[\* \*]'
endif

if !exists("b:tt2_syn_inc_perl")
    let b:tt2_syn_inc_perl = 1
endif

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case match

syn cluster tt2_top_cluster contains=tt2_perlcode,tt2_tag_region

" TT2 TAG Region
if exists("b:tt2_syn_tags")

    let s:str = b:tt2_syn_tags . ' '
    let s:str = substitute(s:str,'^ \+','','g')
    let s:str = substitute(s:str,' \+',' ','g')

    while stridx(s:str,' ') > 0

        let s:st = strpart(s:str,0,stridx(s:str,' '))
        let s:str = substitute(s:str,'[^ ]* ','',"")

        let s:ed = strpart(s:str,0,stridx(s:str,' '))
        let s:str = substitute(s:str,'[^ ]* ','',"")

        exec 'syn region  tt2_tag_region '.
                    \ 'matchgroup=tt2_tag '.
                    \ 'start=+\(' . s:st .'\)[-]\=+ '.
                    \ 'end=+[-]\=\(' . s:ed . '\)+ '.
                    \ 'contains=@tt2_statement_cluster keepend extend'

        exec 'syn region  tt2_commentblock_region '.
                    \ 'matchgroup=tt2_tag '.
                    \ 'start=+\(' . s:st .'\)[-]\=\(#\)\@=+ '.
                    \ 'end=+[-]\=\(' . s:ed . '\)+ '.
                    \ 'keepend extend'

        "Include Perl syntax when 'PERL' 'RAWPERL' block
        if b:tt2_syn_inc_perl
            syn include @Perl $VIMRUNTIME/syntax/perl.vim
            exec 'syn region tt2_perlcode '.
                        \ 'start=+\(\(RAW\)\=PERL\s*[-]\=' . s:ed . '\(\n\)\=\)\@<=+ ' .
                        \ 'end=+' . s:st . '[-]\=\s*END+me=s-1 contains=@Perl keepend'
        endif

        "echo 'TAGS ' . s:st . ' ' . s:ed
        unlet s:st
        unlet s:ed
    endwhile

else

    syn region  tt2_tag_region
                \ matchgroup=tt2_tag
                \ start=+\(\[%\)[-]\=+
                \ end=+[-]\=%\]+
                \ contains=@tt2_statement_cluster keepend extend

    syn region  tt2_commentblock_region
                \ matchgroup=tt2_tag
                \ start=+\(\[%\)[-]\=#+
                \ end=+[-]\=%\]+
                \ keepend extend

    "Include Perl syntax when 'PERL' 'RAWPERL' block
    if b:tt2_syn_inc_perl
        syn include @Perl $VIMRUNTIME/syntax/perl.vim
        syn region tt2_perlcode
                    \ start=+\(\(RAW\)\=PERL\s*[-]\=%]\(\n\)\=\)\@<=+
                    \ end=+\[%[-]\=\s*END+me=s-1
                    \ contains=@Perl keepend
    endif
endif

" Directive
syn keyword tt2_directive contained
            \ GET CALL SET DEFAULT DEBUG
            \ LAST NEXT BREAK STOP BLOCK
            \ IF IN UNLESS ELSIF FOR FOREACH WHILE SWITCH CASE
            \ USE PLUGIN MACRO META
            \ TRY FINAL RETURN LAST
            \ CLEAR TO STEP AND OR NOT MOD DIV
            \ ELSE PERL RAWPERL END
syn match   tt2_directive +|+ contained
syn keyword tt2_directive contained nextgroup=tt2_string_q,tt2_string_qq,tt2_blockname skipwhite skipempty
            \ INSERT INCLUDE PROCESS WRAPPER FILTER
            \ THROW CATCH
syn keyword tt2_directive contained nextgroup=tt2_def_tag skipwhite skipempty
            \ TAGS

syn match   tt2_def_tag "\S\+\s\+\S\+\|\<\w\+\>" contained

syn match   tt2_variable  +\I\w*+                           contained
syn match   tt2_operator  "[+*/%:?-]"                       contained
syn match   tt2_operator  "\<\(mod\|div\|or\|and\|not\)\>"  contained
syn match   tt2_operator  "[!=<>]=\=\|&&\|||"               contained
syn match   tt2_operator  "\(\s\)\@<=_\(\s\)\@="            contained
syn match   tt2_operator  "=>\|,"                           contained
syn match   tt2_deref     "\([[:alnum:]_)\]}]\s*\)\@<=\."   contained
syn match   tt2_comment   +#.*$+                            contained extend
syn match   tt2_func      +\<\I\w*\(\s*(\)\@=+              contained nextgroup=tt2_bracket_r skipempty skipwhite
"
syn region  tt2_bracket_r  start=+(+ end=+)+                contained contains=@tt2_statement_cluster keepend extend
syn region  tt2_bracket_b start=+\[+ end=+]+                contained contains=@tt2_statement_cluster keepend extend
syn region  tt2_bracket_b start=+{+  end=+}+                contained contains=@tt2_statement_cluster keepend extend

syn region  tt2_string_qq start=+"+ end=+"+ skip=+\\"+      contained contains=tt2_ivariable keepend extend
syn region  tt2_string_q  start=+'+ end=+'+ skip=+\\'+      contained keepend extend

syn match   tt2_ivariable  +\$\I\w*\>\(\.\I\w*\>\)*+        contained
syn match   tt2_ivariable  +\${\I\w*\>\(\.\I\w*\>\)*}+      contained

syn match   tt2_number    "\d\+"        contained
syn match   tt2_number    "\d\+\.\d\+"  contained
syn match   tt2_number    "0x\x\+"      contained
syn match   tt2_number    "0\o\+"       contained

syn match   tt2_blockname "\f\+"                       contained                        nextgroup=tt2_blockname_joint skipwhite skipempty
syn match   tt2_blockname "$\w\+"                      contained contains=tt2_ivariable nextgroup=tt2_blockname_joint skipwhite skipempty
syn region  tt2_blockname start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn region  tt2_blockname start=+'+ end=+'+ skip=+\\'+ contained                        nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn match   tt2_blockname_joint "+"                    contained                        nextgroup=tt2_blockname skipwhite skipempty

syn cluster tt2_statement_cluster contains=tt2_directive,tt2_variable,tt2_operator,tt2_string_q,tt2_string_qq,tt2_deref,tt2_comment,tt2_func,tt2_bracket_b,tt2_bracket_r,tt2_number

" Synchronizing
syn sync minlines=50

hi def link tt2_tag         Type
hi def link tt2_tag_region  Type
hi def link tt2_commentblock_region Comment
hi def link tt2_directive   Statement
hi def link tt2_variable    Identifier
hi def link tt2_ivariable   Identifier
hi def link tt2_operator    Statement
hi def link tt2_string_qq   String
hi def link tt2_string_q    String
hi def link tt2_blockname   String
hi def link tt2_comment     Comment
hi def link tt2_func        Function
hi def link tt2_number      Number

if exists("b:tt2_syn_tags")
    unlet b:tt2_syn_tags
endif

let b:current_syntax = "tt2"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:ts=4:sw=4
PK�j�Zm� )��vim80/syntax/lprolog.vimnu�[���" Vim syntax file
" Language:     LambdaProlog (Teyjus)
" Filenames:    *.mod *.sig
" Maintainer:   Markus Mottl  <markus.mottl@gmail.com>
" URL:          http://www.ocaml.info/vim/syntax/lprolog.vim
" Last Change:  2006 Feb 05
"               2001 Apr 26 - Upgraded for new Vim version
"               2000 Jun  5 - Initial release

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Lambda Prolog is case sensitive.
syn case match

syn match   lprologBrackErr    "\]"
syn match   lprologParenErr    ")"

syn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName

" Enclosing delimiters
syn region  lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr
syn region  lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr

" General identifiers
syn match   lprologIdentifier  "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>"
syn match   lprologVariable    "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>"

syn match   lprologOperator  "/"

" Comments
syn region  lprologComment  start="/\*" end="\*/" contains=lprologComment,lprologTodo
syn region  lprologComment  start="%" end="$" contains=lprologTodo
syn keyword lprologTodo  contained TODO FIXME XXX

syn match   lprologInteger  "\<\d\+\>"
syn match   lprologReal     "\<\(\d\+\)\=\.\d+\>"
syn region  lprologString   start=+"+ skip=+\\\\\|\\"+ end=+"+

" Clause definitions
syn region  lprologClause start="^\w\+" end=":-\|\."

" Modules
syn region  lprologModule matchgroup=lprologKeyword start="^\<module\>" matchgroup=lprologKeyword end="\."

" Types
syn match   lprologKeyword "^\<type\>" skipwhite nextgroup=lprologTypeNames
syn region  lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator
syn match   lprologTypeName "\<\w\+\>" contained

" Keywords
syn keyword lprologKeyword  end import accumulate accum_sig
syn keyword lprologKeyword  local localkind closed sig
syn keyword lprologKeyword  kind exportdef useonly
syn keyword lprologKeyword  infixl infixr infix prefix
syn keyword lprologKeyword  prefixr postfix postfixl

syn keyword lprologSpecial  pi sigma is true fail halt stop not

" Operators
syn match   lprologSpecial ":-"
syn match   lprologSpecial "->"
syn match   lprologSpecial "=>"
syn match   lprologSpecial "\\"
syn match   lprologSpecial "!"

syn match   lprologSpecial ","
syn match   lprologSpecial ";"
syn match   lprologSpecial "&"

syn match   lprologOperator "+"
syn match   lprologOperator "-"
syn match   lprologOperator "*"
syn match   lprologOperator "\~"
syn match   lprologOperator "\^"
syn match   lprologOperator "<"
syn match   lprologOperator ">"
syn match   lprologOperator "=<"
syn match   lprologOperator ">="
syn match   lprologOperator "::"
syn match   lprologOperator "="

syn match   lprologOperator "\."
syn match   lprologOperator ":"
syn match   lprologOperator "|"

syn match   lprologCommentErr  "\*/"

syn sync minlines=50
syn sync maxlines=500


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link lprologComment     Comment
hi def link lprologTodo	    Todo

hi def link lprologKeyword     Keyword
hi def link lprologSpecial     Special
hi def link lprologOperator    Operator
hi def link lprologIdentifier  Normal

hi def link lprologInteger     Number
hi def link lprologReal	    Number
hi def link lprologString	    String

hi def link lprologCommentErr  Error
hi def link lprologBrackErr    Error
hi def link lprologParenErr    Error

hi def link lprologModuleName  Special
hi def link lprologTypeName    Identifier

hi def link lprologVariable    Keyword
hi def link lprologAtom	    Normal
hi def link lprologClause	    Type


let b:current_syntax = "lprolog"

" vim: ts=8
PK�j�Z�D)�UUvim80/syntax/rcs.vimnu�[���" Vim syntax file
" Language:     RCS file
" Maintainer:   Dmitry Vasiliev <dima at hlabs dot org>
" URL:          https://github.com/hdima/vim-scripts/blob/master/syntax/rcs.vim
" Last Change:  2012-02-11
" Filenames:    *,v
" Version:      1.12

" Options:
"   rcs_folding = 1   For folding strings

" quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif

" RCS file must end with a newline.
syn match rcsEOFError   ".\%$" containedin=ALL

" Keywords.
syn keyword rcsKeyword  head branch access symbols locks strict
syn keyword rcsKeyword  comment expand date author state branches
syn keyword rcsKeyword  next desc log
syn keyword rcsKeyword  text nextgroup=rcsTextStr skipwhite skipempty

" Revision numbers and dates.
syn match rcsNumber "\<[0-9.]\+\>" display

" Strings.
if exists("rcs_folding") && has("folding")
  " Folded strings.
  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" fold contains=rcsSpecial
  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" fold contained contains=rcsSpecial,rcsDiffLines
else
  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" contains=rcsSpecial
  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" contained contains=rcsSpecial,rcsDiffLines
endif
syn match rcsSpecial    "@@" contained
syn match rcsDiffLines  "[da]\d\+ \d\+$" contained

" Synchronization.
syn sync clear
if exists("rcs_folding") && has("folding")
  syn sync fromstart
else
  " We have incorrect folding if following sync patterns is turned on.
  syn sync match rcsSync    grouphere rcsString "[0-9.]\+\(\s\|\n\)\+log\(\s\|\n\)\+@"me=e-1
  syn sync match rcsSync    grouphere rcsTextStr "@\(\s\|\n\)\+text\(\s\|\n\)\+@"me=e-1
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet.

hi def link rcsKeyword     Keyword
hi def link rcsNumber      Identifier
hi def link rcsString      String
hi def link rcsTextStr     String
hi def link rcsSpecial     Special
hi def link rcsDiffLines   Special
hi def link rcsEOFError    Error


let b:current_syntax = "rcs"
PK�j�Z�i���vim80/syntax/spice.vimnu�[���" Vim syntax file
" Language:	Spice circuit simulator input netlist
" Maintainer:	Noam Halevy <Noam.Halevy.motorola.com>
" Last Change:	2012 Jun 01
" 		(Dominique Pelle added @Spell)
"
" This is based on sh.vim by Lennart Schultz
" but greatly simplified

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" spice syntax is case INsensitive
syn case ignore

syn keyword	spiceTodo	contained TODO

syn match spiceComment  "^ \=\*.*$" contains=@Spell
syn match spiceComment  "\$.*$" contains=@Spell

" Numbers, all with engineering suffixes and optional units
"==========================================================
"floating point number, with dot, optional exponent
syn match spiceNumber  "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
"floating point number, starting with a dot, optional exponent
syn match spiceNumber  "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
"integer number with optional exponent
syn match spiceNumber  "\<[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="

" Misc
"=====
syn match   spiceWrapLineOperator       "\\$"
syn match   spiceWrapLineOperator       "^+"

syn match   spiceStatement      "^ \=\.\I\+"

" Matching pairs of parentheses
"==========================================
syn region  spiceParen transparent matchgroup=spiceOperator start="(" end=")" contains=ALLBUT,spiceParenError
syn region  spiceSinglequote matchgroup=spiceOperator start=+'+ end=+'+

" Errors
"=======
syn match spiceParenError ")"

" Syncs
" =====
syn sync minlines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link spiceTodo		Todo
hi def link spiceWrapLineOperator	spiceOperator
hi def link spiceSinglequote	spiceExpr
hi def link spiceExpr		Function
hi def link spiceParenError	Error
hi def link spiceStatement		Statement
hi def link spiceNumber		Number
hi def link spiceComment		Comment
hi def link spiceOperator		Operator


let b:current_syntax = "spice"

" insert the following to $VIM/syntax/scripts.vim
" to autodetect HSpice netlists and text listing output:
"
" " Spice netlists and text listings
" elseif getline(1) =~ 'spice\>' || getline("$") =~ '^\.end'
"   so <sfile>:p:h/spice.vim

" vim: ts=8
PK�j�ZNL)����vim80/syntax/xs.vimnu�[���" Vim syntax file
" Language:    XS (Perl extension interface language)
" Author:      Autogenerated from perl headers, on an original basis of Michael W. Dodge <sarge@pobox.com>
" Maintainer:  vim-perl <vim-perl@googlegroups.com>
" Previous:    Vincent Pit <perl@profvince.com>
" Last Change: 2017-09-12

if exists("b:current_syntax")
  finish
endif

runtime! syntax/c.vim

" Configuration:
" let xs_superseded = 0 " mark C functions superseded by Perl replacements (ex. memcpy vs Copy)
" let xs_not_core   = 0 " mark private core functions

if get(g:, 'xs_superseded', 0)
syn keyword xsSuperseded atof atol calloc clearerr exit fclose feof ferror
syn keyword xsSuperseded fflush fgetc fgetpos fgets fopen fprintf fputc fputs
syn keyword xsSuperseded fread free freopen fseek fsetpos fwrite getc getenv
syn keyword xsSuperseded isalnum isalpha iscntrl isdigit isgraph islower
syn keyword xsSuperseded isprint ispunct isspace isupper isxdigit malloc
syn keyword xsSuperseded memcpy memmove memset printf putc rand realloc
syn keyword xsSuperseded rewind setenv sprintf srand stderr stdin stdout
syn keyword xsSuperseded strcat strcmp strcpy strdup strlen strncat strncmp
syn keyword xsSuperseded strncpy strstr strtod strtol strtoul system tolower
syn keyword xsSuperseded toupper ungetc
endif
if get(g:, 'xs_not_core', 0)
syn keyword xsPrivate F0convert Perl__add_range_to_invlist
syn keyword xsPrivate Perl__core_swash_init Perl__get_encoding
syn keyword xsPrivate Perl__get_swash_invlist Perl__invlist_contents
syn keyword xsPrivate Perl__invlist_dump
syn keyword xsPrivate Perl__invlist_intersection_maybe_complement_2nd
syn keyword xsPrivate Perl__invlist_invert Perl__invlist_populate_swatch
syn keyword xsPrivate Perl__invlist_search
syn keyword xsPrivate Perl__invlist_union_maybe_complement_2nd
syn keyword xsPrivate Perl__load_PL_utf8_foldclosures Perl__new_invlist
syn keyword xsPrivate Perl__setup_canned_invlist Perl__swash_inversion_hash
syn keyword xsPrivate Perl__swash_to_invlist Perl__to_fold_latin1
syn keyword xsPrivate Perl__warn_problematic_locale Perl_av_reify
syn keyword xsPrivate Perl_current_re_engine Perl_cv_ckproto_len_flags
syn keyword xsPrivate Perl_emulate_cop_io Perl_find_rundefsvoffset
syn keyword xsPrivate Perl_get_re_arg Perl_grok_atoUV Perl_isALNUM_lazy
syn keyword xsPrivate Perl_isIDFIRST_lazy Perl_is_uni_alnum
syn keyword xsPrivate Perl_is_uni_alnum_lc Perl_is_uni_alnumc
syn keyword xsPrivate Perl_is_uni_alnumc_lc Perl_is_uni_alpha
syn keyword xsPrivate Perl_is_uni_alpha_lc Perl_is_uni_ascii
syn keyword xsPrivate Perl_is_uni_ascii_lc Perl_is_uni_blank
syn keyword xsPrivate Perl_is_uni_blank_lc Perl_is_uni_cntrl
syn keyword xsPrivate Perl_is_uni_cntrl_lc Perl_is_uni_digit
syn keyword xsPrivate Perl_is_uni_digit_lc Perl_is_uni_graph
syn keyword xsPrivate Perl_is_uni_graph_lc Perl_is_uni_idfirst
syn keyword xsPrivate Perl_is_uni_idfirst_lc Perl_is_uni_lower
syn keyword xsPrivate Perl_is_uni_lower_lc Perl_is_uni_print
syn keyword xsPrivate Perl_is_uni_print_lc Perl_is_uni_punct
syn keyword xsPrivate Perl_is_uni_punct_lc Perl_is_uni_space
syn keyword xsPrivate Perl_is_uni_space_lc Perl_is_uni_upper
syn keyword xsPrivate Perl_is_uni_upper_lc Perl_is_uni_xdigit
syn keyword xsPrivate Perl_is_uni_xdigit_lc Perl_is_utf8_alnum
syn keyword xsPrivate Perl_is_utf8_alnumc Perl_is_utf8_alpha
syn keyword xsPrivate Perl_is_utf8_ascii Perl_is_utf8_blank Perl_is_utf8_char
syn keyword xsPrivate Perl_is_utf8_cntrl Perl_is_utf8_digit
syn keyword xsPrivate Perl_is_utf8_graph Perl_is_utf8_idcont
syn keyword xsPrivate Perl_is_utf8_idfirst Perl_is_utf8_lower
syn keyword xsPrivate Perl_is_utf8_mark Perl_is_utf8_perl_space
syn keyword xsPrivate Perl_is_utf8_perl_word Perl_is_utf8_posix_digit
syn keyword xsPrivate Perl_is_utf8_print Perl_is_utf8_punct
syn keyword xsPrivate Perl_is_utf8_space Perl_is_utf8_upper
syn keyword xsPrivate Perl_is_utf8_xdigit Perl_is_utf8_xidcont
syn keyword xsPrivate Perl_is_utf8_xidfirst Perl_mg_find_mglob Perl_mg_length
syn keyword xsPrivate Perl_multideref_stringify Perl_new_warnings_bitfield
syn keyword xsPrivate Perl_op_clear Perl_ptr_table_clear Perl_qerror
syn keyword xsPrivate Perl_reg_named_buff Perl_reg_named_buff_iter
syn keyword xsPrivate Perl_reg_numbered_buff_fetch
syn keyword xsPrivate Perl_reg_numbered_buff_length
syn keyword xsPrivate Perl_reg_numbered_buff_store Perl_reg_qr_package
syn keyword xsPrivate Perl_reg_temp_copy Perl_regprop Perl_report_uninit
syn keyword xsPrivate Perl_sv_magicext_mglob Perl_sv_setsv_cow
syn keyword xsPrivate Perl_to_uni_lower_lc Perl_to_uni_title_lc
syn keyword xsPrivate Perl_to_uni_upper_lc Perl_try_amagic_bin
syn keyword xsPrivate Perl_try_amagic_un Perl_utf8_to_uvchr
syn keyword xsPrivate Perl_utf8_to_uvuni Perl_utf8_to_uvuni_buf
syn keyword xsPrivate Perl_valid_utf8_to_uvuni Perl_validate_proto
syn keyword xsPrivate Perl_vivify_defelem Perl_yylex S_F0convert
syn keyword xsPrivate S__append_range_to_invlist S__make_exactf_invlist
syn keyword xsPrivate S_add_above_Latin1_folds S_add_data S_add_multi_match
syn keyword xsPrivate S_add_utf16_textfilter S_adjust_size_and_find_bucket
syn keyword xsPrivate S_advance_one_SB S_advance_one_WB S_amagic_cmp
syn keyword xsPrivate S_amagic_cmp_locale S_amagic_i_ncmp S_amagic_ncmp
syn keyword xsPrivate S_anonymise_cv_maybe S_ao S_apply_attrs
syn keyword xsPrivate S_apply_attrs_my S_assert_uft8_cache_coherent
syn keyword xsPrivate S_assignment_type S_backup_one_SB S_backup_one_WB
syn keyword xsPrivate S_bad_type_gv S_bad_type_pv
syn keyword xsPrivate S_check_locale_boundary_crossing S_check_type_and_open
syn keyword xsPrivate S_check_uni S_checkcomma S_ckwarn_common
syn keyword xsPrivate S_clear_placeholders S_clear_special_blocks
syn keyword xsPrivate S_cntrl_to_mnemonic S_construct_ahocorasick_from_trie
syn keyword xsPrivate S_cop_free S_could_it_be_a_POSIX_class S_cr_textfilter
syn keyword xsPrivate S_curse S_cv_dump S_deb_curcv S_deb_stack_n S_debprof
syn keyword xsPrivate S_debug_start_match S_del_sv
syn keyword xsPrivate S_deprecate_commaless_var_list S_destroy_matcher
syn keyword xsPrivate S_div128 S_do_chomp S_do_delete_local S_do_oddball
syn keyword xsPrivate S_do_smartmatch S_do_trans_complex
syn keyword xsPrivate S_do_trans_complex_utf8 S_do_trans_count
syn keyword xsPrivate S_do_trans_count_utf8 S_do_trans_simple
syn keyword xsPrivate S_do_trans_simple_utf8 S_docatch S_doeval S_dofindlabel
syn keyword xsPrivate S_doform S_dooneliner S_doopen_pm S_doparseform
syn keyword xsPrivate S_dopoptoeval S_dopoptogiven S_dopoptolabel
syn keyword xsPrivate S_dopoptoloop S_dopoptosub_at S_dopoptowhen
syn keyword xsPrivate S_dump_exec_pos S_dump_trie S_dump_trie_interim_list
syn keyword xsPrivate S_dump_trie_interim_table S_dumpuntil S_dup_attrlist
syn keyword xsPrivate S_exec_failed S_expect_number S_filter_gets
syn keyword xsPrivate S_finalize_op S_find_and_forget_pmops
syn keyword xsPrivate S_find_array_subscript S_find_beginning S_find_byclass
syn keyword xsPrivate S_find_default_stash S_find_hash_subscript
syn keyword xsPrivate S_find_in_my_stash S_find_uninit_var S_first_symbol
syn keyword xsPrivate S_fixup_errno_string S_fold_constants S_forbid_setid
syn keyword xsPrivate S_force_ident S_force_ident_maybe_lex S_force_list
syn keyword xsPrivate S_force_next S_force_strict_version S_force_version
syn keyword xsPrivate S_force_word S_forget_pmop S_form_short_octal_warning
syn keyword xsPrivate S_gen_constant_list S_get_ANYOF_cp_list_for_ssc
syn keyword xsPrivate S_get_aux_mg S_get_num S_glob_2number
syn keyword xsPrivate S_glob_assign_glob S_grok_bslash_N S_grok_bslash_c
syn keyword xsPrivate S_grok_bslash_o S_group_end S_gv_init_svtype
syn keyword xsPrivate S_gv_is_in_main S_gv_magicalize S_gv_magicalize_isa
syn keyword xsPrivate S_handle_regex_sets S_hfreeentries S_hsplit
syn keyword xsPrivate S_hv_auxinit S_hv_auxinit_internal S_hv_delete_common
syn keyword xsPrivate S_hv_free_ent_ret S_hv_magic_check S_hv_notallowed
syn keyword xsPrivate S_incline S_incpush S_incpush_if_exists
syn keyword xsPrivate S_incpush_use_sep S_ingroup S_init_ids S_init_interp
syn keyword xsPrivate S_init_main_stash S_init_perllib
syn keyword xsPrivate S_init_postdump_symbols S_init_predump_symbols
syn keyword xsPrivate S_inplace_aassign S_intuit_method S_intuit_more
syn keyword xsPrivate S_invlist_extend S_invlist_iternext
syn keyword xsPrivate S_invoke_exception_hook S_isFOO_lc S_isFOO_utf8_lc
syn keyword xsPrivate S_isGCB S_isSB S_isWB S_is_an_int
syn keyword xsPrivate S_is_handle_constructor S_is_ssc_worth_it S_isa_lookup
syn keyword xsPrivate S_join_exact S_leave_common S_listkids
syn keyword xsPrivate S_looks_like_bool S_magic_methcall1 S_make_matcher
syn keyword xsPrivate S_make_trie S_matcher_matches_sv S_maybe_multimagic_gv
syn keyword xsPrivate S_mayberelocate S_measure_struct S_mem_log_common
syn keyword xsPrivate S_mess_alloc S_minus_v S_missingterm S_modkids
syn keyword xsPrivate S_more_sv S_move_proto_attr S_mro_clean_isarev
syn keyword xsPrivate S_mro_gather_and_rename S_mro_get_linear_isa_dfs
syn keyword xsPrivate S_mul128 S_mulexp10 S_my_bytes_to_utf8 S_my_exit_jump
syn keyword xsPrivate S_my_kid S_need_utf8 S_newGIVWHENOP S_new_constant
syn keyword xsPrivate S_new_he S_new_logop S_next_symbol S_nextchar
syn keyword xsPrivate S_no_bareword_allowed S_no_fh_allowed S_no_op
syn keyword xsPrivate S_not_a_number S_not_incrementable S_nuke_stacks
syn keyword xsPrivate S_num_overflow S_open_script S_openn_cleanup
syn keyword xsPrivate S_openn_setup S_pack_rec S_pad_alloc_name
syn keyword xsPrivate S_pad_check_dup S_pad_findlex S_pad_reset S_parse_body
syn keyword xsPrivate S_parse_gv_stash_name S_parse_ident
syn keyword xsPrivate S_parse_lparen_question_flags S_pending_ident S_pidgone
syn keyword xsPrivate S_pm_description S_pmtrans
syn keyword xsPrivate S_populate_ANYOF_from_invlist S_printbuf
syn keyword xsPrivate S_process_special_blocks S_ptr_table_find
syn keyword xsPrivate S_put_charclass_bitmap_innards S_put_code_point
syn keyword xsPrivate S_put_range S_qsortsvu S_re_croak2 S_ref_array_or_hash
syn keyword xsPrivate S_refcounted_he_value S_refkids S_refto S_reg
syn keyword xsPrivate S_reg2Lanode S_reg_check_named_buff_matched S_reg_node
syn keyword xsPrivate S_reg_recode S_reg_scan_name S_reganode S_regatom
syn keyword xsPrivate S_regbranch S_regclass S_regcppop S_regcppush
syn keyword xsPrivate S_regdump_extflags S_regdump_intflags
syn keyword xsPrivate S_regex_set_precedence S_reghop3 S_reghop4
syn keyword xsPrivate S_reghopmaybe3 S_reginclass S_reginsert S_regmatch
syn keyword xsPrivate S_regnode_guts S_regpatws S_regpiece S_regrepeat
syn keyword xsPrivate S_regtail S_regtail_study S_regtry S_require_tie_mod
syn keyword xsPrivate S_restore_magic S_run_body S_run_user_filter
syn keyword xsPrivate S_rxres_free S_rxres_restore S_save_hek_flags
syn keyword xsPrivate S_save_lines S_save_magic_flags S_save_pushptri32ptr
syn keyword xsPrivate S_save_scalar_at S_scalar_mod_type S_scalarboolean
syn keyword xsPrivate S_scalarkids S_scalarseq S_scan_commit S_scan_const
syn keyword xsPrivate S_scan_formline S_scan_heredoc S_scan_ident
syn keyword xsPrivate S_scan_inputsymbol S_scan_pat S_scan_str S_scan_subst
syn keyword xsPrivate S_scan_trans S_scan_word S_search_const S_sequence_num
syn keyword xsPrivate S_set_ANYOF_arg S_share_hek_flags S_simplify_sort
syn keyword xsPrivate S_skipspace_flags S_sortcv S_sortcv_stacked
syn keyword xsPrivate S_sortcv_xsub S_space_join_names_mortal S_ssc_and
syn keyword xsPrivate S_ssc_anything S_ssc_finalize S_ssc_init
syn keyword xsPrivate S_ssc_is_anything S_ssc_is_cp_posixl_init S_ssc_or
syn keyword xsPrivate S_stdize_locale S_strip_return S_study_chunk
syn keyword xsPrivate S_sublex_done S_sublex_push S_sublex_start
syn keyword xsPrivate S_sv_2iuv_common S_sv_2iuv_non_preserve S_sv_add_arena
syn keyword xsPrivate S_sv_buf_to_rw S_sv_display S_sv_dup_common
syn keyword xsPrivate S_sv_dup_inc_multiple S_sv_exp_grow S_sv_i_ncmp
syn keyword xsPrivate S_sv_ncmp S_sv_pos_b2u_midway S_sv_pos_u2b_cached
syn keyword xsPrivate S_sv_pos_u2b_forwards S_sv_pos_u2b_midway
syn keyword xsPrivate S_sv_release_COW S_swallow_bom S_swash_scan_list_line
syn keyword xsPrivate S_swatch_get S_to_byte_substr S_to_lower_latin1
syn keyword xsPrivate S_to_utf8_substr S_tokenize_use S_tokeq S_tokereport
syn keyword xsPrivate S_too_few_arguments_pv S_too_many_arguments_pv
syn keyword xsPrivate S_uiv_2buf S_unpack_rec S_unreferenced_to_tmp_stack
syn keyword xsPrivate S_unshare_hek_or_pvn S_unwind_handler_stack
syn keyword xsPrivate S_update_debugger_info S_usage S_utf16_textfilter
syn keyword xsPrivate S_utf8_mg_len_cache_update S_utf8_mg_pos_cache_update
syn keyword xsPrivate S_validate_suid S_visit S_with_queued_errors
syn keyword xsPrivate S_xs_version_bootcheck S_yywarn _add_range_to_invlist
syn keyword xsPrivate _append_range_to_invlist _core_swash_init _get_encoding
syn keyword xsPrivate _get_swash_invlist _invlist_array_init
syn keyword xsPrivate _invlist_contains_cp _invlist_contents _invlist_dump
syn keyword xsPrivate _invlist_intersection
syn keyword xsPrivate _invlist_intersection_maybe_complement_2nd
syn keyword xsPrivate _invlist_invert _invlist_len _invlist_populate_swatch
syn keyword xsPrivate _invlist_search _invlist_subtract _invlist_union
syn keyword xsPrivate _invlist_union_maybe_complement_2nd
syn keyword xsPrivate _load_PL_utf8_foldclosures _make_exactf_invlist
syn keyword xsPrivate _new_invlist _setup_canned_invlist
syn keyword xsPrivate _swash_inversion_hash _swash_to_invlist _to_fold_latin1
syn keyword xsPrivate _warn_problematic_locale add_above_Latin1_folds
syn keyword xsPrivate add_cp_to_invlist add_data add_multi_match
syn keyword xsPrivate add_utf16_textfilter adjust_size_and_find_bucket
syn keyword xsPrivate advance_one_SB advance_one_WB
syn keyword xsPrivate alloc_maybe_populate_EXACT amagic_cmp amagic_cmp_locale
syn keyword xsPrivate amagic_i_ncmp amagic_ncmp anonymise_cv_maybe ao
syn keyword xsPrivate apply_attrs apply_attrs_my assert_uft8_cache_coherent
syn keyword xsPrivate assignment_type av_reify backup_one_SB backup_one_WB
syn keyword xsPrivate bad_type_gv bad_type_pv check_locale_boundary_crossing
syn keyword xsPrivate check_type_and_open check_uni checkcomma ckwarn_common
syn keyword xsPrivate clear_placeholders clear_special_blocks
syn keyword xsPrivate cntrl_to_mnemonic compute_EXACTish
syn keyword xsPrivate construct_ahocorasick_from_trie cop_free
syn keyword xsPrivate could_it_be_a_POSIX_class cr_textfilter
syn keyword xsPrivate current_re_engine curse cv_ckproto_len_flags cv_dump
syn keyword xsPrivate deb_curcv deb_stack_n debprof debug_start_match del_sv
syn keyword xsPrivate deprecate_commaless_var_list destroy_matcher div128
syn keyword xsPrivate do_aexec do_chomp do_delete_local do_exec do_oddball
syn keyword xsPrivate do_smartmatch do_trans_complex do_trans_complex_utf8
syn keyword xsPrivate do_trans_count do_trans_count_utf8 do_trans_simple
syn keyword xsPrivate do_trans_simple_utf8 docatch doeval dofindlabel doform
syn keyword xsPrivate dooneliner doopen_pm doparseform dopoptoeval
syn keyword xsPrivate dopoptogiven dopoptolabel dopoptoloop dopoptosub_at
syn keyword xsPrivate dopoptowhen dump_exec_pos dump_trie
syn keyword xsPrivate dump_trie_interim_list dump_trie_interim_table
syn keyword xsPrivate dumpuntil dup_attrlist exec_failed expect_number
syn keyword xsPrivate filter_gets finalize_op find_and_forget_pmops
syn keyword xsPrivate find_array_subscript find_beginning find_byclass
syn keyword xsPrivate find_default_stash find_hash_subscript find_in_my_stash
syn keyword xsPrivate find_rundefsvoffset find_uninit_var first_symbol
syn keyword xsPrivate fixup_errno_string fold_constants forbid_setid
syn keyword xsPrivate force_ident force_ident_maybe_lex force_list force_next
syn keyword xsPrivate force_strict_version force_version force_word
syn keyword xsPrivate forget_pmop form_short_octal_warning free_c_backtrace
syn keyword xsPrivate gen_constant_list get_ANYOF_cp_list_for_ssc get_aux_mg
syn keyword xsPrivate get_invlist_iter_addr get_invlist_offset_addr
syn keyword xsPrivate get_invlist_previous_index_addr get_num glob_2number
syn keyword xsPrivate glob_assign_glob grok_atoUV grok_bslash_N grok_bslash_c
syn keyword xsPrivate grok_bslash_o grok_bslash_x group_end gv_init_svtype
syn keyword xsPrivate gv_is_in_main gv_magicalize gv_magicalize_isa
syn keyword xsPrivate handle_regex_sets hfreeentries hsplit hv_auxinit
syn keyword xsPrivate hv_auxinit_internal hv_delete_common hv_free_ent_ret
syn keyword xsPrivate hv_magic_check hv_notallowed incline incpush
syn keyword xsPrivate incpush_if_exists incpush_use_sep ingroup init_ids
syn keyword xsPrivate init_interp init_main_stash init_perllib
syn keyword xsPrivate init_postdump_symbols init_predump_symbols
syn keyword xsPrivate inplace_aassign intuit_method intuit_more invlist_array
syn keyword xsPrivate invlist_clone invlist_extend invlist_highest
syn keyword xsPrivate invlist_is_iterating invlist_iterfinish
syn keyword xsPrivate invlist_iterinit invlist_iternext invlist_max
syn keyword xsPrivate invlist_previous_index invlist_set_len
syn keyword xsPrivate invlist_set_previous_index invlist_trim
syn keyword xsPrivate invoke_exception_hook isALNUM_lazy isFOO_lc
syn keyword xsPrivate isFOO_utf8_lc isGCB isIDFIRST_lazy isSB isWB is_an_int
syn keyword xsPrivate is_handle_constructor is_ssc_worth_it is_uni_alnum
syn keyword xsPrivate is_uni_alnum_lc is_uni_alnumc is_uni_alnumc_lc
syn keyword xsPrivate is_uni_alpha is_uni_alpha_lc is_uni_ascii
syn keyword xsPrivate is_uni_ascii_lc is_uni_blank is_uni_blank_lc
syn keyword xsPrivate is_uni_cntrl is_uni_cntrl_lc is_uni_digit
syn keyword xsPrivate is_uni_digit_lc is_uni_graph is_uni_graph_lc
syn keyword xsPrivate is_uni_idfirst is_uni_idfirst_lc is_uni_lower
syn keyword xsPrivate is_uni_lower_lc is_uni_print is_uni_print_lc
syn keyword xsPrivate is_uni_punct is_uni_punct_lc is_uni_space
syn keyword xsPrivate is_uni_space_lc is_uni_upper is_uni_upper_lc
syn keyword xsPrivate is_uni_xdigit is_uni_xdigit_lc is_utf8_alnum
syn keyword xsPrivate is_utf8_alnumc is_utf8_alpha is_utf8_ascii
syn keyword xsPrivate is_utf8_blank is_utf8_char is_utf8_cntrl is_utf8_digit
syn keyword xsPrivate is_utf8_graph is_utf8_idcont is_utf8_idfirst
syn keyword xsPrivate is_utf8_lower is_utf8_mark is_utf8_perl_space
syn keyword xsPrivate is_utf8_perl_word is_utf8_posix_digit is_utf8_print
syn keyword xsPrivate is_utf8_punct is_utf8_space is_utf8_upper
syn keyword xsPrivate is_utf8_xdigit is_utf8_xidcont is_utf8_xidfirst
syn keyword xsPrivate isa_lookup join_exact leave_common listkids
syn keyword xsPrivate looks_like_bool magic_methcall1 make_matcher make_trie
syn keyword xsPrivate matcher_matches_sv maybe_multimagic_gv mayberelocate
syn keyword xsPrivate measure_struct mem_log_common mess_alloc mg_find_mglob
syn keyword xsPrivate mg_length minus_v missingterm modkids more_sv
syn keyword xsPrivate move_proto_attr mro_clean_isarev mro_gather_and_rename
syn keyword xsPrivate mro_get_linear_isa_dfs mul128 mulexp10
syn keyword xsPrivate multideref_stringify my_bytes_to_utf8 my_exit_jump
syn keyword xsPrivate my_kid need_utf8 newGIVWHENOP new_he new_logop
syn keyword xsPrivate next_symbol nextchar no_bareword_allowed no_fh_allowed
syn keyword xsPrivate no_op not_a_number not_incrementable nuke_stacks
syn keyword xsPrivate num_overflow op_clear open_script openn_cleanup
syn keyword xsPrivate openn_setup pack_rec pad_alloc_name pad_check_dup
syn keyword xsPrivate pad_findlex pad_reset parse_body parse_gv_stash_name
syn keyword xsPrivate parse_ident parse_lparen_question_flags pending_ident
syn keyword xsPrivate pidgone pm_description pmtrans
syn keyword xsPrivate populate_ANYOF_from_invlist printbuf
syn keyword xsPrivate process_special_blocks ptr_table_clear ptr_table_find
syn keyword xsPrivate put_charclass_bitmap_innards put_code_point put_range
syn keyword xsPrivate qerror qsortsvu re_croak2 ref_array_or_hash
syn keyword xsPrivate refcounted_he_value refkids refto reg reg2Lanode
syn keyword xsPrivate reg_check_named_buff_matched reg_named_buff
syn keyword xsPrivate reg_named_buff_iter reg_node reg_numbered_buff_fetch
syn keyword xsPrivate reg_numbered_buff_length reg_numbered_buff_store
syn keyword xsPrivate reg_qr_package reg_recode reg_scan_name reg_skipcomment
syn keyword xsPrivate reg_temp_copy reganode regatom regbranch regclass
syn keyword xsPrivate regcppop regcppush regcurly regdump_extflags
syn keyword xsPrivate regdump_intflags regex_set_precedence reghop3 reghop4
syn keyword xsPrivate reghopmaybe3 reginclass reginsert regmatch regnode_guts
syn keyword xsPrivate regpatws regpiece regpposixcc regprop regrepeat regtail
syn keyword xsPrivate regtail_study regtry report_uninit require_tie_mod
syn keyword xsPrivate restore_magic run_body run_user_filter rxres_free
syn keyword xsPrivate rxres_restore save_hek_flags save_lines
syn keyword xsPrivate save_magic_flags save_pushptri32ptr save_scalar_at
syn keyword xsPrivate scalar_mod_type scalarboolean scalarkids scalarseq
syn keyword xsPrivate scan_commit scan_const scan_formline scan_heredoc
syn keyword xsPrivate scan_ident scan_inputsymbol scan_pat scan_str
syn keyword xsPrivate scan_subst scan_trans scan_word search_const
syn keyword xsPrivate sequence_num set_ANYOF_arg share_hek_flags
syn keyword xsPrivate simplify_sort skipspace_flags sortcv sortcv_stacked
syn keyword xsPrivate sortcv_xsub space_join_names_mortal ssc_add_range
syn keyword xsPrivate ssc_and ssc_anything ssc_clear_locale ssc_cp_and
syn keyword xsPrivate ssc_finalize ssc_init ssc_intersection ssc_is_anything
syn keyword xsPrivate ssc_is_cp_posixl_init ssc_or ssc_union stdize_locale
syn keyword xsPrivate strip_return study_chunk sublex_done sublex_push
syn keyword xsPrivate sublex_start sv_2iuv_common sv_2iuv_non_preserve
syn keyword xsPrivate sv_add_arena sv_buf_to_rw sv_copypv sv_display
syn keyword xsPrivate sv_dup_common sv_dup_inc_multiple sv_exp_grow sv_i_ncmp
syn keyword xsPrivate sv_magicext_mglob sv_ncmp sv_only_taint_gmagic
syn keyword xsPrivate sv_or_pv_pos_u2b sv_pos_b2u_midway sv_pos_u2b_cached
syn keyword xsPrivate sv_pos_u2b_forwards sv_pos_u2b_midway sv_release_COW
syn keyword xsPrivate sv_setsv_cow swallow_bom swash_scan_list_line
syn keyword xsPrivate swatch_get to_byte_substr to_lower_latin1
syn keyword xsPrivate to_uni_lower_lc to_uni_title_lc to_uni_upper_lc
syn keyword xsPrivate to_utf8_substr tokenize_use tokeq tokereport
syn keyword xsPrivate too_few_arguments_pv too_many_arguments_pv uiv_2buf
syn keyword xsPrivate unpack_rec unreferenced_to_tmp_stack unshare_hek_or_pvn
syn keyword xsPrivate unwind_handler_stack update_debugger_info usage
syn keyword xsPrivate utf16_textfilter utf8_mg_len_cache_update
syn keyword xsPrivate utf8_mg_pos_cache_update utf8_to_uvchr utf8_to_uvuni
syn keyword xsPrivate utf8_to_uvuni_buf valid_utf8_to_uvuni validate_proto
syn keyword xsPrivate visit vivify_defelem with_queued_errors yylex yywarn
endif
syn keyword xsType AMT AMTS ANY AV BHK BINOP BLOCK CHECKPOINT CLONE_PARAMS
syn keyword xsType COP COPHH CV DB_Hash_t DB_Prefix_t DEBUG_t Direntry_t
syn keyword xsType Fpos_t Free_t GCB_enum GP GV Gid_t Groups_t HE HEK HV I16
syn keyword xsType I32 I64 I8 IO IV Int64 JMPENV LISTOP LOGOP LOOP MAGIC
syn keyword xsType METHOP MGS MGVTBL Malloc_t Mmap_t Mode_t NV Netdb_hlen_t
syn keyword xsType Netdb_host_t Netdb_name_t Netdb_net_t OP OPCODE OPSLAB
syn keyword xsType OPSLOT Off_t Optype PAD PADLIST PADNAME PADNAMELIST
syn keyword xsType PADOFFSET PADOP PERL_CONTEXT PERL_DRAND48_T PERL_SI PMOP
syn keyword xsType PTR_TBL_ENT_t PTR_TBL_t PVOP PerlHandShakeInterpreter
syn keyword xsType PerlIO PerlIO_funcs PerlIO_list_s PerlIO_list_t PerlIOl
syn keyword xsType PerlInterpreter Pid_t Quad_t REGEXP RExC_state_t
syn keyword xsType Rand_seed_t SB_enum SSize_t STRLEN STRUCT_SV SUBLEXINFO SV
syn keyword xsType SVOP Select_fd_set_t Shmat_t Signal_t Sigsave_t Size_t
syn keyword xsType Sock_size_t Stat_t TM64 Time64_T Time_t U16 U32 U64 U8
syn keyword xsType UNOP UNOP_AUX UV Uid_t Uquad_t WB_enum XINVLIST XOP XPV
syn keyword xsType XPVAV XPVBM XPVCV XPVFM XPVGV XPVHV XPVIO XPVIV XPVLV
syn keyword xsType XPVMG XPVNV XPVUV Year _PerlIO _PerlIO_funcs
syn keyword xsType _char_class_number _pMY_CXT _pTHX _reg_ac_data
syn keyword xsType _reg_trie_data _reg_trie_state _reg_trie_trans
syn keyword xsType _reg_trie_trans_list_elem _sublex_info _xhvnameu _xivu
syn keyword xsType _xmgu _xnvu am_table am_table_short block_eval
syn keyword xsType block_format block_givwhen block_hooks block_loop
syn keyword xsType block_sub bound_type clone_params custom_op cv_flags_t
syn keyword xsType expectation gccbug_semun line_t magic mem_log_type methop
syn keyword xsType mgvtbl mro_alg mro_meta my_cxt_t opcode opslab opslot p5rx
syn keyword xsType pMY_CXT pMY_CXT_ pTHX pTHX_ padlist padname
syn keyword xsType padname_with_str padnamelist padtidy_type perl_cond
syn keyword xsType perl_debug_pad perl_drand48_t perl_key
syn keyword xsType perl_memory_debug_header perl_mstats perl_mstats_t
syn keyword xsType perl_mutex perl_os_thread perl_phase perl_vars
syn keyword xsType pthread_addr_t ptr_tbl ptr_tbl_ent refcounted_he
syn keyword xsType reg_ac_data reg_code_block reg_data reg_substr_data
syn keyword xsType reg_substr_datum reg_trie_data reg_trie_state
syn keyword xsType reg_trie_trans reg_trie_trans_le regex_charset regnode
syn keyword xsType regnode_1 regnode_2 regnode_2L regnode_charclass
syn keyword xsType regnode_charclass_class regnode_charclass_posixl
syn keyword xsType regnode_ssc regnode_string semun shared_he svtype ufuncs
syn keyword xsType unop_aux xop_flags_enum xpv xpvav xpvcv xpvfm xpvgv xpvhv
syn keyword xsType xpvhv_aux xpvinvlist xpvio xpviv xpvlv xpvmg xpvnv xpvuv
syn keyword xsType yytokentype
syn keyword xsString IVdf NVef NVff NVgf SVf SVf256 SVf32 SVf_ UVof UVuf UVxf
syn keyword xsConstant CXt_BLOCK CXt_EVAL CXt_FORMAT CXt_GIVEN CXt_LOOP_FOR
syn keyword xsConstant CXt_LOOP_LAZYIV CXt_LOOP_LAZYSV CXt_LOOP_PLAIN
syn keyword xsConstant CXt_NULL CXt_SUB CXt_SUBST CXt_WHEN GCB_BOUND GCB_CR
syn keyword xsConstant GCB_Control GCB_EDGE GCB_Extend GCB_L GCB_LF GCB_LV
syn keyword xsConstant GCB_LVT GCB_Other GCB_Prepend GCB_Regional_Indicator
syn keyword xsConstant GCB_SpacingMark GCB_T GCB_V G_ARRAY G_DISCARD G_EVAL
syn keyword xsConstant G_FAKINGEVAL G_KEEPERR G_METHOD G_METHOD_NAMED
syn keyword xsConstant G_NOARGS G_NODEBUG G_RE_REPARSING G_SCALAR
syn keyword xsConstant G_UNDEF_FILL G_VOID G_WANT G_WARN_ALL_MASK
syn keyword xsConstant G_WARN_ALL_OFF G_WARN_ALL_ON G_WARN_OFF G_WARN_ON
syn keyword xsConstant G_WARN_ONCE G_WRITING_TO_STDERR OA_AVREF OA_BASEOP
syn keyword xsConstant OA_BASEOP_OR_UNOP OA_BINOP OA_CLASS_MASK OA_COP
syn keyword xsConstant OA_CVREF OA_DANGEROUS OA_DEFGV OA_FILEREF
syn keyword xsConstant OA_FILESTATOP OA_FOLDCONST OA_HVREF OA_LIST OA_LISTOP
syn keyword xsConstant OA_LOGOP OA_LOOP OA_LOOPEXOP OA_MARK OA_METHOP
syn keyword xsConstant OA_OPTIONAL OA_OTHERINT OA_PADOP OA_PMOP
syn keyword xsConstant OA_PVOP_OR_SVOP OA_RETSCALAR OA_SCALAR OA_SCALARREF
syn keyword xsConstant OA_SVOP OA_TARGET OA_TARGLEX OA_UNOP OA_UNOP_AUX
syn keyword xsConstant OP_AASSIGN OP_ABS OP_ACCEPT OP_ADD OP_AEACH OP_AELEM
syn keyword xsConstant OP_AELEMFAST OP_AELEMFAST_LEX OP_AKEYS OP_ALARM OP_AND
syn keyword xsConstant OP_ANDASSIGN OP_ANONCODE OP_ANONCONST OP_ANONHASH
syn keyword xsConstant OP_ANONLIST OP_ASLICE OP_ATAN2 OP_AV2ARYLEN OP_AVALUES
syn keyword xsConstant OP_BACKTICK OP_BIND OP_BINMODE OP_BIT_AND OP_BIT_OR
syn keyword xsConstant OP_BIT_XOR OP_BLESS OP_BREAK OP_CALLER OP_CHDIR
syn keyword xsConstant OP_CHMOD OP_CHOMP OP_CHOP OP_CHOWN OP_CHR OP_CHROOT
syn keyword xsConstant OP_CLONECV OP_CLOSE OP_CLOSEDIR OP_COMPLEMENT
syn keyword xsConstant OP_CONCAT OP_COND_EXPR OP_CONNECT OP_CONST OP_CONTINUE
syn keyword xsConstant OP_COREARGS OP_COS OP_CRYPT OP_CUSTOM OP_DBMCLOSE
syn keyword xsConstant OP_DBMOPEN OP_DBSTATE OP_DEFINED OP_DELETE OP_DIE
syn keyword xsConstant OP_DIVIDE OP_DOFILE OP_DOR OP_DORASSIGN OP_DUMP
syn keyword xsConstant OP_EACH OP_EGRENT OP_EHOSTENT OP_ENETENT OP_ENTER
syn keyword xsConstant OP_ENTEREVAL OP_ENTERGIVEN OP_ENTERITER OP_ENTERLOOP
syn keyword xsConstant OP_ENTERSUB OP_ENTERTRY OP_ENTERWHEN OP_ENTERWRITE
syn keyword xsConstant OP_EOF OP_EPROTOENT OP_EPWENT OP_EQ OP_ESERVENT
syn keyword xsConstant OP_EXEC OP_EXISTS OP_EXIT OP_EXP OP_FC OP_FCNTL
syn keyword xsConstant OP_FILENO OP_FLIP OP_FLOCK OP_FLOP OP_FORK OP_FORMLINE
syn keyword xsConstant OP_FTATIME OP_FTBINARY OP_FTBLK OP_FTCHR OP_FTCTIME
syn keyword xsConstant OP_FTDIR OP_FTEEXEC OP_FTEOWNED OP_FTEREAD OP_FTEWRITE
syn keyword xsConstant OP_FTFILE OP_FTIS OP_FTLINK OP_FTMTIME OP_FTPIPE
syn keyword xsConstant OP_FTREXEC OP_FTROWNED OP_FTRREAD OP_FTRWRITE
syn keyword xsConstant OP_FTSGID OP_FTSIZE OP_FTSOCK OP_FTSUID OP_FTSVTX
syn keyword xsConstant OP_FTTEXT OP_FTTTY OP_FTZERO OP_GE OP_GELEM OP_GETC
syn keyword xsConstant OP_GETLOGIN OP_GETPEERNAME OP_GETPGRP OP_GETPPID
syn keyword xsConstant OP_GETPRIORITY OP_GETSOCKNAME OP_GGRENT OP_GGRGID
syn keyword xsConstant OP_GGRNAM OP_GHBYADDR OP_GHBYNAME OP_GHOSTENT OP_GLOB
syn keyword xsConstant OP_GMTIME OP_GNBYADDR OP_GNBYNAME OP_GNETENT OP_GOTO
syn keyword xsConstant OP_GPBYNAME OP_GPBYNUMBER OP_GPROTOENT OP_GPWENT
syn keyword xsConstant OP_GPWNAM OP_GPWUID OP_GREPSTART OP_GREPWHILE
syn keyword xsConstant OP_GSBYNAME OP_GSBYPORT OP_GSERVENT OP_GSOCKOPT OP_GT
syn keyword xsConstant OP_GV OP_GVSV OP_HELEM OP_HEX OP_HINTSEVAL OP_HSLICE
syn keyword xsConstant OP_INDEX OP_INT OP_INTROCV OP_IOCTL OP_ITER OP_I_ADD
syn keyword xsConstant OP_I_DIVIDE OP_I_EQ OP_I_GE OP_I_GT OP_I_LE OP_I_LT
syn keyword xsConstant OP_I_MODULO OP_I_MULTIPLY OP_I_NCMP OP_I_NE
syn keyword xsConstant OP_I_NEGATE OP_I_POSTDEC OP_I_POSTINC OP_I_PREDEC
syn keyword xsConstant OP_I_PREINC OP_I_SUBTRACT OP_JOIN OP_KEYS OP_KILL
syn keyword xsConstant OP_KVASLICE OP_KVHSLICE OP_LAST OP_LC OP_LCFIRST OP_LE
syn keyword xsConstant OP_LEAVE OP_LEAVEEVAL OP_LEAVEGIVEN OP_LEAVELOOP
syn keyword xsConstant OP_LEAVESUB OP_LEAVESUBLV OP_LEAVETRY OP_LEAVEWHEN
syn keyword xsConstant OP_LEAVEWRITE OP_LEFT_SHIFT OP_LENGTH OP_LINESEQ
syn keyword xsConstant OP_LINK OP_LIST OP_LISTEN OP_LOCALTIME OP_LOCK OP_LOG
syn keyword xsConstant OP_LSLICE OP_LSTAT OP_LT OP_LVAVREF OP_LVREF
syn keyword xsConstant OP_LVREFSLICE OP_MAPSTART OP_MAPWHILE OP_MATCH
syn keyword xsConstant OP_METHOD OP_METHOD_NAMED OP_METHOD_REDIR
syn keyword xsConstant OP_METHOD_REDIR_SUPER OP_METHOD_SUPER OP_MKDIR
syn keyword xsConstant OP_MODULO OP_MSGCTL OP_MSGGET OP_MSGRCV OP_MSGSND
syn keyword xsConstant OP_MULTIDEREF OP_MULTIPLY OP_NBIT_AND OP_NBIT_OR
syn keyword xsConstant OP_NBIT_XOR OP_NCMP OP_NCOMPLEMENT OP_NE OP_NEGATE
syn keyword xsConstant OP_NEXT OP_NEXTSTATE OP_NOT OP_NULL OP_OCT OP_ONCE
syn keyword xsConstant OP_OPEN OP_OPEN_DIR OP_OR OP_ORASSIGN OP_ORD OP_PACK
syn keyword xsConstant OP_PADANY OP_PADAV OP_PADCV OP_PADHV OP_PADRANGE
syn keyword xsConstant OP_PADSV OP_PIPE_OP OP_POP OP_POS OP_POSTDEC
syn keyword xsConstant OP_POSTINC OP_POW OP_PREDEC OP_PREINC OP_PRINT
syn keyword xsConstant OP_PROTOTYPE OP_PRTF OP_PUSH OP_PUSHMARK OP_PUSHRE
syn keyword xsConstant OP_QR OP_QUOTEMETA OP_RAND OP_RANGE OP_RCATLINE
syn keyword xsConstant OP_REACH OP_READ OP_READDIR OP_READLINE OP_READLINK
syn keyword xsConstant OP_RECV OP_REDO OP_REF OP_REFASSIGN OP_REFGEN
syn keyword xsConstant OP_REGCMAYBE OP_REGCOMP OP_REGCRESET OP_RENAME
syn keyword xsConstant OP_REPEAT OP_REQUIRE OP_RESET OP_RETURN OP_REVERSE
syn keyword xsConstant OP_REWINDDIR OP_RIGHT_SHIFT OP_RINDEX OP_RKEYS
syn keyword xsConstant OP_RMDIR OP_RUNCV OP_RV2AV OP_RV2CV OP_RV2GV OP_RV2HV
syn keyword xsConstant OP_RV2SV OP_RVALUES OP_SASSIGN OP_SAY OP_SBIT_AND
syn keyword xsConstant OP_SBIT_OR OP_SBIT_XOR OP_SCALAR OP_SCHOMP OP_SCHOP
syn keyword xsConstant OP_SCMP OP_SCOMPLEMENT OP_SCOPE OP_SEEK OP_SEEKDIR
syn keyword xsConstant OP_SELECT OP_SEMCTL OP_SEMGET OP_SEMOP OP_SEND OP_SEQ
syn keyword xsConstant OP_SETPGRP OP_SETPRIORITY OP_SGE OP_SGRENT OP_SGT
syn keyword xsConstant OP_SHIFT OP_SHMCTL OP_SHMGET OP_SHMREAD OP_SHMWRITE
syn keyword xsConstant OP_SHOSTENT OP_SHUTDOWN OP_SIN OP_SLE OP_SLEEP OP_SLT
syn keyword xsConstant OP_SMARTMATCH OP_SNE OP_SNETENT OP_SOCKET OP_SOCKPAIR
syn keyword xsConstant OP_SORT OP_SPLICE OP_SPLIT OP_SPRINTF OP_SPROTOENT
syn keyword xsConstant OP_SPWENT OP_SQRT OP_SRAND OP_SREFGEN OP_SSELECT
syn keyword xsConstant OP_SSERVENT OP_SSOCKOPT OP_STAT OP_STRINGIFY OP_STUB
syn keyword xsConstant OP_STUDY OP_SUBST OP_SUBSTCONT OP_SUBSTR OP_SUBTRACT
syn keyword xsConstant OP_SYMLINK OP_SYSCALL OP_SYSOPEN OP_SYSREAD OP_SYSSEEK
syn keyword xsConstant OP_SYSTEM OP_SYSWRITE OP_TELL OP_TELLDIR OP_TIE
syn keyword xsConstant OP_TIED OP_TIME OP_TMS OP_TRANS OP_TRANSR OP_TRUNCATE
syn keyword xsConstant OP_UC OP_UCFIRST OP_UMASK OP_UNDEF OP_UNLINK OP_UNPACK
syn keyword xsConstant OP_UNSHIFT OP_UNSTACK OP_UNTIE OP_UTIME OP_VALUES
syn keyword xsConstant OP_VEC OP_WAIT OP_WAITPID OP_WANTARRAY OP_WARN OP_XOR
syn keyword xsConstant OP_max OPf_FOLDED OPf_KIDS OPf_KNOW OPf_LIST OPf_MOD
syn keyword xsConstant OPf_PARENS OPf_REF OPf_SPECIAL OPf_STACKED OPf_WANT
syn keyword xsConstant OPf_WANT_LIST OPf_WANT_SCALAR OPf_WANT_VOID
syn keyword xsConstant OPpALLOW_FAKE OPpARG1_MASK OPpARG2_MASK OPpARG3_MASK
syn keyword xsConstant OPpARG4_MASK OPpASSIGN_BACKWARDS OPpASSIGN_COMMON
syn keyword xsConstant OPpASSIGN_CV_TO_GV OPpCONST_BARE OPpCONST_ENTERED
syn keyword xsConstant OPpCONST_NOVER OPpCONST_SHORTCIRCUIT OPpCONST_STRICT
syn keyword xsConstant OPpCOREARGS_DEREF1 OPpCOREARGS_DEREF2
syn keyword xsConstant OPpCOREARGS_PUSHMARK OPpCOREARGS_SCALARMOD OPpDEREF
syn keyword xsConstant OPpDEREF_AV OPpDEREF_HV OPpDEREF_SV OPpDONT_INIT_GV
syn keyword xsConstant OPpEARLY_CV OPpENTERSUB_AMPER OPpENTERSUB_DB
syn keyword xsConstant OPpENTERSUB_HASTARG OPpENTERSUB_INARGS
syn keyword xsConstant OPpENTERSUB_LVAL_MASK OPpENTERSUB_NOPAREN
syn keyword xsConstant OPpEVAL_BYTES OPpEVAL_COPHH OPpEVAL_HAS_HH
syn keyword xsConstant OPpEVAL_RE_REPARSING OPpEVAL_UNICODE OPpEXISTS_SUB
syn keyword xsConstant OPpFLIP_LINENUM OPpFT_ACCESS OPpFT_AFTER_t
syn keyword xsConstant OPpFT_STACKED OPpFT_STACKING OPpGREP_LEX
syn keyword xsConstant OPpHINT_STRICT_REFS OPpHUSH_VMSISH OPpITER_DEF
syn keyword xsConstant OPpITER_REVERSED OPpLIST_GUESSED OPpLVALUE
syn keyword xsConstant OPpLVAL_DEFER OPpLVAL_INTRO OPpLVREF_AV OPpLVREF_CV
syn keyword xsConstant OPpLVREF_ELEM OPpLVREF_HV OPpLVREF_ITER OPpLVREF_SV
syn keyword xsConstant OPpLVREF_TYPE OPpMAYBE_LVSUB OPpMAYBE_TRUEBOOL
syn keyword xsConstant OPpMAY_RETURN_CONSTANT OPpMULTIDEREF_DELETE
syn keyword xsConstant OPpMULTIDEREF_EXISTS OPpOFFBYONE OPpOPEN_IN_CRLF
syn keyword xsConstant OPpOPEN_IN_RAW OPpOPEN_OUT_CRLF OPpOPEN_OUT_RAW
syn keyword xsConstant OPpOUR_INTRO OPpPADRANGE_COUNTMASK
syn keyword xsConstant OPpPADRANGE_COUNTSHIFT OPpPAD_STATE OPpPV_IS_UTF8
syn keyword xsConstant OPpREFCOUNTED OPpREPEAT_DOLIST OPpREVERSE_INPLACE
syn keyword xsConstant OPpRUNTIME OPpSLICE OPpSLICEWARNING OPpSORT_DESCEND
syn keyword xsConstant OPpSORT_INPLACE OPpSORT_INTEGER OPpSORT_NUMERIC
syn keyword xsConstant OPpSORT_QSORT OPpSORT_REVERSE OPpSORT_STABLE
syn keyword xsConstant OPpSPLIT_IMPLIM OPpSUBSTR_REPL_FIRST OPpTARGET_MY
syn keyword xsConstant OPpTRANS_ALL OPpTRANS_COMPLEMENT OPpTRANS_DELETE
syn keyword xsConstant OPpTRANS_FROM_UTF OPpTRANS_GROWS OPpTRANS_IDENTICAL
syn keyword xsConstant OPpTRANS_SQUASH OPpTRANS_TO_UTF OPpTRUEBOOL
syn keyword xsConstant PERL_MAGIC_READONLY_ACCEPTABLE
syn keyword xsConstant PERL_MAGIC_TYPE_IS_VALUE_MAGIC
syn keyword xsConstant PERL_MAGIC_TYPE_READONLY_ACCEPTABLE
syn keyword xsConstant PERL_MAGIC_UTF8_CACHESIZE PERL_MAGIC_VALUE_MAGIC
syn keyword xsConstant PERL_MAGIC_VTABLE_MASK PERL_MAGIC_arylen
syn keyword xsConstant PERL_MAGIC_arylen_p PERL_MAGIC_backref PERL_MAGIC_bm
syn keyword xsConstant PERL_MAGIC_checkcall PERL_MAGIC_collxfrm
syn keyword xsConstant PERL_MAGIC_dbfile PERL_MAGIC_dbline
syn keyword xsConstant PERL_MAGIC_debugvar PERL_MAGIC_defelem PERL_MAGIC_env
syn keyword xsConstant PERL_MAGIC_envelem PERL_MAGIC_ext PERL_MAGIC_fm
syn keyword xsConstant PERL_MAGIC_hints PERL_MAGIC_hintselem PERL_MAGIC_isa
syn keyword xsConstant PERL_MAGIC_isaelem PERL_MAGIC_lvref PERL_MAGIC_nkeys
syn keyword xsConstant PERL_MAGIC_overload_table PERL_MAGIC_pos PERL_MAGIC_qr
syn keyword xsConstant PERL_MAGIC_regdata PERL_MAGIC_regdatum
syn keyword xsConstant PERL_MAGIC_regex_global PERL_MAGIC_rhash
syn keyword xsConstant PERL_MAGIC_shared PERL_MAGIC_shared_scalar
syn keyword xsConstant PERL_MAGIC_sig PERL_MAGIC_sigelem PERL_MAGIC_substr
syn keyword xsConstant PERL_MAGIC_sv PERL_MAGIC_symtab PERL_MAGIC_taint
syn keyword xsConstant PERL_MAGIC_tied PERL_MAGIC_tiedelem
syn keyword xsConstant PERL_MAGIC_tiedscalar PERL_MAGIC_utf8 PERL_MAGIC_uvar
syn keyword xsConstant PERL_MAGIC_uvar_elem PERL_MAGIC_vec PERL_MAGIC_vstring
syn keyword xsConstant REGEX_ASCII_MORE_RESTRICTED_CHARSET
syn keyword xsConstant REGEX_ASCII_RESTRICTED_CHARSET REGEX_DEPENDS_CHARSET
syn keyword xsConstant REGEX_LOCALE_CHARSET REGEX_UNICODE_CHARSET SB_ATerm
syn keyword xsConstant SB_BOUND SB_CR SB_Close SB_EDGE SB_Extend SB_Format
syn keyword xsConstant SB_LF SB_Lower SB_Numeric SB_OLetter SB_Other
syn keyword xsConstant SB_SContinue SB_STerm SB_Sep SB_Sp SB_Upper SVfARG
syn keyword xsConstant SVf_AMAGIC SVf_BREAK SVf_FAKE SVf_IOK SVf_IVisUV
syn keyword xsConstant SVf_IsCOW SVf_NOK SVf_OK SVf_OOK SVf_POK SVf_PROTECT
syn keyword xsConstant SVf_READONLY SVf_ROK SVf_THINKFIRST SVf_UTF8 SVp_IOK
syn keyword xsConstant SVp_NOK SVp_POK SVp_SCREAM SVpad_OUR SVpad_STATE
syn keyword xsConstant SVpad_TYPED SVpav_REAL SVpav_REIFY SVpbm_TAIL
syn keyword xsConstant SVpbm_VALID SVpgv_GP SVphv_CLONEABLE SVphv_HASKFLAGS
syn keyword xsConstant SVphv_LAZYDEL SVphv_SHAREKEYS SVprv_PCS_IMPORTED
syn keyword xsConstant SVprv_WEAKREF SVs_GMG SVs_OBJECT SVs_PADMY
syn keyword xsConstant SVs_PADSTALE SVs_PADTMP SVs_RMG SVs_SMG SVs_TEMP
syn keyword xsConstant SVt_INVLIST SVt_IV SVt_LAST SVt_NULL SVt_NV SVt_PV
syn keyword xsConstant SVt_PVAV SVt_PVBM SVt_PVCV SVt_PVFM SVt_PVGV SVt_PVHV
syn keyword xsConstant SVt_PVIO SVt_PVIV SVt_PVLV SVt_PVMG SVt_PVNV
syn keyword xsConstant SVt_REGEXP SVt_RV TRADITIONAL_BOUND WB_ALetter
syn keyword xsConstant WB_BOUND WB_CR WB_Double_Quote WB_EDGE WB_Extend
syn keyword xsConstant WB_ExtendNumLet WB_Format WB_Hebrew_Letter WB_Katakana
syn keyword xsConstant WB_LF WB_MidLetter WB_MidNum WB_MidNumLet WB_Newline
syn keyword xsConstant WB_Numeric WB_Other WB_Regional_Indicator
syn keyword xsConstant WB_Single_Quote WB_UNKNOWN XATTRBLOCK XATTRTERM XBLOCK
syn keyword xsConstant XBLOCKTERM XOPERATOR XOPe_xop_class XOPe_xop_desc
syn keyword xsConstant XOPe_xop_name XOPe_xop_peep XOPe_xop_ptr XPOSTDEREF
syn keyword xsConstant XREF XSTATE XTERM XTERMBLOCK XTERMORDORDOR
syn keyword xsConstant _CC_ENUM_ALPHA _CC_ENUM_ALPHANUMERIC _CC_ENUM_ASCII
syn keyword xsConstant _CC_ENUM_BLANK _CC_ENUM_CASED _CC_ENUM_CNTRL
syn keyword xsConstant _CC_ENUM_DIGIT _CC_ENUM_GRAPH _CC_ENUM_LOWER
syn keyword xsConstant _CC_ENUM_PRINT _CC_ENUM_PUNCT _CC_ENUM_SPACE
syn keyword xsConstant _CC_ENUM_UPPER _CC_ENUM_VERTSPACE _CC_ENUM_WORDCHAR
syn keyword xsConstant _CC_ENUM_XDIGIT padtidy_FORMAT padtidy_SUB
syn keyword xsConstant padtidy_SUBCLONE
syn keyword xsException XCPT_CATCH XCPT_RETHROW XCPT_TRY_END XCPT_TRY_START
syn keyword xsException dXCPT
syn keyword xsKeyword ALIAS: BOOT: CASE: CLEANUP: CODE: C_ARGS: DISABLE
syn keyword xsKeyword ENABLE FALLBACK: IN INCLUDE: INIT: INPUT: INTERFACE:
syn keyword xsKeyword INTERFACE_MACRO: IN_OUT IN_OUTLIST MODULE NO_INIT:
syn keyword xsKeyword NO_OUTPUT: OUT OUTLIST OUTPUT: OVERLOAD: PACKAGE
syn keyword xsKeyword POSTCALL: PPCODE: PREFIX PREINIT: PROTOTYPE:
syn keyword xsKeyword PROTOTYPES: REQUIRE: SCOPE: VERSIONCHECK: length
syn keyword xsFunction GetVars Gv_AMupdate PerlIO_clearerr PerlIO_close
syn keyword xsFunction PerlIO_eof PerlIO_error PerlIO_fileno PerlIO_fill
syn keyword xsFunction PerlIO_flush PerlIO_get_base PerlIO_get_bufsiz
syn keyword xsFunction PerlIO_get_cnt PerlIO_get_ptr PerlIO_read PerlIO_seek
syn keyword xsFunction PerlIO_set_cnt PerlIO_set_ptrcnt PerlIO_setlinebuf
syn keyword xsFunction PerlIO_stderr PerlIO_stdin PerlIO_stdout PerlIO_tell
syn keyword xsFunction PerlIO_unread PerlIO_write Perl_GetVars
syn keyword xsFunction Perl_Gv_AMupdate Perl_PerlIO_clearerr
syn keyword xsFunction Perl_PerlIO_close Perl_PerlIO_context_layers
syn keyword xsFunction Perl_PerlIO_eof Perl_PerlIO_error Perl_PerlIO_fileno
syn keyword xsFunction Perl_PerlIO_fill Perl_PerlIO_flush
syn keyword xsFunction Perl_PerlIO_get_base Perl_PerlIO_get_bufsiz
syn keyword xsFunction Perl_PerlIO_get_cnt Perl_PerlIO_get_ptr
syn keyword xsFunction Perl_PerlIO_read Perl_PerlIO_seek Perl_PerlIO_set_cnt
syn keyword xsFunction Perl_PerlIO_set_ptrcnt Perl_PerlIO_setlinebuf
syn keyword xsFunction Perl_PerlIO_stderr Perl_PerlIO_stdin
syn keyword xsFunction Perl_PerlIO_stdout Perl_PerlIO_tell Perl_PerlIO_unread
syn keyword xsFunction Perl_PerlIO_write Perl__get_regclass_nonbitmap_data
syn keyword xsFunction Perl__is_cur_LC_category_utf8
syn keyword xsFunction Perl__is_in_locale_category Perl__is_uni_FOO
syn keyword xsFunction Perl__is_uni_perl_idcont Perl__is_uni_perl_idstart
syn keyword xsFunction Perl__is_utf8_FOO Perl__is_utf8_idcont
syn keyword xsFunction Perl__is_utf8_idstart Perl__is_utf8_mark
syn keyword xsFunction Perl__is_utf8_perl_idcont Perl__is_utf8_perl_idstart
syn keyword xsFunction Perl__is_utf8_xidcont Perl__is_utf8_xidstart
syn keyword xsFunction Perl__new_invlist_C_array Perl__to_uni_fold_flags
syn keyword xsFunction Perl__to_utf8_fold_flags Perl__to_utf8_lower_flags
syn keyword xsFunction Perl__to_utf8_title_flags Perl__to_utf8_upper_flags
syn keyword xsFunction Perl_alloccopstash Perl_amagic_call
syn keyword xsFunction Perl_amagic_deref_call Perl_any_dup
syn keyword xsFunction Perl_apply_attrs_string Perl_atfork_lock
syn keyword xsFunction Perl_atfork_unlock Perl_av_arylen_p Perl_av_clear
syn keyword xsFunction Perl_av_create_and_push Perl_av_create_and_unshift_one
syn keyword xsFunction Perl_av_delete Perl_av_exists Perl_av_extend
syn keyword xsFunction Perl_av_fetch Perl_av_fill Perl_av_iter_p Perl_av_len
syn keyword xsFunction Perl_av_make Perl_av_pop Perl_av_push Perl_av_shift
syn keyword xsFunction Perl_av_store Perl_av_undef Perl_av_unshift
syn keyword xsFunction Perl_block_end Perl_block_gimme Perl_block_start
syn keyword xsFunction Perl_blockhook_register Perl_bytes_cmp_utf8
syn keyword xsFunction Perl_bytes_from_utf8 Perl_bytes_to_utf8 Perl_call_argv
syn keyword xsFunction Perl_call_atexit Perl_call_list Perl_call_method
syn keyword xsFunction Perl_call_pv Perl_call_sv Perl_caller_cx Perl_calloc
syn keyword xsFunction Perl_cast_i32 Perl_cast_iv Perl_cast_ulong
syn keyword xsFunction Perl_cast_uv Perl_ck_entersub_args_list
syn keyword xsFunction Perl_ck_entersub_args_proto
syn keyword xsFunction Perl_ck_entersub_args_proto_or_list Perl_ck_warner
syn keyword xsFunction Perl_ck_warner_d Perl_ckwarn Perl_ckwarn_d
syn keyword xsFunction Perl_clone_params_del Perl_clone_params_new
syn keyword xsFunction Perl_cop_fetch_label Perl_cop_store_label Perl_croak
syn keyword xsFunction Perl_croak_no_modify Perl_croak_nocontext
syn keyword xsFunction Perl_croak_sv Perl_croak_xs_usage Perl_csighandler
syn keyword xsFunction Perl_custom_op_desc Perl_custom_op_name
syn keyword xsFunction Perl_custom_op_register Perl_cv_clone Perl_cv_const_sv
syn keyword xsFunction Perl_cv_get_call_checker Perl_cv_name
syn keyword xsFunction Perl_cv_set_call_checker
syn keyword xsFunction Perl_cv_set_call_checker_flags Perl_cv_undef
syn keyword xsFunction Perl_cx_dump Perl_cx_dup Perl_cxinc Perl_deb
syn keyword xsFunction Perl_deb_nocontext Perl_debop Perl_debprofdump
syn keyword xsFunction Perl_debstack Perl_debstackptrs Perl_delimcpy
syn keyword xsFunction Perl_despatch_signals Perl_die Perl_die_nocontext
syn keyword xsFunction Perl_die_sv Perl_dirp_dup Perl_do_aspawn
syn keyword xsFunction Perl_do_binmode Perl_do_close Perl_do_gv_dump
syn keyword xsFunction Perl_do_gvgv_dump Perl_do_hv_dump Perl_do_join
syn keyword xsFunction Perl_do_magic_dump Perl_do_op_dump Perl_do_open9
syn keyword xsFunction Perl_do_openn Perl_do_pmop_dump Perl_do_spawn
syn keyword xsFunction Perl_do_spawn_nowait Perl_do_sprintf Perl_do_sv_dump
syn keyword xsFunction Perl_doing_taint Perl_doref Perl_dounwind
syn keyword xsFunction Perl_dowantarray Perl_dump_all Perl_dump_c_backtrace
syn keyword xsFunction Perl_dump_eval Perl_dump_form Perl_dump_indent
syn keyword xsFunction Perl_dump_mstats Perl_dump_packsubs Perl_dump_sub
syn keyword xsFunction Perl_dump_vindent Perl_eval_pv Perl_eval_sv
syn keyword xsFunction Perl_fbm_compile Perl_fbm_instr Perl_filter_add
syn keyword xsFunction Perl_filter_del Perl_filter_read Perl_find_runcv
syn keyword xsFunction Perl_find_rundefsv Perl_foldEQ Perl_foldEQ_latin1
syn keyword xsFunction Perl_foldEQ_locale Perl_foldEQ_utf8_flags Perl_form
syn keyword xsFunction Perl_form_nocontext Perl_fp_dup Perl_fprintf_nocontext
syn keyword xsFunction Perl_free_global_struct Perl_free_tmps Perl_get_av
syn keyword xsFunction Perl_get_c_backtrace_dump Perl_get_context Perl_get_cv
syn keyword xsFunction Perl_get_cvn_flags Perl_get_hv Perl_get_mstats
syn keyword xsFunction Perl_get_op_descs Perl_get_op_names Perl_get_ppaddr
syn keyword xsFunction Perl_get_sv Perl_get_vtbl Perl_getcwd_sv Perl_gp_dup
syn keyword xsFunction Perl_gp_free Perl_gp_ref Perl_grok_bin Perl_grok_hex
syn keyword xsFunction Perl_grok_infnan Perl_grok_number
syn keyword xsFunction Perl_grok_number_flags Perl_grok_numeric_radix
syn keyword xsFunction Perl_grok_oct Perl_gv_add_by_type Perl_gv_autoload_pv
syn keyword xsFunction Perl_gv_autoload_pvn Perl_gv_autoload_sv Perl_gv_check
syn keyword xsFunction Perl_gv_const_sv Perl_gv_dump Perl_gv_efullname
syn keyword xsFunction Perl_gv_efullname4 Perl_gv_fetchfile
syn keyword xsFunction Perl_gv_fetchfile_flags Perl_gv_fetchmeth_pv
syn keyword xsFunction Perl_gv_fetchmeth_pv_autoload Perl_gv_fetchmeth_pvn
syn keyword xsFunction Perl_gv_fetchmeth_pvn_autoload Perl_gv_fetchmeth_sv
syn keyword xsFunction Perl_gv_fetchmeth_sv_autoload
syn keyword xsFunction Perl_gv_fetchmethod_autoload
syn keyword xsFunction Perl_gv_fetchmethod_pv_flags
syn keyword xsFunction Perl_gv_fetchmethod_pvn_flags
syn keyword xsFunction Perl_gv_fetchmethod_sv_flags Perl_gv_fetchpv
syn keyword xsFunction Perl_gv_fetchpvn_flags Perl_gv_fetchsv
syn keyword xsFunction Perl_gv_fullname Perl_gv_fullname4 Perl_gv_handler
syn keyword xsFunction Perl_gv_init_pv Perl_gv_init_pvn Perl_gv_init_sv
syn keyword xsFunction Perl_gv_name_set Perl_gv_stashpv Perl_gv_stashpvn
syn keyword xsFunction Perl_gv_stashsv Perl_he_dup Perl_hek_dup
syn keyword xsFunction Perl_hv_assert Perl_hv_clear
syn keyword xsFunction Perl_hv_clear_placeholders Perl_hv_common
syn keyword xsFunction Perl_hv_common_key_len Perl_hv_copy_hints_hv
syn keyword xsFunction Perl_hv_delayfree_ent Perl_hv_eiter_p
syn keyword xsFunction Perl_hv_eiter_set Perl_hv_fill Perl_hv_free_ent
syn keyword xsFunction Perl_hv_iterinit Perl_hv_iterkey Perl_hv_iterkeysv
syn keyword xsFunction Perl_hv_iternext_flags Perl_hv_iternextsv
syn keyword xsFunction Perl_hv_iterval Perl_hv_ksplit Perl_hv_name_set
syn keyword xsFunction Perl_hv_placeholders_get Perl_hv_placeholders_set
syn keyword xsFunction Perl_hv_rand_set Perl_hv_riter_p Perl_hv_riter_set
syn keyword xsFunction Perl_hv_scalar Perl_init_global_struct
syn keyword xsFunction Perl_init_i18nl10n Perl_init_i18nl14n Perl_init_stacks
syn keyword xsFunction Perl_init_tm Perl_instr Perl_intro_my
syn keyword xsFunction Perl_is_invariant_string Perl_is_lvalue_sub
syn keyword xsFunction Perl_is_utf8_string Perl_is_utf8_string_loclen
syn keyword xsFunction Perl_isinfnan Perl_leave_scope Perl_lex_bufutf8
syn keyword xsFunction Perl_lex_discard_to Perl_lex_grow_linestr
syn keyword xsFunction Perl_lex_next_chunk Perl_lex_peek_unichar
syn keyword xsFunction Perl_lex_read_space Perl_lex_read_to
syn keyword xsFunction Perl_lex_read_unichar Perl_lex_start Perl_lex_stuff_pv
syn keyword xsFunction Perl_lex_stuff_pvn Perl_lex_stuff_sv Perl_lex_unstuff
syn keyword xsFunction Perl_load_module Perl_load_module_nocontext
syn keyword xsFunction Perl_looks_like_number Perl_magic_dump Perl_malloc
syn keyword xsFunction Perl_markstack_grow Perl_mess Perl_mess_nocontext
syn keyword xsFunction Perl_mess_sv Perl_mfree Perl_mg_clear Perl_mg_copy
syn keyword xsFunction Perl_mg_dup Perl_mg_find Perl_mg_findext Perl_mg_free
syn keyword xsFunction Perl_mg_free_type Perl_mg_get Perl_mg_magical
syn keyword xsFunction Perl_mg_set Perl_mg_size Perl_mini_mktime
syn keyword xsFunction Perl_moreswitches Perl_mro_get_from_name
syn keyword xsFunction Perl_mro_get_linear_isa Perl_mro_get_private_data
syn keyword xsFunction Perl_mro_method_changed_in Perl_mro_register
syn keyword xsFunction Perl_mro_set_mro Perl_mro_set_private_data
syn keyword xsFunction Perl_my_atof Perl_my_atof2 Perl_my_bcopy Perl_my_bzero
syn keyword xsFunction Perl_my_chsize Perl_my_cxt_index Perl_my_cxt_init
syn keyword xsFunction Perl_my_dirfd Perl_my_exit Perl_my_failure_exit
syn keyword xsFunction Perl_my_fflush_all Perl_my_fork Perl_my_memcmp
syn keyword xsFunction Perl_my_memset Perl_my_pclose Perl_my_popen
syn keyword xsFunction Perl_my_popen_list Perl_my_setenv Perl_my_setlocale
syn keyword xsFunction Perl_my_snprintf Perl_my_socketpair Perl_my_sprintf
syn keyword xsFunction Perl_my_strerror Perl_my_strftime Perl_my_strlcat
syn keyword xsFunction Perl_my_strlcpy Perl_my_vsnprintf Perl_newANONATTRSUB
syn keyword xsFunction Perl_newANONHASH Perl_newANONLIST Perl_newANONSUB
syn keyword xsFunction Perl_newASSIGNOP Perl_newAVREF Perl_newBINOP
syn keyword xsFunction Perl_newCONDOP Perl_newCONSTSUB Perl_newCONSTSUB_flags
syn keyword xsFunction Perl_newCVREF Perl_newDEFSVOP Perl_newFORM
syn keyword xsFunction Perl_newFOROP Perl_newGIVENOP Perl_newGVOP
syn keyword xsFunction Perl_newGVREF Perl_newGVgen_flags Perl_newHVREF
syn keyword xsFunction Perl_newHVhv Perl_newLISTOP Perl_newLOGOP
syn keyword xsFunction Perl_newLOOPEX Perl_newLOOPOP Perl_newMETHOP
syn keyword xsFunction Perl_newMETHOP_named Perl_newMYSUB Perl_newNULLLIST
syn keyword xsFunction Perl_newOP Perl_newPADNAMELIST Perl_newPADNAMEouter
syn keyword xsFunction Perl_newPADNAMEpvn Perl_newPADOP Perl_newPMOP
syn keyword xsFunction Perl_newPROG Perl_newPVOP Perl_newRANGE Perl_newRV
syn keyword xsFunction Perl_newRV_noinc Perl_newSLICEOP Perl_newSTATEOP
syn keyword xsFunction Perl_newSV Perl_newSVOP Perl_newSVREF Perl_newSV_type
syn keyword xsFunction Perl_newSVhek Perl_newSViv Perl_newSVnv Perl_newSVpv
syn keyword xsFunction Perl_newSVpv_share Perl_newSVpvf
syn keyword xsFunction Perl_newSVpvf_nocontext Perl_newSVpvn
syn keyword xsFunction Perl_newSVpvn_flags Perl_newSVpvn_share Perl_newSVrv
syn keyword xsFunction Perl_newSVsv Perl_newSVuv Perl_newUNOP
syn keyword xsFunction Perl_newUNOP_AUX Perl_newWHENOP Perl_newWHILEOP
syn keyword xsFunction Perl_newXS Perl_newXS_flags Perl_new_collate
syn keyword xsFunction Perl_new_ctype Perl_new_numeric Perl_new_stackinfo
syn keyword xsFunction Perl_new_version Perl_ninstr Perl_nothreadhook
syn keyword xsFunction Perl_op_append_elem Perl_op_append_list
syn keyword xsFunction Perl_op_contextualize Perl_op_convert_list
syn keyword xsFunction Perl_op_dump Perl_op_free Perl_op_linklist
syn keyword xsFunction Perl_op_null Perl_op_parent Perl_op_prepend_elem
syn keyword xsFunction Perl_op_refcnt_lock Perl_op_refcnt_unlock
syn keyword xsFunction Perl_op_scope Perl_op_sibling_splice Perl_pack_cat
syn keyword xsFunction Perl_packlist Perl_pad_add_anon Perl_pad_add_name_pv
syn keyword xsFunction Perl_pad_add_name_pvn Perl_pad_add_name_sv
syn keyword xsFunction Perl_pad_alloc Perl_pad_compname_type
syn keyword xsFunction Perl_pad_findmy_pv Perl_pad_findmy_pvn
syn keyword xsFunction Perl_pad_findmy_sv Perl_pad_new Perl_pad_setsv
syn keyword xsFunction Perl_pad_sv Perl_pad_tidy Perl_padnamelist_fetch
syn keyword xsFunction Perl_padnamelist_store Perl_parse_arithexpr
syn keyword xsFunction Perl_parse_barestmt Perl_parse_block
syn keyword xsFunction Perl_parse_fullexpr Perl_parse_fullstmt
syn keyword xsFunction Perl_parse_label Perl_parse_listexpr
syn keyword xsFunction Perl_parse_stmtseq Perl_parse_termexpr Perl_parser_dup
syn keyword xsFunction Perl_pmop_dump Perl_pop_scope Perl_pregcomp
syn keyword xsFunction Perl_pregexec Perl_pregfree Perl_pregfree2
syn keyword xsFunction Perl_prescan_version Perl_printf_nocontext
syn keyword xsFunction Perl_ptr_table_fetch Perl_ptr_table_free
syn keyword xsFunction Perl_ptr_table_new Perl_ptr_table_split
syn keyword xsFunction Perl_ptr_table_store Perl_push_scope Perl_pv_display
syn keyword xsFunction Perl_pv_escape Perl_pv_pretty Perl_pv_uni_display
syn keyword xsFunction Perl_quadmath_format_needed
syn keyword xsFunction Perl_quadmath_format_single Perl_re_compile
syn keyword xsFunction Perl_re_dup_guts Perl_re_intuit_start
syn keyword xsFunction Perl_re_intuit_string Perl_realloc Perl_reentrant_free
syn keyword xsFunction Perl_reentrant_init Perl_reentrant_retry
syn keyword xsFunction Perl_reentrant_size Perl_reg_named_buff_all
syn keyword xsFunction Perl_reg_named_buff_exists Perl_reg_named_buff_fetch
syn keyword xsFunction Perl_reg_named_buff_firstkey
syn keyword xsFunction Perl_reg_named_buff_nextkey Perl_reg_named_buff_scalar
syn keyword xsFunction Perl_regclass_swash Perl_regdump Perl_regdupe_internal
syn keyword xsFunction Perl_regexec_flags Perl_regfree_internal
syn keyword xsFunction Perl_reginitcolors Perl_regnext Perl_repeatcpy
syn keyword xsFunction Perl_require_pv Perl_rninstr Perl_rsignal
syn keyword xsFunction Perl_rsignal_state Perl_runops_debug
syn keyword xsFunction Perl_runops_standard Perl_rv2cv_op_cv Perl_rvpv_dup
syn keyword xsFunction Perl_safesyscalloc Perl_safesysfree Perl_safesysmalloc
syn keyword xsFunction Perl_safesysrealloc Perl_save_I16 Perl_save_I32
syn keyword xsFunction Perl_save_I8 Perl_save_adelete Perl_save_aelem_flags
syn keyword xsFunction Perl_save_alloc Perl_save_aptr Perl_save_ary
syn keyword xsFunction Perl_save_bool Perl_save_clearsv Perl_save_delete
syn keyword xsFunction Perl_save_destructor Perl_save_destructor_x
syn keyword xsFunction Perl_save_generic_pvref Perl_save_generic_svref
syn keyword xsFunction Perl_save_gp Perl_save_hash Perl_save_hdelete
syn keyword xsFunction Perl_save_helem_flags Perl_save_hints Perl_save_hptr
syn keyword xsFunction Perl_save_int Perl_save_item Perl_save_iv
syn keyword xsFunction Perl_save_list Perl_save_long Perl_save_nogv
syn keyword xsFunction Perl_save_padsv_and_mortalize Perl_save_pptr
syn keyword xsFunction Perl_save_pushi32ptr Perl_save_pushptr
syn keyword xsFunction Perl_save_pushptrptr Perl_save_re_context
syn keyword xsFunction Perl_save_scalar Perl_save_set_svflags
syn keyword xsFunction Perl_save_shared_pvref Perl_save_sptr Perl_save_svref
syn keyword xsFunction Perl_save_vptr Perl_savepv Perl_savepvn
syn keyword xsFunction Perl_savesharedpv Perl_savesharedpvn
syn keyword xsFunction Perl_savesharedsvpv Perl_savestack_grow
syn keyword xsFunction Perl_savestack_grow_cnt Perl_savesvpv Perl_scan_bin
syn keyword xsFunction Perl_scan_hex Perl_scan_num Perl_scan_oct
syn keyword xsFunction Perl_scan_version Perl_scan_vstring Perl_seed
syn keyword xsFunction Perl_set_context Perl_set_numeric_local
syn keyword xsFunction Perl_set_numeric_radix Perl_set_numeric_standard
syn keyword xsFunction Perl_setdefout Perl_share_hek Perl_si_dup Perl_sortsv
syn keyword xsFunction Perl_sortsv_flags Perl_ss_dup Perl_stack_grow
syn keyword xsFunction Perl_start_subparse Perl_str_to_version
syn keyword xsFunction Perl_sv_2bool_flags Perl_sv_2cv Perl_sv_2io
syn keyword xsFunction Perl_sv_2iv_flags Perl_sv_2mortal Perl_sv_2nv_flags
syn keyword xsFunction Perl_sv_2pv_flags Perl_sv_2pvbyte Perl_sv_2pvutf8
syn keyword xsFunction Perl_sv_2uv_flags Perl_sv_backoff Perl_sv_bless
syn keyword xsFunction Perl_sv_cat_decode Perl_sv_catpv Perl_sv_catpv_flags
syn keyword xsFunction Perl_sv_catpv_mg Perl_sv_catpvf Perl_sv_catpvf_mg
syn keyword xsFunction Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_nocontext
syn keyword xsFunction Perl_sv_catpvn_flags Perl_sv_catsv_flags Perl_sv_chop
syn keyword xsFunction Perl_sv_clear Perl_sv_cmp Perl_sv_cmp_flags
syn keyword xsFunction Perl_sv_cmp_locale Perl_sv_cmp_locale_flags
syn keyword xsFunction Perl_sv_collxfrm_flags Perl_sv_copypv_flags
syn keyword xsFunction Perl_sv_dec Perl_sv_dec_nomg Perl_sv_derived_from
syn keyword xsFunction Perl_sv_derived_from_pv Perl_sv_derived_from_pvn
syn keyword xsFunction Perl_sv_derived_from_sv Perl_sv_destroyable
syn keyword xsFunction Perl_sv_does Perl_sv_does_pv Perl_sv_does_pvn
syn keyword xsFunction Perl_sv_does_sv Perl_sv_dump Perl_sv_dup
syn keyword xsFunction Perl_sv_dup_inc Perl_sv_eq_flags
syn keyword xsFunction Perl_sv_force_normal_flags Perl_sv_free
syn keyword xsFunction Perl_sv_get_backrefs Perl_sv_gets Perl_sv_grow
syn keyword xsFunction Perl_sv_inc Perl_sv_inc_nomg Perl_sv_insert_flags
syn keyword xsFunction Perl_sv_isa Perl_sv_isobject Perl_sv_iv Perl_sv_len
syn keyword xsFunction Perl_sv_len_utf8 Perl_sv_magic Perl_sv_magicext
syn keyword xsFunction Perl_sv_newmortal Perl_sv_newref Perl_sv_nosharing
syn keyword xsFunction Perl_sv_nounlocking Perl_sv_nv Perl_sv_peek
syn keyword xsFunction Perl_sv_pos_b2u Perl_sv_pos_b2u_flags Perl_sv_pos_u2b
syn keyword xsFunction Perl_sv_pos_u2b_flags Perl_sv_pvbyten
syn keyword xsFunction Perl_sv_pvbyten_force Perl_sv_pvn
syn keyword xsFunction Perl_sv_pvn_force_flags Perl_sv_pvn_nomg
syn keyword xsFunction Perl_sv_pvutf8n Perl_sv_pvutf8n_force
syn keyword xsFunction Perl_sv_recode_to_utf8 Perl_sv_reftype Perl_sv_replace
syn keyword xsFunction Perl_sv_report_used Perl_sv_reset Perl_sv_rvweaken
syn keyword xsFunction Perl_sv_setiv Perl_sv_setiv_mg Perl_sv_setnv
syn keyword xsFunction Perl_sv_setnv_mg Perl_sv_setpv Perl_sv_setpv_mg
syn keyword xsFunction Perl_sv_setpvf Perl_sv_setpvf_mg
syn keyword xsFunction Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_nocontext
syn keyword xsFunction Perl_sv_setpviv Perl_sv_setpviv_mg Perl_sv_setpvn
syn keyword xsFunction Perl_sv_setpvn_mg Perl_sv_setref_iv Perl_sv_setref_nv
syn keyword xsFunction Perl_sv_setref_pv Perl_sv_setref_pvn Perl_sv_setref_uv
syn keyword xsFunction Perl_sv_setsv_flags Perl_sv_setsv_mg Perl_sv_setuv
syn keyword xsFunction Perl_sv_setuv_mg Perl_sv_tainted Perl_sv_true
syn keyword xsFunction Perl_sv_uni_display Perl_sv_unmagic Perl_sv_unmagicext
syn keyword xsFunction Perl_sv_unref_flags Perl_sv_untaint Perl_sv_upgrade
syn keyword xsFunction Perl_sv_usepvn_flags Perl_sv_utf8_decode
syn keyword xsFunction Perl_sv_utf8_downgrade Perl_sv_utf8_encode
syn keyword xsFunction Perl_sv_utf8_upgrade_flags_grow Perl_sv_uv
syn keyword xsFunction Perl_sv_vcatpvf Perl_sv_vcatpvf_mg Perl_sv_vcatpvfn
syn keyword xsFunction Perl_sv_vcatpvfn_flags Perl_sv_vsetpvf
syn keyword xsFunction Perl_sv_vsetpvf_mg Perl_sv_vsetpvfn Perl_swash_fetch
syn keyword xsFunction Perl_swash_init Perl_sync_locale Perl_sys_init
syn keyword xsFunction Perl_sys_init3 Perl_sys_intern_clear
syn keyword xsFunction Perl_sys_intern_dup Perl_sys_intern_init Perl_sys_term
syn keyword xsFunction Perl_taint_env Perl_taint_proper Perl_to_uni_lower
syn keyword xsFunction Perl_to_uni_title Perl_to_uni_upper Perl_to_utf8_case
syn keyword xsFunction Perl_unlnk Perl_unpack_str Perl_unpackstring
syn keyword xsFunction Perl_unsharepvn Perl_upg_version Perl_utf16_to_utf8
syn keyword xsFunction Perl_utf16_to_utf8_reversed Perl_utf8_distance
syn keyword xsFunction Perl_utf8_hop Perl_utf8_length Perl_utf8_to_bytes
syn keyword xsFunction Perl_utf8n_to_uvchr Perl_utf8n_to_uvuni
syn keyword xsFunction Perl_uvoffuni_to_utf8_flags Perl_uvuni_to_utf8
syn keyword xsFunction Perl_uvuni_to_utf8_flags Perl_valid_utf8_to_uvchr
syn keyword xsFunction Perl_vcmp Perl_vcroak Perl_vdeb Perl_vform
syn keyword xsFunction Perl_vload_module Perl_vmess Perl_vnewSVpvf
syn keyword xsFunction Perl_vnormal Perl_vnumify Perl_vstringify Perl_vverify
syn keyword xsFunction Perl_vwarn Perl_vwarner Perl_warn Perl_warn_nocontext
syn keyword xsFunction Perl_warn_sv Perl_warner Perl_warner_nocontext
syn keyword xsFunction Perl_whichsig_pv Perl_whichsig_pvn Perl_whichsig_sv
syn keyword xsFunction Perl_wrap_op_checker _get_regclass_nonbitmap_data
syn keyword xsFunction _is_cur_LC_category_utf8 _is_in_locale_category
syn keyword xsFunction _is_uni_FOO _is_uni_perl_idcont _is_uni_perl_idstart
syn keyword xsFunction _is_utf8_FOO _is_utf8_char_slow _is_utf8_idcont
syn keyword xsFunction _is_utf8_idstart _is_utf8_mark _is_utf8_perl_idcont
syn keyword xsFunction _is_utf8_perl_idstart _is_utf8_xidcont
syn keyword xsFunction _is_utf8_xidstart _new_invlist_C_array
syn keyword xsFunction _to_uni_fold_flags _to_utf8_fold_flags
syn keyword xsFunction _to_utf8_lower_flags _to_utf8_title_flags
syn keyword xsFunction _to_utf8_upper_flags alloccopstash amagic_call
syn keyword xsFunction amagic_deref_call any_dup append_utf8_from_native_byte
syn keyword xsFunction apply_attrs_string atfork_lock atfork_unlock av_clear
syn keyword xsFunction av_delete av_exists av_extend av_fetch av_fill av_len
syn keyword xsFunction av_make av_pop av_push av_shift av_store av_top_index
syn keyword xsFunction av_undef av_unshift block_end block_gimme block_start
syn keyword xsFunction bytes_cmp_utf8 bytes_from_utf8 bytes_to_utf8 call_argv
syn keyword xsFunction call_atexit call_list call_method call_pv call_sv
syn keyword xsFunction caller_cx cast_i32 cast_iv cast_ulong cast_uv
syn keyword xsFunction ck_entersub_args_list ck_entersub_args_proto
syn keyword xsFunction ck_entersub_args_proto_or_list ck_warner ck_warner_d
syn keyword xsFunction croak croak_memory_wrap croak_no_modify
syn keyword xsFunction croak_nocontext croak_sv croak_xs_usage csighandler
syn keyword xsFunction custom_op_desc custom_op_name cv_clone cv_const_sv
syn keyword xsFunction cv_get_call_checker cv_name cv_set_call_checker
syn keyword xsFunction cv_set_call_checker_flags cv_undef cx_dump cx_dup
syn keyword xsFunction cxinc deb deb_nocontext debop debprofdump debstack
syn keyword xsFunction debstackptrs delimcpy despatch_signals die
syn keyword xsFunction die_nocontext die_sv dirp_dup do_aspawn do_binmode
syn keyword xsFunction do_close do_gv_dump do_gvgv_dump do_hv_dump do_join
syn keyword xsFunction do_magic_dump do_op_dump do_open9 do_openn
syn keyword xsFunction do_pmop_dump do_spawn do_spawn_nowait do_sprintf
syn keyword xsFunction do_sv_dump doing_taint doref dounwind dowantarray
syn keyword xsFunction dump_all dump_c_backtrace dump_eval dump_form
syn keyword xsFunction dump_indent dump_mstats dump_packsubs dump_sub
syn keyword xsFunction dump_vindent eval_pv eval_sv fbm_compile fbm_instr
syn keyword xsFunction filter_add filter_del filter_read find_runcv
syn keyword xsFunction find_rundefsv foldEQ foldEQ_latin1 foldEQ_locale
syn keyword xsFunction foldEQ_utf8_flags form form_nocontext fp_dup
syn keyword xsFunction fprintf_nocontext free_global_struct free_tmps get_av
syn keyword xsFunction get_c_backtrace_dump get_context get_cv get_cvn_flags
syn keyword xsFunction get_hv get_mstats get_op_descs get_op_names get_ppaddr
syn keyword xsFunction get_sv get_vtbl getcwd_sv gp_dup gp_free gp_ref
syn keyword xsFunction grok_bin grok_hex grok_infnan grok_number
syn keyword xsFunction grok_number_flags grok_numeric_radix grok_oct
syn keyword xsFunction gv_add_by_type gv_autoload_pv gv_autoload_pvn
syn keyword xsFunction gv_autoload_sv gv_check gv_const_sv gv_dump
syn keyword xsFunction gv_efullname gv_efullname4 gv_fetchfile
syn keyword xsFunction gv_fetchfile_flags gv_fetchmeth_pv
syn keyword xsFunction gv_fetchmeth_pv_autoload gv_fetchmeth_pvn
syn keyword xsFunction gv_fetchmeth_pvn_autoload gv_fetchmeth_sv
syn keyword xsFunction gv_fetchmeth_sv_autoload gv_fetchmethod_autoload
syn keyword xsFunction gv_fetchmethod_pv_flags gv_fetchmethod_pvn_flags
syn keyword xsFunction gv_fetchmethod_sv_flags gv_fetchpv gv_fetchpvn_flags
syn keyword xsFunction gv_fetchsv gv_fullname gv_fullname4 gv_handler
syn keyword xsFunction gv_init_pv gv_init_pvn gv_init_sv gv_name_set
syn keyword xsFunction gv_stashpv gv_stashpvn gv_stashsv he_dup hek_dup
syn keyword xsFunction hv_clear hv_clear_placeholders hv_common
syn keyword xsFunction hv_common_key_len hv_copy_hints_hv hv_delayfree_ent
syn keyword xsFunction hv_free_ent hv_iterinit hv_iterkey hv_iterkeysv
syn keyword xsFunction hv_iternext_flags hv_iternextsv hv_iterval hv_ksplit
syn keyword xsFunction hv_name_set hv_rand_set hv_scalar init_global_struct
syn keyword xsFunction init_i18nl10n init_i18nl14n init_stacks init_tm instr
syn keyword xsFunction intro_my is_invariant_string is_lvalue_sub
syn keyword xsFunction is_safe_syscall is_utf8_string is_utf8_string_loclen
syn keyword xsFunction isinfnan leave_scope lex_bufutf8 lex_discard_to
syn keyword xsFunction lex_grow_linestr lex_next_chunk lex_peek_unichar
syn keyword xsFunction lex_read_space lex_read_to lex_read_unichar lex_start
syn keyword xsFunction lex_stuff_pv lex_stuff_pvn lex_stuff_sv lex_unstuff
syn keyword xsFunction load_module load_module_nocontext looks_like_number
syn keyword xsFunction magic_dump markstack_grow mess mess_nocontext mess_sv
syn keyword xsFunction mg_clear mg_copy mg_dup mg_find mg_findext mg_free
syn keyword xsFunction mg_free_type mg_get mg_magical mg_set mg_size
syn keyword xsFunction mini_mktime moreswitches mro_get_linear_isa
syn keyword xsFunction mro_method_changed_in my_atof my_atof2 my_bcopy
syn keyword xsFunction my_bzero my_chsize my_dirfd my_exit my_failure_exit
syn keyword xsFunction my_fflush_all my_fork my_memcmp my_memset my_pclose
syn keyword xsFunction my_popen my_popen_list my_setenv my_setlocale
syn keyword xsFunction my_socketpair my_strerror my_strftime newANONATTRSUB
syn keyword xsFunction newANONHASH newANONLIST newANONSUB newASSIGNOP
syn keyword xsFunction newAVREF newBINOP newCONDOP newCONSTSUB
syn keyword xsFunction newCONSTSUB_flags newCVREF newDEFSVOP newFORM newFOROP
syn keyword xsFunction newGIVENOP newGVOP newGVREF newGVgen_flags newHVREF
syn keyword xsFunction newHVhv newLISTOP newLOGOP newLOOPEX newLOOPOP
syn keyword xsFunction newMETHOP newMETHOP_named newMYSUB newNULLLIST newOP
syn keyword xsFunction newPADNAMELIST newPADNAMEouter newPADNAMEpvn newPADOP
syn keyword xsFunction newPMOP newPROG newPVOP newRANGE newRV newRV_noinc
syn keyword xsFunction newSLICEOP newSTATEOP newSV newSVOP newSVREF
syn keyword xsFunction newSV_type newSVhek newSViv newSVnv newSVpv
syn keyword xsFunction newSVpv_share newSVpvf newSVpvf_nocontext newSVpvn
syn keyword xsFunction newSVpvn_flags newSVpvn_share newSVrv newSVsv newSVuv
syn keyword xsFunction newUNOP newUNOP_AUX newWHENOP newWHILEOP newXS
syn keyword xsFunction newXS_flags new_collate new_ctype new_numeric
syn keyword xsFunction new_stackinfo new_version ninstr nothreadhook
syn keyword xsFunction op_append_elem op_append_list op_contextualize
syn keyword xsFunction op_convert_list op_dump op_free op_linklist op_null
syn keyword xsFunction op_parent op_prepend_elem op_refcnt_lock
syn keyword xsFunction op_refcnt_unlock op_scope op_sibling_splice pack_cat
syn keyword xsFunction packlist pad_add_anon pad_add_name_pv pad_add_name_pvn
syn keyword xsFunction pad_add_name_sv pad_alloc pad_compname_type
syn keyword xsFunction pad_findmy_pv pad_findmy_pvn pad_findmy_sv pad_new
syn keyword xsFunction pad_setsv pad_sv pad_tidy padnamelist_fetch
syn keyword xsFunction padnamelist_store parse_arithexpr parse_barestmt
syn keyword xsFunction parse_block parse_fullexpr parse_fullstmt parse_label
syn keyword xsFunction parse_listexpr parse_stmtseq parse_termexpr parser_dup
syn keyword xsFunction pmop_dump pop_scope pregcomp pregexec pregfree
syn keyword xsFunction pregfree2 prescan_version printf_nocontext
syn keyword xsFunction ptr_table_fetch ptr_table_free ptr_table_new
syn keyword xsFunction ptr_table_split ptr_table_store push_scope pv_display
syn keyword xsFunction pv_escape pv_pretty pv_uni_display
syn keyword xsFunction quadmath_format_needed quadmath_format_single
syn keyword xsFunction re_compile re_dup_guts re_intuit_start
syn keyword xsFunction re_intuit_string reentrant_free reentrant_init
syn keyword xsFunction reentrant_retry reentrant_size reg_named_buff_all
syn keyword xsFunction reg_named_buff_exists reg_named_buff_fetch
syn keyword xsFunction reg_named_buff_firstkey reg_named_buff_nextkey
syn keyword xsFunction reg_named_buff_scalar regclass_swash regdump
syn keyword xsFunction regdupe_internal regexec_flags regfree_internal
syn keyword xsFunction reginitcolors regnext repeatcpy require_pv rninstr
syn keyword xsFunction rsignal rsignal_state runops_debug runops_standard
syn keyword xsFunction rv2cv_op_cv rvpv_dup safesyscalloc safesysfree
syn keyword xsFunction safesysmalloc safesysrealloc save_I16 save_I32 save_I8
syn keyword xsFunction save_adelete save_aelem_flags save_alloc save_aptr
syn keyword xsFunction save_ary save_bool save_clearsv save_delete
syn keyword xsFunction save_destructor save_destructor_x save_generic_pvref
syn keyword xsFunction save_generic_svref save_gp save_hash save_hdelete
syn keyword xsFunction save_helem_flags save_hints save_hptr save_int
syn keyword xsFunction save_item save_iv save_list save_long save_nogv
syn keyword xsFunction save_padsv_and_mortalize save_pptr save_pushi32ptr
syn keyword xsFunction save_pushptr save_pushptrptr save_re_context
syn keyword xsFunction save_scalar save_set_svflags save_shared_pvref
syn keyword xsFunction save_sptr save_svref save_vptr savepv savepvn
syn keyword xsFunction savesharedpv savesharedpvn savesharedsvpv
syn keyword xsFunction savestack_grow savestack_grow_cnt savesvpv scan_bin
syn keyword xsFunction scan_hex scan_num scan_oct scan_version scan_vstring
syn keyword xsFunction seed set_context set_numeric_local set_numeric_radix
syn keyword xsFunction set_numeric_standard setdefout share_hek si_dup sortsv
syn keyword xsFunction sortsv_flags ss_dup stack_grow start_subparse
syn keyword xsFunction str_to_version sv_2bool_flags sv_2cv sv_2io
syn keyword xsFunction sv_2iv_flags sv_2mortal sv_2nv_flags sv_2pv_flags
syn keyword xsFunction sv_2pvbyte sv_2pvutf8 sv_2uv_flags sv_backoff sv_bless
syn keyword xsFunction sv_cat_decode sv_catpv sv_catpv_flags sv_catpv_mg
syn keyword xsFunction sv_catpvf sv_catpvf_mg sv_catpvf_mg_nocontext
syn keyword xsFunction sv_catpvf_nocontext sv_catpvn_flags sv_catsv_flags
syn keyword xsFunction sv_chop sv_clear sv_cmp_flags sv_cmp_locale_flags
syn keyword xsFunction sv_collxfrm_flags sv_copypv_flags sv_dec sv_dec_nomg
syn keyword xsFunction sv_derived_from sv_derived_from_pv sv_derived_from_pvn
syn keyword xsFunction sv_derived_from_sv sv_destroyable sv_does sv_does_pv
syn keyword xsFunction sv_does_pvn sv_does_sv sv_dump sv_dup sv_dup_inc
syn keyword xsFunction sv_eq_flags sv_force_normal_flags sv_free
syn keyword xsFunction sv_get_backrefs sv_gets sv_grow sv_inc sv_inc_nomg
syn keyword xsFunction sv_insert_flags sv_isa sv_isobject sv_iv sv_len
syn keyword xsFunction sv_len_utf8 sv_magic sv_magicext sv_newmortal
syn keyword xsFunction sv_newref sv_nosharing sv_nounlocking sv_nv sv_peek
syn keyword xsFunction sv_pos_b2u sv_pos_b2u_flags sv_pos_u2b
syn keyword xsFunction sv_pos_u2b_flags sv_pvbyten sv_pvbyten_force sv_pvn
syn keyword xsFunction sv_pvn_force_flags sv_pvn_nomg sv_pvutf8n
syn keyword xsFunction sv_pvutf8n_force sv_recode_to_utf8 sv_reftype
syn keyword xsFunction sv_replace sv_report_used sv_reset sv_rvweaken
syn keyword xsFunction sv_setiv sv_setiv_mg sv_setnv sv_setnv_mg sv_setpv
syn keyword xsFunction sv_setpv_mg sv_setpvf sv_setpvf_mg
syn keyword xsFunction sv_setpvf_mg_nocontext sv_setpvf_nocontext sv_setpviv
syn keyword xsFunction sv_setpviv_mg sv_setpvn sv_setpvn_mg sv_setref_iv
syn keyword xsFunction sv_setref_nv sv_setref_pv sv_setref_pvn sv_setref_uv
syn keyword xsFunction sv_setsv_flags sv_setsv_mg sv_setuv sv_setuv_mg
syn keyword xsFunction sv_tainted sv_true sv_uni_display sv_unmagic
syn keyword xsFunction sv_unmagicext sv_unref_flags sv_untaint sv_upgrade
syn keyword xsFunction sv_usepvn_flags sv_utf8_decode sv_utf8_downgrade
syn keyword xsFunction sv_utf8_encode sv_utf8_upgrade_flags_grow sv_uv
syn keyword xsFunction sv_vcatpvf sv_vcatpvf_mg sv_vcatpvfn sv_vcatpvfn_flags
syn keyword xsFunction sv_vsetpvf sv_vsetpvf_mg sv_vsetpvfn swash_fetch
syn keyword xsFunction swash_init sync_locale sys_intern_clear sys_intern_dup
syn keyword xsFunction sys_intern_init taint_env taint_proper to_uni_lower
syn keyword xsFunction to_uni_title to_uni_upper to_utf8_case unlnk
syn keyword xsFunction unpack_str unpackstring unsharepvn upg_version
syn keyword xsFunction utf16_to_utf8 utf16_to_utf8_reversed utf8_distance
syn keyword xsFunction utf8_hop utf8_length utf8_to_bytes utf8n_to_uvchr
syn keyword xsFunction utf8n_to_uvuni uvoffuni_to_utf8_flags uvuni_to_utf8
syn keyword xsFunction uvuni_to_utf8_flags valid_utf8_to_uvchr vcmp vcroak
syn keyword xsFunction vdeb vform vload_module vmess vnewSVpvf vnormal
syn keyword xsFunction vnumify vstringify vverify vwarn vwarner warn
syn keyword xsFunction warn_nocontext warn_sv warner warner_nocontext
syn keyword xsFunction whichsig_pv whichsig_pvn whichsig_sv wrap_op_checker
syn keyword xsVariable MARK MY_CXT ORIGMARK PL_I PL_No PL_Vars PL_VarsPtr
syn keyword xsVariable PL_Yes PL_a2e PL_bincompat_options PL_bitcount
syn keyword xsVariable PL_block_type PL_bufend PL_bufptr PL_charclass
syn keyword xsVariable PL_check PL_copline PL_core_reg_engine PL_cshname
syn keyword xsVariable PL_e2a PL_e2utf PL_error_count PL_expect PL_fold
syn keyword xsVariable PL_fold_latin1 PL_fold_locale PL_force_link_funcs
syn keyword xsVariable PL_freq PL_global_struct_size PL_hexdigit PL_in_my
syn keyword xsVariable PL_in_my_stash PL_interp_size PL_interp_size_5_18_0
syn keyword xsVariable PL_last_lop PL_last_lop_op PL_last_uni PL_latin1_lc
syn keyword xsVariable PL_lex_allbrackets PL_lex_brackets PL_lex_brackstack
syn keyword xsVariable PL_lex_casemods PL_lex_casestack PL_lex_defer
syn keyword xsVariable PL_lex_dojoin PL_lex_fakeeof PL_lex_formbrack
syn keyword xsVariable PL_lex_inpat PL_lex_inwhat PL_lex_op PL_lex_repl
syn keyword xsVariable PL_lex_starts PL_lex_state PL_lex_stuff PL_linestart
syn keyword xsVariable PL_linestr PL_magic_data PL_magic_vtable_names
syn keyword xsVariable PL_memory_wrap PL_mod_latin1_uc PL_multi_close
syn keyword xsVariable PL_multi_end PL_multi_open PL_multi_start PL_nexttoke
syn keyword xsVariable PL_nexttype PL_nextval PL_no_aelem PL_no_dir_func
syn keyword xsVariable PL_no_func PL_no_helem_sv PL_no_localize_ref PL_no_mem
syn keyword xsVariable PL_no_modify PL_no_myglob PL_no_security
syn keyword xsVariable PL_no_sock_func PL_no_symref PL_no_symref_sv
syn keyword xsVariable PL_no_usym PL_no_wrongref PL_oldbufptr PL_oldoldbufptr
syn keyword xsVariable PL_op_desc PL_op_name PL_op_private_bitdef_ix
syn keyword xsVariable PL_op_private_bitdefs PL_op_private_bitfields
syn keyword xsVariable PL_op_private_labels PL_op_private_valid PL_opargs
syn keyword xsVariable PL_phase_names PL_ppaddr PL_preambled
syn keyword xsVariable PL_reg_extflags_name PL_reg_intflags_name PL_reg_name
syn keyword xsVariable PL_regkind PL_revision PL_rsfp PL_rsfp_filters
syn keyword xsVariable PL_runops_dbg PL_runops_std PL_sh_path PL_sig_name
syn keyword xsVariable PL_sig_num PL_simple PL_simple_bitmask PL_sublex_info
syn keyword xsVariable PL_subversion PL_tokenbuf PL_utf2e PL_utf8skip
syn keyword xsVariable PL_uudmap PL_uuemap PL_valid_types_IVX
syn keyword xsVariable PL_valid_types_IV_set PL_valid_types_NVX
syn keyword xsVariable PL_valid_types_NV_set PL_valid_types_PVX
syn keyword xsVariable PL_valid_types_RV PL_varies PL_varies_bitmask
syn keyword xsVariable PL_version PL_warn_nl PL_warn_nosemi PL_warn_reserved
syn keyword xsVariable PL_warn_uninit PL_warn_uninit_sv RETVAL SP TARG
syn keyword xsVariable _aMY_CXT _aTHX aMY_CXT aMY_CXT_ aTHX aTHX_ items
syn keyword xsMacro ABORT ACCEPT ADDOP AHOCORASICK AHOCORASICKC
syn keyword xsMacro ALLOC_THREAD_KEY AMG_CALLun AMG_CALLunary AMGf_assign
syn keyword xsMacro AMGf_noleft AMGf_noright AMGf_numarg AMGf_numeric
syn keyword xsMacro AMGf_set AMGf_unary AMGf_want_list AMGfallNEVER AMGfallNO
syn keyword xsMacro AMGfallYES AMT_AMAGIC AMT_AMAGIC_off AMT_AMAGIC_on
syn keyword xsMacro AMTf_AMAGIC ANDAND ANDOP ANGSTROM_SIGN ANONSUB ANYOF
syn keyword xsMacro ANYOFL ANYOF_ALNUM ANYOF_ALNUML ANYOF_ALPHA
syn keyword xsMacro ANYOF_ALPHANUMERIC ANYOF_ASCII ANYOF_BIT ANYOF_BITMAP
syn keyword xsMacro ANYOF_BITMAP_BYTE ANYOF_BITMAP_CLEAR
syn keyword xsMacro ANYOF_BITMAP_CLEARALL ANYOF_BITMAP_SET
syn keyword xsMacro ANYOF_BITMAP_SETALL ANYOF_BITMAP_SIZE ANYOF_BITMAP_TEST
syn keyword xsMacro ANYOF_BITMAP_ZERO ANYOF_BLANK ANYOF_CASED
syn keyword xsMacro ANYOF_CLASS_CLEAR ANYOF_CLASS_OR ANYOF_CLASS_SET
syn keyword xsMacro ANYOF_CLASS_SETALL ANYOF_CLASS_TEST
syn keyword xsMacro ANYOF_CLASS_TEST_ANY_SET ANYOF_CLASS_ZERO ANYOF_CNTRL
syn keyword xsMacro ANYOF_COMMON_FLAGS ANYOF_DIGIT ANYOF_FLAGS
syn keyword xsMacro ANYOF_FLAGS_ALL ANYOF_FOLD_SHARP_S ANYOF_GRAPH
syn keyword xsMacro ANYOF_HAS_NONBITMAP_NON_UTF8_MATCHES
syn keyword xsMacro ANYOF_HAS_UTF8_NONBITMAP_MATCHES ANYOF_HORIZWS
syn keyword xsMacro ANYOF_INVERT ANYOF_LOCALE_FLAGS ANYOF_LOC_FOLD
syn keyword xsMacro ANYOF_LOWER ANYOF_MATCHES_ALL_ABOVE_BITMAP
syn keyword xsMacro ANYOF_MATCHES_ALL_NON_UTF8_NON_ASCII ANYOF_MATCHES_POSIXL
syn keyword xsMacro ANYOF_MAX ANYOF_NALNUM ANYOF_NALNUML ANYOF_NALPHA
syn keyword xsMacro ANYOF_NALPHANUMERIC ANYOF_NASCII ANYOF_NBLANK
syn keyword xsMacro ANYOF_NCASED ANYOF_NCNTRL ANYOF_NDIGIT ANYOF_NGRAPH
syn keyword xsMacro ANYOF_NHORIZWS ANYOF_NLOWER ANYOF_NPRINT ANYOF_NPUNCT
syn keyword xsMacro ANYOF_NSPACE ANYOF_NSPACEL ANYOF_NUPPER ANYOF_NVERTWS
syn keyword xsMacro ANYOF_NWORDCHAR ANYOF_NXDIGIT ANYOF_ONLY_HAS_BITMAP
syn keyword xsMacro ANYOF_POSIXL_AND ANYOF_POSIXL_CLEAR ANYOF_POSIXL_MAX
syn keyword xsMacro ANYOF_POSIXL_OR ANYOF_POSIXL_SET ANYOF_POSIXL_SETALL
syn keyword xsMacro ANYOF_POSIXL_SKIP ANYOF_POSIXL_SSC_TEST_ALL_SET
syn keyword xsMacro ANYOF_POSIXL_SSC_TEST_ANY_SET ANYOF_POSIXL_TEST
syn keyword xsMacro ANYOF_POSIXL_TEST_ALL_SET ANYOF_POSIXL_TEST_ANY_SET
syn keyword xsMacro ANYOF_POSIXL_ZERO ANYOF_PRINT ANYOF_PUNCT ANYOF_SKIP
syn keyword xsMacro ANYOF_SPACE ANYOF_SPACEL ANYOF_UNIPROP ANYOF_UPPER
syn keyword xsMacro ANYOF_VERTWS ANYOF_WARN_SUPER ANYOF_WORDCHAR ANYOF_XDIGIT
syn keyword xsMacro ARCHLIB ARCHLIB_EXP ARCHNAME ARG ARG1 ARG1_LOC ARG1_SET
syn keyword xsMacro ARG2 ARG2L ARG2L_LOC ARG2L_SET ARG2_LOC ARG2_SET ARGTARG
syn keyword xsMacro ARG_LOC ARG_SET ARG_VALUE ARG__SET ARROW
syn keyword xsMacro ASCII_MORE_RESTRICT_PAT_MODS ASCII_RESTRICT_PAT_MOD
syn keyword xsMacro ASCII_RESTRICT_PAT_MODS ASCII_TO_NATIVE ASCTIME_R_PROTO
syn keyword xsMacro ASSERT_CURPAD_ACTIVE ASSERT_CURPAD_LEGAL ASSIGNOP ASSUME
syn keyword xsMacro Atof Atol Atoul AvALLOC AvARRAY AvARYLEN AvFILL AvFILLp
syn keyword xsMacro AvMAX AvREAL AvREALISH AvREAL_off AvREAL_on AvREAL_only
syn keyword xsMacro AvREIFY AvREIFY_off AvREIFY_on AvREIFY_only BADVERSION
syn keyword xsMacro BASEOP BHKf_bhk_eval BHKf_bhk_post_end BHKf_bhk_pre_end
syn keyword xsMacro BHKf_bhk_start BIN BIN_EXP BITANDOP BITMAP_BYTE
syn keyword xsMacro BITMAP_TEST BITOROP BIT_BUCKET BIT_DIGITS BOL
syn keyword xsMacro BOM_UTF8_FIRST_BYTE BOM_UTF8_TAIL BOUND BOUNDA BOUNDL
syn keyword xsMacro BOUNDU BRANCH BRANCHJ BRANCH_next BRANCH_next_fail
syn keyword xsMacro BSD_GETPGRP BSD_SETPGRP BSDish BUFSIZ BYTEORDER
syn keyword xsMacro BhkDISABLE BhkENABLE BhkENTRY BhkENTRY_set BhkFLAGS Bit
syn keyword xsMacro BmFLAGS BmPREVIOUS BmRARE BmUSEFUL CALLREGCOMP
syn keyword xsMacro CALLREGCOMP_ENG CALLREGDUPE CALLREGDUPE_PVT CALLREGEXEC
syn keyword xsMacro CALLREGFREE CALLREGFREE_PVT CALLREG_INTUIT_START
syn keyword xsMacro CALLREG_INTUIT_STRING CALLREG_NAMED_BUFF_ALL
syn keyword xsMacro CALLREG_NAMED_BUFF_CLEAR CALLREG_NAMED_BUFF_COUNT
syn keyword xsMacro CALLREG_NAMED_BUFF_DELETE CALLREG_NAMED_BUFF_EXISTS
syn keyword xsMacro CALLREG_NAMED_BUFF_FETCH CALLREG_NAMED_BUFF_FIRSTKEY
syn keyword xsMacro CALLREG_NAMED_BUFF_NEXTKEY CALLREG_NAMED_BUFF_SCALAR
syn keyword xsMacro CALLREG_NAMED_BUFF_STORE CALLREG_NUMBUF_FETCH
syn keyword xsMacro CALLREG_NUMBUF_LENGTH CALLREG_NUMBUF_STORE
syn keyword xsMacro CALLREG_PACKAGE CALLRUNOPS CALL_BLOCK_HOOKS
syn keyword xsMacro CALL_CHECKER_REQUIRE_GV CALL_FPTR CANY CAN_COW_FLAGS
syn keyword xsMacro CAN_COW_MASK CAN_PROTOTYPE CAN_VAPROTO
syn keyword xsMacro CASE_STD_PMMOD_FLAGS_PARSE_SET CASTFLAGS CASTNEGFLOAT
syn keyword xsMacro CAT2 CATCH_GET CATCH_SET CHANGE_MULTICALL_FLAGS CHARBITS
syn keyword xsMacro CHARSET_PAT_MODS CHECK_MALLOC_TAINT
syn keyword xsMacro CHECK_MALLOC_TOO_LATE_FOR CHECK_MALLOC_TOO_LATE_FOR_
syn keyword xsMacro CLEAR_ARGARRAY CLEAR_ERRSV CLONEf_CLONE_HOST
syn keyword xsMacro CLONEf_COPY_STACKS CLONEf_JOIN_IN CLONEf_KEEP_PTR_TABLE
syn keyword xsMacro CLOSE CLUMP CLUMP_2IV CLUMP_2UV COLONATTR
syn keyword xsMacro COMBINING_GRAVE_ACCENT_UTF8 COMMIT COMMIT_next
syn keyword xsMacro COMMIT_next_fail COND_BROADCAST COND_DESTROY COND_INIT
syn keyword xsMacro COND_SIGNAL COND_WAIT CONTINUE CONTINUE_PAT_MOD
syn keyword xsMacro COPHH_KEY_UTF8 COP_SEQMAX_INC COP_SEQ_RANGE_HIGH
syn keyword xsMacro COP_SEQ_RANGE_LOW CPERLarg CPERLarg_ CPERLscope CPPLAST
syn keyword xsMacro CPPMINUS CPPRUN CPPSTDIN CRYPT_R_PROTO CR_NATIVE CSH
syn keyword xsMacro CTERMID_R_PROTO CTIME_R_PROTO CTYPE256 CURLY CURLYM
syn keyword xsMacro CURLYM_A CURLYM_A_fail CURLYM_B CURLYM_B_fail CURLYN
syn keyword xsMacro CURLYX CURLYX_end CURLYX_end_fail CURLY_B_max
syn keyword xsMacro CURLY_B_max_fail CURLY_B_min CURLY_B_min_fail
syn keyword xsMacro CURLY_B_min_known CURLY_B_min_known_fail
syn keyword xsMacro CURRENT_FEATURE_BUNDLE CURRENT_HINTS CUTGROUP
syn keyword xsMacro CUTGROUP_next CUTGROUP_next_fail CV_NAME_NOTQUAL
syn keyword xsMacro CV_UNDEF_KEEP_NAME CVf_ANON CVf_ANONCONST CVf_AUTOLOAD
syn keyword xsMacro CVf_BUILTIN_ATTRS CVf_CLONE CVf_CLONED CVf_CONST
syn keyword xsMacro CVf_CVGV_RC CVf_DYNFILE CVf_HASEVAL CVf_ISXSUB
syn keyword xsMacro CVf_LEXICAL CVf_LVALUE CVf_METHOD CVf_NAMED CVf_NODEBUG
syn keyword xsMacro CVf_SLABBED CVf_UNIQUE CVf_WEAKOUTSIDE CXINC CXTYPEMASK
syn keyword xsMacro CX_CURPAD_SAVE CX_CURPAD_SV CXp_FOR_DEF CXp_FOR_LVREF
syn keyword xsMacro CXp_HASARGS CXp_MULTICALL CXp_ONCE CXp_REAL CXp_SUB_RE
syn keyword xsMacro CXp_SUB_RE_FAKE CXp_TRYBLOCK C_ARRAY_END C_ARRAY_LENGTH
syn keyword xsMacro C_FAC_POSIX CopFILE CopFILEAV CopFILEAVx CopFILEGV
syn keyword xsMacro CopFILEGV_set CopFILESV CopFILE_free CopFILE_set
syn keyword xsMacro CopFILE_setn CopHINTHASH_get CopHINTHASH_set CopHINTS_get
syn keyword xsMacro CopHINTS_set CopLABEL CopLABEL_alloc CopLABEL_len
syn keyword xsMacro CopLABEL_len_flags CopLINE CopLINE_dec CopLINE_inc
syn keyword xsMacro CopLINE_set CopSTASH CopSTASHPV CopSTASHPV_set
syn keyword xsMacro CopSTASH_eq CopSTASH_ne CopSTASH_set Copy CopyD CowREFCNT
syn keyword xsMacro Ctl CvANON CvANONCONST CvANONCONST_off CvANONCONST_on
syn keyword xsMacro CvANON_off CvANON_on CvAUTOLOAD CvAUTOLOAD_off
syn keyword xsMacro CvAUTOLOAD_on CvCLONE CvCLONED CvCLONED_off CvCLONED_on
syn keyword xsMacro CvCLONE_off CvCLONE_on CvCONST CvCONST_off CvCONST_on
syn keyword xsMacro CvCVGV_RC CvCVGV_RC_off CvCVGV_RC_on CvDEPTH
syn keyword xsMacro CvDEPTHunsafe CvDYNFILE CvDYNFILE_off CvDYNFILE_on CvEVAL
syn keyword xsMacro CvEVAL_off CvEVAL_on CvFILE CvFILEGV CvFILE_set_from_cop
syn keyword xsMacro CvFLAGS CvGV CvGV_set CvHASEVAL CvHASEVAL_off
syn keyword xsMacro CvHASEVAL_on CvHASGV CvHSCXT CvISXSUB CvISXSUB_off
syn keyword xsMacro CvISXSUB_on CvLEXICAL CvLEXICAL_off CvLEXICAL_on CvLVALUE
syn keyword xsMacro CvLVALUE_off CvLVALUE_on CvMETHOD CvMETHOD_off
syn keyword xsMacro CvMETHOD_on CvNAMED CvNAMED_off CvNAMED_on CvNAME_HEK_set
syn keyword xsMacro CvNODEBUG CvNODEBUG_off CvNODEBUG_on CvOUTSIDE
syn keyword xsMacro CvOUTSIDE_SEQ CvPADLIST CvPADLIST_set CvPROTO CvPROTOLEN
syn keyword xsMacro CvROOT CvSLABBED CvSLABBED_off CvSLABBED_on CvSPECIAL
syn keyword xsMacro CvSPECIAL_off CvSPECIAL_on CvSTART CvSTASH CvSTASH_set
syn keyword xsMacro CvUNIQUE CvUNIQUE_off CvUNIQUE_on CvWEAKOUTSIDE
syn keyword xsMacro CvWEAKOUTSIDE_off CvWEAKOUTSIDE_on CvXSUB CvXSUBANY
syn keyword xsMacro CxFOREACH CxFOREACHDEF CxHASARGS CxITERVAR
syn keyword xsMacro CxITERVAR_PADSV CxLABEL CxLABEL_len CxLABEL_len_flags
syn keyword xsMacro CxLVAL CxMULTICALL CxOLD_IN_EVAL CxOLD_OP_TYPE CxONCE
syn keyword xsMacro CxPADLOOP CxPOPSUB_DONE CxREALEVAL CxTRYBLOCK CxTYPE
syn keyword xsMacro CxTYPE_is_LOOP DBL_DIG DBL_MAX DBL_MIN DBM_ckFilter
syn keyword xsMacro DBM_setFilter DBVARMG_COUNT DBVARMG_SIGNAL DBVARMG_SINGLE
syn keyword xsMacro DBVARMG_TRACE DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
syn keyword xsMacro DB_VERSION_PATCH_CFG DEBUG_A DEBUG_A_FLAG DEBUG_A_TEST
syn keyword xsMacro DEBUG_A_TEST_ DEBUG_B DEBUG_BUFFERS_r DEBUG_B_FLAG
syn keyword xsMacro DEBUG_B_TEST DEBUG_B_TEST_ DEBUG_C DEBUG_COMPILE_r
syn keyword xsMacro DEBUG_CX DEBUG_C_FLAG DEBUG_C_TEST DEBUG_C_TEST_ DEBUG_D
syn keyword xsMacro DEBUG_DB_RECURSE_FLAG DEBUG_DUMP_r DEBUG_D_FLAG
syn keyword xsMacro DEBUG_D_TEST DEBUG_D_TEST_ DEBUG_EXECUTE_r DEBUG_EXTRA_r
syn keyword xsMacro DEBUG_FLAGS_r DEBUG_GPOS_r DEBUG_H DEBUG_H_FLAG
syn keyword xsMacro DEBUG_H_TEST DEBUG_H_TEST_ DEBUG_INTUIT_r DEBUG_J_FLAG
syn keyword xsMacro DEBUG_J_TEST DEBUG_J_TEST_ DEBUG_L DEBUG_L_FLAG
syn keyword xsMacro DEBUG_L_TEST DEBUG_L_TEST_ DEBUG_M DEBUG_MASK
syn keyword xsMacro DEBUG_MATCH_r DEBUG_M_FLAG DEBUG_M_TEST DEBUG_M_TEST_
syn keyword xsMacro DEBUG_OFFSETS_r DEBUG_OPTIMISE_MORE_r DEBUG_OPTIMISE_r
syn keyword xsMacro DEBUG_P DEBUG_PARSE_r DEBUG_P_FLAG DEBUG_P_TEST
syn keyword xsMacro DEBUG_P_TEST_ DEBUG_Pv DEBUG_Pv_TEST DEBUG_Pv_TEST_
syn keyword xsMacro DEBUG_R DEBUG_R_FLAG DEBUG_R_TEST DEBUG_R_TEST_ DEBUG_S
syn keyword xsMacro DEBUG_SCOPE DEBUG_STACK_r DEBUG_STATE_r DEBUG_S_FLAG
syn keyword xsMacro DEBUG_S_TEST DEBUG_S_TEST_ DEBUG_T DEBUG_TEST_r
syn keyword xsMacro DEBUG_TOP_FLAG DEBUG_TRIE_COMPILE_MORE_r
syn keyword xsMacro DEBUG_TRIE_COMPILE_r DEBUG_TRIE_EXECUTE_MORE_r
syn keyword xsMacro DEBUG_TRIE_EXECUTE_r DEBUG_TRIE_r DEBUG_T_FLAG
syn keyword xsMacro DEBUG_T_TEST DEBUG_T_TEST_ DEBUG_U DEBUG_U_FLAG
syn keyword xsMacro DEBUG_U_TEST DEBUG_U_TEST_ DEBUG_Uv DEBUG_Uv_TEST
syn keyword xsMacro DEBUG_Uv_TEST_ DEBUG_X DEBUG_X_FLAG DEBUG_X_TEST
syn keyword xsMacro DEBUG_X_TEST_ DEBUG_Xv DEBUG_Xv_TEST DEBUG_Xv_TEST_
syn keyword xsMacro DEBUG__ DEBUG_c DEBUG_c_FLAG DEBUG_c_TEST DEBUG_c_TEST_
syn keyword xsMacro DEBUG_f DEBUG_f_FLAG DEBUG_f_TEST DEBUG_f_TEST_ DEBUG_l
syn keyword xsMacro DEBUG_l_FLAG DEBUG_l_TEST DEBUG_l_TEST_ DEBUG_m
syn keyword xsMacro DEBUG_m_FLAG DEBUG_m_TEST DEBUG_m_TEST_ DEBUG_o
syn keyword xsMacro DEBUG_o_FLAG DEBUG_o_TEST DEBUG_o_TEST_ DEBUG_p
syn keyword xsMacro DEBUG_p_FLAG DEBUG_p_TEST DEBUG_p_TEST_ DEBUG_q
syn keyword xsMacro DEBUG_q_FLAG DEBUG_q_TEST DEBUG_q_TEST_ DEBUG_r
syn keyword xsMacro DEBUG_r_FLAG DEBUG_r_TEST DEBUG_r_TEST_ DEBUG_s
syn keyword xsMacro DEBUG_s_FLAG DEBUG_s_TEST DEBUG_s_TEST_ DEBUG_t_FLAG
syn keyword xsMacro DEBUG_t_TEST DEBUG_t_TEST_ DEBUG_u DEBUG_u_FLAG
syn keyword xsMacro DEBUG_u_TEST DEBUG_u_TEST_ DEBUG_v DEBUG_v_FLAG
syn keyword xsMacro DEBUG_v_TEST DEBUG_v_TEST_ DEBUG_x DEBUG_x_FLAG
syn keyword xsMacro DEBUG_x_TEST DEBUG_x_TEST_
syn keyword xsMacro DECLARATION_FOR_LC_NUMERIC_MANIPULATION
syn keyword xsMacro DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED
syn keyword xsMacro DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED DEFAULT
syn keyword xsMacro DEFAULT_PAT_MOD DEFINEP DEFSV DEFSV_set DEL_NATIVE
syn keyword xsMacro DEPENDS_PAT_MOD DEPENDS_PAT_MODS DETACH DIE DM_ARRAY_ISA
syn keyword xsMacro DM_DELAY DM_EGID DM_EUID DM_GID DM_RGID DM_RUID DM_UID DO
syn keyword xsMacro DOINIT DOLSHARP DONT_DECLARE_STD DORDOR DOROP DOSISH
syn keyword xsMacro DOTDOT DOUBLEKIND DOUBLESIZE DOUBLE_BIG_ENDIAN
syn keyword xsMacro DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
syn keyword xsMacro DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
syn keyword xsMacro DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
syn keyword xsMacro DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
syn keyword xsMacro DOUBLE_IS_UNKNOWN_FORMAT DOUBLE_LITTLE_ENDIAN
syn keyword xsMacro DOUBLE_MIX_ENDIAN DO_UTF8 DPTR2FPTR DRAND48_R_PROTO
syn keyword xsMacro DUP_WARNINGS Drand01 ELSE ELSIF EMBEDMYMALLOC END
syn keyword xsMacro ENDGRENT_R_PROTO ENDHOSTENT_R_PROTO ENDLIKE
syn keyword xsMacro ENDNETENT_R_PROTO ENDPROTOENT_R_PROTO ENDPWENT_R_PROTO
syn keyword xsMacro ENDSERVENT_R_PROTO END_EXTERN_C ENTER ENTER_with_name
syn keyword xsMacro ENTRY_PROBE EOF EOL EOS EQOP ERRSV ESC_NATIVE EVAL
syn keyword xsMacro EVAL_AB EVAL_AB_fail EVAL_INEVAL EVAL_INREQUIRE
syn keyword xsMacro EVAL_KEEPERR EVAL_NULL EVAL_RE_REPARSING EVAL_WARNONLY
syn keyword xsMacro EXACT EXACTF EXACTFA EXACTFA_NO_TRIE EXACTFL EXACTFLU8
syn keyword xsMacro EXACTFU EXACTFU_SS EXACTL EXEC_ARGV_CAST EXEC_PAT_MOD
syn keyword xsMacro EXEC_PAT_MODS EXPECT EXT EXTCONST EXTEND EXTEND_MORTAL
syn keyword xsMacro EXTERN_C EXTPERLIO EXTRA_SIZE EXTRA_STEP_2ARGS EXT_MGVTBL
syn keyword xsMacro EXT_PAT_MODS FAKE_BIT_BUCKET FAKE_DEFAULT_SIGNAL_HANDLERS
syn keyword xsMacro FAKE_PERSISTENT_SIGNAL_HANDLERS FALSE FBMcf_TAIL
syn keyword xsMacro FBMcf_TAIL_DOLLAR FBMcf_TAIL_DOLLARM FBMcf_TAIL_Z
syn keyword xsMacro FBMcf_TAIL_z FBMrf_MULTILINE FCNTL_CAN_LOCK FD_CLR
syn keyword xsMacro FD_ISSET FD_SET FD_ZERO FEATURE_ARYBASE_IS_ENABLED
syn keyword xsMacro FEATURE_BITWISE_IS_ENABLED FEATURE_BUNDLE_510
syn keyword xsMacro FEATURE_BUNDLE_511 FEATURE_BUNDLE_515
syn keyword xsMacro FEATURE_BUNDLE_CUSTOM FEATURE_BUNDLE_DEFAULT
syn keyword xsMacro FEATURE_EVALBYTES_IS_ENABLED FEATURE_FC_IS_ENABLED
syn keyword xsMacro FEATURE_IS_ENABLED FEATURE_LEXSUBS_IS_ENABLED
syn keyword xsMacro FEATURE_POSTDEREF_IS_ENABLED
syn keyword xsMacro FEATURE_POSTDEREF_QQ_IS_ENABLED
syn keyword xsMacro FEATURE_REFALIASING_IS_ENABLED FEATURE_SAY_IS_ENABLED
syn keyword xsMacro FEATURE_SIGNATURES_IS_ENABLED FEATURE_STATE_IS_ENABLED
syn keyword xsMacro FEATURE_SWITCH_IS_ENABLED FEATURE_UNICODE_IS_ENABLED
syn keyword xsMacro FEATURE_UNIEVAL_IS_ENABLED FEATURE___SUB___IS_ENABLED
syn keyword xsMacro FFLUSH_NULL FF_0DECIMAL FF_BLANK FF_CHECKCHOP FF_CHECKNL
syn keyword xsMacro FF_CHOP FF_DECIMAL FF_END FF_FETCH FF_HALFSPACE FF_ITEM
syn keyword xsMacro FF_LINEGLOB FF_LINEMARK FF_LINESNGL FF_LITERAL FF_MORE
syn keyword xsMacro FF_NEWLINE FF_SKIP FF_SPACE FILE FILE_base FILE_bufsiz
syn keyword xsMacro FILE_cnt FILE_ptr FILL_ADVANCE_NODE
syn keyword xsMacro FILL_ADVANCE_NODE_2L_ARG FILL_ADVANCE_NODE_ARG
syn keyword xsMacro FILTER_DATA FILTER_ISREADER FILTER_READ
syn keyword xsMacro FIND_RUNCV_level_eq FIND_RUNCV_padid_eq
syn keyword xsMacro FIRST_SURROGATE_UTF8_FIRST_BYTE FITS_IN_8_BITS FLAGS
syn keyword xsMacro FLEXFILENAMES FOLDEQ_LOCALE FOLDEQ_S1_ALREADY_FOLDED
syn keyword xsMacro FOLDEQ_S1_FOLDS_SANE FOLDEQ_S2_ALREADY_FOLDED
syn keyword xsMacro FOLDEQ_S2_FOLDS_SANE FOLDEQ_UTF8_NOMIX_ASCII
syn keyword xsMacro FOLD_FLAGS_FULL FOLD_FLAGS_LOCALE FOLD_FLAGS_NOMIX_ASCII
syn keyword xsMacro FOR FORMAT FORMLBRACK FORMRBRACK FPTR2DPTR FP_PINF
syn keyword xsMacro FP_QNAN FREETMPS FREE_THREAD_KEY FSEEKSIZE FUNC FUNC0
syn keyword xsMacro FUNC0OP FUNC0SUB FUNC1 FUNCMETH FUNCTION__ F_atan2_amg
syn keyword xsMacro F_cos_amg F_exp_amg F_log_amg F_pow_amg F_sin_amg
syn keyword xsMacro F_sqrt_amg Fflush FmLINES FreeOp Fstat GCB_ENUM_COUNT
syn keyword xsMacro GCC_DIAG_IGNORE GCC_DIAG_PRAGMA GCC_DIAG_RESTORE
syn keyword xsMacro GDBMNDBM_H_USES_PROTOTYPES GETATARGET GETGRENT_R_PROTO
syn keyword xsMacro GETGRGID_R_PROTO GETGRNAM_R_PROTO GETHOSTBYADDR_R_PROTO
syn keyword xsMacro GETHOSTBYNAME_R_PROTO GETHOSTENT_R_PROTO GETLOGIN_R_PROTO
syn keyword xsMacro GETNETBYADDR_R_PROTO GETNETBYNAME_R_PROTO
syn keyword xsMacro GETNETENT_R_PROTO GETPROTOBYNAME_R_PROTO
syn keyword xsMacro GETPROTOBYNUMBER_R_PROTO GETPROTOENT_R_PROTO
syn keyword xsMacro GETPWENT_R_PROTO GETPWNAM_R_PROTO GETPWUID_R_PROTO
syn keyword xsMacro GETSERVBYNAME_R_PROTO GETSERVBYPORT_R_PROTO
syn keyword xsMacro GETSERVENT_R_PROTO GETSPNAM_R_PROTO GETTARGET
syn keyword xsMacro GETTARGETSTACKED GET_RE_DEBUG_FLAGS
syn keyword xsMacro GET_RE_DEBUG_FLAGS_DECL GIMME GIMME_V GIVEN
syn keyword xsMacro GLOBAL_PAT_MOD GMTIME_MAX GMTIME_MIN GMTIME_R
syn keyword xsMacro GMTIME_R_PROTO GOSTART GOSUB GPOS GPf_ALIASED_SV
syn keyword xsMacro GRAMBARESTMT GRAMBLOCK GRAMEXPR GRAMFULLSTMT GRAMPROG
syn keyword xsMacro GRAMSTMTSEQ GREEK_CAPITAL_LETTER_IOTA_UTF8
syn keyword xsMacro GREEK_CAPITAL_LETTER_MU GREEK_SMALL_LETTER_MU
syn keyword xsMacro GREEK_SMALL_LETTER_MU_UTF8 GROK_NUMERIC_RADIX GROUPP
syn keyword xsMacro GRPASSWD GV_ADD GV_ADDMG GV_ADDMULTI GV_ADDWARN
syn keyword xsMacro GV_AUTOLOAD GV_AUTOLOAD_ISMETHOD GV_CACHE_ONLY GV_CROAK
syn keyword xsMacro GV_NOADD_MASK GV_NOADD_NOINIT GV_NOEXPAND GV_NOINIT
syn keyword xsMacro GV_NOTQUAL GV_NO_SVGMAGIC GV_SUPER GVf_ASSUMECV
syn keyword xsMacro GVf_IMPORTED GVf_IMPORTED_AV GVf_IMPORTED_CV
syn keyword xsMacro GVf_IMPORTED_HV GVf_IMPORTED_SV GVf_INTRO GVf_MULTI
syn keyword xsMacro Gconvert Gid_t_f Gid_t_sign Gid_t_size GvALIASED_SV
syn keyword xsMacro GvALIASED_SV_off GvALIASED_SV_on GvASSIGN_GENERATION
syn keyword xsMacro GvASSIGN_GENERATION_set GvASSUMECV GvASSUMECV_off
syn keyword xsMacro GvASSUMECV_on GvAV GvAVn GvCV GvCVGEN GvCV_set GvCVu
syn keyword xsMacro GvEGV GvEGVx GvENAME GvENAMELEN GvENAMEUTF8 GvENAME_HEK
syn keyword xsMacro GvESTASH GvFILE GvFILEGV GvFILE_HEK GvFILEx GvFLAGS
syn keyword xsMacro GvFORM GvGP GvGPFLAGS GvGP_set GvHV GvHVn GvIMPORTED
syn keyword xsMacro GvIMPORTED_AV GvIMPORTED_AV_off GvIMPORTED_AV_on
syn keyword xsMacro GvIMPORTED_CV GvIMPORTED_CV_off GvIMPORTED_CV_on
syn keyword xsMacro GvIMPORTED_HV GvIMPORTED_HV_off GvIMPORTED_HV_on
syn keyword xsMacro GvIMPORTED_SV GvIMPORTED_SV_off GvIMPORTED_SV_on
syn keyword xsMacro GvIMPORTED_off GvIMPORTED_on GvINTRO GvINTRO_off
syn keyword xsMacro GvINTRO_on GvIN_PAD GvIN_PAD_off GvIN_PAD_on GvIO GvIOn
syn keyword xsMacro GvIOp GvLINE GvMULTI GvMULTI_off GvMULTI_on GvNAME
syn keyword xsMacro GvNAMELEN GvNAMELEN_get GvNAMEUTF8 GvNAME_HEK GvNAME_get
syn keyword xsMacro GvREFCNT GvSTASH GvSV GvSVn GvXPVGV Gv_AMG HANDY_H
syn keyword xsMacro HASATTRIBUTE_DEPRECATED HASATTRIBUTE_FORMAT
syn keyword xsMacro HASATTRIBUTE_MALLOC HASATTRIBUTE_NONNULL
syn keyword xsMacro HASATTRIBUTE_NORETURN HASATTRIBUTE_PURE
syn keyword xsMacro HASATTRIBUTE_UNUSED HASATTRIBUTE_WARN_UNUSED_RESULT
syn keyword xsMacro HASCONST HASHBRACK HASVOLATILE HAS_ACCESS HAS_ACOSH
syn keyword xsMacro HAS_ALARM HAS_ASINH HAS_ATANH HAS_ATOLL HAS_BACKTRACE
syn keyword xsMacro HAS_BCMP HAS_BCOPY HAS_BOOL HAS_BUILTIN_CHOOSE_EXPR
syn keyword xsMacro HAS_BUILTIN_EXPECT HAS_BZERO HAS_C99
syn keyword xsMacro HAS_C99_VARIADIC_MACROS HAS_CBRT HAS_CHOWN HAS_CHROOT
syn keyword xsMacro HAS_CLEARENV HAS_COPYSIGN HAS_COPYSIGNL HAS_CRYPT
syn keyword xsMacro HAS_CTERMID HAS_CUSERID HAS_DBL_DIG HAS_DBMINIT_PROTO
syn keyword xsMacro HAS_DIFFTIME HAS_DIRFD HAS_DLADDR HAS_DLERROR
syn keyword xsMacro HAS_DRAND48_PROTO HAS_DUP2 HAS_EACCESS HAS_ENDGRENT
syn keyword xsMacro HAS_ENDHOSTENT HAS_ENDNETENT HAS_ENDPROTOENT HAS_ENDPWENT
syn keyword xsMacro HAS_ENDSERVENT HAS_ERF HAS_ERFC HAS_EXP2 HAS_EXPM1
syn keyword xsMacro HAS_FCHDIR HAS_FCHMOD HAS_FCHOWN HAS_FCNTL HAS_FDIM
syn keyword xsMacro HAS_FD_SET HAS_FEGETROUND HAS_FGETPOS HAS_FINITE
syn keyword xsMacro HAS_FINITEL HAS_FLOCK HAS_FLOCK_PROTO HAS_FMA HAS_FMAX
syn keyword xsMacro HAS_FMIN HAS_FORK HAS_FPATHCONF HAS_FPCLASSIFY HAS_FREXPL
syn keyword xsMacro HAS_FSEEKO HAS_FSETPOS HAS_FSTATFS HAS_FSTATVFS HAS_FSYNC
syn keyword xsMacro HAS_FTELLO HAS_FUTIMES HAS_GETADDRINFO HAS_GETCWD
syn keyword xsMacro HAS_GETGRENT HAS_GETGROUPS HAS_GETHOSTBYADDR
syn keyword xsMacro HAS_GETHOSTBYNAME HAS_GETHOSTENT HAS_GETHOSTNAME
syn keyword xsMacro HAS_GETHOST_PROTOS HAS_GETITIMER HAS_GETLOGIN
syn keyword xsMacro HAS_GETMNTENT HAS_GETNAMEINFO HAS_GETNETBYADDR
syn keyword xsMacro HAS_GETNETBYNAME HAS_GETNETENT HAS_GETNET_PROTOS
syn keyword xsMacro HAS_GETPAGESIZE HAS_GETPGID HAS_GETPGRP HAS_GETPPID
syn keyword xsMacro HAS_GETPRIORITY HAS_GETPROTOBYNAME HAS_GETPROTOBYNUMBER
syn keyword xsMacro HAS_GETPROTOENT HAS_GETPROTO_PROTOS HAS_GETPWENT
syn keyword xsMacro HAS_GETSERVBYNAME HAS_GETSERVBYPORT HAS_GETSERVENT
syn keyword xsMacro HAS_GETSERV_PROTOS HAS_GETSPNAM HAS_GETTIMEOFDAY
syn keyword xsMacro HAS_GNULIBC HAS_GROUP HAS_HASMNTOPT HAS_HTONL HAS_HTONS
syn keyword xsMacro HAS_HYPOT HAS_ILOGB HAS_ILOGBL HAS_INETNTOP HAS_INETPTON
syn keyword xsMacro HAS_INET_ATON HAS_INT64_T HAS_IOCTL HAS_IPV6_MREQ
syn keyword xsMacro HAS_IP_MREQ HAS_IP_MREQ_SOURCE HAS_ISASCII HAS_ISBLANK
syn keyword xsMacro HAS_ISFINITE HAS_ISINF HAS_ISINFL HAS_ISNAN HAS_ISNANL
syn keyword xsMacro HAS_ISNORMAL HAS_J0 HAS_J0L HAS_KILL HAS_KILLPG
syn keyword xsMacro HAS_LCHOWN HAS_LC_MONETARY_2008 HAS_LDBL_DIG HAS_LDEXPL
syn keyword xsMacro HAS_LGAMMA HAS_LGAMMA_R HAS_LINK HAS_LLRINT HAS_LLRINTL
syn keyword xsMacro HAS_LLROUND HAS_LLROUNDL HAS_LOCALECONV HAS_LOCKF
syn keyword xsMacro HAS_LOG1P HAS_LOG2 HAS_LOGB HAS_LONG_DOUBLE HAS_LONG_LONG
syn keyword xsMacro HAS_LRINT HAS_LRINTL HAS_LROUND HAS_LROUNDL
syn keyword xsMacro HAS_LSEEK_PROTO HAS_LSTAT HAS_MADVISE HAS_MBLEN
syn keyword xsMacro HAS_MBSTOWCS HAS_MBTOWC HAS_MEMCHR HAS_MEMCMP HAS_MEMCPY
syn keyword xsMacro HAS_MEMMOVE HAS_MEMSET HAS_MKDIR HAS_MKDTEMP HAS_MKFIFO
syn keyword xsMacro HAS_MKSTEMP HAS_MKSTEMPS HAS_MKTIME HAS_MMAP HAS_MODFL
syn keyword xsMacro HAS_MODFL_PROTO HAS_MPROTECT HAS_MSG HAS_MSG_CTRUNC
syn keyword xsMacro HAS_MSG_DONTROUTE HAS_MSG_OOB HAS_MSG_PEEK HAS_MSG_PROXY
syn keyword xsMacro HAS_MSYNC HAS_MUNMAP HAS_NAN HAS_NEARBYINT HAS_NEXTAFTER
syn keyword xsMacro HAS_NEXTTOWARD HAS_NICE HAS_NL_LANGINFO HAS_NTOHL
syn keyword xsMacro HAS_NTOHS HAS_OPEN3 HAS_PASSWD HAS_PATHCONF HAS_PAUSE
syn keyword xsMacro HAS_PIPE HAS_POLL HAS_PRCTL HAS_PRCTL_SET_NAME
syn keyword xsMacro HAS_PROCSELFEXE HAS_PTHREAD_ATFORK
syn keyword xsMacro HAS_PTHREAD_ATTR_SETSCOPE
syn keyword xsMacro HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP HAS_PTHREAD_YIELD
syn keyword xsMacro HAS_PTRDIFF_T HAS_READDIR HAS_READLINK HAS_READV
syn keyword xsMacro HAS_RECVMSG HAS_REGCOMP HAS_REMAINDER HAS_REMQUO
syn keyword xsMacro HAS_RENAME HAS_REWINDDIR HAS_RINT HAS_RMDIR HAS_ROUND
syn keyword xsMacro HAS_SANE_MEMCMP HAS_SBRK_PROTO HAS_SCALBN HAS_SCALBNL
syn keyword xsMacro HAS_SCHED_YIELD HAS_SCM_RIGHTS HAS_SEEKDIR HAS_SELECT
syn keyword xsMacro HAS_SEM HAS_SENDMSG HAS_SETEGID HAS_SETEUID HAS_SETGRENT
syn keyword xsMacro HAS_SETGROUPS HAS_SETHOSTENT HAS_SETITIMER HAS_SETLINEBUF
syn keyword xsMacro HAS_SETLOCALE HAS_SETNETENT HAS_SETPGID HAS_SETPGRP
syn keyword xsMacro HAS_SETPRIORITY HAS_SETPROTOENT HAS_SETPWENT HAS_SETREGID
syn keyword xsMacro HAS_SETRESGID HAS_SETRESUID HAS_SETREUID HAS_SETSERVENT
syn keyword xsMacro HAS_SETSID HAS_SETVBUF HAS_SHM HAS_SHMAT_PROTOTYPE
syn keyword xsMacro HAS_SIGACTION HAS_SIGNBIT HAS_SIGPROCMASK HAS_SIGSETJMP
syn keyword xsMacro HAS_SIN6_SCOPE_ID HAS_SKIP_LOCALE_INIT HAS_SNPRINTF
syn keyword xsMacro HAS_SOCKADDR_IN6 HAS_SOCKATMARK HAS_SOCKATMARK_PROTO
syn keyword xsMacro HAS_SOCKET HAS_SQRTL HAS_STAT HAS_STATIC_INLINE
syn keyword xsMacro HAS_STRCHR HAS_STRCOLL HAS_STRFTIME HAS_STRTOD HAS_STRTOL
syn keyword xsMacro HAS_STRTOLD HAS_STRTOLL HAS_STRTOQ HAS_STRTOUL
syn keyword xsMacro HAS_STRTOULL HAS_STRTOUQ HAS_STRUCT_CMSGHDR
syn keyword xsMacro HAS_STRUCT_MSGHDR HAS_STRUCT_STATFS
syn keyword xsMacro HAS_STRUCT_STATFS_F_FLAGS HAS_STRXFRM HAS_SYMLINK
syn keyword xsMacro HAS_SYSCALL HAS_SYSCALL_PROTO HAS_SYSCONF HAS_SYSTEM
syn keyword xsMacro HAS_SYS_ERRLIST HAS_TCGETPGRP HAS_TCSETPGRP HAS_TELLDIR
syn keyword xsMacro HAS_TELLDIR_PROTO HAS_TGAMMA HAS_TIME HAS_TIMEGM
syn keyword xsMacro HAS_TIMES HAS_TM_TM_GMTOFF HAS_TM_TM_ZONE HAS_TRUNC
syn keyword xsMacro HAS_TRUNCATE HAS_TRUNCL HAS_TZNAME HAS_UALARM HAS_UMASK
syn keyword xsMacro HAS_UNAME HAS_UNSETENV HAS_USLEEP HAS_USLEEP_PROTO
syn keyword xsMacro HAS_USTAT HAS_UTIME HAS_VPRINTF HAS_VSNPRINTF HAS_WAIT
syn keyword xsMacro HAS_WAIT4 HAS_WAITPID HAS_WCSCMP HAS_WCSTOMBS HAS_WCSXFRM
syn keyword xsMacro HAS_WCTOMB HAS_WRITEV HEK_BASESIZE HEK_FLAGS HEK_HASH
syn keyword xsMacro HEK_KEY HEK_LEN HEK_UTF8 HEK_UTF8_off HEK_UTF8_on
syn keyword xsMacro HEK_WASUTF8 HEK_WASUTF8_off HEK_WASUTF8_on HEKf HEKf256
syn keyword xsMacro HEKfARG HE_SVSLOT HEf_SVKEY HINTS_REFCNT_INIT
syn keyword xsMacro HINTS_REFCNT_LOCK HINTS_REFCNT_TERM HINTS_REFCNT_UNLOCK
syn keyword xsMacro HINT_BLOCK_SCOPE HINT_BYTES HINT_EXPLICIT_STRICT_REFS
syn keyword xsMacro HINT_EXPLICIT_STRICT_SUBS HINT_EXPLICIT_STRICT_VARS
syn keyword xsMacro HINT_FEATURE_MASK HINT_FEATURE_SHIFT HINT_FILETEST_ACCESS
syn keyword xsMacro HINT_INTEGER HINT_LEXICAL_IO_IN HINT_LEXICAL_IO_OUT
syn keyword xsMacro HINT_LOCALE HINT_LOCALE_PARTIAL HINT_LOCALIZE_HH
syn keyword xsMacro HINT_NEW_BINARY HINT_NEW_FLOAT HINT_NEW_INTEGER
syn keyword xsMacro HINT_NEW_RE HINT_NEW_STRING HINT_NO_AMAGIC HINT_RE_EVAL
syn keyword xsMacro HINT_RE_FLAGS HINT_RE_TAINT HINT_SORT_MERGESORT
syn keyword xsMacro HINT_SORT_QUICKSORT HINT_SORT_SORT_BITS HINT_SORT_STABLE
syn keyword xsMacro HINT_STRICT_REFS HINT_STRICT_SUBS HINT_STRICT_VARS
syn keyword xsMacro HINT_UNI_8_BIT HINT_UTF8 HS_APIVERLEN_MAX HS_CXT
syn keyword xsMacro HS_GETAPIVERLEN HS_GETINTERPSIZE HS_GETXSVERLEN HS_KEY
syn keyword xsMacro HS_KEYp HS_XSVERLEN_MAX HSf_IMP_CXT HSf_NOCHK HSf_POPMARK
syn keyword xsMacro HSf_SETXSUBFN HSm_APIVERLEN HSm_INTRPSIZE HSm_KEY_MATCH
syn keyword xsMacro HSm_XSVERLEN HV_DELETE HV_DISABLE_UVAR_XKEY
syn keyword xsMacro HV_FETCH_EMPTY_HE HV_FETCH_ISEXISTS HV_FETCH_ISSTORE
syn keyword xsMacro HV_FETCH_JUST_SV HV_FETCH_LVALUE
syn keyword xsMacro HV_ITERNEXT_WANTPLACEHOLDERS HV_NAME_SETALL
syn keyword xsMacro HVhek_ENABLEHVKFLAGS HVhek_FREEKEY HVhek_KEYCANONICAL
syn keyword xsMacro HVhek_MASK HVhek_PLACEHOLD HVhek_UNSHARED HVhek_UTF8
syn keyword xsMacro HVhek_WASUTF8 HVrhek_IV HVrhek_PV HVrhek_PV_UTF8
syn keyword xsMacro HVrhek_UV HVrhek_delete HVrhek_typemask HVrhek_undef
syn keyword xsMacro HYPHEN_UTF8 H_EBCDIC_TABLES H_PERL H_REGCHARCLASS
syn keyword xsMacro H_UNICODE_CONSTANTS H_UTF8 HeHASH HeKEY HeKEY_hek
syn keyword xsMacro HeKEY_sv HeKFLAGS HeKLEN HeKLEN_UTF8 HeKUTF8 HeKWASUTF8
syn keyword xsMacro HeNEXT HePV HeSVKEY HeSVKEY_force HeSVKEY_set HeUTF8
syn keyword xsMacro HeVAL HvAMAGIC HvAMAGIC_off HvAMAGIC_on HvARRAY HvAUX
syn keyword xsMacro HvAUXf_NO_DEREF HvAUXf_SCAN_STASH HvEITER HvEITER_get
syn keyword xsMacro HvEITER_set HvENAME HvENAMELEN HvENAMELEN_get HvENAMEUTF8
syn keyword xsMacro HvENAME_HEK HvENAME_HEK_NN HvENAME_get HvFILL HvHASKFLAGS
syn keyword xsMacro HvHASKFLAGS_off HvHASKFLAGS_on HvKEYS HvLASTRAND_get
syn keyword xsMacro HvLAZYDEL HvLAZYDEL_off HvLAZYDEL_on HvMAX HvMROMETA
syn keyword xsMacro HvNAME HvNAMELEN HvNAMELEN_get HvNAMEUTF8 HvNAME_HEK
syn keyword xsMacro HvNAME_HEK_NN HvNAME_get HvPLACEHOLDERS
syn keyword xsMacro HvPLACEHOLDERS_get HvPLACEHOLDERS_set HvRAND_get HvRITER
syn keyword xsMacro HvRITER_get HvRITER_set HvSHAREKEYS HvSHAREKEYS_off
syn keyword xsMacro HvSHAREKEYS_on HvTOTALKEYS HvUSEDKEYS I16SIZE I16TYPE
syn keyword xsMacro I16_MAX I16_MIN I32SIZE I32TYPE I32_MAX I32_MAX_P1
syn keyword xsMacro I32_MIN I64SIZE I64TYPE I8SIZE I8TYPE I8_TO_NATIVE
syn keyword xsMacro I8_TO_NATIVE_UTF8 IF IFMATCH IFMATCH_A IFMATCH_A_fail
syn keyword xsMacro IFTHEN IGNORE_PAT_MOD ILLEGAL_UTF8_BYTE INIT INIT_THREADS
syn keyword xsMacro INIT_TRACK_MEMPOOL INSUBP INT2PTR INT32_MIN INT64_C
syn keyword xsMacro INT64_MIN INTSIZE INT_64_T INT_PAT_MODS IN_BYTES
syn keyword xsMacro IN_ENCODING IN_LC IN_LC_ALL_COMPILETIME IN_LC_ALL_RUNTIME
syn keyword xsMacro IN_LC_COMPILETIME IN_LC_PARTIAL_COMPILETIME
syn keyword xsMacro IN_LC_PARTIAL_RUNTIME IN_LC_RUNTIME IN_LOCALE
syn keyword xsMacro IN_LOCALE_COMPILETIME IN_LOCALE_RUNTIME
syn keyword xsMacro IN_PERL_COMPILETIME IN_PERL_RUNTIME IN_SOME_LOCALE_FORM
syn keyword xsMacro IN_SOME_LOCALE_FORM_COMPILETIME
syn keyword xsMacro IN_SOME_LOCALE_FORM_RUNTIME IN_UNI_8_BIT
syn keyword xsMacro IN_UTF8_CTYPE_LOCALE IOCPARM_LEN IOf_ARGV IOf_DIDTOP
syn keyword xsMacro IOf_FAKE_DIRP IOf_FLUSH IOf_NOLINE IOf_START IOf_UNTAINT
syn keyword xsMacro ISA_VERSION_OBJ IS_ANYOF_TRIE
syn keyword xsMacro IS_NUMBER_GREATER_THAN_UV_MAX IS_NUMBER_INFINITY
syn keyword xsMacro IS_NUMBER_IN_UV IS_NUMBER_NAN IS_NUMBER_NEG
syn keyword xsMacro IS_NUMBER_NOT_INT IS_NUMBER_TRAILING IS_NUMERIC_RADIX
syn keyword xsMacro IS_PADCONST IS_PADGV IS_SAFE_PATHNAME IS_SAFE_SYSCALL
syn keyword xsMacro IS_TRIE_AC IS_UTF8_CHAR IS_UTF8_CHAR_FAST IVSIZE IVTYPE
syn keyword xsMacro IV_DIG IV_MAX IV_MAX_P1 IV_MIN I_32 I_ARPA_INET I_ASSERT
syn keyword xsMacro I_BFD I_CRYPT I_DBM I_DIRENT I_DLFCN I_EXECINFO I_FENV
syn keyword xsMacro I_FLOAT I_GDBM I_GDBMNDBM I_GRP I_INTTYPES I_LANGINFO
syn keyword xsMacro I_LIMITS I_LOCALE I_MATH I_MNTENT I_NETDB I_NETINET_IN
syn keyword xsMacro I_NETINET_TCP I_POLL I_PTHREAD I_PWD I_QUADMATH I_SHADOW
syn keyword xsMacro I_STDARG I_STDBOOL I_STDDEF I_STDINT I_STDLIB I_STRING
syn keyword xsMacro I_SYSLOG I_SYSUIO I_SYSUTSNAME I_SYS_DIR I_SYS_FILE
syn keyword xsMacro I_SYS_IOCTL I_SYS_MOUNT I_SYS_PARAM I_SYS_POLL
syn keyword xsMacro I_SYS_RESOURCE I_SYS_SELECT I_SYS_STAT I_SYS_STATFS
syn keyword xsMacro I_SYS_STATVFS I_SYS_TIME I_SYS_TIMES I_SYS_TYPES I_SYS_UN
syn keyword xsMacro I_SYS_VFS I_SYS_WAIT I_TERMIOS I_TIME I_UNISTD I_USTAT
syn keyword xsMacro I_UTIME I_V I_VALUES IoANY IoBOTTOM_GV IoBOTTOM_NAME
syn keyword xsMacro IoDIRP IoFLAGS IoFMT_GV IoFMT_NAME IoIFP IoLINES
syn keyword xsMacro IoLINES_LEFT IoOFP IoPAGE IoPAGE_LEN IoTOP_GV IoTOP_NAME
syn keyword xsMacro IoTYPE IoTYPE_APPEND IoTYPE_CLOSED IoTYPE_IMPLICIT
syn keyword xsMacro IoTYPE_NUMERIC IoTYPE_PIPE IoTYPE_RDONLY IoTYPE_RDWR
syn keyword xsMacro IoTYPE_SOCKET IoTYPE_STD IoTYPE_WRONLY IsSet
syn keyword xsMacro JMPENV_BOOTSTRAP JMPENV_JUMP JMPENV_POP JMPENV_PUSH JOIN
syn keyword xsMacro KEEPCOPY_PAT_MOD KEEPCOPY_PAT_MODS KEEPS KEEPS_next
syn keyword xsMacro KEEPS_next_fail KELVIN_SIGN KEYWORD_PLUGIN_DECLINE
syn keyword xsMacro KEYWORD_PLUGIN_EXPR KEYWORD_PLUGIN_STMT KEY_AUTOLOAD
syn keyword xsMacro KEY_BEGIN KEY_CHECK KEY_DESTROY KEY_END KEY_INIT KEY_NULL
syn keyword xsMacro KEY_UNITCHECK KEY___DATA__ KEY___END__ KEY___FILE__
syn keyword xsMacro KEY___LINE__ KEY___PACKAGE__ KEY___SUB__ KEY_abs
syn keyword xsMacro KEY_accept KEY_alarm KEY_and KEY_atan2 KEY_bind
syn keyword xsMacro KEY_binmode KEY_bless KEY_break KEY_caller KEY_chdir
syn keyword xsMacro KEY_chmod KEY_chomp KEY_chop KEY_chown KEY_chr KEY_chroot
syn keyword xsMacro KEY_close KEY_closedir KEY_cmp KEY_connect KEY_continue
syn keyword xsMacro KEY_cos KEY_crypt KEY_dbmclose KEY_dbmopen KEY_default
syn keyword xsMacro KEY_defined KEY_delete KEY_die KEY_do KEY_dump KEY_each
syn keyword xsMacro KEY_else KEY_elsif KEY_endgrent KEY_endhostent
syn keyword xsMacro KEY_endnetent KEY_endprotoent KEY_endpwent KEY_endservent
syn keyword xsMacro KEY_eof KEY_eq KEY_eval KEY_evalbytes KEY_exec KEY_exists
syn keyword xsMacro KEY_exit KEY_exp KEY_fc KEY_fcntl KEY_fileno KEY_flock
syn keyword xsMacro KEY_for KEY_foreach KEY_fork KEY_format KEY_formline
syn keyword xsMacro KEY_ge KEY_getc KEY_getgrent KEY_getgrgid KEY_getgrnam
syn keyword xsMacro KEY_gethostbyaddr KEY_gethostbyname KEY_gethostent
syn keyword xsMacro KEY_getlogin KEY_getnetbyaddr KEY_getnetbyname
syn keyword xsMacro KEY_getnetent KEY_getpeername KEY_getpgrp KEY_getppid
syn keyword xsMacro KEY_getpriority KEY_getprotobyname KEY_getprotobynumber
syn keyword xsMacro KEY_getprotoent KEY_getpwent KEY_getpwnam KEY_getpwuid
syn keyword xsMacro KEY_getservbyname KEY_getservbyport KEY_getservent
syn keyword xsMacro KEY_getsockname KEY_getsockopt KEY_given KEY_glob
syn keyword xsMacro KEY_gmtime KEY_goto KEY_grep KEY_gt KEY_hex KEY_if
syn keyword xsMacro KEY_index KEY_int KEY_ioctl KEY_join KEY_keys KEY_kill
syn keyword xsMacro KEY_last KEY_lc KEY_lcfirst KEY_le KEY_length KEY_link
syn keyword xsMacro KEY_listen KEY_local KEY_localtime KEY_lock KEY_log
syn keyword xsMacro KEY_lstat KEY_lt KEY_m KEY_map KEY_mkdir KEY_msgctl
syn keyword xsMacro KEY_msgget KEY_msgrcv KEY_msgsnd KEY_my KEY_ne KEY_next
syn keyword xsMacro KEY_no KEY_not KEY_oct KEY_open KEY_opendir KEY_or
syn keyword xsMacro KEY_ord KEY_our KEY_pack KEY_package KEY_pipe KEY_pop
syn keyword xsMacro KEY_pos KEY_print KEY_printf KEY_prototype KEY_push KEY_q
syn keyword xsMacro KEY_qq KEY_qr KEY_quotemeta KEY_qw KEY_qx KEY_rand
syn keyword xsMacro KEY_read KEY_readdir KEY_readline KEY_readlink
syn keyword xsMacro KEY_readpipe KEY_recv KEY_redo KEY_ref KEY_rename
syn keyword xsMacro KEY_require KEY_reset KEY_return KEY_reverse
syn keyword xsMacro KEY_rewinddir KEY_rindex KEY_rmdir KEY_s KEY_say
syn keyword xsMacro KEY_scalar KEY_seek KEY_seekdir KEY_select KEY_semctl
syn keyword xsMacro KEY_semget KEY_semop KEY_send KEY_setgrent KEY_sethostent
syn keyword xsMacro KEY_setnetent KEY_setpgrp KEY_setpriority KEY_setprotoent
syn keyword xsMacro KEY_setpwent KEY_setservent KEY_setsockopt KEY_shift
syn keyword xsMacro KEY_shmctl KEY_shmget KEY_shmread KEY_shmwrite
syn keyword xsMacro KEY_shutdown KEY_sin KEY_sleep KEY_socket KEY_socketpair
syn keyword xsMacro KEY_sort KEY_splice KEY_split KEY_sprintf KEY_sqrt
syn keyword xsMacro KEY_srand KEY_stat KEY_state KEY_study KEY_sub KEY_substr
syn keyword xsMacro KEY_symlink KEY_syscall KEY_sysopen KEY_sysread
syn keyword xsMacro KEY_sysseek KEY_system KEY_syswrite KEY_tell KEY_telldir
syn keyword xsMacro KEY_tie KEY_tied KEY_time KEY_times KEY_tr KEY_truncate
syn keyword xsMacro KEY_uc KEY_ucfirst KEY_umask KEY_undef KEY_unless
syn keyword xsMacro KEY_unlink KEY_unpack KEY_unshift KEY_untie KEY_until
syn keyword xsMacro KEY_use KEY_utime KEY_values KEY_vec KEY_wait KEY_waitpid
syn keyword xsMacro KEY_wantarray KEY_warn KEY_when KEY_while KEY_write KEY_x
syn keyword xsMacro KEY_xor KEY_y LABEL LATIN1_TO_NATIVE
syn keyword xsMacro LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE
syn keyword xsMacro LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE
syn keyword xsMacro LATIN_CAPITAL_LETTER_SHARP_S
syn keyword xsMacro LATIN_CAPITAL_LETTER_SHARP_S_UTF8
syn keyword xsMacro LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS
syn keyword xsMacro LATIN_SMALL_LETTER_A_WITH_RING_ABOVE
syn keyword xsMacro LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE
syn keyword xsMacro LATIN_SMALL_LETTER_LONG_S LATIN_SMALL_LETTER_LONG_S_UTF8
syn keyword xsMacro LATIN_SMALL_LETTER_SHARP_S
syn keyword xsMacro LATIN_SMALL_LETTER_SHARP_S_NATIVE
syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS
syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE
syn keyword xsMacro LATIN_SMALL_LIGATURE_LONG_S_T
syn keyword xsMacro LATIN_SMALL_LIGATURE_LONG_S_T_UTF8
syn keyword xsMacro LATIN_SMALL_LIGATURE_ST LATIN_SMALL_LIGATURE_ST_UTF8
syn keyword xsMacro LDBL_DIG LEAVE LEAVESUB LEAVE_SCOPE LEAVE_with_name
syn keyword xsMacro LEX_DONT_CLOSE_RSFP LEX_EVALBYTES LEX_IGNORE_UTF8_HINTS
syn keyword xsMacro LEX_KEEP_PREVIOUS LEX_NOTPARSING LEX_START_COPIED
syn keyword xsMacro LEX_START_FLAGS LEX_START_SAME_FILTER LEX_STUFF_UTF8
syn keyword xsMacro LF_NATIVE LIBERAL LIBM_LIB_VERSION LIB_INVARG LIKELY
syn keyword xsMacro LINKLIST LNBREAK LOADED_FILE_PROBE LOADING_FILE_PROBE
syn keyword xsMacro LOCAL LOCALE_PAT_MOD LOCALE_PAT_MODS LOCALTIME_MAX
syn keyword xsMacro LOCALTIME_MIN LOCALTIME_R LOCALTIME_R_PROTO
syn keyword xsMacro LOCAL_PATCH_COUNT LOCK_DOLLARZERO_MUTEX
syn keyword xsMacro LOCK_LC_NUMERIC_STANDARD LOCK_NUMERIC_STANDARD LOC_SED
syn keyword xsMacro LOGICAL LONGDOUBLE_BIG_ENDIAN LONGDOUBLE_DOUBLEDOUBLE
syn keyword xsMacro LONGDOUBLE_LITTLE_ENDIAN LONGDOUBLE_X86_80_BIT LONGJMP
syn keyword xsMacro LONGLONGSIZE LONGSIZE LONG_DOUBLEKIND LONG_DOUBLESIZE
syn keyword xsMacro LONG_DOUBLE_EQUALS_DOUBLE LONG_DOUBLE_IS_DOUBLE
syn keyword xsMacro LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
syn keyword xsMacro LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
syn keyword xsMacro LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
syn keyword xsMacro LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
syn keyword xsMacro LONG_DOUBLE_IS_UNKNOWN_FORMAT
syn keyword xsMacro LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
syn keyword xsMacro LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN LOOPEX
syn keyword xsMacro LOOP_PAT_MODS LSEEKSIZE LSTOP LSTOPSUB LVRET L_R_TZSET
syn keyword xsMacro LvFLAGS LvSTARGOFF LvTARG LvTARGLEN LvTARGOFF LvTYPE
syn keyword xsMacro MALLOC_CHECK_TAINT MALLOC_CHECK_TAINT2 MALLOC_CTL_H
syn keyword xsMacro MALLOC_INIT MALLOC_OVERHEAD MALLOC_TERM
syn keyword xsMacro MALLOC_TOO_LATE_FOR MARKPOINT MARKPOINT_next
syn keyword xsMacro MARKPOINT_next_fail MASK MATCHOP MAXARG MAXO MAXPATHLEN
syn keyword xsMacro MAXSYSFD MAX_CHARSET_NAME_LENGTH MAX_FEATURE_LEN
syn keyword xsMacro MAX_PORTABLE_UTF8_TWO_BYTE
syn keyword xsMacro MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C
syn keyword xsMacro MAX_RECURSE_EVAL_NOCHANGE_DEPTH MAX_UTF8_TWO_BYTE
syn keyword xsMacro MAYBE_DEREF_GV MAYBE_DEREF_GV_flags MAYBE_DEREF_GV_nomg
syn keyword xsMacro MBOL MB_CUR_MAX MDEREF_ACTION_MASK MDEREF_AV_gvav_aelem
syn keyword xsMacro MDEREF_AV_gvsv_vivify_rv2av_aelem MDEREF_AV_padav_aelem
syn keyword xsMacro MDEREF_AV_padsv_vivify_rv2av_aelem
syn keyword xsMacro MDEREF_AV_pop_rv2av_aelem MDEREF_AV_vivify_rv2av_aelem
syn keyword xsMacro MDEREF_FLAG_last MDEREF_HV_gvhv_helem
syn keyword xsMacro MDEREF_HV_gvsv_vivify_rv2hv_helem MDEREF_HV_padhv_helem
syn keyword xsMacro MDEREF_HV_padsv_vivify_rv2hv_helem
syn keyword xsMacro MDEREF_HV_pop_rv2hv_helem MDEREF_HV_vivify_rv2hv_helem
syn keyword xsMacro MDEREF_INDEX_MASK MDEREF_INDEX_const MDEREF_INDEX_gvsv
syn keyword xsMacro MDEREF_INDEX_none MDEREF_INDEX_padsv MDEREF_MASK
syn keyword xsMacro MDEREF_SHIFT MDEREF_reload MEMBER_TO_FPTR MEM_ALIGNBYTES
syn keyword xsMacro MEM_LOG_ALLOC MEM_LOG_FREE MEM_LOG_REALLOC MEM_SIZE
syn keyword xsMacro MEM_SIZE_MAX MEM_WRAP_CHECK MEM_WRAP_CHECK_
syn keyword xsMacro MEM_WRAP_CHECK_1 MEM_WRAP_CHECK_2 MEOL METHOD MEXTEND
syn keyword xsMacro MGf_BYTES MGf_COPY MGf_DUP MGf_GSKIP MGf_LOCAL
syn keyword xsMacro MGf_MINMATCH MGf_PERSIST MGf_REFCOUNTED MGf_REQUIRE_GV
syn keyword xsMacro MGf_TAINTEDDIR MICRO_SIGN MICRO_SIGN_NATIVE MINMOD
syn keyword xsMacro MJD_OFFSET_DEBUG MRO_GET_PRIVATE_DATA MSPAGAIN MULOP
syn keyword xsMacro MULTICALL MULTILINE_PAT_MOD MULTIPLICITY MURMUR_C1
syn keyword xsMacro MURMUR_C2 MURMUR_C3 MURMUR_C4 MURMUR_C5 MURMUR_DOBLOCK
syn keyword xsMacro MURMUR_DOBYTES MUTABLE_AV MUTABLE_CV MUTABLE_GV
syn keyword xsMacro MUTABLE_HV MUTABLE_IO MUTABLE_PTR MUTABLE_SV
syn keyword xsMacro MUTEX_DESTROY MUTEX_INIT MUTEX_INIT_NEEDS_MUTEX_ZEROED
syn keyword xsMacro MUTEX_LOCK MUTEX_UNLOCK MY MY_CXT_CLONE MY_CXT_INDEX
syn keyword xsMacro MY_CXT_INIT MY_CXT_INIT_ARG MY_CXT_INIT_INTERP M_PAT_MODS
syn keyword xsMacro MgBYTEPOS MgBYTEPOS_set MgPV MgPV_const MgPV_nolen_const
syn keyword xsMacro MgTAINTEDDIR MgTAINTEDDIR_off MgTAINTEDDIR_on Mkdir Move
syn keyword xsMacro MoveD NAN_COMPARE_BROKEN NATIVE8_TO_UNI
syn keyword xsMacro NATIVE_BYTE_IS_INVARIANT NATIVE_SKIP NATIVE_TO_ASCII
syn keyword xsMacro NATIVE_TO_I8 NATIVE_TO_LATIN1 NATIVE_TO_UNI NATIVE_TO_UTF
syn keyword xsMacro NATIVE_UTF8_TO_I8 NBOUND NBOUNDA NBOUNDL NBOUNDU
syn keyword xsMacro NBSP_NATIVE NBSP_UTF8 NDBM_H_USES_PROTOTYPES NDEBUG
syn keyword xsMacro NEED_PTHREAD_INIT NEED_VA_COPY NEGATIVE_INDICES_VAR
syn keyword xsMacro NETDB_R_OBSOLETE NEWSV NEW_VERSION NEXTOPER
syn keyword xsMacro NEXT_LINE_CHAR NEXT_OFF NGROUPP NOAMP NOCAPTURE_PAT_MOD
syn keyword xsMacro NOCAPTURE_PAT_MODS NODE_ALIGN NODE_ALIGN_FILL NODE_STEP_B
syn keyword xsMacro NODE_STEP_REGNODE NODE_SZ_STR NOLINE NONDESTRUCT_PAT_MOD
syn keyword xsMacro NONDESTRUCT_PAT_MODS
syn keyword xsMacro NON_OTHER_COUNT_FOR_USE_ONLY_BY_REGCOMP_DOT_C NOOP
syn keyword xsMacro NORETURN_FUNCTION_END NORMAL NOTHING NOTOP NOT_IN_PAD
syn keyword xsMacro NOT_REACHED NO_ENV_ARRAY_IN_MAIN NO_LOCALE
syn keyword xsMacro NO_LOCALECONV_MON_THOUSANDS_SEP NO_TAINT_SUPPORT NPOSIXA
syn keyword xsMacro NPOSIXD NPOSIXL NPOSIXU NREF NREFF NREFFA NREFFL NREFFU
syn keyword xsMacro NSIG NUM2PTR NUM_ANYOF_CODE_POINTS NVSIZE NVTYPE
syn keyword xsMacro NV_BIG_ENDIAN NV_DIG NV_EPSILON NV_INF NV_LITTLE_ENDIAN
syn keyword xsMacro NV_MANT_DIG NV_MAX NV_MAX_10_EXP NV_MAX_EXP NV_MIN
syn keyword xsMacro NV_MIN_10_EXP NV_MIN_EXP NV_MIX_ENDIAN NV_NAN
syn keyword xsMacro NV_OVERFLOWS_INTEGERS_AT NV_PRESERVES_UV_BITS
syn keyword xsMacro NV_WITHIN_IV NV_WITHIN_UV New NewOp NewOpSz Newc Newx
syn keyword xsMacro Newxc Newxz Newz NofAMmeth Null Nullav Nullch Nullcv
syn keyword xsMacro Nullfp Nullgv Nullhe Nullhek Nullhv Nullop Nullsv OASHIFT
syn keyword xsMacro OCSHIFT OCTAL_VALUE OFFUNISKIP ONCE_PAT_MOD ONCE_PAT_MODS
syn keyword xsMacro OPEN OPERAND OPFAIL OPSLOT_HEADER OPSLOT_HEADER_P
syn keyword xsMacro OPTIMIZED OP_BINARY OP_CHECK_MUTEX_INIT
syn keyword xsMacro OP_CHECK_MUTEX_LOCK OP_CHECK_MUTEX_TERM
syn keyword xsMacro OP_CHECK_MUTEX_UNLOCK OP_CLASS OP_DESC OP_ENTRY_PROBE
syn keyword xsMacro OP_FREED OP_GIMME OP_GIMME_REVERSE OP_IS_DIRHOP
syn keyword xsMacro OP_IS_FILETEST OP_IS_FILETEST_ACCESS OP_IS_INFIX_BIT
syn keyword xsMacro OP_IS_NUMCOMPARE OP_IS_SOCKET OP_LVALUE_NO_CROAK OP_NAME
syn keyword xsMacro OP_REFCNT_INIT OP_REFCNT_LOCK OP_REFCNT_TERM
syn keyword xsMacro OP_REFCNT_UNLOCK OP_SIBLING OP_TYPE_IS OP_TYPE_ISNT
syn keyword xsMacro OP_TYPE_ISNT_AND_WASNT OP_TYPE_ISNT_AND_WASNT_NN
syn keyword xsMacro OP_TYPE_ISNT_NN OP_TYPE_IS_NN OP_TYPE_IS_OR_WAS
syn keyword xsMacro OP_TYPE_IS_OR_WAS_NN OROP OROR OSNAME OSVERS O_CREAT
syn keyword xsMacro O_RDONLY O_RDWR O_TEXT O_WRONLY Off Off_t_size
syn keyword xsMacro OpHAS_SIBLING OpLASTSIB_set OpMAYBESIB_set OpMORESIB_set
syn keyword xsMacro OpREFCNT_dec OpREFCNT_inc OpREFCNT_set OpSIBLING OpSLAB
syn keyword xsMacro OpSLOT OpslabREFCNT_dec OpslabREFCNT_dec_padok OutCopFILE
syn keyword xsMacro PADNAME_FROM_PV PADNAMEt_LVALUE PADNAMEt_OUR
syn keyword xsMacro PADNAMEt_OUTER PADNAMEt_STATE PADNAMEt_TYPED PAD_BASE_SV
syn keyword xsMacro PAD_CLONE_VARS PAD_COMPNAME PAD_COMPNAME_FLAGS
syn keyword xsMacro PAD_COMPNAME_FLAGS_isOUR PAD_COMPNAME_GEN
syn keyword xsMacro PAD_COMPNAME_GEN_set PAD_COMPNAME_OURSTASH
syn keyword xsMacro PAD_COMPNAME_PV PAD_COMPNAME_SV PAD_COMPNAME_TYPE
syn keyword xsMacro PAD_FAKELEX_ANON PAD_FAKELEX_MULTI PAD_RESTORE_LOCAL
syn keyword xsMacro PAD_SAVE_LOCAL PAD_SAVE_SETNULLPAD PAD_SETSV PAD_SET_CUR
syn keyword xsMacro PAD_SET_CUR_NOSAVE PAD_SV PAD_SVl PARENT_FAKELEX_FLAGS
syn keyword xsMacro PARENT_PAD_INDEX PARSE_OPTIONAL PASS1 PASS2 PATCHLEVEL
syn keyword xsMacro PERLDB_ALL PERLDB_GOTO PERLDB_INTER PERLDB_LINE
syn keyword xsMacro PERLDB_NAMEANON PERLDB_NAMEEVAL PERLDB_NOOPT
syn keyword xsMacro PERLDB_SAVESRC PERLDB_SAVESRC_INVALID
syn keyword xsMacro PERLDB_SAVESRC_NOSUBS PERLDB_SINGLE PERLDB_SUB
syn keyword xsMacro PERLDB_SUBLINE PERLDB_SUB_NN PERLDBf_GOTO PERLDBf_INTER
syn keyword xsMacro PERLDBf_LINE PERLDBf_NAMEANON PERLDBf_NAMEEVAL
syn keyword xsMacro PERLDBf_NONAME PERLDBf_NOOPT PERLDBf_SAVESRC
syn keyword xsMacro PERLDBf_SAVESRC_INVALID PERLDBf_SAVESRC_NOSUBS
syn keyword xsMacro PERLDBf_SINGLE PERLDBf_SUB PERLDBf_SUBLINE
syn keyword xsMacro PERLIOBUF_DEFAULT_BUFSIZ PERLIO_DUP_CLONE PERLIO_DUP_FD
syn keyword xsMacro PERLIO_FUNCS_CAST PERLIO_FUNCS_CONST PERLIO_FUNCS_DECL
syn keyword xsMacro PERLIO_F_APPEND PERLIO_F_CANREAD PERLIO_F_CANWRITE
syn keyword xsMacro PERLIO_F_CLEARED PERLIO_F_CRLF PERLIO_F_EOF
syn keyword xsMacro PERLIO_F_ERROR PERLIO_F_FASTGETS PERLIO_F_LINEBUF
syn keyword xsMacro PERLIO_F_NOTREG PERLIO_F_OPEN PERLIO_F_RDBUF
syn keyword xsMacro PERLIO_F_TEMP PERLIO_F_TRUNCATE PERLIO_F_TTY
syn keyword xsMacro PERLIO_F_UNBUF PERLIO_F_UTF8 PERLIO_F_WRBUF PERLIO_INIT
syn keyword xsMacro PERLIO_IS_STDIO PERLIO_K_BUFFERED PERLIO_K_CANCRLF
syn keyword xsMacro PERLIO_K_DESTRUCT PERLIO_K_DUMMY PERLIO_K_FASTGETS
syn keyword xsMacro PERLIO_K_MULTIARG PERLIO_K_RAW PERLIO_K_UTF8
syn keyword xsMacro PERLIO_LAYERS PERLIO_NOT_STDIO PERLIO_STDTEXT PERLIO_TERM
syn keyword xsMacro PERLIO_USING_CRLF PERLSI_DESTROY PERLSI_DIEHOOK
syn keyword xsMacro PERLSI_MAGIC PERLSI_MAIN PERLSI_OVERLOAD PERLSI_REQUIRE
syn keyword xsMacro PERLSI_SIGNAL PERLSI_SORT PERLSI_UNDEF PERLSI_UNKNOWN
syn keyword xsMacro PERLSI_WARNHOOK PERL_ABS PERL_ALLOC_CHECK PERL_ANY_COW
syn keyword xsMacro PERL_API_REVISION PERL_API_SUBVERSION PERL_API_VERSION
syn keyword xsMacro PERL_API_VERSION_STRING PERL_ARENA_ROOTS_SIZE
syn keyword xsMacro PERL_ARENA_SIZE PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS
syn keyword xsMacro PERL_ARGS_ASSERT_ADD_DATA
syn keyword xsMacro PERL_ARGS_ASSERT_ADD_MULTI_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER
syn keyword xsMacro PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET
syn keyword xsMacro PERL_ARGS_ASSERT_ADVANCE_ONE_SB
syn keyword xsMacro PERL_ARGS_ASSERT_ADVANCE_ONE_WB
syn keyword xsMacro PERL_ARGS_ASSERT_ALLOCCOPSTASH PERL_ARGS_ASSERT_ALLOCMY
syn keyword xsMacro PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CALL PERL_ARGS_ASSERT_AMAGIC_CMP
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_I_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE
syn keyword xsMacro PERL_ARGS_ASSERT_ANY_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE
syn keyword xsMacro PERL_ARGS_ASSERT_APPLY PERL_ARGS_ASSERT_APPLY_ATTRS
syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS_MY
syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS_STRING
syn keyword xsMacro PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT
syn keyword xsMacro PERL_ARGS_ASSERT_AV_ARYLEN_P PERL_ARGS_ASSERT_AV_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE
syn keyword xsMacro PERL_ARGS_ASSERT_AV_DELETE PERL_ARGS_ASSERT_AV_EXISTS
syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND
syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND_GUTS PERL_ARGS_ASSERT_AV_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_FILL PERL_ARGS_ASSERT_AV_ITER_P
syn keyword xsMacro PERL_ARGS_ASSERT_AV_LEN PERL_ARGS_ASSERT_AV_MAKE
syn keyword xsMacro PERL_ARGS_ASSERT_AV_POP PERL_ARGS_ASSERT_AV_PUSH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_REIFY PERL_ARGS_ASSERT_AV_SHIFT
syn keyword xsMacro PERL_ARGS_ASSERT_AV_STORE PERL_ARGS_ASSERT_AV_TOP_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_AV_UNDEF PERL_ARGS_ASSERT_AV_UNSHIFT
syn keyword xsMacro PERL_ARGS_ASSERT_BACKUP_ONE_SB
syn keyword xsMacro PERL_ARGS_ASSERT_BACKUP_ONE_WB
syn keyword xsMacro PERL_ARGS_ASSERT_BAD_TYPE_GV PERL_ARGS_ASSERT_BAD_TYPE_PV
syn keyword xsMacro PERL_ARGS_ASSERT_BIND_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_CMP_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_FROM_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_TO_UTF8 PERL_ARGS_ASSERT_CALL_ARGV
syn keyword xsMacro PERL_ARGS_ASSERT_CALL_LIST PERL_ARGS_ASSERT_CALL_METHOD
syn keyword xsMacro PERL_ARGS_ASSERT_CALL_PV PERL_ARGS_ASSERT_CALL_SV
syn keyword xsMacro PERL_ARGS_ASSERT_CANDO PERL_ARGS_ASSERT_CHECKCOMMA
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_UTF8_PRINT
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ANONCODE PERL_ARGS_ASSERT_CK_BACKTICK
syn keyword xsMacro PERL_ARGS_ASSERT_CK_BITOP PERL_ARGS_ASSERT_CK_CMP
syn keyword xsMacro PERL_ARGS_ASSERT_CK_CONCAT PERL_ARGS_ASSERT_CK_DEFINED
syn keyword xsMacro PERL_ARGS_ASSERT_CK_DELETE PERL_ARGS_ASSERT_CK_EACH
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_EOF PERL_ARGS_ASSERT_CK_EVAL
syn keyword xsMacro PERL_ARGS_ASSERT_CK_EXEC PERL_ARGS_ASSERT_CK_EXISTS
syn keyword xsMacro PERL_ARGS_ASSERT_CK_FTST PERL_ARGS_ASSERT_CK_FUN
syn keyword xsMacro PERL_ARGS_ASSERT_CK_GLOB PERL_ARGS_ASSERT_CK_GREP
syn keyword xsMacro PERL_ARGS_ASSERT_CK_INDEX PERL_ARGS_ASSERT_CK_JOIN
syn keyword xsMacro PERL_ARGS_ASSERT_CK_LENGTH PERL_ARGS_ASSERT_CK_LFUN
syn keyword xsMacro PERL_ARGS_ASSERT_CK_LISTIOB PERL_ARGS_ASSERT_CK_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_CK_METHOD PERL_ARGS_ASSERT_CK_NULL
syn keyword xsMacro PERL_ARGS_ASSERT_CK_OPEN PERL_ARGS_ASSERT_CK_PROTOTYPE
syn keyword xsMacro PERL_ARGS_ASSERT_CK_READLINE
syn keyword xsMacro PERL_ARGS_ASSERT_CK_REFASSIGN PERL_ARGS_ASSERT_CK_REPEAT
syn keyword xsMacro PERL_ARGS_ASSERT_CK_REQUIRE PERL_ARGS_ASSERT_CK_RETURN
syn keyword xsMacro PERL_ARGS_ASSERT_CK_RFUN PERL_ARGS_ASSERT_CK_RVCONST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SASSIGN PERL_ARGS_ASSERT_CK_SELECT
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SHIFT PERL_ARGS_ASSERT_CK_SMARTMATCH
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SORT PERL_ARGS_ASSERT_CK_SPAIR
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SPLIT PERL_ARGS_ASSERT_CK_STRINGIFY
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SUBR PERL_ARGS_ASSERT_CK_SUBSTR
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SVCONST PERL_ARGS_ASSERT_CK_TELL
syn keyword xsMacro PERL_ARGS_ASSERT_CK_TRUNC PERL_ARGS_ASSERT_CK_WARNER
syn keyword xsMacro PERL_ARGS_ASSERT_CK_WARNER_D
syn keyword xsMacro PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS
syn keyword xsMacro PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS
syn keyword xsMacro PERL_ARGS_ASSERT_CLONE_PARAMS_DEL
syn keyword xsMacro PERL_ARGS_ASSERT_CLONE_PARAMS_NEW
syn keyword xsMacro PERL_ARGS_ASSERT_CLOSEST_COP
syn keyword xsMacro PERL_ARGS_ASSERT_COMPUTE_EXACTISH
syn keyword xsMacro PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE
syn keyword xsMacro PERL_ARGS_ASSERT_COP_FETCH_LABEL
syn keyword xsMacro PERL_ARGS_ASSERT_COP_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_COP_STORE_LABEL
syn keyword xsMacro PERL_ARGS_ASSERT_CORESUB_OP
syn keyword xsMacro PERL_ARGS_ASSERT_CORE_PROTOTYPE
syn keyword xsMacro PERL_ARGS_ASSERT_COULD_IT_BE_A_POSIX_CLASS
syn keyword xsMacro PERL_ARGS_ASSERT_CROAK_SV PERL_ARGS_ASSERT_CROAK_XS_USAGE
syn keyword xsMacro PERL_ARGS_ASSERT_CURSE PERL_ARGS_ASSERT_CUSTOM_OP_DESC
syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD
syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER
syn keyword xsMacro PERL_ARGS_ASSERT_CVGV_FROM_HEK PERL_ARGS_ASSERT_CVGV_SET
syn keyword xsMacro PERL_ARGS_ASSERT_CVSTASH_SET
syn keyword xsMacro PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_CV_CLONE PERL_ARGS_ASSERT_CV_CLONE_INTO
syn keyword xsMacro PERL_ARGS_ASSERT_CV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_CV_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_CV_UNDEF PERL_ARGS_ASSERT_CV_UNDEF_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_CX_DUMP PERL_ARGS_ASSERT_CX_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_DEB PERL_ARGS_ASSERT_DEBOP
syn keyword xsMacro PERL_ARGS_ASSERT_DEBPROF
syn keyword xsMacro PERL_ARGS_ASSERT_DEBUG_START_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_DEB_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_DEB_STACK_N
syn keyword xsMacro PERL_ARGS_ASSERT_DEFELEM_TARGET PERL_ARGS_ASSERT_DELIMCPY
syn keyword xsMacro PERL_ARGS_ASSERT_DEL_SV PERL_ARGS_ASSERT_DESTROY_MATCHER
syn keyword xsMacro PERL_ARGS_ASSERT_DIE_SV PERL_ARGS_ASSERT_DIE_UNWIND
syn keyword xsMacro PERL_ARGS_ASSERT_DIRP_DUP PERL_ARGS_ASSERT_DIV128
syn keyword xsMacro PERL_ARGS_ASSERT_DOFILE PERL_ARGS_ASSERT_DOFINDLABEL
syn keyword xsMacro PERL_ARGS_ASSERT_DOFORM PERL_ARGS_ASSERT_DOONELINER
syn keyword xsMacro PERL_ARGS_ASSERT_DOOPEN_PM PERL_ARGS_ASSERT_DOPARSEFORM
syn keyword xsMacro PERL_ARGS_ASSERT_DOPOPTOLABEL
syn keyword xsMacro PERL_ARGS_ASSERT_DOPOPTOSUB_AT PERL_ARGS_ASSERT_DOREF
syn keyword xsMacro PERL_ARGS_ASSERT_DO_AEXEC PERL_ARGS_ASSERT_DO_AEXEC5
syn keyword xsMacro PERL_ARGS_ASSERT_DO_ASPAWN PERL_ARGS_ASSERT_DO_BINMODE
syn keyword xsMacro PERL_ARGS_ASSERT_DO_CHOMP PERL_ARGS_ASSERT_DO_DUMP_PAD
syn keyword xsMacro PERL_ARGS_ASSERT_DO_EOF PERL_ARGS_ASSERT_DO_EXEC
syn keyword xsMacro PERL_ARGS_ASSERT_DO_EXEC3 PERL_ARGS_ASSERT_DO_GVGV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_GV_DUMP PERL_ARGS_ASSERT_DO_HV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_IPCCTL PERL_ARGS_ASSERT_DO_IPCGET
syn keyword xsMacro PERL_ARGS_ASSERT_DO_JOIN PERL_ARGS_ASSERT_DO_MAGIC_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_MSGRCV PERL_ARGS_ASSERT_DO_MSGSND
syn keyword xsMacro PERL_ARGS_ASSERT_DO_NCMP PERL_ARGS_ASSERT_DO_ODDBALL
syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN PERL_ARGS_ASSERT_DO_OPEN6
syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN9 PERL_ARGS_ASSERT_DO_OPENN
syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN_RAW PERL_ARGS_ASSERT_DO_OP_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_PMOP_DUMP PERL_ARGS_ASSERT_DO_PRINT
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SEMOP PERL_ARGS_ASSERT_DO_SHMIO
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPAWN
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPRINTF PERL_ARGS_ASSERT_DO_SV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SYSSEEK PERL_ARGS_ASSERT_DO_TELL
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_COMPLEX
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_COMPLEX_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_COUNT
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_COUNT_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_SIMPLE
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_SIMPLE_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_DO_VECGET PERL_ARGS_ASSERT_DO_VECSET
syn keyword xsMacro PERL_ARGS_ASSERT_DO_VOP PERL_ARGS_ASSERT_DRAND48_INIT_R
syn keyword xsMacro PERL_ARGS_ASSERT_DRAND48_R PERL_ARGS_ASSERT_DUMPUNTIL
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_C_BACKTRACE
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_EXEC_POS PERL_ARGS_ASSERT_DUMP_FORM
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_INDENT PERL_ARGS_ASSERT_DUMP_MSTATS
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_PACKSUBS
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_SUB PERL_ARGS_ASSERT_DUMP_SUB_PERL
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_SV_CHILD PERL_ARGS_ASSERT_DUMP_TRIE
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_VINDENT
syn keyword xsMacro PERL_ARGS_ASSERT_DUP_ATTRLIST
syn keyword xsMacro PERL_ARGS_ASSERT_EMULATE_COP_IO PERL_ARGS_ASSERT_EVAL_PV
syn keyword xsMacro PERL_ARGS_ASSERT_EVAL_SV PERL_ARGS_ASSERT_EXEC_FAILED
syn keyword xsMacro PERL_ARGS_ASSERT_EXPECT_NUMBER PERL_ARGS_ASSERT_F0CONVERT
syn keyword xsMacro PERL_ARGS_ASSERT_FBM_COMPILE PERL_ARGS_ASSERT_FBM_INSTR
syn keyword xsMacro PERL_ARGS_ASSERT_FEATURE_IS_ENABLED
syn keyword xsMacro PERL_ARGS_ASSERT_FILTER_DEL PERL_ARGS_ASSERT_FILTER_GETS
syn keyword xsMacro PERL_ARGS_ASSERT_FILTER_READ PERL_ARGS_ASSERT_FINALIZE_OP
syn keyword xsMacro PERL_ARGS_ASSERT_FINALIZE_OPTREE
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_BEGINNING
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_BYCLASS
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_DEFAULT_STASH
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_IN_MY_STASH
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_RUNDEFSV2
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_SCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_UNINIT_VAR
syn keyword xsMacro PERL_ARGS_ASSERT_FIRST_SYMBOL
syn keyword xsMacro PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING
syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ PERL_ARGS_ASSERT_FOLDEQ_LATIN1
syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_FOLD_CONSTANTS
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_IDENT
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_STRICT_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_WORD PERL_ARGS_ASSERT_FORGET_PMOP
syn keyword xsMacro PERL_ARGS_ASSERT_FORM PERL_ARGS_ASSERT_FORM_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING
syn keyword xsMacro PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_FP_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_FREE_GLOBAL_STRUCT
syn keyword xsMacro PERL_ARGS_ASSERT_GETCWD_SV PERL_ARGS_ASSERT_GETENV_LEN
syn keyword xsMacro PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC
syn keyword xsMacro PERL_ARGS_ASSERT_GET_AUX_MG PERL_ARGS_ASSERT_GET_AV
syn keyword xsMacro PERL_ARGS_ASSERT_GET_CV PERL_ARGS_ASSERT_GET_CVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GET_DB_SUB
syn keyword xsMacro PERL_ARGS_ASSERT_GET_DEBUG_OPTS
syn keyword xsMacro PERL_ARGS_ASSERT_GET_HASH_SEED PERL_ARGS_ASSERT_GET_HV
syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR
syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR
syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR
syn keyword xsMacro PERL_ARGS_ASSERT_GET_MSTATS PERL_ARGS_ASSERT_GET_NUM
syn keyword xsMacro PERL_ARGS_ASSERT_GET_SV PERL_ARGS_ASSERT_GLOB_2NUMBER
syn keyword xsMacro PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB PERL_ARGS_ASSERT_GP_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_ATOUV PERL_ARGS_ASSERT_GROK_BIN
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_N
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_O
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_X PERL_ARGS_ASSERT_GROK_HEX
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_INFNAN PERL_ARGS_ASSERT_GROK_NUMBER
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_NUMBER_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_OCT PERL_ARGS_ASSERT_GROUP_END
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AMUPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_PV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_SV PERL_ARGS_ASSERT_GV_CHECK
syn keyword xsMacro PERL_ARGS_ASSERT_GV_CONST_SV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME
syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME3
syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME4
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHFILE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETHOD
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETHOD_PVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETHOD_PV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETHOD_SV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETH_PV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETH_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETH_PVN_AUTOLOAD
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETH_PV_AUTOLOAD
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETH_SV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETH_SV_AUTOLOAD
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHPV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHSV PERL_ARGS_ASSERT_GV_FULLNAME
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME3
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME4 PERL_ARGS_ASSERT_GV_INIT_PV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_PVN PERL_ARGS_ASSERT_GV_INIT_SV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_SVTYPE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_IS_IN_MAIN
syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA
syn keyword xsMacro PERL_ARGS_ASSERT_GV_NAME_SET PERL_ARGS_ASSERT_GV_OVERRIDE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_SETREF PERL_ARGS_ASSERT_GV_STASHPV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN
syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHSV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE
syn keyword xsMacro PERL_ARGS_ASSERT_HANDLE_REGEX_SETS
syn keyword xsMacro PERL_ARGS_ASSERT_HEK_DUP PERL_ARGS_ASSERT_HE_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_HFREEENTRIES
syn keyword xsMacro PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY PERL_ARGS_ASSERT_HSPLIT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ASSERT PERL_ARGS_ASSERT_HV_AUXINIT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_AUXINIT_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_HV_BACKREFERENCES_P
syn keyword xsMacro PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS
syn keyword xsMacro PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN
syn keyword xsMacro PERL_ARGS_ASSERT_HV_DELAYFREE_ENT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_DELETE PERL_ARGS_ASSERT_HV_DELETE_ENT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_EITER_P PERL_ARGS_ASSERT_HV_EITER_SET
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ENAME_ADD
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ENAME_DELETE
syn keyword xsMacro PERL_ARGS_ASSERT_HV_EXISTS PERL_ARGS_ASSERT_HV_EXISTS_ENT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_FETCH PERL_ARGS_ASSERT_HV_FETCH_ENT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_FILL PERL_ARGS_ASSERT_HV_FREE_ENT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_FREE_ENT_RET
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ITERINIT PERL_ARGS_ASSERT_HV_ITERKEY
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ITERKEYSV
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ITERNEXT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ITERNEXTSV
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ITERVAL
syn keyword xsMacro PERL_ARGS_ASSERT_HV_KILL_BACKREFS
syn keyword xsMacro PERL_ARGS_ASSERT_HV_KSPLIT PERL_ARGS_ASSERT_HV_MAGIC
syn keyword xsMacro PERL_ARGS_ASSERT_HV_MAGIC_CHECK
syn keyword xsMacro PERL_ARGS_ASSERT_HV_NAME_SET
syn keyword xsMacro PERL_ARGS_ASSERT_HV_NOTALLOWED
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET
syn keyword xsMacro PERL_ARGS_ASSERT_HV_RAND_SET PERL_ARGS_ASSERT_HV_RITER_P
syn keyword xsMacro PERL_ARGS_ASSERT_HV_RITER_SET PERL_ARGS_ASSERT_HV_SCALAR
syn keyword xsMacro PERL_ARGS_ASSERT_INCLINE PERL_ARGS_ASSERT_INCPUSH
syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS
syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH_USE_SEP
syn keyword xsMacro PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS
syn keyword xsMacro PERL_ARGS_ASSERT_INIT_POSTDUMP_SYMBOLS
syn keyword xsMacro PERL_ARGS_ASSERT_INIT_TM PERL_ARGS_ASSERT_INPLACE_AASSIGN
syn keyword xsMacro PERL_ARGS_ASSERT_INSTR PERL_ARGS_ASSERT_INTUIT_METHOD
syn keyword xsMacro PERL_ARGS_ASSERT_INTUIT_MORE
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ARRAY
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_CLONE
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_EXTEND
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_HIGHEST
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_IS_ITERATING
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERFINISH
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERINIT
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERNEXT
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_MAX
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SET_LEN
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_TRIM PERL_ARGS_ASSERT_IO_CLOSE
syn keyword xsMacro PERL_ARGS_ASSERT_ISALNUM_LAZY PERL_ARGS_ASSERT_ISA_LOOKUP
syn keyword xsMacro PERL_ARGS_ASSERT_ISFOO_UTF8_LC
syn keyword xsMacro PERL_ARGS_ASSERT_ISIDFIRST_LAZY
syn keyword xsMacro PERL_ARGS_ASSERT_ISINFNANSV PERL_ARGS_ASSERT_ISSB
syn keyword xsMacro PERL_ARGS_ASSERT_ISWB PERL_ARGS_ASSERT_IS_AN_INT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR
syn keyword xsMacro PERL_ARGS_ASSERT_IS_INVARIANT_STRING
syn keyword xsMacro PERL_ARGS_ASSERT_IS_SAFE_SYSCALL
syn keyword xsMacro PERL_ARGS_ASSERT_IS_SSC_WORTH_IT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALNUM
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALNUMC
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALPHA
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ASCII
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_BLANK
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CNTRL
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_DIGIT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_GRAPH
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_IDCONT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_IDFIRST
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_LOWER
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_MARK
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_PERL_SPACE
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_PERL_WORD
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_POSIX_DIGIT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_PRINT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_PUNCT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_SPACE
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_STRING
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_UPPER
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XDIGIT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDCONT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST PERL_ARGS_ASSERT_JMAYBE
syn keyword xsMacro PERL_ARGS_ASSERT_JOIN_EXACT PERL_ARGS_ASSERT_KEYWORD
syn keyword xsMacro PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD
syn keyword xsMacro PERL_ARGS_ASSERT_LEAVE_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_DISCARD_TO
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_READ_TO
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_STUFF_PV
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_STUFF_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_STUFF_SV
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_UNSTUFF PERL_ARGS_ASSERT_LOAD_MODULE
syn keyword xsMacro PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_LOCALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL
syn keyword xsMacro PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER PERL_ARGS_ASSERT_LOP
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARHINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARHINTS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARISA
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARSIG
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_EXISTSPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_FREEOVRLD
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETARYLEN
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETDEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETNKEYS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETPOS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETSIG
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETSUBSTR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETTAINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETUVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETVEC
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHCALL
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHCALL1
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_NEXTPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_REGDATA_CNT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SCALARPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETARYLEN
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDBLINE
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETHINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETISA
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETLVREF
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETMGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETNKEYS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETPOS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETREGEXP
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETSIG
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETSUBSTR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETTAINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETUTF8
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETUVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETVEC
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SIZEPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_WIPEPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAKE_MATCHER PERL_ARGS_ASSERT_MAKE_TRIE
syn keyword xsMacro PERL_ARGS_ASSERT_MALLOCED_SIZE
syn keyword xsMacro PERL_ARGS_ASSERT_MATCHER_MATCHES_SV
syn keyword xsMacro PERL_ARGS_ASSERT_MAYBERELOCATE
syn keyword xsMacro PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV
syn keyword xsMacro PERL_ARGS_ASSERT_MEASURE_STRUCT
syn keyword xsMacro PERL_ARGS_ASSERT_MEM_COLLXFRM
syn keyword xsMacro PERL_ARGS_ASSERT_MEM_LOG_COMMON PERL_ARGS_ASSERT_MESS
syn keyword xsMacro PERL_ARGS_ASSERT_MESS_NOCONTEXT PERL_ARGS_ASSERT_MESS_SV
syn keyword xsMacro PERL_ARGS_ASSERT_MG_CLEAR PERL_ARGS_ASSERT_MG_COPY
syn keyword xsMacro PERL_ARGS_ASSERT_MG_DUP PERL_ARGS_ASSERT_MG_FIND_MGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_MG_FREE PERL_ARGS_ASSERT_MG_FREE_TYPE
syn keyword xsMacro PERL_ARGS_ASSERT_MG_GET PERL_ARGS_ASSERT_MG_LENGTH
syn keyword xsMacro PERL_ARGS_ASSERT_MG_LOCALIZE PERL_ARGS_ASSERT_MG_MAGICAL
syn keyword xsMacro PERL_ARGS_ASSERT_MG_SET PERL_ARGS_ASSERT_MG_SIZE
syn keyword xsMacro PERL_ARGS_ASSERT_MINI_MKTIME
syn keyword xsMacro PERL_ARGS_ASSERT_MORESWITCHES
syn keyword xsMacro PERL_ARGS_ASSERT_MOVE_PROTO_ATTR
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GET_FROM_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_META_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_META_INIT
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_PACKAGE_MOVED
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_REGISTER
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_SET_MRO
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA
syn keyword xsMacro PERL_ARGS_ASSERT_MUL128
syn keyword xsMacro PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY
syn keyword xsMacro PERL_ARGS_ASSERT_MY_ATOF PERL_ARGS_ASSERT_MY_ATOF2
syn keyword xsMacro PERL_ARGS_ASSERT_MY_ATTRS PERL_ARGS_ASSERT_MY_BCOPY
syn keyword xsMacro PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_MY_BZERO PERL_ARGS_ASSERT_MY_CXT_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_MY_CXT_INIT PERL_ARGS_ASSERT_MY_KID
syn keyword xsMacro PERL_ARGS_ASSERT_MY_MEMCMP PERL_ARGS_ASSERT_MY_MEMSET
syn keyword xsMacro PERL_ARGS_ASSERT_MY_POPEN PERL_ARGS_ASSERT_MY_POPEN_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_MY_SNPRINTF PERL_ARGS_ASSERT_MY_SPRINTF
syn keyword xsMacro PERL_ARGS_ASSERT_MY_STRFTIME
syn keyword xsMacro PERL_ARGS_ASSERT_MY_VSNPRINTF PERL_ARGS_ASSERT_NEED_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_NEWAVREF PERL_ARGS_ASSERT_NEWCONDOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWFOROP PERL_ARGS_ASSERT_NEWGIVENOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWGIVWHENOP PERL_ARGS_ASSERT_NEWGP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWGVGEN_FLAGS PERL_ARGS_ASSERT_NEWGVOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWHVREF PERL_ARGS_ASSERT_NEWLOGOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWLOOPEX PERL_ARGS_ASSERT_NEWMETHOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWMETHOP_NAMED
syn keyword xsMacro PERL_ARGS_ASSERT_NEWMYSUB
syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADNAMEOUTER
syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADNAMEPVN PERL_ARGS_ASSERT_NEWPADOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWPROG PERL_ARGS_ASSERT_NEWRANGE
syn keyword xsMacro PERL_ARGS_ASSERT_NEWRV PERL_ARGS_ASSERT_NEWRV_NOINC
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSTUB PERL_ARGS_ASSERT_NEWSVAVDEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVOP PERL_ARGS_ASSERT_NEWSVPVF
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVREF PERL_ARGS_ASSERT_NEWSVRV
syn keyword xsMacro PERL_ARGS_ASSERT_NEWWHENOP PERL_ARGS_ASSERT_NEWXS
syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_DEFFILE
syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_NEW_CONSTANT PERL_ARGS_ASSERT_NEW_CTYPE
syn keyword xsMacro PERL_ARGS_ASSERT_NEW_LOGOP PERL_ARGS_ASSERT_NEW_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD
syn keyword xsMacro PERL_ARGS_ASSERT_NEXTARGV PERL_ARGS_ASSERT_NEXTCHAR
syn keyword xsMacro PERL_ARGS_ASSERT_NEXT_SYMBOL PERL_ARGS_ASSERT_NINSTR
syn keyword xsMacro PERL_ARGS_ASSERT_NOPERL_DIE PERL_ARGS_ASSERT_NOT_A_NUMBER
syn keyword xsMacro PERL_ARGS_ASSERT_NOT_INCREMENTABLE
syn keyword xsMacro PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED
syn keyword xsMacro PERL_ARGS_ASSERT_NO_FH_ALLOWED PERL_ARGS_ASSERT_NO_OP
syn keyword xsMacro PERL_ARGS_ASSERT_OOPSAV PERL_ARGS_ASSERT_OOPSHV
syn keyword xsMacro PERL_ARGS_ASSERT_OPENN_CLEANUP
syn keyword xsMacro PERL_ARGS_ASSERT_OPENN_SETUP PERL_ARGS_ASSERT_OPEN_SCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_OPMETHOD_STASH
syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD
syn keyword xsMacro PERL_ARGS_ASSERT_OP_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_OP_CONTEXTUALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_OP_DUMP PERL_ARGS_ASSERT_OP_INTEGERIZE
syn keyword xsMacro PERL_ARGS_ASSERT_OP_LINKLIST PERL_ARGS_ASSERT_OP_NULL
syn keyword xsMacro PERL_ARGS_ASSERT_OP_PARENT PERL_ARGS_ASSERT_OP_REFCNT_DEC
syn keyword xsMacro PERL_ARGS_ASSERT_OP_RELOCATE_SV
syn keyword xsMacro PERL_ARGS_ASSERT_OP_STD_INIT PERL_ARGS_ASSERT_PACKAGE
syn keyword xsMacro PERL_ARGS_ASSERT_PACKAGE_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_PACKLIST PERL_ARGS_ASSERT_PACK_CAT
syn keyword xsMacro PERL_ARGS_ASSERT_PACK_REC PERL_ARGS_ASSERT_PADLIST_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_PADLIST_STORE
syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_STORE
syn keyword xsMacro PERL_ARGS_ASSERT_PADNAME_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_PADNAME_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_ANON
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_PV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_SV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_WEAKREF
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ALLOC_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_CHECK_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDLEX
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_PV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_SV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_PUSH PERL_ARGS_ASSERT_PAD_SETSV
syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_DUP PERL_ARGS_ASSERT_PARSER_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS
syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_IDENT
syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS
syn keyword xsMacro PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_READ
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_UNREAD
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_WRITE
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_ALLOC_USING
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_CLONE
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_CLONE_USING
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_CONSTRUCT
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_DESTRUCT PERL_ARGS_ASSERT_PERL_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_PARSE PERL_ARGS_ASSERT_PERL_RUN
syn keyword xsMacro PERL_ARGS_ASSERT_PMRUNTIME PERL_ARGS_ASSERT_PMTRANS
syn keyword xsMacro PERL_ARGS_ASSERT_PM_DESCRIPTION
syn keyword xsMacro PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT_POPULATE_ISA PERL_ARGS_ASSERT_PREGCOMP
syn keyword xsMacro PERL_ARGS_ASSERT_PREGEXEC PERL_ARGS_ASSERT_PREGFREE2
syn keyword xsMacro PERL_ARGS_ASSERT_PRESCAN_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_PRINTBUF
syn keyword xsMacro PERL_ARGS_ASSERT_PRINTF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_FIND
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_SPLIT
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_STORE
syn keyword xsMacro PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS
syn keyword xsMacro PERL_ARGS_ASSERT_PUT_CODE_POINT
syn keyword xsMacro PERL_ARGS_ASSERT_PUT_RANGE PERL_ARGS_ASSERT_PV_DISPLAY
syn keyword xsMacro PERL_ARGS_ASSERT_PV_ESCAPE PERL_ARGS_ASSERT_PV_PRETTY
syn keyword xsMacro PERL_ARGS_ASSERT_PV_UNI_DISPLAY PERL_ARGS_ASSERT_QERROR
syn keyword xsMacro PERL_ARGS_ASSERT_QSORTSVU
syn keyword xsMacro PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED
syn keyword xsMacro PERL_ARGS_ASSERT_QUADMATH_FORMAT_SINGLE
syn keyword xsMacro PERL_ARGS_ASSERT_REENTRANT_RETRY
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_SV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE
syn keyword xsMacro PERL_ARGS_ASSERT_REFTO PERL_ARGS_ASSERT_REG
syn keyword xsMacro PERL_ARGS_ASSERT_REG2LANODE PERL_ARGS_ASSERT_REGANODE
syn keyword xsMacro PERL_ARGS_ASSERT_REGATOM PERL_ARGS_ASSERT_REGBRANCH
syn keyword xsMacro PERL_ARGS_ASSERT_REGCLASS PERL_ARGS_ASSERT_REGCLASS_SWASH
syn keyword xsMacro PERL_ARGS_ASSERT_REGCPPOP PERL_ARGS_ASSERT_REGCPPUSH
syn keyword xsMacro PERL_ARGS_ASSERT_REGCURLY PERL_ARGS_ASSERT_REGDUMP
syn keyword xsMacro PERL_ARGS_ASSERT_REGDUPE_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_REGEXEC_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_REGFREE_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_REGHOP3 PERL_ARGS_ASSERT_REGHOP4
syn keyword xsMacro PERL_ARGS_ASSERT_REGHOPMAYBE3 PERL_ARGS_ASSERT_REGINCLASS
syn keyword xsMacro PERL_ARGS_ASSERT_REGINSERT PERL_ARGS_ASSERT_REGMATCH
syn keyword xsMacro PERL_ARGS_ASSERT_REGNODE_GUTS PERL_ARGS_ASSERT_REGPATWS
syn keyword xsMacro PERL_ARGS_ASSERT_REGPIECE PERL_ARGS_ASSERT_REGPPOSIXCC
syn keyword xsMacro PERL_ARGS_ASSERT_REGPROP PERL_ARGS_ASSERT_REGREPEAT
syn keyword xsMacro PERL_ARGS_ASSERT_REGTAIL PERL_ARGS_ASSERT_REGTAIL_STUDY
syn keyword xsMacro PERL_ARGS_ASSERT_REGTRY
syn keyword xsMacro PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NODE
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE
syn keyword xsMacro PERL_ARGS_ASSERT_REG_QR_PACKAGE
syn keyword xsMacro PERL_ARGS_ASSERT_REG_RECODE
syn keyword xsMacro PERL_ARGS_ASSERT_REG_SCAN_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_REG_SKIPCOMMENT
syn keyword xsMacro PERL_ARGS_ASSERT_REG_TEMP_COPY PERL_ARGS_ASSERT_REPEATCPY
syn keyword xsMacro PERL_ARGS_ASSERT_REPORT_REDEFINED_CV
syn keyword xsMacro PERL_ARGS_ASSERT_REQUIRE_PV
syn keyword xsMacro PERL_ARGS_ASSERT_REQUIRE_TIE_MOD
syn keyword xsMacro PERL_ARGS_ASSERT_RE_COMPILE PERL_ARGS_ASSERT_RE_CROAK2
syn keyword xsMacro PERL_ARGS_ASSERT_RE_DUP_GUTS
syn keyword xsMacro PERL_ARGS_ASSERT_RE_INTUIT_START
syn keyword xsMacro PERL_ARGS_ASSERT_RE_INTUIT_STRING
syn keyword xsMacro PERL_ARGS_ASSERT_RE_OP_COMPILE PERL_ARGS_ASSERT_RNINSTR
syn keyword xsMacro PERL_ARGS_ASSERT_RSIGNAL_SAVE
syn keyword xsMacro PERL_ARGS_ASSERT_RUN_USER_FILTER
syn keyword xsMacro PERL_ARGS_ASSERT_RV2CV_OP_CV PERL_ARGS_ASSERT_RVPV_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_RXRES_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_RXRES_RESTORE
syn keyword xsMacro PERL_ARGS_ASSERT_RXRES_SAVE PERL_ARGS_ASSERT_SAME_DIRENT
syn keyword xsMacro PERL_ARGS_ASSERT_SAVESHAREDSVPV PERL_ARGS_ASSERT_SAVESVPV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_ADELETE
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_ALIASED_SV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_APTR PERL_ARGS_ASSERT_SAVE_ARY
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_BOOL PERL_ARGS_ASSERT_SAVE_CLEARSV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_DELETE
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_DESTRUCTOR
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_GP PERL_ARGS_ASSERT_SAVE_HASH
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_HDELETE
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_HEK_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_HPTR PERL_ARGS_ASSERT_SAVE_I16
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_I32 PERL_ARGS_ASSERT_SAVE_I8
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_INT PERL_ARGS_ASSERT_SAVE_ITEM
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_IV PERL_ARGS_ASSERT_SAVE_LINES
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_LIST PERL_ARGS_ASSERT_SAVE_LONG
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MORTALIZESV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_NOGV PERL_ARGS_ASSERT_SAVE_PPTR
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SCALAR
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SCALAR_AT
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SHARED_PVREF
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SPTR PERL_ARGS_ASSERT_SAVE_STRLEN
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SVREF PERL_ARGS_ASSERT_SAVE_VPTR
syn keyword xsMacro PERL_ARGS_ASSERT_SCALARBOOLEAN
syn keyword xsMacro PERL_ARGS_ASSERT_SCALARVOID PERL_ARGS_ASSERT_SCAN_BIN
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_COMMIT PERL_ARGS_ASSERT_SCAN_CONST
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_FORMLINE
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_HEREDOC PERL_ARGS_ASSERT_SCAN_HEX
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_IDENT
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_INPUTSYMBOL
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_NUM PERL_ARGS_ASSERT_SCAN_OCT
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_PAT PERL_ARGS_ASSERT_SCAN_STR
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_SUBST PERL_ARGS_ASSERT_SCAN_TRANS
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_VSTRING PERL_ARGS_ASSERT_SCAN_WORD
syn keyword xsMacro PERL_ARGS_ASSERT_SEARCH_CONST PERL_ARGS_ASSERT_SETDEFOUT
syn keyword xsMacro PERL_ARGS_ASSERT_SET_ANYOF_ARG
syn keyword xsMacro PERL_ARGS_ASSERT_SET_CONTEXT PERL_ARGS_ASSERT_SET_PADLIST
syn keyword xsMacro PERL_ARGS_ASSERT_SHARE_HEK
syn keyword xsMacro PERL_ARGS_ASSERT_SHARE_HEK_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SHOULD_WARN_NL
syn keyword xsMacro PERL_ARGS_ASSERT_SIMPLIFY_SORT PERL_ARGS_ASSERT_SI_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_SKIPSPACE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_FREE PERL_ARGS_ASSERT_SLAB_TO_RO
syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_TO_RW PERL_ARGS_ASSERT_SOFTREF2XV
syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV PERL_ARGS_ASSERT_SORTCV_STACKED
syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV_XSUB PERL_ARGS_ASSERT_SORTSV
syn keyword xsMacro PERL_ARGS_ASSERT_SORTSV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_ADD_RANGE PERL_ARGS_ASSERT_SSC_AND
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_ANYTHING
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_CP_AND PERL_ARGS_ASSERT_SSC_FINALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_INIT
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_INTERSECTION
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_IS_ANYTHING
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT
syn keyword xsMacro PERL_ARGS_ASSERT_SSC_OR PERL_ARGS_ASSERT_SSC_UNION
syn keyword xsMacro PERL_ARGS_ASSERT_SS_DUP PERL_ARGS_ASSERT_STACK_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_START_GLOB
syn keyword xsMacro PERL_ARGS_ASSERT_STDIZE_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_STRIP_RETURN
syn keyword xsMacro PERL_ARGS_ASSERT_STR_TO_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_STUDY_CHUNK
syn keyword xsMacro PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2BOOL_FLAGS PERL_ARGS_ASSERT_SV_2CV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IO PERL_ARGS_ASSERT_SV_2IUV_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IV PERL_ARGS_ASSERT_SV_2IV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2NUM PERL_ARGS_ASSERT_SV_2NV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV PERL_ARGS_ASSERT_SV_2PVBYTE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVUTF8
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_NOLEN PERL_ARGS_ASSERT_SV_2UV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2UV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_ADD_ARENA
syn keyword xsMacro PERL_ARGS_ASSERT_SV_ADD_BACKREF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_BACKOFF PERL_ARGS_ASSERT_SV_BLESS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_BUF_TO_RO
syn keyword xsMacro PERL_ARGS_ASSERT_SV_BUF_TO_RW PERL_ARGS_ASSERT_SV_CATPV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF PERL_ARGS_ASSERT_SV_CATPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVN_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV_MG PERL_ARGS_ASSERT_SV_CATSV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CAT_DECODE PERL_ARGS_ASSERT_SV_CHOP
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_COPYPV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_COPYPV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DEL_BACKREF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DISPLAY PERL_ARGS_ASSERT_SV_DOES
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_PV PERL_ARGS_ASSERT_SV_DOES_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_SV PERL_ARGS_ASSERT_SV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP PERL_ARGS_ASSERT_SV_DUP_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_INC
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_EXP_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FORCE_NORMAL
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FREE2 PERL_ARGS_ASSERT_SV_GETS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_GET_BACKREFS PERL_ARGS_ASSERT_SV_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_INSERT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_INSERT_FLAGS PERL_ARGS_ASSERT_SV_ISA
syn keyword xsMacro PERL_ARGS_ASSERT_SV_IV PERL_ARGS_ASSERT_SV_I_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_SV_KILL_BACKREFS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_MAGIC PERL_ARGS_ASSERT_SV_MAGICEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_SV_NCMP PERL_ARGS_ASSERT_SV_NV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC
syn keyword xsMacro PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B_CACHED
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B_FORWARDS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY PERL_ARGS_ASSERT_SV_PV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_PVBYTE PERL_ARGS_ASSERT_SV_PVBYTEN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE PERL_ARGS_ASSERT_SV_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_PVN_FORCE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_PVN_NOMG PERL_ARGS_ASSERT_SV_PVUTF8
syn keyword xsMacro PERL_ARGS_ASSERT_SV_PVUTF8N
syn keyword xsMacro PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_RECODE_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_SV_REF PERL_ARGS_ASSERT_SV_REFTYPE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_RELEASE_COW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_REPLACE PERL_ARGS_ASSERT_SV_RESET
syn keyword xsMacro PERL_ARGS_ASSERT_SV_RVWEAKEN PERL_ARGS_ASSERT_SV_SETHEK
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETIV PERL_ARGS_ASSERT_SV_SETIV_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETNV PERL_ARGS_ASSERT_SV_SETNV_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPV PERL_ARGS_ASSERT_SV_SETPVF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPVIV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPVIV_MG PERL_ARGS_ASSERT_SV_SETPVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPVN_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETPV_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETREF_IV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETREF_NV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETREF_PV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETREF_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETREF_UV PERL_ARGS_ASSERT_SV_SETSV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETSV_COW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETSV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETSV_MG PERL_ARGS_ASSERT_SV_SETUV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_SETUV_MG PERL_ARGS_ASSERT_SV_TAINT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_TAINTED PERL_ARGS_ASSERT_SV_UNGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UNI_DISPLAY
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UNMAGIC
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UNMAGICEXT PERL_ARGS_ASSERT_SV_UNREF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UNREF_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UNTAINT PERL_ARGS_ASSERT_SV_UPGRADE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_USEPVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_USEPVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_USEPVN_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_DECODE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_ENCODE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_UPGRADE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UV PERL_ARGS_ASSERT_SV_VCATPVF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVFN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VSETPVF PERL_ARGS_ASSERT_SV_VSETPVFN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VSETPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SWALLOW_BOM PERL_ARGS_ASSERT_SWASH_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_INIT
syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_SCAN_LIST_LINE
syn keyword xsMacro PERL_ARGS_ASSERT_SWATCH_GET PERL_ARGS_ASSERT_SYS_INIT
syn keyword xsMacro PERL_ARGS_ASSERT_SYS_INIT3
syn keyword xsMacro PERL_ARGS_ASSERT_SYS_INTERN_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_TAINT_PROPER
syn keyword xsMacro PERL_ARGS_ASSERT_TIED_METHOD
syn keyword xsMacro PERL_ARGS_ASSERT_TOKENIZE_USE PERL_ARGS_ASSERT_TOKEQ
syn keyword xsMacro PERL_ARGS_ASSERT_TOKEREPORT
syn keyword xsMacro PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV
syn keyword xsMacro PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV
syn keyword xsMacro PERL_ARGS_ASSERT_TO_BYTE_SUBSTR
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UNI_LOWER
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UNI_TITLE
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UNI_UPPER
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UTF8_CASE
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UTF8_FOLD
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UTF8_LOWER
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UTF8_SUBSTR
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UTF8_TITLE
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UTF8_UPPER
syn keyword xsMacro PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS
syn keyword xsMacro PERL_ARGS_ASSERT_UIV_2BUF PERL_ARGS_ASSERT_UNLNK
syn keyword xsMacro PERL_ARGS_ASSERT_UNPACKSTRING PERL_ARGS_ASSERT_UNPACK_REC
syn keyword xsMacro PERL_ARGS_ASSERT_UNPACK_STR
syn keyword xsMacro PERL_ARGS_ASSERT_UNREFERENCED_TO_TMP_STACK
syn keyword xsMacro PERL_ARGS_ASSERT_UPG_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_UTF16_TEXTFILTER
syn keyword xsMacro PERL_ARGS_ASSERT_UTF16_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8N_TO_UVCHR
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8N_TO_UVUNI
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_DISTANCE PERL_ARGS_ASSERT_UTF8_HOP
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_LENGTH
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_BYTES
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVCHR
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVUNI
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVUNI_BUF
syn keyword xsMacro PERL_ARGS_ASSERT_UTILIZE
syn keyword xsMacro PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_UVUNI_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_VALIDATE_PROTO
syn keyword xsMacro PERL_ARGS_ASSERT_VALIDATE_SUID
syn keyword xsMacro PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR
syn keyword xsMacro PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI
syn keyword xsMacro PERL_ARGS_ASSERT_VCMP PERL_ARGS_ASSERT_VDEB
syn keyword xsMacro PERL_ARGS_ASSERT_VFORM PERL_ARGS_ASSERT_VISIT
syn keyword xsMacro PERL_ARGS_ASSERT_VIVIFY_DEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_VIVIFY_REF PERL_ARGS_ASSERT_VLOAD_MODULE
syn keyword xsMacro PERL_ARGS_ASSERT_VMESS PERL_ARGS_ASSERT_VNEWSVPVF
syn keyword xsMacro PERL_ARGS_ASSERT_VNORMAL PERL_ARGS_ASSERT_VNUMIFY
syn keyword xsMacro PERL_ARGS_ASSERT_VSTRINGIFY PERL_ARGS_ASSERT_VVERIFY
syn keyword xsMacro PERL_ARGS_ASSERT_VWARN PERL_ARGS_ASSERT_VWARNER
syn keyword xsMacro PERL_ARGS_ASSERT_WAIT4PID PERL_ARGS_ASSERT_WARN
syn keyword xsMacro PERL_ARGS_ASSERT_WARNER PERL_ARGS_ASSERT_WARNER_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_WARN_NOCONTEXT PERL_ARGS_ASSERT_WARN_SV
syn keyword xsMacro PERL_ARGS_ASSERT_WATCH PERL_ARGS_ASSERT_WHICHSIG_PV
syn keyword xsMacro PERL_ARGS_ASSERT_WHICHSIG_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_WHICHSIG_SV
syn keyword xsMacro PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED
syn keyword xsMacro PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS
syn keyword xsMacro PERL_ARGS_ASSERT_WRAP_OP_CHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_WRITE_TO_STDERR
syn keyword xsMacro PERL_ARGS_ASSERT_XS_HANDSHAKE
syn keyword xsMacro PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK
syn keyword xsMacro PERL_ARGS_ASSERT_YYERROR PERL_ARGS_ASSERT_YYERROR_PV
syn keyword xsMacro PERL_ARGS_ASSERT_YYERROR_PVN PERL_ARGS_ASSERT_YYWARN
syn keyword xsMacro PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__CORE_SWASH_INIT
syn keyword xsMacro PERL_ARGS_ASSERT__GET_REGCLASS_NONBITMAP_DATA
syn keyword xsMacro PERL_ARGS_ASSERT__GET_SWASH_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_CONTENTS
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INVERT
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_LEN
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_POPULATE_SWATCH
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_SEARCH
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_FOO
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_IDCONT
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_IDSTART
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_MARK
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_XIDCONT
syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_XIDSTART
syn keyword xsMacro PERL_ARGS_ASSERT__MAKE_EXACTF_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY
syn keyword xsMacro PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__SWASH_INVERSION_HASH
syn keyword xsMacro PERL_ARGS_ASSERT__SWASH_TO_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__TO_FOLD_LATIN1
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UPPER_TITLE_LATIN1
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS PERL_ASYNC_CHECK
syn keyword xsMacro PERL_BITFIELD16 PERL_BITFIELD32 PERL_BITFIELD8
syn keyword xsMacro PERL_CALLCONV PERL_CALLCONV_NO_RET PERL_CHECK_INITED
syn keyword xsMacro PERL_CKDEF PERL_DEB PERL_DEB2 PERL_DEBUG PERL_DEBUG_PAD
syn keyword xsMacro PERL_DEBUG_PAD_ZERO PERL_DECIMAL_VERSION
syn keyword xsMacro PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
syn keyword xsMacro PERL_DONT_CREATE_GVSV PERL_DRAND48_QUAD
syn keyword xsMacro PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS
syn keyword xsMacro PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION
syn keyword xsMacro PERL_ENABLE_POSITIVE_ASSERTION_STUDY
syn keyword xsMacro PERL_ENABLE_TRIE_OPTIMISATION PERL_EXIT_ABORT
syn keyword xsMacro PERL_EXIT_DESTRUCT_END PERL_EXIT_EXPECTED PERL_EXIT_WARN
syn keyword xsMacro PERL_EXPORT_C PERL_FILE_IS_ABSOLUTE PERL_FILTER_EXISTS
syn keyword xsMacro PERL_FLUSHALL_FOR_CHILD PERL_FPU_INIT PERL_FPU_POST_EXEC
syn keyword xsMacro PERL_FPU_PRE_EXEC PERL_FS_VERSION PERL_FS_VER_FMT
syn keyword xsMacro PERL_GCC_BRACE_GROUPS_FORBIDDEN PERL_GET_CONTEXT
syn keyword xsMacro PERL_GET_INTERP PERL_GET_THX PERL_GET_VARS
syn keyword xsMacro PERL_GIT_UNPUSHED_COMMITS PERL_GLOBAL_STRUCT
syn keyword xsMacro PERL_GPROF_MONCONTROL PERL_HASH PERL_HASH_DEFAULT_HvMAX
syn keyword xsMacro PERL_HASH_FUNC PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
syn keyword xsMacro PERL_HASH_INTERNAL PERL_HASH_ITER_BUCKET
syn keyword xsMacro PERL_HASH_RANDOMIZE_KEYS PERL_HASH_SEED
syn keyword xsMacro PERL_HASH_SEED_BYTES PERL_HASH_WITH_SEED
syn keyword xsMacro PERL_HV_ALLOC_AUX_SIZE PERL_HV_ARRAY_ALLOC_BYTES
syn keyword xsMacro PERL_IMPLICIT_CONTEXT PERL_INTERPRETER_SIZE_UPTO_MEMBER
syn keyword xsMacro PERL_INT_MAX PERL_INT_MIN PERL_LOADMOD_DENY
syn keyword xsMacro PERL_LOADMOD_IMPORT_OPS PERL_LOADMOD_NOIMPORT
syn keyword xsMacro PERL_LONG_MAX PERL_LONG_MIN PERL_MALLOC_WRAP
syn keyword xsMacro PERL_MEMORY_DEBUG_HEADER_SIZE PERL_MG_UFUNC
syn keyword xsMacro PERL_MY_SNPRINTF_GUARDED PERL_MY_SNPRINTF_POST_GUARD
syn keyword xsMacro PERL_MY_VSNPRINTF_GUARDED PERL_MY_VSNPRINTF_POST_GUARD
syn keyword xsMacro PERL_NEW_COPY_ON_WRITE PERL_NO_DEV_RANDOM
syn keyword xsMacro PERL_OBJECT_THIS PERL_OBJECT_THIS_ PERL_PADNAME_MINIMAL
syn keyword xsMacro PERL_PADSEQ_INTRO PERL_PATCHNUM PERL_POISON_EXPR
syn keyword xsMacro PERL_PPADDR_INITED PERL_PPDEF PERL_PRESERVE_IVUV
syn keyword xsMacro PERL_PRIeldbl PERL_PRIfldbl PERL_PRIgldbl
syn keyword xsMacro PERL_PV_ESCAPE_ALL PERL_PV_ESCAPE_DWIM
syn keyword xsMacro PERL_PV_ESCAPE_FIRSTCHAR PERL_PV_ESCAPE_NOBACKSLASH
syn keyword xsMacro PERL_PV_ESCAPE_NOCLEAR PERL_PV_ESCAPE_NONASCII
syn keyword xsMacro PERL_PV_ESCAPE_QUOTE PERL_PV_ESCAPE_RE PERL_PV_ESCAPE_UNI
syn keyword xsMacro PERL_PV_ESCAPE_UNI_DETECT PERL_PV_PRETTY_DUMP
syn keyword xsMacro PERL_PV_PRETTY_ELLIPSES PERL_PV_PRETTY_EXACTSIZE
syn keyword xsMacro PERL_PV_PRETTY_LTGT PERL_PV_PRETTY_NOCLEAR
syn keyword xsMacro PERL_PV_PRETTY_QUOTE PERL_PV_PRETTY_REGPROP PERL_QUAD_MAX
syn keyword xsMacro PERL_QUAD_MIN PERL_REENTR_API PERL_REGMATCH_SLAB_SLOTS
syn keyword xsMacro PERL_RELOCATABLE_INC PERL_REVISION PERL_SAWAMPERSAND
syn keyword xsMacro PERL_SCAN_ALLOW_UNDERSCORES PERL_SCAN_DISALLOW_PREFIX
syn keyword xsMacro PERL_SCAN_GREATER_THAN_UV_MAX PERL_SCAN_SILENT_ILLDIGIT
syn keyword xsMacro PERL_SCAN_SILENT_NON_PORTABLE PERL_SCAN_TRAILING
syn keyword xsMacro PERL_SCNfldbl PERL_SCRIPT_MODE PERL_SEEN_HV_FUNC_H
syn keyword xsMacro PERL_SET_CONTEXT PERL_SET_INTERP PERL_SET_PHASE
syn keyword xsMacro PERL_SET_THX PERL_SHORT_MAX PERL_SHORT_MIN
syn keyword xsMacro PERL_SIGNALS_UNSAFE_FLAG PERL_SNPRINTF_CHECK
syn keyword xsMacro PERL_STACK_OVERFLOW_CHECK PERL_STATIC_INLINE
syn keyword xsMacro PERL_STATIC_INLINE_NO_RET PERL_STATIC_NO_RET
syn keyword xsMacro PERL_STRLEN_EXPAND_SHIFT PERL_STRLEN_ROUNDUP
syn keyword xsMacro PERL_STRLEN_ROUNDUP_QUANTUM PERL_SUBVERSION
syn keyword xsMacro PERL_SUB_DEPTH_WARN PERL_SYS_FPU_INIT PERL_SYS_INIT
syn keyword xsMacro PERL_SYS_INIT3 PERL_SYS_INIT3_BODY PERL_SYS_INIT_BODY
syn keyword xsMacro PERL_SYS_TERM PERL_SYS_TERM_BODY PERL_TARGETARCH
syn keyword xsMacro PERL_UCHAR_MAX PERL_UCHAR_MIN PERL_UINT_MAX PERL_UINT_MIN
syn keyword xsMacro PERL_ULONG_MAX PERL_ULONG_MIN PERL_UNICODE_ALL_FLAGS
syn keyword xsMacro PERL_UNICODE_ARGV PERL_UNICODE_ARGV_FLAG
syn keyword xsMacro PERL_UNICODE_DEFAULT_FLAGS PERL_UNICODE_IN
syn keyword xsMacro PERL_UNICODE_INOUT PERL_UNICODE_INOUT_FLAG
syn keyword xsMacro PERL_UNICODE_IN_FLAG PERL_UNICODE_LOCALE
syn keyword xsMacro PERL_UNICODE_LOCALE_FLAG PERL_UNICODE_MAX
syn keyword xsMacro PERL_UNICODE_OUT PERL_UNICODE_OUT_FLAG PERL_UNICODE_STD
syn keyword xsMacro PERL_UNICODE_STDERR PERL_UNICODE_STDERR_FLAG
syn keyword xsMacro PERL_UNICODE_STDIN PERL_UNICODE_STDIN_FLAG
syn keyword xsMacro PERL_UNICODE_STDOUT PERL_UNICODE_STDOUT_FLAG
syn keyword xsMacro PERL_UNICODE_STD_FLAG PERL_UNICODE_UTF8CACHEASSERT
syn keyword xsMacro PERL_UNICODE_UTF8CACHEASSERT_FLAG
syn keyword xsMacro PERL_UNICODE_WIDESYSCALLS PERL_UNICODE_WIDESYSCALLS_FLAG
syn keyword xsMacro PERL_UNUSED_ARG PERL_UNUSED_CONTEXT PERL_UNUSED_DECL
syn keyword xsMacro PERL_UNUSED_RESULT PERL_UNUSED_VAR PERL_UQUAD_MAX
syn keyword xsMacro PERL_UQUAD_MIN PERL_USES_PL_PIDSTATUS
syn keyword xsMacro PERL_USE_GCC_BRACE_GROUPS PERL_USHORT_MAX PERL_USHORT_MIN
syn keyword xsMacro PERL_VERSION PERL_VERSION_DECIMAL PERL_VERSION_GE
syn keyword xsMacro PERL_VERSION_LT PERL_VERSION_STRING
syn keyword xsMacro PERL_WAIT_FOR_CHILDREN PERL_WARNHOOK_FATAL
syn keyword xsMacro PERL_WRITE_MSG_TO_CONSOLE PERL_XS_EXPORT_C
syn keyword xsMacro PHASE_CHANGE_PROBE PHOSTNAME PIPESOCK_MODE PIPE_OPEN_MODE
syn keyword xsMacro PLUGEXPR PLUGSTMT PLUS PL_AboveLatin1 PL_Argv PL_Cmd
syn keyword xsMacro PL_DBcontrol PL_DBcv PL_DBgv PL_DBline PL_DBsignal
syn keyword xsMacro PL_DBsignal_iv PL_DBsingle PL_DBsingle_iv PL_DBsub
syn keyword xsMacro PL_DBtrace PL_DBtrace_iv PL_Dir PL_Env PL_GCB_invlist
syn keyword xsMacro PL_Gappctx PL_Gcheck PL_Gcheck_mutex PL_Gcsighandlerp
syn keyword xsMacro PL_Gcurinterp PL_Gdo_undump PL_Gdollarzero_mutex
syn keyword xsMacro PL_Gfold_locale PL_Ghash_seed PL_Ghash_seed_set
syn keyword xsMacro PL_Ghints_mutex PL_Gkeyword_plugin PL_Gmalloc_mutex
syn keyword xsMacro PL_Gmmap_page_size PL_Gmy_ctx_mutex PL_Gmy_cxt_index
syn keyword xsMacro PL_Gop_mutex PL_Gop_seq PL_Gop_sequence
syn keyword xsMacro PL_Gperlio_debug_fd PL_Gperlio_fd_refcnt
syn keyword xsMacro PL_Gperlio_fd_refcnt_size PL_Gperlio_mutex PL_Gppaddr
syn keyword xsMacro PL_Gsh_path PL_Gsig_defaulting PL_Gsig_handlers_initted
syn keyword xsMacro PL_Gsig_ignoring PL_Gsig_trapped PL_Gsigfpe_saved
syn keyword xsMacro PL_Gsv_placeholder PL_Gthr_key PL_Gtimesbase
syn keyword xsMacro PL_Guse_safe_putenv PL_Gveto_cleanup PL_Gwatch_pvx
syn keyword xsMacro PL_HASH_RAND_BITS_ENABLED PL_HasMultiCharFold PL_InBitmap
syn keyword xsMacro PL_LIO PL_Latin1 PL_Mem PL_MemParse PL_MemShared
syn keyword xsMacro PL_NonL1NonFinalFold PL_Posix_ptrs PL_Proc
syn keyword xsMacro PL_RANDOM_STATE_TYPE PL_SB_invlist PL_Sock PL_StdIO PL_Sv
syn keyword xsMacro PL_UpperLatin1 PL_WB_invlist PL_XPosix_ptrs PL_Xpv
syn keyword xsMacro PL_amagic_generation PL_an PL_appctx PL_argvgv
syn keyword xsMacro PL_argvout_stack PL_argvoutgv PL_basetime PL_beginav
syn keyword xsMacro PL_beginav_save PL_blockhooks PL_body_arenas
syn keyword xsMacro PL_body_roots PL_bodytarget PL_breakable_sub_gen
syn keyword xsMacro PL_check_mutex PL_checkav PL_checkav_save PL_chopset
syn keyword xsMacro PL_clocktick PL_collation_ix PL_collation_name
syn keyword xsMacro PL_collation_standard PL_collxfrm_base PL_collxfrm_mult
syn keyword xsMacro PL_colors PL_colorset PL_compcv PL_compiling PL_comppad
syn keyword xsMacro PL_comppad_name PL_comppad_name_fill
syn keyword xsMacro PL_comppad_name_floor PL_constpadix PL_cop_seqmax
syn keyword xsMacro PL_cryptseen PL_cshlen PL_csighandlerp PL_curcop
syn keyword xsMacro PL_curcopdb PL_curinterp PL_curpad PL_curpm PL_curstack
syn keyword xsMacro PL_curstackinfo PL_curstash PL_curstname
syn keyword xsMacro PL_custom_op_descs PL_custom_op_names PL_custom_ops
syn keyword xsMacro PL_cv_has_eval PL_dbargs PL_debstash PL_debug
syn keyword xsMacro PL_debug_pad PL_def_layerlist PL_defgv PL_defoutgv
syn keyword xsMacro PL_defstash PL_delaymagic PL_delaymagic_egid
syn keyword xsMacro PL_delaymagic_euid PL_delaymagic_gid PL_delaymagic_uid
syn keyword xsMacro PL_destroyhook PL_diehook PL_dirty PL_do_undump
syn keyword xsMacro PL_dollarzero_mutex PL_doswitches PL_dowarn PL_dumper_fd
syn keyword xsMacro PL_dumpindent PL_e_script PL_efloatbuf PL_efloatsize
syn keyword xsMacro PL_encoding PL_endav PL_envgv PL_errgv PL_errors
syn keyword xsMacro PL_eval_root PL_eval_start PL_evalseq PL_exit_flags
syn keyword xsMacro PL_exitlist PL_exitlistlen PL_fdpid PL_filemode
syn keyword xsMacro PL_firstgv PL_forkprocess PL_formtarget PL_generation
syn keyword xsMacro PL_gensym PL_globalstash PL_globhook PL_hash_rand_bits
syn keyword xsMacro PL_hash_rand_bits_enabled PL_hash_seed PL_hash_seed_set
syn keyword xsMacro PL_hintgv PL_hints PL_hints_mutex PL_hv_fetch_ent_mh
syn keyword xsMacro PL_in_clean_all PL_in_clean_objs PL_in_eval
syn keyword xsMacro PL_in_load_module PL_in_utf8_CTYPE_locale PL_incgv
syn keyword xsMacro PL_initav PL_inplace PL_isarev PL_keyword_plugin
syn keyword xsMacro PL_known_layers PL_last_in_gv PL_last_swash_hv
syn keyword xsMacro PL_last_swash_key PL_last_swash_klen PL_last_swash_slen
syn keyword xsMacro PL_last_swash_tmps PL_lastfd PL_lastgotoprobe
syn keyword xsMacro PL_laststatval PL_laststype PL_lex_encoding PL_localizing
syn keyword xsMacro PL_localpatches PL_lockhook PL_main_cv PL_main_root
syn keyword xsMacro PL_main_start PL_mainstack PL_malloc_mutex PL_markstack
syn keyword xsMacro PL_markstack_max PL_markstack_ptr PL_max_intro_pending
syn keyword xsMacro PL_maxo PL_maxsysfd PL_memory_debug_header PL_mess_sv
syn keyword xsMacro PL_min_intro_pending PL_minus_E PL_minus_F PL_minus_a
syn keyword xsMacro PL_minus_c PL_minus_l PL_minus_n PL_minus_p
syn keyword xsMacro PL_mmap_page_size PL_modcount PL_modglobal
syn keyword xsMacro PL_multideref_pc PL_my_ctx_mutex PL_my_cxt_index
syn keyword xsMacro PL_my_cxt_keys PL_my_cxt_list PL_my_cxt_size PL_nomemok
syn keyword xsMacro PL_numeric_local PL_numeric_name PL_numeric_radix_sv
syn keyword xsMacro PL_numeric_standard PL_ofsgv PL_oldname PL_op
syn keyword xsMacro PL_op_exec_cnt PL_op_mask PL_op_mutex PL_op_seq
syn keyword xsMacro PL_op_sequence PL_opfreehook PL_origalen PL_origargc
syn keyword xsMacro PL_origargv PL_origenviron PL_origfilename PL_ors_sv
syn keyword xsMacro PL_osname PL_pad_reset_pending PL_padix PL_padix_floor
syn keyword xsMacro PL_padlist_generation PL_padname_const PL_padname_undef
syn keyword xsMacro PL_parser PL_patchlevel PL_peepp PL_perl_destruct_level
syn keyword xsMacro PL_perldb PL_perlio PL_perlio_debug_fd
syn keyword xsMacro PL_perlio_fd_refcnt PL_perlio_fd_refcnt_size
syn keyword xsMacro PL_perlio_mutex PL_phase PL_pidstatus PL_preambleav
syn keyword xsMacro PL_profiledata PL_psig_name PL_psig_pend PL_psig_ptr
syn keyword xsMacro PL_ptr_table PL_random_state PL_reentrant_buffer
syn keyword xsMacro PL_reentrant_retint PL_reg_curpm PL_regex_pad
syn keyword xsMacro PL_regex_padav PL_registered_mros PL_regmatch_slab
syn keyword xsMacro PL_regmatch_state PL_replgv PL_restartjmpenv PL_restartop
syn keyword xsMacro PL_rpeepp PL_rs PL_runops PL_savebegin PL_savestack
syn keyword xsMacro PL_savestack_ix PL_savestack_max PL_sawalias
syn keyword xsMacro PL_sawampersand PL_scopestack PL_scopestack_ix
syn keyword xsMacro PL_scopestack_max PL_scopestack_name PL_secondgv
syn keyword xsMacro PL_sharehook PL_sig_defaulting PL_sig_handlers_initted
syn keyword xsMacro PL_sig_ignoring PL_sig_pending PL_sig_trapped
syn keyword xsMacro PL_sigfpe_saved PL_sighandlerp PL_signalhook PL_signals
syn keyword xsMacro PL_sort_RealCmp PL_sortcop PL_sortstash PL_splitstr
syn keyword xsMacro PL_srand_called PL_stack_base PL_stack_max PL_stack_sp
syn keyword xsMacro PL_start_env PL_stashcache PL_stashpad PL_stashpadix
syn keyword xsMacro PL_stashpadmax PL_statbuf PL_statcache PL_statgv
syn keyword xsMacro PL_statname PL_statusvalue PL_statusvalue_posix
syn keyword xsMacro PL_statusvalue_vms PL_stderrgv PL_stdingv PL_strtab
syn keyword xsMacro PL_sub_generation PL_subline PL_subname PL_sv_arenaroot
syn keyword xsMacro PL_sv_consts PL_sv_count PL_sv_no PL_sv_placeholder
syn keyword xsMacro PL_sv_root PL_sv_serial PL_sv_undef PL_sv_yes
syn keyword xsMacro PL_sys_intern PL_taint_warn PL_tainted PL_tainting
syn keyword xsMacro PL_thr_key PL_threadhook PL_timesbase PL_timesbuf
syn keyword xsMacro PL_tmps_floor PL_tmps_ix PL_tmps_max PL_tmps_stack
syn keyword xsMacro PL_top_env PL_toptarget PL_unicode PL_unitcheckav
syn keyword xsMacro PL_unitcheckav_save PL_unlockhook PL_unsafe
syn keyword xsMacro PL_use_safe_putenv PL_utf8_charname_begin
syn keyword xsMacro PL_utf8_charname_continue PL_utf8_foldable
syn keyword xsMacro PL_utf8_foldclosures PL_utf8_idcont PL_utf8_idstart
syn keyword xsMacro PL_utf8_mark PL_utf8_perl_idcont PL_utf8_perl_idstart
syn keyword xsMacro PL_utf8_swash_ptrs PL_utf8_tofold PL_utf8_tolower
syn keyword xsMacro PL_utf8_totitle PL_utf8_toupper PL_utf8_xidcont
syn keyword xsMacro PL_utf8_xidstart PL_utf8cache PL_utf8locale
syn keyword xsMacro PL_veto_cleanup PL_vtbl_arylen PL_vtbl_arylen_p
syn keyword xsMacro PL_vtbl_backref PL_vtbl_bm PL_vtbl_checkcall
syn keyword xsMacro PL_vtbl_collxfrm PL_vtbl_dbline PL_vtbl_debugvar
syn keyword xsMacro PL_vtbl_defelem PL_vtbl_env PL_vtbl_envelem PL_vtbl_fm
syn keyword xsMacro PL_vtbl_hints PL_vtbl_hintselem PL_vtbl_isa
syn keyword xsMacro PL_vtbl_isaelem PL_vtbl_lvref PL_vtbl_mglob PL_vtbl_nkeys
syn keyword xsMacro PL_vtbl_ovrld PL_vtbl_pack PL_vtbl_packelem PL_vtbl_pos
syn keyword xsMacro PL_vtbl_regdata PL_vtbl_regdatum PL_vtbl_regexp
syn keyword xsMacro PL_vtbl_sigelem PL_vtbl_substr PL_vtbl_sv PL_vtbl_taint
syn keyword xsMacro PL_vtbl_utf8 PL_vtbl_uvar PL_vtbl_vec PL_warn_locale
syn keyword xsMacro PL_warnhook PL_watch_pvx PL_watchaddr PL_watchok
syn keyword xsMacro PL_xsubfilename PMFUNC PM_GETRE PM_SETRE PMf_BASE_SHIFT
syn keyword xsMacro PMf_CHARSET PMf_CODELIST_PRIVATE PMf_CONST PMf_CONTINUE
syn keyword xsMacro PMf_EVAL PMf_EXTENDED PMf_EXTENDED_MORE PMf_FOLD
syn keyword xsMacro PMf_GLOBAL PMf_HAS_CV PMf_IS_QR PMf_KEEP PMf_KEEPCOPY
syn keyword xsMacro PMf_MULTILINE PMf_NOCAPTURE PMf_NONDESTRUCT PMf_ONCE
syn keyword xsMacro PMf_RETAINT PMf_SINGLELINE PMf_SPLIT PMf_STRICT PMf_USED
syn keyword xsMacro PMf_USE_RE_EVAL PNf PNfARG POPBLOCK POPEVAL POPFORMAT
syn keyword xsMacro POPLOOP POPMARK POPSTACK POPSTACK_TO POPSUB POPSUBST
syn keyword xsMacro POP_MULTICALL POP_SAVEARRAY POPi POPl POPn POPp POPpbytex
syn keyword xsMacro POPpconstx POPpx POPs POPu POPul POSIXA POSIXD POSIXL
syn keyword xsMacro POSIXU POSIX_CC_COUNT POSIX_SWASH_COUNT POSTDEC POSTINC
syn keyword xsMacro POSTJOIN POWOP PP PREC_LOW PREDEC PREGf_ANCH
syn keyword xsMacro PREGf_ANCH_GPOS PREGf_ANCH_MBOL PREGf_ANCH_SBOL
syn keyword xsMacro PREGf_CANY_SEEN PREGf_CUTGROUP_SEEN PREGf_GPOS_FLOAT
syn keyword xsMacro PREGf_GPOS_SEEN PREGf_IMPLICIT PREGf_NAUGHTY PREGf_NOSCAN
syn keyword xsMacro PREGf_SKIP PREGf_USE_RE_EVAL PREGf_VERBARG_SEEN PREINC
syn keyword xsMacro PRESCAN_VERSION PREVOPER PRINTF_FORMAT_NULL_OK PRIVATEREF
syn keyword xsMacro PRIVLIB PRIVLIB_EXP PRIVSHIFT PROCSELFEXE_PATH PRUNE
syn keyword xsMacro PSEUDO PTHREAD_ATFORK PTHREAD_ATTR_SETDETACHSTATE
syn keyword xsMacro PTHREAD_CREATE PTHREAD_CREATE_JOINABLE
syn keyword xsMacro PTHREAD_GETSPECIFIC PTHREAD_GETSPECIFIC_INT PTR2IV PTR2NV
syn keyword xsMacro PTR2UV PTR2nat PTR2ul PTRSIZE PTRV PUSHBLOCK PUSHEVAL
syn keyword xsMacro PUSHFORMAT PUSHGIVEN PUSHLOOP_FOR PUSHLOOP_PLAIN PUSHMARK
syn keyword xsMacro PUSHSTACK PUSHSTACKi PUSHSUB PUSHSUBST PUSHSUB_BASE
syn keyword xsMacro PUSHSUB_DB PUSHSUB_GET_LVALUE_MASK PUSHTARG PUSHWHEN
syn keyword xsMacro PUSH_MULTICALL PUSH_MULTICALL_FLAGS PUSHi PUSHmortal
syn keyword xsMacro PUSHn PUSHp PUSHs PUSHu PUTBACK PWGECOS PWPASSWD PadARRAY
syn keyword xsMacro PadMAX PadlistARRAY PadlistMAX PadlistNAMES
syn keyword xsMacro PadlistNAMESARRAY PadlistNAMESMAX PadlistREFCNT
syn keyword xsMacro PadnameFLAGS PadnameIsOUR PadnameIsSTATE
syn keyword xsMacro PadnameIsSTATE_on PadnameLEN PadnameLVALUE
syn keyword xsMacro PadnameLVALUE_on PadnameOURSTASH PadnameOURSTASH_set
syn keyword xsMacro PadnameOUTER PadnamePROTOCV PadnamePV PadnameREFCNT
syn keyword xsMacro PadnameREFCNT_dec PadnameSV PadnameTYPE PadnameTYPE_set
syn keyword xsMacro PadnameUTF8 PadnamelistARRAY PadnamelistMAX
syn keyword xsMacro PadnamelistMAXNAMED PadnamelistREFCNT
syn keyword xsMacro PadnamelistREFCNT_dec Pause PeRl_CaTiFy PeRl_INT64_C
syn keyword xsMacro PeRl_StGiFy PeRl_UINT64_C PerlDir_chdir PerlDir_close
syn keyword xsMacro PerlDir_mapA PerlDir_mapW PerlDir_mkdir PerlDir_open
syn keyword xsMacro PerlDir_read PerlDir_rewind PerlDir_rmdir PerlDir_seek
syn keyword xsMacro PerlDir_tell PerlEnv_ENVgetenv PerlEnv_ENVgetenv_len
syn keyword xsMacro PerlEnv_clearenv PerlEnv_free_childdir
syn keyword xsMacro PerlEnv_free_childenv PerlEnv_get_child_IO
syn keyword xsMacro PerlEnv_get_childdir PerlEnv_get_childenv PerlEnv_getenv
syn keyword xsMacro PerlEnv_getenv_len PerlEnv_lib_path PerlEnv_os_id
syn keyword xsMacro PerlEnv_putenv PerlEnv_sitelib_path PerlEnv_uname
syn keyword xsMacro PerlEnv_vendorlib_path PerlIOArg PerlIOBase PerlIONext
syn keyword xsMacro PerlIOSelf PerlIOValid PerlIO_canset_cnt
syn keyword xsMacro PerlIO_exportFILE PerlIO_fast_gets PerlIO_fdopen
syn keyword xsMacro PerlIO_findFILE PerlIO_getc PerlIO_getname
syn keyword xsMacro PerlIO_has_base PerlIO_has_cntptr PerlIO_importFILE
syn keyword xsMacro PerlIO_isutf8 PerlIO_open PerlIO_printf PerlIO_putc
syn keyword xsMacro PerlIO_puts PerlIO_releaseFILE PerlIO_reopen
syn keyword xsMacro PerlIO_rewind PerlIO_stdoutf PerlIO_tmpfile PerlIO_ungetc
syn keyword xsMacro PerlIO_vprintf PerlLIO_access PerlLIO_chmod PerlLIO_chown
syn keyword xsMacro PerlLIO_chsize PerlLIO_close PerlLIO_dup PerlLIO_dup2
syn keyword xsMacro PerlLIO_flock PerlLIO_fstat PerlLIO_ioctl PerlLIO_isatty
syn keyword xsMacro PerlLIO_link PerlLIO_lseek PerlLIO_lstat PerlLIO_mkstemp
syn keyword xsMacro PerlLIO_mktemp PerlLIO_open PerlLIO_open3 PerlLIO_read
syn keyword xsMacro PerlLIO_rename PerlLIO_setmode PerlLIO_stat
syn keyword xsMacro PerlLIO_tmpnam PerlLIO_umask PerlLIO_unlink PerlLIO_utime
syn keyword xsMacro PerlLIO_write PerlMemParse_calloc PerlMemParse_free
syn keyword xsMacro PerlMemParse_free_lock PerlMemParse_get_lock
syn keyword xsMacro PerlMemParse_is_locked PerlMemParse_malloc
syn keyword xsMacro PerlMemParse_realloc PerlMemShared_calloc
syn keyword xsMacro PerlMemShared_free PerlMemShared_free_lock
syn keyword xsMacro PerlMemShared_get_lock PerlMemShared_is_locked
syn keyword xsMacro PerlMemShared_malloc PerlMemShared_realloc PerlMem_calloc
syn keyword xsMacro PerlMem_free PerlMem_free_lock PerlMem_get_lock
syn keyword xsMacro PerlMem_is_locked PerlMem_malloc PerlMem_realloc
syn keyword xsMacro PerlProc_DynaLoad PerlProc_GetOSError PerlProc__exit
syn keyword xsMacro PerlProc_abort PerlProc_crypt PerlProc_execl
syn keyword xsMacro PerlProc_execv PerlProc_execvp PerlProc_exit
syn keyword xsMacro PerlProc_fork PerlProc_getegid PerlProc_geteuid
syn keyword xsMacro PerlProc_getgid PerlProc_getlogin PerlProc_getpid
syn keyword xsMacro PerlProc_gettimeofday PerlProc_getuid PerlProc_kill
syn keyword xsMacro PerlProc_killpg PerlProc_lasthost PerlProc_longjmp
syn keyword xsMacro PerlProc_pause PerlProc_pclose PerlProc_pipe
syn keyword xsMacro PerlProc_popen PerlProc_popen_list PerlProc_setgid
syn keyword xsMacro PerlProc_setjmp PerlProc_setuid PerlProc_signal
syn keyword xsMacro PerlProc_sleep PerlProc_spawnvp PerlProc_times
syn keyword xsMacro PerlProc_wait PerlProc_waitpid PerlSIO_canset_cnt
syn keyword xsMacro PerlSIO_clearerr PerlSIO_fast_gets PerlSIO_fclose
syn keyword xsMacro PerlSIO_fdopen PerlSIO_fdupopen PerlSIO_feof
syn keyword xsMacro PerlSIO_ferror PerlSIO_fflush PerlSIO_fgetc
syn keyword xsMacro PerlSIO_fgetpos PerlSIO_fgets PerlSIO_fileno
syn keyword xsMacro PerlSIO_fopen PerlSIO_fputc PerlSIO_fputs PerlSIO_fread
syn keyword xsMacro PerlSIO_freopen PerlSIO_fseek PerlSIO_fsetpos
syn keyword xsMacro PerlSIO_ftell PerlSIO_fwrite PerlSIO_get_base
syn keyword xsMacro PerlSIO_get_bufsiz PerlSIO_get_cnt PerlSIO_get_ptr
syn keyword xsMacro PerlSIO_has_base PerlSIO_has_cntptr PerlSIO_init
syn keyword xsMacro PerlSIO_printf PerlSIO_rewind PerlSIO_set_cnt
syn keyword xsMacro PerlSIO_set_ptr PerlSIO_setbuf PerlSIO_setlinebuf
syn keyword xsMacro PerlSIO_setvbuf PerlSIO_stderr PerlSIO_stdin
syn keyword xsMacro PerlSIO_stdout PerlSIO_stdoutf PerlSIO_tmpfile
syn keyword xsMacro PerlSIO_ungetc PerlSIO_vprintf PerlSock_accept
syn keyword xsMacro PerlSock_bind PerlSock_closesocket PerlSock_connect
syn keyword xsMacro PerlSock_endhostent PerlSock_endnetent
syn keyword xsMacro PerlSock_endprotoent PerlSock_endservent
syn keyword xsMacro PerlSock_gethostbyaddr PerlSock_gethostbyname
syn keyword xsMacro PerlSock_gethostent PerlSock_gethostname
syn keyword xsMacro PerlSock_getnetbyaddr PerlSock_getnetbyname
syn keyword xsMacro PerlSock_getnetent PerlSock_getpeername
syn keyword xsMacro PerlSock_getprotobyname PerlSock_getprotobynumber
syn keyword xsMacro PerlSock_getprotoent PerlSock_getservbyname
syn keyword xsMacro PerlSock_getservbyport PerlSock_getservent
syn keyword xsMacro PerlSock_getsockname PerlSock_getsockopt PerlSock_htonl
syn keyword xsMacro PerlSock_htons PerlSock_inet_addr PerlSock_inet_ntoa
syn keyword xsMacro PerlSock_listen PerlSock_ntohl PerlSock_ntohs
syn keyword xsMacro PerlSock_recv PerlSock_recvfrom PerlSock_select
syn keyword xsMacro PerlSock_send PerlSock_sendto PerlSock_sethostent
syn keyword xsMacro PerlSock_setnetent PerlSock_setprotoent
syn keyword xsMacro PerlSock_setservent PerlSock_setsockopt PerlSock_shutdown
syn keyword xsMacro PerlSock_socket PerlSock_socketpair Perl_acos Perl_asin
syn keyword xsMacro Perl_assert Perl_atan Perl_atan2 Perl_atof Perl_atof2
syn keyword xsMacro Perl_ceil Perl_cos Perl_cosh Perl_custom_op_xop
syn keyword xsMacro Perl_debug_log Perl_drand48 Perl_drand48_init
syn keyword xsMacro Perl_error_log Perl_exp Perl_floor Perl_fmod
syn keyword xsMacro Perl_fp_class_denorm Perl_fp_class_inf Perl_fp_class_nan
syn keyword xsMacro Perl_fp_class_ndenorm Perl_fp_class_ninf
syn keyword xsMacro Perl_fp_class_nnorm Perl_fp_class_norm
syn keyword xsMacro Perl_fp_class_nzero Perl_fp_class_pdenorm
syn keyword xsMacro Perl_fp_class_pinf Perl_fp_class_pnorm
syn keyword xsMacro Perl_fp_class_pzero Perl_fp_class_qnan Perl_fp_class_snan
syn keyword xsMacro Perl_fp_class_zero Perl_free_c_backtrace Perl_frexp
syn keyword xsMacro Perl_isfinite Perl_isfinitel Perl_isinf Perl_isnan
syn keyword xsMacro Perl_ldexp Perl_log Perl_log10 Perl_malloc_good_size
syn keyword xsMacro Perl_modf Perl_pow Perl_pp_accept Perl_pp_aelemfast_lex
syn keyword xsMacro Perl_pp_andassign Perl_pp_avalues Perl_pp_bind
syn keyword xsMacro Perl_pp_bit_xor Perl_pp_chmod Perl_pp_chomp
syn keyword xsMacro Perl_pp_connect Perl_pp_cos Perl_pp_custom
syn keyword xsMacro Perl_pp_dbmclose Perl_pp_dofile Perl_pp_dor
syn keyword xsMacro Perl_pp_dorassign Perl_pp_dump Perl_pp_egrent
syn keyword xsMacro Perl_pp_enetent Perl_pp_eprotoent Perl_pp_epwent
syn keyword xsMacro Perl_pp_eservent Perl_pp_exp Perl_pp_fcntl
syn keyword xsMacro Perl_pp_ftatime Perl_pp_ftbinary Perl_pp_ftblk
syn keyword xsMacro Perl_pp_ftchr Perl_pp_ftctime Perl_pp_ftdir
syn keyword xsMacro Perl_pp_fteexec Perl_pp_fteowned Perl_pp_fteread
syn keyword xsMacro Perl_pp_ftewrite Perl_pp_ftfile Perl_pp_ftmtime
syn keyword xsMacro Perl_pp_ftpipe Perl_pp_ftrexec Perl_pp_ftrwrite
syn keyword xsMacro Perl_pp_ftsgid Perl_pp_ftsize Perl_pp_ftsock
syn keyword xsMacro Perl_pp_ftsuid Perl_pp_ftsvtx Perl_pp_ftzero
syn keyword xsMacro Perl_pp_getpeername Perl_pp_getsockname Perl_pp_ggrgid
syn keyword xsMacro Perl_pp_ggrnam Perl_pp_ghbyaddr Perl_pp_ghbyname
syn keyword xsMacro Perl_pp_gnbyaddr Perl_pp_gnbyname Perl_pp_gpbyname
syn keyword xsMacro Perl_pp_gpbynumber Perl_pp_gpwnam Perl_pp_gpwuid
syn keyword xsMacro Perl_pp_gsbyname Perl_pp_gsbyport Perl_pp_gsockopt
syn keyword xsMacro Perl_pp_hex Perl_pp_i_postdec Perl_pp_i_postinc
syn keyword xsMacro Perl_pp_i_predec Perl_pp_i_preinc Perl_pp_keys
syn keyword xsMacro Perl_pp_kill Perl_pp_lcfirst Perl_pp_lineseq
syn keyword xsMacro Perl_pp_listen Perl_pp_localtime Perl_pp_log
syn keyword xsMacro Perl_pp_lstat Perl_pp_mapstart Perl_pp_msgctl
syn keyword xsMacro Perl_pp_msgget Perl_pp_msgrcv Perl_pp_msgsnd
syn keyword xsMacro Perl_pp_nbit_xor Perl_pp_orassign Perl_pp_padany
syn keyword xsMacro Perl_pp_pop Perl_pp_postdec Perl_pp_predec Perl_pp_reach
syn keyword xsMacro Perl_pp_read Perl_pp_recv Perl_pp_regcmaybe
syn keyword xsMacro Perl_pp_rindex Perl_pp_rv2hv Perl_pp_rvalues Perl_pp_say
syn keyword xsMacro Perl_pp_sbit_xor Perl_pp_scalar Perl_pp_schomp
syn keyword xsMacro Perl_pp_scope Perl_pp_seek Perl_pp_semop Perl_pp_send
syn keyword xsMacro Perl_pp_sge Perl_pp_sgrent Perl_pp_sgt Perl_pp_shmctl
syn keyword xsMacro Perl_pp_shmget Perl_pp_shmread Perl_pp_shutdown
syn keyword xsMacro Perl_pp_slt Perl_pp_snetent Perl_pp_socket
syn keyword xsMacro Perl_pp_sprotoent Perl_pp_spwent Perl_pp_sqrt
syn keyword xsMacro Perl_pp_sservent Perl_pp_ssockopt Perl_pp_symlink
syn keyword xsMacro Perl_pp_transr Perl_pp_unlink Perl_pp_utime
syn keyword xsMacro Perl_pp_values Perl_safesysmalloc_size Perl_sharepvn
syn keyword xsMacro Perl_signbit Perl_sin Perl_sinh Perl_sqrt Perl_strtod
syn keyword xsMacro Perl_tan Perl_tanh Perl_va_copy PmopSTASH PmopSTASHPV
syn keyword xsMacro PmopSTASHPV_set PmopSTASH_set Poison PoisonFree PoisonNew
syn keyword xsMacro PoisonPADLIST PoisonWith QR_PAT_MODS QUADKIND QUAD_IS_INT
syn keyword xsMacro QUAD_IS_INT64_T QUAD_IS_LONG QUAD_IS_LONG_LONG
syn keyword xsMacro QUAD_IS___INT64 QUESTION_MARK_CTRL QWLIST RANDBITS
syn keyword xsMacro RANDOM_R_PROTO RD_NODATA READDIR64_R_PROTO
syn keyword xsMacro READDIR_R_PROTO READ_XDIGIT REENTRANT_PROTO_B_B
syn keyword xsMacro REENTRANT_PROTO_B_BI REENTRANT_PROTO_B_BW
syn keyword xsMacro REENTRANT_PROTO_B_CCD REENTRANT_PROTO_B_CCS
syn keyword xsMacro REENTRANT_PROTO_B_IBI REENTRANT_PROTO_B_IBW
syn keyword xsMacro REENTRANT_PROTO_B_SB REENTRANT_PROTO_B_SBI
syn keyword xsMacro REENTRANT_PROTO_I_BI REENTRANT_PROTO_I_BW
syn keyword xsMacro REENTRANT_PROTO_I_CCSBWR REENTRANT_PROTO_I_CCSD
syn keyword xsMacro REENTRANT_PROTO_I_CII REENTRANT_PROTO_I_CIISD
syn keyword xsMacro REENTRANT_PROTO_I_CSBI REENTRANT_PROTO_I_CSBIR
syn keyword xsMacro REENTRANT_PROTO_I_CSBWR REENTRANT_PROTO_I_CSBWRE
syn keyword xsMacro REENTRANT_PROTO_I_CSD REENTRANT_PROTO_I_CWISBWRE
syn keyword xsMacro REENTRANT_PROTO_I_CWISD REENTRANT_PROTO_I_D
syn keyword xsMacro REENTRANT_PROTO_I_H REENTRANT_PROTO_I_IBI
syn keyword xsMacro REENTRANT_PROTO_I_IBW REENTRANT_PROTO_I_ICBI
syn keyword xsMacro REENTRANT_PROTO_I_ICSBWR REENTRANT_PROTO_I_ICSD
syn keyword xsMacro REENTRANT_PROTO_I_ID REENTRANT_PROTO_I_IISD
syn keyword xsMacro REENTRANT_PROTO_I_ISBWR REENTRANT_PROTO_I_ISD
syn keyword xsMacro REENTRANT_PROTO_I_LISBI REENTRANT_PROTO_I_LISD
syn keyword xsMacro REENTRANT_PROTO_I_SB REENTRANT_PROTO_I_SBI
syn keyword xsMacro REENTRANT_PROTO_I_SBIE REENTRANT_PROTO_I_SBIH
syn keyword xsMacro REENTRANT_PROTO_I_SBIR REENTRANT_PROTO_I_SBWR
syn keyword xsMacro REENTRANT_PROTO_I_SBWRE REENTRANT_PROTO_I_SD
syn keyword xsMacro REENTRANT_PROTO_I_TISD REENTRANT_PROTO_I_TS
syn keyword xsMacro REENTRANT_PROTO_I_TSBI REENTRANT_PROTO_I_TSBIR
syn keyword xsMacro REENTRANT_PROTO_I_TSBWR REENTRANT_PROTO_I_TSR
syn keyword xsMacro REENTRANT_PROTO_I_TsISBWRE REENTRANT_PROTO_I_UISBWRE
syn keyword xsMacro REENTRANT_PROTO_I_uISBWRE REENTRANT_PROTO_S_CBI
syn keyword xsMacro REENTRANT_PROTO_S_CCSBI REENTRANT_PROTO_S_CIISBIE
syn keyword xsMacro REENTRANT_PROTO_S_CSBI REENTRANT_PROTO_S_CSBIE
syn keyword xsMacro REENTRANT_PROTO_S_CWISBIE REENTRANT_PROTO_S_CWISBWIE
syn keyword xsMacro REENTRANT_PROTO_S_ICSBI REENTRANT_PROTO_S_ISBI
syn keyword xsMacro REENTRANT_PROTO_S_LISBI REENTRANT_PROTO_S_SBI
syn keyword xsMacro REENTRANT_PROTO_S_SBIE REENTRANT_PROTO_S_SBW
syn keyword xsMacro REENTRANT_PROTO_S_TISBI REENTRANT_PROTO_S_TSBI
syn keyword xsMacro REENTRANT_PROTO_S_TSBIE REENTRANT_PROTO_S_TWISBIE
syn keyword xsMacro REENTRANT_PROTO_V_D REENTRANT_PROTO_V_H
syn keyword xsMacro REENTRANT_PROTO_V_ID REENTR_H REENTR_MEMZERO REF
syn keyword xsMacro REFCOUNTED_HE_EXISTS REFCOUNTED_HE_KEY_UTF8 REFF REFFA
syn keyword xsMacro REFFL REFFU REFGEN REF_HE_KEY REGMATCH_STATE_MAX
syn keyword xsMacro REGNODE_MAX REGNODE_SIMPLE REGNODE_VARIES REG_ANY
syn keyword xsMacro REG_CANY_SEEN REG_CUTGROUP_SEEN REG_EXTFLAGS_NAME_SIZE
syn keyword xsMacro REG_GOSTART_SEEN REG_GPOS_SEEN REG_INFTY
syn keyword xsMacro REG_INTFLAGS_NAME_SIZE REG_LOOKBEHIND_SEEN REG_MAGIC
syn keyword xsMacro REG_RECURSE_SEEN REG_RUN_ON_COMMENT_SEEN
syn keyword xsMacro REG_TOP_LEVEL_BRANCHES_SEEN REG_UNBOUNDED_QUANTIFIER_SEEN
syn keyword xsMacro REG_UNFOLDED_MULTI_SEEN REG_VERBARG_SEEN
syn keyword xsMacro REG_ZERO_LEN_SEEN RELOP RENUM REQUIRE RESTORE_ERRNO
syn keyword xsMacro RESTORE_LC_NUMERIC RESTORE_LC_NUMERIC_STANDARD
syn keyword xsMacro RESTORE_LC_NUMERIC_UNDERLYING RESTORE_NUMERIC_LOCAL
syn keyword xsMacro RESTORE_NUMERIC_STANDARD RETPUSHNO RETPUSHUNDEF
syn keyword xsMacro RETPUSHYES RETSETNO RETSETTARG RETSETUNDEF RETSETYES
syn keyword xsMacro RETURN RETURNOP RETURNX RETURN_PROBE REXEC_CHECKED
syn keyword xsMacro REXEC_COPY_SKIP_POST REXEC_COPY_SKIP_PRE REXEC_COPY_STR
syn keyword xsMacro REXEC_FAIL_ON_UNDERFLOW REXEC_IGNOREPOS REXEC_NOT_FIRST
syn keyword xsMacro REXEC_SCREAM RE_DEBUG_COMPILE_DUMP RE_DEBUG_COMPILE_FLAGS
syn keyword xsMacro RE_DEBUG_COMPILE_MASK RE_DEBUG_COMPILE_OPTIMISE
syn keyword xsMacro RE_DEBUG_COMPILE_PARSE RE_DEBUG_COMPILE_TEST
syn keyword xsMacro RE_DEBUG_COMPILE_TRIE RE_DEBUG_EXECUTE_INTUIT
syn keyword xsMacro RE_DEBUG_EXECUTE_MASK RE_DEBUG_EXECUTE_MATCH
syn keyword xsMacro RE_DEBUG_EXECUTE_TRIE RE_DEBUG_EXTRA_BUFFERS
syn keyword xsMacro RE_DEBUG_EXTRA_GPOS RE_DEBUG_EXTRA_MASK
syn keyword xsMacro RE_DEBUG_EXTRA_OFFDEBUG RE_DEBUG_EXTRA_OFFSETS
syn keyword xsMacro RE_DEBUG_EXTRA_OPTIMISE RE_DEBUG_EXTRA_STACK
syn keyword xsMacro RE_DEBUG_EXTRA_STATE RE_DEBUG_EXTRA_TRIE RE_DEBUG_FLAG
syn keyword xsMacro RE_DEBUG_FLAGS RE_PV_COLOR_DECL RE_PV_QUOTED_DECL
syn keyword xsMacro RE_SV_DUMPLEN RE_SV_ESCAPE RE_SV_TAIL
syn keyword xsMacro RE_TRACK_PATTERN_OFFSETS RE_TRIE_MAXBUF_INIT
syn keyword xsMacro RE_TRIE_MAXBUF_NAME RMS_DIR RMS_FAC RMS_FEX RMS_FNF
syn keyword xsMacro RMS_IFI RMS_ISI RMS_PRV ROTL32 ROTL64 ROTL_UV
syn keyword xsMacro RUNOPS_DEFAULT RV2CVOPCV_FLAG_MASK RV2CVOPCV_MARK_EARLY
syn keyword xsMacro RV2CVOPCV_MAYBE_NAME_GV RV2CVOPCV_RETURN_NAME_GV
syn keyword xsMacro RV2CVOPCV_RETURN_STUB RX_ANCHORED_SUBSTR RX_ANCHORED_UTF8
syn keyword xsMacro RX_BUFF_IDX_CARET_FULLMATCH RX_BUFF_IDX_CARET_POSTMATCH
syn keyword xsMacro RX_BUFF_IDX_CARET_PREMATCH RX_BUFF_IDX_FULLMATCH
syn keyword xsMacro RX_BUFF_IDX_POSTMATCH RX_BUFF_IDX_PREMATCH
syn keyword xsMacro RX_CHECK_SUBSTR RX_COMPFLAGS RX_ENGINE RX_EXTFLAGS
syn keyword xsMacro RX_FLOAT_SUBSTR RX_FLOAT_UTF8 RX_GOFS RX_HAS_CUTGROUP
syn keyword xsMacro RX_INTFLAGS RX_ISTAINTED RX_LASTCLOSEPAREN RX_LASTPAREN
syn keyword xsMacro RX_MATCH_COPIED RX_MATCH_COPIED_off RX_MATCH_COPIED_on
syn keyword xsMacro RX_MATCH_COPIED_set RX_MATCH_COPY_FREE RX_MATCH_TAINTED
syn keyword xsMacro RX_MATCH_TAINTED_off RX_MATCH_TAINTED_on
syn keyword xsMacro RX_MATCH_TAINTED_set RX_MATCH_UTF8 RX_MATCH_UTF8_off
syn keyword xsMacro RX_MATCH_UTF8_on RX_MATCH_UTF8_set RX_MINLEN RX_MINLENRET
syn keyword xsMacro RX_NPARENS RX_OFFS RX_PRECOMP RX_PRECOMP_const RX_PRELEN
syn keyword xsMacro RX_REFCNT RX_SAVED_COPY RX_SUBBEG RX_SUBCOFFSET RX_SUBLEN
syn keyword xsMacro RX_SUBOFFSET RX_TAINT_on RX_UTF8 RX_WRAPLEN RX_WRAPPED
syn keyword xsMacro RX_WRAPPED_const RX_ZERO_LEN RXapif_ALL RXapif_CLEAR
syn keyword xsMacro RXapif_DELETE RXapif_EXISTS RXapif_FETCH RXapif_FIRSTKEY
syn keyword xsMacro RXapif_NEXTKEY RXapif_ONE RXapif_REGNAME RXapif_REGNAMES
syn keyword xsMacro RXapif_REGNAMES_COUNT RXapif_SCALAR RXapif_STORE
syn keyword xsMacro RXf_BASE_SHIFT RXf_CHECK_ALL RXf_COPY_DONE RXf_EVAL_SEEN
syn keyword xsMacro RXf_INTUIT_TAIL RXf_IS_ANCHORED RXf_MATCH_UTF8
syn keyword xsMacro RXf_NO_INPLACE_SUBST RXf_NULL RXf_PMf_CHARSET
syn keyword xsMacro RXf_PMf_COMPILETIME RXf_PMf_EXTENDED
syn keyword xsMacro RXf_PMf_EXTENDED_MORE RXf_PMf_FLAGCOPYMASK RXf_PMf_FOLD
syn keyword xsMacro RXf_PMf_KEEPCOPY RXf_PMf_MULTILINE RXf_PMf_NOCAPTURE
syn keyword xsMacro RXf_PMf_SINGLELINE RXf_PMf_SPLIT RXf_PMf_STD_PMMOD
syn keyword xsMacro RXf_PMf_STD_PMMOD_SHIFT RXf_PMf_STRICT RXf_SKIPWHITE
syn keyword xsMacro RXf_SPLIT RXf_START_ONLY RXf_TAINTED RXf_TAINTED_SEEN
syn keyword xsMacro RXf_UNBOUNDED_QUANTIFIER_SEEN RXf_USE_INTUIT
syn keyword xsMacro RXf_USE_INTUIT_ML RXf_USE_INTUIT_NOML RXf_WHITE RXi_GET
syn keyword xsMacro RXi_GET_DECL RXi_SET RXp_COMPFLAGS RXp_EXTFLAGS
syn keyword xsMacro RXp_INTFLAGS RXp_MATCH_COPIED RXp_MATCH_COPIED_off
syn keyword xsMacro RXp_MATCH_COPIED_on RXp_MATCH_TAINTED
syn keyword xsMacro RXp_MATCH_TAINTED_on RXp_MATCH_UTF8 RXp_PAREN_NAMES ReANY
syn keyword xsMacro ReREFCNT_dec ReREFCNT_inc Renew Renewc RsPARA RsRECORD
syn keyword xsMacro RsSIMPLE RsSNARF SAFE_TRIE_NODENUM SANY SAVEADELETE
syn keyword xsMacro SAVEBOOL SAVECLEARSV SAVECOMPILEWARNINGS SAVECOMPPAD
syn keyword xsMacro SAVECOPFILE SAVECOPFILE_FREE SAVECOPLINE
syn keyword xsMacro SAVECOPSTASH_FREE SAVEDELETE SAVEDESTRUCTOR
syn keyword xsMacro SAVEDESTRUCTOR_X SAVEFREECOPHH SAVEFREEOP SAVEFREEPADNAME
syn keyword xsMacro SAVEFREEPV SAVEFREESV SAVEGENERICPV SAVEGENERICSV
syn keyword xsMacro SAVEHDELETE SAVEHINTS SAVEI16 SAVEI32 SAVEI8 SAVEINT
syn keyword xsMacro SAVEIV SAVELONG SAVEMORTALIZESV SAVEOP
syn keyword xsMacro SAVEPADSVANDMORTALIZE SAVEPARSER SAVEPPTR SAVESETSVFLAGS
syn keyword xsMacro SAVESHAREDPV SAVESPTR SAVESTACK_POS SAVESWITCHSTACK
syn keyword xsMacro SAVETMPS SAVEVPTR SAVE_DEFSV SAVE_ERRNO SAVE_MASK
syn keyword xsMacro SAVE_TIGHT_SHIFT SAVEf_KEEPOLDELEM SAVEf_SETMAGIC
syn keyword xsMacro SAVEt_ADELETE SAVEt_AELEM SAVEt_ALLOC SAVEt_APTR
syn keyword xsMacro SAVEt_ARG0_MAX SAVEt_ARG1_MAX SAVEt_ARG2_MAX SAVEt_AV
syn keyword xsMacro SAVEt_BOOL SAVEt_CLEARPADRANGE SAVEt_CLEARSV
syn keyword xsMacro SAVEt_COMPILE_WARNINGS SAVEt_COMPPAD SAVEt_DELETE
syn keyword xsMacro SAVEt_DESTRUCTOR SAVEt_DESTRUCTOR_X SAVEt_FREECOPHH
syn keyword xsMacro SAVEt_FREEOP SAVEt_FREEPADNAME SAVEt_FREEPV SAVEt_FREESV
syn keyword xsMacro SAVEt_GENERIC_PVREF SAVEt_GENERIC_SVREF SAVEt_GP
syn keyword xsMacro SAVEt_GP_ALIASED_SV SAVEt_GVSLOT SAVEt_GVSV SAVEt_HELEM
syn keyword xsMacro SAVEt_HINTS SAVEt_HPTR SAVEt_HV SAVEt_I16 SAVEt_I32
syn keyword xsMacro SAVEt_I32_SMALL SAVEt_I8 SAVEt_INT SAVEt_INT_SMALL
syn keyword xsMacro SAVEt_ITEM SAVEt_IV SAVEt_LONG SAVEt_MORTALIZESV
syn keyword xsMacro SAVEt_NSTAB SAVEt_OP SAVEt_PADSV_AND_MORTALIZE
syn keyword xsMacro SAVEt_PARSER SAVEt_PPTR SAVEt_READONLY_OFF
syn keyword xsMacro SAVEt_REGCONTEXT SAVEt_SAVESWITCHSTACK SAVEt_SET_SVFLAGS
syn keyword xsMacro SAVEt_SHARED_PVREF SAVEt_SPTR SAVEt_STACK_POS
syn keyword xsMacro SAVEt_STRLEN SAVEt_SV SAVEt_SVREF SAVEt_VPTR
syn keyword xsMacro SAWAMPERSAND_LEFT SAWAMPERSAND_MIDDLE SAWAMPERSAND_RIGHT
syn keyword xsMacro SBOL SB_ENUM_COUNT SCAN_DEF SCAN_REPL SCAN_TR
syn keyword xsMacro SCAN_VERSION SCHED_YIELD SCOPE_SAVES_SIGNAL_MASK SEEK_CUR
syn keyword xsMacro SEEK_END SEEK_SET SELECT_MIN_BITS SEOL SETERRNO
syn keyword xsMacro SETGRENT_R_PROTO SETHOSTENT_R_PROTO SETLOCALE_R_PROTO
syn keyword xsMacro SETNETENT_R_PROTO SETPROTOENT_R_PROTO SETPWENT_R_PROTO
syn keyword xsMacro SETSERVENT_R_PROTO SETTARG SET_MARK_OFFSET
syn keyword xsMacro SET_NUMERIC_LOCAL SET_NUMERIC_STANDARD
syn keyword xsMacro SET_NUMERIC_UNDERLYING SET_THR SET_THREAD_SELF SETi SETn
syn keyword xsMacro SETp SETs SETu SHARP_S_SKIP SHIFTOP SHORTSIZE SH_PATH
syn keyword xsMacro SIGABRT SIGILL SIG_NAME SIG_NUM SIG_SIZE SINGLE_PAT_MOD
syn keyword xsMacro SIPROUND SITEARCH SITEARCH_EXP SITELIB SITELIB_EXP
syn keyword xsMacro SITELIB_STEM SIZE_ALIGN SIZE_ONLY SKIP SKIP_next
syn keyword xsMacro SKIP_next_fail SLOPPYDIVIDE SOCKET_OPEN_MODE SPAGAIN
syn keyword xsMacro SPRINTF_RETURNS_STRLEN SRAND48_R_PROTO SRANDOM_R_PROTO
syn keyword xsMacro SSCHECK SSC_MATCHES_EMPTY_STRING SSGROW SSNEW SSNEWa
syn keyword xsMacro SSNEWat SSNEWt SSPOPBOOL SSPOPDPTR SSPOPDXPTR SSPOPINT
syn keyword xsMacro SSPOPIV SSPOPLONG SSPOPPTR SSPOPUV SSPTR SSPTRt
syn keyword xsMacro SSPUSHBOOL SSPUSHDPTR SSPUSHDXPTR SSPUSHINT SSPUSHIV
syn keyword xsMacro SSPUSHLONG SSPUSHPTR SSPUSHUV SS_ACCVIO SS_ADD_BOOL
syn keyword xsMacro SS_ADD_DPTR SS_ADD_DXPTR SS_ADD_END SS_ADD_INT SS_ADD_IV
syn keyword xsMacro SS_ADD_LONG SS_ADD_PTR SS_ADD_UV SS_BUFFEROVF
syn keyword xsMacro SS_DEVOFFLINE SS_IVCHAN SS_MAXPUSH SS_NOPRIV SS_NORMAL
syn keyword xsMacro SSize_t_MAX ST STANDARD_C STAR STARTPERL START_EXTERN_C
syn keyword xsMacro START_MY_CXT STATIC STATIC_ASSERT_1 STATIC_ASSERT_2
syn keyword xsMacro STATIC_ASSERT_GLOBAL STATIC_ASSERT_STMT
syn keyword xsMacro STATUS_ALL_FAILURE STATUS_ALL_SUCCESS STATUS_CURRENT
syn keyword xsMacro STATUS_EXIT STATUS_EXIT_SET STATUS_NATIVE
syn keyword xsMacro STATUS_NATIVE_CHILD_SET STATUS_UNIX STATUS_UNIX_EXIT_SET
syn keyword xsMacro STATUS_UNIX_SET STDCHAR STDIO_STREAM_ARRAY STD_PAT_MODS
syn keyword xsMacro STD_PMMOD_FLAGS_CLEAR STD_PMMOD_FLAGS_PARSE_X_WARN
syn keyword xsMacro STMT_END STMT_START STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
syn keyword xsMacro STORE_LC_NUMERIC_SET_TO_NEEDED
syn keyword xsMacro STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING
syn keyword xsMacro STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD
syn keyword xsMacro STORE_NUMERIC_LOCAL_SET_STANDARD
syn keyword xsMacro STORE_NUMERIC_STANDARD_FORCE_LOCAL
syn keyword xsMacro STORE_NUMERIC_STANDARD_SET_LOCAL STRERROR_R_PROTO STRING
syn keyword xsMacro STRINGIFY STRUCT_OFFSET STRUCT_SV STR_LEN STR_SZ
syn keyword xsMacro STR_WITH_LEN ST_INO_SIGN ST_INO_SIZE SUB
syn keyword xsMacro SUBST_TAINT_BOOLRET SUBST_TAINT_PAT SUBST_TAINT_REPL
syn keyword xsMacro SUBST_TAINT_RETAINT SUBST_TAINT_STR SUBVERSION SUCCEED
syn keyword xsMacro SUSPEND SVTYPEMASK SV_CATBYTES SV_CATUTF8
syn keyword xsMacro SV_CHECK_THINKFIRST SV_CHECK_THINKFIRST_COW_DROP SV_CONST
syn keyword xsMacro SV_CONSTS_COUNT SV_CONST_BINMODE SV_CONST_CLEAR
syn keyword xsMacro SV_CONST_CLOSE SV_CONST_DELETE SV_CONST_DESTROY
syn keyword xsMacro SV_CONST_EOF SV_CONST_EXISTS SV_CONST_EXTEND
syn keyword xsMacro SV_CONST_FETCH SV_CONST_FETCHSIZE SV_CONST_FILENO
syn keyword xsMacro SV_CONST_FIRSTKEY SV_CONST_GETC SV_CONST_NEXTKEY
syn keyword xsMacro SV_CONST_OPEN SV_CONST_POP SV_CONST_PRINT SV_CONST_PRINTF
syn keyword xsMacro SV_CONST_PUSH SV_CONST_READ SV_CONST_READLINE
syn keyword xsMacro SV_CONST_RETURN SV_CONST_SCALAR SV_CONST_SEEK
syn keyword xsMacro SV_CONST_SHIFT SV_CONST_SPLICE SV_CONST_STORE
syn keyword xsMacro SV_CONST_STORESIZE SV_CONST_TELL SV_CONST_TIEARRAY
syn keyword xsMacro SV_CONST_TIEHANDLE SV_CONST_TIEHASH SV_CONST_TIESCALAR
syn keyword xsMacro SV_CONST_UNSHIFT SV_CONST_UNTIE SV_CONST_WRITE
syn keyword xsMacro SV_COW_DROP_PV SV_COW_OTHER_PVS SV_COW_REFCNT_MAX
syn keyword xsMacro SV_COW_SHARED_HASH_KEYS SV_DO_COW_SVSETSV
syn keyword xsMacro SV_FORCE_UTF8_UPGRADE SV_GMAGIC SV_HAS_TRAILING_NUL
syn keyword xsMacro SV_IMMEDIATE_UNREF SV_MUTABLE_RETURN SV_NOSTEAL
syn keyword xsMacro SV_SAVED_COPY SV_SKIP_OVERLOAD SV_SMAGIC
syn keyword xsMacro SV_UNDEF_RETURNS_NULL SV_UTF8_NO_ENCODING SVrepl_EVAL
syn keyword xsMacro SVt_FIRST SVt_MASK SWITCHSTACK SYMBIAN SYSTEM_GMTIME_MAX
syn keyword xsMacro SYSTEM_GMTIME_MIN SYSTEM_LOCALTIME_MAX
syn keyword xsMacro SYSTEM_LOCALTIME_MIN S_IEXEC S_IFIFO S_IFMT S_IREAD
syn keyword xsMacro S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISBLK
syn keyword xsMacro S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISLNK S_ISREG S_ISSOCK
syn keyword xsMacro S_ISUID S_IWGRP S_IWOTH S_IWRITE S_IWUSR S_IXGRP S_IXOTH
syn keyword xsMacro S_IXUSR S_PAT_MODS Safefree Semctl Sigjmp_buf Siglongjmp
syn keyword xsMacro Sigsetjmp Size_t_MAX Size_t_size StGiFy StashHANDLER Stat
syn keyword xsMacro Strerror Strtol Strtoul StructCopy SvAMAGIC SvANY
syn keyword xsMacro SvCANCOW SvCANEXISTDELETE SvCOMPILED SvCOMPILED_off
syn keyword xsMacro SvCOMPILED_on SvCUR SvCUR_set SvDESTROYABLE SvEND
syn keyword xsMacro SvEND_set SvENDx SvEVALED SvEVALED_off SvEVALED_on SvFAKE
syn keyword xsMacro SvFAKE_off SvFAKE_on SvFLAGS SvGAMAGIC SvGETMAGIC SvGID
syn keyword xsMacro SvGMAGICAL SvGMAGICAL_off SvGMAGICAL_on SvGROW
syn keyword xsMacro SvGROW_mutable SvIMMORTAL SvIOK SvIOK_UV SvIOK_nog
syn keyword xsMacro SvIOK_nogthink SvIOK_notUV SvIOK_off SvIOK_on SvIOK_only
syn keyword xsMacro SvIOK_only_UV SvIOKp SvIOKp_on SvIS_FREED SvIV SvIVX
syn keyword xsMacro SvIVXx SvIV_nomg SvIV_please SvIV_please_nomg SvIV_set
syn keyword xsMacro SvIVx SvIsCOW SvIsCOW_normal SvIsCOW_off SvIsCOW_on
syn keyword xsMacro SvIsCOW_shared_hash SvIsUV SvIsUV_off SvIsUV_on SvLEN
syn keyword xsMacro SvLEN_set SvLENx SvLOCK SvMAGIC SvMAGICAL SvMAGICAL_off
syn keyword xsMacro SvMAGICAL_on SvMAGIC_set SvNIOK SvNIOK_nog
syn keyword xsMacro SvNIOK_nogthink SvNIOK_off SvNIOKp SvNOK SvNOK_nog
syn keyword xsMacro SvNOK_nogthink SvNOK_off SvNOK_on SvNOK_only SvNOKp
syn keyword xsMacro SvNOKp_on SvNV SvNVX SvNVXx SvNV_nomg SvNV_set SvNVx
syn keyword xsMacro SvOBJECT SvOBJECT_off SvOBJECT_on SvOK SvOK_off
syn keyword xsMacro SvOK_off_exc_UV SvOKp SvOOK SvOOK_off SvOOK_offset
syn keyword xsMacro SvOOK_on SvOURSTASH SvOURSTASH_set SvPADMY SvPADMY_on
syn keyword xsMacro SvPADSTALE SvPADSTALE_off SvPADSTALE_on SvPADTMP
syn keyword xsMacro SvPADTMP_off SvPADTMP_on SvPAD_OUR SvPAD_OUR_on
syn keyword xsMacro SvPAD_STATE SvPAD_STATE_on SvPAD_TYPED SvPAD_TYPED_on
syn keyword xsMacro SvPCS_IMPORTED SvPCS_IMPORTED_off SvPCS_IMPORTED_on
syn keyword xsMacro SvPEEK SvPOK SvPOK_byte_nog SvPOK_byte_nogthink
syn keyword xsMacro SvPOK_byte_pure_nogthink SvPOK_nog SvPOK_nogthink
syn keyword xsMacro SvPOK_off SvPOK_on SvPOK_only SvPOK_only_UTF8
syn keyword xsMacro SvPOK_pure_nogthink SvPOK_utf8_nog SvPOK_utf8_nogthink
syn keyword xsMacro SvPOK_utf8_pure_nogthink SvPOKp SvPOKp_on SvPV SvPVX
syn keyword xsMacro SvPVX_const SvPVX_mutable SvPVXtrue SvPVXx SvPV_const
syn keyword xsMacro SvPV_flags SvPV_flags_const SvPV_flags_const_nolen
syn keyword xsMacro SvPV_flags_mutable SvPV_force SvPV_force_flags
syn keyword xsMacro SvPV_force_flags_mutable SvPV_force_flags_nolen
syn keyword xsMacro SvPV_force_mutable SvPV_force_nolen SvPV_force_nomg
syn keyword xsMacro SvPV_force_nomg_nolen SvPV_free SvPV_mutable SvPV_nolen
syn keyword xsMacro SvPV_nolen_const SvPV_nomg SvPV_nomg_const
syn keyword xsMacro SvPV_nomg_const_nolen SvPV_nomg_nolen SvPV_renew SvPV_set
syn keyword xsMacro SvPV_shrink_to_cur SvPVbyte SvPVbyte_force SvPVbyte_nolen
syn keyword xsMacro SvPVbytex SvPVbytex_force SvPVbytex_nolen SvPVutf8
syn keyword xsMacro SvPVutf8_force SvPVutf8_nolen SvPVutf8x SvPVutf8x_force
syn keyword xsMacro SvPVx SvPVx_const SvPVx_force SvPVx_nolen
syn keyword xsMacro SvPVx_nolen_const SvREADONLY SvREADONLY_off SvREADONLY_on
syn keyword xsMacro SvREFCNT SvREFCNT_IMMORTAL SvREFCNT_dec SvREFCNT_dec_NN
syn keyword xsMacro SvREFCNT_inc SvREFCNT_inc_NN SvREFCNT_inc_simple
syn keyword xsMacro SvREFCNT_inc_simple_NN SvREFCNT_inc_simple_void
syn keyword xsMacro SvREFCNT_inc_simple_void_NN SvREFCNT_inc_void
syn keyword xsMacro SvREFCNT_inc_void_NN SvRELEASE_IVX SvRELEASE_IVX_
syn keyword xsMacro SvRMAGICAL SvRMAGICAL_off SvRMAGICAL_on SvROK SvROK_off
syn keyword xsMacro SvROK_on SvRV SvRV_const SvRV_set SvRVx SvRX SvRXOK
syn keyword xsMacro SvSCREAM SvSCREAM_off SvSCREAM_on SvSETMAGIC SvSHARE
syn keyword xsMacro SvSHARED_HASH SvSHARED_HEK_FROM_PV SvSMAGICAL
syn keyword xsMacro SvSMAGICAL_off SvSMAGICAL_on SvSTASH SvSTASH_set
syn keyword xsMacro SvSetMagicSV SvSetMagicSV_nosteal SvSetSV SvSetSV_and
syn keyword xsMacro SvSetSV_nosteal SvSetSV_nosteal_and SvTAIL SvTAIL_off
syn keyword xsMacro SvTAIL_on SvTAINT SvTAINTED SvTAINTED_off SvTAINTED_on
syn keyword xsMacro SvTEMP SvTEMP_off SvTEMP_on SvTHINKFIRST SvTIED_mg
syn keyword xsMacro SvTIED_obj SvTRUE SvTRUE_NN SvTRUE_common SvTRUE_nomg
syn keyword xsMacro SvTRUE_nomg_NN SvTRUEx SvTRUEx_nomg SvTYPE SvUID SvUNLOCK
syn keyword xsMacro SvUOK SvUOK_nog SvUOK_nogthink SvUPGRADE SvUTF8
syn keyword xsMacro SvUTF8_off SvUTF8_on SvUV SvUVX SvUVXx SvUV_nomg SvUV_set
syn keyword xsMacro SvUVx SvVALID SvVALID_off SvVALID_on SvVOK SvVSTRING_mg
syn keyword xsMacro SvWEAKREF SvWEAKREF_off SvWEAKREF_on Sv_Grow TAIL TAINT
syn keyword xsMacro TAINTING_get TAINTING_set TAINT_ENV TAINT_IF TAINT_NOT
syn keyword xsMacro TAINT_PROPER TAINT_WARN_get TAINT_WARN_set TAINT_get
syn keyword xsMacro TAINT_set THING THR THREAD_CREATE
syn keyword xsMacro THREAD_CREATE_NEEDS_STACK THREAD_POST_CREATE
syn keyword xsMacro THREAD_RET_CAST THREAD_RET_TYPE
syn keyword xsMacro TIED_METHOD_ARGUMENTS_ON_STACK
syn keyword xsMacro TIED_METHOD_MORTALIZE_NOT_NEEDED TIED_METHOD_SAY
syn keyword xsMacro TIME64_CONFIG_H TIME64_H TM TMPNAM_R_PROTO TOO_LATE_FOR
syn keyword xsMacro TOO_LATE_FOR_ TOPBLOCK TOPMARK TOPi TOPl TOPm1s TOPn TOPp
syn keyword xsMacro TOPp1s TOPpx TOPs TOPu TOPul TRIE TRIEC TRIE_BITMAP
syn keyword xsMacro TRIE_BITMAP_BYTE TRIE_BITMAP_CLEAR TRIE_BITMAP_SET
syn keyword xsMacro TRIE_BITMAP_TEST TRIE_CHARCOUNT TRIE_NODEIDX TRIE_NODENUM
syn keyword xsMacro TRIE_WORDS_OFFSET TRIE_next TRIE_next_fail TRUE
syn keyword xsMacro TTYNAME_R_PROTO TWO_BYTE_UTF8_TO_NATIVE
syn keyword xsMacro TWO_BYTE_UTF8_TO_UNI TYPE_CHARS TYPE_DIGITS Timeval
syn keyword xsMacro U16SIZE U16TYPE U16_CONST U16_MAX U16_MIN U32SIZE U32TYPE
syn keyword xsMacro U32_ALIGNMENT_REQUIRED U32_CONST U32_MAX U32_MAX_P1
syn keyword xsMacro U32_MAX_P1_HALF U32_MIN U64SIZE U64TYPE U64_CONST U8SIZE
syn keyword xsMacro U8TO16_LE U8TO32_LE U8TO64_LE U8TYPE U8_MAX U8_MIN
syn keyword xsMacro UCHARAT UINT32_MIN UINT64_C UINT64_MIN UMINUS
syn keyword xsMacro UNALIGNED_SAFE UNDERBAR UNICODE_ALLOW_ANY
syn keyword xsMacro UNICODE_ALLOW_SUPER UNICODE_ALLOW_SURROGATE
syn keyword xsMacro UNICODE_BYTE_ORDER_MARK UNICODE_DISALLOW_FE_FF
syn keyword xsMacro UNICODE_DISALLOW_ILLEGAL_INTERCHANGE
syn keyword xsMacro UNICODE_DISALLOW_NONCHAR UNICODE_DISALLOW_SUPER
syn keyword xsMacro UNICODE_DISALLOW_SURROGATE
syn keyword xsMacro UNICODE_GREEK_CAPITAL_LETTER_SIGMA
syn keyword xsMacro UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA
syn keyword xsMacro UNICODE_GREEK_SMALL_LETTER_SIGMA
syn keyword xsMacro UNICODE_IS_BYTE_ORDER_MARK UNICODE_IS_FE_FF
syn keyword xsMacro UNICODE_IS_NONCHAR UNICODE_IS_REPLACEMENT
syn keyword xsMacro UNICODE_IS_SUPER UNICODE_IS_SURROGATE UNICODE_LINE_SEPA_0
syn keyword xsMacro UNICODE_LINE_SEPA_1 UNICODE_LINE_SEPA_2
syn keyword xsMacro UNICODE_PARA_SEPA_0 UNICODE_PARA_SEPA_1
syn keyword xsMacro UNICODE_PARA_SEPA_2 UNICODE_PAT_MOD UNICODE_PAT_MODS
syn keyword xsMacro UNICODE_REPLACEMENT UNICODE_SURROGATE_FIRST
syn keyword xsMacro UNICODE_SURROGATE_LAST UNICODE_WARN_FE_FF
syn keyword xsMacro UNICODE_WARN_ILLEGAL_INTERCHANGE UNICODE_WARN_NONCHAR
syn keyword xsMacro UNICODE_WARN_SUPER UNICODE_WARN_SURROGATE UNIOP UNIOPSUB
syn keyword xsMacro UNISKIP UNI_DISPLAY_BACKSLASH UNI_DISPLAY_ISPRINT
syn keyword xsMacro UNI_DISPLAY_QQ UNI_DISPLAY_REGEX UNI_IS_INVARIANT
syn keyword xsMacro UNI_TO_NATIVE UNKNOWN_ERRNO_MSG UNLESS UNLESSM UNLIKELY
syn keyword xsMacro UNLINK UNLOCK_DOLLARZERO_MUTEX UNLOCK_LC_NUMERIC_STANDARD
syn keyword xsMacro UNLOCK_NUMERIC_STANDARD UNOP_AUX_item_sv UNTIL
syn keyword xsMacro UPG_VERSION USE USE_64_BIT_ALL USE_64_BIT_INT
syn keyword xsMacro USE_64_BIT_RAWIO USE_64_BIT_STDIO USE_BSDPGRP
syn keyword xsMacro USE_DYNAMIC_LOADING USE_ENVIRON_ARRAY USE_HASH_SEED
syn keyword xsMacro USE_HEAP_INSTEAD_OF_STACK USE_LARGE_FILES USE_LEFT
syn keyword xsMacro USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
syn keyword xsMacro USE_LOCALE_MESSAGES USE_LOCALE_MONETARY
syn keyword xsMacro USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO
syn keyword xsMacro USE_PERL_PERTURB_KEYS USE_REENTRANT_API
syn keyword xsMacro USE_SEMCTL_SEMID_DS USE_SEMCTL_SEMUN USE_STAT_BLOCKS
syn keyword xsMacro USE_STAT_RDEV USE_STDIO USE_STRUCT_COPY USE_SYSTEM_GMTIME
syn keyword xsMacro USE_SYSTEM_LOCALTIME USE_THREADS USE_TM64
syn keyword xsMacro USE_UTF8_IN_NAMES USING_MSVC6 UTF8SKIP UTF8_ACCUMULATE
syn keyword xsMacro UTF8_ALLOW_ANY UTF8_ALLOW_ANYUV UTF8_ALLOW_CONTINUATION
syn keyword xsMacro UTF8_ALLOW_DEFAULT UTF8_ALLOW_EMPTY UTF8_ALLOW_FFFF
syn keyword xsMacro UTF8_ALLOW_LONG UTF8_ALLOW_NON_CONTINUATION
syn keyword xsMacro UTF8_ALLOW_SHORT UTF8_ALLOW_SURROGATE UTF8_CHECK_ONLY
syn keyword xsMacro UTF8_DISALLOW_FE_FF UTF8_DISALLOW_ILLEGAL_INTERCHANGE
syn keyword xsMacro UTF8_DISALLOW_NONCHAR UTF8_DISALLOW_SUPER
syn keyword xsMacro UTF8_DISALLOW_SURROGATE UTF8_EIGHT_BIT_HI
syn keyword xsMacro UTF8_EIGHT_BIT_LO
syn keyword xsMacro UTF8_FIRST_PROBLEMATIC_CODE_POINT_FIRST_BYTE
syn keyword xsMacro UTF8_IS_ABOVE_LATIN1 UTF8_IS_CONTINUATION
syn keyword xsMacro UTF8_IS_CONTINUED UTF8_IS_DOWNGRADEABLE_START
syn keyword xsMacro UTF8_IS_INVARIANT UTF8_IS_NEXT_CHAR_DOWNGRADEABLE
syn keyword xsMacro UTF8_IS_NONCHAR_
syn keyword xsMacro UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC
syn keyword xsMacro UTF8_IS_REPLACEMENT UTF8_IS_START UTF8_IS_SUPER
syn keyword xsMacro UTF8_IS_SURROGATE UTF8_MAXBYTES UTF8_MAXBYTES_CASE
syn keyword xsMacro UTF8_MAXLEN UTF8_MAX_FOLD_CHAR_EXPAND UTF8_QUAD_MAX
syn keyword xsMacro UTF8_TWO_BYTE_HI UTF8_TWO_BYTE_HI_nocast UTF8_TWO_BYTE_LO
syn keyword xsMacro UTF8_TWO_BYTE_LO_nocast UTF8_WARN_FE_FF
syn keyword xsMacro UTF8_WARN_ILLEGAL_INTERCHANGE UTF8_WARN_NONCHAR
syn keyword xsMacro UTF8_WARN_SUPER UTF8_WARN_SURROGATE UTF8f UTF8fARG
syn keyword xsMacro UTF_ACCUMULATION_OVERFLOW_MASK UTF_ACCUMULATION_SHIFT
syn keyword xsMacro UTF_CONTINUATION_MARK UTF_CONTINUATION_MASK
syn keyword xsMacro UTF_START_MARK UTF_START_MASK UTF_TO_NATIVE
syn keyword xsMacro UVCHR_IS_INVARIANT UVCHR_SKIP UVSIZE UVTYPE UVXf UV_DIG
syn keyword xsMacro UV_MAX UV_MAX_P1 UV_MAX_P1_HALF UV_MIN UVf U_32 U_I U_L
syn keyword xsMacro U_S U_V Uid_t_f Uid_t_sign Uid_t_size VAL_EAGAIN
syn keyword xsMacro VAL_O_NONBLOCK VCMP VERB VNORMAL VNUMIFY VOL VSTRINGIFY
syn keyword xsMacro VTBL_amagic VTBL_amagicelem VTBL_arylen VTBL_bm
syn keyword xsMacro VTBL_collxfrm VTBL_dbline VTBL_defelem VTBL_env
syn keyword xsMacro VTBL_envelem VTBL_fm VTBL_glob VTBL_isa VTBL_isaelem
syn keyword xsMacro VTBL_mglob VTBL_nkeys VTBL_pack VTBL_packelem VTBL_pos
syn keyword xsMacro VTBL_regdata VTBL_regdatum VTBL_regexp VTBL_sigelem
syn keyword xsMacro VTBL_substr VTBL_sv VTBL_taint VTBL_uvar VTBL_vec
syn keyword xsMacro VT_NATIVE VUTIL_REPLACE_CORE VVERIFY WARN_ALL
syn keyword xsMacro WARN_ALLstring WARN_AMBIGUOUS WARN_BAREWORD WARN_CLOSED
syn keyword xsMacro WARN_CLOSURE WARN_DEBUGGING WARN_DEPRECATED WARN_DIGIT
syn keyword xsMacro WARN_EXEC WARN_EXITING WARN_EXPERIMENTAL
syn keyword xsMacro WARN_EXPERIMENTAL__AUTODEREF WARN_EXPERIMENTAL__BITWISE
syn keyword xsMacro WARN_EXPERIMENTAL__CONST_ATTR
syn keyword xsMacro WARN_EXPERIMENTAL__LEXICAL_SUBS
syn keyword xsMacro WARN_EXPERIMENTAL__LEXICAL_TOPIC
syn keyword xsMacro WARN_EXPERIMENTAL__POSTDEREF
syn keyword xsMacro WARN_EXPERIMENTAL__REFALIASING
syn keyword xsMacro WARN_EXPERIMENTAL__REGEX_SETS
syn keyword xsMacro WARN_EXPERIMENTAL__RE_STRICT
syn keyword xsMacro WARN_EXPERIMENTAL__SIGNATURES
syn keyword xsMacro WARN_EXPERIMENTAL__SMARTMATCH
syn keyword xsMacro WARN_EXPERIMENTAL__WIN32_PERLIO WARN_GLOB
syn keyword xsMacro WARN_ILLEGALPROTO WARN_IMPRECISION WARN_INPLACE
syn keyword xsMacro WARN_INTERNAL WARN_IO WARN_LAYER WARN_LOCALE WARN_MALLOC
syn keyword xsMacro WARN_MISC WARN_MISSING WARN_NEWLINE WARN_NONCHAR
syn keyword xsMacro WARN_NONEstring WARN_NON_UNICODE WARN_NUMERIC WARN_ONCE
syn keyword xsMacro WARN_OVERFLOW WARN_PACK WARN_PARENTHESIS WARN_PIPE
syn keyword xsMacro WARN_PORTABLE WARN_PRECEDENCE WARN_PRINTF WARN_PROTOTYPE
syn keyword xsMacro WARN_QW WARN_RECURSION WARN_REDEFINE WARN_REDUNDANT
syn keyword xsMacro WARN_REGEXP WARN_RESERVED WARN_SEMICOLON WARN_SEVERE
syn keyword xsMacro WARN_SIGNAL WARN_SUBSTR WARN_SURROGATE WARN_SYNTAX
syn keyword xsMacro WARN_SYSCALLS WARN_TAINT WARN_THREADS WARN_UNINITIALIZED
syn keyword xsMacro WARN_UNOPENED WARN_UNPACK WARN_UNTIE WARN_UTF8 WARN_VOID
syn keyword xsMacro WARNshift WARNsize WB_ENUM_COUNT WEXITSTATUS WHEN WHILE
syn keyword xsMacro WHILEM WHILEM_A_max WHILEM_A_max_fail WHILEM_A_min
syn keyword xsMacro WHILEM_A_min_fail WHILEM_A_pre WHILEM_A_pre_fail
syn keyword xsMacro WHILEM_B_max WHILEM_B_max_fail WHILEM_B_min
syn keyword xsMacro WHILEM_B_min_fail WIDEST_UTYPE WIFEXITED WIFSIGNALED
syn keyword xsMacro WIFSTOPPED WIN32SCK_IS_STDSCK WNOHANG WORD WSTOPSIG
syn keyword xsMacro WTERMSIG WUNTRACED XDIGIT_VALUE XHvTOTALKEYS
syn keyword xsMacro XOPd_xop_class XOPd_xop_desc XOPd_xop_name XOPd_xop_peep
syn keyword xsMacro XOPf_xop_class XOPf_xop_desc XOPf_xop_name XOPf_xop_peep
syn keyword xsMacro XPUSHTARG XPUSHi XPUSHmortal XPUSHn XPUSHp XPUSHs XPUSHu
syn keyword xsMacro XPUSHundef XS XSANY XSINTERFACE_CVT XSINTERFACE_CVT_ANON
syn keyword xsMacro XSINTERFACE_FUNC XSINTERFACE_FUNC_SET XSPROTO XSRETURN
syn keyword xsMacro XSRETURN_EMPTY XSRETURN_IV XSRETURN_NO XSRETURN_NV
syn keyword xsMacro XSRETURN_PV XSRETURN_PVN XSRETURN_UNDEF XSRETURN_UV
syn keyword xsMacro XSRETURN_YES XST_mIV XST_mNO XST_mNV XST_mPV XST_mPVN
syn keyword xsMacro XST_mUNDEF XST_mUV XST_mYES XS_APIVERSION_BOOTCHECK
syn keyword xsMacro XS_APIVERSION_POPMARK_BOOTCHECK
syn keyword xsMacro XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK
syn keyword xsMacro XS_BOTHVERSION_BOOTCHECK XS_BOTHVERSION_POPMARK_BOOTCHECK
syn keyword xsMacro XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK
syn keyword xsMacro XS_DYNAMIC_FILENAME XS_EXTERNAL XS_INTERNAL
syn keyword xsMacro XS_SETXSUBFN_POPMARK XS_VERSION_BOOTCHECK XSprePUSH
syn keyword xsMacro XTENDED_PAT_MOD XopDISABLE XopENABLE XopENTRY
syn keyword xsMacro XopENTRYCUSTOM XopENTRY_set XopFLAGS YADAYADA YIELD
syn keyword xsMacro YYEMPTY YYSTYPE_IS_DECLARED YYSTYPE_IS_TRIVIAL
syn keyword xsMacro YYTOKENTYPE Zero ZeroD _ _CANNOT _CC_ALPHA
syn keyword xsMacro _CC_ALPHANUMERIC _CC_ASCII _CC_BLANK _CC_CASED
syn keyword xsMacro _CC_CHARNAME_CONT _CC_CNTRL _CC_DIGIT _CC_GRAPH
syn keyword xsMacro _CC_IDFIRST _CC_IS_IN_SOME_FOLD _CC_LOWER
syn keyword xsMacro _CC_MNEMONIC_CNTRL _CC_NONLATIN1_FOLD
syn keyword xsMacro _CC_NONLATIN1_SIMPLE_FOLD _CC_NON_FINAL_FOLD _CC_PRINT
syn keyword xsMacro _CC_PUNCT _CC_QUOTEMETA _CC_SPACE _CC_UPPER _CC_VERTSPACE
syn keyword xsMacro _CC_WORDCHAR _CC_XDIGIT _CC_mask _CC_mask_A
syn keyword xsMacro _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG
syn keyword xsMacro _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG
syn keyword xsMacro _CHECK_AND_WARN_PROBLEMATIC_LOCALE
syn keyword xsMacro _CORE_SWASH_INIT_ACCEPT_INVLIST
syn keyword xsMacro _CORE_SWASH_INIT_RETURN_IF_UNDEF
syn keyword xsMacro _CORE_SWASH_INIT_USER_DEFINED_PROPERTY _CPERLarg
syn keyword xsMacro _FIRST_NON_SWASH_CC _GNU_SOURCE
syn keyword xsMacro _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C
syn keyword xsMacro _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C
syn keyword xsMacro _HIGHEST_REGCOMP_DOT_H_SYNC _INC_PERL_XSUB_H
syn keyword xsMacro _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C
syn keyword xsMacro _IS_MNEMONIC_CNTRL_ONLY_FOR_USE_BY_REGCOMP_DOT_C
syn keyword xsMacro _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C _LC_CAST
syn keyword xsMacro _MEM_WRAP_NEEDS_RUNTIME_CHECK _MEM_WRAP_WILL_WRAP
syn keyword xsMacro _NOT_IN_NUMERIC_STANDARD _NOT_IN_NUMERIC_UNDERLYING
syn keyword xsMacro _NV_BODYLESS_UNION _OP_SIBPARENT_FIELDNAME _PERLIOL_H
syn keyword xsMacro _PERLIO_H _PERL_OBJECT_THIS _REGEXP_COMMON
syn keyword xsMacro _RXf_PMf_CHARSET_SHIFT _RXf_PMf_SHIFT_COMPILETIME
syn keyword xsMacro _RXf_PMf_SHIFT_NEXT _STDIO_H _STDIO_INCLUDED _V
syn keyword xsMacro _XPVCV_COMMON _XPV_HEAD __ASSERT_ __BASE_TWO_BYTE_HI
syn keyword xsMacro __BASE_TWO_BYTE_LO __Inc__IPerl___
syn keyword xsMacro __PATCHLEVEL_H_INCLUDED__ __PL_inf_float_int32
syn keyword xsMacro __PL_nan_float_int32 __STDIO_LOADED
syn keyword xsMacro __attribute__deprecated__ __attribute__format__
syn keyword xsMacro __attribute__format__null_ok__ __attribute__malloc__
syn keyword xsMacro __attribute__nonnull__ __attribute__noreturn__
syn keyword xsMacro __attribute__pure__ __attribute__unused__
syn keyword xsMacro __attribute__warn_unused_result__ __filbuf __flsbuf
syn keyword xsMacro __has_builtin __perlapi_h__ _config_h_ _exit _filbuf
syn keyword xsMacro _flsbuf _generic_LC _generic_LC_base
syn keyword xsMacro _generic_LC_func_utf8 _generic_LC_swash_utf8
syn keyword xsMacro _generic_LC_swash_uvchr _generic_LC_underscore
syn keyword xsMacro _generic_LC_utf8 _generic_LC_uvchr _generic_func_utf8
syn keyword xsMacro _generic_isCC _generic_isCC_A _generic_swash_uni
syn keyword xsMacro _generic_swash_utf8 _generic_toFOLD_LC
syn keyword xsMacro _generic_toLOWER_LC _generic_toUPPER_LC _generic_uni
syn keyword xsMacro _generic_utf8 _generic_utf8_no_upper_latin1 _isQMC
syn keyword xsMacro _isQUOTEMETA _swab_16_ _swab_32_ _swab_64_ aTHXa aTHXo
syn keyword xsMacro aTHXo_ aTHXx aTHXx_ abort accept access
syn keyword xsMacro anchored_end_shift anchored_offset anchored_substr
syn keyword xsMacro anchored_utf8 asctime assert assert_ assert_not_ROK
syn keyword xsMacro assert_not_glob atoll av_tindex bcmp bind blk_eval
syn keyword xsMacro blk_format blk_gimme blk_givwhen blk_loop blk_oldcop
syn keyword xsMacro blk_oldmarksp blk_oldpm blk_oldscopesp blk_oldsp blk_sub
syn keyword xsMacro blk_u16 bool boolSV cBINOP cBINOPo cBINOPx cBOOL cCOP
syn keyword xsMacro cCOPo cCOPx cGVOP_gv cGVOPo_gv cGVOPx_gv cLISTOP cLISTOPo
syn keyword xsMacro cLISTOPx cLOGOP cLOGOPo cLOGOPx cLOOP cLOOPo cLOOPx
syn keyword xsMacro cMETHOPx cMETHOPx_meth cMETHOPx_rclass cPADOP cPADOPo
syn keyword xsMacro cPADOPx cPMOP cPMOPo cPMOPx cPVOP cPVOPo cPVOPx cSVOP
syn keyword xsMacro cSVOP_sv cSVOPo cSVOPo_sv cSVOPx cSVOPx_sv cSVOPx_svp
syn keyword xsMacro cUNOP cUNOP_AUX cUNOP_AUXo cUNOP_AUXx cUNOPo cUNOPx chdir
syn keyword xsMacro check_end_shift check_offset_max check_offset_min
syn keyword xsMacro check_substr check_utf8 child_offset_bits chmod chsize
syn keyword xsMacro ckDEAD ckWARN ckWARN2 ckWARN2_d ckWARN3 ckWARN3_d ckWARN4
syn keyword xsMacro ckWARN4_d ckWARN_d close closedir connect cop_hints_2hv
syn keyword xsMacro cop_hints_fetch_pv cop_hints_fetch_pvn
syn keyword xsMacro cop_hints_fetch_pvs cop_hints_fetch_sv cophh_2hv
syn keyword xsMacro cophh_copy cophh_delete_pv cophh_delete_pvn
syn keyword xsMacro cophh_delete_pvs cophh_delete_sv cophh_fetch_pv
syn keyword xsMacro cophh_fetch_pvn cophh_fetch_pvs cophh_fetch_sv cophh_free
syn keyword xsMacro cophh_new_empty cophh_store_pv cophh_store_pvn
syn keyword xsMacro cophh_store_pvs cophh_store_sv crypt ctermid ctime
syn keyword xsMacro cv_ckproto cx_type cxstack cxstack_ix cxstack_max
syn keyword xsMacro dATARGET dAX dAXMARK dEXT dEXTCONST dITEMS dJMPENV dMARK
syn keyword xsMacro dMULTICALL dMY_CXT dMY_CXT_INTERP dMY_CXT_SV dNOOP
syn keyword xsMacro dORIGMARK dPOPPOPiirl dPOPPOPnnrl dPOPPOPssrl dPOPTOPiirl
syn keyword xsMacro dPOPTOPiirl_nomg dPOPTOPiirl_ul_nomg dPOPTOPnnrl
syn keyword xsMacro dPOPTOPnnrl_nomg dPOPTOPssrl dPOPXiirl dPOPXiirl_ul_nomg
syn keyword xsMacro dPOPXnnrl dPOPXssrl dPOPiv dPOPnv dPOPnv_nomg dPOPss
syn keyword xsMacro dPOPuv dSAVEDERRNO dSAVE_ERRNO dSP dSS_ADD dTARG dTARGET
syn keyword xsMacro dTARGETSTACKED dTHR dTHX dTHXa dTHXo dTHXoa dTHXs dTHXx
syn keyword xsMacro dTOPiv dTOPnv dTOPss dTOPuv dUNDERBAR dVAR dXSARGS
syn keyword xsMacro dXSBOOTARGSAPIVERCHK dXSBOOTARGSNOVERCHK
syn keyword xsMacro dXSBOOTARGSXSAPIVERCHK dXSFUNCTION dXSI32 dXSTARG
syn keyword xsMacro dXSUB_SYS deprecate djSP do_open dup dup2 endgrent
syn keyword xsMacro endhostent endnetent endprotoent endpwent endservent
syn keyword xsMacro environ execl execv execvp fcntl fd_set fdopen fileno
syn keyword xsMacro float_end_shift float_max_offset float_min_offset
syn keyword xsMacro float_substr float_utf8 flock flockfile foldEQ_utf8
syn keyword xsMacro frewind fscanf fstat ftell ftruncate ftrylockfile
syn keyword xsMacro funlockfile fwrite1 get_cvs getc_unlocked getegid geteuid
syn keyword xsMacro getgid getgrent getgrgid getgrnam gethostbyaddr
syn keyword xsMacro gethostbyname gethostent gethostname getlogin
syn keyword xsMacro getnetbyaddr getnetbyname getnetent getpeername getpid
syn keyword xsMacro getprotobyname getprotobynumber getprotoent getpwent
syn keyword xsMacro getpwnam getpwuid getservbyname getservbyport getservent
syn keyword xsMacro getsockname getsockopt getspnam gettimeofday getuid getw
syn keyword xsMacro gv_AVadd gv_HVadd gv_IOadd gv_SVadd gv_autoload4
syn keyword xsMacro gv_efullname3 gv_fetchmeth gv_fetchmeth_autoload
syn keyword xsMacro gv_fetchmethod gv_fetchmethod_flags gv_fetchpvn
syn keyword xsMacro gv_fetchpvs gv_fetchsv_nomg gv_fullname3 gv_init
syn keyword xsMacro gv_method_changed gv_stashpvs htoni htonl htons htovl
syn keyword xsMacro htovs hv_delete hv_delete_ent hv_deletehek hv_exists
syn keyword xsMacro hv_exists_ent hv_fetch hv_fetch_ent hv_fetchhek hv_fetchs
syn keyword xsMacro hv_iternext hv_magic hv_store hv_store_ent hv_store_flags
syn keyword xsMacro hv_storehek hv_stores hv_undef ibcmp ibcmp_locale
syn keyword xsMacro ibcmp_utf8 inet_addr inet_ntoa init_os_extras ioctl
syn keyword xsMacro isALNUM isALNUMC isALNUMC_A isALNUMC_L1 isALNUMC_LC
syn keyword xsMacro isALNUMC_LC_utf8 isALNUMC_LC_uvchr isALNUMC_uni
syn keyword xsMacro isALNUMC_utf8 isALNUMU isALNUM_LC isALNUM_LC_utf8
syn keyword xsMacro isALNUM_LC_uvchr isALNUM_lazy_if isALNUM_uni isALNUM_utf8
syn keyword xsMacro isALPHA isALPHANUMERIC isALPHANUMERIC_A isALPHANUMERIC_L1
syn keyword xsMacro isALPHANUMERIC_LC isALPHANUMERIC_LC_utf8
syn keyword xsMacro isALPHANUMERIC_LC_uvchr isALPHANUMERIC_uni
syn keyword xsMacro isALPHANUMERIC_utf8 isALPHAU isALPHA_A isALPHA_FOLD_EQ
syn keyword xsMacro isALPHA_FOLD_NE isALPHA_L1 isALPHA_LC isALPHA_LC_utf8
syn keyword xsMacro isALPHA_LC_uvchr isALPHA_uni isALPHA_utf8 isASCII
syn keyword xsMacro isASCII_A isASCII_L1 isASCII_LC isASCII_LC_utf8
syn keyword xsMacro isASCII_LC_uvchr isASCII_uni isASCII_utf8 isBLANK
syn keyword xsMacro isBLANK_A isBLANK_L1 isBLANK_LC isBLANK_LC_uni
syn keyword xsMacro isBLANK_LC_utf8 isBLANK_LC_uvchr isBLANK_uni isBLANK_utf8
syn keyword xsMacro isCHARNAME_CONT isCNTRL isCNTRL_A isCNTRL_L1 isCNTRL_LC
syn keyword xsMacro isCNTRL_LC_utf8 isCNTRL_LC_uvchr isCNTRL_uni isCNTRL_utf8
syn keyword xsMacro isDIGIT isDIGIT_A isDIGIT_L1 isDIGIT_LC isDIGIT_LC_utf8
syn keyword xsMacro isDIGIT_LC_uvchr isDIGIT_uni isDIGIT_utf8 isGRAPH
syn keyword xsMacro isGRAPH_A isGRAPH_L1 isGRAPH_LC isGRAPH_LC_utf8
syn keyword xsMacro isGRAPH_LC_uvchr isGRAPH_uni isGRAPH_utf8 isGV
syn keyword xsMacro isGV_with_GP isGV_with_GP_off isGV_with_GP_on isIDCONT
syn keyword xsMacro isIDCONT_A isIDCONT_L1 isIDCONT_LC isIDCONT_LC_utf8
syn keyword xsMacro isIDCONT_LC_uvchr isIDCONT_uni isIDCONT_utf8 isIDFIRST
syn keyword xsMacro isIDFIRST_A isIDFIRST_L1 isIDFIRST_LC isIDFIRST_LC_utf8
syn keyword xsMacro isIDFIRST_LC_uvchr isIDFIRST_lazy_if isIDFIRST_uni
syn keyword xsMacro isIDFIRST_utf8 isLEXWARN_off isLEXWARN_on isLOWER
syn keyword xsMacro isLOWER_A isLOWER_L1 isLOWER_LC isLOWER_LC_utf8
syn keyword xsMacro isLOWER_LC_uvchr isLOWER_uni isLOWER_utf8 isOCTAL
syn keyword xsMacro isOCTAL_A isOCTAL_L1 isPRINT isPRINT_A isPRINT_L1
syn keyword xsMacro isPRINT_LC isPRINT_LC_utf8 isPRINT_LC_uvchr isPRINT_uni
syn keyword xsMacro isPRINT_utf8 isPSXSPC isPSXSPC_A isPSXSPC_L1 isPSXSPC_LC
syn keyword xsMacro isPSXSPC_LC_utf8 isPSXSPC_LC_uvchr isPSXSPC_uni
syn keyword xsMacro isPSXSPC_utf8 isPUNCT isPUNCT_A isPUNCT_L1 isPUNCT_LC
syn keyword xsMacro isPUNCT_LC_utf8 isPUNCT_LC_uvchr isPUNCT_uni isPUNCT_utf8
syn keyword xsMacro isREGEXP isSPACE isSPACE_A isSPACE_L1 isSPACE_LC
syn keyword xsMacro isSPACE_LC_utf8 isSPACE_LC_uvchr isSPACE_uni isSPACE_utf8
syn keyword xsMacro isUPPER isUPPER_A isUPPER_L1 isUPPER_LC isUPPER_LC_utf8
syn keyword xsMacro isUPPER_LC_uvchr isUPPER_uni isUPPER_utf8 isUTF8_CHAR
syn keyword xsMacro isVERTWS_uni isVERTWS_utf8 isWARN_ONCE isWARN_on
syn keyword xsMacro isWARNf_on isWORDCHAR isWORDCHAR_A isWORDCHAR_L1
syn keyword xsMacro isWORDCHAR_LC isWORDCHAR_LC_utf8 isWORDCHAR_LC_uvchr
syn keyword xsMacro isWORDCHAR_lazy_if isWORDCHAR_uni isWORDCHAR_utf8
syn keyword xsMacro isXDIGIT isXDIGIT_A isXDIGIT_L1 isXDIGIT_LC
syn keyword xsMacro isXDIGIT_LC_utf8 isXDIGIT_LC_uvchr isXDIGIT_uni
syn keyword xsMacro isXDIGIT_utf8 is_ANYOF_SYNTHETIC is_FOLDS_TO_MULTI_utf8
syn keyword xsMacro is_HORIZWS_cp_high is_HORIZWS_high is_LAX_VERSION
syn keyword xsMacro is_LNBREAK_latin1_safe is_LNBREAK_safe
syn keyword xsMacro is_LNBREAK_utf8_safe is_MULTI_CHAR_FOLD_latin1_safe
syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe
syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe_part0
syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe_part1 is_NONCHAR_utf8
syn keyword xsMacro is_PATWS_cp is_PATWS_safe
syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp
syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8
syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLD_cp
syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLD_utf8 is_QUOTEMETA_high
syn keyword xsMacro is_QUOTEMETA_high_part0 is_QUOTEMETA_high_part1
syn keyword xsMacro is_REPLACEMENT_utf8_safe is_STRICT_VERSION
syn keyword xsMacro is_SURROGATE_utf8 is_UTF8_CHAR_utf8_no_length_checks
syn keyword xsMacro is_VERTWS_cp_high is_VERTWS_high is_XDIGIT_cp_high
syn keyword xsMacro is_XDIGIT_high is_XPERLSPACE_cp_high is_XPERLSPACE_high
syn keyword xsMacro is_ascii_string is_utf8_char_buf is_utf8_string_loc
syn keyword xsMacro isatty isnormal kBINOP kCOP kGVOP_gv kLISTOP kLOGOP kLOOP
syn keyword xsMacro kPADOP kPMOP kPVOP kSVOP kSVOP_sv kUNOP kUNOP_AUX kill
syn keyword xsMacro killpg lex_stuff_pvs link listen lockf longjmp lseek
syn keyword xsMacro lstat mPUSHi mPUSHn mPUSHp mPUSHs mPUSHu mXPUSHi mXPUSHn
syn keyword xsMacro mXPUSHp mXPUSHs mXPUSHu memEQ memEQs memNE memNEs memchr
syn keyword xsMacro memcmp memzero mkdir mktemp my my_binmode my_lstat
syn keyword xsMacro my_setlocale my_snprintf my_sprintf my_stat my_strlcat
syn keyword xsMacro my_strlcpy my_vsnprintf newATTRSUB newAV newGVgen newHV
syn keyword xsMacro newIO newRV_inc newSUB newSVpadname newSVpvn_utf8
syn keyword xsMacro newSVpvs newSVpvs_flags newSVpvs_share newXSproto ntohi
syn keyword xsMacro ntohl ntohs opASSIGN op_lvalue open opendir pTHX_1
syn keyword xsMacro pTHX_12 pTHX_2 pTHX_3 pTHX_4 pTHX_5 pTHX_6 pTHX_7 pTHX_8
syn keyword xsMacro pTHX_9 pTHX_FORMAT pTHX_VALUE pTHX_VALUE_ pTHX__FORMAT
syn keyword xsMacro pTHX__VALUE pTHX__VALUE_ pTHXo pTHXo_ pTHXx pTHXx_ pVAR
syn keyword xsMacro pWARN_ALL pWARN_NONE pWARN_STD packWARN packWARN2
syn keyword xsMacro packWARN3 packWARN4 pad_add_name_pvs pad_findmy_pvs
syn keyword xsMacro pad_peg padadd_NO_DUP_CHECK padadd_OUR padadd_STALEOK
syn keyword xsMacro padadd_STATE padnew_CLONE padnew_SAVE padnew_SAVESUB
syn keyword xsMacro panic_write2 pause pclose pipe popen prepare_SV_for_RV
syn keyword xsMacro pthread_attr_init pthread_condattr_default pthread_create
syn keyword xsMacro pthread_key_create pthread_keycreate
syn keyword xsMacro pthread_mutexattr_default pthread_mutexattr_init
syn keyword xsMacro pthread_mutexattr_settype putc_unlocked putenv putw read
syn keyword xsMacro readdir readdir64 recv recvfrom ref
syn keyword xsMacro refcounted_he_fetch_pvs refcounted_he_new_pvs rename
syn keyword xsMacro rewinddir rmdir safecalloc safefree safemalloc
syn keyword xsMacro saferealloc save_aelem save_freeop save_freepv
syn keyword xsMacro save_freesv save_helem save_mortalizesv save_op savepvs
syn keyword xsMacro savesharedpvs sb_dstr sb_iters sb_m sb_maxiters
syn keyword xsMacro sb_oldsave sb_orig sb_rflags sb_rx sb_rxres sb_rxtainted
syn keyword xsMacro sb_s sb_strend sb_targ seedDrand01 seekdir select send
syn keyword xsMacro sendto set_ANYOF_SYNTHETIC setbuf setgid setgrent
syn keyword xsMacro sethostent setjmp setlinebuf setlocale setmode setnetent
syn keyword xsMacro setprotoent setpwent setregid setreuid setservent
syn keyword xsMacro setsockopt setuid setvbuf share_hek_hek sharepvn shutdown
syn keyword xsMacro signal sleep socket socketpair specialWARN stat stdoutf
syn keyword xsMacro strEQ strGE strGT strLE strLT strNE strchr strerror
syn keyword xsMacro strnEQ strnNE strrchr strtoll strtoull sv_2bool
syn keyword xsMacro sv_2bool_nomg sv_2iv sv_2nv sv_2pv sv_2pv_nolen
syn keyword xsMacro sv_2pv_nomg sv_2pvbyte_nolen sv_2pvutf8_nolen sv_2uv
syn keyword xsMacro sv_cathek sv_catpv_nomg sv_catpvn sv_catpvn_mg
syn keyword xsMacro sv_catpvn_nomg sv_catpvn_nomg_maybeutf8
syn keyword xsMacro sv_catpvn_nomg_utf8_upgrade sv_catpvs sv_catpvs_flags
syn keyword xsMacro sv_catpvs_mg sv_catpvs_nomg sv_catsv sv_catsv_mg
syn keyword xsMacro sv_catsv_nomg sv_catxmlpvs sv_cmp sv_cmp_locale
syn keyword xsMacro sv_collxfrm sv_copypv_nomg sv_eq sv_force_normal
syn keyword xsMacro sv_insert sv_mortalcopy sv_nolocking sv_nounlocking
syn keyword xsMacro sv_or_pv_len_utf8 sv_pv sv_pvbyte sv_pvn_force
syn keyword xsMacro sv_pvn_force_nomg sv_pvutf8 sv_setgid sv_setpvs
syn keyword xsMacro sv_setpvs_mg sv_setref_pvs sv_setsv sv_setsv_nomg
syn keyword xsMacro sv_setuid sv_taint sv_unref sv_usepvn sv_usepvn_mg
syn keyword xsMacro sv_utf8_upgrade sv_utf8_upgrade_flags
syn keyword xsMacro sv_utf8_upgrade_nomg tTHX telldir times tmpfile tmpnam
syn keyword xsMacro toCTRL toFOLD toFOLD_A toFOLD_LC toFOLD_uni toFOLD_utf8
syn keyword xsMacro toLOWER toLOWER_A toLOWER_L1 toLOWER_LATIN1 toLOWER_LC
syn keyword xsMacro toLOWER_uni toLOWER_utf8 toTITLE toTITLE_A toTITLE_uni
syn keyword xsMacro toTITLE_utf8 toUPPER toUPPER_A toUPPER_LATIN1_MOD
syn keyword xsMacro toUPPER_LC toUPPER_uni toUPPER_utf8 to_uni_fold
syn keyword xsMacro to_utf8_fold to_utf8_lower to_utf8_title to_utf8_upper
syn keyword xsMacro truncate tryAMAGICbin_MG tryAMAGICunDEREF
syn keyword xsMacro tryAMAGICunTARGETlist tryAMAGICun_MG ttyname umask uname
syn keyword xsMacro unlink unpackWARN1 unpackWARN2 unpackWARN3 unpackWARN4
syn keyword xsMacro utf8_to_uvchr_buf utime uvchr_to_utf8 uvchr_to_utf8_flags
syn keyword xsMacro vTHX vfprintf vtohl vtohs wait want_vtbl_bm want_vtbl_fm
syn keyword xsMacro whichsig write xio_any xio_dirp xiv_iv xlv_targoff
syn keyword xsMacro xpv_len xuv_uv yystype

" Define the default highlighting.
hi def link xsPrivate    Error
hi def link xsSuperseded Error
hi def link xsType       Type
hi def link xsString     String
hi def link xsConstant   Constant
hi def link xsException  Exception
hi def link xsKeyword    Keyword
hi def link xsFunction   Function
hi def link xsVariable   Identifier
hi def link xsMacro      Macro

let b:current_syntax = "xs"

" vim: ts=8
PK�j�Z��vim80/syntax/antlr.vimnu�[���" Vim syntax file
" Antlr:	ANTLR, Another Tool For Language Recognition <www.antlr.org>
" Maintainer:	Mathieu Clabaut <mathieu.clabaut@free.fr>
" LastChange:	02 May 2001
" Original:	Comes from JavaCC.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

" This syntac file is a first attempt. It is far from perfect...

" Uses java.vim, and adds a few special things for JavaCC Parser files.
" Those files usually have the extension  *.jj

" source the java.vim file
runtime! syntax/java.vim
unlet b:current_syntax

"remove catching errors caused by wrong parenthesis (does not work in antlr
"files) (first define them in case they have not been defined in java)
syn match	javaParen "--"
syn match	javaParenError "--"
syn match	javaInParen "--"
syn match	javaError2 "--"
syn clear	javaParen
syn clear	javaParenError
syn clear	javaInParen
syn clear	javaError2

" remove function definitions (they look different) (first define in
" in case it was not defined in java.vim)
"syn match javaFuncDef "--"
"syn clear javaFuncDef
"syn match javaFuncDef "[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType
" syn region javaFuncDef start=+t[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*,[ 	]*+ end=+)[ \t]*:+

syn keyword antlrPackages options language buildAST
syn match antlrPackages "PARSER_END([^)]*)"
syn match antlrPackages "PARSER_BEGIN([^)]*)"
syn match antlrSpecToken "<EOF>"
" the dot is necessary as otherwise it will be matched as a keyword.
syn match antlrSpecToken ".LOOKAHEAD("ms=s+1,me=e-1
syn match antlrSep "[|:]\|\.\."
syn keyword antlrActionToken TOKEN SKIP MORE SPECIAL_TOKEN
syn keyword antlrError DEBUG IGNORE_IN_BNF

hi def link antlrSep Statement
hi def link antlrPackages Statement

let b:current_syntax = "antlr"

" vim: ts=8
PK�j�Z��L�HHvim80/syntax/lex.vimnu�[���" Vim syntax file
" Language:	Lex
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	16
" URL:	http://mysite.verizon.net/astronaut/vim/index.html#SYNTAX_LEX
"
" Option:
"   lex_uses_cpp : if this variable exists, then C++ is loaded rather than C

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C/C++ syntax to start with
let s:Cpath= fnameescape(expand("<sfile>:p:h").(exists("g:lex_uses_cpp")? "/cpp.vim" : "/c.vim"))
if !filereadable(s:Cpath)
 for s:Cpath in split(globpath(&rtp,(exists("g:lex_uses_cpp")? "syntax/cpp.vim" : "syntax/c.vim")),"\n")
  if filereadable(fnameescape(s:Cpath))
   let s:Cpath= fnameescape(s:Cpath)
   break
  endif
 endfor
endif
exe "syn include @lexCcode ".s:Cpath

" --- ========= ---
" --- Lex stuff ---
" --- ========= ---

" Options Section
syn match lexOptions '^%\s*option\>.*$' contains=lexPatString

" Abbreviations Section
if has("folding")
 syn region lexAbbrvBlock	fold start="^\(\h\+\s\|%{\)"	end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
else
 syn region lexAbbrvBlock	start="^\(\h\+\s\|%{\)"	end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
endif
syn match  lexAbbrv		"^\I\i*\s"me=e-1			skipwhite	contained nextgroup=lexAbbrvRegExp
syn match  lexAbbrv		"^%[sx]"					contained
syn match  lexAbbrvRegExp	"\s\S.*$"lc=1				contained nextgroup=lexAbbrv,lexInclude
if has("folding")
 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="\%^/\*"	end="\*/"	contains=@Spell
 syn region lexStartState	fold matchgroup=lexAbbrv	start="^%\a\+"	end="$"	contained
else
 syn region lexInclude	matchgroup=lexSep		start="^%{"	end="%}"	contained	contains=@lexCcode
 syn region lexAbbrvComment				start="^\s\+/\*"	end="\*/"	contains=@Spell
 syn region lexAbbrvComment				start="\%^/\*"	end="\*/"	contains=@Spell
 syn region lexStartState	matchgroup=lexAbbrv		start="^%\a\+"	end="$"	contained
endif

"%% : Patterns {Actions}
if has("folding")
 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	skipwhite	contained nextgroup=lexMorePat,lexPatSep,lexPattern contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
 syn region lexPatInclude	fold matchgroup=lexSep	start="^%{"	end="%}"	contained	contains=lexPatCode
 syn region lexBrace	fold			start="\[" skip=+\\\\\|\\+	end="]"			contained
 syn region lexPatString	fold matchgroup=String	start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
else
 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	skipwhite	contained nextgroup=lexMorePat,lexPatSep,lexPattern contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
 syn region lexPatInclude	matchgroup=lexSep		start="^%{"	end="%}"	contained	contains=lexPatCode
 syn region lexBrace				start="\[" skip=+\\\\\|\\+	end="]"			contained
 syn region lexPatString	matchgroup=String		start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
endif
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  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")
 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
else
 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
endif
syn match  lexPatCodeLine	"[^{\[].*"				contained contains=@lexCcode
syn match  lexMorePat	"\s*|\s*$"			skipnl	contained nextgroup=lexPat,lexPatTag,lexPatComment
syn match  lexPatSep	"\s\+"					contained nextgroup=lexMorePat,lexPatCode,lexPatCodeLine
syn match  lexSlashQuote	+\(\\\\\)*\\"+				contained
if has("folding")
 syn region lexPatCode matchgroup=Delimiter start="{" end="}"	fold	skipnl contained contains=@lexCcode,lexCFunctions
else
 syn region lexPatCode matchgroup=Delimiter start="{" end="}"	skipnl	contained contains=@lexCcode,lexCFunctions
endif

" Lex "functions" which may appear in C/C++ code blocks
syn keyword lexCFunctions	BEGIN	input	unput	woutput	yyleng	yylook	yytext
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
syn cluster cParenGroup	add=lex.*
syn cluster cDefineGroup	add=lex.*
syn cluster cPreProcGroup	add=lex.*
syn cluster cMultiGroup	add=lex.*

" Synchronization
syn sync clear
syn sync minlines=500
syn sync match lexSyncPat	grouphere  lexPatBlock	"^%[a-zA-Z]"
syn sync match lexSyncPat	groupthere lexPatBlock	"^<$"
syn sync match lexSyncPat	groupthere lexPatBlock	"^%%$"

" The default highlighting.
if !exists("skip_lex_syntax_inits")
 hi def link lexAbbrvComment	lexPatComment
 hi def link lexAbbrvRegExp	Macro
 hi def link lexAbbrv	SpecialChar
 hi def link lexBrace	lexPat
 hi def link lexCFunctions	Function
 hi def link lexCstruct	cStructure
 hi def link lexMorePat	SpecialChar
 hi def link lexOptions	PreProc
 hi def link lexPatComment	Comment
 hi def link lexPat		Function
 hi def link lexPatString	Function
 hi def link lexPatTag	Special
 hi def link lexPatTagZone	lexPatTag
 hi def link lexSep		Delimiter
 hi def link lexSlashQuote	lexPat
 hi def link lexStartState	Statement
endif

let b:current_syntax = "lex"

" vim:ts=10
PK�j�Z���H��vim80/syntax/sysctl.vimnu�[���" Vim syntax file
" Language:             sysctl.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-05-02

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   sysctlBegin   display '^'
                          \ nextgroup=sysctlToken,sysctlComment skipwhite

syn match   sysctlToken   contained display '[^=]\+'
                          \ nextgroup=sysctlTokenEq skipwhite

syn match   sysctlTokenEq contained display '=' nextgroup=sysctlValue skipwhite

syn region  sysctlValue   contained display oneline
                          \ matchgroup=sysctlValue start='\S'
                          \ matchgroup=Normal end='\s*$'

syn keyword sysctlTodo    contained TODO FIXME XXX NOTE

syn region  sysctlComment display oneline start='^\s*[#;]' end='$'
                          \ contains=sysctlTodo,@Spell

hi def link sysctlTodo    Todo
hi def link sysctlComment Comment
hi def link sysctlToken   Identifier
hi def link sysctlTokenEq Operator
hi def link sysctlValue   String

let b:current_syntax = "sysctl"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z`'U�
�
vim80/syntax/focexec.vimnu�[���" Vim syntax file
" Language:	Focus Executable
" Maintainer:	Rob Brady <robb@datatone.com>
" Last Change:	$Date: 2004/06/13 15:38:04 $
" URL:		http://www.datatone.com/~robb/vim/syntax/focexec.vim
" $Revision: 1.1 $

" this is a very simple syntax file - I will be improving it
" one thing is how to do computes
" I don't like that &vars and FUSE() functions highlight to the same color
" I think some of these things should get different hilights -
"  should MODIFY commands look different than TABLE?

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" A bunch of useful keywords
syn keyword focexecTable	TABLE SUM BY ACROSS END PRINT HOLD LIST NOPRINT
syn keyword focexecTable	SUBFOOT SUBHEAD HEADING FOOTING PAGE-BREAK AS
syn keyword focexecTable	WHERE AND OR NOSPLIT FORMAT
syn keyword focexecModify	MODIFY DATA ON FIXFORM PROMPT MATCH COMPUTE
syn keyword focexecModify	GOTO CASE ENDCASE TYPE NOMATCH REJECT INCLUDE
syn keyword focexecModify	CONTINUE FROM
syn keyword focexecNormal	CHECK FILE CREATE EX SET IF FILEDEF DEFINE
syn keyword focexecNormal	REBUILD IF RECORDLIMIT FI EQ JOIN
syn keyword focexecJoin		IN TO
syn keyword focexecFileDef	DISK
syn keyword focexecSet		MSG ALL
syn match   focexecDash		"-RUN"
syn match   focexecDash		"-PROMPT"
syn match   focexecDash		"-WINFORM"

" String and Character constants
syn region  focexecString1	start=+"+ end=+"+
syn region  focexecString2	start=+'+ end=+'+

"amper variables
syn match   focexecAmperVar	"&&\=[A-Z_]\+"

"fuse functions
syn keyword focexecFuse GETUSER GETUSR WHOAMI FEXERR ASIS GETTOK UPCASE LOCASE
syn keyword focexecFuse SUBSTR TODAY TODAYI POSIT HHMMSS BYTVAL EDAUT1 BITVAL
syn keyword focexecFuse BITSON FGETENV FPUTENV HEXBYT SPAWN YM YMI JULDAT
syn keyword focexecFuse JULDATI DOWK DOWKI DOWKLI CHGDAT CHGDATI FTOA ATODBL
syn keyword focexecFuse SOUNDEX RJUST REVERSE PARAG OVRLAY LJUST CTRFLD CTRAN
syn keyword focexecFuse CHKFMT ARGLEN GREGDT GREGDTI DTYMD DTYMDI DTDMY DTDMYI
syn keyword focexecFuse DTYDM DTYDMI DTMYD DTMYDI DTDYM DTDYMI DAYMD DAYMDI
syn keyword focexecFuse DAMDY DAMDYI DADMY DADMYI AYM AYMI AYMD AYMDI CHKPCK
syn keyword focexecFuse IMOD FMOD DMOD PCKOUT EXP BAR SPELLNM SPELLNUM RTCIVP
syn keyword focexecFuse PRDUNI PRDNOR RDNORM RDUNIF LCWORD ITOZ RLPHLD IBIPRO
syn keyword focexecFuse IBIPRW IBIPRC IBIPRU IBIRCP PTHDAT ITOPACK ITONUM
syn keyword focexecFuse DSMEXEC DSMEVAL DSMERRC MSMEXEC MSMEVAL MSMERRC EXTDXI
syn keyword focexecFuse BAANHASH EDAYSI DTOG GTOD HSETPT HPART HTIME HNAME
syn keyword focexecFuse HADD HDIFF HDATE HGETC HCNVRT HDTTM HMIDNT TEMPPATH
syn keyword focexecFuse DATEADD DATEDIF DATEMOV DATECVT EURHLD EURXCH FINDFOC
syn keyword focexecFuse FERRMES CNCTUSR CURRPATH USERPATH SYSTEM ASKYN
syn keyword focexecFuse FUSEMENU POPEDIT POPFILE

syn match   focexecNumber	"\<\d\+\>"
syn match   focexecNumber	"\<\d\+\.\d*\>"

syn match   focexecComment	"-\*.*"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link focexecString1		String
hi def link focexecString2		String
hi def link focexecNumber		Number
hi def link focexecComment		Comment
hi def link focexecTable		Keyword
hi def link focexecModify		Keyword
hi def link focexecNormal		Keyword
hi def link focexecSet		Keyword
hi def link focexecDash		Keyword
hi def link focexecFileDef		Keyword
hi def link focexecJoin		Keyword
hi def link focexecAmperVar	Identifier
hi def link focexecFuse		Function


let b:current_syntax = "focexec"

" vim: ts=8
PK�j�Z�w&�qqvim80/syntax/logindefs.vimnu�[���" Vim syntax file
" Language:             login.defs(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2010-11-29

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   logindefsBegin          display '^'
                                    \ nextgroup=
                                    \   logindefsComment,
                                    \   @logindefsKeyword
                                    \ skipwhite

syn region  logindefsComment        display oneline start='^\s*#' end='$'
                                    \ contains=logindefsTodo,@Spell

syn keyword logindefsTodo           contained TODO FIXME XXX NOTE

syn cluster logindefsKeyword        contains=
                                    \ logindefsBooleanKeyword,
                                    \ logindefsEncryptKeyword,
                                    \ logindefsNumberKeyword,
                                    \ logindefsPathKeyword,
                                    \ logindefsPathsKeyword,
                                    \ logindefsStringKeyword

syn keyword logindefsBooleanKeyword contained
                                    \ CHFN_AUTH
                                    \ CHSH_AUTH
                                    \ CREATE_HOME
                                    \ DEFAULT_HOME
                                    \ FAILLOG_ENAB
                                    \ LASTLOG_ENAB
                                    \ LOG_OK_LOGINS
                                    \ LOG_UNKFAIL_ENAB
                                    \ MAIL_CHECK_ENAB
                                    \ MD5_CRYPT_ENAB
                                    \ OBSCURE_CHECKS_ENAB
                                    \ PASS_ALWAYS_WARN
                                    \ PORTTIME_CHECKS_ENAB
                                    \ QUOTAS_ENAB
                                    \ SU_WHEEL_ONLY
                                    \ SYSLOG_SG_ENAB
                                    \ SYSLOG_SU_ENAB
                                    \ USERGROUPS_ENAB
                                    \ nextgroup=logindefsBoolean skipwhite

syn keyword logindefsBoolean        contained yes no

syn keyword logindefsEncryptKeyword contained
                                    \ ENCRYPT_METHOD
                                    \ nextgroup=logindefsEncryptMethod skipwhite

syn keyword logindefsEncryptMethod  contained
                                    \ DES
                                    \ MD5
                                    \ SHA256
                                    \ SHA512

syn keyword logindefsNumberKeyword  contained
                                    \ ERASECHAR
                                    \ FAIL_DELAY
                                    \ GID_MAX
                                    \ GID_MIN
                                    \ KILLCHAR
                                    \ LOGIN_RETRIES
                                    \ LOGIN_TIMEOUT
                                    \ MAX_MEMBERS_PER_GROUP
                                    \ PASS_CHANGE_TRIES
                                    \ PASS_MAX_DAYS
                                    \ PASS_MIN_DAYS
                                    \ PASS_WARN_AGE
                                    \ PASS_MAX_LEN
                                    \ PASS_MIN_LEN
                                    \ SHA_CRYPT_MAX_ROUNDS
                                    \ SHA_CRYPT_MIN_ROUNDS
                                    \ SYS_GID_MAX
                                    \ SYS_GID_MIN
                                    \ SYS_UID_MAX
                                    \ SYS_UID_MIN
                                    \ UID_MAX
                                    \ UID_MIN
                                    \ ULIMIT
                                    \ UMASK
                                    \ nextgroup=@logindefsNumber skipwhite

syn cluster logindefsNumber         contains=
                                    \ logindefsDecimal,
                                    \ logindefsHex,
                                    \ logindefsOctal,
                                    \ logindefsOctalError

syn match   logindefsDecimal        contained '\<\d\+\>'

syn match   logindefsHex            contained display '\<0x\x\+\>'

syn match   logindefsOctal          contained display '\<0\o\+\>'
                                    \ contains=logindefsOctalZero
syn match   logindefsOctalZero      contained display '\<0'

syn match   logindefsOctalError     contained display '\<0\o*[89]\d*\>'

syn keyword logindefsPathKeyword    contained
                                    \ ENVIRON_FILE
                                    \ FAKE_SHELL
                                    \ FTMP_FILE
                                    \ HUSHLOGIN_FILE
                                    \ ISSUE_FILE
                                    \ MAIL_DIR
                                    \ MAIL_FILE
                                    \ NOLOGINS_FILE
                                    \ SULOG_FILE
                                    \ TTYTYPE_FILE
                                    \ nextgroup=logindefsPath skipwhite

syn match   logindefsPath           contained '[[:graph:]]\+'

syn keyword logindefsPathsKeyword   contained
                                    \ CONSOLE
                                    \ ENV_PATH
                                    \ ENV_SUPATH
                                    \ MOTD_FILE
                                    \ nextgroup=logindefsPaths skipwhite

syn match   logindefsPaths          contained '[^:]\+'
                                    \ nextgroup=logindefsPathDelim

syn match   logindefsPathDelim      contained ':' nextgroup=logindefsPaths

syn keyword logindefsStringKeyword  contained
                                    \ CHFN_RESTRICT
                                    \ CONSOLE_GROUPS
                                    \ ENV_HZ
                                    \ ENV_TZ
                                    \ LOGIN_STRING
                                    \ SU_NAME
                                    \ TTYGROUP
                                    \ TTYPERM
                                    \ USERDEL_CMD
                                    \ nextgroup=logindefsString skipwhite

syn match   logindefsString         contained '[[:graph:]]\+'

hi def link logindefsComment        Comment
hi def link logindefsTodo           Todo
hi def link logindefsKeyword        Keyword
hi def link logindefsBooleanKeyword logindefsKeyword
hi def link logindefsEncryptKeyword logindefsKeyword
hi def link logindefsNumberKeyword  logindefsKeyword
hi def link logindefsPathKeyword    logindefsKeyword
hi def link logindefsPathsKeyword   logindefsKeyword
hi def link logindefsStringKeyword  logindefsKeyword
hi def link logindefsBoolean        Boolean
hi def link logindefsEncryptMethod  Type
hi def link logindefsNumber         Number
hi def link logindefsDecimal        logindefsNumber
hi def link logindefsHex            logindefsNumber
hi def link logindefsOctal          logindefsNumber
hi def link logindefsOctalZero      PreProc
hi def link logindefsOctalError     Error
hi def link logindefsPath           String
hi def link logindefsPaths          logindefsPath
hi def link logindefsPathDelim      Delimiter
hi def link logindefsString         String

let b:current_syntax = "logindefs"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�!��{
{
vim80/syntax/avra.vimnu�[���" Vim syntax file
" Language:     AVR Assembler (AVRA)
" AVRA Home:    http://avra.sourceforge.net/index.html
" AVRA Version: 1.3.0
" Last Update:	2016 Oct 7
" Maintainer:	  Marius Ghita <mhitza@gmail.com>

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

syn keyword avraRegister r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14
syn keyword avraRegister r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27
syn keyword avraRegister r28 r29 r30 r31

syn keyword avraInstr add adc adiw sub subi sbc sbci sbiw and andi or ori eor
syn keyword avraInstr com neg sbr cbr inc dec tst clr ser mul muls mulsu fmul
syn keyword avraInstr fmuls fmulsu des rjmp ijmp eijmp jmp rcall icall eicall
syn keyword avraInstr call ret reti cpse cp cpc cpi sbrc sbrs sbic sbis brbs
syn keyword avraInstr brbc breq brne brcs brcc brsh brlo brmi brpl brge brlt
syn keyword avraInstr brhs brhc brts brtc brvs brvc brie brid mov movw ldi lds
syn keyword avraInstr ld ldd sts st std lpm elpm spm in out push pop xch las
syn keyword avraInstr lac lat lsl lsr rol ror asr swap bset bclr sbi cbi bst bld
syn keyword avraInstr sec clc sen cln sez clz sei cli ses cls sev clv set clt
syn keyword avraInstr seh clh break nop sleep wdr

syn keyword avraDirective .byte .cseg .db .def .device .dseg .dw .endmacro .equ
syn keyword avraDirective .eseg .exit .include .list .listmac .macro .nolist
syn keyword avraDirective .org .set .define .undef .ifdef .ifndef .if .else
syn keyword avraDirective .elif .elseif .warning

syn keyword avraOperator low high byte2 byte3 byte4 lwrd hwrd page exp2 log2

syn match avraNumericOperator "[-*/+]"
syn match avraUnaryOperator   "!"
syn match avraBinaryOperator  "<<\|>>\|<\|<=\|>\|>=\|==\|!="
syn match avraBitwiseOperator "[~&^|]\|&&\|||"

syn match avraBinaryNumber    "\<0[bB][0-1]*\>"
syn match avraHexNumber       "\<0[xX][0-9a-fA-F]\+\>"
syn match avraDecNumber       "\<\(0\|[1-9]\d*\)\>"

syn region avraComment start=";" end="$"
syn region avraString  start="\"" end="\"\|$"

syn match avraLabel "^\s*[^; \t]\+:"

hi def link avraBinaryNumber    avraNumber
hi def link avraHexNumber       avraNumber
hi def link avraDecNumber       avraNumber

hi def link avraNumericOperator avraOperator
hi def link avraUnaryOperator   avraOperator
hi def link avraBinaryOperator  avraOperator
hi def link avraBitwiseOperator avraOperator


hi def link avraOperator  operator
hi def link avraComment   comment
hi def link avraDirective preproc
hi def link avraRegister  type
hi def link avraNumber    constant
hi def link avraString    String
hi def link avraInstr     keyword
hi def link avraLabel     label

let b:current_syntax = "avra"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z.����vim80/syntax/doxygen.vimnu�[���" DoxyGen syntax hilighting extension for c/c++/idl/java
" Language:     doxygen on top of c, cpp, idl, java, php
" Maintainer:   Michael Geddes <vimmer@frog.wheelycreek.net>
" Author:       Michael Geddes
" Last Change: November 2017 (\throws by Candy Gumdrop)
" Version:      1.27
"
" Copyright 2004-2017 Michael Geddes
" Please feel free to use, modify & distribute all or part of this script,
" providing this copyright message remains.
" I would appreciate being acknowledged in any derived scripts, and would
" appreciate and welcome any updates, modifications or suggestions.

" NOTE:  Comments welcome!
"
" There are two variables that control the syntax highlighting produced by this
" script:
" doxygen_enhanced_colour  - Use the (non-standard) original colours designed
"                            for this highlighting.
" doxygen_my_rendering     - Disable the HTML bold/italic/underline rendering.
"
" A brief description without '.' or '!' will cause the end comment
" character to be marked as an error.  You can define the colour of this using
" the highlight doxygenErrorComment.
" A \link without an \endlink will cause an error highlight on the end-comment.
" This is defined by doxygenLinkError
"
" The variable g:doxygen_codeword_font can be set to the guifont for marking \c
" words - a 'typewriter' like font normally. Spaces must be escaped.  It can
" also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord
" can be used to override it.
"
" By default, highlighting is done assuming you have the JAVADOC_AUTOBRIEF
" setting turned on in your Doxygen configuration.  If you don't, you
" can set the variable g:doxygen_javadoc_autobrief to 0 to have the
" highlighting more accurately reflect the way Doxygen will interpret your
" comments.
"
" Support for cpp, c, idl, doxygen and php.
"
" Special thanks to:  Wu Yongwei, Toby Allsopp
"

if exists('b:suppress_doxygen')
  unlet b:suppress_doxygen
  finish
endif

if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script')
  finish
endif

let s:cpo_save = &cpo
try
  set cpo&vim

  " Start of Doxygen syntax hilighting:
  "

  " C/C++ Style line comments
  syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+ containedin=phpRegion
  syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion
  syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+
  syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion

  syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO,doxygenLeadingWhite  keepend fold containedin=phpRegion
  syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenLeadingLWhite,doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenCommentWhite2 fold containedin=phpRegion
  syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion
  syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
  syn region doxygenComment start=+/\*@\ze[{}]+ end=+\*/+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion

  " Single line brief followed by multiline comment.
  syn match doxygenCommentWhite2 +\_s*\ze/\*\(\*/\)\@![*!]+ contained nextgroup=doxygenComment2
  syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
  " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
  syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl

  " Skip empty lines at the start for when comments start on the 2nd/3rd line.
  syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl
  syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl
  syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl


  " Match the Starting pattern (effectively creating the start of a BNF)
  if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
    syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial
    syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeaingLWhite,doxygenPrevL,doxygenBriefL,doxygenSpecial
    " Match the first sentence as a brief comment
    if ! exists('g:doxygen_end_punctuation')
      let g:doxygen_end_punctuation='[.]'
    endif

    exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueCommentWhite,doxygenLeadingWhite,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell  skipnl nextgroup=doxygenBody'

    syn match doxygenBriefEndComment +\*/+ contained

    exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend'
    syn match doxygenPrevL +<+ contained  nextgroup=doxygenBriefL,doxygenSpecial skipwhite
  else
    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
    syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeadingLWhite,doxygenPrevL,doxygenLine,doxygenSpecial
    syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial
    syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
    syn match doxygenPrevL +<+ contained  nextgroup=doxygenLine,doxygenSpecial skipwhite

  endif

  " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
  syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
  " Match an [@\]brief so that it moves to body-mode.
  "
  "
  " syn match doxygenBriefLine  contained
  syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
  " syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
  syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained



" end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+
"syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contains=doxygenContinueCommentWhite,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell  skipwhite keepend matchgroup=xxx
syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+  skipwhite keepend matchgroup=xxx
" syn region doxygenBriefLine matchgroup=xxxy contained start=+\<\k.\++ skip=+^\s*\k+ end=+end+  skipwhite keepend
"doxygenFindBriefSpecial,
  "" syn region doxygenSpecialMultilineDesc  start=+.\++ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell  skipwhite keepend


  " Match a '<' for applying a comment to the previous element.
  syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkipWhite skipwhite

if exists("c_comment_strings")
  " These are anti-Doxygen comments.  If there are more than two asterisks or 3 '/'s
  " then turn the comments back into normal C comments.
  syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
  syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
else
  syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError
  syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError
endif

  " Special commands at the start of the area:  starting with '@' or '\'
  syn region doxygenStartSpecial contained start=+[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1  contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend
  syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite

  "syn region doxygenBodyBit contained start=+$+

  " The main body of a doxygen comment.
  syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueCommentWhite,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell

  " These allow the skipping of comment continuation '*' characters.
  syn match doxygenContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenContinueComment
  syn match doxygenContinueComment contained +\*/\@!+

  " Catch a Brief comment without punctuation - flag it as an error but
  " make sure the end comment is picked up also.
  syn match doxygenErrorComment contained +\*/+


  " Skip empty lines at the start for when comments start on the 2nd/3rd line.
  if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
    syn match doxygenStartSkipWhite +^\s*\ze\*/\@!+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
    "syn match doxygenStartSkipWhite +^\s*\ze\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
  else
    syn match doxygenStartSkipWhite +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl
    syn match doxygenStartSkipWhite +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl
  endif

  " Create the single word matching special identifiers.

  fun! s:DxyCreateSmallSpecial( kword, name )

    let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
    exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueCommentWhite,doxygen'.a:name.'Word'
    exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
  endfun
  call s:DxyCreateSmallSpecial('p', 'Code')
  call s:DxyCreateSmallSpecial('c', 'Code')
  call s:DxyCreateSmallSpecial('b', 'Bold')
  call s:DxyCreateSmallSpecial('e', 'Emphasised')
  call s:DxyCreateSmallSpecial('em', 'Emphasised')
  call s:DxyCreateSmallSpecial('a', 'Argument')
  call s:DxyCreateSmallSpecial('ref', 'Ref')
  delfun s:DxyCreateSmallSpecial

  syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word

  " Now for special characters
  syn match doxygenSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion
  " doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
  "
  syn match doxygenGroupDefine contained +@\@<=[{}]+
  syn match doxygenGroupDefineSpecial contained +@\ze[{}]+

  syn match doxygenErrorSpecial contained +\s+

  " Match parameters and retvals (highlighting the first word as special).
  syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
  syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
  syn keyword doxygenTParam contained tparam nextgroup=doxygenParamName skipwhite
  syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
  syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite

  " Match one line identifiers.
  syn keyword doxygenOther contained addindex anchor
  \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
  \ example htmlonly image include includelineno ingroup internal latexonly line
  \ overload relates relatesalso sa skip skipline
  \ until verbinclude version addtogroup htmlinclude copydoc dotfile
  \ xmlonly endxmlonly
  \ nextgroup=doxygenSpecialOnelineDesc copybrief copydetails copyright dir extends
  \ implements

  syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell
  syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+

  syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell
  syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+

  if exists('b:current_syntax')
    let b:doxygen_syntax_save=b:current_syntax
    unlet b:current_syntax
  endif

  syn include @Dotx syntax/dot.vim

  if exists('b:doxygen_syntax_save')
    let b:current_syntax=b:doxygen_syntax_save
    unlet b:doxygen_syntax_save
  else
    unlet b:current_syntax
  endif

  syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueCommentWhite,@NoSpell,@Dotx
  syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+

  " Match single line identifiers.
  syn keyword doxygenBOther contained class enum file fn mainpage interface
  \ namespace struct typedef union var def name
  \ nextgroup=doxygenSpecialTypeOnelineDesc

  syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
  syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc

  syn keyword doxygenOther contained arg author authors date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
  syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
  syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
  syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc

  " Handle \link, \endlink, highlighting the link-to and the link text bits separately.
  syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueCommentWhite,doxygenLinkError,doxygenEndlinkSpecial
  syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+

  syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
  syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
  syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest
  syn match doxygenLinkError "\*/" contained
  " #Link hilighting.
  syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
  syn match doxygenHashSpecial /#/ contained
  syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained

  " Handle \page.  This does not use doxygenBrief.
  syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
  syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
  syn region doxygenPageDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
  syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc

  " Handle section
  syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
  syn region doxygenSpecialSectionDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueCommentWhite
  syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc

  " Does the one-line description for the one-line type identifiers.
  syn region doxygenSpecialTypeOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
  syn region doxygenSpecialOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend

  " Handle the multiline description for the multiline type identifiers.
  " Continue until an 'empty' line (can contain a '*' continuation) or until the
  " next whole-line @ command \ command.
  syn region doxygenSpecialMultilineDesc  start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell  skipwhite keepend

"  syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
  syn match doxygenSpecialContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenSpecialContinueComment
  syn match doxygenSpecialContinueComment contained +\*/\@!+


  " Handle special cases  'bold' and 'group'
  syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
  syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite
  syn match doxygenSpecialHeading +.\++ contained skipwhite
  syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite
  syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite

  " Handle special symbol identifiers  @$, @\, @$ etc
  syn match doxygenSymbol contained +[$\\&<>#n]+

  " Simplistic handling of formula regions
  syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
  syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped
  syn match doxygenFormulaEscaped contained "."
  syn match doxygenFormulaKeyword contained  "[a-z]\+"
  syn match doxygenFormulaOperator contained +[_^]+

  syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom
  syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator

  " Add TODO hilighting.
  syn keyword doxygenTODO contained TODO README XXX FIXME

  " Supported HTML subset.  Not perfect, but okay.
  syn case ignore
  syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueCommentWhite,doxygenHtmlVar
  syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite
  syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
  syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
  syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite
  syn case match
  syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);"

  syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink

  syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueCommentWhite
  " Html Support
  syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
  hi link doxygenHtmlLink Underlined

  syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
  syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
  syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
  syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
  syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
  syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell

  syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell
  syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
  syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
  syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
  syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
  syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell

  syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell
  syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
  syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
  syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell
  syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
  syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell

  syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell

  " Prevent the doxygen contained matches from leaking into the c/rc groups.
  syn cluster cParenGroup add=doxygen.*
  syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
  syn cluster cPreProcGroup add=doxygen.*
  syn cluster cMultiGroup add=doxygen.*
  syn cluster rcParenGroup add=doxygen.*
  syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL
  syn cluster rcGroup add=doxygen.*

  let s:my_syncolor=0
  if !exists(':SynColor')
    command -nargs=+ SynColor hi def <args>
    let s:my_syncolor=1
  endif

  let s:my_synlink=0
  if !exists(':SynLink')
    command -nargs=+ SynLink hi def link <args>
    let s:my_synlink=1
  endif

  try
    "let did_doxygen_syntax_inits = &background
    hi doxygen_Dummy guifg=black

    fun! s:Doxygen_Hilights_Base()
      SynLink doxygenHtmlSpecial Special
      SynLink doxygenHtmlVar Type
      SynLink doxygenHtmlExpr String

      SynLink doxygenSmallSpecial SpecialChar

      SynLink doxygenSpecialCodeWord doxygenSmallSpecial
      SynLink doxygenSpecialBoldWord doxygenSmallSpecial
      SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial
      SynLink doxygenSpecialArgumentWord doxygenSmallSpecial

      " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
      SynLink doxygenFormulaKeyword Keyword
      "SynColor doxygenFormulaEscaped  ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
      SynLink doxygenFormulaEscaped Special
      SynLink doxygenFormulaOperator Operator
      SynLink doxygenFormula Statement
      SynLink doxygenSymbol Constant
      SynLink doxygenSpecial Special
      SynLink doxygenFormulaSpecial Special
      "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue
    endfun
    call s:Doxygen_Hilights_Base()

    fun! s:Doxygen_Hilights()
      " Pick a sensible default for 'codeword'.
      let font=''
      if exists('g:doxygen_codeword_font')
        if g:doxygen_codeword_font !~ '\<\k\+='
          let font='font='.g:doxygen_codeword_font
        else
          let font=g:doxygen_codeword_font
        endif
      else
        " Try and pick a font (only some platforms have been tested).
        if has('gui_running')
          if has('gui_gtk2')
            if &guifont == ''
              let font="font='FreeSerif 12'"
            else
              let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'"
            endif

          elseif has('gui_win32') || has('gui_win16') || has('gui_win95')

            if exists('g:doxygen_use_bitsream_vera')  && g:doxygen_use_bitsream_vera
              let font_base='Bitstream_Vera_Sans_Mono'
            else
              let font_base='Lucida_Console'
            endif
            if &guifont == ''
              let font='font='.font_base.':h10'
            else
              let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*')
            endif
          elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
            if &guifont == ''
              let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1'
            else
            " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','')
            " The above line works, but it is hard to expect the combination of
            " the two fonts will look good.
            endif
          elseif has('gui_kde')
            " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0'
          endif
        endif
      endif
      if font=='' | let font='gui=bold' | endif
      exe 'SynColor doxygenCodeWord             term=bold cterm=bold '.font
      if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour)
        if &background=='light'
          SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed
          SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold
          SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue
          SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold
          SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold
          SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa
          SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold
          SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold
          SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold
          SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen
        else
          SynColor doxygenComment ctermfg=LightRed guifg=LightRed
          SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic
          SynColor doxygenBody ctermfg=Cyan guifg=LightBlue
          SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold
          SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold
          SynColor doxygenParam ctermfg=LightGray guifg=LightGray
          SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold
          SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold
          SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold
          SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen
        endif
      else
        SynLink doxygenComment SpecialComment
        SynLink doxygenBrief Statement
        SynLink doxygenBody Comment
        SynLink doxygenSpecialTypeOnelineDesc Statement
        SynLink doxygenBOther Constant
        SynLink doxygenParam SpecialComment
        SynLink doxygenParamName Underlined
        SynLink doxygenSpecialOnelineDesc Statement
        SynLink doxygenSpecialHeading Statement
        SynLink doxygenPrev SpecialComment
      endif
    endfun

    call s:Doxygen_Hilights()

    syn match doxygenLeadingWhite +\(^\s*\*\)\@<=\s*+ contained

    " This is still a proposal, but won't do any harm.
    aug doxygengroup
    au!
    au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base()
    au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights()
    aug END


    SynLink doxygenBody                   Comment
    SynLink doxygenLine                   doxygenBody
    SynLink doxygenTODO                   Todo
    SynLink doxygenOtherTODO              Todo
    SynLink doxygenOtherWARN              Todo
    SynLink doxygenOtherBUG               Todo
    SynLink doxygenLeadingLWhite          doxygenBody

    SynLink doxygenErrorSpecial           Error
    SynLink doxygenErrorEnd               Error
    SynLink doxygenErrorComment           Error
    SynLink doxygenLinkError              Error
    SynLink doxygenBriefSpecial           doxygenSpecial
    SynLink doxygenHashSpecial            doxygenSpecial
    SynLink doxygenGroupDefineSpecial     doxygenSpecial
    SynLink doxygenEndlinkSpecial         doxygenSpecial
    SynLink doxygenCodeRegionSpecial      doxygenSpecial
    SynLink doxygenVerbatimRegionSpecial  doxygenSpecial
    SynLink doxygenDotRegionSpecial       doxygenSpecial
    SynLink doxygenGroupDefine            doxygenParam

    SynLink doxygenSpecialMultilineDesc   doxygenSpecialOnelineDesc
    SynLink doxygenFormulaEnds            doxygenSpecial
    SynLink doxygenBold                   doxygenParam
    SynLink doxygenBriefWord              doxygenParam
    SynLink doxygenRetval                 doxygenParam
    SynLink doxygenOther                  doxygenParam
    SynLink doxygenStart                  doxygenComment
    SynLink doxygenStart2                 doxygenStart
    SynLink doxygenComment2               doxygenComment
    SynLink doxygenCommentL               doxygenComment
    SynLink doxygenContinueComment        doxygenComment
    SynLink doxygenSpecialContinueComment doxygenComment
    SynLink doxygenSkipComment            doxygenComment
    SynLink doxygenEndComment             doxygenComment
    SynLink doxygenStartL                 doxygenComment
    SynLink doxygenBriefEndComment        doxygenComment
    SynLink doxygenPrevL                  doxygenPrev
    SynLink doxygenBriefL                 doxygenBrief
    SynLink doxygenBriefLine              doxygenBrief
    SynLink doxygenHeaderLine             doxygenSpecialHeading
    SynLink doxygenCommentWhite           Normal
    SynLink doxygenCommentWhite2          doxygenCommentWhite
    SynLink doxygenContinueCommentWhite   doxygenCommentWhite
    SynLink doxygenStartSkipWhite         doxygenContinueCommentWhite
    SynLink doxygenLinkWord               doxygenParamName
    SynLink doxygenLinkRest               doxygenSpecialMultilineDesc
    SynLink doxygenHyperLink              doxygenLinkWord
    SynLink doxygenHashLink               doxygenLinkWord

    SynLink doxygenPage                   doxygenSpecial
    SynLink doxygenPagePage               doxygenBOther
    SynLink doxygenPageIdent              doxygenParamName
    SynLink doxygenPageDesc               doxygenSpecialTypeOnelineDesc

    SynLink doxygenSpecialIdent           doxygenPageIdent
    SynLink doxygenSpecialSectionDesc     doxygenSpecialMultilineDesc

    SynLink doxygenSpecialRefWord         doxygenOther
    SynLink doxygenRefWord                doxygenPageIdent
    SynLink doxygenContinueLinkComment    doxygenComment

    SynLink doxygenHtmlCh                 Function
    SynLink doxygenHtmlCmd                Statement
    SynLink doxygenHtmlBoldItalicUnderline     doxygenHtmlBoldUnderlineItalic
    SynLink doxygenHtmlUnderlineBold           doxygenHtmlBoldUnderline
    SynLink doxygenHtmlUnderlineItalicBold     doxygenHtmlBoldUnderlineItalic
    SynLink doxygenHtmlUnderlineBoldItalic     doxygenHtmlBoldUnderlineItalic
    SynLink doxygenHtmlItalicUnderline         doxygenHtmlUnderlineItalic
    SynLink doxygenHtmlItalicBold              doxygenHtmlBoldItalic
    SynLink doxygenHtmlItalicBoldUnderline     doxygenHtmlBoldUnderlineItalic
    SynLink doxygenHtmlItalicUnderlineBold     doxygenHtmlBoldUnderlineItalic
    SynLink doxygenHtmlLink                    Underlined

    SynLink doxygenParamDirection              StorageClass


    if !exists("doxygen_my_rendering") && !exists("html_my_rendering")
      SynColor doxygenBoldWord             term=bold cterm=bold gui=bold
      SynColor doxygenEmphasisedWord       term=italic cterm=italic gui=italic
      SynLink  doxygenArgumentWord         doxygenEmphasisedWord
      SynLink  doxygenHtmlCode             doxygenCodeWord
      SynLink  doxygenHtmlBold             doxygenBoldWord
      SynColor doxygenHtmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline
      SynColor doxygenHtmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic
      SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
      SynColor doxygenHtmlUnderline        term=underline cterm=underline gui=underline
      SynColor doxygenHtmlUnderlineItalic  term=italic,underline cterm=italic,underline gui=italic,underline
      SynColor doxygenHtmlItalic           term=italic cterm=italic gui=italic
    endif

  finally
    if s:my_synlink | delcommand SynLink | endif
    if s:my_syncolor | delcommand SynColor | endif
  endtry

  if &syntax=='idl'
    syn cluster idlCommentable add=doxygenComment,doxygenCommentL
  endif

  "syn sync clear
  "syn sync maxlines=500
  "syn sync minlines=50
  syn sync match doxygenComment groupthere cComment "/\@<!/\*"
  syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]"
  "syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend
  syn sync match doxygenSyncEndComment groupthere NONE "\*/"

  if !exists('b:current_syntax')
    let b:current_syntax = "doxygen"
  else
    let b:current_syntax = b:current_syntax.'.doxygen'
  endif

finally
  let &cpo = s:cpo_save
  unlet s:cpo_save
endtry
let suppress_doxygen=1
" vim:et sw=2 sts=2
PK�j�Z�d�3<3<vim80/syntax/pine.vimnu�[���" Vim syntax file
" Language:	Pine (email program) run commands
" Maintainer:	David Pascoe <pascoedj@spamcop.net>
" Last Change:	Thu Feb 27 10:18:48 WST 2003, update for pine 4.53

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=@,48-57,_,128-167,224-235,-

syn keyword pineConfig addrbook-sort-rule
syn keyword pineConfig address-book
syn keyword pineConfig addressbook-formats
syn keyword pineConfig alt-addresses
syn keyword pineConfig bugs-additional-data
syn keyword pineConfig bugs-address
syn keyword pineConfig bugs-fullname
syn keyword pineConfig character-set
syn keyword pineConfig color-style
syn keyword pineConfig compose-mime
syn keyword pineConfig composer-wrap-column
syn keyword pineConfig current-indexline-style
syn keyword pineConfig cursor-style
syn keyword pineConfig customized-hdrs
syn keyword pineConfig debug-memory
syn keyword pineConfig default-composer-hdrs
syn keyword pineConfig default-fcc
syn keyword pineConfig default-saved-msg-folder
syn keyword pineConfig disable-these-authenticators
syn keyword pineConfig disable-these-drivers
syn keyword pineConfig display-filters
syn keyword pineConfig download-command
syn keyword pineConfig download-command-prefix
syn keyword pineConfig editor
syn keyword pineConfig elm-style-save
syn keyword pineConfig empty-header-message
syn keyword pineConfig fcc-name-rule
syn keyword pineConfig feature-level
syn keyword pineConfig feature-list
syn keyword pineConfig file-directory
syn keyword pineConfig folder-collections
syn keyword pineConfig folder-extension
syn keyword pineConfig folder-sort-rule
syn keyword pineConfig font-char-set
syn keyword pineConfig font-name
syn keyword pineConfig font-size
syn keyword pineConfig font-style
syn keyword pineConfig forced-abook-entry
syn keyword pineConfig form-letter-folder
syn keyword pineConfig global-address-book
syn keyword pineConfig goto-default-rule
syn keyword pineConfig header-in-reply
syn keyword pineConfig image-viewer
syn keyword pineConfig inbox-path
syn keyword pineConfig incoming-archive-folders
syn keyword pineConfig incoming-folders
syn keyword pineConfig incoming-startup-rule
syn keyword pineConfig index-answered-background-color
syn keyword pineConfig index-answered-foreground-color
syn keyword pineConfig index-deleted-background-color
syn keyword pineConfig index-deleted-foreground-color
syn keyword pineConfig index-format
syn keyword pineConfig index-important-background-color
syn keyword pineConfig index-important-foreground-color
syn keyword pineConfig index-new-background-color
syn keyword pineConfig index-new-foreground-color
syn keyword pineConfig index-recent-background-color
syn keyword pineConfig index-recent-foreground-color
syn keyword pineConfig index-to-me-background-color
syn keyword pineConfig index-to-me-foreground-color
syn keyword pineConfig index-unseen-background-color
syn keyword pineConfig index-unseen-foreground-color
syn keyword pineConfig initial-keystroke-list
syn keyword pineConfig kblock-passwd-count
syn keyword pineConfig keylabel-background-color
syn keyword pineConfig keylabel-foreground-color
syn keyword pineConfig keyname-background-color
syn keyword pineConfig keyname-foreground-color
syn keyword pineConfig last-time-prune-questioned
syn keyword pineConfig last-version-used
syn keyword pineConfig ldap-servers
syn keyword pineConfig literal-signature
syn keyword pineConfig local-address
syn keyword pineConfig local-fullname
syn keyword pineConfig mail-check-interval
syn keyword pineConfig mail-directory
syn keyword pineConfig mailcap-search-path
syn keyword pineConfig mimetype-search-path
syn keyword pineConfig new-version-threshold
syn keyword pineConfig news-active-file-path
syn keyword pineConfig news-collections
syn keyword pineConfig news-spool-directory
syn keyword pineConfig newsrc-path
syn keyword pineConfig nntp-server
syn keyword pineConfig normal-background-color
syn keyword pineConfig normal-foreground-color
syn keyword pineConfig old-style-reply
syn keyword pineConfig operating-dir
syn keyword pineConfig patterns
syn keyword pineConfig patterns-filters
syn keyword pineConfig patterns-filters2
syn keyword pineConfig patterns-indexcolors
syn keyword pineConfig patterns-other
syn keyword pineConfig patterns-roles
syn keyword pineConfig patterns-scores
syn keyword pineConfig patterns-scores2
syn keyword pineConfig personal-name
syn keyword pineConfig personal-print-category
syn keyword pineConfig personal-print-command
syn keyword pineConfig postponed-folder
syn keyword pineConfig print-font-char-set
syn keyword pineConfig print-font-name
syn keyword pineConfig print-font-size
syn keyword pineConfig print-font-style
syn keyword pineConfig printer
syn keyword pineConfig prompt-background-color
syn keyword pineConfig prompt-foreground-color
syn keyword pineConfig pruned-folders
syn keyword pineConfig pruning-rule
syn keyword pineConfig quote1-background-color
syn keyword pineConfig quote1-foreground-color
syn keyword pineConfig quote2-background-color
syn keyword pineConfig quote2-foreground-color
syn keyword pineConfig quote3-background-color
syn keyword pineConfig quote3-foreground-color
syn keyword pineConfig read-message-folder
syn keyword pineConfig remote-abook-history
syn keyword pineConfig remote-abook-metafile
syn keyword pineConfig remote-abook-validity
syn keyword pineConfig reply-indent-string
syn keyword pineConfig reply-leadin
syn keyword pineConfig reverse-background-color
syn keyword pineConfig reverse-foreground-color
syn keyword pineConfig rsh-command
syn keyword pineConfig rsh-open-timeout
syn keyword pineConfig rsh-path
syn keyword pineConfig save-by-sender
syn keyword pineConfig saved-msg-name-rule
syn keyword pineConfig scroll-margin
syn keyword pineConfig selectable-item-background-color
syn keyword pineConfig selectable-item-foreground-color
syn keyword pineConfig sending-filters
syn keyword pineConfig sendmail-path
syn keyword pineConfig show-all-characters
syn keyword pineConfig signature-file
syn keyword pineConfig smtp-server
syn keyword pineConfig sort-key
syn keyword pineConfig speller
syn keyword pineConfig ssh-command
syn keyword pineConfig ssh-open-timeout
syn keyword pineConfig ssh-path
syn keyword pineConfig standard-printer
syn keyword pineConfig status-background-color
syn keyword pineConfig status-foreground-color
syn keyword pineConfig status-message-delay
syn keyword pineConfig suggest-address
syn keyword pineConfig suggest-fullname
syn keyword pineConfig tcp-open-timeout
syn keyword pineConfig tcp-query-timeout
syn keyword pineConfig tcp-read-warning-timeout
syn keyword pineConfig tcp-write-warning-timeout
syn keyword pineConfig threading-display-style
syn keyword pineConfig threading-expanded-character
syn keyword pineConfig threading-index-style
syn keyword pineConfig threading-indicator-character
syn keyword pineConfig threading-lastreply-character
syn keyword pineConfig title-background-color
syn keyword pineConfig title-foreground-color
syn keyword pineConfig titlebar-color-style
syn keyword pineConfig upload-command
syn keyword pineConfig upload-command-prefix
syn keyword pineConfig url-viewers
syn keyword pineConfig use-only-domain-name
syn keyword pineConfig user-domain
syn keyword pineConfig user-id
syn keyword pineConfig user-id
syn keyword pineConfig user-input-timeout
syn keyword pineConfig viewer-hdr-colors
syn keyword pineConfig viewer-hdrs
syn keyword pineConfig viewer-overlap
syn keyword pineConfig window-position

syn keyword pineOption allow-changing-from
syn keyword pineOption allow-talk
syn keyword pineOption alternate-compose-menu
syn keyword pineOption assume-slow-link
syn keyword pineOption auto-move-read-msgs
syn keyword pineOption auto-open-next-unread
syn keyword pineOption auto-unzoom-after-apply
syn keyword pineOption auto-zoom-after-select
syn keyword pineOption cache-remote-pinerc
syn keyword pineOption check-newmail-when-quitting
syn keyword pineOption combined-addrbook-display
syn keyword pineOption combined-folder-display
syn keyword pineOption combined-subdirectory-display
syn keyword pineOption compose-cut-from-cursor
syn keyword pineOption compose-maps-delete-key-to-ctrl-d
syn keyword pineOption compose-rejects-unqualified-addrs
syn keyword pineOption compose-send-offers-first-filter
syn keyword pineOption compose-sets-newsgroup-without-confirm
syn keyword pineOption confirm-role-even-for-default
syn keyword pineOption continue-tab-without-confirm
syn keyword pineOption delete-skips-deleted
syn keyword pineOption disable-2022-jp-conversions
syn keyword pineOption disable-busy-alarm
syn keyword pineOption disable-charset-conversions
syn keyword pineOption disable-config-cmd
syn keyword pineOption disable-keyboard-lock-cmd
syn keyword pineOption disable-keymenu
syn keyword pineOption disable-password-caching
syn keyword pineOption disable-password-cmd
syn keyword pineOption disable-pipes-in-sigs
syn keyword pineOption disable-pipes-in-templates
syn keyword pineOption disable-roles-setup-cmd
syn keyword pineOption disable-roles-sig-edit
syn keyword pineOption disable-roles-template-edit
syn keyword pineOption disable-sender
syn keyword pineOption disable-shared-namespaces
syn keyword pineOption disable-signature-edit-cmd
syn keyword pineOption disable-take-last-comma-first
syn keyword pineOption enable-8bit-esmtp-negotiation
syn keyword pineOption enable-8bit-nntp-posting
syn keyword pineOption enable-aggregate-command-set
syn keyword pineOption enable-alternate-editor-cmd
syn keyword pineOption enable-alternate-editor-implicitly
syn keyword pineOption enable-arrow-navigation
syn keyword pineOption enable-arrow-navigation-relaxed
syn keyword pineOption enable-background-sending
syn keyword pineOption enable-bounce-cmd
syn keyword pineOption enable-cruise-mode
syn keyword pineOption enable-cruise-mode-delete
syn keyword pineOption enable-delivery-status-notification
syn keyword pineOption enable-dot-files
syn keyword pineOption enable-dot-folders
syn keyword pineOption enable-exit-via-lessthan-command
syn keyword pineOption enable-fast-recent-test
syn keyword pineOption enable-flag-cmd
syn keyword pineOption enable-flag-screen-implicitly
syn keyword pineOption enable-full-header-and-text
syn keyword pineOption enable-full-header-cmd
syn keyword pineOption enable-goto-in-file-browser
syn keyword pineOption enable-incoming-folders
syn keyword pineOption enable-jump-shortcut
syn keyword pineOption enable-lame-list-mode
syn keyword pineOption enable-mail-check-cue
syn keyword pineOption enable-mailcap-param-substitution
syn keyword pineOption enable-mouse-in-xterm
syn keyword pineOption enable-msg-view-addresses
syn keyword pineOption enable-msg-view-attachments
syn keyword pineOption enable-msg-view-forced-arrows
syn keyword pineOption enable-msg-view-urls
syn keyword pineOption enable-msg-view-web-hostnames
syn keyword pineOption enable-newmail-in-xterm-icon
syn keyword pineOption enable-partial-match-lists
syn keyword pineOption enable-print-via-y-command
syn keyword pineOption enable-reply-indent-string-editing
syn keyword pineOption enable-rules-under-take
syn keyword pineOption enable-search-and-replace
syn keyword pineOption enable-sigdashes
syn keyword pineOption enable-suspend
syn keyword pineOption enable-tab-completion
syn keyword pineOption enable-take-export
syn keyword pineOption enable-tray-icon
syn keyword pineOption enable-unix-pipe-cmd
syn keyword pineOption enable-verbose-smtp-posting
syn keyword pineOption expanded-view-of-addressbooks
syn keyword pineOption expanded-view-of-distribution-lists
syn keyword pineOption expanded-view-of-folders
syn keyword pineOption expose-hidden-config
syn keyword pineOption expunge-only-manually
syn keyword pineOption expunge-without-confirm
syn keyword pineOption expunge-without-confirm-everywhere
syn keyword pineOption fcc-on-bounce
syn keyword pineOption fcc-only-without-confirm
syn keyword pineOption fcc-without-attachments
syn keyword pineOption include-attachments-in-reply
syn keyword pineOption include-header-in-reply
syn keyword pineOption include-text-in-reply
syn keyword pineOption ldap-result-to-addrbook-add
syn keyword pineOption mark-fcc-seen
syn keyword pineOption mark-for-cc
syn keyword pineOption news-approximates-new-status
syn keyword pineOption news-deletes-across-groups
syn keyword pineOption news-offers-catchup-on-close
syn keyword pineOption news-post-without-validation
syn keyword pineOption news-read-in-newsrc-order
syn keyword pineOption next-thread-without-confirm
syn keyword pineOption old-growth
syn keyword pineOption pass-control-characters-as-is
syn keyword pineOption prefer-plain-text
syn keyword pineOption preserve-start-stop-characters
syn keyword pineOption print-formfeed-between-messages
syn keyword pineOption print-includes-from-line
syn keyword pineOption print-index-enabled
syn keyword pineOption print-offers-custom-cmd-prompt
syn keyword pineOption quell-attachment-extra-prompt
syn keyword pineOption quell-berkeley-format-timezone
syn keyword pineOption quell-content-id
syn keyword pineOption quell-dead-letter-on-cancel
syn keyword pineOption quell-empty-directories
syn keyword pineOption quell-extra-post-prompt
syn keyword pineOption quell-folder-internal-msg
syn keyword pineOption quell-imap-envelope-update
syn keyword pineOption quell-lock-failure-warnings
syn keyword pineOption quell-maildomain-warning
syn keyword pineOption quell-news-envelope-update
syn keyword pineOption quell-partial-fetching
syn keyword pineOption quell-ssl-largeblocks
syn keyword pineOption quell-status-message-beeping
syn keyword pineOption quell-timezone-comment-when-sending
syn keyword pineOption quell-user-lookup-in-passwd-file
syn keyword pineOption quit-without-confirm
syn keyword pineOption reply-always-uses-reply-to
syn keyword pineOption save-aggregates-copy-sequence
syn keyword pineOption save-will-advance
syn keyword pineOption save-will-not-delete
syn keyword pineOption save-will-quote-leading-froms
syn keyword pineOption scramble-message-id
syn keyword pineOption select-without-confirm
syn keyword pineOption selectable-item-nobold
syn keyword pineOption separate-folder-and-directory-entries
syn keyword pineOption show-cursor
syn keyword pineOption show-plain-text-internally
syn keyword pineOption show-selected-in-boldface
syn keyword pineOption signature-at-bottom
syn keyword pineOption single-column-folder-list
syn keyword pineOption slash-collapses-entire-thread
syn keyword pineOption spell-check-before-sending
syn keyword pineOption store-window-position-in-config
syn keyword pineOption strip-from-sigdashes-on-reply
syn keyword pineOption tab-visits-next-new-message-only
syn keyword pineOption termdef-takes-precedence
syn keyword pineOption thread-index-shows-important-color
syn keyword pineOption try-alternative-authentication-driver-first
syn keyword pineOption unselect-will-not-advance
syn keyword pineOption use-current-dir
syn keyword pineOption use-function-keys
syn keyword pineOption use-sender-not-x-sender
syn keyword pineOption use-subshell-for-suspend
syn keyword pineOption vertical-folder-list

syn match  pineComment  "^#.*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link pineConfig	Type
hi def link pineComment	Comment
hi def link pineOption	Macro

let b:current_syntax = "pine"

" vim: ts=8
PK�j�Z��ax��vim80/syntax/master.vimnu�[���" Vim syntax file
" Language:	Focus Master File
" Maintainer:	Rob Brady <robb@datatone.com>
" Last Change:	$Date: 2004/06/13 15:54:03 $
" URL: http://www.datatone.com/~robb/vim/syntax/master.vim
" $Revision: 1.1 $

" this is a very simple syntax file - I will be improving it
" add entire DEFINE syntax

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" A bunch of useful keywords
syn keyword masterKeyword	FILENAME SUFFIX SEGNAME SEGTYPE PARENT FIELDNAME
syn keyword masterKeyword	FIELD ALIAS USAGE INDEX MISSING ON
syn keyword masterKeyword	FORMAT CRFILE CRKEY
syn keyword masterDefine	DEFINE DECODE EDIT
syn region  masterString	start=+"+  end=+"+
syn region  masterString	start=+'+  end=+'+
syn match   masterComment	"\$.*"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link masterKeyword Keyword
hi def link masterComment Comment
hi def link masterString  String


let b:current_syntax = "master"

" vim: ts=8
PK�j�Zb�uB��vim80/syntax/dot.vimnu�[���" Vim syntax file
" Language:     Dot
" Filenames:    *.dot
" Maintainer:   Markus Mottl  <markus.mottl@gmail.com>
" URL:          http://www.ocaml.info/vim/syntax/dot.vim
" Last Change:  2011 May 17 - improved identifier matching + two new keywords
"               2001 May 04 - initial version

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Errors
syn match    dotParErr     ")"
syn match    dotBrackErr   "]"
syn match    dotBraceErr   "}"

" Enclosing delimiters
syn region   dotEncl transparent matchgroup=dotParEncl start="(" matchgroup=dotParEncl end=")" contains=ALLBUT,dotParErr
syn region   dotEncl transparent matchgroup=dotBrackEncl start="\[" matchgroup=dotBrackEncl end="\]" contains=ALLBUT,dotBrackErr
syn region   dotEncl transparent matchgroup=dotBraceEncl start="{" matchgroup=dotBraceEncl end="}" contains=ALLBUT,dotBraceErr

" Comments
syn region   dotComment start="//" end="$" contains=dotComment,dotTodo
syn region   dotComment start="/\*" end="\*/" contains=dotComment,dotTodo
syn keyword  dotTodo contained TODO FIXME XXX

" Strings
syn region   dotString    start=+"+ skip=+\\\\\|\\"+ end=+"+

" General keywords
syn keyword  dotKeyword  digraph node edge subgraph

" Graph attributes
syn keyword  dotType center layers margin mclimit name nodesep nslimit
syn keyword  dotType ordering page pagedir rank rankdir ranksep ratio
syn keyword  dotType rotate size

" Node attributes
syn keyword  dotType distortion fillcolor fontcolor fontname fontsize
syn keyword  dotType height layer orientation peripheries regular
syn keyword  dotType shape shapefile sides skew width

" Edge attributes
syn keyword  dotType arrowhead arrowsize arrowtail constraint decorateP
syn keyword  dotType dir headclip headlabel headport labelangle labeldistance
syn keyword  dotType labelfontcolor labelfontname labelfontsize
syn keyword  dotType minlen port_label_distance samehead sametail
syn keyword  dotType tailclip taillabel tailport weight

" Shared attributes (graphs, nodes, edges)
syn keyword  dotType color

" Shared attributes (graphs and edges)
syn keyword  dotType bgcolor label URL

" Shared attributes (nodes and edges)
syn keyword  dotType fontcolor fontname fontsize layer style

" Special chars
syn match    dotKeyChar  "="
syn match    dotKeyChar  ";"
syn match    dotKeyChar  "->"

" Identifier
syn match    dotIdentifier /\<\w\+\(:\w\+\)\?\>/

" Synchronization
syn sync minlines=50
syn sync maxlines=500

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dotParErr	 Error
hi def link dotBraceErr	 Error
hi def link dotBrackErr	 Error

hi def link dotComment	 Comment
hi def link dotTodo	 Todo

hi def link dotParEncl	 Keyword
hi def link dotBrackEncl	 Keyword
hi def link dotBraceEncl	 Keyword

hi def link dotKeyword	 Keyword
hi def link dotType	 Type
hi def link dotKeyChar	 Keyword

hi def link dotString	 String
hi def link dotIdentifier	 Identifier


let b:current_syntax = "dot"

" vim: ts=8
PK�j�Z�([҅9�9vim80/syntax/xf86conf.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: XF86Config (XFree86 configuration file)
" Former Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2010 Nov 01
" URL: http://trific.ath.cx/Ftp/vim/syntax/xf86conf.vim
" Required Vim Version: 6.0
"
" Options: let xf86conf_xfree86_version = 3 or 4
"							 to force XFree86 3.x or 4.x XF86Config syntax

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

if !exists("b:xf86conf_xfree86_version")
	if exists("xf86conf_xfree86_version")
		let b:xf86conf_xfree86_version = xf86conf_xfree86_version
	else
		let b:xf86conf_xfree86_version = 4
	endif
endif

syn case ignore

" Comments
syn match xf86confComment "#.*$" contains=xf86confTodo
syn case match
syn keyword xf86confTodo FIXME TODO XXX NOT contained
syn case ignore
syn match xf86confTodo "???" contained

" Sectioning errors
syn keyword xf86confSectionError Section contained
syn keyword xf86confSectionError EndSection
syn keyword xf86confSubSectionError SubSection
syn keyword xf86confSubSectionError EndSubSection
syn keyword xf86confModeSubSectionError Mode
syn keyword xf86confModeSubSectionError EndMode
syn cluster xf86confSectionErrors contains=xf86confSectionError,xf86confSubSectionError,xf86confModeSubSectionError

" Values
if b:xf86conf_xfree86_version >= 4
	syn region xf86confString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=xf86confSpecialChar,xf86confConstant,xf86confOptionName oneline keepend nextgroup=xf86confValue skipwhite
else
	syn region xf86confString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=xf86confSpecialChar,xf86confOptionName oneline keepend
endif
syn match xf86confSpecialChar "\\\d\d\d\|\\." contained
syn match xf86confDecimalNumber "\(\s\|-\)\zs\d*\.\=\d\+\>"
syn match xf86confFrequency "\(\s\|-\)\zs\d\+\.\=\d*\(Hz\|k\|kHz\|M\|MHz\)"
syn match xf86confOctalNumber "\<0\o\+\>"
syn match xf86confOctalNumberError "\<0\o\+[89]\d*\>"
syn match xf86confHexadecimalNumber "\<0x\x\+\>"
syn match xf86confValue "\s\+.*$" contained contains=xf86confComment,xf86confString,xf86confFrequency,xf86conf\w\+Number,xf86confConstant
syn keyword xf86confOption Option nextgroup=xf86confString skipwhite
syn match xf86confModeLineValue "\"[^\"]\+\"\(\_s\+[0-9.]\+\)\{9}" nextgroup=xf86confSync skipwhite skipnl

" Sections and subsections
if b:xf86conf_xfree86_version >= 4
	syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,xf86confSectionError
	syn region xf86confSectionModule matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Module\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionAny,xf86confComment,xf86confOption,xf86confKeyword
	syn region xf86confSectionMonitor matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Monitor\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment,xf86confOption,xf86confKeyword
	syn region xf86confSectionModes matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Modes\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment
	syn region xf86confSectionScreen matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Screen\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionDisplay,xf86confComment,xf86confOption,xf86confKeyword
	syn region xf86confSubSectionAny matchgroup=xf86confSectionDelim start="^\s*SubSection\s\+\"[^\"]\+\"" end="^\s*EndSubSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,@xf86confSectionErrors
	syn region xf86confSubSectionMode matchgroup=xf86confSectionDelim start="^\s*Mode\s\+\"[^\"]\+\"" end="^\s*EndMode\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confKeyword,@xf86confSectionErrors
	syn region xf86confSubSectionDisplay matchgroup=xf86confSectionDelim start="^\s*SubSection\s\+\"Display\"" end="^\s*EndSubSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,@xf86confSectionErrors
else
	syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Device\|Keyboard\|Pointer\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOptionName,xf86confOption,xf86confKeyword
	syn region xf86confSectionMX matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Module\|Xinput\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionAny,xf86confComment,xf86confOptionName,xf86confOption,xf86confKeyword
	syn region xf86confSectionMonitor matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Monitor\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment,xf86confOptionName,xf86confOption,xf86confKeyword
	syn region xf86confSectionScreen matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Screen\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionDisplay,xf86confComment,xf86confOptionName,xf86confOption,xf86confKeyword
	syn region xf86confSubSectionAny matchgroup=xf86confSectionDelim start="^\s*SubSection\s\+\"[^\"]\+\"" end="^\s*EndSubSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOptionName,xf86confOption,xf86confKeyword,@xf86confSectionErrors
	syn region xf86confSubSectionMode matchgroup=xf86confSectionDelim start="^\s*Mode\s\+\"[^\"]\+\"" end="^\s*EndMode\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOptionName,xf86confOption,xf86confKeyword,@xf86confSectionErrors
	syn region xf86confSubSectionDisplay matchgroup=xf86confSectionDelim start="^\s*SubSection\s\+\"Display\"" end="^\s*EndSubSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOptionName,xf86confOption,xf86confKeyword,@xf86confSectionErrors
endif

" Options
if b:xf86conf_xfree86_version >= 4
	command -nargs=+ Xf86confdeclopt syn keyword xf86confOptionName <args> contained
else
	command -nargs=+ Xf86confdeclopt syn keyword xf86confOptionName <args> contained nextgroup=xf86confValue,xf86confComment skipwhite
endif

Xf86confdeclopt 18bitBus AGPFastWrite AGPMode Accel AllowClosedownGrabs AllowDeactivateGrabs
Xf86confdeclopt AllowMouseOpenFail AllowNonLocalModInDev AllowNonLocalXvidtune AlwaysCore
Xf86confdeclopt AngleOffset AutoRepeat BaudRate BeamTimeout Beep BlankTime BlockWrite BottomX
Xf86confdeclopt BottomY ButtonNumber ButtonThreshold Buttons ByteSwap CacheLines ChordMiddle
Xf86confdeclopt ClearDTR ClearDTS ClickMode CloneDisplay CloneHSync CloneMode CloneVRefresh
Xf86confdeclopt ColorKey Composite CompositeSync CoreKeyboard CorePointer Crt2Memory CrtScreen
Xf86confdeclopt CrtcNumber CyberShadow CyberStretch DDC DDCMode DMAForXv DPMS Dac6Bit DacSpeed
Xf86confdeclopt DataBits Debug DebugLevel DefaultServerLayout DeltaX DeltaY Device DeviceName
Xf86confdeclopt DisableModInDev DisableVidModeExtension Display Display1400 DontVTSwitch
Xf86confdeclopt DontZap DontZoom DoubleScan DozeMode DozeScan DozeTime DragLockButtons
Xf86confdeclopt DualCount DualRefresh EarlyRasPrecharge Emulate3Buttons Emulate3Timeout
Xf86confdeclopt EmulateWheel EmulateWheelButton EmulateWheelInertia EnablePageFlip EnterCount
Xf86confdeclopt EstimateSizesAggressively ExternDisp FPClock16 FPClock24 FPClock32
Xf86confdeclopt FPClock8 FPDither FastDram FifoAggresive FifoConservative FifoModerate
Xf86confdeclopt FireGL3000 FixPanelSize FlatPanel FlipXY FlowControl ForceCRT1 ForceCRT2Type
Xf86confdeclopt ForceLegacyCRT ForcePCIMode FpmVRAM FrameBufferWC FullMMIO GammaBrightness
Xf86confdeclopt HWClocks HWCursor HandleSpecialKeys HistorySize Interlace Interlaced InternDisp
Xf86confdeclopt InvX InvY InvertX InvertY KeepShape LCDClock LateRasPrecharge LcdCenter
Xf86confdeclopt LeftAlt Linear MGASDRAM MMIO MMIOCache MTTR MaxX MaxY MaximumXPosition
Xf86confdeclopt MaximumYPosition MinX MinY MinimumXPosition MinimumYPosition NoAccel
Xf86confdeclopt NoAllowMouseOpenFail NoAllowNonLocalModInDev NoAllowNonLocalXvidtune
Xf86confdeclopt NoBlockWrite NoCompositeSync NoCompression NoCrtScreen NoCyberShadow NoDCC
Xf86confdeclopt NoDDC NoDac6Bit NoDebug NoDisableModInDev NoDisableVidModeExtension NoDontZap
Xf86confdeclopt NoDontZoom NoFireGL3000 NoFixPanelSize NoFpmVRAM NoFrameBufferWC NoHWClocks
Xf86confdeclopt NoHWCursor NoHal NoLcdCenter NoLinear NoMGASDRAM NoMMIO NoMMIOCache NoMTTR
Xf86confdeclopt NoOverClockMem NoOverlay NoPC98 NoPM NoPciBurst NoPciRetry NoProbeClock
Xf86confdeclopt NoSTN NoSWCursor NoShadowFb NoShowCache NoSlowEDODRAM NoStretch NoSuspendHack
Xf86confdeclopt NoTexturedVideo NoTrapSignals NoUseFBDev NoUseModeline NoUseVclk1 NoVTSysReq
Xf86confdeclopt NoXVideo NvAGP OSMImageBuffers OffTime Origin OverClockMem Overlay
Xf86confdeclopt PC98 PCIBurst PM PWMActive PWMSleep PanelDelayCompensation PanelHeight
Xf86confdeclopt PanelOff PanelWidth Parity PciBurst PciRetry Pixmap Port PressDur PressPitch
Xf86confdeclopt PressVol ProbeClocks ProgramFPRegs Protocol RGBBits ReleaseDur ReleasePitch
Xf86confdeclopt ReportingMode Resolution RightAlt RightCtl Rotate STN SWCursor SampleRate
Xf86confdeclopt ScreenNumber ScrollLock SendCoreEvents SendDragEvents Serial ServerNumLock
Xf86confdeclopt SetLcdClk SetMClk SetRefClk ShadowFb ShadowStatus ShowCache SleepMode
Xf86confdeclopt SleepScan SleepTime SlowDram SlowEDODRAM StandbyTime StopBits Stretch
Xf86confdeclopt SuspendHack SuspendTime SwapXY SyncOnGreen TV TVOutput TVOverscan TVStandard
Xf86confdeclopt TVXPosOffset TVYPosOffset TexturedVideo Threshold Tilt TopX TopY TouchTime
Xf86confdeclopt TrapSignals Type USB UseBIOS UseFB UseFBDev UseFlatPanel UseModeline
Xf86confdeclopt UseROMData UseVclk1 VTInit VTSysReq VTime VideoKey Vmin XAxisMapping
Xf86confdeclopt XLeds XVideo XaaNoCPUToScreenColorExpandFill XaaNoColor8x8PatternFillRect
Xf86confdeclopt XaaNoColor8x8PatternFillTrap XaaNoDashedBresenhamLine XaaNoDashedTwoPointLine
Xf86confdeclopt XaaNoImageWriteRect XaaNoMono8x8PatternFillRect XaaNoMono8x8PatternFillTrap
Xf86confdeclopt XaaNoOffscreenPixmaps XaaNoPixmapCache XaaNoScanlineCPUToScreenColorExpandFill
Xf86confdeclopt XaaNoScanlineImageWriteRect XaaNoScreenToScreenColorExpandFill
Xf86confdeclopt XaaNoScreenToScreenCopy XaaNoSolidBresenhamLine XaaNoSolidFillRect
Xf86confdeclopt XaaNoSolidFillTrap XaaNoSolidHorVertLine XaaNoSolidTwoPointLine Xinerama
Xf86confdeclopt XkbCompat XkbDisable XkbGeometry XkbKeycodes XkbKeymap XkbLayout XkbModel
Xf86confdeclopt XkbOptions XkbRules XkbSymbols XkbTypes XkbVariant XvBskew XvHsync XvOnCRT2
Xf86confdeclopt XvRskew XvVsync YAxisMapping ZAxisMapping ZoomOnLCD

delcommand Xf86confdeclopt

" Keywords
syn keyword xf86confKeyword Device Driver FontPath Group Identifier Load ModelName ModulePath Monitor RGBPath VendorName VideoAdaptor Visual nextgroup=xf86confComment,xf86confString skipwhite
syn keyword xf86confKeyword BiosBase Black BoardName BusID ChipID ChipRev Chipset nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword ClockChip Clocks DacSpeed DefaultDepth DefaultFbBpp nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword DefaultColorDepth nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword Depth DisplaySize DotClock FbBpp Flags Gamma HorizSync nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword Hskew HTimings InputDevice IOBase MemBase Mode nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword Modes Ramdac Screen TextClockFreq UseModes VendorName nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword VertRefresh VideoRam ViewPort Virtual VScan VTimings nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword Weight White nextgroup=xf86confComment,xf86confValue
syn keyword xf86confModeLine ModeLine nextgroup=xf86confComment,xf86confModeLineValue skipwhite skipnl

" Constants
if b:xf86conf_xfree86_version >= 4
	syn keyword xf86confConstant true false on off yes no omit contained
else
	syn keyword xf86confConstant Meta Compose Control
endif
syn keyword xf86confConstant StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor contained
syn keyword xf86confConstant Absolute RightOf LeftOf Above Below Relative StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor contained
syn match xf86confSync "\(\s\+[+-][CHV]_*Sync\)\+" contained

" Synchronization
if b:xf86conf_xfree86_version >= 4
	syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\""
	syn sync match xf86confSyncSectionModule grouphere xf86confSectionModule "^\s*Section\s\+\"Module\""
	syn sync match xf86confSyncSectionModes groupthere xf86confSectionModes "^\s*Section\s\+\"Modes\""
else
	syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Device\|Keyboard\|Pointer\)\""
	syn sync match xf86confSyncSectionMX grouphere xf86confSectionMX "^\s*Section\s\+\"\(Module\|Xinput\)\""
endif
syn sync match xf86confSyncSectionMonitor groupthere xf86confSectionMonitor "^\s*Section\s\+\"Monitor\""
syn sync match xf86confSyncSectionScreen groupthere xf86confSectionScreen "^\s*Section\s\+\"Screen\""
syn sync match xf86confSyncEndSection groupthere NONE "^\s*End_*Section\s*$"

" Define the default highlighting
hi def link xf86confComment Comment
hi def link xf86confTodo Todo
hi def link xf86confSectionDelim Statement
hi def link xf86confOptionName Identifier

hi def link xf86confSectionError xf86confError
hi def link xf86confSubSectionError xf86confError
hi def link xf86confModeSubSectionError xf86confError
hi def link xf86confOctalNumberError xf86confError
hi def link xf86confError Error

hi def link xf86confOption xf86confKeyword
hi def link xf86confModeLine xf86confKeyword
hi def link xf86confKeyword Type

hi def link xf86confDecimalNumber xf86confNumber
hi def link xf86confOctalNumber xf86confNumber
hi def link xf86confHexadecimalNumber xf86confNumber
hi def link xf86confFrequency xf86confNumber
hi def link xf86confModeLineValue Constant
hi def link xf86confNumber Constant

hi def link xf86confSync xf86confConstant
hi def link xf86confConstant Special
hi def link xf86confSpecialChar Special
hi def link xf86confString String

hi def link xf86confValue Constant

let b:current_syntax = "xf86conf"
PK�j�Z�1���vim80/syntax/objc.vimnu�[���" Vim syntax file
" Language:     Objective-C
" Maintainer:   Kazunobu Kuriyama <kazunobu.kuriyama@gmail.com>
" Last Change:  2015 Dec 14

""" Preparation for loading ObjC stuff
if exists("b:current_syntax")
  finish
endif
if &filetype != 'objcpp'
  syn clear
  runtime! syntax/c.vim
endif
let s:cpo_save = &cpo
set cpo&vim

""" ObjC proper stuff follows...

syn keyword objcPreProcMacro __OBJC__ __OBJC2__ __clang__

" Defined Types
syn keyword objcPrincipalType id Class SEL IMP BOOL instancetype
syn keyword objcUsefulTerm nil Nil NO YES

" Preprocessor Directives
syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match objcImported display contained "\(<\h[-a-zA-Z0-9_/]*\.h>\|<[a-z0-9]\+>\)"
syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported

" ObjC Compiler Directives
syn match objcObjDef display /@interface\>\|@implementation\>\|@end\>\|@class\>/
syn match objcProtocol display /@protocol\>\|@optional\>\|@required\>/
syn match objcProperty display /@property\>\|@synthesize\>\|@dynamic\>/
syn match objcIvarScope display /@private\>\|@protected\>\|@public\>\|@package\>/
syn match objcInternalRep display /@selector\>\|@encode\>/
syn match objcException display /@try\>\|@throw\>\|@catch\|@finally\>/
syn match objcThread display /@synchronized\>/
syn match objcPool display /@autoreleasepool\>/
syn match objcModuleImport display /@import\>/

" ObjC Constant Strings
syn match objcSpecial display contained "%@"
syn region objcString start=+\(@"\|"\)+ skip=+\\\\\|\\"+ end=+"+ contains=cFormat,cSpecial,objcSpecial

" ObjC Hidden Arguments
syn keyword objcHiddenArgument self _cmd super

" ObjC Type Qualifiers for Blocks
syn keyword objcBlocksQualifier __block
" ObjC Type Qualifiers for Object Lifetime
syn keyword objcObjectLifetimeQualifier __strong __weak __unsafe_unretained __autoreleasing
" ObjC Type Qualifiers for Toll-Free Bridge
syn keyword objcTollFreeBridgeQualifier __bridge __bridge_retained __bridge_transfer

" ObjC Type Qualifiers for Remote Messaging
syn match objcRemoteMessagingQualifier display contained /\((\s*oneway\s\+\|(\s*in\s\+\|(\s*out\s\+\|(\s*inout\s\+\|(\s*bycopy\s\+\(in\(out\)\?\|out\)\?\|(\s*byref\s\+\(in\(out\)\?\|out\)\?\)/hs=s+1

" ObjC Storage Classes
syn keyword objcStorageClass _Nullable _Nonnull _Null_unspecified
syn keyword objcStorageClass __nullable __nonnull __null_unspecified
syn keyword objcStorageClass nullable nonnull null_unspecified

" ObjC type specifier
syn keyword objcTypeSpecifier __kindof __covariant

" ObjC Type Infomation Parameters
syn keyword objcTypeInfoParams ObjectType KeyType

" shorthand
syn cluster objcTypeQualifier contains=objcBlocksQualifier,objcObjectLifetimeQualifier,objcTollFreeBridgeQualifier,objcRemoteMessagingQualifier

" ObjC Fast Enumeration
syn match objcFastEnumKeyword display /\sin\(\s\|$\)/

" ObjC Literal Syntax
syn match objcLiteralSyntaxNumber display /@\(YES\>\|NO\>\|\d\|-\|+\)/ contains=cNumber,cFloat,cOctal
syn match objcLiteralSyntaxSpecialChar display /@'/ contains=cSpecialCharacter
syn match objcLiteralSyntaxChar display /@'[^\\]'/ 
syn match objcLiteralSyntaxOp display /@\((\|\[\|{\)/me=e-1,he=e-1

" ObjC Declared Property Attributes
syn match objDeclPropAccessorNameAssign display /\s*=\s*/ contained
syn region objcDeclPropAccessorName display start=/\(getter\|setter\)/ end=/\h\w*/ contains=objDeclPropAccessorNameAssign
syn keyword objcDeclPropAccessorType readonly readwrite contained
syn keyword objcDeclPropAssignSemantics assign retain copy contained
syn keyword objcDeclPropAtomicity nonatomic contained
syn keyword objcDeclPropARC strong weak contained
syn match objcDeclPropNullable /\((\|\s\)nullable\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained
syn match objcDeclPropNonnull /\((\|\s\)nonnull\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained
syn match objcDeclPropNullUnspecified /\((\|\s\)null_unspecified\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained
syn keyword objcDeclProcNullResettable null_resettable contained
syn region objcDeclProp display transparent keepend start=/@property\s*(/ end=/)/ contains=objcProperty,objcDeclPropAccessorName,objcDeclPropAccessorType,objcDeclPropAssignSemantics,objcDeclPropAtomicity,objcDeclPropARC,objcDeclPropNullable,objcDeclPropNonnull,objcDeclPropNullUnspecified,objcDeclProcNullResettable

" To distinguish colons in methods and dictionaries from those in C's labels.
syn match objcColon display /^\s*\h\w*\s*\:\(\s\|.\)/me=e-1,he=e-1

" To distinguish a protocol list from system header files
syn match objcProtocolList display /<\h\w*\(\s*,\s*\h\w*\)*>/ contains=objcPrincipalType,cType,Type,objcType,objcTypeInfoParams

" Type info for collection classes
syn match objcTypeInfo display /<\h\w*\s*<\(\h\w*\s*\**\|\h\w*\)>>/ contains=objcPrincipalType,cType,Type,objcType,objcTypeInfoParams

" shorthand
syn cluster objcCEntities contains=cType,cStructure,cStorageClass,cString,cCharacter,cSpecialCharacter,cNumbers,cConstant,cOperator,cComment,cCommentL,cStatement,cLabel,cConditional,cRepeat
syn cluster objcObjCEntities contains=objcHiddenArgument,objcPrincipalType,objcString,objcUsefulTerm,objcProtocol,objcInternalRep,objcException,objcThread,objcPool,objcModuleImport,@objcTypeQualifier,objcLiteralSyntaxNumber,objcLiteralSyntaxOp,objcLiteralSyntaxChar,objcLiteralSyntaxSpecialChar,objcProtocolList,objcColon,objcFastEnumKeyword,objcType,objcClass,objcMacro,objcEnum,objcEnumValue,objcExceptionValue,objcNotificationValue,objcConstVar,objcPreProcMacro,objcTypeInfo

" Objective-C Message Expressions
syn region objcMethodCall start=/\[/ end=/\]/ contains=objcMethodCall,objcBlocks,@objcObjCEntities,@objcCEntities

" To distinguish class method and instance method
syn match objcInstanceMethod display /^s*-\s*/
syn match objcClassMethod display /^s*+\s*/

" ObjC Blocks
syn region objcBlocks start=/\(\^\s*([^)]\+)\s*{\|\^\s*{\)/ end=/}/ contains=objcBlocks,objcMethodCall,@objcObjCEntities,@objcCEntities

syn cluster cParenGroup add=objcMethodCall
syn cluster cPreProcGroup add=objcMethodCall

""" Foundation Framework
syn match objcClass /Protocol\s*\*/me=s+8,he=s+8

"""""""""""""""""
" NSObjCRuntime.h
syn keyword objcType NSInteger NSUInteger NSComparator
syn keyword objcEnum NSComparisonResult
syn keyword objcEnumValue NSOrderedAscending NSOrderedSame NSOrderedDescending
syn keyword objcEnum NSEnumerationOptions
syn keyword objcEnumValue NSEnumerationConcurrent NSEnumerationReverse
syn keyword objcEnum NSSortOptions
syn keyword objcEnumValue NSSortConcurrent NSSortStable
syn keyword objcEnumValue NSNotFound
syn keyword objcMacro NSIntegerMax NSIntegerMin NSUIntegerMax
syn keyword objcMacro NS_INLINE NS_BLOCKS_AVAILABLE NS_NONATOMIC_IOSONLY NS_FORMAT_FUNCTION NS_FORMAT_ARGUMENT NS_RETURNS_RETAINED NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_AUTOMATED_REFCOUNT_UNAVAILABLE NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE NS_REQUIRES_PROPERTY_DEFINITIONS NS_REPLACES_RECEIVER NS_RELEASES_ARGUMENT NS_VALID_UNTIL_END_OF_SCOPE NS_ROOT_CLASS NS_REQUIRES_SUPER NS_PROTOCOL_REQUIRES_EXPLICIT_IMPLEMENTATION NS_DESIGNATED_INITIALIZER NS_REQUIRES_NIL_TERMINATION
syn keyword objcEnum NSQualityOfService
syn keyword objcEnumValue NSQualityOfServiceUserInteractive NSQualityOfServiceUserInitiated NSQualityOfServiceUtility NSQualityOfServiceBackground NSQualityOfServiceDefault
" NSRange.h
syn keyword objcType NSRange NSRangePointer
" NSGeometry.h
syn keyword objcType NSPoint NSPointPointer NSPointArray NSSize NSSizePointer NSSizeArray NSRect NSRectPointer NSRectArray NSEdgeInsets
syn keyword objcEnum NSRectEdge
syn keyword objcEnumValue NSMinXEdge NSMinYEdge NSMaxXEdge NSMaxYEdge
syn keyword objcEnumValue NSRectEdgeMinX NSRectEdgeMinY NSRectEdgeMaxX NSRectEdgeMaxY
syn keyword objcConstVar NSZeroPoint NSZeroSize NSZeroRect NSEdgeInsetsZero
syn keyword cType CGFloat CGPoint CGSize CGRect
syn keyword objcEnum NSAlignmentOptions
syn keyword objcEnumValue NSAlignMinXInward NSAlignMinYInward NSAlignMaxXInward NSAlignMaxYInward NSAlignWidthInward NSAlignHeightInward NSAlignMinXOutward NSAlignMinYOutward NSAlignMaxXOutward NSAlignMaxYOutward NSAlignWidthOutward NSAlignHeightOutward NSAlignMinXNearest NSAlignMinYNearest NSAlignMaxXNearest NSAlignMaxYNearest NSAlignWidthNearest NSAlignHeightNearest NSAlignRectFlipped NSAlignAllEdgesInward NSAlignAllEdgesOutward NSAlignAllEdgesNearest
" NSDecimal.h
syn keyword objcType NSDecimal
syn keyword objcEnum  NSRoundingMode
syn keyword objcEnumValue NSRoundPlain NSRoundDown NSRoundUp NSRoundBankers
syn keyword objcEnum NSCalculationError
syn keyword objcEnumValue NSCalculationNoError NSCalculationLossOfPrecision NSCalculationUnderflow NSCalculationOverflow NSCalculationDivideByZero
syn keyword objcConstVar NSDecimalMaxSize NSDecimalNoScale
" NSDate.h
syn match objcClass /NSDate\s*\*/me=s+6,he=s+6
syn keyword objcType NSTimeInterval
syn keyword objcNotificationValue NSSystemClockDidChangeNotification
syn keyword objcMacro NSTimeIntervalSince1970
" NSZone.h
syn match objcType /NSZone\s*\*/me=s+6,he=s+6
syn keyword objcEnumValue NSScannedOption NSCollectorDisabledOption
" NSError.h
syn match objcClass /NSError\s*\*/me=s+7,he=s+7
syn keyword objcConstVar NSCocoaErrorDomain NSPOSIXErrorDomain NSOSStatusErrorDomain NSMachErrorDomain NSUnderlyingErrorKey NSLocalizedDescriptionKey NSLocalizedFailureReasonErrorKey NSLocalizedRecoverySuggestionErrorKey NSLocalizedRecoveryOptionsErrorKey NSRecoveryAttempterErrorKey NSHelpAnchorErrorKey NSStringEncodingErrorKey NSURLErrorKey NSFilePathErrorKey
" NSException.h
syn match objcClass /NSException\s*\*/me=s+11,he=s+11
syn match objcClass /NSAssertionHandler\s*\*/me=s+18,he=s+18
syn keyword objcType NSUncaughtExceptionHandler
syn keyword objcConstVar NSGenericException NSRangeException NSInvalidArgumentException NSInternalInconsistencyException NSMallocException NSObjectInaccessibleException NSObjectNotAvailableException NSDestinationInvalidException NSPortTimeoutException NSInvalidSendPortException NSInvalidReceivePortException NSPortSendException NSPortReceiveException NSOldStyleException
" NSNotification.h
syn match objcClass /NSNotification\s*\*/me=s+14,he=s+14
syn match objcClass /NSNotificationCenter\s*\*/me=s+20,he=s+20
" NSDistributedNotificationCenter.h
syn match objcClass /NSDistributedNotificationCenter\s*\*/me=s+31,he=s+31
syn keyword objcConstVar NSLocalNotificationCenterType
syn keyword objcEnum NSNotificationSuspensionBehavior
syn keyword objcEnumValue NSNotificationSuspensionBehaviorDrop NSNotificationSuspensionBehaviorCoalesce NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorDeliverImmediately
syn keyword objcEnumValue NSNotificationDeliverImmediately NSNotificationPostToAllSessions
syn keyword objcEnum NSDistributedNotificationOptions
syn keyword objcEnumValue NSDistributedNotificationDeliverImmediately NSDistributedNotificationPostToAllSessions
" NSNotificationQueue.h
syn match objcClass /NSNotificationQueue\s*\*/me=s+19,he=s+19
syn keyword objcEnum NSPostingStyle
syn keyword objcEnumValue NSPostWhenIdle NSPostASAP NSPostNow
syn keyword objcEnum NSNotificationCoalescing
syn keyword objcEnumValue NSNotificationNoCoalescing NSNotificationCoalescingOnName NSNotificationCoalescingOnSender
" NSEnumerator.h
syn match objcClass /NSEnumerator\s*\*/me=s+12,he=s+12
syn match objcClass /NSEnumerator<.*>\s*\*/me=s+12,he=s+12 contains=objcTypeInfoParams
syn keyword objcType NSFastEnumerationState
" NSIndexSet.h
syn match objcClass /NSIndexSet\s*\*/me=s+10,he=s+10
syn match objcClass /NSMutableIndexSet\s*\*/me=s+17,he=s+17
" NSCharecterSet.h
syn match objcClass /NSCharacterSet\s*\*/me=s+14,he=s+14
syn match objcClass /NSMutableCharacterSet\s*\*/me=s+21,he=s+21
syn keyword objcConstVar NSOpenStepUnicodeReservedBase
" NSURL.h
syn match objcClass /NSURL\s*\*/me=s+5,he=s+5
syn keyword objcEnum NSURLBookmarkCreationOptions
syn keyword objcEnumValue NSURLBookmarkCreationPreferFileIDResolution NSURLBookmarkCreationMinimalBookmark NSURLBookmarkCreationSuitableForBookmarkFile NSURLBookmarkCreationWithSecurityScope NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess
syn keyword objcEnum NSURLBookmarkResolutionOptions
syn keyword objcEnumValue NSURLBookmarkResolutionWithoutUI NSURLBookmarkResolutionWithoutMounting NSURLBookmarkResolutionWithSecurityScope
syn keyword objcType NSURLBookmarkFileCreationOptions
syn keyword objcConstVar NSURLFileScheme NSURLKeysOfUnsetValuesKey
syn keyword objcConstVar NSURLNameKey NSURLLocalizedNameKey NSURLIsRegularFileKey NSURLIsDirectoryKey NSURLIsSymbolicLinkKey NSURLIsVolumeKey NSURLIsPackageKey NSURLIsApplicationKey NSURLApplicationIsScriptableKey NSURLIsSystemImmutableKey NSURLIsUserImmutableKey NSURLIsHiddenKey NSURLHasHiddenExtensionKey NSURLCreationDateKey NSURLContentAccessDateKey NSURLContentModificationDateKey NSURLAttributeModificationDateKey NSURLLinkCountKey NSURLParentDirectoryURLKey NSURLVolumeURLKey NSURLTypeIdentifierKey NSURLLocalizedTypeDescriptionKey NSURLLabelNumberKey NSURLLabelColorKey NSURLLocalizedLabelKey NSURLEffectiveIconKey NSURLCustomIconKey NSURLFileResourceIdentifierKey NSURLVolumeIdentifierKey NSURLPreferredIOBlockSizeKey NSURLIsReadableKey NSURLIsWritableKey NSURLIsExecutableKey NSURLFileSecurityKey NSURLIsExcludedFromBackupKey NSURLTagNamesKey NSURLPathKey NSURLIsMountTriggerKey NSURLGenerationIdentifierKey NSURLDocumentIdentifierKey NSURLAddedToDirectoryDateKey NSURLQuarantinePropertiesKey NSURLFileResourceTypeKey
syn keyword objcConstVar NSURLFileResourceTypeNamedPipe NSURLFileResourceTypeCharacterSpecial NSURLFileResourceTypeDirectory NSURLFileResourceTypeBlockSpecial NSURLFileResourceTypeRegular NSURLFileResourceTypeSymbolicLink NSURLFileResourceTypeSocket NSURLFileResourceTypeUnknown NSURLThumbnailDictionaryKey NSURLThumbnailKey NSThumbnail1024x1024SizeKey
syn keyword objcConstVar NSURLFileSizeKey NSURLFileAllocatedSizeKey NSURLTotalFileSizeKey NSURLTotalFileAllocatedSizeKey NSURLIsAliasFileKey NSURLFileProtectionKey NSURLFileProtectionNone NSURLFileProtectionComplete NSURLFileProtectionCompleteUnlessOpen NSURLFileProtectionCompleteUntilFirstUserAuthentication
syn keyword objcConstVar NSURLVolumeLocalizedFormatDescriptionKey NSURLVolumeTotalCapacityKey NSURLVolumeAvailableCapacityKey NSURLVolumeResourceCountKey NSURLVolumeSupportsPersistentIDsKey NSURLVolumeSupportsSymbolicLinksKey NSURLVolumeSupportsHardLinksKey NSURLVolumeSupportsJournalingKey NSURLVolumeIsJournalingKey NSURLVolumeSupportsSparseFilesKey NSURLVolumeSupportsZeroRunsKey NSURLVolumeSupportsCaseSensitiveNamesKey NSURLVolumeSupportsCasePreservedNamesKey NSURLVolumeSupportsRootDirectoryDatesKey NSURLVolumeSupportsVolumeSizesKey NSURLVolumeSupportsRenamingKey NSURLVolumeSupportsAdvisoryFileLockingKey NSURLVolumeSupportsExtendedSecurityKey NSURLVolumeIsBrowsableKey NSURLVolumeMaximumFileSizeKey NSURLVolumeIsEjectableKey NSURLVolumeIsRemovableKey NSURLVolumeIsInternalKey NSURLVolumeIsAutomountedKey NSURLVolumeIsLocalKey NSURLVolumeIsReadOnlyKey NSURLVolumeCreationDateKey NSURLVolumeURLForRemountingKey NSURLVolumeUUIDStringKey NSURLVolumeNameKey NSURLVolumeLocalizedNameKey
syn keyword objcConstVar NSURLIsUbiquitousItemKey NSURLUbiquitousItemHasUnresolvedConflictsKey NSURLUbiquitousItemIsDownloadedKey NSURLUbiquitousItemIsDownloadingKey NSURLUbiquitousItemIsUploadedKey NSURLUbiquitousItemIsUploadingKey NSURLUbiquitousItemPercentDownloadedKey NSURLUbiquitousItemPercentUploadedKey NSURLUbiquitousItemDownloadingStatusKey NSURLUbiquitousItemDownloadingErrorKey NSURLUbiquitousItemUploadingErrorKey NSURLUbiquitousItemDownloadRequestedKey NSURLUbiquitousItemContainerDisplayNameKey NSURLUbiquitousItemDownloadingStatusNotDownloaded NSURLUbiquitousItemDownloadingStatusDownloaded NSURLUbiquitousItemDownloadingStatusCurrent
""""""""""""
" NSString.h
syn match objcClass /NSString\s*\*/me=s+8,he=s+8
syn match objcClass /NSMutableString\s*\*/me=s+15,he=s+15
syn keyword objcType unichar
syn keyword objcExceptionValue NSParseErrorException NSCharacterConversionException
syn keyword objcMacro NSMaximumStringLength
syn keyword objcEnum NSStringCompareOptions
syn keyword objcEnumValue NSCaseInsensitiveSearch NSLiteralSearch NSBackwardsSearch NSAnchoredSearch NSNumericSearch NSDiacriticInsensitiveSearch NSWidthInsensitiveSearch NSForcedOrderingSearch NSRegularExpressionSearch 
syn keyword objcEnum NSStringEncoding
syn keyword objcEnumValue NSProprietaryStringEncoding
syn keyword objcEnumValue NSASCIIStringEncoding NSNEXTSTEPStringEncoding NSJapaneseEUCStringEncoding NSUTF8StringEncoding NSISOLatin1StringEncoding NSSymbolStringEncoding NSNonLossyASCIIStringEncoding NSShiftJISStringEncoding NSISOLatin2StringEncoding NSUnicodeStringEncoding NSWindowsCP1251StringEncoding NSWindowsCP1252StringEncoding NSWindowsCP1253StringEncoding NSWindowsCP1254StringEncoding NSWindowsCP1250StringEncoding NSISO2022JPStringEncoding NSMacOSRomanStringEncoding NSUTF16StringEncoding NSUTF16BigEndianStringEncoding NSUTF16LittleEndianStringEncoding NSUTF32StringEncoding NSUTF32BigEndianStringEncoding NSUTF32LittleEndianStringEncoding
syn keyword objcEnum NSStringEncodingConversionOptions
syn keyword objcEnumValue NSStringEncodingConversionAllowLossy NSStringEncodingConversionExternalRepresentation
syn keyword objcEnum NSStringEnumerationOptions
syn keyword objcEnumValue NSStringEnumerationByLines NSStringEnumerationByParagraphs NSStringEnumerationByComposedCharacterSequences NSStringEnumerationByWords NSStringEnumerationBySentences NSStringEnumerationReverse NSStringEnumerationSubstringNotRequired NSStringEnumerationLocalized
syn keyword objcConstVar NSStringTransformLatinToKatakana NSStringTransformLatinToHiragana NSStringTransformLatinToHangul NSStringTransformLatinToArabic NSStringTransformLatinToHebrew NSStringTransformLatinToThai NSStringTransformLatinToCyrillic NSStringTransformLatinToGreek NSStringTransformToLatin NSStringTransformMandarinToLatin NSStringTransformHiraganaToKatakana NSStringTransformFullwidthToHalfwidth NSStringTransformToXMLHex NSStringTransformToUnicodeName NSStringTransformStripCombiningMarks NSStringTransformStripDiacritics
syn keyword objcConstVar NSStringEncodingDetectionSuggestedEncodingsKey NSStringEncodingDetectionDisallowedEncodingsKey NSStringEncodingDetectionUseOnlySuggestedEncodingsKey NSStringEncodingDetectionAllowLossyKey NSStringEncodingDetectionFromWindowsKey NSStringEncodingDetectionLossySubstitutionKey NSStringEncodingDetectionLikelyLanguageKey
" NSAttributedString.h
syn match objcClass /NSAttributedString\s*\*/me=s+18,he=s+18
syn match objcClass /NSMutableAttributedString\s*\*/me=s+25,he=s+25
syn keyword objcEnum NSAttributedStringEnumerationOptions
syn keyword objcEnumValue NSAttributedStringEnumerationReverse NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
" NSValue.h
syn match objcClass /NSValue\s*\*/me=s+7,he=s+7
syn match objcClass /NSNumber\s*\*/me=s+8,he=s+8
" NSDecimalNumber.h
syn match objcClass /NSDecimalNumber\s*\*/me=s+15,he=s+15
syn match objcClass /NSDecimalNumberHandler\s*\*/me=s+22,he=s+22
syn keyword objcExceptionValue NSDecimalNumberExactnessException NSDecimalNumberOverflowException NSDecimalNumberUnderflowException NSDecimalNumberDivideByZeroException
" NSData.h
syn match objcClass /NSData\s*\*/me=s+6,he=s+6
syn match objcClass /NSMutableData\s*\*/me=s+13,he=s+13
syn keyword objcEnum NSDataReadingOptions
syn keyword objcEnumValue NSDataReadingMappedIfSafe NSDataReadingUncached NSDataReadingMappedAlways NSDataReadingMapped NSMappedRead NSUncachedRead
syn keyword objcEnum NSDataWritingOptions
syn keyword objcEnumValue NSDataWritingAtomic NSDataWritingWithoutOverwriting NSDataWritingFileProtectionNone NSDataWritingFileProtectionComplete NSDataWritingFileProtectionCompleteUnlessOpen NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication NSDataWritingFileProtectionMask NSAtomicWrite
syn keyword objcEnum NSDataSearchOptions
syn keyword objcEnumValue NSDataSearchBackwards NSDataSearchAnchored
syn keyword objcEnum NSDataBase64EncodingOptions NSDataBase64DecodingOptions
syn keyword objcEnumValue NSDataBase64Encoding64CharacterLineLength  NSDataBase64Encoding76CharacterLineLength NSDataBase64EncodingEndLineWithCarriageReturn NSDataBase64EncodingEndLineWithLineFeed NSDataBase64DecodingIgnoreUnknownCharacters
" NSArray.h
syn match objcClass /NSArray\s*\*/me=s+7,he=s+7
syn match objcClass /NSArray<.*>\s*\*/me=s+7,he=s+7 contains=objcTypeInfoParams
syn match objcClass /NSMutableArray\s*\*/me=s+14,he=s+14
syn match objcClass /NSMutableArray<.*>\s*\*/me=s+14,he=s+14 contains=objcTypeInfoParams
syn keyword objcEnum NSBinarySearchingOptions
syn keyword objcEnumValue NSBinarySearchingFirstEqual NSBinarySearchingLastEqual NSBinarySearchingInsertionIndex
" NSDictionary.h
syn match objcClass /NSDictionary\s*\*/me=s+12,he=s+12
syn match objcClass /NSDictionary<.*>\s*\*/me=s+12,he=s+12 contains=objcTypeInfoParams
syn match objcClass /NSMutableDictionary\s*\*/me=s+19,he=s+19
syn match objcClass /NSMutableDictionary<.*>\s*\*/me=s+19,he=s+19 contains=objcTypeInfoParams
" NSSet.h
syn match objcClass /NSSet\s*\*/me=s+5,me=s+5
syn match objcClass /NSSet<.*>\s*\*/me=s+5,me=s+5 contains=objcTypeInfoParams
syn match objcClass /NSMutableSet\s*\*/me=s+12,me=s+12
syn match objcClass /NSMutableSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams
syn match objcClass /NSCountedSet\s*\*/me=s+12,me=s+12
syn match objcClass /NSCountedSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams
" NSOrderedSet.h
syn match objcClass /NSOrderedSet\s*\*/me=s+12,me=s+12
syn match objcClass /NSOrderedSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams
syn match objcClass /NSMutableOrderedSet\s*\*/me=s+19,me=s+19
syn match objcClass /NSMutableOrderedSet<.*>\s*\*/me=s+19,me=s+19
"""""""""""""""""""
" NSPathUtilities.h
syn keyword objcEnum NSSearchPathDirectory
syn keyword objcEnumValue NSApplicationDirectory NSDemoApplicationDirectory NSDeveloperApplicationDirectory NSAdminApplicationDirectory NSLibraryDirectory NSDeveloperDirectory NSUserDirectory NSDocumentationDirectory NSDocumentDirectory NSCoreServiceDirectory NSAutosavedInformationDirectory NSDesktopDirectory NSCachesDirectory NSApplicationSupportDirectory NSDownloadsDirectory NSInputMethodsDirectory NSMoviesDirectory NSMusicDirectory NSPicturesDirectory NSPrinterDescriptionDirectory NSSharedPublicDirectory NSPreferencePanesDirectory NSApplicationScriptsDirectory NSItemReplacementDirectory NSAllApplicationsDirectory NSAllLibrariesDirectory NSTrashDirectory
syn keyword objcEnum NSSearchPathDomainMask
syn keyword objcEnumValue NSUserDomainMask NSLocalDomainMask NSNetworkDomainMask NSSystemDomainMask NSAllDomainsMask
" NSFileManger.h
syn match objcClass /NSFileManager\s*\*/me=s+13,he=s+13
syn match objcClass /NSDirectoryEnumerator\s*\*/me=s+21,he=s+21 contains=objcTypeInfoParams
syn match objcClass /NSDirectoryEnumerator<.*>\s*\*/me=s+21,he=s+21
syn keyword objcEnum NSVolumeEnumerationOptions
syn keyword objcEnumValue NSVolumeEnumerationSkipHiddenVolumes NSVolumeEnumerationProduceFileReferenceURLs 
syn keyword objcEnum NSURLRelationship
syn keyword objcEnumValue NSURLRelationshipContains NSURLRelationshipSame NSURLRelationshipOther
syn keyword objcEnum NSFileManagerUnmountOptions
syn keyword objcEnumValue NSFileManagerUnmountAllPartitionsAndEjectDisk NSFileManagerUnmountWithoutUI
syn keyword objcConstVar NSFileManagerUnmountDissentingProcessIdentifierErrorKey
syn keyword objcEnum NSDirectoryEnumerationOptions
syn keyword objcEnumValue NSDirectoryEnumerationSkipsSubdirectoryDescendants NSDirectoryEnumerationSkipsPackageDescendants NSDirectoryEnumerationSkipsHiddenFiles 
syn keyword objcEnum NSFileManagerItemReplacementOptions
syn keyword objcEnumValue NSFileManagerItemReplacementUsingNewMetadataOnly NSFileManagerItemReplacementWithoutDeletingBackupItem
syn keyword objcNotificationValue NSUbiquityIdentityDidChangeNotification
syn keyword objcConstVar NSFileType NSFileTypeDirectory NSFileTypeRegular NSFileTypeSymbolicLink NSFileTypeSocket NSFileTypeCharacterSpecial NSFileTypeBlockSpecial NSFileTypeUnknown NSFileSize NSFileModificationDate NSFileReferenceCount NSFileDeviceIdentifier NSFileOwnerAccountName NSFileGroupOwnerAccountName NSFilePosixPermissions NSFileSystemNumber NSFileSystemFileNumber NSFileExtensionHidden NSFileHFSCreatorCode NSFileHFSTypeCode NSFileImmutable NSFileAppendOnly NSFileCreationDate NSFileOwnerAccountID NSFileGroupOwnerAccountID NSFileBusy NSFileProtectionKey NSFileProtectionNone NSFileProtectionComplete NSFileProtectionCompleteUnlessOpen NSFileProtectionCompleteUntilFirstUserAuthentication NSFileSystemSize NSFileSystemFreeSize NSFileSystemNodes NSFileSystemFreeNodes
" NSFileHandle.h
syn match objcClass /NSFileHandle\s*\*/me=s+12,he=s+12
syn keyword objcExceptionValue NSFileHandleOperationException
syn keyword objcNotificationValue NSFileHandleReadCompletionNotification NSFileHandleReadToEndOfFileCompletionNotification NSFileHandleConnectionAcceptedNotification NSFileHandleDataAvailableNotification NSFileHandleNotificationDataItem NSFileHandleNotificationFileHandleItem NSFileHandleNotificationMonitorModes
syn match objcClass /NSPipe\s*\*/me=s+6,he=s+6
""""""""""""
" NSLocale.h
syn match objcClass /NSLocale\s*\*/me=s+8,he=s+8
syn keyword objcEnum NSLocaleLanguageDirection
syn keyword objcEnumValue NSLocaleLanguageDirectionUnknown NSLocaleLanguageDirectionLeftToRight NSLocaleLanguageDirectionRightToLeft NSLocaleLanguageDirectionTopToBottom NSLocaleLanguageDirectionBottomToTop
syn keyword objcNotificationValue NSCurrentLocaleDidChangeNotification
syn keyword objcConstVar NSLocaleIdentifier NSLocaleLanguageCode NSLocaleCountryCode NSLocaleScriptCode NSLocaleVariantCode NSLocaleExemplarCharacterSet NSLocaleCalendar NSLocaleCollationIdentifier NSLocaleUsesMetricSystem NSLocaleMeasurementSystem NSLocaleDecimalSeparator NSLocaleGroupingSeparator NSLocaleCurrencySymbol NSLocaleCurrencyCode NSLocaleCollatorIdentifier NSLocaleQuotationBeginDelimiterKey NSLocaleQuotationEndDelimiterKey NSLocaleAlternateQuotationBeginDelimiterKey NSLocaleAlternateQuotationEndDelimiterKey NSGregorianCalendar NSBuddhistCalendar NSChineseCalendar NSHebrewCalendar NSIslamicCalendar NSIslamicCivilCalendar NSJapaneseCalendar NSRepublicOfChinaCalendar NSPersianCalendar NSIndianCalendar NSISO8601Calendar 
" NSFormatter.h
syn match objcClass /NSFormatter\s*\*/me=s+11,he=s+11
syn keyword objcEnum NSFormattingContext NSFormattingUnitStyle
syn keyword objcEnumValue NSFormattingContextUnknown NSFormattingContextDynamic NSFormattingContextStandalone NSFormattingContextListItem NSFormattingContextBeginningOfSentence NSFormattingContextMiddleOfSentence NSFormattingUnitStyleShort NSFormattingUnitStyleMedium NSFormattingUnitStyleLong
" NSNumberFormatter.h
syn match objcClass /NSNumberFormatter\s*\*/me=s+17,he=s+17
syn keyword objcEnum NSNumberFormatterStyle
syn keyword objcEnumValue NSNumberFormatterNoStyle NSNumberFormatterDecimalStyle NSNumberFormatterCurrencyStyle NSNumberFormatterPercentStyle NSNumberFormatterScientificStyle NSNumberFormatterSpellOutStyle NSNumberFormatterOrdinalStyle NSNumberFormatterCurrencyISOCodeStyle NSNumberFormatterCurrencyPluralStyle NSNumberFormatterCurrencyAccountingStyle
syn keyword objcEnum NSNumberFormatterBehavior
syn keyword objcEnumValue NSNumberFormatterBehaviorDefault NSNumberFormatterBehavior10_0 NSNumberFormatterBehavior10_4
syn keyword objcEnum NSNumberFormatterPadPosition
syn keyword objcEnumValue NSNumberFormatterPadBeforePrefix NSNumberFormatterPadAfterPrefix NSNumberFormatterPadBeforeSuffix NSNumberFormatterPadAfterSuffix
syn keyword objcEnum NSNumberFormatterRoundingMode
syn keyword objcEnumValue NSNumberFormatterRoundCeiling NSNumberFormatterRoundFloor NSNumberFormatterRoundDown NSNumberFormatterRoundUp NSNumberFormatterRoundHalfEven NSNumberFormatterRoundHalfDown NSNumberFormatterRoundHalfUp
" NSDateFormatter.h
syn match objcClass /NSDateFormatter\s*\*/me=s+15,he=s+15
syn keyword objcEnum NSDateFormatterStyle
syn keyword objcEnumValue NSDateFormatterNoStyle NSDateFormatterShortStyle NSDateFormatterMediumStyle NSDateFormatterLongStyle NSDateFormatterFullStyle
syn keyword objcEnum NSDateFormatterBehavior
syn keyword objcEnumValue NSDateFormatterBehaviorDefault NSDateFormatterBehavior10_0 NSDateFormatterBehavior10_4
" NSCalendar.h
syn match objcClass /NSCalendar\s*\*/me=s+10,he=s+10
syn keyword objcConstVar NSCalendarIdentifierGregorian NSCalendarIdentifierBuddhist NSCalendarIdentifierChinese NSCalendarIdentifierCoptic NSCalendarIdentifierEthiopicAmeteMihret NSCalendarIdentifierEthiopicAmeteAlem NSCalendarIdentifierHebrew NSCalendarIdentifierISO8601 NSCalendarIdentifierIndian NSCalendarIdentifierIslamic NSCalendarIdentifierIslamicCivil NSCalendarIdentifierJapanese NSCalendarIdentifierPersian NSCalendarIdentifierRepublicOfChina NSCalendarIdentifierIslamicTabular NSCalendarIdentifierIslamicUmmAlQura
syn keyword objcEnum NSCalendarUnit
syn keyword objcEnumValue NSCalendarUnitEra NSCalendarUnitYear NSCalendarUnitMonth NSCalendarUnitDay NSCalendarUnitHour NSCalendarUnitMinute NSCalendarUnitSecond NSCalendarUnitWeekday NSCalendarUnitWeekdayOrdinal NSCalendarUnitQuarter NSCalendarUnitWeekOfMonth NSCalendarUnitWeekOfYear NSCalendarUnitYearForWeekOfYear NSCalendarUnitNanosecond NSCalendarUnitCalendar NSCalendarUnitTimeZone
syn keyword objcEnumValue NSEraCalendarUnit NSYearCalendarUnit NSMonthCalendarUnit NSDayCalendarUnit NSHourCalendarUnit NSMinuteCalendarUnit NSSecondCalendarUnit NSWeekCalendarUnit NSWeekdayCalendarUnit NSWeekdayOrdinalCalendarUnit NSQuarterCalendarUnit NSWeekOfMonthCalendarUnit NSWeekOfYearCalendarUnit NSYearForWeekOfYearCalendarUnit NSCalendarCalendarUnit NSTimeZoneCalendarUnit
syn keyword objcEnumValue NSWrapCalendarComponents NSUndefinedDateComponent NSDateComponentUndefined
syn match objcClass /NSDateComponents\s*\*/me=s+16,he=s+16
syn keyword objcEnum NSCalendarOptions
syn keyword objcEnumValue NSCalendarWrapComponents NSCalendarMatchStrictly NSCalendarSearchBackwards NSCalendarMatchPreviousTimePreservingSmallerUnits NSCalendarMatchNextTimePreservingSmallerUnits NSCalendarMatchNextTime NSCalendarMatchFirst NSCalendarMatchLast
syn keyword objcConstVar NSCalendarDayChangedNotification
" NSTimeZone.h
syn match objcClass /NSTimeZone\s*\*/me=s+10,he=s+10
syn keyword objcEnum NSTimeZoneNameStyle
syn keyword objcEnumValue NSTimeZoneNameStyleStandard NSTimeZoneNameStyleShortStandard NSTimeZoneNameStyleDaylightSaving NSTimeZoneNameStyleShortDaylightSaving NSTimeZoneNameStyleGeneric NSTimeZoneNameStyleShortGeneric
syn keyword objcNotificationValue NSSystemTimeZoneDidChangeNotification
"""""""""""
" NSCoder.h
syn match objcClass /NSCoder\s*\*/me=s+7,he=s+7
" NSArchiver.h
syn match objcClass /NSArchiver\s*\*/me=s+10,he=s+10
syn match objcClass /NSUnarchiver\s*\*/me=s+12,he=s+12
syn keyword objcExceptionValue NSInconsistentArchiveException
" NSKeyedArchiver.h
syn match objcClass /NSKeyedArchiver\s*\*/me=s+15,he=s+15
syn match objcClass /NSKeyedUnarchiver\s*\*/me=s+17,he=s+17
syn keyword objcExceptionValue NSInvalidArchiveOperationException NSInvalidUnarchiveOperationException
syn keyword objcConstVar NSKeyedArchiveRootObjectKey
""""""""""""""""""
" NSPropertyList.h
syn keyword objcEnum NSPropertyListMutabilityOptions
syn keyword objcEnumValue NSPropertyListImmutable NSPropertyListMutableContainers NSPropertyListMutableContainersAndLeaves
syn keyword objcEnum NSPropertyListFormat
syn keyword objcEnumValue NSPropertyListOpenStepFormat NSPropertyListXMLFormat_v1_0 NSPropertyListBinaryFormat_v1_0
syn keyword objcType NSPropertyListReadOptions NSPropertyListWriteOptions
" NSUserDefaults.h
syn match objcClass /NSUserDefaults\s*\*/me=s+14,he=s+14
syn keyword objcConstVar NSGlobalDomain NSArgumentDomain NSRegistrationDomain
syn keyword objcNotificationValue NSUserDefaultsDidChangeNotification
" NSBundle.h
syn match objcClass /NSBundle\s*\*/me=s+8,he=s+8
syn keyword objcEnumValue NSBundleExecutableArchitectureI386 NSBundleExecutableArchitecturePPC NSBundleExecutableArchitectureX86_64 NSBundleExecutableArchitecturePPC64
syn keyword objcNotificationValue NSBundleDidLoadNotification NSLoadedClasses NSBundleResourceRequestLowDiskSpaceNotification
syn keyword objcConstVar NSBundleResourceRequestLoadingPriorityUrgent
"""""""""""""""""
" NSProcessInfo.h
syn match objcClass /NSProcessInfo\s*\*/me=s+13,he=s+13
syn keyword objcEnumValue NSWindowsNTOperatingSystem NSWindows95OperatingSystem NSSolarisOperatingSystem NSHPUXOperatingSystem NSMACHOperatingSystem NSSunOSOperatingSystem NSOSF1OperatingSystem
syn keyword objcType NSOperatingSystemVersion
syn keyword objcEnum NSActivityOptions NSProcessInfoThermalState
syn keyword objcEnumValue NSActivityIdleDisplaySleepDisabled NSActivityIdleSystemSleepDisabled NSActivitySuddenTerminationDisabled NSActivityAutomaticTerminationDisabled NSActivityUserInitiated NSActivityUserInitiatedAllowingIdleSystemSleep NSActivityBackground NSActivityLatencyCritical NSProcessInfoThermalStateNominal NSProcessInfoThermalStateFair NSProcessInfoThermalStateSerious NSProcessInfoThermalStateCritical
syn keyword objcNotificationValue NSProcessInfoThermalStateDidChangeNotification NSProcessInfoPowerStateDidChangeNotification
" NSTask.h
syn match objcClass /NSTask\s*\*/me=s+6,he=s+6
syn keyword objcEnum NSTaskTerminationReason
syn keyword objcEnumValue NSTaskTerminationReasonExit NSTaskTerminationReasonUncaughtSignal
syn keyword objcNotificationValue NSTaskDidTerminateNotification
" NSThread.h
syn match objcClass /NSThread\s*\*/me=s+8,he=s+8
syn keyword objcNotificationValue NSWillBecomeMultiThreadedNotification NSDidBecomeSingleThreadedNotification NSThreadWillExitNotification
" NSLock.h
syn match objcClass /NSLock\s*\*/me=s+6,he=s+6
syn match objcClass /NSConditionLock\s*\*/me=s+15,he=s+15
syn match objcClass /NSRecursiveLock\s*\*/me=s+15,he=s+15
" NSDictributedLock
syn match objcClass /NSDistributedLock\s*\*/me=s+17,he=s+17
" NSOperation.h
""""""""""""""""
syn match objcClass /NSOperation\s*\*/me=s+11,he=s+11
syn keyword objcEnum NSOperationQueuePriority
syn keyword objcEnumValue NSOperationQueuePriorityVeryLow NSOperationQueuePriorityLow NSOperationQueuePriorityNormal NSOperationQueuePriorityHigh NSOperationQueuePriorityVeryHigh
syn match objcClass /NSBlockOperation\s*\*/me=s+16,he=s+16
syn match objcClass /NSInvocationOperation\s*\*/me=s+21,he=s+21
syn keyword objcExceptionValue NSInvocationOperationVoidResultException NSInvocationOperationCancelledException
syn match objcClass /NSOperationQueue\s*\*/me=s+16,he=s+16
syn keyword objcEnumValue NSOperationQueueDefaultMaxConcurrentOperationCount
" NSConnection.h
syn match objcClass /NSConnection\s*\*/me=s+12,he=s+12
syn keyword objcConstVar NSConnectionReplyMode
syn keyword objcNotificationValue NSConnectionDidDieNotification NSConnectionDidInitializeNotification
syn keyword objcExceptionValue NSFailedAuthenticationException
" NSPort.h
syn match objcClass /NSPort\s*\*/me=s+6,he=s+6
syn keyword objcType NSSocketNativeHandle
syn keyword objcNotificationValue NSPortDidBecomeInvalidNotification
syn match objcClass /NSMachPort\s*\*/me=s+10,he=s+10
syn keyword objcEnum NSMachPortOptions
syn keyword objcEnumValue NSMachPortDeallocateNone NSMachPortDeallocateSendRight NSMachPortDeallocateReceiveRight
syn match objcClass /NSMessagePort\s*\*/me=s+13,he=s+13
syn match objcClass /NSSocketPort\s*\*/me=s+12,he=s+12
" NSPortMessage.h
syn match objcClass /NSPortMessage\s*\*/me=s+13,he=s+13
" NSDistantObject.h
syn match objcClass /NSDistantObject\s*\*/me=s+15,he=s+15
" NSPortNameServer.h
syn match objcClass /NSPortNameServer\s*\*/me=s+16,he=s+16
syn match objcClass /NSMessagePortNameServer\s*\*/me=s+23,he=s+23
syn match objcClass /NSSocketPortNameServer\s*\*/me=s+22,he=s+22
" NSHost.h
syn match objcClass /NSHost\s*\*/me=s+6,he=s+6
" NSInvocation.h
syn match objcClass /NSInvocation\s*\*/me=s+12,he=s+12
" NSMethodSignature.h
syn match objcClass /NSMethodSignature\s*\*/me=s+17,he=s+17
"""""
" NSScanner.h
syn match objcClass /NSScanner\s*\*/me=s+9,he=s+9
" NSTimer.h
syn match objcClass /NSTimer\s*\*/me=s+7,he=s+7
" NSAutoreleasePool.h
syn match objcClass /NSAutoreleasePool\s*\*/me=s+17,he=s+17
" NSRunLoop.h
syn match objcClass /NSRunLoop\s*\*/me=s+9,he=s+9
syn keyword objcConstVar NSDefaultRunLoopMode NSRunLoopCommonModes
" NSNull.h
syn match objcClass /NSNull\s*\*/me=s+6,he=s+6
" NSProxy.h
syn match objcClass /NSProxy\s*\*/me=s+7,he=s+7
" NSObject.h
syn match objcClass /NSObject\s*\*/me=s+8,he=s+8


" NSCache.h
syn match objcClass /NSCache\s*\*/me=s+7,he=s+7
syn match objcClass /NSCache<.*>\s*\*/me=s+7,he=s+7 contains=objcTypeInfoParams
" NSHashTable.h
syn match objcClass /NSHashTable\s*\*/me=s+11,he=s+11
syn match objcClass /NSHashTable<.*>\s*\*/me=s+11,he=s+11 contains=objcTypeInfoParams
syn keyword objcConstVar NSHashTableStrongMemory NSHashTableZeroingWeakMemory NSHashTableCopyIn NSHashTableObjectPointerPersonality NSHashTableWeakMemory
syn keyword objcType NSHashTableOptions NSHashEnumerator NSHashTableCallBacks
syn keyword objcConstVar NSIntegerHashCallBacks NSNonOwnedPointerHashCallBacks NSNonRetainedObjectHashCallBacks NSObjectHashCallBacks NSOwnedObjectIdentityHashCallBacks NSOwnedPointerHashCallBacks NSPointerToStructHashCallBacks NSOwnedObjectIdentityHashCallBacks NSOwnedObjectIdentityHashCallBacks NSIntHashCallBacks
" NSMapTable.h
syn match objcClass /NSMapTable\s*\*/me=s+10,he=s+10
syn match objcClass /NSMapTable<.*>\s*\*/me=s+10,he=s+10 contains=objcTypeInfoParams
syn keyword objcConstVar NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks
syn keyword objcConstVar NSMapTableStrongMemory NSMapTableZeroingWeakMemory NSMapTableCopyIn NSMapTableObjectPointerPersonality NSMapTableWeakMemory
syn keyword objcType NSMapTableOptions NSMapEnumerator NSMapTableKeyCallBacks NSMapTableValueCallBacks
syn keyword objcMacro NSNotAnIntMapKey NSNotAnIntegerMapKey NSNotAPointerMapKey
syn keyword objcConstVar NSIntegerMapKeyCallBacks NSNonOwnedPointerMapKeyCallBacks NSNonOwnedPointerOrNullMapKeyCallBacks NSNonRetainedObjectMapKeyCallBacks NSObjectMapKeyCallBacks NSOwnedPointerMapKeyCallBacks NSIntMapKeyCallBacks NSIntegerMapValueCallBacks NSNonOwnedPointerMapValueCallBacks NSObjectMapValueCallBacks NSNonRetainedObjectMapValueCallBacks NSOwnedPointerMapValueCallBacks NSIntMapValueCallBacks

" NSPointerFunctions.h
syn match objcClass /NSPointerFunctions\s*\*/me=s+18,he=s+18
syn keyword objcEnum NSPointerFunctionsOptions
syn keyword objcEnumValue NSPointerFunctionsStrongMemory NSPointerFunctionsZeroingWeakMemory NSPointerFunctionsOpaqueMemory NSPointerFunctionsMallocMemory NSPointerFunctionsMachVirtualMemory NSPointerFunctionsWeakMemory NSPointerFunctionsObjectPersonality NSPointerFunctionsOpaquePersonality NSPointerFunctionsObjectPointerPersonality NSPointerFunctionsCStringPersonality NSPointerFunctionsStructPersonality NSPointerFunctionsIntegerPersonality NSPointerFunctionsCopyIn


""" Default Highlighting
hi def link objcPreProcMacro                cConstant
hi def link objcPrincipalType               cType
hi def link objcUsefulTerm                  cConstant
hi def link objcImport                      cInclude
hi def link objcImported                    cString
hi def link objcObjDef                      cOperator
hi def link objcProtocol                    cOperator
hi def link objcProperty                    cOperator
hi def link objcIvarScope                   cOperator
hi def link objcInternalRep                 cOperator
hi def link objcException                   cOperator
hi def link objcThread                      cOperator
hi def link objcPool                        cOperator
hi def link objcModuleImport                cOperator
hi def link objcSpecial                     cSpecial
hi def link objcString                      cString
hi def link objcHiddenArgument              cStatement
hi def link objcBlocksQualifier             cStorageClass
hi def link objcObjectLifetimeQualifier     cStorageClass
hi def link objcTollFreeBridgeQualifier     cStorageClass
hi def link objcRemoteMessagingQualifier    cStorageClass
hi def link objcStorageClass                cStorageClass
hi def link objcFastEnumKeyword             cStatement
hi def link objcLiteralSyntaxNumber         cNumber
hi def link objcLiteralSyntaxChar           cCharacter
hi def link objcLiteralSyntaxSpecialChar    cCharacter
hi def link objcLiteralSyntaxOp             cOperator
hi def link objcDeclPropAccessorName        cConstant
hi def link objcDeclPropAccessorType        cConstant
hi def link objcDeclPropAssignSemantics     cConstant
hi def link objcDeclPropAtomicity           cConstant
hi def link objcDeclPropARC                 cConstant
hi def link objcDeclPropNullable            cConstant
hi def link objcDeclPropNonnull             cConstant
hi def link objcDeclPropNullUnspecified     cConstant
hi def link objcDeclProcNullResettable      cConstant
hi def link objcInstanceMethod              Function
hi def link objcClassMethod                 Function
hi def link objcType                        cType
hi def link objcClass                       cType
hi def link objcTypeSpecifier               cType
hi def link objcMacro                       cConstant
hi def link objcEnum                        cType
hi def link objcEnumValue                   cConstant
hi def link objcExceptionValue              cConstant
hi def link objcNotificationValue           cConstant
hi def link objcConstVar                    cConstant
hi def link objcTypeInfoParams              Identifier

""" Final step
let b:current_syntax = "objc"
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 sw=2 sts=2
PK�j�Z�]��u7u7vim80/syntax/upstreamrpt.vimnu�[���" Vim syntax file
" Language:		Innovation Data Processing upstream.rpt file
" Maintainer:		Rob Owens <rowens@fdrinnovation.com>
" Latest Revision:	2014-03-13

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal foldmethod=syntax

" Parameters:
syn keyword upstreamdat_Parameter ACCEPTPCREMOTE 
syn keyword upstreamdat_Parameter ACCEPTREMOTE 
syn keyword upstreamdat_Parameter ACTION 
syn keyword upstreamdat_Parameter ACTIVATEONENTRY 
syn keyword upstreamdat_Parameter ARCHIVEBIT 
syn keyword upstreamdat_Parameter ARCHIVEBIT 
syn keyword upstreamdat_Parameter ASCTOEBC 
syn keyword upstreamdat_Parameter ASRBACKUP 
syn keyword upstreamdat_Parameter ATTENDED 
syn keyword upstreamdat_Parameter AUTHORITATIVE 
syn keyword upstreamdat_Parameter AUTHORITATIVERESTORE 
syn keyword upstreamdat_Parameter AUTHORITATIVERESTORE 
syn keyword upstreamdat_Parameter BACKUPPROFILE 
syn keyword upstreamdat_Parameter BACKUPPROFILE2 
syn keyword upstreamdat_Parameter BACKUPREPARSEFILES 
syn keyword upstreamdat_Parameter BACKUPREPARSEFILES 
syn keyword upstreamdat_Parameter BACKUPVERIFY 
syn keyword upstreamdat_Parameter BLANKTRUNC 
syn keyword upstreamdat_Parameter CALCDASDSIZE 
syn keyword upstreamdat_Parameter CHANGEDIRATTRIBS 
syn keyword upstreamdat_Parameter CHANGEDIRATTRIBS 
syn keyword upstreamdat_Parameter COMPRESSLEVEL 
syn keyword upstreamdat_Parameter CONTROLFILE 
syn keyword upstreamdat_Parameter DASDOVERRIDE 
syn keyword upstreamdat_Parameter DATELIMIT 
syn keyword upstreamdat_Parameter DATELIMIT 
syn keyword upstreamdat_Parameter DAYSOLD 
syn keyword upstreamdat_Parameter DAYSOLD 
syn keyword upstreamdat_Parameter DELETED 
syn keyword upstreamdat_Parameter DELETED 
syn keyword upstreamdat_Parameter DELETEPROMPTS 
syn keyword upstreamdat_Parameter DELETEPROMPTS 
syn keyword upstreamdat_Parameter DESTINATION 
syn keyword upstreamdat_Parameter DESTINATION 
syn keyword upstreamdat_Parameter DIRDELETE 
syn keyword upstreamdat_Parameter DIRECTORVMC 
syn keyword upstreamdat_Parameter DIRONLYRESTOREOK 
syn keyword upstreamdat_Parameter DIRSONLY 
syn keyword upstreamdat_Parameter DIRSONLY 
syn keyword upstreamdat_Parameter DISASTERRECOVERY 
syn keyword upstreamdat_Parameter DISPLAY 
syn keyword upstreamdat_Parameter DRIVEALIAS 
syn keyword upstreamdat_Parameter DRIVEALIAS 
syn keyword upstreamdat_Parameter DUALCOPY 
syn keyword upstreamdat_Parameter DUPDAYS 
syn keyword upstreamdat_Parameter DUPLICATE 
syn keyword upstreamdat_Parameter EBCTOASC 
syn keyword upstreamdat_Parameter ENCRYPT 
syn keyword upstreamdat_Parameter ENCRYPTLEVEL 
syn keyword upstreamdat_Parameter EXCLUDELISTNAME 
syn keyword upstreamdat_Parameter FAILBACKUPONERROR 
syn keyword upstreamdat_Parameter FAILBACKUPONERROR 
syn keyword upstreamdat_Parameter FAILIFNOFILES 
syn keyword upstreamdat_Parameter FAILIFNOFILES 
syn keyword upstreamdat_Parameter FAILIFSKIP 
syn keyword upstreamdat_Parameter FAILJOB 
syn keyword upstreamdat_Parameter FAILRESTOREONERROR 
syn keyword upstreamdat_Parameter FAILRESTOREONERROR 
syn keyword upstreamdat_Parameter FILEDATE 
syn keyword upstreamdat_Parameter FILEDATE 
syn keyword upstreamdat_Parameter FILEDELETE 
syn keyword upstreamdat_Parameter FILEDELETE 
syn keyword upstreamdat_Parameter FILES 
syn keyword upstreamdat_Parameter FILES 
syn keyword upstreamdat_Parameter FILESOPENFORUPDAT 
syn keyword upstreamdat_Parameter FILESOPENFORUPDAT 
syn keyword upstreamdat_Parameter FILETRANSFER 
syn keyword upstreamdat_Parameter GETREMOTEFILES 
syn keyword upstreamdat_Parameter HARDLINKDB 
syn keyword upstreamdat_Parameter HARDLINKS 
syn keyword upstreamdat_Parameter HARDLINKS 
syn keyword upstreamdat_Parameter HIDDENFILES 
syn keyword upstreamdat_Parameter HIDDENFILES 
syn keyword upstreamdat_Parameter HOLDTAPE 
syn keyword upstreamdat_Parameter HOLDUSERDIRS 
syn keyword upstreamdat_Parameter HOSTFILENAME 
syn keyword upstreamdat_Parameter HOSTRECORD 
syn keyword upstreamdat_Parameter HOSTSORT 
syn keyword upstreamdat_Parameter IGNOREPLUGINSFORRESTORE 
syn keyword upstreamdat_Parameter INCRDB 
syn keyword upstreamdat_Parameter INCRDBARCHIVEBIT 
syn keyword upstreamdat_Parameter INCRDBDELETEDFILES 
syn keyword upstreamdat_Parameter INCREMENTAL 
syn keyword upstreamdat_Parameter INCREMENTAL 
syn keyword upstreamdat_Parameter INQOPTIONS 
syn keyword upstreamdat_Parameter INSTALLWIN2KAGENT 
syn keyword upstreamdat_Parameter INSTALLWIN2KAGENT 
syn keyword upstreamdat_Parameter JOBOPTIONS 
syn keyword upstreamdat_Parameter JOBRETURNCODEMAP 
syn keyword upstreamdat_Parameter JOBWAITTIMELIMIT 
syn keyword upstreamdat_Parameter KEEPALIVE 
syn keyword upstreamdat_Parameter LANINTERFACE 
syn keyword upstreamdat_Parameter LANWSNAME 
syn keyword upstreamdat_Parameter LANWSPASSWORD 
syn keyword upstreamdat_Parameter LASTACCESS 
syn keyword upstreamdat_Parameter LASTACCESS 
syn keyword upstreamdat_Parameter LATESTDATE 
syn keyword upstreamdat_Parameter LATESTDATE 
syn keyword upstreamdat_Parameter LATESTTIME 
syn keyword upstreamdat_Parameter LATESTTIME 
syn keyword upstreamdat_Parameter LATESTVERSION 
syn keyword upstreamdat_Parameter LINEBLOCK 
syn keyword upstreamdat_Parameter LINETRUNC 
syn keyword upstreamdat_Parameter LISTENFORREMOTE 
syn keyword upstreamdat_Parameter LOCALBACKUP 
syn keyword upstreamdat_Parameter LOCALBACKUPDIR 
syn keyword upstreamdat_Parameter LOCALBACKUPMAX 
syn keyword upstreamdat_Parameter LOCALBACKUPMAXFILESIZE 
syn keyword upstreamdat_Parameter LOCALBACKUPMAXSIZE 
syn keyword upstreamdat_Parameter LOCALEXCLUDEFILE 
syn keyword upstreamdat_Parameter LOCALPARAMETERS 
syn keyword upstreamdat_Parameter LOCALPASSWORD 
syn keyword upstreamdat_Parameter LOCALRESTORE 
syn keyword upstreamdat_Parameter LOCALUSER 
syn keyword upstreamdat_Parameter LOFS 
syn keyword upstreamdat_Parameter LOGNONFATAL 
syn keyword upstreamdat_Parameter MAXBACKUPFILESFAIL 
syn keyword upstreamdat_Parameter MAXBACKUPTIME 
syn keyword upstreamdat_Parameter MAXDUPS 
syn keyword upstreamdat_Parameter MAXFILENAMESIZE 
syn keyword upstreamdat_Parameter MAXKFILESIZE 
syn keyword upstreamdat_Parameter MAXLOGDAYS 
syn keyword upstreamdat_Parameter MAXRESTOREFILESFAIL 
syn keyword upstreamdat_Parameter MAXRESTORETIME 
syn keyword upstreamdat_Parameter MAXRETRY 
syn keyword upstreamdat_Parameter MAXRPTDAYS 
syn keyword upstreamdat_Parameter MERGE 
syn keyword upstreamdat_Parameter MIGRBITS 
syn keyword upstreamdat_Parameter MIGRBITS 
syn keyword upstreamdat_Parameter MINCOMPRESSSIZE 
syn keyword upstreamdat_Parameter MINIMIZE 
syn keyword upstreamdat_Parameter MODIFYFILE 
syn keyword upstreamdat_Parameter MOUNTPOINTS 
syn keyword upstreamdat_Parameter MOUNTPOINTS 
syn keyword upstreamdat_Parameter NDS 
syn keyword upstreamdat_Parameter NDS 
syn keyword upstreamdat_Parameter NEWFILECOMPARE 
syn keyword upstreamdat_Parameter NFSBELOW 
syn keyword upstreamdat_Parameter NODATAOK 
syn keyword upstreamdat_Parameter NODIRFORINCREMENTAL 
syn keyword upstreamdat_Parameter NODIRFORINCREMENTAL 
syn keyword upstreamdat_Parameter NONFILEDATABITMAP 
syn keyword upstreamdat_Parameter NONFILEDATABITMAP 
syn keyword upstreamdat_Parameter NOPOINTRESTORE 
syn keyword upstreamdat_Parameter NOSPECINHERITANCE 
syn keyword upstreamdat_Parameter NOTIFYEVENTS 
syn keyword upstreamdat_Parameter NOTIFYFAILUREATTACHMENT 
syn keyword upstreamdat_Parameter NOTIFYSUCCESSATTACHMENT 
syn keyword upstreamdat_Parameter NOTIFYTARGETS 
syn keyword upstreamdat_Parameter NOUIDGIDNAMES 
syn keyword upstreamdat_Parameter NOUIDGIDNAMES 
syn keyword upstreamdat_Parameter NOVELLMIGRATE 
syn keyword upstreamdat_Parameter NOVELLMIGRATE 
syn keyword upstreamdat_Parameter NOVELLMIGRATEADDEXT 
syn keyword upstreamdat_Parameter NOVELLMIGRATEADDEXT 
syn keyword upstreamdat_Parameter NOVELLPROFILE 
syn keyword upstreamdat_Parameter NOVELLRECALL 
syn keyword upstreamdat_Parameter NTFSADDPERMISSION 
syn keyword upstreamdat_Parameter NTFSADDPERMISSION 
syn keyword upstreamdat_Parameter NTREGRESTORE 
syn keyword upstreamdat_Parameter OSTYPE 
syn keyword upstreamdat_Parameter OUTPORT 
syn keyword upstreamdat_Parameter PACKFLUSHAFTERFILE 
syn keyword upstreamdat_Parameter PACKRECSIZE 
syn keyword upstreamdat_Parameter PARAMETER 
syn keyword upstreamdat_Parameter PASSWORD 
syn keyword upstreamdat_Parameter PATHNAME 
syn keyword upstreamdat_Parameter PATHNAME 
syn keyword upstreamdat_Parameter PERFORMBITMAP 
syn keyword upstreamdat_Parameter PERFORMNUMRECORDS 
syn keyword upstreamdat_Parameter PERFORMRECORDSIZE 
syn keyword upstreamdat_Parameter PLUGIN 
syn keyword upstreamdat_Parameter PLUGIN 
syn keyword upstreamdat_Parameter PLUGINPARAMETERS 
syn keyword upstreamdat_Parameter PLUGINPARAMETERS 
syn keyword upstreamdat_Parameter POSTJOB 
syn keyword upstreamdat_Parameter PREJOB 
syn keyword upstreamdat_Parameter PRTYCLASS 
syn keyword upstreamdat_Parameter PRTYLEVEL 
syn keyword upstreamdat_Parameter RECALLCLEANUP 
syn keyword upstreamdat_Parameter RECALLOFFLINEFILES 
syn keyword upstreamdat_Parameter RECALLOFFLINEFILES 
syn keyword upstreamdat_Parameter RECORDSIZE 
syn keyword upstreamdat_Parameter REMOTEADDR 
syn keyword upstreamdat_Parameter REMOTEAPPLPREF 
syn keyword upstreamdat_Parameter REMOTEAPPLRETRY 
syn keyword upstreamdat_Parameter REMOTECONNECTTYPE 
syn keyword upstreamdat_Parameter REMOTEFLAGS 
syn keyword upstreamdat_Parameter REMOTEIPADAPTER 
syn keyword upstreamdat_Parameter REMOTELOCALPARAMETERS 
syn keyword upstreamdat_Parameter REMOTELOGMODE 
syn keyword upstreamdat_Parameter REMOTELUNAME 
syn keyword upstreamdat_Parameter REMOTEMAXRETRIES 
syn keyword upstreamdat_Parameter REMOTEMODENAME 
syn keyword upstreamdat_Parameter REMOTEPARAMETERFILE 
syn keyword upstreamdat_Parameter REMOTEPORT 
syn keyword upstreamdat_Parameter REMOTEREQUEST 
syn keyword upstreamdat_Parameter REMOTERESTART 
syn keyword upstreamdat_Parameter REMOTEROUTE 
syn keyword upstreamdat_Parameter REMOTETARGETNAME 
syn keyword upstreamdat_Parameter REMOTETCP 
syn keyword upstreamdat_Parameter REMOTETIMEOUT 
syn keyword upstreamdat_Parameter REMOTETMAXRETRY 
syn keyword upstreamdat_Parameter REMOTETPN 
syn keyword upstreamdat_Parameter REMOTEUSAPPL 
syn keyword upstreamdat_Parameter REMOTEVERIFY 
syn keyword upstreamdat_Parameter REMOTEWTOCOMP 
syn keyword upstreamdat_Parameter REPORTNAME 
syn keyword upstreamdat_Parameter REPORTOPTIONS 
syn keyword upstreamdat_Parameter RESTARTLASTFILE 
syn keyword upstreamdat_Parameter RESTART 
syn keyword upstreamdat_Parameter RESTARTTYPE 
syn keyword upstreamdat_Parameter RESTARTVERSIONDATE 
syn keyword upstreamdat_Parameter RESTOREARCHIVEBIT 
syn keyword upstreamdat_Parameter RESTORECHECKPOINT 
syn keyword upstreamdat_Parameter RESTOREDATELIMIT 
syn keyword upstreamdat_Parameter RESTOREDATELIMIT 
syn keyword upstreamdat_Parameter RESTOREFILEFAIL 
syn keyword upstreamdat_Parameter RESTOREMOUNTPOINTS 
syn keyword upstreamdat_Parameter RESTOREMOUNTPOINTS 
syn keyword upstreamdat_Parameter RESTORESEGMENTS 
syn keyword upstreamdat_Parameter RESTORESEGMENTS 
syn keyword upstreamdat_Parameter RESTORETODIFFFS 
syn keyword upstreamdat_Parameter RETAIN 
syn keyword upstreamdat_Parameter RETAIN 
syn keyword upstreamdat_Parameter ROOTENTRY 
syn keyword upstreamdat_Parameter ROOTENTRY 
syn keyword upstreamdat_Parameter SAN 
syn keyword upstreamdat_Parameter SCHEDULENAME 
syn keyword upstreamdat_Parameter SEGMENTEDFILESIZE 
syn keyword upstreamdat_Parameter SEGMENTEDFILESIZE 
syn keyword upstreamdat_Parameter SEGMENTSIZE 
syn keyword upstreamdat_Parameter SEGMENTSIZE 
syn keyword upstreamdat_Parameter SENDHOSTDETAILS 
syn keyword upstreamdat_Parameter SINGLEFS 
syn keyword upstreamdat_Parameter SIZETRC 
syn keyword upstreamdat_Parameter SKIP 
syn keyword upstreamdat_Parameter SKIPBACKUPSCAN 
syn keyword upstreamdat_Parameter SKIPOLD 
syn keyword upstreamdat_Parameter SKIPOLD 
syn keyword upstreamdat_Parameter SMSTARGETSERVICENAME 
syn keyword upstreamdat_Parameter SMSTSA 
syn keyword upstreamdat_Parameter SOLO 
syn keyword upstreamdat_Parameter SORTBACKUP 
syn keyword upstreamdat_Parameter SOSDISK 
syn keyword upstreamdat_Parameter SOSDISK 
syn keyword upstreamdat_Parameter SOSTIMESTAMP 
syn keyword upstreamdat_Parameter SOSTIMESTAMP 
syn keyword upstreamdat_Parameter SOSTIMESTAMPPATH 
syn keyword upstreamdat_Parameter SOSTIMESTAMPPATH 
syn keyword upstreamdat_Parameter SPECNUMBER 
syn keyword upstreamdat_Parameter SPECNUMBER 
syn keyword upstreamdat_Parameter SPECTYPE 
syn keyword upstreamdat_Parameter SPECTYPE 
syn keyword upstreamdat_Parameter STARTTIME 
syn keyword upstreamdat_Parameter STORAGETYPE 
syn keyword upstreamdat_Parameter SUBDIRECTORIES 
syn keyword upstreamdat_Parameter SUBDIRECTORIES 
syn keyword upstreamdat_Parameter SWITCHTOTAPEMB 
syn keyword upstreamdat_Parameter TCPADDRESS 
syn keyword upstreamdat_Parameter TCPTIMEOUT 
syn keyword upstreamdat_Parameter TIMEOVERRIDE 
syn keyword upstreamdat_Parameter TRACE 
syn keyword upstreamdat_Parameter TRANSLATE 
syn keyword upstreamdat_Parameter ULTRACOMP 
syn keyword upstreamdat_Parameter ULTREG 
syn keyword upstreamdat_Parameter ULTUPD 
syn keyword upstreamdat_Parameter UNCMACHINEALIAS 
syn keyword upstreamdat_Parameter UNCMACHINEALIAS 
syn keyword upstreamdat_Parameter USEALEBRA 
syn keyword upstreamdat_Parameter USECONTROLFILE 
syn keyword upstreamdat_Parameter USEGID 
syn keyword upstreamdat_Parameter USERID 
syn keyword upstreamdat_Parameter USEUID 
syn keyword upstreamdat_Parameter USNOUIDGIDERRORS 
syn keyword upstreamdat_Parameter UTF8 
syn keyword upstreamdat_Parameter VAULTNUMBER 
syn keyword upstreamdat_Parameter VERSIONDATE 
syn keyword upstreamdat_Parameter WRITESPARSE 
syn keyword upstreamdat_Parameter XFERECORDSIZE 
syn keyword upstreamdat_Parameter XFERRECSEP 
syn keyword upstreamdat_Parameter XFERRECUSECR 

" File Specs:
syn match upstreamdat_Filespec /file spec\c \d\{1,3}.*/

" Comments:
syn match upstreamdat_Comment /^#.*/

" List Of Parameters:
syn region upstreamdat_Parms start="Current Parameters:" end="End Of Parameters" transparent fold

hi def link upstreamdat_Parameter Type
"hi def link upstreamdat_Filespec Underlined
hi def link upstreamdat_Comment Comment

let b:current_syntax = "upstreamdat"
PK�j�Zq�����vim80/syntax/ist.vimnu�[���" Vim syntax file
" Language:	Makeindex style file, *.ist
" Maintainer:	Peter Meszaros <pmeszaros@effice.hu>
" Last Change:	2012 Jan 08 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword=$,@,48-57,_

syn case ignore
syn keyword IstInpSpec  actual  arg_close arg_open encap       escape
syn keyword IstInpSpec  keyword level     quote    range_close range_open
syn keyword IstInpSpec  page_compositor

syn keyword IstOutSpec	preamble	 postamble	  setpage_prefix   setpage_suffix   group_skip
syn keyword IstOutSpec	headings_flag	 heading_prefix   heading_suffix
syn keyword IstOutSpec	lethead_flag	 lethead_prefix   lethead_suffix
syn keyword IstOutSpec	symhead_positive symhead_negative numhead_positive numhead_negative
syn keyword IstOutSpec	item_0		 item_1		  item_2	   item_01
syn keyword IstOutSpec	item_x1		 item_12	  item_x2
syn keyword IstOutSpec	delim_0		 delim_1	  delim_2
syn keyword IstOutSpec	delim_n		 delim_r	  delim_t
syn keyword IstOutSpec	encap_prefix	 encap_infix	  encap_suffix
syn keyword IstOutSpec	line_max	 indent_space	  indent_length
syn keyword IstOutSpec	suffix_2p	 suffix_3p	  suffix_mp

syn region  IstString	   matchgroup=IstDoubleQuote start=+"+ skip=+\\"+ end=+"+ contains=IstSpecial
syn match   IstCharacter   "'.'"
syn match   IstNumber	   "\d\+"
syn match   IstComment	   "^[\t ]*%.*$"	 contains=IstTodo
syn match   IstSpecial	   "\\\\\|{\|}\|#\|\\n"  contained
syn match   IstTodo	   "DEBUG\|TODO"	 contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link IstInpSpec	Type
hi def link IstOutSpec	Identifier
hi def link IstString	String
hi def link IstNumber	Number
hi def link IstComment	Comment
hi def link IstTodo	Todo
hi def link IstSpecial	Special
hi def link IstDoubleQuote	Label
hi def link IstCharacter	Label


let b:current_syntax = "ist"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 sw=2
PK�j�Z[U���C�Cvim80/syntax/tcl.vimnu�[���" Vim syntax file
" Language:	Tcl/Tk
" Maintainer:	Taylor Venable <taylor@metasyntax.net>
" 		(previously Brett Cannon <brett@python.org>)
" 		(previously Dean Copsey <copsey@cs.ucdavis.edu>)
"		(previously Matt Neumann <mattneu@purpleturtle.com>)
"		(previously Allan Kelly <allan@fruitloaf.co.uk>)
" Original:	Robin Becker <robin@jessikat.demon.co.uk>
" Last Change:	2014-02-12
" Version:	1.14
" URL:		http://bitbucket.org/taylor_venable/metasyntax/src/tip/Config/vim/syntax/tcl.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Basic Tcl commands: http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm
syn keyword tclCommand		after append array bgerror binary cd chan clock close concat
syn keyword tclCommand		dde dict encoding eof error eval exec exit expr fblocked
syn keyword tclCommand		fconfigure fcopy file fileevent flush format gets glob
syn keyword tclCommand		global history http incr info interp join lappend lassign
syn keyword tclCommand		lindex linsert list llength lmap load lrange lrepeat
syn keyword tclCommand		lreplace lreverse lsearch lset lsort memory my namespace
syn keyword tclCommand		next nextto open package pid puts pwd read refchan regexp
syn keyword tclCommand		registry regsub rename scan seek self set socket source
syn keyword tclCommand		split string subst tell time trace unknown unload unset
syn keyword tclCommand		update uplevel upvar variable vwait

" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.6/TclCmd/library.htm
syn keyword tclCommand		auto_execok auto_import auto_load auto_mkindex auto_reset
syn keyword tclCommand		auto_qualify tcl_findLibrary parray tcl_endOfWord
syn keyword tclCommand		tcl_startOfNextWord tcl_startOfPreviousWord
syn keyword tclCommand		tcl_wordBreakAfter tcl_wordBreakBefore

" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.6/TclCmd/tclvars.htm
syn keyword tclVars		auto_path env errorCode errorInfo tcl_library tcl_patchLevel
syn keyword tclVars		tcl_pkgPath tcl_platform tcl_precision tcl_rcFileName
syn keyword tclVars		tcl_traceCompile tcl_traceExec tcl_wordchars
syn keyword tclVars		tcl_nonwordchars tcl_version argc argv argv0 tcl_interactive

" Strings which expr accepts as boolean values, aside from zero / non-zero.
syn keyword tclBoolean		true false on off yes no

syn keyword tclProcCommand	apply coroutine proc return tailcall yield yieldto
syn keyword tclConditional	if then else elseif switch
syn keyword tclConditional	catch try throw finally
syn keyword tclLabel		default
syn keyword tclRepeat		while for foreach break continue

syn keyword tcltkSwitch	contained	insert create polygon fill outline tag

" WIDGETS
" commands associated with widgets
syn keyword tcltkWidgetSwitch contained background highlightbackground insertontime cget
syn keyword tcltkWidgetSwitch contained selectborderwidth borderwidth highlightcolor insertwidth
syn keyword tcltkWidgetSwitch contained selectforeground cursor highlightthickness padx setgrid
syn keyword tcltkWidgetSwitch contained exportselection insertbackground pady takefocus
syn keyword tcltkWidgetSwitch contained font insertborderwidth relief xscrollcommand
syn keyword tcltkWidgetSwitch contained foreground insertofftime selectbackground yscrollcommand
syn keyword tcltkWidgetSwitch contained height spacing1 spacing2 spacing3
syn keyword tcltkWidgetSwitch contained state tabs width wrap
" button
syn keyword tcltkWidgetSwitch contained command default
" canvas
syn keyword tcltkWidgetSwitch contained closeenough confine scrollregion xscrollincrement yscrollincrement orient
" checkbutton, radiobutton
syn keyword tcltkWidgetSwitch contained indicatoron offvalue onvalue selectcolor selectimage state variable
" entry, frame
syn keyword tcltkWidgetSwitch contained show class colormap container visual
" listbox, menu
syn keyword tcltkWidgetSwitch contained selectmode postcommand selectcolor tearoff tearoffcommand title type
" menubutton, message
syn keyword tcltkWidgetSwitch contained direction aspect justify
" scale
syn keyword tcltkWidgetSwitch contained bigincrement digits from length resolution showvalue sliderlength sliderrelief tickinterval to
" scrollbar
syn keyword tcltkWidgetSwitch contained activerelief elementborderwidth
" image
syn keyword tcltkWidgetSwitch contained delete names types create
" variable reference
	" ::optional::namespaces
syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*"
	" ${...} may contain any character except '}'
syn match tclVarRef "${[^}]*}"

" Used to facilitate hack to utilize string background for certain color
" schemes, e.g. inkpot and lettuce.
syn cluster tclVarRefC add=tclVarRef
syn cluster tclSpecialC add=tclSpecial

" The syntactic unquote-splicing replacement for [expand].
syn match tclExpand '\s{\*}'
syn match tclExpand '^{\*}'

" menu, mane add
syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator
syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak
syn keyword tcltkWidgetSwitch contained font foreground hidemargin image indicatoron label menu offvalue onvalue
syn keyword tcltkWidgetSwitch contained selectcolor selectimage state underline value variable
syn keyword tcltkWidgetSwitch contained add clone configure delete entrycget entryconfigure index insert invoke
syn keyword tcltkWidgetSwitch contained post postcascade type unpost yposition activate
"syn keyword tcltkWidgetSwitch contained
"syn match tcltkWidgetSwitch contained
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<button\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scale\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef

syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<canvas\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<checkbutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<entry\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<frame\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<image\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<listbox\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<menubutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<message\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<radiobutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scrollbar\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
" These words are dual purpose.
" match switches
"syn match tcltkWidgetSwitch contained "-text"hs=s+1
syn match tcltkWidgetSwitch contained "-text\(var\)\?"hs=s+1
syn match tcltkWidgetSwitch contained "-menu"hs=s+1
syn match tcltkWidgetSwitch contained "-label"hs=s+1
" match commands - 2 lines for pretty match.
"variable
" Special case - If a number follows a variable region, it must be at the end of
" the pattern, by definition. Therefore, (1) either include a number as the region
" end and exclude tclNumber from the contains list, or (2) make variable
" keepend. As (1) would put variable out of step with everything else, use (2).
syn region tcltkCommand matchgroup=tcltkCommandColor start="^\<variable\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand
syn region tcltkCommand matchgroup=tcltkCommandColor start="\s\<variable\>\|\[\<variable\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand
" menu
syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<menu\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\<menu\>\|\[\<menu\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
" label
syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<label\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\<label\>\|\[\<label\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef
" text
syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<text\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tcltkSwitch,tclNumber,tclVarRef,tclString
syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\<text\>\|\[\<text\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef

" This isn't contained (I don't think) so it's OK to just associate with the Color group.
" TODO: This could be wrong.
syn keyword tcltkWidgetColor	toplevel


syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\<configure\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef keepend
syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\<cget\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef


" NAMESPACE
" commands associated with namespace
syn keyword tcltkNamespaceSwitch contained children code current delete eval
syn keyword tcltkNamespaceSwitch contained export forget import inscope origin
syn keyword tcltkNamespaceSwitch contained parent qualifiers tail which command variable
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<namespace\>" matchgroup=NONE skip="^\s*$" end="{\|}\|]\|\"\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkNamespaceSwitch

" EXPR
" commands associated with expr
syn keyword tcltkMaths contained	abs acos asin atan atan2 bool ceil cos cosh double entier
syn keyword tcltkMaths contained	exp floor fmod hypot int isqrt log log10 max min pow rand
syn keyword tcltkMaths contained	round sin sinh sqrt srand tan tanh wide

syn region tcltkCommand matchgroup=tcltkCommandColor start="\<expr\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf

" format
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<format\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf

" PACK
" commands associated with pack
syn keyword tcltkPackSwitch	contained	forget info propogate slaves
syn keyword tcltkPackConfSwitch	contained	after anchor before expand fill in ipadx ipady padx pady side
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<pack\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkPackSwitch,tcltkPackConf,tcltkPackConfSwitch,tclNumber,tclVarRef,tclString,tcltkCommand keepend

" STRING
" commands associated with string
syn keyword tcltkStringSwitch	contained	compare first index last length match range tolower toupper trim trimleft trimright wordstart wordend
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<string\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkStringSwitch,tclNumber,tclVarRef,tclString,tcltkCommand

" ARRAY
" commands associated with array
syn keyword tcltkArraySwitch	contained	anymore donesearch exists get names nextelement size startsearch set
" match from command name to ] or EOL
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<array\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkArraySwitch,tclNumber,tclVarRef,tclString,tcltkCommand

" LSORT
" switches for lsort
syn keyword tcltkLsortSwitch	contained	ascii dictionary integer real command increasing decreasing index
" match from command name to ] or EOL
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<lsort\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkLsortSwitch,tclNumber,tclVarRef,tclString,tcltkCommand

syn keyword tclTodo contained	TODO

" Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16
" Octal, hexadecimal, unicode codepoints, and the classics.
" Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'.
syn match   tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
syn match   tclSpecial contained '\\[\[\]\{\}\"\$]'

" Command appearing inside another command or inside a string.
syn region tclEmbeddedStatement	start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
" A string needs the skip argument as it may legitimately contain \".
" Match at start of line
syn region  tclString		  start=+^"+ end=+"+ contains=@tclSpecialC skip=+\\\\\|\\"+
"Match all other legal strings.
syn region  tclString		  start=+[^\\]"+ms=s+1  end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement skip=+\\\\\|\\"+

" Line continuation is backslash immediately followed by newline.
syn match tclLineContinue '\\$'

if exists('g:tcl_warn_continuation')
    syn match tclNotLineContinue '\\\s\+$'
endif

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match  tclNumber		"\<\d\+\(u\=l\=\|lu\|f\)\>"
"floating point number, with dot, optional exponent
syn match  tclNumber		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, starting with a dot, optional exponent
syn match  tclNumber		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match  tclNumber		"\<\d\+e[-+]\=\d\+[fl]\=\>"
"hex number
syn match  tclNumber		"0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
"syn match  tclIdentifier	"\<[a-z_][a-z0-9_]*\>"
syn case match

syn region  tclComment		start="^\s*\#" skip="\\$" end="$" contains=tclTodo
syn region  tclComment		start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo

"syn match tclComment /^\s*\#.*$/
"syn match tclComment /;\s*\#.*$/hs=s+1

"syn sync ccomment tclComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link tcltkSwitch		Special
hi def link tclExpand		Special
hi def link tclLabel		Label
hi def link tclConditional		Conditional
hi def link tclRepeat		Repeat
hi def link tclNumber		Number
hi def link tclError		Error
hi def link tclCommand		Statement
hi def link tclProcCommand		Type
hi def link tclString		String
hi def link tclComment		Comment
hi def link tclSpecial		Special
hi def link tclTodo		Todo
" Below here are the commands and their options.
hi def link tcltkCommandColor	Statement
hi def link tcltkWidgetColor	Structure
hi def link tclLineContinue	WarningMsg
if exists('g:tcl_warn_continuation')
hi def link tclNotLineContinue	ErrorMsg
endif
hi def link tcltkStringSwitch	Special
hi def link tcltkArraySwitch	Special
hi def link tcltkLsortSwitch	Special
hi def link tcltkPackSwitch	Special
hi def link tcltkPackConfSwitch	Special
hi def link tcltkMaths		Special
hi def link tcltkNamespaceSwitch	Special
hi def link tcltkWidgetSwitch	Special
hi def link tcltkPackConfColor	Identifier
hi def link tclVarRef		Identifier


let b:current_syntax = "tcl"

" vim: ts=8 noet nolist
PK�j�Z/�s..vim80/syntax/slpconf.vimnu�[���" Vim syntax file
" Language:             RFC 2614 - An API for Service Location configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword slpconfTodo         contained TODO FIXME XXX NOTE

syn region  slpconfComment      display oneline start='^[#;]' end='$'
                                \ contains=slpconfTodo,@Spell

syn match   slpconfBegin        display '^'
                                \ nextgroup=slpconfTag,
                                \ slpconfComment skipwhite

syn keyword slpconfTag          contained net
                                \ nextgroup=slpconfNetTagDot

syn match   slpconfNetTagDot    contained display '.'
                                \ nextgroup=slpconfNetTag

syn keyword slpconfNetTag       contained slp
                                \ nextgroup=slpconfNetSlpTagdot

syn match   slpconfNetSlpTagDot contained display '.'
                                \ nextgroup=slpconfNetSlpTag

syn keyword slpconfNetSlpTag    contained isDA traceDATraffic traceMsg
                                \ traceDrop traceReg isBroadcastOnly
                                \ passiveDADetection securityEnabled
                                \ nextgroup=slpconfBooleanEq,slpconfBooleanHome
                                \ skipwhite

syn match   slpconfBooleanHome  contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfBooleanEq skipwhite

syn match   slpconfBooleanEq    contained display '='
                                \ nextgroup=slpconfBoolean skipwhite

syn keyword slpconfBoolean      contained true false TRUE FALSE

syn keyword slpconfNetSlpTag    contained DAHeartBeat multicastTTL
                                \ DAActiveDiscoveryInterval
                                \ multicastMaximumWait multicastTimeouts
                                \ randomWaitBound MTU maxResults
                                \ nextgroup=slpconfIntegerEq,slpconfIntegerHome
                                \ skipwhite

syn match   slpconfIntegerHome  contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfIntegerEq skipwhite

syn match   slpconfIntegerEq    contained display '='
                                \ nextgroup=slpconfInteger skipwhite

syn match   slpconfInteger      contained display '\<\d\+\>'

syn keyword slpconfNetSlpTag    contained DAAttributes SAAttributes
                                \ nextgroup=slpconfAttrEq,slpconfAttrHome
                                \ skipwhite

syn match   slpconfAttrHome     contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfAttrEq skipwhite

syn match   slpconfAttrEq       contained display '='
                                \ nextgroup=slpconfAttrBegin skipwhite

syn match   slpconfAttrBegin    contained display '('
                                \ nextgroup=slpconfAttrTag skipwhite

syn match   slpconfAttrTag      contained display
                                \ '[^* \t_(),\\!<=>~[:cntrl:]]\+'
                                \ nextgroup=slpconfAttrTagEq skipwhite

syn match   slpconfAttrTagEq    contained display '='
                                \ nextgroup=@slpconfAttrValue skipwhite

syn cluster slpconfAttrValueCon contains=slpconfAttrValueSep,slpconfAttrEnd

syn cluster slpconfAttrValue    contains=slpconfAttrIValue,slpconfAttrSValue,
                                \ slpconfAttrBValue,slpconfAttrSSValue

syn match   slpconfAttrSValue   contained display '[^ (),\\!<=>~[:cntrl:]]\+'
                                \ nextgroup=@slpconfAttrValueCon skipwhite

syn match   slpconfAttrSSValue  contained display '\\FF\%(\\\x\x\)\+'
                                \ nextgroup=@slpconfAttrValueCon skipwhite

syn match   slpconfAttrIValue   contained display '[-]\=\d\+\>'
                                \ nextgroup=@slpconfAttrValueCon skipwhite

syn keyword slpconfAttrBValue   contained true false
                                \ nextgroup=@slpconfAttrValueCon skipwhite

syn match   slpconfAttrValueSep contained display ','
                                \ nextgroup=@slpconfAttrValue skipwhite

syn match   slpconfAttrEnd      contained display ')'
                                \ nextgroup=slpconfAttrSep skipwhite

syn match   slpconfAttrSep      contained display ','
                                \ nextgroup=slpconfAttrBegin skipwhite

syn keyword slpconfNetSlpTag    contained useScopes typeHint
                                \ nextgroup=slpconfStringsEq,slpconfStringsHome
                                \ skipwhite

syn match   slpconfStringsHome  contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfStringsEq skipwhite

syn match   slpconfStringsEq    contained display '='
                                \ nextgroup=slpconfStrings skipwhite

syn match   slpconfStrings      contained display
                                \ '\%([[:digit:][:alpha:]]\|[!-+./:-@[-`{-~-]\|\\\x\x\)\+'
                                \ nextgroup=slpconfStringsSep skipwhite

syn match   slpconfStringsSep   contained display ','
                                \ nextgroup=slpconfStrings skipwhite

syn keyword slpconfNetSlpTag    contained DAAddresses
                                \ nextgroup=slpconfAddressesEq,slpconfAddrsHome
                                \ skipwhite

syn match   slpconfAddrsHome    contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfAddressesEq skipwhite

syn match   slpconfAddressesEq  contained display '='
                                \ nextgroup=@slpconfAddresses skipwhite

syn cluster slpconfAddresses    contains=slpconfFQDNs,slpconfHostnumbers

syn match   slpconfFQDNs        contained display
                                \ '\a[[:alnum:]-]*[[:alnum:]]\|\a'
                                \ nextgroup=slpconfAddressesSep skipwhite

syn match   slpconfHostnumbers  contained display
                                \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfAddressesSep skipwhite

syn match   slpconfAddressesSep contained display ','
                                \ nextgroup=@slpconfAddresses skipwhite

syn keyword slpconfNetSlpTag    contained serializedRegURL
                                \ nextgroup=slpconfStringEq,slpconfStringHome
                                \ skipwhite

syn match   slpconfStringHome   contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfStringEq skipwhite

syn match   slpconfStringEq     contained display '='
                                \ nextgroup=slpconfString skipwhite

syn match   slpconfString       contained display
                                \ '\%([!-+./:-@[-`{-~-]\|\\\x\x\)\+\|[[:digit:][:alpha:]]'

syn keyword slpconfNetSlpTag    contained multicastTimeouts DADiscoveryTimeouts
                                \ datagramTimeouts
                                \ nextgroup=slpconfIntegersEq,
                                \ slpconfIntegersHome skipwhite

syn match   slpconfIntegersHome contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfIntegersEq skipwhite

syn match   slpconfIntegersEq   contained display '='
                                \ nextgroup=slpconfIntegers skipwhite

syn match   slpconfIntegers     contained display '\<\d\+\>'
                                \ nextgroup=slpconfIntegersSep skipwhite

syn match   slpconfIntegersSep  contained display ','
                                \ nextgroup=slpconfIntegers skipwhite

syn keyword slpconfNetSlpTag    contained interfaces
                                \ nextgroup=slpconfHostnumsEq,
                                \ slpconfHostnumsHome skipwhite

syn match   slpconfHostnumsHome contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfHostnumsEq skipwhite

syn match   slpconfHostnumsEq   contained display '='
                                \ nextgroup=slpconfOHostnumbers skipwhite

syn match   slpconfOHostnumbers contained display
                                \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfHostnumsSep skipwhite

syn match   slpconfHostnumsSep  contained display ','
                                \ nextgroup=slpconfOHostnumbers skipwhite

syn keyword slpconfNetSlpTag    contained locale
                                \ nextgroup=slpconfLocaleEq,slpconfLocaleHome
                                \ skipwhite

syn match   slpconfLocaleHome   contained display
                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
                                \ nextgroup=slpconfLocaleEq skipwhite

syn match   slpconfLocaleEq     contained display '='
                                \ nextgroup=slpconfLocale skipwhite

syn match   slpconfLocale       contained display '\a\{1,8}\%(-\a\{1,8}\)\='

hi def link slpconfTodo         Todo
hi def link slpconfComment      Comment
hi def link slpconfTag          Identifier
hi def link slpconfDelimiter    Delimiter
hi def link slpconfNetTagDot    slpconfDelimiter
hi def link slpconfNetTag       slpconfTag
hi def link slpconfNetSlpTagDot slpconfNetTagDot
hi def link slpconfNetSlpTag    slpconfTag
hi def link slpconfHome         Special
hi def link slpconfBooleanHome  slpconfHome
hi def link slpconfEq           Operator
hi def link slpconfBooleanEq    slpconfEq
hi def link slpconfBoolean      Boolean
hi def link slpconfIntegerHome  slpconfHome
hi def link slpconfIntegerEq    slpconfEq
hi def link slpconfInteger      Number
hi def link slpconfAttrHome     slpconfHome
hi def link slpconfAttrEq       slpconfEq
hi def link slpconfAttrBegin    slpconfDelimiter
hi def link slpconfAttrTag      slpconfTag
hi def link slpconfAttrTagEq    slpconfEq
hi def link slpconfAttrIValue   slpconfInteger
hi def link slpconfAttrSValue   slpconfString
hi def link slpconfAttrBValue   slpconfBoolean
hi def link slpconfAttrSSValue  slpconfString
hi def link slpconfSeparator    slpconfDelimiter
hi def link slpconfAttrValueSep slpconfSeparator
hi def link slpconfAttrEnd      slpconfAttrBegin
hi def link slpconfAttrSep      slpconfSeparator
hi def link slpconfStringsHome  slpconfHome
hi def link slpconfStringsEq    slpconfEq
hi def link slpconfStrings      slpconfString
hi def link slpconfStringsSep   slpconfSeparator
hi def link slpconfAddrsHome    slpconfHome
hi def link slpconfAddressesEq  slpconfEq
hi def link slpconfFQDNs        String
hi def link slpconfHostnumbers  Number
hi def link slpconfAddressesSep slpconfSeparator
hi def link slpconfStringHome   slpconfHome
hi def link slpconfStringEq     slpconfEq
hi def link slpconfString       String
hi def link slpconfIntegersHome slpconfHome
hi def link slpconfIntegersEq   slpconfEq
hi def link slpconfIntegers     slpconfInteger
hi def link slpconfIntegersSep  slpconfSeparator
hi def link slpconfHostnumsHome slpconfHome
hi def link slpconfHostnumsEq   slpconfEq
hi def link slpconfOHostnumbers slpconfHostnumbers
hi def link slpconfHostnumsSep  slpconfSeparator
hi def link slpconfLocaleHome   slpconfHome
hi def link slpconfLocaleEq     slpconfEq
hi def link slpconfLocale       slpconfString

let b:current_syntax = "slpconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z����vim80/syntax/less.vimnu�[���" Vim syntax file
" Language:	less
" Maintainer:	Alessandro Vioni <jenoma@gmail.com>
" URL: https://github.com/genoma/vim-less
" Last Change:	2014 November 24

if exists("b:current_syntax")
  finish
endif

runtime! syntax/css.vim
runtime! after/syntax/css.vim

syn case ignore

syn cluster lessCssProperties contains=cssFontProp,cssFontDescriptorProp,cssColorProp,cssTextProp,cssBoxProp,cssGeneratedContentProp,cssPagingProp,cssUIProp,cssRenderProp,cssAuralProp,cssTableProp
syn cluster lessCssAttributes contains=css.*Attr,lessEndOfLineComment,lessComment,cssValue.*,cssColor,cssURL,lessDefault,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp

syn region lessDefinition matchgroup=cssBraces start="{" end="}" contains=TOP

syn match lessProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:" contains=css.*Prop skipwhite nextgroup=lessCssAttribute contained containedin=lessDefinition
syn match lessProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=lessCssAttribute
syn match lessProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=lessCssAttribute
syn match lessCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@lessCssAttributes,lessVariable,lessFunction,lessInterpolation
syn match lessDefault "!default\>" contained

" less variables and media queries
syn match lessVariable "@[[:alnum:]_-]\+" nextgroup=lessCssAttribute skipwhite
syn match lessMedia "@media" nextgroup=lessCssAttribute skipwhite

" Less functions
syn match lessFunction "\<\%(escape\|e\|unit\)\>(\@=" contained
syn match lessFunction "\<\%(ceil\|floor\|percentage\|round\|sqrt\|abs\|sin\|asin\|cos\|acos\|tan\|atan\|pi\|pow\|min\|max\)\>(\@=" contained
syn match lessFunction "\<\%(rgb\|rgba\|argb\|argb\|hsl\|hsla\|hsv\|hsva\)\>(\@=" contained
syn match lessFunction "\<\%(hue\|saturation\|lightness\|red\|green\|blue\|alpha\|luma\)\>(\@=" contained
syn match lessFunction "\<\%(saturate\|desaturate\|lighten\|darken\|fadein\|fadeout\|fade\|spin\|mix\|greyscale\|contrast\)\>(\@=" contained
syn match lessFunction "\<\%(multiply\|screen\|overlay\|softlight\|hardlight\|difference\|exclusion\|average\|negation\)\>(\@=" contained

" Less id class visualization
syn match lessIdChar     "#[[:alnum:]_-]\@=" nextgroup=lessId,lessClassIdCall
syn match lessId         "[[:alnum:]_-]\+" contained
syn match lessClassIdCall  "[[:alnum:]_-]\+()" contained

syn match lessClassChar  "\.[[:alnum:]_-]\@=" nextgroup=lessClass,lessClassCall
syn match lessClass      "[[:alnum:]_-]\+" contained
syn match lessClassCall  "[[:alnum:]_-]\+()" contained

syn match lessAmpersand  "&" contains=lessIdChar,lessClassChar

syn region lessInclude start="@import" end=";\|$" contains=lessComment,cssURL,cssUnicodeEscape,cssMediaType,cssStringQ,cssStringQQ

syn keyword lessTodo        FIXME NOTE TODO OPTIMIZE XXX contained
syn region  lessComment     start="^\z(\s*\)//"  end="^\%(\z1 \)\@!" contains=lessTodo,@Spell
syn region  lessCssComment  start="^\z(\s*\)/\*" end="^\%(\z1 \)\@!" contains=lessTodo,@Spell
syn match   lessEndOfLineComment "//.*" contains=lessComment,lessTodo,@Spell

hi def link lessEndOfLineComment        lessComment
hi def link lessCssComment              lessComment
hi def link lessComment                 Comment
hi def link lessDefault                 cssImportant
hi def link lessVariable                Identifier
hi def link lessFunction                PreProc
hi def link lessTodo                    Todo
hi def link lessInclude                 Include
hi def link lessIdChar                  Special
hi def link lessClassChar               Special
hi def link lessAmpersand               Character
hi def link lessId                      Identifier
hi def link lessClass                   Type
hi def link lessCssAttribute            PreProc
hi def link lessClassCall               Type
hi def link lessClassIdCall             Type
hi def link lessTagName                 cssTagName
hi def link lessDeprecated              cssDeprecated
hi def link lessMedia                   cssMedia

let b:current_syntax = "less"

" vim:set sw=2:
PK�j�Z��O	O	vim80/syntax/prescribe.vimnu�[���" Vim syntax file
" Language:	Kyocera PreScribe2e
" Maintainer:	Klaus Muth <klaus@hampft.de>
" URL:          http://www.hampft.de/vim/syntax/prescribe.vim
" Last Change:	2005 Mar 04

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match   prescribeSpecial	"!R!"

" all prescribe commands
syn keyword prescribeStatement	ALTF AMCR ARC ASFN ASTK BARC BLK BOX CALL 
syn keyword prescribeStatement	CASS CIR CLIP CLPR CLSP COPY CPTH CSET CSTK
syn keyword prescribeStatement	CTXT DAF DAM DAP DELF DELM DPAT DRP DRPA DUPX
syn keyword prescribeStatement	DXPG DXSD DZP ENDD ENDM ENDR EPL EPRM EXIT
syn keyword prescribeStatement	FDIR FILL FLAT FLST FONT FPAT FRPO FSET FTMD
syn keyword prescribeStatement	GPAT ICCD INTL JOG LDFC MAP MCRO MDAT MID
syn keyword prescribeStatement	MLST MRP MRPA MSTK MTYP MZP NEWP PAGE PARC PAT
syn keyword prescribeStatement	PCRP PCZP PDIR RDRP PDZP PELP PIE PMRA PMRP PMZP
syn keyword prescribeStatement	PRBX PRRC PSRC PXPL RDMP RES RSL RGST RPCS RPF
syn keyword prescribeStatement	RPG RPP RPU RTTX RTXT RVCD RVRD SBM SCAP SCCS
syn keyword prescribeStatement	SCF SCG SCP SCPI SCRC SCS SCU SDP SEM SETF SFA
syn keyword prescribeStatement	SFNT SIMG SIR SLJN SLM SLPI SLPP SLS  SMLT SPD
syn keyword prescribeStatement	SPL SPLT SPO SPSZ SPW SRM SRO SROP SSTK STAT STRK
syn keyword prescribeStatement	SULP SVCP TATR TEXT TPRS UNIT UOM WIDE WRED XPAT
syn match   prescribeStatement	"\<ALTB\s\+[ACDEGRST]\>"
syn match   prescribeStatement	"\<CPPY\s\+[DE]\>"
syn match   prescribeStatement	"\<EMCR\s\+[DE]\>"
syn match   prescribeStatement	"\<FRPO\s\+INIT\>"
syn match   prescribeStatement	"\<JOB[DLOPST]\>"
syn match   prescribeStatement	"\<LDFC\s\+[CFS]\>"
syn match   prescribeStatement	"\<RWER\s\+[DFILRSTW]\>"

syn match   prescribeCSETArg	"[0-9]\{1,3}[A-Z]"
syn match   prescribeFRPOArg	"[A-Z][0-9]\{1,2}"
syn match   prescribeNumber	"[0-9]\+"
syn region  prescribeString	start=+'+ end=+'+ skip=+\\'+
syn region  prescribeComment	start=+CMNT+ end=+;+

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link prescribeSpecial		PreProc
hi def link prescribeStatement		Statement
hi def link prescribeNumber		Number
hi def link prescribeCSETArg		String
hi def link prescribeFRPOArg		String
hi def link prescribeComment		Comment


let b:current_syntax = "prescribe"

" vim: ts=8
PK�j�ZY���..vim80/syntax/dictconf.vimnu�[���" Vim syntax file
" Language:             dict(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword dictconfTodo        contained TODO FIXME XXX NOTE

syn region  dictconfComment     display oneline start='#' end='$'
                                \ contains=dictconfTodo,@Spell

syn match   dictconfBegin       display '^'
                                \ nextgroup=dictconfKeyword,dictconfComment
                                \ skipwhite

syn keyword dictconfKeyword     contained server
                                \ nextgroup=dictconfServer skipwhite

syn keyword dictconfKeyword     contained pager
                                \ nextgroup=dictconfPager

syn match   dictconfServer      contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
                                \ nextgroup=dictconfServerOptG skipwhite

syn region  dictconfServer      contained display oneline
                                \ start=+"+ skip=+""+ end=+"+
                                \ nextgroup=dictconfServerOptG skipwhite

syn region  dictconfServerOptG  contained transparent
                                \ matchgroup=dictconfServerOptsD start='{'
                                \ matchgroup=dictconfServerOptsD end='}'
                                \ contains=dictconfServerOpts,dictconfComment

syn keyword dictconfServerOpts  contained port
                                \ nextgroup=dictconfNumber skipwhite

syn keyword dictconfServerOpts  contained user
                                \ nextgroup=dictconfUsername skipwhite

syn match   dictconfUsername    contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
                                \ nextgroup=dictconfSecret skipwhite
syn region  dictconfUsername    contained display oneline
                                \ start=+"+ skip=+""+ end=+"+
                                \ nextgroup=dictconfSecret skipwhite

syn match   dictconfSecret      contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
syn region  dictconfSecret      contained display oneline
                                \ start=+"+ skip=+""+ end=+"+

syn match   dictconfNumber      contained '\<\d\+\>'

syn match   dictconfPager       contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
syn region  dictconfPager       contained display oneline
                                \ start=+"+ skip=+""+ end=+"+

hi def link dictconfTodo        Todo
hi def link dictconfComment     Comment
hi def link dictconfKeyword     Keyword
hi def link dictconfServer      String
hi def link dictconfServerOptsD Delimiter
hi def link dictconfServerOpts  Identifier
hi def link dictconfUsername    String
hi def link dictconfSecret      Special
hi def link dictconfNumber      Number
hi def link dictconfPager       String

let b:current_syntax = "dictconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZD@8{{vim80/syntax/baan.vimnu�[���" Vim syntax file"
" Language:	Baan
" Maintainer:	Erik Remmelzwaal (erik.remmelzwaal 0x40 ssaglobal.com)
" Originally owned by: Erwin Smit / Her van de Vliert
" Last change:  v1.17 2006/04/26 10:40:18

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

"********************************** Lexical setting ***************************"
syn case ignore
setlocal iskeyword+=.
"setlocal ignorecase 	"This is not a local yet ;-(
" Identifier
syn match   baanIdentifier "\<\k\+\>"

"************************************* 3GL ************************************"
syn match   baan3glpre "#ident\>"
syn match   baan3glpre "#include\>"
syn region  baan3glpre start="#define\>" end="^[^^|]"me=s-1 contains=baanString,baanConstant,baanNumber,baanComment,baansql
syn match   baan3glpre "#undef\>"
syn match   baan3glpre "#pragma\>"
syn match   baan3glpre "#if\>"
syn match   baan3glpre "#ifdef\>"
syn match   baan3glpre "#ifndef\>"
syn match   baan3glpre "#elif\>"
syn match   baan3glpre "#else\>"
syn match   baan3glpre "#endif\>"

" Some keywords are only defined when no foldinat based break bset call continue default
syn keyword baan3gl empty  fixed ge global goto gt le lt mb
syn keyword baan3gl multibyte ne ofr prompt repeat static step stop
syn keyword baan3gl until void wherebind ref reference break continue
syn keyword baan3gl and or to not in
syn keyword baan3gl eq input end return at print
syn keyword baanType domain double long string table boolean common
syn keyword baanType bset void xmlNode
syn keyword baanStorageClass dim base based extern global fixed MB const
syn keyword baanConstant pi true false

" Folding settings
if exists("baan_fold") && baan_fold
  syn region baanFunctionFold matchgroup=baan3gl start="^\z(\s*\)\<function\>" matchgroup=NONE end="^\z1}" transparent fold keepend
else
  syn keyword baan3gl function
endif
if exists("baan_fold") && baan_fold && exists("baan_fold_block") && baan_fold_block
  syn region  baanCondFold matchgroup=baanConditional start="^\z(\s*\)\(if\>\|else\>\)" end="^\z1endif\>" end="^\z1else\>"me=s-1 transparent fold keepend extend
  syn region  baanCondFold matchgroup=baanConditional start="^\z(\s*\)for\>"            end="^\z1endfor\>" transparent fold keepend extend
  syn region  baanCondFold matchgroup=baanConditional start="^\z(\s*\)while\>"          end="^\z1endwhile\>" transparent fold keepend extend
  syn region  baanDLLUsage matchgroup=baan3gl         start="^\z(\s*\)dllusage\>"       end="^\z1enddllusage\>" fold contains=baanNumber,baanConstant,baanType
  syn region  baanFunUsage matchgroup=baan3gl         start="^\z(\s*\)functionusage\>"  end="^\z1endfunctionusage\>" fold  contains=baanNumber,baanConstant,baanType
  syn region  baanCondFold matchgroup=baanConditional start="^\z(\s*\)\(case\>\|default\>\)\>" end="^\z1endcase\>" end="^\z1\(case\>\|default\>\)"me=s-1 transparent fold keepend extend
  syn keyword baanConditional then else endif while endwhile endfor case endcase 
  syn match   baanConditional "\<on case\>"
else
  syn match   baanConditional "\<for\>" contains=baansql
  syn match   baanConditional "\<on case\>"
  syn keyword baanConditional if then else endif while endwhile endfor case endcase default
  syn region  baanDLLUsage matchgroup=baan3gl start="\<dllusage\>" end="\<enddllusage\>" contains=baanNumber,baanConstant,baanType
  syn region  baanFunUsage matchgroup=baan3gl start="\<functionusage\>" end="\<endfunctionusage\>" contains=baanNumber,baanConstant,baanType
endif

"************************************* SQL ************************************"
syn keyword baansql from selectbind 
syn keyword baansql where wherebind whereused exsists  
syn keyword baansql between inrange having
syn keyword baansql hint ordered asc desc
syn match   baansql "\<as set with \d\+ rows\>"
syn match   baansql "\<as prepared set\>"
syn match   baansql "\<as prepared set with \d\+ rows\>"
syn match   baansql "\<with retry\>"
syn match   baansql "\<with retry repeat last row\>"
syn match   baansql "\<for update\>"
syn match   baansql "\<order by\>"
syn match   baansql "\<group by\>"
syn match   baansql "\<union all\>"
" references
syn keyword path reference 
syn match   baansql "\<refers to\>"
syn match   baansql "\<unref clear\>"
syn match   baansql "\<unref setunref\>"
syn match   baansql "\<unref clearunref\>"
syn match   baansql "\<unref skip\>"
" hints
syn keyword baansql hint and ordered asc desc
syn match   baansql "\<use index \d\+ on\>"
syn match   baansql "\<array fetching\>"
syn match   baansql "\<no array fetching\>"
syn match   baansql "\<array size \d\+\>"
syn match   baansql "\<all rows\>"
syn match   baansql "\<first rows\>"
syn match   baansql "\<buffer \d\+ rows\>"
syn match   baansql "\<no hints\>"
" update
syn keyword baansql set

if exists("baan_fold") && baan_fold && exists("baan_fold_sql") && baan_fold_sql
  syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(select\>\|selectdo\>\|selectempty\>\|selecterror\>\|selecteos\>\)" end="^\z1endselect\>" end="^\z1\(selectdo\>\|selectempty\>\|selecterror\>\|selecteos\>\)"me=s-1 transparent fold keepend extend
  "syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(update\>\|updateempty\>\|updateerror\>\|selecteos\>\)"             end="^\z1endupdate\>" end="^\z1\(updateempty\>\|updateerror\>\|selecteos\>\)"me=s-1 transparent fold keepend extend
  syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(update\>\|updateempty\>\|updateerror\>\)"             end="^\z1endupdate\>" end="^\z1\(updateempty\>\|updateerror\>\)"me=s-1 transparent fold keepend extend
  syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(delete\s\+from\>\|deleteempty\>\|deleteerror\>\)"                  end="^\z1enddelete\>" end="^\z1\(deleteempty\>\|deleteerror\>\)"me=s-1 transparent fold keepend extend
else
  syn keyword baansql select selectdo selectempty selecterror selecteos endselect
  " delete
  syn match   baansql "\<delete from\>"
  syn keyword baansql deleteempty deleteerror deleteeos enddelete
  " update
  syn keyword baansql update updateempty updateerror updateeos endupdate
endif

setlocal foldmethod=syntax
"syn sync fromstart
syn sync minlines=100


"These are bshell functions
if exists("baan_obsolete")
syn match   baansql "commit\.transaction()"
syn match   baansql "abort\.transaction()"
syn match   baansql "db\.columns\.to\.record"
syn match   baansql "db\.record\.to\.columns"
syn match   baansql "db\.bind"
syn match   baansql "db\.change\.order"
syn match   baansql "db\.set\.to\.default"
syn match   baansql "DB\.RETRY"
syn match   baansql "db\.delayed\.lock"
syn match   baansql "db\.retry\.point()"
syn match   baansql "db\.retry\.hit()"
syn match   baansql "db\.return\.dupl"
syn match   baansql "db\.skip\.dupl"
syn match   baansql "db\.row\.length"
endif

" Constants
syn keyword baanConstant __function__
syn keyword baanConstant __object__ 
syn keyword baanConstant __file__
syn keyword baanConstant __line__

syn keyword baanConstant ABORT.PROGRAM
syn keyword baanConstant ADD.SET
syn keyword baanConstant ALL_ENUMS_EXCEPT
syn keyword baanConstant APPL.EXCL
syn keyword baanConstant APPL.READ
syn keyword baanConstant APPL.WAIT
syn keyword baanConstant APPL.WIDE
syn keyword baanConstant APPL.WRITE
syn keyword baanConstant ASK.HELPINFO
syn keyword baanConstant AUTG_PRINT
syn keyword baanConstant AUTG_DISPLAY
syn keyword baanConstant AUTG_MODIFY
syn keyword baanConstant AUTG_INSERT
syn keyword baanConstant AUTG_DELETE
syn keyword baanConstant AUTG_ALL
syn keyword baanConstant BMS
syn keyword baanConstant CALCULATOR
syn keyword baanConstant CALENDAR
syn keyword baanConstant CHANGE.ORDER
syn keyword baanConstant CMD.OPTIONS
syn keyword baanConstant CMD.WHATS.THIS
syn keyword baanConstant CMF.MESSAGE
syn keyword baanConstant CMF.TASK
syn keyword baanConstant CMF.APPOINTMENT
syn match   baanConstant "\<COMPANY\$"
syn keyword baanConstant COMPNR
syn keyword baanConstant CONT.PROCESS
syn keyword baanConstant CREATE.JOB
syn keyword baanConstant DALNOOBJSET
syn keyword baanConstant DALNOMETHOD
syn keyword baanConstant DALNOOBJSETID
syn keyword baanConstant DALNOOBJECTID
syn keyword baanConstant DALNOPROP
syn keyword baanConstant DALNOLOCMODE
syn keyword baanConstant DALNOGETPOS
syn keyword baanConstant DALNOSETPERM
syn keyword baanConstant DALNOOBJPERM
syn keyword baanConstant DALDBERROR
syn keyword baanConstant DALHOOKERROR
syn keyword baanConstant DALNOQUERYID
syn keyword baanConstant DAL_DESTROY
syn keyword baanConstant DAL_FIND
syn keyword baanConstant DAL_GET_CURR
syn keyword baanConstant DAL_GET_FIRST
syn keyword baanConstant DAL_GET_LAST
syn keyword baanConstant DAL_GET_NEXT
syn keyword baanConstant DAL_GET_PREV
syn keyword baanConstant DAL_GET_SPECIFIED
syn keyword baanConstant DAL_NEW
syn keyword baanConstant DAL_UPDATE
syn keyword baanConstant DB.ARRAY
syn keyword baanConstant DB.BASED
syn keyword baanConstant DB.BITSET
syn keyword baanConstant DB.BYTE
syn keyword baanConstant DB.CHECK.IGNORED.REF
syn keyword baanConstant DB.CHILD
syn keyword baanConstant DB.CLEAR.NO.ROLLBACK
syn keyword baanConstant DB.CLEAR.WITH.ROLLBACK
syn keyword baanConstant DB.COMBINED
syn keyword baanConstant DB.DATE
syn keyword baanConstant DB.DELAYED.LOCK
syn keyword baanConstant DB.DOUBLE
syn keyword baanConstant DB.ENUM
syn keyword baanConstant DB.EXIT.ON.DUPL
syn keyword baanConstant DB.EXIT.ON.NOREC
syn keyword baanConstant DB.EXIT.ON.ROWCHANGED
syn keyword baanConstant DB.FILLED
syn keyword baanConstant DB.FIXED
syn keyword baanConstant DB.FL.LOCK
syn keyword baanConstant DB.FLOAT
syn keyword baanConstant DB.IGNORE.ALL.REFS
syn keyword baanConstant DB.INTEGER
syn keyword baanConstant DB.IS.REF.TO
syn keyword baanConstant DB.LOCK
syn keyword baanConstant DB.LONG
syn keyword baanConstant DB.MAIL
syn keyword baanConstant DB.MULTIBYTE
syn keyword baanConstant DB.NOT.ACTIV
syn keyword baanConstant DB.PAR.IS.REF.TO
syn keyword baanConstant DB.REF.CASCADE
syn keyword baanConstant DB.REF.CHK.RUNTIME
syn keyword baanConstant DB.REF.DELETE
syn keyword baanConstant DB.REF.NOP
syn keyword baanConstant DB.REF.NULLIFY
syn keyword baanConstant DB.REF.RESTRICTED
syn keyword baanConstant DB.REF.UPDATE
syn keyword baanConstant DB.RETRY
syn keyword baanConstant DB.RETURN.DUPL
syn keyword baanConstant DB.RETURN.ERROR
syn keyword baanConstant DB.RETURN.NOREC
syn keyword baanConstant DB.RETURN.REF.EXISTS
syn keyword baanConstant DB.RETURN.REF.NOT.EXISTS
syn keyword baanConstant DB.RETURN.ROWCHANGED
syn keyword baanConstant DB.RPOINT
syn keyword baanConstant DB.SKIP.DUPL
syn keyword baanConstant DB.SKIP.NOREC
syn keyword baanConstant DB.SKIP.ROWCHANGED
syn keyword baanConstant DB.STRING
syn keyword baanConstant DB.TEXT
syn keyword baanConstant DB.TIME
syn keyword baanConstant DBG_BDB_ACTIONS
syn keyword baanConstant DBG_BDB_DELAY_LOCK
syn keyword baanConstant DBG_BDB_REFER
syn keyword baanConstant DBG_BDB_SERVER_TYPE
syn keyword baanConstant DBG_DATA_SIZE
syn keyword baanConstant DBG_DEBUG_MESG
syn keyword baanConstant DBG_DEBUG_TSS
syn keyword baanConstant DBG_FILE
syn keyword baanConstant DBG_FILEDEV
syn keyword baanConstant DBG_FUN_DEBUG
syn keyword baanConstant DBG_GET_PUT_VAR
syn keyword baanConstant DBG_INSTR_DEBUG
syn keyword baanConstant DBG_MUL_ACTION
syn keyword baanConstant DBG_OBJ_SIZE
syn keyword baanConstant DBG_PRINT_ENUMS
syn keyword baanConstant DBG_REF_PATH
syn keyword baanConstant DBG_RESOURCE_DBG
syn keyword baanConstant DBG_SCHED_DEBUG
syn keyword baanConstant DBG_SHOW_FLOW
syn keyword baanConstant DBG_SHOW_TRACE
syn keyword baanConstant DBG_SRDD_USAGE
syn keyword baanConstant DEBUG
syn keyword baanConstant DEF.FIND
syn keyword baanConstant DISPLAY.SET
syn keyword baanConstant DIS.RESTARTED
syn keyword baanConstant DLL_OVERLOAD
syn keyword baanConstant DLL_OVERLOAD_ALL
syn keyword baanConstant DLL_SILENT_ERR
syn keyword baanConstant DSTerminationCreateProcess
syn keyword baanConstant DSTerminationCreateThread
syn keyword baanConstant DSTerminationNormalExit
syn keyword baanConstant DSTerminationOpenStderr
syn keyword baanConstant DSTerminationOpenStdin
syn keyword baanConstant DSTerminationOpenStdout
syn keyword baanConstant DSTerminationSetDir
syn keyword baanConstant DUPL.OCCUR
syn keyword baanConstant E2BIG
syn keyword baanConstant EABORT
syn keyword baanConstant EACCES
syn keyword baanConstant EAGAIN
syn keyword baanConstant EAUDIT
syn keyword baanConstant EBADADRS
syn keyword baanConstant EBADARG
syn keyword baanConstant EBADCOLL
syn keyword baanConstant EBADCURSOR
syn keyword baanConstant EBADF
syn keyword baanConstant EBADFILE
syn keyword baanConstant EBADFLD
syn keyword baanConstant EBADKEY
syn keyword baanConstant EBADLOG
syn keyword baanConstant EBADMEM
syn keyword baanConstant EBDBNOTON
syn keyword baanConstant EBDBON
syn keyword baanConstant EBUSY
syn keyword baanConstant ECHILD
syn keyword baanConstant EDDCORRUPT
syn keyword baanConstant EDOM
syn keyword baanConstant EDUPL
syn keyword baanConstant EENDFILE
syn keyword baanConstant EEXIST
syn keyword baanConstant EFAULT
syn keyword baanConstant EFBIG
syn keyword baanConstant EFLOCKED
syn keyword baanConstant EFNAME
syn keyword baanConstant EINTR
syn keyword baanConstant EINVAL
syn keyword baanConstant EIO
syn keyword baanConstant EISDIR
syn keyword baanConstant EISREADONLY
syn keyword baanConstant EKEXISTS
syn keyword baanConstant ELOCKED
syn keyword baanConstant ELOGOPEN
syn keyword baanConstant ELOGREAD
syn keyword baanConstant ELOGWRIT
syn keyword baanConstant EMEMORY
syn keyword baanConstant EMFILE
syn keyword baanConstant EMLINK
syn keyword baanConstant EMLOCKED
syn keyword baanConstant END.PROGRAM
syn keyword baanConstant ENFILE
syn keyword baanConstant ENOBEGIN
syn keyword baanConstant ENOCURR
syn keyword baanConstant ENODD
syn keyword baanConstant ENODELAYEDLOCK
syn keyword baanConstant ENODEV
syn keyword baanConstant ENOENT
syn keyword baanConstant ENOEXEC
syn keyword baanConstant ENOLOK
syn keyword baanConstant ENOMEM
syn keyword baanConstant ENONFS
syn keyword baanConstant ENOREC
syn keyword baanConstant ENOSERVER
syn keyword baanConstant ENOSHMEM
syn keyword baanConstant ENOSPC
syn keyword baanConstant ENOTABLE
syn keyword baanConstant ENOTBLK
syn keyword baanConstant ENOTDIR
syn keyword baanConstant ENOTEXCL
syn keyword baanConstant ENOTINRANGE
syn keyword baanConstant ENOTLOCKED
syn keyword baanConstant ENOTOPEN
syn keyword baanConstant ENOTRANS
syn keyword baanConstant ENOTTY
syn keyword baanConstant ENXIO
syn keyword baanConstant ENUMMASK.INITIAL
syn keyword baanConstant ENUMMASK.GENERAL
syn keyword baanConstant EPERM
syn keyword baanConstant EPIPE
syn keyword baanConstant EPRIMKEY
syn keyword baanConstant ERANGE
syn keyword baanConstant EREFERENCE
syn keyword baanConstant EREFEXISTS
syn keyword baanConstant EREFLOCKED
syn keyword baanConstant EREFNOTEXISTS
syn keyword baanConstant EREFUNDEFINED
syn keyword baanConstant EREFUPDATE
syn keyword baanConstant EROFS
syn keyword baanConstant EROWCHANGED
syn keyword baanConstant ESPIPE
syn keyword baanConstant ESQLCARDINALITYVIOLATION
syn keyword baanConstant ESQLDIVBYZERO
syn keyword baanConstant ESQLFILEIO
syn keyword baanConstant ESQLINDEXOUTOFDIMS
syn keyword baanConstant ESQLINVALIDPARAMETERTYPE
syn keyword baanConstant ESQLQUERY
syn keyword baanConstant ESQLREFER
syn keyword baanConstant ESQLSTRINGTRUNCATION
syn keyword baanConstant ESQLSUBSTRINGERROR
syn keyword baanConstant ESQLSYNTAX
syn keyword baanConstant ESRCH
syn keyword baanConstant ETABLEEXIST
syn keyword baanConstant ETOOMANY
syn keyword baanConstant ETRANSACTIONON
syn keyword baanConstant ETXTBSY
syn keyword baanConstant EUNALLOWEDCOMPNR
syn keyword baanConstant EVTALLEVENTMASK
syn keyword baanConstant EVTARMBUTTON
syn keyword baanConstant EVTARMBUTTONMASK
syn keyword baanConstant EVTBUCKETMESSAGE
syn keyword baanConstant EVTBUTTON1
syn keyword baanConstant EVTBUTTON1MASK
syn keyword baanConstant EVTBUTTON2
syn keyword baanConstant EVTBUTTON2MASK
syn keyword baanConstant EVTBUTTON3
syn keyword baanConstant EVTBUTTON3MASK
syn keyword baanConstant EVTBUTTON4
syn keyword baanConstant EVTBUTTON4MASK
syn keyword baanConstant EVTBUTTON5
syn keyword baanConstant EVTBUTTON5MASK
syn keyword baanConstant EVTBUTTONCHECKED
syn keyword baanConstant EVTBUTTONDPRESS
syn keyword baanConstant EVTBUTTONDPRESSMASK
syn keyword baanConstant EVTBUTTONMOTION
syn keyword baanConstant EVTBUTTONMOTIONMASK
syn keyword baanConstant EVTBUTTONPRESS
syn keyword baanConstant EVTBUTTONPRESSMASK
syn keyword baanConstant EVTBUTTONRELEASE
syn keyword baanConstant EVTBUTTONRELEASEMASK
syn keyword baanConstant EVTBUTTONSELECT
syn keyword baanConstant EVTBUTTONSELECTMASK
syn keyword baanConstant EVTBUTTONUNCHECKED
syn keyword baanConstant EVTBUTTONUNDEFINED
syn keyword baanConstant EVTCHANGEFOCUS
syn keyword baanConstant EVTCHANGEFOCUSMASK
syn keyword baanConstant EVTCHANNELEVENT
syn keyword baanConstant EVTCHECKBOXMASK
syn keyword baanConstant EVTCHECKBOXSELECT
syn keyword baanConstant EVTCLIENTMESSAGE
syn keyword baanConstant EVTCONNECTREQUEST
syn keyword baanConstant EVTCONTROLMASK
syn keyword baanConstant EVTDEATHCHILD
syn keyword baanConstant EVTDEATHCHILDMASK
syn keyword baanConstant EVTDISARMBUTTON
syn keyword baanConstant EVTDISARMBUTTONMASK
syn keyword baanConstant EVTDLLEVENT
syn keyword baanConstant EVTDLLEVENTMASK
syn keyword baanConstant EVTENTERNOTIFY
syn keyword baanConstant EVTENTERNOTIFYMASK
syn keyword baanConstant EVTFIELDSELECT
syn keyword baanConstant EVTFIELDSELECTMASK
syn keyword baanConstant EVTGRIDACTIVATE
syn keyword baanConstant EVTGRIDBUTTONPRESS
syn keyword baanConstant EVTGRIDCHANGEDATA
syn keyword baanConstant EVTGRIDCHANGEFOCUS
syn keyword baanConstant EVTGRIDEVENT
syn keyword baanConstant EVTGRIDEVENTMASK
syn keyword baanConstant EVTGRIDFOCUSCHANGEDBYMOUSE
syn keyword baanConstant EVTGRIDLISTBOXCHANGE
syn keyword baanConstant EVTGRIDMARKCELL
syn keyword baanConstant EVTGRIDMARKCOLUMN
syn keyword baanConstant EVTGRIDMARKRANGE
syn keyword baanConstant EVTGRIDMARKROW
syn keyword baanConstant EVTGRIDMOVECOLUMN
syn keyword baanConstant EVTGRIDMOVEROW
syn keyword baanConstant EVTGRIDRESETSELECTION
syn keyword baanConstant EVTGRIDRESIZECOLUMN
syn keyword baanConstant EVTGRIDRESIZEROW
syn keyword baanConstant EVTHELPCOMMAND
syn keyword baanConstant EVTHELPCONTEXT
syn keyword baanConstant EVTHELPEVENT
syn keyword baanConstant EVTHELPEVENTMASK
syn keyword baanConstant EVTIOEVENT
syn keyword baanConstant EVTIOEVENTMASK
syn keyword baanConstant EVTKEYPRESS
syn keyword baanConstant EVTKEYPRESSMASK
syn keyword baanConstant EVTKILLEVENT
syn keyword baanConstant EVTLEAVENOTIFY
syn keyword baanConstant EVTLEAVENOTIFYMASK
syn keyword baanConstant EVTLISTBOXREASONACTIVATE
syn keyword baanConstant EVTLISTBOXREASONSELECTION
syn keyword baanConstant EVTLISTBOXREASONTEXT
syn keyword baanConstant EVTLISTBOXSELECT
syn keyword baanConstant EVTLISTBOXSELECTMASK
syn keyword baanConstant EVTLOCKMASK
syn keyword baanConstant EVTMAXSIZE
syn keyword baanConstant EVTMENUSELECT
syn keyword baanConstant EVTMENUSELECTMASK
syn keyword baanConstant EVTMOD1MASK
syn keyword baanConstant EVTMOVEWINDOW
syn keyword baanConstant EVTMOVEWINDOWMASK
syn keyword baanConstant EVTNAVIGATOREVENT
syn keyword baanConstant EVTNAVIGATOREVENTMASK
syn keyword baanConstant EVTNOEVENTMASK
syn keyword baanConstant EVTOLEAUTOMATION
syn keyword baanConstant EVTOLECLOSE
syn keyword baanConstant EVTOLECREATEINSTANCE
syn keyword baanConstant EVTOLEDATACHANGED
syn keyword baanConstant EVTOLEEVENT
syn keyword baanConstant EVTOLEEVENTMASK
syn keyword baanConstant EVTOLEHIDEWINDOW
syn keyword baanConstant EVTOLELOADDATA
syn keyword baanConstant EVTOLELOCKSERVER
syn keyword baanConstant EVTOLEOBJECTWINDOWINVISIBLE
syn keyword baanConstant EVTOLEOBJECTWINDOWVISIBLE
syn keyword baanConstant EVTOLERELEASED
syn keyword baanConstant EVTOLESAVEDATA
syn keyword baanConstant EVTOLESETHOSTNAMES
syn keyword baanConstant EVTOLESHOWOBJECT
syn keyword baanConstant EVTOLESHOWWINDOW
syn keyword baanConstant EVTOLEUNLOCKSERVER
syn keyword baanConstant EVTOPTIONSELECT
syn keyword baanConstant EVTPROCESSEVENT
syn keyword baanConstant EVTPUSHBUTTON
syn keyword baanConstant EVTRADIOBOXMASK
syn keyword baanConstant EVTRADIOBOXSELECT
syn keyword baanConstant EVTRESIZEWINDOW
syn keyword baanConstant EVTRESIZEWINDOWMASK
syn keyword baanConstant EVTRUNPROGEXIT
syn keyword baanConstant EVTSCROLLBARSELECT
syn keyword baanConstant EVTSCROLLBARSELECTMASK
syn keyword baanConstant EVTSETFOCUS
syn keyword baanConstant EVTSETFOCUSMASK
syn keyword baanConstant EVTSHIFTMASK
syn keyword baanConstant EVTSLIDERSELECT
syn keyword baanConstant EVTSLIDERSELECTMASK
syn keyword baanConstant EVTSOCKHASDATA
syn keyword baanConstant EVTSOCKIOERROR
syn keyword baanConstant EVTTABSELECT
syn keyword baanConstant EVTTABSELECTMASK
syn keyword baanConstant EVTTERMINATION
syn keyword baanConstant EVTTERMINATIONMASK
syn keyword baanConstant EVTTIMEREVENT
syn keyword baanConstant EVTTIMEREVENTMASK
syn keyword baanConstant EVTTREEREASONACTIVATE
syn keyword baanConstant EVTTREEREASONACTIVATEMASK
syn keyword baanConstant EVTTREEREASONCOLLAPSE
syn keyword baanConstant EVTTREEREASONCOLLAPSEMASK
syn keyword baanConstant EVTTREEREASONEXPAND
syn keyword baanConstant EVTTREEREASONEXPANDMASK
syn keyword baanConstant EVTTREEREASONSELECT
syn keyword baanConstant EVTTREEREASONSELECTMASK
syn keyword baanConstant EVTTREESELECT
syn keyword baanConstant EVTTREESELECTMASK
syn keyword baanConstant EXDEV
syn keyword baanConstant EXPLICIT.MODELESS
syn keyword baanConstant EXTEND_APPEND
syn keyword baanConstant EXTEND_OVERWRITE
syn keyword baanConstant F.ASK.HELPINFO
syn keyword baanConstant F.BACKTAB
syn keyword baanConstant F.BMS
syn keyword baanConstant F.HELP.INDEX
syn keyword baanConstant F.NEXT.FLD
syn keyword baanConstant F.NEXT.OBJ
syn keyword baanConstant F.NEXT.OCC
syn keyword baanConstant F.PREV.FLD
syn keyword baanConstant F.PREV.OBJ
syn keyword baanConstant F.PREV.OCC
syn keyword baanConstant F.RESIZE
syn keyword baanConstant F.RETURN
syn keyword baanConstant F.SCROLL
syn keyword baanConstant F.SELECT.FIELD
syn keyword baanConstant F.SELECT.OPTION
syn keyword baanConstant F.TAB
syn keyword baanConstant F.TO.CHOICE
syn keyword baanConstant F.TO.FIELD
syn keyword baanConstant F.TO.FORM
syn keyword baanConstant F.ZOOM
syn keyword baanConstant FALSE
syn keyword baanConstant FC.CURR.FIELD
syn keyword baanConstant FC.FIRST.FIELD
syn keyword baanConstant FC.FIRST.FORM
syn keyword baanConstant FC.FRM.WINDOW
syn keyword baanConstant FC.GET.HEIGHT.FORM
syn keyword baanConstant FC.GET.SELECTED.FIELD
syn keyword baanConstant FC.GET.SELECTED.OCC
syn keyword baanConstant FC.GET.WIDTH.FORM
syn keyword baanConstant FC.GOTO.FIELD
syn keyword baanConstant FC.GOTO.FIRST.FLD
syn keyword baanConstant FC.GOTO.FIRST.FORM
syn keyword baanConstant FC.GOTO.FORM
syn keyword baanConstant FC.GOTO.NEXT.FLD
syn keyword baanConstant FC.GOTO.NEXT.FORM
syn keyword baanConstant FC.GRA.WINDOW
syn keyword baanConstant FC.KYS.WINDOW
syn keyword baanConstant FC.LAST.FIELD
syn keyword baanConstant FC.LAST.FORM
syn keyword baanConstant FC.MAKE.FLD.CURR
syn keyword baanConstant FC.MOVE.FORM
syn keyword baanConstant FC.NEXT.FIELD
syn keyword baanConstant FC.NEXT.FORM
syn keyword baanConstant FC.OPT.WINDOW
syn keyword baanConstant FC.PREV.FIELD
syn keyword baanConstant FC.PREV.FORM
syn keyword baanConstant FC.RESIZE.FORM
syn keyword baanConstant FC.REST.FRM.ST
syn keyword baanConstant FC.RPT.WINDOW
syn keyword baanConstant FC.SAVE.FRM.ST
syn keyword baanConstant FC.SAVE.SELECT
syn keyword baanConstant FC.SEL.FIELD
syn keyword baanConstant FC.SEL.FORM
syn keyword baanConstant FC.SWITCH.ORDER.OFF
syn keyword baanConstant FC.SWITCH.ORDER.ON
syn keyword baanConstant FC.TEXT.MAIL.WINDOW
syn keyword baanConstant FIND.DATA
syn keyword baanConstant FIRST.FRM
syn keyword baanConstant FIRST.SET
syn keyword baanConstant FIRST.VIEW
syn keyword baanConstant FLDCHANGED
syn keyword baanConstant FLDKEYPRESS
syn keyword baanConstant FORM.TAB.CHANGE
syn keyword baanConstant GET.DEFAULTS
syn keyword baanConstant GETS_ALL_CHARS
syn keyword baanConstant GETS_NORMAL
syn keyword baanConstant GETS_SKIP_ALL
syn keyword baanConstant GLOBAL.COPY
syn keyword baanConstant GLOBAL.DELETE
syn keyword baanConstant HELP_ABOUT
syn keyword baanConstant HELP_ARG_LEN
syn keyword baanConstant HELP_BITMAP
syn keyword baanConstant HELP_BLOCK
syn keyword baanConstant HELP_CHOICE
syn keyword baanConstant HELP_CLIENT_IMAGE_NOTLOADED
syn keyword baanConstant HELP_CLIENT_IMAGE_READY
syn keyword baanConstant HELP_CLIENT_NEW_ARGS
syn keyword baanConstant HELP_CLIENT_NEW_INFO
syn keyword baanConstant HELP_COMMANDS
syn keyword baanConstant HELP_DOMAIN
syn keyword baanConstant HELP_ENUM
syn keyword baanConstant HELP_EXTERNAL
syn keyword baanConstant HELP_FORM
syn keyword baanConstant HELP_FORMFIELD
syn keyword baanConstant HELP_FROM_INDEX
syn keyword baanConstant HELP_GEM
syn keyword baanConstant HELP_GIF
syn keyword baanConstant HELP_GLOSSARY
syn keyword baanConstant HELP_GOTO
syn keyword baanConstant HELP_GOTOBLOCK
syn keyword baanConstant HELP_GO_SYS_DEPENDANT
syn keyword baanConstant HELP_HPGL
syn keyword baanConstant HELP_IFUNCTION
syn keyword baanConstant HELP_IFUNCTION2
syn keyword baanConstant HELP_IFUNCTION3
syn keyword baanConstant HELP_INDEX
syn keyword baanConstant HELP_LABEL
syn keyword baanConstant HELP_LABELHELP
syn keyword baanConstant HELP_MARK
syn keyword baanConstant HELP_MAXTYPE
syn keyword baanConstant HELP_MAX_ARGS
syn keyword baanConstant HELP_MAX_HIST
syn keyword baanConstant HELP_MAX_IMAGE
syn keyword baanConstant HELP_MENU
syn keyword baanConstant HELP_MESSAGE
syn keyword baanConstant HELP_ORGANIZER
syn keyword baanConstant HELP_POPUP_TYPE
syn keyword baanConstant HELP_POSTSCRIPT
syn keyword baanConstant HELP_QUESTION
syn keyword baanConstant HELP_REFERENCE
syn keyword baanConstant HELP_RELATION
syn keyword baanConstant HELP_RELATION2
syn keyword baanConstant HELP_RELATION_DIAGRAM
syn keyword baanConstant HELP_REPORT
syn keyword baanConstant HELP_SESSION
syn keyword baanConstant HELP_STARTSESSION
syn keyword baanConstant HELP_STARTSHELL
syn keyword baanConstant HELP_SUBFUNCTION
syn keyword baanConstant HELP_SYSTEM_DEPENDANT
syn keyword baanConstant HELP_TABLE
syn keyword baanConstant HELP_TABLEFIELD
syn keyword baanConstant HELP_USING
syn keyword baanConstant HOOK_IS_APPLICABLE
syn keyword baanConstant HOOK_IS_DERIVED
syn keyword baanConstant HOOK_IS_MANDATORY
syn keyword baanConstant HOOK_IS_READONLY
syn keyword baanConstant HOOK_IS_VALID
syn keyword baanConstant HOOK_UPDATE
syn keyword baanConstant INCLUDE_ENUMS
syn keyword baanConstant INTERRUPT
syn keyword baanConstant LAST.FRM
syn keyword baanConstant LAST.SET
syn keyword baanConstant LAST.VIEW
syn keyword baanConstant MARK.ABORT
syn keyword baanConstant MARK.DELETE
syn keyword baanConstant MARK.GOTO.NEXT
syn keyword baanConstant MARK.GOTO.PREV
syn keyword baanConstant MARK.OCCUR
syn keyword baanConstant MARK.SHOW.OPT
syn keyword baanConstant MARK.TAG
syn keyword baanConstant MARK.TAG.ALL
syn keyword baanConstant MARK.TO.CHOICE
syn keyword baanConstant MARK.UNTAG
syn keyword baanConstant MARK.UNTAG.ALL
syn keyword baanConstant MARKONE.ACCEPT
syn keyword baanConstant MSG.ALL
syn keyword baanConstant MSG.ERROR
syn keyword baanConstant MSG.INFO
syn keyword baanConstant MSG.WARNING
syn keyword baanConstant MSG.SUCCESS
syn keyword baanConstant MODAL
syn keyword baanConstant MODAL_OVERVIEW
syn keyword baanConstant MODELESS
syn keyword baanConstant MODELESS_ALWAYS
syn keyword baanConstant MODIFY.SET
syn keyword baanConstant MULTI_OCC
syn keyword baanConstant NEXT.FRM
syn keyword baanConstant NEXT.SET
syn keyword baanConstant NEXT.VIEW
syn keyword baanConstant NO.PERM.DEFINED
syn keyword baanConstant NO.PERMISSION
syn keyword baanConstant NO.RESTRICTION
syn keyword baanConstant NO.ROLLBACK
syn keyword baanConstant OLESVR.INIT
syn keyword baanConstant OLESVR.OBJECT.CREATED
syn keyword baanConstant OLESVR.OBJECT.DESTROYED
syn keyword baanConstant OS_OS400
syn keyword baanConstant OS_UNIX
syn keyword baanConstant OS_WINDOWS_95
syn keyword baanConstant OS_WINDOWS_NT
syn keyword baanConstant PERM.DELETE
syn keyword baanConstant PERM.MODIFY
syn keyword baanConstant PERM.READ
syn keyword baanConstant PERM.UNKNOWN
syn keyword baanConstant PERM.WRITE
syn keyword baanConstant PI
syn keyword baanConstant PREV.FRM
syn keyword baanConstant PREV.SET
syn keyword baanConstant PREV.VIEW
syn keyword baanConstant PRINT.DATA
syn keyword baanConstant PROGRESS.BAR
syn keyword baanConstant PROGRESS.CANCEL
syn keyword baanConstant PROGRESS.NOAUTODESTROY
syn keyword baanConstant PROGRESS.RESIZEABLE
syn keyword baanConstant PROGRESS.STOP
syn keyword baanConstant PROGRESS.TIMER
syn keyword baanConstant PRTCL
syn keyword baanConstant PRTCL.END.TRACE
syn keyword baanConstant PRTCL.EXECUTE
syn keyword baanConstant PRTCL.FIELD.OPTION
syn keyword baanConstant PRTCL.GET.DATA
syn keyword baanConstant PRTCL.GET.DATA.ANSWER
syn keyword baanConstant PRTCL.MASK
syn keyword baanConstant PRTCL.PUT.DATA
syn keyword baanConstant PRTCL.START.TRACE
syn keyword baanConstant PRTCL.UNKNOWN
syn keyword baanConstant PSMAXSIZE
syn keyword baanConstant QSS.EQLE
syn keyword baanConstant QSS.EQUAL
syn keyword baanConstant QSS.FIRST
syn keyword baanConstant QSS.GT
syn keyword baanConstant QSS.GTEQ
syn keyword baanConstant QSS.LAST
syn keyword baanConstant QSS.LESS
syn keyword baanConstant QSS.LOOKUP.FOR.STRUCT
syn keyword baanConstant QSS.NE
syn keyword baanConstant QSS.SRC.DUPL.ALLOWED
syn keyword baanConstant QSS.SRC.IS.SORTED
syn keyword baanConstant RDI.CENTER
syn keyword baanConstant RDI.LEFT
syn keyword baanConstant RDI.LOWER
syn keyword baanConstant RDI.NONE
syn keyword baanConstant RDI.RIGHT
syn keyword baanConstant RDI.UPPER
syn keyword baanConstant RECOVER.SET
syn keyword baanConstant RESIZE.FRM
syn keyword baanConstant RESTART.INPUT
syn keyword baanConstant ROTATE.CURR
syn keyword baanConstant RP_IPCINFO_FLAG
syn keyword baanConstant RP_INPROC
syn keyword baanConstant RP_NOWAIT
syn keyword baanConstant RP_NOWAIT_WITH_EVENT
syn keyword baanConstant RP_WAIT
syn keyword baanConstant RUN.JOB
syn keyword baanConstant SAVE.DEFAULTS
syn keyword baanConstant SBADJUST
syn keyword baanConstant SBCONFIRM
syn keyword baanConstant SBDOWN
syn keyword baanConstant SBEND
syn keyword baanConstant SBHOME
syn keyword baanConstant SBMOVE
syn keyword baanConstant SBPGDOWN
syn keyword baanConstant SBPGUP
syn keyword baanConstant SBPRESS
syn keyword baanConstant SBRELEASE
syn keyword baanConstant SBUP
syn keyword baanConstant SEQ_F_R_LCK
syn keyword baanConstant SEQ_F_W_LCK
syn keyword baanConstant SEQ_R_LCK
syn keyword baanConstant SEQ_W_LCK
syn keyword baanConstant SESSION_NO_PERMISSION
syn keyword baanConstant SESSION_DELETE_PERMISSION
syn keyword baanConstant SESSION_INSERT_PERMISSION
syn keyword baanConstant SESSION_MODIFY_PERMISSION
syn keyword baanConstant SESSION_DISPLAY_PERMISSION
syn keyword baanConstant SESSION_PRINT_PERMISSION
syn keyword baanConstant SINGLE_OCC
syn keyword baanConstant ST.ADD.SET
syn keyword baanConstant ST.BITSET
syn keyword baanConstant ST.BITSET.ZOOM
syn keyword baanConstant ST.BRP.RUN
syn keyword baanConstant ST.BRP.SEND
syn keyword baanConstant ST.DEF.FIND
syn keyword baanConstant ST.DOUBLE
syn keyword baanConstant ST.DOUBLE.ZOOM
syn keyword baanConstant ST.DUPL.OCCUR
syn keyword baanConstant ST.ENUM
syn keyword baanConstant ST.ENUM.ZOOM
syn keyword baanConstant ST.FIND.DATA
syn keyword baanConstant ST.FIRST.SET
syn keyword baanConstant ST.LAST.SET
syn keyword baanConstant ST.MARK.DELETE
syn keyword baanConstant ST.MARK.OCCUR
syn keyword baanConstant ST.MB
syn keyword baanConstant ST.MB.ZOOM
syn keyword baanConstant ST.MODIFY.SET
syn keyword baanConstant ST.MULTI.2
syn keyword baanConstant ST.MULTI.3
syn keyword baanConstant ST.NUM.ZOOM
syn keyword baanConstant ST.NUMERIC
syn keyword baanConstant ST.PROG.BUSY
syn keyword baanConstant ST.SINGLE.1
syn keyword baanConstant ST.SINGLE.3
syn keyword baanConstant ST.SINGLE.4
syn keyword baanConstant ST.SORT
syn keyword baanConstant ST.STRING
syn keyword baanConstant ST.STRING.ZOOM
syn keyword baanConstant ST.TEXT
syn keyword baanConstant ST.TEXT.ZOOM
syn keyword baanConstant ST.TIME
syn keyword baanConstant ST.TIME.ZOOM
syn keyword baanConstant ST.UPDATE.DB
syn keyword baanConstant ST.ZOOM
syn keyword baanConstant START.CHART
syn keyword baanConstant START.QUERY
syn keyword baanConstant START.SET
syn keyword baanConstant STAT_EXECUTABLE
syn keyword baanConstant STAT_READABLE
syn keyword baanConstant STAT_WRITEABLE
syn keyword baanConstant SUBDAL
syn keyword baanConstant TDIR
syn keyword baanConstant TEXT.MANAGER
syn keyword baanConstant TFILE
syn keyword baanConstant TRUE
syn keyword baanConstant UPDATE.DB
syn keyword baanConstant USER.0
syn keyword baanConstant USER.1
syn keyword baanConstant USER.2
syn keyword baanConstant USER.3
syn keyword baanConstant USER.4
syn keyword baanConstant USER.5
syn keyword baanConstant USER.6
syn keyword baanConstant USER.7
syn keyword baanConstant USER.8
syn keyword baanConstant USER.9
syn keyword baanConstant WINDOW.DIALOG
syn keyword baanConstant WINDOW.LIST
syn keyword baanConstant WINDOW.MMTCONTROLLER
syn keyword baanConstant WINDOW.MMTSATELLITE
syn keyword baanConstant WINDOW.MODAL.MENU
syn keyword baanConstant WINDOW.MODELESS.MENU
syn keyword baanConstant WINDOW.NONE
syn keyword baanConstant WINDOW.PARAMETER
syn keyword baanConstant WINDOW.SYNCHRONIZED
syn keyword baanConstant WINDOW.WIZARD
syn keyword baanConstant WITH.ROLLBACK
syn keyword baanConstant WU.DLL
syn keyword baanConstant WU.DOMA
syn keyword baanConstant WU.FLDN
syn keyword baanConstant WU.LANGOPT
syn keyword baanConstant WU.MESS
syn keyword baanConstant WU.QUES
syn keyword baanConstant WU.SESS
syn keyword baanConstant WU.TABL
syn keyword baanConstant XML_DATA
syn keyword baanConstant XML_DTD
syn keyword baanConstant XML_ELEMENT
syn keyword baanConstant XML_PI
syn keyword baanConstant Z.AUTOACCEPT
syn keyword baanConstant Z.AUTOZOOM
syn keyword baanConstant Z.MENU
syn keyword baanConstant Z.SESSION
syn keyword baanConstant ZOOM


"************************************* 4GL ************************************"
" Program section
syn match baan4glh "declaration:"
syn match baan4glh "functions:"
syn match baan4glh "before\.program:"
syn match baan4glh "on\.error:"
syn match baan4glh "after\.program:"
syn match baan4glh "after\.update.db.commit:"
syn match baan4glh "before\.display\.object:"

" Form section
syn match baan4glh "form\.\d\+:"
syn match baan4glh "form\.all:"
syn match baan4glh "form\.other:"
syn match baan4gl  "init\.form:"
syn match baan4gl  "before\.form:"
syn match baan4gl  "after\.form:"

" Choice section
syn match baan4glh "choice\.start\.set:"
syn match baan4glh "choice\.first\.view:"
syn match baan4glh "choice\.next\.view:"
syn match baan4glh "choice\.prev\.view:"
syn match baan4glh "choice\.last\.view:"
syn match baan4glh "choice\.def\.find:"
syn match baan4glh "choice\.find\.data:"
syn match baan4glh "choice\.first\.set:"
syn match baan4glh "choice\.next\.set:"
syn match baan4glh "choice\.display\.set:"
syn match baan4glh "choice\.prev\.set:"
syn match baan4glh "choice\.rotate\.curr:"
syn match baan4glh "choice\.last\.set:"
syn match baan4glh "choice\.add\.set:"
syn match baan4glh "choice\.update\.db:"
syn match baan4glh "choice\.dupl\.occur:"
syn match baan4glh "choice\.recover\.set:"
syn match baan4glh "choice\.mark\.delete:"
syn match baan4glh "choice\.mark\.occur:"
syn match baan4glh "choice\.change\.order:"
syn match baan4glh "choice\.modify\.set:"
syn match baan4glh "choice\.restart\.input:"
syn match baan4glh "choice\.print\.data:"
syn match baan4glh "choice\.create\.job:"
syn match baan4glh "choice\.form\.tab\.change:"
syn match baan4glh "choice\.first\.frm:"
syn match baan4glh "choice\.next\.frm:"
syn match baan4glh "choice\.prev\.frm:"
syn match baan4glh "choice\.last\.frm:"
syn match baan4glh "choice\.resize\.frm:"
syn match baan4glh "choice\.cmd\.options:"
syn match baan4glh "choice\.zoom:"
syn match baan4glh "choice\.interrupt:"
syn match baan4glh "choice\.end\.program:"
syn match baan4glh "choice\.abort\.program:"
syn match baan4glh "choice\.cont\.process:"
syn match baan4glh "choice\.text\.manager:"
syn match baan4glh "choice\.run\.job:"
syn match baan4glh "choice\.global\.delete:"
syn match baan4glh "choice\.global\.copy:"
syn match baan4glh "choice\.save\.defaults"
syn match baan4glh "choice\.get\.defaults:"
syn match baan4glh "choice\.start\.chart:"
syn match baan4glh "choice\.start\.query:"
syn match baan4glh "choice\.user\.\d:"
syn match baan4glh "choice\.ask\.helpinfo:"
syn match baan4glh "choice\.calculator:"
syn match baan4glh "choice\.calendar:"
syn match baan4glh "choice\.bms:"
syn match baan4glh "choice\.cmd\.whats\.this:"
syn match baan4glh "choice\.help\.index:"
syn match baan4gl  "before\.choice:"
syn match baan4gl  "on\.choice:"
syn match baan4gl  "after\.choice:"

" Field section
syn match baan4glh "field\.\l\{5}\d\{3}\.\l\{4,8}\.\=c\=:"
syn match baan4glh "field\.e\..\+:"
syn match baan4glh "field\.all:"
syn match baan4glh "field\.other:"
syn match baan4gl  "init\.field:"
syn match baan4gl  "before\.field:"
syn match baan4gl  "before\.input:"
syn match baan4gl  "before\.display:"
syn match baan4gl "selection\.filter:"
syn match baan4gl  "before\.zoom:"
syn match baan4gl  "before\.checks:"
syn match baan4gl  "domain\.error:"
syn match baan4gl  "ref\.input:"
syn match baan4gl  "ref\.display:"
syn match baan4gl  "check\.input:"
syn match baan4gl  "on\.input:"
syn match baan4gl  "when\.field\.changes:"
syn match baan4gl  "after\.zoom:"
syn match baan4gl  "after\.input:"
syn match baan4gl  "after\.display:"
syn match baan4gl  "after\.field:"

" Group section
syn match baan4glh "group\.\d\+:"
syn match baan4gl "init\.group:"
syn match baan4gl "before\.group:"
syn match baan4gl "after\.group:"

" Zoom section
syn match baan4glh "zoom\.from\..\+:"
syn match baan4gl "on\.entry:"
syn match baan4gl "on\.exit:"

" Main table section
syn match baan4glh "main\.table\.io:"
syn match baan4gl "before\.read:"
syn match baan4gl "after\.read:"
syn match baan4gl "before\.write:"
syn match baan4gl "after\.write:"
syn match baan4gl "after\.skip\.write:"
syn match baan4gl "before\.rewrite:"
syn match baan4gl "after\.rewrite:"
syn match baan4gl "after\.skip\.rewrite:"
syn match baan4gl "before\.delete:"
syn match baan4gl "after\.delete:"
syn match baan4gl "after\.skip\.delete:"
syn match baan4gl "read\.view:"

"**************************** Dal Hooks ********************************
syn keyword baanDalHook after.abort.transaction after.commit.transaction after.destroy.object 
syn keyword baanDalHook after.change.object after.get.object after.new.object after.save.object before.change.object
syn keyword baanDalHook before.destroy.object before.get.object before.new.object before.open.object.set before.save.object
syn keyword baanDalHook method.is.allowed set.object.defaults

syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.check"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.is.valid"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.is.applicable"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.is.never.applicable"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.is.derived"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.is.readonly"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.is.mandatory"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.make.valid"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\.update"
syn match baanDalHook "\l\{5}\d\{3}\.\l\{4,8}\..*\.is.applicable"


"number without a dot."
syn match  baanNumber		"\<\-\=\d\+\>"
"number with dot"
syn match  baanNumber		"\<\-\=\d\+\.\d*\>"
"number starting with a dot"
syn match  baanNumber		"\<\-\=\.\d\+\>"

" String Error does not work correct with vim 6.0
syn match   baanOpenStringError +^[^^"]+ display contained excludenl
syn region  baanString	start=+"+  skip=+""+  end=+"+ end=+^[^^]+ contains=baanOpenStringError keepend

" Comment"
syn match   baanComment "|$"
syn match   baanComment "|.$"
syn match   baanComment "|[^ ]"
syn match   baanComment	"|[^#].*[^ ]"
syn match   baanCommenth "^|#lra.*$"
syn match   baanCommenth "^|#mdm.*$"
syn match   baanCommenth "^|#[0-9][0-9][0-9][0-9][0-9].*$"
syn match   baanCommenth "^|#N\=o\=Include.*$"
" Oldcode"
syn match   baanUncommented	"^|[^*#].*[^ ]"
" DLL section
" SpaceError"
syn match    baanSpaces	" "
syn match    baanSpaceError	"\s*$"
syn match    baanSpaceError	"        "

" Baan error"

if exists("baan_code_stds") && baan_code_stds
syn match  BaanError	"^\s*i\..*=\s*\(\k\|\"\)*\s*$"		"assignment of an input var"
syn match  BaanError	"^\s*ref.*\s[ilse]\..*$"		" ref variable defined with i, l, e and s"
syn match  BaanError	"^\s*const.*\s[olse]\..*$"		" const variable defined with o, l, e and s"
syn match  BaanError	"^\s*static.*\s\(i\|g\|l\|o\|io\)\..*$"	" static defined without s."
syn match  BaanError	"^\s*\(domain\s\|long\s\|string\s\).*\so\.\k*[,)]"	" ref variable without ref"
syn match  BaanError	"^\s*\(domain\s\|long\s\|string\s\).*\se\.\k*[,)]"	" 'e.' variable without extern"
syn match  BaanError	"^\s*i\..*,\s*|\s*ref.*$"	" 
endif

"**************************** bshell functions ********************************
syn match   baanBshell "\<shiftl\$"
syn match   baanBshell "\<shiftr\$"
syn match   baanBshell "\<shiftc\$"
syn match   baanBshell "\<strip\$"
syn match   baanBshell "\<tolower\$"
syn match   baanBshell "\<toupper\$"
syn keyword baanBshell isdigit
syn keyword baanBshell isspace
syn match   baanBshell "\<chr\$"
syn keyword baanBshell len.in.bytes
syn keyword baanBshell rpos
syn match   baanBshell "\<sprintf\$"
syn match   baanBshell "\<vsprintf\$"
syn match   baanBshell "\<concat\$"
syn keyword baanBshell gregdate
syn match   baanBshell "\<w.to.dat\$"
syn keyword baanBshell ttyname
syn match   baanBshell "\<ttyname\$"
syn match   baanBshell "\<creat.tmp.file\$"
syn match   baanBshell "\<string.set\$"
syn keyword baanBshell string.scan
syn keyword baanBshell not.fixed
syn keyword baanBshell dummy
syn keyword baanBshell alloc.mem
syn keyword baanBshell free.mem
syn keyword baanBshell copy.mem
syn keyword baanBshell cmp.mem
syn keyword baanBshell set.mem
syn keyword baanBshell num.to.date
syn keyword baanBshell date.to.num
syn keyword baanBshell num.to.week
syn keyword baanBshell week.to.num
syn match   baanBshell "\<num.to.date\$"
syn keyword baanBshell expr.compile
syn keyword baanBshell l.expr
syn keyword baanBshell d.expr
syn match   baanBshell "\<s.expr\$"
syn keyword baanBshell expr.free
syn keyword baanBshell compnr.check
syn match   baanBshell "\<bse.dir\$"
syn match   baanBshell "\<bse.tmp.dir\$"
syn match   baanBshell "\<bse.release\$"
syn match   baanBshell "\<bse.portset\$"
syn match   baanBshell "\<getenv\$"
syn keyword baanBshell base.extern
syn keyword baanBshell at.base
syn keyword baanBshell get.compnr
syn keyword baanBshell base.next
syn keyword baanBshell get.argc
syn keyword baanBshell get.long.arg
syn keyword baanBshell get.double.arg
syn keyword baanBshell get.string.arg
syn keyword baanBshell get.arg.type
syn keyword baanBshell put.long.arg
syn keyword baanBshell put.double.arg
syn keyword baanBshell put.string.arg
syn keyword baanBshell setenv
syn keyword baanBshell cmp.password
syn match   baanBshell "\<crypt.password\$"
syn keyword baanBshell is.password.ok
syn keyword baanBshell block.cipher.encrypt
syn keyword baanBshell block.cipher.decrypt
syn keyword baanBshell encrypt.user.password
syn keyword baanBshell verify.user.password
syn keyword baanBshell asm.put.instance.id
syn match   baanBshell "\<date.to.inputstr\$"
syn keyword baanBshell inputstr.to.date
syn match   baanBshell "\<hostname\$"
syn keyword baanBshell base64.encode
syn keyword baanBshell base64.decode
syn keyword baanBshell sha.create
syn keyword baanBshell sha.initialize
syn keyword baanBshell sha.add.data
syn keyword baanBshell sha.compute.output
syn keyword baanBshell sha.destroy
syn match   baanBshell "\<uuid.generate\$"
syn match   baanBshell "\<uuid.format\$"
syn keyword baanBshell resolve.labels.by.lookupkey
syn keyword baanBshell resolve.labels.by.codepair
syn keyword baanBshell lookupkey.hash
syn keyword baanBshell lookupkey.unhash
syn match   baanBshell "\<mb.long.to.str\$"
syn keyword baanBshell mb.width
syn match   baanBshell "\<mb.localename\$"
syn match   baanBshell "\<mb.tss.clean\$"
syn match   baanBshell "\<mb.ext.clean\$"
syn match   baanBshell "\<mb.import\$"
syn match   baanBshell "\<mb.export\$"
syn keyword baanBshell mb.import.raw
syn keyword baanBshell mb.export.raw
syn keyword baanBshell uni.import
syn keyword baanBshell uni.export
syn keyword baanBshell utf8.import
syn keyword baanBshell utf8.export
syn keyword baanBshell mb.strpos
syn keyword baanBshell mb.scrpos
syn keyword baanBshell mb.char
syn keyword baanBshell mb.type
syn match   baanBshell "\<mb.cast\$"
syn match   baanBshell "\<mb.cast.to.str\$"
syn keyword baanBshell mb.display
syn keyword baanBshell mb.isbidi
syn keyword baanBshell mb.isbidi.language
syn match   baanBshell "\<mb.rev\$"
syn keyword baanBshell mb.hasbidi
syn keyword baanBshell mb.kb.lang
syn keyword baanBshell mb.locale.info
syn keyword baanBshell mb.locale.enumerate
syn keyword baanBshell mb.nsets
syn keyword baanBshell mb.set.info
syn keyword baanBshell mb.char.info
syn keyword baanBshell key.compare
syn keyword baanBshell set.fields.default
syn keyword baanBshell table.round
syn keyword baanBshell halfadj
syn keyword baanBshell round
syn keyword baanBshell format.round
syn match   baanBshell "\<edit\$"
syn match   baanBshell "\<str\$"
syn keyword baanBshell lval
syn keyword baanBshell acos
syn keyword baanBshell asin
syn keyword baanBshell atan
syn keyword baanBshell atan2
syn keyword baanBshell cosh
syn keyword baanBshell sinh
syn keyword baanBshell tanh
syn keyword baanBshell log10
syn keyword baanBshell sqrt
syn keyword baanBshell lpow
syn keyword baanBshell random
syn keyword baanBshell srand
syn keyword baanBshell rnd.init
syn keyword baanBshell rnd.i
syn keyword baanBshell rnd.d
syn keyword baanBshell double.cmp
syn match   baanBshell "\<tab\$"
syn keyword baanBshell aux.open
syn keyword baanBshell aux.print
syn keyword baanBshell aux.close
syn keyword baanBshell refresh
syn keyword baanBshell cl.screen
syn match   baanBshell "\<delch\$"
syn match   baanBshell "\<deleteln\$"
syn match   baanBshell "\<insch\$"
syn match   baanBshell "\<insertln\$"
syn keyword baanBshell change.window
syn keyword baanBshell data.input
syn keyword baanBshell del.window
syn keyword baanBshell frame.window
syn keyword baanBshell new.window
syn keyword baanBshell window.size
syn keyword baanBshell move.window
syn keyword baanBshell resize.window
syn keyword baanBshell get.row
syn keyword baanBshell get.col
syn keyword baanBshell get.cp
syn keyword baanBshell map.window
syn keyword baanBshell unmap.window
syn keyword baanBshell set.bg.color
syn keyword baanBshell set.fg.color
syn keyword baanBshell no.scroll
syn keyword baanBshell scroll
syn keyword baanBshell cursor.on
syn keyword baanBshell cursor.off
syn keyword baanBshell sub.window
syn keyword baanBshell current.window
syn match   baanBshell "\<keyin\$"
syn keyword baanBshell dump.screen
syn keyword baanBshell first.window
syn keyword baanBshell last.window
syn keyword baanBshell free.window
syn keyword baanBshell #input
syn keyword baanBshell #output
syn keyword baanBshell wrebuild
syn keyword baanBshell select.event.input
syn keyword baanBshell next.event
syn keyword baanBshell peek.event
syn keyword baanBshell pending.events
syn keyword baanBshell send.event
syn keyword baanBshell send.signal
syn keyword baanBshell get.display.data
syn keyword baanBshell open.display
syn keyword baanBshell link.display
syn keyword baanBshell link.keyboard
syn keyword baanBshell unlink.keyboard
syn keyword baanBshell close.display
syn keyword baanBshell current.display
syn keyword baanBshell change.display
syn keyword baanBshell sync.display.server
syn match   baanBshell "\<get.class.name\$"
syn keyword baanBshell create.mwindow
syn keyword baanBshell current.mwindow
syn keyword baanBshell change.mwindow
syn keyword baanBshell set.mwindow.title
syn keyword baanBshell set.mwindow.size
syn keyword baanBshell set.mwindow.mode
syn keyword baanBshell get.mwindow.mode
syn keyword baanBshell destroy.mwindow
syn keyword baanBshell dialog
syn keyword baanBshell get.mwindow.size
syn keyword baanBshell create.bar
syn keyword baanBshell current.bar
syn keyword baanBshell change.bar
syn keyword baanBshell change.bar.attr
syn keyword baanBshell destroy.bar
syn keyword baanBshell create.bar.button
syn keyword baanBshell change.bar.item.attr
syn keyword baanBshell destroy.bar.item
syn keyword baanBshell create.object
syn keyword baanBshell change.object
syn keyword baanBshell get.object
syn keyword baanBshell query.object
syn keyword baanBshell destroy.object
syn keyword baanBshell get.event.attribute
syn keyword baanBshell create.sub.object
syn keyword baanBshell create.sub.object.by.id
syn keyword baanBshell change.sub.object
syn keyword baanBshell get.sub.object
syn keyword baanBshell query.sub.object
syn keyword baanBshell destroy.sub.object
syn keyword baanBshell create.arglist
syn keyword baanBshell add.arg
syn keyword baanBshell add.ref.arg
syn keyword baanBshell delete.arg
syn keyword baanBshell print.arglist
syn keyword baanBshell destroy.arglist
syn keyword baanBshell get.object.class.list
syn keyword baanBshell get.object.class
syn keyword baanBshell get.sub.object.class
syn keyword baanBshell get.resource.class
syn keyword baanBshell get.event.class
syn keyword baanBshell get.pixmap.info
syn keyword baanBshell compress.pixmap
syn keyword baanBshell decompress.pixmap
syn keyword baanBshell get.window.attrs
syn keyword baanBshell get.mwindow.attrs
syn keyword baanBshell create.gc
syn keyword baanBshell change.gc
syn keyword baanBshell get.gc
syn keyword baanBshell destroy.gc
syn keyword baanBshell load.font
syn keyword baanBshell query.font
syn keyword baanBshell free.font
syn keyword baanBshell get.typeface
syn keyword baanBshell list.fonts
syn keyword baanBshell text.extends
syn keyword baanBshell inherit.object
syn keyword baanBshell create.gtext
syn keyword baanBshell create.line
syn keyword baanBshell create.polyline
syn keyword baanBshell create.polygon
syn keyword baanBshell create.rectangle
syn keyword baanBshell create.arc
syn keyword baanBshell create.pie
syn keyword baanBshell create.composite
syn keyword baanBshell create.image
syn keyword baanBshell change.gtext
syn keyword baanBshell change.gtext.label
syn keyword baanBshell change.line
syn keyword baanBshell change.polyline
syn keyword baanBshell change.polygon
syn keyword baanBshell change.rectangle
syn keyword baanBshell change.arc
syn keyword baanBshell change.pie
syn keyword baanBshell get.gtext
syn keyword baanBshell get.gtext.label
syn keyword baanBshell get.line
syn keyword baanBshell get.polyline
syn keyword baanBshell get.polygon
syn keyword baanBshell get.rectangle
syn keyword baanBshell get.arc
syn keyword baanBshell get.pie
syn keyword baanBshell get.composite
syn keyword baanBshell get.image
syn keyword baanBshell move.gpart
syn keyword baanBshell shift.gpart
syn keyword baanBshell which.gpart
syn keyword baanBshell which.gparts
syn keyword baanBshell change.gpart.gc
syn keyword baanBshell get.gpart.gc
syn keyword baanBshell destroy.gpart
syn keyword baanBshell destroy.composite
syn keyword baanBshell first.gpart
syn keyword baanBshell last.gpart
syn keyword baanBshell next.gpart
syn keyword baanBshell prev.gpart
syn keyword baanBshell change.gpart.attr
syn keyword baanBshell get.gpart.attr
syn keyword baanBshell get.gpart
syn keyword baanBshell get.gpart.box
syn keyword baanBshell resize.gpart.box
syn keyword baanBshell move.gpart.box
syn keyword baanBshell activate
syn keyword baanBshell reactivate
syn keyword baanBshell act.and.sleep
syn keyword baanBshell sleep
syn match   baanBshell "\<receive.bucket\$"
syn keyword baanBshell send.bucket
syn keyword baanBshell send.wait
syn keyword baanBshell bms.send
syn match   baanBshell "\<bms.receive\$"
syn keyword baanBshell bms.receive.buffer
syn keyword baanBshell bms.add.mask
syn keyword baanBshell bms.delete.mask
syn keyword baanBshell bms.init
syn keyword baanBshell wait.and.activate
syn keyword baanBshell abort
syn keyword baanBshell kill
syn keyword baanBshell shell
syn match   baanBshell "\<argv\$"
syn keyword baanBshell argc
syn keyword baanBshell get.var
syn keyword baanBshell put.var
syn keyword baanBshell get.ref.var
syn keyword baanBshell put.ref.var
syn keyword baanBshell get.indexed.var
syn keyword baanBshell put.indexed.var
syn keyword baanBshell on.change.check
syn keyword baanBshell off.change.check
syn keyword baanBshell changed
syn keyword baanBshell not.curr
syn keyword baanBshell handle.report.pool
syn keyword baanBshell get.symbol
syn keyword baanBshell suspend
syn keyword baanBshell set.timer
syn keyword baanBshell set.alarm
syn keyword baanBshell kill.timer
syn keyword baanBshell pstat
syn keyword baanBshell oipstat
syn keyword baanBshell obj_in_core
syn keyword baanBshell renice
syn keyword baanBshell kill.pgrp
syn keyword baanBshell set.pgrp
syn keyword baanBshell get.pgrp
syn keyword baanBshell grab.mwindow
syn keyword baanBshell signal
syn keyword baanBshell ptrace
syn keyword baanBshell link.on.stack
syn match   baanBshell "\<zoom.to\$"
syn keyword baanBshell retry.point
syn keyword baanBshell jump.retry.point
syn keyword baanBshell retry.level
syn keyword baanBshell get.bw.hostname
syn keyword baanBshell exit
syn match   baanBshell "\<dte\$"
syn keyword baanBshell times.on
syn keyword baanBshell times.off
syn keyword baanBshell times.close
syn keyword baanBshell times.total
syn keyword baanBshell times.lines
syn keyword baanBshell date.num
syn keyword baanBshell time.num
syn keyword baanBshell date.time.utc
syn keyword baanBshell utc.to.local
syn keyword baanBshell local.to.utc
syn keyword baanBshell input.field
syn keyword baanBshell output.field
syn keyword baanBshell key.to.option
syn keyword baanBshell option.to.key
syn keyword baanBshell get.choice.data
syn keyword baanBshell reset.zoom.info
syn keyword baanBshell next.field
syn keyword baanBshell print.form
syn keyword baanBshell set.field.blank
syn keyword baanBshell read.form
syn keyword baanBshell read.fast.form
syn keyword baanBshell change.form.field
syn keyword baanBshell copy.form.field
syn keyword baanBshell delete.form.field
syn keyword baanBshell iget.field.attr
syn keyword baanBshell sget.field.attr
syn keyword baanBshell menu.control
syn keyword baanBshell wait
syn match baanBshell "\<bms.peek\$"
syn keyword baanBshell create.menu
syn keyword baanBshell refresh.bar.menu
syn keyword baanBshell load.menu
syn keyword baanBshell current.menu
syn keyword baanBshell change.menu
syn keyword baanBshell popup.menu
syn keyword baanBshell set.menu
syn keyword baanBshell change.menu.attr
syn keyword baanBshell destroy.menu
syn keyword baanBshell create.menu.button
syn keyword baanBshell create.cascade.button
syn keyword baanBshell change.menu.item.name
syn keyword baanBshell change.cascade.menu
syn keyword baanBshell change.menu.item.attr
syn keyword baanBshell get.cascade.menu
syn keyword baanBshell destroy.menu.item
syn keyword baanBshell form.control
syn match   baanBshell "\<form.text\$"
syn keyword baanBshell status.on
syn keyword baanBshell status.off
syn keyword baanBshell status.mess
syn keyword baanBshell status.field
syn match   baanBshell "\<enum.descr\$"
syn keyword baanBshell mark.occurrence
syn keyword baanBshell start.mark
syn keyword baanBshell end.mark
syn keyword baanBshell get.attrs
syn keyword baanBshell put.attrs
syn keyword baanBshell act.zoom
syn keyword baanBshell init.first
syn keyword baanBshell init.last
syn keyword baanBshell init.next
syn keyword baanBshell init.prev
syn keyword baanBshell set.max
syn keyword baanBshell set.min
syn keyword baanBshell set.fmax
syn keyword baanBshell set.fmin
syn keyword baanBshell print.const
syn keyword baanBshell is.option.on
syn keyword baanBshell brp.build
syn keyword baanBshell brp.field
syn keyword baanBshell pathname
syn keyword baanBshell file.stat
syn keyword baanBshell file.cp
syn keyword baanBshell file.mv
syn keyword baanBshell file.rm
syn keyword baanBshell file.chown
syn keyword baanBshell file.chmod
syn keyword baanBshell stat.info
syn keyword baanBshell disk.info
syn keyword baanBshell mkdir
syn keyword baanBshell rmdir
syn keyword baanBshell open.message
syn keyword baanBshell send.message
syn keyword baanBshell recv.message
syn keyword baanBshell close.message
syn keyword baanBshell store.byte
syn keyword baanBshell store.short
syn keyword baanBshell store.long
syn keyword baanBshell store.float
syn keyword baanBshell store.double
syn keyword baanBshell load.byte
syn keyword baanBshell load.short
syn keyword baanBshell load.long
syn keyword baanBshell load.float
syn keyword baanBshell load.double
syn keyword baanBshell bit.and
syn keyword baanBshell bit.or
syn keyword baanBshell bit.exor
syn keyword baanBshell bit.inv
syn keyword baanBshell bit.in
syn keyword baanBshell bit.shiftl
syn keyword baanBshell bit.shiftr
syn keyword baanBshell check.domain
syn keyword baanBshell check.all.domain
syn keyword baanBshell seq.clearerr
syn keyword baanBshell seq.eof
syn keyword baanBshell seq.error
syn keyword baanBshell seq.open
syn keyword baanBshell seq.close
syn keyword baanBshell seq.flush
syn keyword baanBshell seq.rewind
syn keyword baanBshell seq.tell
syn keyword baanBshell seq.read
syn keyword baanBshell seq.write
syn match   baanBshell "\<seq.getc\$"
syn match   baanBshell "\<seq.putc\$"
syn match   baanBshell "\<seq.ungetc\$"
syn keyword baanBshell seq.skip
syn keyword baanBshell seq.seek
syn keyword baanBshell seq.gets
syn keyword baanBshell seq.puts
syn keyword baanBshell seq.unlink
syn keyword baanBshell seq.spool.line
syn keyword baanBshell seq.r.long
syn keyword baanBshell seq.w.long
syn keyword baanBshell seq.r.short
syn keyword baanBshell seq.w.short
syn keyword baanBshell seq.lock
syn keyword baanBshell seq.unlock
syn keyword baanBshell seq.islocked
syn keyword baanBshell pipe.open
syn keyword baanBshell pipe.close
syn keyword baanBshell pipe.flush
syn keyword baanBshell pipe.gets
syn keyword baanBshell pipe.puts
syn keyword baanBshell pipe.read
syn keyword baanBshell pipe.write
syn keyword baanBshell pipe.clearerr
syn keyword baanBshell pipe.eof
syn keyword baanBshell pipe.error
syn keyword baanBshell sock.connect
syn keyword baanBshell sock.listen
syn keyword baanBshell sock.accept
syn keyword baanBshell sock.recv
syn keyword baanBshell sock.send
syn keyword baanBshell sock.flush
syn keyword baanBshell sock.close
syn keyword baanBshell sock.inherit
syn keyword baanBshell sock.clearerr
syn keyword baanBshell sock.eof
syn keyword baanBshell sock.error
syn keyword baanBshell get.system.info
syn keyword baanBshell get.db.count
syn keyword baanBshell get.db.system.info
syn keyword baanBshell path.is.absolute
syn keyword baanBshell make.path.absolute
syn keyword baanBshell fstat.info
syn keyword baanBshell dir.open
syn keyword baanBshell dir.open.tree
syn keyword baanBshell dir.close
syn keyword baanBshell dir.entry
syn keyword baanBshell dir.rewind
syn keyword baanBshell ims.clearerr
syn keyword baanBshell ims.eof
syn keyword baanBshell ims.error
syn keyword baanBshell ims.close
syn keyword baanBshell ims.flush
syn keyword baanBshell ims.rewind
syn keyword baanBshell ims.tell
syn keyword baanBshell ims.read
syn keyword baanBshell ims.write
syn match   baanBshell "\<ims.getc\$"
syn match   baanBshell "\<ims.putc\$"
syn keyword baanBshell ims.skip
syn keyword baanBshell ims.seek
syn keyword baanBshell ims.gets
syn keyword baanBshell ims.puts
syn keyword baanBshell ims.spool.line
syn keyword baanBshell ims.r.long
syn keyword baanBshell ims.w.long
syn keyword baanBshell ims.r.short
syn keyword baanBshell ims.w.short
syn keyword baanBshell ims.openfba
syn keyword baanBshell ims.openvba
syn keyword baanBshell ims.getproperties
syn keyword baanBshell ims.setvbaproperties
syn keyword baanBshell db.get.physical.compnr
syn keyword baanBshell db.bind
syn keyword baanBshell db.unbind
syn keyword baanBshell db.error
syn keyword baanBshell db.error.message
syn keyword baanBshell db.detail.error
syn keyword baanBshell db.first
syn keyword baanBshell db.last
syn keyword baanBshell db.next
syn keyword baanBshell db.prev
syn keyword baanBshell db.gt
syn keyword baanBshell db.ge
syn keyword baanBshell db.eq
syn keyword baanBshell db.curr
syn keyword baanBshell db.lt
syn keyword baanBshell db.le
syn keyword baanBshell db.delete
syn keyword baanBshell db.insert
syn keyword baanBshell db.update
syn keyword baanBshell db.check.row.changed
syn keyword baanBshell db.check.row.domains
syn keyword baanBshell db.check.restricted
syn keyword baanBshell db.ref.handle.mode
syn keyword baanBshell db.set.to.default
syn keyword baanBshell db.create.index
syn keyword baanBshell db.drop.index
syn keyword baanBshell db.change.order
syn keyword baanBshell db.create.table
syn keyword baanBshell db.clear.table
syn keyword baanBshell db.drop.table
syn keyword baanBshell db.lock.table
syn keyword baanBshell db.table.begin.import
syn keyword baanBshell db.table.end.import
syn keyword baanBshell db.table.update.statistics
syn keyword baanBshell db.indexinfo
syn keyword baanBshell db.nr.indices
syn keyword baanBshell db.nr.rows
syn keyword baanBshell db.row.length
syn keyword baanBshell db.transaction.is.on
syn keyword baanBshell commit.transaction
syn keyword baanBshell set.transaction.readonly
syn keyword baanBshell abort.transaction
syn keyword baanBshell db.record.to.columns
syn keyword baanBshell db.columns.to.record
syn keyword baanBshell db.schedule
syn keyword baanBshell db.permission
syn keyword baanBshell db.set.notransaction
syn keyword baanBshell db.set.transaction
syn keyword baanBshell db.set.child.transaction
syn keyword baanBshell get.db.permission
syn keyword baanBshell get.session.permission
syn keyword baanBshell ams.control
syn keyword baanBshell db.get.old.row
syn keyword baanBshell db.max.retry
syn keyword baanBshell sql.parse
syn keyword baanBshell sql.select.bind
syn keyword baanBshell sql.where.bind
syn keyword baanBshell sql.bind.input
syn keyword baanBshell sql.exec
syn keyword baanBshell sql.fetch
syn keyword baanBshell sql.break
syn keyword baanBshell sql.close
syn keyword baanBshell sql.error
syn keyword baanBshell sql.set.rds.full
syn keyword baanBshell rdi.table
syn keyword baanBshell rdi.index
syn keyword baanBshell rdi.column
syn keyword baanBshell rdi.table.column
syn keyword baanBshell rdi.reference
syn keyword baanBshell rdi.column.combined
syn keyword baanBshell rdi.domain
syn keyword baanBshell rdi.domain.long
syn keyword baanBshell rdi.domain.double
syn keyword baanBshell rdi.domain.string
syn keyword baanBshell rdi.domain.raw
syn keyword baanBshell rdi.domain.enum
syn keyword baanBshell rdi.domain.enum.value
syn keyword baanBshell rdi.domain.combined
syn keyword baanBshell rdi.session.info
syn keyword baanBshell rdi.session.dlls
syn keyword baanBshell rdi.ref.route
syn keyword baanBshell rdi.session.subject.info
syn keyword baanBshell rdi.session.subject
syn keyword baanBshell rdi.session.key
syn keyword baanBshell rdi.session.form
syn keyword baanBshell rdi.session.textfield
syn keyword baanBshell rdi.first.day.of.week
syn match   baanBshell "\<rdi.date.input.format\$"
syn keyword baanBshell rdi.format.digits
syn keyword baanBshell rdi.permission
syn keyword baanBshell rdi.option.info
syn keyword baanBshell rdi.option.short
syn keyword baanBshell rdi.vrc.path
syn keyword baanBshell rdi.audit.hosts
syn keyword baanBshell rdi.table.sequence
syn keyword baanBshell iget.fld.attr
syn keyword baanBshell sget.fld.attr
syn keyword baanBshell iget.frm.attr
syn keyword baanBshell sget.frm.attr
syn keyword baanBshell iput.fld.attr
syn keyword baanBshell sput.fld.attr
syn keyword baanBshell iput.frm.attr
syn keyword baanBshell put.var.to.field
syn keyword baanBshell get.var.from.field
syn match   baanBshell "\<rdi.etoc\$"
syn keyword baanBshell rdi.ctoe
syn keyword baanBshell get.cust.code
syn keyword baanBshell get.lic.no
syn keyword baanBshell get.cust.name
syn keyword baanBshell get.mach.id
syn keyword baanBshell fsum
syn match   baanBshell "\<get.resource\$"
syn keyword baanBshell qss.sort
syn keyword baanBshell qss.search
syn keyword baanBshell load_dll
syn keyword baanBshell exec_dll_function
syn keyword baanBshell get_function
syn keyword baanBshell exec_function
syn keyword baanBshell parse_and_exec_function
syn keyword baanBshell pty.open
syn keyword baanBshell pty.close
syn keyword baanBshell pty.read
syn keyword baanBshell pty.write
syn keyword baanBshell pty.winsize
syn keyword baanBshell pty.winsize.ok
syn keyword baanBshell pty.ok
syn keyword baanBshell user.exists
syn keyword baanBshell group.exists
syn keyword baanBshell is.administrator
syn keyword baanBshell mtime
syn keyword baanBshell getcwd
syn keyword baanBshell set.strip.mode
syn keyword baanBshell set.symbol.strip.mode
syn keyword baanBshell nullify.symbol
syn keyword baanBshell bshell.pid
syn keyword baanBshell create.new.symbol
syn keyword baanBshell push.by.name
syn keyword baanBshell array.info
syn keyword baanBshell array.to.string
syn keyword baanBshell many.to.string
syn keyword baanBshell ostype
syn keyword baanBshell utc.num
syn keyword baanBshell set.time.zone
syn keyword baanBshell get.time.zone
syn keyword baanBshell run.prog
syn keyword baanBshell run.baan.prog
syn keyword baanBshell get.status.text
syn keyword baanBshell dir.is.available
syn keyword baanBshell dir.set.server
syn keyword baanBshell dir.get.last.error
syn keyword baanBshell dir.init.object
syn keyword baanBshell dir.free.object
syn keyword baanBshell dir.clear.object
syn keyword baanBshell dir.create.object
syn keyword baanBshell dir.get.object
syn keyword baanBshell dir.remove.object
syn keyword baanBshell dir.update.object
syn keyword baanBshell dir.init.search
syn keyword baanBshell dir.free.search
syn keyword baanBshell dir.execute.search
syn keyword baanBshell dir.abandon.search
syn keyword baanBshell dir.get.first.row
syn keyword baanBshell dir.get.next.row
syn keyword baanBshell dir.get.prev.row
syn keyword baanBshell dir.get.element.count
syn keyword baanBshell dir.get.element.name
syn keyword baanBshell dir.get.element.type
syn keyword baanBshell dir.get.value.count
syn keyword baanBshell dir.add.element
syn keyword baanBshell dir.add.element.int
syn keyword baanBshell dir.add.element.str
syn keyword baanBshell dir.add.element.time
syn keyword baanBshell dir.get.value.int
syn keyword baanBshell dir.get.value.str
syn keyword baanBshell dir.get.value.time
syn keyword baanBshell dir.get.value.named.str
syn keyword baanBshell dir.set.value.int
syn keyword baanBshell dir.set.value.str
syn keyword baanBshell dir.set.value.time
syn keyword baanBshell dir.set.value.named.str
syn keyword baanBshell dir.remove.element
syn keyword baanBshell dir.find.element
syn keyword baanBshell utc.add
syn keyword baanBshell type.define
syn keyword baanBshell type.free
syn keyword baanBshell type.get.fieldnumber
syn keyword baanBshell container.create
syn keyword baanBshell container.clear
syn keyword baanBshell container.resize
syn keyword baanBshell container.set.nfields
syn keyword baanBshell container.set.ifields
syn keyword baanBshell container.set.fields
syn keyword baanBshell container.get.nfields
syn keyword baanBshell container.get.ifields
syn keyword baanBshell container.get.fields
syn keyword baanBshell container.actual.size
syn keyword baanBshell container.get.actual.size
syn keyword baanBshell container.set.actual.size
syn keyword baanBshell container.size
syn keyword baanBshell container.free
syn keyword baanBshell xma.process_next_event
syn keyword baanBshell xma.init_instance
syn keyword baanBshell fini.service
syn keyword baanBshell corba.boa.process_next_event
syn keyword baanBshell corba.boa.set_impl
syn keyword baanBshell corba.available
syn keyword baanBshell corba.orb.string_to_object
syn keyword baanBshell corba.orb.release
syn keyword baanBshell corba.request.invoke
syn keyword baanBshell corba.request.send
syn keyword baanBshell corba.request.get_response
syn keyword baanBshell corba.request.object
syn keyword baanBshell corba.request.delete
syn keyword baanBshell set.debug.cpu.opts
syn keyword baanBshell get.debug.cpu.opts
syn match   baanBshell "\<bsh.mesg\$"
syn keyword baanBshell toggle.cpu
syn keyword baanBshell cpu.is.debug
syn keyword baanBshell set.profprint
syn keyword baanBshell art.init
syn keyword baanBshell art.define.transaction.class
syn keyword baanBshell art.begin.transaction
syn keyword baanBshell art.update.transaction
syn keyword baanBshell art.end.transaction
syn keyword baanBshell java.new.queue
syn keyword baanBshell java.destroy.queue
syn keyword baanBshell java.install.listener
syn keyword baanBshell java.uninstall.listener
syn keyword baanBshell java.put.bucket
syn keyword baanBshell java.get.bucket
syn keyword baanBshell java.lookup.queue
syn keyword baanBshell java.execute.static.method
syn keyword baanBshell java.execute.static.method.sync
syn keyword baanBshell java.execute.static.method.async
syn keyword baanBshell xml.write
syn keyword baanBshell xml.read
syn keyword baanBshell xml.newnode
syn keyword baanBshell xml.unlinknode
syn keyword baanBshell xml.deletenode
syn keyword baanBshell xml.appendchildnode
syn keyword baanBshell xml.addnode
syn keyword baanBshell xml.insertnode
syn keyword baanBshell xml.duplicatenode
syn keyword baanBshell xml.setnodeproperties
syn keyword baanBshell xml.getnodeproperties
syn keyword baanBshell xml.deletenodeproperties
syn keyword baanBshell xml.findfirstnode
syn keyword baanBshell xml.findnodes
syn keyword baanBshell xml.findsetofsiblingnodes
syn keyword baanBshell xmlcontainsvalidcharactersonly
syn keyword baanBshell xmlwrite
syn keyword baanBshell xmlwritepretty
syn keyword baanBshell xmlwritetostring
syn keyword baanBshell xmlwriteprettytostring
syn keyword baanBshell xmlread
syn keyword baanBshell xmlreadfromstring
syn keyword baanBshell xmlnewnode
syn keyword baanBshell xmlnewdataelement
syn keyword baanBshell xmlrewritedataelement
syn keyword baanBshell xmlgetdataelement
syn keyword baanBshell xmlsetname
syn keyword baanBshell xmlsetdata
syn keyword baanBshell xmlsetattribute
syn keyword baanBshell xmldeleteattribute
syn keyword baanBshell xmlgetname
syn keyword baanBshell xmlgetdata
syn keyword baanBshell xmlgettype
syn keyword baanBshell xmlgetparent
syn keyword baanBshell xmlgetfirstchild
syn keyword baanBshell xmlgetlastchild
syn keyword baanBshell xmlgetrightsibling
syn keyword baanBshell xmlgetleftsibling
syn keyword baanBshell xmlgetnumattributes
syn keyword baanBshell xmlgetnumsiblings
syn keyword baanBshell xmlgetnumleftsiblings
syn keyword baanBshell xmlgetnumrightsiblings
syn keyword baanBshell xmlgetnumchilds
syn keyword baanBshell xmlgetattribute
syn keyword baanBshell xmlgetattributename
syn keyword baanBshell xmldelete
syn keyword baanBshell xmlunlink
syn keyword baanBshell xmlinsert
syn keyword baanBshell xmladd
syn keyword baanBshell xmlappend
syn keyword baanBshell xmlinsertinchilds
syn keyword baanBshell xmlappendtochilds
syn keyword baanBshell xmlduplicate
syn keyword baanBshell xmlduplicateandinsert
syn keyword baanBshell xmlduplicateandadd
syn keyword baanBshell xmlduplicateandappend
syn keyword baanBshell xmlduplicateandinsertinchilds
syn keyword baanBshell xmlduplicateandappendtochilds
syn keyword baanBshell xmlduplicatetoprocess
syn keyword baanBshell xmlfindfirst
syn keyword baanBshell xmlfindfirstmatch
syn keyword baanBshell xmlfindmatch
syn keyword baanBshell xmlfindnodes
syn keyword baanBshell xmlfindsetofsiblingnodes
syn keyword baanBshell xmlexecutesql
syn keyword baanBshell xmlexecutedllmethod
syn keyword baanBshell xmldllsignature
syn keyword baanBshell xmlnodetosymbol
syn keyword baanBshell xmlputstringtolog
syn keyword baanBshell xmlgetlog
syn keyword baanBshell xmlcleanuplog
syn keyword baanBshell xmlinstallloglistener
syn keyword baanBshell xmldeinstallloglistener
syn keyword baanBshell xmlinitsql
syn keyword baanBshell xmlrefreshsqlcache
syn keyword baanBshell xmlstatisticssqlcache
syn keyword baanBshell bclm.dump
syn keyword baanBshell bclm.init
syn keyword baanBshell bclm.requestlicense
syn keyword baanBshell bclm.confirmlicense
syn keyword baanBshell bclm.releaselicense
syn keyword baanBshell bclm.customerdata
syn keyword baanBshell bclm.enabledemoperiod
syn keyword baanBshell bclm.productidlicensed
syn keyword baanBshell bclm.set.desktop

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link baanConditional	Conditional
hi def link baan3gl		Statement
hi def link baan3glpre		PreProc
hi def link baan4gl		Statement
hi def link baan4glh		Statement
hi def link baansql		Statement
hi def link baansqlh		Statement
hi def link baanDalHook		Statement
hi def link baanNumber		Number
hi def link baanString		String
hi def link baanOpenStringError	Error
hi def link baanConstant		Constant
hi def link baanComment		Comment
hi def link baanCommenth		Comment
hi def link baanUncommented	Comment
hi def link baanDLLUsage		Comment
hi def link baanFunUsage		Comment
hi def link baanIdentifier		Normal
hi def link baanBshell		Function
hi def link baanType		Type
hi def link baanStorageClass	StorageClass


let b:current_syntax = "baan"

" vim: ts=8
PK�j�Z�J�vim80/syntax/config.vimnu�[���" Vim syntax file
" Language:		configure.in script: M4 with sh
" Former Maintainer:	Christian Hammesr <ch@lathspell.westend.com>
" Last Change:	2018 Feb 03
" 				(patch from Yngve Inntjore Levinsen to detect AC_MSG)
" 				(patch from Khym Chanur to add @Spell)
" 				(patch from James McCoy to fix paren matching)

" Well, I actually even do not know much about m4. This explains why there
" is probably very much missing here, yet !
" But I missed good highlighting when editing my GNU autoconf/automake
" script, so I wrote this quick and dirty patch.


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" define the config syntax
syn match   configdelimiter "[()\[\];,]"
syn match   configoperator  "[=|&\*\+\<\>]"
syn match   configcomment   "\(dnl.*\)\|\(#.*\)" contains=configDnl,@Spell
syn match   configfunction  "\<[A-Z_][A-Z0-9_]*\>"
syn match   confignumber    "[-+]\=\<\d\+\(\.\d*\)\=\>"
syn keyword configDnl   	dnl contained
syn keyword configkeyword   if then else fi test for in do done
syn keyword configspecial   cat rm eval

" This shortens the script, see syn-ext-match..
syn region  configstring    start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell

" Anything inside AC_MSG_TYPE([...])  and AC_MSG_TYPE(...) is a string.
syn region  configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
syn region  configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link configdelimiter Delimiter
hi def link configoperator  Operator
hi def link configcomment   Comment
hi def link configDnl  	 Comment
hi def link configfunction  Function
hi def link confignumber    Number
hi def link configkeyword   Keyword
hi def link configspecial   Special
hi def link configstring    String
hi def link configmsg       String


let b:current_syntax = "config"

" vim: ts=4
PK�j�Z������vim80/syntax/autoit.vimnu�[���" Vim syntax file
"
" Language:	AutoIt v3 (http://www.autoitscript.com/autoit3/)
" Maintainer:	Jared Breland <jbreland@legroom.net>
" Authored By:	Riccardo Casini <ric@libero.it>
" Script URL:	http://www.vim.org/scripts/script.php?script_id=1239
" ChangeLog:	Please visit the script URL for detailed change information

" Quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

let b:current_syntax = "autoit"

" AutoIt is not case dependent
syn case ignore

" Definitions for AutoIt reserved keywords
syn keyword autoitKeyword Default False True
syn keyword autoitKeyword Const Dim Global Local ReDim
syn keyword autoitKeyword If Else ElseIf Then EndIf
syn keyword autoitKeyword Select Switch Case EndSelect EndSwitch
syn keyword autoitKeyword Enum For In To Step Next
syn keyword autoitKeyword With While EndWith Wend Do Until
syn keyword autoitKeyword ContinueCase ContinueLoop ExitLoop Exit

" inside script inclusion and global options
syn match autoitIncluded display contained "<[^>]*>"
syn match autoitInclude	display "^\s*#\s*include\>\s*["<]"
	\ contains=autoitIncluded,autoitString
syn match autoitInclude "^\s*#include-once\>"
syn match autoitInclude "^\s*#NoTrayIcon\>"
syn match autoitInclude "^\s*#RequireAdmin\>"

" user-defined functions
syn keyword autoitKeyword Func ByRef EndFunc Return OnAutoItStart OnAutoItExit

" built-in functions
" environment management
syn keyword autoitFunction ClipGet ClipPut EnvGet EnvSet EnvUpdate MemGetStats
" file, directory, and disk management
syn keyword autoitFunction ConsoleRead ConsoleWrite ConsoleWriteError
syn keyword autoitFunction DirCopy DirCreate DirGetSize DirMove DirRemove
syn keyword autoitFunction DriveGetDrive DriveGetFileSystem DriveGetLabel
	\ DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet
	\ DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus
syn keyword autoitFunction FileChangeDir FileClose FileCopy FileCreateNTFSLink
	\ FileCreateShortcut FileDelete FileExists FileFindFirstFile
	\ FileFindNextFile FileGetAttrib FileGetLongName FileGetShortcut
	\ FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall
	\ FileMove FileOpen FileOpenDialog FileRead FileReadLine FileRecycle
	\ FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib
	\ FileSetTime FileWrite FileWriteLine
syn keyword autoitFunction IniDelete IniRead IniReadSection IniReadSectionNames
	\ IniRenameSection IniWrite IniWriteSection
syn keyword autoitFunction StderrRead StdinWrite StdoutRead
" graphic and sound
syn keyword autoitFunction Beep PixelChecksum PixelGetColor PixelSearch
	\ SoundPlay SoundSetWaveVolume
" gui reference
syn keyword autoitFunction GUICreate GUIDelete GUICtrlGetHandle GUICtrlGetState
	\ GUICtrlRead GUICtrlRecvMsg GUICtrlSendMsg GUICtrlSendToDummy
	\ GUIGetCursorInfo GUIGetMsg GUIRegisterMsg GUIStartGroup GUISwitch
syn keyword autoitFunction GUICtrlCreateAvi GUICtrlCreateButton
	\ GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu
	\ GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit
	\ GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon
	\ GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList
	\ GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu
	\ GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj
	\ GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio
	\ GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem
	\ GUICtrlCreateTreeView GUICtrlCreateTreeViewItem
	\ GUICtrlCreateUpDown GUICtrlDelete
syn keyword autoitFunction GUICtrlRegisterListViewSort GUICtrlSetBkColor
	\ GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetFont
	\ GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent
	\ GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle
	\ GUICtrlSetTip
syn keyword autoitFunction GUISetBkColor GUISetCoord GUISetCursor GUISetFont
	\ GUISetHelp GUISetIcon GUISetOnEvent GUISetState
" keyboard control
syn keyword autoitFunction HotKeySet Send
" math
syn keyword autoitFunction Abs ACos ASin ATan BitAND BitNOT BitOR BitRotate
	\ BitShift BitXOR Cos Ceiling Exp Floor Log Mod Random Round Sin Sqrt
	\ SRandom Tan
" message boxes and dialogs
syn keyword autoitFunction InputBox MsgBox ProgressOff ProgressOn ProgressSet
	\ SplashImageOn SplashOff SplashTextOn ToolTip
" miscellaneous
syn keyword autoitFunction AdlibDisable AdlibEnable AutoItSetOption
	\ AutoItWinGetTitle AutoItWinSetTitle BlockInput Break Call CDTray
	\ Execute Opt SetError SetExtended
" mouse control
syn keyword autoitFunction MouseClick MouseClickDrag MouseDown MouseGetCursor
	\ MouseGetPos MouseMove MouseUp MouseWheel
" network
syn keyword autoitFunction FtpSetProxy HttpSetProxy InetGet InetGetSize Ping
	\ TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIp TCPRecv
	\ TCPSend TCPShutDown TCPStartup UDPBind UDPCloseSocket UDPOpen UDPRecv
	\ UDPSend UDPShutdown UDPStartup
" obj/com reference
syn keyword autoitFunction ObjCreate ObjEvent ObjGet ObjName
" process management
syn keyword autoitFunction DllCall DllClose DllOpen DllStructCreate
	\ DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData
	\ ProcessClose ProcessExists ProcessSetPriority ProcessList ProcessWait
	\ ProcessWaitClose Run RunAsSet RunWait ShellExecute ShellExecuteWait
	\ Shutdown
	" removed from 3.2.0 docs - PluginClose PluginOpen
" registry management
syn keyword autoitFunction RegDelete RegEnumKey RegEnumVal RegRead RegWrite
" string management
syn keyword autoitFunction StringAddCR StringFormat StringInStr StringIsAlNum
	\ StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt
	\ StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft
	\ StringLen StringLower StringMid StringRegExp StringRegExpReplace
	\ StringReplace StringRight StringSplit StringStripCR StringStripWS
	\ StringTrimLeft StringTrimRight StringUpper
" timer and delay
syn keyword autoitFunction Sleep TimerInit TimerDiff
" tray
syn keyword autoitFunction TrayCreateItem TrayCreateMenu TrayItemDelete
	\ TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent
	\ TrayItemSetState TrayItemSetText TrayGetMsg TraySetClick TraySetIcon
	\ TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip
" variables and conversions
syn keyword autoitFunction Asc Assign Binary Chr Dec Eval Hex HWnd Int IsAdmin
	\ IsArray IsBinaryString IsBool IsDeclared IsDllStruct IsFloat IsHWnd
	\ IsInt IsKeyword IsNumber IsObj IsString Number String UBound
" window management
syn keyword autoitFunction WinActivate WinActive WinClose WinExists WinFlash
	\ WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos
	\ WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList
	\ WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove
	\ WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive
	\ WinWaitClose WinWaitNotActive
syn keyword autoitFunction ControlClick ControlCommand ControlDisable
	\ ControlEnable ControlFocus ControlGetFocus ControlGetHandle
	\ ControlGetPos ControlGetText ControlHide ControlListView ControlMove
	\ ControlSend ControlSetText ControlShow StatusBarGetText

" user defined functions
" array
syn keyword autoitFunction _ArrayAdd _ArrayBinarySearch _ArrayCreate
	\ _ArrayDelete _ArrayDisplay _ArrayInsert _ArrayMax _ArrayMaxIndex
	\ _ArrayMin _ArrayMinIndex _ArrayPop _ArrayPush _ArrayReverse
	\ _ArraySearch _ArraySort _ArraySwap _ArrayToClip _ArrayToString
	\ _ArrayTrim
" color
syn keyword autoitFunction _ColorgetBlue _ColorGetGreen _ColorGetRed
" date
syn keyword autoitFunction _DateAdd _DateDayOfWeek _DateDaysInMonth _DateDiff
	\ _DateIsLeapYear _DateIsValid _DateTimeFormat _DateTimeSplit
	\ _DateToDayOfWeek _ToDayOfWeekISO _DateToDayValue _DayValueToDate _Now
	\ _NowCalc _NowCalcDate _NowDate _NowTime _SetDate _SetTime _TicksToTime
	\ _TimeToTicks _WeekNumberISO
" file
syn keyword autoitFunction _FileCountLines _FileCreate _FileListToArray
	\ _FilePrint _FileReadToArray _FileWriteFromArray _FileWriteLog
	\ _FileWriteToLine _PathFull _PathMake _PathSplit _ReplaceStringInFile
	\ _TempFile
" guicombo
syn keyword autoitFunction _GUICtrlComboAddDir _GUICtrlComboAddString
	\ _GUICtrlComboAutoComplete _GUICtrlComboDeleteString
	\ _GUICtrlComboFindString _GUICtrlComboGetCount _GUICtrlComboGetCurSel
	\ _GUICtrlComboGetDroppedControlRect _GUICtrlComboGetDroppedState
	\ _GUICtrlComboGetDroppedWidth _GUICtrlComboGetEditSel
	\ _GUICtrlComboGetExtendedUI _GUICtrlComboGetHorizontalExtent
	\ _GUICtrlComboGetItemHeight _GUICtrlComboGetLBText
	\ _GUICtrlComboGetLBTextLen _GUICtrlComboGetList _GUICtrlComboGetLocale
	\ _GUICtrlComboGetMinVisible _GUICtrlComboGetTopIndex
	\ _GUICtrlComboInitStorage _GUICtrlComboInsertString
	\ _GUICtrlComboLimitText _GUICtrlComboResetContent
	\ _GUICtrlComboSelectString _GUICtrlComboSetCurSel
	\ _GUICtrlComboSetDroppedWidth _GUICtrlComboSetEditSel
	\ _GUICtrlComboSetExtendedUI _GUICtrlComboSetHorizontalExtent
	\ _GUICtrlComboSetItemHeight _GUICtrlComboSetMinVisible
	\ _GUICtrlComboSetTopIndex _GUICtrlComboShowDropDown
" guiedit
syn keyword autoitFunction _GUICtrlEditCanUndo _GUICtrlEditEmptyUndoBuffer
	\ _GuiCtrlEditFind _GUICtrlEditGetFirstVisibleLine _GUICtrlEditGetLine
	\ _GUICtrlEditGetLineCount _GUICtrlEditGetModify _GUICtrlEditGetRect
	\ _GUICtrlEditGetSel _GUICtrlEditLineFromChar _GUICtrlEditLineIndex
	\ _GUICtrlEditLineLength _GUICtrlEditLineScroll _GUICtrlEditReplaceSel
	\ _GUICtrlEditScroll _GUICtrlEditSetModify _GUICtrlEditSetRect
	\ _GUICtrlEditSetSel _GUICtrlEditUndo
" guiipaddress
syn keyword autoitFunction _GUICtrlIpAddressClear _GUICtrlIpAddressCreate
	\ _GUICtrlIpAddressDelete _GUICtrlIpAddressGet _GUICtrlIpAddressIsBlank
	\ _GUICtrlIpAddressSet _GUICtrlIpAddressSetFocus
	\ _GUICtrlIpAddressSetFont
	\ _GUICtrlIpAddressSetRange _GUICtrlIpAddressShowHide
" guilist
syn keyword autoitFunction _GUICtrlListAddDir _GUICtrlListAddItem
	\ _GUICtrlListClear
	\ _GUICtrlListCount _GUICtrlListDeleteItem _GUICtrlListFindString
	\ _GUICtrlListGetAnchorIndex _GUICtrlListGetCaretIndex
	\ _GUICtrlListGetHorizontalExtent _GUICtrlListGetInfo
	\ _GUICtrlListGetItemRect _GUICtrlListGetLocale _GUICtrlListGetSelCount
	\ _GUICtrlListGetSelItems _GUICtrlListGetSelItemsText
	\ _GUICtrlListGetSelState _GUICtrlListGetText _GUICtrlListGetTextLen
	\ _GUICtrlListGetTopIndex _GUICtrlListInsertItem
	\ _GUICtrlListReplaceString _GUICtrlListSelectedIndex
	\ _GUICtrlListSelectIndex _GUICtrlListSelectString
	\ _GUICtrlListSelItemRange _GUICtrlListSelItemRangeEx
	\ _GUICtrlListSetAnchorIndex _GUICtrlListSetCaretIndex
	\ _GUICtrlListSetHorizontalExtent _GUICtrlListSetLocale
	\ _GUICtrlListSetSel _GUICtrlListSetTopIndex _GUICtrlListSort
	\ _GUICtrlListSwapString
" guilistview
syn keyword autoitFunction _GUICtrlListViewCopyItems
	\ _GUICtrlListViewDeleteAllItems _GUICtrlListViewDeleteColumn
	\ _GUICtrlListViewDeleteItem _GUICtrlListViewDeleteItemsSelected
	\ _GUICtrlListViewEnsureVisible _GUICtrlListViewFindItem
	\ _GUICtrlListViewGetBackColor _GUICtrlListViewGetCallBackMask
	\ _GUICtrlListViewGetCheckedState _GUICtrlListViewGetColumnOrder
	\ _GUICtrlListViewGetColumnWidth _GUICtrlListViewGetCounterPage
	\ _GUICtrlListViewGetCurSel _GUICtrlListViewGetExtendedListViewStyle
	\ _GUICtrlListViewGetHeader _GUICtrlListViewGetHotCursor
	\ _GUICtrlListViewGetHotItem _GUICtrlListViewGetHoverTime
	\ _GUICtrlListViewGetItemCount _GUICtrlListViewGetItemText
	\ _GUICtrlListViewGetItemTextArray _GUICtrlListViewGetNextItem
	\ _GUICtrlListViewGetSelectedCount _GUICtrlListViewGetSelectedIndices
	\ _GUICtrlListViewGetSubItemsCount _GUICtrlListViewGetTopIndex
	\ _GUICtrlListViewGetUnicodeFormat _GUICtrlListViewHideColumn
	\ _GUICtrlListViewInsertColumn _GUICtrlListViewInsertItem
	\ _GUICtrlListViewJustifyColumn _GUICtrlListViewScroll
	\ _GUICtrlListViewSetCheckState _GUICtrlListViewSetColumnHeaderText
	\ _GUICtrlListViewSetColumnOrder _GUICtrlListViewSetColumnWidth
	\ _GUICtrlListViewSetHotItem _GUICtrlListViewSetHoverTime
	\ _GUICtrlListViewSetItemCount _GUICtrlListViewSetItemSelState
	\ _GUICtrlListViewSetItemText _GUICtrlListViewSort
" guimonthcal
syn keyword autoitFunction _GUICtrlMonthCalGet1stDOW _GUICtrlMonthCalGetColor
	\ _GUICtrlMonthCalGetDelta _GUICtrlMonthCalGetMaxSelCount
	\ _GUICtrlMonthCalGetMaxTodayWidth _GUICtrlMonthCalGetMinReqRect
	\ _GUICtrlMonthCalSet1stDOW _GUICtrlMonthCalSetColor
	\ _GUICtrlMonthCalSetDelta _GUICtrlMonthCalSetMaxSelCount
" guislider
syn keyword autoitFunction _GUICtrlSliderClearTics _GUICtrlSliderGetLineSize
	\ _GUICtrlSliderGetNumTics _GUICtrlSliderGetPageSize
	\ _GUICtrlSliderGetPos _GUICtrlSliderGetRangeMax
	\ _GUICtrlSliderGetRangeMin _GUICtrlSliderSetLineSize
	\ _GUICtrlSliderSetPageSize _GUICtrlSliderSetPos
	\ _GUICtrlSliderSetTicFreq
" guistatusbar
syn keyword autoitFunction _GuiCtrlStatusBarCreate
	\ _GUICtrlStatusBarCreateProgress _GUICtrlStatusBarDelete
	\ _GuiCtrlStatusBarGetBorders _GuiCtrlStatusBarGetIcon
	\ _GuiCtrlStatusBarGetParts _GuiCtrlStatusBarGetRect
	\ _GuiCtrlStatusBarGetText _GuiCtrlStatusBarGetTextLength
	\ _GuiCtrlStatusBarGetTip _GuiCtrlStatusBarGetUnicode
	\ _GUICtrlStatusBarIsSimple _GuiCtrlStatusBarResize
	\ _GuiCtrlStatusBarSetBKColor _GuiCtrlStatusBarSetIcon
	\ _GuiCtrlStatusBarSetMinHeight _GUICtrlStatusBarSetParts
	\ _GuiCtrlStatusBarSetSimple _GuiCtrlStatusBarSetText
	\ _GuiCtrlStatusBarSetTip _GuiCtrlStatusBarSetUnicode
	\ _GUICtrlStatusBarShowHide 
" guitab
syn keyword autoitFunction _GUICtrlTabDeleteAllItems _GUICtrlTabDeleteItem
	\ _GUICtrlTabDeselectAll _GUICtrlTabGetCurFocus _GUICtrlTabGetCurSel
	\ _GUICtrlTabGetExtendedStyle _GUICtrlTabGetItemCount
	\ _GUICtrlTabGetItemRect _GUICtrlTabGetRowCount
	\ _GUICtrlTabGetUnicodeFormat _GUICtrlTabHighlightItem
	\ _GUICtrlTabSetCurFocus _GUICtrlTabSetCurSel
	\ _GUICtrlTabSetMinTabWidth _GUICtrlTabSetUnicodeFormat
" guitreeview
syn keyword autoitFunction _GUICtrlTreeViewDeleteAllItems
	\ _GUICtrlTreeViewDeleteItem _GUICtrlTreeViewExpand
	\ _GUICtrlTreeViewGetBkColor _GUICtrlTreeViewGetCount
	\ _GUICtrlTreeViewGetIndent _GUICtrlTreeViewGetLineColor
	\ _GUICtrlTreeViewGetParentHandle _GUICtrlTreeViewGetParentID
	\ _GUICtrlTreeViewGetState _GUICtrlTreeViewGetText
	\ _GUICtrlTreeViewGetTextColor _GUICtrlTreeViewItemGetTree
	\ _GUICtrlTreeViewInsertItem _GUICtrlTreeViewSetBkColor
	\ _GUICtrlTreeViewSetIcon _GUICtrlTreeViewSetIndent
	\ _GUICtrlTreeViewSetLineColor GUICtrlTreeViewSetState
	\ _GUICtrlTreeViewSetText _GUICtrlTreeViewSetTextColor
	\ _GUICtrlTreeViewSort
" ie
syn keyword autoitFunction _IE_Example _IE_Introduction _IE_VersionInfo
	\ _IEAction _IEAttach _IEBodyReadHTML _IEBodyReadText _IEBodyWriteHTML
	\ _IECreate _IECreateEmbedded _IEDocGetObj _IEDocInsertHTML
	\ _IEDocInsertText _IEDocReadHTML _IEDocWriteHTML
	\ _IEErrorHandlerDeRegister _IEErrorHandlerRegister _IEErrorNotify
	\ _IEFormElementCheckboxSelect _IEFormElementGetCollection
	\ _IEFormElementGetObjByName _IEFormElementGetValue
	\ _IEFormElementOptionSelect _IEFormElementRadioSelect
	\ _IEFormElementSetValue _IEFormGetCollection _IEFormGetObjByName
	\ _IEFormImageClick _IEFormReset _IEFormSubmit _IEFrameGetCollection
	\ _IEFrameGetObjByName _IEGetObjByName _IEHeadInsertEventScript
	\ _IEImgClick _IEImgGetCollection _IEIsFrameSet _IELinkClickByIndex
	\ _IELinkClickByText _IELinkGetCollection _IELoadWait _IELoadWaitTimeout
	\ _IENavigate _IEPropertyGet _IEPropertySet _IEQuit
	\ _IETableGetCollection _IETableWriteToArray _IETagNameAllGetCollection
	\  _IETagNameGetCollection
" inet
syn keyword autoitFunction _GetIP _INetExplorerCapable _INetGetSource _INetMail
	\ _INetSmtpMail _TCPIpToName
" math
syn keyword autoitFunction _Degree _MathCheckDiv _Max _Min _Radian
" miscellaneous
syn keyword autoitFunction _ChooseColor _ChooseFont _ClipPutFile _Iif
	\ _IsPressed _MouseTrap _SendMessage _Singleton
" process
syn keyword autoitFunction _ProcessGetName _ProcessGetPriority _RunDOS
" sound
syn keyword autoitFunction _SoundClose _SoundLength _SoundOpen _SoundPause
	\ _SoundPlay _SoundPos _SoundResume _SoundSeek _SoundStatus _SoundStop
" sqlite
syn keyword autoitFunction _SQLite_Changes _SQLite_Close
	\ _SQLite_Display2DResult _SQLite_Encode _SQLite_ErrCode _SQLite_ErrMsg
	\ _SQLite_Escape _SQLite_Exec _SQLite_FetchData _SQLite_FetchNames
	\ _SQLite_GetTable _SQLite_GetTable2D _SQLite_LastInsertRowID
	\ _SQLite_LibVersion _SQLite_Open _SQLite_Query _SQLite_QueryFinalize
	\ _SQLite_QueryReset _SQLite_QuerySingleRow _SQLite_SaveMode
	\ _SQLite_SetTimeout _SQLite_Shutdown _SQLite_SQLiteExe _SQLite_Startup
	\ _SQLite_TotalChanges
" string
syn keyword autoitFunction _HexToString _StringAddComma _StringBetween
	\ _StringEncrypt _StringInsert _StringProper _StringRepeat
	\ _StringReverse _StringToHex
" visa
syn keyword autoitFunction _viClose _viExecCommand _viFindGpib _viGpibBusReset
	\ _viGTL _viOpen _viSetAttribute _viSetTimeout

" read-only macros
syn match autoitBuiltin "@AppData\(Common\)\=Dir"
syn match autoitBuiltin "@AutoItExe"
syn match autoitBuiltin "@AutoItPID"
syn match autoitBuiltin "@AutoItVersion"
syn match autoitBuiltin "@COM_EventObj"
syn match autoitBuiltin "@CommonFilesDir"
syn match autoitBuiltin "@Compiled"
syn match autoitBuiltin "@ComputerName"
syn match autoitBuiltin "@ComSpec"
syn match autoitBuiltin "@CR\(LF\)\="
syn match autoitBuiltin "@Desktop\(Common\)\=Dir"
syn match autoitBuiltin "@DesktopDepth"
syn match autoitBuiltin "@DesktopHeight"
syn match autoitBuiltin "@DesktopRefresh"
syn match autoitBuiltin "@DesktopWidth"
syn match autoitBuiltin "@DocumentsCommonDir"
syn match autoitBuiltin "@Error"
syn match autoitBuiltin "@ExitCode"
syn match autoitBuiltin "@ExitMethod"
syn match autoitBuiltin "@Extended"
syn match autoitBuiltin "@Favorites\(Common\)\=Dir"
syn match autoitBuiltin "@GUI_CtrlId"
syn match autoitBuiltin "@GUI_CtrlHandle"
syn match autoitBuiltin "@GUI_DragId"
syn match autoitBuiltin "@GUI_DragFile"
syn match autoitBuiltin "@GUI_DropId"
syn match autoitBuiltin "@GUI_WinHandle"
syn match autoitBuiltin "@HomeDrive"
syn match autoitBuiltin "@HomePath"
syn match autoitBuiltin "@HomeShare"
syn match autoitBuiltin "@HOUR"
syn match autoitBuiltin "@HotKeyPressed"
syn match autoitBuiltin "@InetGetActive"
syn match autoitBuiltin "@InetGetBytesRead"
syn match autoitBuiltin "@IPAddress[1234]"
syn match autoitBuiltin "@KBLayout"
syn match autoitBuiltin "@LF"
syn match autoitBuiltin "@Logon\(DNS\)\=Domain"
syn match autoitBuiltin "@LogonServer"
syn match autoitBuiltin "@MDAY"
syn match autoitBuiltin "@MIN"
syn match autoitBuiltin "@MON"
syn match autoitBuiltin "@MyDocumentsDir"
syn match autoitBuiltin "@NumParams"
syn match autoitBuiltin "@OSBuild"
syn match autoitBuiltin "@OSLang"
syn match autoitBuiltin "@OSServicePack"
syn match autoitBuiltin "@OSTYPE"
syn match autoitBuiltin "@OSVersion"
syn match autoitBuiltin "@ProcessorArch"
syn match autoitBuiltin "@ProgramFilesDir"
syn match autoitBuiltin "@Programs\(Common\)\=Dir"
syn match autoitBuiltin "@ScriptDir"
syn match autoitBuiltin "@ScriptFullPath"
syn match autoitBuiltin "@ScriptLineNumber"
syn match autoitBuiltin "@ScriptName"
syn match autoitBuiltin "@SEC"
syn match autoitBuiltin "@StartMenu\(Common\)\=Dir"
syn match autoitBuiltin "@Startup\(Common\)\=Dir"
syn match autoitBuiltin "@SW_DISABLE"
syn match autoitBuiltin "@SW_ENABLE"
syn match autoitBuiltin "@SW_HIDE"
syn match autoitBuiltin "@SW_LOCK"
syn match autoitBuiltin "@SW_MAXIMIZE"
syn match autoitBuiltin "@SW_MINIMIZE"
syn match autoitBuiltin "@SW_RESTORE"
syn match autoitBuiltin "@SW_SHOW"
syn match autoitBuiltin "@SW_SHOWDEFAULT"
syn match autoitBuiltin "@SW_SHOWMAXIMIZED"
syn match autoitBuiltin "@SW_SHOWMINIMIZED"
syn match autoitBuiltin "@SW_SHOWMINNOACTIVE"
syn match autoitBuiltin "@SW_SHOWNA"
syn match autoitBuiltin "@SW_SHOWNOACTIVATE"
syn match autoitBuiltin "@SW_SHOWNORMAL"
syn match autoitBuiltin "@SW_UNLOCK"
syn match autoitBuiltin "@SystemDir"
syn match autoitBuiltin "@TAB"
syn match autoitBuiltin "@TempDir"
syn match autoitBuiltin "@TRAY_ID"
syn match autoitBuiltin "@TrayIconFlashing"
syn match autoitBuiltin "@TrayIconVisible"
syn match autoitBuiltin "@UserProfileDir"
syn match autoitBuiltin "@UserName"
syn match autoitBuiltin "@WDAY"
syn match autoitBuiltin "@WindowsDir"
syn match autoitBuiltin "@WorkingDir"
syn match autoitBuiltin "@YDAY"
syn match autoitBuiltin "@YEAR"

"comments and commenting-out
syn match autoitComment ";.*"
"in this way also #ce alone will be highlighted
syn match autoitCommDelimiter "^\s*#comments-start\>"
syn match autoitCommDelimiter "^\s*#cs\>"
syn match autoitCommDelimiter "^\s*#comments-end\>"
syn match autoitCommDelimiter "^\s*#ce\>"
syn region autoitComment
	\ matchgroup=autoitCommDelimiter
	\ start="^\s*#comments-start\>" start="^\s*#cs\>"
	\ end="^\s*#comments-end\>" end="^\s*#ce\>"

"one character operators
syn match autoitOperator "[-+*/&^=<>][^-+*/&^=<>]"me=e-1
"two characters operators
syn match autoitOperator "==[^=]"me=e-1
syn match autoitOperator "<>"
syn match autoitOperator "<="
syn match autoitOperator ">="
syn match autoitOperator "+="
syn match autoitOperator "-="
syn match autoitOperator "*="
syn match autoitOperator "/="
syn match autoitOperator "&="
syn keyword autoitOperator NOT AND OR

syn match autoitParen "(\|)"
syn match autoitBracket "\[\|\]"
syn match autoitComma ","

"numbers must come after operator '-'
"decimal numbers without a dot
syn match autoitNumber "-\=\<\d\+\>"
"hexadecimal numbers without a dot
syn match autoitNumber "-\=\<0x\x\+\>"
"floating point number with dot (inside or at end)

syn match autoitNumber "-\=\<\d\+\.\d*\>"
"floating point number, starting with a dot
syn match autoitNumber "-\=\<\.\d\+\>"
"scientific notation numbers without dots
syn match autoitNumber "-\=\<\d\+e[-+]\=\d\+\>"
"scientific notation numbers with dots
syn match autoitNumber "-\=\<\(\(\d\+\.\d*\)\|\(\.\d\+\)\)\(e[-+]\=\d\+\)\=\>"

"string constants
"we want the escaped quotes marked in red
syn match autoitDoubledSingles +''+ contained
syn match autoitDoubledDoubles +""+ contained
"we want the continuation character marked in red
"(also at the top level, not just contained)
syn match autoitCont "_$"

" send key list - must be defined before autoitStrings
syn match autoitSend "{!}" contained
syn match autoitSend "{#}" contained
syn match autoitSend "{+}" contained
syn match autoitSend "{^}" contained
syn match autoitSend "{{}" contained
syn match autoitSend "{}}" contained
syn match autoitSend "{SPACE}" contained
syn match autoitSend "{ENTER}" contained
syn match autoitSend "{ALT}" contained
syn match autoitSend "{BACKSPACE}" contained
syn match autoitSend "{BS}" contained
syn match autoitSend "{DELETE}" contained
syn match autoitSend "{DEL}" contained
syn match autoitSend "{UP}" contained
syn match autoitSend "{DOWN}" contained
syn match autoitSend "{LEFT}" contained
syn match autoitSend "{RIGHT}" contained
syn match autoitSend "{HOME}" contained
syn match autoitSend "{END}" contained
syn match autoitSend "{ESCAPE}" contained
syn match autoitSend "{ESC}" contained
syn match autoitSend "{INSERT}" contained
syn match autoitSend "{INS}" contained
syn match autoitSend "{PGUP}" contained
syn match autoitSend "{PGDN}" contained
syn match autoitSend "{F1}" contained
syn match autoitSend "{F2}" contained
syn match autoitSend "{F3}" contained
syn match autoitSend "{F4}" contained
syn match autoitSend "{F5}" contained
syn match autoitSend "{F6}" contained
syn match autoitSend "{F7}" contained
syn match autoitSend "{F8}" contained
syn match autoitSend "{F9}" contained
syn match autoitSend "{F10}" contained
syn match autoitSend "{F11}" contained
syn match autoitSend "{F12}" contained
syn match autoitSend "{TAB}" contained
syn match autoitSend "{PRINTSCREEN}" contained
syn match autoitSend "{LWIN}" contained
syn match autoitSend "{RWIN}" contained
syn match autoitSend "{NUMLOCK}" contained
syn match autoitSend "{CTRLBREAK}" contained
syn match autoitSend "{PAUSE}" contained
syn match autoitSend "{CAPSLOCK}" contained
syn match autoitSend "{NUMPAD0}" contained
syn match autoitSend "{NUMPAD1}" contained
syn match autoitSend "{NUMPAD2}" contained
syn match autoitSend "{NUMPAD3}" contained
syn match autoitSend "{NUMPAD4}" contained
syn match autoitSend "{NUMPAD5}" contained
syn match autoitSend "{NUMPAD6}" contained
syn match autoitSend "{NUMPAD7}" contained
syn match autoitSend "{NUMPAD8}" contained
syn match autoitSend "{NUMPAD9}" contained
syn match autoitSend "{NUMPADMULT}" contained
syn match autoitSend "{NUMPADADD}" contained
syn match autoitSend "{NUMPADSUB}" contained
syn match autoitSend "{NUMPADDIV}" contained
syn match autoitSend "{NUMPADDOT}" contained
syn match autoitSend "{NUMPADENTER}" contained
syn match autoitSend "{APPSKEY}" contained
syn match autoitSend "{LALT}" contained
syn match autoitSend "{RALT}" contained
syn match autoitSend "{LCTRL}" contained
syn match autoitSend "{RCTRL}" contained
syn match autoitSend "{LSHIFT}" contained
syn match autoitSend "{RSHIFT}" contained
syn match autoitSend "{SLEEP}" contained
syn match autoitSend "{ALTDOWN}" contained
syn match autoitSend "{SHIFTDOWN}" contained
syn match autoitSend "{CTRLDOWN}" contained
syn match autoitSend "{LWINDOWN}" contained
syn match autoitSend "{RWINDOWN}" contained
syn match autoitSend "{ASC \d\d\d\d}" contained
syn match autoitSend "{BROWSER_BACK}" contained
syn match autoitSend "{BROWSER_FORWARD}" contained
syn match autoitSend "{BROWSER_REFRESH}" contained
syn match autoitSend "{BROWSER_STOP}" contained
syn match autoitSend "{BROWSER_SEARCH}" contained
syn match autoitSend "{BROWSER_FAVORITES}" contained
syn match autoitSend "{BROWSER_HOME}" contained
syn match autoitSend "{VOLUME_MUTE}" contained
syn match autoitSend "{VOLUME_DOWN}" contained
syn match autoitSend "{VOLUME_UP}" contained
syn match autoitSend "{MEDIA_NEXT}" contained
syn match autoitSend "{MEDIA_PREV}" contained
syn match autoitSend "{MEDIA_STOP}" contained
syn match autoitSend "{MEDIA_PLAY_PAUSE}" contained
syn match autoitSend "{LAUNCH_MAIL}" contained
syn match autoitSend "{LAUNCH_MEDIA}" contained
syn match autoitSend "{LAUNCH_APP1}" contained
syn match autoitSend "{LAUNCH_APP2}" contained

"this was tricky!
"we use an oneline region, instead of a match, in order to use skip=
"matchgroup= so start and end quotes are not considered as au3Doubled
"contained
syn region autoitString oneline contains=autoitSend matchgroup=autoitQuote start=+"+
	\ end=+"+ end=+_\n\{1}.*"+
	\ contains=autoitCont,autoitDoubledDoubles skip=+""+
syn region autoitString oneline matchgroup=autoitQuote start=+'+
	\ end=+'+ end=+_\n\{1}.*'+
	\ contains=autoitCont,autoitDoubledSingles skip=+''+

syn match autoitVarSelector "\$"	contained display
syn match autoitVariable "$\w\+" contains=autoitVarSelector

" options - must be defined after autoitStrings
syn match autoitOption "\([\"\']\)CaretCoordMode\1"
syn match autoitOption "\([\"\']\)ColorMode\1"
syn match autoitOption "\([\"\']\)ExpandEnvStrings\1"
syn match autoitOption "\([\"\']\)ExpandVarStrings\1"
syn match autoitOption "\([\"\']\)FtpBinaryMode\1"
syn match autoitOption "\([\"\']\)GUICloseOnEsc\1"
syn match autoitOption "\([\"\']\)GUICoordMode\1"
syn match autoitOption "\([\"\']\)GUIDataSeparatorChar\1"
syn match autoitOption "\([\"\']\)GUIOnEventMode\1"
syn match autoitOption "\([\"\']\)GUIResizeMode\1"
syn match autoitOption "\([\"\']\)GUIEventCompatibilityMode\1"
syn match autoitOption "\([\"\']\)MouseClickDelay\1"
syn match autoitOption "\([\"\']\)MouseClickDownDelay\1"
syn match autoitOption "\([\"\']\)MouseClickDragDelay\1"
syn match autoitOption "\([\"\']\)MouseCoordMode\1"
syn match autoitOption "\([\"\']\)MustDeclareVars\1"
syn match autoitOption "\([\"\']\)OnExitFunc\1"
syn match autoitOption "\([\"\']\)PixelCoordMode\1"
syn match autoitOption "\([\"\']\)RunErrorsFatal\1"
syn match autoitOption "\([\"\']\)SendAttachMode\1"
syn match autoitOption "\([\"\']\)SendCapslockMode\1"
syn match autoitOption "\([\"\']\)SendKeyDelay\1"
syn match autoitOption "\([\"\']\)SendKeyDownDelay\1"
syn match autoitOption "\([\"\']\)TCPTimeout\1"
syn match autoitOption "\([\"\']\)TrayAutoPause\1"
syn match autoitOption "\([\"\']\)TrayIconDebug\1"
syn match autoitOption "\([\"\']\)TrayIconHide\1"
syn match autoitOption "\([\"\']\)TrayMenuMode\1"
syn match autoitOption "\([\"\']\)TrayOnEventMode\1"
syn match autoitOption "\([\"\']\)WinDetectHiddenText\1"
syn match autoitOption "\([\"\']\)WinSearchChildren\1"
syn match autoitOption "\([\"\']\)WinTextMatchMode\1"
syn match autoitOption "\([\"\']\)WinTitleMatchMode\1"
syn match autoitOption "\([\"\']\)WinWaitDelay\1"

" styles - must be defined after autoitVariable
" common
syn match autoitStyle "\$WS_BORDER"
syn match autoitStyle "\$WS_POPUP"
syn match autoitStyle "\$WS_CAPTION"
syn match autoitStyle "\$WS_CLIPCHILDREN"
syn match autoitStyle "\$WS_CLIPSIBLINGS"
syn match autoitStyle "\$WS_DISABLED"
syn match autoitStyle "\$WS_DLGFRAME"
syn match autoitStyle "\$WS_HSCROLL"
syn match autoitStyle "\$WS_MAXIMIZE"
syn match autoitStyle "\$WS_MAXIMIZEBOX"
syn match autoitStyle "\$WS_MINIMIZE"
syn match autoitStyle "\$WS_MINIMIZEBOX"
syn match autoitStyle "\$WS_OVERLAPPED"
syn match autoitStyle "\$WS_OVERLAPPEDWINDOW"
syn match autoitStyle "\$WS_POPUPWINDOW"
syn match autoitStyle "\$WS_SIZEBOX"
syn match autoitStyle "\$WS_SYSMENU"
syn match autoitStyle "\$WS_THICKFRAME"
syn match autoitStyle "\$WS_VSCROLL"
syn match autoitStyle "\$WS_VISIBLE"
syn match autoitStyle "\$WS_CHILD"
syn match autoitStyle "\$WS_GROUP"
syn match autoitStyle "\$WS_TABSTOP"
syn match autoitStyle "\$DS_MODALFRAME"
syn match autoitStyle "\$DS_SETFOREGROUND"
syn match autoitStyle "\$DS_CONTEXTHELP"
" common extended
syn match autoitStyle "\$WS_EX_ACCEPTFILES"
syn match autoitStyle "\$WS_EX_APPWINDOW"
syn match autoitStyle "\$WS_EX_CLIENTEDGE"
syn match autoitStyle "\$WS_EX_CONTEXTHELP"
syn match autoitStyle "\$WS_EX_DLGMODALFRAME"
syn match autoitStyle "\$WS_EX_MDICHILD"
syn match autoitStyle "\$WS_EX_OVERLAPPEDWINDOW"
syn match autoitStyle "\$WS_EX_STATICEDGE"
syn match autoitStyle "\$WS_EX_TOPMOST"
syn match autoitStyle "\$WS_EX_TRANSPARENT"
syn match autoitStyle "\$WS_EX_TOOLWINDOW"
syn match autoitStyle "\$WS_EX_WINDOWEDGE"
syn match autoitStyle "\$WS_EX_LAYERED"
syn match autoitStyle "\$GUI_WS_EX_PARENTDRAG"
" checkbox
syn match autoitStyle "\$BS_3STATE"
syn match autoitStyle "\$BS_AUTO3STATE"
syn match autoitStyle "\$BS_AUTOCHECKBOX"
syn match autoitStyle "\$BS_CHECKBOX"
syn match autoitStyle "\$BS_LEFT"
syn match autoitStyle "\$BS_PUSHLIKE"
syn match autoitStyle "\$BS_RIGHT"
syn match autoitStyle "\$BS_RIGHTBUTTON"
syn match autoitStyle "\$BS_GROUPBOX"
syn match autoitStyle "\$BS_AUTORADIOBUTTON"
" push button
syn match autoitStyle "\$BS_BOTTOM"
syn match autoitStyle "\$BS_CENTER"
syn match autoitStyle "\$BS_DEFPUSHBUTTON"
syn match autoitStyle "\$BS_MULTILINE"
syn match autoitStyle "\$BS_TOP"
syn match autoitStyle "\$BS_VCENTER"
syn match autoitStyle "\$BS_ICON"
syn match autoitStyle "\$BS_BITMAP"
syn match autoitStyle "\$BS_FLAT"
" combo
syn match autoitStyle "\$CBS_AUTOHSCROLL"
syn match autoitStyle "\$CBS_DISABLENOSCROLL"
syn match autoitStyle "\$CBS_DROPDOWN"
syn match autoitStyle "\$CBS_DROPDOWNLIST"
syn match autoitStyle "\$CBS_LOWERCASE"
syn match autoitStyle "\$CBS_NOINTEGRALHEIGHT"
syn match autoitStyle "\$CBS_OEMCONVERT"
syn match autoitStyle "\$CBS_SIMPLE"
syn match autoitStyle "\$CBS_SORT"
syn match autoitStyle "\$CBS_UPPERCASE"
" list
syn match autoitStyle "\$LBS_DISABLENOSCROLL"
syn match autoitStyle "\$LBS_NOINTEGRALHEIGHT"
syn match autoitStyle "\$LBS_NOSEL"
syn match autoitStyle "\$LBS_NOTIFY"
syn match autoitStyle "\$LBS_SORT"
syn match autoitStyle "\$LBS_STANDARD"
syn match autoitStyle "\$LBS_USETABSTOPS"
" edit/input
syn match autoitStyle "\$ES_AUTOHSCROLL"
syn match autoitStyle "\$ES_AUTOVSCROLL"
syn match autoitStyle "\$ES_CENTER"
syn match autoitStyle "\$ES_LOWERCASE"
syn match autoitStyle "\$ES_NOHIDESEL"
syn match autoitStyle "\$ES_NUMBER"
syn match autoitStyle "\$ES_OEMCONVERT"
syn match autoitStyle "\$ES_MULTILINE"
syn match autoitStyle "\$ES_PASSWORD"
syn match autoitStyle "\$ES_READONLY"
syn match autoitStyle "\$ES_RIGHT"
syn match autoitStyle "\$ES_UPPERCASE"
syn match autoitStyle "\$ES_WANTRETURN"
" progress bar
syn match autoitStyle "\$PBS_SMOOTH"
syn match autoitStyle "\$PBS_VERTICAL"
" up-down
syn match autoitStyle "\$UDS_ALIGNLEFT"
syn match autoitStyle "\$UDS_ALIGNRIGHT"
syn match autoitStyle "\$UDS_ARROWKEYS"
syn match autoitStyle "\$UDS_HORZ"
syn match autoitStyle "\$UDS_NOTHOUSANDS"
syn match autoitStyle "\$UDS_WRAP"
" label/static
syn match autoitStyle "\$SS_BLACKFRAME"
syn match autoitStyle "\$SS_BLACKRECT"
syn match autoitStyle "\$SS_CENTER"
syn match autoitStyle "\$SS_CENTERIMAGE"
syn match autoitStyle "\$SS_ETCHEDFRAME"
syn match autoitStyle "\$SS_ETCHEDHORZ"
syn match autoitStyle "\$SS_ETCHEDVERT"
syn match autoitStyle "\$SS_GRAYFRAME"
syn match autoitStyle "\$SS_GRAYRECT"
syn match autoitStyle "\$SS_LEFT"
syn match autoitStyle "\$SS_LEFTNOWORDWRAP"
syn match autoitStyle "\$SS_NOPREFIX"
syn match autoitStyle "\$SS_NOTIFY"
syn match autoitStyle "\$SS_RIGHT"
syn match autoitStyle "\$SS_RIGHTJUST"
syn match autoitStyle "\$SS_SIMPLE"
syn match autoitStyle "\$SS_SUNKEN"
syn match autoitStyle "\$SS_WHITEFRAME"
syn match autoitStyle "\$SS_WHITERECT"
" tab
syn match autoitStyle "\$TCS_SCROLLOPPOSITE"
syn match autoitStyle "\$TCS_BOTTOM"
syn match autoitStyle "\$TCS_RIGHT"
syn match autoitStyle "\$TCS_MULTISELECT"
syn match autoitStyle "\$TCS_FLATBUTTONS"
syn match autoitStyle "\$TCS_FORCEICONLEFT"
syn match autoitStyle "\$TCS_FORCELABELLEFT"
syn match autoitStyle "\$TCS_HOTTRACK"
syn match autoitStyle "\$TCS_VERTICAL"
syn match autoitStyle "\$TCS_TABS"
syn match autoitStyle "\$TCS_BUTTONS"
syn match autoitStyle "\$TCS_SINGLELINE"
syn match autoitStyle "\$TCS_MULTILINE"
syn match autoitStyle "\$TCS_RIGHTJUSTIFY"
syn match autoitStyle "\$TCS_FIXEDWIDTH"
syn match autoitStyle "\$TCS_RAGGEDRIGHT"
syn match autoitStyle "\$TCS_FOCUSONBUTTONDOWN"
syn match autoitStyle "\$TCS_OWNERDRAWFIXED"
syn match autoitStyle "\$TCS_TOOLTIPS"
syn match autoitStyle "\$TCS_FOCUSNEVER"
" avi clip
syn match autoitStyle "\$ACS_AUTOPLAY"
syn match autoitStyle "\$ACS_CENTER"
syn match autoitStyle "\$ACS_TRANSPARENT"
syn match autoitStyle "\$ACS_NONTRANSPARENT"
" date
syn match autoitStyle "\$DTS_UPDOWN"
syn match autoitStyle "\$DTS_SHOWNONE"
syn match autoitStyle "\$DTS_LONGDATEFORMAT"
syn match autoitStyle "\$DTS_TIMEFORMAT"
syn match autoitStyle "\$DTS_RIGHTALIGN"
syn match autoitStyle "\$DTS_SHORTDATEFORMAT"
" monthcal
syn match autoitStyle "\$MCS_NOTODAY"
syn match autoitStyle "\$MCS_NOTODAYCIRCLE"
syn match autoitStyle "\$MCS_WEEKNUMBERS"
" treeview
syn match autoitStyle "\$TVS_HASBUTTONS"
syn match autoitStyle "\$TVS_HASLINES"
syn match autoitStyle "\$TVS_LINESATROOT"
syn match autoitStyle "\$TVS_DISABLEDRAGDROP"
syn match autoitStyle "\$TVS_SHOWSELALWAYS"
syn match autoitStyle "\$TVS_RTLREADING"
syn match autoitStyle "\$TVS_NOTOOLTIPS"
syn match autoitStyle "\$TVS_CHECKBOXES"
syn match autoitStyle "\$TVS_TRACKSELECT"
syn match autoitStyle "\$TVS_SINGLEEXPAND"
syn match autoitStyle "\$TVS_FULLROWSELECT"
syn match autoitStyle "\$TVS_NOSCROLL"
syn match autoitStyle "\$TVS_NONEVENHEIGHT"
" slider
syn match autoitStyle "\$TBS_AUTOTICKS"
syn match autoitStyle "\$TBS_BOTH"
syn match autoitStyle "\$TBS_BOTTOM"
syn match autoitStyle "\$TBS_HORZ"
syn match autoitStyle "\$TBS_VERT"
syn match autoitStyle "\$TBS_NOTHUMB"
syn match autoitStyle "\$TBS_NOTICKS"
syn match autoitStyle "\$TBS_LEFT"
syn match autoitStyle "\$TBS_RIGHT"
syn match autoitStyle "\$TBS_TOP"
" listview
syn match autoitStyle "\$LVS_ICON"
syn match autoitStyle "\$LVS_REPORT"
syn match autoitStyle "\$LVS_SMALLICON"
syn match autoitStyle "\$LVS_LIST"
syn match autoitStyle "\$LVS_EDITLABELS"
syn match autoitStyle "\$LVS_NOCOLUMNHEADER"
syn match autoitStyle "\$LVS_NOSORTHEADER"
syn match autoitStyle "\$LVS_SINGLESEL"
syn match autoitStyle "\$LVS_SHOWSELALWAYS"
syn match autoitStyle "\$LVS_SORTASCENDING"
syn match autoitStyle "\$LVS_SORTDESCENDING"
" listview extended
syn match autoitStyle "\$LVS_EX_FULLROWSELECT"
syn match autoitStyle "\$LVS_EX_GRIDLINES"
syn match autoitStyle "\$LVS_EX_HEADERDRAGDROP"
syn match autoitStyle "\$LVS_EX_TRACKSELECT"
syn match autoitStyle "\$LVS_EX_CHECKBOXES"
syn match autoitStyle "\$LVS_EX_BORDERSELECT"
syn match autoitStyle "\$LVS_EX_DOUBLEBUFFER"
syn match autoitStyle "\$LVS_EX_FLATSB"
syn match autoitStyle "\$LVS_EX_MULTIWORKAREAS"
syn match autoitStyle "\$LVS_EX_SNAPTOGRID"
syn match autoitStyle "\$LVS_EX_SUBITEMIMAGES"

" constants - must be defined after autoitVariable - excludes styles
" constants - autoit options
syn match autoitConst "\$OPT_COORDSRELATIVE"
syn match autoitConst "\$OPT_COORDSABSOLUTE"
syn match autoitConst "\$OPT_COORDSCLIENT"
syn match autoitConst "\$OPT_ERRORSILENT"
syn match autoitConst "\$OPT_ERRORFATAL"
syn match autoitConst "\$OPT_CAPSNOSTORE"
syn match autoitConst "\$OPT_CAPSSTORE"
syn match autoitConst "\$OPT_MATCHSTART"
syn match autoitConst "\$OPT_MATCHANY"
syn match autoitConst "\$OPT_MATCHEXACT"
syn match autoitConst "\$OPT_MATCHADVANCED"
" constants - file
syn match autoitConst "\$FC_NOOVERWRITE"
syn match autoitConst "\$FC_OVERWRITE"
syn match autoitConst "\$FT_MODIFIED"
syn match autoitConst "\$FT_CREATED"
syn match autoitConst "\$FT_ACCESSED"
syn match autoitConst "\$FO_READ"
syn match autoitConst "\$FO_APPEND"
syn match autoitConst "\$FO_OVERWRITE"
syn match autoitConst "\$EOF"
syn match autoitConst "\$FD_FILEMUSTEXIST"
syn match autoitConst "\$FD_PATHMUSTEXIST"
syn match autoitConst "\$FD_MULTISELECT"
syn match autoitConst "\$FD_PROMPTCREATENEW"
syn match autoitConst "\$FD_PROMPTOVERWRITE"
" constants - keyboard
syn match autoitConst "\$KB_SENDSPECIAL"
syn match autoitConst "\$KB_SENDRAW"
syn match autoitConst "\$KB_CAPSOFF"
syn match autoitConst "\$KB_CAPSON"
" constants - message box
syn match autoitConst "\$MB_OK"
syn match autoitConst "\$MB_OKCANCEL"
syn match autoitConst "\$MB_ABORTRETRYIGNORE"
syn match autoitConst "\$MB_YESNOCANCEL"
syn match autoitConst "\$MB_YESNO"
syn match autoitConst "\$MB_RETRYCANCEL"
syn match autoitConst "\$MB_ICONHAND"
syn match autoitConst "\$MB_ICONQUESTION"
syn match autoitConst "\$MB_ICONEXCLAMATION"
syn match autoitConst "\$MB_ICONASTERISK"
syn match autoitConst "\$MB_DEFBUTTON1"
syn match autoitConst "\$MB_DEFBUTTON2"
syn match autoitConst "\$MB_DEFBUTTON3"
syn match autoitConst "\$MB_APPLMODAL"
syn match autoitConst "\$MB_SYSTEMMODAL"
syn match autoitConst "\$MB_TASKMODAL"
syn match autoitConst "\$MB_TOPMOST"
syn match autoitConst "\$MB_RIGHTJUSTIFIED"
syn match autoitConst "\$IDTIMEOUT"
syn match autoitConst "\$IDOK"
syn match autoitConst "\$IDCANCEL"
syn match autoitConst "\$IDABORT"
syn match autoitConst "\$IDRETRY"
syn match autoitConst "\$IDIGNORE"
syn match autoitConst "\$IDYES"
syn match autoitConst "\$IDNO"
syn match autoitConst "\$IDTRYAGAIN"
syn match autoitConst "\$IDCONTINUE"
" constants - progress and splash
syn match autoitConst "\$DLG_NOTITLE"
syn match autoitConst "\$DLG_NOTONTOP"
syn match autoitConst "\$DLG_TEXTLEFT"
syn match autoitConst "\$DLG_TEXTRIGHT"
syn match autoitConst "\$DLG_MOVEABLE"
syn match autoitConst "\$DLG_TEXTVCENTER"
" constants - tray tip
syn match autoitConst "\$TIP_ICONNONE"
syn match autoitConst "\$TIP_ICONASTERISK"
syn match autoitConst "\$TIP_ICONEXCLAMATION"
syn match autoitConst "\$TIP_ICONHAND"
syn match autoitConst "\$TIP_NOSOUND"
" constants - mouse
syn match autoitConst "\$IDC_UNKNOWN"
syn match autoitConst "\$IDC_APPSTARTING"
syn match autoitConst "\$IDC_ARROW"
syn match autoitConst "\$IDC_CROSS"
syn match autoitConst "\$IDC_HELP"
syn match autoitConst "\$IDC_IBEAM"
syn match autoitConst "\$IDC_ICON"
syn match autoitConst "\$IDC_NO"
syn match autoitConst "\$IDC_SIZE"
syn match autoitConst "\$IDC_SIZEALL"
syn match autoitConst "\$IDC_SIZENESW"
syn match autoitConst "\$IDC_SIZENS"
syn match autoitConst "\$IDC_SIZENWSE"
syn match autoitConst "\$IDC_SIZEWE"
syn match autoitConst "\$IDC_UPARROW"
syn match autoitConst "\$IDC_WAIT"
" constants - process
syn match autoitConst "\$SD_LOGOFF"
syn match autoitConst "\$SD_SHUTDOWN"
syn match autoitConst "\$SD_REBOOT"
syn match autoitConst "\$SD_FORCE"
syn match autoitConst "\$SD_POWERDOWN"
" constants - string
syn match autoitConst "\$STR_NOCASESENSE"
syn match autoitConst "\$STR_CASESENSE"
syn match autoitConst "\STR_STRIPLEADING"
syn match autoitConst "\$STR_STRIPTRAILING"
syn match autoitConst "\$STR_STRIPSPACES"
syn match autoitConst "\$STR_STRIPALL"
" constants - tray
syn match autoitConst "\$TRAY_ITEM_EXIT"
syn match autoitConst "\$TRAY_ITEM_PAUSE"
syn match autoitConst "\$TRAY_ITEM_FIRST"
syn match autoitConst "\$TRAY_CHECKED"
syn match autoitConst "\$TRAY_UNCHECKED"
syn match autoitConst "\$TRAY_ENABLE"
syn match autoitConst "\$TRAY_DISABLE"
syn match autoitConst "\$TRAY_FOCUS"
syn match autoitConst "\$TRAY_DEFAULT"
syn match autoitConst "\$TRAY_EVENT_SHOWICON"
syn match autoitConst "\$TRAY_EVENT_HIDEICON"
syn match autoitConst "\$TRAY_EVENT_FLASHICON"
syn match autoitConst "\$TRAY_EVENT_NOFLASHICON"
syn match autoitConst "\$TRAY_EVENT_PRIMARYDOWN"
syn match autoitConst "\$TRAY_EVENT_PRIMARYUP"
syn match autoitConst "\$TRAY_EVENT_SECONDARYDOWN"
syn match autoitConst "\$TRAY_EVENT_SECONDARYUP"
syn match autoitConst "\$TRAY_EVENT_MOUSEOVER"
syn match autoitConst "\$TRAY_EVENT_MOUSEOUT"
syn match autoitConst "\$TRAY_EVENT_PRIMARYDOUBLE"
syn match autoitConst "\$TRAY_EVENT_SECONDARYDOUBLE"
" constants - stdio
syn match autoitConst "\$STDIN_CHILD"
syn match autoitConst "\$STDOUT_CHILD"
syn match autoitConst "\$STDERR_CHILD"
" constants - color
syn match autoitConst "\$COLOR_BLACK"
syn match autoitConst "\$COLOR_SILVER"
syn match autoitConst "\$COLOR_GRAY"
syn match autoitConst "\$COLOR_WHITE"
syn match autoitConst "\$COLOR_MAROON"
syn match autoitConst "\$COLOR_RED"
syn match autoitConst "\$COLOR_PURPLE"
syn match autoitConst "\$COLOR_FUCHSIA"
syn match autoitConst "\$COLOR_GREEN"
syn match autoitConst "\$COLOR_LIME"
syn match autoitConst "\$COLOR_OLIVE"
syn match autoitConst "\$COLOR_YELLOW"
syn match autoitConst "\$COLOR_NAVY"
syn match autoitConst "\$COLOR_BLUE"
syn match autoitConst "\$COLOR_TEAL"
syn match autoitConst "\$COLOR_AQUA"
" constants - reg value type
syn match autoitConst "\$REG_NONE"
syn match autoitConst "\$REG_SZ"
syn match autoitConst "\$REG_EXPAND_SZ"
syn match autoitConst "\$REG_BINARY"
syn match autoitConst "\$REG_DWORD"
syn match autoitConst "\$REG_DWORD_BIG_ENDIAN"
syn match autoitConst "\$REG_LINK"
syn match autoitConst "\$REG_MULTI_SZ"
syn match autoitConst "\$REG_RESOURCE_LIST"
syn match autoitConst "\$REG_FULL_RESOURCE_DESCRIPTOR"
syn match autoitConst "\$REG_RESOURCE_REQUIREMENTS_LIST"
" guiconstants - events and messages
syn match autoitConst "\$GUI_EVENT_CLOSE"
syn match autoitConst "\$GUI_EVENT_MINIMIZE"
syn match autoitConst "\$GUI_EVENT_RESTORE"
syn match autoitConst "\$GUI_EVENT_MAXIMIZE"
syn match autoitConst "\$GUI_EVENT_PRIMARYDOWN"
syn match autoitConst "\$GUI_EVENT_PRIMARYUP"
syn match autoitConst "\$GUI_EVENT_SECONDARYDOWN"
syn match autoitConst "\$GUI_EVENT_SECONDARYUP"
syn match autoitConst "\$GUI_EVENT_MOUSEMOVE"
syn match autoitConst "\$GUI_EVENT_RESIZED"
syn match autoitConst "\$GUI_EVENT_DROPPED"
syn match autoitConst "\$GUI_RUNDEFMSG"
" guiconstants - state
syn match autoitConst "\$GUI_AVISTOP"
syn match autoitConst "\$GUI_AVISTART"
syn match autoitConst "\$GUI_AVICLOSE"
syn match autoitConst "\$GUI_CHECKED"
syn match autoitConst "\$GUI_INDETERMINATE"
syn match autoitConst "\$GUI_UNCHECKED"
syn match autoitConst "\$GUI_DROPACCEPTED"
syn match autoitConst "\$GUI_DROPNOTACCEPTED"
syn match autoitConst "\$GUI_ACCEPTFILES"
syn match autoitConst "\$GUI_SHOW"
syn match autoitConst "\$GUI_HIDE"
syn match autoitConst "\$GUI_ENABLE"
syn match autoitConst "\$GUI_DISABLE"
syn match autoitConst "\$GUI_FOCUS"
syn match autoitConst "\$GUI_NOFOCUS"
syn match autoitConst "\$GUI_DEFBUTTON"
syn match autoitConst "\$GUI_EXPAND"
syn match autoitConst "\$GUI_ONTOP"
" guiconstants - font
syn match autoitConst "\$GUI_FONTITALIC"
syn match autoitConst "\$GUI_FONTUNDER"
syn match autoitConst "\$GUI_FONTSTRIKE"
" guiconstants - resizing
syn match autoitConst "\$GUI_DOCKAUTO"
syn match autoitConst "\$GUI_DOCKLEFT"
syn match autoitConst "\$GUI_DOCKRIGHT"
syn match autoitConst "\$GUI_DOCKHCENTER"
syn match autoitConst "\$GUI_DOCKTOP"
syn match autoitConst "\$GUI_DOCKBOTTOM"
syn match autoitConst "\$GUI_DOCKVCENTER"
syn match autoitConst "\$GUI_DOCKWIDTH"
syn match autoitConst "\$GUI_DOCKHEIGHT"
syn match autoitConst "\$GUI_DOCKSIZE"
syn match autoitConst "\$GUI_DOCKMENUBAR"
syn match autoitConst "\$GUI_DOCKSTATEBAR"
syn match autoitConst "\$GUI_DOCKALL"
syn match autoitConst "\$GUI_DOCKBORDERS"
" guiconstants - graphic
syn match autoitConst "\$GUI_GR_CLOSE"
syn match autoitConst "\$GUI_GR_LINE"
syn match autoitConst "\$GUI_GR_BEZIER"
syn match autoitConst "\$GUI_GR_MOVE"
syn match autoitConst "\$GUI_GR_COLOR"
syn match autoitConst "\$GUI_GR_RECT"
syn match autoitConst "\$GUI_GR_ELLIPSE"
syn match autoitConst "\$GUI_GR_PIE"
syn match autoitConst "\$GUI_GR_DOT"
syn match autoitConst "\$GUI_GR_PIXEL"
syn match autoitConst "\$GUI_GR_HINT"
syn match autoitConst "\$GUI_GR_REFRESH"
syn match autoitConst "\$GUI_GR_PENSIZE"
syn match autoitConst "\$GUI_GR_NOBKCOLOR"
" guiconstants - control default styles
syn match autoitConst "\$GUI_SS_DEFAULT_AVI"
syn match autoitConst "\$GUI_SS_DEFAULT_BUTTON"
syn match autoitConst "\$GUI_SS_DEFAULT_CHECKBOX"
syn match autoitConst "\$GUI_SS_DEFAULT_COMBO"
syn match autoitConst "\$GUI_SS_DEFAULT_DATE"
syn match autoitConst "\$GUI_SS_DEFAULT_EDIT"
syn match autoitConst "\$GUI_SS_DEFAULT_GRAPHIC"
syn match autoitConst "\$GUI_SS_DEFAULT_GROUP"
syn match autoitConst "\$GUI_SS_DEFAULT_ICON"
syn match autoitConst "\$GUI_SS_DEFAULT_INPUT"
syn match autoitConst "\$GUI_SS_DEFAULT_LABEL"
syn match autoitConst "\$GUI_SS_DEFAULT_LIST"
syn match autoitConst "\$GUI_SS_DEFAULT_LISTVIEW"
syn match autoitConst "\$GUI_SS_DEFAULT_MONTHCAL"
syn match autoitConst "\$GUI_SS_DEFAULT_PIC"
syn match autoitConst "\$GUI_SS_DEFAULT_PROGRESS"
syn match autoitConst "\$GUI_SS_DEFAULT_RADIO"
syn match autoitConst "\$GUI_SS_DEFAULT_SLIDER"
syn match autoitConst "\$GUI_SS_DEFAULT_TAB"
syn match autoitConst "\$GUI_SS_DEFAULT_TREEVIEW"
syn match autoitConst "\$GUI_SS_DEFAULT_UPDOWN"
syn match autoitConst "\$GUI_SS_DEFAULT_GUI"
" guiconstants - background color special flags
syn match autoitConst "\$GUI_BKCOLOR_DEFAULT"
syn match autoitConst "\$GUI_BKCOLOR_LV_ALTERNATE"
syn match autoitConst "\$GUI_BKCOLOR_TRANSPARENT"

" registry constants
syn match autoitConst "\([\"\']\)REG_BINARY\1"
syn match autoitConst "\([\"\']\)REG_SZ\1"
syn match autoitConst "\([\"\']\)REG_MULTI_SZ\1"
syn match autoitConst "\([\"\']\)REG_EXPAND_SZ\1"
syn match autoitConst "\([\"\']\)REG_DWORD\1"

" Define the default highlighting.
" Unused colors: Underlined, Ignore, Error, Todo
hi def link autoitFunction Statement  " yellow/yellow
hi def link autoitKeyword Statement
hi def link autoitOperator Operator
hi def link autoitVarSelector Operator
hi def link autoitComment	Comment  " cyan/blue
hi def link autoitParen Comment
hi def link autoitComma Comment
hi def link autoitBracket Comment
hi def link autoitNumber Constant " magenta/red
hi def link autoitString Constant
hi def link autoitQuote Constant
hi def link autoitIncluded Constant
hi def link autoitCont Special  " red/orange
hi def link autoitDoubledSingles Special
hi def link autoitDoubledDoubles Special
hi def link autoitCommDelimiter PreProc  " blue/magenta
hi def link autoitInclude PreProc
hi def link autoitVariable Identifier  " cyan/cyan
hi def link autoitBuiltin Type  " green/green
hi def link autoitOption Type
hi def link autoitStyle Type
hi def link autoitConst Type
hi def link autoitSend Type

syn sync minlines=50

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z�%�(F
F
vim80/syntax/initng.vimnu�[���" Vim syntax file
" Language:	initng .i files
" Maintainer:	Elan Ruusam�e <glen@pld-linux.org>
" URL:		http://glen.alkohol.ee/pld/initng/
" License:	GPL v2
" Version:	0.13
" Last Change:	$Date: 2007/05/05 17:17:40 $
"
" Syntax highlighting for initng .i files. Inherits from sh.vim and adds
" in the hiliting to start/stop {} blocks. Requires vim 6.3 or later.

if &compatible || v:version < 603
	finish
endif

if exists("b:current_syntax")
	finish
endif

syn case match

let is_bash = 1
unlet! b:current_syntax
syn include @shTop syntax/sh.vim

syn region	initngService			matchgroup=initngServiceHeader start="^\s*\(service\|virtual\|daemon\|class\|cron\)\s\+\(\(\w\|[-/*]\)\+\(\s\+:\s\+\(\w\|[-/*]\)\+\)\?\)\s\+{" end="}" contains=@initngServiceCluster
syn cluster initngServiceCluster	contains=initngComment,initngAction,initngServiceOption,initngServiceHeader,initngDelim,initngVariable

syn region	initngAction			matchgroup=initngActionHeader start="^\s*\(script start\|script stop\|script run\)\s*=\s*{" end="}" contains=@initngActionCluster
syn cluster initngActionCluster		contains=@shTop

syn match	initngDelim				/[{}]/	contained

syn region	initngString			start=/"/ end=/"/ skip=/\\"/

" option = value
syn match	initngServiceOption		/.\+\s*=.\+;/ contains=initngServiceKeywords,initngSubstMacro contained
" option without value
syn match	initngServiceOption		/\w\+;/ contains=initngServiceKeywords,initngSubstMacro contained

" options with value
syn keyword	initngServiceKeywords	also_stop need use nice setuid contained
syn keyword	initngServiceKeywords	delay chdir suid sgid start_pause env_file env_parse pid_file pidfile contained
syn keyword	initngServiceKeywords	pid_of up_when_pid_set stdout stderr syncron just_before contained
syn keyword	initngServiceKeywords	provide lockfile daemon_stops_badly contained
syn match	initngServiceKeywords	/\(script\|exec\(_args\)\?\) \(start\|stop\|daemon\)/ contained
syn match	initngServiceKeywords	/env\s\+\w\+/ contained

" rlimits
syn keyword	initngServiceKeywords	rlimit_cpu_hard rlimit_core_soft contained

" single options
syn keyword	initngServiceKeywords	last respawn network_provider require_network require_file critical forks contained
" cron options
syn keyword	initngServiceKeywords	hourly contained
syn match	initngVariable			/\${\?\w\+\}\?/

" Substituted @foo@ macros:
" ==========
syn match	initngSubstMacro		/@[^@]\+@/	contained
syn cluster initngActionCluster		add=initngSubstMacro
syn cluster shCommandSubList		add=initngSubstMacro

" Comments:
" ==========
syn cluster	initngCommentGroup		contains=initngTodo,@Spell
syn keyword	initngTodo				TODO FIXME XXX contained
syn match	initngComment			/#.*$/ contains=@initngCommentGroup

" install_service #macros
" TODO: syntax check for ifd-endd pairs
" ==========
syn region	initngDefine			start="^#\(endd\|elsed\|exec\|ifd\|endexec\|endd\)\>" skip="\\$" end="$" end="#"me=s-1
syn cluster shCommentGroup			add=initngDefine
syn cluster initngCommentGroup		add=initngDefine

hi def link	initngComment			Comment
hi def link initngTodo				Todo

hi def link	initngString			String
hi def link initngServiceKeywords	Define

hi def link	initngServiceHeader		Keyword
hi def link	initngActionHeader		Type
hi def link initngDelim				Delimiter

hi def link	initngVariable			PreProc
hi def link	initngSubstMacro		Comment
hi def link	initngDefine			Macro

let b:current_syntax = "initng"
PK�j�Zb�;;vim80/syntax/flexwiki.vimnu�[���" Vim syntax file
" Language:     FlexWiki, http://www.flexwiki.com/
" Maintainer:   George V. Reilly  <george@reilly.org>
" Home:         http://www.georgevreilly.com/vim/flexwiki/
" Other Home:   http://www.vim.org/scripts/script.php?script_id=1529
" Author:       George V. Reilly
" Filenames:    *.wiki
" Last Change: Wed Apr 26 11:00 PM 2006 P
" Version:      0.3

" Note: The horrible regexps were reverse-engineered from
" FlexWikiCore\EngineSource\Formatter.cs, with help from the Regex Analyzer
" in The Regulator, http://regulator.sourceforge.net/  .NET uses Perl-style
" regexes, which use a different syntax than Vim (fewer \s).
" The primary test case is FlexWiki\FormattingRules.wiki

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" A WikiWord (unqualifiedWikiName)
syntax match  flexwikiWord          /\%(_\?\([A-Z]\{2,}[a-z0-9]\+[A-Za-z0-9]*\)\|\([A-Z][a-z0-9]\+[A-Za-z0-9]*[A-Z]\+[A-Za-z0-9]*\)\)/
" A [bracketed wiki word]
syntax match  flexwikiWord          /\[[[:alnum:]\s]\+\]/

" text: "this is a link (optional tooltip)":http://www.microsoft.com
" TODO: check URL syntax against RFC
syntax match flexwikiLink           `\("[^"(]\+\((\([^)]\+\))\)\?":\)\?\(https\?\|ftp\|gopher\|telnet\|file\|notes\|ms-help\):\(\(\(//\)\|\(\\\\\)\)\+[A-Za-z0-9:#@%/;$~_?+-=.&\-\\\\]*\)`

" text: *strong* 
syntax match flexwikiBold           /\(^\|\W\)\zs\*\([^ ].\{-}\)\*/
" '''bold'''
syntax match flexwikiBold           /'''\([^'].\{-}\)'''/

" text: _emphasis_
syntax match flexwikiItalic         /\(^\|\W\)\zs_\([^ ].\{-}\)_/
" ''italic''
syntax match flexwikiItalic         /''\([^'].\{-}\)''/

" ``deemphasis``
syntax match flexwikiDeEmphasis     /``\([^`].\{-}\)``/

" text: @code@ 
syntax match flexwikiCode           /\(^\|\s\|(\|\[\)\zs@\([^@]\+\)@/

"   text: -deleted text- 
syntax match flexwikiDelText        /\(^\|\s\+\)\zs-\([^ <a ]\|[^ <img ]\|[^ -].*\)-/

"   text: +inserted text+ 
syntax match flexwikiInsText        /\(^\|\W\)\zs+\([^ ].\{-}\)+/

"   text: ^superscript^ 
syntax match flexwikiSuperScript    /\(^\|\W\)\zs^\([^ ].\{-}\)^/

"   text: ~subscript~ 
syntax match flexwikiSubScript      /\(^\|\W\)\zs\~\([^ ].\{-}\)\~/

"   text: ??citation?? 
syntax match flexwikiCitation       /\(^\|\W\)\zs??\([^ ].\{-}\)??/

" Emoticons: must come after the Textilisms, as later rules take precedence
" over earlier ones. This match is an approximation for the ~70 distinct
" patterns that FlexWiki knows.
syntax match flexwikiEmoticons      /\((.)\|:[()|$@]\|:-[DOPS()\]|$@]\|;)\|:'(\)/

" Aggregate all the regular text highlighting into flexwikiText
syntax cluster flexwikiText contains=flexwikiItalic,flexwikiBold,flexwikiCode,flexwikiDeEmphasis,flexwikiDelText,flexwikiInsText,flexwikiSuperScript,flexwikiSubScript,flexwikiCitation,flexwikiLink,flexwikiWord,flexwikiEmoticons

" single-line WikiPropertys
syntax match flexwikiSingleLineProperty /^:\?[A-Z_][_a-zA-Z0-9]\+:/

" TODO: multi-line WikiPropertys

" Header levels, 1-6
syntax match flexwikiH1             /^!.*$/
syntax match flexwikiH2             /^!!.*$/
syntax match flexwikiH3             /^!!!.*$/
syntax match flexwikiH4             /^!!!!.*$/
syntax match flexwikiH5             /^!!!!!.*$/
syntax match flexwikiH6             /^!!!!!!.*$/

" <hr>, horizontal rule
syntax match flexwikiHR             /^----.*$/

" Formatting can be turned off by ""enclosing it in pairs of double quotes""
syntax match flexwikiEscape         /"".\{-}""/

" Tables. Each line starts and ends with '||'; each cell is separated by '||'
syntax match flexwikiTable          /||/

" Bulleted list items start with one or tabs, followed by whitespace, then '*'
" Numeric  list items start with one or tabs, followed by whitespace, then '1.'
" Eight spaces at the beginning of the line is equivalent to the leading tab.
syntax match flexwikiList           /^\(\t\| \{8}\)\s*\(\*\|1\.\).*$/   contains=@flexwikiText

" Treat all other lines that start with spaces as PRE-formatted text.
syntax match flexwikiPre            /^[ \t]\+[^ \t*1].*$/


" Link FlexWiki syntax items to colors
hi def link flexwikiH1                    Title
hi def link flexwikiH2                    flexwikiH1
hi def link flexwikiH3                    flexwikiH2
hi def link flexwikiH4                    flexwikiH3
hi def link flexwikiH5                    flexwikiH4
hi def link flexwikiH6                    flexwikiH5
hi def link flexwikiHR                    flexwikiH6
    
hi def flexwikiBold                       term=bold cterm=bold gui=bold
hi def flexwikiItalic                     term=italic cterm=italic gui=italic

hi def link flexwikiCode                  Statement
hi def link flexwikiWord                  Underlined

hi def link flexwikiEscape                Todo
hi def link flexwikiPre                   PreProc
hi def link flexwikiLink                  Underlined
hi def link flexwikiList                  Type
hi def link flexwikiTable                 Type
hi def link flexwikiEmoticons             Constant
hi def link flexwikiDelText               Comment
hi def link flexwikiDeEmphasis            Comment
hi def link flexwikiInsText               Constant
hi def link flexwikiSuperScript           Constant
hi def link flexwikiSubScript             Constant
hi def link flexwikiCitation              Constant

hi def link flexwikiSingleLineProperty    Identifier

let b:current_syntax="FlexWiki"

" vim:tw=0:
PK�j�Z���vim80/syntax/systemd.vimnu�[���" Vim syntax file
" Language:  systemd.unit(5)

if !exists('b:current_syntax')
  " Looks a lot like dosini files.
  runtime! syntax/dosini.vim
  let b:current_syntax = 'systemd'
endif
PK�j�Z8�CV	V	vim80/syntax/msql.vimnu�[���" Vim syntax file
" Language:	msql
" Maintainer:	Lutz Eymers <ixtab@polzin.com>
" URL:		http://www.isp.de/data/msql.vim
" Email:	Subject: send syntax_vim.tgz
" Last Change:	2001 May 10
"
" Options	msql_sql_query = 1 for SQL syntax highligthing inside strings
"		msql_minlines = x     to sync at least x lines backwards

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'msql'
endif

runtime! syntax/html.vim
unlet b:current_syntax

syn cluster htmlPreproc add=msqlRegion

syn case match

" Internal Variables
syn keyword msqlIntVar ERRMSG contained

" Env Variables
syn keyword msqlEnvVar SERVER_SOFTWARE SERVER_NAME SERVER_URL GATEWAY_INTERFACE contained
syn keyword msqlEnvVar SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO  contained
syn keyword msqlEnvVar PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST contained
syn keyword msqlEnvVar REMOTE_ADDR AUTH_TYPE REMOTE_USER CONTEN_TYPE  contained
syn keyword msqlEnvVar CONTENT_LENGTH HTTPS HTTPS_KEYSIZE HTTPS_SECRETKEYSIZE  contained
syn keyword msqlEnvVar HTTP_ACCECT HTTP_USER_AGENT HTTP_IF_MODIFIED_SINCE  contained
syn keyword msqlEnvVar HTTP_FROM HTTP_REFERER contained

" Inlclude lLite
syn include @msqlLite <sfile>:p:h/lite.vim

" Msql Region
syn region msqlRegion matchgroup=Delimiter start="<!$" start="<![^!->D]" end=">" contains=@msqlLite,msql.*

" sync
if exists("msql_minlines")
  exec "syn sync minlines=" . msql_minlines
else
  syn sync minlines=100
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link msqlComment		Comment
hi def link msqlString		String
hi def link msqlNumber		Number
hi def link msqlFloat		Float
hi def link msqlIdentifier	Identifier
hi def link msqlGlobalIdentifier	Identifier
hi def link msqlIntVar		Identifier
hi def link msqlEnvVar		Identifier
hi def link msqlFunctions		Function
hi def link msqlRepeat		Repeat
hi def link msqlConditional	Conditional
hi def link msqlStatement		Statement
hi def link msqlType		Type
hi def link msqlInclude		Include
hi def link msqlDefine		Define
hi def link msqlSpecialChar	SpecialChar
hi def link msqlParentError	Error
hi def link msqlTodo		Todo
hi def link msqlOperator		Operator
hi def link msqlRelation		Operator


let b:current_syntax = "msql"

if main_syntax == 'msql'
  unlet main_syntax
endif

" vim: ts=8
PK�j�ZX���
�
vim80/syntax/tpp.vimnu�[���" Vim syntax file
" Language:	tpp - Text Presentation Program
" Maintainer:   Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer:	Gerfried Fuchs <alfie@ist.org>
" Last Change:	2007-10-14
" URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/tpp.vim;hb=debian
" Filenames:	*.tpp
" License:	BSD
"
" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
"     it only because patches have been submitted for it by Debian users and the
"     former maintainer was MIA (Missing In Action), taking over its
"     maintenance was thus the only way to include those patches.
"     If you care about this file, and have time to maintain it please do so!
"
" Comments are very welcome - but please make sure that you are commenting on
" the latest version of this file.
" SPAM is _NOT_ welcome - be ready to be reported!

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'tpp'
endif


"" list of the legal switches/options
syn match tppAbstractOptionKey contained "^--\%(author\|title\|date\|footer\) *" nextgroup=tppString
syn match tppPageLocalOptionKey contained "^--\%(heading\|center\|right\|huge\|sethugefont\|exec\) *" nextgroup=tppString
syn match tppPageLocalSwitchKey contained "^--\%(horline\|-\|\%(begin\|end\)\%(\%(shell\)\?output\|slide\%(left\|right\|top\|bottom\)\)\|\%(bold\|rev\|ul\)\%(on\|off\)\|withborder\)"
syn match tppNewPageOptionKey contained "^--newpage *" nextgroup=tppString
syn match tppColorOptionKey contained "^--\%(\%(bg\|fg\)\?color\) *"
syn match tppTimeOptionKey contained "^--sleep *"

syn match tppString contained ".*"
syn match tppColor contained "\%(white\|yellow\|red\|green\|blue\|cyan\|magenta\|black\|default\)"
syn match tppTime contained "\d\+"

syn region tppPageLocalSwitch start="^--" end="$" contains=tppPageLocalSwitchKey oneline
syn region tppColorOption start="^--\%(\%(bg\|fg\)\?color\)" end="$" contains=tppColorOptionKey,tppColor oneline
syn region tppTimeOption start="^--sleep" end="$" contains=tppTimeOptionKey,tppTime oneline
syn region tppNewPageOption start="^--newpage" end="$" contains=tppNewPageOptionKey oneline
syn region tppPageLocalOption start="^--\%(heading\|center\|right\|huge\|sethugefont\|exec\)" end="$" contains=tppPageLocalOptionKey oneline
syn region tppAbstractOption start="^--\%(author\|title\|date\|footer\)" end="$" contains=tppAbstractOptionKey oneline

if main_syntax != 'sh'
  " shell command
  syn include @tppShExec syntax/sh.vim
  unlet b:current_syntax

  syn region shExec matchgroup=tppPageLocalOptionKey start='^--exec *' keepend end='$' contains=@tppShExec

endif

syn match tppComment "^--##.*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link tppAbstractOptionKey		Special
hi def link tppPageLocalOptionKey		Keyword
hi def link tppPageLocalSwitchKey		Keyword
hi def link tppColorOptionKey		Keyword
hi def link tppTimeOptionKey		Comment
hi def link tppNewPageOptionKey		PreProc
hi def link tppString			String
hi def link tppColor			String
hi def link tppTime			Number
hi def link tppComment			Comment
hi def link tppAbstractOption		Error
hi def link tppPageLocalOption		Error
hi def link tppPageLocalSwitch		Error
hi def link tppColorOption			Error
hi def link tppNewPageOption		Error
hi def link tppTimeOption			Error


let b:current_syntax = "tpp"

" vim: ts=8 sw=2
PK�j�Z��?���vim80/syntax/texmf.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: Web2C TeX texmf.cnf configuration file
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2001-05-13
" URL: http://physics.muni.cz/~yeti/download/syntax/texmf.vim

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" Comments
syn match texmfComment "%..\+$" contains=texmfTodo
syn match texmfComment "%\s*$" contains=texmfTodo
syn keyword texmfTodo TODO FIXME XXX NOT contained

" Constants and parameters
syn match texmfPassedParameter "[-+]\=%\w\W"
syn match texmfPassedParameter "[-+]\=%\w$"
syn match texmfNumber "\<\d\+\>"
syn match texmfVariable "\$\(\w\k*\|{\w\k*}\)"
syn match texmfSpecial +\\"\|\\$+
syn region texmfString start=+"+ end=+"+ skip=+\\"\\\\+ contains=texmfVariable,texmfSpecial,texmfPassedParameter

" Assignments
syn match texmfLHSStart "^\s*\w\k*" nextgroup=texmfLHSDot,texmfEquals
syn match texmfLHSVariable "\w\k*" contained nextgroup=texmfLHSDot,texmfEquals
syn match texmfLHSDot "\." contained nextgroup=texmfLHSVariable
syn match texmfEquals "\s*=" contained

" Specialities
syn match texmfComma "," contained
syn match texmfColons ":\|;"
syn match texmfDoubleExclam "!!" contained

" Catch errors caused by wrong parenthesization
syn region texmfBrace matchgroup=texmfBraceBrace start="{" end="}" contains=ALLBUT,texmfTodo,texmfBraceError,texmfLHSVariable,texmfLHSDot transparent
syn match texmfBraceError "}"

" Define the default highlighting

hi def link texmfComment Comment
hi def link texmfTodo Todo

hi def link texmfPassedParameter texmfVariable
hi def link texmfVariable Identifier

hi def link texmfNumber Number
hi def link texmfString String

hi def link texmfLHSStart texmfLHS
hi def link texmfLHSVariable texmfLHS
hi def link texmfLHSDot texmfLHS
hi def link texmfLHS Type

hi def link texmfEquals Normal

hi def link texmfBraceBrace texmfDelimiter
hi def link texmfComma texmfDelimiter
hi def link texmfColons texmfDelimiter
hi def link texmfDelimiter Preproc

hi def link texmfDoubleExclam Statement
hi def link texmfSpecial Special

hi def link texmfBraceError texmfError
hi def link texmfError Error


let b:current_syntax = "texmf"
PK�j�Z_�_ZZvim80/syntax/web.vimnu�[���" Vim syntax file
" Language:	WEB
" Maintainer:	Andreas Scherer <andreas.scherer@pobox.com>
" Last Change:	April 30, 2001

" Details of the WEB language can be found in the article by Donald E. Knuth,
" "The WEB System of Structured Documentation", included as "webman.tex" in
" the standard WEB distribution, available for anonymous ftp at
" ftp://labrea.stanford.edu/pub/tex/web/.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Although WEB is the ur-language for the "Literate Programming" paradigm,
" we base this syntax file on the modern superset, CWEB.  Note: This shortcut
" may introduce some illegal constructs, e.g., CWEB's "@c" does _not_ start a
" code section in WEB.  Anyway, I'm not a WEB programmer.
runtime! syntax/cweb.vim
unlet b:current_syntax

" Replace C/C++ syntax by Pascal syntax.
syntax include @webIncludedC <sfile>:p:h/pascal.vim

" Double-@ means single-@, anywhere in the WEB source (as in CWEB).
" Don't misinterpret "@'" as the start of a Pascal string.
syntax match webIgnoredStuff "@[@']"

let b:current_syntax = "web"

" vim: ts=8
PK�j�Z*�����vim80/syntax/occam.vimnu�[���" Vim syntax file
" Language:	occam
" Copyright:	Fred Barnes <frmb2@kent.ac.uk>, Mario Schweigler <ms44@kent.ac.uk>
" Maintainer:	Mario Schweigler <ms44@kent.ac.uk>
" Last Change:	24 May 2003

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

"{{{  Settings
" Set shift width for indent
setlocal shiftwidth=2
" Set the tab key size to two spaces
setlocal softtabstop=2
" Let tab keys always be expanded to spaces
setlocal expandtab

" Dots are valid in occam identifiers
setlocal iskeyword+=.
"}}}

syn case match

syn keyword occamType		BYTE BOOL INT INT16 INT32 INT64 REAL32 REAL64 ANY
syn keyword occamType		CHAN DATA OF TYPE TIMER INITIAL VAL PORT MOBILE PLACED
syn keyword occamType		PROCESSOR PACKED RECORD PROTOCOL SHARED ROUND TRUNC

syn keyword occamStructure	SEQ PAR IF ALT PRI FORKING PLACE AT

syn keyword occamKeyword	PROC IS TRUE FALSE SIZE RECURSIVE REC
syn keyword occamKeyword	RETYPES RESHAPES STEP FROM FOR RESCHEDULE STOP SKIP FORK
syn keyword occamKeyword	FUNCTION VALOF RESULT ELSE CLONE CLAIM
syn keyword occamBoolean	TRUE FALSE
syn keyword occamRepeat		WHILE
syn keyword occamConditional	CASE
syn keyword occamConstant	MOSTNEG MOSTPOS

syn match occamBrackets		/\[\|\]/
syn match occamParantheses	/(\|)/

syn keyword occamOperator	AFTER TIMES MINUS PLUS INITIAL REM AND OR XOR NOT
syn keyword occamOperator	BITAND BITOR BITNOT BYTESIN OFFSETOF

syn match occamOperator		/::\|:=\|?\|!/
syn match occamOperator		/<\|>\|+\|-\|\*\|\/\|\\\|=\|\~/
syn match occamOperator		/@\|\$\$\|%\|&&\|<&\|&>\|<\]\|\[>\|\^/

syn match occamSpecialChar	/\M**\|*'\|*"\|*#\(\[0-9A-F\]\+\)/ contained
syn match occamChar		/\M\L\='\[^*\]'/
syn match occamChar		/L'[^']*'/ contains=occamSpecialChar

syn case ignore
syn match occamTodo		/\<todo\>:\=/ contained
syn match occamNote		/\<note\>:\=/ contained
syn case match
syn keyword occamNote		NOT contained

syn match occamComment		/--.*/ contains=occamCommentTitle,occamTodo,occamNote
syn match occamCommentTitle	/--\s*\u\a*\(\s\+\u\a*\)*:/hs=s+2 contained contains=occamTodo,occamNote
syn match occamCommentTitle	/--\s*KROC-LIBRARY\(\.so\|\.a\)\=\s*$/hs=s+2 contained
syn match occamCommentTitle	/--\s*\(KROC-OPTIONS:\|RUN-PARAMETERS:\)/hs=s+2 contained

syn match occamIdentifier	/\<[A-Z.][A-Z.0-9]*\>/
syn match occamFunction		/\<[A-Za-z.][A-Za-z0-9.]*\>/ contained

syn match occamPPIdentifier	/##.\{-}\>/

syn region occamString		start=/"/ skip=/\M*"/ end=/"/ contains=occamSpecialChar
syn region occamCharString	start=/'/ end=/'/ contains=occamSpecialChar

syn match occamNumber		/\<\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/
syn match occamNumber		/-\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/
syn match occamNumber		/#\(\d\|[A-F]\)\+/
syn match occamNumber		/-#\(\d\|[A-F]\)\+/

syn keyword occamCDString	SHARED EXTERNAL DEFINED NOALIAS NOUSAGE NOT contained
syn keyword occamCDString	FILE LINE PROCESS.PRIORITY OCCAM2.5 contained
syn keyword occamCDString	USER.DEFINED.OPERATORS INITIAL.DECL MOBILES contained
syn keyword occamCDString	BLOCKING.SYSCALLS VERSION NEED.QUAD.ALIGNMENT contained
syn keyword occamCDString	TARGET.CANONICAL TARGET.CPU TARGET.OS TARGET.VENDOR contained
syn keyword occamCDString	TRUE FALSE AND OR contained
syn match occamCDString		/<\|>\|=\|(\|)/ contained

syn region occamCDirective	start=/#\(USE\|INCLUDE\|PRAGMA\|DEFINE\|UNDEFINE\|UNDEF\|IF\|ELIF\|ELSE\|ENDIF\|WARNING\|ERROR\|RELAX\)\>/ end=/$/ contains=occamString,occamComment,occamCDString


hi def link occamType Type
hi def link occamKeyword Keyword
hi def link occamComment Comment
hi def link occamCommentTitle PreProc
hi def link occamTodo Todo
hi def link occamNote Todo
hi def link occamString String
hi def link occamCharString String
hi def link occamNumber Number
hi def link occamCDirective PreProc
hi def link occamCDString String
hi def link occamPPIdentifier PreProc
hi def link occamBoolean Boolean
hi def link occamSpecialChar SpecialChar
hi def link occamChar Character
hi def link occamStructure Structure
hi def link occamIdentifier Identifier
hi def link occamConstant Constant
hi def link occamOperator Operator
hi def link occamFunction Ignore
hi def link occamRepeat Repeat
hi def link occamConditional Conditional
hi def link occamBrackets Type
hi def link occamParantheses Delimiter


let b:current_syntax = "occam"

PK�j�Z�İC�1�1vim80/syntax/vrml.vimnu�[���" Vim syntax file
" Language:	   VRML97
" Modified from:   VRML 1.0C by David Brown <dbrown@cgs.c4.gmeds.com>
" Maintainer:	   vacancy!
" Former Maintainer:    Gregory Seidman <gsslist+vim@anthropohedron.net>
" Last change:	   2006 May 03

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" keyword definitions

syn keyword VRMLFields	       ambientIntensity appearance attenuation
syn keyword VRMLFields	       autoOffset avatarSize axisOfRotation backUrl
syn keyword VRMLFields	       bboxCenter bboxSize beamWidth beginCap
syn keyword VRMLFields	       bottom bottomRadius bottomUrl ccw center
syn keyword VRMLFields	       children choice collide color colorIndex
syn keyword VRMLFields	       colorPerVertex convex coord coordIndex
syn keyword VRMLFields	       creaseAngle crossSection cutOffAngle
syn keyword VRMLFields	       cycleInterval description diffuseColor
syn keyword VRMLFields	       directOutput direction diskAngle
syn keyword VRMLFields	       emissiveColor enabled endCap family
syn keyword VRMLFields	       fieldOfView fogType fontStyle frontUrl
syn keyword VRMLFields	       geometry groundAngle groundColor headlight
syn keyword VRMLFields	       height horizontal info intensity jump
syn keyword VRMLFields	       justify key keyValue language leftToRight
syn keyword VRMLFields	       leftUrl length level location loop material
syn keyword VRMLFields	       maxAngle maxBack maxExtent maxFront
syn keyword VRMLFields	       maxPosition minAngle minBack minFront
syn keyword VRMLFields	       minPosition mustEvaluate normal normalIndex
syn keyword VRMLFields	       normalPerVertex offset on orientation
syn keyword VRMLFields	       parameter pitch point position priority
syn keyword VRMLFields	       proxy radius range repeatS repeatT rightUrl
syn keyword VRMLFields	       rotation scale scaleOrientation shininess
syn keyword VRMLFields	       side size skyAngle skyColor solid source
syn keyword VRMLFields	       spacing spatialize specularColor speed spine
syn keyword VRMLFields	       startTime stopTime string style texCoord
syn keyword VRMLFields	       texCoordIndex texture textureTransform title
syn keyword VRMLFields	       top topToBottom topUrl translation
syn keyword VRMLFields	       transparency type url vector visibilityLimit
syn keyword VRMLFields	       visibilityRange whichChoice xDimension
syn keyword VRMLFields	       xSpacing zDimension zSpacing
syn match   VRMLFields	       "\<[A-Za-z_][A-Za-z0-9_]*\>" contains=VRMLComment,VRMLProtos,VRMLfTypes
" syn match   VRMLFields	 "\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*\<IS\>\(#.*$\)*\(,\|\s\)*\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*" contains=VRMLComment,VRMLProtos
" syn region  VRMLFields	 start="\<[A-Za-z_][A-Za-z0-9_]*\>" end=+\(,\|#\|\s\)+me=e-1 contains=VRMLComment,VRMLProtos

syn keyword VRMLEvents	       addChildren ambientIntensity_changed
syn keyword VRMLEvents	       appearance_changed attenuation_changed
syn keyword VRMLEvents	       autoOffset_changed avatarSize_changed
syn keyword VRMLEvents	       axisOfRotation_changed backUrl_changed
syn keyword VRMLEvents	       beamWidth_changed bindTime bottomUrl_changed
syn keyword VRMLEvents	       center_changed children_changed
syn keyword VRMLEvents	       choice_changed collideTime collide_changed
syn keyword VRMLEvents	       color_changed coord_changed
syn keyword VRMLEvents	       cutOffAngle_changed cycleInterval_changed
syn keyword VRMLEvents	       cycleTime description_changed
syn keyword VRMLEvents	       diffuseColor_changed direction_changed
syn keyword VRMLEvents	       diskAngle_changed duration_changed
syn keyword VRMLEvents	       emissiveColor_changed enabled_changed
syn keyword VRMLEvents	       enterTime exitTime fogType_changed
syn keyword VRMLEvents	       fontStyle_changed fraction_changed
syn keyword VRMLEvents	       frontUrl_changed geometry_changed
syn keyword VRMLEvents	       groundAngle_changed headlight_changed
syn keyword VRMLEvents	       hitNormal_changed hitPoint_changed
syn keyword VRMLEvents	       hitTexCoord_changed intensity_changed
syn keyword VRMLEvents	       isActive isBound isOver jump_changed
syn keyword VRMLEvents	       keyValue_changed key_changed leftUrl_changed
syn keyword VRMLEvents	       length_changed level_changed
syn keyword VRMLEvents	       location_changed loop_changed
syn keyword VRMLEvents	       material_changed maxAngle_changed
syn keyword VRMLEvents	       maxBack_changed maxExtent_changed
syn keyword VRMLEvents	       maxFront_changed maxPosition_changed
syn keyword VRMLEvents	       minAngle_changed minBack_changed
syn keyword VRMLEvents	       minFront_changed minPosition_changed
syn keyword VRMLEvents	       normal_changed offset_changed on_changed
syn keyword VRMLEvents	       orientation_changed parameter_changed
syn keyword VRMLEvents	       pitch_changed point_changed position_changed
syn keyword VRMLEvents	       priority_changed radius_changed
syn keyword VRMLEvents	       removeChildren rightUrl_changed
syn keyword VRMLEvents	       rotation_changed scaleOrientation_changed
syn keyword VRMLEvents	       scale_changed set_ambientIntensity
syn keyword VRMLEvents	       set_appearance set_attenuation
syn keyword VRMLEvents	       set_autoOffset set_avatarSize
syn keyword VRMLEvents	       set_axisOfRotation set_backUrl set_beamWidth
syn keyword VRMLEvents	       set_bind set_bottomUrl set_center
syn keyword VRMLEvents	       set_children set_choice set_collide
syn keyword VRMLEvents	       set_color set_colorIndex set_coord
syn keyword VRMLEvents	       set_coordIndex set_crossSection
syn keyword VRMLEvents	       set_cutOffAngle set_cycleInterval
syn keyword VRMLEvents	       set_description set_diffuseColor
syn keyword VRMLEvents	       set_direction set_diskAngle
syn keyword VRMLEvents	       set_emissiveColor set_enabled set_fogType
syn keyword VRMLEvents	       set_fontStyle set_fraction set_frontUrl
syn keyword VRMLEvents	       set_geometry set_groundAngle set_headlight
syn keyword VRMLEvents	       set_height set_intensity set_jump set_key
syn keyword VRMLEvents	       set_keyValue set_leftUrl set_length
syn keyword VRMLEvents	       set_level set_location set_loop set_material
syn keyword VRMLEvents	       set_maxAngle set_maxBack set_maxExtent
syn keyword VRMLEvents	       set_maxFront set_maxPosition set_minAngle
syn keyword VRMLEvents	       set_minBack set_minFront set_minPosition
syn keyword VRMLEvents	       set_normal set_normalIndex set_offset set_on
syn keyword VRMLEvents	       set_orientation set_parameter set_pitch
syn keyword VRMLEvents	       set_point set_position set_priority
syn keyword VRMLEvents	       set_radius set_rightUrl set_rotation
syn keyword VRMLEvents	       set_scale set_scaleOrientation set_shininess
syn keyword VRMLEvents	       set_size set_skyAngle set_skyColor
syn keyword VRMLEvents	       set_source set_specularColor set_speed
syn keyword VRMLEvents	       set_spine set_startTime set_stopTime
syn keyword VRMLEvents	       set_string set_texCoord set_texCoordIndex
syn keyword VRMLEvents	       set_texture set_textureTransform set_topUrl
syn keyword VRMLEvents	       set_translation set_transparency set_type
syn keyword VRMLEvents	       set_url set_vector set_visibilityLimit
syn keyword VRMLEvents	       set_visibilityRange set_whichChoice
syn keyword VRMLEvents	       shininess_changed size_changed
syn keyword VRMLEvents	       skyAngle_changed skyColor_changed
syn keyword VRMLEvents	       source_changed specularColor_changed
syn keyword VRMLEvents	       speed_changed startTime_changed
syn keyword VRMLEvents	       stopTime_changed string_changed
syn keyword VRMLEvents	       texCoord_changed textureTransform_changed
syn keyword VRMLEvents	       texture_changed time topUrl_changed
syn keyword VRMLEvents	       touchTime trackPoint_changed
syn keyword VRMLEvents	       translation_changed transparency_changed
syn keyword VRMLEvents	       type_changed url_changed value_changed
syn keyword VRMLEvents	       vector_changed visibilityLimit_changed
syn keyword VRMLEvents	       visibilityRange_changed whichChoice_changed
syn region  VRMLEvents	       start="\S+[^0-9]+\.[A-Za-z_]+"ms=s+1 end="\(,\|$\|\s\)"me=e-1

syn keyword VRMLNodes	       Anchor Appearance AudioClip Background
syn keyword VRMLNodes	       Billboard Box Collision Color
syn keyword VRMLNodes	       ColorInterpolator Cone Coordinate
syn keyword VRMLNodes	       CoordinateInterpolator Cylinder
syn keyword VRMLNodes	       CylinderSensor DirectionalLight
syn keyword VRMLNodes	       ElevationGrid Extrusion Fog FontStyle
syn keyword VRMLNodes	       Group ImageTexture IndexedFaceSet
syn keyword VRMLNodes	       IndexedLineSet Inline LOD Material
syn keyword VRMLNodes	       MovieTexture NavigationInfo Normal
syn keyword VRMLNodes	       NormalInterpolator OrientationInterpolator
syn keyword VRMLNodes	       PixelTexture PlaneSensor PointLight
syn keyword VRMLNodes	       PointSet PositionInterpolator
syn keyword VRMLNodes	       ProximitySensor ScalarInterpolator
syn keyword VRMLNodes	       Script Shape Sound Sphere SphereSensor
syn keyword VRMLNodes	       SpotLight Switch Text TextureCoordinate
syn keyword VRMLNodes	       TextureTransform TimeSensor TouchSensor
syn keyword VRMLNodes	       Transform Viewpoint VisibilitySensor
syn keyword VRMLNodes	       WorldInfo

" the following line doesn't catch <node><newline><openbrace> since \n
" doesn't match as an atom yet :-(
syn match   VRMLNodes	       "[A-Za-z_][A-Za-z0-9_]*\(,\|\s\)*{"me=e-1
syn region  VRMLNodes	       start="\<EXTERNPROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="\<EXTERNPROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment
syn region  VRMLNodes	       start="PROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="PROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment

syn keyword VRMLTypes	       SFBool SFColor MFColor SFFloat MFFloat
syn keyword VRMLTypes	       SFImage SFInt32 MFInt32 SFNode MFNode
syn keyword VRMLTypes	       SFRotation MFRotation SFString MFString
syn keyword VRMLTypes	       SFTime MFTime SFVec2f MFVec2f SFVec3f MFVec3f

syn keyword VRMLfTypes	       field exposedField eventIn eventOut

syn keyword VRMLValues	       TRUE FALSE NULL

syn keyword VRMLProtos	       contained EXTERNPROTO PROTO IS

syn keyword VRMLRoutes	       contained ROUTE TO

"containment!
syn include @jscript $VIMRUNTIME/syntax/javascript.vim
syn region VRMLjScriptString contained start=+"\(\(javascript\)\|\(vrmlscript\)\|\(ecmascript\)\):+ms=e+1 skip=+\\\\\|\\"+ end=+"+me=e-1 contains=@jscript

" match definitions.
syn match   VRMLSpecial		  contained "\\[0-9][0-9][0-9]\|\\."
syn region  VRMLString		  start=+"+  skip=+\\\\\|\\"+  end=+"+	contains=VRMLSpecial,VRMLjScriptString
syn match   VRMLCharacter	  "'[^\\]'"
syn match   VRMLSpecialCharacter  "'\\.'"
syn match   VRMLNumber		  "[-+]\=\<[0-9]\+\(\.[0-9]\+\)\=\([eE]\{1}[-+]\=[0-9]\+\)\=\>\|0[xX][0-9a-fA-F]\+\>"
syn match   VRMLNumber		  "0[xX][0-9a-fA-F]\+\>"
syn match   VRMLComment		  "#.*$"

" newlines should count as whitespace, but they can't be matched yet :-(
syn region  VRMLRouteNode	  start="[^O]TO\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment
syn region  VRMLRouteNode	  start="ROUTE\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment
syn region  VRMLInstName	  start="DEF\>"hs=e+1 skip="DEF\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment
syn region  VRMLInstName	  start="USE\>"hs=e+1 skip="USE\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment

syn keyword VRMLInstances      contained DEF USE
syn sync minlines=1

"FOLDS!
syn sync fromstart
"setlocal foldmethod=syntax
syn region braceFold start="{" end="}" transparent fold contains=TOP
syn region bracketFold start="\[" end="]" transparent fold contains=TOP
syn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ fold contains=VRMLSpecial,VRMLjScriptString

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link VRMLCharacter  VRMLString
hi def link VRMLSpecialCharacter VRMLSpecial
hi def link VRMLNumber     VRMLString
hi def link VRMLValues     VRMLString
hi def link VRMLString     String
hi def link VRMLSpecial    Special
hi def link VRMLComment    Comment
hi def link VRMLNodes      Statement
hi def link VRMLFields     Type
hi def link VRMLEvents     Type
hi def link VRMLfTypes     LineNr
"  hi     VRMLfTypes     ctermfg=6 guifg=Brown
hi def link VRMLInstances  PreCondit
hi def link VRMLRoutes     PreCondit
hi def link VRMLProtos     PreProc
hi def link VRMLRouteNode  Identifier
hi def link VRMLInstName   Identifier
hi def link VRMLTypes      Identifier


let b:current_syntax = "vrml"

" vim: ts=8
PK�j�Z^��vim80/syntax/xkb.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: XKB (X Keyboard Extension) components
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2003-04-13
" URL: http://trific.ath.cx/Ftp/vim/syntax/xkb.vim

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn case match
syn sync minlines=100

" Comments
syn region xkbComment start="//" skip="\\$" end="$" keepend contains=xkbTodo
syn region xkbComment start="/\*" matchgroup=NONE end="\*/" contains=xkbCommentStartError,xkbTodo
syn match xkbCommentError "\*/"
syntax match xkbCommentStartError "/\*" contained
syn sync ccomment xkbComment
syn keyword xkbTodo TODO FIXME contained

" Literal strings
syn match xkbSpecialChar "\\\d\d\d\|\\." contained
syn region xkbString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=xkbSpecialChar oneline

" Catch errors caused by wrong parenthesization
syn region xkbParen start='(' end=')' contains=ALLBUT,xkbParenError,xkbSpecial,xkbTodo transparent
syn match xkbParenError ")"
syn region xkbBrace start='{' end='}' contains=ALLBUT,xkbBraceError,xkbSpecial,xkbTodo transparent
syn match xkbBraceError "}"
syn region xkbBracket start='\[' end='\]' contains=ALLBUT,xkbBracketError,xkbSpecial,xkbTodo transparent
syn match xkbBracketError "\]"

" Physical keys
syn match xkbPhysicalKey "<\w\+>"

" Keywords
syn keyword xkbPreproc augment include replace
syn keyword xkbConstant False True
syn keyword xkbModif override replace
syn keyword xkbIdentifier action affect alias allowExplicit approx baseColor button clearLocks color controls cornerRadius count ctrls description driveskbd font fontSize gap group groups height indicator indicatorDrivesKeyboard interpret key keys labelColor latchToLock latchMods left level_name map maximum minimum modifier_map modifiers name offColor onColor outline preserve priority repeat row section section setMods shape slant solid symbols text top type useModMapMods virtualModifier virtualMods virtual_modifiers weight whichModState width
syn keyword xkbFunction AnyOf ISOLock LatchGroup LatchMods LockControls LockGroup LockMods LockPointerButton MovePtr NoAction PointerButton SetControls SetGroup SetMods SetPtrDflt Terminate
syn keyword xkbTModif default hidden partial virtual
syn keyword xkbSect alphanumeric_keys alternate_group function_keys keypad_keys modifier_keys xkb_compatibility xkb_geometry xkb_keycodes xkb_keymap xkb_semantics xkb_symbols xkb_types

" Define the default highlighting

hi def link xkbModif xkbPreproc
hi def link xkbTModif xkbPreproc
hi def link xkbPreproc Preproc

hi def link xkbIdentifier Keyword
hi def link xkbFunction Function
hi def link xkbSect Type
hi def link xkbPhysicalKey Identifier
hi def link xkbKeyword Keyword

hi def link xkbComment Comment
hi def link xkbTodo Todo

hi def link xkbConstant Constant
hi def link xkbString String

hi def link xkbSpecialChar xkbSpecial
hi def link xkbSpecial Special

hi def link xkbParenError xkbBalancingError
hi def link xkbBraceError xkbBalancingError
hi def link xkbBraketError xkbBalancingError
hi def link xkbBalancingError xkbError
hi def link xkbCommentStartError xkbCommentError
hi def link xkbCommentError xkbError
hi def link xkbError Error


let b:current_syntax = "xkb"
PK�j�Z��s��vim80/syntax/tads.vimnu�[���" Vim syntax file
" Language:	TADS
" Maintainer:	Amir Karger <karger@post.harvard.edu>
" $Date: 2004/06/13 19:28:45 $
" $Revision: 1.1 $
" Stolen from: Bram Moolenaar's C language file
" Newest version at: http://www.hec.utah.edu/~karger/vim/syntax/tads.vim
" History info at the bottom of the file

" TODO lots more keywords
" global, self, etc. are special *objects*, not functions. They should
" probably be a different color than the special functions
" Actually, should cvtstr etc. be functions?! (change tadsFunction)
" Make global etc. into Identifiers, since we don't have regular variables?

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful keywords
syn keyword tadsStatement	goto break return continue pass
syn keyword tadsLabel		case default
syn keyword tadsConditional	if else switch
syn keyword tadsRepeat		while for do
syn keyword tadsStorageClass	local compoundWord formatstring specialWords
syn keyword tadsBoolean		nil true

" TADS keywords
syn keyword tadsKeyword		replace modify
syn keyword tadsKeyword		global self inherited
" builtin functions
syn keyword tadsKeyword		cvtstr cvtnum caps lower upper substr
syn keyword tadsKeyword		say length
syn keyword tadsKeyword		setit setscore
syn keyword tadsKeyword		datatype proptype
syn keyword tadsKeyword		car cdr
syn keyword tadsKeyword		defined isclass
syn keyword tadsKeyword		find firstobj nextobj
syn keyword tadsKeyword		getarg argcount
syn keyword tadsKeyword		input yorn askfile
syn keyword tadsKeyword		rand randomize
syn keyword tadsKeyword		restart restore quit save undo
syn keyword tadsException	abort exit exitobj

syn keyword tadsTodo contained	TODO FIXME XXX

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match tadsSpecial contained	"\\."
syn region tadsDoubleString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tadsSpecial,tadsEmbedded
syn region tadsSingleString		start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=tadsSpecial
" Embedded expressions in strings
syn region tadsEmbedded contained       start="<<" end=">>" contains=tadsKeyword

" TADS doesn't have \xxx, right?
"syn match cSpecial contained	"\\[0-7][0-7][0-7]\=\|\\."
"syn match cSpecialCharacter	"'\\[0-7][0-7]'"
"syn match cSpecialCharacter	"'\\[0-7][0-7][0-7]'"

"catch errors caused by wrong parenthesis
"syn region cParen		transparent start='(' end=')' contains=ALLBUT,cParenError,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel
"syn match cParenError		")"
"syn match cInParen contained	"[{}]"
syn region tadsBrace		transparent start='{' end='}' contains=ALLBUT,tadsBraceError,tadsIncluded,tadsSpecial,tadsTodo
syn match tadsBraceError		"}"

"integer number (TADS has no floating point numbers)
syn case ignore
syn match tadsNumber		"\<[0-9]\+\>"
"hex number
syn match tadsNumber		"\<0x[0-9a-f]\+\>"
syn match tadsIdentifier	"\<[a-z][a-z0-9_$]*\>"
syn case match
" flag an octal number with wrong digits
syn match tadsOctalError		"\<0[0-7]*[89]"

" Removed complicated c_comment_strings
syn region tadsComment		start="/\*" end="\*/" contains=tadsTodo
syn match tadsComment		"//.*" contains=tadsTodo
syntax match tadsCommentError	"\*/"

syn region tadsPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tadsComment,tadsString,tadsNumber,tadsCommentError
syn region tadsIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match tadsIncluded contained "<[^>]*>"
syn match tadsInclude		"^\s*#\s*include\>\s*["<]" contains=tadsIncluded
syn region tadsDefine		start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInBrace,tadsIdentifier

syn region tadsPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInParen,tadsIdentifier

" Highlight User Labels
" TODO labels for gotos?
"syn region	cMulti		transparent start='?' end=':' contains=ALLBUT,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel,cBitField
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
"syn match	cUserCont	"^\s*\I\i*\s*:$" contains=cUserLabel
"syn match	cUserCont	";\s*\I\i*\s*:$" contains=cUserLabel
"syn match	cUserCont	"^\s*\I\i*\s*:[^:]" contains=cUserLabel
"syn match	cUserCont	";\s*\I\i*\s*:[^:]" contains=cUserLabel

"syn match	cUserLabel	"\I\i*" contained

" identifier: class-name [, class-name [...]] [property-list] ;
" Don't highlight comment in class def
syn match tadsClassDef		"\<class\>[^/]*" contains=tadsObjectDef,tadsClass
syn match tadsClass contained   "\<class\>"
syn match tadsObjectDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*[a-zA-Z0-9_$]\+\(\s*,\s*[a-zA-Z][a-zA-Z0-9_$]*\)*\(\s*;\)\="
syn keyword tadsFunction contained function
syn match tadsFunctionDef	 "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*function[^{]*" contains=tadsFunction
"syn region tadsObject		  transparent start = '[a-zA-Z][\i$]\s*:\s*' end=";" contains=tadsBrace,tadsObjectDef

" How far back do we go to find matching groups
if !exists("tads_minlines")
  let tads_minlines = 15
endif
exec "syn sync ccomment tadsComment minlines=" . tads_minlines
if !exists("tads_sync_dist")
  let tads_sync_dist = 100
endif
execute "syn sync maxlines=" . tads_sync_dist

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link tadsFunctionDef Function
hi def link tadsFunction  Structure
hi def link tadsClass     Structure
hi def link tadsClassDef  Identifier
hi def link tadsObjectDef Identifier
" no highlight for tadsEmbedded, so it prints as normal text w/in the string

hi def link tadsOperator	Operator
hi def link tadsStructure	Structure
hi def link tadsTodo	Todo
hi def link tadsLabel	Label
hi def link tadsConditional	Conditional
hi def link tadsRepeat	Repeat
hi def link tadsException	Exception
hi def link tadsStatement	Statement
hi def link tadsStorageClass	StorageClass
hi def link tadsKeyWord   Keyword
hi def link tadsSpecial	SpecialChar
hi def link tadsNumber	Number
hi def link tadsBoolean	Boolean
hi def link tadsDoubleString	tadsString
hi def link tadsSingleString	tadsString

hi def link tadsOctalError	tadsError
hi def link tadsCommentError	tadsError
hi def link tadsBraceError	tadsError
hi def link tadsInBrace	tadsError
hi def link tadsError	Error

hi def link tadsInclude	Include
hi def link tadsPreProc	PreProc
hi def link tadsDefine	Macro
hi def link tadsIncluded	tadsString
hi def link tadsPreCondit	PreCondit

hi def link tadsString	String
hi def link tadsComment	Comment



let b:current_syntax = "tads"

" Changes:
" 11/18/99 Added a bunch of TADS functions, tadsException
" 10/22/99 Misspelled Moolenaar (sorry!), c_minlines to tads_minlines
"
" vim: ts=8
PK�j�Z���9��vim80/syntax/lite.vimnu�[���" Vim syntax file
" Language:	lite
" Maintainer:	Lutz Eymers <ixtab@polzin.com>
" URL:		http://www.isp.de/data/lite.vim
" Email:	Subject: send syntax_vim.tgz
" Last Change:	2001 Mai 01
"
" Options	lite_sql_query = 1 for SQL syntax highligthing inside strings
"		lite_minlines = x     to sync at least x lines backwards

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'lite'
endif

if main_syntax == 'lite'
  if exists("lite_sql_query")
    if lite_sql_query == 1
      syn include @liteSql <sfile>:p:h/sql.vim
      unlet b:current_syntax
    endif
  endif
endif

if main_syntax == 'msql'
  if exists("msql_sql_query")
    if msql_sql_query == 1
      syn include @liteSql <sfile>:p:h/sql.vim
      unlet b:current_syntax
    endif
  endif
endif

syn cluster liteSql remove=sqlString,sqlComment

syn case match

" Internal Variables
syn keyword liteIntVar ERRMSG contained

" Comment
syn region liteComment		start="/\*" end="\*/" contains=liteTodo

" Function names
syn keyword liteFunctions  echo printf fprintf open close read
syn keyword liteFunctions  readln readtok
syn keyword liteFunctions  split strseg chop tr sub substr
syn keyword liteFunctions  test unlink umask chmod mkdir chdir rmdir
syn keyword liteFunctions  rename truncate link symlink stat
syn keyword liteFunctions  sleep system getpid getppid kill
syn keyword liteFunctions  time ctime time2unixtime unixtime2year
syn keyword liteFunctions  unixtime2year unixtime2month unixtime2day
syn keyword liteFunctions  unixtime2hour unixtime2min unixtime2sec
syn keyword liteFunctions  strftime
syn keyword liteFunctions  getpwnam getpwuid
syn keyword liteFunctions  gethostbyname gethostbyaddress
syn keyword liteFunctions  urlEncode setContentType includeFile
syn keyword liteFunctions  msqlConnect msqlClose msqlSelectDB
syn keyword liteFunctions  msqlQuery msqlStoreResult msqlFreeResult
syn keyword liteFunctions  msqlFetchRow msqlDataSeek msqlListDBs
syn keyword liteFunctions  msqlListTables msqlInitFieldList msqlListField
syn keyword liteFunctions  msqlFieldSeek msqlNumRows msqlEncode
syn keyword liteFunctions  exit fatal typeof
syn keyword liteFunctions  crypt addHttpHeader

" Conditional
syn keyword liteConditional  if else

" Repeat
syn keyword liteRepeat  while

" Operator
syn keyword liteStatement  break return continue

" Operator
syn match liteOperator  "[-+=#*]"
syn match liteOperator  "/[^*]"me=e-1
syn match liteOperator  "\$"
syn match liteRelation  "&&"
syn match liteRelation  "||"
syn match liteRelation  "[!=<>]="
syn match liteRelation  "[<>]"

" Identifier
syn match  liteIdentifier "$\h\w*" contains=liteIntVar,liteOperator
syn match  liteGlobalIdentifier "@\h\w*" contains=liteIntVar

" Include
syn keyword liteInclude  load

" Define
syn keyword liteDefine  funct

" Type
syn keyword liteType  int uint char real

" String
syn region liteString  keepend matchgroup=None start=+"+  skip=+\\\\\|\\"+  end=+"+ contains=liteIdentifier,liteSpecialChar,@liteSql

" Number
syn match liteNumber  "-\=\<\d\+\>"

" Float
syn match liteFloat  "\(-\=\<\d+\|-\=\)\.\d\+\>"

" SpecialChar
syn match liteSpecialChar "\\[abcfnrtv\\]" contained

syn match liteParentError "[)}\]]"

" Todo
syn keyword liteTodo TODO Todo todo contained

" dont syn #!...
syn match liteExec "^#!.*$"

" Parents
syn cluster liteInside contains=liteComment,liteFunctions,liteIdentifier,liteGlobalIdentifier,liteConditional,liteRepeat,liteStatement,liteOperator,liteRelation,liteType,liteString,liteNumber,liteFloat,liteParent

syn region liteParent matchgroup=Delimiter start="(" end=")" contains=@liteInside
syn region liteParent matchgroup=Delimiter start="{" end="}" contains=@liteInside
syn region liteParent matchgroup=Delimiter start="\[" end="\]" contains=@liteInside

" sync
if main_syntax == 'lite'
  if exists("lite_minlines")
    exec "syn sync minlines=" . lite_minlines
  else
    syn sync minlines=100
  endif
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link liteComment		Comment
hi def link liteString		String
hi def link liteNumber		Number
hi def link liteFloat		Float
hi def link liteIdentifier	Identifier
hi def link liteGlobalIdentifier	Identifier
hi def link liteIntVar		Identifier
hi def link liteFunctions		Function
hi def link liteRepeat		Repeat
hi def link liteConditional	Conditional
hi def link liteStatement		Statement
hi def link liteType		Type
hi def link liteInclude		Include
hi def link liteDefine		Define
hi def link liteSpecialChar	SpecialChar
hi def link liteParentError	liteError
hi def link liteError		Error
hi def link liteTodo		Todo
hi def link liteOperator		Operator
hi def link liteRelation		Operator


let b:current_syntax = "lite"

if main_syntax == 'lite'
  unlet main_syntax
endif

" vim: ts=8
PK�j�Z.�xv
v
vim80/syntax/jsp.vimnu�[���" Vim syntax file
" Language:	JSP (Java Server Pages)
" Maintainer:	Rafael Garcia-Suarez <rgarciasuarez@free.fr>
" URL:		http://rgarciasuarez.free.fr/vim/syntax/jsp.vim
" Last change:	2004 Feb 02
" Credits : Patch by Darren Greaves (recognizes <jsp:...> tags)
"	    Patch by Thomas Kimpton (recognizes jspExpr inside HTML tags)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'jsp'
endif

" Source HTML syntax
runtime! syntax/html.vim
unlet b:current_syntax

" Next syntax items are case-sensitive
syn case match

" Include Java syntax
syn include @jspJava syntax/java.vim

syn region jspScriptlet matchgroup=jspTag start=/<%/  keepend end=/%>/ contains=@jspJava
syn region jspComment			  start=/<%--/	      end=/--%>/
syn region jspDecl	matchgroup=jspTag start=/<%!/ keepend end=/%>/ contains=@jspJava
syn region jspExpr	matchgroup=jspTag start=/<%=/ keepend end=/%>/ contains=@jspJava
syn region jspDirective			  start=/<%@/	      end=/%>/ contains=htmlString,jspDirName,jspDirArg

syn keyword jspDirName contained include page taglib
syn keyword jspDirArg contained file uri prefix language extends import session buffer autoFlush
syn keyword jspDirArg contained isThreadSafe info errorPage contentType isErrorPage
syn region jspCommand			  start=/<jsp:/ start=/<\/jsp:/ keepend end=/>/ end=/\/>/ contains=htmlString,jspCommandName,jspCommandArg
syn keyword jspCommandName contained include forward getProperty plugin setProperty useBean param params fallback
syn keyword jspCommandArg contained id scope class type beanName page flush name value property
syn keyword jspCommandArg contained code codebase name archive align height
syn keyword jspCommandArg contained width hspace vspace jreversion nspluginurl iepluginurl

" Redefine htmlTag so that it can contain jspExpr
syn clear htmlTag
syn region htmlTag start=+<[^/%]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster,jspExpr,javaScript

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
" java.vim has redefined htmlComment highlighting
hi def link htmlComment	 Comment
hi def link htmlCommentPart Comment
" Be consistent with html highlight settings
hi def link jspComment	 htmlComment
hi def link jspTag		 htmlTag
hi def link jspDirective	 jspTag
hi def link jspDirName	 htmlTagName
hi def link jspDirArg	 htmlArg
hi def link jspCommand	 jspTag
hi def link jspCommandName  htmlTagName
hi def link jspCommandArg	 htmlArg

if main_syntax == 'jsp'
  unlet main_syntax
endif

let b:current_syntax = "jsp"

" vim: ts=8
PK�j�ZK��jjvim80/syntax/ora.vimnu�[���" Vim syntax file
" Language:	Oracle config files (.ora) (Oracle 8i, ver. 8.1.5)
" Maintainer:	Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
" Url:		<->
" Last Change:	2003 May 11

" * the keywords are listed by file (sqlnet.ora, listener.ora, etc.)
" * the parathesis-checking is made at the beginning for all keywords
" * possible values are listed also
" * there are some overlappings (e.g. METHOD is mentioned both for
"   sqlnet-ora and tnsnames.ora; since will not cause(?) problems
"   is easier to follow separately each file's keywords)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'ora'
endif

syn case ignore

"comments
syn match oraComment "\#.*"

" catch errors caused by wrong parenthesis
syn region  oraParen transparent start="(" end=")" contains=@oraAll,oraParen
syn match   oraParenError ")"

" strings
syn region  oraString start=+"+ end=+"+

"common .ora staff

"common protocol parameters
syn keyword oraKeywordGroup   ADDRESS ADDRESS_LIST
syn keyword oraKeywordGroup   DESCRIPTION_LIST DESCRIPTION
"all protocols
syn keyword oraKeyword	      PROTOCOL
syn keyword oraValue	      ipc tcp nmp
"Bequeath
syn keyword oraKeyword	      PROGRAM ARGV0 ARGS
"IPC
syn keyword oraKeyword	      KEY
"Named Pipes
syn keyword oraKeyword	      SERVER PIPE
"LU6.2
syn keyword oraKeyword	      LU_NAME LLU LOCAL_LU LLU_NAME LOCAL_LU_NAME
syn keyword oraKeyword	      MODE MDN
syn keyword oraKeyword	      PLU PARTNER_LU_NAME PLU_LA PARTNER_LU_LOCAL_ALIAS
syn keyword oraKeyword	      TP_NAME TPN
"SPX
syn keyword oraKeyword	      SERVICE
"TCP/IP and TCP/IP with SSL
syn keyword oraKeyword	      HOST PORT

"misc. keywords I've met but didn't find in manual (maybe they are deprecated?)
syn keyword oraKeywordGroup COMMUNITY_LIST
syn keyword oraKeyword	    COMMUNITY NAME DEFAULT_ZONE
syn keyword oraValue	    tcpcom

"common values
syn keyword oraValue	    yes no on off true false null all none ok
"word 'world' is used a lot...
syn keyword oraModifier       world

"misc. common keywords
syn keyword oraKeyword      TRACE_DIRECTORY TRACE_LEVEL TRACE_FILE


"sqlnet.ora
syn keyword oraKeywordPref  NAMES NAMESCTL
syn keyword oraKeywordPref  OSS SOURCE SQLNET TNSPING
syn keyword oraKeyword      AUTOMATIC_IPC BEQUEATH_DETACH DAEMON TRACE_MASK
syn keyword oraKeyword      DISABLE_OOB
syn keyword oraKeyword      LOG_DIRECTORY_CLIENT LOG_DIRECTORY_SERVER
syn keyword oraKeyword      LOG_FILE_CLIENT LOG_FILE_SERVER
syn keyword oraKeyword      DCE PREFIX DEFAULT_DOMAIN DIRECTORY_PATH
syn keyword oraKeyword      INITIAL_RETRY_TIMEOUT MAX_OPEN_CONNECTIONS
syn keyword oraKeyword      MESSAGE_POOL_START_SIZE NIS META_MAP
syn keyword oraKeyword      PASSWORD PREFERRED_SERVERS REQUEST_RETRIES
syn keyword oraKeyword      INTERNAL_ENCRYPT_PASSWORD INTERNAL_USE
syn keyword oraKeyword      NO_INITIAL_SERVER NOCONFIRM
syn keyword oraKeyword      SERVER_PASSWORD TRACE_UNIQUE MY_WALLET
syn keyword oraKeyword      LOCATION DIRECTORY METHOD METHOD_DATA
syn keyword oraKeyword      SQLNET_ADDRESS
syn keyword oraKeyword      AUTHENTICATION_SERVICES
syn keyword oraKeyword      AUTHENTICATION_KERBEROS5_SERVICE
syn keyword oraKeyword      AUTHENTICATION_GSSAPI_SERVICE
syn keyword oraKeyword      CLIENT_REGISTRATION
syn keyword oraKeyword      CRYPTO_CHECKSUM_CLIENT CRYPTO_CHECKSUM_SERVER
syn keyword oraKeyword      CRYPTO_CHECKSUM_TYPES_CLIENT CRYPTO_CHECKSUM_TYPES_SERVER
syn keyword oraKeyword      CRYPTO_SEED
syn keyword oraKeyword      ENCRYPTION_CLIENT ENCRYPTION_SERVER
syn keyword oraKeyword      ENCRYPTION_TYPES_CLIENT ENCRYPTION_TYPES_SERVER
syn keyword oraKeyword      EXPIRE_TIME
syn keyword oraKeyword      IDENTIX_FINGERPRINT_DATABASE IDENTIX_FINGERPRINT_DATABASE_USER
syn keyword oraKeyword      IDENTIX_FINGERPRINT_DATABASE_PASSWORD IDENTIX_FINGERPRINT_METHOD
syn keyword oraKeyword      KERBEROS5_CC_NAME KERBEROS5_CLOCKSKEW KERBEROS5_CONF
syn keyword oraKeyword      KERBEROS5_KEYTAB KERBEROS5_REALMS
syn keyword oraKeyword      RADIUS_ALTERNATE RADIUS_ALTERNATE_PORT RADIUS_ALTERNATE_RETRIES
syn keyword oraKeyword      RADIUS_AUTHENTICATION_TIMEOUT RADIUS_AUTHENTICATION
syn keyword oraKeyword      RADIUS_AUTHENTICATION_INTERFACE RADIUS_AUTHENTICATION_PORT
syn keyword oraKeyword      RADIUS_AUTHENTICATION_RETRIES RADIUS_AUTHENTICATION_TIMEOUT
syn keyword oraKeyword      RADIUS_CHALLENGE_RESPONSE RADIUS_SECRET RADIUS_SEND_ACCOUNTING
syn keyword oraKeyword      SSL_CLIENT_AUTHENTICATION SSL_CIPHER_SUITES SSL_VERSION
syn keyword oraKeyword      TRACE_DIRECTORY_CLIENT TRACE_DIRECTORY_SERVER
syn keyword oraKeyword      TRACE_FILE_CLIENT TRACE_FILE_SERVER
syn keyword oraKeyword      TRACE_LEVEL_CLIENT TRACE_LEVEL_SERVER
syn keyword oraKeyword      TRACE_UNIQUE_CLIENT
syn keyword oraKeyword      USE_CMAN USE_DEDICATED_SERVER
syn keyword oraValue	    user admin support
syn keyword oraValue	    accept accepted reject rejected requested required
syn keyword oraValue	    md5 rc4_40 rc4_56 rc4_128 des des_40
syn keyword oraValue	    tnsnames onames hostname dce nis novell
syn keyword oraValue	    file oracle
syn keyword oraValue	    oss
syn keyword oraValue	    beq nds nts kerberos5 securid cybersafe identix dcegssapi radius
syn keyword oraValue	    undetermined

"tnsnames.ora
syn keyword oraKeywordGroup CONNECT_DATA FAILOVER_MODE
syn keyword oraKeyword      FAILOVER LOAD_BALANCE SOURCE_ROUTE TYPE_OF_SERVICE
syn keyword oraKeyword      BACKUP TYPE METHOD GLOBAL_NAME HS
syn keyword oraKeyword      INSTANCE_NAME RDB_DATABASE SDU SERVER
syn keyword oraKeyword      SERVICE_NAME SERVICE_NAMES SID
syn keyword oraKeyword      HANDLER_NAME EXTPROC_CONNECTION_DATA
syn keyword oraValue	    session select basic preconnect dedicated shared

"listener.ora
syn keyword oraKeywordGroup SID_LIST SID_DESC PRESPAWN_LIST PRESPAWN_DESC
syn match   oraKeywordGroup "SID_LIST_\w*"
syn keyword oraKeyword      PROTOCOL_STACK PRESENTATION SESSION
syn keyword oraKeyword      GLOBAL_DBNAME ORACLE_HOME PROGRAM SID_NAME
syn keyword oraKeyword      PRESPAWN_MAX POOL_SIZE TIMEOUT
syn match   oraKeyword      "CONNECT_TIMEOUT_\w*"
syn match   oraKeyword      "LOG_DIRECTORY_\w*"
syn match   oraKeyword      "LOG_FILE_\w*"
syn match   oraKeyword      "PASSWORDS_\w*"
syn match   oraKeyword      "STARTUP_WAIT_TIME_\w*"
syn match   oraKeyword      "STARTUP_WAITTIME_\w*"
syn match   oraKeyword      "TRACE_DIRECTORY_\w*"
syn match   oraKeyword      "TRACE_FILE_\w*"
syn match   oraKeyword      "TRACE_LEVEL_\w*"
syn match   oraKeyword      "USE_PLUG_AND_PLAY_\w*"
syn keyword oraValue	    ttc giop ns raw

"names.ora
syn keyword oraKeywordGroup ADDRESSES ADMIN_REGION
syn keyword oraKeywordGroup DEFAULT_FORWARDERS FORWARDER_LIST FORWARDER
syn keyword oraKeywordGroup DOMAIN_HINTS HINT_DESC HINT_LIST
syn keyword oraKeywordGroup DOMAINS DOMAIN_LIST DOMAIN
syn keyword oraKeywordPref  NAMES
syn keyword oraKeyword      EXPIRE REFRESH REGION RETRY USERID VERSION
syn keyword oraKeyword      AUTHORITY_REQUIRED CONNECT_TIMEOUT
syn keyword oraKeyword      AUTO_REFRESH_EXPIRE AUTO_REFRESH_RETRY
syn keyword oraKeyword      CACHE_CHECKPOINT_FILE CACHE_CHECKPOINT_INTERVAL
syn keyword oraKeyword      CONFIG_CHECKPOINT_FILE DEFAULT_FORWARDERS_ONLY
syn keyword oraKeyword      HINT FORWARDING_AVAILABLE FORWARDING_DESIRED
syn keyword oraKeyword      KEEP_DB_OPEN
syn keyword oraKeyword      LOG_DIRECTORY LOG_FILE LOG_STATS_INTERVAL LOG_UNIQUE
syn keyword oraKeyword      MAX_OPEN_CONNECTIONS MAX_REFORWARDS
syn keyword oraKeyword      MESSAGE_POOL_START_SIZE
syn keyword oraKeyword      NO_MODIFY_REQUESTS NO_REGION_DATABASE
syn keyword oraKeyword      PASSWORD REGION_CHECKPOINT_FILE
syn keyword oraKeyword      RESET_STATS_INTERVAL SAVE_CONFIG_ON_STOP
syn keyword oraKeyword      SERVER_NAME TRACE_FUNC TRACE_UNIQUE

"cman.ora
syn keyword oraKeywordGroup   CMAN CMAN_ADMIN CMAN_PROFILE PARAMETER_LIST
syn keyword oraKeywordGroup   CMAN_RULES RULES_LIST RULE
syn keyword oraKeyword	      ANSWER_TIMEOUT AUTHENTICATION_LEVEL LOG_LEVEL
syn keyword oraKeyword	      MAX_FREELIST_BUFFERS MAXIMUM_CONNECT_DATA MAXIMUM_RELAYS
syn keyword oraKeyword	      RELAY_STATISTICS SHOW_TNS_INFO TRACING
syn keyword oraKeyword	      USE_ASYNC_CALL SRC DST SRV ACT

"protocol.ora
syn match oraKeyword	      "\w*\.EXCLUDED_NODES"
syn match oraKeyword	      "\w*\.INVITED_NODES"
syn match oraKeyword	      "\w*\.VALIDNODE_CHECKING"
syn keyword oraKeyword	      TCP NODELAY




"---------------------------------------
"init.ora

"common values
syn keyword oraValue	      nested_loops merge hash unlimited

"init params
syn keyword oraKeyword	      O7_DICTIONARY_ACCESSIBILITY ALWAYS_ANTI_JOIN ALWAYS_SEMI_JOIN
syn keyword oraKeyword	      AQ_TM_PROCESSES ARCH_IO_SLAVES AUDIT_FILE_DEST AUDIT_TRAIL
syn keyword oraKeyword	      BACKGROUND_CORE_DUMP BACKGROUND_DUMP_DEST
syn keyword oraKeyword	      BACKUP_TAPE_IO_SLAVES BITMAP_MERGE_AREA_SIZE
syn keyword oraKeyword	      BLANK_TRIMMING BUFFER_POOL_KEEP BUFFER_POOL_RECYCLE
syn keyword oraKeyword	      COMMIT_POINT_STRENGTH COMPATIBLE CONTROL_FILE_RECORD_KEEP_TIME
syn keyword oraKeyword	      CONTROL_FILES CORE_DUMP_DEST CPU_COUNT
syn keyword oraKeyword	      CREATE_BITMAP_AREA_SIZE CURSOR_SPACE_FOR_TIME
syn keyword oraKeyword	      DB_BLOCK_BUFFERS DB_BLOCK_CHECKING DB_BLOCK_CHECKSUM
syn keyword oraKeyword	      DB_BLOCK_LRU_LATCHES DB_BLOCK_MAX_DIRTY_TARGET
syn keyword oraKeyword	      DB_BLOCK_SIZE DB_DOMAIN
syn keyword oraKeyword	      DB_FILE_DIRECT_IO_COUNT DB_FILE_MULTIBLOCK_READ_COUNT
syn keyword oraKeyword	      DB_FILE_NAME_CONVERT DB_FILE_SIMULTANEOUS_WRITES
syn keyword oraKeyword	      DB_FILES DB_NAME DB_WRITER_PROCESSES
syn keyword oraKeyword	      DBLINK_ENCRYPT_LOGIN DBWR_IO_SLAVES
syn keyword oraKeyword	      DELAYED_LOGGING_BLOCK_CLEANOUTS DISCRETE_TRANSACTIONS_ENABLED
syn keyword oraKeyword	      DISK_ASYNCH_IO DISTRIBUTED_TRANSACTIONS
syn keyword oraKeyword	      DML_LOCKS ENQUEUE_RESOURCES ENT_DOMAIN_NAME EVENT
syn keyword oraKeyword	      FAST_START_IO_TARGET FAST_START_PARALLEL_ROLLBACK
syn keyword oraKeyword	      FIXED_DATE FREEZE_DB_FOR_FAST_INSTANCE_RECOVERY
syn keyword oraKeyword	      GC_DEFER_TIME GC_FILES_TO_LOCKS GC_RELEASABLE_LOCKS GC_ROLLBACK_LOCKS
syn keyword oraKeyword	      GLOBAL_NAMES HASH_AREA_SIZE
syn keyword oraKeyword	      HASH_JOIN_ENABLED HASH_MULTIBLOCK_IO_COUNT
syn keyword oraKeyword	      HI_SHARED_MEMORY_ADDRESS HS_AUTOREGISTER
syn keyword oraKeyword	      IFILE
syn keyword oraKeyword	      INSTANCE_GROUPS INSTANCE_NAME INSTANCE_NUMBER
syn keyword oraKeyword	      JAVA_POOL_SIZE JOB_QUEUE_INTERVAL JOB_QUEUE_PROCESSES LARGE_POOL_SIZE
syn keyword oraKeyword	      LICENSE_MAX_SESSIONS LICENSE_MAX_USERS LICENSE_SESSIONS_WARNING
syn keyword oraKeyword	      LM_LOCKS LM_PROCS LM_RESS
syn keyword oraKeyword	      LOCAL_LISTENER LOCK_NAME_SPACE LOCK_SGA LOCK_SGA_AREAS
syn keyword oraKeyword	      LOG_ARCHIVE_BUFFER_SIZE LOG_ARCHIVE_BUFFERS LOG_ARCHIVE_DEST
syn match   oraKeyword	      "LOG_ARCHIVE_DEST_\(1\|2\|3\|4\|5\)"
syn match   oraKeyword	      "LOG_ARCHIVE_DEST_STATE_\(1\|2\|3\|4\|5\)"
syn keyword oraKeyword	      LOG_ARCHIVE_DUPLEX_DEST LOG_ARCHIVE_FORMAT LOG_ARCHIVE_MAX_PROCESSES
syn keyword oraKeyword	      LOG_ARCHIVE_MIN_SUCCEED_DEST LOG_ARCHIVE_START
syn keyword oraKeyword	      LOG_BUFFER LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_TIMEOUT
syn keyword oraKeyword	      LOG_CHECKPOINTS_TO_ALERT LOG_FILE_NAME_CONVERT
syn keyword oraKeyword	      MAX_COMMIT_PROPAGATION_DELAY MAX_DUMP_FILE_SIZE
syn keyword oraKeyword	      MAX_ENABLED_ROLES MAX_ROLLBACK_SEGMENTS
syn keyword oraKeyword	      MTS_DISPATCHERS MTS_MAX_DISPATCHERS MTS_MAX_SERVERS MTS_SERVERS
syn keyword oraKeyword	      NLS_CALENDAR NLS_COMP NLS_CURRENCY NLS_DATE_FORMAT
syn keyword oraKeyword	      NLS_DATE_LANGUAGE NLS_DUAL_CURRENCY NLS_ISO_CURRENCY NLS_LANGUAGE
syn keyword oraKeyword	      NLS_NUMERIC_CHARACTERS NLS_SORT NLS_TERRITORY
syn keyword oraKeyword	      OBJECT_CACHE_MAX_SIZE_PERCENT OBJECT_CACHE_OPTIMAL_SIZE
syn keyword oraKeyword	      OPEN_CURSORS OPEN_LINKS OPEN_LINKS_PER_INSTANCE
syn keyword oraKeyword	      OPS_ADMINISTRATION_GROUP
syn keyword oraKeyword	      OPTIMIZER_FEATURES_ENABLE OPTIMIZER_INDEX_CACHING
syn keyword oraKeyword	      OPTIMIZER_INDEX_COST_ADJ OPTIMIZER_MAX_PERMUTATIONS
syn keyword oraKeyword	      OPTIMIZER_MODE OPTIMIZER_PERCENT_PARALLEL
syn keyword oraKeyword	      OPTIMIZER_SEARCH_LIMIT
syn keyword oraKeyword	      ORACLE_TRACE_COLLECTION_NAME ORACLE_TRACE_COLLECTION_PATH
syn keyword oraKeyword	      ORACLE_TRACE_COLLECTION_SIZE ORACLE_TRACE_ENABLE
syn keyword oraKeyword	      ORACLE_TRACE_FACILITY_NAME ORACLE_TRACE_FACILITY_PATH
syn keyword oraKeyword	      OS_AUTHENT_PREFIX OS_ROLES
syn keyword oraKeyword	      PARALLEL_ADAPTIVE_MULTI_USER PARALLEL_AUTOMATIC_TUNING
syn keyword oraKeyword	      PARALLEL_BROADCAST_ENABLED PARALLEL_EXECUTION_MESSAGE_SIZE
syn keyword oraKeyword	      PARALLEL_INSTANCE_GROUP PARALLEL_MAX_SERVERS
syn keyword oraKeyword	      PARALLEL_MIN_PERCENT PARALLEL_MIN_SERVERS
syn keyword oraKeyword	      PARALLEL_SERVER PARALLEL_SERVER_INSTANCES PARALLEL_THREADS_PER_CPU
syn keyword oraKeyword	      PARTITION_VIEW_ENABLED PLSQL_V2_COMPATIBILITY
syn keyword oraKeyword	      PRE_PAGE_SGA PROCESSES
syn keyword oraKeyword	      QUERY_REWRITE_ENABLED QUERY_REWRITE_INTEGRITY
syn keyword oraKeyword	      RDBMS_SERVER_DN READ_ONLY_OPEN_DELAYED RECOVERY_PARALLELISM
syn keyword oraKeyword	      REMOTE_DEPENDENCIES_MODE REMOTE_LOGIN_PASSWORDFILE
syn keyword oraKeyword	      REMOTE_OS_AUTHENT REMOTE_OS_ROLES
syn keyword oraKeyword	      REPLICATION_DEPENDENCY_TRACKING
syn keyword oraKeyword	      RESOURCE_LIMIT RESOURCE_MANAGER_PLAN
syn keyword oraKeyword	      ROLLBACK_SEGMENTS ROW_LOCKING SERIAL _REUSE SERVICE_NAMES
syn keyword oraKeyword	      SESSION_CACHED_CURSORS SESSION_MAX_OPEN_FILES SESSIONS
syn keyword oraKeyword	      SHADOW_CORE_DUMP
syn keyword oraKeyword	      SHARED_MEMORY_ADDRESS SHARED_POOL_RESERVED_SIZE SHARED_POOL_SIZE
syn keyword oraKeyword	      SORT_AREA_RETAINED_SIZE SORT_AREA_SIZE SORT_MULTIBLOCK_READ_COUNT
syn keyword oraKeyword	      SQL92_SECURITY SQL_TRACE STANDBY_ARCHIVE_DEST
syn keyword oraKeyword	      STAR_TRANSFORMATION_ENABLED TAPE_ASYNCH_IO THREAD
syn keyword oraKeyword	      TIMED_OS_STATISTICS TIMED_STATISTICS
syn keyword oraKeyword	      TRANSACTION_AUDITING TRANSACTIONS TRANSACTIONS_PER_ROLLBACK_SEGMENT
syn keyword oraKeyword	      USE_INDIRECT_DATA_BUFFERS USER_DUMP_DEST
syn keyword oraKeyword	      UTL_FILE_DIR
syn keyword oraKeywordObs     ALLOW_PARTIAL_SN_RESULTS B_TREE_BITMAP_PLANS
syn keyword oraKeywordObs     BACKUP_DISK_IO_SLAVES CACHE_SIZE_THRESHOLD
syn keyword oraKeywordObs     CCF_IO_SIZE CLEANUP_ROLLBACK_ENTRIES
syn keyword oraKeywordObs     CLOSE_CACHED_OPEN_CURSORS COMPATIBLE_NO_RECOVERY
syn keyword oraKeywordObs     COMPLEX_VIEW_MERGING
syn keyword oraKeywordObs     DB_BLOCK_CHECKPOINT_BATCH DB_BLOCK_LRU_EXTENDED_STATISTICS
syn keyword oraKeywordObs     DB_BLOCK_LRU_STATISTICS
syn keyword oraKeywordObs     DISTRIBUTED_LOCK_TIMEOUT DISTRIBUTED_RECOVERY_CONNECTION_HOLD_TIME
syn keyword oraKeywordObs     FAST_FULL_SCAN_ENABLED GC_LATCHES GC_LCK_PROCS
syn keyword oraKeywordObs     LARGE_POOL_MIN_ALLOC LGWR_IO_SLAVES
syn keyword oraKeywordObs     LOG_BLOCK_CHECKSUM LOG_FILES
syn keyword oraKeywordObs     LOG_SIMULTANEOUS_COPIES LOG_SMALL_ENTRY_MAX_SIZE
syn keyword oraKeywordObs     MAX_TRANSACTION_BRANCHES
syn keyword oraKeywordObs     MTS_LISTENER_ADDRESS MTS_MULTIPLE_LISTENERS
syn keyword oraKeywordObs     MTS_RATE_LOG_SIZE MTS_RATE_SCALE MTS_SERVICE
syn keyword oraKeywordObs     OGMS_HOME OPS_ADMIN_GROUP
syn keyword oraKeywordObs     PARALLEL_DEFAULT_MAX_INSTANCES PARALLEL_MIN_MESSAGE_POOL
syn keyword oraKeywordObs     PARALLEL_SERVER_IDLE_TIME PARALLEL_TRANSACTION_RESOURCE_TIMEOUT
syn keyword oraKeywordObs     PUSH_JOIN_PREDICATE REDUCE_ALARM ROW_CACHE_CURSORS
syn keyword oraKeywordObs     SEQUENCE_CACHE_ENTRIES SEQUENCE_CACHE_HASH_BUCKETS
syn keyword oraKeywordObs     SHARED_POOL_RESERVED_MIN_ALLOC
syn keyword oraKeywordObs     SORT_DIRECT_WRITES SORT_READ_FAC SORT_SPACEMAP_SIZE
syn keyword oraKeywordObs     SORT_WRITE_BUFFER_SIZE SORT_WRITE_BUFFERS
syn keyword oraKeywordObs     SPIN_COUNT TEMPORARY_TABLE_LOCKS USE_ISM
syn keyword oraValue	      db os full partial mandatory optional reopen enable defer
syn keyword oraValue	      always default intent disable dml plsql temp_disable
syn match   oravalue	      "Arabic Hijrah"
syn match   oravalue	      "English Hijrah"
syn match   oravalue	      "Gregorian"
syn match   oravalue	      "Japanese Imperial"
syn match   oravalue	      "Persian"
syn match   oravalue	      "ROC Official"
syn match   oravalue	      "Thai Buddha"
syn match   oravalue	      "8.0.0"
syn match   oravalue	      "8.0.3"
syn match   oravalue	      "8.0.4"
syn match   oravalue	      "8.1.3"
syn match oraModifier	      "archived log"
syn match oraModifier	      "backup corruption"
syn match oraModifier	      "backup datafile"
syn match oraModifier	      "backup piece  "
syn match oraModifier	      "backup redo log"
syn match oraModifier	      "backup set"
syn match oraModifier	      "copy corruption"
syn match oraModifier	      "datafile copy"
syn match oraModifier	      "deleted object"
syn match oraModifier	      "loghistory"
syn match oraModifier	      "offline range"

"undocumented init params
"up to 7.2 (inclusive)
syn keyword oraKeywordUndObs  _latch_spin_count _trace_instance_termination
syn keyword oraKeywordUndObs  _wakeup_timeout _lgwr_async_write
"7.3
syn keyword oraKeywordUndObs  _standby_lock_space_name _enable_dba_locking
"8.0.5
syn keyword oraKeywordUnd     _NUMA_instance_mapping _NUMA_pool_size
syn keyword oraKeywordUnd     _advanced_dss_features _affinity_on _all_shared_dblinks
syn keyword oraKeywordUnd     _allocate_creation_order _allow_resetlogs_corruption
syn keyword oraKeywordUnd     _always_star_transformation _bump_highwater_mark_count
syn keyword oraKeywordUnd     _column_elimination_off _controlfile_enqueue_timeout
syn keyword oraKeywordUnd     _corrupt_blocks_on_stuck_recovery _corrupted_rollback_segments
syn keyword oraKeywordUnd     _cr_deadtime _cursor_db_buffers_pinned
syn keyword oraKeywordUnd     _db_block_cache_clone _db_block_cache_map _db_block_cache_protect
syn keyword oraKeywordUnd     _db_block_hash_buckets _db_block_hi_priority_batch_size
syn keyword oraKeywordUnd     _db_block_max_cr_dba _db_block_max_scan_cnt
syn keyword oraKeywordUnd     _db_block_med_priority_batch_size _db_block_no_idle_writes
syn keyword oraKeywordUnd     _db_block_write_batch _db_handles _db_handles_cached
syn keyword oraKeywordUnd     _db_large_dirty_queue _db_no_mount_lock
syn keyword oraKeywordUnd     _db_writer_histogram_statistics _db_writer_scan_depth
syn keyword oraKeywordUnd     _db_writer_scan_depth_decrement _db_writer_scan_depth_increment
syn keyword oraKeywordUnd     _disable_incremental_checkpoints
syn keyword oraKeywordUnd     _disable_latch_free_SCN_writes_via_32cas
syn keyword oraKeywordUnd     _disable_latch_free_SCN_writes_via_64cas
syn keyword oraKeywordUnd     _disable_logging _disable_ntlog_events
syn keyword oraKeywordUnd     _dss_cache_flush _dynamic_stats_threshold
syn keyword oraKeywordUnd     _enable_cscn_caching _enable_default_affinity
syn keyword oraKeywordUnd     _enqueue_debug_multi_instance _enqueue_hash
syn keyword oraKeywordUnd     _enqueue_hash_chain_latches _enqueue_locks
syn keyword oraKeywordUnd     _fifth_spare_parameter _first_spare_parameter _fourth_spare_parameter
syn keyword oraKeywordUnd     _gc_class_locks _groupby_nopushdown_cut_ratio
syn keyword oraKeywordUnd     _idl_conventional_index_maintenance _ignore_failed_escalates
syn keyword oraKeywordUnd     _init_sql_file
syn keyword oraKeywordUnd     _io_slaves_disabled _ioslave_batch_count _ioslave_issue_count
syn keyword oraKeywordUnd     _kgl_bucket_count _kgl_latch_count _kgl_multi_instance_invalidation
syn keyword oraKeywordUnd     _kgl_multi_instance_lock _kgl_multi_instance_pin
syn keyword oraKeywordUnd     _latch_miss_stat_sid _latch_recovery_alignment _latch_wait_posting
syn keyword oraKeywordUnd     _lm_ast_option _lm_direct_sends _lm_dlmd_procs _lm_domains _lm_groups
syn keyword oraKeywordUnd     _lm_non_fault_tolerant _lm_send_buffers _lm_statistics _lm_xids
syn keyword oraKeywordUnd     _log_blocks_during_backup _log_buffers_debug _log_checkpoint_recovery_check
syn keyword oraKeywordUnd     _log_debug_multi_instance _log_entry_prebuild_threshold _log_io_size
syn keyword oraKeywordUnd     _log_space_errors
syn keyword oraKeywordUnd     _max_exponential_sleep _max_sleep_holding_latch
syn keyword oraKeywordUnd     _messages _minimum_giga_scn _mts_load_constants _nested_loop_fudge
syn keyword oraKeywordUnd     _no_objects _no_or_expansion
syn keyword oraKeywordUnd     _number_cached_attributes _offline_rollback_segments _open_files_limit
syn keyword oraKeywordUnd     _optimizer_undo_changes
syn keyword oraKeywordUnd     _oracle_trace_events _oracle_trace_facility_version
syn keyword oraKeywordUnd     _ordered_nested_loop _parallel_server_sleep_time
syn keyword oraKeywordUnd     _passwordfile_enqueue_timeout _pdml_slaves_diff_part
syn keyword oraKeywordUnd     _plsql_dump_buffer_events _predicate_elimination_enabled
syn keyword oraKeywordUnd     _project_view_columns
syn keyword oraKeywordUnd     _px_broadcast_fudge_factor _px_broadcast_trace _px_dop_limit_degree
syn keyword oraKeywordUnd     _px_dop_limit_threshold _px_kxfr_granule_allocation _px_kxib_tracing
syn keyword oraKeywordUnd     _release_insert_threshold _reuse_index_loop
syn keyword oraKeywordUnd     _rollback_segment_count _rollback_segment_initial
syn keyword oraKeywordUnd     _row_cache_buffer_size _row_cache_instance_locks
syn keyword oraKeywordUnd     _save_escalates _scn_scheme
syn keyword oraKeywordUnd     _second_spare_parameter _session_idle_bit_latches
syn keyword oraKeywordUnd     _shared_session_sort_fetch_buffer _single_process
syn keyword oraKeywordUnd     _small_table_threshold _sql_connect_capability_override
syn keyword oraKeywordUnd     _sql_connect_capability_table
syn keyword oraKeywordUnd     _test_param_1 _test_param_2 _test_param_3
syn keyword oraKeywordUnd     _third_spare_parameter _tq_dump_period
syn keyword oraKeywordUnd     _trace_archive_dest _trace_archive_start _trace_block_size
syn keyword oraKeywordUnd     _trace_buffers_per_process _trace_enabled _trace_events
syn keyword oraKeywordUnd     _trace_file_size _trace_files_public _trace_flushing _trace_write_batch_size
syn keyword oraKeywordUnd     _upconvert_from_ast _use_vector_post _wait_for_sync _walk_insert_threshold
"dunno which version; may be 8.1.x, may be obsoleted
syn keyword oraKeywordUndObs  _arch_io_slaves _average_dirties_half_life _b_tree_bitmap_plans
syn keyword oraKeywordUndObs  _backup_disk_io_slaves _backup_io_pool_size
syn keyword oraKeywordUndObs  _cleanup_rollback_entries _close_cached_open_cursors
syn keyword oraKeywordUndObs  _compatible_no_recovery _complex_view_merging
syn keyword oraKeywordUndObs  _cpu_to_io _cr_server
syn keyword oraKeywordUndObs  _db_aging_cool_count _db_aging_freeze_cr _db_aging_hot_criteria
syn keyword oraKeywordUndObs  _db_aging_stay_count _db_aging_touch_time
syn keyword oraKeywordUndObs  _db_percent_hot_default _db_percent_hot_keep _db_percent_hot_recycle
syn keyword oraKeywordUndObs  _db_writer_chunk_writes _db_writer_max_writes
syn keyword oraKeywordUndObs  _dbwr_async_io _dbwr_tracing
syn keyword oraKeywordUndObs  _defer_multiple_waiters _discrete_transaction_enabled
syn keyword oraKeywordUndObs  _distributed_lock_timeout _distributed_recovery _distribited_recovery_
syn keyword oraKeywordUndObs  _domain_index_batch_size _domain_index_dml_batch_size
syn keyword oraKeywordUndObs  _enable_NUMA_optimization _enable_block_level_transaction_recovery
syn keyword oraKeywordUndObs  _enable_list_io _enable_multiple_sampling
syn keyword oraKeywordUndObs  _fairness_treshold _fast_full_scan_enabled _foreground_locks
syn keyword oraKeywordUndObs  _full_pwise_join_enabled _gc_latches _gc_lck_procs
syn keyword oraKeywordUndObs  _high_server_treshold _index_prefetch_factor _kcl_debug
syn keyword oraKeywordUndObs  _kkfi_trace _large_pool_min_alloc _lazy_freelist_close _left_nested_loops_random
syn keyword oraKeywordUndObs  _lgwr_async_io _lgwr_io_slaves _lock_sga_areas
syn keyword oraKeywordUndObs  _log_archive_buffer_size _log_archive_buffers _log_simultaneous_copies
syn keyword oraKeywordUndObs  _low_server_treshold _max_transaction_branches
syn keyword oraKeywordUndObs  _mts_rate_log_size _mts_rate_scale
syn keyword oraKeywordUndObs  _mview_cost_rewrite _mview_rewrite_2
syn keyword oraKeywordUndObs  _ncmb_readahead_enabled _ncmb_readahead_tracing
syn keyword oraKeywordUndObs  _ogms_home
syn keyword oraKeywordUndObs  _parallel_adaptive_max_users _parallel_default_max_instances
syn keyword oraKeywordUndObs  _parallel_execution_message_align _parallel_fake_class_pct
syn keyword oraKeywordUndObs  _parallel_load_bal_unit _parallel_load_balancing
syn keyword oraKeywordUndObs  _parallel_min_message_pool _parallel_recovery_stopat
syn keyword oraKeywordUndObs  _parallel_server_idle_time _parallelism_cost_fudge_factor
syn keyword oraKeywordUndObs  _partial_pwise_join_enabled _pdml_separate_gim _push_join_predicate
syn keyword oraKeywordUndObs  _px_granule_size _px_index_sampling _px_load_publish_interval
syn keyword oraKeywordUndObs  _px_max_granules_per_slave _px_min_granules_per_slave _px_no_stealing
syn keyword oraKeywordUndObs  _row_cache_cursors _serial_direct_read _shared_pool_reserved_min_alloc
syn keyword oraKeywordUndObs  _sort_space_for_write_buffers _spin_count _system_trig_enabled
syn keyword oraKeywordUndObs  _trace_buffer_flushes _trace_cr_buffer_creates _trace_multi_block_reads
syn keyword oraKeywordUndObs  _transaction_recovery_servers _use_ism _yield_check_interval


syn cluster oraAll add=oraKeyword,oraKeywordGroup,oraKeywordPref,oraKeywordObs,oraKeywordUnd,oraKeywordUndObs
syn cluster oraAll add=oraValue,oraModifier,oraString,oraSpecial,oraComment

"==============================================================================
" highlighting

" Only when an item doesn't have highlighting yet

hi def link oraKeyword	  Statement		"usual keywords
hi def link oraKeywordGroup  Type			"keywords which group other keywords
hi def link oraKeywordPref   oraKeywordGroup	"keywords which act as prefixes
hi def link oraKeywordObs	  Todo			"obsolete keywords
hi def link oraKeywordUnd	  PreProc		"undocumented keywords
hi def link oraKeywordUndObs oraKeywordObs		"undocumented obsolete keywords
hi def link oraValue	  Identifier		"values, like true or false
hi def link oraModifier	  oraValue		"modifies values
hi def link oraString	  String		"strings

hi def link oraSpecial	  Special		"special characters
hi def link oraError	  Error			"errors
hi def link oraParenError	  oraError		"errors caused by mismatching parantheses

hi def link oraComment	  Comment		"comments



let b:current_syntax = "ora"

if main_syntax == 'ora'
  unlet main_syntax
endif

" vim: ts=8
PK�j�Z��l��vim80/syntax/dts.vimnu�[���" Vim syntax file
" Language:	dts/dtsi (device tree files)
" Maintainer:	Daniel Mack <vim@zonque.org>
" Last Change:	2013 Oct 20

if exists("b:current_syntax")
  finish
endif

syntax region dtsComment        start="/\*"  end="\*/"
syntax match  dtsReference      "&[[:alpha:][:digit:]_]\+"
syntax region dtsBinaryProperty start="\[" end="\]" 
syntax match  dtsStringProperty "\".*\""
syntax match  dtsKeyword        "/.\{-1,\}/"
syntax match  dtsLabel          "^[[:space:]]*[[:alpha:][:digit:]_]\+:"
syntax match  dtsNode           /[[:alpha:][:digit:]-_]\+\(@[0-9a-fA-F]\+\|\)[[:space:]]*{/he=e-1
syntax region dtsCellProperty   start="<" end=">" contains=dtsReference,dtsBinaryProperty,dtsStringProperty,dtsComment
syntax region dtsCommentInner   start="/\*"  end="\*/"
syntax match  dtsCommentLine    "//.*$"

hi def link dtsCellProperty     Number
hi def link dtsBinaryProperty   Number
hi def link dtsStringProperty   String
hi def link dtsKeyword          Include
hi def link dtsLabel            Label
hi def link dtsNode             Structure
hi def link dtsReference        Macro
hi def link dtsComment          Comment
hi def link dtsCommentInner     Comment 
hi def link dtsCommentLine      Comment
PK�j�Z���Boovim80/syntax/mailcap.vimnu�[���" Vim syntax file
" Language:	Mailcap configuration file
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2013 Jun 01

if exists("b:current_syntax")
  finish
endif

syn match  mailcapComment "^#.*"

syn region mailcapString start=+"+ end=+"+ contains=mailcapSpecial oneline

syn match  mailcapDelimiter "\\\@<!;"

syn match  mailcapSpecial "\\\@<!%[nstF]"
syn match  mailcapSpecial "\\\@<!%{[^}]*}"

syn case ignore
syn match  mailcapFlag	    "\(=\s*\)\@<!\<\(needsterminal\|copiousoutput\|x-\w\+\)\>"
syn match  mailcapFieldname "\<\(compose\|composetyped\|print\|edit\|test\|x11-bitmap\|nametemplate\|textualnewlines\|description\|x-\w+\)\>\ze\s*="
syn match  mailcapTypeField "^\(text\|image\|audio\|video\|application\|message\|multipart\|model\|x-[[:graph:]]\+\)\(/\(\*\|[[:graph:]]\+\)\)\=\ze\s*;"
syn case match

hi def link mailcapComment	Comment
hi def link mailcapDelimiter	Delimiter
hi def link mailcapFlag		Statement
hi def link mailcapFieldname	Statement
hi def link mailcapSpecial	Identifier
hi def link mailcapTypeField	Type
hi def link mailcapString	String

let b:current_syntax = "mailcap"

" vim: ts=8
PK�j�Z2�6<<vim80/syntax/git.vimnu�[���" Vim syntax file
" Language:	generic git output
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2010 May 21

if exists("b:current_syntax")
  finish
endif

syn case match
syn sync minlines=50

syn include @gitDiff syntax/diff.vim

syn region gitHead start=/\%^/ end=/^$/
syn region gitHead start=/\%(^commit \x\{40\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/

" For git reflog and git show ...^{tree}, avoid sync issues
syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/
syn match gitHead /^\x\{40\} \x\{40}\t.*/

syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold
syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff

syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge
syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge

syn match  gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
syn match  gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
syn match  gitKeyword /^Merge:/  contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite
syn match  gitMode    /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
syn match  gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
syn match  gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
syn match  gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite

syn match  gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
syn match  gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
syn match  gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity

syn match  gitDate      /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained
syn match  gitDate      /-\=\d\+ [+-]\d\d\d\d\>/               contained
syn match  gitDate      /\<\d\+ \l\+ ago\>/                    contained
syn match  gitType      /\<\%(tag\|commit\|tree\|blob\)\>/     contained nextgroup=gitHash skipwhite
syn match  gitStage     /\<\d\t\@=/                            contained
syn match  gitReference /\S\+\S\@!/                            contained
syn match  gitHash      /\<\x\{40\}\>/                         contained nextgroup=gitIdentity,gitStage,gitHash skipwhite
syn match  gitHash      /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite
syn match  gitHashAbbrev /\<\x\{4,40\}\>/           contained nextgroup=gitHashAbbrev skipwhite
syn match  gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite

syn match  gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity

syn match  gitNotesHeader /^Notes:\ze\n    /

hi def link gitDateHeader        gitIdentityHeader
hi def link gitIdentityHeader    gitIdentityKeyword
hi def link gitIdentityKeyword   Label
hi def link gitNotesHeader       gitKeyword
hi def link gitReflogHeader      gitKeyword
hi def link gitKeyword           Keyword
hi def link gitIdentity          String
hi def link gitEmailDelimiter    Delimiter
hi def link gitEmail             Special
hi def link gitDate              Number
hi def link gitMode              Number
hi def link gitHashAbbrev        gitHash
hi def link gitHash              Identifier
hi def link gitReflogMiddle      gitReference
hi def link gitReference         Function
hi def link gitStage             gitType
hi def link gitType              Type
hi def link gitDiffAdded         diffAdded
hi def link gitDiffRemoved       diffRemoved

let b:current_syntax = "git"
PK�j�Z�!�B�7�7vim80/syntax/python.vimnu�[���" Vim syntax file
" Language:	Python
" Maintainer:	Zvezdan Petkovic <zpetkovic@acm.org>
" Last Change:	2016 Oct 29
" Credits:	Neil Schemenauer <nas@python.ca>
"		Dmitry Vasiliev
"
"		This version is a major rewrite by Zvezdan Petkovic.
"
"		- introduced highlighting of doctests
"		- updated keywords, built-ins, and exceptions
"		- corrected regular expressions for
"
"		  * functions
"		  * decorators
"		  * strings
"		  * escapes
"		  * numbers
"		  * space error
"
"		- corrected synchronization
"		- more highlighting is ON by default, except
"		- space error highlighting is OFF by default
"
" Optional highlighting can be controlled using these variables.
"
"   let python_no_builtin_highlight = 1
"   let python_no_doctest_code_highlight = 1
"   let python_no_doctest_highlight = 1
"   let python_no_exception_highlight = 1
"   let python_no_number_highlight = 1
"   let python_space_error_highlight = 1
"
" All the options above can be switched on together.
"
"   let python_highlight_all = 1
"

" quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif

" We need nocompatible mode in order to continue lines with backslashes.
" Original setting will be restored.
let s:cpo_save = &cpo
set cpo&vim

if exists("python_no_doctest_highlight")
  let python_no_doctest_code_highlight = 1
endif

if exists("python_highlight_all")
  if exists("python_no_builtin_highlight")
    unlet python_no_builtin_highlight
  endif
  if exists("python_no_doctest_code_highlight")
    unlet python_no_doctest_code_highlight
  endif
  if exists("python_no_doctest_highlight")
    unlet python_no_doctest_highlight
  endif
  if exists("python_no_exception_highlight")
    unlet python_no_exception_highlight
  endif
  if exists("python_no_number_highlight")
    unlet python_no_number_highlight
  endif
  let python_space_error_highlight = 1
endif

" Keep Python keywords in alphabetical order inside groups for easy
" comparison with the table in the 'Python Language Reference'
" https://docs.python.org/2/reference/lexical_analysis.html#keywords,
" https://docs.python.org/3/reference/lexical_analysis.html#keywords.
" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt.
" Exceptions come last at the end of each group (class and def below).
"
" Keywords 'with' and 'as' are new in Python 2.6
" (use 'from __future__ import with_statement' in Python 2.5).
"
" Some compromises had to be made to support both Python 3 and 2.
" We include Python 3 features, but when a definition is duplicated,
" the last definition takes precedence.
"
" - 'False', 'None', and 'True' are keywords in Python 3 but they are
"   built-ins in 2 and will be highlighted as built-ins below.
" - 'exec' is a built-in in Python 3 and will be highlighted as
"   built-in below.
" - 'nonlocal' is a keyword in Python 3 and will be highlighted.
" - 'print' is a built-in in Python 3 and will be highlighted as
"   built-in below (use 'from __future__ import print_function' in 2)
" - async and await were added in Python 3.5 and are soft keywords.
"
syn keyword pythonStatement	False None True
syn keyword pythonStatement	as assert break continue del exec global
syn keyword pythonStatement	lambda nonlocal pass print return with yield
syn keyword pythonStatement	class def nextgroup=pythonFunction skipwhite
syn keyword pythonConditional	elif else if
syn keyword pythonRepeat	for while
syn keyword pythonOperator	and in is not or
syn keyword pythonException	except finally raise try
syn keyword pythonInclude	from import
syn keyword pythonAsync		async await

" Decorators (new in Python 2.4)
" A dot must be allowed because of @MyClass.myfunc decorators.
syn match   pythonDecorator	"@" display contained
syn match   pythonDecoratorName	"@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator

" Python 3.5 introduced the use of the same symbol for matrix multiplication:
" https://www.python.org/dev/peps/pep-0465/.  We now have to exclude the
" symbol from highlighting when used in that context.
" Single line multiplication.
syn match   pythonMatrixMultiply
      \ "\%(\w\|[])]\)\s*@"
      \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
      \ transparent
" Multiplication continued on the next line after backslash.
syn match   pythonMatrixMultiply
      \ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@"
      \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
      \ transparent
" Multiplication in a parenthesized expression over multiple lines with @ at
" the start of each continued line; very similar to decorators and complex.
syn match   pythonMatrixMultiply
      \ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*"
      \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
      \ transparent

syn match   pythonFunction	"\h\w*" display contained

syn match   pythonComment	"#.*$" contains=pythonTodo,@Spell
syn keyword pythonTodo		FIXME NOTE NOTES TODO XXX contained

" Triple-quoted strings can contain doctests.
syn region  pythonString matchgroup=pythonQuotes
      \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
      \ contains=pythonEscape,@Spell
syn region  pythonString matchgroup=pythonTripleQuotes
      \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend
      \ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell
syn region  pythonRawString matchgroup=pythonQuotes
      \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
      \ contains=@Spell
syn region  pythonRawString matchgroup=pythonTripleQuotes
      \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend
      \ contains=pythonSpaceError,pythonDoctest,@Spell

syn match   pythonEscape	+\\[abfnrtv'"\\]+ contained
syn match   pythonEscape	"\\\o\{1,3}" contained
syn match   pythonEscape	"\\x\x\{2}" contained
syn match   pythonEscape	"\%(\\u\x\{4}\|\\U\x\{8}\)" contained
" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
syn match   pythonEscape	"\\N{\a\+\%(\s\a\+\)*}" contained
syn match   pythonEscape	"\\$"

" It is very important to understand all details before changing the
" regular expressions below or their order.
" The word boundaries are *not* the floating-point number boundaries
" because of a possible leading or trailing decimal point.
" The expressions below ensure that all valid number literals are
" highlighted, and invalid number literals are not.  For example,
"
" - a decimal point in '4.' at the end of a line is highlighted,
" - a second dot in 1.0.0 is not highlighted,
" - 08 is not highlighted,
" - 08e0 or 08j are highlighted,
"
" and so on, as specified in the 'Python Language Reference'.
" https://docs.python.org/2/reference/lexical_analysis.html#numeric-literals
" https://docs.python.org/3/reference/lexical_analysis.html#numeric-literals
if !exists("python_no_number_highlight")
  " numbers (including longs and complex)
  syn match   pythonNumber	"\<0[oO]\=\o\+[Ll]\=\>"
  syn match   pythonNumber	"\<0[xX]\x\+[Ll]\=\>"
  syn match   pythonNumber	"\<0[bB][01]\+[Ll]\=\>"
  syn match   pythonNumber	"\<\%([1-9]\d*\|0\)[Ll]\=\>"
  syn match   pythonNumber	"\<\d\+[jJ]\>"
  syn match   pythonNumber	"\<\d\+[eE][+-]\=\d\+[jJ]\=\>"
  syn match   pythonNumber
	\ "\<\d\+\.\%([eE][+-]\=\d\+\)\=[jJ]\=\%(\W\|$\)\@="
  syn match   pythonNumber
	\ "\%(^\|\W\)\zs\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>"
endif

" Group the built-ins in the order in the 'Python Library Reference' for
" easier comparison.
" https://docs.python.org/2/library/constants.html
" https://docs.python.org/3/library/constants.html
" http://docs.python.org/2/library/functions.html
" http://docs.python.org/3/library/functions.html
" http://docs.python.org/2/library/functions.html#non-essential-built-in-functions
" http://docs.python.org/3/library/functions.html#non-essential-built-in-functions
" Python built-in functions are in alphabetical order.
if !exists("python_no_builtin_highlight")
  " built-in constants
  " 'False', 'True', and 'None' are also reserved words in Python 3
  syn keyword pythonBuiltin	False True None
  syn keyword pythonBuiltin	NotImplemented Ellipsis __debug__
  " built-in functions
  syn keyword pythonBuiltin	abs all any bin bool bytearray callable chr
  syn keyword pythonBuiltin	classmethod compile complex delattr dict dir
  syn keyword pythonBuiltin	divmod enumerate eval filter float format
  syn keyword pythonBuiltin	frozenset getattr globals hasattr hash
  syn keyword pythonBuiltin	help hex id input int isinstance
  syn keyword pythonBuiltin	issubclass iter len list locals map max
  syn keyword pythonBuiltin	memoryview min next object oct open ord pow
  syn keyword pythonBuiltin	print property range repr reversed round set
  syn keyword pythonBuiltin	setattr slice sorted staticmethod str
  syn keyword pythonBuiltin	sum super tuple type vars zip __import__
  " Python 2 only
  syn keyword pythonBuiltin	basestring cmp execfile file
  syn keyword pythonBuiltin	long raw_input reduce reload unichr
  syn keyword pythonBuiltin	unicode xrange
  " Python 3 only
  syn keyword pythonBuiltin	ascii bytes exec
  " non-essential built-in functions; Python 2 only
  syn keyword pythonBuiltin	apply buffer coerce intern
  " avoid highlighting attributes as builtins
  syn match   pythonAttribute	/\.\h\w*/hs=s+1
	\ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync
	\ transparent
endif

" From the 'Python Library Reference' class hierarchy at the bottom.
" http://docs.python.org/2/library/exceptions.html
" http://docs.python.org/3/library/exceptions.html
if !exists("python_no_exception_highlight")
  " builtin base exceptions (used mostly as base classes for other exceptions)
  syn keyword pythonExceptions	BaseException Exception
  syn keyword pythonExceptions	ArithmeticError BufferError
  syn keyword pythonExceptions	LookupError
  " builtin base exceptions removed in Python 3
  syn keyword pythonExceptions	EnvironmentError StandardError
  " builtin exceptions (actually raised)
  syn keyword pythonExceptions	AssertionError AttributeError
  syn keyword pythonExceptions	EOFError FloatingPointError GeneratorExit
  syn keyword pythonExceptions	ImportError IndentationError
  syn keyword pythonExceptions	IndexError KeyError KeyboardInterrupt
  syn keyword pythonExceptions	MemoryError NameError NotImplementedError
  syn keyword pythonExceptions	OSError OverflowError ReferenceError
  syn keyword pythonExceptions	RuntimeError StopIteration SyntaxError
  syn keyword pythonExceptions	SystemError SystemExit TabError TypeError
  syn keyword pythonExceptions	UnboundLocalError UnicodeError
  syn keyword pythonExceptions	UnicodeDecodeError UnicodeEncodeError
  syn keyword pythonExceptions	UnicodeTranslateError ValueError
  syn keyword pythonExceptions	ZeroDivisionError
  " builtin OS exceptions in Python 3
  syn keyword pythonExceptions	BlockingIOError BrokenPipeError
  syn keyword pythonExceptions	ChildProcessError ConnectionAbortedError
  syn keyword pythonExceptions	ConnectionError ConnectionRefusedError
  syn keyword pythonExceptions	ConnectionResetError FileExistsError
  syn keyword pythonExceptions	FileNotFoundError InterruptedError
  syn keyword pythonExceptions	IsADirectoryError NotADirectoryError
  syn keyword pythonExceptions	PermissionError ProcessLookupError
  syn keyword pythonExceptions	RecursionError StopAsyncIteration
  syn keyword pythonExceptions	TimeoutError
  " builtin exceptions deprecated/removed in Python 3
  syn keyword pythonExceptions	IOError VMSError WindowsError
  " builtin warnings
  syn keyword pythonExceptions	BytesWarning DeprecationWarning FutureWarning
  syn keyword pythonExceptions	ImportWarning PendingDeprecationWarning
  syn keyword pythonExceptions	RuntimeWarning SyntaxWarning UnicodeWarning
  syn keyword pythonExceptions	UserWarning Warning
  " builtin warnings in Python 3
  syn keyword pythonExceptions	ResourceWarning
endif

if exists("python_space_error_highlight")
  " trailing whitespace
  syn match   pythonSpaceError	display excludenl "\s\+$"
  " mixed tabs and spaces
  syn match   pythonSpaceError	display " \+\t"
  syn match   pythonSpaceError	display "\t\+ "
endif

" Do not spell doctests inside strings.
" Notice that the end of a string, either ''', or """, will end the contained
" doctest too.  Thus, we do *not* need to have it as an end pattern.
if !exists("python_no_doctest_highlight")
  if !exists("python_no_doctest_code_highlight")
    syn region pythonDoctest
	  \ start="^\s*>>>\s" end="^\s*$"
	  \ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell
    syn region pythonDoctestValue
	  \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
	  \ contained
  else
    syn region pythonDoctest
	  \ start="^\s*>>>" end="^\s*$"
	  \ contained contains=@NoSpell
  endif
endif

" Sync at the beginning of class, function, or method definition.
syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]"

" The default highlight links.  Can be overridden later.
hi def link pythonStatement		Statement
hi def link pythonConditional		Conditional
hi def link pythonRepeat		Repeat
hi def link pythonOperator		Operator
hi def link pythonException		Exception
hi def link pythonInclude		Include
hi def link pythonAsync			Statement
hi def link pythonDecorator		Define
hi def link pythonDecoratorName		Function
hi def link pythonFunction		Function
hi def link pythonComment		Comment
hi def link pythonTodo			Todo
hi def link pythonString		String
hi def link pythonRawString		String
hi def link pythonQuotes		String
hi def link pythonTripleQuotes		pythonQuotes
hi def link pythonEscape		Special
if !exists("python_no_number_highlight")
  hi def link pythonNumber		Number
endif
if !exists("python_no_builtin_highlight")
  hi def link pythonBuiltin		Function
endif
if !exists("python_no_exception_highlight")
  hi def link pythonExceptions		Structure
endif
if exists("python_space_error_highlight")
  hi def link pythonSpaceError		Error
endif
if !exists("python_no_doctest_highlight")
  hi def link pythonDoctest		Special
  hi def link pythonDoctestValue	Define
endif

let b:current_syntax = "python"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:set sw=2 sts=2 ts=8 noet:
PK�j�Zj�Q1vim80/syntax/art.vimnu�[���" Vim syntax file
" Language:      ART-IM and ART*Enterprise
" Maintainer:    Dorai Sitaram <ds26@gte.com>
" URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
" Last Change:   2011 Dec 28 by Thilo Six

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

syn keyword artspform => and assert bind
syn keyword artspform declare def-art-fun deffacts defglobal defrule defschema do
syn keyword artspform else for if in$ not or
syn keyword artspform progn retract salience schema test then while

syn match artvariable "?[^ \t";()|&~]\+"

syn match artglobalvar "?\*[^ \t";()|&~]\+\*"

syn match artinstance "![^ \t";()|&~]\+"

syn match delimiter "[()|&~]"

syn region string start=/"/ skip=/\\[\\"]/ end=/"/

syn match number "\<[-+]\=\([0-9]\+\(\.[0-9]*\)\=\|\.[0-9]\+\)\>"

syn match comment ";.*$"

syn match comment "#+:\=ignore" nextgroup=artignore skipwhite skipnl

syn region artignore start="(" end=")" contained contains=artignore,comment

syn region artignore start=/"/ skip=/\\[\\"]/ end=/"/ contained

hi def link artinstance type
hi def link artglobalvar preproc
hi def link artignore comment
hi def link artspform statement
hi def link artvariable function

let b:current_syntax = "art"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z9\�Iddvim80/syntax/conaryrecipe.vimnu�[���" Vim syntax file
" Language:	Conary Recipe
" Maintainer:	rPath Inc <http://www.rpath.com>
" Updated:	2007-12-08

if exists("b:current_syntax")
  finish
endif

runtime! syntax/python.vim

syn keyword conarySFunction	mainDir addAction addSource addArchive addPatch
syn keyword conarySFunction	addRedirect addSvnSnapshot addMercurialSnapshot
syn keyword conarySFunction	addCvsSnapshot addGitSnapshot addBzrSnapshot

syn keyword conaryGFunction	add addAll addNewGroup addReference createGroup
syn keyword conaryGFunction	addNewGroup startGroup remove removeComponents
syn keyword conaryGFunction	replace setByDefault setDefaultGroup 
syn keyword conaryGFunction	setLabelPath addCopy setSearchPath AddAllFlags
syn keyword conaryGFunction	GroupRecipe GroupReference TroveCacheWrapper
syn keyword conaryGFunction	TroveCache buildGroups findTrovesForGroups
syn keyword conaryGFunction	followRedirect processAddAllDirectives
syn keyword conaryGFunction	processOneAddAllDirective removeDifferences
syn keyword conaryGFunction	addTrovesToGroup addCopiedComponents
syn keyword conaryGFunction	findAllWeakTrovesToRemove checkForRedirects
syn keyword conaryGFunction	addPackagesForComponents getResolveSource
syn keyword conaryGFunction	resolveGroupDependencies checkGroupDependencies
syn keyword conaryGFunction	calcSizeAndCheckHashes findSourcesForGroup
syn keyword conaryGFunction	addPostInstallScript addPostRollbackScript
syn keyword conaryGFunction	addPostUpdateScript addPreUpdateScript
syn keyword conaryGFunction	addTrove moveComponents copyComponents
syn keyword conaryGFunction	removeItemsAlsoInNewGroup removeItemsAlsoInGroup
syn keyword conaryGFunction	addResolveSource iterReplaceSpecs
syn keyword conaryGFunction	setCompatibilityClass getLabelPath
syn keyword conaryGFunction	getResolveTroveSpecs getSearchFlavor
syn keyword conaryGFunction	getChildGroups getGroupMap

syn keyword conaryBFunction 	Run Automake Configure ManualConfigure 
syn keyword conaryBFunction 	Make MakeParallelSubdir MakeInstall
syn keyword conaryBFunction 	MakePathsInstall CompilePython
syn keyword conaryBFunction 	Ldconfig Desktopfile Environment SetModes
syn keyword conaryBFunction 	Install Copy Move Symlink Link Remove Doc
syn keyword conaryBFunction 	Create MakeDirs disableParallelMake
syn keyword conaryBFunction 	ConsoleHelper Replace SGMLCatalogEntry
syn keyword conaryBFunction 	XInetdService XMLCatalogEntry TestSuite
syn keyword conaryBFunction	PythonSetup CMake Ant JavaCompile ClassPath
syn keyword conaryBFunction	JavaDoc IncludeLicense MakeFIFO

syn keyword conaryPFunction 	NonBinariesInBindirs FilesInMandir 
syn keyword conaryPFunction 	ImproperlyShared CheckSonames CheckDestDir
syn keyword conaryPFunction 	ComponentSpec PackageSpec 
syn keyword conaryPFunction 	Config InitScript GconfSchema SharedLibrary
syn keyword conaryPFunction 	ParseManifest MakeDevices DanglingSymlinks
syn keyword conaryPFunction 	AddModes WarnWriteable IgnoredSetuid
syn keyword conaryPFunction 	Ownership ExcludeDirectories
syn keyword conaryPFunction 	BadFilenames BadInterpreterPaths ByDefault
syn keyword conaryPFunction 	ComponentProvides ComponentRequires Flavor
syn keyword conaryPFunction 	EnforceConfigLogBuildRequirements Group
syn keyword conaryPFunction 	EnforceSonameBuildRequirements InitialContents
syn keyword conaryPFunction 	FilesForDirectories LinkCount
syn keyword conaryPFunction 	MakdeDevices NonMultilibComponent ObsoletePaths
syn keyword conaryPFunction 	NonMultilibDirectories NonUTF8Filenames TagSpec
syn keyword conaryPFunction 	Provides RequireChkconfig Requires TagHandler
syn keyword conaryPFunction 	TagDescription Transient User UtilizeGroup
syn keyword conaryPFunction 	WorldWritableExecutables UtilizeUser
syn keyword conaryPFunction 	WarnWritable Strip CheckDesktopFiles
syn keyword conaryPFunction	FixDirModes LinkType reportMissingBuildRequires
syn keyword conaryPFunction	reportErrors FixupManpagePaths FixObsoletePaths
syn keyword conaryPFunction	NonLSBPaths PythonEggs
syn keyword conaryPFunction	EnforcePythonBuildRequirements
syn keyword conaryPFunction	EnforceJavaBuildRequirements
syn keyword conaryPFunction	EnforceCILBuildRequirements
syn keyword conaryPFunction	EnforcePerlBuildRequirements
syn keyword conaryPFunction	EnforceFlagBuildRequirements
syn keyword conaryPFunction	FixupMultilibPaths ExecutableLibraries
syn keyword conaryPFunction	NormalizeLibrarySymlinks NormalizeCompression
syn keyword conaryPFunction	NormalizeManPages NormalizeInfoPages
syn keyword conaryPFunction	NormalizeInitscriptLocation
syn keyword conaryPFunction	NormalizeInitscriptContents
syn keyword conaryPFunction	NormalizeAppDefaults NormalizeInterpreterPaths
syn keyword conaryPFunction	NormalizePamConfig ReadableDocs
syn keyword conaryPFunction	WorldWriteableExecutables NormalizePkgConfig
syn keyword conaryPFunction	EtcConfig InstallBucket SupplementalGroup
syn keyword conaryPFunction	FixBuilddirSymlink RelativeSymlinks

" Most destdirPolicy aren't called from recipes, except for these
syn keyword conaryPFunction	AutoDoc RemoveNonPackageFiles TestSuiteFiles
syn keyword conaryPFunction	TestSuiteLinks

syn match   conaryMacro		"%(\w\+)[sd]" contained
syn match   conaryBadMacro	"%(\w*)[^sd]" contained " no final marker
syn keyword conaryArches	contained x86 x86_64 alpha ia64 ppc ppc64 s390
syn keyword conaryArches	contained sparc sparc64
syn keyword conarySubArches	contained sse2 3dnow 3dnowext cmov i486 i586
syn keyword conarySubArches	contained i686 mmx mmxext nx sse sse2
syn keyword conaryBad		RPM_BUILD_ROOT EtcConfig InstallBucket subDir
syn keyword conaryBad		RPM_OPT_FLAGS subdir 
syn cluster conaryArchFlags 	contains=conaryArches,conarySubArches
syn match   conaryArch		"Arch\.[a-z0-9A-Z]\+" contains=conaryArches,conarySubArches
syn match   conaryArch		"Arch\.[a-z0-9A-Z]\+" contains=conaryArches,conarySubArches
syn keyword conaryKeywords	name buildRequires version clearBuildReqs
syn keyword conaryUseFlag	contained pcre tcpwrappers gcj gnat selinux pam 
syn keyword conaryUseFlag	contained bootstrap python perl 
syn keyword conaryUseFlag	contained readline gdbm emacs krb builddocs 
syn keyword conaryUseFlag	contained alternatives tcl tk X gtk gnome qt
syn keyword conaryUseFlag	contained xfce gd ldap sasl pie desktop ssl kde
syn keyword conaryUseFlag	contained slang netpbm nptl ipv6 buildtests
syn keyword conaryUseFlag	contained ntpl xen dom0 domU
syn match   conaryUse		"Use\.[a-z0-9A-Z]\+" contains=conaryUseFlag

" strings
syn region pythonString		matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,conaryMacro,conaryBadMacro
syn region pythonString		matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,conaryMacro,conaryBadMacro
syn region pythonString		matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,conaryMacro,conaryBadMacro
syn region pythonString		matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,conaryMacro,conaryBadMacro
syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=conaryMacro,conaryBadMacro
syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=conaryMacro,conaryBadMacro
syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=conaryMacro,conaryBadMacro
syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=conaryMacro,conaryBadMacro

hi def link conaryMacro			Special
hi def link conaryrecipeFunction	Function
hi def link conaryError			Error
hi def link conaryBFunction		conaryrecipeFunction
hi def link conaryGFunction        	conaryrecipeFunction
hi def link conarySFunction		Operator
hi def link conaryPFunction		Typedef
hi def link conaryFlags			PreCondit
hi def link conaryArches		Special
hi def link conarySubArches		Special
hi def link conaryBad			conaryError
hi def link conaryBadMacro		conaryError
hi def link conaryKeywords		Special
hi def link conaryUseFlag		Typedef

let b:current_syntax = "conaryrecipe"

PK�j�Z��`{vim80/syntax/services.vimnu�[���" Vim syntax file
" Language:             services(5) - Internet network services list
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   servicesBegin     display '^'
                              \ nextgroup=servicesName,servicesComment

syn match   servicesName      contained display '[[:graph:]]\+'
                              \ nextgroup=servicesPort skipwhite

syn match   servicesPort      contained display '\d\+'
                              \ nextgroup=servicesPPDiv,servicesPPDivDepr
                              \ skipwhite

syn match   servicesPPDiv     contained display '/'
                              \ nextgroup=servicesProtocol skipwhite

syn match   servicesPPDivDepr contained display ','
                              \ nextgroup=servicesProtocol skipwhite

syn match   servicesProtocol  contained display '\S\+'
                              \ nextgroup=servicesAliases,servicesComment
                              \ skipwhite

syn match   servicesAliases   contained display '\S\+'
                              \ nextgroup=servicesAliases,servicesComment
                              \ skipwhite

syn keyword servicesTodo      contained TODO FIXME XXX NOTE

syn region  servicesComment   display oneline start='#' end='$'
                              \ contains=servicesTodo,@Spell

hi def link servicesTodo      Todo
hi def link servicesComment   Comment
hi def link servicesName      Identifier
hi def link servicesPort      Number
hi def link servicesPPDiv     Delimiter
hi def link servicesPPDivDepr Error
hi def link servicesProtocol  Type
hi def link servicesAliases   Macro

let b:current_syntax = "services"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���yyvim80/syntax/wget.vimnu�[���" Vim syntax file
" Language:     Wget configuration file (/etc/wgetrc ~/.wgetrc)
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2013 Jun 1

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match wgetComment "#.*$" contains=wgetTodo contained

syn keyword wgetTodo TODO NOTE FIXME XXX contained

syn region wgetString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained oneline
syn region wgetString start=+'+ skip=+\\\\\|\\'+ end=+'+ contained oneline

syn case ignore
syn keyword wgetBoolean on off contained
syn keyword wgetNumber  inf    contained
syn case match

syn match wgetNumber "\<\%(\d\+\|inf\)\>" contained
syn match wgetQuota  "\<\d\+[kKmM]\>"     contained
syn match wgetTime   "\<\d\+[smhdw]\>"    contained

"{{{ Commands
let s:commands = map([
        \ "accept",
	\ "add_hostdir",
	\ "adjust_extension",
	\ "always_rest",
	\ "ask_password",
	\ "auth_no_challenge",
	\ "background",
	\ "backup_converted",
	\ "backups",
	\ "base",
	\ "bind_address",
	\ "ca_certificate",
	\ "ca_directory",
	\ "cache",
	\ "certificate",
	\ "certificate_type",
	\ "check_certificate",
	\ "connect_timeout",
	\ "content_disposition",
	\ "continue",
	\ "convert_links",
	\ "cookies",
	\ "cut_dirs",
	\ "debug",
	\ "default_page",
	\ "delete_after",
	\ "dns_cache",
	\ "dns_timeout",
	\ "dir_prefix",
	\ "dir_struct",
	\ "domains",
	\ "dot_bytes",
	\ "dots_in_line",
	\ "dot_spacing",
	\ "dot_style",
	\ "egd_file",
	\ "exclude_directories",
	\ "exclude_domains",
	\ "follow_ftp",
	\ "follow_tags",
	\ "force_html",
	\ "ftp_passwd",
	\ "ftp_password",
	\ "ftp_user",
	\ "ftp_proxy",
	\ "glob",
	\ "header",
	\ "html_extension",
	\ "htmlify",
	\ "http_keep_alive",
	\ "http_passwd",
	\ "http_password",
	\ "http_proxy",
	\ "https_proxy",
	\ "http_user",
	\ "ignore_case",
	\ "ignore_length",
	\ "ignore_tags",
	\ "include_directories",
	\ "inet4_only",
	\ "inet6_only",
	\ "input",
	\ "iri",
	\ "keep_session_cookies",
	\ "kill_longer",
	\ "limit_rate",
	\ "load_cookies",
	\ "locale",
	\ "local_encoding",
	\ "logfile",
	\ "login",
	\ "max_redirect",
	\ "mirror",
	\ "netrc",
	\ "no_clobber",
	\ "no_parent",
	\ "no_proxy",
	\ "numtries",
	\ "output_document",
	\ "page_requisites",
	\ "passive_ftp",
	\ "passwd",
	\ "password",
	\ "post_data",
	\ "post_file",
	\ "prefer_family",
	\ "preserve_permissions",
	\ "private_key",
	\ "private_key_type",
	\ "progress",
	\ "protocol_directories",
	\ "proxy_passwd",
	\ "proxy_password",
	\ "proxy_user",
	\ "quiet",
	\ "quota",
	\ "random_file",
	\ "random_wait",
	\ "read_timeout",
	\ "reclevel",
	\ "recursive",
	\ "referer",
	\ "reject",
	\ "relative_only",
	\ "remote_encoding",
	\ "remove_listing",
	\ "restrict_file_names",
	\ "retr_symlinks",
	\ "retry_connrefused",
	\ "robots",
	\ "save_cookies",
	\ "save_headers",
	\ "secure_protocol",
	\ "server_response",
	\ "show_all_dns_entries",
	\ "simple_host_check",
	\ "span_hosts",
	\ "spider",
	\ "strict_comments",
	\ "sslcertfile",
	\ "sslcertkey",
	\ "timeout",
	\ "time_stamping",
	\ "use_server_timestamps",
	\ "tries",
	\ "trust_server_names",
	\ "user",
	\ "use_proxy",
	\ "user_agent",
	\ "verbose",
	\ "wait",
	\ "wait_retry"],
	\ "substitute(v:val, '_', '[-_]\\\\=', 'g')")
"}}}

syn case ignore
for cmd in s:commands
  exe 'syn match wgetCommand "' . cmd . '" nextgroup=wgetAssignmentOperator skipwhite contained'
endfor
syn case match

syn match wgetStart "^" nextgroup=wgetCommand,wgetComment skipwhite
syn match wgetAssignmentOperator "=" nextgroup=wgetString,wgetBoolean,wgetNumber,wgetQuota,wgetTime skipwhite contained

hi def link wgetAssignmentOperator Special
hi def link wgetBoolean		   Boolean
hi def link wgetCommand		   Identifier
hi def link wgetComment		   Comment
hi def link wgetNumber		   Number
hi def link wgetQuota		   Number
hi def link wgetString		   String
hi def link wgetTodo		   Todo

let b:current_syntax = "wget"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 fdm=marker:
PK�j�Zc����vim80/syntax/sendpr.vimnu�[���" Vim syntax file
" Language: FreeBSD send-pr file
" Maintainer: Hendrik Scholz <hendrik@scholz.net>
" Last Change: 2012 Feb 03
"
" http://raisdorf.net/files/misc/send-pr.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match sendprComment /^SEND-PR:/
" email address
syn match sendprType /<[a-zA-Z0-9\-\_\.]*@[a-zA-Z0-9\-\_\.]*>/
" ^> lines
syn match sendprString /^>[a-zA-Z\-]*:/
syn region sendprLabel start="\[" end="\]"
syn match sendprString /^To:/
syn match sendprString /^From:/
syn match sendprString /^Reply-To:/
syn match sendprString /^Cc:/
syn match sendprString /^X-send-pr-version:/
syn match sendprString /^X-GNATS-Notify:/

hi def link sendprComment   Comment
hi def link sendprType      Type
hi def link sendprString    String
hi def link sendprLabel     Label

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�`��vim80/syntax/po.vimnu�[���" Vim syntax file
" Language:	po (gettext)
" Maintainer:	Dwayne Bailey <dwayne@translate.org.za>
" Last Change:	2015 Jun 07
" Contributors: Dwayne Bailey (Most advanced syntax highlighting)
"               Leonardo Fontenelle (Spell checking)
"               Nam SungHyun <namsh@kldp.org> (Original maintainer)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn sync minlines=10

" Identifiers
syn match  poStatementMsgCTxt "^msgctxt"
syn match  poStatementMsgidplural "^msgid_plural" contained
syn match  poPluralCaseN "[0-9]" contained
syn match  poStatementMsgstr "^msgstr\(\[[0-9]\]\)" contains=poPluralCaseN

" Simple HTML and XML highlighting
syn match  poHtml "<\_[^<>]\+>" contains=poHtmlTranslatables,poLineBreak
syn match  poHtmlNot +"<[^<]\+>"+ms=s+1,me=e-1
syn region poHtmlTranslatables start=+\(abbr\|alt\|content\|summary\|standby\|title\)=\\"+ms=e-1 end=+\\"+ contained contains=@Spell
syn match poLineBreak +"\n"+ contained

" Translation blocks
syn region     poMsgCTxt	matchgroup=poStatementMsgCTxt start=+^msgctxt "+rs=e-1 matchgroup=poStringCTxt end=+^msgid "+me=s-1 contains=poStringCTxt
syn region     poMsgID	matchgroup=poStatementMsgid start=+^msgid "+rs=e-1 matchgroup=poStringID end=+^msgstr\(\|\[[\]0\[]\]\) "+me=s-1 contains=poStringID,poStatementMsgidplural,poStatementMsgid
syn region     poMsgSTR	matchgroup=poStatementMsgstr start=+^msgstr\(\|\[[\]0\[]\]\) "+rs=e-1 matchgroup=poStringSTR end=+\n\n+me=s-1 contains=poStringSTR,poStatementMsgstr
syn region poStringCTxt	start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region poStringID	start=+"+ skip=+\\\\\|\\"+ end=+"+ contained 
                            \ contains=poSpecial,poFormat,poCommentKDE,poPluralKDE,poKDEdesktopFile,poHtml,poAcceleratorId,poHtmlNot,poVariable
syn region poStringSTR	start=+"+ skip=+\\\\\|\\"+ end=+"+ contained 
                            \ contains=@Spell,poSpecial,poFormat,poHeaderItem,poCommentKDEError,poHeaderUndefined,poPluralKDEError,poMsguniqError,poKDEdesktopFile,poHtml,poAcceleratorStr,poHtmlNot,poVariable

" Header and Copyright
syn match     poHeaderItem "\(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|Language\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
syn match     poHeaderUndefined "\(PACKAGE VERSION\|YEAR-MO-DA HO:MI+ZONE\|FULL NAME <EMAIL@ADDRESS>\|LANGUAGE <LL@li.org>\|CHARSET\|ENCODING\|INTEGER\|EXPRESSION\)" contained
syn match     poCopyrightUnset "SOME DESCRIPTIVE TITLE\|FIRST AUTHOR <EMAIL@ADDRESS>, YEAR\|Copyright (C) YEAR Free Software Foundation, Inc\|YEAR THE PACKAGE\'S COPYRIGHT HOLDER\|PACKAGE" contained

" Translation comment block including: translator comment, automatic coments, flags and locations
syn match     poComment "^#.*$"
syn keyword   poFlagFuzzy fuzzy contained
syn match     poCommentTranslator "^# .*$" contains=poCopyrightUnset
syn match     poCommentAutomatic "^#\..*$" 
syn match     poCommentSources	"^#:.*$"
syn match     poCommentFlags "^#,.*$" contains=poFlagFuzzy
syn match     poDiffOld '\(^#| "[^{]*+}\|{+[^}]*+}\|{+[^}]*\|"$\)' contained
syn match     poDiffNew '\(^#| "[^{]*-}\|{-[^}]*-}\|{-[^}]*\|"$\)' contained
syn match     poCommentDiff "^#|.*$" contains=poDiffOld,poDiffNew

" Translations (also includes header fields as they appear in a translation msgstr)
syn region poCommentKDE	  start=+"_: +ms=s+1 end="\\n" end="\"\n^msgstr"me=s-1 contained
syn region poCommentKDEError  start=+"\(\|\s\+\)_:+ms=s+1 end="\\n" end=+"\n\n+me=s-1 contained
syn match  poPluralKDE   +"_n: +ms=s+1 contained
syn region poPluralKDEError   start=+"\(\|\s\+\)_n:+ms=s+1 end="\"\n\n"me=s-1 contained
syn match  poSpecial	contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
syn match  poFormat	"%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
syn match  poFormat	"%%" contained

" msguniq and msgcat conflicts
syn region poMsguniqError matchgroup=poMsguniqErrorMarkers  start="#-#-#-#-#"  end='#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)\\n' contained

" Obsolete messages
syn match poObsolete "^#\~.*$" 

" KDE Name= handling
syn match poKDEdesktopFile "\"\(Name\|Comment\|GenericName\|Description\|Keywords\|About\)="ms=s+1,me=e-1

" Accelerator keys - this messes up if the preceding or following char is a multibyte unicode char
syn match poAcceleratorId  contained "[^&_~][&_~]\(\a\|\d\)[^:]"ms=s+1,me=e-1 
syn match poAcceleratorStr  contained "[^&_~][&_~]\(\a\|\d\)[^:]"ms=s+1,me=e-1 contains=@Spell

" Variables simple
syn match poVariable contained "%\d"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link poCommentSources    PreProc
hi def link poComment	     Comment
hi def link poCommentAutomatic  Comment
hi def link poCommentTranslator Comment
hi def link poCommentFlags      Special
hi def link poCommentDiff       Comment
hi def link poCopyrightUnset    Todo
hi def link poFlagFuzzy         Todo
hi def link poDiffOld           Todo
hi def link poDiffNew          Special
hi def link poObsolete         Comment

hi def link poStatementMsgid   Statement
hi def link poStatementMsgstr  Statement
hi def link poStatementMsgidplural  Statement
hi def link poStatementMsgCTxt Statement
hi def link poPluralCaseN      Constant

hi def link poStringCTxt	    Comment
hi def link poStringID	    String
hi def link poStringSTR	    String
hi def link poCommentKDE       Comment
hi def link poCommentKDEError  Error
hi def link poPluralKDE        Comment
hi def link poPluralKDEError   Error
hi def link poHeaderItem       Identifier
hi def link poHeaderUndefined  Todo
hi def link poKDEdesktopFile   Identifier

hi def link poHtml              Identifier
hi def link poHtmlNot           String
hi def link poHtmlTranslatables String
hi def link poLineBreak         String

hi def link poFormat	    poSpecial
hi def link poSpecial	    Special
hi def link poAcceleratorId    Special
hi def link poAcceleratorStr   Special
hi def link poVariable         Special

hi def link poMsguniqError        Special
hi def link poMsguniqErrorMarkers Comment


let b:current_syntax = "po"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:set ts=8 sts=2 sw=2 noet:
PK�j�Z�IF��vim80/syntax/sd.vimnu�[���" Language: streaming descriptor file
" Maintainer: Puria Nafisi Azizi (pna) <pna@netstudent.polito.it>
" License: This file can be redistribued and/or modified under the same terms
"   as Vim itself.
" URL: http://netstudent.polito.it/vim_syntax/
" Last Change: 2012 Feb 03 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
        finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Always ignore case
syn case ignore

" Comments
syn match sdComment /\s*[#;].*$/

" IP Adresses
syn cluster sdIPCluster contains=sdIPError,sdIPSpecial
syn match sdIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
syn match sdIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained
syn match sdIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@sdIPCluster

" Statements
syn keyword sdStatement AGGREGATE AUDIO_CHANNELS
syn keyword sdStatement BYTE_PER_PCKT BIT_PER_SAMPLE BITRATE
syn keyword sdStatement CLOCK_RATE CODING_TYPE CREATOR
syn match sdStatement /^\s*CODING_TYPE\>/ nextgroup=sdCoding skipwhite
syn match sdStatement /^\s*ENCODING_NAME\>/ nextgroup=sdEncoding skipwhite
syn keyword sdStatement FILE_NAME FRAME_LEN FRAME_RATE FORCE_FRAME_RATE
syn keyword sdStatement LICENSE
syn match sdStatement /^\s*MEDIA_SOURCE\>/ nextgroup=sdSource skipwhite
syn match sdStatement /^\s*MULTICAST\>/ nextgroup=sdIP skipwhite
syn keyword sdStatement PAYLOAD_TYPE PKT_LEN PRIORITY
syn keyword sdStatement SAMPLE_RATE
syn keyword sdStatement TITLE TWIN
syn keyword sdStatement VERIFY

" Known Options
syn keyword sdEncoding H26L MPV MP2T MP4V-ES
syn keyword sdCoding FRAME SAMPLE
syn keyword sdSource STORED LIVE

"Specials
syn keyword sdSpecial TRUE FALSE NULL
syn keyword sdDelimiter STREAM STREAM_END
syn match sdError /^search .\{257,}/


hi def link sdIP Number
hi def link sdHostname Type
hi def link sdEncoding Identifier
hi def link sdCoding Identifier
hi def link sdSource Identifier
hi def link sdComment Comment
hi def link sdIPError Error
hi def link sdError Error
hi def link sdStatement Statement
hi def link sdIPSpecial Special
hi def link sdSpecial Special
hi def link sdDelimiter Delimiter


let b:current_syntax = "sd"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zz�A3ccvim80/syntax/jargon.vimnu�[���" Vim syntax file
" Language:	Jargon File
" Maintainer:	<rms@poczta.onet.pl>
" Last Change:	2001 May 26
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn match jargonChaptTitle	/:[^:]*:/
syn match jargonEmailAddr	/[^<@ ^I]*@[^ ^I>]*/
syn match jargonUrl	 +\(http\|ftp\)://[^\t )"]*+
syn match jargonMark	/{[^}]*}/

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link jargonChaptTitle	Title
hi def link jargonEmailAddr	 Comment
hi def link jargonUrl	 Comment
hi def link jargonMark	Label

let b:current_syntax = "jargon"
PK�j�Z��V
uuvim80/syntax/tar.vimnu�[���" Language   : Tar Listing Syntax
" Maintainer : Bram Moolenaar
" Last change: Sep 08, 2004

if exists("b:current_syntax")
 finish
endif

syn match tarComment '^".*' contains=tarFilename
syn match tarFilename 'tarfile \zs.*' contained
syn match tarDirectory '.*/$'

hi def link tarComment	Comment
hi def link tarFilename	Constant
hi def link tarDirectory Type

" vim: ts=8
PK�j�Z�h��vim80/syntax/dcd.vimnu�[���" Vim syntax file
" Language:	WildPackets EtherPeek Decoder (.dcd) file
" Maintainer:	Christopher Shinn <christopher@lucent.com>
" Last Change:	2003 Apr 25

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Keywords
syn keyword dcdFunction		DCod TRTS TNXT CRLF
syn match   dcdFunction		display "\(STR\)\#"
syn keyword dcdLabel		LABL
syn region  dcdLabel		start="[A-Z]" end=";"
syn keyword dcdConditional	CEQU CNEQ CGTE CLTE CBIT CLSE
syn keyword dcdConditional	LSTS LSTE LSTZ
syn keyword dcdConditional	TYPE TTST TEQU TNEQ TGTE TLTE TBIT TLSE TSUB SKIP
syn keyword dcdConditional	MARK WHOA
syn keyword dcdConditional	SEQU SNEQ SGTE SLTE SBIT
syn match   dcdConditional	display "\(CST\)\#" "\(TST\)\#"
syn keyword dcdDisplay		HBIT DBIT BBIT
syn keyword dcdDisplay		HBYT DBYT BBYT
syn keyword dcdDisplay		HWRD DWRD BWRD
syn keyword dcdDisplay		HLNG DLNG BLNG
syn keyword dcdDisplay		D64B
syn match   dcdDisplay		display "\(HEX\)\#" "\(CHR\)\#" "\(EBC\)\#"
syn keyword dcdDisplay		HGLB DGLB BGLB
syn keyword dcdDisplay		DUMP
syn keyword dcdStatement	IPLG IPV6 ATLG AT03 AT01 ETHR TRNG PRTO PORT
syn keyword dcdStatement	TIME OSTP PSTR CSTR NBNM DMPE FTPL CKSM FCSC
syn keyword dcdStatement	GBIT GBYT GWRD GLNG
syn keyword dcdStatement	MOVE ANDG ORRG NOTG ADDG SUBG MULG DIVG MODG INCR DECR
syn keyword dcdSpecial		PRV1 PRV2 PRV3 PRV4 PRV5 PRV6 PRV7 PRV8

" Comment
syn region  dcdComment		start="\*" end="\;"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dcdFunction		Identifier
hi def link dcdLabel		Constant
hi def link dcdConditional		Conditional
hi def link dcdDisplay		Type
hi def link dcdStatement		Statement
hi def link dcdSpecial		Special
hi def link dcdComment		Comment


let b:current_syntax = "dcd"
PK�j�Z<[_ vim80/syntax/fdcc.vimnu�[���" Vim syntax file
" Language:	fdcc or locale files
" Maintainer:	Dwayne Bailey <dwayne@translate.org.za>
" Last Change:	2004 May 16
" Remarks:      FDCC (Formal Definitions of Cultural Conventions) see ISO TR 14652

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn sync minlines=150
setlocal iskeyword+=-

" Numbers
syn match fdccNumber /[0-9]*/ contained

" Unicode codings and strings
syn match fdccUnicodeInValid /<[^<]*>/ contained
syn match fdccUnicodeValid /<U[0-9A-F][0-9A-F][0-9A-F][0-9A-F]>/ contained
syn region fdccString start=/"/ end=/"/ contains=fdccUnicodeInValid,fdccUnicodeValid

" Valid LC_ Keywords
syn keyword fdccKeyword escape_char comment_char
syn keyword fdccKeywordIdentification title source address contact email tel fax language territory revision date category
syn keyword fdccKeywordCtype copy space translit_start include translit_end outdigit class
syn keyword fdccKeywordCollate copy script order_start order_end collating-symbol reorder-after reorder-end collating-element symbol-equivalence
syn keyword fdccKeywordMonetary copy int_curr_symbol currency_symbol mon_decimal_point mon_thousands_sep mon_grouping positive_sign negative_sign int_frac_digits frac_digits p_cs_precedes p_sep_by_space n_cs_precedes n_sep_by_space p_sign_posn n_sign_posn int_p_cs_precedes int_p_sep_by_space int_n_cs_precedes int_n_sep_by_space  int_p_sign_posn int_n_sign_posn
syn keyword fdccKeywordNumeric copy decimal_point thousands_sep grouping
syn keyword fdccKeywordTime copy abday day abmon mon d_t_fmt d_fmt t_fmt am_pm t_fmt_ampm date_fmt era_d_fmt first_weekday first_workday week cal_direction time_zone era alt_digits era_d_t_fmt
syn keyword fdccKeywordMessages copy yesexpr noexpr yesstr nostr
syn keyword fdccKeywordPaper copy height width
syn keyword fdccKeywordTelephone copy tel_int_fmt int_prefix tel_dom_fmt int_select
syn keyword fdccKeywordMeasurement copy measurement
syn keyword fdccKeywordName copy name_fmt name_gen name_mr name_mrs name_miss name_ms
syn keyword fdccKeywordAddress copy postal_fmt country_name country_post country_ab2 country_ab3  country_num country_car  country_isbn lang_name lang_ab lang_term lang_lib

" Comments
syn keyword fdccTodo TODO FIXME contained
syn match fdccVariable /%[a-zA-Z]/ contained
syn match fdccComment /[#%].*/ contains=fdccTodo,fdccVariable

" LC_ Groups
syn region fdccBlank matchgroup=fdccLCIdentification start=/^LC_IDENTIFICATION$/ end=/^END LC_IDENTIFICATION$/ contains=fdccKeywordIdentification,fdccString,fdccComment
syn region fdccBlank matchgroup=fdccLCCtype start=/^LC_CTYPE$/ end=/^END LC_CTYPE$/ contains=fdccKeywordCtype,fdccString,fdccComment,fdccUnicodeInValid,fdccUnicodeValid
syn region fdccBlank matchgroup=fdccLCCollate start=/^LC_COLLATE$/ end=/^END LC_COLLATE$/ contains=fdccKeywordCollate,fdccString,fdccComment,fdccUnicodeInValid,fdccUnicodeValid
syn region fdccBlank matchgroup=fdccLCMonetary start=/^LC_MONETARY$/ end=/^END LC_MONETARY$/ contains=fdccKeywordMonetary,fdccString,fdccComment,fdccNumber
syn region fdccBlank matchgroup=fdccLCNumeric start=/^LC_NUMERIC$/ end=/^END LC_NUMERIC$/ contains=fdccKeywordNumeric,fdccString,fdccComment,fdccNumber
syn region fdccBlank matchgroup=fdccLCTime start=/^LC_TIME$/ end=/^END LC_TIME$/ contains=fdccKeywordTime,fdccString,fdccComment,fdccNumber
syn region fdccBlank matchgroup=fdccLCMessages start=/^LC_MESSAGES$/ end=/^END LC_MESSAGES$/ contains=fdccKeywordMessages,fdccString,fdccComment
syn region fdccBlank matchgroup=fdccLCPaper start=/^LC_PAPER$/ end=/^END LC_PAPER$/ contains=fdccKeywordPaper,fdccString,fdccComment,fdccNumber
syn region fdccBlank matchgroup=fdccLCTelephone start=/^LC_TELEPHONE$/ end=/^END LC_TELEPHONE$/ contains=fdccKeywordTelephone,fdccString,fdccComment
syn region fdccBlank matchgroup=fdccLCMeasurement start=/^LC_MEASUREMENT$/ end=/^END LC_MEASUREMENT$/ contains=fdccKeywordMeasurement,fdccString,fdccComment,fdccNumber
syn region fdccBlank matchgroup=fdccLCName start=/^LC_NAME$/ end=/^END LC_NAME$/ contains=fdccKeywordName,fdccString,fdccComment
syn region fdccBlank matchgroup=fdccLCAddress start=/^LC_ADDRESS$/ end=/^END LC_ADDRESS$/ contains=fdccKeywordAddress,fdccString,fdccComment,fdccNumber


" Only when an item doesn't have highlighting yet

hi def link fdccBlank		 Blank

hi def link fdccTodo		 Todo
hi def link fdccComment		 Comment
hi def link fdccVariable		 Type

hi def link fdccLCIdentification	 Statement
hi def link fdccLCCtype		 Statement
hi def link fdccLCCollate		 Statement
hi def link fdccLCMonetary		 Statement
hi def link fdccLCNumeric		 Statement
hi def link fdccLCTime		 Statement
hi def link fdccLCMessages		 Statement
hi def link fdccLCPaper		 Statement
hi def link fdccLCTelephone	 Statement
hi def link fdccLCMeasurement	 Statement
hi def link fdccLCName		 Statement
hi def link fdccLCAddress		 Statement

hi def link fdccUnicodeInValid	 Error
hi def link fdccUnicodeValid	 String
hi def link fdccString		 String
hi def link fdccNumber		 Blank

hi def link fdccKeywordIdentification fdccKeyword
hi def link fdccKeywordCtype	   fdccKeyword
hi def link fdccKeywordCollate	   fdccKeyword
hi def link fdccKeywordMonetary	   fdccKeyword
hi def link fdccKeywordNumeric	   fdccKeyword
hi def link fdccKeywordTime	   fdccKeyword
hi def link fdccKeywordMessages	   fdccKeyword
hi def link fdccKeywordPaper	   fdccKeyword
hi def link fdccKeywordTelephone	   fdccKeyword
hi def link fdccKeywordMeasurement    fdccKeyword
hi def link fdccKeywordName	   fdccKeyword
hi def link fdccKeywordAddress	   fdccKeyword
hi def link fdccKeyword		   Identifier


let b:current_syntax = "fdcc"

" vim: ts=8
PK�j�Z�Y���
�
vim80/syntax/sather.vimnu�[���" Vim syntax file
" Language:	Sather/pSather
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/sather.vim
" Last Change:	2003 May 11

" Sather is a OO-language developped at the International Computer Science
" Institute (ICSI) in Berkeley, CA. pSather is a parallel extension to Sather.
" Homepage: http://www.icsi.berkeley.edu/~sather
" Sather files use .sa as suffix

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" keyword definitions
syn keyword satherExternal	 extern
syn keyword satherBranch	 break continue
syn keyword satherLabel		 when then
syn keyword satherConditional	 if else elsif end case typecase assert with
syn match satherConditional	 "near$"
syn match satherConditional	 "far$"
syn match satherConditional	 "near *[^(]"he=e-1
syn match satherConditional	 "far *[^(]"he=e-1
syn keyword satherSynchronize	 lock guard sync
syn keyword satherRepeat	 loop parloop do
syn match satherRepeat		 "while!"
syn match satherRepeat		 "break!"
syn match satherRepeat		 "until!"
syn keyword satherBoolValue	 true false
syn keyword satherValue		 self here cluster
syn keyword satherOperator	 new "== != & ^ | && ||
syn keyword satherOperator	 and or not
syn match satherOperator	 "[#!]"
syn match satherOperator	 ":-"
syn keyword satherType		 void attr where
syn match satherType	       "near *("he=e-1
syn match satherType	       "far *("he=e-1
syn keyword satherStatement	 return
syn keyword satherStorageClass	 static const
syn keyword satherExceptions	 try raise catch
syn keyword satherMethodDecl	 is pre post
syn keyword satherClassDecl	 abstract value class include
syn keyword satherScopeDecl	 public private readonly


syn match   satherSpecial	    contained "\\\d\d\d\|\\."
syn region  satherString	    start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=satherSpecial
syn match   satherCharacter	    "'[^\\]'"
syn match   satherSpecialCharacter  "'\\.'"
syn match   satherNumber	  "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
syn match   satherCommentSkip	  contained "^\s*\*\($\|\s\+\)"
syn region  satherComment2String  contained start=+"+  skip=+\\\\\|\\"+  end=+$\|"+  contains=satherSpecial
syn match   satherComment	  "--.*" contains=satherComment2String,satherCharacter,satherNumber


syn sync ccomment satherComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link satherBranch		satherStatement
hi def link satherLabel		satherStatement
hi def link satherConditional	satherStatement
hi def link satherSynchronize	satherStatement
hi def link satherRepeat		satherStatement
hi def link satherExceptions	satherStatement
hi def link satherStorageClass	satherDeclarative
hi def link satherMethodDecl	satherDeclarative
hi def link satherClassDecl	satherDeclarative
hi def link satherScopeDecl	satherDeclarative
hi def link satherBoolValue	satherValue
hi def link satherSpecial		satherValue
hi def link satherString		satherValue
hi def link satherCharacter	satherValue
hi def link satherSpecialCharacter satherValue
hi def link satherNumber		satherValue
hi def link satherStatement	Statement
hi def link satherOperator		Statement
hi def link satherComment		Comment
hi def link satherType		Type
hi def link satherValue		String
hi def link satherString		String
hi def link satherSpecial		String
hi def link satherCharacter	String
hi def link satherDeclarative	Type
hi def link satherExternal		PreCondit

let b:current_syntax = "sather"

" vim: ts=8
PK�j�ZO
T[ͣͣvim80/syntax/clojure.vimnu�[���" Vim syntax file
" Language:     Clojure
" Authors:      Toralf Wittner <toralf.wittner@gmail.com>
"               modified by Meikel Brandmeyer <mb@kotka.de>
" URL:          http://kotka.de/projects/clojure/vimclojure.html
"
" Contributors: Joel Holdbrooks <cjholdbrooks@gmail.com> (Regexp support, bug fixes)
"
" Maintainer:   Sung Pae <self@sungpae.com>
" URL:          https://github.com/guns/vim-clojure-static
" License:      Same as Vim
" Last Change:  18 July 2016

if exists("b:current_syntax")
	finish
endif

let s:cpo_sav = &cpo
set cpo&vim

if has("folding") && exists("g:clojure_fold") && g:clojure_fold > 0
	setlocal foldmethod=syntax
endif

" -*- KEYWORDS -*-
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
" Clojure version 1.8.0
let s:clojure_syntax_keywords = {
    \   'clojureBoolean': ["false","true"]
    \ , 'clojureCond': ["case","clojure.core/case","clojure.core/cond","clojure.core/cond->","clojure.core/cond->>","clojure.core/condp","clojure.core/if-let","clojure.core/if-not","clojure.core/if-some","clojure.core/when","clojure.core/when-first","clojure.core/when-let","clojure.core/when-not","clojure.core/when-some","cond","cond->","cond->>","condp","if-let","if-not","if-some","when","when-first","when-let","when-not","when-some"]
    \ , 'clojureConstant': ["nil"]
    \ , 'clojureDefine': ["clojure.core/definline","clojure.core/definterface","clojure.core/defmacro","clojure.core/defmethod","clojure.core/defmulti","clojure.core/defn","clojure.core/defn-","clojure.core/defonce","clojure.core/defprotocol","clojure.core/defrecord","clojure.core/defstruct","clojure.core/deftype","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype"]
    \ , 'clojureException': ["catch","finally","throw","try"]
    \ , 'clojureFunc': ["*","*'","+","+'","-","-'","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","/","<","<=","=","==",">",">=","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","ancestors","apply","array-map","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","booleans","bound-fn*","bound?","butlast","byte","byte-array","bytes","cast","cat","char","char-array","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","clojure.core/*","clojure.core/*'","clojure.core/+","clojure.core/+'","clojure.core/-","clojure.core/-'","clojure.core/->ArrayChunk","clojure.core/->Eduction","clojure.core/->Vec","clojure.core/->VecNode","clojure.core/->VecSeq","clojure.core/-cache-protocol-fn","clojure.core/-reset-methods","clojure.core//","clojure.core/<","clojure.core/<=","clojure.core/=","clojure.core/==","clojure.core/>","clojure.core/>=","clojure.core/Throwable->map","clojure.core/accessor","clojure.core/aclone","clojure.core/add-classpath","clojure.core/add-watch","clojure.core/agent","clojure.core/agent-error","clojure.core/agent-errors","clojure.core/aget","clojure.core/alength","clojure.core/alias","clojure.core/all-ns","clojure.core/alter","clojure.core/alter-meta!","clojure.core/alter-var-root","clojure.core/ancestors","clojure.core/apply","clojure.core/array-map","clojure.core/aset","clojure.core/aset-boolean","clojure.core/aset-byte","clojure.core/aset-char","clojure.core/aset-double","clojure.core/aset-float","clojure.core/aset-int","clojure.core/aset-long","clojure.core/aset-short","clojure.core/assoc","clojure.core/assoc!","clojure.core/assoc-in","clojure.core/associative?","clojure.core/atom","clojure.core/await","clojure.core/await-for","clojure.core/await1","clojure.core/bases","clojure.core/bean","clojure.core/bigdec","clojure.core/bigint","clojure.core/biginteger","clojure.core/bit-and","clojure.core/bit-and-not","clojure.core/bit-clear","clojure.core/bit-flip","clojure.core/bit-not","clojure.core/bit-or","clojure.core/bit-set","clojure.core/bit-shift-left","clojure.core/bit-shift-right","clojure.core/bit-test","clojure.core/bit-xor","clojure.core/boolean","clojure.core/boolean-array","clojure.core/booleans","clojure.core/bound-fn*","clojure.core/bound?","clojure.core/butlast","clojure.core/byte","clojure.core/byte-array","clojure.core/bytes","clojure.core/cast","clojure.core/cat","clojure.core/char","clojure.core/char-array","clojure.core/char?","clojure.core/chars","clojure.core/chunk","clojure.core/chunk-append","clojure.core/chunk-buffer","clojure.core/chunk-cons","clojure.core/chunk-first","clojure.core/chunk-next","clojure.core/chunk-rest","clojure.core/chunked-seq?","clojure.core/class","clojure.core/class?","clojure.core/clear-agent-errors","clojure.core/clojure-version","clojure.core/coll?","clojure.core/commute","clojure.core/comp","clojure.core/comparator","clojure.core/compare","clojure.core/compare-and-set!","clojure.core/compile","clojure.core/complement","clojure.core/completing","clojure.core/concat","clojure.core/conj","clojure.core/conj!","clojure.core/cons","clojure.core/constantly","clojure.core/construct-proxy","clojure.core/contains?","clojure.core/count","clojure.core/counted?","clojure.core/create-ns","clojure.core/create-struct","clojure.core/cycle","clojure.core/dec","clojure.core/dec'","clojure.core/decimal?","clojure.core/dedupe","clojure.core/delay?","clojure.core/deliver","clojure.core/denominator","clojure.core/deref","clojure.core/derive","clojure.core/descendants","clojure.core/destructure","clojure.core/disj","clojure.core/disj!","clojure.core/dissoc","clojure.core/dissoc!","clojure.core/distinct","clojure.core/distinct?","clojure.core/doall","clojure.core/dorun","clojure.core/double","clojure.core/double-array","clojure.core/doubles","clojure.core/drop","clojure.core/drop-last","clojure.core/drop-while","clojure.core/eduction","clojure.core/empty","clojure.core/empty?","clojure.core/ensure","clojure.core/ensure-reduced","clojure.core/enumeration-seq","clojure.core/error-handler","clojure.core/error-mode","clojure.core/eval","clojure.core/even?","clojure.core/every-pred","clojure.core/every?","clojure.core/ex-data","clojure.core/ex-info","clojure.core/extend","clojure.core/extenders","clojure.core/extends?","clojure.core/false?","clojure.core/ffirst","clojure.core/file-seq","clojure.core/filter","clojure.core/filterv","clojure.core/find","clojure.core/find-keyword","clojure.core/find-ns","clojure.core/find-protocol-impl","clojure.core/find-protocol-method","clojure.core/find-var","clojure.core/first","clojure.core/flatten","clojure.core/float","clojure.core/float-array","clojure.core/float?","clojure.core/floats","clojure.core/flush","clojure.core/fn?","clojure.core/fnext","clojure.core/fnil","clojure.core/force","clojure.core/format","clojure.core/frequencies","clojure.core/future-call","clojure.core/future-cancel","clojure.core/future-cancelled?","clojure.core/future-done?","clojure.core/future?","clojure.core/gensym","clojure.core/get","clojure.core/get-in","clojure.core/get-method","clojure.core/get-proxy-class","clojure.core/get-thread-bindings","clojure.core/get-validator","clojure.core/group-by","clojure.core/hash","clojure.core/hash-combine","clojure.core/hash-map","clojure.core/hash-ordered-coll","clojure.core/hash-set","clojure.core/hash-unordered-coll","clojure.core/identical?","clojure.core/identity","clojure.core/ifn?","clojure.core/in-ns","clojure.core/inc","clojure.core/inc'","clojure.core/init-proxy","clojure.core/instance?","clojure.core/int","clojure.core/int-array","clojure.core/integer?","clojure.core/interleave","clojure.core/intern","clojure.core/interpose","clojure.core/into","clojure.core/into-array","clojure.core/ints","clojure.core/isa?","clojure.core/iterate","clojure.core/iterator-seq","clojure.core/juxt","clojure.core/keep","clojure.core/keep-indexed","clojure.core/key","clojure.core/keys","clojure.core/keyword","clojure.core/keyword?","clojure.core/last","clojure.core/line-seq","clojure.core/list","clojure.core/list*","clojure.core/list?","clojure.core/load","clojure.core/load-file","clojure.core/load-reader","clojure.core/load-string","clojure.core/loaded-libs","clojure.core/long","clojure.core/long-array","clojure.core/longs","clojure.core/macroexpand","clojure.core/macroexpand-1","clojure.core/make-array","clojure.core/make-hierarchy","clojure.core/map","clojure.core/map-entry?","clojure.core/map-indexed","clojure.core/map?","clojure.core/mapcat","clojure.core/mapv","clojure.core/max","clojure.core/max-key","clojure.core/memoize","clojure.core/merge","clojure.core/merge-with","clojure.core/meta","clojure.core/method-sig","clojure.core/methods","clojure.core/min","clojure.core/min-key","clojure.core/mix-collection-hash","clojure.core/mod","clojure.core/munge","clojure.core/name","clojure.core/namespace","clojure.core/namespace-munge","clojure.core/neg?","clojure.core/newline","clojure.core/next","clojure.core/nfirst","clojure.core/nil?","clojure.core/nnext","clojure.core/not","clojure.core/not-any?","clojure.core/not-empty","clojure.core/not-every?","clojure.core/not=","clojure.core/ns-aliases","clojure.core/ns-imports","clojure.core/ns-interns","clojure.core/ns-map","clojure.core/ns-name","clojure.core/ns-publics","clojure.core/ns-refers","clojure.core/ns-resolve","clojure.core/ns-unalias","clojure.core/ns-unmap","clojure.core/nth","clojure.core/nthnext","clojure.core/nthrest","clojure.core/num","clojure.core/number?","clojure.core/numerator","clojure.core/object-array","clojure.core/odd?","clojure.core/parents","clojure.core/partial","clojure.core/partition","clojure.core/partition-all","clojure.core/partition-by","clojure.core/pcalls","clojure.core/peek","clojure.core/persistent!","clojure.core/pmap","clojure.core/pop","clojure.core/pop!","clojure.core/pop-thread-bindings","clojure.core/pos?","clojure.core/pr","clojure.core/pr-str","clojure.core/prefer-method","clojure.core/prefers","clojure.core/print","clojure.core/print-ctor","clojure.core/print-dup","clojure.core/print-method","clojure.core/print-simple","clojure.core/print-str","clojure.core/printf","clojure.core/println","clojure.core/println-str","clojure.core/prn","clojure.core/prn-str","clojure.core/promise","clojure.core/proxy-call-with-super","clojure.core/proxy-mappings","clojure.core/proxy-name","clojure.core/push-thread-bindings","clojure.core/quot","clojure.core/rand","clojure.core/rand-int","clojure.core/rand-nth","clojure.core/random-sample","clojure.core/range","clojure.core/ratio?","clojure.core/rational?","clojure.core/rationalize","clojure.core/re-find","clojure.core/re-groups","clojure.core/re-matcher","clojure.core/re-matches","clojure.core/re-pattern","clojure.core/re-seq","clojure.core/read","clojure.core/read-line","clojure.core/read-string","clojure.core/reader-conditional","clojure.core/reader-conditional?","clojure.core/realized?","clojure.core/record?","clojure.core/reduce","clojure.core/reduce-kv","clojure.core/reduced","clojure.core/reduced?","clojure.core/reductions","clojure.core/ref","clojure.core/ref-history-count","clojure.core/ref-max-history","clojure.core/ref-min-history","clojure.core/ref-set","clojure.core/refer","clojure.core/release-pending-sends","clojure.core/rem","clojure.core/remove","clojure.core/remove-all-methods","clojure.core/remove-method","clojure.core/remove-ns","clojure.core/remove-watch","clojure.core/repeat","clojure.core/repeatedly","clojure.core/replace","clojure.core/replicate","clojure.core/require","clojure.core/reset!","clojure.core/reset-meta!","clojure.core/resolve","clojure.core/rest","clojure.core/restart-agent","clojure.core/resultset-seq","clojure.core/reverse","clojure.core/reversible?","clojure.core/rseq","clojure.core/rsubseq","clojure.core/run!","clojure.core/satisfies?","clojure.core/second","clojure.core/select-keys","clojure.core/send","clojure.core/send-off","clojure.core/send-via","clojure.core/seq","clojure.core/seq?","clojure.core/seque","clojure.core/sequence","clojure.core/sequential?","clojure.core/set","clojure.core/set-agent-send-executor!","clojure.core/set-agent-send-off-executor!","clojure.core/set-error-handler!","clojure.core/set-error-mode!","clojure.core/set-validator!","clojure.core/set?","clojure.core/short","clojure.core/short-array","clojure.core/shorts","clojure.core/shuffle","clojure.core/shutdown-agents","clojure.core/slurp","clojure.core/some","clojure.core/some-fn","clojure.core/some?","clojure.core/sort","clojure.core/sort-by","clojure.core/sorted-map","clojure.core/sorted-map-by","clojure.core/sorted-set","clojure.core/sorted-set-by","clojure.core/sorted?","clojure.core/special-symbol?","clojure.core/spit","clojure.core/split-at","clojure.core/split-with","clojure.core/str","clojure.core/string?","clojure.core/struct","clojure.core/struct-map","clojure.core/subs","clojure.core/subseq","clojure.core/subvec","clojure.core/supers","clojure.core/swap!","clojure.core/symbol","clojure.core/symbol?","clojure.core/tagged-literal","clojure.core/tagged-literal?","clojure.core/take","clojure.core/take-last","clojure.core/take-nth","clojure.core/take-while","clojure.core/test","clojure.core/the-ns","clojure.core/thread-bound?","clojure.core/to-array","clojure.core/to-array-2d","clojure.core/trampoline","clojure.core/transduce","clojure.core/transient","clojure.core/tree-seq","clojure.core/true?","clojure.core/type","clojure.core/unchecked-add","clojure.core/unchecked-add-int","clojure.core/unchecked-byte","clojure.core/unchecked-char","clojure.core/unchecked-dec","clojure.core/unchecked-dec-int","clojure.core/unchecked-divide-int","clojure.core/unchecked-double","clojure.core/unchecked-float","clojure.core/unchecked-inc","clojure.core/unchecked-inc-int","clojure.core/unchecked-int","clojure.core/unchecked-long","clojure.core/unchecked-multiply","clojure.core/unchecked-multiply-int","clojure.core/unchecked-negate","clojure.core/unchecked-negate-int","clojure.core/unchecked-remainder-int","clojure.core/unchecked-short","clojure.core/unchecked-subtract","clojure.core/unchecked-subtract-int","clojure.core/underive","clojure.core/unreduced","clojure.core/unsigned-bit-shift-right","clojure.core/update","clojure.core/update-in","clojure.core/update-proxy","clojure.core/use","clojure.core/val","clojure.core/vals","clojure.core/var-get","clojure.core/var-set","clojure.core/var?","clojure.core/vary-meta","clojure.core/vec","clojure.core/vector","clojure.core/vector-of","clojure.core/vector?","clojure.core/volatile!","clojure.core/volatile?","clojure.core/vreset!","clojure.core/with-bindings*","clojure.core/with-meta","clojure.core/with-redefs-fn","clojure.core/xml-seq","clojure.core/zero?","clojure.core/zipmap","coll?","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","dedupe","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","double","double-array","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn?","fnext","fnil","force","format","frequencies","future-call","future-cancel","future-cancelled?","future-done?","future?","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","identical?","identity","ifn?","in-ns","inc","inc'","init-proxy","instance?","int","int-array","integer?","interleave","intern","interpose","into","into-array","ints","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","long","long-array","longs","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos?","pr","pr-str","prefer-method","prefers","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy-call-with-super","proxy-mappings","proxy-name","push-thread-bindings","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","slurp","some","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","symbol","symbol?","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","use","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","with-bindings*","with-meta","with-redefs-fn","xml-seq","zero?","zipmap"]
    \ , 'clojureMacro': ["->","->>","..","amap","and","areduce","as->","assert","binding","bound-fn","clojure.core/->","clojure.core/->>","clojure.core/..","clojure.core/amap","clojure.core/and","clojure.core/areduce","clojure.core/as->","clojure.core/assert","clojure.core/binding","clojure.core/bound-fn","clojure.core/comment","clojure.core/declare","clojure.core/delay","clojure.core/dosync","clojure.core/doto","clojure.core/extend-protocol","clojure.core/extend-type","clojure.core/for","clojure.core/future","clojure.core/gen-class","clojure.core/gen-interface","clojure.core/import","clojure.core/io!","clojure.core/lazy-cat","clojure.core/lazy-seq","clojure.core/letfn","clojure.core/locking","clojure.core/memfn","clojure.core/ns","clojure.core/or","clojure.core/proxy","clojure.core/proxy-super","clojure.core/pvalues","clojure.core/refer-clojure","clojure.core/reify","clojure.core/some->","clojure.core/some->>","clojure.core/sync","clojure.core/time","clojure.core/vswap!","clojure.core/with-bindings","clojure.core/with-in-str","clojure.core/with-loading-context","clojure.core/with-local-vars","clojure.core/with-open","clojure.core/with-out-str","clojure.core/with-precision","clojure.core/with-redefs","comment","declare","delay","dosync","doto","extend-protocol","extend-type","for","future","gen-class","gen-interface","import","io!","lazy-cat","lazy-seq","letfn","locking","memfn","ns","or","proxy","proxy-super","pvalues","refer-clojure","reify","some->","some->>","sync","time","vswap!","with-bindings","with-in-str","with-loading-context","with-local-vars","with-open","with-out-str","with-precision","with-redefs"]
    \ , 'clojureRepeat': ["clojure.core/doseq","clojure.core/dotimes","clojure.core/while","doseq","dotimes","while"]
    \ , 'clojureSpecial': [".","clojure.core/fn","clojure.core/let","clojure.core/loop","def","do","fn","if","let","loop","monitor-enter","monitor-exit","new","quote","recur","set!","var"]
    \ , 'clojureVariable': ["*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-readably*","*read-eval*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","EMPTY-NODE","char-escape-string","char-name-string","clojure.core/*1","clojure.core/*2","clojure.core/*3","clojure.core/*agent*","clojure.core/*allow-unresolved-vars*","clojure.core/*assert*","clojure.core/*clojure-version*","clojure.core/*command-line-args*","clojure.core/*compile-files*","clojure.core/*compile-path*","clojure.core/*compiler-options*","clojure.core/*data-readers*","clojure.core/*default-data-reader-fn*","clojure.core/*e","clojure.core/*err*","clojure.core/*file*","clojure.core/*flush-on-newline*","clojure.core/*fn-loader*","clojure.core/*in*","clojure.core/*math-context*","clojure.core/*ns*","clojure.core/*out*","clojure.core/*print-dup*","clojure.core/*print-length*","clojure.core/*print-level*","clojure.core/*print-meta*","clojure.core/*print-readably*","clojure.core/*read-eval*","clojure.core/*source-path*","clojure.core/*suppress-read*","clojure.core/*unchecked-math*","clojure.core/*use-context-classloader*","clojure.core/*verbose-defrecords*","clojure.core/*warn-on-reflection*","clojure.core/EMPTY-NODE","clojure.core/char-escape-string","clojure.core/char-name-string","clojure.core/default-data-readers","clojure.core/primitives-classnames","clojure.core/unquote","clojure.core/unquote-splicing","default-data-readers","primitives-classnames","unquote","unquote-splicing"]
    \ }

function! s:syntax_keyword(dict)
	for key in keys(a:dict)
		execute 'syntax keyword' key join(a:dict[key], ' ')
	endfor
endfunction

if exists('b:clojure_syntax_without_core_keywords') && b:clojure_syntax_without_core_keywords
	" Only match language specials and primitives
	for s:key in ['clojureBoolean', 'clojureConstant', 'clojureException', 'clojureSpecial']
		execute 'syntax keyword' s:key join(s:clojure_syntax_keywords[s:key], ' ')
	endfor
else
	call s:syntax_keyword(s:clojure_syntax_keywords)
endif

if exists('g:clojure_syntax_keywords')
	call s:syntax_keyword(g:clojure_syntax_keywords)
endif

if exists('b:clojure_syntax_keywords')
	call s:syntax_keyword(b:clojure_syntax_keywords)
endif

unlet! s:key
delfunction s:syntax_keyword

" Keywords are symbols:
"   static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)");
" But they:
"   * Must not end in a : or /
"   * Must not have two adjacent colons except at the beginning
"   * Must not contain any reader metacharacters except for ' and #
syntax match clojureKeyword "\v<:{1,2}%([^ \n\r\t()\[\]{}";@^`~\\%/]+/)*[^ \n\r\t()\[\]{}";@^`~\\%/]+:@<!>"

syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained

syntax region clojureString matchgroup=clojureStringDelimiter start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell

syntax match clojureCharacter "\\."
syntax match clojureCharacter "\\o\%([0-3]\o\{2\}\|\o\{1,2\}\)"
syntax match clojureCharacter "\\u\x\{4\}"
syntax match clojureCharacter "\\space"
syntax match clojureCharacter "\\tab"
syntax match clojureCharacter "\\newline"
syntax match clojureCharacter "\\return"
syntax match clojureCharacter "\\backspace"
syntax match clojureCharacter "\\formfeed"

syntax match clojureSymbol "\v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@<!"

let s:radix_chars = "0123456789abcdefghijklmnopqrstuvwxyz"
for s:radix in range(2, 36)
	execute 'syntax match clojureNumber "\v\c<[-+]?' . s:radix . 'r[' . strpart(s:radix_chars, 0, s:radix) . ']+>"'
endfor
unlet! s:radix_chars s:radix

syntax match clojureNumber "\v<[-+]?%(0\o*|0x\x+|[1-9]\d*)N?>"
syntax match clojureNumber "\v<[-+]?%(0|[1-9]\d*|%(0|[1-9]\d*)\.\d*)%(M|[eE][-+]?\d+)?>"
syntax match clojureNumber "\v<[-+]?%(0|[1-9]\d*)/%(0|[1-9]\d*)>"

syntax match clojureVarArg "&"

syntax match clojureQuote "'"
syntax match clojureQuote "`"
syntax match clojureUnquote "\~"
syntax match clojureUnquote "\~@"
syntax match clojureMeta "\^"
syntax match clojureDeref "@"
syntax match clojureDispatch "\v#[\^'=<_]?"

" Clojure permits no more than 20 anonymous params.
syntax match clojureAnonArg "%\(20\|1\d\|[1-9]\|&\)\?"

syntax match  clojureRegexpEscape "\v\\%([\\tnrfae.()\[\]{}^$*?+]|c\u|0[0-3]?\o{1,2}|x%(\x{2}|\{\x{1,6}\})|u\x{4})" contained display
syntax region clojureRegexpQuoted start=/\\Q/ms=e+1 skip=/\\\\\|\\"/ end=/\\E/me=s-1 end=/"/me=s-1 contained
syntax region clojureRegexpQuote  start=/\\Q/       skip=/\\\\\|\\"/ end=/\\E/       end=/"/me=s-1 contains=clojureRegexpQuoted keepend contained

" -*- CHARACTER PROPERTY CLASSES -*-
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
" Java version 1.8.0_92
syntax match clojureRegexpPosixCharClass "\v\\[pP]\{%(Cntrl|A%(l%(pha|num)|SCII)|Space|Graph|Upper|P%(rint|unct)|Blank|XDigit|Digit|Lower)\}" contained display
syntax match clojureRegexpJavaCharClass "\v\\[pP]\{java%(Whitespace|JavaIdentifier%(Part|Start)|SpaceChar|Mirrored|TitleCase|I%(SOControl|de%(ographic|ntifierIgnorable))|D%(efined|igit)|U%(pperCase|nicodeIdentifier%(Part|Start))|L%(etter%(OrDigit)?|owerCase)|Alphabetic)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\cIs%(l%(owercase|etter)|hex%(digit|_digit)|w%(hite%(_space|space)|ord)|noncharacter%(_code_point|codepoint)|p%(rint|unctuation)|ideographic|graph|a%(l%(num|phabetic)|ssigned)|uppercase|join%(control|_control)|titlecase|blank|digit|control)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP][NSCMZPL]" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(Is|gc\=|general_category\=)?%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(Is|sc\=|script\=)%(l%(epc%(ha)?|y%([dc]i%(an)?)|a%(t%(n|in)|na|oo?)|i%(n%(b|ear_b)|mbu?|su))|p%(rti|lrd|h%(oenician|li|ag%(s_pa)?|nx))|vaii?|d%(srt|e%(seret|va%(nagari)?))|g%(lag%(olitic)?|eor%(gian)?|oth%(ic)?|re%(k|ek)|u%(j%(arati|r)|r%(u|mukhi)))|u%(gar%(itic)?|nknown)|a%(r%(ab%(ic)?|m%([ni]|enian))|v%(st|estan))|e%(thi%(opic)?|gyp%(tian_hieroglyphs)?)|z%(inh|yyy|zzz)|r%(un%(ic|r)|ejang|jng)|s%(inh%(ala)?|h%(rd|a%(vian|rada|w))|a%(ur%(ashtra)?|m%(r|aritan)|rb)|y%(r%(c|iac)|lo%(ti_nagri)?)|und%(anese)?|ora%(_sompeng)?)|i%(n%(scriptional_pa%(rthian|hlavi)|herited)|mperial_aramaic|tal)|b%(eng%(ali)?|a%(t%(ak|k)|li%(nese)?|mum?)|ra%(i%(lle)?|h%(mi)?)|opo%(mofo)?|u%(gi%(nese)?|h%(d|id)))|o%(g%(am|ham)|r%(iya|kh|ya)|sma%(nya)?|l%(d_%(south_arabian|persian|italic|turkic)|ck|_chiki))|k%(h%(m%(r|er)|ar%(oshthi)?)|nda|a%(li|n%(a|nada)|takana|yah_li|ithi)|thi)|m%(a%(nd%(aic)?|layalam)|lym|y%(anmar|mr)|tei|e%(r%(c|o%(itic_%(hieroglyphs|cursive))?)|etei_mayek)|ong%(olian)?|iao)|yi%(ii)?|x%(peo|sux)|n%(ew_tai_lue|koo?)|h%(ira%(gana)?|an%([io]|unoo|g%(ul)?)?|ebr%(ew)?)|c%(y%(priot|r%(l|illic))|a%(km|n%(adian_aboriginal|s)|ri%(an)?)|prt|h%(er%(okee)?|a%(m|kma))|uneiform|o%(pt%(ic)?|mmon))|t%(elu%(gu)?|i%(finagh|b%(t|etan))|ha%(i|a%(na)?)|a%(i_%(le|tham|viet)|g%(alog|b%(anwa)?)|vt|kri?|l[ue]|m%(il|l))|fng|glg)|java%(nese)?)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(In|blk\=|block\=)%(javanese|h%(a%(lfwidth%( and fullwidth forms|andfullwidthforms|_and_fullwidth_forms)|n%(unoo|gul%(compatibilityjamo|syllables|jamo%(extended\-[ab])?|_%(syllables|jamo%(_extended_[ab])?|compatibility_jamo)| %(syllables|compatibility jamo|jamo%( extended\-[ab])?))))|i%(ragana|gh%( %(private use surrogates|surrogates)|_%(private_use_surrogates|surrogates)|surrogates|privateusesurrogates))|ebrew)|i%(pa%([ _]extensions|extensions)|deographic%( description characters|_description_characters|descriptioncharacters)|nscriptional%(%([ _]pa%(rthian|hlavi))|pa%(rthian|hlavi))|mperial%(aramaic|[_ ]aramaic))|l%(e%(tterlike%([_ ]symbols|symbols)|pcha)|ow%([_ ]surrogates|surrogates)|i%(mbu|near%(_b_%(ideograms|syllabary)|b%(ideograms|syllabary)| b %(ideograms|syllabary))|su)|a%(tin%(extended%(additional|\-[dacb])| extended%( additional|\-[dacb])|\-1%(supplement| supplement)|_%(extended_%([dcb]|a%(dditional)?)|1_supplement))|o)|y[cd]ian)|b%(u%(ginese|hid)|ra%(hmi|ille%(patterns|[_ ]patterns))|o%(x%([ _]drawing|drawing)|pomofo%([ _]extended|extended)?)|lock%([ _]elements|elements)|yzantine%( musical symbols|musicalsymbols|_musical_symbols)|engali|a%(linese|mum%(supplement|[ _]supplement)?|tak|sic%([ _]latin|latin)))|e%(gyptian%([ _]hieroglyphs|hieroglyphs)|moticons|nclosed%( %(cjk letters and months|ideographic supplement|alphanumeric%( supplement|s))|cjklettersandmonths|_%(ideographic_supplement|alphanumeric%(_supplement|s)|cjk_letters_and_months)|alphanumerics%(upplement)?|ideographicsupplement)|thiopic%(supplement|_%(supplement|extended%(_a)?)| %(supplement|extended%(\-a)?)|extended%(\-a)?)?)|k%(h%(aroshthi|mer%([_ ]symbols|symbols)?)|a%(takana%(_phonetic_extensions|phoneticextensions| phonetic extensions)?|n%(gxi%([_ ]radicals|radicals)|a%(supplement|[ _]supplement)|bun|nada)|ithi|yah%([ _]li|li)))|m%(i%(ao|scellaneous%(technical|symbols%(and%(pictographs|arrows))?|mathematicalsymbols\-[ab]| %(technical|mathematical symbols\-[ab]|symbols%( and %(pictographs|arrows))?)|_%(technical|symbols%(_and_%(pictographs|arrows))?|mathematical_symbols_[ab])))|usical%([_ ]symbols|symbols)|e%(etei%(mayek%(extensions)?|_mayek%(_extensions)?| mayek%( extensions)?)|roitic%(hieroglyphs|%([_ ]%(hieroglyphs|cursive))|cursive))|a%(ndaic|hjong%([ _]tiles|tiles)|layalam|thematical%(alphanumericsymbols| %(alphanumeric symbols|operators)|_%(alphanumeric_symbols|operators)|operators))|yanmar%(extended\-a|_extended_a| extended\-a)?|o%(difier%(_tone_letters| tone letters|toneletters)|ngolian))|r%(u%(nic|mi%(numeralsymbols| numeral symbols|_numeral_symbols))|ejang)|n%(umber%(forms|[ _]forms)|ko|ew%(_tai_lue|tailue| tai lue))|c%(o%(ntrol%(pictures|[ _]pictures)|m%(bining%(diacriticalmarks%(supplement|forsymbols)?|halfmarks| %(diacritical marks%( %(supplement|for symbols))?|half marks|marks for symbols)|marksforsymbols|_%(marks_for_symbols|half_marks|diacritical_marks%(_supplement)?))|mon%(_indic_number_forms|indicnumberforms| indic number forms))|ptic|unting%( rod numerals|_rod_numerals|rodnumerals))|y%(rillic%(extended\-[ab]|_%(extended_[ab]|supplementary)|supplement%(ary)?| %(extended\-[ab]|supplement%(ary)?))?|priot%(syllabary|[ _]syllabary))|u%(rrency%([_ ]symbols|symbols)|neiform%(_numbers_and_punctuation|numbersandpunctuation| numbers and punctuation)?)|h%(a%(m|kma)|erokee)|arian|jk%(s%(ymbolsandpunctuation|trokes)|compatibility%(forms|ideographs%(supplement)?)?|radicalssupplement| %(compatibility%( %(ideographs%( supplement)?|forms))?|radicals supplement|unified ideographs%( extension [dacb])?|s%(ymbols and punctuation|trokes))|_%(s%(trokes|ymbols_and_punctuation)|radicals_supplement|compatibility%(_%(forms|ideographs%(_supplement)?))?|unified_ideographs%(_extension_[dacb])?)|unifiedideographs%(extension[dacb])?))|d%(e%(seret|vanagari%([ _]extended|extended)?)|ingbats|omino%([ _]tiles|tiles))|yi%(syllables|%([_ ]%(syllables|radicals))|radicals|jing%(hexagramsymbols| hexagram symbols|_hexagram_symbols))|s%(mall%( form variants|formvariants|_form_variants)|p%(acing%(_modifier_letters| modifier letters|modifierletters)|ecials)|ora%(sompeng|[ _]sompeng)|ha%(vian|rada)|a%(maritan|urashtra)|inhala|y%(riac|loti%([_ ]nagri|nagri))|u%(ndanese%(supplement|[ _]supplement)?|p%(erscripts%(_and_subscripts|andsubscripts| and subscripts)|plementa%(ry%(_private_use_area_[ab]|privateusearea\-[ab]| private use area\-[ab])|l%(_%(arrows_[ab]|mathematical_operators|punctuation)| %(mathematical operators|punctuation|arrows\-[ab])|mathematicaloperators|punctuation|arrows\-[ab])))|rrogates_area))|p%(h%(o%(enician|netic%( extensions%( supplement)?|extensions%(supplement)?|_extensions%(_supplement)?))|a%(istos%([ _]disc|disc)|gs[_\-]pa))|laying%(cards|[_ ]cards)|rivate%(usearea| use area|_use_area))|o%(smanya|l%([ _]chiki|d%( %(south arabian|persian|italic|turkic)|southarabian|_%(south_arabian|persian|italic|turkic)|persian|italic|turkic)|chiki)|riya|ptical%( character recognition|_character_recognition|characterrecognition)|gham)|g%(u%(jarati|rmukhi)|othic|lagolitic|e%(o%(rgian%(supplement|[ _]supplement)?|metric%(shapes|[ _]shapes))|neral%([_ ]punctuation|punctuation))|reek%( %(and coptic|extended)|andcoptic|_extended|extended)?)|t%(i%(betan|finagh)|elugu|ransport%( and map symbols|_and_map_symbols|andmapsymbols)|a%(mil|kri|i%(xuanjingsymbols|_%(le|xuan_jing_symbols|tham|viet)|le| %(xuan jing symbols|le|tham|viet)|tham|viet)|g%(alog|s|banwa))|ha%(i|ana))|a%(l%(chemical%([_ ]symbols|symbols)|phabetic%( presentation forms|_presentation_forms|presentationforms))|r%(menian|abic%(extended\-a|mathematicalalphabeticsymbols|supplement|_%(presentation_forms_[ab]|supplement|extended_a|mathematical_alphabetic_symbols)| %(extended\-a|mathematical alphabetic symbols|supplement|presentation forms\-[ab])|presentationforms\-[ab])?|rows)|ncient%(_%(greek_%(musical_notation|numbers)|symbols)|greek%(numbers|musicalnotation)| %(greek %(numbers|musical notation)|symbols)|symbols)|egean%(numbers|[ _]numbers)|vestan)|u%(garitic|nified%(canadianaboriginalsyllabics%(extended)?|_canadian_aboriginal_syllabics%(_extended)?| canadian aboriginal syllabics%( extended)?))|v%(a%(i|riation%( selectors%( supplement)?|selectors%(supplement)?|_selectors%(_supplement)?))|e%(rtical%(forms|[ _]forms)|dic%([ _]extensions|extensions))))\}" contained display

syntax match   clojureRegexpPredefinedCharClass "\v%(\\[dDsSwW]|\.)" contained display
syntax cluster clojureRegexpCharPropertyClasses contains=clojureRegexpPosixCharClass,clojureRegexpJavaCharClass,clojureRegexpUnicodeCharClass
syntax cluster clojureRegexpCharClasses         contains=clojureRegexpPredefinedCharClass,clojureRegexpCharClass,@clojureRegexpCharPropertyClasses
syntax region  clojureRegexpCharClass           start="\[" skip=/\\\\\|\\]/ end="]" contained contains=clojureRegexpPredefinedCharClass,@clojureRegexpCharPropertyClasses
syntax match   clojureRegexpBoundary            "\\[bBAGZz]" contained display
syntax match   clojureRegexpBoundary            "[$^]" contained display
syntax match   clojureRegexpQuantifier          "[?*+][?+]\=" contained display
syntax match   clojureRegexpQuantifier          "\v\{\d+%(,|,\d+)?}\??" contained display
syntax match   clojureRegexpOr                  "|" contained display
syntax match   clojureRegexpBackRef             "\v\\%([1-9]\d*|k\<[a-zA-Z]+\>)" contained display

" Mode modifiers, mode-modified spans, lookaround, regular and atomic
" grouping, and named-capturing.
syntax match clojureRegexpMod "\v\(@<=\?:" contained display
syntax match clojureRegexpMod "\v\(@<=\?[xdsmiuU]*-?[xdsmiuU]+:?" contained display
syntax match clojureRegexpMod "\v\(@<=\?%(\<?[=!]|\>)" contained display
syntax match clojureRegexpMod "\v\(@<=\?\<[a-zA-Z]+\>" contained display

syntax region clojureRegexpGroup start="(" skip=/\\\\\|\\)/ end=")" matchgroup=clojureRegexpGroup contained contains=clojureRegexpMod,clojureRegexpQuantifier,clojureRegexpBoundary,clojureRegexpEscape,@clojureRegexpCharClasses
syntax region clojureRegexp start=/\#"/ skip=/\\\\\|\\"/ end=/"/ contains=@clojureRegexpCharClasses,clojureRegexpEscape,clojureRegexpQuote,clojureRegexpBoundary,clojureRegexpQuantifier,clojureRegexpOr,clojureRegexpBackRef,clojureRegexpGroup keepend

syntax keyword clojureCommentTodo contained FIXME XXX TODO FIXME: XXX: TODO:

syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell
syntax match clojureComment "#!.*$"

" -*- TOP CLUSTER -*-
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVarArg,clojureVariable,clojureVector

syntax region clojureSexp   matchgroup=clojureParen start="("  end=")" contains=@clojureTop fold
syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold
syntax region clojureMap    matchgroup=clojureParen start="{"  end="}" contains=@clojureTop fold

" Highlight superfluous closing parens, brackets and braces.
syntax match clojureError "]\|}\|)"

syntax sync fromstart

highlight default link clojureConstant                  Constant
highlight default link clojureBoolean                   Boolean
highlight default link clojureCharacter                 Character
highlight default link clojureKeyword                   Keyword
highlight default link clojureNumber                    Number
highlight default link clojureString                    String
highlight default link clojureStringDelimiter           String
highlight default link clojureStringEscape              Character

highlight default link clojureRegexp                    Constant
highlight default link clojureRegexpEscape              Character
highlight default link clojureRegexpCharClass           SpecialChar
highlight default link clojureRegexpPosixCharClass      clojureRegexpCharClass
highlight default link clojureRegexpJavaCharClass       clojureRegexpCharClass
highlight default link clojureRegexpUnicodeCharClass    clojureRegexpCharClass
highlight default link clojureRegexpPredefinedCharClass clojureRegexpCharClass
highlight default link clojureRegexpBoundary            SpecialChar
highlight default link clojureRegexpQuantifier          SpecialChar
highlight default link clojureRegexpMod                 SpecialChar
highlight default link clojureRegexpOr                  SpecialChar
highlight default link clojureRegexpBackRef             SpecialChar
highlight default link clojureRegexpGroup               clojureRegexp
highlight default link clojureRegexpQuoted              clojureString
highlight default link clojureRegexpQuote               clojureRegexpBoundary

highlight default link clojureVariable                  Identifier
highlight default link clojureCond                      Conditional
highlight default link clojureDefine                    Define
highlight default link clojureException                 Exception
highlight default link clojureFunc                      Function
highlight default link clojureMacro                     Macro
highlight default link clojureRepeat                    Repeat

highlight default link clojureSpecial                   Special
highlight default link clojureVarArg                    Special
highlight default link clojureQuote                     SpecialChar
highlight default link clojureUnquote                   SpecialChar
highlight default link clojureMeta                      SpecialChar
highlight default link clojureDeref                     SpecialChar
highlight default link clojureAnonArg                   SpecialChar
highlight default link clojureDispatch                  SpecialChar

highlight default link clojureComment                   Comment
highlight default link clojureCommentTodo               Todo

highlight default link clojureError                     Error

highlight default link clojureParen                     Delimiter

let b:current_syntax = "clojure"

let &cpo = s:cpo_sav
unlet! s:cpo_sav

" vim:sts=8:sw=8:ts=8:noet
PK�j�Z6,�S'S'vim80/syntax/dnsmasq.vimnu�[���" Vim syntax file
" Maintainer:	Thilo Six
" Contact:	vim-foo@xk2c-foo.de
"		:3s+-foo++g
" Description:	highlight dnsmasq configuration files
" File:		runtime/syntax/dnsmasq.vim
" Version:	2.76
" Last Change:	2015 Sep 27
" Modeline:	vim: ts=8:sw=2:sts=2:
"
" License:	VIM License
"		Vim is Charityware, see ":help Uganda"
"
" Options:	You might want to add this to your vimrc:
"
"		if &background == "dark"
"		    let dnsmasq_backrgound_light = 0
"		else
"		    let dnsmasq_backrgound_light = 1
"		endif
"

" quit when a syntax file was already loaded
if exists("b:current_syntax") || &compatible
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

if !exists("b:dnsmasq_backrgound_light")
    if exists("dnsmasq_backrgound_light")
	let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
    else
	let b:dnsmasq_backrgound_light = 0
    endif
endif


" case on
syn case match

syn match   DnsmasqValues   "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial
syn match   DnsmasqSpecial  display '=\|@\|,\|!\|:'	  nextgroup=DnsmasqValues
syn match   DnsmasqSpecial  "#"

syn match   DnsmasqIPv4	    "\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>"	nextgroup=DnsmasqSubnet2,DnsmasqRange
syn match   DnsmasqSubnet   "\<255.\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{2\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>"
syn match   DnsmasqSubnet2  contained "\/\([0-4]\?[0-9]\)\>"
syn match   DnsmasqRange    contained "-"
syn match   DnsmasqMac	    "\<\(\x\x\?:\)\{5}\x\x\?"

syn match   DnsmasqTime	    "\<\(\d\{1,3}\)[hm]\>"

" String
syn match   DnsmasqString   "\".*\""  contains=@Spell
syn match   DnsmasqString   "'.*'"    contains=@Spell

" Comments
syn keyword DnsmasqTodo	    FIXME TODO XXX NOTE contained
syn match   DnsmasqComment  "\(^\|\s\+\)#.*$"   contains=@Spell,DnsmasqTodo

" highlight trailing spaces
syn match   DnsmasqTrailSpace	   "[ \t]\+$"
syn match   DnsmasqTrailSpace	   "[ \t]\+$" containedin=ALL

syn match DnsmasqKeywordSpecial    "\<set\>:"me=e-1
syn match DnsmasqKeywordSpecial    "\<tag\>:"me=e-1
syn match DnsmasqKeywordSpecial    ",\<static\>"hs=s+1	  contains=DnsmasqSpecial
syn match DnsmasqKeywordSpecial    ",\<infinite\>"hs=s+1  contains=DnsmasqSpecial
syn match DnsmasqKeywordSpecial    "\<encap\>:"me=e-1
syn match DnsmasqKeywordSpecial    "\<interface\>:"me=e-1
syn match DnsmasqKeywordSpecial    "\<vi-encap\>:"me=e-1
syn match DnsmasqKeywordSpecial    "\<net\>:"me=e-1
syn match DnsmasqKeywordSpecial    "\<vendor\>:"me=e-1
syn match DnsmasqKeywordSpecial    "\<opt\>:"me=e-1
syn match DnsmasqKeywordSpecial    "\<option\>:"me=e-1
syn match DnsmasqKeywordSpecial    ",\<ignore\>"hs=s+1	  contains=DnsmasqSpecial
syn match DnsmasqKeywordSpecial    "\<id\>:"me=e-1

syn match DnsmasqKeyword    "^\s*add-mac\>"
syn match DnsmasqKeyword    "^\s*add-subnet\>"
syn match DnsmasqKeyword    "^\s*addn-hosts\>"
syn match DnsmasqKeyword    "^\s*address\>"
syn match DnsmasqKeyword    "^\s*alias\>"
syn match DnsmasqKeyword    "^\s*all-servers\>"
syn match DnsmasqKeyword    "^\s*auth-zone\>"
syn match DnsmasqKeyword    "^\s*bind-dynamic\>"
syn match DnsmasqKeyword    "^\s*bind-interfaces\>"
syn match DnsmasqKeyword    "^\s*bogus-nxdomain\>"
syn match DnsmasqKeyword    "^\s*bogus-priv\>"
syn match DnsmasqKeyword    "^\s*bootp-dynamic\>"
syn match DnsmasqKeyword    "^\s*bridge-interface\>"
syn match DnsmasqKeyword    "^\s*cache-size\>"
syn match DnsmasqKeyword    "^\s*clear-on-reload\>"
syn match DnsmasqKeyword    "^\s*cname\>"
syn match DnsmasqKeyword    "^\s*conf-dir\>"
syn match DnsmasqKeyword    "^\s*conf-file\>"
syn match DnsmasqKeyword    "^\s*conntrack\>"
syn match DnsmasqKeyword    "^\s*dhcp-alternate-port\>"
syn match DnsmasqKeyword    "^\s*dhcp-authoritative\>"
syn match DnsmasqKeyword    "^\s*dhcp-boot\>"
syn match DnsmasqKeyword    "^\s*dhcp-broadcast\>"
syn match DnsmasqKeyword    "^\s*dhcp-circuitid\>"
syn match DnsmasqKeyword    "^\s*dhcp-client-update\>"
syn match DnsmasqKeyword    "^\s*dhcp-duid\>"
syn match DnsmasqKeyword    "^\s*dhcp-fqdn\>"
syn match DnsmasqKeyword    "^\s*dhcp-generate-names\>"
syn match DnsmasqKeyword    "^\s*dhcp-host\>"
syn match DnsmasqKeyword    "^\s*dhcp-hostsfile\>"
syn match DnsmasqKeyword    "^\s*dhcp-ignore\>"
syn match DnsmasqKeyword    "^\s*dhcp-ignore-names\>"
syn match DnsmasqKeyword    "^\s*dhcp-lease-max\>"
syn match DnsmasqKeyword    "^\s*dhcp-leasefile\>"
syn match DnsmasqKeyword    "^\s*dhcp-luascript\>"
syn match DnsmasqKeyword    "^\s*dhcp-mac\>"
syn match DnsmasqKeyword    "^\s*dhcp-match\>"
syn match DnsmasqKeyword    "^\s*dhcp-no-override\>"
syn match DnsmasqKeyword    "^\s*dhcp-option\>"
syn match DnsmasqKeyword    "^\s*dhcp-option-force\>"
syn match DnsmasqKeyword    "^\s*dhcp-optsfile\>"
syn match DnsmasqKeyword    "^\s*dhcp-proxy\>"
syn match DnsmasqKeyword    "^\s*dhcp-range\>"
syn match DnsmasqKeyword    "^\s*dhcp-relay\>"
syn match DnsmasqKeyword    "^\s*dhcp-remoteid\>"
syn match DnsmasqKeyword    "^\s*dhcp-script\>"
syn match DnsmasqKeyword    "^\s*dhcp-scriptuser\>"
syn match DnsmasqKeyword    "^\s*dhcp-sequential-ip\>"
syn match DnsmasqKeyword    "^\s*dhcp-subscrid\>"
syn match DnsmasqKeyword    "^\s*dhcp-userclass\>"
syn match DnsmasqKeyword    "^\s*dhcp-vendorclass\>"
syn match DnsmasqKeyword    "^\s*dhcp-hostsdir\>"
syn match DnsmasqKeyword    "^\s*dns-rr\>"
syn match DnsmasqKeyword    "^\s*dnssec\>"
syn match DnsmasqKeyword    "^\s*dnssec-check-unsigned\>"
syn match DnsmasqKeyword    "^\s*dnssec-no-timecheck\>"
syn match DnsmasqKeyword    "^\s*dnssec-timestamp\>"
syn match DnsmasqKeyword    "^\s*dns-forward-max\>"
syn match DnsmasqKeyword    "^\s*domain\>"
syn match DnsmasqKeyword    "^\s*domain-needed\>"
syn match DnsmasqKeyword    "^\s*edns-packet-max\>"
syn match DnsmasqKeyword    "^\s*enable-dbus\>"
syn match DnsmasqKeyword    "^\s*enable-ra\>"
syn match DnsmasqKeyword    "^\s*enable-tftp\>"
syn match DnsmasqKeyword    "^\s*except-interface\>"
syn match DnsmasqKeyword    "^\s*expand-hosts\>"
syn match DnsmasqKeyword    "^\s*filterwin2k\>"
syn match DnsmasqKeyword    "^\s*group\>"
syn match DnsmasqKeyword    "^\s*host-record\>"
syn match DnsmasqKeyword    "^\s*interface\>"
syn match DnsmasqKeyword    "^\s*interface-name\>"
syn match DnsmasqKeyword    "^\s*ipset\>"
syn match DnsmasqKeyword    "^\s*ignore-address\>"
syn match DnsmasqKeyword    "^\s*keep-in-foreground\>"
syn match DnsmasqKeyword    "^\s*leasefile-ro\>"
syn match DnsmasqKeyword    "^\s*listen-address\>"
syn match DnsmasqKeyword    "^\s*local\>"
syn match DnsmasqKeyword    "^\s*localmx\>"
syn match DnsmasqKeyword    "^\s*local-ttl\>"
syn match DnsmasqKeyword    "^\s*local-service\>"
syn match DnsmasqKeyword    "^\s*localise-queries\>"
syn match DnsmasqKeyword    "^\s*log-async\>"
syn match DnsmasqKeyword    "^\s*log-dhcp\>"
syn match DnsmasqKeyword    "^\s*log-facility\>"
syn match DnsmasqKeyword    "^\s*log-queries\>"
syn match DnsmasqKeyword    "^\s*max-ttl\>"
syn match DnsmasqKeyword    "^\s*max-cache-ttl\>"
syn match DnsmasqKeyword    "^\s*min-cache-ttl\>"
syn match DnsmasqKeyword    "^\s*min-port\>"
syn match DnsmasqKeyword    "^\s*mx-host\>"
syn match DnsmasqKeyword    "^\s*mx-target\>"
syn match DnsmasqKeyword    "^\s*naptr-record\>"
syn match DnsmasqKeyword    "^\s*neg-ttl\>"
syn match DnsmasqKeyword    "^\s*no-daemon\>"
syn match DnsmasqKeyword    "^\s*no-dhcp-interface\>"
syn match DnsmasqKeyword    "^\s*no-hosts\>"
syn match DnsmasqKeyword    "^\s*no-negcache\>"
syn match DnsmasqKeyword    "^\s*no-ping\>"
syn match DnsmasqKeyword    "^\s*no-poll\>"
syn match DnsmasqKeyword    "^\s*no-resolv\>"
syn match DnsmasqKeyword    "^\s*pid-file\>"
syn match DnsmasqKeyword    "^\s*port\>"
syn match DnsmasqKeyword    "^\s*proxy-dnssec\>"
syn match DnsmasqKeyword    "^\s*ptr-record\>"
syn match DnsmasqKeyword    "^\s*pxe-prompt\>"
syn match DnsmasqKeyword    "^\s*pxe-service\>"
syn match DnsmasqKeyword    "^\s*query-port\>"
syn match DnsmasqKeyword    "^\s*quiet-ra\>"
syn match DnsmasqKeyword    "^\s*quiet-dhcp\>"
syn match DnsmasqKeyword    "^\s*quiet-dhcp6\>"
syn match DnsmasqKeyword    "^\s*ra-param\>"
syn match DnsmasqKeyword    "^\s*read-ethers\>"
syn match DnsmasqKeyword    "^\s*rebind-domain-ok\>"
syn match DnsmasqKeyword    "^\s*rebind-localhost-ok\>"
syn match DnsmasqKeyword    "^\s*resolv-file\>"
syn match DnsmasqKeyword    "^\s*rev-server\>"
syn match DnsmasqKeyword    "^\s*selfmx\>"
syn match DnsmasqKeyword    "^\s*server\>"
syn match DnsmasqKeyword    "^\s*servers-file\>"
syn match DnsmasqKeyword    "^\s*srv-host\>"
syn match DnsmasqKeyword    "^\s*stop-dns-rebind\>"
syn match DnsmasqKeyword    "^\s*strict-order\>"
syn match DnsmasqKeyword    "^\s*synth-domain\>"
syn match DnsmasqKeyword    "^\s*tag-if\>"
syn match DnsmasqKeyword    "^\s*test\>"
syn match DnsmasqKeyword    "^\s*tftp-max\>"
syn match DnsmasqKeyword    "^\s*tftp-lowercase\>"
syn match DnsmasqKeyword    "^\s*tftp-no-blocksize\>"
syn match DnsmasqKeyword    "^\s*tftp-no-fail\>"
syn match DnsmasqKeyword    "^\s*tftp-port-range\>"
syn match DnsmasqKeyword    "^\s*tftp-root\>"
syn match DnsmasqKeyword    "^\s*tftp-secure\>"
syn match DnsmasqKeyword    "^\s*tftp-unique-root\>"
syn match DnsmasqKeyword    "^\s*txt-record\>"
syn match DnsmasqKeyword    "^\s*user\>"
syn match DnsmasqKeyword    "^\s*version\>"


if b:dnsmasq_backrgound_light == 1
    hi def DnsmasqKeyword	ctermfg=DarkGreen guifg=DarkGreen
else
    hi def link DnsmasqKeyword  Keyword
endif
hi def link DnsmasqKeywordSpecial Type
hi def link DnsmasqTodo		Todo
hi def link DnsmasqSpecial	Constant
hi def link DnsmasqIPv4		Identifier
hi def link DnsmasqSubnet2	DnsmasqSubnet
hi def link DnsmasqSubnet	DnsmasqMac
hi def link DnsmasqRange	DnsmasqMac
hi def link DnsmasqMac		Preproc
hi def link DnsmasqTime		Preproc
hi def link DnsmasqComment	Comment
hi def link DnsmasqTrailSpace	DiffDelete
hi def link DnsmasqString	Constant
hi def link DnsmasqValues	Normal

let b:current_syntax = "dnsmasq"

let &cpo = s:cpo_save
unlet s:cpo_save

PK�j�ZQq�|NNvim80/syntax/sqlforms.vimnu�[���" Vim syntax file
"    Language: SQL*Forms (Oracle 7), based on sql.vim (vim5.0)
"  Maintainer: Austin Ziegler (austin@halostatue.ca)
" Last Change: 2003 May 11
" Prev Change: 19980710
"	  URL: http://www.halostatue.ca/vim/syntax/proc.vim
"
" TODO Find a new maintainer who knows SQL*Forms.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

syntax case ignore

setlocal iskeyword=a-z,A-Z,48-57,_,.,-,>


    " The SQL reserved words, defined as keywords.
syntax match sqlTriggers /on-.*$/
syntax match sqlTriggers /key-.*$/
syntax match sqlTriggers /post-.*$/
syntax match sqlTriggers /pre-.*$/
syntax match sqlTriggers /user-.*$/

syntax keyword sqlSpecial null false true

syntax keyword sqlProcedure abort_query anchor_view bell block_menu break call
syntax keyword sqlProcedure call_input call_query clear_block clear_eol
syntax keyword sqlProcedure clear_field clear_form clear_record commit_form
syntax keyword sqlProcedure copy count_query create_record default_value
syntax keyword sqlProcedure delete_record display_error display_field down
syntax keyword sqlProcedure duplicate_field duplicate_record edit_field
syntax keyword sqlProcedure enter enter_query erase execute_query
syntax keyword sqlProcedure execute_trigger exit_form first_Record go_block
syntax keyword sqlProcedure go_field go_record help hide_menu hide_page host
syntax keyword sqlProcedure last_record list_values lock_record message
syntax keyword sqlProcedure move_view new_form next_block next_field next_key
syntax keyword sqlProcedure next_record next_set pause post previous_block
syntax keyword sqlProcedure previous_field previous_record print redisplay
syntax keyword sqlProcedure replace_menu resize_view scroll_down scroll_up
syntax keyword sqlProcedure set_field show_keys show_menu show_page
syntax keyword sqlProcedure synchronize up user_exit

syntax keyword sqlFunction block_characteristic error_code error_text
syntax keyword sqlFunction error_type field_characteristic form_failure
syntax keyword sqlFunction form_fatal form_success name_in

syntax keyword sqlParameters hide no_hide replace no_replace ask_commit
syntax keyword sqlParameters do_commit no_commit no_validate all_records
syntax keyword sqlParameters for_update no_restrict restrict no_screen
syntax keyword sqlParameters bar full_screen pull_down auto_help auto_skip
syntax keyword sqlParameters fixed_length enterable required echo queryable
syntax keyword sqlParameters updateable update_null upper_case attr_on
syntax keyword sqlParameters attr_off base_table first_field last_field
syntax keyword sqlParameters datatype displayed display_length field_length
syntax keyword sqlParameters list page primary_key query_length x_pos y_pos

syntax match sqlSystem /system\.block_status/
syntax match sqlSystem /system\.current_block/
syntax match sqlSystem /system\.current_field/
syntax match sqlSystem /system\.current_form/
syntax match sqlSystem /system\.current_value/
syntax match sqlSystem /system\.cursor_block/
syntax match sqlSystem /system\.cursor_field/
syntax match sqlSystem /system\.cursor_record/
syntax match sqlSystem /system\.cursor_value/
syntax match sqlSystem /system\.form_status/
syntax match sqlSystem /system\.last_query/
syntax match sqlSystem /system\.last_record/
syntax match sqlSystem /system\.message_level/
syntax match sqlSystem /system\.record_status/
syntax match sqlSystem /system\.trigger_block/
syntax match sqlSystem /system\.trigger_field/
syntax match sqlSystem /system\.trigger_record/
syntax match sqlSystem /\$\$date\$\$/
syntax match sqlSystem /\$\$time\$\$/

syntax keyword sqlKeyword accept access add as asc by check cluster column
syntax keyword sqlKeyword compress connect current decimal default
syntax keyword sqlKeyword desc exclusive file for from group
syntax keyword sqlKeyword having identified immediate increment index
syntax keyword sqlKeyword initial into is level maxextents mode modify
syntax keyword sqlKeyword nocompress nowait of offline on online start
syntax keyword sqlKeyword successful synonym table to trigger uid
syntax keyword sqlKeyword unique user validate values view whenever
syntax keyword sqlKeyword where with option order pctfree privileges
syntax keyword sqlKeyword public resource row rowlabel rownum rows
syntax keyword sqlKeyword session share size smallint sql\*forms_version
syntax keyword sqlKeyword terse define form name title procedure begin
syntax keyword sqlKeyword default_menu_application trigger block field
syntax keyword sqlKeyword enddefine declare exception raise when cursor
syntax keyword sqlKeyword definition base_table pragma
syntax keyword sqlKeyword column_name global trigger_type text description
syntax match sqlKeyword "<<<"
syntax match sqlKeyword ">>>"

syntax keyword sqlOperator not and or out to_number to_date message erase
syntax keyword sqlOperator in any some all between exists substr nvl
syntax keyword sqlOperator exception_init
syntax keyword sqlOperator like escape trunc lpad rpad sum
syntax keyword sqlOperator union intersect minus to_char greatest
syntax keyword sqlOperator prior distinct decode least avg
syntax keyword sqlOperator sysdate true false field_characteristic
syntax keyword sqlOperator display_field call host

syntax keyword sqlStatement alter analyze audit comment commit create
syntax keyword sqlStatement delete drop explain grant insert lock noaudit
syntax keyword sqlStatement rename revoke rollback savepoint select set
syntax keyword sqlStatement truncate update if elsif loop then
syntax keyword sqlStatement open fetch close else end

syntax keyword sqlType char character date long raw mlslabel number rowid
syntax keyword sqlType varchar varchar2 float integer boolean global

syntax keyword sqlCodes sqlcode no_data_found too_many_rows others
syntax keyword sqlCodes form_trigger_failure notfound found
syntax keyword sqlCodes validate no_commit

    " Comments:
syntax region sqlComment    start="/\*"  end="\*/"
syntax match sqlComment  "--.*"

    " Strings and characters:
syntax region sqlString  start=+"+  skip=+\\\\\|\\"+  end=+"+
syntax region sqlString  start=+'+  skip=+\\\\\|\\"+  end=+'+

    " Numbers:
syntax match sqlNumber  "-\=\<[0-9]*\.\=[0-9_]\>"

syntax sync ccomment sqlComment


hi def link sqlComment Comment
hi def link sqlKeyword Statement
hi def link sqlNumber Number
hi def link sqlOperator Statement
hi def link sqlProcedure Statement
hi def link sqlFunction Statement
hi def link sqlSystem Identifier
hi def link sqlSpecial Special
hi def link sqlStatement Statement
hi def link sqlString String
hi def link sqlType Type
hi def link sqlCodes Identifier
hi def link sqlTriggers PreProc


let b:current_syntax = "sqlforms"

" vim: ts=8 sw=4
PK�j�Z�:*
*
vim80/syntax/atlas.vimnu�[���" Vim syntax file
" Language:	ATLAS
" Maintainer:	Inaki Saez <jisaez@sfe.indra.es>
" Last Change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn keyword atlasStatement	begin terminate
syn keyword atlasStatement	fill calculate compare
syn keyword atlasStatement	setup connect close open disconnect reset
syn keyword atlasStatement	initiate read fetch
syn keyword atlasStatement	apply measure verify remove
syn keyword atlasStatement	perform leave finish output delay
syn keyword atlasStatement	prepare execute
syn keyword atlasStatement	do
syn match atlasStatement	"\<go[	 ]\+to\>"
syn match atlasStatement	"\<wait[	 ]\+for\>"

syn keyword atlasInclude	include
syn keyword atlasDefine		define require declare identify

"syn keyword atlasReserved	true false go nogo hi lo via
syn keyword atlasReserved	true false

syn keyword atlasStorageClass	external global

syn keyword atlasConditional	if then else end
syn keyword atlasRepeat		while for thru

" Flags BEF and statement number
syn match atlasSpecial		"^[BE ][ 0-9]\{,6}\>"

" Number formats
syn match atlasHexNumber	"\<X'[0-9A-F]\+'"
syn match atlasOctalNumber	"\<O'[0-7]\+'"
syn match atlasBinNumber	"\<B'[01]\+'"
syn match atlasNumber		"\<\d\+\>"
"Floating point number part only
syn match atlasDecimalNumber	"\.\d\+\([eE][-+]\=\d\)\=\>"

syn region atlasFormatString	start=+((+	end=+\())\)\|\()[	 ]*\$\)+me=e-1
syn region atlasString		start=+\<C'+	end=+'+   oneline

syn region atlasComment		start=+^C+	end=+\$+
syn region atlasComment2	start=+\$.\++ms=s+1	end=+$+ oneline

syn match  atlasIdentifier	"'[A-Za-z0-9 ._-]\+'"

"Synchronization with Statement terminator $
syn sync match atlasTerminator	grouphere atlasComment "^C"
syn sync match atlasTerminator	groupthere NONE "\$"
syn sync maxlines=100


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link atlasConditional	Conditional
hi def link atlasRepeat		Repeat
hi def link atlasStatement	Statement
hi def link atlasNumber		Number
hi def link atlasHexNumber	Number
hi def link atlasOctalNumber	Number
hi def link atlasBinNumber	Number
hi def link atlasDecimalNumber	Float
hi def link atlasFormatString	String
hi def link atlasString		String
hi def link atlasComment		Comment
hi def link atlasComment2		Comment
hi def link atlasInclude		Include
hi def link atlasDefine		Macro
hi def link atlasReserved		PreCondit
hi def link atlasStorageClass	StorageClass
hi def link atlasIdentifier	NONE
hi def link atlasSpecial		Special


let b:current_syntax = "atlas"

" vim: ts=8
PK�j�Z�y��__vim80/syntax/nroff.vimnu�[���" VIM syntax file
" Language:	nroff/groff
" Maintainer:	Pedro Alejandro L�pez-Valencia <palopezv@gmail.com>
" URL:		http://vorbote.wordpress.com/
" Last Change:	2012 Feb 2
"
" {{{1 Acknowledgements
"
" ACKNOWLEDGEMENTS:
"
" My thanks to J�r�me Pl�t <Jerome.Plut@ens.fr>, who was the
" creator and maintainer of this syntax file for several years.
" May I be as good at it as he has been.
"
" {{{1 Todo
"
" TODO:
"
" * Write syntax highlighting files for the preprocessors,
"	and integrate with nroff.vim.
"
"
" {{{1 Start syntax highlighting.
"
" quit when a syntax file was already loaded
"
if exists("b:current_syntax")
	finish
endif

let s:cpo_save = &cpo
set cpo&vim

"
" {{{1 plugin settings...
"
" {{{2 enable spacing error highlighting
"
if exists("nroff_space_errors")
	syn match nroffError /\s\+$/
	syn match nroffSpaceError /[.,:;!?]\s\{2,}/
endif
"
"
" {{{1 Special file settings
"
" {{{2  ms exdented paragraphs are not in the default paragraphs list.
"
setlocal paragraphs+=XP
"
" {{{2 Activate navigation to preporcessor sections.
"
if exists("b:preprocs_as_sections")
	setlocal sections=EQTSPS[\ G1GS
endif

" {{{1 Escape sequences
" ------------------------------------------------------------

syn match nroffEscChar /\\[CN]/ nextgroup=nroffEscCharArg
syn match nroffEscape /\\[*fgmnYV]/ nextgroup=nroffEscRegPar,nroffEscRegArg
syn match nroffEscape /\\s[+-]\=/ nextgroup=nroffSize
syn match nroffEscape /\\[$AbDhlLRvxXZ]/ nextgroup=nroffEscPar,nroffEscArg

syn match nroffEscRegArg /./ contained
syn match nroffEscRegArg2 /../ contained
syn match nroffEscRegPar /(/ contained nextgroup=nroffEscRegArg2
syn match nroffEscArg /./ contained
syn match nroffEscArg2 /../ contained
syn match nroffEscPar /(/ contained nextgroup=nroffEscArg2
syn match nroffSize /\((\d\)\=\d/ contained

syn region nroffEscCharArg start=/'/ end=/'/ contained
syn region nroffEscArg start=/'/ end=/'/ contained contains=nroffEscape,@nroffSpecial

if exists("b:nroff_is_groff")
	syn region nroffEscRegArg matchgroup=nroffEscape start=/\[/ end=/\]/ contained oneline
	syn region nroffSize matchgroup=nroffEscape start=/\[/ end=/\]/ contained
endif

syn match nroffEscape /\\[adprtu{}]/
syn match nroffEscape /\\$/
syn match nroffEscape /\\\$[@*]/

" {{{1 Strings and special characters
" ------------------------------------------------------------

syn match nroffSpecialChar /\\[\\eE?!-]/
syn match nroffSpace "\\[&%~|^0)/,]"
syn match nroffSpecialChar /\\(../

if exists("b:nroff_is_groff")
	syn match nroffSpecialChar /\\\[[^]]*]/
	syn region nroffPreserve  matchgroup=nroffSpecialChar start=/\\?/ end=/\\?/ oneline
endif

syn region nroffPreserve matchgroup=nroffSpecialChar start=/\\!/ end=/$/ oneline

syn cluster nroffSpecial contains=nroffSpecialChar,nroffSpace


syn region nroffString start=/"/ end=/"/ skip=/\\$/ contains=nroffEscape,@nroffSpecial contained
syn region nroffString start=/'/ end=/'/ skip=/\\$/ contains=nroffEscape,@nroffSpecial contained


" {{{1 Numbers and units
" ------------------------------------------------------------
syn match nroffNumBlock /[0-9.]\a\=/ contained contains=nroffNumber
syn match nroffNumber /\d\+\(\.\d*\)\=/ contained nextgroup=nroffUnit,nroffBadChar
syn match nroffNumber /\.\d\+)/ contained nextgroup=nroffUnit,nroffBadChar
syn match nroffBadChar /./ contained
syn match nroffUnit /[icpPszmnvMu]/ contained


" {{{1 Requests
" ------------------------------------------------------------

" Requests begin with . or ' at the beginning of a line, or
" after .if or .ie.

syn match nroffReqLeader /^[.']/	nextgroup=nroffReqName skipwhite
syn match nroffReqLeader /[.']/	contained nextgroup=nroffReqName skipwhite

if exists("b:nroff_is_groff")
"
" GNU troff allows long request names
"
	syn match nroffReqName /[^\t \\\[?]\+/ contained nextgroup=nroffReqArg
else
	syn match nroffReqName /[^\t \\\[?]\{1,2}/ contained nextgroup=nroffReqArg
endif

syn region nroffReqArg start=/\S/ skip=/\\$/ end=/$/ contained contains=nroffEscape,@nroffSpecial,nroffString,nroffError,nroffSpaceError,nroffNumBlock,nroffComment

" {{{2 Conditional: .if .ie .el
syn match nroffReqName /\(if\|ie\)/ contained nextgroup=nroffCond skipwhite
syn match nroffReqName /el/ contained nextgroup=nroffReqLeader skipwhite
syn match nroffCond /\S\+/ contained nextgroup=nroffReqLeader skipwhite

" {{{2 String definition: .ds .as
syn match nroffReqname /[da]s/ contained nextgroup=nroffDefIdent skipwhite
syn match nroffDefIdent /\S\+/ contained nextgroup=nroffDefinition skipwhite
syn region nroffDefinition matchgroup=nroffSpecialChar start=/"/ matchgroup=NONE end=/\\"/me=e-2 skip=/\\$/ start=/\S/ end=/$/ contained contains=nroffDefSpecial
syn match nroffDefSpecial /\\$/ contained
syn match nroffDefSpecial /\\\((.\)\=./ contained

if exists("b:nroff_is_groff")
	syn match nroffDefSpecial /\\\[[^]]*]/ contained
endif

" {{{2 Macro definition: .de .am, also diversion: .di
syn match nroffReqName /\(d[ei]\|am\)/ contained nextgroup=nroffIdent skipwhite
syn match nroffIdent /[^[?( \t]\+/ contained
if exists("b:nroff_is_groff")
	syn match nroffReqName /als/ contained nextgroup=nroffIdent skipwhite
endif

" {{{2 Register definition: .rn .rr
syn match nroffReqName /[rn]r/ contained nextgroup=nroffIdent skipwhite
if exists("b:nroff_is_groff")
	syn match nroffReqName /\(rnn\|aln\)/ contained nextgroup=nroffIdent skipwhite
endif


" {{{1 eqn/tbl/pic
" ------------------------------------------------------------
" <jp>
" XXX: write proper syntax highlight for eqn / tbl / pic ?
" <jp />

syn region nroffEquation start=/^\.\s*EQ\>/ end=/^\.\s*EN\>/
syn region nroffTable start=/^\.\s*TS\>/ end=/^\.\s*TE\>/
syn region nroffPicture start=/^\.\s*PS\>/ end=/^\.\s*PE\>/
syn region nroffRefer start=/^\.\s*\[\>/ end=/^\.\s*\]\>/
syn region nroffGrap start=/^\.\s*G1\>/ end=/^\.\s*G2\>/
syn region nroffGremlin start=/^\.\s*GS\>/ end=/^\.\s*GE|GF\>/

" {{{1 Comments
" ------------------------------------------------------------

syn region nroffIgnore start=/^[.']\s*ig/ end=/^['.]\s*\./
syn match nroffComment /\(^[.']\s*\)\=\\".*/ contains=nroffTodo
syn match nroffComment /^'''.*/  contains=nroffTodo

if exists("b:nroff_is_groff")
	syn match nroffComment "\\#.*$" contains=nroffTodo
endif

syn keyword nroffTodo TODO XXX FIXME contained

" {{{1 Hilighting
" ------------------------------------------------------------
"

"
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
"

hi def link nroffEscChar nroffSpecialChar
hi def link nroffEscCharAr nroffSpecialChar
hi def link nroffSpecialChar SpecialChar
hi def link nroffSpace Delimiter

hi def link nroffEscRegArg2 nroffEscRegArg
hi def link nroffEscRegArg nroffIdent

hi def link nroffEscArg2 nroffEscArg
hi def link nroffEscPar nroffEscape

hi def link nroffEscRegPar nroffEscape
hi def link nroffEscArg nroffEscape
hi def link nroffSize nroffEscape
hi def link nroffEscape Preproc

hi def link nroffIgnore Comment
hi def link nroffComment Comment
hi def link nroffTodo Todo

hi def link nroffReqLeader nroffRequest
hi def link nroffReqName nroffRequest
hi def link nroffRequest Statement
hi def link nroffCond PreCondit
hi def link nroffDefIdent nroffIdent
hi def link nroffIdent Identifier

hi def link nroffEquation PreProc
hi def link nroffTable PreProc
hi def link nroffPicture PreProc
hi def link nroffRefer PreProc
hi def link nroffGrap PreProc
hi def link nroffGremlin PreProc

hi def link nroffNumber Number
hi def link nroffBadChar nroffError
hi def link nroffSpaceError nroffError
hi def link nroffError Error

hi def link nroffPreserve String
hi def link nroffString String
hi def link nroffDefinition String
hi def link nroffDefSpecial Special


let b:current_syntax = "nroff"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim600: set fdm=marker fdl=2:
PK�j�Zakn���vim80/syntax/esterel.vimnu�[���" Vim syntax file
" Language:			ESTEREL
" Maintainer:		Maurizio Tranchero <maurizio.tranchero@polito.it> - <maurizio.tranchero@gmail.com>
" Credits:			Luca Necchi	<luca.necchi@polito.it>, Nikos Andrikos <nick.andrik@gmail.com>
" First Release:	Tue May 17 23:49:39 CEST 2005
" Last Change:		Tue May  6 13:29:56 CEST 2008
" Version:			0.8

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" case is significant
syn case ignore
" Esterel Regions
syn region esterelModule					start=/module/		end=/end module/	contains=ALLBUT,esterelModule
syn region esterelLoop						start=/loop/		end=/end loop/		contains=ALLBUT,esterelModule
syn region esterelAbort						start=/abort/		end=/when/			contains=ALLBUT,esterelModule
syn region esterelAbort						start=/weak abort/	end=/when/			contains=ALLBUT,esterelModule
syn region esterelEvery						start=/every/		end=/end every/		contains=ALLBUT,esterelModule
syn region esterelIf						start=/if/			end=/end if/		contains=ALLBUT,esterelModule
syn region esterelConcurrent	transparent start=/\[/			end=/\]/			contains=ALLBUT,esterelModule
syn region esterelIfThen					start=/if/			end=/then/			oneline
" Esterel Keywords
syn keyword esterelIO			input output inputoutput constant
syn keyword esterelBoolean		and or not xor xnor nor nand
syn keyword esterelExpressions	mod pre
syn keyword esterelStatement	nothing halt
syn keyword esterelStatement	module signal sensor end
syn keyword esterelStatement	every do loop abort weak
syn keyword esterelStatement	emit present await
syn keyword esterelStatement	pause when immediate
syn keyword esterelStatement	if then else case
syn keyword esterelStatement	var in  run  suspend
syn keyword esterelStatement	repeat times combine with
syn keyword esterelStatement	assert sustain
" check what it is the following
syn keyword esterelStatement	relation						
syn keyword esterelFunctions	function procedure task
syn keyword esterelSysCall		call trap exit exec
" Esterel Types
syn keyword esterelType 		integer float bolean
" Esterel Comment
syn match esterelComment		"%.*$"
" Operators and special characters
syn match esterelSpecial		":"
syn match esterelSpecial		"<="
syn match esterelSpecial		">="
syn match esterelSpecial		"+"
syn match esterelSpecial		"-"
syn match esterelSpecial		"="
syn match esterelSpecial		";"
syn match esterelSpecial		"/"
syn match esterelSpecial		"?"
syn match esterelOperator		"\["
syn match esterelOperator		"\]"
syn match esterelOperator		":="
syn match esterelOperator		"||"
syn match esterelStatement		"\<\(if\|else\)\>"
syn match esterelNone			"\<else\s\+if\>$"
syn match esterelNone			"\<else\s\+if\>\s"

" Class Linking

hi def link esterelStatement		Statement
hi def link esterelType			Type
hi def link esterelComment		Comment
hi def link esterelBoolean		Number
hi def link esterelExpressions	Number
hi def link esterelIO			String
hi def link esterelOperator		Type
hi def link esterelSysCall		Type
hi def link esterelFunctions		Type
hi def link esterelSpecial		Special


let b:current_syntax = "esterel"
PK�j�ZYB��vim80/syntax/autodoc.vimnu�[���" Vim syntax file
" Language:	Autodoc
" Maintainer:	Stephen R. van den Berg <srb@cuci.nl>
" Last Change:	2018 Jan 23
" Version:	2.9
" Remark:       Included by pike.vim, cmod.vim and optionally c.vim
" Remark:       In order to make c.vim use it, set: c_autodoc

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case match

" A bunch of useful autodoc keywords
syn keyword autodocStatement contained appears belongs global
syn keyword autodocStatement contained decl directive inherit
syn keyword autodocStatement contained deprecated obsolete bugs
syn keyword autodocStatement contained copyright example fixme note param returns
syn keyword autodocStatement contained seealso thanks throws constant
syn keyword autodocStatement contained member index elem
syn keyword autodocStatement contained value type item

syn keyword autodocRegion contained enum mapping code multiset array
syn keyword autodocRegion contained int string section mixed ol ul dl
syn keyword autodocRegion contained class module namespace
syn keyword autodocRegion contained endenum endmapping endcode endmultiset
syn keyword autodocRegion contained endarray endint endstring endsection
syn keyword autodocRegion contained endmixed endol endul enddl
syn keyword autodocRegion contained endclass endmodule endnamespace

syn keyword autodocIgnore contained ignore endignore

syn keyword autodocStatAcc contained b i u tt url pre sub sup
syn keyword autodocStatAcc contained ref rfc xml dl expr image

syn keyword	autodocTodo		contained TODO FIXME XXX

syn match autodocLineStart	display "\(//\|/\?\*\)\@2<=!"
syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell

syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead
syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion

" Due to limitations of the matching algorithm, we cannot highlight
" nested autodocNStmtAcc structures correctly
syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend

syn match autodocUrl contained display ".\+"
syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend
syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent

syn match autodocSpecial "@@" display
syn match autodocLead "@" display contained

"when wanted, highlight trailing white space
if exists("c_space_errors")
  if !exists("c_no_trail_space_error")
    syn match	autodocSpaceError	display excludenl "\s\+$"
  endif
  if !exists("c_no_tab_space_error")
    syn match	autodocSpaceError	display " \+\t"me=e-1
  endif
endif

if exists("c_minlines")
  let b:c_minlines = c_minlines
else
  if !exists("c_no_if0")
    let b:c_minlines = 50	" #if 0 constructs can be long
  else
    let b:c_minlines = 15	" mostly for () constructs
  endif
endif
exec "syn sync ccomment autodocComment minlines=" . b:c_minlines

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link autodocStatement	Statement
hi def link autodocStatAcc	Statement
hi def link autodocRegion	Structure
hi def link autodocAtStmt	Error
hi def link autodocNStmtAcc	Identifier
hi def link autodocLink		Type
hi def link autodocTodo		Todo
hi def link autodocSpaceError	Error
hi def link autodocLineStart	SpecialComment
hi def link autodocSpecial	SpecialChar
hi def link autodocUrl		Underlined
hi def link autodocLead		Statement
hi def link autodocIgnore	Delimiter

let b:current_syntax = "autodoc"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�ZX���V�Vvim80/syntax/aptconf.vimnu�[���" Vim syntax file
" Language:	APT config file
" Maintainer:	Yann Amar <quidame@poivron.org>
" Last Change:	2015 Dec 22

" quit when a syntax file was already loaded
if !exists("main_syntax")
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'aptconf'
endif

let s:cpo_save = &cpo
set cpo&vim

" Errors:
" Catch all that is not overridden by next rules/items:
syn match	aptconfError		display '[^[:blank:]]'
syn match	aptconfError		display '^[^[:blank:]][^:{]*'

" Options:
" Define a general regular expression for the options that are not defined
" later as keywords. Following apt.conf(5), we know that options are case
" insensitive, and can contain alphanumeric characters and '/-:._+'; we
" assume that there can not be consecutive colons (::) which is used as
" syntax operator; we also assume that an option name can not start or end
" by a colon.
syn case	ignore
syn match	aptconfRegexpOpt	'[-[:alnum:]/.+_]\+\(:[-[:alnum:]/.+_]\+\)*' contained display

" Keywords:
setlocal iskeyword+=/,-,.,_,+
"setlocal iskeyword+=: is problematic, because of the '::' separator

" Incomplete keywords will be treated differently than completely bad strings:
syn keyword	aptconfGroupIncomplete
	\ a[cquire] a[dequate] a[ptitude] a[ptlistbugs] d[ebtags] d[ebug]
	\ d[ir] d[pkg] d[select] o[rderlist] p[ackagemanager] p[kgcachegen]
	\ q[uiet] r[pm] s[ynaptic] u[nattended-upgrade] w[hatmaps]

" Only the following keywords can be used at toplevel (to begin an option):
syn keyword	aptconfGroup
	\ acquire adequate apt aptitude aptlistbugs debtags debug
	\ dir dpkg dselect orderlist packagemanager pkgcachegen
	\ quiet rpm synaptic unattended-upgrade whatmaps

" Possible options for each group:
" Acquire: {{{
syn keyword	aptconfAcquire contained
	\ cdrom Check-Valid-Until CompressionTypes ForceHash ForceIPv4
	\ ForceIPv6 ftp gpgv GzipIndexes http https Languages Max-ValidTime
	\ Min-ValidTime PDiffs Queue-Mode Retries Source-Symlinks

syn keyword	aptconfAcquireCDROM contained
	\ AutoDetect CdromOnly Mount UMount

syn keyword	aptconfAcquireCompressionTypes contained
	\ bz2 lzma gz Order

syn keyword	aptconfAcquireFTP contained
	\ ForceExtended Passive Proxy ProxyLogin Timeout

syn keyword	aptconfAcquireHTTP contained
	\ AllowRedirect Dl-Limit Max-Age No-Cache No-Store Pipeline-Depth
	\ Proxy ProxyAutoDetect Proxy-Auto-Detect Timeout User-Agent

syn keyword	aptconfAcquireHTTPS contained
	\ AllowRedirect CaInfo CaPath CrlFile Dl-Limit IssuerCert Max-Age
	\ No-Cache No-Store Proxy SslCert SslForceVersion SslKey Timeout
	\ Verify-Host Verify-Peer

syn keyword	aptconfAcquireMaxValidTime contained
	\ Debian Debian-Security

syn keyword	aptconfAcquirePDiffs contained
	\ FileLimit SizeLimit

syn cluster	aptconfAcquire_ contains=aptconfAcquire,
	\ aptconfAcquireCDROM,aptconfAcquireCompressionTypes,aptconfAcquireFTP,
	\ aptconfAcquireHTTP,aptconfAcquireHTTPS,aptconfAcquireMaxValidTime,
	\ aptconfAcquirePDiffs
" }}}
" Adequate: {{{
syn keyword	aptconfAdequate contained
	\ Enabled

syn cluster	aptconfAdequate_ contains=aptconfAdequate
" }}}
" Apt: {{{
syn keyword	aptconfApt contained
	\ Architecture Architectures Archive Authentication AutoRemove
	\ Build-Essential Build-Profiles Cache Cache-Grow Cache-Limit
	\ Cache-Start CDROM Changelogs Clean-Installed Compressor
	\ Default-Release Force-LoopBreak Get Ignore-Hold Immediate-Configure
	\ Install-Recommends Install-Suggests Keep-Fds List-Cleanup
	\ Move-Autobit-Sections NeverAutoRemove Never-MarkAuto-Sections
	\ Periodic Status-Fd Update VersionedKernelPackages

syn keyword	aptconfAptAuthentication contained
	\ TrustCDROM

syn keyword	aptconfAptAutoRemove contained
	\ RecommendsImportant SuggestsImportant

syn keyword	aptconfAptCache contained
	\ AllNames AllVersions Generate GivenOnly Important Installed NamesOnly
	\ RecurseDepends ShowFull

syn keyword	aptconfAptCDROM contained
	\ Fast NoAct NoMount Rename

syn keyword	aptconfAptChangelogs contained
	\ Server

syn keyword	aptconfAptCompressor contained
	\ bzip2 gzip lzma xz

syn keyword	aptconfAptCompressorAll contained
	\ Binary CompressArg Cost Extension Name UncompressArg

syn keyword	aptconfAptGet contained
	\ AllowUnauthenticated Arch-Only Assume-No Assume-Yes AutomaticRemove
	\ Build-Dep-Automatic Compile Diff-Only Download Download-Only Dsc-Only
	\ Fix-Broken Fix-Missing Force-Yes HideAutoRemove Host-Architecture
	\ List-Cleanup Only-Source Print-URIs Purge ReInstall Remove
	\ Show-Upgraded Show-User-Simulation-Note Show-Versions Simulate
	\ Tar-Only Trivial-Only Upgrade

syn keyword	aptconfAptPeriodic contained
	\ AutocleanInterval BackupArchiveInterval BackupLevel
	\ Download-Upgradeable-Packages Download-Upgradeable-Packages-Debdelta
	\ Enable MaxAge MaxSize MinAge Unattended-Upgrade Update-Package-Lists
	\ Verbose

syn keyword	aptconfAptUpdate contained
	\ List-Refresh Pre-Invoke Post-Invoke Post-Invoke-Success

syn cluster	aptconfApt_ contains=aptconfApt,
	\ aptconfAptAuthentication,aptconfAptAutoRemove,aptconfAptCache,
	\ aptconfAptCDROM,aptconfAptChangelogs,aptconfAptCompressor,
	\ aptconfAptCompressorAll,aptconfAptGet,aptconfAptPeriodic,
	\ aptconfAptUpdate
" }}}
" Aptitude: {{{
syn keyword	aptconfAptitude contained
	\ Allow-Null-Upgrade Always-Use-Safe-Resolver Autoclean-After-Update
	\ Auto-Install Auto-Fix-Broken Cmdline Debtags-Binary
	\ Debtags-Update-Options Delete-Unused Delete-Unused-Pattern
	\ Display-Planned-Action Forget-New-On-Install Forget-New-On-Update
	\ Get-Root-Command Ignore-Old-Tmp Ignore-Recommends-Important
	\ Keep-Recommends Keep-Suggests Keep-Unused-Pattern LockFile Log
	\ Logging Parse-Description-Bullets Pkg-Display-Limit ProblemResolver
	\ Purge-Unused Recommends-Important Safe-Resolver Screenshot Sections
	\ Simulate Spin-Interval Suggests-Important Suppress-Read-Only-Warning
	\ Theme Track-Dselect-State UI Warn-Not-Root

syn keyword	aptconfAptitudeCmdline contained
	\ Always-Prompt Assume-Yes Disable-Columns Download-Only Fix-Broken
	\ Ignore-Trust-Violations Package-Display-Format Package-Display-Width
	\ Progress Request-Strictness Resolver-Debug Resolver-Dump
	\ Resolver-Show-Steps Safe-Upgrade Show-Deps Show-Size-Changes
	\ Show-Versions Show-Why Simulate Verbose Version-Display-Format
	\ Versions-Group-By Versions-Show-Package-Names Visual-Preview
	\ Why-Display-Mode

syn keyword	aptconfAptitudeCmdlineProgress contained
	\ Percent-On-Right Retain-Completed

syn keyword	aptconfAptitudeCmdlineSafeUpgrade contained
	\ No-New-Installs

syn keyword	aptconfAptitudeLogging contained
	\ File Levels

syn keyword	aptconfAptitudeProblemResolver contained
	\ Allow-Break-Holds BreakHoldScore Break-Hold-Level BrokenScore
	\ DefaultResolutionScore Discard-Null-Solution
	\ EssentialRemoveScore ExtraScore FullReplacementScore FutureHorizon
	\ Hints ImportantScore Infinity InstallScore Keep-All-Level KeepScore
	\ NonDefaultScore Non-Default-Level OptionalScore PreserveAutoScore
	\ PreserveManualScore RemoveScore Remove-Essential-Level Remove-Level
	\ RequiredScore ResolutionScore Safe-Level SolutionCost StandardScore
	\ StepLimit StepScore Trace-Directory Trace-File
	\ UndoFullReplacementScore UnfixedSoftScore UpgradeScore

syn keyword	aptconfAptitudeSafeResolver contained
	\ No-New-Installs No-New-Upgrades Show-Resolver-Actions

syn keyword	aptconfAptitudeScreenshot contained
	\ Cache-Max IncrementalLoadLimit

syn keyword	aptconfAptitudeSections contained
	\ Descriptions Top-Sections

syn keyword	aptconfAptitudeUI contained
	\ Advance-On-Action Auto-Show-Reasons Default-Grouping
	\ Default-Package-View Default-Preview-Grouping Default-Sorting
	\ Description-Visible-By-Default Exit-On-Last-Close Fill-Text
	\ Flat-View-As-First-View HelpBar Incremental-Search InfoAreaTabs
	\ KeyBindings MenuBar-Autohide Minibuf-Download-Bar Minibuf-Prompts
	\ New-package-Commands Package-Display-Format Package-Header-Format
	\ Package-Status-Format Pause-After-Download Preview-Limit
	\ Prompt-On-Exit Styles ViewTabs

syn keyword	aptconfAptitudeUIKeyBindings contained
	\ ApplySolution Begin BugReport Cancel Changelog ChangePkgTreeGrouping
	\ ChangePkgTreeLimit ChangePkgTreeSorting ClearAuto CollapseAll
	\ CollapseTree Commit Confirm Cycle CycleNext CycleOrder CyclePrev
	\ DelBOL DelBack DelEOL DelForward Dependencies DescriptionCycle
	\ DescriptionDown DescriptionUp DoInstallRun Down DpkgReconfigure
	\ DumpResolver EditHier End ExamineSolution ExpandAll ExpandTree
	\ FirstSolution ForbidUpgrade ForgetNewPackages Help HistoryNext
	\ HistoryPrev Hold Install InstallSingle Keep LastSolution Left
	\ LevelDown LevelUp MarkUpgradable MineFlagSquare MineLoadGame
	\ MineSaveGame MineSweepSquare MineUncoverSquare MineUncoverSweepSquare
	\ NextPage NextSolution No Parent PrevPage PrevSolution Purge
	\ PushButton Quit QuitProgram RejectBreakHolds Refresh Remove
	\ ReInstall RepeatSearchBack ReSearch ReverseDependencies Right
	\ SaveHier Search SearchBack SearchBroken SetAuto ShowHideDescription
	\ SolutionActionApprove SolutionActionReject ToggleExpanded
	\ ToggleMenuActive Undo Up UpdatePackageList Versions Yes

syn keyword	aptconfAptitudeUIStyles contained
	\ Bullet ChangeLogNewerVersion Default DepBroken DisabledMenuEntry
	\ DownloadHit DownloadProgress EditLine Error Header HighlightedMenuBar
	\ HighlightedMenuEntry MediaChange MenuBar MenuBorder MenuEntry
	\ MineBomb MineBorder MineFlag MineNumber1 MineNumber2 MineNumber3
	\ MineNumber4 MineNumber5 MineNumber6 MineNumber7 MineNumber8
	\ MultiplexTab MultiplexTabHighlighted PkgBroken PkgBrokenHighlighted
	\ PkgIsInstalled PkgIsInstalledHighlighted PkgNotInstalled
	\ PkgNotInstalledHighlighted PkgToDowngrade PkgToDowngradeHighlighted
	\ PkgToHold PkgToHoldHighlighted PkgToInstall PkgToInstallHighlighted
	\ PkgToRemove PkgToRemoveHighlighted PkgToUpgrade
	\ PkgToUpgradeHighlighted Progress SolutionActionApproved
	\ SolutionActionRejected Status TreeBackground TrustWarning

syn keyword	aptconfAptitudeUIStylesElements contained
	\ bg clear fg flip set

syn cluster	aptconfAptitude_ contains=aptconfAptitude,
	\ aptconfAptitudeCmdline,aptconfAptitudeCmdlineProgress,
	\ aptconfAptitudeCmdlineSafeUpgrade,aptconfAptitudeLogging,
	\ aptconfAptitudeProblemResolver,aptconfAptitudeSafeResolver,
	\ aptconfAptitudeScreenshot,aptconfAptitudeSections,aptconfAptitudeUI,
	\ aptconfAptitudeUIKeyBindings,aptconfAptitudeUIStyles,
	\ aptconfAptitudeUIStylesElements
" }}}
" AptListbugs: {{{
syn keyword	aptconfAptListbugs contained
	\ IgnoreRegexp Severities

syn cluster	aptconfAptListbugs_ contains=aptconfAptListbugs
" }}}
" DebTags: {{{
syn keyword	aptconfDebTags contained
	\ Vocabulary

syn cluster	aptconfDebTags_ contains=aptconfDebTags
" }}}
" Debug: {{{
syn keyword	aptconfDebug contained
	\ Acquire aptcdrom BuildDeps Hashes IdentCdrom Nolocking
	\ pkgAcquire pkgAutoRemove pkgCacheGen pkgDepCache pkgDPkgPM
	\ pkgDPkgProgressReporting pkgInitialize pkgOrderList
	\ pkgPackageManager pkgPolicy pkgProblemResolver RunScripts
	\ sourceList

syn keyword	aptconfDebugAcquire contained
	\ cdrom Ftp gpgv Http Https netrc

syn keyword	aptconfDebugPkgAcquire contained
	\ Auth Diffs RRed Worker

syn keyword	aptconfDebugPkgDepCache contained
	\ AutoInstall Marker

syn keyword	aptconfDebugPkgProblemResolver contained
	\ ShowScores

syn cluster	aptconfDebug_ contains=aptconfDebug,
	\ aptconfDebugAcquire,aptconfDebugPkgAcquire,aptconfDebugPkgDepCache,
	\ aptconfDebugPkgProblemResolver
" }}}
" Dir: {{{
syn keyword	aptconfDir contained
	\ Aptitude Bin Cache Etc Ignore-Files-Silently Log Media Parts RootDir
	\ State

syn keyword	aptconfDirAptitude contained
	\ state

syn keyword	aptconfDirBin contained
	\ apt-get apt-cache dpkg dpkg-buildpackage dpkg-source gpg gzip Methods
	\ solvers

syn keyword	aptconfDirCache contained
	\ Archives Backup pkgcache srcpkgcache

syn keyword	aptconfDirEtc contained
	\ Main Netrc Parts Preferences PreferencesParts SourceList SourceParts
	\ VendorList VendorParts Trusted TrustedParts

syn keyword	aptconfDirLog contained
	\ History Terminal

syn keyword	aptconfDirMedia contained
	\ MountPath

syn keyword	aptconfDirState contained
	\ cdroms extended_states Lists mirrors preferences status

syn cluster	aptconfDir_ contains=aptconfDir,
	\ aptconfDirAptitude,aptconfDirBin,aptconfDirCache,aptconfDirEtc,
	\ aptconfDirLog,aptconfDirMedia,aptconfDirState
" }}}
" DPkg: {{{
syn keyword	aptconfDPkg contained
	\ Build-Options Chroot-Directory ConfigurePending FlushSTDIN
	\ MaxArgBytes MaxArgs MaxBytes NoTriggers options
	\ Pre-Install-Pkgs Pre-Invoke Post-Invoke
	\ Run-Directory StopOnError Tools TriggersPending

syn keyword	aptconfDPkgTools contained
	\ adequate InfoFD Options Version

syn cluster	aptconfDPkg_ contains=aptconfDPkg,
	\ aptconfDPkgTools
" }}}
" DSelect: {{{
syn keyword	aptconfDSelect contained
	\ CheckDir Clean Options PromptAfterUpdate UpdateOptions

syn cluster	aptconfDSelect_ contains=aptconfDSelect
" }}}
" OrderList: {{{
syn keyword	aptconfOrderList contained
	\ Score

syn keyword	aptconfOrderListScore contained
	\ Delete Essential Immediate PreDepends

syn cluster	aptconfOrderList_ contains=aptconfOrderList,
	\ aptconfOrderListScore
" }}}
" PackageManager: {{{
syn keyword	aptconfPackageManager contained
	\ Configure

syn cluster	aptconfPackageManager_ contains=aptconfPackageManager
" }}}
" PkgCacheGen: {{{
syn keyword	aptconfPkgCacheGen contained
	\ Essential

syn cluster	aptconfPkgCacheGen_ contains=aptconfPkgCacheGen
" }}}
" Quiet: {{{
syn keyword	aptconfQuiet contained
	\ NoUpdate

syn cluster	aptconfQuiet_ contains=aptconfQuiet
" }}}
" Rpm: {{{
syn keyword	aptconfRpm contained
	\ Post-Invoke Pre-Invoke

syn cluster	aptconfRpm_ contains=aptconfRpm
" }}}
" Synaptic: {{{
syn keyword	aptconfSynaptic contained
	\ AskQuitOnProceed AskRelated AutoCleanCache CleanCache DefaultDistro
	\ delAction delHistory Download-Only ftpProxy ftpProxyPort httpProxy
	\ httpProxyPort Install-Recommends LastSearchType Maximized noProxy
	\ OneClickOnStatusActions ShowAllPkgInfoInMain showWelcomeDialog
	\ ToolbarState undoStackSize update upgradeType useProxy UseStatusColors
	\ UseTerminal useUserFont useUserTerminalFont ViewMode
	\ availVerColumnPos availVerColumnVisible componentColumnPos
	\ componentColumnVisible descrColumnPos descrColumnVisible
	\ downloadSizeColumnPos downloadSizeColumnVisible hpanedPos
	\ instVerColumnPos instVerColumnVisible instSizeColumnPos
	\ instSizeColumnVisible nameColumnPos nameColumnVisible
	\ sectionColumnPos sectionColumnVisible statusColumnPos
	\ statusColumnVisible supportedColumnPos supportedColumnVisible
	\ vpanedPos windowWidth windowHeight windowX windowY closeZvt
	\ color-available color-available-locked color-broken color-downgrade
	\ color-install color-installed-locked color-installed-outdated
	\ color-installed-updated color-new color-purge color-reinstall
	\ color-remove color-upgrade

syn keyword	aptconfSynapticUpdate contained
	\ last type

syn cluster	aptconfSynaptic_ contains=aptconfSynaptic,
	\ aptconfSynapticUpdate
" }}}
" Unattended Upgrade: {{{
syn keyword	aptconfUnattendedUpgrade contained
	\ AutoFixInterruptedDpkg Automatic-Reboot Automatic-Reboot-Time
	\ Automatic-Reboot-WithUsers InstallOnShutdown Mail MailOnlyOnError
	\ MinimalSteps Origins-Pattern Package-Blacklist
	\ Remove-Unused-Dependencies

syn cluster	aptconfUnattendedUpgrade_ contains=aptconfUnattendedUpgrade
" }}}
" Whatmaps: {{{
syn keyword	aptconfWhatmaps contained
	\ Enable-Restart Security-Update-Origins

syn cluster	aptconfWhatmaps_ contains=aptconfWhatmaps
" }}}

syn case	match

" Now put all the keywords (and 'valid' options) in a single cluster:
syn cluster	aptconfOptions contains=aptconfRegexpOpt,
	\ @aptconfAcquire_,@aptconfAdequate_,@aptconfApt_,@aptconfAptitude_,
	\ @aptconfAptListbugs_,@aptconfDebTags_,@aptconfDebug_,@aptconfDir_,
	\ @aptconfDPkg_,@aptconfDSelect_,@aptconfOrderList_,
	\ @aptconfPackageManager_,@aptconfPkgCacheGen_,@aptconfQuiet_,
	\ @aptconfRpm_,@aptconfSynaptic_,@aptconfUnattendedUpgrade_,
	\ @aptconfWhatmaps_

" Syntax:
syn match	aptconfSemiColon	';'
syn match	aptconfDoubleColon	'::'
syn match	aptconfCurlyBraces	'[{}]'
syn region	aptconfValue		start='"' end='"' oneline display
syn region	aptconfInclude		matchgroup=aptconfOperator start='{' end='}' contains=ALLBUT,aptconfGroup,aptconfGroupIncomplete,@aptconfCommentSpecial
syn region	aptconfInclude		matchgroup=aptconfOperator start='::' end='{'me=s-1 contains=@aptconfOptions,aptconfError display
syn region	aptconfInclude		matchgroup=aptconfOperator start='::' end='::\|\s'me=s-1 oneline contains=@aptconfOptions,aptconfError display

" Basic Syntax Errors: XXX avoid to generate false positives !!!
"
" * Undocumented inline comment. Since it is currently largely used, and does
" not seem to cause trouble ('apt-config dump' never complains when # is used
" the same way than //) it has been moved to aptconfComment group. But it
" still needs to be defined here (i.e. before #clear and #include directives)
syn match	aptconfComment		'#.*' contains=@aptconfCommentSpecial
"
" * When a semicolon is missing after a double-quoted string:
" There are some cases (for example in the Dir group of options, but not only)
" where this syntax is valid. So we don't treat it as a strict error.
syn match	aptconfAsError		display '"[^"]*"[^;]'me=e-1
syn match	aptconfAsError		display '"[^"]*"$'
"
" * When double quotes are missing around a value (before a semicolon):
" This omission has no effect if the value is a single string (without blank
" characters). But apt.conf(5) says that quotes are required, and this item
" avoids to match unquoted keywords.
syn match	aptconfAsError		display '\s[^"[:blank:]]*[^}"];'me=e-1
"
" * When only one double quote is missing around a value (before a semicolon):
" No comment for that: it must be highly visible.
syn match	aptconfError		display '\(\s\|;\)"[^"[:blank:]]\+;'me=e-1
syn match	aptconfError		display '\(\s\|;\)[^"[:blank:]]\+";'me=e-1
"
" * When space is missing between option and (quoted) value:
" TODO (partially implemented)
syn match	aptconfError		display '::[^[:blank:]]*"'

" Special Actions:
syn match	aptconfAction		'^#\(clear\|include\)\>'
syn region	aptconfAction		matchgroup=aptconfAction start='^#clear\>' end=';'me=s-1 oneline contains=aptconfGroup,aptconfDoubleColon,@aptconfOptions
syn region	aptconfAction		matchgroup=aptconfAction start='^#include\>' end=';'me=s-1 oneline contains=aptconfRegexpOpt

" Comments:
syn keyword	aptconfTodo		TODO FIXME NOTE XXX contained
syn cluster	aptconfCommentSpecial	contains=@Spell,aptconfTodo
syn match	aptconfComment		'//.*' contains=@aptconfCommentSpecial
syn region	aptconfComment		start='/\*' end='\*/' contains=@aptconfCommentSpecial

" Highlight Definitions:
hi def link aptconfTodo				Todo
hi def link aptconfError			Error
hi def link aptconfComment			Comment
hi def link aptconfOperator			Operator

hi def link aptconfAction			PreProc
hi def link aptconfOption			Type
hi def link aptconfValue			String
hi def link aptconfRegexpOpt			Normal
hi def link aptconfAsError			Special

hi def link aptconfSemiColon			aptconfOperator
hi def link aptconfDoubleColon			aptconfOperator
hi def link aptconfCurlyBraces			aptconfOperator

hi def link aptconfGroupIncomplete		Special
hi def link aptconfGroup			aptconfOption

hi def link aptconfAcquire			aptconfOption
hi def link aptconfAcquireCDROM			aptconfOption
hi def link aptconfAcquireCompressionTypes	aptconfOption
hi def link aptconfAcquireFTP			aptconfOption
hi def link aptconfAcquireHTTP			aptconfOption
hi def link aptconfAcquireHTTPS			aptconfOption
hi def link aptconfAcquireMaxValidTime		aptconfOption
hi def link aptconfAcquirePDiffs		aptconfOption

hi def link aptconfAdequate			aptconfOption

hi def link aptconfApt				aptconfOption
hi def link aptconfAptAuthentication		aptconfOption
hi def link aptconfAptAutoRemove		aptconfOption
hi def link aptconfAptCache			aptconfOption
hi def link aptconfAptCDROM			aptconfOption
hi def link aptconfAptChangelogs		aptconfOption
hi def link aptconfAptCompressor		aptconfOption
hi def link aptconfAptCompressorAll		aptconfOption
hi def link aptconfAptGet			aptconfOption
hi def link aptconfAptPeriodic			aptconfOption
hi def link aptconfAptUpdate			aptconfOption

hi def link aptconfAptitude			aptconfOption
hi def link aptconfAptitudeCmdline		aptconfOption
hi def link aptconfAptitudeCmdlineProgress	aptconfOption
hi def link aptconfAptitudeCmdlineSafeUpgrade	aptconfOption
hi def link aptconfAptitudeLogging		aptconfOption
hi def link aptconfAptitudeProblemResolver	aptconfOption
hi def link aptconfAptitudeSafeResolver		aptconfOption
hi def link aptconfAptitudeScreenshot		aptconfOption
hi def link aptconfAptitudeSections		aptconfOption
hi def link aptconfAptitudeUI			aptconfOption
hi def link aptconfAptitudeUIKeyBindings	aptconfOption
hi def link aptconfAptitudeUIStyles		aptconfOption
hi def link aptconfAptitudeUIStylesElements	aptconfOption

hi def link aptconfAptListbugs			aptconfOption

hi def link aptconfDebTags			aptconfOption

hi def link aptconfDebug			aptconfOption
hi def link aptconfDebugAcquire			aptconfOption
hi def link aptconfDebugPkgAcquire		aptconfOption
hi def link aptconfDebugPkgDepCache		aptconfOption
hi def link aptconfDebugPkgProblemResolver	aptconfOption

hi def link aptconfDir				aptconfOption
hi def link aptconfDirAptitude			aptconfOption
hi def link aptconfDirBin			aptconfOption
hi def link aptconfDirCache			aptconfOption
hi def link aptconfDirEtc			aptconfOption
hi def link aptconfDirLog			aptconfOption
hi def link aptconfDirMedia			aptconfOption
hi def link aptconfDirState			aptconfOption

hi def link aptconfDPkg				aptconfOption
hi def link aptconfDPkgTools			aptconfOption

hi def link aptconfDSelect			aptconfOption

hi def link aptconfOrderList			aptconfOption
hi def link aptconfOrderListScore		aptconfOption

hi def link aptconfPackageManager		aptconfOption

hi def link aptconfPkgCacheGen			aptconfOption

hi def link aptconfQuiet			aptconfOption

hi def link aptconfRpm				aptconfOption

hi def link aptconfSynaptic			aptconfOption
hi def link aptconfSynapticUpdate		aptconfOption

hi def link aptconfUnattendedUpgrade		aptconfOption

hi def link aptconfWhatmaps			aptconfOption

let b:current_syntax = "aptconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��Y�vim80/syntax/wsml.vimnu�[���" Vim syntax file
" Language:     WSML
" Maintainer:   Thomas Haselwanter <thomas.haselwanter@deri.org>
" URL:		none
" Last Change:  2006 Apr 30

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" WSML
syn keyword wsmlHeader		wsmlVariant
syn keyword wsmlNamespace	namespace
syn keyword wsmlTopLevel	concept instance relationInstance ofType usesMediator usesService relation sharedVariables importsOntology
syn keyword wsmlOntology	hasValue memberOf ofType impliesType subConceptOf
syn keyword wsmlAxiom		axiom definedBy
syn keyword wsmlService		assumption effect postcondition precondition capability interface
syn keyword wsmlTopLevel	ooMediator wwMediator wgMediator ggMediator
syn keyword wsmlMediation	usesService source target
syn match wsmlDataTypes	        "\( _string\| _decimal\| _integer\| _float\| _double\| _iri\| _sqname\| _boolean\| _duration\| _dateTime\| _time\| _date\| _gyearmonth\| _gyear\| _gmonthday\| _gday\| _gmonth\| _hexbinary\| _base64binary\)\((\S*)\)\?" contains=wsmlString,wsmlNumber,wsmlCharacter
syn keyword wsmlTopLevel	goal webService ontology
syn keyword wsmlKeywordsInsideLEs	true false memberOf hasValue subConceptOf ofType impliesType and or implies impliedBy equivalent neg naf forall exists
syn keyword wsmlNFP		nfp endnfp nonFunctionalProperties endNonFunctionalProperties
syn region wsmlNFPregion	start="nfp\|nonFunctionalProperties" end="endnfp\|endNonFunctionalProperties" contains=ALL
syn region wsmlNamespace	start="namespace" end="}" contains=wsmlIdentifier
syn match wsmlOperator		"!=\|:=:\|=<\|>=\|=\|+\|\*\|/\|<->\|->\|<-\|:-\|!-\|-\|<\|>"
syn match wsmlBrace		"(\|)\|\[\|\]\|{\|}"
syn match wsmlIdentifier	+_"\S*"+
syn match wsmlIdentifier	"_#\d*"
syn match wsmlSqName		"[0-9A-Za-z]\+#[0-9A-Za-z]\+"
syn match wsmlVariable		"?[0-9A-Za-z]\+"

" ASM-specific code
syn keyword wsmlBehavioral	choreography orchestration transitionRules
syn keyword wsmlChoreographyPri	stateSignature in out shared static controlled 
syn keyword wsmlChoreographySec with do withGrounding forall endForall choose if then endIf
syn match wsmlChoreographyTer   "\(\s\|\_^\)\(add\|delete\|update\)\s*(.*)" contains=wsmlKeywordsInsideLEs,wsmlIdentifier,wsmlSqName,wsmlString,wsmlNumber,wsmlDataTypes,wsmlVariable

" Comments
syn keyword wsmlTodo		 contained TODO
syn keyword wsmlFixMe		 contained FIXME
if exists("wsml_comment_strings")
  syn region  wsmlCommentString    contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=wsmlSpecial,wsmlCommentStar,wsmlSpecialChar,@Spell
  syn region  wsmlComment2String   contained start=+"+  end=+$\|"+  contains=wsmlSpecial,wsmlSpecialChar,@Spell
  syn match   wsmlCommentCharacter contained "'\\[^']\{1,6\}'" contains=wsmlSpecialChar
  syn match   wsmlCommentCharacter contained "'\\''" contains=wsmlSpecialChar
  syn match   wsmlCommentCharacter contained "'[^\\]'"
  syn cluster wsmlCommentSpecial add=wsmlCommentString,wsmlCommentCharacter,wsmlNumber
  syn cluster wsmlCommentSpecial2 add=wsmlComment2String,wsmlCommentCharacter,wsmlNumber
endif

syn region  wsmlComment		 start="/\*"  end="\*/" contains=@wsmlCommentSpecial,wsmlTodo,wsmlFixMe,@Spell
syn match   wsmlCommentStar      contained "^\s*\*[^/]"me=e-1
syn match   wsmlCommentStar      contained "^\s*\*$"
syn match   wsmlLineComment      "//.*" contains=@wsmlCommentSpecial2,wsmlTodo,@Spell

syn cluster wsmlTop add=wsmlComment,wsmlLineComment

"match the special comment /**/
syn match   wsmlComment		 "/\*\*/"

" Strings
syn region  wsmlString		start=+"+ end=+"+ contains=wsmlSpecialChar,wsmlSpecialError,@Spell
syn match   wsmlCharacter	 "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
syn match   wsmlCharacter	 "'\\''" contains=javaSpecialChar
syn match   wsmlCharacter	 "'[^\\]'"
syn match   wsmlNumber		 "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
syn match   wsmlNumber		 "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
syn match   wsmlNumber		 "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match   wsmlNumber		 "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"

" unicode characters
syn match   wsmlSpecial "\\u\d\{4\}"

syn cluster wsmlTop add=wsmlString,wsmlCharacter,wsmlNumber,wsmlSpecial,wsmlStringError

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link wsmlHeader			TypeDef
hi def link wsmlNamespace			TypeDef
hi def link wsmlOntology			Statement
hi def link wsmlAxiom			TypeDef
hi def link wsmlService			TypeDef
hi def link wsmlNFP			TypeDef
hi def link wsmlTopLevel			TypeDef
hi def link wsmlMediation			TypeDef 
hi def link wsmlBehavioral		TypeDef
hi def link wsmlChoreographyPri		TypeDef
hi def link wsmlChoreographySec		Operator
hi def link wsmlChoreographyTer		Special
hi def link wsmlString			String
hi def link wsmlIdentifier		Normal 
hi def link wsmlSqName                     Normal
hi def link wsmlVariable			Define
hi def link wsmlKeywordsInsideLEs		Operator
hi def link wsmlOperator			Operator
hi def link wsmlBrace			Operator
hi def link wsmlCharacter			Character
hi def link wsmlNumber			Number
hi def link wsmlDataTypes			Special
hi def link wsmlComment			Comment
hi def link wsmlDocComment		Comment
hi def link wsmlLineComment		Comment
hi def link wsmlTodo			Todo
hi def link wsmlFixMe			Error
hi def link wsmlCommentTitle		SpecialComment
hi def link wsmlCommentStar		wsmlComment


let b:current_syntax = "wsml"
let b:spell_options="contained"

PK�j�Z�YD-VVvim80/syntax/hb.vimnu�[���" Vim syntax file
" Language:	Hyper Builder
" Maintainer:	Alejandro Forero Cuervo
" URL:		http://bachue.com/hb/vim/syntax/hb.vim
" Last Change:	2012 Jan 08 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Read the HTML syntax to start with
"syn include @HTMLStuff <sfile>:p:h/htmlhb.vim

"this would be nice but we are supposed not to do it
"set mps=<:>

"syn region  HBhtmlString contained start=+"+ end=+"+ contains=htmlSpecialChar
"syn region  HBhtmlString contained start=+'+ end=+'+ contains=htmlSpecialChar

"syn match   htmlValue    contained "=[\t ]*[^'" \t>][^ \t>]*"

syn match   htmlSpecialChar "&[^;]*;" contained

syn match   HBhtmlTagSk  contained "[A-Za-z]*"

syn match   HBhtmlTagS   contained "<\s*\(hb\s*\.\s*\(sec\|min\|hour\|day\|mon\|year\|input\|html\|time\|getcookie\|streql\|url-enc\)\|wall\s*\.\s*\(show\|info\|id\|new\|rm\|count\)\|auth\s*\.\s*\(chk\|add\|find\|user\)\|math\s*\.\s*exp\)\s*\([^.A-Za-z0-9]\|$\)" contains=HBhtmlTagSk transparent

syn match   HBhtmlTagN   contained "[A-Za-z0-9\/\-]\+"

syn match   HBhtmlTagB   contained "<\s*[A-Za-z0-9\/\-]\+\(\s*\.\s*[A-Za-z0-9\/\-]\+\)*" contains=HBhtmlTagS,HBhtmlTagN

syn region  HBhtmlTag contained start=+<+ end=+>+ contains=HBhtmlTagB,HBDirectiveError

syn match HBFileName ".*" contained

syn match HBDirectiveKeyword	":\s*\(include\|lib\|set\|out\)\s\+" contained

syn match HBDirectiveError	"^:.*$" contained

"syn match HBDirectiveBlockEnd "^:\s*$" contained

"syn match HBDirectiveOutHead "^:\s*out\s\+\S\+.*" contained contains=HBDirectiveKeyword,HBFileName

"syn match HBDirectiveSetHead "^:\s*set\s\+\S\+.*" contained contains=HBDirectiveKeyword,HBFileName

syn match HBInvalidLine "^.*$"

syn match HBDirectiveInclude "^:\s*include\s\+\S\+.*$" contains=HBFileName,HBDirectiveKeyword

syn match HBDirectiveLib "^:\s*lib\s\+\S\+.*$" contains=HBFileName,HBDirectiveKeyword

syn region HBText matchgroup=HBDirectiveKeyword start=/^:\(set\|out\)\s*\S\+.*$/ end=/^:\s*$/ contains=HBDirectiveError,htmlSpecialChar,HBhtmlTag keepend

"syn match HBLine "^:.*$" contains=HBDirectiveInclude,HBDirectiveLib,HBDirectiveError,HBDirectiveSet,HBDirectiveOut

syn match HBComment "^#.*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link HBhtmlString			 String
hi def link HBhtmlTagN			 Function
hi def link htmlSpecialChar		 String

hi def link HBInvalidLine Error
hi def link HBFoobar Comment
hi HBFileName guibg=lightgray guifg=black
hi def link HBDirectiveError Error
hi def link HBDirectiveBlockEnd HBDirectiveKeyword
hi HBDirectiveKeyword guibg=lightgray guifg=darkgreen
hi def link HBComment Comment
hi def link HBhtmlTagSk Statement


syn sync match Normal grouphere NONE "^:\s*$"
syn sync match Normal grouphere NONE "^:\s*lib\s\+[^ \t]\+$"
syn sync match Normal grouphere NONE "^:\s*include\s\+[^ \t]\+$"
"syn sync match Block  grouphere HBDirectiveSet "^#:\s*set\s\+[^ \t]\+"
"syn sync match Block  grouphere HBDirectiveOut "^#:\s*out\s\+[^ \t]\+"

let b:current_syntax = "hb"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z��ߕ��vim80/syntax/awk.vimnu�[���" Vim syntax file
" Language:	awk, nawk, gawk, mawk
" Maintainer:	Antonio Colombo <azc100@gmail.com>
" Last Change:	2016 Sep 05

" AWK  ref. is: Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger
" The AWK Programming Language, Addison-Wesley, 1988

" GAWK ref. is: Arnold D. Robbins
" Effective AWK Programming, Third Edition, O'Reilly, 2001
" Effective AWK Programming, Fourth Edition, O'Reilly, 2015
" (also available and updated with the gawk source distribution)

" MAWK is a "new awk" meaning it implements AWK ref.
" mawk conforms to the Posix 1003.2 (draft 11.3)
" definition of the AWK language which contains a few features
" not described in the AWK book, and mawk provides a small number of extensions.

" TODO:
" Dig into the commented out syntax expressions below.

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" A bunch of useful Awk keywords
" AWK  ref. p. 188
syn keyword awkStatement	break continue delete exit
syn keyword awkStatement	function getline next
syn keyword awkStatement	print printf return
" GAWK ref. Chapter 7-9
syn keyword awkStatement	switch nextfile
syn keyword awkStatement	func
"
" GAWK ref. Chapter 9, Functions
" Numeric Functions
syn keyword awkFunction	atan2 cos exp int intdiv log rand sin sqrt srand
" String Manipulation Functions
syn keyword awkFunction	asort asort1 gensub gsub index length match 
syn keyword awkFunction	patsplit split sprintf strtonum sub substr
syn keyword awkFunction	tolower toupper
" Input Output Functions
syn keyword awkFunction	close fflush system
" Time Functions
syn keyword awkFunction	mktime strftime systime
" Bit Manipulation Functions
syn keyword awkFunction	and compl lshift or rshift xor
" Getting Type Functions
syn keyword awkFunction	isarray typeof
" String-Translation Functions
syn keyword awkFunction	bindtextdomain dcgettext dcngetext

syn keyword awkConditional	if else
syn keyword awkRepeat	while for do

syn keyword awkTodo	contained TODO

syn keyword awkPatterns	BEGIN END BEGINFILE ENDFILE

" GAWK ref. Chapter 7
" Built-in Variables That Control awk
syn keyword awkVariables        BINMODE CONVFMT FIELDWIDTHS FPAT FS
syn keyword awkVariables	IGNORECASE LINT OFMT OFS ORS PREC
syn keyword awkVariables	ROUNDMODE RS SUBSEP TEXTDOMAIN
" Built-in Variables That Convey Information
syn keyword awkVariables	ARGC ARGV ARGIND ENVIRON ERRNO FILENAME
syn keyword awkVariables	FNR NF FUNCTAB NR PROCINFO RLENGTH RSTART 
syn keyword awkVariables	RT SYMTAB

" Arithmetic operators: +, and - take care of ++, and --
syn match   awkOperator		"+\|-\|\*\|/\|%\|="
syn match   awkOperator		"+=\|-=\|\*=\|/=\|%="
syn match   awkOperator		"\^\|\^="

" Octal format character.
syn match   awkSpecialCharacter display contained "\\[0-7]\{1,3\}"
" Hex   format character.
syn match   awkSpecialCharacter display contained "\\x[0-9A-Fa-f]\+"

syn match   awkFieldVars	"\$\d\+"

" catch errors caused by wrong parenthesis
syn region	awkParen	transparent start="(" end=")" contains=ALLBUT,awkParenError,awkSpecialCharacter,awkArrayElement,awkArrayArray,awkTodo,awkRegExp,awkBrktRegExp,awkBrackets,awkCharClass,awkComment
syn match	awkParenError	display ")"
"syn match	awkInParen	display contained "[{}]"

" 64 lines for complex &&'s, and ||'s in a big "if"
syn sync ccomment awkParen maxlines=64

" Search strings & Regular Expressions therein.
syn region  awkSearch	oneline start="^[ \t]*/"ms=e start="\(,\|!\=\~\)[ \t]*/"ms=e skip="\\\\\|\\/" end="/" contains=awkBrackets,awkRegExp,awkSpecialCharacter
syn region  awkBrackets	contained start="\[\^\]\="ms=s+2 start="\[[^\^]"ms=s+1 end="\]"me=e-1 contains=awkBrktRegExp,awkCharClass
syn region  awkSearch	oneline start="[ \t]*/"hs=e skip="\\\\\|\\/" end="/" contains=awkBrackets,awkRegExp,awkSpecialCharacter

syn match   awkCharClass	contained "\[:[^:\]]*:\]"
syn match   awkBrktRegExp	contained "\\.\|.\-[^]]"
syn match   awkRegExp	contained "/\^"ms=s+1
syn match   awkRegExp	contained "\$/"me=e-1
syn match   awkRegExp	contained "[?.*{}|+]"

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn region  awkString	start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=@Spell,awkSpecialCharacter,awkSpecialPrintf
syn match   awkSpecialCharacter contained "\\."

" Some of these combinations may seem weird, but they work.
syn match   awkSpecialPrintf	contained "%[-+ #]*\d*\.\=\d*[cdefgiosuxEGX%]"

" Numbers, allowing signs (both -, and +)
" Integer number.
syn match  awkNumber		display "[+-]\=\<\d\+\>"
" Floating point number.
syn match  awkFloat		display "[+-]\=\<\d\+\.\d+\>"
" Floating point number, starting with a dot.
syn match  awkFloat		display "[+-]\=\<.\d+\>"
syn case ignore
"floating point number, with dot, optional exponent
syn match  awkFloat	display "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\>"
"floating point number, starting with a dot, optional exponent
syn match  awkFloat	display "\.\d\+\(e[-+]\=\d\+\)\=\>"
"floating point number, without dot, with exponent
syn match  awkFloat	display "\<\d\+e[-+]\=\d\+\>"
syn case match

"syn match  awkIdentifier	"\<[a-zA-Z_][a-zA-Z0-9_]*\>"

" Comparison expressions.
syn match   awkExpression	"==\|>=\|=>\|<=\|=<\|\!="
syn match   awkExpression	"\~\|\!\~"
syn match   awkExpression	"?\|:"
syn keyword awkExpression	in

" Boolean Logic (OR, AND, NOT)
syn match  awkBoolLogic	"||\|&&\|\!"

" This is overridden by less-than & greater-than.
" Put this above those to override them.
" Put this in a 'match "\<printf\=\>.*;\="' to make it not override
" less/greater than (most of the time), but it won't work yet because
" keywords always have precedence over match & region.
" File I/O: (print foo, bar > "filename") & for nawk (getline < "filename")
"syn match  awkFileIO		contained ">"
"syn match  awkFileIO		contained "<"

" Expression separators: ';' and ','
syn match  awkSemicolon	";"
syn match  awkComma		","

syn match  awkComment	"#.*" contains=@Spell,awkTodo

syn match  awkLineSkip	"\\$"

" Highlight array element's (recursive arrays allowed).
" Keeps nested array names' separate from normal array elements.
" Keeps numbers separate from normal array elements (variables).
syn match  awkArrayArray	contained "[^][, \t]\+\["me=e-1
syn match  awkArrayElement      contained "[^][, \t]\+"
syn region awkArray		transparent start="\[" end="\]" contains=awkArray,awkArrayElement,awkArrayArray,awkNumber,awkFloat

" 10 should be enough.
" (for the few instances where it would be more than "oneline")
syn sync ccomment awkArray maxlines=10

" Define the default highlighting.
hi def link awkConditional	Conditional
hi def link awkFunction		Function
hi def link awkRepeat		Repeat
hi def link awkStatement	Statement
hi def link awkString		String
hi def link awkSpecialPrintf	Special
hi def link awkSpecialCharacter	Special
hi def link awkSearch		String
hi def link awkBrackets		awkRegExp
hi def link awkBrktRegExp	awkNestRegExp
hi def link awkCharClass	awkNestRegExp
hi def link awkNestRegExp	Keyword
hi def link awkRegExp		Special
hi def link awkNumber		Number
hi def link awkFloat		Float
hi def link awkFileIO		Special
hi def link awkOperator		Special
hi def link awkExpression	Special
hi def link awkBoolLogic	Special
hi def link awkPatterns		Special
hi def link awkVariables	Special
hi def link awkFieldVars	Special
hi def link awkLineSkip		Special
hi def link awkSemicolon	Special
hi def link awkComma		Special
hi def link awkIdentifier	Identifier
hi def link awkComment		Comment
hi def link awkTodo		Todo
" Change this if you want nested array names to be highlighted.
hi def link awkArrayArray	awkArray
hi def link awkArrayElement	Special
hi def link awkParenError	awkError
hi def link awkInParen		awkError
hi def link awkError		Error

let b:current_syntax = "awk"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z�|>��X�Xvim80/syntax/cdrtoc.vimnu�[���" Vim syntax file
" Language:             cdrdao(1) TOC file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-05-10

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword cdrtocTodo
      \ contained
      \ TODO
      \ FIXME
      \ XXX
      \ NOTE

syn cluster cdrtocCommentContents
      \ contains=
      \   cdrtocTodo,
      \   @Spell

syn cluster cdrtocHeaderFollowsInitial
      \ contains=
      \   cdrtocHeaderCommentInitial,
      \   cdrtocHeaderCatalog,
      \   cdrtocHeaderTOCType,
      \   cdrtocHeaderCDText,
      \   cdrtocTrack

syn match   cdrtocHeaderBegin
      \ nextgroup=@cdrtocHeaderFollowsInitial
      \ skipwhite skipempty
      \ '\%^'

let s:mmssff_pattern = '\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\>'
let s:byte_pattern = '\<\%([01]\=\d\{1,2}\|2\%([0-4]\d\|5[0-5]\)\)\>'
let s:length_pattern = '\%(\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\|\d\+\)\>'

function s:def_comment(name, nextgroup)
  execute 'syn match' a:name
        \ 'nextgroup=' . a:nextgroup . ',' . a:name
        \ 'skipwhite skipempty'
        \ 'contains=@cdrtocCommentContents'
        \ 'contained'
        \ "'//.*$'"
  execute 'hi def link' a:name 'cdrtocComment'
endfunction

function s:def_keywords(name, nextgroup, keywords)
  let comment_group = a:name . 'FollowComment'
  execute 'syn keyword' a:name
        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
        \ 'skipwhite skipempty'
        \ 'contained'
        \ join(a:keywords)

  call s:def_comment(comment_group, a:nextgroup)
endfunction

function s:def_keyword(name, nextgroup, keyword)
  call s:def_keywords(a:name, a:nextgroup, [a:keyword])
endfunction

" NOTE: Pattern needs to escape any “@”s.
function s:def_match(name, nextgroup, pattern)
  let comment_group = a:name . 'FollowComment'
  execute 'syn match' a:name
        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
        \ 'skipwhite skipempty'
        \ 'contained'
        \ '@' . a:pattern . '@'

  call s:def_comment(comment_group, a:nextgroup)
endfunction

function s:def_region(name, nextgroup, start, skip, end, matchgroup, contains)
  let comment_group = a:name . 'FollowComment'
  execute 'syn region' a:name
        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
        \ 'skipwhite skipempty'
        \ 'contained'
        \ 'matchgroup=' . a:matchgroup
        \ 'contains=' . a:contains
        \ 'start=@' . a:start . '@'
        \ (a:skip != "" ? ('skip=@' . a:skip . '@') : "")
        \ 'end=@' . a:end . '@'

  call s:def_comment(comment_group, a:nextgroup)
endfunction

call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial')

call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG')

call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"')

call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA'])

call s:def_keyword('cdrtocHeaderCDText', 'cdrtocHeaderCDTextStart', 'CD_TEXT')

" TODO: Actually, language maps aren’t required by TocParser.g, but let’s keep
" things simple (and in agreement with what the manual page says).
call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{')

call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP')

call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{')

call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>')

call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':')

syn cluster cdrtocHeaderLanguageMapCountryCodeFollow
      \ contains=
      \   cdrtocHeaderLanguageMapLanguageNumber,
      \   cdrtocHeaderLanguageMapEnd

call s:def_match('cdrtocHeaderLanguageMapCountryCode',
               \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
               \ s:byte_pattern)

call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName',
                 \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
                 \ 'EN')

call s:def_match('cdrtocHeaderLanguageMapEnd',
               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
               \ '}')

call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE')

call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>')

call s:def_match('cdrtocHeaderLanguageStart',
               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
               \ '{')

syn cluster cdrtocHeaderCDTextData
      \ contains=
      \   cdrtocHeaderCDTextDataString,
      \   cdrtocHeaderCDTextDataBinaryStart

call s:def_keywords('cdrtocHeaderCDTextItem',
                  \ '@cdrtocHeaderCDTextData',
                  \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER',
                  \  'ARRANGER', 'MESSAGE', 'DISC_ID', 'GENRE', 'TOC_INFO1',
                  \  'TOC_INFO2', 'UPC_EAN', 'ISRC', 'SIZE_INFO'])

call s:def_region('cdrtocHeaderCDTextDataString',
                \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
                \ '"',
                \ '\\\\\|\\"',
                \ '"',
                \ 'cdrtocHeaderCDTextDataStringDelimiters',
                \ 'cdrtocHeaderCDTextDataStringSpecialChar')

syn match   cdrtocHeaderCDTextDataStringSpecialChar
      \ contained
      \ display
      \ '\\\%(\o\o\o\|["\\]\)'

call s:def_match('cdrtocHeaderCDTextDataBinaryStart',
               \ 'cdrtocHeaderCDTextDataBinaryInteger',
               \ '{')

call s:def_match('cdrtocHeaderCDTextDataBinaryInteger',
               \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd',
               \ s:byte_pattern)

call s:def_match('cdrtocHeaderCDTextDataBinarySeparator',
               \ 'cdrtocHeaderCDTextDataBinaryInteger',
               \ ',')

call s:def_match('cdrtocHeaderCDTextDataBinaryEnd',
               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
               \ '}')

call s:def_match('cdrtocHeaderLanguageEnd',
               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
               \ '}')

call s:def_match('cdrtocHeaderCDTextEnd',
               \ 'cdrtocTrack',
               \ '}')

syn cluster cdrtocTrackFollow
      \ contains=
      \   @cdrtocTrackFlags,
      \   cdrtocTrackCDText,
      \   cdrtocTrackPregap,
      \   @cdrtocTrackContents

call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK')

call s:def_keywords('cdrtocTrackMode',
                  \ 'cdrtocTrackSubChannelMode,@cdrtocTrackFollow',
                  \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
                  \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])

call s:def_keywords('cdrtocTrackSubChannelMode',
                  \ '@cdrtocTrackFollow',
                  \ ['RW', 'RW_RAW'])

syn cluster cdrtocTrackFlags
      \ contains=
      \   cdrtocTrackFlagNo,
      \   cdrtocTrackFlagCopy,
      \   cdrtocTrackFlagPreEmphasis,
      \   cdrtocTrackFlag

call s:def_keyword('cdrtocTrackFlagNo',
                 \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis',
                 \ 'NO')

call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY')

call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS')

call s:def_keywords('cdrtocTrackFlag',
                  \ '@cdrtocTrackFollow',
                  \ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO'])

call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC')

call s:def_match('cdrtocTrackISRC',
               \ '@cdrtocTrackFollow',
               \ '"[[:upper:][:digit:]]\{5}\d\{7}"')

call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT')

call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{')

call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE')

call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>')

call s:def_match('cdrtocTrackCDTextLanguageStart',
               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
               \ '{')

syn cluster cdrtocTrackCDTextData
      \ contains=
      \   cdrtocTrackCDTextDataString,
      \   cdrtocTrackCDTextDataBinaryStart

call s:def_keywords('cdrtocTrackCDTextItem',
                  \ '@cdrtocTrackCDTextData',
                  \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER',
                  \  'MESSAGE', 'ISRC'])

call s:def_region('cdrtocTrackCDTextDataString',
                \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
                \ '"',
                \ '\\\\\|\\"',
                \ '"',
                \ 'cdrtocTrackCDTextDataStringDelimiters',
                \ 'cdrtocTrackCDTextDataStringSpecialChar')

syn match   cdrtocTrackCDTextDataStringSpecialChar
      \ contained
      \ display
      \ '\\\%(\o\o\o\|["\\]\)'

call s:def_match('cdrtocTrackCDTextDataBinaryStart',
               \ 'cdrtocTrackCDTextDataBinaryInteger',
               \ '{')

call s:def_match('cdrtocTrackCDTextDataBinaryInteger',
               \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd',
               \ s:byte_pattern)

call s:def_match('cdrtocTrackCDTextDataBinarySeparator',
               \ 'cdrtocTrackCDTextDataBinaryInteger',
               \ ',')

call s:def_match('cdrtocTrackCDTextDataBinaryEnd',
               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
               \ '}')

call s:def_match('cdrtocTrackCDTextLanguageEnd',
               \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd',
               \ '}')

call s:def_match('cdrtocTrackCDTextEnd',
               \ 'cdrtocTrackPregap,@cdrtocTrackContents',
               \ '}')

call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP')

call s:def_match('cdrtocTrackPregapMMSSFF',
               \ '@cdrtocTrackContents',
               \ s:mmssff_pattern)

syn cluster cdrtocTrackContents
      \ contains=
      \   cdrtocTrackSubTrack,
      \   cdrtocTrackMarker

syn cluster cdrtocTrackContentsFollow
      \ contains=
      \   @cdrtocTrackContents,
      \   cdrtocTrackIndex,
      \   cdrtocTrack

call s:def_keywords('cdrtocTrackSubTrack',
                  \ 'cdrtocTrackSubTrackFileFilename',
                  \ ['FILE', 'AUDIOFILE'])

call s:def_region('cdrtocTrackSubTrackFileFilename',
                \ 'cdrtocTrackSubTrackFileStart',
                \ '"',
                \ '\\\\\|\\"',
                \ '"',
                \ 'cdrtocTrackSubTrackFileFilenameDelimiters',
                \ 'cdrtocTrackSubTrackFileFilenameSpecialChar')

syn match   cdrtocTrackSubTrackFileFilenameSpecialChar
      \ contained
      \ display
      \ '\\\%(\o\o\o\|["\\]\)'

call s:def_match('cdrtocTrackSubTrackFileStart',
               \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow',
               \ s:length_pattern)

call s:def_match('cdrtocTrackSubTrackFileLength',
               \ '@cdrtocTrackContentsFollow',
               \ s:length_pattern)

call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE')

call s:def_region('cdrtocTrackSubTrackDatafileFilename',
                \ 'cdrtocTrackSubTrackDatafileLength',
                \ '"',
                \ '\\\\\|\\"',
                \ '"',
                \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters',
                \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar')

syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
      \ contained
      \ display
      \ '\\\%(\o\o\o\|["\\]\)'

call s:def_match('cdrtocTrackDatafileLength',
               \ '@cdrtocTrackContentsFollow',
               \ s:length_pattern)

call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE')

call s:def_region('cdrtocTrackSubTrackFifoFilename',
                \ 'cdrtocTrackSubTrackFifoLength',
                \ '"',
                \ '\\\\\|\\"',
                \ '"',
                \ 'cdrtocTrackSubTrackFifoFilenameDelimiters',
                \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar')

syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
      \ contained
      \ display
      \ '\\\%(\o\o\o\|["\\]\)'

call s:def_match('cdrtocTrackFifoLength',
               \ '@cdrtocTrackContentsFollow',
               \ s:length_pattern)

call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE')

call s:def_match('cdrtocTrackSilenceLength',
               \ '@cdrtocTrackContentsFollow',
               \ s:length_pattern)

call s:def_keyword('cdrtocTrackSubTrack',
                 \ 'cdrtocTrackSubTrackZeroDataMode,' .
                 \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' .
                 \ 'cdrtocTrackSubTrackZeroDataLength',
                 \ 'ZERO')

call s:def_keywords('cdrtocTrackSubTrackZeroDataMode',
                  \ 'cdrtocTrackSubTrackZeroSubChannelMode,cdrtocTrackSubTrackZeroDataLength',
                  \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
                  \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])

call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode',
                  \ 'cdrtocTrackSubTrackZeroDataLength',
                  \ ['RW', 'RW_RAW'])

call s:def_match('cdrtocTrackSubTrackZeroDataLength',
               \ '@cdrtocTrackContentsFollow',
               \ s:length_pattern)

call s:def_keyword('cdrtocTrackMarker',
                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF',
                 \ 'START')

call s:def_match('cdrtocTrackMarkerStartMMSSFF',
               \ '@cdrtocTrackContentsFollow',
               \ s:mmssff_pattern)

call s:def_keyword('cdrtocTrackMarker',
                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF',
                 \ 'END')

call s:def_match('cdrtocTrackMarkerEndMMSSFF',
               \ '@cdrtocTrackContentsFollow',
               \ s:mmssff_pattern)

call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX')

call s:def_match('cdrtocTrackIndexMMSSFF',
               \ 'cdrtocTrackIndex,cdrtocTrack',
               \ s:mmssff_pattern)

delfunction s:def_region
delfunction s:def_match
delfunction s:def_keyword
delfunction s:def_keywords
delfunction s:def_comment

syn sync fromstart

hi def link cdrtocKeyword                                  Keyword
hi def link cdrtocHeaderKeyword                            cdrtocKeyword
hi def link cdrtocHeaderCDText                             cdrtocHeaderKeyword
hi def link cdrtocDelimiter                                Delimiter
hi def link cdrtocCDTextDataBinaryEnd                      cdrtocDelimiter
hi def link cdrtocHeaderCDTextDataBinaryEnd                cdrtocHeaderCDTextDataBinaryEnd
hi def link cdrtocNumber                                   Number
hi def link cdrtocCDTextDataBinaryInteger                  cdrtocNumber
hi def link cdrtocHeaderCDTextDataBinaryInteger            cdrtocCDTextDataBinaryInteger
hi def link cdrtocCDTextDataBinarySeparator                cdrtocDelimiter
hi def link cdrtocHeaderCDTextDataBinarySeparator          cdrtocCDTextDataBinarySeparator
hi def link cdrtocCDTextDataBinaryStart                    cdrtocDelimiter
hi def link cdrtocHeaderCDTextDataBinaryStart              cdrtocCDTextDataBinaryStart
hi def link cdrtocString                                   String
hi def link cdrtocCDTextDataString                         cdrtocString
hi def link cdrtocHeaderCDTextDataString                   cdrtocCDTextDataString
hi def link cdrtocCDTextDataStringDelimiters               cdrtocDelimiter
hi def link cdrtocHeaderCDTextDataStringDelimiters         cdrtocCDTextDataStringDelimiters
hi def link cdrtocCDTextDataStringSpecialChar              SpecialChar
hi def link cdrtocHeaderCDTextDataStringSpecialChar        cdrtocCDTextDataStringSpecialChar
hi def link cdrtocCDTextEnd                                cdrtocDelimiter
hi def link cdrtocHeaderCDTextEnd                          cdrtocCDTextEnd
hi def link cdrtocType                                     Type
hi def link cdrtocCDTextItem                               cdrtocType
hi def link cdrtocHeaderCDTextItem                         cdrtocCDTextItem
hi def link cdrtocHeaderCDTextLanguageMap                  cdrtocHeaderKeyword
hi def link cdrtocCDTextStart                              cdrtocDelimiter
hi def link cdrtocHeaderCDTextStart                        cdrtocCDTextStart
hi def link cdrtocHeaderCatalog                            cdrtocHeaderKeyword
hi def link cdrtocHeaderCatalogNumber                      cdrtocString
hi def link cdrtocComment                                  Comment
hi def link cdrtocHeaderCommentInitial                     cdrtocComment
hi def link cdrtocHeaderLanguage                           cdrtocKeyword
hi def link cdrtocLanguageEnd                              cdrtocDelimiter
hi def link cdrtocHeaderLanguageEnd                        cdrtocLanguageEnd
hi def link cdrtocHeaderLanguageMapColon                   cdrtocDelimiter
hi def link cdrtocIdentifier                               Identifier
hi def link cdrtocHeaderLanguageMapCountryCode             cdrtocNumber
hi def link cdrtocHeaderLanguageMapCountryCodeName         cdrtocIdentifier
hi def link cdrtocHeaderLanguageMapEnd                     cdrtocDelimiter
hi def link cdrtocHeaderLanguageMapLanguageNumber          cdrtocNumber
hi def link cdrtocHeaderLanguageMapStart                   cdrtocDelimiter
hi def link cdrtocLanguageNumber                           cdrtocNumber
hi def link cdrtocHeaderLanguageNumber                     cdrtocLanguageNumber
hi def link cdrtocLanguageStart                            cdrtocDelimiter
hi def link cdrtocHeaderLanguageStart                      cdrtocLanguageStart
hi def link cdrtocHeaderTOCType                            cdrtocType
hi def link cdrtocTodo                                     Todo
hi def link cdrtocTrackKeyword                             cdrtocKeyword
hi def link cdrtocTrack                                    cdrtocTrackKeyword
hi def link cdrtocTrackCDText                              cdrtocTrackKeyword
hi def link cdrtocTrackCDTextDataBinaryEnd                 cdrtocHeaderCDTextDataBinaryEnd
hi def link cdrtocTrackCDTextDataBinaryInteger             cdrtocHeaderCDTextDataBinaryInteger
hi def link cdrtocTrackCDTextDataBinarySeparator           cdrtocHeaderCDTextDataBinarySeparator
hi def link cdrtocTrackCDTextDataBinaryStart               cdrtocHeaderCDTextDataBinaryStart
hi def link cdrtocTrackCDTextDataString                    cdrtocHeaderCDTextDataString
hi def link cdrtocTrackCDTextDataStringDelimiters          cdrtocCDTextDataStringDelimiters
hi def link cdrtocTrackCDTextDataStringSpecialChar         cdrtocCDTextDataStringSpecialChar
hi def link cdrtocTrackCDTextEnd                           cdrtocCDTextEnd
hi def link cdrtocTrackCDTextItem                          cdrtocCDTextItem
hi def link cdrtocTrackCDTextStart                         cdrtocCDTextStart
hi def link cdrtocLength                                   cdrtocNumber
hi def link cdrtocTrackDatafileLength                      cdrtocLength
hi def link cdrtocTrackFifoLength                          cdrtocLength
hi def link cdrtocPreProc                                  PreProc
hi def link cdrtocTrackFlag                                cdrtocPreProc
hi def link cdrtocTrackFlagCopy                            cdrtocTrackFlag
hi def link cdrtocSpecial                                  Special
hi def link cdrtocTrackFlagNo                              cdrtocSpecial
hi def link cdrtocTrackFlagPreEmphasis                     cdrtocTrackFlag
hi def link cdrtocTrackISRC                                cdrtocTrackFlag
hi def link cdrtocTrackIndex                               cdrtocTrackKeyword
hi def link cdrtocMMSSFF                                   cdrtocLength
hi def link cdrtocTrackIndexMMSSFF                         cdrtocMMSSFF
hi def link cdrtocTrackCDTextLanguage                      cdrtocTrackKeyword
hi def link cdrtocTrackCDTextLanguageEnd                   cdrtocLanguageEnd
hi def link cdrtocTrackCDTextLanguageNumber                cdrtocLanguageNumber
hi def link cdrtocTrackCDTextLanguageStart                 cdrtocLanguageStart
hi def link cdrtocTrackContents                            StorageClass
hi def link cdrtocTrackMarker                              cdrtocTrackContents
hi def link cdrtocTrackMarkerEndMMSSFF                     cdrtocMMSSFF
hi def link cdrtocTrackMarkerStartMMSSFF                   cdrtocMMSSFF
hi def link cdrtocTrackMode                                Type
hi def link cdrtocTrackPregap                              cdrtocTrackContents
hi def link cdrtocTrackPregapMMSSFF                        cdrtocMMSSFF
hi def link cdrtocTrackSilenceLength                       cdrtocLength
hi def link cdrtocTrackSubChannelMode                      cdrtocPreProc
hi def link cdrtocTrackSubTrack                            cdrtocTrackContents
hi def link cdrtocFilename                                 cdrtocString
hi def link cdrtocTrackSubTrackDatafileFilename            cdrtocFilename
hi def link cdrtocTrackSubTrackDatafileFilenameDelimiters  cdrtocTrackSubTrackDatafileFilename
hi def link cdrtocSpecialChar                              SpecialChar
hi def link cdrtocTrackSubTrackDatafileFilenameSpecialChar cdrtocSpecialChar
hi def link cdrtocTrackSubTrackDatafileLength              cdrtocLength
hi def link cdrtocTrackSubTrackFifoFilename                cdrtocFilename
hi def link cdrtocTrackSubTrackFifoFilenameDelimiters      cdrtocTrackSubTrackFifoFilename
hi def link cdrtocTrackSubTrackFifoFilenameSpecialChar     cdrtocSpecialChar
hi def link cdrtocTrackSubTrackFifoLength                  cdrtocLength
hi def link cdrtocTrackSubTrackFileFilename                cdrtocFilename
hi def link cdrtocTrackSubTrackFileFilenameDelimiters      cdrtocTrackSubTrackFileFilename
hi def link cdrtocTrackSubTrackFileFilenameSpecialChar     cdrtocSpecialChar
hi def link cdrtocTrackSubTrackFileLength                  cdrtocLength
hi def link cdrtocTrackSubTrackFileStart                   cdrtocLength
hi def link cdrtocTrackSubTrackZeroDataLength              cdrtocLength
hi def link cdrtocTrackSubTrackZeroDataMode                Type
hi def link cdrtocTrackSubTrackZeroDataSubChannelMode      cdrtocPreProc
hi def link cdrtocTrackSubTrackdatafileFilenameSpecialChar cdrtocSpecialChar

let b:current_syntax = "cdrtoc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z{t#;;vim80/syntax/csh.vimnu�[���" Vim syntax file
" Language:	C-shell (csh)
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	13
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" clusters:
syn cluster cshQuoteList	contains=cshDblQuote,cshSnglQuote,cshBckQuote
syn cluster cshVarList	contains=cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst

" Variables which affect the csh itself
syn match cshSetVariables	contained "argv\|histchars\|ignoreeof\|noglob\|prompt\|status"
syn match cshSetVariables	contained "cdpath\|history\|mail\|nonomatch\|savehist\|time"
syn match cshSetVariables	contained "cwd\|home\|noclobber\|path\|shell\|verbose"
syn match cshSetVariables	contained "echo"

syn case ignore
syn keyword cshTodo	contained todo
syn case match

" Variable Name Expansion Modifiers
syn match cshModifier	contained ":\(h\|t\|r\|q\|x\|gh\|gt\|gr\)"

" Strings and Comments
syn match   cshNoEndlineDQ	contained "[^\"]\(\\\\\)*$"
syn match   cshNoEndlineSQ	contained "[^\']\(\\\\\)*$"
syn match   cshNoEndlineBQ	contained "[^\`]\(\\\\\)*$"

syn region  cshDblQuote	start=+[^\\]"+lc=1 skip=+\\\\\|\\"+ end=+"+	contains=cshSpecial,cshShellVariables,cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst,cshNoEndlineDQ,cshBckQuote,@Spell
syn region  cshSnglQuote	start=+[^\\]'+lc=1 skip=+\\\\\|\\'+ end=+'+	contains=cshNoEndlineSQ,@Spell
syn region  cshBckQuote	start=+[^\\]`+lc=1 skip=+\\\\\|\\`+ end=+`+	contains=cshNoEndlineBQ,@Spell
syn region  cshDblQuote	start=+^"+ skip=+\\\\\|\\"+ end=+"+		contains=cshSpecial,cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst,cshNoEndlineDQ,@Spell
syn region  cshSnglQuote	start=+^'+ skip=+\\\\\|\\'+ end=+'+		contains=cshNoEndlineSQ,@Spell
syn region  cshBckQuote	start=+^`+ skip=+\\\\\|\\`+ end=+`+		contains=cshNoEndlineBQ,@Spell
syn cluster cshCommentGroup	contains=cshTodo,@Spell
syn match   cshComment	"#.*$" contains=@cshCommentGroup

" A bunch of useful csh keywords
syn keyword cshStatement	alias	end	history	onintr	setenv	unalias
syn keyword cshStatement	cd	eval	kill	popd	shift	unhash
syn keyword cshStatement	chdir	exec	login	pushd	source
syn keyword cshStatement	continue	exit	logout	rehash	time	unsetenv
syn keyword cshStatement	dirs	glob	nice	repeat	umask	wait
syn keyword cshStatement	echo	goto	nohup

syn keyword cshConditional	break	case	else	endsw	switch
syn keyword cshConditional	breaksw	default	endif
syn keyword cshRepeat	foreach

" Special environment variables
syn keyword cshShellVariables	HOME	LOGNAME	PATH	TERM	USER

" Modifiable Variables without {}
syn match cshExtVar	"\$[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="		contains=cshModifier
syn match cshSelector	"\$[a-zA-Z_][a-zA-Z0-9_]*\[[a-zA-Z_]\+\]\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="	contains=cshModifier
syn match cshQtyWord	"\$#[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="		contains=cshModifier
syn match cshArgv		"\$\d\+\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="			contains=cshModifier
syn match cshArgv		"\$\*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="			contains=cshModifier

" Modifiable Variables with {}
syn match cshExtVar	"\${[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"		contains=cshModifier
syn match cshSelector	"\${[a-zA-Z_][a-zA-Z0-9_]*\[[a-zA-Z_]\+\]\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"	contains=cshModifier
syn match cshQtyWord	"\${#[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"		contains=cshModifier
syn match cshArgv		"\${\d\+\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"			contains=cshModifier

" UnModifiable Substitutions
syn match cshSubstError	"\$?[a-zA-Z_][a-zA-Z0-9_]*:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)"
syn match cshSubstError	"\${?[a-zA-Z_][a-zA-Z0-9_]*:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)}"
syn match cshSubstError	"\$?[0$<]:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)"
syn match cshSubst	"\$?[a-zA-Z_][a-zA-Z0-9_]*"
syn match cshSubst	"\${?[a-zA-Z_][a-zA-Z0-9_]*}"
syn match cshSubst	"\$?[0$<]"

" I/O redirection
syn match cshRedir	">>&!\|>&!\|>>&\|>>!\|>&\|>!\|>>\|<<\|>\|<"

" Handle set expressions
syn region  cshSetExpr	matchgroup=cshSetStmt start="\<set\>\|\<unset\>" end="$\|;" contains=cshComment,cshSetStmt,cshSetVariables,@cshQuoteList

" Operators and Expression-Using constructs
"syn match   cshOperator	contained "&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|\|%\|&\|+\|-\|/\|<\|>\||"
syn match   cshOperator	contained "&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|%\|&\|+\|-\|/\|<\|>\||"
syn match   cshOperator	contained "[(){}]"
syn region  cshTest	matchgroup=cshStatement start="\<if\>\|\<while\>" skip="\\$" matchgroup=cshStatement end="\<then\>\|$" contains=cshComment,cshOperator,@cshQuoteList,@cshVarLIst

" Highlight special characters (those which have a backslash) differently
syn match cshSpecial	contained "\\\d\d\d\|\\[abcfnrtv\\]"
syn match cshNumber	"-\=\<\d\+\>"

" All other identifiers
"syn match cshIdentifier	"\<[a-zA-Z._][a-zA-Z0-9._]*\>"

" Shell Input Redirection (Here Documents)
syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**\z(\h\w*\)\**" matchgroup=cshRedir end="^\z1$"

" Define the default highlighting.
if !exists("skip_csh_syntax_inits")

  hi def link cshArgv		cshVariables
  hi def link cshBckQuote	cshCommand
  hi def link cshDblQuote	cshString
  hi def link cshExtVar	cshVariables
  hi def link cshHereDoc	cshString
  hi def link cshNoEndlineBQ	cshNoEndline
  hi def link cshNoEndlineDQ	cshNoEndline
  hi def link cshNoEndlineSQ	cshNoEndline
  hi def link cshQtyWord	cshVariables
  hi def link cshRedir		cshOperator
  hi def link cshSelector	cshVariables
  hi def link cshSetStmt	cshStatement
  hi def link cshSetVariables	cshVariables
  hi def link cshSnglQuote	cshString
  hi def link cshSubst		cshVariables

  hi def link cshCommand	Statement
  hi def link cshComment	Comment
  hi def link cshConditional	Conditional
  hi def link cshIdentifier	Error
  hi def link cshModifier	Special
  hi def link cshNoEndline	Error
  hi def link cshNumber	Number
  hi def link cshOperator	Operator
  hi def link cshRedir		Statement
  hi def link cshRepeat	Repeat
  hi def link cshShellVariables	Special
  hi def link cshSpecial	Special
  hi def link cshStatement	Statement
  hi def link cshString	String
  hi def link cshSubstError	Error
  hi def link cshTodo		Todo
  hi def link cshVariables	Type

endif

let b:current_syntax = "csh"

" vim: ts=18
PK�j�Z��_��vim80/syntax/msmessages.vimnu�[���" Vim syntax file
" Language:	MS Message Text files (*.mc)
" Maintainer:	Kevin Locke <kwl7@cornell.edu>
" Last Change:	2008 April 09
" Location:	http://kevinlocke.name/programs/vim/syntax/msmessages.vim

" See format description at <http://msdn2.microsoft.com/en-us/library/aa385646.aspx>
" This file is based on the rc.vim and c.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Common MS Messages keywords
syn case ignore
syn keyword msmessagesIdentifier MessageIdTypedef
syn keyword msmessagesIdentifier SeverityNames
syn keyword msmessagesIdentifier FacilityNames
syn keyword msmessagesIdentifier LanguageNames
syn keyword msmessagesIdentifier OutputBase

syn keyword msmessagesIdentifier MessageId
syn keyword msmessagesIdentifier Severity
syn keyword msmessagesIdentifier Facility
syn keyword msmessagesIdentifier OutputBase

syn match msmessagesIdentifier /\<SymbolicName\>/ nextgroup=msmessagesIdentEq skipwhite
syn match msmessagesIdentEq transparent /=/ nextgroup=msmessagesIdentDef skipwhite contained
syn match msmessagesIdentDef display /\w\+/ contained
" Note:  The Language keyword is highlighted as part of an msmessagesLangEntry

" Set value
syn case match
syn region msmessagesSet	start="(" end=")" transparent fold contains=msmessagesName keepend
syn match msmessagesName /\w\+/ nextgroup=msmessagesSetEquals skipwhite contained
syn match msmessagesSetEquals /=/ display transparent nextgroup=msmessagesNumVal skipwhite contained
syn match msmessagesNumVal	display transparent "\<\d\|\.\d" contains=msmessagesNumber,msmessagesFloat,msmessagesOctalError,msmessagesOctal nextgroup=msmessagesValSep
syn match msmessagesValSep /:/ display nextgroup=msmessagesNameDef contained
syn match msmessagesNameDef /\w\+/ display contained


" Comments are converted to C source (by removing leading ;)
" So we highlight the comments as C
syn include @msmessagesC syntax/c.vim
unlet b:current_syntax
syn region msmessagesCComment matchgroup=msmessagesComment start=/;/ end=/$/ contains=@msmessagesC keepend

" String and Character constants
" Highlight special characters (those which have a escape) differently
syn case ignore
syn region msmessagesLangEntry start=/\<Language\>\s*=\s*\S\+\s*$/hs=e+1 end=/^\./ contains=msmessagesFormat,msmessagesLangEntryEnd,msmessagesLanguage keepend
syn match msmessagesLanguage /\<Language\(\s*=\)\@=/ contained
syn match msmessagesLangEntryEnd display /^\./ contained
syn case match
syn match msmessagesFormat display	/%[1-9]\d\?\(![-+0 #]*\d*\(\.\d\+\)\?\(h\|l\|ll\|I\|I32\|I64\)\?[aAcCdeEfgGinopsSuxX]!\)\?/ contained
syn match msmessagesFormat display	/%[0.%\\br]/ contained
syn match msmessagesFormat display	/%!\(\s\)\@=/ contained

" Integer number, or floating point number without a dot and with "f".
" Copied from c.vim
syn case ignore
"(long) integer
syn match msmessagesNumber	display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match msmessagesNumber	display contained "\<0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match msmessagesOctal	display contained "\<0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=msmessagesOctalZero
syn match msmessagesOctalZero	display contained "\<0"
" flag an octal number with wrong digits
syn match msmessagesOctalError	display contained "\<0\o*[89]\d*"
syn match msmessagesFloat	display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match msmessagesFloat	display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match msmessagesFloat	display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match msmessagesFloat	display contained "\d\+e[-+]\=\d\+[fl]\=\>"
"hexadecimal floating point number, optional leading digits, with dot, with exponent
syn match msmessagesFloat	display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>"
"hexadecimal floating point number, with leading digits, optional dot, with exponent
syn match msmessagesFloat	display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>"

" Types (used in MessageIdTypedef statement)
syn case match
syn keyword msmessagesType	int long short char
syn keyword msmessagesType	signed unsigned
syn keyword msmessagesType	size_t ssize_t sig_atomic_t
syn keyword msmessagesType	int8_t int16_t int32_t int64_t
syn keyword msmessagesType	uint8_t uint16_t uint32_t uint64_t
syn keyword msmessagesType	int_least8_t int_least16_t int_least32_t int_least64_t
syn keyword msmessagesType	uint_least8_t uint_least16_t uint_least32_t uint_least64_t
syn keyword msmessagesType	int_fast8_t int_fast16_t int_fast32_t int_fast64_t
syn keyword msmessagesType	uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t
syn keyword msmessagesType	intptr_t uintptr_t
syn keyword msmessagesType	intmax_t uintmax_t
" Add some Windows datatypes that will be common in msmessages files
syn keyword msmessagesType	BYTE CHAR SHORT SIZE_T SSIZE_T TBYTE TCHAR UCHAR USHORT
syn keyword msmessagesType	DWORD DWORDLONG DWORD32 DWORD64
syn keyword msmessagesType	INT INT32 INT64 UINT UINT32 UINT64
syn keyword msmessagesType	LONG LONGLONG LONG32 LONG64
syn keyword msmessagesType	ULONG ULONGLONG ULONG32 ULONG64

" Sync to language entries, since they should be most common
syn sync match msmessagesLangSync grouphere msmessagesLangEntry "\<Language\s*="
syn sync match msmessagesLangEndSync grouphere NONE "^\."

" Define the default highlighting.
hi def link msmessagesNumber		Number
hi def link msmessagesOctal		Number
hi def link msmessagesFloat		Float
hi def link msmessagesOctalError	msmessagesError
hi def link msmessagesSetError		msmessagesError
hi def link msmessagesError		Error
hi def link msmessagesLangEntry		String
hi def link msmessagesLangEntryEnd	Special
hi def link msmessagesComment		Comment
hi def link msmessagesFormat		msmessagesSpecial
hi def link msmessagesSpecial		SpecialChar

hi def link msmessagesType		Type
hi def link msmessagesIdentifier	Identifier
hi def link msmessagesLanguage		msmessagesIdentifier
hi def link msmessagesName		msmessagesIdentifier
hi def link msmessagesNameDef		Macro
hi def link msmessagesIdentDef		Macro
hi def link msmessagesValSep		Special
hi def link msmessagesNameErr		Error

let b:current_syntax = "msmessages"

" vim: ts=8
PK�j�Z�J5��vim80/syntax/bindzone.vimnu�[���" Vim syntax file
" Language:     BIND zone files (RFC 1035)
" Maintainer:   Julian Mehnle <julian@mehnle.net>
" URL:          http://www.mehnle.net/source/odds+ends/vim/syntax/
" Last Change:  Thu 2011-07-16 20:42:00 UTC
" 
" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with
" heavy modifications.
" 
" $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" Directives
syn region      zoneRRecord     start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown

syn match       zoneDirective   /^\$ORIGIN\s\+/   nextgroup=zoneOrigin,zoneUnknown
syn match       zoneDirective   /^\$TTL\s\+/      nextgroup=zoneTTL,zoneUnknown
syn match       zoneDirective   /^\$INCLUDE\s\+/  nextgroup=zoneText,zoneUnknown
syn match       zoneDirective   /^\$GENERATE\s/

syn match       zoneUnknown     contained /\S\+/

syn match       zoneOwnerName   contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite
syn match       zoneOrigin      contained  /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
syn match       zoneDomain      contained  /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/

syn match       zoneSpecial     contained /^[@*.]\s/
syn match       zoneTTL         contained /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite
syn keyword     zoneClass       contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
syn keyword     zoneRRType      contained A AAAA CNAME DNAME HINFO MX NS PTR SOA SRV TXT SPF nextgroup=zoneRData skipwhite
syn match       zoneRData       contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown

syn match       zoneIPAddr      contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/

"   Plain IPv6 address          IPv6-embedded-IPv4 address
"   1111:2:3:4:5:6:7:8          1111:2:3:4:5:6:127.0.0.1
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
"   ::[...:]8                   ::[...:]127.0.0.1
syn match       zoneIP6Addr     contained /\s\@<=::\(\(\x\{1,4}:\)\{,6}\x\{1,4}\|\(\x\{1,4}:\)\{,5}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
"   1111::[...:]8               1111::[...:]127.0.0.1
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{1}:\(\(\x\{1,4}:\)\{,5}\x\{1,4}\|\(\x\{1,4}:\)\{,4}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
"   1111:2::[...:]8             1111:2::[...:]127.0.0.1
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{2}:\(\(\x\{1,4}:\)\{,4}\x\{1,4}\|\(\x\{1,4}:\)\{,3}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
"   1111:2:3::[...:]8           1111:2:3::[...:]127.0.0.1
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{3}:\(\(\x\{1,4}:\)\{,3}\x\{1,4}\|\(\x\{1,4}:\)\{,2}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
"   1111:2:3:4::[...:]8         1111:2:3:4::[...:]127.0.0.1
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{4}:\(\(\x\{1,4}:\)\{,2}\x\{1,4}\|\(\x\{1,4}:\)\{,1}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
"   1111:2:3:4:5::[...:]8       1111:2:3:4:5::127.0.0.1
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{5}:\(\(\x\{1,4}:\)\{,1}\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
"   1111:2:3:4:5:6::8           -
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/
"   1111[:...]::                -
syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/

syn match       zoneText        contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/
syn match       zoneNumber      contained /\<[0-9]\+\(\s\|;\|$\)\@=/
syn match       zoneSerial      contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/

syn match       zoneErrParen    /)/
syn region      zoneParen       contained start="(" end=")" contains=zoneSerial,zoneTTL,zoneNumber,zoneComment
syn match       zoneComment     /;.*/

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link zoneDirective    Macro

hi def link zoneUnknown      Error

hi def link zoneOrigin       Statement
hi def link zoneOwnerName    Statement
hi def link zoneDomain       Identifier

hi def link zoneSpecial      Special
hi def link zoneTTL          Constant
hi def link zoneClass        Include
hi def link zoneRRType       Type

hi def link zoneIPAddr       Number
hi def link zoneIP6Addr      Number
hi def link zoneText         String
hi def link zoneNumber       Number
hi def link zoneSerial       Special

hi def link zoneErrParen     Error
hi def link zoneComment      Comment


let b:current_syntax = "bindzone"

" vim:sts=2 sw=2
PK�j�Z��\cAjAjvim80/syntax/pfmain.vimnu�[���" Vim syntax file
" Language:	Postfix main.cf configuration
" Maintainer:	KELEMEN Peter <Peter dot Kelemen at cern dot ch>
" Last Updates:	Anton Shestakov, Hong Xu
" Last Change:	2015 Feb 10
" Version:	0.40
" URL:		http://cern.ch/fuji/vim/syntax/pfmain.vim
" Comment:	Based on Postfix 2.12/3.0 postconf.5.html.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

setlocal iskeyword=@,48-57,_,-

syntax case match
syntax sync minlines=1

syntax keyword pfmainConf 2bounce_notice_recipient
syntax keyword pfmainConf access_map_defer_code
syntax keyword pfmainConf access_map_reject_code
syntax keyword pfmainConf address_verify_cache_cleanup_interval
syntax keyword pfmainConf address_verify_default_transport
syntax keyword pfmainConf address_verify_local_transport
syntax keyword pfmainConf address_verify_map
syntax keyword pfmainConf address_verify_negative_cache
syntax keyword pfmainConf address_verify_negative_expire_time
syntax keyword pfmainConf address_verify_negative_refresh_time
syntax keyword pfmainConf address_verify_poll_count
syntax keyword pfmainConf address_verify_poll_delay
syntax keyword pfmainConf address_verify_positive_expire_time
syntax keyword pfmainConf address_verify_positive_refresh_time
syntax keyword pfmainConf address_verify_relay_transport
syntax keyword pfmainConf address_verify_relayhost
syntax keyword pfmainConf address_verify_sender
syntax keyword pfmainConf address_verify_sender_dependent_default_transport_maps
syntax keyword pfmainConf address_verify_sender_dependent_relayhost_maps
syntax keyword pfmainConf address_verify_sender_ttl
syntax keyword pfmainConf address_verify_service_name
syntax keyword pfmainConf address_verify_transport_maps
syntax keyword pfmainConf address_verify_virtual_transport
syntax keyword pfmainConf alias_database
syntax keyword pfmainConf alias_maps
syntax keyword pfmainConf allow_mail_to_commands
syntax keyword pfmainConf allow_mail_to_files
syntax keyword pfmainConf allow_min_user
syntax keyword pfmainConf allow_percent_hack
syntax keyword pfmainConf allow_untrusted_routing
syntax keyword pfmainConf alternate_config_directories
syntax keyword pfmainConf always_add_missing_headers
syntax keyword pfmainConf always_bcc
syntax keyword pfmainConf anvil_rate_time_unit
syntax keyword pfmainConf anvil_status_update_time
syntax keyword pfmainConf append_at_myorigin
syntax keyword pfmainConf append_dot_mydomain
syntax keyword pfmainConf application_event_drain_time
syntax keyword pfmainConf authorized_flush_users
syntax keyword pfmainConf authorized_mailq_users
syntax keyword pfmainConf authorized_submit_users
syntax keyword pfmainConf authorized_verp_clients
syntax keyword pfmainConf backwards_bounce_logfile_compatibility
syntax keyword pfmainConf berkeley_db_create_buffer_size
syntax keyword pfmainConf berkeley_db_read_buffer_size
syntax keyword pfmainConf best_mx_transport
syntax keyword pfmainConf biff
syntax keyword pfmainConf body_checks
syntax keyword pfmainConf body_checks_size_limit
syntax keyword pfmainConf bounce_notice_recipient
syntax keyword pfmainConf bounce_queue_lifetime
syntax keyword pfmainConf bounce_service_name
syntax keyword pfmainConf bounce_size_limit
syntax keyword pfmainConf bounce_template_file
syntax keyword pfmainConf broken_sasl_auth_clients
syntax keyword pfmainConf canonical_classes
syntax keyword pfmainConf canonical_maps
syntax keyword pfmainConf cleanup_service_name
syntax keyword pfmainConf command_directory
syntax keyword pfmainConf command_execution_directory
syntax keyword pfmainConf command_expansion_filter
syntax keyword pfmainConf command_time_limit
syntax keyword pfmainConf compatibility_level
syntax keyword pfmainConf config_directory
syntax keyword pfmainConf confirm_delay_cleared
syntax keyword pfmainConf connection_cache_protocol_timeout
syntax keyword pfmainConf connection_cache_service_name
syntax keyword pfmainConf connection_cache_status_update_time
syntax keyword pfmainConf connection_cache_ttl_limit
syntax keyword pfmainConf content_filter
syntax keyword pfmainConf cyrus_sasl_config_path
syntax keyword pfmainConf daemon_directory
syntax keyword pfmainConf daemon_table_open_error_is_fatal
syntax keyword pfmainConf daemon_timeout
syntax keyword pfmainConf data_directory
syntax keyword pfmainConf debug_peer_level
syntax keyword pfmainConf debug_peer_list
syntax keyword pfmainConf debugger_command
syntax keyword pfmainConf default_database_type
syntax keyword pfmainConf default_delivery_slot_cost
syntax keyword pfmainConf default_delivery_slot_discount
syntax keyword pfmainConf default_delivery_slot_loan
syntax keyword pfmainConf default_delivery_status_filter
syntax keyword pfmainConf default_destination_concurrency_failed_cohort_limit
syntax keyword pfmainConf default_destination_concurrency_limit
syntax keyword pfmainConf default_destination_concurrency_negative_feedback
syntax keyword pfmainConf default_destination_concurrency_positive_feedback
syntax keyword pfmainConf default_destination_rate_delay
syntax keyword pfmainConf default_destination_recipient_limit
syntax keyword pfmainConf default_extra_recipient_limit
syntax keyword pfmainConf default_filter_nexthop
syntax keyword pfmainConf default_minimum_delivery_slots
syntax keyword pfmainConf default_privs
syntax keyword pfmainConf default_process_limit
syntax keyword pfmainConf default_rbl_reply
syntax keyword pfmainConf default_recipient_limit
syntax keyword pfmainConf default_recipient_refill_delay
syntax keyword pfmainConf default_recipient_refill_limit
syntax keyword pfmainConf default_transport
syntax keyword pfmainConf default_verp_delimiters
syntax keyword pfmainConf defer_code
syntax keyword pfmainConf defer_service_name
syntax keyword pfmainConf defer_transports
syntax keyword pfmainConf delay_logging_resolution_limit
syntax keyword pfmainConf delay_notice_recipient
syntax keyword pfmainConf delay_warning_time
syntax keyword pfmainConf deliver_lock_attempts
syntax keyword pfmainConf deliver_lock_delay
syntax keyword pfmainConf destination_concurrency_feedback_debug
syntax keyword pfmainConf detect_8bit_encoding_header
syntax keyword pfmainConf disable_dns_lookups
syntax keyword pfmainConf disable_mime_input_processing
syntax keyword pfmainConf disable_mime_output_conversion
syntax keyword pfmainConf disable_verp_bounces
syntax keyword pfmainConf disable_vrfy_command
syntax keyword pfmainConf dnsblog_reply_delay
syntax keyword pfmainConf dnsblog_service_name
syntax keyword pfmainConf dont_remove
syntax keyword pfmainConf double_bounce_sender
syntax keyword pfmainConf duplicate_filter_limit
syntax keyword pfmainConf empty_address_default_transport_maps_lookup_key
syntax keyword pfmainConf empty_address_recipient
syntax keyword pfmainConf empty_address_relayhost_maps_lookup_key
syntax keyword pfmainConf enable_errors_to
syntax keyword pfmainConf enable_long_queue_ids
syntax keyword pfmainConf enable_original_recipient
syntax keyword pfmainConf error_notice_recipient
syntax keyword pfmainConf error_service_name
syntax keyword pfmainConf execution_directory_expansion_filter
syntax keyword pfmainConf expand_owner_alias
syntax keyword pfmainConf export_environment
syntax keyword pfmainConf extract_recipient_limit
syntax keyword pfmainConf fallback_relay
syntax keyword pfmainConf fallback_transport
syntax keyword pfmainConf fallback_transport_maps
syntax keyword pfmainConf fast_flush_domains
syntax keyword pfmainConf fast_flush_purge_time
syntax keyword pfmainConf fast_flush_refresh_time
syntax keyword pfmainConf fault_injection_code
syntax keyword pfmainConf flush_service_name
syntax keyword pfmainConf fork_attempts
syntax keyword pfmainConf fork_delay
syntax keyword pfmainConf forward_expansion_filter
syntax keyword pfmainConf forward_path
syntax keyword pfmainConf frozen_delivered_to
syntax keyword pfmainConf hash_queue_depth
syntax keyword pfmainConf hash_queue_names
syntax keyword pfmainConf header_address_token_limit
syntax keyword pfmainConf header_checks
syntax keyword pfmainConf header_size_limit
syntax keyword pfmainConf helpful_warnings
syntax keyword pfmainConf home_mailbox
syntax keyword pfmainConf hopcount_limit
syntax keyword pfmainConf html_directory
syntax keyword pfmainConf ignore_mx_lookup_error
syntax keyword pfmainConf import_environment
syntax keyword pfmainConf in_flow_delay
syntax keyword pfmainConf inet_interfaces
syntax keyword pfmainConf inet_protocols
syntax keyword pfmainConf initial_destination_concurrency
syntax keyword pfmainConf internal_mail_filter_classes
syntax keyword pfmainConf invalid_hostname_reject_code
syntax keyword pfmainConf ipc_idle
syntax keyword pfmainConf ipc_timeout
syntax keyword pfmainConf ipc_ttl
syntax keyword pfmainConf line_length_limit
syntax keyword pfmainConf lmdb_map_size
syntax keyword pfmainConf lmtp_address_preference
syntax keyword pfmainConf lmtp_address_verify_target
syntax keyword pfmainConf lmtp_assume_final
syntax keyword pfmainConf lmtp_bind_address
syntax keyword pfmainConf lmtp_bind_address6
syntax keyword pfmainConf lmtp_body_checks
syntax keyword pfmainConf lmtp_cache_connection
syntax keyword pfmainConf lmtp_cname_overrides_servername
syntax keyword pfmainConf lmtp_connect_timeout
syntax keyword pfmainConf lmtp_connection_cache_destinations
syntax keyword pfmainConf lmtp_connection_cache_on_demand
syntax keyword pfmainConf lmtp_connection_cache_time_limit
syntax keyword pfmainConf lmtp_connection_reuse_count_limit
syntax keyword pfmainConf lmtp_connection_reuse_time_limit
syntax keyword pfmainConf lmtp_data_done_timeout
syntax keyword pfmainConf lmtp_data_init_timeout
syntax keyword pfmainConf lmtp_data_xfer_timeout
syntax keyword pfmainConf lmtp_defer_if_no_mx_address_found
syntax keyword pfmainConf lmtp_delivery_status_filter
syntax keyword pfmainConf lmtp_destination_concurrency_limit
syntax keyword pfmainConf lmtp_destination_recipient_limit
syntax keyword pfmainConf lmtp_discard_lhlo_keyword_address_maps
syntax keyword pfmainConf lmtp_discard_lhlo_keywords
syntax keyword pfmainConf lmtp_dns_reply_filter
syntax keyword pfmainConf lmtp_dns_resolver_options
syntax keyword pfmainConf lmtp_dns_support_level
syntax keyword pfmainConf lmtp_enforce_tls
syntax keyword pfmainConf lmtp_generic_maps
syntax keyword pfmainConf lmtp_header_checks
syntax keyword pfmainConf lmtp_host_lookup
syntax keyword pfmainConf lmtp_lhlo_name
syntax keyword pfmainConf lmtp_lhlo_timeout
syntax keyword pfmainConf lmtp_line_length_limit
syntax keyword pfmainConf lmtp_mail_timeout
syntax keyword pfmainConf lmtp_mime_header_checks
syntax keyword pfmainConf lmtp_mx_address_limit
syntax keyword pfmainConf lmtp_mx_session_limit
syntax keyword pfmainConf lmtp_nested_header_checks
syntax keyword pfmainConf lmtp_per_record_deadline
syntax keyword pfmainConf lmtp_pix_workaround_delay_time
syntax keyword pfmainConf lmtp_pix_workaround_maps
syntax keyword pfmainConf lmtp_pix_workaround_threshold_time
syntax keyword pfmainConf lmtp_pix_workarounds
syntax keyword pfmainConf lmtp_quit_timeout
syntax keyword pfmainConf lmtp_quote_rfc821_envelope
syntax keyword pfmainConf lmtp_randomize_addresses
syntax keyword pfmainConf lmtp_rcpt_timeout
syntax keyword pfmainConf lmtp_reply_filter
syntax keyword pfmainConf lmtp_rset_timeout
syntax keyword pfmainConf lmtp_sasl_auth_cache_name
syntax keyword pfmainConf lmtp_sasl_auth_cache_time
syntax keyword pfmainConf lmtp_sasl_auth_enable
syntax keyword pfmainConf lmtp_sasl_auth_soft_bounce
syntax keyword pfmainConf lmtp_sasl_mechanism_filter
syntax keyword pfmainConf lmtp_sasl_password_maps
syntax keyword pfmainConf lmtp_sasl_path
syntax keyword pfmainConf lmtp_sasl_security_options
syntax keyword pfmainConf lmtp_sasl_tls_security_options
syntax keyword pfmainConf lmtp_sasl_tls_verified_security_options
syntax keyword pfmainConf lmtp_sasl_type
syntax keyword pfmainConf lmtp_send_dummy_mail_auth
syntax keyword pfmainConf lmtp_send_xforward_command
syntax keyword pfmainConf lmtp_sender_dependent_authentication
syntax keyword pfmainConf lmtp_skip_5xx_greeting
syntax keyword pfmainConf lmtp_skip_quit_response
syntax keyword pfmainConf lmtp_starttls_timeout
syntax keyword pfmainConf lmtp_tcp_port
syntax keyword pfmainConf lmtp_tls_CAfile
syntax keyword pfmainConf lmtp_tls_CApath
syntax keyword pfmainConf lmtp_tls_block_early_mail_reply
syntax keyword pfmainConf lmtp_tls_cert_file
syntax keyword pfmainConf lmtp_tls_ciphers
syntax keyword pfmainConf lmtp_tls_dcert_file
syntax keyword pfmainConf lmtp_tls_dkey_file
syntax keyword pfmainConf lmtp_tls_eccert_file
syntax keyword pfmainConf lmtp_tls_eckey_file
syntax keyword pfmainConf lmtp_tls_enforce_peername
syntax keyword pfmainConf lmtp_tls_exclude_ciphers
syntax keyword pfmainConf lmtp_tls_fingerprint_cert_match
syntax keyword pfmainConf lmtp_tls_fingerprint_digest
syntax keyword pfmainConf lmtp_tls_force_insecure_host_tlsa_lookup
syntax keyword pfmainConf lmtp_tls_key_file
syntax keyword pfmainConf lmtp_tls_loglevel
syntax keyword pfmainConf lmtp_tls_mandatory_ciphers
syntax keyword pfmainConf lmtp_tls_mandatory_exclude_ciphers
syntax keyword pfmainConf lmtp_tls_mandatory_protocols
syntax keyword pfmainConf lmtp_tls_note_starttls_offer
syntax keyword pfmainConf lmtp_tls_per_site
syntax keyword pfmainConf lmtp_tls_policy_maps
syntax keyword pfmainConf lmtp_tls_protocols
syntax keyword pfmainConf lmtp_tls_scert_verifydepth
syntax keyword pfmainConf lmtp_tls_secure_cert_match
syntax keyword pfmainConf lmtp_tls_security_level
syntax keyword pfmainConf lmtp_tls_session_cache_database
syntax keyword pfmainConf lmtp_tls_session_cache_timeout
syntax keyword pfmainConf lmtp_tls_trust_anchor_file
syntax keyword pfmainConf lmtp_tls_verify_cert_match
syntax keyword pfmainConf lmtp_use_tls
syntax keyword pfmainConf lmtp_xforward_timeout
syntax keyword pfmainConf local_command_shell
syntax keyword pfmainConf local_delivery_status_filter
syntax keyword pfmainConf local_destination_concurrency_limit
syntax keyword pfmainConf local_destination_recipient_limit
syntax keyword pfmainConf local_header_rewrite_clients
syntax keyword pfmainConf local_recipient_maps
syntax keyword pfmainConf local_transport
syntax keyword pfmainConf luser_relay
syntax keyword pfmainConf mail_name
syntax keyword pfmainConf mail_owner
syntax keyword pfmainConf mail_release_date
syntax keyword pfmainConf mail_spool_directory
syntax keyword pfmainConf mail_version
syntax keyword pfmainConf mailbox_command
syntax keyword pfmainConf mailbox_command_maps
syntax keyword pfmainConf mailbox_delivery_lock
syntax keyword pfmainConf mailbox_size_limit
syntax keyword pfmainConf mailbox_transport
syntax keyword pfmainConf mailbox_transport_maps
syntax keyword pfmainConf mailq_path
syntax keyword pfmainConf manpage_directory
syntax keyword pfmainConf maps_rbl_domains
syntax keyword pfmainConf maps_rbl_reject_code
syntax keyword pfmainConf masquerade_classes
syntax keyword pfmainConf masquerade_domains
syntax keyword pfmainConf masquerade_exceptions
syntax keyword pfmainConf master_service_disable
syntax keyword pfmainConf max_idle
syntax keyword pfmainConf max_use
syntax keyword pfmainConf maximal_backoff_time
syntax keyword pfmainConf maximal_queue_lifetime
syntax keyword pfmainConf message_drop_headers
syntax keyword pfmainConf message_reject_characters
syntax keyword pfmainConf message_size_limit
syntax keyword pfmainConf message_strip_characters
syntax keyword pfmainConf meta_directory
syntax keyword pfmainConf milter_command_timeout
syntax keyword pfmainConf milter_connect_macros
syntax keyword pfmainConf milter_connect_timeout
syntax keyword pfmainConf milter_content_timeout
syntax keyword pfmainConf milter_data_macros
syntax keyword pfmainConf milter_default_action
syntax keyword pfmainConf milter_end_of_data_macros
syntax keyword pfmainConf milter_end_of_header_macros
syntax keyword pfmainConf milter_header_checks
syntax keyword pfmainConf milter_helo_macros
syntax keyword pfmainConf milter_macro_daemon_name
syntax keyword pfmainConf milter_macro_v
syntax keyword pfmainConf milter_mail_macros
syntax keyword pfmainConf milter_protocol
syntax keyword pfmainConf milter_rcpt_macros
syntax keyword pfmainConf milter_unknown_command_macros
syntax keyword pfmainConf mime_boundary_length_limit
syntax keyword pfmainConf mime_header_checks
syntax keyword pfmainConf mime_nesting_limit
syntax keyword pfmainConf minimal_backoff_time
syntax keyword pfmainConf multi_instance_directories
syntax keyword pfmainConf multi_instance_enable
syntax keyword pfmainConf multi_instance_group
syntax keyword pfmainConf multi_instance_name
syntax keyword pfmainConf multi_instance_wrapper
syntax keyword pfmainConf multi_recipient_bounce_reject_code
syntax keyword pfmainConf mydestination
syntax keyword pfmainConf mydomain
syntax keyword pfmainConf myhostname
syntax keyword pfmainConf mynetworks
syntax keyword pfmainConf mynetworks_style
syntax keyword pfmainConf myorigin
syntax keyword pfmainConf nested_header_checks
syntax keyword pfmainConf newaliases_path
syntax keyword pfmainConf non_fqdn_reject_code
syntax keyword pfmainConf non_smtpd_milters
syntax keyword pfmainConf notify_classes
syntax keyword pfmainConf nullmx_reject_code
syntax keyword pfmainConf owner_request_special
syntax keyword pfmainConf parent_domain_matches_subdomains
syntax keyword pfmainConf permit_mx_backup_networks
syntax keyword pfmainConf pickup_service_name
syntax keyword pfmainConf pipe_delivery_status_filter
syntax keyword pfmainConf plaintext_reject_code
syntax keyword pfmainConf postmulti_control_commands
syntax keyword pfmainConf postmulti_start_commands
syntax keyword pfmainConf postmulti_stop_commands
syntax keyword pfmainConf postscreen_access_list
syntax keyword pfmainConf postscreen_bare_newline_action
syntax keyword pfmainConf postscreen_bare_newline_enable
syntax keyword pfmainConf postscreen_bare_newline_ttl
syntax keyword pfmainConf postscreen_blacklist_action
syntax keyword pfmainConf postscreen_cache_cleanup_interval
syntax keyword pfmainConf postscreen_cache_map
syntax keyword pfmainConf postscreen_cache_retention_time
syntax keyword pfmainConf postscreen_client_connection_count_limit
syntax keyword pfmainConf postscreen_command_count_limit
syntax keyword pfmainConf postscreen_command_filter
syntax keyword pfmainConf postscreen_command_time_limit
syntax keyword pfmainConf postscreen_disable_vrfy_command
syntax keyword pfmainConf postscreen_discard_ehlo_keyword_address_maps
syntax keyword pfmainConf postscreen_discard_ehlo_keywords
syntax keyword pfmainConf postscreen_dnsbl_action
syntax keyword pfmainConf postscreen_dnsbl_reply_map
syntax keyword pfmainConf postscreen_dnsbl_sites
syntax keyword pfmainConf postscreen_dnsbl_threshold
syntax keyword pfmainConf postscreen_dnsbl_timeout
syntax keyword pfmainConf postscreen_dnsbl_ttl
syntax keyword pfmainConf postscreen_dnsbl_whitelist_threshold
syntax keyword pfmainConf postscreen_enforce_tls
syntax keyword pfmainConf postscreen_expansion_filter
syntax keyword pfmainConf postscreen_forbidden_commands
syntax keyword pfmainConf postscreen_greet_action
syntax keyword pfmainConf postscreen_greet_banner
syntax keyword pfmainConf postscreen_greet_ttl
syntax keyword pfmainConf postscreen_greet_wait
syntax keyword pfmainConf postscreen_helo_required
syntax keyword pfmainConf postscreen_non_smtp_command_action
syntax keyword pfmainConf postscreen_non_smtp_command_enable
syntax keyword pfmainConf postscreen_non_smtp_command_ttl
syntax keyword pfmainConf postscreen_pipelining_action
syntax keyword pfmainConf postscreen_pipelining_enable
syntax keyword pfmainConf postscreen_pipelining_ttl
syntax keyword pfmainConf postscreen_post_queue_limit
syntax keyword pfmainConf postscreen_pre_queue_limit
syntax keyword pfmainConf postscreen_reject_footer
syntax keyword pfmainConf postscreen_tls_security_level
syntax keyword pfmainConf postscreen_upstream_proxy_protocol
syntax keyword pfmainConf postscreen_upstream_proxy_timeout
syntax keyword pfmainConf postscreen_use_tls
syntax keyword pfmainConf postscreen_watchdog_timeout
syntax keyword pfmainConf postscreen_whitelist_interfaces
syntax keyword pfmainConf prepend_delivered_header
syntax keyword pfmainConf process_id
syntax keyword pfmainConf process_id_directory
syntax keyword pfmainConf process_name
syntax keyword pfmainConf propagate_unmatched_extensions
syntax keyword pfmainConf proxy_interfaces
syntax keyword pfmainConf proxy_read_maps
syntax keyword pfmainConf proxy_write_maps
syntax keyword pfmainConf proxymap_service_name
syntax keyword pfmainConf proxywrite_service_name
syntax keyword pfmainConf qmgr_clog_warn_time
syntax keyword pfmainConf qmgr_daemon_timeout
syntax keyword pfmainConf qmgr_fudge_factor
syntax keyword pfmainConf qmgr_ipc_timeout
syntax keyword pfmainConf qmgr_message_active_limit
syntax keyword pfmainConf qmgr_message_recipient_limit
syntax keyword pfmainConf qmgr_message_recipient_minimum
syntax keyword pfmainConf qmqpd_authorized_clients
syntax keyword pfmainConf qmqpd_client_port_logging
syntax keyword pfmainConf qmqpd_error_delay
syntax keyword pfmainConf qmqpd_timeout
syntax keyword pfmainConf queue_directory
syntax keyword pfmainConf queue_file_attribute_count_limit
syntax keyword pfmainConf queue_minfree
syntax keyword pfmainConf queue_run_delay
syntax keyword pfmainConf queue_service_name
syntax keyword pfmainConf rbl_reply_maps
syntax keyword pfmainConf readme_directory
syntax keyword pfmainConf receive_override_options
syntax keyword pfmainConf recipient_bcc_maps
syntax keyword pfmainConf recipient_canonical_classes
syntax keyword pfmainConf recipient_canonical_maps
syntax keyword pfmainConf recipient_delimiter
syntax keyword pfmainConf reject_code
syntax keyword pfmainConf reject_tempfail_action
syntax keyword pfmainConf relay_clientcerts
syntax keyword pfmainConf relay_destination_concurrency_limit
syntax keyword pfmainConf relay_destination_recipient_limit
syntax keyword pfmainConf relay_domains
syntax keyword pfmainConf relay_domains_reject_code
syntax keyword pfmainConf relay_recipient_maps
syntax keyword pfmainConf relay_transport
syntax keyword pfmainConf relayhost
syntax keyword pfmainConf relocated_maps
syntax keyword pfmainConf remote_header_rewrite_domain
syntax keyword pfmainConf require_home_directory
syntax keyword pfmainConf reset_owner_alias
syntax keyword pfmainConf resolve_dequoted_address
syntax keyword pfmainConf resolve_null_domain
syntax keyword pfmainConf resolve_numeric_domain
syntax keyword pfmainConf rewrite_service_name
syntax keyword pfmainConf sample_directory
syntax keyword pfmainConf send_cyrus_sasl_authzid
syntax keyword pfmainConf sender_based_routing
syntax keyword pfmainConf sender_bcc_maps
syntax keyword pfmainConf sender_canonical_classes
syntax keyword pfmainConf sender_canonical_maps
syntax keyword pfmainConf sender_dependent_default_transport_maps
syntax keyword pfmainConf sender_dependent_relayhost_maps
syntax keyword pfmainConf sendmail_fix_line_endings
syntax keyword pfmainConf sendmail_path
syntax keyword pfmainConf service_throttle_time
syntax keyword pfmainConf setgid_group
syntax keyword pfmainConf shlib_directory
syntax keyword pfmainConf show_user_unknown_table_name
syntax keyword pfmainConf showq_service_name
syntax keyword pfmainConf smtp_address_preference
syntax keyword pfmainConf smtp_address_verify_target
syntax keyword pfmainConf smtp_always_send_ehlo
syntax keyword pfmainConf smtp_bind_address
syntax keyword pfmainConf smtp_bind_address6
syntax keyword pfmainConf smtp_body_checks
syntax keyword pfmainConf smtp_cname_overrides_servername
syntax keyword pfmainConf smtp_connect_timeout
syntax keyword pfmainConf smtp_connection_cache_destinations
syntax keyword pfmainConf smtp_connection_cache_on_demand
syntax keyword pfmainConf smtp_connection_cache_time_limit
syntax keyword pfmainConf smtp_connection_reuse_count_limit
syntax keyword pfmainConf smtp_connection_reuse_time_limit
syntax keyword pfmainConf smtp_data_done_timeout
syntax keyword pfmainConf smtp_data_init_timeout
syntax keyword pfmainConf smtp_data_xfer_timeout
syntax keyword pfmainConf smtp_defer_if_no_mx_address_found
syntax keyword pfmainConf smtp_delivery_status_filter
syntax keyword pfmainConf smtp_destination_concurrency_limit
syntax keyword pfmainConf smtp_destination_recipient_limit
syntax keyword pfmainConf smtp_discard_ehlo_keyword_address_maps
syntax keyword pfmainConf smtp_discard_ehlo_keywords
syntax keyword pfmainConf smtp_dns_reply_filter
syntax keyword pfmainConf smtp_dns_resolver_options
syntax keyword pfmainConf smtp_dns_support_level
syntax keyword pfmainConf smtp_enforce_tls
syntax keyword pfmainConf smtp_fallback_relay
syntax keyword pfmainConf smtp_generic_maps
syntax keyword pfmainConf smtp_header_checks
syntax keyword pfmainConf smtp_helo_name
syntax keyword pfmainConf smtp_helo_timeout
syntax keyword pfmainConf smtp_host_lookup
syntax keyword pfmainConf smtp_line_length_limit
syntax keyword pfmainConf smtp_mail_timeout
syntax keyword pfmainConf smtp_mime_header_checks
syntax keyword pfmainConf smtp_mx_address_limit
syntax keyword pfmainConf smtp_mx_session_limit
syntax keyword pfmainConf smtp_nested_header_checks
syntax keyword pfmainConf smtp_never_send_ehlo
syntax keyword pfmainConf smtp_per_record_deadline
syntax keyword pfmainConf smtp_pix_workaround_delay_time
syntax keyword pfmainConf smtp_pix_workaround_maps
syntax keyword pfmainConf smtp_pix_workaround_threshold_time
syntax keyword pfmainConf smtp_pix_workarounds
syntax keyword pfmainConf smtp_quit_timeout
syntax keyword pfmainConf smtp_quote_rfc821_envelope
syntax keyword pfmainConf smtp_randomize_addresses
syntax keyword pfmainConf smtp_rcpt_timeout
syntax keyword pfmainConf smtp_reply_filter
syntax keyword pfmainConf smtp_rset_timeout
syntax keyword pfmainConf smtp_sasl_auth_cache_name
syntax keyword pfmainConf smtp_sasl_auth_cache_time
syntax keyword pfmainConf smtp_sasl_auth_enable
syntax keyword pfmainConf smtp_sasl_auth_soft_bounce
syntax keyword pfmainConf smtp_sasl_mechanism_filter
syntax keyword pfmainConf smtp_sasl_password_maps
syntax keyword pfmainConf smtp_sasl_path
syntax keyword pfmainConf smtp_sasl_security_options
syntax keyword pfmainConf smtp_sasl_tls_security_options
syntax keyword pfmainConf smtp_sasl_tls_verified_security_options
syntax keyword pfmainConf smtp_sasl_type
syntax keyword pfmainConf smtp_send_dummy_mail_auth
syntax keyword pfmainConf smtp_send_xforward_command
syntax keyword pfmainConf smtp_sender_dependent_authentication
syntax keyword pfmainConf smtp_skip_4xx_greeting
syntax keyword pfmainConf smtp_skip_5xx_greeting
syntax keyword pfmainConf smtp_skip_quit_response
syntax keyword pfmainConf smtp_starttls_timeout
syntax keyword pfmainConf smtp_tls_CAfile
syntax keyword pfmainConf smtp_tls_CApath
syntax keyword pfmainConf smtp_tls_block_early_mail_reply
syntax keyword pfmainConf smtp_tls_cert_file
syntax keyword pfmainConf smtp_tls_cipherlist
syntax keyword pfmainConf smtp_tls_ciphers
syntax keyword pfmainConf smtp_tls_dcert_file
syntax keyword pfmainConf smtp_tls_dkey_file
syntax keyword pfmainConf smtp_tls_eccert_file
syntax keyword pfmainConf smtp_tls_eckey_file
syntax keyword pfmainConf smtp_tls_enforce_peername
syntax keyword pfmainConf smtp_tls_exclude_ciphers
syntax keyword pfmainConf smtp_tls_fingerprint_cert_match
syntax keyword pfmainConf smtp_tls_fingerprint_digest
syntax keyword pfmainConf smtp_tls_force_insecure_host_tlsa_lookup
syntax keyword pfmainConf smtp_tls_key_file
syntax keyword pfmainConf smtp_tls_loglevel
syntax keyword pfmainConf smtp_tls_mandatory_ciphers
syntax keyword pfmainConf smtp_tls_mandatory_exclude_ciphers
syntax keyword pfmainConf smtp_tls_mandatory_protocols
syntax keyword pfmainConf smtp_tls_note_starttls_offer
syntax keyword pfmainConf smtp_tls_per_site
syntax keyword pfmainConf smtp_tls_policy_maps
syntax keyword pfmainConf smtp_tls_protocols
syntax keyword pfmainConf smtp_tls_scert_verifydepth
syntax keyword pfmainConf smtp_tls_secure_cert_match
syntax keyword pfmainConf smtp_tls_security_level
syntax keyword pfmainConf smtp_tls_session_cache_database
syntax keyword pfmainConf smtp_tls_session_cache_timeout
syntax keyword pfmainConf smtp_tls_trust_anchor_file
syntax keyword pfmainConf smtp_tls_verify_cert_match
syntax keyword pfmainConf smtp_tls_wrappermode
syntax keyword pfmainConf smtp_use_tls
syntax keyword pfmainConf smtp_xforward_timeout
syntax keyword pfmainConf smtpd_authorized_verp_clients
syntax keyword pfmainConf smtpd_authorized_xclient_hosts
syntax keyword pfmainConf smtpd_authorized_xforward_hosts
syntax keyword pfmainConf smtpd_banner
syntax keyword pfmainConf smtpd_client_connection_count_limit
syntax keyword pfmainConf smtpd_client_connection_rate_limit
syntax keyword pfmainConf smtpd_client_event_limit_exceptions
syntax keyword pfmainConf smtpd_client_message_rate_limit
syntax keyword pfmainConf smtpd_client_new_tls_session_rate_limit
syntax keyword pfmainConf smtpd_client_port_logging
syntax keyword pfmainConf smtpd_client_recipient_rate_limit
syntax keyword pfmainConf smtpd_client_restrictions
syntax keyword pfmainConf smtpd_command_filter
syntax keyword pfmainConf smtpd_data_restrictions
syntax keyword pfmainConf smtpd_delay_open_until_valid_rcpt
syntax keyword pfmainConf smtpd_delay_reject
syntax keyword pfmainConf smtpd_discard_ehlo_keyword_address_maps
syntax keyword pfmainConf smtpd_discard_ehlo_keywords
syntax keyword pfmainConf smtpd_dns_reply_filter
syntax keyword pfmainConf smtpd_end_of_data_restrictions
syntax keyword pfmainConf smtpd_enforce_tls
syntax keyword pfmainConf smtpd_error_sleep_time
syntax keyword pfmainConf smtpd_etrn_restrictions
syntax keyword pfmainConf smtpd_expansion_filter
syntax keyword pfmainConf smtpd_forbidden_commands
syntax keyword pfmainConf smtpd_hard_error_limit
syntax keyword pfmainConf smtpd_helo_required
syntax keyword pfmainConf smtpd_helo_restrictions
syntax keyword pfmainConf smtpd_history_flush_threshold
syntax keyword pfmainConf smtpd_junk_command_limit
syntax keyword pfmainConf smtpd_log_access_permit_actions
syntax keyword pfmainConf smtpd_milters
syntax keyword pfmainConf smtpd_noop_commands
syntax keyword pfmainConf smtpd_null_access_lookup_key
syntax keyword pfmainConf smtpd_peername_lookup
syntax keyword pfmainConf smtpd_per_record_deadline
syntax keyword pfmainConf smtpd_policy_service_default_action
syntax keyword pfmainConf smtpd_policy_service_max_idle
syntax keyword pfmainConf smtpd_policy_service_max_ttl
syntax keyword pfmainConf smtpd_policy_service_request_limit
syntax keyword pfmainConf smtpd_policy_service_retry_delay
syntax keyword pfmainConf smtpd_policy_service_timeout
syntax keyword pfmainConf smtpd_policy_service_try_limit
syntax keyword pfmainConf smtpd_proxy_ehlo
syntax keyword pfmainConf smtpd_proxy_filter
syntax keyword pfmainConf smtpd_proxy_options
syntax keyword pfmainConf smtpd_proxy_timeout
syntax keyword pfmainConf smtpd_recipient_limit
syntax keyword pfmainConf smtpd_recipient_overshoot_limit
syntax keyword pfmainConf smtpd_recipient_restrictions
syntax keyword pfmainConf smtpd_reject_footer
syntax keyword pfmainConf smtpd_reject_unlisted_recipient
syntax keyword pfmainConf smtpd_reject_unlisted_sender
syntax keyword pfmainConf smtpd_relay_restrictions
syntax keyword pfmainConf smtpd_restriction_classes
syntax keyword pfmainConf smtpd_sasl_application_name
syntax keyword pfmainConf smtpd_sasl_auth_enable
syntax keyword pfmainConf smtpd_sasl_authenticated_header
syntax keyword pfmainConf smtpd_sasl_exceptions_networks
syntax keyword pfmainConf smtpd_sasl_local_domain
syntax keyword pfmainConf smtpd_sasl_path
syntax keyword pfmainConf smtpd_sasl_security_options
syntax keyword pfmainConf smtpd_sasl_service
syntax keyword pfmainConf smtpd_sasl_tls_security_options
syntax keyword pfmainConf smtpd_sasl_type
syntax keyword pfmainConf smtpd_sender_login_maps
syntax keyword pfmainConf smtpd_sender_restrictions
syntax keyword pfmainConf smtpd_service_name
syntax keyword pfmainConf smtpd_soft_error_limit
syntax keyword pfmainConf smtpd_starttls_timeout
syntax keyword pfmainConf smtpd_timeout
syntax keyword pfmainConf smtpd_tls_CAfile
syntax keyword pfmainConf smtpd_tls_CApath
syntax keyword pfmainConf smtpd_tls_always_issue_session_ids
syntax keyword pfmainConf smtpd_tls_ask_ccert
syntax keyword pfmainConf smtpd_tls_auth_only
syntax keyword pfmainConf smtpd_tls_ccert_verifydepth
syntax keyword pfmainConf smtpd_tls_cert_file
syntax keyword pfmainConf smtpd_tls_cipherlist
syntax keyword pfmainConf smtpd_tls_ciphers
syntax keyword pfmainConf smtpd_tls_dcert_file
syntax keyword pfmainConf smtpd_tls_dh1024_param_file
syntax keyword pfmainConf smtpd_tls_dh512_param_file
syntax keyword pfmainConf smtpd_tls_dkey_file
syntax keyword pfmainConf smtpd_tls_eccert_file
syntax keyword pfmainConf smtpd_tls_eckey_file
syntax keyword pfmainConf smtpd_tls_eecdh_grade
syntax keyword pfmainConf smtpd_tls_exclude_ciphers
syntax keyword pfmainConf smtpd_tls_fingerprint_digest
syntax keyword pfmainConf smtpd_tls_key_file
syntax keyword pfmainConf smtpd_tls_loglevel
syntax keyword pfmainConf smtpd_tls_mandatory_ciphers
syntax keyword pfmainConf smtpd_tls_mandatory_exclude_ciphers
syntax keyword pfmainConf smtpd_tls_mandatory_protocols
syntax keyword pfmainConf smtpd_tls_protocols
syntax keyword pfmainConf smtpd_tls_received_header
syntax keyword pfmainConf smtpd_tls_req_ccert
syntax keyword pfmainConf smtpd_tls_security_level
syntax keyword pfmainConf smtpd_tls_session_cache_database
syntax keyword pfmainConf smtpd_tls_session_cache_timeout
syntax keyword pfmainConf smtpd_tls_wrappermode
syntax keyword pfmainConf smtpd_upstream_proxy_protocol
syntax keyword pfmainConf smtpd_upstream_proxy_timeout
syntax keyword pfmainConf smtpd_use_tls
syntax keyword pfmainConf smtputf8_autodetect_classes
syntax keyword pfmainConf smtputf8_enable
syntax keyword pfmainConf soft_bounce
syntax keyword pfmainConf stale_lock_time
syntax keyword pfmainConf stress
syntax keyword pfmainConf strict_7bit_headers
syntax keyword pfmainConf strict_8bitmime
syntax keyword pfmainConf strict_8bitmime_body
syntax keyword pfmainConf strict_mailbox_ownership
syntax keyword pfmainConf strict_mime_encoding_domain
syntax keyword pfmainConf strict_rfc821_envelopes
syntax keyword pfmainConf strict_smtputf8
syntax keyword pfmainConf sun_mailtool_compatibility
syntax keyword pfmainConf swap_bangpath
syntax keyword pfmainConf syslog_facility
syntax keyword pfmainConf syslog_name
syntax keyword pfmainConf tcp_windowsize
syntax keyword pfmainConf tls_append_default_CA
syntax keyword pfmainConf tls_daemon_random_bytes
syntax keyword pfmainConf tls_dane_digest_agility
syntax keyword pfmainConf tls_dane_digests
syntax keyword pfmainConf tls_dane_trust_anchor_digest_enable
syntax keyword pfmainConf tls_disable_workarounds
syntax keyword pfmainConf tls_eecdh_strong_curve
syntax keyword pfmainConf tls_eecdh_ultra_curve
syntax keyword pfmainConf tls_export_cipherlist
syntax keyword pfmainConf tls_high_cipherlist
syntax keyword pfmainConf tls_legacy_public_key_fingerprints
syntax keyword pfmainConf tls_low_cipherlist
syntax keyword pfmainConf tls_medium_cipherlist
syntax keyword pfmainConf tls_null_cipherlist
syntax keyword pfmainConf tls_preempt_cipherlist
syntax keyword pfmainConf tls_random_bytes
syntax keyword pfmainConf tls_random_exchange_name
syntax keyword pfmainConf tls_random_prng_update_period
syntax keyword pfmainConf tls_random_reseed_period
syntax keyword pfmainConf tls_random_source
syntax keyword pfmainConf tls_session_ticket_cipher
syntax keyword pfmainConf tls_ssl_options
syntax keyword pfmainConf tls_wildcard_matches_multiple_labels
syntax keyword pfmainConf tlsmgr_service_name
syntax keyword pfmainConf tlsproxy_enforce_tls
syntax keyword pfmainConf tlsproxy_service_name
syntax keyword pfmainConf tlsproxy_tls_CAfile
syntax keyword pfmainConf tlsproxy_tls_CApath
syntax keyword pfmainConf tlsproxy_tls_always_issue_session_ids
syntax keyword pfmainConf tlsproxy_tls_ask_ccert
syntax keyword pfmainConf tlsproxy_tls_ccert_verifydepth
syntax keyword pfmainConf tlsproxy_tls_cert_file
syntax keyword pfmainConf tlsproxy_tls_ciphers
syntax keyword pfmainConf tlsproxy_tls_dcert_file
syntax keyword pfmainConf tlsproxy_tls_dh1024_param_file
syntax keyword pfmainConf tlsproxy_tls_dh512_param_file
syntax keyword pfmainConf tlsproxy_tls_dkey_file
syntax keyword pfmainConf tlsproxy_tls_eccert_file
syntax keyword pfmainConf tlsproxy_tls_eckey_file
syntax keyword pfmainConf tlsproxy_tls_eecdh_grade
syntax keyword pfmainConf tlsproxy_tls_exclude_ciphers
syntax keyword pfmainConf tlsproxy_tls_fingerprint_digest
syntax keyword pfmainConf tlsproxy_tls_key_file
syntax keyword pfmainConf tlsproxy_tls_loglevel
syntax keyword pfmainConf tlsproxy_tls_mandatory_ciphers
syntax keyword pfmainConf tlsproxy_tls_mandatory_exclude_ciphers
syntax keyword pfmainConf tlsproxy_tls_mandatory_protocols
syntax keyword pfmainConf tlsproxy_tls_protocols
syntax keyword pfmainConf tlsproxy_tls_req_ccert
syntax keyword pfmainConf tlsproxy_tls_security_level
syntax keyword pfmainConf tlsproxy_tls_session_cache_timeout
syntax keyword pfmainConf tlsproxy_use_tls
syntax keyword pfmainConf tlsproxy_watchdog_timeout
syntax keyword pfmainConf trace_service_name
syntax keyword pfmainConf transport_delivery_slot_cost
syntax keyword pfmainConf transport_delivery_slot_discount
syntax keyword pfmainConf transport_delivery_slot_loan
syntax keyword pfmainConf transport_destination_concurrency_failed_cohort_limit
syntax keyword pfmainConf transport_destination_concurrency_limit
syntax keyword pfmainConf transport_destination_concurrency_negative_feedback
syntax keyword pfmainConf transport_destination_concurrency_positive_feedback
syntax keyword pfmainConf transport_destination_rate_delay
syntax keyword pfmainConf transport_destination_recipient_limit
syntax keyword pfmainConf transport_extra_recipient_limit
syntax keyword pfmainConf transport_initial_destination_concurrency
syntax keyword pfmainConf transport_maps
syntax keyword pfmainConf transport_minimum_delivery_slots
syntax keyword pfmainConf transport_recipient_limit
syntax keyword pfmainConf transport_recipient_refill_delay
syntax keyword pfmainConf transport_recipient_refill_limit
syntax keyword pfmainConf transport_retry_time
syntax keyword pfmainConf transport_time_limit
syntax keyword pfmainConf trigger_timeout
syntax keyword pfmainConf undisclosed_recipients_header
syntax keyword pfmainConf unknown_address_reject_code
syntax keyword pfmainConf unknown_address_tempfail_action
syntax keyword pfmainConf unknown_client_reject_code
syntax keyword pfmainConf unknown_helo_hostname_tempfail_action
syntax keyword pfmainConf unknown_hostname_reject_code
syntax keyword pfmainConf unknown_local_recipient_reject_code
syntax keyword pfmainConf unknown_relay_recipient_reject_code
syntax keyword pfmainConf unknown_virtual_alias_reject_code
syntax keyword pfmainConf unknown_virtual_mailbox_reject_code
syntax keyword pfmainConf unverified_recipient_defer_code
syntax keyword pfmainConf unverified_recipient_reject_code
syntax keyword pfmainConf unverified_recipient_reject_reason
syntax keyword pfmainConf unverified_recipient_tempfail_action
syntax keyword pfmainConf unverified_sender_defer_code
syntax keyword pfmainConf unverified_sender_reject_code
syntax keyword pfmainConf unverified_sender_reject_reason
syntax keyword pfmainConf unverified_sender_tempfail_action
syntax keyword pfmainConf verp_delimiter_filter
syntax keyword pfmainConf virtual_alias_address_length_limit
syntax keyword pfmainConf virtual_alias_domains
syntax keyword pfmainConf virtual_alias_expansion_limit
syntax keyword pfmainConf virtual_alias_maps
syntax keyword pfmainConf virtual_alias_recursion_limit
syntax keyword pfmainConf virtual_delivery_status_filter
syntax keyword pfmainConf virtual_destination_concurrency_limit
syntax keyword pfmainConf virtual_destination_recipient_limit
syntax keyword pfmainConf virtual_gid_maps
syntax keyword pfmainConf virtual_mailbox_base
syntax keyword pfmainConf virtual_mailbox_domains
syntax keyword pfmainConf virtual_mailbox_limit
syntax keyword pfmainConf virtual_mailbox_lock
syntax keyword pfmainConf virtual_mailbox_maps
syntax keyword pfmainConf virtual_maps
syntax keyword pfmainConf virtual_minimum_uid
syntax keyword pfmainConf virtual_transport
syntax keyword pfmainConf virtual_uid_maps
syntax match pfmainRef "$\<2bounce_notice_recipient\>"
syntax match pfmainRef "$\<access_map_defer_code\>"
syntax match pfmainRef "$\<access_map_reject_code\>"
syntax match pfmainRef "$\<address_verify_cache_cleanup_interval\>"
syntax match pfmainRef "$\<address_verify_default_transport\>"
syntax match pfmainRef "$\<address_verify_local_transport\>"
syntax match pfmainRef "$\<address_verify_map\>"
syntax match pfmainRef "$\<address_verify_negative_cache\>"
syntax match pfmainRef "$\<address_verify_negative_expire_time\>"
syntax match pfmainRef "$\<address_verify_negative_refresh_time\>"
syntax match pfmainRef "$\<address_verify_poll_count\>"
syntax match pfmainRef "$\<address_verify_poll_delay\>"
syntax match pfmainRef "$\<address_verify_positive_expire_time\>"
syntax match pfmainRef "$\<address_verify_positive_refresh_time\>"
syntax match pfmainRef "$\<address_verify_relay_transport\>"
syntax match pfmainRef "$\<address_verify_relayhost\>"
syntax match pfmainRef "$\<address_verify_sender\>"
syntax match pfmainRef "$\<address_verify_sender_dependent_default_transport_maps\>"
syntax match pfmainRef "$\<address_verify_sender_dependent_relayhost_maps\>"
syntax match pfmainRef "$\<address_verify_sender_ttl\>"
syntax match pfmainRef "$\<address_verify_service_name\>"
syntax match pfmainRef "$\<address_verify_transport_maps\>"
syntax match pfmainRef "$\<address_verify_virtual_transport\>"
syntax match pfmainRef "$\<alias_database\>"
syntax match pfmainRef "$\<alias_maps\>"
syntax match pfmainRef "$\<allow_mail_to_commands\>"
syntax match pfmainRef "$\<allow_mail_to_files\>"
syntax match pfmainRef "$\<allow_min_user\>"
syntax match pfmainRef "$\<allow_percent_hack\>"
syntax match pfmainRef "$\<allow_untrusted_routing\>"
syntax match pfmainRef "$\<alternate_config_directories\>"
syntax match pfmainRef "$\<always_add_missing_headers\>"
syntax match pfmainRef "$\<always_bcc\>"
syntax match pfmainRef "$\<anvil_rate_time_unit\>"
syntax match pfmainRef "$\<anvil_status_update_time\>"
syntax match pfmainRef "$\<append_at_myorigin\>"
syntax match pfmainRef "$\<append_dot_mydomain\>"
syntax match pfmainRef "$\<application_event_drain_time\>"
syntax match pfmainRef "$\<authorized_flush_users\>"
syntax match pfmainRef "$\<authorized_mailq_users\>"
syntax match pfmainRef "$\<authorized_submit_users\>"
syntax match pfmainRef "$\<authorized_verp_clients\>"
syntax match pfmainRef "$\<backwards_bounce_logfile_compatibility\>"
syntax match pfmainRef "$\<berkeley_db_create_buffer_size\>"
syntax match pfmainRef "$\<berkeley_db_read_buffer_size\>"
syntax match pfmainRef "$\<best_mx_transport\>"
syntax match pfmainRef "$\<biff\>"
syntax match pfmainRef "$\<body_checks\>"
syntax match pfmainRef "$\<body_checks_size_limit\>"
syntax match pfmainRef "$\<bounce_notice_recipient\>"
syntax match pfmainRef "$\<bounce_queue_lifetime\>"
syntax match pfmainRef "$\<bounce_service_name\>"
syntax match pfmainRef "$\<bounce_size_limit\>"
syntax match pfmainRef "$\<bounce_template_file\>"
syntax match pfmainRef "$\<broken_sasl_auth_clients\>"
syntax match pfmainRef "$\<canonical_classes\>"
syntax match pfmainRef "$\<canonical_maps\>"
syntax match pfmainRef "$\<cleanup_service_name\>"
syntax match pfmainRef "$\<command_directory\>"
syntax match pfmainRef "$\<command_execution_directory\>"
syntax match pfmainRef "$\<command_expansion_filter\>"
syntax match pfmainRef "$\<command_time_limit\>"
syntax match pfmainRef "$\<compatibility_level\>"
syntax match pfmainRef "$\<config_directory\>"
syntax match pfmainRef "$\<confirm_delay_cleared\>"
syntax match pfmainRef "$\<connection_cache_protocol_timeout\>"
syntax match pfmainRef "$\<connection_cache_service_name\>"
syntax match pfmainRef "$\<connection_cache_status_update_time\>"
syntax match pfmainRef "$\<connection_cache_ttl_limit\>"
syntax match pfmainRef "$\<content_filter\>"
syntax match pfmainRef "$\<cyrus_sasl_config_path\>"
syntax match pfmainRef "$\<daemon_directory\>"
syntax match pfmainRef "$\<daemon_table_open_error_is_fatal\>"
syntax match pfmainRef "$\<daemon_timeout\>"
syntax match pfmainRef "$\<data_directory\>"
syntax match pfmainRef "$\<debug_peer_level\>"
syntax match pfmainRef "$\<debug_peer_list\>"
syntax match pfmainRef "$\<debugger_command\>"
syntax match pfmainRef "$\<default_database_type\>"
syntax match pfmainRef "$\<default_delivery_slot_cost\>"
syntax match pfmainRef "$\<default_delivery_slot_discount\>"
syntax match pfmainRef "$\<default_delivery_slot_loan\>"
syntax match pfmainRef "$\<default_delivery_status_filter\>"
syntax match pfmainRef "$\<default_destination_concurrency_failed_cohort_limit\>"
syntax match pfmainRef "$\<default_destination_concurrency_limit\>"
syntax match pfmainRef "$\<default_destination_concurrency_negative_feedback\>"
syntax match pfmainRef "$\<default_destination_concurrency_positive_feedback\>"
syntax match pfmainRef "$\<default_destination_rate_delay\>"
syntax match pfmainRef "$\<default_destination_recipient_limit\>"
syntax match pfmainRef "$\<default_extra_recipient_limit\>"
syntax match pfmainRef "$\<default_filter_nexthop\>"
syntax match pfmainRef "$\<default_minimum_delivery_slots\>"
syntax match pfmainRef "$\<default_privs\>"
syntax match pfmainRef "$\<default_process_limit\>"
syntax match pfmainRef "$\<default_rbl_reply\>"
syntax match pfmainRef "$\<default_recipient_limit\>"
syntax match pfmainRef "$\<default_recipient_refill_delay\>"
syntax match pfmainRef "$\<default_recipient_refill_limit\>"
syntax match pfmainRef "$\<default_transport\>"
syntax match pfmainRef "$\<default_verp_delimiters\>"
syntax match pfmainRef "$\<defer_code\>"
syntax match pfmainRef "$\<defer_service_name\>"
syntax match pfmainRef "$\<defer_transports\>"
syntax match pfmainRef "$\<delay_logging_resolution_limit\>"
syntax match pfmainRef "$\<delay_notice_recipient\>"
syntax match pfmainRef "$\<delay_warning_time\>"
syntax match pfmainRef "$\<deliver_lock_attempts\>"
syntax match pfmainRef "$\<deliver_lock_delay\>"
syntax match pfmainRef "$\<destination_concurrency_feedback_debug\>"
syntax match pfmainRef "$\<detect_8bit_encoding_header\>"
syntax match pfmainRef "$\<disable_dns_lookups\>"
syntax match pfmainRef "$\<disable_mime_input_processing\>"
syntax match pfmainRef "$\<disable_mime_output_conversion\>"
syntax match pfmainRef "$\<disable_verp_bounces\>"
syntax match pfmainRef "$\<disable_vrfy_command\>"
syntax match pfmainRef "$\<dnsblog_reply_delay\>"
syntax match pfmainRef "$\<dnsblog_service_name\>"
syntax match pfmainRef "$\<dont_remove\>"
syntax match pfmainRef "$\<double_bounce_sender\>"
syntax match pfmainRef "$\<duplicate_filter_limit\>"
syntax match pfmainRef "$\<empty_address_default_transport_maps_lookup_key\>"
syntax match pfmainRef "$\<empty_address_recipient\>"
syntax match pfmainRef "$\<empty_address_relayhost_maps_lookup_key\>"
syntax match pfmainRef "$\<enable_errors_to\>"
syntax match pfmainRef "$\<enable_long_queue_ids\>"
syntax match pfmainRef "$\<enable_original_recipient\>"
syntax match pfmainRef "$\<error_notice_recipient\>"
syntax match pfmainRef "$\<error_service_name\>"
syntax match pfmainRef "$\<execution_directory_expansion_filter\>"
syntax match pfmainRef "$\<expand_owner_alias\>"
syntax match pfmainRef "$\<export_environment\>"
syntax match pfmainRef "$\<extract_recipient_limit\>"
syntax match pfmainRef "$\<fallback_relay\>"
syntax match pfmainRef "$\<fallback_transport\>"
syntax match pfmainRef "$\<fallback_transport_maps\>"
syntax match pfmainRef "$\<fast_flush_domains\>"
syntax match pfmainRef "$\<fast_flush_purge_time\>"
syntax match pfmainRef "$\<fast_flush_refresh_time\>"
syntax match pfmainRef "$\<fault_injection_code\>"
syntax match pfmainRef "$\<flush_service_name\>"
syntax match pfmainRef "$\<fork_attempts\>"
syntax match pfmainRef "$\<fork_delay\>"
syntax match pfmainRef "$\<forward_expansion_filter\>"
syntax match pfmainRef "$\<forward_path\>"
syntax match pfmainRef "$\<frozen_delivered_to\>"
syntax match pfmainRef "$\<hash_queue_depth\>"
syntax match pfmainRef "$\<hash_queue_names\>"
syntax match pfmainRef "$\<header_address_token_limit\>"
syntax match pfmainRef "$\<header_checks\>"
syntax match pfmainRef "$\<header_size_limit\>"
syntax match pfmainRef "$\<helpful_warnings\>"
syntax match pfmainRef "$\<home_mailbox\>"
syntax match pfmainRef "$\<hopcount_limit\>"
syntax match pfmainRef "$\<html_directory\>"
syntax match pfmainRef "$\<ignore_mx_lookup_error\>"
syntax match pfmainRef "$\<import_environment\>"
syntax match pfmainRef "$\<in_flow_delay\>"
syntax match pfmainRef "$\<inet_interfaces\>"
syntax match pfmainRef "$\<inet_protocols\>"
syntax match pfmainRef "$\<initial_destination_concurrency\>"
syntax match pfmainRef "$\<internal_mail_filter_classes\>"
syntax match pfmainRef "$\<invalid_hostname_reject_code\>"
syntax match pfmainRef "$\<ipc_idle\>"
syntax match pfmainRef "$\<ipc_timeout\>"
syntax match pfmainRef "$\<ipc_ttl\>"
syntax match pfmainRef "$\<line_length_limit\>"
syntax match pfmainRef "$\<lmdb_map_size\>"
syntax match pfmainRef "$\<lmtp_address_preference\>"
syntax match pfmainRef "$\<lmtp_address_verify_target\>"
syntax match pfmainRef "$\<lmtp_assume_final\>"
syntax match pfmainRef "$\<lmtp_bind_address\>"
syntax match pfmainRef "$\<lmtp_bind_address6\>"
syntax match pfmainRef "$\<lmtp_body_checks\>"
syntax match pfmainRef "$\<lmtp_cache_connection\>"
syntax match pfmainRef "$\<lmtp_cname_overrides_servername\>"
syntax match pfmainRef "$\<lmtp_connect_timeout\>"
syntax match pfmainRef "$\<lmtp_connection_cache_destinations\>"
syntax match pfmainRef "$\<lmtp_connection_cache_on_demand\>"
syntax match pfmainRef "$\<lmtp_connection_cache_time_limit\>"
syntax match pfmainRef "$\<lmtp_connection_reuse_count_limit\>"
syntax match pfmainRef "$\<lmtp_connection_reuse_time_limit\>"
syntax match pfmainRef "$\<lmtp_data_done_timeout\>"
syntax match pfmainRef "$\<lmtp_data_init_timeout\>"
syntax match pfmainRef "$\<lmtp_data_xfer_timeout\>"
syntax match pfmainRef "$\<lmtp_defer_if_no_mx_address_found\>"
syntax match pfmainRef "$\<lmtp_delivery_status_filter\>"
syntax match pfmainRef "$\<lmtp_destination_concurrency_limit\>"
syntax match pfmainRef "$\<lmtp_destination_recipient_limit\>"
syntax match pfmainRef "$\<lmtp_discard_lhlo_keyword_address_maps\>"
syntax match pfmainRef "$\<lmtp_discard_lhlo_keywords\>"
syntax match pfmainRef "$\<lmtp_dns_reply_filter\>"
syntax match pfmainRef "$\<lmtp_dns_resolver_options\>"
syntax match pfmainRef "$\<lmtp_dns_support_level\>"
syntax match pfmainRef "$\<lmtp_enforce_tls\>"
syntax match pfmainRef "$\<lmtp_generic_maps\>"
syntax match pfmainRef "$\<lmtp_header_checks\>"
syntax match pfmainRef "$\<lmtp_host_lookup\>"
syntax match pfmainRef "$\<lmtp_lhlo_name\>"
syntax match pfmainRef "$\<lmtp_lhlo_timeout\>"
syntax match pfmainRef "$\<lmtp_line_length_limit\>"
syntax match pfmainRef "$\<lmtp_mail_timeout\>"
syntax match pfmainRef "$\<lmtp_mime_header_checks\>"
syntax match pfmainRef "$\<lmtp_mx_address_limit\>"
syntax match pfmainRef "$\<lmtp_mx_session_limit\>"
syntax match pfmainRef "$\<lmtp_nested_header_checks\>"
syntax match pfmainRef "$\<lmtp_per_record_deadline\>"
syntax match pfmainRef "$\<lmtp_pix_workaround_delay_time\>"
syntax match pfmainRef "$\<lmtp_pix_workaround_maps\>"
syntax match pfmainRef "$\<lmtp_pix_workaround_threshold_time\>"
syntax match pfmainRef "$\<lmtp_pix_workarounds\>"
syntax match pfmainRef "$\<lmtp_quit_timeout\>"
syntax match pfmainRef "$\<lmtp_quote_rfc821_envelope\>"
syntax match pfmainRef "$\<lmtp_randomize_addresses\>"
syntax match pfmainRef "$\<lmtp_rcpt_timeout\>"
syntax match pfmainRef "$\<lmtp_reply_filter\>"
syntax match pfmainRef "$\<lmtp_rset_timeout\>"
syntax match pfmainRef "$\<lmtp_sasl_auth_cache_name\>"
syntax match pfmainRef "$\<lmtp_sasl_auth_cache_time\>"
syntax match pfmainRef "$\<lmtp_sasl_auth_enable\>"
syntax match pfmainRef "$\<lmtp_sasl_auth_soft_bounce\>"
syntax match pfmainRef "$\<lmtp_sasl_mechanism_filter\>"
syntax match pfmainRef "$\<lmtp_sasl_password_maps\>"
syntax match pfmainRef "$\<lmtp_sasl_path\>"
syntax match pfmainRef "$\<lmtp_sasl_security_options\>"
syntax match pfmainRef "$\<lmtp_sasl_tls_security_options\>"
syntax match pfmainRef "$\<lmtp_sasl_tls_verified_security_options\>"
syntax match pfmainRef "$\<lmtp_sasl_type\>"
syntax match pfmainRef "$\<lmtp_send_dummy_mail_auth\>"
syntax match pfmainRef "$\<lmtp_send_xforward_command\>"
syntax match pfmainRef "$\<lmtp_sender_dependent_authentication\>"
syntax match pfmainRef "$\<lmtp_skip_5xx_greeting\>"
syntax match pfmainRef "$\<lmtp_skip_quit_response\>"
syntax match pfmainRef "$\<lmtp_starttls_timeout\>"
syntax match pfmainRef "$\<lmtp_tcp_port\>"
syntax match pfmainRef "$\<lmtp_tls_CAfile\>"
syntax match pfmainRef "$\<lmtp_tls_CApath\>"
syntax match pfmainRef "$\<lmtp_tls_block_early_mail_reply\>"
syntax match pfmainRef "$\<lmtp_tls_cert_file\>"
syntax match pfmainRef "$\<lmtp_tls_ciphers\>"
syntax match pfmainRef "$\<lmtp_tls_dcert_file\>"
syntax match pfmainRef "$\<lmtp_tls_dkey_file\>"
syntax match pfmainRef "$\<lmtp_tls_eccert_file\>"
syntax match pfmainRef "$\<lmtp_tls_eckey_file\>"
syntax match pfmainRef "$\<lmtp_tls_enforce_peername\>"
syntax match pfmainRef "$\<lmtp_tls_exclude_ciphers\>"
syntax match pfmainRef "$\<lmtp_tls_fingerprint_cert_match\>"
syntax match pfmainRef "$\<lmtp_tls_fingerprint_digest\>"
syntax match pfmainRef "$\<lmtp_tls_force_insecure_host_tlsa_lookup\>"
syntax match pfmainRef "$\<lmtp_tls_key_file\>"
syntax match pfmainRef "$\<lmtp_tls_loglevel\>"
syntax match pfmainRef "$\<lmtp_tls_mandatory_ciphers\>"
syntax match pfmainRef "$\<lmtp_tls_mandatory_exclude_ciphers\>"
syntax match pfmainRef "$\<lmtp_tls_mandatory_protocols\>"
syntax match pfmainRef "$\<lmtp_tls_note_starttls_offer\>"
syntax match pfmainRef "$\<lmtp_tls_per_site\>"
syntax match pfmainRef "$\<lmtp_tls_policy_maps\>"
syntax match pfmainRef "$\<lmtp_tls_protocols\>"
syntax match pfmainRef "$\<lmtp_tls_scert_verifydepth\>"
syntax match pfmainRef "$\<lmtp_tls_secure_cert_match\>"
syntax match pfmainRef "$\<lmtp_tls_security_level\>"
syntax match pfmainRef "$\<lmtp_tls_session_cache_database\>"
syntax match pfmainRef "$\<lmtp_tls_session_cache_timeout\>"
syntax match pfmainRef "$\<lmtp_tls_trust_anchor_file\>"
syntax match pfmainRef "$\<lmtp_tls_verify_cert_match\>"
syntax match pfmainRef "$\<lmtp_use_tls\>"
syntax match pfmainRef "$\<lmtp_xforward_timeout\>"
syntax match pfmainRef "$\<local_command_shell\>"
syntax match pfmainRef "$\<local_delivery_status_filter\>"
syntax match pfmainRef "$\<local_destination_concurrency_limit\>"
syntax match pfmainRef "$\<local_destination_recipient_limit\>"
syntax match pfmainRef "$\<local_header_rewrite_clients\>"
syntax match pfmainRef "$\<local_recipient_maps\>"
syntax match pfmainRef "$\<local_transport\>"
syntax match pfmainRef "$\<luser_relay\>"
syntax match pfmainRef "$\<mail_name\>"
syntax match pfmainRef "$\<mail_owner\>"
syntax match pfmainRef "$\<mail_release_date\>"
syntax match pfmainRef "$\<mail_spool_directory\>"
syntax match pfmainRef "$\<mail_version\>"
syntax match pfmainRef "$\<mailbox_command\>"
syntax match pfmainRef "$\<mailbox_command_maps\>"
syntax match pfmainRef "$\<mailbox_delivery_lock\>"
syntax match pfmainRef "$\<mailbox_size_limit\>"
syntax match pfmainRef "$\<mailbox_transport\>"
syntax match pfmainRef "$\<mailbox_transport_maps\>"
syntax match pfmainRef "$\<mailq_path\>"
syntax match pfmainRef "$\<manpage_directory\>"
syntax match pfmainRef "$\<maps_rbl_domains\>"
syntax match pfmainRef "$\<maps_rbl_reject_code\>"
syntax match pfmainRef "$\<masquerade_classes\>"
syntax match pfmainRef "$\<masquerade_domains\>"
syntax match pfmainRef "$\<masquerade_exceptions\>"
syntax match pfmainRef "$\<master_service_disable\>"
syntax match pfmainRef "$\<max_idle\>"
syntax match pfmainRef "$\<max_use\>"
syntax match pfmainRef "$\<maximal_backoff_time\>"
syntax match pfmainRef "$\<maximal_queue_lifetime\>"
syntax match pfmainRef "$\<message_drop_headers\>"
syntax match pfmainRef "$\<message_reject_characters\>"
syntax match pfmainRef "$\<message_size_limit\>"
syntax match pfmainRef "$\<message_strip_characters\>"
syntax match pfmainRef "$\<meta_directory\>"
syntax match pfmainRef "$\<milter_command_timeout\>"
syntax match pfmainRef "$\<milter_connect_macros\>"
syntax match pfmainRef "$\<milter_connect_timeout\>"
syntax match pfmainRef "$\<milter_content_timeout\>"
syntax match pfmainRef "$\<milter_data_macros\>"
syntax match pfmainRef "$\<milter_default_action\>"
syntax match pfmainRef "$\<milter_end_of_data_macros\>"
syntax match pfmainRef "$\<milter_end_of_header_macros\>"
syntax match pfmainRef "$\<milter_header_checks\>"
syntax match pfmainRef "$\<milter_helo_macros\>"
syntax match pfmainRef "$\<milter_macro_daemon_name\>"
syntax match pfmainRef "$\<milter_macro_v\>"
syntax match pfmainRef "$\<milter_mail_macros\>"
syntax match pfmainRef "$\<milter_protocol\>"
syntax match pfmainRef "$\<milter_rcpt_macros\>"
syntax match pfmainRef "$\<milter_unknown_command_macros\>"
syntax match pfmainRef "$\<mime_boundary_length_limit\>"
syntax match pfmainRef "$\<mime_header_checks\>"
syntax match pfmainRef "$\<mime_nesting_limit\>"
syntax match pfmainRef "$\<minimal_backoff_time\>"
syntax match pfmainRef "$\<multi_instance_directories\>"
syntax match pfmainRef "$\<multi_instance_enable\>"
syntax match pfmainRef "$\<multi_instance_group\>"
syntax match pfmainRef "$\<multi_instance_name\>"
syntax match pfmainRef "$\<multi_instance_wrapper\>"
syntax match pfmainRef "$\<multi_recipient_bounce_reject_code\>"
syntax match pfmainRef "$\<mydestination\>"
syntax match pfmainRef "$\<mydomain\>"
syntax match pfmainRef "$\<myhostname\>"
syntax match pfmainRef "$\<mynetworks\>"
syntax match pfmainRef "$\<mynetworks_style\>"
syntax match pfmainRef "$\<myorigin\>"
syntax match pfmainRef "$\<nested_header_checks\>"
syntax match pfmainRef "$\<newaliases_path\>"
syntax match pfmainRef "$\<non_fqdn_reject_code\>"
syntax match pfmainRef "$\<non_smtpd_milters\>"
syntax match pfmainRef "$\<notify_classes\>"
syntax match pfmainRef "$\<nullmx_reject_code\>"
syntax match pfmainRef "$\<owner_request_special\>"
syntax match pfmainRef "$\<parent_domain_matches_subdomains\>"
syntax match pfmainRef "$\<permit_mx_backup_networks\>"
syntax match pfmainRef "$\<pickup_service_name\>"
syntax match pfmainRef "$\<pipe_delivery_status_filter\>"
syntax match pfmainRef "$\<plaintext_reject_code\>"
syntax match pfmainRef "$\<postmulti_control_commands\>"
syntax match pfmainRef "$\<postmulti_start_commands\>"
syntax match pfmainRef "$\<postmulti_stop_commands\>"
syntax match pfmainRef "$\<postscreen_access_list\>"
syntax match pfmainRef "$\<postscreen_bare_newline_action\>"
syntax match pfmainRef "$\<postscreen_bare_newline_enable\>"
syntax match pfmainRef "$\<postscreen_bare_newline_ttl\>"
syntax match pfmainRef "$\<postscreen_blacklist_action\>"
syntax match pfmainRef "$\<postscreen_cache_cleanup_interval\>"
syntax match pfmainRef "$\<postscreen_cache_map\>"
syntax match pfmainRef "$\<postscreen_cache_retention_time\>"
syntax match pfmainRef "$\<postscreen_client_connection_count_limit\>"
syntax match pfmainRef "$\<postscreen_command_count_limit\>"
syntax match pfmainRef "$\<postscreen_command_filter\>"
syntax match pfmainRef "$\<postscreen_command_time_limit\>"
syntax match pfmainRef "$\<postscreen_disable_vrfy_command\>"
syntax match pfmainRef "$\<postscreen_discard_ehlo_keyword_address_maps\>"
syntax match pfmainRef "$\<postscreen_discard_ehlo_keywords\>"
syntax match pfmainRef "$\<postscreen_dnsbl_action\>"
syntax match pfmainRef "$\<postscreen_dnsbl_reply_map\>"
syntax match pfmainRef "$\<postscreen_dnsbl_sites\>"
syntax match pfmainRef "$\<postscreen_dnsbl_threshold\>"
syntax match pfmainRef "$\<postscreen_dnsbl_timeout\>"
syntax match pfmainRef "$\<postscreen_dnsbl_ttl\>"
syntax match pfmainRef "$\<postscreen_dnsbl_whitelist_threshold\>"
syntax match pfmainRef "$\<postscreen_enforce_tls\>"
syntax match pfmainRef "$\<postscreen_expansion_filter\>"
syntax match pfmainRef "$\<postscreen_forbidden_commands\>"
syntax match pfmainRef "$\<postscreen_greet_action\>"
syntax match pfmainRef "$\<postscreen_greet_banner\>"
syntax match pfmainRef "$\<postscreen_greet_ttl\>"
syntax match pfmainRef "$\<postscreen_greet_wait\>"
syntax match pfmainRef "$\<postscreen_helo_required\>"
syntax match pfmainRef "$\<postscreen_non_smtp_command_action\>"
syntax match pfmainRef "$\<postscreen_non_smtp_command_enable\>"
syntax match pfmainRef "$\<postscreen_non_smtp_command_ttl\>"
syntax match pfmainRef "$\<postscreen_pipelining_action\>"
syntax match pfmainRef "$\<postscreen_pipelining_enable\>"
syntax match pfmainRef "$\<postscreen_pipelining_ttl\>"
syntax match pfmainRef "$\<postscreen_post_queue_limit\>"
syntax match pfmainRef "$\<postscreen_pre_queue_limit\>"
syntax match pfmainRef "$\<postscreen_reject_footer\>"
syntax match pfmainRef "$\<postscreen_tls_security_level\>"
syntax match pfmainRef "$\<postscreen_upstream_proxy_protocol\>"
syntax match pfmainRef "$\<postscreen_upstream_proxy_timeout\>"
syntax match pfmainRef "$\<postscreen_use_tls\>"
syntax match pfmainRef "$\<postscreen_watchdog_timeout\>"
syntax match pfmainRef "$\<postscreen_whitelist_interfaces\>"
syntax match pfmainRef "$\<prepend_delivered_header\>"
syntax match pfmainRef "$\<process_id\>"
syntax match pfmainRef "$\<process_id_directory\>"
syntax match pfmainRef "$\<process_name\>"
syntax match pfmainRef "$\<propagate_unmatched_extensions\>"
syntax match pfmainRef "$\<proxy_interfaces\>"
syntax match pfmainRef "$\<proxy_read_maps\>"
syntax match pfmainRef "$\<proxy_write_maps\>"
syntax match pfmainRef "$\<proxymap_service_name\>"
syntax match pfmainRef "$\<proxywrite_service_name\>"
syntax match pfmainRef "$\<qmgr_clog_warn_time\>"
syntax match pfmainRef "$\<qmgr_daemon_timeout\>"
syntax match pfmainRef "$\<qmgr_fudge_factor\>"
syntax match pfmainRef "$\<qmgr_ipc_timeout\>"
syntax match pfmainRef "$\<qmgr_message_active_limit\>"
syntax match pfmainRef "$\<qmgr_message_recipient_limit\>"
syntax match pfmainRef "$\<qmgr_message_recipient_minimum\>"
syntax match pfmainRef "$\<qmqpd_authorized_clients\>"
syntax match pfmainRef "$\<qmqpd_client_port_logging\>"
syntax match pfmainRef "$\<qmqpd_error_delay\>"
syntax match pfmainRef "$\<qmqpd_timeout\>"
syntax match pfmainRef "$\<queue_directory\>"
syntax match pfmainRef "$\<queue_file_attribute_count_limit\>"
syntax match pfmainRef "$\<queue_minfree\>"
syntax match pfmainRef "$\<queue_run_delay\>"
syntax match pfmainRef "$\<queue_service_name\>"
syntax match pfmainRef "$\<rbl_reply_maps\>"
syntax match pfmainRef "$\<readme_directory\>"
syntax match pfmainRef "$\<receive_override_options\>"
syntax match pfmainRef "$\<recipient_bcc_maps\>"
syntax match pfmainRef "$\<recipient_canonical_classes\>"
syntax match pfmainRef "$\<recipient_canonical_maps\>"
syntax match pfmainRef "$\<recipient_delimiter\>"
syntax match pfmainRef "$\<reject_code\>"
syntax match pfmainRef "$\<reject_tempfail_action\>"
syntax match pfmainRef "$\<relay_clientcerts\>"
syntax match pfmainRef "$\<relay_destination_concurrency_limit\>"
syntax match pfmainRef "$\<relay_destination_recipient_limit\>"
syntax match pfmainRef "$\<relay_domains\>"
syntax match pfmainRef "$\<relay_domains_reject_code\>"
syntax match pfmainRef "$\<relay_recipient_maps\>"
syntax match pfmainRef "$\<relay_transport\>"
syntax match pfmainRef "$\<relayhost\>"
syntax match pfmainRef "$\<relocated_maps\>"
syntax match pfmainRef "$\<remote_header_rewrite_domain\>"
syntax match pfmainRef "$\<require_home_directory\>"
syntax match pfmainRef "$\<reset_owner_alias\>"
syntax match pfmainRef "$\<resolve_dequoted_address\>"
syntax match pfmainRef "$\<resolve_null_domain\>"
syntax match pfmainRef "$\<resolve_numeric_domain\>"
syntax match pfmainRef "$\<rewrite_service_name\>"
syntax match pfmainRef "$\<sample_directory\>"
syntax match pfmainRef "$\<send_cyrus_sasl_authzid\>"
syntax match pfmainRef "$\<sender_based_routing\>"
syntax match pfmainRef "$\<sender_bcc_maps\>"
syntax match pfmainRef "$\<sender_canonical_classes\>"
syntax match pfmainRef "$\<sender_canonical_maps\>"
syntax match pfmainRef "$\<sender_dependent_default_transport_maps\>"
syntax match pfmainRef "$\<sender_dependent_relayhost_maps\>"
syntax match pfmainRef "$\<sendmail_fix_line_endings\>"
syntax match pfmainRef "$\<sendmail_path\>"
syntax match pfmainRef "$\<service_throttle_time\>"
syntax match pfmainRef "$\<setgid_group\>"
syntax match pfmainRef "$\<shlib_directory\>"
syntax match pfmainRef "$\<show_user_unknown_table_name\>"
syntax match pfmainRef "$\<showq_service_name\>"
syntax match pfmainRef "$\<smtp_address_preference\>"
syntax match pfmainRef "$\<smtp_address_verify_target\>"
syntax match pfmainRef "$\<smtp_always_send_ehlo\>"
syntax match pfmainRef "$\<smtp_bind_address\>"
syntax match pfmainRef "$\<smtp_bind_address6\>"
syntax match pfmainRef "$\<smtp_body_checks\>"
syntax match pfmainRef "$\<smtp_cname_overrides_servername\>"
syntax match pfmainRef "$\<smtp_connect_timeout\>"
syntax match pfmainRef "$\<smtp_connection_cache_destinations\>"
syntax match pfmainRef "$\<smtp_connection_cache_on_demand\>"
syntax match pfmainRef "$\<smtp_connection_cache_time_limit\>"
syntax match pfmainRef "$\<smtp_connection_reuse_count_limit\>"
syntax match pfmainRef "$\<smtp_connection_reuse_time_limit\>"
syntax match pfmainRef "$\<smtp_data_done_timeout\>"
syntax match pfmainRef "$\<smtp_data_init_timeout\>"
syntax match pfmainRef "$\<smtp_data_xfer_timeout\>"
syntax match pfmainRef "$\<smtp_defer_if_no_mx_address_found\>"
syntax match pfmainRef "$\<smtp_delivery_status_filter\>"
syntax match pfmainRef "$\<smtp_destination_concurrency_limit\>"
syntax match pfmainRef "$\<smtp_destination_recipient_limit\>"
syntax match pfmainRef "$\<smtp_discard_ehlo_keyword_address_maps\>"
syntax match pfmainRef "$\<smtp_discard_ehlo_keywords\>"
syntax match pfmainRef "$\<smtp_dns_reply_filter\>"
syntax match pfmainRef "$\<smtp_dns_resolver_options\>"
syntax match pfmainRef "$\<smtp_dns_support_level\>"
syntax match pfmainRef "$\<smtp_enforce_tls\>"
syntax match pfmainRef "$\<smtp_fallback_relay\>"
syntax match pfmainRef "$\<smtp_generic_maps\>"
syntax match pfmainRef "$\<smtp_header_checks\>"
syntax match pfmainRef "$\<smtp_helo_name\>"
syntax match pfmainRef "$\<smtp_helo_timeout\>"
syntax match pfmainRef "$\<smtp_host_lookup\>"
syntax match pfmainRef "$\<smtp_line_length_limit\>"
syntax match pfmainRef "$\<smtp_mail_timeout\>"
syntax match pfmainRef "$\<smtp_mime_header_checks\>"
syntax match pfmainRef "$\<smtp_mx_address_limit\>"
syntax match pfmainRef "$\<smtp_mx_session_limit\>"
syntax match pfmainRef "$\<smtp_nested_header_checks\>"
syntax match pfmainRef "$\<smtp_never_send_ehlo\>"
syntax match pfmainRef "$\<smtp_per_record_deadline\>"
syntax match pfmainRef "$\<smtp_pix_workaround_delay_time\>"
syntax match pfmainRef "$\<smtp_pix_workaround_maps\>"
syntax match pfmainRef "$\<smtp_pix_workaround_threshold_time\>"
syntax match pfmainRef "$\<smtp_pix_workarounds\>"
syntax match pfmainRef "$\<smtp_quit_timeout\>"
syntax match pfmainRef "$\<smtp_quote_rfc821_envelope\>"
syntax match pfmainRef "$\<smtp_randomize_addresses\>"
syntax match pfmainRef "$\<smtp_rcpt_timeout\>"
syntax match pfmainRef "$\<smtp_reply_filter\>"
syntax match pfmainRef "$\<smtp_rset_timeout\>"
syntax match pfmainRef "$\<smtp_sasl_auth_cache_name\>"
syntax match pfmainRef "$\<smtp_sasl_auth_cache_time\>"
syntax match pfmainRef "$\<smtp_sasl_auth_enable\>"
syntax match pfmainRef "$\<smtp_sasl_auth_soft_bounce\>"
syntax match pfmainRef "$\<smtp_sasl_mechanism_filter\>"
syntax match pfmainRef "$\<smtp_sasl_password_maps\>"
syntax match pfmainRef "$\<smtp_sasl_path\>"
syntax match pfmainRef "$\<smtp_sasl_security_options\>"
syntax match pfmainRef "$\<smtp_sasl_tls_security_options\>"
syntax match pfmainRef "$\<smtp_sasl_tls_verified_security_options\>"
syntax match pfmainRef "$\<smtp_sasl_type\>"
syntax match pfmainRef "$\<smtp_send_dummy_mail_auth\>"
syntax match pfmainRef "$\<smtp_send_xforward_command\>"
syntax match pfmainRef "$\<smtp_sender_dependent_authentication\>"
syntax match pfmainRef "$\<smtp_skip_4xx_greeting\>"
syntax match pfmainRef "$\<smtp_skip_5xx_greeting\>"
syntax match pfmainRef "$\<smtp_skip_quit_response\>"
syntax match pfmainRef "$\<smtp_starttls_timeout\>"
syntax match pfmainRef "$\<smtp_tls_CAfile\>"
syntax match pfmainRef "$\<smtp_tls_CApath\>"
syntax match pfmainRef "$\<smtp_tls_block_early_mail_reply\>"
syntax match pfmainRef "$\<smtp_tls_cert_file\>"
syntax match pfmainRef "$\<smtp_tls_cipherlist\>"
syntax match pfmainRef "$\<smtp_tls_ciphers\>"
syntax match pfmainRef "$\<smtp_tls_dcert_file\>"
syntax match pfmainRef "$\<smtp_tls_dkey_file\>"
syntax match pfmainRef "$\<smtp_tls_eccert_file\>"
syntax match pfmainRef "$\<smtp_tls_eckey_file\>"
syntax match pfmainRef "$\<smtp_tls_enforce_peername\>"
syntax match pfmainRef "$\<smtp_tls_exclude_ciphers\>"
syntax match pfmainRef "$\<smtp_tls_fingerprint_cert_match\>"
syntax match pfmainRef "$\<smtp_tls_fingerprint_digest\>"
syntax match pfmainRef "$\<smtp_tls_force_insecure_host_tlsa_lookup\>"
syntax match pfmainRef "$\<smtp_tls_key_file\>"
syntax match pfmainRef "$\<smtp_tls_loglevel\>"
syntax match pfmainRef "$\<smtp_tls_mandatory_ciphers\>"
syntax match pfmainRef "$\<smtp_tls_mandatory_exclude_ciphers\>"
syntax match pfmainRef "$\<smtp_tls_mandatory_protocols\>"
syntax match pfmainRef "$\<smtp_tls_note_starttls_offer\>"
syntax match pfmainRef "$\<smtp_tls_per_site\>"
syntax match pfmainRef "$\<smtp_tls_policy_maps\>"
syntax match pfmainRef "$\<smtp_tls_protocols\>"
syntax match pfmainRef "$\<smtp_tls_scert_verifydepth\>"
syntax match pfmainRef "$\<smtp_tls_secure_cert_match\>"
syntax match pfmainRef "$\<smtp_tls_security_level\>"
syntax match pfmainRef "$\<smtp_tls_session_cache_database\>"
syntax match pfmainRef "$\<smtp_tls_session_cache_timeout\>"
syntax match pfmainRef "$\<smtp_tls_trust_anchor_file\>"
syntax match pfmainRef "$\<smtp_tls_verify_cert_match\>"
syntax match pfmainRef "$\<smtp_tls_wrappermode\>"
syntax match pfmainRef "$\<smtp_use_tls\>"
syntax match pfmainRef "$\<smtp_xforward_timeout\>"
syntax match pfmainRef "$\<smtpd_authorized_verp_clients\>"
syntax match pfmainRef "$\<smtpd_authorized_xclient_hosts\>"
syntax match pfmainRef "$\<smtpd_authorized_xforward_hosts\>"
syntax match pfmainRef "$\<smtpd_banner\>"
syntax match pfmainRef "$\<smtpd_client_connection_count_limit\>"
syntax match pfmainRef "$\<smtpd_client_connection_rate_limit\>"
syntax match pfmainRef "$\<smtpd_client_event_limit_exceptions\>"
syntax match pfmainRef "$\<smtpd_client_message_rate_limit\>"
syntax match pfmainRef "$\<smtpd_client_new_tls_session_rate_limit\>"
syntax match pfmainRef "$\<smtpd_client_port_logging\>"
syntax match pfmainRef "$\<smtpd_client_recipient_rate_limit\>"
syntax match pfmainRef "$\<smtpd_client_restrictions\>"
syntax match pfmainRef "$\<smtpd_command_filter\>"
syntax match pfmainRef "$\<smtpd_data_restrictions\>"
syntax match pfmainRef "$\<smtpd_delay_open_until_valid_rcpt\>"
syntax match pfmainRef "$\<smtpd_delay_reject\>"
syntax match pfmainRef "$\<smtpd_discard_ehlo_keyword_address_maps\>"
syntax match pfmainRef "$\<smtpd_discard_ehlo_keywords\>"
syntax match pfmainRef "$\<smtpd_dns_reply_filter\>"
syntax match pfmainRef "$\<smtpd_end_of_data_restrictions\>"
syntax match pfmainRef "$\<smtpd_enforce_tls\>"
syntax match pfmainRef "$\<smtpd_error_sleep_time\>"
syntax match pfmainRef "$\<smtpd_etrn_restrictions\>"
syntax match pfmainRef "$\<smtpd_expansion_filter\>"
syntax match pfmainRef "$\<smtpd_forbidden_commands\>"
syntax match pfmainRef "$\<smtpd_hard_error_limit\>"
syntax match pfmainRef "$\<smtpd_helo_required\>"
syntax match pfmainRef "$\<smtpd_helo_restrictions\>"
syntax match pfmainRef "$\<smtpd_history_flush_threshold\>"
syntax match pfmainRef "$\<smtpd_junk_command_limit\>"
syntax match pfmainRef "$\<smtpd_log_access_permit_actions\>"
syntax match pfmainRef "$\<smtpd_milters\>"
syntax match pfmainRef "$\<smtpd_noop_commands\>"
syntax match pfmainRef "$\<smtpd_null_access_lookup_key\>"
syntax match pfmainRef "$\<smtpd_peername_lookup\>"
syntax match pfmainRef "$\<smtpd_per_record_deadline\>"
syntax match pfmainRef "$\<smtpd_policy_service_default_action\>"
syntax match pfmainRef "$\<smtpd_policy_service_max_idle\>"
syntax match pfmainRef "$\<smtpd_policy_service_max_ttl\>"
syntax match pfmainRef "$\<smtpd_policy_service_request_limit\>"
syntax match pfmainRef "$\<smtpd_policy_service_retry_delay\>"
syntax match pfmainRef "$\<smtpd_policy_service_timeout\>"
syntax match pfmainRef "$\<smtpd_policy_service_try_limit\>"
syntax match pfmainRef "$\<smtpd_proxy_ehlo\>"
syntax match pfmainRef "$\<smtpd_proxy_filter\>"
syntax match pfmainRef "$\<smtpd_proxy_options\>"
syntax match pfmainRef "$\<smtpd_proxy_timeout\>"
syntax match pfmainRef "$\<smtpd_recipient_limit\>"
syntax match pfmainRef "$\<smtpd_recipient_overshoot_limit\>"
syntax match pfmainRef "$\<smtpd_recipient_restrictions\>"
syntax match pfmainRef "$\<smtpd_reject_footer\>"
syntax match pfmainRef "$\<smtpd_reject_unlisted_recipient\>"
syntax match pfmainRef "$\<smtpd_reject_unlisted_sender\>"
syntax match pfmainRef "$\<smtpd_relay_restrictions\>"
syntax match pfmainRef "$\<smtpd_restriction_classes\>"
syntax match pfmainRef "$\<smtpd_sasl_application_name\>"
syntax match pfmainRef "$\<smtpd_sasl_auth_enable\>"
syntax match pfmainRef "$\<smtpd_sasl_authenticated_header\>"
syntax match pfmainRef "$\<smtpd_sasl_exceptions_networks\>"
syntax match pfmainRef "$\<smtpd_sasl_local_domain\>"
syntax match pfmainRef "$\<smtpd_sasl_path\>"
syntax match pfmainRef "$\<smtpd_sasl_security_options\>"
syntax match pfmainRef "$\<smtpd_sasl_service\>"
syntax match pfmainRef "$\<smtpd_sasl_tls_security_options\>"
syntax match pfmainRef "$\<smtpd_sasl_type\>"
syntax match pfmainRef "$\<smtpd_sender_login_maps\>"
syntax match pfmainRef "$\<smtpd_sender_restrictions\>"
syntax match pfmainRef "$\<smtpd_service_name\>"
syntax match pfmainRef "$\<smtpd_soft_error_limit\>"
syntax match pfmainRef "$\<smtpd_starttls_timeout\>"
syntax match pfmainRef "$\<smtpd_timeout\>"
syntax match pfmainRef "$\<smtpd_tls_CAfile\>"
syntax match pfmainRef "$\<smtpd_tls_CApath\>"
syntax match pfmainRef "$\<smtpd_tls_always_issue_session_ids\>"
syntax match pfmainRef "$\<smtpd_tls_ask_ccert\>"
syntax match pfmainRef "$\<smtpd_tls_auth_only\>"
syntax match pfmainRef "$\<smtpd_tls_ccert_verifydepth\>"
syntax match pfmainRef "$\<smtpd_tls_cert_file\>"
syntax match pfmainRef "$\<smtpd_tls_cipherlist\>"
syntax match pfmainRef "$\<smtpd_tls_ciphers\>"
syntax match pfmainRef "$\<smtpd_tls_dcert_file\>"
syntax match pfmainRef "$\<smtpd_tls_dh1024_param_file\>"
syntax match pfmainRef "$\<smtpd_tls_dh512_param_file\>"
syntax match pfmainRef "$\<smtpd_tls_dkey_file\>"
syntax match pfmainRef "$\<smtpd_tls_eccert_file\>"
syntax match pfmainRef "$\<smtpd_tls_eckey_file\>"
syntax match pfmainRef "$\<smtpd_tls_eecdh_grade\>"
syntax match pfmainRef "$\<smtpd_tls_exclude_ciphers\>"
syntax match pfmainRef "$\<smtpd_tls_fingerprint_digest\>"
syntax match pfmainRef "$\<smtpd_tls_key_file\>"
syntax match pfmainRef "$\<smtpd_tls_loglevel\>"
syntax match pfmainRef "$\<smtpd_tls_mandatory_ciphers\>"
syntax match pfmainRef "$\<smtpd_tls_mandatory_exclude_ciphers\>"
syntax match pfmainRef "$\<smtpd_tls_mandatory_protocols\>"
syntax match pfmainRef "$\<smtpd_tls_protocols\>"
syntax match pfmainRef "$\<smtpd_tls_received_header\>"
syntax match pfmainRef "$\<smtpd_tls_req_ccert\>"
syntax match pfmainRef "$\<smtpd_tls_security_level\>"
syntax match pfmainRef "$\<smtpd_tls_session_cache_database\>"
syntax match pfmainRef "$\<smtpd_tls_session_cache_timeout\>"
syntax match pfmainRef "$\<smtpd_tls_wrappermode\>"
syntax match pfmainRef "$\<smtpd_upstream_proxy_protocol\>"
syntax match pfmainRef "$\<smtpd_upstream_proxy_timeout\>"
syntax match pfmainRef "$\<smtpd_use_tls\>"
syntax match pfmainRef "$\<smtputf8_autodetect_classes\>"
syntax match pfmainRef "$\<smtputf8_enable\>"
syntax match pfmainRef "$\<soft_bounce\>"
syntax match pfmainRef "$\<stale_lock_time\>"
syntax match pfmainRef "$\<stress\>"
syntax match pfmainRef "$\<strict_7bit_headers\>"
syntax match pfmainRef "$\<strict_8bitmime\>"
syntax match pfmainRef "$\<strict_8bitmime_body\>"
syntax match pfmainRef "$\<strict_mailbox_ownership\>"
syntax match pfmainRef "$\<strict_mime_encoding_domain\>"
syntax match pfmainRef "$\<strict_rfc821_envelopes\>"
syntax match pfmainRef "$\<strict_smtputf8\>"
syntax match pfmainRef "$\<sun_mailtool_compatibility\>"
syntax match pfmainRef "$\<swap_bangpath\>"
syntax match pfmainRef "$\<syslog_facility\>"
syntax match pfmainRef "$\<syslog_name\>"
syntax match pfmainRef "$\<tcp_windowsize\>"
syntax match pfmainRef "$\<tls_append_default_CA\>"
syntax match pfmainRef "$\<tls_daemon_random_bytes\>"
syntax match pfmainRef "$\<tls_dane_digest_agility\>"
syntax match pfmainRef "$\<tls_dane_digests\>"
syntax match pfmainRef "$\<tls_dane_trust_anchor_digest_enable\>"
syntax match pfmainRef "$\<tls_disable_workarounds\>"
syntax match pfmainRef "$\<tls_eecdh_strong_curve\>"
syntax match pfmainRef "$\<tls_eecdh_ultra_curve\>"
syntax match pfmainRef "$\<tls_export_cipherlist\>"
syntax match pfmainRef "$\<tls_high_cipherlist\>"
syntax match pfmainRef "$\<tls_legacy_public_key_fingerprints\>"
syntax match pfmainRef "$\<tls_low_cipherlist\>"
syntax match pfmainRef "$\<tls_medium_cipherlist\>"
syntax match pfmainRef "$\<tls_null_cipherlist\>"
syntax match pfmainRef "$\<tls_preempt_cipherlist\>"
syntax match pfmainRef "$\<tls_random_bytes\>"
syntax match pfmainRef "$\<tls_random_exchange_name\>"
syntax match pfmainRef "$\<tls_random_prng_update_period\>"
syntax match pfmainRef "$\<tls_random_reseed_period\>"
syntax match pfmainRef "$\<tls_random_source\>"
syntax match pfmainRef "$\<tls_session_ticket_cipher\>"
syntax match pfmainRef "$\<tls_ssl_options\>"
syntax match pfmainRef "$\<tls_wildcard_matches_multiple_labels\>"
syntax match pfmainRef "$\<tlsmgr_service_name\>"
syntax match pfmainRef "$\<tlsproxy_enforce_tls\>"
syntax match pfmainRef "$\<tlsproxy_service_name\>"
syntax match pfmainRef "$\<tlsproxy_tls_CAfile\>"
syntax match pfmainRef "$\<tlsproxy_tls_CApath\>"
syntax match pfmainRef "$\<tlsproxy_tls_always_issue_session_ids\>"
syntax match pfmainRef "$\<tlsproxy_tls_ask_ccert\>"
syntax match pfmainRef "$\<tlsproxy_tls_ccert_verifydepth\>"
syntax match pfmainRef "$\<tlsproxy_tls_cert_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_ciphers\>"
syntax match pfmainRef "$\<tlsproxy_tls_dcert_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_dh1024_param_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_dh512_param_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_dkey_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_eccert_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_eckey_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_eecdh_grade\>"
syntax match pfmainRef "$\<tlsproxy_tls_exclude_ciphers\>"
syntax match pfmainRef "$\<tlsproxy_tls_fingerprint_digest\>"
syntax match pfmainRef "$\<tlsproxy_tls_key_file\>"
syntax match pfmainRef "$\<tlsproxy_tls_loglevel\>"
syntax match pfmainRef "$\<tlsproxy_tls_mandatory_ciphers\>"
syntax match pfmainRef "$\<tlsproxy_tls_mandatory_exclude_ciphers\>"
syntax match pfmainRef "$\<tlsproxy_tls_mandatory_protocols\>"
syntax match pfmainRef "$\<tlsproxy_tls_protocols\>"
syntax match pfmainRef "$\<tlsproxy_tls_req_ccert\>"
syntax match pfmainRef "$\<tlsproxy_tls_security_level\>"
syntax match pfmainRef "$\<tlsproxy_tls_session_cache_timeout\>"
syntax match pfmainRef "$\<tlsproxy_use_tls\>"
syntax match pfmainRef "$\<tlsproxy_watchdog_timeout\>"
syntax match pfmainRef "$\<trace_service_name\>"
syntax match pfmainRef "$\<transport_delivery_slot_cost\>"
syntax match pfmainRef "$\<transport_delivery_slot_discount\>"
syntax match pfmainRef "$\<transport_delivery_slot_loan\>"
syntax match pfmainRef "$\<transport_destination_concurrency_failed_cohort_limit\>"
syntax match pfmainRef "$\<transport_destination_concurrency_limit\>"
syntax match pfmainRef "$\<transport_destination_concurrency_negative_feedback\>"
syntax match pfmainRef "$\<transport_destination_concurrency_positive_feedback\>"
syntax match pfmainRef "$\<transport_destination_rate_delay\>"
syntax match pfmainRef "$\<transport_destination_recipient_limit\>"
syntax match pfmainRef "$\<transport_extra_recipient_limit\>"
syntax match pfmainRef "$\<transport_initial_destination_concurrency\>"
syntax match pfmainRef "$\<transport_maps\>"
syntax match pfmainRef "$\<transport_minimum_delivery_slots\>"
syntax match pfmainRef "$\<transport_recipient_limit\>"
syntax match pfmainRef "$\<transport_recipient_refill_delay\>"
syntax match pfmainRef "$\<transport_recipient_refill_limit\>"
syntax match pfmainRef "$\<transport_retry_time\>"
syntax match pfmainRef "$\<transport_time_limit\>"
syntax match pfmainRef "$\<trigger_timeout\>"
syntax match pfmainRef "$\<undisclosed_recipients_header\>"
syntax match pfmainRef "$\<unknown_address_reject_code\>"
syntax match pfmainRef "$\<unknown_address_tempfail_action\>"
syntax match pfmainRef "$\<unknown_client_reject_code\>"
syntax match pfmainRef "$\<unknown_helo_hostname_tempfail_action\>"
syntax match pfmainRef "$\<unknown_hostname_reject_code\>"
syntax match pfmainRef "$\<unknown_local_recipient_reject_code\>"
syntax match pfmainRef "$\<unknown_relay_recipient_reject_code\>"
syntax match pfmainRef "$\<unknown_virtual_alias_reject_code\>"
syntax match pfmainRef "$\<unknown_virtual_mailbox_reject_code\>"
syntax match pfmainRef "$\<unverified_recipient_defer_code\>"
syntax match pfmainRef "$\<unverified_recipient_reject_code\>"
syntax match pfmainRef "$\<unverified_recipient_reject_reason\>"
syntax match pfmainRef "$\<unverified_recipient_tempfail_action\>"
syntax match pfmainRef "$\<unverified_sender_defer_code\>"
syntax match pfmainRef "$\<unverified_sender_reject_code\>"
syntax match pfmainRef "$\<unverified_sender_reject_reason\>"
syntax match pfmainRef "$\<unverified_sender_tempfail_action\>"
syntax match pfmainRef "$\<verp_delimiter_filter\>"
syntax match pfmainRef "$\<virtual_alias_address_length_limit\>"
syntax match pfmainRef "$\<virtual_alias_domains\>"
syntax match pfmainRef "$\<virtual_alias_expansion_limit\>"
syntax match pfmainRef "$\<virtual_alias_maps\>"
syntax match pfmainRef "$\<virtual_alias_recursion_limit\>"
syntax match pfmainRef "$\<virtual_delivery_status_filter\>"
syntax match pfmainRef "$\<virtual_destination_concurrency_limit\>"
syntax match pfmainRef "$\<virtual_destination_recipient_limit\>"
syntax match pfmainRef "$\<virtual_gid_maps\>"
syntax match pfmainRef "$\<virtual_mailbox_base\>"
syntax match pfmainRef "$\<virtual_mailbox_domains\>"
syntax match pfmainRef "$\<virtual_mailbox_limit\>"
syntax match pfmainRef "$\<virtual_mailbox_lock\>"
syntax match pfmainRef "$\<virtual_mailbox_maps\>"
syntax match pfmainRef "$\<virtual_maps\>"
syntax match pfmainRef "$\<virtual_minimum_uid\>"
syntax match pfmainRef "$\<virtual_transport\>"
syntax match pfmainRef "$\<virtual_uid_maps\>"

syntax keyword pfmainWord accept
syntax keyword pfmainWord all
syntax keyword pfmainWord always
syntax keyword pfmainWord check_address_map
syntax keyword pfmainWord check_ccert_access
syntax keyword pfmainWord check_client_a_access
syntax keyword pfmainWord check_client_access
syntax keyword pfmainWord check_client_mx_access
syntax keyword pfmainWord check_client_ns_access
syntax keyword pfmainWord check_etrn_access
syntax keyword pfmainWord check_helo_a_access
syntax keyword pfmainWord check_helo_access
syntax keyword pfmainWord check_helo_mx_access
syntax keyword pfmainWord check_helo_ns_access
syntax keyword pfmainWord check_policy_service
syntax keyword pfmainWord check_recipient_a_access
syntax keyword pfmainWord check_recipient_access
syntax keyword pfmainWord check_recipient_maps
syntax keyword pfmainWord check_recipient_mx_access
syntax keyword pfmainWord check_recipient_ns_access
syntax keyword pfmainWord check_relay_domains
syntax keyword pfmainWord check_reverse_client_hostname_a_access
syntax keyword pfmainWord check_reverse_client_hostname_access
syntax keyword pfmainWord check_reverse_client_hostname_mx_access
syntax keyword pfmainWord check_reverse_client_hostname_ns_access
syntax keyword pfmainWord check_sasl_access
syntax keyword pfmainWord check_sender_a_access
syntax keyword pfmainWord check_sender_access
syntax keyword pfmainWord check_sender_mx_access
syntax keyword pfmainWord check_sender_ns_access
syntax keyword pfmainWord class
syntax keyword pfmainWord client_address
syntax keyword pfmainWord client_port
syntax keyword pfmainWord dane
syntax keyword pfmainWord dane-only
syntax keyword pfmainWord defer
syntax keyword pfmainWord defer_if_permit
syntax keyword pfmainWord defer_if_reject
syntax keyword pfmainWord defer_unauth_destination
syntax keyword pfmainWord disabled
syntax keyword pfmainWord dns
syntax keyword pfmainWord dnssec
syntax keyword pfmainWord drop
syntax keyword pfmainWord dunno
syntax keyword pfmainWord enabled
syntax keyword pfmainWord encrypt
syntax keyword pfmainWord enforce
syntax keyword pfmainWord envelope_recipient
syntax keyword pfmainWord envelope_sender
syntax keyword pfmainWord export
syntax keyword pfmainWord fingerprint
syntax keyword pfmainWord header_recipient
syntax keyword pfmainWord header_sender
syntax keyword pfmainWord high
syntax keyword pfmainWord host
syntax keyword pfmainWord ignore
syntax keyword pfmainWord ipv4
syntax keyword pfmainWord ipv6
syntax keyword pfmainWord localtime
syntax keyword pfmainWord low
syntax keyword pfmainWord may
syntax keyword pfmainWord maybe
syntax keyword pfmainWord medium
syntax keyword pfmainWord native
syntax keyword pfmainWord never
syntax keyword pfmainWord no_address_mappings
syntax keyword pfmainWord no_header_body_checks
syntax keyword pfmainWord no_header_reply
syntax keyword pfmainWord no_milters
syntax keyword pfmainWord no_unknown_recipient_checks
syntax keyword pfmainWord none
syntax keyword pfmainWord null
syntax keyword pfmainWord off
syntax keyword pfmainWord on
syntax keyword pfmainWord permit
syntax keyword pfmainWord permit_auth_destination
syntax keyword pfmainWord permit_dnswl_client
syntax keyword pfmainWord permit_inet_interfaces
syntax keyword pfmainWord permit_mx_backup
syntax keyword pfmainWord permit_mynetworks
syntax keyword pfmainWord permit_naked_ip_address
syntax keyword pfmainWord permit_rhswl_client
syntax keyword pfmainWord permit_sasl_authenticated
syntax keyword pfmainWord permit_tls_all_clientcerts
syntax keyword pfmainWord permit_tls_clientcerts
syntax keyword pfmainWord quarantine
syntax keyword pfmainWord reject
syntax keyword pfmainWord reject_authenticated_sender_login_mismatch
syntax keyword pfmainWord reject_invalid_helo_hostname
syntax keyword pfmainWord reject_invalid_hostname
syntax keyword pfmainWord reject_known_sender_login_mismatch
syntax keyword pfmainWord reject_maps_rbl
syntax keyword pfmainWord reject_multi_recipient_bounce
syntax keyword pfmainWord reject_non_fqdn_helo_hostname
syntax keyword pfmainWord reject_non_fqdn_hostname
syntax keyword pfmainWord reject_non_fqdn_recipient
syntax keyword pfmainWord reject_non_fqdn_sender
syntax keyword pfmainWord reject_plaintext_session
syntax keyword pfmainWord reject_rbl
syntax keyword pfmainWord reject_rbl_client
syntax keyword pfmainWord reject_rhsbl_client
syntax keyword pfmainWord reject_rhsbl_helo
syntax keyword pfmainWord reject_rhsbl_recipient
syntax keyword pfmainWord reject_rhsbl_reverse_client
syntax keyword pfmainWord reject_rhsbl_sender
syntax keyword pfmainWord reject_sender_login_mismatch
syntax keyword pfmainWord reject_unauth_destination
syntax keyword pfmainWord reject_unauth_pipelining
syntax keyword pfmainWord reject_unauthenticated_sender_login_mismatch
syntax keyword pfmainWord reject_unknown_address
syntax keyword pfmainWord reject_unknown_client
syntax keyword pfmainWord reject_unknown_client_hostname
syntax keyword pfmainWord reject_unknown_forward_client_hostname
syntax keyword pfmainWord reject_unknown_helo_hostname
syntax keyword pfmainWord reject_unknown_hostname
syntax keyword pfmainWord reject_unknown_recipient_domain
syntax keyword pfmainWord reject_unknown_reverse_client_hostname
syntax keyword pfmainWord reject_unknown_sender_domain
syntax keyword pfmainWord reject_unlisted_recipient
syntax keyword pfmainWord reject_unlisted_sender
syntax keyword pfmainWord reject_unverified_recipient
syntax keyword pfmainWord reject_unverified_sender
syntax keyword pfmainWord secure
syntax keyword pfmainWord server_name
syntax keyword pfmainWord sleep
syntax keyword pfmainWord smtpd_access_maps
syntax keyword pfmainWord speed_adjust
syntax keyword pfmainWord strong
syntax keyword pfmainWord subnet
syntax keyword pfmainWord tempfail
syntax keyword pfmainWord ultra
syntax keyword pfmainWord warn_if_reject
syntax keyword pfmainWord CRYPTOPRO_TLSEXT_BUG
syntax keyword pfmainWord DONT_INSERT_EMPTY_FRAGMENTS
syntax keyword pfmainWord LEGACY_SERVER_CONNECT
syntax keyword pfmainWord MICROSOFT_BIG_SSLV3_BUFFER
syntax keyword pfmainWord MICROSOFT_SESS_ID_BUG
syntax keyword pfmainWord MSIE_SSLV2_RSA_PADDING
syntax keyword pfmainWord NETSCAPE_CHALLENGE_BUG
syntax keyword pfmainWord NETSCAPE_REUSE_CIPHER_CHANGE_BUG
syntax keyword pfmainWord SSLEAY_080_CLIENT_DH_BUG
syntax keyword pfmainWord SSLREF2_REUSE_CERT_TYPE_BUG
syntax keyword pfmainWord TLS_BLOCK_PADDING_BUG
syntax keyword pfmainWord TLS_D5_BUG
syntax keyword pfmainWord TLS_ROLLBACK_BUG

syntax keyword pfmainDict	btree cidr environ hash nis pcre proxy regexp sdbm static tcp unix
syntax keyword pfmainQueueDir	incoming active deferred corrupt hold
syntax keyword pfmainTransport	smtp lmtp unix local relay uucp virtual
syntax keyword pfmainLock	fcntl flock dotlock
syntax keyword pfmainAnswer	yes no

syntax match pfmainComment	"#.*$"
syntax match pfmainNumber	"\<\d\+\>"
syntax match pfmainTime		"\<\d\+[hmsd]\>"
syntax match pfmainIP		"\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>"
syntax match pfmainVariable	"\$\w\+" contains=pfmainRef

syntax match pfmainSpecial	"\<alias\>"
syntax match pfmainSpecial	"\<canonical\>"
syntax match pfmainSpecial	"\<forward\>"
syntax match pfmainSpecial	"\<generic\>"
syntax match pfmainSpecial	"\<include\>"
syntax match pfmainSpecial	"\<virtual\>"

syntax match pfmainSpecial	"\<delay_dotcrlf\>"
syntax match pfmainSpecial	"\<disable_esmtp\>"

syntax match pfmainSpecial	"\<res_defnames\>"
syntax match pfmainSpecial	"\<res_dnsrch\>"

syntax match pfmainSpecial	"\<command\>"
syntax match pfmainSpecial	"\<file\>"

syntax match pfmainSpecial	"\<forward_secrecy\>"
syntax match pfmainSpecial	"\<mutual_auth\>"
syntax match pfmainSpecial	"\<noactive\>"
syntax match pfmainSpecial	"\<noanonymous\>"
syntax match pfmainSpecial	"\<nodictionary\>"
syntax match pfmainSpecial	"\<noplaintext\>"

syntax match pfmainSpecial	"\<bounce\>"
syntax match pfmainSpecial	"\<2bounce\>"
syntax match pfmainSpecial	"\<data\>"
syntax match pfmainSpecial	"\<delay\>"
syntax match pfmainSpecial	"\<policy\>"
syntax match pfmainSpecial	"\<protocol\>"
syntax match pfmainSpecial	"\<resource\>"
syntax match pfmainSpecial	"\<software\>"

syntax match pfmainSpecial	"\<cleanup\>"
syntax match pfmainSpecial	"\<cyrus\>"
syntax match pfmainSpecial	"\<error\>"
syntax match pfmainSpecial	"\<flush\>"
syntax match pfmainSpecial	"\<notify\>"
syntax match pfmainSpecial	"\<pickup\>"
syntax match pfmainSpecial	"\<postdrop\>"
syntax match pfmainSpecial	"\<qmgr\>"
syntax match pfmainSpecial	"\<qmqpd\>"
syntax match pfmainSpecial	"\<rewrite\>"
syntax match pfmainSpecial	"\<scache\>"
syntax match pfmainSpecial	"\<sendmail\>"
syntax match pfmainSpecial	"\<showq\>"
syntax match pfmainSpecial	"\<smtpd\>"
syntax match pfmainSpecial	"\<trace\>"
syntax match pfmainSpecial	"\<verify\>"


hi def link pfmainConf	Statement
hi def link pfmainRef	PreProc
hi def link pfmainWord	identifier

hi def link pfmainDict	Type
hi def link pfmainQueueDir	Constant
hi def link pfmainTransport	Constant
hi def link pfmainLock	Constant
hi def link pfmainAnswer	Constant

hi def link pfmainComment	Comment
hi def link pfmainNumber	Number
hi def link pfmainTime	Number
hi def link pfmainIP		Number
hi def link pfmainVariable	Error
hi def link pfmainSpecial	Special


let b:current_syntax = "pfmain"

" vim: ts=8 sw=2
PK�j�ZQ�ZRvim80/syntax/ampl.vimnu�[���" Language:     ampl (A Mathematical Programming Language)
" Maintainer:   Krief David <david.krief@etu.enseeiht.fr> or <david_krief@hotmail.com>
" Last Change:  2003 May 11


" quit when a syntax file was already loaded
if exists("b:current_syntax")
 finish
endif




"--
syn match   amplEntityKeyword     "\(subject to\)\|\(subj to\)\|\(s\.t\.\)"
syn keyword amplEntityKeyword	  minimize   maximize  objective

syn keyword amplEntityKeyword	  coeff      coef      cover	    obj       default
syn keyword amplEntityKeyword	  from	     to        to_come	    net_in    net_out
syn keyword amplEntityKeyword	  dimen      dimension



"--
syn keyword amplType		  integer    binary    set	    param     var
syn keyword amplType		  node	     ordered   circular     reversed  symbolic
syn keyword amplType		  arc



"--
syn keyword amplStatement	  check      close     \display     drop      include
syn keyword amplStatement	  print      printf    quit	    reset     restore
syn keyword amplStatement	  solve      update    write	    shell     model
syn keyword amplStatement	  data	     option    let	    solution  fix
syn keyword amplStatement	  unfix      end       function     pipe      format



"--
syn keyword amplConditional	  if	     then      else	    and       or
syn keyword amplConditional	  exists     forall    in	    not       within



"--
syn keyword amplRepeat		  while      repeat    for



"--
syn keyword amplOperators	  union      diff      difference   symdiff   sum
syn keyword amplOperators	  inter      intersect intersection cross     setof
syn keyword amplOperators	  by	     less      mod	    div       product
"syn keyword amplOperators	   min	      max
"conflict between functions max, min and operators max, min

syn match   amplBasicOperators    "||\|<=\|==\|\^\|<\|=\|!\|-\|\.\.\|:="
syn match   amplBasicOperators    "&&\|>=\|!=\|\*\|>\|:\|/\|+\|\*\*"




"--
syn match   amplComment		"\#.*"
syn region  amplComment		start=+\/\*+		  end=+\*\/+

syn region  amplStrings		start=+\'+    skip=+\\'+  end=+\'+
syn region  amplStrings		start=+\"+    skip=+\\"+  end=+\"+

syn match   amplNumerics	"[+-]\=\<\d\+\(\.\d\+\)\=\([dDeE][-+]\=\d\+\)\=\>"
syn match   amplNumerics	"[+-]\=Infinity"


"--
syn keyword amplSetFunction	  card	     next     nextw	  prev	    prevw
syn keyword amplSetFunction	  first      last     member	  ord	    ord0

syn keyword amplBuiltInFunction   abs	     acos     acosh	  alias     asin
syn keyword amplBuiltInFunction   asinh      atan     atan2	  atanh     ceil
syn keyword amplBuiltInFunction   cos	     exp      floor	  log	    log10
syn keyword amplBuiltInFunction   max	     min      precision   round     sin
syn keyword amplBuiltInFunction   sinh	     sqrt     tan	  tanh	    trunc

syn keyword amplRandomGenerator   Beta	     Cauchy   Exponential Gamma     Irand224
syn keyword amplRandomGenerator   Normal     Poisson  Uniform	  Uniform01



"-- to highlight the 'dot-suffixes'
syn match   amplDotSuffix	"\h\w*\.\(lb\|ub\)"hs=e-2
syn match   amplDotSuffix	"\h\w*\.\(lb0\|lb1\|lb2\|lrc\|ub0\)"hs=e-3
syn match   amplDotSuffix	"\h\w*\.\(ub1\|ub2\|urc\|val\|lbs\|ubs\)"hs=e-3
syn match   amplDotSuffix	"\h\w*\.\(init\|body\|dinit\|dual\)"hs=e-4
syn match   amplDotSuffix	"\h\w*\.\(init0\|ldual\|slack\|udual\)"hs=e-5
syn match   amplDotSuffix	"\h\w*\.\(lslack\|uslack\|dinit0\)"hs=e-6



"--
syn match   amplPiecewise	"<<\|>>"



"-- Todo.
syn keyword amplTodo contained	 TODO FIXME XXX











" The default methods for highlighting. Can be overridden later.
hi def link amplEntityKeyword	Keyword
hi def link amplType		Type
hi def link amplStatement		Statement
hi def link amplOperators		Operator
hi def link amplBasicOperators	Operator
hi def link amplConditional	Conditional
hi def link amplRepeat		Repeat
hi def link amplStrings		String
hi def link amplNumerics		Number
hi def link amplSetFunction	Function
hi def link amplBuiltInFunction	Function
hi def link amplRandomGenerator	Function
hi def link amplComment		Comment
hi def link amplDotSuffix		Special
hi def link amplPiecewise		Special


let b:current_syntax = "ampl"

" vim: ts=8


PK�j�Z��<�i�ivim80/syntax/ishd.vimnu�[���" Vim syntax file
" Language:	InstallShield Script
" Maintainer:	Robert M. Cortopassi <cortopar@mindspring.com>
" Last Change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword ishdStatement abort begin case default downto else end
syn keyword ishdStatement endif endfor endwhile endswitch endprogram exit elseif
syn keyword ishdStatement error for function goto if
syn keyword ishdStatement program prototype return repeat string step switch
syn keyword ishdStatement struct then to typedef until while

syn keyword ishdType BOOL BYREF CHAR GDI HWND INT KERNEL LIST LONG
syn keyword ishdType NUMBER POINTER SHORT STRING USER

syn keyword ishdConstant _MAX_LENGTH _MAX_STRING
syn keyword ishdConstant AFTER ALLCONTENTS ALLCONTROLS APPEND ASKDESTPATH
syn keyword ishdConstant ASKOPTIONS ASKPATH ASKTEXT BATCH_INSTALL BACK
syn keyword ishdConstant BACKBUTTON BACKGROUND BACKGROUNDCAPTION BADPATH
syn keyword ishdConstant BADTAGFILE BASEMEMORY BEFORE BILLBOARD BINARY
syn keyword ishdConstant BITMAP256COLORS BITMAPFADE BITMAPICON BK_BLUE BK_GREEN
syn keyword ishdConstant BK_MAGENTA BK_MAGENTA1 BK_ORANGE BK_PINK BK_RED
syn keyword ishdConstant BK_SMOOTH BK_SOLIDBLACK  BK_SOLIDBLUE BK_SOLIDGREEN
syn keyword ishdConstant BK_SOLIDMAGENTA BK_SOLIDORANGE BK_SOLIDPINK BK_SOLIDRED
syn keyword ishdConstant BK_SOLIDWHITE BK_SOLIDYELLOW BK_YELLOW BLACK BLUE
syn keyword ishdConstant BOOTUPDRIVE BUTTON_CHECKED BUTTON_ENTER BUTTON_UNCHECKED
syn keyword ishdConstant BUTTON_UNKNOWN CMDLINE COMMONFILES CANCEL CANCELBUTTON
syn keyword ishdConstant CC_ERR_FILEFORMATERROR CC_ERR_FILEREADERROR
syn keyword ishdConstant CC_ERR_NOCOMPONENTLIST CC_ERR_OUTOFMEMORY CDROM
syn keyword ishdConstant CDROM_DRIVE CENTERED CHANGEDIR CHECKBOX CHECKBOX95
syn keyword ishdConstant CHECKLINE CHECKMARK CMD_CLOSE CMD_MAXIMIZE CMD_MINIMIZE
syn keyword ishdConstant CMD_PUSHDOWN CMD_RESTORE COLORMODE256 COLORS
syn keyword ishdConstant COMBOBOX_ENTER COMBOBOX_SELECT COMMAND COMMANDEX
syn keyword ishdConstant COMMON COMP_DONE COMP_ERR_CREATEDIR
syn keyword ishdConstant COMP_ERR_DESTCONFLICT COMP_ERR_FILENOTINLIB
syn keyword ishdConstant COMP_ERR_FILESIZE COMP_ERR_FILETOOLARGE
syn keyword ishdConstant COMP_ERR_HEADER COMP_ERR_INCOMPATIBLE
syn keyword ishdConstant COMP_ERR_INTPUTNOTCOMPRESSED COMP_ERR_INVALIDLIST
syn keyword ishdConstant COMP_ERR_LAUNCHSERVER COMP_ERR_MEMORY
syn keyword ishdConstant COMP_ERR_NODISKSPACE COMP_ERR_OPENINPUT
syn keyword ishdConstant COMP_ERR_OPENOUTPUT COMP_ERR_OPTIONS
syn keyword ishdConstant COMP_ERR_OUTPUTNOTCOMPRESSED COMP_ERR_SPLIT
syn keyword ishdConstant COMP_ERR_TARGET COMP_ERR_TARGETREADONLY COMP_ERR_WRITE
syn keyword ishdConstant COMP_INFO_ATTRIBUTE COMP_INFO_COMPSIZE COMP_INFO_DATE
syn keyword ishdConstant COMP_INFO_INVALIDATEPASSWORD COMP_INFO_ORIGSIZE
syn keyword ishdConstant COMP_INFO_SETPASSWORD COMP_INFO_TIME
syn keyword ishdConstant COMP_INFO_VERSIONLS COMP_INFO_VERSIONMS COMP_NORMAL
syn keyword ishdConstant COMP_UPDATE_DATE COMP_UPDATE_DATE_NEWER
syn keyword ishdConstant COMP_UPDATE_SAME COMP_UPDATE_VERSION COMPACT
syn keyword ishdConstant COMPARE_DATE COMPARE_SIZE COMPARE_VERSION
syn keyword ishdConstant COMPONENT_FIELD_CDROM_FOLDER
syn keyword ishdConstant COMPONENT_FIELD_DESCRIPTION COMPONENT_FIELD_DESTINATION
syn keyword ishdConstant COMPONENT_FIELD_DISPLAYNAME COMPONENT_FIELD_FILENEED
syn keyword ishdConstant COMPONENT_FIELD_FTPLOCATION
syn keyword ishdConstant COMPONENT_FIELD_HTTPLOCATION COMPONENT_FIELD_MISC
syn keyword ishdConstant COMPONENT_FIELD_OVERWRITE COMPONENT_FIELD_PASSWORD
syn keyword ishdConstant COMPONENT_FIELD_SELECTED COMPONENT_FIELD_SIZE
syn keyword ishdConstant COMPONENT_FIELD_STATUS COMPONENT_FIELD_VISIBLE
syn keyword ishdConstant COMPONENT_FILEINFO_COMPRESSED
syn keyword ishdConstant COMPONENT_FILEINFO_COMPRESSENGINE
syn keyword ishdConstant COMPONENT_FILEINFO_LANGUAGECOMPONENT_FILEINFO_OS
syn keyword ishdConstant COMPONENT_FILEINFO_POTENTIALLYLOCKED
syn keyword ishdConstant COMPONENT_FILEINFO_SELFREGISTERING
syn keyword ishdConstant COMPONENT_FILEINFO_SHARED COMPONENT_INFO_ATTRIBUTE
syn keyword ishdConstant COMPONENT_INFO_COMPSIZE COMPONENT_INFO_DATE
syn keyword ishdConstant COMPONENT_INFO_DATE_EX_EX COMPONENT_INFO_LANGUAGE
syn keyword ishdConstant COMPONENT_INFO_ORIGSIZE COMPONENT_INFO_OS
syn keyword ishdConstant COMPONENT_INFO_TIME COMPONENT_INFO_VERSIONLS
syn keyword ishdConstant COMPONENT_INFO_VERSIONMS COMPONENT_INFO_VERSIONSTR
syn keyword ishdConstant COMPONENT_VALUE_ALWAYSOVERWRITE
syn keyword ishdConstant COMPONENT_VALUE_CRITICAL
syn keyword ishdConstant COMPONENT_VALUE_HIGHLYRECOMMENDED
syn keyword ishdConstant COMPONENT_FILEINFO_LANGUAGE COMPONENT_FILEINFO_OS
syn keyword ishdConstant COMPONENT_VALUE_NEVEROVERWRITE
syn keyword ishdConstant COMPONENT_VALUE_NEWERDATE COMPONENT_VALUE_NEWERVERSION
syn keyword ishdConstant COMPONENT_VALUE_OLDERDATE COMPONENT_VALUE_OLDERVERSION
syn keyword ishdConstant COMPONENT_VALUE_SAMEORNEWDATE
syn keyword ishdConstant COMPONENT_VALUE_SAMEORNEWERVERSION
syn keyword ishdConstant COMPONENT_VALUE_STANDARD COMPONENT_VIEW_CHANGE
syn keyword ishdConstant COMPONENT_INFO_DATE_EX COMPONENT_VIEW_CHILDVIEW
syn keyword ishdConstant COMPONENT_VIEW_COMPONENT COMPONENT_VIEW_DESCRIPTION
syn keyword ishdConstant COMPONENT_VIEW_MEDIA COMPONENT_VIEW_PARENTVIEW
syn keyword ishdConstant COMPONENT_VIEW_SIZEAVAIL COMPONENT_VIEW_SIZETOTAL
syn keyword ishdConstant COMPONENT_VIEW_TARGETLOCATION COMPRESSHIGH COMPRESSLOW
syn keyword ishdConstant COMPRESSMED COMPRESSNONE CONTIGUOUS CONTINUE
syn keyword ishdConstant COPY_ERR_CREATEDIR COPY_ERR_NODISKSPACE
syn keyword ishdConstant COPY_ERR_OPENINPUT COPY_ERR_OPENOUTPUT
syn keyword ishdConstant COPY_ERR_TARGETREADONLY COPY_ERR_MEMORY
syn keyword ishdConstant CORECOMPONENTHANDLING CPU CUSTOM DATA_COMPONENT
syn keyword ishdConstant DATA_LIST DATA_NUMBER DATA_STRING DATE DEFAULT
syn keyword ishdConstant DEFWINDOWMODE DELETE_EOF DIALOG DIALOGCACHE
syn keyword ishdConstant DIALOGTHINFONT DIR_WRITEABLE DIRECTORY DISABLE DISK
syn keyword ishdConstant DISK_FREESPACE DISK_TOTALSPACE DISKID DLG_ASK_OPTIONS
syn keyword ishdConstant DLG_ASK_PATH DLG_ASK_TEXT DLG_ASK_YESNO DLG_CANCEL
syn keyword ishdConstant DLG_CDIR DLG_CDIR_MSG DLG_CENTERED DLG_CLOSE
syn keyword ishdConstant DLG_DIR_DIRECTORY DLG_DIR_FILE DLG_ENTER_DISK DLG_ERR
syn keyword ishdConstant DLG_ERR_ALREADY_EXISTS DLG_ERR_ENDDLG DLG_INFO_ALTIMAGE
syn keyword ishdConstant DLG_INFO_CHECKMETHOD DLG_INFO_CHECKSELECTION
syn keyword ishdConstant DLG_INFO_ENABLEIMAGE DLG_INFO_KUNITS
syn keyword ishdConstant DLG_INFO_USEDECIMAL DLG_INIT DLG_MSG_ALL
syn keyword ishdConstant DLG_MSG_INFORMATION DLG_MSG_NOT_HAND DLG_MSG_SEVERE
syn keyword ishdConstant DLG_MSG_STANDARD DLG_MSG_WARNING DLG_OK DLG_STATUS
syn keyword ishdConstant DLG_USER_CAPTION DRIVE DRIVEOPEN DLG_DIR_DRIVE
syn keyword ishdConstant EDITBOX_CHANGE EFF_BOXSTRIPE EFF_FADE EFF_HORZREVEAL
syn keyword ishdConstant EFF_HORZSTRIPE EFF_NONE EFF_REVEAL EFF_VERTSTRIPE
syn keyword ishdConstant ENABLE END_OF_FILE END_OF_LIST ENHANCED ENTERDISK
syn keyword ishdConstant ENTERDISK_ERRMSG ENTERDISKBEEP ENVSPACE EQUALS
syn keyword ishdConstant ERR_BADPATH ERR_BADTAGFILE ERR_BOX_BADPATH
syn keyword ishdConstant ERR_BOX_BADTAGFILE ERR_BOX_DISKID ERR_BOX_DRIVEOPEN
syn keyword ishdConstant ERR_BOX_EXIT ERR_BOX_HELP ERR_BOX_NOSPACE ERR_BOX_PAUSE
syn keyword ishdConstant ERR_BOX_READONLY ERR_DISKID ERR_DRIVEOPEN
syn keyword ishdConstant EXCLUDE_SUBDIR EXCLUSIVE EXISTS EXIT EXTENDEDMEMORY
syn keyword ishdConstant EXTENSION_ONLY ERRORFILENAME FADE_IN FADE_OUT
syn keyword ishdConstant FAILIFEXISTS FALSE FDRIVE_NUM FEEDBACK FEEDBACK_FULL
syn keyword ishdConstant FEEDBACK_OPERATION FEEDBACK_SPACE FILE_ATTR_ARCHIVED
syn keyword ishdConstant FILE_ATTR_DIRECTORY FILE_ATTR_HIDDEN FILE_ATTR_NORMAL
syn keyword ishdConstant FILE_ATTR_READONLY FILE_ATTR_SYSTEM FILE_ATTRIBUTE
syn keyword ishdConstant FILE_BIN_CUR FILE_BIN_END FILE_BIN_START FILE_DATE
syn keyword ishdConstant FILE_EXISTS FILE_INSTALLED FILE_INVALID FILE_IS_LOCKED
syn keyword ishdConstant FILE_LINE_LENGTH FILE_LOCKED FILE_MODE_APPEND
syn keyword ishdConstant FILE_MODE_BINARY FILE_MODE_BINARYREADONLY
syn keyword ishdConstant FILE_MODE_NORMAL FILE_NO_VERSION FILE_NOT_FOUND
syn keyword ishdConstant FILE_RD_ONLY FILE_SIZE FILE_SRC_EQUAL FILE_SRC_OLD
syn keyword ishdConstant FILE_TIME FILE_WRITEABLE FILENAME FILENAME_ONLY
syn keyword ishdConstant FINISHBUTTON FIXED_DRIVE FONT_TITLE FREEENVSPACE
syn keyword ishdConstant FS_CREATEDIR FS_DISKONEREQUIRED FS_DONE FS_FILENOTINLIB
syn keyword ishdConstant FS_GENERROR FS_INCORRECTDISK FS_LAUNCHPROCESS
syn keyword ishdConstant FS_OPERROR FS_OUTOFSPACE FS_PACKAGING FS_RESETREQUIRED
syn keyword ishdConstant FS_TARGETREADONLY FS_TONEXTDISK FULL FULLSCREEN
syn keyword ishdConstant FULLSCREENSIZE FULLWINDOWMODE FOLDER_DESKTOP
syn keyword ishdConstant FOLDER_PROGRAMS FOLDER_STARTMENU FOLDER_STARTUP
syn keyword ishdConstant GREATER_THAN GREEN HELP HKEY_CLASSES_ROOT
syn keyword ishdConstant HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_DYN_DATA
syn keyword ishdConstant HKEY_LOCAL_MACHINE HKEY_PERFORMANCE_DATA HKEY_USERS
syn keyword ishdConstant HOURGLASS HWND_DESKTOP HWND_INSTALL IGNORE_READONLY
syn keyword ishdConstant INCLUDE_SUBDIR INDVFILESTATUS INFO INFO_DESCRIPTION
syn keyword ishdConstant INFO_IMAGE INFO_MISC INFO_SIZE INFO_SUBCOMPONENT
syn keyword ishdConstant INFO_VISIBLE INFORMATION INVALID_LIST IS_186 IS_286
syn keyword ishdConstant IS_386 IS_486 IS_8514A IS_86 IS_ALPHA IS_CDROM IS_CGA
syn keyword ishdConstant IS_DOS IS_EGA IS_FIXED IS_FOLDER IS_ITEM ISLANG_ALL
syn keyword ishdConstant ISLANG_ARABIC ISLANG_ARABIC_SAUDIARABIA
syn keyword ishdConstant ISLANG_ARABIC_IRAQ ISLANG_ARABIC_EGYPT
syn keyword ishdConstant ISLANG_ARABIC_LIBYA ISLANG_ARABIC_ALGERIA
syn keyword ishdConstant ISLANG_ARABIC_MOROCCO ISLANG_ARABIC_TUNISIA
syn keyword ishdConstant ISLANG_ARABIC_OMAN ISLANG_ARABIC_YEMEN
syn keyword ishdConstant ISLANG_ARABIC_SYRIA ISLANG_ARABIC_JORDAN
syn keyword ishdConstant ISLANG_ARABIC_LEBANON ISLANG_ARABIC_KUWAIT
syn keyword ishdConstant ISLANG_ARABIC_UAE ISLANG_ARABIC_BAHRAIN
syn keyword ishdConstant ISLANG_ARABIC_QATAR ISLANG_AFRIKAANS
syn keyword ishdConstant ISLANG_AFRIKAANS_STANDARD ISLANG_ALBANIAN
syn keyword ishdConstant ISLANG_ENGLISH_TRINIDAD ISLANG_ALBANIAN_STANDARD
syn keyword ishdConstant ISLANG_BASQUE ISLANG_BASQUE_STANDARD ISLANG_BULGARIAN
syn keyword ishdConstant ISLANG_BULGARIAN_STANDARD ISLANG_BELARUSIAN
syn keyword ishdConstant ISLANG_BELARUSIAN_STANDARD ISLANG_CATALAN
syn keyword ishdConstant ISLANG_CATALAN_STANDARD ISLANG_CHINESE
syn keyword ishdConstant ISLANG_CHINESE_TAIWAN ISLANG_CHINESE_PRC
syn keyword ishdConstant ISLANG_SPANISH_PUERTORICO ISLANG_CHINESE_HONGKONG
syn keyword ishdConstant ISLANG_CHINESE_SINGAPORE ISLANG_CROATIAN
syn keyword ishdConstant ISLANG_CROATIAN_STANDARD ISLANG_CZECH
syn keyword ishdConstant ISLANG_CZECH_STANDARD ISLANG_DANISH
syn keyword ishdConstant ISLANG_DANISH_STANDARD ISLANG_DUTCH
syn keyword ishdConstant ISLANG_DUTCH_STANDARD ISLANG_DUTCH_BELGIAN
syn keyword ishdConstant ISLANG_ENGLISH ISLANG_ENGLISH_BELIZE
syn keyword ishdConstant ISLANG_ENGLISH_UNITEDSTATES
syn keyword ishdConstant ISLANG_ENGLISH_UNITEDKINGDOM ISLANG_ENGLISH_AUSTRALIAN
syn keyword ishdConstant ISLANG_ENGLISH_CANADIAN ISLANG_ENGLISH_NEWZEALAND
syn keyword ishdConstant ISLANG_ENGLISH_IRELAND ISLANG_ENGLISH_SOUTHAFRICA
syn keyword ishdConstant ISLANG_ENGLISH_JAMAICA ISLANG_ENGLISH_CARIBBEAN
syn keyword ishdConstant ISLANG_ESTONIAN ISLANG_ESTONIAN_STANDARD
syn keyword ishdConstant ISLANG_FAEROESE ISLANG_FAEROESE_STANDARD ISLANG_FARSI
syn keyword ishdConstant ISLANG_FINNISH ISLANG_FINNISH_STANDARD ISLANG_FRENCH
syn keyword ishdConstant ISLANG_FRENCH_STANDARD ISLANG_FRENCH_BELGIAN
syn keyword ishdConstant ISLANG_FRENCH_CANADIAN ISLANG_FRENCH_SWISS
syn keyword ishdConstant ISLANG_FRENCH_LUXEMBOURG ISLANG_FARSI_STANDARD
syn keyword ishdConstant ISLANG_GERMAN ISLANG_GERMAN_STANDARD
syn keyword ishdConstant ISLANG_GERMAN_SWISS ISLANG_GERMAN_AUSTRIAN
syn keyword ishdConstant ISLANG_GERMAN_LUXEMBOURG ISLANG_GERMAN_LIECHTENSTEIN
syn keyword ishdConstant ISLANG_GREEK ISLANG_GREEK_STANDARD ISLANG_HEBREW
syn keyword ishdConstant ISLANG_HEBREW_STANDARD ISLANG_HUNGARIAN
syn keyword ishdConstant ISLANG_HUNGARIAN_STANDARD ISLANG_ICELANDIC
syn keyword ishdConstant ISLANG_ICELANDIC_STANDARD ISLANG_INDONESIAN
syn keyword ishdConstant ISLANG_INDONESIAN_STANDARD ISLANG_ITALIAN
syn keyword ishdConstant ISLANG_ITALIAN_STANDARD ISLANG_ITALIAN_SWISS
syn keyword ishdConstant ISLANG_JAPANESE ISLANG_JAPANESE_STANDARD ISLANG_KOREAN
syn keyword ishdConstant ISLANG_KOREAN_STANDARD  ISLANG_KOREAN_JOHAB
syn keyword ishdConstant ISLANG_LATVIAN ISLANG_LATVIAN_STANDARD
syn keyword ishdConstant ISLANG_LITHUANIAN ISLANG_LITHUANIAN_STANDARD
syn keyword ishdConstant ISLANG_NORWEGIAN ISLANG_NORWEGIAN_BOKMAL
syn keyword ishdConstant ISLANG_NORWEGIAN_NYNORSK ISLANG_POLISH
syn keyword ishdConstant ISLANG_POLISH_STANDARD ISLANG_PORTUGUESE
syn keyword ishdConstant ISLANG_PORTUGUESE_BRAZILIAN ISLANG_PORTUGUESE_STANDARD
syn keyword ishdConstant ISLANG_ROMANIAN ISLANG_ROMANIAN_STANDARD ISLANG_RUSSIAN
syn keyword ishdConstant ISLANG_RUSSIAN_STANDARD ISLANG_SLOVAK
syn keyword ishdConstant ISLANG_SLOVAK_STANDARD ISLANG_SLOVENIAN
syn keyword ishdConstant ISLANG_SLOVENIAN_STANDARD ISLANG_SERBIAN
syn keyword ishdConstant ISLANG_SERBIAN_LATIN ISLANG_SERBIAN_CYRILLIC
syn keyword ishdConstant ISLANG_SPANISH ISLANG_SPANISH_ARGENTINA
syn keyword ishdConstant ISLANG_SPANISH_BOLIVIA ISLANG_SPANISH_CHILE
syn keyword ishdConstant ISLANG_SPANISH_COLOMBIA ISLANG_SPANISH_COSTARICA
syn keyword ishdConstant ISLANG_SPANISH_DOMINICANREPUBLIC ISLANG_SPANISH_ECUADOR
syn keyword ishdConstant ISLANG_SPANISH_ELSALVADOR ISLANG_SPANISH_GUATEMALA
syn keyword ishdConstant ISLANG_SPANISH_HONDURAS ISLANG_SPANISH_MEXICAN
syn keyword ishdConstant ISLANG_THAI_STANDARD ISLANG_SPANISH_MODERNSORT
syn keyword ishdConstant ISLANG_SPANISH_NICARAGUA ISLANG_SPANISH_PANAMA
syn keyword ishdConstant ISLANG_SPANISH_PARAGUAY ISLANG_SPANISH_PERU
syn keyword ishdConstant IISLANG_SPANISH_PUERTORICO
syn keyword ishdConstant ISLANG_SPANISH_TRADITIONALSORT ISLANG_SPANISH_VENEZUELA
syn keyword ishdConstant ISLANG_SPANISH_URUGUAY ISLANG_SWEDISH
syn keyword ishdConstant ISLANG_SWEDISH_FINLAND ISLANG_SWEDISH_STANDARD
syn keyword ishdConstant ISLANG_THAI ISLANG_THA_STANDARDI ISLANG_TURKISH
syn keyword ishdConstant ISLANG_TURKISH_STANDARD ISLANG_UKRAINIAN
syn keyword ishdConstant ISLANG_UKRAINIAN_STANDARD ISLANG_VIETNAMESE
syn keyword ishdConstant ISLANG_VIETNAMESE_STANDARD IS_MIPS IS_MONO IS_OS2
syn keyword ishdConstant ISOSL_ALL ISOSL_WIN31 ISOSL_WIN95 ISOSL_NT351
syn keyword ishdConstant ISOSL_NT351_ALPHA ISOSL_NT351_MIPS ISOSL_NT351_PPC
syn keyword ishdConstant ISOSL_NT40 ISOSL_NT40_ALPHA ISOSL_NT40_MIPS
syn keyword ishdConstant ISOSL_NT40_PPC IS_PENTIUM IS_POWERPC IS_RAMDRIVE
syn keyword ishdConstant IS_REMOTE IS_REMOVABLE IS_SVGA IS_UNKNOWN IS_UVGA
syn keyword ishdConstant IS_VALID_PATH IS_VGA IS_WIN32S IS_WINDOWS IS_WINDOWS95
syn keyword ishdConstant IS_WINDOWSNT IS_WINOS2 IS_XVGA ISTYPE INFOFILENAME
syn keyword ishdConstant ISRES ISUSER ISVERSION LANGUAGE LANGUAGE_DRV LESS_THAN
syn keyword ishdConstant LINE_NUMBER LISTBOX_ENTER LISTBOX_SELECT LISTFIRST
syn keyword ishdConstant LISTLAST LISTNEXT LISTPREV LOCKEDFILE LOGGING
syn keyword ishdConstant LOWER_LEFT LOWER_RIGHT LIST_NULL MAGENTA MAINCAPTION
syn keyword ishdConstant MATH_COPROCESSOR MAX_STRING MENU METAFILE MMEDIA_AVI
syn keyword ishdConstant MMEDIA_MIDI MMEDIA_PLAYASYNCH MMEDIA_PLAYCONTINUOUS
syn keyword ishdConstant MMEDIA_PLAYSYNCH MMEDIA_STOP MMEDIA_WAVE MOUSE
syn keyword ishdConstant MOUSE_DRV MEDIA MODE NETWORK NETWORK_DRV NEXT
syn keyword ishdConstant NEXTBUTTON NO NO_SUBDIR NO_WRITE_ACCESS NONCONTIGUOUS
syn keyword ishdConstant NONEXCLUSIVE NORMAL NORMALMODE NOSET NOTEXISTS NOTRESET
syn keyword ishdConstant NOWAIT NULL NUMBERLIST OFF OK ON ONLYDIR OS OSMAJOR
syn keyword ishdConstant OSMINOR OTHER_FAILURE OUT_OF_DISK_SPACE PARALLEL
syn keyword ishdConstant PARTIAL PATH PATH_EXISTS PAUSE PERSONAL PROFSTRING
syn keyword ishdConstant PROGMAN PROGRAMFILES RAM_DRIVE REAL RECORDMODE RED
syn keyword ishdConstant REGDB_APPPATH REGDB_APPPATH_DEFAULT REGDB_BINARY
syn keyword ishdConstant REGDB_ERR_CONNECTIONEXISTS REGDB_ERR_CORRUPTEDREGISTRY
syn keyword ishdConstant REGDB_ERR_FILECLOSE REGDB_ERR_FILENOTFOUND
syn keyword ishdConstant REGDB_ERR_FILEOPEN REGDB_ERR_FILEREAD
syn keyword ishdConstant REGDB_ERR_INITIALIZATION REGDB_ERR_INVALIDFORMAT
syn keyword ishdConstant REGDB_ERR_INVALIDHANDLE REGDB_ERR_INVALIDNAME
syn keyword ishdConstant REGDB_ERR_INVALIDPLATFORM REGDB_ERR_OUTOFMEMORY
syn keyword ishdConstant REGDB_ERR_REGISTRY REGDB_KEYS REGDB_NAMES REGDB_NUMBER
syn keyword ishdConstant REGDB_STRING REGDB_STRING_EXPAND REGDB_STRING_MULTI
syn keyword ishdConstant REGDB_UNINSTALL_NAME REGKEY_CLASSES_ROOT
syn keyword ishdConstant REGKEY_CURRENT_USER REGKEY_LOCAL_MACHINE REGKEY_USERS
syn keyword ishdConstant REMOTE_DRIVE REMOVE REMOVEABLE_DRIVE REPLACE
syn keyword ishdConstant REPLACE_ITEM RESET RESTART ROOT ROTATE RUN_MAXIMIZED
syn keyword ishdConstant RUN_MINIMIZED RUN_SEPARATEMEMORY SELECTFOLDER
syn keyword ishdConstant SELFREGISTER SELFREGISTERBATCH SELFREGISTRATIONPROCESS
syn keyword ishdConstant SERIAL SET SETUPTYPE SETUPTYPE_INFO_DESCRIPTION
syn keyword ishdConstant SETUPTYPE_INFO_DISPLAYNAME SEVERE SHARE SHAREDFILE
syn keyword ishdConstant SHELL_OBJECT_FOLDER SILENTMODE SPLITCOMPRESS SPLITCOPY
syn keyword ishdConstant SRCTARGETDIR STANDARD STATUS STATUS95 STATUSBAR
syn keyword ishdConstant STATUSDLG STATUSEX STATUSOLD STRINGLIST STYLE_BOLD
syn keyword ishdConstant STYLE_ITALIC STYLE_NORMAL STYLE_SHADOW STYLE_UNDERLINE
syn keyword ishdConstant SW_HIDE SW_MAXIMIZE SW_MINIMIZE SW_NORMAL SW_RESTORE
syn keyword ishdConstant SW_SHOW SW_SHOWMAXIMIZED SW_SHOWMINIMIZED
syn keyword ishdConstant SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE
syn keyword ishdConstant SW_SHOWNORMAL SYS_BOOTMACHINE SYS_BOOTWIN
syn keyword ishdConstant SYS_BOOTWIN_INSTALL SYS_RESTART SYS_SHUTDOWN SYS_TODOS
syn keyword ishdConstant SELECTED_LANGUAGE SHELL_OBJECT_LANGUAGE SRCDIR SRCDISK
syn keyword ishdConstant SUPPORTDIR TEXT TILED TIME TRUE TYPICAL TARGETDIR
syn keyword ishdConstant TARGETDISK UPPER_LEFT UPPER_RIGHT USER_ADMINISTRATOR
syn keyword ishdConstant UNINST VALID_PATH VARIABLE_LEFT VARIABLE_UNDEFINED
syn keyword ishdConstant VER_DLL_NOT_FOUND VER_UPDATE_ALWAYS VER_UPDATE_COND
syn keyword ishdConstant VERSION VIDEO VOLUMELABEL WAIT WARNING WELCOME WHITE
syn keyword ishdConstant WIN32SINSTALLED WIN32SMAJOR WIN32SMINOR WINDOWS_SHARED
syn keyword ishdConstant WINMAJOR WINMINOR WINDIR WINDISK WINSYSDIR WINSYSDISK
syn keyword ishdConstant XCOPY_DATETIME YELLOW YES

syn keyword ishdFunction AskDestPath AskOptions AskPath AskText AskYesNo
syn keyword ishdFunction AppCommand AddProfString AddFolderIcon BatchAdd
syn keyword ishdFunction BatchDeleteEx BatchFileLoad BatchFileSave BatchFind
syn keyword ishdFunction BatchGetFileName BatchMoveEx BatchSetFileName
syn keyword ishdFunction ComponentDialog ComponentAddItem
syn keyword ishdFunction ComponentCompareSizeRequired ComponentDialog
syn keyword ishdFunction ComponentError ComponentFileEnum ComponentFileInfo
syn keyword ishdFunction ComponentFilterLanguage ComponentFilterOS
syn keyword ishdFunction ComponentGetData ComponentGetItemSize
syn keyword ishdFunction ComponentInitialize ComponentIsItemSelected
syn keyword ishdFunction ComponentListItems ComponentMoveData
syn keyword ishdFunction ComponentSelectItem ComponentSetData ComponentSetTarget
syn keyword ishdFunction ComponentSetupTypeEnum ComponentSetupTypeGetData
syn keyword ishdFunction ComponentSetupTypeSet ComponentTotalSize
syn keyword ishdFunction ComponentValidate ConfigAdd ConfigDelete ConfigFileLoad
syn keyword ishdFunction ConfigFileSave ConfigFind ConfigGetFileName
syn keyword ishdFunction ConfigGetInt ConfigMove ConfigSetFileName ConfigSetInt
syn keyword ishdFunction CmdGetHwndDlg CtrlClear CtrlDir CtrlGetCurSel
syn keyword ishdFunction CtrlGetMLEText CtrlGetMultCurSel CtrlGetState
syn keyword ishdFunction CtrlGetSubCommand CtrlGetText CtrlPGroups
syn keyword ishdFunction CtrlSelectText CtrlSetCurSel CtrlSetFont CtrlSetList
syn keyword ishdFunction CtrlSetMLEText CtrlSetMultCurSel CtrlSetState
syn keyword ishdFunction CtrlSetText CallDLLFx ChangeDirectory CloseFile
syn keyword ishdFunction CopyFile CreateDir CreateFile CreateRegistrySet
syn keyword ishdFunction CommitSharedFiles CreateProgramFolder
syn keyword ishdFunction CreateShellObjects CopyBytes DefineDialog Delay
syn keyword ishdFunction DeleteDir DeleteFile Do DoInstall DeinstallSetReference
syn keyword ishdFunction DeinstallStart DialogSetInfo DeleteFolderIcon
syn keyword ishdFunction DeleteProgramFolder Disable EzBatchAddPath
syn keyword ishdFunction EzBatchAddString ExBatchReplace EnterDisk
syn keyword ishdFunction EzConfigAddDriver EzConfigAddString EzConfigGetValue
syn keyword ishdFunction EzConfigSetValue EndDialog EzDefineDialog ExistsDir
syn keyword ishdFunction ExistsDisk ExitProgMan Enable EzBatchReplace
syn keyword ishdFunction FileCompare FileDeleteLine FileGrep FileInsertLine
syn keyword ishdFunction FindAllDirs FindAllFiles FindFile FindWindow
syn keyword ishdFunction GetFileInfo GetLine GetFont GetDiskSpace GetEnvVar
syn keyword ishdFunction GetExtents GetMemFree GetMode GetSystemInfo
syn keyword ishdFunction GetValidDrivesList GetWindowHandle GetProfInt
syn keyword ishdFunction GetProfString GetFolderNameList GetGroupNameList
syn keyword ishdFunction GetItemNameList GetDir GetDisk HIWORD Handler Is
syn keyword ishdFunction ISCompareServicePack InstallationInfo LOWORD LaunchApp
syn keyword ishdFunction LaunchAppAndWait ListAddItem ListAddString ListCount
syn keyword ishdFunction ListCreate ListCurrentItem ListCurrentString
syn keyword ishdFunction ListDeleteItem ListDeleteString ListDestroy
syn keyword ishdFunction ListFindItem ListFindString ListGetFirstItem
syn keyword ishdFunction ListGetFirstString ListGetNextItem ListGetNextString
syn keyword ishdFunction ListReadFromFile ListSetCurrentItem
syn keyword ishdFunction ListSetCurrentString ListSetIndex ListWriteToFile
syn keyword ishdFunction LongPathFromShortPath LongPathToQuote
syn keyword ishdFunction LongPathToShortPath MessageBox MessageBeep NumToStr
syn keyword ishdFunction OpenFile OpenFileMode PathAdd PathDelete PathFind
syn keyword ishdFunction PathGet PathMove PathSet ProgDefGroupType ParsePath
syn keyword ishdFunction PlaceBitmap PlaceWindow PlayMMedia QueryProgGroup
syn keyword ishdFunction QueryProgItem QueryShellMgr RebootDialog ReleaseDialog
syn keyword ishdFunction ReadBytes RenameFile ReplaceProfString ReloadProgGroup
syn keyword ishdFunction ReplaceFolderIcon RGB RegDBConnectRegistry
syn keyword ishdFunction RegDBCreateKeyEx RegDBDeleteKey RegDBDeleteValue
syn keyword ishdFunction RegDBDisConnectRegistry RegDBGetAppInfo RegDBGetItem
syn keyword ishdFunction RegDBGetKeyValueEx RegDBKeyExist RegDBQueryKey
syn keyword ishdFunction RegDBSetAppInfo RegDBSetDefaultRoot RegDBSetItem
syn keyword ishdFunction RegDBSetKeyValueEx SeekBytes SelectDir SetFileInfo
syn keyword ishdFunction SelectDir SelectFolder SetupType SprintfBox SdSetupType
syn keyword ishdFunction SdSetupTypeEx SdMakeName SilentReadData SilentWriteData
syn keyword ishdFunction SendMessage Sprintf System SdAskDestPath SdAskOptions
syn keyword ishdFunction SdAskOptionsList SdBitmap SdComponentDialog
syn keyword ishdFunction SdComponentDialog2 SdComponentDialogAdv SdComponentMult
syn keyword ishdFunction SdConfirmNewDir SdConfirmRegistration SdDisplayTopics
syn keyword ishdFunction SdFinish SdFinishReboot SdInit SdLicense SdMakeName
syn keyword ishdFunction SdOptionsButtons SdProductName SdRegisterUser
syn keyword ishdFunction SdRegisterUserEx SdSelectFolder SdSetupType
syn keyword ishdFunction SdSetupTypeEx SdShowAnyDialog SdShowDlgEdit1
syn keyword ishdFunction SdShowDlgEdit2 SdShowDlgEdit3 SdShowFileMods
syn keyword ishdFunction SdShowInfoList SdShowMsg SdStartCopy SdWelcome
syn keyword ishdFunction SelectFolder ShowGroup ShowProgamFolder SetColor
syn keyword ishdFunction SetDialogTitle SetDisplayEffect SetErrorMsg
syn keyword ishdFunction SetErrorTitle SetFont SetStatusWindow SetTitle
syn keyword ishdFunction SizeWindow StatusUpdate StrCompare StrFind StrGetTokens
syn keyword ishdFunction StrLength StrRemoveLastSlash StrSub StrToLower StrToNum
syn keyword ishdFunction StrToUpper ShowProgramFolder UnUseDLL UseDLL VarRestore
syn keyword ishdFunction VarSave VerUpdateFile VerCompare VerFindFileVersion
syn keyword ishdFunction VerGetFileVersion VerSearchAndUpdateFile VerUpdateFile
syn keyword ishdFunction Welcome WaitOnDialog WriteBytes WriteLine
syn keyword ishdFunction WriteProfString XCopyFile

syn keyword ishdTodo contained TODO

"integer number, or floating point number without a dot.
syn match  ishdNumber		"\<\d\+\>"
"floating point number, with dot
syn match  ishdNumber		"\<\d\+\.\d*\>"
"floating point number, starting with a dot
syn match  ishdNumber		"\.\d\+\>"

" String constants
syn region  ishdString	start=+"+  skip=+\\\\\|\\"+  end=+"+

syn region  ishdComment	start="//" end="$" contains=ishdTodo
syn region  ishdComment	start="/\*"   end="\*/" contains=ishdTodo

" Pre-processor commands
syn region	ishdPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=ishdComment,ishdString
if !exists("ishd_no_if0")
  syn region	ishdHashIf0	start="^\s*#\s*if\s\+0\>" end=".\|$" contains=ishdHashIf0End
  syn region	ishdHashIf0End	contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=ishdHashIf0Skip
  syn region	ishdHashIf0Skip	contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=ishdHashIf0Skip
endif
syn region	ishdIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	ishdInclude	+^\s*#\s*include\>\s*"+ contains=ishdIncluded
syn cluster	ishdPreProcGroup	contains=ishdPreCondit,ishdIncluded,ishdInclude,ishdDefine,ishdHashIf0,ishdHashIf0End,ishdHashIf0Skip,ishdNumber
syn region	ishdDefine		start="^\s*#\s*\(define\|undef\)\>" end="$" contains=ALLBUT,@ishdPreProcGroup

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link ishdNumber	    Number
hi def link ishdError	    Error
hi def link ishdStatement	    Statement
hi def link ishdString	    String
hi def link ishdComment	    Comment
hi def link ishdTodo	    Todo
hi def link ishdFunction	    Identifier
hi def link ishdConstant	    PreProc
hi def link ishdType	    Type
hi def link ishdInclude	    Include
hi def link ishdDefine	    Macro
hi def link ishdIncluded	    String
hi def link ishdPreCondit	    PreCondit
hi def link ishdHashIf0Skip   ishdHashIf0
hi def link ishdHashIf0End    ishdHashIf0
hi def link ishdHashIf0	    Comment


let b:current_syntax = "ishd"

" vim: ts=8
PK�j�Z��r^3)3)vim80/syntax/ia64.vimnu�[���" Vim syntax file
" Language:     IA-64 (Itanium) assembly language
" Maintainer:   Parth Malwankar <pmalwankar@yahoo.com>
" URL:		http://www.geocities.com/pmalwankar (Home Page with link to my Vim page)
"		http://www.geocities.com/pmalwankar/vim.htm (for VIM)
" File Version: 0.7
" Last Change:  2006 Sep 08

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


"ignore case for assembly
syn case ignore

"  Identifier Keyword characters (defines \k)
setlocal iskeyword=@,48-57,#,$,.,:,?,@-@,_,~

syn sync minlines=5

" Read the MASM syntax to start with
" This is needed as both IA-64 as well as IA-32 instructions are supported
source <sfile>:p:h/masm.vim

syn region ia64Comment start="//" end="$" contains=ia64Todo
syn region ia64Comment start="/\*" end="\*/" contains=ia64Todo

syn match ia64Identifier	"[a-zA-Z_$][a-zA-Z0-9_$]*"
syn match ia64Directive		"\.[a-zA-Z_$][a-zA-Z_$.]\+"
syn match ia64Label		"[a-zA-Z_$.][a-zA-Z0-9_$.]*\s\=:\>"he=e-1
syn match ia64Label		"[a-zA-Z_$.][a-zA-Z0-9_$.]*\s\=::\>"he=e-2
syn match ia64Label		"[a-zA-Z_$.][a-zA-Z0-9_$.]*\s\=#\>"he=e-1
syn region ia64string		start=+L\="+ skip=+\\\\\|\\"+ end=+"+
syn match ia64Octal		"0[0-7_]*\>"
syn match ia64Binary		"0[bB][01_]*\>"
syn match ia64Hex		"0[xX][0-9a-fA-F_]*\>"
syn match ia64Decimal		"[1-9_][0-9_]*\>"
syn match ia64Float		"[0-9_]*\.[0-9_]*\([eE][+-]\=[0-9_]*\)\=\>"

"simple instructions
syn keyword ia64opcode add adds addl addp4 alloc and andcm cover epc
syn keyword ia64opcode fabs fand fandcm fc flushrs fneg fnegabs for
syn keyword ia64opcode fpabs fpack fpneg fpnegabs fselect fand fabdcm
syn keyword ia64opcode fc fwb fxor loadrs movl mux1 mux2 or padd4
syn keyword ia64opcode pavgsub1 pavgsub2 popcnt psad1 pshl2 pshl4 pshladd2
syn keyword ia64opcode pshradd2 psub4 rfi rsm rum shl shladd shladdp4
syn keyword ia64opcode shrp ssm sub sum sync.i tak thash
syn keyword ia64opcode tpa ttag xor

"put to override these being recognized as floats. They are orignally from masm.vim
"put here to avoid confusion with float
syn match   ia64Directive       "\.186"
syn match   ia64Directive       "\.286"
syn match   ia64Directive       "\.286c"
syn match   ia64Directive       "\.286p"
syn match   ia64Directive       "\.287"
syn match   ia64Directive       "\.386"
syn match   ia64Directive       "\.386c"
syn match   ia64Directive       "\.386p"
syn match   ia64Directive       "\.387"
syn match   ia64Directive       "\.486"
syn match   ia64Directive       "\.486c"
syn match   ia64Directive       "\.486p"
syn match   ia64Directive       "\.8086"
syn match   ia64Directive       "\.8087"



"delimiters
syn match ia64delimiter ";;"

"operators
syn match ia64operators "[\[\]()#,]"
syn match ia64operators "\(+\|-\|=\)"

"TODO
syn match ia64Todo      "\(TODO\|XXX\|FIXME\|NOTE\)"

"What follows is a long list of regular expressions for parsing the
"ia64 instructions that use many completers

"br
syn match ia64opcode "br\(\(\.\(cond\|call\|ret\|ia\|cloop\|ctop\|cexit\|wtop\|wexit\)\)\=\(\.\(spnt\|dpnt\|sptk\|dptk\)\)\=\(\.few\|\.many\)\=\(\.clr\)\=\)\=\>"
"break
syn match ia64opcode "break\(\.[ibmfx]\)\=\>"
"brp
syn match ia64opcode "brp\(\.\(sptk\|dptk\|loop\|exit\)\)\(\.imp\)\=\>"
syn match ia64opcode "brp\.ret\(\.\(sptk\|dptk\)\)\{1}\(\.imp\)\=\>"
"bsw
syn match ia64opcode "bsw\.[01]\>"
"chk
syn match ia64opcode "chk\.\(s\(\.[im]\)\=\)\>"
syn match ia64opcode "chk\.a\.\(clr\|nc\)\>"
"clrrrb
syn match ia64opcode "clrrrb\(\.pr\)\=\>"
"cmp/cmp4
syn match ia64opcode "cmp4\=\.\(eq\|ne\|l[te]\|g[te]\|[lg]tu\|[lg]eu\)\(\.unc\)\=\>"
syn match ia64opcode "cmp4\=\.\(eq\|[lgn]e\|[lg]t\)\.\(\(or\(\.andcm\|cm\)\=\)\|\(and\(\(\.or\)\=cm\)\=\)\)\>"
"cmpxchg
syn match ia64opcode "cmpxchg[1248]\.\(acq\|rel\)\(\.nt1\|\.nta\)\=\>"
"czx
syn match ia64opcode "czx[12]\.[lr]\>"
"dep
syn match ia64opcode "dep\(\.z\)\=\>"
"extr
syn match ia64opcode "extr\(\.u\)\=\>"
"fadd
syn match ia64opcode "fadd\(\.[sd]\)\=\(\.s[0-3]\)\=\>"
"famax/famin
syn match ia64opcode "fa\(max\|min\)\(\.s[0-3]\)\=\>"
"fchkf/fmax/fmin
syn match ia64opcode "f\(chkf\|max\|min\)\(\.s[0-3]\)\=\>"
"fclass
syn match ia64opcode "fclass\(\.n\=m\)\(\.unc\)\=\>"
"fclrf/fpamax
syn match ia64opcode "f\(clrf\|pamax\|pamin\)\(\.s[0-3]\)\=\>"
"fcmp
syn match ia64opcode "fcmp\.\(n\=[lg][te]\|n\=eq\|\(un\)\=ord\)\(\.unc\)\=\(\.s[0-3]\)\=\>"
"fcvt/fcvt.xf/fcvt.xuf.pc.sf
syn match ia64opcode "fcvt\.\(\(fxu\=\(\.trunc\)\=\(\.s[0-3]\)\=\)\|\(xf\|xuf\(\.[sd]\)\=\(\.s[0-3]\)\=\)\)\>"
"fetchadd
syn match ia64opcode "fetchadd[48]\.\(acq\|rel\)\(\.nt1\|\.nta\)\=\>"
"fma/fmpy/fms
syn match ia64opcode "fm\([as]\|py\)\(\.[sd]\)\=\(\.s[0-3]\)\=\>"
"fmerge/fpmerge
syn match ia64opcode "fp\=merge\.\(ns\|se\=\)\>"
"fmix
syn match ia64opcode "fmix\.\(lr\|[lr]\)\>"
"fnma/fnorm/fnmpy
syn match ia64opcode "fn\(ma\|mpy\|orm\)\(\.[sd]\)\=\(\.s[0-3]\)\=\>"
"fpcmp
syn match ia64opcode "fpcmp\.\(n\=[lg][te]\|n\=eq\|\(un\)\=ord\)\(\.s[0-3]\)\=\>"
"fpcvt
syn match ia64opcode "fpcvt\.fxu\=\(\(\.trunc\)\=\(\.s[0-3]\)\=\)\>"
"fpma/fpmax/fpmin/fpmpy/fpms/fpnma/fpnmpy/fprcpa/fpsqrta
syn match ia64opcode "fp\(max\=\|min\|n\=mpy\|ms\|nma\|rcpa\|sqrta\)\(\.s[0-3]\)\=\>"
"frcpa/frsqrta
syn match ia64opcode "fr\(cpa\|sqrta\)\(\.s[0-3]\)\=\>"
"fsetc/famin/fchkf
syn match ia64opcode "f\(setc\|amin\|chkf\)\(\.s[0-3]\)\=\>"
"fsub
syn match ia64opcode "fsub\(\.[sd]\)\=\(\.s[0-3]\)\=\>"
"fswap
syn match ia64opcode "fswap\(\.n[lr]\=\)\=\>"
"fsxt
syn match ia64opcode "fsxt\.[lr]\>"
"getf
syn match ia64opcode "getf\.\([sd]\|exp\|sig\)\>"
"invala
syn match ia64opcode "invala\(\.[ae]\)\=\>"
"itc/itr
syn match ia64opcode "it[cr]\.[id]\>"
"ld
syn match ia64opcode "ld[1248]\>\|ld[1248]\(\.\(sa\=\|a\|c\.\(nc\|clr\(\.acq\)\=\)\|acq\|bias\)\)\=\(\.nt[1a]\)\=\>"
syn match ia64opcode "ld8\.fill\(\.nt[1a]\)\=\>"
"ldf
syn match ia64opcode "ldf[sde8]\(\(\.\(sa\=\|a\|c\.\(nc\|clr\)\)\)\=\(\.nt[1a]\)\=\)\=\>"
syn match ia64opcode "ldf\.fill\(\.nt[1a]\)\=\>"
"ldfp
syn match ia64opcode "ldfp[sd8]\(\(\.\(sa\=\|a\|c\.\(nc\|clr\)\)\)\=\(\.nt[1a]\)\=\)\=\>"
"lfetch
syn match ia64opcode "lfetch\(\.fault\(\.excl\)\=\|\.excl\)\=\(\.nt[12a]\)\=\>"
"mf
syn match ia64opcode "mf\(\.a\)\=\>"
"mix
syn match ia64opcode "mix[124]\.[lr]\>"
"mov
syn match ia64opcode "mov\(\.[im]\)\=\>"
syn match ia64opcode "mov\(\.ret\)\=\(\(\.sptk\|\.dptk\)\=\(\.imp\)\=\)\=\>"
"nop
syn match ia64opcode "nop\(\.[ibmfx]\)\=\>"
"pack
syn match ia64opcode "pack\(2\.[su]ss\|4\.sss\)\>"
"padd //padd4 added to keywords
syn match ia64opcode "padd[12]\(\.\(sss\|uus\|uuu\)\)\=\>"
"pavg
syn match ia64opcode "pavg[12]\(\.raz\)\=\>"
"pcmp
syn match ia64opcode "pcmp[124]\.\(eq\|gt\)\>"
"pmax/pmin
syn match ia64opcode "pm\(ax\|in\)\(\(1\.u\)\|2\)\>"
"pmpy
syn match ia64opcode "pmpy2\.[rl]\>"
"pmpyshr
syn match ia64opcode "pmpyshr2\(\.u\)\=\>"
"probe
syn match ia64opcode "probe\.[rw]\>"
syn match ia64opcode "probe\.\(\(r\|w\|rw\)\.fault\)\>"
"pshr
syn match ia64opcode "pshr[24]\(\.u\)\=\>"
"psub
syn match ia64opcode "psub[12]\(\.\(sss\|uu[su]\)\)\=\>"
"ptc
syn match ia64opcode "ptc\.\(l\|e\|ga\=\)\>"
"ptr
syn match ia64opcode "ptr\.\(d\|i\)\>"
"setf
syn match ia64opcode "setf\.\(s\|d\|exp\|sig\)\>"
"shr
syn match ia64opcode "shr\(\.u\)\=\>"
"srlz
syn match ia64opcode "srlz\(\.[id]\)\>"
"st
syn match ia64opcode "st[1248]\(\.rel\)\=\(\.nta\)\=\>"
syn match ia64opcode "st8\.spill\(\.nta\)\=\>"
"stf
syn match ia64opcode "stf[1248]\(\.nta\)\=\>"
syn match ia64opcode "stf\.spill\(\.nta\)\=\>"
"sxt
syn match ia64opcode "sxt[124]\>"
"tbit/tnat
syn match ia64opcode "t\(bit\|nat\)\(\.nz\|\.z\)\=\(\.\(unc\|or\(\.andcm\|cm\)\=\|and\(\.orcm\|cm\)\=\)\)\=\>"
"unpack
syn match ia64opcode "unpack[124]\.[lh]\>"
"xchq
syn match ia64opcode "xchg[1248]\(\.nt[1a]\)\=\>"
"xma/xmpy
syn match ia64opcode "xm\(a\|py\)\.[lh]u\=\>"
"zxt
syn match ia64opcode "zxt[124]\>"


"The regex for different ia64 registers are given below

"limits the rXXX and fXXX and cr suffix in the range 0-127
syn match ia64registers "\([fr]\|cr\)\([0-9]\|[1-9][0-9]\|1[0-1][0-9]\|12[0-7]\)\{1}\>"
"branch ia64registers
syn match ia64registers "b[0-7]\>"
"predicate ia64registers
syn match ia64registers "p\([0-9]\|[1-5][0-9]\|6[0-3]\)\>"
"application ia64registers
syn match ia64registers "ar\.\(fpsr\|mat\|unat\|rnat\|pfs\|bsp\|bspstore\|rsc\|lc\|ec\|ccv\|itc\|k[0-7]\)\>"
"ia32 AR's
syn match ia64registers "ar\.\(eflag\|fcr\|csd\|ssd\|cflg\|fsr\|fir\|fdr\)\>"
"sp/gp/pr/pr.rot/rp
syn keyword ia64registers sp gp pr pr.rot rp ip tp
"in/out/local
syn match ia64registers "\(in\|out\|loc\)\([0-9]\|[1-8][0-9]\|9[0-5]\)\>"
"argument ia64registers
syn match ia64registers "farg[0-7]\>"
"return value ia64registers
syn match ia64registers "fret[0-7]\>"
"psr
syn match ia64registers "psr\(\.\(l\|um\)\)\=\>"
"cr
syn match ia64registers "cr\.\(dcr\|itm\|iva\|pta\|ipsr\|isr\|ifa\|iip\|itir\|iipa\|ifs\|iim\|iha\|lid\|ivr\|tpr\|eoi\|irr[0-3]\|itv\|pmv\|lrr[01]\|cmcv\)\>"
"Indirect registers
syn match ia64registers "\(cpuid\|dbr\|ibr\|pkr\|pmc\|pmd\|rr\|itr\|dtr\)\>"
"MUX permutations for 8-bit elements
syn match ia64registers "\(@rev\|@mix\|@shuf\|@alt\|@brcst\)\>"
"floating point classes
syn match ia64registers "\(@nat\|@qnan\|@snan\|@pos\|@neg\|@zero\|@unorm\|@norm\|@inf\)\>"
"link relocation operators
syn match ia64registers "\(@\(\(\(gp\|sec\|seg\|image\)rel\)\|ltoff\|fptr\|ptloff\|ltv\|section\)\)\>"

"Data allocation syntax
syn match ia64data "data[1248]\(\(\(\.ua\)\=\(\.msb\|\.lsb\)\=\)\|\(\(\.msb\|\.lsb\)\=\(\.ua\)\=\)\)\=\>"
syn match ia64data "real\([48]\|1[06]\)\(\(\(\.ua\)\=\(\.msb\|\.lsb\)\=\)\|\(\(\.msb\|\.lsb\)\=\(\.ua\)\=\)\)\=\>"
syn match ia64data "stringz\=\(\(\(\.ua\)\=\(\.msb\|\.lsb\)\=\)\|\(\(\.msb\|\.lsb\)\=\(\.ua\)\=\)\)\=\>"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

"put masm groups with our groups
hi def link masmOperator	ia64operator
hi def link masmDirective	ia64Directive
hi def link masmOpcode	ia64Opcode
hi def link masmIdentifier	ia64Identifier
hi def link masmFloat	ia64Float

"ia64 specific stuff
hi def link ia64Label	Define
hi def link ia64Comment	Comment
hi def link ia64Directive	Type
hi def link ia64opcode	Statement
hi def link ia64registers	Operator
hi def link ia64string	String
hi def link ia64Hex		Number
hi def link ia64Binary	Number
hi def link ia64Octal	Number
hi def link ia64Float	Float
hi def link ia64Decimal	Number
hi def link ia64Identifier	Identifier
hi def link ia64data		Type
hi def link ia64delimiter	Delimiter
hi def link ia64operator	Operator
hi def link ia64Todo		Todo


let b:current_syntax = "ia64"

" vim: ts=8 sw=2
PK�j�Z|T�((vim80/syntax/liquid.vimnu�[���" Vim syntax file
" Language:     Liquid
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Filenames:    *.liquid
" Last Change:	2013 May 30

if exists('b:current_syntax')
  finish
endif

if !exists('main_syntax')
  let main_syntax = 'liquid'
endif

if !exists('g:liquid_default_subtype')
  let g:liquid_default_subtype = 'html'
endif

if !exists('b:liquid_subtype') && main_syntax == 'liquid'
  let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
  let b:liquid_subtype = matchstr(s:lines,'liquid_subtype=\zs\w\+')
  if b:liquid_subtype == ''
    let b:liquid_subtype = matchstr(&filetype,'^liquid\.\zs\w\+')
  endif
  if b:liquid_subtype == ''
    let b:liquid_subtype = matchstr(substitute(expand('%:t'),'\c\%(\.liquid\)\+$','',''),'\.\zs\w\+$')
  endif
  if b:liquid_subtype == ''
    let b:liquid_subtype = g:liquid_default_subtype
  endif
endif

if exists('b:liquid_subtype') && b:liquid_subtype != ''
  exe 'runtime! syntax/'.b:liquid_subtype.'.vim'
  unlet! b:current_syntax
endif

syn case match

if exists('b:liquid_subtype') && b:liquid_subtype != 'yaml'
  " YAML Front Matter
  syn include @liquidYamlTop syntax/yaml.vim
  unlet! b:current_syntax
  syn region liquidYamlHead start="\%^---$" end="^---\s*$" keepend contains=@liquidYamlTop,@Spell
endif

if !exists('g:liquid_highlight_types')
  let g:liquid_highlight_types = []
endif

if !exists('s:subtype')
  let s:subtype = exists('b:liquid_subtype') ? b:liquid_subtype : ''

  for s:type in map(copy(g:liquid_highlight_types),'matchstr(v:val,"[^=]*$")')
    if s:type =~ '\.'
      let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*')
    endif
    exe 'syn include @liquidHighlight'.substitute(s:type,'\.','','g').' syntax/'.matchstr(s:type,'[^.]*').'.vim'
    unlet! b:current_syntax
  endfor
  unlet! s:type

  if s:subtype == ''
    unlet! b:liquid_subtype
  else
    let b:liquid_subtype = s:subtype
  endif
  unlet s:subtype
endif

syn region  liquidStatement  matchgroup=liquidDelimiter start="{%" end="%}" contains=@liquidStatement containedin=ALLBUT,@liquidExempt keepend
syn region  liquidExpression matchgroup=liquidDelimiter start="{{" end="}}" contains=@liquidExpression  containedin=ALLBUT,@liquidExempt keepend
syn region  liquidComment    matchgroup=liquidDelimiter start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=liquidTodo,@Spell containedin=ALLBUT,@liquidExempt keepend
syn region  liquidRaw        matchgroup=liquidDelimiter start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" contains=TOP,@liquidExempt containedin=ALLBUT,@liquidExempt keepend

syn cluster liquidExempt contains=liquidStatement,liquidExpression,liquidComment,liquidRaw,@liquidStatement,liquidYamlHead
syn cluster liquidStatement contains=liquidConditional,liquidRepeat,liquidKeyword,@liquidExpression
syn cluster liquidExpression contains=liquidOperator,liquidString,liquidNumber,liquidFloat,liquidBoolean,liquidNull,liquidEmpty,liquidPipe,liquidForloop

syn keyword liquidKeyword highlight nextgroup=liquidTypeHighlight skipwhite contained
syn keyword liquidKeyword endhighlight contained
syn region liquidHighlight start="{%\s*highlight\s\+\w\+\s*%}" end="{% endhighlight %}" keepend

for s:type in g:liquid_highlight_types
  exe 'syn match liquidTypeHighlight "\<'.matchstr(s:type,'[^=]*').'\>" contained'
  exe 'syn region liquidHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' start="{%\s*highlight\s\+'.matchstr(s:type,'[^=]*').'\s*%}" end="{% endhighlight %}" keepend contains=@liquidHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
endfor
unlet! s:type

syn region liquidString matchgroup=liquidQuote start=+"+ end=+"+ contained
syn region liquidString matchgroup=liquidQuote start=+'+ end=+'+ contained
syn match liquidNumber "-\=\<\d\+\>" contained
syn match liquidFloat "-\=\<\d\+\>\.\.\@!\%(\d\+\>\)\=" contained
syn keyword liquidBoolean true false contained
syn keyword liquidNull null nil contained
syn match liquidEmpty "\<empty\>" contained

syn keyword liquidOperator and or not contained
syn match liquidPipe '|' contained skipwhite nextgroup=liquidFilter

syn keyword liquidFilter date capitalize downcase upcase first last join sort size strip_html strip_newlines newline_to_br replace replace_first remove remove_first truncate truncatewords prepend append minus plus times divided_by contained

syn keyword liquidConditional if elsif else endif unless endunless case when endcase ifchanged endifchanged contained
syn keyword liquidRepeat      for endfor tablerow endtablerow in contained
syn match   liquidRepeat      "\%({%\s*\)\@<=empty\>" contained
syn keyword liquidKeyword     assign cycle include with contained

syn keyword liquidForloop forloop nextgroup=liquidForloopDot contained
syn match liquidForloopDot "\." nextgroup=liquidForloopAttribute contained
syn keyword liquidForloopAttribute length index index0 rindex rindex0 first last contained

syn keyword liquidTablerowloop tablerowloop nextgroup=liquidTablerowloopDot contained
syn match liquidTablerowloopDot "\." nextgroup=liquidTableForloopAttribute contained
syn keyword liquidTablerowloopAttribute length index index0 col col0 index0 rindex rindex0 first last col_first col_last contained

hi def link liquidDelimiter             PreProc
hi def link liquidComment               Comment
hi def link liquidTypeHighlight         Type
hi def link liquidConditional           Conditional
hi def link liquidRepeat                Repeat
hi def link liquidKeyword               Keyword
hi def link liquidOperator              Operator
hi def link liquidString                String
hi def link liquidQuote                 Delimiter
hi def link liquidNumber                Number
hi def link liquidFloat                 Float
hi def link liquidEmpty                 liquidNull
hi def link liquidNull                  liquidBoolean
hi def link liquidBoolean               Boolean
hi def link liquidFilter                Function
hi def link liquidForloop               Identifier
hi def link liquidForloopAttribute      Identifier

let b:current_syntax = 'liquid'

if exists('main_syntax') && main_syntax == 'liquid'
  unlet main_syntax
endif
PK�j�ZmB��  vim80/syntax/ptcap.vimnu�[���" Vim syntax file
" Language:	printcap/termcap database
" Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
" URL:		http://folk.uio.no/hakonrk/vim/syntax/ptcap.vim
" Last Change:	2001 May 15

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" Since I only highlight based on the structure of the databases, not
" specific keywords, case sensitivity isn't required
syn case ignore

" Since everything that is not caught by the syntax patterns is assumed
" to be an error, we start parsing 20 lines up, unless something else
" is specified
if exists("ptcap_minlines")
    exe "syn sync lines=".ptcap_minlines
else
    syn sync lines=20
endif

" Highlight everything that isn't caught by the rules as errors,
" except blank lines
syn match ptcapError	    "^.*\S.*$"

syn match ptcapLeadBlank    "^\s\+" contained

" `:' and `|' are delimiters for fields and names, and should not be
" highlighted.	Hence, they are linked to `NONE'
syn match ptcapDelimiter    "[:|]" contained

" Escaped characters receive special highlighting
syn match ptcapEscapedChar  "\\." contained
syn match ptcapEscapedChar  "\^." contained
syn match ptcapEscapedChar  "\\\o\{3}" contained

" A backslash at the end of a line will suppress the newline
syn match ptcapLineCont	    "\\$" contained

" A number follows the same rules as an integer in C
syn match ptcapNumber	    "#\(+\|-\)\=\d\+"lc=1 contained
syn match ptcapNumberError  "#\d*[^[:digit:]:\\]"lc=1 contained
syn match ptcapNumber	    "#0x\x\{1,8}"lc=1 contained
syn match ptcapNumberError  "#0x\X"me=e-1,lc=1 contained
syn match ptcapNumberError  "#0x\x\{9}"lc=1 contained
syn match ptcapNumberError  "#0x\x*[^[:xdigit:]:\\]"lc=1 contained

" The `@' operator clears a flag (i.e., sets it to zero)
" The `#' operator assigns a following number to the flag
" The `=' operator assigns a string to the preceding flag
syn match ptcapOperator	    "[@#=]" contained

" Some terminal capabilites have special names like `#5' and `@1', and we
" need special rules to match these properly
syn match ptcapSpecialCap   "\W[#@]\d" contains=ptcapDelimiter contained

" If editing a termcap file, an entry in the database is terminated by
" a (non-escaped) newline.  Otherwise, it is terminated by a line which
" does not start with a colon (:)
if exists("b:ptcap_type") && b:ptcap_type[0] == 't'
    syn region ptcapEntry   start="^\s*[^[:space:]:]" end="[^\\]\(\\\\\)*$" end="^$" contains=ptcapNames,ptcapField,ptcapLeadBlank keepend
else
    syn region ptcapEntry   start="^\s*[^[:space:]:]"me=e-1 end="^\s*[^[:space:]:#]"me=e-1 contains=ptcapNames,ptcapField,ptcapLeadBlank,ptcapComment
endif
syn region ptcapNames	    start="^\s*[^[:space:]:]" skip="[^\\]\(\\\\\)*\\:" end=":"me=e-1 contains=ptcapDelimiter,ptcapEscapedChar,ptcapLineCont,ptcapLeadBlank,ptcapComment keepend contained
syn region ptcapField	    start=":" skip="[^\\]\(\\\\\)*\\$" end="[^\\]\(\\\\\)*:"me=e-1 end="$" contains=ptcapDelimiter,ptcapString,ptcapNumber,ptcapNumberError,ptcapOperator,ptcapLineCont,ptcapSpecialCap,ptcapLeadBlank,ptcapComment keepend contained
syn region ptcapString	    matchgroup=ptcapOperator start="=" skip="[^\\]\(\\\\\)*\\:" matchgroup=ptcapDelimiter end=":"me=e-1 matchgroup=NONE end="[^\\]\(\\\\\)*[^\\]$" end="^$" contains=ptcapEscapedChar,ptcapLineCont keepend contained
syn region ptcapComment	    start="^\s*#" end="$" contains=ptcapLeadBlank


hi def link ptcapComment		Comment
hi def link ptcapDelimiter	Delimiter
" The highlighting of "ptcapEntry" should always be overridden by
" its contents, so I use Todo highlighting to indicate that there
" is work to be done with the syntax file if you can see it :-)
hi def link ptcapEntry		Todo
hi def link ptcapError		Error
hi def link ptcapEscapedChar	SpecialChar
hi def link ptcapField		Type
hi def link ptcapLeadBlank	NONE
hi def link ptcapLineCont	Special
hi def link ptcapNames		Label
hi def link ptcapNumber		NONE
hi def link ptcapNumberError	Error
hi def link ptcapOperator	Operator
hi def link ptcapSpecialCap	Type
hi def link ptcapString		NONE


let b:current_syntax = "ptcap"

" vim: sts=4 sw=4 ts=8
PK�j�Z��H1��vim80/syntax/sgmldecl.vimnu�[���" Vim syntax file
" Language:	SGML (SGML Declaration <!SGML ...>)
" Last Change: jueves, 28 de diciembre de 2000, 13:51:44 CLST
" Maintainer: "Daniel A. Molina W." <sickd@linux-chile.org>
" You can modify and maintain this file, in other case send comments
" the maintainer email address.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn case ignore

syn region	sgmldeclDeclBlock	transparent start=+<!SGML+ end=+>+
syn region	sgmldeclTagBlock	transparent start=+<+ end=+>+
					\ contains=ALLBUT,
					\ @sgmlTagError,@sgmlErrInTag
syn region	sgmldeclComment		contained start=+--+ end=+--+

syn keyword	sgmldeclDeclKeys	SGML CHARSET CAPACITY SCOPE SYNTAX
					\ FEATURES

syn keyword	sgmldeclTypes		BASESET DESCSET DOCUMENT NAMING DELIM
					\ NAMES QUANTITY SHUNCHAR DOCTYPE
					\ ELEMENT ENTITY ATTLIST NOTATION
					\ TYPE

syn keyword	sgmldeclStatem		CONTROLS FUNCTION NAMECASE MINIMIZE
					\ LINK OTHER APPINFO REF ENTITIES

syn keyword sgmldeclVariables	TOTALCAP GRPCAP ENTCAP DATATAG OMITTAG RANK
					\ SIMPLE IMPLICIT EXPLICIT CONCUR SUBDOC FORMAL ATTCAP
					\ ATTCHCAP AVGRPCAP ELEMCAP ENTCHCAP IDCAP IDREFCAP
					\ SHORTTAG

syn match	sgmldeclNConst		contained +[0-9]\++

syn region	sgmldeclString		contained start=+"+ end=+"+

syn keyword	sgmldeclBool		YES NO

syn keyword	sgmldeclSpecial		SHORTREF SGMLREF UNUSED NONE GENERAL
					\ SEEALSO ANY

syn sync lines=250


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link sgmldeclDeclKeys	Keyword
hi def link sgmldeclTypes		Type
hi def link sgmldeclConst		Constant
hi def link sgmldeclNConst		Constant
hi def link sgmldeclString		String
hi def link sgmldeclDeclBlock	Normal
hi def link sgmldeclBool		Boolean
hi def link sgmldeclSpecial		Special
hi def link sgmldeclComment		Comment
hi def link sgmldeclStatem		Statement
hi def link sgmldeclVariables	Type


let b:current_syntax = "sgmldecl"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:set tw=78 ts=4:
PK�j�Zw�i�VVvim80/syntax/jess.vimnu�[���" Vim syntax file
" Language:	Jess
" Maintainer:	Paul Baleme <pbaleme@mail.com>
" Last change:	September 14, 2000
" Based on lisp.vim by : Dr. Charles E. Campbell, Jr.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_

" Lists
syn match	jessSymbol	![^()'`,"; \t]\+!	contained
syn match	jessBarSymbol	!|..\{-}|!		contained
syn region	jessList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=jessAtom,jessBQList,jessConcat,jessDeclaration,jessList,jessNumber,jessSymbol,jessSpecial,jessFunc,jessKey,jessAtomMark,jessString,jessComment,jessBarSymbol,jessAtomBarSymbol,jessVar
syn region	jessBQList	matchgroup=PreProc   start="`("	skip="|.\{-}|" matchgroup=PreProc   end=")" contains=jessAtom,jessBQList,jessConcat,jessDeclaration,jessList,jessNumber,jessSpecial,jessSymbol,jessFunc,jessKey,jessVar,jessAtomMark,jessString,jessComment,jessBarSymbol,jessAtomBarSymbol

" Atoms
syn match	jessAtomMark	"'"
syn match	jessAtom	"'("me=e-1	contains=jessAtomMark	nextgroup=jessAtomList
syn match	jessAtom	"'[^ \t()]\+"	contains=jessAtomMark
syn match	jessAtomBarSymbol	!'|..\{-}|!	contains=jessAtomMark
syn region	jessAtom	start=+'"+	skip=+\\"+ end=+"+
syn region	jessAtomList	matchgroup=Special start="("	skip="|.\{-}|" matchgroup=Special end=")"	contained contains=jessAtomList,jessAtomNmbr0,jessString,jessComment,jessAtomBarSymbol
syn match	jessAtomNmbr	"\<[0-9]\+"			contained

" Standard jess Functions and Macros
syn keyword jessFunc    *   +   **	-   /   <   >   <=  >=  <>  =
syn keyword jessFunc    long	    longp
syn keyword jessFunc    abs	    agenda	      and
syn keyword jessFunc    assert	    assert-string       bag
syn keyword jessFunc    batch	    bind	      bit-and
syn keyword jessFunc    bit-not	    bit-or	      bload
syn keyword jessFunc    bsave	    build	      call
syn keyword jessFunc    clear	    clear-storage       close
syn keyword jessFunc    complement$     context	      count-query-results
syn keyword jessFunc    create$
syn keyword jessFunc    delete$	    div
syn keyword jessFunc    do-backward-chaining	      e
syn keyword jessFunc    engine	    eq	      eq*
syn keyword jessFunc    eval	    evenp	      exit
syn keyword jessFunc    exp	    explode$	      external-addressp
syn keyword jessFunc    fact-slot-value facts	      fetch
syn keyword jessFunc    first$	    float	      floatp
syn keyword jessFunc    foreach	    format	      gensym*
syn keyword jessFunc    get	    get-fact-duplication
syn keyword jessFunc    get-member	    get-multithreaded-io
syn keyword jessFunc    get-reset-globals	      get-salience-evaluation
syn keyword jessFunc    halt	    if	      implode$
syn keyword jessFunc    import	    insert$	      integer
syn keyword jessFunc    integerp	    intersection$       jess-version-number
syn keyword jessFunc    jess-version-string	      length$
syn keyword jessFunc    lexemep	    list-function$      load-facts
syn keyword jessFunc    load-function   load-package	      log
syn keyword jessFunc    log10	    lowcase	      matches
syn keyword jessFunc    max	    member$	      min
syn keyword jessFunc    mod	    modify	      multifieldp
syn keyword jessFunc    neq	    new	      not
syn keyword jessFunc    nth$	    numberp	      oddp
syn keyword jessFunc    open	    or	      pi
syn keyword jessFunc    ppdeffunction   ppdefglobal	      ddpefrule
syn keyword jessFunc    printout	    random	      read
syn keyword jessFunc    readline	    replace$	      reset
syn keyword jessFunc    rest$	    retract	      retract-string
syn keyword jessFunc    return	    round	      rules
syn keyword jessFunc    run	    run-query	      run-until-halt
syn keyword jessFunc    save-facts	    set	      set-fact-duplication
syn keyword jessFunc    set-factory     set-member	      set-multithreaded-io
syn keyword jessFunc    set-node-index-hash	      set-reset-globals
syn keyword jessFunc    set-salience-evaluation	      set-strategy
syn keyword jessFunc    setgen	    show-deffacts       show-deftemplates
syn keyword jessFunc    show-jess-listeners	      socket
syn keyword jessFunc    sqrt	    store	      str-cat
syn keyword jessFunc    str-compare     str-index	      str-length
syn keyword jessFunc    stringp	    sub-string	      subseq$
syn keyword jessFunc    subsetp	    sym-cat	      symbolp
syn keyword jessFunc    system	    throw	      time
syn keyword jessFunc    try	    undefadvice	      undefinstance
syn keyword jessFunc    undefrule	    union$	      unwatch
syn keyword jessFunc    upcase	    view	      watch
syn keyword jessFunc    while
syn match   jessFunc	"\<c[ad]\+r\>"

" jess Keywords (modifiers)
syn keyword jessKey	    defglobal	  deffunction	    defrule
syn keyword jessKey	    deffacts
syn keyword jessKey	    defadvice	  defclass	    definstance

" Standard jess Variables
syn region	jessVar	start="?"	end="[^a-zA-Z0-9]"me=e-1

" Strings
syn region	jessString	start=+"+	skip=+\\"+ end=+"+

" Shared with Declarations, Macros, Functions
"syn keyword	jessDeclaration

syn match	jessNumber	"[0-9]\+"

syn match	jessSpecial	"\*[a-zA-Z_][a-zA-Z_0-9-]*\*"
syn match	jessSpecial	!#|[^()'`,"; \t]\+|#!
syn match	jessSpecial	!#x[0-9a-fA-F]\+!
syn match	jessSpecial	!#o[0-7]\+!
syn match	jessSpecial	!#b[01]\+!
syn match	jessSpecial	!#\\[ -\~]!
syn match	jessSpecial	!#[':][^()'`,"; \t]\+!
syn match	jessSpecial	!#([^()'`,"; \t]\+)!

syn match	jessConcat	"\s\.\s"
syntax match	jessParenError	")"

" Comments
syn match	jessComment	";.*$"

" synchronization
syn sync lines=100

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link jessAtomNmbr	jessNumber
hi def link jessAtomMark	jessMark

hi def link jessAtom		Identifier
hi def link jessAtomBarSymbol	Special
hi def link jessBarSymbol	Special
hi def link jessComment	Comment
hi def link jessConcat	Statement
hi def link jessDeclaration	Statement
hi def link jessFunc		Statement
hi def link jessKey		Type
hi def link jessMark		Delimiter
hi def link jessNumber	Number
hi def link jessParenError	Error
hi def link jessSpecial	Type
hi def link jessString	String
hi def link jessVar		Identifier


let b:current_syntax = "jess"

" vim: ts=18
PK�j�ZFU,ܠ
�
vim80/syntax/povini.vimnu�[���" Vim syntax file
" Language: PoV-Ray(tm) 3.7 configuration/initialization files
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" Last Change: 2011-04-24
" Required Vim Version: 6.0

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Syntax
syn match poviniInclude "^\s*[^[+-;]\S*\s*$" contains=poviniSection
syn match poviniLabel "^.\{-1,}\ze=" transparent contains=poviniKeyword nextgroup=poviniBool,poviniNumber
syn keyword poviniBool On Off True False Yes No
syn match poviniNumber "\<\d*\.\=\d\+\>"
syn keyword poviniKeyword Clock Initial_Frame Final_Frame Frame_Final Frame_Step Initial_Clock Final_Clock Subset_Start_Frame Subset_End_Frame Cyclic_Animation Clockless_Animation Real_Time_Raytracing Field_Render Odd_Field Work_Threads
syn keyword poviniKeyword Width Height Start_Column Start_Row End_Column End_Row Test_Abort Test_Abort_Count Continue_Trace Create_Ini
syn keyword poviniKeyword Display Video_Mode Palette Display_Gamma Pause_When_Done Verbose Draw_Vistas Preview_Start_Size Preview_End_Size Render_Block_Size Render_Block_Step Render_Pattern Max_Image_Buffer_Memory
syn keyword poviniKeyword Output_to_File Output_File_Type Output_Alpha Bits_Per_Color Output_File_Name Buffer_Output Buffer_Size Dither Dither_Method File_Gamma
syn keyword poviniKeyword BSP_Base BSP_Child BSP_Isect BSP_Max BSP_Miss
syn keyword poviniKeyword Histogram_Type Histogram_Grid_Size Histogram_Name
syn keyword poviniKeyword Input_File_Name Include_Header Library_Path Version
syn keyword poviniKeyword Debug_Console Fatal_Console Render_Console Statistic_Console Warning_Console All_Console Debug_File Fatal_File Render_File Statistic_File Warning_File All_File Warning_Level
syn keyword poviniKeyword Quality Bounding Bounding_Method Bounding_Threshold Light_Buffer Vista_Buffer Remove_Bounds Split_Unions Antialias Sampling_Method Antialias_Threshold Jitter Jitter_Amount Antialias_Depth Antialias_Gamma
syn keyword poviniKeyword Pre_Scene_Return Pre_Frame_Return Post_Scene_Return Post_Frame_Return User_Abort_Return Fatal_Error_Return
syn keyword poviniKeyword Radiosity Radiosity_File_Name Radiosity_From_File Radiosity_To_File Radiosity_Vain_Pretrace High_Reproducibility
syn match poviniShellOut "^\s*\(Pre_Scene_Command\|Pre_Frame_Command\|Post_Scene_Command\|Post_Frame_Command\|User_Abort_Command\|Fatal_Error_Command\)\>" nextgroup=poviniShellOutEq skipwhite
syn match poviniShellOutEq "=" nextgroup=poviniShellOutRHS skipwhite contained
syn match poviniShellOutRHS "[^;]\+" skipwhite contained contains=poviniShellOutSpecial
syn match poviniShellOutSpecial "%[osnkhw%]" contained
syn keyword poviniDeclare Declare
syn match poviniComment ";.*$"
syn match poviniOption "^\s*[+-]\S*"
syn match poviniIncludeLabel "^\s*Include_INI\s*=" nextgroup=poviniIncludedFile skipwhite
syn match poviniIncludedFile "[^;]\+" contains=poviniSection contained
syn region poviniSection start="\[" end="\]"

" Define the default highlighting
hi def link poviniSection Special
hi def link poviniComment Comment
hi def link poviniDeclare poviniKeyword
hi def link poviniShellOut poviniKeyword
hi def link poviniIncludeLabel poviniKeyword
hi def link poviniKeyword Type
hi def link poviniShellOutSpecial Special
hi def link poviniIncludedFile poviniInclude
hi def link poviniInclude Include
hi def link poviniOption Keyword
hi def link poviniBool Constant
hi def link poviniNumber Number

let b:current_syntax = "povini"
PK�j�Z>9朤���vim80/syntax/cmake.vimnu�[���" Vim syntax file
" Program:      CMake - Cross-Platform Makefile Generator
" Version:      cmake version 3.9.20170830-ge0713
" Language:     CMake
" Author:       Andy Cedilnik <andy.cedilnik@kitware.com>,
"               Nicholas Hutchinson <nshutchinson@gmail.com>,
"               Patrick Boettcher <patrick.boettcher@posteo.de>
" Maintainer:   Dimitri Merejkowsky <d.merej@gmail.com>
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Last Change:  2017 Aug 30
"
" Licence:      The CMake license applies to this file. See
"               https://cmake.org/licensing
"               This implies that distribution with Vim is allowed

if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn region cmakeComment start="#" end="$" contains=cmakeTodo,cmakeLuaComment,@Spell
syn region cmakeLuaComment start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell

syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained
syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped

syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo

syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped

syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo

syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo

syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeArguments,cmakeTodo

syn case match

syn keyword cmakeProperty contained
            \ ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ADVANCED ALIASED_TARGET ALLOW_DUPLICATE_CUSTOM_TARGETS ANDROID_ANT_ADDITIONAL_OPTIONS ANDROID_API ANDROID_API_MIN ANDROID_ARCH ANDROID_ASSETS_DIRECTORIES ANDROID_GUI ANDROID_JAR_DEPENDENCIES ANDROID_JAR_DIRECTORIES ANDROID_JAVA_SOURCE_DIR ANDROID_NATIVE_LIB_DEPENDENCIES ANDROID_NATIVE_LIB_DIRECTORIES ANDROID_PROCESS_MAX ANDROID_PROGUARD ANDROID_PROGUARD_CONFIG_PATH ANDROID_SECURE_PROPS_PATH ANDROID_SKIP_ANT_STEP ANDROID_STL_TYPE ARCHIVE_OUTPUT_DIRECTORY ARCHIVE_OUTPUT_NAME ATTACHED_FILES ATTACHED_FILES_ON_FAIL AUTOGEN_BUILD_DIR AUTOGEN_SOURCE_GROUP AUTOGEN_TARGETS_FOLDER AUTOGEN_TARGET_DEPENDS AUTOMOC AUTOMOC_DEPEND_FILTERS AUTOMOC_MACRO_NAMES AUTOMOC_MOC_OPTIONS AUTOMOC_SOURCE_GROUP AUTOMOC_TARGETS_FOLDER AUTORCC AUTORCC_OPTIONS AUTORCC_SOURCE_GROUP AUTOUIC AUTOUIC_OPTIONS AUTOUIC_SEARCH_PATHS BINARY_DIR BUILDSYSTEM_TARGETS BUILD_RPATH BUILD_WITH_INSTALL_NAME_DIR BUILD_WITH_INSTALL_RPATH BUNDLE BUNDLE_EXTENSION CACHE_VARIABLES CLEAN_NO_CUSTOM CMAKE_CONFIGURE_DEPENDS CMAKE_CXX_KNOWN_FEATURES CMAKE_C_KNOWN_FEATURES COMPATIBLE_INTERFACE_BOOL COMPATIBLE_INTERFACE_NUMBER_MAX COMPATIBLE_INTERFACE_NUMBER_MIN COMPATIBLE_INTERFACE_STRING COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_FLAGS COMPILE_OPTIONS COMPILE_PDB_NAME COMPILE_PDB_OUTPUT_DIRECTORY COST CPACK_DESKTOP_SHORTCUTS CPACK_NEVER_OVERWRITE CPACK_PERMANENT CPACK_STARTUP_SHORTCUTS CPACK_START_MENU_SHORTCUTS CPACK_WIX_ACL CROSSCOMPILING_EMULATOR CUDA_EXTENSIONS CUDA_PTX_COMPILATION CUDA_RESOLVE_DEVICE_SYMBOLS CUDA_SEPARABLE_COMPILATION CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEBUG_CONFIGURATIONS DEBUG_POSTFIX DEFINE_SYMBOL DEFINITIONS DEPENDS DEPLOYMENT_REMOTE_DIRECTORY DISABLED DISABLED_FEATURES ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME EXTERNAL_OBJECT EchoString FAIL_REGULAR_EXPRESSION FIND_LIBRARY_USE_LIB32_PATHS FIND_LIBRARY_USE_LIB64_PATHS FIND_LIBRARY_USE_LIBX32_PATHS FIND_LIBRARY_USE_OPENBSD_VERSIONING FIXTURES_CLEANUP FIXTURES_REQUIRED FIXTURES_SETUP FOLDER FRAMEWORK FRAMEWORK_VERSION Fortran_FORMAT Fortran_MODULE_DIRECTORY GENERATED GENERATOR_FILE_NAME GENERATOR_IS_MULTI_CONFIG GLOBAL_DEPENDS_DEBUG_MODE GLOBAL_DEPENDS_NO_CYCLES GNUtoMS HAS_CXX HEADER_FILE_ONLY HELPSTRING IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_CONFIGURATIONS IMPORTED_IMPLIB IMPORTED_LIBNAME IMPORTED_LINK_DEPENDENT_LIBRARIES IMPORTED_LINK_INTERFACE_LANGUAGES IMPORTED_LINK_INTERFACE_LIBRARIES IMPORTED_LINK_INTERFACE_MULTIPLICITY IMPORTED_LOCATION IMPORTED_NO_SONAME IMPORTED_OBJECTS IMPORTED_SONAME IMPORT_PREFIX IMPORT_SUFFIX INCLUDE_DIRECTORIES INCLUDE_REGULAR_EXPRESSION INSTALL_NAME_DIR INSTALL_RPATH INSTALL_RPATH_USE_LINK_PATH INTERFACE_AUTOUIC_OPTIONS INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_POSITION_INDEPENDENT_CODE INTERFACE_SOURCES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES INTERPROCEDURAL_OPTIMIZATION IN_TRY_COMPILE IOS_INSTALL_COMBINED JOB_POOLS JOB_POOL_COMPILE JOB_POOL_LINK KEEP_EXTENSION LABELS LANGUAGE LIBRARY_OUTPUT_DIRECTORY LIBRARY_OUTPUT_NAME LINKER_LANGUAGE LINK_DEPENDS LINK_DEPENDS_NO_SHARED LINK_DIRECTORIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_MULTIPLICITY LINK_LIBRARIES LINK_SEARCH_END_STATIC LINK_SEARCH_START_STATIC LINK_WHAT_YOU_USE LISTFILE_STACK LOCATION MACOSX_BUNDLE MACOSX_BUNDLE_INFO_PLIST MACOSX_FRAMEWORK_INFO_PLIST MACOSX_PACKAGE_LOCATION MACOSX_RPATH MACROS MANUALLY_ADDED_DEPENDENCIES MEASUREMENT MODIFIED NAME NO_SONAME NO_SYSTEM_FROM_IMPORTED OBJECT_DEPENDS OBJECT_OUTPUTS OSX_ARCHITECTURES OUTPUT_NAME PACKAGES_FOUND PACKAGES_NOT_FOUND PARENT_DIRECTORY PASS_REGULAR_EXPRESSION PDB_NAME PDB_OUTPUT_DIRECTORY POSITION_INDEPENDENT_CODE POST_INSTALL_SCRIPT PREDEFINED_TARGETS_FOLDER PREFIX PRE_INSTALL_SCRIPT PRIVATE_HEADER PROCESSORS PROJECT_LABEL PUBLIC_HEADER REPORT_UNDEFINED_PROPERTIES REQUIRED_FILES RESOURCE RESOURCE_LOCK RULE_LAUNCH_COMPILE RULE_LAUNCH_CUSTOM RULE_LAUNCH_LINK RULE_MESSAGES RUNTIME_OUTPUT_DIRECTORY RUNTIME_OUTPUT_NAME RUN_SERIAL SKIP_AUTOGEN SKIP_AUTOMOC SKIP_AUTORCC SKIP_AUTOUIC SKIP_BUILD_RPATH SKIP_RETURN_CODE SOURCES SOURCE_DIR SOVERSION STATIC_LIBRARY_FLAGS STRINGS SUBDIRECTORIES SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_MESSAGES TARGET_SUPPORTS_SHARED_LIBS TEST_INCLUDE_FILE TEST_INCLUDE_FILES TIMEOUT TIMEOUT_AFTER_MATCH TYPE USE_FOLDERS VALUE VARIABLES VERSION VISIBILITY_INLINES_HIDDEN VS_CONFIGURATION_TYPE VS_COPY_TO_OUT_DIR VS_DEBUGGER_WORKING_DIRECTORY VS_DEPLOYMENT_CONTENT VS_DEPLOYMENT_LOCATION VS_DESKTOP_EXTENSIONS_VERSION VS_DOTNET_REFERENCES VS_DOTNET_REFERENCES_COPY_LOCAL VS_DOTNET_TARGET_FRAMEWORK_VERSION VS_GLOBAL_KEYWORD VS_GLOBAL_PROJECT_TYPES VS_GLOBAL_ROOTNAMESPACE VS_INCLUDE_IN_VSIX VS_IOT_EXTENSIONS_VERSION VS_IOT_STARTUP_TASK VS_KEYWORD VS_MOBILE_EXTENSIONS_VERSION VS_RESOURCE_GENERATOR VS_SCC_AUXPATH VS_SCC_LOCALPATH VS_SCC_PROJECTNAME VS_SCC_PROVIDER VS_SDK_REFERENCES VS_SHADER_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL VS_SHADER_TYPE VS_STARTUP_PROJECT VS_TOOL_OVERRIDE VS_USER_PROPS VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION VS_WINRT_COMPONENT VS_WINRT_EXTENSIONS VS_WINRT_REFERENCES VS_XAML_TYPE WILL_FAIL WIN32_EXECUTABLE WINDOWS_EXPORT_ALL_SYMBOLS WORKING_DIRECTORY WRAP_EXCLUDE XCODE_EMIT_EFFECTIVE_PLATFORM_NAME XCODE_EXPLICIT_FILE_TYPE XCODE_FILE_ATTRIBUTES XCODE_LAST_KNOWN_FILE_TYPE XCODE_PRODUCT_TYPE XCTEST

syn keyword cmakeVariable contained
            \ ANDROID APPLE BORLAND BUILD_SHARED_LIBS CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS CMAKE_ANDROID_API CMAKE_ANDROID_API_MIN CMAKE_ANDROID_ARCH CMAKE_ANDROID_ARCH_ABI CMAKE_ANDROID_ARM_MODE CMAKE_ANDROID_ARM_NEON CMAKE_ANDROID_ASSETS_DIRECTORIES CMAKE_ANDROID_GUI CMAKE_ANDROID_JAR_DEPENDENCIES CMAKE_ANDROID_JAR_DIRECTORIES CMAKE_ANDROID_JAVA_SOURCE_DIR CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_DEPRECATED_HEADERS CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION CMAKE_ANDROID_PROCESS_MAX CMAKE_ANDROID_PROGUARD CMAKE_ANDROID_PROGUARD_CONFIG_PATH CMAKE_ANDROID_SECURE_PROPS_PATH CMAKE_ANDROID_SKIP_ANT_STEP CMAKE_ANDROID_STANDALONE_TOOLCHAIN CMAKE_ANDROID_STL_TYPE CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC CMAKE_AUTOMOC_DEPEND_FILTERS CMAKE_AUTOMOC_MACRO_NAMES CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS CMAKE_AUTOUIC_SEARCH_PATHS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_RPATH CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_NAME_DIR CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_CODELITE_USE_TARGETS CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 CMAKE_COMPILER_IS_GNUCC CMAKE_COMPILER_IS_GNUCXX CMAKE_COMPILER_IS_GNUG77 CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY CMAKE_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_STANDARD CMAKE_CUDA_STANDARD_REQUIRED CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_CXX_COMPILE_FEATURES CMAKE_CXX_EXTENSIONS CMAKE_CXX_STANDARD CMAKE_CXX_STANDARD_REQUIRED CMAKE_C_COMPILE_FEATURES CMAKE_C_EXTENSIONS CMAKE_C_STANDARD CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DEPENDS_IN_PROJECT_ONLY CMAKE_DIRECTORY_LABELS CMAKE_DL_LIBS CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT CMAKE_ECLIPSE_MAKE_ARGUMENTS CMAKE_ECLIPSE_VERSION CMAKE_EDIT_COMMAND CMAKE_ENABLE_EXPORTS CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_INIT CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_APPBUNDLE CMAKE_FIND_FRAMEWORK CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_NO_INSTALL_PREFIX CMAKE_FIND_PACKAGE_NAME CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_SORT_DIRECTION CMAKE_FIND_PACKAGE_SORT_ORDER CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_FIND_ROOT_PATH CMAKE_FIND_ROOT_PATH_MODE_INCLUDE CMAKE_FIND_ROOT_PATH_MODE_LIBRARY CMAKE_FIND_ROOT_PATH_MODE_PACKAGE CMAKE_FIND_ROOT_PATH_MODE_PROGRAM CMAKE_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE CMAKE_HOST_SOLARIS CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE CMAKE_INCLUDE_DIRECTORIES_BEFORE CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE CMAKE_INCLUDE_PATH CMAKE_INSTALL_DEFAULT_COMPONENT_NAME CMAKE_INSTALL_MESSAGE CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_IOS_INSTALL_COMBINED CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK CMAKE_LIBRARY_ARCHITECTURE CMAKE_LIBRARY_ARCHITECTURE_REGEX CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_LIBRARY_PATH CMAKE_LIBRARY_PATH_FLAG CMAKE_LINK_DEF_FILE_FLAG CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_INTERFACE_LIBRARIES CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX CMAKE_LINK_SEARCH_END_STATIC CMAKE_LINK_SEARCH_START_STATIC CMAKE_LINK_WHAT_YOU_USE CMAKE_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MATCH_COUNT CMAKE_MFC_FLAG CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_MINOR_VERSION CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_INIT CMAKE_MODULE_PATH CMAKE_MSVCIDE_RUN_PATH CMAKE_NINJA_OUTPUT_PATH_PREFIX CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_DESCRIPTION CMAKE_PROJECT_NAME CMAKE_RANLIB CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_INIT CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_ALL_DEPENDENCY CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_INSTALL_RULES CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STAGING_PREFIX CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_STATIC_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS_INIT CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE CMAKE_SYSROOT CMAKE_SYSROOT_COMPILE CMAKE_SYSROOT_LINK CMAKE_SYSTEM CMAKE_SYSTEM_APPBUNDLE_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION CMAKE_Swift_LANGUAGE_VERSION CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_TRY_COMPILE_TARGET_TYPE CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET CMAKE_VS_PLATFORM_TOOLSET_CUDA CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY CPACK_INSTALL_SCRIPT CPACK_PACKAGING_INSTALL_PREFIX CPACK_SET_DESTDIR CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CTEST_BINARY_DIRECTORY CTEST_BUILD_COMMAND CTEST_BUILD_NAME CTEST_BZR_COMMAND CTEST_BZR_UPDATE_OPTIONS CTEST_CHANGE_ID CTEST_CHECKOUT_COMMAND CTEST_CONFIGURATION_TYPE CTEST_CONFIGURE_COMMAND CTEST_COVERAGE_COMMAND CTEST_COVERAGE_EXTRA_FLAGS CTEST_CURL_OPTIONS CTEST_CUSTOM_COVERAGE_EXCLUDE CTEST_CUSTOM_ERROR_EXCEPTION CTEST_CUSTOM_ERROR_MATCH CTEST_CUSTOM_ERROR_POST_CONTEXT CTEST_CUSTOM_ERROR_PRE_CONTEXT CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MEMCHECK_IGNORE CTEST_CUSTOM_POST_MEMCHECK CTEST_CUSTOM_POST_TEST CTEST_CUSTOM_PRE_MEMCHECK CTEST_CUSTOM_PRE_TEST CTEST_CUSTOM_TEST_IGNORE CTEST_CUSTOM_WARNING_EXCEPTION CTEST_CUSTOM_WARNING_MATCH CTEST_CVS_CHECKOUT CTEST_CVS_COMMAND CTEST_CVS_UPDATE_OPTIONS CTEST_DROP_LOCATION CTEST_DROP_METHOD CTEST_DROP_SITE CTEST_DROP_SITE_CDASH CTEST_DROP_SITE_PASSWORD CTEST_DROP_SITE_USER CTEST_EXTRA_COVERAGE_GLOB CTEST_GIT_COMMAND CTEST_GIT_INIT_SUBMODULES CTEST_GIT_UPDATE_CUSTOM CTEST_GIT_UPDATE_OPTIONS CTEST_HG_COMMAND CTEST_HG_UPDATE_OPTIONS CTEST_LABELS_FOR_SUBPROJECTS CTEST_MEMORYCHECK_COMMAND CTEST_MEMORYCHECK_COMMAND_OPTIONS CTEST_MEMORYCHECK_SANITIZER_OPTIONS CTEST_MEMORYCHECK_SUPPRESSIONS_FILE CTEST_MEMORYCHECK_TYPE CTEST_NIGHTLY_START_TIME CTEST_P4_CLIENT CTEST_P4_COMMAND CTEST_P4_OPTIONS CTEST_P4_UPDATE_OPTIONS CTEST_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY CTEST_SVN_COMMAND CTEST_SVN_OPTIONS CTEST_SVN_UPDATE_OPTIONS CTEST_TEST_LOAD CTEST_TEST_TIMEOUT CTEST_TRIGGER_SITE CTEST_UPDATE_COMMAND CTEST_UPDATE_OPTIONS CTEST_UPDATE_VERSION_ONLY CTEST_USE_LAUNCHERS CYGWIN ENV EXECUTABLE_OUTPUT_PATH GHS-MULTI LIBRARY_OUTPUT_PATH MINGW MSVC MSVC10 MSVC11 MSVC12 MSVC14 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_VERSION PROJECT_BINARY_DIR PROJECT_DESCRIPTION PROJECT_NAME PROJECT_SOURCE_DIR PROJECT_VERSION PROJECT_VERSION_MAJOR PROJECT_VERSION_MINOR PROJECT_VERSION_PATCH PROJECT_VERSION_TWEAK UNIX WIN32 WINCE WINDOWS_PHONE WINDOWS_STORE XCODE XCODE_VERSION

syn keyword cmakeModule contained
            \ ExternalProject

syn keyword cmakeKWExternalProject contained
            \ ALGO AWS BINARY_DIR BUILD_ALWAYS BUILD_BYPRODUCTS BUILD_COMMAND BUILD_IN_SOURCE CMAKE_ARGS CMAKE_CACHE_ARGS CMAKE_CACHE_DEFAULT_ARGS CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY COMMENT CONFIGURE_COMMAND CVS CVSROOT CVS_MODULE CVS_REPOSITORY CVS_TAG DEPENDEES DEPENDERS DEPENDS DOWNLOADED_FILE DOWNLOAD_COMMAND DOWNLOAD_DIR DOWNLOAD_NAME DOWNLOAD_NO_EXTRACT DOWNLOAD_NO_PROGRESS EP_BASE EP_INDEPENDENT_STEP_TARGETS EP_PREFIX EP_STEP_TARGETS EP_UPDATE_DISCONNECTED EXCLUDE_FROM_ALL FORCE GIT_CONFIG GIT_PROGRESS GIT_REMOTE_NAME GIT_REPOSITORY GIT_SHALLOW GIT_SUBMODULES GIT_TAG HG_REPOSITORY HG_TAG HTTP_HEADER HTTP_PASSWORD HTTP_USERNAME INDEPENDENT_STEP_TARGETS INSTALL_COMMAND INSTALL_DIR JOB_POOLS LIST_SEPARATOR LOG_ LOG_BUILD LOG_CONFIGURE LOG_DOWNLOAD LOG_INSTALL LOG_TEST LOG_UPDATE MAKE_EXE NAMES NOTE NO_DEPENDS PATCH_COMMAND PREFIX PROPERTY SOURCE_DIR SOURCE_SUBDIR STAMP_DIR STEP_TARGETS STRING SVN_PASSWORD SVN_REPOSITORY SVN_REVISION SVN_TRUST_CERT SVN_USERNAME TEST_AFTER_INSTALL TEST_BEFORE_INSTALL TEST_COMMAND TEST_EXCLUDE_FROM_MAIN TIMEOUT TLS_CAINFO TLS_VERIFY TMP_DIR TRUE UPDATE_COMMAND UPDATE_DISCONNECTED URL URL_HASH USES_TERMINAL_BUILD USES_TERMINAL_CONFIGURE USES_TERMINAL_DOWNLOAD USES_TERMINAL_INSTALL USES_TERMINAL_TEST USES_TERMINAL_UPDATE WORKING_DIRECTORY

syn keyword cmakeKWadd_compile_options contained
            \ COMPILE_OPTIONS

syn keyword cmakeKWadd_custom_command contained
            \ APPEND ARGS BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS DEPFILE GENERATED IMPLICIT_DEPENDS INCLUDE_DIRECTORIES JOIN MAIN_DEPENDENCY NOT OUTPUT POST_BUILD PRE_BUILD PRE_LINK SYMBOLIC TARGET_FILE TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY

syn keyword cmakeKWadd_custom_target contained
            \ ALL BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS GENERATED INCLUDE_DIRECTORIES JOIN SOURCES TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY

syn keyword cmakeKWadd_definitions contained
            \ COMPILE_DEFINITIONS

syn keyword cmakeKWadd_dependencies contained
            \ DEPENDS OBJECT_DEPENDS

syn keyword cmakeKWadd_executable contained
            \ ALIAS CONFIG EXCLUDE_FROM_ALL GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ MACOSX_BUNDLE OUTPUT_NAME RUNTIME_OUTPUT_DIRECTORY TARGET

syn keyword cmakeKWadd_library contained
            \ ALIAS ARCHIVE_OUTPUT_DIRECTORY CLI CONFIG DLL EXCLUDE_FROM_ALL FRAMEWORK GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ INTERFACE_ LIBRARY_OUTPUT_DIRECTORY MODULE OBJECT ON OUTPUT_NAME POSITION_INDEPENDENT_CODE POST_BUILD PRE_BUILD PRE_LINK RUNTIME_OUTPUT_DIRECTORY SHARED STATIC TARGET_OBJECTS UNKNOWN

syn keyword cmakeKWadd_subdirectory contained
            \ EXCLUDE_FROM_ALL

syn keyword cmakeKWadd_test contained
            \ BUILD_TESTING COMMAND CONFIGURATIONS FAIL_REGULAR_EXPRESSION NAME PASS_REGULAR_EXPRESSION TARGET_FILE WILL_FAIL WORKING_DIRECTORY

syn keyword cmakeKWbuild_command contained
            \ CONFIGURATION TARGET

syn keyword cmakeKWbuild_name contained
            \ CMAKE_CXX_COMPILER

syn keyword cmakeKWcmake_host_system_information contained
            \ AVAILABLE_PHYSICAL_MEMORY AVAILABLE_VIRTUAL_MEMORY FQDN HAS_FPU HAS_MMX HAS_MMX_PLUS HAS_SERIAL_NUMBER HAS_SSE HAS_SSE_FP HAS_SSE_MMX HOSTNAME ID NUMBER_OF_LOGICAL_CORES NUMBER_OF_PHYSICAL_CORES OS_NAME OS_PLATFORM OS_RELEASE OS_VERSION PROCESSOR_DESCRIPTION PROCESSOR_NAME PROCESSOR_SERIAL_NUMBER QUERY RESULT TOTAL_PHYSICAL_MEMORY TOTAL_VIRTUAL_MEMORY

syn keyword cmakeKWcmake_minimum_required contained
            \ FATAL_ERROR VERSION

syn keyword cmakeKWcmake_parse_arguments contained
            \ ARGN CONFIGURATIONS DESTINATION FALSE FAST FILES MY_INSTALL MY_INSTALL_CONFIGURATIONS MY_INSTALL_DESTINATION MY_INSTALL_FAST MY_INSTALL_OPTIONAL MY_INSTALL_RENAME MY_INSTALL_TARGETS MY_INSTALL_UNPARSED_ARGUMENTS OPTIONAL PARSE_ARGV RENAME TARGETS TRUE _UNPARSED_ARGUMENTS

syn keyword cmakeKWcmake_policy contained
            \ CMAKE_POLICY_DEFAULT_CMP CMP GET NNNN NO_POLICY_SCOPE OLD POP PUSH SET VERSION

syn keyword cmakeKWconfigure_file contained
            \ COPYONLY CRLF DOS ESCAPE_QUOTES FOO_ENABLE FOO_STRING LF NEWLINE_STYLE VAR

syn keyword cmakeKWcreate_test_sourcelist contained
            \ CMAKE_TESTDRIVER_AFTER_TESTMAIN CMAKE_TESTDRIVER_BEFORE_TESTMAIN EXTRA_INCLUDE FUNCTION

syn keyword cmakeKWctest_build contained
            \ ALL_BUILD APPEND BUILD CAPTURE_CMAKE_ERROR CONFIGURATION CTEST_BUILD_CONFIGURATION CTEST_BUILD_FLAGS CTEST_BUILD_TARGET CTEST_PROJECT_NAME FLAGS NUMBER_ERRORS NUMBER_WARNINGS QUIET RETURN_VALUE TARGET

syn keyword cmakeKWctest_configure contained
            \ APPEND BUILD CAPTURE_CMAKE_ERROR OPTIONS QUIET RETURN_VALUE SOURCE

syn keyword cmakeKWctest_coverage contained
            \ APPEND BUILD CAPTURE_CMAKE_ERROR LABELS QUIET RETURN_VALUE

syn keyword cmakeKWctest_memcheck contained
            \ APPEND BUILD DEFECT_COUNT EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD

syn keyword cmakeKWctest_run_script contained
            \ NEW_PROCESS RETURN_VALUE

syn keyword cmakeKWctest_start contained
            \ APPEND QUIET TAG TRACK

syn keyword cmakeKWctest_submit contained
            \ API CDASH_UPLOAD CDASH_UPLOAD_TYPE CTEST_EXTRA_SUBMIT_FILES CTEST_NOTES_FILES FILES HTTPHEADER PARTS QUIET RETRY_COUNT RETRY_DELAY RETURN_VALUE

syn keyword cmakeKWctest_test contained
            \ APPEND BUILD CAPTURE_CMAKE_ERROR CPU EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD

syn keyword cmakeKWctest_update contained
            \ QUIET RETURN_VALUE SOURCE

syn keyword cmakeKWctest_upload contained
            \ CAPTURE_CMAKE_ERROR FILES QUIET

syn keyword cmakeKWdefine_property contained
            \ BRIEF_DOCS CACHED_VARIABLE DIRECTORY FULL_DOCS GLOBAL INHERITED PROPERTY SOURCE TARGET TEST VARIABLE

syn keyword cmakeKWenable_language contained
            \ OPTIONAL

syn keyword cmakeKWexec_program contained
            \ ARGS OUTPUT_VARIABLE RETURN_VALUE

syn keyword cmakeKWexecute_process contained
            \ ANSI AUTO COMMAND ENCODING ERROR_FILE ERROR_QUIET ERROR_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE INPUT_FILE NONE OEM OUTPUT_FILE OUTPUT_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE RESULTS_VARIABLE RESULT_VARIABLE TIMEOUT UTF VERBATIM WORKING_DIRECTORY

syn keyword cmakeKWexport contained
            \ ANDROID_MK APPEND CONFIG EXPORT EXPORT_LINK_INTERFACE_LIBRARIES FILE IMPORTED IMPORTED_ NAMESPACE NDK OLD PACKAGE TARGETS

syn keyword cmakeKWexport_library_dependencies contained
            \ APPEND EXPORT INCLUDE LINK_INTERFACE_LIBRARIES SET

syn keyword cmakeKWfile contained
            \ ALGO APPEND ASCII CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY CONDITION CONFIG CONTENT COPY CR DESTINATION DIRECTORY_PERMISSIONS DOWNLOAD ENCODING EXCLUDE EXPECTED_HASH FILES_MATCHING FILE_PERMISSIONS FOLLOW_SYMLINKS FUNCTION GENERATE GLOB GLOB_RECURSE GUARD HASH HEX HTTPHEADER INACTIVITY_TIMEOUT INSTALL LENGTH_MAXIMUM LENGTH_MINIMUM LF LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT LIST_DIRECTORIES LOCK LOG MAKE_DIRECTORY NEWLINE_CONSUME NO_HEX_CONVERSION NO_SOURCE_PERMISSIONS OFFSET OLD PATTERN PROCESS READ REGEX RELATIVE RELATIVE_PATH RELEASE REMOVE REMOVE_RECURSE RENAME RESULT_VARIABLE SHOW_PROGRESS SSL STATUS STRINGS TIMESTAMP TLS_CAINFO TLS_VERIFY TO_CMAKE_PATH TO_NATIVE_PATH UPLOAD USERPWD USE_SOURCE_PERMISSIONS UTC UTF WRITE

syn keyword cmakeKWfind_file contained
            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR

syn keyword cmakeKWfind_library contained
            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS LIB NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR

syn keyword cmakeKWfind_package contained
            \ CMAKE_DISABLE_FIND_PACKAGE_ CMAKE_FIND_ROOT_PATH_BOTH COMPONENTS CONFIG CONFIGS DEC DVAR EXACT HINTS MODULE NAMES NATURAL NO_CMAKE_BUILDS_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_PATH NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_MODULE NO_POLICY_SCOPE NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL_COMPONENTS OS PACKAGE_FIND_NAME PACKAGE_FIND_VERSION PACKAGE_FIND_VERSION_COUNT PACKAGE_FIND_VERSION_MAJOR PACKAGE_FIND_VERSION_MINOR PACKAGE_FIND_VERSION_PATCH PACKAGE_FIND_VERSION_TWEAK PACKAGE_VERSION PACKAGE_VERSION_COMPATIBLE PACKAGE_VERSION_EXACT PACKAGE_VERSION_UNSUITABLE PATHS PATH_SUFFIXES QUIET REQUIRED SET TRUE _CONFIG _CONSIDERED_CONFIGS _CONSIDERED_VERSIONS _DIR _FIND_COMPONENTS _FIND_QUIETLY _FIND_REQUIRED _FIND_REQUIRED_ _FIND_VERSION_EXACT _FOUND

syn keyword cmakeKWfind_path contained
            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR

syn keyword cmakeKWfind_program contained
            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR

syn keyword cmakeKWfltk_wrap_ui contained
            \ FLTK

syn keyword cmakeKWforeach contained
            \ ARGS IN ITEMS LISTS RANGE

syn keyword cmakeKWfunction contained
            \ ARGC ARGN ARGS ARGV PARENT_SCOPE

syn keyword cmakeKWget_cmake_property contained
            \ COMPONENTS GLOBAL MACROS VAR VARIABLES

syn keyword cmakeKWget_directory_property contained
            \ DEFINITION DIRECTORY

syn keyword cmakeKWget_filename_component contained
            \ ABSOLUTE ARG_VAR BASE_DIR CACHE COMP DIRECTORY EXT NAME NAME_WE PATH PROGRAM PROGRAM_ARGS REALPATH VAR

syn keyword cmakeKWget_property contained
            \ BRIEF_DOCS CACHE DEFINED DIRECTORY FULL_DOCS GLOBAL INSTALL PROPERTY SET SOURCE TARGET TEST VARIABLE

syn keyword cmakeKWget_source_file_property contained
            \ LOCATION VAR

syn keyword cmakeKWget_target_property contained
            \ VAR

syn keyword cmakeKWget_test_property contained
            \ VAR

syn keyword cmakeKWif contained
            \ ARGS CMAKE_MATCH_ CMP COMMAND DEFINED EQUAL EXISTS FALSE GREATER GREATER_EQUAL IGNORE IN_LIST IS_ABSOLUTE IS_DIRECTORY IS_NEWER_THAN IS_SYMLINK LESS LESS_EQUAL MATCHES NNNN NOT OFF OR POLICY STREQUAL STRGREATER STRGREATER_EQUAL STRLESS STRLESS_EQUAL TARGET TEST THEN TRUE VERSION_EQUAL VERSION_GREATER VERSION_GREATER_EQUAL VERSION_LESS VERSION_LESS_EQUAL YES

syn keyword cmakeKWinclude contained
            \ NO_POLICY_SCOPE OPTIONAL RESULT_VARIABLE

syn keyword cmakeKWinclude_directories contained
            \ AFTER BEFORE INCLUDE_DIRECTORIES ON SYSTEM

syn keyword cmakeKWinclude_external_msproject contained
            \ GUID MAP_IMPORTED_CONFIG_ PLATFORM TYPE WIX

syn keyword cmakeKWinclude_guard contained
            \ DIRECTORY GLOBAL TRUE __CURRENT_FILE_VAR__

syn keyword cmakeKWinstall contained
            \ ARCHIVE BUNDLE CODE COMPONENT CONFIGURATIONS CVS DESTDIR DESTINATION DIRECTORY DIRECTORY_PERMISSIONS DLL EXCLUDE_FROM_ALL EXPORT EXPORT_ANDROID_MK EXPORT_LINK_INTERFACE_LIBRARIES FILES FILES_MATCHING FILE_PERMISSIONS FRAMEWORK GROUP_EXECUTE GROUP_READ GROUP_WRITE IMPORTED_ INCLUDES INSTALL_PREFIX INTERFACE_INCLUDE_DIRECTORIES LIBRARY MACOSX_BUNDLE MESSAGE_NEVER NAMELINK_ONLY NAMELINK_SKIP NAMESPACE NDK OBJECTS OPTIONAL OWNER_EXECUTE OWNER_READ OWNER_WRITE PATTERN PERMISSIONS POST_INSTALL_SCRIPT PRE_INSTALL_SCRIPT PRIVATE_HEADER PROGRAMS PUBLIC_HEADER REGEX RENAME RESOURCE RUNTIME SCRIPT SETGID SETUID SOVERSION TARGETS TRUE USE_SOURCE_PERMISSIONS VERSION WORLD_EXECUTE WORLD_READ WORLD_WRITE

syn keyword cmakeKWinstall_files contained
            \ FILES GLOB

syn keyword cmakeKWinstall_programs contained
            \ FILES GLOB PROGRAMS TARGETS

syn keyword cmakeKWinstall_targets contained
            \ DLL RUNTIME_DIRECTORY TARGETS

syn keyword cmakeKWlist contained
            \ APPEND CACHE EXCLUDE FILTER FIND GET INCLUDE INSERT INTERNAL LENGTH LIST NOTES PARENT_SCOPE REGEX REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REVERSE SORT

syn keyword cmakeKWload_cache contained
            \ EXCLUDE INCLUDE_INTERNALS READ_WITH_PREFIX

syn keyword cmakeKWload_command contained
            \ CMAKE_LOADED_COMMAND_ COMMAND_NAME

syn keyword cmakeKWmacro contained
            \ ARGC ARGN ARGS ARGV DEFINED GREATER LISTS NOT _BAR _FOO

syn keyword cmakeKWmake_directory contained
            \ MAKE_DIRECTORY

syn keyword cmakeKWmark_as_advanced contained
            \ CLEAR FORCE VAR

syn keyword cmakeKWmath contained
            \ EXPR

syn keyword cmakeKWmessage contained
            \ AUTHOR_WARNING DEPRECATION FATAL_ERROR GUI SEND_ERROR STATUS WARNING

syn keyword cmakeKWoption contained
            \ OFF ON

syn keyword cmakeKWproject contained
            \ CMAKE_PROJECT_ DESCRIPTION LANGUAGES NAME NONE PROJECT VERSION _BINARY_DIR _INCLUDE _SOURCE_DIR _VERSION _VERSION_MAJOR _VERSION_MINOR _VERSION_PATCH _VERSION_TWEAK

syn keyword cmakeKWremove contained
            \ REMOVE_ITEM VALUE VAR

syn keyword cmakeKWseparate_arguments contained
            \ MSDN NATIVE NATIVE_COMMAND UNIX_COMMAND WINDOWS WINDOWS_COMMAND _COMMAND

syn keyword cmakeKWset contained
            \ BOOL CACHE FILEPATH FORCE INTERNAL OFF ON PARENT_SCOPE STRING STRINGS

syn keyword cmakeKWset_directory_properties contained
            \ PROPERTIES

syn keyword cmakeKWset_property contained
            \ APPEND APPEND_STRING CACHE DIRECTORY GLOBAL INSTALL PROPERTY SOURCE TARGET TEST WIX

syn keyword cmakeKWset_source_files_properties contained
            \ PROPERTIES

syn keyword cmakeKWset_target_properties contained
            \ PROPERTIES

syn keyword cmakeKWset_tests_properties contained
            \ PROPERTIES

syn keyword cmakeKWsource_group contained
            \ FILES PREFIX REGULAR_EXPRESSION TREE

syn keyword cmakeKWstring contained
            \ ALPHABET APPEND ASCII CMAKE_MATCH_ COMPARE CONCAT CONFIGURE EQUAL ESCAPE_QUOTES FIND GENEX_STRIP GREATER GREATER_EQUAL GUID HASH LENGTH LESS LESS_EQUAL MAKE_C_IDENTIFIER MATCH MATCHALL MATCHES NAMESPACE NOTEQUAL ONLY PREPEND RANDOM RANDOM_SEED REGEX REPLACE REVERSE RFC SHA SOURCE_DATE_EPOCH STRIP SUBSTRING SZ TIMESTAMP TOLOWER TOUPPER TYPE US UTC UUID

syn keyword cmakeKWsubdirs contained
            \ EXCLUDE_FROM_ALL PREORDER

syn keyword cmakeKWtarget_compile_definitions contained
            \ COMPILE_DEFINITIONS INTERFACE INTERFACE_COMPILE_DEFINITIONS PRIVATE PUBLIC

syn keyword cmakeKWtarget_compile_features contained
            \ COMPILE_FEATURES IMPORTED INTERFACE INTERFACE_COMPILE_FEATURES PRIVATE PUBLIC

syn keyword cmakeKWtarget_compile_options contained
            \ BEFORE COMPILE_OPTIONS IMPORTED INTERFACE INTERFACE_COMPILE_OPTIONS PRIVATE PUBLIC

syn keyword cmakeKWtarget_include_directories contained
            \ BEFORE BUILD_INTERFACE IMPORTED INCLUDE_DIRECTORIES INSTALL_INTERFACE INTERFACE INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES PRIVATE PUBLIC SYSTEM

syn keyword cmakeKWtarget_link_libraries contained
            \ ALIAS DAG DEBUG_CONFIGURATIONS IMPORTED IMPORTED_NO_SONAME INTERFACE INTERFACE_LINK_LIBRARIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_LIBRARIES_DEBUG LINK_INTERFACE_MULTIPLICITY LINK_PRIVATE LINK_PUBLIC OLD OSX PRIVATE PUBLIC STATIC

syn keyword cmakeKWtarget_sources contained
            \ IMPORTED INTERFACE INTERFACE_SOURCES PRIVATE PUBLIC SOURCES

syn keyword cmakeKWtry_compile contained
            \ ALL_BUILD CMAKE_FLAGS COMPILE_DEFINITIONS COPY_FILE COPY_FILE_ERROR CUDA_EXTENSIONS CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEFINED DLINK_LIBRARIES DVAR FALSE INCLUDE_DIRECTORIES LANG LINK_DIRECTORIES LINK_LIBRARIES NOT OUTPUT_VARIABLE RESULT_VAR SOURCES TRUE TYPE VALUE _EXTENSIONS _STANDARD _STANDARD_REQUIRED

syn keyword cmakeKWtry_run contained
            \ ARGS CMAKE_FLAGS COMPILE_DEFINITIONS COMPILE_OUTPUT_VARIABLE COMPILE_RESULT_VAR DLINK_LIBRARIES DVAR FAILED_TO_RUN FALSE INCLUDE_DIRECTORIES LINK_DIRECTORIES LINK_LIBRARIES RUN_OUTPUT_VARIABLE RUN_RESULT_VAR TRUE TYPE VALUE __TRYRUN_OUTPUT

syn keyword cmakeKWunset contained
            \ CACHE LD_LIBRARY_PATH PARENT_SCOPE

syn keyword cmakeKWuse_mangled_mesa contained
            \ GL OUTPUT_DIRECTORY PATH_TO_MESA

syn keyword cmakeKWvariable_requires contained
            \ RESULT_VARIABLE TEST_VARIABLE

syn keyword cmakeKWvariable_watch contained
            \ COMMAND

syn keyword cmakeKWwhile contained
            \ ARGS

syn keyword cmakeKWwrite_file contained
            \ APPEND CONFIGURE_FILE NOTE WRITE


syn keyword cmakeGeneratorExpressions contained
            \ LINK_LIBRARIES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS CONFIG DEBUG_MODE BOOL AND NOT IF STREQUAL MAP_IMPORTED_CONFIG_ PLATFORM_ID C_COMPILER_ID CXX_COMPILER_ID VERSION_LESS VERSION_GREATER VERSION_EQUAL VERSION_LESS_EQUAL VERSION_GREATER_EQUAL C_COMPILER_VERSION CXX_COMPILER_VERSION TARGET_POLICY COMPILE_FEATURES C_STANDARD CXX_STANDARD COMPILE_LANGUAGE PRIVATE PUBLIC COMPILING_CXX GNU OLD_COMPILER CMAKE_CXX_COMPILER_VERSION CONFIGURATION TARGET_FILE TARGET_FILE_NAME TARGET_FILE_DIR TARGET_LINKER_FILE TARGET_LINKER_FILE_NAME TARGET_LINKER_FILE_DIR TARGET_SONAME_FILE TARGET_SONAME_FILE_NAME TARGET_SONAME_FILE_DIR TARGET_PDB_FILE PDB_NAME PDB_OUTPUT_DIRECTORY PDB_NAME_ PDB_OUTPUT_DIRECTORY_ TARGET_PDB_FILE_NAME TARGET_PDB_FILE_DIR TARGET_BUNDLE_DIR TARGET_BUNDLE_CONTENT_DIR SDK TARGET_PROPERTY INSTALL_PREFIX EXPORT JOIN ANGLE COMMA SEMICOLON TARGET_NAME LINK_ONLY INTERFACE_LINK_LIBRARIES INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS OBJECT_LIBRARY SHELL_PATH MSYS

syn case ignore

syn keyword cmakeCommand
            \ add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue create_test_sourcelist ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload define_property enable_language enable_testing endfunction endmacro execute_process export file find_file find_library find_package find_path find_program fltk_wrap_ui function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property include include_directories include_external_msproject include_guard include_regular_expression install link_directories list load_cache load_command macro mark_as_advanced math message option project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_libraries target_sources try_compile try_run unset variable_watch
            \ nextgroup=cmakeArguments

syn keyword cmakeCommandConditional
            \ else elseif endif if
            \ nextgroup=cmakeArguments

syn keyword cmakeCommandRepeat
            \ endforeach endwhile foreach while
            \ nextgroup=cmakeArguments

syn keyword cmakeCommandDeprecated
            \ build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file
            \ nextgroup=cmakeArguments

syn case match

syn keyword cmakeTodo
            \ TODO FIXME XXX
            \ contained

hi def link cmakeCommand Function
hi def link cmakeCommandConditional Conditional
hi def link cmakeCommandDeprecated WarningMsg
hi def link cmakeCommandRepeat Repeat
hi def link cmakeComment Comment
hi def link cmakeEnvironment Special
hi def link cmakeEscaped Special
hi def link cmakeGeneratorExpression WarningMsg
hi def link cmakeGeneratorExpressions Constant
hi def link cmakeLuaComment Comment
hi def link cmakeModule Include
hi def link cmakeProperty Constant
hi def link cmakeRegistry Underlined
hi def link cmakeString String
hi def link cmakeTodo TODO
hi def link cmakeVariableValue Type
hi def link cmakeVariable Identifier

hi def link cmakeKWExternalProject ModeMsg
hi def link cmakeKWadd_compile_options ModeMsg
hi def link cmakeKWadd_custom_command ModeMsg
hi def link cmakeKWadd_custom_target ModeMsg
hi def link cmakeKWadd_definitions ModeMsg
hi def link cmakeKWadd_dependencies ModeMsg
hi def link cmakeKWadd_executable ModeMsg
hi def link cmakeKWadd_library ModeMsg
hi def link cmakeKWadd_subdirectory ModeMsg
hi def link cmakeKWadd_test ModeMsg
hi def link cmakeKWbuild_command ModeMsg
hi def link cmakeKWbuild_name ModeMsg
hi def link cmakeKWcmake_host_system_information ModeMsg
hi def link cmakeKWcmake_minimum_required ModeMsg
hi def link cmakeKWcmake_parse_arguments ModeMsg
hi def link cmakeKWcmake_policy ModeMsg
hi def link cmakeKWconfigure_file ModeMsg
hi def link cmakeKWcreate_test_sourcelist ModeMsg
hi def link cmakeKWctest_build ModeMsg
hi def link cmakeKWctest_configure ModeMsg
hi def link cmakeKWctest_coverage ModeMsg
hi def link cmakeKWctest_memcheck ModeMsg
hi def link cmakeKWctest_run_script ModeMsg
hi def link cmakeKWctest_start ModeMsg
hi def link cmakeKWctest_submit ModeMsg
hi def link cmakeKWctest_test ModeMsg
hi def link cmakeKWctest_update ModeMsg
hi def link cmakeKWctest_upload ModeMsg
hi def link cmakeKWdefine_property ModeMsg
hi def link cmakeKWenable_language ModeMsg
hi def link cmakeKWexec_program ModeMsg
hi def link cmakeKWexecute_process ModeMsg
hi def link cmakeKWexport ModeMsg
hi def link cmakeKWexport_library_dependencies ModeMsg
hi def link cmakeKWfile ModeMsg
hi def link cmakeKWfind_file ModeMsg
hi def link cmakeKWfind_library ModeMsg
hi def link cmakeKWfind_package ModeMsg
hi def link cmakeKWfind_path ModeMsg
hi def link cmakeKWfind_program ModeMsg
hi def link cmakeKWfltk_wrap_ui ModeMsg
hi def link cmakeKWforeach ModeMsg
hi def link cmakeKWfunction ModeMsg
hi def link cmakeKWget_cmake_property ModeMsg
hi def link cmakeKWget_directory_property ModeMsg
hi def link cmakeKWget_filename_component ModeMsg
hi def link cmakeKWget_property ModeMsg
hi def link cmakeKWget_source_file_property ModeMsg
hi def link cmakeKWget_target_property ModeMsg
hi def link cmakeKWget_test_property ModeMsg
hi def link cmakeKWif ModeMsg
hi def link cmakeKWinclude ModeMsg
hi def link cmakeKWinclude_directories ModeMsg
hi def link cmakeKWinclude_external_msproject ModeMsg
hi def link cmakeKWinclude_guard ModeMsg
hi def link cmakeKWinstall ModeMsg
hi def link cmakeKWinstall_files ModeMsg
hi def link cmakeKWinstall_programs ModeMsg
hi def link cmakeKWinstall_targets ModeMsg
hi def link cmakeKWlist ModeMsg
hi def link cmakeKWload_cache ModeMsg
hi def link cmakeKWload_command ModeMsg
hi def link cmakeKWmacro ModeMsg
hi def link cmakeKWmake_directory ModeMsg
hi def link cmakeKWmark_as_advanced ModeMsg
hi def link cmakeKWmath ModeMsg
hi def link cmakeKWmessage ModeMsg
hi def link cmakeKWoption ModeMsg
hi def link cmakeKWproject ModeMsg
hi def link cmakeKWremove ModeMsg
hi def link cmakeKWseparate_arguments ModeMsg
hi def link cmakeKWset ModeMsg
hi def link cmakeKWset_directory_properties ModeMsg
hi def link cmakeKWset_property ModeMsg
hi def link cmakeKWset_source_files_properties ModeMsg
hi def link cmakeKWset_target_properties ModeMsg
hi def link cmakeKWset_tests_properties ModeMsg
hi def link cmakeKWsource_group ModeMsg
hi def link cmakeKWstring ModeMsg
hi def link cmakeKWsubdirs ModeMsg
hi def link cmakeKWtarget_compile_definitions ModeMsg
hi def link cmakeKWtarget_compile_features ModeMsg
hi def link cmakeKWtarget_compile_options ModeMsg
hi def link cmakeKWtarget_include_directories ModeMsg
hi def link cmakeKWtarget_link_libraries ModeMsg
hi def link cmakeKWtarget_sources ModeMsg
hi def link cmakeKWtry_compile ModeMsg
hi def link cmakeKWtry_run ModeMsg
hi def link cmakeKWunset ModeMsg
hi def link cmakeKWuse_mangled_mesa ModeMsg
hi def link cmakeKWvariable_requires ModeMsg
hi def link cmakeKWvariable_watch ModeMsg
hi def link cmakeKWwhile ModeMsg
hi def link cmakeKWwrite_file ModeMsg

let b:current_syntax = "cmake"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim: set nowrap:
PK�j�Z�i��vim80/syntax/lss.vimnu�[���" Vim syntax file
" Language:	Lynx 2.7.1 style file
" Maintainer:	Scott Bigham <dsb@killerbunnies.org>
" Last Change:	2004 Oct 06

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" This setup is probably atypical for a syntax highlighting file, because
" most of it is not really intended to be overrideable.  Instead, the
" highlighting is supposed to correspond to the highlighting specified by
" the .lss file entries themselves; ie. the "bold" keyword should be bold,
" the "red" keyword should be red, and so forth.  The exceptions to this
" are comments, of course, and the initial keyword identifying the affected
" element, which will inherit the usual Identifier highlighting.

syn match lssElement "^[^:]\+" nextgroup=lssMono

syn match lssMono ":[^:]\+" contained nextgroup=lssFgColor contains=lssReverse,lssUnderline,lssBold,lssStandout

syn keyword	lssBold		bold		contained
syn keyword	lssReverse	reverse		contained
syn keyword	lssUnderline	underline	contained
syn keyword	lssStandout	standout	contained

syn match lssFgColor ":[^:]\+" contained nextgroup=lssBgColor contains=lssRedFg,lssBlueFg,lssGreenFg,lssBrownFg,lssMagentaFg,lssCyanFg,lssLightgrayFg,lssGrayFg,lssBrightredFg,lssBrightgreenFg,lssYellowFg,lssBrightblueFg,lssBrightmagentaFg,lssBrightcyanFg

syn case ignore
syn keyword	lssRedFg		red		contained
syn keyword	lssBlueFg		blue		contained
syn keyword	lssGreenFg		green		contained
syn keyword	lssBrownFg		brown		contained
syn keyword	lssMagentaFg		magenta		contained
syn keyword	lssCyanFg		cyan		contained
syn keyword	lssLightgrayFg		lightgray	contained
syn keyword	lssGrayFg		gray		contained
syn keyword	lssBrightredFg		brightred	contained
syn keyword	lssBrightgreenFg	brightgreen	contained
syn keyword	lssYellowFg		yellow		contained
syn keyword	lssBrightblueFg		brightblue	contained
syn keyword	lssBrightmagentaFg	brightmagenta	contained
syn keyword	lssBrightcyanFg		brightcyan	contained
syn case match

syn match lssBgColor ":[^:]\+" contained contains=lssRedBg,lssBlueBg,lssGreenBg,lssBrownBg,lssMagentaBg,lssCyanBg,lssLightgrayBg,lssGrayBg,lssBrightredBg,lssBrightgreenBg,lssYellowBg,lssBrightblueBg,lssBrightmagentaBg,lssBrightcyanBg,lssWhiteBg

syn case ignore
syn keyword	lssRedBg		red		contained
syn keyword	lssBlueBg		blue		contained
syn keyword	lssGreenBg		green		contained
syn keyword	lssBrownBg		brown		contained
syn keyword	lssMagentaBg		magenta		contained
syn keyword	lssCyanBg		cyan		contained
syn keyword	lssLightgrayBg		lightgray	contained
syn keyword	lssGrayBg		gray		contained
syn keyword	lssBrightredBg		brightred	contained
syn keyword	lssBrightgreenBg	brightgreen	contained
syn keyword	lssYellowBg		yellow		contained
syn keyword	lssBrightblueBg		brightblue	contained
syn keyword	lssBrightmagentaBg	brightmagenta	contained
syn keyword	lssBrightcyanBg		brightcyan	contained
syn keyword	lssWhiteBg		white		contained
syn case match

syn match lssComment "#.*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link lssComment Comment
hi def link lssElement Identifier

hi def lssBold		term=bold cterm=bold
hi def lssReverse		term=reverse cterm=reverse
hi def lssUnderline		term=underline cterm=underline
hi def lssStandout		term=standout cterm=standout

hi def lssRedFg		ctermfg=red
hi def lssBlueFg		ctermfg=blue
hi def lssGreenFg		ctermfg=green
hi def lssBrownFg		ctermfg=brown
hi def lssMagentaFg		ctermfg=magenta
hi def lssCyanFg		ctermfg=cyan
hi def lssGrayFg		ctermfg=gray
if $COLORTERM == "rxvt"
  " On rxvt's, bright colors are activated by setting the bold attribute.
  hi def lssLightgrayFg	ctermfg=gray cterm=bold
  hi def lssBrightredFg	ctermfg=red cterm=bold
  hi def lssBrightgreenFg	ctermfg=green cterm=bold
  hi def lssYellowFg		ctermfg=yellow cterm=bold
  hi def lssBrightblueFg	ctermfg=blue cterm=bold
  hi def lssBrightmagentaFg	ctermfg=magenta cterm=bold
  hi def lssBrightcyanFg	ctermfg=cyan cterm=bold
else
  hi def lssLightgrayFg	ctermfg=lightgray
  hi def lssBrightredFg	ctermfg=lightred
  hi def lssBrightgreenFg	ctermfg=lightgreen
  hi def lssYellowFg		ctermfg=yellow
  hi def lssBrightblueFg	ctermfg=lightblue
  hi def lssBrightmagentaFg	ctermfg=lightmagenta
  hi def lssBrightcyanFg	ctermfg=lightcyan
endif

hi def lssRedBg		ctermbg=red
hi def lssBlueBg		ctermbg=blue
hi def lssGreenBg		ctermbg=green
hi def lssBrownBg		ctermbg=brown
hi def lssMagentaBg		ctermbg=magenta
hi def lssCyanBg		ctermbg=cyan
hi def lssLightgrayBg		ctermbg=lightgray
hi def lssGrayBg		ctermbg=gray
hi def lssBrightredBg		ctermbg=lightred
hi def lssBrightgreenBg	ctermbg=lightgreen
hi def lssYellowBg		ctermbg=yellow
hi def lssBrightblueBg	ctermbg=lightblue
hi def lssBrightmagentaBg	ctermbg=lightmagenta
hi def lssBrightcyanBg	ctermbg=lightcyan
hi def lssWhiteBg		ctermbg=white ctermfg=black

let b:current_syntax = "lss"

" vim: ts=8
PK�j�ZO�VWhWhvim80/syntax/jam.vimnu�[���" Vim syntax file
" Language:	JAM
" Maintainer:	Ralf Lemke (ralflemk@t-online.de)
" Last change:	2012 Jan 08 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword=@,48-57,_,-

" A bunch of useful jam keywords
syn keyword	jamStatement	break call dbms flush global include msg parms proc public receive return send unload vars
syn keyword	jamConditional	if else
syn keyword	jamRepeat	for while next step

syn keyword	jamTodo		contained TODO FIXME XXX
syn keyword	jamDBState1	alias binary catquery close close_all_connections column_names connection continue continue_bottom continue_down continue_top continue_up
syn keyword	jamDBState2	     cursor declare engine execute format occur onentry onerror onexit sql start store unique with
syn keyword	jamSQLState1	all alter and any avg between by count create current data database delete distinct drop exists fetch from grant group
syn keyword	jamSQLState2	having index insert into like load max min of open order revoke rollback runstats select set show stop sum synonym table to union update values view where bundle

syn keyword     jamLibFunc1     dm_bin_create_occur dm_bin_delete_occur dm_bin_get_dlength dm_bin_get_occur dm_bin_length dm_bin_max_occur dm_bin_set_dlength dm_convert_empty dm_cursor_connection dm_cursor_consistent dm_cursor_engine dm_dbi_init dm_dbms dm_dbms_noexp dm_disable_styles dm_enable_styles dm_exec_sql dm_expand dm_free_sql_info dm_gen_change_execute_using dm_gen_change_select_from dm_gen_change_select_group_by dm_gen_change_select_having dm_gen_change_select_list dm_gen_change_select_order_by dm_gen_change_select_suffix dm_gen_change_select_where dm_gen_get_tv_alias dm_gen_sql_info

syn keyword     jamLibFunc2     dm_get_db_conn_handle dm_get_db_cursor_handle dm_get_driver_option dm_getdbitext dm_init dm_is_connection dm_is_cursor dm_is_engine dm_odb_preserves_cursor dm_reset dm_set_driver_option dm_set_max_fetches dm_set_max_rows_per_fetch dm_set_tm_clear_fast dm_val_relative sm_adjust_area sm_allget sm_amt_format sm_e_amt_format sm_i_amt_format sm_n_amt_format sm_o_amt_format sm_append_bundle_data sm_append_bundle_done sm_append_bundle_item sm_d_at_cur sm_l_at_cur sm_r_at_cur sm_mw_attach_drawing_func sm_mwn_attach_drawing_func sm_mwe_attach_drawing_func sm_xm_attach_drawing_func sm_xmn_attach_drawing_func sm_xme_attach_drawing_func sm_backtab sm_bel sm_bi_comparesm_bi_copy sm_bi_initialize sm_bkrect sm_c_off sm_c_on sm_c_vis sm_calc sm_cancel sm_ckdigit sm_cl_all_mdts sm_cl_unprot sm_clear_array sm_n_clear_array sm_1clear_array sm_n_1clear_array sm_close_window sm_com_load_picture sm_com_QueryInterface sm_com_result sm_com_result_msg sm_com_set_handler sm_copyarray sm_n_copyarray sm_create_bundle

syn keyword     jamLibFunc3     sm_d_msg_line sm_dblval sm_e_dblval sm_i_dblval sm_n_dblval sm_o_dblval sm_dd_able sm_dde_client_connect_cold sm_dde_client_connect_hot sm_dde_client_connect_warm sm_dde_client_disconnect sm_dde_client_off sm_dde_client_on sm_dde_client_paste_link_cold sm_dde_client_paste_link_hot sm_dde_client_paste_link_warm sm_dde_client_request sm_dde_execute sm_dde_install_notify sm_dde_poke sm_dde_server_off sm_dde_server_on sm_delay_cursor sm_deselect sm_dicname sm_disp_off sm_dlength sm_e_dlength sm_i_dlength sm_n_dlength sm_o_dlength sm_do_uinstalls sm_i_doccur sm_o_doccur sm_drawingarea sm_xm_drawingarea sm_dtofield sm_e_dtofield sm_i_dtofield sm_n_dtofield sm_o_dtofield sm_femsg sm_ferr_reset sm_fi_path sm_file_copy sm_file_exists sm_file_move sm_file_remove sm_fi_open sm_fi_path sm_filebox sm_filetypes sm_fio_a2f sm_fio_close sm_fio_editor sm_fio_error sm_fio_error_set sm_fio_f2a sm_fio_getc sm_fio_gets sm_fio_handle sm_fio_open sm_fio_putc sm_fio_puts sm_fio_rewind sm_flush sm_d_form sm_l_form

syn keyword     jamLibFunc4     sm_r_form sm_formlist sm_fptr sm_e_fptr sm_i_fptr sm_n_fptr sm_o_fptr sm_fqui_msg sm_fquiet_err sm_free_bundle sm_ftog sm_e_ftog sm_i_ftog sm_n_ftog sm_o_ftog sm_fval sm_e_fval sm_i_fval sm_n_fval sm_o_fval sm_i_get_bi_data sm_o_get_bi_data sm_get_bundle_data sm_get_bundle_item_count sm_get_bundle_occur_count sm_get_next_bundle_name sm_i_get_tv_bi_data sm_o_get_tv_bi_data sm_getfield sm_e_getfield sm_i_getfield sm_n_getfield sm_o_getfield sm_getkey sm_gofield sm_e_gofield sm_i_gofield sm_n_gofield sm_o_gofield sm_gtof sm_gval sm_i_gtof sm_n_gval sm_hlp_by_name sm_home sm_inimsg sm_initcrt sm_jinitcrt sm_jxinitcrt sm_input sm_inquire sm_install sm_intval sm_e_intval sm_i_intval sm_n_intval sm_o_intval sm_i_ioccur sm_o_ioccur sm_is_bundle sm_is_no sm_e_is_no sm_i_is_no sm_n_is_no sm_o_is_no sm_is_yes sm_e_is_yes sm_i_is_yes sm_n_is_yes sm_o_is_yes sm_isabort sm_iset sm_issv sm_itofield sm_e_itofield sm_i_itofield sm_n_itofield sm_o_itofield sm_jclose sm_jfilebox sm_jform sm_djplcall sm_jplcall

syn keyword     jamLibFunc5     sm_sjplcall sm_jplpublic sm_jplunload sm_jtop sm_jwindow sm_key_integer sm_keyfilter sm_keyhit sm_keyinit sm_n_keyinit sm_keylabel sm_keyoption sm_l_close sm_l_open sm_l_open_syslib sm_last sm_launch sm_h_ldb_fld_get sm_n_ldb_fld_get sm_h_ldb_n_fld_get sm_n_ldb_n_fld_get sm_h_ldb_fld_store sm_n_ldb_fld_store sm_h_ldb_n_fld_store sm_n_ldb_n_fld_store sm_ldb_get_active sm_ldb_get_inactive sm_ldb_get_next_active sm_ldb_get_next_inactive sm_ldb_getfield sm_i_ldb_getfield sm_n_ldb_getfield sm_o_ldb_getfield sm_ldb_h_getfield sm_i_ldb_h_getfield sm_n_ldb_h_getfield sm_o_ldb_h_getfield sm_ldb_handle sm_ldb_init sm_ldb_is_loaded sm_ldb_load sm_ldb_name sm_ldb_next_handle sm_ldb_pop sm_ldb_push sm_ldb_putfield sm_i_ldb_putfield sm_n_ldb_putfield sm_o_ldb_putfield sm_ldb_h_putfield sm_i_ldb_h_putfield sm_n_ldb_h_putfield sm_o_ldb_h_putfield sm_ldb_state_get sm_ldb_h_state_get sm_ldb_state_set sm_ldb_h_state_set sm_ldb_unload sm_ldb_h_unload sm_leave sm_list_objects_count sm_list_objects_end sm_list_objects_next

syn keyword     jamLibFunc6     sm_list_objects_start sm_lngval sm_e_lngval sm_i_lngval sm_n_lngval sm_o_lngval sm_load_screen sm_log sm_lstore sm_ltofield sm_e_ltofield sm_i_ltofield sm_n_ltofield sm_o_ltofield sm_m_flush sm_menu_bar_error sm_menu_change sm_menu_create sm_menu_delete sm_menu_get_int sm_menu_get_str sm_menu_install sm_menu_remove sm_message_box sm_mncrinit6 sm_mnitem_change sm_n_mnitem_change sm_mnitem_create sm_n_mnitem_create sm_mnitem_delete sm_n_mnitem_delete sm_mnitem_get_int sm_n_mnitem_get_int sm_mnitem_get_str sm_n_mnitem_get_str sm_mnscript_load sm_mnscript_unload sm_ms_inquire sm_msg sm_msg_del sm_msg_get sm_msg_read sm_d_msg_read sm_n_msg_read sm_msgfind sm_mts_CreateInstance sm_mts_CreateProperty sm_mts_CreatePropertyGroup sm_mts_DisableCommit sm_mts_EnableCommit sm_mts_GetPropertyValue sm_mts_IsCallerInRole sm_mts_IsInTransaction sm_mts_IsSecurityEnabled sm_mts_PutPropertyValue sm_mts_SetAbort sm_mts_SetComplete sm_mus_time sm_mw_get_client_wnd sm_mw_get_cmd_show sm_mw_get_frame_wnd sm_mw_get_instance

syn keyword     jamLibFunc7     sm_mw_get_prev_instance sm_mw_PrintScreen sm_next_sync sm_nl sm_null sm_e_null sm_i_null sm_n_null sm_o_null sm_obj_call sm_obj_copy sm_obj_copy_id sm_obj_create sm_obj_delete sm_obj_delete_id sm_obj_get_property sm_obj_onerror sm_obj_set_property sm_obj_sort sm_obj_sort_auto sm_occur_no sm_off_gofield sm_e_off_gofield sm_i_off_gofield sm_n_off_gofield sm_o_off_gofield sm_option sm_optmnu_id sm_pinquire sm_popup_at_cur sm_prop_error sm_prop_get_int sm_prop_get_str sm_prop_get_dbl sm_prop_get_x_int sm_prop_get_x_str sm_prop_get_x_dbl sm_prop_get_m_int sm_prop_get_m_str sm_prop_get_m_dbl sm_prop_id sm_prop_name_to_id sm_prop_set_int sm_prop_set_str sm_prop_set_dbl sm_prop_set_x_int sm_prop_set_x_str sm_prop_set_x_dbl sm_prop_set_m_int sm_prop_set_m_str sm_prop_set_m_dbl sm_pset sm_putfield sm_e_putfield sm_i_putfield sm_n_putfield sm_o_putfield sm_raise_exception sm_receive sm_receive_args sm_rescreen sm_resetcrt sm_jresetcrt sm_jxresetcrt sm_resize sm_restore_data sm_return sm_return_args sm_rmformlist sm_rs_data

syn keyword     jamLibFunc8     sm_rw_error_message sm_rw_play_metafile sm_rw_runreport sm_s_val sm_save_data sm_sdtime sm_select sm_send sm_set_help sm_setbkstat sm_setsibling sm_setstatus sm_sh_off sm_shell sm_shrink_to_fit sm_slib_error sm_slib_install sm_slib_load sm_soption sm_strip_amt_ptr sm_e_strip_amt_ptr sm_i_strip_amt_ptr sm_n_strip_amt_ptr sm_o_strip_amt_ptr sm_sv_data sm_sv_free sm_svscreen sm_tab sm_tm_clear sm_tm_clear_model_events sm_tm_command sm_tm_command_emsgset sm_tm_command_errset sm_tm_continuation_validity sm_tm_dbi_checker sm_tm_error sm_tm_errorlog sm_tm_event sm_tm_event_name sm_tm_failure_message sm_tm_handling sm_tm_inquire sm_tm_iset sm_tm_msg_count_error sm_tm_msg_emsg sm_tm_msg_error sm_tm_old_bi_context sm_tm_pcopy sm_tm_pinquire sm_tm_pop_model_event sm_tm_pset sm_tm_push_model_event sm_tmpnam sm_tp_exec sm_tp_free_arg_buf sm_tp_gen_insert sm_tp_gen_sel_return sm_tp_gen_sel_where sm_tp_gen_val_link sm_tp_gen_val_return sm_tp_get_svc_alias sm_tp_get_tux_callid sm_translatecoords sm_tst_all_mdts

syn keyword     jamLibFunc9     sm_udtime sm_ungetkey sm_unload_screen sm_unsvscreen sm_upd_select sm_validate sm_n_validate sm_vinit sm_n_vinit sm_wcount sm_wdeselect sm_web_get_cookie sm_web_invoke_url sm_web_log_error sm_web_save_global sm_web_set_cookie sm_web_unsave_all_globals sm_web_unsave_global sm_mw_widget sm_mwe_widget sm_mwn_widget sm_xm_widget sm_xme_widget sm_xmn_widget sm_win_shrink sm_d_window sm_d_at_cur sm_l_window sm_l_at_cur sm_r_window sm_r_at_cur sm_winsize sm_wrotate sm_wselect sm_n_wselect sm_ww_length sm_n_ww_length sm_ww_read sm_n_ww_read sm_ww_write sm_n_ww_write sm_xlate_table sm_xm_get_base_window sm_xm_get_display

syn keyword     jamVariable1    SM_SCCS_ID SM_ENTERTERM SM_MALLOC SM_CANCEL SM_BADTERM SM_FNUM SM_DZERO SM_EXPONENT SM_INVDATE SM_MATHERR SM_FRMDATA SM_NOFORM SM_FRMERR SM_BADKEY SM_DUPKEY SM_ERROR SM_SP1 SM_SP2 SM_RENTRY SM_MUSTFILL SM_AFOVRFLW SM_TOO_FEW_DIGITS  SM_CKDIGIT SM_HITANY SM_NOHELP SM_MAXHELP SM_OUTRANGE SM_ENTERTERM1 SM_SYSDATE SM_DATFRM SM_DATCLR SM_DATINV SM_KSDATA SM_KSERR SM_KSNONE SM_KSMORE SM_DAYA1 SM_DAYA2 SM_DAYA3 SM_DAYA4 SM_DAYA5 SM_DAYA6 SM_DAYA7 SM_DAYL1 SM_DAYL2 SM_DAYL3 SM_DAYL4 SM_DAYL5 SM_DAYL6 SM_DAYL7 SM_MNSCR_LOAD SM_MENU_INSTALL SM_INSTDEFSCRL SM_INSTSCROLL SM_MOREDATA SM_READY SM_WAIT SM_YES SM_NO SM_NOTEMP SM_FRMHELP SM_FILVER SM_ONLYONE SM_WMSMOVE SM_WMSSIZE SM_WMSOFF SM_LPRINT SM_FMODE SM_NOFILE SM_NOSECTN SM_FFORMAT SM_FREAD SM_RX1 SM_RX2 SM_RX3 SM_TABLOOK SM_MISKET SM_ILLKET SM_ILLBRA SM_MISDBLKET SM_ILLDBLKET SM_ILLDBLBRA SM_ILL_RIGHT SM_ILLELSE SM_NUMBER SM_EOT SM_BREAK SM_NOARGS SM_BIGVAR SM_EXCESS SM_EOL SM_FILEIO SM_FOR SM_RCURLY SM_NONAME SM_1JPL_ERR SM_2JPL_ERR SM_3JPL_ERR

syn keyword     jamVariable2    SM_JPLATCH SM_FORMAT SM_DESTINATION SM_ORAND SM_ORATOR SM_ILL_LEFT SM_MISSPARENS SM_ILLCLOSE_COMM SM_FUNCTION SM_EQUALS SM_MISMATCH SM_QUOTE SM_SYNTAX SM_NEXT SM_VERB_UNKNOWN SM_JPLFORM SM_NOT_LOADED SM_GA_FLG SM_GA_CHAR SM_GA_ARG SM_GA_DIG SM_NOFUNC SM_BADPROTO SM_JPLPUBLIC SM_NOCOMPILE SM_NULLEDIT SM_RP_NULL SM_DBI_NOT_INST SM_NOTJY SM_MAXLIB SM_FL_FLLIB SM_TPI_NOT_INST SM_RW_NOT_INST SM_MONA1 SM_MONA2 SM_MONA3 SM_MONA4 SM_MONA5 SM_MONA6 SM_MONA7 SM_MONA8 SM_MONA9 SM_MONA10 SM_MONA11 SM_MONA12 SM_MONL1 SM_MONL2 SM_MONL3 SM_MONL4 SM_MONL5 SM_MONL6 SM_MONL7 SM_MONL8 SM_MONL9 SM_MONL10 SM_MONL11 SM_MONL12 SM_AM SM_PM SM_0DEF_DTIME SM_1DEF_DTIME SM_2DEF_DTIME SM_3DEF_DTIME SM_4DEF_DTIME SM_5DEF_DTIME SM_6DEF_DTIME SM_7DEF_DTIME SM_8DEF_DTIME SM_9DEF_DTIME SM_CALC_DATE SM_BAD_DIGIT SM_BAD_YN SM_BAD_ALPHA SM_BAD_NUM SM_BAD_ALPHNUM SM_DECIMAL SM_1STATS SM_VERNO SM_DIG_ERR SM_YN_ERR SM_LET_ERR SM_NUM_ERR SM_ANUM_ERR SM_REXP_ERR SM_POSN_ERR SM_FBX_OPEN SM_FBX_WINDOW SM_FBX_SIBLING SM_OPENDIR

syn keyword     jamVariable3    SM_GETFILES SM_CHDIR SM_GETCWD SM_UNCLOSED_COMM SM_MB_OKLABEL SM_MB_CANCELLABEL SM_MB_YESLABEL SM_MB_NOLABEL SM_MB_RETRYLABEL SM_MB_IGNORELABEL SM_MB_ABORTLABEL SM_MB_HELPLABEL SM_MB_STOP SM_MB_QUESTION SM_MB_WARNING SM_MB_INFORMATION SM_MB_YESALLLABEL SM_0MN_CURRDEF SM_1MN_CURRDEF SM_2MN_CURRDEF SM_0DEF_CURR SM_1DEF_CURR SM_2DEF_CURR SM_3DEF_CURR SM_4DEF_CURR SM_5DEF_CURR SM_6DEF_CURR SM_7DEF_CURR SM_8DEF_CURR SM_9DEF_CURR SM_SEND_SYNTAX SM_SEND_ITEM SM_SEND_INVALID_BUNDLE SM_RECEIVE_SYNTAX SM_RECEIVE_ITEM_NUMBER SM_RECEIVE_OVERFLOW SM_RECEIVE_ITEM SM_SYNCH_RECEIVE SM_EXEC_FAIL SM_DYNA_HELP_NOT_AVAIL SM_DLL_LOAD_ERR SM_DLL_UNRESOLVED SM_DLL_VERSION_ERR SM_DLL_OPTION_ERR SM_DEMOERR SM_MB_OKALLLABEL SM_MB_NOALLLABEL SM_BADPROP SM_BETWEEN SM_ATLEAST SM_ATMOST SM_PR_ERROR SM_PR_OBJID SM_PR_OBJECT SM_PR_ITEM SM_PR_PROP SM_PR_PROP_ITEM SM_PR_PROP_VAL SM_PR_CONVERT SM_PR_OBJ_TYPE SM_PR_RANGE SM_PR_NO_SET SM_PR_BYND_SCRN SM_PR_WW_SCROLL SM_PR_NO_SYNC SM_PR_TOO_BIG SM_PR_BAD_MASK SM_EXEC_MEM_ERR

syn keyword     jamVariable4    SM_EXEC_NO_PROG SM_PR_NO_KEYSTRUCT SM_REOPEN_AS_SLIB SM_REOPEN_THE_SLIB SM_ERRLIB SM_WARNLIB SM_LIB_DOWNGRADE SM_OLDER SM_NEWER SM_UPGRADE SM_LIB_READONLY SM_LOPEN_ERR SM_LOPEN_WARN SM_MLOPEN_CREAT SM_MLOPEN_INIT SM_LIB_ERR SM_LIB_ISOLATE SM_LIB_NO_ERR SM_LIB_REC_ERR SM_LIB_FATAL_ERR SM_LIB_LERR_FILE SM_LIB_LERR_NOTLIB SM_LIB_LERR_BADVERS SM_LIB_LERR_FORMAT SM_LIB_LERR_BADCM SM_LIB_LERR_LOCK SM_LIB_LERR_RESERVED SM_LIB_LERR_READONLY SM_LIB_LERR_NOENTRY SM_LIB_LERR_BUSY SM_LIB_LERR_ROVERS SM_LIB_LERR_DEFAULT SM_LIB_BADCM SM_LIB_LERR_NEW SM_STANDALONE_MODE SM_FEATURE_RESTRICT FM_CH_LOST FM_JPL_PROMPT FM_YR4 FM_YR2 FM_MON FM_MON2 FM_DATE FM_DATE2 FM_HOUR FM_HOUR2 FM_MIN FM_MIN2 FM_SEC FM_SEC2 FM_YRDAY FM_AMPM FM_DAYA FM_DAYL FM_MONA FM_MONL FM_0MN_DEF_DT FM_1MN_DEF_DT FM_2MN_DEF_DT FM_DAY JM_QTERMINATE JM_HITSPACE JM_HITACK JM_NOJWIN UT_MEMERR UT_P_OPT UT_V_OPT UT_E_BINOPT UT_NO_INPUT UT_SECLONG UT_1FNAME UT_SLINE UT_FILE UT_ERROR UT_WARNING UT_MISSEQ UT_VOPT UT_M2_DESCR

syn keyword     jamVariable5    UT_M2_PROGNAME UT_M2_USAGE UT_M2_O_OPT UT_M2_COM UT_M2_BADTAG UT_M2_MSSQUOT UT_M2_AFTRQUOT UT_M2_DUPSECT UT_M2_BADUCLSS UT_M2_USECPRFX UT_M2_MPTYUSCT UT_M2_DUPMSGTG UT_M2_TOOLONG UT_M2_LONG UT_K2_DESCR UT_K2_PROGNAME UT_K2_USAGE UT_K2_MNEM UT_K2_NKEYDEF UT_K2_DUPKEY UT_K2_NOTFOUND UT_K2_1FNAME UT_K2_VOPT UT_K2_EXCHAR UT_V2_DESCR UT_V2_PROGNAME UT_V2_USAGE UT_V2_SLINE UT_V2_SEQUAL UT_V2_SVARNAME UT_V2_SNAME UT_V2_VOPT UT_V2_1REQ UT_CB_DESCR UT_CB_PROGNAME UT_CB_USAGE UT_CB_VOPT UT_CB_MIEXT UT_CB_AEXT UT_CB_UNKNOWN UT_CB_ISCHEME UT_CB_BKFGS UT_CB_ABGS UT_CB_REC UT_CB_GUI UT_CB_CONT UT_CB_CONTFG UT_CB_AFILE UT_CB_LEFT_QUOTE UT_CB_NO_EQUAL UT_CB_EXTRA_EQ UT_CB_BAD_LHS UT_CB_BAD_RHS UT_CB_BAD_QUOTED UT_CB_FILE UT_CB_FILE_LINE UT_CB_DUP_ALIAS UT_CB_LINE_LOOP UT_CB_BAD_STYLE UT_CB_DUP_STYLE UT_CB_NO_SECT UT_CB_DUP_SCHEME DM_ERROR DM_NODATABASE DM_NOTLOGGEDON DM_ALREADY_ON DM_ARGS_NEEDED DM_LOGON_DENIED DM_BAD_ARGS DM_BAD_CMD DM_NO_MORE_ROWS DM_ABORTED DM_NO_CURSOR DM_MANY_CURSORS DM_KEYWORD

syn keyword     jamVariable6    DM_INVALID_DATE DM_COMMIT DM_ROLLBACK DM_PARSE_ERROR DM_BIND_COUNT DM_BIND_VAR DM_DESC_COL DM_FETCH DM_NO_NAME DM_END_OF_PROC DM_NOCONNECTION DM_NOTSUPPORTED DM_TRAN_PEND DM_NO_TRANSACTION DM_ALREADY_INIT DM_INIT_ERROR DM_MAX_DEPTH DM_NO_PARENT DM_NO_CHILD DM_MODALITY_NOT_FOUND DM_NATIVE_NO_SUPPORT DM_NATIVE_CANCEL DM_TM_ALREADY DM_TM_IN_PROGRESS DM_TM_CLOSE_ERROR DM_TM_BAD_MODE DM_TM_BAD_CLOSE_ACTION DM_TM_INTERNAL DM_TM_MODEL_INTERNAL DM_TM_NO_ROOT DM_TM_NO_TRANSACTION DM_TM_INITIAL_MODE DM_TM_PARENT_NAME DM_TM_BAD_MEMBER DM_TM_FLD_NAM_LEN DM_TM_NO_PARENT DM_TM_BAD_REQUEST DM_TM_CANNOT_GEN_SQL DM_TM_CANNOT_EXEC_SQL DM_TM_DBI_ERROR DM_TM_DISCARD_ALL DM_TM_DISCARD_LATEST DM_TM_CALL_ERROR DM_TM_CALL_TYPE DM_TM_HOOK_MODEL DM_TM_ROOT_NAME DM_TM_TV_INVALID DM_TM_COL_NOT_FOUND DM_TM_BAD_LINK DM_TM_HOOK_MODEL_ERROR DM_TM_ONE_ROW DM_TM_SOME_ROWS DM_TM_GENERAL DM_TM_NO_HOOK DM_TM_NOSET DM_TM_TBLNAME DM_TM_PRIMARY_KEY DM_TM_INCOMPLETE_KEY DM_TM_CMD_MODE DM_TM_NO_SUCH_CMD DM_TM_NO_SUCH_SCOPE

syn keyword     jamVariable7    DM_TM_NO_SUCH_TV DM_TM_EVENT_LOOP DM_TM_UNSUPPORTED DM_TM_NO_MODEL DM_TM_SYNCH_SV DM_TM_WRONG_FORM  DM_TM_VC_FIELD DM_TM_VC_DATE DM_TM_VC_TYPE DM_TM_BAD_CONTINUE DM_JDB_OUT_OF_MEMORY DM_JDB_DUPTABLEALIAS DM_JDB_DUPCURSORNAME DM_JDB_NODB DM_JDB_BINDCOUNT DM_JDB_NO_MORE_ROWS DM_JDB_AMBIGUOUS_COLUMN_REF DM_JDB_UNRESOLVED_COLUMN_REF DM_JDB_TABLE_READ_WRITE_CONFLICT DM_JDB_SYNTAX_ERROR DM_JDB_DUP_COLUMN_ASSIGNMENT DM_JDB_NO_MSG_FILE DM_JDB_NO_MSG DM_JDB_NOT_IMPLEMENTED DM_JDB_AGGREGATE_NOT_ALLOWED DM_JDB_TYPE_MISMATCH DM_JDB_NO_CURRENT_ROW DM_JDB_DB_CORRUPT DM_JDB_BUF_OVERFLOW DM_JDB_FILE_IO_ERR DM_JDB_BAD_HANDLE DM_JDB_DUP_TNAME DM_JDB_INVALID_TABLE_OP DM_JDB_TABLE_NOT_FOUND DM_JDB_CONVERSION_FAILED DM_JDB_INVALID_COLUMN_LIST DM_JDB_TABLE_OPEN DM_JDB_BAD_INPUT DM_JDB_DATATYPE_OVERFLOW DM_JDB_DATABASE_EXISTS DM_JDB_DATABASE_OPEN DM_JDB_DUP_CNAME DM_JDB_TMPDATABASE_ERR DM_JDB_INVALID_VALUES_COUNT DM_JDB_INVALID_COLUMN_COUNT DM_JDB_MAX_RECLEN_EXCEEDED DM_JDB_END_OF_GROUP

syn keyword     jamVariable8    TP_EXC_INVALID_CLIENT_COMMAND  TP_EXC_INVALID_CLIENT_OPTION  TP_EXC_INVALID_COMMAND TP_EXC_INVALID_COMMAND_SYNTAX TP_EXC_INVALID_CONNECTION TP_EXC_INVALID_CONTEXT TP_EXC_INVALID_FORWARD TP_EXC_INVALID_JAM_VARIABLE_REF  TP_EXC_INVALID_MONITOR_COMMAND TP_EXC_INVALID_MONITOR_OPTION TP_EXC_INVALID_OPTION TP_EXC_INVALID_OPTION_VALUE  TP_EXC_INVALID_SERVER_COMMAND TP_EXC_INVALID_SERVER_OPTION TP_EXC_INVALID_SERVICE TP_EXC_INVALID_TRANSACTION TP_EXC_JIF_ACCESS_FAILED TP_EXC_JIF_LOWER_VERSION TP_EXC_LOGFILE_ERROR TP_EXC_MONITOR_ERROR TP_EXC_NO_OUTSIDE_TRANSACTION TP_EXC_NO_OUTSTANDING_CALLS TP_EXC_NO_OUTSTANDING_MESSAGE TP_EXC_NO_SERVICES_ADVERTISED TP_EXC_NO_SIGNALS TP_EXC_NONTRANSACTIONAL_SERVICE TP_EXC_NONTRANSACTIONAL_ACTION TP_EXC_OUT_OF_MEMORY TP_EXC_POSTING_FAILED TP_EXC_PERMISSION_DENIED  TP_EXC_REQUEST_LIMIT TP_EXC_ROLLBACK_COMMITTED  TP_EXC_ROLLBACK_FAILED TP_EXC_SERVICE_FAILED TP_EXC_SERVICE_NOT_IN_JIF  TP_EXC_SERVICE_PROTOCOL_ERROR  TP_EXC_SUBSCRIPTION_LIMIT

syn keyword     jamVariable9    TP_EXC_SUBSCRIPTION_MATCH TP_EXC_SVC_ADVERTISE_LIMIT TP_EXC_SVC_WORK_OUTSTANDING TP_EXC_SVCROUTINE_MISSING TP_EXC_SVRINIT_WORK_OUTSTANDING TP_EXC_TIMEOUT TP_EXC_TRANSACTION_LIMIT TP_EXC_UNLOAD_FAILED TP_EXC_UNSUPPORTED_BUFFER TP_EXC_UNSUPPORTED_BUF_W_SUBT TP_EXC_USER_ABORT TP_EXC_WORK_OUTSTANDING TP_EXC_XA_CLOSE_FAILED TP_EXC_XA_OPEN_FAILED TP_EXC_QUEUE_BAD_MSGID TP_EXC_QUEUE_BAD_NAMESPACE TP_EXC_QUEUE_BAD_QUEUE TP_EXC_QUEUE_CANT_START_TRAN TP_EXC_QUEUE_FULL TP_EXC_QUEUE_MSG_IN_USE TP_EXC_QUEUE_NO_MSG TP_EXC_QUEUE_NOT_IN_QSPACE TP_EXC_QUEUE_RSRC_NOT_OPEN TP_EXC_QUEUE_SPACE_NOT_IN_JIF TP_EXC_QUEUE_TRAN_ABORTED TP_EXC_QUEUE_TRAN_ABSENT TP_EXC_QUEUE_UNEXPECTED TP_EXC_DCE_LOGIN_REQUIRED TP_EXC_ENC_CELL_NAME_REQUIRED TP_EXC_ENC_CONN_INFO_DIFFS TP_EXC_ENC_SVC_REGISTRY_ERROR TP_INVALID_START_ROUTINE TP_JIF_NOT_FOUND TP_JIF_OPEN_ERROR TP_NO_JIF TP_NO_MONITORS_ERROR TP_NO_SESSIONS_ERROR TP_NO_START_ROUTINE TP_ADV_SERVICE TP_ADV_SERVICE_IN_GROUP  TP_PRE_SVCHDL_WINOPEN_FAILED

syn keyword     jamVariable10   PV_YES PV_NO TRUE FALSE TM_TRAN_NAME

" jamCommentGroup allows adding matches for special things in comments
syn cluster	jamCommentGroup	contains=jamTodo

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match	jamSpecial	contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
if !exists("c_no_utf")
  syn match	jamSpecial	contained "\\\(u\x\{4}\|U\x\{8}\)"
endif
if exists("c_no_cformat")
  syn region	jamString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial
else
  syn match	jamFormat		"%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
  syn match	jamFormat		"%%" contained
  syn region	jamString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat
  hi link jamFormat jamSpecial
endif
syn match	jamCharacter	"L\='[^\\]'"
syn match	jamCharacter	"L'[^']*'" contains=jamSpecial
syn match	jamSpecialError	"L\='\\[^'\"?\\abfnrtv]'"
syn match	jamSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
syn match	jamSpecialCharacter "L\='\\\o\{1,3}'"
syn match	jamSpecialCharacter "'\\x\x\{1,2}'"
syn match	jamSpecialCharacter "L'\\x\x\+'"

"catch errors caused by wrong parenthesis and brackets
syn cluster	jamParenGroup	contains=jamParenError,jamIncluded,jamSpecial,@jamCommentGroup,jamUserCont,jamUserLabel,jamBitField,jamCommentSkip,jamOctalZero,jamCppOut,jamCppOut2,jamCppSkip,jamFormat,jamNumber,jamFloat,jamOctal,jamOctalError,jamNumbersCom

syn region	jamParen		transparent start='(' end=')' contains=ALLBUT,@jamParenGroup,jamErrInBracket
syn match	jamParenError	"[\])]"
syn match	jamErrInParen	contained "[\]{}]"
syn region	jamBracket	transparent start='\[' end=']' contains=ALLBUT,@jamParenGroup,jamErrInParen
syn match	jamErrInBracket	contained "[);{}]"

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	jamNumbers	transparent "\<\d\|\,\d" contains=jamNumber,jamFloat,jamOctalError,jamOctal
" Same, but without octal error (for comments)
syn match	jamNumbersCom	contained transparent "\<\d\|\,\d" contains=jamNumber,jamFloat,jamOctal
syn match	jamNumber		contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match	jamNumber		contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match	jamOctal		contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
syn match	jamOctalZero	contained "\<0"
syn match	jamFloat		contained "\d\+f"
"floating point number, with dot, optional exponent
syn match	jamFloat		contained "\d\+\,\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match	jamFloat		contained "\,\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match	jamFloat		contained "\d\+e[-+]\=\d\+[fl]\=\>"
" flag an octal number with wrong digits
syn match	jamOctalError	contained "0\o*[89]\d*"
syn case match

syntax match	jamOperator1	"\#\#"
syntax match	jamOperator6	"/"
syntax match	jamOperator2	"+"
syntax match	jamOperator3	"*"
syntax match	jamOperator4	"-"
syntax match	jamOperator5	"|"
syntax match	jamOperator6	"/"
syntax match	jamOperator7	"&"
syntax match	jamOperator8	":"
syntax match	jamOperator9	"<"
syntax match	jamOperator10	">"
syntax match	jamOperator11	"!"
syntax match	jamOperator12	"%"
syntax match	jamOperator13	"^"
syntax match	jamOperator14	"@"

syntax match	jamCommentL	"//"

if exists("jam_comment_strings")
  " A comment can contain jamString, jamCharacter and jamNumber.
  " But a "*/" inside a jamString in a jamComment DOES end the comment!  So we
  " need to use a special type of jamString: jamCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  " Unfortunately this doesn't very well work for // type of comments :-(
  syntax match	jamCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region jamCommentString	contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=jamSpecial,jamCommentSkip
  syntax region jamComment2String	contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=jamSpecial
  syntax region  jamCommentL	start="//" skip="\\$" end="$" keepend contains=@jamCommentGroup,jamComment2String,jamCharacter,jamNumbersCom,jamSpaceError
  syntax region  jamCommentL2		  start="^#\|^\s\+\#" skip="\\$" end="$" keepend contains=@jamCommentGroup,jamComment2String,jamCharacter,jamNumbersCom,jamSpaceError
  syntax region jamComment	start="/\*" end="\*/" contains=@jamCommentGroup,jamCommentString,jamCharacter,jamNumbersCom,jamSpaceError
else
  syn region	jamCommentL	start="//" skip="\\$" end="$" keepend contains=@jamCommentGroup,jamSpaceError
  syn region	jamCommentL2      start="^\#\|^\s\+\#" skip="\\$" end="$" keepend contains=@jamCommentGroup,jamSpaceError
  syn region	jamComment	start="/\*" end="\*/" contains=@jamCommentGroup,jamSpaceError
endif

" keep a // comment separately, it terminates a preproc. conditional
syntax match	jamCommentError	"\*/"

syntax match    jamOperator3Error   "*/"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link jamCommentL		jamComment
hi def link jamCommentL2		jamComment
hi def link jamOperator3Error	jamError
hi def link jamConditional	Conditional
hi def link jamRepeat		Repeat
hi def link jamCharacter		Character
hi def link jamSpecialCharacter	jamSpecial
hi def link jamNumber		Number
hi def link jamParenError	jamError
hi def link jamErrInParen	jamError
hi def link jamErrInBracket	jamError
hi def link jamCommentError	jamError
hi def link jamSpaceError	jamError
hi def link jamSpecialError	jamError
hi def link jamOperator1		jamOperator
hi def link jamOperator2		jamOperator
hi def link jamOperator3		jamOperator
hi def link jamOperator4		jamOperator
hi def link jamOperator5		jamOperator
hi def link jamOperator6		jamOperator
hi def link jamOperator7		jamOperator
hi def link jamOperator8		jamOperator
hi def link jamOperator9		jamOperator
hi def link jamOperator10	jamOperator
hi def link jamOperator11	jamOperator
hi def link jamOperator12	jamOperator
hi def link jamOperator13	jamOperator
hi def link jamOperator14	jamOperator
hi def link jamError		Error
hi def link jamStatement		Statement
hi def link jamPreCondit		PreCondit
hi def link jamCommentError	jamError
hi def link jamCommentString	jamString
hi def link jamComment2String	jamString
hi def link jamCommentSkip	jamComment
hi def link jamString		String
hi def link jamComment		Comment
hi def link jamSpecial		SpecialChar
hi def link jamTodo		Todo
hi def link jamCppSkip		jamCppOut
hi def link jamCppOut2		jamCppOut
hi def link jamCppOut		Comment
hi def link jamDBState1		Identifier
hi def link jamDBState2		Identifier
hi def link jamSQLState1		jamSQL
hi def link jamSQLState2		jamSQL
hi def link jamLibFunc1		jamLibFunc
hi def link jamLibFunc2		jamLibFunc
hi def link jamLibFunc3		jamLibFunc
hi def link jamLibFunc4		jamLibFunc
hi def link jamLibFunc5		jamLibFunc
hi def link jamLibFunc6		jamLibFunc
hi def link jamLibFunc7		jamLibFunc
hi def link jamLibFunc8		jamLibFunc
hi def link jamLibFunc9		jamLibFunc
hi def link jamVariable1		jamVariablen
hi def link jamVariable2		jamVariablen
hi def link jamVariable3		jamVariablen
hi def link jamVariable4		jamVariablen
hi def link jamVariable5		jamVariablen
hi def link jamVariable6		jamVariablen
hi def link jamVariable7		jamVariablen
hi def link jamVariable8		jamVariablen
hi def link jamVariable9		jamVariablen
hi def link jamVariable10	jamVariablen
hi def link jamVariablen		Constant
hi def link jamSQL		Type
hi def link jamLibFunc		PreProc
hi def link jamOperator		Special


let b:current_syntax = "jam"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�YN��vim80/syntax/gpg.vimnu�[���" Vim syntax file
" Language:             gpg(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2010-10-14

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn keyword gpgTodo     contained FIXME TODO XXX NOTE

syn region  gpgComment  contained display oneline start='#' end='$'
                        \ contains=gpgTodo,gpgID,@Spell

syn match   gpgID       contained display '\<\(0x\)\=\x\{8,}\>'

syn match   gpgBegin    display '^' skipwhite nextgroup=gpgComment,gpgOption,gpgCommand

syn keyword gpgCommand  contained skipwhite nextgroup=gpgArg
                        \ check-sigs decrypt decrypt-files delete-key
                        \ delete-secret-and-public-key delete-secret-key
                        \ edit-key encrypt-files export export-all
                        \ export-ownertrust export-secret-keys
                        \ export-secret-subkeys fast-import fingerprint
                        \ gen-prime gen-random import import-ownertrust
                        \ list-keys list-public-keys list-secret-keys
                        \ list-sigs lsign-key nrsign-key print-md print-mds
                        \ recv-keys search-keys send-keys sign-key verify
                        \ verify-files
syn keyword gpgCommand  contained skipwhite nextgroup=gpgArgError
                        \ check-trustdb clearsign desig-revoke detach-sign
                        \ encrypt gen-key gen-revoke help list-packets
                        \ rebuild-keydb-caches sign store symmetric
                        \ update-trustdb version warranty

syn keyword gpgOption   contained skipwhite nextgroup=gpgArg
                        \ attribute-fd cert-digest-algo charset cipher-algo
                        \ command-fd comment completes-needed compress
                        \ compress-algo debug default-cert-check-level
                        \ default-key default-preference-list
                        \ default-recipient digest-algo disable-cipher-algo
                        \ disable-pubkey-algo encrypt-to exec-path
                        \ export-options group homedir import-options
                        \ keyring keyserver keyserver-options load-extension
                        \ local-user logger-fd marginals-needed max-cert-depth
                        \ notation-data options output override-session-key
                        \ passphrase-fd personal-cipher-preferences
                        \ personal-compress-preferences
                        \ personal-digest-preferences photo-viewer
                        \ recipient s2k-cipher-algo s2k-digest-algo s2k-mode
                        \ secret-keyring set-filename set-policy-url status-fd
                        \ trusted-key verify-options keyid-format list-options
syn keyword gpgOption   contained skipwhite nextgroup=gpgArgError
                        \ allow-freeform-uid allow-non-selfsigned-uid
                        \ allow-secret-key-import always-trust
                        \ armor ask-cert-expire ask-sig-expire
                        \ auto-check-trustdb batch debug-all default-comment
                        \ default-recipient-self dry-run emit-version
                        \ emulate-md-encode-bug enable-special-filenames
                        \ escape-from-lines expert fast-list-mode
                        \ fixed-list-mode for-your-eyes-only
                        \ force-mdc force-v3-sigs force-v4-certs
                        \ gpg-agent-info ignore-crc-error ignore-mdc-error
                        \ ignore-time-conflict ignore-valid-from interactive
                        \ list-only lock-multiple lock-never lock-once
                        \ merge-only no no-allow-non-selfsigned-uid
                        \ no-armor no-ask-cert-expire no-ask-sig-expire
                        \ no-auto-check-trustdb no-batch no-comment
                        \ no-default-keyring no-default-recipient
                        \ no-encrypt-to no-expensive-trust-checks
                        \ no-expert no-for-your-eyes-only no-force-v3-sigs
                        \ no-force-v4-certs no-greeting no-literal
                        \ no-mdc-warning no-options no-permission-warning
                        \ no-pgp2 no-pgp6 no-pgp7 no-random-seed-file
                        \ no-secmem-warning no-show-notation no-show-photos
                        \ no-show-policy-url no-sig-cache no-sig-create-check
                        \ no-sk-comments no-tty no-utf8-strings no-verbose
                        \ no-version not-dash-escaped openpgp pgp2
                        \ pgp6 pgp7 preserve-permissions quiet rfc1991
                        \ set-filesize show-keyring show-notation show-photos
                        \ show-policy-url show-session-key simple-sk-checksum
                        \ sk-comments skip-verify textmode throw-keyid
                        \ try-all-secrets use-agent use-embedded-filename
                        \ utf8-strings verbose with-colons with-fingerprint
                        \ with-key-data yes

syn match   gpgArg      contained display '\S\+\(\s\+\S\+\)*' contains=gpgID
syn match   gpgArgError contained display '\S\+\(\s\+\S\+\)*'

hi def link gpgComment  Comment
hi def link gpgTodo     Todo
hi def link gpgID       Number
hi def link gpgOption   Keyword
hi def link gpgCommand  Error
hi def link gpgArgError Error

let b:current_syntax = "gpg"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�7��AAvim80/syntax/dictdconf.vimnu�[���" Vim syntax file
" Language:             dictd(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword dictdconfTodo        contained TODO FIXME XXX NOTE

syn region  dictdconfComment    display oneline start='#' end='$'
                                \ contains=dictdconfTodo,dictdconfSpecialC,
                                \ @Spell

syn keyword dictdconfSpecialC   LASTLINE

syn match   dictdconfBegin      display '^'
                                \ nextgroup=dictdconfKeyword,dictdconfComment
                                \ skipwhite

syn keyword dictdconfKeyword    contained access
                                \ nextgroup=dictdconfAccessG skipwhite

syn region  dictdconfAccessG    contained transparent
                                \ matchgroup=dictdconfDelimiter start='{'
                                \ matchgroup=dictdconfDelimiter end='}'
                                \ contains=dictdconfAccess,dictdconfComment

syn keyword dictdconfAccess     contained allow deny authonly user
                                \ nextgroup=dictdconfString skipwhite

syn keyword dictdconfKeyword    contained database
                                \ nextgroup=dictdconfDatabase skipwhite

syn match   dictdconfDatabase   contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
                                \ nextgroup=dictdconfSpecG skipwhite
syn region  dictdconfDatabase   contained display oneline
                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+
                                \ nextgroup=dictdconfSpecG skipwhite

syn region  dictdconfSpecG      contained transparent
                                \ matchgroup=dictdconfDelimiter start='{'
                                \ matchgroup=dictdconfDelimiter end='}'
                                \ contains=dictdconfSpec,dictdconfAccess,
                                \ dictdconfComment

syn keyword dictdconfSpec       contained data index index_suffix index_word
                                \ filter prefilter postfilter name info
                                \ disable_strat
                                \ nextgroup=dictdconfString skipwhite

syn keyword dictdconfSpec       contained invisible

syn keyword dictdconfKeyword    contained database_virtual
                                \ nextgroup=dictdconfVDatabase skipwhite

syn match   dictdconfVDatabase  contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
                                \ nextgroup=dictdconfVSpecG skipwhite
syn region  dictdconfVDatabase   contained display oneline
                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+
                                \ nextgroup=dictdconfVSpecG skipwhite

syn region  dictdconfVSpecG     contained transparent
                                \ matchgroup=dictdconfDelimiter start='{'
                                \ matchgroup=dictdconfDelimiter end='}'
                                \ contains=dictdconfVSpec,dictdconfAccess,
                                \ dictdconfComment

syn keyword dictdconfVSpec      contained name info database_list disable_strat
                                \ nextgroup=dictdconfString skipwhite

syn keyword dictdconfVSpec      contained invisible

syn keyword dictdconfKeyword    contained database_plugin
                                \ nextgroup=dictdconfPDatabase skipwhite

syn match   dictdconfPDatabase  contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
                                \ nextgroup=dictdconfPSpecG skipwhite
syn region  dictdconfPDatabase   contained display oneline
                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+
                                \ nextgroup=dictdconfPSpecG skipwhite

syn region  dictdconfPSpecG     contained transparent
                                \ matchgroup=dictdconfDelimiter start='{'
                                \ matchgroup=dictdconfDelimiter end='}'
                                \ contains=dictdconfPSpec,dictdconfAccess,
                                \ dictdconfComment

syn keyword dictdconfPSpec      contained name info plugin data disable_strat
                                \ nextgroup=dictdconfString skipwhite

syn keyword dictdconfPSpec      contained invisible

syn keyword dictdconfKeyword    contained database_exit

syn keyword dictdconfKeyword    contained site
                                \ nextgroup=dictdconfString skipwhite

syn keyword dictdconfKeyword    contained user
                                \ nextgroup=dictdconfUsername skipwhite

syn match   dictdconfUsername   contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
                                \ nextgroup=dictdconfSecret skipwhite
syn region  dictdconfUsername   contained display oneline
                                \ start=+"+ skip=+""+ end=+"+
                                \ nextgroup=dictdconfSecret skipwhite

syn match   dictdconfSecret     contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
syn region  dictdconfSecret     contained display oneline
                                \ start=+"+ skip=+""+ end=+"+

syn match   dictdconfString     contained display
                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
syn region  dictdconfString     contained display oneline
                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+

hi def link dictdconfTodo       Todo
hi def link dictdconfComment    Comment
hi def link dictdconfSpecialC   Special
hi def link dictdconfKeyword    Keyword
hi def link dictdconfIdentifier Identifier
hi def link dictdconfAccess     dictdconfIdentifier
hi def link dictdconfDatabase   dictdconfString
hi def link dictdconfSpec       dictdconfIdentifier
hi def link dictdconfVDatabase  dictdconfDatabase
hi def link dictdconfVSpec      dictdconfSpec
hi def link dictdconfPDatabase  dictdconfDatabase
hi def link dictdconfPSpec      dictdconfSpec
hi def link dictdconfUsername   dictdconfString
hi def link dictdconfSecret     Special
hi def link dictdconfString     String
hi def link dictdconfDelimiter  Delimiter

let b:current_syntax = "dictdconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z+*		vim80/syntax/rtf.vimnu�[���" Vim syntax file
" Language:	Rich Text Format
"		"*.rtf" files
"
" The Rich Text Format (RTF) Specification is a method of encoding formatted
" text and graphics for easy transfer between applications.
" .hlp (windows help files) use compiled rtf files
" rtf documentation at http://night.primate.wisc.edu/software/RTF/
"
" Maintainer:	Dominique St�phan (dominique@mggen.com)
" URL: http://www.mggen.com/vim/syntax/rtf.zip
" Last change:	2001 Mai 02

" TODO: render underline, italic, bold

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" case on (all controls must be lower case)
syn case match

" Control Words
syn match rtfControlWord	"\\[a-z]\+[\-]\=[0-9]*"

" New Control Words (not in the 1987 specifications)
syn match rtfNewControlWord	"\\\*\\[a-z]\+[\-]\=[0-9]*"

" Control Symbol : any \ plus a non alpha symbol, *, \, { and } and '
syn match rtfControlSymbol	"\\[^a-zA-Z\*\{\}\\']"

" { } and \ are special characters, to use them
" we add a backslash \
syn match rtfCharacter		"\\\\"
syn match rtfCharacter		"\\{"
syn match rtfCharacter		"\\}"
" Escaped characters (for 8 bytes characters upper than 127)
syn match rtfCharacter		"\\'[A-Za-z0-9][A-Za-z0-9]"
" Unicode
syn match rtfUnicodeCharacter	"\\u[0-9][0-9]*"

" Color values, we will put this value in Red, Green or Blue
syn match rtfRed		"\\red[0-9][0-9]*"
syn match rtfGreen		"\\green[0-9][0-9]*"
syn match rtfBlue		"\\blue[0-9][0-9]*"

" Some stuff for help files
syn match rtfFootNote "[#$K+]{\\footnote.*}" contains=rtfControlWord,rtfNewControlWord

" Define the default highlighting.
" Only when an item doesn't have highlighting yet


hi def link rtfControlWord		Statement
hi def link rtfNewControlWord	Special
hi def link rtfControlSymbol	Constant
hi def link rtfCharacter		Character
hi def link rtfUnicodeCharacter	SpecialChar
hi def link rtfFootNote		Comment

" Define colors for the syntax file
hi rtfRed	      term=underline cterm=underline ctermfg=DarkRed gui=underline guifg=DarkRed
hi rtfGreen	      term=underline cterm=underline ctermfg=DarkGreen gui=underline guifg=DarkGreen
hi rtfBlue	      term=underline cterm=underline ctermfg=DarkBlue gui=underline guifg=DarkBlue

hi def link rtfRed	rtfRed
hi def link rtfGreen	rtfGreen
hi def link rtfBlue	rtfBlue



let b:current_syntax = "rtf"

" vim:ts=8
PK�j�Zޜx+��vim80/syntax/netrc.vimnu�[���" Vim syntax file
" Language:             netrc(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2010-01-03

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword netrcKeyword    machine nextgroup=netrcMachine skipwhite skipnl
syn keyword netrcKeyword    account
                          \ login
                          \ nextgroup=netrcLogin,netrcSpecial skipwhite skipnl
syn keyword netrcKeyword    password nextgroup=netrcPassword skipwhite skipnl
syn keyword netrcKeyword    default
syn keyword netrcKeyword    macdef
                          \ nextgroup=netrcInit,netrcMacroName skipwhite skipnl
syn region  netrcMacro      contained start='.' end='^$'

syn match   netrcMachine    contained display '\S\+'
syn match   netrcMachine    contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
syn match   netrcLogin      contained display '\S\+'
syn match   netrcLogin      contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
syn match   netrcPassword   contained display '\S\+'
syn match   netrcPassword   contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
syn match   netrcMacroName  contained display '\S\+'
                          \ nextgroup=netrcMacro skipwhite skipnl
syn match   netrcMacroName  contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
                          \ nextgroup=netrcMacro skipwhite skipnl

syn keyword netrcSpecial    contained anonymous
syn match   netrcInit       contained '\<init$'
                          \ nextgroup=netrcMacro skipwhite skipnl

syn sync fromstart

hi def link netrcKeyword    Keyword
hi def link netrcMacro      PreProc
hi def link netrcMachine    Identifier
hi def link netrcLogin      String
hi def link netrcPassword   String
hi def link netrcMacroName  String
hi def link netrcSpecial    Special
hi def link netrcInit       Special

let b:current_syntax = "netrc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�W*���vim80/syntax/dirpager.vimnu�[���" Vim syntax file
" Maintainer:	  Thilo Six
" Contact:	  <vim-dev at vim dot org>
"		  http://www.vim.org/maillist.php#vim-dev
"
" Description:	  display directory content inside Vim with syntax
"		  highlighting
" File:		  runtime/syntax/dirpager.vim
" Last Change:	  2012 May 19
" Modeline:	  vim: ts=8:sw=2:sts=2:
"
" Credits:	  dirpager.vim is derived from Nikolai Weibulls dircolors.vim
"
" License:	  VIM License
"		  Vim is Charityware, see ":help Uganda"
"
" Usage:	  $ ls -la | view -c "set ft=dirpager" -
"
"
",----[ ls(1posix) ]--------------------------------------------------
"
" The  <entry type> character shall describe the type of file, as
"       follows:
"
"       d	Directory.
"       b	Block special file.
"       c	Character special file.
"       l (ell)	Symbolic link.
"       p	FIFO.
"       -	Regular file.
"

if exists("b:current_syntax") || &compatible
  finish
endif

setlocal nowrap

syn keyword  DirPagerTodo	contained FIXME TODO XXX NOTE

syn region   DirPagerExe	start='^...x\|^......x\|^.........x' end='$'	contains=DirPagerTodo,@Spell
syn region   DirPagerDir	start='^d' end='$'	contains=DirPagerTodo,@Spell
syn region   DirPagerLink	start='^l' end='$'	contains=DirPagerTodo,@Spell
syn region   DirPagerSpecial	start='^b' end='$'	contains=DirPagerTodo,@Spell
syn region   DirPagerSpecial	start='^c' end='$'	contains=DirPagerTodo,@Spell
syn region   DirPagerFifo	start='^p' end='$'	contains=DirPagerTodo,@Spell

hi def link  DirPagerTodo	Todo
hi def	     DirPagerExe	ctermfg=Green	    guifg=Green
hi def	     DirPagerDir	ctermfg=Blue	    guifg=Blue
hi def	     DirPagerLink	ctermfg=Cyan	    guifg=Cyan
hi def	     DirPagerSpecial	ctermfg=Yellow	    guifg=Yellow
hi def	     DirPagerFifo	ctermfg=Brown	    guifg=Brown

let b:current_syntax = "dirpager"

PK�j�Z���+�8�8vim80/syntax/euphoria4.vimnu�[���" Vim syntax file
" Language:	Euphoria 4.0.5 (http://www.openeuphoria.org/)
" Maintainer:	Shian Lee  
" Last Change:	2014 Feb 26 (for Vim 7.4)
" Remark:       Euphoria has two syntax files, euphoria3.vim and euphoria4.vim; 
"               For details see :help ft-euphoria-syntax

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Reset compatible-options to Vim default value, just in case: 
let s:save_cpo = &cpo
set cpo&vim

" Should suffice for very long strings and expressions:
syn sync lines=40

" Euphoria is a case-sensitive language (with only 4 builtin types):
syntax case match 

" Some keywords/Builtins for Debug - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4Debug	with without trace profile batch check indirect 
syn keyword euphoria4Debug	includes inline warning define

" Keywords for conditional compilation - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4PreProc	elsedef elsifdef ifdef 

" Keywords (Statments) - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4Keyword	and as break by case constant continue do else     
syn keyword euphoria4Keyword	elsif end entry enum exit export
syn keyword euphoria4Keyword	fallthru for function global goto if include
syn keyword euphoria4Keyword	label loop namespace not or override procedure
syn keyword euphoria4Keyword	public retry return routine switch then to type
syn keyword euphoria4Keyword	until while xor

" Builtins (Identifiers) - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4Builtin	abort and_bits append arctan atom c_func c_proc 
syn keyword euphoria4Builtin	call call_func call_proc clear_screen close 
syn keyword euphoria4Builtin	command_line compare cos date delete delete_routine 
syn keyword euphoria4Builtin	equal find floor get_key getc getenv gets hash 
syn keyword euphoria4Builtin	head include_paths insert integer length log 
syn keyword euphoria4Builtin	machine_func machine_proc match mem_copy mem_set 
syn keyword euphoria4Builtin	not_bits object open option_switches or_bits peek 
syn keyword euphoria4Builtin	peek2s peek2u peek4s peek4u peek_string peeks pixel 
syn keyword euphoria4Builtin	platform poke poke2 poke4 position power prepend 
syn keyword euphoria4Builtin	print printf puts rand remainder remove repeat 
syn keyword euphoria4Builtin	replace routine_id sequence sin splice sprintf
syn keyword euphoria4Builtin	sqrt system system_exec tail tan task_clock_start
syn keyword euphoria4Builtin	task_clock_stop task_create task_list task_schedule
syn keyword euphoria4Builtin	task_self task_status task_suspend task_yield time
syn keyword euphoria4Builtin	xor_bits
" Builtins (Identifiers) shortcuts for length() and print():
syn match   euphoria4Builtin	"\$" 
syn match   euphoria4Builtin	"?"

" Library Identifiers (Function) - grep from $EUDIR/include/*:
syn keyword euphoria4Library	DEP_on SyntaxColor abbreviate_path abs absolute_path
syn keyword euphoria4Library 	accept add add_item all_copyrights all_matches
syn keyword euphoria4Library	allocate allocate_code allocate_data allocate_low
syn keyword euphoria4Library 	allocate_pointer_array allocate_protect
syn keyword euphoria4Library 	allocate_string allocate_string_pointer_array
syn keyword euphoria4Library	allocate_wstring allocations allow_break any_key
syn keyword euphoria4Library	append_lines apply approx arccos arccosh arcsin
syn keyword euphoria4Library 	arcsinh arctanh assert at atan2 atom_to_float32
syn keyword euphoria4Library 	atom_to_float64 attr_to_colors avedev average
syn keyword euphoria4Library 	begins binary_search bind binop_ok bits_to_int
syn keyword euphoria4Library 	bk_color breakup build_commandline build_list
syn keyword euphoria4Library 	bytes_to_int calc_hash calc_primes call_back
syn keyword euphoria4Library 	canon2win canonical canonical_path ceil
syn keyword euphoria4Library 	central_moment chance char_test chdir
syn keyword euphoria4Library 	check_all_blocks check_break check_free_list
syn keyword euphoria4Library 	checksum clear clear_directory cmd_parse
syn keyword euphoria4Library 	colors_to_attr columnize combine connect
syn keyword euphoria4Library 	console_colors copy copy_file cosh count crash
syn keyword euphoria4Library 	crash_file crash_message crash_routine create
syn keyword euphoria4Library 	create_directory create_file curdir current_dir
syn keyword euphoria4Library	cursor custom_sort datetime days_in_month
syn keyword euphoria4Library 	days_in_year db_cache_clear db_clear_table db_close
syn keyword euphoria4Library	db_compress db_connect db_create db_create_table
syn keyword euphoria4Library 	db_current db_current_table db_delete_record
syn keyword euphoria4Library 	db_delete_table db_dump db_fetch_record db_find_key
syn keyword euphoria4Library	db_get_errors db_get_recid db_insert db_open
syn keyword euphoria4Library	db_record_data db_record_key db_record_recid
syn keyword euphoria4Library 	db_rename_table db_replace_data db_replace_recid
syn keyword euphoria4Library 	db_select db_select_table db_set_caching
syn keyword euphoria4Library 	db_table_list db_table_size deallocate decanonical
syn keyword euphoria4Library 	decode defaulted_value defaultext define_c_func
syn keyword euphoria4Library 	define_c_proc define_c_var deg2rad delete_file
syn keyword euphoria4Library 	dep_works dequote deserialize diff dir dir_size
syn keyword euphoria4Library 	dirname disk_metrics disk_size display
syn keyword euphoria4Library 	display_text_image dnsquery driveid dump dup emovavg
syn keyword euphoria4Library 	encode ends ensure_in_list ensure_in_range
syn keyword euphoria4Library 	error_code error_message error_no error_string
syn keyword euphoria4Library 	error_to_string escape euphoria_copyright exec
syn keyword euphoria4Library 	exp extract fetch fib file_exists file_length
syn keyword euphoria4Library 	file_timestamp file_type filebase fileext filename
syn keyword euphoria4Library	filter find_all find_all_but find_any find_each
syn keyword euphoria4Library 	find_nested find_replace find_replace_callback
syn keyword euphoria4Library	find_replace_limit flags_to_string flatten
syn keyword euphoria4Library 	float32_to_atom float64_to_atom flush for_each
syn keyword euphoria4Library 	format frac free free_code free_console free_low
syn keyword euphoria4Library	free_pointer_array from_date from_unix gcd geomean
syn keyword euphoria4Library	get get_bytes get_charsets get_def_lang
syn keyword euphoria4Library 	get_display_page get_dstring get_encoding_properties
syn keyword euphoria4Library 	get_integer16 get_integer32 get_lang_path get_lcid
syn keyword euphoria4Library 	get_mouse get_option get_ovector_size get_pid
syn keyword euphoria4Library 	get_position get_rand get_screen_char get_text
syn keyword euphoria4Library 	get_vector getaddrinfo getmxrr getnsrr graphics_mode
syn keyword euphoria4Library 	harmean has has_console has_match hex_text
syn keyword euphoria4Library 	host_by_addr host_by_name http_get http_post iff
syn keyword euphoria4Library 	iif info init_class init_curdir insertion_sort
syn keyword euphoria4Library 	instance int_to_bits int_to_bytes intdiv
syn keyword euphoria4Library 	is_DEP_supported is_empty is_even is_even_obj
syn keyword euphoria4Library 	is_in_list is_in_range is_inetaddr is_leap_year
syn keyword euphoria4Library 	is_match is_using_DEP is_win_nt join join_path
syn keyword euphoria4Library 	keep_comments keep_newlines key_codes keys keyvalues
syn keyword euphoria4Library	kill kurtosis lang_load larger_of largest last
syn keyword euphoria4Library 	listen load load_map locate_file lock_file
syn keyword euphoria4Library	lock_memory log10 lookup lower malloc mapping
syn keyword euphoria4Library 	match_all match_any match_replace matches max
syn keyword euphoria4Library 	maybe_any_key median memory_used merge message_box
syn keyword euphoria4Library	mid min minsize mod mode money mouse_events
syn keyword euphoria4Library	mouse_pointer movavg move_file nested_get
syn keyword euphoria4Library 	nested_put new new_extra new_from_kvpairs
syn keyword euphoria4Library 	new_from_string new_time next_prime now now_gmt
syn keyword euphoria4Library 	number open_dll optimize option_spec_to_string
syn keyword euphoria4Library 	or_all	pad_head pad_tail pairs parse
syn keyword euphoria4Library 	parse_commandline parse_ip_address parse_querystring
syn keyword euphoria4Library 	parse_url patch pathinfo pathname pcre_copyright
syn keyword euphoria4Library 	peek_end peek_top peek_wstring pivot platform_name
syn keyword euphoria4Library 	poke_string poke_wstring pop powof2 prepare_block
syn keyword euphoria4Library 	pretty_print pretty_sprint prime_list process_lines
syn keyword euphoria4Library 	product project prompt_number prompt_string proper
syn keyword euphoria4Library 	push put put_integer16 put_integer32 put_screen_char
syn keyword euphoria4Library 	quote rad2deg rand_range range raw_frequency read
syn keyword euphoria4Library 	read_bitmap read_file read_lines receive receive_from
syn keyword euphoria4Library	register_block rehash remove_all remove_directory
syn keyword euphoria4Library 	remove_dups remove_item remove_subseq rename_file
syn keyword euphoria4Library	repeat_pattern reset retain_all reverse rfind rmatch
syn keyword euphoria4Library 	rnd rnd_1 roll rotate rotate_bits round safe_address
syn keyword euphoria4Library 	sample save_bitmap save_map save_text_image scroll
syn keyword euphoria4Library	seek select send send_to serialize series
syn keyword euphoria4Library	service_by_name service_by_port set
syn keyword euphoria4Library 	set_accumulate_summary set_charsets set_colors
syn keyword euphoria4Library 	set_decimal_mark set_def_lang set_default_charsets
syn keyword euphoria4Library 	set_encoding_properties set_keycodes set_lang_path
syn keyword euphoria4Library 	set_option set_rand set_test_abort set_test_verbosity
syn keyword euphoria4Library 	set_vector set_wait_on_summary setenv shift_bits
syn keyword euphoria4Library 	show_block show_help show_tokens shuffle shutdown
syn keyword euphoria4Library 	sign sim_index sinh size skewness sleep slice small
syn keyword euphoria4Library 	smaller_of smallest sort sort_columns sound split
syn keyword euphoria4Library 	split_any split_limit split_path sprint start_time
syn keyword euphoria4Library 	statistics stdev store string_numbers subtract sum
syn keyword euphoria4Library 	sum_central_moments swap tanh task_delay temp_file
syn keyword euphoria4Library 	test_equal test_exec test_fail test_false
syn keyword euphoria4Library 	test_not_equal test_pass test_read test_report
syn keyword euphoria4Library	test_true test_write text_color text_rows threshold
syn keyword euphoria4Library 	tick_rate to_integer to_number to_string to_unix
syn keyword euphoria4Library	tokenize_file tokenize_string top transform translate
syn keyword euphoria4Library 	transmute trim trim_head trim_tail trsprintf trunc
syn keyword euphoria4Library 	type_of uname unlock_file unregister_block unsetenv
syn keyword euphoria4Library	upper use_vesa valid valid_index value values version
syn keyword euphoria4Library	version_date version_major version_minor version_node
syn keyword euphoria4Library 	version_patch version_revision version_string
syn keyword euphoria4Library 	version_string_long version_string_short version_type
syn keyword euphoria4Library 	video_config vlookup vslice wait_key walk_dir
syn keyword euphoria4Library 	warning_file weeks_day where which_bit wildcard_file
syn keyword euphoria4Library 	wildcard_match wrap write write_file write_lines
syn keyword euphoria4Library 	writef writefln years_day

" Library Identifiers (Type) - grep from $EUDIR/include/*:
syn keyword euphoria4Type	ascii_string boolean bordered_address byte_range
syn keyword euphoria4Type	case_flagset_type color cstring 
syn keyword euphoria4Type	file_number file_position graphics_point
syn keyword euphoria4Type	integer_array lcid lock_type machine_addr map 
syn keyword euphoria4Type	mixture number_array option_spec
syn keyword euphoria4Type	page_aligned_address positive_int process regex
syn keyword euphoria4Type	sequence_array socket stack std_library_address
syn keyword euphoria4Type	string t_alnum t_alpha t_ascii t_boolean
syn keyword euphoria4Type	t_bytearray t_cntrl t_consonant t_digit t_display
syn keyword euphoria4Type	t_graph t_identifier t_lower t_print t_punct
syn keyword euphoria4Type	t_space t_specword t_text t_upper t_vowel t_xdigit
syn keyword euphoria4Type	valid_memory_protection_constant valid_wordsize

" Linux shell comment (#!...):
syn match   euphoria4Comment	"\%^#!.*$"
" Single and multilines comments: 
syn region  euphoria4Comment 	start=/--/ end=/$/ 
syn region  euphoria4Comment 	start="/\*" end="\*/" 

" Delimiters and brackets:
syn match   euphoria4Delimit	"[([\])]"
syn match   euphoria4Delimit	"\.\."
syn match   euphoria4Delimit	":"
syn match   euphoria4Operator	"[{}]"

" Character constant:
syn region  euphoria4Char	start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline

" String constant (""" must be *after* "): 
syn region  euphoria4String	start=/"/ skip=/\\"\|\\\\/ end=/"/ oneline 
syn region  euphoria4String	start=/b"\|x"/ end=/"/ 
syn region  euphoria4String	start=/`/ end=/`/
syn region  euphoria4String	start=/"""/ end=/"""/

" Binary/Octal/Decimal/Hexadecimal integer:
syn match   euphoria4Number 	"\<0b[01_]\+\>"
syn match   euphoria4Number 	"\<0t[0-7_]\+\>"
syn match   euphoria4Number 	"\<0d[0-9_]\+\>"
syn match   euphoria4Number 	"\<0x[0-9A-Fa-f_]\+\>"
syn match   euphoria4Number 	"#[0-9A-Fa-f_]\+\>"

" Integer/Floating point without a dot:
syn match   euphoria4Number	"\<\d\+\>"
" Floating point with dot:
syn match   euphoria4Number	"\<\d\+\.\d*\>"
" Floating point starting with a dot:
syn match   euphoria4Number	"\.\d\+\>"
" Boolean constants: 
syn keyword euphoria4Boolean	true TRUE false FALSE

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet:
hi def link euphoria4Comment	Comment
hi def link euphoria4String	String
hi def link euphoria4Char	Character
hi def link euphoria4Number	Number	
hi def link euphoria4Boolean	Boolean	
hi def link euphoria4Builtin	Identifier	
hi def link euphoria4Library 	Function	
hi def link euphoria4Type 	Type	
hi def link euphoria4Keyword	Statement	
hi def link euphoria4Operator	Statement		
hi def link euphoria4Debug	Debug	
hi def link euphoria4Delimit	Delimiter	
hi def link euphoria4PreProc	PreProc	
	
let b:current_syntax = "euphoria4"

" Restore current compatible-options: 
let &cpo = s:save_cpo
unlet s:save_cpo

PK�j�Z�B��^^vim80/syntax/django.vimnu�[���" Vim syntax file
" Language:	Django template
" Maintainer:	Dave Hodder <dmh@dmh.org.uk>
" Last Change:	2014 Jul 13

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syntax case match

" Mark illegal characters
syn match djangoError "%}\|}}\|#}"

" Django template built-in tags and parameters
" 'comment' doesn't appear here because it gets special treatment
syn keyword djangoStatement contained autoescape csrf_token empty
" FIXME ==, !=, <, >, <=, and >= should be djangoStatements:
" syn keyword djangoStatement contained == != < > <= >=
syn keyword djangoStatement contained and as block endblock by cycle debug else elif
syn keyword djangoStatement contained extends filter endfilter firstof for
syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
syn keyword djangoStatement contained ifequal endifequal ifnotequal
syn keyword djangoStatement contained endifnotequal in include load not now or
syn keyword djangoStatement contained parsed regroup reversed spaceless
syn keyword djangoStatement contained endspaceless ssi templatetag openblock
syn keyword djangoStatement contained closeblock openvariable closevariable
syn keyword djangoStatement contained openbrace closebrace opencomment
syn keyword djangoStatement contained closecomment widthratio url with endwith
syn keyword djangoStatement contained get_current_language trans noop blocktrans
syn keyword djangoStatement contained endblocktrans get_available_languages
syn keyword djangoStatement contained get_current_language_bidi plural

" Django templete built-in filters
syn keyword djangoFilter contained add addslashes capfirst center cut date
syn keyword djangoFilter contained default default_if_none dictsort
syn keyword djangoFilter contained dictsortreversed divisibleby escape escapejs
syn keyword djangoFilter contained filesizeformat first fix_ampersands
syn keyword djangoFilter contained floatformat get_digit join last length length_is
syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
syn keyword djangoFilter contained lower make_list phone2numeric pluralize
syn keyword djangoFilter contained pprint random removetags rjust slice slugify
syn keyword djangoFilter contained safe safeseq stringformat striptags
syn keyword djangoFilter contained time timesince timeuntil title truncatechars
syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode
syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno

" Keywords to highlight within comments
syn keyword djangoTodo contained TODO FIXME XXX

" Django template constants (always surrounded by double quotes)
syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/

" Mark illegal characters within tag and variables blocks
syn match djangoTagError contained "#}\|{{\|[^%]}}\|[&#]"
syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]"

" Django template tag and variable blocks
syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display
syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display

" Django template 'comment' tag and comment block
syn region djangoComment start="{%\s*comment\(\s\+.\{-}\)\?%}" end="{%\s*endcomment\s*%}" contains=djangoTodo
syn region djangoComBlock start="{#" end="#}" contains=djangoTodo

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link djangoTagBlock PreProc
hi def link djangoVarBlock PreProc
hi def link djangoStatement Statement
hi def link djangoFilter Identifier
hi def link djangoArgument Constant
hi def link djangoTagError Error
hi def link djangoVarError Error
hi def link djangoError Error
hi def link djangoComment Comment
hi def link djangoComBlock Comment
hi def link djangoTodo Todo


let b:current_syntax = "django"
PK�j�Z����mmvim80/syntax/setserial.vimnu�[���" Vim syntax file
" Language:             setserial(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   setserialBegin      display '^'
                                \ nextgroup=setserialDevice,setserialComment
                                \ skipwhite

syn match   setserialDevice     contained display '\%(/[^ \t/]*\)\+'
                                \ nextgroup=setserialParameter skipwhite

syn keyword setserialParameter  contained port irq baud_base divisor
                                \ close_delay closing_wait rx_trigger
                                \ tx_trigger flow_off flow_on rx_timeout
                                \ nextgroup=setserialNumber skipwhite

syn keyword setserialParameter  contained uart
                                \ nextgroup=setserialUARTType skipwhite

syn keyword setserialParameter  contained autoconfig auto_irq skip_test
                                \ spd_hi spd_vhi spd_shi spd_warp spd_cust
                                \ spd_normal sak fourport session_lockout
                                \ pgrp_lockout hup_notify split_termios
                                \ callout_nohup low_latency
                                \ nextgroup=setserialParameter skipwhite

syn match   setserialParameter  contained display
                                \ '\^\%(auto_irq\|skip_test\|sak\|fourport\)'
                                \ contains=setserialNegation
                                \ nextgroup=setserialParameter skipwhite

syn match   setserialParameter  contained display
                                \ '\^\%(session_lockout\|pgrp_lockout\)'
                                \ contains=setserialNegation
                                \ nextgroup=setserialParameter skipwhite

syn match   setserialParameter  contained display
                                \ '\^\%(hup_notify\|split_termios\)'
                                \ contains=setserialNegation
                                \ nextgroup=setserialParameter skipwhite

syn match   setserialParameter  contained display
                                \ '\^\%(callout_nohup\|low_latency\)'
                                \ contains=setserialNegation
                                \ nextgroup=setserialParameter skipwhite

syn keyword setserialParameter  contained set_multiport
                                \ nextgroup=setserialMultiport skipwhite

syn match   setserialNumber     contained display '\<\d\+\>'
                                \ nextgroup=setserialParameter skipwhite
syn match   setserialNumber     contained display '0x\x\+'
                                \ nextgroup=setserialParameter skipwhite

syn keyword setserialUARTType   contained none

syn match   setserialUARTType   contained display
                                \ '8250\|16[4789]50\|16550A\=\|16650\%(V2\)\='
                                \ nextgroup=setserialParameter skipwhite

syn match   setserialUARTType   contained display '166[59]4'
                                \ nextgroup=setserialParameter skipwhite

syn match   setserialNegation   contained display '\^'

syn match   setserialMultiport  contained '\<port\d\+\>'
                                \ nextgroup=setserialPort skipwhite

syn match   setserialPort       contained display '\<\d\+\>'
                                \ nextgroup=setserialMask skipwhite
syn match   setserialPort       contained display '0x\x\+'
                                \ nextgroup=setserialMask skipwhite

syn match   setserialMask       contained '\<mask\d\+\>'
                                \ nextgroup=setserialBitMask skipwhite

syn match   setserialBitMask    contained display '\<\d\+\>'
                                \ nextgroup=setserialMatch skipwhite
syn match   setserialBitMask    contained display '0x\x\+'
                                \ nextgroup=setserialMatch skipwhite

syn match   setserialMatch      contained '\<match\d\+\>'
                                \ nextgroup=setserialMatchBits skipwhite

syn match   setserialMatchBits  contained display '\<\d\+\>'
                                \ nextgroup=setserialMultiport skipwhite
syn match   setserialMatchBits  contained display '0x\x\+'
                                \ nextgroup=setserialMultiport skipwhite

syn keyword setserialTodo       contained TODO FIXME XXX NOTE

syn region  setserialComment    display oneline start='^\s*#' end='$'
                                \ contains=setserialTodo,@Spell

hi def link setserialTodo       Todo
hi def link setserialComment    Comment
hi def link setserialDevice     Normal
hi def link setserialParameter  Identifier
hi def link setserialNumber     Number
hi def link setserialUARTType   Type
hi def link setserialNegation   Operator
hi def link setserialMultiport  Type
hi def link setserialPort       setserialNumber
hi def link setserialMask       Type
hi def link setserialBitMask    setserialNumber
hi def link setserialMatch      Type
hi def link setserialMatchBits  setserialNumber

let b:current_syntax = "setserial"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�=���vim80/syntax/rpcgen.vimnu�[���" Vim syntax file
" Language:	rpcgen
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	12
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN

if exists("b:current_syntax")
  finish
endif

" Read the C syntax to start with
runtime! syntax/c.vim

syn keyword rpcProgram	program				skipnl skipwhite nextgroup=rpcProgName
syn match   rpcProgName	contained	"\<\i\I*\>"	skipnl skipwhite nextgroup=rpcProgZone
syn region  rpcProgZone	contained	matchgroup=Delimiter start="{" matchgroup=Delimiter end="}\s*=\s*\(\d\+\|0x[23]\x\{7}\)\s*;"me=e-1 contains=rpcVersion,cComment,rpcProgNmbrErr
syn keyword rpcVersion	contained	version		skipnl skipwhite nextgroup=rpcVersName
syn match   rpcVersName	contained	"\<\i\I*\>"	skipnl skipwhite nextgroup=rpcVersZone
syn region  rpcVersZone	contained	matchgroup=Delimiter start="{" matchgroup=Delimiter end="}\s*=\s*\d\+\s*;"me=e-1 contains=cType,cStructure,cStorageClass,rpcDecl,rpcProcNmbr,cComment
syn keyword rpcDecl	contained	string
syn match   rpcProcNmbr	contained	"=\s*\d\+;"me=e-1
syn match   rpcProgNmbrErr contained	"=\s*0x[^23]\x*"ms=s+1
syn match   rpcPassThru			"^\s*%.*$"

" Define the default highlighting.
if !exists("skip_rpcgen_syntax_inits")

  hi def link rpcProgName	rpcName
  hi def link rpcProgram	rpcStatement
  hi def link rpcVersName	rpcName
  hi def link rpcVersion	rpcStatement

  hi def link rpcDecl	cType
  hi def link rpcPassThru	cComment

  hi def link rpcName	Special
  hi def link rpcProcNmbr	Delimiter
  hi def link rpcProgNmbrErr	Error
  hi def link rpcStatement	Statement

endif

let b:current_syntax = "rpcgen"

" vim: ts=8
PK�j�Z�����vim80/syntax/exports.vimnu�[���" Vim syntax file
" Language:	exports
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	7
" Notes:		This file includes both SysV and BSD 'isms
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_EXPORTS

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Options: -word
syn keyword exportsKeyOptions contained	alldirs	nohide	ro	wsync
syn keyword exportsKeyOptions contained	kerb	o	rw
syn match exportsOptError contained	"[a-z]\+"

" Settings: word=
syn keyword exportsKeySettings contained	access	anon	root	rw
syn match exportsSetError contained	"[a-z]\+"

" OptSet: -word=
syn keyword exportsKeyOptSet contained	mapall	maproot	mask	network
syn match exportsOptSetError contained	"[a-z]\+"

" options and settings
syn match exportsSettings	"[a-z]\+="  contains=exportsKeySettings,exportsSetError
syn match exportsOptions	"-[a-z]\+"  contains=exportsKeyOptions,exportsOptError
syn match exportsOptSet	"-[a-z]\+=" contains=exportsKeyOptSet,exportsOptSetError

" Separators
syn match exportsSeparator	"[,:]"

" comments
syn match exportsComment	"^\s*#.*$"	contains=@Spell

" Define the default highlighting.
if !exists("skip_exports_syntax_inits")

  hi def link exportsKeyOptSet	exportsKeySettings
  hi def link exportsOptSet	exportsSettings

  hi def link exportsComment	Comment
  hi def link exportsKeyOptions	Type
  hi def link exportsKeySettings	Keyword
  hi def link exportsOptions	Constant
  hi def link exportsSeparator	Constant
  hi def link exportsSettings	Constant

  hi def link exportsOptError	Error
  hi def link exportsOptSetError	Error
  hi def link exportsSetError	Error

endif

let b:current_syntax = "exports"
" vim: ts=10
PK�j�Z������vim80/syntax/modconf.vimnu�[���" Vim syntax file
" Language:             modules.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-10-25

if exists("b:current_syntax")
  finish
endif

setlocal iskeyword+=-

let s:cpo_save = &cpo
set cpo&vim

syn keyword modconfTodo         FIXME TODO XXX NOTE

syn region  modconfComment      start='#' skip='\\$' end='$'
                                \ contains=modconfTodo,@Spell

syn keyword modconfConditional  if else elseif endif

syn keyword modconfPreProc      alias define include keep prune
                                \ post-install post-remove pre-install
                                \ pre-remove persistdir blacklist

syn keyword modconfKeyword      add above below install options probe probeall
                                \ remove

syn keyword modconfIdentifier   depfile insmod_opt path generic_stringfile
                                \ pcimapfile isapnpmapfile usbmapfile
                                \ parportmapfile ieee1394mapfile pnpbiosmapfile
syn match   modconfIdentifier   'path\[[^]]\+\]'

hi def link modconfTodo         Todo
hi def link modconfComment      Comment
hi def link modconfConditional  Conditional
hi def link modconfPreProc      PreProc
hi def link modconfKeyword      Keyword
hi def link modconfIdentifier   Identifier

let b:current_syntax = "modconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�fvim80/syntax/cterm.vimnu�[���" Vim syntax file
" Language:	Century Term Command Script
" Maintainer:	Sean M. McKee <mckee@misslink.net>
" Last Change:	2002 Apr 13
" Version Info: @(#)cterm.vim	1.7	97/12/15 09:23:14

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

"FUNCTIONS
syn keyword ctermFunction	abort addcr addlf answer at attr batch baud
syn keyword ctermFunction	break call capture cd cdelay charset cls color
syn keyword ctermFunction	combase config commect copy cread
syn keyword ctermFunction	creadint devprefix dialer dialog dimint
syn keyword ctermFunction	dimlog dimstr display dtimeout dwait edit
syn keyword ctermFunction	editor emulate erase escloop fcreate
syn keyword ctermFunction	fflush fillchar flags flush fopen fread
syn keyword ctermFunction	freadln fseek fwrite fwriteln get hangup
syn keyword ctermFunction	help hiwait htime ignore init itime
syn keyword ctermFunction	keyboard lchar ldelay learn lockfile
syn keyword ctermFunction	locktime log login logout lowait
syn keyword ctermFunction	lsend ltime memlist menu mkdir mode
syn keyword ctermFunction	modem netdialog netport noerror pages parity
syn keyword ctermFunction	pause portlist printer protocol quit rcv
syn keyword ctermFunction	read readint readn redial release
syn keyword ctermFunction	remote rename restart retries return
syn keyword ctermFunction	rmdir rtime run runx scrollback send
syn keyword ctermFunction	session set setcap setcolor setkey
syn keyword ctermFunction	setsym setvar startserver status
syn keyword ctermFunction	stime stopbits stopserver tdelay
syn keyword ctermFunction	terminal time trans type usend version
syn keyword ctermFunction	vi vidblink vidcard vidout vidunder wait
syn keyword ctermFunction	wildsize wclose wopen wordlen wru wruchar
syn keyword ctermFunction	xfer xmit xprot
syn match ctermFunction		"?"
"syn keyword ctermFunction	comment remark

"END FUNCTIONS
"INTEGER FUNCTIONS
syn keyword ctermIntFunction	asc atod eval filedate filemode filesize ftell
syn keyword ctermIntFunction	len termbits opsys pos sum time val mdmstat
"END INTEGER FUNCTIONS

"STRING FUNCTIONS
syn keyword ctermStrFunction	cdate ctime chr chrdy chrin comin getenv
syn keyword ctermStrFunction	gethomedir left midstr right str tolower
syn keyword ctermStrFunction	toupper uniq comst exists feof hascolor

"END STRING FUNCTIONS

"PREDEFINED TERM VARIABLES R/W
syn keyword ctermPreVarRW	f _escloop _filename _kermiteol _obufsiz
syn keyword ctermPreVarRW	_port _rcvsync _cbaud _reval _turnchar
syn keyword ctermPreVarRW	_txblksiz _txwindow _vmin _vtime _cparity
syn keyword ctermPreVarRW	_cnumber false t true _cwordlen _cstopbits
syn keyword ctermPreVarRW	_cmode _cemulate _cxprot _clogin _clogout
syn keyword ctermPreVarRW	_cstartsrv _cstopsrv _ccmdfile _cwru
syn keyword ctermPreVarRW	_cprotocol _captfile _cremark _combufsiz
syn keyword ctermPreVarRW	logfile
"END PREDEFINED TERM VARIABLES R/W

"PREDEFINED TERM VARIABLES R/O
syn keyword ctermPreVarRO	_1 _2 _3 _4 _5 _6 _7 _8 _9 _cursess
syn keyword ctermPreVarRO	_lockfile _baud _errno _retval _sernum
syn keyword ctermPreVarRO	_timeout _row _col _version
"END PREDEFINED TERM VARIABLES R/O

syn keyword ctermOperator not mod eq ne gt le lt ge xor and or shr not shl

"SYMBOLS
syn match   CtermSymbols	 "|"
"syn keyword ctermOperators + - * / % = != > < >= <= & | ^ ! << >>
"END SYMBOLS

"STATEMENT
syn keyword ctermStatement	off
syn keyword ctermStatement	disk overwrite append spool none
syn keyword ctermStatement	echo view wrap
"END STATEMENT

"TYPE
"syn keyword ctermType
"END TYPE

"USERLIB FUNCTIONS
"syn keyword ctermLibFunc
"END USERLIB FUNCTIONS

"LABEL
syn keyword ctermLabel    case default
"END LABEL

"CONDITIONAL
syn keyword ctermConditional on endon
syn keyword ctermConditional proc endproc
syn keyword ctermConditional for in do endfor
syn keyword ctermConditional if else elseif endif iferror
syn keyword ctermConditional switch endswitch
syn keyword ctermConditional repeat until
"END CONDITIONAL

"REPEAT
syn keyword ctermRepeat    while
"END REPEAT

" Function arguments (eg $1 $2 $3)
syn match  ctermFuncArg	"\$[1-9]"

syn keyword ctermTodo contained TODO

syn match  ctermNumber		"\<\d\+\(u\=l\=\|lu\|f\)\>"
"floating point number, with dot, optional exponent
syn match  ctermNumber		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, starting with a dot, optional exponent
syn match  ctermNumber		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match  ctermNumber		"\<\d\+e[-+]\=\d\+[fl]\=\>"
"hex number
syn match  ctermNumber		"0x[0-9a-f]\+\(u\=l\=\|lu\)\>"

syn match  ctermComment		"![^=].*$" contains=ctermTodo
syn match  ctermComment		"!$"
syn match  ctermComment		"\*.*$" contains=ctermTodo
syn region  ctermComment	start="comment" end="$" contains=ctermTodo
syn region  ctermComment	start="remark" end="$" contains=ctermTodo

syn region ctermVar		start="\$("  end=")"

" String and Character contstants
" Highlight special characters (those which have a backslash) differently
syn match   ctermSpecial		contained "\\\d\d\d\|\\."
syn match   ctermSpecial		contained "\^."
syn region  ctermString			start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=ctermSpecial,ctermVar,ctermSymbols
syn match   ctermCharacter		"'[^\\]'"
syn match   ctermSpecialCharacter	"'\\.'"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link ctermStatement		Statement
hi def link ctermFunction		Statement
hi def link ctermStrFunction	Statement
hi def link ctermIntFunction	Statement
hi def link ctermLabel		Statement
hi def link ctermConditional	Statement
hi def link ctermRepeat		Statement
hi def link ctermLibFunc		UserDefFunc
hi def link ctermType		Type
hi def link ctermFuncArg		PreCondit

hi def link ctermPreVarRO		PreCondit
hi def link ctermPreVarRW		PreConditBold
hi def link ctermVar		Type

hi def link ctermComment		Comment

hi def link ctermCharacter		SpecialChar
hi def link ctermSpecial		Special
hi def link ctermSpecialCharacter	SpecialChar
hi def link ctermSymbols		Special
hi def link ctermString		String
hi def link ctermTodo		Todo
hi def link ctermOperator		Statement
hi def link ctermNumber		Number

" redefine the colors
"hi PreConditBold	term=bold ctermfg=1 cterm=bold guifg=Purple gui=bold
"hi Special	term=bold ctermfg=6 guifg=SlateBlue gui=underline


let b:current_syntax = "cterm"

" vim: ts=8
PK�j�Z�R�q33vim80/syntax/xpm.vimnu�[���" Vim syntax file
" Language:	X Pixmap
" Maintainer:	Ronald Schild <rs@scutum.de>
" Last Change:	2017 Feb 01
" Version:	5.4n.1
"               Jemma Nelson added termguicolors support

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword xpmType		char
syn keyword xpmStorageClass	static
syn keyword xpmTodo		TODO FIXME XXX  contained
syn region  xpmComment		start="/\*"  end="\*/"  contains=xpmTodo
syn region  xpmPixelString	start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=@xpmColors

if has("gui_running") || has("termguicolors") && &termguicolors

let color  = ""
let chars  = ""
let colors = 0
let cpp    = 0
let n      = 0
let i      = 1

while i <= line("$")		" scanning all lines

   let s = matchstr(getline(i), '".\{-1,}"')
   if s != ""			" does line contain a string?

      if n == 0			" first string is the Values string

	 " get the 3rd value: colors = number of colors
	 let colors = substitute(s, '"\s*\d\+\s\+\d\+\s\+\(\d\+\).*"', '\1', '')
	 " get the 4th value: cpp = number of character per pixel
	 let cpp = substitute(s, '"\s*\d\+\s\+\d\+\s\+\d\+\s\+\(\d\+\).*"', '\1', '')
	 if cpp =~ '[^0-9]'
	    break  " if cpp is not made of digits there must be something wrong
	 endif

	 " Highlight the Values string as normal string (no pixel string).
	 " Only when there is no slash, it would terminate the pattern.
	 if s !~ '/'
	    exe 'syn match xpmValues /' . s . '/'
	 endif
	 hi link xpmValues String

	 let n = 1		" n = color index

      elseif n <= colors	" string is a color specification

	 " get chars = <cpp> length string representing the pixels
	 " (first incl. the following whitespace)
	 let chars = substitute(s, '"\(.\{'.cpp.'}\s\).*"', '\1', '')

	 " now get color, first try 'c' key if any (color visual)
	 let color = substitute(s, '".*\sc\s\+\(.\{-}\)\s*\(\(g4\=\|[ms]\)\s.*\)*\s*"', '\1', '')
	 if color == s
	    " no 'c' key, try 'g' key (grayscale with more than 4 levels)
	    let color = substitute(s, '".*\sg\s\+\(.\{-}\)\s*\(\(g4\|[ms]\)\s.*\)*\s*"', '\1', '')
	    if color == s
	       " next try: 'g4' key (4-level grayscale)
	       let color = substitute(s, '".*\sg4\s\+\(.\{-}\)\s*\([ms]\s.*\)*\s*"', '\1', '')
	       if color == s
		  " finally try 'm' key (mono visual)
		  let color = substitute(s, '".*\sm\s\+\(.\{-}\)\s*\(s\s.*\)*\s*"', '\1', '')
		  if color == s
		     let color = ""
		  endif
	       endif
	    endif
	 endif

	 " Vim cannot handle RGB codes with more than 6 hex digits
	 if color =~ '#\x\{10,}$'
	    let color = substitute(color, '\(\x\x\)\x\x', '\1', 'g')
	 elseif color =~ '#\x\{7,}$'
	    let color = substitute(color, '\(\x\x\)\x', '\1', 'g')
	 " nor with 3 digits
	 elseif color =~ '#\x\{3}$'
	    let color = substitute(color, '\(\x\)\(\x\)\(\x\)', '0\10\20\3', '')
	 endif

	 " escape meta characters in patterns
	 let s = escape(s, '/\*^$.~[]')
	 let chars = escape(chars, '/\*^$.~[]')

	 " now create syntax items
	 " highlight the color string as normal string (no pixel string)
	 exe 'syn match xpmCol'.n.'Def /'.s.'/ contains=xpmCol'.n.'inDef'
	 exe 'hi link xpmCol'.n.'Def String'

	 " but highlight the first whitespace after chars in its color
	 exe 'syn match xpmCol'.n.'inDef /"'.chars.'/hs=s+'.(cpp+1).' contained'
	 exe 'hi link xpmCol'.n.'inDef xpmColor'.n

	 " remove the following whitespace from chars
	 let chars = substitute(chars, '.$', '', '')

	 " and create the syntax item contained in the pixel strings
	 exe 'syn match xpmColor'.n.' /'.chars.'/ contained'
	 exe 'syn cluster xpmColors add=xpmColor'.n

	 " if no color or color = "None" show background
	 if color == ""  ||  substitute(color, '.*', '\L&', '') == 'none'
	    exe 'hi xpmColor'.n.' guifg=bg'
	    exe 'hi xpmColor'.n.' guibg=NONE'
	 elseif color !~ "'"
	    exe 'hi xpmColor'.n." guifg='".color."'"
	    exe 'hi xpmColor'.n." guibg='".color."'"
	 endif
	 let n = n + 1
      else
	 break		" no more color string
      endif
   endif
   let i = i + 1
endwhile

unlet color chars colors cpp n i s

endif          " has("gui_running") || has("termguicolors") && &termguicolors

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link xpmType		Type
hi def link xpmStorageClass	StorageClass
hi def link xpmTodo		Todo
hi def link xpmComment		Comment
hi def link xpmPixelString	String


let b:current_syntax = "xpm"

" vim: ts=8:sw=3:noet:
PK�j�Z��X�@2@2vim80/syntax/yaml.vimnu�[���" Vim syntax file
" Language:         YAML (YAML Ain't Markup Language) 1.2
" Maintainer:       Nikolai Pavlov <zyx.vim@gmail.com>
" First author:     Nikolai Weibull <now@bitwi.se>
" Latest Revision:  2015-03-28

if exists('b:current_syntax')
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Choose the schema to use
" TODO: Validate schema
if !exists('b:yaml_schema')
  if exists('g:yaml_schema')
    let b:yaml_schema = g:yaml_schema
  else
    let b:yaml_schema = 'core'
  endif
endif

let s:ns_char = '\%([\n\r\uFEFF \t]\@!\p\)'
let s:ns_word_char = '[[:alnum:]_\-]'
let s:ns_uri_char  = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$,.!~*''()[\]]\)'
let s:ns_tag_char  = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$.~*''()]\)'
let s:c_ns_anchor_char = '\%([\n\r\uFEFF \t,[\]{}]\@!\p\)'
let s:c_indicator      = '[\-?:,[\]{}#&*!|>''"%@`]'
let s:c_flow_indicator = '[,[\]{}]'

let s:ns_char_without_c_indicator = substitute(s:ns_char, '\v\C[\zs', '\=s:c_indicator[1:-2]', '')

let s:_collection = '[^\@!\(\%(\\\.\|\[^\\\]]\)\+\)]'
let s:_neg_collection = '[^\(\%(\\\.\|\[^\\\]]\)\+\)]'
function s:SimplifyToAssumeAllPrintable(p)
    return substitute(a:p, '\V\C\\%('.s:_collection.'\\@!\\p\\)', '[^\1]', '')
endfunction
let s:ns_char = s:SimplifyToAssumeAllPrintable(s:ns_char)
let s:ns_char_without_c_indicator = s:SimplifyToAssumeAllPrintable(s:ns_char_without_c_indicator)
let s:c_ns_anchor_char = s:SimplifyToAssumeAllPrintable(s:c_ns_anchor_char)

function s:SimplifyAdjacentCollections(p)
    return substitute(a:p, '\V\C'.s:_collection.'\\|'.s:_collection, '[\1\2]', 'g')
endfunction
let s:ns_uri_char = s:SimplifyAdjacentCollections(s:ns_uri_char)
let s:ns_tag_char = s:SimplifyAdjacentCollections(s:ns_tag_char)

let s:c_verbatim_tag = '!<'.s:ns_uri_char.'\+>'
let s:c_named_tag_handle     = '!'.s:ns_word_char.'\+!'
let s:c_secondary_tag_handle = '!!'
let s:c_primary_tag_handle   = '!'
let s:c_tag_handle = '\%('.s:c_named_tag_handle.
            \         '\|'.s:c_secondary_tag_handle.
            \         '\|'.s:c_primary_tag_handle.'\)'
let s:c_ns_shorthand_tag = s:c_tag_handle . s:ns_tag_char.'\+'
let s:c_non_specific_tag = '!'
let s:c_ns_tag_property = s:c_verbatim_tag.
            \        '\|'.s:c_ns_shorthand_tag.
            \        '\|'.s:c_non_specific_tag

let s:c_ns_anchor_name = s:c_ns_anchor_char.'\+'
let s:c_ns_anchor_property =  '&'.s:c_ns_anchor_name
let s:c_ns_alias_node      = '\*'.s:c_ns_anchor_name

let s:ns_directive_name = s:ns_char.'\+'

let s:ns_local_tag_prefix  = '!'.s:ns_uri_char.'*'
let s:ns_global_tag_prefix = s:ns_tag_char.s:ns_uri_char.'*'
let s:ns_tag_prefix = s:ns_local_tag_prefix.
            \    '\|'.s:ns_global_tag_prefix

let s:ns_plain_safe_out = s:ns_char
let s:ns_plain_safe_in  = '\%('.s:c_flow_indicator.'\@!'.s:ns_char.'\)'

let s:ns_plain_safe_in = substitute(s:ns_plain_safe_in, '\V\C\\%('.s:_collection.'\\@!'.s:_neg_collection.'\\)', '[^\1\2]', '')
let s:ns_plain_safe_in_without_colhash = substitute(s:ns_plain_safe_in, '\V\C'.s:_neg_collection, '[^\1:#]', '')
let s:ns_plain_safe_out_without_colhash = substitute(s:ns_plain_safe_out, '\V\C'.s:_neg_collection, '[^\1:#]', '')

let s:ns_plain_first_in  = '\%('.s:ns_char_without_c_indicator.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@=\)'
let s:ns_plain_first_out = '\%('.s:ns_char_without_c_indicator.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@=\)'

let s:ns_plain_char_in  = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|'.s:ns_plain_safe_in_without_colhash.'\)'
let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|'.s:ns_plain_safe_out_without_colhash.'\)'

let s:ns_plain_out = s:ns_plain_first_out . s:ns_plain_char_out.'*'
let s:ns_plain_in  = s:ns_plain_first_in  . s:ns_plain_char_in.'*'


syn keyword yamlTodo            contained TODO FIXME XXX NOTE

syn region  yamlComment         display oneline start='\%\(^\|\s\)#' end='$'
            \                   contains=yamlTodo

execute 'syn region yamlDirective oneline start='.string('^\ze%'.s:ns_directive_name.'\s\+').' '.
            \                            'end="$" '.
            \                            'contains=yamlTAGDirective,'.
            \                                     'yamlYAMLDirective,'.
            \                                     'yamlReservedDirective '.
            \                            'keepend'

syn match yamlTAGDirective '%TAG\s\+' contained nextgroup=yamlTagHandle
execute 'syn match yamlTagHandle contained nextgroup=yamlTagPrefix '.string(s:c_tag_handle.'\s\+')
execute 'syn match yamlTagPrefix contained nextgroup=yamlComment ' . string(s:ns_tag_prefix)

syn match yamlYAMLDirective '%YAML\s\+'  contained nextgroup=yamlYAMLVersion
syn match yamlYAMLVersion   '\d\+\.\d\+' contained nextgroup=yamlComment

execute 'syn match yamlReservedDirective contained nextgroup=yamlComment '.
            \string('%\%(\%(TAG\|YAML\)\s\)\@!'.s:ns_directive_name)

syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"'
            \ contains=yamlEscape
            \ nextgroup=yamlKeyValueDelimiter
syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''"  end="'"
            \ contains=yamlSingleEscape
            \ nextgroup=yamlKeyValueDelimiter
syn match  yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)'
syn match  yamlSingleEscape contained "''"

syn match yamlBlockScalarHeader contained '\s\+\zs[|>]\%([+-]\=[1-9]\|[1-9]\=[+-]\)\='

syn cluster yamlConstant contains=yamlBool,yamlNull

syn cluster yamlFlow contains=yamlFlowString,yamlFlowMapping,yamlFlowCollection
syn cluster yamlFlow      add=yamlFlowMappingKey,yamlFlowMappingMerge
syn cluster yamlFlow      add=@yamlConstant,yamlPlainScalar,yamlFloat
syn cluster yamlFlow      add=yamlTimestamp,yamlInteger,yamlMappingKeyStart
syn cluster yamlFlow      add=yamlComment
syn region yamlFlowMapping    matchgroup=yamlFlowIndicator start='{' end='}' contains=@yamlFlow
syn region yamlFlowCollection matchgroup=yamlFlowIndicator start='\[' end='\]' contains=@yamlFlow

execute 'syn match yamlPlainScalar /'.s:ns_plain_out.'/'
execute 'syn match yamlPlainScalar contained /'.s:ns_plain_in.'/'

syn match yamlMappingKeyStart '?\ze\s'
syn match yamlMappingKeyStart '?' contained

execute 'syn match yamlFlowMappingKey /\%#=1'.s:ns_plain_in.'\%(\s\+'.s:ns_plain_in.'\)*\ze\s*:/ contained '.
            \'nextgroup=yamlKeyValueDelimiter'
syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlKeyValueDelimiter

syn match yamlBlockCollectionItemStart '^\s*\zs-\%(\s\+-\)*\s' nextgroup=yamlBlockMappingKey,yamlBlockMappingMerge
" Use the old regexp engine, the NFA engine doesn't like all the \@ items.
execute 'syn match yamlBlockMappingKey /\%#=1^\s*\zs'.s:ns_plain_out.'\%(\s\+'.s:ns_plain_out.'\)*\ze\s*:\%(\s\|$\)/ '.
            \'nextgroup=yamlKeyValueDelimiter'
execute 'syn match yamlBlockMappingKey /\%#=1\s*\zs'.s:ns_plain_out.'\%(\s\+'.s:ns_plain_out.'\)*\ze\s*:\%(\s\|$\)/ contained '.
            \'nextgroup=yamlKeyValueDelimiter'
syn match yamlBlockMappingMerge /^\s*\zs<<\ze:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter
syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained

syn match   yamlKeyValueDelimiter /\s*:/ contained
syn match   yamlKeyValueDelimiter /\s*:/ contained

syn cluster yamlScalarWithSpecials contains=yamlPlainScalar,yamlBlockMappingKey,yamlFlowMappingKey

let s:_bounder = s:SimplifyToAssumeAllPrintable('\%([[\]{}, \t]\@!\p\)')
if b:yaml_schema is# 'json'
    syn keyword yamlNull null contained containedin=@yamlScalarWithSpecials
    syn keyword yamlBool true false
    exe 'syn match   yamlInteger /'.s:_bounder.'\@1<!\%(0\|-\=[1-9][0-9]*\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
    exe 'syn match   yamlFloat   /'.s:_bounder.'\@1<!\%(-\=[1-9][0-9]*\%(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|0\|-\=\.inf\|\.nan\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
elseif b:yaml_schema is# 'core'
    syn keyword yamlNull null Null NULL contained containedin=@yamlScalarWithSpecials
    syn keyword yamlBool true True TRUE false False FALSE contained containedin=@yamlScalarWithSpecials
    exe 'syn match   yamlNull /'.s:_bounder.'\@1<!\~'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
    exe 'syn match   yamlInteger /'.s:_bounder.'\@1<!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0-5]\=\d\)\+\)\)\|[1-9][0-9_]*\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
    exe 'syn match   yamlFloat /'.s:_bounder.'\@1<!\%([+-]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][+-]\=\d\+\)\=\|\.[0-9_]\+\%([eE][-+]\=[0-9]\+\)\=\|\d[0-9_]*\%(:[0-5]\=\d\)\+\.[0-9_]*\|\.\%(inf\|Inf\|INF\)\)\|\%(\.\%(nan\|NaN\|NAN\)\)\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
elseif b:yaml_schema is# 'pyyaml'
    syn keyword yamlNull null Null NULL contained containedin=@yamlScalarWithSpecials
    syn keyword yamlBool true True TRUE false False FALSE yes Yes YES no No NO on On ON off Off OFF contained containedin=@yamlScalarWithSpecials
    exe 'syn match   yamlNull /'.s:_bounder.'\@1<!\~'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
    exe 'syn match  yamlFloat /'.s:_bounder.'\@1<!\%(\v[-+]?%(\d[0-9_]*)\.[0-9_]*%([eE][-+]\d+)?|\.[0-9_]+%([eE][-+]\d+)?|[-+]?\d[0-9_]*%(\:[0-5]?\d)+\.[0-9_]*|[-+]?\.%(inf|Inf|INF)|\.%(nan|NaN|NAN)\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
    exe 'syn match  yamlInteger /'.s:_bounder.'\@1<!\%(\v[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?%(0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*%(:[0-5]?\d)+\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
    exe 'syn match  yamlTimestamp /'.s:_bounder.'\@1<!\%(\v\d\d\d\d\-\d\d\-\d\d|\d\d\d\d \-\d\d? \-\d\d?%([Tt]|[ \t]+)\d\d?\:\d\d \:\d\d %(\.\d*)?%([ \t]*%(Z|[-+]\d\d?%(\:\d\d)?))?\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
elseif b:yaml_schema is# 'failsafe'
    " Nothing
endif
unlet s:_bounder


execute 'syn match yamlNodeTag '.string(s:c_ns_tag_property)
execute 'syn match yamlAnchor  '.string(s:c_ns_anchor_property)
execute 'syn match yamlAlias   '.string(s:c_ns_alias_node)

syn match yamlDocumentStart '^---\ze\%(\s\|$\)'
syn match yamlDocumentEnd   '^\.\.\.\ze\%(\s\|$\)'

hi def link yamlTodo                     Todo
hi def link yamlComment                  Comment

hi def link yamlDocumentStart            PreProc
hi def link yamlDocumentEnd              PreProc

hi def link yamlDirectiveName            Keyword

hi def link yamlTAGDirective             yamlDirectiveName
hi def link yamlTagHandle                String
hi def link yamlTagPrefix                String

hi def link yamlYAMLDirective            yamlDirectiveName
hi def link yamlReservedDirective        Error
hi def link yamlYAMLVersion              Number

hi def link yamlString                   String
hi def link yamlFlowString               yamlString
hi def link yamlFlowStringDelimiter      yamlString
hi def link yamlEscape                   SpecialChar
hi def link yamlSingleEscape             SpecialChar

hi def link yamlBlockCollectionItemStart Label
hi def link yamlBlockMappingKey          Identifier
hi def link yamlBlockMappingMerge        Special

hi def link yamlFlowMappingKey           Identifier
hi def link yamlFlowMappingMerge         Special

hi def link yamlMappingKeyStart          Special
hi def link yamlFlowIndicator            Special
hi def link yamlKeyValueDelimiter        Special

hi def link yamlConstant                 Constant

hi def link yamlNull                     yamlConstant
hi def link yamlBool                     yamlConstant

hi def link yamlAnchor                   Type
hi def link yamlAlias                    Type
hi def link yamlNodeTag                  Type

hi def link yamlInteger                  Number
hi def link yamlFloat                    Float
hi def link yamlTimestamp                Number

let b:current_syntax = "yaml"

unlet s:ns_word_char s:ns_uri_char s:c_verbatim_tag s:c_named_tag_handle s:c_secondary_tag_handle s:c_primary_tag_handle s:c_tag_handle s:ns_tag_char s:c_ns_shorthand_tag s:c_non_specific_tag s:c_ns_tag_property s:c_ns_anchor_char s:c_ns_anchor_name s:c_ns_anchor_property s:c_ns_alias_node s:ns_char s:ns_directive_name s:ns_local_tag_prefix s:ns_global_tag_prefix s:ns_tag_prefix s:c_indicator s:ns_plain_safe_out s:c_flow_indicator s:ns_plain_safe_in s:ns_plain_first_in s:ns_plain_first_out s:ns_plain_char_in s:ns_plain_char_out s:ns_plain_out s:ns_plain_in s:ns_char_without_c_indicator s:ns_plain_safe_in_without_colhash s:ns_plain_safe_out_without_colhash
unlet s:_collection s:_neg_collection
delfunction s:SimplifyAdjacentCollections
delfunction s:SimplifyToAssumeAllPrintable

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�P�88vim80/syntax/xbl.vimnu�[���" Vim syntax file
" Language:	    XBL 1.0
" Maintainer:	    Doug Kearns <dougkearns@gmail.com>
" Latest Revision:  2007 November 5

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

runtime! syntax/xml.vim
unlet b:current_syntax

syn include @javascriptTop syntax/javascript.vim
unlet b:current_syntax

syn region xblJavascript
	\ matchgroup=xmlCdataStart start=+<!\[CDATA\[+
	\ matchgroup=xmlCdataEnd end=+]]>+
	\ contains=@javascriptTop keepend extend

let b:current_syntax = "xbl"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z2��C��vim80/syntax/yacc.vimnu�[���" Vim syntax file
" Language:	Yacc
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	15
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_YACC
"
" Options: {{{1
"   g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C

" ---------------------------------------------------------------------
" this version of syntax/yacc.vim requires 6.0 or later
if exists("b:current_syntax")
 syntax clear
endif

" ---------------------------------------------------------------------
"  Folding Support {{{1
if has("folding")
 com! -nargs=+ SynFold	<args> fold
else
 com! -nargs=+ SynFold	<args>
endif

" ---------------------------------------------------------------------
" Read the C syntax to start with {{{1
" Read the C/C++ syntax to start with
let s:Cpath= fnameescape(expand("<sfile>:p:h").(exists("g:yacc_uses_cpp")? "/cpp.vim" : "/c.vim"))
if !filereadable(s:Cpath)
 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
exe "syn include @yaccCode ".s:Cpath

" ---------------------------------------------------------------------
"  Yacc Clusters: {{{1
syn cluster yaccInitCluster	contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment,yaccDefines,yaccParseParam,yaccParseOption
syn cluster yaccRulesCluster	contains=yaccNonterminal,yaccString,yaccComment

" ---------------------------------------------------------------------
"  Yacc Sections: {{{1
SynFold syn	region	yaccInit	start='.'ms=s-1,rs=s-1	matchgroup=yaccSectionSep	end='^%%$'me=e-2,re=e-2	contains=@yaccInitCluster	nextgroup=yaccRules	skipwhite skipempty contained
SynFold syn	region	yaccInit2      start='\%^.'ms=s-1,rs=s-1	matchgroup=yaccSectionSep	end='^%%$'me=e-2,re=e-2	contains=@yaccInitCluster	nextgroup=yaccRules	skipwhite skipempty
SynFold syn	region	yaccHeader2	matchgroup=yaccSep	start="^\s*\zs%{"	end="^\s*%}"		contains=@yaccCode	nextgroup=yaccInit	skipwhite skipempty contained
SynFold syn	region	yaccHeader	matchgroup=yaccSep	start="^\s*\zs%{"	end="^\s*%}"		contains=@yaccCode	nextgroup=yaccInit	skipwhite skipempty
SynFold syn	region	yaccRules	matchgroup=yaccSectionSep	start='^%%$'		end='^%%$'me=e-2,re=e-2	contains=@yaccRulesCluster	nextgroup=yaccEndCode	skipwhite skipempty contained
SynFold syn	region	yaccEndCode	matchgroup=yaccSectionSep	start='^%%$'		end='\%$'		contains=@yaccCode	contained

" ---------------------------------------------------------------------
" Yacc Commands: {{{1
syn	match	yaccDefines	'^%define\s\+.*$'
syn	match	yaccParseParam	'%\(parse\|lex\)-param\>'		skipwhite	nextgroup=yaccParseParamStr
syn	match	yaccParseOption '%\%(api\.pure\|pure-parser\|locations\|error-verbose\)\>'
syn	region	yaccParseParamStr	contained matchgroup=Delimiter	start='{'	end='}'	contains=cStructure

syn	match	yaccDelim	"[:|]"	contained
syn	match	yaccOper	"@\d\+"	contained

syn	match	yaccKey	"^\s*%\(token\|type\|left\|right\|start\|ident\|nonassoc\)\>"	contained
syn	match	yaccKey	"\s%\(prec\|expect\)\>"	contained
syn	match	yaccKey	"\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"	contained
syn	keyword	yaccKeyActn	yyerrok yyclearin	contained

syn	match	yaccUnionStart	"^%union"	skipwhite skipnl nextgroup=yaccUnion	contained
SynFold syn	region	yaccUnion	matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccCode	contained
syn	match	yaccBrkt	"[<>]"	contained
syn	match	yaccType	"<[a-zA-Z_][a-zA-Z0-9_]*>"	contains=yaccBrkt	contained

SynFold syn	region	yaccNonterminal	start="^\s*\a\w*\ze\_s*\(/\*\_.\{-}\*/\)\=\_s*:"	matchgroup=yaccDelim end=";"	matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=yaccAction,yaccDelim,yaccString,yaccComment	contained
syn	region	yaccComment	start="/\*"	end="\*/"
syn	match	yaccString	"'[^']*'"	contained


" ---------------------------------------------------------------------
" I'd really like to highlight just the outer {}.  Any suggestions??? {{{1
syn	match	yaccCurlyError	"[{}]"
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
syn sync fromstart

" ---------------------------------------------------------------------
" Define the default highlighting. {{{1
if !exists("skip_yacc_syn_inits")
  hi def link yaccBrkt	yaccStmt
  hi def link yaccComment	Comment
  hi def link yaccCurly	Delimiter
  hi def link yaccCurlyError	Error
  hi def link yaccDefines	cDefine
  hi def link yaccDelim	Delimiter
  hi def link yaccKeyActn	Special
  hi def link yaccKey	yaccStmt
  hi def link yaccNonterminal	Function
  hi def link yaccOper	yaccStmt
  hi def link yaccParseOption	cDefine
  hi def link yaccParseParam	yaccParseOption
  hi def link yaccSectionSep	Todo
  hi def link yaccSep	Delimiter
  hi def link yaccStmt	Statement
  hi def link yaccString	String
  hi def link yaccType	Type
  hi def link yaccUnionStart	yaccKey
  hi def link yaccVar	Special
endif

" ---------------------------------------------------------------------
"  Cleanup: {{{1
delcommand SynFold
let b:current_syntax = "yacc"

" ---------------------------------------------------------------------
"  Modelines: {{{1
" vim: ts=15 fdm=marker
PK�j�ZR��OOvim80/syntax/clean.vimnu�[���" Vim syntax file
" Language:		Clean
" Author:		Pieter van Engelen <pietere@sci.kun.nl>
" Co-Author:	Arthur van Leeuwen <arthurvl@sci.kun.nl>
" Last Change:	2013 Oct 15 by Jurriën Stutterheim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Some Clean-keywords
syn keyword cleanConditional if case
syn keyword cleanLabel let! with where in of
syn keyword cleanSpecial Start
syn keyword cleanKeyword infixl infixr infix
syn keyword cleanBasicType Int Real Char Bool String
syn keyword cleanSpecialType World ProcId Void Files File
syn keyword cleanModuleSystem module implementation definition system
syn keyword cleanTypeClass class instance export

" Import highlighting
syn region cleanIncludeRegion start="^\s*\(from\|import\|\s\+\(as\|qualified\)\)" end="\n" contains=cleanIncludeKeyword keepend
syn keyword cleanIncludeKeyword contained from import as qualified

" To do some Denotation Highlighting
syn keyword cleanBoolDenot True False
syn region cleanStringDenot start=+"+ skip=+\(\(\\\\\)\+\|\\"\)+ end=+"+ display
syn match cleanCharDenot "'\(\\\\\|\\'\|[^'\\]\)\+'" display
syn match cleanIntegerDenot "[\~+-]\?\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>" display
syn match cleanRealDenot "[\~+-]\?\d\+\.\d\+\(E[\~+-]\?\d\+\)\?" display

" To highlight the use of lists, tuples and arrays
syn region cleanList start="\[" end="\]" contains=ALL
syn region cleanRecord start="{" end="}" contains=ALL
syn region cleanArray start="{:" end=":}" contains=ALL
syn match cleanTuple "([^=]*,[^=]*)" contains=ALL

" To do some Comment Highlighting
syn region cleanComment start="/\*"  end="\*/" contains=cleanComment,cleanTodo fold
syn region cleanComment start="//.*" end="$" display contains=cleanTodo
syn keyword cleanTodo TODO FIXME XXX contained

" Now for some useful type definition recognition
syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)\s*\(infix[lr]\=\)\=\s*\d\=\s*::.*->.*" contains=cleanSpecial,cleanBasicType,cleanSpecialType,cleanKeyword


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

 " Comments
 hi def link cleanComment      Comment
 " Constants and denotations
 hi def link cleanStringDenot  String
 hi def link cleanCharDenot    Character
 hi def link cleanIntegerDenot Number
 hi def link cleanBoolDenot    Boolean
 hi def link cleanRealDenot    Float
 " Identifiers
 " Statements
 hi def link cleanTypeClass    Keyword
 hi def link cleanConditional  Conditional
 hi def link cleanLabel		Label
 hi def link cleanKeyword      Keyword
 " Generic Preprocessing
 hi def link cleanIncludeKeyword      Include
 hi def link cleanModuleSystem PreProc
 " Type
 hi def link cleanBasicType    Type
 hi def link cleanSpecialType  Type
 hi def link cleanFuncTypeDef  Typedef
 " Special
 hi def link cleanSpecial      Special
 hi def link cleanList			Special
 hi def link cleanArray		Special
 hi def link cleanRecord		Special
 hi def link cleanTuple		Special
 " Error
 " Todo
 hi def link cleanTodo         Todo


let b:current_syntax = "clean"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=4
PK�j�Z�·�
�
vim80/syntax/usw2kagtlog.vimnu�[���" Vim syntax file
" Language:             Innovation Data Processing USW2KAgt.log file
" Maintainer:           Rob Owens <rowens@fdrinnovation.com>
" Latest Revision:      2014-04-01

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Date:
syn match usw2kagtlog_Date /\u\l\l \u\l\l\s\{1,2}\d\{1,2} \d\d:\d\d:\d\d \d\d\d\d/
" Msg Types:
syn match usw2kagtlog_MsgD /Msg #\(Agt\|PC\|Srv\)\d\{4,5}D/ nextgroup=usw2kagtlog_Process skipwhite
syn match usw2kagtlog_MsgE /Msg #\(Agt\|PC\|Srv\)\d\{4,5}E/ nextgroup=usw2kagtlog_Process skipwhite
syn match usw2kagtlog_MsgI /Msg #\(Agt\|PC\|Srv\)\d\{4,5}I/ nextgroup=usw2kagtlog_Process skipwhite
syn match usw2kagtlog_MsgW /Msg #\(Agt\|PC\|Srv\)\d\{4,5}W/ nextgroup=usw2kagtlog_Process skipwhite
" Processes:
syn region usw2kagtlog_Process start="(" end=")" contained
"syn region usw2kagtlog_Process start="Starting the processing for a \zs\"" end="\ze client request"
"syn region usw2kagtlog_Process start="Ending the processing for a \zs\"" end="\ze client request"
"syn region usw2kagtlog_Process start="Starting the processing for a \zs\"" end="\ze client\s\{0,1}\r\{0,1}\s\{1,9}request"
"syn region usw2kagtlog_Process start="Ending the processing for a \zs\"" end="\ze client\s\{0,1}\r\{0,1}\s\{1,9}request"
syn region usw2kagtlog_Process start="Starting the processing for a \zs\"" end="\ze client"
syn region usw2kagtlog_Process start="Ending the processing for a \zs\"" end="\ze client"
" IP Address:
syn match usw2kagtlog_IPaddr / \d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
" Profile:

syn match usw2kagtlog_Profile /Profile name \zs\"\S\{1,8}\"/
syn match usw2kagtlog_Profile / Profile: \zs\S\{1,8}/
syn match usw2kagtlog_Profile /  Profile: \zs\S\{1,8}\ze, /
syn match upstreamlog_Profile /Backup Profile: \zs\S\{1,8}\ze Version date/
syn match upstreamlog_Profile /Backup profile: \zs\S\{1,8}\ze  Version date/
syn match usw2kagtlog_Profile /Full of \zs\S\{1,8}\ze$/
syn match usw2kagtlog_Profile /Incr. of \zs\S\{1,8}\ze$/
syn match usw2kagtlog_Profile /profile name "\zs\S\{1,8}\ze"/
" Target:
syn region usw2kagtlog_Target start="Computer: \zs" end="\ze[\]\)]" 
syn region usw2kagtlog_Target start="Computer name \zs\"" end="\"\ze" 
" Agent Keywords:
syn keyword usw2kagtlog_Agentword opened closed

hi def link usw2kagtlog_Date		Underlined
hi def link usw2kagtlog_MsgD		Type
hi def link usw2kagtlog_MsgE		Error
hi def link usw2kagtlog_MsgW		Constant
hi def link usw2kagtlog_Process		Statement
hi def link usw2kagtlog_IPaddr		Identifier
hi def link usw2kagtlog_Profile		Identifier
hi def link usw2kagtlog_Target		Identifier
hi def link usw2kagtlog_Agentword	Special

let b:current_syntax = "usw2kagentlog"
PK�j�Z��(Rvim80/syntax/prolog.vimnu�[���" Vim syntax file
" Language:    PROLOG
" Maintainer:  Thomas Koehler <jean-luc@picard.franken.de>
"              Please be aware: I'm often slow to answer email due to a high
"              non-computer related workload (sometimes 4-8 weeks)
" Last Change: 2016 September 6
" URL:         http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim

" There are two sets of highlighting in here:
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
" Otherwise you get more highlighting.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Prolog is case sensitive.
syn case match

" Very simple highlighting for comments, clause heads and
" character codes.  It respects prolog strings and atoms.

syn region   prologCComment start=+/\*+ end=+\*/+
syn match    prologComment  +%.*+

syn keyword  prologKeyword  module meta_predicate multifile dynamic
syn match    prologCharCode +0'\\\=.+
syn region   prologString   start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region   prologAtom     start=+'+ skip=+\\\\\|\\'+ end=+'+
syn region   prologClause   matchgroup=prologClauseHead start=+^\s*[a-z]\w*+ matchgroup=Normal end=+\.\s\|\.$+ contains=ALLBUT,prologClause

if !exists("prolog_highlighting_clean")

  " some keywords
  " some common predicates are also highlighted as keywords
  " is there a better solution?
  syn keyword prologKeyword   abolish current_output  peek_code
  syn keyword prologKeyword   append  current_predicate       put_byte
  syn keyword prologKeyword   arg     current_prolog_flag     put_char
  syn keyword prologKeyword   asserta fail    put_code
  syn keyword prologKeyword   assertz findall read
  syn keyword prologKeyword   at_end_of_stream        float   read_term
  syn keyword prologKeyword   atom    flush_output    repeat
  syn keyword prologKeyword   atom_chars      functor retract
  syn keyword prologKeyword   atom_codes      get_byte        set_input
  syn keyword prologKeyword   atom_concat     get_char        set_output
  syn keyword prologKeyword   atom_length     get_code        set_prolog_flag
  syn keyword prologKeyword   atomic  halt    set_stream_position
  syn keyword prologKeyword   bagof   integer setof
  syn keyword prologKeyword   call    is      stream_property
  syn keyword prologKeyword   catch   nl      sub_atom
  syn keyword prologKeyword   char_code       nonvar  throw
  syn keyword prologKeyword   char_conversion number  true
  syn keyword prologKeyword   clause  number_chars    unify_with_occurs_check
  syn keyword prologKeyword   close   number_codes    var
  syn keyword prologKeyword   compound        once    write
  syn keyword prologKeyword   copy_term       op      write_canonical
  syn keyword prologKeyword   current_char_conversion open    write_term
  syn keyword prologKeyword   current_input   peek_byte       writeq
  syn keyword prologKeyword   current_op      peek_char

  syn match   prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|<\|>\|="
  syn match   prologAsIs     "===\|\\===\|<=\|=>"

  syn match   prologNumber            "\<[0123456789]*\>'\@!"
  syn match   prologCommentError      "\*/"
  syn match   prologSpecialCharacter  ";"
  syn match   prologSpecialCharacter  "!"
  syn match   prologSpecialCharacter  ":-"
  syn match   prologSpecialCharacter  "-->"
  syn match   prologQuestion          "?-.*\."  contains=prologNumber


endif

syn sync maxlines=50


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link prologComment          Comment
hi def link prologCComment         Comment
hi def link prologCharCode         Special

if exists ("prolog_highlighting_clean")

hi def link prologKeyword        Statement
hi def link prologClauseHead     Statement
hi def link prologClause Normal

else

hi def link prologKeyword        Keyword
hi def link prologClauseHead     Constant
hi def link prologClause Normal
hi def link prologQuestion       PreProc
hi def link prologSpecialCharacter Special
hi def link prologNumber         Number
hi def link prologAsIs           Normal
hi def link prologCommentError   Error
hi def link prologAtom           String
hi def link prologString         String
hi def link prologOperator       Operator

endif


let b:current_syntax = "prolog"

" vim: ts=8
PK�j�Z�u���vim80/syntax/calendar.vimnu�[���" Vim syntax file
" Language:             calendar(1) input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword calendarTodo          contained TODO FIXME XXX NOTE

syn region  calendarComment       start='/\*' end='\*/'
                                  \ contains=calendarTodo,@Spell

syn region  calendarCppString     start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl
                                  \ end=+"+ end='$' contains=calendarSpecial
syn match   calendarSpecial       display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
syn match   calendarSpecial       display contained "\\\(u\x\{4}\|U\x\{8}\)"

syn region  calendarPreCondit     start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>'
                                  \ skip='\\$' end='$'
                                  \ contains=calendarComment,calendarCppString
syn match   calendarPreCondit     display '^\s*#\s*\%(else\|endif\)\>'
syn region  calendarCppOut        start='^\s*#\s*if\s\+0\+' end='.\@=\|$'
                                  \ contains=calendarCppOut2
syn region  calendarCppOut2       contained start='0'
                                  \ end='^\s*#\s*\%(endif\|else\|elif\)\>'
                                  \ contains=calendarSpaceError,calendarCppSkip
syn region  calendarCppSkip       contained
                                  \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>'
                                  \ skip='\\$' end='^\s*#\s*endif\>'
                                  \ contains=calendarSpaceError,calendarCppSkip
syn region  calendarIncluded      display contained start=+"+ skip=+\\\\\|\\"+
                                  \ end=+"+
syn match   calendarIncluded      display contained '<[^>]*>'
syn match   calendarInclude       display '^\s*#\s*include\>\s*["<]'
                                  \ contains=calendarIncluded
syn cluster calendarPreProcGroup  contains=calendarPreCondit,calendarIncluded,
                                  \ calendarInclude,calendarDefine,
                                  \ calendarCppOut,calendarCppOut2,
                                  \ calendarCppSkip,calendarString,
                                  \ calendarSpecial,calendarTodo
syn region  calendarDefine        start='^\s*#\s*\%(define\|undef\)\>'
                                  \ skip='\\$' end='$'
                                  \ contains=ALLBUT,@calendarPreProcGroup
syn region  calendarPreProc       start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>'
                                  \ skip='\\$' end='$' keepend
                                  \ contains=ALLBUT,@calendarPreProcGroup

syn keyword calendarKeyword       CHARSET BODUN LANG
syn case ignore
syn keyword calendarKeyword       Easter Pashka
syn case match

syn case ignore
syn match   calendarNumber        display '\<\d\+\>'
syn keyword calendarMonth         Jan[uary] Feb[ruary] Mar[ch] Apr[il] May
                                  \ Jun[e] Jul[y] Aug[ust] Sep[tember]
                                  \ Oct[ober] Nov[ember] Dec[ember]
syn match   calendarMonth         display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
syn keyword calendarWeekday       Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
syn keyword calendarWeekday       Fri[day] Sat[urday] Sun[day]
syn match   calendarWeekday       display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.'
                                  \ nextgroup=calendarWeekdayMod
syn match   calendarWeekdayMod    display '[+-]\d\+\>'
syn case match

syn match   calendarTime          display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
syn match   calendarTime          display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'

syn match calendarVariable        '\*'

if exists("c_minlines")
  let b:c_minlines = c_minlines
else
  if !exists("c_no_if0")
    let b:c_minlines = 50       " #if 0 constructs can be long
  else
    let b:c_minlines = 15       " mostly for () constructs
  endif
endif
exec "syn sync ccomment calendarComment minlines=" . b:c_minlines

hi def link calendarTodo          Todo
hi def link calendarComment       Comment
hi def link calendarCppString     String
hi def link calendarSpecial       SpecialChar
hi def link calendarPreCondit     PreCondit
hi def link calendarCppOut        Comment
hi def link calendarCppOut2       calendarCppOut
hi def link calendarCppSkip       calendarCppOut
hi def link calendarIncluded      String
hi def link calendarInclude       Include
hi def link calendarDefine        Macro
hi def link calendarPreProc       PreProc
hi def link calendarKeyword       Keyword
hi def link calendarNumber        Number
hi def link calendarMonth         String
hi def link calendarWeekday       String
hi def link calendarWeekdayMod    Special
hi def link calendarTime          Number
hi def link calendarVariable      Identifier

let b:current_syntax = "calendar"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z;^elMMvim80/syntax/xsd.vimnu�[���" Vim syntax file
" Language:	XSD (XML Schema)
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Tue, 27 Apr 2004 14:54:59 CEST
" Filenames:	*.xsd
" $Id: xsd.vim,v 1.1 2004/06/13 18:20:48 vimboss Exp $

" REFERENCES:
"   [1] http://www.w3.org/TR/xmlschema-0
"

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

runtime syntax/xml.vim

syn cluster xmlTagHook add=xsdElement
syn case match

syn match xsdElement '\%(xsd:\)\@<=all'
syn match xsdElement '\%(xsd:\)\@<=annotation'
syn match xsdElement '\%(xsd:\)\@<=any'
syn match xsdElement '\%(xsd:\)\@<=anyAttribute'
syn match xsdElement '\%(xsd:\)\@<=appInfo'
syn match xsdElement '\%(xsd:\)\@<=attribute'
syn match xsdElement '\%(xsd:\)\@<=attributeGroup'
syn match xsdElement '\%(xsd:\)\@<=choice'
syn match xsdElement '\%(xsd:\)\@<=complexContent'
syn match xsdElement '\%(xsd:\)\@<=complexType'
syn match xsdElement '\%(xsd:\)\@<=documentation'
syn match xsdElement '\%(xsd:\)\@<=element'
syn match xsdElement '\%(xsd:\)\@<=enumeration'
syn match xsdElement '\%(xsd:\)\@<=extension'
syn match xsdElement '\%(xsd:\)\@<=field'
syn match xsdElement '\%(xsd:\)\@<=group'
syn match xsdElement '\%(xsd:\)\@<=import'
syn match xsdElement '\%(xsd:\)\@<=include'
syn match xsdElement '\%(xsd:\)\@<=key'
syn match xsdElement '\%(xsd:\)\@<=keyref'
syn match xsdElement '\%(xsd:\)\@<=length'
syn match xsdElement '\%(xsd:\)\@<=list'
syn match xsdElement '\%(xsd:\)\@<=maxInclusive'
syn match xsdElement '\%(xsd:\)\@<=maxLength'
syn match xsdElement '\%(xsd:\)\@<=minInclusive'
syn match xsdElement '\%(xsd:\)\@<=minLength'
syn match xsdElement '\%(xsd:\)\@<=pattern'
syn match xsdElement '\%(xsd:\)\@<=redefine'
syn match xsdElement '\%(xsd:\)\@<=restriction'
syn match xsdElement '\%(xsd:\)\@<=schema'
syn match xsdElement '\%(xsd:\)\@<=selector'
syn match xsdElement '\%(xsd:\)\@<=sequence'
syn match xsdElement '\%(xsd:\)\@<=simpleContent'
syn match xsdElement '\%(xsd:\)\@<=simpleType'
syn match xsdElement '\%(xsd:\)\@<=union'
syn match xsdElement '\%(xsd:\)\@<=unique'

hi def link xsdElement Statement

" vim: ts=8
PK�j�Z�ͦ�PPvim80/syntax/gitconfig.vimnu�[���" Vim syntax file
" Language:	git config file
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Filenames:	gitconfig, .gitconfig, *.git/config
" Last Change:	2010 May 21

if exists("b:current_syntax")
  finish
endif

setlocal iskeyword+=-
setlocal iskeyword-=_
syn case ignore
syn sync minlines=10

syn match   gitconfigComment	"[#;].*"
syn match   gitconfigSection	"\%(^\s*\)\@<=\[[a-z0-9.-]\+\]"
syn match   gitconfigSection	'\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]'
syn match   gitconfigVariable	 "\%(^\s*\)\@<=\a\k*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite
syn region  gitconfigAssignment  matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend
syn keyword gitconfigBoolean true false yes no contained
syn match   gitconfigNumber  "\d\+" contained
syn region  gitconfigString  matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError
syn match   gitconfigError  +\\.+	 contained
syn match   gitconfigEscape +\\[\\"ntb]+ contained
syn match   gitconfigEscape +\\$+	 contained

hi def link gitconfigComment		Comment
hi def link gitconfigSection		Keyword
hi def link gitconfigVariable		Identifier
hi def link gitconfigBoolean		Boolean
hi def link gitconfigNumber		Number
hi def link gitconfigString		String
hi def link gitconfigDelim		Delimiter
hi def link gitconfigEscape		Delimiter
hi def link gitconfigError		Error

let b:current_syntax = "gitconfig"
PK�j�Z����vim80/syntax/group.vimnu�[���" Vim syntax file
" Language:             group(5) user group file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2012-08-05

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   groupBegin          display '^' nextgroup=groupName

syn match   groupName           contained display '[^:]\+'
                                \ nextgroup=groupPasswordColon

syn match   groupPasswordColon  contained display ':'
                                \ nextgroup=groupPassword,groupShadow

syn match   groupPassword       contained display '[^:]*'
                                \ nextgroup=groupGIDColon

syn match   groupShadow         contained display '[x*]' nextgroup=groupGIDColon

syn match   groupGIDColon       contained display ':' nextgroup=groupGID

syn match   groupGID            contained display '\d*'
                                \ nextgroup=groupUserListColon

syn match   groupUserListColon  contained display ':' nextgroup=groupUserList

syn match   groupUserList       contained '[^,]\+'
                                \ nextgroup=groupUserListSep

syn match   groupUserListSep    contained display ',' nextgroup=groupUserList

hi def link groupDelimiter      Normal
hi def link groupName           Identifier
hi def link groupPasswordColon  groupDelimiter
hi def link groupPassword       Number
hi def link groupShadow         Special
hi def link groupGIDColon       groupDelimiter
hi def link groupGID            Number
hi def link groupUserListColon  groupDelimiter
hi def link groupUserList       Identifier
hi def link groupUserListSep    groupDelimiter

let b:current_syntax = "group"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�$����vim80/syntax/lace.vimnu�[���" Vim syntax file
" Language:		lace
" Maintainer:	Jocelyn Fiat <utilities@eiffel.com>
" Last Change:	2001 May 09

" Copyright Interactive Software Engineering, 1998
" You are free to use this file as you please, but
" if you make a change or improvement you must send
" it to the maintainer at <utilities@eiffel.com>


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" LACE is case insensitive, but the style guide lines are not.

if !exists("lace_case_insensitive")
	syn case match
else
	syn case ignore
endif

" A bunch of useful LACE keywords
syn keyword laceTopStruct		system root default option visible cluster
syn keyword laceTopStruct		external generate end
syn keyword laceOptionClause	collect assertion debug optimize trace
syn keyword laceOptionClause	profile inline precompiled multithreaded
syn keyword laceOptionClause	exception_trace dead_code_removal
syn keyword laceOptionClause	array_optimization
syn keyword laceOptionClause	inlining_size inlining
syn keyword laceOptionClause	console_application dynamic_runtime
syn keyword laceOptionClause	line_generation
syn keyword laceOptionMark		yes no all
syn keyword laceOptionMark		require ensure invariant loop check
syn keyword laceClusterProp		use include exclude
syn keyword laceAdaptClassName	adapt ignore rename as
syn keyword laceAdaptClassName	creation export visible
syn keyword laceExternal		include_path object makefile

" Operators
syn match   laceOperator		"\$"
syn match   laceBrackets		"[[\]]"
syn match   laceExport			"[{}]"

" Constants
syn keyword laceBool		true false
syn keyword laceBool		True False
syn region  laceString		start=+"+ skip=+%"+ end=+"+ contains=laceEscape,laceStringError
syn match   laceEscape		contained "%[^/]"
syn match   laceEscape		contained "%/\d\+/"
syn match   laceEscape		contained "^[ \t]*%"
syn match   laceEscape		contained "%[ \t]*$"
syn match   laceStringError	contained "%/[^0-9]"
syn match   laceStringError	contained "%/\d\+[^0-9/]"
syn match   laceStringError	"'\(%[^/]\|%/\d\+/\|[^'%]\)\+'"
syn match   laceCharacter	"'\(%[^/]\|%/\d\+/\|[^'%]\)'" contains=laceEscape
syn match   laceNumber		"-\=\<\d\+\(_\d\+\)*\>"
syn match   laceNumber		"\<[01]\+[bB]\>"
syn match   laceNumber		"-\=\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\)\=\([eE][-+]\=\d\+\(_\d\+\)*\)\="
syn match   laceNumber		"-\=\.\d\+\(_\d\+\)*\([eE][-+]\=\d\+\(_\d\+\)*\)\="
syn match   laceComment		"--.*" contains=laceTodo


syn case match

" Case sensitive stuff

syn keyword laceTodo		TODO XXX FIXME
syn match	laceClassName	"\<[A-Z][A-Z0-9_]*\>"
syn match	laceCluster		"[a-zA-Z][a-zA-Z0-9_]*\s*:"
syn match	laceCluster		"[a-zA-Z][a-zA-Z0-9_]*\s*(\s*[a-zA-Z][a-zA-Z0-9_]*\s*)\s*:"

" Catch mismatched parentheses
syn match laceParenError	")"
syn match laceBracketError	"\]"
syn region laceGeneric		transparent matchgroup=laceBrackets start="\[" end="\]" contains=ALLBUT,laceBracketError
syn region laceParen		transparent start="(" end=")" contains=ALLBUT,laceParenError

" Should suffice for even very long strings and expressions
syn sync lines=40

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link laceTopStruct			PreProc

hi def link laceOptionClause		Statement
hi def link laceOptionMark			Constant
hi def link laceClusterProp		Label
hi def link laceAdaptClassName		Label
hi def link laceExternal			Statement
hi def link laceCluster			ModeMsg

hi def link laceEscape				Special

hi def link laceBool				Boolean
hi def link laceString				String
hi def link laceCharacter			Character
hi def link laceClassName			Type
hi def link laceNumber				Number

hi def link laceOperator			Special
hi def link laceArray				Special
hi def link laceExport				Special
hi def link laceCreation			Special
hi def link laceBrackets			Special
hi def link laceConstraint			Special

hi def link laceComment			Comment

hi def link laceError				Error
hi def link laceStringError		Error
hi def link laceParenError			Error
hi def link laceBracketError		Error
hi def link laceTodo				Todo


let b:current_syntax = "lace"

" vim: ts=4
PK�j�Z��=��"�"vim80/syntax/sgml.vimnu�[���" Vim syntax file
" Language:	SGML
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Tue, 27 Apr 2004 15:05:21 CEST
" Filenames:	*.sgml,*.sgm
" $Id: sgml.vim,v 1.1 2004/06/13 17:52:57 vimboss Exp $

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:sgml_cpo_save = &cpo
set cpo&vim

syn case match

" mark illegal characters
syn match sgmlError "[<&]"


" unicode numbers:
" provide different highlithing for unicode characters
" inside strings and in plain text (character data).
"
" EXAMPLE:
"
" \u4e88
"
syn match   sgmlUnicodeNumberAttr    +\\u\x\{4}+ contained contains=sgmlUnicodeSpecifierAttr
syn match   sgmlUnicodeSpecifierAttr +\\u+ contained
syn match   sgmlUnicodeNumberData    +\\u\x\{4}+ contained contains=sgmlUnicodeSpecifierData
syn match   sgmlUnicodeSpecifierData +\\u+ contained


" strings inside character data or comments
"
syn region  sgmlString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=sgmlEntity,sgmlUnicodeNumberAttr display
syn region  sgmlString contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=sgmlEntity,sgmlUnicodeNumberAttr display

" punctuation (within attributes) e.g. <tag sgml:foo.attribute ...>
"						^   ^
syn match   sgmlAttribPunct +[:.]+ contained display


" no highlighting for sgmlEqual (sgmlEqual has no highlighting group)
syn match   sgmlEqual +=+


" attribute, everything before the '='
"
" PROVIDES: @sgmlAttribHook
"
" EXAMPLE:
"
" <tag foo.attribute = "value">
"      ^^^^^^^^^^^^^
"
syn match   sgmlAttrib
    \ +[^-'"<]\@<=\<[a-zA-Z0-9.:]\+\>\([^'">]\@=\|$\)+
    \ contained
    \ contains=sgmlAttribPunct,@sgmlAttribHook
    \ display


" UNQUOTED value (not including the '=' -- sgmlEqual)
"
" PROVIDES: @sgmlValueHook
"
" EXAMPLE:
"
" <tag foo.attribute = value>
"		       ^^^^^
"
syn match   sgmlValue
    \ +[^"' =/!?<>][^ =/!?<>]*+
    \ contained
    \ contains=sgmlEntity,sgmlUnicodeNumberAttr,@sgmlValueHook
    \ display


" QUOTED value (not including the '=' -- sgmlEqual)
"
" PROVIDES: @sgmlValueHook
"
" EXAMPLE:
"
" <tag foo.attribute = "value">
"		       ^^^^^^^
" <tag foo.attribute = 'value'>
"		       ^^^^^^^
"
syn region  sgmlValue contained start=+"+ skip=+\\\\\|\\"+ end=+"+
	    \ contains=sgmlEntity,sgmlUnicodeNumberAttr,@sgmlValueHook
syn region  sgmlValue contained start=+'+ skip=+\\\\\|\\'+ end=+'+
	    \ contains=sgmlEntity,sgmlUnicodeNumberAttr,@sgmlValueHook


" value, everything after (and including) the '='
" no highlighting!
"
" EXAMPLE:
"
" <tag foo.attribute = "value">
"		     ^^^^^^^^^
" <tag foo.attribute = value>
"		     ^^^^^^^
"
syn match   sgmlEqualValue
    \ +=\s*[^ =/!?<>]\++
    \ contained
    \ contains=sgmlEqual,sgmlString,sgmlValue
    \ display


" start tag
" use matchgroup=sgmlTag to skip over the leading '<'
" see also sgmlEmptyTag below.
"
" PROVIDES: @sgmlTagHook
"
syn region   sgmlTag
    \ matchgroup=sgmlTag start=+<[^ /!?"']\@=+
    \ matchgroup=sgmlTag end=+>+
    \ contained
    \ contains=sgmlError,sgmlAttrib,sgmlEqualValue,@sgmlTagHook


" tag content for empty tags. This is the same as sgmlTag
" above, except the `matchgroup=sgmlEndTag for highlighting
" the end '/>' differently.
"
" PROVIDES: @sgmlTagHook
"
syn region   sgmlEmptyTag
    \ matchgroup=sgmlTag start=+<[^ /!?"']\@=+
    \ matchgroup=sgmlEndTag end=+/>+
    \ contained
    \ contains=sgmlError,sgmlAttrib,sgmlEqualValue,@sgmlTagHook


" end tag
" highlight everything but not the trailing '>' which
" was already highlighted by the containing sgmlRegion.
"
" PROVIDES: @sgmlTagHook
" (should we provide a separate @sgmlEndTagHook ?)
"
syn match   sgmlEndTag
    \ +</[^ /!?>"']\+>+
    \ contained
    \ contains=@sgmlTagHook


" [-- SGML SPECIFIC --]

" SGML specific
" tag content for abbreviated regions
"
" PROVIDES: @sgmlTagHook
"
syn region   sgmlAbbrTag
    \ matchgroup=sgmlTag start=+<[^ /!?"']\@=+
    \ matchgroup=sgmlTag end=+/+
    \ contained
    \ contains=sgmlError,sgmlAttrib,sgmlEqualValue,@sgmlTagHook


" SGML specific
" just highlight the trailing '/'
syn match   sgmlAbbrEndTag +/+


" SGML specific
" abbreviated regions
"
" No highlighing, highlighing is done by contained elements.
"
" PROVIDES: @sgmlRegionHook
"
" EXAMPLE:
"
" <bold/Im Anfang war das Wort/
"
syn match   sgmlAbbrRegion
    \ +<[^/!?>"']\+/\_[^/]\+/+
    \ contains=sgmlAbbrTag,sgmlAbbrEndTag,sgmlCdata,sgmlComment,sgmlEntity,sgmlUnicodeNumberData,@sgmlRegionHook

" [-- END OF SGML SPECIFIC --]


" real (non-empty) elements. We cannot do syntax folding
" as in xml, because end tags may be optional in sgml depending
" on the dtd.
" No highlighing, highlighing is done by contained elements.
"
" PROVIDES: @sgmlRegionHook
"
" EXAMPLE:
"
" <tag id="whoops">
"   <!-- comment -->
"   <another.tag></another.tag>
"   <another.tag/>
"   some data
" </tag>
"
" SGML specific:
" compared to xmlRegion:
"   - removed folding
"   - added a single '/'in the start pattern
"
syn region   sgmlRegion
    \ start=+<\z([^ /!?>"']\+\)\(\(\_[^/>]*[^/!?]>\)\|>\)+
    \ end=+</\z1>+
    \ contains=sgmlTag,sgmlEndTag,sgmlCdata,@sgmlRegionCluster,sgmlComment,sgmlEntity,sgmlUnicodeNumberData,@sgmlRegionHook
    \ keepend
    \ extend


" empty tags. Just a container, no highlighting.
" Compare this with sgmlTag.
"
" EXAMPLE:
"
" <tag id="lola"/>
"
" TODO use sgmlEmptyTag intead of sgmlTag
syn match    sgmlEmptyRegion
    \ +<[^ /!?>"']\(\_[^"'<>]\|"\_[^"]*"\|'\_[^']*'\)*/>+
    \ contains=sgmlEmptyTag


" cluster which contains the above two elements
syn cluster sgmlRegionCluster contains=sgmlRegion,sgmlEmptyRegion,sgmlAbbrRegion


" &entities; compare with dtd
syn match   sgmlEntity		       "&[^; \t]*;" contains=sgmlEntityPunct
syn match   sgmlEntityPunct  contained "[&.;]"


" The real comments (this implements the comments as defined by sgml,
" but not all sgml pages actually conform to it. Errors are flagged.
syn region  sgmlComment                start=+<!+        end=+>+ contains=sgmlCommentPart,sgmlString,sgmlCommentError,sgmlTodo
syn keyword sgmlTodo         contained TODO FIXME XXX display
syn match   sgmlCommentError contained "[^><!]"
syn region  sgmlCommentPart  contained start=+--+        end=+--+


" CData sections
"
" PROVIDES: @sgmlCdataHook
"
syn region    sgmlCdata
    \ start=+<!\[CDATA\[+
    \ end=+]]>+
    \ contains=sgmlCdataStart,sgmlCdataEnd,@sgmlCdataHook
    \ keepend
    \ extend
" using the following line instead leads to corrupt folding at CDATA regions
" syn match    sgmlCdata      +<!\[CDATA\[\_.\{-}]]>+  contains=sgmlCdataStart,sgmlCdataEnd,@sgmlCdataHook
syn match    sgmlCdataStart +<!\[CDATA\[+  contained contains=sgmlCdataCdata
syn keyword  sgmlCdataCdata CDATA          contained
syn match    sgmlCdataEnd   +]]>+          contained


" Processing instructions
" This allows "?>" inside strings -- good idea?
syn region  sgmlProcessing matchgroup=sgmlProcessingDelim start="<?" end="?>" contains=sgmlAttrib,sgmlEqualValue


" DTD -- we use dtd.vim here
syn region  sgmlDocType matchgroup=sgmlDocTypeDecl start="\c<!DOCTYPE"he=s+2,rs=s+2 end=">" contains=sgmlDocTypeKeyword,sgmlInlineDTD,sgmlString
syn keyword sgmlDocTypeKeyword contained DOCTYPE PUBLIC SYSTEM
syn region  sgmlInlineDTD contained start="\[" end="]" contains=@sgmlDTD
syn include @sgmlDTD <sfile>:p:h/dtd.vim


" synchronizing
" TODO !!! to be improved !!!

syn sync match sgmlSyncDT grouphere  sgmlDocType +\_.\(<!DOCTYPE\)\@=+
" syn sync match sgmlSyncDT groupthere  NONE       +]>+

syn sync match sgmlSync grouphere   sgmlRegion  +\_.\(<[^ /!?>"']\+\)\@=+
" syn sync match sgmlSync grouphere  sgmlRegion "<[^ /!?>"']*>"
syn sync match sgmlSync groupthere  sgmlRegion  +</[^ /!?>"']\+>+

syn sync minlines=100


" The default highlighting.
hi def link sgmlTodo			Todo
hi def link sgmlTag			Function
hi def link sgmlEndTag			Identifier
" SGML specifig
hi def link sgmlAbbrEndTag		Identifier
hi def link sgmlEmptyTag		Function
hi def link sgmlEntity			Statement
hi def link sgmlEntityPunct		Type

hi def link sgmlAttribPunct		Comment
hi def link sgmlAttrib			Type

hi def link sgmlValue			String
hi def link sgmlString			String
hi def link sgmlComment			Comment
hi def link sgmlCommentPart		Comment
hi def link sgmlCommentError		Error
hi def link sgmlError			Error

hi def link sgmlProcessingDelim		Comment
hi def link sgmlProcessing		Type

hi def link sgmlCdata			String
hi def link sgmlCdataCdata		Statement
hi def link sgmlCdataStart		Type
hi def link sgmlCdataEnd		Type

hi def link sgmlDocTypeDecl		Function
hi def link sgmlDocTypeKeyword		Statement
hi def link sgmlInlineDTD		Function
hi def link sgmlUnicodeNumberAttr	Number
hi def link sgmlUnicodeSpecifierAttr	SpecialChar
hi def link sgmlUnicodeNumberData	Number
hi def link sgmlUnicodeSpecifierData	SpecialChar

let b:current_syntax = "sgml"

let &cpo = s:sgml_cpo_save
unlet s:sgml_cpo_save

" vim: ts=8
PK�j�Z ��b��vim80/syntax/sdl.vimnu�[���" Vim syntax file
" Language:	SDL
" Maintainer:	Michael Piefel <entwurf@piefel.de>
" Last Change:	2 May 2001

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

if !exists("sdl_2000")
    syntax case ignore
endif

" A bunch of useful SDL keywords
syn keyword sdlStatement	task else nextstate
syn keyword sdlStatement	in out with from interface
syn keyword sdlStatement	to via env and use
syn keyword sdlStatement	process procedure block system service type
syn keyword sdlStatement	endprocess endprocedure endblock endsystem
syn keyword sdlStatement	package endpackage connection endconnection
syn keyword sdlStatement	channel endchannel connect
syn keyword sdlStatement	synonym dcl signal gate timer signallist signalset
syn keyword sdlStatement	create output set reset call
syn keyword sdlStatement	operators literals
syn keyword sdlStatement	active alternative any as atleast constants
syn keyword sdlStatement	default endalternative endmacro endoperator
syn keyword sdlStatement	endselect endsubstructure external
syn keyword sdlStatement	if then fi for import macro macrodefinition
syn keyword sdlStatement	macroid mod nameclass nodelay not operator or
syn keyword sdlStatement	parent provided referenced rem
syn keyword sdlStatement	select spelling substructure xor
syn keyword sdlNewState		state endstate
syn keyword sdlInput		input start stop return none save priority
syn keyword sdlConditional	decision enddecision join
syn keyword sdlVirtual		virtual redefined finalized adding inherits
syn keyword sdlExported		remote exported export

if !exists("sdl_no_96")
    syn keyword sdlStatement	all axioms constant endgenerator endrefinement endservice
    syn keyword sdlStatement	error fpar generator literal map noequality ordering
    syn keyword sdlStatement	refinement returns revealed reverse service signalroute
    syn keyword sdlStatement	view viewed
    syn keyword sdlExported	imported
endif

if exists("sdl_2000")
    syn keyword sdlStatement	abstract aggregation association break choice composition
    syn keyword sdlStatement	continue endmethod handle method
    syn keyword sdlStatement	ordered private protected public
    syn keyword sdlException	exceptionhandler endexceptionhandler onexception
    syn keyword sdlException	catch new raise
    " The same in uppercase
    syn keyword sdlStatement	TASK ELSE NEXTSTATE
    syn keyword sdlStatement	IN OUT WITH FROM INTERFACE
    syn keyword sdlStatement	TO VIA ENV AND USE
    syn keyword sdlStatement	PROCESS PROCEDURE BLOCK SYSTEM SERVICE TYPE
    syn keyword sdlStatement	ENDPROCESS ENDPROCEDURE ENDBLOCK ENDSYSTEM
    syn keyword sdlStatement	PACKAGE ENDPACKAGE CONNECTION ENDCONNECTION
    syn keyword sdlStatement	CHANNEL ENDCHANNEL CONNECT
    syn keyword sdlStatement	SYNONYM DCL SIGNAL GATE TIMER SIGNALLIST SIGNALSET
    syn keyword sdlStatement	CREATE OUTPUT SET RESET CALL
    syn keyword sdlStatement	OPERATORS LITERALS
    syn keyword sdlStatement	ACTIVE ALTERNATIVE ANY AS ATLEAST CONSTANTS
    syn keyword sdlStatement	DEFAULT ENDALTERNATIVE ENDMACRO ENDOPERATOR
    syn keyword sdlStatement	ENDSELECT ENDSUBSTRUCTURE EXTERNAL
    syn keyword sdlStatement	IF THEN FI FOR IMPORT MACRO MACRODEFINITION
    syn keyword sdlStatement	MACROID MOD NAMECLASS NODELAY NOT OPERATOR OR
    syn keyword sdlStatement	PARENT PROVIDED REFERENCED REM
    syn keyword sdlStatement	SELECT SPELLING SUBSTRUCTURE XOR
    syn keyword sdlNewState	STATE ENDSTATE
    syn keyword sdlInput	INPUT START STOP RETURN NONE SAVE PRIORITY
    syn keyword sdlConditional	DECISION ENDDECISION JOIN
    syn keyword sdlVirtual	VIRTUAL REDEFINED FINALIZED ADDING INHERITS
    syn keyword sdlExported	REMOTE EXPORTED EXPORT

    syn keyword sdlStatement	ABSTRACT AGGREGATION ASSOCIATION BREAK CHOICE COMPOSITION
    syn keyword sdlStatement	CONTINUE ENDMETHOD ENDOBJECT ENDVALUE HANDLE METHOD OBJECT
    syn keyword sdlStatement	ORDERED PRIVATE PROTECTED PUBLIC
    syn keyword sdlException	EXCEPTIONHANDLER ENDEXCEPTIONHANDLER ONEXCEPTION
    syn keyword sdlException	CATCH NEW RAISE
endif

" String and Character contstants
" Highlight special characters (those which have a backslash) differently
syn match   sdlSpecial		contained "\\\d\d\d\|\\."
syn region  sdlString		start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=cSpecial
syn region  sdlString		start=+'+  skip=+''+  end=+'+

" No, this doesn't happen, I just wanted to scare you. SDL really allows all
" these characters for identifiers; fortunately, keywords manage without them.
" set iskeyword=@,48-57,_,192-214,216-246,248-255,-

syn region sdlComment		start="/\*"  end="\*/"
syn region sdlComment		start="comment"  end=";"
syn region sdlComment		start="--" end="--\|$"
syn match  sdlCommentError	"\*/"

syn keyword sdlOperator		present
syn keyword sdlType		integer real natural duration pid boolean time
syn keyword sdlType		character charstring ia5string
syn keyword sdlType		self now sender offspring
syn keyword sdlStructure	asntype endasntype syntype endsyntype struct

if !exists("sdl_no_96")
    syn keyword sdlStructure	newtype endnewtype
endif

if exists("sdl_2000")
    syn keyword sdlStructure	object endobject value endvalue
    " The same in uppercase
    syn keyword sdlStructure	OBJECT ENDOBJECT VALUE ENDVALUE
    syn keyword sdlOperator	PRESENT
    syn keyword sdlType		INTEGER NATURAL DURATION PID BOOLEAN TIME
    syn keyword sdlType		CHARSTRING IA5STRING
    syn keyword sdlType		SELF NOW SENDER OFFSPRING
    syn keyword sdlStructure	ASNTYPE ENDASNTYPE SYNTYPE ENDSYNTYPE STRUCT
endif

" ASN.1 in SDL
syn case match
syn keyword sdlType		SET OF BOOLEAN INTEGER REAL BIT OCTET
syn keyword sdlType		SEQUENCE CHOICE
syn keyword sdlType		STRING OBJECT IDENTIFIER NULL

syn sync ccomment sdlComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
command -nargs=+ Hi     hi def <args>

hi def link sdlException	Label
hi def link sdlConditional	sdlStatement
hi def link sdlVirtual		sdlStatement
hi def link sdlExported		sdlFlag
hi def link sdlCommentError	sdlError
hi def link sdlOperator		Operator
hi def link sdlStructure	sdlType
Hi	    sdlStatement	term=bold ctermfg=4 guifg=Blue
Hi	    sdlFlag		term=bold ctermfg=4 guifg=Blue gui=italic
Hi	    sdlNewState		term=italic ctermfg=2 guifg=Magenta gui=underline
Hi	    sdlInput		term=bold guifg=Red
hi def link sdlType		Type
hi def link sdlString		String
hi def link sdlComment		Comment
hi def link sdlSpecial		Special
hi def link sdlError		Error

delcommand Hi

let b:current_syntax = "sdl"

" vim: ts=8
PK�j�Zq.��11vim80/syntax/rng.vimnu�[���" Vim syntax file
" Language:    RELAX NG
" Maintainer:  Jaromir Hradilek <jhradilek@gmail.com>
" URL:         https://github.com/jhradilek/vim-rng
" Last Change: 25 March 2013
" Description: A syntax file for RELAX NG, a schema language for XML

if exists('b:current_syntax')
  finish
endif

do Syntax xml
syn spell toplevel
syn cluster xmlTagHook add=rngTagName
syn case match

syn keyword rngTagName anyName attribute choice data define div contained
syn keyword rngTagName element empty except externalRef grammar contained
syn keyword rngTagName group include interleave list mixed name contained
syn keyword rngTagName notAllowed nsName oneOrMore optional param contained
syn keyword rngTagName parentRef ref start text value zeroOrMore contained

hi def link rngTagName Statement

let b:current_syntax = 'rng'
PK�j�Z��<��vim80/syntax/resolv.vimnu�[���" Vim syntax file
" Language: resolver configuration file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim
" Last Change: 2013 May 21
" Version: 1.0
"
" Credits:
"   David Necas (Yeti) <yeti@physics.muni.cz>
"   Stefano Zacchiroli <zack@debian.org>

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

" Errors, comments and operators
syn match resolvError /./
syn match resolvComment /\s*[#;].*$/
syn match resolvOperator /[\/:]/ contained

" IP
syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial
syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained

" General
syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster
syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster
syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/

" Particular
syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/
syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster

" Identifiers
syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite
syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite
syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite
syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite
syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite
syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite

" Options
syn match resolvOption /\<\%(debug\|no_tld_query\|rotate\|no-check-names\|inet6\)\>/ contained nextgroup=resolvOption skipwhite
syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite

" Additional errors
syn match resolvError /^search .\{257,}/


hi def link resolvIP Number
hi def link resolvIPNetmask Number
hi def link resolvHostname String
hi def link resolvOption String

hi def link resolvIPNameserver Number
hi def link resolvHostnameSearch String
hi def link resolvIPNetmaskSortList Number

hi def link resolvNameServer Identifier
hi def link resolvLwserver Identifier
hi def link resolvDomain Identifier
hi def link resolvSearch Identifier
hi def link resolvSortList Identifier
hi def link resolvOptions Identifier

hi def link resolvComment Comment
hi def link resolvOperator Operator
hi def link resolvError Error
hi def link resolvIPError Error
hi def link resolvIPSpecial Special


let b:current_syntax = "resolv"

" vim: ts=8 ft=vim
PK�j�ZIO@!@!vim80/syntax/vmasm.vimnu�[���" Vim syntax file
" Language:	(VAX) Macro Assembly
" Maintainer:	Tom Uijldert <tom.uijldert [at] cmg.nl>
" Last change:	2004 May 16
"
" This is incomplete. Feel free to contribute...
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Partial list of register symbols
syn keyword vmasmReg	r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
syn keyword vmasmReg	ap fp sp pc iv dv

" All matches - order is important!
syn keyword vmasmOpcode adawi adwc ashl ashq bitb bitw bitl decb decw decl
syn keyword vmasmOpcode ediv emul incb incw incl mcomb mcomw mcoml
syn keyword vmasmOpcode movzbw movzbl movzwl popl pushl rotl sbwc
syn keyword vmasmOpcode cmpv cmpzv cmpc3 cmpc5 locc matchc movc3 movc5
syn keyword vmasmOpcode movtc movtuc scanc skpc spanc crc extv extzv
syn keyword vmasmOpcode ffc ffs insv aobleq aoblss bbc bbs bbcci bbssi
syn keyword vmasmOpcode blbc blbs brb brw bsbb bsbw caseb casew casel
syn keyword vmasmOpcode jmp jsb rsb sobgeq sobgtr callg calls ret
syn keyword vmasmOpcode bicpsw bispsw bpt halt index movpsl nop popr pushr xfc
syn keyword vmasmOpcode insqhi insqti insque remqhi remqti remque
syn keyword vmasmOpcode addp4 addp6 ashp cmpp3 cmpp4 cvtpl cvtlp cvtps cvtpt
syn keyword vmasmOpcode cvtsp cvttp divp movp mulp subp4 subp6 editpc
syn keyword vmasmOpcode prober probew rei ldpctx svpctx mfpr mtpr bugw bugl
syn keyword vmasmOpcode vldl vldq vgathl vgathq vstl vstq vscatl vscatq
syn keyword vmasmOpcode vvcvt iota mfvp mtvp vsync
syn keyword vmasmOpcode beql[u] bgtr[u] blss[u]
syn match vmasmOpcode "\<add[bwlfdgh][23]\>"
syn match vmasmOpcode "\<bi[cs][bwl][23]\>"
syn match vmasmOpcode "\<clr[bwlqofdgh]\>"
syn match vmasmOpcode "\<cmp[bwlfdgh]\>"
syn match vmasmOpcode "\<cvt[bwlfdgh][bwlfdgh]\>"
syn match vmasmOpcode "\<cvtr[fdgh]l\>"
syn match vmasmOpcode "\<div[bwlfdgh][23]\>"
syn match vmasmOpcode "\<emod[fdgh]\>"
syn match vmasmOpcode "\<mneg[bwlfdgh]\>"
syn match vmasmOpcode "\<mov[bwlqofdgh]\>"
syn match vmasmOpcode "\<mul[bwlfdgh][23]\>"
syn match vmasmOpcode "\<poly[fdgh]\>"
syn match vmasmOpcode "\<sub[bwlfdgh][23]\>"
syn match vmasmOpcode "\<tst[bwlfdgh]\>"
syn match vmasmOpcode "\<xor[bwl][23]\>"
syn match vmasmOpcode "\<mova[bwlfqdgho]\>"
syn match vmasmOpcode "\<push[bwlfqdgho]\>"
syn match vmasmOpcode "\<acb[bwlfgdh]\>"
syn match vmasmOpcode "\<b[lng]equ\=\>"
syn match vmasmOpcode "\<b[cv][cs]\>"
syn match vmasmOpcode "\<bb[cs][cs]\>"
syn match vmasmOpcode "\<v[vs]add[lfdg]\>"
syn match vmasmOpcode "\<v[vs]cmp[lfdg]\>"
syn match vmasmOpcode "\<v[vs]div[fdg]\>"
syn match vmasmOpcode "\<v[vs]mul[lfdg]\>"
syn match vmasmOpcode "\<v[vs]sub[lfdg]\>"
syn match vmasmOpcode "\<v[vs]bi[cs]l\>"
syn match vmasmOpcode "\<v[vs]xorl\>"
syn match vmasmOpcode "\<v[vs]merge\>"
syn match vmasmOpcode "\<v[vs]s[rl]ll\>"

" Various number formats
syn match vmasmdecNumber	"[+-]\=[0-9]\+\>"
syn match vmasmdecNumber	"^d[0-9]\+\>"
syn match vmasmhexNumber	"^x[0-9a-f]\+\>"
syn match vmasmoctNumber	"^o[0-7]\+\>"
syn match vmasmbinNumber	"^b[01]\+\>"
syn match vmasmfloatNumber	"[-+]\=[0-9]\+E[-+]\=[0-9]\+"
syn match vmasmfloatNumber	"[-+]\=[0-9]\+\.[0-9]*\(E[-+]\=[0-9]\+\)\="

" Valid labels
syn match vmasmLabel		"^[a-z_$.][a-z0-9_$.]\{,30}::\="
syn match vmasmLabel		"\<[0-9]\{1,5}\$:\="          " Local label

" Character string constants
"       Too complex really. Could be "<...>" but those could also be
"       expressions. Don't know how to handle chosen delimiters
"       ("^<sep>...<sep>")
" syn region vmasmString		start="<" end=">" oneline

" Operators
syn match vmasmOperator	"[-+*/@&!\\]"
syn match vmasmOperator	"="
syn match vmasmOperator	"=="		" Global assignment
syn match vmasmOperator	"%length(.*)"
syn match vmasmOperator	"%locate(.*)"
syn match vmasmOperator	"%extract(.*)"
syn match vmasmOperator	"^[amfc]"
syn match vmasmOperator	"[bwlg]^"

syn match vmasmOperator	"\<\(not_\)\=equal\>"
syn match vmasmOperator	"\<less_equal\>"
syn match vmasmOperator	"\<greater\(_equal\)\=\>"
syn match vmasmOperator	"\<less_than\>"
syn match vmasmOperator	"\<\(not_\)\=defined\>"
syn match vmasmOperator	"\<\(not_\)\=blank\>"
syn match vmasmOperator	"\<identical\>"
syn match vmasmOperator	"\<different\>"
syn match vmasmOperator	"\<eq\>"
syn match vmasmOperator	"\<[gl]t\>"
syn match vmasmOperator	"\<n\=df\>"
syn match vmasmOperator	"\<n\=b\>"
syn match vmasmOperator	"\<idn\>"
syn match vmasmOperator	"\<[nlg]e\>"
syn match vmasmOperator	"\<dif\>"

" Special items for comments
syn keyword vmasmTodo		contained todo

" Comments
syn match vmasmComment		";.*" contains=vmasmTodo

" Include
syn match vmasmInclude		"\.library\>"

" Macro definition
syn match vmasmMacro		"\.macro\>"
syn match vmasmMacro		"\.mexit\>"
syn match vmasmMacro		"\.endm\>"
syn match vmasmMacro		"\.mcall\>"
syn match vmasmMacro		"\.mdelete\>"

" Conditional assembly
syn match vmasmPreCond		"\.iff\=\>"
syn match vmasmPreCond		"\.if_false\>"
syn match vmasmPreCond		"\.iftf\=\>"
syn match vmasmPreCond		"\.if_true\(_false\)\=\>"
syn match vmasmPreCond		"\.iif\>"

" Loop control
syn match vmasmRepeat		"\.irpc\=\>"
syn match vmasmRepeat		"\.repeat\>"
syn match vmasmRepeat		"\.rept\>"
syn match vmasmRepeat		"\.endr\>"

" Directives
syn match vmasmDirective	"\.address\>"
syn match vmasmDirective	"\.align\>"
syn match vmasmDirective	"\.asci[cdiz]\>"
syn match vmasmDirective	"\.blk[abdfghloqw]\>"
syn match vmasmDirective	"\.\(signed_\)\=byte\>"
syn match vmasmDirective	"\.\(no\)\=cross\>"
syn match vmasmDirective	"\.debug\>"
syn match vmasmDirective	"\.default displacement\>"
syn match vmasmDirective	"\.[dfgh]_floating\>"
syn match vmasmDirective	"\.disable\>"
syn match vmasmDirective	"\.double\>"
syn match vmasmDirective	"\.dsabl\>"
syn match vmasmDirective	"\.enable\=\>"
syn match vmasmDirective	"\.endc\=\>"
syn match vmasmDirective	"\.entry\>"
syn match vmasmDirective	"\.error\>"
syn match vmasmDirective	"\.even\>"
syn match vmasmDirective	"\.external\>"
syn match vmasmDirective	"\.extrn\>"
syn match vmasmDirective	"\.float\>"
syn match vmasmDirective	"\.globa\=l\>"
syn match vmasmDirective	"\.ident\>"
syn match vmasmDirective	"\.link\>"
syn match vmasmDirective	"\.list\>"
syn match vmasmDirective	"\.long\>"
syn match vmasmDirective	"\.mask\>"
syn match vmasmDirective	"\.narg\>"
syn match vmasmDirective	"\.nchr\>"
syn match vmasmDirective	"\.nlist\>"
syn match vmasmDirective	"\.ntype\>"
syn match vmasmDirective	"\.octa\>"
syn match vmasmDirective	"\.odd\>"
syn match vmasmDirective	"\.opdef\>"
syn match vmasmDirective	"\.packed\>"
syn match vmasmDirective	"\.page\>"
syn match vmasmDirective	"\.print\>"
syn match vmasmDirective	"\.psect\>"
syn match vmasmDirective	"\.quad\>"
syn match vmasmDirective	"\.ref[1248]\>"
syn match vmasmDirective	"\.ref16\>"
syn match vmasmDirective	"\.restore\(_psect\)\=\>"
syn match vmasmDirective	"\.save\(_psect\)\=\>"
syn match vmasmDirective	"\.sbttl\>"
syn match vmasmDirective	"\.\(no\)\=show\>"
syn match vmasmDirective	"\.\(sub\)\=title\>"
syn match vmasmDirective	"\.transfer\>"
syn match vmasmDirective	"\.warn\>"
syn match vmasmDirective	"\.weak\>"
syn match vmasmDirective	"\.\(signed_\)\=word\>"

syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
" Comment Constant Error Identifier PreProc Special Statement Todo Type
"
" Constant		Boolean Character Number String
" Identifier		Function
" PreProc		Define Include Macro PreCondit
" Special		Debug Delimiter SpecialChar SpecialComment Tag
" Statement		Conditional Exception Keyword Label Operator Repeat
" Type		StorageClass Structure Typedef

hi def link vmasmComment		Comment
hi def link vmasmTodo		Todo

hi def link vmasmhexNumber		Number		" Constant
hi def link vmasmoctNumber		Number		" Constant
hi def link vmasmbinNumber		Number		" Constant
hi def link vmasmdecNumber		Number		" Constant
hi def link vmasmfloatNumber	Number		" Constant

"  hi def link vmasmString		String		" Constant

hi def link vmasmReg		Identifier
hi def link vmasmOperator		Identifier

hi def link vmasmInclude		Include		" PreProc
hi def link vmasmMacro		Macro		" PreProc
" hi def link vmasmMacroParam	Keyword		" Statement

hi def link vmasmDirective		Special
hi def link vmasmPreCond		Special


hi def link vmasmOpcode		Statement
hi def link vmasmCond		Conditional	" Statement
hi def link vmasmRepeat		Repeat		" Statement

hi def link vmasmLabel		Type

let b:current_syntax = "vmasm"

" vim: ts=8 sw=2
PK�j�Z;T*�D�Dvim80/syntax/mysql.vimnu�[���" Vim syntax file
" Language:     mysql
" Maintainer:   Kenneth J. Pronovici <pronovic@ieee.org>
" Last Change:  $LastChangedDate: 2016-04-11 10:31:04 -0500 (Mon, 11 Apr 2016) $
" Filenames:    *.mysql
" URL:          ftp://cedar-solutions.com/software/mysql.vim
" Note:         The definitions below are taken from the mysql user manual as of April 2002, for version 3.23

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Always ignore case
syn case ignore

" General keywords which don't fall into other categories
syn keyword mysqlKeyword         action add after aggregate all alter as asc auto_increment avg_row_length
syn keyword mysqlKeyword         both by
syn keyword mysqlKeyword         cascade change character check checksum column columns comment constraint create cross
syn keyword mysqlKeyword         current_date current_time current_timestamp
syn keyword mysqlKeyword         data database databases day day_hour day_minute day_second
syn keyword mysqlKeyword         default delayed delay_key_write delete desc describe distinct distinctrow drop
syn keyword mysqlKeyword         enclosed escape escaped explain
syn keyword mysqlKeyword         fields file first flush for foreign from full function
syn keyword mysqlKeyword         global grant grants group
syn keyword mysqlKeyword         having heap high_priority hosts hour hour_minute hour_second
syn keyword mysqlKeyword         identified ignore index infile inner insert insert_id into isam
syn keyword mysqlKeyword         join
syn keyword mysqlKeyword         key keys kill last_insert_id leading left limit lines load local lock logs long
syn keyword mysqlKeyword         low_priority
syn keyword mysqlKeyword         match max_rows middleint min_rows minute minute_second modify month myisam
syn keyword mysqlKeyword         natural no
syn keyword mysqlKeyword         on optimize option optionally order outer outfile
syn keyword mysqlKeyword         pack_keys partial password primary privileges procedure process processlist
syn keyword mysqlKeyword         read references reload rename replace restrict returns revoke right row rows
syn keyword mysqlKeyword         second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
syn keyword mysqlKeyword         sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
syn keyword mysqlKeyword         status straight_join string
syn keyword mysqlKeyword         table tables temporary terminated to trailing type
syn keyword mysqlKeyword         unique unlock unsigned update usage use using
syn keyword mysqlKeyword         values varbinary variables varying
syn keyword mysqlKeyword         where with write
syn keyword mysqlKeyword         year_month
syn keyword mysqlKeyword         zerofill

" Special values
syn keyword mysqlSpecial         false null true

" Strings (single- and double-quote)
syn region mysqlString           start=+"+  skip=+\\\\\|\\"+  end=+"+
syn region mysqlString           start=+'+  skip=+\\\\\|\\'+  end=+'+

" Numbers and hexidecimal values
syn match mysqlNumber            "-\=\<[0-9]*\>"
syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*\>"
syn match mysqlNumber            "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>"
syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
syn match mysqlNumber            "\<0x[abcdefABCDEF0-9]*\>"

" User variables
syn match mysqlVariable          "@\a*[A-Za-z0-9]*\([._]*[A-Za-z0-9]\)*"

" Escaped column names
syn match mysqlEscaped           "`[^`]*`"

" Comments (c-style, mysql-style and modified sql-style)
syn region mysqlComment          start="/\*"  end="\*/"
syn match mysqlComment           "#.*"
syn match mysqlComment           "--\_s.*"
syn sync ccomment mysqlComment

" Column types
"
" This gets a bit ugly.  There are two different problems we have to
" deal with.
"
" The first problem is that some keywords like 'float' can be used
" both with and without specifiers, i.e. 'float', 'float(1)' and
" 'float(@var)' are all valid.  We have to account for this and we
" also have to make sure that garbage like floatn or float_(1) is not
" highlighted.
"
" The second problem is that some of these keywords are included in
" function names.  For instance, year() is part of the name of the
" dayofyear() function, and the dec keyword (no parenthesis) is part of
" the name of the decode() function.

syn keyword mysqlType            tinyint smallint mediumint int integer bigint
syn keyword mysqlType            date datetime time bit bool
syn keyword mysqlType            tinytext mediumtext longtext text
syn keyword mysqlType            tinyblob mediumblob longblob blob
syn region mysqlType             start="float\W" end="."me=s-1
syn region mysqlType             start="float$" end="."me=s-1
syn region mysqlType             start="float(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="double\W" end="."me=s-1
syn region mysqlType             start="double$" end="."me=s-1
syn region mysqlType             start="double(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="double precision\W" end="."me=s-1
syn region mysqlType             start="double precision$" end="."me=s-1
syn region mysqlType             start="double precision(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="real\W" end="."me=s-1
syn region mysqlType             start="real$" end="."me=s-1
syn region mysqlType             start="real(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="numeric(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="dec\W" end="."me=s-1
syn region mysqlType             start="dec$" end="."me=s-1
syn region mysqlType             start="dec(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="decimal\W" end="."me=s-1
syn region mysqlType             start="decimal$" end="."me=s-1
syn region mysqlType             start="decimal(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="\Wtimestamp\W" end="."me=s-1
syn region mysqlType             start="\Wtimestamp$" end="."me=s-1
syn region mysqlType             start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="^timestamp\W" end="."me=s-1
syn region mysqlType             start="^timestamp$" end="."me=s-1
syn region mysqlType             start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="^year(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="char(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="varchar(" end=")" contains=mysqlNumber,mysqlVariable
syn region mysqlType             start="enum(" end=")" contains=mysqlString,mysqlVariable
syn region mysqlType             start="\Wset(" end=")" contains=mysqlString,mysqlVariable
syn region mysqlType             start="^set(" end=")" contains=mysqlString,mysqlVariable

" Logical, string and  numeric operators
syn keyword mysqlOperator        between not and or is in like regexp rlike binary exists
syn region mysqlOperator         start="isnull(" end=")" contains=ALL
syn region mysqlOperator         start="coalesce(" end=")" contains=ALL
syn region mysqlOperator         start="interval(" end=")" contains=ALL

" Control flow functions
syn keyword mysqlFlow            case when then else end
syn region mysqlFlow             start="ifnull("   end=")"  contains=ALL
syn region mysqlFlow             start="nullif("   end=")"  contains=ALL
syn region mysqlFlow             start="if("       end=")"  contains=ALL

" General Functions
"
" I'm leery of just defining keywords for functions, since according to the MySQL manual:
"
"     Function names do not clash with table or column names. For example, ABS is a
"     valid column name. The only restriction is that for a function call, no spaces
"     are allowed between the function name and the `(' that follows it.
"
" This means that if I want to highlight function names properly, I have to use a
" region to define them, not just a keyword.  This will probably cause the syntax file
" to load more slowly, but at least it will be 'correct'.

syn region mysqlFunction         start="abs(" end=")" contains=ALL
syn region mysqlFunction         start="acos(" end=")" contains=ALL
syn region mysqlFunction         start="adddate(" end=")" contains=ALL
syn region mysqlFunction         start="ascii(" end=")" contains=ALL
syn region mysqlFunction         start="asin(" end=")" contains=ALL
syn region mysqlFunction         start="atan(" end=")" contains=ALL
syn region mysqlFunction         start="atan2(" end=")" contains=ALL
syn region mysqlFunction         start="avg(" end=")" contains=ALL
syn region mysqlFunction         start="benchmark(" end=")" contains=ALL
syn region mysqlFunction         start="bin(" end=")" contains=ALL
syn region mysqlFunction         start="bit_and(" end=")" contains=ALL
syn region mysqlFunction         start="bit_count(" end=")" contains=ALL
syn region mysqlFunction         start="bit_or(" end=")" contains=ALL
syn region mysqlFunction         start="ceiling(" end=")" contains=ALL
syn region mysqlFunction         start="character_length(" end=")" contains=ALL
syn region mysqlFunction         start="char_length(" end=")" contains=ALL
syn region mysqlFunction         start="concat(" end=")" contains=ALL
syn region mysqlFunction         start="concat_ws(" end=")" contains=ALL
syn region mysqlFunction         start="connection_id(" end=")" contains=ALL
syn region mysqlFunction         start="conv(" end=")" contains=ALL
syn region mysqlFunction         start="cos(" end=")" contains=ALL
syn region mysqlFunction         start="cot(" end=")" contains=ALL
syn region mysqlFunction         start="count(" end=")" contains=ALL
syn region mysqlFunction         start="curdate(" end=")" contains=ALL
syn region mysqlFunction         start="curtime(" end=")" contains=ALL
syn region mysqlFunction         start="date_add(" end=")" contains=ALL
syn region mysqlFunction         start="date_format(" end=")" contains=ALL
syn region mysqlFunction         start="date_sub(" end=")" contains=ALL
syn region mysqlFunction         start="dayname(" end=")" contains=ALL
syn region mysqlFunction         start="dayofmonth(" end=")" contains=ALL
syn region mysqlFunction         start="dayofweek(" end=")" contains=ALL
syn region mysqlFunction         start="dayofyear(" end=")" contains=ALL
syn region mysqlFunction         start="decode(" end=")" contains=ALL
syn region mysqlFunction         start="degrees(" end=")" contains=ALL
syn region mysqlFunction         start="elt(" end=")" contains=ALL
syn region mysqlFunction         start="encode(" end=")" contains=ALL
syn region mysqlFunction         start="encrypt(" end=")" contains=ALL
syn region mysqlFunction         start="exp(" end=")" contains=ALL
syn region mysqlFunction         start="export_set(" end=")" contains=ALL
syn region mysqlFunction         start="extract(" end=")" contains=ALL
syn region mysqlFunction         start="field(" end=")" contains=ALL
syn region mysqlFunction         start="find_in_set(" end=")" contains=ALL
syn region mysqlFunction         start="floor(" end=")" contains=ALL
syn region mysqlFunction         start="format(" end=")" contains=ALL
syn region mysqlFunction         start="from_days(" end=")" contains=ALL
syn region mysqlFunction         start="from_unixtime(" end=")" contains=ALL
syn region mysqlFunction         start="get_lock(" end=")" contains=ALL
syn region mysqlFunction         start="greatest(" end=")" contains=ALL
syn region mysqlFunction         start="group_unique_users(" end=")" contains=ALL
syn region mysqlFunction         start="hex(" end=")" contains=ALL
syn region mysqlFunction         start="inet_aton(" end=")" contains=ALL
syn region mysqlFunction         start="inet_ntoa(" end=")" contains=ALL
syn region mysqlFunction         start="instr(" end=")" contains=ALL
syn region mysqlFunction         start="lcase(" end=")" contains=ALL
syn region mysqlFunction         start="least(" end=")" contains=ALL
syn region mysqlFunction         start="length(" end=")" contains=ALL
syn region mysqlFunction         start="load_file(" end=")" contains=ALL
syn region mysqlFunction         start="locate(" end=")" contains=ALL
syn region mysqlFunction         start="log(" end=")" contains=ALL
syn region mysqlFunction         start="log10(" end=")" contains=ALL
syn region mysqlFunction         start="lower(" end=")" contains=ALL
syn region mysqlFunction         start="lpad(" end=")" contains=ALL
syn region mysqlFunction         start="ltrim(" end=")" contains=ALL
syn region mysqlFunction         start="make_set(" end=")" contains=ALL
syn region mysqlFunction         start="master_pos_wait(" end=")" contains=ALL
syn region mysqlFunction         start="max(" end=")" contains=ALL
syn region mysqlFunction         start="md5(" end=")" contains=ALL
syn region mysqlFunction         start="mid(" end=")" contains=ALL
syn region mysqlFunction         start="min(" end=")" contains=ALL
syn region mysqlFunction         start="mod(" end=")" contains=ALL
syn region mysqlFunction         start="monthname(" end=")" contains=ALL
syn region mysqlFunction         start="now(" end=")" contains=ALL
syn region mysqlFunction         start="oct(" end=")" contains=ALL
syn region mysqlFunction         start="octet_length(" end=")" contains=ALL
syn region mysqlFunction         start="ord(" end=")" contains=ALL
syn region mysqlFunction         start="period_add(" end=")" contains=ALL
syn region mysqlFunction         start="period_diff(" end=")" contains=ALL
syn region mysqlFunction         start="pi(" end=")" contains=ALL
syn region mysqlFunction         start="position(" end=")" contains=ALL
syn region mysqlFunction         start="pow(" end=")" contains=ALL
syn region mysqlFunction         start="power(" end=")" contains=ALL
syn region mysqlFunction         start="quarter(" end=")" contains=ALL
syn region mysqlFunction         start="radians(" end=")" contains=ALL
syn region mysqlFunction         start="rand(" end=")" contains=ALL
syn region mysqlFunction         start="release_lock(" end=")" contains=ALL
syn region mysqlFunction         start="repeat(" end=")" contains=ALL
syn region mysqlFunction         start="reverse(" end=")" contains=ALL
syn region mysqlFunction         start="round(" end=")" contains=ALL
syn region mysqlFunction         start="rpad(" end=")" contains=ALL
syn region mysqlFunction         start="rtrim(" end=")" contains=ALL
syn region mysqlFunction         start="sec_to_time(" end=")" contains=ALL
syn region mysqlFunction         start="session_user(" end=")" contains=ALL
syn region mysqlFunction         start="sign(" end=")" contains=ALL
syn region mysqlFunction         start="sin(" end=")" contains=ALL
syn region mysqlFunction         start="soundex(" end=")" contains=ALL
syn region mysqlFunction         start="space(" end=")" contains=ALL
syn region mysqlFunction         start="sqrt(" end=")" contains=ALL
syn region mysqlFunction         start="std(" end=")" contains=ALL
syn region mysqlFunction         start="stddev(" end=")" contains=ALL
syn region mysqlFunction         start="strcmp(" end=")" contains=ALL
syn region mysqlFunction         start="subdate(" end=")" contains=ALL
syn region mysqlFunction         start="substring(" end=")" contains=ALL
syn region mysqlFunction         start="substring_index(" end=")" contains=ALL
syn region mysqlFunction         start="subtime(" end=")" contains=ALL
syn region mysqlFunction         start="sum(" end=")" contains=ALL
syn region mysqlFunction         start="sysdate(" end=")" contains=ALL
syn region mysqlFunction         start="system_user(" end=")" contains=ALL
syn region mysqlFunction         start="tan(" end=")" contains=ALL
syn region mysqlFunction         start="time_format(" end=")" contains=ALL
syn region mysqlFunction         start="time_to_sec(" end=")" contains=ALL
syn region mysqlFunction         start="to_days(" end=")" contains=ALL
syn region mysqlFunction         start="trim(" end=")" contains=ALL
syn region mysqlFunction         start="ucase(" end=")" contains=ALL
syn region mysqlFunction         start="unique_users(" end=")" contains=ALL
syn region mysqlFunction         start="unix_timestamp(" end=")" contains=ALL
syn region mysqlFunction         start="upper(" end=")" contains=ALL
syn region mysqlFunction         start="user(" end=")" contains=ALL
syn region mysqlFunction         start="version(" end=")" contains=ALL
syn region mysqlFunction         start="week(" end=")" contains=ALL
syn region mysqlFunction         start="weekday(" end=")" contains=ALL
syn region mysqlFunction         start="yearweek(" end=")" contains=ALL

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link mysqlKeyword            Statement
hi def link mysqlSpecial            Special
hi def link mysqlString             String
hi def link mysqlNumber             Number
hi def link mysqlVariable           Identifier
hi def link mysqlComment            Comment
hi def link mysqlType               Type
hi def link mysqlOperator           Statement
hi def link mysqlFlow               Statement
hi def link mysqlFunction           Function


let b:current_syntax = "mysql"

PK�j�ZjQ�T+T+vim80/syntax/sshdconfig.vimnu�[���" Vim syntax file
" Language:	OpenSSH server configuration file (sshd_config)
" Author:	David Necas (Yeti)
" Maintainer:	Dominik Fischer <d dot f dot fischer at web dot de>
" Contributor:	Thilo Six
" Contributor:  Leonard Ehrenfried <leonard.ehrenfried@web.de>	
" Contributor:  Karsten Hopp <karsten@redhat.com>
" Originally:	2009-07-09
" Last Change:	2017 Oct 25
" SSH Version:	7.6p1
"

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=_,-,a-z,A-Z,48-57


" case on
syn case match


" Comments
syn match sshdconfigComment "^#.*$" contains=sshdconfigTodo
syn match sshdconfigComment "\s#.*$" contains=sshdconfigTodo

syn keyword sshdconfigTodo TODO FIXME NOTE contained

" Constants
syn keyword sshdconfigYesNo yes no none

syn keyword sshdconfigAddressFamily any inet inet6

syn keyword sshdconfigPrivilegeSeparation sandbox

syn keyword sshdconfigTcpForwarding local remote

syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only

syn keyword sshdconfigCiphers 3des-cbc
syn keyword sshdconfigCiphers blowfish-cbc
syn keyword sshdconfigCiphers cast128-cbc
syn keyword sshdconfigCiphers arcfour
syn keyword sshdconfigCiphers arcfour128
syn keyword sshdconfigCiphers arcfour256
syn keyword sshdconfigCiphers aes128-cbc
syn keyword sshdconfigCiphers aes192-cbc
syn keyword sshdconfigCiphers aes256-cbc
syn match sshdconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
syn keyword sshdconfigCiphers aes128-ctr
syn keyword sshdconfigCiphers aes192-ctr
syn keyword sshdconfigCiphers aes256-ctr
syn match sshdconfigCiphers "\<aes128-gcm@openssh\.com\>"
syn match sshdconfigCiphers "\<aes256-gcm@openssh\.com\>"
syn match sshdconfigCiphers "\<chacha20-poly1305@openssh\.com\>"

syn keyword sshdconfigMAC hmac-sha1
syn keyword sshdconfigMAC mac-sha1-96
syn keyword sshdconfigMAC mac-sha2-256
syn keyword sshdconfigMAC mac-sha2-512
syn keyword sshdconfigMAC mac-md5
syn keyword sshdconfigMAC mac-md5-96
syn keyword sshdconfigMAC mac-ripemd160
syn match   sshdconfigMAC "\<hmac-ripemd160@openssh\.com\>"
syn match   sshdconfigMAC "\<umac-64@openssh\.com\>"
syn match   sshdconfigMAC "\<umac-128@openssh\.com\>"
syn match   sshdconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<hmac-md5-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<umac-64-etm@openssh\.com\>"
syn match   sshdconfigMAC "\<umac-128-etm@openssh\.com\>"

syn keyword sshdconfigHostKeyAlgo ssh-ed25519
syn match sshdconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
syn keyword sshdconfigHostKeyAlgo ssh-rsa
syn keyword sshdconfigHostKeyAlgo ssh-dss
syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp256
syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp384
syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp521
syn match sshdconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
syn match sshdconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
syn match sshdconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
syn match sshdconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
syn match sshdconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"

syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only

syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
syn keyword sshdconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7

syn keyword sshdconfigCompression    delayed

syn match   sshdconfigIPQoS	"af1[123]"
syn match   sshdconfigIPQoS	"af2[123]"
syn match   sshdconfigIPQoS	"af3[123]"
syn match   sshdconfigIPQoS	"af4[123]"
syn match   sshdconfigIPQoS	"cs[0-7]"
syn keyword sshdconfigIPQoS	ef lowdelay throughput reliability

syn keyword sshdconfigKexAlgo diffie-hellman-group1-sha1
syn keyword sshdconfigKexAlgo diffie-hellman-group14-sha1
syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha1
syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha256
syn keyword sshdconfigKexAlgo ecdh-sha2-nistp256
syn keyword sshdconfigKexAlgo ecdh-sha2-nistp384
syn keyword sshdconfigKexAlgo ecdh-sha2-nistp521
syn match sshdconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"

syn keyword sshdconfigTunnel	point-to-point ethernet

syn keyword sshdconfigSubsystem internal-sftp

syn match sshdconfigVar	    "%[hu]\>"
syn match sshdconfigVar	    "%%"

syn match sshdconfigSpecial "[*?]"

syn match sshdconfigNumber "\d\+"
syn match sshdconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
syn match sshdconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
" FIXME: this matches quite a few things which are NOT valid IPv6 addresses
syn match sshdconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}:\d\+\>"
syn match sshdconfigTime "\<\(\d\+[sSmMhHdDwW]\)\+\>"


" case off
syn case ignore


" Keywords
syn keyword sshdconfigMatch Host User Group Address

syn keyword sshdconfigKeyword AcceptEnv
syn keyword sshdconfigKeyword AddressFamily
syn keyword sshdconfigKeyword AllowAgentForwarding
syn keyword sshdconfigKeyword AllowGroups
syn keyword sshdconfigKeyword AllowStreamLocalForwarding
syn keyword sshdconfigKeyword AllowTcpForwarding
syn keyword sshdconfigKeyword AllowUsers
syn keyword sshdconfigKeyword AuthenticationMethods
syn keyword sshdconfigKeyword AuthorizedKeysFile
syn keyword sshdconfigKeyword AuthorizedKeysCommand
syn keyword sshdconfigKeyword AuthorizedKeysCommandUser
syn keyword sshdconfigKeyword AuthorizedPrincipalsFile
syn keyword sshdconfigKeyword Banner
syn keyword sshdconfigKeyword ChallengeResponseAuthentication
syn keyword sshdconfigKeyword ChrootDirectory
syn keyword sshdconfigKeyword Ciphers
syn keyword sshdconfigKeyword ClientAliveCountMax
syn keyword sshdconfigKeyword ClientAliveInterval
syn keyword sshdconfigKeyword Compression
syn keyword sshdconfigKeyword DebianBanner
syn keyword sshdconfigKeyword DenyGroups
syn keyword sshdconfigKeyword DenyUsers
syn keyword sshdconfigKeyword DisableForwarding
syn keyword sshdconfigKeyword ForceCommand
syn keyword sshdconfigKeyword GSSAPIAuthentication
syn keyword sshdconfigKeyword GSSAPICleanupCredentials
syn keyword sshdconfigKeyword GSSAPIKeyExchange
syn keyword sshdconfigKeyword GSSAPIStoreCredentialsOnRekey
syn keyword sshdconfigKeyword GSSAPIStrictAcceptorCheck
syn keyword sshdconfigKeyword GatewayPorts
syn keyword sshdconfigKeyword HostCertificate
syn keyword sshdconfigKeyword HostKey
syn keyword sshdconfigKeyword HostKeyAgent
syn keyword sshdconfigKeyword HostKeyAlgorithms
syn keyword sshdconfigKeyword HostbasedAcceptedKeyTypes
syn keyword sshdconfigKeyword HostbasedAuthentication
syn keyword sshdconfigKeyword HostbasedUsesNameFromPacketOnly
syn keyword sshdconfigKeyword IPQoS
syn keyword sshdconfigKeyword IgnoreRhosts
syn keyword sshdconfigKeyword IgnoreUserKnownHosts
syn keyword sshdconfigKeyword KbdInteractiveAuthentication
syn keyword sshdconfigKeyword KerberosAuthentication
syn keyword sshdconfigKeyword KerberosGetAFSToken
syn keyword sshdconfigKeyword KerberosOrLocalPasswd
syn keyword sshdconfigKeyword KerberosTicketCleanup
syn keyword sshdconfigKeyword KexAlgorithms
syn keyword sshdconfigKeyword KeyRegenerationInterval
syn keyword sshdconfigKeyword ListenAddress
syn keyword sshdconfigKeyword LogLevel
syn keyword sshdconfigKeyword LoginGraceTime
syn keyword sshdconfigKeyword MACs
syn keyword sshdconfigKeyword Match
syn keyword sshdconfigKeyword MaxAuthTries
syn keyword sshdconfigKeyword MaxSessions
syn keyword sshdconfigKeyword MaxStartups
syn keyword sshdconfigKeyword PasswordAuthentication
syn keyword sshdconfigKeyword PermitBlacklistedKeys
syn keyword sshdconfigKeyword PermitEmptyPasswords
syn keyword sshdconfigKeyword PermitOpen
syn keyword sshdconfigKeyword PermitRootLogin
syn keyword sshdconfigKeyword PermitTTY
syn keyword sshdconfigKeyword PermitTunnel
syn keyword sshdconfigKeyword PermitUserEnvironment
syn keyword sshdconfigKeyword PermitUserRC
syn keyword sshdconfigKeyword PidFile
syn keyword sshdconfigKeyword Port
syn keyword sshdconfigKeyword PrintLastLog
syn keyword sshdconfigKeyword PrintMotd
syn keyword sshdconfigKeyword Protocol
syn keyword sshdconfigKeyword PubkeyAcceptedKeyTypes
syn keyword sshdconfigKeyword PubkeyAuthentication
syn keyword sshdconfigKeyword RSAAuthentication
syn keyword sshdconfigKeyword RekeyLimit
syn keyword sshdconfigKeyword RevokedKeys
syn keyword sshdconfigKeyword RhostsRSAAuthentication
syn keyword sshdconfigKeyword ServerKeyBits
syn keyword sshdconfigKeyword ShowPatchLevel
syn keyword sshdconfigKeyword StrictModes
syn keyword sshdconfigKeyword Subsystem
syn keyword sshdconfigKeyword SyslogFacility
syn keyword sshdconfigKeyword TCPKeepAlive
syn keyword sshdconfigKeyword TrustedUserCAKeys
syn keyword sshdconfigKeyword UseDNS
syn keyword sshdconfigKeyword UseLogin
syn keyword sshdconfigKeyword UsePAM
syn keyword sshdconfigKeyword VersionAddendum
syn keyword sshdconfigKeyword X11DisplayOffset
syn keyword sshdconfigKeyword X11Forwarding
syn keyword sshdconfigKeyword X11UseLocalhost
syn keyword sshdconfigKeyword XAuthLocation


" Define the default highlighting

hi def link sshdconfigComment              Comment
hi def link sshdconfigTodo                 Todo
hi def link sshdconfigHostPort             sshdconfigConstant
hi def link sshdconfigTime                 sshdconfigConstant
hi def link sshdconfigNumber               sshdconfigConstant
hi def link sshdconfigConstant             Constant
hi def link sshdconfigYesNo                sshdconfigEnum
hi def link sshdconfigAddressFamily        sshdconfigEnum
hi def link sshdconfigPrivilegeSeparation  sshdconfigEnum
hi def link sshdconfigTcpForwarding        sshdconfigEnum
hi def link sshdconfigRootLogin            sshdconfigEnum
hi def link sshdconfigCiphers              sshdconfigEnum
hi def link sshdconfigMAC                  sshdconfigEnum
hi def link sshdconfigHostKeyAlgo          sshdconfigEnum
hi def link sshdconfigRootLogin            sshdconfigEnum
hi def link sshdconfigLogLevel             sshdconfigEnum
hi def link sshdconfigSysLogFacility       sshdconfigEnum
hi def link sshdconfigVar                  sshdconfigEnum
hi def link sshdconfigCompression          sshdconfigEnum
hi def link sshdconfigIPQoS                sshdconfigEnum
hi def link sshdconfigKexAlgo              sshdconfigEnum
hi def link sshdconfigTunnel               sshdconfigEnum
hi def link sshdconfigSubsystem            sshdconfigEnum
hi def link sshdconfigEnum                 Function
hi def link sshdconfigSpecial              Special
hi def link sshdconfigKeyword              Keyword
hi def link sshdconfigMatch                Type

let b:current_syntax = "sshdconfig"

" vim:set ts=8 sw=2 sts=2:
PK�j�Z|�O	��vim80/syntax/go.vimnu�[���" Vim syntax file
" Language:	Go
" Maintainer:	David Barnett (https://github.com/google/vim-ft-go)
" Last Change:	2014 Aug 16

" Options:
"   There are some options for customizing the highlighting; the recommended
"   settings are the default values, but you can write:
"     let OPTION_NAME = 0
"   in your ~/.vimrc file to disable particular options. You can also write:
"     let OPTION_NAME = 1
"   to enable particular options. At present, all options default to on.
"
"   - g:go_highlight_array_whitespace_error
"     Highlights white space after "[]".
"   - g:go_highlight_chan_whitespace_error
"     Highlights white space around the communications operator that don't
"     follow the standard style.
"   - g:go_highlight_extra_types
"     Highlights commonly used library types (io.Reader, etc.).
"   - g:go_highlight_space_tab_error
"     Highlights instances of tabs following spaces.
"   - g:go_highlight_trailing_whitespace_error
"     Highlights trailing white space.

" Quit when a (custom) syntax file was already loaded
if exists('b:current_syntax')
  finish
endif

if !exists('g:go_highlight_array_whitespace_error')
  let g:go_highlight_array_whitespace_error = 1
endif
if !exists('g:go_highlight_chan_whitespace_error')
  let g:go_highlight_chan_whitespace_error = 1
endif
if !exists('g:go_highlight_extra_types')
  let g:go_highlight_extra_types = 1
endif
if !exists('g:go_highlight_space_tab_error')
  let g:go_highlight_space_tab_error = 1
endif
if !exists('g:go_highlight_trailing_whitespace_error')
  let g:go_highlight_trailing_whitespace_error = 1
endif

syn case match

syn keyword     goDirective         package import
syn keyword     goDeclaration       var const type
syn keyword     goDeclType          struct interface

hi def link     goDirective         Statement
hi def link     goDeclaration       Keyword
hi def link     goDeclType          Keyword

" Keywords within functions
syn keyword     goStatement         defer go goto return break continue fallthrough
syn keyword     goConditional       if else switch select
syn keyword     goLabel             case default
syn keyword     goRepeat            for range

hi def link     goStatement         Statement
hi def link     goConditional       Conditional
hi def link     goLabel             Label
hi def link     goRepeat            Repeat

" Predefined types
syn keyword     goType              chan map bool string error
syn keyword     goSignedInts        int int8 int16 int32 int64 rune
syn keyword     goUnsignedInts      byte uint uint8 uint16 uint32 uint64 uintptr
syn keyword     goFloats            float32 float64
syn keyword     goComplexes         complex64 complex128

hi def link     goType              Type
hi def link     goSignedInts        Type
hi def link     goUnsignedInts      Type
hi def link     goFloats            Type
hi def link     goComplexes         Type

" Treat func specially: it's a declaration at the start of a line, but a type
" elsewhere. Order matters here.
syn match       goType              /\<func\>/
syn match       goDeclaration       /^func\>/

" Predefined functions and values
syn keyword     goBuiltins          append cap close complex copy delete imag len
syn keyword     goBuiltins          make new panic print println real recover
syn keyword     goConstants         iota true false nil

hi def link     goBuiltins          Keyword
hi def link     goConstants         Keyword

" Comments; their contents
syn keyword     goTodo              contained TODO FIXME XXX BUG
syn cluster     goCommentGroup      contains=goTodo
syn region      goComment           start="/\*" end="\*/" contains=@goCommentGroup,@Spell
syn region      goComment           start="//" end="$" contains=@goCommentGroup,@Spell

hi def link     goComment           Comment
hi def link     goTodo              Todo

" Go escapes
syn match       goEscapeOctal       display contained "\\[0-7]\{3}"
syn match       goEscapeC           display contained +\\[abfnrtv\\'"]+
syn match       goEscapeX           display contained "\\x\x\{2}"
syn match       goEscapeU           display contained "\\u\x\{4}"
syn match       goEscapeBigU        display contained "\\U\x\{8}"
syn match       goEscapeError       display contained +\\[^0-7xuUabfnrtv\\'"]+

hi def link     goEscapeOctal       goSpecialString
hi def link     goEscapeC           goSpecialString
hi def link     goEscapeX           goSpecialString
hi def link     goEscapeU           goSpecialString
hi def link     goEscapeBigU        goSpecialString
hi def link     goSpecialString     Special
hi def link     goEscapeError       Error

" Strings and their contents
syn cluster     goStringGroup       contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU,goEscapeError
syn region      goString            start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup
syn region      goRawString         start=+`+ end=+`+

hi def link     goString            String
hi def link     goRawString         String

" Characters; their contents
syn cluster     goCharacterGroup    contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU
syn region      goCharacter         start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup

hi def link     goCharacter         Character

" Regions
syn region      goBlock             start="{" end="}" transparent fold
syn region      goParen             start='(' end=')' transparent

" Integers
syn match       goDecimalInt        "\<\d\+\([Ee]\d\+\)\?\>"
syn match       goHexadecimalInt    "\<0x\x\+\>"
syn match       goOctalInt          "\<0\o\+\>"
syn match       goOctalError        "\<0\o*[89]\d*\>"

hi def link     goDecimalInt        Integer
hi def link     goHexadecimalInt    Integer
hi def link     goOctalInt          Integer
hi def link     Integer             Number

" Floating point
syn match       goFloat             "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>"
syn match       goFloat             "\<\.\d\+\([Ee][-+]\d\+\)\?\>"
syn match       goFloat             "\<\d\+[Ee][-+]\d\+\>"

hi def link     goFloat             Float

" Imaginary literals
syn match       goImaginary         "\<\d\+i\>"
syn match       goImaginary         "\<\d\+\.\d*\([Ee][-+]\d\+\)\?i\>"
syn match       goImaginary         "\<\.\d\+\([Ee][-+]\d\+\)\?i\>"
syn match       goImaginary         "\<\d\+[Ee][-+]\d\+i\>"

hi def link     goImaginary         Number

" Spaces after "[]"
if go_highlight_array_whitespace_error != 0
  syn match goSpaceError display "\(\[\]\)\@<=\s\+"
endif

" Spacing errors around the 'chan' keyword
if go_highlight_chan_whitespace_error != 0
  " receive-only annotation on chan type
  syn match goSpaceError display "\(<-\)\@<=\s\+\(chan\>\)\@="
  " send-only annotation on chan type
  syn match goSpaceError display "\(\<chan\)\@<=\s\+\(<-\)\@="
  " value-ignoring receives in a few contexts
  syn match goSpaceError display "\(\(^\|[={(,;]\)\s*<-\)\@<=\s\+"
endif

" Extra types commonly seen
if go_highlight_extra_types != 0
  syn match goExtraType /\<bytes\.\(Buffer\)\>/
  syn match goExtraType /\<io\.\(Reader\|Writer\|ReadWriter\|ReadWriteCloser\)\>/
  syn match goExtraType /\<reflect\.\(Kind\|Type\|Value\)\>/
  syn match goExtraType /\<unsafe\.Pointer\>/
endif

" Space-tab error
if go_highlight_space_tab_error != 0
  syn match goSpaceError display " \+\t"me=e-1
endif

" Trailing white space error
if go_highlight_trailing_whitespace_error != 0
  syn match goSpaceError display excludenl "\s\+$"
endif

hi def link     goExtraType         Type
hi def link     goSpaceError        Error

" Search backwards for a global declaration to start processing the syntax.
"syn sync match goSync grouphere NONE /^\(const\|var\|type\|func\)\>/

" There's a bug in the implementation of grouphere. For now, use the
" following as a more expensive/less precise workaround.
syn sync minlines=500

let b:current_syntax = 'go'

" vim: sw=2 sts=2 et
PK�j�Z�P+�11vim80/syntax/changelog.vimnu�[���" Vim syntax file
" Language:	generic ChangeLog file
" Written By:	Gediminas Paulauskas <menesis@delfi.lt>
" Maintainer:	Corinna Vinschen <vinschen@redhat.com>
" Last Change:	June 1, 2003

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

if exists('b:changelog_spacing_errors')
  let s:spacing_errors = b:changelog_spacing_errors
elseif exists('g:changelog_spacing_errors')
  let s:spacing_errors = g:changelog_spacing_errors
else
  let s:spacing_errors = 1
endif

if s:spacing_errors
  syn match	changelogError "^ \+"
endif

syn match	changelogText	"^\s.*$" contains=changelogMail,changelogNumber,changelogMonth,changelogDay,changelogError
syn match	changelogHeader	"^\S.*$" contains=changelogNumber,changelogMonth,changelogDay,changelogMail
syn region	changelogFiles	start="^\s\+[+*]\s" end=":" end="^$" contains=changelogBullet,changelogColon,changelogFuncs,changelogError keepend
syn region	changelogFiles	start="^\s\+[([]" end=":" end="^$" contains=changelogBullet,changelogColon,changelogFuncs,changelogError keepend
syn match	changelogFuncs  contained "(.\{-})" extend
syn match	changelogFuncs  contained "\[.\{-}]" extend
syn match	changelogColon	contained ":"

syn match	changelogBullet	contained "^\s\+[+*]\s" contains=changelogError
syn match	changelogMail	contained "<[A-Za-z0-9\._:+-]\+@[A-Za-z0-9\._-]\+>"
syn keyword	changelogMonth	contained jan feb mar apr may jun jul aug sep oct nov dec
syn keyword	changelogDay	contained mon tue wed thu fri sat sun
syn match	changelogNumber	contained "[.-]*[0-9]\+"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link changelogText		Normal
hi def link changelogBullet	Type
hi def link changelogColon		Type
hi def link changelogFiles		Comment
hi def link changelogFuncs	Comment
hi def link changelogHeader	Statement
hi def link changelogMail		Special
hi def link changelogNumber	Number
hi def link changelogMonth		Number
hi def link changelogDay		Number
hi def link changelogError		Folded


let b:current_syntax = "changelog"

" vim: ts=8
PK�j�ZY�??vim80/syntax/voscm.vimnu�[���" Vim syntax file
" Language:	VOS CM macro
" Maintainer:	Andrew McGill andrewm at lunch.za.net
" Last Change:	Apr 06, 2007
" Version:	1
" URL:	http://lunch.za.net/
"

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match
" set iskeyword=48-57,_,a-z,A-Z

syn match   voscmStatement     "^!"
syn match voscmStatement	"&\(label\|begin_parameters\|end_parameters\|goto\|attach_input\|break\|continue\|control\|detach_input\|display_line\|display_line_partial\|echo\|eof\|eval\|if\|mode\|return\|while\|set\|set_string\|then\|else\|do\|done\|end\)\>"
syn match  voscmJump		"\(&label\|&goto\)  *"  nextgroup=voscmLabelId
syn match   voscmLabelId	contained "\<[A-Za-z][A-Z_a-z0-9]* *$"
syn match  voscmSetvar		"\(&set_string\|&set\)  *"  nextgroup=voscmVariable
syn match voscmError            "\(&set_string\|&set\)  *&" 
syn match   voscmVariable	contained "\<[A-Za-z][A-Z_a-z0-9]\+\>"
syn keyword voscmParamKeyword   contained number req string switch allow byte disable_input hidden length longword max min no_abbrev output_path req required req_for_form word 
syn region  voscmParamList	matchgroup=voscmParam start="&begin_parameters" end="&end_parameters" contains=voscmParamKeyword,voscmString,voscmParamName,voscmParamId
syn match   voscmParamName	contained "\(^\s*[A-Za-z_0-9]\+\s\+\)\@<=\k\+"
syn match   voscmParamId	contained "\(^\s*\)\@<=\k\+"
syn region par1 matchgroup=par1 start=/(/ end=/)/ contains=voscmFunction,voscmIdentifier,voscmString transparent
" FIXME: functions should only be allowed after a bracket ... ie  (ask ...):
syn keyword voscmFunction     contained abs access after ask before break byte calc ceil command_status concat
syn keyword voscmFunction     contained contents path_name copy count current_dir current_module date date_time
syn keyword voscmFunction     contained decimal directory_name end_of_file exists file_info floor given group_name
syn keyword voscmFunction     contained has_access hexadecimal home_dir index iso_date iso_date_time language_name
syn keyword voscmFunction     contained length lock_type locked ltrim master_disk max message min mod module_info
syn keyword voscmFunction     contained module_name object_name online path_name person_name process_dir process_info
syn keyword voscmFunction     contained process_type quote rank referencing_dir reverse rtrim search
syn keyword voscmFunction     contained software_purchased string substitute substr system_name terminal_info
syn keyword voscmFunction     contained terminal_name time translate trunc unique_string unquote user_name verify
syn keyword voscmFunction     contained where_path
syn keyword voscmTodo contained	TODO FIXME XXX DEBUG NOTE
syn match voscmTab              "\t\+"

syn keyword voscmCommand        add_entry_names add_library_path add_profile analyze_pc_samples attach_default_output attach_port batch bind break_process c c_preprocess call_thru cancel_batch_requests cancel_device_reservation cancel_print_requests cc change_current_dir check_posix cobol comment_on_manual compare_dirs compare_files convert_text_file copy_dir copy_file copy_tape cpp create_data_object create_deleted_record_index create_dir create_file create_index create_record_index create_tape_volumes cvt_fixed_to_stream cvt_stream_to_fixed debug delete_dir delete_file delete_index delete_library_path detach_default_output detach_port dismount_tape display display_access display_access_list display_batch_status display_current_dir display_current_module display_date_time display_default_access_list display_device_info display_dir_status display_disk_info display_disk_usage display_error display_file display_file_status display_line display_notices display_object_module_info display_print_defaults display_print_status display_program_module display_system_usage display_tape_params display_terminal_parameters dump_file dump_record dump_tape edit edit_form emacs enforce_region_locks fortran get_external_variable give_access give_default_access handle_sig_dfl harvest_pc_samples help kill line_edit link link_dirs list list_batch_requests list_devices list_gateways list_library_paths list_modules list_port_attachments list_print_requests list_process_cmd_limits list_save_tape list_systems list_tape list_terminal_types list_users locate_files locate_large_files login logout mount_tape move_device_reservation move_dir move_file mp_debug nls_edit_form pascal pl1 position_tape preprocess_file print profile propagate_access read_tape ready remove_access remove_default_access rename reserve_device restore_object save_object send_message set set_cpu_time_limit set_expiration_date set_external_variable set_file_allocation set_implicit_locking set_index_flags set_language set_library_paths set_line_wrap_width set_log_protected_file set_owner_access set_pipe_file set_priority set_ready set_safety_switch set_second_tape set_tape_drive_params set_tape_file_params set_tape_mount_params set_terminal_parameters set_text_file set_time_zone sleep sort start_logging start_process stop_logging stop_process tail_file text_data_merge translate_links truncate_file unlink update_batch_requests update_print_requests update_process_cmd_limits use_abbreviations use_message_file vcc verify_posix_access verify_save verify_system_access walk_dir where_command where_path who_locked write_tape 

syn match voscmIdentifier	"&[A-Za-z][a-z0-9_A-Z]*&"

syn match voscmString		"'[^']*'"

" Number formats
syn match voscmNumber		"\<\d\+\>"
"Floating point number part only
syn match voscmDecimalNumber	"\.\d\+\([eE][-+]\=\d\)\=\>"

"syn region voscmComment	start="^[ 	]*&[ 	]+"	end="$"
"syn match voscmComment		"^[ 	]*&[ 	].*$"
"syn match voscmComment		"^&$"
syn region voscmComment		start="^[ 	]*&[ 	]" end="$" contains=voscmTodo
syn match voscmComment		"^&$"
syn match voscmContinuation	"&+$"

"syn match  voscmIdentifier	"[A-Za-z0-9&._-]\+"

"Synchronization with Statement terminator $
" syn sync maxlines=100

hi def link voscmConditional	Conditional
hi def link voscmStatement	Statement
hi def link voscmSetvar         Statement
hi def link voscmNumber         Number
hi def link voscmDecimalNumber	Float
hi def link voscmString         String
hi def link voscmIdentifier	Identifier
hi def link voscmVariable	Identifier
hi def link voscmComment	Comment
hi def link voscmJump	        Statement
hi def link voscmContinuation	Macro
hi def link voscmLabelId	String
hi def link voscmParamList	NONE
hi def link voscmParamId	Identifier
hi def link voscmParamName	String
hi def link voscmParam	        Statement
hi def link voscmParamKeyword	Statement
hi def link voscmFunction	Function
hi def link voscmCommand	Structure
"hi def link voscmIdentifier	NONE
"hi def link voscmSpecial	Special   " not used 
hi def link voscmTodo           Todo
hi def link voscmTab          	Error
hi def link voscmError         	Error

let b:current_syntax = "voscm"

" vim: ts=8
PK�j�Z�>G33vim80/syntax/stp.vimnu�[���" Vim syntax file
"    Language: Stored Procedures (STP)
"  Maintainer: Jeff Lanzarotta (jefflanzarotta@yahoo.com)
"	  URL: http://lanzarotta.tripod.com/vim/syntax/stp.vim.zip
" Last Change: March 05, 2002

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Specials.
syn keyword stpSpecial    null

" Keywords.
syn keyword stpKeyword begin break call case create deallocate dynamic
syn keyword stpKeyword execute from function go grant
syn keyword stpKeyword index insert into leave max min on output procedure
syn keyword stpKeyword public result return returns scroll table to
syn keyword stpKeyword when
syn match   stpKeyword "\<end\>"

" Conditional.
syn keyword stpConditional if else elseif then
syn match   stpConditional "\<end\s\+if\>"

" Repeats.
syn keyword stpRepeat for while loop
syn match   stpRepeat "\<end\s\+loop\>"

" Operators.
syn keyword stpOperator asc not and or desc group having in is any some all
syn keyword stpOperator between exists like escape with union intersect minus
syn keyword stpOperator out prior distinct sysdate

" Statements.
syn keyword stpStatement alter analyze as audit avg by close clustered comment
syn keyword stpStatement commit continue count create cursor declare delete
syn keyword stpStatement drop exec execute explain fetch from index insert
syn keyword stpStatement into lock max min next noaudit nonclustered open
syn keyword stpStatement order output print raiserror recompile rename revoke
syn keyword stpStatement rollback savepoint select set sum transaction
syn keyword stpStatement truncate unique update values where

" Functions.
syn keyword stpFunction abs acos ascii asin atan atn2 avg ceiling charindex
syn keyword stpFunction charlength convert col_name col_length cos cot count
syn keyword stpFunction curunreservedpgs datapgs datalength dateadd datediff
syn keyword stpFunction datename datepart db_id db_name degree difference
syn keyword stpFunction exp floor getdate hextoint host_id host_name index_col
syn keyword stpFunction inttohex isnull lct_admin log log10 lower ltrim max
syn keyword stpFunction min now object_id object_name patindex pi pos power
syn keyword stpFunction proc_role radians rand replace replicate reserved_pgs
syn keyword stpFunction reverse right rtrim rowcnt round show_role sign sin
syn keyword stpFunction soundex space sqrt str stuff substr substring sum
syn keyword stpFunction suser_id suser_name tan tsequal upper used_pgs user
syn keyword stpFunction user_id user_name valid_name valid_user message

" Types.
syn keyword stpType binary bit char datetime decimal double float image
syn keyword stpType int integer long money nchar numeric precision real
syn keyword stpType smalldatetime smallint smallmoney text time tinyint
syn keyword stpType timestamp varbinary varchar

" Globals.
syn match stpGlobals '@@char_convert'
syn match stpGlobals '@@cient_csname'
syn match stpGlobals '@@client_csid'
syn match stpGlobals '@@connections'
syn match stpGlobals '@@cpu_busy'
syn match stpGlobals '@@error'
syn match stpGlobals '@@identity'
syn match stpGlobals '@@idle'
syn match stpGlobals '@@io_busy'
syn match stpGlobals '@@isolation'
syn match stpGlobals '@@langid'
syn match stpGlobals '@@language'
syn match stpGlobals '@@max_connections'
syn match stpGlobals '@@maxcharlen'
syn match stpGlobals '@@ncharsize'
syn match stpGlobals '@@nestlevel'
syn match stpGlobals '@@pack_received'
syn match stpGlobals '@@pack_sent'
syn match stpGlobals '@@packet_errors'
syn match stpGlobals '@@procid'
syn match stpGlobals '@@rowcount'
syn match stpGlobals '@@servername'
syn match stpGlobals '@@spid'
syn match stpGlobals '@@sqlstatus'
syn match stpGlobals '@@testts'
syn match stpGlobals '@@textcolid'
syn match stpGlobals '@@textdbid'
syn match stpGlobals '@@textobjid'
syn match stpGlobals '@@textptr'
syn match stpGlobals '@@textsize'
syn match stpGlobals '@@thresh_hysteresis'
syn match stpGlobals '@@timeticks'
syn match stpGlobals '@@total_error'
syn match stpGlobals '@@total_read'
syn match stpGlobals '@@total_write'
syn match stpGlobals '@@tranchained'
syn match stpGlobals '@@trancount'
syn match stpGlobals '@@transtate'
syn match stpGlobals '@@version'

" Todos.
syn keyword stpTodo TODO FIXME XXX DEBUG NOTE

" Strings and characters.
syn match stpStringError "'.*$"
syn match stpString "'\([^']\|''\)*'"

" Numbers.
syn match stpNumber "-\=\<\d*\.\=[0-9_]\>"

" Comments.
syn region stpComment start="/\*" end="\*/" contains=stpTodo
syn match  stpComment "--.*" contains=stpTodo
syn sync   ccomment stpComment

" Parens.
syn region stpParen transparent start='(' end=')' contains=ALLBUT,stpParenError
syn match  stpParenError ")"

" Syntax Synchronizing.
syn sync minlines=10 maxlines=100

" Define the default highlighting.
" Only when and item doesn't have highlighting yet.

hi def link stpConditional Conditional
hi def link stpComment Comment
hi def link stpKeyword Keyword
hi def link stpNumber Number
hi def link stpOperator Operator
hi def link stpSpecial Special
hi def link stpStatement Statement
hi def link stpString String
hi def link stpStringError Error
hi def link stpType Type
hi def link stpTodo Todo
hi def link stpFunction Function
hi def link stpGlobals Macro
hi def link stpParen Normal
hi def link stpParenError Error
hi def link stpSQLKeyword Function
hi def link stpRepeat Repeat


let b:current_syntax = "stp"

" vim ts=8 sw=2
PK�j�Z|��..vim80/syntax/mma.vimnu�[���" Vim syntax file
" Language:     Mathematica
" Maintainer:   steve layland <layland@wolfram.com>
" Last Change:  2012 Feb 03 by Thilo Six
" Source:       http://members.wri.com/layland/vim/syntax/mma.vim
"               http://vim.sourceforge.net/scripts/script.php?script_id=1273
" Id:           $Id: mma.vim,v 1.4 2006/04/14 20:40:38 vimboss Exp $
" NOTE:
"
" Empty .m files will automatically be presumed as Matlab files
" unless you have the following in your .vimrc:
"
"       let filetype_m="mma"
"
" I also recommend setting the default 'Comment' hilighting to something
" other than the color used for 'Function', since both are plentiful in
" most mathematica files, and they are often the same color (when using
" background=dark).
"
" Credits:
" o  Original Mathematica syntax version written by
"    Wolfgang Waltenberger <wwalten@ben.tuwien.ac.at>
" o  Some ideas like the CommentStar,CommentTitle were adapted
"    from the Java vim syntax file by Claudio Fleiner.  Thanks!
" o  Everything else written by steve <layland@wolfram.com>
"
" Bugs:
" o  Vim 6.1 didn't really have support for character classes
"    of other named character classes.  For example, [\a\d]
"    didn't work.  Therefore, a lot of this code uses explicit
"    character classes instead: [0-9a-zA-Z]
"
" TODO:
"   folding
"   fix nesting
"   finish populating popular symbols

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Group Definitions:
syntax cluster mmaNotes contains=mmaTodo,mmaFixme
syntax cluster mmaComments contains=mmaComment,mmaFunctionComment,mmaItem,mmaFunctionTitle,mmaCommentStar
syntax cluster mmaCommentStrings contains=mmaLooseQuote,mmaCommentString,mmaUnicode
syntax cluster mmaStrings contains=@mmaCommentStrings,mmaString
syntax cluster mmaTop contains=mmaOperator,mmaGenericFunction,mmaPureFunction,mmaVariable

" Predefined Constants:
"   to list all predefined Symbols would be too insane...
"   it's probably smarter to define a select few, and get the rest from
"   context if absolutely necessary.
"   TODO - populate this with other often used Symbols

" standard fixed symbols:
syntax keyword mmaVariable True False None Automatic All Null C General

" mathematical constants:
syntax keyword mmaVariable Pi I E Infinity ComplexInfinity Indeterminate GoldenRatio EulerGamma Degree Catalan Khinchin Glaisher

" stream data / atomic heads:
syntax keyword mmaVariable Byte Character Expression Number Real String Word EndOfFile Integer Symbol

" sets:
syntax keyword mmaVariable Integers Complexes Reals Booleans Rationals

" character classes:
syntax keyword mmaPattern DigitCharacter LetterCharacter WhitespaceCharacter WordCharacter EndOfString StartOfString EndOfLine StartOfLine WordBoundary

" SelectionMove directions/units:
syntax keyword mmaVariable Next Previous After Before Character Word Expression TextLine CellContents Cell CellGroup EvaluationCell ButtonCell GeneratedCell Notebook
syntax keyword mmaVariable CellTags CellStyle CellLabel

" TableForm positions:
syntax keyword mmaVariable Above Below Left Right

" colors:
syntax keyword mmaVariable Black Blue Brown Cyan Gray Green Magenta Orange Pink Purple Red White Yellow

" function attributes
syntax keyword mmaVariable Protected Listable OneIdentity Orderless Flat Constant NumericFunction Locked ReadProtected HoldFirst HoldRest HoldAll HoldAllComplete SequenceHold NHoldFirst NHoldRest NHoldAll Temporary Stub

" Comment Sections:
"   this:
"   :that:
syntax match mmaItem "\%(^[( |*\t]*\)\@<=\%(:\+\|\w\)\w\+\%( \w\+\)\{0,3}:" contained contains=@mmaNotes

" Comment Keywords:
syntax keyword mmaTodo TODO NOTE HEY contained
syntax match mmaTodo "X\{3,}" contained
syntax keyword mmaFixme FIX[ME] FIXTHIS BROKEN contained
syntax match mmaFixme "BUG\%( *\#\=[0-9]\+\)\=" contained
" yay pirates...
syntax match mmaFixme "\%(Y\=A\+R\+G\+\|GRR\+\|CR\+A\+P\+\)\%(!\+\)\=" contained

" EmPHAsis:
" this unnecessary, but whatever :)
syntax match mmaemPHAsis "\%(^\|\s\)\([_/]\)[a-zA-Z0-9]\+\%([- \t':]\+[a-zA-Z0-9]\+\)*\1\%(\s\|$\)" contained contains=mmaemPHAsis
syntax match mmaemPHAsis "\%(^\|\s\)(\@<!\*[a-zA-Z0-9]\+\%([- \t':]\+[a-zA-Z0-9]\+\)*)\@!\*\%(\s\|$\)" contained contains=mmaemPHAsis

" Regular Comments:
"   (* *)
"   allow nesting (* (* *) *) even though the frontend
"   won't always like it.
syntax region mmaComment start=+(\*+ end=+\*)+ skipempty contains=@mmaNotes,mmaItem,@mmaCommentStrings,mmaemPHAsis,mmaComment

" Function Comments:
"   just like a normal comment except the first sentance is Special ala Java
"   (** *)
"   TODO - fix this for nesting, or not...
syntax region mmaFunctionComment start="(\*\*\+" end="\*\+)" contains=@mmaNotes,mmaItem,mmaFunctionTitle,@mmaCommentStrings,mmaemPHAsis,mmaComment
syntax region mmaFunctionTitle contained matchgroup=mmaFunctionComment start="\%((\*\*[ *]*\)" matchgroup=mmaFunctionTitle keepend end=".[.!-]\=\s*$" end="[.!-][ \t\r<&]"me=e-1 end="\%(\*\+)\)\@=" contained contains=@mmaNotes,mmaItem,mmaCommentStar

" catch remaining (**********)'s
syntax match mmaComment "(\*\*\+)"
" catch preceding *
syntax match mmaCommentStar "^\s*\*\+" contained

" Variables:
"   Dollar sign variables
syntax match mmaVariable "\$\a\+[0-9a-zA-Z$]*"

"   Preceding and Following Contexts
syntax match mmaVariable "`[a-zA-Z$]\+[0-9a-zA-Z$]*" contains=mmaVariable
syntax match mmaVariable "[a-zA-Z$]\+[0-9a-zA-Z$]*`" contains=mmaVariable

" Strings:
"   "string"
"   'string' is not accepted (until literal strings are supported!)
syntax region mmaString start=+\\\@<!"+ skip=+\\\@<!\\\%(\\\\\)*"+ end=+"+
syntax region mmaCommentString oneline start=+\\\@<!"+ skip=+\\\@<!\\\%(\\\\\)*"+ end=+"+ contained


" Patterns:
"   Each pattern marker below can be Blank[] (_), BlankSequence[] (__)
"   or BlankNullSequence[] (___).  Most examples below can also be
"   combined, for example Pattern tests with Default values.
"
"   _Head                   Anonymous patterns
"   name_Head
"   name:(_Head|_Head2)     Named patterns
"
"   _Head : val
"   name:_Head:val          Default values
"
"   _Head?testQ,
"   _Head?(test[#]&)        Pattern tests
"
"   name_Head/;test[name]   Conditionals
"
"   _Head:.                 Predefined Default
"
"   .. ...                  Pattern Repeat

syntax match mmaPatternError "\%(_\{4,}\|)\s*&\s*)\@!\)" contained

"pattern name:
syntax match mmaPattern "[A-Za-z0-9`]\+\s*:\+[=>]\@!" contains=mmaOperator
"pattern default:
syntax match mmaPattern ": *[^ ,]\+[\], ]\@=" contains=@mmaCommentStrings,@mmaTop,mmaOperator
"pattern head/test:
syntax match mmaPattern "[A-Za-z0-9`]*_\+\%(\a\+\)\=\%(?([^)]\+)\|?[^\]},]\+\)\=" contains=@mmaTop,@mmaCommentStrings,mmaPatternError

" Operators:
"   /: ^= ^:=   UpValue
"   /;          Conditional
"   := =        DownValue
"   == === ||
"   != =!= &&   Logic
"   >= <= < >
"   += -= *=
"   /= ++ --    Math
"   ^*
"   -> :>       Rules
"   @@ @@@      Apply
"   /@ //@      Map
"   /. //.      Replace
"   // @        Function application
"   <> ~~       String/Pattern join
"   ~           infix operator
"   . :         Pattern operators
syntax match mmaOperator "\%(@\{1,3}\|//[.@]\=\)"
syntax match mmaOperator "\%(/[;:@.]\=\|\^\=:\==\)"
syntax match mmaOperator "\%([-:=]\=>\|<=\=\)"
"syntax match mmaOperator "\%(++\=\|--\=\|[/+-*]=\|[^*]\)"
syntax match mmaOperator "[*+=^.:?-]"
syntax match mmaOperator "\%(\~\~\=\)"
syntax match mmaOperator "\%(=\{2,3}\|=\=!=\|||\=\|&&\|!\)" contains=ALLBUT,mmaPureFunction

" Symbol Tags:
"   "SymbolName::item"
"syntax match mmaSymbol "`\=[a-zA-Z$]\+[0-9a-zA-Z$]*\%(`\%([a-zA-Z$]\+[0-9a-zA-Z$]*\)\=\)*" contained
syntax match mmaMessage "`\=\([a-zA-Z$]\+[0-9a-zA-Z$]*\)\%(`\%([a-zA-Z$]\+[0-9a-zA-Z$]*\)\=\)*::\a\+" contains=mmaMessageType
syntax match mmaMessageType "::\a\+"hs=s+2 contained

" Pure Functions:
syntax match mmaPureFunction "#\%(#\|\d\+\)\="
syntax match mmaPureFunction "&"

" Named Functions:
" Since everything is pretty much a function, get this straight
" from context
syntax match mmaGenericFunction "[A-Za-z0-9`]\+\s*\%([@[]\|/:\|/\=/@\)\@=" contains=mmaOperator
syntax match mmaGenericFunction "\~\s*[^~]\+\s*\~"hs=s+1,he=e-1 contains=mmaOperator,mmaBoring
syntax match mmaGenericFunction "//\s*[A-Za-z0-9`]\+"hs=s+2 contains=mmaOperator

" Numbers:
syntax match mmaNumber "\<\%(\d\+\.\=\d*\|\d*\.\=\d\+\)\>"
syntax match mmaNumber "`\d\+\%(\d\@!\.\|\>\)"

" Special Characters:
"   \[Name]     named character
"   \ooo        octal
"   \.xx        2 digit hex
"   \:xxxx      4 digit hex (multibyte unicode)
syntax match mmaUnicode "\\\[\w\+\d*\]"
syntax match mmaUnicode "\\\%(\x\{3}\|\.\x\{2}\|:\x\{4}\)"

" Syntax Errors:
syntax match mmaError "\*)" containedin=ALLBUT,@mmaComments,@mmaStrings
syntax match mmaError "\%([/]{3,}\|[&:|+*?~-]\{3,}\|[.=]\{4,}\|_\@<=\.\{2,}\|`\{2,}\)" containedin=ALLBUT,@mmaComments,@mmaStrings

" Punctuation:
" things that shouldn't really be highlighted, or highlighted
" in they're own group if you _really_ want. :)
"  ( ) { }
" TODO - use Delimiter group?
syntax match mmaBoring "[(){}]" contained

" ------------------------------------
"    future explorations...
" ------------------------------------
" Function Arguments:
"   anything between brackets []
"   (fold)
"syntax region mmaArgument start="\[" end="\]" containedin=ALLBUT,@mmaComments,@mmaStrings transparent fold

" Lists:
"   (fold)
"syntax region mmaLists start="{" end="}" containedin=ALLBUT,@mmaComments,@mmaStrings transparent fold

" Regions:
"   (fold)
"syntax region mmaRegion start="(\*\+[^<]*<!--[^>]*\*\+)" end="--> \*)" containedin=ALLBUT,@mmaStrings transparent fold keepend

" show fold text
set commentstring='(*%s*)'
"set foldtext=MmaFoldText()

"function MmaFoldText()
"    let line = getline(v:foldstart)
"
"    let lines = v:foldend-v:foldstart+1
"
"    let sub = substitute(line, '(\*\+|\*\+)|[-*_]\+', '', 'g')
"
"    if match(line, '(\*') != -1
"        let lines = lines.' line comment'
"    else
"        let lines = lines.' lines'
"    endif
"
"    return v:folddashes.' '.lines.' '.sub
"endf

"this is slow for computing folds, but it does so accurately
syntax sync fromstart

" but this seems to do alright for non fold syntax coloring.
" for folding, however, it doesn't get the nesting right.
" TODO - find sync group for multiline modules? ick...

" sync multi line comments
"syntax sync match syncComments groupthere NONE "\*)"
"syntax sync match syncComments groupthere mmaComment "(\*"

"set foldmethod=syntax
"set foldnestmax=1
"set foldminlines=15


" NOTE - the following links are not guaranteed to
" look good under all colorschemes.  You might need to
" :so $VIMRUNTIME/syntax/hitest.vim and tweak these to
" look good in yours


hi def link mmaComment           Comment
hi def link mmaCommentStar       Comment
hi def link mmaFunctionComment   Comment
hi def link mmaLooseQuote        Comment
hi def link mmaGenericFunction   Function
hi def link mmaVariable          Identifier
"    hi def link mmaSymbol            Identifier
hi def link mmaOperator          Operator
hi def link mmaPatternOp         Operator
hi def link mmaPureFunction      Operator
hi def link mmaString            String
hi def link mmaCommentString     String
hi def link mmaUnicode           String
hi def link mmaMessage           Type
hi def link mmaNumber            Type
hi def link mmaPattern           Type
hi def link mmaError             Error
hi def link mmaFixme             Error
hi def link mmaPatternError      Error
hi def link mmaTodo              Todo
hi def link mmaemPHAsis          Special
hi def link mmaFunctionTitle     Special
hi def link mmaMessageType       Special
hi def link mmaItem              Preproc


let b:current_syntax = "mma"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z$B%j  vim80/syntax/opl.vimnu�[���" Vim syntax file
" Language:	OPL
" Maintainer:	Czo <Olivier.Sirol@lip6.fr>
" Last Change:	2012 Feb 03 by Thilo Six
" $Id: opl.vim,v 1.1 2004/06/13 17:34:11 vimboss Exp $

" Open Psion Language... (EPOC16/EPOC32)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" case is not significant
syn case ignore

" A bunch of useful OPL keywords
syn keyword OPLStatement proc endp abs acos addr adjustalloc alert alloc app
syn keyword OPLStatement append appendsprite asc asin at atan back beep
syn keyword OPLStatement begintrans bookmark break busy byref cache
syn keyword OPLStatement cachehdr cacherec cachetidy call cancel caption
syn keyword OPLStatement changesprite chr$ clearflags close closesprite cls
syn keyword OPLStatement cmd$ committrans compact compress const continue
syn keyword OPLStatement copy cos count create createsprite cursor
syn keyword OPLStatement datetosecs datim$ day dayname$ days daystodate
syn keyword OPLStatement dbuttons dcheckbox dchoice ddate declare dedit
syn keyword OPLStatement deditmulti defaultwin deg delete dfile dfloat
syn keyword OPLStatement dialog diaminit diampos dinit dir$ dlong do dow
syn keyword OPLStatement dposition drawsprite dtext dtime dxinput edit else
syn keyword OPLStatement elseif enda endif endv endwh entersend entersend0
syn keyword OPLStatement eof erase err err$ errx$ escape eval exist exp ext
syn keyword OPLStatement external find findfield findlib first fix$ flags
syn keyword OPLStatement flt font freealloc gat gborder gbox gbutton
syn keyword OPLStatement gcircle gclock gclose gcls gcolor gcopy gcreate
syn keyword OPLStatement gcreatebit gdrawobject gellipse gen$ get get$
syn keyword OPLStatement getcmd$ getdoc$ getevent getevent32 geteventa32
syn keyword OPLStatement geteventc getlibh gfill gfont ggmode ggrey gheight
syn keyword OPLStatement gidentity ginfo ginfo32 ginvert giprint glineby
syn keyword OPLStatement glineto gloadbit gloadfont global gmove gorder
syn keyword OPLStatement goriginx goriginy goto gotomark gpatt gpeekline
syn keyword OPLStatement gpoly gprint gprintb gprintclip grank gsavebit
syn keyword OPLStatement gscroll gsetpenwidth gsetwin gstyle gtmode gtwidth
syn keyword OPLStatement gunloadfont gupdate guse gvisible gwidth gx
syn keyword OPLStatement gxborder gxprint gy hex$ hour iabs icon if include
syn keyword OPLStatement input insert int intf intrans key key$ keya keyc
syn keyword OPLStatement killmark kmod last lclose left$ len lenalloc
syn keyword OPLStatement linklib ln loadlib loadm loc local lock log lopen
syn keyword OPLStatement lower$ lprint max mcard mcasc mean menu mid$ min
syn keyword OPLStatement minit minute mkdir modify month month$ mpopup
syn keyword OPLStatement newobj newobjh next notes num$ odbinfo off onerr
syn keyword OPLStatement open openr opx os parse$ path pause peek pi
syn keyword OPLStatement pointerfilter poke pos position possprite print
syn keyword OPLStatement put rad raise randomize realloc recsize rename
syn keyword OPLStatement rept$ return right$ rmdir rnd rollback sci$ screen
syn keyword OPLStatement screeninfo second secstodate send setdoc setflags
syn keyword OPLStatement setname setpath sin space sqr statuswin
syn keyword OPLStatement statwininfo std stop style sum tan testevent trap
syn keyword OPLStatement type uadd unloadlib unloadm until update upper$
syn keyword OPLStatement use usr usr$ usub val var vector week while year
" syn keyword OPLStatement rem


syn match  OPLNumber		"\<\d\+\>"
syn match  OPLNumber		"\<\d\+\.\d*\>"
syn match  OPLNumber		"\.\d\+\>"

syn region  OPLString		start=+"+   end=+"+
syn region  OPLComment		start="REM[\t ]" end="$"
syn match   OPLMathsOperator    "-\|=\|[:<>+\*^/\\]"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link OPLStatement		Statement
hi def link OPLNumber		Number
hi def link OPLString		String
hi def link OPLComment		Comment
hi def link OPLMathsOperator	Conditional
"  hi def link OPLError		Error


let b:current_syntax = "opl"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z^t4�X�X�vim80/syntax/foxpro.vimnu�[���" Vim syntax file
" Filename:     foxpro.vim
" Version:      1.0
" Language:     FoxPro for DOS/UNIX v2.6
" Maintainer:   Bill W. Smith, Jr. <donal@brewich.com>
" Last Change:  15 May 2006

"     This file replaces the FoxPro for DOS v2.x syntax file 
" maintained by Powing Tse <powing@mcmug.org>
" 
" Change Log:	added support for FoxPro Codebook highlighting
" 		corrected highlighting of comments that do NOT start in col 1
" 		corrected highlighting of comments at end of line (&&)
" 
" 
" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" FoxPro Codebook Naming Conventions
syn match foxproCBConst "\<[c][A-Z][A-Za-z0-9_]*\>"
syn match foxproCBVar "\<[lgrt][acndlmf][A-Z][A-Za-z0-9_]*\>"
syn match foxproCBField "\<[a-z0-9]*\.[A-Za-z0-9_]*\>"
" PROPER CodeBook field names start with the data type and do NOT have _
syn match foxproCBField "\<[A-Za-z0-9]*\.[acndlm][A-Z][A-Za-z0-9]*\>"
syn match foxproCBWin "\<w[rbcm][A-Z][A-Za-z0-9_]*\>"
" CodeBook 2.0 defined objects as follows
" This uses the hotkey from the screen builder as the second character
syn match foxproCBObject "\<[lgr][bfthnkoli][A-Z][A-Za-z0-9_]*\>"
" A later version added the following conventions for objects
syn match foxproCBObject "\<box[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<fld[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<txt[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<phb[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<rdo[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<chk[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<pop[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<lst[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<inv[A-Z][A-Za-z0-9_]*\>"
syn match foxproCBObject "\<mnu[A-Z][A-Za-z0-9_]*\>"

syntax case ignore

" Highlight special characters
syn match foxproSpecial "^\s*!"
syn match foxproSpecial "&"
syn match foxproSpecial ";\s*$"
syn match foxproSpecial "^\s*="
syn match foxproSpecial "^\s*\\"
syn match foxproSpecial "^\s*\\\\"
syn match foxproSpecial "^\s*?"
syn match foxproSpecial "^\s*??"
syn match foxproSpecial "^\s*???"
syn match foxproSpecial "\<m\>\."

" @ Statements
syn match foxproAtSymbol contained "^\s*@"
syn match foxproAtCmd    contained "\<say\>\|\<get\>\|\<edit\>\|\<box\>\|\<clea\%[r]\>\|\<fill\>\|\<menu\>\|\<prom\%[pt]\>\|\<scro\%[ll]\>\|\<to\>"
syn match foxproAtStart  transparent "^\s*@.*" contains=ALL

" preprocessor directives
syn match foxproPreProc "^\s*#\s*\(\<if\>\|\<elif\>\|\<else\>\|\<endi\%[f]\>\)"
syn match foxproPreProc "^\s*#\s*\(\<defi\%[ne]\>\|\<unde\%[f]\>\)"
syn match foxproPreProc "^\s*#\s*\<regi\%[on]\>"

" Functions
syn match foxproFunc "\<abs\>\s*("me=e-1
syn match foxproFunc "\<acop\%[y]\>\s*("me=e-1
syn match foxproFunc "\<acos\>\s*("me=e-1
syn match foxproFunc "\<adel\>\s*("me=e-1
syn match foxproFunc "\<adir\>\s*("me=e-1
syn match foxproFunc "\<aele\%[ment]\>\s*("me=e-1
syn match foxproFunc "\<afie\%[lds]\>\s*("me=e-1
syn match foxproFunc "\<afon\%[t]\>\s*("me=e-1
syn match foxproFunc "\<ains\>\s*("me=e-1
syn match foxproFunc "\<alen\>\s*("me=e-1
syn match foxproFunc "\<alia\%[s]\>\s*("me=e-1
syn match foxproFunc "\<allt\%[rim]\>\s*("me=e-1
syn match foxproFunc "\<ansi\%[tooem]\>\s*("me=e-1
syn match foxproFunc "\<asc\>\s*("me=e-1
syn match foxproFunc "\<asca\%[n]\>\s*("me=e-1
syn match foxproFunc "\<asin\>\s*("me=e-1
syn match foxproFunc "\<asor\%[t]\>\s*("me=e-1
syn match foxproFunc "\<asub\%[script]\>\s*("me=e-1
syn match foxproFunc "\<at\>\s*("me=e-1
syn match foxproFunc "\<atan\>\s*("me=e-1
syn match foxproFunc "\<atc\>\s*("me=e-1
syn match foxproFunc "\<atcl\%[ine]\>\s*("me=e-1
syn match foxproFunc "\<atli\%[ne]\>\s*("me=e-1
syn match foxproFunc "\<atn2\>\s*("me=e-1
syn match foxproFunc "\<bar\>\s*("me=e-1
syn match foxproFunc "\<barc\%[ount]\>\s*("me=e-1
syn match foxproFunc "\<barp\%[rompt]\>\s*("me=e-1
syn match foxproFunc "\<betw\%[een]\>\s*("me=e-1
syn match foxproFunc "\<bof\>\s*("me=e-1
syn match foxproFunc "\<caps\%[lock]\>\s*("me=e-1
syn match foxproFunc "\<cdow\>\s*("me=e-1
syn match foxproFunc "\<cdx\>\s*("me=e-1
syn match foxproFunc "\<ceil\%[ing]\>\s*("me=e-1
syn match foxproFunc "\<chr\>\s*("me=e-1
syn match foxproFunc "\<chrs\%[aw]\>\s*("me=e-1
syn match foxproFunc "\<chrt\%[ran]\>\s*("me=e-1
syn match foxproFunc "\<cmon\%[th]\>\s*("me=e-1
syn match foxproFunc "\<cntb\%[ar]\>\s*("me=e-1
syn match foxproFunc "\<cntp\%[ad]\>\s*("me=e-1
syn match foxproFunc "\<col\>\s*("me=e-1
syn match foxproFunc "\<cos\>\s*("me=e-1
syn match foxproFunc "\<cpco\%[nvert]\>\s*("me=e-1
syn match foxproFunc "\<cpcu\%[rrent]\>\s*("me=e-1
syn match foxproFunc "\<cpdb\%[f]\>\s*("me=e-1
syn match foxproFunc "\<ctod\>\s*("me=e-1
syn match foxproFunc "\<curd\%[ir]\>\s*("me=e-1
syn match foxproFunc "\<date\>\s*("me=e-1
syn match foxproFunc "\<day\>\s*("me=e-1
syn match foxproFunc "\<dbf\>\s*("me=e-1
syn match foxproFunc "\<ddea\%[borttrans]\>\s*("me=e-1
syn match foxproFunc "\<ddea\%[dvise]\>\s*("me=e-1
syn match foxproFunc "\<ddee\%[nabled]\>\s*("me=e-1
syn match foxproFunc "\<ddee\%[xecute]\>\s*("me=e-1
syn match foxproFunc "\<ddei\%[nitiate]\>\s*("me=e-1
syn match foxproFunc "\<ddel\%[asterror]\>\s*("me=e-1
syn match foxproFunc "\<ddep\%[oke]\>\s*("me=e-1
syn match foxproFunc "\<dder\%[equest]\>\s*("me=e-1
syn match foxproFunc "\<ddes\%[etoption]\>\s*("me=e-1
syn match foxproFunc "\<ddes\%[etservice]\>\s*("me=e-1
syn match foxproFunc "\<ddes\%[ettopic]\>\s*("me=e-1
syn match foxproFunc "\<ddet\%[erminate]\>\s*("me=e-1
syn match foxproFunc "\<dele\%[ted]\>\s*("me=e-1
syn match foxproFunc "\<desc\%[ending]\>\s*("me=e-1
syn match foxproFunc "\<diff\%[erence]\>\s*("me=e-1
syn match foxproFunc "\<disk\%[space]\>\s*("me=e-1
syn match foxproFunc "\<dmy\>\s*("me=e-1
syn match foxproFunc "\<dow\>\s*("me=e-1
syn match foxproFunc "\<dtoc\>\s*("me=e-1
syn match foxproFunc "\<dtor\>\s*("me=e-1
syn match foxproFunc "\<dtos\>\s*("me=e-1
syn match foxproFunc "\<empt\%[y]\>\s*("me=e-1
syn match foxproFunc "\<eof\>\s*("me=e-1
syn match foxproFunc "\<erro\%[r]\>\s*("me=e-1
syn match foxproFunc "\<eval\%[uate]\>\s*("me=e-1
syn match foxproFunc "\<exp\>\s*("me=e-1
syn match foxproFunc "\<fchs\%[ize]\>\s*("me=e-1
syn match foxproFunc "\<fclo\%[se]\>\s*("me=e-1
syn match foxproFunc "\<fcou\%[nt]\>\s*("me=e-1
syn match foxproFunc "\<fcre\%[ate]\>\s*("me=e-1
syn match foxproFunc "\<fdat\%[e]\>\s*("me=e-1
syn match foxproFunc "\<feof\>\s*("me=e-1
syn match foxproFunc "\<ferr\%[or]\>\s*("me=e-1
syn match foxproFunc "\<fflu\%[sh]\>\s*("me=e-1
syn match foxproFunc "\<fget\%[s]\>\s*("me=e-1
syn match foxproFunc "\<fiel\%[d]\>\s*("me=e-1
syn match foxproFunc "\<file\>\s*("me=e-1
syn match foxproFunc "\<filt\%[er]\>\s*("me=e-1
syn match foxproFunc "\<fkla\%[bel]\>\s*("me=e-1
syn match foxproFunc "\<fkma\%[x]\>\s*("me=e-1
syn match foxproFunc "\<fldl\%[ist]\>\s*("me=e-1
syn match foxproFunc "\<floc\%[k]\>\s*("me=e-1
syn match foxproFunc "\<floo\%[r]\>\s*("me=e-1
syn match foxproFunc "\<font\%[metric]\>\s*("me=e-1
syn match foxproFunc "\<fope\%[n]\>\s*("me=e-1
syn match foxproFunc "\<for\>\s*("me=e-1
syn match foxproFunc "\<foun\%[d]\>\s*("me=e-1
syn match foxproFunc "\<fput\%[s]\>\s*("me=e-1
syn match foxproFunc "\<frea\%[d]\>\s*("me=e-1
syn match foxproFunc "\<fsee\%[k]\>\s*("me=e-1
syn match foxproFunc "\<fsiz\%[e]\>\s*("me=e-1
syn match foxproFunc "\<ftim\%[e]\>\s*("me=e-1
syn match foxproFunc "\<full\%[path]\>\s*("me=e-1
syn match foxproFunc "\<fv\>\s*("me=e-1
syn match foxproFunc "\<fwri\%[te]\>\s*("me=e-1
syn match foxproFunc "\<getb\%[ar]\>\s*("me=e-1
syn match foxproFunc "\<getd\%[ir]\>\s*("me=e-1
syn match foxproFunc "\<gete\%[nv]\>\s*("me=e-1
syn match foxproFunc "\<getf\%[ile]\>\s*("me=e-1
syn match foxproFunc "\<getf\%[ont]\>\s*("me=e-1
syn match foxproFunc "\<getp\%[ad]\>\s*("me=e-1
syn match foxproFunc "\<gomo\%[nth]\>\s*("me=e-1
syn match foxproFunc "\<head\%[er]\>\s*("me=e-1
syn match foxproFunc "\<home\>\s*("me=e-1
syn match foxproFunc "\<idxc\%[ollate]\>\s*("me=e-1
syn match foxproFunc "\<iif\>\s*("me=e-1
syn match foxproFunc "\<inke\%[y]\>\s*("me=e-1
syn match foxproFunc "\<inli\%[st]\>\s*("me=e-1
syn match foxproFunc "\<insm\%[ode]\>\s*("me=e-1
syn match foxproFunc "\<int\>\s*("me=e-1
syn match foxproFunc "\<isal\%[pha]\>\s*("me=e-1
syn match foxproFunc "\<isbl\%[ank]\>\s*("me=e-1
syn match foxproFunc "\<isco\%[lor]\>\s*("me=e-1
syn match foxproFunc "\<isdi\%[git]\>\s*("me=e-1
syn match foxproFunc "\<islo\%[wer]\>\s*("me=e-1
syn match foxproFunc "\<isre\%[adonly]\>\s*("me=e-1
syn match foxproFunc "\<isup\%[per]\>\s*("me=e-1
syn match foxproFunc "\<key\>\s*("me=e-1
syn match foxproFunc "\<keym\%[atch]\>\s*("me=e-1
syn match foxproFunc "\<last\%[key]\>\s*("me=e-1
syn match foxproFunc "\<left\>\s*("me=e-1
syn match foxproFunc "\<len\>\s*("me=e-1
syn match foxproFunc "\<like\>\s*("me=e-1
syn match foxproFunc "\<line\%[no]\>\s*("me=e-1
syn match foxproFunc "\<locf\%[ile]\>\s*("me=e-1
syn match foxproFunc "\<lock\>\s*("me=e-1
syn match foxproFunc "\<log\>\s*("me=e-1
syn match foxproFunc "\<log1\%[0]\>\s*("me=e-1
syn match foxproFunc "\<look\%[up]\>\s*("me=e-1
syn match foxproFunc "\<lowe\%[r]\>\s*("me=e-1
syn match foxproFunc "\<ltri\%[m]\>\s*("me=e-1
syn match foxproFunc "\<lupd\%[ate]\>\s*("me=e-1
syn match foxproFunc "\<max\>\s*("me=e-1
syn match foxproFunc "\<mcol\>\s*("me=e-1
syn match foxproFunc "\<mdow\%[n]\>\s*("me=e-1
syn match foxproFunc "\<mdx\>\s*("me=e-1
syn match foxproFunc "\<mdy\>\s*("me=e-1
syn match foxproFunc "\<meml\%[ines]\>\s*("me=e-1
syn match foxproFunc "\<memo\%[ry]\>\s*("me=e-1
syn match foxproFunc "\<menu\>\s*("me=e-1
syn match foxproFunc "\<mess\%[age]\>\s*("me=e-1
syn match foxproFunc "\<min\>\s*("me=e-1
syn match foxproFunc "\<mlin\%[e]\>\s*("me=e-1
syn match foxproFunc "\<mod\>\s*("me=e-1
syn match foxproFunc "\<mont\%[h]\>\s*("me=e-1
syn match foxproFunc "\<mrkb\%[ar]\>\s*("me=e-1
syn match foxproFunc "\<mrkp\%[ad]\>\s*("me=e-1
syn match foxproFunc "\<mrow\>\s*("me=e-1
syn match foxproFunc "\<mwin\%[dow]\>\s*("me=e-1
syn match foxproFunc "\<ndx\>\s*("me=e-1
syn match foxproFunc "\<norm\%[alize]\>\s*("me=e-1
syn match foxproFunc "\<numl\%[ock]\>\s*("me=e-1
syn match foxproFunc "\<objn\%[um]\>\s*("me=e-1
syn match foxproFunc "\<objv\%[ar]\>\s*("me=e-1
syn match foxproFunc "\<occu\%[rs]\>\s*("me=e-1
syn match foxproFunc "\<oemt\%[oansi]\>\s*("me=e-1
syn match foxproFunc "\<on\>\s*("me=e-1
syn match foxproFunc "\<orde\%[r]\>\s*("me=e-1
syn match foxproFunc "\<os\>\s*("me=e-1
syn match foxproFunc "\<pad\>\s*("me=e-1
syn match foxproFunc "\<padc\>\s*("me=e-1
syn match foxproFunc "\<padl\>\s*("me=e-1
syn match foxproFunc "\<padr\>\s*("me=e-1
syn match foxproFunc "\<para\%[meters]\>\s*("me=e-1
syn match foxproFunc "\<paym\%[ent]\>\s*("me=e-1
syn match foxproFunc "\<pcol\>\s*("me=e-1
syn match foxproFunc "\<pi\>\s*("me=e-1
syn match foxproFunc "\<popu\%[p]\>\s*("me=e-1
syn match foxproFunc "\<prin\%[tstatus]\>\s*("me=e-1
syn match foxproFunc "\<prmb\%[ar]\>\s*("me=e-1
syn match foxproFunc "\<prmp\%[ad]\>\s*("me=e-1
syn match foxproFunc "\<prog\%[ram]\>\s*("me=e-1
syn match foxproFunc "\<prom\%[pt]\>\s*("me=e-1
syn match foxproFunc "\<prop\%[er]\>\s*("me=e-1
syn match foxproFunc "\<prow\>\s*("me=e-1
syn match foxproFunc "\<prti\%[nfo]\>\s*("me=e-1
syn match foxproFunc "\<putf\%[ile]\>\s*("me=e-1
syn match foxproFunc "\<pv\>\s*("me=e-1
syn match foxproFunc "\<rand\>\s*("me=e-1
syn match foxproFunc "\<rat\>\s*("me=e-1
syn match foxproFunc "\<ratl\%[ine]\>\s*("me=e-1
syn match foxproFunc "\<rdle\%[vel]\>\s*("me=e-1
syn match foxproFunc "\<read\%[key]\>\s*("me=e-1
syn match foxproFunc "\<recc\%[ount]\>\s*("me=e-1
syn match foxproFunc "\<recn\%[o]\>\s*("me=e-1
syn match foxproFunc "\<recs\%[ize]\>\s*("me=e-1
syn match foxproFunc "\<rela\%[tion]\>\s*("me=e-1
syn match foxproFunc "\<repl\%[icate]\>\s*("me=e-1
syn match foxproFunc "\<rgbs\%[cheme]\>\s*("me=e-1
syn match foxproFunc "\<righ\%[t]\>\s*("me=e-1
syn match foxproFunc "\<rloc\%[k]\>\s*("me=e-1
syn match foxproFunc "\<roun\%[d]\>\s*("me=e-1
syn match foxproFunc "\<row\>\s*("me=e-1
syn match foxproFunc "\<rtod\>\s*("me=e-1
syn match foxproFunc "\<rtri\%[m]\>\s*("me=e-1
syn match foxproFunc "\<sche\%[me]\>\s*("me=e-1
syn match foxproFunc "\<scol\%[s]\>\s*("me=e-1
syn match foxproFunc "\<seco\%[nds]\>\s*("me=e-1
syn match foxproFunc "\<seek\>\s*("me=e-1
syn match foxproFunc "\<sele\%[ct]\>\s*("me=e-1
syn match foxproFunc "\<set\>\s*("me=e-1
syn match foxproFunc "\<sign\>\s*("me=e-1
syn match foxproFunc "\<sin\>\s*("me=e-1
syn match foxproFunc "\<skpb\%[ar]\>\s*("me=e-1
syn match foxproFunc "\<skpp\%[ad]\>\s*("me=e-1
syn match foxproFunc "\<soun\%[dex]\>\s*("me=e-1
syn match foxproFunc "\<spac\%[e]\>\s*("me=e-1
syn match foxproFunc "\<sqrt\>\s*("me=e-1
syn match foxproFunc "\<srow\%[s]\>\s*("me=e-1
syn match foxproFunc "\<str\>\s*("me=e-1
syn match foxproFunc "\<strt\%[ran]\>\s*("me=e-1
syn match foxproFunc "\<stuf\%[f]\>\s*("me=e-1
syn match foxproFunc "\<subs\%[tr]\>\s*("me=e-1
syn match foxproFunc "\<sysm\%[etric]\>\s*("me=e-1
syn match foxproFunc "\<sys\>\s*("me=e-1
syn match foxproFunc "\<tag\>\s*("me=e-1
syn match foxproFunc "\<tagc\%[ount]\>\s*("me=e-1
syn match foxproFunc "\<tagn\%[o]\>\s*("me=e-1
syn match foxproFunc "\<tan\>\s*("me=e-1
syn match foxproFunc "\<targ\%[et]\>\s*("me=e-1
syn match foxproFunc "\<time\>\s*("me=e-1
syn match foxproFunc "\<tran\%[sform]\>\s*("me=e-1
syn match foxproFunc "\<trim\>\s*("me=e-1
syn match foxproFunc "\<txtw\%[idth]\>\s*("me=e-1
syn match foxproFunc "\<type\>\s*("me=e-1
syn match foxproFunc "\<uniq\%[ue]\>\s*("me=e-1
syn match foxproFunc "\<upda\%[ted]\>\s*("me=e-1
syn match foxproFunc "\<uppe\%[r]\>\s*("me=e-1
syn match foxproFunc "\<used\>\s*("me=e-1
syn match foxproFunc "\<val\>\s*("me=e-1
syn match foxproFunc "\<varr\%[ead]\>\s*("me=e-1
syn match foxproFunc "\<vers\%[ion]\>\s*("me=e-1
syn match foxproFunc "\<wbor\%[der]\>\s*("me=e-1
syn match foxproFunc "\<wchi\%[ld]\>\s*("me=e-1
syn match foxproFunc "\<wcol\%[s]\>\s*("me=e-1
syn match foxproFunc "\<wexi\%[st]\>\s*("me=e-1
syn match foxproFunc "\<wfon\%[t]\>\s*("me=e-1
syn match foxproFunc "\<wlas\%[t]\>\s*("me=e-1
syn match foxproFunc "\<wlco\%[l]\>\s*("me=e-1
syn match foxproFunc "\<wlro\%[w]\>\s*("me=e-1
syn match foxproFunc "\<wmax\%[imum]\>\s*("me=e-1
syn match foxproFunc "\<wmin\%[imum]\>\s*("me=e-1
syn match foxproFunc "\<wont\%[op]\>\s*("me=e-1
syn match foxproFunc "\<wout\%[put]\>\s*("me=e-1
syn match foxproFunc "\<wpar\%[ent]\>\s*("me=e-1
syn match foxproFunc "\<wrea\%[d]\>\s*("me=e-1
syn match foxproFunc "\<wrow\%[s]\>\s*("me=e-1
syn match foxproFunc "\<wtit\%[le]\>\s*("me=e-1
syn match foxproFunc "\<wvis\%[ible]\>\s*("me=e-1
syn match foxproFunc "\<year\>\s*("me=e-1

" Commands
syn match foxproCmd "^\s*\<acce\%[pt]\>"
syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<menu\>"
syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<scre\%[en]\>"
syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<appe\%[nd]\>"
syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<from\>"
syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<from\>\s*\<arra\%[y]\>"
syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<gene\%[ral]\>"
syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<memo\>"
syn match foxproCmd "^\s*\<assi\%[st]\>"
syn match foxproCmd "^\s*\<aver\%[age]\>"
syn match foxproCmd "^\s*\<blan\%[k]\>"
syn match foxproCmd "^\s*\<brow\%[se]\>"
syn match foxproCmd "^\s*\<buil\%[d]\>\s*\<app\>"
syn match foxproCmd "^\s*\<buil\%[d]\>\s*\<exe\>"
syn match foxproCmd "^\s*\<buil\%[d]\>\s*\<proj\%[ect]\>"
syn match foxproCmd "^\s*\<calc\%[ulate]\>"
syn match foxproCmd "^\s*\<call\>"
syn match foxproCmd "^\s*\<canc\%[el]\>"
syn match foxproCmd "^\s*\<chan\%[ge]\>"
syn match foxproCmd "^\s*\<clea\%[r]\>"
syn match foxproCmd "^\s*\<clos\%[e]\>"
syn match foxproCmd "^\s*\<clos\%[e]\>\s*\<memo\>"
syn match foxproCmd "^\s*\<comp\%[ile]\>"
syn match foxproCmd "^\s*\<cont\%[inue]\>"
syn match foxproCmd "^\s*\<copy\>\s*\<file\>"
syn match foxproCmd "^\s*\<copy\>\s*\<inde\%[xes]\>"
syn match foxproCmd "^\s*\<copy\>\s*\<memo\>"
syn match foxproCmd "^\s*\<copy\>\s*\<stru\%[cture]\>"
syn match foxproCmd "^\s*\<copy\>\s*\<stru\%[cture]\>\s*\<exte\%[nded]\>"
syn match foxproCmd "^\s*\<copy\>\s*\<tag\>"
syn match foxproCmd "^\s*\<copy\>\s*\<to\>"
syn match foxproCmd "^\s*\<copy\>\s*\<to\>\s*\<arra\%[y]\>"
syn match foxproCmd "^\s*\<coun\%[t]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<colo\%[r]\>\s*\<set\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<curs\%[or]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<from\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<labe\%[l]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<menu\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<proj\%[ect]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<quer\%[y]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<repo\%[rt]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<scre\%[en]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<tabl\%[e]\>"
syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<view\>"
syn match foxproCmd "^\s*\<dde\>"
syn match foxproCmd "^\s*\<deac\%[tivate]\>\s*\<menu\>"
syn match foxproCmd "^\s*\<deac\%[tivate]\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<deac\%[tivate]\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<decl\%[are]\>"
syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<bar\>"
syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<box\>"
syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<menu\>"
syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<pad\>"
syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<dele\%[te]\>"
syn match foxproCmd "^\s*\<dele\%[te]\>\s*\<file\>"
syn match foxproCmd "^\s*\<dele\%[te]\>\s*\<tag\>"
syn match foxproCmd "^\s*\<dime\%[nsion]\>"
syn match foxproCmd "^\s*\<dire\%[ctory]\>"
syn match foxproCmd "^\s*\<disp\%[lay]\>"
syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<file\%[s]\>"
syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<memo\%[ry]\>"
syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<stat\%[us]\>"
syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<stru\%[cture]\>"
syn match foxproCmd "^\s*\<do\>"
syn match foxproCmd "^\s*\<edit\>"
syn match foxproCmd "^\s*\<ejec\%[t]\>"
syn match foxproCmd "^\s*\<ejec\%[t]\>\s*\<page\>"
syn match foxproCmd "^\s*\<eras\%[e]\>"
syn match foxproCmd "^\s*\<exit\>"
syn match foxproCmd "^\s*\<expo\%[rt]\>"
syn match foxproCmd "^\s*\<exte\%[rnal]\>"
syn match foxproCmd "^\s*\<file\%[r]\>"
syn match foxproCmd "^\s*\<find\>"
syn match foxproCmd "^\s*\<flus\%[h]\>"
syn match foxproCmd "^\s*\<func\%[tion]\>"
syn match foxproCmd "^\s*\<gath\%[er]\>"
syn match foxproCmd "^\s*\<gete\%[xpr]\>"
syn match foxproCmd "^\s*\<go\>"
syn match foxproCmd "^\s*\<goto\>"
syn match foxproCmd "^\s*\<help\>"
syn match foxproCmd "^\s*\<hide\>\s*\<menu\>"
syn match foxproCmd "^\s*\<hide\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<hide\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<impo\%[rt]\>"
syn match foxproCmd "^\s*\<inde\%[x]\>"
syn match foxproCmd "^\s*\<inpu\%[t]\>"
syn match foxproCmd "^\s*\<inse\%[rt]\>"
syn match foxproCmd "^\s*\<join\>"
syn match foxproCmd "^\s*\<keyb\%[oard]\>"
syn match foxproCmd "^\s*\<labe\%[l]\>"
syn match foxproCmd "^\s*\<list\>"
syn match foxproCmd "^\s*\<load\>"
syn match foxproCmd "^\s*\<loca\%[te]\>"
syn match foxproCmd "^\s*\<loop\>"
syn match foxproCmd "^\s*\<menu\>"
syn match foxproCmd "^\s*\<menu\>\s*\<to\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<comm\%[and]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<file\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<gene\%[ral]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<labe\%[l]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<memo\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<menu\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<proj\%[ect]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<quer\%[y]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<repo\%[rt]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<scre\%[en]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<stru\%[cture]\>"
syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<move\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<move\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<note\>"
syn match foxproCmd "^\s*\<on\>\s*\<apla\%[bout]\>"
syn match foxproCmd "^\s*\<on\>\s*\<bar\>"
syn match foxproCmd "^\s*\<on\>\s*\<erro\%[r]\>"
syn match foxproCmd "^\s*\<on\>\s*\<esca\%[pe]\>"
syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<bar\>"
syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<menu\>"
syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<pad\>"
syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<on\>\s*\<key\>"
syn match foxproCmd "^\s*\<on\>\s*\<key\>\s*\<=\>"
syn match foxproCmd "^\s*\<on\>\s*\<key\>\s*\<labe\%[l]\>"
syn match foxproCmd "^\s*\<on\>\s*\<mach\%[elp]\>"
syn match foxproCmd "^\s*\<on\>\s*\<pad\>"
syn match foxproCmd "^\s*\<on\>\s*\<page\>"
syn match foxproCmd "^\s*\<on\>\s*\<read\%[error]\>"
syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<bar\>"
syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<menu\>"
syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<pad\>"
syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<on\>\s*\<shut\%[down]\>"
syn match foxproCmd "^\s*\<pack\>"
syn match foxproCmd "^\s*\<para\%[meters]\>"
syn match foxproCmd "^\s*\<play\>\s*\<macr\%[o]\>"
syn match foxproCmd "^\s*\<pop\>\s*\<key\>"
syn match foxproCmd "^\s*\<pop\>\s*\<menu\>"
syn match foxproCmd "^\s*\<pop\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<priv\%[ate]\>"
syn match foxproCmd "^\s*\<proc\%[edure]\>"
syn match foxproCmd "^\s*\<publ\%[ic]\>"
syn match foxproCmd "^\s*\<push\>\s*\<key\>"
syn match foxproCmd "^\s*\<push\>\s*\<menu\>"
syn match foxproCmd "^\s*\<push\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<quit\>"
syn match foxproCmd "^\s*\<read\>"
syn match foxproCmd "^\s*\<read\>\s*\<menu\>"
syn match foxproCmd "^\s*\<reca\%[ll]\>"
syn match foxproCmd "^\s*\<rein\%[dex]\>"
syn match foxproCmd "^\s*\<rele\%[ase]\>"
syn match foxproCmd "^\s*\<rele\%[ase]\>\s*\<modu\%[le]\>"
syn match foxproCmd "^\s*\<rena\%[me]\>"
syn match foxproCmd "^\s*\<repl\%[ace]\>"
syn match foxproCmd "^\s*\<repl\%[ace]\>\s*\<from\>\s*\<arra\%[y]\>"
syn match foxproCmd "^\s*\<repo\%[rt]\>"
syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<from\>"
syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<macr\%[os]\>"
syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<scre\%[en]\>"
syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<resu\%[me]\>"
syn match foxproCmd "^\s*\<retr\%[y]\>"
syn match foxproCmd "^\s*\<retu\%[rn]\>"
syn match foxproCmd "^\s*\<run\>"
syn match foxproCmd "^\s*\<run\>\s*\/n"
syn match foxproCmd "^\s*\<runs\%[cript]\>"
syn match foxproCmd "^\s*\<save\>\s*\<macr\%[os]\>"
syn match foxproCmd "^\s*\<save\>\s*\<scre\%[en]\>"
syn match foxproCmd "^\s*\<save\>\s*\<to\>"
syn match foxproCmd "^\s*\<save\>\s*\<wind\%[ows]\>"
syn match foxproCmd "^\s*\<scat\%[ter]\>"
syn match foxproCmd "^\s*\<scro\%[ll]\>"
syn match foxproCmd "^\s*\<seek\>"
syn match foxproCmd "^\s*\<sele\%[ct]\>"
syn match foxproCmd "^\s*\<set\>"
syn match foxproCmd "^\s*\<set\>\s*\<alte\%[rnate]\>"
syn match foxproCmd "^\s*\<set\>\s*\<ansi\>"
syn match foxproCmd "^\s*\<set\>\s*\<apla\%[bout]\>"
syn match foxproCmd "^\s*\<set\>\s*\<auto\%[save]\>"
syn match foxproCmd "^\s*\<set\>\s*\<bell\>"
syn match foxproCmd "^\s*\<set\>\s*\<blin\%[k]\>"
syn match foxproCmd "^\s*\<set\>\s*\<bloc\%[ksize]\>"
syn match foxproCmd "^\s*\<set\>\s*\<bord\%[er]\>"
syn match foxproCmd "^\s*\<set\>\s*\<brst\%[atus]\>"
syn match foxproCmd "^\s*\<set\>\s*\<carr\%[y]\>"
syn match foxproCmd "^\s*\<set\>\s*\<cent\%[ury]\>"
syn match foxproCmd "^\s*\<set\>\s*\<clea\%[r]\>"
syn match foxproCmd "^\s*\<set\>\s*\<cloc\%[k]\>"
syn match foxproCmd "^\s*\<set\>\s*\<coll\%[ate]\>"
syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<of\>"
syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<of\>\s*\<sche\%[me]\>"
syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<set\>"
syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<to\>"
syn match foxproCmd "^\s*\<set\>\s*\<comp\%[atible]\>"
syn match foxproCmd "^\s*\<set\>\s*\<conf\%[irm]\>"
syn match foxproCmd "^\s*\<set\>\s*\<cons\%[ole]\>"
syn match foxproCmd "^\s*\<set\>\s*\<curr\%[ency]\>"
syn match foxproCmd "^\s*\<set\>\s*\<curs\%[or]\>"
syn match foxproCmd "^\s*\<set\>\s*\<date\>"
syn match foxproCmd "^\s*\<set\>\s*\<debu\%[g]\>"
syn match foxproCmd "^\s*\<set\>\s*\<deci\%[mals]\>"
syn match foxproCmd "^\s*\<set\>\s*\<defa\%[ult]\>"
syn match foxproCmd "^\s*\<set\>\s*\<dele\%[ted]\>"
syn match foxproCmd "^\s*\<set\>\s*\<deli\%[miters]\>"
syn match foxproCmd "^\s*\<set\>\s*\<deve\%[lopment]\>"
syn match foxproCmd "^\s*\<set\>\s*\<devi\%[ce]\>"
syn match foxproCmd "^\s*\<set\>\s*\<disp\%[lay]\>"
syn match foxproCmd "^\s*\<set\>\s*\<dohi\%[story]\>"
syn match foxproCmd "^\s*\<set\>\s*\<echo\>"
syn match foxproCmd "^\s*\<set\>\s*\<esca\%[pe]\>"
syn match foxproCmd "^\s*\<set\>\s*\<exac\%[t]\>"
syn match foxproCmd "^\s*\<set\>\s*\<excl\%[usive]\>"
syn match foxproCmd "^\s*\<set\>\s*\<fiel\%[ds]\>"
syn match foxproCmd "^\s*\<set\>\s*\<filt\%[er]\>"
syn match foxproCmd "^\s*\<set\>\s*\<fixe\%[d]\>"
syn match foxproCmd "^\s*\<set\>\s*\<form\%[at]\>"
syn match foxproCmd "^\s*\<set\>\s*\<full\%[path]\>"
syn match foxproCmd "^\s*\<set\>\s*\<func\%[tion]\>"
syn match foxproCmd "^\s*\<set\>\s*\<head\%[ings]\>"
syn match foxproCmd "^\s*\<set\>\s*\<help\>"
syn match foxproCmd "^\s*\<set\>\s*\<help\%[filter]\>"
syn match foxproCmd "^\s*\<set\>\s*\<hour\%[s]\>"
syn match foxproCmd "^\s*\<set\>\s*\<inde\%[x]\>"
syn match foxproCmd "^\s*\<set\>\s*\<inte\%[nsity]\>"
syn match foxproCmd "^\s*\<set\>\s*\<key\>"
syn match foxproCmd "^\s*\<set\>\s*\<keyc\%[omp]\>"
syn match foxproCmd "^\s*\<set\>\s*\<libr\%[ary]\>"
syn match foxproCmd "^\s*\<set\>\s*\<lock\>"
syn match foxproCmd "^\s*\<set\>\s*\<loge\%[rrors]\>"
syn match foxproCmd "^\s*\<set\>\s*\<macd\%[esktop]\>"
syn match foxproCmd "^\s*\<set\>\s*\<mach\%[elp]\>"
syn match foxproCmd "^\s*\<set\>\s*\<mack\%[ey]\>"
syn match foxproCmd "^\s*\<set\>\s*\<marg\%[in]\>"
syn match foxproCmd "^\s*\<set\>\s*\<mark\>\s*\<of\>"
syn match foxproCmd "^\s*\<set\>\s*\<mark\>\s*\<to\>"
syn match foxproCmd "^\s*\<set\>\s*\<memo\%[width]\>"
syn match foxproCmd "^\s*\<set\>\s*\<mess\%[age]\>"
syn match foxproCmd "^\s*\<set\>\s*\<mous\%[e]\>"
syn match foxproCmd "^\s*\<set\>\s*\<mult\%[ilocks]\>"
syn match foxproCmd "^\s*\<set\>\s*\<near\>"
syn match foxproCmd "^\s*\<set\>\s*\<nocp\%[trans]\>"
syn match foxproCmd "^\s*\<set\>\s*\<noti\%[fy]\>"
syn match foxproCmd "^\s*\<set\>\s*\<odom\%[eter]\>"
syn match foxproCmd "^\s*\<set\>\s*\<opti\%[mize]\>"
syn match foxproCmd "^\s*\<set\>\s*\<orde\%[r]\>"
syn match foxproCmd "^\s*\<set\>\s*\<pale\%[tte]\>"
syn match foxproCmd "^\s*\<set\>\s*\<path\>"
syn match foxproCmd "^\s*\<set\>\s*\<pdse\%[tup]\>"
syn match foxproCmd "^\s*\<set\>\s*\<poin\%[t]\>"
syn match foxproCmd "^\s*\<set\>\s*\<prin\%[ter]\>"
syn match foxproCmd "^\s*\<set\>\s*\<proc\%[edure]\>"
syn match foxproCmd "^\s*\<set\>\s*\<read\%[border]\>"
syn match foxproCmd "^\s*\<set\>\s*\<refr\%[esh]\>"
syn match foxproCmd "^\s*\<set\>\s*\<rela\%[tion]\>"
syn match foxproCmd "^\s*\<set\>\s*\<rela\%[tion]\>\s*\<off\>"
syn match foxproCmd "^\s*\<set\>\s*\<repr\%[ocess]\>"
syn match foxproCmd "^\s*\<set\>\s*\<reso\%[urce]\>"
syn match foxproCmd "^\s*\<set\>\s*\<safe\%[ty]\>"
syn match foxproCmd "^\s*\<set\>\s*\<scor\%[eboard]\>"
syn match foxproCmd "^\s*\<set\>\s*\<sepa\%[rator]\>"
syn match foxproCmd "^\s*\<set\>\s*\<shad\%[ows]\>"
syn match foxproCmd "^\s*\<set\>\s*\<skip\>"
syn match foxproCmd "^\s*\<set\>\s*\<skip\>\s*\<of\>"
syn match foxproCmd "^\s*\<set\>\s*\<spac\%[e]\>"
syn match foxproCmd "^\s*\<set\>\s*\<stat\%[us]\>"
syn match foxproCmd "^\s*\<set\>\s*\<stat\%[us]\>\s*\<bar\>"
syn match foxproCmd "^\s*\<set\>\s*\<step\>"
syn match foxproCmd "^\s*\<set\>\s*\<stic\%[ky]\>"
syn match foxproCmd "^\s*\<set\>\s*\<sysm\%[enu]\>"
syn match foxproCmd "^\s*\<set\>\s*\<talk\>"
syn match foxproCmd "^\s*\<set\>\s*\<text\%[merge]\>"
syn match foxproCmd "^\s*\<set\>\s*\<text\%[merge]\>\s*\<deli\%[miters]\>"
syn match foxproCmd "^\s*\<set\>\s*\<topi\%[c]\>"
syn match foxproCmd "^\s*\<set\>\s*\<trbe\%[tween]\>"
syn match foxproCmd "^\s*\<set\>\s*\<type\%[ahead]\>"
syn match foxproCmd "^\s*\<set\>\s*\<udfp\%[arms]\>"
syn match foxproCmd "^\s*\<set\>\s*\<uniq\%[ue]\>"
syn match foxproCmd "^\s*\<set\>\s*\<view\>"
syn match foxproCmd "^\s*\<set\>\s*\<volu\%[me]\>"
syn match foxproCmd "^\s*\<set\>\s*\<wind\%[ow]\>\s*\<of\>\s*\<memo\>"
syn match foxproCmd "^\s*\<set\>\s*\<xcmd\%[file]\>"
syn match foxproCmd "^\s*\<show\>\s*\<get\>"
syn match foxproCmd "^\s*\<show\>\s*\<gets\>"
syn match foxproCmd "^\s*\<show\>\s*\<menu\>"
syn match foxproCmd "^\s*\<show\>\s*\<obje\%[ct]\>"
syn match foxproCmd "^\s*\<show\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<show\>\s*\<wind\%[ow]\>"
syn match foxproCmd "^\s*\<size\>\s*\<popu\%[p]\>"
syn match foxproCmd "^\s*\<skip\>"
syn match foxproCmd "^\s*\<sort\>"
syn match foxproCmd "^\s*\<stor\%[e]\>"
syn match foxproCmd "^\s*\<sum\>"
syn match foxproCmd "^\s*\<susp\%[end]\>"
syn match foxproCmd "^\s*\<tota\%[l]\>"
syn match foxproCmd "^\s*\<type\>"
syn match foxproCmd "^\s*\<unlo\%[ck]\>"
syn match foxproCmd "^\s*\<upda\%[te]\>"
syn match foxproCmd "^\s*\<use\>"
syn match foxproCmd "^\s*\<wait\>"
syn match foxproCmd "^\s*\<zap\>"
syn match foxproCmd "^\s*\<zoom\>\s*\<wind\%[ow]\>"

" Enclosed Block
syn match foxproEnBlk "^\s*\<do\>\s*\<case\>"
syn match foxproEnBlk "^\s*\<case\>"
syn match foxproEnBlk "^\s*\<othe\%[rwise]\>"
syn match foxproEnBlk "^\s*\<endc\%[ase]\>"
syn match foxproEnBlk "^\s*\<do\>\s*\<whil\%[e]\>"
syn match foxproEnBlk "^\s*\<endd\%[o]\>"
syn match foxproEnBlk "^\s*\<for\>"
syn match foxproEnBlk "^\s*\<endf\%[or]\>"
syn match foxproEnBlk "^\s*\<next\>"
syn match foxproEnBlk "^\s*\<if\>"
syn match foxproEnBlk "^\s*\<else\>"
syn match foxproEnBlk "^\s*\<endi\%[f]\>"
syn match foxproEnBlk "^\s*\<prin\%[tjob]\>"
syn match foxproEnBlk "^\s*\<endp\%[rintjob]\>"
syn match foxproEnBlk "^\s*\<scan\>"
syn match foxproEnBlk "^\s*\<ends\%[can]\>"
syn match foxproEnBlk "^\s*\<text\>"
syn match foxproEnBlk "^\s*\<endt\%[ext]\>"

" System Variables
syn keyword foxproSysVar _alignment _assist _beautify _box _calcmem _calcvalue
syn keyword foxproSysVar _cliptext _curobj _dblclick _diarydate _dos _foxdoc
syn keyword foxproSysVar _foxgraph _gengraph _genmenu _genpd _genscrn _genxtab
syn keyword foxproSysVar _indent _lmargin _mac _mline _padvance _pageno _pbpage
syn keyword foxproSysVar _pcolno _pcopies _pdriver _pdsetup _pecode _peject _pepage
syn keyword foxproSysVar _plength _plineno _ploffset _ppitch _pquality _pretext
syn keyword foxproSysVar _pscode _pspacing _pwait _rmargin _shell _spellchk
syn keyword foxproSysVar _startup _tabs _tally _text _throttle _transport _unix
syn keyword foxproSysVar _windows _wrap

" Strings
syn region foxproString start=+"+ end=+"+ oneline
syn region foxproString start=+'+ end=+'+ oneline
syn region foxproString start=+\[+ end=+\]+ oneline

" Constants
syn match foxproConst "\.t\."
syn match foxproConst "\.f\."

"integer number, or floating point number without a dot and with "f".
syn match foxproNumber "\<[0-9]\+\>"
"floating point number, with dot, optional exponent
syn match foxproFloat  "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>"
"floating point number, starting with a dot, optional exponent
syn match foxproFloat  "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
"floating point number, without dot, with exponent
syn match foxproFloat  "\<[0-9]\+e[-+]\=[0-9]\+\>"

syn match foxproComment "^\s*\*.*"
syn match foxproComment "&&.*"

"catch errors caused by wrong parenthesis
syn region foxproParen transparent start='(' end=')' contains=ALLBUT,foxproParenErr
syn match foxproParenErr ")"

syn sync minlines=1 maxlines=3

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link foxproSpecial  Special
hi def link foxproAtSymbol Special
hi def link foxproAtCmd    Statement
hi def link foxproPreProc  PreProc
hi def link foxproFunc     Identifier
hi def link foxproCmd      Statement
hi def link foxproEnBlk    Type
hi def link foxproSysVar   String
hi def link foxproString   String
hi def link foxproConst    Constant
hi def link foxproNumber   Number
hi def link foxproFloat    Float
hi def link foxproComment  Comment
hi def link foxproParenErr Error
hi def link foxproCBConst  PreProc
hi def link foxproCBField  Special
hi def link foxproCBVar    Identifier
hi def link foxproCBWin    Special
hi def link foxproCBObject Identifier


let b:current_syntax = "foxpro"
PK�j�Z�X�hhvim80/syntax/tak.vimnu�[���" Vim syntax file
" Language:     TAK2, TAK3, TAK2000 thermal modeling input file
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.tak
" URL:		http://www.naglenet.org/vim/syntax/tak.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
"
" Begin syntax definitions for tak input file.
"

" Force free-form fortran format
let fortran_free_source=1

" Load FORTRAN syntax file
runtime! syntax/fortran.vim
unlet b:current_syntax



" Define keywords for TAK and TAKOUT
syn keyword takOptions  AUTODAMP CPRINT CSGDUMP GPRINT HPRINT LODTMP
syn keyword takOptions  LOGIC LPRINT NCVPRINT PLOTQ QPRINT QDUMP
syn keyword takOptions  SUMMARY SOLRTN UID DICTIONARIES

syn keyword takRoutine  SSITER FWDWRD FWDBCK BCKWRD

syn keyword takControl  ABSZRO BACKUP DAMP DTIMEI DTIMEL DTIMEH IFC
syn keyword takControl  MAXTEMP NLOOPS NLOOPT NODELIST OUTPUT PLOT
syn keyword takControl  SCALE SIGMA SSCRIT TIMEND TIMEN TIMEO TRCRIT
syn keyword takControl  PLOT

syn keyword takSolids   PLATE CYL
syn keyword takSolidsArg   ID MATNAM NTYPE TEMP XL YL ZL ISTRN ISTRG NNX
syn keyword takSolidsArg   NNY NNZ INCX INCY INCZ IAK IAC DIFF ARITH BOUN
syn keyword takSolidsArg   RMIN RMAX AXMAX NNR NNTHETA INCR INCTHETA END

syn case ignore

syn keyword takMacro    fac pstart pstop
syn keyword takMacro    takcommon fstart fstop

syn keyword takIdentifier  flq flx gen ncv per sim siv stf stv tvd tvs
syn keyword takIdentifier  tvt pro thm



" Define matches for TAK
syn match  takFortran     "^F[0-9 ]"me=e-1
syn match  takMotran      "^M[0-9 ]"me=e-1

syn match  takComment     "^C.*$"
syn match  takComment     "^R.*$"
syn match  takComment     "\$.*$"

syn match  takHeader      "^header[^,]*"

syn match  takIncludeFile "include \+[^ ]\+"hs=s+8 contains=fortranInclude

syn match  takInteger     "-\=\<[0-9]*\>"
syn match  takFloat       "-\=\<[0-9]*\.[0-9]*"
syn match  takScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"

syn match  takEndData     "END OF DATA"

if exists("thermal_todo")
  execute 'syn match  takTodo ' . '"^'.thermal_todo.'.*$"'
else
  syn match  takTodo	    "^?.*$"
endif



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link takMacro		Macro
hi def link takOptions		Special
hi def link takRoutine		Type
hi def link takControl		Special
hi def link takSolids		Special
hi def link takSolidsArg		Statement
hi def link takIdentifier		Identifier

hi def link takFortran		PreProc
hi def link takMotran		PreProc

hi def link takComment		Comment
hi def link takHeader		Typedef
hi def link takIncludeFile		Type
hi def link takInteger		Number
hi def link takFloat		Float
hi def link takScientific		Float

hi def link takEndData		Macro

hi def link takTodo		Todo



let b:current_syntax = "tak"

" vim: ts=8 sw=2
PK�j�ZKy/��vim80/syntax/kix.vimnu�[���" Vim syntax file
" Language:	KixTart 95, Kix2001 Windows script language http://kixtart.org/
" Maintainer:	Richard Howarth <rhowarth@sgb.co.uk>
" Last Change:	2003 May 11
" URL:		http://www.howsoft.demon.co.uk/

" KixTart files identified by *.kix extension.

" Amendment History:
" 26 April 2001: RMH
"    Removed development comments from distro version
"    Renamed "Kix*" to "kix*" for consistancy
"    Changes made in preperation for VIM version 5.8/6.00

" TODO:
"	Handle arrays highlighting
"	Handle object highlighting
" The next two may not be possible:
"	Work out how to error too many "(", i.e. (() should be an error.
"	Similarly, "if" without "endif" and similar constructs should error.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn case match
syn keyword kixTODO		TODO FIX XXX contained

" Case insensitive language.
syn case ignore

" Kix statements
syn match   kixStatement	"?"
syn keyword kixStatement	beep big break
syn keyword kixStatement	call cd cls color cookie1 copy
syn keyword kixStatement	del dim display
syn keyword kixStatement	exit
syn keyword kixStatement	flushkb
syn keyword kixStatement	get gets global go gosub goto
syn keyword kixStatement	md
syn keyword kixStatement	password play
syn keyword kixStatement	quit
syn keyword kixStatement	rd return run
syn keyword kixStatement	set setl setm settime shell sleep small
syn keyword kixStatement	use

" Kix2001
syn keyword kixStatement	debug function endfunction redim

" Simple variables
syn match   kixNotVar		"\$\$\|@@\|%%" transparent contains=NONE
syn match   kixLocalVar		"\$\w\+"
syn match   kixMacro		"@\w\+"
syn match   kixEnvVar		"%\w\+"

" Destination labels
syn match   kixLabel		":\w\+\>"

" Identify strings, trap unterminated strings
syn match   kixStringError      +".*\|'.*+
syn region  kixDoubleString	oneline start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar
syn region  kixSingleString	oneline start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar

" Operators
syn match   kixOperator		"+\|-\|\*\|/\|=\|&\||"
syn keyword kixOperator		and or
" Kix2001
syn match   kixOperator		"=="
syn keyword kixOperator		not

" Numeric constants
syn match   kixInteger		"-\=\<\d\+\>" contains=NONE
syn match   kixFloat		"-\=\.\d\+\>\|-\=\<\d\+\.\d\+\>" contains=NONE

" Hex numeric constants
syn match   kixHex		"\&\x\+\>" contains=NONE

" Other contants
" Kix2001
syn keyword kixConstant		on off

" Comments
syn match   kixComment		";.*$" contains=kixTODO

" Trap unmatched parenthesis
syn match   kixParenCloseError	")"
syn region  kixParen		oneline transparent start="(" end=")" contains=ALLBUT,kixParenCloseError

" Functions (Builtin + UDF)
syn match   kixFunction		"\w\+("he=e-1,me=e-1 contains=ALL

" Trap unmatched brackets
syn match   kixBrackCloseError	"\]"
syn region  kixBrack		transparent start="\[" end="\]" contains=ALLBUT,kixBrackCloseError

" Clusters for ALLBUT shorthand
syn cluster kixIfBut		contains=kixIfError,kixSelectOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK
syn cluster kixSelectBut	contains=kixSelectError,kixIfOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK
syn cluster kixDoBut		contains=kixDoError,kixSelectOK,kixIfOK,kixWhileOK,kixForEachOK,kixForNextOK
syn cluster kixWhileBut		contains=kixWhileError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixForNextOK
syn cluster kixForEachBut	contains=kixForEachError,kixSelectOK,kixIfOK,kixDoOK,kixForNextOK,kixWhileOK
syn cluster kixForNextBut	contains=kixForNextError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixWhileOK
" Condtional construct errors.
syn match   kixIfError		"\<if\>\|\<else\>\|\<endif\>"
syn match   kixIfOK		contained "\<if\>\|\<else\>\|\<endif\>"
syn region  kixIf		transparent matchgroup=kixIfOK start="\<if\>" end="\<endif\>" contains=ALLBUT,@kixIfBut
syn match   kixSelectError	"\<select\>\|\<case\>\|\<endselect\>"
syn match   kixSelectOK		contained "\<select\>\|\<case\>\|\<endselect\>"
syn region  kixSelect		transparent matchgroup=kixSelectOK start="\<select\>" end="\<endselect\>" contains=ALLBUT,@kixSelectBut

" Program control constructs.
syn match   kixDoError		"\<do\>\|\<until\>"
syn match   kixDoOK		contained "\<do\>\|\<until\>"
syn region  kixDo		transparent matchgroup=kixDoOK start="\<do\>" end="\<until\>" contains=ALLBUT,@kixDoBut
syn match   kixWhileError	"\<while\>\|\<loop\>"
syn match   kixWhileOK		contained "\<while\>\|\<loop\>"
syn region  kixWhile		transparent matchgroup=kixWhileOK start="\<while\>" end="\<loop\>" contains=ALLBUT,@kixWhileBut
syn match   kixForNextError	"\<for\>\|\<to\>\|\<step\>\|\<next\>"
syn match   kixForNextOK	contained "\<for\>\|\<to\>\|\<step\>\|\<next\>"
syn region  kixForNext		transparent matchgroup=kixForNextOK start="\<for\>" end="\<next\>" contains=ALLBUT,@kixForBut
syn match   kixForEachError	"\<for each\>\|\<in\>\|\<next\>"
syn match   kixForEachOK	contained "\<for each\>\|\<in\>\|\<next\>"
syn region  kixForEach		transparent matchgroup=kixForEachOK start="\<for each\>" end="\<next\>" contains=ALLBUT,@kixForEachBut

" Expressions
syn match   kixExpression	"<\|>\|<=\|>=\|<>"


" Default highlighting.
" Set default highlight only if it doesn't already have a value.

hi def link kixDoubleString		String
hi def link kixSingleString		String
hi def link kixStatement		Statement
hi def link kixRepeat		Repeat
hi def link kixComment		Comment
hi def link kixBuiltin		Function
hi def link kixLocalVar		Special
hi def link kixMacro			Special
hi def link kixEnvVar		Special
hi def link kixLabel			Type
hi def link kixFunction		Function
hi def link kixInteger		Number
hi def link kixHex			Number
hi def link kixFloat			Number
hi def link kixOperator		Operator
hi def link kixExpression		Operator

hi def link kixParenCloseError	Error
hi def link kixBrackCloseError	Error
hi def link kixStringError		Error

hi def link kixWhileError		Error
hi def link kixWhileOK		Conditional
hi def link kixDoError		Error
hi def link kixDoOK			Conditional
hi def link kixIfError		Error
hi def link kixIfOK			Conditional
hi def link kixSelectError		Error
hi def link kixSelectOK		Conditional
hi def link kixForNextError		Error
hi def link kixForNextOK		Conditional
hi def link kixForEachError		Error
hi def link kixForEachOK		Conditional


let b:current_syntax = "kix"

" vim: ts=8 sw=2
PK�j�Z��U�vim80/syntax/murphi.vimnu�[���" Vim syntax file
" Language: Murphi model checking language
" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
" Last Change: 2017 Aug 27
" Version: 2
" Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu> 

if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

" Keywords are case insensitive.
" Keep these in alphabetical order.
syntax case ignore
syn keyword murphiKeyword       alias
syn keyword murphiStructure     array
syn keyword murphiKeyword       assert
syn keyword murphiKeyword       begin
syn keyword murphiType          boolean
syn keyword murphiKeyword       by
syn keyword murphiLabel         case
syn keyword murphiKeyword       clear
syn keyword murphiLabel         const
syn keyword murphiRepeat        do
syn keyword murphiConditional   else
syn keyword murphiConditional   elsif
syn keyword murphiKeyword       end
syn keyword murphiKeyword       endalias
syn keyword murphiRepeat        endexists
syn keyword murphiRepeat        endfor
syn keyword murphiRepeat        endforall
syn keyword murphiKeyword       endfunction
syn keyword murphiConditional   endif
syn keyword murphiKeyword       endprocedure
syn keyword murphiStructure     endrecord
syn keyword murphiKeyword       endrule
syn keyword murphiKeyword       endruleset
syn keyword murphiKeyword       endstartstate
syn keyword murphiConditional   endswitch
syn keyword murphiRepeat        endwhile
syn keyword murphiStructure     enum
syn keyword murphiKeyword       error
syn keyword murphiRepeat        exists
syn keyword murphiBoolean       false
syn keyword murphiRepeat        for
syn keyword murphiRepeat        forall
syn keyword murphiKeyword       function
syn keyword murphiConditional   if
syn keyword murphiKeyword       in
syn keyword murphiKeyword       interleaved
syn keyword murphiLabel         invariant
syn keyword murphiFunction      ismember
syn keyword murphiFunction      isundefined
syn keyword murphiKeyword       log
syn keyword murphiStructure     of
syn keyword murphiType          multiset
syn keyword murphiFunction      multisetadd
syn keyword murphiFunction      multisetcount
syn keyword murphiFunction      multisetremove
syn keyword murphiFunction      multisetremovepred
syn keyword murphiKeyword       procedure
syn keyword murphiKeyword       process
syn keyword murphiKeyword       program
syn keyword murphiKeyword       put
syn keyword murphiStructure     record
syn keyword murphiKeyword       return
syn keyword murphiLabel         rule
syn keyword murphiLabel         ruleset
syn keyword murphiType          scalarset
syn keyword murphiLabel         startstate
syn keyword murphiConditional   switch
syn keyword murphiConditional   then
syn keyword murphiRepeat        to
syn keyword murphiKeyword       traceuntil
syn keyword murphiBoolean       true
syn keyword murphiLabel         type
syn keyword murphiKeyword       undefine
syn keyword murphiStructure     union
syn keyword murphiLabel         var
syn keyword murphiRepeat        while

syn keyword murphiTodo contained todo xxx fixme
syntax case match

" Integers.
syn match murphiNumber "\<\d\+\>"

" Operators and special characters.
syn match murphiOperator "[\+\-\*\/%&|=!<>:\?]\|\."
syn match murphiDelimiter "\(:[^=]\|[;,]\)"
syn match murphiSpecial "[()\[\]]"

" Double equal sign is a common error: use one equal sign for equality testing.
syn match murphiError "==[^>]"he=e-1
" Double && and || are errors.
syn match murphiError "&&\|||"

" Strings. This is defined so late so that it overrides previous matches.
syn region murphiString start=+"+ end=+"+

" Comments. This is defined so late so that it overrides previous matches.
syn region murphiComment start="--" end="$" contains=murphiTodo
syn region murphiComment start="/\*" end="\*/" contains=murphiTodo

" Link the rules to some groups.
hi def link murphiComment        Comment
hi def link murphiString         String
hi def link murphiNumber         Number
hi def link murphiBoolean        Boolean
hi def link murphiIdentifier     Identifier
hi def link murphiFunction       Function
hi def link murphiStatement      Statement
hi def link murphiConditional    Conditional
hi def link murphiRepeat         Repeat
hi def link murphiLabel          Label
hi def link murphiOperator       Operator
hi def link murphiKeyword        Keyword
hi def link murphiType           Type
hi def link murphiStructure      Structure
hi def link murphiSpecial        Special
hi def link murphiDelimiter      Delimiter
hi def link murphiError          Error
hi def link murphiTodo           Todo

let b:current_syntax = "murphi"
PK�j�Zdw���vim80/syntax/syncolor.vimnu�[���" Vim syntax support file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2001 Sep 12

" This file sets up the default methods for highlighting.
" It is loaded from "synload.vim" and from Vim for ":syntax reset".
" Also used from init_highlight().

if !exists("syntax_cmd") || syntax_cmd == "on"
  " ":syntax on" works like in Vim 5.7: set colors but keep links
  command -nargs=* SynColor hi <args>
  command -nargs=* SynLink hi link <args>
else
  if syntax_cmd == "enable"
    " ":syntax enable" keeps any existing colors
    command -nargs=* SynColor hi def <args>
    command -nargs=* SynLink hi def link <args>
  elseif syntax_cmd == "reset"
    " ":syntax reset" resets all colors to the default
    command -nargs=* SynColor hi <args>
    command -nargs=* SynLink hi! link <args>
  else
    " User defined syncolor file has already set the colors.
    finish
  endif
endif

" Many terminals can only use six different colors (plus black and white).
" Therefore the number of colors used is kept low. It doesn't look nice with
" too many colors anyway.
" Careful with "cterm=bold", it changes the color to bright for some terminals.
" There are two sets of defaults: for a dark and a light background.
if &background == "dark"
  SynColor Comment	term=bold cterm=NONE ctermfg=Cyan ctermbg=NONE gui=NONE guifg=#80a0ff guibg=NONE
  SynColor Constant	term=underline cterm=NONE ctermfg=Magenta ctermbg=NONE gui=NONE guifg=#ffa0a0 guibg=NONE
  SynColor Special	term=bold cterm=NONE ctermfg=LightRed ctermbg=NONE gui=NONE guifg=Orange guibg=NONE
  SynColor Identifier	term=underline cterm=bold ctermfg=Cyan ctermbg=NONE gui=NONE guifg=#40ffff guibg=NONE
  SynColor Statement	term=bold cterm=NONE ctermfg=Yellow ctermbg=NONE gui=bold guifg=#ffff60 guibg=NONE
  SynColor PreProc	term=underline cterm=NONE ctermfg=LightBlue ctermbg=NONE gui=NONE guifg=#ff80ff guibg=NONE
  SynColor Type		term=underline cterm=NONE ctermfg=LightGreen ctermbg=NONE gui=bold guifg=#60ff60 guibg=NONE
  SynColor Underlined	term=underline cterm=underline ctermfg=LightBlue gui=underline guifg=#80a0ff
  SynColor Ignore	term=NONE cterm=NONE ctermfg=black ctermbg=NONE gui=NONE guifg=bg guibg=NONE
else
  SynColor Comment	term=bold cterm=NONE ctermfg=DarkBlue ctermbg=NONE gui=NONE guifg=Blue guibg=NONE
  SynColor Constant	term=underline cterm=NONE ctermfg=DarkRed ctermbg=NONE gui=NONE guifg=Magenta guibg=NONE
  SynColor Special	term=bold cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=SlateBlue guibg=NONE
  SynColor Identifier	term=underline cterm=NONE ctermfg=DarkCyan ctermbg=NONE gui=NONE guifg=DarkCyan guibg=NONE
  SynColor Statement	term=bold cterm=NONE ctermfg=Brown ctermbg=NONE gui=bold guifg=Brown guibg=NONE
  SynColor PreProc	term=underline cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=Purple guibg=NONE
  SynColor Type		term=underline cterm=NONE ctermfg=DarkGreen ctermbg=NONE gui=bold guifg=SeaGreen guibg=NONE
  SynColor Underlined	term=underline cterm=underline ctermfg=DarkMagenta gui=underline guifg=SlateBlue
  SynColor Ignore	term=NONE cterm=NONE ctermfg=white ctermbg=NONE gui=NONE guifg=bg guibg=NONE
endif
SynColor Error		term=reverse cterm=NONE ctermfg=White ctermbg=Red gui=NONE guifg=White guibg=Red
SynColor Todo		term=standout cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=Blue guibg=Yellow

" Common groups that link to default highlighting.
" You can specify other highlighting easily.
SynLink String		Constant
SynLink Character	Constant
SynLink Number		Constant
SynLink Boolean		Constant
SynLink Float		Number
SynLink Function	Identifier
SynLink Conditional	Statement
SynLink Repeat		Statement
SynLink Label		Statement
SynLink Operator	Statement
SynLink Keyword		Statement
SynLink Exception	Statement
SynLink Include		PreProc
SynLink Define		PreProc
SynLink Macro		PreProc
SynLink PreCondit	PreProc
SynLink StorageClass	Type
SynLink Structure	Type
SynLink Typedef		Type
SynLink Tag		Special
SynLink SpecialChar	Special
SynLink Delimiter	Special
SynLink SpecialComment	Special
SynLink Debug		Special

delcommand SynColor
delcommand SynLink
PK�j�ZeMؔRRvim80/syntax/sinda.vimnu�[���" Vim syntax file
" Language:     sinda85, sinda/fluint input file
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.sin
" URL:		http://www.naglenet.org/vim/syntax/sinda.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
"
" Begin syntax definitions for sinda input and output files.
"

" Force free-form fortran format
let fortran_free_source=1

" Load FORTRAN syntax file
runtime! syntax/fortran.vim
unlet b:current_syntax



" Define keywords for SINDA
syn keyword sindaMacro    BUILD BUILDF DEBON DEBOFF DEFMOD FSTART FSTOP

syn keyword sindaOptions  TITLE PPSAVE RSI RSO OUTPUT SAVE QMAP USER1 USER2
syn keyword sindaOptions  MODEL PPOUT NOLIST MLINE NODEBUG DIRECTORIES
syn keyword sindaOptions  DOUBLEPR

syn keyword sindaRoutine  FORWRD FWDBCK STDSTL FASTIC

syn keyword sindaControl  ABSZRO ACCELX ACCELY ACCELZ ARLXCA ATMPCA
syn keyword sindaControl  BACKUP CSGFAC DRLXCA DTIMEH DTIMEI DTIMEL
syn keyword sindaControl  DTIMES DTMPCA EBALNA EBALSA EXTLIM ITEROT
syn keyword sindaControl  ITERXT ITHOLD NLOOPS NLOOPT OUTPUT OPEITR
syn keyword sindaControl  PATMOS SIGMA TIMEO TIMEND UID

syn keyword sindaSubRoutine  ASKERS ADARIN ADDARY ADDMOD ARINDV
syn keyword sindaSubRoutine  RYINV ARYMPY ARYSUB ARYTRN BAROC
syn keyword sindaSubRoutine  BELACC BNDDRV BNDGET CHENNB CHGFLD
syn keyword sindaSubRoutine  CHGLMP CHGSUC CHGVOL CHKCHL CHKCHP
syn keyword sindaSubRoutine  CNSTAB COMBAL COMPLQ COMPRS CONTRN
syn keyword sindaSubRoutine  CPRINT CRASH CRVINT CRYTRN CSIFLX
syn keyword sindaSubRoutine  CVTEMP D11CYL C11DAI D11DIM D11MCY
syn keyword sindaSubRoutine  D11MDA D11MDI D11MDT D12CYL D12MCY
syn keyword sindaSubRoutine  D12MDA D1D1DA D1D1IM D1D1WM D1D2DA
syn keyword sindaSubRoutine  D1D2WM D1DEG1 D1DEG2 D1DG1I D1IMD1
syn keyword sindaSubRoutine  D1IMIM D1IMWM D1M1DA D1M2MD D1M2WM
syn keyword sindaSubRoutine  D1MDG1 D1MDG2 D2D1WM D1DEG1 D2DEG2
syn keyword sindaSubRoutine  D2D2

syn keyword sindaIdentifier  BIV CAL DIM DIV DPM DPV DTV GEN PER PIV PIM
syn keyword sindaIdentifier  SIM SIV SPM SPV TVS TVD



" Define matches for SINDA
syn match  sindaFortran     "^F[0-9 ]"me=e-1
syn match  sindaMotran      "^M[0-9 ]"me=e-1

syn match  sindaComment     "^C.*$"
syn match  sindaComment     "^R.*$"
syn match  sindaComment     "\$.*$"

syn match  sindaHeader      "^header[^,]*"

syn match  sindaIncludeFile "include \+[^ ]\+"hs=s+8 contains=fortranInclude

syn match  sindaMacro       "^PSTART"
syn match  sindaMacro       "^PSTOP"
syn match  sindaMacro       "^FAC"

syn match  sindaInteger     "-\=\<[0-9]*\>"
syn match  sindaFloat       "-\=\<[0-9]*\.[0-9]*"
syn match  sindaScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"

syn match  sindaEndData		 "^END OF DATA"

if exists("thermal_todo")
  execute 'syn match  sindaTodo ' . '"^'.thermal_todo.'.*$"'
else
  syn match  sindaTodo     "^?.*$"
endif



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link sindaMacro		Macro
hi def link sindaOptions		Special
hi def link sindaRoutine		Type
hi def link sindaControl		Special
hi def link sindaSubRoutine	Function
hi def link sindaIdentifier	Identifier

hi def link sindaFortran		PreProc
hi def link sindaMotran		PreProc

hi def link sindaComment		Comment
hi def link sindaHeader		Typedef
hi def link sindaIncludeFile	Type
hi def link sindaInteger		Number
hi def link sindaFloat		Float
hi def link sindaScientific	Float

hi def link sindaEndData		Macro

hi def link sindaTodo		Todo



let b:current_syntax = "sinda"

" vim: ts=8 sw=2
PK�j�Z�5�//vim80/syntax/smcl.vimnu�[���" smcl.vim -- Vim syntax file for smcl files.
" Language:	SMCL -- Stata Markup and Control Language
" Maintainer:	Jeff Pitblado <jpitblado@stata.com>
" Last Change:	26apr2006
" Version:	1.1.2

" Log:
" 20mar2003	updated the match definition for cmdab
" 14apr2006	'syntax clear' only under version control
"		check for 'b:current_syntax', removed 'did_smcl_syntax_inits'
" 26apr2006	changed 'stata_smcl' to 'smcl'

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syntax case match

syn keyword smclCCLword current_date		contained
syn keyword smclCCLword current_time		contained
syn keyword smclCCLword rmsg_time		contained
syn keyword smclCCLword stata_version		contained
syn keyword smclCCLword version			contained
syn keyword smclCCLword born_date		contained
syn keyword smclCCLword flavor			contained
syn keyword smclCCLword SE			contained
syn keyword smclCCLword mode			contained
syn keyword smclCCLword console			contained
syn keyword smclCCLword os			contained
syn keyword smclCCLword osdtl			contained
syn keyword smclCCLword machine_type		contained
syn keyword smclCCLword byteorder		contained
syn keyword smclCCLword sysdir_stata		contained
syn keyword smclCCLword sysdir_updates		contained
syn keyword smclCCLword sysdir_base		contained
syn keyword smclCCLword sysdir_site		contained
syn keyword smclCCLword sysdir_plus		contained
syn keyword smclCCLword sysdir_personal		contained
syn keyword smclCCLword sysdir_oldplace		contained
syn keyword smclCCLword adopath			contained
syn keyword smclCCLword pwd			contained
syn keyword smclCCLword dirsep			contained
syn keyword smclCCLword max_N_theory		contained
syn keyword smclCCLword max_N_current		contained
syn keyword smclCCLword max_k_theory		contained
syn keyword smclCCLword max_k_current		contained
syn keyword smclCCLword max_width_theory	contained
syn keyword smclCCLword max_width_current	contained
syn keyword smclCCLword max_matsize		contained
syn keyword smclCCLword min_matsize		contained
syn keyword smclCCLword max_macrolen		contained
syn keyword smclCCLword macrolen		contained
syn keyword smclCCLword max_cmdlen		contained
syn keyword smclCCLword cmdlen			contained
syn keyword smclCCLword namelen			contained
syn keyword smclCCLword mindouble		contained
syn keyword smclCCLword maxdouble		contained
syn keyword smclCCLword epsdouble		contained
syn keyword smclCCLword minfloat		contained
syn keyword smclCCLword maxfloat		contained
syn keyword smclCCLword epsfloat		contained
syn keyword smclCCLword minlong			contained
syn keyword smclCCLword maxlong			contained
syn keyword smclCCLword minint			contained
syn keyword smclCCLword maxint			contained
syn keyword smclCCLword minbyte			contained
syn keyword smclCCLword maxbyte			contained
syn keyword smclCCLword maxstrvarlen		contained
syn keyword smclCCLword memory			contained
syn keyword smclCCLword maxvar			contained
syn keyword smclCCLword matsize			contained
syn keyword smclCCLword N			contained
syn keyword smclCCLword k			contained
syn keyword smclCCLword width			contained
syn keyword smclCCLword changed			contained
syn keyword smclCCLword filename		contained
syn keyword smclCCLword filedate		contained
syn keyword smclCCLword more			contained
syn keyword smclCCLword rmsg			contained
syn keyword smclCCLword dp			contained
syn keyword smclCCLword linesize		contained
syn keyword smclCCLword pagesize		contained
syn keyword smclCCLword logtype			contained
syn keyword smclCCLword linegap			contained
syn keyword smclCCLword scrollbufsize		contained
syn keyword smclCCLword varlabelpos		contained
syn keyword smclCCLword reventries		contained
syn keyword smclCCLword graphics		contained
syn keyword smclCCLword scheme			contained
syn keyword smclCCLword printcolor		contained
syn keyword smclCCLword adosize			contained
syn keyword smclCCLword maxdb			contained
syn keyword smclCCLword virtual			contained
syn keyword smclCCLword checksum		contained
syn keyword smclCCLword timeout1		contained
syn keyword smclCCLword timeout2		contained
syn keyword smclCCLword httpproxy		contained
syn keyword smclCCLword h_current		contained
syn keyword smclCCLword max_matsize		contained
syn keyword smclCCLword min_matsize		contained
syn keyword smclCCLword max_macrolen		contained
syn keyword smclCCLword macrolen		contained
syn keyword smclCCLword max_cmdlen		contained
syn keyword smclCCLword cmdlen			contained
syn keyword smclCCLword namelen			contained
syn keyword smclCCLword mindouble		contained
syn keyword smclCCLword maxdouble		contained
syn keyword smclCCLword epsdouble		contained
syn keyword smclCCLword minfloat		contained
syn keyword smclCCLword maxfloat		contained
syn keyword smclCCLword epsfloat		contained
syn keyword smclCCLword minlong			contained
syn keyword smclCCLword maxlong			contained
syn keyword smclCCLword minint			contained
syn keyword smclCCLword maxint			contained
syn keyword smclCCLword minbyte			contained
syn keyword smclCCLword maxbyte			contained
syn keyword smclCCLword maxstrvarlen		contained
syn keyword smclCCLword memory			contained
syn keyword smclCCLword maxvar			contained
syn keyword smclCCLword matsize			contained
syn keyword smclCCLword N			contained
syn keyword smclCCLword k			contained
syn keyword smclCCLword width			contained
syn keyword smclCCLword changed			contained
syn keyword smclCCLword filename		contained
syn keyword smclCCLword filedate		contained
syn keyword smclCCLword more			contained
syn keyword smclCCLword rmsg			contained
syn keyword smclCCLword dp			contained
syn keyword smclCCLword linesize		contained
syn keyword smclCCLword pagesize		contained
syn keyword smclCCLword logtype			contained
syn keyword smclCCLword linegap			contained
syn keyword smclCCLword scrollbufsize		contained
syn keyword smclCCLword varlabelpos		contained
syn keyword smclCCLword reventries		contained
syn keyword smclCCLword graphics		contained
syn keyword smclCCLword scheme			contained
syn keyword smclCCLword printcolor		contained
syn keyword smclCCLword adosize			contained
syn keyword smclCCLword maxdb			contained
syn keyword smclCCLword virtual			contained
syn keyword smclCCLword checksum		contained
syn keyword smclCCLword timeout1		contained
syn keyword smclCCLword timeout2		contained
syn keyword smclCCLword httpproxy		contained
syn keyword smclCCLword httpproxyhost		contained
syn keyword smclCCLword httpproxyport		contained
syn keyword smclCCLword httpproxyauth		contained
syn keyword smclCCLword httpproxyuser		contained
syn keyword smclCCLword httpproxypw		contained
syn keyword smclCCLword trace			contained
syn keyword smclCCLword tracedepth		contained
syn keyword smclCCLword tracesep		contained
syn keyword smclCCLword traceindent		contained
syn keyword smclCCLword traceexapnd		contained
syn keyword smclCCLword tracenumber		contained
syn keyword smclCCLword type			contained
syn keyword smclCCLword level			contained
syn keyword smclCCLword seed			contained
syn keyword smclCCLword searchdefault		contained
syn keyword smclCCLword pi			contained
syn keyword smclCCLword rc			contained

" Directive for the contant and current-value class
syn region smclCCL start=/{ccl / end=/}/ oneline contains=smclCCLword

" The order of the following syntax definitions is roughly that of the on-line
" documentation for smcl in Stata, from within Stata see help smcl.

" Format directives for line and paragraph modes
syn match smclFormat /{smcl}/
syn match smclFormat /{sf\(\|:[^}]\+\)}/
syn match smclFormat /{it\(\|:[^}]\+\)}/
syn match smclFormat /{bf\(\|:[^}]\+\)}/
syn match smclFormat /{inp\(\|:[^}]\+\)}/
syn match smclFormat /{input\(\|:[^}]\+\)}/
syn match smclFormat /{err\(\|:[^}]\+\)}/
syn match smclFormat /{error\(\|:[^}]\+\)}/
syn match smclFormat /{res\(\|:[^}]\+\)}/
syn match smclFormat /{result\(\|:[^}]\+\)}/
syn match smclFormat /{txt\(\|:[^}]\+\)}/
syn match smclFormat /{text\(\|:[^}]\+\)}/
syn match smclFormat /{com\(\|:[^}]\+\)}/
syn match smclFormat /{cmd\(\|:[^}]\+\)}/
syn match smclFormat /{cmdab:[^:}]\+:[^:}()]*\(\|:\|:(\|:()\)}/
syn match smclFormat /{hi\(\|:[^}]\+\)}/
syn match smclFormat /{hilite\(\|:[^}]\+\)}/
syn match smclFormat /{ul \(on\|off\)}/
syn match smclFormat /{ul:[^}]\+}/
syn match smclFormat /{hline\(\| \d\+\| -\d\+\|:[^}]\+\)}/
syn match smclFormat /{dup \d\+:[^}]\+}/
syn match smclFormat /{c [^}]\+}/
syn match smclFormat /{char [^}]\+}/
syn match smclFormat /{reset}/

" Formatting directives for line mode
syn match smclFormat /{title:[^}]\+}/
syn match smclFormat /{center:[^}]\+}/
syn match smclFormat /{centre:[^}]\+}/
syn match smclFormat /{center \d\+:[^}]\+}/
syn match smclFormat /{centre \d\+:[^}]\+}/
syn match smclFormat /{right:[^}]\+}/
syn match smclFormat /{lalign \d\+:[^}]\+}/
syn match smclFormat /{ralign \d\+:[^}]\+}/
syn match smclFormat /{\.\.\.}/
syn match smclFormat /{col \d\+}/
syn match smclFormat /{space \d\+}/
syn match smclFormat /{tab}/

" Formatting directives for paragraph mode
syn match smclFormat /{bind:[^}]\+}/
syn match smclFormat /{break}/

syn match smclFormat /{p}/
syn match smclFormat /{p \d\+}/
syn match smclFormat /{p \d\+ \d\+}/
syn match smclFormat /{p \d\+ \d\+ \d\+}/
syn match smclFormat /{pstd}/
syn match smclFormat /{psee}/
syn match smclFormat /{phang\(\|2\|3\)}/
syn match smclFormat /{pmore\(\|2\|3\)}/
syn match smclFormat /{pin\(\|2\|3\)}/
syn match smclFormat /{p_end}/

syn match smclFormat /{opt \w\+\(\|:\w\+\)\(\|([^)}]*)\)}/

syn match smclFormat /{opth \w*\(\|:\w\+\)(\w*)}/
syn match smclFormat /{opth "\w\+\((\w\+:[^)}]\+)\)"}/
syn match smclFormat /{opth \w\+:\w\+(\w\+:[^)}]\+)}/

syn match smclFormat /{dlgtab\s*\(\|\d\+\|\d\+\s\+\d\+\):[^}]\+}/

syn match smclFormat /{p2colset\s\+\d\+\s\+\d\+\s\+\d\+\s\+\d\+}/
syn match smclFormat /{p2col\s\+:[^{}]*}.*{p_end}/
syn match smclFormat /{p2col\s\+:{[^{}]*}}.*{p_end}/
syn match smclFormat /{p2coldent\s*:[^{}]*}.*{p_end}/
syn match smclFormat /{p2coldent\s*:{[^{}]*}}.*{p_end}/
syn match smclFormat /{p2line\s*\(\|\d\+\s\+\d\+\)}/
syn match smclFormat /{p2colreset}/

syn match smclFormat /{synoptset\s\+\d\+\s\+\w\+}/
syn match smclFormat /{synopt\s*:[^{}]*}.*{p_end}/
syn match smclFormat /{synopt\s*:{[^{}]*}}.*{p_end}/
syn match smclFormat /{syntab\s*:[^{}]*}/
syn match smclFormat /{synopthdr}/
syn match smclFormat /{synoptline}/

" Link directive for line and paragraph modes
syn match smclLink /{help [^}]\+}/
syn match smclLink /{helpb [^}]\+}/
syn match smclLink /{help_d:[^}]\+}/
syn match smclLink /{search [^}]\+}/
syn match smclLink /{search_d:[^}]\+}/
syn match smclLink /{browse [^}]\+}/
syn match smclLink /{view [^}]\+}/
syn match smclLink /{view_d:[^}]\+}/
syn match smclLink /{news:[^}]\+}/
syn match smclLink /{net [^}]\+}/
syn match smclLink /{net_d:[^}]\+}/
syn match smclLink /{netfrom_d:[^}]\+}/
syn match smclLink /{ado [^}]\+}/
syn match smclLink /{ado_d:[^}]\+}/
syn match smclLink /{update [^}]\+}/
syn match smclLink /{update_d:[^}]\+}/
syn match smclLink /{dialog [^}]\+}/
syn match smclLink /{back:[^}]\+}/
syn match smclLink /{clearmore:[^}]\+}/
syn match smclLink /{stata [^}]\+}/

syn match smclLink /{newvar\(\|:[^}]\+\)}/
syn match smclLink /{var\(\|:[^}]\+\)}/
syn match smclLink /{varname\(\|:[^}]\+\)}/
syn match smclLink /{vars\(\|:[^}]\+\)}/
syn match smclLink /{varlist\(\|:[^}]\+\)}/
syn match smclLink /{depvar\(\|:[^}]\+\)}/
syn match smclLink /{depvars\(\|:[^}]\+\)}/
syn match smclLink /{depvarlist\(\|:[^}]\+\)}/
syn match smclLink /{indepvars\(\|:[^}]\+\)}/

syn match smclLink /{dtype}/
syn match smclLink /{ifin}/
syn match smclLink /{weight}/

" Comment
syn region smclComment start=/{\*/ end=/}/ oneline

" Strings
syn region smclString  matchgroup=Nothing start=/"/ end=/"/   oneline
syn region smclEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=smclEString

" assign highlight groups

hi def link smclEString		smclString

hi def link smclCCLword		Statement
hi def link smclCCL		Type
hi def link smclFormat		Statement
hi def link smclLink		Underlined
hi def link smclComment		Comment
hi def link smclString		String

let b:current_syntax = "smcl"

" vim: ts=8
PK�j�Z(i�LLvim80/syntax/elmfilt.vimnu�[���" Vim syntax file
" Language:	Elm Filter rules
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	8
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn cluster elmfiltIfGroup	contains=elmfiltCond,elmfiltOper,elmfiltOperKey,,elmfiltNumber,elmfiltOperKey

syn match	elmfiltParenError	"[()]"
syn match	elmfiltMatchError	"/"
syn region	elmfiltIf	start="\<if\>" end="\<then\>"	contains=elmfiltParen,elmfiltParenError skipnl skipwhite nextgroup=elmfiltAction
syn region	elmfiltParen	contained	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")"	contains=elmfiltParen,@elmfiltIfGroup,elmfiltThenError
syn region	elmfiltMatch	contained	matchgroup=Delimiter start="/" skip="\\/" matchgroup=Delimiter end="/"	skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey
syn match	elmfiltThenError	"\<then.*$"
syn match	elmfiltComment	"^#.*$"		contains=@Spell

syn keyword	elmfiltAction	contained	delete execute executec forward forwardc leave save savecopy skipnl skipwhite nextgroup=elmfiltString
syn match	elmfiltArg	contained	"[^\\]%[&0-9dDhmrsSty&]"lc=1

syn match	elmfiltOperKey	contained	"\<contains\>"			skipnl skipwhite nextgroup=elmfiltString
syn match	elmfiltOperKey	contained	"\<matches\s"			nextgroup=elmfiltMatch,elmfiltSpaceError
syn keyword	elmfiltCond	contained	cc bcc lines always subject sender from to lines received	skipnl skipwhite nextgroup=elmfiltString
syn match	elmfiltNumber	contained	"\d\+"
syn keyword	elmfiltOperKey	contained	and not				skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,elmfiltString
syn match	elmfiltOper	contained	"\~"				skipnl skipwhite nextgroup=elmfiltMatch
syn match	elmfiltOper	contained	"<=\|>=\|!=\|<\|<\|="		skipnl skipwhite nextgroup=elmfiltString,elmfiltCond,elmfiltOperKey
syn region	elmfiltString	contained	start='"' skip='"\(\\\\\)*\\["%]' end='"'	contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell
syn region	elmfiltString	contained	start="'" skip="'\(\\\\\)*\\['%]" end="'"	contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell
syn match	elmfiltSpaceError	contained	"\s.*$"

" Define the default highlighting.
if !exists("skip_elmfilt_syntax_inits")

  hi def link elmfiltAction	Statement
  hi def link elmfiltArg	Special
  hi def link elmfiltComment	Comment
  hi def link elmfiltCond	Statement
  hi def link elmfiltIf	Statement
  hi def link elmfiltMatch	Special
  hi def link elmfiltMatchError	Error
  hi def link elmfiltNumber	Number
  hi def link elmfiltOper	Operator
  hi def link elmfiltOperKey	Type
  hi def link elmfiltParenError	Error
  hi def link elmfiltSpaceError	Error
  hi def link elmfiltString	String
  hi def link elmfiltThenError	Error

endif

let b:current_syntax = "elmfilt"
" vim: ts=9
PK�j�Z6��i��vim80/syntax/javacc.vimnu�[���" Vim syntax file
" Language:	JavaCC, a Java Compiler Compiler written by JavaSoft
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/javacc.vim
" Last Change:	2012 Oct 05

" Uses java.vim, and adds a few special things for JavaCC Parser files.
" Those files usually have the extension  *.jj

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" source the java.vim file
runtime! syntax/java.vim
unlet b:current_syntax

"remove catching errors caused by wrong parenthesis (does not work in javacc
"files) (first define them in case they have not been defined in java)
syn match	javaParen "--"
syn match	javaParenError "--"
syn match	javaInParen "--"
syn match	javaError2 "--"
syn clear	javaParen
syn clear	javaParenError
syn clear	javaInParen
syn clear	javaError2

" remove function definitions (they look different) (first define in
" in case it was not defined in java.vim)
"syn match javaFuncDef "--"
syn clear javaFuncDef
syn match javaFuncDef "[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType

syn keyword javaccPackages options DEBUG_PARSER DEBUG_LOOKAHEAD DEBUG_TOKEN_MANAGER
syn keyword javaccPackages COMMON_TOKEN_ACTION IGNORE_CASE CHOICE_AMBIGUITY_CHECK
syn keyword javaccPackages OTHER_AMBIGUITY_CHECK STATIC LOOKAHEAD ERROR_REPORTING
syn keyword javaccPackages USER_TOKEN_MANAGER  USER_CHAR_STREAM JAVA_UNICODE_ESCAPE
syn keyword javaccPackages UNICODE_INPUT JDK_VERSION
syn match javaccPackages "PARSER_END([^)]*)"
syn match javaccPackages "PARSER_BEGIN([^)]*)"
syn match javaccSpecToken "<EOF>"
" the dot is necessary as otherwise it will be matched as a keyword.
syn match javaccSpecToken ".LOOKAHEAD("ms=s+1,me=e-1
syn match javaccToken "<[^> \t]*>"
syn keyword javaccActionToken TOKEN SKIP MORE SPECIAL_TOKEN
syn keyword javaccError DEBUG IGNORE_IN_BNF

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link javaccSpecToken Statement
hi def link javaccActionToken Type
hi def link javaccPackages javaScopeDecl
hi def link javaccToken String
hi def link javaccError Error

let b:current_syntax = "javacc"
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z��``vim80/syntax/godoc.vimnu�[���" Vim syntax file
" Language:	Godoc (generated documentation for go)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-go)
" Last Change:	2014 Aug 16

if exists('b:current_syntax')
  finish
endif

syn case match
syn match godocTitle "^\([A-Z][A-Z ]*\)$"


hi def link godocTitle Title


let b:current_syntax = 'godoc'

" vim: sw=2 sts=2 et
PK�j�ZMA��I^I^vim80/syntax/aml.vimnu�[���" Vim syntax file
" Language:	AML (ARC/INFO Arc Macro Language)
" Written By:	Nikki Knuit <Nikki.Knuit@gems3.gov.bc.ca>
" Maintainer:	Todd Glover <todd.glover@gems9.gov.bc.ca>
" Last Change:	2001 May 10

" FUTURE CODING:  Bold application commands after &sys, &tty
"		  Only highlight aml Functions at the beginning
"		    of [], in order to avoid -read highlighted,
"		    or [quote] strings highlighted

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" ARC, ARCEDIT, ARCPLOT, LIBRARIAN, GRID, SCHEMAEDIT reserved words,
" defined as keywords.

syn keyword amlArcCmd contained  2button abb abb[reviations] abs ac acos acosh add addc[ogoatt] addcogoatt addf[eatureclass] addh[istory] addi addim[age] addindexatt addit[em] additem addressb[uild] addressc[reate] addresse[rrors] addressedit addressm[atch] addressp[arse] addresst[est] addro[utemeasure] addroutemeasure addte[xt] addto[stack] addw[orktable] addx[y] adj[ust] adm[inlicense] adr[ggrid] ads adsa[rc] ae af ag[gregate] ai ai[request] airequest al alia[s] alig[n] alt[erarchive] am[sarc] and annoa[lignment] annoadd annocapture annocl[ip] annoco[verage] annocurve annoe[dit] annoedit annof annofeature annofit annoitem annola[yer] annole[vel] annolevel annoline annooffset annop[osition] annoplace annos[ize] annoselectfeatur annoset annosum annosymbol annot annot[ext] annotext annotype ao ap apm[ode] app[end] arc arcad[s] arcar[rows] arcc[ogo] arcdf[ad] arcdi[me] arcdl[g] arcdx[f] arced[it] arcedit arcen[dtext] arcf[ont] arcigd[s] arcige[s] arcla[bel] arcli[nes] arcma[rkers] arcmo[ss]
syn keyword amlArcCmd contained  arcpl[ot] arcplot arcpo[int] arcr[oute] arcs arcsc[itex] arcse[ction] arcsh[ape] arcsl[f] arcsn[ap] arcsp[ot] arcte[xt] arctig[er] arctin arcto[ols] arctools arcty[pe] area areaq[uery] arm arrow arrows[ize] arrowt[ype] as asc asciig[rid] asciih[elp] asciihelp asco[nnect] asconnect asd asda[tabase] asdi[sconnect] asdisconnect asel[ect] asex[ecute] asf asin asinh asp[ect] asr[eadlocks] ast[race] at atan atan2 atanh atusage aud[ittrail] autoi[ncrement] autol[ink] axis axish[atch] axisl[abels] axisr[uler] axist[ext] bac[klocksymbol] backcoverage backenvironment backnodeangleite backsymbolitem backtextitem base[select] basi[n] bat[ch] bc be be[lls] blackout blockmaj[ority] blockmax blockmea[n] blockmed[ian] blockmin blockmino[rity] blockr[ange] blockst[d] blocksu[m] blockv[ariety] bnai bou[ndaryclean] box br[ief] bsi bti buf[fer] bug[form] bugform build builds[ta] buildv[at] calco[mp] calcomp calcu[late] cali[brateroutes] calibrateroutes can[d] cartr[ead] cartread
syn keyword amlArcCmd contained  cartw[rite] cartwrite cei[l] cel[lvalue] cen[troidlabels] cgm cgme[scape] cha[nge] checkin checkinrel checkout checkoutrel chm[od] chown chownt[ransaction] chowntran chowntransaction ci ci[rcle] cir class classp[rob] classs[ig] classsample clean clear clears[elect] clip clipg[raphextent] clipm[apextent] clo[sedatabase] cntvrt co cod[efind] cog[oinverse] cogocom cogoenv cogomenu coll[ocate] color color2b[lue] color2g[reen] color2h[ue] color2r[ed] color2s[at] color2v[al] colorchart coloredit colorh[cbs] colorhcbs colu[mns] comb[ine] comm[ands] commands con connect connectu[ser] cons[ist] conto[ur] contr[olpoints] convertd[oc] convertdoc converti[mage] convertla[yer] convertli[brary] convertr[emap] convertw[orkspace] coo[rdinate] coordinate coordinates copy copyf[eatures] copyi[nfo] copyl[ayer] copyo copyo[ut] copyout copys[tack] copyw[orkspace] copyworkspace cor corr[idor] correlation cos cosh costa[llocation] costb[acklink] costd[istance] costp[ath] cou[ntvertices]
syn keyword amlArcCmd contained  countvertices cpw cr create create2[dindex] createa[ttributes] createca[talog] createco[go] createcogo createf[eature] createind[ex] createinf[otable] createlab[els] createlay[er] createli[brary] createn[etindex] creater[emap] creates[ystables] createta[blespace] createti[n] createw[orkspace] createworkspace cs culdesac curs[or] curv[ature] curve3pt cut[fill] cutoff cw cx[or] da dar[cyflow] dat[aset] dba[seinfo] dbmsc dbmsc[ursor] dbmscursor dbmse[xecute] dbmsi[nfo] dbmss[et] de delete deletea[rrows] deletet[ic] deletew[orkspace] deleteworkspace demg[rid] deml[attice] dend[rogram] densify densifya[rc] describe describea[rchive] describel[attice] describeti[n] describetr[ans] describetrans dev df[adarc] dg dif[f] digi[tizer] digt[est] dim[earc] dir dir[ectory] directory disa[blepanzoom] disconnect disconnectu[ser] disp disp[lay] display dissolve dissolvee[vents] dissolveevents dista[nce] distr[ibutebuild] div dl[garc] do doce[ll] docu[ment] document dogroup drag
syn keyword amlArcCmd contained  draw drawenvironment draworder draws[ig] drawselect drawt[raverses] drawz[oneshape] drop2[dindex] dropa[rchive] dropfeaturec[lass] dropfeatures dropfr[omstack] dropgroup droph[istory] dropind[ex] dropinf[otable] dropit[em] dropla[yer] droplib[rary] droplin[e] dropline dropn[etindex] dropt[ablespace] dropw[orktable] ds dt[edgrid] dtrans du[plicate] duplicatearcs dw dxf dxfa[rc] dxfi[nfo] dynamicpan dynpan ebe ec ed edg[esnap] edgematch editboundaryerro edit[coverage]  editdistance editf editfeature editp[lot] editplot edits[ig] editsymbol ef el[iminate] em[f] en[d] envrst envsav ep[s] eq equ[alto] er[ase] es et et[akarc] euca[llocation] eucdir[ection] eucdis[tance] eval eventa[rc] evente[nds] eventh[atch] eventi[nfo] eventlinee[ndtext] eventlines eventlinet[ext] eventlis[t] eventma[rkers] eventme[nu] eventmenu eventpoint eventpointt[ext] eventse[ction] eventso[urce] eventt[ransform] eventtransform exi[t] exp exp1[0] exp2 expa[nd] expo[rt] exten[d] external externala[ll]
syn keyword amlArcCmd contained  fd[convert] featuregroup fg fie[lddata] file fill filt[er] fix[ownership] flip flipa[ngle] float floatg[rid] floo[r] flowa[ccumulation] flowd[irection] flowl[ength] fm[od] focalf[low] focalmaj[ority] focalmax focalmea[n] focalmed[ian] focalmin focalmino[rity] focalr[ange] focalst[d] focalsu[m] focalv[ariety] fonta[rc] fontco[py] fontcr[eate] fontd[elete] fontdump fontl[oad] fontload forc[e] form[edit] formedit forms fr[equency] ge geary general[ize] generat[e] gerbera[rc] gerberr[ead] gerberread gerberw[rite] gerberwrite get getz[factor] gi gi[rasarc] gnds grai[n] graphb[ar] graphe[xtent] graphi[cs] graphicimage graphicview graphlim[its] graphlin[e] graphp[oint] graphs[hade] gray[shade] gre[aterthan] grid grida[scii] gridcl[ip] gridclip gridco[mposite] griddesk[ew] griddesp[eckle] griddi[rection] gride[dit] gridfli[p] gridflo[at] gridim[age] gridin[sert] gridl[ine] gridma[jority] gridmi[rror] gridmo[ss] gridn[et] gridnodatasymbol gridpa[int] gridpoi[nt] gridpol[y]
syn keyword amlArcCmd contained  gridq[uery] gridr[otate] gridshad[es] gridshap[e] gridshi[ft] gridw[arp] group groupb[y] gt gv gv[tolerance] ha[rdcopy] he[lp] help hid[densymbol] hig[hlow] hil[lshade] his[togram] historicalview ho[ldadjust] hpgl hpgl2 hsv2b[lue] hsv2g[reen] hsv2r[ed] ht[ml] hview ia ided[it] identif[y] identit[y] idw if igdsa[rc] igdsi[nfo] ige[sarc] il[lustrator] illustrator image imageg[rid] imagep[lot] imageplot imageview imp[ort] in index indexi[tem] info infodba[se] infodbm[s] infof[ile] init90[00] init9100 init9100b init91[00] init95[00] int intersect intersectarcs intersecte[rr] isn[ull] iso[cluster] it[ems] iview j[oinitem] join keeps keepselect keyan[gle] keyar[ea] keyb[ox] keyf[orms] keyl[ine] keym keym[arker] keymap keyp[osition] keyse[paration] keysh[ade] keyspot kill killm[ap] kr[iging] la labela[ngle] labele[rrors] labelm[arkers] labels labelsc[ale] labelsp[ot] labelt[ext] lal latticecl[ip] latticeco[ntour] latticed[em] latticem[erge] latticemarkers latticeo[perate]
syn keyword amlArcCmd contained  latticep[oly] latticerep[lace] latticeres[ample] lattices[pot] latticet[in] latticetext layer layera[nno] layerca[lculate] layerco[lumns] layerde[lete] layerdo[ts] layerdr[aw] layere[xport] layerf[ilter] layerid[entify] layerim[port] layerio[mode] layerli[st] layerloc[k] layerlog[file] layerq[uery] layerse[arch] layersp[ot] layert[ext] lc ldbmst le leadera[rrows] leaders leadersy[mbol] leadert[olerance] len[gth] les[sthan] lf lg lh li lib librari[an] library limitadjust limitautolink line line2pt linea[djustment] linecl[osureangle] linecolor linecolorr[amp] linecopy linecopyl[ayer] linedelete linedeletel[ayer] lineden[sity] linedir[ection] linedis[t] lineedit lineg[rid] lineh[ollow] lineinf[o] lineint[erval] linel[ayer] linelist linem[iterangle] lineo[ffset] linepa[ttern] linepe[n] linepu[t] linesa[ve] linesc[ale] linese[t] linesi[ze] linest[ats] linesy[mbol] linete[mplate]
syn keyword amlArcCmd contained  linety[pe] link[s] linkfeatures list listarchives listatt listc[overages] listcoverages listdbmstables listg[rids] listgrids listhistory listi[mages] listimages listinfotables listlayers listlibraries listo[utput] listse[lect] listst[acks] liststacks listtablespaces listti[ns] listtins listtr[averses] listtran listtransactions listw[orkspaces] listworkspaces lit ll ll[sfit] lla lm ln load loada[djacent] loadcolormap locko[nly] locks[ymbol] log log1[0] log2 logf[ile] logg[ing] loo[kup] lot[area] lp[os] lstk lt lts lw madditem majority majorityf[ilter] makere[gion] makero[ute] makese[ction] makest[ack] mal[ign] map mapa[ngle] mape[xtent] mapextent mapi[nfo] mapj[oin] mapl[imits] mappo[sition] mappr[ojection] mapsc[ale] mapsh[ift] mapu[nits] mapw[arp] mapz[oom] marker markera[ngle] markercolor markercolorr[amp] markercopy markercopyl[ayer] markerdelete markerdeletel[aye] markeredit markerf[ont] markeri[nfo] markerl[ayer] markerlist markerm[ask] markero[ffset]
syn keyword amlArcCmd contained  markerpa[ttern] markerpe[n] markerpu[t] markersa[ve] markersc[ale] markerse[t] markersi[ze] markersy[mbol] mas[elect] matchc[over] matchn[ode] max mb[egin] mc[opy] md[elete] me mean measure measurer[oute] measureroute med mend menu[cover] menuedit menv[ironment] merge mergeh[istory] mergev[at] mfi[t] mfr[esh] mg[roup] miadsa[rc] miadsr[ead] miadsread min minf[o] mino[rity] mir[ror] mitems mjoin ml[classify] mma[sk] mmo[ve] mn[select] mod mor[der] moran mosa[ic] mossa[rc] mossg[rid] move movee[nd] movei[tem] mp[osition] mr mr[otate] msc[ale] mse[lect] mselect mt[olerance] mu[nselect] multcurve multinv multipleadditem multipleitems multiplejoin multipleselect multprop mw[ho] nai ne near neatline neatlineg[rid] neatlineh[atch] neatlinel[abels] neatlinet[ics] new next ni[bble] nodeangleitem nodec[olor] nodee[rrors] nodem[arkers] nodep[oint] nodes nodesi[ze] nodesn[ap] nodesp[ot] nodet[ext] nor[mal] not ns[elect] oe ogrid ogridt[ool] oldwindow oo[ps] op[endatabase] or
syn keyword amlArcCmd contained  osymbol over overflow overflowa[rea] overflowp[osition] overflows[eparati] overl[ayevents] overlapsymbol overlayevents overp[ost] pagee[xtent] pages[ize] pageu[nits] pal[info] pan panview par[ticletrack] patc[h] path[distance] pe[nsize] pi[ck] pli[st] plot plotcopy plotg[erber] ploti[con] plotmany plotpanel plotsc[itex] plotsi[f] pointde[nsity] pointdist pointdista[nce] pointdo[ts] pointg[rid] pointi[nterp] pointm[arkers] pointn[ode] points pointsp[ot] pointst[ats] pointt[ext] polygonb[ordertex] polygond[ots] polygone[vents] polygonevents polygonl[ines] polygons polygonsh[ades] polygonsi[zelimit] polygonsp[ot] polygont[ext] polygr[id] polyr[egion] pop[ularity] por[ouspuff] pos pos[tscript] positions postscript pow prec[ision] prep[are] princ[omp] print product producti[nfo] project projectcom[pare] projectcop[y] projectd[efine] pul[litems] pur[gehistory] put pv q q[uit] quit rand rang[e] rank rb rc re readg[raphic] reads[elect] reb[ox] recl[ass] recoverdb rect[ify]
syn keyword amlArcCmd contained  red[o] refreshview regionb[uffer] regioncla[ss] regioncle[an] regiondi[ssolve] regiondo[ts] regione[rrors] regiong[roup] regionj[oin] regionl[ines] regionpoly regionpolyc[ount] regionpolycount regionpolyl[ist] regionpolylist regionq[uery] regions regionse[lect] regionsh[ades] regionsp[ot] regiont[ext] regionxa[rea] regionxarea regionxt[ab] regionxtab register registerd[bms] regr[ession] reindex rej[ects] rela[te] rele[ase] rem remapgrid reme[asure] remo[vescalar] remove removeback removecover removeedit removesnap removetransfer rename renamew[orkspace] renameworkspace reno[de] rep[lace] reposition resa[mple] resel[ect] reset resh[ape] restore restorearce[dit] restorearch[ive] resu[me] rgb2h[ue] rgb2s[at] rgb2v[al] rotate rotatep[lot] routea[rc] routeends routeendt[ext] routeer[rors] routeev[entspot] routeh[atch] routel[ines] routes routesp[ot] routest[ats] routet[ext] rp rs rt rt[l] rtl rv rw sa sai sample samples[ig] sav[e] savecolormap sc scal[ar] scat[tergram]
syn keyword amlArcCmd contained  scenefog sceneformat scenehaze sceneoversample sceneroll scenesave scenesize scenesky scitexl[ine] scitexpoi[nt] scitexpol[y] scitexr[ead] scitexread scitexw[rite] scitexwrite sco screenr[estore] screens[ave] sd sds sdtse[xport] sdtsim[port] sdtsin[fo] sdtsl[ist] se sea[rchtolerance] sectiona[rc] sectionends sectionendt[ext] sectionh[atch] sectionl[ines] sections sectionsn[ap] sectionsp[ot] sectiont[ext] sel select selectb[ox] selectc[ircle] selectg[et] selectm[ask] selectmode selectpoi[nt] selectpol[ygon] selectpu[t] selectt[ype] selectw[ithin] semivariogram sep[arator] separator ser[verstatus] setan[gle] setar[row] setce[ll] setcoa[lesce] setcon[nectinfo] setd[bmscheckin] setdrawsymbol sete[ditmode] setincrement setm[ask] setn[ull] setools setreference setsymbol setturn setw[indow] sext sf sfmt sfo sha shade shadea[ngle] shadeb[ackcolor] shadecolor shadecolorr[amp] shadecopy shadecopyl[ayer] shadedelete shadedeletel[ayer] shadeedit shadegrid shadei[nfo] shadela[yer]
syn keyword amlArcCmd contained  shadeli[nepattern] shadelist shadeo[ffset] shadepa[ttern] shadepe[n] shadepu[t] shadesa[ve] shadesc[ale] shadesep[aration] shadeset shadesi[ze] shadesy[mbol] shadet[ype] shapea[rc] shapef[ile] shapeg[rid] shi[ft] show showconstants showe[ditmode] shr[ink] si sin sinfo sing[leuser] sinh sink sit[e] sl slf[arc] sli[ce] slo[pe] sm smartanno snap snapc[over] snapcover snapcoverage snapenvironment snapfeatures snapitems snapo[rder] snappi[ng] snappo[ur] so[rt] sobs sos spi[der] spiraltrans spline splinem[ethod] split spot spoto[ffset] spots[ize] sproj sqr sqrt sra sre srl ss ssc ssh ssi ssky ssz sta stackh[istogram] stackprofile stacksc[attergram] stackshade stackst[ats] stati[stics] statu[s] statuscogo std stra[ighten] streamline streamlink streamo[rder] stri[pmap] subm[it] subs[elect] sum surface surfaceabbrev surfacecontours surfacedefaults surfacedrape surfaceextent surfaceinfo surfacel[ength] surfacelimits surfacemarker surfacemenu surfaceobserver surfaceprofile
syn keyword amlArcCmd contained  surfaceprojectio surfacerange surfaceresolutio surfacesave surfacescene surfaceshade surfacesighting surfacetarget surfacevalue surfaceviewfield surfaceviewshed surfacevisibility surfacexsection surfacezoom surfacezscale sv svfd svs sxs symboldump symboli[tem] symbolsa[ve] symbolsc[ale] symbolse[t] symbolset sz tab[les] tal[ly] tan tanh tc te tes[t] text textal[ignment] textan[gle] textcolor textcolorr[amp] textcop[y] textde[lete] textdi[rection] textedit textfil[e] textfit textfo[nt] textin[fo] textit[em] textj[ustificatio] textlist textm[ask] texto[ffset] textpe[n] textpr[ecision] textpu[t] textq[uality] textsa[ve] textsc[ale] textse[t] textset textsi[ze] textsl[ant] textspa[cing] textspl[ine] textst[yle] textsy[mbol] tf th thie[ssen] thin ti tics tict[ext] tigera[rc] tigert[ool] tigertool til[es] timped tin tina[rc] tinc[ontour] tinerrors tinhull tinl[attice] tinlines tinmarkers tins[pot] tinshades tintext tinv[rml] tl tm tol[erance] top[ogrid] topogridtool
syn keyword amlArcCmd contained  transa[ction] transfe[r] transfercoverage transferfeature transferitems transfersymbol transfo[rm] travrst travsav tre[nd] ts tsy tt tur[ntable] turnimpedance tut[orial] una[ry] unde[lete] undo ungenerate ungeneratet[in] unio[n] unit[s] unr[egisterdbms] unse[lect] unsp[lit] update updatei[nfoschema] updatel[abels] upo[s] us[age] v va[riety] vcgl vcgl2 veri[fy] vers[ion] vertex viewrst viewsav vip visd[ecode] visdecode vise[ncode] visencode visi[bility] vo[lume] vpfe[xport] vpfi[mport] vpfl[ist] vpft[ile] w war[p] wat[ershed] weedd[raw] weedo[perator] weedt[olerance] weedtolerance whe[re] whi[le] who wi[ndows] wm[f] wo[rkspace] workspace writec[andidates] writeg[raphic] writes[elect] wt x[or] ze[ta] zeta zi zo zonala[rea] zonalc[entroid] zonalf[ill] zonalg[eometry] zonalmaj[ority] zonalmax zonalmea[n] zonalmed[ian] zonalmin zonalmino[rity] zonalp[erimeter] zonalr[ange] zonalsta[ts] zonalstd zonalsu[m] zonalt[hickness] zonalv[ariety] zoomview zv

" FORMEDIT reserved words, defined as keywords.

syn keyword amlFormedCmd contained  button choice display help input slider text

" TABLES reserved words, defined as keywords.

syn keyword amlTabCmd contained  add additem alter asciihelp aselect at calc calculate change commands commit copy define directory dropindex dropitem erase external get help indexitem items kill list move nselect purge quit redefine rename reselect rollback save select show sort statistics unload update usagecontained

" INFO reserved words, defined as keywords.

syn keyword amlInfoCmd contained  accept add adir alter dialog alter alt directory aret arithmetic expressions aselect automatic return calculate cchr change options change comi cominput commands list como comoutput compile concatenate controlling defaults copy cursor data delete data entry data manipulate data retrieval data update date format datafile create datafile management decode define delimiter dfmt directory management directory display do doend documentation done end environment erase execute exiting expand export external fc files first format forms control get goto help import input form ipf internal item types items label lchar list logical expressions log merge modify options modify move next nselect output password prif print programming program protect purge query quit recase redefine relate relate release notes remark rename report options reporting report reselect reserved words restrictions run save security select set sleep sort special form spool stop items system variables take terminal types terminal time topics list type update upf

" VTRACE reserved words, defined as keywords.

syn keyword amlVtrCmd contained  add al arcscan arrowlength arrowwidth as aw backtrack branch bt cj clearjunction commands cs dash endofline endofsession eol eos fan fg foreground gap generalizetolerance gtol help hole js junctionsensitivity linesymbol linevariation linewidth ls lv lw markersymbol mode ms raster regionofinterest reset restore retrace roi save searchradius skip sr sta status stc std str straightenangle straightencorner straightendistance straightenrange vt vtrace

" The AML reserved words, defined as keywords.

syn keyword amlFunction contained  abs access acos after angrad asin atan before calc close copy cos cover coverage cvtdistance date delete dignum dir directory entryname exist[s] exp extract file filelist format formatdate full getchar getchoice getcover getdatabase getdeflayers getfile getgrid getimage getitem getlayercols getlibrary getstack getsymbol gettin getunique iacclose iacconnect iacdisconnect iacopen iacrequest index indexed info invangle invdistance iteminfo joinfile keyword length listfile listitem listunique locase log max menu min mod noecho null okangle okdistance open pathname prefix query quote quoteexists r radang random read rename response round scratchname search show sin sort sqrt subst substr suffix tan task token translate trim truncate type unquote upcase username value variable verify write

syn keyword amlDir contained  abbreviations above all aml amlpath append arc args atool brief by call canvas cc center cl codepage commands conv_watch_to_aml coordinates cr create current cursor cwta dalines data date_format delete delvar describe dfmt digitizer display do doend dv echo else enable encode encrypt end error expansion fail file flushpoints force form format frame fullscreen function getlastpoint getpoint goto iacreturn if ignore info inform key keypad label lc left lf lg list listchar listfiles listglobal listheader listlocal listprogram listvar ll lp lr lv map matrix menu menupath menutype mess message[s] modal mouse nopaging off on others page pause pinaction popup position pt pulldown push pushpoint r repeat return right routine run runwatch rw screen seconds select self setchar severity show sidebar single size staggered station stop stripe sys system tablet tb terminal test then thread to top translate tty ty type uc ul until ur usage w warning watch when while window workspace

syn keyword amlDir2 contained  delvar dv s set setvar sv

syn keyword amlOutput contained  inform warning error pause stop tty ty type


" AML Directives:
syn match amlDirSym "&"
syn match amlDirective "&[a-zA-Z]*" contains=amlDir,amlDir2,amlDirSym

" AML Functions
syn region amlFunc start="\[ *[a-zA-Z]*" end="\]" contains=amlFunction,amlVar
syn match amlFunc2 "\[.*\[.*\].*\]" contains=amlFunction,amlVar

" Numbers:
"syn match amlNumber		"-\=\<[0-9]*\.\=[0-9_]\>"

" Quoted Strings:
syn region amlQuote start=+"+ skip=+\\"+ end=+"+ contains=amlVar
syn region amlQuote start=+'+ skip=+\\'+ end=+'+

" ARC Application Commands only selected at the beginning of the line,
" or after a one line &if &then statement
syn match amlAppCmd "^ *[a-zA-Z]*" contains=amlArcCmd,amlInfoCmd,amlTabCmd,amlVtrCmd,amlFormedCmd
syn region amlAppCmd start="&then" end="$" contains=amlArcCmd,amlFormedCmd,amlInfoCmd,amlTabCmd,amlVtrCmd,amlFunction,amlDirective,amlVar2,amlSkip,amlVar,amlComment

" Variables
syn region amlVar start="%" end="%"
syn region amlVar start="%" end="%" contained
syn match amlVar2 "&s [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym
syn match amlVar2 "&sv [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym
syn match amlVar2 "&set [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym
syn match amlVar2 "&setvar [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym
syn match amlVar2 "&dv [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym
syn match amlVar2 "&delvar [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym

" Formedit 2 word commands
syn match amlFormed "^ *check box"
syn match amlFormed "^ *data list"
syn match amlFormed "^ *symbol list"

" Tables 2 word commands
syn match amlTab "^ *q stop"
syn match amlTab "^ *quit stop"

" Comments:
syn match amlComment "/\*.*"

" Regions for skipping over (not highlighting) program output strings:
syn region amlSkip matchgroup=amlOutput start="&call" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&routine" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&inform" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&return &inform" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&return &warning" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&return &error" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&pause" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&stop" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&tty" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&ty" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&typ" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&type" end="$" contains=amlVar

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link amlComment	Comment
hi def link amlNumber	Number
hi def link amlQuote	String
hi def link amlVar	Identifier
hi def link amlVar2	Identifier
hi def link amlFunction	PreProc
hi def link amlDir	Statement
hi def link amlDir2	Statement
hi def link amlDirSym	Statement
hi def link amlOutput	Statement
hi def link amlArcCmd	ModeMsg
hi def link amlFormedCmd	amlArcCmd
hi def link amlTabCmd	amlArcCmd
hi def link amlInfoCmd	amlArcCmd
hi def link amlVtrCmd	amlArcCmd
hi def link amlFormed	amlArcCmd
hi def link amlTab	amlArcCmd


let b:current_syntax = "aml"
PK�j�Z������vim80/syntax/mgp.vimnu�[���" Vim syntax file
" Language:     mgp - MaGic Point
" Maintainer:   Gerfried Fuchs <alfie@ist.org>
" Filenames:    *.mgp
" Last Change:  25 Apr 2001
" URL:		http://alfie.ist.org/vim/syntax/mgp.vim
"
" Comments are very welcome - but please make sure that you are commenting on
" the latest version of this file.
" SPAM is _NOT_ welcome - be ready to be reported!


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


syn match mgpLineSkip "\\$"

" all the commands that are currently recognized
syn keyword mgpCommand contained size fore back bgrad left leftfill center
syn keyword mgpCommand contained right shrink lcutin rcutin cont xfont vfont
syn keyword mgpCommand contained tfont tmfont tfont0 bar image newimage
syn keyword mgpCommand contained prefix icon bimage default tab vgap hgap
syn keyword mgpCommand contained pause mark again system filter endfilter
syn keyword mgpCommand contained vfcap tfdir deffont font embed endembed
syn keyword mgpCommand contained noop pcache include

" charset is not yet supported :-)
" syn keyword mgpCommand contained charset

syn region mgpFile     contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match mgpValue     contained "\d\+"
syn match mgpSize      contained "\d\+x\d\+"
syn match mgpLine      +^%.*$+ contains=mgpCommand,mgpFile,mgpSize,mgpValue

" Comments
syn match mgpPercent   +^%%.*$+
syn match mgpHash      +^#.*$+

" these only work alone
syn match mgpPage      +^%page$+
syn match mgpNoDefault +^%nodefault$+


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link mgpLineSkip	Special

hi def link mgpHash	mgpComment
hi def link mgpPercent	mgpComment
hi def link mgpComment	Comment

hi def link mgpCommand	Identifier

hi def link mgpLine	Type

hi def link mgpFile	String
hi def link mgpSize	Number
hi def link mgpValue	Number

hi def link mgpPage	mgpDefine
hi def link mgpNoDefault	mgpDefine
hi def link mgpDefine	Define


let b:current_syntax = "mgp"
PK�j�Z�H���vim80/syntax/pcap.vimnu�[���" Vim syntax file
" Config file:	printcap
" Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int> (defunct)
"		Modified by Bram
" Last Change:	2003 May 11

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

"define keywords
setlocal isk=@,46-57,_,-,#,=,192-255

"first all the bad guys
syn match pcapBad '^.\+$'	       "define any line as bad
syn match pcapBadword '\k\+' contained "define any sequence of keywords as bad
syn match pcapBadword ':' contained    "define any single : as bad
syn match pcapBadword '\\' contained   "define any single \ as bad
"then the good boys
" Boolean keywords
syn match pcapKeyword contained ':\(fo\|hl\|ic\|rs\|rw\|sb\|sc\|sf\|sh\)'
" Numeric Keywords
syn match pcapKeyword contained ':\(br\|du\|fc\|fs\|mx\|pc\|pl\|pw\|px\|py\|xc\|xs\)#\d\+'
" String Keywords
syn match pcapKeyword contained ':\(af\|cf\|df\|ff\|gf\|if\|lf\|lo\|lp\|nd\|nf\|of\|rf\|rg\|rm\|rp\|sd\|st\|tf\|tr\|vf\)=\k*'
" allow continuation
syn match pcapEnd ':\\$' contained
"
syn match pcapDefineLast '^\s.\+$' contains=pcapBadword,pcapKeyword
syn match pcapDefine '^\s.\+$' contains=pcapBadword,pcapKeyword,pcapEnd
syn match pcapHeader '^\k[^|]\+\(|\k[^|]\+\)*:\\$'
syn match pcapComment "#.*$"

syn sync minlines=50


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link pcapBad WarningMsg
hi def link pcapBadword WarningMsg
hi def link pcapComment Comment


let b:current_syntax = "pcap"

" vim: ts=8
PK�j�Z���f�fvim80/syntax/c.vimnu�[���" Vim syntax file
" Language:	C
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Apr 30

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

let s:ft = matchstr(&ft, '^\([^.]\)\+')

" Optional embedded Autodoc parsing
" To enable it add: let g:c_autodoc = 1
" to your .vimrc
if exists("c_autodoc")
  syn include @cAutodoc <sfile>:p:h/autodoc.vim
  unlet b:current_syntax
endif

" A bunch of useful C keywords
syn keyword	cStatement	goto break return continue asm
syn keyword	cLabel		case default
syn keyword	cConditional	if else switch
syn keyword	cRepeat		while for do

syn keyword	cTodo		contained TODO FIXME XXX

" It's easy to accidentally add a space after a backslash that was intended
" for line continuation.  Some compilers allow it, which makes it
" unpredictable and should be avoided.
syn match	cBadContinuation contained "\\\s\+$"

" cCommentGroup allows adding matches for special things in comments
syn cluster	cCommentGroup	contains=cTodo,cBadContinuation

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match	cSpecial	display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
if !exists("c_no_utf")
  syn match	cSpecial	display contained "\\\(u\x\{4}\|U\x\{8}\)"
endif

if !exists("c_no_cformat")
  " Highlight % items in strings.
  if !exists("c_no_c99") " ISO C99
    syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
  else
    syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
  endif
  syn match	cFormat		display "%%" contained
endif

" cCppString: same as cString, but ends at end of line
if s:ft ==# "cpp" && !exists("cpp_no_cpp11") && !exists("c_no_cformat")
  " ISO C++11
  syn region	cString		start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
  syn region 	cCppString	start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
elseif s:ft ==# "c" && !exists("c_no_c11") && !exists("c_no_cformat")
  " ISO C99
  syn region	cString		start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
  syn region	cCppString	start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
else
  " older C or C++
  syn match	cFormat		display "%%" contained
  syn region	cString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
  syn region	cCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
endif

syn region	cCppSkip	contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip

syn cluster	cStringGroup	contains=cCppString,cCppSkip

syn match	cCharacter	"L\='[^\\]'"
syn match	cCharacter	"L'[^']*'" contains=cSpecial
if exists("c_gnu")
  syn match	cSpecialError	"L\='\\[^'\"?\\abefnrtv]'"
  syn match	cSpecialCharacter "L\='\\['\"?\\abefnrtv]'"
else
  syn match	cSpecialError	"L\='\\[^'\"?\\abfnrtv]'"
  syn match	cSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
endif
syn match	cSpecialCharacter display "L\='\\\o\{1,3}'"
syn match	cSpecialCharacter display "'\\x\x\{1,2}'"
syn match	cSpecialCharacter display "L'\\x\x\+'"

if (s:ft ==# "c" && !exists("c_no_c11")) || (s:ft ==# "cpp" && !exists("cpp_no_cpp11"))
  " ISO C11 or ISO C++ 11
  if exists("c_no_cformat")
    syn region	cString		start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
  else
    syn region	cString		start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
  endif
  syn match	cCharacter	"[Uu]'[^\\]'"
  syn match	cCharacter	"[Uu]'[^']*'" contains=cSpecial
  if exists("c_gnu")
    syn match	cSpecialError	"[Uu]'\\[^'\"?\\abefnrtv]'"
    syn match	cSpecialCharacter "[Uu]'\\['\"?\\abefnrtv]'"
  else
    syn match	cSpecialError	"[Uu]'\\[^'\"?\\abfnrtv]'"
    syn match	cSpecialCharacter "[Uu]'\\['\"?\\abfnrtv]'"
  endif
  syn match	cSpecialCharacter display "[Uu]'\\\o\{1,3}'"
  syn match	cSpecialCharacter display "[Uu]'\\x\x\+'"
endif

"when wanted, highlight trailing white space
if exists("c_space_errors")
  if !exists("c_no_trail_space_error")
    syn match	cSpaceError	display excludenl "\s\+$"
  endif
  if !exists("c_no_tab_space_error")
    syn match	cSpaceError	display " \+\t"me=e-1
  endif
endif

" This should be before cErrInParen to avoid problems with #define ({ xxx })
if exists("c_curly_error")
  syn match cCurlyError "}"
  syn region	cBlock		start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell fold
else
  syn region	cBlock		start="{" end="}" transparent fold
endif

" Catch errors caused by wrong parenthesis and brackets.
" Also accept <% for {, %> for }, <: for [ and :> for ] (C99)
" But avoid matching <::.
syn cluster	cParenGroup	contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
if exists("c_no_curly_error")
  if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
    syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
    " cCppParen: same as cParen but ends at end-of-line; used in cDefine
    syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
    syn match	cParenError	display ")"
    syn match	cErrInParen	display contained "^^<%\|^%>"
  else
    syn region	cParen		transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
    " cCppParen: same as cParen but ends at end-of-line; used in cDefine
    syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
    syn match	cParenError	display ")"
    syn match	cErrInParen	display contained "^[{}]\|^<%\|^%>"
  endif
elseif exists("c_no_bracket_error")
  if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
    syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
    " cCppParen: same as cParen but ends at end-of-line; used in cDefine
    syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
    syn match	cParenError	display ")"
    syn match	cErrInParen	display contained "<%\|%>"
  else
    syn region	cParen		transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
    " cCppParen: same as cParen but ends at end-of-line; used in cDefine
    syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
    syn match	cParenError	display ")"
    syn match	cErrInParen	display contained "[{}]\|<%\|%>"
  endif
else
  if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
    syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
    " cCppParen: same as cParen but ends at end-of-line; used in cDefine
    syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
    syn match	cParenError	display "[\])]"
    syn match	cErrInParen	display contained "<%\|%>"
    syn region	cBracket	transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
  else
    syn region	cParen		transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
    " cCppParen: same as cParen but ends at end-of-line; used in cDefine
    syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
    syn match	cParenError	display "[\])]"
    syn match	cErrInParen	display contained "[\]{}]\|<%\|%>"
    syn region	cBracket	transparent start='\[\|<::\@!' end=']\|:>' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
  endif
  " cCppBracket: same as cParen but ends at end-of-line; used in cDefine
  syn region	cCppBracket	transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell
  syn match	cErrInBracket	display contained "[);{}]\|<%\|%>"
endif

if s:ft ==# 'c' || exists("cpp_no_cpp11")
  syn region	cBadBlock	keepend start="{" end="}" contained containedin=cParen,cBracket,cBadBlock transparent fold
endif

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	cNumbers	display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal
" Same, but without octal error (for comments)
syn match	cNumbersCom	display contained transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctal
syn match	cNumber		display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match	cNumber		display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match	cOctal		display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
syn match	cOctalZero	display contained "\<0"
syn match	cFloat		display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match	cFloat		display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match	cFloat		display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match	cFloat		display contained "\d\+e[-+]\=\d\+[fl]\=\>"
if !exists("c_no_c99")
  "hexadecimal floating point number, optional leading digits, with dot, with exponent
  syn match	cFloat		display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>"
  "hexadecimal floating point number, with leading digits, optional dot, with exponent
  syn match	cFloat		display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>"
endif

" flag an octal number with wrong digits
syn match	cOctalError	display contained "0\o*[89]\d*"
syn case match

if exists("c_comment_strings")
  " A comment can contain cString, cCharacter and cNumber.
  " But a "*/" inside a cString in a cComment DOES end the comment!  So we
  " need to use a special type of cString: cCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  " Unfortunately this doesn't very well work for // type of comments :-(
  syn match	cCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syn region cCommentString	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip
  syn region cComment2String	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial
  syn region  cCommentL	start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError,@Spell
  if exists("c_no_comment_fold")
    " Use "extend" here to have preprocessor lines not terminate halfway a
    " comment.
    syn region cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell extend
  else
    syn region cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell fold extend
  endif
else
  syn region	cCommentL	start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cSpaceError,@Spell
  if exists("c_no_comment_fold")
    syn region	cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError,@Spell extend
  else
    syn region	cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError,@Spell fold extend
  endif
endif
" keep a // comment separately, it terminates a preproc. conditional
syn match	cCommentError	display "\*/"
syn match	cCommentStartError display "/\*"me=e-1 contained

syn keyword	cOperator	sizeof
if exists("c_gnu")
  syn keyword	cStatement	__asm__
  syn keyword	cOperator	typeof __real__ __imag__
endif
syn keyword	cType		int long short char void
syn keyword	cType		signed unsigned float double
if !exists("c_no_ansi") || exists("c_ansi_typedefs")
  syn keyword   cType		size_t ssize_t off_t wchar_t ptrdiff_t sig_atomic_t fpos_t
  syn keyword   cType		clock_t time_t va_list jmp_buf FILE DIR div_t ldiv_t
  syn keyword   cType		mbstate_t wctrans_t wint_t wctype_t
endif
if !exists("c_no_c99") " ISO C99
  syn keyword	cType		_Bool bool _Complex complex _Imaginary imaginary
  syn keyword	cType		int8_t int16_t int32_t int64_t
  syn keyword	cType		uint8_t uint16_t uint32_t uint64_t
  if !exists("c_no_bsd")
    " These are BSD specific.
    syn keyword	cType		u_int8_t u_int16_t u_int32_t u_int64_t
  endif
  syn keyword	cType		int_least8_t int_least16_t int_least32_t int_least64_t
  syn keyword	cType		uint_least8_t uint_least16_t uint_least32_t uint_least64_t
  syn keyword	cType		int_fast8_t int_fast16_t int_fast32_t int_fast64_t
  syn keyword	cType		uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t
  syn keyword	cType		intptr_t uintptr_t
  syn keyword	cType		intmax_t uintmax_t
endif
if exists("c_gnu")
  syn keyword	cType		__label__ __complex__ __volatile__
endif

syn keyword	cStructure	struct union enum typedef
syn keyword	cStorageClass	static register auto volatile extern const
if exists("c_gnu")
  syn keyword	cStorageClass	inline __attribute__
endif
if !exists("c_no_c99") && s:ft !=# 'cpp'
  syn keyword	cStorageClass	inline restrict
endif
if !exists("c_no_c11")
  syn keyword	cStorageClass	_Alignas alignas
  syn keyword	cOperator	_Alignof alignof
  syn keyword	cStorageClass	_Atomic
  syn keyword	cOperator	_Generic
  syn keyword	cStorageClass	_Noreturn noreturn
  syn keyword	cOperator	_Static_assert static_assert
  syn keyword	cStorageClass	_Thread_local thread_local
  syn keyword   cType		char16_t char32_t
endif

if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
  if exists("c_gnu")
    syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ __func__
  endif
  syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__
  syn keyword cConstant __STDC_VERSION__
  syn keyword cConstant CHAR_BIT MB_LEN_MAX MB_CUR_MAX
  syn keyword cConstant UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
  syn keyword cConstant CHAR_MIN INT_MIN LONG_MIN SHRT_MIN
  syn keyword cConstant CHAR_MAX INT_MAX LONG_MAX SHRT_MAX
  syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN
  syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX
  if !exists("c_no_c99")
    syn keyword cConstant __func__ __VA_ARGS__
    syn keyword cConstant LLONG_MIN LLONG_MAX ULLONG_MAX
    syn keyword cConstant INT8_MIN INT16_MIN INT32_MIN INT64_MIN
    syn keyword cConstant INT8_MAX INT16_MAX INT32_MAX INT64_MAX
    syn keyword cConstant UINT8_MAX UINT16_MAX UINT32_MAX UINT64_MAX
    syn keyword cConstant INT_LEAST8_MIN INT_LEAST16_MIN INT_LEAST32_MIN INT_LEAST64_MIN
    syn keyword cConstant INT_LEAST8_MAX INT_LEAST16_MAX INT_LEAST32_MAX INT_LEAST64_MAX
    syn keyword cConstant UINT_LEAST8_MAX UINT_LEAST16_MAX UINT_LEAST32_MAX UINT_LEAST64_MAX
    syn keyword cConstant INT_FAST8_MIN INT_FAST16_MIN INT_FAST32_MIN INT_FAST64_MIN
    syn keyword cConstant INT_FAST8_MAX INT_FAST16_MAX INT_FAST32_MAX INT_FAST64_MAX
    syn keyword cConstant UINT_FAST8_MAX UINT_FAST16_MAX UINT_FAST32_MAX UINT_FAST64_MAX
    syn keyword cConstant INTPTR_MIN INTPTR_MAX UINTPTR_MAX
    syn keyword cConstant INTMAX_MIN INTMAX_MAX UINTMAX_MAX
    syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
    syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
  endif
  syn keyword cConstant FLT_RADIX FLT_ROUNDS FLT_DIG FLT_MANT_DIG FLT_EPSILON DBL_DIG DBL_MANT_DIG DBL_EPSILON
  syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP FLT_MIN_10_EXP FLT_MAX_10_EXP
  syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP DBL_MIN_10_EXP DBL_MAX_10_EXP LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
  syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP HUGE_VAL CLOCKS_PER_SEC NULL LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
  syn keyword cConstant LC_NUMERIC LC_TIME SIG_DFL SIG_ERR SIG_IGN SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
  " Add POSIX signals as well...
  syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
  syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2
  syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF FOPEN_MAX FILENAME_MAX L_tmpnam
  syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET TMP_MAX stderr stdin stdout EXIT_FAILURE EXIT_SUCCESS RAND_MAX
  " POSIX 2001
  syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG SIGVTALRM SIGXCPU SIGXFSZ
  " non-POSIX signals
  syn keyword cConstant SIGWINCH SIGINFO
  " Add POSIX errors as well.  List comes from:
  " http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
  syn keyword cConstant E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
  syn keyword cConstant EBADMSG EBUSY ECANCELED ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK
  syn keyword cConstant EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTUNREACH EIDRM EILSEQ
  syn keyword cConstant EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE
  syn keyword cConstant EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA
  syn keyword cConstant ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR
  syn keyword cConstant ENOSTR ENOSYS ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
  syn keyword cConstant ENOTTY ENXIO EOPNOTSUPP EOVERFLOW EOWNERDEAD EPERM EPIPE EPROTO
  syn keyword cConstant EPROTONOSUPPORT EPROTOTYPE ERANGE EROFS ESPIPE ESRCH ESTALE ETIME ETIMEDOUT
  syn keyword cConstant ETXTBSY EWOULDBLOCK EXDEV
  " math.h
  syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4
  syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2
endif
if !exists("c_no_c99") " ISO C99
  syn keyword cConstant true false
endif

" Accept %: for # (C99)
syn region	cPreCondit	start="^\s*\zs\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
syn match	cPreConditMatch	display "^\s*\zs\(%:\|#\)\s*\(else\|endif\)\>"
if !exists("c_no_if0")
  syn cluster	cCppOutInGroup	contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
  syn region	cCppOutWrapper	start="^\s*\zs\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
  syn region	cCppOutIf	contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
  if !exists("c_no_if0_fold")
    syn region	cCppOutIf2	contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
  else
    syn region	cCppOutIf2	contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
  endif
  syn region	cCppOutElse	contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
  syn region	cCppInWrapper	start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
  syn region	cCppInIf	contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
  if !exists("c_no_if0_fold")
    syn region	cCppInElse	contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
  else
    syn region	cCppInElse	contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
  endif
  syn region	cCppInElse2	contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
  syn region	cCppOutSkip	contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
  syn region	cCppInSkip	contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
endif
syn region	cIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	cIncluded	display contained "<[^>]*>"
syn match	cInclude	display "^\s*\zs\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
"syn match cLineSkip	"\\$"
syn cluster	cPreProcGroup	contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock
syn region	cDefine		start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region	cPreProc	start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell

" Optional embedded Autodoc parsing
if exists("c_autodoc")
  syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL
  syn cluster cCommentGroup add=cAutodocReal
  syn cluster cPreProcGroup add=cAutodocReal
endif

" Highlight User Labels
syn cluster	cMultiGroup	contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
if s:ft ==# 'c' || exists("cpp_no_cpp11")
  syn region	cMulti		transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell,@cStringGroup
endif
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
syn cluster	cLabelGroup	contains=cUserLabel
syn match	cUserCont	display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup
syn match	cUserCont	display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup
if s:ft ==# 'cpp'
  syn match	cUserCont	display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
  syn match	cUserCont	display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else
  syn match	cUserCont	display "^\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
  syn match	cUserCont	display ";\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
endif

syn match	cUserLabel	display "\I\i*" contained

" Avoid recognizing most bitfields as labels
syn match	cBitField	display "^\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
syn match	cBitField	display ";\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType

if exists("c_minlines")
  let b:c_minlines = c_minlines
else
  if !exists("c_no_if0")
    let b:c_minlines = 50	" #if 0 constructs can be long
  else
    let b:c_minlines = 15	" mostly for () constructs
  endif
endif
if exists("c_curly_error")
  syn sync fromstart
else
  exec "syn sync ccomment cComment minlines=" . b:c_minlines
endif

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link cFormat		cSpecial
hi def link cCppString		cString
hi def link cCommentL		cComment
hi def link cCommentStart	cComment
hi def link cLabel		Label
hi def link cUserLabel		Label
hi def link cConditional	Conditional
hi def link cRepeat		Repeat
hi def link cCharacter		Character
hi def link cSpecialCharacter	cSpecial
hi def link cNumber		Number
hi def link cOctal		Number
hi def link cOctalZero		PreProc	 " link this to Error if you want
hi def link cFloat		Float
hi def link cOctalError		cError
hi def link cParenError		cError
hi def link cErrInParen		cError
hi def link cErrInBracket	cError
hi def link cCommentError	cError
hi def link cCommentStartError	cError
hi def link cSpaceError		cError
hi def link cSpecialError	cError
hi def link cCurlyError		cError
hi def link cOperator		Operator
hi def link cStructure		Structure
hi def link cStorageClass	StorageClass
hi def link cInclude		Include
hi def link cPreProc		PreProc
hi def link cDefine		Macro
hi def link cIncluded		cString
hi def link cError		Error
hi def link cStatement		Statement
hi def link cCppInWrapper	cCppOutWrapper
hi def link cCppOutWrapper	cPreCondit
hi def link cPreConditMatch	cPreCondit
hi def link cPreCondit		PreCondit
hi def link cType		Type
hi def link cConstant		Constant
hi def link cCommentString	cString
hi def link cComment2String	cString
hi def link cCommentSkip	cComment
hi def link cString		String
hi def link cComment		Comment
hi def link cSpecial		SpecialChar
hi def link cTodo		Todo
hi def link cBadContinuation	Error
hi def link cCppOutSkip		cCppOutIf2
hi def link cCppInElse2		cCppOutIf2
hi def link cCppOutIf2		cCppOut
hi def link cCppOut		Comment

let b:current_syntax = "c"

unlet s:ft

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�.}�V
V
vim80/syntax/dylan.vimnu�[���" Vim syntax file
" Language:	Dylan
" Authors:	Justus Pendleton <justus@acm.org>
"		Brent A. Fulgham <bfulgham@debian.org>
" Last Change:	Fri Sep 29 13:45:55 PDT 2000
"
" This syntax file is based on the Haskell, Perl, Scheme, and C
" syntax files.

" Part 1:  Syntax definition
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

setlocal lisp

" Highlight special characters (those that have backslashes) differently
syn match	dylanSpecial		display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"

" Keywords
syn keyword	dylanBlock		afterwards begin block cleanup end
syn keyword	dylanClassMods		abstract concrete primary inherited virtual
syn keyword	dylanException		exception handler signal
syn keyword	dylanParamDefs		method class function library macro interface
syn keyword	dylanSimpleDefs		constant variable generic primary
syn keyword	dylanOther		above below from by in instance local slot subclass then to
syn keyword	dylanConditional	if when select case else elseif unless finally otherwise then
syn keyword	dylanRepeat		begin for until while from to
syn keyword	dylanStatement		define let
syn keyword	dylanImport		use import export exclude rename create
syn keyword	dylanMiscMods		open sealed domain singleton sideways inline functional

" Matching rules for special forms
syn match	dylanOperator		"\s[-!%&\*\+/=\?@\\^|~:]\+[-#!>%&:\*\+/=\?@\\^|~]*"
syn match	dylanOperator		"\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./=\?@\\^|~:]*"
" Numbers
syn match	dylanNumber		"\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
syn match	dylanNumber		"\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
" Booleans
syn match	dylanBoolean		"#t\|#f"
" Comments
syn match	dylanComment		"//.*"
syn region	dylanComment		start="/\*" end="\*/"
" Strings
syn region	dylanString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=dySpecial
syn match	dylanCharacter		"'[^\\]'"
" Constants, classes, and variables
syn match	dylanConstant		"$\<[a-zA-Z0-9\-]\+\>"
syn match	dylanClass		"<\<[a-zA-Z0-9\-]\+\>>"
syn match	dylanVariable		"\*\<[a-zA-Z0-9\-]\+\>\*"
" Preconditions
syn region	dylanPrecondit		start="^\s*#\s*\(if\>\|else\>\|endif\>\)" skip="\\$" end="$"

" These appear at the top of files (usually).  I like to highlight the whole line
" so that the definition stands out.  They should probably really be keywords, but they
" don't generally appear in the middle of a line of code.
syn region	dylanHeader	start="^[Mm]odule:" end="^$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dylanBlock		PreProc
hi def link dylanBoolean		Boolean
hi def link dylanCharacter		Character
hi def link dylanClass		Structure
hi def link dylanClassMods		StorageClass
hi def link dylanComment		Comment
hi def link dylanConditional	Conditional
hi def link dylanConstant		Constant
hi def link dylanException		Exception
hi def link dylanHeader		Macro
hi def link dylanImport		Include
hi def link dylanLabel		Label
hi def link dylanMiscMods		StorageClass
hi def link dylanNumber		Number
hi def link dylanOther		Keyword
hi def link dylanOperator		Operator
hi def link dylanParamDefs		Keyword
hi def link dylanPrecondit		PreCondit
hi def link dylanRepeat		Repeat
hi def link dylanSimpleDefs	Keyword
hi def link dylanStatement		Macro
hi def link dylanString		String
hi def link dylanVariable		Identifier


let b:current_syntax = "dylan"

" vim:ts=8
PK�j�Z�}�W�Wvim80/syntax/redif.vimnu�[���" Vim syntax file
" Language:          ReDIF
" Maintainer:        Axel Castellane <axel.castellane@polytechnique.edu>
" Last Change:       2013 April 17
" Original Author:   Axel Castellane
" Source:            http://openlib.org/acmes/root/docu/redif_1.html
" File Extension:    rdf
" Note:              The ReDIF format is used by RePEc.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" ReDIF is case-insensitive
syntax case ignore

" Structure: Some fields determine what fields can come next. For example:
"       Template-Type
"       *-Name
"       File-URL
"       *-Institution
" Those fields span a syntax region over several lines so that these regions
" can only contain their respective items.

" Any line which is not a correct template or part of an argument is an error.
" This comes at the very beginning, so it has the lowest priority and will
" only match if nothing else did.
syntax match redifWrongLine /^.\+/ display

highlight def link redifWrongLine redifError

" Comments must start with # and it must be the first character of the line,
" otherwise I believe that they are considered as part of an argument.
syntax match redifComment /^#.*/ containedin=ALL display

" Defines the 9 possible multi-lines regions of Template-Type and the fields
" they can contain.
syntax region redifRegionTemplatePaper start=/^Template-Type:\_s*ReDIF-Paper \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsPaper,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile fold
syntax region redifRegionTemplateArticle start=/^Template-Type:\_s*ReDIF-Article \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsArticle,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile fold
syntax region redifRegionTemplateChapter start=/^Template-Type:\_s*ReDIF-Chapter \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsChapter,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile,redifRegionClusterProvider,redifRegionClusterPublisher,redifRegionClusterEditor fold
syntax region redifRegionTemplateBook start=/^Template-Type:\_s*ReDIF-Book \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsBook,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile,redifRegionClusterProvider,redifRegionClusterPublisher,redifRegionClusterEditor fold
syntax region redifRegionTemplateSoftware start=/^Template-Type:\_s*ReDIF-Software \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsSoftware,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile fold
syntax region redifRegionTemplateArchive start=/^Template-Type:\_s*ReDIF-Archive \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsArchive,redifWrongLine fold
syntax region redifRegionTemplateSeries start=/^Template-Type:\_s*ReDIF-Series \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsSeries,redifWrongLine,redifRegionClusterProvider,redifRegionClusterPublisher,redifRegionClusterEditor fold
syntax region redifRegionTemplateInstitution start=/^Template-Type:\_s*ReDIF-Institution \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsInstitution,redifWrongLine,redifRegionClusterPrimary,redifRegionClusterSecondary,redifRegionClusterTertiary,redifRegionClusterQuaternary fold
syntax region redifRegionTemplatePerson start=/^Template-Type:\_s*ReDIF-Person \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsPerson,redifWrongLine,redifRegionClusterWorkplace fold

" All fields are foldable (These come before clusters, so they have lower
" priority). So they are contained in a foldable syntax region.
syntax region redifContainerFieldsPaper start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTitle,redifFieldHandleOfWork,redifFieldLanguage,redifFieldContactEmail,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldNumber,redifFieldCreationDate,redifFieldRevisionDate,redifFieldPublicationStatus,redifFieldNote,redifFieldLength,redifFieldSeries,redifFieldAvailability,redifFieldOrderURL,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldRestriction,redifFieldPrice,redifFieldNotification,redifFieldPublicationType,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsArticle start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTitle,redifFieldHandleOfWork,redifFieldLanguage,redifFieldContactEmail,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldNumber,redifFieldCreationDate,redifFieldPublicationStatus,redifFieldOrderURL,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldRestriction,redifFieldPrice,redifFieldNotification,redifFieldPublicationType,redifFieldJournal,redifFieldVolume,redifFieldYear,redifFieldIssue,redifFieldMonth,redifFieldPages,redifFieldNumber,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsChapter start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfWork,redifFieldTitle,redifFieldContactEmail,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldBookTitle,redifFieldYear,redifFieldMonth,redifFieldPages,redifFieldChapter,redifFieldVolume,redifFieldEdition,redifFieldSeries,redifFieldISBN,redifFieldPublicationStatus,redifFieldNote,redifFieldInBook,redifFieldOrderURL,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsBook start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTitle,redifFieldHandleOfWork,redifFieldContactEmail,redifFieldYear,redifFieldMonth,redifFieldVolume,redifFieldEdition,redifFieldSeries,redifFieldISBN,redifFieldPublicationStatus,redifFieldNote,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldHasChapter,redifFieldPrice,redifFieldOrderURL,redifFieldNumber,redifFieldCreationDate,redifFieldPublicationDate,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsSoftware start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfWork,redifFieldTitle,redifFieldProgrammingLanguage,redifFieldAbstract,redifFieldNumber,redifFieldVersion,redifFieldClassificationJEL,redifFieldKeywords,redifFieldSize,redifFieldSeries,redifFieldCreationDate,redifFieldRevisionDate,redifFieldNote,redifFieldRequires,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsArchive start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfArchive,redifFieldURL,redifFieldMaintainerEmail,redifFieldName,redifFieldMaintainerName,redifFieldMaintainerPhone,redifFieldMaintainerFax,redifFieldClassificationJEL,redifFieldHomepage,redifFieldDescription,redifFieldNotification,redifFieldRestriction,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsSeries start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldName,redifFieldHandleOfSeries,redifFieldMaintainerEmail,redifFieldType,redifFieldOrderEmail,redifFieldOrderHomepage,redifFieldOrderPostal,redifFieldPrice,redifFieldRestriction,redifFieldMaintainerPhone,redifFieldMaintainerFax,redifFieldMaintainerName,redifFieldDescription,redifFieldClassificationJEL,redifFieldKeywords,redifFieldNotification,redifFieldISSN,redifFieldFollowup,redifFieldPredecessor,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsInstitution start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfInstitution,redifFieldPrimaryDefunct,redifFieldSecondaryDefunct,redifFieldTertiaryDefunct,redifFieldTemplateType,redifWrongLine contained transparent fold
syntax region redifContainerFieldsPerson start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfPerson,redifFieldNameFull,redifFieldNameFirst,redifFieldNameLast,redifFieldNamePrefix,redifFieldNameMiddle,redifFieldNameSuffix,redifFieldNameASCII,redifFieldEmail,redifFieldHomepage,redifFieldFax,redifFieldPostal,redifFieldPhone,redifFieldWorkplaceOrganization,redifFieldAuthorPaper,redifFieldAuthorArticle,redifFieldAuthorSoftware,redifFieldAuthorBook,redifFieldAuthorChapter,redifFieldEditorBook,redifFieldEditorSeries,redifFieldClassificationJEL,redifFieldShortId,redifFieldLastLoginDate,redifFieldRegisteredDate,redifWrongLine contained transparent fold

" Defines the 10 possible clusters and what they can contain
" A field not in the cluster ends the cluster.
syntax region redifRegionClusterWorkplace start=/^Workplace-Name:/ skip=/^Workplace-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsWorkplace fold
syntax region redifRegionClusterPrimary start=/^Primary-Name:/ skip=/^Primary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsPrimary fold
syntax region redifRegionClusterSecondary start=/^Secondary-Name:/ skip=/^Secondary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsSecondary fold
syntax region redifRegionClusterTertiary start=/^Tertiary-Name:/ skip=/^Tertiary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsTertiary fold
syntax region redifRegionClusterQuaternary start=/^Quaternary-Name:/ skip=/^Quaternary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsQuaternary fold
syntax region redifRegionClusterProvider start=/^Provider-Name:/ skip=/^Provider-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsProvider fold
syntax region redifRegionClusterPublisher start=/^Publisher-Name:/ skip=/^Publisher-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsPublisher fold
syntax region redifRegionClusterAuthor start=/^Author-Name:/ skip=/^Author-\%(Name\%(-First\|-Last\)\|Homepage\|Email\|Fax\|Postal\|Phone\|Person\|Workplace-Name\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifRegionClusterAuthorWorkplace,redifContainerFieldsAuthor fold
syntax region redifRegionClusterEditor start=/^Editor-Name:/ skip=/^Editor-\%(Name\%(-First\|-Last\)\|Homepage\|Email\|Fax\|Postal\|Phone\|Person\|Workplace-Name\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifRegionClusterEditorWorkplace,redifContainerFieldsEditor fold
syntax region redifRegionClusterFile start=/^File-URL:/ skip=/^File-\%(Format\|Function\|Size\|Restriction\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsFile fold

" The foldable containers of the clusters.
syntax region redifContainerFieldsWorkplace start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldWorkplaceName,redifFieldWorkplaceHomepage,redifFieldWorkplaceNameEnglish,redifFieldWorkplacePostal,redifFieldWorkplaceLocation,redifFieldWorkplaceEmail,redifFieldWorkplacePhone,redifFieldWorkplaceFax,redifFieldWorkplaceInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsPrimary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldPrimaryName,redifFieldPrimaryHomepage,redifFieldPrimaryNameEnglish,redifFieldPrimaryPostal,redifFieldPrimaryLocation,redifFieldPrimaryEmail,redifFieldPrimaryPhone,redifFieldPrimaryFax,redifFieldPrimaryInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsSecondary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldSecondaryName,redifFieldSecondaryHomepage,redifFieldSecondaryNameEnglish,redifFieldSecondaryPostal,redifFieldSecondaryLocation,redifFieldSecondaryEmail,redifFieldSecondaryPhone,redifFieldSecondaryFax,redifFieldSecondaryInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsTertiary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTertiaryName,redifFieldTertiaryHomepage,redifFieldTertiaryNameEnglish,redifFieldTertiaryPostal,redifFieldTertiaryLocation,redifFieldTertiaryEmail,redifFieldTertiaryPhone,redifFieldTertiaryFax,redifFieldTertiaryInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsQuaternary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldQuaternaryName,redifFieldQuaternaryHomepage,redifFieldQuaternaryNameEnglish,redifFieldQuaternaryPostal,redifFieldQuaternaryLocation,redifFieldQuaternaryEmail,redifFieldQuaternaryPhone,redifFieldQuaternaryFax,redifFieldQuaternaryInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsProvider start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldProviderName,redifFieldProviderHomepage,redifFieldProviderNameEnglish,redifFieldProviderPostal,redifFieldProviderLocation,redifFieldProviderEmail,redifFieldProviderPhone,redifFieldProviderFax,redifFieldProviderInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsPublisher start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldPublisherName,redifFieldPublisherHomepage,redifFieldPublisherNameEnglish,redifFieldPublisherPostal,redifFieldPublisherLocation,redifFieldPublisherEmail,redifFieldPublisherPhone,redifFieldPublisherFax,redifFieldPublisherInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsAuthor start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldAuthorName,redifFieldAuthorNameFirst,redifFieldAuthorNameLast,redifFieldAuthorHomepage,redifFieldAuthorEmail,redifFieldAuthorFax,redifFieldAuthorPostal,redifFieldAuthorPhone,redifFieldAuthorPerson,redifWrongLine contained transparent fold
syntax region redifContainerFieldsEditor start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldEditorName,redifFieldEditorNameFirst,redifFieldEditorNameLast,redifFieldEditorHomepage,redifFieldEditorEmail,redifFieldEditorFax,redifFieldEditorPostal,redifFieldEditorPhone,redifFieldEditorPerson,redifWrongLine contained transparent fold
syntax region redifContainerFieldsFile start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldFileURL,redifFieldFileFormat,redifFieldFileFunction,redifFieldFileSize,redifFieldFileRestriction,redifWrongLine contained transparent fold

" The two clusters in cluster (must be presented after to have priority over
" fields containers)
syntax region redifRegionClusterAuthorWorkplace start=/^Author-Workplace-Name:/ skip=/^Author-Workplace-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsAuthorWorkplace fold
syntax region redifRegionClusterEditorWorkplace start=/^Editor-Workplace-Name:/ skip=/^Editor-Workplace-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsEditorWorkplace fold

" Their foldable fields containers
syntax region redifContainerFieldsAuthorWorkplace start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldAuthorWorkplaceName,redifFieldAuthorWorkplaceHomepage,redifFieldAuthorWorkplaceNameEnglish,redifFieldAuthorWorkplacePostal,redifFieldAuthorWorkplaceLocation,redifFieldAuthorWorkplaceEmail,redifFieldAuthorWorkplacePhone,redifFieldAuthorWorkplaceFax,redifFieldAuthorWorkplaceInstitution,redifWrongLine contained transparent fold
syntax region redifContainerFieldsEditorWorkplace start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldEditorWorkplaceName,redifFieldEditorWorkplaceHomepage,redifFieldEditorWorkplaceNameEnglish,redifFieldEditorWorkplacePostal,redifFieldEditorWorkplaceLocation,redifFieldEditorWorkplaceEmail,redifFieldEditorWorkplacePhone,redifFieldEditorWorkplaceFax,redifFieldEditorWorkplaceInstitution,redifWrongLine contained transparent fold

" All the possible fields
"     Note: The "Handle" field is handled a little bit differently, because it
"     does not have the same meaning depending on the Template-Type. See:
" 	  /redifFieldHandleOf....
syntax match redifFieldAbstract /^Abstract:/ skipwhite skipempty nextgroup=redifArgumentAbstract contained
syntax match redifFieldArticleHandle /^Article-Handle:/ skipwhite skipempty nextgroup=redifArgumentArticleHandle contained
syntax match redifFieldAuthorArticle /^Author-Article:/ skipwhite skipempty nextgroup=redifArgumentAuthorArticle contained
syntax match redifFieldAuthorBook /^Author-Book:/ skipwhite skipempty nextgroup=redifArgumentAuthorBook contained
syntax match redifFieldAuthorChapter /^Author-Chapter:/ skipwhite skipempty nextgroup=redifArgumentAuthorChapter contained
syntax match redifFieldAuthorEmail /^Author-Email:/ skipwhite skipempty nextgroup=redifArgumentAuthorEmail contained
syntax match redifFieldAuthorFax /^Author-Fax:/ skipwhite skipempty nextgroup=redifArgumentAuthorFax contained
syntax match redifFieldAuthorHomepage /^Author-Homepage:/ skipwhite skipempty nextgroup=redifArgumentAuthorHomepage contained
syntax match redifFieldAuthorName /^Author-Name:/ skipwhite skipempty nextgroup=redifArgumentAuthorName contained
syntax match redifFieldAuthorNameFirst /^Author-Name-First:/ skipwhite skipempty nextgroup=redifArgumentAuthorNameFirst contained
syntax match redifFieldAuthorNameLast /^Author-Name-Last:/ skipwhite skipempty nextgroup=redifArgumentAuthorNameLast contained
syntax match redifFieldAuthorPaper /^Author-Paper:/ skipwhite skipempty nextgroup=redifArgumentAuthorPaper contained
syntax match redifFieldAuthorPerson /^Author-Person:/ skipwhite skipempty nextgroup=redifArgumentAuthorPerson contained
syntax match redifFieldAuthorPhone /^Author-Phone:/ skipwhite skipempty nextgroup=redifArgumentAuthorPhone contained
syntax match redifFieldAuthorPostal /^Author-Postal:/ skipwhite skipempty nextgroup=redifArgumentAuthorPostal contained
syntax match redifFieldAuthorSoftware /^Author-Software:/ skipwhite skipempty nextgroup=redifArgumentAuthorSoftware contained
syntax match redifFieldAuthorWorkplaceEmail /^Author-Workplace-Email:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceEmail contained
syntax match redifFieldAuthorWorkplaceFax /^Author-Workplace-Fax:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceFax contained
syntax match redifFieldAuthorWorkplaceHomepage /^Author-Workplace-Homepage:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceHomepage contained
syntax match redifFieldAuthorWorkplaceInstitution /^Author-Workplace-Institution:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceInstitution contained
syntax match redifFieldAuthorWorkplaceLocation /^Author-Workplace-Location:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceLocation contained
syntax match redifFieldAuthorWorkplaceName /^Author-Workplace-Name:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceName contained
syntax match redifFieldAuthorWorkplaceNameEnglish /^Author-Workplace-Name-English:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceNameEnglish contained
syntax match redifFieldAuthorWorkplacePhone /^Author-Workplace-Phone:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplacePhone contained
syntax match redifFieldAuthorWorkplacePostal /^Author-Workplace-Postal:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplacePostal contained
syntax match redifFieldAvailability /^Availability:/ skipwhite skipempty nextgroup=redifArgumentAvailability contained
syntax match redifFieldBookHandle /^Book-Handle:/ skipwhite skipempty nextgroup=redifArgumentBookHandle contained
syntax match redifFieldBookTitle /^Book-Title:/ skipwhite skipempty nextgroup=redifArgumentBookTitle contained
syntax match redifFieldChapterHandle /^Chapter-Handle:/ skipwhite skipempty nextgroup=redifArgumentChapterHandle contained
syntax match redifFieldChapter /^Chapter:/ skipwhite skipempty nextgroup=redifArgumentChapter contained
syntax match redifFieldClassificationJEL /^Classification-JEL:/ skipwhite skipempty nextgroup=redifArgumentClassificationJEL contained
syntax match redifFieldContactEmail /^Contact-Email:/ skipwhite skipempty nextgroup=redifArgumentContactEmail contained
syntax match redifFieldCreationDate /^Creation-Date:/ skipwhite skipempty nextgroup=redifArgumentCreationDate contained
syntax match redifFieldDescription /^Description:/ skipwhite skipempty nextgroup=redifArgumentDescription contained
syntax match redifFieldEdition /^Edition:/ skipwhite skipempty nextgroup=redifArgumentEdition contained
syntax match redifFieldEditorBook /^Editor-Book:/ skipwhite skipempty nextgroup=redifArgumentEditorBook contained
syntax match redifFieldEditorEmail /^Editor-Email:/ skipwhite skipempty nextgroup=redifArgumentEditorEmail contained
syntax match redifFieldEditorFax /^Editor-Fax:/ skipwhite skipempty nextgroup=redifArgumentEditorFax contained
syntax match redifFieldEditorHomepage /^Editor-Homepage:/ skipwhite skipempty nextgroup=redifArgumentEditorHomepage contained
syntax match redifFieldEditorName /^Editor-Name:/ skipwhite skipempty nextgroup=redifArgumentEditorName contained
syntax match redifFieldEditorNameFirst /^Editor-Name-First:/ skipwhite skipempty nextgroup=redifArgumentEditorNameFirst contained
syntax match redifFieldEditorNameLast /^Editor-Name-Last:/ skipwhite skipempty nextgroup=redifArgumentEditorNameLast contained
syntax match redifFieldEditorPerson /^Editor-Person:/ skipwhite skipempty nextgroup=redifArgumentEditorPerson contained
syntax match redifFieldEditorPhone /^Editor-Phone:/ skipwhite skipempty nextgroup=redifArgumentEditorPhone contained
syntax match redifFieldEditorPostal /^Editor-Postal:/ skipwhite skipempty nextgroup=redifArgumentEditorPostal contained
syntax match redifFieldEditorSeries /^Editor-Series:/ skipwhite skipempty nextgroup=redifArgumentEditorSeries contained
syntax match redifFieldEditorWorkplaceEmail /^Editor-Workplace-Email:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceEmail contained
syntax match redifFieldEditorWorkplaceFax /^Editor-Workplace-Fax:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceFax contained
syntax match redifFieldEditorWorkplaceHomepage /^Editor-Workplace-Homepage:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceHomepage contained
syntax match redifFieldEditorWorkplaceInstitution /^Editor-Workplace-Institution:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceInstitution contained
syntax match redifFieldEditorWorkplaceLocation /^Editor-Workplace-Location:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceLocation contained
syntax match redifFieldEditorWorkplaceName /^Editor-Workplace-Name:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceName contained
syntax match redifFieldEditorWorkplaceNameEnglish /^Editor-Workplace-Name-English:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceNameEnglish contained
syntax match redifFieldEditorWorkplacePhone /^Editor-Workplace-Phone:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplacePhone contained
syntax match redifFieldEditorWorkplacePostal /^Editor-Workplace-Postal:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplacePostal contained
syntax match redifFieldEmail /^Email:/ skipwhite skipempty nextgroup=redifArgumentEmail contained
syntax match redifFieldFax /^Fax:/ skipwhite skipempty nextgroup=redifArgumentFax contained
syntax match redifFieldFileFormat /^File-Format:/ skipwhite skipempty nextgroup=redifArgumentFileFormat contained
syntax match redifFieldFileFunction /^File-Function:/ skipwhite skipempty nextgroup=redifArgumentFileFunction contained
syntax match redifFieldFileRestriction /^File-Restriction:/ skipwhite skipempty nextgroup=redifArgumentFileRestriction contained
syntax match redifFieldFileSize /^File-Size:/ skipwhite skipempty nextgroup=redifArgumentFileSize contained
syntax match redifFieldFileURL /^File-URL:/ skipwhite skipempty nextgroup=redifArgumentFileURL contained
syntax match redifFieldFollowup /^Followup:/ skipwhite skipempty nextgroup=redifArgumentFollowup contained
syntax match redifFieldHandleOfArchive /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfArchive contained
syntax match redifFieldHandleOfInstitution /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfInstitution contained
syntax match redifFieldHandleOfPerson /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfPerson contained
syntax match redifFieldHandleOfSeries /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfSeries contained
syntax match redifFieldHandleOfWork /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfWork contained
syntax match redifFieldHasChapter /^HasChapter:/ skipwhite skipempty nextgroup=redifArgumentHasChapter contained
syntax match redifFieldHomepage /^Homepage:/ skipwhite skipempty nextgroup=redifArgumentHomepage contained
syntax match redifFieldInBook /^In-Book:/ skipwhite skipempty nextgroup=redifArgumentInBook contained
syntax match redifFieldISBN /^ISBN:/ skipwhite skipempty nextgroup=redifArgumentISBN contained
syntax match redifFieldISSN /^ISSN:/ skipwhite skipempty nextgroup=redifArgumentISSN contained
syntax match redifFieldIssue /^Issue:/ skipwhite skipempty nextgroup=redifArgumentIssue contained
syntax match redifFieldJournal /^Journal:/ skipwhite skipempty nextgroup=redifArgumentJournal contained
syntax match redifFieldKeywords /^Keywords:/ skipwhite skipempty nextgroup=redifArgumentKeywords contained
syntax match redifFieldKeywords /^Keywords:/ skipwhite skipempty nextgroup=redifArgumentKeywords contained
syntax match redifFieldLanguage /^Language:/ skipwhite skipempty nextgroup=redifArgumentLanguage contained
syntax match redifFieldLastLoginDate /^Last-Login-Date:/ skipwhite skipempty nextgroup=redifArgumentLastLoginDate contained
syntax match redifFieldLength /^Length:/ skipwhite skipempty nextgroup=redifArgumentLength contained
syntax match redifFieldMaintainerEmail /^Maintainer-Email:/ skipwhite skipempty nextgroup=redifArgumentMaintainerEmail contained
syntax match redifFieldMaintainerFax /^Maintainer-Fax:/ skipwhite skipempty nextgroup=redifArgumentMaintainerFax contained
syntax match redifFieldMaintainerName /^Maintainer-Name:/ skipwhite skipempty nextgroup=redifArgumentMaintainerName contained
syntax match redifFieldMaintainerPhone /^Maintainer-Phone:/ skipwhite skipempty nextgroup=redifArgumentMaintainerPhone contained
syntax match redifFieldMonth /^Month:/ skipwhite skipempty nextgroup=redifArgumentMonth contained
syntax match redifFieldNameASCII /^Name-ASCII:/ skipwhite skipempty nextgroup=redifArgumentNameASCII contained
syntax match redifFieldNameFirst /^Name-First:/ skipwhite skipempty nextgroup=redifArgumentNameFirst contained
syntax match redifFieldNameFull /^Name-Full:/ skipwhite skipempty nextgroup=redifArgumentNameFull contained
syntax match redifFieldNameLast /^Name-Last:/ skipwhite skipempty nextgroup=redifArgumentNameLast contained
syntax match redifFieldNameMiddle /^Name-Middle:/ skipwhite skipempty nextgroup=redifArgumentNameMiddle contained
syntax match redifFieldNamePrefix /^Name-Prefix:/ skipwhite skipempty nextgroup=redifArgumentNamePrefix contained
syntax match redifFieldNameSuffix /^Name-Suffix:/ skipwhite skipempty nextgroup=redifArgumentNameSuffix contained
syntax match redifFieldName /^Name:/ skipwhite skipempty nextgroup=redifArgumentName contained
syntax match redifFieldNote /^Note:/ skipwhite skipempty nextgroup=redifArgumentNote contained
syntax match redifFieldNotification /^Notification:/ skipwhite skipempty nextgroup=redifArgumentNotification contained
syntax match redifFieldNumber /^Number:/ skipwhite skipempty nextgroup=redifArgumentNumber contained
syntax match redifFieldOrderEmail /^Order-Email:/ skipwhite skipempty nextgroup=redifArgumentOrderEmail contained
syntax match redifFieldOrderHomepage /^Order-Homepage:/ skipwhite skipempty nextgroup=redifArgumentOrderHomepage contained
syntax match redifFieldOrderPostal /^Order-Postal:/ skipwhite skipempty nextgroup=redifArgumentOrderPostal contained
syntax match redifFieldOrderURL /^Order-URL:/ skipwhite skipempty nextgroup=redifArgumentOrderURL contained
syntax match redifFieldPages /^Pages:/ skipwhite skipempty nextgroup=redifArgumentPages contained
syntax match redifFieldPaperHandle /^Paper-Handle:/ skipwhite skipempty nextgroup=redifArgumentPaperHandle contained
syntax match redifFieldPhone /^Phone:/ skipwhite skipempty nextgroup=redifArgumentPhone contained
syntax match redifFieldPostal /^Postal:/ skipwhite skipempty nextgroup=redifArgumentPostal contained
syntax match redifFieldPredecessor /^Predecessor:/ skipwhite skipempty nextgroup=redifArgumentPredecessor contained
syntax match redifFieldPrice /^Price:/ skipwhite skipempty nextgroup=redifArgumentPrice contained
syntax match redifFieldPrimaryDefunct /^Primary-Defunct:/ skipwhite skipempty nextgroup=redifArgumentPrimaryDefunct contained
syntax match redifFieldPrimaryEmail /^Primary-Email:/ skipwhite skipempty nextgroup=redifArgumentPrimaryEmail contained
syntax match redifFieldPrimaryFax /^Primary-Fax:/ skipwhite skipempty nextgroup=redifArgumentPrimaryFax contained
syntax match redifFieldPrimaryHomepage /^Primary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentPrimaryHomepage contained
syntax match redifFieldPrimaryInstitution /^Primary-Institution:/ skipwhite skipempty nextgroup=redifArgumentPrimaryInstitution contained
syntax match redifFieldPrimaryLocation /^Primary-Location:/ skipwhite skipempty nextgroup=redifArgumentPrimaryLocation contained
syntax match redifFieldPrimaryName /^Primary-Name:/ skipwhite skipempty nextgroup=redifArgumentPrimaryName contained
syntax match redifFieldPrimaryNameEnglish /^Primary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentPrimaryNameEnglish contained
syntax match redifFieldPrimaryPhone /^Primary-Phone:/ skipwhite skipempty nextgroup=redifArgumentPrimaryPhone contained
syntax match redifFieldPrimaryPostal /^Primary-Postal:/ skipwhite skipempty nextgroup=redifArgumentPrimaryPostal contained
syntax match redifFieldProgrammingLanguage /^Programming-Language:/ skipwhite skipempty nextgroup=redifArgumentProgrammingLanguage contained
syntax match redifFieldProviderEmail /^Provider-Email:/ skipwhite skipempty nextgroup=redifArgumentProviderEmail contained
syntax match redifFieldProviderFax /^Provider-Fax:/ skipwhite skipempty nextgroup=redifArgumentProviderFax contained
syntax match redifFieldProviderHomepage /^Provider-Homepage:/ skipwhite skipempty nextgroup=redifArgumentProviderHomepage contained
syntax match redifFieldProviderInstitution /^Provider-Institution:/ skipwhite skipempty nextgroup=redifArgumentProviderInstitution contained
syntax match redifFieldProviderLocation /^Provider-Location:/ skipwhite skipempty nextgroup=redifArgumentProviderLocation contained
syntax match redifFieldProviderName /^Provider-Name:/ skipwhite skipempty nextgroup=redifArgumentProviderName contained
syntax match redifFieldProviderNameEnglish /^Provider-Name-English:/ skipwhite skipempty nextgroup=redifArgumentProviderNameEnglish contained
syntax match redifFieldProviderPhone /^Provider-Phone:/ skipwhite skipempty nextgroup=redifArgumentProviderPhone contained
syntax match redifFieldProviderPostal /^Provider-Postal:/ skipwhite skipempty nextgroup=redifArgumentProviderPostal contained
syntax match redifFieldPublicationDate /^Publication-Date:/ skipwhite skipempty nextgroup=redifArgumentPublicationDate contained
syntax match redifFieldPublicationStatus /^Publication-Status:/ skipwhite skipempty nextgroup=redifArgumentPublicationStatus contained
syntax match redifFieldPublicationType /^Publication-Type:/ skipwhite skipempty nextgroup=redifArgumentPublicationType contained
syntax match redifFieldQuaternaryEmail /^Quaternary-Email:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryEmail contained
syntax match redifFieldQuaternaryFax /^Quaternary-Fax:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryFax contained
syntax match redifFieldQuaternaryHomepage /^Quaternary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryHomepage contained
syntax match redifFieldQuaternaryInstitution /^Quaternary-Institution:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryInstitution contained
syntax match redifFieldQuaternaryLocation /^Quaternary-Location:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryLocation contained
syntax match redifFieldQuaternaryName /^Quaternary-Name:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryName contained
syntax match redifFieldQuaternaryNameEnglish /^Quaternary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryNameEnglish contained
syntax match redifFieldQuaternaryPhone /^Quaternary-Phone:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryPhone contained
syntax match redifFieldQuaternaryPostal /^Quaternary-Postal:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryPostal contained
syntax match redifFieldRegisteredDate /^Registered-Date:/ skipwhite skipempty nextgroup=redifArgumentRegisteredDate contained
syntax match redifFieldRequires /^Requires:/ skipwhite skipempty nextgroup=redifArgumentRequires contained
syntax match redifFieldRestriction /^Restriction:/ skipwhite skipempty nextgroup=redifArgumentRestriction contained
syntax match redifFieldRevisionDate /^Revision-Date:/ skipwhite skipempty nextgroup=redifArgumentRevisionDate contained
syntax match redifFieldSecondaryDefunct /^Secondary-Defunct:/ skipwhite skipempty nextgroup=redifArgumentSecondaryDefunct contained
syntax match redifFieldSecondaryEmail /^Secondary-Email:/ skipwhite skipempty nextgroup=redifArgumentSecondaryEmail contained
syntax match redifFieldSecondaryFax /^Secondary-Fax:/ skipwhite skipempty nextgroup=redifArgumentSecondaryFax contained
syntax match redifFieldSecondaryHomepage /^Secondary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentSecondaryHomepage contained
syntax match redifFieldSecondaryInstitution /^Secondary-Institution:/ skipwhite skipempty nextgroup=redifArgumentSecondaryInstitution contained
syntax match redifFieldSecondaryLocation /^Secondary-Location:/ skipwhite skipempty nextgroup=redifArgumentSecondaryLocation contained
syntax match redifFieldSecondaryName /^Secondary-Name:/ skipwhite skipempty nextgroup=redifArgumentSecondaryName contained
syntax match redifFieldSecondaryNameEnglish /^Secondary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentSecondaryNameEnglish contained
syntax match redifFieldSecondaryPhone /^Secondary-Phone:/ skipwhite skipempty nextgroup=redifArgumentSecondaryPhone contained
syntax match redifFieldSecondaryPostal /^Secondary-Postal:/ skipwhite skipempty nextgroup=redifArgumentSecondaryPostal contained
syntax match redifFieldSeries /^Series:/ skipwhite skipempty nextgroup=redifArgumentSeries contained
syntax match redifFieldShortId /^Short-Id:/ skipwhite skipempty nextgroup=redifArgumentShortId contained
syntax match redifFieldSize /^Size:/ skipwhite skipempty nextgroup=redifArgumentSize contained
syntax match redifFieldSoftwareHandle /^Software-Handle:/ skipwhite skipempty nextgroup=redifArgumentSoftwareHandle contained
syntax match redifFieldTemplateType /^Template-Type:/ skipwhite skipempty nextgroup=redifArgumentTemplateType contained
syntax match redifFieldTertiaryDefunct /^Tertiary-Defunct:/ skipwhite skipempty nextgroup=redifArgumentTertiaryDefunct contained
syntax match redifFieldTertiaryEmail /^Tertiary-Email:/ skipwhite skipempty nextgroup=redifArgumentTertiaryEmail contained
syntax match redifFieldTertiaryFax /^Tertiary-Fax:/ skipwhite skipempty nextgroup=redifArgumentTertiaryFax contained
syntax match redifFieldTertiaryHomepage /^Tertiary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentTertiaryHomepage contained
syntax match redifFieldTertiaryInstitution /^Tertiary-Institution:/ skipwhite skipempty nextgroup=redifArgumentTertiaryInstitution contained
syntax match redifFieldTertiaryLocation /^Tertiary-Location:/ skipwhite skipempty nextgroup=redifArgumentTertiaryLocation contained
syntax match redifFieldTertiaryName /^Tertiary-Name:/ skipwhite skipempty nextgroup=redifArgumentTertiaryName contained
syntax match redifFieldTertiaryNameEnglish /^Tertiary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentTertiaryNameEnglish contained
syntax match redifFieldTertiaryPhone /^Tertiary-Phone:/ skipwhite skipempty nextgroup=redifArgumentTertiaryPhone contained
syntax match redifFieldTertiaryPostal /^Tertiary-Postal:/ skipwhite skipempty nextgroup=redifArgumentTertiaryPostal contained
syntax match redifFieldTitle /^Title:/ skipwhite skipempty nextgroup=redifArgumentTitle contained
syntax match redifFieldType /^Type:/ skipwhite skipempty nextgroup=redifArgumentType contained
syntax match redifFieldURL /^URL:/ skipwhite skipempty nextgroup=redifArgumentURL contained
syntax match redifFieldVersion /^Version:/ skipwhite skipempty nextgroup=redifArgumentVersion contained
syntax match redifFieldVolume /^Volume:/ skipwhite skipempty nextgroup=redifArgumentVolume contained
syntax match redifFieldWorkplaceEmail /^Workplace-Email:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceEmail contained
syntax match redifFieldWorkplaceFax /^Workplace-Fax:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceFax contained
syntax match redifFieldWorkplaceHomepage /^Workplace-Homepage:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceHomepage contained
syntax match redifFieldWorkplaceInstitution /^Workplace-Institution:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceInstitution contained
syntax match redifFieldWorkplaceLocation /^Workplace-Location:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceLocation contained
syntax match redifFieldWorkplaceName /^Workplace-Name:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceName contained
syntax match redifFieldWorkplaceNameEnglish /^Workplace-Name-English:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceNameEnglish contained
syntax match redifFieldWorkplaceOrganization /^Workplace-Organization:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceOrganization contained
syntax match redifFieldWorkplacePhone /^Workplace-Phone:/ skipwhite skipempty nextgroup=redifArgumentWorkplacePhone contained
syntax match redifFieldWorkplacePostal /^Workplace-Postal:/ skipwhite skipempty nextgroup=redifArgumentWorkplacePostal contained
syntax match redifFieldYear /^Year:/ skipwhite skipempty nextgroup=redifArgumentYear contained

highlight def link redifFieldAbstract redifField
highlight def link redifFieldArticleHandle redifField
highlight def link redifFieldAuthorArticle redifField
highlight def link redifFieldAuthorBook redifField
highlight def link redifFieldAuthorChapter redifField
highlight def link redifFieldAuthorEmail redifField
highlight def link redifFieldAuthorFax redifField
highlight def link redifFieldAuthorHomepage redifField
highlight def link redifFieldAuthorName redifField
highlight def link redifFieldAuthorNameFirst redifField
highlight def link redifFieldAuthorNameLast redifField
highlight def link redifFieldAuthorPaper redifField
highlight def link redifFieldAuthorPerson redifField
highlight def link redifFieldAuthorPhone redifField
highlight def link redifFieldAuthorPostal redifField
highlight def link redifFieldAuthorSoftware redifField
highlight def link redifFieldAuthorWorkplaceEmail redifField
highlight def link redifFieldAuthorWorkplaceFax redifField
highlight def link redifFieldAuthorWorkplaceHomepage redifField
highlight def link redifFieldAuthorWorkplaceInstitution redifField
highlight def link redifFieldAuthorWorkplaceLocation redifField
highlight def link redifFieldAuthorWorkplaceName redifField
highlight def link redifFieldAuthorWorkplaceNameEnglish redifField
highlight def link redifFieldAuthorWorkplacePhone redifField
highlight def link redifFieldAuthorWorkplacePostal redifField
highlight def link redifFieldAvailability redifField
highlight def link redifFieldBookHandle redifField
highlight def link redifFieldBookTitle redifField
highlight def link redifFieldChapterHandle redifField
highlight def link redifFieldChapter redifField
highlight def link redifFieldClassificationJEL redifField
highlight def link redifFieldContactEmail redifField
highlight def link redifFieldCreationDate redifField
highlight def link redifFieldDescription redifField
highlight def link redifFieldEdition redifField
highlight def link redifFieldEditorBook redifField
highlight def link redifFieldEditorEmail redifField
highlight def link redifFieldEditorFax redifField
highlight def link redifFieldEditorHomepage redifField
highlight def link redifFieldEditorName redifField
highlight def link redifFieldEditorNameFirst redifField
highlight def link redifFieldEditorNameLast redifField
highlight def link redifFieldEditorPerson redifField
highlight def link redifFieldEditorPhone redifField
highlight def link redifFieldEditorPostal redifField
highlight def link redifFieldEditorSeries redifField
highlight def link redifFieldEditorWorkplaceEmail redifField
highlight def link redifFieldEditorWorkplaceFax redifField
highlight def link redifFieldEditorWorkplaceHomepage redifField
highlight def link redifFieldEditorWorkplaceInstitution redifField
highlight def link redifFieldEditorWorkplaceLocation redifField
highlight def link redifFieldEditorWorkplaceName redifField
highlight def link redifFieldEditorWorkplaceNameEnglish redifField
highlight def link redifFieldEditorWorkplacePhone redifField
highlight def link redifFieldEditorWorkplacePostal redifField
highlight def link redifFieldEmail redifField
highlight def link redifFieldFax redifField
highlight def link redifFieldFileFormat redifField
highlight def link redifFieldFileFunction redifField
highlight def link redifFieldFileRestriction redifField
highlight def link redifFieldFileSize redifField
highlight def link redifFieldFileURL redifField
highlight def link redifFieldFollowup redifField
highlight def link redifFieldHandleOfArchive redifField
highlight def link redifFieldHandleOfInstitution redifField
highlight def link redifFieldHandleOfPerson redifField
highlight def link redifFieldHandleOfSeries redifField
highlight def link redifFieldHandleOfWork redifField
highlight def link redifFieldHasChapter redifField
highlight def link redifFieldHomepage redifField
highlight def link redifFieldInBook redifField
highlight def link redifFieldISBN redifField
highlight def link redifFieldISSN redifField
highlight def link redifFieldIssue redifField
highlight def link redifFieldJournal redifField
highlight def link redifFieldKeywords redifField
highlight def link redifFieldKeywords redifField
highlight def link redifFieldLanguage redifField
highlight def link redifFieldLastLoginDate redifField
highlight def link redifFieldLength redifField
highlight def link redifFieldMaintainerEmail redifField
highlight def link redifFieldMaintainerFax redifField
highlight def link redifFieldMaintainerName redifField
highlight def link redifFieldMaintainerPhone redifField
highlight def link redifFieldMonth redifField
highlight def link redifFieldNameASCII redifField
highlight def link redifFieldNameFirst redifField
highlight def link redifFieldNameFull redifField
highlight def link redifFieldNameLast redifField
highlight def link redifFieldNameMiddle redifField
highlight def link redifFieldNamePrefix redifField
highlight def link redifFieldNameSuffix redifField
highlight def link redifFieldName redifField
highlight def link redifFieldNote redifField
highlight def link redifFieldNotification redifField
highlight def link redifFieldNumber redifField
highlight def link redifFieldOrderEmail redifField
highlight def link redifFieldOrderHomepage redifField
highlight def link redifFieldOrderPostal redifField
highlight def link redifFieldOrderURL redifField
highlight def link redifFieldPages redifField
highlight def link redifFieldPaperHandle redifField
highlight def link redifFieldPhone redifField
highlight def link redifFieldPostal redifField
highlight def link redifFieldPredecessor redifField
highlight def link redifFieldPrice redifField
highlight def link redifFieldPrimaryDefunct redifField
highlight def link redifFieldPrimaryEmail redifField
highlight def link redifFieldPrimaryFax redifField
highlight def link redifFieldPrimaryHomepage redifField
highlight def link redifFieldPrimaryInstitution redifField
highlight def link redifFieldPrimaryLocation redifField
highlight def link redifFieldPrimaryName redifField
highlight def link redifFieldPrimaryNameEnglish redifField
highlight def link redifFieldPrimaryPhone redifField
highlight def link redifFieldPrimaryPostal redifField
highlight def link redifFieldProgrammingLanguage redifField
highlight def link redifFieldProviderEmail redifField
highlight def link redifFieldProviderFax redifField
highlight def link redifFieldProviderHomepage redifField
highlight def link redifFieldProviderInstitution redifField
highlight def link redifFieldProviderLocation redifField
highlight def link redifFieldProviderName redifField
highlight def link redifFieldProviderNameEnglish redifField
highlight def link redifFieldProviderPhone redifField
highlight def link redifFieldProviderPostal redifField
highlight def link redifFieldPublicationDate redifField
highlight def link redifFieldPublicationStatus redifField
highlight def link redifFieldPublicationType redifField
highlight def link redifFieldQuaternaryEmail redifField
highlight def link redifFieldQuaternaryFax redifField
highlight def link redifFieldQuaternaryHomepage redifField
highlight def link redifFieldQuaternaryInstitution redifField
highlight def link redifFieldQuaternaryLocation redifField
highlight def link redifFieldQuaternaryName redifField
highlight def link redifFieldQuaternaryNameEnglish redifField
highlight def link redifFieldQuaternaryPhone redifField
highlight def link redifFieldQuaternaryPostal redifField
highlight def link redifFieldRegisteredDate redifField
highlight def link redifFieldRequires redifField
highlight def link redifFieldRestriction redifField
highlight def link redifFieldRevisionDate redifField
highlight def link redifFieldSecondaryDefunct redifField
highlight def link redifFieldSecondaryEmail redifField
highlight def link redifFieldSecondaryFax redifField
highlight def link redifFieldSecondaryHomepage redifField
highlight def link redifFieldSecondaryInstitution redifField
highlight def link redifFieldSecondaryLocation redifField
highlight def link redifFieldSecondaryName redifField
highlight def link redifFieldSecondaryNameEnglish redifField
highlight def link redifFieldSecondaryPhone redifField
highlight def link redifFieldSecondaryPostal redifField
highlight def link redifFieldSeries redifField
highlight def link redifFieldShortId redifField
highlight def link redifFieldSize redifField
highlight def link redifFieldSoftwareHandle redifField
highlight def link redifFieldTemplateType redifField
highlight def link redifFieldTertiaryDefunct redifField
highlight def link redifFieldTertiaryEmail redifField
highlight def link redifFieldTertiaryFax redifField
highlight def link redifFieldTertiaryHomepage redifField
highlight def link redifFieldTertiaryInstitution redifField
highlight def link redifFieldTertiaryLocation redifField
highlight def link redifFieldTertiaryName redifField
highlight def link redifFieldTertiaryNameEnglish redifField
highlight def link redifFieldTertiaryPhone redifField
highlight def link redifFieldTertiaryPostal redifField
highlight def link redifFieldTitle redifField
highlight def link redifFieldTitle redifField
highlight def link redifFieldType redifField
highlight def link redifFieldURL redifField
highlight def link redifFieldVersion redifField
highlight def link redifFieldVolume redifField
highlight def link redifFieldWorkplaceEmail redifField
highlight def link redifFieldWorkplaceFax redifField
highlight def link redifFieldWorkplaceHomepage redifField
highlight def link redifFieldWorkplaceInstitution redifField
highlight def link redifFieldWorkplaceLocation redifField
highlight def link redifFieldWorkplaceName redifField
highlight def link redifFieldWorkplaceNameEnglish redifField
highlight def link redifFieldWorkplaceOrganization redifField
highlight def link redifFieldWorkplacePhone redifField
highlight def link redifFieldWorkplacePostal redifField
highlight def link redifFieldYear redifField

" Deprecated
"     same as Provider-*
"     nextgroup=redifArgumentProvider*
syntax match redifFieldPublisherEmail /^Publisher-Email:/ skipwhite skipempty nextgroup=redifArgumentProviderEmail contained
syntax match redifFieldPublisherFax /^Publisher-Fax:/ skipwhite skipempty nextgroup=redifArgumentProviderFax contained
syntax match redifFieldPublisherHomepage /^Publisher-Homepage:/ skipwhite skipempty nextgroup=redifArgumentProviderHomepage contained
syntax match redifFieldPublisherInstitution /^Publisher-Institution:/ skipwhite skipempty nextgroup=redifArgumentProviderInstitution contained
syntax match redifFieldPublisherLocation /^Publisher-Location:/ skipwhite skipempty nextgroup=redifArgumentProviderLocation contained
syntax match redifFieldPublisherName /^Publisher-Name:/ skipwhite skipempty nextgroup=redifArgumentProviderName contained
syntax match redifFieldPublisherNameEnglish /^Publisher-Name-English:/ skipwhite skipempty nextgroup=redifArgumentProviderNameEnglish contained
syntax match redifFieldPublisherPhone /^Publisher-Phone:/ skipwhite skipempty nextgroup=redifArgumentProviderPhone contained
syntax match redifFieldPublisherPostal /^Publisher-Postal:/ skipwhite skipempty nextgroup=redifArgumentProviderPostal contained

highlight def link redifFieldPublisherEmail redifFieldDeprecated
highlight def link redifFieldPublisherFax redifFieldDeprecated
highlight def link redifFieldPublisherHomepage redifFieldDeprecated
highlight def link redifFieldPublisherInstitution redifFieldDeprecated
highlight def link redifFieldPublisherLocation redifFieldDeprecated
highlight def link redifFieldPublisherName redifFieldDeprecated
highlight def link redifFieldPublisherNameEnglish redifFieldDeprecated
highlight def link redifFieldPublisherPhone redifFieldDeprecated
highlight def link redifFieldPublisherPostal redifFieldDeprecated

" Standard arguments
"    By default, they contain all the argument until another field is started:
"        start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1
"    For arguments that must not span more than one line, use a match:
"        /\%(^\S\{-}:\)\@!\S.*/
"        AND ADD "display"
"    This is faster.
"
"    Those arguments are not highlighted so far. They are here for future
"    extensions.
"    TODO Find more RegEx for these arguments
"    	TODO Fax, Phone
"    	TODO URL, Homepage
"    	TODO Keywords
"    	TODO Classification-JEL
"    	TODO Short-Id, Author-Person, Editor-Person
"
"    Arguments that may span several lines:
syntax region redifArgumentAuthorWorkplaceLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorWorkplacePostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorWorkplacePostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentFileFunction start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentIssue start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentJournal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentOrderPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrice start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrimaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrimaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentProviderLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentProviderPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentQuaternaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentQuaternaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentRequires start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSecondaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSecondaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSize start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentTertiaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentTertiaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentVersion start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplaceLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplacePhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplacePostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained

" Arguments that may not span several lines:
"    If you are sure that these arguments cannot span several lines, change
"    them to a match:
"        /\%(^\S\{-}:\)\@!\S.*/
"    AND ADD "display" after "contained"
"        You can use this command on each line that you want to change:
"        :s+\Vregion \(\w\+\) start=/\\%(^\\S\\{-}:\\)\\@!\\S/ end=/^\\S\\{-}:/me=s-1 contained+match \1 /\\%(^\\S\\{-}:\\)\\@!\\S.*/ contained display
syntax region redifArgumentAuthorFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorNameFirst start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorNameLast start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorPerson start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorWorkplaceFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorWorkplaceHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorWorkplaceName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorWorkplaceNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentAuthorWorkplacePhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorNameFirst start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorNameLast start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorPerson start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorWorkplaceFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorWorkplaceHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorWorkplaceLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorWorkplaceName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorWorkplaceNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentEditorWorkplacePhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentFileURL start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentMaintainerFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentMaintainerName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentMaintainerPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentNameFirst start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentNameFull start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentNameLast start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentNameMiddle start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentNamePrefix start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentNameSuffix start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentNumber start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentOrderHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentOrderURL start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrimaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrimaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrimaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrimaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentPrimaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentProviderFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentProviderHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentProviderName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentProviderNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentProviderPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentQuaternaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentQuaternaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentQuaternaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentQuaternaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentQuaternaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSecondaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSecondaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSecondaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSecondaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSecondaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentSeries start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentShortId start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentTertiaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentTertiaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentTertiaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentTertiaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentTertiaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentURL start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplaceFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplaceHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplaceName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplaceNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained
syntax region redifArgumentWorkplaceOrganization start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained

" Special arguments
"    Those arguments require special values
"    TODO Improve some RegEx
"    	TODO Improve Emails
"    	TODO Improve ISBN
"    	TODO Improve ISSN
"    	TODO Improve spell check (add words from economics.
"    	   expl=macroeconometrics, Schumpeterian, IS-LM, etc.)
"
"    Template-Type
syntax match redifArgumentTemplateType /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectTemplateType contained display
syntax match redifCorrectTemplateType /ReDIF-\%(Paper\|Article\|Chapter\|Book\|Software\|Archive\|Series\|Institution\|Person\)/ nextgroup=redifTemplateVersionNumberContainer contained display
syntax match redifTemplateVersionNumberContainer /.\+/ contains=redifTemplateVersionNumber contained display
syntax match redifTemplateVersionNumber / \d\+\.\d\+/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentTemplateType redifError
highlight def link redifCorrectTemplateType Constant
highlight def link redifTemplateVersionNumber Number
highlight def link redifTemplateVersionNumberContainer redifError

"    Handles:
"
"        Handles of Works:
syntax match redifArgumentHandleOfWork /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentAuthorArticle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentAuthorBook /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentAuthorChapter /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentAuthorPaper /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentAuthorSoftware /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentEditorBook /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentEditorSeries /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentInBook /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentHasChapter /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentArticleHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentBookHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentChapterHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentPaperHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifArgumentSoftwareHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display
syntax match redifCorrectHandleOfWork /RePEc:\a\a\a:\%(_\@!\w\)\{6}:\S\+/ contains=redifForbiddenCharactersInHandle,redifBestPracticeInHandle nextgroup=redifWrongLineEnding contained display
" TODO Are those characters really forbidden???
syntax match redifForbiddenCharactersInHandle /[\/*?"<>|]/ contained display
syntax match redifBestPracticeInHandle /\<\%([vi]:[1-9]\d*\|y:[1-9]\d\{3}\|p:[1-9]\d*-[1-9]\d*\|i:\%(jan\|feb\|mar\|apr\|may\|jun\|jul\|aug\|sep\|oct\|nov\|dec\|spr\|sum\|aut\|win\|spe\|Q[1-4]\|\d\d-\d\d\)\|Q:[1-4]\)\>/ contained display

highlight def link redifArgumentHandleOfWork redifError
highlight def link redifArgumentAuthorArticle redifError
highlight def link redifArgumentAuthorBook redifError
highlight def link redifArgumentAuthorChapter redifError
highlight def link redifArgumentAuthorPaper redifError
highlight def link redifArgumentAuthorSoftware redifError
highlight def link redifArgumentEditorBook redifError
highlight def link redifArgumentEditorSeries redifError
highlight def link redifArgumentInBook redifError
highlight def link redifArgumentHasChapter redifError
highlight def link redifArgumentArticleHandle redifError
highlight def link redifArgumentBookHandle redifError
highlight def link redifArgumentChapterHandle redifError
highlight def link redifArgumentPaperHandle redifError
highlight def link redifArgumentSoftwareHandle redifError
highlight def link redifForbiddenCharactersInHandle redifError
highlight def link redifBestPracticeInHandle redifSpecial

"        Handles of Series:
syntax match redifArgumentHandleOfSeries /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfSeries contained display
syntax match redifArgumentFollowup /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfSeries contained display
syntax match redifArgumentPredecessor /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfSeries contained display
syntax match redifCorrectHandleOfSeries /RePEc:\a\a\a:\%(_\@!\w\)\{6}/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentHandleOfSeries redifError
highlight def link redifArgumentFollowup redifError
highlight def link redifArgumentPredecessor redifError

"        Handles of Archives:
syntax match redifArgumentHandleOfArchive /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfArchive contained display
syntax match redifCorrectHandleOfArchive /RePEc:\a\a\a/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentHandleOfArchive redifError

"        Handles of Person:
syntax match redifArgumentHandleOfPerson /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfPerson contained display
syntax match redifCorrectHandleOfPerson /\%(\%(:\@!\S\)\{-}:\)\{2}[1-9]\d\{3}\%(-02\%(-[12]\d\|-0[1-9]\)\|-\%(0[469]\|11\)\%(-30\|-[12]\d\|-0[1-9]\)\|-\%(0[13578]\|1[02]\)\%(-3[01]\|-[12]\d\|-0[1-9]\)\):\S\+/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentHandleOfPerson redifError

"        Handles of Institution:
syntax match redifArgumentAuthorWorkplaceInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentEditorWorkplaceInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentPrimaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentProviderInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentPublisherInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentQuaternaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentSecondaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentTertiaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentWorkplaceInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentHandleOfInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentPrimaryDefunct /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentSecondaryDefunct /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
syntax match redifArgumentTertiaryDefunct /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display
" TODO Are digits authorized? Apparently not.
" Country codes:
" http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm
syntax match redifCorrectHandleOfInstitution /RePEc:\a\a\a:\a\{5}\(ea\|af\|ax\|al\|dz\|as\|ad\|ao\|ai\|aq\|ag\|ar\|am\|aw\|au\|at\|az\|bs\|bh\|bd\|bb\|by\|be\|bz\|bj\|bm\|bt\|bo\|bq\|ba\|bw\|bv\|br\|io\|bn\|bg\|bf\|bi\|kh\|cm\|ca\|cv\|ky\|cf\|td\|cl\|cn\|cx\|cc\|co\|km\|cg\|cd\|ck\|cr\|ci\|hr\|cu\|cw\|cy\|cz\|dk\|dj\|dm\|do\|ec\|eg\|sv\|gq\|er\|ee\|et\|fk\|fo\|fj\|fi\|fr\|gf\|pf\|tf\|ga\|gm\|ge\|de\|gh\|gi\|gr\|gl\|gd\|gp\|gu\|gt\|gg\|gn\|gw\|gy\|ht\|hm\|va\|hn\|hk\|hu\|is\|in\|id\|ir\|iq\|ie\|im\|il\|it\|jm\|jp\|je\|jo\|kz\|ke\|ki\|kp\|kr\|kw\|kg\|la\|lv\|lb\|ls\|lr\|ly\|li\|lt\|lu\|mo\|mk\|mg\|mw\|my\|mv\|ml\|mt\|mh\|mq\|mr\|mu\|yt\|mx\|fm\|md\|mc\|mn\|me\|ms\|ma\|mz\|mm\|na\|nr\|np\|nl\|nc\|nz\|ni\|ne\|ng\|nu\|nf\|mp\|no\|om\|pk\|pw\|ps\|pa\|pg\|py\|pe\|ph\|pn\|pl\|pt\|pr\|qa\|re\|ro\|ru\|rw\|bl\|sh\|kn\|lc\|mf\|pm\|vc\|ws\|sm\|st\|sa\|sn\|rs\|sc\|sl\|sg\|sx\|sk\|si\|sb\|so\|za\|gs\|ss\|es\|lk\|sd\|sr\|sj\|sz\|se\|ch\|sy\|tw\|tj\|tz\|th\|tl\|tg\|tk\|to\|tt\|tn\|tr\|tm\|tc\|tv\|ug\|ua\|ae\|gb\|us\|um\|uy\|uz\|vu\|ve\|vn\|vg\|vi\|wf\|eh\|ye\|zm\|zw\)/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentHandleOfInstitution redifError
highlight def link redifArgumentPrimaryDefunct redifError
highlight def link redifArgumentSecondaryDefunct redifError
highlight def link redifArgumentTertiaryDefunct redifError

"    Emails:
syntax match redifArgumentAuthorEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentAuthorWorkplaceEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentContactEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentEditorEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentEditorWorkplaceEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentMaintainerEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentOrderEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentPrimaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentProviderEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentPublisherEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentQuaternaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentSecondaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentTertiaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifArgumentWorkplaceEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display
syntax match redifCorrectEmail /\%(@\@!\S\)\+@\%(@\@!\S\)\+/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentAuthorEmail redifError
highlight def link redifArgumentAuthorWorkplaceEmail redifError
highlight def link redifArgumentContactEmail redifError
highlight def link redifArgumentEditorEmail redifError
highlight def link redifArgumentEditorWorkplaceEmail redifError
highlight def link redifArgumentEmail redifError
highlight def link redifArgumentMaintainerEmail redifError
highlight def link redifArgumentOrderEmail redifError
highlight def link redifArgumentPrimaryEmail redifError
highlight def link redifArgumentProviderEmail redifError
highlight def link redifArgumentPublisherEmail redifError
highlight def link redifArgumentQuaternaryEmail redifError
highlight def link redifArgumentSecondaryEmail redifError
highlight def link redifArgumentTertiaryEmail redifError
highlight def link redifArgumentWorkplaceEmail redifError

"    Language
"    Source: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
syntax match redifArgumentLanguage /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectLanguage contained display
syntax match redifCorrectLanguage /\<\(aa\|ab\|af\|ak\|als\|am\|an\|ang\|ar\|arc\|as\|ast\|av\|ay\|az\|ba\|bar\|bat-smg\|bcl\|be\|be-x-old\|bg\|bh\|bi\|bm\|bn\|bo\|bpy\|br\|bs\|bug\|bxr\|ca\|ce\|ceb\|ch\|cho\|chr\|chy\|co\|cr\|cs\|csb\|cu\|cv\|cy\|da\|de\|diq\|dsb\|dv\|dz\|ee\|el\|en\|eo\|es\|et\|eu\|ext\|fa\|ff\|fi\|fiu-vro\|fj\|fo\|fr\|frp\|fur\|fy\|ga\|gd\|gil\|gl\|gn\|got\|gu\|gv\|ha\|haw\|he\|hi\|ho\|hr\|ht\|hu\|hy\|hz\|ia\|id\|ie\|ig\|ii\|ik\|ilo\|io\|is\|it\|iu\|ja\|jbo\|jv\|ka\|kg\|ki\|kj\|kk\|kl\|km\|kn\|khw\|ko\|kr\|ks\|ksh\|ku\|kv\|kw\|ky\|la\|lad\|lan\|lb\|lg\|li\|lij\|lmo\|ln\|lo\|lt\|lv\|map-bms\|mg\|mh\|mi\|mk\|ml\|mn\|mo\|mr\|ms\|mt\|mus\|my\|na\|nah\|nap\|nd\|nds\|nds-nl\|ne\|new\|ng\|nl\|nn\|no\|nr\|nso\|nrm\|nv\|ny\|oc\|oj\|om\|or\|os\|pa\|pag\|pam\|pap\|pdc\|pi\|pih\|pl\|pms\|ps\|pt\|qu\|rm\|rmy\|rn\|ro\|roa-rup\|ru\|rw\|sa\|sc\|scn\|sco\|sd\|se\|sg\|sh\|si\|simple\|sk\|sl\|sm\|sn\|so\|sq\|sr\|ss\|st\|su\|sv\|sw\|ta\|te\|tet\|tg\|th\|ti\|tk\|tl\|tlh\|tn\|to\|tpi\|tr\|ts\|tt\|tum\|tw\|ty\|udm\|ug\|uk\|ur\|uz\|ve\|vi\|vec\|vls\|vo\|wa\|war\|wo\|xal\|xh\|yi\|yo\|za\|zh\|zh-min-nan\|zh-yue\|zu\)\>/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentLanguage redifError
highlight def link redifCorrectLanguage redifSpecial

"    Length
"    Based on the example in the documentation. But apparently any field is
"    possible
syntax region redifArgumentLength start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=redifGoodLength contained
syntax match redifGoodLength /1 page\|[1-9]\d*\%( pages\)\=/ contained display

highlight def link redifGoodLength redifSpecial

"    Publication-Type
syntax match redifArgumentPublicationType /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectPublicationType contained display
syntax match redifCorrectPublicationType /\<\(journal article\|book\|book chapter\|working paper\|conference paper\|report\|other\)\>/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentPublicationType redifError
highlight def link redifCorrectPublicationType redifSpecial

"    Publication-Status
syntax region redifArgumentPublicationStatus start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=redifSpecialPublicationStatus contained
syntax match redifSpecialPublicationStatus /published\|forthcoming/ nextgroup=redifCorrectPublicationStatus contained display
syntax region redifCorrectPublicationStatus start=/./ end=/^\S\{-}:/me=s-1 contained

highlight def link redifArgumentPublicationStatus redifError
highlight def link redifSpecialPublicationStatus redifSpecial

"    Month
"    TODO Are numbers also allowed?
syntax match redifArgumentMonth /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodMonth contained display
syntax match redifGoodMonth /\<\(Jan\%(uary\)\=\|Feb\%(ruary\)\=\|Mar\%(ch\)\=\|Apr\%(il\)\=\|May\|June\=\|July\=\|Aug\%(ust\)\=\|Sep\%(tember\)\=\|Oct\%(ober\)\=\|Nov\%(ember\)\=\|Dec\%(ember\)\=\)\>/ contained display

highlight def link redifGoodMonth redifSpecial

"    Integers: Volume, Chapter
syntax match redifArgumentVolume /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectInteger contained display
syntax match redifArgumentChapter /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectInteger contained display
syntax match redifCorrectInteger /[1-9]\d*/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentVolume redifError
highlight def link redifArgumentChapter redifError

"    Year
syntax match redifArgumentYear /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectYear contained display
syntax match redifCorrectYear /[1-9]\d\{3}/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentYear redifError

"    Edition
"    Based on the example in the documentation.
syntax match redifArgumentEdition /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodEdition contained display
syntax match redifGoodEdition /1st\|2nd\|3rd\|[4-9]th\|[1-9]\d*\%(1st\|2nd\|3rd\|[4-9]th\)\|[1-9]\d*/ contained display

highlight def link redifGoodEdition redifSpecial

"    ISBN
syntax match redifArgumentISBN /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodISBN contained display
syntax match redifGoodISBN /\d[0-9-]\{8,15}\d/ contained display

highlight def link redifGoodISBN redifSpecial

"    ISSN
syntax match redifArgumentISSN /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodISSN contained display
syntax match redifGoodISSN /\d\{4}-\d\{3}[0-9X]/ contained display

highlight def link redifGoodISSN redifSpecial

"    File-Size
"    Based on the example in the documentation.
syntax region redifArgumentFileSize start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=redifGoodSize contained
syntax match redifGoodSize /kb\|bytes/ contained display

highlight def link redifGoodSize redifSpecial

"    Type
syntax match redifArgumentType /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectType contained display
syntax match redifCorrectType /ReDIF-Paper\|ReDIF-Software\|ReDIF-Article\|ReDIF-Chapter\|ReDIF-Book/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentType redifError
highlight def link redifCorrectType redifSpecial

"    Dates: Publication-Date, Creation-Date, Revision-Date,
"    Last-Login-Date, Registration-Date
syntax match redifArgumentCreationDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display
syntax match redifArgumentLastLoginDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display
syntax match redifArgumentPublicationDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display
syntax match redifArgumentRegisteredDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display
syntax match redifArgumentRevisionDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display
syntax match redifCorrectDate /[1-9]\d\{3}\%(-02\%(-[12]\d\|-0[1-9]\)\=\|-\%(0[469]\|11\)\%(-30\|-[12]\d\|-0[1-9]\)\=\|-\%(0[13578]\|1[02]\)\%(-3[01]\|-[12]\d\|-0[1-9]\)\=\)\=/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentCreationDate redifError
highlight def link redifArgumentLastLoginDate redifError
highlight def link redifArgumentPublicationDate redifError
highlight def link redifArgumentRegisteredDate redifError
highlight def link redifArgumentRevisionDate redifError

"    Classification-JEL
syntax match redifArgumentClassificationJEL /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectJEL contained display
syntax match redifCorrectJEL /\<\%(\u\d\{,2}[,; \t]\s*\)*\u\d\{,2}/ contains=redifSpecialJEL nextgroup=redifWrongLineEnding contained display
syntax match redifSpecialJEL /\<\u\d\{,2}/ contained display

highlight def link redifArgumentClassificationJEL redifError
highlight def link redifSpecialJEL redifSpecial

"    Pages
syntax match redifArgumentPages /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectPages contained display
syntax match redifCorrectPages /[1-9]\d*-[1-9]\d*/ nextgroup=redifWrongLineEnding contained display

highlight def link redifArgumentPages redifError

"    Name-ASCII
syntax match redifArgumentNameASCII /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectNameASCII contained display
syntax match redifCorrectNameASCII /[ -~]/ contained display

highlight def link redifArgumentNameASCII redifError

"    Programming-Language
syntax match redifArgumentProgrammingLanguage /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodProgrammingLanguage contained display
syntax match redifGoodProgrammingLanguage /\<c++\|\<\%(c\|dos executable\|executable\|fortran\|gauss\|gretl\|java\|mathematica\|matlab\|octave\|ox\|perl\|python\|rats\|r\|shazam\|s-plus\|stata\|tsp international\)\>/ nextgroup=redifWrongLineEnding contained display

highlight def link redifGoodProgrammingLanguage redifSpecial

"    File-Format
"    TODO The link in the documentation that gives the list of possible formats is broken.
"    ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types
"    These are based on the examples in the documentation.
syntax match redifArgumentFileFormat /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodFormat contained display
syntax match redifGoodFormat "\a\+/[[:alpha:]+-]\+" nextgroup=redifWrongLineEnding contains=redifSpecialFormat contained display
syntax match redifSpecialFormat "application/atom+xml\|application/ecmascript\|application/EDI-X12\|application/EDIFACT\|application/json\|application/javascript\|application/octet-stream\|application/ogg\|application/pdf\|application/postscript\|application/rdf+xml\|application/rss+xml\|application/soap+xml\|application/font-woff\|application/xhtml+xml\|application/xml\|application/xml-dtd\|application/xop+xml\|application/zip\|application/gzip\|audio/basic\|audio/L24\|audio/mp4\|audio/mpeg\|audio/ogg\|audio/vorbis\|audio/vnd.rn-realaudio\|audio/vnd.wave\|audio/webm\|image/gif\|image/jpeg\|image/pjpeg\|image/png\|image/svg+xml\|image/tiff\|image/vnd.microsoft.icon\|message/http\|message/imdn+xml\|message/partial\|message/rfc822\|model/example\|model/iges\|model/mesh\|model/vrml\|model/x3d+binary\|model/x3d+vrml\|model/x3d+xml\|multipart/mixed\|multipart/alternative\|multipart/related\|multipart/form-data\|multipart/signed\|multipart/encrypted\|text/cmd\|text/css\|text/csv\|text/html\|text/javascript\|text/plain\|text/vcard\|text/xml\|video/mpeg\|video/mp4\|video/ogg\|video/quicktime\|video/webm\|video/x-matroska\|video/x-ms-wmv\|video/x-flv" contained display

highlight def link redifSpecialFormat redifSpecial
highlight def link redifArgumentFileFormat redifError

" Keywords
"     Spell checked
syntax match redifArgumentKeywords /\%(^\S\{-}:\)\@!\S.*/ contains=@Spell,redifKeywordsSemicolon contained
syntax match redifKeywordsSemicolon /;/ contained

highlight def link redifKeywordsSemicolon redifSpecial

" Other spell-checked arguments
"    Very useful when copy-pasting abstracts that may contain hyphens or
"    ligatures.
syntax region redifArgumentAbstract start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentAvailability start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentBookTitle start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentDescription start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentFileRestriction start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentNote start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentNotification start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentRestriction start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained
syntax region redifArgumentTitle start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained

" Wrong line ending
syntax match redifWrongLineEnding /.\+/ contained display

highlight def link redifWrongLineEnding redifError

" Final highlight
highlight def link redifComment Comment
highlight def link redifError Error
highlight def link redifField Identifier
highlight def link redifFieldDeprecated Identifier
highlight def link redifSpecial Special
" For deprecated fields:
highlight redifFieldDeprecated term=undercurl cterm=undercurl gui=undercurl guisp=DarkGrey

" Sync: The template-type (ReDIF-Paper, ReDIF-Archive, etc.) influences which
" fields can follow. Thus sync must search backwards for it.
"
" I would like to simply ask VIM to search backward for the first occurence of
" /^Template-Type:/, but it does not seem to be possible, so I have to start
" from the beginning of the file... This might slow down a lot for files that
" contain a lot of Template-Type statements.
syntax sync fromstart

" The problem with syntax sync match (tried below), it is that, for example,
" it cannot realize when it is inside a Author-Name cluster, which is inside a
" Template-Type template...
"
" TODO Is this linecont pattern really useful? It seems to work anyway...
"syntax sync linecont /^\(Template-Type:\)\=\s*$/
" TODO This sync is surprising... It seems to work on several lines even
" though I replaced \_s* by \s*, even without the linecont pattern...
"syntax sync match redifSyncForTemplatePaper groupthere redifRegionTemplatePaper /^Template-Type:\s*ReDIF-Paper \d\+\.\d\+/
"syntax sync match redifSyncForTemplateArticle groupthere redifRegionTemplateArticle /^Template-Type:\s*ReDIF-Article \d\+\.\d\+/
"syntax sync match redifSyncForTemplateChapter groupthere redifRegionTemplateChapter /^Template-Type:\s*ReDIF-Chapter \d\+\.\d\+/
"syntax sync match redifSyncForTemplateBook groupthere redifRegionTemplateBook /^Template-Type:\s*ReDIF-Book \d\+\.\d\+/
"syntax sync match redifSyncForTemplateSoftware groupthere redifRegionTemplateSoftware /^Template-Type:\s*ReDIF-Software \d\+\.\d\+/
"syntax sync match redifSyncForTemplateArchive groupthere redifRegionTemplateArchive /^Template-Type:\s*ReDIF-Archive \d\+\.\d\+/
"syntax sync match redifSyncForTemplateSeries groupthere redifRegionTemplateSeries /^Template-Type:\s*ReDIF-Series \d\+\.\d\+/
"syntax sync match redifSyncForTemplateInstitution groupthere redifRegionTemplateInstitution /^Template-Type:\s*ReDIF-Institution \d\+\.\d\+/
"syntax sync match redifSyncForTemplatePerson groupthere redifRegionTemplatePerson /^Template-Type:\s*ReDIF-Person \d\+\.\d\+/

" I do not really know how sync linebreaks works, but it helps when making
" changes on the argument when this argument is not on the same line than its
" field. I just assume that people won't leave more than one line of
" whitespace between fields and arguments (which is already very unlikely)
" hence the value of 2.
syntax sync linebreaks=2

" Since folding is defined by the syntax, set foldmethod to syntax.
set foldmethod=syntax

" Set "b:current_syntax" to the name of the syntax at the end:
let b:current_syntax="redif"
PK�j�Zu1�	�\�\vim80/syntax/csdl.vimnu�[���" Vim syntax file
" Language: Curated Stream Definition Language (CSDL)
" Maintainer: Jacek Artymiak
" Latest Revision: 25 February 2013

if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=.,@,48-57,_,192-255
syn case ignore 

syn match csdlKeyword "tag "
syn match csdlKeyword "stream "
syn match csdlKeyword "return "

syn keyword csdlOperator contains
syn match csdlOperator "cs contains"
syn keyword csdlOperator substr
syn match csdlOperator "cs substr"
syn keyword csdlOperator contains_any
syn match csdlOperator "cs contains_any"
syn keyword csdlOperator any
syn match csdlOperator "cs any"
syn keyword csdlOperator contains_near
syn match csdlOperator "cs contains_near"
syn keyword csdlOperator exists
syn keyword csdlOperator in
syn keyword csdlOperator url_in
syn match csdlOperator "=="
syn match csdlOperator "!="
syn match csdlOperator "cs =="
syn match csdlOperator "cs !="
syn match csdlOperator ">"
syn match csdlOperator ">="
syn match csdlOperator "<"
syn match csdlOperator "<="
syn keyword csdlOperator regex_partial
syn keyword csdlOperator regex_exact
syn keyword csdlOperator geo_box
syn keyword csdlOperator geo_radius
syn keyword csdlOperator geo_polygon

syn keyword csdlLogicalOperator and
syn keyword csdlLogicalOperator or
syn keyword csdlLogicalOperator not

syn match csdlTarget 'reddit\.title'
syn match csdlTarget 'reddit\.content'
syn match csdlTarget 'reddit\.contenttype'
syn match csdlTarget 'reddit\.link'
syn match csdlTarget 'reddit\.author\.name'
syn match csdlTarget 'reddit\.author\.link'
syn match csdlTarget 'reddit\.type'
syn match csdlTarget 'reddit\.thread'
syn match csdlTarget 'interaction\.type'
syn match csdlTarget 'interaction\.title'
syn match csdlTarget 'interaction\.content'
syn match csdlTarget 'interaction\.source'
syn match csdlTarget 'interaction\.geo'
syn match csdlTarget 'interaction\.link'
syn match csdlTarget 'interaction\.author\.username'
syn match csdlTarget 'interaction\.author\.name'
syn match csdlTarget 'interaction\.author\.id'
syn match csdlTarget 'interaction\.author\.avatar'
syn match csdlTarget 'interaction\.author\.link'
syn match csdlTarget 'interaction\.sample'
syn match csdlTarget 'links\.title'
syn match csdlTarget 'links\.url'
syn keyword csdlTarget links.normalized_url
syn match csdlTarget 'links\.hops'
syn match csdlTarget 'links\.code'
syn match csdlTarget 'links\.domain'
syn keyword csdlTarget links.retweet_count
syn match csdlTarget 'links\.age'
syn keyword csdlTarget links.meta.content_type
syn match csdlTarget 'links\.meta\.charset'
syn match csdlTarget 'links\.meta\.lang'
syn match csdlTarget 'links\.meta\.keywords'
syn match csdlTarget 'links\.meta\.description'
syn match csdlTarget 'links\.meta\.newskeywords'
syn match csdlTarget 'links\.meta\.standout'
syn match csdlTarget 'links\.meta\.opengraph\.type'
syn match csdlTarget 'links\.meta\.opengraph\.title'
syn match csdlTarget 'links\.meta\.opengraph\.image'
syn match csdlTarget 'links\.meta\.opengraph\.url'
syn match csdlTarget 'links\.meta\.opengraph\.description'
syn keyword csdlTarget links.meta.opengraph.site_name
syn match csdlTarget 'links\.meta\.opengraph\.email'
syn keyword csdlTarget links.meta.opengraph.phone_number
syn keyword csdlTarget links.meta.opengraph.fax_number
syn match csdlTarget 'links\.meta\.opengraph\.geo'
syn keyword csdlTarget links.meta.opengraph.street_address
syn match csdlTarget 'links\.meta\.opengraph\.locality'
syn match csdlTarget 'links\.meta\.opengraph\.region'
syn keyword csdlTarget links.meta.opengraph.postal_code
syn match csdlTarget 'links\.meta\.opengraph\.activity'
syn match csdlTarget 'links\.meta\.opengraph\.sport'
syn match csdlTarget 'links\.meta\.opengraph\.bar'
syn match csdlTarget 'links\.meta\.opengraph\.company'
syn match csdlTarget 'links\.meta\.opengraph\.cafe'
syn match csdlTarget 'links\.meta\.opengraph\.hotel'
syn match csdlTarget 'links\.meta\.opengraph\.restaurant'
syn match csdlTarget 'links\.meta\.opengraph\.cause'
syn keyword csdlTarget links.meta.opengraph.sports_league
syn keyword csdlTarget links.meta.opengraph.sports_team
syn match csdlTarget 'links\.meta\.opengraph\.band'
syn match csdlTarget 'links\.meta\.opengraph\.government'
syn keyword csdlTarget links.meta.opengraph.non_profit
syn match csdlTarget 'links\.meta\.opengraph\.school'
syn match csdlTarget 'links\.meta\.opengraph\.university'
syn match csdlTarget 'links\.meta\.opengraph\.actor'
syn match csdlTarget 'links\.meta\.opengraph\.athlete'
syn match csdlTarget 'links\.meta\.opengraph\.author'
syn match csdlTarget 'links\.meta\.opengraph\.director'
syn match csdlTarget 'links\.meta\.opengraph\.musician'
syn match csdlTarget 'links\.meta\.opengraph\.politician'
syn keyword csdlTarget links.meta.opengraph.public_figure
syn match csdlTarget 'links\.meta\.opengraph\.city'
syn match csdlTarget 'links\.meta\.opengraph\.country'
syn match csdlTarget 'links\.meta\.opengraph\.landmark'
syn keyword csdlTarget links.meta.opengraph.state_province
syn match csdlTarget 'links\.meta\.opengraph\.album'
syn match csdlTarget 'links\.meta\.opengraph\.book'
syn match csdlTarget 'links\.meta\.opengraph\.drink'
syn match csdlTarget 'links\.meta\.opengraph\.food'
syn match csdlTarget 'links\.meta\.opengraph\.game'
syn match csdlTarget 'links\.meta\.opengraph\.movie'
syn match csdlTarget 'links\.meta\.opengraph\.product'
syn match csdlTarget 'links\.meta\.opengraph\.song'
syn keyword csdlTarget links.meta.opengraph.tv_show
syn match csdlTarget 'links\.meta\.opengraph\.blog'
syn match csdlTarget 'links\.meta\.opengraph\.website'
syn match csdlTarget 'links\.meta\.opengraph\.article'
syn match csdlTarget 'links\.meta\.twitter\.card'
syn match csdlTarget 'links\.meta\.twitter\.site'
syn keyword csdlTarget links.meta.twitter.site_id
syn match csdlTarget 'links\.meta\.twitter\.creator'
syn keyword csdlTarget links.meta.twitter.creator_id
syn match csdlTarget 'links\.meta\.twitter\.url'
syn match csdlTarget 'links\.meta\.twitter\.description'
syn match csdlTarget 'links\.meta\.twitter\.title'
syn match csdlTarget 'links\.meta\.twitter\.image'
syn keyword csdlTarget links.meta.twitter.image_width
syn keyword csdlTarget links.meta.twitter.image_height
syn match csdlTarget 'links\.meta\.twitter\.player'
syn keyword csdlTarget links.meta.twitter.player_width
syn keyword csdlTarget links.meta.twitter.player_height
syn keyword csdlTarget links.meta.twitter.player_stream
syn keyword csdlTarget links.meta.twitter.player_stream_content_type
syn match csdlTarget 'myspace\.link'
syn match csdlTarget 'myspace\.content'
syn match csdlTarget 'myspace\.contenttype'
syn match csdlTarget 'myspace\.category'
syn match csdlTarget 'myspace\.author\.username'
syn match csdlTarget 'myspace\.author\.name'
syn match csdlTarget 'myspace\.author\.id'
syn match csdlTarget 'myspace\.author\.link'
syn match csdlTarget 'myspace\.author\.avatar'
syn match csdlTarget 'myspace\.geo'
syn match csdlTarget 'myspace\.verb'
syn match csdlTarget 'newscred\.type'
syn match csdlTarget 'newscred\.article\.domain'
syn match csdlTarget 'newscred\.video\.domain'
syn match csdlTarget 'newscred\.article\.topics'
syn match csdlTarget 'newscred\.video\.topics'
syn match csdlTarget 'newscred\.article\.category'
syn match csdlTarget 'newscred\.video\.category'
syn match csdlTarget 'newscred\.article\.title'
syn match csdlTarget 'newscred\.video\.title'
syn match csdlTarget 'newscred\.article\.content'
syn match csdlTarget 'newscred\.article\.fulltext'
syn match csdlTarget 'newscred\.article\.authors'
syn match csdlTarget 'newscred\.image\.caption'
syn match csdlTarget 'newscred\.video\.caption'
syn match csdlTarget 'newscred\.image\.attribution\.text'
syn match csdlTarget 'newscred\.image\.attribution\.link'
syn match csdlTarget 'newscred\.source\.name'
syn match csdlTarget 'newscred\.source\.link'
syn match csdlTarget 'newscred\.source\.domain'
syn keyword csdlTarget newscred.source.media_type
syn keyword csdlTarget newscred.source.company_type
syn match csdlTarget 'newscred\.source\.country'
syn match csdlTarget 'newscred\.source\.circulation'
syn match csdlTarget 'newscred\.source\.founded'
syn match csdlTarget 'imdb\.title'
syn match csdlTarget 'imdb\.content'
syn match csdlTarget 'imdb\.contenttype'
syn match csdlTarget 'imdb\.link'
syn match csdlTarget 'imdb\.author\.name'
syn match csdlTarget 'imdb\.author\.link'
syn match csdlTarget 'imdb\.type'
syn match csdlTarget 'imdb\.thread'
syn match csdlTarget 'amazon\.title'
syn match csdlTarget 'amazon\.content'
syn match csdlTarget 'amazon\.contenttype'
syn match csdlTarget 'amazon\.link'
syn match csdlTarget 'amazon\.author\.name'
syn match csdlTarget 'amazon\.author\.link'
syn match csdlTarget 'amazon\.type'
syn match csdlTarget 'amazon\.thread'
syn match csdlTarget 'salience\.content\.sentiment'
syn match csdlTarget 'salience\.content\.topics'
syn match csdlTarget 'salience\.title\.sentiment'
syn match csdlTarget 'salience\.title\.topics'
syn match csdlTarget 'salience\.content\.entities\.name'
syn match csdlTarget 'salience\.content\.entities\.type'
syn match csdlTarget 'salience\.title\.entities\.name'
syn match csdlTarget 'salience\.title\.entities\.type'
syn match csdlTarget 'klout\.score'
syn match csdlTarget 'klout\.network'
syn match csdlTarget 'klout\.amplification'
syn keyword csdlTarget klout.true_reach
syn match csdlTarget 'klout\.topics'
syn match csdlTarget 'wikipedia\.author\.talk'
syn match csdlTarget 'wikipedia\.author\.contributions'
syn match csdlTarget 'wikipedia\.author\.username'
syn match csdlTarget 'wikipedia\.body'
syn match csdlTarget 'wikipedia\.title'
syn match csdlTarget 'wikipedia\.images'
syn match csdlTarget 'wikipedia\.categories'
syn match csdlTarget 'wikipedia\.externallinks'
syn match csdlTarget 'wikipedia\.ns'
syn match csdlTarget 'wikipedia\.namespace'
syn match csdlTarget 'wikipedia\.pageid'
syn match csdlTarget 'wikipedia\.parentid'
syn match csdlTarget 'wikipedia\.oldlen'
syn match csdlTarget 'wikipedia\.newlen'
syn match csdlTarget 'wikipedia\.changetype'
syn match csdlTarget 'wikipedia\.diff\.from'
syn match csdlTarget 'wikipedia\.diff\.to'
syn match csdlTarget 'wikipedia\.diff\.changes\.added'
syn match csdlTarget 'wikipedia\.diff\.changes\.removed'
syn keyword csdlTarget demographic.twitter_activity
syn match csdlTarget 'demographic\.location\.country'
syn keyword csdlTarget demographic.location.us_state
syn match csdlTarget 'demographic\.location\.city'
syn match csdlTarget 'demographic\.type'
syn match csdlTarget 'demographic\.sex'
syn match csdlTarget 'demographic\.status\.relationship'
syn match csdlTarget 'demographic\.status\.work'
syn keyword csdlTarget demographic.likes_and_interests
syn keyword csdlTarget demographic.first_language
syn match csdlTarget 'demographic\.professions'
syn match csdlTarget 'demographic\.services'
syn keyword csdlTarget demographic.large_accounts_followed
syn keyword csdlTarget demographic.age_range.start
syn keyword csdlTarget demographic.age_range.end
syn match csdlTarget 'demographic\.income\.start'
syn match csdlTarget 'demographic\.income\.end'
syn keyword csdlTarget demographic.main_street.dressed_by
syn keyword csdlTarget demographic.main_street.shop_at
syn keyword csdlTarget demographic.main_street.eat_and_drink_at
syn match csdlTarget 'demographic\.accounts\.categories'
syn match csdlTarget 'tumblr\.activity'
syn match csdlTarget 'tumblr\.source\.blogid'
syn match csdlTarget 'tumblr\.dest\.blogid'
syn match csdlTarget 'tumblr\.dest\.postid'
syn match csdlTarget 'tumblr\.root\.blogid'
syn match csdlTarget 'tumblr\.root\.postid'
syn match csdlTarget 'tumblr\.blogid'
syn keyword csdlTarget tumblr.blog_name
syn match csdlTarget 'tumblr\.type'
syn match csdlTarget 'tumblr\.title'
syn match csdlTarget 'tumblr\.body'
syn match csdlTarget 'tumblr\.text'
syn match csdlTarget 'tumblr\.tags'
syn keyword csdlTarget tumblr.track_name
syn match csdlTarget 'tumblr\.album'
syn match csdlTarget 'tumblr\.link'
syn match csdlTarget 'tumblr\.meta\.url'
syn match csdlTarget 'tumblr\.meta\.type'
syn match csdlTarget 'tumblr\.meta\.description'
syn keyword csdlTarget tumblr.meta.likes_local
syn keyword csdlTarget tumblr.meta.likes_global
syn keyword csdlTarget tumblr.meta.reblogged_global
syn match csdlTarget 'demographic\.gender'
syn match csdlTarget 'flickr\.title'
syn match csdlTarget 'flickr\.content'
syn match csdlTarget 'flickr\.contenttype'
syn match csdlTarget 'flickr\.link'
syn match csdlTarget 'flickr\.author\.name'
syn match csdlTarget 'flickr\.author\.link'
syn match csdlTarget 'flickr\.author\.username'
syn match csdlTarget 'flickr\.type'
syn match csdlTarget 'flickr\.thread'
syn match csdlTarget 'twitter\.text'
syn match csdlTarget 'twitter\.source'
syn match csdlTarget 'twitter\.mentions'
syn keyword csdlTarget twitter.mention_ids
syn match csdlTarget 'twitter\.links'
syn match csdlTarget 'twitter\.domains'
syn keyword csdlTarget twitter.in_reply_to_screen_name
syn keyword csdlTarget twitter.in_reply_to_user_id
syn keyword csdlTarget twitter.in_reply_to_status_id
syn keyword csdlTarget twitter.filter_level
syn match csdlTarget 'twitter\.lang'
syn match csdlTarget 'twitter\.geo'
syn match csdlTarget 'twitter\.user\.description'
syn match csdlTarget 'twitter\.user\.location'
syn keyword csdlTarget twitter.user.statuses_count
syn keyword csdlTarget twitter.user.followers_count
syn keyword csdlTarget twitter.user.follower_ratio
syn keyword csdlTarget twitter.user.profile_age
syn keyword csdlTarget twitter.user.friends_count
syn keyword csdlTarget twitter.user.screen_name
syn match csdlTarget 'twitter\.user\.lang'
syn keyword csdlTarget twitter.user.time_zone
syn match csdlTarget 'twitter\.user\.name'
syn match csdlTarget 'twitter\.user\.id'
syn keyword csdlTarget twitter.user.listed_count
syn match csdlTarget 'twitter\.user\.url'
syn match csdlTarget 'twitter\.user\.verified'
syn keyword csdlTarget twitter.place.place_type
syn match csdlTarget 'twitter\.place\.country'
syn keyword csdlTarget twitter.place.country_code
syn keyword csdlTarget twitter.place.full_name
syn match csdlTarget 'twitter\.place\.name'
syn match csdlTarget 'twitter\.place\.url'
syn match csdlTarget 'twitter\.place\.attributes\.locality'
syn match csdlTarget 'twitter\.place\.attributes\.region'
syn keyword csdlTarget twitter.place.attributes.street_address
syn match csdlTarget 'twitter\.status'
syn match csdlTarget 'twitter\.retweet\.text'
syn match csdlTarget 'twitter\.retweet\.elapsed'
syn match csdlTarget 'twitter\.retweet\.source'
syn keyword csdlTarget twitter.retweet.filter_level
syn match csdlTarget 'twitter\.retweet\.lang'
syn match csdlTarget 'twitter\.retweet\.user\.description'
syn match csdlTarget 'twitter\.retweet\.user\.location'
syn keyword csdlTarget twitter.retweet.user.statuses_count
syn keyword csdlTarget twitter.retweet.user.followers_count
syn keyword csdlTarget twitter.retweet.user.follower_ratio
syn keyword csdlTarget twitter.retweet.user.profile_age
syn keyword csdlTarget twitter.retweet.user.friends_count
syn keyword csdlTarget twitter.retweet.user.screen_name
syn match csdlTarget 'twitter\.retweet\.user\.lang'
syn keyword csdlTarget twitter.retweet.user.time_zone
syn match csdlTarget 'twitter\.retweet\.user\.name'
syn match csdlTarget 'twitter\.retweet\.user\.id'
syn keyword csdlTarget twitter.retweet.user.listed_count
syn match csdlTarget 'twitter\.retweet\.user\.url'
syn match csdlTarget 'twitter\.retweet\.user\.verified'
syn match csdlTarget 'twitter\.retweeted\.id'
syn match csdlTarget 'twitter\.retweeted\.source'
syn keyword csdlTarget twitter.retweeted.in_reply_to_screen_name
syn keyword csdlTarget twitter.retweeted.in_reply_to_user_id_str
syn keyword csdlTarget twitter.retweeted.in_reply_to_status_id
syn match csdlTarget 'twitter\.retweet\.count'
syn match csdlTarget 'twitter\.retweet\.mentions'
syn keyword csdlTarget twitter.retweet.mention_ids
syn match csdlTarget 'twitter\.retweet\.links'
syn match csdlTarget 'twitter\.retweet\.domains'
syn match csdlTarget 'twitter\.retweeted\.user\.description'
syn match csdlTarget 'twitter\.retweeted\.user\.location'
syn keyword csdlTarget twitter.retweeted.user.statuses_count
syn keyword csdlTarget twitter.retweeted.user.followers_count
syn keyword csdlTarget twitter.retweeted.user.follower_ratio
syn keyword csdlTarget twitter.retweeted.user.profile_age
syn keyword csdlTarget twitter.retweeted.user.friends_count
syn keyword csdlTarget twitter.retweeted.user.screen_name
syn match csdlTarget 'twitter\.retweeted\.user\.lang'
syn keyword csdlTarget twitter.retweeted.user.time_zone
syn match csdlTarget 'twitter\.retweeted\.user\.name'
syn match csdlTarget 'twitter\.retweeted\.user\.id'
syn keyword csdlTarget twitter.retweeted.user.listed_count
syn match csdlTarget 'twitter\.retweeted\.user\.url'
syn match csdlTarget 'twitter\.retweeted\.user\.verified'
syn match csdlTarget 'twitter\.retweeted\.geo'
syn keyword csdlTarget twitter.retweeted.place.place_type
syn match csdlTarget 'twitter\.retweeted\.place\.country'
syn keyword csdlTarget twitter.retweeted.place.country_code
syn keyword csdlTarget twitter.retweeted.place.full_name
syn match csdlTarget 'twitter\.retweeted\.place\.name'
syn match csdlTarget 'twitter\.retweeted\.place\.url'
syn match csdlTarget 'twitter\.retweeted\.place\.attributes'
syn match csdlTarget 'twitter\.hashtags'
syn match csdlTarget 'twitter\.retweet\.hashtags'
syn match csdlTarget 'twitter\.media\.type'
syn keyword csdlTarget twitter.media.media_url
syn keyword csdlTarget twitter.media.display_url
syn match csdlTarget 'twitter\.retweet\.media\.type'
syn keyword csdlTarget twitter.retweet.media.media_url
syn keyword csdlTarget twitter.retweet.media.display_url
syn match csdlTarget 'blog\.title'
syn match csdlTarget 'blog\.content'
syn match csdlTarget 'blog\.contenttype'
syn match csdlTarget 'blog\.link'
syn match csdlTarget 'blog\.domain'
syn match csdlTarget 'blog\.author\.name'
syn match csdlTarget 'blog\.author\.link'
syn match csdlTarget 'blog\.author\.avatar'
syn match csdlTarget 'blog\.author\.username'
syn match csdlTarget 'blog\.type'
syn match csdlTarget 'blog\.post\.link'
syn match csdlTarget 'blog\.post\.title'
syn match csdlTarget 'facebook\.author\.name'
syn match csdlTarget 'facebook\.author\.link'
syn match csdlTarget 'facebook\.author\.id'
syn match csdlTarget 'facebook\.author\.avatar'
syn match csdlTarget 'facebook\.message'
syn match csdlTarget 'facebook\.description'
syn match csdlTarget 'facebook\.caption'
syn match csdlTarget 'facebook\.type'
syn match csdlTarget 'facebook\.application'
syn match csdlTarget 'facebook\.source'
syn match csdlTarget 'facebook\.link'
syn match csdlTarget 'facebook\.name'
syn match csdlTarget 'facebook\.to\.names'
syn match csdlTarget 'facebook\.to\.ids'
syn match csdlTarget 'facebook\.og\.title'
syn match csdlTarget 'facebook\.og\.location'
syn match csdlTarget 'facebook\.og\.photos'
syn match csdlTarget 'facebook\.og\.by'
syn match csdlTarget 'facebook\.og\.description'
syn match csdlTarget 'facebook\.og\.type'
syn match csdlTarget 'facebook\.og\.length'
syn match csdlTarget 'facebook\.likes\.count'
syn match csdlTarget 'facebook\.likes\.names'
syn match csdlTarget 'facebook\.likes\.ids'
syn match csdlTarget 'topix\.title'
syn match csdlTarget 'topix\.content'
syn match csdlTarget 'topix\.contenttype'
syn match csdlTarget 'topix\.link'
syn match csdlTarget 'topix\.author\.name'
syn match csdlTarget 'topix\.type'
syn match csdlTarget 'topix\.thread'
syn match csdlTarget 'topix\.author\.location'
syn match csdlTarget 'bitly\.user\.agent'
syn keyword csdlTarget bitly.url_hash
syn match csdlTarget 'bitly\.share\.hash'
syn match csdlTarget 'bitly\.cname'
syn keyword csdlTarget bitly.referring_url
syn keyword csdlTarget bitly.referring_domain
syn match csdlTarget 'bitly\.url'
syn match csdlTarget 'bitly\.domain'
syn keyword csdlTarget bitly.country_code
syn keyword csdlTarget bitly.geo_region_code
syn match csdlTarget 'bitly\.country'
syn keyword csdlTarget bitly.geo_region
syn keyword csdlTarget bitly.geo_city
syn match csdlTarget 'bitly\.geo'
syn match csdlTarget 'bitly\.timezone'
syn match csdlTarget 'trends\.type'
syn match csdlTarget 'trends\.content'
syn match csdlTarget 'trends\.source'
syn match csdlTarget 'board\.title'
syn match csdlTarget 'board\.content'
syn match csdlTarget 'board\.contenttype'
syn match csdlTarget 'board\.link'
syn match csdlTarget 'board\.domain'
syn match csdlTarget 'board\.author\.name'
syn match csdlTarget 'board\.author\.link'
syn match csdlTarget 'board\.author\.avatar'
syn match csdlTarget 'board\.author\.username'
syn match csdlTarget 'board\.type'
syn match csdlTarget 'board\.thread'
syn match csdlTarget 'board\.author\.location'
syn match csdlTarget 'board\.author\.signature'
syn match csdlTarget 'board\.author\.registered'
syn match csdlTarget 'board\.author\.age'
syn match csdlTarget 'board\.author\.gender'
syn match csdlTarget 'video\.title'
syn match csdlTarget 'video\.content'
syn match csdlTarget 'video\.contenttype'
syn match csdlTarget 'video\.domain'
syn match csdlTarget 'video\.author\.name'
syn match csdlTarget 'video\.author\.link'
syn match csdlTarget 'video\.author\.avatar'
syn match csdlTarget 'video\.author\.username'
syn match csdlTarget 'video\.type'
syn match csdlTarget 'video\.videolink'
syn match csdlTarget 'video\.commentslink'
syn match csdlTarget 'video\.duration'
syn match csdlTarget 'video\.thumbnail'
syn match csdlTarget 'video\.category'
syn match csdlTarget 'video\.tags'
syn match csdlTarget '2ch\.title'
syn match csdlTarget '2ch\.content'
syn match csdlTarget '2ch\.contenttype'
syn match csdlTarget '2ch\.link'
syn match csdlTarget '2ch\.author\.name'
syn match csdlTarget '2ch\.type'
syn match csdlTarget '2ch\.thread'
syn match csdlTarget 'dailymotion\.title'
syn match csdlTarget 'dailymotion\.content'
syn match csdlTarget 'dailymotion\.contenttype'
syn match csdlTarget 'dailymotion\.author\.link'
syn match csdlTarget 'dailymotion\.author\.username'
syn match csdlTarget 'dailymotion\.videolink'
syn match csdlTarget 'dailymotion\.duration'
syn match csdlTarget 'dailymotion\.thumbnail'
syn match csdlTarget 'dailymotion\.category'
syn match csdlTarget 'dailymotion\.tags'
syn match csdlTarget 'language\.tag'
syn match csdlTarget 'language\.confidence'
syn match csdlTarget 'digg\.type'
syn match csdlTarget 'digg\.user\.name'
syn match csdlTarget 'digg\.user\.fullname'
syn match csdlTarget 'digg\.user\.registered'
syn match csdlTarget 'digg\.user\.profileviews'
syn match csdlTarget 'digg\.user\.icon'
syn match csdlTarget 'digg\.user\.links'
syn match csdlTarget 'digg\.item\.status'
syn match csdlTarget 'digg\.item\.description'
syn match csdlTarget 'digg\.item\.title'
syn match csdlTarget 'digg\.item\.diggs'
syn match csdlTarget 'digg\.item\.comments'
syn match csdlTarget 'digg\.item\.topic'
syn match csdlTarget 'digg\.comment\.buries'
syn match csdlTarget 'digg\.comment\.diggs'
syn match csdlTarget 'digg\.comment\.text'
syn match csdlTarget 'youtube\.title'
syn match csdlTarget 'youtube\.content'
syn match csdlTarget 'youtube\.contenttype'
syn match csdlTarget 'youtube\.author\.name'
syn match csdlTarget 'youtube\.author\.link'
syn match csdlTarget 'youtube\.type'
syn match csdlTarget 'youtube\.videolink'
syn match csdlTarget 'youtube\.commentslink'
syn match csdlTarget 'youtube\.duration'
syn match csdlTarget 'youtube\.thumbnail'
syn match csdlTarget 'youtube\.category'
syn match csdlTarget 'youtube\.tags'

syn match csdlComment "^\/\/.*$"
syn match csdlComment "^\/\*.*$"
syn match csdlComment "^.*\*\/$"

highlight link csdlKeyword Statement
highlight link csdlOperator Operator
highlight link csdlLogicalOperator Operator
highlight link csdlTarget Constant
highlight link csdlComment Comment
"
let b:current_syntax = "csdl"
PK�j�Zs'/�vim80/syntax/rrst.vimnu�[���" reStructured Text with R statements
" Language: reST with R code chunks
" Maintainer: Alex Zvoleff, azvoleff@mail.sdsu.edu
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change: Tue Jun 28, 2016  08:53AM
"
" CONFIGURATION:
"   To highlight chunk headers as R code, put in your vimrc:
"   let rrst_syn_hl_chunk = 1

if exists("b:current_syntax")
  finish
endif

" load all of the rst info
runtime syntax/rst.vim
unlet b:current_syntax

" load all of the r syntax highlighting rules into @R
syntax include @R syntax/r.vim

" highlight R chunks
if exists("g:rrst_syn_hl_chunk")
  " highlight R code inside chunk header
  syntax match rrstChunkDelim "^\.\. {r" contained
  syntax match rrstChunkDelim "}$" contained
else
  syntax match rrstChunkDelim "^\.\. {r .*}$" contained
endif
syntax match rrstChunkDelim "^\.\. \.\.$" contained
syntax region rrstChunk start="^\.\. {r.*}$" end="^\.\. \.\.$" contains=@R,rrstChunkDelim keepend transparent fold

" also highlight in-line R code
syntax match rrstInlineDelim "`" contained
syntax match rrstInlineDelim ":r:" contained
syntax region rrstInline start=":r: *`" skip=/\\\\\|\\`/ end="`" contains=@R,rrstInlineDelim keepend

hi def link rrstChunkDelim Special
hi def link rrstInlineDelim Special

let b:current_syntax = "rrst"

" vim: ts=8 sw=2
PK�j�Z�h�<'�'�vim80/syntax/sas.vimnu�[���" Vim syntax file
" Language:     SAS
" Maintainer:   Zhen-Huan Hu <wildkeny@gmail.com>
" Original Maintainer: James Kidd <james.kidd@covance.com>
" Version:      3.0.0
" Last Change:  Aug 26, 2017
"
" 2017 Mar 7
"
" Upgrade version number to 3.0. Improvements include:
" - Improve sync speed
" - Largely enhance precision
" - Update keywords in the latest SAS (as of Mar 2017)
" - Add syntaxes for date/time constants
" - Add syntax for data lines
" - Add (back) syntax for TODO in comments
"
" 2017 Feb 9
"
" Add syntax folding 
"
" 2016 Oct 10
"
" Add highlighting for functions
"
" 2016 Sep 14
"
" Change the implementation of syntaxing
" macro function names so that macro parameters same
" as SAS keywords won't be highlighted
" (Thank Joug Raw for the suggestion)
" Add section highlighting:
" - Use /** and **/ to define a section
" - It functions the same as a comment but
"   with different highlighting
"
" 2016 Jun 14
"
" Major changes so upgrade version number to 2.0
" Overhaul the entire script (again). Improvements include:
" - Higher precision
" - Faster synchronization
" - Separate color for control statements
" - Highlight hash and java objects
" - Highlight macro variables in double quoted strings
" - Update all syntaxes based on SAS 9.4
" - Add complete SAS/GRAPH and SAS/STAT procedure syntaxes
" - Add Proc TEMPLATE and GTL syntaxes
" - Add complete DS2 syntaxes
" - Add basic IML syntaxes
" - Many other improvements and bug fixes
" Drop support for VIM version < 600

if version < 600
  syntax clear
elseif exists('b:current_syntax')
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

" Basic SAS syntaxes
syn keyword sasOperator and eq ge gt in le lt ne not of or
syn keyword sasReserved _all_ _automatic_ _char_ _character_ _data_ _infile_ _last_ _n_ _name_ _null_ _num_ _numeric_ _temporary_ _user_ _webout_
" Strings
syn region sasString start=+'+ skip=+''+ end=+'+ contains=@Spell
syn region sasString start=+"+ skip=+""+ end=+"+ contains=sasMacroVariable,@Spell
" Constants
syn match sasNumber /\v<\d+%(\.\d+)=%(>|e[\-+]=\d+>)/ display
syn match sasDateTime /\v(['"])\d{2}%(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d{2}%(\d{2})=:\d{2}:\d{2}%(:\d{2})=%(am|pm)\1dt>/ display
syn match sasDateTime /\v(['"])\d{2}%(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d{2}%(\d{2})=\1d>/ display
syn match sasDateTime /\v(['"])\d{2}:\d{2}%(:\d{2})=%(am|pm)\1t>/ display
" Comments
syn keyword sasTodo todo tbd fixme contained
syn region sasComment start='/\*' end='\*/' contains=sasTodo
syn region sasComment start='\v%(^|;)\s*\zs\%=\*' end=';'me=s-1 contains=sasTodo
syn region sasSectLbl matchgroup=sasSectLblEnds start='/\*\*\s*' end='\s*\*\*/' concealends
" Macros
syn match sasMacroVariable '\v\&+\w+%(\.\w+)=' display
syn match sasMacroReserved '\v\%%(abort|by|copy|display|do|else|end|global|goto|if|include|input|let|list|local|macro|mend|put|return|run|symdel|syscall|sysexec|syslput|sysrput|then|to|until|window|while)>' display
syn region sasMacroFunction matchgroup=sasMacroFunctionName start='\v\%\w+\ze\(' end=')'he=s-1 contains=@sasBasicSyntax,sasMacroFunction
syn region sasMacroFunction matchgroup=sasMacroFunctionName start='\v\%q=sysfunc\ze\(' end=')'he=s-1 contains=@sasBasicSyntax,sasMacroFunction,sasDataStepFunction
" Syntax cluster for basic SAS syntaxes
syn cluster sasBasicSyntax contains=sasOperator,sasReserved,sasNumber,sasDateTime,sasString,sasComment,sasMacroReserved,sasMacroFunction,sasMacroVariable,sasSectLbl

" Formats
syn match sasFormat '\v\$\w+\.' display contained
syn match sasFormat '\v<\w+\.%(\d+>)=' display contained
syn region sasFormatContext start='.' end=';'me=s-1 contained contains=@sasBasicSyntax,sasFormat

" Define global statements that can be accessed out of data step or procedures
syn keyword sasGlobalStatementKeyword catname dm endsas filename footnote footnote1 footnote2 footnote3 footnote4 footnote5 footnote6 footnote7 footnote8 footnote9 footnote10 missing libname lock ods options page quit resetline run sasfile skip sysecho title title1 title2 title3 title4 title5 title6 title7 title8 title9 title10 contained
syn keyword sasGlobalStatementODSKeyword chtml csvall docbook document escapechar epub epub2 epub3 exclude excel graphics html html3 html5 htmlcss imode listing markup output package path pcl pdf preferences phtml powerpoint printer proclabel proctitle ps results rtf select show tagsets trace usegopt verify wml contained
syn match sasGlobalStatement '\v%(^|;)\s*\zs\h\w*>' display transparent contains=sasGlobalStatementKeyword
syn match sasGlobalStatement '\v%(^|;)\s*\zsods>' display transparent contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty

" Data step statements, 9.4
syn keyword sasDataStepFunctionName abs addr addrlong airy allcomb allperm anyalnum anyalpha anycntrl anydigit anyfirst anygraph anylower anyname anyprint anypunct anyspace anyupper anyxdigit arcos arcosh arsin arsinh artanh atan atan2 attrc attrn band beta betainv blackclprc blackptprc blkshclprc blkshptprc blshift bnot bor brshift bxor byte cat catq cats catt catx cdf ceil ceilz cexist char choosec choosen cinv close cmiss cnonct coalesce coalescec collate comb compare compbl compfuzz compged complev compound compress constant convx convxp cos cosh cot count countc countw csc css cumipmt cumprinc curobs cv daccdb daccdbsl daccsl daccsyd dacctab dairy datdif date datejul datepart datetime day dclose dcreate depdb depdbsl depsl depsyd deptab dequote deviance dhms dif digamma dim dinfo divide dnum dopen doptname doptnum dosubl dread dropnote dsname dsncatlgd dur durp effrate envlen erf erfc euclid exist exp fact fappend fclose fcol fcopy fdelete fetch fetchobs fexist fget fileexist filename fileref finance find findc findw finfo finv fipname fipnamel fipstate first floor floorz fmtinfo fnonct fnote fopen foptname foptnum fpoint fpos fput fread frewind frlen fsep fuzz fwrite gaminv gamma garkhclprc garkhptprc gcd geodist geomean geomeanz getoption getvarc getvarn graycode harmean harmeanz hbound hms holiday holidayck holidaycount holidayname holidaynx holidayny holidaytest hour htmldecode htmlencode ibessel ifc ifn index indexc indexw input inputc inputn int intcindex intck intcycle intfit intfmt intget intindex intnx intrr intseas intshift inttest intz iorcmsg ipmt iqr irr jbessel juldate juldate7 kurtosis lag largest lbound lcm lcomb left length lengthc lengthm lengthn lexcomb lexcombi lexperk lexperm lfact lgamma libname libref log log1px log10 log2 logbeta logcdf logistic logpdf logsdf lowcase lperm lpnorm mad margrclprc margrptprc max md5 mdy mean median min minute missing mod modexist module modulec modulen modz month mopen mort msplint mvalid contained
syn keyword sasDataStepFunctionName n netpv nliteral nmiss nomrate normal notalnum notalpha notcntrl notdigit note notfirst notgraph notlower notname notprint notpunct notspace notupper notxdigit npv nvalid nwkdom open ordinal pathname pctl pdf peek peekc peekclong peeklong perm pmt point poisson ppmt probbeta probbnml probbnrm probchi probf probgam probhypr probit probmc probnegb probnorm probt propcase prxchange prxmatch prxparen prxparse prxposn ptrlongadd put putc putn pvp qtr quantile quote ranbin rancau rand ranexp rangam range rank rannor ranpoi rantbl rantri ranuni rename repeat resolve reverse rewind right rms round rounde roundz saving savings scan sdf sec second sha256 sha256hex sha256hmachex sign sin sinh skewness sleep smallest soapweb soapwebmeta soapwipservice soapwipsrs soapws soapwsmeta soundex spedis sqrt squantile std stderr stfips stname stnamel strip subpad substr substrn sum sumabs symexist symget symglobl symlocal sysexist sysget sysmsg sysparm sysprocessid sysprocessname sysprod sysrc system tan tanh time timepart timevalue tinv tnonct today translate transtrn tranwrd trigamma trim trimn trunc tso typeof tzoneid tzonename tzoneoff tzones2u tzoneu2s uniform upcase urldecode urlencode uss uuidgen var varfmt varinfmt varlabel varlen varname varnum varray varrayx vartype verify vformat vformatd vformatdx vformatn vformatnx vformatw vformatwx vformatx vinarray vinarrayx vinformat vinformatd vinformatdx vinformatn vinformatnx vinformatw vinformatwx vinformatx vlabel vlabelx vlength vlengthx vname vnamex vtype vtypex vvalue vvaluex week weekday whichc whichn wto year yieldp yrdif yyq zipcity zipcitydistance zipfips zipname zipnamel zipstate contained
syn keyword sasDataStepCallRoutineName allcomb allcombi allperm cats catt catx compcost execute graycode is8601_convert label lexcomb lexcombi lexperk lexperm logistic missing module poke pokelong prxchange prxdebug prxfree prxnext prxposn prxsubstr ranbin rancau rancomb ranexp rangam rannor ranperk ranperm ranpoi rantbl rantri ranuni scan set sleep softmax sortc sortn stdize streaminit symput symputx system tanh tso vname vnext wto contained
syn region sasDataStepFunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasDataStepFunction
syn region sasDataStepFunctionFormatContext start='(' end=')' contained contains=@sasBasicSyntax,sasDataStepFunction,sasFormat
syn match sasDataStepFunction '\v<\w+\ze\(' contained contains=sasDataStepFunctionName,sasDataStepCallRoutineName nextgroup=sasDataStepFunctionContext
syn match sasDataStepFunction '\v%(input|put)\ze\(' contained contains=sasDataStepFunctionName nextgroup=sasDataStepFunctionFormatContext
syn keyword sasDataStepHashMethodName add check clear definedata definedone definekey delete do_over equals find find_next find_prev first has_next has_prev last next output prev ref remove removedup replace replacedup reset_dup setcur sum sumdup contained
syn region sasDataStepHashMethodContext start='(' end=')' contained contains=@sasBasicSyntax,sasDataStepFunction
syn match sasDataStepHashMethod '\v\.\w+\ze\(' contained contains=sasDataStepHashMethodName nextgroup=sasDataStepHashMethodContext
syn keyword sasDataStepHashAttributeName item_size num_items contained
syn match sasDataStepHashAttribute '\v\.\w+>\ze\_[^(]' display contained contains=sasDataStepHashAttributeName
syn keyword sasDataStepControl continue do end go goto if leave link otherwise over return select to until when while contained
syn keyword sasDataStepControl else then contained nextgroup=sasDataStepStatementKeyword skipwhite skipnl skipempty
syn keyword sasDataStepHashOperator _new_ contained
syn keyword sasDataStepStatementKeyword abort array attrib by call cards cards4 datalines datalines4 dcl declare delete describe display drop error execute file format infile informat input keep label length lines lines4 list lostcard merge modify output put putlog redirect remove rename replace retain set stop update where window contained
syn keyword sasDataStepStatementHashKeyword hash hiter javaobj contained
syn match sasDataStepStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasDataStepStatementKeyword,sasGlobalStatementKeyword
syn match sasDataStepStatement '\v%(^|;)\s*\zs%(dcl|declare)>' display contained contains=sasDataStepStatementKeyword nextgroup=sasDataStepStatementHashKeyword skipwhite skipnl skipempty
syn match sasDataStepStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn match sasDataStepStatement '\v%(^|;)\s*\zs%(format|informat|input|put)>' display contained contains=sasDataStepStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
syn match sasDataStepStatement '\v%(^|;)\s*\zs%(cards|datalines|lines)4=\s*;' display contained contains=sasDataStepStatementKeyword nextgroup=sasDataLine skipwhite skipnl skipempty
syn region sasDataLine start='^' end='^\s*;'me=s-1 contained
syn region sasDataStep matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsdata>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,@sasDataStepSyntax
syn cluster sasDataStepSyntax contains=sasDataStepFunction,sasDataStepHashOperator,sasDataStepHashAttribute,sasDataStepHashMethod,sasDataStepControl,sasDataStepStatement

" Procedures, base SAS, 9.4
syn keyword sasProcStatementKeyword abort age append array attrib audit block break by calid cdfplot change checkbox class classlev column compute contents copy create datarow dbencoding define delete deletefunc deletesubr delimiter device dialog dur endcomp exact exchange exclude explore fin fmtlib fontfile fontpath format formats freq function getnames guessingrows hbar hdfs histogram holidur holifin holistart holivar id idlabel informat inset invalue item key keylabel keyword label line link listfunc listsubr mapmiss mapreduce mean menu messages meta modify opentype outargs outdur outfin output outstart pageby partial picture pie pig plot ppplot printer probplot profile prompter qqplot radiobox ranks rbreak rbutton rebuild record remove rename repair report roptions save select selection separator source star start statistics struct submenu subroutine sum sumby table tables test text trantab truetype type1 types value var vbar ways weight where with write contained
syn match sasProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasProcStatementKeyword,sasGlobalStatementKeyword
syn match sasProcStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn match sasProcStatement '\v%(^|;)\s*\zs%(format|informat)>' display contained contains=sasProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
syn region sasProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc%(\s+\h\w*)=>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasProcStatement
syn region sasProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(catalog|chart|datasets|document|plot)>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasProcStatement

" Procedures, SAS/GRAPH, 9.4
syn keyword sasGraphProcStatementKeyword add area axis bar block bubble2 byline cc ccopy cdef cdelete chart cmap choro copy delete device dial donut exclude flow format fs goptions gout grid group hbar hbar3d hbullet hslider htrafficlight id igout label legend list modify move nobyline note pattern pie pie3d plot plot2 preview prism quit rename replay select scatter speedometer star surface symbol tc tcopy tdef tdelete template tile toggle treplay vbar vbar3d vtrafficlight vbullet vslider where contained
syn match sasGraphProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasGraphProcStatementKeyword,sasGlobalStatementKeyword
syn match sasGraphProcStatement '\v%(^|;)\s*\zsformat>' display contained contains=sasGraphProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
syn region sasGraphProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(g3d|g3grid|ganno|gcontour|gdevice|geocode|gfont|ginside|goptions|gproject|greduce|gremove|mapimport)>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasGraphProcStatement
syn region sasGraphProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(gareabar|gbarline|gchart|gkpi|gmap|gplot|gradar|greplay|gslide|gtile)>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasGraphProcStatement

" Procedures, SAS/STAT, 14.1
syn keyword sasAnalyticalProcStatementKeyword absorb add array assess baseline bayes beginnodata bivar bootstrap bounds by cdfplot cells class cluster code compute condition contrast control coordinates copy cosan cov covtest coxreg der design determ deviance direct directions domain effect effectplot effpart em endnodata equality estimate exact exactoptions factor factors fcs filter fitindex format freq fwdlink gender grid group grow hazardratio height hyperprior id impjoint inset insetgroup invar invlink ippplot lincon lineqs lismod lmtests location logistic loglin lpredplot lsmeans lsmestimate manova matings matrix mcmc mean means missmodel mnar model modelaverage modeleffects monotone mstruct mtest multreg name nlincon nloptions oddsratio onecorr onesamplefreq onesamplemeans onewayanova outfiles output paired pairedfreq pairedmeans parameters parent parms partial partition path pathdiagram pcov performance plot population poststrata power preddist predict predpplot priors process probmodel profile prune pvar ram random ratio reference refit refmodel renameparm repeated replicate repweights response restore restrict retain reweight ridge rmsstd roc roccontrast rules samplesize samplingunit seed size scale score selection show simtests simulate slice std stderr store strata structeq supplementary table tables test testclass testfreq testfunc testid time transform treatments trend twosamplefreq twosamplemeans towsamplesurvival twosamplewilcoxon uds units univar var variance varnames weight where with zeromodel contained
syn match sasAnalyticalProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasAnalyticalProcStatementKeyword,sasGlobalStatementKeyword
syn match sasAnalyticalProcStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn match sasAnalyticalProcStatement '\v%(^|;)\s*\zsformat>' display contained contains=sasAnalyticalProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
syn region sasAnalyticalProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(aceclus|adaptivereg|bchoice|boxplot|calis|cancorr|candisc|cluster|corresp|discrim|distance|factor|fastclus|fmm|freq|gam|gampl|gee|genmod|glimmix|glmmod|glmpower|glmselect|hpcandisc|hpfmm|hpgenselect|hplmixed|hplogistic|hpmixed|hpnlmod|hppls|hpprincomp|hpquantselect|hpreg|hpsplit|iclifetest|icphreg|inbreed|irt|kde|krige2d|lattice|lifereg|lifetest|loess|logistic|mcmc|mds|mi|mianalyze|mixed|modeclus|multtest|nested|nlin|nlmixed|npar1way|orthoreg|phreg|plm|pls|power|princomp|prinqual|probit|quantlife|quantreg|quantselect|robustreg|rsreg|score|seqdesign|seqtest|sim2d|simnormal|spp|stdize|stdrate|stepdisc|surveyfreq|surveyimpute|surveylogistic|surveymeans|surveyphreg|surveyreg|surveyselect|tpspline|transreg|tree|ttest|varclus|varcomp|variogram)>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepControl,sasDataStepFunction,sasAnalyticalProcStatement
syn region sasAnalyticalProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(anova|arima|catmod|factex|glm|model|optex|plan|reg)>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepControl,sasDataStepFunction,sasAnalyticalProcStatement

" Procedures, ODS graphics, 9.4
syn keyword sasODSGraphicsProcStatementKeyword band block bubble by colaxis compare dattrvar density dot dropline dynamic ellipse ellipseparm format fringe gradlegend hbar hbarbasic hbarparm hbox heatmap heatmapparm highlow histogram hline inset keylegend label lineparm loess matrix needle parent panelby pbspline plot polygon refline reg rowaxis scatter series spline step style styleattrs symbolchar symbolimage text vbar vbarbasic vbarparm vbox vector vline waterfall where xaxis x2axis yaxis y2axis yaxistable contained
syn match sasODSGraphicsProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasODSGraphicsProcStatementKeyword,sasGlobalStatementKeyword
syn match sasODSGraphicsProcStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn match sasODSGraphicsProcStatement '\v%(^|;)\s*\zsformat>' display contained contains=sasODSGraphicsProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
syn region sasODSGraphicsProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(sgdesign|sgpanel|sgplot|sgrender|sgscatter)>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasODSGraphicsProcStatement

" Proc TEMPLATE, 9.4
syn keyword sasProcTemplateClause as into
syn keyword sasProcTemplateStatementKeyword block break cellstyle class close column compute continue define delete delstream do done dynamic edit else end eval flush footer header import iterate link list mvar ndent next nmvar notes open path put putl putlog putq putstream putvars replace set source stop style test text text2 text3 translate trigger unblock unset xdent contained
syn keyword sasProcTemplateStatementComplexKeyword cellvalue column crosstabs event footer header statgraph style table tagset contained
syn keyword sasProcTemplateGTLStatementKeyword axislegend axistable bandplot barchart barchartparm begingraph beginpolygon beginpolyline bihistogram3dparm blockplot boxplot boxplotparm bubbleplot continuouslegend contourplotparm dendrogram discretelegend drawarrow drawimage drawline drawoval drawrectangle drawtext dropline ellipse ellipseparm endgraph endinnermargin endlayout endpolygon endpolyline endsidebar entry entryfootnote entrytitle fringeplot heatmap heatmapparm highlowplot histogram histogramparm innermargin layout legenditem legendtextitems linechart lineparm loessplot mergedlegend modelband needleplot pbsplineplot polygonplot referenceline regressionplot scatterplot seriesplot sidebar stepplot surfaceplotparm symbolchar symbolimage textplot vectorplot waterfallchart contained
syn keyword sasProcTemplateGTLComplexKeyword datalattice datapanel globallegend gridded lattice overlay overlayequated overlay3d region contained
syn match sasProcTemplateStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasProcTemplateStatementKeyword,sasProcTemplateGTLStatementKeyword,sasGlobalStatementKeyword
syn match sasProcTemplateStatement '\v%(^|;)\s*\zsdefine>' display contained contains=sasProcTemplateStatementKeyword nextgroup=sasProcTemplateStatementComplexKeyword skipwhite skipnl skipempty
syn match sasProcTemplateStatement '\v%(^|;)\s*\zslayout>' display contained contains=sasProcTemplateGTLStatementKeyword nextgroup=sasProcTemplateGTLComplexKeyword skipwhite skipnl skipempty
syn match sasProcTemplateStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn region sasProcTemplate matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+template>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasProcTemplateClause,sasProcTemplateStatement

" Proc SQL, 9.4
syn keyword sasProcSQLFunctionName avg count css cv freq max mean median min n nmiss prt range std stderr sum sumwgt t uss var contained
syn region sasProcSQLFunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasProcSQLFunction
syn match sasProcSQLFunction '\v<\w+\ze\(' contained contains=sasProcSQLFunctionName,sasDataStepFunctionName nextgroup=sasProcSQLFunctionContext
syn keyword sasProcSQLClause add asc between by calculated cascade case check connection constraint cross desc distinct drop else end escape except exists foreign from full group having in inner intersect into is join key left libname like modify natural newline notrim null on order outer primary references restrict right separated set then to trimmed union unique user using values when where contained
syn keyword sasProcSQLClause as contained nextgroup=sasProcSQLStatementKeyword skipwhite skipnl skipempty
syn keyword sasProcSQLStatementKeyword connect delete disconnect execute insert reset select update validate contained
syn keyword sasProcSQLStatementComplexKeyword alter create describe drop contained nextgroup=sasProcSQLStatementNextKeyword skipwhite skipnl skipempty
syn keyword sasProcSQLStatementNextKeyword index table view contained
syn match sasProcSQLStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasProcSQLStatementKeyword,sasGlobalStatementKeyword
syn match sasProcSQLStatement '\v%(^|;)\s*\zs%(alter|create|describe|drop)>' display contained contains=sasProcSQLStatementComplexKeyword nextgroup=sasProcSQLStatementNextKeyword skipwhite skipnl skipempty
syn match sasProcSQLStatement '\v%(^|;)\s*\zsvalidate>' display contained contains=sasProcSQLStatementKeyword nextgroup=sasProcSQLStatementKeyword,sasProcSQLStatementComplexKeyword skipwhite skipnl skipempty
syn match sasProcSQLStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty 
syn region sasProcSQL matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+sql>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasProcSQLFunction,sasProcSQLClause,sasProcSQLStatement

" SAS/DS2, 9.4
syn keyword sasDS2FunctionName abs anyalnum anyalpha anycntrl anydigit anyfirst anygraph anylower anyname anyprint anypunct anyspace anyupper anyxdigit arcos arcosh arsin arsinh artanh atan atan2 band beta betainv blackclprc blackptprc blkshclprc blkshptprc blshift bnot bor brshift bxor byte cat cats catt catx ceil ceilz choosec choosen cmp cmpt coalesce coalescec comb compare compbl compfuzz compound compress constant convx convxp cos cosh count countc countw css cumipmt cumprinc cv datdif date datejul datepart datetime day dequote deviance dhms dif digamma dim divide dur durp effrate erf erfc exp fact find findc findw floor floorz fmtinfo fuzz gaminv gamma garkhclprc garkhptprc gcd geodist geomean geomeanz harmean harmeanz hbound hms holiday hour index indexc indexw inputc inputn int intcindex intck intcycle intdt intfit intget intindex intnest intnx intrr intseas intshift inttest intts intz ipmt iqr irr juldate juldate7 kcount kstrcat kstrip kupdate kupdates kurtosis lag largest lbound lcm left length lengthc lengthm lengthn lgamma log logbeta log10 log1px log2 lowcase mad margrclprc margrptprc max md5 mdy mean median min minute missing mod modz month mort n ndims netpv nmiss nomrate notalnum notalpha notcntrl notdigit notfirst notgraph notlower notname notprint notpunct notspace notupper notxdigit npv null nwkdom ordinal pctl perm pmt poisson power ppmt probbeta probbnml probbnrm probchi probdf probf probgam probhypr probit probmc probmed probnegb probnorm probt prxchange prxmatch prxparse prxposn put pvp qtr quote ranbin rancau rand ranexp rangam range rank rannor ranpoi rantbl rantri ranuni repeat reverse right rms round rounde roundz savings scan sec second sha256hex sha256hmachex sign sin sinh skewness sleep smallest sqlexec sqrt std stderr streaminit strip substr substrn sum sumabs tan tanh time timepart timevalue tinv to_date to_double to_time to_timestamp today translate transtrn tranwrd trigamma trim trimn trunc uniform upcase uss uuidgen var verify vformat vinarray vinformat vlabel vlength vname vtype week weekday whichc whichn year yieldp yrdif yyq contained
syn region sasDS2FunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasDS2Function
syn match sasDS2Function '\v<\w+\ze\(' contained contains=sasDS2FunctionName nextgroup=sasDS2FunctionContext
syn keyword sasDS2Control continue data dcl declare do drop else end enddata endpackage endthread from go goto if leave method otherwise package point return select then thread to until when while contained
syn keyword sasDS2StatementKeyword array by forward keep merge output put rename retain set stop vararray varlist contained
syn keyword sasDS2StatementComplexKeyword package thread contained
syn match sasDS2Statement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasDS2StatementKeyword,sasGlobalStatementKeyword
syn match sasDS2Statement '\v%(^|;)\s*\zs%(dcl|declare|drop)>' display contained contains=sasDS2StatementKeyword nextgroup=sasDS2StatementComplexKeyword skipwhite skipnl skipempty
syn match sasDS2Statement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn region sasDS2 matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+ds2>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDS2Function,sasDS2Control,sasDS2Statement

" SAS/IML, 14.1
syn keyword sasIMLFunctionName abs all allcomb allperm any apply armasim bin blankstr block branks bspline btran byte char choose col colvec concat contents convexit corr corr2cov countmiss countn countunique cov cov2corr covlag cshape cusum cuprod cv cvexhull datasets design designf det diag dif dimension distance do duration echelon eigval eigvec element exp expmatrix expandgrid fft forward froot full gasetup geomean ginv hadamard half hankel harmean hdir hermite homogen i ifft insert int inv invupdt isempty isskipped j jroot kurtosis lag length loc log logabsdet mad magic mahalanobis max mean median min mod moduleic modulein name ncol ndx2sub nleng norm normal nrow num opscal orpol parentname palette polyroot prod product pv quartile rancomb randdirichlet randfun randmultinomial randmvt randnormal randwishart ranperk ranperm range rank ranktie rates ratio remove repeat root row rowcat rowcatc rowvec rsubstr sample setdif shape shapecol skewness solve sparse splinev spot sqrsym sqrt sqrvech ssq standard std storage sub2ndx substr sum sweep symsqr t toeplitz trace trisolv type uniform union unique uniqueby value var vecdiag vech xmult xsect yield contained
syn keyword sasIMLCallRoutineName appcort armacov armalik bar box change comport delete eigen execute exportdatasettor exportmatrixtor farmacov farmafit farmalik farmasim fdif gaend gagetmem gagetval gainit gareeval garegen gasetcro gasetmut gasetobj gasetsel gblkvp gblkvpd gclose gdelete gdraw gdrawl geneig ggrid ginclude gopen gpie gpiexy gpoint gpoly gport gportpop gportstk gscale gscript gset gshow gsorth gstart gstop gstrlen gtext gvtext gwindow gxaxis gyaxis heatmapcont heatmapdisc histogram importdatasetfromr importmatrixfromr ipf itsolver kalcvf kalcvs kaldff kaldfs lav lcp lms lp lpsolve lts lupdt marg maxqform mcd milpsolve modulei mve nlpcg nlpdd nlpfdd nlpfea nlphqn nlplm nlpnms nlpnra nlpnrr nlpqn nlpqua nlptr ode odsgraph ortvec pgraf push qntl qr quad queue randgen randseed rdodt rupdt rename rupdt rzlind scatter seq seqscale seqshift seqscale seqshift series solvelin sort sortndx sound spline splinec svd tabulate tpspline tpsplnev tsbaysea tsdecomp tsmlocar tsmlomar tsmulmar tspears tspred tsroot tstvcar tsunimar valset varmacov varmalik varmasim vnormal vtsroot wavft wavget wavift wavprint wavthrsh contained
syn region sasIMLFunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasIMLFunction
syn match sasIMLFunction '\v<\w+\ze\(' contained contains=sasIMLFunctionName,sasDataStepFunction nextgroup=sasIMLFunctionContext
syn keyword sasIMLControl abort by do else end finish goto if link pause quit resume return run start stop then to until while contained
syn keyword sasIMLStatementKeyword append call close closefile create delete display edit file find force free index infile input list load mattrib print purge read remove replace reset save setin setout show sort store summary use window contained
syn match sasIMLStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasIMLStatementKeyword,sasGlobalStatementKeyword
syn match sasIMLStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn region sasIML matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+iml>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasIMLFunction,sasIMLControl,sasIMLStatement

" Macro definition
syn region sasMacro start='\v\%macro>' end='\v\%mend>' fold keepend contains=@sasBasicSyntax,@sasDataStepSyntax,sasDataStep,sasProc,sasODSGraphicsProc,sasGraphProc,sasAnalyticalProc,sasProcTemplate,sasProcSQL,sasDS2,sasIML

" Define default highlighting
hi def link sasComment Comment
hi def link sasTodo Delimiter
hi def link sasSectLbl Title
hi def link sasSectLblEnds Comment
hi def link sasNumber Number
hi def link sasDateTime Constant
hi def link sasString String
hi def link sasDataStepControl Keyword
hi def link sasProcTemplateClause Keyword
hi def link sasProcSQLClause Keyword
hi def link sasDS2Control Keyword
hi def link sasIMLControl Keyword
hi def link sasOperator Operator
hi def link sasGlobalStatementKeyword Statement
hi def link sasGlobalStatementODSKeyword Statement
hi def link sasSectionKeyword Statement
hi def link sasDataStepFunctionName Function
hi def link sasDataStepCallRoutineName Function
hi def link sasDataStepStatementKeyword Statement
hi def link sasDataStepStatementHashKeyword Statement
hi def link sasDataStepHashOperator Operator
hi def link sasDataStepHashMethodName Function
hi def link sasDataStepHashAttributeName Identifier
hi def link sasProcStatementKeyword Statement
hi def link sasODSGraphicsProcStatementKeyword Statement
hi def link sasGraphProcStatementKeyword Statement
hi def link sasAnalyticalProcStatementKeyword Statement
hi def link sasProcTemplateStatementKeyword Statement
hi def link sasProcTemplateStatementComplexKeyword Statement
hi def link sasProcTemplateGTLStatementKeyword Statement
hi def link sasProcTemplateGTLComplexKeyword Statement
hi def link sasProcSQLFunctionName Function
hi def link sasProcSQLStatementKeyword Statement
hi def link sasProcSQLStatementComplexKeyword Statement
hi def link sasProcSQLStatementNextKeyword Statement
hi def link sasDS2FunctionName Function
hi def link sasDS2StatementKeyword Statement
hi def link sasIMLFunctionName Function
hi def link sasIMLCallRoutineName Function
hi def link sasIMLStatementKeyword Statement
hi def link sasMacroReserved PreProc
hi def link sasMacroVariable Define
hi def link sasMacroFunctionName Define
hi def link sasDataLine SpecialChar
hi def link sasFormat SpecialChar
hi def link sasReserved Special

" Syncronize from beginning to keep large blocks from losing
" syntax coloring while moving through code.
syn sync fromstart

let b:current_syntax = "sas"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���vim80/syntax/jovial.vimnu�[���" Vim syntax file
" Language: JOVIAL J73
" Version: 1.2
" Maintainer: Paul McGinnis <paulmcg@aol.com>
" Last Change: 2011/06/17
" Remark: Based on MIL-STD-1589C for JOVIAL J73 language

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn keyword jovialTodo TODO FIXME XXX contained

" JOVIAL beads - first digit is number of bits, [0-9A-V] is the bit value
" representing 0-31 (for 5 bits on the bead)
syn match jovialBitConstant "[1-5]B'[0-9A-V]'"

syn match jovialNumber "\<\d\+\>"

syn match jovialFloat "\d\+E[-+]\=\d\+"
syn match jovialFloat "\d\+\.\d*\(E[-+]\=\d\+\)\="
syn match jovialFloat "\.\d\+\(E[-+]\=\d\+\)\="

syn region jovialComment start=/"/ end=/"/ contains=jovialTodo
syn region jovialComment start=/%/ end=/%/ contains=jovialTodo

" JOVIAL variable names. This rule is to prevent conflicts with strings.
" Handle special case where ' character can be part of a JOVIAL variable name.
syn match jovialIdentifier "[A-Z\$][A-Z0-9'\$]\+"

syn region jovialString start="\s*'" skip=/''/ end=/'/ oneline

" JOVIAL compiler directives -- see Section 9 in MIL-STD-1589C
syn region jovialPreProc start="\s*![A-Z]\+" end=/;/

syn keyword jovialOperator AND OR NOT XOR EQV MOD

" See Section 2.1 in MIL-STD-1589C for data types
syn keyword jovialType ITEM B C P V
syn match jovialType "\<S\(,R\|,T\|,Z\)\=\>"
syn match jovialType "\<U\(,R\|,T\|,Z\)\=\>"
syn match jovialType "\<F\(,R\|,T\|,Z\)\=\>"
syn match jovialType "\<A\(,R\|,T\|,Z\)\=\>"

syn keyword jovialStorageClass STATIC CONSTANT PARALLEL BLOCK N M D W

syn keyword jovialStructure TABLE STATUS

syn keyword jovialConstant NULL

syn keyword jovialBoolean FALSE TRUE

syn keyword jovialTypedef TYPE

syn keyword jovialStatement ABORT BEGIN BY BYREF BYRES BYVAL CASE COMPOOL
syn keyword jovialStatement DEF DEFAULT DEFINE ELSE END EXIT FALLTHRU FOR
syn keyword jovialStatement GOTO IF INLINE INSTANCE LABEL LIKE OVERLAY POS
syn keyword jovialStatement PROC PROGRAM REC REF RENT REP RETURN START STOP
syn keyword jovialStatement TERM THEN WHILE

" JOVIAL extensions, see section 8.2.2 in MIL-STD-1589C
syn keyword jovialStatement CONDITION ENCAPSULATION EXPORTS FREE HANDLER IN INTERRUPT NEW
syn keyword jovialStatement PROTECTED READONLY REGISTER SIGNAL TO UPDATE WITH WRITEONLY ZONE

" implementation specific constants and functions, see section 1.4 in MIL-STD-1589C
syn keyword jovialConstant BITSINBYTE BITSINWORD LOCSINWORD
syn keyword jovialConstant BYTESINWORD BITSINPOINTER INTPRECISION
syn keyword jovialConstant FLOATPRECISION FIXEDPRECISION FLOATRADIX
syn keyword jovialConstant MAXFLOATPRECISION MAXFIXEDPRECISION
syn keyword jovialConstant MAXINTSIZE MAXBYTES MAXBITS
syn keyword jovialConstant MAXTABLESIZE MAXSTOP MINSTOP MAXSIGDIGITS
syn keyword jovialFunction BYTEPOS MAXINT MININT
syn keyword jovialFunction IMPLFLOATPRECISION IMPLFIXEDPRECISION IMPLINTSIZE
syn keyword jovialFunction MINSIZE MINFRACTION MINSCALE MINRELPRECISION
syn keyword jovialFunction MAXFLOAT MINFLOAT FLOATRELPRECISION
syn keyword jovialFunction FLOATUNDERFLOW MAXFIXED MINFIXED

" JOVIAL built-in functions
syn keyword jovialFunction LOC NEXT BIT BYTE SHIFTL SHIFTR ABS SGN BITSIZE
syn keyword jovialFunction BYTESIZE WORDSIZE LBOUND UBOUND NWDSEN FIRST
syn keyword jovialFunction LAST NENT

" Define the default highlighting.
hi def link jovialBitConstant Number
hi def link jovialBoolean Boolean
hi def link jovialComment Comment
hi def link jovialConstant Constant
hi def link jovialFloat Float
hi def link jovialFunction Function
" No color highlighting for JOVIAL identifiers. See above,
" this is to prevent confusion with JOVIAL strings
"hi def link jovialIdentifier Identifier
hi def link jovialNumber Number
hi def link jovialOperator Operator
hi def link jovialPreProc PreProc
hi def link jovialStatement Statement
hi def link jovialStorageClass StorageClass
hi def link jovialString String
hi def link jovialStructure Structure
hi def link jovialTodo Todo
hi def link jovialType Type
hi def link jovialTypedef Typedef


let b:current_syntax = "jovial"

" vim: ts=8
PK�j�Z��g݆
�
vim80/syntax/gnash.vimnu�[���" Vim syntax file
" Maintainer: 	Thilo Six
" Contact:	<vim-dev at vim dot org>
"		http://www.vim.org/maillist.php#vim-dev
"
" Description: 	highlight gnash configuration files
"		http://www.gnu.org/software/gnash/manual/gnashuser.html#gnashrc
" File:		runtime/syntax/gnash.vim
" Last Change: 	2012 May 19
" Modeline:	vim: ts=8:sw=2:sts=2:
"
" Credits:	derived from Nikolai Weibulls readline.vim
"
" License:	VIM License
"		Vim is Charityware, see ":help Uganda"
"

" quit when a syntax file was already loaded
if exists("b:current_syntax") || &compatible
    finish
endif

syn case match
syn keyword GnashTodo	    contained TODO FIXME XXX NOTE

" Comments
syn match   GnashComment    "^#.*$"   contains=@Spell,GnashTodo
syn match   GnashComment    "\s#.*$"  contains=@Spell,GnashTodo

syn match   GnashNumber	    display '\<\d\+\>'

syn case ignore
syn keyword GnashOn	    ON YES TRUE
syn keyword GnashOff	    OFF NO FALSE

syn match GnashSet	    '^\s*set\>'
syn match GnashSet	    '^\s*append\>'

syn match GnashKeyword	    '\<CertDir\>'
syn match GnashKeyword      '\<ASCodingErrorsVerbosity\>'
syn match GnashKeyword      '\<CertFile\>'
syn match GnashKeyword      '\<EnableExtensions\>'
syn match GnashKeyword      '\<HWAccel\>'
syn match GnashKeyword      '\<LCShmKey\>'
syn match GnashKeyword      '\<LocalConnection\>'
syn match GnashKeyword      '\<MalformedSWFVerbosity\>'
syn match GnashKeyword      '\<Renderer\>'
syn match GnashKeyword      '\<RootCert\>'
syn match GnashKeyword      '\<SOLReadOnly\>'
syn match GnashKeyword      '\<SOLSafeDir\>'
syn match GnashKeyword      '\<SOLreadonly\>'
syn match GnashKeyword      '\<SOLsafedir\>'
syn match GnashKeyword      '\<StartStopped\>'
syn match GnashKeyword      '\<StreamsTimeout\>'
syn match GnashKeyword      '\<URLOpenerFormat\>'
syn match GnashKeyword      '\<XVideo\>'
syn match GnashKeyword      '\<actionDump\>'
syn match GnashKeyword      '\<blacklist\>'
syn match GnashKeyword      '\<debugger\>'
syn match GnashKeyword      '\<debuglog\>'
syn match GnashKeyword      '\<delay\>'
syn match GnashKeyword      '\<enableExtensions\>'
syn match GnashKeyword      '\<flashSystemManufacturer\>'
syn match GnashKeyword      '\<flashSystemOS\>'
syn match GnashKeyword      '\<flashVersionString\>'
syn match GnashKeyword      '\<ignoreFSCommand\>'
syn match GnashKeyword      '\<ignoreShowMenu\>'
syn match GnashKeyword      '\<insecureSSL\>'
syn match GnashKeyword      '\<localSandboxPath\>'
syn match GnashKeyword      '\<localdomain\>'
syn match GnashKeyword      '\<localhost\>'
syn match GnashKeyword      '\<microphoneDevice\>'
syn match GnashKeyword      '\<parserDump\>'
syn match GnashKeyword      '\<pluginsound\>'
syn match GnashKeyword      '\<quality\>'
syn match GnashKeyword      '\<solLocalDomain\>'
syn match GnashKeyword      '\<sound\>'
syn match GnashKeyword      '\<splashScreen\>'
syn match GnashKeyword      '\<startStopped\>'
syn match GnashKeyword      '\<streamsTimeout\>'
syn match GnashKeyword      '\<urlOpenerFormat\>'
syn match GnashKeyword      '\<verbosity\>'
syn match GnashKeyword      '\<webcamDevice\>'
syn match GnashKeyword      '\<whitelist\>'
syn match GnashKeyword      '\<writelog\>'

hi def link GnashOn	    Identifier
hi def link GnashOff	    Preproc
hi def link GnashComment    Comment
hi def link GnashTodo	    Todo
hi def link GnashNumber	    Type
hi def link GnashSet	    String
hi def link GnashKeyword    Keyword

let b:current_syntax = "gnash"

PK�j�Z�
���
�
vim80/syntax/tssgm.vimnu�[���" Vim syntax file
" Language:     TSS (Thermal Synthesizer System) Geometry
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.tssgm
" URL:		http://www.naglenet.org/vim/syntax/tssgm.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
"
" Begin syntax definitions for tss geomtery file.
"

" Define keywords for TSS
syn keyword tssgmParam  units mirror param active sides submodel include
syn keyword tssgmParam  iconductor nbeta ngamma optics material thickness color
syn keyword tssgmParam  initial_temp
syn keyword tssgmParam  initial_id node_ids node_add node_type
syn keyword tssgmParam  gamma_boundaries gamma_add beta_boundaries
syn keyword tssgmParam  p1 p2 p3 p4 p5 p6 rot1 rot2 rot3 tx ty tz

syn keyword tssgmSurfType  rectangle trapezoid disc ellipse triangle
syn keyword tssgmSurfType  polygon cylinder cone sphere ellipic-cone
syn keyword tssgmSurfType  ogive torus box paraboloid hyperboloid ellipsoid
syn keyword tssgmSurfType  quadrilateral trapeziod

syn keyword tssgmArgs   OUT IN DOWN BOTH DOUBLE NONE SINGLE RADK CC FECC
syn keyword tssgmArgs   white red blue green yellow orange violet pink
syn keyword tssgmArgs   turquoise grey black
syn keyword tssgmArgs   Arithmetic Boundary Heater

syn keyword tssgmDelim  assembly

syn keyword tssgmEnd    end

syn keyword tssgmUnits  cm feet meters inches
syn keyword tssgmUnits  Celsius Kelvin Fahrenheit Rankine



" Define matches for TSS
syn match  tssgmDefault     "^DEFAULT/LENGTH = \(ft\|in\|cm\|m\)"
syn match  tssgmDefault     "^DEFAULT/TEMP = [CKFR]"

syn match  tssgmComment       /comment \+= \+".*"/ contains=tssParam,tssgmCommentString
syn match  tssgmCommentString /".*"/ contained

syn match  tssgmSurfIdent   " \S\+\.\d\+ \=$"

syn match  tssgmString      /"[^" ]\+"/ms=s+1,me=e-1 contains=ALLBUT,tssInteger

syn match  tssgmArgs	    / = [xyz],"/ms=s+3,me=e-2

syn match  tssgmInteger     "-\=\<[0-9]*\>"
syn match  tssgmFloat       "-\=\<[0-9]*\.[0-9]*"
syn match  tssgmScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link tssgmParam		Statement
hi def link tssgmSurfType		Type
hi def link tssgmArgs		Special
hi def link tssgmDelim		Typedef
hi def link tssgmEnd		Macro
hi def link tssgmUnits		Special

hi def link tssgmDefault		SpecialComment
hi def link tssgmComment		Statement
hi def link tssgmCommentString	Comment
hi def link tssgmSurfIdent		Identifier
hi def link tssgmString		Delimiter

hi def link tssgmInteger		Number
hi def link tssgmFloat		Float
hi def link tssgmScientific	Float



let b:current_syntax = "tssgm"

" vim: ts=8 sw=2
PK�j�Z��f�
�
vim80/syntax/vroom.vimnu�[���" Vim syntax file
" Language:	Vroom (vim testing and executable documentation)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-vroom)
" Last Change:	2014 Jul 23

" quit when a syntax file was already loaded
if exists('b:current_syntax')
  finish
endif

let s:cpo_save = &cpo
set cpo-=C


syn include @vroomVim syntax/vim.vim
syn include @vroomShell syntax/sh.vim

syntax region vroomAction
    \ matchgroup=vroomOutput
    \ start='\m^  ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax region vroomAction
    \ matchgroup=vroomOutput
    \ start='\m^  & ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax match vroomOutput '\m^  &$'

syntax region vroomMessageBody
    \ matchgroup=vroomMessage
    \ start='\m^  \~ ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax region vroomColoredAction
    \ matchgroup=vroomInput
    \ start='\m^  > ' end='\m$' keepend
    \ contains=vimNotation,vroomControlBlock
syntax region vroomAction
    \ matchgroup=vroomInput
    \ start='\m^  % ' end='\m$' keepend
    \ contains=vimNotation,vroomControlBlock

syntax region vroomAction
    \ matchgroup=vroomContinuation
    \ start='\m^  |' end='\m$' keepend

syntax region vroomAction
    \ start='\m^  \ze:' end='\m$' keepend
    \ contains=@vroomVim,vroomControlBlock

syntax region vroomAction
    \ matchgroup=vroomDirective
    \ start='\m^  @\i\+' end='\m$' keepend
    \ contains=vroomControlBlock

syntax region vroomSystemAction
    \ matchgroup=vroomSystem
    \ start='\m^  ! ' end='\m$' keepend
    \ contains=@vroomShell,vroomControlBlock

syntax region vroomHijackAction
    \ matchgroup=vroomHijack
    \ start='\m^  \$ ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax match vroomControlBlock contains=vroomControlEscape,@vroomControls
    \ '\v \([^&()][^()]*\)$'

syntax match vroomControlEscape '\m&' contained

syntax cluster vroomControls
    \ contains=vroomDelay,vroomMode,vroomBuffer,vroomRange
    \,vroomChannel,vroomBind,vroomStrictness
syntax match vroomRange '\v\.(,\+?(\d+|\$)?)?' contained
syntax match vroomRange '\v\d*,\+?(\d+|\$)?' contained
syntax match vroomBuffer '\v\d+,@!' contained
syntax match vroomDelay '\v\d+(\.\d+)?s' contained
syntax match vroomMode '\v<%(regex|glob|verbatim)' contained
syntax match vroomChannel '\v<%(stderr|stdout|command|status)>' contained
syntax match vroomBind '\v<bind>' contained
syntax match vroomStrictness '\v\<%(STRICT|RELAXED|GUESS-ERRORS)\>' contained

highlight default link vroomInput Identifier
highlight default link vroomDirective vroomInput
highlight default link vroomControlBlock vroomInput
highlight default link vroomSystem vroomInput
highlight default link vroomOutput Statement
highlight default link vroomContinuation Constant
highlight default link vroomHijack Special
highlight default link vroomColoredAction Statement
highlight default link vroomSystemAction vroomSystem
highlight default link vroomHijackAction vroomHijack
highlight default link vroomMessage vroomOutput
highlight default link vroomMessageBody Constant

highlight default link vroomControlEscape Special
highlight default link vroomBuffer vroomInput
highlight default link vroomRange Include
highlight default link vroomMode Constant
highlight default link vroomDelay Type
highlight default link vroomStrictness vroomMode
highlight default link vroomChannel vroomMode
highlight default link vroomBind vroomMode

let b:current_syntax = 'vroom'


let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��&���vim80/syntax/sqlj.vimnu�[���" Vim syntax file
" Language:	sqlj
" Maintainer:	Andreas Fischbach <afisch@altavista.com>
"		This file is based on sql.vim && java.vim (thanx)
"		with a handful of additional sql words and still
"		a subset of whatever standard
" Last change:	31th Dec 2001

" au BufNewFile,BufRead *.sqlj so $VIM/syntax/sqlj.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

" Read the Java syntax to start with
source <sfile>:p:h/java.vim

" SQLJ extentions
" The SQL reserved words, defined as keywords.

syn case ignore
syn keyword sqljSpecial   null

syn keyword sqljKeyword	access add as asc by check cluster column
syn keyword sqljKeyword	compress connect current decimal default
syn keyword sqljKeyword	desc else exclusive file for from group
syn keyword sqljKeyword	having identified immediate increment index
syn keyword sqljKeyword	initial into is level maxextents mode modify
syn keyword sqljKeyword	nocompress nowait of offline on online start
syn keyword sqljKeyword	successful synonym table then to trigger uid
syn keyword sqljKeyword	unique user validate values view whenever
syn keyword sqljKeyword	where with option order pctfree privileges
syn keyword sqljKeyword	public resource row rowlabel rownum rows
syn keyword sqljKeyword	session share size smallint

syn keyword sqljKeyword  fetch database context iterator field join
syn keyword sqljKeyword  foreign outer inner isolation left right
syn keyword sqljKeyword  match primary key

syn keyword sqljOperator	not and or
syn keyword sqljOperator	in any some all between exists
syn keyword sqljOperator	like escape
syn keyword sqljOperator union intersect minus
syn keyword sqljOperator prior distinct
syn keyword sqljOperator	sysdate

syn keyword sqljOperator	max min avg sum count hex

syn keyword sqljStatement	alter analyze audit comment commit create
syn keyword sqljStatement	delete drop explain grant insert lock noaudit
syn keyword sqljStatement	rename revoke rollback savepoint select set
syn keyword sqljStatement	 truncate update begin work

syn keyword sqljType		char character date long raw mlslabel number
syn keyword sqljType		rowid varchar varchar2 float integer

syn keyword sqljType		byte text serial


" Strings and characters:
syn region sqljString		start=+"+  skip=+\\\\\|\\"+  end=+"+
syn region sqljString		start=+'+  skip=+\\\\\|\\"+  end=+'+

" Numbers:
syn match sqljNumber		"-\=\<\d*\.\=[0-9_]\>"

" PreProc
syn match sqljPre		"#sql"

" Comments:
syn region sqljComment    start="/\*"  end="\*/"
syn match sqlComment	"--.*"

syn sync ccomment sqljComment


" The default methods for highlighting. Can be overridden later.
hi def link sqljComment	Comment
hi def link sqljKeyword	sqljSpecial
hi def link sqljNumber	Number
hi def link sqljOperator	sqljStatement
hi def link sqljSpecial	Special
hi def link sqljStatement	Statement
hi def link sqljString	String
hi def link sqljType	Type
hi def link sqljPre	PreProc


let b:current_syntax = "sqlj"

PK�j�ZM=+�**vim80/syntax/grub.vimnu�[���" Vim syntax file
" Language:             grub(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword grubTodo          contained TODO FIXME XXX NOTE

syn region  grubComment       display oneline start='^#' end='$'
                              \ contains=grubTodo,@Spell

syn match   grubDevice        display
                              \ '(\([fh]d\d\|\d\+\|0x\x\+\)\(,\d\+\)\=\(,\l\)\=)'

syn match   grubBlock         display '\(\d\+\)\=+\d\+\(,\(\d\+\)\=+\d\+\)*'

syn match   grubNumbers       display '+\=\<\d\+\|0x\x\+\>'

syn match   grubBegin         display '^'
                              \ nextgroup=@grubCommands,grubComment skipwhite

syn cluster grubCommands      contains=grubCommand,grubTitleCommand

syn keyword grubCommand       contained default fallback hiddenmenu timeout

syn keyword grubTitleCommand  contained title nextgroup=grubTitle skipwhite

syn match   grubTitle         contained display '.*'

syn keyword grubCommand       contained bootp color device dhcp hide ifconfig
                              \ pager partnew parttype password rarp serial setkey
                              \ terminal tftpserver unhide blocklist boot cat
                              \ chainloader cmp configfile debug displayapm
                              \ displaymem embed find fstest geometry halt help
                              \ impsprobe initrd install ioprobe kernel lock
                              \ makeactive map md5crypt module modulenounzip pause
                              \ quit reboot read root rootnoverify savedefault setup
                              \ testload testvbe uppermem vbeprobe

syn keyword grubSpecial       saved

syn match   grubBlink         display 'blink-'
syn keyword grubBlack         black
syn keyword grubBlue          blue
syn keyword grubGreen         green
syn keyword grubRed           red
syn keyword grubMagenta       magenta
syn keyword grubBrown         brown yellow
syn keyword grubWhite         white
syn match   grubLightGray     display 'light-gray'
syn match   grubLightBlue     display 'light-blue'
syn match   grubLightGreen    display 'light-green'
syn match   grubLightCyan     display 'light-cyan'
syn match   grubLightRed      display 'light-red'
syn match   grubLightMagenta  display 'light-magenta'
syn match   grubDarkGray      display 'dark-gray'

hi def link grubComment       Comment
hi def link grubTodo          Todo
hi def link grubNumbers       Number
hi def link grubDevice        Identifier
hi def link grubBlock         Identifier
hi def link grubCommand       Keyword
hi def link grubTitleCommand  grubCommand
hi def link grubTitle         String
hi def link grubSpecial       Special

hi def      grubBlink         cterm=inverse
hi def      grubBlack         ctermfg=Black ctermbg=White guifg=Black guibg=White
hi def      grubBlue          ctermfg=DarkBlue guifg=DarkBlue
hi def      grubGreen         ctermfg=DarkGreen guifg=DarkGreen
hi def      grubRed           ctermfg=DarkRed guifg=DarkRed
hi def      grubMagenta       ctermfg=DarkMagenta guifg=DarkMagenta
hi def      grubBrown         ctermfg=Brown guifg=Brown
hi def      grubWhite         ctermfg=White ctermbg=Black guifg=White guibg=Black
hi def      grubLightGray     ctermfg=LightGray guifg=LightGray
hi def      grubLightBlue     ctermfg=LightBlue guifg=LightBlue
hi def      grubLightGreen    ctermfg=LightGreen guifg=LightGreen
hi def      grubLightCyan     ctermfg=LightCyan guifg=LightCyan
hi def      grubLightRed      ctermfg=LightRed guifg=LightRed
hi def      grubLightMagenta  ctermfg=LightMagenta guifg=LightMagenta
hi def      grubDarkGray      ctermfg=DarkGray guifg=DarkGray

let b:current_syntax = "grub"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z`�f..vim80/syntax/esqlc.vimnu�[���" Vim syntax file
" Language:	ESQL-C
" Maintainer:	Jonathan A. George <jageorge@tel.gte.com>
" Last Change:	2001 May 09

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C++ syntax to start with
runtime! syntax/cpp.vim

" ESQL-C extentions

syntax keyword esqlcPreProc	EXEC SQL INCLUDE

syntax case ignore

syntax keyword esqlcPreProc	begin end declare section database open execute
syntax keyword esqlcPreProc	prepare fetch goto continue found sqlerror work

syntax keyword esqlcKeyword	access add as asc by check cluster column
syntax keyword esqlcKeyword	compress connect current decimal
syntax keyword esqlcKeyword	desc exclusive file from group
syntax keyword esqlcKeyword	having identified immediate increment index
syntax keyword esqlcKeyword	initial into is level maxextents mode modify
syntax keyword esqlcKeyword	nocompress nowait of offline on online start
syntax keyword esqlcKeyword	successful synonym table then to trigger uid
syntax keyword esqlcKeyword	unique user validate values view whenever
syntax keyword esqlcKeyword	where with option order pctfree privileges
syntax keyword esqlcKeyword	public resource row rowlabel rownum rows
syntax keyword esqlcKeyword	session share size smallint

syntax keyword esqlcOperator	not and or
syntax keyword esqlcOperator	in any some all between exists
syntax keyword esqlcOperator	like escape
syntax keyword esqlcOperator	intersect minus
syntax keyword esqlcOperator	prior distinct
syntax keyword esqlcOperator	sysdate

syntax keyword esqlcStatement	alter analyze audit comment commit create
syntax keyword esqlcStatement	delete drop explain grant insert lock noaudit
syntax keyword esqlcStatement	rename revoke rollback savepoint select set
syntax keyword esqlcStatement	truncate update

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link esqlcOperator	Operator
hi def link esqlcStatement	Statement
hi def link esqlcKeyword	esqlcSpecial
hi def link esqlcSpecial	Special
hi def link esqlcPreProc	PreProc


let b:current_syntax = "esqlc"

PK�j�Z�.MMvim80/syntax/chaskell.vimnu�[���" Vim syntax file
" Language:	Haskell supporting c2hs binding hooks
" Maintainer:	Armin Sander <armin@mindwalker.org>
" Last Change:	2001 November 1
"
" 2001 November 1: Changed commands for sourcing haskell.vim

" Enable binding hooks
let b:hs_chs=1

" Include standard Haskell highlighting
runtime! syntax/haskell.vim

" vim: ts=8
PK�j�ZU�|�99vim80/syntax/takcmp.vimnu�[���" Vim syntax file
" Language:     TAK2, TAK3, TAK2000 thermal modeling compare file
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.cmp
" URL:		http://www.naglenet.org/vim/syntax/takcmp.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
"
" Begin syntax definitions for compare files.
"
" Define keywords for TAK compare
  syn keyword takcmpUnit     celsius fahrenheit



" Define matches for TAK compare
  syn match  takcmpTitle       "Steady State Temperature Comparison"

  syn match  takcmpLabel       "Run Date:"
  syn match  takcmpLabel       "Run Time:"
  syn match  takcmpLabel       "Temp. File \d Units:"
  syn match  takcmpLabel       "Filename:"
  syn match  takcmpLabel       "Output Units:"

  syn match  takcmpHeader      "^ *Node\( *File  \d\)* *Node Description"

  syn match  takcmpDate        "\d\d\/\d\d\/\d\d"
  syn match  takcmpTime        "\d\d:\d\d:\d\d"
  syn match  takcmpInteger     "^ *-\=\<[0-9]*\>"
  syn match  takcmpFloat       "-\=\<[0-9]*\.[0-9]*"



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link takcmpTitle		   Type
hi def link takcmpUnit		   PreProc

hi def link takcmpLabel		   Statement

hi def link takcmpHeader		   takHeader

hi def link takcmpDate		   Identifier
hi def link takcmpTime		   Identifier
hi def link takcmpInteger		   Number
hi def link takcmpFloat		   Special



let b:current_syntax = "takcmp"

" vim: ts=8 sw=2
PK�j�Z�T��vim80/syntax/sindacmp.vimnu�[���" Vim syntax file
" Language:     sinda85, sinda/fluint compare file
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.cmp
" URL:		http://www.naglenet.org/vim/syntax/sindacmp.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
" Begin syntax definitions for compare files.
"

" Define keywords for sinda compare (sincomp)
syn keyword sindacmpUnit     celsius fahrenheit



" Define matches for sinda compare (sincomp)
syn match  sindacmpTitle       "Steady State Temperature Comparison"

syn match  sindacmpLabel       "File  [1-6] is"

syn match  sindacmpHeader      "^ *Node\( *File  \d\)* *Node Description"

syn match  sindacmpInteger     "^ *-\=\<[0-9]*\>"
syn match  sindacmpFloat       "-\=\<[0-9]*\.[0-9]*"



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link sindacmpTitle		     Type
hi def link sindacmpUnit		     PreProc

hi def link sindacmpLabel		     Statement

hi def link sindacmpHeader		     sindaHeader

hi def link sindacmpInteger	     Number
hi def link sindacmpFloat		     Special



let b:current_syntax = "sindacmp"

" vim: ts=8 sw=2
PK�j�Zp�yE$E$vim80/syntax/btm.vimnu�[���" Vim syntax file
" Language:	4Dos batch file
" Maintainer:	John Leo Spetz <jls11@po.cwru.edu>
" Last Change:	2001 May 09

"//Issues to resolve:
"//- Boolean operators surrounded by period are recognized but the
"//  periods are not highlighted.  The only way to do that would
"//  be separate synmatches for each possibility otherwise a more
"//  general \.\i\+\. will highlight anything delimited by dots.
"//- After unary operators like "defined" can assume token type.
"//  Should there be more of these?

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn keyword btmStatement	call off
syn keyword btmConditional	if iff endiff then else elseiff not errorlevel
syn keyword btmConditional	gt lt eq ne ge le
syn match btmConditional transparent    "\.\i\+\." contains=btmDotBoolOp
syn keyword btmDotBoolOp contained      and or xor
syn match btmConditional	"=="
syn match btmConditional	"!="
syn keyword btmConditional	defined errorlevel exist isalias
syn keyword btmConditional	isdir direxist isinternal islabel
syn keyword btmRepeat		for in do enddo

syn keyword btmTodo contained	TODO

" String
syn cluster btmVars contains=btmVariable,btmArgument,btmBIFMatch
syn region  btmString	start=+"+  end=+"+ contains=@btmVars
syn match btmNumber     "\<\d\+\>"

"syn match  btmIdentifier	"\<\h\w*\>"

" If you don't like tabs
"syn match btmShowTab "\t"
"syn match btmShowTabc "\t"
"syn match  btmComment		"^\ *rem.*$" contains=btmTodo,btmShowTabc

" Some people use this as a comment line
" In fact this is a Label
"syn match btmComment		"^\ *:\ \+.*$" contains=btmTodo

syn match btmComment		"^\ *rem.*$" contains=btmTodo
syn match btmComment		"^\ *::.*$" contains=btmTodo

syn match btmLabelMark		"^\ *:[0-9a-zA-Z_\-]\+\>"
syn match btmLabelMark		"goto [0-9a-zA-Z_\-]\+\>"lc=5
syn match btmLabelMark		"gosub [0-9a-zA-Z_\-]\+\>"lc=6

" syn match btmCmdDivider ">[>&][>&]\="
syn match btmCmdDivider ">[>&]*"
syn match btmCmdDivider ">>&>"
syn match btmCmdDivider "|&\="
syn match btmCmdDivider "%+"
syn match btmCmdDivider "\^"

syn region btmEcho start="echo" skip="echo" matchgroup=btmCmdDivider end="%+" end="$" end="|&\=" end="\^" end=">[>&]*" contains=@btmEchos oneline
syn cluster btmEchos contains=@btmVars,btmEchoCommand,btmEchoParam
syn keyword btmEchoCommand contained	echo echoerr echos echoserr
syn keyword btmEchoParam contained	on off

" this is also a valid Label. I don't use it.
"syn match btmLabelMark		"^\ *:\ \+[0-9a-zA-Z_\-]\+\>"

" //Environment variable can be expanded using notation %var in 4DOS
syn match btmVariable		"%[0-9a-z_\-]\+" contains=@btmSpecialVars
" //Environment variable can be expanded using notation %var%
syn match btmVariable		"%[0-9a-z_\-]*%" contains=@btmSpecialVars
" //The following are special variable in 4DOS
syn match btmVariable		"%[=#]" contains=@btmSpecialVars
syn match btmVariable		"%??\=" contains=@btmSpecialVars
" //Environment variable can be expanded using notation %[var] in 4DOS
syn match btmVariable		"%\[[0-9a-z_\-]*\]"
" //After some keywords next word should be an environment variable
syn match btmVariable		"defined\s\i\+"lc=8
syn match btmVariable		"set\s\i\+"lc=4
" //Parameters to batchfiles take the format %<digit>
syn match btmArgument		"%\d\>"
" //4DOS allows format %<digit>& meaning batchfile parameters digit and up
syn match btmArgument		"%\d\>&"
" //Variable used by FOR loops sometimes use %%<letter> in batchfiles
syn match btmArgument		"%%\a\>"

" //Show 4DOS built-in functions specially
syn match btmBIFMatch "%@\w\+\["he=e-1 contains=btmBuiltInFunc
syn keyword btmBuiltInFunc contained	alias ascii attrib cdrom
syn keyword btmBuiltInFunc contained	char clip comma convert
syn keyword btmBuiltInFunc contained	date day dec descript
syn keyword btmBuiltInFunc contained	device diskfree disktotal
syn keyword btmBuiltInFunc contained	diskused dosmem dow dowi
syn keyword btmBuiltInFunc contained	doy ems eval exec execstr
syn keyword btmBuiltInFunc contained	expand ext extended
syn keyword btmBuiltInFunc contained	fileage fileclose filedate
syn keyword btmBuiltInFunc contained	filename fileopen fileread
syn keyword btmBuiltInFunc contained	files fileseek fileseekl
syn keyword btmBuiltInFunc contained	filesize filetime filewrite
syn keyword btmBuiltInFunc contained	filewriteb findclose
syn keyword btmBuiltInFunc contained	findfirst findnext format
syn keyword btmBuiltInFunc contained	full if inc index insert
syn keyword btmBuiltInFunc contained	instr int label left len
syn keyword btmBuiltInFunc contained	lfn line lines lower lpt
syn keyword btmBuiltInFunc contained	makeage makedate maketime
syn keyword btmBuiltInFunc contained	master month name numeric
syn keyword btmBuiltInFunc contained	path random readscr ready
syn keyword btmBuiltInFunc contained	remote removable repeat
syn keyword btmBuiltInFunc contained	replace right search
syn keyword btmBuiltInFunc contained	select sfn strip substr
syn keyword btmBuiltInFunc contained	time timer trim truename
syn keyword btmBuiltInFunc contained	unique upper wild word
syn keyword btmBuiltInFunc contained	words xms year

syn cluster btmSpecialVars contains=btmBuiltInVar,btmSpecialVar

" //Show specialized variables specially
" syn match btmSpecialVar contained	"+"
syn match btmSpecialVar contained	"="
syn match btmSpecialVar contained	"#"
syn match btmSpecialVar contained	"??\="
syn keyword btmSpecialVar contained	cmdline colordir comspec
syn keyword btmSpecialVar contained	copycmd dircmd temp temp4dos
syn keyword btmSpecialVar contained	filecompletion path prompt

" //Show 4DOS built-in variables specially specially
syn keyword btmBuiltInVar contained	_4ver _alias _ansi
syn keyword btmBuiltInVar contained	_apbatt _aplife _apmac _batch
syn keyword btmBuiltInVar contained	_batchline _batchname _bg
syn keyword btmBuiltInVar contained	_boot _ci _cmdproc _co
syn keyword btmBuiltInVar contained	_codepage _column _columns
syn keyword btmBuiltInVar contained	_country _cpu _cwd _cwds _cwp
syn keyword btmBuiltInVar contained	_cwps _date _day _disk _dname
syn keyword btmBuiltInVar contained	_dos _dosver _dow _dowi _doy
syn keyword btmBuiltInVar contained	_dpmi _dv _env _fg _hlogfile
syn keyword btmBuiltInVar contained	_hour _kbhit _kstack _lastdisk
syn keyword btmBuiltInVar contained	_logfile _minute _monitor
syn keyword btmBuiltInVar contained	_month _mouse _ndp _row _rows
syn keyword btmBuiltInVar contained	_second _shell _swapping
syn keyword btmBuiltInVar contained	_syserr _time _transient
syn keyword btmBuiltInVar contained	_video _win _wintitle _year

" //Commands in 4DOS and/or DOS
syn match btmCommand	"\s?"
syn match btmCommand	"^?"
syn keyword btmCommand	alias append assign attrib
syn keyword btmCommand	backup beep break cancel case
syn keyword btmCommand	cd cdd cdpath chcp chdir
syn keyword btmCommand	chkdsk cls color comp copy
syn keyword btmCommand	ctty date debug default defrag
syn keyword btmCommand	del delay describe dir
syn keyword btmCommand	dirhistory dirs diskcomp
syn keyword btmCommand	diskcopy doskey dosshell
syn keyword btmCommand	drawbox drawhline drawvline
"syn keyword btmCommand	echo echoerr echos echoserr
syn keyword btmCommand	edit edlin emm386 endlocal
syn keyword btmCommand	endswitch erase eset except
syn keyword btmCommand	exe2bin exit expand fastopen
syn keyword btmCommand	fc fdisk ffind find format
syn keyword btmCommand	free global gosub goto
syn keyword btmCommand	graftabl graphics help history
syn keyword btmCommand	inkey input join keyb keybd
syn keyword btmCommand	keystack label lh list loadbtm
syn keyword btmCommand	loadhigh lock log md mem
syn keyword btmCommand	memory mirror mkdir mode more
syn keyword btmCommand	move nlsfunc on option path
syn keyword btmCommand	pause popd print prompt pushd
syn keyword btmCommand	quit rd reboot recover ren
syn keyword btmCommand	rename replace restore return
syn keyword btmCommand	rmdir scandisk screen scrput
syn keyword btmCommand	select set setdos setlocal
syn keyword btmCommand	setver share shift sort subst
syn keyword btmCommand	swapping switch sys tee text
syn keyword btmCommand	time timer touch tree truename
syn keyword btmCommand	type unalias undelete unformat
syn keyword btmCommand	unlock unset ver verify vol
syn keyword btmCommand	vscrput y

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link btmLabel		Special
hi def link btmLabelMark		Special
hi def link btmCmdDivider		Special
hi def link btmConditional		btmStatement
hi def link btmDotBoolOp		btmStatement
hi def link btmRepeat		btmStatement
hi def link btmEchoCommand	btmStatement
hi def link btmEchoParam		btmStatement
hi def link btmStatement		Statement
hi def link btmTodo		Todo
hi def link btmString		String
hi def link btmNumber		Number
hi def link btmComment		Comment
hi def link btmArgument		Identifier
hi def link btmVariable		Identifier
hi def link btmEcho		String
hi def link btmBIFMatch		btmStatement
hi def link btmBuiltInFunc		btmStatement
hi def link btmBuiltInVar		btmStatement
hi def link btmSpecialVar		btmStatement
hi def link btmCommand		btmStatement

"optional highlighting
"hi def link btmShowTab		Error
"hi def link btmShowTabc		Error
"hi def link btmIdentifier		Identifier


let b:current_syntax = "btm"

" vim: ts=8
PK�j�Z� ��
�
vim80/syntax/cuda.vimnu�[���" Vim syntax file
" Language:	CUDA (NVIDIA Compute Unified Device Architecture)
" Maintainer:	Timothy B. Terriberry <tterribe@users.sourceforge.net>
" Last Change:	2018 Feb 06

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C++ syntax to start with
runtime! syntax/cpp.vim

" CUDA extentions
syn keyword cudaStorageClass	__device__ __global__ __host__
syn keyword cudaStorageClass	__constant__ __shared__
syn keyword cudaStorageClass	__inline__ __align__ __thread__
"syn keyword cudaStorageClass	__import__ __export__ __location__
syn keyword cudaStructure	template
syn keyword cudaType		char1 char2 char3 char4
syn keyword cudaType		uchar1 uchar2 uchar3 uchar4
syn keyword cudaType		short1 short2 short3 short4
syn keyword cudaType		ushort1 ushort2 ushort3 ushort4
syn keyword cudaType		int1 int2 int3 int4
syn keyword cudaType		uint1 uint2 uint3 uint4
syn keyword cudaType		long1 long2 long3 long4
syn keyword cudaType		ulong1 ulong2 ulong3 ulong4
syn keyword cudaType		float1 float2 float3 float4
syn keyword cudaType		ufloat1 ufloat2 ufloat3 ufloat4
syn keyword cudaType		dim3 texture textureReference
syn keyword cudaType		cudaError_t cudaDeviceProp cudaMemcpyKind
syn keyword cudaType		cudaArray cudaChannelFormatKind
syn keyword cudaType		cudaChannelFormatDesc cudaTextureAddressMode
syn keyword cudaType		cudaTextureFilterMode cudaTextureReadMode
syn keyword cudaVariable	gridDim blockIdx blockDim threadIdx
syn keyword cudaConstant	__DEVICE_EMULATION__
syn keyword cudaConstant	cudaSuccess
" Many more errors are defined, but only these are listed in the maunal
syn keyword cudaConstant	cudaErrorMemoryAllocation
syn keyword cudaConstant	cudaErrorInvalidDevicePointer
syn keyword cudaConstant	cudaErrorInvalidSymbol
syn keyword cudaConstant	cudaErrorMixedDeviceExecution
syn keyword cudaConstant	cudaMemcpyHostToHost
syn keyword cudaConstant	cudaMemcpyHostToDevice
syn keyword cudaConstant	cudaMemcpyDeviceToHost
syn keyword cudaConstant	cudaMemcpyDeviceToDevice
syn keyword cudaConstant	cudaReadModeElementType
syn keyword cudaConstant	cudaReadModeNormalizedFloat
syn keyword cudaConstant	cudaFilterModePoint
syn keyword cudaConstant	cudaFilterModeLinear
syn keyword cudaConstant	cudaAddressModeClamp
syn keyword cudaConstant	cudaAddressModeWrap
syn keyword cudaConstant	cudaChannelFormatKindSigned
syn keyword cudaConstant	cudaChannelFormatKindUnsigned
syn keyword cudaConstant	cudaChannelFormatKindFloat

hi def link cudaStorageClass	StorageClass
hi def link cudaStructure	Structure
hi def link cudaType		Type
hi def link cudaVariable	Identifier
hi def link cudaConstant	Constant

let b:current_syntax = "cuda"

" vim: ts=8
PK�j�ZP�Y�.�.vim80/syntax/falcon.vimnu�[���" Vim syntax file
" Language:     Falcon
" Maintainer:   Steven Oliver <oliver.steven@gmail.com>
" Website:      http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim
" Credits:      Thanks the ruby.vim authors, I borrowed a lot!
"               Thanks to the lisp authors for the rainbow code!
" -------------------------------------------------------------------------------

" When wanted, highlight the trailing whitespace.
if exists("c_space_errors")
    if !exists("c_no_trail_space_error")
        syn match falconSpaceError "\s\+$"
    endif

    if !exists("c_no_tab_space_error")
        syn match falconSpaceError " \+\t"me=e-1
    endif
endif

" Symbols
syn match falconSymbol "\(;\|,\|\.\)"
syn match falconSymbolOther "\(#\|@\)" display

" Operators
syn match falconOperator "\(+\|-\|\*\|/\|=\|<\|>\|\*\*\|!=\|\~=\)"
syn match falconOperator "\(<=\|>=\|=>\|\.\.\|<<\|>>\|\"\)"

" Clusters
syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@falconStringSpecial fold
syn case match

" Keywords
syn keyword falconKeyword all allp any anyp as attributes brigade cascade catch choice class const
syn keyword falconKeyword continue def directive do list dropping enum eq eval exit export from function
syn keyword falconKeyword give global has hasnt in init innerfunc lambda launch launch len List list
syn keyword falconKeyword load notin object pass print printl provides raise return self sender static to
syn keyword falconKeyword try xamp

" Error Type Keywords
syn keyword falconKeyword CloneError CodeError Error InterruprtedError IoError MathError
syn keyword falconKeyword ParamError RangeError SyntaxError TraceStep TypeError

" Todo
syn keyword falconTodo DEBUG FIXME NOTE TODO XXX

" Conditionals
syn keyword falconConditional and case default else end if iff
syn keyword falconConditional elif or not switch select
syn match   falconConditional "end\s\if"

" Loops
syn keyword falconRepeat break for loop forfirst forlast formiddle while

" Booleans
syn keyword falconBool true false

" Constants
syn keyword falconConst PI E nil
syn match   falconConstant  "\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=\%(\s*(\)\@!"

" Comments
syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)"
syn region falconComment start="/\*" end="\*/" contains=@falconCommentGroup,falconSpaceError,falconTodo
syn region falconCommentL start="//" end="$" keepend contains=@falconCommentGroup,falconSpaceError,falconTodo
syn match falconSharpBang "\%^#!.*" display
syn sync ccomment falconComment

" Numbers
syn match falconNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
syn match falconNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
syn match falconHexadecimal contained "\<0x\x\+\>"
syn match falconOctal contained "\<0\o\+\>"
syn match falconIntLiteral contained "[+-]\<d\+\(\d\+\)\?\>"
syn match falconFloatLiteral contained "[+-]\=\d\+\.\d*"
syn match falconFloatLiteral contained "[+-]\=\d*\.\d*"

" Includes
syn keyword falconInclude load import

" Expression Substitution and Backslash Notation
syn match falconStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display
syn match falconStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold

" Normal String and Shell Command Output
syn region falconString matchgroup=falconStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
syn region falconString matchgroup=falconStringDelimiter start="'" end="'" skip="\\\\\|\\'" fold
syn region falconString matchgroup=falconStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=falconStringEscape fold

" Generalized Single Quoted String, Symbol and Array of Strings
syn region falconString matchgroup=falconStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)"  end="\z1" skip="\\\\\|\\\z1" fold
syn region falconString matchgroup=falconStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
syn region falconString matchgroup=falconStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
syn region falconString matchgroup=falconStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
syn region falconString matchgroup=falconStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape

" Generalized Double Quoted String and Array of Strings and Shell Command Output
syn region falconString matchgroup=falconStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=falconStringEscape,falconDelimEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=falconStringEscape,falconDelimEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=falconStringEscape,falconDelimEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=falconStringEscape,falconDelimEscape fold

syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<"\z([^"]*\)"\ze+hs=s+2  matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<'\z([^']*\)'\ze+hs=s+2  matchgroup=falconStringDelimiter end=+^\z1$+ fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<`\z([^`]*\)`\ze+hs=s+2  matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend

syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3  matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3  matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3  matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend

" Falcon rainbox to highlight parens in varying colors
if exists("g:falcon_rainbow") && g:falcon_rainbow != 0
    syn region falconParen0           matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen1
    syn region falconParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen2
    syn region falconParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen3
    syn region falconParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen4
    syn region falconParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen5
    syn region falconParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen6
    syn region falconParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen7
    syn region falconParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen8
    syn region falconParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen9
    syn region falconParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen0
endif

" Setup the colors for the rainbox
if exists("g:falcon_rainbow") && g:falcon_rainbow != 0
    if &bg == "dark"
        hi def hlLevel0 ctermfg=red         guifg=red1
        hi def hlLevel1 ctermfg=yellow      guifg=orange1
        hi def hlLevel2 ctermfg=green       guifg=yellow1
        hi def hlLevel3 ctermfg=cyan        guifg=greenyellow
        hi def hlLevel4 ctermfg=magenta     guifg=green1
        hi def hlLevel5 ctermfg=red         guifg=springgreen1
        hi def hlLevel6 ctermfg=yellow      guifg=cyan1
        hi def hlLevel7 ctermfg=green       guifg=slateblue1
        hi def hlLevel8 ctermfg=cyan        guifg=magenta1
        hi def hlLevel9 ctermfg=magenta     guifg=purple1
    else
        hi def hlLevel0 ctermfg=red         guifg=red3
        hi def hlLevel1 ctermfg=darkyellow  guifg=orangered3
        hi def hlLevel2 ctermfg=darkgreen   guifg=orange2
        hi def hlLevel3 ctermfg=blue        guifg=yellow3
        hi def hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
        hi def hlLevel5 ctermfg=red         guifg=green4
        hi def hlLevel6 ctermfg=darkyellow  guifg=paleturquoise3
        hi def hlLevel7 ctermfg=darkgreen   guifg=deepskyblue4
        hi def hlLevel8 ctermfg=blue        guifg=darkslateblue
        hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet
    endif
endif

" Syntax Synchronizing
syn sync minlines=10 maxlines=100

" Define the default highlighting
if !exists("did_falcon_syn_inits")

    hi def link falconKeyword          Keyword
    hi def link falconCommentString    String
    hi def link falconTodo             Todo
    hi def link falconConditional      Keyword
    hi def link falconRepeat           Repeat
    hi def link falconcommentSkip      Comment
    hi def link falconComment          Comment
    hi def link falconCommentL         Comment
    hi def link falconConst            Constant
    hi def link falconConstants        Constant
    hi def link falconOperator         Operator
    hi def link falconSymbol           Normal
    hi def link falconSpaceError       Error
    hi def link falconHexadecimal      Number
    hi def link falconOctal            Number
    hi def link falconIntLiteral       Number
    hi def link falconFloatLiteral     Float
    hi def link falconStringEscape     Special
    hi def link falconStringDelimiter  Delimiter
    hi def link falconString           String
    hi def link falconBool             Constant
    hi def link falconSharpBang        PreProc
    hi def link falconInclude          Include
    hi def link falconSymbol           Constant
    hi def link falconSymbolOther      Delimiter
endif

let b:current_syntax = "falcon"

" vim: set sw=4 sts=4 et tw=80 :

PK�j�Z<�9y��vim80/syntax/trasys.vimnu�[���" Vim syntax file
" Language:     TRASYS input file
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.inp
" URL:		http://www.naglenet.org/vim/syntax/trasys.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


" Force free-form fortran format
let fortran_free_source=1

" Load FORTRAN syntax file
runtime! syntax/fortran.vim
unlet b:current_syntax


" Ignore case
syn case ignore



" Define keywords for TRASYS
syn keyword trasysOptions    model rsrec info maxfl nogo dmpdoc
syn keyword trasysOptions    rsi rti rso rto bcdou cmerg emerg
syn keyword trasysOptions    user1 nnmin erplot

syn keyword trasysSurface    icsn tx ty tz rotx roty rotz inc bcsn
syn keyword trasysSurface    nnx nny nnz nnax nnr nnth unnx
syn keyword trasysSurface    unny unnz unnax unnr unnth type idupsf
syn keyword trasysSurface    imagsf act active com shade bshade axmin
syn keyword trasysSurface    axmax zmin zmax rmin rmax thmin thmin
syn keyword trasysSurface    thmax alpha emiss trani trans spri sprs
syn keyword trasysSurface    refno posit com dupbcs dimensions
syn keyword trasysSurface    dimension position prop surfn

syn keyword trasysSurfaceType rect trap disk cyl cone sphere parab
syn keyword trasysSurfaceType box5 box6 shpero tor ogiv elem tape poly

syn keyword trasysSurfaceArgs ff di top bottom in out both no only

syn keyword trasysArgs       fig smn nodea zero only ir sol
syn keyword trasysArgs       both wband stepn initl

syn keyword trasysOperations orbgen build

"syn keyword trasysSubRoutine call
syn keyword trasysSubRoutine chgblk ndata ndatas odata odatas
syn keyword trasysSubRoutine pldta ffdata cmdata adsurf rbdata
syn keyword trasysSubRoutine rtdata pffshd orbit1 orbit2 orient
syn keyword trasysSubRoutine didt1 didt1s didt2 didt2s spin
syn keyword trasysSubRoutine spinav dicomp distab drdata gbdata
syn keyword trasysSubRoutine gbaprx rkdata rcdata aqdata stfaq
syn keyword trasysSubRoutine qodata qoinit modar modpr modtr
syn keyword trasysSubRoutine modprs modshd moddat rstoff rston
syn keyword trasysSubRoutine rsmerg ffread diread ffusr1 diusr1
syn keyword trasysSubRoutine surfp didt3 didt3s romain stfrc
syn keyword trasysSubRoutine rornt rocstr romove flxdata title

syn keyword trassyPrcsrSegm  nplot oplot plot cmcal ffcal rbcal
syn keyword trassyPrcsrSegm  rtcal dical drcal sfcal gbcal rccal
syn keyword trassyPrcsrSegm  rkcal aqcal qocal



" Define matches for TRASYS
syn match  trasysOptions     "list source"
syn match  trasysOptions     "save source"
syn match  trasysOptions     "no print"

"syn match  trasysSurface     "^K *.* [^$]"
"syn match  trasysSurface     "^D *[0-9]*\.[0-9]\+"
"syn match  trasysSurface     "^I *.*[0-9]\+\.\="
"syn match  trasysSurface     "^N *[0-9]\+"
"syn match  trasysSurface     "^M *[a-z[A-Z0-9]\+"
"syn match  trasysSurface     "^B[C][S] *[a-zA-Z0-9]*"
"syn match  trasysSurface     "^S *SURFN.*[0-9]"
syn match  trasysSurface     "P[0-9]* *="he=e-1

syn match  trasysIdentifier  "^L "he=e-1
syn match  trasysIdentifier  "^K "he=e-1
syn match  trasysIdentifier  "^D "he=e-1
syn match  trasysIdentifier  "^I "he=e-1
syn match  trasysIdentifier  "^N "he=e-1
syn match  trasysIdentifier  "^M "he=e-1
syn match  trasysIdentifier  "^B[C][S]"
syn match  trasysIdentifier  "^S "he=e-1

syn match  trasysComment     "^C.*$"
syn match  trasysComment     "^R.*$"
syn match  trasysComment     "\$.*$"

syn match  trasysHeader      "^header[^,]*"

syn match  trasysMacro       "^FAC"

syn match  trasysInteger     "-\=\<[0-9]*\>"
syn match  trasysFloat       "-\=\<[0-9]*\.[0-9]*"
syn match  trasysScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"

syn match  trasysBlank       "' \+'"hs=s+1,he=e-1

syn match  trasysEndData     "^END OF DATA"

if exists("thermal_todo")
  execute 'syn match  trasysTodo ' . '"^'.thermal_todo.'.*$"'
else
  syn match  trasysTodo  "^?.*$"
endif



" Define regions for TRASYS
syn region trasysComment  matchgroup=trasysHeader start="^HEADER DOCUMENTATION DATA" end="^HEADER[^,]*"



" Define synchronizing patterns for TRASYS
syn sync maxlines=500
syn sync match trasysSync grouphere trasysComment "^HEADER DOCUMENTATION DATA"



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link trasysOptions		Special
hi def link trasysSurface		Special
hi def link trasysSurfaceType	Constant
hi def link trasysSurfaceArgs	Constant
hi def link trasysArgs		Constant
hi def link trasysOperations	Statement
hi def link trasysSubRoutine	Statement
hi def link trassyPrcsrSegm	PreProc
hi def link trasysIdentifier	Identifier
hi def link trasysComment		Comment
hi def link trasysHeader		Typedef
hi def link trasysMacro		Macro
hi def link trasysInteger		Number
hi def link trasysFloat		Float
hi def link trasysScientific	Float

hi def link trasysBlank		SpecialChar

hi def link trasysEndData		Macro

hi def link trasysTodo		Todo



let b:current_syntax = "trasys"

" vim: ts=8 sw=2
PK�j�Zһ��vim80/syntax/smith.vimnu�[���" Vim syntax file
" Language:	SMITH
" Maintainer:	Rafal M. Sulejman <rms@poczta.onet.pl>
" Last Change:	21.07.2000

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore


syn match smithComment ";.*$"

syn match smithNumber		"\<[+-]*[0-9]\d*\>"

syn match smithRegister		"R[\[]*[0-9]*[\]]*"

syn match smithKeyword	"COR\|MOV\|MUL\|NOT\|STOP\|SUB\|NOP\|BLA\|REP"

syn region smithString		start=+"+  skip=+\\\\\|\\"+  end=+"+


syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link smithRegister	Identifier
hi def link smithKeyword	Keyword
hi def link smithComment Comment
hi def link smithString String
hi def link smithNumber	Number


let b:current_syntax = "smith"

" vim: ts=2
PK�j�Z�O��vim80/syntax/tex.vimnu�[���" Vim syntax file
" Language:	TeX
" Maintainer:	Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change:	Mar 30, 2018
" Version:	109
" URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
"
" 1. If you have a \begin{verbatim} that appears to overrun its boundaries,
"    use %stopzone.
"
" 2. Run-on equations ($..$ and $$..$$, particularly) can also be stopped
"    by suitable use of %stopzone.
"
" 3. If you have a slow computer, you may wish to modify
"
"	syn sync maxlines=200
"	syn sync minlines=50
"
"    to values that are more to your liking.
"
" 4. There is no match-syncing for $...$ and $$...$$; hence large
"    equation blocks constructed that way may exhibit syncing problems.
"    (there's no difference between begin/end patterns)
"
" 5. If you have the variable "g:tex_no_error" defined then none of the
"    lexical error-checking will be done.
"
"    ie. let g:tex_no_error=1
"
" 6. Please see  :help latex-syntax  for information on
"      syntax folding           :help tex-folding
"      spell checking           :help tex-nospell
"      commands and mathzones   :help tex-runon
"      new command highlighting :help tex-morecommands
"      error highlighting       :help tex-error
"      new math groups          :help tex-math
"      new styles               :help tex-style
"      using conceal mode       :help tex-conceal

" Version Clears: {{{1
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim
scriptencoding utf-8

" by default, enable all region-based highlighting
let s:tex_fast= "bcmMprsSvV"
if exists("g:tex_fast")
 if type(g:tex_fast) != 1
  " g:tex_fast exists and is not a string, so
  " turn off all optional region-based highighting
  let s:tex_fast= ""
 else
  let s:tex_fast= g:tex_fast
 endif
endif

" let user determine which classes of concealment will be supported
"   a=accents/ligatures d=delimiters m=math symbols  g=Greek  s=superscripts/subscripts
if !exists("g:tex_conceal")
 let s:tex_conceal= 'abdmgsS'
else
 let s:tex_conceal= g:tex_conceal
endif
if !exists("g:tex_superscripts")
 let s:tex_superscripts= '[0-9a-zA-W.,:;+-<>/()=]'
else
 let s:tex_superscripts= g:tex_superscripts
endif
if !exists("g:tex_subscripts")
 let s:tex_subscripts= '[0-9aehijklmnoprstuvx,+-/().]'
else
 let s:tex_subscripts= g:tex_subscripts
endif

" Determine whether or not to use "*.sty" mode {{{1
" The user may override the normal determination by setting
"   g:tex_stylish to 1      (for    "*.sty" mode)
"    or to           0 else (normal "*.tex" mode)
" or on a buffer-by-buffer basis with b:tex_stylish
let s:extfname=expand("%:e")
if exists("g:tex_stylish")
 let b:tex_stylish= g:tex_stylish
elseif !exists("b:tex_stylish")
 if s:extfname == "sty" || s:extfname == "cls" || s:extfname == "clo" || s:extfname == "dtx" || s:extfname == "ltx"
  let b:tex_stylish= 1
 else
  let b:tex_stylish= 0
 endif
endif

" handle folding {{{1
if !exists("g:tex_fold_enabled")
 let s:tex_fold_enabled= 0
elseif g:tex_fold_enabled && !has("folding")
 let s:tex_fold_enabled= 0
 echomsg "Ignoring g:tex_fold_enabled=".g:tex_fold_enabled."; need to re-compile vim for +fold support"
else
 let s:tex_fold_enabled= 1
endif
if s:tex_fold_enabled && &fdm == "manual"
 setl fdm=syntax
endif
if s:tex_fold_enabled && has("folding")
 com! -nargs=* TexFold <args> fold 
else
 com! -nargs=* TexFold <args> 
endif

" (La)TeX keywords: uses the characters 0-9,a-z,A-Z,192-255 only... {{{1
" but _ is the only one that causes problems.
" One may override this iskeyword setting by providing
" g:tex_isk
if exists("g:tex_isk")
 if b:tex_stylish && g:tex_isk !~ '@'
  let b:tex_isk= '@,'.g:tex_isk
 else
  let b:tex_isk= g:tex_isk
 endif
elseif b:tex_stylish
 let b:tex_isk="@,48-57,a-z,A-Z,192-255"
else
 let b:tex_isk="48-57,a-z,A-Z,192-255"
endif
if v:version > 704 || (v:version == 704 && has("patch-7.4.1142"))
 exe "syn iskeyword ".b:tex_isk
else
 exe "setl isk=".b:tex_isk
endif
if exists("g:tex_no_error") && g:tex_no_error
 let s:tex_no_error= 1
else
 let s:tex_no_error= 0
endif
if exists("g:tex_comment_nospell") && g:tex_comment_nospell
 let s:tex_comment_nospell= 1
else
 let s:tex_comment_nospell= 0
endif
if exists("g:tex_nospell") && g:tex_nospell
 let s:tex_nospell = 1
else
 let s:tex_nospell = 0
endif

" Clusters: {{{1
" --------
syn cluster texCmdGroup			contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,@texMathZones
if !s:tex_no_error
 syn cluster texCmdGroup		add=texMathError
endif
syn cluster texEnvGroup			contains=texMatcher,texMathDelim,texSpecialChar,texStatement
syn cluster texFoldGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texItalStyle,texNoSpell
syn cluster texBoldGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texBoldItalStyle,texNoSpell
syn cluster texItalGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texItalBoldStyle,texNoSpell
if !s:tex_nospell
 syn cluster texMatchGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
 syn cluster texMatchNMGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
 syn cluster texStyleGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher
else
 syn cluster texMatchGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
 syn cluster texMatchNMGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
 syn cluster texStyleGroup		contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher
endif
syn cluster texPreambleMatchGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texRefGroup			contains=texMatcher,texComment,texDelimiter
if !exists("g:tex_no_math")
 syn cluster texPreambleMatchGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
 syn cluster texMathZones		contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
 syn cluster texMatchGroup		add=@texMathZones
 syn cluster texMathDelimGroup		contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2
 syn cluster texMathMatchGroup		contains=@texMathZones,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathMatcher,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone
 syn cluster texMathZoneGroup		contains=texComment,texDelimiter,texLength,texMathDelim,texMathMatcher,texMathOper,texMathSymbol,texMathText,texRefZone,texSpecialChar,texStatement,texTypeSize,texTypeStyle
 if !s:tex_no_error
  syn cluster texMathMatchGroup		add=texMathError
  syn cluster texMathZoneGroup		add=texMathError
 endif
 syn cluster texMathZoneGroup		add=@NoSpell
 " following used in the \part \chapter \section \subsection \subsubsection
 " \paragraph \subparagraph \author \title highlighting
 syn cluster texDocGroup		contains=texPartZone,@texPartGroup
 syn cluster texPartGroup		contains=texChapterZone,texSectionZone,texParaZone
 syn cluster texChapterGroup		contains=texSectionZone,texParaZone
 syn cluster texSectionGroup		contains=texSubSectionZone,texParaZone
 syn cluster texSubSectionGroup		contains=texSubSubSectionZone,texParaZone
 syn cluster texSubSubSectionGroup	contains=texParaZone
 syn cluster texParaGroup		contains=texSubParaZone
 if has("conceal") && &enc == 'utf-8'
  syn cluster texMathZoneGroup		add=texGreek,texSuperscript,texSubscript,texMathSymbol
  syn cluster texMathMatchGroup		add=texGreek,texSuperscript,texSubscript,texMathSymbol
 endif
endif

" Try to flag {} and () mismatches: {{{1
if s:tex_fast =~# 'm'
  if !s:tex_no_error
   syn region texMatcher	matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"			transparent contains=@texMatchGroup,texError
   syn region texMatcher	matchgroup=Delimiter start="\["				end="]"			transparent contains=@texMatchGroup,texError,@NoSpell
   syn region texMatcherNM	matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"			transparent contains=@texMatchNMGroup,texError
   syn region texMatcherNM	matchgroup=Delimiter start="\["				end="]"			transparent contains=@texMatchNMGroup,texError,@NoSpell
  else
   syn region texMatcher	matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"			transparent contains=@texMatchGroup
   syn region texMatcher	matchgroup=Delimiter start="\["				end="]"			transparent contains=@texMatchGroup
   syn region texMatcherNM	matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"			transparent contains=@texMatchNMGroup
   syn region texMatcherNM	matchgroup=Delimiter start="\["				end="]"			transparent contains=@texMatchNMGroup
  endif
  if !s:tex_nospell
   syn region texParen		start="("	end=")"								transparent contains=@texMatchGroup,@Spell
  else
   syn region texParen		start="("	end=")"								transparent contains=@texMatchGroup
  endif
endif
if !s:tex_no_error
 syn match  texError		"[}\])]"
endif
if s:tex_fast =~# 'M'
  if !exists("g:tex_no_math")
   if !s:tex_no_error
    syn match  texMathError	"}"	contained
   endif
   syn region texMathMatcher	matchgroup=Delimiter	start="{"          skip="\%(\\\\\)*\\}"     end="}" end="%stopzone\>"	contained contains=@texMathMatchGroup
  endif
endif

" TeX/LaTeX keywords: {{{1
" Instead of trying to be All Knowing, I just match \..alphameric..
" Note that *.tex files may not have "@" in their \commands
if exists("g:tex_tex") || b:tex_stylish
  syn match texStatement	"\\[a-zA-Z@]\+"
else
  syn match texStatement	"\\\a\+"
  if !s:tex_no_error
   syn match texError		"\\\a*@[a-zA-Z@]*"
  endif
endif

" TeX/LaTeX delimiters: {{{1
syn match texDelimiter		"&"
syn match texDelimiter		"\\\\"

" Tex/Latex Options: {{{1
syn match texOption		"[^\\]\zs#\d\+\|^#\d\+"

" texAccent (tnx to Karim Belabas) avoids annoying highlighting for accents: {{{1
if b:tex_stylish
  syn match texAccent		"\\[bcdvuH][^a-zA-Z@]"me=e-1
  syn match texLigature		"\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
else
  syn match texAccent		"\\[bcdvuH]\A"me=e-1
  syn match texLigature		"\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)\A"me=e-1
endif
syn match texAccent		"\\[bcdvuH]$"
syn match texAccent		+\\[=^.\~"`']+
syn match texAccent		+\\['=t'.c^ud"vb~Hr]{\a}+
syn match texLigature		"\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"


" \begin{}/\end{} section markers: {{{1
syn match  texBeginEnd		"\\begin\>\|\\end\>" nextgroup=texBeginEndName
if s:tex_fast =~# 'm'
  syn region texBeginEndName		matchgroup=Delimiter	start="{"		end="}"	contained	nextgroup=texBeginEndModifier	contains=texComment
  syn region texBeginEndModifier	matchgroup=Delimiter	start="\["		end="]"	contained	contains=texComment,@texMathZones,@NoSpell
endif

" \documentclass, \documentstyle, \usepackage: {{{1
syn match  texDocType		"\\documentclass\>\|\\documentstyle\>\|\\usepackage\>"	nextgroup=texBeginEndName,texDocTypeArgs
if s:tex_fast =~# 'm'
  syn region texDocTypeArgs	matchgroup=Delimiter start="\[" end="]"			contained	nextgroup=texBeginEndName	contains=texComment,@NoSpell
endif

" Preamble syntax-based folding support: {{{1
if s:tex_fold_enabled && has("folding")
 syn region texPreamble	transparent fold	start='\zs\\documentclass\>' end='\ze\\begin{document}'	contains=texStyle,@texPreambleMatchGroup
endif

" TeX input: {{{1
syn match texInput		"\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7				contains=texStatement
syn match texInputFile		"\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}"	contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputFile		"\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}"		contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputCurlies	"[{}]"								contained
if s:tex_fast =~# 'm'
 syn region texInputFileOpt	matchgroup=Delimiter start="\[" end="\]"			contained	contains=texComment
endif

" Type Styles (LaTeX 2.09): {{{1
syn match texTypeStyle		"\\rm\>"
syn match texTypeStyle		"\\em\>"
syn match texTypeStyle		"\\bf\>"
syn match texTypeStyle		"\\it\>"
syn match texTypeStyle		"\\sl\>"
syn match texTypeStyle		"\\sf\>"
syn match texTypeStyle		"\\sc\>"
syn match texTypeStyle		"\\tt\>"

" Type Styles: attributes, commands, families, etc (LaTeX2E): {{{1
if s:tex_conceal !~# 'b'
 syn match texTypeStyle		"\\textbf\>"
 syn match texTypeStyle		"\\textit\>"
endif
syn match texTypeStyle		"\\textmd\>"
syn match texTypeStyle		"\\textrm\>"
syn match texTypeStyle		"\\textsc\>"
syn match texTypeStyle		"\\textsf\>"
syn match texTypeStyle		"\\textsl\>"
syn match texTypeStyle		"\\texttt\>"
syn match texTypeStyle		"\\textup\>"
syn match texTypeStyle		"\\emph\>"

syn match texTypeStyle		"\\mathbb\>"
syn match texTypeStyle		"\\mathbf\>"
syn match texTypeStyle		"\\mathcal\>"
syn match texTypeStyle		"\\mathfrak\>"
syn match texTypeStyle		"\\mathit\>"
syn match texTypeStyle		"\\mathnormal\>"
syn match texTypeStyle		"\\mathrm\>"
syn match texTypeStyle		"\\mathsf\>"
syn match texTypeStyle		"\\mathtt\>"

syn match texTypeStyle		"\\rmfamily\>"
syn match texTypeStyle		"\\sffamily\>"
syn match texTypeStyle		"\\ttfamily\>"

syn match texTypeStyle		"\\itshape\>"
syn match texTypeStyle		"\\scshape\>"
syn match texTypeStyle		"\\slshape\>"
syn match texTypeStyle		"\\upshape\>"

syn match texTypeStyle		"\\bfseries\>"
syn match texTypeStyle		"\\mdseries\>"

" Some type sizes: {{{1
syn match texTypeSize		"\\tiny\>"
syn match texTypeSize		"\\scriptsize\>"
syn match texTypeSize		"\\footnotesize\>"
syn match texTypeSize		"\\small\>"
syn match texTypeSize		"\\normalsize\>"
syn match texTypeSize		"\\large\>"
syn match texTypeSize		"\\Large\>"
syn match texTypeSize		"\\LARGE\>"
syn match texTypeSize		"\\huge\>"
syn match texTypeSize		"\\Huge\>"

" Spacecodes (TeX'isms): {{{1
" \mathcode`\^^@="2201  \delcode`\(="028300  \sfcode`\)=0 \uccode`X=`X  \lccode`x=`x
syn match texSpaceCode		"\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=texSpaceCodeChar
syn match texSpaceCodeChar    "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)"	contained

" Sections, subsections, etc: {{{1
if s:tex_fast =~# 'p'
 if !s:tex_nospell
  TexFold syn region texDocZone			matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}'											contains=@texFoldGroup,@texDocGroup,@Spell
  TexFold syn region texPartZone		matchgroup=texSection start='\\part\>'			 end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)'								contains=@texFoldGroup,@texPartGroup,@Spell
  TexFold syn region texChapterZone		matchgroup=texSection start='\\chapter\>'		 end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)'							contains=@texFoldGroup,@texChapterGroup,@Spell
  TexFold syn region texSectionZone		matchgroup=texSection start='\\section\>'		 end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'					contains=@texFoldGroup,@texSectionGroup,@Spell
  TexFold syn region texSubSectionZone		matchgroup=texSection start='\\subsection\>'		 end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'				contains=@texFoldGroup,@texSubSectionGroup,@Spell
  TexFold syn region texSubSubSectionZone	matchgroup=texSection start='\\subsubsection\>'		 end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'				contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
  TexFold syn region texParaZone		matchgroup=texSection start='\\paragraph\>'		 end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'			contains=@texFoldGroup,@texParaGroup,@Spell
  TexFold syn region texSubParaZone		matchgroup=texSection start='\\subparagraph\>'		 end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'	contains=@texFoldGroup,@Spell
  TexFold syn region texTitle			matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}'													contains=@texFoldGroup,@Spell
  TexFold syn region texAbstract		matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}'											contains=@texFoldGroup,@Spell
 else
  TexFold syn region texDocZone			matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}'											contains=@texFoldGroup,@texDocGroup
  TexFold syn region texPartZone		matchgroup=texSection start='\\part\>'			 end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)'								contains=@texFoldGroup,@texPartGroup
  TexFold syn region texChapterZone		matchgroup=texSection start='\\chapter\>'		 end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)'							contains=@texFoldGroup,@texChapterGroup
  TexFold syn region texSectionZone		matchgroup=texSection start='\\section\>'		 end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'					contains=@texFoldGroup,@texSectionGroup
  TexFold syn region texSubSectionZone		matchgroup=texSection start='\\subsection\>'		 end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'				contains=@texFoldGroup,@texSubSectionGroup
  TexFold syn region texSubSubSectionZone	matchgroup=texSection start='\\subsubsection\>'		 end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'				contains=@texFoldGroup,@texSubSubSectionGroup
  TexFold syn region texParaZone		matchgroup=texSection start='\\paragraph\>'		 end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'			contains=@texFoldGroup,@texParaGroup
  TexFold syn region texSubParaZone		matchgroup=texSection start='\\subparagraph\>'		 end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)'	contains=@texFoldGroup
  TexFold syn region texTitle			matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}'													contains=@texFoldGroup
  TexFold syn region texAbstract		matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}'											contains=@texFoldGroup
  endif
endif

" particular support for bold and italic {{{1
if s:tex_fast =~# 'b'
  if s:tex_conceal =~# 'b'
   if !exists("g:tex_nospell") || !g:tex_nospell
    syn region texBoldStyle	matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texBoldGroup,@Spell
    syn region texBoldItalStyle	matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texItalGroup,@Spell
    syn region texItalStyle	matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texItalGroup,@Spell
    syn region texItalBoldStyle	matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texBoldGroup,@Spell
   else                                                                                              
    syn region texBoldStyle	matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texBoldGroup
    syn region texBoldItalStyle	matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texItalGroup
    syn region texItalStyle	matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texItalGroup
    syn region texItalBoldStyle	matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle  end="}" concealends contains=@texBoldGroup
   endif
  endif
endif

" Bad Math (mismatched): {{{1
if !exists("g:tex_no_math") && !s:tex_no_error
 syn match texBadMath		"\\end\s*{\s*\(array\|[bBpvV]matrix\|split\|smallmatrix\)\s*}"
 syn match texBadMath		"\\end\s*{\s*\(displaymath\|equation\|eqnarray\|math\)\*\=\s*}"
 syn match texBadMath		"\\[\])]"
endif

" Math Zones: {{{1
if !exists("g:tex_no_math")
 " TexNewMathZone: function creates a mathzone with the given suffix and mathzone name. {{{2
 "                 Starred forms are created if starform is true.  Starred
 "                 forms have syntax group and synchronization groups with a
 "                 "S" appended.  Handles: cluster, syntax, sync, and highlighting.
 fun! TexNewMathZone(sfx,mathzone,starform)
   let grpname  = "texMathZone".a:sfx
   let syncname = "texSyncMathZone".a:sfx
   if s:tex_fold_enabled
    let foldcmd= " fold"
   else
    let foldcmd= ""
   endif
   exe "syn cluster texMathZones add=".grpname
   if s:tex_fast =~# 'M'
    exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
   endif
   exe 'hi def link '.grpname.' texMath'
   if a:starform
    let grpname  = "texMathZone".a:sfx.'S'
    let syncname = "texSyncMathZone".a:sfx.'S'
    exe "syn cluster texMathZones add=".grpname
    if s:tex_fast =~# 'M'
     exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
     exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
     exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
    endif
    exe 'hi def link '.grpname.' texMath'
   endif
 endfun

 " Standard Math Zones: {{{2
 call TexNewMathZone("A","displaymath",1)
 call TexNewMathZone("B","eqnarray",1)
 call TexNewMathZone("C","equation",1)
 call TexNewMathZone("D","math",1)

 " Inline Math Zones: {{{2
 if s:tex_fast =~# 'M'
  if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'd'
   syn region texMathZoneV	matchgroup=Delimiter start="\\("			matchgroup=Delimiter	end="\\)\|%stopzone\>"			keepend concealends contains=@texMathZoneGroup
   syn region texMathZoneW	matchgroup=Delimiter start="\\\["			matchgroup=Delimiter	end="\\]\|%stopzone\>"			keepend concealends contains=@texMathZoneGroup
   syn region texMathZoneX	matchgroup=Delimiter start="\$" skip="\\\\\|\\\$"	matchgroup=Delimiter	end="\$"	end="%stopzone\>"		concealends contains=@texMathZoneGroup
   syn region texMathZoneY	matchgroup=Delimiter start="\$\$" 			matchgroup=Delimiter	end="\$\$"	end="%stopzone\>"	keepend concealends contains=@texMathZoneGroup
  else
   syn region texMathZoneV	matchgroup=Delimiter start="\\("			matchgroup=Delimiter	end="\\)\|%stopzone\>"			keepend contains=@texMathZoneGroup
   syn region texMathZoneW	matchgroup=Delimiter start="\\\["			matchgroup=Delimiter	end="\\]\|%stopzone\>"			keepend contains=@texMathZoneGroup
   syn region texMathZoneX	matchgroup=Delimiter start="\$" skip="\%(\\\\\)*\\\$"	matchgroup=Delimiter	end="\$"	end="%stopzone\>"		contains=@texMathZoneGroup
   syn region texMathZoneY	matchgroup=Delimiter start="\$\$" 			matchgroup=Delimiter	end="\$\$"	end="%stopzone\>"	keepend	contains=@texMathZoneGroup
  endif
  syn region texMathZoneZ	matchgroup=texStatement start="\\ensuremath\s*{"	matchgroup=texStatement	end="}"		end="%stopzone\>"	contains=@texMathZoneGroup
 endif

 syn match texMathOper		"[_^=]" contained

 " Text Inside Math Zones: {{{2
 if s:tex_fast =~# 'M'
  if !exists("g:tex_nospell") || !g:tex_nospell
   syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{'	end='}'	contains=@texFoldGroup,@Spell
  else
   syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{'	end='}'	contains=@texFoldGroup
  endif
 endif

 " \left..something.. and \right..something.. support: {{{2
 syn match   texMathDelimBad	contained		"\S"
 if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'm'
  syn match   texMathDelim	contained		"\\left\["
  syn match   texMathDelim	contained		"\\left\\{"	skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={
  syn match   texMathDelim	contained		"\\right\\}"	skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=}
  let s:texMathDelimList=[
     \ ['<'            , '<'] ,
     \ ['>'            , '>'] ,
     \ ['('            , '('] ,
     \ [')'            , ')'] ,
     \ ['\['           , '['] ,
     \ [']'            , ']'] ,
     \ ['\\{'          , '{'] ,
     \ ['\\}'          , '}'] ,
     \ ['|'            , '|'] ,
     \ ['\\|'          , '‖'] ,
     \ ['\\backslash'  , '\'] ,
     \ ['\\downarrow'  , '↓'] ,
     \ ['\\Downarrow'  , '⇓'] ,
     \ ['\\lbrace'     , '['] ,
     \ ['\\lceil'      , '⌈'] ,
     \ ['\\lfloor'     , '⌊'] ,
     \ ['\\lgroup'     , '⌊'] ,
     \ ['\\lmoustache' , '⎛'] ,
     \ ['\\rbrace'     , ']'] ,
     \ ['\\rceil'      , '⌉'] ,
     \ ['\\rfloor'     , '⌋'] ,
     \ ['\\rgroup'     , '⌋'] ,
     \ ['\\rmoustache' , '⎞'] ,
     \ ['\\uparrow'    , '↑'] ,
     \ ['\\Uparrow'    , '↑'] ,
     \ ['\\updownarrow', '↕'] ,
     \ ['\\Updownarrow', '⇕']]
  if &ambw == "double" || exists("g:tex_usedblwidth")
    let s:texMathDelimList= s:texMathDelimList + [
     \ ['\\langle'     , '〈'] ,
     \ ['\\rangle'     , '〉']]
  else
    let s:texMathDelimList= s:texMathDelimList + [
     \ ['\\langle'     , '<'] ,
     \ ['\\rangle'     , '>']]
  endif
  syn match texMathDelim	'\\[bB]igg\=[lr]' contained nextgroup=texMathDelimBad
  for texmath in s:texMathDelimList
   exe "syn match texMathDelim	'\\\\[bB]igg\\=[lr]\\=".texmath[0]."'	contained conceal cchar=".texmath[1]
  endfor

 else
  syn match   texMathDelim	contained		"\\\(left\|right\)\>"	skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad
  syn match   texMathDelim	contained		"\\[bB]igg\=[lr]\=\>"	skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad
  syn match   texMathDelimSet2	contained	"\\"		nextgroup=texMathDelimKey,texMathDelimBad
  syn match   texMathDelimSet1	contained	"[<>()[\]|/.]\|\\[{}|]"
  syn keyword texMathDelimKey	contained	backslash       lceil           lVert           rgroup          uparrow
  syn keyword texMathDelimKey	contained	downarrow       lfloor          rangle          rmoustache      Uparrow
  syn keyword texMathDelimKey	contained	Downarrow       lgroup          rbrace          rvert           updownarrow
  syn keyword texMathDelimKey	contained	langle          lmoustache      rceil           rVert           Updownarrow
  syn keyword texMathDelimKey	contained	lbrace          lvert           rfloor
 endif
 syn match   texMathDelim	contained		"\\\(left\|right\)arrow\>\|\<\([aA]rrow\|brace\)\=vert\>"
 syn match   texMathDelim	contained		"\\lefteqn\>"
endif

" Special TeX characters  ( \$ \& \% \# \{ \} \_ \S \P ) : {{{1
syn match texSpecialChar	"\\[$&%#{}_]"
if b:tex_stylish
  syn match texSpecialChar	"\\[SP@][^a-zA-Z@]"me=e-1
else
  syn match texSpecialChar	"\\[SP@]\A"me=e-1
endif
syn match texSpecialChar	"\\\\"
if !exists("g:tex_no_math")
 syn match texOnlyMath		"[_^]"
endif
syn match texSpecialChar	"\^\^[0-9a-f]\{2}\|\^\^\S"
if s:tex_conceal !~# 'S'
 syn match texSpecialChar	'\\glq\>'	contained conceal cchar=‚
 syn match texSpecialChar	'\\grq\>'	contained conceal cchar=‘
 syn match texSpecialChar	'\\glqq\>'	contained conceal cchar=„
 syn match texSpecialChar	'\\grqq\>'	contained conceal cchar=“
 syn match texSpecialChar	'\\hyp\>'	contained conceal cchar=-
endif

" Comments: {{{1
"    Normal TeX LaTeX     :   %....
"    Documented TeX Format:  ^^A...	-and-	leading %s (only)
if !s:tex_comment_nospell
 syn cluster texCommentGroup	contains=texTodo,@Spell
else
 syn cluster texCommentGroup	contains=texTodo,@NoSpell
endif
syn case ignore
syn keyword texTodo		contained		combak	fixme	todo	xxx
syn case match
if s:extfname == "dtx"
 syn match texComment		"\^\^A.*$"	contains=@texCommentGroup
 syn match texComment		"^%\+"		contains=@texCommentGroup
else
 if s:tex_fold_enabled
  " allows syntax-folding of 2 or more contiguous comment lines
  " single-line comments are not folded
  syn match  texComment	"%.*$"				contains=@texCommentGroup
  if s:tex_fast =~# 'c'
   TexFold syn region texComment						start="^\zs\s*%.*\_s*%"	skip="^\s*%"	end='^\ze\s*[^%]'	contains=@texCommentGroup
   TexFold syn region texNoSpell	contained	matchgroup=texComment	start="%\s*nospell\s*{"	end="%\s*nospell\s*}"			contains=@texFoldGroup,@NoSpell
  endif
 else
  syn match texComment		"%.*$"			contains=@texCommentGroup
  if s:tex_fast =~# 'c'
   syn region texNoSpell		contained	matchgroup=texComment start="%\s*nospell\s*{"	end="%\s*nospell\s*}"	contains=@texFoldGroup,@NoSpell
  endif
 endif
endif

" %begin-include ... %end-include acts like a texDocZone for \include'd files.  Permits spell checking, for example, in such files.
if !s:tex_nospell
 TexFold syn region texDocZone			matchgroup=texSection start='^\s*%begin-include\>'	 end='^\s*%end-include\>'											contains=@texFoldGroup,@texDocGroup,@Spell
else
 TexFold syn region texDocZone			matchgroup=texSection start='^\s*%begin-include\>'	 end='^\s*%end-include\>'											contains=@texFoldGroup,@texDocGroup
endif

" Separate lines used for verb` and verb# so that the end conditions {{{1
" will appropriately terminate.
" If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there.
if s:tex_fast =~# 'v'
  if exists("g:tex_verbspell") && g:tex_verbspell
   syn region texZone		start="\\begin{[vV]erbatim}"		end="\\end{[vV]erbatim}\|%stopzone\>"	contains=@Spell
   " listings package:
   syn region texZone		start="\\begin{lstlisting}"		end="\\end{lstlisting}\|%stopzone\>"	contains=@Spell
   if b:tex_stylish
    syn region texZone		start="\\verb\*\=\z([^\ta-zA-Z@]\)"	end="\z1\|%stopzone\>"			contains=@Spell
   else
    syn region texZone		start="\\verb\*\=\z([^\ta-zA-Z]\)"	end="\z1\|%stopzone\>"			contains=@Spell
   endif
  else
   syn region texZone		start="\\begin{[vV]erbatim}"		end="\\end{[vV]erbatim}\|%stopzone\>"
   if b:tex_stylish
     syn region texZone		start="\\verb\*\=\z([^\ta-zA-Z@]\)"	end="\z1\|%stopzone\>"
   else
     syn region texZone		start="\\verb\*\=\z([^\ta-zA-Z]\)"	end="\z1\|%stopzone\>"
   endif
  endif
endif

" Tex Reference Zones: {{{1
if s:tex_fast =~# 'r'
  syn region texZone		matchgroup=texStatement start="@samp{"			end="}\|%stopzone\>"	contains=@texRefGroup
  syn region texRefZone		matchgroup=texStatement start="\\nocite{"		end="}\|%stopzone\>"	contains=@texRefGroup
  syn region texRefZone		matchgroup=texStatement start="\\bibliography{"		end="}\|%stopzone\>"	contains=@texRefGroup
  syn region texRefZone		matchgroup=texStatement start="\\label{"		end="}\|%stopzone\>"	contains=@texRefGroup
  syn region texRefZone		matchgroup=texStatement start="\\\(page\|eq\)ref{"	end="}\|%stopzone\>"	contains=@texRefGroup
  syn region texRefZone		matchgroup=texStatement start="\\v\=ref{"		end="}\|%stopzone\>"	contains=@texRefGroup
  syn region texRefOption	contained	matchgroup=Delimiter start='\[' end=']'		contains=@texRefGroup,texRefZone	nextgroup=texRefOption,texCite
  syn region texCite		contained	matchgroup=Delimiter start='{' end='}'		contains=@texRefGroup,texRefZone,texCite
endif
syn match  texRefZone		'\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite

" Handle newcommand, newenvironment : {{{1
syn match  texNewCmd				"\\newcommand\>"			nextgroup=texCmdName skipwhite skipnl
if s:tex_fast =~# 'V'
  syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1  end="}"		nextgroup=texCmdArgs,texCmdBody skipwhite skipnl
  syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]"		nextgroup=texCmdBody skipwhite skipnl
  syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]"	matchgroup=Delimiter end="}" contains=@texCmdGroup
endif
syn match  texNewEnv				"\\newenvironment\>"			nextgroup=texEnvName skipwhite skipnl
if s:tex_fast =~# 'V'
  syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1  end="}"		nextgroup=texEnvBgn skipwhite skipnl
  syn region texEnvBgn  contained matchgroup=Delimiter start="{"rs=s+1  end="}"		nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup
  syn region texEnvEnd  contained matchgroup=Delimiter start="{"rs=s+1  end="}"		skipwhite skipnl contains=@texEnvGroup
endif

" Definitions/Commands: {{{1
syn match texDefCmd				"\\def\>"				nextgroup=texDefName skipwhite skipnl
if b:tex_stylish
  syn match texDefName contained		"\\[a-zA-Z@]\+"				nextgroup=texDefParms,texCmdBody skipwhite skipnl
  syn match texDefName contained		"\\[^a-zA-Z@]"				nextgroup=texDefParms,texCmdBody skipwhite skipnl
else
  syn match texDefName contained		"\\\a\+"				nextgroup=texDefParms,texCmdBody skipwhite skipnl
  syn match texDefName contained		"\\\A"					nextgroup=texDefParms,texCmdBody skipwhite skipnl
endif
syn match texDefParms  contained		"#[^{]*"	contains=texDefParm	nextgroup=texCmdBody skipwhite skipnl
syn match  texDefParm  contained		"#\d\+"

" TeX Lengths: {{{1
syn match  texLength		"\<\d\+\([.,]\d\+\)\=\s*\(true\)\=\s*\(bp\|cc\|cm\|dd\|em\|ex\|in\|mm\|pc\|pt\|sp\)\>"

" TeX String Delimiters: {{{1
syn match texString		"\(``\|''\|,,\)"

" makeatletter -- makeatother sections
if !s:tex_no_error
 if s:tex_fast =~# 'S'
  syn region texStyle			matchgroup=texStatement start='\\makeatletter' end='\\makeatother'	contains=@texStyleGroup contained
 endif
 syn match  texStyleStatement		"\\[a-zA-Z@]\+"	contained
 if s:tex_fast =~# 'S'
  syn region texStyleMatcher		matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"		contains=@texStyleGroup,texError	contained
  syn region texStyleMatcher		matchgroup=Delimiter start="\["				end="]"		contains=@texStyleGroup,texError	contained
 endif
endif

" Conceal mode support (supports set cole=2) {{{1
if has("conceal") && &enc == 'utf-8'

 " Math Symbols {{{2
 " (many of these symbols were contributed by Björn Winckler)
 if s:tex_conceal =~# 'm'
  let s:texMathList=[
    \ ['|'		, '‖'],
    \ ['aleph'		, 'ℵ'],
    \ ['amalg'		, '∐'],
    \ ['angle'		, '∠'],
    \ ['approx'		, '≈'],
    \ ['ast'		, '∗'],
    \ ['asymp'		, '≍'],
    \ ['backepsilon'	, '∍'],
    \ ['backsimeq'	, '≃'],
    \ ['backslash'	, '∖'],
    \ ['barwedge'	, '⊼'],
    \ ['because'	, '∵'],
    \ ['beth'           , 'ܒ'],
    \ ['between'	, '≬'],
    \ ['bigcap'		, '∩'],
    \ ['bigcirc'	, '○'],
    \ ['bigcup'		, '∪'],
    \ ['bigodot'	, '⊙'],
    \ ['bigoplus'	, '⊕'],
    \ ['bigotimes'	, '⊗'],
    \ ['bigsqcup'	, '⊔'],
    \ ['bigtriangledown', '∇'],
    \ ['bigtriangleup'	, '∆'],
    \ ['bigvee'		, '⋁'],
    \ ['bigwedge'	, '⋀'],
    \ ['blacksquare'	, '∎'],
    \ ['bot'		, '⊥'],
    \ ['bowtie'	        , '⋈'],
    \ ['boxdot'		, '⊡'],
    \ ['boxminus'	, '⊟'],
    \ ['boxplus'	, '⊞'],
    \ ['boxtimes'	, '⊠'],
    \ ['Box'            , '☐'],
    \ ['bullet'	        , '•'],
    \ ['bumpeq'		, '≏'],
    \ ['Bumpeq'		, '≎'],
    \ ['cap'		, '∩'],
    \ ['Cap'		, '⋒'],
    \ ['cdot'		, '·'],
    \ ['cdots'		, '⋯'],
    \ ['circ'		, '∘'],
    \ ['circeq'		, '≗'],
    \ ['circlearrowleft', '↺'],
    \ ['circlearrowright', '↻'],
    \ ['circledast'	, '⊛'],
    \ ['circledcirc'	, '⊚'],
    \ ['clubsuit'	, '♣'],
    \ ['complement'	, '∁'],
    \ ['cong'		, '≅'],
    \ ['coprod'		, '∐'],
    \ ['copyright'	, '©'],
    \ ['cup'		, '∪'],
    \ ['Cup'		, '⋓'],
    \ ['curlyeqprec'	, '⋞'],
    \ ['curlyeqsucc'	, '⋟'],
    \ ['curlyvee'	, '⋎'],
    \ ['curlywedge'	, '⋏'],
    \ ['dagger'	        , '†'],
    \ ['dashv'		, '⊣'],
    \ ['ddagger'	, '‡'],
    \ ['ddots'	        , '⋱'],
    \ ['diamond'	, '⋄'],
    \ ['diamondsuit'	, '♢'],
    \ ['div'		, '÷'],
    \ ['doteq'		, '≐'],
    \ ['doteqdot'	, '≑'],
    \ ['dotplus'	, '∔'],
    \ ['dots'		, '…'],
    \ ['dotsb'		, '⋯'],
    \ ['dotsc'		, '…'],
    \ ['dotsi'		, '⋯'],
    \ ['dotso'		, '…'],
    \ ['doublebarwedge'	, '⩞'],
    \ ['downarrow'	, '↓'],
    \ ['Downarrow'	, '⇓'],
    \ ['ell'		, 'ℓ'],
    \ ['emptyset'	, '∅'],
    \ ['eqcirc'		, '≖'],
    \ ['eqsim'		, '≂'],
    \ ['eqslantgtr'	, '⪖'],
    \ ['eqslantless'	, '⪕'],
    \ ['equiv'		, '≡'],
    \ ['eth'            , 'ð'],
    \ ['exists'		, '∃'],
    \ ['fallingdotseq'	, '≒'],
    \ ['flat'		, '♭'],
    \ ['forall'		, '∀'],
    \ ['frown'		, '⁔'],
    \ ['ge'		, '≥'],
    \ ['geq'		, '≥'],
    \ ['geqq'		, '≧'],
    \ ['gets'		, '←'],
    \ ['gimel'          , 'ℷ'],
    \ ['gg'		, '⟫'],
    \ ['gneqq'		, '≩'],
    \ ['gtrdot'		, '⋗'],
    \ ['gtreqless'	, '⋛'],
    \ ['gtrless'	, '≷'],
    \ ['gtrsim'		, '≳'],
    \ ['hbar'		, 'ℏ'],
    \ ['heartsuit'	, '♡'],
    \ ['hookleftarrow'	, '↩'],
    \ ['hookrightarrow'	, '↪'],
    \ ['iff'            , '⇔'],
    \ ['iiint'		, '∭'],
    \ ['iint'		, '∬'],
    \ ['Im'		, 'ℑ'],
    \ ['imath'		, 'ɩ'],
    \ ['implies'	, '⇒'],
    \ ['in'		, '∈'],
    \ ['infty'		, '∞'],
    \ ['int'		, '∫'],
    \ ['jmath'		, '𝚥'],
    \ ['land'		, '∧'],
    \ ['lceil'		, '⌈'],
    \ ['ldots'		, '…'],
    \ ['le'		, '≤'],
    \ ['leadsto'	, '↝'],
    \ ['left('		, '('],
    \ ['left\['		, '['],
    \ ['left\\{'	, '{'],
    \ ['leftarrow'	, '←'],
    \ ['Leftarrow'	, '⇐'],
    \ ['leftarrowtail'	, '↢'],
    \ ['leftharpoondown', '↽'],
    \ ['leftharpoonup'	, '↼'],
    \ ['leftrightarrow'	, '↔'],
    \ ['Leftrightarrow'	, '⇔'],
    \ ['leftrightsquigarrow', '↭'],
    \ ['leftthreetimes'	, '⋋'],
    \ ['leq'		, '≤'],
    \ ['leq'		, '≤'],
    \ ['leqq'		, '≦'],
    \ ['lessdot'	, '⋖'],
    \ ['lesseqgtr'	, '⋚'],
    \ ['lesssim'	, '≲'],
    \ ['lfloor'		, '⌊'],
    \ ['ll'		, '≪'],
    \ ['lmoustache'     , '╭'],
    \ ['lneqq'		, '≨'],
    \ ['lor'		, '∨'],
    \ ['ltimes'		, '⋉'],
    \ ['mapsto'		, '↦'],
    \ ['measuredangle'	, '∡'],
    \ ['mid'		, '∣'],
    \ ['models'		, '╞'],
    \ ['mp'		, '∓'],
    \ ['nabla'		, '∇'],
    \ ['natural'	, '♮'],
    \ ['ncong'		, '≇'],
    \ ['ne'		, '≠'],
    \ ['nearrow'	, '↗'],
    \ ['neg'		, '¬'],
    \ ['neq'		, '≠'],
    \ ['nexists'	, '∄'],
    \ ['ngeq'		, '≱'],
    \ ['ngeqq'		, '≱'],
    \ ['ngtr'		, '≯'],
    \ ['ni'		, '∋'],
    \ ['nleftarrow'	, '↚'],
    \ ['nLeftarrow'	, '⇍'],
    \ ['nLeftrightarrow', '⇎'],
    \ ['nleq'		, '≰'],
    \ ['nleqq'		, '≰'],
    \ ['nless'		, '≮'],
    \ ['nmid'		, '∤'],
    \ ['notin'		, '∉'],
    \ ['nparallel'      , '∦'],
    \ ['nprec'		, '⊀'],
    \ ['nrightarrow'	, '↛'],
    \ ['nRightarrow'	, '⇏'],
    \ ['nsim'		, '≁'],
    \ ['nsucc'		, '⊁'],
    \ ['ntriangleleft'	, '⋪'],
    \ ['ntrianglelefteq', '⋬'],
    \ ['ntriangleright'	, '⋫'],
    \ ['ntrianglerighteq', '⋭'],
    \ ['nvdash'		, '⊬'],
    \ ['nvDash'		, '⊭'],
    \ ['nVdash'		, '⊮'],
    \ ['nwarrow'	, '↖'],
    \ ['odot'		, '⊙'],
    \ ['oint'		, '∮'],
    \ ['ominus'		, '⊖'],
    \ ['oplus'		, '⊕'],
    \ ['oslash'		, '⊘'],
    \ ['otimes'		, '⊗'],
    \ ['owns'		, '∋'],
    \ ['P'	        , '¶'],
    \ ['parallel'	, '║'],
    \ ['partial'	, '∂'],
    \ ['perp'		, '⊥'],
    \ ['pitchfork'	, '⋔'],
    \ ['pm'		, '±'],
    \ ['prec'		, '≺'],
    \ ['precapprox'	, '⪷'],
    \ ['preccurlyeq'	, '≼'],
    \ ['preceq'		, '⪯'],
    \ ['precnapprox'	, '⪹'],
    \ ['precneqq'	, '⪵'],
    \ ['precsim'	, '≾'],
    \ ['prime'		, '′'],
    \ ['prod'		, '∏'],
    \ ['propto'		, '∝'],
    \ ['rceil'		, '⌉'],
    \ ['Re'		, 'ℜ'],
    \ ['rfloor'		, '⌋'],
    \ ['right)'		, ')'],
    \ ['right]'		, ']'],
    \ ['right\\}'	, '}'],
    \ ['rightarrow'	, '→'],
    \ ['Rightarrow'	, '⇒'],
    \ ['rightarrowtail'	, '↣'],
    \ ['rightleftharpoons', '⇌'],
    \ ['rightsquigarrow', '↝'],
    \ ['rightthreetimes', '⋌'],
    \ ['risingdotseq'	, '≓'],
    \ ['rmoustache'     , '╮'],
    \ ['rtimes'		, '⋊'],
    \ ['S'	        , '§'],
    \ ['searrow'	, '↘'],
    \ ['setminus'	, '∖'],
    \ ['sharp'		, '♯'],
    \ ['sim'		, '∼'],
    \ ['simeq'		, '⋍'],
    \ ['smile'		, '‿'],
    \ ['spadesuit'	, '♠'],
    \ ['sphericalangle'	, '∢'],
    \ ['sqcap'		, '⊓'],
    \ ['sqcup'		, '⊔'],
    \ ['sqsubset'	, '⊏'],
    \ ['sqsubseteq'	, '⊑'],
    \ ['sqsupset'	, '⊐'],
    \ ['sqsupseteq'	, '⊒'],
    \ ['star'		, '✫'],
    \ ['subset'		, '⊂'],
    \ ['Subset'		, '⋐'],
    \ ['subseteq'	, '⊆'],
    \ ['subseteqq'	, '⫅'],
    \ ['subsetneq'	, '⊊'],
    \ ['subsetneqq'	, '⫋'],
    \ ['succ'		, '≻'],
    \ ['succapprox'	, '⪸'],
    \ ['succcurlyeq'	, '≽'],
    \ ['succeq'		, '⪰'],
    \ ['succnapprox'	, '⪺'],
    \ ['succneqq'	, '⪶'],
    \ ['succsim'	, '≿'],
    \ ['sum'		, '∑'],
    \ ['supset'		, '⊃'],
    \ ['Supset'		, '⋑'],
    \ ['supseteq'	, '⊇'],
    \ ['supseteqq'	, '⫆'],
    \ ['supsetneq'	, '⊋'],
    \ ['supsetneqq'	, '⫌'],
    \ ['surd'		, '√'],
    \ ['swarrow'	, '↙'],
    \ ['therefore'	, '∴'],
    \ ['times'		, '×'],
    \ ['to'		, '→'],
    \ ['top'		, '⊤'],
    \ ['triangle'	, '∆'],
    \ ['triangleleft'	, '⊲'],
    \ ['trianglelefteq'	, '⊴'],
    \ ['triangleq'	, '≜'],
    \ ['triangleright'	, '⊳'],
    \ ['trianglerighteq', '⊵'],
    \ ['twoheadleftarrow', '↞'],
    \ ['twoheadrightarrow', '↠'],
    \ ['ulcorner'       , '⌜'],
    \ ['uparrow'	, '↑'],
    \ ['Uparrow'	, '⇑'],
    \ ['updownarrow'	, '↕'],
    \ ['Updownarrow'	, '⇕'],
    \ ['urcorner'       , '⌝'],
    \ ['varnothing'	, '∅'],
    \ ['vartriangle'	, '∆'],
    \ ['vdash'		, '⊢'],
    \ ['vDash'		, '⊨'],
    \ ['Vdash'		, '⊩'],
    \ ['vdots'		, '⋮'],
    \ ['vee'		, '∨'],
    \ ['veebar'		, '⊻'],
    \ ['Vvdash'		, '⊪'],
    \ ['wedge'		, '∧'],
    \ ['wp'		, '℘'],
    \ ['wr'		, '≀']]
"    \ ['jmath'		, 'X']
"    \ ['uminus'	, 'X']
"    \ ['uplus'		, 'X']
  if &ambw == "double" || exists("g:tex_usedblwidth")
    let s:texMathList= s:texMathList + [
    \ ['right\\rangle'	, '〉'],
    \ ['left\\langle'	, '〈']]
  else
    let s:texMathList= s:texMathList + [
    \ ['right\\rangle'	, '>'],
    \ ['left\\langle'	, '<']]
  endif
  for texmath in s:texMathList
   if texmath[0] =~# '\w$'
    exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
   else
    exe "syn match texMathSymbol '\\\\".texmath[0]."' contained conceal cchar=".texmath[1]
   endif
  endfor

  if &ambw == "double"
   syn match texMathSymbol '\\gg\>'			contained conceal cchar=≫
   syn match texMathSymbol '\\ll\>'			contained conceal cchar=≪
  else
   syn match texMathSymbol '\\gg\>'			contained conceal cchar=⟫
   syn match texMathSymbol '\\ll\>'			contained conceal cchar=⟪
  endif

  syn match texMathSymbol '\\hat{a}' contained conceal cchar=â
  syn match texMathSymbol '\\hat{A}' contained conceal cchar=Â
  syn match texMathSymbol '\\hat{c}' contained conceal cchar=ĉ
  syn match texMathSymbol '\\hat{C}' contained conceal cchar=Ĉ
  syn match texMathSymbol '\\hat{e}' contained conceal cchar=ê
  syn match texMathSymbol '\\hat{E}' contained conceal cchar=Ê
  syn match texMathSymbol '\\hat{g}' contained conceal cchar=ĝ
  syn match texMathSymbol '\\hat{G}' contained conceal cchar=Ĝ
  syn match texMathSymbol '\\hat{i}' contained conceal cchar=î
  syn match texMathSymbol '\\hat{I}' contained conceal cchar=Î
  syn match texMathSymbol '\\hat{o}' contained conceal cchar=ô
  syn match texMathSymbol '\\hat{O}' contained conceal cchar=Ô
  syn match texMathSymbol '\\hat{s}' contained conceal cchar=ŝ
  syn match texMathSymbol '\\hat{S}' contained conceal cchar=Ŝ
  syn match texMathSymbol '\\hat{u}' contained conceal cchar=û
  syn match texMathSymbol '\\hat{U}' contained conceal cchar=Û
  syn match texMathSymbol '\\hat{w}' contained conceal cchar=ŵ
  syn match texMathSymbol '\\hat{W}' contained conceal cchar=Ŵ
  syn match texMathSymbol '\\hat{y}' contained conceal cchar=ŷ
  syn match texMathSymbol '\\hat{Y}' contained conceal cchar=Ŷ
"  syn match texMathSymbol '\\bar{a}' contained conceal cchar=a̅

  syn match texMathSymbol '\\dot{B}' contained conceal cchar=Ḃ
  syn match texMathSymbol '\\dot{b}' contained conceal cchar=ḃ
  syn match texMathSymbol '\\dot{D}' contained conceal cchar=Ḋ
  syn match texMathSymbol '\\dot{d}' contained conceal cchar=ḋ
  syn match texMathSymbol '\\dot{F}' contained conceal cchar=Ḟ
  syn match texMathSymbol '\\dot{f}' contained conceal cchar=ḟ
  syn match texMathSymbol '\\dot{H}' contained conceal cchar=Ḣ
  syn match texMathSymbol '\\dot{h}' contained conceal cchar=ḣ
  syn match texMathSymbol '\\dot{M}' contained conceal cchar=Ṁ
  syn match texMathSymbol '\\dot{m}' contained conceal cchar=ṁ
  syn match texMathSymbol '\\dot{N}' contained conceal cchar=Ṅ
  syn match texMathSymbol '\\dot{n}' contained conceal cchar=ṅ
  syn match texMathSymbol '\\dot{P}' contained conceal cchar=Ṗ
  syn match texMathSymbol '\\dot{p}' contained conceal cchar=ṗ
  syn match texMathSymbol '\\dot{R}' contained conceal cchar=Ṙ
  syn match texMathSymbol '\\dot{r}' contained conceal cchar=ṙ
  syn match texMathSymbol '\\dot{S}' contained conceal cchar=Ṡ
  syn match texMathSymbol '\\dot{s}' contained conceal cchar=ṡ
  syn match texMathSymbol '\\dot{T}' contained conceal cchar=Ṫ
  syn match texMathSymbol '\\dot{t}' contained conceal cchar=ṫ
  syn match texMathSymbol '\\dot{W}' contained conceal cchar=Ẇ
  syn match texMathSymbol '\\dot{w}' contained conceal cchar=ẇ
  syn match texMathSymbol '\\dot{X}' contained conceal cchar=Ẋ
  syn match texMathSymbol '\\dot{x}' contained conceal cchar=ẋ
  syn match texMathSymbol '\\dot{Y}' contained conceal cchar=Ẏ
  syn match texMathSymbol '\\dot{y}' contained conceal cchar=ẏ
  syn match texMathSymbol '\\dot{Z}' contained conceal cchar=Ż
  syn match texMathSymbol '\\dot{z}' contained conceal cchar=ż

  syn match texMathSymbol '\\dot{C}' contained conceal cchar=Ċ
  syn match texMathSymbol '\\dot{c}' contained conceal cchar=ċ
  syn match texMathSymbol '\\dot{E}' contained conceal cchar=Ė
  syn match texMathSymbol '\\dot{e}' contained conceal cchar=ė
  syn match texMathSymbol '\\dot{G}' contained conceal cchar=Ġ
  syn match texMathSymbol '\\dot{g}' contained conceal cchar=ġ
  syn match texMathSymbol '\\dot{I}' contained conceal cchar=İ

  syn match texMathSymbol '\\dot{A}' contained conceal cchar=Ȧ
  syn match texMathSymbol '\\dot{a}' contained conceal cchar=ȧ
  syn match texMathSymbol '\\dot{O}' contained conceal cchar=Ȯ
  syn match texMathSymbol '\\dot{o}' contained conceal cchar=ȯ
 endif

 " Greek {{{2
 if s:tex_conceal =~# 'g'
  fun! s:Greek(group,pat,cchar)
    exe 'syn match '.a:group." '".a:pat."' contained conceal cchar=".a:cchar
  endfun
  call s:Greek('texGreek','\\alpha\>'		,'α')
  call s:Greek('texGreek','\\beta\>'		,'β')
  call s:Greek('texGreek','\\gamma\>'		,'γ')
  call s:Greek('texGreek','\\delta\>'		,'δ')
  call s:Greek('texGreek','\\epsilon\>'		,'ϵ')
  call s:Greek('texGreek','\\varepsilon\>'	,'ε')
  call s:Greek('texGreek','\\zeta\>'		,'ζ')
  call s:Greek('texGreek','\\eta\>'		,'η')
  call s:Greek('texGreek','\\theta\>'		,'θ')
  call s:Greek('texGreek','\\vartheta\>'	,'ϑ')
  call s:Greek('texGreek','\\kappa\>'		,'κ')
  call s:Greek('texGreek','\\lambda\>'		,'λ')
  call s:Greek('texGreek','\\mu\>'		,'μ')
  call s:Greek('texGreek','\\nu\>'		,'ν')
  call s:Greek('texGreek','\\xi\>'		,'ξ')
  call s:Greek('texGreek','\\pi\>'		,'π')
  call s:Greek('texGreek','\\varpi\>'		,'ϖ')
  call s:Greek('texGreek','\\rho\>'		,'ρ')
  call s:Greek('texGreek','\\varrho\>'		,'ϱ')
  call s:Greek('texGreek','\\sigma\>'		,'σ')
  call s:Greek('texGreek','\\varsigma\>'	,'ς')
  call s:Greek('texGreek','\\tau\>'		,'τ')
  call s:Greek('texGreek','\\upsilon\>'		,'υ')
  call s:Greek('texGreek','\\phi\>'		,'ϕ')
  call s:Greek('texGreek','\\varphi\>'		,'φ')
  call s:Greek('texGreek','\\chi\>'		,'χ')
  call s:Greek('texGreek','\\psi\>'		,'ψ')
  call s:Greek('texGreek','\\omega\>'		,'ω')
  call s:Greek('texGreek','\\Gamma\>'		,'Γ')
  call s:Greek('texGreek','\\Delta\>'		,'Δ')
  call s:Greek('texGreek','\\Theta\>'		,'Θ')
  call s:Greek('texGreek','\\Lambda\>'		,'Λ')
  call s:Greek('texGreek','\\Xi\>'		,'Χ')
  call s:Greek('texGreek','\\Pi\>'		,'Π')
  call s:Greek('texGreek','\\Sigma\>'		,'Σ')
  call s:Greek('texGreek','\\Upsilon\>'		,'Υ')
  call s:Greek('texGreek','\\Phi\>'		,'Φ')
  call s:Greek('texGreek','\\Psi\>'		,'Ψ')
  call s:Greek('texGreek','\\Omega\>'		,'Ω')
  delfun s:Greek
 endif

 " Superscripts/Subscripts {{{2
 if s:tex_conceal =~# 's'
  if s:tex_fast =~# 's'
   syn region texSuperscript	matchgroup=Delimiter start='\^{'	skip="\\\\\|\\[{}]" end='}'	contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
   syn region texSubscript	matchgroup=Delimiter start='_{'		skip="\\\\\|\\[{}]" end='}'	contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
  endif
  " s:SuperSub:
  fun! s:SuperSub(group,leader,pat,cchar)
    if a:pat =~# '^\\' || (a:leader == '\^' && a:pat =~# s:tex_superscripts) || (a:leader == '_' && a:pat =~# s:tex_subscripts)
"     call Decho("SuperSub: group<".a:group."> leader<".a:leader."> pat<".a:pat."> cchar<".a:cchar.">")
     exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar
     exe 'syn match '.a:group."s '".a:pat        ."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s'
    endif
  endfun
  call s:SuperSub('texSuperscript','\^','0','⁰')
  call s:SuperSub('texSuperscript','\^','1','¹')
  call s:SuperSub('texSuperscript','\^','2','²')
  call s:SuperSub('texSuperscript','\^','3','³')
  call s:SuperSub('texSuperscript','\^','4','⁴')
  call s:SuperSub('texSuperscript','\^','5','⁵')
  call s:SuperSub('texSuperscript','\^','6','⁶')
  call s:SuperSub('texSuperscript','\^','7','⁷')
  call s:SuperSub('texSuperscript','\^','8','⁸')
  call s:SuperSub('texSuperscript','\^','9','⁹')
  call s:SuperSub('texSuperscript','\^','a','ᵃ')
  call s:SuperSub('texSuperscript','\^','b','ᵇ')
  call s:SuperSub('texSuperscript','\^','c','ᶜ')
  call s:SuperSub('texSuperscript','\^','d','ᵈ')
  call s:SuperSub('texSuperscript','\^','e','ᵉ')
  call s:SuperSub('texSuperscript','\^','f','ᶠ')
  call s:SuperSub('texSuperscript','\^','g','ᵍ')
  call s:SuperSub('texSuperscript','\^','h','ʰ')
  call s:SuperSub('texSuperscript','\^','i','ⁱ')
  call s:SuperSub('texSuperscript','\^','j','ʲ')
  call s:SuperSub('texSuperscript','\^','k','ᵏ')
  call s:SuperSub('texSuperscript','\^','l','ˡ')
  call s:SuperSub('texSuperscript','\^','m','ᵐ')
  call s:SuperSub('texSuperscript','\^','n','ⁿ')
  call s:SuperSub('texSuperscript','\^','o','ᵒ')
  call s:SuperSub('texSuperscript','\^','p','ᵖ')
  call s:SuperSub('texSuperscript','\^','r','ʳ')
  call s:SuperSub('texSuperscript','\^','s','ˢ')
  call s:SuperSub('texSuperscript','\^','t','ᵗ')
  call s:SuperSub('texSuperscript','\^','u','ᵘ')
  call s:SuperSub('texSuperscript','\^','v','ᵛ')
  call s:SuperSub('texSuperscript','\^','w','ʷ')
  call s:SuperSub('texSuperscript','\^','x','ˣ')
  call s:SuperSub('texSuperscript','\^','y','ʸ')
  call s:SuperSub('texSuperscript','\^','z','ᶻ')
  call s:SuperSub('texSuperscript','\^','A','ᴬ')
  call s:SuperSub('texSuperscript','\^','B','ᴮ')
  call s:SuperSub('texSuperscript','\^','D','ᴰ')
  call s:SuperSub('texSuperscript','\^','E','ᴱ')
  call s:SuperSub('texSuperscript','\^','G','ᴳ')
  call s:SuperSub('texSuperscript','\^','H','ᴴ')
  call s:SuperSub('texSuperscript','\^','I','ᴵ')
  call s:SuperSub('texSuperscript','\^','J','ᴶ')
  call s:SuperSub('texSuperscript','\^','K','ᴷ')
  call s:SuperSub('texSuperscript','\^','L','ᴸ')
  call s:SuperSub('texSuperscript','\^','M','ᴹ')
  call s:SuperSub('texSuperscript','\^','N','ᴺ')
  call s:SuperSub('texSuperscript','\^','O','ᴼ')
  call s:SuperSub('texSuperscript','\^','P','ᴾ')
  call s:SuperSub('texSuperscript','\^','R','ᴿ')
  call s:SuperSub('texSuperscript','\^','T','ᵀ')
  call s:SuperSub('texSuperscript','\^','U','ᵁ')
  call s:SuperSub('texSuperscript','\^','W','ᵂ')
  call s:SuperSub('texSuperscript','\^',',','︐')
  call s:SuperSub('texSuperscript','\^',':','︓')
  call s:SuperSub('texSuperscript','\^',';','︔')
  call s:SuperSub('texSuperscript','\^','+','⁺')
  call s:SuperSub('texSuperscript','\^','-','⁻')
  call s:SuperSub('texSuperscript','\^','<','˂')
  call s:SuperSub('texSuperscript','\^','>','˃')
  call s:SuperSub('texSuperscript','\^','/','ˊ')
  call s:SuperSub('texSuperscript','\^','(','⁽')
  call s:SuperSub('texSuperscript','\^',')','⁾')
  call s:SuperSub('texSuperscript','\^','\.','˙')
  call s:SuperSub('texSuperscript','\^','=','˭')
  call s:SuperSub('texSubscript','_','0','₀')
  call s:SuperSub('texSubscript','_','1','₁')
  call s:SuperSub('texSubscript','_','2','₂')
  call s:SuperSub('texSubscript','_','3','₃')
  call s:SuperSub('texSubscript','_','4','₄')
  call s:SuperSub('texSubscript','_','5','₅')
  call s:SuperSub('texSubscript','_','6','₆')
  call s:SuperSub('texSubscript','_','7','₇')
  call s:SuperSub('texSubscript','_','8','₈')
  call s:SuperSub('texSubscript','_','9','₉')
  call s:SuperSub('texSubscript','_','a','ₐ')
  call s:SuperSub('texSubscript','_','e','ₑ')
  call s:SuperSub('texSubscript','_','h','ₕ')
  call s:SuperSub('texSubscript','_','i','ᵢ')
  call s:SuperSub('texSubscript','_','j','ⱼ')
  call s:SuperSub('texSubscript','_','k','ₖ')
  call s:SuperSub('texSubscript','_','l','ₗ')
  call s:SuperSub('texSubscript','_','m','ₘ')
  call s:SuperSub('texSubscript','_','n','ₙ')
  call s:SuperSub('texSubscript','_','o','ₒ')
  call s:SuperSub('texSubscript','_','p','ₚ')
  call s:SuperSub('texSubscript','_','r','ᵣ')
  call s:SuperSub('texSubscript','_','s','ₛ')
  call s:SuperSub('texSubscript','_','t','ₜ')
  call s:SuperSub('texSubscript','_','u','ᵤ')
  call s:SuperSub('texSubscript','_','v','ᵥ')
  call s:SuperSub('texSubscript','_','x','ₓ')
  call s:SuperSub('texSubscript','_',',','︐')
  call s:SuperSub('texSubscript','_','+','₊')
  call s:SuperSub('texSubscript','_','-','₋')
  call s:SuperSub('texSubscript','_','/','ˏ')
  call s:SuperSub('texSubscript','_','(','₍')
  call s:SuperSub('texSubscript','_',')','₎')
  call s:SuperSub('texSubscript','_','\.','‸')
  call s:SuperSub('texSubscript','_','r','ᵣ')
  call s:SuperSub('texSubscript','_','v','ᵥ')
  call s:SuperSub('texSubscript','_','x','ₓ')
  call s:SuperSub('texSubscript','_','\\beta\>' ,'ᵦ')
  call s:SuperSub('texSubscript','_','\\delta\>','ᵨ')
  call s:SuperSub('texSubscript','_','\\phi\>'  ,'ᵩ')
  call s:SuperSub('texSubscript','_','\\gamma\>','ᵧ')
  call s:SuperSub('texSubscript','_','\\chi\>'  ,'ᵪ')

  delfun s:SuperSub
 endif

 " Accented characters and Ligatures: {{{2
 if s:tex_conceal =~# 'a'
  if b:tex_stylish
   syn match texAccent		"\\[bcdvuH][^a-zA-Z@]"me=e-1
   syn match texLigature	"\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
   syn match texLigature	'--'
   syn match texLigature	'---'
  else
   fun! s:Accents(chr,...)
     let i= 1
     for accent in ["`","\\'","^",'"','\~','\.','=',"c","H","k","r","u","v"]
      if i > a:0
       break
      endif
      if strlen(a:{i}) == 0 || a:{i} == ' ' || a:{i} == '?'
       let i= i + 1
       continue
      endif
      if accent =~# '\a'
       exe "syn match texAccent '".'\\'.accent.'\(\s*{'.a:chr.'}\|\s\+'.a:chr.'\)'."' conceal cchar=".a:{i}
      else
       exe "syn match texAccent '".'\\'.accent.'\s*\({'.a:chr.'}\|'.a:chr.'\)'."' conceal cchar=".a:{i}
      endif
      let i= i + 1
     endfor
   endfun
   "                  \`  \'  \^  \"  \~  \.  \=  \c  \H  \k  \r  \u  \v
   call s:Accents('a','à','á','â','ä','ã','ȧ','ā',' ',' ','ą','å','ă','ǎ')
   call s:Accents('A','À','Á','Â','Ä','Ã','Ȧ','Ā',' ',' ','Ą','Å','Ă','Ǎ')
   call s:Accents('c',' ','ć','ĉ',' ',' ','ċ',' ','ç',' ',' ',' ',' ','č')
   call s:Accents('C',' ','Ć','Ĉ',' ',' ','Ċ',' ','Ç',' ',' ',' ',' ','Č')
   call s:Accents('d',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ď')
   call s:Accents('D',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ď')
   call s:Accents('e','è','é','ê','ë','ẽ','ė','ē','ȩ',' ','ę',' ','ĕ','ě')
   call s:Accents('E','È','É','Ê','Ë','Ẽ','Ė','Ē','Ȩ',' ','Ę',' ','Ĕ','Ě')
   call s:Accents('g',' ','ǵ','ĝ',' ',' ','ġ',' ','ģ',' ',' ',' ','ğ','ǧ')
   call s:Accents('G',' ','Ǵ','Ĝ',' ',' ','Ġ',' ','Ģ',' ',' ',' ','Ğ','Ǧ')
   call s:Accents('h',' ',' ','ĥ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ȟ')
   call s:Accents('H',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ȟ')
   call s:Accents('i','ì','í','î','ï','ĩ','į','ī',' ',' ','į',' ','ĭ','ǐ')
   call s:Accents('I','Ì','Í','Î','Ï','Ĩ','İ','Ī',' ',' ','Į',' ','Ĭ','Ǐ')
   call s:Accents('J',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ǰ')
   call s:Accents('k',' ',' ',' ',' ',' ',' ',' ','ķ',' ',' ',' ',' ','ǩ')
   call s:Accents('K',' ',' ',' ',' ',' ',' ',' ','Ķ',' ',' ',' ',' ','Ǩ')
   call s:Accents('l',' ','ĺ','ľ',' ',' ',' ',' ','ļ',' ',' ',' ',' ','ľ')
   call s:Accents('L',' ','Ĺ','Ľ',' ',' ',' ',' ','Ļ',' ',' ',' ',' ','Ľ')
   call s:Accents('n',' ','ń',' ',' ','ñ',' ',' ','ņ',' ',' ',' ',' ','ň')
   call s:Accents('N',' ','Ń',' ',' ','Ñ',' ',' ','Ņ',' ',' ',' ',' ','Ň')
   call s:Accents('o','ò','ó','ô','ö','õ','ȯ','ō',' ','ő','ǫ',' ','ŏ','ǒ')
   call s:Accents('O','Ò','Ó','Ô','Ö','Õ','Ȯ','Ō',' ','Ő','Ǫ',' ','Ŏ','Ǒ')
   call s:Accents('r',' ','ŕ',' ',' ',' ',' ',' ','ŗ',' ',' ',' ',' ','ř')
   call s:Accents('R',' ','Ŕ',' ',' ',' ',' ',' ','Ŗ',' ',' ',' ',' ','Ř')
   call s:Accents('s',' ','ś','ŝ',' ',' ',' ',' ','ş',' ','ȿ',' ',' ','š')
   call s:Accents('S',' ','Ś','Ŝ',' ',' ',' ',' ','Ş',' ',' ',' ',' ','Š')
   call s:Accents('t',' ',' ',' ',' ',' ',' ',' ','ţ',' ',' ',' ',' ','ť')
   call s:Accents('T',' ',' ',' ',' ',' ',' ',' ','Ţ',' ',' ',' ',' ','Ť')
   call s:Accents('u','ù','ú','û','ü','ũ',' ','ū',' ','ű','ų','ů','ŭ','ǔ')
   call s:Accents('U','Ù','Ú','Û','Ü','Ũ',' ','Ū',' ','Ű','Ų','Ů','Ŭ','Ǔ')
   call s:Accents('w',' ',' ','ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ')
   call s:Accents('W',' ',' ','Ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ')
   call s:Accents('y','ỳ','ý','ŷ','ÿ','ỹ',' ',' ',' ',' ',' ',' ',' ',' ')
   call s:Accents('Y','Ỳ','Ý','Ŷ','Ÿ','Ỹ',' ',' ',' ',' ',' ',' ',' ',' ')
   call s:Accents('z',' ','ź',' ',' ',' ','ż',' ',' ',' ',' ',' ',' ','ž')
   call s:Accents('Z',' ','Ź',' ',' ',' ','Ż',' ',' ',' ',' ',' ',' ','Ž')
   call s:Accents('\\i','ì','í','î','ï','ĩ','į',' ',' ',' ',' ',' ','ĭ',' ')
   "                    \`  \'  \^  \"  \~  \.  \=  \c  \H  \k  \r  \u  \v
   delfun s:Accents
   syn match texAccent		'\\aa\>'	conceal cchar=å
   syn match texAccent		'\\AA\>'	conceal cchar=Å
   syn match texAccent		'\\o\>'		conceal cchar=ø
   syn match texAccent		'\\O\>'		conceal cchar=Ø
   syn match texLigature	'\\AE\>'	conceal cchar=Æ
   syn match texLigature	'\\ae\>'	conceal cchar=æ
   syn match texLigature	'\\oe\>'	conceal cchar=œ
   syn match texLigature	'\\OE\>'	conceal cchar=Œ
   syn match texLigature	'\\ss\>'	conceal cchar=ß
   syn match texLigature	'--'		conceal cchar=–
   syn match texLigature	'---'		conceal cchar=—
  endif
 endif
endif

" ---------------------------------------------------------------------
" LaTeX synchronization: {{{1
syn sync maxlines=200
syn sync minlines=50

syn  sync match texSyncStop			groupthere NONE		"%stopzone\>"

" Synchronization: {{{1
" The $..$ and $$..$$ make for impossible sync patterns
" (one can't tell if a "$$" starts or stops a math zone by itself)
" The following grouptheres coupled with minlines above
" help improve the odds of good syncing.
if !exists("g:tex_no_math")
 syn sync match texSyncMathZoneA		groupthere NONE		"\\end{abstract}"
 syn sync match texSyncMathZoneA		groupthere NONE		"\\end{center}"
 syn sync match texSyncMathZoneA		groupthere NONE		"\\end{description}"
 syn sync match texSyncMathZoneA		groupthere NONE		"\\end{enumerate}"
 syn sync match texSyncMathZoneA		groupthere NONE		"\\end{itemize}"
 syn sync match texSyncMathZoneA		groupthere NONE		"\\end{table}"
 syn sync match texSyncMathZoneA		groupthere NONE		"\\end{tabular}"
 syn sync match texSyncMathZoneA		groupthere NONE		"\\\(sub\)*section\>"
endif

" ---------------------------------------------------------------------
" Highlighting: {{{1

" Define the default highlighting. {{{1
if !exists("skip_tex_syntax_inits")

  " TeX highlighting groups which should share similar highlighting
  if !exists("g:tex_no_error")
   if !exists("g:tex_no_math")
    hi def link texBadMath		texError
    hi def link texMathDelimBad		texError
    hi def link texMathError		texError
    if !b:tex_stylish
      hi def link texOnlyMath		texError
    endif
   endif
   hi def link texError			Error
  endif

  hi texBoldStyle		gui=bold	cterm=bold
  hi texItalStyle		gui=italic	cterm=italic
  hi texBoldItalStyle		gui=bold,italic cterm=bold,italic
  hi texItalBoldStyle		gui=bold,italic cterm=bold,italic
  hi def link texCite		texRefZone
  hi def link texDefCmd		texDef
  hi def link texDefName	texDef
  hi def link texDocType	texCmdName
  hi def link texDocTypeArgs	texCmdArgs
  hi def link texInputFileOpt	texCmdArgs
  hi def link texInputCurlies	texDelimiter
  hi def link texLigature	texSpecialChar
  if !exists("g:tex_no_math")
   hi def link texMathDelimSet1	texMathDelim
   hi def link texMathDelimSet2	texMathDelim
   hi def link texMathDelimKey	texMathDelim
   hi def link texMathMatcher	texMath
   hi def link texAccent	texStatement
   hi def link texGreek		texStatement
   hi def link texSuperscript	texStatement
   hi def link texSubscript	texStatement
   hi def link texSuperscripts 	texSuperscript
   hi def link texSubscripts 	texSubscript
   hi def link texMathSymbol	texStatement
   hi def link texMathZoneV	texMath
   hi def link texMathZoneW	texMath
   hi def link texMathZoneX	texMath
   hi def link texMathZoneY	texMath
   hi def link texMathZoneV	texMath
   hi def link texMathZoneZ	texMath
  endif
  hi def link texBeginEnd	texCmdName
  hi def link texBeginEndName	texSection
  hi def link texSpaceCode	texStatement
  hi def link texStyleStatement	texStatement
  hi def link texTypeSize	texType
  hi def link texTypeStyle	texType

   " Basic TeX highlighting groups
  hi def link texCmdArgs	Number
  hi def link texCmdName	Statement
  hi def link texComment	Comment
  hi def link texDef		Statement
  hi def link texDefParm	Special
  hi def link texDelimiter	Delimiter
  hi def link texInput		Special
  hi def link texInputFile	Special
  hi def link texLength		Number
  hi def link texMath		Special
  hi def link texMathDelim	Statement
  hi def link texMathOper	Operator
  hi def link texNewCmd		Statement
  hi def link texNewEnv		Statement
  hi def link texOption		Number
  hi def link texRefZone	Special
  hi def link texSection	PreCondit
  hi def link texSpaceCodeChar	Special
  hi def link texSpecialChar	SpecialChar
  hi def link texStatement	Statement
  hi def link texString		String
  hi def link texTodo		Todo
  hi def link texType		Type
  hi def link texZone		PreCondit

endif

" Cleanup: {{{1
delc TexFold
unlet s:extfname
let   b:current_syntax = "tex"
let &cpo               = s:keepcpo
unlet s:keepcpo
" vim: ts=8 fdm=marker
PK�j�Z9�EK��vim80/syntax/gp.vimnu�[���" Vim syntax file
" Language:	gp (version 2.5)
" Maintainer:	Karim Belabas <Karim.Belabas@math.u-bordeaux.fr>
" Last change:	2012 Jan 08
" URL:		http://pari.math.u-bordeaux.fr

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" control statements
syntax keyword gpStatement	break return next
syntax keyword gpConditional	if
syntax keyword gpRepeat		until while for fordiv forell forprime 
syntax keyword gpRepeat		forsubgroup forstep forvec
" storage class
syntax keyword gpScope		my local global
" defaults
syntax keyword gpInterfaceKey	breakloop colors compatible
syntax keyword gpInterfaceKey	datadir debug debugfiles debugmem 
syntax keyword gpInterfaceKey	echo factor_add_primes factor_proven format 
syntax keyword gpInterfaceKey	graphcolormap graphcolors
syntax keyword gpInterfaceKey	help histfile histsize 
syntax keyword gpInterfaceKey	lines linewrap log logfile new_galois_format
syntax keyword gpInterfaceKey	output parisize path prettyprinter primelimit
syntax keyword gpInterfaceKey	prompt prompt_cont psfile 
syntax keyword gpInterfaceKey	readline realprecision recover 
syntax keyword gpInterfaceKey	secure seriesprecision simplify strictmatch
syntax keyword gpInterfaceKey	TeXstyle timer

syntax match gpInterface	"^\s*\\[a-z].*"
syntax keyword gpInterface	default
syntax keyword gpInput		read input

" functions
syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*[^ \t=]"me=e-1 contains=gpFunction,gpArgs
syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*$" contains=gpFunction,gpArgs
syntax match gpArgs contained "[a-zA-Z][_a-zA-Z0-9]*"
syntax match gpFunction contained "^\s*[a-zA-Z][_a-zA-Z0-9]*("me=e-1

" String and Character constants
" Highlight special (backslash'ed) characters differently
syntax match  gpSpecial contained "\\[ent\\]"
syntax region gpString  start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gpSpecial

"comments
syntax region gpComment	start="/\*"  end="\*/" contains=gpTodo
syntax match  gpComment "\\\\.*" contains=gpTodo
syntax keyword gpTodo contained	TODO
syntax sync ccomment gpComment minlines=10

"catch errors caused by wrong parenthesis
syntax region gpParen		transparent start='(' end=')' contains=ALLBUT,gpParenError,gpTodo,gpFunction,gpArgs,gpSpecial
syntax match gpParenError	")"
syntax match gpInParen contained "[{}]"


hi def link gpConditional		Conditional
hi def link gpRepeat		Repeat
hi def link gpError		Error
hi def link gpParenError		gpError
hi def link gpInParen		gpError
hi def link gpStatement		Statement
hi def link gpString		String
hi def link gpComment		Comment
hi def link gpInterface		Type
hi def link gpInput		Type
hi def link gpInterfaceKey		Statement
hi def link gpFunction		Function
hi def link gpScope		Type
" contained ones
hi def link gpSpecial		Special
hi def link gpTodo			Todo
hi def link gpArgs			Type

let b:current_syntax = "gp"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z=�Y2��vim80/syntax/htmlm4.vimnu�[���" Vim syntax file
" Language:	HTML and M4
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/htmlm4.vim
" Last Change:	2001 Apr 30

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" we define it here so that included files can test for it
if !exists("main_syntax")
  let main_syntax='htmlm4'
endif

runtime! syntax/html.vim
unlet b:current_syntax
syn case match

runtime! syntax/m4.vim

unlet b:current_syntax
syn cluster htmlPreproc add=@m4Top
syn cluster m4StringContents add=htmlTag,htmlEndTag

let b:current_syntax = "htmlm4"

if main_syntax == 'htmlm4'
  unlet main_syntax
endif
PK�j�ZvZ���vim80/syntax/omnimark.vimnu�[���" Vim syntax file
" Language:	Omnimark
" Maintainer:	Paul Terray <mailto:terray@4dconcept.fr>
" Last Change:	11 Oct 2000

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=@,48-57,_,128-167,224-235,-

syn keyword omnimarkKeywords	ACTIVATE AGAIN
syn keyword omnimarkKeywords	CATCH CLEAR CLOSE COPY COPY-CLEAR CROSS-TRANSLATE
syn keyword omnimarkKeywords	DEACTIVATE DECLARE DECREMENT DEFINE DISCARD DIVIDE DO DOCUMENT-END DOCUMENT-START DONE DTD-START
syn keyword omnimarkKeywords	ELEMENT ELSE ESCAPE EXIT
syn keyword omnimarkKeywords	FAIL FIND FIND-END FIND-START FORMAT
syn keyword omnimarkKeywords	GROUP
syn keyword omnimarkKeywords	HALT HALT-EVERYTHING
syn keyword omnimarkKeywords	IGNORE IMPLIED INCLUDE INCLUDE-END INCLUDE-START INCREMENT INPUT
syn keyword omnimarkKeywords	JOIN
syn keyword omnimarkKeywords	LINE-END LINE-START LOG LOOKAHEAD
syn keyword omnimarkKeywords	MACRO
syn keyword omnimarkKeywords	MACRO-END MARKED-SECTION MARKUP-COMMENT MARKUP-ERROR MARKUP-PARSER MASK MATCH MINUS MODULO
syn keyword omnimarkKeywords	NEW NEWLINE NEXT
syn keyword omnimarkKeywords	OPEN OUTPUT OUTPUT-TO OVER
syn keyword omnimarkKeywords	PROCESS PROCESS-END PROCESS-START PROCESSING-INSTRUCTION PROLOG-END PROLOG-IN-ERROR PUT
syn keyword omnimarkKeywords	REMOVE REOPEN REPEAT RESET RETHROW RETURN
syn keyword omnimarkKeywords	WHEN WHITE-SPACE
syn keyword omnimarkKeywords	SAVE SAVE-CLEAR SCAN SELECT SET SGML SGML-COMMENT SGML-DECLARATION-END SGML-DTD SGML-DTDS SGML-ERROR SGML-IN SGML-OUT SGML-PARSE SGML-PARSER SHIFT SUBMIT SUCCEED SUPPRESS
syn keyword omnimarkKeywords	SYSTEM-CALL
syn keyword omnimarkKeywords	TEST-SYSTEM THROW TO TRANSLATE
syn keyword omnimarkKeywords	UC UL UNLESS UP-TRANSLATE
syn keyword omnimarkKeywords	XML-PARSE

syn keyword omnimarkCommands	ACTIVE AFTER ANCESTOR AND ANOTHER ARG AS ATTACHED ATTRIBUTE ATTRIBUTES
syn keyword omnimarkCommands	BASE BEFORE BINARY BINARY-INPUT BINARY-MODE BINARY-OUTPUT BREAK-WIDTH BUFFER BY
syn keyword omnimarkCommands	CASE CHILDREN CLOSED COMPILED-DATE COMPLEMENT CONREF CONTENT CONTEXT-TRANSLATE COUNTER CREATED CREATING CREATOR CURRENT
syn keyword omnimarkCommands	DATA-ATTRIBUTE DATA-ATTRIBUTES DATA-CONTENT DATA-LETTERS DATE DECLARED-CONREF DECLARED-CURRENT DECLARED-DEFAULTED DECLARED-FIXED DECLARED-IMPLIED DECLARED-REQUIRED
syn keyword omnimarkCommands	DEFAULT-ENTITY DEFAULTED DEFAULTING DELIMITER DIFFERENCE DIRECTORY DOCTYPE DOCUMENT DOCUMENT-ELEMENT DOMAIN-FREE DOWN-TRANSLATE DTD DTD-END DTDS
syn keyword omnimarkCommands	ELEMENTS ELSEWHERE EMPTY ENTITIES ENTITY EPILOG-START EQUAL EXCEPT EXISTS EXTERNAL EXTERNAL-DATA-ENTITY EXTERNAL-ENTITY EXTERNAL-FUNCTION EXTERNAL-OUTPUT-FUNCTION
syn keyword omnimarkCommands	EXTERNAL-TEXT-ENTITY
syn keyword omnimarkCommands	FALSE FILE FUNCTION FUNCTION-LIBRARY
syn keyword omnimarkCommands	GENERAL GLOBAL GREATER-EQUAL GREATER-THAN GROUPS
syn keyword omnimarkCommands	HAS HASNT HERALDED-NAMES
syn keyword omnimarkCommands	ID ID-CHECKING IDREF IDREFS IN IN-LIBRARY INCLUSION INITIAL INITIAL-SIZE INSERTION-BREAK INSTANCE INTERNAL INVALID-DATA IS ISNT ITEM
syn keyword omnimarkCommands	KEY KEYED
syn keyword omnimarkCommands	LAST LASTMOST LC LENGTH LESS-EQUAL LESS-THAN LETTERS LIBRARY LITERAL LOCAL
syn keyword omnimarkCommands	MATCHES MIXED MODIFIABLE
syn keyword omnimarkCommands	NAME NAME-LETTERS NAMECASE NAMED NAMES NDATA-ENTITY NEGATE NESTED-REFERENTS NMTOKEN NMTOKENS NO NO-DEFAULT-IO NON-CDATA NON-IMPLIED NON-SDATA NOT NOTATION NUMBER-OF NUMBERS
syn keyword omnimarkCommands	NUTOKEN NUTOKENS
syn keyword omnimarkCommands	OCCURRENCE OF OPAQUE OPTIONAL OR
syn keyword omnimarkCommands	PARAMETER PARENT PAST PATTERN PLUS PREPARENT PREVIOUS PROPER PUBLIC
syn keyword omnimarkCommands	READ-ONLY READABLE REFERENT REFERENTS REFERENTS-ALLOWED REFERENTS-DISPLAYED REFERENTS-NOT-ALLOWED REMAINDER REPEATED REPLACEMENT-BREAK REVERSED
syn keyword omnimarkCommands	SILENT-REFERENT SIZE SKIP SOURCE SPECIFIED STATUS STREAM SUBDOC-ENTITY SUBDOCUMENT SUBDOCUMENTS SUBELEMENT SWITCH SYMBOL SYSTEM
syn keyword omnimarkCommands	TEXT-MODE THIS TIMES TOKEN TRUE
syn keyword omnimarkCommands	UNANCHORED UNATTACHED UNION USEMAP USING
syn keyword omnimarkCommands	VALUE VALUED VARIABLE
syn keyword omnimarkCommands	WITH WRITABLE
syn keyword omnimarkCommands	XML XML-DTD XML-DTDS
syn keyword omnimarkCommands	YES
syn keyword omnimarkCommands	#ADDITIONAL-INFO #APPINFO #CAPACITY #CHARSET #CLASS #COMMAND-LINE-NAMES #CONSOLE #CURRENT-INPUT #CURRENT-OUTPUT #DATA #DOCTYPE #DOCUMENT #DTD #EMPTY #ERROR #ERROR-CODE
syn keyword omnimarkCommands	#FILE-NAME #FIRST #GROUP #IMPLIED #ITEM #LANGUAGE-VERSION #LAST #LIBPATH #LIBRARY #LIBVALUE #LINE-NUMBER #MAIN-INPUT #MAIN-OUTPUT #MARKUP-ERROR-COUNT #MARKUP-ERROR-TOTAL
syn keyword omnimarkCommands	#MARKUP-PARSER #MARKUP-WARNING-COUNT #MARKUP-WARNING-TOTAL #MESSAGE #NONE #OUTPUT #PLATFORM-INFO #PROCESS-INPUT #PROCESS-OUTPUT #RECOVERY-INFO #SGML #SGML-ERROR-COUNT
syn keyword omnimarkCommands	#SGML-ERROR-TOTAL #SGML-WARNING-COUNT #SGML-WARNING-TOTAL #SUPPRESS #SYNTAX #!

syn keyword omnimarkPatterns	ANY ANY-TEXT
syn keyword omnimarkPatterns	BLANK
syn keyword omnimarkPatterns	CDATA CDATA-ENTITY CONTENT-END CONTENT-START
syn keyword omnimarkPatterns	DIGIT
syn keyword omnimarkPatterns	LETTER
syn keyword omnimarkPatterns	NUMBER
syn keyword omnimarkPatterns	PCDATA
syn keyword omnimarkPatterns	RCDATA
syn keyword omnimarkPatterns	SDATA SDATA-ENTITY SPACE
syn keyword omnimarkPatterns	TEXT
syn keyword omnimarkPatterns	VALUE-END VALUE-START
syn keyword omnimarkPatterns	WORD-END WORD-START

syn region  omnimarkComment	start=";" end="$"

" strings
syn region  omnimarkString		matchgroup=Normal start=+'+  end=+'+ skip=+%'+ contains=omnimarkEscape
syn region  omnimarkString		matchgroup=Normal start=+"+  end=+"+ skip=+%"+ contains=omnimarkEscape
syn match  omnimarkEscape contained +%.+
syn match  omnimarkEscape contained +%[0-9][0-9]#+

"syn sync maxlines=100
syn sync minlines=2000

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link omnimarkCommands		Statement
hi def link omnimarkKeywords		Identifier
hi def link omnimarkString		String
hi def link omnimarkPatterns		Macro
"  hi def link omnimarkNumber			Number
hi def link omnimarkComment		Comment
hi def link omnimarkEscape		Special


let b:current_syntax = "omnimark"

" vim: ts=8

PK�j�Z��X�66vim80/syntax/man.vimnu�[���" Vim syntax file
" Language:	Man page
" Maintainer:	SungHyun Nam <goweol@gmail.com>
" Previous Maintainer:	Gautam H. Mudunuri <gmudunur@informatica.com>
" Version Info:
" Last Change:	2015 Nov 24

" Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
"	* manSubHeading
"	* manSynopsis (only for sections 2 and 3)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Get the CTRL-H syntax to handle backspaced text
runtime! syntax/ctrlh.vim

syn case ignore
syn match  manReference       "\f\+([1-9][a-z]\=)"
syn match  manTitle	      "^\f\+([0-9]\+[a-z]\=).*"
syn match  manSectionHeading  "^[a-z][a-z -]*[a-z]$"
syn match  manSubHeading      "^\s\{3\}[a-z][a-z -]*[a-z]$"
syn match  manOptionDesc      "^\s*[+-][a-z0-9]\S*"
syn match  manLongOptionDesc  "^\s*--[a-z0-9-]\S*"
" syn match  manHistory		"^[a-z].*last change.*$"

if getline(1) =~ '^[a-zA-Z_]\+([23])'
  syntax include @cCode <sfile>:p:h/c.vim
  syn match manCFuncDefinition  display "\<\h\w*\>\s*("me=e-1 contained
  syn region manSynopsis start="^SYNOPSIS"hs=s+8 end="^\u\+\s*$"me=e-12 keepend contains=manSectionHeading,@cCode,manCFuncDefinition
endif


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link manTitle	    Title
hi def link manSectionHeading  Statement
hi def link manOptionDesc	    Constant
hi def link manLongOptionDesc  Constant
hi def link manReference	    PreProc
hi def link manSubHeading      Function
hi def link manCFuncDefinition Function


let b:current_syntax = "man"

" vim:ts=8 sts=2 sw=2:
PK�j�Z#�
ttvim80/syntax/dosbatch.vimnu�[���" Vim syntax file
" Language:	MSDOS batch file (with NT command extensions)
" Maintainer:	Mike Williams <mrw@eandem.co.uk>
" Filenames:    *.bat
" Last Change:	6th September 2009
" Web Page:     http://www.eandem.co.uk/mrw/vim
"
" Options Flags:
" dosbatch_cmdextversion	- 1 = Windows NT, 2 = Windows 2000 [default]
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Set default highlighting to Win2k
if !exists("dosbatch_cmdextversion")
  let dosbatch_cmdextversion = 2
endif

" DOS bat files are case insensitive but case preserving!
syn case ignore

syn keyword dosbatchTodo contained	TODO

" Dosbat keywords
syn keyword dosbatchStatement	goto call exit
syn keyword dosbatchConditional	if else
syn keyword dosbatchRepeat	for

" Some operators - first lot are case sensitive!
syn case match
syn keyword dosbatchOperator    EQU NEQ LSS LEQ GTR GEQ
syn case ignore
syn match dosbatchOperator      "\s[-+\*/%!~]\s"
syn match dosbatchOperator      "="
syn match dosbatchOperator      "[-+\*/%]="
syn match dosbatchOperator      "\s\(&\||\|^\|<<\|>>\)=\=\s"
syn match dosbatchIfOperator    "if\s\+\(\(not\)\=\s\+\)\=\(exist\|defined\|errorlevel\|cmdextversion\)\="lc=2

" String - using "'s is a convenience rather than a requirement outside of FOR
syn match dosbatchString	"\"[^"]*\"" contains=dosbatchVariable,dosBatchArgument,dosbatchSpecialChar,@dosbatchNumber,@Spell
syn match dosbatchString	"\<echo\([^)>|]\|\^\@<=[)>|]\)*"lc=4 contains=dosbatchVariable,dosbatchArgument,dosbatchSpecialChar,@dosbatchNumber,@Spell
syn match dosbatchEchoOperator  "\<echo\s\+\(on\|off\)\s*$"lc=4

" For embedded commands
syn match dosbatchCmd		"(\s*'[^']*'"lc=1 contains=dosbatchString,dosbatchVariable,dosBatchArgument,@dosbatchNumber,dosbatchImplicit,dosbatchStatement,dosbatchConditional,dosbatchRepeat,dosbatchOperator

" Numbers - surround with ws to not include in dir and filenames
syn match dosbatchInteger       "[[:space:]=(/:,!~-]\d\+"lc=1
syn match dosbatchHex		"[[:space:]=(/:,!~-]0x\x\+"lc=1
syn match dosbatchBinary	"[[:space:]=(/:,!~-]0b[01]\+"lc=1
syn match dosbatchOctal		"[[:space:]=(/:,!~-]0\o\+"lc=1
syn cluster dosbatchNumber      contains=dosbatchInteger,dosbatchHex,dosbatchBinary,dosbatchOctal

" Command line switches
syn match dosbatchSwitch	"/\(\a\+\|?\)"

" Various special escaped char formats
syn match dosbatchSpecialChar   "\^[&|()<>^]"
syn match dosbatchSpecialChar   "\$[a-hl-npqstv_$+]"
syn match dosbatchSpecialChar   "%%"

" Environment variables
syn match dosbatchIdentifier    contained "\s\h\w*\>"
syn match dosbatchVariable	"%\h\w*%"
syn match dosbatchVariable	"%\h\w*:\*\=[^=]*=[^%]*%"
syn match dosbatchVariable	"%\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=%" contains=dosbatchInteger
syn match dosbatchVariable	"!\h\w*!"
syn match dosbatchVariable	"!\h\w*:\*\=[^=]*=[^!]*!"
syn match dosbatchVariable	"!\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=!" contains=dosbatchInteger
syn match dosbatchSet		"\s\h\w*[+-]\==\{-1}" contains=dosbatchIdentifier,dosbatchOperator

" Args to bat files and for loops, etc
syn match dosbatchArgument	"%\(\d\|\*\)"
syn match dosbatchArgument	"%[a-z]\>"
if dosbatch_cmdextversion == 1
  syn match dosbatchArgument	"%\~[fdpnxs]\+\(\($PATH:\)\=[a-z]\|\d\)\>"
else
  syn match dosbatchArgument	"%\~[fdpnxsatz]\+\(\($PATH:\)\=[a-z]\|\d\)\>"
endif

" Line labels
syn match dosbatchLabel		"^\s*:\s*\h\w*\>"
syn match dosbatchLabel		"\<\(goto\|call\)\s\+:\h\w*\>"lc=4
syn match dosbatchLabel		"\<goto\s\+\h\w*\>"lc=4
syn match dosbatchLabel		":\h\w*\>"

" Comments - usual rem but also two colons as first non-space is an idiom
syn match dosbatchComment	"^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
syn match dosbatchComment	"^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
syn match dosbatchComment	"\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
syn match dosbatchComment	"\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
syn match dosbatchComment	"\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell

" Comments in ()'s - still to handle spaces before rem
syn match dosbatchComment	"(rem\([^)]\|\^\@<=)\)*"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell

syn keyword dosbatchImplicit    append assoc at attrib break cacls cd chcp chdir
syn keyword dosbatchImplicit    chkdsk chkntfs cls cmd color comp compact convert copy
syn keyword dosbatchImplicit    date del dir diskcomp diskcopy doskey echo endlocal
syn keyword dosbatchImplicit    erase fc find findstr format ftype
syn keyword dosbatchImplicit    graftabl help keyb label md mkdir mode more move
syn keyword dosbatchImplicit    path pause popd print prompt pushd rd recover rem
syn keyword dosbatchImplicit    ren rename replace restore rmdir set setlocal shift
syn keyword dosbatchImplicit    sort start subst time title tree type ver verify
syn keyword dosbatchImplicit    vol xcopy

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dosbatchTodo		Todo

hi def link dosbatchStatement	Statement
hi def link dosbatchCommands	dosbatchStatement
hi def link dosbatchLabel		Label
hi def link dosbatchConditional	Conditional
hi def link dosbatchRepeat		Repeat

hi def link dosbatchOperator       Operator
hi def link dosbatchEchoOperator   dosbatchOperator
hi def link dosbatchIfOperator     dosbatchOperator

hi def link dosbatchArgument	Identifier
hi def link dosbatchIdentifier     Identifier
hi def link dosbatchVariable	dosbatchIdentifier

hi def link dosbatchSpecialChar	SpecialChar
hi def link dosbatchString		String
hi def link dosbatchNumber		Number
hi def link dosbatchInteger	dosbatchNumber
hi def link dosbatchHex		dosbatchNumber
hi def link dosbatchBinary		dosbatchNumber
hi def link dosbatchOctal		dosbatchNumber

hi def link dosbatchComment	Comment
hi def link dosbatchImplicit	Function

hi def link dosbatchSwitch		Special

hi def link dosbatchCmd		PreProc


let b:current_syntax = "dosbatch"

" vim: ts=8
PK�j�Z�#`��vim80/syntax/hastepreproc.vimnu�[���" Vim syntax file
" Language:	Haste preprocessor files 
" Maintainer:	M. Tranchero - maurizio.tranchero@gmail.com
" Credits:	some parts have been taken from vhdl, verilog, and C syntax
"		files
" Version:	0.5

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
" Read the haste syntax to start with
runtime! syntax/haste.vim
unlet b:current_syntax

" case is significant
syn case match

" C pre-processor directives
syn match  hastepreprocVar 	display "\$[[:alnum:]_]*"
syn region hastepreprocVar	start="\${" end="}" contains=hastepreprocVar
"
"syn region hastepreproc		start="#\[\s*tg[:alnum:]*" end="]#" contains=hastepreprocVar,hastepreproc,hastepreprocError,@Spell
syn region hastepreproc		start="#\[\s*\(\|tgfor\|tgif\)" end="$" contains=hastepreprocVar,hastepreproc,@Spell
syn region hastepreproc		start="}\s\(else\)\s{" end="$" contains=hastepreprocVar,hastepreproc,@Spell
syn region hastepreproc		start="^\s*#\s*\(ifndef\|ifdef\|else\|endif\)\>" end="$" contains=@hastepreprocGroup,@Spell
syn region hastepreproc		start="\s*##\s*\(define\|undef\)\>" end="$" contains=@hastepreprocGroup,@Spell
syn match hastepreproc		"}\{0,1}\s*]#"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link hastepreproc	Preproc
hi def link hastepreprocVar	Special
hi def link hastepreprocError	Error

let b:current_syntax = "hastepreproc"

" vim: ts=8
PK�j�Z�øЍ�vim80/syntax/snnsres.vimnu�[���" Vim syntax file
" Language:	SNNS result file
" Maintainer:	Davide Alberani <alberanid@bigfoot.com>
" Last Change:	28 Apr 2001
" Version:	0.2
" URL:		http://digilander.iol.it/alberanid/vim/syntax/snnsres.vim
"
" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/
" is a simulator for neural networks.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" the accepted fields in the header
syn match	snnsresNoHeader	"No\. of patterns\s*:\s*" contained
syn match	snnsresNoHeader	"No\. of input units\s*:\s*" contained
syn match	snnsresNoHeader	"No\. of output units\s*:\s*" contained
syn match	snnsresNoHeader	"No\. of variable input dimensions\s*:\s*" contained
syn match	snnsresNoHeader	"No\. of variable output dimensions\s*:\s*" contained
syn match	snnsresNoHeader	"Maximum input dimensions\s*:\s*" contained
syn match	snnsresNoHeader	"Maximum output dimensions\s*:\s*" contained
syn match	snnsresNoHeader	"startpattern\s*:\s*" contained
syn match	snnsresNoHeader "endpattern\s*:\s*" contained
syn match	snnsresNoHeader "input patterns included" contained
syn match	snnsresNoHeader "teaching output included" contained
syn match	snnsresGen	"generated at.*" contained contains=snnsresNumbers
syn match	snnsresGen	"SNNS result file [Vv]\d\.\d" contained contains=snnsresNumbers

" the header, what is not an accepted field, is an error
syn region	snnsresHeader	start="^SNNS" end="^\s*[-+\.]\=[0-9#]"me=e-2 contains=snnsresNoHeader,snnsresNumbers,snnsresGen

" numbers inside the header
syn match	snnsresNumbers	"\d" contained
syn match	snnsresComment	"#.*$" contains=snnsresTodo
syn keyword	snnsresTodo	TODO XXX FIXME contained


hi def link snnsresGen		Statement
hi def link snnsresHeader		Statement
hi def link snnsresNoHeader	Define
hi def link snnsresNumbers		Number
hi def link snnsresComment		Comment
hi def link snnsresTodo		Todo


let b:current_syntax = "snnsres"

" vim: ts=8 sw=2
PK�j�Z���I�f�fvim80/syntax/nasm.vimnu�[���" Vim syntax file
" Language:	NASM - The Netwide Assembler (v0.98)
" Maintainer:	Andrii Sokolov	<andriy145@gmail.com>
" Original Author:	Manuel M.H. Stol	<Manuel.Stol@allieddata.nl>
" Former Maintainer:	Manuel M.H. Stol	<Manuel.Stol@allieddata.nl>
" Contributors: Leonard König <leonard.r.koenig@gmail.com> (C string highlighting)
" Last Change:	2017 Jan 23
" NASM Home:	http://www.nasm.us/



" Setup Syntax:
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
"  Assembler syntax is case insensetive
syn case ignore



" Vim search and movement commands on identifers
"  Comments at start of a line inside which to skip search for indentifiers
setlocal comments=:;
"  Identifier Keyword characters (defines \k)
setlocal iskeyword=@,48-57,#,$,.,?,@-@,_,~


" Comments:
syn region  nasmComment		start=";" keepend end="$" contains=@nasmGrpInComments
syn region  nasmSpecialComment	start=";\*\*\*" keepend end="$"
syn keyword nasmInCommentTodo	contained TODO FIXME XXX[XXXXX]
syn cluster nasmGrpInComments	contains=nasmInCommentTodo
syn cluster nasmGrpComments	contains=@nasmGrpInComments,nasmComment,nasmSpecialComment



" Label Identifiers:
"  in NASM: 'Everything is a Label'
"  Definition Label = label defined by %[i]define or %[i]assign
"  Identifier Label = label defined as first non-keyword on a line or %[i]macro
syn match   nasmLabelError	"$\=\(\d\+\K\|[#.@]\|\$\$\k\)\k*\>"
syn match   nasmLabel		"\<\(\h\|[?@]\)\k*\>"
syn match   nasmLabel		"[\$\~]\(\h\|[?@]\)\k*\>"lc=1
"  Labels starting with one or two '.' are special
syn match   nasmLocalLabel	"\<\.\(\w\|[#$?@~]\)\k*\>"
syn match   nasmLocalLabel	"\<\$\.\(\w\|[#$?@~]\)\k*\>"ms=s+1
if !exists("nasm_no_warn")
  syn match  nasmLabelWarn	"\<\~\=\$\=[_.][_.\~]*\>"
endif
if exists("nasm_loose_syntax")
  syn match   nasmSpecialLabel	"\<\.\.@\k\+\>"
  syn match   nasmSpecialLabel	"\<\$\.\.@\k\+\>"ms=s+1
  if !exists("nasm_no_warn")
    syn match   nasmLabelWarn	"\<\$\=\.\.@\(\d\|[#$\.~]\)\k*\>"
  endif
  " disallow use of nasm internal label format
  syn match   nasmLabelError	"\<\$\=\.\.@\d\+\.\k*\>"
else
  syn match   nasmSpecialLabel	"\<\.\.@\(\h\|[?@]\)\k*\>"
  syn match   nasmSpecialLabel	"\<\$\.\.@\(\h\|[?@]\)\k*\>"ms=s+1
endif
"  Labels can be dereferenced with '$' to destinguish them from reserved words
syn match   nasmLabelError	"\<\$\K\k*\s*:"
syn match   nasmLabelError	"^\s*\$\K\k*\>"
syn match   nasmLabelError	"\<\~\s*\(\k*\s*:\|\$\=\.\k*\)"



" Constants:
syn match   nasmStringError	+["'`]+
" NASM is case sensitive here: eg. u-prefix allows for 4-digit, U-prefix for
" 8-digit Unicode characters
syn case match
" one-char escape-sequences
syn match   nasmCStringEscape  display contained "\\[’"‘\\\?abtnvfre]"
" hex and octal numbers
syn match   nasmCStringEscape  display contained "\\\(x\x\{2}\|\o\{1,3}\)"
" Unicode characters
syn match   nasmCStringEscape	display contained "\\\(u\x\{4}\|U\x\{8}\)"
" ISO C99 format strings (copied from cFormat in runtime/syntax/c.vim)
syn match   nasmCStringFormat	display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
syn match   nasmCStringFormat	display "%%" contained
syn match   nasmString		+\("[^"]\{-}"\|'[^']\{-}'\)+
" Highlight C escape- and format-sequences within ``-strings
syn match   nasmCString	+\(`[^`]\{-}`\)+ contains=nasmCStringEscape,nasmCStringFormat extend
syn case ignore
syn match   nasmBinNumber	"\<[0-1]\+b\>"
syn match   nasmBinNumber	"\<\~[0-1]\+b\>"lc=1
syn match   nasmOctNumber	"\<\o\+q\>"
syn match   nasmOctNumber	"\<\~\o\+q\>"lc=1
syn match   nasmDecNumber	"\<\d\+\>"
syn match   nasmDecNumber	"\<\~\d\+\>"lc=1
syn match   nasmHexNumber	"\<\(\d\x*h\|0x\x\+\|\$\d\x*\)\>"
syn match   nasmHexNumber	"\<\~\(\d\x*h\|0x\x\+\|\$\d\x*\)\>"lc=1
syn match   nasmFltNumber	"\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>"
syn keyword nasmFltNumber	Inf Infinity Indefinite NaN SNaN QNaN
syn match   nasmNumberError	"\<\~\s*\d\+\.\d*\(e[+-]\=\d\+\)\=\>"


" Netwide Assembler Storage Directives:
"  Storage types
syn keyword nasmTypeError	DF EXTRN FWORD RESF TBYTE
syn keyword nasmType		FAR NEAR SHORT
syn keyword nasmType		BYTE WORD DWORD QWORD DQWORD HWORD DHWORD TWORD
syn keyword nasmType		CDECL FASTCALL NONE PASCAL STDCALL
syn keyword nasmStorage		DB DW DD DQ DDQ DT
syn keyword nasmStorage		RESB RESW RESD RESQ RESDQ REST
syn keyword nasmStorage		EXTERN GLOBAL COMMON
"  Structured storage types
syn match   nasmTypeError	"\<\(AT\|I\=\(END\)\=\(STRUCT\=\|UNION\)\|I\=END\)\>"
syn match   nasmStructureLabel	contained "\<\(AT\|I\=\(END\)\=\(STRUCT\=\|UNION\)\|I\=END\)\>"
"   structures cannot be nested (yet) -> use: 'keepend' and 're='
syn cluster nasmGrpCntnStruc	contains=ALLBUT,@nasmGrpInComments,nasmMacroDef,@nasmGrpInMacros,@nasmGrpInPreCondits,nasmStructureDef,@nasmGrpInStrucs
syn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="^\s*STRUCT\>"hs=e-5 end="^\s*ENDSTRUCT\>"re=e-9 contains=@nasmGrpCntnStruc
syn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="^\s*STRUC\>"hs=e-4  end="^\s*ENDSTRUC\>"re=e-8  contains=@nasmGrpCntnStruc
syn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="\<ISTRUCT\=\>" end="\<IEND\(STRUCT\=\)\=\>" contains=@nasmGrpCntnStruc,nasmInStructure
"   union types are not part of nasm (yet)
"syn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnStruc
"syn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnStruc,nasmInStructure
syn match   nasmInStructure	contained "^\s*AT\>"hs=e-1
syn cluster nasmGrpInStrucs	contains=nasmStructure,nasmInStructure,nasmStructureLabel



" PreProcessor Instructions:
" NAsm PreProcs start with %, but % is not a character
syn match   nasmPreProcError	"%{\=\(%\=\k\+\|%%\+\k*\|[+-]\=\d\+\)}\="
if exists("nasm_loose_syntax")
  syn cluster nasmGrpNxtCtx	contains=nasmStructureLabel,nasmLabel,nasmLocalLabel,nasmSpecialLabel,nasmLabelError,nasmPreProcError
else
  syn cluster nasmGrpNxtCtx	contains=nasmStructureLabel,nasmLabel,nasmLabelError,nasmPreProcError
endif

"  Multi-line macro
syn cluster nasmGrpCntnMacro	contains=ALLBUT,@nasmGrpInComments,nasmStructureDef,@nasmGrpInStrucs,nasmMacroDef,@nasmGrpPreCondits,nasmMemReference,nasmInMacPreCondit,nasmInMacStrucDef
syn region  nasmMacroDef	matchgroup=nasmMacro keepend start="^\s*%macro\>"hs=e-5 start="^\s*%imacro\>"hs=e-6 end="^\s*%endmacro\>"re=e-9 contains=@nasmGrpCntnMacro,nasmInMacStrucDef
if exists("nasm_loose_syntax")
  syn match  nasmInMacLabel	contained "%\(%\k\+\>\|{%\k\+}\)"
  syn match  nasmInMacLabel	contained "%\($\+\(\w\|[#\.?@~]\)\k*\>\|{$\+\(\w\|[#\.?@~]\)\k*}\)"
  syn match  nasmInMacPreProc	contained "^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=nasmStructureLabel,nasmLabel,nasmInMacParam,nasmLocalLabel,nasmSpecialLabel,nasmLabelError,nasmPreProcError
  if !exists("nasm_no_warn")
    syn match nasmInMacLblWarn	contained "%\(%[$\.]\k*\>\|{%[$\.]\k*}\)"
    syn match nasmInMacLblWarn	contained "%\($\+\(\d\|[#\.@~]\)\k*\|{\$\+\(\d\|[#\.@~]\)\k*}\)"
    hi link nasmInMacCatLabel	nasmInMacLblWarn
  else
    hi link nasmInMacCatLabel	nasmInMacLabel
  endif
else
  syn match  nasmInMacLabel	contained "%\(%\(\w\|[#?@~]\)\k*\>\|{%\(\w\|[#?@~]\)\k*}\)"
  syn match  nasmInMacLabel	contained "%\($\+\(\h\|[?@]\)\k*\>\|{$\+\(\h\|[?@]\)\k*}\)"
  hi link nasmInMacCatLabel	nasmLabelError
endif
syn match   nasmInMacCatLabel	contained "\d\K\k*"lc=1
syn match   nasmInMacLabel	contained "\d}\k\+"lc=2
if !exists("nasm_no_warn")
  syn match  nasmInMacLblWarn	contained "%\(\($\+\|%\)[_~][._~]*\>\|{\($\+\|%\)[_~][._~]*}\)"
endif
syn match   nasmInMacPreProc	contained "^\s*%pop\>"hs=e-3
syn match   nasmInMacPreProc	contained "^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=@nasmGrpNxtCtx
"   structures cannot be nested (yet) -> use: 'keepend' and 're='
syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="^\s*STRUCT\>"hs=e-5 end="^\s*ENDSTRUCT\>"re=e-9 contains=@nasmGrpCntnMacro
syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="^\s*STRUC\>"hs=e-4  end="^\s*ENDSTRUC\>"re=e-8  contains=@nasmGrpCntnMacro
syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="\<ISTRUCT\=\>" end="\<IEND\(STRUCT\=\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure
"   union types are not part of nasm (yet)
"syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro
"syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure
syn region  nasmInMacPreConDef	contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreCondit
" Todo: allow STRUC/ISTRUC to be used inside preprocessor conditional block
syn match   nasmInMacPreCondit	contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx
syn match   nasmInMacPreCondit	contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx
syn match   nasmInMacPreCondit	contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx
syn match   nasmInMacParamNum	contained "\<\d\+\.list\>"me=e-5
syn match   nasmInMacParamNum	contained "\<\d\+\.nolist\>"me=e-7
syn match   nasmInMacDirective	contained "\.\(no\)\=list\>"
syn match   nasmInMacMacro	contained transparent "macro\s"lc=5 skipwhite nextgroup=nasmStructureLabel
syn match   nasmInMacMacro	contained "^\s*%rotate\>"hs=e-6
syn match   nasmInMacParam	contained "%\([+-]\=\d\+\|{[+-]\=\d\+}\)"
"   nasm conditional macro operands/arguments
"   Todo: check feasebility; add too nasmGrpInMacros, etc.
"syn match   nasmInMacCond	contained "\<\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P[EO]\=\)\>"
syn cluster nasmGrpInMacros	contains=nasmMacro,nasmInMacMacro,nasmInMacParam,nasmInMacParamNum,nasmInMacDirective,nasmInMacLabel,nasmInMacLblWarn,nasmInMacMemRef,nasmInMacPreConDef,nasmInMacPreCondit,nasmInMacPreProc,nasmInMacStrucDef

"   Context pre-procs that are better used inside a macro
if exists("nasm_ctx_outside_macro")
  syn region nasmPreConditDef	transparent matchgroup=nasmCtxPreCondit start="^\s*%ifnctx\>"hs=e-6 start="^\s*%ifctx\>"hs=e-5 end="%endif\>" contains=@nasmGrpCntnPreCon
  syn match  nasmCtxPreProc	"^\s*%pop\>"hs=e-3
  if exists("nasm_loose_syntax")
    syn match   nasmCtxLocLabel	"%$\+\(\w\|[#.?@~]\)\k*\>"
  else
    syn match   nasmCtxLocLabel	"%$\+\(\h\|[?@]\)\k*\>"
  endif
  syn match nasmCtxPreProc	"^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=@nasmGrpNxtCtx
  syn match nasmCtxPreCondit	contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx
  syn match nasmCtxPreCondit	contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx
  syn match nasmCtxPreCondit	contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx
  if exists("nasm_no_warn")
    hi link nasmCtxPreCondit	nasmPreCondit
    hi link nasmCtxPreProc	nasmPreProc
    hi link nasmCtxLocLabel	nasmLocalLabel
  else
    hi link nasmCtxPreCondit	nasmPreProcWarn
    hi link nasmCtxPreProc	nasmPreProcWarn
    hi link nasmCtxLocLabel	nasmLabelWarn
  endif
endif

"  Conditional assembly
syn cluster nasmGrpCntnPreCon	contains=ALLBUT,@nasmGrpInComments,@nasmGrpInMacros,@nasmGrpInStrucs
syn region  nasmPreConditDef	transparent matchgroup=nasmPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnPreCon
syn match   nasmInPreCondit	contained "^\s*%el\(if\|se\)\>"hs=e-4
syn match   nasmInPreCondit	contained "^\s*%elifid\>"hs=e-6
syn match   nasmInPreCondit	contained "^\s*%elif\(def\|idn\|nid\|num\|str\)\>"hs=e-7
syn match   nasmInPreCondit	contained "^\s*%elif\(n\(def\|idn\|num\|str\)\|idni\)\>"hs=e-8
syn match   nasmInPreCondit	contained "^\s*%elifnidni\>"hs=e-9
syn cluster nasmGrpInPreCondits	contains=nasmPreCondit,nasmInPreCondit,nasmCtxPreCondit
syn cluster nasmGrpPreCondits	contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel

"  Other pre-processor statements
syn match   nasmPreProc		"^\s*%\(rep\|use\)\>"hs=e-3
syn match   nasmPreProc		"^\s*%line\>"hs=e-4
syn match   nasmPreProc		"^\s*%\(clear\|error\|fatal\)\>"hs=e-5
syn match   nasmPreProc		"^\s*%\(endrep\|strlen\|substr\)\>"hs=e-6
syn match   nasmPreProc		"^\s*%\(exitrep\|warning\)\>"hs=e-7
syn match   nasmDefine		"^\s*%undef\>"hs=e-5
syn match   nasmDefine		"^\s*%\(assign\|define\)\>"hs=e-6
syn match   nasmDefine		"^\s*%i\(assign\|define\)\>"hs=e-7
syn match   nasmDefine		"^\s*%unmacro\>"hs=e-7
syn match   nasmInclude		"^\s*%include\>"hs=e-7
" Todo: Treat the line tail after %fatal, %error, %warning as text

"  Multiple pre-processor instructions on single line detection (obsolete)
"syn match   nasmPreProcError	+^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+
syn cluster nasmGrpPreProcs	contains=nasmMacroDef,@nasmGrpInMacros,@nasmGrpPreCondits,nasmPreProc,nasmDefine,nasmInclude,nasmPreProcWarn,nasmPreProcError



" Register Identifiers:
"  Register operands:
syn match   nasmGen08Register	"\<[A-D][HL]\>"
syn match   nasmGen16Register	"\<\([A-D]X\|[DS]I\|[BS]P\)\>"
syn match   nasmGen32Register	"\<E\([A-D]X\|[DS]I\|[BS]P\)\>"
syn match   nasmGen64Register	"\<R\([A-D]X\|[DS]I\|[BS]P\|[89]\|1[0-5]\|[89][WD]\|1[0-5][WD]\)\>"
syn match   nasmSegRegister	"\<[C-GS]S\>"
syn match   nasmSpcRegister	"\<E\=IP\>"
syn match   nasmFpuRegister	"\<ST\o\>"
syn match   nasmMmxRegister	"\<MM\o\>"
syn match   nasmSseRegister	"\<XMM\o\>"
syn match   nasmCtrlRegister	"\<CR\o\>"
syn match   nasmDebugRegister	"\<DR\o\>"
syn match   nasmTestRegister	"\<TR\o\>"
syn match   nasmRegisterError	"\<\(CR[15-9]\|DR[4-58-9]\|TR[0-28-9]\)\>"
syn match   nasmRegisterError	"\<X\=MM[8-9]\>"
syn match   nasmRegisterError	"\<ST\((\d)\|[8-9]\>\)"
syn match   nasmRegisterError	"\<E\([A-D][HL]\|[C-GS]S\)\>"
"  Memory reference operand (address):
syn match   nasmMemRefError	"[[\]]"
syn cluster nasmGrpCntnMemRef	contains=ALLBUT,@nasmGrpComments,@nasmGrpPreProcs,@nasmGrpInStrucs,nasmMemReference,nasmMemRefError
syn match   nasmInMacMemRef	contained "\[[^;[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmInMacLabel,nasmInMacLblWarn,nasmInMacParam
syn match   nasmMemReference	"\[[^;[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmCtxLocLabel



" Netwide Assembler Directives:
"  Compilation constants
syn keyword nasmConstant	__BITS__ __DATE__ __FILE__ __FORMAT__ __LINE__
syn keyword nasmConstant	__NASM_MAJOR__ __NASM_MINOR__ __NASM_VERSION__
syn keyword nasmConstant	__TIME__
"  Instruction modifiers
syn match   nasmInstructnError	"\<TO\>"
syn match   nasmInstrModifier	"\(^\|:\)\s*[C-GS]S\>"ms=e-1
syn keyword nasmInstrModifier	A16 A32 O16 O32
syn match   nasmInstrModifier	"\<F\(ADD\|MUL\|\(DIV\|SUB\)R\=\)\s\+TO\>"lc=5,ms=e-1
"   the 'to' keyword is not allowed for fpu-pop instructions (yet)
"syn match   nasmInstrModifier	"\<F\(ADD\|MUL\|\(DIV\|SUB\)R\=\)P\s\+TO\>"lc=6,ms=e-1
"  NAsm directives
syn keyword nasmRepeat		TIMES
syn keyword nasmDirective	ALIGN[B] INCBIN EQU NOSPLIT SPLIT
syn keyword nasmDirective	ABSOLUTE BITS SECTION SEGMENT
syn keyword nasmDirective	ENDSECTION ENDSEGMENT
syn keyword nasmDirective	__SECT__
"  Macro created standard directives: (requires %include)
syn case match
syn keyword nasmStdDirective	ENDPROC EPILOGUE LOCALS PROC PROLOGUE USES
syn keyword nasmStdDirective	ENDIF ELSE ELIF ELSIF IF
"syn keyword nasmStdDirective	BREAK CASE DEFAULT ENDSWITCH SWITCH
"syn keyword nasmStdDirective	CASE OF ENDCASE
syn keyword nasmStdDirective	DO ENDFOR ENDWHILE FOR REPEAT UNTIL WHILE EXIT
syn case ignore
"  Format specific directives: (all formats)
"  (excluded: extension directives to section, global, common and extern)
syn keyword nasmFmtDirective	ORG
syn keyword nasmFmtDirective	EXPORT IMPORT GROUP UPPERCASE SEG WRT
syn keyword nasmFmtDirective	LIBRARY
syn case match
syn keyword nasmFmtDirective	_GLOBAL_OFFSET_TABLE_ __GLOBAL_OFFSET_TABLE_
syn keyword nasmFmtDirective	..start ..got ..gotoff ..gotpc ..plt ..sym
syn case ignore



" Standard Instructions:
syn match   nasmInstructnError	"\<\(F\=CMOV\|SET\)N\=\a\{0,2}\>"
syn keyword nasmInstructnError	CMPS MOVS LCS LODS STOS XLAT
syn match   nasmStdInstruction	"\<MOV\>"
syn match   nasmInstructnError	"\<MOV\s[^,;[]*\<CS\>\s*[^:]"he=e-1
syn match   nasmStdInstruction	"\<\(CMOV\|J\|SET\)\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P[EO]\=\)\>"
syn match   nasmStdInstruction	"\<POP\>"
syn keyword nasmStdInstruction	AAA AAD AAM AAS ADC ADD AND
syn keyword nasmStdInstruction	BOUND BSF BSR BSWAP BT[C] BTR BTS
syn keyword nasmStdInstruction	CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ
syn keyword nasmStdInstruction	CMPXCHG CMPXCHG8B CPUID CWD[E] CQO
syn keyword nasmStdInstruction	DAA DAS DEC DIV ENTER
syn keyword nasmStdInstruction	IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ
syn keyword nasmStdInstruction	JCXZ JECXZ JMP
syn keyword nasmStdInstruction	LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ
syn keyword nasmStdInstruction	LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS
syn keyword nasmStdInstruction	MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT
syn keyword nasmStdInstruction	OR POPA[D] POPAW POPF[D] POPFW POPFQ
syn keyword nasmStdInstruction	PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ
syn keyword nasmStdInstruction	RCL RCR RETF RET[N] ROL ROR
syn keyword nasmStdInstruction	SAHF SAL SAR SBB SCASB SCASD SCASW
syn keyword nasmStdInstruction	SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB
syn keyword nasmStdInstruction	TEST XADD XCHG XLATB XOR
syn keyword nasmStdInstruction	LFENCE MFENCE SFENCE


" System Instructions: (usually privileged)
"  Verification of pointer parameters
syn keyword nasmSysInstruction	ARPL LAR LSL VERR VERW
"  Addressing descriptor tables
syn keyword nasmSysInstruction	LLDT SLDT LGDT SGDT
"  Multitasking
syn keyword nasmSysInstruction	LTR STR
"  Coprocessing and Multiprocessing (requires fpu and multiple cpu's resp.)
syn keyword nasmSysInstruction	CLTS LOCK WAIT
"  Input and Output
syn keyword nasmInstructnError	INS OUTS
syn keyword nasmSysInstruction	IN INSB INSW INSD OUT OUTSB OUTSB OUTSW OUTSD
"  Interrupt control
syn keyword nasmSysInstruction	CLI STI LIDT SIDT
"  System control
syn match   nasmSysInstruction	"\<MOV\s[^;]\{-}\<CR\o\>"me=s+3
syn keyword nasmSysInstruction	HLT INVD LMSW
syn keyword nasmSseInstruction	PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA
syn keyword nasmSseInstruction	RSM SFENCE SMSW SYSENTER SYSEXIT UD2 WBINVD
"  TLB (Translation Lookahead Buffer) testing
syn match   nasmSysInstruction	"\<MOV\s[^;]\{-}\<TR\o\>"me=s+3
syn keyword nasmSysInstruction	INVLPG

" Debugging Instructions: (privileged)
syn match   nasmDbgInstruction	"\<MOV\s[^;]\{-}\<DR\o\>"me=s+3
syn keyword nasmDbgInstruction	INT1 INT3 RDMSR RDTSC RDPMC WRMSR


" Floating Point Instructions: (requires FPU)
syn match   nasmFpuInstruction	"\<FCMOVN\=\([AB]E\=\|[CEPUZ]\)\>"
syn keyword nasmFpuInstruction	F2XM1 FABS FADD[P] FBLD FBSTP
syn keyword nasmFpuInstruction	FCHS FCLEX FCOM[IP] FCOMP[P] FCOS
syn keyword nasmFpuInstruction	FDECSTP FDISI FDIV[P] FDIVR[P] FENI FFREE
syn keyword nasmFpuInstruction	FIADD FICOM[P] FIDIV[R] FILD
syn keyword nasmFpuInstruction	FIMUL FINCSTP FINIT FIST[P] FISUB[R]
syn keyword nasmFpuInstruction	FLD[1] FLDCW FLDENV FLDL2E FLDL2T FLDLG2
syn keyword nasmFpuInstruction	FLDLN2 FLDPI FLDZ FMUL[P]
syn keyword nasmFpuInstruction	FNCLEX FNDISI FNENI FNINIT FNOP FNSAVE
syn keyword nasmFpuInstruction	FNSTCW FNSTENV FNSTSW FNSTSW
syn keyword nasmFpuInstruction	FPATAN FPREM[1] FPTAN FRNDINT FRSTOR
syn keyword nasmFpuInstruction	FSAVE FSCALE FSETPM FSIN FSINCOS FSQRT
syn keyword nasmFpuInstruction	FSTCW FSTENV FST[P] FSTSW FSUB[P] FSUBR[P]
syn keyword nasmFpuInstruction	FTST FUCOM[IP] FUCOMP[P]
syn keyword nasmFpuInstruction	FXAM FXCH FXTRACT FYL2X FYL2XP1


" Multi Media Xtension Packed Instructions: (requires MMX unit)
"  Standard MMX instructions: (requires MMX1 unit)
syn match   nasmInstructnError	"\<P\(ADD\|SUB\)U\=S\=[DQ]\=\>"
syn match   nasmInstructnError	"\<PCMP\a\{0,2}[BDWQ]\=\>"
syn keyword nasmMmxInstruction	EMMS MOVD MOVQ
syn keyword nasmMmxInstruction	PACKSSDW PACKSSWB PACKUSWB PADDB PADDD PADDW
syn keyword nasmMmxInstruction	PADDSB PADDSW PADDUSB PADDUSW PAND[N]
syn keyword nasmMmxInstruction	PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD PCMPGTW
syn keyword nasmMmxInstruction	PMACHRIW PMADDWD PMULHW PMULLW POR
syn keyword nasmMmxInstruction	PSLLD PSLLQ PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW
syn keyword nasmMmxInstruction	PSUBB PSUBD PSUBW PSUBSB PSUBSW PSUBUSB PSUBUSW
syn keyword nasmMmxInstruction	PUNPCKHBW PUNPCKHDQ PUNPCKHWD
syn keyword nasmMmxInstruction	PUNPCKLBW PUNPCKLDQ PUNPCKLWD PXOR
"  Extended MMX instructions: (requires MMX2/SSE unit)
syn keyword nasmMmxInstruction	MASKMOVQ MOVNTQ
syn keyword nasmMmxInstruction	PAVGB PAVGW PEXTRW PINSRW PMAXSW PMAXUB
syn keyword nasmMmxInstruction	PMINSW PMINUB PMOVMSKB PMULHUW PSADBW PSHUFW


" Streaming SIMD Extension Packed Instructions: (requires SSE unit)
syn match   nasmInstructnError	"\<CMP\a\{1,5}[PS]S\>"
syn match   nasmSseInstruction	"\<CMP\(N\=\(EQ\|L[ET]\)\|\(UN\)\=ORD\)\=[PS]S\>"
syn keyword nasmSseInstruction	ADDPS ADDSS ANDNPS ANDPS
syn keyword nasmSseInstruction	COMISS CVTPI2PS CVTPS2PI
syn keyword nasmSseInstruction	CVTSI2SS CVTSS2SI CVTTPS2PI CVTTSS2SI
syn keyword nasmSseInstruction	DIVPS DIVSS FXRSTOR FXSAVE LDMXCSR
syn keyword nasmSseInstruction	MAXPS MAXSS MINPS MINSS MOVAPS MOVHLPS MOVHPS
syn keyword nasmSseInstruction	MOVLHPS MOVLPS MOVMSKPS MOVNTPS MOVSS MOVUPS
syn keyword nasmSseInstruction	MULPS MULSS
syn keyword nasmSseInstruction	ORPS RCPPS RCPSS RSQRTPS RSQRTSS
syn keyword nasmSseInstruction	SHUFPS SQRTPS SQRTSS STMXCSR SUBPS SUBSS
syn keyword nasmSseInstruction	UCOMISS UNPCKHPS UNPCKLPS XORPS


" Three Dimensional Now Packed Instructions: (requires 3DNow! unit)
syn keyword nasmNowInstruction	FEMMS PAVGUSB PF2ID PFACC PFADD PFCMPEQ PFCMPGE
syn keyword nasmNowInstruction	PFCMPGT PFMAX PFMIN PFMUL PFRCP PFRCPIT1
syn keyword nasmNowInstruction	PFRCPIT2 PFRSQIT1 PFRSQRT PFSUB[R] PI2FD
syn keyword nasmNowInstruction	PMULHRWA PREFETCH[W]


" Vendor Specific Instructions:
"  Cyrix instructions (requires Cyrix processor)
syn keyword nasmCrxInstruction	PADDSIW PAVEB PDISTIB PMAGW PMULHRW[C] PMULHRIW
syn keyword nasmCrxInstruction	PMVGEZB PMVLZB PMVNZB PMVZB PSUBSIW
syn keyword nasmCrxInstruction	RDSHR RSDC RSLDT SMINT SMINTOLD SVDC SVLDT SVTS
syn keyword nasmCrxInstruction	WRSHR
"  AMD instructions (requires AMD processor)
syn keyword nasmAmdInstruction	SYSCALL SYSRET


" Undocumented Instructions:
syn match   nasmUndInstruction	"\<POP\s[^;]*\<CS\>"me=s+3
syn keyword nasmUndInstruction	CMPXCHG486 IBTS ICEBP INT01 INT03 LOADALL
syn keyword nasmUndInstruction	LOADALL286 LOADALL386 SALC SMI UD1 UMOV XBTS



" Synchronize Syntax:
syn sync clear
syn sync minlines=50		"for multiple region nesting
syn sync match  nasmSync	grouphere nasmMacroDef "^\s*%i\=macro\>"me=s-1
syn sync match	nasmSync	grouphere NONE	       "^\s*%endmacro\>"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" Sub Links:
hi def link nasmInMacDirective	nasmDirective
hi def link nasmInMacLabel		nasmLocalLabel
hi def link nasmInMacLblWarn	nasmLabelWarn
hi def link nasmInMacMacro		nasmMacro
hi def link nasmInMacParam		nasmMacro
hi def link nasmInMacParamNum	nasmDecNumber
hi def link nasmInMacPreCondit	nasmPreCondit
hi def link nasmInMacPreProc	nasmPreProc
hi def link nasmInPreCondit	nasmPreCondit
hi def link nasmInStructure	nasmStructure
hi def link nasmStructureLabel	nasmStructure

" Comment Group:
hi def link nasmComment		Comment
hi def link nasmSpecialComment	SpecialComment
hi def link nasmInCommentTodo	Todo

" Constant Group:
hi def link nasmString		String
hi def link nasmCString	String
hi def link nasmStringError	Error
hi def link nasmCStringEscape	SpecialChar
hi def link nasmCStringFormat	SpecialChar
hi def link nasmBinNumber		Number
hi def link nasmOctNumber		Number
hi def link nasmDecNumber		Number
hi def link nasmHexNumber		Number
hi def link nasmFltNumber		Float
hi def link nasmNumberError	Error

" Identifier Group:
hi def link nasmLabel		Identifier
hi def link nasmLocalLabel		Identifier
hi def link nasmSpecialLabel	Special
hi def link nasmLabelError		Error
hi def link nasmLabelWarn		Todo

" PreProc Group:
hi def link nasmPreProc		PreProc
hi def link nasmDefine		Define
hi def link nasmInclude		Include
hi def link nasmMacro		Macro
hi def link nasmPreCondit		PreCondit
hi def link nasmPreProcError	Error
hi def link nasmPreProcWarn	Todo

" Type Group:
hi def link nasmType		Type
hi def link nasmStorage		StorageClass
hi def link nasmStructure		Structure
hi def link nasmTypeError		Error

" Directive Group:
hi def link nasmConstant		Constant
hi def link nasmInstrModifier	Operator
hi def link nasmRepeat		Repeat
hi def link nasmDirective		Keyword
hi def link nasmStdDirective	Operator
hi def link nasmFmtDirective	Keyword

" Register Group:
hi def link nasmCtrlRegister	Special
hi def link nasmDebugRegister	Debug
hi def link nasmTestRegister	Special
hi def link nasmRegisterError	Error
hi def link nasmMemRefError	Error

" Instruction Group:
hi def link nasmStdInstruction	Statement
hi def link nasmSysInstruction	Statement
hi def link nasmDbgInstruction	Debug
hi def link nasmFpuInstruction	Statement
hi def link nasmMmxInstruction	Statement
hi def link nasmSseInstruction	Statement
hi def link nasmNowInstruction	Statement
hi def link nasmAmdInstruction	Special
hi def link nasmCrxInstruction	Special
hi def link nasmUndInstruction	Todo
hi def link nasmInstructnError	Error


let b:current_syntax = "nasm"

" vim:ts=8 sw=4
PK�j�Z��|���vim80/syntax/cs.vimnu�[���" Vim syntax file
" Language:	C#
" Maintainer:	Anduin Withers <awithers@anduin.com>
" Former Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Fri Aug 14 13:56:37 PDT 2009
" Filenames:	*.cs
" $Id: cs.vim,v 1.4 2006/05/03 21:20:02 vimboss Exp $
"
" REFERENCES:
" [1] ECMA TC39: C# Language Specification (WD13Oct01.doc)

if exists("b:current_syntax")
    finish
endif

let s:cs_cpo_save = &cpo
set cpo&vim


" type
syn keyword csType			bool byte char decimal double float int long object sbyte short string uint ulong ushort void
" storage
syn keyword csStorage			class delegate enum interface namespace struct
" repeat / condition / label
syn keyword csRepeat			break continue do for foreach goto return while
syn keyword csConditional		else if switch
syn keyword csLabel			case default
" there's no :: operator in C#
syn match csOperatorError		display +::+
" user labels (see [1] 8.6 Statements)
syn match   csLabel			display +^\s*\I\i*\s*:\([^:]\)\@=+
" modifier
syn keyword csModifier			abstract const extern internal override private protected public readonly sealed static virtual volatile
" constant
syn keyword csConstant			false null true
" exception
syn keyword csException			try catch finally throw

" TODO:
syn keyword csUnspecifiedStatement	as base checked event fixed in is lock new operator out params ref sizeof stackalloc this typeof unchecked unsafe using
" TODO:
syn keyword csUnsupportedStatement	add remove value
" TODO:
syn keyword csUnspecifiedKeyword	explicit implicit


" Contextual Keywords
syn match csContextualStatement	/\<yield[[:space:]\n]\+\(return\|break\)/me=s+5
syn match csContextualStatement	/\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7
syn match csContextualStatement	/\<\(get\|set\)[[:space:]\n]*{/me=s+3
syn match csContextualStatement	/\<where\>[^:]\+:/me=s+5

" Comments
"
" PROVIDES: @csCommentHook
"
" TODO: include strings ?
"
syn keyword csTodo		contained TODO FIXME XXX NOTE
syn region  csComment		start="/\*"  end="\*/" contains=@csCommentHook,csTodo,@Spell
syn match   csComment		"//.*$" contains=@csCommentHook,csTodo,@Spell

" xml markup inside '///' comments
syn cluster xmlRegionHook	add=csXmlCommentLeader
syn cluster xmlCdataHook	add=csXmlCommentLeader
syn cluster xmlStartTagHook	add=csXmlCommentLeader
syn keyword csXmlTag		contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName
syn keyword csXmlTag		contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo
syn keyword csXmlTag		contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base
syn keyword csXmlTag		contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute
syn keyword csXmlTag		contained AttributeName Members Member MemberSignature MemberType MemberValue
syn keyword csXmlTag		contained ReturnValue ReturnType Parameters Parameter MemberOfPackage
syn keyword csXmlTag		contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary
syn keyword csXmlTag		contained threadsafe value internalonly nodoc exception param permission platnote
syn keyword csXmlTag		contained seealso b c i pre sub sup block code note paramref see subscript superscript
syn keyword csXmlTag		contained list listheader item term description altcompliant altmember

syn cluster xmlTagHook add=csXmlTag

syn match   csXmlCommentLeader	+\/\/\/+    contained
syn match   csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
syntax include @csXml syntax/xml.vim
hi def link xmlRegion Comment


" [1] 9.5 Pre-processing directives
syn region	csPreCondit
    \ start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)"
    \ skip="\\$" end="$" contains=csComment keepend
syn region	csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$"
    \ end="^\s*#\s*endregion" transparent fold contains=TOP



" Strings and constants
syn match   csSpecialError	contained "\\."
syn match   csSpecialCharError	contained "[^']"
" [1] 9.4.4.4 Character literals
syn match   csSpecialChar	contained +\\["\\'0abfnrtvx]+
" unicode characters
syn match   csUnicodeNumber	+\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier
syn match   csUnicodeSpecifier	+\\[uU]+ contained
syn region  csVerbatimString	start=+@"+ end=+"+ skip=+""+ contains=csVerbatimSpec,@Spell
syn match   csVerbatimSpec	+@"+he=s+1 contained
syn region  csString		start=+"+  end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
syn match   csCharacter		"'[^']*'" contains=csSpecialChar,csSpecialCharError
syn match   csCharacter		"'\\''" contains=csSpecialChar
syn match   csCharacter		"'[^\\]'"
syn match   csNumber		"\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
syn match   csNumber		"\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
syn match   csNumber		"\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match   csNumber		"\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"

" The default highlighting.
hi def link csType			Type
hi def link csStorage			StorageClass
hi def link csRepeat			Repeat
hi def link csConditional		Conditional
hi def link csLabel			Label
hi def link csModifier			StorageClass
hi def link csConstant			Constant
hi def link csException			Exception
hi def link csUnspecifiedStatement	Statement
hi def link csUnsupportedStatement	Statement
hi def link csUnspecifiedKeyword	Keyword
hi def link csContextualStatement	Statement
hi def link csOperatorError		Error

hi def link csTodo			Todo
hi def link csComment			Comment

hi def link csSpecialError		Error
hi def link csSpecialCharError		Error
hi def link csString			String
hi def link csVerbatimString		String
hi def link csVerbatimSpec		SpecialChar
hi def link csPreCondit			PreCondit
hi def link csCharacter			Character
hi def link csSpecialChar		SpecialChar
hi def link csNumber			Number
hi def link csUnicodeNumber		SpecialChar
hi def link csUnicodeSpecifier		SpecialChar

" xml markup
hi def link csXmlCommentLeader		Comment
hi def link csXmlComment		Comment
hi def link csXmlTag			Statement

let b:current_syntax = "cs"

let &cpo = s:cs_cpo_save
unlet s:cs_cpo_save

" vim: ts=8
PK�j�ZV���vim80/syntax/slpreg.vimnu�[���" Vim syntax file
" Language:             RFC 2614 - An API for Service Location registration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword slpregTodo          contained TODO FIXME XXX NOTE

syn region  slpregComment       display oneline start='^[#;]' end='$'
                                \ contains=slpregTodo,@Spell

syn match   slpregBegin         display '^'
                                \ nextgroup=slpregServiceURL,
                                \ slpregComment

syn match   slpregServiceURL    contained display 'service:'
                                \ nextgroup=slpregServiceType

syn match   slpregServiceType   contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\='
                                \ nextgroup=slpregServiceSAPCol

syn match   slpregServiceSAPCol contained display ':'
                                \ nextgroup=slpregSAP

syn match   slpregSAP           contained '[^,]\+'
                                \ nextgroup=slpregLangSep
"syn match   slpregSAP           contained display '\%(//\%(\%([[:alpha:][:digit:]$-_.~!*\'(),+;&=]*@\)\=\%([[:alnum:]][[:alnum:]-]*[[:alnum:]]\|[[:alnum:]]\.\)*\%(\a[[:alnum:]-]*[[:alnum:]]\|\a\)\%(:\d\+\)\=\)\=\|/at/\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}:\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\|/ipx/\x\{8}:\x\{12}:\x\{4}\)\%(/\%([[:alpha:][:digit:]$-_.~!*\'()+;?:@&=+]\|\\\x\x\)*\)*\%(;[^()\\!<=>~[:cntrl:]* \t_]\+\%(=[^()\\!<=>~[:cntrl:] ]\+\)\=\)*'

syn match   slpregLangSep       contained display ','
                                \ nextgroup=slpregLang

syn match   slpregLang          contained display '\a\{1,8}\%(-\a\{1,8\}\)\='
                                \ nextgroup=slpregLTimeSep

syn match   slpregLTimeSep      contained display ','
                                \ nextgroup=slpregLTime

syn match   slpregLTime         contained display '\d\{1,5}'
                                \ nextgroup=slpregType,slpregUNewline

syn match   slpregType          contained display '\a[[:alpha:][:digit:]+-]*'
                                \ nextgroup=slpregUNewLine

syn match   slpregUNewLine      contained '\s*\n'
                                \ nextgroup=slpregScopes,slpregAttrList skipnl

syn keyword slpregScopes        contained scopes
                                \ nextgroup=slpregScopesEq

syn match   slpregScopesEq      contained '=' nextgroup=slpregScopeName

syn match   slpregScopeName     contained '[^(),\\!<=>[:cntrl:];*+ ]\+'
                                \ nextgroup=slpregScopeNameSep,
                                \ slpregScopeNewline

syn match   slpregScopeNameSep  contained ','
                                \ nextgroup=slpregScopeName

syn match   slpregScopeNewline  contained '\s*\n'
                                \ nextgroup=slpregAttribute skipnl

syn match   slpregAttribute     contained '[^(),\\!<=>[:cntrl:]* \t_]\+'
                                \ nextgroup=slpregAttributeEq,
                                \ slpregScopeNewline

syn match   slpregAttributeEq   contained '='
                                \ nextgroup=@slpregAttrValue

syn cluster slpregAttrValueCon  contains=slpregAttribute,slpregAttrValueSep

syn cluster slpregAttrValue     contains=slpregAttrIValue,slpregAttrSValue,
                                \ slpregAttrBValue,slpregAttrSSValue

syn match   slpregAttrSValue    contained display '[^(),\\!<=>~[:cntrl:]]\+'
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn match   slpregAttrSSValue   contained display '\\FF\%(\\\x\x\)\+'
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn match   slpregAttrIValue    contained display '[-]\=\d\+\>'
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn keyword slpregAttrBValue    contained true false
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn match   slpregAttrValueSep  contained display ','
                                \ nextgroup=@slpregAttrValue skipwhite skipnl

hi def link slpregTodo          Todo
hi def link slpregComment       Comment
hi def link slpregServiceURL    Type
hi def link slpregServiceType   slpregServiceURL
hi def link slpregServiceSAPCol slpregServiceURL
hi def link slpregSAP           slpregServiceURL
hi def link slpregDelimiter     Delimiter
hi def link slpregLangSep       slpregDelimiter
hi def link slpregLang          String
hi def link slpregLTimeSep      slpregDelimiter
hi def link slpregLTime         Number
hi def link slpregType          Type
hi def link slpregScopes        Identifier
hi def link slpregScopesEq      Operator
hi def link slpregScopeName     String
hi def link slpregScopeNameSep  slpregDelimiter
hi def link slpregAttribute     Identifier
hi def link slpregAttributeEq   Operator
hi def link slpregAttrSValue    String
hi def link slpregAttrSSValue   slpregAttrSValue
hi def link slpregAttrIValue    Number
hi def link slpregAttrBValue    Boolean
hi def link slpregAttrValueSep  slpregDelimiter

let b:current_syntax = "slpreg"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���c2c2vim80/syntax/n1ql.vimnu�[���" Vim syntax file
" Language:    N1QL / Couchbase Server
" Maintainer:  Eugene Ciurana <n1ql AT cime.net>
" Version:     1.0
" Source:      https://github.com/pr3d4t0r/n1ql-vim-syntax
"
" License:     Vim is Charityware.  n1ql.vim syntax is Charityware.
"              (c) Copyright 2017 by Eugene Ciurana / pr3d4t0r.  Licensed
"              under the standard VIM LICENSE - Vim command :help uganda.txt
"              for details.
"
" Questions, comments:  <n1ql AT cime.net>
"                       https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r
"
" vim: set fileencoding=utf-8:


if exists("b:current_syntax")
  finish
endif


syn case ignore

syn keyword n1qlSpecial DATASTORES
syn keyword n1qlSpecial DUAL
syn keyword n1qlSpecial FALSE
syn keyword n1qlSpecial INDEXES
syn keyword n1qlSpecial KEYSPACES
syn keyword n1qlSpecial MISSING
syn keyword n1qlSpecial NAMESPACES
syn keyword n1qlSpecial NULL
syn keyword n1qlSpecial TRUE


"
" *** keywords ***
"
syn keyword n1qlKeyword ALL
syn keyword n1qlKeyword ANY
syn keyword n1qlKeyword ASC
syn keyword n1qlKeyword BEGIN
syn keyword n1qlKeyword BETWEEN
syn keyword n1qlKeyword BREAK
syn keyword n1qlKeyword BUCKET
syn keyword n1qlKeyword CALL
syn keyword n1qlKeyword CASE
syn keyword n1qlKeyword CAST
syn keyword n1qlKeyword CLUSTER
syn keyword n1qlKeyword COLLATE
syn keyword n1qlKeyword COLLECTION
syn keyword n1qlKeyword CONNECT
syn keyword n1qlKeyword CONTINUE
syn keyword n1qlKeyword CORRELATE
syn keyword n1qlKeyword COVER
syn keyword n1qlKeyword DATABASE
syn keyword n1qlKeyword DATASET
syn keyword n1qlKeyword DATASTORE
syn keyword n1qlKeyword DECLARE
syn keyword n1qlKeyword DECREMENT
syn keyword n1qlKeyword DERIVED
syn keyword n1qlKeyword DESC
syn keyword n1qlKeyword DESCRIBE
syn keyword n1qlKeyword DO
syn keyword n1qlKeyword EACH
syn keyword n1qlKeyword ELEMENT
syn keyword n1qlKeyword ELSE
syn keyword n1qlKeyword END
syn keyword n1qlKeyword EVERY
syn keyword n1qlKeyword EXCLUDE
syn keyword n1qlKeyword EXISTS
syn keyword n1qlKeyword FETCH
syn keyword n1qlKeyword FIRST
syn keyword n1qlKeyword FLATTEN
syn keyword n1qlKeyword FOR
syn keyword n1qlKeyword FORCE
syn keyword n1qlKeyword FROM
syn keyword n1qlKeyword FUNCTION
syn keyword n1qlKeyword GROUP
syn keyword n1qlKeyword GSI
syn keyword n1qlKeyword HAVING
syn keyword n1qlKeyword IF
syn keyword n1qlKeyword IGNORE
syn keyword n1qlKeyword INCLUDE
syn keyword n1qlKeyword INCREMENT
syn keyword n1qlKeyword INDEX
syn keyword n1qlKeyword INITIAL
syn keyword n1qlKeyword INLINE
syn keyword n1qlKeyword INNER
syn keyword n1qlKeyword INTO
syn keyword n1qlKeyword KEY
syn keyword n1qlKeyword KEYS
syn keyword n1qlKeyword KEYSPACE
syn keyword n1qlKeyword KNOWN
syn keyword n1qlKeyword LAST
syn keyword n1qlKeyword LET
syn keyword n1qlKeyword LETTING
syn keyword n1qlKeyword LIMIT
syn keyword n1qlKeyword LOOP
syn keyword n1qlKeyword LSM
syn keyword n1qlKeyword MAP
syn keyword n1qlKeyword MAPPING
syn keyword n1qlKeyword MATCHED
syn keyword n1qlKeyword MATERIALIZED
syn keyword n1qlKeyword MERGE
syn keyword n1qlKeyword NAMESPACE
syn keyword n1qlKeyword NEST
syn keyword n1qlKeyword OPTION
syn keyword n1qlKeyword ORDER
syn keyword n1qlKeyword OUTER
syn keyword n1qlKeyword OVER
syn keyword n1qlKeyword PARSE
syn keyword n1qlKeyword PARTITION
syn keyword n1qlKeyword PASSWORD
syn keyword n1qlKeyword PATH
syn keyword n1qlKeyword POOL
syn keyword n1qlKeyword PRIMARY
syn keyword n1qlKeyword PRIVATE
syn keyword n1qlKeyword PRIVILEGE
syn keyword n1qlKeyword PROCEDURE
syn keyword n1qlKeyword PUBLIC
syn keyword n1qlKeyword REALM
syn keyword n1qlKeyword REDUCE
syn keyword n1qlKeyword RETURN
syn keyword n1qlKeyword RETURNING
syn keyword n1qlKeyword ROLE
syn keyword n1qlKeyword SATISFIES
syn keyword n1qlKeyword SCHEMA
syn keyword n1qlKeyword SELF
syn keyword n1qlKeyword SEMI
syn keyword n1qlKeyword SHOW
syn keyword n1qlKeyword START
syn keyword n1qlKeyword STATISTICS
syn keyword n1qlKeyword SYSTEM
syn keyword n1qlKeyword THEN
syn keyword n1qlKeyword TRANSACTION
syn keyword n1qlKeyword TRIGGER
syn keyword n1qlKeyword UNDER
syn keyword n1qlKeyword UNKNOWN
syn keyword n1qlKeyword UNSET
syn keyword n1qlKeyword USE
syn keyword n1qlKeyword USER
syn keyword n1qlKeyword USING
syn keyword n1qlKeyword VALIDATE
syn keyword n1qlKeyword VALUE
syn keyword n1qlKeyword VALUED
syn keyword n1qlKeyword VALUES
syn keyword n1qlKeyword VIEW
syn keyword n1qlKeyword WHEN
syn keyword n1qlKeyword WHERE
syn keyword n1qlKeyword WHILE
syn keyword n1qlKeyword WITHIN
syn keyword n1qlKeyword WORK


"
" *** functions ***
"
syn keyword n1qlOperator ABS
syn keyword n1qlOperator ACOS
syn keyword n1qlOperator ARRAY_AGG
syn keyword n1qlOperator ARRAY_APPEND
syn keyword n1qlOperator ARRAY_AVG
syn keyword n1qlOperator ARRAY_CONCAT
syn keyword n1qlOperator ARRAY_CONTAINS
syn keyword n1qlOperator ARRAY_COUNT
syn keyword n1qlOperator ARRAY_DISTINCT
syn keyword n1qlOperator ARRAY_FLATTEN
syn keyword n1qlOperator ARRAY_IFNULL
syn keyword n1qlOperator ARRAY_INSERT
syn keyword n1qlOperator ARRAY_INTERSECT
syn keyword n1qlOperator ARRAY_LENGTH
syn keyword n1qlOperator ARRAY_MAX
syn keyword n1qlOperator ARRAY_MIN
syn keyword n1qlOperator ARRAY_POSITION
syn keyword n1qlOperator ARRAY_PREPEND
syn keyword n1qlOperator ARRAY_PUT
syn keyword n1qlOperator ARRAY_RANGE
syn keyword n1qlOperator ARRAY_REMOVE
syn keyword n1qlOperator ARRAY_REPEAT
syn keyword n1qlOperator ARRAY_REPLACE
syn keyword n1qlOperator ARRAY_REVERSE
syn keyword n1qlOperator ARRAY_SORT
syn keyword n1qlOperator ARRAY_START
syn keyword n1qlOperator ARRAY_SUM
syn keyword n1qlOperator ARRAY_SYMDIFF
syn keyword n1qlOperator ARRAY_UNION
syn keyword n1qlOperator ASIN
syn keyword n1qlOperator ATAN
syn keyword n1qlOperator ATAN2
syn keyword n1qlOperator AVG
syn keyword n1qlOperator BASE64
syn keyword n1qlOperator BASE64_DECODE
syn keyword n1qlOperator BASE64_ENCODE
syn keyword n1qlOperator CEIL
syn keyword n1qlOperator CLOCK_LOCAL
syn keyword n1qlOperator CLOCK_STR
syn keyword n1qlOperator CLOCK_TZ
syn keyword n1qlOperator CLOCK_UTC
syn keyword n1qlOperator CLOCL_MILLIS
syn keyword n1qlOperator CONTAINS
syn keyword n1qlOperator COS
syn keyword n1qlOperator COUNT
syn keyword n1qlOperator DATE_ADD_MILLIS
syn keyword n1qlOperator DATE_ADD_STR
syn keyword n1qlOperator DATE_DIFF_MILLIS
syn keyword n1qlOperator DATE_DIFF_STR
syn keyword n1qlOperator DATE_FORMAT_STR
syn keyword n1qlOperator DATE_PART_MILLIS
syn keyword n1qlOperator DATE_PART_STR
syn keyword n1qlOperator DATE_RANGE_MILLIS
syn keyword n1qlOperator DATE_RANGE_STR
syn keyword n1qlOperator DATE_TRUC_STR
syn keyword n1qlOperator DATE_TRUNC_MILLIS
syn keyword n1qlOperator DECODE_JSON
syn keyword n1qlOperator DEGREES
syn keyword n1qlOperator DURATION_TO_STR
syn keyword n1qlOperator E
syn keyword n1qlOperator ENCODED_SIZE
syn keyword n1qlOperator ENCODE_JSON
syn keyword n1qlOperator EXP
syn keyword n1qlOperator FLOOR
syn keyword n1qlOperator GREATEST
syn keyword n1qlOperator IFINF
syn keyword n1qlOperator IFMISSING
syn keyword n1qlOperator IFMISSINGORNULL
syn keyword n1qlOperator IFNAN
syn keyword n1qlOperator IFNANORINF
syn keyword n1qlOperator IFNULL
syn keyword n1qlOperator INITCAP
syn keyword n1qlOperator ISARRAY
syn keyword n1qlOperator ISATOM
syn keyword n1qlOperator ISBOOLEAN
syn keyword n1qlOperator ISNUMBER
syn keyword n1qlOperator ISOBJECT
syn keyword n1qlOperator ISSTRING
syn keyword n1qlOperator LEAST
syn keyword n1qlOperator LENGTH
syn keyword n1qlOperator LN
syn keyword n1qlOperator LOG
syn keyword n1qlOperator LOWER
syn keyword n1qlOperator LTRIM
syn keyword n1qlOperator MAX
syn keyword n1qlOperator META
syn keyword n1qlOperator MILLIS
syn keyword n1qlOperator MILLIS_TO_LOCAL
syn keyword n1qlOperator MILLIS_TO_STR
syn keyword n1qlOperator MILLIS_TO_TZ
syn keyword n1qlOperator MILLIS_TO_UTC
syn keyword n1qlOperator MILLIS_TO_ZONE_NAME
syn keyword n1qlOperator MIN
syn keyword n1qlOperator MISSINGIF
syn keyword n1qlOperator NANIF
syn keyword n1qlOperator NEGINFIF
syn keyword n1qlOperator NOW_LOCAL
syn keyword n1qlOperator NOW_MILLIS
syn keyword n1qlOperator NOW_STR
syn keyword n1qlOperator NOW_TZ
syn keyword n1qlOperator NOW_UTC
syn keyword n1qlOperator NULLIF
syn keyword n1qlOperator OBJECT_ADD
syn keyword n1qlOperator OBJECT_CONCAT
syn keyword n1qlOperator OBJECT_INNER_PAIRS
syn keyword n1qlOperator OBJECT_INNER_VALUES
syn keyword n1qlOperator OBJECT_LENGTH
syn keyword n1qlOperator OBJECT_NAMES
syn keyword n1qlOperator OBJECT_PAIRS
syn keyword n1qlOperator OBJECT_PUT
syn keyword n1qlOperator OBJECT_REMOVE
syn keyword n1qlOperator OBJECT_RENAME
syn keyword n1qlOperator OBJECT_REPLACE
syn keyword n1qlOperator OBJECT_UNWRAP
syn keyword n1qlOperator OBJECT_VALUES
syn keyword n1qlOperator PI
syn keyword n1qlOperator POLY_LENGTH
syn keyword n1qlOperator POSINIF
syn keyword n1qlOperator POSITION
syn keyword n1qlOperator POWER
syn keyword n1qlOperator RADIANS
syn keyword n1qlOperator RANDOM
syn keyword n1qlOperator REGEXP_CONTAINS
syn keyword n1qlOperator REGEXP_LIKE
syn keyword n1qlOperator REGEXP_POSITION
syn keyword n1qlOperator REGEXP_REPLACE
syn keyword n1qlOperator REPEAT
syn keyword n1qlOperator REPLACE
syn keyword n1qlOperator REVERSE
syn keyword n1qlOperator ROUND
syn keyword n1qlOperator RTRIM
syn keyword n1qlOperator SIGN
syn keyword n1qlOperator SIN
syn keyword n1qlOperator SPLIT
syn keyword n1qlOperator SQRT
syn keyword n1qlOperator STR_TO_DURATION
syn keyword n1qlOperator STR_TO_MILLIS
syn keyword n1qlOperator STR_TO_TZ
syn keyword n1qlOperator STR_TO_UTC
syn keyword n1qlOperator STR_TO_ZONE_NAME
syn keyword n1qlOperator SUBSTR
syn keyword n1qlOperator SUFFIXES
syn keyword n1qlOperator SUM
syn keyword n1qlOperator TAN
syn keyword n1qlOperator TITLE
syn keyword n1qlOperator TOARRAY
syn keyword n1qlOperator TOATOM
syn keyword n1qlOperator TOBOOLEAN
syn keyword n1qlOperator TOKENS
syn keyword n1qlOperator TONUMBER
syn keyword n1qlOperator TOOBJECT
syn keyword n1qlOperator TOSTRING
syn keyword n1qlOperator TRIM
syn keyword n1qlOperator TRUNC
syn keyword n1qlOperator TYPE
syn keyword n1qlOperator UPPER
syn keyword n1qlOperator UUID
syn keyword n1qlOperator WEEKDAY_MILLIS
syn keyword n1qlOperator WEEKDAY_STR


"
" *** operators ***
"
syn keyword n1qlOperator AND
syn keyword n1qlOperator AS
syn keyword n1qlOperator BY
syn keyword n1qlOperator DISTINCT
syn keyword n1qlOperator EXCEPT
syn keyword n1qlOperator ILIKE
syn keyword n1qlOperator IN
syn keyword n1qlOperator INTERSECT
syn keyword n1qlOperator IS
syn keyword n1qlOperator JOIN
syn keyword n1qlOperator LEFT
syn keyword n1qlOperator LIKE
syn keyword n1qlOperator MINUS
syn keyword n1qlOperator NEST
syn keyword n1qlOperator NESTING
syn keyword n1qlOperator NOT
syn keyword n1qlOperator OFFSET
syn keyword n1qlOperator ON
syn keyword n1qlOperator OR
syn keyword n1qlOperator OUT
syn keyword n1qlOperator RIGHT
syn keyword n1qlOperator SOME
syn keyword n1qlOperator TO
syn keyword n1qlOperator UNION
syn keyword n1qlOperator UNIQUE
syn keyword n1qlOperator UNNEST
syn keyword n1qlOperator VIA
syn keyword n1qlOperator WITH
syn keyword n1qlOperator XOR


"
" *** statements ***
"
syn keyword n1qlStatement ALTER
syn keyword n1qlStatement ANALYZE
syn keyword n1qlStatement BUILD
syn keyword n1qlStatement COMMIT
syn keyword n1qlStatement CREATE
syn keyword n1qlStatement DELETE
syn keyword n1qlStatement DROP
syn keyword n1qlStatement EXECUTE
syn keyword n1qlStatement EXPLAIN
syn keyword n1qlStatement GRANT
syn keyword n1qlStatement INFER
syn keyword n1qlStatement INSERT
syn keyword n1qlStatement MERGE
syn keyword n1qlStatement PREPARE
syn keyword n1qlStatement RENAME
syn keyword n1qlStatement REVOKE
syn keyword n1qlStatement ROLLBACK
syn keyword n1qlStatement SELECT
syn keyword n1qlStatement SET
syn keyword n1qlStatement TRUNCATE
syn keyword n1qlStatement UPDATE
syn keyword n1qlStatement UPSERT


"
" *** types ***
"
syn keyword n1qlType ARRAY
syn keyword n1qlType BINARY
syn keyword n1qlType BOOLEAN
syn keyword n1qlType NUMBER
syn keyword n1qlType OBJECT
syn keyword n1qlType RAW
syn keyword n1qlType STRING


"
" *** strings and characters ***
"
syn region n1qlString start=+"+  skip=+\\\\\|\\"+  end=+"+
syn region n1qlString start=+'+  skip=+\\\\\|\\'+  end=+'+
syn region n1qlBucketSpec start=+`+  skip=+\\\\\|\\'+  end=+`+


"
" *** numbers ***
"
syn match n1qlNumber        "-\=\<\d*\.\=[0-9_]\>"


"
" *** comments ***
"
syn region n1qlComment start="/\*"  end="\*/" contains=n1qlTODO
syn match n1qlComment  "--.*$" contains=n1qlTODO
syn sync ccomment      n1qlComment


"
" *** TODO ***
"
syn keyword n1qlTODO contained TODO FIXME XXX DEBUG NOTE


"
" *** enable ***
"
hi def link n1qlBucketSpec Underlined
hi def link n1qlComment    Comment
hi def link n1qlKeyword    Macro
hi def link n1qlOperator   Function
hi def link n1qlSpecial    Special
hi def link n1qlStatement  Statement
hi def link n1qlString     String
hi def link n1qlTODO       Todo
hi def link n1qlType       Type

let b:current_syntax = "n1ql"
PK�j�ZE���3�3vim80/syntax/tcsh.vimnu�[���" tcsh.vim: Vim syntax file for tcsh scripts
" Maintainer:	Gautam Iyer <gi1242@gmail.com>
" Modified:	Thu 17 Dec 2009 06:05:07 PM EST
"
" Description: We break up each statement into a "command" and an "end" part.
" All groups are either a "command" or part of the "end" of a statement (ie
" everything after the "command"). This is because blindly highlighting tcsh
" statements as keywords caused way too many false positives. Eg:
"
" 	set history=200
"
" causes history to come up as a keyword, which we want to avoid.

" Quit when a syntax file was already loaded
if exists('b:current_syntax')
  finish
endif

let s:oldcpo = &cpo
set cpo&vim " Line continuation is used

setlocal iskeyword+=-

syn case match

" ----- Clusters -----
syn cluster tcshModifiers	contains=tcshModifier,tcshModifierError
syn cluster tcshQuoteList	contains=tcshDQuote,tcshSQuote,tcshBQuote
syn cluster tcshStatementEnds	contains=@tcshQuoteList,tcshComment,@tcshVarList,tcshRedir,tcshMeta,tcshHereDoc,tcshSpecial,tcshArguement
syn cluster tcshStatements	contains=tcshBuiltin,tcshCommands,tcshIf,tcshWhile
syn cluster tcshVarList		contains=tcshUsrVar,tcshArgv,tcshSubst
syn cluster tcshConditions	contains=tcshCmdSubst,tcshParenExpr,tcshOperator,tcshNumber,@tcshVarList

" ----- Errors -----
" Define first, so can be easily overridden.
syn match tcshError contained '\v\S.+'

" ----- Statements -----
" Tcsh commands: Any filename / modifiable variable (must be first!)
syn match tcshCommands	'\v[a-zA-Z0-9\\./_$:-]+' contains=tcshSpecial,tcshUsrVar,tcshArgv,tcshVarError nextgroup=tcshStatementEnd

" Builtin commands except those treated specially. Currently (un)set(env),
" (un)alias, if, while, else, bindkey
syn keyword tcshBuiltin nextgroup=tcshStatementEnd alloc bg break breaksw builtins bye case cd chdir complete continue default dirs echo echotc end endif endsw eval exec exit fg filetest foreach getspath getxvers glob goto hashstat history hup inlib jobs kill limit log login logout ls ls-F migrate newgrp nice nohup notify onintr popd printenv pushd rehash repeat rootnode sched setpath setspath settc setty setxvers shift source stop suspend switch telltc time umask uncomplete unhash universe unlimit ver wait warp watchlog where which

" StatementEnd is anything after a built-in / command till the lexical end of a
" statement (;, |, ||, |&, && or end of line)
syn region tcshStatementEnd	transparent contained matchgroup=tcshBuiltin start='' end='\v\\@<!(;|\|[|&]?|\&\&|$)' contains=@tcshStatementEnds

" set expressions (Contains shell variables)
syn keyword tcshShellVar contained afsuser ampm argv autocorrect autoexpand autolist autologout backslash_quote catalog cdpath color colorcat command complete continue continue_args correct cwd dextract dirsfile dirstack dspmbyte dunique echo echo_style edit ellipsis fignore filec gid group histchars histdup histfile histlit history home ignoreeof implicitcd inputmode killdup killring listflags listjobs listlinks listmax listmaxrows loginsh logout mail matchbeep nobeep noclobber noding noglob nokanji nonomatch nostat notify oid owd path printexitvalue prompt prompt2 prompt3 promptchars pushdtohome pushdsilent recexact recognize_only_executables rmstar rprompt savedirs savehist sched shell shlvl status symlinks tcsh term time tperiod tty uid user verbose version visiblebell watch who wordchars
syn keyword tcshBuiltin	nextgroup=tcshSetEnd set unset
syn region  tcshSetEnd	contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=tcshShellVar,@tcshStatementEnds

" setenv expressions (Contains environment variables)
syn keyword tcshEnvVar contained AFSUSER COLUMNS DISPLAY EDITOR GROUP HOME HOST HOSTTYPE HPATH LANG LC_CTYPE LINES LS_COLORS MACHTYPE NOREBIND OSTYPE PATH PWD REMOTEHOST SHLVL SYSTYPE TERM TERMCAP USER VENDOR VISUAL
syn keyword tcshBuiltin	nextgroup=tcshEnvEnd setenv unsetenv
syn region  tcshEnvEnd	contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=tcshEnvVar,@tcshStatementEnds

" alias and unalias (contains special aliases)
syn keyword tcshAliases contained beepcmd cwdcmd jobcmd helpcommand periodic precmd postcmd shell
syn keyword tcshBuiltin	nextgroup=tcshAliCmd skipwhite alias unalias
syn match   tcshAliCmd	contained nextgroup=tcshAliEnd skipwhite '\v(\w|-)+' contains=tcshAliases
syn region  tcshAliEnd	contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=@tcshStatementEnds

" if statements
syn keyword tcshIf	nextgroup=tcshIfEnd skipwhite if
syn region  tcshIfEnd	contained start='\S' skip='\\$' matchgroup=tcshBuiltin end='\v<then>|$' contains=@tcshConditions,tcshSpecial,@tcshStatementEnds
syn region  tcshIfEnd	contained matchgroup=tcshBuiltin contains=@tcshConditions,tcshSpecial start='(' end='\v\)%(\s+then>)?' skipwhite nextgroup=@tcshStatementEnds 
syn region  tcshIfEnd	contained matchgroup=tcshBuiltin contains=tcshCommands,tcshSpecial start='\v\{\s+' end='\v\s+\}%(\s+then>)?' skipwhite nextgroup=@tcshStatementEnds keepend

" else statements
syn keyword tcshBuiltin	nextgroup=tcshIf skipwhite else

" while statements (contains expressions / operators)
syn keyword tcshBuiltin	nextgroup=@tcshConditions,tcshSpecial skipwhite while

" Conditions (for if and while)
syn region tcshParenExpr contained contains=@tcshConditions,tcshSpecial matchgroup=tcshBuiltin start='(' end=')'
syn region tcshCmdSubst  contained contains=tcshCommands matchgroup=tcshBuiltin start='\v\{\s+' end='\v\s+\}' keepend

" Bindkey. Internal editor functions
syn keyword tcshBindkeyFuncs contained backward-char backward-delete-char
	    \ backward-delete-word backward-kill-line backward-word
	    \ beginning-of-line capitalize-word change-case
	    \ change-till-end-of-line clear-screen complete-word
	    \ complete-word-fwd complete-word-back complete-word-raw
	    \ copy-prev-word copy-region-as-kill dabbrev-expand delete-char
	    \ delete-char-or-eof delete-char-or-list
	    \ delete-char-or-list-or-eof delete-word digit digit-argument
	    \ down-history downcase-word end-of-file end-of-line
	    \ exchange-point-and-mark expand-glob expand-history expand-line
	    \ expand-variables forward-char forward-word
	    \ gosmacs-transpose-chars history-search-backward
	    \ history-search-forward insert-last-word i-search-fwd
	    \ i-search-back keyboard-quit kill-line kill-region
	    \ kill-whole-line list-choices list-choices-raw list-glob
	    \ list-or-eof load-average magic-space newline normalize-path
	    \ normalize-command overwrite-mode prefix-meta quoted-insert
	    \ redisplay run-fg-editor run-help self-insert-command
	    \ sequence-lead-in set-mark-command spell-word spell-line
	    \ stuff-char toggle-literal-history transpose-chars
	    \ transpose-gosling tty-dsusp tty-flush-output tty-sigintr
	    \ tty-sigquit tty-sigtsusp tty-start-output tty-stop-output
	    \ undefined-key universal-argument up-history upcase-word
	    \ vi-beginning-of-next-word vi-add vi-add-at-eol vi-chg-case
	    \ vi-chg-meta vi-chg-to-eol vi-cmd-mode vi-cmd-mode-complete
	    \ vi-delprev vi-delmeta vi-endword vi-eword vi-char-back
	    \ vi-char-fwd vi-charto-back vi-charto-fwd vi-insert
	    \ vi-insert-at-bol vi-repeat-char-fwd vi-repeat-char-back
	    \ vi-repeat-search-fwd vi-repeat-search-back vi-replace-char
	    \ vi-replace-mode vi-search-back vi-search-fwd vi-substitute-char
	    \ vi-substitute-line vi-word-back vi-word-fwd vi-undo vi-zero
	    \ which-command yank yank-pop e_copy_to_clipboard
	    \ e_paste_from_clipboard e_dosify_next e_dosify_prev e_page_up
	    \ e_page_down
syn keyword tcshBuiltin nextgroup=tcshBindkeyEnd bindkey
syn region tcshBindkeyEnd contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$' contains=@tcshQuoteList,tcshComment,@tcshVarList,tcshMeta,tcshSpecial,tcshArguement,tcshBindkeyFuncs

" Expressions start with @.
syn match tcshExprStart '\v\@\s+' nextgroup=tcshExprVar
syn match tcshExprVar	contained '\v\h\w*%(\[\d+\])?' contains=tcshShellVar,tcshEnvVar nextgroup=tcshExprOp
syn match tcshExprOp	contained '++\|--'
syn match tcshExprOp	contained '\v\s*\=' nextgroup=tcshExprEnd
syn match tcshExprEnd	contained '\v.*$'hs=e+1 contains=@tcshConditions
syn match tcshExprEnd	contained '\v.{-};'hs=e	contains=@tcshConditions

" ----- Comments: -----
syn match tcshComment	'#\s.*' contains=tcshTodo,tcshCommentTi,@Spell
syn match tcshComment	'\v#($|\S.*)' contains=tcshTodo,tcshCommentTi
syn match tcshSharpBang '^#! .*$'
syn match tcshCommentTi contained '\v#\s*\u\w*(\s+\u\w*)*:'hs=s+1 contains=tcshTodo
syn match tcshTodo	contained '\v\c<todo>'

" ----- Strings -----
" Tcsh does not allow \" in strings unless the "backslash_quote" shell
" variable is set. Set the vim variable "tcsh_backslash_quote" to 0 if you
" want VIM to assume that no backslash quote constructs exist.

" Backquotes are treated as commands, and are not contained in anything
if(exists('tcsh_backslash_quote') && tcsh_backslash_quote == 0)
    syn region tcshSQuote	keepend contained start="\v\\@<!'" end="'"
    syn region tcshDQuote	keepend contained start='\v\\@<!"' end='"' contains=@tcshVarList,tcshSpecial,@Spell
    syn region tcshBQuote	keepend start='\v\\@<!`' end='`' contains=@tcshStatements
else
    syn region tcshSQuote	contained start="\v\\@<!'" skip="\v\\\\|\\'" end="'"
    syn region tcshDQuote	contained start='\v\\@<!"' end='"' contains=@tcshVarList,tcshSpecial,@Spell
    syn region tcshBQuote	keepend matchgroup=tcshBQuoteGrp start='\v\\@<!`' skip='\v\\\\|\\`' end='`' contains=@tcshStatements
endif

" ----- Variables -----
" Variable Errors. Must come first! \$ constructs will be flagged by
" tcshSpecial, so we don't consider them here.
syn match tcshVarError	'\v\$\S*'	contained

" Modifiable Variables without {}.
syn match tcshUsrVar contained '\v\$\h\w*%(\[\d+%(-\d+)?\])?' nextgroup=@tcshModifiers contains=tcshShellVar,tcshEnvVar
syn match tcshArgv   contained '\v\$%(\d+|\*)' nextgroup=@tcshModifiers

" Modifiable Variables with {}.
syn match tcshUsrVar contained '\v\$\{\h\w*%(\[\d+%(-\d+)?\])?%(:\S*)?\}' contains=@tcshModifiers,tcshShellVar,tcshEnvVar
syn match tcshArgv   contained '\v\$\{%(\d+|\*)%(:\S*)?\}' contains=@tcshModifiers

" Un-modifiable Substitutions. Order is important here.
syn match tcshSubst contained	'\v\$[?#$!_<]' nextgroup=tcshModifierError
syn match tcshSubst contained	'\v\$[%#?]%(\h\w*|\d+)' nextgroup=tcshModifierError contains=tcshShellVar,tcshEnvVar
syn match tcshSubst contained	'\v\$\{[%#?]%(\h\w*|\d+)%(:\S*)?\}' contains=tcshModifierError contains=tcshShellVar,tcshEnvVar

" Variable Name Expansion Modifiers (order important)
syn match tcshModifierError	contained '\v:\S*'
syn match tcshModifier		contained '\v:[ag]?[htreuls&qx]' nextgroup=@tcshModifiers

" ----- Operators / Specials -----
" Standard redirects (except <<) [<, >, >>, >>&, >>!, >>&!]
syn match tcshRedir contained	'\v\<|\>\>?\&?!?'

" Meta-chars
syn match tcshMeta  contained	'\v[]{}*?[]'

" Here documents (<<)
syn region tcshHereDoc contained matchgroup=tcshShellVar start='\v\<\<\s*\z(\h\w*)' end='^\z1$' contains=@tcshVarList,tcshSpecial
syn region tcshHereDoc contained matchgroup=tcshShellVar start="\v\<\<\s*'\z(\h\w*)'" start='\v\<\<\s*"\z(\h\w*)"$' start='\v\<\<\s*\\\z(\h\w*)$' end='^\z1$'

" Operators
syn match tcshOperator	contained '&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|%\|&\|+\|-\|/\|<\|>\||'
"syn match tcshOperator	contained '[(){}]'

" Numbers
syn match tcshNumber	contained '\v<-?\d+>'

" Arguments
syn match tcshArguement	contained '\v\s@<=-(\w|-)*'

" Special characters. \xxx, or backslashed characters.
"syn match tcshSpecial	contained '\v\\@<!\\(\d{3}|.)'
syn match tcshSpecial	contained '\v\\%([0-7]{3}|.)'

" ----- Synchronising -----
if exists('tcsh_minlines')
    if tcsh_minlines == 'fromstart'
	syn sync fromstart
    else
	exec 'syn sync minlines=' . tcsh_minlines
    endif
else
    syn sync minlines=100	" Some completions can be quite long
endif

" Define highlighting of syntax groups
hi def link tcshError		Error
hi def link tcshBuiltin		Statement
hi def link tcshShellVar	Preproc
hi def link tcshEnvVar		tcshShellVar
hi def link tcshAliases		tcshShellVar
hi def link tcshAliCmd		Identifier
hi def link tcshCommands	Identifier
hi def link tcshIf		tcshBuiltin
hi def link tcshWhile		tcshBuiltin
hi def link tcshBindkeyFuncs	Function
hi def link tcshExprStart	tcshBuiltin
hi def link tcshExprVar		tcshUsrVar
hi def link tcshExprOp		tcshOperator
hi def link tcshExprEnd		tcshOperator
hi def link tcshComment		Comment
hi def link tcshCommentTi	Preproc
hi def link tcshSharpBang	tcshCommentTi
hi def link tcshTodo		Todo
hi def link tcshSQuote		Constant
hi def link tcshDQuote		tcshSQuote
hi def link tcshBQuoteGrp	Include
hi def link tcshVarError	Error
hi def link tcshUsrVar		Type
hi def link tcshArgv		tcshUsrVar
hi def link tcshSubst		tcshUsrVar
hi def link tcshModifier	tcshArguement
hi def link tcshModifierError	tcshVarError
hi def link tcshMeta		tcshSubst
hi def link tcshRedir		tcshOperator
hi def link tcshHereDoc		tcshSQuote
hi def link tcshOperator	Operator
hi def link tcshNumber		Number
hi def link tcshArguement	Special
hi def link tcshSpecial		SpecialChar

let &cpo = s:oldcpo
unlet s:oldcpo

let b:current_syntax = 'tcsh'
PK�j�ZA�~vim80/syntax/tt2html.vimnu�[���" Language:      TT2 embedded with HTML
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Author:        Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2013-07-21

if exists("b:current_syntax")
    finish
endif

runtime! syntax/html.vim
unlet b:current_syntax

runtime! syntax/tt2.vim
unlet b:current_syntax

syn cluster htmlPreProc add=@tt2_top_cluster

let b:current_syntax = "tt2html"
PK�j�Z�Y���vim80/syntax/takout.vimnu�[���" Vim syntax file
" Language:     TAK2, TAK3, TAK2000 thermal modeling output file
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.out
" URL:		http://www.naglenet.org/vim/syntax/takout.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case match



" Load TAK syntax file
runtime! syntax/tak.vim
unlet b:current_syntax



"
"
" Begin syntax definitions for tak output files.
"

" Define keywords for TAK output
syn case match

syn keyword takoutPos       ON SI
syn keyword takoutNeg       OFF ENG



" Define matches for TAK output
syn match takoutTitle	     "TAK III"
syn match takoutTitle	     "Release \d.\d\d"
syn match takoutTitle	     " K & K  Associates *Thermal Analysis Kit III *Serial Number \d\d-\d\d\d"

syn match takoutFile	     ": \w*\.TAK"hs=s+2

syn match takoutInteger      "T\=[0-9]*\>"ms=s+1

syn match takoutSectionDelim "[-<>]\{4,}" contains=takoutSectionTitle
syn match takoutSectionDelim ":\=\.\{4,}:\=" contains=takoutSectionTitle
syn match takoutSectionTitle "[-<:] \w[0-9A-Za-z_() ]\+ [->:]"hs=s+1,me=e-1

syn match takoutHeaderDelim  "=\{5,}"
syn match takoutHeaderDelim  "|\{5,}"
syn match takoutHeaderDelim  "+\{5,}"

syn match takoutLabel	     "Input File:" contains=takoutFile
syn match takoutLabel	     "Begin Solution: Routine"

syn match takoutError	     "<<< Error >>>"


" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link takoutPos		   Statement
hi def link takoutNeg		   PreProc
hi def link takoutTitle		   Type
hi def link takoutFile		   takIncludeFile
hi def link takoutInteger		   takInteger

hi def link takoutSectionDelim	    Delimiter
hi def link takoutSectionTitle	   Exception
hi def link takoutHeaderDelim	   SpecialComment
hi def link takoutLabel		   Identifier

hi def link takoutError		   Error



let b:current_syntax = "takout"

" vim: ts=8 sw=2
PK�j�ZA�X���vim80/syntax/mallard.vimnu�[���" Vim syntax file
" Language:    Mallard
" Maintainer:  Jaromir Hradilek <jhradilek@gmail.com>
" URL:         https://github.com/jhradilek/vim-syntax
" Last Change: 11 February 2013
" Description: A syntax file for the Mallard markup language according to
"              Mallard 1.0 DRAFT as of 2013-02-11.

if exists("b:current_syntax")
  finish
endif

do Syntax xml
syn cluster xmlTagHook add=mallardTagName
syn spell toplevel
syn case match

syn keyword mallardTagName app cite cmd code col colgroup comment contained
syn keyword mallardTagName credit desc em email example figure contained
syn keyword mallardTagName file gui guiseq info input item key contained
syn keyword mallardTagName keyseq license link links list listing contained
syn keyword mallardTagName media name note output p page quote contained
syn keyword mallardTagName revision screen section span steps contained
syn keyword mallardTagName subtitle synopsis sys table tbody td contained
syn keyword mallardTagName terms tfoot thead title tr tree var contained
syn keyword mallardTagName years contained

syn region mallardComment start="<comment\>" end="</comment>"me=e-10 contains=xmlTag,xmlNamespace,xmlTagName,xmlEndTag,xmlRegion,xmlEntity,@Spell keepend
syn region mallardEmphasis start="<em\>" end="</em>"me=e-5 contains=xmlTag,xmlNamespace,xmlTagName,xmlEndTag,xmlRegion,xmlEntity,@Spell keepend
syn region mallardTitle start="<title\>" end="</title>"me=e-8 contains=xmlTag,xmlNamespace,xmlTagName,xmlEndTag,xmlRegion,xmlEntity,@Spell keepend

hi def link mallardComment  Comment
hi def link mallardTagName  Statement
hi def link mallardTitle    Title
hi def mallardEmphasis term=italic cterm=italic gui=italic

let b:current_syntax = "mallard"
PK�j�Z:�N;ffvim80/syntax/gitolite.vimnu�[���" Vim syntax file
" Language:	gitolite configuration
" URL:		https://github.com/sitaramc/gitolite/blob/master/contrib/vim/syntax/gitolite.vim
"	(https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/syntax/gitolite.vim)
" Maintainer:	Sitaram Chamarty <sitaramc@gmail.com>
" (former Maintainer:	Teemu Matilainen <teemu.matilainen@iki.fi>)
" Last Change:	2017 Oct 05

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" this seems to be the best way, for now.
syntax sync fromstart

" ---- common stuff

syn match   gitoliteGroup           '@\S\+'

syn match   gitoliteComment         '#.*' contains=gitoliteTodo
syn keyword gitoliteTodo            TODO FIXME XXX NOT contained

" ---- main section

" catch template-data syntax appearing outside template-data section
syn match   gitoliteRepoError       '^\s*repo.*='
syn match   gitoliteRepoError       '^\s*\S\+\s*='  " this gets overridden later when first word is a perm, don't worry

" normal gitolite group and repo lines
syn match   gitoliteGroupLine       '^\s*@\S\+\s*=\s*\S.*$' contains=gitoliteGroup,gitoliteComment
syn match   gitoliteRepoLine        '^\s*repo\s\+[^=]*$' contains=gitoliteRepo,gitoliteGroup,gitoliteComment
syn keyword gitoliteRepo            repo contained

syn keyword gitoliteSpecialRepo     CREATOR

" normal gitolite rule lines
syn match   gitoliteRuleLine        '^\s*\(-\|C\|R\|RW+\?C\?D\?\)\s[^#]*' contains=gitoliteRule,gitoliteCreateRule,gitoliteDenyRule,gitoliteRefex,gitoliteUsers,gitoliteGroup
syn match   gitoliteRule            '\(^\s*\)\@<=\(-\|C\|R\|RW+\?C\?D\?\)\s\@=' contained
syn match   gitoliteRefex           '\(^\s*\(-\|R\|RW+\?C\?D\?\)\s\+\)\@<=\S.\{-}\(\s*=\)\@=' contains=gitoliteSpecialRefex
syn match   gitoliteSpecialRefex    'NAME/'
syn match   gitoliteSpecialRefex    '/USER/'
syn match   gitoliteCreateRule      '\(^\s*C\s.*=\s*\)\@<=\S[^#]*[^# ]' contained contains=gitoliteGroup
syn match   gitoliteDenyRule        '\(^\s*-\s.*=\s*\)\@<=\S[^#]*[^# ]' contained

" normal gitolite config (and similar) lines
syn match   gitoliteConfigLine      '^\s*\(config\|option\|include\|subconf\)\s[^#]*' contains=gitoliteConfigKW,gitoliteConfigKey,gitoliteConfigVal,gitoliteComment
syn keyword gitoliteConfigKW        config option include subconf contained
syn match   gitoliteConfigKey       '\(\(config\|option\)\s\+\)\@<=[^ =]*' contained
syn match   gitoliteConfigVal       '\(=\s*\)\@<=\S.*' contained

" ---- template-data section

syn region  gitoliteTemplateLine    matchgroup=PreProc start='^=begin template-data$' end='^=end$' contains=gitoliteTplRepoLine,gitoliteTplRoleLine,gitoliteGroup,gitoliteComment,gitoliteTplError

syn match   gitoliteTplRepoLine     '^\s*repo\s\+\S.*=.*' contained contains=gitoliteTplRepo,gitoliteTplTemplates,gitoliteGroup
syn keyword gitoliteTplRepo         repo contained
syn match   gitoliteTplTemplates    '\(=\s*\)\@<=\S.*' contained contains=gitoliteGroup,gitoliteComment

syn match   gitoliteTplRoleLine     '^\s*\S\+\s*=\s*.*' contained contains=gitoliteTplRole,gitoliteGroup,gitoliteComment
syn match   gitoliteTplRole         '\S\+\s*='he=e-1 contained

" catch normal gitolite rules appearing in template-data section
syn match   gitoliteTplError        '^\s*repo[^=]*$' contained
syn match   gitoliteTplError        '^\s*\(-\|R\|RW+\?C\?D\?\)\s'he=e-1 contained
syn match   gitoliteTplError        '^\s*\(config\|option\|include\|subconf\)\s'he=e-1 contained
syn match   gitoliteTplError        '^\s*@\S\+\s*=' contained contains=NONE

hi def link gitoliteGroup           Identifier
hi def link gitoliteComment         Comment
hi def link gitoliteTodo            ToDo
hi def link gitoliteRepoError       Error
hi def link gitoliteGroupLine       PreProc
hi def link gitoliteRepo            Keyword
hi def link gitoliteSpecialRepo     PreProc
hi def link gitoliteRule            Keyword
hi def link gitoliteCreateRule      PreProc
hi def link gitoliteDenyRule        WarningMsg
hi def link gitoliteRefex           Constant
hi def link gitoliteSpecialRefex    PreProc
hi def link gitoliteConfigKW        Keyword
hi def link gitoliteConfigKey       Identifier
hi def link gitoliteConfigVal       String
hi def link gitoliteTplRepo         Keyword
hi def link gitoliteTplTemplates    Constant
hi def link gitoliteTplRole         Constant
hi def link gitoliteTplError        Error

let b:current_syntax = "gitolite"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�X(��vim80/syntax/gdmo.vimnu�[���" Vim syntax file
" Language:	GDMO
"		(ISO-10165-4; Guidelines for the Definition of Managed Object)
" Maintainer:	Gyuman (Chester) Kim <violkim@gmail.com>
" URL:		http://classicalprogrammer.wikidot.com/local--files/vim-syntax-file-for-gdmo/gdmo.vim
" Last change:	8th June, 2011

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" keyword definitions
syn match   gdmoCategory      "MANAGED\s\+OBJECT\s\+CLASS"
syn keyword gdmoCategory      NOTIFICATION ATTRIBUTE BEHAVIOUR PACKAGE ACTION
syn match   gdmoCategory      "NAME\s\+BINDING"
syn match   gdmoRelationship  "DERIVED\s\+FROM"
syn match   gdmoRelationship  "SUPERIOR\s\+OBJECT\s\+CLASS"
syn match   gdmoRelationship  "SUBORDINATE\s\+OBJECT\s\+CLASS"
syn match   gdmoExtension     "AND\s\+SUBCLASSES"
syn match   gdmoDefinition    "DEFINED\s\+AS"
syn match   gdmoDefinition    "REGISTERED\s\+AS"
syn match   gdmoExtension     "ORDER\s\+BY"
syn match   gdmoReference     "WITH\s\+ATTRIBUTE"
syn match   gdmoReference     "WITH\s\+INFORMATION\s\+SYNTAX"
syn match   gdmoReference     "WITH\s\+REPLY\s\+SYNTAX"
syn match   gdmoReference     "WITH\s\+ATTRIBUTE\s\+SYNTAX"
syn match   gdmoExtension     "AND\s\+ATTRIBUTE\s\+IDS"
syn match   gdmoExtension     "MATCHES\s\+FOR"
syn match   gdmoReference     "CHARACTERIZED\s\+BY"
syn match   gdmoReference     "CONDITIONAL\s\+PACKAGES"
syn match   gdmoExtension     "PRESENT\s\+IF"
syn match   gdmoExtension     "DEFAULT\s\+VALUE"
syn match   gdmoExtension     "PERMITTED\s\+VALUES"
syn match   gdmoExtension     "REQUIRED\s\+VALUES"
syn match   gdmoExtension     "NAMED\s\+BY"
syn keyword gdmoReference     ATTRIBUTES NOTIFICATIONS ACTIONS
syn keyword gdmoExtension     DELETE CREATE
syn keyword gdmoExtension     EQUALITY SUBSTRINGS ORDERING
syn match   gdmoExtension     "REPLACE-WITH-DEFAULT"
syn match   gdmoExtension     "GET"
syn match   gdmoExtension     "GET-REPLACE"
syn match   gdmoExtension     "ADD-REMOVE"
syn match   gdmoExtension     "WITH-REFERENCE-OBJECT"
syn match   gdmoExtension     "WITH-AUTOMATIC-INSTANCE-NAMING"
syn match   gdmoExtension     "ONLY-IF-NO-CONTAINED-OBJECTS"


" Strings and constants
syn match   gdmoSpecial		contained "\\\d\d\d\|\\."
syn region  gdmoString		start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=gdmoSpecial
syn match   gdmoCharacter	  "'[^\\]'"
syn match   gdmoSpecialCharacter  "'\\.'"
syn match   gdmoNumber		  "0[xX][0-9a-fA-F]\+\>"
syn match   gdmoLineComment       "--.*"
syn match   gdmoLineComment       "--.*--"

syn match gdmoDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3
syn match gdmoBraces     "[{}]"

syn sync ccomment gdmoComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link gdmoCategory	      Structure
hi def link gdmoRelationship     Macro
hi def link gdmoDefinition       Statement
hi def link gdmoReference	      Type
hi def link gdmoExtension	      Operator
hi def link gdmoBraces	      Function
hi def link gdmoSpecial	      Special
hi def link gdmoString	      String
hi def link gdmoCharacter	      Character
hi def link gdmoSpecialCharacter gdmoSpecial
hi def link gdmoComment	      Comment
hi def link gdmoLineComment      gdmoComment
hi def link gdmoType	      Type


let b:current_syntax = "gdmo"

" vim: ts=8
PK�j�Z�׿#��vim80/syntax/mgl.vimnu�[���" Vim syntax file
" Language:	MGL
" Version: 1.0
" Last Change:	2006 Feb 21
" Maintainer:  Gero Kuhlmann <gero@gkminix.han.de>
"
" $Id: mgl.vim,v 1.1 2006/02/21 22:08:20 vimboss Exp $
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


syn sync lines=250

syn keyword mglBoolean		true false
syn keyword mglConditional	if else then
syn keyword mglConstant		nil
syn keyword mglPredefined	maxint
syn keyword mglLabel		case goto label
syn keyword mglOperator		to downto in of with
syn keyword mglOperator		and not or xor div mod
syn keyword mglRepeat		do for repeat while to until
syn keyword mglStatement	procedure function break continue return restart
syn keyword mglStatement	program begin end const var type
syn keyword mglStruct		record
syn keyword mglType		integer string char boolean char ipaddr array


" String
if !exists("mgl_one_line_string")
  syn region  mglString matchgroup=mglString start=+'+ end=+'+ contains=mglStringEscape
  syn region  mglString matchgroup=mglString start=+"+ end=+"+ contains=mglStringEscapeGPC
else
  "wrong strings
  syn region  mglStringError matchgroup=mglStringError start=+'+ end=+'+ end=+$+ contains=mglStringEscape
  syn region  mglStringError matchgroup=mglStringError start=+"+ end=+"+ end=+$+ contains=mglStringEscapeGPC
  "right strings
  syn region  mglString matchgroup=mglString start=+'+ end=+'+ oneline contains=mglStringEscape
  syn region  mglString matchgroup=mglString start=+"+ end=+"+ oneline contains=mglStringEscapeGPC
end
syn match   mglStringEscape	contained "''"
syn match   mglStringEscapeGPC	contained '""'


if exists("mgl_symbol_operator")
  syn match   mglSymbolOperator		"[+\-/*=\%]"
  syn match   mglSymbolOperator		"[<>]=\="
  syn match   mglSymbolOperator		"<>"
  syn match   mglSymbolOperator		":="
  syn match   mglSymbolOperator		"[()]"
  syn match   mglSymbolOperator		"\.\."
  syn match   mglMatrixDelimiter	"(."
  syn match   mglMatrixDelimiter	".)"
  syn match   mglMatrixDelimiter	"[][]"
endif

syn match  mglNumber	"-\=\<\d\+\>"
syn match  mglHexNumber	"\$[0-9a-fA-F]\+\>"
syn match  mglCharacter	"\#[0-9]\+\>"
syn match  mglIpAddr	"[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\>"

syn region mglComment	start="(\*"  end="\*)"
syn region mglComment	start="{"  end="}"
syn region mglComment	start="//"  end="$"

if !exists("mgl_no_functions")
  syn keyword mglFunction	dispose new
  syn keyword mglFunction	get load print select
  syn keyword mglFunction	odd pred succ
  syn keyword mglFunction	chr ord abs sqr
  syn keyword mglFunction	exit
  syn keyword mglOperator	at timeout
endif


syn region mglPreProc	start="(\*\$"  end="\*)"
syn region mglPreProc	start="{\$"  end="}"

syn keyword mglException	try except raise
syn keyword mglPredefined	exception


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link mglBoolean		Boolean
hi def link mglComment		Comment
hi def link mglConditional		Conditional
hi def link mglConstant		Constant
hi def link mglException		Exception
hi def link mglFunction		Function
hi def link mglLabel		Label
hi def link mglMatrixDelimiter	Identifier
hi def link mglNumber		Number
hi def link mglHexNumber		Number
hi def link mglCharacter		Number
hi def link mglIpAddr		Number
hi def link mglOperator		Operator
hi def link mglPredefined		mglFunction
hi def link mglPreProc		PreProc
hi def link mglRepeat		Repeat
hi def link mglStatement		Statement
hi def link mglString		String
hi def link mglStringEscape	Special
hi def link mglStringEscapeGPC	Special
hi def link mglStringError		Error
hi def link mglStruct		mglStatement
hi def link mglSymbolOperator	mglOperator
hi def link mglType		Type



let b:current_syntax = "mgl"

" vim: ts=8 sw=2
PK�j�ZGpjXXvim80/syntax/hercules.vimnu�[���" Vim syntax file
" Language:	Hercules
" Maintainer:	Dana Edwards <Dana_Edwards@avanticorp.com>
" Extensions:   *.vc,*.ev,*.rs
" Last change:  Nov. 9, 2001
" Comment:      Hercules physical IC design verification software ensures
"		that an IC's physical design matches its logical design and
"		satisfies manufacturing rules.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Ignore case
syn case ignore

" Hercules runset sections
syn keyword   herculesType	  header assign_property alias assign
syn keyword   herculesType	  options preprocess_options
syn keyword   herculesType	  explode_options technology_options
syn keyword   herculesType	  drc_options database_options
syn keyword   herculesType	  text_options lpe_options evaccess_options
syn keyword   herculesType	  check_point compare_group environment
syn keyword   herculesType	  grid_check include layer_stats load_group
syn keyword   herculesType	  restart run_only self_intersect set snap
syn keyword   herculesType	  system variable waiver

" Hercules commands
syn keyword   herculesStatement   attach_property boolean cell_extent
syn keyword   herculesStatement   common_hierarchy connection_points
syn keyword   herculesStatement   copy data_filter alternate delete
syn keyword   herculesStatement   explode explode_all fill_pattern find_net
syn keyword   herculesStatement   flatten
syn keyword   herculesStatement   level negate polygon_features push
syn keyword   herculesStatement   rectangles relocate remove_overlap reverse select
syn keyword   herculesStatement   select_cell select_contains select_edge select_net size
syn keyword   herculesStatement   text_polygon text_property vertex area cut
syn keyword   herculesStatement   density enclose external inside_edge
syn keyword   herculesStatement   internal notch vectorize center_to_center
syn keyword   herculesStatement   length mask_align moscheck rescheck
syn keyword   herculesStatement   analysis buildsub init_lpe_db capacitor
syn keyword   herculesStatement   device gendev nmos pmos diode npn pnp
syn keyword   herculesStatement   resistor set_param save_property
syn keyword   herculesStatement   connect disconnect text  text_boolean
syn keyword   herculesStatement   replace_text create_ports label graphics
syn keyword   herculesStatement   save_netlist_database lpe_stats netlist
syn keyword   herculesStatement   spice graphics_property graphics_netlist
syn keyword   herculesStatement   write_milkyway multi_rule_enclose
syn keyword   herculesStatement   if error_property equate compare
syn keyword   herculesStatement   antenna_fix c_thru dev_connect_check
syn keyword   herculesStatement   dev_net_count device_count net_filter
syn keyword   herculesStatement   net_path_check ratio process_text_opens

" Hercules keywords
syn keyword   herculesStatement   black_box_file block compare_dir equivalence
syn keyword   herculesStatement   format gdsin_dir group_dir group_dir_usage
syn keyword   herculesStatement   inlib layout_path outlib output_format
syn keyword   herculesStatement   output_layout_path schematic schematic_format
syn keyword   herculesStatement   scheme_file output_block else
syn keyword   herculesStatement   and or not xor andoverlap inside outside by to
syn keyword   herculesStatement   with connected connected_all texted_with texted
syn keyword   herculesStatement   by_property cutting edge_touch enclosing inside
syn keyword   herculesStatement   inside_hole interact touching vertex

" Hercules comments
syn region    herculesComment		start="/\*" skip="/\*" end="\*/" contains=herculesTodo
syn match     herculesComment		"//.*" contains=herculesTodo

" Preprocessor directives
syn match     herculesPreProc "^#.*"
syn match     herculesPreProc "^@.*"
syn match     herculesPreProc "macros"

" Hercules COMMENT option
syn match     herculesCmdCmnt "comment.*=.*"

" Spacings, Resolutions, Ranges, Ratios, etc.
syn match     herculesNumber	      "-\=\<[0-9]\+L\=\>\|0[xX][0-9]\+\>"

" Parenthesis sanity checker
syn region    herculesZone       matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesCurlyError
syn region    herculesZone       matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesParenError
syn region    herculesZone       matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,herculesError,herculesCurlyError,herculesParenError
syn match     herculesError      "[)\]}]"
syn match     herculesBraceError "[)}]"  contained
syn match     herculesCurlyError "[)\]]" contained
syn match     herculesParenError "[\]}]" contained

" Hercules output format
"syn match  herculesOutput "([0-9].*)"
"syn match  herculesOutput "([0-9].*\;.*)"
syn match     herculesOutput "perm\s*=.*(.*)"
syn match     herculesOutput "temp\s*=\s*"
syn match     herculesOutput "error\s*=\s*(.*)"

"Modify the following as needed.  The trade-off is performance versus functionality.
syn sync      lines=100

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link herculesStatement  Statement
hi def link herculesType       Type
hi def link herculesComment    Comment
hi def link herculesPreProc    PreProc
hi def link herculesTodo       Todo
hi def link herculesOutput     Include
hi def link herculesCmdCmnt    Identifier
hi def link herculesNumber     Number
hi def link herculesBraceError herculesError
hi def link herculesCurlyError herculesError
hi def link herculesParenError herculesError
hi def link herculesError      Error


let b:current_syntax = "hercules"

" vim: ts=8
PK�j�Zֲ��&�&vim80/syntax/cobol.vimnu�[���" Vim syntax file
" Language:     COBOL
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
"     (formerly Davyd Ondrejko <vondraco@columbus.rr.com>)
"     (formerly Sitaram Chamarty <sitaram@diac.com> and
"               James Mitchell <james_mitchell@acm.org>)
" Last Change:  2015 Feb 13

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" MOST important - else most of the keywords wont work!
setlocal isk=@,48-57,-

syn case ignore

syn cluster cobolStart      contains=cobolAreaA,cobolAreaB,cobolComment,cobolCompiler
syn cluster cobolAreaA      contains=cobolParagraph,cobolSection,cobolDivision
"syn cluster cobolAreaB      contains=
syn cluster cobolAreaAB     contains=cobolLine
syn cluster cobolLine       contains=cobolReserved
syn match   cobolMarker     "^\%( \{,5\}[^ ]\)\@=.\{,6}" nextgroup=@cobolStart
syn match   cobolSpace      "^ \{6\}"  nextgroup=@cobolStart
syn match   cobolAreaA      " \{1,4\}"  contained nextgroup=@cobolAreaA,@cobolAreaAB
syn match   cobolAreaB      " \{5,\}\|- *" contained nextgroup=@cobolAreaB,@cobolAreaAB
syn match   cobolComment    "[/*C].*$" contained
syn match   cobolCompiler   "$.*$"     contained
syn match   cobolLine       ".*$"      contained contains=cobolReserved,@cobolLine

syn match   cobolDivision       "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION\."he=e-1 contained contains=cobolDivisionName
syn keyword cobolDivisionName   contained IDENTIFICATION ENVIRONMENT DATA PROCEDURE
syn match   cobolSection        "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+SECTION\."he=e-1  contained contains=cobolSectionName
syn keyword cobolSectionName    contained CONFIGURATION INPUT-OUTPUT FILE WORKING-STORAGE LOCAL-STORAGE LINKAGE
syn match   cobolParagraph      "\a[A-Z0-9-]*[A-Z0-9]\.\|\d[A-Z0-9-]*[A-Z]\."he=e-1             contained contains=cobolParagraphName
syn keyword cobolParagraphName  contained PROGRAM-ID SOURCE-COMPUTER OBJECT-COMPUTER SPECIAL-NAMES FILE-CONTROL I-O-CONTROL


"syn match cobolKeys "^\a\{1,6\}" contains=cobolReserved
syn keyword cobolReserved contained ACCEPT ACCESS ADD ADDRESS ADVANCING AFTER ALPHABET ALPHABETIC
syn keyword cobolReserved contained ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALS
syn keyword cobolReserved contained ALTERNATE AND ANY ARE AREA AREAS ASCENDING ASSIGN AT AUTHOR BEFORE BINARY
syn keyword cobolReserved contained BLANK BLOCK BOTTOM BY CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS
syn keyword cobolReserved contained CLOCK-UNITS CLOSE COBOL CODE CODE-SET COLLATING COLUMN COMMA COMMON
syn keyword cobolReserved contained COMMUNICATIONS COMPUTATIONAL COMPUTE CONTENT CONTINUE
syn keyword cobolReserved contained CONTROL CONVERTING CORR CORRESPONDING COUNT CURRENCY DATE DATE-COMPILED
syn keyword cobolReserved contained DATE-WRITTEN DAY DAY-OF-WEEK DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE
syn keyword cobolReserved contained DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT
syn keyword cobolReserved contained DELARATIVES DELETE DELIMITED DELIMITER DEPENDING DESCENDING DESTINATION
syn keyword cobolReserved contained DETAIL DISABLE DISPLAY DIVIDE DIVISION DOWN DUPLICATES DYNAMIC EGI ELSE EMI
syn keyword cobolReserved contained ENABLE END-ADD END-COMPUTE END-DELETE END-DIVIDE END-EVALUATE END-IF
syn keyword cobolReserved contained END-MULTIPLY END-OF-PAGE END-READ END-RECEIVE END-RETURN
syn keyword cobolReserved contained END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING
syn keyword cobolReserved contained END-WRITE EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT
syn keyword cobolReserved contained EXTEND EXTERNAL FALSE FD FILLER FINAL FIRST FOOTING FOR FROM
syn keyword cobolReserved contained GENERATE GIVING GLOBAL GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES I-O
syn keyword cobolReserved contained IN INDEX INDEXED INDICATE INITIAL INITIALIZE
syn keyword cobolReserved contained INITIATE INPUT INSPECT INSTALLATION INTO IS JUST
syn keyword cobolReserved contained JUSTIFIED KEY LABEL LAST LEADING LEFT LENGTH LOCK MEMORY
syn keyword cobolReserved contained MERGE MESSAGE MODE MODULES MOVE MULTIPLE MULTIPLY NATIVE NEGATIVE NEXT NO NOT
syn keyword cobolReserved contained NUMBER NUMERIC NUMERIC-EDITED OCCURS OF OFF OMITTED ON OPEN
syn keyword cobolReserved contained OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW PACKED-DECIMAL PADDING
syn keyword cobolReserved contained PAGE PAGE-COUNTER PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE
syn keyword cobolReserved contained PRINTING PROCEDURES PROCEDD PROGRAM PURGE QUEUE QUOTES
syn keyword cobolReserved contained RANDOM RD READ RECEIVE RECORD RECORDS REDEFINES REEL REFERENCE REFERENCES
syn keyword cobolReserved contained RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPLACING REPORT REPORTING
syn keyword cobolReserved contained REPORTS RERUN RESERVE RESET RETURN RETURNING REVERSED REWIND REWRITE RF RH
syn keyword cobolReserved contained RIGHT ROUNDED RUN SAME SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMITED
syn keyword cobolReserved contained SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SIGN SIZE SORT
syn keyword cobolReserved contained SORT-MERGE SOURCE STANDARD
syn keyword cobolReserved contained STANDARD-1 STANDARD-2 START STATUS STOP STRING SUB-QUEUE-1 SUB-QUEUE-2
syn keyword cobolReserved contained SUB-QUEUE-3 SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED TABLE TALLYING
syn keyword cobolReserved contained TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TO TOP
syn keyword cobolReserved contained TRAILING TRUE TYPE UNIT UNSTRING UNTIL UP UPON USAGE USE USING VALUE VALUES
syn keyword cobolReserved contained VARYING WHEN WITH WORDS WRITE
syn match   cobolReserved contained "\<CONTAINS\>"
syn match   cobolReserved contained "\<\(IF\|INVALID\|END\|EOP\)\>"
syn match   cobolReserved contained "\<ALL\>"

syn cluster cobolLine     add=cobolConstant,cobolNumber,cobolPic
syn keyword cobolConstant SPACE SPACES NULL ZERO ZEROES ZEROS LOW-VALUE LOW-VALUES

syn match   cobolNumber       "\<-\=\d*\.\=\d\+\>" contained
syn match   cobolPic		"\<S*9\+\>" contained
syn match   cobolPic		"\<$*\.\=9\+\>" contained
syn match   cobolPic		"\<Z*\.\=9\+\>" contained
syn match   cobolPic		"\<V9\+\>" contained
syn match   cobolPic		"\<9\+V\>" contained
syn match   cobolPic		"\<-\+[Z9]\+\>" contained
syn match   cobolTodo		"todo" contained containedin=cobolComment

" For MicroFocus or other inline comments, include this line.
" syn region  cobolComment      start="*>" end="$" contains=cobolTodo,cobolMarker

syn match   cobolBadLine      "[^ D\*$/-].*" contained
" If comment mark somehow gets into column past Column 7.
syn match   cobolBadLine      "\s\+\*.*" contained
syn cluster cobolStart        add=cobolBadLine


syn keyword cobolGoTo		GO GOTO
syn keyword cobolCopy		COPY

" cobolBAD: things that are BAD NEWS!
syn keyword cobolBAD		ALTER ENTER RENAMES

syn cluster cobolLine       add=cobolGoTo,cobolCopy,cobolBAD,cobolWatch,cobolEXECs

" cobolWatch: things that are important when trying to understand a program
syn keyword cobolWatch		OCCURS DEPENDING VARYING BINARY COMP REDEFINES
syn keyword cobolWatch		REPLACING RUN
syn match   cobolWatch		"COMP-[123456XN]"

syn keyword cobolEXECs		EXEC END-EXEC


syn cluster cobolAreaA      add=cobolDeclA
syn cluster cobolAreaAB     add=cobolDecl
syn match   cobolDeclA      "\(0\=1\|77\|78\) " contained nextgroup=cobolLine
syn match   cobolDecl		"[1-4]\d " contained nextgroup=cobolLine
syn match   cobolDecl		"0\=[2-9] " contained nextgroup=cobolLine
syn match   cobolDecl		"66 " contained nextgroup=cobolLine

syn match   cobolWatch		"88 " contained nextgroup=cobolLine

"syn match   cobolBadID		"\k\+-\($\|[^-A-Z0-9]\)" contained

syn cluster cobolLine       add=cobolCALLs,cobolString,cobolCondFlow
syn keyword cobolCALLs		CALL END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE
syn match   cobolCALLs		"EXIT \+PROGRAM"
syn match   cobolExtras       /\<VALUE \+\d\+\./hs=s+6,he=e-1

syn match   cobolString       /"[^"]*\("\|$\)/
syn match   cobolString       /'[^']*\('\|$\)/

"syn region  cobolLine        start="^.\{6}[ D-]" end="$" contains=ALL
syn match   cobolIndicator   "\%7c[D-]" contained

if exists("cobol_legacy_code")
  syn region  cobolCondFlow     contains=ALLBUT,cobolLine,cobolBadLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
endif

" many legacy sources have junk in columns 1-6: must be before others
" Stuff after column 72 is in error - must be after all other "match" entries
if exists("cobol_legacy_code")
    syn match   cobolBadLine      "\%73c.*" containedin=ALLBUT,cobolComment
else
    syn match   cobolBadLine      "\%73c.*" containedin=ALL
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cobolBAD      Error
hi def link cobolBadID    Error
hi def link cobolBadLine  Error
if exists("g:cobol_legacy_code")
    hi def link cobolMarker   Comment
else
    hi def link cobolMarker   Error
endif
hi def link cobolCALLs    Function
hi def link cobolComment  Comment
hi def link cobolKeys     Comment
hi def link cobolAreaB    Special
hi def link cobolCompiler PreProc
hi def link cobolCondFlow Special
hi def link cobolCopy     PreProc
hi def link cobolDeclA    cobolDecl
hi def link cobolDecl     Type
hi def link cobolExtras   Special
hi def link cobolGoTo     Special
hi def link cobolConstant Constant
hi def link cobolNumber   Constant
hi def link cobolPic      Constant
hi def link cobolReserved Statement
hi def link cobolDivision Label
hi def link cobolSection  Label
hi def link cobolParagraph Label
hi def link cobolDivisionName  Keyword
hi def link cobolSectionName   Keyword
hi def link cobolParagraphName Keyword
hi def link cobolString   Constant
hi def link cobolTodo     Todo
hi def link cobolWatch    Special
hi def link cobolIndicator Special


let b:current_syntax = "cobol"

" vim: ts=6 nowrap
PK�j�Z%���EEvim80/syntax/fan.vimnu�[���" Vim syntax file
" Language:     Fantom
" Maintainer:   Kamil Toman <kamil.toman@gmail.com>
" Last Change:  2010 May 27
" Based on Java syntax file by Claudio Fleiner <claudio@fleiner.com>

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" keyword definitions
syn keyword fanExternal	        using native
syn keyword fanError		goto void serializable volatile
syn keyword fanConditional	if else switch
syn keyword fanRepeat		do while for foreach each
syn keyword fanBoolean		true false
syn keyword fanConstant 	null
syn keyword fanTypedef		this super
syn keyword fanOperator	        new is isnot as
syn keyword fanLongOperator     plus minus mult div mod get set slice lshift rshift and or xor inverse negate increment decrement equals compare
syn keyword fanType		Void Bool Int Float Decimal Str Duration Uri Type Range List Map Obj
syn keyword fanStatement	return
syn keyword fanStorageClass	static const final
syn keyword fanSlot      	virtual override once
syn keyword fanField      	readonly
syn keyword fanExceptions	throw try catch finally
syn keyword fanAssert		assert
syn keyword fanTypedef		class enum mixin
syn match   fanFacet            "@[_a-zA-Z][_a-zA-Z0-9_]*\>"
syn keyword fanBranch		break continue
syn keyword fanScopeDecl	public internal protected private abstract

if exists("fan_space_errors")
  if !exists("fan_no_trail_space_error")
    syn match   fanSpaceError  "\s\+$"
  endif
  if !exists("fan_no_tab_space_error")
    syn match   fanSpaceError  " \+\t"me=e-1
  endif
endif

syn region  fanLabelRegion     transparent matchgroup=fanLabel start="\<case\>" matchgroup=NONE end=":" contains=fanNumber,fanCharacter
syn keyword fanLabel		default
syn keyword fanLabel		case

" The following cluster contains all fan groups except the contained ones
syn cluster fanTop add=fanExternal,fanError,fanConditional,fanRepeat,fanBoolean,fanConstant,fanTypedef,fanOperator,fanLongOperator,fanType,fanType,fanStatement,fanStorageClass,fanSlot,fanField,fanExceptions,fanAssert,fanClassDecl,fanTypedef,fanFacet,fanBranch,fanScopeDecl,fanLabelRegion,fanLabel

" Comments
syn keyword fanTodo		 contained TODO FIXME XXX
syn region  fanComment		 start="/\*"  end="\*/" contains=@fanCommentSpecial,fanTodo,fanComment,@Spell
syn match   fanCommentStar      contained "^\s*\*[^/]"me=e-1
syn match   fanCommentStar      contained "^\s*\*$"
syn match   fanLineComment      "//.*" contains=@fanCommentSpecial2,fanTodo,@Spell
syn match   fanDocComment       "\*\*.*" contains=@fanCommentSpecial2,fanTodo,@Spell
hi def link fanCommentString fanString
hi def link fanComment2String fanString
hi def link fanCommentCharacter fanCharacter

syn cluster fanTop add=fanComment,fanLineComment,fanDocComment

" match the special comment /**/
syn match   fanComment		 "/\*\*/"

" Strings and constants
syn match   fanSpecialError    	 	contained "\\."
syn match   fanSpecialCharError 	contained "[^']"
syn match   fanSpecialChar      	contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)"
syn match   fanStringSubst      	contained "\$[A-Za-z][A-Za-z_.]*"
syn match   fanStringSubst      	contained "\${[^}]*}"
syn region  fanString		start=+"+ end=+"+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
syn region  fanTripleString	start=+"""+ end=+"""+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
syn region  fanDSL		start=+<|+ end=+|>+ 
syn match   fanUri		 "`[^`]*`"
syn match   fanCharacter	 "'[^']*'" contains=fanSpecialChar,fanSpecialCharError
syn match   fanCharacter	 "'\\''" contains=fanSpecialChar
syn match   fanCharacter	 "'[^\\]'"
syn match   fanNumber		 "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
syn match   fanNumber		 "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
syn match   fanNumber		 "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match   fanNumber		 "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"

syn cluster fanTop add=fanString,fanCharacter,fanNumber,fanSpecial,fanStringError

" The default highlighting.
hi def link fanBranch			Conditional
hi def link fanLabel			Label
hi def link fanUserLabel		Label
hi def link fanConditional		Conditional
hi def link fanRepeat			Repeat
hi def link fanExceptions		Exception
hi def link fanAssert			Statement
hi def link fanStorageClass		StorageClass
hi def link fanSlot        		StorageClass
hi def link fanField        		StorageClass
hi def link fanScopeDecl		StorageClass
hi def link fanBoolean		Boolean
hi def link fanSpecial		Special
hi def link fanSpecialError		Error
hi def link fanSpecialCharError	Error
hi def link fanTripleString		String
hi def link fanString			String
hi def link fanDSL			String
hi def link fanCharacter		String
hi def link fanStringSubst		Identifier
hi def link fanUri			SpecialChar
hi def link fanSpecialChar		SpecialChar
hi def link fanNumber			Number
hi def link fanError			Error
hi def link fanStringError		Error
hi def link fanStatement		Statement
hi def link fanOperator		Operator
hi def link fanLongOperator		Operator
hi def link fanComment		Comment
hi def link fanDocComment		Comment
hi def link fanLineComment		Comment
hi def link fanConstant		Constant
hi def link fanTypedef		Typedef
hi def link fanTodo			Todo
hi def link fanFacet                  PreProc

hi def link fanCommentTitle		SpecialComment
hi def link fanCommentStar		SpecialComment
hi def link fanType			Identifier
hi def link fanExternal		Include

hi def link fanSpaceError		Error

let b:current_syntax = "fan"

" vim: ts=8
PK�j�Z�I�&�@�@vim80/syntax/rust.vimnu�[���" Vim syntax file
" Language:     Rust
" Maintainer:   Patrick Walton <pcwalton@mozilla.com>
" Maintainer:   Ben Blum <bblum@cs.cmu.edu>
" Maintainer:   Chris Morgan <me@chrismorgan.info>
" Last Change:  Feb 24, 2016
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim

if version < 600
	syntax clear
elseif exists("b:current_syntax")
	finish
endif

" Syntax definitions {{{1
" Basic keywords {{{2
syn keyword   rustConditional match if else
syn keyword   rustRepeat for loop while
syn keyword   rustTypedef type nextgroup=rustIdentifier skipwhite skipempty
syn keyword   rustStructure struct enum nextgroup=rustIdentifier skipwhite skipempty
syn keyword   rustUnion union nextgroup=rustIdentifier skipwhite skipempty contained
syn match rustUnionContextual /\<union\_s\+\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*/ transparent contains=rustUnion
syn keyword   rustOperator    as

syn match     rustAssert      "\<assert\(\w\)*!" contained
syn match     rustPanic       "\<panic\(\w\)*!" contained
syn keyword   rustKeyword     break
syn keyword   rustKeyword     box nextgroup=rustBoxPlacement skipwhite skipempty
syn keyword   rustKeyword     continue
syn keyword   rustKeyword     extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
syn keyword   rustKeyword     fn nextgroup=rustFuncName skipwhite skipempty
syn keyword   rustKeyword     in impl let
syn keyword   rustKeyword     pub nextgroup=rustPubScope skipwhite skipempty
syn keyword   rustKeyword     return
syn keyword   rustSuper       super
syn keyword   rustKeyword     unsafe where
syn keyword   rustKeyword     use nextgroup=rustModPath skipwhite skipempty
" FIXME: Scoped impl's name is also fallen in this category
syn keyword   rustKeyword     mod trait nextgroup=rustIdentifier skipwhite skipempty
syn keyword   rustStorage     move mut ref static const
syn match rustDefault /\<default\ze\_s\+\(impl\|fn\|type\|const\)\>/

syn keyword   rustInvalidBareKeyword crate

syn keyword rustPubScopeCrate crate contained
syn match rustPubScopeDelim /[()]/ contained
syn match rustPubScope /([^()]*)/ contained contains=rustPubScopeDelim,rustPubScopeCrate,rustSuper,rustModPath,rustModPathSep,rustSelf transparent

syn keyword   rustExternCrate crate contained nextgroup=rustIdentifier,rustExternCrateString skipwhite skipempty
" This is to get the `bar` part of `extern crate "foo" as bar;` highlighting.
syn match   rustExternCrateString /".*"\_s*as/ contained nextgroup=rustIdentifier skipwhite transparent skipempty contains=rustString,rustOperator
syn keyword   rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite skipempty

syn match     rustIdentifier  contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
syn match     rustFuncName    "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained

syn region    rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained
" Ideally we'd have syntax rules set up to match arbitrary expressions. Since
" we don't, we'll just define temporary contained rules to handle balancing
" delimiters.
syn region    rustBoxPlacementBalance start="(" end=")" containedin=rustBoxPlacement transparent
syn region    rustBoxPlacementBalance start="\[" end="\]" containedin=rustBoxPlacement transparent
" {} are handled by rustFoldBraces

syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end=")" contains=TOP nextgroup=rustMacroRepeatCount
syn match rustMacroRepeatCount ".\?[*+]" contained
syn match rustMacroVariable "$\w\+"

" Reserved (but not yet used) keywords {{{2
syn keyword   rustReservedKeyword alignof become do offsetof priv pure sizeof typeof unsized yield abstract virtual final override macro

" Built-in types {{{2
syn keyword   rustType        isize usize char bool u8 u16 u32 u64 u128 f32
syn keyword   rustType        f64 i8 i16 i32 i64 i128 str Self

" Things from the libstd v1 prelude (src/libstd/prelude/v1.rs) {{{2
" This section is just straight transformation of the contents of the prelude,
" to make it easy to update.

" Reexported core operators {{{3
syn keyword   rustTrait       Copy Send Sized Sync
syn keyword   rustTrait       Drop Fn FnMut FnOnce

" Reexported functions {{{3
" There’s no point in highlighting these; when one writes drop( or drop::< it
" gets the same highlighting anyway, and if someone writes `let drop = …;` we
" don’t really want *that* drop to be highlighted.
"syn keyword rustFunction drop

" Reexported types and traits {{{3
syn keyword rustTrait Box
syn keyword rustTrait ToOwned
syn keyword rustTrait Clone
syn keyword rustTrait PartialEq PartialOrd Eq Ord
syn keyword rustTrait AsRef AsMut Into From
syn keyword rustTrait Default
syn keyword rustTrait Iterator Extend IntoIterator
syn keyword rustTrait DoubleEndedIterator ExactSizeIterator
syn keyword rustEnum Option
syn keyword rustEnumVariant Some None
syn keyword rustEnum Result
syn keyword rustEnumVariant Ok Err
syn keyword rustTrait SliceConcatExt
syn keyword rustTrait String ToString
syn keyword rustTrait Vec

" Other syntax {{{2
syn keyword   rustSelf        self
syn keyword   rustBoolean     true false

" If foo::bar changes to foo.bar, change this ("::" to "\.").
" If foo::bar changes to Foo::bar, change this (first "\w" to "\u").
syn match     rustModPath     "\w\(\w\)*::[^<]"he=e-3,me=e-3
syn match     rustModPathSep  "::"

syn match     rustFuncCall    "\w\(\w\)*("he=e-1,me=e-1
syn match     rustFuncCall    "\w\(\w\)*::<"he=e-3,me=e-3 " foo::<T>();

" This is merely a convention; note also the use of [A-Z], restricting it to
" latin identifiers rather than the full Unicode uppercase. I have not used
" [:upper:] as it depends upon 'noignorecase'
"syn match     rustCapsIdent    display "[A-Z]\w\(\w\)*"

syn match     rustOperator     display "\%(+\|-\|/\|*\|=\|\^\|&\||\|!\|>\|<\|%\)=\?"
" This one isn't *quite* right, as we could have binary-& with a reference
syn match     rustSigil        display /&\s\+[&~@*][^)= \t\r\n]/he=e-1,me=e-1
syn match     rustSigil        display /[&~@*][^)= \t\r\n]/he=e-1,me=e-1
" This isn't actually correct; a closure with no arguments can be `|| { }`.
" Last, because the & in && isn't a sigil
syn match     rustOperator     display "&&\|||"
" This is rustArrowCharacter rather than rustArrow for the sake of matchparen,
" so it skips the ->; see http://stackoverflow.com/a/30309949 for details.
syn match     rustArrowCharacter display "->"
syn match     rustQuestionMark display "?\([a-zA-Z]\+\)\@!"

syn match     rustMacro       '\w\(\w\)*!' contains=rustAssert,rustPanic
syn match     rustMacro       '#\w\(\w\)*' contains=rustAssert,rustPanic

syn match     rustEscapeError   display contained /\\./
syn match     rustEscape        display contained /\\\([nrt0\\'"]\|x\x\{2}\)/
syn match     rustEscapeUnicode display contained /\\u{\x\{1,6}}/
syn match     rustStringContinuation display contained /\\\n\s*/
syn region    rustString      start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation
syn region    rustString      start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell
syn region    rustString      start='b\?r\z(#*\)"' end='"\z1' contains=@Spell

syn region    rustAttribute   start="#!\?\[" end="\]" contains=rustString,rustDerive,rustCommentLine,rustCommentBlock,rustCommentLineDocError,rustCommentBlockDocError
syn region    rustDerive      start="derive(" end=")" contained contains=rustDeriveTrait
" This list comes from src/libsyntax/ext/deriving/mod.rs
" Some are deprecated (Encodable, Decodable) or to be removed after a new snapshot (Show).
syn keyword   rustDeriveTrait contained Clone Hash RustcEncodable RustcDecodable Encodable Decodable PartialEq Eq PartialOrd Ord Rand Show Debug Default FromPrimitive Send Sync Copy

" Number literals
syn match     rustDecNumber   display "\<[0-9][0-9_]*\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
syn match     rustHexNumber   display "\<0x[a-fA-F0-9_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
syn match     rustOctNumber   display "\<0o[0-7_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
syn match     rustBinNumber   display "\<0b[01_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="

" Special case for numbers of the form "1." which are float literals, unless followed by
" an identifier, which makes them integer literals with a method call or field access,
" or by another ".", which makes them integer literals followed by the ".." token.
" (This must go first so the others take precedence.)
syn match     rustFloat       display "\<[0-9][0-9_]*\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\|\.\)\@!"
" To mark a number as a normal float, it must have at least one of the three things integral values don't have:
" a decimal point and more numbers; an exponent; and a type suffix.
syn match     rustFloat       display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)\="
syn match     rustFloat       display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\(f32\|f64\)\="
syn match     rustFloat       display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)"

" For the benefit of delimitMate
syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u{\x\{1,6}}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
syn region rustGenericRegion display start=/<\%('\|[^[cntrl:][:space:][:punct:]]\)\@=')\S\@=/ end=/>/ contains=rustGenericLifetimeCandidate
syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime

"rustLifetime must appear before rustCharacter, or chars will get the lifetime highlighting
syn match     rustLifetime    display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*"
syn match     rustLabel       display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*:"
syn match   rustCharacterInvalid   display contained /b\?'\zs[\n\r\t']\ze'/
" The groups negated here add up to 0-255 but nothing else (they do not seem to go beyond ASCII).
syn match   rustCharacterInvalidUnicode   display contained /b'\zs[^[:cntrl:][:graph:][:alnum:][:space:]]\ze'/
syn match   rustCharacter   /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=rustEscape,rustEscapeError,rustCharacterInvalid,rustCharacterInvalidUnicode
syn match   rustCharacter   /'\([^\\]\|\\\(.\|x\x\{2}\|u{\x\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid

syn match rustShebang /\%^#![^[].*/
syn region rustCommentLine                                                  start="//"                      end="$"   contains=rustTodo,@Spell
syn region rustCommentLineDoc                                               start="//\%(//\@!\|!\)"         end="$"   contains=rustTodo,@Spell
syn region rustCommentLineDocError                                          start="//\%(//\@!\|!\)"         end="$"   contains=rustTodo,@Spell contained
syn region rustCommentBlock             matchgroup=rustCommentBlock         start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell
syn region rustCommentBlockDoc          matchgroup=rustCommentBlockDoc      start="/\*\%(!\|\*[*/]\@!\)"    end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell
syn region rustCommentBlockDocError     matchgroup=rustCommentBlockDocError start="/\*\%(!\|\*[*/]\@!\)"    end="\*/" contains=rustTodo,rustCommentBlockDocNestError,@Spell contained
syn region rustCommentBlockNest         matchgroup=rustCommentBlock         start="/\*"                     end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell contained transparent
syn region rustCommentBlockDocNest      matchgroup=rustCommentBlockDoc      start="/\*"                     end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell contained transparent
syn region rustCommentBlockDocNestError matchgroup=rustCommentBlockDocError start="/\*"                     end="\*/" contains=rustTodo,rustCommentBlockDocNestError,@Spell contained transparent
" FIXME: this is a really ugly and not fully correct implementation. Most
" importantly, a case like ``/* */*`` should have the final ``*`` not being in
" a comment, but in practice at present it leaves comments open two levels
" deep. But as long as you stay away from that particular case, I *believe*
" the highlighting is correct. Due to the way Vim's syntax engine works
" (greedy for start matches, unlike Rust's tokeniser which is searching for
" the earliest-starting match, start or end), I believe this cannot be solved.
" Oh you who would fix it, don't bother with things like duplicating the Block
" rules and putting ``\*\@<!`` at the start of them; it makes it worse, as
" then you must deal with cases like ``/*/**/*/``. And don't try making it
" worse with ``\%(/\@<!\*\)\@<!``, either...

syn keyword rustTodo contained TODO FIXME XXX NB NOTE

" Folding rules {{{2
" Trivial folding rules to begin with.
" FIXME: use the AST to make really good folding
syn region rustFoldBraces start="{" end="}" transparent fold

" Default highlighting {{{1
hi def link rustDecNumber       rustNumber
hi def link rustHexNumber       rustNumber
hi def link rustOctNumber       rustNumber
hi def link rustBinNumber       rustNumber
hi def link rustIdentifierPrime rustIdentifier
hi def link rustTrait           rustType
hi def link rustDeriveTrait     rustTrait

hi def link rustMacroRepeatCount   rustMacroRepeatDelimiters
hi def link rustMacroRepeatDelimiters   Macro
hi def link rustMacroVariable Define
hi def link rustSigil         StorageClass
hi def link rustEscape        Special
hi def link rustEscapeUnicode rustEscape
hi def link rustEscapeError   Error
hi def link rustStringContinuation Special
hi def link rustString        String
hi def link rustCharacterInvalid Error
hi def link rustCharacterInvalidUnicode rustCharacterInvalid
hi def link rustCharacter     Character
hi def link rustNumber        Number
hi def link rustBoolean       Boolean
hi def link rustEnum          rustType
hi def link rustEnumVariant   rustConstant
hi def link rustConstant      Constant
hi def link rustSelf          Constant
hi def link rustFloat         Float
hi def link rustArrowCharacter rustOperator
hi def link rustOperator      Operator
hi def link rustKeyword       Keyword
hi def link rustTypedef       Keyword " More precise is Typedef, but it doesn't feel right for Rust
hi def link rustStructure     Keyword " More precise is Structure
hi def link rustUnion         rustStructure
hi def link rustPubScopeDelim Delimiter
hi def link rustPubScopeCrate rustKeyword
hi def link rustSuper         rustKeyword
hi def link rustReservedKeyword Error
hi def link rustRepeat        Conditional
hi def link rustConditional   Conditional
hi def link rustIdentifier    Identifier
hi def link rustCapsIdent     rustIdentifier
hi def link rustModPath       Include
hi def link rustModPathSep    Delimiter
hi def link rustFunction      Function
hi def link rustFuncName      Function
hi def link rustFuncCall      Function
hi def link rustShebang       Comment
hi def link rustCommentLine   Comment
hi def link rustCommentLineDoc SpecialComment
hi def link rustCommentLineDocError Error
hi def link rustCommentBlock  rustCommentLine
hi def link rustCommentBlockDoc rustCommentLineDoc
hi def link rustCommentBlockDocError Error
hi def link rustAssert        PreCondit
hi def link rustPanic         PreCondit
hi def link rustMacro         Macro
hi def link rustType          Type
hi def link rustTodo          Todo
hi def link rustAttribute     PreProc
hi def link rustDerive        PreProc
hi def link rustDefault       StorageClass
hi def link rustStorage       StorageClass
hi def link rustObsoleteStorage Error
hi def link rustLifetime      Special
hi def link rustLabel         Label
hi def link rustInvalidBareKeyword Error
hi def link rustExternCrate   rustKeyword
hi def link rustObsoleteExternMod Error
hi def link rustBoxPlacementParens Delimiter
hi def link rustQuestionMark  Special

" Other Suggestions:
" hi rustAttribute ctermfg=cyan
" hi rustDerive ctermfg=cyan
" hi rustAssert ctermfg=yellow
" hi rustPanic ctermfg=red
" hi rustMacro ctermfg=magenta

syn sync minlines=200
syn sync maxlines=500

let b:current_syntax = "rust"
PK�j�Z����l
l
vim80/syntax/dracula.vimnu�[���" Vim syntax file
" Language:	Dracula
" Maintainer:	Scott Bordelon <slb@artisan.com>
" Last change:  Wed Apr 25 18:50:01 PDT 2001
" Extensions:   drac.*,*.drac,*.drc,*.lvs,*.lpe
" Comment:      Dracula is an industry-standard language created by CADENCE (a
"		company specializing in Electronics Design Automation), for
"		the purposes of Design Rule Checking, Layout vs. Schematic
"		verification, and Layout Parameter Extraction.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Ignore case
syn case ignore

" A bunch of useful Dracula keywords

"syn match   draculaIdentifier

syn keyword draculaStatement   indisk primary outdisk printfile system
syn keyword draculaStatement   mode scale resolution listerror keepdata
syn keyword draculaStatement   datatype by lt gt output label range touch
syn keyword draculaStatement   inside outside within overlap outlib
syn keyword draculaStatement   schematic model unit parset
syn match   draculaStatement   "flag-\(non45\|acuteangle\|offgrid\)"
syn match   draculaStatement   "text-pri-only"
syn match   draculaStatement   "[=&]"
syn match   draculaStatement   "\[[^,]*\]"
syn match   draculastatement   "^ *\(sel\|width\|ext\|enc\|area\|shrink\|grow\|length\)"
syn match   draculastatement   "^ *\(or\|not\|and\|select\|size\|connect\|sconnect\|int\)"
syn match   draculastatement   "^ *\(softchk\|stamp\|element\|parasitic cap\|attribute cap\)"
syn match   draculastatement   "^ *\(flagnon45\|lextract\|equation\|lpeselect\|lpechk\|attach\)"
syn match   draculaStatement   "\(temporary\|connect\)-layer"
syn match   draculaStatement   "program-dir"
syn match   draculaStatement   "status-command"
syn match   draculaStatement   "batch-queue"
syn match   draculaStatement   "cnames-csen"
syn match   draculaStatement   "filter-lay-opt"
syn match   draculaStatement   "filter-sch-opt"
syn match   draculaStatement   "power-node"
syn match   draculaStatement   "ground-node"
syn match   draculaStatement   "subckt-name"

syn match   draculaType		"\*description"
syn match   draculaType		"\*input-layer"
syn match   draculaType		"\*operation"
syn match   draculaType		"\*end"

syn match   draculaComment ";.*"

syn match   draculaPreProc "^#.*"

"Modify the following as needed.  The trade-off is performance versus
"functionality.
syn sync lines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link draculaIdentifier Identifier
hi def link draculaStatement  Statement
hi def link draculaType       Type
hi def link draculaComment    Comment
hi def link draculaPreProc    PreProc


let b:current_syntax = "dracula"

" vim: ts=8
PK�j�Z!���vim80/syntax/bc.vimnu�[���" Vim syntax file
" Language:	bc - An arbitrary precision calculator language
" Maintainer:	Vladimir Scholtz <vlado@gjh.sk>
" Last change:	2012 Jun 01
" 		(Dominique Pelle added @Spell)
" Available on:	www.gjh.sk/~vlado/bc.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Keywords
syn keyword bcKeyword if else while for break continue return limits halt quit
syn keyword bcKeyword define
syn keyword bcKeyword length read sqrt print

" Variable
syn keyword bcType auto

" Constant
syn keyword bcConstant scale ibase obase last
syn keyword bcConstant BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX BC_STRING_MAX
syn keyword bcConstant BC_ENV_ARGS BC_LINE_LENGTH

" Any other stuff
syn match bcIdentifier		"[a-z_][a-z0-9_]*"

" String
 syn match bcString		"\"[^"]*\"" contains=@Spell

" Number
syn match bcNumber		"[0-9]\+"

" Comment
syn match bcComment		"\#.*" contains=@Spell
syn region bcComment		start="/\*" end="\*/" contains=@Spell

" Parent ()
syn cluster bcAll contains=bcList,bcIdentifier,bcNumber,bcKeyword,bcType,bcConstant,bcString,bcParentError
syn region bcList		matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@bcAll
syn region bcList		matchgroup=Delimiter start="\[" skip="|.\{-}|" matchgroup=Delimiter end="\]" contains=@bcAll
syn match bcParenError			"]"
syn match bcParenError			")"



syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link bcKeyword		Statement
hi def link bcType		Type
hi def link bcConstant		Constant
hi def link bcNumber		Number
hi def link bcComment		Comment
hi def link bcString		String
hi def link bcSpecialChar		SpecialChar
hi def link bcParenError		Error


let b:current_syntax = "bc"
" vim: ts=8
PK�j�Z�V�
�2�2vim80/syntax/sqr.vimnu�[���" Vim syntax file
"    Language: Structured Query Report Writer (SQR)
"  Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com)
"	  URL: http://www.ontko.com/sqr/#editor_config_files
"
" Modification History:
"     2002-Apr-12: Updated for SQR v6.x
"     2002-Jul-30: Added { and } to iskeyword definition
"     2003-Oct-15: Allow "." in variable names
"		   highlight entire open '... literal when it contains
"		      "''" inside it (e.g. "'I can''t say" is treated
"		      as one open string, not one terminated and one open)
"		   {} variables can occur inside of '...' literals
"
"  Thanks to the previous maintainer of this file, Jeff Lanzarotta:
"    http://lanzarotta.tripod.com/vim.html
"    jefflanzarotta at yahoo dot com

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=@,48-57,_,-,#,$,{,}

syn case ignore

" BEGIN GENERATED SECTION ============================================

" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04
" (based on the UltraEdit syntax file for SQR 6.1.4
" found at http://www.ontko.com/sqr/#editor_config_files )

syn keyword    sqrSection     begin-footing begin-heading begin-procedure
syn keyword    sqrSection     begin-program begin-report begin-setup
syn keyword    sqrSection     end-footing end-heading end-procedure
syn keyword    sqrSection     end-program end-report end-setup

syn keyword    sqrParagraph   alter-color-map alter-connection
syn keyword    sqrParagraph   alter-locale alter-printer alter-report
syn keyword    sqrParagraph   begin-document begin-execute begin-select
syn keyword    sqrParagraph   begin-sql declare-chart declare-image
syn keyword    sqrParagraph   declare-color-map declare-connection
syn keyword    sqrParagraph   declare-layout declare-printer
syn keyword    sqrParagraph   declare-report declare-procedure
syn keyword    sqrParagraph   declare-toc declare-variable end-declare
syn keyword    sqrParagraph   end-document end-select exit-select end-sql
syn keyword    sqrParagraph   load-lookup

syn keyword    sqrReserved    #current-column #current-date #current-line
syn keyword    sqrReserved    #end-file #page-count #return-status
syn keyword    sqrReserved    #sql-count #sql-status #sqr-max-columns
syn keyword    sqrReserved    #sqr-max-lines #sqr-pid #sqr-toc-level
syn keyword    sqrReserved    #sqr-toc-page $sqr-database {sqr-database}
syn keyword    sqrReserved    $sqr-dbcs {sqr-dbcs} $sqr-encoding
syn keyword    sqrReserved    {sqr-encoding} $sqr-encoding-console
syn keyword    sqrReserved    {sqr-encoding-console}
syn keyword    sqrReserved    $sqr-encoding-database
syn keyword    sqrReserved    {sqr-encoding-database}
syn keyword    sqrReserved    $sqr-encoding-file-input
syn keyword    sqrReserved    {sqr-encoding-file-input}
syn keyword    sqrReserved    $sqr-encoding-file-output
syn keyword    sqrReserved    {sqr-encoding-file-output}
syn keyword    sqrReserved    $sqr-encoding-report-input
syn keyword    sqrReserved    {sqr-encoding-report-input}
syn keyword    sqrReserved    $sqr-encoding-report-output
syn keyword    sqrReserved    {sqr-encoding-report-output}
syn keyword    sqrReserved    $sqr-encoding-source {sqr-encoding-source}
syn keyword    sqrReserved    $sql-error $sqr-hostname {sqr-hostname}
syn keyword    sqrReserved    $sqr-locale $sqr-platform {sqr-platform}
syn keyword    sqrReserved    $sqr-program $sqr-report $sqr-toc-text
syn keyword    sqrReserved    $sqr-ver $username

syn keyword    sqrPreProc     #define #else #end-if #endif #if #ifdef
syn keyword    sqrPreProc     #ifndef #include

syn keyword    sqrCommand     add array-add array-divide array-multiply
syn keyword    sqrCommand     array-subtract ask break call clear-array
syn keyword    sqrCommand     close columns commit concat connect
syn keyword    sqrCommand     create-array create-color-palette date-time
syn keyword    sqrCommand     display divide do dollar-symbol else encode
syn keyword    sqrCommand     end-evaluate end-if end-while evaluate
syn keyword    sqrCommand     execute extract find get get-color goto
syn keyword    sqrCommand     graphic if input last-page let lookup
syn keyword    sqrCommand     lowercase mbtosbs money-symbol move
syn keyword    sqrCommand     multiply new-page new-report next-column
syn keyword    sqrCommand     next-listing no-formfeed open page-number
syn keyword    sqrCommand     page-size position print print-bar-code
syn keyword    sqrCommand     print-chart print-direct print-image
syn keyword    sqrCommand     printer-deinit printer-init put read
syn keyword    sqrCommand     rollback security set-color set-delay-print
syn keyword    sqrCommand     set-generations set-levels set-members
syn keyword    sqrCommand     sbtombs show stop string subtract toc-entry
syn keyword    sqrCommand     unstring uppercase use use-column
syn keyword    sqrCommand     use-printer-type use-procedure use-report
syn keyword    sqrCommand     while write

syn keyword    sqrParam       3d-effects after after-bold after-page
syn keyword    sqrParam       after-report after-toc and as at-end before
syn keyword    sqrParam       background batch-mode beep before-bold
syn keyword    sqrParam       before-page before-report before-toc blink
syn keyword    sqrParam       bold border bottom-margin box break by
syn keyword    sqrParam       caption center char char-size char-width
syn keyword    sqrParam       chars-inch chart-size checksum cl
syn keyword    sqrParam       clear-line clear-screen color color-palette
syn keyword    sqrParam       cs color_ data-array
syn keyword    sqrParam       data-array-column-count
syn keyword    sqrParam       data-array-column-labels
syn keyword    sqrParam       data-array-row-count data-labels date
syn keyword    sqrParam       date-edit-mask date-seperator
syn keyword    sqrParam       day-of-week-case day-of-week-full
syn keyword    sqrParam       day-of-week-short decimal decimal-seperator
syn keyword    sqrParam       default-numeric delay distinct dot-leader
syn keyword    sqrParam       edit-option-ad edit-option-am
syn keyword    sqrParam       edit-option-bc edit-option-na
syn keyword    sqrParam       edit-option-pm encoding entry erase-page
syn keyword    sqrParam       extent field fill fixed fixed_nolf float
syn keyword    sqrParam       font font-style font-type footing
syn keyword    sqrParam       footing-size foreground for-append
syn keyword    sqrParam       for-reading for-reports for-tocs
syn keyword    sqrParam       for-writing format formfeed from goto-top
syn keyword    sqrParam       group having heading heading-size height
syn keyword    sqrParam       horz-line image-size in indentation
syn keyword    sqrParam       init-string input-date-edit-mask insert
syn keyword    sqrParam       integer into item-color item-size key
syn keyword    sqrParam       layout left-margin legend legend-placement
syn keyword    sqrParam       legend-presentation legend-title level
syn keyword    sqrParam       line-height line-size line-width lines-inch
syn keyword    sqrParam       local locale loops max-columns max-lines
syn keyword    sqrParam       maxlen money money-edit-mask money-sign
syn keyword    sqrParam       money-sign-location months-case months-full
syn keyword    sqrParam       months-short name need newline newpage
syn keyword    sqrParam       no-advance nolf noline noprompt normal not
syn keyword    sqrParam       nowait number number-edit-mask on-break
syn keyword    sqrParam       on-error or order orientation page-depth
syn keyword    sqrParam       paper-size pie-segment-explode
syn keyword    sqrParam       pie-segment-percent-display
syn keyword    sqrParam       pie-segment-quantity-display pitch
syn keyword    sqrParam       point-markers point-size printer
syn keyword    sqrParam       printer-type quiet record reset-string
syn keyword    sqrParam       return_value reverse right-margin rows save
syn keyword    sqrParam       select size skip skiplines sort source
syn keyword    sqrParam       sqr-database sqr-platform startup-file
syn keyword    sqrParam       status stop sub-title symbol-set system
syn keyword    sqrParam       table text thousand-seperator
syn keyword    sqrParam       time-seperator times title to toc
syn keyword    sqrParam       top-margin type underline update using
syn keyword    sqrParam       value vary vert-line wait warn when
syn keyword    sqrParam       when-other where with x-axis-grid
syn keyword    sqrParam       x-axis-label x-axis-major-increment
syn keyword    sqrParam       x-axis-major-tick-marks x-axis-max-value
syn keyword    sqrParam       x-axis-min-value x-axis-minor-increment
syn keyword    sqrParam       x-axis-minor-tick-marks x-axis-rotate
syn keyword    sqrParam       x-axis-scale x-axis-tick-mark-placement xor
syn keyword    sqrParam       y-axis-grid y-axis-label
syn keyword    sqrParam       y-axis-major-increment
syn keyword    sqrParam       y-axis-major-tick-marks y-axis-max-value
syn keyword    sqrParam       y-axis-min-value y-axis-minor-increment
syn keyword    sqrParam       y-axis-minor-tick-marks y-axis-scale
syn keyword    sqrParam       y-axis-tick-mark-placement y2-type
syn keyword    sqrParam       y2-data-array y2-data-array-row-count
syn keyword    sqrParam       y2-data-array-column-count
syn keyword    sqrParam       y2-data-array-column-labels
syn keyword    sqrParam       y2-axis-color-palette y2-axis-label
syn keyword    sqrParam       y2-axis-major-increment
syn keyword    sqrParam       y2-axis-major-tick-marks y2-axis-max-value
syn keyword    sqrParam       y2-axis-min-value y2-axis-minor-increment
syn keyword    sqrParam       y2-axis-minor-tick-marks y2-axis-scale

syn keyword    sqrFunction    abs acos asin atan array ascii asciic ceil
syn keyword    sqrFunction    cos cosh chr cond deg delete dateadd
syn keyword    sqrFunction    datediff datenow datetostr e10 exp edit
syn keyword    sqrFunction    exists floor getenv instr instrb isblank
syn keyword    sqrFunction    isnull log log10 length lengthb lengthp
syn keyword    sqrFunction    lengtht lower lpad ltrim mod nvl power rad
syn keyword    sqrFunction    round range replace roman rpad rtrim rename
syn keyword    sqrFunction    sign sin sinh sqrt substr substrb substrp
syn keyword    sqrFunction    substrt strtodate tan tanh trunc to_char
syn keyword    sqrFunction    to_multi_byte to_number to_single_byte
syn keyword    sqrFunction    transform translate unicode upper wrapdepth

" END GENERATED SECTION ==============================================

" Variables
syn match	  sqrVariable	/\(\$\|#\|&\)\(\k\|\.\)*/


" Debug compiler directives
syn match	  sqrPreProc	/\s*#debug\a\=\(\s\|$\)/
syn match	  sqrSubstVar	/{\k*}/


" Strings
" Note: if an undoubled ! is found, this is not a valid string
" (SQR will treat the end of the line as a comment)
syn match	  sqrString	/'\(!!\|[^!']\)*'/      contains=sqrSubstVar
syn match	  sqrStrOpen	/'\(!!\|''\|[^!']\)*$/
" If we find a ' followed by an unmatched ! before a matching ',
" flag the error.
syn match	  sqrError	/'\(!!\|[^'!]\)*![^!]/me=e-1
syn match	  sqrError	/'\(!!\|[^'!]\)*!$/

" Numbers:
syn match	  sqrNumber	/-\=\<\d*\.\=[0-9_]\>/



" Comments:
" Handle comments that start with "!=" specially; they are only valid
" in the first column of the source line.  Also, "!!" is only treated
" as a start-comment if there is only whitespace ahead of it on the line.

syn keyword	sqrTodo		TODO FIXME XXX DEBUG NOTE ###
syn match	sqrTodo		/???/

" See also the sqrString section above for handling of ! characters
" inside of strings.  (Those patterns override the ones below.)
syn match	sqrComment	/!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
"				  the ! can't be preceded by another !,
"				  and must be followed by at least one
"				  character other than ! or =, or immediately
"				  by the end-of-line
syn match	sqrComment	/^!=.*/ contains=sqrTodo
syn match	sqrComment	/^!!.*/ contains=sqrTodo
syn match	sqrError	/^\s\+\zs!=.*/
"				  it's an error to have "!=" preceded by
"				  just whitespace on the line ("!="
"				  preceded by non-whitespace is treated
"				  as neither a comment nor an error, since
"				  it is often correct, i.e.
"				    if #count != 7
syn match	sqrError	/.\+\zs!!.*/
"				  a "!!" anywhere but at the beginning of
"				  the line is always an error


" Define the default highlighting.
" Only when an item doesn't have highlighting yet.

hi def link sqrSection Statement
hi def link sqrParagraph Statement
hi def link sqrReserved Statement
hi def link sqrParameter Statement
hi def link sqrPreProc PreProc
hi def link sqrSubstVar PreProc
hi def link sqrCommand Statement
hi def link sqrParam Type
hi def link sqrFunction Special

hi def link sqrString String
hi def link sqrStrOpen Todo
hi def link sqrNumber Number
hi def link sqrVariable Identifier

hi def link sqrComment Comment
hi def link sqrTodo Todo
hi def link sqrError Error


let b:current_syntax = "sqr"

" vim: ts=8 sw=2
PK�j�Z�ڬ&

vim80/syntax/purifylog.vimnu�[���" Vim syntax file
" Language:	purify log files
" Maintainer:	Gautam H. Mudunuri <gmudunur@informatica.com>
" Last Change:	2003 May 11

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Purify header
syn match purifyLogHeader      "^\*\*\*\*.*$"

" Informational messages
syn match purifyLogFIU "^FIU:.*$"
syn match purifyLogMAF "^MAF:.*$"
syn match purifyLogMIU "^MIU:.*$"
syn match purifyLogSIG "^SIG:.*$"
syn match purifyLogWPF "^WPF:.*$"
syn match purifyLogWPM "^WPM:.*$"
syn match purifyLogWPN "^WPN:.*$"
syn match purifyLogWPR "^WPR:.*$"
syn match purifyLogWPW "^WPW:.*$"
syn match purifyLogWPX "^WPX:.*$"

" Warning messages
syn match purifyLogABR "^ABR:.*$"
syn match purifyLogBSR "^BSR:.*$"
syn match purifyLogBSW "^BSW:.*$"
syn match purifyLogFMR "^FMR:.*$"
syn match purifyLogMLK "^MLK:.*$"
syn match purifyLogMSE "^MSE:.*$"
syn match purifyLogPAR "^PAR:.*$"
syn match purifyLogPLK "^PLK:.*$"
syn match purifyLogSBR "^SBR:.*$"
syn match purifyLogSOF "^SOF:.*$"
syn match purifyLogUMC "^UMC:.*$"
syn match purifyLogUMR "^UMR:.*$"

" Corrupting messages
syn match purifyLogABW "^ABW:.*$"
syn match purifyLogBRK "^BRK:.*$"
syn match purifyLogFMW "^FMW:.*$"
syn match purifyLogFNH "^FNH:.*$"
syn match purifyLogFUM "^FUM:.*$"
syn match purifyLogMRE "^MRE:.*$"
syn match purifyLogSBW "^SBW:.*$"

" Fatal messages
syn match purifyLogCOR "^COR:.*$"
syn match purifyLogNPR "^NPR:.*$"
syn match purifyLogNPW "^NPW:.*$"
syn match purifyLogZPR "^ZPR:.*$"
syn match purifyLogZPW "^ZPW:.*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link purifyLogFIU purifyLogInformational
hi def link purifyLogMAF purifyLogInformational
hi def link purifyLogMIU purifyLogInformational
hi def link purifyLogSIG purifyLogInformational
hi def link purifyLogWPF purifyLogInformational
hi def link purifyLogWPM purifyLogInformational
hi def link purifyLogWPN purifyLogInformational
hi def link purifyLogWPR purifyLogInformational
hi def link purifyLogWPW purifyLogInformational
hi def link purifyLogWPX purifyLogInformational

hi def link purifyLogABR purifyLogWarning
hi def link purifyLogBSR purifyLogWarning
hi def link purifyLogBSW purifyLogWarning
hi def link purifyLogFMR purifyLogWarning
hi def link purifyLogMLK purifyLogWarning
hi def link purifyLogMSE purifyLogWarning
hi def link purifyLogPAR purifyLogWarning
hi def link purifyLogPLK purifyLogWarning
hi def link purifyLogSBR purifyLogWarning
hi def link purifyLogSOF purifyLogWarning
hi def link purifyLogUMC purifyLogWarning
hi def link purifyLogUMR purifyLogWarning

hi def link purifyLogABW purifyLogCorrupting
hi def link purifyLogBRK purifyLogCorrupting
hi def link purifyLogFMW purifyLogCorrupting
hi def link purifyLogFNH purifyLogCorrupting
hi def link purifyLogFUM purifyLogCorrupting
hi def link purifyLogMRE purifyLogCorrupting
hi def link purifyLogSBW purifyLogCorrupting

hi def link purifyLogCOR purifyLogFatal
hi def link purifyLogNPR purifyLogFatal
hi def link purifyLogNPW purifyLogFatal
hi def link purifyLogZPR purifyLogFatal
hi def link purifyLogZPW purifyLogFatal

hi def link purifyLogHeader		Comment
hi def link purifyLogInformational	PreProc
hi def link purifyLogWarning		Type
hi def link purifyLogCorrupting	Error
hi def link purifyLogFatal		Error


let b:current_syntax = "purifylog"

" vim:ts=8
PK�j�Z��i^��vim80/syntax/kivy.vimnu�[���" Vim syntax file
" Language:    Kivy
" Maintainer:  Corey Prophitt <prophitt.corey@gmail.com>
" Last Change: May 29th, 2014
" Version:     1
" URL:         http://kivy.org/

if exists("b:current_syntax")
    finish
endif

" Load Python syntax first (Python can be used within Kivy)
syn include @pyth $VIMRUNTIME/syntax/python.vim

" Kivy language rules can be found here
"   http://kivy.org/docs/guide/lang.html

" Define Kivy syntax
syn match kivyPreProc   /#:.*/
syn match kivyComment   /#.*/
syn match kivyRule      /<\I\i*\(,\s*\I\i*\)*>:/
syn match kivyAttribute /\<\I\i*\>/ nextgroup=kivyValue

syn region kivyValue start=":" end=/$/  contains=@pyth skipwhite

syn region kivyAttribute matchgroup=kivyIdent start=/[\a_][\a\d_]*:/ end=/$/ contains=@pyth skipwhite

hi def link kivyPreproc   PreProc
hi def link kivyComment   Comment
hi def link kivyRule      Function
hi def link kivyIdent     Statement
hi def link kivyAttribute Label

let b:current_syntax = "kivy"

" vim: ts=8
PK�j�Zt�WF�F�vim80/syntax/perl.vimnu�[���" Vim syntax file
" Language:      Perl 5
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2017-09-12
" Contributors:  Andy Lester <andy@petdance.com>
"                Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"                Lukas Mai <l.mai.web.de>
"                Nick Hibma <nick@van-laarhoven.org>
"                Sonia Heimann <niania@netsurf.org>
"                Rob Hoelz <rob@hoelz.ro>
"                and many others.
"
" Please download the most recent version first, before mailing
" any comments.
"
" The following parameters are available for tuning the
" perl syntax highlighting, with defaults given:
"
" let perl_include_pod = 1
" unlet perl_no_scope_in_variables
" unlet perl_no_extended_vars
" unlet perl_string_as_statement
" unlet perl_no_sync_on_sub
" unlet perl_no_sync_on_global_var
" let perl_sync_dist = 100
" unlet perl_fold
" unlet perl_fold_blocks
" unlet perl_nofold_packages
" unlet perl_nofold_subs
" unlet perl_fold_anonymous_subs
" unlet perl_no_subprototype_error

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" POD starts with ^=<word> and ends with ^=cut

if !exists("perl_include_pod") || perl_include_pod == 1
  " Include a while extra syntax file
  syn include @Pod syntax/pod.vim
  unlet b:current_syntax
  if exists("perl_fold")
    syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold extend
    syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold extend
  else
    syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend
    syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend
  endif
else
  " Use only the bare minimum of rules
  if exists("perl_fold")
    syn region perlPOD start="^=[a-z]" end="^=cut" fold
  else
    syn region perlPOD start="^=[a-z]" end="^=cut"
  endif
endif


syn cluster perlTop		contains=TOP

syn region perlBraces start="{" end="}" transparent extend

" All keywords
"
syn match perlConditional		"\<\%(if\|elsif\|unless\|given\|when\|default\)\>"
syn match perlConditional		"\<else\%(\%(\_s\*if\>\)\|\>\)" contains=perlElseIfError skipwhite skipnl skipempty
syn match perlRepeat			"\<\%(while\|for\%(each\)\=\|do\|until\|continue\)\>"
syn match perlOperator			"\<\%(defined\|undef\|eq\|ne\|[gl][et]\|cmp\|not\|and\|or\|xor\|not\|bless\|ref\|do\)\>"
" for some reason, adding this as the nextgroup for perlControl fixes BEGIN
" folding issues...
syn match perlFakeGroup 		"" contained
syn match perlControl			"\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgroup=perlFakeGroup

syn match perlStatementStorage		"\<\%(my\|our\|local\|state\)\>"
syn match perlStatementControl		"\<\%(return\|last\|next\|redo\|goto\|break\)\>"
syn match perlStatementScalar		"\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|fc\|uc\%(first\)\=\)\>"
syn match perlStatementRegexp		"\<\%(pos\|quotemeta\|split\|study\)\>"
syn match perlStatementNumeric		"\<\%(abs\|atan2\|cos\|exp\|hex\|int\|log\|oct\|rand\|sin\|sqrt\|srand\)\>"
syn match perlStatementList		"\<\%(splice\|unshift\|shift\|push\|pop\|join\|reverse\|grep\|map\|sort\|unpack\)\>"
syn match perlStatementHash		"\<\%(delete\|each\|exists\|keys\|values\)\>"
syn match perlStatementIOfunc		"\<\%(syscall\|dbmopen\|dbmclose\)\>"
syn match perlStatementFiledesc		"\<\%(binmode\|close\%(dir\)\=\|eof\|fileno\|getc\|lstat\|printf\=\|read\%(dir\|line\|pipe\)\|rewinddir\|say\|select\|stat\|tell\%(dir\)\=\|write\)\>" nextgroup=perlFiledescStatementNocomma skipwhite
syn match perlStatementFiledesc		"\<\%(fcntl\|flock\|ioctl\|open\%(dir\)\=\|read\|seek\%(dir\)\=\|sys\%(open\|read\|seek\|write\)\|truncate\)\>" nextgroup=perlFiledescStatementComma skipwhite
syn match perlStatementVector		"\<vec\>"
syn match perlStatementFiles		"\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>"
syn match perlStatementFiles		"-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
syn match perlStatementFlow		"\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>"
syn match perlStatementInclude		"\<\%(require\|import\|unimport\)\>"
syn match perlStatementInclude		"\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autodie\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|overloading\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
syn match perlStatementProc		"\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
syn match perlStatementSocket		"\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
syn match perlStatementIPC		"\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>"
syn match perlStatementNetwork		"\<\%(\%(end\|[gs]et\)\%(host\|net\|proto\|serv\)ent\|get\%(\%(host\|net\)by\%(addr\|name\)\|protoby\%(name\|number\)\|servby\%(name\|port\)\)\)\>"
syn match perlStatementPword		"\<\%(get\%(pw\%(uid\|nam\)\|gr\%(gid\|nam\)\|login\)\)\|\%(end\|[gs]et\)\%(pw\|gr\)ent\>"
syn match perlStatementTime		"\<\%(gmtime\|localtime\|time\)\>"

syn match perlStatementMisc		"\<\%(warn\|format\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>"

syn keyword perlTodo			TODO TODO: TBD TBD: FIXME FIXME: XXX XXX: NOTE NOTE: contained

syn region perlStatementIndirObjWrap   matchgroup=perlStatementIndirObj start="\%(\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*\)\@<={" end="}" transparent extend

syn match perlLabel      "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"

" Perl Identifiers.
"
" Should be cleaned up to better handle identifiers in particular situations
" (in hash keys for example)
"
" Plain identifiers: $foo, @foo, $#foo, %foo, &foo and dereferences $$foo, @$foo, etc.
" We do not process complex things such as @{${"foo"}}. Too complicated, and
" too slow. And what is after the -> is *not* considered as part of the
" variable - there again, too complicated and too slow.

" Special variables first ($^A, ...) and ($|, $', ...)
syn match  perlVarPlain		 "$^[ACDEFHILMNOPRSTVWX]\="
syn match  perlVarPlain		 "$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]"
syn match  perlVarPlain		 "@[-+]"
syn match  perlVarPlain		 "$\%(0\|[1-9]\d*\)"
" Same as above, but avoids confusion in $::foo (equivalent to $main::foo)
syn match  perlVarPlain		 "$::\@!"
" These variables are not recognized within matches.
syn match  perlVarNotInMatches	 "$[|)]"
" This variable is not recognized within matches delimited by m//.
syn match  perlVarSlash		 "$/"

" And plain identifiers
syn match  perlPackageRef	 "[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\=\%(::\|'\)\I"ms=s+1,me=e-1 contained

" To not highlight packages in variables as a scope reference - i.e. in
" $pack::var, pack:: is a scope, just set "perl_no_scope_in_variables"
" If you don't want complex things like @{${"foo"}} to be processed,
" just set the variable "perl_no_extended_vars"...

if !exists("perl_no_scope_in_variables")
  syn match  perlVarPlain       "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
  syn match  perlVarPlain2                   "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
  syn match  perlFunctionName                "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
else
  syn match  perlVarPlain       "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
  syn match  perlVarPlain2                   "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
  syn match  perlFunctionName                "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
endif

syn match  perlVarPlain2	 "%[-+]"

if !exists("perl_no_extended_vars")
  syn cluster perlExpr		contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
  syn region perlArrow		matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
  syn region perlArrow		matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
  syn region perlArrow		matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
  syn match  perlArrow		"->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
  syn region perlArrow		matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
  syn region perlVarBlock	matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
  syn region perlVarBlock2	matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
  syn match  perlVarPlain2	"[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
  syn match  perlVarPlain	"\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
  syn region perlVarMember	matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
  syn match  perlVarSimpleMember	"\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contains=perlVarSimpleMemberName contained extend
  syn match  perlVarSimpleMemberName	"\I\i*" contained
  syn region perlVarMember	matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
  syn match perlPackageConst	"__PACKAGE__" nextgroup=perlMethod,perlPostDeref
  syn match  perlMethod		"->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
  syn match  perlPostDeref	"->\%($#\|[$@%&*]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
  syn region  perlPostDeref	start="->\%($#\|[$@%&*]\)\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
  syn region  perlPostDeref	matchgroup=perlPostDeref start="->\%($#\|[$@%&*]\){" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
endif

" File Descriptors
syn match  perlFiledescRead	"<\h\w*>"

syn match  perlFiledescStatementComma	"(\=\s*\<\u\w*\>\s*,"me=e-1 transparent contained contains=perlFiledescStatement
syn match  perlFiledescStatementNocomma "(\=\s*\<\u\w*\>\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement

syn match  perlFiledescStatement	"\<\u\w*\>" contained

" Special characters in strings and matches
syn match  perlSpecialString	"\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend
syn match  perlSpecialStringU2	"\\." extend contained contains=NONE
syn match  perlSpecialStringU	"\\\\" contained
syn match  perlSpecialMatch	"\\[1-9]" contained extend
syn match  perlSpecialMatch	"\\g\%(\d\+\|{\%(-\=\d\+\|\h\w*\)}\)" contained
syn match  perlSpecialMatch	"\\k\%(<\h\w*>\|'\h\w*'\)" contained
syn match  perlSpecialMatch	"{\d\+\%(,\%(\d\+\)\=\)\=}" contained
syn match  perlSpecialMatch	"\[[]-]\=[^\[\]]*[]-]\=\]" contained extend
syn match  perlSpecialMatch	"[+*()?.]" contained
syn match  perlSpecialMatch	"(?[#:=!]" contained
syn match  perlSpecialMatch	"(?[impsx]*\%(-[imsx]\+\)\=)" contained
syn match  perlSpecialMatch	"(?\%([-+]\=\d\+\|R\))" contained
syn match  perlSpecialMatch	"(?\%(&\|P[>=]\)\h\w*)" contained
syn match  perlSpecialMatch	"(\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\=\|\%(MARK\|\):[^)]*\|COMMIT\|F\%(AIL\)\=\|ACCEPT\))" contained

" Possible errors
"
" Highlight lines with only whitespace (only in blank delimited here documents) as errors
syn match  perlNotEmptyLine	"^\s\+$" contained
" Highlight "} else if (...) {", it should be "} else { if (...) { " or "} elsif (...) {"
syn match perlElseIfError	"else\_s*if" containedin=perlConditional
syn keyword perlElseIfError	elseif containedin=perlConditional

" Variable interpolation
"
" These items are interpolated inside "" strings and similar constructs.
syn cluster perlInterpDQ	contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock
" These items are interpolated inside '' strings and similar constructs.
syn cluster perlInterpSQ	contains=perlSpecialStringU,perlSpecialStringU2
" These items are interpolated inside m// matches and s/// substitutions.
syn cluster perlInterpSlash	contains=perlSpecialString,perlSpecialMatch,perlVarPlain,perlVarBlock
" These items are interpolated inside m## matches and s### substitutions.
syn cluster perlInterpMatch	contains=@perlInterpSlash,perlVarSlash

" Shell commands
syn region  perlShellCommand	matchgroup=perlMatchStartEnd start="`" end="`" contains=@perlInterpDQ keepend

" Constants
"
" Numbers
syn match  perlNumber	"\<\%(0\%(x\x[[:xdigit:]_]*\|b[01][01_]*\|\o[0-7_]*\|\)\|[1-9][[:digit:]_]*\)\>"
syn match  perlFloat	"\<\d[[:digit:]_]*[eE][\-+]\=\d\+"
syn match  perlFloat	"\<\d[[:digit:]_]*\.[[:digit:]_]*\%([eE][\-+]\=\d\+\)\="
syn match  perlFloat    "\.[[:digit:]][[:digit:]_]*\%([eE][\-+]\=\d\+\)\="

syn match  perlString	"\<\%(v\d\+\%(\.\d\+\)*\|\d\+\%(\.\d\+\)\{2,}\)\>" contains=perlVStringV
syn match  perlVStringV	"\<v" contained


syn region perlParensSQ		start=+(+ end=+)+ extend contained contains=perlParensSQ,@perlInterpSQ keepend
syn region perlBracketsSQ	start=+\[+ end=+\]+ extend contained contains=perlBracketsSQ,@perlInterpSQ keepend
syn region perlBracesSQ		start=+{+ end=+}+ extend contained contains=perlBracesSQ,@perlInterpSQ keepend
syn region perlAnglesSQ		start=+<+ end=+>+ extend contained contains=perlAnglesSQ,@perlInterpSQ keepend

syn region perlParensDQ		start=+(+ end=+)+ extend contained contains=perlParensDQ,@perlInterpDQ keepend
syn region perlBracketsDQ	start=+\[+ end=+\]+ extend contained contains=perlBracketsDQ,@perlInterpDQ keepend
syn region perlBracesDQ		start=+{+ end=+}+ extend contained contains=perlBracesDQ,@perlInterpDQ keepend
syn region perlAnglesDQ		start=+<+ end=+>+ extend contained contains=perlAnglesDQ,@perlInterpDQ keepend


" Simple version of searches and matches
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgcn]*+ contains=@perlInterpSQ keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgcn]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgcn]*+ contains=@perlInterpMatch,perlBracesDQ extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgcn]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgcn]*+ contains=@perlInterpMatch,perlBracketsDQ keepend extend

" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
" cases as the / is used in so many other ways, but these should be the most obvious ones.
syn region perlMatch	matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash extend


" Substitutions
" perlMatch is the first part, perlSubstitution* is the substitution part
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*'+  end=+'+me=e-1 contains=@perlInterpSQ nextgroup=perlSubstitutionSQ keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*/+  end=+/+me=e-1 contains=@perlInterpSlash nextgroup=perlSubstitutionGQQ keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s#+  end=+#+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcern]*+ keepend contained contains=@perlInterpDQ extend
syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
syn region perlSubstitutionSQ		matchgroup=perlMatchStartEnd start=+'+  end=+'[msixpodualgcern]*+ contained contains=@perlInterpSQ keepend extend

" Translations
" perlMatch is the first part, perlTranslation* is the second, translator part.
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\>\s*\z([^[:space:]([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationGQ
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)#+ end=+#+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationGQ
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlTranslationGQ		matchgroup=perlMatchStartEnd start=+\z([^[:space:]([{<]\)+ end=+\z1[cdsr]*+ contained
syn region perlTranslationGQ		matchgroup=perlMatchStartEnd start=+(+ end=+)[cdsr]*+ contains=perlParensSQ contained
syn region perlTranslationGQ		matchgroup=perlMatchStartEnd start=+\[+ end=+\][cdsr]*+ contains=perlBracketsSQ contained
syn region perlTranslationGQ		matchgroup=perlMatchStartEnd start=+{+ end=+}[cdsr]*+ contains=perlBracesSQ contained
syn region perlTranslationGQ		matchgroup=perlMatchStartEnd start=+<+ end=+>[cdsr]*+ contains=perlAnglesSQ contained


" Strings and q, qq, qw and qr expressions

syn region perlStringUnexpanded	matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ keepend extend
syn region perlString		matchgroup=perlStringStartEnd start=+"+  end=+"+ contains=@perlInterpDQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend

syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpDQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]#+ end=+#+ contains=@perlInterpDQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*(+ end=+)+ contains=@perlInterpDQ,perlParensDQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*\[+ end=+\]+ contains=@perlInterpDQ,perlBracketsDQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*{+ end=+}+ contains=@perlInterpDQ,perlBracesDQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*<+ end=+>+ contains=@perlInterpDQ,perlAnglesDQ keepend extend

syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)+  end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw#+  end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*(+  end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\[+  end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+  end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+  end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend

syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+  end=+\z1[imosxdual]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+  end=+/[imosxdual]*+ contains=@perlInterpSlash keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+  end=+#[imosxdual]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+  end=+'[imosxdual]*+ contains=@perlInterpSQ keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+  end=+)[imosxdual]*+ contains=@perlInterpMatch,perlParensDQ keepend extend

" A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+  end=+}[imosxdual]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+  end=+>[imosxdual]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
syn region perlQQ		matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+  end=+\][imosxdual]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend

" Constructs such as print <<EOF [...] EOF, 'here' documents
"
" XXX Any statements after the identifier are in perlString colour (i.e.
" 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it
" seems due to the 'auto-extending nature' of regions.
syn region perlHereDocStart	matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+  end=+$+     contains=@perlTop oneline
syn region perlHereDocStart	matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart	matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart	matchgroup=perlStringStartEnd start=+<<\s*""+       end=+$+     contains=@perlTop oneline
syn region perlHereDocStart	matchgroup=perlStringStartEnd start=+<<\s*''+       end=+$+     contains=@perlTop oneline
if exists("perl_fold")
  syn region perlHereDoc	start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd      end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
  syn region perlHereDoc	start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
  syn region perlHereDoc	start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ fold extend
  syn region perlHereDoc	start=+<<\s*""+ matchgroup=perlStringStartEnd           end=+^$+    contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
  syn region perlHereDoc	start=+<<\s*''+ matchgroup=perlStringStartEnd           end=+^$+    contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine fold extend
  syn region perlAutoload	matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold extend
else
  syn region perlHereDoc	start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd      end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
  syn region perlHereDoc	start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
  syn region perlHereDoc	start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ
  syn region perlHereDoc	start=+<<\s*""+ matchgroup=perlStringStartEnd           end=+^$+    contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
  syn region perlHereDoc	start=+<<\s*''+ matchgroup=perlStringStartEnd           end=+^$+    contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
  syn region perlAutoload	matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL
endif


" Class declarations
"
syn match   perlPackageDecl		"\<package\s\+\%(\h\|::\)\%(\w\|::\)*" contains=perlStatementPackage
syn keyword perlStatementPackage	package contained

" Functions
"       sub [name] [(prototype)] {
"
syn match perlSubError "[^[:space:];{#]" contained
syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
syn match perlSubAttributes "" contained nextgroup=perlSubError
syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
if get(g:, "perl_sub_signatures", 0)
    syn match perlSignature +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained
else
    syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
    syn match perlSubPrototype +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
endif

syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlSignature,perlSubAttributes,perlComment

syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName

" The => operator forces a bareword to the left of it to be interpreted as
" a string
syn match  perlString "\I\@<!-\?\I\i*\%(\s*=>\)\@="

" All other # are comments, except ^#!
syn match  perlComment		"#.*" contains=perlTodo,@Spell extend
syn match  perlSharpBang	"^#!.*"

" Formats
syn region perlFormat		matchgroup=perlStatementIOFunc start="^\s*\<format\s\+\k\+\s*=\s*$"rs=s+6 end="^\s*\.\s*$" contains=perlFormatName,perlFormatField,perlVarPlain,perlVarPlain2
syn match  perlFormatName	"format\s\+\k\+\s*="lc=7,me=e-1 contained
syn match  perlFormatField	"[@^][|<>~]\+\%(\.\.\.\)\=" contained
syn match  perlFormatField	"[@^]#[#.]*" contained
syn match  perlFormatField	"@\*" contained
syn match  perlFormatField	"@[^A-Za-z_|<>~#*]"me=e-1 contained
syn match  perlFormatField	"@$" contained

" __END__ and __DATA__ clauses
if exists("perl_fold")
  syntax region perlDATA		start="^__DATA__$" skip="." end="." contains=@perlDATA fold
  syntax region perlDATA		start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
else
  syntax region perlDATA		start="^__DATA__$" skip="." end="." contains=@perlDATA
  syntax region perlDATA		start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
endif

"
" Folding

if exists("perl_fold")
  " Note: this bit must come before the actual highlighting of the "package"
  " keyword, otherwise this will screw up Pod lines that match /^package/
  if !exists("perl_nofold_packages")
    syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend
  endif
  if !exists("perl_nofold_subs")
    if get(g:, "perl_fold_anonymous_subs", 0)
      syn region perlSubFold start="\<sub\>[^{]*{" end="}" transparent fold keepend extend
      syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
    else
      syn region perlSubFold     start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
      syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
    endif
  endif

  if exists("perl_fold_blocks")
    syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)for\%(each\)\=\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
    syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
  endif

  setlocal foldmethod=syntax
  syn sync fromstart
else
  " fromstart above seems to set minlines even if perl_fold is not set.
  syn sync minlines=0
endif

" NOTE: If you're linking new highlight groups to perlString, please also put
"       them into b:match_skip in ftplugin/perl.vim.

" The default highlighting.
hi def link perlSharpBang		PreProc
hi def link perlControl		PreProc
hi def link perlInclude		Include
hi def link perlSpecial		Special
hi def link perlString		String
hi def link perlCharacter		Character
hi def link perlNumber		Number
hi def link perlFloat		Float
hi def link perlType			Type
hi def link perlIdentifier		Identifier
hi def link perlLabel		Label
hi def link perlStatement		Statement
hi def link perlConditional		Conditional
hi def link perlRepeat		Repeat
hi def link perlOperator		Operator
hi def link perlFunction		Keyword
hi def link perlSubName		Function
hi def link perlSubPrototype		Type
hi def link perlSignature		Type
hi def link perlSubAttributes	PreProc
hi def link perlSubAttributesCont	perlSubAttributes
hi def link perlComment		Comment
hi def link perlTodo			Todo
if exists("perl_string_as_statement")
  hi def link perlStringStartEnd	perlStatement
else
  hi def link perlStringStartEnd	perlString
endif
hi def link perlVStringV		perlStringStartEnd
hi def link perlList			perlStatement
hi def link perlMisc			perlStatement
hi def link perlVarPlain		perlIdentifier
hi def link perlVarPlain2		perlIdentifier
hi def link perlArrow		perlIdentifier
hi def link perlFiledescRead		perlIdentifier
hi def link perlFiledescStatement	perlIdentifier
hi def link perlVarSimpleMember	perlIdentifier
hi def link perlVarSimpleMemberName 	perlString
hi def link perlVarNotInMatches	perlIdentifier
hi def link perlVarSlash		perlIdentifier
hi def link perlQQ			perlString
hi def link perlHereDoc		perlString
hi def link perlStringUnexpanded	perlString
hi def link perlSubstitutionSQ	perlString
hi def link perlSubstitutionGQQ	perlString
hi def link perlTranslationGQ	perlString
hi def link perlMatch		perlString
hi def link perlMatchStartEnd	perlStatement
hi def link perlFormatName		perlIdentifier
hi def link perlFormatField		perlString
hi def link perlPackageDecl		perlType
hi def link perlStorageClass		perlType
hi def link perlPackageRef		perlType
hi def link perlStatementPackage	perlStatement
hi def link perlStatementStorage	perlStatement
hi def link perlStatementControl	perlStatement
hi def link perlStatementScalar	perlStatement
hi def link perlStatementRegexp	perlStatement
hi def link perlStatementNumeric	perlStatement
hi def link perlStatementList	perlStatement
hi def link perlStatementHash	perlStatement
hi def link perlStatementIOfunc	perlStatement
hi def link perlStatementFiledesc	perlStatement
hi def link perlStatementVector	perlStatement
hi def link perlStatementFiles	perlStatement
hi def link perlStatementFlow	perlStatement
hi def link perlStatementInclude	perlStatement
hi def link perlStatementProc	perlStatement
hi def link perlStatementSocket	perlStatement
hi def link perlStatementIPC		perlStatement
hi def link perlStatementNetwork	perlStatement
hi def link perlStatementPword	perlStatement
hi def link perlStatementTime	perlStatement
hi def link perlStatementMisc	perlStatement
hi def link perlStatementIndirObj	perlStatement
hi def link perlFunctionName		perlIdentifier
hi def link perlMethod		perlIdentifier
hi def link perlPostDeref		perlIdentifier
hi def link perlFunctionPRef		perlType
if !get(g:, 'perl_include_pod', 1)
  hi def link perlPOD		perlComment
endif
hi def link perlShellCommand		perlString
hi def link perlSpecialAscii		perlSpecial
hi def link perlSpecialDollar	perlSpecial
hi def link perlSpecialString	perlSpecial
hi def link perlSpecialStringU	perlSpecial
hi def link perlSpecialMatch		perlSpecial
hi def link perlDATA			perlComment

" NOTE: Due to a bug in Vim (or more likely, a misunderstanding on my part),
"       I had to remove the transparent property from the following regions
"       in order to get them to highlight correctly.  Feel free to remove
"       these and reinstate the transparent property if you know how.
hi def link perlParensSQ		perlString
hi def link perlBracketsSQ		perlString
hi def link perlBracesSQ		perlString
hi def link perlAnglesSQ		perlString

hi def link perlParensDQ		perlString
hi def link perlBracketsDQ		perlString
hi def link perlBracesDQ		perlString
hi def link perlAnglesDQ		perlString

hi def link perlSpecialStringU2	perlString

" Possible errors
hi def link perlNotEmptyLine		Error
hi def link perlElseIfError		Error
hi def link perlSubPrototypeError	Error
hi def link perlSubError		Error

" Syncing to speed up processing
"
if !exists("perl_no_sync_on_sub")
  syn sync match perlSync	grouphere NONE "^\s*\<package\s"
  syn sync match perlSync	grouphere NONE "^\s*\<sub\>"
  syn sync match perlSync	grouphere NONE "^}"
endif

if !exists("perl_no_sync_on_global_var")
  syn sync match perlSync	grouphere NONE "^$\I[[:alnum:]_:]+\s*=\s*{"
  syn sync match perlSync	grouphere NONE "^[@%]\I[[:alnum:]_:]+\s*=\s*("
endif

if exists("perl_sync_dist")
  execute "syn sync maxlines=" . perl_sync_dist
else
  syn sync maxlines=100
endif

syn sync match perlSyncPOD	grouphere perlPOD "^=pod"
syn sync match perlSyncPOD	grouphere perlPOD "^=head"
syn sync match perlSyncPOD	grouphere perlPOD "^=item"
syn sync match perlSyncPOD	grouphere NONE "^=cut"

let b:current_syntax = "perl"

let &cpo = s:cpo_save
unlet s:cpo_save

" XXX Change to sts=4:sw=4
" vim:ts=8:sts=2:sw=2:expandtab:ft=vim
PK�j�ZW�tEEvim80/syntax/wvdial.vimnu�[���" Vim syntax file
" Language:     Configuration file for WvDial
" Maintainer:   Prahlad Vaidyanathan <slime@vsnl.net>
" Last Update:  Mon, 15 Oct 2001 09:39:03 Indian Standard Time

" Quit if syntax file is already loaded
if exists("b:current_syntax")
	finish
endif

syn match   wvdialComment   "^;.*$"lc=1
syn match   wvdialComment   "[^\\];.*$"lc=1
syn match   wvdialSection   "^\s*\[.*\]"
syn match   wvdialValue     "=.*$"ms=s+1
syn match   wvdialValue     "\s*[^ ;"' ]\+"lc=1
syn match   wvdialVar       "^\s*\(Inherits\|Modem\|Baud\|Init.\|Phone\|Area\ Code\|Dial\ Prefix\|Dial\ Command\|Login\|Login\| Prompt\|Password\|Password\ Prompt\|PPPD\ Path\|Force\ Address\|Remote\ Name\|Carrier\ Check\|Stupid\ [Mm]ode\|New\ PPPD\|Default\ Reply\|Auto\ Reconnect\|SetVolume\|Username\)"
syn match   wvdialEqual     "="

" The default highlighting
hi def link wvdialComment   Comment
hi def link wvdialSection   PreProc
hi def link wvdialVar       Identifier
hi def link wvdialValue     String
hi def link wvdialEqual     Statement

let b:current_syntax = "wvdial"

"EOF vim: tw=78:ft=vim:ts=8
PK�j�ZY���o\o\vim80/syntax/gnuplot.vimnu�[���" Vim syntax file
" Language:	gnuplot 4.7.0
" Maintainer:	Josh Wainwright <wainwright DOT ja AT gmail DOT com>
" Last Maintainer:	Andrew Rasmussen andyras@users.sourceforge.net
" Original Maintainer:	John Hoelzel johnh51@users.sourceforge.net
" Last Change:	2015-08-25
" Filenames:	*.gnu *.plt *.gpi *.gih *.gp *.gnuplot scripts: #!*gnuplot
" URL:		http://www.vim.org/scripts/script.php?script_id=4873
" Original URL:	http://johnh51.get.to/vim/syntax/gnuplot.vim

" thanks to "David Necas (Yeti)" <yeti@physics.muni.cz>

" credit also to Jim Eberle <jim.eberle@fastnlight.com>
" for the script http://www.vim.org/scripts/script.php?script_id=1737

" some shortened names to make demo files look clean... jeh. 11/2000
" demos -> 3.8i ... jeh. 5/2003 - a work in progress...
" added current commands, keywords, variables, todos, macros... amr 2014-02-24

" For vim version 5.x: Clear all syntax items
" For vim version 6.x: Quit when a syntax file was already loaded

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" ---- Special characters ---- "

" no harm in just matching any \[char] within double quotes, right?
syn match gnuplotSpecial	"\\." contained
" syn match gnuplotSpecial	"\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[a-z\\]" contained

" measurements in the units in, cm and pt are special
syn match gnuplotUnit		"[0-9]+in"
syn match gnuplotUnit		"[0-9]+cm"
syn match gnuplotUnit		"[0-9]+pt"

" external (shell) commands are special
syn region gnuplotExternal	start="!" end="$"

" ---- Comments ---- "

syn region gnuplotComment	start="#" end="$" contains=gnuplotTodo

" ---- Constants ---- "

" strings
syn region gnuplotString	start=+"+ skip=+\\"+ end=+"+ contains=gnuplotSpecial
syn region gnuplotString	start="'" end="'"

" built-in variables
syn keyword gnuplotNumber	GNUTERM GPVAL_TERM GPVAL_TERMOPTIONS GPVAL_SPLOT
syn keyword gnuplotNumber	GPVAL_OUTPUT GPVAL_ENCODING GPVAL_VERSION
syn keyword gnuplotNumber	GPVAL_PATCHLEVEL GPVAL_COMPILE_OPTIONS
syn keyword gnuplotNumber	GPVAL_MULTIPLOT GPVAL_PLOT GPVAL_VIEW_ZSCALE
syn keyword gnuplotNumber	GPVAL_TERMINALS GPVAL_pi GPVAL_NaN
syn keyword gnuplotNumber	GPVAL_ERRNO GPVAL_ERRMSG GPVAL_PWD
syn keyword gnuplotNumber	pi NaN GPVAL_LAST_PLOT GPVAL_TERM_WINDOWID
syn keyword gnuplotNumber	GPVAL_X_MIN GPVAL_X_MAX GPVAL_X_LOG
syn keyword gnuplotNumber	GPVAL_DATA_X_MIN GPVAL_DATA_X_MAX GPVAL_Y_MIN
syn keyword gnuplotNumber	GPVAL_Y_MAX GPVAL_Y_LOG GPVAL_DATA_Y_MIN
syn keyword gnuplotNumber	GPVAL_DATA_Y_MAX GPVAL_X2_MIN GPVAL_X2_MAX
syn keyword gnuplotNumber	GPVAL_X2_LOG GPVAL_DATA_X2_MIN GPVAL_DATA_X2_MAX
syn keyword gnuplotNumber	GPVAL_Y2_MIN GPVAL_Y2_MAX GPVAL_Y2_LOG
syn keyword gnuplotNumber	GPVAL_DATA_Y2_MIN GPVAL_DATA_Y2_MAX GPVAL_Z_MIN
syn keyword gnuplotNumber	GPVAL_Z_MAX GPVAL_Z_LOG GPVAL_DATA_Z_MIN
syn keyword gnuplotNumber	GPVAL_DATA_Z_MAX GPVAL_CB_MIN GPVAL_CB_MAX
syn keyword gnuplotNumber	GPVAL_CB_LOG GPVAL_DATA_CB_MIN GPVAL_DATA_CB_MAX
syn keyword gnuplotNumber	GPVAL_T_MIN GPVAL_T_MAX GPVAL_T_LOG GPVAL_U_MIN
syn keyword gnuplotNumber	GPVAL_U_MAX GPVAL_U_LOG GPVAL_V_MIN GPVAL_V_MAX
syn keyword gnuplotNumber	GPVAL_V_LOG GPVAL_R_MIN GPVAL_R_LOG
syn keyword gnuplotNumber	GPVAL_TERM_XMIN GPVAL_TERM_XMAX GPVAL_TERM_YMIN
syn keyword gnuplotNumber	GPVAL_TERM_YMAX GPVAL_TERM_XSIZE
syn keyword gnuplotNumber	GPVAL_TERM_YSIZE GPVAL_VIEW_MAP GPVAL_VIEW_ROT_X
syn keyword gnuplotNumber	GPVAL_VIEW_ROT_Z GPVAL_VIEW_SCALE

" function name variables
syn match gnuplotNumber		"GPFUN_[a-zA-Z_]*"

" stats variables
syn keyword gnuplotNumber	STATS_records STATS_outofrange STATS_invalid
syn keyword gnuplotNumber	STATS_blank STATS_blocks STATS_columns STATS_min
syn keyword gnuplotNumber	STATS_max STATS_index_min STATS_index_max
syn keyword gnuplotNumber	STATS_lo_quartile STATS_median STATS_up_quartile
syn keyword gnuplotNumber	STATS_mean STATS_stddev STATS_sum STATS_sumsq
syn keyword gnuplotNumber	STATS_correlation STATS_slope STATS_intercept
syn keyword gnuplotNumber	STATS_sumxy STATS_pos_min_y STATS_pos_max_y
syn keyword gnuplotNumber	STATS_mean STATS_stddev STATS_mean_x STATS_sum_x
syn keyword gnuplotNumber	STATS_stddev_x STATS_sumsq_x STATS_min_x
syn keyword gnuplotNumber	STATS_max_x STATS_median_x STATS_lo_quartile_x
syn keyword gnuplotNumber	STATS_up_quartile_x STATS_index_min_x
syn keyword gnuplotNumber	STATS_index_max_x STATS_mean_y STATS_stddev_y
syn keyword gnuplotNumber	STATS_sum_y STATS_sumsq_y STATS_min_y
syn keyword gnuplotNumber	STATS_max_y STATS_median_y STATS_lo_quartile_y
syn keyword gnuplotNumber	STATS_up_quartile_y STATS_index_min_y
syn keyword gnuplotNumber	STATS_index_max_y STATS_correlation STATS_sumxy

" deprecated fit variables
syn keyword gnuplotError	FIT_LIMIT FIT_MAXITER FIT_START_LAMBDA
syn keyword gnuplotError	FIT_LAMBDA_FACTOR FIT_LOG FIT_SCRIPT

" numbers, from c.vim

" integer number, or floating point number without a dot and with "f".
syn case    ignore
syn match   gnuplotNumber	"\<[0-9]\+\(u\=l\=\|lu\|f\)\>"

" floating point number, with dot, optional exponent
syn match   gnuplotFloat	"\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=[fl]\=\>"

" floating point number, starting with a dot, optional exponent
syn match   gnuplotFloat	"\.[0-9]\+\(e[-+]\=[0-9]\+\)\=[fl]\=\>"

" floating point number, without dot, with exponent
syn match   gnuplotFloat	"\<[0-9]\+e[-+]\=[0-9]\+[fl]\=\>"

" hex number
syn match   gnuplotNumber	"\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
syn case    match

" flag an octal number with wrong digits by not highlighting
syn match   gnuplotOctalError	"\<0[0-7]*[89]"

" ---- Identifiers: Functions ---- "

" numerical functions
syn keyword gnuplotFunc		abs acos acosh airy arg asin asinh atan atan2
syn keyword gnuplotFunc		atanh EllipticK EllipticE EllipticPi besj0 besj1
syn keyword gnuplotFunc		besy0 besy1 ceil cos cosh erf erfc exp expint
syn keyword gnuplotFunc		floor gamma ibeta inverf igamma imag invnorm int
syn keyword gnuplotFunc		lambertw lgamma log log10 norm rand real sgn sin
syn keyword gnuplotFunc		sin sinh sqrt tan tanh voigt

" string functions
syn keyword gnuplotFunc		gprintf sprintf strlen strstrt substr strftime
syn keyword gnuplotFunc		strptime system word words

" other functions
syn keyword gnuplotFunc		column columnhead columnheader defined exists
syn keyword gnuplotFunc		hsv2rgb stringcolumn timecolumn tm_hour tm_mday
syn keyword gnuplotFunc		tm_min tm_mon tm_sec tm_wday tm_yday tm_year
syn keyword gnuplotFunc		time valid value

" ---- Statements ---- "

" common (builtin) variable names
syn keyword gnuplotKeyword	x y t u v z s

" conditionals
syn keyword gnuplotConditional	if else

" repeats
syn keyword gnuplotRepeat	do for while

" operators
syn match gnuplotOperator	"[-+*/^|&?:]"
syn match gnuplotOperator	"\*\*"
syn match gnuplotOperator	"&&"
syn match gnuplotOperator	"||"

" Keywords

" keywords for 'fit' command
syn keyword gnuplotKeyword	via z x:z x:z:s x:y:z:s
syn keyword gnuplotKeyword	x:y:t:z:s x:y:t:u:z:s x:y:t:u:v:z:s

" keywords for 'plot' command
" 'axes' keyword
syn keyword gnuplotKeyword	axes x1y1 x1y2 x2y1 x2y2
" 'binary' keyword
syn keyword gnuplotKeyword	binary matrix general array record format endian
syn keyword gnuplotKeyword	filetype avs edf png scan transpose dx dy dz
syn keyword gnuplotKeyword	flipx flipy flipz origin center rotate using
syn keyword gnuplotKeyword	perpendicular skip every
" datafile keywords
syn keyword gnuplotKeyword	binary nonuniform matrix index every using
syn keyword gnuplotKeyword	smooth volatile noautoscale every index
" 'smooth' keywords
syn keyword gnuplotKeyword	unique frequency cumulative cnormal kdensity
syn keyword gnuplotKeyword	csplines acsplines bezer sbezier
" deprecated 'thru' keyword
syn keyword gnuplotError	thru
" 'using' keyword
syn keyword gnuplotKeyword	using u xticlabels yticlabels zticlabels
syn keyword gnuplotKeyword	x2ticlabels y2ticlabels xtic ytic ztic
" 'errorbars' keywords
syn keyword gnuplotKeyword	errorbars xerrorbars yerrorbars xyerrorbars
" 'errorlines' keywords
syn keyword gnuplotKeyword	errorlines xerrorlines yerrorlines xyerrorlines
" 'title' keywords
syn keyword gnuplotKeyword	title t tit notitle columnheader at beginning
syn keyword gnuplotKeyword	end
" 'with' keywords
syn keyword gnuplotKeyword	with w linestyle ls linetype lt linewidth
syn keyword gnuplotKeyword	lw linecolor lc pointtype pt pointsize ps
syn keyword gnuplotKeyword	fill fs nohidden3d nocontours nosurface palette
" styles for 'with'
syn keyword gnuplotKeyword	lines l points p linespoints lp surface dots
syn keyword gnuplotKeyword	impulses labels vectors steps fsteps histeps
syn keyword gnuplotKeyword	errorbars errorlines financebars xerrorbars
syn keyword gnuplotKeyword	xerrorlines xyerrorbars yerrorbars yerrorlines
syn keyword gnuplotKeyword	boxes boxerrorbars boxxyerrorbars boxplot
syn keyword gnuplotKeyword	candlesticks circles ellipses filledcurves
syn keyword gnuplotKeyword	histogram image rgbimage rgbalpha pm3d variable

" keywords for 'save' command
syn keyword gnuplotKeyword	save functions func variables all var terminal
syn keyword gnuplotKeyword	term set

" keywords for 'set/show' command
" set angles
syn keyword gnuplotKeyword	angles degrees deg radians rad
" set arrow
syn keyword gnuplotKeyword	arrow from to rto length angle arrowstyle as
syn keyword gnuplotKeyword	nohead head backhead heads size filled empty
syn keyword gnuplotKeyword	nofilled front back linestyle linetype linewidth
" set autoscale
" TODO regexp here
syn keyword gnuplotKeyword	autoscale x y z cb x2 y2 zy min max fixmin
syn keyword gnuplotKeyword	fixmax fix keepfix noextend
" set bars
syn keyword gnuplotKeyword	bars small large fullwidth front back
" set bind
syn keyword gnuplotKeyword	bind
" set margins
" TODO regexp
syn keyword gnuplotKeyword	margin bmargin lmargin rmargin tmargin
" set border
syn keyword gnuplotKeyword	border front back
" set boxwidth
syn keyword gnuplotKeyword	boxwidth absolute relative
" deprecated set clabel
syn keyword gnuplotError	clabel
" set clip
syn keyword gnuplotKeyword	clip points one two
" set cntrlabel
syn keyword gnuplotKeyword	cntrlabel format font start interval onecolor
" set cntrparam
syn keyword gnuplotKeyword	cntrparam linear cubicspline bspline points
syn keyword gnuplotKeyword	order levels auto discrete incremental
" set colorbox
syn keyword gnuplotKeyword	colorbox vertical horizontal default user origin
syn keyword gnuplotKeyword	size front back noborder bdefault border
" show colornames
syn keyword gnuplotKeyword	colornames
" set contour
syn keyword gnuplotKeyword	contour base surface both
" set datafile
syn keyword gnuplotKeyword	datafile fortran nofpe_trap missing separator
syn keyword gnuplotKeyword	whitespace tab comma commentschars binary
" set decimalsign
syn keyword gnuplotKeyword	decimalsign locale
" set dgrid3d
syn keyword gnuplotKeyword	dgrid3d splines qnorm gauss cauchy exp box hann
syn keyword gnuplotKeyword	kdensity
" set dummy
syn keyword gnuplotKeyword	dummy
" set encoding
syn keyword gnuplotKeyword	encoding default iso_8859_1 iso_8859_15
syn keyword gnuplotKeyword	iso_8859_2 iso_8859_9 koi8r koi8u cp437 cp850
syn keyword gnuplotKeyword	cp852 cp950 cp1250 cp1251 cp1254 sjis utf8
" set fit
syn keyword gnuplotKeyword	fit logfile default quiet noquiet results brief
syn keyword gnuplotKeyword	verbose errorvariables noerrorvariables
syn keyword gnuplotKeyword	errorscaling noerrorscaling prescale noprescale
syn keyword gnuplotKeyword	maxiter none limit limit_abs start-lambda script
syn keyword gnuplotKeyword	lambda-factor
" set fontpath
syn keyword gnuplotKeyword	fontpath
" set format
syn keyword gnuplotKeyword	format
" show functions
syn keyword gnuplotKeyword	functions
" set grid
syn keyword gnuplotKeyword	grid polar layerdefault xtics ytics ztics x2tics
syn keyword gnuplotKeyword	y2tics cbtics mxtics mytics mztics mx2tics
syn keyword gnuplotKeyword	my2tics mcbtics xmtics ymtics zmtics x2mtics
syn keyword gnuplotKeyword	y2mtics cbmtics noxtics noytics noztics nox2tics
syn keyword gnuplotKeyword	noy2tics nocbtics nomxtics nomytics nomztics
syn keyword gnuplotKeyword	nomx2tics nomy2tics nomcbtics
" set hidden3d
syn keyword gnuplotKeyword	hidden3d offset trianglepattern undefined
syn keyword gnuplotKeyword	altdiagonal noaltdiagonal bentover nobentover
syn keyword gnuplotKeyword	noundefined
" set historysize
syn keyword gnuplotKeyword	historysize
" set isosamples
syn keyword gnuplotKeyword	isosamples
" set key
syn keyword gnuplotKeyword	key on off inside outside at left right center
syn keyword gnuplotKeyword	top bottom vertical horizontal Left Right
syn keyword gnuplotKeyword	opaque noopaque reverse noreverse invert maxrows
syn keyword gnuplotKeyword	noinvert samplen spacing width height autotitle
syn keyword gnuplotKeyword	noautotitle title enhanced noenhanced font
syn keyword gnuplotKeyword	textcolor box nobox linetype linewidth maxcols
" set label
syn keyword gnuplotKeyword	label left center right rotate norotate by font
syn keyword gnuplotKeyword	front back textcolor point nopoint offset boxed
syn keyword gnuplotKeyword	hypertext
" set linetype
syn keyword gnuplotKeyword	linetype
" set link
syn keyword gnuplotKeyword	link via inverse
" set loadpath
syn keyword gnuplotKeyword	loadpath
" set locale
syn keyword gnuplotKeyword	locale
" set logscale
syn keyword gnuplotKeyword	logscale log
" set macros
syn keyword gnuplotKeyword	macros
" set mapping
syn keyword gnuplotKeyword	mapping cartesian spherical cylindrical
" set mouse
syn keyword gnuplotKeyword	mouse doubleclick nodoubleclick zoomcoordinates
syn keyword gnuplotKeyword	nozoomcoordinates ruler noruler at polardistance
syn keyword gnuplotKeyword	nopolardistance deg tan format clipboardformat
syn keyword gnuplotKeyword	mouseformat labels nolabels zoomjump nozoomjump
syn keyword gnuplotKeyword	verbose noverbose
" set multiplot
syn keyword gnuplotKeyword	multiplot title font layout rowsfirst downwards
syn keyword gnuplotKeyword	downwards upwards scale offset
" set object
syn keyword gnuplotKeyword	object behind fillcolor fc fs rectangle ellipse
syn keyword gnuplotKeyword	circle polygon at center size units xy xx yy to
syn keyword gnuplotKeyword	from
" set offsets
syn keyword gnuplotKeyword	offsets
" set origin
syn keyword gnuplotKeyword	origin
" set output
syn keyword gnuplotKeyword	output
" set parametric
syn keyword gnuplotKeyword	parametric
" show plot
syn keyword gnuplotKeyword	plot add2history
" set pm3d
syn keyword gnuplotKeyword	hidden3d interpolate scansautomatic scansforward
syn keyword gnuplotKeyword	scansbackward depthorder flush begin center end
syn keyword gnuplotKeyword	ftriangles noftriangles clip1in clip4in mean map
syn keyword gnuplotKeyword	corners2color geomean harmean rms median min max
syn keyword gnuplotKeyword	c1 c2 c3 c4 pm3d at nohidden3d implicit explicit
" set palette
syn keyword gnuplotKeyword	palette gray color gamma rgbformulae defined
syn keyword gnuplotKeyword	file functions cubehelix start cycles saturation
syn keyword gnuplotKeyword	model RGB HSV CMY YIQ XYZ positive negative
syn keyword gnuplotKeyword	nops_allcF ps_allcF maxcolors float int gradient
syn keyword gnuplotKeyword	fit2rgbformulae rgbformulae
" set pointintervalbox
syn keyword gnuplotKeyword	pointintervalbox
" set pointsize
syn keyword gnuplotKeyword	pointsize
" set polar
syn keyword gnuplotKeyword	polar
" set print
syn keyword gnuplotKeyword	print append
" set psdir
syn keyword gnuplotKeyword	psdir
" set raxis
syn keyword gnuplotKeyword	raxis rrange rtics
" set samples
syn keyword gnuplotKeyword	samples
" set size
syn keyword gnuplotKeyword	size square nosquare ratio noratio
" set style
syn keyword gnuplotKeyword	style arrow auto back border boxplot
syn keyword gnuplotKeyword	candlesticks circle clustered columnstacked data
syn keyword gnuplotKeyword	default ellipse empty fill[ed] financebars
syn keyword gnuplotKeyword	fraction front function gap graph head[s]
syn keyword gnuplotKeyword	histogram increment labels lc line linecolor
syn keyword gnuplotKeyword	linetype linewidth lt lw noborder nofilled
syn keyword gnuplotKeyword	nohead nooutliers nowedge off opaque outliers
syn keyword gnuplotKeyword	palette pattern pi pointinterval pointsize
syn keyword gnuplotKeyword	pointtype ps pt radius range rectangle
syn keyword gnuplotKeyword	rowstacked screen separation size solid sorted
syn keyword gnuplotKeyword	textbox transparent units unsorted userstyles
syn keyword gnuplotKeyword	wedge x x2 xx xy yy
" set surface
syn keyword gnuplotKeyword	surface implicit explicit
" set table
syn keyword gnuplotKeyword	table
" set terminal (list of terminals)
syn keyword gnuplotKeyword	terminal term push pop aed512 aed767 aifm aqua
syn keyword gnuplotKeyword	be cairo cairolatex canvas cgm context corel
syn keyword gnuplotKeyword	debug dumb dxf dxy800a eepic emf emxvga epscairo
syn keyword gnuplotKeyword	epslatex epson_180dpi excl fig ggi gif gpic hpgl
syn keyword gnuplotKeyword	grass hp2623a hp2648 hp500c hpljii hppj imagen
syn keyword gnuplotKeyword	jpeg kyo latex linux lua mf mif mp next openstep
syn keyword gnuplotKeyword	pbm pdf pdfcairo pm png pngcairo postscript
syn keyword gnuplotKeyword	pslatex pstex pstricks qms qt regis sun svg svga
syn keyword gnuplotKeyword	tek40 tek410x texdraw tgif tikz tkcanvas tpic
syn keyword gnuplotKeyword	vgagl vws vx384 windows wx wxt x11 xlib
" keywords for 'set terminal'
syn keyword gnuplotKeyword	color monochrome dashlength dl eps pdf fontscale
syn keyword gnuplotKeyword	standalone blacktext colortext colourtext header
syn keyword gnuplotKeyword	noheader mono color solid dashed notransparent
syn keyword gnuplotKeyword	crop crop background input rounded butt square
syn keyword gnuplotKeyword	size fsize standalone name jsdir defaultsize
syn keyword gnuplotKeyword	timestamp notimestamp colour mitered beveled
syn keyword gnuplotKeyword	round squared palfuncparam blacktext nec_cp6
syn keyword gnuplotKeyword	mppoints inlineimages externalimages defaultfont
syn keyword gnuplotKeyword	aspect feed nofeed rotate small tiny standalone
syn keyword gnuplotKeyword	oldstyle newstyle level1 leveldefault level3
syn keyword gnuplotKeyword	background nobackground solid clip noclip
syn keyword gnuplotKeyword	colortext colourtext epson_60dpi epson_lx800
syn keyword gnuplotKeyword	okidata starc tandy_60dpi dpu414 nec_cp6 draft
syn keyword gnuplotKeyword	medium large normal landscape portrait big
syn keyword gnuplotKeyword	inches pointsmax textspecial texthidden
syn keyword gnuplotKeyword	thickness depth version acceleration giant
syn keyword gnuplotKeyword	delay loop optimize nooptimize pspoints
syn keyword gnuplotKeyword	FNT9X17 FNT13X25 interlace nointerlace courier
syn keyword gnuplotKeyword	originreset nooriginreset gparrows nogparrows
syn keyword gnuplotKeyword	picenvironment nopicenvironment tightboundingbox
syn keyword gnuplotKeyword	notightboundingbox charsize gppoints nogppoints
syn keyword gnuplotKeyword	fontscale textscale fulldoc nofulldoc standalone
syn keyword gnuplotKeyword	preamble header tikzplot tikzarrows notikzarrows
syn keyword gnuplotKeyword	cmykimages externalimages noexternalimages
syn keyword gnuplotKeyword	polyline vectors magnification psnfss nopsnfss
syn keyword gnuplotKeyword	psnfss-version7 prologues a4paper amstex fname
syn keyword gnuplotKeyword	fsize server persist widelines interlace
syn keyword gnuplotKeyword	truecolor notruecolor defaultplex simplex duplex
syn keyword gnuplotKeyword	nofontfiles adobeglyphnames noadobeglyphnames
syn keyword gnuplotKeyword	nostandalone metric textrigid animate nopspoints
syn keyword gnuplotKeyword	hpdj FNT5X9 roman emtex rgbimages bitmap
syn keyword gnuplotKeyword	nobitmap providevars nointerlace add delete
syn keyword gnuplotKeyword	auxfile hacktext unit raise palfuncparam
syn keyword gnuplotKeyword	noauxfile nohacktext nounit noraise ctrl noctrl
syn keyword gnuplotKeyword	close widget fixed dynamic tek40xx vttek
syn keyword gnuplotKeyword	kc-tek40xx km-tek40xx bitgraph perltk
syn keyword gnuplotKeyword	interactive red green blue interpolate mode
syn keyword gnuplotKeyword	position ctrlq replotonresize position noctrlq
syn keyword gnuplotKeyword	noreplotonresize
" set termoption
syn keyword gnuplotKeyword	termoption font fontscale solid dashed
" set tics
syn keyword gnuplotKeyword	tics add axis border mirror nomirror in out
syn keyword gnuplotKeyword	scale rotate norotate by offset nooffset left
syn keyword gnuplotKeyword	autojustify format font textcolor right center
" deprecated set ticslevel
syn keyword gnuplotError	ticslevel ticscale
" set timestamp
syn keyword gnuplotKeyword	timestamp top bottom offset font
" set timefmt
syn keyword gnuplotKeyword	timefmt
" set title
syn keyword gnuplotKeyword	title offset font textcolor tc
" set ranges
syn keyword gnuplotKeyword	trange urange vrange
" show variables
syn keyword gnuplotKeyword	variables
" show version
syn keyword gnuplotKeyword	version
" set view
syn keyword gnuplotKeyword	view map equal noequal xy xyz
" set x2data
syn keyword gnuplotKeyword	xdata ydata zdata x2data y2data cbdata xdtics
syn keyword gnuplotKeyword	ydtics zdtics x2dtics y2dtics cbdtics xzeroaxis
syn keyword gnuplotKeyword	yzeroaxis zzeroaxis x2zeroaxis y2zeroaxis
syn keyword gnuplotKeyword	cbzeroaxis time geographic
" set label
syn keyword gnuplotKeyword	xlabel ylabel zlabel x2label y2label cblabel
syn keyword gnuplotKeyword	offset font textcolor by parallel
" set range
syn keyword gnuplotKeyword	xrange yrange zrange x2range y2range cbrange
" set xyplane
syn keyword gnuplotKeyword	xyplane
" set zeroaxis
" set zero
syn keyword gnuplotKeyword	zero
" set zeroaxis
syn keyword gnuplotKeyword	zeroaxis

" keywords for 'stats' command
syn keyword gnuplotKeyword	nooutput

" keywords for 'test' command
syn keyword gnuplotKeyword	terminal palette rgb rbg grb gbr brg bgr

" ---- Macros ---- "

syn region gnuplotMacro		start="@" end=" "

" ---- Todos ---- "

syn keyword gnuplotTodo		contained TODO FIXME XXX

" ---- Types: gnuplot commands ---- "

" I set the commands as Types to distinguish them visually from keywords for the
" commands.  This comes at the end of the syntax file because some commands
" are redundant with keywords.  It's probably too much trouble to go and
" create special regions for each redundant keyword/command pair, which means
" that some keywords (e.g. 'p') will be highlighted as commands.

syn keyword gnuplotStatement	cd call clear evaluate exit fit help history
syn keyword gnuplotStatement	load lower pause plot p print pwd quit raise
syn keyword gnuplotStatement	refresh replot rep reread reset save set show
syn keyword gnuplotStatement	shell splot spstats stats system test undefine
syn keyword gnuplotStatement	unset update

" ---- Define the default highlighting ---- "
" Only when an item doesn't have highlighting yet

" ---- Comments ---- "
hi def link gnuplotComment		Comment

" ---- Constants ---- "
hi def link gnuplotString		String
hi def link gnuplotNumber		Number
hi def link gnuplotFloat		Float

" ---- Identifiers ---- "
hi def link gnuplotIdentifier	Identifier

" ---- Statements ---- "
hi def link gnuplotConditional	Conditional
hi def link gnuplotRepeat		Repeat
hi def link gnuplotKeyword		Keyword
hi def link gnuplotOperator	Operator

" ---- PreProcs ---- "
hi def link gnuplotMacro		Macro

" ---- Types ---- "
hi def link gnuplotStatement	Type
hi def link gnuplotFunc		Identifier

" ---- Specials ---- "
hi def link gnuplotSpecial		Special
hi def link gnuplotUnit		Special
hi def link gnuplotExternal	Special

" ---- Errors ---- "
hi def link gnuplotError		Error
hi def link gnuplotOctalError	Error

" ---- Todos ---- "
hi def link gnuplotTodo		Todo


let b:current_syntax = "gnuplot"

" vim: ts=8
PK�j�Z��t��vim80/syntax/pinfo.vimnu�[���" Vim syntax file
" Language:             pinfo(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-17

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn case ignore

syn keyword pinfoTodo             contained FIXME TODO XXX NOTE

syn region  pinfoComment          start='^#' end='$' contains=pinfoTodo,@Spell

syn keyword pinfoOptions          MANUAL CUT-MAN-HEADERS CUT-EMPTY-MAN-LINES
                                  \ RAW-FILENAME APROPOS
                                  \ DONT-HANDLE-WITHOUT-TAG-TABLE HTTPVIEWER
                                  \ FTPVIEWER MAILEDITOR PRINTUTILITY MANLINKS
                                  \ INFOPATH MAN-OPTIONS STDERR-REDIRECTION
                                  \ LONG-MANUAL-LINKS FILTER-0xB7
                                  \ QUIT-CONFIRMATION QUIT-CONFIRM-DEFAULT
                                  \ CLEAR-SCREEN-AT-EXIT CALL-READLINE-HISTORY
                                  \ HIGHLIGHTREGEXP SAFE-USER SAFE-GROUP

syn keyword pinfoColors           COL_NORMAL COL_TOPLINE COL_BOTTOMLINE
                                  \ COL_MENU COL_MENUSELECTED COL_NOTE
                                  \ COL_NOTESELECTED COL_URL COL_URLSELECTED
                                  \ COL_INFOHIGHLIGHT COL_MANUALBOLD
                                  \ COL_MANUALITALIC COL_SEARCHHIGHLIGHT

syn keyword pinfoColorDefault     COLOR_DEFAULT
syn keyword pinfoColorBold        BOLD
syn keyword pinfoColorNoBold      NO_BOLD
syn keyword pinfoColorBlink       BLINK
syn keyword pinfoColorNoBlink     NO_BLINK
syn keyword pinfoColorBlack       COLOR_BLACK
syn keyword pinfoColorRed         COLOR_RED
syn keyword pinfoColorGreen       COLOR_GREEN
syn keyword pinfoColorYellow      COLOR_YELLOW
syn keyword pinfoColorBlue        COLOR_BLUE
syn keyword pinfoColorMagenta     COLOR_MAGENTA
syn keyword pinfoColorCyan        COLOR_CYAN
syn keyword pinfoColorWhite       COLOR_WHITE

syn keyword pinfoKeys             KEY_TOTALSEARCH_1 KEY_TOTALSEARCH_2
                                  \ KEY_SEARCH_1 KEY_SEARCH_2
                                  \ KEY_SEARCH_AGAIN_1 KEY_SEARCH_AGAIN_2
                                  \ KEY_GOTO_1 KEY_GOTO_2 KEY_PREVNODE_1
                                  \ KEY_PREVNODE_2 KEY_NEXTNODE_1
                                  \ KEY_NEXTNODE_2 KEY_UP_1 KEY_UP_2 KEY_END_1
                                  \ KEY_END_2 KEY_PGDN_1 KEY_PGDN_2
                                  \ KEY_PGDN_AUTO_1 KEY_PGDN_AUTO_2 KEY_HOME_1
                                  \ KEY_HOME_2 KEY_PGUP_1 KEY_PGUP_2
                                  \ KEY_PGUP_AUTO_1 KEY_PGUP_AUTO_2 KEY_DOWN_1
                                  \ KEY_DOWN_2 KEY_TOP_1 KEY_TOP_2 KEY_BACK_1
                                  \ KEY_BACK_2 KEY_FOLLOWLINK_1
                                  \ KEY_FOLLOWLINK_2 KEY_REFRESH_1
                                  \ KEY_REFRESH_2 KEY_SHELLFEED_1
                                  \ KEY_SHELLFEED_2 KEY_QUIT_1 KEY_QUIT_2
                                  \ KEY_GOLINE_1 KEY_GOLINE_2 KEY_PRINT_1
                                  \ KEY_PRINT_2 KEY_DIRPAGE_1 KEY_DIRPAGE_2
                                  \ KEY_TWODOWN_1 KEY_TWODOWN_2 KEY_TWOUP_1
                                  \ KEY_TWOUP_2

syn keyword pinfoSpecialKeys      KEY_BREAK KEY_DOWN KEY_UP KEY_LEFT KEY_RIGHT
                                  \ KEY_DOWN KEY_HOME KEY_BACKSPACE KEY_NPAGE
                                  \ KEY_PPAGE KEY_END KEY_IC KEY_DC
syn region  pinfoSpecialKeys      matchgroup=pinfoSpecialKeys transparent
                                  \ start=+KEY_\%(F\|CTRL\|ALT\)(+ end=+)+
syn region  pinfoSimpleKey        start=+'+ skip=+\\'+ end=+'+
                                  \ contains=pinfoSimpleKeyEscape
syn match   pinfoSimpleKeyEscape  +\\[\\nt']+
syn match   pinfoKeycode          '\<\d\+\>'

syn keyword pinfoConstants        TRUE FALSE YES NO

hi def link pinfoTodo             Todo
hi def link pinfoComment          Comment
hi def link pinfoOptions          Keyword
hi def link pinfoColors           Keyword
hi def link pinfoColorDefault     Normal
hi def link pinfoSpecialKeys      SpecialChar
hi def link pinfoSimpleKey        String
hi def link pinfoSimpleKeyEscape  SpecialChar
hi def link pinfoKeycode          Number
hi def link pinfoConstants        Constant
hi def link pinfoKeys             Keyword
hi def      pinfoColorBold        cterm=bold
hi def      pinfoColorNoBold      cterm=none
hi def      pinfoColorBlink       cterm=inverse
hi def      pinfoColorNoBlink     cterm=none
hi def      pinfoColorBlack       ctermfg=Black       guifg=Black
hi def      pinfoColorRed         ctermfg=DarkRed     guifg=DarkRed
hi def      pinfoColorGreen       ctermfg=DarkGreen   guifg=DarkGreen
hi def      pinfoColorYellow      ctermfg=DarkYellow  guifg=DarkYellow
hi def      pinfoColorBlue        ctermfg=DarkBlue    guifg=DarkBlue
hi def      pinfoColorMagenta     ctermfg=DarkMagenta guifg=DarkMagenta
hi def      pinfoColorCyan        ctermfg=DarkCyan    guifg=DarkCyan
hi def      pinfoColorWhite       ctermfg=LightGray   guifg=LightGray

let b:current_syntax = "pinfo"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�����vim80/syntax/tssop.vimnu�[���" Vim syntax file
" Language:     TSS (Thermal Synthesizer System) Optics
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.tssop
" URL:		http://www.naglenet.org/vim/syntax/tssop.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
"
" Begin syntax definitions for tss optics file.
"

" Define keywords for TSS
syn keyword tssopParam  ir_eps ir_trans ir_spec ir_tspec ir_refract
syn keyword tssopParam  sol_eps sol_trans sol_spec sol_tspec sol_refract
syn keyword tssopParam  color

"syn keyword tssopProp   property

syn keyword tssopArgs   white red blue green yellow orange violet pink
syn keyword tssopArgs   turquoise grey black



" Define matches for TSS
syn match  tssopComment       /comment \+= \+".*"/ contains=tssopParam,tssopCommentString
syn match  tssopCommentString /".*"/ contained

syn match  tssopProp	    "property "
syn match  tssopProp	    "edit/optic "
syn match  tssopPropName    "^property \S\+" contains=tssopProp
syn match  tssopPropName    "^edit/optic \S\+$" contains=tssopProp

syn match  tssopInteger     "-\=\<[0-9]*\>"
syn match  tssopFloat       "-\=\<[0-9]*\.[0-9]*"
syn match  tssopScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link tssopParam		Statement
hi def link tssopProp		Identifier
hi def link tssopArgs		Special

hi def link tssopComment		Statement
hi def link tssopCommentString	Comment
hi def link tssopPropName		Typedef

hi def link tssopInteger		Number
hi def link tssopFloat		Float
hi def link tssopScientific	Float



let b:current_syntax = "tssop"

" vim: ts=8 sw=2
PK�j�Z�:��ÞÞvim80/syntax/ruby.vimnu�[���" Vim syntax file
" Language:		Ruby
" Maintainer:		Doug Kearns <dougkearns@gmail.com>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>
" ----------------------------------------------------------------------------
"
" Previous Maintainer:	Mirko Nasato
" Thanks to perl.vim authors, and to Reimer Behrends. :-) (MN)
" ----------------------------------------------------------------------------

" Prelude {{{1
if exists("b:current_syntax")
  finish
endif

" this file uses line continuations
let s:cpo_sav = &cpo
set cpo&vim

" Folding Config {{{1
if has("folding") && exists("ruby_fold")
  setlocal foldmethod=syntax
endif

let s:foldable_groups = split(
      \	  get(
      \	    b:,
      \	    'ruby_foldable_groups',
      \	    get(g:, 'ruby_foldable_groups', 'ALL')
      \	  )
      \	)

function! s:foldable(...) abort
  if index(s:foldable_groups, 'ALL') > -1
    return 1
  endif

  for l:i in a:000
    if index(s:foldable_groups, l:i) > -1
      return 1
    endif
  endfor

  return 0
endfunction " }}}

syn cluster rubyNotTop contains=@rubyExtendedStringSpecial,@rubyRegexpSpecial,@rubyDeclaration,rubyConditional,rubyExceptional,rubyMethodExceptional,rubyTodo

" Whitespace Errors {{{1
if exists("ruby_space_errors")
  if !exists("ruby_no_trail_space_error")
    syn match rubySpaceError display excludenl "\s\+$"
  endif
  if !exists("ruby_no_tab_space_error")
    syn match rubySpaceError display " \+\t"me=e-1
  endif
endif

" Operators {{{1
if exists("ruby_operators")
  syn match  rubyOperator "[~!^|*/%+-]\|&\.\@!\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@1<!>\|\*\*\|\.\.\.\|\.\.\|::"
  syn match  rubyOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!="
  syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@2<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop
endif

" Expression Substitution and Backslash Notation {{{1
syn match rubyStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}"						    contained display
syn match rubyStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
syn match rubyQuoteEscape  "\\[\\']"											    contained display

syn region rubyInterpolation	      matchgroup=rubyInterpolationDelimiter start="#{" end="}" contained contains=ALLBUT,@rubyNotTop
syn match  rubyInterpolation	      "#\%(\$\|@@\=\)\w\+"    display contained contains=rubyInterpolationDelimiter,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable,rubyPredefinedVariable
syn match  rubyInterpolationDelimiter "#\ze\%(\$\|@@\=\)\w\+" display contained
syn match  rubyInterpolation	      "#\$\%(-\w\|\W\)"       display contained contains=rubyInterpolationDelimiter,rubyPredefinedVariable,rubyInvalidVariable
syn match  rubyInterpolationDelimiter "#\ze\$\%(-\w\|\W\)"    display contained
syn region rubyNoInterpolation	      start="\\#{" end="}"	      contained
syn match  rubyNoInterpolation	      "\\#{"		      display contained
syn match  rubyNoInterpolation	      "\\#\%(\$\|@@\=\)\w\+"  display contained
syn match  rubyNoInterpolation	      "\\#\$\W"		      display contained

syn match rubyDelimiterEscape	"\\[(<{\[)>}\]]" transparent display contained contains=NONE

syn region rubyNestedParentheses    start="("  skip="\\\\\|\\)"  matchgroup=rubyString end=")"	transparent contained
syn region rubyNestedCurlyBraces    start="{"  skip="\\\\\|\\}"  matchgroup=rubyString end="}"	transparent contained
syn region rubyNestedAngleBrackets  start="<"  skip="\\\\\|\\>"  matchgroup=rubyString end=">"	transparent contained
syn region rubyNestedSquareBrackets start="\[" skip="\\\\\|\\\]" matchgroup=rubyString end="\]"	transparent contained

" Regular Expression Metacharacters {{{1
" These are mostly Oniguruma ready
syn region rubyRegexpComment	matchgroup=rubyRegexpSpecial   start="(?#"								  skip="\\)"  end=")"  contained
syn region rubyRegexpParens	matchgroup=rubyRegexpSpecial   start="(\(?:\|?<\=[=!]\|?>\|?<[a-z_]\w*>\|?[imx]*-[imx]*:\=\|\%(?#\)\@!\)" skip="\\)"  end=")"  contained transparent contains=@rubyRegexpSpecial
syn region rubyRegexpBrackets	matchgroup=rubyRegexpCharClass start="\[\^\="								  skip="\\\]" end="\]" contained transparent contains=rubyStringEscape,rubyRegexpEscape,rubyRegexpCharClass oneline
syn match  rubyRegexpCharClass	"\\[DdHhSsWw]"	       contained display
syn match  rubyRegexpCharClass	"\[:\^\=\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\):\]" contained
syn match  rubyRegexpEscape	"\\[].*?+^$|\\/(){}[]" contained
syn match  rubyRegexpQuantifier	"[*?+][?+]\="	       contained display
syn match  rubyRegexpQuantifier	"{\d\+\%(,\d*\)\=}?\=" contained display
syn match  rubyRegexpAnchor	"[$^]\|\\[ABbGZz]"     contained display
syn match  rubyRegexpDot	"\."		       contained display
syn match  rubyRegexpSpecial	"|"		       contained display
syn match  rubyRegexpSpecial	"\\[1-9]\d\=\d\@!"     contained display
syn match  rubyRegexpSpecial	"\\k<\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\=>" contained display
syn match  rubyRegexpSpecial	"\\k'\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\='" contained display
syn match  rubyRegexpSpecial	"\\g<\%([a-z_]\w*\|-\=\d\+\)>" contained display
syn match  rubyRegexpSpecial	"\\g'\%([a-z_]\w*\|-\=\d\+\)'" contained display

syn cluster rubyStringSpecial	      contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape
syn cluster rubyExtendedStringSpecial contains=@rubyStringSpecial,rubyNestedParentheses,rubyNestedCurlyBraces,rubyNestedAngleBrackets,rubyNestedSquareBrackets
syn cluster rubyRegexpSpecial	      contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment

" Numbers and ASCII Codes {{{1
syn match rubyASCIICode "\%(\w\|[]})\"'/]\)\@1<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)"
syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*r\=i\=\>"								display
syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)r\=i\=\>"						display
syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*r\=i\=\>"								display
syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*r\=i\=\>"								display
syn match rubyFloat	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*r\=i\=\>"					display
syn match rubyFloat	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)r\=i\=\>"	display

" Identifiers {{{1
syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent
syn match rubyBlockArgument	    "&[_[:lower:]][_[:alnum:]]"		 contains=NONE display transparent

syn match  rubyConstant		"\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!"
syn match  rubyClassVariable	"@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
syn match  rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"	display
syn match  rubyGlobalVariable	"$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)"
syn match  rubySymbol		"[]})\"':]\@1<!:\%(\^\|\~@\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!@\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)"
syn match  rubySymbol		"[]})\"':]\@1<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
syn match  rubySymbol		"[]})\"':]\@1<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"
syn match  rubySymbol		"[]})\"':]\@1<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\="

if s:foldable(':')
  syn region rubySymbol		start="[]})\"':]\@1<!:'"  end="'"  skip="\\\\\|\\'"  contains=rubyQuoteEscape fold
  syn region rubySymbol		start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold
else
  syn region rubySymbol		start="[]})\"':]\@1<!:'"  end="'"  skip="\\\\\|\\'"  contains=rubyQuoteEscape
  syn region rubySymbol		start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial
endif

syn match  rubyCapitalizedMethod	"\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)*\s*(\@="

syn match  rubyBlockParameter	  "\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" contained
syn region rubyBlockParameterList start="\%(\%(\<do\>\|{\)\_s*\)\@32<=|" end="|" oneline display contains=rubyBlockParameter

syn match rubyInvalidVariable	 "$[^ A-Za-z_-]"
syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~]#
syn match rubyPredefinedVariable "$\d\+"										   display
syn match rubyPredefinedVariable "$_\>"											   display
syn match rubyPredefinedVariable "$-[0FIKadilpvw]\>"									   display
syn match rubyPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>"					   display
syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display
syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(ARGF\|ARGV\|ENV\|DATA\|FALSE\|NIL\|STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!"
syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!"

" Normal Regular Expression {{{1
if s:foldable('/')
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
else
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial
endif

" Generalized Regular Expression {{{1
if s:foldable('%')
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{"				end="}[iomxneus]*"   skip="\\\\\|\\}"	 contains=@rubyRegexpSpecial fold
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<"				end=">[iomxneus]*"   skip="\\\\\|\\>"	 contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\["				end="\][iomxneus]*"  skip="\\\\\|\\\]"	 contains=@rubyRegexpSpecial fold
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r("				end=")[iomxneus]*"   skip="\\\\\|\\)"	 contains=@rubyRegexpSpecial fold
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)"				end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
else
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{"				end="}[iomxneus]*"   skip="\\\\\|\\}"	 contains=@rubyRegexpSpecial
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<"				end=">[iomxneus]*"   skip="\\\\\|\\>"	 contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\["				end="\][iomxneus]*"  skip="\\\\\|\\\]"	 contains=@rubyRegexpSpecial
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r("				end=")[iomxneus]*"   skip="\\\\\|\\)"	 contains=@rubyRegexpSpecial
  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)"				end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial
endif

" Normal String {{{1
let s:spell_cluster = exists('ruby_spellcheck_strings') ? ',@Spell' : ''
exe 'syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" ' .
      \ (s:foldable('%') ? 'fold' : '') . ' contains=@rubyStringSpecial' . s:spell_cluster
exe 'syn region rubyString matchgroup=rubyStringDelimiter start="''" end="''" skip="\\\\\|\\''" ' .
      \ (s:foldable('%') ? 'fold' : '') . ' contains=rubyQuoteEscape'	 . s:spell_cluster

" Shell Command Output {{{1
if s:foldable('%')
  syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial fold
else
  syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial
endif

" Generalized Single Quoted String, Symbol and Array of Strings {{{1
if s:foldable('%')
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{"				     end="}"   skip="\\\\\|\\}"	  fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<"				     end=">"   skip="\\\\\|\\>"	  fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\["				     end="\]"  skip="\\\\\|\\\]"  fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]("				     end=")"   skip="\\\\\|\\)"	  fold contains=rubyNestedParentheses,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1" fold
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)"    end="\z1" skip="\\\\\|\\\z1" fold
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{"				     end="}"   skip="\\\\\|\\}"	  fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<"				     end=">"   skip="\\\\\|\\>"	  fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\["				     end="\]"  skip="\\\\\|\\\]"  fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s("				     end=")"   skip="\\\\\|\\)"	  fold contains=rubyNestedParentheses,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1" fold
else
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{"				     end="}"   skip="\\\\\|\\}"	  contains=rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<"				     end=">"   skip="\\\\\|\\>"	  contains=rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\["				     end="\]"  skip="\\\\\|\\\]"  contains=rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]("				     end=")"   skip="\\\\\|\\)"	  contains=rubyNestedParentheses,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1"
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)"    end="\z1" skip="\\\\\|\\\z1"
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{"				     end="}"   skip="\\\\\|\\}"	  contains=rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<"				     end=">"   skip="\\\\\|\\>"	  contains=rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\["				     end="\]"  skip="\\\\\|\\\]"  contains=rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s("				     end=")"   skip="\\\\\|\\)"	  contains=rubyNestedParentheses,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1"
endif

" Generalized Double Quoted String and Array of Strings and Shell Command Output {{{1
" Note: %= is not matched here as the beginning of a double quoted string
if s:foldable('%')
  syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)"	      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={"			      end="}"	skip="\\\\\|\\}"   contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape    fold
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<"			      end=">"	skip="\\\\\|\\>"   contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape  fold
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\["			      end="\]"	skip="\\\\\|\\\]"  contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=("			      end=")"	skip="\\\\\|\\)"   contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape    fold
  syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)"			      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
else
  syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)"	      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={"			      end="}"	skip="\\\\\|\\}"   contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<"			      end=">"	skip="\\\\\|\\>"   contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\["			      end="\]"	skip="\\\\\|\\\]"  contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=("			      end=")"	skip="\\\\\|\\)"   contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape
  syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)"			      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial
endif

" Array of Symbols {{{1
if s:foldable('%')
  " Array of Symbols
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"	fold
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{"				  end="}"   skip="\\\\\|\\}"	fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<"				  end=">"   skip="\\\\\|\\>"	fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\["				  end="\]"  skip="\\\\\|\\\]"	fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i("				  end=")"   skip="\\\\\|\\)"	fold contains=rubyNestedParentheses,rubyDelimiterEscape

  " Array of interpolated Symbols
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"	contains=@rubyStringSpecial fold
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{"				  end="}"   skip="\\\\\|\\}"	contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape    fold
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<"				  end=">"   skip="\\\\\|\\>"	contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape  fold
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\["				  end="\]"  skip="\\\\\|\\\]"	contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I("				  end=")"   skip="\\\\\|\\)"	contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape    fold
else
  " Array of Symbols
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{"				  end="}"   skip="\\\\\|\\}"	contains=rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<"				  end=">"   skip="\\\\\|\\>"	contains=rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\["				  end="\]"  skip="\\\\\|\\\]"	contains=rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i("				  end=")"   skip="\\\\\|\\)"	contains=rubyNestedParentheses,rubyDelimiterEscape

  " Array of interpolated Symbols
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"	contains=@rubyStringSpecial
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{"				  end="}"   skip="\\\\\|\\}"	contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<"				  end=">"   skip="\\\\\|\\>"	contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\["				  end="\]"  skip="\\\\\|\\\]"	contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape
  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I("				  end=")"   skip="\\\\\|\\)"	contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape
endif

" Here Document {{{1
syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+	 end=+$+ oneline contains=ALLBUT,@rubyNotTop
syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs"\%([^"]*\)"+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs'\%([^']*\)'+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs`\%([^`]*\)`+ end=+$+ oneline contains=ALLBUT,@rubyNotTop

if s:foldable('<<')
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc		    fold keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend

  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3    matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart		    fold keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
else
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc		    keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend

  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3    matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart		    keepend
  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend
endif

" eRuby Config {{{1
if exists('main_syntax') && main_syntax == 'eruby'
  let b:ruby_no_expensive = 1
end

" Module, Class, Method and Alias Declarations {{{1
syn match  rubyAliasDeclaration    "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable nextgroup=rubyAliasDeclaration2 skipwhite
syn match  rubyAliasDeclaration2   "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable
syn match  rubyMethodDeclaration   "[^[:space:];#(]\+"	 contained contains=rubyConstant,rubyBoolean,rubyPseudoVariable,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable
syn match  rubyClassDeclaration    "[^[:space:];#<]\+"	 contained contains=rubyConstant,rubyOperator
syn match  rubyModuleDeclaration   "[^[:space:];#<]\+"	 contained contains=rubyConstant,rubyOperator
syn match  rubyFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=rubyMethodDeclaration
syn match  rubyFunction "\%(\s\|^\)\@1<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2
syn match  rubyFunction "\%([[:space:].]\|^\)\@2<=\%(\[\]=\=\|\*\*\|[-+!~]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration

syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter

" Keywords {{{1
" Note: the following keywords have already been defined:
" begin case class def do end for if module unless until while
syn match   rubyControl	       "\<\%(and\|break\|in\|next\|not\|or\|redo\|rescue\|retry\|return\)\>[?!]\@!"
syn match   rubyOperator       "\<defined?" display
syn match   rubyKeyword	       "\<\%(super\|yield\)\>[?!]\@!"
syn match   rubyBoolean	       "\<\%(true\|false\)\>[?!]\@!"
syn match   rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__dir__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise
syn match   rubyBeginEnd       "\<\%(BEGIN\|END\)\>[?!]\@!"

" Expensive Mode {{{1
" Match 'end' with the appropriate opening keyword for syntax based folding
" and special highlighting of module/class/method definitions
if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
  syn match  rubyDefine "\<alias\>"  nextgroup=rubyAliasDeclaration  skipwhite skipnl
  syn match  rubyDefine "\<def\>"    nextgroup=rubyMethodDeclaration skipwhite skipnl
  syn match  rubyDefine "\<undef\>"  nextgroup=rubyFunction	     skipwhite skipnl
  syn match  rubyClass	"\<class\>"  nextgroup=rubyClassDeclaration  skipwhite skipnl
  syn match  rubyModule "\<module\>" nextgroup=rubyModuleDeclaration skipwhite skipnl

  if s:foldable('def')
    syn region rubyMethodBlock start="\<def\>"	matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyMethodBlock start="\<def\>"	matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop
  endif

  if s:foldable('class')
    syn region rubyBlock start="\<class\>"	matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyBlock start="\<class\>"	matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop
  endif

  if s:foldable('module')
    syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop
  endif

  " modifiers
  syn match rubyLineContinuation    "\\$" nextgroup=rubyConditionalModifier,rubyRepeatModifier skipwhite skipnl
  syn match rubyConditionalModifier "\<\%(if\|unless\)\>"
  syn match rubyRepeatModifier	    "\<\%(while\|until\)\>"

  if s:foldable('do')
    syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop
  endif

  " curly bracket block or hash literal
  if s:foldable('{')
    syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop
  endif

  if s:foldable('[')
    syn region rubyArrayLiteral	matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyArrayLiteral	matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop
  endif

  " statements without 'do'
  if s:foldable('begin')
    syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop
  endif

  if s:foldable('case')
    syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop
  endif

  if s:foldable('if')
    syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
  else
    syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop
  endif

  syn match rubyConditional "\<\%(then\|else\|when\)\>[?!]\@!"	contained containedin=rubyCaseExpression
  syn match rubyConditional "\<\%(then\|else\|elsif\)\>[?!]\@!" contained containedin=rubyConditionalExpression

  syn match rubyExceptional	  "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyBlockExpression
  syn match rubyMethodExceptional "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyMethodBlock

  " statements with optional 'do'
  syn region rubyOptionalDoLine   matchgroup=rubyRepeat start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyOptionalDo end="\%(\<do\>\)" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyNotTop

  if s:foldable('for')
    syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold
  else
    syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine
  endif

  if !exists("ruby_minlines")
    let ruby_minlines = 500
  endif
  exec "syn sync minlines=" . ruby_minlines

else
  syn match rubyControl "\<def\>[?!]\@!"    nextgroup=rubyMethodDeclaration skipwhite skipnl
  syn match rubyControl "\<class\>[?!]\@!"  nextgroup=rubyClassDeclaration  skipwhite skipnl
  syn match rubyControl "\<module\>[?!]\@!" nextgroup=rubyModuleDeclaration skipwhite skipnl
  syn match rubyControl "\<\%(case\|begin\|do\|for\|if\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!"
  syn match rubyKeyword "\<\%(alias\|undef\)\>[?!]\@!"
endif

" Special Methods {{{1
if !exists("ruby_no_special_methods")
  syn keyword rubyAccess    public protected private public_class_method private_class_method public_constant private_constant module_function
  " attr is a common variable name
  syn match   rubyAttribute "\%(\%(^\|;\)\s*\)\@<=attr\>\(\s*[.=]\)\@!"
  syn keyword rubyAttribute attr_accessor attr_reader attr_writer
  syn match   rubyControl   "\<\%(exit!\|\%(abort\|at_exit\|exit\|fork\|loop\|trap\)\>[?!]\@!\)"
  syn keyword rubyEval	    eval class_eval instance_eval module_eval
  syn keyword rubyException raise fail catch throw
  " false positive with 'include?'
  syn match   rubyInclude   "\<include\>[?!]\@!"
  syn keyword rubyInclude   autoload extend load prepend refine require require_relative using
  syn keyword rubyKeyword   callcc caller lambda proc
endif

" Comments and Documentation {{{1
syn match   rubySharpBang "\%^#!.*" display
syn keyword rubyTodo	  FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained
syn match   rubyComment   "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell
if !exists("ruby_no_comment_fold") && s:foldable('#')
  syn region rubyMultilineComment start="^\s*#.*\n\%(^\s*#\)\@=" end="^\s*#.*\n\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend
  syn region rubyDocumentation	  start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$" contains=rubySpaceError,rubyTodo,@Spell fold
else
  syn region rubyDocumentation	  start="^=begin\s*$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell
endif

" Keyword Nobbling {{{1
" Note: this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver
syn match rubyKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%([_[:lower:]][_[:alnum:]]*\|\<\%(BEGIN\|END\)\>\)" transparent contains=NONE
syn match rubyKeywordAsMethod "\(defined?\|exit!\)\@!\<[_[:lower:]][_[:alnum:]]*[?!]"			       transparent contains=NONE

" More Symbols {{{1
syn match  rubySymbol		"\%([{(,]\_s*\)\zs\l\w*[!?]\=::\@!"he=e-1
syn match  rubySymbol		"[]})\"':]\@1<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="he=e-1
syn match  rubySymbol		"\%([{(,]\_s*\)\zs[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1
syn match  rubySymbol		"[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="hs=s+1,he=e-1

" __END__ Directive {{{1
if s:foldable('__END__')
  syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold
else
  syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$"
endif

" Default Highlighting {{{1
hi def link rubyClass			rubyDefine
hi def link rubyModule			rubyDefine
hi def link rubyMethodExceptional	rubyDefine
hi def link rubyDefine			Define
hi def link rubyFunction		Function
hi def link rubyConditional		Conditional
hi def link rubyConditionalModifier	rubyConditional
hi def link rubyExceptional		rubyConditional
hi def link rubyRepeat			Repeat
hi def link rubyRepeatModifier		rubyRepeat
hi def link rubyOptionalDo		rubyRepeat
hi def link rubyControl			Statement
hi def link rubyInclude			Include
hi def link rubyInteger			Number
hi def link rubyASCIICode		Character
hi def link rubyFloat			Float
hi def link rubyBoolean			Boolean
hi def link rubyException		Exception
if !exists("ruby_no_identifiers")
  hi def link rubyIdentifier		Identifier
else
  hi def link rubyIdentifier		NONE
endif
hi def link rubyClassVariable		rubyIdentifier
hi def link rubyConstant		Type
hi def link rubyGlobalVariable		rubyIdentifier
hi def link rubyBlockParameter		rubyIdentifier
hi def link rubyInstanceVariable	rubyIdentifier
hi def link rubyPredefinedIdentifier	rubyIdentifier
hi def link rubyPredefinedConstant	rubyPredefinedIdentifier
hi def link rubyPredefinedVariable	rubyPredefinedIdentifier
hi def link rubySymbol			Constant
hi def link rubyKeyword			Keyword
hi def link rubyOperator		Operator
hi def link rubyBeginEnd		Statement
hi def link rubyAccess			Statement
hi def link rubyAttribute		Statement
hi def link rubyEval			Statement
hi def link rubyPseudoVariable		Constant
hi def link rubyCapitalizedMethod	rubyLocalVariableOrMethod

hi def link rubyComment			Comment
hi def link rubyData			Comment
hi def link rubyDataDirective		Delimiter
hi def link rubyDocumentation		Comment
hi def link rubyTodo			Todo

hi def link rubyQuoteEscape		rubyStringEscape
hi def link rubyStringEscape		Special
hi def link rubyInterpolationDelimiter	Delimiter
hi def link rubyNoInterpolation		rubyString
hi def link rubySharpBang		PreProc
hi def link rubyRegexpDelimiter		rubyStringDelimiter
hi def link rubySymbolDelimiter		rubySymbol
hi def link rubyStringDelimiter		Delimiter
hi def link rubyHeredoc			rubyString
hi def link rubyString			String
hi def link rubyRegexpEscape		rubyRegexpSpecial
hi def link rubyRegexpQuantifier	rubyRegexpSpecial
hi def link rubyRegexpAnchor		rubyRegexpSpecial
hi def link rubyRegexpDot		rubyRegexpCharClass
hi def link rubyRegexpCharClass		rubyRegexpSpecial
hi def link rubyRegexpSpecial		Special
hi def link rubyRegexpComment		Comment
hi def link rubyRegexp			rubyString

hi def link rubyInvalidVariable		Error
hi def link rubyError			Error
hi def link rubySpaceError		rubyError

" Postscript {{{1
let b:current_syntax = "ruby"

let &cpo = s:cpo_sav
unlet! s:cpo_sav

" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
PK�j�ZwϜ3ppvim80/syntax/slice.vimnu�[���" Vim syntax file
" Language:	Slice (ZeroC's Specification Language for Ice)
" Maintainer:	Morel Bodin <slice06@nym.hush.com>
" Last Change:	2005 Dec 03

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" The Slice keywords

syn keyword sliceType	    bool byte double float int long short string void
syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
syn keyword sliceConstruct  class enum exception dictionary interface module LocalObject Object sequence struct
syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
syn keyword sliceBoolean    false true

" Include directives
syn region  sliceIncluded    display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match   sliceIncluded   display contained "<[^>]*>"
syn match   sliceInclude    display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded

" Double-include guards
syn region  sliceGuard      start="^#\(define\|ifndef\|endif\)" end="$"

" Strings and characters
syn region sliceString		start=+"+  end=+"+

" Numbers (shamelessly ripped from c.vim, only slightly modified)
"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match   sliceNumbers    display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal
syn match   sliceNumber     display contained "\d\+"
"hex number
syn match   sliceNumber     display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match   sliceOctal      display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero
syn match   sliceOctalZero  display contained "\<0"
syn match   sliceFloat      display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match   sliceFloat      display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match   sliceFloat      display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match   sliceFloat      display contained "\d\+e[-+]\=\d\+[fl]\=\>"
" flag an octal number with wrong digits
syn case match


" Comments
syn region sliceComment    start="/\*"  end="\*/"
syn match sliceComment	"//.*"

syn sync ccomment sliceComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link sliceComment	Comment
hi def link sliceConstruct	Keyword
hi def link sliceType	Type
hi def link sliceString	String
hi def link sliceIncluded	String
hi def link sliceQualifier	Keyword
hi def link sliceInclude	Include
hi def link sliceGuard	PreProc
hi def link sliceBoolean	Boolean
hi def link sliceFloat	Number
hi def link sliceNumber	Number
hi def link sliceOctal	Number
hi def link sliceOctalZero	Special
hi def link sliceNumberError Special


let b:current_syntax = "slice"

" vim: ts=8
PK�j�Z��G���vim80/syntax/protocols.vimnu�[���" Vim syntax file
" Language:             protocols(5) - Internet protocols definition file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   protocolsBegin    display '^'
                              \ nextgroup=protocolsName,protocolsComment

syn match   protocolsName     contained display '[[:graph:]]\+'
                              \ nextgroup=protocolsPort skipwhite

syn match   protocolsPort     contained display '\d\+'
                              \ nextgroup=protocolsAliases,protocolsComment
                              \ skipwhite

syn match   protocolsAliases  contained display '\S\+'
                              \ nextgroup=protocolsAliases,protocolsComment
                              \ skipwhite

syn keyword protocolsTodo     contained TODO FIXME XXX NOTE

syn region  protocolsComment  display oneline start='#' end='$'
                              \ contains=protocolsTodo,@Spell

hi def link protocolsTodo      Todo
hi def link protocolsComment   Comment
hi def link protocolsName      Identifier
hi def link protocolsPort      Number
hi def link protocolsPPDiv     Delimiter
hi def link protocolsPPDivDepr Error
hi def link protocolsProtocol  Type
hi def link protocolsAliases   Macro

let b:current_syntax = "protocols"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zδ�33vim80/syntax/netrw.vimnu�[���" Language   : Netrw Listing Syntax
" Maintainer : Charles E. Campbell
" Last change: Oct 31, 2016
" Version    : 20	NOT RELEASED
" ---------------------------------------------------------------------
if exists("b:current_syntax")
 finish
endif

" ---------------------------------------------------------------------
" Directory List Syntax Highlighting: {{{1
syn cluster NetrwGroup		contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
syn cluster NetrwTreeGroup	contains=netrwDir,netrwSymLink,netrwExe

syn match  netrwPlain		"\(\S\+ \)*\S\+"					contains=netrwLink,@NoSpell
syn match  netrwSpecial		"\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)"		contains=netrwClassify,@NoSpell
syn match  netrwDir		"\.\{1,2}/"						contains=netrwClassify,@NoSpell
syn match  netrwDir		"\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)"			contains=netrwClassify,@NoSpell
syn match  netrwSizeDate	"\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s"	skipwhite	contains=netrwDateSep,@NoSpell	nextgroup=netrwTime
syn match  netrwSymLink		"\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)"  			contains=netrwClassify,@NoSpell
syn match  netrwExe		"\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" 		contains=netrwClassify,@NoSpell
if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
syn match  netrwTreeBar		"^\%([-+|│] \)\+"					contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
else
syn match  netrwTreeBar		"^\%([-+|] \)\+"					contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
endif
syn match  netrwTreeBarSpace	" "					contained

syn match  netrwClassify	"[*=|@/]\ze\%(\s\{2,}\|$\)"		contained
syn match  netrwDateSep		"/"					contained
syn match  netrwTime		"\d\{1,2}:\d\{2}:\d\{2}"		contained	contains=netrwTimeSep
syn match  netrwTimeSep		":"

syn match  netrwComment		'".*\%(\t\|$\)'						contains=@NetrwGroup,@NoSpell
syn match  netrwHide		'^"\s*\(Hid\|Show\)ing:'	skipwhite		contains=@NoSpell		nextgroup=netrwHidePat
syn match  netrwSlash		"/"				contained
syn match  netrwHidePat		"[^,]\+"			contained skipwhite	contains=@NoSpell		nextgroup=netrwHideSep
syn match  netrwHideSep		","				contained skipwhite					nextgroup=netrwHidePat
syn match  netrwSortBy		"Sorted by"			contained transparent skipwhite				nextgroup=netrwList
syn match  netrwSortSeq		"Sort sequence:"		contained transparent skipwhite			 	nextgroup=netrwList
syn match  netrwCopyTgt		"Copy/Move Tgt:"		contained transparent skipwhite				nextgroup=netrwList
syn match  netrwList		".*$"				contained		contains=netrwComma,@NoSpell
syn match  netrwComma		","				contained
syn region netrwQuickHelp	matchgroup=Comment start="Quick Help:\s\+" end="$"	contains=netrwHelpCmd,netrwQHTopic,@NoSpell	keepend contained
syn match  netrwHelpCmd		"\S\+\ze:"			contained skipwhite	contains=@NoSpell		nextgroup=netrwCmdSep
syn match  netrwQHTopic		"([a-zA-Z &]\+)"		contained skipwhite
syn match  netrwCmdSep		":"				contained nextgroup=netrwCmdNote
syn match  netrwCmdNote		".\{-}\ze  "			contained		contains=@NoSpell
syn match  netrwVersion		"(netrw.*)"			contained		contains=@NoSpell
syn match  netrwLink		"-->"				contained skipwhite

" -----------------------------
" Special filetype highlighting {{{1
" -----------------------------
if exists("g:netrw_special_syntax") && g:netrw_special_syntax
 if exists("+suffixes") && &suffixes != ""
  let suflist= join(split(&suffixes,','))
  let suflist= escape(substitute(suflist," ",'\\|','g'),'.~')
  exe "syn match netrwSpecFile '\\(\\S\\+ \\)*\\S*\\(".suflist."\\)\\>'  contains=netrwTreeBar,@NoSpell"
 endif
 syn match netrwBak		"\(\S\+ \)*\S\+\.bak\>"					contains=netrwTreeBar,@NoSpell
 syn match netrwCompress	"\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>"		contains=netrwTreeBar,@NoSpell
 if has("unix")
  syn match netrwCoreDump	"\<core\%(\.\d\+\)\=\>"					contains=netrwTreeBar,@NoSpell
 endif
 syn match netrwLex		"\(\S\+ \)*\S\+\.\%(l\|lex\)\>"				contains=netrwTreeBar,@NoSpell
 syn match netrwYacc		"\(\S\+ \)*\S\+\.y\>"					contains=netrwTreeBar,@NoSpell
 syn match netrwData		"\(\S\+ \)*\S\+\.dat\>"					contains=netrwTreeBar,@NoSpell
 syn match netrwDoc		"\(\S\+ \)*\S\+\.\%(doc\|txt\|pdf\|ps\|docx\)\>"	contains=netrwTreeBar,@NoSpell
 syn match netrwHdr		"\(\S\+ \)*\S\+\.\%(h\|hpp\)\>"				contains=netrwTreeBar,@NoSpell
 syn match netrwLib		"\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>"			contains=netrwTreeBar,@NoSpell
 syn match netrwMakeFile	"\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>"		contains=netrwTreeBar,@NoSpell
 syn match netrwObj		"\(\S\+ \)*\S*\.\%(o\|obj\)\>"				contains=netrwTreeBar,@NoSpell
 syn match netrwPix		"\c\(\S\+ \)*\S*\.\%(bmp\|fits\=\|gif\|je\=pg\|pcx\|ppc\|pgm\|png\|ppm\|psd\|rgb\|tif\|xbm\|xcf\)\>"	contains=netrwTreeBar,@NoSpell
 syn match netrwTags		"\<\(ANmenu\|ANtags\)\>"				contains=netrwTreeBar,@NoSpell
 syn match netrwTags    	"\<tags\>"						contains=netrwTreeBar,@NoSpell
 syn match netrwTilde		"\(\S\+ \)*\S\+\~\*\=\>"				contains=netrwTreeBar,@NoSpell
 syn match netrwTmp		"\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>"		contains=netrwTreeBar,@NoSpell
endif

" ---------------------------------------------------------------------
" Highlighting Links: {{{1
if !exists("did_drchip_netrwlist_syntax")
 let did_drchip_netrwlist_syntax= 1
 hi default link netrwClassify	Function
 hi default link netrwCmdSep	Delimiter
 hi default link netrwComment	Comment
 hi default link netrwDir	Directory
 hi default link netrwHelpCmd	Function
 hi default link netrwQHTopic	Number
 hi default link netrwHidePat	Statement
 hi default link netrwHideSep	netrwComment
 hi default link netrwList	Statement
 hi default link netrwVersion	Identifier
 hi default link netrwSymLink	Question
 hi default link netrwExe	PreProc
 hi default link netrwDateSep	Delimiter

 hi default link netrwTreeBar	Special
 hi default link netrwTimeSep	netrwDateSep
 hi default link netrwComma	netrwComment
 hi default link netrwHide	netrwComment
 hi default link netrwMarkFile	TabLineSel
 hi default link netrwLink	Special

 " special syntax highlighting (see :he g:netrw_special_syntax)
 hi default link netrwCoreDump	WarningMsg
 hi default link netrwData	DiffChange
 hi default link netrwHdr	netrwPlain
 hi default link netrwLex	netrwPlain
 hi default link netrwLib	DiffChange
 hi default link netrwMakefile	DiffChange
 hi default link netrwYacc	netrwPlain
 hi default link netrwPix	Special

 hi default link netrwBak	netrwGray
 hi default link netrwCompress	netrwGray
 hi default link netrwSpecFile	netrwGray
 hi default link netrwObj	netrwGray
 hi default link netrwTags	netrwGray
 hi default link netrwTilde	netrwGray
 hi default link netrwTmp	netrwGray
endif

 " set up netrwGray to be understated (but not Ignore'd or Conceal'd, as those
 " can be hard/impossible to read). Users may override this in a colorscheme by
 " specifying netrwGray highlighting.
 redir => s:netrwgray
  sil hi netrwGray
 redir END
 if s:netrwgray !~ 'guifg'
  if has("gui") && has("gui_running")
   if &bg == "dark"
    exe "hi netrwGray gui=NONE guifg=gray30"
   else
    exe "hi netrwGray gui=NONE guifg=gray70"
   endif
  else
   hi link netrwGray	Folded
  endif
 endif

" Current Syntax: {{{1
let   b:current_syntax = "netrwlist"
" ---------------------------------------------------------------------
" vim: ts=8 fdm=marker
PK�j�Zdz���vim80/syntax/diva.vimnu�[���" Vim syntax file
" Language:		SKILL for Diva
" Maintainer:	Toby Schaffer <jtschaff@eos.ncsu.edu>
" Last Change:	2001 May 09
" Comments:		SKILL is a Lisp-like programming language for use in EDA
"				tools from Cadence Design Systems. It allows you to have
"				a programming environment within the Cadence environment
"				that gives you access to the complete tool set and design
"				database. These items are for Diva verification rules decks.

" Don't remove any old syntax stuff hanging around! We need stuff
" from skill.vim.
if !exists("did_skill_syntax_inits")
  runtime! syntax/skill.vim
endif

syn keyword divaDRCKeywords		area enc notch ovlp sep width
syn keyword divaDRCKeywords		app diffNet length lengtha lengthb
syn keyword divaDRCKeywords		notParallel only_perp opposite parallel
syn keyword divaDRCKeywords		sameNet shielded with_perp
syn keyword divaDRCKeywords		edge edgea edgeb fig figa figb
syn keyword divaDRCKeywords		normalGrow squareGrow message raw
syn keyword divaMeasKeywords	perimeter length bends_all bends_full
syn keyword divaMeasKeywords	bends_part corners_all corners_full
syn keyword divaMeasKeywords	corners_part angles_all angles_full
syn keyword divaMeasKeywords	angles_part fig_count butting coincident
syn keyword divaMeasKeywords	over not_over outside inside enclosing
syn keyword divaMeasKeywords	figure one_net two_net three_net grounded
syn keyword divaMeasKeywords	polarized limit keep ignore
syn match divaCtrlFunctions		"(ivIf\>"hs=s+1
syn match divaCtrlFunctions		"\<ivIf("he=e-1
syn match divaCtrlFunctions		"(switch\>"hs=s+1
syn match divaCtrlFunctions		"\<switch("he=e-1
syn match divaCtrlFunctions		"(and\>"hs=s+1
syn match divaCtrlFunctions		"\<and("he=e-1
syn match divaCtrlFunctions		"(or\>"hs=s+1
syn match divaCtrlFunctions		"\<or("he=e-1
syn match divaCtrlFunctions		"(null\>"hs=s+1
syn match divaCtrlFunctions		"\<null("he=e-1
syn match divaExtFunctions		"(save\(Interconnect\|Property\|Parameter\|Recognition\)\>"hs=s+1
syn match divaExtFunctions		"\<save\(Interconnect\|Property\|Parameter\|Recognition\)("he=e-1
syn match divaExtFunctions		"(\(save\|measure\|attach\|multiLevel\|calculate\)Parasitic\>"hs=s+1
syn match divaExtFunctions		"\<\(save\|measure\|attach\|multiLevel\|calculate\)Parasitic("he=e-1
syn match divaExtFunctions		"(\(calculate\|measure\)Parameter\>"hs=s+1
syn match divaExtFunctions		"\<\(calculate\|measure\)Parameter("he=e-1
syn match divaExtFunctions		"(measure\(Resistance\|Fringe\)\>"hs=s+1
syn match divaExtFunctions		"\<measure\(Resistance\|Fringe\)("he=e-1
syn match divaExtFunctions		"(extract\(Device\|MOS\)\>"hs=s+1
syn match divaExtFunctions		"\<extract\(Device\|MOS\)("he=e-1
syn match divaDRCFunctions		"(checkAllLayers\>"hs=s+1
syn match divaDRCFunctions		"\<checkAllLayers("he=e-1
syn match divaDRCFunctions		"(checkLayer\>"hs=s+1
syn match divaDRCFunctions		"\<checkLayer("he=e-1
syn match divaDRCFunctions		"(drc\>"hs=s+1
syn match divaDRCFunctions		"\<drc("he=e-1
syn match divaDRCFunctions		"(drcAntenna\>"hs=s+1
syn match divaDRCFunctions		"\<drcAntenna("he=e-1
syn match divaFunctions			"(\(drcExtract\|lvs\)Rules\>"hs=s+1
syn match divaFunctions			"\<\(drcExtract\|lvs\)Rules("he=e-1
syn match divaLayerFunctions	"(saveDerived\>"hs=s+1
syn match divaLayerFunctions	"\<saveDerived("he=e-1
syn match divaLayerFunctions	"(copyGraphics\>"hs=s+1
syn match divaLayerFunctions	"\<copyGraphics("he=e-1
syn match divaChkFunctions		"(dubiousData\>"hs=s+1
syn match divaChkFunctions		"\<dubiousData("he=e-1
syn match divaChkFunctions		"(offGrid\>"hs=s+1
syn match divaChkFunctions		"\<offGrid("he=e-1
syn match divaLVSFunctions		"(compareDeviceProperty\>"hs=s+1
syn match divaLVSFunctions		"\<compareDeviceProperty("he=e-1
syn match divaLVSFunctions		"(ignoreTerminal\>"hs=s+1
syn match divaLVSFunctions		"\<ignoreTerminal("he=e-1
syn match divaLVSFunctions		"(parameterMatchType\>"hs=s+1
syn match divaLVSFunctions		"\<parameterMatchType("he=e-1
syn match divaLVSFunctions		"(\(permute\|prune\|remove\)Device\>"hs=s+1
syn match divaLVSFunctions		"\<\(permute\|prune\|remove\)Device("he=e-1
syn match divaGeomFunctions		"(geom\u\a\+\(45\|90\)\=\>"hs=s+1
syn match divaGeomFunctions		"\<geom\u\a\+\(45\|90\)\=("he=e-1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link divaDRCKeywords		Statement
hi def link divaMeasKeywords		Statement
hi def link divaCtrlFunctions	Conditional
hi def link divaExtFunctions		Function
hi def link divaDRCFunctions		Function
hi def link divaFunctions		Function
hi def link divaLayerFunctions	Function
hi def link divaChkFunctions		Function
hi def link divaLVSFunctions		Function
hi def link divaGeomFunctions	Function


let b:current_syntax = "diva"

" vim:ts=4
PK�j�Z�S��vim80/syntax/json.vimnu�[���" Vim syntax file
" Language:	JSON
" Maintainer:	Eli Parra <eli@elzr.com>
" Last Change:	2014 Aug 23
" Version:      0.12

if !exists("main_syntax")
  " quit when a syntax file was already loaded
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'json'
endif

syntax match   jsonNoise           /\%(:\|,\)/

" NOTE that for the concealing to work your conceallevel should be set to 2

" Syntax: Strings
" Separated into a match and region because a region by itself is always greedy
syn match  jsonStringMatch /"\([^"]\|\\\"\)\+"\ze[[:blank:]\r\n]*[,}\]]/ contains=jsonString
if has('conceal')
	syn region  jsonString oneline matchgroup=jsonQuote start=/"/  skip=/\\\\\|\\"/  end=/"/ concealends contains=jsonEscape contained
else
	syn region  jsonString oneline matchgroup=jsonQuote start=/"/  skip=/\\\\\|\\"/  end=/"/ contains=jsonEscape contained
endif

" Syntax: JSON does not allow strings with single quotes, unlike JavaScript.
syn region  jsonStringSQError oneline  start=+'+  skip=+\\\\\|\\"+  end=+'+

" Syntax: JSON Keywords
" Separated into a match and region because a region by itself is always greedy
syn match  jsonKeywordMatch /"\([^"]\|\\\"\)\+"[[:blank:]\r\n]*\:/ contains=jsonKeyword
if has('conceal')
   syn region  jsonKeyword matchgroup=jsonQuote start=/"/  end=/"\ze[[:blank:]\r\n]*\:/ concealends contained
else
   syn region  jsonKeyword matchgroup=jsonQuote start=/"/  end=/"\ze[[:blank:]\r\n]*\:/ contained
endif

" Syntax: Escape sequences
syn match   jsonEscape    "\\["\\/bfnrt]" contained
syn match   jsonEscape    "\\u\x\{4}" contained

" Syntax: Numbers
syn match   jsonNumber    "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>\ze[[:blank:]\r\n]*[,}\]]"

" ERROR WARNINGS **********************************************
if (!exists("g:vim_json_warnings") || g:vim_json_warnings==1)
	" Syntax: Strings should always be enclosed with quotes.
	syn match   jsonNoQuotesError  "\<[[:alpha:]][[:alnum:]]*\>"
	syn match   jsonTripleQuotesError  /"""/

	" Syntax: An integer part of 0 followed by other digits is not allowed.
	syn match   jsonNumError  "-\=\<0\d\.\d*\>"

	" Syntax: Decimals smaller than one should begin with 0 (so .1 should be 0.1).
	syn match   jsonNumError  "\:\@<=[[:blank:]\r\n]*\zs\.\d\+"

	" Syntax: No comments in JSON, see http://stackoverflow.com/questions/244777/can-i-comment-a-json-file
	syn match   jsonCommentError  "//.*"
	syn match   jsonCommentError  "\(/\*\)\|\(\*/\)"

	" Syntax: No semicolons in JSON
	syn match   jsonSemicolonError  ";"

	" Syntax: No trailing comma after the last element of arrays or objects
	syn match   jsonTrailingCommaError  ",\_s*[}\]]"

	" Syntax: Watch out for missing commas between elements
	syn match   jsonMissingCommaError /\("\|\]\|\d\)\zs\_s\+\ze"/
	syn match   jsonMissingCommaError /\(\]\|\}\)\_s\+\ze"/ "arrays/objects as values
	syn match   jsonMissingCommaError /}\_s\+\ze{/ "objects as elements in an array
	syn match   jsonMissingCommaError /\(true\|false\)\_s\+\ze"/ "true/false as value
endif

" ********************************************** END OF ERROR WARNINGS
" Allowances for JSONP: function call at the beginning of the file,
" parenthesis and semicolon at the end.
" Function name validation based on
" http://stackoverflow.com/questions/2008279/validate-a-javascript-function-name/2008444#2008444
syn match  jsonPadding "\%^[[:blank:]\r\n]*[_$[:alpha:]][_$[:alnum:]]*[[:blank:]\r\n]*("
syn match  jsonPadding ");[[:blank:]\r\n]*\%$"

" Syntax: Boolean
syn match  jsonBoolean /\(true\|false\)\(\_s\+\ze"\)\@!/

" Syntax: Null
syn keyword  jsonNull      null

" Syntax: Braces
syn region  jsonFold matchgroup=jsonBraces start="{" end=/}\(\_s\+\ze\("\|{\)\)\@!/ transparent fold
syn region  jsonFold matchgroup=jsonBraces start="\[" end=/]\(\_s\+\ze"\)\@!/ transparent fold

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link jsonPadding         Operator
hi def link jsonString          String
hi def link jsonTest          Label
hi def link jsonEscape          Special
hi def link jsonNumber          Number
hi def link jsonBraces          Delimiter
hi def link jsonNull            Function
hi def link jsonBoolean         Boolean
hi def link jsonKeyword         Label

if (!exists("g:vim_json_warnings") || g:vim_json_warnings==1)
hi def link jsonNumError        Error
hi def link jsonCommentError    Error
hi def link jsonSemicolonError  Error
hi def link jsonTrailingCommaError     Error
hi def link jsonMissingCommaError      Error
hi def link jsonStringSQError        	Error
hi def link jsonNoQuotesError        	Error
hi def link jsonTripleQuotesError     	Error
endif
hi def link jsonQuote           Quote
hi def link jsonNoise           Noise

let b:current_syntax = "json"
if main_syntax == 'json'
  unlet main_syntax
endif

" Vim settings
" vim: ts=8 fdm=marker

" MIT License
" Copyright (c) 2013, Jeroen Ruigrok van der Werven, Eli Parra
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
"THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"See https://twitter.com/elzr/status/294964017926119424
PK�j�Z�1j5"5"vim80/syntax/fasm.vimnu�[���" Vim syntax file
" Language:	Flat Assembler (FASM)
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2012/02/13
" Vim URL:	http://www.vim.org/lang.html
" FASM Home:	http://flatassembler.net/
" FASM Version: 1.56

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword=a-z,A-Z,48-57,.,_
setlocal isident=a-z,A-Z,48-57,.,_
syn case ignore

syn keyword fasmRegister	ah al ax bh bl bp bx ch cl cr0 cr1 cr2 cr3 cr4 cr5 cr6
syn keyword fasmRegister	cr7 cs cx dh di dl dr0 dr1 dr2 dr3 dr4 dr5 dr6 dr7 ds dx
syn keyword fasmRegister	eax ebp ebx ecx edi edx es esi esp fs gs mm0 mm1 mm2 mm3
syn keyword fasmRegister	mm4 mm5 mm6 mm7 si sp ss st st0 st1 st2 st3 st4 st5 st6
syn keyword fasmRegister	st7 tr0 tr1 tr2 tr3 tr4 tr5 tr6 tr7 xmm0 xmm1 xmm2 xmm3
syn keyword fasmRegister	xmm4 xmm5 xmm6 xmm7
syn keyword fasmAddressSizes 	byte dqword dword fword pword qword tword word
syn keyword fasmDataDirectives 	db dd df dp dq dt du dw file rb rd rf rp rq rt rw
syn keyword fasmInstr 	aaa aad aam aas adc add addpd addps addsd addss addsubpd
syn keyword fasmInstr	addsubps and andnpd andnps andpd andps arpl bound bsf bsr
syn keyword fasmInstr	bswap bt btc btr bts call cbw cdq clc cld clflush cli clts
syn keyword fasmInstr	cmc cmova cmovae cmovb cmovbe cmovc cmove cmovg cmovge cmovl
syn keyword fasmInstr	cmovle cmovna cmovnae cmovnb cmovnbe cmovnc cmovne cmovng
syn keyword fasmInstr	cmovnge cmovnl cmovnle cmovno cmovnp cmovns cmovnz cmovo cmovp
syn keyword fasmInstr	cmovpe cmovpo cmovs cmovz cmp cmpeqpd cmpeqps cmpeqsd cmpeqss
syn keyword fasmInstr	cmplepd cmpleps cmplesd cmpless cmpltpd cmpltps cmpltsd cmpltss
syn keyword fasmInstr	cmpneqpd cmpneqps cmpneqsd cmpneqss cmpnlepd cmpnleps cmpnlesd
syn keyword fasmInstr	cmpnless cmpnltpd cmpnltps cmpnltsd cmpnltss cmpordpd cmpordps
syn keyword fasmInstr	cmpordsd cmpordss cmppd cmpps cmps cmpsb cmpsd cmpss cmpsw
syn keyword fasmInstr	cmpunordpd cmpunordps cmpunordsd cmpunordss cmpxchg cmpxchg8b
syn keyword fasmInstr	comisd comiss cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps
syn keyword fasmInstr	cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd cvtps2pi cvtsd2si cvtsd2ss
syn keyword fasmInstr	cvtsi2sd cvtsi2ss cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dq
syn keyword fasmInstr	cvttps2pi cvttsd2si cvttss2si cwd cwde daa das data dec div
syn keyword fasmInstr	divpd divps divsd divss else emms end enter extrn f2xm1 fabs
syn keyword fasmInstr	fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb
syn keyword fasmInstr	fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp
syn keyword fasmInstr	fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree
syn keyword fasmInstr	ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp
syn keyword fasmInstr	finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv
syn keyword fasmInstr	fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi
syn keyword fasmInstr	fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem
syn keyword fasmInstr	fprem1 fptan frndint frstor frstpm fsave fscale fsetpm fsin
syn keyword fasmInstr	fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr
syn keyword fasmInstr	fsubrp ftst fucom fucomi fucomip fucomp fucompp fwait fxam
syn keyword fasmInstr	fxch fxrstor fxsave fxtract fyl2x fyl2xp1 haddpd haddps heap
syn keyword fasmInstr	hlt hsubpd hsubps idiv if imul in inc ins insb insd insw int
syn keyword fasmInstr	int3 into invd invlpg iret iretd iretw ja jae jb jbe jc jcxz
syn keyword fasmInstr	je jecxz jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge
syn keyword fasmInstr	jnl jnle jno jnp jns jnz jo jp jpe jpo js jz lahf lar lddqu
syn keyword fasmInstr	ldmxcsr lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw
syn keyword fasmInstr	load loadall286 loadall386 lock lods lodsb lodsd lodsw loop
syn keyword fasmInstr	loopd loope looped loopew loopne loopned loopnew loopnz loopnzd
syn keyword fasmInstr	loopnzw loopw loopz loopzd loopzw lsl lss ltr maskmovdqu maskmovq
syn keyword fasmInstr	maxpd maxps maxsd maxss mfence minpd minps minsd minss monitor
syn keyword fasmInstr	mov movapd movaps movd movddup movdq2q movdqa movdqu movhlps
syn keyword fasmInstr	movhpd movhps movlhps movlpd movlps movmskpd movmskps movntdq
syn keyword fasmInstr	movnti movntpd movntps movntq movq movq2dq movs movsb movsd
syn keyword fasmInstr	movshdup movsldup movss movsw movsx movupd movups movzx mul
syn keyword fasmInstr	mulpd mulps mulsd mulss mwait neg nop not or org orpd orps
syn keyword fasmInstr	out outs outsb outsd outsw packssdw packsswb packuswb paddb
syn keyword fasmInstr	paddd paddq paddsb paddsw paddusb paddusw paddw pand pandn
syn keyword fasmInstr	pause pavgb pavgusb pavgw pcmpeqb pcmpeqd pcmpeqw pcmpgtb
syn keyword fasmInstr	pcmpgtd pcmpgtw pextrw pf2id pf2iw pfacc pfadd pfcmpeq pfcmpge
syn keyword fasmInstr	pfcmpgt pfmax pfmin pfmul pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2
syn keyword fasmInstr	pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pi2fw pinsrw pmaddwd pmaxsw
syn keyword fasmInstr	pmaxub pminsw pminub pmovmskb pmulhrw pmulhuw pmulhw pmullw
syn keyword fasmInstr	pmuludq pop popa popad popaw popd popf popfd popfw popw por
syn keyword fasmInstr	prefetch prefetchnta prefetcht0 prefetcht1 prefetcht2 prefetchw
syn keyword fasmInstr	psadbw pshufd pshufhw pshuflw pshufw pslld pslldq psllq psllw
syn keyword fasmInstr	psrad psraw psrld psrldq psrlq psrlw psubb psubd psubq psubsb
syn keyword fasmInstr	psubsw psubusb psubusw psubw pswapd punpckhbw punpckhdq punpckhqdq
syn keyword fasmInstr	punpckhwd punpcklbw punpckldq punpcklqdq punpcklwd push pusha
syn keyword fasmInstr	pushad pushaw pushd pushf pushfd pushfw pushw pxor rcl rcpps
syn keyword fasmInstr	rcpss rcr rdmsr rdpmc rdtsc rep repe repne repnz repz ret
syn keyword fasmInstr	retd retf retfd retfw retn retnd retnw retw rol ror rsm rsqrtps
syn keyword fasmInstr	rsqrtss sahf sal salc sar sbb scas scasb scasd scasw seta
syn keyword fasmInstr	setae setalc setb setbe setc sete setg setge setl setle setna
syn keyword fasmInstr	setnae setnb setnbe setnc setne setng setnge setnl setnle
syn keyword fasmInstr	setno setnp setns setnz seto setp setpe setpo sets setz sfence
syn keyword fasmInstr	sgdt shl shld shr shrd shufpd shufps sidt sldt smsw sqrtpd
syn keyword fasmInstr	sqrtps sqrtsd sqrtss stc std sti stmxcsr store stos stosb
syn keyword fasmInstr	stosd stosw str sub subpd subps subsd subss sysenter sysexit
syn keyword fasmInstr	test ucomisd ucomiss ud2 unpckhpd unpckhps unpcklpd unpcklps
syn keyword fasmInstr	verr verw wait wbinvd wrmsr xadd xchg xlat xlatb xor xorpd
syn keyword fasmPreprocess 	common equ fix forward include local macro purge restore
syn keyword fasmPreprocess	reverse struc
syn keyword fasmDirective 	align binary code coff console discardable display dll
syn keyword fasmDirective	elf entry executable export extern far fixups format gui
syn keyword fasmDirective	import label ms mz native near notpageable pe public readable
syn keyword fasmDirective	repeat resource section segment shareable stack times
syn keyword fasmDirective	use16 use32 virtual wdm writable writeable
syn keyword fasmOperator 	as at defined eq eqtype from mod on ptr rva used

syn match	fasmNumericOperator	"[+-/*]"
syn match	fasmLogicalOperator	"[=|&~<>]\|<=\|>=\|<>"
" numbers
syn match	fasmBinaryNumber	"\<[01]\+b\>"
syn match	fasmHexNumber		"\<\d\x*h\>"
syn match	fasmHexNumber		"\<\(0x\|$\)\x*\>"
syn match	fasmFPUNumber		"\<\d\+\(\.\d*\)\=\(e[-+]\=\d*\)\=\>"
syn match	fasmOctalNumber		"\<\(0\o\+o\=\|\o\+o\)\>"
syn match	fasmDecimalNumber	"\<\(0\|[1-9]\d*\)\>"
syn region	fasmComment		start=";" end="$"
syn region	fasmString		start="\"" end="\"\|$"
syn region	fasmString		start="'" end="'\|$"
syn match	fasmSymbol		"[()|\[\]:]"
syn match	fasmSpecial		"[#?%$,]"
syn match	fasmLabel		"^\s*[^; \t]\+:"

hi def link	fasmAddressSizes	type
hi def link	fasmNumericOperator	fasmOperator
hi def link	fasmLogicalOperator	fasmOperator

hi def link	fasmBinaryNumber	fasmNumber
hi def link	fasmHexNumber		fasmNumber
hi def link	fasmFPUNumber		fasmNumber
hi def link	fasmOctalNumber		fasmNumber
hi def link	fasmDecimalNumber	fasmNumber

hi def link	fasmSymbols		fasmRegister
hi def link	fasmPreprocess		fasmDirective

"  link to standard syn groups so the 'colorschemes' work:
hi def link	fasmOperator operator
hi def link	fasmComment  comment
hi def link	fasmDirective	preproc
hi def link	fasmRegister  type
hi def link	fasmNumber   constant
hi def link	fasmSymbol structure
hi def link	fasmString  String
hi def link	fasmSpecial	special
hi def link	fasmInstr keyword
hi def link	fasmLabel label
hi def link	fasmPrefix preproc
let b:current_syntax = "fasm"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 sw=8 :
PK�j�Z_U�B�2�2vim80/syntax/ada.vimnu�[���"----------------------------------------------------------------------------
"  Description: Vim Ada syntax file
"     Language: Ada (2005)
"	   $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
"    Copyright: Copyright (C) 2006 Martin Krischik
"   Maintainer: Martin Krischik
"		David A. Wheeler <dwheeler@dwheeler.com>
"		Simon Bradley <simon.bradley@pitechnology.com>
" Contributors: Preben Randhol.
"      $Author: krischik $
"	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/syntax/ada.vim $
"		http://www.dwheeler.com/vim
"      History: 24.05.2006 MK Unified Headers
"		26.05.2006 MK ' should not be in iskeyword.
"		16.07.2006 MK Ada-Mode as vim-ball
"		02.10.2006 MK Better folding.
"		15.10.2006 MK Bram's suggestion for runtime integration
"		05.11.2006 MK Spell check for comments and strings only
"		05.11.2006 MK Bram suggested to save on spaces
"    Help Page: help ft-ada-syntax
"------------------------------------------------------------------------------
" The formal spec of Ada 2005 (ARM) is the "Ada 2005 Reference Manual".
" For more Ada 2005 info, see http://www.gnuada.org and http://www.adapower.com.
"
" This vim syntax file works on vim 7.0 only and makes use of most of Voim 7.0 
" advanced features.
"------------------------------------------------------------------------------

if exists("b:current_syntax") || version < 700
    finish
endif
let s:keepcpo= &cpo
set cpo&vim

let b:current_syntax = "ada"

" Section: Ada is entirely case-insensitive. {{{1
"
syntax   case ignore

" Section: Highlighting commands {{{1
"
" There are 72 reserved words in total in Ada2005. Some keywords are
" used in more than one way. For example:
" 1. "end" is a general keyword, but "end if" ends a Conditional.
" 2. "then" is a conditional, but "and then" is an operator.
"
for b:Item in g:ada#Keywords
   " Standard Exceptions (including I/O).
   " We'll highlight the standard exceptions, similar to vim's Python mode.
   " It's possible to redefine the standard exceptions as something else,
   " but doing so is very bad practice, so simply highlighting them makes sense.
   if b:Item['kind'] == "x"
      execute "syntax keyword adaException " . b:Item['word']
   endif
   if b:Item['kind'] == "a"
      execute 'syntax match adaAttribute "\V' . b:Item['word'] . '"'
   endif
   " We don't normally highlight types in package Standard
   " (Integer, Character, Float, etc.).  I don't think it looks good
   " with the other type keywords, and many Ada programs define
   " so many of their own types that it looks inconsistent.
   " However, if you want this highlighting, turn on "ada_standard_types".
   " For package Standard's definition, see ARM section A.1.
   if b:Item['kind'] == "t" && exists ("g:ada_standard_types")
      execute "syntax keyword adaBuiltinType " . b:Item['word']
   endif
endfor

" Section: others {{{1
"
syntax keyword  adaLabel	others

" Section: Operatoren {{{1
"
syntax keyword  adaOperator abs mod not rem xor
syntax match    adaOperator "\<and\>"
syntax match    adaOperator "\<and\s\+then\>"
syntax match    adaOperator "\<or\>"
syntax match    adaOperator "\<or\s\+else\>"
syntax match    adaOperator "[-+*/<>&]"
syntax keyword  adaOperator **
syntax match    adaOperator "[/<>]="
syntax keyword  adaOperator =>
syntax match    adaOperator "\.\."
syntax match    adaOperator "="

" Section: <> {{{1
"
" Handle the box, <>, specially:
"
syntax keyword  adaSpecial	    <>

" Section: rainbow color {{{1
"
if exists("g:ada_rainbow_color")
    syntax match	adaSpecial	 "[:;.,]"
    call rainbow_parenthsis#LoadRound ()
    call rainbow_parenthsis#Activate ()
else
    syntax match	adaSpecial	 "[:;().,]"
endif

" Section: := {{{1
"
" We won't map "adaAssignment" by default, but we need to map ":=" to
" something or the "=" inside it will be mislabelled as an operator.
" Note that in Ada, assignment (:=) is not considered an operator.
"
syntax match adaAssignment		":="

" Section: Numbers, including floating point, exponents, and alternate bases. {{{1
"
syntax match   adaNumber		"\<\d[0-9_]*\(\.\d[0-9_]*\)\=\([Ee][+-]\=\d[0-9_]*\)\=\>"
syntax match   adaNumber		"\<\d\d\=#\x[0-9A-Fa-f_]*\(\.\x[0-9A-Fa-f_]*\)\=#\([Ee][+-]\=\d[0-9_]*\)\="

" Section: Identify leading numeric signs {{{1
"
" In "A-5" the "-" is an operator, " but in "A:=-5" the "-" is a sign. This
" handles "A3+-5" (etc.) correctly.  " This assumes that if you put a
" don't put a space after +/- when it's used " as an operator, you won't
" put a space before it either -- which is true " in code I've seen.
"
syntax match adaSign "[[:space:]<>=(,|:;&*/+-][+-]\d"lc=1,hs=s+1,he=e-1,me=e-1

" Section: Labels for the goto statement. {{{1
"
syntax region  adaLabel		start="<<"  end=">>"

" Section: Boolean Constants {{{1
" Boolean Constants.
syntax keyword adaBoolean	true false

" Section: Warn C/C++ {{{1
"
" Warn people who try to use C/C++ notation erroneously:
"
syntax match adaError "//"
syntax match adaError "/\*"
syntax match adaError "=="


" Section: Space Errors {{{1
"
if exists("g:ada_space_errors")
   if !exists("g:ada_no_trail_space_error")
       syntax match   adaSpaceError	 excludenl "\s\+$"
   endif
   if !exists("g:ada_no_tab_space_error")
      syntax match   adaSpaceError	 " \+\t"me=e-1
   endif
   if !exists("g:ada_all_tab_usage")
      syntax match   adaSpecial	 "\t"
   endif
endif

" Section: end {{{1
" Unless special ("end loop", "end if", etc.), "end" marks the end of a
" begin, package, task etc. Assiging it to adaEnd.
syntax match    adaEnd	/\<end\>/

syntax keyword  adaPreproc		 pragma

syntax keyword  adaRepeat	 exit for loop reverse while
syntax match    adaRepeat		   "\<end\s\+loop\>"

syntax keyword  adaStatement accept delay goto raise requeue return
syntax keyword  adaStatement terminate
syntax match    adaStatement  "\<abort\>"

" Section: Handle Ada's record keywords. {{{1
"
" 'record' usually starts a structure, but "with null record;" does not,
" and 'end record;' ends a structure.  The ordering here is critical -
" 'record;' matches a "with null record", so make it a keyword (this can
" match when the 'with' or 'null' is on a previous line).
" We see the "end" in "end record" before the word record, so we match that
" pattern as adaStructure (and it won't match the "record;" pattern).
"
syntax match adaStructure   "\<record\>"	contains=adaRecord
syntax match adaStructure   "\<end\s\+record\>"	contains=adaRecord
syntax match adaKeyword	    "\<record;"me=e-1

" Section: type classes {{{1
"
syntax keyword adaStorageClass	abstract access aliased array at constant delta
syntax keyword adaStorageClass	digits limited of private range tagged
syntax keyword adaStorageClass	interface synchronized
syntax keyword adaTypedef	subtype type

" Section: Conditionals {{{1
"
" "abort" after "then" is a conditional of its own.
"
syntax match    adaConditional  "\<then\>"
syntax match    adaConditional	"\<then\s\+abort\>"
syntax match    adaConditional	"\<else\>"
syntax match    adaConditional	"\<end\s\+if\>"
syntax match    adaConditional	"\<end\s\+case\>"
syntax match    adaConditional	"\<end\s\+select\>"
syntax keyword  adaConditional	if case select
syntax keyword  adaConditional	elsif when

" Section: other keywords {{{1
syntax match    adaKeyword	    "\<is\>" contains=adaRecord
syntax keyword  adaKeyword	    all do exception in new null out
syntax keyword  adaKeyword	    separate until overriding

" Section: begin keywords {{{1
"
" These keywords begin various constructs, and you _might_ want to
" highlight them differently.
"
syntax keyword  adaBegin	begin body declare entry generic
syntax keyword  adaBegin	protected renames task

syntax match    adaBegin	"\<function\>" contains=adaFunction
syntax match    adaBegin	"\<procedure\>" contains=adaProcedure
syntax match    adaBegin	"\<package\>" contains=adaPackage

if exists("ada_with_gnat_project_files")
   syntax keyword adaBegin	project
endif

" Section: with, use {{{1
"
if exists("ada_withuse_ordinary")
   " Don't be fancy. Display "with" and "use" as ordinary keywords in all cases.
   syntax keyword adaKeyword		with use
else
   " Highlight "with" and "use" clauses like C's "#include" when they're used
   " to reference other compilation units; otherwise they're ordinary keywords.
   " If we have vim 6.0 or later, we'll use its advanced pattern-matching
   " capabilities so that we won't match leading spaces.
   syntax match adaKeyword	"\<with\>"
   syntax match adaKeyword	"\<use\>"
   syntax match adaBeginWith	"^\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
   syntax match adaSemiWith	";\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
   syntax match adaInc		"\<with\>" contained contains=NONE
   syntax match adaInc		"\<with\s\+type\>" contained contains=NONE
   syntax match adaInc		"\<use\>" contained contains=NONE
   " Recognize "with null record" as a keyword (even the "record").
   syntax match adaKeyword	"\<with\s\+null\s\+record\>"
   " Consider generic formal parameters of subprograms and packages as keywords.
   syntax match adaKeyword	";\s*\zswith\s\+\(function\|procedure\|package\)\>"
   syntax match adaKeyword	"^\s*\zswith\s\+\(function\|procedure\|package\)\>"
endif

" Section: String and character constants. {{{1
"
syntax region  adaString	contains=@Spell start=+"+ skip=+""+ end=+"+ 
syntax match   adaCharacter "'.'"

" Section: Todo (only highlighted in comments) {{{1
"
syntax keyword adaTodo contained TODO FIXME XXX NOTE

" Section: Comments. {{{1
"
syntax region  adaComment 
    \ oneline 
    \ contains=adaTodo,adaLineError,@Spell
    \ start="--" 
    \ end="$"

" Section: line errors {{{1
"
" Note: Line errors have become quite slow with Vim 7.0
"
if exists("g:ada_line_errors")
    syntax match adaLineError "\(^.\{79}\)\@<=."  contains=ALL containedin=ALL
endif

" Section: syntax folding {{{1
"
"	Syntax folding is very tricky - for now I still suggest to use
"	indent folding
"
if exists("g:ada_folding") && g:ada_folding[0] == 's'
   if stridx (g:ada_folding, 'p') >= 0
      syntax region adaPackage
         \ start="\(\<package\s\+body\>\|\<package\>\)\s*\z(\k*\)"
         \ end="end\s\+\z1\s*;"
         \ keepend extend transparent fold contains=ALL
   endif
   if stridx (g:ada_folding, 'f') >= 0
      syntax region adaProcedure
         \ start="\<procedure\>\s*\z(\k*\)"
         \ end="\<end\>\s\+\z1\s*;"
         \ keepend extend transparent fold contains=ALL
      syntax region adaFunction
         \ start="\<procedure\>\s*\z(\k*\)"
         \ end="end\s\+\z1\s*;"
         \ keepend extend transparent fold contains=ALL
   endif
   if stridx (g:ada_folding, 'f') >= 0
      syntax region adaRecord
         \ start="\<is\s\+record\>"
         \ end="\<end\s\+record\>"
         \ keepend extend transparent fold contains=ALL
   endif
endif

" Section: The default methods for highlighting. Can be overridden later. {{{1
"
highlight def link adaCharacter	    Character
highlight def link adaComment	    Comment
highlight def link adaConditional   Conditional
highlight def link adaKeyword	    Keyword
highlight def link adaLabel	    Label
highlight def link adaNumber	    Number
highlight def link adaSign	    Number
highlight def link adaOperator	    Operator
highlight def link adaPreproc	    PreProc
highlight def link adaRepeat	    Repeat
highlight def link adaSpecial	    Special
highlight def link adaStatement	    Statement
highlight def link adaString	    String
highlight def link adaStructure	    Structure
highlight def link adaTodo	    Todo
highlight def link adaType	    Type
highlight def link adaTypedef	    Typedef
highlight def link adaStorageClass  StorageClass
highlight def link adaBoolean	    Boolean
highlight def link adaException	    Exception
highlight def link adaAttribute	    Tag
highlight def link adaInc	    Include
highlight def link adaError	    Error
highlight def link adaSpaceError    Error
highlight def link adaLineError	    Error
highlight def link adaBuiltinType   Type
highlight def link adaAssignment    Special

" Subsection: Begin, End {{{2
"
if exists ("ada_begin_preproc")
   " This is the old default display:
   highlight def link adaBegin   PreProc
   highlight def link adaEnd     PreProc
else
   " This is the new default display:
   highlight def link adaBegin   Keyword
   highlight def link adaEnd     Keyword
endif



" Section: sync {{{1
"
" We don't need to look backwards to highlight correctly;
" this speeds things up greatly.
syntax sync minlines=1 maxlines=1

let &cpo = s:keepcpo
unlet s:keepcpo

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006	Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
"vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
"vim: foldmethod=marker
PK�j�Z��T||vim80/syntax/libao.vimnu�[���" Vim syntax file
" Language:             libao.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword libaoTodo     contained TODO FIXME XXX NOTE

syn region  libaoComment  display oneline start='^\s*#' end='$'
                          \ contains=libaoTodo,@Spell

syn keyword libaoKeyword  default_driver

hi def link libaoTodo     Todo
hi def link libaoComment  Comment
hi def link libaoKeyword  Keyword

let b:current_syntax = "libao"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z#wTɣɣvim80/syntax/sqlanywhere.vimnu�[���" Vim syntax file
" Language:    SQL, Adaptive Server Anywhere
" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2013 May 13
" Version:     16.0.0

" Description: Updated to Adaptive Server Anywhere 16.0.0
"              Updated to Adaptive Server Anywhere 12.0.1 (including spatial data)
"              Updated to Adaptive Server Anywhere 11.0.1
"              Updated to Adaptive Server Anywhere 10.0.1
"              Updated to Adaptive Server Anywhere  9.0.2
"              Updated to Adaptive Server Anywhere  9.0.1
"              Updated to Adaptive Server Anywhere  9.0.0
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

syn case ignore

" The SQL reserved words, defined as keywords.

syn keyword sqlSpecial  false null true

" common functions
syn keyword sqlFunction  abs argn avg bintohex bintostr
syn keyword sqlFunction  byte_length byte_substr char_length
syn keyword sqlFunction  compare count count_big datalength date
syn keyword sqlFunction  date_format dateadd datediff datename
syn keyword sqlFunction  datepart day dayname days debug_eng
syn keyword sqlFunction  dense_rank density dialect difference
syn keyword sqlFunction  dow estimate estimate_source evaluate
syn keyword sqlFunction  experience_estimate explanation
syn keyword sqlFunction  get_identity graphical_plan
syn keyword sqlFunction  graphical_ulplan greater grouping
syn keyword sqlFunction  hextobin hextoint hour hours identity
syn keyword sqlFunction  ifnull index_estimate inttohex isdate
syn keyword sqlFunction  isencrypted isnull isnumeric
syn keyword sqlFunction  lang_message length lesser like_end
syn keyword sqlFunction  like_start list long_ulplan lookup max
syn keyword sqlFunction  min minute minutes month monthname
syn keyword sqlFunction  months newid now nullif number
syn keyword sqlFunction  percent_rank plan quarter rand rank
syn keyword sqlFunction  regexp_compile regexp_compile_patindex
syn keyword sqlFunction  remainder rewrite rowid second seconds
syn keyword sqlFunction  short_ulplan similar sortkey soundex
syn keyword sqlFunction  stddev stack_trace str string strtobin strtouuid stuff
syn keyword sqlFunction  subpartition substr substring sum switchoffset sysdatetimeoffset
syn keyword sqlFunction  textptr todate todatetimeoffset today totimestamp traceback transactsql
syn keyword sqlFunction  ts_index_statistics ts_table_statistics
syn keyword sqlFunction  tsequal ulplan user_id user_name utc_now
syn keyword sqlFunction  uuidtostr varexists variance watcomsql
syn keyword sqlFunction  weeks wsql_state year years ymd

" 9.0.1 functions
syn keyword sqlFunction	 acos asin atan atn2 cast ceiling convert cos cot
syn keyword sqlFunction	 char_length coalesce dateformat datetime degrees exp
syn keyword sqlFunction	 floor getdate insertstr
syn keyword sqlFunction	 log log10 lower mod pi power
syn keyword sqlFunction	 property radians replicate round sign sin
syn keyword sqlFunction	 sqldialect tan truncate truncnum
syn keyword sqlFunction	 base64_encode base64_decode
syn keyword sqlFunction	 hash compress decompress encrypt decrypt

" 11.0.1 functions
syn keyword sqlFunction	 connection_extended_property text_handle_vector_match
syn keyword sqlFunction	 read_client_file write_client_file

" 12.0.1 functions
syn keyword sqlFunction	 http_response_header

" string functions
syn keyword sqlFunction	 ascii char left ltrim repeat
syn keyword sqlFunction	 space right rtrim trim lcase ucase
syn keyword sqlFunction	 locate charindex patindex replace
syn keyword sqlFunction	 errormsg csconvert

" property functions
syn keyword sqlFunction	 db_id db_name property_name
syn keyword sqlFunction	 property_description property_number
syn keyword sqlFunction	 next_connection next_database property
syn keyword sqlFunction	 connection_property db_property db_extended_property
syn keyword sqlFunction	 event_parmeter event_condition event_condition_name

" sa_ procedures
syn keyword sqlFunction	 sa_add_index_consultant_analysis
syn keyword sqlFunction	 sa_add_workload_query
syn keyword sqlFunction  sa_app_deregister
syn keyword sqlFunction  sa_app_get_infoStr
syn keyword sqlFunction  sa_app_get_status
syn keyword sqlFunction  sa_app_register
syn keyword sqlFunction  sa_app_registration_unlock
syn keyword sqlFunction  sa_app_set_infoStr
syn keyword sqlFunction  sa_audit_string
syn keyword sqlFunction  sa_check_commit
syn keyword sqlFunction  sa_checkpoint_execute
syn keyword sqlFunction  sa_conn_activity
syn keyword sqlFunction  sa_conn_compression_info
syn keyword sqlFunction  sa_conn_deregister
syn keyword sqlFunction  sa_conn_info
syn keyword sqlFunction  sa_conn_properties
syn keyword sqlFunction  sa_conn_properties_by_conn
syn keyword sqlFunction  sa_conn_properties_by_name
syn keyword sqlFunction  sa_conn_register
syn keyword sqlFunction  sa_conn_set_status
syn keyword sqlFunction  sa_create_analysis_from_query
syn keyword sqlFunction  sa_db_info
syn keyword sqlFunction  sa_db_properties
syn keyword sqlFunction  sa_disable_auditing_type
syn keyword sqlFunction  sa_disable_index
syn keyword sqlFunction  sa_disk_free_space
syn keyword sqlFunction  sa_enable_auditing_type
syn keyword sqlFunction  sa_enable_index
syn keyword sqlFunction  sa_end_forward_to
syn keyword sqlFunction  sa_eng_properties
syn keyword sqlFunction  sa_event_schedules
syn keyword sqlFunction  sa_exec_script
syn keyword sqlFunction  sa_flush_cache
syn keyword sqlFunction  sa_flush_statistics
syn keyword sqlFunction  sa_forward_to
syn keyword sqlFunction  sa_get_dtt
syn keyword sqlFunction  sa_get_histogram
syn keyword sqlFunction  sa_get_request_profile
syn keyword sqlFunction  sa_get_request_profile_sub
syn keyword sqlFunction  sa_get_request_times
syn keyword sqlFunction  sa_get_server_messages
syn keyword sqlFunction  sa_get_simulated_scale_factors
syn keyword sqlFunction  sa_get_workload_capture_status
syn keyword sqlFunction  sa_index_density
syn keyword sqlFunction  sa_index_levels
syn keyword sqlFunction  sa_index_statistics
syn keyword sqlFunction  sa_internal_alter_index_ability
syn keyword sqlFunction  sa_internal_create_analysis_from_query
syn keyword sqlFunction  sa_internal_disk_free_space
syn keyword sqlFunction  sa_internal_get_dtt
syn keyword sqlFunction  sa_internal_get_histogram
syn keyword sqlFunction  sa_internal_get_request_times
syn keyword sqlFunction  sa_internal_get_simulated_scale_factors
syn keyword sqlFunction  sa_internal_get_workload_capture_status
syn keyword sqlFunction  sa_internal_index_density
syn keyword sqlFunction  sa_internal_index_levels
syn keyword sqlFunction  sa_internal_index_statistics
syn keyword sqlFunction  sa_internal_java_loaded_classes
syn keyword sqlFunction  sa_internal_locks
syn keyword sqlFunction  sa_internal_pause_workload_capture
syn keyword sqlFunction  sa_internal_procedure_profile
syn keyword sqlFunction  sa_internal_procedure_profile_summary
syn keyword sqlFunction  sa_internal_read_backup_history
syn keyword sqlFunction  sa_internal_recommend_indexes
syn keyword sqlFunction  sa_internal_reset_identity
syn keyword sqlFunction  sa_internal_resume_workload_capture
syn keyword sqlFunction  sa_internal_start_workload_capture
syn keyword sqlFunction  sa_internal_stop_index_consultant
syn keyword sqlFunction  sa_internal_stop_workload_capture
syn keyword sqlFunction  sa_internal_table_fragmentation
syn keyword sqlFunction  sa_internal_table_page_usage
syn keyword sqlFunction  sa_internal_table_stats
syn keyword sqlFunction  sa_internal_virtual_sysindex
syn keyword sqlFunction  sa_internal_virtual_sysixcol
syn keyword sqlFunction  sa_java_loaded_classes
syn keyword sqlFunction  sa_jdk_version
syn keyword sqlFunction  sa_locks
syn keyword sqlFunction  sa_make_object
syn keyword sqlFunction  sa_pause_workload_capture
syn keyword sqlFunction  sa_proc_debug_attach_to_connection
syn keyword sqlFunction  sa_proc_debug_connect
syn keyword sqlFunction  sa_proc_debug_detach_from_connection
syn keyword sqlFunction  sa_proc_debug_disconnect
syn keyword sqlFunction  sa_proc_debug_get_connection_name
syn keyword sqlFunction  sa_proc_debug_release_connection
syn keyword sqlFunction  sa_proc_debug_request
syn keyword sqlFunction  sa_proc_debug_version
syn keyword sqlFunction  sa_proc_debug_wait_for_connection
syn keyword sqlFunction  sa_procedure_profile
syn keyword sqlFunction  sa_procedure_profile_summary
syn keyword sqlFunction  sa_read_backup_history
syn keyword sqlFunction  sa_recommend_indexes
syn keyword sqlFunction  sa_recompile_views
syn keyword sqlFunction  sa_remove_index_consultant_analysis
syn keyword sqlFunction  sa_remove_index_consultant_workload
syn keyword sqlFunction  sa_reset_identity
syn keyword sqlFunction  sa_resume_workload_capture
syn keyword sqlFunction  sa_server_option
syn keyword sqlFunction  sa_set_simulated_scale_factor
syn keyword sqlFunction  sa_setremoteuser
syn keyword sqlFunction  sa_setsubscription
syn keyword sqlFunction  sa_start_recording_commits
syn keyword sqlFunction  sa_start_workload_capture
syn keyword sqlFunction  sa_statement_text
syn keyword sqlFunction  sa_stop_index_consultant
syn keyword sqlFunction  sa_stop_recording_commits
syn keyword sqlFunction  sa_stop_workload_capture
syn keyword sqlFunction  sa_sync
syn keyword sqlFunction  sa_sync_sub
syn keyword sqlFunction  sa_table_fragmentation
syn keyword sqlFunction  sa_table_page_usage
syn keyword sqlFunction  sa_table_stats
syn keyword sqlFunction  sa_update_index_consultant_workload
syn keyword sqlFunction  sa_validate
syn keyword sqlFunction  sa_virtual_sysindex
syn keyword sqlFunction  sa_virtual_sysixcol

" sp_ procedures
syn keyword sqlFunction  sp_addalias
syn keyword sqlFunction  sp_addauditrecord
syn keyword sqlFunction  sp_adddumpdevice
syn keyword sqlFunction  sp_addgroup
syn keyword sqlFunction  sp_addlanguage
syn keyword sqlFunction  sp_addlogin
syn keyword sqlFunction  sp_addmessage
syn keyword sqlFunction  sp_addremotelogin
syn keyword sqlFunction  sp_addsegment
syn keyword sqlFunction  sp_addserver
syn keyword sqlFunction  sp_addthreshold
syn keyword sqlFunction  sp_addtype
syn keyword sqlFunction  sp_adduser
syn keyword sqlFunction  sp_auditdatabase
syn keyword sqlFunction  sp_auditlogin
syn keyword sqlFunction  sp_auditobject
syn keyword sqlFunction  sp_auditoption
syn keyword sqlFunction  sp_auditsproc
syn keyword sqlFunction  sp_bindefault
syn keyword sqlFunction  sp_bindmsg
syn keyword sqlFunction  sp_bindrule
syn keyword sqlFunction  sp_changedbowner
syn keyword sqlFunction  sp_changegroup
syn keyword sqlFunction  sp_checknames
syn keyword sqlFunction  sp_checkperms
syn keyword sqlFunction  sp_checkreswords
syn keyword sqlFunction  sp_clearstats
syn keyword sqlFunction  sp_column_privileges
syn keyword sqlFunction  sp_columns
syn keyword sqlFunction  sp_commonkey
syn keyword sqlFunction  sp_configure
syn keyword sqlFunction  sp_cursorinfo
syn keyword sqlFunction  sp_databases
syn keyword sqlFunction  sp_datatype_info
syn keyword sqlFunction  sp_dboption
syn keyword sqlFunction  sp_dbremap
syn keyword sqlFunction  sp_depends
syn keyword sqlFunction  sp_diskdefault
syn keyword sqlFunction  sp_displaylogin
syn keyword sqlFunction  sp_dropalias
syn keyword sqlFunction  sp_dropdevice
syn keyword sqlFunction  sp_dropgroup
syn keyword sqlFunction  sp_dropkey
syn keyword sqlFunction  sp_droplanguage
syn keyword sqlFunction  sp_droplogin
syn keyword sqlFunction  sp_dropmessage
syn keyword sqlFunction  sp_dropremotelogin
syn keyword sqlFunction  sp_dropsegment
syn keyword sqlFunction  sp_dropserver
syn keyword sqlFunction  sp_dropthreshold
syn keyword sqlFunction  sp_droptype
syn keyword sqlFunction  sp_dropuser
syn keyword sqlFunction  sp_estspace
syn keyword sqlFunction  sp_extendsegment
syn keyword sqlFunction  sp_fkeys
syn keyword sqlFunction  sp_foreignkey
syn keyword sqlFunction  sp_getmessage
syn keyword sqlFunction  sp_help
syn keyword sqlFunction  sp_helpconstraint
syn keyword sqlFunction  sp_helpdb
syn keyword sqlFunction  sp_helpdevice
syn keyword sqlFunction  sp_helpgroup
syn keyword sqlFunction  sp_helpindex
syn keyword sqlFunction  sp_helpjoins
syn keyword sqlFunction  sp_helpkey
syn keyword sqlFunction  sp_helplanguage
syn keyword sqlFunction  sp_helplog
syn keyword sqlFunction  sp_helpprotect
syn keyword sqlFunction  sp_helpremotelogin
syn keyword sqlFunction  sp_helpsegment
syn keyword sqlFunction  sp_helpserver
syn keyword sqlFunction  sp_helpsort
syn keyword sqlFunction  sp_helptext
syn keyword sqlFunction  sp_helpthreshold
syn keyword sqlFunction  sp_helpuser
syn keyword sqlFunction  sp_indsuspect
syn keyword sqlFunction  sp_lock
syn keyword sqlFunction  sp_locklogin
syn keyword sqlFunction  sp_logdevice
syn keyword sqlFunction  sp_login_environment
syn keyword sqlFunction  sp_modifylogin
syn keyword sqlFunction  sp_modifythreshold
syn keyword sqlFunction  sp_monitor
syn keyword sqlFunction  sp_password
syn keyword sqlFunction  sp_pkeys
syn keyword sqlFunction  sp_placeobject
syn keyword sqlFunction  sp_primarykey
syn keyword sqlFunction  sp_procxmode
syn keyword sqlFunction  sp_recompile
syn keyword sqlFunction  sp_remap
syn keyword sqlFunction  sp_remote_columns
syn keyword sqlFunction  sp_remote_exported_keys
syn keyword sqlFunction  sp_remote_imported_keys
syn keyword sqlFunction  sp_remote_pcols
syn keyword sqlFunction  sp_remote_primary_keys
syn keyword sqlFunction  sp_remote_procedures
syn keyword sqlFunction  sp_remote_tables
syn keyword sqlFunction  sp_remoteoption
syn keyword sqlFunction  sp_rename
syn keyword sqlFunction  sp_renamedb
syn keyword sqlFunction  sp_reportstats
syn keyword sqlFunction  sp_reset_tsql_environment
syn keyword sqlFunction  sp_role
syn keyword sqlFunction  sp_server_info
syn keyword sqlFunction  sp_servercaps
syn keyword sqlFunction  sp_serverinfo
syn keyword sqlFunction  sp_serveroption
syn keyword sqlFunction  sp_setlangalias
syn keyword sqlFunction  sp_setreplicate
syn keyword sqlFunction  sp_setrepproc
syn keyword sqlFunction  sp_setreptable
syn keyword sqlFunction  sp_spaceused
syn keyword sqlFunction  sp_special_columns
syn keyword sqlFunction  sp_sproc_columns
syn keyword sqlFunction  sp_statistics
syn keyword sqlFunction  sp_stored_procedures
syn keyword sqlFunction  sp_syntax
syn keyword sqlFunction  sp_table_privileges
syn keyword sqlFunction  sp_tables
syn keyword sqlFunction  sp_tsql_environment
syn keyword sqlFunction  sp_tsql_feature_not_supported
syn keyword sqlFunction  sp_unbindefault
syn keyword sqlFunction  sp_unbindmsg
syn keyword sqlFunction  sp_unbindrule
syn keyword sqlFunction  sp_volchanged
syn keyword sqlFunction  sp_who
syn keyword sqlFunction  xp_scanf
syn keyword sqlFunction  xp_sprintf

" server functions
syn keyword sqlFunction  col_length
syn keyword sqlFunction  col_name
syn keyword sqlFunction  index_col
syn keyword sqlFunction  object_id
syn keyword sqlFunction  object_name
syn keyword sqlFunction  proc_role
syn keyword sqlFunction  show_role
syn keyword sqlFunction  xp_cmdshell
syn keyword sqlFunction  xp_msver
syn keyword sqlFunction  xp_read_file
syn keyword sqlFunction  xp_real_cmdshell
syn keyword sqlFunction  xp_real_read_file
syn keyword sqlFunction  xp_real_sendmail
syn keyword sqlFunction  xp_real_startmail
syn keyword sqlFunction  xp_real_startsmtp
syn keyword sqlFunction  xp_real_stopmail
syn keyword sqlFunction  xp_real_stopsmtp
syn keyword sqlFunction  xp_real_write_file
syn keyword sqlFunction  xp_scanf
syn keyword sqlFunction  xp_sendmail
syn keyword sqlFunction  xp_sprintf
syn keyword sqlFunction  xp_startmail
syn keyword sqlFunction  xp_startsmtp
syn keyword sqlFunction  xp_stopmail
syn keyword sqlFunction  xp_stopsmtp
syn keyword sqlFunction  xp_write_file

" http functions
syn keyword sqlFunction	 http_header http_variable
syn keyword sqlFunction	 next_http_header next_http_response_header next_http_variable
syn keyword sqlFunction	 sa_set_http_header sa_set_http_option
syn keyword sqlFunction	 sa_http_variable_info sa_http_header_info

" http functions 9.0.1
syn keyword sqlFunction	 http_encode http_decode
syn keyword sqlFunction	 html_encode html_decode

" XML function support
syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
syn keyword sqlFunction	 xmlattributes

" Spatial Compatibility Functions
syn keyword sqlFunction  ST_BdMPolyFromText
syn keyword sqlFunction  ST_BdMPolyFromWKB
syn keyword sqlFunction  ST_BdPolyFromText
syn keyword sqlFunction  ST_BdPolyFromWKB
syn keyword sqlFunction  ST_CPolyFromText
syn keyword sqlFunction  ST_CPolyFromWKB
syn keyword sqlFunction  ST_CircularFromTxt
syn keyword sqlFunction  ST_CircularFromWKB
syn keyword sqlFunction  ST_CompoundFromTxt
syn keyword sqlFunction  ST_CompoundFromWKB
syn keyword sqlFunction  ST_GeomCollFromTxt
syn keyword sqlFunction  ST_GeomCollFromWKB
syn keyword sqlFunction  ST_GeomFromText
syn keyword sqlFunction  ST_GeomFromWKB
syn keyword sqlFunction  ST_LineFromText
syn keyword sqlFunction  ST_LineFromWKB
syn keyword sqlFunction  ST_MCurveFromText
syn keyword sqlFunction  ST_MCurveFromWKB
syn keyword sqlFunction  ST_MLineFromText
syn keyword sqlFunction  ST_MLineFromWKB
syn keyword sqlFunction  ST_MPointFromText
syn keyword sqlFunction  ST_MPointFromWKB
syn keyword sqlFunction  ST_MPolyFromText
syn keyword sqlFunction  ST_MPolyFromWKB
syn keyword sqlFunction  ST_MSurfaceFromTxt
syn keyword sqlFunction  ST_MSurfaceFromWKB
syn keyword sqlFunction  ST_OrderingEquals
syn keyword sqlFunction  ST_PointFromText
syn keyword sqlFunction  ST_PointFromWKB
syn keyword sqlFunction  ST_PolyFromText
syn keyword sqlFunction  ST_PolyFromWKB
" Spatial Structural Methods
syn keyword sqlFunction  ST_CoordDim
syn keyword sqlFunction  ST_CurveN
syn keyword sqlFunction  ST_Dimension
syn keyword sqlFunction  ST_EndPoint
syn keyword sqlFunction  ST_ExteriorRing
syn keyword sqlFunction  ST_GeometryN
syn keyword sqlFunction  ST_GeometryType
syn keyword sqlFunction  ST_InteriorRingN
syn keyword sqlFunction  ST_Is3D
syn keyword sqlFunction  ST_IsClosed
syn keyword sqlFunction  ST_IsEmpty
syn keyword sqlFunction  ST_IsMeasured
syn keyword sqlFunction  ST_IsRing
syn keyword sqlFunction  ST_IsSimple
syn keyword sqlFunction  ST_IsValid
syn keyword sqlFunction  ST_NumCurves
syn keyword sqlFunction  ST_NumGeometries
syn keyword sqlFunction  ST_NumInteriorRing
syn keyword sqlFunction  ST_NumPoints
syn keyword sqlFunction  ST_PointN
syn keyword sqlFunction  ST_StartPoint
"Spatial Computation
syn keyword sqlFunction  ST_Length
syn keyword sqlFunction  ST_Area
syn keyword sqlFunction  ST_Centroid
syn keyword sqlFunction  ST_Area
syn keyword sqlFunction  ST_Centroid
syn keyword sqlFunction  ST_IsWorld
syn keyword sqlFunction  ST_Perimeter
syn keyword sqlFunction  ST_PointOnSurface
syn keyword sqlFunction  ST_Distance
" Spatial Input/Output
syn keyword sqlFunction  ST_AsBinary
syn keyword sqlFunction  ST_AsGML
syn keyword sqlFunction  ST_AsGeoJSON
syn keyword sqlFunction  ST_AsSVG
syn keyword sqlFunction  ST_AsSVGAggr
syn keyword sqlFunction  ST_AsText
syn keyword sqlFunction  ST_AsWKB
syn keyword sqlFunction  ST_AsWKT
syn keyword sqlFunction  ST_AsXML
syn keyword sqlFunction  ST_GeomFromBinary
syn keyword sqlFunction  ST_GeomFromShape
syn keyword sqlFunction  ST_GeomFromText
syn keyword sqlFunction  ST_GeomFromWKB
syn keyword sqlFunction  ST_GeomFromWKT
syn keyword sqlFunction  ST_GeomFromXML
" Spatial Cast Methods
syn keyword sqlFunction  ST_CurvePolyToPoly
syn keyword sqlFunction  ST_CurveToLine
syn keyword sqlFunction  ST_ToCircular
syn keyword sqlFunction  ST_ToCompound
syn keyword sqlFunction  ST_ToCurve
syn keyword sqlFunction  ST_ToCurvePoly
syn keyword sqlFunction  ST_ToGeomColl
syn keyword sqlFunction  ST_ToLineString
syn keyword sqlFunction  ST_ToMultiCurve
syn keyword sqlFunction  ST_ToMultiLine
syn keyword sqlFunction  ST_ToMultiPoint
syn keyword sqlFunction  ST_ToMultiPolygon
syn keyword sqlFunction  ST_ToMultiSurface
syn keyword sqlFunction  ST_ToPoint
syn keyword sqlFunction  ST_ToPolygon
syn keyword sqlFunction  ST_ToSurface

" Array functions 16.x
syn keyword sqlFunction	 array array_agg array_max_cardinality trim_array
syn keyword sqlFunction	 error_line error_message error_procedure
syn keyword sqlFunction	 error_sqlcode error_sqlstate error_stack_trace


" keywords
syn keyword sqlKeyword	 absolute accent access account action active activate add address admin
syn keyword sqlKeyword	 aes_decrypt after aggregate algorithm allow_dup_row allow allowed alter
syn keyword sqlKeyword	 always and angular ansi_substring any as append apply
syn keyword sqlKeyword	 arbiter array asc ascii ase
syn keyword sqlKeyword	 assign at atan2 atomic attended
syn keyword sqlKeyword	 audit auditing authentication authorization axis
syn keyword sqlKeyword	 autoincrement autostop batch bcp before
syn keyword sqlKeyword	 between bit_and bit_length bit_or bit_substr bit_xor
syn keyword sqlKeyword	 blank blanks block
syn keyword sqlKeyword	 both bottom unbounded breaker bufferpool
syn keyword sqlKeyword	 build bulk by byte bytes cache calibrate calibration
syn keyword sqlKeyword	 cancel capability cardinality cascade cast
syn keyword sqlKeyword	 catalog catch ceil change changes char char_convert
syn keyword sqlKeyword	 check checkpointlog checksum class classes client cmp
syn keyword sqlKeyword	 cluster clustered collation
syn keyword sqlKeyword	 column columns
syn keyword sqlKeyword	 command comments committed commitid comparisons
syn keyword sqlKeyword	 compatible component compressed compute computes
syn keyword sqlKeyword	 concat configuration confirm conflict connection
syn keyword sqlKeyword	 console consolidate consolidated
syn keyword sqlKeyword	 constraint constraints content
syn keyword sqlKeyword	 convert coordinate coordinator copy count count_set_bits
syn keyword sqlKeyword	 crc createtime critical cross cube cume_dist
syn keyword sqlKeyword	 current cursor data data database
syn keyword sqlKeyword	 current_timestamp current_user cycle
syn keyword sqlKeyword	 databases datatype dba dbfile
syn keyword sqlKeyword	 dbspace dbspaces dbspacename debug decoupled
syn keyword sqlKeyword	 decrypted default defaults default_dbspace deferred
syn keyword sqlKeyword	 definer definition
syn keyword sqlKeyword	 delay deleting delimited dependencies desc
syn keyword sqlKeyword	 description deterministic directory
syn keyword sqlKeyword	 disable disabled disallow distinct disksandbox disk_sandbox
syn keyword sqlKeyword	 dn do domain download duplicate
syn keyword sqlKeyword	 dsetpass dttm dynamic each earth editproc effective ejb
syn keyword sqlKeyword	 elimination ellipsoid else elseif
syn keyword sqlKeyword	 email empty enable encapsulated encrypted encryption end
syn keyword sqlKeyword	 encoding endif engine environment erase error errors escape escapes event
syn keyword sqlKeyword	 event_parameter every exception exclude excluded exclusive exec
syn keyword sqlKeyword	 existing exists expanded expiry express exprtype extended_property
syn keyword sqlKeyword	 external externlogin factor failover false
syn keyword sqlKeyword	 fastfirstrow feature fieldproc file files filler
syn keyword sqlKeyword	 fillfactor final finish first first_keyword first_value
syn keyword sqlKeyword	 flattening
syn keyword sqlKeyword	 following force foreign format forjson forxml forxml_sep fp frame
syn keyword sqlKeyword	 free freepage french fresh full function
syn keyword sqlKeyword	 gb generic get_bit go global grid
syn keyword sqlKeyword	 group handler hash having header hexadecimal
syn keyword sqlKeyword	 hidden high history hg hng hold holdlock host
syn keyword sqlKeyword	 hours http_body http_session_timeout id identified identity ignore
syn keyword sqlKeyword	 ignore_dup_key ignore_dup_row immediate
syn keyword sqlKeyword	 in inactiv inactive inactivity included increment incremental
syn keyword sqlKeyword	 index index_enabled index_lparen indexonly info information
syn keyword sqlKeyword	 inheritance inline inner inout insensitive inserting
syn keyword sqlKeyword	 instead
syn keyword sqlKeyword	 internal intersection into introduced inverse invoker
syn keyword sqlKeyword	 iq is isolation
syn keyword sqlKeyword	 jar java java_location java_main_userid java_vm_options
syn keyword sqlKeyword	 jconnect jdk join json kb key keys keep language last
syn keyword sqlKeyword	 last_keyword last_value lateral latitude
syn keyword sqlKeyword	 ld ldap left len linear lf ln level like
syn keyword sqlKeyword	 limit local location log
syn keyword sqlKeyword	 logging logical login logscan long longitude low lru ls
syn keyword sqlKeyword	 main major manage manual mark master
syn keyword sqlKeyword	 match matched materialized max maxvalue maximum mb measure median membership
syn keyword sqlKeyword	 merge metadata methods migrate minimum minor minutes minvalue mirror
syn keyword sqlKeyword	 mode modify monitor move mru multiplex
syn keyword sqlKeyword	 name named namespaces national native natural new next nextval
syn keyword sqlKeyword	 ngram no noholdlock nolock nonclustered none normal not
syn keyword sqlKeyword	 notify null nullable_constant nulls
syn keyword sqlKeyword	 object objects oem_string of off offline offset olap
syn keyword sqlKeyword	 old on online only openstring operator
syn keyword sqlKeyword	 optimization optimizer option
syn keyword sqlKeyword	 or order ordinality organization others out outer over owner
syn keyword sqlKeyword	 package packetsize padding page pages
syn keyword sqlKeyword	 paglock parallel parameter parent part partial
syn keyword sqlKeyword	 partition partitions partner password path pctfree
syn keyword sqlKeyword	 permissions perms plan planar policy polygon populate port postfilter preceding
syn keyword sqlKeyword	 precisionprefetch prefilter prefix preserve preview previous
syn keyword sqlKeyword	 primary prior priority priqty private privilege privileges procedure profile profiling
syn keyword sqlKeyword	 property_is_cumulative property_is_numeric public publication publish publisher
syn keyword sqlKeyword	 quiesce quote quotes range readclientfile readcommitted reader readfile readonly
syn keyword sqlKeyword	 readpast readuncommitted readwrite rebuild
syn keyword sqlKeyword	 received recompile recover recursive references
syn keyword sqlKeyword	 referencing regex regexp regexp_substr relative relocate
syn keyword sqlKeyword	 rename repeatable repeatableread replicate replication
syn keyword sqlKeyword	 requests request_timeout required rereceive resend reserve reset
syn keyword sqlKeyword	 resizing resolve resource respect restart
syn keyword sqlKeyword	 restrict result retain retries
syn keyword sqlKeyword	 returns reverse right role roles
syn keyword sqlKeyword	 rollup root row row_number rowlock rows rowtype
syn keyword sqlKeyword	 sa_index_hash sa_internal_fk_verify sa_internal_termbreak
syn keyword sqlKeyword	 sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix
syn keyword sqlKeyword	 sa_file_free_pages sa_internal_type_from_catalog sa_internal_valid_hash
syn keyword sqlKeyword	 sa_internal_validate_value sa_json_element
syn keyword sqlKeyword	 scale schedule schema scope script scripted scroll search seconds secqty security
syn keyword sqlKeyword	 semi send sensitive sent sequence serializable
syn keyword sqlKeyword	 server severity session set_bit set_bits sets
syn keyword sqlKeyword	 shapefile share side simple since site size skip
syn keyword sqlKeyword	 snap snapshot soapheader soap_header
syn keyword sqlKeyword	 spatial split some sorted_data
syn keyword sqlKeyword	 sql sqlcode sqlid sqlflagger sqlstate sqrt square
syn keyword sqlKeyword	 stacker stale state statement statistics status stddev_pop stddev_samp
syn keyword sqlKeyword	 stemmer stogroup stoplist storage store
syn keyword sqlKeyword	 strip stripesizekb striping subpages subscribe subscription
syn keyword sqlKeyword	 subtransaction suser_id suser_name suspend synchronization
syn keyword sqlKeyword	 syntax_error table tables tablock
syn keyword sqlKeyword	 tablockx target tb temp template temporary term then ties
syn keyword sqlKeyword	 timezone timeout tls to to_char to_nchar tolerance top
syn keyword sqlKeyword	 trace traced_plan tracing
syn keyword sqlKeyword	 transfer transform transaction transactional treat tries
syn keyword sqlKeyword	 true try tsequal type tune uncommitted unconditionally
syn keyword sqlKeyword	 unenforced unicode unique unistr unit unknown unlimited unload
syn keyword sqlKeyword	 unpartition unquiesce updatetime updating updlock upgrade upload
syn keyword sqlKeyword	 upper usage use user
syn keyword sqlKeyword	 using utc utilities validproc
syn keyword sqlKeyword	 value values varchar variable
syn keyword sqlKeyword	 varying var_pop var_samp vcat verbosity
syn keyword sqlKeyword	 verify versions view virtual wait
syn keyword sqlKeyword	 warning wd web when where with with_auto
syn keyword sqlKeyword	 with_auto with_cube with_rollup without
syn keyword sqlKeyword	 with_lparen within word work workload write writefile
syn keyword sqlKeyword	 writeclientfile writer writers writeserver xlock
syn keyword sqlKeyword	 war xml zeros zone
" XML
syn keyword sqlKeyword	 raw auto elements explicit
" HTTP support
syn keyword sqlKeyword	 authorization secure url service next_soap_header
" HTTP 9.0.2 new procedure keywords
syn keyword sqlKeyword	 namespace certificate certificates clientport proxy trusted_certificates_file
" OLAP support 9.0.0
syn keyword sqlKeyword	 covar_pop covar_samp corr regr_slope regr_intercept
syn keyword sqlKeyword	 regr_count regr_r2 regr_avgx regr_avgy
syn keyword sqlKeyword	 regr_sxx regr_syy regr_sxy

" Alternate keywords
syn keyword sqlKeyword	 character dec options proc reference
syn keyword sqlKeyword	 subtrans tran syn keyword

" Login Mode Options
syn keyword sqlKeywordLogin	 standard integrated kerberos LDAPUA
syn keyword sqlKeywordLogin	 cloudadmin mixed

" Spatial Predicates
syn keyword sqlKeyword   ST_Contains
syn keyword sqlKeyword   ST_ContainsFilter
syn keyword sqlKeyword   ST_CoveredBy
syn keyword sqlKeyword   ST_CoveredByFilter
syn keyword sqlKeyword   ST_Covers
syn keyword sqlKeyword   ST_CoversFilter
syn keyword sqlKeyword   ST_Crosses
syn keyword sqlKeyword   ST_Disjoint
syn keyword sqlKeyword   ST_Equals
syn keyword sqlKeyword   ST_EqualsFilter
syn keyword sqlKeyword   ST_Intersects
syn keyword sqlKeyword   ST_IntersectsFilter
syn keyword sqlKeyword   ST_IntersectsRect
syn keyword sqlKeyword   ST_OrderingEquals
syn keyword sqlKeyword   ST_Overlaps
syn keyword sqlKeyword   ST_Relate
syn keyword sqlKeyword   ST_Touches
syn keyword sqlKeyword   ST_Within
syn keyword sqlKeyword   ST_WithinFilter
" Spatial Set operations
syn keyword sqlKeyword   ST_Affine
syn keyword sqlKeyword   ST_Boundary
syn keyword sqlKeyword   ST_Buffer
syn keyword sqlKeyword   ST_ConvexHull
syn keyword sqlKeyword   ST_ConvexHullAggr
syn keyword sqlKeyword   ST_Difference
syn keyword sqlKeyword   ST_Intersection
syn keyword sqlKeyword   ST_IntersectionAggr
syn keyword sqlKeyword   ST_SymDifference
syn keyword sqlKeyword   ST_Union
syn keyword sqlKeyword   ST_UnionAggr
" Spatial Bounds
syn keyword sqlKeyword   ST_Envelope
syn keyword sqlKeyword   ST_EnvelopeAggr
syn keyword sqlKeyword   ST_Lat
syn keyword sqlKeyword   ST_LatMax
syn keyword sqlKeyword   ST_LatMin
syn keyword sqlKeyword   ST_Long
syn keyword sqlKeyword   ST_LongMax
syn keyword sqlKeyword   ST_LongMin
syn keyword sqlKeyword   ST_M
syn keyword sqlKeyword   ST_MMax
syn keyword sqlKeyword   ST_MMin
syn keyword sqlKeyword   ST_Point
syn keyword sqlKeyword   ST_X
syn keyword sqlKeyword   ST_XMax
syn keyword sqlKeyword   ST_XMin
syn keyword sqlKeyword   ST_Y
syn keyword sqlKeyword   ST_YMax
syn keyword sqlKeyword   ST_YMin
syn keyword sqlKeyword   ST_Z
syn keyword sqlKeyword   ST_ZMax
syn keyword sqlKeyword   ST_ZMin
" Spatial Collection Aggregates
syn keyword sqlKeyword   ST_GeomCollectionAggr
syn keyword sqlKeyword   ST_LineStringAggr
syn keyword sqlKeyword   ST_MultiCurveAggr
syn keyword sqlKeyword   ST_MultiLineStringAggr
syn keyword sqlKeyword   ST_MultiPointAggr
syn keyword sqlKeyword   ST_MultiPolygonAggr
syn keyword sqlKeyword   ST_MultiSurfaceAggr
syn keyword sqlKeyword   ST_Perimeter
syn keyword sqlKeyword   ST_PointOnSurface
" Spatial SRS
syn keyword sqlKeyword   ST_CompareWKT
syn keyword sqlKeyword   ST_FormatWKT
syn keyword sqlKeyword   ST_ParseWKT
syn keyword sqlKeyword   ST_TransformGeom
syn keyword sqlKeyword   ST_GeometryTypeFromBaseType
syn keyword sqlKeyword   ST_SnapToGrid
syn keyword sqlKeyword   ST_Transform
syn keyword sqlKeyword   ST_SRID
syn keyword sqlKeyword   ST_SRIDFromBaseType
syn keyword sqlKeyword   ST_LoadConfigurationData
" Spatial Indexes
syn keyword sqlKeyword   ST_LinearHash
syn keyword sqlKeyword   ST_LinearUnHash

syn keyword sqlOperator	 in any some all between exists
syn keyword sqlOperator	 like escape not is and or
syn keyword sqlOperator  minus
syn keyword sqlOperator  prior distinct unnest

syn keyword sqlStatement allocate alter attach backup begin break call case catch
syn keyword sqlStatement checkpoint clear close comment commit configure connect
syn keyword sqlStatement continue create deallocate declare delete describe
syn keyword sqlStatement detach disconnect drop except execute exit explain fetch
syn keyword sqlStatement for forward from get goto grant help if include
syn keyword sqlStatement input insert install intersect leave load lock loop
syn keyword sqlStatement message open output parameters passthrough
syn keyword sqlStatement prepare print put raiserror read readtext refresh release
syn keyword sqlStatement remote remove reorganize resignal restore resume
syn keyword sqlStatement return revoke rollback save savepoint select
syn keyword sqlStatement set setuser signal start stop synchronize
syn keyword sqlStatement system trigger truncate try union unload update
syn keyword sqlStatement validate waitfor whenever while window writetext


syn keyword sqlType	 char nchar long varchar nvarchar text ntext uniqueidentifierstr xml
syn keyword sqlType	 bigint bit decimal double varbit
syn keyword sqlType	 float int integer numeric
syn keyword sqlType	 smallint tinyint real
syn keyword sqlType	 money smallmoney
syn keyword sqlType	 date datetime datetimeoffset smalldatetime time timestamp
syn keyword sqlType	 binary image varray varbinary uniqueidentifier
syn keyword sqlType	 unsigned
" Spatial types
syn keyword sqlType	 st_geometry st_point st_curve st_surface st_geomcollection
syn keyword sqlType	 st_linestring st_circularstring st_compoundcurve
syn keyword sqlType	 st_curvepolygon st_polygon
syn keyword sqlType	 st_multipoint st_multicurve st_multisurface
syn keyword sqlType	 st_multilinestring st_multipolygon

syn keyword sqlOption    Allow_nulls_by_default
syn keyword sqlOption    Allow_read_client_file
syn keyword sqlOption    Allow_snapshot_isolation
syn keyword sqlOption    Allow_write_client_file
syn keyword sqlOption    Ansi_blanks
syn keyword sqlOption    Ansi_close_cursors_on_rollback
syn keyword sqlOption    Ansi_permissions
syn keyword sqlOption    Ansi_substring
syn keyword sqlOption    Ansi_update_constraints
syn keyword sqlOption    Ansinull
syn keyword sqlOption    Auditing
syn keyword sqlOption    Auditing_options
syn keyword sqlOption    Auto_commit_on_create_local_temp_index
syn keyword sqlOption    Background_priority
syn keyword sqlOption    Blocking
syn keyword sqlOption    Blocking_others_timeout
syn keyword sqlOption    Blocking_timeout
syn keyword sqlOption    Chained
syn keyword sqlOption    Checkpoint_time
syn keyword sqlOption    Cis_option
syn keyword sqlOption    Cis_rowset_size
syn keyword sqlOption    Close_on_endtrans
syn keyword sqlOption    Collect_statistics_on_dml_updates
syn keyword sqlOption    Conn_auditing
syn keyword sqlOption    Connection_authentication
syn keyword sqlOption    Continue_after_raiserror
syn keyword sqlOption    Conversion_error
syn keyword sqlOption    Cooperative_commit_timeout
syn keyword sqlOption    Cooperative_commits
syn keyword sqlOption    Database_authentication
syn keyword sqlOption    Date_format
syn keyword sqlOption    Date_order
syn keyword sqlOption    db_publisher
syn keyword sqlOption    Debug_messages
syn keyword sqlOption    Dedicated_task
syn keyword sqlOption    Default_dbspace
syn keyword sqlOption    Default_timestamp_increment
syn keyword sqlOption    Delayed_commit_timeout
syn keyword sqlOption    Delayed_commits
syn keyword sqlOption    Divide_by_zero_error
syn keyword sqlOption    Escape_character
syn keyword sqlOption    Exclude_operators
syn keyword sqlOption    Extended_join_syntax
syn keyword sqlOption    Extern_login_credentials
syn keyword sqlOption    Fire_triggers
syn keyword sqlOption    First_day_of_week
syn keyword sqlOption    For_xml_null_treatment
syn keyword sqlOption    Force_view_creation
syn keyword sqlOption    Global_database_id
syn keyword sqlOption    Http_session_timeout
syn keyword sqlOption    Http_connection_pool_basesize
syn keyword sqlOption    Http_connection_pool_timeout
syn keyword sqlOption    Integrated_server_name
syn keyword sqlOption    Isolation_level
syn keyword sqlOption    Java_class_path
syn keyword sqlOption    Java_location
syn keyword sqlOption    Java_main_userid
syn keyword sqlOption    Java_vm_options
syn keyword sqlOption    Lock_rejected_rows
syn keyword sqlOption    Log_deadlocks
syn keyword sqlOption    Login_mode
syn keyword sqlOption    Login_procedure
syn keyword sqlOption    Materialized_view_optimization
syn keyword sqlOption    Max_client_statements_cached
syn keyword sqlOption    Max_cursor_count
syn keyword sqlOption    Max_hash_size
syn keyword sqlOption    Max_plans_cached
syn keyword sqlOption    Max_priority
syn keyword sqlOption    Max_query_tasks
syn keyword sqlOption    Max_recursive_iterations
syn keyword sqlOption    Max_statement_count
syn keyword sqlOption    Max_temp_space
syn keyword sqlOption    Min_password_length
syn keyword sqlOption    Min_role_admins
syn keyword sqlOption    Nearest_century
syn keyword sqlOption    Non_keywords
syn keyword sqlOption    Odbc_describe_binary_as_varbinary
syn keyword sqlOption    Odbc_distinguish_char_and_varchar
syn keyword sqlOption    Oem_string
syn keyword sqlOption    On_charset_conversion_failure
syn keyword sqlOption    On_tsql_error
syn keyword sqlOption    Optimization_goal
syn keyword sqlOption    Optimization_level
syn keyword sqlOption    Optimization_workload
syn keyword sqlOption    Pinned_cursor_percent_of_cache
syn keyword sqlOption    Post_login_procedure
syn keyword sqlOption    Precision
syn keyword sqlOption    Prefetch
syn keyword sqlOption    Preserve_source_format
syn keyword sqlOption    Prevent_article_pkey_update
syn keyword sqlOption    Priority
syn keyword sqlOption    Progress_messages
syn keyword sqlOption    Query_mem_timeout
syn keyword sqlOption    Quoted_identifier
syn keyword sqlOption    Read_past_deleted
syn keyword sqlOption    Recovery_time
syn keyword sqlOption    Remote_idle_timeout
syn keyword sqlOption    Replicate_all
syn keyword sqlOption    Request_timeout
syn keyword sqlOption    Reserved_keywords
syn keyword sqlOption    Return_date_time_as_string
syn keyword sqlOption    Rollback_on_deadlock
syn keyword sqlOption    Row_counts
syn keyword sqlOption    Scale
syn keyword sqlOption    Secure_feature_key
syn keyword sqlOption    Sort_collation
syn keyword sqlOption    Sql_flagger_error_level
syn keyword sqlOption    Sql_flagger_warning_level
syn keyword sqlOption    String_rtruncation
syn keyword sqlOption    st_geometry_asbinary_format
syn keyword sqlOption    st_geometry_astext_format
syn keyword sqlOption    st_geometry_asxml_format
syn keyword sqlOption    st_geometry_describe_type
syn keyword sqlOption    st_geometry_interpolation
syn keyword sqlOption    st_geometry_on_invalid
syn keyword sqlOption    Subsume_row_locks
syn keyword sqlOption    Suppress_tds_debugging
syn keyword sqlOption    Synchronize_mirror_on_commit
syn keyword sqlOption    Tds_empty_string_is_null
syn keyword sqlOption    Temp_space_limit_check
syn keyword sqlOption    Time_format
syn keyword sqlOption    Time_zone_adjustment
syn keyword sqlOption    Timestamp_format
syn keyword sqlOption    Timestamp_with_time_zone_format
syn keyword sqlOption    Truncate_timestamp_values
syn keyword sqlOption    Tsql_outer_joins
syn keyword sqlOption    Tsql_variables
syn keyword sqlOption    Updatable_statement_isolation
syn keyword sqlOption    Update_statistics
syn keyword sqlOption    Upgrade_database_capability
syn keyword sqlOption    User_estimates
syn keyword sqlOption    Uuid_has_hyphens
syn keyword sqlOption    Verify_password_function
syn keyword sqlOption    Wait_for_commit
syn keyword sqlOption    Webservice_namespace_host
syn keyword sqlOption    Webservice_sessionid_name

" 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 = "sqlanywhere"

" vim:sw=4:
PK�j�ZW�W,zzvim80/syntax/tli.vimnu�[���" Vim syntax file
" Language:	TealInfo source files (*.tli)
" Maintainer:	Kurt W. Andrews <kandrews@fastrans.net>
" Last Change:	2001 May 10
" Version:      1.0

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" TealInfo Objects

syn keyword tliObject LIST POPLIST WINDOW POPWINDOW OUTLINE CHECKMARK GOTO
syn keyword tliObject LABEL IMAGE RECT TRES PASSWORD POPEDIT POPIMAGE CHECKLIST

" TealInfo Fields

syn keyword tliField X Y W H BX BY BW BH SX SY FONT BFONT CYCLE DELAY TABS
syn keyword tliField STYLE BTEXT RECORD DATABASE KEY TARGET DEFAULT TEXT
syn keyword tliField LINKS MAXVAL

" TealInfo Styles

syn keyword tliStyle INVERTED HORIZ_RULE VERT_RULE NO_SCROLL NO_BORDER BOLD_BORDER
syn keyword tliStyle ROUND_BORDER ALIGN_RIGHT ALIGN_CENTER ALIGN_LEFT_START ALIGN_RIGHT_START
syn keyword tliStyle ALIGN_CENTER_START ALIGN_LEFT_END ALIGN_RIGHT_END ALIGN_CENTER_END
syn keyword tliStyle LOCKOUT BUTTON_SCROLL BUTTON_SELECT STROKE_FIND FILLED REGISTER

" String and Character constants

syn match tliSpecial	"@"
syn region tliString	start=+"+ end=+"+

"TealInfo Numbers, identifiers and comments

syn case ignore
syn match tliNumber	"\d*"
syn match tliIdentifier	"\<\h\w*\>"
syn match tliComment	"#.*"
syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link tliNumber	Number
hi def link tliString	String
hi def link tliComment	Comment
hi def link tliSpecial	SpecialChar
hi def link tliIdentifier Identifier
hi def link tliObject     Statement
hi def link tliField      Type
hi def link tliStyle      PreProc


let b:current_syntax = "tli"

" vim: ts=8
PK�j�ZR�b���vim80/syntax/rib.vimnu�[���" Vim syntax file
" Language:	Renderman Interface Bytestream
" Maintainer:	Andrew Bromage <ajb@spamcop.net>
" Last Change:	2003 May 11
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" Comments
syn match   ribLineComment      "#.*$"
syn match   ribStructureComment "##.*$"

syn case ignore
syn match   ribCommand	       /[A-Z][a-zA-Z]*/
syn case match

syn region  ribString	       start=/"/ skip=/\\"/ end=/"/

syn match   ribStructure	"[A-Z][a-zA-Z]*Begin\>\|[A-Z][a-zA-Z]*End"
syn region  ribSectionFold	start="FrameBegin" end="FrameEnd" fold transparent keepend extend
syn region  ribSectionFold	start="WorldBegin" end="WorldEnd" fold transparent keepend extend
syn region  ribSectionFold	start="TransformBegin" end="TransformEnd" fold transparent keepend extend
syn region  ribSectionFold	start="AttributeBegin" end="AttributeEnd" fold transparent keepend extend
syn region  ribSectionFold	start="MotionBegin" end="MotionEnd" fold transparent keepend extend
syn region  ribSectionFold	start="SolidBegin" end="SolidEnd" fold transparent keepend extend
syn region  ribSectionFold	start="ObjectBegin" end="ObjectEnd" fold transparent keepend extend

syn sync    fromstart

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	ribNumbers	  display transparent "[-]\=\<\d\|\.\d" contains=ribNumber,ribFloat
syn match	ribNumber	  display contained "[-]\=\d\+\>"
"floating point number, with dot, optional exponent
syn match	ribFloat	  display contained "[-]\=\d\+\.\d*\(e[-+]\=\d\+\)\="
"floating point number, starting with a dot, optional exponent
syn match	ribFloat	  display contained "[-]\=\.\d\+\(e[-+]\=\d\+\)\=\>"
"floating point number, without dot, with exponent
syn match	ribFloat	  display contained "[-]\=\d\+e[-+]\d\+\>"
syn case match


hi def link ribStructure		Structure
hi def link ribCommand		Statement

hi def link ribStructureComment	SpecialComment
hi def link ribLineComment		Comment

hi def link ribString		String
hi def link ribNumber		Number
hi def link ribFloat		Float



let b:current_syntax = "rib"

" Options for vi: ts=8 sw=2 sts=2 nowrap noexpandtab ft=vim
PK�j�ZW����vim80/syntax/wdiff.vimnu�[���" Vim syntax file
" Language:     wDiff (wordwise diff)
" Maintainer:   Gerfried Fuchs <alfie@ist.org>
" Last Change:  25 Apr 2001
" URL:		http://alfie.ist.org/vim/syntax/wdiff.vim
"
" Comments are very welcome - but please make sure that you are commenting on
" the latest version of this file.
" SPAM is _NOT_ welcome - be ready to be reported!


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


syn region wdiffOld start=+\[-+ end=+-]+
syn region wdiffNew start="{+" end="+}"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link wdiffOld       Special
hi def link wdiffNew       Identifier


let b:current_syntax = "wdiff"
PK�j�ZQ4�y66vim80/syntax/rmd.vimnu�[���" markdown Text with R statements
" Language: markdown with R code chunks
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change: Sat Jan 28, 2017  10:06PM
"
" CONFIGURATION:
"   To highlight chunk headers as R code, put in your vimrc (e.g. .config/nvim/init.vim):
"   let rmd_syn_hl_chunk = 1
"
"   For highlighting pandoc extensions to markdown like citations and TeX and
"   many other advanced features like folding of markdown sections, it is
"   recommended to install the vim-pandoc filetype plugin as well as the
"   vim-pandoc-syntax filetype plugin from https://github.com/vim-pandoc.
"
" TODO:
"   - Provide highlighting for rmarkdown parameters in yaml header

if exists("b:current_syntax")
  finish
endif

" load all of pandoc info, e.g. from
" https://github.com/vim-pandoc/vim-pandoc-syntax
runtime syntax/pandoc.vim
if exists("b:current_syntax")
  let rmdIsPandoc = 1
  unlet b:current_syntax
else
  let rmdIsPandoc = 0
  runtime syntax/markdown.vim
  if exists("b:current_syntax")
    unlet b:current_syntax
  endif

  " load all of the yaml syntax highlighting rules into @yaml
  syntax include @yaml syntax/yaml.vim
  if exists("b:current_syntax")
    unlet b:current_syntax
  endif

  " highlight yaml block commonly used for front matter
  syntax region rmdYamlBlock matchgroup=rmdYamlBlockDelim start="^---" matchgroup=rmdYamlBlockDelim end="^---" contains=@yaml keepend fold
endif

if !exists("g:rmd_syn_langs")
  let g:rmd_syn_langs = ["r"]
else
  let s:hasr = 0
  for s:lng in g:rmd_syn_langs
    if s:lng == "r"
      let s:hasr = 1
    endif
  endfor
  if s:hasr == 0
    let g:rmd_syn_langs += ["r"]
  endif
endif

for s:lng in g:rmd_syn_langs
  exe 'syntax include @' . toupper(s:lng) . ' syntax/'. s:lng . '.vim'
  if exists("b:current_syntax")
    unlet b:current_syntax
  endif
  exe 'syntax region rmd' . toupper(s:lng) . 'Chunk start="^[ \t]*``` *{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\).*}$" end="^[ \t]*```$" contains=@' . toupper(s:lng) . ',rmd' . toupper(s:lng) . 'ChunkDelim keepend fold'

  if exists("g:rmd_syn_hl_chunk") && s:lng == "r"
    " highlight R code inside chunk header
    syntax match rmdRChunkDelim "^[ \t]*```{r" contained
    syntax match rmdRChunkDelim "}$" contained
  else
    exe 'syntax match rmd' . toupper(s:lng) . 'ChunkDelim "^[ \t]*```{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\).*}$" contained'
  endif
  exe 'syntax match rmd' . toupper(s:lng) . 'ChunkDelim "^[ \t]*```$" contained'
endfor


" also match and syntax highlight in-line R code
syntax region rmdrInline matchgroup=rmdInlineDelim start="`r "  end="`" contains=@R containedin=pandocLaTeXRegion,yamlFlowString keepend
" I was not able to highlight rmdrInline inside a pandocLaTeXCommand, although
" highlighting works within pandocLaTeXRegion and yamlFlowString. 
syntax cluster texMathZoneGroup add=rmdrInline

" match slidify special marker
syntax match rmdSlidifySpecial "\*\*\*"


if rmdIsPandoc == 0
  syn match rmdBlockQuote /^\s*>.*\n\(.*\n\@<!\n\)*/ skipnl
  " LaTeX
  syntax include @LaTeX syntax/tex.vim
  if exists("b:current_syntax")
    unlet b:current_syntax
  endif
  " Inline
  syntax match rmdLaTeXInlDelim "\$"
  syntax match rmdLaTeXInlDelim "\\\$"
  syn region texMathZoneX	matchgroup=Delimiter start="\$" skip="\\\\\|\\\$"	matchgroup=Delimiter end="\$" end="%stopzone\>"	contains=@texMathZoneGroup
  " Region
  syntax match rmdLaTeXRegDelim "\$\$" contained
  syntax match rmdLaTeXRegDelim "\$\$latex$" contained
  syntax match rmdLaTeXSt "\\[a-zA-Z]\+"
  syntax region rmdLaTeXRegion start="^\$\$" skip="\\\$" end="\$\$$" contains=@LaTeX,rmdLaTeXRegDelim keepend
  syntax region rmdLaTeXRegion2 start="^\\\[" end="\\\]" contains=@LaTeX,rmdLaTeXRegDelim keepend
  hi def link rmdBlockQuote Comment
  hi def link rmdLaTeXSt Statement
  hi def link rmdLaTeXInlDelim Special
  hi def link rmdLaTeXRegDelim Special
endif

for s:lng in g:rmd_syn_langs
  exe 'syn sync match rmd' . toupper(s:lng) . 'SyncChunk grouphere rmd' . toupper(s:lng) . 'Chunk /^[ \t]*``` *{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\)/'
endfor

hi def link rmdYamlBlockDelim Delim
for s:lng in g:rmd_syn_langs
  exe 'hi def link rmd' . toupper(s:lng) . 'ChunkDelim Special'
endfor
hi def link rmdInlineDelim Special
hi def link rmdSlidifySpecial Special

let b:current_syntax = "rmd"

" vim: ts=8 sw=2
PK�j�Z MP�6�6vim80/syntax/upstreamdat.vimnu�[���" Vim syntax file
" Language:		Innovation Data Processing upstream.dat file
" Maintainer:		Rob Owens <rowens@fdrinnovation.com>
" Latest Revision:	2013-11-27

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Parameters:
syn keyword upstreamdat_Parameter ACCEPTPCREMOTE 
syn keyword upstreamdat_Parameter ACCEPTREMOTE 
syn keyword upstreamdat_Parameter ACTION 
syn keyword upstreamdat_Parameter ACTIVATEONENTRY 
syn keyword upstreamdat_Parameter ARCHIVEBIT 
syn keyword upstreamdat_Parameter ARCHIVEBIT 
syn keyword upstreamdat_Parameter ASCTOEBC 
syn keyword upstreamdat_Parameter ASRBACKUP 
syn keyword upstreamdat_Parameter ATTENDED 
syn keyword upstreamdat_Parameter AUTHORITATIVE 
syn keyword upstreamdat_Parameter AUTHORITATIVERESTORE 
syn keyword upstreamdat_Parameter AUTHORITATIVERESTORE 
syn keyword upstreamdat_Parameter BACKUPPROFILE 
syn keyword upstreamdat_Parameter BACKUPPROFILE2 
syn keyword upstreamdat_Parameter BACKUPREPARSEFILES 
syn keyword upstreamdat_Parameter BACKUPREPARSEFILES 
syn keyword upstreamdat_Parameter BACKUPVERIFY 
syn keyword upstreamdat_Parameter BLANKTRUNC 
syn keyword upstreamdat_Parameter CALCDASDSIZE 
syn keyword upstreamdat_Parameter CHANGEDIRATTRIBS 
syn keyword upstreamdat_Parameter CHANGEDIRATTRIBS 
syn keyword upstreamdat_Parameter COMPRESSLEVEL 
syn keyword upstreamdat_Parameter CONTROLFILE 
syn keyword upstreamdat_Parameter DASDOVERRIDE 
syn keyword upstreamdat_Parameter DATELIMIT 
syn keyword upstreamdat_Parameter DATELIMIT 
syn keyword upstreamdat_Parameter DAYSOLD 
syn keyword upstreamdat_Parameter DAYSOLD 
syn keyword upstreamdat_Parameter DELETED 
syn keyword upstreamdat_Parameter DELETED 
syn keyword upstreamdat_Parameter DELETEPROMPTS 
syn keyword upstreamdat_Parameter DELETEPROMPTS 
syn keyword upstreamdat_Parameter DESTINATION 
syn keyword upstreamdat_Parameter DESTINATION 
syn keyword upstreamdat_Parameter DIRDELETE 
syn keyword upstreamdat_Parameter DIRECTORVMC 
syn keyword upstreamdat_Parameter DIRONLYRESTOREOK 
syn keyword upstreamdat_Parameter DIRSONLY 
syn keyword upstreamdat_Parameter DIRSONLY 
syn keyword upstreamdat_Parameter DISASTERRECOVERY 
syn keyword upstreamdat_Parameter DISPLAY 
syn keyword upstreamdat_Parameter DRIVEALIAS 
syn keyword upstreamdat_Parameter DRIVEALIAS 
syn keyword upstreamdat_Parameter DUALCOPY 
syn keyword upstreamdat_Parameter DUPDAYS 
syn keyword upstreamdat_Parameter DUPLICATE 
syn keyword upstreamdat_Parameter EBCTOASC 
syn keyword upstreamdat_Parameter ENCRYPT 
syn keyword upstreamdat_Parameter ENCRYPTLEVEL 
syn keyword upstreamdat_Parameter EXCLUDELISTNAME 
syn keyword upstreamdat_Parameter FAILBACKUPONERROR 
syn keyword upstreamdat_Parameter FAILBACKUPONERROR 
syn keyword upstreamdat_Parameter FAILIFNOFILES 
syn keyword upstreamdat_Parameter FAILIFNOFILES 
syn keyword upstreamdat_Parameter FAILIFSKIP 
syn keyword upstreamdat_Parameter FAILJOB 
syn keyword upstreamdat_Parameter FAILRESTOREONERROR 
syn keyword upstreamdat_Parameter FAILRESTOREONERROR 
syn keyword upstreamdat_Parameter FILEDATE 
syn keyword upstreamdat_Parameter FILEDATE 
syn keyword upstreamdat_Parameter FILEDELETE 
syn keyword upstreamdat_Parameter FILEDELETE 
syn keyword upstreamdat_Parameter FILES 
syn keyword upstreamdat_Parameter FILES 
syn keyword upstreamdat_Parameter FILESOPENFORUPDAT 
syn keyword upstreamdat_Parameter FILESOPENFORUPDAT 
syn keyword upstreamdat_Parameter FILETRANSFER 
syn keyword upstreamdat_Parameter GETREMOTEFILES 
syn keyword upstreamdat_Parameter HARDLINKDB 
syn keyword upstreamdat_Parameter HARDLINKS 
syn keyword upstreamdat_Parameter HARDLINKS 
syn keyword upstreamdat_Parameter HIDDENFILES 
syn keyword upstreamdat_Parameter HIDDENFILES 
syn keyword upstreamdat_Parameter HOLDTAPE 
syn keyword upstreamdat_Parameter HOLDUSERDIRS 
syn keyword upstreamdat_Parameter HOSTFILENAME 
syn keyword upstreamdat_Parameter HOSTRECORD 
syn keyword upstreamdat_Parameter HOSTSORT 
syn keyword upstreamdat_Parameter IGNOREPLUGINSFORRESTORE 
syn keyword upstreamdat_Parameter INCRDB 
syn keyword upstreamdat_Parameter INCRDBARCHIVEBIT 
syn keyword upstreamdat_Parameter INCRDBDELETEDFILES 
syn keyword upstreamdat_Parameter INCREMENTAL 
syn keyword upstreamdat_Parameter INCREMENTAL 
syn keyword upstreamdat_Parameter INQOPTIONS 
syn keyword upstreamdat_Parameter INSTALLWIN2KAGENT 
syn keyword upstreamdat_Parameter INSTALLWIN2KAGENT 
syn keyword upstreamdat_Parameter JOBOPTIONS 
syn keyword upstreamdat_Parameter JOBRETURNCODEMAP 
syn keyword upstreamdat_Parameter JOBWAITTIMELIMIT 
syn keyword upstreamdat_Parameter KEEPALIVE 
syn keyword upstreamdat_Parameter LANINTERFACE 
syn keyword upstreamdat_Parameter LANWSNAME 
syn keyword upstreamdat_Parameter LANWSPASSWORD 
syn keyword upstreamdat_Parameter LASTACCESS 
syn keyword upstreamdat_Parameter LASTACCESS 
syn keyword upstreamdat_Parameter LATESTDATE 
syn keyword upstreamdat_Parameter LATESTDATE 
syn keyword upstreamdat_Parameter LATESTTIME 
syn keyword upstreamdat_Parameter LATESTTIME 
syn keyword upstreamdat_Parameter LATESTVERSION 
syn keyword upstreamdat_Parameter LINEBLOCK 
syn keyword upstreamdat_Parameter LINETRUNC 
syn keyword upstreamdat_Parameter LISTENFORREMOTE 
syn keyword upstreamdat_Parameter LOCALBACKUP 
syn keyword upstreamdat_Parameter LOCALBACKUPDIR 
syn keyword upstreamdat_Parameter LOCALBACKUPMAX 
syn keyword upstreamdat_Parameter LOCALBACKUPMAXFILESIZE 
syn keyword upstreamdat_Parameter LOCALBACKUPMAXSIZE 
syn keyword upstreamdat_Parameter LOCALEXCLUDEFILE 
syn keyword upstreamdat_Parameter LOCALPARAMETERS 
syn keyword upstreamdat_Parameter LOCALPASSWORD 
syn keyword upstreamdat_Parameter LOCALRESTORE 
syn keyword upstreamdat_Parameter LOCALUSER 
syn keyword upstreamdat_Parameter LOFS 
syn keyword upstreamdat_Parameter LOGNONFATAL 
syn keyword upstreamdat_Parameter MAXBACKUPFILESFAIL 
syn keyword upstreamdat_Parameter MAXBACKUPTIME 
syn keyword upstreamdat_Parameter MAXDUPS 
syn keyword upstreamdat_Parameter MAXFILENAMESIZE 
syn keyword upstreamdat_Parameter MAXKFILESIZE 
syn keyword upstreamdat_Parameter MAXLOGDAYS 
syn keyword upstreamdat_Parameter MAXRESTOREFILESFAIL 
syn keyword upstreamdat_Parameter MAXRESTORETIME 
syn keyword upstreamdat_Parameter MAXRETRY 
syn keyword upstreamdat_Parameter MAXRPTDAYS 
syn keyword upstreamdat_Parameter MERGE 
syn keyword upstreamdat_Parameter MIGRBITS 
syn keyword upstreamdat_Parameter MIGRBITS 
syn keyword upstreamdat_Parameter MINCOMPRESSSIZE 
syn keyword upstreamdat_Parameter MINIMIZE 
syn keyword upstreamdat_Parameter MODIFYFILE 
syn keyword upstreamdat_Parameter MOUNTPOINTS 
syn keyword upstreamdat_Parameter MOUNTPOINTS 
syn keyword upstreamdat_Parameter NDS 
syn keyword upstreamdat_Parameter NDS 
syn keyword upstreamdat_Parameter NEWFILECOMPARE 
syn keyword upstreamdat_Parameter NFSBELOW 
syn keyword upstreamdat_Parameter NODATAOK 
syn keyword upstreamdat_Parameter NODIRFORINCREMENTAL 
syn keyword upstreamdat_Parameter NODIRFORINCREMENTAL 
syn keyword upstreamdat_Parameter NONFILEDATABITMAP 
syn keyword upstreamdat_Parameter NONFILEDATABITMAP 
syn keyword upstreamdat_Parameter NOPOINTRESTORE 
syn keyword upstreamdat_Parameter NOSPECINHERITANCE 
syn keyword upstreamdat_Parameter NOTIFYEVENTS 
syn keyword upstreamdat_Parameter NOTIFYFAILUREATTACHMENT 
syn keyword upstreamdat_Parameter NOTIFYSUCCESSATTACHMENT 
syn keyword upstreamdat_Parameter NOTIFYTARGETS 
syn keyword upstreamdat_Parameter NOUIDGIDNAMES 
syn keyword upstreamdat_Parameter NOUIDGIDNAMES 
syn keyword upstreamdat_Parameter NOVELLMIGRATE 
syn keyword upstreamdat_Parameter NOVELLMIGRATE 
syn keyword upstreamdat_Parameter NOVELLMIGRATEADDEXT 
syn keyword upstreamdat_Parameter NOVELLMIGRATEADDEXT 
syn keyword upstreamdat_Parameter NOVELLPROFILE 
syn keyword upstreamdat_Parameter NOVELLRECALL 
syn keyword upstreamdat_Parameter NTFSADDPERMISSION 
syn keyword upstreamdat_Parameter NTFSADDPERMISSION 
syn keyword upstreamdat_Parameter NTREGRESTORE 
syn keyword upstreamdat_Parameter OSTYPE 
syn keyword upstreamdat_Parameter OUTPORT 
syn keyword upstreamdat_Parameter PACKFLUSHAFTERFILE 
syn keyword upstreamdat_Parameter PACKRECSIZE 
syn keyword upstreamdat_Parameter PARAMETER 
syn keyword upstreamdat_Parameter PASSWORD 
syn keyword upstreamdat_Parameter PATHNAME 
syn keyword upstreamdat_Parameter PATHNAME 
syn keyword upstreamdat_Parameter PERFORMBITMAP 
syn keyword upstreamdat_Parameter PERFORMNUMRECORDS 
syn keyword upstreamdat_Parameter PERFORMRECORDSIZE 
syn keyword upstreamdat_Parameter PLUGIN 
syn keyword upstreamdat_Parameter PLUGIN 
syn keyword upstreamdat_Parameter PLUGINPARAMETERS 
syn keyword upstreamdat_Parameter PLUGINPARAMETERS 
syn keyword upstreamdat_Parameter POSTJOB 
syn keyword upstreamdat_Parameter PREJOB 
syn keyword upstreamdat_Parameter PRTYCLASS 
syn keyword upstreamdat_Parameter PRTYLEVEL 
syn keyword upstreamdat_Parameter RECALLCLEANUP 
syn keyword upstreamdat_Parameter RECALLOFFLINEFILES 
syn keyword upstreamdat_Parameter RECALLOFFLINEFILES 
syn keyword upstreamdat_Parameter RECORDSIZE 
syn keyword upstreamdat_Parameter REMOTEADDR 
syn keyword upstreamdat_Parameter REMOTEAPPLPREF 
syn keyword upstreamdat_Parameter REMOTEAPPLRETRY 
syn keyword upstreamdat_Parameter REMOTECONNECTTYPE 
syn keyword upstreamdat_Parameter REMOTEFLAGS 
syn keyword upstreamdat_Parameter REMOTEIPADAPTER 
syn keyword upstreamdat_Parameter REMOTELOCALPARAMETERS 
syn keyword upstreamdat_Parameter REMOTELOGMODE 
syn keyword upstreamdat_Parameter REMOTELUNAME 
syn keyword upstreamdat_Parameter REMOTEMAXRETRIES 
syn keyword upstreamdat_Parameter REMOTEMODENAME 
syn keyword upstreamdat_Parameter REMOTEPARAMETERFILE 
syn keyword upstreamdat_Parameter REMOTEPORT 
syn keyword upstreamdat_Parameter REMOTEREQUEST 
syn keyword upstreamdat_Parameter REMOTERESTART 
syn keyword upstreamdat_Parameter REMOTEROUTE 
syn keyword upstreamdat_Parameter REMOTETARGETNAME 
syn keyword upstreamdat_Parameter REMOTETCP 
syn keyword upstreamdat_Parameter REMOTETIMEOUT 
syn keyword upstreamdat_Parameter REMOTETMAXRETRY 
syn keyword upstreamdat_Parameter REMOTETPN 
syn keyword upstreamdat_Parameter REMOTEUSAPPL 
syn keyword upstreamdat_Parameter REMOTEVERIFY 
syn keyword upstreamdat_Parameter REMOTEWTOCOMP 
syn keyword upstreamdat_Parameter REPORTNAME 
syn keyword upstreamdat_Parameter REPORTOPTIONS 
syn keyword upstreamdat_Parameter RESTARTLASTFILE 
syn keyword upstreamdat_Parameter RESTART 
syn keyword upstreamdat_Parameter RESTARTTYPE 
syn keyword upstreamdat_Parameter RESTARTVERSIONDATE 
syn keyword upstreamdat_Parameter RESTOREARCHIVEBIT 
syn keyword upstreamdat_Parameter RESTORECHECKPOINT 
syn keyword upstreamdat_Parameter RESTOREDATELIMIT 
syn keyword upstreamdat_Parameter RESTOREDATELIMIT 
syn keyword upstreamdat_Parameter RESTOREFILEFAIL 
syn keyword upstreamdat_Parameter RESTOREMOUNTPOINTS 
syn keyword upstreamdat_Parameter RESTOREMOUNTPOINTS 
syn keyword upstreamdat_Parameter RESTORESEGMENTS 
syn keyword upstreamdat_Parameter RESTORESEGMENTS 
syn keyword upstreamdat_Parameter RESTORETODIFFFS 
syn keyword upstreamdat_Parameter RETAIN 
syn keyword upstreamdat_Parameter RETAIN 
syn keyword upstreamdat_Parameter ROOTENTRY 
syn keyword upstreamdat_Parameter ROOTENTRY 
syn keyword upstreamdat_Parameter SAN 
syn keyword upstreamdat_Parameter SCHEDULENAME 
syn keyword upstreamdat_Parameter SEGMENTEDFILESIZE 
syn keyword upstreamdat_Parameter SEGMENTEDFILESIZE 
syn keyword upstreamdat_Parameter SEGMENTSIZE 
syn keyword upstreamdat_Parameter SEGMENTSIZE 
syn keyword upstreamdat_Parameter SENDHOSTDETAILS 
syn keyword upstreamdat_Parameter SINGLEFS 
syn keyword upstreamdat_Parameter SIZETRC 
syn keyword upstreamdat_Parameter SKIP 
syn keyword upstreamdat_Parameter SKIPBACKUPSCAN 
syn keyword upstreamdat_Parameter SKIPOLD 
syn keyword upstreamdat_Parameter SKIPOLD 
syn keyword upstreamdat_Parameter SMSTARGETSERVICENAME 
syn keyword upstreamdat_Parameter SMSTSA 
syn keyword upstreamdat_Parameter SOLO 
syn keyword upstreamdat_Parameter SORTBACKUP 
syn keyword upstreamdat_Parameter SOSDISK 
syn keyword upstreamdat_Parameter SOSDISK 
syn keyword upstreamdat_Parameter SOSTIMESTAMP 
syn keyword upstreamdat_Parameter SOSTIMESTAMP 
syn keyword upstreamdat_Parameter SOSTIMESTAMPPATH 
syn keyword upstreamdat_Parameter SOSTIMESTAMPPATH 
syn keyword upstreamdat_Parameter SPECNUMBER 
syn keyword upstreamdat_Parameter SPECNUMBER 
syn keyword upstreamdat_Parameter SPECTYPE 
syn keyword upstreamdat_Parameter SPECTYPE 
syn keyword upstreamdat_Parameter STARTTIME 
syn keyword upstreamdat_Parameter STORAGETYPE 
syn keyword upstreamdat_Parameter SUBDIRECTORIES 
syn keyword upstreamdat_Parameter SUBDIRECTORIES 
syn keyword upstreamdat_Parameter SWITCHTOTAPEMB 
syn keyword upstreamdat_Parameter TCPADDRESS 
syn keyword upstreamdat_Parameter TCPTIMEOUT 
syn keyword upstreamdat_Parameter TIMEOVERRIDE 
syn keyword upstreamdat_Parameter TRACE 
syn keyword upstreamdat_Parameter TRANSLATE 
syn keyword upstreamdat_Parameter ULTRACOMP 
syn keyword upstreamdat_Parameter ULTREG 
syn keyword upstreamdat_Parameter ULTUPD 
syn keyword upstreamdat_Parameter UNCMACHINEALIAS 
syn keyword upstreamdat_Parameter UNCMACHINEALIAS 
syn keyword upstreamdat_Parameter USEALEBRA 
syn keyword upstreamdat_Parameter USECONTROLFILE 
syn keyword upstreamdat_Parameter USEGID 
syn keyword upstreamdat_Parameter USERID 
syn keyword upstreamdat_Parameter USEUID 
syn keyword upstreamdat_Parameter USNOUIDGIDERRORS 
syn keyword upstreamdat_Parameter UTF8 
syn keyword upstreamdat_Parameter VAULTNUMBER 
syn keyword upstreamdat_Parameter VERSIONDATE 
syn keyword upstreamdat_Parameter WRITESPARSE 
syn keyword upstreamdat_Parameter XFERECORDSIZE 
syn keyword upstreamdat_Parameter XFERRECSEP 
syn keyword upstreamdat_Parameter XFERRECUSECR 

" File Specs:
syn match upstreamdat_Filespec /file spec\c \d\{1,3}.*/

" Comments:
syn match upstreamdat_Comment /^#.*/

hi def link upstreamdat_Parameter Type
"hi def link upstreamdat_Filespec Underlined
hi def link upstreamdat_Comment Comment

let b:current_syntax = "upstreamdat"
PK�j�Z�
�j��vim80/syntax/htmlcheetah.vimnu�[���" Vim syntax file
" Language:	HTML with Cheetah tags
" Maintainer:	Max Ischenko <mfi@ukr.net>
" Last Change: 2003-05-11

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'html'
endif

runtime! syntax/cheetah.vim
runtime! syntax/html.vim
unlet b:current_syntax

syntax cluster htmlPreproc add=cheetahPlaceHolder
syntax cluster htmlString add=cheetahPlaceHolder

let b:current_syntax = "htmlcheetah"


PK�j�Z��'�'vim80/syntax/rc.vimnu�[���" Vim syntax file
" Language:	M$ Resource files (*.rc)
" Maintainer:	Christian Brabandt
" Last Change:	2015-05-29
" Repository:   https://github.com/chrisbra/vim-rc-syntax
" License:	Vim (see :h license)
" Previous Maintainer:	Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>

" This file is based on the c.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Common RC keywords
syn keyword rcLanguage LANGUAGE

syn keyword rcMainObject TEXTINCLUDE VERSIONINFO BITMAP ICON CURSOR CURSOR
syn keyword rcMainObject MENU ACCELERATORS TOOLBAR DIALOG
syn keyword rcMainObject STRINGTABLE MESSAGETABLE RCDATA DLGINIT DESIGNINFO

syn keyword rcSubObject POPUP MENUITEM SEPARATOR
syn keyword rcSubObject CONTROL LTEXT CTEXT RTEXT EDITTEXT
syn keyword rcSubObject BUTTON PUSHBUTTON DEFPUSHBUTTON GROUPBOX LISTBOX COMBOBOX
syn keyword rcSubObject FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS FILEOS
syn keyword rcSubObject FILETYPE FILESUBTYPE

syn keyword rcCaptionParam CAPTION
syn keyword rcParam CHARACTERISTICS CLASS STYLE EXSTYLE VERSION FONT

syn keyword rcStatement BEGIN END BLOCK VALUE

syn keyword rcCommonAttribute PRELOAD LOADONCALL FIXED MOVEABLE DISCARDABLE PURE IMPURE

syn keyword rcAttribute WS_OVERLAPPED WS_POPUP WS_CHILD WS_MINIMIZE WS_VISIBLE WS_DISABLED WS_CLIPSIBLINGS
syn keyword rcAttribute WS_CLIPCHILDREN WS_MAXIMIZE WS_CAPTION WS_BORDER WS_DLGFRAME WS_VSCROLL WS_HSCROLL
syn keyword rcAttribute WS_SYSMENU WS_THICKFRAME WS_GROUP WS_TABSTOP WS_MINIMIZEBOX WS_MAXIMIZEBOX WS_TILED
syn keyword rcAttribute WS_ICONIC WS_SIZEBOX WS_TILEDWINDOW WS_OVERLAPPEDWINDOW WS_POPUPWINDOW WS_CHILDWINDOW
syn keyword rcAttribute WS_EX_DLGMODALFRAME WS_EX_NOPARENTNOTIFY WS_EX_TOPMOST WS_EX_ACCEPTFILES
syn keyword rcAttribute WS_EX_TRANSPARENT WS_EX_MDICHILD WS_EX_TOOLWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE
syn keyword rcAttribute WS_EX_CONTEXTHELP WS_EX_RIGHT WS_EX_LEFT WS_EX_RTLREADING WS_EX_LTRREADING
syn keyword rcAttribute WS_EX_LEFTSCROLLBAR WS_EX_RIGHTSCROLLBAR WS_EX_CONTROLPARENT WS_EX_STATICEDGE
syn keyword rcAttribute WS_EX_APPWINDOW WS_EX_OVERLAPPEDWINDOW WS_EX_PALETTEWINDOW
syn keyword rcAttribute ES_LEFT ES_CENTER ES_RIGHT ES_MULTILINE ES_UPPERCASE ES_LOWERCASE ES_PASSWORD
syn keyword rcAttribute ES_AUTOVSCROLL ES_AUTOHSCROLL ES_NOHIDESEL ES_OEMCONVERT ES_READONLY ES_WANTRETURN
syn keyword rcAttribute ES_NUMBER
syn keyword rcAttribute BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON BS_3STATE
syn keyword rcAttribute BS_AUTO3STATE BS_GROUPBOX BS_USERBUTTON BS_AUTORADIOBUTTON BS_OWNERDRAW BS_LEFTTEXT
syn keyword rcAttribute BS_TEXT BS_ICON BS_BITMAP BS_LEFT BS_RIGHT BS_CENTER BS_TOP BS_BOTTOM BS_VCENTER
syn keyword rcAttribute BS_PUSHLIKE BS_MULTILINE BS_NOTIFY BS_FLAT BS_RIGHTBUTTON
syn keyword rcAttribute SS_LEFT SS_CENTER SS_RIGHT SS_ICON SS_BLACKRECT SS_GRAYRECT SS_WHITERECT
syn keyword rcAttribute SS_BLACKFRAME SS_GRAYFRAME SS_WHITEFRAME SS_USERITEM SS_SIMPLE SS_LEFTNOWORDWRAP
syn keyword rcAttribute SS_OWNERDRAW SS_BITMAP SS_ENHMETAFILE SS_ETCHEDHORZ SS_ETCHEDVERT SS_ETCHEDFRAME
syn keyword rcAttribute SS_TYPEMASK SS_NOPREFIX SS_NOTIFY SS_CENTERIMAGE SS_RIGHTJUST SS_REALSIZEIMAGE
syn keyword rcAttribute SS_SUNKEN SS_ENDELLIPSIS SS_PATHELLIPSIS SS_WORDELLIPSIS SS_ELLIPSISMASK
syn keyword rcAttribute DS_ABSALIGN DS_SYSMODAL DS_LOCALEDIT DS_SETFONT DS_MODALFRAME DS_NOIDLEMSG
syn keyword rcAttribute DS_SETFOREGROUND DS_3DLOOK DS_FIXEDSYS DS_NOFAILCREATE DS_CONTROL DS_CENTER
syn keyword rcAttribute DS_CENTERMOUSE DS_CONTEXTHELP
syn keyword rcAttribute LBS_NOTIFY LBS_SORT LBS_NOREDRAW LBS_MULTIPLESEL LBS_OWNERDRAWFIXED
syn keyword rcAttribute LBS_OWNERDRAWVARIABLE LBS_HASSTRINGS LBS_USETABSTOPS LBS_NOINTEGRALHEIGHT
syn keyword rcAttribute LBS_MULTICOLUMN LBS_WANTKEYBOARDINPUT LBS_EXTENDEDSEL LBS_DISABLENOSCROLL
syn keyword rcAttribute LBS_NODATA LBS_NOSEL LBS_STANDARD
syn keyword rcAttribute CBS_SIMPLE CBS_DROPDOWN CBS_DROPDOWNLIST CBS_OWNERDRAWFIXED CBS_OWNERDRAWVARIABLE
syn keyword rcAttribute CBS_AUTOHSCROLL CBS_OEMCONVERT CBS_SORT CBS_HASSTRINGS CBS_NOINTEGRALHEIGHT
syn keyword rcAttribute CBS_DISABLENOSCROLL CBS_UPPERCASE CBS_LOWERCASE
syn keyword rcAttribute SBS_HORZ SBS_VERT SBS_TOPALIGN SBS_LEFTALIGN SBS_BOTTOMALIGN SBS_RIGHTALIGN
syn keyword rcAttribute SBS_SIZEBOXTOPLEFTALIGN SBS_SIZEBOXBOTTOMRIGHTALIGN SBS_SIZEBOX SBS_SIZEGRIP
syn keyword rcAttribute CCS_TOP CCS_NOMOVEY CCS_BOTTOM CCS_NORESIZE CCS_NOPARENTALIGN CCS_ADJUSTABLE
syn keyword rcAttribute CCS_NODIVIDER
syn keyword rcAttribute LVS_ICON LVS_REPORT LVS_SMALLICON LVS_LIST LVS_TYPEMASK LVS_SINGLESEL LVS_SHOWSELALWAYS
syn keyword rcAttribute LVS_SORTASCENDING LVS_SORTDESCENDING LVS_SHAREIMAGELISTS LVS_NOLABELWRAP
syn keyword rcAttribute LVS_EDITLABELS LVS_OWNERDATA LVS_NOSCROLL LVS_TYPESTYLEMASK  LVS_ALIGNTOP LVS_ALIGNLEFT
syn keyword rcAttribute LVS_ALIGNMASK LVS_OWNERDRAWFIXED LVS_NOCOLUMNHEADER LVS_NOSORTHEADER LVS_AUTOARRANGE
syn keyword rcAttribute TVS_HASBUTTONS TVS_HASLINES TVS_LINESATROOT TVS_EDITLABELS TVS_DISABLEDRAGDROP
syn keyword rcAttribute TVS_SHOWSELALWAYS
syn keyword rcAttribute TCS_FORCEICONLEFT TCS_FORCELABELLEFT TCS_TABS TCS_BUTTONS TCS_SINGLELINE TCS_MULTILINE
syn keyword rcAttribute TCS_RIGHTJUSTIFY TCS_FIXEDWIDTH TCS_RAGGEDRIGHT TCS_FOCUSONBUTTONDOWN
syn keyword rcAttribute TCS_OWNERDRAWFIXED TCS_TOOLTIPS TCS_FOCUSNEVER
syn keyword rcAttribute ACS_CENTER ACS_TRANSPARENT ACS_AUTOPLAY
syn keyword rcStdId IDI_APPLICATION IDI_HAND IDI_QUESTION IDI_EXCLAMATION IDI_ASTERISK IDI_WINLOGO IDI_WINLOGO
syn keyword rcStdId IDI_WARNING IDI_ERROR IDI_INFORMATION
syn keyword rcStdId IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO IDCLOSE IDHELP IDC_STATIC

" Common RC keywords

" Common RC keywords
syn keyword rcTodo contained	TODO FIXME XXX

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match rcSpecial contained	"\\[0-7][0-7][0-7]\=\|\\."
syn region rcString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rcSpecial
syn match rcCharacter		"'[^\\]'"
syn match rcSpecialCharacter	"'\\.'"
syn match rcSpecialCharacter	"'\\[0-7][0-7]'"
syn match rcSpecialCharacter	"'\\[0-7][0-7][0-7]'"

"catch errors caused by wrong parenthesis
syn region rcParen		transparent start='(' end=')' contains=ALLBUT,rcParenError,rcIncluded,rcSpecial,rcTodo
syn match rcParenError		")"
syn match rcInParen contained	"[{}]"

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match rcNumber		"\<\d\+\(u\=l\=\|lu\|f\)\>"
"floating point number, with dot, optional exponent
syn match rcFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, starting with a dot, optional exponent
syn match rcFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match rcFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
"hex number
syn match rcNumber		"\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
"syn match rcIdentifier	"\<[a-z_][a-z0-9_]*\>"
syn case match
" flag an octal number with wrong digits
syn match rcOctalError		"\<0[0-7]*[89]"

if exists("rc_comment_strings")
  " A comment can contain rcString, rcCharacter and rcNumber.
  " But a "*/" inside a rcString in a rcComment DOES end the comment!  So we
  " need to use a special type of rcString: rcCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  " Unfortunately this doesn't very well work for // type of comments :-(
  syntax match rcCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region rcCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=rcSpecial,rcCommentSkip
  syntax region rcComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=rcSpecial
  syntax region rcComment	start="/\*" end="\*/" contains=rcTodo,rcCommentString,rcCharacter,rcNumber,rcFloat
  syntax match  rcComment	"//.*" contains=rcTodo,rcComment2String,rcCharacter,rcNumber
else
  syn region rcComment		start="/\*" end="\*/" contains=rcTodo
  syn match rcComment		"//.*" contains=rcTodo
endif
syntax match rcCommentError	"\*/"

syn region rcPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=rcComment,rcString,rcCharacter,rcNumber,rcCommentError
syn region rcIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match rcIncluded contained "<[^>]*>"
syn match rcInclude		"^\s*#\s*include\>\s*["<]" contains=rcIncluded
"syn match rcLineSkip	"\\$"
syn region rcDefine		start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen
syn region rcPreProc		start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen

syn sync ccomment rcComment minlines=10

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link rcCharacter	Character
hi def link rcSpecialCharacter rcSpecial
hi def link rcNumber	Number
hi def link rcFloat	Float
hi def link rcOctalError	rcError
hi def link rcParenError	rcError
hi def link rcInParen	rcError
hi def link rcCommentError	rcError
hi def link rcInclude	Include
hi def link rcPreProc	PreProc
hi def link rcDefine	Macro
hi def link rcIncluded	rcString
hi def link rcError	Error
hi def link rcPreCondit	PreCondit
hi def link rcCommentString rcString
hi def link rcComment2String rcString
hi def link rcCommentSkip	rcComment
hi def link rcString	String
hi def link rcComment	Comment
hi def link rcSpecial	SpecialChar
hi def link rcTodo	Todo

hi def link rcAttribute	rcCommonAttribute
hi def link rcStdId	rcStatement
hi def link rcStatement	Statement

" Default color overrides
hi def rcLanguage	term=reverse ctermbg=Red ctermfg=Yellow guibg=Red guifg=Yellow
hi def rcMainObject	term=underline ctermfg=Blue guifg=Blue
hi def rcSubObject	ctermfg=Green guifg=Green
hi def rcCaptionParam	term=underline ctermfg=DarkGreen guifg=Green
hi def rcParam	ctermfg=DarkGreen guifg=DarkGreen
hi def rcStatement	ctermfg=DarkGreen guifg=DarkGreen
hi def rcCommonAttribute	ctermfg=Brown guifg=Brown

"hi def link rcIdentifier	Identifier


let b:current_syntax = "rc"

" vim: ts=8
PK�j�Z5TW�a�avim80/syntax/fvwm.vimnu�[���" Vim syntax file for Fvwm-2.5.22
" Language:		Fvwm{1,2} configuration file
" Maintainer:		Gautam Iyer <gi1242@users.sourceforge.net>
" Previous Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
" Last Change:		Sat 29 Sep 2007 11:08:34 AM PDT
"
" Thanks to David Necas (Yeti) for adding Fvwm 2.4 support.
"
" 2006-05-09 gi1242: Rewrote fvwm2 syntax completely. Also since fvwm1 is now
" mostly obsolete, made the syntax file pick fvwm2 syntax by default.

if exists("b:current_syntax")
    finish
endif
let s:keepcpo= &cpo
set cpo&vim

" Fvwm configuration files are case insensitive
syn case ignore

" Identifiers in Fvwm can contain most characters, so we only
" include the most common ones here.
setlocal iskeyword=_,-,+,.,a-z,A-Z,48-57

" Syntax items common to fvwm1 and fvwm2 config files
syn cluster fvwmConstants	contains=fvwmEnvVar,fvwmNumber
syn match   fvwmEnvVar		"\$\w\+"
syn match   fvwmNumber		'\v<(\d+|0x[0-9a-f]+)>' 

syn match   fvwmModConf		nextgroup=fvwmModArg	"\v^\s*\*\a+"
syn region  fvwmModArg		contained contains=fvwmString,fvwmRGBValue
				\ start='.' skip='\\$' end='$'

syn region  fvwmString		contains=fvwmBackslash start='"'
				\ matchgroup=fvwmBackslash skip='\v\\"' end='"'
syn region  fvwmString		contains=fvwmBackslash start='`'
				\ matchgroup=fvwmBackslash skip='\v\\`' end='`'
syn region  fvwmString		contains=fvwmBackslash start="'"
				\ matchgroup=fvwmBackslash skip="\v\\'" end="'"
syn match   fvwmBackslash	contained '\\[^"'`]'

syn match   fvwmRGBValue	"#\x\{3}"
syn match   fvwmRGBValue	"#\x\{6}"
syn match   fvwmRGBValue	"#\x\{9}"
syn match   fvwmRGBValue	"#\x\{12}"
syn match   fvwmRGBValue	"rgb:\x\{1,4}/\x\{1,4}/\x\{1,4}"

syn region  fvwmComment		contains=@Spell
				\ start='^\s*#\s' skip='\\$' end='$'
syn region  fvwmComment		start="\v^\s*#(\S|$)" skip='\\$' end='$'

if (exists("b:fvwm_version") && b:fvwm_version == 1)
	    \ || (exists("use_fvwm_1") && use_fvwm_1)

    "
    " Syntax highlighting for Fvwm1 files.
    "

    " Moved from common syntax items
    syn match   fvwmModule	"\<Module\s\+\w\+"he=s+6
    syn keyword fvwmExec	Exec
    syn match   fvwmPath	"\<IconPath\s.*$"lc=8 contains=fvwmEnvVar
    syn match   fvwmPath	"\<ModulePath\s.*$"lc=10 contains=fvwmEnvVar
    syn match   fvwmPath	"\<PixmapPath\s.*$"lc=10 contains=fvwmEnvVar
    syn match   fvwmKey		"\<Key\s\+\w\+"he=s+3

    " fvwm1 specific items
    syn match  fvwmEnvVar	"\$(\w\+)"
    syn match  fvwmWhitespace	contained "\s\+"
    syn region fvwmStyle	oneline keepend
				\ contains=fvwmString,fvwmKeyword,fvwmWhiteSpace
				\ matchgroup=fvwmFunction
				\ start="^\s*Style\>"hs=e-5 end="$"

    syn keyword fvwmFunction	AppsBackingStore AutoRaise BackingStore Beep
				\ BoundaryWidth ButtonStyle CenterOnCirculate
				\ CirculateDown CirculateHit CirculateSkip
				\ CirculateSkipIcons CirculateUp ClickTime
				\ ClickToFocus Close Cursor CursorMove
				\ DecorateTransients Delete Desk DeskTopScale
				\ DeskTopSize Destroy DontMoveOff
				\ EdgeResistance EdgeScroll EndFunction
				\ EndMenu EndPopup Focus Font Function
				\ GotoPage HiBackColor HiForeColor Icon
				\ IconBox IconFont Iconify IconPath Key
				\ Lenience Lower Maximize MenuBackColor
				\ MenuForeColor MenuStippleColor Module
				\ ModulePath Mouse Move MWMBorders MWMButtons
				\ MWMDecorHints MWMFunctionHints
				\ MWMHintOverride MWMMenus NoBorder
				\ NoBoundaryWidth Nop NoPPosition NoTitle
				\ OpaqueMove OpaqueResize Pager PagerBackColor
				\ PagerFont PagerForeColor PagingDefault
				\ PixmapPath Popup Quit Raise RaiseLower
				\ RandomPlacement Refresh Resize Restart
				\ SaveUnders Scroll SloppyFocus SmartPlacement
				\ StartsOnDesk StaysOnTop StdBackColor
				\ StdForeColor Stick Sticky StickyBackColor
				\ StickyForeColor StickyIcons
				\ StubbornIconPlacement StubbornIcons
				\ StubbornPlacement SuppressIcons Title
				\ TogglePage Wait Warp WindowFont WindowList
				\ WindowListSkip WindowsDesk WindowShade
				\ XORvalue

    " These keywords are only used after the "Style" command.  To avoid
    " name collision with several commands, they are contained.
    syn keyword fvwmKeyword	contained
				\ BackColor BorderWidth BoundaryWidth Button
				\ CirculateHit CirculateSkip Color DoubleClick
				\ ForeColor Handles HandleWidth Icon IconTitle
				\ NoBorder NoBoundaryWidth NoButton NoHandles
				\ NoIcon NoIconTitle NoTitle Slippery
				\ StartIconic StartNormal StartsAnyWhere
				\ StartsOnDesk StaysOnTop StaysPut Sticky
				\ Title WindowListHit WindowListSkip

" elseif (exists("b:fvwm_version") && b:fvwm_version == 2)
" 	    \ || (exists("use_fvwm_2") && use_fvwm_2)
else

    "
    " Syntax highlighting for fvwm2 files.
    "
    syn match   fvwmEnvVar	"\${\w\+}"
    syn match   fvwmEnvVar	"\$\[[^]]\+\]"
    syn match   fvwmEnvVar	"\$[$0-9*]"

    syn match   fvwmDef		contains=fvwmMenuString,fvwmWhitespace
				\ '^\s*+\s*".\{-}"'
    syn region  fvwmMenuString	contains=fvwmIcon,fvwmShortcutKey
				\ start='^\s*+\s*\zs"' skip='\v\\\\|\\\"' end='"'
    syn region	fvwmIcon	contained start='\v\%\%@!' end='%'
    syn match   fvwmShortcutKey	contained "&."

    syn keyword fvwmModuleName	FvwmAnimate FvwmAudio FvwmAuto FvwmBacker
				\ FvwmBanner FvwmButtons FvwmCascade
				\ FvwmCommandS FvwmConsole FvwmConsoleC
				\ FvwmCpp FvwmDebug FvwmDragWell FvwmEvent
				\ FvwmForm FvwmGtkDebug FvwmIconBox
				\ FvwmIconMan FvwmIdent FvwmM4 FvwmPager
				\ FvwmPerl FvwmProxy FvwmRearrange FvwmSave
				\ FvwmSaveDesk FvwmScript FvwmScroll FvwmTabs
				\ FvwmTalk FvwmTaskBar FvwmTheme FvwmTile
				\ FvwmWharf FvwmWindowMenu FvwmWinList

    " Obsolete fvwmModuleName: FvwmTheme

    syn keyword fvwmKeyword	AddToMenu ChangeMenuStyle CopyMenuStyle
				\ DestroyMenu DestroyMenuStyle Menu
				\ Popup TearMenuOff Title BugOpts BusyCursor
				\ ClickTime ColorLimit ColormapFocus
				\ DefaultColors DefaultColorset DefaultFont
				\ DefaultIcon DefaultLayers Deschedule Emulate
				\ EscapeFunc FakeClick FakeKeypress GlobalOpts
				\ HilightColor HilightColorset IconFont
				\ PrintInfo Repeat Schedule State WindowFont
				\ XSync XSynchronize AnimatedMove
				\ HideGeometryWindow Layer Lower Move
				\ MoveToDesk MoveThreshold MoveToPage
				\ MoveToScreen OpaqueMoveSize PlaceAgain Raise
				\ RaiseLower ResizeMaximize ResizeMove
				\ ResizeMoveMaximize RestackTransients
				\ SetAnimation SnapAttraction SnapGrid
				\ WindowsDesk XorPixmap XorValue CursorMove
				\ FlipFocus Focus WarpToWindow Close Delete
				\ Destroy Iconify Recapture RecaptureWindow
				\ Refresh RefreshWindow Stick StickAcrossPages
				\ StickAcrossDesks WindowShade
				\ WindowShadeAnimate IgnoreModifiers
				\ EdgeCommand EdgeLeaveCommand GnomeButton
				\ Stroke StrokeFunc FocusStyle DestroyStyle
				\ DestroyWindowStyle UpdateStyles AddToDecor
				\ BorderStyle ChangeDecor DestroyDecor
				\ UpdateDecor DesktopName DeskTopSize
				\ EdgeResistance EdgeScroll EdgeThickness
				\ EwmhBaseStruts EWMHNumberOfDesktops
				\ GotoDeskAndPage GotoPage Scroll Xinerama
				\ XineramaPrimaryScreen XineramaSls
				\ XineramaSlsSize XineramaSlsScreens AddToFunc
				\ Beep DestroyFunc Echo Exec ExecUseShell
				\ Function Nop PipeRead Read SetEnv Silent
				\ UnsetEnv Wait DestroyModuleConfig KillModule
				\ Module ModuleListenOnly ModuleSynchronous
				\ ModuleTimeout SendToModule Quit QuitScreen
				\ QuitSession Restart SaveSession
				\ SaveQuitSession KeepRc NoWindow Break
				\ CleanupColorsets EchoFuncDefinition

    " Conditional commands
    syn keyword fvwmKeyword	nextgroup=fvwmCondition skipwhite
				\ All Any Current Next None Pick PointerWindow
				\ Prev ThisWindow
    syn keyword fvwmKeyword	nextgroup=fvwmDirection skipwhite
				\ Direction
    syn keyword fvwmDirection	contained nextgroup=fvwmDirection skipwhite
				\ FromPointer
    syn keyword fvwmDirection	contained nextgroup=fvwmCondition skipwhite
				\ North Northeast East Southeast South
				\ Southwest West Northwest Center
    syn region	fvwmCondition	contained contains=fvwmCondNames,fvwmString
				\ matchgroup=fvwmKeyword start='(' skip=','
				\ end=')'
    syn keyword fvwmCondNames	contained
				\ AcceptsFocus AnyScreen CirculateHit
				\ CirculateHitIcon CirculateHitShaded Closable
				\ CurrentDesk CurrentGlobalPage
				\ CurrentGlobalPageAnyDesk CurrentPage
				\ CurrentPageAnyDesk CurrentScreen FixedSize
				\ Focused HasHandles HasPointer Iconic
				\ Iconifiable Maximizable Maximized
				\ Overlapped PlacedByButton PlacedByButton3
				\ PlacedByFvwm Raised Shaded Sticky
				\ StickyAcrossDesks StickyAcrossPages
				\ Transient Visible StickyIcon
				\ StickyAcrossPagesIcon StickyAcrossDesksIcon

    syn keyword fvwmCondNames	contained skipwhite nextgroup=@fvwmConstants
				\ State Layer

    " Test
    syn keyword fvwmKeyword	nextgroup=fvwmTCond skipwhite
				\ Test
    syn region	fvwmTCond	contained contains=fvwmTCNames,fvwmString
				\ matchgroup=fvwmKeyword start='(' end=')'
    syn keyword	fvwmTCNames	contained
				\ Version EnvIsSet EnvMatch EdgeHasPointer
				\ EdgeIsActive Start Init Restart Exit Quit
				\ ToRestart True False F R W X I
    
    " TestRc
    syn keyword fvwmKeyword	nextgroup=fvwmTRCond skipwhite
				\ TestRc
    syn region	fvwmTRCond	contained contains=fvwmTRNames,fvwmNumber
				\ matchgroup=fvwmKeyword start='(' end=')'
    syn keyword	fvwmTRNames	contained NoMatch Match Error Break

    " Colorsets
    syn keyword fvwmKeyword	nextgroup=fvwmCSArgs	skipwhite
				\ ColorSet
    syn region	fvwmCSArgs	contained transparent contains=fvwmCSNames,@fvwmConstants,fvwmString,fvwmRGBValue,fvwmGradient
		\ start='.' skip='\\$' end='$'
    syn keyword	fvwmCSNames	contained
				\ fg Fore Foreground bg Back Background hi
				\ Hilite Hilight sh Shade Shadow fgsh Pixmap
				\ TiledPixmap AspectPixmap RootTransparent
				\ Shape TiledShape AspectShape Tint fgTint
				\ bgTint Alpha fgAlpha Dither IconTint
				\ IconAlpha NoShape Plain Translucent
    syn match	fvwmCSNames	contained	'\v<Transparent>'
    syn match	fvwmGradient	contained	'\v<[HVDBSCRY]Gradient>'

    " Styles
    syn keyword fvwmKeyword	nextgroup=fvwmStyleArgs skipwhite
				\ Style WindowStyle
    syn region	fvwmStyleArgs	contained transparent contains=fvwmStyleNames,@fvwmConstants,fvwmString,fvwmRGBValue
				\ start='.' skip='\\$' end='$'
    syn keyword	fvwmStyleNames	contained
				\ BorderWidth HandleWidth NoIcon Icon MiniIcon
				\ IconBox IconGrid IconFill IconSize NoTitle
				\ Title TitleAtBottom TitleAtLeft TitleAtRight
				\ TitleAtTop LeftTitleRotatedCW
				\ LeftTitleRotatedCCW RightTitleRotatedCCW
				\ RightTitleRotatedCW TopTitleRotated
				\ TopTitleNotRotated BottomTitleRotated
				\ BottomTitleNotRotated UseTitleDecorRotation
				\ StippledTitle StippledTitleOff
				\ IndexedWindowName ExactWindowName
				\ IndexedIconName ExactIconName Borders
				\ NoHandles Handles WindowListSkip
				\ WindowListHit CirculateSkip CirculateHit
				\ CirculateSkipShaded CirculateHitShaded Layer
				\ StaysOnTop StaysOnBottom StaysPut Sticky
				\ Slippery StickyAcrossPages StickyAcrossDesks
				\ StartIconic StartNormal Color ForeColor
				\ BackColor Colorset HilightFore HilightBack
				\ HilightColorset BorderColorset
				\ HilightBorderColorset IconTitleColorset
				\ HilightIconTitleColorset
				\ IconBackgroundColorset IconTitleRelief
				\ IconBackgroundRelief IconBackgroundPadding
				\ Font IconFont StartsOnDesk StartsOnPage
				\ StartsAnyWhere StartsOnScreen
				\ ManualPlacementHonorsStartsOnPage
				\ ManualPlacementIgnoresStartsOnPage
				\ CaptureHonorsStartsOnPage
				\ CaptureIgnoresStartsOnPage
				\ RecaptureHonorsStartsOnPage
				\ RecaptureIgnoresStartsOnPage
				\ StartsOnPageIncludesTransients
				\ StartsOnPageIgnoresTransients IconTitle
				\ NoIconTitle MwmButtons FvwmButtons MwmBorder
				\ FvwmBorder MwmDecor NoDecorHint MwmFunctions
				\ NoFuncHint HintOverride NoOverride NoButton
				\ Button ResizeHintOverride NoResizeOverride
				\ OLDecor NoOLDecor GNOMEUseHints
				\ GNOMEIgnoreHints StickyIcon SlipperyIcon
				\ StickyAcrossPagesIcon StickyAcrossDesksIcon
				\ ManualPlacement CascadePlacement
				\ MinOverlapPlacement
				\ MinOverlapPercentPlacement
				\ TileManualPlacement TileCascadePlacement
				\ MinOverlapPlacementPenalties
				\ MinOverlapPercentPlacementPenalties
				\ DecorateTransient NakedTransient
				\ DontRaiseTransient RaiseTransient
				\ DontLowerTransient LowerTransient
				\ DontStackTransientParent
				\ StackTransientParent SkipMapping ShowMapping
				\ ScatterWindowGroups KeepWindowGroupsOnDesk
				\ UseDecor UseStyle NoPPosition UsePPosition
				\ NoUSPosition UseUSPosition
				\ NoTransientPPosition UseTransientPPosition
				\ NoTransientUSPosition UseTransientUSPosition
				\ NoIconPosition UseIconPosition Lenience
				\ NoLenience ClickToFocus SloppyFocus
				\ MouseFocus FocusFollowsMouse NeverFocus
				\ ClickToFocusPassesClickOff
				\ ClickToFocusPassesClick
				\ ClickToFocusRaisesOff ClickToFocusRaises
				\ MouseFocusClickRaises
				\ MouseFocusClickRaisesOff GrabFocus
				\ GrabFocusOff GrabFocusTransientOff
				\ GrabFocusTransient FPFocusClickButtons
				\ FPFocusClickModifiers
				\ FPSortWindowlistByFocus FPClickRaisesFocused
				\ FPClickDecorRaisesFocused
				\ FPClickIconRaisesFocused
				\ FPClickRaisesUnfocused
				\ FPClickDecorRaisesUnfocused
				\ FPClickIconRaisesUnfocused FPClickToFocus
				\ FPClickDecorToFocus FPClickIconToFocus
				\ FPEnterToFocus FPLeaveToUnfocus
				\ FPFocusByProgram FPFocusByFunction
				\ FPFocusByFunctionWarpPointer FPLenient
				\ FPPassFocusClick FPPassRaiseClick
				\ FPIgnoreFocusClickMotion
				\ FPIgnoreRaiseClickMotion
				\ FPAllowFocusClickFunction
				\ FPAllowRaiseClickFunction FPGrabFocus
				\ FPGrabFocusTransient FPOverrideGrabFocus
				\ FPReleaseFocus FPReleaseFocusTransient
				\ FPOverrideReleaseFocus StartsLowered
				\ StartsRaised IgnoreRestack AllowRestack
				\ FixedPosition VariablePosition
				\ FixedUSPosition VariableUSPosition
				\ FixedPPosition VariablePPosition FixedSize
				\ VariableSize FixedUSSize VariableUSSize
				\ FixedPSize VariablePSize Closable
				\ Iconifiable Maximizable
				\ AllowMaximizeFixedSize IconOverride
				\ NoIconOverride NoActiveIconOverride
				\ DepressableBorder FirmBorder MaxWindowSize
				\ IconifyWindowGroups IconifyWindowGroupsOff
				\ ResizeOpaque ResizeOutline BackingStore
				\ BackingStoreOff BackingStoreWindowDefault
				\ Opacity ParentalRelativity SaveUnder
				\ SaveUnderOff WindowShadeShrinks
				\ WindowShadeScrolls WindowShadeSteps
				\ WindowShadeAlwaysLazy WindowShadeBusy
				\ WindowShadeLazy EWMHDonateIcon
				\ EWMHDontDonateIcon EWMHDonateMiniIcon
				\ EWMHDontDonateMiniIcon EWMHMiniIconOverride
				\ EWMHNoMiniIconOverride
				\ EWMHUseStackingOrderHints
				\ EWMHIgnoreStackingOrderHints
				\ EWMHIgnoreStateHints EWMHUseStateHints
				\ EWMHIgnoreStrutHints EWMHIgnoreWindowType
				\ EWMHUseStrutHints
				\ EWMHMaximizeIgnoreWorkingArea
				\ EWMHMaximizeUseWorkingArea
				\ EWMHMaximizeUseDynamicWorkingArea
				\ EWMHPlacementIgnoreWorkingArea
				\ EWMHPlacementUseWorkingArea
				\ EWMHPlacementUseDynamicWorkingArea
				\ MoveByProgramMethod Unmanaged State
				\ StippledIconTitle StickyStippledTitle
				\ StickyStippledIconTitle
				\ PositionPlacement
				\ UnderMousePlacementHonorsStartsOnPage
				\ UnderMousePlacementIgnoresStartsOnPage
				\ MinOverlapPlacementPenalties
				\ MinOverlapPercentPlacementPenalties
				\ MinWindowSize StartShaded

    " Cursor styles
    syn keyword fvwmKeyword	nextgroup=fvwmCursorStyle skipwhite
				\ CursorStyle
    syn case match
    syn keyword fvwmCursorStyle	contained
				\ POSITION TITLE DEFAULT SYS MOVE RESIZE WAIT
				\ MENU SELECT DESTROY TOP RIGHT BOTTOM LEFT
				\ TOP_LEFT TOP_RIGHT BOTTOM_LEFT BOTTOM_RIGHT
				\ TOP_EDGE RIGHT_EDGE BOTTOM_EDGE LEFT_EDGE
				\ ROOT STROKE
    syn case ignore

    " Menu style
    syn keyword fvwmKeyword	nextgroup=fvwmMStyleArgs skipwhite
				\ MenuStyle
    syn region	fvwmMStyleArgs	contained transparent contains=fvwmMStyleNames,@fvwmConstants,fvwmString,fvwmGradient,fvwmRGBValue
				\ start='.' skip='\\$' end='$'
    syn keyword	fvwmMStyleNames	contained
				\ Fvwm Mwm Win BorderWidth Foreground
				\ Background Greyed HilightBack HilightBackOff
				\ ActiveFore ActiveForeOff MenuColorset
				\ ActiveColorset GreyedColorset Hilight3DThick
				\ Hilight3DThin Hilight3DOff
				\ Hilight3DThickness Animation AnimationOff
				\ Font MenuFace PopupDelay PopupOffset
				\ TitleWarp TitleWarpOff TitleUnderlines0
				\ TitleUnderlines1 TitleUnderlines2
				\ SeparatorsLong SeparatorsShort
				\ TrianglesSolid TrianglesRelief
				\ PopupImmediately PopupDelayed
				\ PopdownImmediately PopdownDelayed
				\ PopupActiveArea DoubleClickTime SidePic
				\ SideColor PopupAsRootMenu PopupAsSubmenu
				\ PopupIgnore PopupClose RemoveSubmenus
				\ HoldSubmenus SubmenusRight SubmenusLeft
				\ SelectOnRelease ItemFormat
				\ VerticalItemSpacing VerticalTitleSpacing
				\ AutomaticHotkeys AutomaticHotkeysOff
				\ TitleFont TitleColorset HilightTitleBack

    " Button style
    syn keyword fvwmKeyword	nextgroup=fvwmBNum	skipwhite
				\ ButtonStyle AddButtonStyle
    syn match	fvwmBNum	contained
				\ nextgroup=fvwmBState,fvwmBStyleArgs skipwhite 
				\ '\v<([0-9]|All|Left|Right|Reset)>'
    syn keyword	fvwmBState	contained nextgroup=fvwmBStyleArgs skipwhite
				\ ActiveUp ActiveDown InactiveUp InactiveDown
				\ Active Inactive ToggledActiveUp
				\ ToggledActiveDown ToggledInactiveUp
				\ ToggledInactiveDown ToggledActive
				\ ToggledInactive AllNormal AllToggled
				\ AllActive AllInactive AllUp AllDown
    syn region	fvwmBStyleArgs	contained contains=fvwmBStyleFlags,fvwmBStyleNames,fvwmGradient,fvwmRGBValue,@fvwmConstants,fvwmString
				\ start='\S' skip='\\$' end='$'
    syn keyword	fvwmBStyleNames	contained
				\ Simple Default Solid Colorset Vector Pixmap
				\ AdjustedPixmap ShrunkPixmap StretchedPixmap
				\ TiledPixmap MiniIcon
    syn keyword fvwmBStyleFlags	contained
				\ Raised Sunk Flat UseTitleStyle
				\ UseBorderStyle

    " Border style
    syn keyword fvwmKeyword	skipwhite nextgroup=fvwmBdState,fvwmBdStyleArgs
				\ BorderStyle
    syn keyword	fvwmBdState	contained skipwhite nextgroup=fvwmBdStyleArgs
				\ Active Inactive
    syn region	fvwmBdStyleArgs	contained contains=fvwmBdStyNames,fvwmBdStyFlags
				\ start='\S' skip='\\$' end='$'
    syn keyword	fvwmBdStyNames	contained
				\ TiledPixmap Colorset
    syn keyword	fvwmBdStyFlags	contained
				\ HiddenHandles NoInset Raised Sunk Flat

    " Title styles
    syn keyword	fvwmKeyword	skipwhite nextgroup=fvwmTState,fvwmTStyleArgs
				\ TitleStyle AddTitleStyle
    syn keyword	fvwmTState	contained skipwhite nextgroup=fvwmTStyleArgs
				\ ActiveUp ActiveDown InactiveUp InactiveDown
				\ Active Inactive ToggledActiveUp
				\ ToggledActiveDown ToggledInactiveUp
				\ ToggledInactiveDown ToggledActive
				\ ToggledInactive AllNormal AllToggled
				\ AllActive AllInactive AllUp AllDown
    syn region	fvwmTStyleArgs	contained contains=fvwmBStyleNames,fvwmTStyleNames,fvwmMPmapNames,fvwmTStyleFlags,fvwmGradient,fvwmRGBValue,@fvwmConstants
				\ start='\S' skip='\\$' end='$'
    syn keyword	fvwmTStyleNames	contained
				\ MultiPixmap
    syn keyword fvwmTStyleNames	contained
				\ LeftJustified Centered RightJustified Height
				\ MinHeight
    syn keyword	fvwmMPmapNames	contained
				\ Main LeftMain RightMain UnderText LeftOfText
				\ RightOfText LeftEnd RightEnd Buttons
				\ LeftButtons RightButtons
    syn keyword	fvwmTStyleFlags	contained
				\ Raised Flat Sunk

    " Button state
    syn keyword fvwmKeyword	nextgroup=fvwmBStateArgs
				\ ButtonState
    syn region	fvwmBStateArgs	contained contains=fvwmBStateTF,fvwmBStateNames
				\ start='.' skip='\\$' end='$'
    syn keyword	fvwmBStateNames	contained ActiveDown Inactive InactiveDown
    syn keyword fvwmBStateTF	contained True False

    " Paths
    syn keyword fvwmKeyword	nextgroup=fvwmPath	skipwhite
				\ IconPath ImagePath LocalePath PixmapPath
				\ ModulePath 
    syn match	fvwmPath	contained contains=fvwmEnvVar '\v.+$'

    " Window list command
    syn keyword fvwmKeyword	nextgroup=fvwmWLArgs skipwhite
				\ WindowList
    syn region	fvwmWLArgs	contained
		\ contains=fvwmCondition,@fvwmConstants,fvwmString,fvwmWLOpts
		\ start='.' skip='\\$' end='$'
    syn keyword fvwmWLOpts	contained
				\ Geometry NoGeometry NoGeometryWithInfo
				\ NoDeskNum NoNumInDeskTitle
				\ NoCurrentDeskTitle MaxLabelWidth width
				\ TitleForAllDesks Function funcname Desk
				\ desknum CurrentDesk NoIcons Icons OnlyIcons
				\ NoNormal Normal OnlyNormal NoSticky Sticky
				\ OnlySticky NoStickyAcrossPages
				\ StickyAcrossPages OnlyStickyAcrossPages
				\ NoStickyAcrossDesks StickyAcrossDesks
				\ OnlyStickyAcrossDesks NoOnTop OnTop
				\ OnlyOnTop NoOnBottom OnBottom OnlyOnBottom
				\ Layer UseListSkip OnlyListSkip NoDeskSort
				\ ReverseOrder CurrentAtEnd IconifiedAtEnd
				\ UseIconName Alphabetic NotAlphabetic
				\ SortByResource SortByClass NoHotkeys
				\ SelectOnRelease

    syn keyword fvwmSpecialFn	StartFunction InitFunction RestartFunction
				\ ExitFunction SessionInitFunction
				\ SessionRestartFunction SessionExitFunction
				\ MissingSubmenuFunction WindowListFunc

    syn keyword fvwmKeyword	skipwhite nextgroup=fvwmKeyWin,fvwmKeyName
				\ Key PointerKey
    syn region	fvwmKeyWin	contained skipwhite nextgroup=fvwmKeyName
				\ start='(' end=')'
    syn case match
    syn match	fvwmKeyName	contained skipwhite nextgroup=fvwmKeyContext
				\ '\v<([a-zA-Z0-9]|F\d+|KP_\d)>'
    syn keyword fvwmKeyName	contained skipwhite nextgroup=fvwmKeyContext
				\ BackSpace Begin Break Cancel Clear Delete
				\ Down End Escape Execute Find Help Home
				\ Insert KP_Add KP_Begin KP_Decimal KP_Delete
				\ KP_Divide KP_Down KP_End KP_Enter KP_Equal
				\ KP_Home KP_Insert KP_Left KP_Multiply
				\ KP_Next KP_Page_Down KP_Page_Up KP_Prior
				\ KP_Right KP_Separator KP_Space KP_Subtract
				\ KP_Tab KP_Up Left Linefeed Menu Mode_switch
				\ Next Num_Lock Page_Down Page_Up Pause Print
				\ Prior Redo Return Right script_switch
				\ Scroll_Lock Select Sys_Req Tab Undo Up space
				\ exclam quotedbl numbersign dollar percent
				\ ampersand apostrophe quoteright parenleft
				\ parenright asterisk plus comma minus period
				\ slash colon semicolon less equal greater
				\ question at bracketleft backslash
				\ bracketright asciicircum underscore grave
				\ quoteleft braceleft bar braceright
				\ asciitilde

    syn match	fvwmKeyContext	contained skipwhite nextgroup=fvwmKeyMods
				\ '\v<[][RWDTS_F<^>vI0-9AM-]+>'
    syn match	fvwmKeyMods	contained '\v[NCSMLA1-5]+'
    syn case ignore

    syn keyword	fvwmKeyword	skipwhite nextgroup=fvwmMouseWin,fvwmMouseButton
				\ Mouse
    syn region	fvwmMouseWin	contained skipwhite nextgroup=fvwmMouseButton
				\ start='(' end=')'
    syn match	fvwmMouseButton	contained skipwhite nextgroup=fvwmKeyContext
				\ '[0-5]'
endif

" Define syntax highlighting groups

"
" Common highlighting groups
"
hi def link fvwmComment		Comment
hi def link fvwmEnvVar		Macro
hi def link fvwmNumber		Number
hi def link fvwmKeyword		Keyword
hi def link fvwmPath		Constant
hi def link fvwmModConf		Macro
hi def link fvwmRGBValue	Constant
hi def link fvwmString		String
hi def link fvwmBackslash	SpecialChar


"
" Highlighting groups for fvwm1 specific items
"
hi def link fvwmExec		fvwmKeyword
hi def link fvwmKey		fvwmKeyword
hi def link fvwmModule		fvwmKeyword
hi def link fvwmFunction	Function

"
" Highlighting groups for fvwm2 specific items
"
hi def link fvwmSpecialFn	Type
hi def link fvwmCursorStyle	fvwmStyleNames
hi def link fvwmStyleNames	Identifier
hi def link fvwmMStyleNames	fvwmStyleNames
hi def link fvwmCSNames		fvwmStyleNames
hi def link fvwmGradient	fvwmStyleNames
hi def link fvwmCondNames	fvwmStyleNames
hi def link fvwmTCNames		fvwmStyleNames
hi def link fvwmTRNames		fvwmStyleNames
hi def link fvwmWLOpts		fvwmStyleNames

hi def link fvwmBNum		Number
hi def link fvwmBState		Type
hi def link fvwmBStyleNames	fvwmStyleNames
hi def link fvwmBStyleFlags	Special

hi def link fvwmBStateTF	Constant
hi def link fvwmBStateNames	fvwmStyleNames

hi def link fvwmBdState		fvwmBState
hi def link fvwmBdStyNames	fvwmStyleNames
hi def link fvwmBdStyFlags	fvwmBStyleFlags

hi def link fvwmTState		fvwmBState
hi def link fvwmTStyleNames	fvwmStyleNames
hi def link fvwmMPmapNames	fvwmBStyleFlags
hi def link fvwmTStyleFlags	fvwmBStyleFlags

hi def link fvwmDirection	fvwmBStyleFlags

hi def link fvwmKeyWin		Constant
hi def link fvwmMouseWin	fvwmKeyWin
hi def link fvwmKeyName		Special
hi def link fvwmKeyContext	fvwmKeyName
hi def link fvwmKeyMods		fvwmKeyName
hi def link fvwmMouseButton	fvwmKeyName

hi def link fvwmMenuString	String
hi def link fvwmIcon		Type
hi def link fvwmShortcutKey	SpecialChar

hi def link fvwmModuleName	Function

let b:current_syntax = "fvwm"

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z=��1�1�vim80/syntax/sh.vimnu�[���" Vim syntax file
" Language:		shell (sh) Korn shell (ksh) bash (sh)
" Maintainer:		Charles E. Campbell  <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change:		Mar 19, 2018
" Version:		174
" URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use:      :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)

" quit when a syntax file was already loaded {{{1
if exists("b:current_syntax")
  finish
endif

" 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 getline(1) =~ '\<ksh$'
 let b:is_kornshell = 1
elseif getline(1) =~ '\<bash$'
 let b:is_bash      = 1
elseif getline(1) =~ '\<dash$'
 let b:is_posix     = 1
elseif !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
 let s:shell = ""
 if executable("/bin/sh")
  let s:shell = resolve("/bin/sh")
 elseif executable("/usr/bin/sh")
  let s:shell = resolve("/usr/bin/sh")
 endif
 if     s:shell =~ 'ksh$'
  let b:is_kornshell= 1
 elseif s:shell =~ 'bash$'
  let b:is_bash = 1
 elseif s:shell =~ 'dash$'
  let b:is_posix = 1
 endif
 unlet s:shell
endif

" handling /bin/sh with is_kornshell/is_sh {{{1
" b:is_sh is set when "#! /bin/sh" is found;
" However, it often is just a masquerade by bash (typically Linux)
" or kornshell (typically workstations with Posix "sh").
" So, when the user sets "g:is_bash", "g:is_kornshell",
" or "g:is_posix", a b:is_sh is converted into b:is_bash/b:is_kornshell,
" respectively.
if !exists("b:is_kornshell") && !exists("b:is_bash")
  if exists("g:is_posix") && !exists("g:is_kornshell")
   let g:is_kornshell= g:is_posix
  endif
  if exists("g:is_kornshell")
    let b:is_kornshell= 1
    if exists("b:is_sh")
      unlet b:is_sh
    endif
  elseif exists("g:is_bash")
    let b:is_bash= 1
    if exists("b:is_sh")
      unlet b:is_sh
    endif
  else
    let b:is_sh= 1
  endif
endif

" set up default g:sh_fold_enabled {{{1
" ================================
if !exists("g:sh_fold_enabled")
 let g:sh_fold_enabled= 0
elseif g:sh_fold_enabled != 0 && !has("folding")
 let g:sh_fold_enabled= 0
 echomsg "Ignoring g:sh_fold_enabled=".g:sh_fold_enabled."; need to re-compile vim for +fold support"
endif
if !exists("s:sh_fold_functions")
 let s:sh_fold_functions= and(g:sh_fold_enabled,1)
endif
if !exists("s:sh_fold_heredoc")
 let s:sh_fold_heredoc  = and(g:sh_fold_enabled,2)
endif
if !exists("s:sh_fold_ifdofor")
 let s:sh_fold_ifdofor  = and(g:sh_fold_enabled,4)
endif
if g:sh_fold_enabled && &fdm == "manual"
 " 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

" set up the syntax-highlighting iskeyword
if has("patch-7.4.1142")
 if exists("b:is_bash")
  exe "syn iskeyword ".&iskeyword.",-,:"
 else
  exe "syn iskeyword ".&iskeyword.",-"
 endif
endif

" Set up folding commands for shell {{{1
" =================================
if s:sh_fold_functions
 com! -nargs=* ShFoldFunctions <args> fold
else
 com! -nargs=* ShFoldFunctions <args>
endif
if s:sh_fold_heredoc
 com! -nargs=* ShFoldHereDoc <args> fold
else
 com! -nargs=* ShFoldHereDoc <args>
endif
if s:sh_fold_ifdofor
 com! -nargs=* ShFoldIfDoFor <args> fold
else
 com! -nargs=* ShFoldIfDoFor <args>
endif

" sh syntax is case sensitive {{{1
syn case match

" Clusters: contains=@... clusters {{{1
"==================================
syn cluster shErrorList	contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError,shOK
if exists("b:is_kornshell") || exists("b:is_bash")
 syn cluster ErrorList add=shDTestError
endif
syn cluster shArithParenList	contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
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 shCaseList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
syn cluster shCommandSubList	contains=shAlias,shArithmetic,shCmdParenRegion,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
syn cluster shCurlyList	contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
syn cluster shDblQuoteList	contains=shCommandSub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial
syn cluster shDerefList	contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
syn cluster shDerefVarList	contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
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 shExprList2	contains=@shExprList1,@shCaseList,shTest
syn cluster shFunctionList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
if exists("b:is_kornshell") || exists("b:is_bash")
 syn cluster shFunctionList	add=shRepeat
 syn cluster shFunctionList	add=shDblBrace,shDblParen
endif
syn cluster shHereBeginList	contains=@shCommandSubList
syn cluster shHereList	contains=shBeginHere,shHerePayload
syn cluster shHereListDQ	contains=shBeginHere,@shDblQuoteList,shHerePayload
syn cluster shIdList	contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shHereString,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
syn cluster shIfList	contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shLoopList	contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
syn cluster shPPSRightList	contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm
syn cluster shSubShList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList	contains=shCharClass,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
syn cluster shNoZSList	contains=shSpecialNoZS

" Echo: {{{1
" ====
" This one is needed INSIDE a CommandSub, so that `echo bla` be correct
syn region shEcho matchgroup=shStatement start="\<echo\>"  skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
syn match  shEchoQuote contained	'\%(\\\\\)*\\["`'()]'

" This must be after the strings, so that ... \" will be correct
syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shExDoubleQuote,shDoubleQuote,shCharClass,shCtrlSeq

" Alias: {{{1
" =====
if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
 syn match shStatement "\<alias\>"
 syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+\)\@="  skip="\\$" end="\>\|`"
 syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="="

 " Touch: {{{1
 " =====
 syn match shTouch	'\<touch\>[^;#]*'	skipwhite nextgroup=shComment contains=shTouchCmd,shDoubleQuote,shSingleQuote,shDeref,shDerefSimple
 syn match shTouchCmd	'\<touch\>'		contained
endif

" Error Codes: {{{1
" ============
if !exists("g:sh_no_error")
 syn match   shDoError "\<done\>"
 syn match   shIfError "\<fi\>"
 syn match   shInError "\<in\>"
 syn match   shCaseError ";;"
 syn match   shEsacError "\<esac\>"
 syn match   shCurlyError "}"
 syn match   shParenError ")"
 syn match   shOK	'\.\(done\|fi\|in\|esac\)'
 if exists("b:is_kornshell") || exists("b:is_bash")
  syn match     shDTestError "]]"
 endif
 syn match     shTestError "]"
endif

" Options: {{{1
" ====================
syn match   shOption	"\s\zs[-+][-_a-zA-Z#@]\+"
syn match   shOption	"\s\zs--[^ \t$`'"|);]\+"

" File Redirection Highlighted As Operators: {{{1
"===========================================
syn match      shRedir	"\d\=>\(&[-0-9]\)\="
syn match      shRedir	"\d\=>>-\="
syn match      shRedir	"\d\=<\(&[-0-9]\)\="
syn match      shRedir	"\d<<-\="

" Operators: {{{1
" ==========
syn match   shOperator	"<<\|>>"		contained
syn match   shOperator	"[!&;|]"		contained
syn match   shOperator	"\[[[^:]\|\]]"		contained
syn match   shOperator	"[-=/*+%]\=="		skipwhite nextgroup=shPattern
syn match   shPattern	"\<\S\+\())\)\@="	contained contains=shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shDeref

" Subshells: {{{1
" ==========
syn region shExpr  transparent matchgroup=shExprRegion  start="{" end="}"		contains=@shExprList2 nextgroup=shSpecialNxt
syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"	contains=@shSubShList nextgroup=shSpecialNxt

" Tests: {{{1
"=======
syn region shExpr	matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
syn region shTest	transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
syn region shNoQuote	start='\S'	skip='\%(\\\\\)*\\.'	end='\ze\s' end="\ze['"]"	contained contains=shDerefSimple,shDeref
syn match  shAstQuote	contained	'\*\ze"'	nextgroup=shString
syn match  shTestOpr	contained	'[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match  shTestOpr	contained	"<=\|>=\|!=\|==\|=\~\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
syn match  shTestPattern	contained	'\w\+'
syn region shTestDoubleQuote	contained	start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\\|\\"+ end='"'	contains=shDeref,shDerefSimple,shDerefSpecial
syn match  shTestSingleQuote	contained	'\\.'	nextgroup=shTestSingleQuote
syn match  shTestSingleQuote	contained	"'[^']*'"
if exists("b:is_kornshell") || exists("b:is_bash")
 syn region  shDblBrace matchgroup=Delimiter start="\[\["	skip=+\%(\\\\\)*\\$+ end="\]\]"	contains=@shTestList,shAstQuote,shNoQuote,shComment
 syn region  shDblParen matchgroup=Delimiter start="(("	skip=+\%(\\\\\)*\\$+ end="))"	contains=@shTestList,shComment
endif

" Character Class In Range: {{{1
" =========================
syn match   shCharClass	contained	"\[:\(backspace\|escape\|return\|xdigit\|alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|tab\):\]"

" Loops: do, if, while, until {{{1
" ======
ShFoldIfDoFor syn region shDo	transparent	matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>"			contains=@shLoopList
ShFoldIfDoFor syn region shIf	transparent	matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>"	contains=@shIfList
ShFoldIfDoFor syn region shFor		matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2			contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
ShFoldIfDoFor syn region shForPP	matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr

if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
 syn cluster shCaseList	add=shRepeat
 syn cluster shFunctionList	add=shRepeat
 syn region shRepeat   matchgroup=shLoop   start="\<while\_s" end="\<do\>"me=e-2	contains=@shLoopList,shDblParen,shDblBrace
 syn region shRepeat   matchgroup=shLoop   start="\<until\_s" end="\<do\>"me=e-2	contains=@shLoopList,shDblParen,shDblBrace
 if !exists("b:is_posix")
  syn region shCaseEsac matchgroup=shConditional start="\<select\s" matchgroup=shConditional end="\<in\>" end="\<do\>" contains=@shLoopList
 endif
else
 syn region shRepeat   matchgroup=shLoop   start="\<while\_s" end="\<do\>"me=e-2		contains=@shLoopList
 syn region shRepeat   matchgroup=shLoop   start="\<until\_s" end="\<do\>"me=e-2		contains=@shLoopList
endif
syn region shCurlyIn   contained	matchgroup=Delimiter start="{" end="}" contains=@shCurlyList
syn match  shComma     contained	","

" Case: case...esac {{{1
" ====
syn match   shCaseBar	contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|"		nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
syn match   shCaseStart	contained skipwhite skipnl "("			nextgroup=shCase,shCaseBar
if exists("b:is_bash")
 ShFoldIfDoFor syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end=";&" end=";;&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
else
 ShFoldIfDoFor syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
endif
ShFoldIfDoFor syn region  shCaseEsac	matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList

syn keyword shCaseIn	contained skipwhite skipnl in			nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
if exists("b:is_bash")
 syn region  shCaseExSingleQuote	matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial,shSpecial	skipwhite skipnl nextgroup=shCaseBar	contained
elseif !exists("g:sh_no_error")
 syn region  shCaseExSingleQuote	matchgroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial	skipwhite skipnl nextgroup=shCaseBar	contained
endif
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  shCaseCommandSub	start=+`+ skip=+\\\\\|\\.+ end=+`+		contains=@shCommandSubList		skipwhite skipnl nextgroup=shCaseBar	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
"======
syn match   shWrapLineOperator "\\$"
syn region  shCommandSub   	start="`" skip="\\\\\|\\." end="`"	contains=@shCommandSubList
syn match   shEscape	contained	'\%(^\)\@!\%(\\\\\)*\\.'

" $() and $(()): {{{1
" $(..) is not supported by sh (Bourne shell).  However, apparently
" some systems (HP?) have as their /bin/sh a (link to) Korn shell
" (ie. Posix compliant shell).  /bin/ksh should work for those
" systems too, however, so the following syntax will flag $(..) as
" an Error under /bin/sh.  By consensus of vimdev'ers!
if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
 syn region shCommandSub matchgroup=shCmdSubRegion start="\$("  skip='\\\\\|\\.' end=")"  contains=@shCommandSubList
 syn region shArithmetic matchgroup=shArithRegion  start="\$((" skip='\\\\\|\\.' end="))" contains=@shArithList
 syn region shArithmetic matchgroup=shArithRegion  start="\$\[" skip='\\\\\|\\.' end="\]" contains=@shArithList
 syn match  shSkipInitWS contained	"^\s\+"
elseif !exists("g:sh_no_error")
 syn region shCommandSub matchgroup=Error start="\$(" end=")" contains=@shCommandSubList
endif
syn region shCmdParenRegion matchgroup=shCmdSubRegion start="(\ze[^(]" skip='\\\\\|\\.' end=")" contains=@shCommandSubList

if exists("b:is_bash")
 syn cluster shCommandSubList add=bashSpecialVariables,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 bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
 syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
 syn keyword bashStatement	command compgen
endif

if exists("b:is_kornshell") || exists("b:is_posix")
 syn cluster shCommandSubList add=kshSpecialVariables,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 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 tput
 syn keyword kshStatement command setgroups setsenv
endif

syn match   shSource	"^\.\s"
syn match   shSource	"\s\.\s"
"syn region  shColon	start="^\s*:" end="$" end="\s#"me=e-2 contains=@shColonList
"syn region  shColon	start="^\s*\zs:" end="$" end="\s#"me=e-2
if exists("b:is_kornshell") || exists("b:is_posix")
 syn match   shColon	'^\s*\zs:'
endif

" String And Character Constants: {{{1
"================================
syn match   shNumber	"\<\d\+\>#\="
syn match   shNumber	"\<-\=\.\=\d\+\>#\="
syn match   shCtrlSeq	"\\\d\d\d\|\\[abcfnrtv0]"			contained
if exists("b:is_bash")
 syn match   shSpecial	"[^\\]\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]"	contained
 syn match   shSpecial	"^\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]"	contained
 syn region  shExSingleQuote	matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial,shSpecial		nextgroup=shSpecialNxt
 syn region  shExDoubleQuote	matchgroup=shQuote start=+\$"+ skip=+\\\\\|\\.\|\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,shSpecial	nextgroup=shSpecialNxt
elseif !exists("g:sh_no_error")
 syn region  shExSingleQuote	matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial
 syn region  shExDoubleQuote	matchGroup=Error start=+\$"+ skip=+\\\\\|\\.+ end=+"+	contains=shStringSpecial
endif
syn region  shSingleQuote	matchgroup=shQuote start=+'+ end=+'+		contains=@Spell	nextgroup=shSpecialStart
syn region  shDoubleQuote	matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell	nextgroup=shSpecialStart
syn match   shStringSpecial	"[^[:print:] \t]"			contained
syn match   shStringSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"		nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
syn match   shSpecialStart	"\%(\\\\\)*\\[\\"'`$()#]"			contained	nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
syn match   shSpecial	"^\%(\\\\\)*\\[\\"'`$()#]"
syn match   shSpecialNoZS	contained	"\%(\\\\\)*\\[\\"'`$()#]"
syn match   shSpecialNxt	contained	"\\[\\"'`$()#]"
syn region  shBkslshSnglQuote	contained	matchgroup=shQuote start=+'+ end=+'+	contains=@Spell
syn region  shBkslshDblQuote	contained	matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell

" Comments: {{{1
"==========
syn cluster	shCommentGroup	contains=shTodo,@Spell
if exists("b:is_bash")
 syn match	shTodo	contained		"\<\%(COMBAK\|FIXME\|TODO\|XXX\)\ze:\=\>"
else
 syn keyword	shTodo	contained		COMBAK FIXME TODO XXX
endif
syn match	shComment		"^\s*\zs#.*$"	contains=@shCommentGroup
syn match	shComment		"\s\zs#.*$"	contains=@shCommentGroup
syn match	shComment	contained	"#.*$"	contains=@shCommentGroup
syn match	shQuickComment	contained	"#.*$"

" Here Documents: {{{1
" =========================================
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc01 end="^\z1\s*$"	contains=@shDblQuoteList
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t0-9|>]\+\)\""		matchgroup=shHereDoc02 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc03 end="^\s*\z1\s*$"	contains=@shDblQuoteList
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^'0-9]\+\)'"		matchgroup=shHereDoc04 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^'0-9]\+\)'"		matchgroup=shHereDoc05 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t0-9|>]\+\)\""		matchgroup=shHereDoc06 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t0-9|>]\+\)"	matchgroup=shHereDoc07 end="^\z1\s*$"           contains=@shDblQuoteList
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t0-9|>]\+\)'"	matchgroup=shHereDoc08 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t0-9|>]\+\)\""	matchgroup=shHereDoc09 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t0-9|>]\+\)"	matchgroup=shHereDoc10 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t0-9|>]\+\)"	matchgroup=shHereDoc11 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t0-9|>]\+\)'"	matchgroup=shHereDoc12 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t0-9|>]\+\)\""	matchgroup=shHereDoc13 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc14 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc15 end="^\s*\z1\s*$"

" Here Strings: {{{1
" =============
" 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("b:is_posix"))
 syn match shHereString "<<<"	skipwhite	nextgroup=shCmdParenRegion
endif

" Identifiers: {{{1
"=============
syn match  shSetOption	"\s\zs[-+][a-zA-Z0-9]\+\>"	contained
syn match  shVariable	"\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze="	nextgroup=shVarAssign
syn match  shVarAssign	"="		contained	nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote
syn region shAtExpr	contained	start="@(" end=")" contains=@shIdList
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="\<set\>\ze[^/]" end="\ze[;|)]\|$"			matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+="	contains=@shIdList
elseif exists("b:is_kornshell") || exists("b:is_posix")
 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
else
 syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]"	contains=@shIdList
endif

" Functions: {{{1
if !exists("b:is_posix")
 syn keyword shFunctionKey function	skipwhite skipnl nextgroup=shFunctionTwo
endif

if exists("b:is_bash")
 ShFoldFunctions syn region shFunctionOne	matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*{"		end="}"	contains=@shFunctionList		 skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
 ShFoldFunctions syn region shFunctionTwo	matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*{"	end="}"	contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
 ShFoldFunctions syn region shFunctionThree	matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*("		end=")"	contains=@shFunctionList		 skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
 ShFoldFunctions syn region shFunctionFour	matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*)"	end=")"	contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else
 ShFoldFunctions syn region shFunctionOne	matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{"			end="}"	contains=@shFunctionList		 skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
 ShFoldFunctions syn region shFunctionTwo	matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*{"		end="}"	contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
 ShFoldFunctions syn region shFunctionThree	matchgroup=shFunction start="^\s*\h\w*\s*()\_s*("			end=")"	contains=@shFunctionList		 skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
 ShFoldFunctions syn region shFunctionFour	matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*("		end=")"	contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
endif

" Parameter Dereferencing: {{{1
" ========================
if !exists("g:sh_no_error")
 syn match  shDerefWordError	"[^}$[~]"	contained
endif
syn match  shDerefSimple	"\$\%(\h\w*\|\d\)"	nextgroup=@shNoZSList
syn region shDeref	matchgroup=PreProc start="\${" end="}"	contains=@shDerefList,shDerefVarArray
syn match  shDerefSimple	"\$[-#*@!?]"	nextgroup=@shNoZSList
syn match  shDerefSimple	"\$\$"	nextgroup=@shNoZSList
syn match  shDerefSimple	"\${\d}"	nextgroup=@shNoZSList
if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
 syn region shDeref	matchgroup=PreProc start="\${##\=" end="}"	contains=@shDerefList	nextgroup=@shSpecialNoZS
 syn region shDeref	matchgroup=PreProc start="\${\$\$" end="}"	contains=@shDerefList	nextgroup=@shSpecialNoZS
endif

" ksh: ${!var[*]} array index list syntax: {{{1
" ========================================
if exists("b:is_kornshell") || exists("b:is_posix")
 syn region shDeref	matchgroup=PreProc start="\${!" end="}"	contains=@shDerefVarArray
endif

" bash: ${!prefix*} and ${#parameter}: {{{1
" ====================================
if exists("b:is_bash")
 syn region shDeref	matchgroup=PreProc start="\${!" end="\*\=}"	contains=@shDerefList,shDerefOff
 syn match  shDerefVar	contained	"{\@<=!\h\w*"		nextgroup=@shDerefVarList
endif
if exists("b:is_kornshell")
 syn match  shDerefVar	contained	"{\@<=!\h\w*[[:alnum:]_.]*"	nextgroup=@shDerefVarList
endif

syn match  shDerefSpecial	contained	"{\@<=[-*@?0]"		nextgroup=shDerefOp,shDerefOpError
syn match  shDerefSpecial	contained	"\({[#!]\)\@<=[[:alnum:]*@_]\+"	nextgroup=@shDerefVarList,shDerefOp
syn match  shDerefVar	contained	"{\@<=\h\w*"		nextgroup=@shDerefVarList
syn match  shDerefVar	contained	'\d'                            nextgroup=@shDerefVarList
if exists("b:is_kornshell") || exists("b:is_posix")
  syn match  shDerefVar	contained	"{\@<=\h\w*[[:alnum:]_.]*"	nextgroup=@shDerefVarList
endif

" sh ksh bash : ${var[... ]...}  array reference: {{{1
syn region  shDerefVarArray   contained	matchgroup=shDeref start="\[" end="]"	contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError

" Special ${parameter OPERATOR word} handling: {{{1
" sh ksh bash : ${parameter:-word}    word is default value
" sh ksh bash : ${parameter:=word}    assign word as default value
" sh ksh bash : ${parameter:?word}    display word if parameter is null
" sh ksh bash : ${parameter:+word}    use word if parameter is not null, otherwise nothing
"    ksh bash : ${parameter#pattern}  remove small left  pattern
"    ksh bash : ${parameter##pattern} remove large left  pattern
"    ksh bash : ${parameter%pattern}  remove small right pattern
"    ksh bash : ${parameter%%pattern} remove large right pattern
"        bash : ${parameter^pattern}  Case modification
"        bash : ${parameter^^pattern} Case modification
"        bash : ${parameter,pattern}  Case modification
"        bash : ${parameter,,pattern} Case modification
syn cluster shDerefPatternList	contains=shDerefPattern,shDerefString
if !exists("g:sh_no_error")
 syn match shDerefOpError	contained	":[[:punct:]]"
endif
syn match  shDerefOp	contained	":\=[-=?]"	nextgroup=@shDerefPatternList
syn match  shDerefOp	contained	":\=+"	nextgroup=@shDerefPatternList
if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
 syn match  shDerefOp	contained	"#\{1,2}"		nextgroup=@shDerefPatternList
 syn match  shDerefOp	contained	"%\{1,2}"		nextgroup=@shDerefPatternList
 syn match  shDerefPattern	contained	"[^{}]\+"		contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern
 syn region shDerefPattern	contained	start="{" end="}"	contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern
 syn match  shDerefEscape	contained	'\%(\\\\\)*\\.'
endif
if exists("b:is_bash")
 syn match  shDerefOp	contained	"[,^]\{1,2}"	nextgroup=@shDerefPatternList
endif
syn region shDerefString	contained	matchgroup=shDerefDelim start=+\%(\\\)\@<!'+ end=+'+	contains=shStringSpecial
syn region shDerefString	contained	matchgroup=shDerefDelim start=+\%(\\\)\@<!"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial
syn match  shDerefString	contained	"\\["']"	nextgroup=shDerefPattern

if exists("b:is_bash")
 " bash : ${parameter:offset}
 " bash : ${parameter:offset:length}
 syn region shDerefOff	contained	start=':'	end='\ze:'	end='\ze}'	contains=shDeref,shDerefSimple,shDerefEscape	nextgroup=shDerefLen,shDeref,shDerefSimple
 syn region shDerefOff	contained	start=':\s-'	end='\ze:'	end='\ze}'	contains=shDeref,shDerefSimple,shDerefEscape	nextgroup=shDerefLen,shDeref,shDerefSimple
 syn match  shDerefLen	contained	":[^}]\+"	contains=shDeref,shDerefSimple

 " bash : ${parameter//pattern/string}
 " bash : ${parameter//pattern}
 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 shDerefPPSright	contained	start='.'	skip=@\%(\\\\\)\+@		end='\ze}'	contains=@shPPSRightList

 " bash : ${parameter/#substring/replacement}
 syn match  shDerefPSR	contained	'/#'	nextgroup=shDerefPSRleft
 syn region shDerefPSRleft	contained	start='.'	skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp	end='/' end='\ze}' nextgroup=shDerefPSRright
 syn region shDerefPSRright	contained	start='.'	skip=@\%(\\\\\)\+@		end='\ze}'
endif

" Arithmetic Parenthesized Expressions: {{{1
"syn region shParen matchgroup=shArithRegion start='[^$]\zs(\%(\ze[^(]\|$\)' end=')' contains=@shArithParenList
syn region shParen matchgroup=shArithRegion start='\$\@!(\%(\ze[^(]\|$\)' end=')' contains=@shArithParenList

" Useful sh Keywords: {{{1
" ===================
syn keyword shStatement break cd chdir continue eval exec exit kill newgrp pwd read readonly return shift test trap ulimit umask wait
syn keyword shConditional contained elif else then
if !exists("g:sh_no_error")
 syn keyword shCondError elif else then
endif

" Useful ksh Keywords: {{{1
" ====================
if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
 syn keyword shStatement autoload bg false fc fg functions getopts hash history integer jobs let nohup printf r stop suspend times true type unalias whence
 if exists("b:is_posix")
  syn keyword shStatement command
 else
  syn keyword shStatement time
 endif

" Useful bash Keywords: {{{1
" =====================
 if exists("b:is_bash")
  syn keyword shStatement bind builtin dirs disown enable help logout popd pushd shopt source
 else
  syn keyword shStatement login newgrp
 endif
endif

" Synchronization: {{{1
" ================
if !exists("g:sh_minlines")
 let s:sh_minlines = 200
else
 let s:sh_minlines= g:sh_minlines
endif
if !exists("g:sh_maxlines")
 let s:sh_maxlines = 2*s:sh_minlines
 if s:sh_maxlines < 25
  let s:sh_maxlines= 25
 endif
else
 let s:sh_maxlines= g:sh_maxlines
endif
exec "syn sync minlines=" . s:sh_minlines . " maxlines=" . s:sh_maxlines
syn sync match shCaseEsacSync	grouphere	shCaseEsac	"\<case\>"
syn sync match shCaseEsacSync	groupthere	shCaseEsac	"\<esac\>"
syn sync match shDoSync	grouphere	shDo	"\<do\>"
syn sync match shDoSync	groupthere	shDo	"\<done\>"
syn sync match shForSync	grouphere	shFor	"\<for\>"
syn sync match shForSync	groupthere	shFor	"\<in\>"
syn sync match shIfSync	grouphere	shIf	"\<if\>"
syn sync match shIfSync	groupthere	shIf	"\<fi\>"
syn sync match shUntilSync	grouphere	shRepeat	"\<until\>"
syn sync match shWhileSync	grouphere	shRepeat	"\<while\>"

" Default Highlighting: {{{1
" =====================
if !exists("skip_sh_syntax_inits")
 hi def link shArithRegion	shShellVariables
 hi def link shAstQuote	shDoubleQuote
 hi def link shAtExpr	shSetList
 hi def link shBeginHere	shRedir
 hi def link shCaseBar	shConditional
 hi def link shCaseCommandSub	shCommandSub
 hi def link shCaseDoubleQuote	shDoubleQuote
 hi def link shCaseIn	shConditional
 hi def link shQuote	shOperator
 hi def link shCaseSingleQuote	shSingleQuote
 hi def link shCaseStart	shConditional
 hi def link shCmdSubRegion	shShellVariables
 hi def link shColon	shComment
 hi def link shDerefOp	shOperator
 hi def link shDerefPOL	shDerefOp
 hi def link shDerefPPS	shDerefOp
 hi def link shDerefPSR	shDerefOp
 hi def link shDeref	shShellVariables
 hi def link shDerefDelim	shOperator
 hi def link shDerefSimple	shDeref
 hi def link shDerefSpecial	shDeref
 hi def link shDerefString	shDoubleQuote
 hi def link shDerefVar	shDeref
 hi def link shDoubleQuote	shString
 hi def link shEcho	shString
 hi def link shEchoDelim	shOperator
 hi def link shEchoQuote	shString
 hi def link shForPP	shLoop
 hi def link shFunction	Function
 hi def link shEmbeddedEcho	shString
 hi def link shEscape	shCommandSub
 hi def link shExDoubleQuote	shDoubleQuote
 hi def link shExSingleQuote	shSingleQuote
 hi def link shHereDoc	shString
 hi def link shHereString	shRedir
 hi def link shHerePayload	shHereDoc
 hi def link shLoop	shStatement
 hi def link shSpecialNxt	shSpecial
 hi def link shNoQuote	shDoubleQuote
 hi def link shOption	shCommandSub
 hi def link shPattern	shString
 hi def link shParen	shArithmetic
 hi def link shPosnParm	shShellVariables
 hi def link shQuickComment	shComment
 hi def link shRange	shOperator
 hi def link shRedir	shOperator
 hi def link shSetListDelim	shOperator
 hi def link shSetOption	shOption
 hi def link shSingleQuote	shString
 hi def link shSource	shOperator
 hi def link shStringSpecial	shSpecial
 hi def link shSpecialStart	shSpecial
 hi def link shSubShRegion	shOperator
 hi def link shTestOpr	shConditional
 hi def link shTestPattern	shString
 hi def link shTestDoubleQuote	shString
 hi def link shTestSingleQuote	shString
 hi def link shTouchCmd	shStatement
 hi def link shVariable	shSetList
 hi def link shWrapLineOperator	shOperator

 if exists("b:is_bash")
   hi def link bashAdminStatement	shStatement
   hi def link bashSpecialVariables	shShellVariables
   hi def link bashStatement		shStatement
   hi def link shCharClass		shSpecial
   hi def link shDerefOff		shDerefOp
   hi def link shDerefLen		shDerefOff
 endif
 if exists("b:is_kornshell") || exists("b:is_posix")
   hi def link kshSpecialVariables	shShellVariables
   hi def link kshStatement		shStatement
 endif

 if !exists("g:sh_no_error")
  hi def link shCaseError		Error
  hi def link shCondError		Error
  hi def link shCurlyError		Error
  hi def link shDerefOpError		Error
  hi def link shDerefWordError		Error
  hi def link shDoError		Error
  hi def link shEsacError		Error
  hi def link shIfError		Error
  hi def link shInError		Error
  hi def link shParenError		Error
  hi def link shTestError		Error
  if exists("b:is_kornshell") || exists("b:is_posix")
    hi def link shDTestError		Error
  endif
 endif

 hi def link shArithmetic		Special
 hi def link shCharClass		Identifier
 hi def link shSnglCase		Statement
 hi def link shCommandSub		Special
 hi def link shComment		Comment
 hi def link shConditional		Conditional
 hi def link shCtrlSeq		Special
 hi def link shExprRegion		Delimiter
 hi def link shFunctionKey		Function
 hi def link shFunctionName		Function
 hi def link shNumber		Number
 hi def link shOperator		Operator
 hi def link shRepeat		Repeat
 hi def link shSet		Statement
 hi def link shSetList		Identifier
 hi def link shShellVariables		PreProc
 hi def link shSpecial		Special
 hi def link shSpecialNoZS		shSpecial
 hi def link shStatement		Statement
 hi def link shString		String
 hi def link shTodo		Todo
 hi def link shAlias		Identifier
 hi def link shHereDoc01		shRedir
 hi def link shHereDoc02		shRedir
 hi def link shHereDoc03		shRedir
 hi def link shHereDoc04		shRedir
 hi def link shHereDoc05		shRedir
 hi def link shHereDoc06		shRedir
 hi def link shHereDoc07		shRedir
 hi def link shHereDoc08		shRedir
 hi def link shHereDoc09		shRedir
 hi def link shHereDoc10		shRedir
 hi def link shHereDoc11		shRedir
 hi def link shHereDoc12		shRedir
 hi def link shHereDoc13		shRedir
 hi def link shHereDoc14		shRedir
 hi def link shHereDoc15		shRedir
endif

" Delete shell folding commands {{{1
" =============================
delc ShFoldFunctions
delc ShFoldHereDoc
delc ShFoldIfDoFor

" Set Current Syntax: {{{1
" ===================
if exists("b:is_bash")
 let b:current_syntax = "bash"
elseif exists("b:is_kornshell")
 let b:current_syntax = "ksh"
elseif exists("b:is_posix")
 let b:current_syntax = "posix"
else
 let b:current_syntax = "sh"
endif

" vim: ts=16 fdm=marker
PK�j�Z5�����vim80/syntax/mail.vimnu�[���" Vim syntax file
" Language:		Mail file
" Previous Maintainer:	Felix von Leitner <leitner@math.fu-berlin.de>
" Maintainer:		GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
" Last Change:		Wed 14 Aug 2013 08:24:52 AM PDT

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" The mail header is recognized starting with a "keyword:" line and ending
" with an empty line or other line that can't be in the header. All lines of
" the header are highlighted. Headers of quoted messages (quoted with >) are
" also highlighted.

" Syntax clusters
syn cluster mailHeaderFields	contains=mailHeaderKey,mailSubject,mailHeaderEmail,@mailLinks
syn cluster mailLinks		contains=mailURL,mailEmail
syn cluster mailQuoteExps	contains=mailQuoteExp1,mailQuoteExp2,mailQuoteExp3,mailQuoteExp4,mailQuoteExp5,mailQuoteExp6

syn case match
" For "From " matching case is required. The "From " is not matched in quoted
" emails
" According to RFC 2822 any printable ASCII character can appear in a field
" name, except ':'.
syn region	mailHeader	contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1 fold
syn match	mailHeaderKey	contained contains=mailEmail,@NoSpell "^From\s.*\d\d\d\d$"

" Nothing else depends on case. 
syn case ignore

" Headers in properly quoted (with "> " or ">") emails are matched
syn region	mailHeader	keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1 fold

" Usenet headers
syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(Newsgroups|Followup-To|Message-ID|Supersedes|Control):.*$"


syn region	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
syn match	mailHeaderKey	contained contains=@NoSpell "\v(^(\> ?)*)@<=date:"
syn match	mailSubject	contained "\v^subject:.*$" fold
syn match	mailSubject	contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$"

" Anything in the header between < and > is an email address
syn match	mailHeaderEmail	contained contains=@NoSpell "<.\{-}>"

" Mail Signatures. (Begin with "-- ", end with change in quote level)
syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1 fold
syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1 fold

" Treat verbatim Text special.
syn region	mailVerbatim	contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold 
syn region	mailVerbatim	contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold 

" URLs start with a known protocol or www,web,w3.
syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' 	<>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' 	<>"]+)[a-z0-9/]`
syn match mailEmail contains=@NoSpell "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}"

" Make sure quote markers in regions (header / signature) have correct color
syn match mailQuoteExp1	contained "\v^(\> ?)"
syn match mailQuoteExp2	contained "\v^(\> ?){2}"
syn match mailQuoteExp3	contained "\v^(\> ?){3}"
syn match mailQuoteExp4	contained "\v^(\> ?){4}"
syn match mailQuoteExp5	contained "\v^(\> ?){5}"
syn match mailQuoteExp6	contained "\v^(\> ?){6}"

" Even and odd quoted lines. Order is important here!
syn region	mailQuoted6	keepend contains=mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
syn region	mailQuoted5	keepend contains=mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
syn region	mailQuoted4	keepend contains=mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
syn region	mailQuoted3	keepend contains=mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
syn region	mailQuoted2	keepend contains=mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{1}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
syn region	mailQuoted1	keepend contains=mailQuoted2,mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z([a-z]\+>\|[]|}>]\)" end="^\z1\@!" fold

" Need to sync on the header. Assume we can do that within 100 lines
if exists("mail_minlines")
    exec "syn sync minlines=" . mail_minlines
else
    syn sync minlines=100
endif

" Define the default highlighting.
hi def link mailVerbatim	Special
hi def link mailHeader		Statement
hi def link mailHeaderKey	Type
hi def link mailSignature	PreProc
hi def link mailHeaderEmail	mailEmail
hi def link mailEmail		Special
hi def link mailURL		String
hi def link mailSubject		Title
hi def link mailQuoted1		Comment
hi def link mailQuoted3		mailQuoted1
hi def link mailQuoted5		mailQuoted1
hi def link mailQuoted2		Identifier
hi def link mailQuoted4		mailQuoted2
hi def link mailQuoted6		mailQuoted2
hi def link mailQuoteExp1	mailQuoted1
hi def link mailQuoteExp2	mailQuoted2
hi def link mailQuoteExp3	mailQuoted3
hi def link mailQuoteExp4	mailQuoted4
hi def link mailQuoteExp5	mailQuoted5
hi def link mailQuoteExp6	mailQuoted6

let b:current_syntax = "mail"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���KKvim80/syntax/initex.vimnu�[���" Vim syntax file
" Language:             TeX (core definition)
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" This follows the grouping (sort of) found at
" http: //www.tug.org/utilities/plain/cseq.html#top-fam

syn keyword initexTodo                          TODO FIXME XXX NOTE

syn match initexComment                         display contains=initexTodo
      \ '\\\@<!\%(\\\\\)*\zs%.*$'

syn match   initexDimension                     display contains=@NoSpell
      \ '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|m[mu]\|dd\|sp\|e[mx]\)\>'

syn cluster initexBox
      \ contains=initexBoxCommand,initexBoxInternalQuantity,
      \ initexBoxParameterDimen,initexBoxParameterInteger,
      \ initexBoxParameterToken

syn cluster initexCharacter
      \ contains=initexCharacterCommand,initexCharacterInternalQuantity,
      \ initexCharacterParameterInteger

syn cluster initexDebugging
      \ contains=initexDebuggingCommand,initexDebuggingParameterInteger,
      \ initexDebuggingParameterToken

syn cluster initexFileIO
      \ contains=initexFileIOCommand,initexFileIOInternalQuantity,
      \ initexFileIOParameterToken

syn cluster initexFonts
      \ contains=initexFontsCommand,initexFontsInternalQuantity

syn cluster initexGlue
      \ contains=initexGlueCommand,initexGlueDerivedCommand

syn cluster initexHyphenation
      \ contains=initexHyphenationCommand,initexHyphenationDerivedCommand,
      \ initexHyphenationInternalQuantity,initexHyphenationParameterInteger

syn cluster initexInserts
      \ contains=initexInsertsCommand,initexInsertsParameterDimen,
      \ initexInsertsParameterGlue,initexInsertsParameterInteger

syn cluster initexJob
      \ contains=initexJobCommand,initexJobInternalQuantity,
      \ initexJobParameterInteger

syn cluster initexKern
      \ contains=initexKernCommand,initexKernInternalQuantity

syn cluster initexLogic
      \ contains=initexLogicCommand

syn cluster initexMacro
      \ contains=initexMacroCommand,initexMacroDerivedCommand,
      \ initexMacroParameterInteger

syn cluster initexMarks
      \ contains=initexMarksCommand

syn cluster initexMath
      \ contains=initexMathCommand,initexMathDerivedCommand,
      \ initexMathInternalQuantity,initexMathParameterDimen,
      \ initexMathParameterGlue,initexMathParameterInteger,
      \ initexMathParameterMuglue,initexMathParameterToken

syn cluster initexPage
      \ contains=initexPageInternalQuantity,initexPageParameterDimen,
      \ initexPageParameterGlue

syn cluster initexParagraph
      \ contains=initexParagraphCommand,initexParagraphInternalQuantity,
      \ initexParagraphParameterDimen,initexParagraphParameterGlue,
      \ initexParagraphParameterInteger,initexParagraphParameterToken

syn cluster initexPenalties
      \ contains=initexPenaltiesCommand,initexPenaltiesInternalQuantity,
      \ initexPenaltiesParameterInteger

syn cluster initexRegisters
      \ contains=initexRegistersCommand,initexRegistersInternalQuantity

syn cluster initexTables
      \ contains=initexTablesCommand,initexTablesParameterGlue,
      \ initexTablesParameterToken

syn cluster initexCommand
      \ contains=initexBoxCommand,initexCharacterCommand,
      \ initexDebuggingCommand,initexFileIOCommand,
      \ initexFontsCommand,initexGlueCommand,
      \ initexHyphenationCommand,initexInsertsCommand,
      \ initexJobCommand,initexKernCommand,initexLogicCommand,
      \ initexMacroCommand,initexMarksCommand,initexMathCommand,
      \ initexParagraphCommand,initexPenaltiesCommand,initexRegistersCommand,
      \ initexTablesCommand

syn match   initexBoxCommand                    display contains=@NoSpell
      \ '\\\%([hv]\=box\|[cx]\=leaders\|copy\|[hv]rule\|lastbox\|setbox\|un[hv]\%(box\|copy\)\|vtop\)\>'
syn match   initexCharacterCommand              display contains=@NoSpell
      \ '\\\%([] ]\|\%(^^M\|accent\|char\|\%(lower\|upper\)case\|number\|romannumeral\|string\)\>\)'
syn match   initexDebuggingCommand              display contains=@NoSpell
      \ '\\\%(\%(batch\|\%(non\|error\)stop\|scroll\)mode\|\%(err\)\=message\|meaning\|show\%(box\%(breadth\|depth\)\=\|lists\|the\)\)\>'
syn match   initexFileIOCommand                 display contains=@NoSpell
      \ '\\\%(\%(close\|open\)\%(in\|out\)\|endinput\|immediate\|input\|read\|shipout\|special\|write\)\>'
syn match   initexFontsCommand                  display contains=@NoSpell
      \ '\\\%(/\|fontname\)\>'
syn match   initexGlueCommand                   display contains=@NoSpell
      \ '\\\%([hv]\|un\)skip\>'
syn match   initexHyphenationCommand            display contains=@NoSpell
      \ '\\\%(discretionary\|hyphenation\|patterns\|setlanguage\)\>'
syn match   initexInsertsCommand                display contains=@NoSpell
      \ '\\\%(insert\|split\%(bot\|first\)mark\|vsplit\)\>'
syn match   initexJobCommand                    display contains=@NoSpell
      \ '\\\%(dump\|end\|jobname\)\>'
syn match   initexKernCommand                   display contains=@NoSpell
      \ '\\\%(kern\|lower\|move\%(left\|right\)\|raise\|unkern\)\>'
syn match   initexLogicCommand                  display contains=@NoSpell
      \ '\\\%(else\|fi\|if[a-zA-Z@]\+\|or\)\>'
"      \ '\\\%(else\|fi\|if\%(case\|cat\|dim\|eof\|false\|[hv]box\|[hmv]mode\|inner\|num\|odd\|true\|void\|x\)\=\|or\)\>'
syn match   initexMacroCommand                  display contains=@NoSpell
      \ '\\\%(after\%(assignment\|group\)\|\%(begin\|end\)group\|\%(end\)\=csname\|e\=def\|expandafter\|futurelet\|global\|let\|long\|noexpand\|outer\|relax\|the\)\>'
syn match   initexMarksCommand                  display contains=@NoSpell
      \ '\\\%(bot\|first\|top\)\=mark\>'
syn match   initexMathCommand                   display contains=@NoSpell
      \ '\\\%(abovewithdelims\|delimiter\|display\%(limits\|style\)\|l\=eqno\|left\|\%(no\)\=limits\|math\%(accent\|bin\|char\|choice\|close\|code\|inner\|op\|open\|ord\|punct\|rel\)\|mkern\|mskip\|muskipdef\|nonscript\|\%(over\|under\)line\|radical\|right\|\%(\%(script\)\{1,2}\|text\)style\|vcenter\)\>'
syn match   initexParagraphCommand              display contains=@NoSpell
      \ '\\\%(ignorespaces\|indent\|no\%(boundary\|indent\)\|par\|vadjust\)\>'
syn match   initexPenaltiesCommand              display contains=@NoSpell
      \ '\\\%(un\)\=penalty\>'
syn match   initexRegistersCommand              display contains=@NoSpell
      \ '\\\%(advance\|\%(count\|dimen\|skip\|toks\)def\|divide\|multiply\)\>'
syn match   initexTablesCommand                 display contains=@NoSpell
      \ '\\\%(cr\|crcr\|[hv]align\|noalign\|omit\|span\)\>'

syn cluster initexDerivedCommand
      \ contains=initexGlueDerivedCommand,initexHyphenationDerivedCommand,
      \ initexMacroDerivedCommand,initexMathDerivedCommand

syn match   initexGlueDerivedCommand            display contains=@NoSpell
      \ '\\\%([hv]fil\%(l\|neg\)\=\|[hv]ss\)\>'
syn match   initexHyphenationDerivedCommand     display contains=@NoSpell
      \ '\\-'
syn match   initexMacroDerivedCommand           display contains=@NoSpell
      \ '\\[gx]def\>'
syn match   initexMathDerivedCommand            display contains=@NoSpell
      \ '\\\%(above\|atop\%(withdelims\)\=\|mathchardef\|over\|overwithdelims\)\>'

syn cluster initexInternalQuantity
      \ contains=initexBoxInternalQuantity,initexCharacterInternalQuantity,
      \ initexFileIOInternalQuantity,initexFontsInternalQuantity,
      \ initexHyphenationInternalQuantity,initexJobInternalQuantity,
      \ initexKernInternalQuantity,initexMathInternalQuantity,
      \ initexPageInternalQuantity,initexParagraphInternalQuantity,
      \ initexPenaltiesInternalQuantity,initexRegistersInternalQuantity

syn match   initexBoxInternalQuantity           display contains=@NoSpell
      \ '\\\%(badness\|dp\|ht\|prevdepth\|wd\)\>'
syn match   initexCharacterInternalQuantity     display contains=@NoSpell
      \ '\\\%(catcode\|chardef\|\%([ul]c\|sf\)code\)\>'
syn match   initexFileIOInternalQuantity        display contains=@NoSpell
      \ '\\inputlineno\>'
syn match   initexFontsInternalQuantity         display contains=@NoSpell
      \ '\\\%(font\%(dimen\)\=\|nullfont\)\>'
syn match   initexHyphenationInternalQuantity   display contains=@NoSpell
      \ '\\hyphenchar\>'
syn match   initexJobInternalQuantity           display contains=@NoSpell
      \ '\\deadcycles\>'
syn match   initexKernInternalQuantity          display contains=@NoSpell
      \ '\\lastkern\>'
syn match   initexMathInternalQuantity          display contains=@NoSpell
      \ '\\\%(delcode\|mathcode\|muskip\|\%(\%(script\)\{1,2}\|text\)font\|skewchar\)\>'
syn match   initexPageInternalQuantity          display contains=@NoSpell
      \ '\\page\%(depth\|fil\{1,3}stretch\|goal\|shrink\|stretch\|total\)\>'
syn match   initexParagraphInternalQuantity     display contains=@NoSpell
      \ '\\\%(prevgraf\|spacefactor\)\>'
syn match   initexPenaltiesInternalQuantity     display contains=@NoSpell
      \ '\\lastpenalty\>'
syn match   initexRegistersInternalQuantity     display contains=@NoSpell
      \ '\\\%(count\|dimen\|skip\|toks\)\d\+\>'

syn cluster initexParameterDimen
      \ contains=initexBoxParameterDimen,initexInsertsParameterDimen,
      \ initexMathParameterDimen,initexPageParameterDimen,
      \ initexParagraphParameterDimen

syn match   initexBoxParameterDimen             display contains=@NoSpell
      \ '\\\%(boxmaxdepth\|[hv]fuzz\|overfullrule\)\>'
syn match   initexInsertsParameterDimen         display contains=@NoSpell
      \ '\\splitmaxdepth\>'
syn match   initexMathParameterDimen            display contains=@NoSpell
      \ '\\\%(delimitershortfall\|display\%(indent\|width\)\|mathsurround\|nulldelimiterspace\|predisplaysize\|scriptspace\)\>'
syn match   initexPageParameterDimen            display contains=@NoSpell
      \ '\\\%([hv]offset\|maxdepth\|vsize\)\>'
syn match   initexParagraphParameterDimen       display contains=@NoSpell
      \ '\\\%(emergencystretch\|\%(hang\|par\)indent\|hsize\|lineskiplimit\)\>'

syn cluster initexParameterGlue
      \ contains=initexInsertsParameterGlue,initexMathParameterGlue,
      \ initexPageParameterGlue,initexParagraphParameterGlue,
      \ initexTablesParameterGlue

syn match   initexInsertsParameterGlue          display contains=@NoSpell
      \ '\\splittopskip\>'
syn match   initexMathParameterGlue             display contains=@NoSpell
      \ '\\\%(above\|below\)display\%(short\)\=skip\>'
syn match   initexPageParameterGlue             display contains=@NoSpell
      \ '\\topskip\>'
syn match   initexParagraphParameterGlue        display contains=@NoSpell
      \ '\\\%(baseline\|left\|line\|par\%(fill\)\=\|right\|x\=space\)skip\>'
syn match   initexTablesParameterGlue           display contains=@NoSpell
      \ '\\tabskip\>'

syn cluster initexParameterInteger
      \ contains=initexBoxParameterInteger,initexCharacterParameterInteger,
      \ initexDebuggingParameterInteger,initexHyphenationParameterInteger,
      \ initexInsertsParameterInteger,initexJobParameterInteger,
      \ initexMacroParameterInteger,initexMathParameterInteger,
      \ initexParagraphParameterInteger,initexPenaltiesParameterInteger,

syn match   initexBoxParameterInteger           display contains=@NoSpell
      \ '\\[hv]badness\>'
syn match   initexCharacterParameterInteger     display contains=@NoSpell
      \ '\\\%(\%(endline\|escape\|newline\)char\)\>'
syn match   initexDebuggingParameterInteger     display contains=@NoSpell
      \ '\\\%(errorcontextlines\|pausing\|tracing\%(commands\|lostchars\|macros\|online\|output\|pages\|paragraphs\|restores|stats\)\)\>'
syn match   initexHyphenationParameterInteger   display contains=@NoSpell
      \ '\\\%(defaulthyphenchar\|language\|\%(left\|right\)hyphenmin\|uchyph\)\>'
syn match   initexInsertsParameterInteger       display contains=@NoSpell
      \ '\\\%(holdinginserts\)\>'
syn match   initexJobParameterInteger           display contains=@NoSpell
      \ '\\\%(day\|mag\|maxdeadcycles\|month\|time\|year\)\>'
syn match   initexMacroParameterInteger         display contains=@NoSpell
      \ '\\globaldefs\>'
syn match   initexMathParameterInteger          display contains=@NoSpell
      \ '\\\%(binoppenalty\|defaultskewchar\|delimiterfactor\|displaywidowpenalty\|fam\|\%(post\|pre\)displaypenalty\|relpenalty\)\>'
syn match   initexParagraphParameterInteger     display contains=@NoSpell
      \ '\\\%(\%(adj\|\%(double\|final\)hyphen\)demerits\|looseness\|\%(pre\)\=tolerance\)\>'
syn match   initexPenaltiesParameterInteger     display contains=@NoSpell
      \ '\\\%(broken\|club\|exhyphen\|floating\|hyphen\|interline\|line\|output\|widow\)penalty\>'

syn cluster initexParameterMuglue
      \ contains=initexMathParameterMuglue

syn match   initexMathParameterMuglue           display contains=@NoSpell
      \ '\\\%(med\|thick\|thin\)muskip\>'

syn cluster initexParameterDimen
      \ contains=initexBoxParameterToken,initexDebuggingParameterToken,
      \ initexFileIOParameterToken,initexMathParameterToken,
      \ initexParagraphParameterToken,initexTablesParameterToken

syn match   initexBoxParameterToken             display contains=@NoSpell
      \ '\\every[hv]box\>'
syn match   initexDebuggingParameterToken       display contains=@NoSpell
      \ '\\errhelp\>'
syn match   initexFileIOParameterToken          display contains=@NoSpell
      \ '\\output\>'
syn match   initexMathParameterToken            display contains=@NoSpell
      \ '\\every\%(display\|math\)\>'
syn match   initexParagraphParameterToken       display contains=@NoSpell
      \ '\\everypar\>'
syn match   initexTablesParameterToken          display contains=@NoSpell
      \ '\\everycr\>'


hi def link initexCharacter                     Character
hi def link initexNumber                        Number

hi def link initexIdentifier                    Identifier

hi def link initexStatement                     Statement
hi def link initexConditional                   Conditional

hi def link initexPreProc                       PreProc
hi def link initexMacro                         Macro

hi def link initexType                          Type

hi def link initexDebug                         Debug

hi def link initexTodo                          Todo
hi def link initexComment                       Comment
hi def link initexDimension                     initexNumber

hi def link initexCommand                       initexStatement
hi def link initexBoxCommand                    initexCommand
hi def link initexCharacterCommand              initexCharacter
hi def link initexDebuggingCommand              initexDebug
hi def link initexFileIOCommand                 initexCommand
hi def link initexFontsCommand                  initexType
hi def link initexGlueCommand                   initexCommand
hi def link initexHyphenationCommand            initexCommand
hi def link initexInsertsCommand                initexCommand
hi def link initexJobCommand                    initexPreProc
hi def link initexKernCommand                   initexCommand
hi def link initexLogicCommand                  initexConditional
hi def link initexMacroCommand                  initexMacro
hi def link initexMarksCommand                  initexCommand
hi def link initexMathCommand                   initexCommand
hi def link initexParagraphCommand              initexCommand
hi def link initexPenaltiesCommand              initexCommand
hi def link initexRegistersCommand              initexCommand
hi def link initexTablesCommand                 initexCommand

hi def link initexDerivedCommand                initexStatement
hi def link initexGlueDerivedCommand            initexDerivedCommand
hi def link initexHyphenationDerivedCommand     initexDerivedCommand
hi def link initexMacroDerivedCommand           initexDerivedCommand
hi def link initexMathDerivedCommand            initexDerivedCommand

hi def link initexInternalQuantity              initexIdentifier
hi def link initexBoxInternalQuantity           initexInternalQuantity
hi def link initexCharacterInternalQuantity     initexInternalQuantity
hi def link initexFileIOInternalQuantity        initexInternalQuantity
hi def link initexFontsInternalQuantity         initexInternalQuantity
hi def link initexHyphenationInternalQuantity   initexInternalQuantity
hi def link initexJobInternalQuantity           initexInternalQuantity
hi def link initexKernInternalQuantity          initexInternalQuantity
hi def link initexMathInternalQuantity          initexInternalQuantity
hi def link initexPageInternalQuantity          initexInternalQuantity
hi def link initexParagraphInternalQuantity     initexInternalQuantity
hi def link initexPenaltiesInternalQuantity     initexInternalQuantity
hi def link initexRegistersInternalQuantity     initexInternalQuantity

hi def link initexParameterDimen                initexNumber
hi def link initexBoxParameterDimen             initexParameterDimen
hi def link initexInsertsParameterDimen         initexParameterDimen
hi def link initexMathParameterDimen            initexParameterDimen
hi def link initexPageParameterDimen            initexParameterDimen
hi def link initexParagraphParameterDimen       initexParameterDimen

hi def link initexParameterGlue                 initexNumber
hi def link initexInsertsParameterGlue          initexParameterGlue
hi def link initexMathParameterGlue             initexParameterGlue
hi def link initexPageParameterGlue             initexParameterGlue
hi def link initexParagraphParameterGlue        initexParameterGlue
hi def link initexTablesParameterGlue           initexParameterGlue

hi def link initexParameterInteger              initexNumber
hi def link initexBoxParameterInteger           initexParameterInteger
hi def link initexCharacterParameterInteger     initexParameterInteger
hi def link initexDebuggingParameterInteger     initexParameterInteger
hi def link initexHyphenationParameterInteger   initexParameterInteger
hi def link initexInsertsParameterInteger       initexParameterInteger
hi def link initexJobParameterInteger           initexParameterInteger
hi def link initexMacroParameterInteger         initexParameterInteger
hi def link initexMathParameterInteger          initexParameterInteger
hi def link initexParagraphParameterInteger     initexParameterInteger
hi def link initexPenaltiesParameterInteger     initexParameterInteger

hi def link initexParameterMuglue               initexNumber
hi def link initexMathParameterMuglue           initexParameterMuglue

hi def link initexParameterToken                initexIdentifier
hi def link initexBoxParameterToken             initexParameterToken
hi def link initexDebuggingParameterToken       initexParameterToken
hi def link initexFileIOParameterToken          initexParameterToken
hi def link initexMathParameterToken            initexParameterToken
hi def link initexParagraphParameterToken       initexParameterToken
hi def link initexTablesParameterToken          initexParameterToken

let b:current_syntax = "initex"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��78!8!vim80/syntax/nastran.vimnu�[���" Vim syntax file
" Language: NASTRAN input/DMAP
" Maintainer: Tom Kowalski <trk@schaefferas.com>
" Last change: April 27, 2001
"  Thanks to the authors and maintainers of fortran.vim.
"		Since DMAP shares some traits with fortran, this syntax file
"		is based on the fortran.vim syntax file.
"----------------------------------------------------------------------
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
" DMAP is not case dependent
syn case ignore
"
"--------------------DMAP SYNTAX---------------------------------------
"
" -------Executive Modules and Statements
"
syn keyword nastranDmapexecmod	       call dbview delete end equiv equivx exit
syn keyword nastranDmapexecmod	       file message purge purgex return subdmap
syn keyword nastranDmapType	       type
syn keyword nastranDmapLabel  go to goto
syn keyword nastranDmapRepeat  if else elseif endif then
syn keyword nastranDmapRepeat  do while
syn region nastranDmapString  start=+"+ end=+"+ oneline
syn region nastranDmapString  start=+'+ end=+'+ oneline
" If you don't like initial tabs in dmap (or at all)
"syn match nastranDmapIniTab  "^\t.*$"
"syn match nastranDmapTab   "\t"

" Any integer
syn match nastranDmapNumber  "-\=\<[0-9]\+\>"
" floating point number, with dot, optional exponent
syn match nastranDmapFloat  "\<[0-9]\+\.[0-9]*\([edED][-+]\=[0-9]\+\)\=\>"
" floating point number, starting with a dot, optional exponent
syn match nastranDmapFloat  "\.[0-9]\+\([edED][-+]\=[0-9]\+\)\=\>"
" floating point number, without dot, with exponent
syn match nastranDmapFloat  "\<[0-9]\+[edED][-+]\=[0-9]\+\>"

syn match nastranDmapLogical "\(true\|false\)"

syn match nastranDmapPreCondit  "^#define\>"
syn match nastranDmapPreCondit  "^#include\>"
"
" -------Comments may be contained in another line.
"
syn match nastranDmapComment "^[\$].*$"
syn match nastranDmapComment "\$.*$"
syn match nastranDmapComment "^[\$].*$" contained
syn match nastranDmapComment "\$.*$"  contained
" Treat all past 72nd column as a comment. Do not work with tabs!
" Breaks down when 72-73rd column is in another match (eg number or keyword)
syn match  nastranDmapComment  "^.\{-72}.*$"lc=72 contained

"
" -------Utility Modules
"
syn keyword nastranDmapUtilmod	       append copy dbc dbdict dbdir dmin drms1
syn keyword nastranDmapUtilmod	       dtiin eltprt ifp ifp1 inputt2 inputt4 lamx
syn keyword nastranDmapUtilmod	       matgen matgpr matmod matpch matprn matprt
syn keyword nastranDmapUtilmod	       modtrl mtrxin ofp output2 output4 param
syn keyword nastranDmapUtilmod	       paraml paramr prtparam pvt scalar
syn keyword nastranDmapUtilmod	       seqp setval tabedit tabprt tabpt vec vecplot
syn keyword nastranDmapUtilmod	       xsort
"
" -------Matrix Modules
"
syn keyword nastranDmapMatmod	       add add5 cead dcmp decomp diagonal fbs merge
syn keyword nastranDmapMatmod	       mpyad norm read reigl smpyad solve solvit
syn keyword nastranDmapMatmod	       trnsp umerge umerge1 upartn dmiin partn
syn region  nastranDmapMatmod	       start=+^ *[Dd][Mm][Ii]+ end=+[\/]+
"
" -------Implicit Functions
"
syn keyword nastranDmapImplicit abs acos acosh andl asin asinh atan atan2
syn keyword nastranDmapImplicit atanh atanh2 char clen clock cmplx concat1
syn keyword nastranDmapImplicit concat2 concat3 conjg cos cosh dble diagoff
syn keyword nastranDmapImplicit diagon dim dlablank dlxblank dprod eqvl exp
syn keyword nastranDmapImplicit getdiag getsys ichar imag impl index indexstr
syn keyword nastranDmapImplicit int itol leq lge lgt lle llt lne log log10
syn keyword nastranDmapImplicit logx ltoi mcgetsys mcputsys max min mod neqvl
syn keyword nastranDmapImplicit nint noop normal notl numeq numge numgt numle
syn keyword nastranDmapImplicit numlt numne orl pi precison putdiag putsys
syn keyword nastranDmapImplicit rand rdiagon real rtimtogo setcore sign sin
syn keyword nastranDmapImplicit sinh sngl sprod sqrt substrin tan tanh
syn keyword nastranDmapImplicit timetogo wlen xorl
"
"
"--------------------INPUT FILE SYNTAX---------------------------------------
"
"
" -------Nastran Statement
"
syn keyword nastranNastranCard		 nastran
"
" -------The File Management Section (FMS)
"
syn region nastranFMSCard start=+^ *[Aa][Cc][Qq][Uu][Ii]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Aa][Ss][Ss][Ii][Gg]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Cc][oO][Nn][Nn][Ee]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Cc][Ll][Ee]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Cc]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Rr]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Ff][Ii][Xx]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Aa]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Cc]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Ss][Ee][Tt]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Nn][Ll]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Pp][Dd]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Dd][Ee][Ff][Ii][Nn]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Ee][Nn][Dd][Jj][Oo]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Ee][Xx][Pp][Aa][Nn]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Ii][Nn][Ii][Tt]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Pp][Rr][Oo][Jj]+ end=+$+  oneline
syn region nastranFMSCard start=+^ *[Rr][Ee][Ss][Tt]+ end=+$+  oneline
syn match   nastranDmapUtilmod	   "^ *[Rr][Ee][Ss][Tt][Aa].*,.*," contains=nastranDmapComment
"
" -------Executive Control Section
"
syn region nastranECSCard start=+^ *[Aa][Ll][Tt][Ee][Rr]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Aa][Pp][Pp]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Cc][Oo][Mm][Pp][Ii]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Dd][Ii][Aa][Gg] + end=+$+  oneline
syn region nastranECSCard start=+^ *[Ee][Cc][Hh][Oo]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Ee][Nn][Dd][Aa][Ll]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Ii][Dd]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Ll][Ii][Nn][Kk]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Mm][Aa][Ll][Tt][Ee]+ end=+$+  oneline
syn region nastranECSCard start=+^ *[Ss][Oo][Ll] + end=+$+  oneline
syn region nastranECSCard start=+^ *[Tt][Ii][Mm][Ee]+ end=+$+  oneline
"
" -------Delimiters
"
syn match nastranDelimiter "[Cc][Ee][Nn][Dd]" contained
syn match nastranDelimiter "[Bb][Ee][Gg][Ii][Nn]" contained
syn match nastranDelimiter " *[Bb][Uu][Ll][Kk]" contained
syn match nastranDelimiter "[Ee][Nn][Dd] *[dD][Aa][Tt][Aa]" contained
"
" -------Case Control section
"
syn region nastranCC start=+^ *[Cc][Ee][Nn][Dd]+ end=+^ *[Bb][Ee][Gg][Ii][Nn]+ contains=nastranDelimiter,nastranBulkData,nastranDmapComment

"
" -------Bulk Data section
"
syn region nastranBulkData start=+ *[Bb][Uu][Ll][Kk] *$+ end=+^ [Ee][Nn][Dd] *[Dd]+ contains=nastranDelimiter,nastranDmapComment
"
" -------The following cards may appear in multiple sections of the file
"
syn keyword nastranUtilCard ECHOON ECHOOFF INCLUDE PARAM


" The default methods for highlighting.  Can be overridden later
hi def link nastranDmapexecmod	     Statement
hi def link nastranDmapType	     Type
hi def link nastranDmapPreCondit	     Error
hi def link nastranDmapUtilmod	     PreProc
hi def link nastranDmapMatmod	     nastranDmapUtilmod
hi def link nastranDmapString	     String
hi def link nastranDmapNumber	     Constant
hi def link nastranDmapFloat	     nastranDmapNumber
hi def link nastranDmapInitTab	     nastranDmapNumber
hi def link nastranDmapTab		     nastranDmapNumber
hi def link nastranDmapLogical	     nastranDmapExecmod
hi def link nastranDmapImplicit	     Identifier
hi def link nastranDmapComment	     Comment
hi def link nastranDmapRepeat	     nastranDmapexecmod
hi def link nastranNastranCard	     nastranDmapPreCondit
hi def link nastranECSCard		     nastranDmapUtilmod
hi def link nastranFMSCard		     nastranNastranCard
hi def link nastranCC		     nastranDmapexecmod
hi def link nastranDelimiter	     Special
hi def link nastranBulkData	     nastranDmapType
hi def link nastranUtilCard	     nastranDmapexecmod

let b:current_syntax = "nastran"

"EOF vim: ts=8 noet tw=120 sw=8 sts=0
PK�j�Z�'���vim80/syntax/psf.vimnu�[���" Vim syntax file
" Language:	Software Distributor product specification file
"		(POSIX 1387.2-1995).
" Maintainer:	Rex Barzee <rex_barzee@hp.com>
" Last change:	25 Apr 2001

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Product specification files are case sensitive
syn case match

syn keyword psfObject bundle category control_file depot distribution
syn keyword psfObject end file fileset host installed_software media
syn keyword psfObject product root subproduct vendor

syn match  psfUnquotString +[^"# 	][^#]*+ contained
syn region psfQuotString   start=+"+ skip=+\\"+ end=+"+ contained

syn match  psfObjTag    "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*" contained
syn match  psfAttAbbrev ",\<\(fa\|fr\|[aclqrv]\)\(<\|>\|<=\|>=\|=\|==\)[^,]\+" contained
syn match  psfObjTags   "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\(\s\+\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\)*" contained

syn match  psfNumber    "\<\d\+\>" contained
syn match  psfFloat     "\<\d\+\>\(\.\<\d\+\>\)*" contained

syn match  psfLongDate  "\<\d\d\d\d\d\d\d\d\d\d\d\d\.\d\d\>" contained

syn keyword psfState    available configured corrupt installed transient contained
syn keyword psfPState   applied committed superseded contained

syn keyword psfBoolean  false true contained


"Some of the attributes covered by attUnquotString and attQuotString:
" architecture category_tag control_directory copyright
" create_date description directory file_permissions install_source
" install_type location machine_type mod_date number os_name os_release
" os_version pose_as_os_name pose_as_os_release readme revision
" share_link title vendor_tag
syn region psfAttUnquotString matchgroup=psfAttrib start=~^\s*[^# 	]\+\s\+[^#" 	]~rs=e-1 contains=psfUnquotString,psfComment end=~$~ keepend oneline

syn region psfAttQuotString matchgroup=psfAttrib start=~^\s*[^# 	]\+\s\+"~rs=e-1 contains=psfQuotString,psfComment skip=~\\"~ matchgroup=psfQuotString end=~"~ keepend


" These regions are defined in attempt to do syntax checking for some
" of the attributes.
syn region psfAttTag matchgroup=psfAttrib start="^\s*tag\s\+" contains=psfObjTag,psfComment end="$" keepend oneline

syn region psfAttSpec matchgroup=psfAttrib start="^\s*\(ancestor\|applied_patches\|applied_to\|contents\|corequisites\|exrequisites\|prerequisites\|software_spec\|supersedes\|superseded_by\)\s\+" contains=psfObjTag,psfAttAbbrev,psfComment end="$" keepend

syn region psfAttTags matchgroup=psfAttrib start="^\s*all_filesets\s\+" contains=psfObjTags,psfComment end="$" keepend

syn region psfAttNumber matchgroup=psfAttrib start="^\s*\(compressed_size\|instance_id\|media_sequence_number\|sequence_number\|size\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline

syn region psfAttTime matchgroup=psfAttrib start="^\s*\(create_time\|ctime\|mod_time\|mtime\|timestamp\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline

syn region psfAttFloat matchgroup=psfAttrib start="^\s*\(data_model_revision\|layout_version\)\s\+" contains=psfFloat,psfComment end="$" keepend oneline

syn region psfAttLongDate matchgroup=psfAttrib start="^\s*install_date\s\+" contains=psfLongDate,psfComment end="$" keepend oneline

syn region psfAttState matchgroup=psfAttrib start="^\s*\(state\)\s\+" contains=psfState,psfComment end="$" keepend oneline

syn region psfAttPState matchgroup=psfAttrib start="^\s*\(patch_state\)\s\+" contains=psfPState,psfComment end="$" keepend oneline

syn region psfAttBoolean matchgroup=psfAttrib start="^\s*\(is_kernel\|is_locatable\|is_patch\|is_protected\|is_reboot\|is_reference\|is_secure\|is_sparse\)\s\+" contains=psfBoolean,psfComment end="$" keepend oneline

syn match  psfComment "#.*$"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link psfObject       Statement
hi def link psfAttrib       Type
hi def link psfQuotString   String
hi def link psfObjTag       Identifier
hi def link psfAttAbbrev    PreProc
hi def link psfObjTags      Identifier

hi def link psfComment      Comment


" Long descriptions and copyrights confuse the syntax highlighting, so
" force vim to backup at least 100 lines before the top visible line
" looking for a sync location.
syn sync lines=100

let b:current_syntax = "psf"
PK�j�Z(u��vim80/syntax/gitcommit.vimnu�[���" Vim syntax file
" Language:	git commit file
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Filenames:	*.git/COMMIT_EDITMSG
" Last Change:	2016 Aug 29

if exists("b:current_syntax")
  finish
endif

syn case match
syn sync minlines=50

if has("spell")
  syn spell toplevel
endif

syn include @gitcommitDiff syntax/diff.vim
syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|#\)\@=/ fold contains=@gitcommitDiff

syn match   gitcommitFirstLine	"\%^[^#].*"  nextgroup=gitcommitBlank skipnl
syn match   gitcommitSummary	"^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
syn match   gitcommitOverflow	".*" contained contains=@Spell
syn match   gitcommitBlank	"^[^#].*" contained contains=@Spell
syn match   gitcommitComment	"^#.*"
syn match   gitcommitHead	"^\%(#   .*\n\)\+#$" contained transparent
syn match   gitcommitOnBranch	"\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
syn match   gitcommitOnBranch	"\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
syn match   gitcommitBranch	"[^ ']\+" contained
syn match   gitcommitNoBranch	"\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment
syn match   gitcommitHeader	"\%(^# \)\@<=.*:$"	contained containedin=gitcommitComment
syn region  gitcommitAuthor	matchgroup=gitCommitHeader start=/\%(^# \)\@<=\%(Author\|Committer\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
syn match   gitcommitNoChanges	"\%(^# \)\@<=No changes$" contained containedin=gitcommitComment

syn region  gitcommitUntracked	start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
syn match   gitcommitUntrackedFile  "\t\@<=.*"	contained

syn region  gitcommitDiscarded	start=/^# Change\%(s not staged for commit\|d but not updated\):/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
syn region  gitcommitSelected	start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
syn region  gitcommitUnmerged	start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold


syn match   gitcommitDiscardedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
syn match   gitcommitSelectedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
syn match   gitcommitUnmergedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
syn match   gitcommitDiscardedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
syn match   gitcommitSelectedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
syn match   gitcommitUnmergedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
syn match   gitcommitDiscardedArrow	" -> " contained nextgroup=gitcommitDiscardedFile
syn match   gitcommitSelectedArrow	" -> " contained nextgroup=gitcommitSelectedFile
syn match   gitcommitUnmergedArrow	" -> " contained nextgroup=gitcommitSelectedFile

syn match   gitcommitWarning		"\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl
syn match   gitcommitWarning		"^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained
syn match   gitcommitWarning		"^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$"

hi def link gitcommitSummary		Keyword
hi def link gitcommitComment		Comment
hi def link gitcommitUntracked		gitcommitComment
hi def link gitcommitDiscarded		gitcommitComment
hi def link gitcommitSelected		gitcommitComment
hi def link gitcommitUnmerged		gitcommitComment
hi def link gitcommitOnBranch		Comment
hi def link gitcommitBranch		Special
hi def link gitcommitNoBranch		gitCommitBranch
hi def link gitcommitDiscardedType	gitcommitType
hi def link gitcommitSelectedType	gitcommitType
hi def link gitcommitUnmergedType	gitcommitType
hi def link gitcommitType		Type
hi def link gitcommitNoChanges		gitcommitHeader
hi def link gitcommitHeader		PreProc
hi def link gitcommitUntrackedFile	gitcommitFile
hi def link gitcommitDiscardedFile	gitcommitFile
hi def link gitcommitSelectedFile	gitcommitFile
hi def link gitcommitUnmergedFile	gitcommitFile
hi def link gitcommitFile		Constant
hi def link gitcommitDiscardedArrow	gitcommitArrow
hi def link gitcommitSelectedArrow	gitcommitArrow
hi def link gitcommitUnmergedArrow	gitcommitArrow
hi def link gitcommitArrow		gitcommitComment
"hi def link gitcommitOverflow		Error
hi def link gitcommitBlank		Error

let b:current_syntax = "gitcommit"
PK�j�Z@Ϗ���vim80/syntax/reva.vimnu�[���" Vim syntax file
" Language:	Reva Forth
" Version:	2011.2
" Last Change:	2012/02/13
" Maintainer:	Ron Aaron <ron@ronware.org>
" URL:		http://ronware.org/reva/
" Filetypes:	*.rf *.frt
" NOTE: 	You should also have the ftplugin/reva.vim file to set 'isk'

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn clear

" Synchronization method
syn sync ccomment
syn sync maxlines=100


syn case ignore
" Some special, non-FORTH keywords
"syn keyword revaTodo contained todo fixme bugbug todo: bugbug: note:
syn match revaTodo contained '\(todo\|fixme\|bugbug\|note\)[:]*'
syn match revaTodo contained 'copyright\(\s(c)\)\=\(\s[0-9]\{2,4}\)\='

syn match revaHelpDesc '\S.*' contained
syn match revaHelpStuff '\<\(def\|stack\|ctx\|ver\|os\|related\):\s.*'
syn region revaHelpStuff start='\<desc:\>' end='^\S' contains=revaHelpDesc
syn region revaEOF start='\<|||\>' end='{$}' contains=revaHelpStuff


syn case match
" basic mathematical and logical operators
syn keyword revaoperators + - * / mod /mod negate abs min max umin umax
syn keyword revaoperators and or xor not invert 1+ 1-
syn keyword revaoperators m+ */ */mod m* um* m*/ um/mod fm/mod sm/rem
syn keyword revaoperators d+ d- dnegate dabs dmin dmax > < = >> << u< <>


" stack manipulations
syn keyword revastack drop nip dup over tuck swap rot -rot ?dup pick roll
syn keyword revastack 2drop 2nip 2dup 2over 2swap 2rot 3drop
syn keyword revastack >r r> r@ rdrop
" syn keyword revastack sp@ sp! rp@ rp!

" address operations
syn keyword revamemory @ ! +! c@ c! 2@ 2! align aligned allot allocate here free resize
syn keyword revaadrarith chars char+ cells cell+ cell cell- 2cell+ 2cell- 3cell+ 4cell+
syn keyword revamemblks move fill

" conditionals
syn keyword revacond if else then =if >if <if <>if if0  ;; catch throw

" iterations
syn keyword revaloop while repeat until again
syn keyword revaloop do loop i j leave  unloop skip more

" new words
syn match revaColonDef '\<noname:\|\<:\s+' contains=revaComment
syn keyword revaEndOfColonDef ; ;inline
syn keyword revadefine constant constant, variable create variable,
syn keyword revadefine user value to +to defer! defer@ defer is does> immediate
syn keyword revadefine compile literal ' [']

" Built in words
com! -nargs=+ Builtin syn keyword revaBuiltin <args>
Builtin execute ahead interp bye >body here pad words make
Builtin accept close cr creat delete ekey emit fsize ioerr key?
Builtin mtime open/r open/rw read rename seek space spaces stat
Builtin tell type type_ write (seek) (argv) (save) 0; 0drop;
Builtin >class >lz >name >xt alias alias: appname argc asciiz, asciizl,
Builtin body> clamp depth disassemble findprev fnvhash getenv here,
Builtin iterate last! last@ later link lz> lzmax os parse/ peek
Builtin peek-n pop prior push put rp@ rpick save setenv slurp
Builtin stack-empty? stack-iterate stack-size stack: THROW_BADFUNC
Builtin THROW_BADLIB THROW_GENERIC used xt>size z,
Builtin +lplace +place -chop /char /string bounds c+lplace c+place
Builtin chop cmp cmpi count lc lcount lplace place quote rsplit search split
Builtin zcount zt \\char
Builtin chdir g32 k32 u32 getcwd getpid hinst osname stdin stdout
Builtin (-lib) (bye) (call) (else) (find) (func) (here) (if (lib) (s0) (s^)
Builtin (to~) (while) >in >rel ?literal appstart cold compiling? context? d0 default_class
Builtin defer? dict dolstr dostr find-word h0 if) interp isa onexit
Builtin onstartup pdoes pop>ebx prompt rel> rp0 s0 src srcstr state str0 then,> then> tib
Builtin tp vector vector! word? xt? .ver revaver revaver# && '' 'constant 'context
Builtin 'create 'defer 'does 'forth 'inline 'macro 'macront 'notail 'value 'variable
Builtin (.r) (context) (create) (header) (hide) (inline) (p.r) (words~) (xfind)
Builtin ++ -- , -2drop -2nip -link -swap . .2x .classes .contexts .funcs .libs .needs .r
Builtin .rs .x 00; 0do 0if 1, 2, 3, 2* 2/ 2constant 2variable 3dup 4dup ;then >base >defer
Builtin >rr ? ?do @execute @rem appdir argv as back base base! between chain cleanup-libs
Builtin cmove> context?? ctrl-c ctx>name data: defer: defer@def dictgone do_cr eleave
Builtin endcase endof eval exception exec false find func: header heapgone help help/
Builtin hex# hide inline{ last lastxt lib libdir literal, makeexename mnotail ms ms@
Builtin newclass noop nosavedict notail nul of off on p: padchar parse parseln
Builtin parsews rangeof rdepth remains reset reva revaused rol8 rr> scratch setclass sp
Builtin strof super> temp time&date true turnkey? undo vfunc: w! w@
Builtin xchg xchg2 xfind xt>name xwords { {{ }} }  _+ _1+ _1- pathsep case \||
" p[ [''] [ [']


" debugging
syn keyword revadebug .s dump see

" basic character operations
" syn keyword revaCharOps (.) CHAR EXPECT FIND WORD TYPE -TRAILING EMIT KEY
" syn keyword revaCharOps KEY? TIB CR
" syn match revaCharOps '\<char\s\S\s'
" syn match revaCharOps '\<\[char\]\s\S\s'
" syn region revaCharOps start=+."\s+ skip=+\\"+ end=+"+

" char-number conversion
syn keyword revaconversion s>d >digit digit> >single >double >number >float

" contexts
syn keyword revavocs forth macro inline
syn keyword revavocs context:
syn match revavocs /\<\~[^~ ]*/
syn match revavocs /[^~ ]*\~\>/

" numbers
syn keyword revamath decimal hex base binary octal
syn match revainteger '\<-\=[0-9.]*[0-9.]\+\>'
" recognize hex and binary numbers, the '$' and '%' notation is for greva
syn match revainteger '\<\$\x*\x\+\>' " *1* --- dont't mess
syn match revainteger '\<\x*\d\x*\>'  " *2* --- this order!
syn match revainteger '\<%[0-1]*[0-1]\+\>'
syn match revainteger "\<'.\>"

" Strings
" syn region revaString start=+\.\?\"+ end=+"+ end=+$+
syn region revaString start=/"/ skip=/\\"/ end=/"/

" Comments
syn region revaComment start='\\S\s' end='.*' contains=revaTodo
syn match revaComment '\.(\s[^)]\{-})' contains=revaTodo
syn region revaComment start='(\s' skip='\\)' end=')' contains=revaTodo
syn match revaComment '(\s[^\-]*\-\-[^\-]\{-})' contains=revaTodo
syn match revaComment '\<|\s.*$' contains=revaTodo
syn match revaColonDef '\<:m\?\s*[^ \t]\+\>' contains=revaComment

" Include files
syn match revaInclude '\<\(include\|needs\)\s\+\S\+'


" Define the default highlighting.
if !exists("did_reva_syntax_inits")
    let did_reva_syntax_inits=1
    " The default methods for highlighting. Can be overriden later.
    hi def link revaEOF cIf0
    hi def link revaHelpStuff  special
    hi def link revaHelpDesc Comment
    hi def link revaTodo Todo
    hi def link revaOperators Operator
    hi def link revaMath Number
    hi def link revaInteger Number
    hi def link revaStack Special
    hi def link revaFStack Special
    hi def link revaSP Special
    hi def link revaMemory Operator
    hi def link revaAdrArith Function
    hi def link revaMemBlks Function
    hi def link revaCond Conditional
    hi def link revaLoop Repeat
    hi def link revaColonDef Define
    hi def link revaEndOfColonDef Define
    hi def link revaDefine Define
    hi def link revaDebug Debug
    hi def link revaCharOps Character
    hi def link revaConversion String
    hi def link revaForth Statement
    hi def link revaVocs Statement
    hi def link revaString String
    hi def link revaComment Comment
    hi def link revaClassDef Define
    hi def link revaEndOfClassDef Define
    hi def link revaObjectDef Define
    hi def link revaEndOfObjectDef Define
    hi def link revaInclude Include
    hi def link revaBuiltin Keyword
endif

let b:current_syntax = "reva"
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8:sw=4:nocindent:smartindent:
PK�j�ZVa���vim80/syntax/expect.vimnu�[���" Vim syntax file
" Language:	Expect
" Maintainer:	Ralph Jennings <knowbudy@oro.net>
" Last Change:	2012 Jun 01
" 		(Dominique Pelle added @Spell)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Reserved Expect variable prefixes.
syn match   expectVariables "\$exp[a-zA-Z0-9_]*\|\$inter[a-zA-Z0-9_]*"
syn match   expectVariables "\$spawn[a-zA-Z0-9_]*\|\$timeout[a-zA-Z0-9_]*"

" Normal Expect variables.
syn match   expectVariables "\$env([^)]*)"
syn match   expectVariables "\$any_spawn_id\|\$argc\|\$argv\d*"
syn match   expectVariables "\$user_spawn_id\|\$spawn_id\|\$timeout"

" Expect variable arrays.
syn match   expectVariables "\$\(expect\|interact\)_out([^)]*)"			contains=expectOutVar

" User defined variables.
syn match   expectVariables "\$[a-zA-Z_][a-zA-Z0-9_]*"

" Reserved Expect command prefixes.
syn match   expectCommand    "exp_[a-zA-Z0-9_]*"

" Normal Expect commands.
syn keyword expectStatement	close debug disconnect
syn keyword expectStatement	exit exp_continue exp_internal exp_open
syn keyword expectStatement	exp_pid exp_version
syn keyword expectStatement	fork inter_return interpreter
syn keyword expectStatement	log_file log_user match_max overlay
syn keyword expectStatement	parity remove_nulls return
syn keyword expectStatement	send send_error send_log send_user
syn keyword expectStatement	sleep spawn strace stty system
syn keyword expectStatement	timestamp trace trap wait

" Tcl commands recognized and used by Expect.
syn keyword expectCommand		proc
syn keyword expectConditional	if else
syn keyword expectRepeat		while for foreach

" Expect commands with special arguments.
syn keyword expectStatement	expect expect_after expect_background			nextgroup=expectExpectOpts
syn keyword expectStatement	expect_before expect_user interact			nextgroup=expectExpectOpts

syn match   expectSpecial contained  "\\."

" Options for "expect", "expect_after", "expect_background",
" "expect_before", "expect_user", and "interact".
syn keyword expectExpectOpts	default eof full_buffer null return timeout

syn keyword expectOutVar  contained  spawn_id seconds seconds_total
syn keyword expectOutVar  contained  string start end buffer

" Numbers (Tcl style).
syn case ignore
  syn match  expectNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"
  "floating point number, with dot, optional exponent
  syn match  expectNumber	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
  "floating point number, starting with a dot, optional exponent
  syn match  expectNumber	"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
  "floating point number, without dot, with exponent
  syn match  expectNumber	"\<\d\+e[-+]\=\d\+[fl]\=\>"
  "hex number
  syn match  expectNumber	"0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
  "syn match  expectIdentifier	"\<[a-z_][a-z0-9_]*\>"
syn case match

syn region  expectString	start=+"+  end=+"+  contains=@Spell,expectVariables,expectSpecial

" Are these really comments in Expect? (I never use it, so I'm just guessing).
syn keyword expectTodo		contained TODO
syn match   expectComment	"#.*$" contains=@Spell,expectTodo
syn match   expectSharpBang	"\%^#!.*"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link expectSharpBang	PreProc
hi def link expectVariables	Special
hi def link expectCommand		Function
hi def link expectStatement	Statement
hi def link expectConditional	Conditional
hi def link expectRepeat		Repeat
hi def link expectExpectOpts	Keyword
hi def link expectOutVar		Special
hi def link expectSpecial		Special
hi def link expectNumber		Number

hi def link expectString		String

hi def link expectComment		Comment
hi def link expectTodo		Todo
"hi def link expectIdentifier	Identifier


let b:current_syntax = "expect"

" vim: ts=8
PK�j�Z�)�qvvvim80/syntax/xslt.vimnu�[���" Vim syntax file
" Language:	XSLT
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Sun, 28 Oct 2001 21:22:24 +0100
" Filenames:	*.xsl
" $Id: xslt.vim,v 1.1 2004/06/13 15:52:10 vimboss Exp $

" REFERENCES:
"   [1] http://www.w3.org/TR/xslt
"

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

runtime syntax/xml.vim

syn cluster xmlTagHook add=xslElement
syn case match

syn match xslElement '\%(xsl:\)\@<=apply-imports'
syn match xslElement '\%(xsl:\)\@<=apply-templates'
syn match xslElement '\%(xsl:\)\@<=attribute'
syn match xslElement '\%(xsl:\)\@<=attribute-set'
syn match xslElement '\%(xsl:\)\@<=call-template'
syn match xslElement '\%(xsl:\)\@<=choose'
syn match xslElement '\%(xsl:\)\@<=comment'
syn match xslElement '\%(xsl:\)\@<=copy'
syn match xslElement '\%(xsl:\)\@<=copy-of'
syn match xslElement '\%(xsl:\)\@<=decimal-format'
syn match xslElement '\%(xsl:\)\@<=document'
syn match xslElement '\%(xsl:\)\@<=element'
syn match xslElement '\%(xsl:\)\@<=fallback'
syn match xslElement '\%(xsl:\)\@<=for-each'
syn match xslElement '\%(xsl:\)\@<=if'
syn match xslElement '\%(xsl:\)\@<=include'
syn match xslElement '\%(xsl:\)\@<=import'
syn match xslElement '\%(xsl:\)\@<=key'
syn match xslElement '\%(xsl:\)\@<=message'
syn match xslElement '\%(xsl:\)\@<=namespace-alias'
syn match xslElement '\%(xsl:\)\@<=number'
syn match xslElement '\%(xsl:\)\@<=otherwise'
syn match xslElement '\%(xsl:\)\@<=output'
syn match xslElement '\%(xsl:\)\@<=param'
syn match xslElement '\%(xsl:\)\@<=processing-instruction'
syn match xslElement '\%(xsl:\)\@<=preserve-space'
syn match xslElement '\%(xsl:\)\@<=script'
syn match xslElement '\%(xsl:\)\@<=sort'
syn match xslElement '\%(xsl:\)\@<=strip-space'
syn match xslElement '\%(xsl:\)\@<=stylesheet'
syn match xslElement '\%(xsl:\)\@<=template'
syn match xslElement '\%(xsl:\)\@<=transform'
syn match xslElement '\%(xsl:\)\@<=text'
syn match xslElement '\%(xsl:\)\@<=value-of'
syn match xslElement '\%(xsl:\)\@<=variable'
syn match xslElement '\%(xsl:\)\@<=when'
syn match xslElement '\%(xsl:\)\@<=with-param'

hi def link xslElement Statement

" vim: ts=8
PK�j�Z��ԗ�
�
vim80/syntax/m4.vimnu�[���" Vim syntax file
" Language:		M4
" Maintainer:	Claudio Fleiner (claudio@fleiner.com)
" URL:			http://www.fleiner.com/vim/syntax/m4.vim
" Last Change:	2005 Jan 15

" This file will highlight user function calls if they use only
" capital letters and have at least one argument (i.e. the '('
" must be there). Let me know if this is a problem.

" quit when a syntax file was already loaded
if !exists("main_syntax")
  if exists("b:current_syntax")
	finish
  endif
  " we define it here so that included files can test for it
  let main_syntax='m4'
endif

" define the m4 syntax
syn match  m4Variable contained "\$\d\+"
syn match  m4Special  contained "$[@*#]"
syn match  m4Comment  "\<\(m4_\)\=dnl\>.*" contains=SpellErrors
syn match  m4Constants "\<\(m4_\)\=__file__"
syn match  m4Constants "\<\(m4_\)\=__line__"
syn keyword m4Constants divnum sysval m4_divnum m4_sysval
syn region m4Paren    matchgroup=m4Delimiter start="(" end=")" contained contains=@m4Top
syn region m4Command  matchgroup=m4Function  start="\<\(m4_\)\=\(define\|defn\|pushdef\)(" end=")" contains=@m4Top
syn region m4Command  matchgroup=m4Preproc   start="\<\(m4_\)\=\(include\|sinclude\)("he=e-1 end=")" contains=@m4Top
syn region m4Command  matchgroup=m4Statement start="\<\(m4_\)\=\(syscmd\|esyscmd\|ifdef\|ifelse\|indir\|builtin\|shift\|errprint\|m4exit\|changecom\|changequote\|changeword\|m4wrap\|debugfile\|divert\|undivert\)("he=e-1 end=")" contains=@m4Top
syn region m4Command  matchgroup=m4builtin start="\<\(m4_\)\=\(len\|index\|regexp\|substr\|translit\|patsubst\|format\|incr\|decr\|eval\|maketemp\)("he=e-1 end=")" contains=@m4Top
syn keyword m4Statement divert undivert
syn region m4Command  matchgroup=m4Type      start="\<\(m4_\)\=\(undefine\|popdef\)("he=e-1 end=")" contains=@m4Top
syn region m4Function matchgroup=m4Type      start="\<[_A-Z][_A-Z0-9]*("he=e-1 end=")" contains=@m4Top
syn region m4String   start="`" end="'" contained contains=@m4Top,@m4StringContents,SpellErrors
syn cluster m4Top     contains=m4Comment,m4Constants,m4Special,m4Variable,m4String,m4Paren,m4Command,m4Statement,m4Function

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link m4Delimiter Delimiter
hi def link m4Comment   Comment
hi def link m4Function  Function
hi def link m4Keyword   Keyword
hi def link m4Special   Special
hi def link m4String    String
hi def link m4Statement Statement
hi def link m4Preproc   PreProc
hi def link m4Type      Type
hi def link m4Special   Special
hi def link m4Variable  Special
hi def link m4Constants Constant
hi def link m4Builtin   Statement

let b:current_syntax = "m4"

if main_syntax == 'm4'
  unlet main_syntax
endif

" vim: ts=4
PK�j�Zd���,!,!vim80/syntax/debcontrol.vimnu�[���" Vim syntax file
" Language:    Debian control files
" Maintainer:  Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
"                     Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2018 Jan 06
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim

" Standard syntax initialization
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Should match case except for the keys of each field
syn case match

syn iskeyword @,48-57,-,/

" Everything that is not explicitly matched by the rules below
syn match debcontrolElse "^.*$"

" Common seperators
syn match debControlComma ",[ \t]*"
syn match debControlSpace "[ \t]"

let s:kernels = ['linux', 'hurd', 'kfreebsd', 'knetbsd', 'kopensolaris', 'netbsd']
let s:archs = [
      \ 'alpha', 'amd64', 'armeb', 'armel', 'armhf', 'arm64', 'avr32', 'hppa'
      \, 'i386', 'ia64', 'lpia', 'm32r', 'm68k', 'mipsel', 'mips64el', 'mips'
      \, 'powerpcspe', 'powerpc', 'ppc64el', 'ppc64', 's390x', 's390', 'sh3eb'
      \, 'sh3', 'sh4eb', 'sh4', 'sh', 'sparc64', 'sparc', 'x32'
      \ ]
let s:pairs = [
      \ 'hurd-i386', 'kfreebsd-i386', 'kfreebsd-amd64', 'knetbsd-i386'
      \, 'kopensolaris-i386', 'netbsd-alpha', 'netbsd-i386'
      \ ]

" Define some common expressions we can use later on
syn keyword debcontrolArchitecture contained all any
exe 'syn keyword debcontrolArchitecture contained '. join(map(s:kernels, {k,v -> v .'-any'}))
exe 'syn keyword debcontrolArchitecture contained '. join(map(s:archs, {k,v -> 'any-'.v}))
exe 'syn keyword debcontrolArchitecture contained '. join(s:archs)
exe 'syn keyword debcontrolArchitecture contained '. join(s:pairs)

unlet s:kernels s:archs s:pairs

let s:sections = [
      \ 'admin', 'cli-mono', 'comm', 'database', 'debian-installer', 'debug'
      \, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded'
      \, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics'
      \, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection'
      \, 'java\%(script\)\=', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
      \, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net'
      \, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python'
      \, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex'
      \, 'utils', 'vcs', 'video', 'web', 'x11', 'xfce', 'zope'
      \ ]

syn keyword debcontrolMultiArch contained no foreign allowed same
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn keyword debcontrolPriority contained extra important optional required standard
exe 'syn match debcontrolSection contained "\%(\%(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\%('.join(s:sections, '\|').'\)"'
syn keyword debcontrolPackageType contained udeb deb
syn match debcontrolVariable contained "\${.\{-}}"
syn keyword debcontrolDmUpload contained yes
syn keyword debcontrolYesNo contained yes no
syn match debcontrolR3 contained "\<\%(no\|binary-targets\|[[:graph:]]\+/[[:graph:]]\+\%( \+[[:graph:]]\+/[[:graph:]]\+\)*\)\>"

unlet s:sections

" A URL (using the domain name definitions from RFC 1034 and 1738), right now
" only enforce protocol and some sanity on the server/path part;
syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
syn match debcontrolVcsGit contained "\v%(git|https?)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?%(\s+-b\s+[^ ~^:?*[\\]+)?$"

" An email address
syn match	debcontrolEmail	"[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
syn match	debcontrolEmail	"<.\{-}>"

" #-Comments
syn match debcontrolComment "^#.*$" contains=@Spell

syn case ignore

" Handle all fields from deb-src-control(5)

" Fields for which we do strict syntax checking
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Architecture: *" end="$" contains=debcontrolArchitecture,debcontrolSpace oneline
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Multi-Arch: *" end="$" contains=debcontrolMultiArch oneline
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Package\|Source\): *" end="$" contains=debcontrolName oneline
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Priority: *" end="$" contains=debcontrolPriority oneline
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Section: *" end="$" contains=debcontrolSection oneline
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XC-\)\=Package-Type: *" end="$" contains=debcontrolPackageType oneline
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Homepage: *" end="$" contains=debcontrolHTTPUrl oneline keepend
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Rules-Requires-Root: *" end="$" contains=debcontrolR3 oneline
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Build-\)\=Essential: *" end="$" contains=debcontrolYesNo oneline

syn region debcontrolStrictField matchgroup=debcontrolDeprecatedKey start="^\%(XS-\)\=DM-Upload-Allowed: *" end="$" contains=debcontrolDmUpload oneline

" Catch-all for the other legal fields
syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline
syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment
syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell

" Associate our matches and regions with pretty colours
hi def link debcontrolKey           Keyword
hi def link debcontrolField         Normal
hi def link debcontrolStrictField   Error
hi def link debcontrolDeprecatedKey Error
hi def link debcontrolMultiField    Normal
hi def link debcontrolArchitecture  Normal
hi def link debcontrolMultiArch     Normal
hi def link debcontrolName          Normal
hi def link debcontrolPriority      Normal
hi def link debcontrolSection       Normal
hi def link debcontrolPackageType   Normal
hi def link debcontrolVariable      Identifier
hi def link debcontrolEmail         Identifier
hi def link debcontrolVcsSvn        Identifier
hi def link debcontrolVcsCvs        Identifier
hi def link debcontrolVcsGit        Identifier
hi def link debcontrolHTTPUrl       Identifier
hi def link debcontrolDmUpload      Identifier
hi def link debcontrolYesNo         Identifier
hi def link debcontrolR3            Identifier
hi def link debcontrolComment       Comment
hi def link debcontrolElse          Special

let b:current_syntax = "debcontrol"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 sw=2
PK�j�Z>��ggvim80/syntax/spyce.vimnu�[���" Vim syntax file
" Language:	   SPYCE
" Maintainer:	 Rimon Barr <rimon AT acm DOT org>
" URL:		     http://spyce.sourceforge.net
" Last Change: 2009 Nov 11

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" we define it here so that included files can test for it
if !exists("main_syntax")
  let main_syntax='spyce'
endif

" Read the HTML syntax to start with
let b:did_indent = 1	     " don't perform HTML indentation!
let html_no_rendering = 1    " do not render <b>,<i>, etc...
runtime! syntax/html.vim
unlet b:current_syntax
syntax spell default  " added by Bram

" include python
syn include @Python <sfile>:p:h/python.vim
syn include @Html <sfile>:p:h/html.vim

" spyce definitions
syn keyword spyceDirectiveKeyword include compact module import contained
syn keyword spyceDirectiveArg name names file contained
syn region  spyceDirectiveString start=+"+ end=+"+ contained
syn match   spyceDirectiveValue "=[\t ]*[^'", \t>][^, \t>]*"hs=s+1 contained

syn match spyceBeginErrorS  ,\[\[,
syn match spyceBeginErrorA  ,<%,
syn cluster spyceBeginError contains=spyceBeginErrorS,spyceBeginErrorA
syn match spyceEndErrorS    ,\]\],
syn match spyceEndErrorA    ,%>,
syn cluster spyceEndError contains=spyceEndErrorS,spyceEndErrorA

syn match spyceEscBeginS       ,\\\[\[,
syn match spyceEscBeginA       ,\\<%,
syn cluster spyceEscBegin contains=spyceEscBeginS,spyceEscBeginA
syn match spyceEscEndS	       ,\\\]\],
syn match spyceEscEndA	       ,\\%>,
syn cluster spyceEscEnd contains=spyceEscEndS,spyceEscEndA
syn match spyceEscEndCommentS  ,--\\\]\],
syn match spyceEscEndCommentA  ,--\\%>,
syn cluster spyceEscEndComment contains=spyceEscEndCommentS,spyceEscEndCommentA

syn region spyceStmtS      matchgroup=spyceStmtDelim start=,\[\[, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
syn region spyceStmtA      matchgroup=spyceStmtDelim start=,<%, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
syn region spyceChunkS     matchgroup=spyceChunkDelim start=,\[\[\\, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
syn region spyceChunkA     matchgroup=spyceChunkDelim start=,<%\\, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
syn region spyceEvalS      matchgroup=spyceEvalDelim start=,\[\[=, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
syn region spyceEvalA      matchgroup=spyceEvalDelim start=,<%=, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
syn region spyceDirectiveS matchgroup=spyceDelim start=,\[\[\., end=,\]\], contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend
syn region spyceDirectiveA matchgroup=spyceDelim start=,<%@, end=,%>, contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend
syn region spyceCommentS   matchgroup=spyceCommentDelim start=,\[\[--, end=,--\]\],
syn region spyceCommentA   matchgroup=spyceCommentDelim start=,<%--, end=,--%>,
syn region spyceLambdaS    matchgroup=spyceLambdaDelim start=,\[\[spy!\?, end=,\]\], contains=@Html,@spyce extend
syn region spyceLambdaA    matchgroup=spyceLambdaDelim start=,<%spy!\?, end=,%>, contains=@Html,@spyce extend

syn cluster spyce contains=spyceStmtS,spyceStmtA,spyceChunkS,spyceChunkA,spyceEvalS,spyceEvalA,spyceCommentS,spyceCommentA,spyceDirectiveS,spyceDirectiveA

syn cluster htmlPreproc contains=@spyce

hi link spyceDirectiveKeyword	Special
hi link spyceDirectiveArg	Type
hi link spyceDirectiveString	String
hi link spyceDirectiveValue	String

hi link spyceDelim		Special
hi link spyceStmtDelim		spyceDelim
hi link spyceChunkDelim		spyceDelim
hi link spyceEvalDelim		spyceDelim
hi link spyceLambdaDelim	spyceDelim
hi link spyceCommentDelim	Comment

hi link spyceBeginErrorS	Error
hi link spyceBeginErrorA	Error
hi link spyceEndErrorS		Error
hi link spyceEndErrorA		Error

hi link spyceStmtS		spyce
hi link spyceStmtA		spyce
hi link spyceChunkS		spyce
hi link spyceChunkA		spyce
hi link spyceEvalS		spyce
hi link spyceEvalA		spyce
hi link spyceDirectiveS		spyce
hi link spyceDirectiveA		spyce
hi link spyceCommentS		Comment
hi link spyceCommentA		Comment
hi link spyceLambdaS		Normal
hi link spyceLambdaA		Normal

hi link spyce			Statement

let b:current_syntax = "spyce"
if main_syntax == 'spyce'
  unlet main_syntax
endif

PK�j�Z����|�|vim80/syntax/css.vimnu�[���" Vim syntax file
" Language:     Cascading Style Sheets
" Previous Contributor List:
"               Claudio Fleiner <claudio@fleiner.com> (Maintainer)
"               Yeti            (Add full CSS2, HTML4 support)
"               Nikolai Weibull (Add CSS2 support)
" URL:          https://github.com/JulesWang/css.vim
" Maintainer:   Jules Wang      <w.jq0722@gmail.com>
" Last Change:  2018 Feb. 27
"               cssClassName updated by Ryuichi Hayashida Jan 2016

" quit when a syntax file was already loaded
if !exists("main_syntax")
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'css'
elseif exists("b:current_syntax") && b:current_syntax == "css"
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

" HTML4 tags
syn keyword cssTagName abbr address area a b base
syn keyword cssTagName bdo blockquote body br button
syn keyword cssTagName caption cite code col colgroup dd del
syn keyword cssTagName dfn div dl dt em fieldset form
syn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i
syn keyword cssTagName iframe input ins isindex kbd label legend li
syn keyword cssTagName link map menu meta noscript ol optgroup
syn keyword cssTagName option p param pre q s samp script small
syn keyword cssTagName span strong sub sup tbody td
syn keyword cssTagName textarea tfoot th thead title tr ul u var
syn keyword cssTagName object svg
syn match   cssTagName /\<select\>\|\<style\>\|\<table\>/

" 34 HTML5 tags
syn keyword cssTagName article aside audio bdi canvas command data
syn keyword cssTagName datalist details dialog embed figcaption figure footer
syn keyword cssTagName header hgroup keygen main mark menuitem meter nav
syn keyword cssTagName output progress rt rp ruby section
syn keyword cssTagName source summary time track video wbr

" Tags not supported in HTML5
" acronym applet basefont big center dir
" font frame frameset noframes strike tt

syn match cssTagName "\*"

" selectors
syn match cssSelectorOp "[,>+~]"
syn match cssSelectorOp2 "[~|^$*]\?=" contained
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ

" .class and #id
syn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
syn match cssClassNameDot contained '\.'

try
syn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*"
catch /^.*/
syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
endtry

" digits
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators

" The 16 basic color names
syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow

" 130 more color names
syn keyword cssColor contained aliceblue antiquewhite aquamarine azure
syn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
syn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
syn match cssColor contained /\<dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)\>/
syn match cssColor contained /\<dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)\>/
syn match cssColor contained /\<darkslate\(blue\|gray\|grey\)\>/
syn match cssColor contained /\<dark\(turquoise\|violet\)\>/
syn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
syn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
syn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
syn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
syn keyword cssColor contained lemonchiffon limegreen linen magenta
syn match cssColor contained /\<light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)\>/
syn match cssColor contained /\<light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)\>/
syn match cssColor contained /\<light\(slategray\|slategrey\|steelblue\)\>/
syn match cssColor contained /\<medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)\>/
syn match cssColor contained /\<medium\(slateblue\|springgreen\|turquoise\|violetred\)\>/
syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
syn keyword cssColor contained oldlace olivedrab orange orangered orchid
syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
syn keyword cssColor contained thistle tomato turquoise violet wheat
syn keyword cssColor contained whitesmoke yellowgreen

" FIXME: These are actually case-insensitive too, but (a) specs recommend using
" mixed-case (b) it's hard to highlight the word `Background' correctly in
" all situations
syn case match
syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background
syn case ignore

syn match cssImportant contained "!\s*important\>"

syn match cssColor contained "\<transparent\>"
syn match cssColor contained "\<currentColor\>"
syn match cssColor contained "\<white\>"
syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators
syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators

syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline  contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline  contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline  contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
syn match cssFunctionComma contained ","

" Common Prop and Attr
syn keyword cssCommonAttr contained auto none inherit all default normal
syn keyword cssCommonAttr contained top bottom center stretch hidden visible
"------------------------------------------------
" CSS Animations
" http://www.w3.org/TR/css3-animations/
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"

" animation-direction attributes
syn keyword cssAnimationAttr contained alternate reverse
syn match cssAnimationAttr contained "\<alternate-reverse\>"

" animation-fill-mode attributes
syn keyword cssAnimationAttr contained forwards backwards both

" animation-play-state attributes
syn keyword cssAnimationAttr contained running paused

" animation-iteration-count attributes
syn keyword cssAnimationAttr contained infinite
"------------------------------------------------
"  CSS Backgrounds and Borders Module Level 3
"  http://www.w3.org/TR/css3-background/
syn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
" background-attachment attributes
syn keyword cssBackgroundAttr contained scroll fixed local

" background-position attributes
syn keyword cssBackgroundAttr contained left center right top bottom

" background-repeat attributes
syn match cssBackgroundAttr contained "\<no-repeat\>"
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"

" background-size attributes
syn keyword cssBackgroundAttr contained cover contain

syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
syn match cssBorderProp contained "\<box-decoration-break\>"
syn match cssBorderProp contained "\<box-shadow\>"

" border-image attributes
syn keyword cssBorderAttr contained stretch round fill

" border-style attributes
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset

" border-width attributes
syn keyword cssBorderAttr contained thin thick medium

" box-decoration-break attributes
syn keyword cssBorderAttr contained clone slice
"------------------------------------------------

syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
syn match cssBoxProp contained "\<rotation\(-point\)\=\>"
syn keyword cssBoxAttr contained visible hidden scroll auto
syn match cssBoxAttr contained "\<no-\(display\|content\)\>"

syn keyword cssColorProp contained opacity
syn match cssColorProp contained "\<color-profile\>"
syn match cssColorProp contained "\<rendering-intent\>"


syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
syn keyword cssDimensionProp contained height
syn keyword cssDimensionProp contained width

" CSS Flexible Box Layout Module Level 1
" http://www.w3.org/TR/css3-flexbox/
" CSS Box Alignment Module Level 3
" http://www.w3.org/TR/css-align-3/
syn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>"
syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>"
syn keyword cssFlexibleBoxProp contained order

syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
syn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>"

" CSS Fonts Module Level 3
" http://www.w3.org/TR/css-fonts-3/
syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>"

" font attributes
syn keyword cssFontAttr contained icon menu caption
syn match cssFontAttr contained "\<message-box\>"
syn match cssFontAttr contained "\<status-bar\>"
syn keyword cssFontAttr contained larger smaller
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
" font-family attributes
syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
syn keyword cssFontAttr contained cursive fantasy monospace
" font-feature-settings attributes
syn keyword cssFontAttr contained on off
" font-stretch attributes
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
" font-style attributes
syn keyword cssFontAttr contained italic oblique
" font-synthesis attributes
syn keyword cssFontAttr contained weight style
" font-weight attributes
syn keyword cssFontAttr contained bold bolder lighter
" TODO: font-variant-* attributes
"------------------------------------------------

" Webkit specific property/attributes
syn match cssFontProp contained "\<font-smooth\>"
syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"


" CSS Multi-column Layout Module
" http://www.w3.org/TR/css3-multicol/
syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
syn keyword cssMultiColumnProp contained columns
syn keyword cssMultiColumnAttr contained balance medium
syn keyword cssMultiColumnAttr contained always left right page column
syn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>"

" http://www.w3.org/TR/css3-break/#page-break
syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"

" http://www.w3.org/TR/SVG11/interact.html
syn match cssInteractProp contained "\<pointer-events\>"
syn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>"

" TODO find following items in w3c docs.
syn keyword cssGeneratedContentProp contained quotes crop
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
syn match cssGeneratedContentProp contained "\<move-to\>"
syn match cssGeneratedContentProp contained "\<page-policy\>"
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"

" https://www.w3.org/TR/css-grid-1/
syn match cssGridProp contained "\<grid\>"
syn match cssGridProp contained "\<grid\(-\(template\|auto\)\)\=\(-\(columns\|rows\|areas\)\)\>"
syn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>"
syn match cssGridProp contained "\<grid-\(area\|gap\)\>"
syn match cssGridProp contained "\<grid-auto-flow\>"

syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"

syn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
syn keyword cssListAttr contained disc circle square hebrew armenian georgian
syn keyword cssListAttr contained inside outside

syn keyword cssPositioningProp contained bottom clear clip display float left
syn keyword cssPositioningProp contained position right top visibility
syn match cssPositioningProp contained "\<z-index\>"
syn keyword cssPositioningAttr contained block compact grid
syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
syn keyword cssPositioningAttr contained left right both
syn match cssPositioningAttr contained "\<list-item\>"
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
syn keyword cssPositioningAttr contained static relative absolute fixed subgrid

syn keyword cssPrintAttr contained landscape portrait crop cross always

syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
syn keyword cssTableAttr contained fixed collapse separate show hide once always


syn keyword cssTextProp contained color direction
syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
syn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
syn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
syn match cssTextProp contained "\<white-space\>"
syn match cssTextProp contained "\<hanging-punctuation\>"
syn match cssTextProp contained "\<punctuation-trim\>"
syn match cssTextAttr contained "\<line-through\>"
syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
syn keyword cssTextAttr contained ltr rtl embed nowrap
syn keyword cssTextAttr contained underline overline blink sub super middle
syn keyword cssTextAttr contained capitalize uppercase lowercase
syn keyword cssTextAttr contained justify baseline sub super
syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed
syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
syn keyword cssTextAttr contained start end adjacent
syn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
syn keyword cssTextAttr contained distribute kashida first last
syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
syn match cssTextAttr contained "\<break-all\>"
syn match cssTextAttr contained "\<break-word\>"
syn keyword cssTextAttr contained hyphenate
syn match cssTextAttr contained "\<bidi-override\>"

syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
syn match cssTransformProp contained "\<backface-visibility\>"

" CSS Transitions
" http://www.w3.org/TR/css3-transitions/
syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"

" transition-time-function attributes
syn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
syn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
syn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
"------------------------------------------------
" CSS Basic User Interface Module Level 3 (CSS3 UI)
" http://www.w3.org/TR/css3-ui/
syn match cssUIProp contained "\<box-sizing\>"
syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"

syn keyword cssUIProp contained cursor
syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
syn keyword cssUIAttr contained crosshair help move pointer alias copy
syn keyword cssUIAttr contained progress wait text cell move
syn match cssUIAttr contained "\<context-menu\>"
syn match cssUIAttr contained "\<no-drop\>"
syn match cssUIAttr contained "\<not-allowed\>"
syn match cssUIAttr contained "\<all-scroll\>"
syn match cssUIAttr contained "\<\(vertical-\)\=text\>"
syn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"

syn match cssUIProp contained "\<ime-mode\>"
syn keyword cssUIAttr contained active inactive disabled

syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
syn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
syn keyword cssUIAttr contained invert

syn keyword cssUIProp contained icon resize
syn keyword cssUIAttr contained both horizontal vertical

syn match cssUIProp contained "\<text-overflow\>"
syn keyword cssUIAttr contained clip ellipsis

syn match cssUIProp contained "\<image-rendering\>"
syn keyword cssUIAttr contained pixellated
syn match cssUIAttr contained "\<crisp-edges\>"

"------------------------------------------------
" Webkit/iOS specific attributes
syn match cssUIAttr contained '\<preserve-3d\>'
" IE specific attributes
syn match cssIEUIAttr contained '\<bicubic\>'

" Webkit/iOS specific properties
syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
" IE specific properties
syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'

" Webkit/Firebox specific properties/attributes
syn keyword cssUIProp contained appearance
syn keyword cssUIAttr contained window button field icon document menu


syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
syn keyword cssAuralProp contained volume during azimuth elevation stress richness
syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
syn keyword cssAuralAttr contained silent
syn match cssAuralAttr contained "\<spell-out\>"
syn keyword cssAuralAttr contained non mix
syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
syn keyword cssAuralAttr contained leftwards rightwards behind
syn keyword cssAuralAttr contained below level above lower higher
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
syn keyword cssAuralAttr contained faster slower
syn keyword cssAuralAttr contained male female child code digits continuous

" mobile text
syn match cssMobileTextProp contained "\<text-size-adjust\>"

syn keyword cssMediaProp contained width height orientation scan grid
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
syn keyword cssMediaAttr contained portrait landscape progressive interlace
syn match cssKeyFrameProp /\d*%\|from\|to/  contained nextgroup=cssDefinition
syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
syn keyword cssPageProp contained content size
syn keyword cssPageProp contained orphans widows
syn keyword cssFontDescriptorProp contained src
syn match cssFontDescriptorProp contained "\<unicode-range\>"
" unicode-range attributes
syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"

syn match cssBraces contained "[{}]"
syn match cssError contained "{@<>"
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssAttributeSelector,cssClassName,cssIdentifier,cssAtRule,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold
syn match cssBraceError "}"
syn match cssAttrComma ","

" Pseudo class
" http://www.w3.org/TR/css3-selectors/
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
syn keyword cssPseudoClassId contained link visited active hover before after left right
syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")"
" ------------------------------------
" Vendor specific properties
syn match cssPseudoClassId contained  "\<selection\>"
syn match cssPseudoClassId contained  "\<focus\(-inner\)\=\>"
syn match cssPseudoClassId contained  "\<\(input-\)\=placeholder\>"

" Misc highlight groups
syntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
syntax match cssNoise contained /\(:\|;\|\/\)/

" Comment
syn region cssComment start="/\*" end="\*/" contains=@Spell fold

syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
syn match cssSpecialCharQQ +\\\\\|\\"+ contained
syn match cssSpecialCharQ +\\\\\|\\'+ contained
syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ

" Vendor Prefix
syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-"

" Various CSS Hack characters
" In earlier versions of IE (6 and 7), one can prefix property names
" with a _ or * to isolate those definitions to particular versions of IE
" This is purely decorative and therefore we assign to the same highlight
" group to cssVendor, for more information:
" http://www.paulirish.com/2009/browser-specific-css-hacks/
syn match cssHacks contained /\(_\|*\)/

" Attr Enhance
" Some keywords are both Prop and Attr, so we have to handle them
syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise

" Hack for transition
" 'transition' has Props after ':'.
syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise

syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ contained

syn keyword cssAtRuleLogical only not and contained

" @media
" Reference: http://www.w3.org/TR/css3-mediaqueries/
syn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment nextgroup=cssDefinition
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained

" @page
" http://www.w3.org/TR/css3-page/
syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
" @keyframe
" http://www.w3.org/TR/css3-animations/#keyframes
syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition

syn region cssAtRule start=/@import\>/    end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType
syn region cssAtRule start=/@charset\>/   end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
syn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword

" @font-face
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
syn match cssAtRule "@font-face\>" nextgroup=cssFontDescriptorBlock
" @supports
" https://www.w3.org/TR/css3-conditional/#at-supports
syn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition


if main_syntax == "css"
  syn sync minlines=10
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cssComment Comment
hi def link cssVendor Comment
hi def link cssHacks Comment
hi def link cssTagName Statement
hi def link cssDeprecated Error
hi def link cssSelectorOp Special
hi def link cssSelectorOp2 Special
hi def link cssAttrComma Special

hi def link cssAnimationProp cssProp
hi def link cssBackgroundProp cssProp
hi def link cssBorderProp cssProp
hi def link cssBoxProp cssProp
hi def link cssColorProp cssProp
hi def link cssContentForPagedMediaProp cssProp
hi def link cssDimensionProp cssProp
hi def link cssFlexibleBoxProp cssProp
hi def link cssFontProp cssProp
hi def link cssGeneratedContentProp cssProp
hi def link cssGridProp cssProp
hi def link cssHyerlinkProp cssProp
hi def link cssInteractProp cssProp
hi def link cssLineboxProp cssProp
hi def link cssListProp cssProp
hi def link cssMarqueeProp cssProp
hi def link cssMultiColumnProp cssProp
hi def link cssPagedMediaProp cssProp
hi def link cssPositioningProp cssProp
hi def link cssPrintProp cssProp
hi def link cssRubyProp cssProp
hi def link cssSpeechProp cssProp
hi def link cssTableProp cssProp
hi def link cssTextProp cssProp
hi def link cssTransformProp cssProp
hi def link cssTransitionProp cssProp
hi def link cssUIProp cssProp
hi def link cssIEUIProp cssProp
hi def link cssAuralProp cssProp
hi def link cssRenderProp cssProp
hi def link cssMobileTextProp cssProp

hi def link cssAnimationAttr cssAttr
hi def link cssBackgroundAttr cssAttr
hi def link cssBorderAttr cssAttr
hi def link cssBoxAttr cssAttr
hi def link cssContentForPagedMediaAttr cssAttr
hi def link cssDimensionAttr cssAttr
hi def link cssFlexibleBoxAttr cssAttr
hi def link cssFontAttr cssAttr
hi def link cssGeneratedContentAttr cssAttr
hi def link cssGridAttr cssAttr
hi def link cssHyerlinkAttr cssAttr
hi def link cssInteractAttr cssAttr
hi def link cssLineboxAttr cssAttr
hi def link cssListAttr cssAttr
hi def link cssMarginAttr cssAttr
hi def link cssMarqueeAttr cssAttr
hi def link cssMultiColumnAttr cssAttr
hi def link cssPaddingAttr cssAttr
hi def link cssPagedMediaAttr cssAttr
hi def link cssPositioningAttr cssAttr
hi def link cssGradientAttr cssAttr
hi def link cssPrintAttr cssAttr
hi def link cssRubyAttr cssAttr
hi def link cssSpeechAttr cssAttr
hi def link cssTableAttr cssAttr
hi def link cssTextAttr cssAttr
hi def link cssTransformAttr cssAttr
hi def link cssTransitionAttr cssAttr
hi def link cssUIAttr cssAttr
hi def link cssIEUIAttr cssAttr
hi def link cssAuralAttr cssAttr
hi def link cssRenderAttr cssAttr
hi def link cssCommonAttr cssAttr

hi def link cssPseudoClassId PreProc
hi def link cssPseudoClassLang Constant
hi def link cssValueLength Number
hi def link cssValueInteger Number
hi def link cssValueNumber Number
hi def link cssValueAngle Number
hi def link cssValueTime Number
hi def link cssValueFrequency Number
hi def link cssFunction Constant
hi def link cssURL String
hi def link cssFunctionName Function
hi def link cssFunctionComma Function
hi def link cssColor Constant
hi def link cssIdentifier Function
hi def link cssAtRule Include
hi def link cssAtKeyword PreProc
hi def link cssImportant Special
hi def link cssBraces Function
hi def link cssBraceError Error
hi def link cssError Error
hi def link cssUnicodeEscape Special
hi def link cssStringQQ String
hi def link cssStringQ String
hi def link cssAttributeSelector String
hi def link cssMediaType Special
hi def link cssMediaComma Normal
hi def link cssAtRuleLogical Statement
hi def link cssMediaProp cssProp
hi def link cssMediaAttr cssAttr
hi def link cssPagePseudo PreProc
hi def link cssPageMarginProp cssAtKeyword
hi def link cssPageProp cssProp
hi def link cssKeyFrameProp Constant
hi def link cssFontDescriptor Special
hi def link cssFontDescriptorProp cssProp
hi def link cssFontDescriptorAttr cssAttr
hi def link cssUnicodeRange Constant
hi def link cssClassName Function
hi def link cssClassNameDot Function
hi def link cssProp StorageClass
hi def link cssAttr Constant
hi def link cssUnitDecorators Number
hi def link cssNoise Noise

let b:current_syntax = "css"

if main_syntax == 'css'
  unlet main_syntax
endif

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8

PK�j�Z̼�&vim80/syntax/tilde.vimnu�[���" Vim syntax file
" This file works only for Vim6.x
" Language:	Tilde
" Maintainer:	Tobias Rundstr�m <tobi@tildesoftware.net>
" URL:		http://www.tildesoftware.net
" CVS:		$Id: tilde.vim,v 1.1 2004/06/13 19:31:51 vimboss Exp $

if exists("b:current_syntax")
  finish
endif

"tilde dosent care ...
syn case ignore

syn match	tildeFunction	"\~[a-z_0-9]\+"ms=s+1
syn region	tildeParen	start="(" end=")" contains=tildeString,tildeNumber,tildeVariable,tildeField,tildeSymtab,tildeFunction,tildeParen,tildeHexNumber,tildeOperator
syn region	tildeString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ keepend
syn region	tildeString	contained start=+'+ skip=+\\\\\|\\"+ end=+'+ keepend
syn match	tildeNumber	"\d" contained
syn match	tildeOperator	"or\|and" contained
syn match	tildeHexNumber  "0x[a-z0-9]\+" contained
syn match	tildeVariable	"$[a-z_0-9]\+" contained
syn match	tildeField	"%[a-z_0-9]\+" contained
syn match	tildeSymtab	"@[a-z_0-9]\+" contained
syn match	tildeComment	"^#.*"
syn region	tildeCurly	start=+{+ end=+}+ contained contains=tildeLG,tildeString,tildeNumber,tildeVariable,tildeField,tildeFunction,tildeSymtab,tildeHexNumber
syn match	tildeLG		"=>" contained


hi def link	tildeComment	Comment
hi def link	tildeFunction	Operator
hi def link	tildeOperator	Operator
hi def link	tildeString	String
hi def link	tildeNumber	Number
hi def link	tildeHexNumber	Number
hi def link	tildeVariable	Identifier
hi def link	tildeField	Identifier
hi def link	tildeSymtab	Identifier
hi def link	tildeError	Error

let b:current_syntax = "tilde"
PK�j�Zxk8�vim80/syntax/indent.vimnu�[���" Vim syntax file
" Language:             indent(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2010-01-23
"   indent_is_bsd:      If exists, will change somewhat to match BSD implementation
"
" TODO:     is the deny-all (a la lilo.vim nice or no?)...
"       irritating to be wrong to the last char...
"       would be sweet if right until one char fails

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-,+

syn match   indentError   '\S\+'

syn keyword indentTodo    contained TODO FIXME XXX NOTE

syn region  indentComment start='/\*' end='\*/'
                          \ contains=indentTodo,@Spell
syn region  indentComment start='//' skip='\\$' end='$'
                          \ contains=indentTodo,@Spell

if !exists("indent_is_bsd")
  syn match indentOptions '-i\|--indentation-level\|-il\|--indent-level'
                        \ nextgroup=indentNumber skipwhite skipempty
endif
syn match   indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
                        \ nextgroup=indentNumber skipwhite skipempty

syn match   indentNumber  display contained '\d\+\>'

syn match   indentOptions '-T'
                        \ nextgroup=indentIdent skipwhite skipempty

syn match   indentIdent   display contained '\h\w*\>'

syn keyword indentOptions -bacc --blank-lines-after-ifdefs
                        \ -bad --blank-lines-after-declarations
                        \ -badp --blank-lines-after-procedure-declarations
                        \ -bap --blank-lines-after-procedures
                        \ -bbb --blank-lines-before-block-comments
                        \ -bbo --break-before-boolean-operator
                        \ -bc --blank-lines-after-commas
                        \ -bfda --break-function-decl-args
                        \ -bfde --break-function-decl-args-end
                        \ -bl --braces-after-if-line
                        \ -blf --braces-after-func-def-line
                        \ -bls --braces-after-struct-decl-line
                        \ -br --braces-on-if-line
                        \ -brf --braces-on-func-def-line
                        \ -brs --braces-on-struct-decl-line
                        \ -bs --Bill-Shannon --blank-before-sizeof
                        \ -c++ --c-plus-plus
                        \ -cdb --comment-delimiters-on-blank-lines
                        \ -cdw --cuddle-do-while
                        \ -ce --cuddle-else
                        \ -cs --space-after-cast
                        \ -dj --left-justify-declarations
                        \ -eei --extra-expression-indentation
                        \ -fc1 --format-first-column-comments
                        \ -fca --format-all-comments
                        \ -gnu --gnu-style
                        \ -h --help --usage
                        \ -hnl --honour-newlines
                        \ -kr --k-and-r-style --kernighan-and-ritchie --kernighan-and-ritchie-style
                        \ -lp --continue-at-parentheses
                        \ -lps --leave-preprocessor-space
                        \ -nbacc --no-blank-lines-after-ifdefs
                        \ -nbad --no-blank-lines-after-declarations
                        \ -nbadp --no-blank-lines-after-procedure-declarations
                        \ -nbap --no-blank-lines-after-procedures
                        \ -nbbb --no-blank-lines-before-block-comments
                        \ -nbbo --break-after-boolean-operator
                        \ -nbc --no-blank-lines-after-commas
                        \ -nbfda --dont-break-function-decl-args
                        \ -nbfde --dont-break-function-decl-args-end
                        \ -nbs --no-Bill-Shannon --no-blank-before-sizeof
                        \ -ncdb --no-comment-delimiters-on-blank-lines
                        \ -ncdw --dont-cuddle-do-while
                        \ -nce --dont-cuddle-else
                        \ -ncs --no-space-after-casts
                        \ -ndj --dont-left-justify-declarations
                        \ -neei --no-extra-expression-indentation
                        \ -nfc1 --dont-format-first-column-comments
                        \ -nfca --dont-format-comments
                        \ -nhnl --ignore-newlines
                        \ -nip --dont-indent-parameters --no-parameter-indentation
                        \ -nlp --dont-line-up-parentheses
                        \ -nlps --remove-preprocessor-space
                        \ -npcs --no-space-after-function-call-names
                        \ -npmt
                        \ -npro --ignore-profile
                        \ -nprs --no-space-after-parentheses
                        \ -npsl --dont-break-procedure-type
                        \ -nsaf --no-space-after-for
                        \ -nsai --no-space-after-if
                        \ -nsaw --no-space-after-while
                        \ -nsc --dont-star-comments
                        \ -nsob --leave-optional-blank-lines
                        \ -nss --dont-space-special-semicolon
                        \ -nut --no-tabs
                        \ -nv --no-verbosity
                        \ -o --output
                        \ -o --output-file
                        \ -orig --berkeley --berkeley-style --original --original-style
                        \ -pcs --space-after-procedure-calls
                        \ -pmt --preserve-mtime
                        \ -prs --space-after-parentheses
                        \ -psl --procnames-start-lines
                        \ -saf --space-after-for
                        \ -sai --space-after-if
                        \ -saw --space-after-while
                        \ -sc --start-left-side-of-comments
                        \ -sob --swallow-optional-blank-lines
                        \ -ss --space-special-semicolon
                        \ -st --standard-output
                        \ -ut --use-tabs
                        \ -v --verbose
                        \ -version --version
                        \ -linux --linux-style

if exists("indent_is_bsd")
  syn keyword indentOptions -ip -ei -nei
endif

if exists("c_minlines")
  let b:c_minlines = c_minlines
else
  if !exists("c_no_if0")
    let b:c_minlines = 50       " #if 0 constructs can be long
  else
    let b:c_minlines = 15       " mostly for () constructs
  endif
endif

hi def link indentError   Error
hi def link indentComment Comment
hi def link indentTodo    Todo
hi def link indentOptions Keyword
hi def link indentNumber  Number
hi def link indentIdent   Identifier

let b:current_syntax = "indent"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZB�j""vim80/syntax/sm.vimnu�[���" Vim syntax file
" Language:	sendmail
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Oct 25, 2016
" Version:	8
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
if exists("b:current_syntax")
  finish
endif

" Comments
syn match smComment	"^#.*$"	contains=@Spell

" Definitions, Classes, Files, Options, Precedence, Trusted Users, Mailers
syn match smDefine	"^[CDF]."
syn match smDefine	"^O[AaBcdDeFfgHiLmNoQqrSsTtuvxXyYzZ]"
syn match smDefine	"^O\s"he=e-1
syn match smDefine	"^M[a-zA-Z0-9]\+,"he=e-1
syn match smDefine	"^T"	nextgroup=smTrusted
syn match smDefine	"^P"	nextgroup=smMesg
syn match smTrusted	"\S\+$"		contained
syn match smMesg		"\S*="he=e-1	contained nextgroup=smPrecedence
syn match smPrecedence	"-\=[0-9]\+"		contained

" Header Format  H?list-of-mailer-flags?name: format
syn match smHeaderSep contained "[?:]"
syn match smHeader	"^H\(?[a-zA-Z]\+?\)\=[-a-zA-Z_]\+:" contains=smHeaderSep

" Variables
syn match smVar		"\$[a-z\.\|]"

" Rulesets
syn match smRuleset	"^S\d*"

" Rewriting Rules
syn match smRewrite	"^R"			skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsUser

syn match smRewriteLhsUser	contained "[^\t$]\+"		skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsSep
syn match smRewriteLhsToken	contained "\(\$[-*+]\|\$[-=][A-Za-z]\|\$Y\)\+"	skipwhite nextgroup=smRewriteLhsUser,smRewriteLhsSep

syn match smRewriteLhsSep	contained "\t\+"			skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsUser

syn match smRewriteRhsUser	contained "[^\t$]\+"		skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsSep
syn match smRewriteRhsToken	contained "\(\$\d\|\$>\d\|\$#\|\$@\|\$:[-_a-zA-Z]\+\|\$[[\]]\|\$@\|\$:\|\$[A-Za-z]\)\+" skipwhite nextgroup=smRewriteRhsUser,smRewriteRhsSep

syn match smRewriteRhsSep	contained "\t\+"			skipwhite nextgroup=smRewriteComment,smRewriteRhsSep
syn match smRewriteRhsSep	contained "$"

syn match smRewriteComment	contained "[^\t$]*$"

" Clauses
syn match smClauseError		"\$\."
syn match smElse		contained	"\$|"
syn match smClauseCont	contained	"^\t"
syn region smClause	matchgroup=Delimiter start="\$?." matchgroup=Delimiter end="\$\." contains=smElse,smClause,smVar,smClauseCont

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link smClause	Special
hi def link smClauseError	Error
hi def link smComment	Comment
hi def link smDefine	Statement
hi def link smElse	Delimiter
hi def link smHeader	Statement
hi def link smHeaderSep	String
hi def link smMesg	Special
hi def link smPrecedence	Number
hi def link smRewrite	Statement
hi def link smRewriteComment	Comment
hi def link smRewriteLhsToken	String
hi def link smRewriteLhsUser	Statement
hi def link smRewriteRhsToken	String
hi def link smRuleset	Preproc
hi def link smTrusted	Special
hi def link smVar		String

let b:current_syntax = "sm"

" vim: ts=18
PK�j�Z(�DzXXvim80/syntax/objcpp.vimnu�[���" Vim syntax file
" Language:	    Objective C++
" Maintainer:	    Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com>
" Ex-Maintainer:    Anthony Hodsdon <ahodsdon@fastmail.fm>
" Last Change:	    2007 Oct 29

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

" Read in C++ and ObjC syntax files
runtime! syntax/cpp.vim
unlet b:current_syntax
runtime! syntax/objc.vim

syn keyword objCppNonStructure    class template namespace transparent contained
syn keyword objCppNonStatement    new delete friend using transparent contained

let b:current_syntax = "objcpp"
PK�j�Z|�'��vim80/syntax/pccts.vimnu�[���" Vim syntax file
" Language:	PCCTS
" Maintainer:	Scott Bigham <dsb@killerbunnies.org>
" Last Change:	10 Aug 1999

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the C++ syntax to start with
syn include @cppTopLevel syntax/cpp.vim

syn region pcctsAction matchgroup=pcctsDelim start="<<" end=">>?\=" contains=@cppTopLevel,pcctsRuleRef

syn region pcctsArgBlock matchgroup=pcctsDelim start="\(>\s*\)\=\[" end="\]" contains=@cppTopLevel,pcctsRuleRef

syn region pcctsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pcctsSpecialChar
syn match  pcctsSpecialChar "\\\\\|\\\"" contained

syn region pcctsComment start="/\*" end="\*/" contains=cTodo
syn match  pcctsComment "//.*$" contains=cTodo

syn region pcctsDirective start="^\s*#header\s\+<<" end=">>" contains=pcctsAction keepend
syn match  pcctsDirective "^\s*#parser\>.*$" contains=pcctsString,pcctsComment
syn match  pcctsDirective "^\s*#tokdefs\>.*$" contains=pcctsString,pcctsComment
syn match  pcctsDirective "^\s*#token\>.*$" contains=pcctsString,pcctsAction,pcctsTokenName,pcctsComment
syn region pcctsDirective start="^\s*#tokclass\s\+[A-Z]\i*\s\+{" end="}" contains=pcctsString,pcctsTokenName
syn match  pcctsDirective "^\s*#lexclass\>.*$" contains=pcctsTokenName
syn region pcctsDirective start="^\s*#errclass\s\+[^{]\+\s\+{" end="}" contains=pcctsString,pcctsTokenName
syn match pcctsDirective "^\s*#pred\>.*$" contains=pcctsTokenName,pcctsAction

syn cluster pcctsInRule contains=pcctsString,pcctsRuleName,pcctsTokenName,pcctsAction,pcctsArgBlock,pcctsSubRule,pcctsLabel,pcctsComment

syn region pcctsRule start="\<[a-z][A-Za-z0-9_]*\>\(\s*\[[^]]*\]\)\=\(\s*>\s*\[[^]]*\]\)\=\s*:" end=";" contains=@pcctsInRule

syn region pcctsSubRule matchgroup=pcctsDelim start="(" end=")\(+\|\*\|?\(\s*=>\)\=\)\=" contains=@pcctsInRule contained
syn region pcctsSubRule matchgroup=pcctsDelim start="{" end="}" contains=@pcctsInRule contained

syn match pcctsRuleName  "\<[a-z]\i*\>" contained
syn match pcctsTokenName "\<[A-Z]\i*\>" contained

syn match pcctsLabel "\<\I\i*:\I\i*" contained contains=pcctsLabelHack,pcctsRuleName,pcctsTokenName
syn match pcctsLabel "\<\I\i*:\"\([^\\]\|\\.\)*\"" contained contains=pcctsLabelHack,pcctsString
syn match pcctsLabelHack "\<\I\i*:" contained

syn match pcctsRuleRef "\$\I\i*\>" contained
syn match pcctsRuleRef "\$\d\+\(\.\d\+\)\>" contained

syn keyword pcctsClass     class   nextgroup=pcctsClassName skipwhite
syn match   pcctsClassName "\<\I\i*\>" contained nextgroup=pcctsClassBlock skipwhite skipnl
syn region pcctsClassBlock start="{" end="}" contained contains=pcctsRule,pcctsComment,pcctsDirective,pcctsAction,pcctsException,pcctsExceptionHandler

syn keyword pcctsException exception nextgroup=pcctsExceptionRuleRef skipwhite
syn match pcctsExceptionRuleRef "\[\I\i*\]" contained contains=pcctsExceptionID
syn match pcctsExceptionID "\I\i*" contained
syn keyword pcctsExceptionHandler	catch default
syn keyword pcctsExceptionHandler	NoViableAlt NoSemViableAlt
syn keyword pcctsExceptionHandler	MismatchedToken

syn sync clear
syn sync match pcctsSyncAction grouphere pcctsAction "<<"
syn sync match pcctsSyncAction "<<\([^>]\|>[^>]\)*>>"
syn sync match pcctsSyncRule grouphere pcctsRule "\<[a-z][A-Za-z0-9_]*\>\s*\[[^]]*\]\s*:"
syn sync match pcctsSyncRule grouphere pcctsRule "\<[a-z][A-Za-z0-9_]*\>\(\s*\[[^]]*\]\)\=\s*>\s*\[[^]]*\]\s*:"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link pcctsDelim		Special
hi def link pcctsTokenName		Identifier
hi def link pcctsRuleName		Statement
hi def link pcctsLabelHack		Label
hi def link pcctsDirective		PreProc
hi def link pcctsString		String
hi def link pcctsComment		Comment
hi def link pcctsClass		Statement
hi def link pcctsClassName		Identifier
hi def link pcctsException		Statement
hi def link pcctsExceptionHandler	Keyword
hi def link pcctsExceptionRuleRef	pcctsDelim
hi def link pcctsExceptionID	Identifier
hi def link pcctsRuleRef		Identifier
hi def link pcctsSpecialChar	SpecialChar


let b:current_syntax = "pccts"

" vim: ts=8
PK�j�Z=Io?||vim80/syntax/iss.vimnu�[���" Vim syntax file
" Language:             Inno Setup File (iss file) and My InnoSetup extension
" Maintainer:           Jason Mills (jmills@cs.mun.ca)
" Previous Maintainer:  Dominique St�phan (dominique@mggen.com)
" Last Change:          2004 Dec 14
"
" Todo:
"  - The paramter String: is matched as flag string (because of case ignore).
"  - Pascal scripting syntax is not recognized.
"  - Embedded double quotes confuse string matches. e.g. "asfd""asfa"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" shut case off
syn case ignore

" Preprocessor
syn region issPreProc start="^\s*#" end="$"

" Section
syn region issSection	start="\[" end="\]"

" Label in the [Setup] Section
syn match  issDirective	"^[^=]\+="

" URL
syn match  issURL	"http[s]\=:\/\/.*$"

" Parameters used for any section.
" syn match  issParam"[^: ]\+:"
syn match  issParam	"Name:"
syn match  issParam	"MinVersion:\|OnlyBelowVersion:\|Languages:"
syn match  issParam	"Source:\|DestDir:\|DestName:\|CopyMode:"
syn match  issParam	"Attribs:\|Permissions:\|FontInstall:\|Flags:"
syn match  issParam	"FileName:\|Parameters:\|WorkingDir:\|HotKey:\|Comment:"
syn match  issParam	"IconFilename:\|IconIndex:"
syn match  issParam	"Section:\|Key:\|String:"
syn match  issParam	"Root:\|SubKey:\|ValueType:\|ValueName:\|ValueData:"
syn match  issParam	"RunOnceId:"
syn match  issParam	"Type:\|Excludes:"
syn match  issParam	"Components:\|Description:\|GroupDescription:\|Types:\|ExtraDiskSpaceRequired:"
syn match  issParam	"StatusMsg:\|RunOnceId:\|Tasks:"
syn match  issParam	"MessagesFile:\|LicenseFile:\|InfoBeforeFile:\|InfoAfterFile:"

syn match  issComment	"^\s*;.*$"

" folder constant
syn match  issFolder	"{[^{]*}"

" string
syn region issString	start=+"+ end=+"+ contains=issFolder

" [Dirs]
syn keyword issDirsFlags deleteafterinstall uninsalwaysuninstall uninsneveruninstall

" [Files]
syn keyword issFilesCopyMode normal onlyifdoesntexist alwaysoverwrite alwaysskipifsameorolder dontcopy
syn keyword issFilesAttribs readonly hidden system
syn keyword issFilesPermissions full modify readexec
syn keyword issFilesFlags allowunsafefiles comparetimestampalso confirmoverwrite deleteafterinstall
syn keyword issFilesFlags dontcopy dontverifychecksum external fontisnttruetype ignoreversion 
syn keyword issFilesFlags isreadme onlyifdestfileexists onlyifdoesntexist overwritereadonly 
syn keyword issFilesFlags promptifolder recursesubdirs regserver regtypelib restartreplace
syn keyword issFilesFlags sharedfile skipifsourcedoesntexist sortfilesbyextension touch 
syn keyword issFilesFlags uninsremovereadonly uninsrestartdelete uninsneveruninstall
syn keyword issFilesFlags replacesameversion nocompression noencryption noregerror


" [Icons]
syn keyword issIconsFlags closeonexit createonlyiffileexists dontcloseonexit 
syn keyword issIconsFlags runmaximized runminimized uninsneveruninstall useapppaths

" [INI]
syn keyword issINIFlags createkeyifdoesntexist uninsdeleteentry uninsdeletesection uninsdeletesectionifempty

" [Registry]
syn keyword issRegRootKey   HKCR HKCU HKLM HKU HKCC
syn keyword issRegValueType none string expandsz multisz dword binary
syn keyword issRegFlags createvalueifdoesntexist deletekey deletevalue dontcreatekey 
syn keyword issRegFlags preservestringtype noerror uninsclearvalue 
syn keyword issRegFlags uninsdeletekey uninsdeletekeyifempty uninsdeletevalue

" [Run] and [UninstallRun]
syn keyword issRunFlags hidewizard nowait postinstall runhidden runmaximized
syn keyword issRunFlags runminimized shellexec skipifdoesntexist skipifnotsilent 
syn keyword issRunFlags skipifsilent unchecked waituntilidle

" [Types]
syn keyword issTypesFlags iscustom

" [Components]
syn keyword issComponentsFlags dontinheritcheck exclusive fixed restart disablenouninstallwarning

" [UninstallDelete] and [InstallDelete]
syn keyword issInstallDeleteType files filesandordirs dirifempty

" [Tasks]
syn keyword issTasksFlags checkedonce dontinheritcheck exclusive restart unchecked 


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link issSection	Special
hi def link issComment	Comment
hi def link issDirective	Type
hi def link issParam	Type
hi def link issFolder	Special
hi def link issString	String
hi def link issURL	Include
hi def link issPreProc	PreProc 

hi def link issDirsFlags		Keyword
hi def link issFilesCopyMode	Keyword
hi def link issFilesAttribs	Keyword
hi def link issFilesPermissions	Keyword
hi def link issFilesFlags		Keyword
hi def link issIconsFlags		Keyword
hi def link issINIFlags		Keyword
hi def link issRegRootKey		Keyword
hi def link issRegValueType	Keyword
hi def link issRegFlags		Keyword
hi def link issRunFlags		Keyword
hi def link issTypesFlags		Keyword
hi def link issComponentsFlags	Keyword
hi def link issInstallDeleteType	Keyword
hi def link issTasksFlags		Keyword


let b:current_syntax = "iss"

" vim:ts=8
PK�j�ZX#�D��vim80/syntax/ctrlh.vimnu�[���" Vim syntax file
" Language:	CTRL-H (e.g., ASCII manpages)
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2005 Jun 20

" Existing syntax is kept, this file can be used as an addition

" Recognize underlined text: _^Hx
syntax match CtrlHUnderline /_\b./  contains=CtrlHHide

" Recognize bold text: x^Hx
syntax match CtrlHBold /\(.\)\b\1/  contains=CtrlHHide

" Hide the CTRL-H (backspace)
syntax match CtrlHHide /.\b/  contained

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link CtrlHHide Ignore
hi def CtrlHUnderline term=underline cterm=underline gui=underline
hi def CtrlHBold term=bold cterm=bold gui=bold

" vim: ts=8
PK�j�Z�6����vim80/syntax/cheetah.vimnu�[���" Vim syntax file
" Language:	Cheetah template engine
" Maintainer:	Max Ischenko <mfi@ukr.net>
" Last Change: 2003-05-11
"
" Missing features:
"  match invalid syntax, like bad variable ref. or unmatched closing tag
"  PSP-style tags: <% .. %> (obsoleted feature)
"  doc-strings and header comments (rarely used feature)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syntax case match

syn keyword cheetahKeyword contained if else unless elif for in not
syn keyword cheetahKeyword contained while repeat break continue pass end
syn keyword cheetahKeyword contained set del attr def global include raw echo
syn keyword cheetahKeyword contained import from extends implements
syn keyword cheetahKeyword contained assert raise try catch finally
syn keyword cheetahKeyword contained errorCatcher breakpoint silent cache filter
syn match   cheetahKeyword contained "\<compiler-settings\>"

" Matches cached placeholders
syn match   cheetahPlaceHolder "$\(\*[0-9.]\+[wdhms]\?\*\|\*\)\?\h\w*\(\.\h\w*\)*" display
syn match   cheetahPlaceHolder "$\(\*[0-9.]\+[wdhms]\?\*\|\*\)\?{\h\w*\(\.\h\w*\)*}" display
syn match   cheetahDirective "^\s*#[^#].*$"  contains=cheetahPlaceHolder,cheetahKeyword,cheetahComment display

syn match   cheetahContinuation "\\$"
syn match   cheetahComment "##.*$" display
syn region  cheetahMultiLineComment start="#\*" end="\*#"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link cheetahPlaceHolder Identifier
hi def link cheetahDirective PreCondit
hi def link cheetahKeyword Define
hi def link cheetahContinuation Special
hi def link cheetahComment Comment
hi def link cheetahMultiLineComment Comment


let b:current_syntax = "cheetah"

PK�j�Z�+�/��vim80/syntax/esmtprc.vimnu�[���" Vim syntax file
" Language:	Esmtp setup file (based on esmtp 0.5.0)
" Maintainer:	Kornel Kielczewski <kornel@gazeta.pl>
" Last Change:	16 Feb 2005

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

"All options
syntax keyword	esmtprcOptions hostname username password starttls certificate_passphrase preconnect identity mda

"All keywords
syntax keyword esmtprcIdentifier default enabled disabled required

"We're trying to be smarer than /."*@.*/ :)
syntax match esmtprcAddress /[a-z0-9_.-]*[a-z0-9]\+@[a-z0-9_.-]*[a-z0-9]\+\.[a-z]\+/
syntax match esmtprcFulladd /[a-z0-9_.-]*[a-z0-9]\+\.[a-z]\+:[0-9]\+/
 
"String..
syntax region esmtprcString start=/"/ end=/"/


highlight link esmtprcOptions		Label
highlight link esmtprcString 		String
highlight link esmtprcAddress		Type
highlight link esmtprcIdentifier 	Identifier
highlight link esmtprcFulladd		Include

let b:current_syntax = "esmtprc"
PK�j�Zq���vim80/syntax/amiga.vimnu�[���" Vim syntax file
" Language:	AmigaDos
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:     9
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Amiga Devices
syn match amiDev "\(par\|ser\|prt\|con\|nil\):"

" Amiga aliases and paths
syn match amiAlias	"\<[a-zA-Z][a-zA-Z0-9]\+:"
syn match amiAlias	"\<[a-zA-Z][a-zA-Z0-9]\+:[a-zA-Z0-9/]*/"

" strings
syn region amiString	start=+"+ end=+"+ oneline contains=@Spell

" numbers
syn match amiNumber	"\<\d\+\>"

" Logic flow
syn region	amiFlow	matchgroup=Statement start="if"	matchgroup=Statement end="endif"	contains=ALL
syn keyword	amiFlow	skip endskip
syn match	amiError	"else\|endif"
syn keyword	amiElse contained	else

syn keyword	amiTest contained	not warn error fail eq gt ge val exists

" echo exception
syn region	amiEcho	matchgroup=Statement start="\<echo\>" end="$" oneline contains=amiComment
syn region	amiEcho	matchgroup=Statement start="^\.[bB][rR][aA]" end="$" oneline
syn region	amiEcho	matchgroup=Statement start="^\.[kK][eE][tT]" end="$" oneline

" commands
syn keyword	amiKey	addbuffers	copy	fault	join	pointer	setdate
syn keyword	amiKey	addmonitor	cpu	filenote	keyshow	printer	setenv
syn keyword	amiKey	alias	date	fixfonts	lab	printergfx	setfont
syn keyword	amiKey	ask	delete	fkey	list	printfiles	setmap
syn keyword	amiKey	assign	dir	font	loadwb	prompt	setpatch
syn keyword	amiKey	autopoint	diskchange	format	lock	protect	sort
syn keyword	amiKey	avail	diskcopy	get	magtape	quit	stack
syn keyword	amiKey	binddrivers	diskdoctor	getenv	makedir	relabel	status
syn keyword	amiKey	bindmonitor	display	graphicdump	makelink	remrad	time
syn keyword	amiKey	blanker		iconedit	more	rename	type
syn keyword	amiKey	break	ed	icontrol	mount	resident	unalias
syn keyword	amiKey	calculator	edit	iconx	newcli	run	unset
syn keyword	amiKey	cd	endcli	ihelp	newshell	say	unsetenv
syn keyword	amiKey	changetaskpri	endshell	info	nocapslock	screenmode	version
syn keyword	amiKey	clock	eval	initprinter	nofastmem	search	wait
syn keyword	amiKey	cmd	exchange	input	overscan	serial	wbpattern
syn keyword	amiKey	colors	execute	install	palette	set	which
syn keyword	amiKey	conclip	failat	iprefs	path	setclock	why

" comments
syn cluster	amiCommentGroup contains=amiTodo,@Spell
syn case ignore
syn keyword	amiTodo	contained	todo
syn case match
syn match	amiComment	";.*$" contains=amiCommentGroup

" sync
syn sync lines=50

" Define the default highlighting.
if !exists("skip_amiga_syntax_inits")

  hi def link amiAlias	Type
  hi def link amiComment	Comment
  hi def link amiDev	Type
  hi def link amiEcho	String
  hi def link amiElse	Statement
  hi def link amiError	Error
  hi def link amiKey	Statement
  hi def link amiNumber	Number
  hi def link amiString	String
  hi def link amiTest	Special

endif
let b:current_syntax = "amiga"

" vim:ts=15
PK�j�ZC�A
JJvim80/syntax/teraterm.vimnu�[���" Vim syntax file
" Language:	Tera Term Language (TTL)
"		Based on Tera Term Version 4.92
" Maintainer:	Ken Takata
" URL:		https://github.com/k-takata/vim-teraterm
" Last Change:	2016 Aug 17
" Filenames:	*.ttl
" License:	VIM License

if exists("b:current_syntax")
  finish
endif

let s:save_cpo = &cpo
set cpo&vim

syn case ignore

syn region ttlComment	start=";" end="$" contains=@Spell
syn region ttlComment	start="/\*" end="\*/" contains=@Spell
syn region ttlFirstComment	start="/\*" end="\*/" contained contains=@Spell
			\ nextgroup=ttlStatement,ttlFirstComment

syn match ttlCharacter	"#\%(\d\+\|\$\x\+\)\>"
syn match ttlNumber	"\%(\<\d\+\|\$\x\+\)\>"
syn match ttlString	"'[^']*'" contains=@Spell
syn match ttlString	'"[^"]*"' contains=@Spell
syn cluster ttlConstant contains=ttlCharacter,ttlNumber,ttlString

syn match ttlLabel	":\s*\w\{1,32}\>"

syn keyword ttlOperator	and or xor not

syn match ttlVar	"\<groupmatchstr\d\>"
syn match ttlVar	"\<param\d\>"
syn keyword ttlVar	inputstr matchstr paramcnt params result timeout mtimeout


syn match ttlLine nextgroup=ttlStatement "^"
syn match ttlStatement contained "\s*"
			\ nextgroup=ttlIf,ttlElseIf,ttlConditional,ttlRepeat,
			\ ttlFirstComment,ttlComment,ttlLabel,@ttlCommand

syn cluster ttlCommand contains=ttlControlCommand,ttlCommunicationCommand,
			\ ttlStringCommand,ttlFileCommand,ttlPasswordCommand,
			\ ttlMiscCommand


syn keyword ttlIf contained nextgroup=ttlIfExpression if
syn keyword ttlElseIf contained nextgroup=ttlElseIfExpression elseif

syn match ttlIfExpression contained "\s.*"
		\ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen,
		\ @ttlCommand
syn match ttlElseIfExpression contained "\s.*"
		\ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen

syn keyword ttlThen contained then
syn keyword ttlConditional contained else endif

syn keyword ttlRepeat contained for next until enduntil while endwhile
syn match ttlRepeat contained
			\ "\<\%(do\|loop\)\%(\s\+\%(while\|until\)\)\?\>"
syn keyword ttlControlCommand contained
			\ break call continue end execcmnd exit goto include
			\ mpause pause return


syn keyword ttlCommunicationCommand contained
			\ bplusrecv bplussend callmenu changedir clearscreen
			\ closett connect cygconnect disconnect dispstr
			\ enablekeyb flushrecv gethostname getmodemstatus
			\ gettitle kmtfinish kmtget kmtrecv kmtsend loadkeymap
			\ logautoclosemode logclose loginfo logopen logpause
			\ logrotate logstart logwrite quickvanrecv
			\ quickvansend recvln restoresetup scprecv scpsend
			\ send sendbreak sendbroadcast sendfile sendkcode
			\ sendln sendlnbroadcast sendmulticast setbaud
			\ setdebug setdtr setecho setmulticastname setrts
			\ setsync settitle showtt testlink unlink wait
			\ wait4all waitevent waitln waitn waitrecv waitregex
			\ xmodemrecv xmodemsend ymodemrecv ymodemsend
			\ zmodemrecv zmodemsend
syn keyword ttlStringCommand contained
			\ code2str expandenv int2str regexoption sprintf
			\ sprintf2 str2code str2int strcompare strconcat
			\ strcopy strinsert strjoin strlen strmatch strremove
			\ strreplace strscan strspecial strsplit strtrim
			\ tolower toupper
syn keyword ttlFileCommand contained
			\ basename dirname fileclose fileconcat filecopy
			\ filecreate filedelete filelock filemarkptr fileopen
			\ filereadln fileread filerename filesearch fileseek
			\ fileseekback filestat filestrseek filestrseek2
			\ filetruncate fileunlock filewrite filewriteln
			\ findfirst findnext findclose foldercreate
			\ folderdelete foldersearch getdir getfileattr makepath
			\ setdir setfileattr
syn keyword ttlPasswordCommand contained
			\ delpassword getpassword ispassword passwordbox
			\ setpassword
syn keyword ttlMiscCommand contained
			\ beep bringupbox checksum8 checksum8file checksum16
			\ checksum16file checksum32 checksum32file closesbox
			\ clipb2var crc16 crc16file crc32 crc32file exec
			\ dirnamebox filenamebox getdate getenv getipv4addr
			\ getipv6addr getspecialfolder gettime getttdir getver
			\ ifdefined inputbox intdim listbox messagebox random
			\ rotateleft rotateright setdate setdlgpos setenv
			\ setexitcode settime show statusbox strdim uptime
			\ var2clipb yesnobox


hi def link ttlCharacter Character
hi def link ttlNumber Number
hi def link ttlComment Comment
hi def link ttlFirstComment Comment
hi def link ttlString String
hi def link ttlLabel Label
hi def link ttlIf Conditional
hi def link ttlElseIf Conditional
hi def link ttlThen Conditional
hi def link ttlConditional Conditional
hi def link ttlRepeat Repeat
hi def link ttlControlCommand Keyword
hi def link ttlVar Identifier
hi def link ttlOperator Operator
hi def link ttlCommunicationCommand Keyword
hi def link ttlStringCommand Keyword
hi def link ttlFileCommand Keyword
hi def link ttlPasswordCommand Keyword
hi def link ttlMiscCommand Keyword

let b:current_syntax = "teraterm"

let &cpo = s:save_cpo
unlet s:save_cpo

" vim: ts=8 sw=2 sts=2
PK�j�Z������vim80/syntax/crontab.vimnu�[���" Vim syntax file
" Language: crontab
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" Original Maintainer: John Hoelzel johnh51@users.sourceforge.net
" License: This file can be redistribued and/or modified under the same terms
"   as Vim itself.
" Filenames: /tmp/crontab.* used by "crontab -e"
" Last Change: 2015-01-20
"
" crontab line format:
" Minutes   Hours   Days   Months   Days_of_Week   Commands # comments

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syntax match crontabNick "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\)\>" nextgroup=crontabCmd skipwhite

syntax match crontabVar "^\s*\k\w*\s*="me=e-1

syntax case ignore

syntax match crontabMin "^\s*[-0-9/,.*]\+" nextgroup=crontabHr skipwhite
syntax match crontabHr "\s[-0-9/,.*]\+" nextgroup=crontabDay skipwhite contained
syntax match crontabDay "\s[-0-9/,.*]\+" nextgroup=crontabMnth skipwhite contained

syntax match crontabMnth "\s[-a-z0-9/,.*]\+" nextgroup=crontabDow skipwhite contained
syntax keyword crontabMnth12 contained jan feb mar apr may jun jul aug sep oct nov dec

syntax match crontabDow "\s[-a-z0-9/,.*]\+" nextgroup=crontabCmd skipwhite contained
syntax keyword crontabDow7 contained sun mon tue wed thu fri sat

syntax region crontabCmd start="\S" end="$" skipwhite contained keepend contains=crontabPercent
syntax match crontabCmnt "^\s*#.*" contains=@Spell
syntax match crontabPercent "[^\\]%.*"lc=1 contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link crontabMin		Number
hi def link crontabHr		PreProc
hi def link crontabDay		Type

hi def link crontabMnth		Number
hi def link crontabMnth12		Number
hi def link crontabMnthS		Number
hi def link crontabMnthN		Number

hi def link crontabDow		PreProc
hi def link crontabDow7		PreProc
hi def link crontabDowS		PreProc
hi def link crontabDowN		PreProc

hi def link crontabNick		Special
hi def link crontabVar		Identifier
hi def link crontabPercent		Special

" comment out next line for to suppress unix commands coloring.
hi def link crontabCmd		Statement

hi def link crontabCmnt		Comment


let b:current_syntax = "crontab"

" vim: ts=8
PK�j�Z>t����vim80/syntax/modula3.vimnu�[���" Vim syntax file
" Language:	Modula-3
" Maintainer:	Timo Pedersen <dat97tpe@ludat.lth.se>
" Last Change:	2001 May 10

" Basic things only...
" Based on the modula 2 syntax file

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Modula-3 is case-sensitive
" syn case ignore

" Modula-3 keywords
syn keyword modula3Keyword ABS ADDRES ADR ADRSIZE AND ANY
syn keyword modula3Keyword ARRAY AS BITS BITSIZE BOOLEAN BRANDED BY BYTESIZE
syn keyword modula3Keyword CARDINAL CASE CEILING CHAR CONST DEC DEFINITION
syn keyword modula3Keyword DISPOSE DIV
syn keyword modula3Keyword EVAL EXIT EXCEPT EXCEPTION
syn keyword modula3Keyword EXIT EXPORTS EXTENDED FALSE FINALLY FIRST FLOAT
syn keyword modula3Keyword FLOOR FROM GENERIC IMPORT
syn keyword modula3Keyword IN INC INTEGER ISTYPE LAST LOCK
syn keyword modula3Keyword LONGREAL LOOPHOLE MAX METHOD MIN MOD MUTEX
syn keyword modula3Keyword NARROW NEW NIL NOT NULL NUMBER OF OR ORD RAISE
syn keyword modula3Keyword RAISES READONLY REAL RECORD REF REFANY
syn keyword modula3Keyword RETURN ROOT
syn keyword modula3Keyword ROUND SET SUBARRAY TEXT TRUE TRUNC TRY TYPE
syn keyword modula3Keyword TYPECASE TYPECODE UNSAFE UNTRACED VAL VALUE VAR WITH

" Special keywords, block delimiters etc
syn keyword modula3Block PROCEDURE FUNCTION MODULE INTERFACE REPEAT THEN
syn keyword modula3Block BEGIN END OBJECT METHODS OVERRIDES RECORD REVEAL
syn keyword modula3Block WHILE UNTIL DO TO IF FOR ELSIF ELSE LOOP

" Comments
syn region modula3Comment start="(\*" end="\*)"

" Strings
syn region modula3String start=+"+ end=+"+
syn region modula3String start=+'+ end=+'+

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link modula3Keyword	Statement
hi def link modula3Block		PreProc
hi def link modula3Comment	Comment
hi def link modula3String		String


let b:current_syntax = "modula3"

"I prefer to use this...
"set ai
"vim: ts=8
PK�j�Z�Ɋ]22vim80/syntax/abc.vimnu�[���" Vim syntax file
" Language:	abc music notation language
" Maintainer:	James Allwright <J.R.Allwright@westminster.ac.uk>
" URL:		http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim
" Last Change:	27th April 2001

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" tags
syn region abcGuitarChord start=+"[A-G]+ end=+"+ contained
syn match abcNote "z[1-9]*[0-9]*" contained
syn match abcNote "z[1-9]*[0-9]*/[248]\=" contained
syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*" contained
syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*/[248]\=" contained
syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*"  contained
syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*/[248]\="  contained
syn match abcBar "|"  contained
syn match abcBar "[:|][:|]"  contained
syn match abcBar ":|2"  contained
syn match abcBar "|1"  contained
syn match abcBar "\[[12]"  contained
syn match abcTuple "([1-9]\+:\=[0-9]*:\=[0-9]*" contained
syn match abcBroken "<\|<<\|<<<\|>\|>>\|>>>" contained
syn match abcTie    "-"
syn match abcHeadField "^[A-EGHIK-TVWXZ]:.*$" contained
syn match abcBodyField "^[KLMPQWVw]:.*$" contained
syn region abcHeader start="^X:" end="^K:.*$" contained contains=abcHeadField,abcComment keepend
syn region abcTune start="^X:" end="^ *$" contains=abcHeader,abcComment,abcBar,abcNote,abcBodyField,abcGuitarChord,abcTuple,abcBroken,abcTie
syn match abcComment "%.*$"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link abcComment		Comment
hi def link abcHeadField		Type
hi def link abcBodyField		Special
hi def link abcBar			Statement
hi def link abcTuple			Statement
hi def link abcBroken			Statement
hi def link abcTie			Statement
hi def link abcGuitarChord	Identifier
hi def link abcNote			Constant


let b:current_syntax = "abc"

" vim: ts=4
PK�j�Z��%V%Vvim80/syntax/sudoers.vimnu�[���" Vim syntax file
" Language:             sudoers(5) configuration files
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-02-24

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" TODO: instead of 'skipnl', we would like to match a specific group that would
" match \\$ and then continue with the nextgroup, actually, the skipnl doesn't
" work...
" TODO: treat 'ALL' like a special (yay, a bundle of new rules!!!)

syn match   sudoersUserSpec '^' nextgroup=@sudoersUserInSpec skipwhite

syn match   sudoersSpecEquals         contained '=' nextgroup=@sudoersCmndSpecList skipwhite

syn cluster sudoersCmndSpecList       contains=sudoersUserRunasBegin,sudoersPASSWD,@sudoersCmndInSpec

syn keyword sudoersTodo               contained TODO FIXME XXX NOTE

syn region  sudoersComment            display oneline start='#' end='$' contains=sudoersTodo

syn keyword sudoersAlias              User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
syn keyword sudoersAlias              Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
syn keyword sudoersAlias              Cmnd_Alias nextgroup=sudoersCmndAlias skipwhite skipnl

syn match   sudoersUserAlias          contained '\<\u[A-Z0-9_]*\>'  nextgroup=sudoersUserAliasEquals  skipwhite skipnl
syn match   sudoersUserNameInList     contained '\<\l\+\>'          nextgroup=@sudoersUserList        skipwhite skipnl
syn match   sudoersUIDInList          contained '#\d\+\>'           nextgroup=@sudoersUserList        skipwhite skipnl
syn match   sudoersGroupInList        contained '%\l\+\>'           nextgroup=@sudoersUserList        skipwhite skipnl
syn match   sudoersUserNetgroupInList contained '+\l\+\>'           nextgroup=@sudoersUserList        skipwhite skipnl
syn match   sudoersUserAliasInList    contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersUserList        skipwhite skipnl

syn match   sudoersUserName           contained '\<\l\+\>'          nextgroup=@sudoersParameter       skipwhite skipnl
syn match   sudoersUID                contained '#\d\+\>'           nextgroup=@sudoersParameter       skipwhite skipnl
syn match   sudoersGroup              contained '%\l\+\>'           nextgroup=@sudoersParameter       skipwhite skipnl
syn match   sudoersUserNetgroup       contained '+\l\+\>'           nextgroup=@sudoersParameter       skipwhite skipnl
syn match   sudoersUserAliasRef       contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersParameter       skipwhite skipnl

syn match   sudoersUserNameInSpec     contained '\<\l\+\>'          nextgroup=@sudoersUserSpec        skipwhite skipnl
syn match   sudoersUIDInSpec          contained '#\d\+\>'           nextgroup=@sudoersUserSpec        skipwhite skipnl
syn match   sudoersGroupInSpec        contained '%\l\+\>'           nextgroup=@sudoersUserSpec        skipwhite skipnl
syn match   sudoersUserNetgroupInSpec contained '+\l\+\>'           nextgroup=@sudoersUserSpec        skipwhite skipnl
syn match   sudoersUserAliasInSpec    contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersUserSpec        skipwhite skipnl

syn match   sudoersUserNameInRunas    contained '\<\l\+\>'          nextgroup=@sudoersUserRunas       skipwhite skipnl
syn match   sudoersUIDInRunas         contained '#\d\+\>'           nextgroup=@sudoersUserRunas       skipwhite skipnl
syn match   sudoersGroupInRunas       contained '%\l\+\>'           nextgroup=@sudoersUserRunas       skipwhite skipnl
syn match   sudoersUserNetgroupInRunas contained '+\l\+\>'          nextgroup=@sudoersUserRunas       skipwhite skipnl
syn match   sudoersUserAliasInRunas   contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersUserRunas       skipwhite skipnl

syn match   sudoersHostAlias          contained '\<\u[A-Z0-9_]*\>'  nextgroup=sudoersHostAliasEquals  skipwhite skipnl
syn match   sudoersHostNameInList     contained '\<\l\+\>'          nextgroup=@sudoersHostList        skipwhite skipnl
syn match   sudoersIPAddrInList       contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostList skipwhite skipnl
syn match   sudoersNetworkInList      contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostList skipwhite skipnl
syn match   sudoersHostNetgroupInList contained '+\l\+\>'           nextgroup=@sudoersHostList        skipwhite skipnl
syn match   sudoersHostAliasInList    contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersHostList        skipwhite skipnl

syn match   sudoersHostName           contained '\<\l\+\>'          nextgroup=@sudoersParameter       skipwhite skipnl
syn match   sudoersIPAddr             contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersParameter skipwhite skipnl
syn match   sudoersNetwork            contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersParameter skipwhite skipnl
syn match   sudoersHostNetgroup       contained '+\l\+\>'           nextgroup=@sudoersParameter       skipwhite skipnl
syn match   sudoersHostAliasRef       contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersParameter       skipwhite skipnl

syn match   sudoersHostNameInSpec     contained '\<\l\+\>'          nextgroup=@sudoersHostSpec        skipwhite skipnl
syn match   sudoersIPAddrInSpec       contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match   sudoersNetworkInSpec      contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match   sudoersHostNetgroupInSpec contained '+\l\+\>'           nextgroup=@sudoersHostSpec        skipwhite skipnl
syn match   sudoersHostAliasInSpec    contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersHostSpec        skipwhite skipnl

syn match   sudoersCmndAlias          contained '\<\u[A-Z0-9_]*\>'  nextgroup=sudoersCmndAliasEquals  skipwhite skipnl
syn match   sudoersCmndNameInList     contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndList,sudoersCommandEmpty,sudoersCommandArgs skipwhite
syn match   sudoersCmndAliasInList    contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersCmndList        skipwhite skipnl

syn match   sudoersCmndNameInSpec     contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndSpec,sudoersCommandEmptyInSpec,sudoersCommandArgsInSpec skipwhite
syn match   sudoersCmndAliasInSpec    contained '\<\u[A-Z0-9_]*\>'  nextgroup=@sudoersCmndSpec        skipwhite skipnl

syn match   sudoersUserAliasEquals  contained '=' nextgroup=@sudoersUserInList  skipwhite skipnl
syn match   sudoersUserListComma    contained ',' nextgroup=@sudoersUserInList  skipwhite skipnl
syn match   sudoersUserListColon    contained ':' nextgroup=sudoersUserAlias    skipwhite skipnl
syn cluster sudoersUserList         contains=sudoersUserListComma,sudoersUserListColon

syn match   sudoersUserSpecComma    contained ',' nextgroup=@sudoersUserInSpec  skipwhite skipnl
syn cluster sudoersUserSpec         contains=sudoersUserSpecComma,@sudoersHostInSpec

syn match   sudoersUserRunasBegin   contained '(' nextgroup=@sudoersUserInRunas skipwhite skipnl
syn match   sudoersUserRunasComma   contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl
syn match   sudoersUserRunasEnd     contained ')' nextgroup=sudoersPASSWD,@sudoersCmndInSpec skipwhite skipnl
syn cluster sudoersUserRunas        contains=sudoersUserRunasComma,@sudoersUserInRunas,sudoersUserRunasEnd


syn match   sudoersHostAliasEquals  contained '=' nextgroup=@sudoersHostInList  skipwhite skipnl
syn match   sudoersHostListComma    contained ',' nextgroup=@sudoersHostInList  skipwhite skipnl
syn match   sudoersHostListColon    contained ':' nextgroup=sudoersHostAlias    skipwhite skipnl
syn cluster sudoersHostList         contains=sudoersHostListComma,sudoersHostListColon

syn match   sudoersHostSpecComma    contained ',' nextgroup=@sudoersHostInSpec  skipwhite skipnl
syn cluster sudoersHostSpec         contains=sudoersHostSpecComma,sudoersSpecEquals


syn match   sudoersCmndAliasEquals  contained '=' nextgroup=@sudoersCmndInList  skipwhite skipnl
syn match   sudoersCmndListComma    contained ',' nextgroup=@sudoersCmndInList  skipwhite skipnl
syn match   sudoersCmndListColon    contained ':' nextgroup=sudoersCmndAlias    skipwhite skipnl
syn cluster sudoersCmndList         contains=sudoersCmndListComma,sudoersCmndListColon

syn match   sudoersCmndSpecComma    contained ',' nextgroup=@sudoersCmndSpecList skipwhite skipnl
syn match   sudoersCmndSpecColon    contained ':' nextgroup=@sudoersUserInSpec  skipwhite skipnl
syn cluster sudoersCmndSpec         contains=sudoersCmndSpecComma,sudoersCmndSpecColon

syn cluster sudoersUserInList       contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersUserNetgroupInList,sudoersUserAliasInList
syn cluster sudoersHostInList       contains=sudoersHostNegationInList,sudoersHostNameInList,sudoersIPAddrInList,sudoersNetworkInList,sudoersHostNetgroupInList,sudoersHostAliasInList
syn cluster sudoersCmndInList       contains=sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList

syn cluster sudoersUser             contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersUserNetgroup,sudoersUserAliasRef
syn cluster sudoersHost             contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef

syn cluster sudoersUserInSpec       contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec
syn cluster sudoersHostInSpec       contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec
syn cluster sudoersUserInRunas      contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas
syn cluster sudoersCmndInSpec       contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec

syn match   sudoersUserNegationInList contained '!\+' nextgroup=@sudoersUserInList  skipwhite skipnl
syn match   sudoersHostNegationInList contained '!\+' nextgroup=@sudoersHostInList  skipwhite skipnl
syn match   sudoersCmndNegationInList contained '!\+' nextgroup=@sudoersCmndInList  skipwhite skipnl

syn match   sudoersUserNegation       contained '!\+' nextgroup=@sudoersUser        skipwhite skipnl
syn match   sudoersHostNegation       contained '!\+' nextgroup=@sudoersHost        skipwhite skipnl

syn match   sudoersUserNegationInSpec contained '!\+' nextgroup=@sudoersUserInSpec  skipwhite skipnl
syn match   sudoersHostNegationInSpec contained '!\+' nextgroup=@sudoersHostInSpec  skipwhite skipnl
syn match   sudoersUserNegationInRunas contained '!\+' nextgroup=@sudoersUserInRunas skipwhite skipnl
syn match   sudoersCmndNegationInSpec contained '!\+' nextgroup=@sudoersCmndInSpec  skipwhite skipnl

syn match   sudoersCommandArgs      contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgs,@sudoersCmndList skipwhite
syn match   sudoersCommandEmpty     contained '""' nextgroup=@sudoersCmndList skipwhite skipnl

syn match   sudoersCommandArgsInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgsInSpec,@sudoersCmndSpec skipwhite
syn match   sudoersCommandEmptyInSpec contained '""' nextgroup=@sudoersCmndSpec skipwhite skipnl

syn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,@sudoersParameter skipwhite skipnl
syn match   sudoersDefaultTypeAt          contained '@' nextgroup=@sudoersHost skipwhite skipnl
syn match   sudoersDefaultTypeColon       contained ':' nextgroup=@sudoersUser skipwhite skipnl
syn match   sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser skipwhite skipnl

" TODO: could also deal with special characters here
syn match   sudoersBooleanParameter contained '!' nextgroup=sudoersBooleanParameter skipwhite skipnl
syn keyword sudoersBooleanParameter contained skipwhite skipnl
                                  \ always_set_home
                                  \ authenticate
                                  \ closefrom_override
                                  \ env_editor
                                  \ env_reset
                                  \ fqdn
                                  \ ignore_dot
                                  \ ignore_local_sudoers
                                  \ insults
                                  \ log_host
                                  \ log_year
                                  \ long_otp_prompt
                                  \ mail_always
                                  \ mail_badpass
                                  \ mail_no_host
                                  \ mail_no_perms
                                  \ mail_no_user
                                  \ noexec
                                  \ path_info
                                  \ passprompt_override
                                  \ preserve_groups
                                  \ requiretty
                                  \ root_sudo
                                  \ rootpw
                                  \ runaspw
                                  \ set_home
                                  \ set_logname
                                  \ setenv
                                  \ shell_noargs
                                  \ stay_setuid
                                  \ targetpw
                                  \ tty_tickets
                                  \ visiblepw

syn keyword sudoersIntegerParameter contained
                                  \ nextgroup=sudoersIntegerParameterEquals
                                  \ skipwhite skipnl
                                  \ closefrom
                                  \ passwd_tries
                                  \ loglinelen
                                  \ passwd_timeout
                                  \ timestamp_timeout
                                  \ umask

syn keyword sudoersStringParameter  contained
                                  \ nextgroup=sudoersStringParameterEquals
                                  \ skipwhite skipnl
                                  \ badpass_message
                                  \ editor
                                  \ mailsub
                                  \ noexec_file
                                  \ passprompt
                                  \ runas_default
                                  \ syslog_badpri
                                  \ syslog_goodpri
                                  \ sudoers_locale
                                  \ timestampdir
                                  \ timestampowner
                                  \ askpass
                                  \ env_file
                                  \ exempt_group
                                  \ lecture
                                  \ lecture_file
                                  \ listpw
                                  \ logfile
                                  \ mailerflags
                                  \ mailerpath
                                  \ mailfrom
                                  \ mailto
                                  \ secure_path
                                  \ syslog
                                  \ verifypw

syn keyword sudoersListParameter    contained
                                  \ nextgroup=sudoersListParameterEquals
                                  \ skipwhite skipnl
                                  \ env_check
                                  \ env_delete
                                  \ env_keep

syn match   sudoersParameterListComma contained ',' nextgroup=@sudoersParameter skipwhite skipnl

syn cluster sudoersParameter        contains=sudoersBooleanParameter,sudoersIntegerParameter,sudoersStringParameter,sudoersListParameter

syn match   sudoersIntegerParameterEquals contained '[+-]\==' nextgroup=sudoersIntegerValue skipwhite skipnl
syn match   sudoersStringParameterEquals  contained '[+-]\==' nextgroup=sudoersStringValue  skipwhite skipnl
syn match   sudoersListParameterEquals    contained '[+-]\==' nextgroup=sudoersListValue    skipwhite skipnl

syn match   sudoersIntegerValue contained '\d\+' nextgroup=sudoersParameterListComma skipwhite skipnl
syn match   sudoersStringValue  contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
syn region  sudoersStringValue  contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
syn match   sudoersListValue    contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
syn region  sudoersListValue    contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl

syn match   sudoersPASSWD                   contained '\%(NO\)\=PASSWD:' nextgroup=@sudoersCmndInSpec skipwhite

hi def link sudoersSpecEquals               Operator
hi def link sudoersTodo                     Todo
hi def link sudoersComment                  Comment
hi def link sudoersAlias                    Keyword
hi def link sudoersUserAlias                Identifier
hi def link sudoersUserNameInList           String
hi def link sudoersUIDInList                Number
hi def link sudoersGroupInList              PreProc
hi def link sudoersUserNetgroupInList       PreProc
hi def link sudoersUserAliasInList          PreProc
hi def link sudoersUserName                 String
hi def link sudoersUID                      Number
hi def link sudoersGroup                    PreProc
hi def link sudoersUserNetgroup             PreProc
hi def link sudoersUserAliasRef             PreProc
hi def link sudoersUserNameInSpec           String
hi def link sudoersUIDInSpec                Number
hi def link sudoersGroupInSpec              PreProc
hi def link sudoersUserNetgroupInSpec       PreProc
hi def link sudoersUserAliasInSpec          PreProc
hi def link sudoersUserNameInRunas          String
hi def link sudoersUIDInRunas               Number
hi def link sudoersGroupInRunas             PreProc
hi def link sudoersUserNetgroupInRunas      PreProc
hi def link sudoersUserAliasInRunas         PreProc
hi def link sudoersHostAlias                Identifier
hi def link sudoersHostNameInList           String
hi def link sudoersIPAddrInList             Number
hi def link sudoersNetworkInList            Number
hi def link sudoersHostNetgroupInList       PreProc
hi def link sudoersHostAliasInList          PreProc
hi def link sudoersHostName                 String
hi def link sudoersIPAddr                   Number
hi def link sudoersNetwork                  Number
hi def link sudoersHostNetgroup             PreProc
hi def link sudoersHostAliasRef             PreProc
hi def link sudoersHostNameInSpec           String
hi def link sudoersIPAddrInSpec             Number
hi def link sudoersNetworkInSpec            Number
hi def link sudoersHostNetgroupInSpec       PreProc
hi def link sudoersHostAliasInSpec          PreProc
hi def link sudoersCmndAlias                Identifier
hi def link sudoersCmndNameInList           String
hi def link sudoersCmndAliasInList          PreProc
hi def link sudoersCmndNameInSpec           String
hi def link sudoersCmndAliasInSpec          PreProc
hi def link sudoersUserAliasEquals          Operator
hi def link sudoersUserListComma            Delimiter
hi def link sudoersUserListColon            Delimiter
hi def link sudoersUserSpecComma            Delimiter
hi def link sudoersUserRunasBegin           Delimiter
hi def link sudoersUserRunasComma           Delimiter
hi def link sudoersUserRunasEnd             Delimiter
hi def link sudoersHostAliasEquals          Operator
hi def link sudoersHostListComma            Delimiter
hi def link sudoersHostListColon            Delimiter
hi def link sudoersHostSpecComma            Delimiter
hi def link sudoersCmndAliasEquals          Operator
hi def link sudoersCmndListComma            Delimiter
hi def link sudoersCmndListColon            Delimiter
hi def link sudoersCmndSpecComma            Delimiter
hi def link sudoersCmndSpecColon            Delimiter
hi def link sudoersUserNegationInList       Operator
hi def link sudoersHostNegationInList       Operator
hi def link sudoersCmndNegationInList       Operator
hi def link sudoersUserNegation             Operator
hi def link sudoersHostNegation             Operator
hi def link sudoersUserNegationInSpec       Operator
hi def link sudoersHostNegationInSpec       Operator
hi def link sudoersUserNegationInRunas      Operator
hi def link sudoersCmndNegationInSpec       Operator
hi def link sudoersCommandArgs              String
hi def link sudoersCommandEmpty             Special
hi def link sudoersDefaultEntry             Keyword
hi def link sudoersDefaultTypeAt            Special
hi def link sudoersDefaultTypeColon         Special
hi def link sudoersDefaultTypeGreaterThan   Special
hi def link sudoersBooleanParameter         Identifier
hi def link sudoersIntegerParameter         Identifier
hi def link sudoersStringParameter          Identifier
hi def link sudoersListParameter            Identifier
hi def link sudoersParameterListComma       Delimiter
hi def link sudoersIntegerParameterEquals   Operator
hi def link sudoersStringParameterEquals    Operator
hi def link sudoersListParameterEquals      Operator
hi def link sudoersIntegerValue             Number
hi def link sudoersStringValue              String
hi def link sudoersListValue                String
hi def link sudoersPASSWD                   Special

let b:current_syntax = "sudoers"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z&q̱� � vim80/syntax/tsalt.vimnu�[���" Vim syntax file
" Language:	Telix (Modem Comm Program) SALT Script
" Maintainer:	Sean M. McKee <mckee@misslink.net>
" Last Change:	2012 Feb 03 by Thilo Six
" Version Info: @(#)tsalt.vim	1.5	97/12/16 08:11:15

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" turn case matching off
syn case ignore

"FUNCTIONS
" Character Handling Functions
syn keyword tsaltFunction	IsAscii IsAlNum IsAlpha IsCntrl IsDigit
syn keyword tsaltFunction	IsLower IsUpper ToLower ToUpper

" Connect Device Operations
syn keyword tsaltFunction	Carrier cInp_Cnt cGetC cGetCT cPutC cPutN
syn keyword tsaltFunction	cPutS cPutS_TR FlushBuf Get_Baud
syn keyword tsaltFunction	Get_DataB Get_Port Get_StopB Hangup
syn keyword tsaltFunction	KillConnectDevice MakeConnectDevice
syn keyword tsaltFunction	Send_Brk Set_ConnectDevice Set_Port

" File Input/Output Operations
syn keyword tsaltFunction	fClearErr fClose fDelete fError fEOF fFlush
syn keyword tsaltFunction	fGetC fGetS FileAttr FileFind FileSize
syn keyword tsaltFunction	FileTime fnStrip fOpen fPutC fPutS fRead
syn keyword tsaltFunction	fRename fSeek fTell fWrite

" File Transfers and Logs
syn keyword tsaltFunction	Capture Capture_Stat Printer Receive Send
syn keyword tsaltFunction	Set_DefProt UsageLog Usage_Stat UStamp

" Input String Matching
syn keyword tsaltFunction	Track Track_AddChr Track_Free Track_Hit
syn keyword tsaltFunction	WaitFor

" Keyboard Operations
syn keyword tsaltFunction	InKey InKeyW KeyGet KeyLoad KeySave KeySet

" Miscellaneous Functions
syn keyword tsaltFunction	ChatMode Dos Dial DosFunction ExitTelix
syn keyword tsaltFunction	GetEnv GetFon HelpScreen LoadFon NewDir
syn keyword tsaltFunction	Randon Redial RedirectDOS Run
syn keyword tsaltFunction	Set_Terminal Show_Directory TelixVersion
syn keyword tsaltFunction	Terminal TransTab Update_Term

" Script Management
syn keyword tsaltFunction	ArgCount Call CallD CompileScript GetRunPath
syn keyword tsaltFunction	Is_Loaded Load_Scr ScriptVersion
syn keyword tsaltFunction	TelixForWindows Unload_Scr

" Sound Functions
syn keyword tsaltFunction	Alarm PlayWave Tone

" String Handling
syn keyword tsaltFunction	CopyChrs CopyStr DelChrs GetS GetSXY
syn keyword tsaltFunction	InputBox InsChrs ItoS SetChr StoI StrCat
syn keyword tsaltFunction	StrChr StrCompI StrLen StrLower StrMaxLen
syn keyword tsaltFunction	StrPos StrPosI StrUpper SubChr SubChrs
syn keyword tsaltFunction	SubStr

" Time, Date, and Timer Operations
syn keyword tsaltFunction	CurTime Date Delay Delay_Scr Get_OnlineTime
syn keyword tsaltFunction	tDay tHour tMin tMonth tSec tYear Time
syn keyword tsaltFunction	Time_Up Timer_Free Time_Restart
syn keyword tsaltFunction	Time_Start Time_Total

" Video Operations
syn keyword tsaltFunction	Box CNewLine Cursor_OnOff Clear_Scr
syn keyword tsaltFunction	GetTermHeight GetTermWidth GetX GetY
syn keyword tsaltFunction	GotoXY MsgBox NewLine PrintC PrintC_Trm
syn keyword tsaltFunction	PrintN PrintN_Trm PrintS PrintS_Trm
syn keyword tsaltFunction	PrintSC PRintSC_Trm
syn keyword tsaltFunction	PStrA PStrAXY Scroll Status_Wind vGetChr
syn keyword tsaltFunction	vGetChrs vGetChrsA  vPutChr vPutChrs
syn keyword tsaltFunction	vPutChrsA vRstrArea vSaveArea

" Dynamic Data Exchange (DDE) Operations
syn keyword tsaltFunction	DDEExecute DDEInitate DDEPoke DDERequest
syn keyword tsaltFunction	DDETerminate DDETerminateAll
"END FUNCTIONS

"PREDEFINED VARAIABLES
syn keyword tsaltSysVar	_add_lf _alarm_on _answerback_str _asc_rcrtrans
syn keyword tsaltSysVar	_asc_remabort _asc_rlftrans _asc_scpacing
syn keyword tsaltSysVar	_asc_scrtrans _asc_secho _asc_slpacing
syn keyword tsaltSysVar	_asc_spacechr _asc_striph _back_color
syn keyword tsaltSysVar	_capture_fname _connect_str _dest_bs
syn keyword tsaltSysVar	_dial_pause _dial_time _dial_post
syn keyword tsaltSysVar	_dial_pref1 _dial_pref2 _dial_pref3
syn keyword tsaltSysVar	_dial_pref4 _dir_prog _down_dir
syn keyword tsaltSysVar	_entry_bbstype _entry_comment _entry_enum
syn keyword tsaltSysVar	_entry_name _entry_num _entry_logonname
syn keyword tsaltSysVar	_entry_pass _fore_color _image_file
syn keyword tsaltSysVar	_local_echo _mdm_hang_str _mdm_init_str
syn keyword tsaltSysVar	_no_connect1 _no_connect2 _no_connect3
syn keyword tsaltSysVar	_no_connect4 _no_connect5 _redial_stop
syn keyword tsaltSysVar	_scr_chk_key _script_dir _sound_on
syn keyword tsaltSysVar	_strip_high _swap_bs _telix_dir _up_dir
syn keyword tsaltSysVar	_usage_fname _zmodauto _zmod_rcrash
syn keyword tsaltSysVar	_zmod_scrash
"END PREDEFINED VARAIABLES

"TYPE
syn keyword tsaltType	str int
"END TYPE

"KEYWORDS
syn keyword tsaltStatement	goto break return continue
syn keyword tsaltConditional	if then else
syn keyword tsaltRepeat		while for do
"END KEYWORDS

syn keyword tsaltTodo contained	TODO

" the rest is pretty close to C -----------------------------------------

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match tsaltSpecial		contained "\^\d\d\d\|\^."
syn region tsaltString		start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=tsaltSpecial
syn match tsaltCharacter	"'[^\\]'"
syn match tsaltSpecialCharacter	"'\\.'"

"catch errors caused by wrong parenthesis
syn region tsaltParen		transparent start='(' end=')' contains=ALLBUT,tsaltParenError,tsaltIncluded,tsaltSpecial,tsaltTodo
syn match tsaltParenError		")"
syn match tsaltInParen		contained "[{}]"

hi link tsaltParenError		tsaltError
hi link tsaltInParen		tsaltError

"integer number, or floating point number without a dot and with "f".
syn match  tsaltNumber		"\<\d\+\(u\=l\=\|lu\|f\)\>"
"floating point number, with dot, optional exponent
syn match  tsaltFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, starting with a dot, optional exponent
syn match  tsaltFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match  tsaltFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
"hex number
syn match  tsaltNumber		"0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
"syn match  cIdentifier	"\<[a-z_][a-z0-9_]*\>"

syn region tsaltComment		start="/\*"  end="\*/" contains=cTodo
syn match  tsaltComment		"//.*" contains=cTodo
syn match  tsaltCommentError	"\*/"

syn region tsaltPreCondit	start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"  end="$" contains=tsaltComment,tsaltString,tsaltCharacter,tsaltNumber,tsaltCommentError
syn region tsaltIncluded	contained start=+"+  skip=+\\\\\|\\"+  end=+"+
syn match  tsaltIncluded	contained "<[^>]*>"
syn match  tsaltInclude		"^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=tsaltIncluded
"syn match  TelixSalyLineSkip	"\\$"
syn region tsaltDefine		start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen
syn region tsaltPreProc		start="^[ \t]*#[ \t]*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen

" Highlight User Labels
syn region tsaltMulti	transparent start='?' end=':' contains=ALLBUT,tsaltIncluded,tsaltSpecial,tsaltTodo

syn sync ccomment tsaltComment


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link tsaltFunction		Statement
hi def link tsaltSysVar		Type
"hi def link tsaltLibFunc		UserDefFunc
"hi def link tsaltConstants		Type
"hi def link tsaltFuncArg		Type
"hi def link tsaltOperator		Operator
"hi def link tsaltLabel		Label
"hi def link tsaltUserLabel		Label
hi def link tsaltConditional		Conditional
hi def link tsaltRepeat		Repeat
hi def link tsaltCharacter		SpecialChar
hi def link tsaltSpecialCharacter	SpecialChar
hi def link tsaltNumber		Number
hi def link tsaltFloat		Float
hi def link tsaltCommentError	tsaltError
hi def link tsaltInclude		Include
hi def link tsaltPreProc		PreProc
hi def link tsaltDefine		Macro
hi def link tsaltIncluded		tsaltString
hi def link tsaltError		Error
hi def link tsaltStatement		Statement
hi def link tsaltPreCondit		PreCondit
hi def link tsaltType		Type
hi def link tsaltString		String
hi def link tsaltComment		Comment
hi def link tsaltSpecial		Special
hi def link tsaltTodo		Todo


let b:current_syntax = "tsalt"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z0�nGSSvim80/syntax/lhaskell.vimnu�[���" Vim syntax file
" Language:		Haskell with literate comments, Bird style,
"			TeX style and plain text surrounding
"			\begin{code} \end{code} blocks
" Maintainer:		Haskell Cafe mailinglist <haskell-cafe@haskell.org>
" Original Author:	Arthur van Leeuwen <arthurvl@cs.uu.nl>
" Last Change:		2010 Apr 11
" Version:		1.04
"
" Thanks to Ian Lynagh for thoughtful comments on initial versions and
" for the inspiration for writing this in the first place.
"
" This style guesses as to the type of markup used in a literate haskell
" file and will highlight (La)TeX markup if it finds any
" This behaviour can be overridden, both glabally and locally using
" the lhs_markup variable or b:lhs_markup variable respectively.
"
" lhs_markup	    must be set to either  tex	or  none  to indicate that
"		    you always want (La)TeX highlighting or no highlighting
"		    must not be set to let the highlighting be guessed
" b:lhs_markup	    must be set to eiterh  tex	or  none  to indicate that
"		    you want (La)TeX highlighting or no highlighting for
"		    this particular buffer
"		    must not be set to let the highlighting be guessed
"
"
" 2004 February 18: New version, based on Ian Lynagh's TeX guessing
"		    lhaskell.vim, cweb.vim, tex.vim, sh.vim and fortran.vim
" 2004 February 20: Cleaned up the guessing and overriding a bit
" 2004 February 23: Cleaned up syntax highlighting for \begin{code} and
"		    \end{code}, added some clarification to the attributions
" 2008 July 1:      Removed % from guess list, as it totally breaks plain
"                   text markup guessing
" 2009 April 29:    Fixed highlighting breakage in TeX mode, 
"                   thanks to Kalman Noel
"


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" First off, see if we can inherit a user preference for lhs_markup
if !exists("b:lhs_markup")
    if exists("lhs_markup")
	if lhs_markup =~ '\<\%(tex\|none\)\>'
	    let b:lhs_markup = matchstr(lhs_markup,'\<\%(tex\|none\)\>')
	else
	    echohl WarningMsg | echo "Unknown value of lhs_markup" | echohl None
	    let b:lhs_markup = "unknown"
	endif
    else
	let b:lhs_markup = "unknown"
    endif
else
    if b:lhs_markup !~ '\<\%(tex\|none\)\>'
	let b:lhs_markup = "unknown"
    endif
endif

" Remember where the cursor is, and go to upperleft
let s:oldline=line(".")
let s:oldcolumn=col(".")
call cursor(1,1)

" If no user preference, scan buffer for our guess of the markup to
" highlight. We only differentiate between TeX and plain markup, where
" plain is not highlighted. The heuristic for finding TeX markup is if
" one of the following occurs anywhere in the file:
"   - \documentclass
"   - \begin{env}       (for env != code)
"   - \part, \chapter, \section, \subsection, \subsubsection, etc
if b:lhs_markup == "unknown"
    if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub\)*section\|\\chapter|\\part','W') != 0
	let b:lhs_markup = "tex"
    else
	let b:lhs_markup = "plain"
    endif
endif

" If user wants us to highlight TeX syntax or guess thinks it's TeX, read it.
if b:lhs_markup == "tex"
    runtime! syntax/tex.vim
    unlet b:current_syntax
    " Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
    setlocal isk+=_
    syntax cluster lhsTeXContainer contains=tex.*Zone,texAbstract
else
    syntax cluster lhsTeXContainer contains=.*
endif

" Literate Haskell is Haskell in between text, so at least read Haskell
" highlighting
syntax include @haskellTop syntax/haskell.vim

syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack containedin=@lhsTeXContainer
syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,beginCodeBegin containedin=@lhsTeXContainer

syntax match lhsBirdTrack "^>" contained

syntax match beginCodeBegin "^\\begin" nextgroup=beginCodeCode contained
syntax region beginCodeCode  matchgroup=texDelimiter start="{" end="}"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link lhsBirdTrack Comment

hi def link beginCodeBegin	      texCmdName
hi def link beginCodeCode	      texSection


" Restore cursor to original position, as it may have been disturbed
" by the searches in our guessing code
call cursor (s:oldline, s:oldcolumn)

unlet s:oldline
unlet s:oldcolumn

let b:current_syntax = "lhaskell"

" vim: ts=8
PK�j�ZE��N
N
vim80/syntax/mel.vimnu�[���" Vim syntax file
" Language:	MEL (Maya Extension Language)
" Maintainer:	Robert Minsk <egbert@centropolisfx.com>
" Last Change:	May 27 1999
" Based on:	Bram Moolenaar <Bram@vim.org> C syntax file

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" when wanted, highlight trailing white space and spaces before tabs
if exists("mel_space_errors")
  sy match	melSpaceError	"\s\+$"
  sy match	melSpaceError	" \+\t"me=e-1
endif

" A bunch of usefull MEL keyworks
sy keyword	melBoolean	true false yes no on off

sy keyword	melFunction	proc
sy match	melIdentifier	"\$\(\a\|_\)\w*"

sy keyword	melStatement	break continue return
sy keyword	melConditional	if else switch
sy keyword	melRepeat	while for do in
sy keyword	melLabel	case default
sy keyword	melOperator	size eval env exists whatIs
sy keyword	melKeyword	alias
sy keyword	melException	catch error warning

sy keyword	melInclude	source

sy keyword	melType		int float string vector matrix
sy keyword	melStorageClass	global

sy keyword	melDebug	trace

sy keyword	melTodo		contained TODO FIXME XXX

" MEL data types
sy match	melCharSpecial	contained "\\[ntr\\"]"
sy match	melCharError	contained "\\[^ntr\\"]"

sy region	melString	start=+"+ skip=+\\"+ end=+"+ contains=melCharSpecial,melCharError

sy case ignore
sy match	melInteger	"\<\d\+\(e[-+]\=\d\+\)\=\>"
sy match	melFloat	"\<\d\+\(e[-+]\=\d\+\)\=f\>"
sy match	melFloat	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=f\=\>"
sy match	melFloat	"\.\d\+\(e[-+]\=\d\+\)\=f\=\>"
sy case match

sy match	melCommaSemi	contained "[,;]"
sy region	melMatrixVector	start=/<</ end=/>>/ contains=melInteger,melFloat,melIdentifier,melCommaSemi

sy cluster	melGroup	contains=melFunction,melStatement,melConditional,melLabel,melKeyword,melStorageClass,melTODO,melCharSpecial,melCharError,melCommaSemi

" catch errors caused by wrong parenthesis
sy region	melParen	transparent start='(' end=')' contains=ALLBUT,@melGroup,melParenError,melInParen
sy match	melParenError	")"
sy match	melInParen	contained "[{}]"

" comments
sy region	melComment	start="/\*" end="\*/" contains=melTodo,melSpaceError
sy match	melComment	"//.*" contains=melTodo,melSpaceError
sy match	melCommentError "\*/"

sy region	melQuestionColon matchgroup=melConditional transparent start='?' end=':' contains=ALLBUT,@melGroup

if !exists("mel_minlines")
  let mel_minlines=15
endif
exec "sy sync ccomment melComment minlines=" . mel_minlines

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link melBoolean	Boolean
hi def link melFunction	Function
hi def link melIdentifier	Identifier
hi def link melStatement	Statement
hi def link melConditional Conditional
hi def link melRepeat	Repeat
hi def link melLabel	Label
hi def link melOperator	Operator
hi def link melKeyword	Keyword
hi def link melException	Exception
hi def link melInclude	Include
hi def link melType	Type
hi def link melStorageClass StorageClass
hi def link melDebug	Debug
hi def link melTodo	Todo
hi def link melCharSpecial SpecialChar
hi def link melString	String
hi def link melInteger	Number
hi def link melFloat	Float
hi def link melMatrixVector Float
hi def link melComment	Comment
hi def link melError	Error
hi def link melSpaceError	melError
hi def link melCharError	melError
hi def link melParenError	melError
hi def link melInParen	melError
hi def link melCommentError melError


let b:current_syntax = "mel"
PK�j�Z�Fr##vim80/syntax/jal.vimnu�[���" Vim syntax file
" Language:	JAL
" Version: 0.1
" Last Change:	2003 May 11
" Maintainer:  Mark Gross <mark@thegnar.org>
" This is a syntax definition for the JAL language.
" It is based on the Source Forge compiler source code.
" https://sourceforge.net/projects/jal/
"
" TODO test.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore
syn sync lines=250

syn keyword picTodo NOTE TODO XXX contained

syn match picIdentifier "[a-z_$][a-z0-9_$]*"
syn match picLabel      "^[A-Z_$][A-Z0-9_$]*"
syn match picLabel      "^[A-Z_$][A-Z0-9_$]*:"me=e-1

syn match picASCII      "A\='.'"
syn match picBinary     "B'[0-1]\+'"
syn match picDecimal    "D'\d\+'"
syn match picDecimal    "\d\+"
syn match picHexadecimal "0x\x\+"
syn match picHexadecimal "H'\x\+'"
syn match picHexadecimal "[0-9]\x*h"
syn match picOctal      "O'[0-7]\o*'"

syn match picComment    ";.*" contains=picTodo

syn region picString    start=+"+ end=+"+

syn keyword picRegister indf tmr0 pcl status fsr port_a port_b port_c port_d port_e x84_eedata x84_eeadr pclath intcon
syn keyword picRegister f877_tmr1l   f877_tmr1h   f877_t1con   f877_t2con   f877_ccpr1l  f877_ccpr1h  f877_ccp1con
syn keyword picRegister f877_pir1    f877_pir2    f877_pie1    f877_adcon1  f877_adcon0  f877_pr2     f877_adresl  f877_adresh
syn keyword picRegister f877_eeadr   f877_eedath  f877_eeadrh  f877_eedata  f877_eecon1  f877_eecon2  f628_EECON2
syn keyword picRegister f877_rcsta   f877_txsta   f877_spbrg   f877_txreg   f877_rcreg   f628_EEDATA  f628_EEADR   f628_EECON1

" Register --- bits
" STATUS
syn keyword picRegisterPart status_c status_dc status_z status_pd
syn keyword picRegisterPart status_to status_rp0 status_rp1 status_irp

" pins
syn keyword picRegisterPart pin_a0 pin_a1 pin_a2 pin_a3 pin_a4 pin_a5
syn keyword picRegisterPart pin_b0 pin_b1 pin_b2 pin_b3 pin_b4 pin_b5 pin_b6 pin_b7
syn keyword picRegisterPart pin_c0 pin_c1 pin_c2 pin_c3 pin_c4 pin_c5 pin_c6 pin_c7
syn keyword picRegisterPart pin_d0 pin_d1 pin_d2 pin_d3 pin_d4 pin_d5 pin_d6 pin_d7
syn keyword picRegisterPart pin_e0 pin_e1 pin_e2

syn keyword picPortDir port_a_direction  port_b_direction  port_c_direction  port_d_direction  port_e_direction

syn match picPinDir "pin_a[012345]_direction"
syn match picPinDir "pin_b[01234567]_direction"
syn match picPinDir "pin_c[01234567]_direction"
syn match picPinDir "pin_d[01234567]_direction"
syn match picPinDir "pin_e[012]_direction"


" INTCON
syn keyword picRegisterPart intcon_gie intcon_eeie intcon_peie intcon_t0ie intcon_inte
syn keyword picRegisterPart intcon_rbie intcon_t0if intcon_intf intcon_rbif

" TIMER
syn keyword picRegisterPart t1ckps1 t1ckps0 t1oscen t1sync tmr1cs tmr1on tmr1ie tmr1if

"cpp bits
syn keyword picRegisterPart ccp1x ccp1y

" adcon bits
syn keyword picRegisterPart adcon0_go adcon0_ch0 adcon0_ch1 adcon0_ch2

" EECON
syn keyword picRegisterPart  eecon1_rd eecon1_wr eecon1_wren eecon1_wrerr eecon1_eepgd
syn keyword picRegisterPart f628_eecon1_rd f628_eecon1_wr f628_eecon1_wren f628_eecon1_wrerr

" usart
syn keyword picRegisterPart tx9 txen sync brgh tx9d
syn keyword picRegisterPart spen rx9 cren ferr oerr rx9d
syn keyword picRegisterPart TXIF RCIF

" OpCodes...
syn keyword picOpcode addlw andlw call clrwdt goto iorlw movlw option retfie retlw return sleep sublw tris
syn keyword picOpcode xorlw addwf andwf clrf clrw comf decf decfsz incf incfsz retiw iorwf movf movwf nop
syn keyword picOpcode rlf rrf subwf swapf xorwf bcf bsf btfsc btfss skpz skpnz setz clrz skpc skpnc setc clrc
syn keyword picOpcode skpdc skpndc setdc clrdc movfw tstf bank page HPAGE mullw mulwf cpfseq cpfsgt cpfslt banka bankb


syn keyword jalBoolean		true false
syn keyword jalBoolean		off on
syn keyword jalBit		high low
syn keyword jalConstant		Input Output all_input all_output
syn keyword jalConditional	if else then elsif end if
syn keyword jalLabel		goto
syn keyword jalRepeat		for while forever loop
syn keyword jalStatement	procedure function
syn keyword jalStatement	return end volatile const var
syn keyword jalType		bit byte

syn keyword jalModifier		interrupt assembler asm put get
syn keyword jalStatement	out in is begin at
syn keyword jalDirective	pragma jump_table target target_clock target_chip name error test assert
syn keyword jalPredefined       hs xt rc lp internal 16c84 16f84 16f877 sx18 sx28 12c509a 12c508
syn keyword jalPredefined       12ce674 16f628 18f252 18f242 18f442 18f452 12f629 12f675 16f88
syn keyword jalPredefined	16f876 16f873 sx_12 sx18 sx28 pic_12 pic_14 pic_16

syn keyword jalDirective chip osc clock  fuses  cpu watchdog powerup protection

syn keyword jalFunction		bank_0 bank_1 bank_2 bank_3 bank_4 bank_5 bank_6 bank_7 trisa trisb trisc trisd trise
syn keyword jalFunction		_trisa_flush _trisb_flush _trisc_flush _trisd_flush _trise_flush

syn keyword jalPIC		local idle_loop

syn region  jalAsm		matchgroup=jalAsmKey start="\<assembler\>" end="\<end assembler\>" contains=jalComment,jalPreProc,jalLabel,picIdentifier, picLabel,picASCII,picDecimal,picHexadecimal,picOctal,picComment,picString,picRegister,picRigisterPart,picOpcode,picDirective,jalPIC
syn region  jalAsm		matchgroup=jalAsmKey start="\<asm\>" end=/$/ contains=jalComment,jalPreProc,jalLabel,picIdentifier, picLabel,picASCII,picDecimal,picHexadecimal,picOctal,picComment,picString,picRegister,picRigisterPart,picOpcode,picDirective,jalPIC

syn region  jalPsudoVars matchgroup=jalPsudoVarsKey start="\<'put\>" end="/<is/>"  contains=jalComment

syn match  jalStringEscape	contained "#[12][0-9]\=[0-9]\="
syn match   jalIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
syn match   jalSymbolOperator		"[+\-/*=]"
syn match   jalSymbolOperator		"!"
syn match   jalSymbolOperator		"<"
syn match   jalSymbolOperator		">"
syn match   jalSymbolOperator		"<="
syn match   jalSymbolOperator		">="
syn match   jalSymbolOperator		"!="
syn match   jalSymbolOperator		"=="
syn match   jalSymbolOperator		"<<"
syn match   jalSymbolOperator		">>"
syn match   jalSymbolOperator		"|"
syn match   jalSymbolOperator		"&"
syn match   jalSymbolOperator		"%"
syn match   jalSymbolOperator		"?"
syn match   jalSymbolOperator		"[()]"
syn match   jalSymbolOperator		"[\^.]"
syn match   jalLabel			"[\^]*:"

syn match  jalNumber		"-\=\<\d[0-9_]\+\>"
syn match  jalHexNumber		"0x[0-9A-Fa-f_]\+\>"
syn match  jalBinNumber		"0b[01_]\+\>"

" String
"wrong strings
syn region  jalStringError matchgroup=jalStringError start=+"+ end=+"+ end=+$+ contains=jalStringEscape

"right strings
syn region  jalString matchgroup=jalString start=+'+ end=+'+ oneline contains=jalStringEscape
" To see the start and end of strings:
syn region  jalString matchgroup=jalString start=+"+ end=+"+ oneline contains=jalStringEscapeGPC

syn keyword jalTodo contained	TODO
syn region jalComment		start=/-- /  end=/$/ oneline contains=jalTodo
syn region jalComment		start=/--\t/  end=/$/ oneline contains=jalTodo
syn match  jalComment		/--\_$/
syn region jalPreProc		start="include"  end=/$/ contains=JalComment,jalToDo


if exists("jal_no_tabs")
	syn match jalShowTab "\t"
endif


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link jalAcces		jalStatement
hi def link jalBoolean		Boolean
hi def link jalBit			Boolean
hi def link jalComment		Comment
hi def link jalConditional		Conditional
hi def link jalConstant		Constant
hi def link jalDelimiter		Identifier
hi def link jalDirective		PreProc
hi def link jalException		Exception
hi def link jalFloat		Float
hi def link jalFunction		Function
hi def link jalPsudoVarsKey	Function
hi def link jalLabel		Label
hi def link jalMatrixDelimiter	Identifier
hi def link jalModifier		Type
hi def link jalNumber		Number
hi def link jalBinNumber		Number
hi def link jalHexNumber		Number
hi def link jalOperator		Operator
hi def link jalPredefined		Constant
hi def link jalPreProc		PreProc
hi def link jalRepeat		Repeat
hi def link jalStatement		Statement
hi def link jalString		String
hi def link jalStringEscape	Special
hi def link jalStringEscapeGPC	Special
hi def link jalStringError		Error
hi def link jalStruct		jalStatement
hi def link jalSymbolOperator	jalOperator
hi def link jalTodo		Todo
hi def link jalType		Type
hi def link jalUnclassified	Statement
hi def link jalAsm			Assembler
hi def link jalError		Error
hi def link jalAsmKey		Statement
hi def link jalPIC			Statement

hi def link jalShowTab		Error

hi def link picTodo		Todo
hi def link picComment		Comment
hi def link picDirective		Statement
hi def link picLabel		Label
hi def link picString		String

hi def link picOpcode		Keyword
hi def link picRegister		Structure
hi def link picRegisterPart	Special
hi def link picPinDir		SPecial
hi def link picPortDir		SPecial

hi def link picASCII		String
hi def link picBinary		Number
hi def link picDecimal		Number
hi def link picHexadecimal		Number
hi def link picOctal		Number

hi def link picIdentifier		Identifier



let b:current_syntax = "jal"

" vim: ts=8 sw=2
PK�j�Z��"���vim80/syntax/a65.vimnu�[���" Vim syntax file
" Language:	xa 6502 cross assembler
" Maintainer:	Clemens Kirchgatterer <clemens@1541.org>
" Last Change:	2016 Aug 31

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Opcodes
syn match a65Opcode	"\<PHP\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<PLA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<PLX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<PLY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<SEC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<CLD\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<SED\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<CLI\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BVC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BVS\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BCS\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BCC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<DEY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<DEC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<CMP\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<CPX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BIT\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<ROL\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<ROR\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<ASL\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<TXA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<TYA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<TSX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<TXS\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<LDA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<LDX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<LDY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<STA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<PLP\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BRK\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<RTI\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<NOP\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<SEI\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<CLV\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<PHA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<PHX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BRA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<JMP\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<JSR\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<RTS\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<CPY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BNE\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BEQ\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BMI\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<LSR\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<INX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<INY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<INC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<ADC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<SBC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<AND\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<ORA\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<STX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<STY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<STZ\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<EOR\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<DEX\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BPL\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<CLC\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<PHY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<TRB\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BBR\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<BBS\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<RMB\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<SMB\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<TAY\($\|\s\)" nextgroup=a65Address
syn match a65Opcode	"\<TAX\($\|\s\)" nextgroup=a65Address

" Addresses
syn match a65Address	"\s*!\=$[0-9A-F]\{2}\($\|\s\)"
syn match a65Address	"\s*!\=$[0-9A-F]\{4}\($\|\s\)"
syn match a65Address	"\s*!\=$[0-9A-F]\{2},X\($\|\s\)"
syn match a65Address	"\s*!\=$[0-9A-F]\{4},X\($\|\s\)"
syn match a65Address	"\s*!\=$[0-9A-F]\{2},Y\($\|\s\)"
syn match a65Address	"\s*!\=$[0-9A-F]\{4},Y\($\|\s\)"
syn match a65Address	"\s*($[0-9A-F]\{2})\($\|\s\)"
syn match a65Address	"\s*($[0-9A-F]\{4})\($\|\s\)"
syn match a65Address	"\s*($[0-9A-F]\{2},X)\($\|\s\)"
syn match a65Address	"\s*($[0-9A-F]\{2}),Y\($\|\s\)"

" Numbers
syn match a65Number	"#\=[0-9]*\>"
syn match a65Number	"#\=$[0-9A-F]*\>"
syn match a65Number	"#\=&[0-7]*\>"
syn match a65Number	"#\=%[01]*\>"

syn case match

" Types
syn match a65Type	"\(^\|\s\)\.byt\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.word\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.asc\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.dsb\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.fopt\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.text\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.data\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.bss\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.zero\($\|\s\)"
syn match a65Type	"\(^\|\s\)\.align\($\|\s\)"

" Blocks
syn match a65Section	"\(^\|\s\)\.(\($\|\s\)"
syn match a65Section	"\(^\|\s\)\.)\($\|\s\)"

" Strings
syn match a65String	"\".*\""

" Programm Counter
syn region a65PC	start="\*=" end="\>" keepend

" HI/LO Byte
syn region a65HiLo	start="#[<>]" end="$\|\s" contains=a65Comment keepend

" Comments
syn keyword a65Todo	TODO XXX FIXME BUG contained
syn match   a65Comment	";.*"hs=s+1 contains=a65Todo
syn region  a65Comment	start="/\*" end="\*/" contains=a65Todo,a65Comment

" Preprocessor
syn region a65PreProc	start="^#" end="$" contains=a65Comment,a65Continue
syn match  a65End			excludenl /end$/ contained
syn match  a65Continue	"\\$" contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link a65Section	Special
hi def link a65Address	Special
hi def link a65Comment	Comment
hi def link a65PreProc	PreProc
hi def link a65Number	Number
hi def link a65String	String
hi def link a65Type	Statement
hi def link a65Opcode	Type
hi def link a65PC		Error
hi def link a65Todo	Todo
hi def link a65HiLo	Number


let b:current_syntax = "a65"
PK�j�Z�)2��vim80/syntax/phtml.vimnu�[���" Vim syntax file
" PHTML used to be the filetype for PHP 2.0.  Now everything is PHP.

if !exists("b:current_syntax")
  runtime! syntax/php.vim
endif
PK�j�Zĸ֕]-]-vim80/syntax/virata.vimnu�[���" Vim syntax file
" Language:	Virata AConfig Configuration Script
" Maintainer:	Manuel M.H. Stol	<mmh.stol@gmx.net>
" Last Change:	2003 May 11
" Vim URL:	http://www.vim.org/lang.html
" Virata URL:	http://www.globespanvirata.com/


" Virata AConfig Configuration Script syntax
"  Can be detected by: 1) Extension .hw, .sw, .pkg and .module
"		       2) The file name pattern "mk.*\.cfg"
"		       3) The string "Virata" in the first 5 lines


" Setup Syntax:
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
"  Virata syntax is case insensitive (mostly)
syn case ignore



" Comments:
" Virata comments start with %, but % is not a keyword character
syn region  virataComment	start="^%" start="\s%"lc=1 keepend end="$" contains=@virataGrpInComments
syn region  virataSpclComment	start="^%%" start="\s%%"lc=1 keepend end="$" contains=@virataGrpInComments
syn keyword virataInCommentTodo	contained TODO FIXME XXX[XXXXX] REVIEW TBD
syn cluster virataGrpInComments	contains=virataInCommentTodo
syn cluster virataGrpComments	contains=@virataGrpInComments,virataComment,virataSpclComment


" Constants:
syn match   virataStringError	+["]+
syn region  virataString	start=+"+ skip=+\(\\\\\|\\"\)+ end=+"+ oneline contains=virataSpclCharError,virataSpclChar,@virataGrpDefSubsts
syn match   virataCharacter	+'[^']\{-}'+ contains=virataSpclCharError,virataSpclChar
syn match   virataSpclChar	contained +\\\(x\x\+\|\o\{1,3}\|['\"?\\abefnrtv]\)+
syn match   virataNumberError	"\<\d\{-1,}\I\{-1,}\>"
syn match   virataNumberError	"\<0x\x*\X\x*\>"
syn match   virataNumberError	"\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>"
syn match   virataDecNumber	"\<\d\+U\=L\=\>"
syn match   virataHexNumber	"\<0x\x\+U\=L\=\>"
syn match   virataSizeNumber	"\<\d\+[BKM]\>"he=e-1
syn match   virataSizeNumber	"\<\d\+[KM]B\>"he=e-2
syn cluster virataGrpNumbers	contains=virataNumberError,virataDecNumber,virataHexNumber,virataSizeNumber
syn cluster virataGrpConstants	contains=@virataGrpNumbers,virataStringError,virataString,virataCharacter,virataSpclChar


" Identifiers:
syn match   virataIdentError	contained "\<\D\S*\>"
syn match   virataIdentifier	contained "\<\I\i\{-}\(\-\i\{-1,}\)*\>" contains=@virataGrpDefSubsts
syn match   virataFileIdent	contained "\F\f*" contains=@virataGrpDefSubsts
syn cluster virataGrpIdents	contains=virataIdentifier,virataIdentError
syn cluster virataGrpFileIdents	contains=virataFileIdent,virataIdentError


" Statements:
syn match   virataStatement	"^\s*Config\(\(/Kernel\)\=\.\(hs\=\|s\)\)\=\>"
syn match   virataStatement	"^\s*Config\s\+\I\i\{-}\(\-\i\{-1,}\)*\.\(hs\=\|s\)\>"
syn match   virataStatement	"^\s*Make\.\I\i\{-}\(\-\i\{-1}\)*\>" skipwhite nextgroup=@virataGrpIdents
syn match   virataStatement	"^\s*Make\.c\(at\)\=++\s"me=e-1 skipwhite nextgroup=@virataGrpIdents
syn match   virataStatement	"^\s*\(Architecture\|GetEnv\|Reserved\|\(Un\)\=Define\|Version\)\>" skipwhite nextgroup=@virataGrpIdents
syn match   virataStatement	"^\s*\(Hardware\|ModuleSource\|\(Release\)\=Path\|Software\)\>" skipwhite nextgroup=@virataGrpFileIdents
syn match   virataStatement	"^\s*\(DefaultPri\|Hydrogen\)\>" skipwhite nextgroup=virataDecNumber,virataNumberError
syn match   virataStatement	"^\s*\(NoInit\|PCI\|SysLink\)\>"
syn match   virataStatement	"^\s*Allow\s\+\(ModuleConfig\)\>"
syn match   virataStatement	"^\s*NoWarn\s\+\(Export\|Parse\=able\|Relative]\)\>"
syn match   virataStatement	"^\s*Debug\s\+O\(ff\|n\)\>"

" Import (Package <exec>|Module <name> from <dir>)
syn region  virataImportDef	transparent matchgroup=virataStatement start="^\s*Import\>" keepend end="$" contains=virataInImport,virataModuleDef,virataNumberError,virataStringError,@virataGrpDefSubsts
syn match   virataInImport	contained "\<\(Module\|Package\|from\)\>" skipwhite nextgroup=@virataGrpFileIdents
" Export (Header <header file>|SLibrary <obj file>)
syn region  virataExportDef	transparent matchgroup=virataStatement start="^\s*Export\>" keepend end="$" contains=virataInExport,virataNumberError,virataStringError,@virataGrpDefSubsts
syn match   virataInExport	contained "\<\(Header\|[SU]Library\)\>" skipwhite nextgroup=@virataGrpFileIdents
" Process <name> is <dir/exec>
syn region  virataProcessDef	transparent matchgroup=virataStatement start="^\s*Process\>" keepend end="$" contains=virataInProcess,virataInExec,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
syn match   virataInProcess	contained "\<is\>"
" Instance <name> of <module>
syn region  virataInstanceDef	transparent matchgroup=virataStatement start="^\s*Instance\>" keepend end="$" contains=virataInInstance,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
syn match   virataInInstance	contained "\<of\>"
" Module <name> from <dir>
syn region  virataModuleDef	transparent matchgroup=virataStatement start="^\s*\(Package\|Module\)\>" keepend end="$" contains=virataInModule,virataNumberError,virataStringError,@virataGrpDefSubsts
syn match   virataInModule	contained "^\s*Package\>"hs=e-7 skipwhite nextgroup=@virataGrpIdents
syn match   virataInModule	contained "^\s*Module\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents
syn match   virataInModule	contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents
" Colour <name> from <dir>
syn region  virataColourDef	transparent matchgroup=virataStatement start="^\s*Colour\>" keepend end="$" contains=virataInColour,virataNumberError,virataStringError,@virataGrpDefSubsts
syn match   virataInColour	contained "^\s*Colour\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents
syn match   virataInColour	contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents
" Link {<link cmds>}
" Object {Executable [<ExecOptions>]}
syn match   virataStatement	"^\s*\(Link\|Object\)"
" Executable <name> [<ExecOptions>]
syn region  virataExecDef	transparent matchgroup=virataStatement start="^\s*Executable\>" keepend end="$" contains=virataInExec,virataNumberError,virataStringError
syn match   virataInExec	contained "^\s*Executable\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
syn match   virataInExec	contained "\<\(epilogue\|pro\(logue\|cess\)\|qhandler\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
syn match   virataInExec	contained "\<\(priority\|stack\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpNumbers
" Message <name> {<msg format>}
" MessageId <number>
syn match   virataStatement	"^\s*Message\(Id\)\=\>" skipwhite nextgroup=@virataGrpNumbers
" MakeRule <make suffix=file> {<make cmds>}
syn region  virataMakeDef	transparent matchgroup=virataStatement start="^\s*MakeRule\>" keepend end="$" contains=virataInMake,@virataGrpDefSubsts
syn case match
syn match   virataInMake	contained "\<N\>"
syn case ignore
" (Append|Edit|Copy)Rule <make suffix=file> <subst cmd>
syn match   virataStatement	"^\s*\(Append\|Copy\|Edit\)Rule\>"
" AlterRules in <file> <subst cmd>
syn region  virataAlterDef	transparent matchgroup=virataStatement start="^\s*AlterRules\>" keepend end="$" contains=virataInAlter,@virataGrpDefSubsts
syn match   virataInAlter	contained "\<in\>" skipwhite nextgroup=@virataGrpIdents
" Clustering
syn cluster virataGrpInStatmnts	contains=virataInImport,virataInExport,virataInExec,virataInProcess,virataInAlter,virataInInstance,virataInModule,virataInColour
syn cluster virataGrpStatements	contains=@virataGrpInStatmnts,virataStatement,virataImportDef,virataExportDef,virataExecDef,virataProcessDef,virataAlterDef,virataInstanceDef,virataModuleDef,virataColourDef


" MkFlash.Cfg File Statements:
syn region  virataCfgFileDef	transparent matchgroup=virataCfgStatement start="^\s*Dir\>" start="^\s*\a\{-}File\>" start="^\s*OutputFile\d\d\=\>" start="^\s*\a\w\{-}[NP]PFile\>" keepend end="$" contains=@virataGrpFileIdents
syn region  virataCfgSizeDef	transparent matchgroup=virataCfgStatement start="^\s*\a\{-}Size\>" start="^\s*ConfigInfo\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts,virataIdentError
syn region  virataCfgNumberDef	transparent matchgroup=virataCfgStatement start="^\s*FlashchipNum\(b\(er\=\)\=\)\=\>" start="^\s*Granularity\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts
syn region  virataCfgMacAddrDef	transparent matchgroup=virataCfgStatement start="^\s*MacAddress\>" keepend end="$" contains=virataNumberError,virataStringError,virataIdentError,virataInMacAddr,@virataGrpDefSubsts
syn match   virataInMacAddr	contained "\x[:]\x\{1,2}\>"lc=2
syn match   virataInMacAddr	contained "\s\x\{1,2}[:]\x"lc=1,me=e-1,he=e-2 nextgroup=virataInMacAddr
syn match   virataCfgStatement	"^\s*Target\>" skipwhite nextgroup=@virataGrpIdents
syn cluster virataGrpCfgs	contains=virataCfgStatement,virataCfgFileDef,virataCfgSizeDef,virataCfgNumberDef,virataCfgMacAddrDef,virataInMacAddr



" PreProcessor Instructions:
"  Defines
syn match   virataDefine	"^\s*\(Un\)\=Set\>" skipwhite nextgroup=@virataGrpIdents
syn match   virataInclude	"^\s*Include\>" skipwhite nextgroup=@virataGrpFileIdents
syn match   virataDefSubstError	"[^$]\$"lc=1
syn match   virataDefSubstError	"\$\(\w\|{\(.\{-}}\)\=\)"
syn case match
syn match   virataDefSubst	"\$\(\d\|[DINORS]\|{\I\i\{-}\(\-\i\{-1,}\)*}\)"
syn case ignore
"  Conditionals
syn cluster virataGrpCntnPreCon	contains=ALLBUT,@virataGrpInComments,@virataGrpFileIdents,@virataGrpInStatmnts
syn region  virataPreConDef	transparent matchgroup=virataPreCondit start="^\s*If\>" end="^\s*Endif\>" contains=@virataGrpCntnPreCon
syn match   virataPreCondit	contained "^\s*Else\(\s\+If\)\=\>"
syn region  virataPreConDef	transparent matchgroup=virataPreCondit start="^\s*ForEach\>" end="^\s*Done\>" contains=@virataGrpCntnPreCon
"  Pre-Processors
syn region  virataPreProc	start="^\s*Error\>" start="^\s*Warning\>" oneline end="$" contains=@virataGrpConstants,@virataGrpDefSubsts
syn cluster virataGrpDefSubsts	contains=virataDefSubstError,virataDefSubst
syn cluster virataGrpPreProcs	contains=@virataGrpDefSubsts,virataDefine,virataInclude,virataPreConDef,virataPreCondit,virataPreProc


" Synchronize Syntax:
syn sync clear
syn sync minlines=50		"for multiple region nesting



" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" Sub Links:
hi def link virataDefSubstError	virataPreProcError
hi def link virataDefSubst		virataPreProc
hi def link virataInAlter		virataOperator
hi def link virataInExec		virataOperator
hi def link virataInExport		virataOperator
hi def link virataInImport		virataOperator
hi def link virataInInstance	virataOperator
hi def link virataInMake		virataOperator
hi def link virataInModule		virataOperator
hi def link virataInProcess	virataOperator
hi def link virataInMacAddr	virataHexNumber

" Comment Group:
hi def link virataComment		Comment
hi def link virataSpclComment	SpecialComment
hi def link virataInCommentTodo	Todo

" Constant Group:
hi def link virataString		String
hi def link virataStringError	Error
hi def link virataCharacter	Character
hi def link virataSpclChar		Special
hi def link virataDecNumber	Number
hi def link virataHexNumber	Number
hi def link virataSizeNumber	Number
hi def link virataNumberError	Error

" Identifier Group:
hi def link virataIdentError	Error

" PreProc Group:
hi def link virataPreProc		PreProc
hi def link virataDefine		Define
hi def link virataInclude		Include
hi def link virataPreCondit	PreCondit
hi def link virataPreProcError	Error
hi def link virataPreProcWarn	Todo

" Directive Group:
hi def link virataStatement	Statement
hi def link virataCfgStatement	Statement
hi def link virataOperator		Operator
hi def link virataDirective	Keyword


let b:current_syntax = "virata"

" vim:ts=8:sw=2:noet:
PK�j�Z��m��vim80/syntax/htmldjango.vimnu�[���" Vim syntax file
" Language:	Django HTML template
" Maintainer:	Dave Hodder <dmh@dmh.org.uk>
" Last Change:	2014 Jul 13

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'html'
endif

runtime! syntax/django.vim
runtime! syntax/html.vim
unlet b:current_syntax

syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock

syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display containedin=ALLBUT,@djangoBlocks
syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display containedin=ALLBUT,@djangoBlocks
syn region djangoComment start="{%\s*comment\(\s\+.\{-}\)\?%}" end="{%\s*endcomment\s*%}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks
syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks

let b:current_syntax = "htmldjango"
PK�j�Z�.��#�#vim80/syntax/aspvbs.vimnu�[���" Vim syntax file
" Language:	Microsoft VBScript Web Content (ASP)
" Maintainer:	Devin Weaver <ktohg@tritarget.com> (non-functional)
" URL:		http://tritarget.com/pub/vim/syntax/aspvbs.vim (broken)
" Last Change:	2006 Jun 19
" 		by Dan Casey
" Version:	$Revision: 1.3 $
" Thanks to Jay-Jay <vim@jay-jay.net> for a syntax sync hack, hungarian
" notation, and extra highlighting.
" Thanks to patrick dehne <patrick@steidle.net> for the folding code.
" Thanks to Dean Hall <hall@apt7.com> for testing the use of classes in
" VBScripts which I've been too scared to do.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'aspvbs'
endif

runtime! syntax/html.vim
unlet b:current_syntax

syn cluster htmlPreProc add=AspVBScriptInsideHtmlTags


" Colored variable names, if written in hungarian notation
hi def AspVBSVariableSimple   term=standout  ctermfg=3  guifg=#99ee99
hi def AspVBSVariableComplex  term=standout  ctermfg=3  guifg=#ee9900
syn match AspVBSVariableSimple  contained "\<\(bln\|byt\|dtm\=\|dbl\|int\|str\)\u\w*"
syn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*"


" Functions and methods that are in VB but will cause errors in an ASP page
" This is helpfull if your porting VB code to ASP
" I removed (Count, Item) because these are common variable names in AspVBScript
syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo
syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke
syn keyword AspVBSError contained LinkRequest LinkSend Declare Optional Sleep
syn keyword AspVBSError contained ParamArray Static Erl TypeOf Like LSet RSet Mid StrConv
" It may seem that most of these can fit into a keyword clause but keyword takes
" priority over all so I can't get the multi-word matches
syn match AspVBSError contained "\<Def[a-zA-Z0-9_]\+\>"
syn match AspVBSError contained "^\s*Open\s\+"
syn match AspVBSError contained "Debug\.[a-zA-Z0-9_]*"
syn match AspVBSError contained "^\s*[a-zA-Z0-9_]\+:"
syn match AspVBSError contained "[a-zA-Z0-9_]\+![a-zA-Z0-9_]\+"
syn match AspVBSError contained "^\s*#.*$"
syn match AspVBSError contained "\<As\s\+[a-zA-Z0-9_]*"
syn match AspVBSError contained "\<End\>\|\<Exit\>"
syn match AspVBSError contained "\<On\s\+Error\>\|\<On\>\|\<Error\>\|\<Resume\s\+Next\>\|\<Resume\>"
syn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\)\>"
" This one I want 'cause I always seem to mis-spell it.
syn match AspVBSError contained "Respon\?ce\.\S*"
syn match AspVBSError contained "Respose\.\S*"
" When I looked up the VBScript syntax it mentioned that Property Get/Set/Let
" statements are illegal, however, I have recived reports that they do work.
" So I commented it out for now.
" syn match AspVBSError contained "\<Property\s\+\(Get\|Let\|Set\)\>"

" AspVBScript Reserved Words.
syn match AspVBSStatement contained "\<On\s\+Error\s\+\(Resume\s\+Next\|goto\s\+0\)\>\|\<Next\>"
syn match AspVBSStatement contained "\<End\s\+\(If\|For\|Select\|Class\|Function\|Sub\|With\|Property\)\>"
syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\)\>"
syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\|Property\)\>"
syn match AspVBSStatement contained "\<Option\s\+Explicit\>"
syn match AspVBSStatement contained "\<For\s\+Each\>\|\<For\>"
syn match AspVBSStatement contained "\<Set\>"
syn keyword AspVBSStatement contained Call Class Const Default Dim Do Loop Erase And
syn keyword AspVBSStatement contained Function If Then Else ElseIf Or
syn keyword AspVBSStatement contained Private Public Randomize ReDim
syn keyword AspVBSStatement contained Select Case Sub While With Wend Not

" AspVBScript Functions
syn keyword AspVBSFunction contained Abs Array Asc Atn CBool CByte CCur CDate CDbl
syn keyword AspVBSFunction contained Chr CInt CLng Cos CreateObject CSng CStr Date
syn keyword AspVBSFunction contained DateAdd DateDiff DatePart DateSerial DateValue
syn keyword AspVBSFunction contained Date Day Exp Filter Fix FormatCurrency
syn keyword AspVBSFunction contained FormatDateTime FormatNumber FormatPercent
syn keyword AspVBSFunction contained GetObject Hex Hour InputBox InStr InStrRev Int
syn keyword AspVBSFunction contained IsArray IsDate IsEmpty IsNull IsNumeric
syn keyword AspVBSFunction contained IsObject Join LBound LCase Left Len LoadPicture
syn keyword AspVBSFunction contained Log LTrim Mid Minute Month MonthName MsgBox Now
syn keyword AspVBSFunction contained Oct Replace RGB Right Rnd Round RTrim
syn keyword AspVBSFunction contained ScriptEngine ScriptEngineBuildVersion
syn keyword AspVBSFunction contained ScriptEngineMajorVersion
syn keyword AspVBSFunction contained ScriptEngineMinorVersion Second Sgn Sin Space
syn keyword AspVBSFunction contained Split Sqr StrComp StrReverse String Tan Time Timer
syn keyword AspVBSFunction contained TimeSerial TimeValue Trim TypeName UBound UCase
syn keyword AspVBSFunction contained VarType Weekday WeekdayName Year

" AspVBScript Methods
syn keyword AspVBSMethods contained Add AddFolders BuildPath Clear Close Copy
syn keyword AspVBSMethods contained CopyFile CopyFolder CreateFolder CreateTextFile
syn keyword AspVBSMethods contained Delete DeleteFile DeleteFolder DriveExists
syn keyword AspVBSMethods contained Exists FileExists FolderExists
syn keyword AspVBSMethods contained GetAbsolutePathName GetBaseName GetDrive
syn keyword AspVBSMethods contained GetDriveName GetExtensionName GetFile
syn keyword AspVBSMethods contained GetFileName GetFolder GetParentFolderName
syn keyword AspVBSMethods contained GetSpecialFolder GetTempName Items Keys Move
syn keyword AspVBSMethods contained MoveFile MoveFolder OpenAsTextStream
syn keyword AspVBSMethods contained OpenTextFile Raise Read ReadAll ReadLine Remove
syn keyword AspVBSMethods contained RemoveAll Skip SkipLine Write WriteBlankLines
syn keyword AspVBSMethods contained WriteLine
syn match AspVBSMethods contained "Response\.\w*"
" Colorize boolean constants:
syn keyword AspVBSMethods contained true false

" AspVBScript Number Contstants
" Integer number, or floating point number without a dot.
syn match  AspVBSNumber	contained	"\<\d\+\>"
" Floating point number, with dot
syn match  AspVBSNumber	contained	"\<\d\+\.\d*\>"
" Floating point number, starting with a dot
syn match  AspVBSNumber	contained	"\.\d\+\>"

" String and Character Contstants
" removed (skip=+\\\\\|\\"+) because VB doesn't have backslash escaping in
" strings (or does it?)
syn region  AspVBSString	contained	  start=+"+  end=+"+ keepend

" AspVBScript Comments
syn region  AspVBSComment	contained start="^REM\s\|\sREM\s" end="$" contains=AspVBSTodo keepend
syn region  AspVBSComment   contained start="^'\|\s'"   end="$" contains=AspVBSTodo keepend
" misc. Commenting Stuff
syn keyword AspVBSTodo contained	TODO FIXME

" Cosmetic syntax errors commanly found in VB but not in AspVBScript
" AspVBScript doesn't use line numbers
syn region  AspVBSError	contained start="^\d" end="\s" keepend
" AspVBScript also doesn't have type defining variables
syn match   AspVBSError  contained "[a-zA-Z0-9_][\$&!#]"ms=s+1
" Since 'a%' is a VB variable with a type and in AspVBScript you can have 'a%>'
" I have to make a special case so 'a%>' won't show as an error.
syn match   AspVBSError  contained "[a-zA-Z0-9_]%\($\|[^>]\)"ms=s+1

" Top Cluster
syn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods,AspVBSNumber,AspVBSString,AspVBSComment,AspVBSError,AspVBSVariableSimple,AspVBSVariableComplex

" Folding
syn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend
syn region AspVBSFold start="^\s*\(private\|public\)\=\(\s\+default\)\=\s\+\(sub\|function\)\s\+.*$" end="^\s*end\s\+\(function\|sub\)\>.*$" fold contained transparent keepend

" Define AspVBScript delimeters
" <%= func("string_with_%>_in_it") %> This is illegal in ASP syntax.
syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold
syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<script\s\+language="\=vbscript"\=[^>]*\s\+runatserver[^>]*>+ end=+</script>+ contains=@AspVBScriptTop


" Synchronization
" syn sync match AspVBSSyncGroup grouphere AspVBScriptInsideHtmlTags "<%"
" This is a kludge so the HTML will sync properly
syn sync match htmlHighlight grouphere htmlTag "%>"



" Define the default highlighting.
" Only when an item doesn't have highlighting yet

"hi def link AspVBScript		Special
hi def link AspVBSLineNumber	Comment
hi def link AspVBSNumber		Number
hi def link AspVBSError		Error
hi def link AspVBSStatement	Statement
hi def link AspVBSString		String
hi def link AspVBSComment		Comment
hi def link AspVBSTodo		Todo
hi def link AspVBSFunction		Identifier
hi def link AspVBSMethods		PreProc
hi def link AspVBSEvents		Special
hi def link AspVBSTypeSpecifier	Type


let b:current_syntax = "aspvbs"

if main_syntax == 'aspvbs'
  unlet main_syntax
endif

" vim: ts=8:sw=2:sts=0:noet
PK�j�Z$�he��vim80/syntax/javascript.vimnu�[���" Vim syntax file
" Language:	JavaScript
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" Updaters:	Scott Shattuck (ss) <ss@technicalpursuit.com>
" URL:		http://www.fleiner.com/vim/syntax/javascript.vim
" Changes:	(ss) added keywords, reserved words, and other identifiers
"		(ss) repaired several quoting and grouping glitches
"		(ss) fixed regex parsing issue with multiple qualifiers [gi]
"		(ss) additional factoring of keywords, globals, and members
" Last Change:	2012 Oct 05
" 		2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
" 		2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder)

" tuning parameters:
" unlet javaScript_fold

if !exists("main_syntax")
  " quit when a syntax file was already loaded
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'javascript'
elseif exists("b:current_syntax") && b:current_syntax == "javascript"
  finish
endif

let s:cpo_save = &cpo
set cpo&vim


syn keyword javaScriptCommentTodo      TODO FIXME XXX TBD contained
syn match   javaScriptLineComment      "\/\/.*" contains=@Spell,javaScriptCommentTodo
syn match   javaScriptCommentSkip      "^[ \t]*\*\($\|[ \t]\+\)"
syn region  javaScriptComment	       start="/\*"  end="\*/" contains=@Spell,javaScriptCommentTodo
syn match   javaScriptSpecial	       "\\\d\d\d\|\\."
syn region  javaScriptStringD	       start=+"+  skip=+\\\\\|\\"+  end=+"\|$+	contains=javaScriptSpecial,@htmlPreproc
syn region  javaScriptStringS	       start=+'+  skip=+\\\\\|\\'+  end=+'\|$+	contains=javaScriptSpecial,@htmlPreproc

syn match   javaScriptSpecialCharacter "'\\.'"
syn match   javaScriptNumber	       "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
syn region  javaScriptRegexpString     start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuys]\{0,2\}\s*$+ end=+/[gimuys]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline

syn keyword javaScriptConditional	if else switch
syn keyword javaScriptRepeat		while for do in
syn keyword javaScriptBranch		break continue
syn keyword javaScriptOperator		new delete instanceof typeof
syn keyword javaScriptType		Array Boolean Date Function Number Object String RegExp
syn keyword javaScriptStatement		return with
syn keyword javaScriptBoolean		true false
syn keyword javaScriptNull		null undefined
syn keyword javaScriptIdentifier	arguments this var let
syn keyword javaScriptLabel		case default
syn keyword javaScriptException		try catch finally throw
syn keyword javaScriptMessage		alert confirm prompt status
syn keyword javaScriptGlobal		self window top parent
syn keyword javaScriptMember		document event location 
syn keyword javaScriptDeprecated	escape unescape
syn keyword javaScriptReserved		abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile 

if exists("javaScript_fold")
    syn match	javaScriptFunction	"\<function\>"
    syn region	javaScriptFunctionFold	start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend

    syn sync match javaScriptSync	grouphere javaScriptFunctionFold "\<function\>"
    syn sync match javaScriptSync	grouphere NONE "^}"

    setlocal foldmethod=syntax
    setlocal foldtext=getline(v:foldstart)
else
    syn keyword javaScriptFunction	function
    syn match	javaScriptBraces	   "[{}\[\]]"
    syn match	javaScriptParens	   "[()]"
endif

syn sync fromstart
syn sync maxlines=100

if main_syntax == "javascript"
  syn sync ccomment javaScriptComment
endif

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link javaScriptComment		Comment
hi def link javaScriptLineComment		Comment
hi def link javaScriptCommentTodo		Todo
hi def link javaScriptSpecial		Special
hi def link javaScriptStringS		String
hi def link javaScriptStringD		String
hi def link javaScriptCharacter		Character
hi def link javaScriptSpecialCharacter	javaScriptSpecial
hi def link javaScriptNumber		javaScriptValue
hi def link javaScriptConditional		Conditional
hi def link javaScriptRepeat		Repeat
hi def link javaScriptBranch		Conditional
hi def link javaScriptOperator		Operator
hi def link javaScriptType			Type
hi def link javaScriptStatement		Statement
hi def link javaScriptFunction		Function
hi def link javaScriptBraces		Function
hi def link javaScriptError		Error
hi def link javaScrParenError		javaScriptError
hi def link javaScriptNull			Keyword
hi def link javaScriptBoolean		Boolean
hi def link javaScriptRegexpString		String

hi def link javaScriptIdentifier		Identifier
hi def link javaScriptLabel		Label
hi def link javaScriptException		Exception
hi def link javaScriptMessage		Keyword
hi def link javaScriptGlobal		Keyword
hi def link javaScriptMember		Keyword
hi def link javaScriptDeprecated		Exception 
hi def link javaScriptReserved		Keyword
hi def link javaScriptDebug		Debug
hi def link javaScriptConstant		Label


let b:current_syntax = "javascript"
if main_syntax == 'javascript'
  unlet main_syntax
endif
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z_�6#jjvim80/syntax/fgl.vimnu�[���" Vim syntax file
" Language:	Informix 4GL
" Maintainer:	Rafal M. Sulejman <rms@poczta.onet.pl>
" Update:	26 Sep 2002
" Changes:
" - Dynamic 4GL/FourJs/4GL 7.30 pseudo comment directives (Julian Bridle)
" - Conditionally allow case insensitive keywords (Julian Bridle)
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

if exists("fgl_ignore_case")
  syntax case ignore
else
  syntax case match
endif
syn keyword fglKeyword ABORT ABS ABSOLUTE ACCEPT ACCESS ACOS ADD AFTER ALL
syn keyword fglKeyword ALLOCATE ALTER AND ANSI ANY APPEND ARG_VAL ARRAY ARR_COUNT
syn keyword fglKeyword ARR_CURR AS ASC ASCENDING ASCII ASIN AT ATAN ATAN2 ATTACH
syn keyword fglKeyword ATTRIBUTE ATTRIBUTES AUDIT AUTHORIZATION AUTO AUTONEXT AVERAGE AVG
syn keyword fglKeyword BEFORE BEGIN BETWEEN BLACK BLINK BLUE BOLD BORDER BOTH BOTTOM
syn keyword fglKeyword BREAK BUFFERED BY BYTE
syn keyword fglKeyword CALL CASCADE CASE CHAR CHARACTER CHARACTER_LENGTH CHAR_LENGTH
syn keyword fglKeyword CHECK CLASS_ORIGIN CLEAR CLIPPED CLOSE CLUSTER COLOR
syn keyword fglKeyword COLUMN COLUMNS COMMAND COMMENT COMMENTS COMMIT COMMITTED
syn keyword fglKeyword COMPOSITES COMPRESS CONCURRENT CONNECT CONNECTION
syn keyword fglKeyword CONNECTION_ALIAS CONSTRAINED CONSTRAINT CONSTRAINTS CONSTRUCT
syn keyword fglKeyword CONTINUE CONTROL COS COUNT CREATE CURRENT CURSOR CYAN
syn keyword fglKeyword DATA DATABASE DATASKIP DATE DATETIME DAY DBA DBINFO DBSERVERNAME
syn keyword fglKeyword DEALLOCATE DEBUG DEC DECIMAL DECLARE DEFAULT DEFAULTS DEFER
syn keyword fglKeyword DEFERRED DEFINE DELETE DELIMITER DELIMITERS DESC DESCENDING
syn keyword fglKeyword DESCRIBE DESCRIPTOR DETACH DIAGNOSTICS DIM DIRTY DISABLED
syn keyword fglKeyword DISCONNECT DISPLAY DISTINCT DISTRIBUTIONS DO DORMANT DOUBLE
syn keyword fglKeyword DOWN DOWNSHIFT DROP
syn keyword fglKeyword EACH ELIF ELSE ENABLED END ENTRY ERROR ERRORLOG ERR_GET
syn keyword fglKeyword ERR_PRINT ERR_QUIT ESC ESCAPE EVERY EXCEPTION EXCLUSIVE
syn keyword fglKeyword EXEC EXECUTE EXISTS EXIT EXP EXPLAIN EXPRESSION EXTEND EXTENT
syn keyword fglKeyword EXTERN EXTERNAL
syn keyword fglKeyword F1 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F2 F20 F21 F22 F23
syn keyword fglKeyword F24 F25 F26 F27 F28 F29 F3 F30 F31 F32 F33 F34 F35 F36 F37 F38
syn keyword fglKeyword F39 F4 F40 F41 F42 F43 F44 F45 F46 F47 F48 F49 F5 F50 F51 F52
syn keyword fglKeyword F53 F54 F55 F56 F57 F58 F59 F6 F60 F61 F62 F63 F64 F7 F8 F9
syn keyword fglKeyword FALSE FETCH FGL_GETENV FGL_KEYVAL FGL_LASTKEY FIELD FIELD_TOUCHED
syn keyword fglKeyword FILE FILLFACTOR FILTERING FINISH FIRST FLOAT FLUSH FOR
syn keyword fglKeyword FOREACH FOREIGN FORM FORMAT FORMONLY FORTRAN FOUND FRACTION
syn keyword fglKeyword FRAGMENT FREE FROM FUNCTION GET_FLDBUF GLOBAL GLOBALS GO GOTO
syn keyword fglKeyword GRANT GREEN GROUP HAVING HEADER HELP HEX HIDE HIGH HOLD HOUR
syn keyword fglKeyword IDATA IF ILENGTH IMMEDIATE IN INCLUDE INDEX INDEXES INDICATOR
syn keyword fglKeyword INFIELD INIT INITIALIZE INPUT INSERT INSTRUCTIONS INT INTEGER
syn keyword fglKeyword INTERRUPT INTERVAL INTO INT_FLAG INVISIBLE IS ISAM ISOLATION
syn keyword fglKeyword ITYPE
syn keyword fglKeyword KEY LABEL
syn keyword fglKeyword LANGUAGE LAST LEADING LEFT LENGTH LET LIKE LINE
syn keyword fglKeyword LINENO LINES LOAD LOCATE LOCK LOG LOG10 LOGN LONG LOW
syn keyword fglKeyword MAGENTA MAIN MARGIN MATCHES MAX MDY MEDIUM MEMORY MENU MESSAGE
syn keyword fglKeyword MESSAGE_LENGTH MESSAGE_TEXT MIN MINUTE MOD MODE MODIFY MODULE
syn keyword fglKeyword MONEY MONTH MORE
syn keyword fglKeyword NAME NCHAR NEED NEW NEXT NEXTPAGE NO NOCR NOENTRY NONE NORMAL
syn keyword fglKeyword NOT NOTFOUND NULL NULLABLE NUMBER NUMERIC NUM_ARGS NVARCHAR
syn keyword fglKeyword OCTET_LENGTH OF OFF OLD ON ONLY OPEN OPTIMIZATION OPTION OPTIONS
syn keyword fglKeyword OR ORDER OTHERWISE OUTER OUTPUT
syn keyword fglKeyword PAGE PAGENO PAUSE PDQPRIORITY PERCENT PICTURE PIPE POW PRECISION
syn keyword fglKeyword PREPARE PREVIOUS PREVPAGE PRIMARY PRINT PRINTER PRIOR PRIVATE
syn keyword fglKeyword PRIVILEGES PROCEDURE PROGRAM PROMPT PUBLIC PUT
syn keyword fglKeyword QUIT QUIT_FLAG
syn keyword fglKeyword RAISE RANGE READ READONLY REAL RECORD RECOVER RED REFERENCES
syn keyword fglKeyword REFERENCING REGISTER RELATIVE REMAINDER REMOVE RENAME REOPTIMIZATION
syn keyword fglKeyword REPEATABLE REPORT REQUIRED RESOLUTION RESOURCE RESTRICT
syn keyword fglKeyword RESUME RETURN RETURNED_SQLSTATE RETURNING REVERSE REVOKE RIGHT
syn keyword fglKeyword ROBIN ROLE ROLLBACK ROLLFORWARD ROOT ROUND ROW ROWID ROWIDS
syn keyword fglKeyword ROWS ROW_COUNT RUN
syn keyword fglKeyword SCALE SCHEMA SCREEN SCROLL SCR_LINE SECOND SECTION SELECT
syn keyword fglKeyword SERIAL SERIALIZABLE SERVER_NAME SESSION SET SET_COUNT SHARE
syn keyword fglKeyword SHORT SHOW SITENAME SIZE SIZEOF SKIP SLEEP SMALLFLOAT SMALLINT
syn keyword fglKeyword SOME SPACE SPACES SQL SQLAWARN SQLCA SQLCODE SQLERRD SQLERRM
syn keyword fglKeyword SQLERROR SQLERRP SQLSTATE SQLWARNING SQRT STABILITY START
syn keyword fglKeyword STARTLOG STATIC STATISTICS STATUS STDEV STEP STOP STRING STRUCT
syn keyword fglKeyword SUBCLASS_ORIGIN SUM SWITCH SYNONYM SYSTEM
syn keyword fglKeyword SysBlobs SysChecks SysColAuth SysColDepend SysColumns
syn keyword fglKeyword SysConstraints SysDefaults SysDepend SysDistrib SysFragAuth
syn keyword fglKeyword SysFragments SysIndexes SysObjState SysOpClstr SysProcAuth
syn keyword fglKeyword SysProcBody SysProcPlan SysProcedures SysReferences SysRoleAuth
syn keyword fglKeyword SysSynTable SysSynonyms SysTabAuth SysTables SysTrigBody
syn keyword fglKeyword SysTriggers SysUsers SysViews SysViolations
syn keyword fglKeyword TAB TABLE TABLES TAN TEMP TEXT THEN THROUGH THRU TIME TO
syn keyword fglKeyword TODAY TOP TOTAL TRACE TRAILER TRAILING TRANSACTION TRIGGER
syn keyword fglKeyword TRIGGERS TRIM TRUE TRUNC TYPE TYPEDEF
syn keyword fglKeyword UNCOMMITTED UNCONSTRAINED UNDERLINE UNION UNIQUE UNITS UNLOAD
syn keyword fglKeyword UNLOCK UNSIGNED UP UPDATE UPSHIFT USER USING
syn keyword fglKeyword VALIDATE VALUE VALUES VARCHAR VARIABLES VARIANCE VARYING
syn keyword fglKeyword VERIFY VIEW VIOLATIONS
syn keyword fglKeyword WAIT WAITING WARNING WEEKDAY WHEN WHENEVER WHERE WHILE WHITE
syn keyword fglKeyword WINDOW WITH WITHOUT WORDWRAP WORK WRAP WRITE
syn keyword fglKeyword YEAR YELLOW
syn keyword fglKeyword ZEROFILL

" Strings and characters:
syn region fglString		start=+"+  skip=+\\\\\|\\"+  end=+"+
syn region fglString		start=+'+  skip=+\\\\\|\\"+  end=+'+

" Numbers:
syn match fglNumber		"-\=\<[0-9]*\.\=[0-9_]\>"

" Comments:
syn region fglComment    start="{"  end="}"
syn match fglComment	"--.*"
syn match fglComment	"#.*"

" Not a comment even though it looks like one (Dynamic 4GL/FourJs directive)
syn match fglSpecial	"--#"
syn match fglSpecial	"--@"

syn sync ccomment fglComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link fglComment	Comment
"hi def link fglKeyword	fglSpecial
hi def link fglKeyword	fglStatement
hi def link fglNumber	Number
hi def link fglOperator	fglStatement
hi def link fglSpecial	Special
hi def link fglStatement	Statement
hi def link fglString	String
hi def link fglType	Type


let b:current_syntax = "fgl"

" vim: ts=8
PK�j�Z��Ɯ � vim80/syntax/help.vimnu�[���" Vim syntax file
" Language:	Vim help file
" Maintainer:	Bram Moolenaar (Bram@vim.org)
" Last Change:	2017 Oct 19

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match helpHeadline		"^[-A-Z .][-A-Z0-9 .()]*[ \t]\+\*"me=e-1
syn match helpSectionDelim	"^===.*===$"
syn match helpSectionDelim	"^---.*--$"
if has("conceal")
  syn region helpExample	matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<" concealends
else
  syn region helpExample	matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
endif
if has("ebcdic")
  syn match helpHyperTextJump	"\\\@<!|[^"*|]\+|" contains=helpBar
  syn match helpHyperTextEntry	"\*[^"*|]\+\*\s"he=e-1 contains=helpStar
  syn match helpHyperTextEntry	"\*[^"*|]\+\*$" contains=helpStar
else
  syn match helpHyperTextJump	"\\\@<!|[#-)!+-~]\+|" contains=helpBar
  syn match helpHyperTextEntry	"\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar
  syn match helpHyperTextEntry	"\*[#-)!+-~]\+\*$" contains=helpStar
endif
if has("conceal")
  syn match helpBar		contained "|" conceal
  syn match helpBacktick	contained "`" conceal
  syn match helpStar		contained "\*" conceal
else
  syn match helpBar		contained "|"
  syn match helpBacktick	contained "`"
  syn match helpStar		contained "\*"
endif
syn match helpNormal		"|.*====*|"
syn match helpNormal		"|||"
syn match helpNormal		":|vim:|"	" for :help modeline
syn match helpVim		"\<Vim version [0-9][0-9.a-z]*"
syn match helpVim		"VIM REFERENCE.*"
syn match helpOption		"'[a-z]\{2,\}'"
syn match helpOption		"'t_..'"
syn match helpCommand		"`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick
syn match helpCommand		"\(^\|[^a-z"[]\)\zs`[^`]\+`\ze\([^a-z\t."']\|$\)"hs=s+1,he=e-1 contains=helpBacktick
syn match helpHeader		"\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
syn match helpGraphic		".* \ze`$" nextgroup=helpIgnore
if has("conceal")
  syn match helpIgnore		"." contained conceal
else
  syn match helpIgnore		"." contained
endif
syn keyword helpNote		note Note NOTE note: Note: NOTE: Notes Notes:
syn keyword helpWarning		WARNING WARNING: Warning:
syn keyword helpDeprecated	DEPRECATED DEPRECATED: Deprecated:
syn match helpSpecial		"\<N\>"
syn match helpSpecial		"\<N\.$"me=e-1
syn match helpSpecial		"\<N\.\s"me=e-2
syn match helpSpecial		"(N\>"ms=s+1

syn match helpSpecial		"\[N]"
" avoid highlighting N  N in help.txt
syn match helpSpecial		"N  N"he=s+1
syn match helpSpecial		"Nth"me=e-2
syn match helpSpecial		"N-1"me=e-2
syn match helpSpecial		"{[-a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}"
syn match helpSpecial		"\s\[[-a-z^A-Z0-9_]\{2,}]"ms=s+1
syn match helpSpecial		"<[-a-zA-Z0-9_]\+>"
syn match helpSpecial		"<[SCM]-.>"
syn match helpNormal		"<---*>"
syn match helpSpecial		"\[range]"
syn match helpSpecial		"\[line]"
syn match helpSpecial		"\[count]"
syn match helpSpecial		"\[offset]"
syn match helpSpecial		"\[cmd]"
syn match helpSpecial		"\[num]"
syn match helpSpecial		"\[+num]"
syn match helpSpecial		"\[-num]"
syn match helpSpecial		"\[+cmd]"
syn match helpSpecial		"\[++opt]"
syn match helpSpecial		"\[arg]"
syn match helpSpecial		"\[arguments]"
syn match helpSpecial		"\[ident]"
syn match helpSpecial		"\[addr]"
syn match helpSpecial		"\[group]"
" Don't highlight [converted] and others that do not have a tag
syn match helpNormal		"\[\(readonly\|fifo\|socket\|converted\|crypted\)]"

syn match helpSpecial		"CTRL-."
syn match helpSpecial		"CTRL-Break"
syn match helpSpecial		"CTRL-PageUp"
syn match helpSpecial		"CTRL-PageDown"
syn match helpSpecial		"CTRL-Insert"
syn match helpSpecial		"CTRL-Del"
syn match helpSpecial		"CTRL-{char}"
syn region helpNotVi		start="{Vi[: ]" start="{not" start="{only" end="}" contains=helpLeadBlank,helpHyperTextJump
syn match helpLeadBlank		"^\s\+" contained

" Highlight group items in their own color.
syn match helpComment		"\t[* ]Comment\t\+[a-z].*"
syn match helpConstant		"\t[* ]Constant\t\+[a-z].*"
syn match helpString		"\t[* ]String\t\+[a-z].*"
syn match helpCharacter		"\t[* ]Character\t\+[a-z].*"
syn match helpNumber		"\t[* ]Number\t\+[a-z].*"
syn match helpBoolean		"\t[* ]Boolean\t\+[a-z].*"
syn match helpFloat		"\t[* ]Float\t\+[a-z].*"
syn match helpIdentifier	"\t[* ]Identifier\t\+[a-z].*"
syn match helpFunction		"\t[* ]Function\t\+[a-z].*"
syn match helpStatement		"\t[* ]Statement\t\+[a-z].*"
syn match helpConditional	"\t[* ]Conditional\t\+[a-z].*"
syn match helpRepeat		"\t[* ]Repeat\t\+[a-z].*"
syn match helpLabel		"\t[* ]Label\t\+[a-z].*"
syn match helpOperator		"\t[* ]Operator\t\+["a-z].*"
syn match helpKeyword		"\t[* ]Keyword\t\+[a-z].*"
syn match helpException		"\t[* ]Exception\t\+[a-z].*"
syn match helpPreProc		"\t[* ]PreProc\t\+[a-z].*"
syn match helpInclude		"\t[* ]Include\t\+[a-z].*"
syn match helpDefine		"\t[* ]Define\t\+[a-z].*"
syn match helpMacro		"\t[* ]Macro\t\+[a-z].*"
syn match helpPreCondit		"\t[* ]PreCondit\t\+[a-z].*"
syn match helpType		"\t[* ]Type\t\+[a-z].*"
syn match helpStorageClass	"\t[* ]StorageClass\t\+[a-z].*"
syn match helpStructure		"\t[* ]Structure\t\+[a-z].*"
syn match helpTypedef		"\t[* ]Typedef\t\+[Aa-z].*"
syn match helpSpecial		"\t[* ]Special\t\+[a-z].*"
syn match helpSpecialChar	"\t[* ]SpecialChar\t\+[a-z].*"
syn match helpTag		"\t[* ]Tag\t\+[a-z].*"
syn match helpDelimiter		"\t[* ]Delimiter\t\+[a-z].*"
syn match helpSpecialComment	"\t[* ]SpecialComment\t\+[a-z].*"
syn match helpDebug		"\t[* ]Debug\t\+[a-z].*"
syn match helpUnderlined	"\t[* ]Underlined\t\+[a-z].*"
syn match helpError		"\t[* ]Error\t\+[a-z].*"
syn match helpTodo		"\t[* ]Todo\t\+[a-z].*"

syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' 	<>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' 	<>"]+)[a-zA-Z0-9/]`

" Additionally load a language-specific syntax file "help_ab.vim".
let s:i = match(expand("%"), '\.\a\ax$')
if s:i > 0
  exe "runtime syntax/help_" . strpart(expand("%"), s:i + 1, 2) . ".vim"
endif

" Italian
if v:lang =~ '\<IT\>' || v:lang =~ '_IT\>' || v:lang =~? "italian"
  syn keyword helpNote		nota Nota NOTA nota: Nota: NOTA: notare Notare NOTARE notare: Notare: NOTARE:
  syn match helpSpecial		"Nma"me=e-2
  syn match helpSpecial		"Nme"me=e-2
  syn match helpSpecial		"Nmi"me=e-2
  syn match helpSpecial		"Nmo"me=e-2
  syn match helpSpecial		"\[interv.]"
  syn region helpNotVi		start="{non" start="{solo" start="{disponibile" end="}" contains=helpLeadBlank,helpHyperTextJump
endif

syn sync minlines=40


" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link helpIgnore		Ignore
hi def link helpHyperTextJump	Identifier
hi def link helpBar		Ignore
hi def link helpBacktick	Ignore
hi def link helpStar		Ignore
hi def link helpHyperTextEntry	String
hi def link helpHeadline	Statement
hi def link helpHeader		PreProc
hi def link helpSectionDelim	PreProc
hi def link helpVim		Identifier
hi def link helpCommand		Comment
hi def link helpExample		Comment
hi def link helpOption		Type
hi def link helpNotVi		Special
hi def link helpSpecial		Special
hi def link helpNote		Todo
hi def link helpWarning		Todo
hi def link helpDeprecated	Todo

hi def link helpComment		Comment
hi def link helpConstant	Constant
hi def link helpString		String
hi def link helpCharacter	Character
hi def link helpNumber		Number
hi def link helpBoolean		Boolean
hi def link helpFloat		Float
hi def link helpIdentifier	Identifier
hi def link helpFunction	Function
hi def link helpStatement	Statement
hi def link helpConditional	Conditional
hi def link helpRepeat		Repeat
hi def link helpLabel		Label
hi def link helpOperator	Operator
hi def link helpKeyword		Keyword
hi def link helpException	Exception
hi def link helpPreProc		PreProc
hi def link helpInclude		Include
hi def link helpDefine		Define
hi def link helpMacro		Macro
hi def link helpPreCondit	PreCondit
hi def link helpType		Type
hi def link helpStorageClass	StorageClass
hi def link helpStructure	Structure
hi def link helpTypedef		Typedef
hi def link helpSpecialChar	SpecialChar
hi def link helpTag		Tag
hi def link helpDelimiter	Delimiter
hi def link helpSpecialComment	SpecialComment
hi def link helpDebug		Debug
hi def link helpUnderlined	Underlined
hi def link helpError		Error
hi def link helpTodo		Todo
hi def link helpURL		String

let b:current_syntax = "help"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 sw=2
PK�j�Z�N�8��vim80/syntax/syntax.vimnu�[���" Vim syntax support file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2001 Sep 04

" This file is used for ":syntax on".
" It installs the autocommands and starts highlighting for all buffers.

if !has("syntax")
  finish
endif

" If Syntax highlighting appears to be on already, turn it off first, so that
" any leftovers are cleared.
if exists("syntax_on") || exists("syntax_manual")
  so <sfile>:p:h/nosyntax.vim
endif

" Load the Syntax autocommands and set the default methods for highlighting.
runtime syntax/synload.vim

" Load the FileType autocommands if not done yet.
if exists("did_load_filetypes")
  let s:did_ft = 1
else
  filetype on
  let s:did_ft = 0
endif

" Set up the connection between FileType and Syntax autocommands.
" This makes the syntax automatically set when the file type is detected.
augroup syntaxset
  au! FileType *	exe "set syntax=" . expand("<amatch>")
augroup END


" Execute the syntax autocommands for the each buffer.
" If the filetype wasn't detected yet, do that now.
" Always do the syntaxset autocommands, for buffers where the 'filetype'
" already was set manually (e.g., help buffers).
doautoall syntaxset FileType
if !s:did_ft
  doautoall filetypedetect BufRead
endif
PK�j�ZrP;)rrvim80/syntax/dosini.vimnu�[���" Vim syntax file
" Language:               Configuration File (ini file) for MSDOS/MS Windows
" Version:                2.1
" Original Author:        Sean M. McKee <mckee@misslink.net>
" Previous Maintainer:    Nima Talebi <nima@it.net.au>
" Current Maintainer:     Hong Xu <xuhdev@gmail.com>
" Homepage:               http://www.vim.org/scripts/script.php?script_id=3747
"                         https://bitbucket.org/xuhdev/syntax-dosini.vim
" Last Change:            2011 Nov 8


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" shut case off
syn case ignore

syn match  dosiniNumber   "\<\d\+\>"
syn match  dosiniNumber   "\<\d*\.\d\+\>"
syn match  dosiniNumber   "\<\d\+e[+-]\=\d\+\>"
syn match  dosiniLabel    "^.\{-}="
syn region dosiniHeader   start="^\s*\[" end="\]"
syn match  dosiniComment  "^[#;].*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dosiniNumber   Number
hi def link dosiniHeader   Special
hi def link dosiniComment  Comment
hi def link dosiniLabel    Type


let b:current_syntax = "dosini"

" vim: sts=2 sw=2 et
PK�j�Z�,��(�(vim80/syntax/elinks.vimnu�[���" Vim syntax file
" Language:             elinks(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-17

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword+=-

syn keyword elinksTodo      contained TODO FIXME XXX NOTE

syn region  elinksComment   display oneline start='#' end='$'
                            \ contains=elinksTodo,@Spell

syn match   elinksNumber    '\<\d\+\>'

syn region  elinksString    start=+"+ skip=+\\\\\|\\"+ end=+"+
                            \ contains=@elinksColor

syn keyword elinksKeyword   set bind

syn keyword elinksPrefix    bookmarks
syn keyword elinksOptions   file_format

syn keyword elinksPrefix    config
syn keyword elinksOptions   comments indentation saving_style i18n
                            \ saving_style_w show_template

syn keyword elinksPrefix    connection ssl client_cert
syn keyword elinksOptions   enable file cert_verify async_dns max_connections
                            \ max_connections_to_host receive_timeout retries
                            \ unrestartable_receive_timeout

syn keyword elinksPrefix    cookies
syn keyword elinksOptions   accept_policy max_age paranoid_security save resave

syn keyword elinksPrefix    document browse accesskey forms images links
syn keyword elinksPrefix    active_link colors search cache codepage colors
syn keyword elinksPrefix    format memory download dump history global html
syn keyword elinksPrefix    plain
syn keyword elinksOptions   auto_follow priority auto_submit confirm_submit
                            \ input_size show_formhist file_tags
                            \ image_link_tagging image_link_prefix
                            \ image_link_suffix show_as_links
                            \ show_any_as_links background text enable_color
                            \ bold invert underline color_dirs numbering
                            \ use_tabindex number_keys_select_link
                            \ wraparound case regex show_hit_top_bottom
                            \ wraparound show_not_found margin_width refresh
                            \ minimum_refresh_time scroll_margin scroll_step
                            \ table_move_order size size cache_redirects
                            \ ignore_cache_control assume force_assumed text
                            \ background link vlink dirs allow_dark_on_black
                            \ ensure_contrast use_document_colors directory
                            \ set_original_time overwrite notify_bell
                            \ codepage width enable max_items display_type
                            \ write_interval keep_unhistory display_frames
                            \ display_tables expand_table_columns display_subs
                            \ display_sups link_display underline_links
                            \ wrap_nbsp display_links compress_empty_lines

syn keyword elinksPrefix    mime extension handler mailcap mimetypes type
syn keyword elinksOptions   ask block program enable path ask description
                            \ prioritize enable path default_type

syn keyword elinksPrefix    protocol file cgi ftp proxy http bugs proxy
syn keyword elinksPrefix    referer https proxy rewrite dumb smart
syn keyword elinksOptions   path policy allow_special_files show_hidden_files
                            \ try_encoding_extensions host anon_passwd
                            \ use_pasv use_epsv accept_charset allow_blacklist
                            \ broken_302_redirect post_no_keepalive http10
                            \ host user passwd policy fake accept_language
                            \ accept_ui_language trace user_agent host
                            \ enable-dumb enable-smart

syn keyword elinksPrefix    terminal
syn keyword elinksOptions   type m11_hack utf_8_io restrict_852 block_cursor
                            \ colors transparency underline charset

syn keyword elinksPrefix    ui colors color mainmenu normal selected hotkey
                            \ menu marked hotkey frame dialog generic
                            \ frame scrollbar scrollbar-selected title text
                            \ checkbox checkbox-label button button-selected
                            \ field field-text meter shadow title title-bar
                            \ title-text status status-bar status-text tabs
                            \ unvisited normal loading separator searched mono
syn keyword elinksOptions   text background

syn keyword elinksPrefix    ui dialogs leds sessions tabs timer
syn keyword elinksOptions   listbox_min_height shadows underline_hotkeys enable
                            \ auto_save auto_restore auto_save_foldername
                            \ homepage show_bar wraparound confirm_close
                            \ enable duration action language show_status_bar
                            \ show_title_bar startup_goto_dialog
                            \ success_msgbox window_title

syn keyword elinksOptions   secure_file_saving

syn cluster elinksColor     contains=elinksColorBlack,elinksColorDarkRed,
                            \ elinksColorDarkGreen,elinksColorDarkYellow,
                            \ elinksColorDarkBlue,elinksColorDarkMagenta,
                            \ elinksColorDarkCyan,elinksColorGray,
                            \ elinksColorDarkGray,elinksColorRed,
                            \ elinksColorGreen,elinksColorYellow,
                            \ elinksColorBlue,elinksColorMagenta,
                            \ elinksColorCyan,elinksColorWhite

syn keyword elinksColorBlack        contained black
syn keyword elinksColorDarkRed      contained darkred sandybrown maroon crimson
                                    \ firebrick
syn keyword elinksColorDarkGreen    contained darkgreen darkolivegreen
                                    \ darkseagreen forestgreen
                                    \ mediumspringgreen seagreen
syn keyword elinksColorDarkYellow   contained brown blanchedalmond chocolate
                                    \ darkorange darkgoldenrod orange rosybrown
                                    \ saddlebrown peru olive olivedrab sienna
syn keyword elinksColorDarkBlue     contained darkblue cadetblue cornflowerblue
                                    \ darkslateblue deepskyblue midnightblue
                                    \ royalblue steelblue navy
syn keyword elinksColorDarkMagenta  contained darkmagenta mediumorchid
                                    \ mediumpurple mediumslateblue slateblue
                                    \ deeppink hotpink darkorchid orchid purple
                                    \ indigo
syn keyword elinksColorDarkCyan     contained darkcyan mediumaquamarine
                                    \ mediumturquoise darkturquoise teal
syn keyword elinksColorGray         contained silver dimgray lightslategray
                                    \ slategray lightgrey burlywood plum tan
                                    \ thistle
syn keyword elinksColorDarkGray     contained gray darkgray darkslategray
                                    \ darksalmon
syn keyword elinksColorRed          contained red indianred orangered tomato
                                    \ lightsalmon salmon coral lightcoral
syn keyword elinksColorGreen        contained green greenyellow lawngreen
                                    \ lightgreen lightseagreen limegreen
                                    \ mediumseagreen springgreen yellowgreen
                                    \ palegreen lime chartreuse
syn keyword elinksColorYellow       contained yellow beige darkkhaki
                                    \ lightgoldenrodyellow palegoldenrod gold
                                    \ goldenrod khaki lightyellow
syn keyword elinksColorBlue         contained blue aliceblue aqua aquamarine
                                    \ azure dodgerblue lightblue lightskyblue
                                    \ lightsteelblue mediumblue
syn keyword elinksColorMagenta      contained magenta darkviolet blueviolet
                                    \ lightpink mediumvioletred palevioletred
                                    \ violet pink fuchsia
syn keyword elinksColorCyan         contained cyan lightcyan powderblue skyblue
                                    \ turquoise paleturquoise
syn keyword elinksColorWhite        contained white antiquewhite floralwhite
                                    \ ghostwhite navajowhite whitesmoke linen
                                    \ lemonchiffon cornsilk lavender
                                    \ lavenderblush seashell mistyrose ivory
                                    \ papayawhip bisque gainsboro honeydew
                                    \ mintcream moccasin oldlace peachpuff snow
                                    \ wheat

hi def link elinksTodo              Todo
hi def link elinksComment           Comment
hi def link elinksNumber            Number
hi def link elinksString            String
hi def link elinksKeyword           Keyword
hi def link elinksPrefix            Identifier
hi def link elinksOptions           Identifier
hi def      elinksColorBlack        ctermfg=Black       guifg=Black
hi def      elinksColorDarkRed      ctermfg=DarkRed     guifg=DarkRed
hi def      elinksColorDarkGreen    ctermfg=DarkGreen   guifg=DarkGreen
hi def      elinksColorDarkYellow   ctermfg=DarkYellow  guifg=DarkYellow
hi def      elinksColorDarkBlue     ctermfg=DarkBlue    guifg=DarkBlue
hi def      elinksColorDarkMagenta  ctermfg=DarkMagenta guifg=DarkMagenta
hi def      elinksColorDarkCyan     ctermfg=DarkCyan    guifg=DarkCyan
hi def      elinksColorGray         ctermfg=Gray        guifg=Gray
hi def      elinksColorDarkGray     ctermfg=DarkGray    guifg=DarkGray
hi def      elinksColorRed          ctermfg=Red         guifg=Red
hi def      elinksColorGreen        ctermfg=Green       guifg=Green
hi def      elinksColorYellow       ctermfg=Yellow      guifg=Yellow
hi def      elinksColorBlue         ctermfg=Blue        guifg=Blue
hi def      elinksColorMagenta      ctermfg=Magenta     guifg=Magenta
hi def      elinksColorCyan         ctermfg=Cyan        guifg=Cyan
hi def      elinksColorWhite        ctermfg=White       guifg=White

let b:current_syntax = "elinks"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�E[	<
<
vim80/syntax/upstreamlog.vimnu�[���" Vim syntax file
" Language:             Innovation Data Processing upstream.log file
" Maintainer:           Rob Owens <rowens@fdrinnovation.com>
" Latest Revision:      2013-09-19

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Date:
syn match upstreamlog_Date /\u\l\l \u\l\l\s\{1,2}\d\{1,2} \d\d:\d\d:\d\d \d\d\d\d/
" Msg Types:
syn match upstreamlog_MsgD /Msg #\(Agt\|PC\|Srv\)\d\{4,5}D/ nextgroup=upstreamlog_Process skipwhite
syn match upstreamlog_MsgE /Msg #\(Agt\|PC\|Srv\)\d\{4,5}E/ nextgroup=upstreamlog_Process skipwhite
syn match upstreamlog_MsgI /Msg #\(Agt\|PC\|Srv\)\d\{4,5}I/ nextgroup=upstreamlog_Process skipwhite
syn match upstreamlog_MsgW /Msg #\(Agt\|PC\|Srv\)\d\{4,5}W/ nextgroup=upstreamlog_Process skipwhite
" Processes:
syn region upstreamlog_Process start="(" end=")" contained
" IP Address:
syn match upstreamlog_IPaddr /\( \|(\)\zs\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
" Profile:
syn match upstreamlog_Profile /Using default configuration for profile \zs\S\{1,8}\ze/
syn match upstreamlog_Profile /Now running profile \zs\S\{1,8}\ze/
syn match upstreamlog_Profile /in profile set \zs\S\{1,8}\ze/
syn match upstreamlog_Profile /Migrate disk backup from profile \zs\S\{1,8}\ze/
syn match upstreamlog_Profile /Profileset=\zs\S\{1,8}\ze,/
syn match upstreamlog_Profile /Vault \(disk\|tape\) backup to vault \d\{1,4} from profile \zs\S\{1,8}\ze/
syn match upstreamlog_Profile /Profile name \zs\"\S\{1,8}\"/
syn match upstreamlog_Profile / Profile: \zs\S\{1,8}/
syn match upstreamlog_Profile /  Profile: \zs\S\{1,8}\ze, /
syn match upstreamlog_Profile /, profile: \zs\S\{1,8}\ze,/
syn match upstreamlog_Profile /found Profile: \zs\S\{1,8}\ze,/
syn match upstreamlog_Profile /Backup Profile: \zs\S\{1,8}\ze Version date/
syn match upstreamlog_Profile /Backup profile: \zs\S\{1,8}\ze  Version date/
syn match upstreamlog_Profile /Full of \zs\S\{1,8}\ze$/
syn match upstreamlog_Profile /Incr. of \zs\S\{1,8}\ze$/
syn match upstreamlog_Profile /Profile=\zs\S\{1,8}\ze,/
" Target:
syn region upstreamlog_Target start="Computer: \zs" end="\ze[\]\)]" 
syn region upstreamlog_Target start="Computer name \zs\"" end="\"\ze" 
syn region upstreamlog_Target start="request to registered name \zs" end=" "


hi def link upstreamlog_Date	Underlined
hi def link upstreamlog_MsgD	Type
hi def link upstreamlog_MsgE	Error
hi def link upstreamlog_MsgW	Constant
hi def link upstreamlog_Process	Statement
hi def link upstreamlog_IPaddr	Identifier
hi def link upstreamlog_Profile	Identifier
hi def link upstreamlog_Target	Identifier

let b:current_syntax = "upstreamlog"
PK�j�Z�y""vim80/syntax/dircolors.vimnu�[���" Vim syntax file
" Language:        dircolors(1) input file
" Maintainer:      Jan Larres <jan@majutsushi.net>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2018-02-19

if exists("b:current_syntax")
    finish
endif

let s:cpo_save = &cpo
set cpo&vim

syntax keyword dircolorsTodo    FIXME TODO XXX NOTE contained

syntax region  dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell

syntax keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE

syntax keyword dircolorsKeyword NORMAL NORM FILE RESET DIR LNK LINK SYMLINK
                              \ MULTIHARDLINK FIFO SOCK DOOR BLK CHR ORPHAN
                              \ MISSING PIPE BLOCK CHR EXEC SETUID SETGID
                              \ CAPABILITY STICKY_OTHER_WRITABLE
                              \ OTHER_WRITABLE STICKY

" Slackware only, ignored by GNU dircolors.
syntax keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT

syntax match dircolorsExtension '^\s*\zs[.*]\S\+'

syntax match dircolorsEscape '\\[abefnrtv?_\\^#]'
syntax match dircolorsEscape '\\[0-9]\{3}'
syntax match dircolorsEscape '\\x[0-9a-f]\{3}'

if !has('gui_running') && &t_Co == ''
    syntax match dircolorsNumber '\<\d\+\>'
    highlight default link dircolorsNumber Number
endif

highlight default link dircolorsTodo      Todo
highlight default link dircolorsComment   Comment
highlight default link dircolorsKeyword   Keyword
highlight default link dircolorsExtension Identifier
highlight default link dircolorsEscape    Special

function! s:set_guicolors() abort
    let s:termguicolors = {}

    let s:termguicolors[0]  = "Black"
    let s:termguicolors[1]  = "DarkRed"
    let s:termguicolors[2]  = "DarkGreen"
    let s:termguicolors[3]  = "DarkYellow"
    let s:termguicolors[4]  = "DarkBlue"
    let s:termguicolors[5]  = "DarkMagenta"
    let s:termguicolors[6]  = "DarkCyan"
    let s:termguicolors[7]  = "Gray"
    let s:termguicolors[8]  = "DarkGray"
    let s:termguicolors[9]  = "Red"
    let s:termguicolors[10] = "Green"
    let s:termguicolors[11] = "Yellow"
    let s:termguicolors[12] = "Blue"
    let s:termguicolors[13] = "Magenta"
    let s:termguicolors[14] = "Cyan"
    let s:termguicolors[15] = "White"

    let xterm_palette = ["00", "5f", "87", "af", "d7", "ff"]

    let cur_col = 16

    for r in xterm_palette
        for g in xterm_palette
            for b in xterm_palette
                let s:termguicolors[cur_col] = '#' . r . g . b
                let cur_col += 1
            endfor
        endfor
    endfor

    for i in range(24)
        let g = i * 0xa + 8
        let s:termguicolors[i + 232] = '#' . g . g . g
    endfor
endfunction

function! s:get_hi_str(color, place) abort
    if a:color >= 0 && a:color <= 255
        if has('gui_running')
            return ' gui' . a:place . '=' . s:termguicolors[a:color]
        elseif a:color <= 7 || &t_Co == 256 || &t_Co == 88
            return ' cterm' . a:place . '=' . a:color
        endif
    endif
    return ''
endfunction

function! s:get_256color(colors) abort
    if len(a:colors) >= 2 " May be fewer while editing
        let [_five, color] = remove(a:colors, 0, 1)
        if _five != '5' || color == ''
            return -1
        else
            return str2nr(color)
        endif
    else
        return -1
    endif
endfunction

function! s:preview_color(linenr) abort
    let line = getline(a:linenr)
    let defline = matchlist(line, '^\v([A-Z_]+|[*.]\S+)\s+([0-9;]+)')
    if empty(defline)
        return
    endif

    let colordef = defline[2]

    let colors = split(colordef, ';')

    let hi_str = ''
    let hi_attrs = []
    while len(colors) > 0
        let item = str2nr(remove(colors, 0))
        if item == 1
            call add(hi_attrs, 'bold')
        elseif item == 3
            call add(hi_attrs, 'italic')
        elseif item == 4
            call add(hi_attrs, 'underline')
        elseif item == 7
            call add(hi_attrs, 'inverse')
        elseif item >= 30 && item <= 37
            " ANSI SGR foreground color
            let hi_str .= s:get_hi_str(item - 30, 'fg')
        elseif item >= 40 && item <= 47
            " ANSI SGR background color
            let hi_str .= s:get_hi_str(item - 40, 'bg')
        elseif item >= 90 && item <= 97
            " ANSI SGR+8 foreground color (xterm 16-color support)
            let hi_str .= s:get_hi_str(item - 82, 'fg')
        elseif item >= 100 && item <= 107
            " ANSI SGR+8 background color (xterm 16-color support)
            let hi_str .= s:get_hi_str(item - 92, 'bg')
        elseif item == 38
            " Foreground for terminals with 88/256 color support
            let color = s:get_256color(colors)
            if color == -1
                break
            endif
            let hi_str .= s:get_hi_str(color, 'fg')
        elseif item == 48
            " Background for terminals with 88/256 color support
            let color = s:get_256color(colors)
            if color == -1
                break
            endif
            let hi_str .= s:get_hi_str(color, 'bg')
        endif
    endwhile

    if hi_str == '' && empty(hi_attrs)
        return
    endif

    " Check whether we have already defined this color
    redir => s:currentmatch
    silent! execute 'syntax list'
    redir END

    if s:currentmatch !~# '\/\\_s\\zs' . colordef . '\\ze\\_s\/'
        " Append the buffer number to avoid problems with other dircolors
        " buffers interfering
        let bufnr = bufnr('%')
        execute 'syntax match dircolorsColor' . b:dc_next_index . '_' . bufnr .
              \ ' "\_s\zs' . colordef . '\ze\_s"'
        let hi_attrs_str = ''
        if !empty(hi_attrs)
            if has('gui_running')
                let hi_attrs_str = ' gui=' . join(hi_attrs, ',')
            else
                let hi_attrs_str = ' cterm=' . join(hi_attrs, ',')
            endif
        endif
        execute 'highlight default dircolorsColor' . b:dc_next_index . '_' .
              \ bufnr . hi_str . hi_attrs_str
        let b:dc_next_index += 1
    endif
endfunction

" Avoid accumulating too many definitions while editing
function! s:reset_colors() abort
    if b:dc_next_index > 0
        let bufnr = bufnr('%')
        for i in range(b:dc_next_index)
            execute 'syntax clear dircolorsColor' . i . '_' . bufnr
            execute 'highlight clear dircolorsColor' . i . '_' . bufnr
        endfor
        let b:dc_next_index = 0
    endif

    for linenr in range(1, line('$'))
        call s:preview_color(linenr)
    endfor
endfunction

let b:dc_next_index = 0

if has('gui_running')
    call s:set_guicolors()
endif

if has('gui_running') || &t_Co != ''
    call s:reset_colors()

    autocmd CursorMoved,CursorMovedI <buffer> call s:preview_color('.')
    autocmd CursorHold,CursorHoldI   <buffer> call s:reset_colors()
endif

let b:current_syntax = "dircolors"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z����K�Kvim80/syntax/scheme.vimnu�[���" Vim syntax file
" Language: Scheme (R7RS)
" Last Change: 2018-01-06
" Author: Evan Hanson <evhan@foldling.org>
" Maintainer: Evan Hanson <evhan@foldling.org>
" Previous Author: Dirk van Deun <dirk@igwe.vub.ac.be>
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
" URL: https://foldling.org/vim/syntax/scheme.vim

if exists('b:current_syntax')
  finish
endif

let s:cpo = &cpo
set cpo&vim

syn match schemeParentheses "[^ '`\t\n()\[\]";]\+"
syn match schemeParentheses "[)\]]"

syn match schemeIdentifier /[^ '`\t\n()\[\]"|;][^ '`\t\n()\[\]"|;]*/

syn region schemeQuote matchgroup=schemeData start=/'[`']*/ end=/[ \t\n()\[\]";]/me=e-1
syn region schemeQuote matchgroup=schemeData start=/'['`]*"/ skip=/\\[\\"]/ end=/"/
syn region schemeQuote matchgroup=schemeData start=/'['`]*|/ skip=/\\[\\|]/ end=/|/
syn region schemeQuote matchgroup=schemeData start=/'['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster

syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*/ end=/[ \t\n()\[\]";]/me=e-1
syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuote,schemeQuoteForm,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster

syn region schemeUnquote matchgroup=schemeParentheses start=/,/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
syn region schemeUnquote matchgroup=schemeParentheses start=/,@/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
syn region schemeUnquote matchgroup=schemeParentheses start=/,(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster

syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster

syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/
syn region schemeSymbol start=/\(\\\)\@<!|/ skip=/\\[\\|]/ end=/|/

syn match schemeNumber /\(#[dbeio]\)*[+\-]*\([0-9]\+\|inf.0\|nan.0\)\(\/\|\.\)\?[0-9+\-@\ilns]*\>/
syn match schemeNumber /#x[+\-]*[0-9a-fA-F]\+\>/

syn match schemeBoolean /#t\(rue\)\?/
syn match schemeBoolean /#f\(alse\)\?/

syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/
syn match schemeCharacter /#\\x[0-9a-fA-F]\+/

syn match schemeComment /;.*$/

syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment

syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster

syn region schemeVector matchgroup=schemeData start="#(" end=")" contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
syn region schemeVector matchgroup=schemeData start="#[fsu]\d\+(" end=")" contains=schemeNumber,schemeComment,schemeDatumComment

if exists('g:is_chicken') || exists('b:is_chicken')
  syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\|import-syntax\|use\|require-extension\)\(-for-syntax\)\?\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
else
  syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
endif

syn match   schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\|srfi\)\>"
syn region  schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster
syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword

syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*/ end=/[ \t\n()\[\]";]/me=e-1
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*"/ skip=/\\[\\"]/ end=/"/
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*|/ skip=/\\[\\|]/ end=/|/
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*\(#\([usf]\d\+\)\?\)\?(/ end=/)/ contains=schemeDatumCommentForm
syn region schemeDatumCommentForm start="(" end=")" contained contains=schemeDatumCommentForm

syn cluster schemeSyntaxCluster contains=schemeFunction,schemeKeyword,schemeSyntax,schemeExtraSyntax,schemeLibrarySyntax,schemeSyntaxSyntax

syn keyword schemeLibrarySyntax define-library
syn keyword schemeLibrarySyntax export
syn keyword schemeLibrarySyntax include
syn keyword schemeLibrarySyntax include-ci
syn keyword schemeLibrarySyntax include-library-declarations
syn keyword schemeLibrarySyntax library
syn keyword schemeLibrarySyntax cond-expand

syn keyword schemeSyntaxSyntax define-syntax
syn keyword schemeSyntaxSyntax let-syntax
syn keyword schemeSyntaxSyntax letrec-syntax
syn keyword schemeSyntaxSyntax syntax-rules

syn keyword schemeSyntax =>
syn keyword schemeSyntax and
syn keyword schemeSyntax begin
syn keyword schemeSyntax case
syn keyword schemeSyntax case-lambda
syn keyword schemeSyntax cond
syn keyword schemeSyntax define
syn keyword schemeSyntax define-record-type
syn keyword schemeSyntax define-values
syn keyword schemeSyntax delay
syn keyword schemeSyntax delay-force
syn keyword schemeSyntax do
syn keyword schemeSyntax else
syn keyword schemeSyntax guard
syn keyword schemeSyntax if
syn keyword schemeSyntax lambda
syn keyword schemeSyntax let
syn keyword schemeSyntax let*
syn keyword schemeSyntax let*-values
syn keyword schemeSyntax let-values
syn keyword schemeSyntax letrec
syn keyword schemeSyntax letrec*
syn keyword schemeSyntax or
syn keyword schemeSyntax parameterize
syn keyword schemeSyntax quasiquote
syn keyword schemeSyntax quote
syn keyword schemeSyntax set!
syn keyword schemeSyntax unless
syn keyword schemeSyntax unquote
syn keyword schemeSyntax unquote-splicing
syn keyword schemeSyntax when

syn keyword schemeFunction *
syn keyword schemeFunction +
syn keyword schemeFunction -
syn keyword schemeFunction /
syn keyword schemeFunction <
syn keyword schemeFunction <=
syn keyword schemeFunction =
syn keyword schemeFunction >
syn keyword schemeFunction >=
syn keyword schemeFunction abs
syn keyword schemeFunction acos
syn keyword schemeFunction acos
syn keyword schemeFunction angle
syn keyword schemeFunction append
syn keyword schemeFunction apply
syn keyword schemeFunction asin
syn keyword schemeFunction assoc
syn keyword schemeFunction assq
syn keyword schemeFunction assv
syn keyword schemeFunction atan
syn keyword schemeFunction binary-port?
syn keyword schemeFunction boolean=?
syn keyword schemeFunction boolean?
syn keyword schemeFunction bytevector
syn keyword schemeFunction bytevector-append
syn keyword schemeFunction bytevector-append
syn keyword schemeFunction bytevector-copy
syn keyword schemeFunction bytevector-copy!
syn keyword schemeFunction bytevector-length
syn keyword schemeFunction bytevector-u8-ref
syn keyword schemeFunction bytevector-u8-set!
syn keyword schemeFunction bytevector?
syn keyword schemeFunction caaaar
syn keyword schemeFunction caaadr
syn keyword schemeFunction caaar
syn keyword schemeFunction caadar
syn keyword schemeFunction caaddr
syn keyword schemeFunction caadr
syn keyword schemeFunction caar
syn keyword schemeFunction cadaar
syn keyword schemeFunction cadadr
syn keyword schemeFunction cadar
syn keyword schemeFunction caddar
syn keyword schemeFunction cadddr
syn keyword schemeFunction caddr
syn keyword schemeFunction cadr
syn keyword schemeFunction call-with-current-continuation
syn keyword schemeFunction call-with-input-file
syn keyword schemeFunction call-with-output-file
syn keyword schemeFunction call-with-port
syn keyword schemeFunction call-with-values
syn keyword schemeFunction call/cc
syn keyword schemeFunction car
syn keyword schemeFunction cdaaar
syn keyword schemeFunction cdaadr
syn keyword schemeFunction cdaar
syn keyword schemeFunction cdadar
syn keyword schemeFunction cdaddr
syn keyword schemeFunction cdadr
syn keyword schemeFunction cdar
syn keyword schemeFunction cddaar
syn keyword schemeFunction cddadr
syn keyword schemeFunction cddar
syn keyword schemeFunction cdddar
syn keyword schemeFunction cddddr
syn keyword schemeFunction cdddr
syn keyword schemeFunction cddr
syn keyword schemeFunction cdr
syn keyword schemeFunction ceiling
syn keyword schemeFunction char->integer
syn keyword schemeFunction char-alphabetic?
syn keyword schemeFunction char-ci<=?
syn keyword schemeFunction char-ci<?
syn keyword schemeFunction char-ci=?
syn keyword schemeFunction char-ci>=?
syn keyword schemeFunction char-ci>?
syn keyword schemeFunction char-downcase
syn keyword schemeFunction char-foldcase
syn keyword schemeFunction char-lower-case?
syn keyword schemeFunction char-numeric?
syn keyword schemeFunction char-ready?
syn keyword schemeFunction char-upcase
syn keyword schemeFunction char-upper-case?
syn keyword schemeFunction char-whitespace?
syn keyword schemeFunction char<=?
syn keyword schemeFunction char<?
syn keyword schemeFunction char=?
syn keyword schemeFunction char>=?
syn keyword schemeFunction char>?
syn keyword schemeFunction char?
syn keyword schemeFunction close-input-port
syn keyword schemeFunction close-output-port
syn keyword schemeFunction close-port
syn keyword schemeFunction command-line
syn keyword schemeFunction complex?
syn keyword schemeFunction cons
syn keyword schemeFunction cos
syn keyword schemeFunction current-error-port
syn keyword schemeFunction current-input-port
syn keyword schemeFunction current-jiffy
syn keyword schemeFunction current-output-port
syn keyword schemeFunction current-second
syn keyword schemeFunction delete-file
syn keyword schemeFunction denominator
syn keyword schemeFunction digit-value
syn keyword schemeFunction display
syn keyword schemeFunction dynamic-wind
syn keyword schemeFunction emergency-exit
syn keyword schemeFunction environment
syn keyword schemeFunction eof-object
syn keyword schemeFunction eof-object?
syn keyword schemeFunction eq?
syn keyword schemeFunction equal?
syn keyword schemeFunction eqv?
syn keyword schemeFunction error
syn keyword schemeFunction error-object-irritants
syn keyword schemeFunction error-object-message
syn keyword schemeFunction error-object?
syn keyword schemeFunction eval
syn keyword schemeFunction even?
syn keyword schemeFunction exact
syn keyword schemeFunction exact->inexact
syn keyword schemeFunction exact-integer-sqrt
syn keyword schemeFunction exact-integer?
syn keyword schemeFunction exact?
syn keyword schemeFunction exit
syn keyword schemeFunction exp
syn keyword schemeFunction expt
syn keyword schemeFunction features
syn keyword schemeFunction file-error?
syn keyword schemeFunction file-exists?
syn keyword schemeFunction finite?
syn keyword schemeFunction floor
syn keyword schemeFunction floor-quotient
syn keyword schemeFunction floor-remainder
syn keyword schemeFunction floor/
syn keyword schemeFunction flush-output-port
syn keyword schemeFunction for-each
syn keyword schemeFunction force
syn keyword schemeFunction gcd
syn keyword schemeFunction get-environment-variable
syn keyword schemeFunction get-environment-variables
syn keyword schemeFunction get-output-bytevector
syn keyword schemeFunction get-output-string
syn keyword schemeFunction imag-part
syn keyword schemeFunction inexact
syn keyword schemeFunction inexact->exact
syn keyword schemeFunction inexact?
syn keyword schemeFunction infinite?
syn keyword schemeFunction input-port-open?
syn keyword schemeFunction input-port?
syn keyword schemeFunction integer->char
syn keyword schemeFunction integer?
syn keyword schemeFunction interaction-environment
syn keyword schemeFunction jiffies-per-second
syn keyword schemeFunction lcm
syn keyword schemeFunction length
syn keyword schemeFunction list
syn keyword schemeFunction list->string
syn keyword schemeFunction list->vector
syn keyword schemeFunction list-copy
syn keyword schemeFunction list-ref
syn keyword schemeFunction list-set!
syn keyword schemeFunction list-tail
syn keyword schemeFunction list?
syn keyword schemeFunction load
syn keyword schemeFunction log
syn keyword schemeFunction magnitude
syn keyword schemeFunction make-bytevector
syn keyword schemeFunction make-list
syn keyword schemeFunction make-parameter
syn keyword schemeFunction make-polar
syn keyword schemeFunction make-promise
syn keyword schemeFunction make-rectangular
syn keyword schemeFunction make-string
syn keyword schemeFunction make-vector
syn keyword schemeFunction map
syn keyword schemeFunction max
syn keyword schemeFunction member
syn keyword schemeFunction memq
syn keyword schemeFunction memv
syn keyword schemeFunction min
syn keyword schemeFunction modulo
syn keyword schemeFunction nan?
syn keyword schemeFunction negative?
syn keyword schemeFunction newline
syn keyword schemeFunction not
syn keyword schemeFunction null-environment
syn keyword schemeFunction null?
syn keyword schemeFunction number->string
syn keyword schemeFunction number?
syn keyword schemeFunction numerator
syn keyword schemeFunction odd?
syn keyword schemeFunction open-binary-input-file
syn keyword schemeFunction open-binary-output-file
syn keyword schemeFunction open-input-bytevector
syn keyword schemeFunction open-input-file
syn keyword schemeFunction open-input-string
syn keyword schemeFunction open-output-bytevector
syn keyword schemeFunction open-output-file
syn keyword schemeFunction open-output-string
syn keyword schemeFunction output-port-open?
syn keyword schemeFunction output-port?
syn keyword schemeFunction pair?
syn keyword schemeFunction peek-char
syn keyword schemeFunction peek-u8
syn keyword schemeFunction port?
syn keyword schemeFunction positive?
syn keyword schemeFunction procedure?
syn keyword schemeFunction promise?
syn keyword schemeFunction quotient
syn keyword schemeFunction raise
syn keyword schemeFunction raise-continuable
syn keyword schemeFunction rational?
syn keyword schemeFunction rationalize
syn keyword schemeFunction read
syn keyword schemeFunction read-bytevector
syn keyword schemeFunction read-bytevector!
syn keyword schemeFunction read-char
syn keyword schemeFunction read-error?
syn keyword schemeFunction read-line
syn keyword schemeFunction read-string
syn keyword schemeFunction read-u8
syn keyword schemeFunction real-part
syn keyword schemeFunction real?
syn keyword schemeFunction remainder
syn keyword schemeFunction reverse
syn keyword schemeFunction round
syn keyword schemeFunction scheme-report-environment
syn keyword schemeFunction set-car!
syn keyword schemeFunction set-cdr!
syn keyword schemeFunction sin
syn keyword schemeFunction sqrt
syn keyword schemeFunction square
syn keyword schemeFunction string
syn keyword schemeFunction string->list
syn keyword schemeFunction string->number
syn keyword schemeFunction string->symbol
syn keyword schemeFunction string->utf8
syn keyword schemeFunction string->vector
syn keyword schemeFunction string-append
syn keyword schemeFunction string-ci<=?
syn keyword schemeFunction string-ci<?
syn keyword schemeFunction string-ci=?
syn keyword schemeFunction string-ci>=?
syn keyword schemeFunction string-ci>?
syn keyword schemeFunction string-copy
syn keyword schemeFunction string-copy!
syn keyword schemeFunction string-downcase
syn keyword schemeFunction string-fill!
syn keyword schemeFunction string-foldcase
syn keyword schemeFunction string-for-each
syn keyword schemeFunction string-length
syn keyword schemeFunction string-map
syn keyword schemeFunction string-ref
syn keyword schemeFunction string-set!
syn keyword schemeFunction string-upcase
syn keyword schemeFunction string<=?
syn keyword schemeFunction string<?
syn keyword schemeFunction string=?
syn keyword schemeFunction string>=?
syn keyword schemeFunction string>?
syn keyword schemeFunction string?
syn keyword schemeFunction substring
syn keyword schemeFunction symbol->string
syn keyword schemeFunction symbol=?
syn keyword schemeFunction symbol?
syn keyword schemeFunction syntax-error
syn keyword schemeFunction tan
syn keyword schemeFunction textual-port?
syn keyword schemeFunction transcript-off
syn keyword schemeFunction transcript-on
syn keyword schemeFunction truncate
syn keyword schemeFunction truncate-quotient
syn keyword schemeFunction truncate-remainder
syn keyword schemeFunction truncate/
syn keyword schemeFunction u8-ready?
syn keyword schemeFunction utf8->string
syn keyword schemeFunction values
syn keyword schemeFunction vector
syn keyword schemeFunction vector->list
syn keyword schemeFunction vector->string
syn keyword schemeFunction vector-append
syn keyword schemeFunction vector-copy
syn keyword schemeFunction vector-copy!
syn keyword schemeFunction vector-fill!
syn keyword schemeFunction vector-for-each
syn keyword schemeFunction vector-length
syn keyword schemeFunction vector-map
syn keyword schemeFunction vector-ref
syn keyword schemeFunction vector-set!
syn keyword schemeFunction vector?
syn keyword schemeFunction with-exception-handler
syn keyword schemeFunction with-input-from-file
syn keyword schemeFunction with-output-to-file
syn keyword schemeFunction write
syn keyword schemeFunction write-bytevector
syn keyword schemeFunction write-char
syn keyword schemeFunction write-shared
syn keyword schemeFunction write-simple
syn keyword schemeFunction write-string
syn keyword schemeFunction write-u8
syn keyword schemeFunction zero?

hi def link schemeBoolean Boolean
hi def link schemeCharacter Character
hi def link schemeComment Comment
hi def link schemeConstant Constant
hi def link schemeData Delimiter
hi def link schemeDatumComment Comment
hi def link schemeDatumCommentForm Comment
hi def link schemeDelimiter Delimiter
hi def link schemeError Error
hi def link schemeExtraSyntax Underlined
hi def link schemeFunction Function
hi def link schemeIdentifier Normal
hi def link schemeImport PreProc
hi def link schemeImportKeyword PreProc
hi def link schemeKeyword Type
hi def link schemeLibrarySyntax PreProc
hi def link schemeMultilineComment Comment
hi def link schemeNumber Number
hi def link schemeParentheses Normal
hi def link schemeQuasiquote Delimiter
hi def link schemeQuote Delimiter
hi def link schemeSpecialSyntax Special
hi def link schemeString String
hi def link schemeSymbol Normal
hi def link schemeSyntax Statement
hi def link schemeSyntaxSyntax PreProc
hi def link schemeTypeSyntax Type

let b:did_scheme_syntax = 1

if exists('b:is_chicken') || exists('g:is_chicken')
  exe 'ru! syntax/chicken.vim'
endif

unlet b:did_scheme_syntax
let b:current_syntax = 'scheme'
let &cpo = s:cpo
unlet s:cpo
PK�j�Z��~��vim80/syntax/ecd.vimnu�[���" Vim syntax file
" Language:	ecd (Embedix Component Description) files
" Maintainer:	John Beppu <beppu@opensource.lineo.com>
" URL:		http://opensource.lineo.com/~beppu/prose/ecd_vim.html
" Last Change:	2001 Sep 27

" An ECD file contains meta-data for packages in the Embedix Linux distro.
" This syntax file was derived from apachestyle.vim
" by Christian Hammers <ch@westend.com>

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" specials
syn match  ecdComment	"^\s*#.*"

" options and values
syn match  ecdAttr	"^\s*[a-zA-Z]\S*\s*[=].*$" contains=ecdAttrN,ecdAttrV
syn match  ecdAttrN	contained "^.*="me=e-1
syn match  ecdAttrV	contained "=.*$"ms=s+1

" tags
syn region ecdTag	start=+<+ end=+>+ contains=ecdTagN,ecdTagError
syn match  ecdTagN	contained +<[/\s]*[-a-zA-Z0-9_]\++ms=s+1
syn match  ecdTagError	contained "[^>]<"ms=s+1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link ecdComment	Comment
hi def link ecdAttr	Type
hi def link ecdAttrN	Statement
hi def link ecdAttrV	Value
hi def link ecdTag		Function
hi def link ecdTagN	Statement
hi def link ecdTagError	Error


let b:current_syntax = "ecd"
" vim: ts=8
PK�j�Z�����vim80/syntax/ant.vimnu�[���" Vim syntax file
" Language:	ANT build file (xml)
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Tue Apr 27 13:05:59 CEST 2004
" Filenames:	build.xml
" $Id: ant.vim,v 1.1 2004/06/13 18:13:18 vimboss Exp $

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

let s:ant_cpo_save = &cpo
set cpo&vim

runtime! syntax/xml.vim

syn case ignore

if !exists('*AntSyntaxScript')
    fun AntSyntaxScript(tagname, synfilename)
	unlet b:current_syntax
	let s:include = expand("<sfile>:p:h").'/'.a:synfilename
	if filereadable(s:include)
	    exe 'syn include @ant'.a:tagname.' '.s:include
	else
	    exe 'syn include @ant'.a:tagname." $VIMRUNTIME/syntax/".a:synfilename
	endif

	exe 'syn region ant'.a:tagname
		    \." start=#<script[^>]\\{-}language\\s*=\\s*['\"]".a:tagname."['\"]\\(>\\|[^>]*[^/>]>\\)#"
		    \.' end=#</script>#'
		    \.' fold'
		    \.' contains=@ant'.a:tagname.',xmlCdataStart,xmlCdataEnd,xmlTag,xmlEndTag'
		    \.' keepend'
	exe 'syn cluster xmlRegionHook add=ant'.a:tagname
    endfun
endif

" TODO: add more script languages here ?
call AntSyntaxScript('javascript', 'javascript.vim')
call AntSyntaxScript('jpython', 'python.vim')


syn cluster xmlTagHook add=antElement

syn keyword antElement display WsdlToDotnet addfiles and ant antcall antstructure apply archives arg argument
syn keyword antElement display assertions attrib attribute available basename bcc blgenclient bootclasspath
syn keyword antElement display borland bottom buildnumber buildpath buildpathelement bunzip2 bzip2 cab
syn keyword antElement display catalogpath cc cccheckin cccheckout cclock ccmcheckin ccmcheckintask ccmcheckout
syn keyword antElement display ccmcreatetask ccmkattr ccmkbl ccmkdir ccmkelem ccmklabel ccmklbtype
syn keyword antElement display ccmreconfigure ccrmtype ccuncheckout ccunlock ccupdate checksum chgrp chmod
syn keyword antElement display chown classconstants classes classfileset classpath commandline comment
syn keyword antElement display compilerarg compilerclasspath concat concatfilter condition copy copydir
syn keyword antElement display copyfile coveragepath csc custom cvs cvschangelog cvspass cvstagdiff cvsversion
syn keyword antElement display daemons date defaultexcludes define delete deletecharacters deltree depend
syn keyword antElement display depends dependset depth description different dirname dirset disable dname
syn keyword antElement display doclet doctitle dtd ear echo echoproperties ejbjar element enable entity entry
syn keyword antElement display env equals escapeunicode exclude excludepackage excludesfile exec execon
syn keyword antElement display existing expandproperties extdirs extension extensionSet extensionset factory
syn keyword antElement display fail filelist filename filepath fileset filesmatch filetokenizer filter
syn keyword antElement display filterchain filterreader filters filterset filtersfile fixcrlf footer format
syn keyword antElement display from ftp generic genkey get gjdoc grant group gunzip gzip header headfilter http
syn keyword antElement display ignoreblank ilasm ildasm import importtypelib include includesfile input iplanet
syn keyword antElement display iplanet-ejbc isfalse isreference isset istrue jar jarlib-available
syn keyword antElement display jarlib-manifest jarlib-resolve java javac javacc javadoc javadoc2 jboss jdepend
syn keyword antElement display jjdoc jjtree jlink jonas jpcoverage jpcovmerge jpcovreport jsharpc jspc
syn keyword antElement display junitreport jvmarg lib libfileset linetokenizer link loadfile loadproperties
syn keyword antElement display location macrodef mail majority manifest map mapper marker mergefiles message
syn keyword antElement display metainf method mimemail mkdir mmetrics modified move mparse none not options or
syn keyword antElement display os outputproperty package packageset parallel param patch path pathconvert
syn keyword antElement display pathelement patternset permissions prefixlines present presetdef project
syn keyword antElement display property propertyfile propertyref propertyset pvcs pvcsproject record reference
syn keyword antElement display regexp rename renameext replace replacefilter replaceregex replaceregexp
syn keyword antElement display replacestring replacetoken replacetokens replacevalue replyto report resource
syn keyword antElement display revoke rmic root rootfileset rpm scp section selector sequential serverdeploy
syn keyword antElement display setproxy signjar size sleep socket soscheckin soscheckout sosget soslabel source
syn keyword antElement display sourcepath sql src srcfile srcfilelist srcfiles srcfileset sshexec stcheckin
syn keyword antElement display stcheckout stlabel stlist stringtokenizer stripjavacomments striplinebreaks
syn keyword antElement display striplinecomments style subant substitution support symlink sync sysproperty
syn keyword antElement display syspropertyset tabstospaces tag taglet tailfilter tar tarfileset target
syn keyword antElement display targetfile targetfilelist targetfileset taskdef tempfile test testlet text title
syn keyword antElement display to token tokenfilter touch transaction translate triggers trim tstamp type
syn keyword antElement display typedef unjar untar unwar unzip uptodate url user vbc vssadd vsscheckin
syn keyword antElement display vsscheckout vsscp vsscreate vssget vsshistory vsslabel waitfor war wasclasspath
syn keyword antElement display webapp webinf weblogic weblogictoplink websphere whichresource wlclasspath
syn keyword antElement display wljspc wsdltodotnet xmlcatalog xmlproperty xmlvalidate xslt zip zipfileset
syn keyword antElement display zipgroupfileset

hi def link antElement Statement

let b:current_syntax = "ant"

let &cpo = s:ant_cpo_save
unlet s:ant_cpo_save

" vim: ts=8
PK�j�ZK�()�
�
vim80/syntax/mailaliases.vimnu�[���" Vim syntax file
" Language:             aliases(5) local alias database file
" Previous Maintainer:  Nikolai Weibull <nikolai@bitwi.se>
" Latest Revision:      2008-04-14

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword mailaliasesTodo         contained TODO FIXME XXX NOTE

syn region  mailaliasesComment      display oneline start='^\s*#' end='$'
                                    \ contains=mailaliasesTodo,@Spell

syn match   mailaliasesBegin        display '^'
                                    \ nextgroup=mailaliasesName,
                                    \ mailaliasesComment

syn match   mailaliasesName         contained '[[:alnum:]\._-]\+'
                                    \ nextgroup=mailaliasesColon

syn region  mailaliasesName         contained oneline start=+"+
                                    \ skip=+\\\\\|\\"+ end=+"+
                                    \ nextgroup=mailaliasesColon

syn match   mailaliasesColon        contained ':'
                                    \ nextgroup=@mailaliasesValue
                                    \ skipwhite skipnl

syn cluster mailaliasesValue        contains=mailaliasesValueAddress,
                                    \ mailaliasesValueFile,
                                    \ mailaliasesValueCommand,
                                    \ mailaliasesValueInclude

syn match   mailaliasesValueAddress contained '[^ \t/|,]\+'
                                    \ nextgroup=mailaliasesValueSep
                                    \ skipwhite skipnl

syn match   mailaliasesValueFile    contained '/[^,]*'
                                    \ nextgroup=mailaliasesValueSep
                                    \ skipwhite skipnl

syn match   mailaliasesValueCommand contained '|[^,]*'
                                    \ nextgroup=mailaliasesValueSep
                                    \ skipwhite skipnl

syn match   mailaliasesValueInclude contained ':include:[^,]*'
                                    \ nextgroup=mailaliasesValueSep
                                    \ skipwhite skipnl

syn match   mailaliasesValueSep     contained ','
                                    \ nextgroup=@mailaliasesValue
                                    \ skipwhite skipnl

hi def link mailaliasesTodo         Todo
hi def link mailaliasesComment      Comment
hi def link mailaliasesName         Identifier
hi def link mailaliasesColon        Delimiter
hi def link mailaliasesValueAddress String
hi def link mailaliasesValueFile    String
hi def link mailaliasesValueCommand String
hi def link mailaliasesValueInclude PreProc
hi def link mailaliasesValueSep     Delimiter

let b:current_syntax = "mailaliases"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZG-�+,+,vim80/syntax/scala.vimnu�[���" Vim syntax file
" Language:             Scala
" Maintainer:           Derek Wyatt
" URL:                  https://github.com/derekwyatt/vim-scala
" License:              Same as Vim
" Last Change:          20 May 2016
" ----------------------------------------------------------------------------

if !exists('main_syntax')
  " quit when a syntax file was already loaded
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'scala'
endif

scriptencoding utf-8

let b:current_syntax = "scala"

" Allows for embedding, see #59; main_syntax convention instead? Refactor TOP
"
" The @Spell here is a weird hack, it means *exclude* if the first group is
" TOP. Otherwise we get spelling errors highlighted on code elements that
" match scalaBlock, even with `syn spell notoplevel`.
function! s:ContainedGroup()
  try
    silent syn list @scala
    return '@scala,@NoSpell'
  catch /E392/
    return 'TOP,@Spell'
  endtry
endfunction

unlet! b:current_syntax

syn case match
syn sync minlines=200 maxlines=1000

syn keyword scalaKeyword catch do else final finally for forSome if
syn keyword scalaKeyword match return throw try while yield macro
syn keyword scalaKeyword class trait object extends with nextgroup=scalaInstanceDeclaration skipwhite
syn keyword scalaKeyword case nextgroup=scalaKeyword,scalaCaseFollowing skipwhite
syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skipwhite
syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite
hi link scalaKeyword Keyword

exe 'syn region scalaBlock start=/{/ end=/}/ contains=' . s:ContainedGroup() . ' fold'

syn keyword scalaAkkaSpecialWord when goto using startWith initialize onTransition stay become unbecome
hi link scalaAkkaSpecialWord PreProc

syn keyword scalatestSpecialWord shouldBe
syn match scalatestShouldDSLA /^\s\+\zsit should/
syn match scalatestShouldDSLB /\<should\>/
hi link scalatestSpecialWord PreProc
hi link scalatestShouldDSLA PreProc
hi link scalatestShouldDSLB PreProc

syn match scalaSymbol /'[_A-Za-z0-9$]\+/
hi link scalaSymbol Number

syn match scalaChar /'.'/
syn match scalaChar /'\\[\\"'ntbrf]'/ contains=scalaEscapedChar
syn match scalaChar /'\\u[A-Fa-f0-9]\{4}'/ contains=scalaUnicodeChar
syn match scalaEscapedChar /\\[\\"'ntbrf]/
syn match scalaUnicodeChar /\\u[A-Fa-f0-9]\{4}/
hi link scalaChar Character
hi link scalaEscapedChar Function
hi link scalaUnicodeChar Special

syn match scalaOperator "||"
syn match scalaOperator "&&"
syn match scalaOperator "|"
syn match scalaOperator "&"
hi link scalaOperator Special

syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaPostNameDefinition,scalaVariableDeclarationList
syn match scalaNameDefinition /`[^`]\+`/ contained nextgroup=scalaPostNameDefinition
syn match scalaVariableDeclarationList /\s*,\s*/ contained nextgroup=scalaNameDefinition
syn match scalaPostNameDefinition /\_s*:\_s*/ contained nextgroup=scalaTypeDeclaration
hi link scalaNameDefinition Function

syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaInstanceHash
syn match scalaInstanceDeclaration /`[^`]\+`/ contained
syn match scalaInstanceHash /#/ contained nextgroup=scalaInstanceDeclaration
hi link scalaInstanceDeclaration Special
hi link scalaInstanceHash Type

syn match scalaUnimplemented /???/
hi link scalaUnimplemented ERROR

syn match scalaCapitalWord /\<[A-Z][A-Za-z0-9$]*\>/
hi link scalaCapitalWord Special

" Handle type declarations specially
syn region scalaTypeStatement matchgroup=Keyword start=/\<type\_s\+\ze/ end=/$/ contains=scalaTypeTypeDeclaration,scalaSquareBrackets,scalaTypeTypeEquals,scalaTypeStatement

" Ugh... duplication of all the scalaType* stuff to handle special highlighting
" of `type X =` declarations
syn match scalaTypeTypeDeclaration /(/ contained nextgroup=scalaTypeTypeExtension,scalaTypeTypeEquals contains=scalaRoundBrackets skipwhite
syn match scalaTypeTypeDeclaration /\%(⇒\|=>\)\ze/ contained nextgroup=scalaTypeTypeDeclaration contains=scalaTypeTypeExtension skipwhite
syn match scalaTypeTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypeExtension,scalaTypeTypeEquals skipwhite
syn match scalaTypeTypeEquals /=\ze[^>]/ contained nextgroup=scalaTypeTypePostDeclaration skipwhite
syn match scalaTypeTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained nextgroup=scalaTypeTypeDeclaration skipwhite
syn match scalaTypeTypePostDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypePostExtension skipwhite
syn match scalaTypeTypePostExtension /\%(⇒\|=>\|<:\|:>\|=:=\|::\)/ contained nextgroup=scalaTypeTypePostDeclaration skipwhite
hi link scalaTypeTypeDeclaration Type
hi link scalaTypeTypeExtension Keyword
hi link scalaTypeTypePostDeclaration Special
hi link scalaTypeTypePostExtension Keyword

syn match scalaTypeDeclaration /(/ contained nextgroup=scalaTypeExtension contains=scalaRoundBrackets skipwhite
syn match scalaTypeDeclaration /\%(⇒\|=>\)\ze/ contained nextgroup=scalaTypeDeclaration contains=scalaTypeExtension skipwhite
syn match scalaTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeExtension skipwhite
syn match scalaTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained nextgroup=scalaTypeDeclaration skipwhite
hi link scalaTypeDeclaration Type
hi link scalaTypeExtension Keyword
hi link scalaTypePostExtension Keyword

syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$\s]:\_s*\)\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration contains=scalaRoundBrackets
syn match scalaTypeAnnotation /)\_s*:\_s*\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration
hi link scalaTypeAnnotation Normal

syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]\+\>/ contained
syn match scalaCaseFollowing /`[^`]\+`/ contained
hi link scalaCaseFollowing Special

syn keyword scalaKeywordModifier abstract override final lazy implicit implicitly private protected sealed null require super
hi link scalaKeywordModifier Function

syn keyword scalaSpecial this true false ne eq
syn keyword scalaSpecial new nextgroup=scalaInstanceDeclaration skipwhite
syn match scalaSpecial "\%(=>\|⇒\|<-\|←\|->\|→\)"
syn match scalaSpecial /`[^`]\+`/  " Backtick literals
hi link scalaSpecial PreProc

syn keyword scalaExternal package import
hi link scalaExternal Include

syn match scalaStringEmbeddedQuote /\\"/ contained
syn region scalaString start=/"/ end=/"/ contains=scalaStringEmbeddedQuote,scalaEscapedChar,scalaUnicodeChar
hi link scalaString String
hi link scalaStringEmbeddedQuote String

syn region scalaIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
syn region scalaTripleIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"""/ end=/"""\ze\%([^"]\|$\)/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
hi link scalaIString String
hi link scalaTripleIString String

syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
exe 'syn region scalaInterpolationB matchgroup=scalaInterpolationBoundary start=/\${/ end=/}/ contained contains=' . s:ContainedGroup()
hi link scalaInterpolation Function
hi link scalaInterpolationB Normal

syn region scalaFString matchgroup=scalaInterpolationBrackets start=/f"/ skip=/\\"/ end=/"/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+\(%[-A-Za-z0-9\.]\+\)\?/ contained
exe 'syn region scalaFInterpolationB matchgroup=scalaInterpolationBoundary start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=' . s:ContainedGroup()
hi link scalaFString String
hi link scalaFInterpolation Function
hi link scalaFInterpolationB Normal

syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar
syn region scalaTripleFString matchgroup=scalaInterpolationBrackets start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
hi link scalaTripleString String
hi link scalaTripleFString String

hi link scalaInterpolationBrackets Special
hi link scalaInterpolationBoundary Function

syn match scalaNumber /\<0[dDfFlL]\?\>/ " Just a bare 0
syn match scalaNumber /\<[1-9]\d*[dDfFlL]\?\>/  " A multi-digit number - octal numbers with leading 0's are deprecated in Scala
syn match scalaNumber /\<0[xX][0-9a-fA-F]\+[dDfFlL]\?\>/ " Hex number
syn match scalaNumber /\%(\<\d\+\.\d*\|\.\d\+\)\%([eE][-+]\=\d\+\)\=[fFdD]\=/ " exponential notation 1
syn match scalaNumber /\<\d\+[eE][-+]\=\d\+[fFdD]\=\>/ " exponential notation 2
syn match scalaNumber /\<\d\+\%([eE][-+]\=\d\+\)\=[fFdD]\>/ " exponential notation 3
hi link scalaNumber Number

syn region scalaRoundBrackets start="(" end=")" skipwhite contained contains=scalaTypeDeclaration,scalaSquareBrackets,scalaRoundBrackets

syn region scalaSquareBrackets matchgroup=scalaSquareBracketsBrackets start="\[" end="\]" skipwhite nextgroup=scalaTypeExtension contains=scalaTypeDeclaration,scalaSquareBrackets,scalaTypeOperator,scalaTypeAnnotationParameter
syn match scalaTypeOperator /[-+=:<>]\+/ contained
syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained
hi link scalaSquareBracketsBrackets Type
hi link scalaTypeOperator Keyword
hi link scalaTypeAnnotationParameter Function

syn match scalaShebang "\%^#!.*" display
syn region scalaMultilineComment start="/\*" end="\*/" contains=scalaMultilineComment,scalaDocLinks,scalaParameterAnnotation,scalaCommentAnnotation,scalaTodo,scalaCommentCodeBlock,@Spell keepend fold
syn match scalaCommentAnnotation "@[_A-Za-z0-9$]\+" contained
syn match scalaParameterAnnotation "\%(@tparam\|@param\|@see\)" nextgroup=scalaParamAnnotationValue skipwhite contained
syn match scalaParamAnnotationValue /[.`_A-Za-z0-9$]\+/ contained
syn region scalaDocLinks start="\[\[" end="\]\]" contained
syn region scalaCommentCodeBlock matchgroup=Keyword start="{{{" end="}}}" contained
syn match scalaTodo "\vTODO|FIXME|XXX" contained
hi link scalaShebang Comment
hi link scalaMultilineComment Comment
hi link scalaDocLinks Function
hi link scalaParameterAnnotation Function
hi link scalaParamAnnotationValue Keyword
hi link scalaCommentAnnotation Function
hi link scalaCommentCodeBlockBrackets String
hi link scalaCommentCodeBlock String
hi link scalaTodo Todo

syn match scalaAnnotation /@\<[`_A-Za-z0-9$]\+\>/
hi link scalaAnnotation PreProc

syn match scalaTrailingComment "//.*$" contains=scalaTodo,@Spell
hi link scalaTrailingComment Comment

syn match scalaAkkaFSM /goto([^)]*)\_s\+\<using\>/ contains=scalaAkkaFSMGotoUsing
syn match scalaAkkaFSM /stay\_s\+using/
syn match scalaAkkaFSM /^\s*stay\s*$/
syn match scalaAkkaFSM /when\ze([^)]*)/
syn match scalaAkkaFSM /startWith\ze([^)]*)/
syn match scalaAkkaFSM /initialize\ze()/
syn match scalaAkkaFSM /onTransition/
syn match scalaAkkaFSM /onTermination/
syn match scalaAkkaFSM /whenUnhandled/
syn match scalaAkkaFSMGotoUsing /\<using\>/
syn match scalaAkkaFSMGotoUsing /\<goto\>/
hi link scalaAkkaFSM PreProc
hi link scalaAkkaFSMGotoUsing PreProc

let b:current_syntax = 'scala'

if main_syntax ==# 'scala'
  unlet main_syntax
endif

" vim:set sw=2 sts=2 ts=8 et:
PK�j�Z��i���vim80/syntax/dockerfile.vimnu�[���" dockerfile.vim - Syntax highlighting for Dockerfiles
" Maintainer:   Honza Pokorny <https://honza.ca>
" Version:      0.6
" Last Change:  2016 Aug 9
" License:      BSD


if exists("b:current_syntax")
    finish
endif

let b:current_syntax = "dockerfile"

syntax case ignore

syntax match dockerfileKeyword /\v^\s*(ONBUILD\s+)?(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)\s/

syntax region dockerfileString start=/\v"/ skip=/\v\\./ end=/\v"/

syntax match dockerfileComment "\v^\s*#.*$"

hi def link dockerfileString String
hi def link dockerfileKeyword Keyword
hi def link dockerfileComment Comment
PK�j�Zd��f$f$vim80/syntax/gtkrc.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: Gtk+ theme files `gtkrc'
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2002-10-31
" URL: http://trific.ath.cx/Ftp/vim/syntax/gtkrc.vim

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

setlocal iskeyword=_,-,a-z,A-Z,48-57

syn case match

" Base constructs
syn match gtkrcComment "#.*$" contains=gtkrcFixme
syn keyword gtkrcFixme FIXME TODO XXX NOT contained
syn region gtkrcACString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline contains=gtkrcWPathSpecial,gtkrcClassName,gtkrcClassNameGnome contained
syn region gtkrcBString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline contains=gtkrcKeyMod contained
syn region gtkrcString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gtkrcStockName,gtkrcPathSpecial,gtkrcRGBColor
syn match gtkrcPathSpecial "<parent>" contained
syn match gtkrcWPathSpecial "[*?.]" contained
syn match gtkrcNumber "^\(\d\+\)\=\.\=\d\+"
syn match gtkrcNumber "\W\(\d\+\)\=\.\=\d\+"lc=1
syn match gtkrcRGBColor "#\(\x\{12}\|\x\{9}\|\x\{6}\|\x\{3}\)" contained
syn cluster gtkrcPRIVATE add=gtkrcFixme,gtkrcPathSpecial,gtkrcWPathSpecial,gtkrcRGBColor,gtkrcACString

" Keywords
syn keyword gtkrcInclude include
syn keyword gtkrcPathSet module_path pixmap_path
syn keyword gtkrcTop binding style
syn keyword gtkrcTop widget widget_class nextgroup=gtkrcACString skipwhite
syn keyword gtkrcTop class nextgroup=gtkrcACString skipwhite
syn keyword gtkrcBind bind nextgroup=gtkrcBString skipwhite
syn keyword gtkrcStateName NORMAL INSENSITIVE PRELIGHT ACTIVE SELECTED
syn keyword gtkrcPriorityName HIGHEST RC APPLICATION GTK LOWEST
syn keyword gtkrcPriorityName highest rc application gtk lowest
syn keyword gtkrcTextDirName LTR RTL
syn keyword gtkrcStyleKeyword fg bg fg_pixmap bg_pixmap bg_text base font font_name fontset stock text
syn match gtkrcKeyMod "<\(alt\|ctrl\|control\|mod[1-5]\|release\|shft\|shift\)>" contained
syn cluster gtkrcPRIVATE add=gtkrcKeyMod

" Enums and engine words
syn keyword gtkrcKeyword engine image
syn keyword gtkrcImage arrow_direction border detail file gap_border gap_end_border gap_end_file gap_file gap_side gap_side gap_start_border gap_start_file orientation overlay_border overlay_file overlay_stretch recolorable shadow state stretch thickness
syn keyword gtkrcConstant TRUE FALSE NONE IN OUT LEFT RIGHT TOP BOTTOM UP DOWN VERTICAL HORIZONTAL ETCHED_IN ETCHED_OUT
syn keyword gtkrcFunction function nextgroup=gtkrcFunctionEq skipwhite
syn match gtkrcFunctionEq "=" nextgroup=gtkrcFunctionName contained skipwhite
syn keyword gtkrcFunctionName ARROW BOX BOX_GAP CHECK CROSS DIAMOND EXTENSION FLAT_BOX FOCUS HANDLE HLINE OPTION OVAL POLYGON RAMP SHADOW SHADOW_GAP SLIDER STRING TAB VLINE contained
syn cluster gtkrcPRIVATE add=gtkrcFunctionName,gtkrcFunctionEq

" Class names
syn keyword gtkrcClassName GtkAccelLabel GtkAdjustment GtkAlignment GtkArrow GtkAspectFrame GtkBin GtkBox GtkButton GtkButtonBox GtkCList GtkCTree GtkCalendar GtkCheckButton GtkCheckMenuItem GtkColorSelection GtkColorSelectionDialog GtkCombo GtkContainer GtkCurve GtkData GtkDialog GtkDrawingArea GtkEditable GtkEntry GtkEventBox GtkFileSelection GtkFixed GtkFontSelection GtkFontSelectionDialog GtkFrame GtkGammaCurve GtkHBox GtkHButtonBox GtkHPaned GtkHRuler GtkHScale GtkHScrollbar GtkHSeparator GtkHandleBox GtkImage GtkImageMenuItem GtkInputDialog GtkInvisible GtkItem GtkItemFactory GtkLabel GtkLayout GtkList GtkListItem GtkMenu GtkMenuBar GtkMenuItem GtkMenuShell GtkMessageDialog GtkMisc GtkNotebook GtkObject GtkOptionMenu GtkPacker GtkPaned GtkPixmap GtkPlug GtkPreview GtkProgress GtkProgressBar GtkRadioButton GtkRadioMenuItem GtkRange GtkRuler GtkScale GtkScrollbar GtkScrolledWindow GtkSeparatorMenuItem GtkSocket GtkSpinButton GtkStatusbar GtkTable GtkTearoffMenuItem GtkText GtkTextBuffer GtkTextMark GtkTextTag GtkTextView GtkTipsQuery GtkToggleButton GtkToolbar GtkTooltips GtkTree GtkTreeView GtkTreeItem GtkVBox GtkVButtonBox GtkVPaned GtkVRuler GtkVScale GtkVScrollbar GtkVSeparator GtkViewport GtkWidget GtkWindow GtkWindowGroup contained
syn keyword gtkrcClassName AccelLabel Adjustment Alignment Arrow AspectFrame Bin Box Button ButtonBox CList CTree Calendar CheckButton CheckMenuItem ColorSelection ColorSelectionDialog Combo Container Curve Data Dialog DrawingArea Editable Entry EventBox FileSelection Fixed FontSelection FontSelectionDialog Frame GammaCurve HBox HButtonBox HPaned HRuler HScale HScrollbar HSeparator HandleBox Image ImageMenuItem InputDialog Invisible Item ItemFactory Label Layout List ListItem Menu MenuBar MenuItem MenuShell MessageDialog Misc Notebook Object OptionMenu Packer Paned Pixmap Plug Preview Progress ProgressBar RadioButton RadioMenuItem Range Ruler Scale Scrollbar ScrolledWindow SeparatorMenuItem Socket SpinButton Statusbar Table TearoffMenuItem Text TextBuffer TextMark TextTag TextView TipsQuery ToggleButton Toolbar Tooltips Tree TreeView TreeItem VBox VButtonBox VPaned VRuler VScale VScrollbar VSeparator Viewport Widget Window WindowGroup contained
syn keyword gtkrcClassNameGnome GnomeAbout GnomeAnimator GnomeApp GnomeAppBar GnomeCalculator GnomeCanvas GnomeCanvasEllipse GnomeCanvasGroup GnomeCanvasImage GnomeCanvasItem GnomeCanvasLine GnomeCanvasPolygon GnomeCanvasRE GnomeCanvasRect GnomeCanvasText GnomeCanvasWidget GnomeClient GnomeColorPicker GnomeDEntryEdit GnomeDateEdit GnomeDialog GnomeDock GnomeDockBand GnomeDockItem GnomeDockLayout GnomeDruid GnomeDruidPage GnomeDruidPageFinish GnomeDruidPageStandard GnomeDruidPageStart GnomeEntry GnomeFileEntry GnomeFontPicker GnomeFontSelector GnomeHRef GnomeIconEntry GnomeIconList GnomeIconSelection GnomeIconTextItem GnomeLess GnomeMDI GnomeMDIChild GnomeMDIGenericChild GnomeMessageBox GnomeNumberEntry GnomePaperSelector GnomePixmap GnomePixmapEntry GnomeProcBar GnomePropertyBox GnomeScores GnomeSpell GnomeStock GtkClock GtkDial GtkPixmapMenuItem GtkTed contained
syn cluster gtkrcPRIVATE add=gtkrcClassName,gtkrcClassNameGnome

" Stock item names
syn keyword gtkrcStockName gtk-add gtk-apply gtk-bold gtk-cancel gtk-cdrom gtk-clear gtk-close gtk-convert gtk-copy gtk-cut gtk-delete gtk-dialog-error gtk-dialog-info gtk-dialog-question gtk-dialog-warning gtk-dnd gtk-dnd-multiple gtk-execute gtk-find gtk-find-and-replace gtk-floppy gtk-goto-bottom gtk-goto-first gtk-goto-last gtk-goto-top gtk-go-back gtk-go-down gtk-go-forward gtk-go-up gtk-help gtk-home gtk-index gtk-italic gtk-jump-to gtk-justify-center gtk-justify-fill gtk-justify-left gtk-justify-right gtk-missing-image gtk-new gtk-no gtk-ok gtk-open gtk-paste gtk-preferences gtk-print gtk-print-preview gtk-properties gtk-quit gtk-redo gtk-refresh gtk-remove gtk-revert-to-saved gtk-save gtk-save-as gtk-select-color gtk-select-font gtk-sort-ascending gtk-sort-descending gtk-spell-check gtk-stop gtk-strikethrough gtk-undelete gtk-underline gtk-undo gtk-yes gtk-zoom-100 gtk-zoom-fit gtk-zoom-in gtk-zoom-out contained
syn cluster gtkrcPRIVATE add=gtkrcStockName

" Gtk Settings
syn keyword gtkrcSettingsName gtk-double-click-time gtk-cursor-blink gtk-cursor-blink-time gtk-split-cursor gtk-theme-name gtk-key-theme-name gtk-menu-bar-accel gtk-dnd-drag-threshold gtk-font-name gtk-color-palette gtk-entry-select-on-focus gtk-can-change-accels gtk-toolbar-style gtk-toolbar-icon-size
syn cluster gtkrcPRIVATE add=gtkrcSettingsName

" Catch errors caused by wrong parenthesization
syn region gtkrcParen start='(' end=')' transparent contains=ALLBUT,gtkrcParenError,@gtkrcPRIVATE
syn match gtkrcParenError ")"
syn region gtkrcBrace start='{' end='}' transparent contains=ALLBUT,gtkrcBraceError,@gtkrcPRIVATE
syn match gtkrcBraceError "}"
syn region gtkrcBracket start='\[' end=']' transparent contains=ALLBUT,gtkrcBracketError,@gtkrcPRIVATE
syn match gtkrcBracketError "]"

" Synchronization
syn sync minlines=50
syn sync match gtkrcSyncClass groupthere NONE "^\s*class\>"

" Define the default highlighting

hi def link gtkrcComment Comment
hi def link gtkrcFixme Todo

hi def link gtkrcInclude Preproc

hi def link gtkrcACString gtkrcString
hi def link gtkrcBString gtkrcString
hi def link gtkrcString String
hi def link gtkrcNumber Number
hi def link gtkrcStateName gtkrcConstant
hi def link gtkrcPriorityName gtkrcConstant
hi def link gtkrcTextDirName gtkrcConstant
hi def link gtkrcSettingsName Function
hi def link gtkrcStockName Function
hi def link gtkrcConstant Constant

hi def link gtkrcPathSpecial gtkrcSpecial
hi def link gtkrcWPathSpecial gtkrcSpecial
hi def link gtkrcRGBColor gtkrcSpecial
hi def link gtkrcKeyMod gtkrcSpecial
hi def link gtkrcSpecial Special

hi def link gtkrcTop gtkrcKeyword
hi def link gtkrcPathSet gtkrcKeyword
hi def link gtkrcStyleKeyword gtkrcKeyword
hi def link gtkrcFunction gtkrcKeyword
hi def link gtkrcBind gtkrcKeyword
hi def link gtkrcKeyword Keyword

hi def link gtkrcClassNameGnome gtkrcGtkClass
hi def link gtkrcClassName gtkrcGtkClass
hi def link gtkrcFunctionName gtkrcGtkClass
hi def link gtkrcGtkClass Type

hi def link gtkrcImage gtkrcOtherword
hi def link gtkrcOtherword Function

hi def link gtkrcParenError gtkrcError
hi def link gtkrcBraceError gtkrcError
hi def link gtkrcBracketError gtkrcError
hi def link gtkrcError Error


let b:current_syntax = "gtkrc"
PK�j�ZH�D��vim80/syntax/synload.vimnu�[���" Vim syntax support file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2016 Nov 04

" This file sets up for syntax highlighting.
" It is loaded from "syntax.vim" and "manual.vim".
" 1. Set the default highlight groups.
" 2. Install Syntax autocommands for all the available syntax files.

if !has("syntax")
  finish
endif

" let others know that syntax has been switched on
let syntax_on = 1

" Set the default highlighting colors.  Use a color scheme if specified.
if exists("colors_name")
  exe "colors " . colors_name
else
  runtime! syntax/syncolor.vim
endif

" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim

" First remove all old syntax autocommands.
au! Syntax

au Syntax *		call s:SynSet()

fun! s:SynSet()
  " clear syntax for :set syntax=OFF  and any syntax name that doesn't exist
  syn clear
  if exists("b:current_syntax")
    unlet b:current_syntax
  endif

  let s = expand("<amatch>")
  if s == "ON"
    " :set syntax=ON
    if &filetype == ""
      echohl ErrorMsg
      echo "filetype unknown"
      echohl None
    endif
    let s = &filetype
  elseif s == "OFF"
    let s = ""
  endif

  if s != ""
    " Load the syntax file(s).  When there are several, separated by dots,
    " load each in sequence.
    for name in split(s, '\.')
      exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim"
    endfor
  endif
endfun


" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript)
au Syntax c,cpp,cs,idl,java,php,datascript
	\ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)
	\	|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)
	\   | runtime! syntax/doxygen.vim
	\ | endif


" Source the user-specified syntax highlighting file
if exists("mysyntaxfile")
  let s:fname = expand(mysyntaxfile)
  if filereadable(s:fname)
    execute "source " . fnameescape(s:fname)
  endif
endif

" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z^��*�*vim80/syntax/asciidoc.vimnu�[���" Vim syntax file
" Language:     AsciiDoc
" Author:       Stuart Rackham <srackham@gmail.com> (inspired by Felix
"               Obenhuber's original asciidoc.vim script).
" URL:          http://asciidoc.org/
" Licence:      GPL (http://www.gnu.org)
" Remarks:      Vim 6 or greater
" Last Update:  2014 Aug 29 (see Issue 240)
" Limitations:
" 
" - Nested quoted text formatting is highlighted according to the outer
"   format.
" - If a closing Example Block delimiter may be mistaken for a title
"   underline. A workaround is to insert a blank line before the closing
"   delimiter.
" - Lines within a paragraph starting with equals characters are
"   highlighted as single-line titles.
" - Lines within a paragraph beginning with a period are highlighted as
"   block titles.


if exists("b:current_syntax")
  finish
endif

syn clear
syn sync fromstart
syn sync linebreaks=100

" Run :help syn-priority to review syntax matching priority.
syn keyword asciidocToDo TODO FIXME CHECK TEST XXX ZZZ DEPRECATED
syn match asciidocBackslash /\\/
syn region asciidocIdMarker start=/^\$Id:\s/ end=/\s\$$/
syn match asciidocCallout /\\\@<!<\d\{1,2}>/
syn match asciidocOpenBlockDelimiter /^--$/
syn match asciidocLineBreak /[ \t]+$/ containedin=asciidocList
syn match asciidocRuler /^'\{3,}$/
syn match asciidocPagebreak /^<\{3,}$/
syn match asciidocEntityRef /\\\@<!&[#a-zA-Z]\S\{-};/
syn region asciidocLiteralParagraph start=/\(\%^\|\_^\s*\n\)\@<=\s\+\S\+/ end=/\(^\(+\|--\)\?\s*$\)\@=/ contains=asciidocToDo
syn match asciidocURL /\\\@<!\<\(http\|https\|ftp\|file\|irc\):\/\/[^| \t]*\(\w\|\/\)/
syn match asciidocEmail /[\\.:]\@<!\(\<\|<\)\w\(\w\|[.-]\)*@\(\w\|[.-]\)*\w>\?[0-9A-Za-z_]\@!/
syn match asciidocAttributeRef /\\\@<!{\w\(\w\|[-,+]\)*\([=!@#$%?:].*\)\?}/

" As a damage control measure quoted patterns always terminate at a blank
" line (see 'Limitations' above).
syn match asciidocQuotedAttributeList /\\\@<!\[[a-zA-Z0-9_-][a-zA-Z0-9 _-]*\][+_'`#*]\@=/
syn match asciidocQuotedSubscript /\\\@<!\~\S\_.\{-}\(\~\|\n\s*\n\)/ contains=asciidocEntityRef
syn match asciidocQuotedSuperscript /\\\@<!\^\S\_.\{-}\(\^\|\n\s*\n\)/ contains=asciidocEntityRef

syn match asciidocQuotedMonospaced /\(^\|[| \t([.,=\]]\)\@<=+\([+ \n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(+\([| \t)[\],.?!;:=]\|$\)\@=\)/ contains=asciidocEntityRef
syn match asciidocQuotedMonospaced2 /\(^\|[| \t([.,=\]]\)\@<=`\([` \n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(`\([| \t)[\],.?!;:=]\|$\)\@=\)/
syn match asciidocQuotedUnconstrainedMonospaced /[\\+]\@<!++\S\_.\{-}\(++\|\n\s*\n\)/ contains=asciidocEntityRef

syn match asciidocQuotedEmphasized /\(^\|[| \t([.,=\]]\)\@<=_\([_ \n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(_\([| \t)[\],.?!;:=]\|$\)\@=\)/ contains=asciidocEntityRef
syn match asciidocQuotedEmphasized2 /\(^\|[| \t([.,=\]]\)\@<='\([' \n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\('\([| \t)[\],.?!;:=]\|$\)\@=\)/ contains=asciidocEntityRef
syn match asciidocQuotedUnconstrainedEmphasized /\\\@<!__\S\_.\{-}\(__\|\n\s*\n\)/ contains=asciidocEntityRef

syn match asciidocQuotedBold /\(^\|[| \t([.,=\]]\)\@<=\*\([* \n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(\*\([| \t)[\],.?!;:=]\|$\)\@=\)/ contains=asciidocEntityRef
syn match asciidocQuotedUnconstrainedBold /\\\@<!\*\*\S\_.\{-}\(\*\*\|\n\s*\n\)/ contains=asciidocEntityRef

" Don't allow ` in single quoted (a kludge to stop confusion with `monospaced`).
syn match asciidocQuotedSingleQuoted /\(^\|[| \t([.,=\]]\)\@<=`\([` \n\t]\)\@!\([^`]\|\n\(\s*\n\)\@!\)\{-}[^` \t]\('\([| \t)[\],.?!;:=]\|$\)\@=\)/ contains=asciidocEntityRef

syn match asciidocQuotedDoubleQuoted /\(^\|[| \t([.,=\]]\)\@<=``\([` \n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(''\([| \t)[\],.?!;:=]\|$\)\@=\)/ contains=asciidocEntityRef

syn match asciidocDoubleDollarPassthrough /\\\@<!\(^\|[^0-9a-zA-Z$]\)\@<=\$\$..\{-}\(\$\$\([^0-9a-zA-Z$]\|$\)\@=\|^$\)/
syn match asciidocTriplePlusPassthrough /\\\@<!\(^\|[^0-9a-zA-Z$]\)\@<=+++..\{-}\(+++\([^0-9a-zA-Z$]\|$\)\@=\|^$\)/

syn match asciidocAdmonition /^\u\{3,15}:\(\s\+.*\)\@=/

syn region asciidocTable_OLD start=/^\([`.']\d*[-~_]*\)\+[-~_]\+\d*$/ end=/^$/
syn match asciidocBlockTitle /^\.[^. \t].*[^-~_]$/ contains=asciidocQuoted.*,asciidocAttributeRef
syn match asciidocTitleUnderline /[-=~^+]\{2,}$/ transparent contained contains=NONE
syn match asciidocOneLineTitle /^=\{1,5}\s\+\S.*$/ contains=asciidocQuoted.*,asciidocMacroAttributes,asciidocAttributeRef,asciidocEntityRef,asciidocEmail,asciidocURL,asciidocBackslash
syn match asciidocTwoLineTitle /^[^. +/].*[^.]\n[-=~^+]\{3,}$/ contains=asciidocQuoted.*,asciidocMacroAttributes,asciidocAttributeRef,asciidocEntityRef,asciidocEmail,asciidocURL,asciidocBackslash,asciidocTitleUnderline

syn match asciidocAttributeList /^\[[^[ \t].*\]$/
syn match asciidocQuoteBlockDelimiter /^_\{4,}$/
syn match asciidocExampleBlockDelimiter /^=\{4,}$/
syn match asciidocSidebarDelimiter /^*\{4,}$/

" See http://vimdoc.sourceforge.net/htmldoc/usr_44.html for excluding region
" contents from highlighting.
syn match asciidocTablePrefix /\(\S\@<!\(\([0-9.]\+\)\([*+]\)\)\?\([<\^>.]\{,3}\)\?\([a-z]\)\?\)\?|/ containedin=asciidocTableBlock contained
syn region asciidocTableBlock matchgroup=asciidocTableDelimiter start=/^|=\{3,}$/ end=/^|=\{3,}$/ keepend contains=ALL
syn match asciidocTablePrefix /\(\S\@<!\(\([0-9.]\+\)\([*+]\)\)\?\([<\^>.]\{,3}\)\?\([a-z]\)\?\)\?!/ containedin=asciidocTableBlock contained
syn region asciidocTableBlock2 matchgroup=asciidocTableDelimiter2 start=/^!=\{3,}$/ end=/^!=\{3,}$/ keepend contains=ALL

syn match asciidocListContinuation /^+$/
syn region asciidocLiteralBlock start=/^\.\{4,}$/ end=/^\.\{4,}$/ contains=asciidocCallout,asciidocToDo keepend
syn region asciidocListingBlock start=/^-\{4,}$/ end=/^-\{4,}$/ contains=asciidocCallout,asciidocToDo keepend
syn region asciidocCommentBlock start="^/\{4,}$" end="^/\{4,}$" contains=asciidocToDo
syn region asciidocPassthroughBlock start="^+\{4,}$" end="^+\{4,}$"

" Allowing leading \w characters in the filter delimiter is to accomodate
" the pre version 8.2.7 syntax and may be removed in future releases.
syn region asciidocFilterBlock start=/^\w*\~\{4,}$/ end=/^\w*\~\{4,}$/

syn region asciidocMacroAttributes matchgroup=asciidocRefMacro start=/\\\@<!<<"\{-}\(\w\|-\|_\|:\|\.\)\+"\?,\?/ end=/\(>>\)\|^$/ contains=asciidocQuoted.* keepend
syn region asciidocMacroAttributes matchgroup=asciidocAnchorMacro start=/\\\@<!\[\{2}\(\w\|-\|_\|:\|\.\)\+,\?/ end=/\]\{2}/ keepend
syn region asciidocMacroAttributes matchgroup=asciidocAnchorMacro start=/\\\@<!\[\{3}\(\w\|-\|_\|:\|\.\)\+/ end=/\]\{3}/ keepend
syn region asciidocMacroAttributes matchgroup=asciidocMacro start=/[\\0-9a-zA-Z]\@<!\w\(\w\|-\)*:\S\{-}\[/ skip=/\\\]/ end=/\]\|^$/ contains=asciidocQuoted.*,asciidocAttributeRef,asciidocEntityRef keepend
" Highlight macro that starts with an attribute reference (a common idiom).
syn region asciidocMacroAttributes matchgroup=asciidocMacro start=/\(\\\@<!{\w\(\w\|[-,+]\)*\([=!@#$%?:].*\)\?}\)\@<=\S\{-}\[/ skip=/\\\]/ end=/\]\|^$/ contains=asciidocQuoted.*,asciidocAttributeRef keepend
syn region asciidocMacroAttributes matchgroup=asciidocIndexTerm start=/\\\@<!(\{2,3}/ end=/)\{2,3}/ contains=asciidocQuoted.*,asciidocAttributeRef keepend

syn match asciidocCommentLine "^//\([^/].*\|\)$" contains=asciidocToDo

syn region asciidocAttributeEntry start=/^:\w/ end=/:\(\s\|$\)/ oneline

" Lists.
syn match asciidocListBullet /^\s*\zs\(-\|\*\{1,5}\)\ze\s/
syn match asciidocListNumber /^\s*\zs\(\(\d\+\.\)\|\.\{1,5}\|\(\a\.\)\|\([ivxIVX]\+)\)\)\ze\s\+/
syn region asciidocListLabel start=/^\s*/ end=/\(:\{2,4}\|;;\)$/ oneline contains=asciidocQuoted.*,asciidocMacroAttributes,asciidocAttributeRef,asciidocEntityRef,asciidocEmail,asciidocURL,asciidocBackslash,asciidocToDo keepend
" DEPRECATED: Horizontal label.
syn region asciidocHLabel start=/^\s*/ end=/\(::\|;;\)\(\s\+\|\\$\)/ oneline contains=asciidocQuoted.*,asciidocMacroAttributes keepend
" Starts with any of the above.
syn region asciidocList start=/^\s*\(-\|\*\{1,5}\)\s/ start=/^\s*\(\(\d\+\.\)\|\.\{1,5}\|\(\a\.\)\|\([ivxIVX]\+)\)\)\s\+/ start=/.\+\(:\{2,4}\|;;\)$/ end=/\(^[=*]\{4,}$\)\@=/ end=/\(^\(+\|--\)\?\s*$\)\@=/ contains=asciidocList.\+,asciidocQuoted.*,asciidocMacroAttributes,asciidocAttributeRef,asciidocEntityRef,asciidocEmail,asciidocURL,asciidocBackslash,asciidocCommentLine,asciidocAttributeList,asciidocToDo

hi def link asciidocAdmonition Special
hi def link asciidocAnchorMacro Macro
hi def link asciidocAttributeEntry Special
hi def link asciidocAttributeList Special
hi def link asciidocAttributeMacro Macro
hi def link asciidocAttributeRef Special
hi def link asciidocBackslash Special
hi def link asciidocBlockTitle Title
hi def link asciidocCallout Label
hi def link asciidocCommentBlock Comment
hi def link asciidocCommentLine Comment
hi def link asciidocDoubleDollarPassthrough Special
hi def link asciidocEmail Macro
hi def link asciidocEntityRef Special
hi def link asciidocExampleBlockDelimiter Type
hi def link asciidocFilterBlock Type
hi def link asciidocHLabel Label
hi def link asciidocIdMarker Special
hi def link asciidocIndexTerm Macro
hi def link asciidocLineBreak Special
hi def link asciidocOpenBlockDelimiter Label
hi def link asciidocListBullet Label
hi def link asciidocListContinuation Label
hi def link asciidocListingBlock Identifier
hi def link asciidocListLabel Label
hi def link asciidocListNumber Label
hi def link asciidocLiteralBlock Identifier
hi def link asciidocLiteralParagraph Identifier
hi def link asciidocMacroAttributes Label
hi def link asciidocMacro Macro
hi def link asciidocOneLineTitle Title
hi def link asciidocPagebreak Type
hi def link asciidocPassthroughBlock Identifier
hi def link asciidocQuoteBlockDelimiter Type
hi def link asciidocQuotedAttributeList Special
hi def link asciidocQuotedBold Special
hi def link asciidocQuotedDoubleQuoted Label
hi def link asciidocQuotedEmphasized2 Type
hi asciidocQuotedEmphasizedItalic term=italic cterm=italic gui=italic
hi def link asciidocQuotedEmphasized asciidocQuotedEmphasizedItalic
hi def link asciidocQuotedMonospaced2 Identifier
hi def link asciidocQuotedMonospaced Identifier
hi def link asciidocQuotedSingleQuoted Label
hi def link asciidocQuotedSubscript Type
hi def link asciidocQuotedSuperscript Type
hi def link asciidocQuotedUnconstrainedBold Special
hi def link asciidocQuotedUnconstrainedEmphasized Type
hi def link asciidocQuotedUnconstrainedMonospaced Identifier
hi def link asciidocRefMacro Macro
hi def link asciidocRuler Type
hi def link asciidocSidebarDelimiter Type
hi def link asciidocTableBlock2 NONE
hi def link asciidocTableBlock NONE
hi def link asciidocTableDelimiter2 Label
hi def link asciidocTableDelimiter Label
hi def link asciidocTable_OLD Type
hi def link asciidocTablePrefix2 Label
hi def link asciidocTablePrefix Label
hi def link asciidocToDo Todo
hi def link asciidocTriplePlusPassthrough Special
hi def link asciidocTwoLineTitle Title
hi def link asciidocURL Macro
let b:current_syntax = "asciidoc"

" vim: wrap et sw=2 sts=2:
PK�j�ZZJ��ttvim80/syntax/markdown.vimnu�[���" Vim syntax file
" Language:     Markdown
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Filenames:    *.markdown
" Last Change:  2016 Aug 29

if exists("b:current_syntax")
  finish
endif

if !exists('main_syntax')
  let main_syntax = 'markdown'
endif

runtime! syntax/html.vim
unlet! b:current_syntax

if !exists('g:markdown_fenced_languages')
  let g:markdown_fenced_languages = []
endif
for s:type in map(copy(g:markdown_fenced_languages),'matchstr(v:val,"[^=]*$")')
  if s:type =~ '\.'
    let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*')
  endif
  exe 'syn include @markdownHighlight'.substitute(s:type,'\.','','g').' syntax/'.matchstr(s:type,'[^.]*').'.vim'
  unlet! b:current_syntax
endfor
unlet! s:type

syn sync minlines=10
syn case ignore

syn match markdownValid '[<>]\c[a-z/$!]\@!'
syn match markdownValid '&\%(#\=\w*;\)\@!'

syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock,htmlSpecialChar

syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule
syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop,markdownError

syn match markdownH1 "^.\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink
syn match markdownH2 "^.\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink

syn match markdownHeadingRule "^[=-]\+$" contained

syn region markdownH1 matchgroup=markdownHeadingDelimiter start="##\@!"      end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH2 matchgroup=markdownHeadingDelimiter start="###\@!"     end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH3 matchgroup=markdownHeadingDelimiter start="####\@!"    end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH4 matchgroup=markdownHeadingDelimiter start="#####\@!"   end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH5 matchgroup=markdownHeadingDelimiter start="######\@!"  end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH6 matchgroup=markdownHeadingDelimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained

syn match markdownBlockquote ">\%(\s\|$\)" contained nextgroup=@markdownBlock

syn region markdownCodeBlock start="    \|\t" end="$" contained

" TODO: real nesting
syn match markdownListMarker "\%(\t\| \{0,4\}\)[-*+]\%(\s\+\S\)\@=" contained
syn match markdownOrderedListMarker "\%(\t\| \{0,4}\)\<\d\+\.\%(\s\+\S\)\@=" contained

syn match markdownRule "\* *\* *\*[ *]*$" contained
syn match markdownRule "- *- *-[ -]*$" contained

syn match markdownLineBreak " \{2,\}$"

syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite
syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained
syn region markdownUrl matchgroup=markdownUrlDelimiter start="<" end=">" oneline keepend nextgroup=markdownUrlTitle skipwhite contained
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+"+ keepend contained
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained

syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^]]*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart
syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained
syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained
syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline

let s:concealends = has('conceal') ? ' concealends' : ''
exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart' . s:concealends
exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart' . s:concealends
exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart,markdownItalic' . s:concealends
exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart,markdownItalic' . s:concealends
exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart' . s:concealends
exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart' . s:concealends

syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*```.*$" end="^\s*```\ze\s*$" keepend

syn match markdownFootnote "\[^[^\]]\+\]"
syn match markdownFootnoteDefinition "^\[^[^\]]\+\]:"

if main_syntax ==# 'markdown'
  for s:type in g:markdown_fenced_languages
    exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```\s*'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
  endfor
  unlet! s:type
endif

syn match markdownEscape "\\[][\\`*_{}()<>#+.!-]"
syn match markdownError "\w\@<=_\w\@="

hi def link markdownH1                    htmlH1
hi def link markdownH2                    htmlH2
hi def link markdownH3                    htmlH3
hi def link markdownH4                    htmlH4
hi def link markdownH5                    htmlH5
hi def link markdownH6                    htmlH6
hi def link markdownHeadingRule           markdownRule
hi def link markdownHeadingDelimiter      Delimiter
hi def link markdownOrderedListMarker     markdownListMarker
hi def link markdownListMarker            htmlTagName
hi def link markdownBlockquote            Comment
hi def link markdownRule                  PreProc

hi def link markdownFootnote              Typedef
hi def link markdownFootnoteDefinition    Typedef

hi def link markdownLinkText              htmlLink
hi def link markdownIdDeclaration         Typedef
hi def link markdownId                    Type
hi def link markdownAutomaticLink         markdownUrl
hi def link markdownUrl                   Float
hi def link markdownUrlTitle              String
hi def link markdownIdDelimiter           markdownLinkDelimiter
hi def link markdownUrlDelimiter          htmlTag
hi def link markdownUrlTitleDelimiter     Delimiter

hi def link markdownItalic                htmlItalic
hi def link markdownItalicDelimiter       markdownItalic
hi def link markdownBold                  htmlBold
hi def link markdownBoldDelimiter         markdownBold
hi def link markdownBoldItalic            htmlBoldItalic
hi def link markdownBoldItalicDelimiter   markdownBoldItalic
hi def link markdownCodeDelimiter         Delimiter

hi def link markdownEscape                Special
hi def link markdownError                 Error

let b:current_syntax = "markdown"
if main_syntax ==# 'markdown'
  unlet main_syntax
endif

" vim:set sw=2:
PK�j�Z���5�C�Cvim80/syntax/diff.vimnu�[���" Vim syntax file
" Language:	Diff (context or unified)
" Maintainer:	Bram Moolenaar <Bram@vim.org>
"               Translations by Jakson Alves de Aquino.
" Last Change:	2016 Apr 02

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
scriptencoding utf-8

syn match diffOnly	"^Only in .*"
syn match diffIdentical	"^Files .* and .* are identical$"
syn match diffDiffer	"^Files .* and .* differ$"
syn match diffBDiffer	"^Binary files .* and .* differ$"
syn match diffIsA	"^File .* is a .* while file .* is a .*"
syn match diffNoEOL	"^\\ No newline at end of file .*"
syn match diffCommon	"^Common subdirectories: .*"

" Disable the translations by setting diff_translations to zero.
if !exists("diff_translations") || diff_translations

" ca
syn match diffOnly	"^Només a .*"
syn match diffIdentical	"^Els fitxers .* i .* són idèntics$"
syn match diffDiffer	"^Els fitxers .* i .* difereixen$"
syn match diffBDiffer	"^Els fitxers .* i .* difereixen$"
syn match diffIsA	"^El fitxer .* és un .* mentre que el fitxer .* és un .*"
syn match diffNoEOL	"^\\ No hi ha cap caràcter de salt de línia al final del fitxer"
syn match diffCommon	"^Subdirectoris comuns: .* i .*"

" cs
syn match diffOnly	"^Pouze v .*"
syn match diffIdentical	"^Soubory .* a .* jsou identické$"
syn match diffDiffer	"^Soubory .* a .* jsou různé$"
syn match diffBDiffer	"^Binární soubory .* a .* jsou rozdílné$"
syn match diffBDiffer	"^Soubory .* a .* jsou různé$"
syn match diffIsA	"^Soubor .* je .* pokud soubor .* je .*"
syn match diffNoEOL	"^\\ Chybí znak konce řádku na konci souboru"
syn match diffCommon	"^Společné podadresáře: .* a .*"

" da
syn match diffOnly	"^Kun i .*"
syn match diffIdentical	"^Filerne .* og .* er identiske$"
syn match diffDiffer	"^Filerne .* og .* er forskellige$"
syn match diffBDiffer	"^Binære filer .* og .* er forskellige$"
syn match diffIsA	"^Filen .* er en .* mens filen .* er en .*"
syn match diffNoEOL	"^\\ Intet linjeskift ved filafslutning"
syn match diffCommon	"^Identiske underkataloger: .* og .*"

" de
syn match diffOnly	"^Nur in .*"
syn match diffIdentical	"^Dateien .* und .* sind identisch.$"
syn match diffDiffer	"^Dateien .* und .* sind verschieden.$"
syn match diffBDiffer	"^Binärdateien .* and .* sind verschieden.$"
syn match diffBDiffer	"^Binärdateien .* und .* sind verschieden.$"
syn match diffIsA	"^Datei .* ist ein .* während Datei .* ein .* ist.$"
syn match diffNoEOL	"^\\ Kein Zeilenumbruch am Dateiende."
syn match diffCommon	"^Gemeinsame Unterverzeichnisse: .* und .*.$"

" el
syn match diffOnly	"^Μόνο στο .*"
syn match diffIdentical	"^Τα αρχεία .* καί .* είναι πανομοιότυπα$"
syn match diffDiffer	"^Τα αρχεία .* και .* διαφέρουν$"
syn match diffBDiffer	"^Τα αρχεία .* και .* διαφέρουν$"
syn match diffIsA	"^Το αρχείο .* είναι .* ενώ το αρχείο .* είναι .*"
syn match diffNoEOL	"^\\ Δεν υπάρχει χαρακτήρας νέας γραμμής στο τέλος του αρχείου"
syn match diffCommon	"^Οι υποκατάλογοι .* και .* είναι ταυτόσημοι$"

" eo
syn match diffOnly	"^Nur en .*"
syn match diffIdentical	"^Dosieroj .* kaj .* estas samaj$"
syn match diffDiffer	"^Dosieroj .* kaj .* estas malsamaj$"
syn match diffBDiffer	"^Dosieroj .* kaj .* estas malsamaj$"
syn match diffIsA	"^Dosiero .* estas .*, dum dosiero .* estas .*"
syn match diffNoEOL	"^\\ Mankas linifino ĉe fino de dosiero"
syn match diffCommon	"^Komunaj subdosierujoj: .* kaj .*"

" es
syn match diffOnly	"^Sólo en .*"
syn match diffIdentical	"^Los ficheros .* y .* son idénticos$"
syn match diffDiffer	"^Los ficheros .* y .* son distintos$"
syn match diffBDiffer	"^Los ficheros binarios .* y .* son distintos$"
syn match diffIsA	"^El fichero .* es un .* mientras que el .* es un .*"
syn match diffNoEOL	"^\\ No hay ningún carácter de nueva línea al final del fichero"
syn match diffCommon	"^Subdirectorios comunes: .* y .*"

" fi
syn match diffOnly	"^Vain hakemistossa .*"
syn match diffIdentical	"^Tiedostot .* ja .* ovat identtiset$"
syn match diffDiffer	"^Tiedostot .* ja .* eroavat$"
syn match diffBDiffer	"^Binääritiedostot .* ja .* eroavat$"
syn match diffIsA	"^Tiedosto .* on .*, kun taas tiedosto .* on .*"
syn match diffNoEOL	"^\\ Ei rivinvaihtoa tiedoston lopussa"
syn match diffCommon	"^Yhteiset alihakemistot: .* ja .*"

" fr
syn match diffOnly	"^Seulement dans .*"
syn match diffIdentical	"^Les fichiers .* et .* sont identiques.*"
syn match diffDiffer	"^Les fichiers .* et .* sont différents.*"
syn match diffBDiffer	"^Les fichiers binaires .* et .* sont différents.*"
syn match diffIsA	"^Le fichier .* est un .* alors que le fichier .* est un .*"
syn match diffNoEOL	"^\\ Pas de fin de ligne à la fin du fichier.*"
syn match diffCommon	"^Les sous-répertoires .* et .* sont identiques.*"

" ga
syn match diffOnly	"^I .* amháin: .*"
syn match diffIdentical	"^Is comhionann iad na comhaid .* agus .*"
syn match diffDiffer	"^Tá difríocht idir na comhaid .* agus .*"
syn match diffBDiffer	"^Tá difríocht idir na comhaid .* agus .*"
syn match diffIsA	"^Tá comhad .* ina .* ach tá comhad .* ina .*"
syn match diffNoEOL	"^\\ Gan líne nua ag an chomhadchríoch"
syn match diffCommon	"^Fochomhadlanna i gcoitianta: .* agus .*"

" gl
syn match diffOnly	"^Só en .*"
syn match diffIdentical	"^Os ficheiros .* e .* son idénticos$"
syn match diffDiffer	"^Os ficheiros .* e .* son diferentes$"
syn match diffBDiffer	"^Os ficheiros binarios .* e .* son diferentes$"
syn match diffIsA	"^O ficheiro .* é un .* mentres que o ficheiro .* é un .*"
syn match diffNoEOL	"^\\ Non hai un salto de liña na fin da liña"
syn match diffCommon	"^Subdirectorios comúns: .* e .*"

" he
" ^.* are expansive patterns for long lines, so disabled unless we can match
" some specific hebrew chars
if search('\%u05d5\|\%u05d1', 'nw', '', 100)
  syn match diffOnly	"^.*-ב קר אצמנ .*"
  syn match diffIdentical	"^םיהז םניה .*-ו .* םיצבקה$"
  syn match diffDiffer	"^הזמ הז םינוש `.*'-ו `.*' םיצבקה$"
  syn match diffBDiffer	"^הזמ הז םינוש `.*'-ו `.*' םיירניב םיצבק$"
  syn match diffIsA	"^.* .*-ל .* .* תוושהל ןתינ אל$"
  syn match diffNoEOL	"^\\ ץבוקה ףוסב השד.-הרוש ות רס."
  syn match diffCommon	"^.*-ו .* :תוהז תויקית-תת$"
endif

" hr
syn match diffOnly	"^Samo u .*"
syn match diffIdentical	"^Datoteke .* i .* su identične$"
syn match diffDiffer	"^Datoteke .* i .* se razlikuju$"
syn match diffBDiffer	"^Binarne datoteke .* i .* se razlikuju$"
syn match diffIsA	"^Datoteka .* je .*, a datoteka .* je .*"
syn match diffNoEOL	"^\\ Nema novog retka na kraju datoteke"
syn match diffCommon	"^Uobičajeni poddirektoriji: .* i .*"

" hu
syn match diffOnly	"^Csak .* -ben: .*"
syn match diffIdentical	"^.* és .* fájlok azonosak$"
syn match diffDiffer	"^A(z) .* és a(z) .* fájlok különböznek$"
syn match diffBDiffer	"^A(z) .* és a(z) .* fájlok különböznek$"
syn match diffIsA	"^A(z) .* fájl egy .*, viszont a(z) .* fájl egy .*"
syn match diffNoEOL	"^\\ Nincs újsor a fájl végén"
syn match diffCommon	"^Közös alkönyvtárak: .* és .*"

" id
syn match diffOnly	"^Hanya dalam .*"
syn match diffIdentical	"^File .* dan .* identik$"
syn match diffDiffer	"^Berkas .* dan .* berbeda$"
syn match diffBDiffer	"^File biner .* dan .* berbeda$"
syn match diffIsA	"^File .* adalah .* sementara file .* adalah .*"
syn match diffNoEOL	"^\\ Tidak ada baris-baru di akhir dari berkas"
syn match diffCommon	"^Subdirektori sama: .* dan .*"

" it
syn match diffOnly	"^Solo in .*"
syn match diffIdentical	"^I file .* e .* sono identici$"
syn match diffDiffer	"^I file .* e .* sono diversi$"
syn match diffBDiffer	"^I file .* e .* sono diversi$"
syn match diffBDiffer	"^I file binari .* e .* sono diversi$"
syn match diffIsA	"^File .* è un .* mentre file .* è un .*"
syn match diffNoEOL	"^\\ Manca newline alla fine del file"
syn match diffCommon	"^Sottodirectory in comune: .* e .*"

" ja
syn match diffOnly	"^.*だけに発見: .*"
syn match diffIdentical	"^ファイル.*と.*は同一$"
syn match diffDiffer	"^ファイル.*と.*は違います$"
syn match diffBDiffer	"^バイナリー・ファイル.*と.*は違います$"
syn match diffIsA	"^ファイル.*は.*、ファイル.*は.*"
syn match diffNoEOL	"^\\ ファイル末尾に改行がありません"
syn match diffCommon	"^共通の下位ディレクトリー: .*と.*"

" ja DiffUtils 3.3
syn match diffOnly	"^.* のみに存在: .*"
syn match diffIdentical	"^ファイル .* と .* は同一です$"
syn match diffDiffer	"^ファイル .* と .* は異なります$"
syn match diffBDiffer	"^バイナリーファイル .* と.* は異なります$"
syn match diffIsA	"^ファイル .* は .* です。一方、ファイル .* は .* です$"
syn match diffNoEOL	"^\\ ファイル末尾に改行がありません"
syn match diffCommon	"^共通のサブディレクトリー: .* と .*"

" lv
syn match diffOnly	"^Tikai iekš .*"
syn match diffIdentical	"^Fails .* un .* ir identiski$"
syn match diffDiffer	"^Faili .* un .* atšķiras$"
syn match diffBDiffer	"^Faili .* un .* atšķiras$"
syn match diffBDiffer	"^Binārie faili .* un .* atšķiras$"
syn match diffIsA	"^Fails .* ir .* kamēr fails .* ir .*"
syn match diffNoEOL	"^\\ Nav jaunu rindu faila beigās"
syn match diffCommon	"^Kopējās apakšdirektorijas: .* un .*"

" ms
syn match diffOnly	"^Hanya dalam .*"
syn match diffIdentical	"^Fail .* dan .* adalah serupa$"
syn match diffDiffer	"^Fail .* dan .* berbeza$"
syn match diffBDiffer	"^Fail .* dan .* berbeza$"
syn match diffIsA	"^Fail .* adalah .* manakala fail .* adalah .*"
syn match diffNoEOL	"^\\ Tiada baris baru pada penghujung fail"
syn match diffCommon	"^Subdirektori umum: .* dan .*"

" nl
syn match diffOnly	"^Alleen in .*"
syn match diffIdentical	"^Bestanden .* en .* zijn identiek$"
syn match diffDiffer	"^Bestanden .* en .* zijn verschillend$"
syn match diffBDiffer	"^Bestanden .* en .* zijn verschillend$"
syn match diffBDiffer	"^Binaire bestanden .* en .* zijn verschillend$"
syn match diffIsA	"^Bestand .* is een .* terwijl bestand .* een .* is$"
syn match diffNoEOL	"^\\ Geen regeleindeteken (LF) aan einde van bestand"
syn match diffCommon	"^Gemeenschappelijke submappen: .* en .*"

" pl
syn match diffOnly	"^Tylko w .*"
syn match diffIdentical	"^Pliki .* i .* są identyczne$"
syn match diffDiffer	"^Pliki .* i .* różnią się$"
syn match diffBDiffer	"^Pliki .* i .* różnią się$"
syn match diffBDiffer	"^Binarne pliki .* i .* różnią się$"
syn match diffIsA	"^Plik .* jest .*, podczas gdy plik .* jest .*"
syn match diffNoEOL	"^\\ Brak znaku nowej linii na końcu pliku"
syn match diffCommon	"^Wspólne podkatalogi: .* i .*"

" pt_BR
syn match diffOnly	"^Somente em .*"
syn match diffOnly	"^Apenas em .*"
syn match diffIdentical	"^Os aquivos .* e .* são idênticos$"
syn match diffDiffer	"^Os arquivos .* e .* são diferentes$"
syn match diffBDiffer	"^Os arquivos binários .* e .* são diferentes$"
syn match diffIsA	"^O arquivo .* é .* enquanto o arquivo .* é .*"
syn match diffNoEOL	"^\\ Falta o caracter nova linha no final do arquivo"
syn match diffCommon	"^Subdiretórios idênticos: .* e .*"

" ro
syn match diffOnly	"^Doar în .*"
syn match diffIdentical	"^Fişierele .* şi .* sunt identice$"
syn match diffDiffer	"^Fişierele .* şi .* diferă$"
syn match diffBDiffer	"^Fişierele binare .* şi .* diferă$"
syn match diffIsA	"^Fişierul .* este un .* pe când fişierul .* este un .*.$"
syn match diffNoEOL	"^\\ Nici un element de linie nouă la sfârşitul fişierului"
syn match diffCommon	"^Subdirectoare comune: .* şi .*.$"

" ru
syn match diffOnly	"^Только в .*"
syn match diffIdentical	"^Файлы .* и .* идентичны$"
syn match diffDiffer	"^Файлы .* и .* различаются$"
syn match diffBDiffer	"^Файлы .* и .* различаются$"
syn match diffIsA	"^Файл .* это .*, тогда как файл .* -- .*"
syn match diffNoEOL	"^\\ В конце файла нет новой строки"
syn match diffCommon	"^Общие подкаталоги: .* и .*"

" sr
syn match diffOnly	"^Само у .*"
syn match diffIdentical	"^Датотеке „.*“ и „.*“ се подударају$"
syn match diffDiffer	"^Датотеке .* и .* различите$"
syn match diffBDiffer	"^Бинарне датотеке .* и .* различите$"
syn match diffIsA	"^Датотека „.*“ је „.*“ док је датотека „.*“ „.*“$"
syn match diffNoEOL	"^\\ Без новог реда на крају датотеке"
syn match diffCommon	"^Заједнички поддиректоријуми: .* и .*"

" sv
syn match diffOnly	"^Endast i .*"
syn match diffIdentical	"^Filerna .* och .* är lika$"
syn match diffDiffer	"^Filerna .* och .* skiljer$"
syn match diffBDiffer	"^Filerna .* och .* skiljer$"
syn match diffIsA	"^Fil .* är en .* medan fil .* är en .*"
syn match diffBDiffer	"^De binära filerna .* och .* skiljer$"
syn match diffIsA	"^Filen .* är .* medan filen .* är .*"
syn match diffNoEOL	"^\\ Ingen nyrad vid filslut"
syn match diffCommon	"^Lika underkataloger: .* och .*"

" tr
syn match diffOnly	"^Yalnızca .*'da: .*"
syn match diffIdentical	"^.* ve .* dosyaları birbirinin aynı$"
syn match diffDiffer	"^.* ve .* dosyaları birbirinden farklı$"
syn match diffBDiffer	"^.* ve .* dosyaları birbirinden farklı$"
syn match diffBDiffer	"^İkili .* ve .* birbirinden farklı$"
syn match diffIsA	"^.* dosyası, bir .*, halbuki .* dosyası bir .*"
syn match diffNoEOL	"^\\ Dosya sonunda yenisatır yok."
syn match diffCommon	"^Ortak alt dizinler: .* ve .*"

" uk
syn match diffOnly	"^Лише у .*"
syn match diffIdentical	"^Файли .* та .* ідентичні$"
syn match diffDiffer	"^Файли .* та .* відрізняються$"
syn match diffBDiffer	"^Файли .* та .* відрізняються$"
syn match diffBDiffer	"^Двійкові файли .* та .* відрізняються$"
syn match diffIsA	"^Файл .* це .*, тоді як файл .* -- .*"
syn match diffNoEOL	"^\\ Наприкінці файлу немає нового рядка"
syn match diffCommon	"^Спільні підкаталоги: .* та .*"

" vi
syn match diffOnly	"^Chỉ trong .*"
syn match diffIdentical	"^Hai tập tin .* và .* là bằng nhau.$"
syn match diffIdentical	"^Cả .* và .* là cùng một tập tin$"
syn match diffDiffer	"^Hai tập tin .* và .* là khác nhau.$"
syn match diffBDiffer	"^Hai tập tin nhị phân .* và .* khác nhau$"
syn match diffIsA	"^Tập tin .* là một .* trong khi tập tin .* là một .*.$"
syn match diffBDiffer	"^Hai tập tin .* và .* là khác nhau.$"
syn match diffIsA	"^Tập tin .* là một .* còn tập tin .* là một .*.$"
syn match diffNoEOL	"^\\ Không có ký tự dòng mới tại kêt thức tập tin."
syn match diffCommon	"^Thư mục con chung: .* và .*"

" zh_CN
syn match diffOnly	"^只在 .* 存在:.*"
syn match diffIdentical	"^檔案 .* 和 .* 相同$"
syn match diffDiffer	"^文件 .* 和 .* 不同$"
syn match diffBDiffer	"^文件 .* 和 .* 不同$"
syn match diffIsA	"^文件 .* 是.*而文件 .* 是.*"
syn match diffNoEOL	"^\\ 文件尾没有 newline 字符"
syn match diffCommon	"^.* 和 .* 有共同的子目录$"

" zh_TW
syn match diffOnly	"^只在 .* 存在:.*"
syn match diffIdentical	"^檔案 .* 和 .* 相同$"
syn match diffDiffer	"^檔案 .* 與 .* 不同$"
syn match diffBDiffer	"^二元碼檔 .* 與 .* 不同$"
syn match diffIsA	"^檔案 .* 是.*而檔案 .* 是.*"
syn match diffNoEOL	"^\\ 檔案末沒有 newline 字元"
syn match diffCommon	"^.* 和 .* 有共同的副目錄$"

endif


syn match diffRemoved	"^-.*"
syn match diffRemoved	"^<.*"
syn match diffAdded	"^+.*"
syn match diffAdded	"^>.*"
syn match diffChanged	"^! .*"

syn match diffSubname	" @@..*"ms=s+3 contained
syn match diffLine	"^@.*" contains=diffSubname
syn match diffLine	"^\<\d\+\>.*"
syn match diffLine	"^\*\*\*\*.*"
syn match diffLine	"^---$"

" Some versions of diff have lines like "#c#" and "#d#" (where # is a number)
syn match diffLine	"^\d\+\(,\d\+\)\=[cda]\d\+\>.*"

syn match diffFile	"^diff\>.*"
syn match diffFile	"^+++ .*"
syn match diffFile	"^Index: .*"
syn match diffFile	"^==== .*"
syn match diffOldFile	"^\*\*\* .*"
syn match diffNewFile	"^--- .*"

" Used by git
syn match diffIndexLine	"^index \x\x\x\x.*"

syn match diffComment	"^#.*"

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link diffOldFile		diffFile
hi def link diffNewFile		diffFile
hi def link diffIndexLine	PreProc
hi def link diffFile		Type
hi def link diffOnly		Constant
hi def link diffIdentical	Constant
hi def link diffDiffer		Constant
hi def link diffBDiffer		Constant
hi def link diffIsA		Constant
hi def link diffNoEOL		Constant
hi def link diffCommon		Constant
hi def link diffRemoved		Special
hi def link diffChanged		PreProc
hi def link diffAdded		Identifier
hi def link diffLine		Statement
hi def link diffSubname		PreProc
hi def link diffComment		Comment

let b:current_syntax = "diff"

" vim: ts=8 sw=2
PK�j�Z��G���vim80/syntax/racc.vimnu�[���" Vim default file
" Language:             Racc input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-06-22

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword raccTodo        contained TODO FIXME XXX NOTE

syn region  raccComment     start='/\*' end='\*/'
                            \ contains=raccTodo,@Spell
syn region  raccComment     display oneline start='#' end='$'
                            \ contains=raccTodo,@Spell

syn region  raccClass       transparent matchgroup=raccKeyword
                            \ start='\<class\>' end='\<rule\>'he=e-4
                            \ contains=raccComment,raccPrecedence,
                            \ raccTokenDecl,raccExpect,raccOptions,raccConvert,
                            \ raccStart,

syn region  raccPrecedence  transparent matchgroup=raccKeyword
                            \ start='\<prechigh\>' end='\<preclow\>'
                            \ contains=raccComment,raccPrecSpec

syn keyword raccPrecSpec    contained nonassoc left right
                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
                            \ skipnl

syn match   raccPrecToken   contained '\<\u[A-Z0-9_]*\>'
                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
                            \ skipnl

syn region  raccPrecString  matchgroup=raccPrecString start=+"+
                            \ skip=+\\\\\|\\"+ end=+"+
                            \ contains=raccSpecial
                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
                            \ skipnl
syn region  raccPrecString  matchgroup=raccPrecString start=+'+
                            \ skip=+\\\\\|\\'+ end=+'+ contains=raccSpecial
                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
                            \ skipnl

syn keyword raccTokenDecl   contained token
                            \ nextgroup=raccTokenR skipwhite skipnl

syn match   raccTokenR      contained '\<\u[A-Z0-9_]*\>'
                            \ nextgroup=raccTokenR skipwhite skipnl

syn keyword raccExpect      contained expect
                            \ nextgroup=raccNumber skipwhite skipnl

syn match   raccNumber      contained '\<\d\+\>'

syn keyword raccOptions     contained options
                            \ nextgroup=raccOptionsR skipwhite skipnl

syn keyword raccOptionsR    contained omit_action_call result_var
                            \ nextgroup=raccOptionsR skipwhite skipnl

syn region  raccConvert     transparent contained matchgroup=raccKeyword
                            \ start='\<convert\>' end='\<end\>'
                            \ contains=raccComment,raccConvToken skipwhite
                            \ skipnl

syn match   raccConvToken   contained '\<\u[A-Z0-9_]*\>'
                            \ nextgroup=raccString skipwhite skipnl

syn keyword raccStart       contained start
                            \ nextgroup=raccTargetS skipwhite skipnl

syn match   raccTargetS     contained '\<\l[a-z0-9_]*\>'

syn match   raccSpecial     contained '\\["'\\]'

syn region  raccString      start=+"+ skip=+\\\\\|\\"+ end=+"+
                            \ contains=raccSpecial
syn region  raccString      start=+'+ skip=+\\\\\|\\'+ end=+'+
                            \ contains=raccSpecial

syn region  raccRules       transparent matchgroup=raccKeyword start='\<rule\>'
                            \ end='\<end\>' contains=raccComment,raccString,
                            \ raccNumber,raccToken,raccTarget,raccDelimiter,
                            \ raccAction

syn match   raccTarget      contained '\<\l[a-z0-9_]*\>'

syn match   raccDelimiter   contained '[:|]'

syn match   raccToken       contained '\<\u[A-Z0-9_]*\>'

syn include @raccRuby       syntax/ruby.vim

syn region  raccAction      transparent matchgroup=raccDelimiter
                            \ start='{' end='}' contains=@raccRuby

syn region  raccHeader      transparent matchgroup=raccPreProc
                            \ start='^---- header.*' end='^----'he=e-4
                            \ contains=@raccRuby

syn region  raccInner       transparent matchgroup=raccPreProc
                            \ start='^---- inner.*' end='^----'he=e-4
                            \ contains=@raccRuby

syn region  raccFooter      transparent matchgroup=raccPreProc
                            \ start='^---- footer.*' end='^----'he=e-4
                            \ contains=@raccRuby

syn sync    match raccSyncHeader    grouphere raccHeader '^---- header'
syn sync    match raccSyncInner     grouphere raccInner '^---- inner'
syn sync    match raccSyncFooter    grouphere raccFooter '^---- footer'

hi def link raccTodo        Todo
hi def link raccComment     Comment
hi def link raccPrecSpec    Type
hi def link raccPrecToken   raccToken
hi def link raccPrecString  raccString
hi def link raccTokenDecl   Keyword
hi def link raccToken       Identifier
hi def link raccTokenR      raccToken
hi def link raccExpect      Keyword
hi def link raccNumber      Number
hi def link raccOptions     Keyword
hi def link raccOptionsR    Identifier
hi def link raccConvToken   raccToken
hi def link raccStart       Keyword
hi def link raccTargetS     Type
hi def link raccSpecial     special
hi def link raccString      String
hi def link raccTarget      Type
hi def link raccDelimiter   Delimiter
hi def link raccPreProc     PreProc
hi def link raccKeyword     Keyword

let b:current_syntax = "racc"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zf�s7�7�vim80/syntax/muttrc.vimnu�[���" Vim syntax file
" Language:	Mutt setup files
" Original:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
" Maintainer:	Kyle Wheeler <kyle-muttrc.vim@memoryhole.net>
" Last Change:	18 August 2016

" This file covers mutt version 1.7.0

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Set the keyword characters
setlocal isk=@,48-57,_,-

" handling optional variables
if !exists("use_mutt_sidebar")
  let use_mutt_sidebar=0
endif

syn match muttrcComment		"^# .*$" contains=@Spell
syn match muttrcComment		"^#[^ ].*$"
syn match muttrcComment		"^#$"
syn match muttrcComment		"[^\\]#.*$"lc=1

" Escape sequences (back-tick and pipe goes here too)
syn match muttrcEscape		+\\[#tnr"'Cc ]+
syn match muttrcEscape		+[`|]+
syn match muttrcEscape		+\\$+

" The variables takes the following arguments
"syn match  muttrcString		contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
syn region muttrcString		contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
syn region muttrcString		contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
syn match muttrcStringNL	contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL

syn region muttrcShellString	matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand

syn match  muttrcRXChars	contained /[^\\][][.*?+]\+/hs=s+1
syn match  muttrcRXChars	contained /[][|()][.*?+]*/
syn match  muttrcRXChars	contained /['"]^/ms=s+1
syn match  muttrcRXChars	contained /$['"]/me=e-1
syn match  muttrcRXChars	contained /\\/
" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
syn region muttrcRXString	contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
syn region muttrcRXString	contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
syn region muttrcRXString	contained skipwhite start=+[^ 	"'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
" For some reason, skip refuses to match backslashes here...
syn region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
syn region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
syn region muttrcRXString2	contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
syn region muttrcRXString2	contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars

" these must be kept synchronized with muttrcRXString, but are intended for
" muttrcRXHooks
syn region muttrcRXHookString	contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syn region muttrcRXHookString	contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syn region muttrcRXHookString	contained keepend skipwhite start=+[^ 	"'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syn region muttrcRXHookString	contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syn region muttrcRXHookString	contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
syn match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL

" these are exclusively for args lists (e.g. -rx pat pat pat ...)
syn region muttrcRXPat		contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
syn region muttrcRXPat		contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
syn match muttrcRXPat		contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
syn match muttrcRXDef 		contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat

syn match muttrcSpecial		+\(['"]\)!\1+

syn match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
syn match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
syn match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
syn match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
syn match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

" Now catch some email addresses and headers (purified version from mail.vim)
syn match muttrcEmail		"[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
syn match muttrcHeader		"\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="

syn match   muttrcKeySpecial	contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
syn match   muttrcKey		contained "\S\+"			contains=muttrcKeySpecial,muttrcKeyName
syn region  muttrcKey		contained start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=muttrcKeySpecial,muttrcKeyName
syn region  muttrcKey		contained start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=muttrcKeySpecial,muttrcKeyName
syn match   muttrcKeyName	contained "\<f\%(\d\|10\)\>"
syn match   muttrcKeyName	contained "\\[trne]"
syn match   muttrcKeyName	contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
syn match   muttrcKeyName	contained "<F[0-9]\+>"

syn keyword muttrcVarBool	skipwhite contained 
			\ allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split
			\ auto_tag autoedit beep beep_new bounce_delivered braille_friendly
			\ check_mbox_size check_new collapse_unread confirmappend confirmcreate
			\ crypt_autoencrypt crypt_autopgp crypt_autosign crypt_autosmime
			\ crypt_confirmhook crypt_opportunistic_encrypt crypt_replyencrypt
			\ crypt_replysign crypt_replysignencrypted crypt_timestamp crypt_use_gpgme
			\ crypt_use_pka delete_untag digest_collapse duplicate_threads edit_hdrs
			\ edit_headers encode_from envelope_from fast_reply fcc_clear followup_to
			\ force_name forw_decode forw_decrypt forw_quote forward_decode forward_decrypt
			\ forward_quote hdrs header help hidden_host hide_limited hide_missing
			\ hide_thread_subject hide_top_limited hide_top_missing honor_disposition
			\ idn_decode idn_encode ignore_linear_white_space ignore_list_reply_to
			\ imap_check_subscribed imap_list_subscribed imap_passive imap_peek
			\ imap_servernoise implicit_autoview include_onlyfirst keep_flagged
			\ mail_check_recent mail_check_stats mailcap_sanitize maildir_check_cur
			\ maildir_header_cache_verify maildir_trash mark_old markers menu_move_off
			\ menu_scroll message_cache_clean meta_key metoo mh_purge mime_forward_decode
			\ narrow_tree pager_stop pgp_auto_decode pgp_auto_traditional pgp_autoencrypt
			\ pgp_autoinline pgp_autosign pgp_check_exit pgp_create_traditional
			\ pgp_ignore_subkeys pgp_long_ids pgp_replyencrypt pgp_replyinline pgp_replysign
			\ pgp_replysignencrypted pgp_retainable_sigs pgp_show_unusable pgp_strict_enc
			\ pgp_use_gpg_agent pipe_decode pipe_split pop_auth_try_all pop_last
			\ postpone_encrypt postpone_encrypt_as print_decode print_split prompt_after
			\ read_only reflow_space_quotes reflow_text reflow_wrap reply_self resolve
			\ resume_draft_files resume_edited_draft_files reverse_alias reverse_name
			\ reverse_realname rfc2047_parameters save_address save_empty save_name score
			\ sidebar_folder_indent sidebar_new_mail_only sidebar_next_new_wrap
			\ sidebar_short_path sidebar_sort sidebar_visible sig_dashes sig_on_top
			\ smart_wrap smime_ask_cert_label smime_decrypt_use_default_key smime_is_default
			\ sort_re ssl_force_tls ssl_use_sslv2 ssl_use_sslv3 ssl_use_tlsv1
			\ ssl_usesystemcerts ssl_verify_dates ssl_verify_host status_on_top strict_mime
			\ strict_threads suspend text_flowed thorough_search thread_received tilde
			\ ts_enabled uncollapse_jump use_8bitmime use_domain use_envelope_from use_from
			\ use_idn use_ipv6 user_agent wait_key weed wrap_search write_bcc
			\ nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn keyword muttrcVarBool	skipwhite contained 
			\ noallow_8bit noallow_ansi noarrow_cursor noascii_chars noaskbcc noaskcc noattach_split
			\ noauto_tag noautoedit nobeep nobeep_new nobounce_delivered nobraille_friendly
			\ nocheck_mbox_size nocheck_new nocollapse_unread noconfirmappend noconfirmcreate
			\ nocrypt_autoencrypt nocrypt_autopgp nocrypt_autosign nocrypt_autosmime
			\ nocrypt_confirmhook nocrypt_opportunistic_encrypt nocrypt_replyencrypt
			\ nocrypt_replysign nocrypt_replysignencrypted nocrypt_timestamp nocrypt_use_gpgme
			\ nocrypt_use_pka nodelete_untag nodigest_collapse noduplicate_threads noedit_hdrs
			\ noedit_headers noencode_from noenvelope_from nofast_reply nofcc_clear nofollowup_to
			\ noforce_name noforw_decode noforw_decrypt noforw_quote noforward_decode noforward_decrypt
			\ noforward_quote nohdrs noheader nohelp nohidden_host nohide_limited nohide_missing
			\ nohide_thread_subject nohide_top_limited nohide_top_missing nohonor_disposition
			\ noidn_decode noidn_encode noignore_linear_white_space noignore_list_reply_to
			\ noimap_check_subscribed noimap_list_subscribed noimap_passive noimap_peek
			\ noimap_servernoise noimplicit_autoview noinclude_onlyfirst nokeep_flagged
			\ nomail_check_recent nomail_check_stats nomailcap_sanitize nomaildir_check_cur
			\ nomaildir_header_cache_verify nomaildir_trash nomark_old nomarkers nomenu_move_off
			\ nomenu_scroll nomessage_cache_clean nometa_key nometoo nomh_purge nomime_forward_decode
			\ nonarrow_tree nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt
			\ nopgp_autoinline nopgp_autosign nopgp_check_exit nopgp_create_traditional
			\ nopgp_ignore_subkeys nopgp_long_ids nopgp_replyencrypt nopgp_replyinline nopgp_replysign
			\ nopgp_replysignencrypted nopgp_retainable_sigs nopgp_show_unusable nopgp_strict_enc
			\ nopgp_use_gpg_agent nopipe_decode nopipe_split nopop_auth_try_all nopop_last
			\ nopostpone_encrypt nopostpone_encrypt_as noprint_decode noprint_split noprompt_after
			\ noread_only noreflow_space_quotes noreflow_text noreflow_wrap noreply_self noresolve
			\ noresume_draft_files noresume_edited_draft_files noreverse_alias noreverse_name
			\ noreverse_realname norfc2047_parameters nosave_address nosave_empty nosave_name noscore
			\ nosidebar_folder_indent nosidebar_new_mail_only nosidebar_next_new_wrap
			\ nosidebar_short_path nosidebar_sort nosidebar_visible nosig_dashes nosig_on_top
			\ nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key nosmime_is_default
			\ nosort_re nossl_force_tls nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1
			\ nossl_usesystemcerts nossl_verify_dates nossl_verify_host nostatus_on_top nostrict_mime
			\ nostrict_threads nosuspend notext_flowed nothorough_search nothread_received notilde
			\ nots_enabled nouncollapse_jump nouse_8bitmime nouse_domain nouse_envelope_from nouse_from
			\ nouse_idn nouse_ipv6 nouser_agent nowait_key noweed nowrap_search nowrite_bcc
			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn keyword muttrcVarBool	skipwhite contained
			\ invallow_8bit invallow_ansi invarrow_cursor invascii_chars invaskbcc invaskcc invattach_split
			\ invauto_tag invautoedit invbeep invbeep_new invbounce_delivered invbraille_friendly
			\ invcheck_mbox_size invcheck_new invcollapse_unread invconfirmappend invconfirmcreate
			\ invcrypt_autoencrypt invcrypt_autopgp invcrypt_autosign invcrypt_autosmime
			\ invcrypt_confirmhook invcrypt_opportunistic_encrypt invcrypt_replyencrypt
			\ invcrypt_replysign invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme
			\ invcrypt_use_pka invdelete_untag invdigest_collapse invduplicate_threads invedit_hdrs
			\ invedit_headers invencode_from invenvelope_from invfast_reply invfcc_clear invfollowup_to
			\ invforce_name invforw_decode invforw_decrypt invforw_quote invforward_decode invforward_decrypt
			\ invforward_quote invhdrs invheader invhelp invhidden_host invhide_limited invhide_missing
			\ invhide_thread_subject invhide_top_limited invhide_top_missing invhonor_disposition
			\ invidn_decode invidn_encode invignore_linear_white_space invignore_list_reply_to
			\ invimap_check_subscribed invimap_list_subscribed invimap_passive invimap_peek
			\ invimap_servernoise invimplicit_autoview invinclude_onlyfirst invkeep_flagged
			\ invmail_check_recent invmail_check_stats invmailcap_sanitize invmaildir_check_cur
			\ invmaildir_header_cache_verify invmaildir_trash invmark_old invmarkers invmenu_move_off
			\ invmenu_scroll invmessage_cache_clean invmeta_key invmetoo invmh_purge invmime_forward_decode
			\ invnarrow_tree invpager_stop invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt
			\ invpgp_autoinline invpgp_autosign invpgp_check_exit invpgp_create_traditional
			\ invpgp_ignore_subkeys invpgp_long_ids invpgp_replyencrypt invpgp_replyinline invpgp_replysign
			\ invpgp_replysignencrypted invpgp_retainable_sigs invpgp_show_unusable invpgp_strict_enc
			\ invpgp_use_gpg_agent invpipe_decode invpipe_split invpop_auth_try_all invpop_last
			\ invpostpone_encrypt invpostpone_encrypt_as invprint_decode invprint_split invprompt_after
			\ invread_only invreflow_space_quotes invreflow_text invreflow_wrap invreply_self invresolve
			\ invresume_draft_files invresume_edited_draft_files invreverse_alias invreverse_name
			\ invreverse_realname invrfc2047_parameters invsave_address invsave_empty invsave_name invscore
			\ invsidebar_folder_indent invsidebar_new_mail_only invsidebar_next_new_wrap
			\ invsidebar_short_path invsidebar_sort invsidebar_visible invsig_dashes invsig_on_top
			\ invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key invsmime_is_default
			\ invsort_re invssl_force_tls invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1
			\ invssl_usesystemcerts invssl_verify_dates invssl_verify_host invstatus_on_top invstrict_mime
			\ invstrict_threads invsuspend invtext_flowed invthorough_search invthread_received invtilde
			\ invts_enabled invuncollapse_jump invuse_8bitmime invuse_domain invuse_envelope_from invuse_from
			\ invuse_idn invuse_ipv6 invuser_agent invwait_key invweed invwrap_search invwrite_bcc
			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn keyword muttrcVarQuad	skipwhite contained
			\ abort_nosubject abort_unmodified bounce copy crypt_verify_sig delete
			\ fcc_attach forward_edit honor_followup_to include mime_forward
			\ mime_forward_rest mime_fwd move pgp_mime_auto pgp_verify_sig pop_delete
			\ pop_reconnect postpone print quit recall reply_to ssl_starttls
			\ nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn keyword muttrcVarQuad	skipwhite contained
			\ noabort_nosubject noabort_unmodified nobounce nocopy nocrypt_verify_sig nodelete
			\ nofcc_attach noforward_edit nohonor_followup_to noinclude nomime_forward
			\ nomime_forward_rest nomime_fwd nomove nopgp_mime_auto nopgp_verify_sig nopop_delete
			\ nopop_reconnect nopostpone noprint noquit norecall noreply_to nossl_starttls
			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn keyword muttrcVarQuad	skipwhite contained
			\ invabort_nosubject invabort_unmodified invbounce invcopy invcrypt_verify_sig invdelete
			\ invfcc_attach invforward_edit invhonor_followup_to invinclude invmime_forward
			\ invmime_forward_rest invmime_fwd invmove invpgp_mime_auto invpgp_verify_sig invpop_delete
			\ invpop_reconnect invpostpone invprint invquit invrecall invreply_to invssl_starttls
			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn keyword muttrcVarNum	skipwhite contained
			\ connect_timeout history imap_keepalive imap_pipeline_depth mail_check
			\ mail_check_stats_interval menu_context net_inc pager_context pager_index_lines
			\ pgp_timeout pop_checkinterval read_inc save_history score_threshold_delete
			\ score_threshold_flag score_threshold_read search_context sendmail_wait
			\ sidebar_width sleep_time smime_timeout ssl_min_dh_prime_bits time_inc timeout
			\ wrap wrap_headers wrapmargin write_inc
			\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn match muttrcFormatErrors contained /%./

syn match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
syn match muttrcStrftimeEscapes contained /%E[cCxXyY]/
syn match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/

syn region muttrcIndexFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcIndexFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcAliasFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcAliasFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcAttachFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcAttachFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcComposeFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcComposeFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcFolderFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcFolderFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcMixFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcMixFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcPGPFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcPGPFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcPGPCmdFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcPGPCmdFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcStatusFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcStatusFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcPGPGetKeysFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcPGPGetKeysFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcSmimeFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcSmimeFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

" The following info was pulled from hdr_format_str in hdrline.c
syn match muttrcIndexFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[aAbBcCdDeEfFHilLmMnNOPsStTuvXyYZ%]/
syn match muttrcIndexFormatEscapes contained /%[>|*]./
syn match muttrcIndexFormatConditionals contained /%?[EFHlLMNOXyY]?/ nextgroup=muttrcFormatConditionals2
" The following info was pulled from alias_format_str in addrbook.c
syn match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
" The following info was pulled from query_format_str in query.c
syn match muttrcQueryFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acent%]/
syn match muttrcQueryFormatConditionals contained /%?[e]?/ nextgroup=muttrcFormatConditionals2
" The following info was pulled from mutt_attach_fmt in recvattach.c
syn match muttrcAttachFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CcDdefImMnQstTuX%]/
syn match muttrcAttachFormatEscapes contained /%[>|*]./
syn match muttrcAttachFormatConditionals contained /%?[CcdDefInmMQstTuX]?/ nextgroup=muttrcFormatConditionals2
syn match muttrcFormatConditionals2 contained /[^?]*?/
" The following info was pulled from compose_format_str in compose.c
syn match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
syn match muttrcComposeFormatEscapes contained /%[>|*]./
" The following info was pulled from folder_format_str in browser.c
syn match muttrcFolderFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CDdfFglNstu%]/
syn match muttrcFolderFormatEscapes contained /%[>|*]./
syn match muttrcFolderFormatConditionals contained /%?[N]?/
" The following info was pulled from mix_entry_fmt in remailer.c
syn match muttrcMixFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ncsa%]/
syn match muttrcMixFormatConditionals contained /%?[ncsa]?/
" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c 
" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports 
" 'p', but pgp_entry_fmt does not).
syn match muttrcPGPFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[nkualfctp%]/
syn match muttrcPGPFormatConditionals contained /%?[nkualfct]?/
" The following info was pulled from _mutt_fmt_pgp_command in 
" pgpinvoke.c
syn match muttrcPGPCmdFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[pfsar%]/
syn match muttrcPGPCmdFormatConditionals contained /%?[pfsar]?/ nextgroup=muttrcFormatConditionals2
" The following info was pulled from status_format_str in status.c
syn match muttrcStatusFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[bdfFhlLmMnopPrsStuvV%]/
syn match muttrcStatusFormatEscapes contained /%[>|*]./
syn match muttrcStatusFormatConditionals contained /%?[bdFlLmMnoptuV]?/ nextgroup=muttrcFormatConditionals2
" This matches the documentation, but directly contradicts the code 
" (according to the code, this should be identical to the 
" muttrcPGPCmdFormatEscapes
syn match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[r%]/
" The following info was pulled from _mutt_fmt_smime_command in 
" smime.c
syn match muttrcSmimeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[Cciskaf%]/
syn match muttrcSmimeFormatConditionals contained /%?[Cciskaf]?/ nextgroup=muttrcFormatConditionals2

syn region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes
syn region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
syn region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes
syn region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes
syn region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes

syn keyword muttrcVarStr	contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
syn match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr
syn keyword muttrcVarStr	contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
syn match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr
syn keyword muttrcVarStr	contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
syn match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr
syn keyword muttrcVarStr	contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
syn match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr
syn keyword muttrcVarStr	contained skipwhite folder_format nextgroup=muttrcVarEqualsFolderFmt
syn match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr
syn keyword muttrcVarStr	contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
syn match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr
syn keyword muttrcVarStr	contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
syn match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr
syn keyword muttrcVarStr	contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
syn match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr
syn keyword muttrcVarStr	contained skipwhite pgp_decode_command pgp_verify_command pgp_decrypt_command pgp_clearsign_command pgp_sign_command pgp_encrypt_sign_command pgp_encrypt_only_command pgp_import_command pgp_export_command pgp_verify_key_command pgp_list_secring_command pgp_list_pubring_command nextgroup=muttrcVarEqualsPGPCmdFmt
syn match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
syn keyword muttrcVarStr	contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
syn match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr
syn keyword muttrcVarStr	contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
syn match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
syn keyword muttrcVarStr	contained skipwhite smime_decrypt_command smime_verify_command smime_verify_opaque_command smime_sign_command smime_sign_opaque_command smime_encrypt_command smime_pk7out_command smime_get_cert_command smime_get_signer_cert_command smime_import_cert_command smime_get_cert_email_command nextgroup=muttrcVarEqualsSmimeFmt
syn match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
syn keyword muttrcVarStr	contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
syn match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr

syn match muttrcVPrefix		contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn match muttrcVarStr		contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn keyword muttrcVarStr	contained skipwhite
			\ alias_file assumed_charset attach_charset attach_sep certificate_file charset
			\ config_charset content_type default_hook display_filter dotlock_program
			\ dsn_notify dsn_return editor entropy_file envelope_from_address escape folder
			\ forw_format forward_format from gecos_mask hdr_format header_cache
			\ header_cache_compress header_cache_pagesize history_file hostname
			\ imap_authenticators imap_delim_chars imap_headers imap_idle imap_login
			\ imap_pass imap_user indent_str indent_string ispell locale mailcap_path mask
			\ mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied mh_seq_unseen
			\ mixmaster msg_format pager pgp_decryption_okay pgp_good_sign
			\ pgp_mime_signature_description pgp_mime_signature_filename pgp_sign_as
			\ pgp_sort_keys pipe_sep pop_authenticators pop_host pop_pass pop_user
			\ post_indent_str post_indent_string postpone_encrypt_as postponed preconnect
			\ print_cmd print_command query_command quote_regexp realname record
			\ reply_regexp send_charset sendmail shell sidebar_delim sidebar_delim_chars
			\ sidebar_divider_char sidebar_format sidebar_indent_string sidebar_sort_method
			\ signature simple_search smileys smime_ca_location smime_certificates
			\ smime_default_key smime_encrypt_with smime_keys smime_sign_as
			\ smime_sign_digest_alg smtp_authenticators smtp_pass smtp_url sort sort_alias
			\ sort_aux sort_browser spam_separator spoolfile ssl_ca_certificates_file
			\ ssl_ciphers ssl_client_cert status_chars tmpdir to_chars trash ts_icon_format
			\ ts_status_format tunnel visual
			\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

" Present in 1.4.2.1 (pgp_create_traditional was a bool then)
syn keyword muttrcVarBool	contained skipwhite imap_force_ssl noimap_force_ssl invimap_force_ssl nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
"syn keyword muttrcVarQuad	contained pgp_create_traditional nopgp_create_traditional invpgp_create_traditional
syn keyword muttrcVarStr	contained skipwhite alternates nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

syn keyword muttrcMenu		contained alias attach browser compose editor index pager postpone pgp mix query generic
syn match muttrcMenuList "\S\+" contained contains=muttrcMenu
syn match muttrcMenuCommas /,/ contained

syn keyword muttrcHooks		contained skipwhite account-hook charset-hook iconv-hook message-hook folder-hook mbox-hook save-hook fcc-hook fcc-save-hook send-hook send2-hook reply-hook crypt-hook

syn keyword muttrcCommand	skipwhite
			\ alternative_order auto_view exec hdr_order iconv-hook ignore mailboxes
			\ mailto_allow mime_lookup my_hdr pgp-hook push score sidebar_whitelist source
			\ unalternative_order unalternative_order unauto_view ungroup unhdr_order
			\ unignore unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore
syn keyword muttrcCommand	skipwhite charset-hook nextgroup=muttrcRXString
syn keyword muttrcCommand	skipwhite unhook nextgroup=muttrcHooks

syn keyword muttrcCommand 	skipwhite spam nextgroup=muttrcSpamPattern
syn region muttrcSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
syn region muttrcSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL

syn keyword muttrcCommand 	skipwhite nospam nextgroup=muttrcNoSpamPattern
syn region muttrcNoSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
syn region muttrcNoSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern

syn match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
syn match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
syn match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag

syn match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"

syn keyword muttrcAsterisk	contained *
syn keyword muttrcListsKeyword	lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
syn keyword muttrcListsKeyword	unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment

syn keyword muttrcSubscribeKeyword	subscribe nextgroup=muttrcGroupDef,muttrcComment
syn keyword muttrcSubscribeKeyword	unsubscribe nextgroup=muttrcAsterisk,muttrcComment

syn keyword muttrcAlternateKeyword contained alternates unalternates
syn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment

" muttrcVariable includes a prefix because partial strings are considered
" valid.
syn match muttrcVariable	contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
syn match muttrcVariableInner	contained "\$[a-zA-Z_-]\+"
syn match muttrcEscapedVariable	contained "\\\$[a-zA-Z_-]\+"

syn match muttrcBadAction	contained "[^<>]\+" contains=muttrcEmail
syn match muttrcFunction	contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|parent\|pipe\|postpone\|print\|purge\|recall\|resend\|save\|send\|tag\|undelete\)-message\>"
syn match muttrcFunction	contained "\<\%(delete\|next\|previous\|read\|tag\|break\|undelete\)-thread\>"
syn match muttrcFunction	contained "\<link-threads\>"
syn match muttrcFunction	contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>"
syn match muttrcFunction	contained "\<\%(delete\|filter\|first\|last\|next\|pipe\|previous\|print\|save\|select\|tag\|undelete\)-entry\>"
syn match muttrcFunction	contained "\<attach-\%(file\|key\)\>"
syn match muttrcFunction	contained "\<change-\%(dir\|folder\|folder-readonly\)\>"
syn match muttrcFunction	contained "\<check-\%(new\|traditional-pgp\)\>"
syn match muttrcFunction	contained "\<current-\%(bottom\|middle\|top\)\>"
syn match muttrcFunction	contained "\<decode-\%(copy\|save\)\>"
syn match muttrcFunction	contained "\<delete-\%(char\|pattern\|subthread\)\>"
syn match muttrcFunction	contained "\<display-\%(address\|toggle-weed\)\>"
syn match muttrcFunction	contained "\<edit\%(-\%(bcc\|cc\|description\|encoding\|fcc\|file\|from\|headers\|mime\|reply-to\|subject\|to\|type\)\)\?\>"
syn match muttrcFunction	contained "\<enter-\%(command\|mask\)\>"
syn match muttrcFunction	contained "\<half-\%(up\|down\)\>"
syn match muttrcFunction	contained "\<history-\%(up\|down\)\>"
syn match muttrcFunction	contained "\<kill-\%(eol\|eow\|line\)\>"
syn match muttrcFunction	contained "\<next-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\|unread-mailbox\)\>"
syn match muttrcFunction	contained "\<previous-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\)\>"
syn match muttrcFunction	contained "\<search\%(-\%(next\|opposite\|reverse\|toggle\)\)\?\>"
syn match muttrcFunction	contained "\<show-\%(limit\|version\)\>"
syn match muttrcFunction	contained "\<sort-\%(mailbox\|reverse\)\>"
syn match muttrcFunction	contained "\<tag-\%(pattern\|\%(sub\)\?thread\|prefix\%(-cond\)\?\)\>"
syn match muttrcFunction	contained "\<end-cond\>"
syn match muttrcFunction	contained "\<sidebar-\%(next\|next-new\|open\|page-down\|page-up\|prev\|prev-new\|toggle-visible\)\>"
syn match muttrcFunction	contained "\<toggle-\%(mailboxes\|new\|quoted\|subscribed\|unlink\|write\)\>"
syn match muttrcFunction	contained "\<undelete-\%(pattern\|subthread\)\>"
syn match muttrcFunction	contained "\<collapse-\%(parts\|thread\|all\)\>"
syn match muttrcFunction	contained "\<view-\%(attach\|attachments\|file\|mailcap\|name\|text\)\>"
syn match muttrcFunction	contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|clear-flag\|complete\%(-query\)\?\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-reply\|mail\|mail-key\|mark-as-new\|middle-page\|new-mime\|noop\|pgp-menu\|query\|query-append\|quit\|quote-char\|read-subthread\|redraw-screen\|refresh\|rename-file\|reply\|select-new\|set-flag\|shell-escape\|skip-quoted\|sort\|subscribe\|sync-mailbox\|top\|top-page\|transpose-chars\|unsubscribe\|untag-pattern\|verify-key\|what-key\|write-fcc\)\>"
syn keyword muttrcFunction	contained imap-logout-all
if use_mutt_sidebar == 1
    syn match muttrcFunction    contained "\<sidebar-\%(prev\|next\|open\|scroll-up\|scroll-down\)"
endif
syn match muttrcAction		contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName

syn keyword muttrcCommand	set     skipwhite nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn keyword muttrcCommand	unset   skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn keyword muttrcCommand	reset   skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
syn keyword muttrcCommand	toggle  skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr

" First, functions that take regular expressions:
syn match  muttrcRXHookNot	contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
syn match  muttrcRXHooks	/\<\%(account\|folder\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL

" Now, functions that take patterns
syn match muttrcPatHookNot	contained /!\s*/ skipwhite nextgroup=muttrcPattern
syn match muttrcPatHooks	/\<\%(mbox\|crypt\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
syn match muttrcPatHooks	/\<\%(message\|reply\|send\|send2\|save\|\|fcc\%(-save\)\?\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern

syn match muttrcBindFunction	contained /\S\+\>/ skipwhite contains=muttrcFunction
syn match muttrcBindFunctionNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
syn match muttrcBindKey		contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
syn match muttrcBindKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
syn match muttrcBindMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
syn match muttrcBindMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
syn keyword muttrcCommand	skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL

syn region muttrcMacroDescr	contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
syn region muttrcMacroDescr	contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
syn region muttrcMacroDescr	contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
syn match muttrcMacroDescrNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syn region muttrcMacroBody	contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syn region muttrcMacroBody matchgroup=Type contained skipwhite start=+'+ms=e skip=+\\'+ end=+'\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syn region muttrcMacroBody matchgroup=Type contained skipwhite start=+"+ms=e skip=+\\"+ end=+"\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
syn match muttrcMacroBodyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
syn match muttrcMacroKey	contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
syn match muttrcMacroKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
syn match muttrcMacroMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
syn match muttrcMacroMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
syn keyword muttrcCommand	skipwhite macro	nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL

syn match muttrcAddrContent	contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
syn region muttrcAddrContent	contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
syn region muttrcAddrContent	contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
syn match muttrcAddrDef 	contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent

syn match muttrcGroupFlag	contained "-group"
syn region muttrcGroupDef	contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace

syn keyword muttrcGroupKeyword	contained group ungroup
syn region muttrcGroupLine	keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment

syn match muttrcAliasGroupName	contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
syn match muttrcAliasGroupDefNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
syn match muttrcAliasGroupDef	contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
syn match muttrcAliasComma	contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
syn match muttrcAliasEmail	contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
syn match muttrcAliasEncEmail	contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
syn match muttrcAliasEncEmailNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
syn match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
syn region muttrcAliasName	contained matchgroup=Type start=/(/ end=/)/ skipwhite
syn match muttrcAliasNameNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
syn match muttrcAliasENNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
syn match muttrcAliasKey	contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
syn match muttrcAliasNL		contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
syn keyword muttrcCommand	skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL

syn match muttrcUnAliasKey	contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
syn match muttrcUnAliasNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
syn keyword muttrcCommand	skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL

syn match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
syn match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
syn match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable
syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
syn match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
syn region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
syn region muttrcSimplePatString contained keepend start=+[^ 	"']+ skip=+\\ + end=+\s+re=e-1
syn region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
syn region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
syn region muttrcSimplePatRXContainer contained keepend start=+[^ 	"']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
syn match muttrcSimplePatMetas contained /[(|)]/

syn match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
syn match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
syn region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
syn region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
syn region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
syn match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
syn match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
" Keep muttrcPattern and muttrcOptPattern synchronized
syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
syn region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
syn match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
syn match muttrcPattern contained skipwhite /[.]/
syn region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
syn region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas

" Colour definitions takes object, foreground and background arguments (regexps excluded).
syn match muttrcColorMatchCount	contained "[0-9]\+"
syn match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
syn region muttrcColorRXPat	contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
syn region muttrcColorRXPat	contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
syn keyword muttrcColorField	skipwhite contained
			\ attachment body bold error hdrdefault header index indicator markers message
			\ normal prompt quoted search sidebar-divider sidebar-flagged sidebar-highlight
			\ sidebar-indicator sidebar-new sidebar-spoolfile signature status tilde tree
			\ underline
syn match   muttrcColorField	contained "\<quoted\d\=\>"
if use_mutt_sidebar == 1
    syn keyword muttrcColorField contained sidebar_new
endif
syn keyword muttrcColor	contained black blue cyan default green magenta red white yellow
syn keyword muttrcColor	contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
syn match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,3}\>"
" Now for the structure of the color line
syn match muttrcColorRXNL	contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
syn match muttrcColorBG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
syn match muttrcColorBGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
syn match muttrcColorFG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
syn match muttrcColorFGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
syn match muttrcColorContext 	contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorFG,muttrcColorFGNL
syn match muttrcColorNL 	contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL
syn match muttrcColorKeyword	contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL
syn region muttrcColorLine keepend start=/^\s*color\s\+\%(index\|header\)\@!/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
" Now for the structure of the color index line
syn match muttrcPatternNL	contained skipnl "\s*\\$" nextgroup=muttrcPattern,muttrcPatternNL
syn match muttrcColorBGI	contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcPattern,muttrcPatternNL
syn match muttrcColorBGNLI	contained skipnl "\s*\\$" nextgroup=muttrcColorBGI,muttrcColorBGNLI
syn match muttrcColorFGI	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGI,muttrcColorBGNLI
syn match muttrcColorFGNLI	contained skipnl "\s*\\$" nextgroup=muttrcColorFGI,muttrcColorFGNLI
syn match muttrcColorContextI	contained /\s*\<index\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGI,muttrcColorFGNLI
syn match muttrcColorNLI	contained skipnl "\s*\\$" nextgroup=muttrcColorContextI,muttrcColorNLI
syn match muttrcColorKeywordI	contained skipwhite /\<color\>/ nextgroup=muttrcColorContextI,muttrcColorNLI
syn region muttrcColorLine keepend skipwhite start=/\<color\s\+index\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordI,muttrcComment,muttrcUnHighlightSpace
" Now for the structure of the color header line
syn match muttrcRXPatternNL	contained skipnl "\s*\\$" nextgroup=muttrcRXString,muttrcRXPatternNL
syn match muttrcColorBGH	contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcRXString,muttrcRXPatternNL
syn match muttrcColorBGNLH	contained skipnl "\s*\\$" nextgroup=muttrcColorBGH,muttrcColorBGNLH
syn match muttrcColorFGH	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGH,muttrcColorBGNLH
syn match muttrcColorFGNLH	contained skipnl "\s*\\$" nextgroup=muttrcColorFGH,muttrcColorFGNLH
syn match muttrcColorContextH	contained /\s*\<header\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGH,muttrcColorFGNLH
syn match muttrcColorNLH	contained skipnl "\s*\\$" nextgroup=muttrcColorContextH,muttrcColorNLH
syn match muttrcColorKeywordH	contained skipwhite /\<color\>/ nextgroup=muttrcColorContextH,muttrcColorNLH
syn region muttrcColorLine keepend skipwhite start=/\<color\s\+header\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordH,muttrcComment,muttrcUnHighlightSpace
" And now color's brother:
syn region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syn region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syn match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syn match muttrcUnColorPatNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
syn match muttrcUnColorAll	contained skipwhite /[*]/
syn match muttrcUnColorAPNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
syn match muttrcUnColorIndex	contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
syn match muttrcUnColorIndexNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
syn match muttrcUnColorKeyword	contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
syn region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace

" Mono are almost like color (ojects inherited from color)
syn keyword muttrcMonoAttrib	contained bold none normal reverse standout underline
syn keyword muttrcMono		contained mono		skipwhite nextgroup=muttrcColorField
syn match   muttrcMonoLine	"^\s*mono\s\+\S\+"	skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link muttrcComment		Comment
hi def link muttrcEscape		SpecialChar
hi def link muttrcRXChars		SpecialChar
hi def link muttrcString		String
hi def link muttrcRXString		String
hi def link muttrcRXString2	String
hi def link muttrcSpecial		Special
hi def link muttrcHooks		Type
hi def link muttrcGroupFlag	Type
hi def link muttrcGroupDef		Macro
hi def link muttrcAddrDef		muttrcGroupFlag
hi def link muttrcRXDef		muttrcGroupFlag
hi def link muttrcRXPat		String
hi def link muttrcAliasGroupName	Macro
hi def link muttrcAliasKey	        Identifier
hi def link muttrcUnAliasKey	Identifier
hi def link muttrcAliasEncEmail	Identifier
hi def link muttrcAliasParens	Type
hi def link muttrcSetNumAssignment	Number
hi def link muttrcSetBoolAssignment	Boolean
hi def link muttrcSetQuadAssignment	Boolean
hi def link muttrcSetStrAssignment	String
hi def link muttrcEmail		Special
hi def link muttrcVariableInner	Special
hi def link muttrcEscapedVariable	String
hi def link muttrcHeader		Type
hi def link muttrcKeySpecial	SpecialChar
hi def link muttrcKey		Type
hi def link muttrcKeyName		SpecialChar
hi def link muttrcVarBool		Identifier
hi def link muttrcVarQuad		Identifier
hi def link muttrcVarNum		Identifier
hi def link muttrcVarStr		Identifier
hi def link muttrcMenu		Identifier
hi def link muttrcCommand		Keyword
hi def link muttrcMacroDescr	String
hi def link muttrcAction		Macro
hi def link muttrcBadAction	Error
hi def link muttrcBindFunction	Error
hi def link muttrcBindMenuList	Error
hi def link muttrcFunction		Macro
hi def link muttrcGroupKeyword	muttrcCommand
hi def link muttrcGroupLine	Error
hi def link muttrcSubscribeKeyword	muttrcCommand
hi def link muttrcSubscribeLine	Error
hi def link muttrcListsKeyword	muttrcCommand
hi def link muttrcListsLine	Error
hi def link muttrcAlternateKeyword	muttrcCommand
hi def link muttrcAlternatesLine	Error
hi def link muttrcAttachmentsLine	muttrcCommand
hi def link muttrcAttachmentsFlag	Type
hi def link muttrcAttachmentsMimeType	String
hi def link muttrcColorLine	Error
hi def link muttrcColorContext	Error
hi def link muttrcColorContextI	Identifier
hi def link muttrcColorContextH	Identifier
hi def link muttrcColorKeyword	muttrcCommand
hi def link muttrcColorKeywordI	muttrcColorKeyword
hi def link muttrcColorKeywordH	muttrcColorKeyword
hi def link muttrcColorField	Identifier
hi def link muttrcColor		Type
hi def link muttrcColorFG		Error
hi def link muttrcColorFGI		Error
hi def link muttrcColorFGH		Error
hi def link muttrcColorBG		Error
hi def link muttrcColorBGI		Error
hi def link muttrcColorBGH		Error
hi def link muttrcMonoAttrib	muttrcColor
hi def link muttrcMono		muttrcCommand
hi def link muttrcSimplePat	Identifier
hi def link muttrcSimplePatString	Macro
hi def link muttrcSimplePatMetas	Special
hi def link muttrcPattern		Error
hi def link muttrcUnColorLine	Error
hi def link muttrcUnColorKeyword	muttrcCommand
hi def link muttrcUnColorIndex	Identifier
hi def link muttrcShellString	muttrcEscape
hi def link muttrcRXHooks		muttrcCommand
hi def link muttrcRXHookNot	Type
hi def link muttrcPatHooks		muttrcCommand
hi def link muttrcPatHookNot	Type
hi def link muttrcFormatConditionals2 Type
hi def link muttrcIndexFormatStr	muttrcString
hi def link muttrcIndexFormatEscapes muttrcEscape
hi def link muttrcIndexFormatConditionals muttrcFormatConditionals2
hi def link muttrcAliasFormatStr	muttrcString
hi def link muttrcAliasFormatEscapes muttrcEscape
hi def link muttrcAttachFormatStr	muttrcString
hi def link muttrcAttachFormatEscapes muttrcEscape
hi def link muttrcAttachFormatConditionals muttrcFormatConditionals2
hi def link muttrcComposeFormatStr	muttrcString
hi def link muttrcComposeFormatEscapes muttrcEscape
hi def link muttrcFolderFormatStr	muttrcString
hi def link muttrcFolderFormatEscapes muttrcEscape
hi def link muttrcFolderFormatConditionals muttrcFormatConditionals2
hi def link muttrcMixFormatStr	muttrcString
hi def link muttrcMixFormatEscapes muttrcEscape
hi def link muttrcMixFormatConditionals muttrcFormatConditionals2
hi def link muttrcPGPFormatStr	muttrcString
hi def link muttrcPGPFormatEscapes muttrcEscape
hi def link muttrcPGPFormatConditionals muttrcFormatConditionals2
hi def link muttrcPGPCmdFormatStr	muttrcString
hi def link muttrcPGPCmdFormatEscapes muttrcEscape
hi def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
hi def link muttrcStatusFormatStr	muttrcString
hi def link muttrcStatusFormatEscapes muttrcEscape
hi def link muttrcStatusFormatConditionals muttrcFormatConditionals2
hi def link muttrcPGPGetKeysFormatStr	muttrcString
hi def link muttrcPGPGetKeysFormatEscapes muttrcEscape
hi def link muttrcSmimeFormatStr	muttrcString
hi def link muttrcSmimeFormatEscapes muttrcEscape
hi def link muttrcSmimeFormatConditionals muttrcFormatConditionals2
hi def link muttrcTimeEscapes	muttrcEscape
hi def link muttrcPGPTimeEscapes	muttrcEscape
hi def link muttrcStrftimeEscapes	Type
hi def link muttrcStrftimeFormatStr muttrcString
hi def link muttrcFormatErrors Error

hi def link muttrcBindFunctionNL	SpecialChar
hi def link muttrcBindKeyNL	SpecialChar
hi def link muttrcBindMenuListNL	SpecialChar
hi def link muttrcMacroDescrNL	SpecialChar
hi def link muttrcMacroBodyNL	SpecialChar
hi def link muttrcMacroKeyNL	SpecialChar
hi def link muttrcMacroMenuListNL	SpecialChar
hi def link muttrcColorMatchCountNL SpecialChar
hi def link muttrcColorNL		SpecialChar
hi def link muttrcColorRXNL	SpecialChar
hi def link muttrcColorBGNL	SpecialChar
hi def link muttrcColorFGNL	SpecialChar
hi def link muttrcAliasNameNL	SpecialChar
hi def link muttrcAliasENNL	SpecialChar
hi def link muttrcAliasNL		SpecialChar
hi def link muttrcUnAliasNL	SpecialChar
hi def link muttrcAliasGroupDefNL	SpecialChar
hi def link muttrcAliasEncEmailNL	SpecialChar
hi def link muttrcPatternNL	SpecialChar
hi def link muttrcUnColorPatNL	SpecialChar
hi def link muttrcUnColorAPNL	SpecialChar
hi def link muttrcUnColorIndexNL	SpecialChar
hi def link muttrcStringNL		SpecialChar


let b:current_syntax = "muttrc"

let &cpo = s:cpo_save
unlet s:cpo_save
"EOF	vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim
PK�j�Zw#��?<?<vim80/syntax/mf.vimnu�[���" Vim syntax file
" Language:           METAFONT
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change:        2016 Oct 1

if exists("b:current_syntax")
  finish
endif

syn iskeyword @,_

" METAFONT 'primitives' as defined in chapter 25 of 'The METAFONTbook'
" Page 210: 'boolean expressions'
syn keyword mfBoolExp        and charexists false known not odd or true unknown

" Page 210: 'numeric expression'
syn keyword mfNumExp         ASCII angle cosd directiontime floor hex length
syn keyword mfNumExp         mexp mlog normaldeviate oct sind sqrt totalweight
syn keyword mfNumExp         turningnumber uniformdeviate xpart xxpart xypart
syn keyword mfNumExp         ypart yxpart yypart

" Page 211: 'internal quantities'
syn keyword mfInternal       autorounding boundarychar charcode chardp chardx
syn keyword mfInternal       chardy charext charht charic charwd day designsize
syn keyword mfInternal       fillin fontmaking granularity hppp jobname month
syn keyword mfInternal       pausing proofing showstopping smoothing time
syn keyword mfInternal       tracingcapsules tracingchoices tracingcommands
syn keyword mfInternal       tracingedges tracingequations tracingmacros
syn keyword mfInternal       tracingonline tracingoutput tracingpens
syn keyword mfInternal       tracingrestores tracingspecs tracingstats
syn keyword mfInternal       tracingtitles turningcheck vppp warningcheck
syn keyword mfInternal       xoffset year yoffset

" Page 212: 'pair expressions'
syn keyword mfPairExp        of penoffset point postcontrol precontrol rotated
syn keyword mfPairExp        scaled shifted slanted transformed xscaled yscaled
syn keyword mfPairExp        zscaled

" Page 213: 'path expressions'
syn keyword mfPathExp        atleast controls curl cycle makepath reverse
syn keyword mfPathExp        subpath tension

" Page 214: 'pen expressions'
syn keyword mfPenExp         makepen nullpen pencircle

" Page 214: 'picture expressions'
syn keyword mfPicExp         nullpicture

" Page 214: 'string expressions'
syn keyword mfStringExp      char decimal readstring str substring

" Page 217: 'commands and statements'
syn keyword mfCommand        addto also at batchmode contour cull delimiters
syn keyword mfCommand        display doublepath dropping dump end errhelp
syn keyword mfCommand        errmessage errorstopmode everyjob from interim
syn keyword mfCommand        inwindow keeping let message newinternal
syn keyword mfCommand        nonstopmode numspecial openwindow outer randomseed
syn keyword mfCommand        save scrollmode shipout show showdependencies
syn keyword mfCommand        showstats showtoken showvariable special to withpen
syn keyword mfCommand        withweight

" Page 56: 'types'
syn keyword mfType           boolean numeric pair path pen picture string
syn keyword mfType           transform

" Page 155: 'grouping'
syn keyword mfStatement      begingroup endgroup

" Page 165: 'definitions'
syn keyword mfDefinition     def enddef expr primary primarydef secondary
syn keyword mfDefinition     secondarydef suffix tertiary tertiarydef text
syn keyword mfDefinition     vardef

" Page 169: 'conditions and loops'
syn keyword mfCondition      else elseif endfor exitif fi for forever
syn keyword mfCondition      forsuffixes if step until

" Other primitives listed in the index
syn keyword mfPrimitive      charlist endinput expandafter extensible fontdimen
syn keyword mfPrimitive      headerbyte inner input intersectiontimes kern
syn keyword mfPrimitive      ligtable quote scantokens skipto

" Implicit suffix parameters
syn match   mfSuffixParam    "@#\|#@\|@"

" These are just tags, but given their special status, we
" highlight them as variables
syn keyword mfVariable       x y

" Keywords defined by plain.mf (defined on pp.262-278)
if get(g:, "plain_mf_macros", 1)
  syn keyword mfDef          addto_currentpicture beginchar capsule_def
  syn keyword mfDef          change_width clear_pen_memory clearit clearpen
  syn keyword mfDef          clearxy culldraw cullit cutdraw
  syn keyword mfDef          define_blacker_pixels define_corrected_pixels
  syn keyword mfDef          define_good_x_pixels define_good_y_pixels
  syn keyword mfDef          define_horizontal_corrected_pixels define_pixels
  syn keyword mfDef          define_whole_blacker_pixels define_whole_pixels
  syn keyword mfDef          define_whole_vertical_blacker_pixels
  syn keyword mfDef          define_whole_vertical_pixels downto draw drawdot
  syn keyword mfDef          endchar erase exitunless fill filldraw fix_units
  syn keyword mfDef          flex font_coding_scheme font_extra_space
  syn keyword mfDef          font_identifier font_normal_shrink
  syn keyword mfDef          font_normal_space font_normal_stretch font_quad
  syn keyword mfDef          font_size font_slant font_x_height gfcorners gobble
  syn keyword mfDef          hide imagerules interact italcorr killtext
  syn keyword mfDef          loggingall lowres_fix makebox makegrid maketicks
  syn keyword mfDef          mode_def mode_setup nodisplays notransforms numtok
  syn keyword mfDef          openit penrazor pensquare penstroke pickup
  syn keyword mfDef          proofoffset proofrule range reflectedabout
  syn keyword mfDef          rotatedaround screenchars screenrule screenstrokes
  syn keyword mfDef          shipit showit smode stop superellipse takepower
  syn keyword mfDef          tracingall tracingnone undraw undrawdot unfill
  syn keyword mfDef          unfilldraw upto z
  syn match   mfDef          "???"
  syn keyword mfVardef       bot byte ceiling counterclockwise cutoff decr dir
  syn keyword mfVardef       direction directionpoint grayfont hround incr
  syn keyword mfVardef       interpath inverse labelfont labels lft magstep
  " Note: nodot is not a vardef, it is used as in makelabel.lft.nodot("5",z5)
  " (METAFONT only)
  syn keyword mfVardef       makelabel max min nodot penlabels penpos
  syn keyword mfVardef       proofrulethickness round rt savepen slantfont solve
  syn keyword mfVardef       tensepath titlefont top unitvector vround whatever
  syn match   mpVardef       "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
  syn keyword mfPrimaryDef   div dotprod gobbled mod
  syn keyword mfSecondaryDef intersectionpoint
  syn keyword mfTertiaryDef  softjoin thru
  syn keyword mfNewInternal  blacker currentwindow displaying eps epsilon
  syn keyword mfNewInternal  infinity join_radius number_of_modes o_correction
  syn keyword mfNewInternal  pen_bot pen_lft pen_rt pen_top pixels_per_inch
  syn keyword mfNewInternal  screen_cols screen_rows tolerance
  " Predefined constants
  syn keyword mfConstant     base_name base_version blankpicture ditto down
  syn keyword mfConstant     fullcircle halfcircle identity left lowres origin
  syn keyword mfConstant     penspeck proof quartercircle right rulepen smoke
  syn keyword mfConstant     unitpixel unitsquare up
  " Other predefined variables
  syn keyword mfVariable     aspect_ratio currentpen extra_beginchar
  syn keyword mfVariable     extra_endchar currentpen_path currentpicture
  syn keyword mfVariable     currenttransform d extra_setup h localfont mag mode
  syn keyword mfVariable     mode_name w
  " let statements:
  syn keyword mfnumExp       abs
  syn keyword mfPairExp      rotatedabout
  syn keyword mfCommand      bye relax
endif

" By default, METAFONT loads modes.mf, too
if get(g:, "plain_mf_modes", 1)
  syn keyword mfConstant     APSSixMed AgfaFourZeroZero AgfaThreeFourZeroZero
  syn keyword mfConstant     AtariNineFive AtariNineSix AtariSLMEightZeroFour
  syn keyword mfConstant     AtariSMOneTwoFour CItohEightFiveOneZero
  syn keyword mfConstant     CItohThreeOneZero CanonBJCSixZeroZero CanonCX
  syn keyword mfConstant     CanonEX CanonLBPLX CanonLBPTen CanonSX ChelgraphIBX
  syn keyword mfConstant     CompugraphicEightSixZeroZero
  syn keyword mfConstant     CompugraphicNineSixZeroZero DD DEClarge DECsmall
  syn keyword mfConstant     DataDiscNew EightThree EpsonAction
  syn keyword mfConstant     EpsonLQFiveZeroZeroLo EpsonLQFiveZeroZeroMed
  syn keyword mfConstant     EpsonMXFX EpsonSQEightSevenZero EpsonStylusPro
  syn keyword mfConstant     EpsonStylusProHigh EpsonStylusProLow
  syn keyword mfConstant     EpsonStylusProMed FourFour GThreefax HPDeskJet
  syn keyword mfConstant     HPLaserJetIIISi IBMFourTwoFiveZero IBMFourTwoOneSix
  syn keyword mfConstant     IBMFourTwoThreeZero IBMFourZeroOneNine
  syn keyword mfConstant     IBMFourZeroThreeNine IBMFourZeroTwoNine
  syn keyword mfConstant     IBMProPrinter IBMSixOneFiveFour IBMSixSixSevenZero
  syn keyword mfConstant     IBMThreeEightOneTwo IBMThreeEightTwoZero
  syn keyword mfConstant     IBMThreeOneNineThree IBMThreeOneSevenNine
  syn keyword mfConstant     IBMUlfHolleberg LASevenFive LNOthreR LNOthree
  syn keyword mfConstant     LNZeroOne LNZeroThree LPSFourZero LPSTwoZero
  syn keyword mfConstant     LexmarkFourZeroThreeNine LexmarkOptraR
  syn keyword mfConstant     LexmarkOptraS LinotypeLThreeThreeZero
  syn keyword mfConstant     LinotypeOneZeroZero LinotypeOneZeroZeroLo
  syn keyword mfConstant     LinotypeThreeZeroZeroHi MacTrueSize NeXTprinter
  syn keyword mfConstant     NeXTscreen NecTwoZeroOne Newgen NineOne
  syn keyword mfConstant     OCESixSevenFiveZeroPS OneTwoZero OneZeroZero
  syn keyword mfConstant     PrintwareSevenTwoZeroIQ Prism QMSOneSevenTwoFive
  syn keyword mfConstant     QMSOneSevenZeroZero QMSTwoFourTwoFive RicohA
  syn keyword mfConstant     RicohFortyEighty RicohFourZeroEightZero RicohLP
  syn keyword mfConstant     SparcPrinter StarNLOneZero VAXstation VTSix
  syn keyword mfConstant     VarityperFiveZeroSixZeroW
  syn keyword mfConstant     VarityperFourThreeZeroZeroHi
  syn keyword mfConstant     VarityperFourThreeZeroZeroLo
  syn keyword mfConstant     VarityperFourTwoZeroZero VarityperSixZeroZero
  syn keyword mfConstant     XeroxDocutech XeroxEightSevenNineZero
  syn keyword mfConstant     XeroxFourZeroFiveZero XeroxNineSevenZeroZero
  syn keyword mfConstant     XeroxPhaserSixTwoZeroZeroDP XeroxThreeSevenZeroZero
  syn keyword mfConstant     Xerox_world agfafzz agfatfzz amiga aps apssixhi
  syn keyword mfConstant     aselect atariezf atarinf atarins atariotf bitgraph
  syn keyword mfConstant     bjtenex bjtzzex bjtzzl bjtzzs boise canonbjc
  syn keyword mfConstant     canonex canonlbp cg cgl cgnszz citohtoz corona crs
  syn keyword mfConstant     cthreeten cx datadisc declarge decsmall deskjet
  syn keyword mfConstant     docutech dover dp dpdfezzz eighthre elvira epscszz
  syn keyword mfConstant     epsdraft epsdrft epsdrftl epsfast epsfastl epshi
  syn keyword mfConstant     epslo epsmed epsmedl epson epsonact epsonfx epsonl
  syn keyword mfConstant     epsonlo epsonlol epsonlq epsonsq epstylus epstylwr
  syn keyword mfConstant     epstyplo epstypmd epstypml epstypro epswlo epswlol
  syn keyword mfConstant     esphi fourfour gpx gtfax gtfaxhi gtfaxl gtfaxlo
  syn keyword mfConstant     gtfaxlol help hifax highfax hplaser hprugged ibm_a
  syn keyword mfConstant     ibmd ibmega ibmegal ibmfzon ibmfztn ibmpp ibmppl
  syn keyword mfConstant     ibmsoff ibmteot ibmtetz ibmtont ibmtosn ibmtosnl
  syn keyword mfConstant     ibmvga ibx imagen imagewriter itoh itohl itohtoz
  syn keyword mfConstant     itohtozl iw jetiiisi kyocera laserjet laserjetfive
  syn keyword mfConstant     laserjetfivemp laserjetfour laserjetfourthousand
  syn keyword mfConstant     laserjetfourzerozerozero laserjethi laserjetlo
  syn keyword mfConstant     laserjettwoonezerozero
  syn keyword mfConstant     laserjettwoonezerozerofastres lasermaster
  syn keyword mfConstant     laserwriter lasf lexmarkr lexmarks lexmarku
  syn keyword mfConstant     linohalf linohi linolo linolttz linoone linosuper
  syn keyword mfConstant     linothree linothreelo linotzzh ljfive ljfivemp
  syn keyword mfConstant     ljfour ljfzzz ljfzzzfr ljlo ljtozz ljtozzfr lmaster
  syn keyword mfConstant     lnotr lnzo lps lpstz lqhires lqlores lqmed lqmedl
  syn keyword mfConstant     lqmedres lview lviewl lwpro macmag mactrue modes_mf
  syn keyword mfConstant     ncd nec nechi neclm nectzo newdd newddl nexthi
  syn keyword mfConstant     nextscreen nextscrn nineone nullmode ocessfz
  syn keyword mfConstant     okidata okidatal okifourten okifte okihi onetz
  syn keyword mfConstant     onezz pcprevw pcscreen phaser phaserfs phasertf
  syn keyword mfConstant     phasertfl phasertl pixpt printware prntware
  syn keyword mfConstant     proprinter qms qmsesz qmsostf qmsoszz qmstftf ricoh
  syn keyword mfConstant     ricoha ricohlp ricohsp sherpa sparcptr starnlt
  syn keyword mfConstant     starnltl styletwo stylewr stylewri stylewriter sun
  syn keyword mfConstant     supre swtwo toshiba ultre varityper vs vtftzz
  syn keyword mfConstant     vtftzzhi vtftzzlo vtfzszw vtszz xpstzz xpstzzl
  syn keyword mfConstant     xrxesnz xrxfzfz xrxnszz xrxtszz
  syn keyword mfDef          BCPL_string coding_scheme font_face_byte
  syn keyword mfDef          font_family landscape
  syn keyword mfDef          mode_extra_info mode_help mode_param
  syn keyword mfNewInternal  blacker_min
endif

" Some other basic macro names, e.g., from cmbase, logo, etc.
if get(g:, "other_mf_macros", 1)
  syn keyword mfDef          beginlogochar
  syn keyword mfDef          font_setup
  syn keyword mfPrimitive    generate
endif

" Numeric tokens
syn match     mfNumeric      "[-]\=\d\+"
syn match     mfNumeric      "[-]\=\.\d\+"
syn match     mfNumeric      "[-]\=\d\+\.\d\+"

" METAFONT lengths
syn match     mfLength       "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"
syn match     mfLength       "[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
syn match     mfLength       "[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
syn match     mfLength       "[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="

" String constants
syn match     mfOpenString   /"[^"]*/
syn region    mfString       oneline keepend start=+"+ end=+"+

" Comments:
syn keyword   mfTodoComment  contained TODO FIXME XXX DEBUG NOTE
syn match     mfComment      "%.*$" contains=mfTodoComment,@Spell

" synchronizing
syn sync maxlines=50

" Define the default highlighting
hi def link mfBoolExp      Statement
hi def link mfNumExp       Statement
hi def link mfPairExp      Statement
hi def link mfPathExp      Statement
hi def link mfPenExp       Statement
hi def link mfPicExp       Statement
hi def link mfStringExp    Statement
hi def link mfInternal     Identifier
hi def link mfCommand      Statement
hi def link mfType         Type
hi def link mfStatement    Statement
hi def link mfDefinition   Statement
hi def link mfCondition    Conditional
hi def link mfPrimitive    Statement
hi def link mfDef          Function
hi def link mfVardef       mfDef
hi def link mfPrimaryDef   mfDef
hi def link mfSecondaryDef mfDef
hi def link mfTertiaryDef  mfDef
hi def link mfCoord        Identifier
hi def link mfPoint        Identifier
hi def link mfNumeric      Number
hi def link mfLength       Number
hi def link mfComment      Comment
hi def link mfString       String
hi def link mfOpenString   Todo
hi def link mfSuffixParam  Label
hi def link mfNewInternal  mfInternal
hi def link mfVariable     Identifier
hi def link mfConstant     Constant
hi def link mfTodoComment  Todo

let b:current_syntax = "mf"

" vim:sw=2
PK�j�Z�F�6��vim80/syntax/radiance.vimnu�[���" Vim syntax file
" Language:     Radiance Scene Description
" Maintainer:   Georg Mischler <schorsch@schorsch.com>
" Last change:  26. April. 2001

" Radiance is a lighting simulation software package written
" by Gregory Ward-Larson ("the computer artist formerly known
" as Greg Ward"), then at LBNL.
"
" http://radsite.lbl.gov/radiance/HOME.html
"
" Of course, there is also information available about it
" from http://www.schorsch.com/


" We take a minimalist approach here, highlighting just the
" essential properties of each object, its type and ID, as well as
" comments, external command names and the null-modifier "void".


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" all printing characters except '#' and '!' are valid in names.
setlocal iskeyword=\",$-~

" The null-modifier
syn keyword radianceKeyword void

" The different kinds of scene description object types
" Reference types
syn keyword radianceExtraType contained alias instance
" Surface types
syn keyword radianceSurfType contained ring polygon sphere bubble
syn keyword radianceSurfType contained cone cup cylinder tube source
" Emitting material types
syn keyword radianceLightType contained light glow illum spotlight
" Material types
syn keyword radianceMatType contained mirror mist prism1 prism2
syn keyword radianceMatType contained metal plastic trans
syn keyword radianceMatType contained metal2 plastic2 trans2
syn keyword radianceMatType contained metfunc plasfunc transfunc
syn keyword radianceMatType contained metdata plasdata transdata
syn keyword radianceMatType contained dielectric interface glass
syn keyword radianceMatType contained BRTDfunc antimatter
" Pattern modifier types
syn keyword radiancePatType contained colorfunc brightfunc
syn keyword radiancePatType contained colordata colorpict brightdata
syn keyword radiancePatType contained colortext brighttext
" Texture modifier types
syn keyword radianceTexType contained texfunc texdata
" Mixture types
syn keyword radianceMixType contained mixfunc mixdata mixpict mixtext


" Each type name is followed by an ID.
" This doesn't work correctly if the id is one of the type names of the
" same class (which is legal for radiance), in which case the id will get
" type color as well, and the int count (or alias reference) gets id color.

syn region radianceID start="\<alias\>"      end="\<\k*\>" contains=radianceExtraType
syn region radianceID start="\<instance\>"   end="\<\k*\>" contains=radianceExtraType

syn region radianceID start="\<source\>"     end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<ring\>"	     end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<polygon\>"    end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<sphere\>"     end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<bubble\>"     end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<cone\>"	     end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<cup\>"	     end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<cylinder\>"   end="\<\k*\>" contains=radianceSurfType
syn region radianceID start="\<tube\>"	     end="\<\k*\>" contains=radianceSurfType

syn region radianceID start="\<light\>"      end="\<\k*\>" contains=radianceLightType
syn region radianceID start="\<glow\>"	     end="\<\k*\>" contains=radianceLightType
syn region radianceID start="\<illum\>"      end="\<\k*\>" contains=radianceLightType
syn region radianceID start="\<spotlight\>"  end="\<\k*\>" contains=radianceLightType

syn region radianceID start="\<mirror\>"     end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<mist\>"	     end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<prism1\>"     end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<prism2\>"     end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<metal\>"      end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<plastic\>"    end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<trans\>"      end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<metal2\>"     end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<plastic2\>"   end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<trans2\>"     end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<metfunc\>"    end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<plasfunc\>"   end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<transfunc\>"  end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<metdata\>"    end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<plasdata\>"   end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<transdata\>"  end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<dielectric\>" end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<interface\>"  end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<glass\>"      end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<BRTDfunc\>"   end="\<\k*\>" contains=radianceMatType
syn region radianceID start="\<antimatter\>" end="\<\k*\>" contains=radianceMatType

syn region radianceID start="\<colorfunc\>"  end="\<\k*\>" contains=radiancePatType
syn region radianceID start="\<brightfunc\>" end="\<\k*\>" contains=radiancePatType
syn region radianceID start="\<colordata\>"  end="\<\k*\>" contains=radiancePatType
syn region radianceID start="\<brightdata\>" end="\<\k*\>" contains=radiancePatType
syn region radianceID start="\<colorpict\>"  end="\<\k*\>" contains=radiancePatType
syn region radianceID start="\<colortext\>"  end="\<\k*\>" contains=radiancePatType
syn region radianceID start="\<brighttext\>" end="\<\k*\>" contains=radiancePatType

syn region radianceID start="\<texfunc\>"    end="\<\k*\>" contains=radianceTexType
syn region radianceID start="\<texdata\>"    end="\<\k*\>" contains=radianceTexType

syn region radianceID start="\<mixfunc\>"    end="\<\k*\>" contains=radianceMixType
syn region radianceID start="\<mixdata\>"    end="\<\k*\>" contains=radianceMixType
syn region radianceID start="\<mixtext\>"    end="\<\k*\>" contains=radianceMixType

" external commands (generators, xform et al.)
syn match radianceCommand "^\s*!\s*[^\s]\+\>"

" The usual suspects
syn keyword radianceTodo contained TODO XXX
syn match radianceComment "#.*$" contains=radianceTodo

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link radianceKeyword	Keyword
hi def link radianceExtraType	Type
hi def link radianceSurfType	Type
hi def link radianceLightType	Type
hi def link radianceMatType	Type
hi def link radiancePatType	Type
hi def link radianceTexType	Type
hi def link radianceMixType	Type
hi def link radianceComment	Comment
hi def link radianceCommand	Function
hi def link radianceID		String
hi def link radianceTodo		Todo

let b:current_syntax = "radiance"

" vim: ts=8 sw=2
PK�j�Z�%��|�|vim80/syntax/cucumber.vimnu�[���" Vim syntax file
" Language:     Cucumber
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Filenames:    *.feature
" Last Change:	2013 May 30

if exists("b:current_syntax")
    finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn case match
syn sync minlines=20

let g:cucumber_languages = {
      \"en": {"and": "And\\>", "background": "Background\\>", "but": "But\\>", "examples": "Scenarios\\>\\|Examples\\>", "feature": "Business Need\\>\\|Feature\\>\\|Ability\\>", "given": "Given\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Template\\>\\|Scenario Outline\\>", "then": "Then\\>", "when": "When\\>"},
      \"ar": {"and": "\\%u0648\\>", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629\\>", "but": "\\%u0644\\%u0643\\%u0646\\>", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629\\>", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629\\>", "given": "\\%u0628\\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648\\>", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637\\>", "then": "\\%u0627\\%u0630\\%u0627\\%u064b\\>\\|\\%u062b\\%u0645\\>", "when": "\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627\\>\\|\\%u0645\\%u062a\\%u0649\\>"},
      \"bg": {"and": "\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e\\>"},
      \"bm": {"and": "Dan\\>", "background": "Latar Belakang\\>", "but": "Tetapi\\>", "examples": "Contoh \\>", "feature": "Fungsi\\>", "given": "Bagi\\>", "scenario": "Senario\\>", "scenario_outline": "Menggariskan Senario \\>", "then": "Kemudian\\>", "when": "Apabila\\>"},
      \"ca": {"and": "I\\>", "background": "Antecedents\\>\\|Rerefons\\>", "but": "Per\\%u00f2\\>", "examples": "Exemples\\>", "feature": "Caracter\\%u00edstica\\>\\|Funcionalitat\\>", "given": "At\\%u00e8s\\>\\|Donada\\>\\|Donat\\>\\|Atesa\\>", "scenario": "Escenari\\>", "scenario_outline": "Esquema de l'escenari\\>", "then": "Aleshores\\>\\|Cal\\>", "when": "Quan\\>"},
      \"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Pozad\\%u00ed\\>\\|Kontext\\>", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady\\>", "feature": "Po\\%u017eadavek\\>", "given": "Za p\\%u0159edpokladu\\>\\|Pokud\\>", "scenario": "Sc\\%u00e9n\\%u00e1\\%u0159\\>", "scenario_outline": "N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e\\>\\|Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\>", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"},
      \"cy-GB": {"and": "A\\>", "background": "Cefndir\\>", "but": "Ond\\>", "examples": "Enghreifftiau\\>", "feature": "Arwedd\\>", "given": "Anrhegedig a\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Amlinellol\\>", "then": "Yna\\>", "when": "Pryd\\>"},
      \"da": {"and": "Og\\>", "background": "Baggrund\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskab\\>", "given": "Givet\\>", "scenario": "Scenarie\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
      \"de": {"and": "Und\\>", "background": "Grundlage\\>", "but": "Aber\\>", "examples": "Beispiele\\>", "feature": "Funktionalit\\%u00e4t\\>", "given": "Gegeben sei\\>\\|Angenommen\\>", "scenario": "Szenario\\>", "scenario_outline": "Szenariogrundriss\\>", "then": "Dann\\>", "when": "Wenn\\>"},
      \"el": {"and": "\\%u039a\\%u03b1\\%u03b9\\>", "background": "\\%u03a5\\%u03c0\\%u03cc\\%u03b2\\%u03b1\\%u03b8\\%u03c1\\%u03bf\\>", "but": "\\%u0391\\%u03bb\\%u03bb\\%u03ac\\>", "examples": "\\%u03a0\\%u03b1\\%u03c1\\%u03b1\\%u03b4\\%u03b5\\%u03af\\%u03b3\\%u03bc\\%u03b1\\%u03c4\\%u03b1\\>\\|\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03b1\\>", "feature": "\\%u0394\\%u03c5\\%u03bd\\%u03b1\\%u03c4\\%u03cc\\%u03c4\\%u03b7\\%u03c4\\%u03b1\\>\\|\\%u039b\\%u03b5\\%u03b9\\%u03c4\\%u03bf\\%u03c5\\%u03c1\\%u03b3\\%u03af\\%u03b1\\>", "given": "\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5 \\%u03cc\\%u03c4\\%u03b9\\>\\|\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5\\>", "scenario": "\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03bf\\>", "scenario_outline": "\\%u03a0\\%u03b5\\%u03c1\\%u03b9\\%u03b3\\%u03c1\\%u03b1\\%u03c6\\%u03ae \\%u03a3\\%u03b5\\%u03bd\\%u03b1\\%u03c1\\%u03af\\%u03bf\\%u03c5\\>", "then": "\\%u03a4\\%u03cc\\%u03c4\\%u03b5\\>", "when": "\\%u038c\\%u03c4\\%u03b1\\%u03bd\\>"},
      \"en-Scouse": {"and": "An\\>", "background": "Dis is what went down\\>", "but": "Buh\\>", "examples": "Examples\\>", "feature": "Feature\\>", "given": "Youse know when youse got\\>\\|Givun\\>", "scenario": "The thing of it is\\>", "scenario_outline": "Wharrimean is\\>", "then": "Den youse gotta\\>\\|Dun\\>", "when": "Youse know like when\\>\\|Wun\\>"},
      \"en-au": {"and": "Too right\\>", "background": "First off\\>", "but": "Yeah nah\\>", "examples": "You'll wanna\\>", "feature": "Pretty much\\>", "given": "Y'know\\>", "scenario": "Awww, look mate\\>", "scenario_outline": "Reckon it's like\\>", "then": "But at the end of the day I reckon\\>", "when": "It's just unbelievable\\>"},
      \"en-lol": {"and": "AN\\>", "background": "B4\\>", "but": "BUT\\>", "examples": "EXAMPLZ\\>", "feature": "OH HAI\\>", "given": "I CAN HAZ\\>", "scenario": "MISHUN\\>", "scenario_outline": "MISHUN SRSLY\\>", "then": "DEN\\>", "when": "WEN\\>"},
      \"en-old": {"and": "Ond\\>\\|7\\>", "background": "\\%u00c6r\\>\\|Aer\\>", "but": "Ac\\>", "examples": "Se \\%u00f0e\\>\\|Se \\%u00fee\\>\\|Se the\\>", "feature": "Hw\\%u00e6t\\>\\|Hwaet\\>", "given": "\\%u00d0urh\\>\\|\\%u00deurh\\>\\|Thurh\\>", "scenario": "Swa\\>", "scenario_outline": "Swa hw\\%u00e6r swa\\>\\|Swa hwaer swa\\>", "then": "\\%u00d0a \\%u00f0e\\>\\|\\%u00dea \\%u00fee\\>\\|\\%u00dea\\>\\|\\%u00d0a\\>\\|Tha the\\>\\|Tha\\>", "when": "\\%u00d0a\\>\\|\\%u00dea\\>\\|Tha\\>"},
      \"en-pirate": {"and": "Aye\\>", "background": "Yo-ho-ho\\>", "but": "Avast!\\>", "examples": "Dead men tell no tales\\>", "feature": "Ahoy matey!\\>", "given": "Gangway!\\>", "scenario": "Heave to\\>", "scenario_outline": "Shiver me timbers\\>", "then": "Let go and haul\\>", "when": "Blimey!\\>"},
      \"en-tx": {"and": "And y'all\\>", "background": "Background\\>", "but": "But y'all\\>", "examples": "Examples\\>", "feature": "Feature\\>", "given": "Given y'all\\>", "scenario": "Scenario\\>", "scenario_outline": "All y'all\\>", "then": "Then y'all\\>", "when": "When y'all\\>"},
      \"eo": {"and": "Kaj\\>", "background": "Fono\\>", "but": "Sed\\>", "examples": "Ekzemploj\\>", "feature": "Trajto\\>", "given": "Donita\\%u0135o\\>", "scenario": "Scenaro\\>", "scenario_outline": "Konturo de la scenaro\\>", "then": "Do\\>", "when": "Se\\>"},
      \"es": {"and": "Y\\>", "background": "Antecedentes\\>", "but": "Pero\\>", "examples": "Ejemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esquema del escenario\\>", "then": "Entonces\\>", "when": "Cuando\\>"},
      \"et": {"and": "Ja\\>", "background": "Taust\\>", "but": "Kuid\\>", "examples": "Juhtumid\\>", "feature": "Omadus\\>", "given": "Eeldades\\>", "scenario": "Stsenaarium\\>", "scenario_outline": "Raamstsenaarium\\>", "then": "Siis\\>", "when": "Kui\\>"},
      \"fa": {"and": "\\%u0648\\>", "background": "\\%u0632\\%u0645\\%u06cc\\%u0646\\%u0647\\>", "but": "\\%u0627\\%u0645\\%u0627\\>", "examples": "\\%u0646\\%u0645\\%u0648\\%u0646\\%u0647 \\%u0647\\%u0627\\>", "feature": "\\%u0648\\%u0650\\%u06cc\\%u0698\\%u06af\\%u06cc\\>", "given": "\\%u0628\\%u0627 \\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\>", "scenario_outline": "\\%u0627\\%u0644\\%u06af\\%u0648\\%u06cc \\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\>", "then": "\\%u0622\\%u0646\\%u06af\\%u0627\\%u0647\\>", "when": "\\%u0647\\%u0646\\%u06af\\%u0627\\%u0645\\%u06cc\\>"},
      \"fi": {"and": "Ja\\>", "background": "Tausta\\>", "but": "Mutta\\>", "examples": "Tapaukset\\>", "feature": "Ominaisuus\\>", "given": "Oletetaan\\>", "scenario": "Tapaus\\>", "scenario_outline": "Tapausaihio\\>", "then": "Niin\\>", "when": "Kun\\>"},
      \"fr": {"and": "Et\\>", "background": "Contexte\\>", "but": "Mais\\>", "examples": "Exemples\\>", "feature": "Fonctionnalit\\%u00e9\\>", "given": "\\%u00c9tant donn\\%u00e9es\\>\\|\\%u00c9tant donn\\%u00e9s\\>\\|\\%u00c9tant donn\\%u00e9e\\>\\|\\%u00c9tant donn\\%u00e9\\>\\|Etant donn\\%u00e9es\\>\\|Etant donn\\%u00e9s\\>\\|Etant donn\\%u00e9e\\>\\|Etant donn\\%u00e9\\>\\|Soit\\>", "scenario": "Sc\\%u00e9nario\\>", "scenario_outline": "Plan du sc\\%u00e9nario\\>\\|Plan du Sc\\%u00e9nario\\>", "then": "Alors\\>", "when": "Lorsqu'\\|Lorsque\\>\\|Quand\\>"},
      \"gl": {"and": "E\\>", "background": "Contexto\\>", "but": "Mais\\>\\|Pero\\>", "examples": "Exemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esbozo do escenario\\>", "then": "Ent\\%u00f3n\\>\\|Logo\\>", "when": "Cando\\>"},
      \"he": {"and": "\\%u05d5\\%u05d2\\%u05dd\\>", "background": "\\%u05e8\\%u05e7\\%u05e2\\>", "but": "\\%u05d0\\%u05d1\\%u05dc\\>", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea\\>", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4\\>", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df\\>", "scenario": "\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "then": "\\%u05d0\\%u05d6\\%u05d9\\>\\|\\%u05d0\\%u05d6\\>", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8\\>"},
      \"hi": {"and": "\\%u0924\\%u0925\\%u093e\\>\\|\\%u0914\\%u0930\\>", "background": "\\%u092a\\%u0943\\%u0937\\%u094d\\%u0920\\%u092d\\%u0942\\%u092e\\%u093f\\>", "but": "\\%u092a\\%u0930\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923\\>", "feature": "\\%u0930\\%u0942\\%u092a \\%u0932\\%u0947\\%u0916\\>", "given": "\\%u091a\\%u0942\\%u0902\\%u0915\\%u093f\\>\\|\\%u092f\\%u0926\\%u093f\\>\\|\\%u0905\\%u0917\\%u0930\\>", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f\\>", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e\\>", "then": "\\%u0924\\%u092c\\>", "when": "\\%u091c\\%u092c\\>"},
      \"hr": {"and": "I\\>", "background": "Pozadina\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primjeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadano\\>\\|Zadani\\>\\|Zadan\\>", "scenario": "Scenarij\\>", "scenario_outline": "Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
      \"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r\\>", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k\\>", "feature": "Jellemz\\%u0151\\>", "given": "Amennyiben\\>\\|Adott\\>", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\>", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat\\>", "then": "Akkor\\>", "when": "Amikor\\>\\|Majd\\>\\|Ha\\>"},
      \"id": {"and": "Dan\\>", "background": "Dasar\\>", "but": "Tapi\\>", "examples": "Contoh\\>", "feature": "Fitur\\>", "given": "Dengan\\>", "scenario": "Skenario\\>", "scenario_outline": "Skenario konsep\\>", "then": "Maka\\>", "when": "Ketika\\>"},
      \"is": {"and": "Og\\>", "background": "Bakgrunnur\\>", "but": "En\\>", "examples": "Atbur\\%u00f0ar\\%u00e1sir\\>\\|D\\%u00e6mi\\>", "feature": "Eiginleiki\\>", "given": "Ef\\>", "scenario": "Atbur\\%u00f0ar\\%u00e1s\\>", "scenario_outline": "L\\%u00fdsing Atbur\\%u00f0ar\\%u00e1sar\\>\\|L\\%u00fdsing D\\%u00e6ma\\>", "then": "\\%u00de\\%u00e1\\>", "when": "\\%u00deegar\\>"},
      \"it": {"and": "E\\>", "background": "Contesto\\>", "but": "Ma\\>", "examples": "Esempi\\>", "feature": "Funzionalit\\%u00e0\\>", "given": "Dato\\>\\|Data\\>\\|Dati\\>\\|Date\\>", "scenario": "Scenario\\>", "scenario_outline": "Schema dello scenario\\>", "then": "Allora\\>", "when": "Quando\\>"},
      \"ja": {"and": "\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u3057\\%u304b\\%u3057\\|\\%u305f\\%u3060\\%u3057\\|\\%u4f46\\%u3057", "examples": "\\%u30b5\\%u30f3\\%u30d7\\%u30eb\\>\\|\\%u4f8b\\>", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3\\>\\|\\%u6a5f\\%u80fd\\>", "given": "\\%u524d\\%u63d0", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\>", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>\\|\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"},
      \"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd\\>", "but": "\\%ud558\\%uc9c0\\%ub9cc\\|\\%ub2e8", "examples": "\\%uc608\\>", "feature": "\\%uae30\\%ub2a5\\>", "given": "\\%uc870\\%uac74\\|\\%uba3c\\%uc800", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624\\>", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694\\>", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c\\|\\%ub9cc\\%uc57d"},
      \"lt": {"and": "Ir\\>", "background": "Kontekstas\\>", "but": "Bet\\>", "examples": "Pavyzd\\%u017eiai\\>\\|Scenarijai\\>\\|Variantai\\>", "feature": "Savyb\\%u0117\\>", "given": "Duota\\>", "scenario": "Scenarijus\\>", "scenario_outline": "Scenarijaus \\%u0161ablonas\\>", "then": "Tada\\>", "when": "Kai\\>"},
      \"lu": {"and": "an\\>\\|a\\>", "background": "Hannergrond\\>", "but": "m\\%u00e4\\>\\|awer\\>", "examples": "Beispiller\\>", "feature": "Funktionalit\\%u00e9it\\>", "given": "ugeholl\\>", "scenario": "Szenario\\>", "scenario_outline": "Plang vum Szenario\\>", "then": "dann\\>", "when": "wann\\>"},
      \"lv": {"and": "Un\\>", "background": "Situ\\%u0101cija\\>\\|Konteksts\\>", "but": "Bet\\>", "examples": "Piem\\%u0113ri\\>\\|Paraugs\\>", "feature": "Funkcionalit\\%u0101te\\>\\|F\\%u012b\\%u010da\\>", "given": "Kad\\>", "scenario": "Scen\\%u0101rijs\\>", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga\\>", "then": "Tad\\>", "when": "Ja\\>"},
      \"nl": {"and": "En\\>", "background": "Achtergrond\\>", "but": "Maar\\>", "examples": "Voorbeelden\\>", "feature": "Functionaliteit\\>", "given": "Gegeven\\>\\|Stel\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstract Scenario\\>", "then": "Dan\\>", "when": "Als\\>"},
      \"no": {"and": "Og\\>", "background": "Bakgrunn\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskap\\>", "given": "Gitt\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>\\|Scenariomal\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
      \"pl": {"and": "Oraz\\>\\|I\\>", "background": "Za\\%u0142o\\%u017cenia\\>", "but": "Ale\\>", "examples": "Przyk\\%u0142ady\\>", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\>\\|Potrzeba biznesowa\\>\\|Funkcja\\>\\|Aspekt\\>", "given": "Zak\\%u0142adaj\\%u0105c\\>\\|Maj\\%u0105c\\>", "scenario": "Scenariusz\\>", "scenario_outline": "Szablon scenariusza\\>", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>\\|Je\\%u015bli\\>\\|Kiedy\\>\\|Gdy\\>"},
      \"pt": {"and": "E\\>", "background": "Cen\\%u00e1rio de Fundo\\>\\|Cenario de Fundo\\>\\|Contexto\\>\\|Fundo\\>", "but": "Mas\\>", "examples": "Cen\\%u00e1rios\\>\\|Exemplos\\>\\|Cenarios\\>", "feature": "Caracter\\%u00edstica\\>\\|Funcionalidade\\>\\|Caracteristica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Cen\\%u00e1rio\\>\\|Cenario\\>", "scenario_outline": "Delinea\\%u00e7\\%u00e3o do Cen\\%u00e1rio\\>\\|Esquema do Cen\\%u00e1rio\\>\\|Delineacao do Cenario\\>\\|Esquema do Cenario\\>", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"},
      \"ro": {"and": "\\%u015ei\\>\\|\\%u0218i\\>\\|Si\\>", "background": "Context\\>", "but": "Dar\\>", "examples": "Exemple\\>", "feature": "Func\\%u0163ionalitate\\>\\|Func\\%u021bionalitate\\>\\|Functionalitate\\>", "given": "Da\\%u0163i fiind\\>\\|Da\\%u021bi fiind\\>\\|Dati fiind\\>\\|Date fiind\\>\\|Dat fiind\\>", "scenario": "Scenariu\\>", "scenario_outline": "Structur\\%u0103 scenariu\\>\\|Structura scenariu\\>", "then": "Atunci\\>", "when": "C\\%u00e2nd\\>\\|Cand\\>"},
      \"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0422\\%u0430\\%u043a\\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>\\|\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>", "but": "\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u044b\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>\\|\\%u0421\\%u0432\\%u043e\\%u0439\\%u0441\\%u0442\\%u0432\\%u043e\\>\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u044f\\>", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>\\|\\%u041f\\%u0443\\%u0441\\%u0442\\%u044c\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\>", "then": "\\%u0422\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0415\\%u0441\\%u043b\\%u0438\\>"},
      \"sk": {"and": "A z\\%u00e1rove\\%u0148\\>\\|A taktie\\%u017e\\>\\|A tie\\%u017e\\>\\|A\\>", "background": "Pozadie\\>", "but": "Ale\\>", "examples": "Pr\\%u00edklady\\>", "feature": "Po\\%u017eiadavka\\>\\|Vlastnos\\%u0165\\>\\|Funkcia\\>", "given": "Za predpokladu\\>\\|Pokia\\%u013e\\>", "scenario": "Scen\\%u00e1r\\>", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru\\>\\|N\\%u00e1\\%u010drt Scen\\%u00e1ra\\>\\|Osnova Scen\\%u00e1ra\\>", "then": "Potom\\>\\|Tak\\>", "when": "Ke\\%u010f\\>\\|Ak\\>"},
      \"sr-Cyrl": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>\\|\\%u041f\\%u043e\\%u0437\\%u0430\\%u0434\\%u0438\\%u043d\\%u0430\\>\\|\\%u041e\\%u0441\\%u043d\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0438\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0438\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041c\\%u043e\\%u0433\\%u0443\\%u045b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041e\\%u0441\\%u043e\\%u0431\\%u0438\\%u043d\\%u0430\\>", "given": "\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u043e\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0435\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0438\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\>\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\>\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430\\>", "then": "\\%u041e\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u041a\\%u0430\\%u0434\\%u0430\\>\\|\\%u041a\\%u0430\\%u0434\\>"},
      \"sr-Latn": {"and": "I\\>", "background": "Kontekst\\>\\|Pozadina\\>\\|Osnova\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Funkcionalnost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadato\\>\\|Zadate\\>\\|Zatati\\>", "scenario": "Scenario\\>\\|Primer\\>", "scenario_outline": "Struktura scenarija\\>\\|Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
      \"sv": {"and": "Och\\>", "background": "Bakgrund\\>", "but": "Men\\>", "examples": "Exempel\\>", "feature": "Egenskap\\>", "given": "Givet\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>\\|Scenariomall\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"},
      \"th": {"and": "\\%u0e41\\%u0e25\\%u0e30\\>", "background": "\\%u0e41\\%u0e19\\%u0e27\\%u0e04\\%u0e34\\%u0e14\\>", "but": "\\%u0e41\\%u0e15\\%u0e48\\>", "examples": "\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>\\|\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e15\\%u0e31\\%u0e27\\%u0e2d\\%u0e22\\%u0e48\\%u0e32\\%u0e07\\>", "feature": "\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e15\\%u0e49\\%u0e2d\\%u0e07\\%u0e01\\%u0e32\\%u0e23\\%u0e17\\%u0e32\\%u0e07\\%u0e18\\%u0e38\\%u0e23\\%u0e01\\%u0e34\\%u0e08\\>\\|\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e2a\\%u0e32\\%u0e21\\%u0e32\\%u0e23\\%u0e16\\>\\|\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2b\\%u0e25\\%u0e31\\%u0e01\\>", "given": "\\%u0e01\\%u0e33\\%u0e2b\\%u0e19\\%u0e14\\%u0e43\\%u0e2b\\%u0e49\\>", "scenario": "\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>", "scenario_outline": "\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2a\\%u0e23\\%u0e49\\%u0e32\\%u0e07\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>\\|\\%u0e2a\\%u0e23\\%u0e38\\%u0e1b\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>", "then": "\\%u0e14\\%u0e31\\%u0e07\\%u0e19\\%u0e31\\%u0e49\\%u0e19\\>", "when": "\\%u0e40\\%u0e21\\%u0e37\\%u0e48\\%u0e2d\\>"},
      \"tl": {"and": "\\%u0c2e\\%u0c30\\%u0c3f\\%u0c2f\\%u0c41\\>", "background": "\\%u0c28\\%u0c47\\%u0c2a\\%u0c25\\%u0c4d\\%u0c2f\\%u0c02\\>", "but": "\\%u0c15\\%u0c3e\\%u0c28\\%u0c3f\\>", "examples": "\\%u0c09\\%u0c26\\%u0c3e\\%u0c39\\%u0c30\\%u0c23\\%u0c32\\%u0c41\\>", "feature": "\\%u0c17\\%u0c41\\%u0c23\\%u0c2e\\%u0c41\\>", "given": "\\%u0c1a\\%u0c46\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c2c\\%u0c21\\%u0c3f\\%u0c28\\%u0c26\\%u0c3f\\>", "scenario": "\\%u0c38\\%u0c28\\%u0c4d\\%u0c28\\%u0c3f\\%u0c35\\%u0c47\\%u0c36\\%u0c02\\>", "scenario_outline": "\\%u0c15\\%u0c25\\%u0c28\\%u0c02\\>", "then": "\\%u0c05\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c41\\%u0c21\\%u0c41\\>", "when": "\\%u0c08 \\%u0c2a\\%u0c30\\%u0c3f\\%u0c38\\%u0c4d\\%u0c25\\%u0c3f\\%u0c24\\%u0c3f\\%u0c32\\%u0c4b\\>"},
      \"tr": {"and": "Ve\\>", "background": "Ge\\%u00e7mi\\%u015f\\>", "but": "Fakat\\>\\|Ama\\>", "examples": "\\%u00d6rnekler\\>", "feature": "\\%u00d6zellik\\>", "given": "Diyelim ki\\>", "scenario": "Senaryo\\>", "scenario_outline": "Senaryo tasla\\%u011f\\%u0131\\>", "then": "O zaman\\>", "when": "E\\%u011fer ki\\>"},
      \"tt": {"and": "\\%u04ba\\%u04d9\\%u043c\\>\\|\\%u0412\\%u04d9\\>", "background": "\\%u041a\\%u0435\\%u0440\\%u0435\\%u0448\\>", "but": "\\%u041b\\%u04d9\\%u043a\\%u0438\\%u043d\\>\\|\\%u04d8\\%u043c\\%u043c\\%u0430\\>", "examples": "\\%u04ae\\%u0440\\%u043d\\%u04d9\\%u043a\\%u043b\\%u04d9\\%u0440\\>\\|\\%u041c\\%u0438\\%u0441\\%u0430\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u04ae\\%u0437\\%u0435\\%u043d\\%u0447\\%u04d9\\%u043b\\%u0435\\%u043a\\%u043b\\%u0435\\%u043b\\%u0435\\%u043a\\>\\|\\%u041c\\%u04e9\\%u043c\\%u043a\\%u0438\\%u043d\\%u043b\\%u0435\\%u043a\\>", "given": "\\%u04d8\\%u0439\\%u0442\\%u0438\\%u043a\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\%u043d\\%u044b\\%u04a3 \\%u0442\\%u04e9\\%u0437\\%u0435\\%u043b\\%u0435\\%u0448\\%u0435\\>", "then": "\\%u041d\\%u04d9\\%u0442\\%u0438\\%u0497\\%u04d9\\%u0434\\%u04d9\\>", "when": "\\%u04d8\\%u0433\\%u04d9\\%u0440\\>"},
      \"uk": {"and": "\\%u0410 \\%u0442\\%u0430\\%u043a\\%u043e\\%u0436\\>\\|\\%u0422\\%u0430\\>\\|\\%u0406\\>", "background": "\\%u041f\\%u0435\\%u0440\\%u0435\\%u0434\\%u0443\\%u043c\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0435\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0456\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e, \\%u0449\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e\\>\\|\\%u041d\\%u0435\\%u0445\\%u0430\\%u0439\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u044e\\>", "then": "\\%u0422\\%u043e\\%u0434\\%u0456\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u042f\\%u043a\\%u0449\\%u043e\\>\\|\\%u041a\\%u043e\\%u043b\\%u0438\\>"},
      \"uz": {"and": "\\%u0412\\%u0430\\>", "background": "\\%u0422\\%u0430\\%u0440\\%u0438\\%u0445\\>", "but": "\\%u041b\\%u0435\\%u043a\\%u0438\\%u043d\\>\\|\\%u0411\\%u0438\\%u0440\\%u043e\\%u043a\\>\\|\\%u0410\\%u043c\\%u043c\\%u043e\\>", "examples": "\\%u041c\\%u0438\\%u0441\\%u043e\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u0410\\%u0433\\%u0430\\%u0440\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439 \\%u0441\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430\\%u0441\\%u0438\\>", "then": "\\%u0423\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u0410\\%u0433\\%u0430\\%u0440\\>"},
      \"vi": {"and": "V\\%u00e0\\>", "background": "B\\%u1ed1i c\\%u1ea3nh\\>", "but": "Nh\\%u01b0ng\\>", "examples": "D\\%u1eef li\\%u1ec7u\\>", "feature": "T\\%u00ednh n\\%u0103ng\\>", "given": "Bi\\%u1ebft\\>\\|Cho\\>", "scenario": "T\\%u00ecnh hu\\%u1ed1ng\\>\\|K\\%u1ecbch b\\%u1ea3n\\>", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng\\>\\|Khung k\\%u1ecbch b\\%u1ea3n\\>", "then": "Th\\%u00ec\\>", "when": "Khi\\>"},
      \"zh-CN": {"and": "\\%u800c\\%u4e14\\|\\%u5e76\\%u4e14\\|\\%u540c\\%u65f6", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8bbe\\|\\%u5047\\%u5b9a", "scenario": "\\%u573a\\%u666f\\>\\|\\%u5267\\%u672c\\>", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\>\\|\\%u5267\\%u672c\\%u5927\\%u7eb2\\>", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"},
      \"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14\\|\\%u540c\\%u6642", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8a2d\\|\\%u5047\\%u5b9a", "scenario": "\\%u5834\\%u666f\\>\\|\\%u5287\\%u672c\\>", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\>\\|\\%u5287\\%u672c\\%u5927\\%u7db1\\>", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}}

function! s:pattern(key)
  let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+')
  if &fileencoding == 'latin1' && language == ''
    let language = 'en'
  endif
  if has_key(g:cucumber_languages, language)
    let languages = [g:cucumber_languages[language]]
  else
    let languages = values(g:cucumber_languages)
  end
  return '\<\%('.join(map(languages,'get(v:val,a:key,"\\%(a\\&b\\)")'),'\|').'\)'
endfunction

function! s:Add(name)
  let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","Comment","String","Table"],'"cucumber".a:name.v:val'),",")
  exe "syn region cucumber".a:name.'Region matchgroup=cucumber'.a:name.' start="\%(^\s*\)\@<=\%('.s:pattern(tolower(a:name)).'\)" end="$"'.next
  exe 'syn region cucumber'.a:name.'AndRegion matchgroup=cucumber'.a:name.'And start="\%(^\s*\)\@<='.s:pattern('and').'" end="$" contained'.next
  exe 'syn region cucumber'.a:name.'ButRegion matchgroup=cucumber'.a:name.'But start="\%(^\s*\)\@<='.s:pattern('but').'" end="$" contained'.next
  exe 'syn match cucumber'.a:name.'Comment "\%(^\s*\)\@<=#.*" contained'.next
  exe 'syn region cucumber'.a:name.'String start=+\%(^\s*\)\@<="""+ end=+"""+ contained'.next
  exe 'syn match cucumber'.a:name.'Table "\%(^\s*\)\@<=|.*" contained contains=cucumberDelimiter'.next
  exe 'hi def link cucumber'.a:name.'Comment cucumberComment'
  exe 'hi def link cucumber'.a:name.'String cucumberString'
  exe 'hi def link cucumber'.a:name.'But cucumber'.a:name.'And'
  exe 'hi def link cucumber'.a:name.'And cucumber'.a:name
  exe 'syn cluster cucumberStepRegions add=cucumber'.a:name.'Region,cucumber'.a:name.'AndRegion,cucumber'.a:name.'ButRegion'
endfunction

syn match   cucumberComment  "\%(^\s*\)\@<=#.*"
syn match   cucumberComment  "\%(\%^\s*\)\@<=#.*" contains=cucumberLanguage
syn match   cucumberLanguage "\%(#\s*\)\@<=language:" contained
syn match   cucumberUnparsed "\S.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained
syn match   cucumberUnparsedComment "#.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained

exe 'syn match cucumberFeature "\%(^\s*\)\@<='.s:pattern('feature').':" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty'
exe 'syn match cucumberBackground "\%(^\s*\)\@<='.s:pattern('background').':"'
exe 'syn match cucumberScenario "\%(^\s*\)\@<='.s:pattern('scenario').':"'
exe 'syn match cucumberScenarioOutline "\%(^\s*\)\@<='.s:pattern('scenario_outline').':"'
exe 'syn match cucumberExamples "\%(^\s*\)\@<='.s:pattern('examples').':" nextgroup=cucumberExampleTable skipempty skipwhite'

syn match   cucumberPlaceholder   "<[^<>]*>" contained containedin=@cucumberStepRegions
syn match   cucumberExampleTable  "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter
syn match   cucumberDelimiter     "\\\@<!\%(\\\\\)*\zs|" contained
syn match   cucumberTags          "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$" contains=@NoSpell

call s:Add('Then')
call s:Add('When')
call s:Add('Given')

hi def link cucumberUnparsedComment   cucumberComment
hi def link cucumberComment           Comment
hi def link cucumberLanguage          SpecialComment
hi def link cucumberFeature           Macro
hi def link cucumberBackground        Define
hi def link cucumberScenario          Define
hi def link cucumberScenarioOutline   Define
hi def link cucumberExamples          Define
hi def link cucumberPlaceholder       Constant
hi def link cucumberDelimiter         Delimiter
hi def link cucumberTags              Tag
hi def link cucumberString            String
hi def link cucumberGiven             Conditional
hi def link cucumberWhen              Function
hi def link cucumberThen              Type

let b:current_syntax = "cucumber"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:set sts=2 sw=2:
PK�j�Z3�p0�
�
vim80/syntax/systemverilog.vimnu�[���" Vim syntax file
" Language:    SystemVerilog
" Maintainer:  kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013. 

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" Read in Verilog syntax files
runtime! syntax/verilog.vim
unlet b:current_syntax

" IEEE1800-2005
syn keyword systemverilogStatement   always_comb always_ff always_latch
syn keyword systemverilogStatement   class endclass new
syn keyword systemverilogStatement   virtual local const protected
syn keyword systemverilogStatement   package endpackage
syn keyword systemverilogStatement   rand randc constraint randomize
syn keyword systemverilogStatement   with inside dist
syn keyword systemverilogStatement   sequence endsequence randsequence 
syn keyword systemverilogStatement   srandom
syn keyword systemverilogStatement   logic bit byte
syn keyword systemverilogStatement   int longint shortint
syn keyword systemverilogStatement   struct packed
syn keyword systemverilogStatement   final
syn keyword systemverilogStatement   import export
syn keyword systemverilogStatement   context pure 
syn keyword systemverilogStatement   void shortreal chandle string
syn keyword systemverilogStatement   clocking endclocking iff
syn keyword systemverilogStatement   interface endinterface modport
syn keyword systemverilogStatement   cover covergroup coverpoint endgroup
syn keyword systemverilogStatement   property endproperty
syn keyword systemverilogStatement   program endprogram
syn keyword systemverilogStatement   bins binsof illegal_bins ignore_bins
syn keyword systemverilogStatement   alias matches solve static assert
syn keyword systemverilogStatement   assume super before expect bind
syn keyword systemverilogStatement   extends null tagged extern this
syn keyword systemverilogStatement   first_match throughout timeprecision
syn keyword systemverilogStatement   timeunit type union 
syn keyword systemverilogStatement   uwire var cross ref wait_order intersect
syn keyword systemverilogStatement   wildcard within

syn keyword systemverilogTypeDef     typedef enum

syn keyword systemverilogConditional randcase
syn keyword systemverilogConditional unique priority

syn keyword systemverilogRepeat      return break continue
syn keyword systemverilogRepeat      do foreach

syn keyword systemverilogLabel       join_any join_none forkjoin

" IEEE1800-2009 add
syn keyword systemverilogStatement   checker endchecker
syn keyword systemverilogStatement   accept_on reject_on
syn keyword systemverilogStatement   sync_accept_on sync_reject_on
syn keyword systemverilogStatement   eventually nexttime until until_with
syn keyword systemverilogStatement   s_always s_eventually s_nexttime s_until s_until_with
syn keyword systemverilogStatement   let untyped
syn keyword systemverilogStatement   strong weak
syn keyword systemverilogStatement   restrict global implies

syn keyword systemverilogConditional unique0

" IEEE1800-2012 add
syn keyword systemverilogStatement   implements
syn keyword systemverilogStatement   interconnect soft nettype

" Define the default highlighting.

" The default highlighting.
hi def link systemverilogStatement       Statement
hi def link systemverilogTypeDef         TypeDef
hi def link systemverilogConditional     Conditional
hi def link systemverilogRepeat          Repeat
hi def link systemverilogLabel           Label
hi def link systemverilogGlobal          Define
hi def link systemverilogNumber          Number


let b:current_syntax = "systemverilog"

" vim: ts=8
PK�j�Z�ͦ��vim80/syntax/slpspi.vimnu�[���" Vim syntax file
" Language:             RFC 2614 - An API for Service Location SPI file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword slpspiTodo          contained TODO FIXME XXX NOTE

syn region  slpspiComment       display oneline start='^[#;]' end='$'
                                \ contains=slpspiTodo,@Spell

syn match   slpspiBegin         display '^'
                                \ nextgroup=slpspiKeyType,
                                \ slpspiComment skipwhite

syn keyword slpspiKeyType       contained PRIVATE PUBLIC
                                \ nextgroup=slpspiString skipwhite

syn match   slpspiString        contained '\S\+'
                                \ nextgroup=slpspiKeyFile skipwhite

syn match   slpspiKeyFile       contained '\S\+'

hi def link slpspiTodo          Todo
hi def link slpspiComment       Comment
hi def link slpspiKeyType       Type
hi def link slpspiString        Identifier
hi def link slpspiKeyFile       String

let b:current_syntax = "slpspi"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�Do�	�	vim80/syntax/passwd.vimnu�[���" Vim syntax file
" Language:             passwd(5) password file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-10-03

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   passwdBegin         display '^' nextgroup=passwdAccount

syn match   passwdAccount       contained display '[^:]\+'
                                \ nextgroup=passwdPasswordColon

syn match   passwdPasswordColon contained display ':'
                                \ nextgroup=passwdPassword,passwdShadow

syn match   passwdPassword      contained display '[^:]\+'
                                \ nextgroup=passwdUIDColon

syn match   passwdShadow        contained display '[x*!]'
                                \ nextgroup=passwdUIDColon

syn match   passwdUIDColon      contained display ':' nextgroup=passwdUID

syn match   passwdUID           contained display '\d\{0,10}'
                                \ nextgroup=passwdGIDColon

syn match   passwdGIDColon      contained display ':' nextgroup=passwdGID

syn match   passwdGID           contained display '\d\{0,10}'
                                \ nextgroup=passwdGecosColon

syn match   passwdGecosColon    contained display ':' nextgroup=passwdGecos

syn match   passwdGecos         contained display '[^:]*'
                                \ nextgroup=passwdDirColon

syn match   passwdDirColon      contained display ':' nextgroup=passwdDir

syn match   passwdDir           contained display '/[^:]*'
                                \ nextgroup=passwdShellColon

syn match   passwdShellColon    contained display ':'
                                \ nextgroup=passwdShell

syn match   passwdShell         contained display '.*'

hi def link passwdColon         Normal
hi def link passwdAccount       Identifier
hi def link passwdPasswordColon passwdColon
hi def link passwdPassword      Number
hi def link passwdShadow        Special
hi def link passwdUIDColon      passwdColon
hi def link passwdUID           Number
hi def link passwdGIDColon      passwdColon
hi def link passwdGID           Number
hi def link passwdGecosColon    passwdColon
hi def link passwdGecos         Comment
hi def link passwdDirColon      passwdColon
hi def link passwdDir           Type
hi def link passwdShellColon    passwdColon
hi def link passwdShell         Operator

let b:current_syntax = "passwd"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zi��T��vim80/syntax/xxd.vimnu�[���" Vim syntax file
" Language:		bin using xxd
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:		10
" Notes:		use :help xxd   to see how to invoke it
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XXD

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match xxdAddress			"^[0-9a-f]\+:"		contains=xxdSep
syn match xxdSep	contained	":"
syn match xxdAscii				"  .\{,16\}\r\=$"hs=s+2	contains=xxdDot
syn match xxdDot	contained	"[.\r]"

" Define the default highlighting.
if !exists("skip_xxd_syntax_inits")

 hi def link xxdAddress	Constant
 hi def link xxdSep		Identifier
 hi def link xxdAscii	Statement

endif

let b:current_syntax = "xxd"

" vim: ts=4
PK�j�Z�2̶a#a#vim80/syntax/pov.vimnu�[���" Vim syntax file
" Language: PoV-Ray(tm) 3.7 Scene Description Language
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" Last Change: 2011-04-23
" Required Vim Version: 6.0

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" Top level stuff
syn keyword povCommands global_settings
syn keyword povObjects array atmosphere background bicubic_patch blob box camera component cone cubic cylinder disc fog height_field isosurface julia_fractal lathe light_group light_source mesh mesh2 object ovus parametric pattern photons plane poly polygon polynomial prism quadric quartic rainbow sky_sphere smooth_triangle sor sphere sphere_sweep spline superellipsoid text torus triangle
syn keyword povCSG clipped_by composite contained_by difference intersection merge union
syn keyword povAppearance interior material media texture interior_texture texture_list
syn keyword povGlobalSettings ambient_light assumed_gamma charset hf_gray_16 irid_wavelength max_intersections max_trace_level number_of_waves radiosity noise_generator
syn keyword povTransform inverse matrix rotate scale translate transform

" Descriptors
syn keyword povDescriptors finish inside_vector normal pigment uv_mapping uv_vectors vertex_vectors
syn keyword povDescriptors adc_bailout always_sample brightness count error_bound distance_maximum gray_threshold load_file low_error_factor maximum_reuse max_sample media minimum_reuse mm_per_unit nearest_count normal pretrace_end pretrace_start recursion_limit save_file
syn keyword povDescriptors color colour rgb rgbt rgbf rgbft srgb srgbf srgbt srgbft
syn match povDescriptors "\<\(red\|green\|blue\|gray\)\>"
syn keyword povDescriptors bump_map color_map colour_map image_map material_map pigment_map quick_color quick_colour normal_map texture_map image_pattern pigment_pattern
syn keyword povDescriptors ambient brilliance conserve_energy crand diffuse fresnel irid metallic phong phong_size refraction reflection reflection_exponent roughness specular subsurface
syn keyword povDescriptors cylinder fisheye mesh_camera omnimax orthographic panoramic perspective spherical ultra_wide_angle
syn keyword povDescriptors agate aoi average brick boxed bozo bumps cells checker crackle cylindrical dents facets function gradient granite hexagon julia leopard magnet mandel marble onion pavement planar quilted radial ripples slope spherical spiral1 spiral2 spotted square tiles tile2 tiling toroidal triangular waves wood wrinkles
syn keyword povDescriptors density_file
syn keyword povDescriptors area_light shadowless spotlight parallel
syn keyword povDescriptors absorption confidence density emission intervals ratio samples scattering variance
syn keyword povDescriptors distance fog_alt fog_offset fog_type turb_depth
syn keyword povDescriptors b_spline bezier_spline cubic_spline evaluate face_indices form linear_spline max_gradient natural_spline normal_indices normal_vectors quadratic_spline uv_indices
syn keyword povDescriptors target

" Modifiers
syn keyword povModifiers caustics dispersion dispersion_samples fade_color fade_colour fade_distance fade_power ior
syn keyword povModifiers bounded_by double_illuminate hierarchy hollow no_shadow open smooth sturm threshold water_level
syn keyword povModifiers importance no_radiosity
syn keyword povModifiers hypercomplex max_iteration precision quaternion slice
syn keyword povModifiers conic_sweep linear_sweep
syn keyword povModifiers flatness type u_steps v_steps
syn keyword povModifiers aa_level aa_threshold adaptive area_illumination falloff jitter looks_like media_attenuation media_interaction method point_at radius tightness
syn keyword povModifiers angle aperture bokeh blur_samples confidence direction focal_point h_angle location look_at right sky up v_angle variance
syn keyword povModifiers all bump_size gamma interpolate map_type once premultiplied slope_map use_alpha use_color use_colour use_index
syn match povModifiers "\<\(filter\|transmit\)\>"
syn keyword povModifiers black_hole agate_turb brick_size control0 control1 cubic_wave density_map flip frequency interpolate inverse lambda metric mortar octaves offset omega phase poly_wave ramp_wave repeat scallop_wave sine_wave size strength triangle_wave thickness turbulence turb_depth type warp
syn keyword povModifiers eccentricity extinction
syn keyword povModifiers arc_angle falloff_angle width
syn keyword povModifiers accuracy all_intersections altitude autostop circular collect coords cutaway_textures dist_exp expand_thresholds exponent exterior gather global_lights major_radius max_trace no_bump_scale no_image no_reflection orient orientation pass_through precompute projected_through range_divider solid spacing split_union tolerance

" Words not marked `reserved' in documentation, but...
syn keyword povBMPType alpha exr gif hdr iff jpeg pgm png pot ppm sys tga tiff
syn keyword povFontType ttf contained
syn keyword povDensityType df3 contained
syn keyword povCharset ascii utf8 contained

" Math functions on floats, vectors and strings
syn keyword povFunctions abs acos acosh asc asin asinh atan atan2 atanh bitwise_and bitwise_or bitwise_xor ceil cos cosh defined degrees dimensions dimension_size div exp file_exists floor inside int internal ln log max min mod pow prod radians rand seed select sin sinh sqrt strcmp strlen sum tan tanh val vdot vlength vstr vturbulence
syn keyword povFunctions min_extent max_extent trace vcross vrotate vaxis_rotate vnormalize vturbulence
syn keyword povFunctions chr concat datetime now substr str strupr strlwr
syn keyword povJuliaFunctions acosh asinh atan cosh cube pwr reciprocal sinh sqr tanh

" Specialities
syn keyword povConsts clock clock_delta clock_on final_clock final_frame frame_number initial_clock initial_frame input_file_name image_width image_height false no off on pi true version yes
syn match povConsts "\<[tuvxyz]\>"
syn match povDotItem "\.\@<=\(blue\|green\|gray\|filter\|red\|transmit\|hf\|t\|u\|v\|x\|y\|z\)\>" display

" Comments
syn region povComment start="/\*" end="\*/" contains=povTodo,povComment
syn match povComment "//.*" contains=povTodo
syn match povCommentError "\*/"
syn sync ccomment povComment
syn sync minlines=50
syn keyword povTodo TODO FIXME XXX NOT contained
syn cluster povPRIVATE add=povTodo

" Language directives
syn match povConditionalDir "#\s*\(else\|end\|for\|if\|ifdef\|ifndef\|switch\|while\)\>"
syn match povLabelDir "#\s*\(break\|case\|default\|range\)\>"
syn match povDeclareDir "#\s*\(declare\|default\|local\|macro\|undef\|version\)\>" nextgroup=povDeclareOption skipwhite
syn keyword povDeclareOption deprecated once contained nextgroup=povDeclareOption skipwhite
syn match povIncludeDir "#\s*include\>"
syn match povFileDir "#\s*\(fclose\|fopen\|read\|write\)\>"
syn keyword povFileDataType uint8 sint8 unit16be uint16le sint16be sint16le sint32le sint32be
syn match povMessageDir "#\s*\(debug\|error\|render\|statistics\|warning\)\>"
syn region povFileOpen start="#\s*fopen\>" skip=+"[^"]*"+ matchgroup=povOpenType end="\<\(read\|write\|append\)\>" contains=ALLBUT,PovParenError,PovBraceError,@PovPRIVATE transparent keepend

" Literal strings
syn match povSpecialChar "\\u\x\{4}\|\\\d\d\d\|\\." contained
syn region povString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=povSpecialChar oneline
syn cluster povPRIVATE add=povSpecialChar

" Catch errors caused by wrong parenthesization
syn region povParen start='(' end=')' contains=ALLBUT,povParenError,@povPRIVATE transparent
syn match povParenError ")"
syn region povBrace start='{' end='}' contains=ALLBUT,povBraceError,@povPRIVATE transparent
syn match povBraceError "}"

" Numbers
syn match povNumber "\(^\|\W\)\@<=[+-]\=\(\d\+\)\=\.\=\d\+\([eE][+-]\=\d\+\)\="

" Define the default highlighting
hi def link povComment Comment
hi def link povTodo Todo
hi def link povNumber Number
hi def link povString String
hi def link povFileOpen Constant
hi def link povConsts Constant
hi def link povDotItem povSpecial
hi def link povBMPType povSpecial
hi def link povCharset povSpecial
hi def link povDensityType povSpecial
hi def link povFontType povSpecial
hi def link povOpenType povSpecial
hi def link povSpecialChar povSpecial
hi def link povSpecial Special
hi def link povConditionalDir PreProc
hi def link povLabelDir PreProc
hi def link povDeclareDir Define
hi def link povDeclareOption Define
hi def link povIncludeDir Include
hi def link povFileDir PreProc
hi def link povFileDataType Special
hi def link povMessageDir Debug
hi def link povAppearance povDescriptors
hi def link povObjects povDescriptors
hi def link povGlobalSettings povDescriptors
hi def link povDescriptors Type
hi def link povJuliaFunctions PovFunctions
hi def link povModifiers povFunctions
hi def link povFunctions Function
hi def link povCommands Operator
hi def link povTransform Operator
hi def link povCSG Operator
hi def link povParenError povError
hi def link povBraceError povError
hi def link povCommentError povError
hi def link povError Error

let b:current_syntax = "pov"
PK�j�ZtCc�00vim80/syntax/desktop.vimnu�[���" Vim syntax file
" Language:	.desktop, .directory files
"		according to freedesktop.org specification 0.9.4
" http://pdx.freedesktop.org/Standards/desktop-entry-spec/desktop-entry-spec-0.9.4.html
" Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change:	2016 Apr 02
" 		(added "Keywords")
" Version Info: desktop.vim 0.9.4-1.2

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" This syntax file can be used to all *nix configuration files similar to dos
" ini format (eg. .xawtv, .radio, kde rc files) - this is default mode. But
" you can also enforce strict following of freedesktop.org standard for
" .desktop and .directory files . Set (eg. in vimrc)
" let enforce_freedesktop_standard = 1
" and nonstandard extensions not following X- notation will not be highlighted.
if exists("enforce_freedesktop_standard")
	let b:enforce_freedesktop_standard = 1
else
	let b:enforce_freedesktop_standard = 0
endif

" case on
syn case match

" General
if b:enforce_freedesktop_standard == 0
	syn match  dtNotStLabel	"^.\{-}=\@=" nextgroup=dtDelim
endif

syn match  dtGroup	/^\s*\[.*\]/
syn match  dtComment	/^\s*#.*$/
syn match  dtDelim	/=/ contained

" Locale
syn match   dtLocale /^\s*\<\(Name\|GenericName\|Comment\|SwallowTitle\|Icon\|UnmountIcon\)\>.*/ contains=dtLocaleKey,dtLocaleName,dtDelim transparent
syn keyword dtLocaleKey Name GenericName Comment SwallowTitle Icon UnmountIcon nextgroup=dtLocaleName containedin=dtLocale
syn match   dtLocaleName /\(\[.\{-}\]\s*=\@=\|\)/ nextgroup=dtDelim containedin=dtLocale contained

" Numeric
syn match   dtNumeric /^\s*\<Version\>/ contains=dtNumericKey,dtDelim
syn keyword dtNumericKey Version nextgroup=dtDelim containedin=dtNumeric contained

" Boolean
syn match   dtBoolean /^\s*\<\(StartupNotify\|ReadOnly\|Terminal\|Hidden\|NoDisplay\)\>.*/ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
syn keyword dtBooleanKey StartupNotify ReadOnly Terminal Hidden NoDisplay nextgroup=dtDelim containedin=dtBoolean contained
syn keyword dtBooleanValue true false containedin=dtBoolean contained

" String
syn match   dtString /^\s*\<\(Encoding\|Icon\|Path\|Actions\|FSType\|MountPoint\|UnmountIcon\|URL\|Keywords\|Categories\|OnlyShowIn\|NotShowIn\|StartupWMClass\|FilePattern\|MimeType\)\>.*/ contains=dtStringKey,dtDelim transparent
syn keyword dtStringKey Type Encoding TryExec Exec Path Actions FSType MountPoint URL Keywords Categories OnlyShowIn NotShowIn StartupWMClass FilePattern MimeType nextgroup=dtDelim containedin=dtString contained

" Exec
syn match   dtExec /^\s*\<\(Exec\|TryExec\|SwallowExec\)\>.*/ contains=dtExecKey,dtDelim,dtExecParam transparent
syn keyword dtExecKey Exec TryExec SwallowExec nextgroup=dtDelim containedin=dtExec contained
syn match   dtExecParam  /%[fFuUnNdDickv]/ containedin=dtExec contained

" Type
syn match   dtType /^\s*\<Type\>.*/ contains=dtTypeKey,dtDelim,dtTypeValue transparent
syn keyword dtTypeKey Type nextgroup=dtDelim containedin=dtType contained
syn keyword dtTypeValue Application Link FSDevice Directory containedin=dtType contained

" X-Addition
syn match   dtXAdd    /^\s*X-.*/ contains=dtXAddKey,dtDelim transparent
syn match   dtXAddKey /^\s*X-.\{-}\s*=\@=/ nextgroup=dtDelim containedin=dtXAdd contains=dtXLocale contained

" Locale for X-Addition
syn match   dtXLocale /\[.\{-}\]\s*=\@=/ containedin=dtXAddKey contained

" Locale for all
syn match   dtALocale /\[.\{-}\]\s*=\@=/ containedin=ALL


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dtGroup		 Special
hi def link dtComment	 Comment
hi def link dtDelim		 String

hi def link dtLocaleKey	 Type
hi def link dtLocaleName	 Identifier
hi def link dtXLocale	 Identifier
hi def link dtALocale	 Identifier

hi def link dtNumericKey	 Type

hi def link dtBooleanKey	 Type
hi def link dtBooleanValue	 Constant

hi def link dtStringKey	 Type

hi def link dtExecKey	 Type
hi def link dtExecParam	 Special
hi def link dtTypeKey	 Type
hi def link dtTypeValue	 Constant
hi def link dtNotStLabel	 Type
hi def link dtXAddKey	 Type


let b:current_syntax = "desktop"

" vim:ts=8
PK�j�Z�
F�p$p$vim80/syntax/sml.vimnu�[���" Vim syntax file
" Language:     SML
" Filenames:    *.sml *.sig
" Maintainers:  Markus Mottl            <markus.mottl@gmail.com>
"               Fabrizio Zeno Cornelli  <zeno@filibusta.crema.unimi.it>
" URL:          http://www.ocaml.info/vim/syntax/sml.vim
" Last Change:  2006 Oct 23 - Fixed character highlighting bug (MM)
"               2002 Jun 02 - Fixed small typo  (MM)
"               2001 Nov 20 - Fixed small highlighting bug with modules (MM)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" SML is case sensitive.
syn case match

" lowercase identifier - the standard way to match
syn match    smlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/

syn match    smlKeyChar    "|"

" Errors
syn match    smlBraceErr   "}"
syn match    smlBrackErr   "\]"
syn match    smlParenErr   ")"
syn match    smlCommentErr "\*)"
syn match    smlThenErr    "\<then\>"

" Error-highlighting of "end" without synchronization:
" as keyword or as error (default)
if exists("sml_noend_error")
  syn match    smlKeyword    "\<end\>"
else
  syn match    smlEndErr     "\<end\>"
endif

" Some convenient clusters
syn cluster  smlAllErrs contains=smlBraceErr,smlBrackErr,smlParenErr,smlCommentErr,smlEndErr,smlThenErr

syn cluster  smlAENoParen contains=smlBraceErr,smlBrackErr,smlCommentErr,smlEndErr,smlThenErr

syn cluster  smlContained contains=smlTodo,smlPreDef,smlModParam,smlModParam1,smlPreMPRestr,smlMPRestr,smlMPRestr1,smlMPRestr2,smlMPRestr3,smlModRHS,smlFuncWith,smlFuncStruct,smlModTypeRestr,smlModTRWith,smlWith,smlWithRest,smlModType,smlFullMod


" Enclosing delimiters
syn region   smlEncl transparent matchgroup=smlKeyword start="(" matchgroup=smlKeyword end=")" contains=ALLBUT,@smlContained,smlParenErr
syn region   smlEncl transparent matchgroup=smlKeyword start="{" matchgroup=smlKeyword end="}"  contains=ALLBUT,@smlContained,smlBraceErr
syn region   smlEncl transparent matchgroup=smlKeyword start="\[" matchgroup=smlKeyword end="\]" contains=ALLBUT,@smlContained,smlBrackErr
syn region   smlEncl transparent matchgroup=smlKeyword start="#\[" matchgroup=smlKeyword end="\]" contains=ALLBUT,@smlContained,smlBrackErr


" Comments
syn region   smlComment start="(\*" end="\*)" contains=smlComment,smlTodo
syn keyword  smlTodo contained TODO FIXME XXX


" let
syn region   smlEnd matchgroup=smlKeyword start="\<let\>" matchgroup=smlKeyword end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr

" local
syn region   smlEnd matchgroup=smlKeyword start="\<local\>" matchgroup=smlKeyword end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr

" abstype
syn region   smlNone matchgroup=smlKeyword start="\<abstype\>" matchgroup=smlKeyword end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr

" begin
syn region   smlEnd matchgroup=smlKeyword start="\<begin\>" matchgroup=smlKeyword end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr

" if
syn region   smlNone matchgroup=smlKeyword start="\<if\>" matchgroup=smlKeyword end="\<then\>" contains=ALLBUT,@smlContained,smlThenErr


"" Modules

" "struct"
syn region   smlStruct matchgroup=smlModule start="\<struct\>" matchgroup=smlModule end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr

" "sig"
syn region   smlSig matchgroup=smlModule start="\<sig\>" matchgroup=smlModule end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr,smlModule
syn region   smlModSpec matchgroup=smlKeyword start="\<structure\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contained contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlModTRWith,smlMPRestr

" "open"
syn region   smlNone matchgroup=smlKeyword start="\<open\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*\>" contains=@smlAllErrs,smlComment

" "structure" - somewhat complicated stuff ;-)
syn region   smlModule matchgroup=smlKeyword start="\<\(structure\|functor\)\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlPreDef
syn region   smlPreDef start="."me=e-1 matchgroup=smlKeyword end="\l\|="me=e-1 contained contains=@smlAllErrs,smlComment,smlModParam,smlModTypeRestr,smlModTRWith nextgroup=smlModPreRHS
syn region   smlModParam start="([^*]" end=")" contained contains=@smlAENoParen,smlModParam1
syn match    smlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=smlPreMPRestr

syn region   smlPreMPRestr start="."me=e-1 end=")"me=e-1 contained contains=@smlAllErrs,smlComment,smlMPRestr,smlModTypeRestr

syn region   smlMPRestr start=":" end="."me=e-1 contained contains=@smlComment skipwhite skipempty nextgroup=smlMPRestr1,smlMPRestr2,smlMPRestr3
syn region   smlMPRestr1 matchgroup=smlModule start="\ssig\s\=" matchgroup=smlModule end="\<end\>" contained contains=ALLBUT,@smlContained,smlEndErr,smlModule
syn region   smlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=smlKeyword end="->" contained contains=@smlAllErrs,smlComment,smlModParam skipwhite skipempty nextgroup=smlFuncWith
syn match    smlMPRestr3 "\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*" contained
syn match    smlModPreRHS "=" contained skipwhite skipempty nextgroup=smlModParam,smlFullMod
syn region   smlModRHS start="." end=".\w\|([^*]"me=e-2 contained contains=smlComment skipwhite skipempty nextgroup=smlModParam,smlFullMod
syn match    smlFullMod "\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=smlFuncWith

syn region   smlFuncWith start="([^*]"me=e-1 end=")" contained contains=smlComment,smlWith,smlFuncStruct
syn region   smlFuncStruct matchgroup=smlModule start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=smlModule end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr

syn match    smlModTypeRestr "\<\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*\>" contained
syn region   smlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@smlAENoParen,smlWith
syn match    smlWith "\<\(\u\(\w\|'\)*\.\)*\w\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=smlWithRest
syn region   smlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@smlContained

" "signature"
syn region   smlKeyword start="\<signature\>" matchgroup=smlModule end="\<\w\(\w\|'\)*\>" contains=smlComment skipwhite skipempty nextgroup=smlMTDef
syn match    smlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=s

syn keyword  smlKeyword  and andalso case
syn keyword  smlKeyword  datatype else eqtype
syn keyword  smlKeyword  exception fn fun handle
syn keyword  smlKeyword  in infix infixl infixr
syn keyword  smlKeyword  match nonfix of orelse
syn keyword  smlKeyword  raise handle type
syn keyword  smlKeyword  val where while with withtype

syn keyword  smlType     bool char exn int list option
syn keyword  smlType     real string unit

syn keyword  smlOperator div mod not or quot rem

syn keyword  smlBoolean      true false
syn match    smlConstructor  "(\s*)"
syn match    smlConstructor  "\[\s*\]"
syn match    smlConstructor  "#\[\s*\]"
syn match    smlConstructor  "\u\(\w\|'\)*\>"

" Module prefix
syn match    smlModPath      "\u\(\w\|'\)*\."he=e-1

syn match    smlCharacter    +#"\\""\|#"."\|#"\\\d\d\d"+
syn match    smlCharErr      +#"\\\d\d"\|#"\\\d"+
syn region   smlString       start=+"+ skip=+\\\\\|\\"+ end=+"+

syn match    smlFunDef       "=>"
syn match    smlRefAssign    ":="
syn match    smlTopStop      ";;"
syn match    smlOperator     "\^"
syn match    smlOperator     "::"
syn match    smlAnyVar       "\<_\>"
syn match    smlKeyChar      "!"
syn match    smlKeyChar      ";"
syn match    smlKeyChar      "\*"
syn match    smlKeyChar      "="

syn match    smlNumber	      "\<-\=\d\+\>"
syn match    smlNumber	      "\<-\=0[x|X]\x\+\>"
syn match    smlReal	      "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>"

" Synchronization
syn sync minlines=20
syn sync maxlines=500

syn sync match smlEndSync     grouphere  smlEnd     "\<begin\>"
syn sync match smlEndSync     groupthere smlEnd     "\<end\>"
syn sync match smlStructSync  grouphere  smlStruct  "\<struct\>"
syn sync match smlStructSync  groupthere smlStruct  "\<end\>"
syn sync match smlSigSync     grouphere  smlSig     "\<sig\>"
syn sync match smlSigSync     groupthere smlSig     "\<end\>"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link smlBraceErr	 Error
hi def link smlBrackErr	 Error
hi def link smlParenErr	 Error

hi def link smlCommentErr	 Error

hi def link smlEndErr	 Error
hi def link smlThenErr	 Error

hi def link smlCharErr	 Error

hi def link smlComment	 Comment

hi def link smlModPath	 Include
hi def link smlModule	 Include
hi def link smlModParam1	 Include
hi def link smlModType	 Include
hi def link smlMPRestr3	 Include
hi def link smlFullMod	 Include
hi def link smlModTypeRestr Include
hi def link smlWith	 Include
hi def link smlMTDef	 Include

hi def link smlConstructor  Constant

hi def link smlModPreRHS	 Keyword
hi def link smlMPRestr2	 Keyword
hi def link smlKeyword	 Keyword
hi def link smlFunDef	 Keyword
hi def link smlRefAssign	 Keyword
hi def link smlKeyChar	 Keyword
hi def link smlAnyVar	 Keyword
hi def link smlTopStop	 Keyword
hi def link smlOperator	 Keyword

hi def link smlBoolean	 Boolean
hi def link smlCharacter	 Character
hi def link smlNumber	 Number
hi def link smlReal	 Float
hi def link smlString	 String
hi def link smlType	 Type
hi def link smlTodo	 Todo
hi def link smlEncl	 Keyword


let b:current_syntax = "sml"

" vim: ts=8
PK�j�Z;r��

vim80/syntax/tmux.vimnu�[���" Language: tmux(1) configuration file
" Version: 2.3 (git-14dc2ac)
" URL: https://github.com/ericpruitt/tmux.vim/
" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)

if exists("b:current_syntax")
    finish
endif

" Explicitly change compatiblity options to Vim's defaults because this file
" uses line continuations.
let s:original_cpo = &cpo
set cpo&vim

let b:current_syntax = "tmux"
setlocal iskeyword+=-
syntax case match

syn keyword tmuxAction  none any current other
syn keyword tmuxBoolean off on

syn keyword tmuxTodo FIXME NOTE TODO XXX contained

syn match tmuxColour            /\<colour[0-9]\+/      display
syn match tmuxKey               /\(C-\|M-\|\^\)\+\S\+/ display
syn match tmuxNumber            /\d\+/                 display
syn match tmuxFlags             /\s-\a\+/              display
syn match tmuxVariable          /\w\+=/                display
syn match tmuxVariableExpansion /\${\=\w\+}\=/         display

syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo

syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString
syn region tmuxString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end='$' contains=tmuxFormatString

" TODO: Figure out how escaping works inside of #(...) and #{...} blocks.
syn region tmuxFormatString start=/#[#DFhHIPSTW]/ end=// contained keepend
syn region tmuxFormatString start=/#{/ skip=/#{.\{-}}/ end=/}/ contained keepend
syn region tmuxFormatString start=/#(/ skip=/#(.\{-})/ end=/)/ contained keepend

hi def link tmuxFormatString      Identifier
hi def link tmuxAction            Boolean
hi def link tmuxBoolean           Boolean
hi def link tmuxCommands          Keyword
hi def link tmuxComment           Comment
hi def link tmuxKey               Special
hi def link tmuxNumber            Number
hi def link tmuxFlags             Identifier
hi def link tmuxOptions           Function
hi def link tmuxString            String
hi def link tmuxTodo              Todo
hi def link tmuxVariable          Identifier
hi def link tmuxVariableExpansion Identifier

" Make the foreground of colourXXX keywords match the color they represent.
" Darker colors have their background set to white.
for s:i in range(0, 255)
    let s:bg = (!s:i || s:i == 16 || (s:i > 231 && s:i < 235)) ? 15 : "none"
    exec "syn match tmuxColour" . s:i . " /\\<colour" . s:i . "\\>/ display"
\     " | highlight tmuxColour" . s:i . " ctermfg=" . s:i . " ctermbg=" . s:bg
endfor

syn keyword tmuxOptions
\ buffer-limit command-alias default-terminal escape-time exit-unattached
\ focus-events history-file message-limit set-clipboard terminal-overrides
\ assume-paste-time base-index bell-action bell-on-alert default-command
\ default-shell destroy-unattached detach-on-destroy
\ display-panes-active-colour display-panes-colour display-panes-time
\ display-time history-limit key-table lock-after-time lock-command
\ message-attr message-bg message-command-attr message-command-bg
\ message-command-fg message-command-style message-fg message-style mouse
\ prefix prefix2 renumber-windows repeat-time set-titles set-titles-string
\ status status-attr status-bg status-fg status-interval status-justify
\ status-keys status-left status-left-attr status-left-bg status-left-fg
\ status-left-length status-left-style status-position status-right
\ status-right-attr status-right-bg status-right-fg status-right-length
\ status-right-style status-style update-environment visual-activity
\ visual-bell visual-silence word-separators aggressive-resize allow-rename
\ alternate-screen automatic-rename automatic-rename-format
\ clock-mode-colour clock-mode-style force-height force-width
\ main-pane-height main-pane-width mode-attr mode-bg mode-fg mode-keys
\ mode-style monitor-activity monitor-silence other-pane-height
\ other-pane-width pane-active-border-bg pane-active-border-fg
\ pane-active-border-style pane-base-index pane-border-bg pane-border-fg
\ pane-border-format pane-border-status pane-border-style remain-on-exit
\ synchronize-panes window-active-style window-style
\ window-status-activity-attr window-status-activity-bg
\ window-status-activity-fg window-status-activity-style window-status-attr
\ window-status-bell-attr window-status-bell-bg window-status-bell-fg
\ window-status-bell-style window-status-bg window-status-current-attr
\ window-status-current-bg window-status-current-fg
\ window-status-current-format window-status-current-style window-status-fg
\ window-status-format window-status-last-attr window-status-last-bg
\ window-status-last-fg window-status-last-style window-status-separator
\ window-status-style wrap-search xterm-keys

syn keyword tmuxCommands
\ attach-session attach bind-key bind break-pane breakp capture-pane
\ capturep clear-history clearhist choose-buffer choose-client choose-tree
\ choose-session choose-window command-prompt confirm-before confirm
\ copy-mode clock-mode detach-client detach suspend-client suspendc
\ display-message display display-panes displayp find-window findw if-shell
\ if join-pane joinp move-pane movep kill-pane killp kill-server
\ start-server start kill-session kill-window killw unlink-window unlinkw
\ list-buffers lsb list-clients lsc list-keys lsk list-commands lscm
\ list-panes lsp list-sessions ls list-windows lsw load-buffer loadb
\ lock-server lock lock-session locks lock-client lockc move-window movew
\ link-window linkw new-session new has-session has new-window neww
\ paste-buffer pasteb pipe-pane pipep refresh-client refresh rename-session
\ rename rename-window renamew resize-pane resizep respawn-pane respawnp
\ respawn-window respawnw rotate-window rotatew run-shell run save-buffer
\ saveb show-buffer showb select-layout selectl next-layout nextl
\ previous-layout prevl select-pane selectp last-pane lastp select-window
\ selectw next-window next previous-window prev last-window last send-keys
\ send send-prefix set-buffer setb delete-buffer deleteb set-environment
\ setenv set-hook show-hooks set-option set set-window-option setw
\ show-environment showenv show-messages showmsgs show-options show
\ show-window-options showw source-file source split-window splitw swap-pane
\ swapp swap-window swapw switch-client switchc unbind-key unbind wait-for
\ wait

let &cpo = s:original_cpo
unlet! s:original_cpo s:bg s:i
PK�j�Z��T055vim80/syntax/make.vimnu�[���" Vim syntax file
" Language:	Makefile
" Maintainer:	Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/make.vim
" Last Change:	2015 Feb 28

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim


" some special characters
syn match makeSpecial	"^\s*[@+-]\+"
syn match makeNextLine	"\\\n\s*"

" some directives
syn match makePreCondit	"^ *\(ifeq\>\|else\>\|endif\>\|ifneq\>\|ifdef\>\|ifndef\>\)"
syn match makeInclude	"^ *[-s]\=include"
syn match makeStatement	"^ *vpath"
syn match makeExport    "^ *\(export\|unexport\)\>"
syn match makeOverride	"^ *override"
hi link makeOverride makeStatement
hi link makeExport makeStatement

" catch unmatched define/endef keywords.  endef only matches it is by itself on a line, possibly followed by a commend
syn region makeDefine start="^\s*define\s" end="^\s*endef\s*\(#.*\)\?$" contains=makeStatement,makeIdent,makePreCondit,makeDefine

" Microsoft Makefile specials
syn case ignore
syn match makeInclude	"^! *include"
syn match makePreCondit "! *\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|elseif\|else if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>"
syn case match

" identifiers
syn region makeIdent	start="\$(" skip="\\)\|\\\\" end=")" contains=makeStatement,makeIdent,makeSString,makeDString
syn region makeIdent	start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement,makeIdent,makeSString,makeDString
syn match makeIdent	"\$\$\w*"
syn match makeIdent	"\$[^({]"
syn match makeIdent	"^ *[^:#= \t]*\s*[:+?!*]="me=e-2
syn match makeIdent	"^ *[^:#= \t]*\s*="me=e-1
syn match makeIdent	"%"

" Makefile.in variables
syn match makeConfig "@[A-Za-z0-9_]\+@"

" make targets
" syn match makeSpecTarget	"^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>"
syn match makeImplicit		"^\.[A-Za-z0-9_./\t -]\+\s*:$"me=e-1 nextgroup=makeSource
syn match makeImplicit		"^\.[A-Za-z0-9_./\t -]\+\s*:[^=]"me=e-2 nextgroup=makeSource

syn region makeTarget   transparent matchgroup=makeTarget start="^[~A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:\{1,2}[^:=]"rs=e-1 end=";"re=e-1,me=e-1 end="[^\\]$" keepend contains=makeIdent,makeSpecTarget,makeNextLine,makeComment skipnl nextGroup=makeCommands
syn match makeTarget		"^[~A-Za-z0-9_./$()%*@-][A-Za-z0-9_./\t $()%*@-]*::\=\s*$" contains=makeIdent,makeSpecTarget,makeComment skipnl nextgroup=makeCommands,makeCommandError

syn region makeSpecTarget	transparent matchgroup=makeSpecTarget start="^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>\s*:\{1,2}[^:=]"rs=e-1 end="[^\\]$" keepend contains=makeIdent,makeSpecTarget,makeNextLine,makeComment skipnl nextGroup=makeCommands
syn match makeSpecTarget		"^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>\s*::\=\s*$" contains=makeIdent,makeComment skipnl nextgroup=makeCommands,makeCommandError

syn match makeCommandError "^\s\+\S.*" contained
syn region makeCommands start=";"hs=s+1 start="^\t" end="^[^\t#]"me=e-1,re=e-1 end="^$" contained contains=makeCmdNextLine,makeSpecial,makeComment,makeIdent,makePreCondit,makeDefine,makeDString,makeSString nextgroup=makeCommandError
syn match makeCmdNextLine	"\\\n."he=e-1 contained


" Statements / Functions (GNU make)
syn match makeStatement contained "(\(subst\|abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1

" Comment
if exists("make_microsoft")
   syn match  makeComment "#.*" contains=@Spell,makeTodo
elseif !exists("make_no_comments")
   syn region  makeComment	start="#" end="^$" end="[^\\]$" keepend contains=@Spell,makeTodo
   syn match   makeComment	"#$" contains=@Spell
endif
syn keyword makeTodo TODO FIXME XXX contained

" match escaped quotes and any other escaped character
" except for $, as a backslash in front of a $ does
" not make it a standard character, but instead it will
" still act as the beginning of a variable
" The escaped char is not highlightet currently
syn match makeEscapedChar	"\\[^$]"


syn region  makeDString start=+\(\\\)\@<!"+  skip=+\\.+  end=+"+  contains=makeIdent
syn region  makeSString start=+\(\\\)\@<!'+  skip=+\\.+  end=+'+  contains=makeIdent
syn region  makeBString start=+\(\\\)\@<!`+  skip=+\\.+  end=+`+  contains=makeIdent,makeSString,makeDString,makeNextLine

" Syncing
syn sync minlines=20 maxlines=200

" Sync on Make command block region: When searching backwards hits a line that
" can't be a command or a comment, use makeCommands if it looks like a target,
" NONE otherwise.
syn sync match makeCommandSync groupthere NONE "^[^\t#]"
syn sync match makeCommandSync groupthere makeCommands "^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:\{1,2}[^:=]"
syn sync match makeCommandSync groupthere makeCommands "^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:\{1,2}\s*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link makeNextLine		makeSpecial
hi def link makeCmdNextLine	makeSpecial
hi def link makeSpecTarget		Statement
if !exists("make_no_commands")
hi def link makeCommands		Number
endif
hi def link makeImplicit		Function
hi def link makeTarget		Function
hi def link makeInclude		Include
hi def link makePreCondit		PreCondit
hi def link makeStatement		Statement
hi def link makeIdent		Identifier
hi def link makeSpecial		Special
hi def link makeComment		Comment
hi def link makeDString		String
hi def link makeSString		String
hi def link makeBString		Function
hi def link makeError		Error
hi def link makeTodo		Todo
hi def link makeDefine		Define
hi def link makeCommandError	Error
hi def link makeConfig		PreCondit

let b:current_syntax = "make"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�4GQ��vim80/syntax/jgraph.vimnu�[���" Vim syntax file
" Language:	jgraph (graph plotting utility)
" Maintainer:	Jonas Munsin jmunsin@iki.fi
" Last Change:	2003 May 04
" this syntax file is not yet complete


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

" comments
syn region	jgraphComment	start="(\* " end=" \*)"

syn keyword	jgraphCmd	newcurve newgraph marktype
syn keyword	jgraphType	xaxis yaxis

syn keyword	jgraphType	circle box diamond triangle x cross ellipse
syn keyword	jgraphType	xbar ybar text postscript eps none general

syn keyword	jgraphType	solid dotted dashed longdash dotdash dodotdash
syn keyword	jgraphType	dotdotdashdash pts

"integer number, or floating point number without a dot. - or no -
syn match  jgraphNumber		 "\<-\=\d\+\>"
"floating point number, with dot - or no -
syn match  jgraphNumber		 "\<-\=\d\+\.\d*\>"
"floating point number, starting with a dot - or no -
syn match  jgraphNumber		 "\-\=\.\d\+\>"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link jgraphComment	Comment
hi def link jgraphCmd	Identifier
hi def link jgraphType	Type
hi def link jgraphNumber	Number



let b:current_syntax = "jgraph"
PK�j�Z'�>�AAvim80/syntax/natural.vimnu�[���" Vim syntax file
"
" Language:	NATURAL
" Version:	2.1.0.5
" Maintainer:	Marko von Oppen <marko@von-oppen.com>
" Last Changed:	2012-02-05 18:50:43
" Support:	http://www.von-oppen.com/

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
setlocal iskeyword+=-,*,#,+,_,/

let s:cpo_save = &cpo
set cpo&vim

" NATURAL is case insensitive
syntax case ignore

" preprocessor
syn keyword naturalInclude	include nextgroup=naturalObjName skipwhite

" define data
syn keyword naturalKeyword	define data end-define
syn keyword naturalKeyword	independent global parameter local redefine view
syn keyword naturalKeyword	const[ant] init initial

" loops
syn keyword naturalLoop		read end-read end-work find end-find histogram end-histogram
syn keyword naturalLoop		end-all sort end-sort sorted descending ascending
syn keyword naturalRepeat	repeat end-repeat while until for step end-for
syn keyword naturalKeyword	in file with field starting from ending at thru by isn where
syn keyword naturalError	on error end-error
syn keyword naturalKeyword	accept reject end-enddata number unique retain as release
syn keyword naturalKeyword	start end-start break end-break physical page top sequence
syn keyword naturalKeyword	end-toppage end-endpage end-endfile before processing
syn keyword naturalKeyword	end-before

" conditionals
syn keyword naturalConditional	if then else end-if end-norec
syn keyword naturalConditional	decide end-decide value when condition none any

" assignment / calculation
syn keyword naturalKeyword	reset assign move left right justified compress to into edited
syn keyword naturalKeyword	add subtract multiply divide compute name
syn keyword naturalKeyword	all giving remainder rounded leaving space numeric
syn keyword naturalKeyword	examine full replace giving separate delimiter modified
syn keyword naturalKeyword	suspend identical suppress

" program flow
syn keyword naturalFlow		callnat fetch return enter escape bottom top stack formatted
syn keyword naturalFlow		command call
syn keyword naturalflow		end-subroutine routine

" file operations
syn keyword naturalKeyword	update store get delete end transaction work once close

" other keywords
syn keyword naturalKeyword	first every of no record[s] found ignore immediate
syn keyword naturalKeyword	set settime key control stop terminate

" in-/output
syn keyword naturalKeyword	write display input reinput notitle nohdr map newpage
syn keyword naturalKeyword	alarm text help eject index window base size
syn keyword naturalKeyword	format printer skip lines

" functions
syn keyword naturalKeyword	abs atn cos exp frac int log sgn sin sqrt tan val old
syn keyword naturalKeyword	pos

" report mode keywords
syn keyword naturalRMKeyword	same loop obtain indexed do doend

" Subroutine name
syn keyword naturalFlow		perform subroutine nextgroup=naturalFunction skipwhite
syn match   naturalFunction	"\<[a-z][-_a-z0-9]*\>"

syn keyword naturalFlow		using nextgroup=naturalKeyword,naturalObjName skipwhite
syn match   naturalObjName	"\<[a-z][-_a-z0-9]\{,7}\>"

" Labels
syn match   naturalLabel	"\<[+#a-z][-_#a-z0-9]*\."
syn match   naturalRef		"\<[+#a-z][-_#a-z0-9]*\>\.\<[+#a-z][*]\=[-_#a-z0-9]*\>"

" mark keyword special handling
syn keyword naturalKeyword	mark nextgroup=naturalMark skipwhite
syn match   naturalMark		"\<\*[a-z][-_#.a-z0-9]*\>"

" System variables
syn match   naturalSysVar	"\<\*[a-z][-a-z0-9]*\>"

"integer number, or floating point number without a dot.
syn match   naturalNumber	"\<-\=\d\+\>"
"floating point number, with dot
syn match   naturalNumber	"\<-\=\d\+\.\d\+\>"
"floating point number, starting with a dot
syn match   naturalNumber	"\.\d\+"

" Formats in write statement
syn match   naturalFormat	"\<\d\+[TX]\>"

" String and Character contstants
syn match   naturalString	"H'\x\+'"
syn region  naturalString	start=+"+ end=+"+
syn region  naturalString	start=+'+ end=+'+

" Type definition
syn match   naturalAttribute	"\<[-a-z][a-z]=[-a-z0-9_\.,]\+\>"
syn match   naturalType		contained "\<[ABINP]\d\+\(,\d\+\)\=\>"
syn match   naturalType		contained "\<[CL]\>"

" "TODO" / other comments
syn keyword naturalTodo		contained todo test
syn match   naturalCommentMark	contained "[a-z][^ \t/:|]*\(\s[^ \t/:'"|]\+\)*:\s"he=e-1

" comments
syn region  naturalComment	start="/\*" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
syn region  naturalComment	start="^\*[ *]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
syn region  naturalComment	start="^\d\{4} \*[\ \*]"lc=5 end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
syn match   naturalComment	"^\*$"
syn match   naturalComment	"^\d\{4} \*$"lc=5
" /* is legal syntax in parentheses e.g. "#ident(label./*)"
syn region  naturalPComment	contained start="/\*\s*[^),]"  end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark

" operators
syn keyword naturalOperator	and or not eq ne gt lt ge le mask scan modified

" constants
syn keyword naturalBoolean	true false
syn match   naturalLineNo	"^\d\{4}"

" identifiers
syn match   naturalIdent	"\<[+#a-z][-_#a-z0-9]*\>[^\.']"me=e-1
syn match   naturalIdent	"\<[+#a-z][-_#a-z0-9]*$"
syn match   naturalLegalIdent	"[+#a-z][-_#a-z0-9]*/[-_#a-z0-9]*"

" parentheses
syn region  naturalPar		matchgroup=naturalParGui start="(" end=")" contains=naturalLabel,naturalRef,naturalOperator,@naturalConstant,naturalType,naturalSysVar,naturalPar,naturalLineNo,naturalPComment
syn match   naturalLineRef	"(\d\{4})"

" build syntax groups
syntax cluster naturalConstant	contains=naturalString,naturalNumber,naturalAttribute,naturalBoolean

" folding
if v:version >= 600
  set foldignore=*
endif


" The default methods for highlighting.  Can be overridden later

" Constants
hi def link naturalFormat		Constant
hi def link naturalAttribute	Constant
hi def link naturalNumber		Number
hi def link naturalString		String
hi def link naturalBoolean		Boolean

" All kinds of keywords
hi def link naturalConditional	Conditional
hi def link naturalRepeat		Repeat
hi def link naturalLoop		Repeat
hi def link naturalFlow		Keyword
hi def link naturalError		Keyword
hi def link naturalKeyword		Keyword
hi def link naturalOperator	Operator
hi def link naturalParGui		Operator

" Labels
hi def link naturalLabel		Label
hi def link naturalRefLabel	Label

" Comments
hi def link naturalPComment	Comment
hi def link naturalComment		Comment
hi def link naturalTodo		Todo
hi def link naturalCommentMark	PreProc

hi def link naturalInclude		Include
hi def link naturalSysVar		Identifier
hi def link naturalLineNo		LineNr
hi def link naturalLineRef		Error
hi def link naturalSpecial		Special
hi def link naturalComKey		Todo

" illegal things
hi def link naturalRMKeyword	Error
hi def link naturalLegalIdent	Error

hi def link naturalType		Type
hi def link naturalFunction	Function
hi def link naturalObjName		PreProc


let b:current_syntax = "natural"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:set ts=8 sw=8 noet ft=vim list:
PK�j�Z�1�LLvim80/syntax/inform.vimnu�[���" Vim syntax file
" Language:     Inform
" Maintainer:   Stephen Thomas (stephen@gowarthomas.com)
" URL:		http://www.gowarthomas.com/informvim
" Last Change:  2006 April 20

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful Inform keywords.  First, case insensitive stuff

syn case ignore

syn keyword informDefine Constant

syn keyword informType Array Attribute Class Nearby
syn keyword informType Object Property String Routine
syn match   informType "\<Global\>"

syn keyword informInclude Import Include Link Replace System_file

syn keyword informPreCondit End Endif Ifdef Ifndef Iftrue Iffalse Ifv3 Ifv5
syn keyword informPreCondit Ifnot

syn keyword informPreProc Abbreviate Default Fake_action Lowstring
syn keyword informPreProc Message Release Serial Statusline Stub Switches
syn keyword informPreProc Trace Zcharacter

syn region  informGlobalRegion matchgroup=informType start="\<Global\>" matchgroup=NONE skip=+!.*$\|".*"\|'.*'+ end=";" contains=ALLBUT,informGramPreProc,informPredicate,informGrammar,informAsm,informAsmObsolete

syn keyword informGramPreProc contained Verb Extend

if !exists("inform_highlight_simple")
  syn keyword informLibAttrib absent animate clothing concealed container
  syn keyword informLibAttrib door edible enterable female general light
  syn keyword informLibAttrib lockable locked male moved neuter on open
  syn keyword informLibAttrib openable pluralname proper scenery scored
  syn keyword informLibAttrib static supporter switchable talkable
  syn keyword informLibAttrib visited workflag worn
  syn match informLibAttrib "\<transparent\>"

  syn keyword informLibProp e_to se_to s_to sw_to w_to nw_to n_to ne_to
  syn keyword informLibProp u_to d_to in_to out_to before after life
  syn keyword informLibProp door_to with_key door_dir invent plural
  syn keyword informLibProp add_to_scope list_together react_before
  syn keyword informLibProp react_after grammar orders initial when_open
  syn keyword informLibProp when_closed when_on when_off description
  syn keyword informLibProp describe article cant_go found_in time_left
  syn keyword informLibProp number time_out daemon each_turn capacity
  syn keyword informLibProp name short_name short_name_indef parse_name
  syn keyword informLibProp articles inside_description
  if !exists("inform_highlight_old")
    syn keyword informLibProp compass_look before_implicit
    syn keyword informLibProp ext_initialise ext_messages
  endif

  syn keyword informLibObj e_obj se_obj s_obj sw_obj w_obj nw_obj n_obj
  syn keyword informLibObj ne_obj u_obj d_obj in_obj out_obj compass
  syn keyword informLibObj thedark selfobj player location second actor
  syn keyword informLibObj noun
  if !exists("inform_highlight_old")
    syn keyword informLibObj LibraryExtensions
  endif

  syn keyword informLibRoutine Achieved AfterRoutines AddToScope
  syn keyword informLibRoutine AllowPushDir Banner ChangeDefault
  syn keyword informLibRoutine ChangePlayer CommonAncestor DictionaryLookup
  syn keyword informLibRoutine DisplayStatus DoMenu DrawStatusLine
  syn keyword informLibRoutine EnglishNumber HasLightSource GetGNAOfObject
  syn keyword informLibRoutine IndirectlyContains IsSeeThrough Locale
  syn keyword informLibRoutine LoopOverScope LTI_Insert MoveFloatingObjects
  syn keyword informLibRoutine NextWord NextWordStopped NounDomain
  syn keyword informLibRoutine ObjectIsUntouchable OffersLight ParseToken
  syn keyword informLibRoutine PlaceInScope PlayerTo PrintShortName
  syn keyword informLibRoutine PronounNotice ScopeWithin SetPronoun SetTime
  syn keyword informLibRoutine StartDaemon StartTimer StopDaemon StopTimer
  syn keyword informLibRoutine TestScope TryNumber UnsignedCompare
  syn keyword informLibRoutine WordAddress WordInProperty WordLength
  syn keyword informLibRoutine WriteListFrom YesOrNo ZRegion RunRoutines
  syn keyword informLibRoutine AfterLife AfterPrompt Amusing BeforeParsing
  syn keyword informLibRoutine ChooseObjects DarkToDark DeathMessage
  syn keyword informLibRoutine GamePostRoutine GamePreRoutine Initialise
  syn keyword informLibRoutine InScope LookRoutine NewRoom ParseNoun
  syn keyword informLibRoutine ParseNumber ParserError PrintRank PrintVerb
  syn keyword informLibRoutine PrintTaskName TimePasses UnknownVerb
  if exists("inform_highlight_glulx")
     syn keyword informLibRoutine  IdentifyGlkObject HandleGlkEvent
     syn keyword informLibRoutine  InitGlkWindow
  endif
  if !exists("inform_highlight_old")
     syn keyword informLibRoutine  KeyCharPrimitive KeyDelay ClearScreen
     syn keyword informLibRoutine  MoveCursor MainWindow StatusLineHeight
     syn keyword informLibRoutine  ScreenWidth ScreenHeight SetColour
     syn keyword informLibRoutine  DecimalNumber PrintToBuffer Length
     syn keyword informLibRoutine  UpperCase LowerCase PrintCapitalised
     syn keyword informLibRoutine  Cap Centre
     if exists("inform_highlight_glulx")
	syn keyword informLibRoutine  PrintAnything PrintAnyToArray
     endif
  endif

  syn keyword informLibAction  Quit Restart Restore Verify Save
  syn keyword informLibAction  ScriptOn ScriptOff Pronouns Score
  syn keyword informLibAction  Fullscore LMode1 LMode2 LMode3
  syn keyword informLibAction  NotifyOn NotifyOff Version Places
  syn keyword informLibAction  Objects TraceOn TraceOff TraceLevel
  syn keyword informLibAction  ActionsOn ActionsOff RoutinesOn
  syn keyword informLibAction  RoutinesOff TimersOn TimersOff
  syn keyword informLibAction  CommandsOn CommandsOff CommandsRead
  syn keyword informLibAction  Predictable XPurloin XAbstract XTree
  syn keyword informLibAction  Scope Goto Gonear Inv InvTall InvWide
  syn keyword informLibAction  Take Drop Remove PutOn Insert Transfer
  syn keyword informLibAction  Empty Enter Exit GetOff Go Goin Look
  syn keyword informLibAction  Examine Search Give Show Unlock Lock
  syn keyword informLibAction  SwitchOn SwitchOff Open Close Disrobe
  syn keyword informLibAction  Wear Eat Yes No Burn Pray Wake
  syn keyword informLibAction  WakeOther Consult Kiss Think Smell
  syn keyword informLibAction  Listen Taste Touch Dig Cut Jump
  syn keyword informLibAction  JumpOver Tie Drink Fill Sorry Strong
  syn keyword informLibAction  Mild Attack Swim Swing Blow Rub Set
  syn keyword informLibAction  SetTo WaveHands Wave Pull Push PushDir
  syn keyword informLibAction  Turn Squeeze LookUnder ThrowAt Tell
  syn keyword informLibAction  Answer Buy Ask AskFor Sing Climb Wait
  syn keyword informLibAction  Sleep LetGo Receive ThrownAt Order
  syn keyword informLibAction  TheSame PluralFound Miscellany Prompt
  syn keyword informLibAction  ChangesOn ChangesOff Showverb Showobj
  syn keyword informLibAction  EmptyT VagueGo
  if exists("inform_highlight_glulx")
     syn keyword informLibAction  GlkList
  endif

  syn keyword informLibVariable keep_silent deadflag action special_number
  syn keyword informLibVariable consult_from consult_words etype verb_num
  syn keyword informLibVariable verb_word the_time real_location c_style
  syn keyword informLibVariable parser_one parser_two listing_together wn
  syn keyword informLibVariable parser_action scope_stage scope_reason
  syn keyword informLibVariable action_to_be menu_item item_name item_width
  syn keyword informLibVariable lm_o lm_n inventory_style task_scores
  syn keyword informLibVariable inventory_stage

  syn keyword informLibConst AMUSING_PROVIDED DEBUG Headline MAX_CARRIED
  syn keyword informLibConst MAX_SCORE MAX_TIMERS NO_PLACES NUMBER_TASKS
  syn keyword informLibConst OBJECT_SCORE ROOM_SCORE SACK_OBJECT Story
  syn keyword informLibConst TASKS_PROVIDED WITHOUT_DIRECTIONS
  syn keyword informLibConst NEWLINE_BIT INDENT_BIT FULLINV_BIT ENGLISH_BIT
  syn keyword informLibConst RECURSE_BIT ALWAYS_BIT TERSE_BIT PARTINV_BIT
  syn keyword informLibConst DEFART_BIT WORKFLAG_BIT ISARE_BIT CONCEAL_BIT
  syn keyword informLibConst PARSING_REASON TALKING_REASON EACHTURN_REASON
  syn keyword informLibConst REACT_BEFORE_REASON REACT_AFTER_REASON
  syn keyword informLibConst TESTSCOPE_REASON LOOPOVERSCOPE_REASON
  syn keyword informLibConst STUCK_PE UPTO_PE NUMBER_PE CANTSEE_PE TOOLIT_PE
  syn keyword informLibConst NOTHELD_PE MULTI_PE MMULTI_PE VAGUE_PE EXCEPT_PE
  syn keyword informLibConst ANIMA_PE VERB_PE SCENERY_PE ITGONE_PE
  syn keyword informLibConst JUNKAFTER_PE TOOFEW_PE NOTHING_PE ASKSCOPE_PE
  if !exists("inform_highlight_old")
     syn keyword informLibConst WORDSIZE TARGET_ZCODE TARGET_GLULX
     syn keyword informLibConst LIBRARY_PARSER LIBRARY_VERBLIB LIBRARY_GRAMMAR
     syn keyword informLibConst LIBRARY_ENGLISH NO_SCORE START_MOVE
     syn keyword informLibConst CLR_DEFAULT CLR_BLACK CLR_RED CLR_GREEN
     syn keyword informLibConst CLR_YELLOW CLR_BLUE CLR_MAGENTA CLR_CYAN
     syn keyword informLibConst CLR_WHITE CLR_PURPLE CLR_AZURE
     syn keyword informLibConst WIN_ALL WIN_MAIN WIN_STATUS
  endif
endif

" Now the case sensitive stuff.

syntax case match

syn keyword informSysFunc child children elder indirect parent random
syn keyword informSysFunc sibling younger youngest metaclass
if exists("inform_highlight_glulx")
  syn keyword informSysFunc glk
endif

syn keyword informSysConst adjectives_table actions_table classes_table
syn keyword informSysConst identifiers_table preactions_table version_number
syn keyword informSysConst largest_object strings_offset code_offset
syn keyword informSysConst dict_par1 dict_par2 dict_par3
syn keyword informSysConst actual_largest_object static_memory_offset
syn keyword informSysConst array_names_offset readable_memory_offset
syn keyword informSysConst cpv__start cpv__end ipv__start ipv__end
syn keyword informSysConst array__start array__end lowest_attribute_number
syn keyword informSysConst highest_attribute_number attribute_names_array
syn keyword informSysConst lowest_property_number highest_property_number
syn keyword informSysConst property_names_array lowest_action_number
syn keyword informSysConst highest_action_number action_names_array
syn keyword informSysConst lowest_fake_action_number highest_fake_action_number
syn keyword informSysConst fake_action_names_array lowest_routine_number
syn keyword informSysConst highest_routine_number routines_array
syn keyword informSysConst routine_names_array routine_flags_array
syn keyword informSysConst lowest_global_number highest_global_number globals_array
syn keyword informSysConst global_names_array global_flags_array
syn keyword informSysConst lowest_array_number highest_array_number arrays_array
syn keyword informSysConst array_names_array array_flags_array lowest_constant_number
syn keyword informSysConst highest_constant_number constants_array constant_names_array
syn keyword informSysConst lowest_class_number highest_class_number class_objects_array
syn keyword informSysConst lowest_object_number highest_object_number
if !exists("inform_highlight_old")
  syn keyword informSysConst sys_statusline_flag
endif

syn keyword informConditional default else if switch

syn keyword informRepeat break continue do for objectloop until while

syn keyword informStatement box font give inversion jump move new_line
syn keyword informStatement print print_ret quit read remove restore return
syn keyword informStatement rfalse rtrue save spaces string style

syn keyword informOperator roman reverse bold underline fixed on off to
syn keyword informOperator near from

syn keyword informKeyword dictionary symbols objects verbs assembly
syn keyword informKeyword expressions lines tokens linker on off alias long
syn keyword informKeyword additive score time string table
syn keyword informKeyword with private has class error fatalerror
syn keyword informKeyword warning self
if !exists("inform_highlight_old")
  syn keyword informKeyword buffer
endif

syn keyword informMetaAttrib remaining create destroy recreate copy call
syn keyword informMetaAttrib print_to_array

syn keyword informPredicate has hasnt in notin ofclass or
syn keyword informPredicate provides

syn keyword informGrammar contained noun held multi multiheld multiexcept
syn keyword informGrammar contained multiinside creature special number
syn keyword informGrammar contained scope topic reverse meta only replace
syn keyword informGrammar contained first last

syn keyword informKeywordObsolete contained initial data initstr

syn keyword informTodo contained TODO

" Assembly language mnemonics must be preceded by a '@'.

syn match informAsmContainer "@\s*\k*" contains=informAsm,informAsmObsolete

if exists("inform_highlight_glulx")
  syn keyword informAsm contained nop add sub mul div mod neg bitand bitor
  syn keyword informAsm contained bitxor bitnot shiftl sshiftr ushiftr jump jz
  syn keyword informAsm contained jnz jeq jne jlt jge jgt jle jltu jgeu jgtu
  syn keyword informAsm contained jleu call return catch throw tailcall copy
  syn keyword informAsm contained copys copyb sexs sexb aload aloads aloadb
  syn keyword informAsm contained aloadbit astore astores astoreb astorebit
  syn keyword informAsm contained stkcount stkpeek stkswap stkroll stkcopy
  syn keyword informAsm contained streamchar streamnum streamstr gestalt
  syn keyword informAsm contained debugtrap getmemsize setmemsize jumpabs
  syn keyword informAsm contained random setrandom quit verify restart save
  syn keyword informAsm contained restore saveundo restoreundo protect glk
  syn keyword informAsm contained getstringtbl setstringtbl getiosys setiosys
  syn keyword informAsm contained linearsearch binarysearch linkedsearch
  syn keyword informAsm contained callf callfi callfii callfiii
else
  syn keyword informAsm contained je jl jg dec_chk inc_chk jin test or and
  syn keyword informAsm contained test_attr set_attr clear_attr store
  syn keyword informAsm contained insert_obj loadw loadb get_prop
  syn keyword informAsm contained get_prop_addr get_next_prop add sub mul div
  syn keyword informAsm contained mod call storew storeb put_prop sread
  syn keyword informAsm contained print_num random push pull
  syn keyword informAsm contained split_window set_window output_stream
  syn keyword informAsm contained input_stream sound_effect jz get_sibling
  syn keyword informAsm contained get_child get_parent get_prop_len inc dec
  syn keyword informAsm contained remove_obj print_obj ret jump
  syn keyword informAsm contained load not rtrue rfalse print
  syn keyword informAsm contained print_ret nop save restore restart
  syn keyword informAsm contained ret_popped pop quit new_line show_status
  syn keyword informAsm contained verify call_2s call_vs aread call_vs2
  syn keyword informAsm contained erase_window erase_line set_cursor get_cursor
  syn keyword informAsm contained set_text_style buffer_mode read_char
  syn keyword informAsm contained scan_table call_1s call_2n set_colour throw
  syn keyword informAsm contained call_vn call_vn2 tokenise encode_text
  syn keyword informAsm contained copy_table print_table check_arg_count
  syn keyword informAsm contained call_1n catch piracy log_shift art_shift
  syn keyword informAsm contained set_font save_undo restore_undo draw_picture
  syn keyword informAsm contained picture_data erase_picture set_margins
  syn keyword informAsm contained move_window window_size window_style
  syn keyword informAsm contained get_wind_prop scroll_window pop_stack
  syn keyword informAsm contained read_mouse mouse_window push_stack
  syn keyword informAsm contained put_wind_prop print_form make_menu
  syn keyword informAsm contained picture_table
  if !exists("inform_highlight_old")
     syn keyword informAsm contained check_unicode print_unicode
  endif
  syn keyword informAsmObsolete contained print_paddr print_addr print_char
endif

" Handling for different versions of VIM.

setlocal iskeyword+=$
command -nargs=+ SynDisplay syntax <args> display

" Grammar sections.

syn region informGrammarSection matchgroup=informGramPreProc start="\<Verb\|Extend\>" skip=+".*"+ end=";"he=e-1 contains=ALLBUT,informAsm

" Special character forms.

SynDisplay match informBadAccent contained "@[^{[:digit:]]\D"
SynDisplay match informBadAccent contained "@{[^}]*}"
SynDisplay match informAccent contained "@:[aouAOUeiyEI]"
SynDisplay match informAccent contained "@'[aeiouyAEIOUY]"
SynDisplay match informAccent contained "@`[aeiouAEIOU]"
SynDisplay match informAccent contained "@\^[aeiouAEIOU]"
SynDisplay match informAccent contained "@\~[anoANO]"
SynDisplay match informAccent contained "@/[oO]"
SynDisplay match informAccent contained "@ss\|@<<\|@>>\|@oa\|@oA\|@ae\|@AE\|@cc\|@cC"
SynDisplay match informAccent contained "@th\|@et\|@Th\|@Et\|@LL\|@oe\|@OE\|@!!\|@??"
SynDisplay match informAccent contained "@{\x\{1,4}}"
SynDisplay match informBadStrUnicode contained "@@\D"
SynDisplay match informStringUnicode contained "@@\d\+"
SynDisplay match informStringCode contained "@\d\d"

" String and Character constants.  Ordering is important here.
syn region informString start=+"+ skip=+\\\\+ end=+"+ contains=informAccent,informStringUnicode,informStringCode,informBadAccent,informBadStrUnicode
syn region informDictString start="'" end="'" contains=informAccent,informBadAccent
SynDisplay match informBadDictString "''"
SynDisplay match informDictString "'''"

" Integer numbers: decimal, hexadecimal and binary.
SynDisplay match informNumber "\<\d\+\>"
SynDisplay match informNumber "\<\$\x\+\>"
SynDisplay match informNumber "\<\$\$[01]\+\>"

" Comments
syn match informComment "!.*" contains=informTodo

" Syncronization
syn sync match informSyncStringEnd grouphere NONE /"[;,]\s*$/
syn sync match informSyncRoutineEnd grouphere NONE /][;,]\s*$/
syn sync match informSyncCommentEnd grouphere NONE /^\s*!.*$/
syn sync match informSyncRoutine groupthere informGrammarSection "\<Verb\|Extend\>"
syn sync maxlines=500

delcommand SynDisplay

" The default highlighting.

hi def link informDefine		Define
hi def link informType		Type
hi def link informInclude		Include
hi def link informPreCondit	PreCondit
hi def link informPreProc		PreProc
hi def link informGramPreProc	PreProc
hi def link informAsm		Special
if !exists("inform_suppress_obsolete")
hi def link informAsmObsolete		informError
hi def link informKeywordObsolete	informError
else
hi def link informAsmObsolete		Special
hi def link informKeywordObsolete	Keyword
endif
hi def link informPredicate	Operator
hi def link informSysFunc		Identifier
hi def link informSysConst		Identifier
hi def link informConditional	Conditional
hi def link informRepeat		Repeat
hi def link informStatement	Statement
hi def link informOperator		Operator
hi def link informKeyword		Keyword
hi def link informGrammar		Keyword
hi def link informDictString	String
hi def link informNumber		Number
hi def link informError		Error
hi def link informString		String
hi def link informComment		Comment
hi def link informAccent		Special
hi def link informStringUnicode	Special
hi def link informStringCode	Special
hi def link informTodo		Todo
if !exists("inform_highlight_simple")
hi def link informLibAttrib	Identifier
hi def link informLibProp	Identifier
hi def link informLibObj		Identifier
hi def link informLibRoutine	Identifier
hi def link informLibVariable	Identifier
hi def link informLibConst	Identifier
hi def link informLibAction	Identifier
endif
hi def link informBadDictString	informError
hi def link informBadAccent	informError
hi def link informBadStrUnicode	informError


let b:current_syntax = "inform"

" vim: ts=8
PK�j�ZY�	vim80/syntax/aflex.vimnu�[���
" Vim syntax file
" Language:	AfLex (from Lex syntax file)
" Maintainer:	Mathieu Clabaut <mathieu.clabaut@free.fr>
" LastChange:	02 May 2001
" Original:	Lex, maintained by Dr. Charles E. Campbell, Jr.
" Comment:	Replaced sourcing c.vim file by ada.vim and rename lex*
"		in aflex*

" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif

" Read the Ada syntax to start with
runtime! syntax/ada.vim
unlet b:current_syntax


" --- AfLex stuff ---

"I'd prefer to use aflex.* , but it doesn't handle forward definitions yet
syn cluster aflexListGroup		contains=aflexAbbrvBlock,aflexAbbrv,aflexAbbrv,aflexAbbrvRegExp,aflexInclude,aflexPatBlock,aflexPat,aflexBrace,aflexPatString,aflexPatTag,aflexPatTag,aflexPatComment,aflexPatCodeLine,aflexMorePat,aflexPatSep,aflexSlashQuote,aflexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2
syn cluster aflexListPatCodeGroup	contains=aflexAbbrvBlock,aflexAbbrv,aflexAbbrv,aflexAbbrvRegExp,aflexInclude,aflexPatBlock,aflexPat,aflexBrace,aflexPatTag,aflexPatTag,aflexPatComment,aflexPatCodeLine,aflexMorePat,aflexPatSep,aflexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2

" Abbreviations Section
syn region aflexAbbrvBlock	start="^\([a-zA-Z_]\+\t\|%{\)" end="^%%$"me=e-2	skipnl	nextgroup=aflexPatBlock contains=aflexAbbrv,aflexInclude,aflexAbbrvComment
syn match  aflexAbbrv		"^\I\i*\s"me=e-1			skipwhite	contained nextgroup=aflexAbbrvRegExp
syn match  aflexAbbrv		"^%[sx]"					contained
syn match  aflexAbbrvRegExp	"\s\S.*$"lc=1				contained nextgroup=aflexAbbrv,aflexInclude
syn region aflexInclude	matchgroup=aflexSep	start="^%{" end="%}"	contained	contains=ALLBUT,@aflexListGroup
syn region aflexAbbrvComment	start="^\s\+/\*"	end="\*/"

"%% : Patterns {Actions}
syn region aflexPatBlock	matchgroup=Todo	start="^%%$" matchgroup=Todo end="^%%$"	skipnl skipwhite contains=aflexPat,aflexPatTag,aflexPatComment
syn region aflexPat		start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1	contained nextgroup=aflexMorePat,aflexPatSep contains=aflexPatString,aflexSlashQuote,aflexBrace
syn region aflexBrace	start="\[" skip=+\\\\\|\\+		end="]"		contained
syn region aflexPatString	matchgroup=String start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
syn match  aflexPatTag	"^<\I\i*\(,\I\i*\)*>*"			contained nextgroup=aflexPat,aflexPatTag,aflexMorePat,aflexPatSep
syn match  aflexPatTag	+^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+		contained nextgroup=aflexPat,aflexPatTag,aflexMorePat,aflexPatSep
syn region aflexPatComment	start="^\s*/\*" end="\*/"		skipnl	contained contains=cTodo nextgroup=aflexPatComment,aflexPat,aflexPatString,aflexPatTag
syn match  aflexPatCodeLine	".*$"					contained contains=ALLBUT,@aflexListGroup
syn match  aflexMorePat	"\s*|\s*$"			skipnl	contained nextgroup=aflexPat,aflexPatTag,aflexPatComment
syn match  aflexPatSep	"\s\+"					contained nextgroup=aflexMorePat,aflexPatCode,aflexPatCodeLine
syn match  aflexSlashQuote	+\(\\\\\)*\\"+				contained
syn region aflexPatCode matchgroup=Delimiter start="{" matchgroup=Delimiter end="}"	skipnl contained contains=ALLBUT,@aflexListPatCodeGroup

syn keyword aflexCFunctions	BEGIN	input	unput	woutput	yyleng	yylook	yytext
syn keyword aflexCFunctions	ECHO	output	winput	wunput	yyless	yymore	yywrap

" <c.vim> includes several ALLBUTs; these have to be treated so as to exclude aflex* groups
syn cluster cParenGroup	add=aflex.*
syn cluster cDefineGroup	add=aflex.*
syn cluster cPreProcGroup	add=aflex.*
syn cluster cMultiGroup	add=aflex.*

" Synchronization
syn sync clear
syn sync minlines=300
syn sync match aflexSyncPat	grouphere  aflexPatBlock	"^%[a-zA-Z]"
syn sync match aflexSyncPat	groupthere aflexPatBlock	"^<$"
syn sync match aflexSyncPat	groupthere aflexPatBlock	"^%%$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link aflexSlashQuote	aflexPat
hi def link aflexBrace		aflexPat
hi def link aflexAbbrvComment	aflexPatComment

hi def link aflexAbbrv		SpecialChar
hi def link aflexAbbrvRegExp	Macro
hi def link aflexCFunctions	Function
hi def link aflexMorePat	SpecialChar
hi def link aflexPat		Function
hi def link aflexPatComment	Comment
hi def link aflexPatString	Function
hi def link aflexPatTag		Special
hi def link aflexSep		Delimiter

let b:current_syntax = "aflex"

" vim:ts=10
PK�j�Z1+~:cdcdvim80/syntax/rpl.vimnu�[���" Vim syntax file
" Language:	RPL/2
" Version:	0.15.15 against RPL/2 version 4.00pre7i
" Last Change:	2012 Feb 03 by Thilo Six
" Maintainer:	Jo�l BERTRAND <rpl2@free.fr>
" URL:		http://www.makalis.fr/~bertrand/rpl2/download/vim/indent/rpl.vim
" Credits:	Nothing

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Keyword characters (not used)
" set iskeyword=33-127

" Case sensitive
syntax case match

" Constants
syntax match rplConstant	   "\(^\|\s\+\)\(e\|i\)\ze\($\|\s\+\)"

" Any binary number
syntax match rplBinaryError	   "\(^\|\s\+\)#\s*\S\+b\ze"
syntax match rplBinary		   "\(^\|\s\+\)#\s*[01]\+b\ze\($\|\s\+\)"
syntax match rplOctalError	   "\(^\|\s\+\)#\s*\S\+o\ze"
syntax match rplOctal		   "\(^\|\s\+\)#\s*\o\+o\ze\($\|\s\+\)"
syntax match rplDecimalError	   "\(^\|\s\+\)#\s*\S\+d\ze"
syntax match rplDecimal		   "\(^\|\s\+\)#\s*\d\+d\ze\($\|\s\+\)"
syntax match rplHexadecimalError   "\(^\|\s\+\)#\s*\S\+h\ze"
syntax match rplHexadecimal	   "\(^\|\s\+\)#\s*\x\+h\ze\($\|\s\+\)"

" Case unsensitive
syntax case ignore

syntax match rplControl		   "\(^\|\s\+\)abort\ze\($\|\s\+\)"
syntax match rplControl		   "\(^\|\s\+\)kill\ze\($\|\s\+\)"
syntax match rplControl		   "\(^\|\s\+\)cont\ze\($\|\s\+\)"
syntax match rplControl		   "\(^\|\s\+\)halt\ze\($\|\s\+\)"
syntax match rplControl		   "\(^\|\s\+\)cmlf\ze\($\|\s\+\)"
syntax match rplControl		   "\(^\|\s\+\)sst\ze\($\|\s\+\)"

syntax match rplConstant	   "\(^\|\s\+\)pi\ze\($\|\s\+\)"

syntax match rplStatement	   "\(^\|\s\+\)return\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)last\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)syzeval\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)wait\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)type\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)kind\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)eval\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)use\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)remove\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)external\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)dup\([2n]\|\)\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)drop\([2n]\|\)\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)depth\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)roll\(d\|\)\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)pick\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)rot\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)swap\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)over\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)clear\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)warranty\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)copyright\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)convert\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)date\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)time\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)mem\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)clmf\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)->num\ze\($\|\s\+\)"
syntax match rplStatement	   "\(^\|\s\+\)help\ze\($\|\s\+\)"

syntax match rplStorage		   "\(^\|\s\+\)get\(i\|r\|c\|\)\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)put\(i\|r\|c\|\)\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)rcl\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)purge\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)sinv\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)sneg\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)sconj\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)steq\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)rceq\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)vars\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)clusr\ze\($\|\s\+\)"
syntax match rplStorage		   "\(^\|\s\+\)sto\([+-/\*]\|\)\ze\($\|\s\+\)"

syntax match rplAlgConditional	   "\(^\|\s\+\)ift\(e\|\)\ze\($\|\s\+\)"

syntax match rplOperator	   "\(^\|\s\+\)and\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)\(x\|\)or\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)not\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)same\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)==\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)<=\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)=<\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)=>\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)>=\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)<>\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)>\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)<\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)[+-]\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)[/\*]\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)\^\ze\($\|\s\+\)"
syntax match rplOperator	   "\(^\|\s\+\)\*\*\ze\($\|\s\+\)"

syntax match rplBoolean		   "\(^\|\s\+\)true\ze\($\|\s\+\)"
syntax match rplBoolean		   "\(^\|\s\+\)false\ze\($\|\s\+\)"

syntax match rplReadWrite	   "\(^\|\s\+\)store\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)recall\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\(\|wf\|un\)lock\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)open\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)close\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)delete\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)create\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)format\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)rewind\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)backspace\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\(\|re\)write\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)read\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)inquire\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)sync\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)append\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)suppress\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)seek\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)pr\(1\|int\|st\|stc\|lcd\|var\|usr\|md\)\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)paper\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)cr\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)erase\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)disp\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)input\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)prompt\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)key\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)cllcd\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\(\|re\)draw\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)drax\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)indep\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)depnd\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)res\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)axes\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)label\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)pmin\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)pmax\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)centr\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)persist\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)title\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\(slice\|auto\|log\|\)scale\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)eyept\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\(p\|s\)par\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)function\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)polar\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)scatter\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)plotter\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)wireframe\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)parametric\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)slice\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\*w\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\*h\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\*d\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)\*s\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)->lcd\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)lcd->\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)edit\ze\($\|\s\+\)"
syntax match rplReadWrite	   "\(^\|\s\+\)visit\ze\($\|\s\+\)"

syntax match rplIntrinsic	   "\(^\|\s\+\)abs\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)arg\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)conj\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)re\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)im\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)mant\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)xpon\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)ceil\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)fact\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)fp\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)floor\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)inv\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)ip\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)max\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)min\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)mod\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)neg\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)relax\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)sign\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)sq\(\|rt\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)xroot\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)cos\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)sin\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)tan\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)tg\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)a\(\|rc\)cos\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)a\(\|rc\)sin\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)atan\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)arctg\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|a\)cosh\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|a\)sinh\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|a\)tanh\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|arg\)th\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)arg[cst]h\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|a\)log\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)ln\(\|1\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)exp\(\|m\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)trn\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)con\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)idn\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)rdm\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)rsd\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)cnrm\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)cross\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)d[eo]t\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)[cr]swp\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)rci\(j\|\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(in\|de\)cr\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)bessel\ze\($\|\s\+\)"

syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|g\)egvl\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|g\)\(\|l\|r\)egv\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)rnrm\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(std\|fix\|sci\|eng\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(rad\|deg\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|n\)rand\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)rdz\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|i\)fft\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(dec\|bin\|oct\|hex\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)rclf\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)stof\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)[cs]f\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)chr\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)num\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)pos\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)sub\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)size\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(st\|rc\)ws\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(r\|s\)\(r\|l\)\(\|b\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)as\(r\|l\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(int\|der\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)stos\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|r\)cls\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)drws\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)scls\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)ns\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)tot\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)mean\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|p\)sdev\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|p\)var\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)maxs\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)mins\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|p\)cov\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)cols\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)s\(x\(\|y\|2\)\|y\(\|2\)\)\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(x\|y\)col\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)corr\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)utp[cfnt]\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)comb\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)perm\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)\(\|p\)lu\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)[lu]chol\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)schur\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)%\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)%ch\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)%t\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)hms->\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)->hms\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)hms+\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)hms-\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)d->r\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)r->d\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)b->r\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)r->b\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)c->r\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)r->c\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)r->p\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)p->r\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)str->\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)->str\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)array->\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)->array\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)list->\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)->list\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)s+\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)s-\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)col-\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)col+\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)row-\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)row+\ze\($\|\s\+\)"
syntax match rplIntrinsic	   "\(^\|\s\+\)->q\ze\($\|\s\+\)"

syntax match rplObsolete	   "\(^\|\s\+\)arry->\ze\($\|\s\+\)"hs=e-5
syntax match rplObsolete	   "\(^\|\s\+\)->arry\ze\($\|\s\+\)"hs=e-5

" Conditional structures
syntax match rplConditionalError   "\(^\|\s\+\)case\ze\($\|\s\+\)"hs=e-3
syntax match rplConditionalError   "\(^\|\s\+\)then\ze\($\|\s\+\)"hs=e-3
syntax match rplConditionalError   "\(^\|\s\+\)else\ze\($\|\s\+\)"hs=e-3
syntax match rplConditionalError   "\(^\|\s\+\)elseif\ze\($\|\s\+\)"hs=e-5
syntax match rplConditionalError   "\(^\|\s\+\)end\ze\($\|\s\+\)"hs=e-2
syntax match rplConditionalError   "\(^\|\s\+\)\(step\|next\)\ze\($\|\s\+\)"hs=e-3
syntax match rplConditionalError   "\(^\|\s\+\)until\ze\($\|\s\+\)"hs=e-4
syntax match rplConditionalError   "\(^\|\s\+\)repeat\ze\($\|\s\+\)"hs=e-5
syntax match rplConditionalError   "\(^\|\s\+\)default\ze\($\|\s\+\)"hs=e-6

" FOR/(CYCLE)/(EXIT)/NEXT
" FOR/(CYCLE)/(EXIT)/STEP
" START/(CYCLE)/(EXIT)/NEXT
" START/(CYCLE)/(EXIT)/STEP
syntax match rplCycle              "\(^\|\s\+\)\(cycle\|exit\)\ze\($\|\s\+\)"
syntax region rplForNext matchgroup=rplRepeat start="\(^\|\s\+\)\(for\|start\)\ze\($\|\s\+\)" end="\(^\|\s\+\)\(next\|step\)\ze\($\|\s\+\)" contains=ALL keepend extend

" ELSEIF/END
syntax region rplElseifEnd matchgroup=rplConditional start="\(^\|\s\+\)elseif\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd keepend

" ELSE/END
syntax region rplElseEnd matchgroup=rplConditional start="\(^\|\s\+\)else\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd,rplThenEnd,rplElseifEnd keepend

" THEN/END
syntax region rplThenEnd matchgroup=rplConditional start="\(^\|\s\+\)then\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained containedin=rplIfEnd contains=ALLBUT,rplThenEnd keepend

" IF/END
syntax region rplIfEnd matchgroup=rplConditional start="\(^\|\s\+\)if\(err\|\)\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplElseEnd,rplElseifEnd keepend extend
" if end is accepted !
" select end too !

" CASE/THEN
syntax region rplCaseThen matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)then\ze\($\|\s\+\)" contains=ALLBUT,rplCaseThen,rplCaseEnd,rplThenEnd keepend extend contained containedin=rplCaseEnd

" CASE/END
syntax region rplCaseEnd matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplCaseEnd,rplThenEnd,rplElseEnd keepend extend contained containedin=rplSelectEnd

" DEFAULT/END
syntax region rplDefaultEnd matchgroup=rplConditional start="\(^\|\s\+\)default\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplDefaultEnd keepend contained containedin=rplSelectEnd

" SELECT/END
syntax region rplSelectEnd matchgroup=rplConditional start="\(^\|\s\+\)select\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplThenEnd keepend extend
" select end is accepted !

" DO/UNTIL/END
syntax region rplUntilEnd matchgroup=rplConditional start="\(^\|\s\+\)until\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplUntilEnd contained containedin=rplDoUntil extend keepend
syntax region rplDoUntil matchgroup=rplConditional start="\(^\|\s\+\)do\ze\($\|\s\+\)" end="\(^\|\s\+\)until\ze\($\|\s\+\)" contains=ALL keepend extend

" WHILE/REPEAT/END
syntax region rplRepeatEnd matchgroup=rplConditional start="\(^\|\s\+\)repeat\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplRepeatEnd contained containedin=rplWhileRepeat extend keepend
syntax region rplWhileRepeat matchgroup=rplConditional start="\(^\|\s\+\)while\ze\($\|\s\+\)" end="\(^\|\s\+\)repeat\ze\($\|\s\+\)" contains=ALL keepend extend

" Comments
syntax match rplCommentError "\*/"
syntax region rplCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1
syntax region rplCommentLine start="\(^\|\s\+\)//\ze" skip="\\$" end="$" contains=NONE keepend extend
syntax region rplComment start="\(^\|\s\+\)/\*\ze" end="\*/" contains=rplCommentString keepend extend

" Catch errors caused by too many right parentheses
syntax region rplParen transparent start="(" end=")" contains=ALLBUT,rplParenError,rplComplex,rplIncluded keepend extend
syntax match rplParenError ")"

" Subroutines
" Catch errors caused by too many right '>>'
syntax match rplSubError "\(^\|\s\+\)>>\ze\($\|\s\+\)"hs=e-1
syntax region rplSub matchgroup=rplSubDelimitor start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageSub keepend extend

" Expressions
syntax region rplExpr start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError

" Local variables
syntax match rplStorageError "\(^\|\s\+\)->\ze\($\|\s\+\)"hs=e-1
syntax region rplStorageSub matchgroup=rplStorage start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageExpr contained containedin=rplLocalStorage keepend extend
syntax region rplStorageExpr matchgroup=rplStorage start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError extend contained containedin=rplLocalStorage
syntax region rplLocalStorage matchgroup=rplStorage start="\(^\|\s\+\)->\ze\($\|\s\+\)" end="\(^\|\s\+\)\(<<\ze\($\|\s\+\)\|'\)" contains=rplStorageSub,rplStorageExpr,rplComment,rplCommentLine keepend extend

" Catch errors caused by too many right brackets
syntax match rplArrayError "\]"
syntax match rplArray "\]" contained containedin=rplArray
syntax region rplArray matchgroup=rplArray start="\[" end="\]" contains=ALLBUT,rplArrayError keepend extend

" Catch errors caused by too many right '}'
syntax match rplListError "}"
syntax match rplList "}" contained containedin=rplList
syntax region rplList matchgroup=rplList start="{" end="}" contains=ALLBUT,rplListError,rplIncluded keepend extend

" cpp is used by RPL/2
syntax match rplPreProc   "\_^#\s*\(define\|undef\)\>"
syntax match rplPreProc   "\_^#\s*\(warning\|error\)\>"
syntax match rplPreCondit "\_^#\s*\(if\|ifdef\|ifndef\|elif\|else\|endif\)\>"
syntax match rplIncluded contained "\<<\s*\S*\s*>\>"
syntax match rplInclude   "\_^#\s*include\>\s*["<]" contains=rplIncluded,rplString
"syntax match rplExecPath  "\%^\_^#!\s*\S*"
syntax match rplExecPath  "\%^\_^#!\p*\_$"

" Any integer
syntax match rplInteger    "\(^\|\s\+\)[-+]\=\d\+\ze\($\|\s\+\)"

" Floating point number
" [S][ip].[fp]
syntax match rplFloat       "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\(\d*\)\=\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
" [S]ip[.fp]E[S]exp
syntax match rplFloat       "\(^\|\s\+\)[-+]\=\d\+\([\.,]\d*\)\=[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
" [S].fpE[S]exp
syntax match rplFloat       "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\d\+[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
syntax match rplPoint      "\<[\.,]\>"
syntax match rplSign       "\<[+-]\>"

" Complex number
" (x,y)
syntax match rplComplex    "\(^\|\s\+\)([-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=\s*,\s*[-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)"
" (x.y)
syntax match rplComplex    "\(^\|\s\+\)([-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=\s*\.\s*[-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)"

" Strings
syntax match rplStringGuilles       "\\\""
syntax match rplStringAntislash     "\\\\"
syntax region rplString start=+\(^\|\s\+\)"+ end=+"\ze\($\|\s\+\)+ contains=rplStringGuilles,rplStringAntislash

syntax match rplTab "\t"  transparent

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.

hi def link rplControl		Statement
hi def link rplStatement		Statement
hi def link rplAlgConditional	Conditional
hi def link rplConditional		Repeat
hi def link rplConditionalError	Error
hi def link rplRepeat		Repeat
hi def link rplCycle		Repeat
hi def link rplUntil		Repeat
hi def link rplIntrinsic		Special
hi def link rplStorage		StorageClass
hi def link rplStorageExpr		StorageClass
hi def link rplStorageError	Error
hi def link rplReadWrite		rplIntrinsic

hi def link rplOperator		Operator

hi def link rplList		Special
hi def link rplArray		Special
hi def link rplConstant		Identifier
hi def link rplExpr		Type

hi def link rplString		String
hi def link rplStringGuilles	String
hi def link rplStringAntislash	String

hi def link rplBinary		Boolean
hi def link rplOctal		Boolean
hi def link rplDecimal		Boolean
hi def link rplHexadecimal		Boolean
hi def link rplInteger		Number
hi def link rplFloat		Float
hi def link rplComplex		Float
hi def link rplBoolean		Identifier

hi def link rplObsolete		Todo

hi def link rplPreCondit		PreCondit
hi def link rplInclude		Include
hi def link rplIncluded		rplString
hi def link rplInclude		Include
hi def link rplExecPath		Include
hi def link rplPreProc		PreProc
hi def link rplComment		Comment
hi def link rplCommentLine		Comment
hi def link rplCommentString	Comment
hi def link rplSubDelimitor	rplStorage
hi def link rplCommentError	Error
hi def link rplParenError		Error
hi def link rplSubError		Error
hi def link rplArrayError		Error
hi def link rplListError		Error
hi def link rplTab			Error
hi def link rplBinaryError		Error
hi def link rplOctalError		Error
hi def link rplDecimalError	Error
hi def link rplHexadecimalError	Error


let b:current_syntax = "rpl"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 tw=132
PK�j�Zl�`_@@vim80/syntax/icon.vimnu�[���" Vim syntax file
" Language:	Icon
" Maintainer:	Wendell Turner <wendell@adsi-m4.com>
" URL:		ftp://ftp.halcyon.com/pub/users/wturner/icon.vim
" Last Change:	2003 May 11

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword  iconFunction   abs acos any args asin atan bal
syn keyword  iconFunction   callout center char chdir close collect copy
syn keyword  iconFunction   cos cset delay delete detab display dtor
syn keyword  iconFunction   entab errorclear exit exp find flush function
syn keyword  iconFunction   get getch getche getenv iand icom image
syn keyword  iconFunction   insert integer ior ishift ixor kbhit key
syn keyword  iconFunction   left list loadfunc log many map match
syn keyword  iconFunction   member move name numeric open ord pop
syn keyword  iconFunction   pos proc pull push put read reads
syn keyword  iconFunction   real remove rename repl reverse right rtod
syn keyword  iconFunction   runerr save seek seq set sin sort
syn keyword  iconFunction   sortf sqrt stop string system tab table
syn keyword  iconFunction   tan trim type upto variable where write writes

" Keywords
syn match iconKeyword "&allocated"
syn match iconKeyword "&ascii"
syn match iconKeyword "&clock"
syn match iconKeyword "&collections"
syn match iconKeyword "&cset"
syn match iconKeyword "&current"
syn match iconKeyword "&date"
syn match iconKeyword "&dateline"
syn match iconKeyword "&digits"
syn match iconKeyword "&dump"
syn match iconKeyword "&e"
syn match iconKeyword "&error"
syn match iconKeyword "&errornumber"
syn match iconKeyword "&errortext"
syn match iconKeyword "&errorvalue"
syn match iconKeyword "&errout"
syn match iconKeyword "&fail"
syn match iconKeyword "&features"
syn match iconKeyword "&file"
syn match iconKeyword "&host"
syn match iconKeyword "&input"
syn match iconKeyword "&lcase"
syn match iconKeyword "&letters"
syn match iconKeyword "&level"
syn match iconKeyword "&line"
syn match iconKeyword "&main"
syn match iconKeyword "&null"
syn match iconKeyword "&output"
syn match iconKeyword "&phi"
syn match iconKeyword "&pi"
syn match iconKeyword "&pos"
syn match iconKeyword "&progname"
syn match iconKeyword "&random"
syn match iconKeyword "&regions"
syn match iconKeyword "&source"
syn match iconKeyword "&storage"
syn match iconKeyword "&subject"
syn match iconKeyword "&time"
syn match iconKeyword "&trace"
syn match iconKeyword "&ucase"
syn match iconKeyword "&version"

" Reserved words
syn keyword iconReserved break by case create default do
syn keyword iconReserved else end every fail if
syn keyword iconReserved initial link next not of
syn keyword iconReserved procedure repeat return suspend
syn keyword iconReserved then to until while

" Storage class reserved words
syn keyword	iconStorageClass	global static local record

syn keyword	iconTodo	contained TODO FIXME XXX BUG

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match iconSpecial contained "\\x\x\{2}\|\\\o\{3\}\|\\[bdeflnrtv\"\'\\]\|\\^c[a-zA-Z0-9]\|\\$"
syn region	iconString	start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=iconSpecial
syn region	iconCset	start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=iconSpecial
syn match	iconCharacter	"'[^\\]'"

" not sure about these
"syn match	iconSpecialCharacter "'\\[bdeflnrtv]'"
"syn match	iconSpecialCharacter "'\\\o\{3\}'"
"syn match	iconSpecialCharacter "'\\x\x\{2}'"
"syn match	iconSpecialCharacter "'\\^c\[a-zA-Z0-9]'"

"when wanted, highlight trailing white space
if exists("icon_space_errors")
  syn match	iconSpaceError	"\s*$"
  syn match	iconSpaceError	" \+\t"me=e-1
endif

"catch errors caused by wrong parenthesis
syn cluster	iconParenGroup contains=iconParenError,iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField

syn region	iconParen	transparent start='(' end=')' contains=ALLBUT,@iconParenGroup
syn match	iconParenError	")"
syn match	iconInParen	contained "[{}]"


syn case ignore

"integer number, or floating point number without a dot
syn match	iconNumber		"\<\d\+\>"

"floating point number, with dot, optional exponent
syn match	iconFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=\>"

"floating point number, starting with a dot, optional exponent
syn match	iconFloat		"\.\d\+\(e[-+]\=\d\+\)\=\>"

"floating point number, without dot, with exponent
syn match	iconFloat		"\<\d\+e[-+]\=\d\+\>"

"radix number
syn match	iconRadix		"\<\d\{1,2}[rR][a-zA-Z0-9]\+\>"


" syn match iconIdentifier	"\<[a-z_][a-z0-9_]*\>"

syn case match

" Comment
syn match	iconComment	"#.*" contains=iconTodo,iconSpaceError

syn region	iconPreCondit start="^\s*$\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=iconComment,iconString,iconCharacter,iconNumber,iconCommentError,iconSpaceError

syn region	iconIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	iconIncluded	contained "<[^>]*>"
syn match	iconInclude	"^\s*$\s*include\>\s*["<]" contains=iconIncluded
"syn match iconLineSkip	"\\$"

syn cluster	iconPreProcGroup contains=iconPreCondit,iconIncluded,iconInclude,iconDefine,iconInParen,iconUserLabel

syn region	iconDefine	start="^\s*$\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@iconPreProcGroup

"wt:syn region	iconPreProc "start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" "end="$" contains=ALLBUT,@iconPreProcGroup

" Highlight User Labels

" syn cluster	iconMultiGroup contains=iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField

if !exists("icon_minlines")
  let icon_minlines = 15
endif
exec "syn sync ccomment iconComment minlines=" . icon_minlines

" Define the default highlighting.

" Only when an item doesn't have highlighting

" The default methods for highlighting.  Can be overridden later

" hi def link iconSpecialCharacter	iconSpecial

hi def link iconOctalError		iconError
hi def link iconParenError		iconError
hi def link iconInParen		iconError
hi def link iconCommentError	iconError
hi def link iconSpaceError		iconError
hi def link iconCommentError	iconError
hi def link iconIncluded		iconString
hi def link iconCommentString	iconString
hi def link iconComment2String	iconString
hi def link iconCommentSkip	iconComment

hi def link iconUserLabel		Label
hi def link iconCharacter		Character
hi def link iconNumber			Number
hi def link iconRadix			Number
hi def link iconFloat			Float
hi def link iconInclude		Include
hi def link iconPreProc		PreProc
hi def link iconDefine			Macro
hi def link iconError			Error
hi def link iconStatement		Statement
hi def link iconPreCondit		PreCondit
hi def link iconString			String
hi def link iconCset			String
hi def link iconComment		Comment
hi def link iconSpecial		SpecialChar
hi def link iconTodo			Todo
hi def link iconStorageClass	StorageClass
hi def link iconFunction		Statement
hi def link iconReserved		Label
hi def link iconKeyword		Operator

"hi def link iconIdentifier	Identifier


let b:current_syntax = "icon"

PK�j�Z���L��vim80/syntax/lifelines.vimnu�[���" Vim syntax file
" Language:	LifeLines (v 3.0.62) <http://lifelines.sourceforge.net>
" Maintainer:	Patrick Texier <p.texier@orsennes.com>
" Location:	<http://patrick.texier.free.fr/vim/syntax/lifelines.vim>
" Last Change:	2010 May 7

" option to highlight error obsolete statements
" add the following line to your .vimrc file :
" let lifelines_deprecated = 1

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful LifeLines keywords 3.0.62

syn keyword	lifelinesDecl		char_encoding require option include
syn keyword	lifelinesStatement	set
syn keyword	lifelinesUser		getindi geindiset getfam getint getstr choosechild
syn keyword	lifelinesUser		chooseindi choosespouse choosesubset menuchoose
syn keyword	lifelinesUser		choosefam 
syn keyword	lifelinesProc		proc func return call
syn keyword	lifelinesInclude	include
syn keyword	lifelinesDef		global
syn keyword	lifelinesConditional	if else elsif switch
syn keyword	lifelinesRepeat		continue break while
syn keyword	lifelinesLogical	and or not eq ne lt gt le ge strcmp eqstr nestr
syn keyword	lifelinesArithm		add sub mul div mod exp neg incr decr
syn keyword	lifelinesArithm		cos sin tan arccos arcsin arctan
syn keyword	lifelinesArithm		deg2dms dms2deg spdist
syn keyword	lifelinesIndi		name fullname surname givens trimname birth
syn keyword	lifelinesIndi		death burial baptism
syn keyword	lifelinesIndi		father mother nextsib prevsib sex male female
syn keyword	lifelinesIndi		pn nspouses nfamilies parents title key
syn keyword	lifelinesIndi		soundex inode root indi firstindi nextindi
syn keyword	lifelinesIndi		previndi spouses families forindi indiset
syn keyword	lifelinesIndi		addtoset deletefromset  union intersect
syn keyword	lifelinesIndi		difference parentset childset spouseset siblingset
syn keyword	lifelinesIndi		ancestorset descendentset descendantset uniqueset
syn keyword	lifelinesIndi		namesort keysort valuesort genindiset getindiset
syn keyword	lifelinesIndi		forindiset lastindi writeindi
syn keyword	lifelinesIndi		inset
syn keyword	lifelinesFam		marriage husband wife nchildren firstchild
syn keyword	lifelinesFam		lastchild fnode fam firstfam nextfam lastfam
syn keyword	lifelinesFam		prevfam children forfam writefam
syn keyword	lifelinesFam		fathers mothers Parents
syn keyword	lifelinesList		list empty length enqueue dequeue requeue
syn keyword	lifelinesList		push pop setel getel forlist inlist dup clear
syn keyword	lifelinesTable		table insert lookup
syn keyword	lifelinesGedcom		xref tag value parent child sibling savenode
syn keyword	lifelinesGedcom		fornodes traverse createnode addnode 
syn keyword	lifelinesGedcom		detachnode foreven fornotes forothr forsour
syn keyword	lifelinesGedcom		reference dereference getrecord
syn keyword	lifelinesGedcom		gengedcomstrong 
syn keyword	lifelinesFunct		date place year long short gettoday dayformat
syn keyword	lifelinesFunct		monthformat dateformat extractdate eraformat
syn keyword	lifelinesFunct		complexdate complexformat complexpic datepic
syn keyword	lifelinesFunct		extractnames extractplaces extracttokens lower
syn keyword	lifelinesFunct		yearformat
syn keyword	lifelinesFunct		upper capitalize trim rjustify 
syn keyword 	lifelinesFunct		concat strconcat strlen substring index
syn keyword	lifelinesFunct		titlecase gettext
syn keyword	lifelinesFunct		d card ord alpha roman strsoundex strtoint
syn keyword	lifelinesFunct		atoi linemode pagemod col row pos pageout nl
syn keyword	lifelinesFunct		sp qt newfile outfile copyfile print lock unlock test
syn keyword	lifelinesFunct		database version system stddate program
syn keyword	lifelinesFunct		pvalue pagemode level extractdatestr debug
syn keyword	lifelinesFunct		f float int free getcol getproperty heapused
syn keyword 	lifelinesFunct		sort rsort
syn keyword	lifelinesFunct		deleteel
syn keyword	lifelinesFunct		bytecode convertcode setlocale
" New dates functions (since 3.0.51)
syn keyword	lifelinesFunct		jd2date date2jd dayofweek setdate

" options to highlight as error obsolete statements
" please read ll-reportmanual.

if exists("lifelines_deprecated")
	syn keyword lifelinesError	getintmsg getindimsg getstrmsg
	syn keyword lifelinesError	gengedcom gengedcomweak deletenode
	syn keyword lifelinesError	save strsave
	syn keyword lifelinesError	lengthset
	if version >= 700
		let g:omni_syntax_group_exclude_lifelines = 'lifelinesError'
	endif
else
	syn keyword lifelinesUser	getintmsg getindimsg getstrmsg
	syn keyword lifelinesGedcom	gengedcom gengedcomweak deletenode
	syn keyword lifelinesFunct	save strsave
	syn keyword lifelinesIndi	lengthset
endif

syn region	lifelinesString	start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lifelinesSpecial

syn match	lifelinesSpecial	"\\\(\\\|\(n\|t\)\)" contained

syn keyword	lifelinesTodo		contained TODO FIXME XXX
syn region	lifelinesComment	start="/\*"  end="\*/" contains=lifelinesTodo

" integers
syn match	lifelinesNumber	"-\=\<\d\+\>"
"floats, with dot
syn match	lifelinesNumber	"-\=\<\d\+\.\d*\>"
"floats, starting with a dot
syn match	lifelinesNumber	"-\=\.\d\+\>"

" folding using {}
syn region lifelinesFoldBlock	start="{" end="}" transparent fold

"catch errors caused by wrong parenthesis
"adapted from original c.vim written by Bram Moolenaar

syn cluster	lifelinesParenGroup	contains=lifelinesParenError
syn region	lifelinesParen		transparent start='(' end=')' contains=ALLBUT,@lifelinesParenGroup
syn match	lifelinesParenError	")"
syn match	lifelinesErrInParen	contained "[{}]"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet


hi def link lifelinesConditional	Conditional
hi def link lifelinesArithm	Operator
hi def link lifelinesLogical	Conditional
hi def link lifelinesInclude	Include
hi def link lifelinesComment	Comment
hi def link lifelinesStatement	Statement
hi def link lifelinesUser		Statement
hi def link lifelinesFunct		Statement
hi def link lifelinesTable		Statement
hi def link lifelinesGedcom	Statement
hi def link lifelinesList		Statement
hi def link lifelinesRepeat	Repeat
hi def link lifelinesFam		Statement
hi def link lifelinesIndi		Statement
hi def link lifelinesProc		Statement
hi def link lifelinesDef		Statement
hi def link lifelinesString	String
hi def link lifelinesSpecial	Special
hi def link lifelinesNumber	Number
hi def link lifelinesParenError	Error
hi def link lifelinesErrInParen	Error
hi def link lifelinesError		Error
hi def link lifelinesTodo		Todo
hi def link lifelinesDecl		PreProc


let b:current_syntax = "lifelines"

" vim: ts=8 sw=4
PK�j�ZÃha�	�	vim80/syntax/kwt.vimnu�[���" Vim syntax file
" Language:	kimwitu++
" Maintainer:	Michael Piefel <entwurf@piefel.de>
" Last Change:	2 May 2001

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" Read the C++ syntax to start with
runtime! syntax/cpp.vim
unlet b:current_syntax

" kimwitu++ extentions

" Don't stop at eol, messes around with CPP mode, but gives line spanning
" strings in unparse rules
syn region cCppString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat
syn keyword cType		integer real casestring nocasestring voidptr list
syn keyword cType		uview rview uview_enum rview_enum

" avoid unparsing rule sth:view being scanned as label
syn clear   cUserCont
syn match   cUserCont		"^\s*\I\i*\s*:$" contains=cUserLabel contained
syn match   cUserCont		";\s*\I\i*\s*:$" contains=cUserLabel contained
syn match   cUserCont		"^\s*\I\i*\s*:[^:]"me=e-1 contains=cUserLabel contained
syn match   cUserCont		";\s*\I\i*\s*:[^:]"me=e-1 contains=cUserLabel contained

" highlight phylum decls
syn match   kwtPhylum		"^\I\i*:$"
syn match   kwtPhylum		"^\I\i*\s*{\s*\(!\|\I\)\i*\s*}\s*:$"

syn keyword kwtStatement	with foreach afterforeach provided
syn match kwtDecl		"%\(uviewvar\|rviewvar\)"
syn match kwtDecl		"^%\(uview\|rview\|ctor\|dtor\|base\|storageclass\|list\|attr\|member\|option\)"
syn match kwtOption		"no-csgio\|no-unparse\|no-rewrite\|no-printdot\|no-hashtables\|smart-pointer\|weak-pointer"
syn match kwtSep		"^%}$"
syn match kwtSep		"^%{\(\s\+\I\i*\)*$"
syn match kwtCast		"\<phylum_cast\s*<"me=e-1
syn match kwtCast		"\<phylum_cast\s*$"


" match views, remove paren error in brackets
syn clear cErrInBracket
syn match cErrInBracket		contained ")"
syn match kwtViews		"\(\[\|<\)\@<=[ [:alnum:]_]\{-}:"

" match rule bodies
syn region kwtUnpBody		transparent keepend extend fold start="->\s*\[" start="^\s*\[" skip="\$\@<!{\_.\{-}\$\@<!}" end="\s]\s\=;\=$" end="^]\s\=;\=$" end="}]\s\=;\=$"
syn region kwtRewBody		transparent keepend extend fold start="->\s*<" start="^\s*<" end="\s>\s\=;\=$" end="^>\s\=;\=$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link kwtStatement	cppStatement
hi def link kwtDecl	cppStatement
hi def link kwtCast	cppStatement
hi def link kwtSep	Delimiter
hi def link kwtViews	Label
hi def link kwtPhylum	Type
hi def link kwtOption	PreProc
"hi def link cText	Comment


syn sync lines=300

let b:current_syntax = "kwt"

" vim: ts=8
PK�j�Z./�*%%vim80/syntax/hostsaccess.vimnu�[���" Vim syntax file
" Language:	hosts.deny, hosts.allow configuration files
" Maintainer:	Thilo Six <T.Six@gmx.de>
" Last Change:	2011 May 01
" Derived From: conf.vim
" Credits:	Bram Moolenaar
"
" This file is there to get at least a minimal highlighting.
" A later version may be improved.


" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" For a starter we just use conf.vim for highlighting
runtime! syntax/conf.vim
unlet b:current_syntax


let b:current_syntax = "hostsaccess"
" vim: ts=8 sw=2
PK�j�Z�����J�Jvim80/syntax/eterm.vimnu�[���" Vim syntax file
" Language:             eterm(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-21

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword etermTodo             contained TODO FIXME XXX NOTE

syn region  etermComment          display oneline start='^#' end='$'
                                  \ contains=etermTodo,@Spell

syn match   etermMagic            display '^<Eterm-[0-9.]\+>$'

syn match   etermNumber           contained display '\<\(\d\+\|0x\x\{1,2}\)\>'

syn region  etermString           contained display oneline start=+"+
                                  \ skip=+\\"+ end=+"+

syn keyword etermBoolean          contained on off true false yes no

syn keyword etermPreProc          contained appname exec get put random version
                                  \ include preproc

syn keyword etermFunctions        contained copy exit kill nop paste save
                                  \ scroll search spawn

syn cluster etermGeneral          contains=etermComment,etermFunction,
                                  \ etermPreProc

syn keyword etermKeyMod           contained ctrl shift lock mod1 mod2 mod3 mod4
                                  \ mod5 alt meta anymod
syn keyword etermKeyMod           contained button1 button2 button3 button4
                                  \ button5

syn keyword etermColorOptions     contained video nextgroup=etermVideoOptions
                                  \ skipwhite

syn keyword etermVideoType        contained normal reverse

syn keyword etermColorOptions     contained foreground background cursor
                                  \ cursor_text pointer
                                  \ nextgroup=etermColorType skipwhite

syn keyword etermColorType        contained bd ul
syn match   etermColorType        contained display '\<\%(\d\|1[0-5]\)'

syn keyword etermColorOptions     contained color
                                  \ nextgroup=etermColorNumber skipwhite

syn keyword etermColorNumber      contained bd ul nextgroup=etermColorSpec
                                  \ skipwhite
syn match   etermColorNumber      contained display '\<\%(\d\|1[0-5]\)'
                                  \ nextgroup=etermColorSpec skipwhite

syn match   etermColorSpec        contained display '\S\+'

syn region  etermColorContext     fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+color\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermColorOptions

syn keyword etermAttrOptions      contained geometry nextgroup=etermGeometry
                                  \ skipwhite

syn match   etermGeometry         contained display '\d\+x\d++\d\++\d\+'

syn keyword etermAttrOptions      contained scrollbar_type
                                  \ nextgroup=etermScrollbarType skipwhite

syn keyword etermScrollbarType    contained motif xterm next

syn keyword etermAttrOptions      contained font nextgroup=etermFontType
                                  \ skipwhite

syn keyword etermFontType         contained bold nextgroup=etermFont skipwhite
syn match   etermFontType         contained display '[0-5]' nextgroup=etermFont
                                  \ skipwhite

syn match   etermFont             contained display '\S\+'

syn keyword etermFontType         contained default nextgroup=etermNumber
                                  \ skipwhite

syn keyword etermFontType         contained proportional nextgroup=etermBoolean
                                  \ skipwhite

syn keyword etermFontType         contained fx nextgroup=etermString skipwhite

syn keyword etermAttrOptions      contained title name iconname
                                  \ nextgroup=etermString skipwhite

syn keyword etermAttrOptions      contained scrollbar_width desktop
                                  \ nextgroup=etermNumber skipwhite

syn region  etermAttrContext      fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+attributes\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermAttrOptions

syn keyword etermIClassOptions    contained icon path nextgroup=etermString
                                  \ skipwhite
syn keyword etermIClassOptions    contained cache nextgroup=etermNumber
                                  \ skipwhite
syn keyword etermIClassOptions    contained anim nextgroup=etermNumber
                                  \ skipwhite

syn region  etermIClassContext    fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+imageclasses\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermImageContext,
                                  \ etermIClassOptions

syn keyword etermImageOptions     contained type nextgroup=etermImageType
                                  \ skipwhite

syn keyword etermImageTypes       contained background trough anchor up_arrow
                                  \ left_arrow right_arrow menu menuitem
                                  \ submenu button buttonbar down_arrow

syn keyword etermImageOptions     contained mode nextgroup=etermImageModes
                                  \ skipwhite

syn keyword etermImageModes       contained image trans viewport auto solid
                                  \ nextgroup=etermImageModesAllow skipwhite
syn keyword etermImageModesAllow  contained allow nextgroup=etermImageModesR
                                  \ skipwhite
syn keyword etermImageModesR      contained image trans viewport auto solid

syn keyword etermImageOptions     contained state nextgroup=etermImageState
                                  \ skipwhite

syn keyword etermImageState       contained normal selected clicked disabled

syn keyword etermImageOptions     contained color nextgroup=etermImageColorFG
                                  \ skipwhite

syn keyword etermImageColorFG     contained '\S\+' nextgroup=etermImageColorBG
                                  \ skipwhite

syn keyword etermImageColorBG     contained '\S\+'

syn keyword etermImageOptions     contained file nextgroup=etermString
                                  \ skipwhite

syn keyword etermImageOptions     contained geom nextgroup=etermImageGeom
                                  \ skipwhite

syn match   etermImageGeom        contained display
                                  \ '\s\+\%(\d\+x\d\++\d\++\d\+\)\=:\%(\%(tie\|scale\|hscale\|vscale\|propscale\)d\=\)\='

syn keyword etermImageOptions     contained cmod colormod
                                  \ nextgroup=etermImageCmod skipwhite

syn keyword etermImageCmod        contained image red green blue
                                  \ nextgroup=etermImageBrightness skipwhite

syn match   etermImageBrightness  contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
                                  \ nextgroup=etermImageContrast skipwhite

syn match   etermImageContrast    contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
                                  \ nextgroup=etermImageGamma skipwhite

syn match   etermImageGamma       contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
                                  \ nextgroup=etermImageGamma skipwhite

syn region  etermImageOptions     contained display oneline
                                  \ matchgroup=etermImageOptions
                                  \ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding'
                                  \ end='$' contains=etermNumber

syn region  etermImageContext     contained fold transparent
                                  \ matchgroup=etermContext
                                  \ start='^\s*begin\s\+image\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermImageOptions

syn keyword etermMenuItemOptions  contained action
                                  \ nextgroup=etermMenuItemAction skipwhite

syn keyword etermMenuItemAction   contained string echo submenu script
                                  \ nextgroup=etermString skipwhite

syn keyword etermMenuItemAction   contained separator

syn keyword etermMenuItemOptions  contained text rtext nextgroup=etermString
                                  \ skipwhite

syn region  etermMenuItemContext  contained fold transparent
                                  \ matchgroup=etermContext
                                  \ start='^\s*begin\s\+menuitem\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermMenuItemOptions

syn keyword etermMenuOptions      contained title nextgroup=etermString
                                  \ skipwhite

syn keyword etermMenuOptions      contained font_name nextgroup=etermFont
                                  \ skipwhite

syn match   etermMenuOptions      contained display '\<sep\>\|-'

syn region  etermMenuContext      fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+menu\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermMenuOptions,
                                  \ etermMenuItemContext

syn keyword etermBind             contained bind nextgroup=etermBindMods
                                  \ skipwhite

syn keyword etermBindMods         contained ctrl shift lock mod1 mod2 mod3 mod4
                                  \ mod5 alt meta anymod
                                  \ nextgroup=etermBindMods skipwhite

syn keyword etermBindTo           contained to nextgroup=etermBindType
                                  \ skipwhite

syn keyword etermBindType         contained string echo menu script
                                  \ nextgroup=etermBindParam skipwhite

syn match   etermBindParam        contained display '\S\+'

syn region  etermActionsContext   fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+actions\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermActionsOptions

syn keyword etermButtonOptions    contained font nextgroup=etermFont skipwhite
syn keyword etermButtonOptions    contained visible nextgroup=etermBoolean
                                  \ skipwhite
syn keyword etermButtonOptions    contained dock nextgroup=etermDockOption
                                  \ skipwhite

syn keyword etermDockOption       contained top bottom no

syn keyword etermButton           contained button nextgroup=etermButtonText
                                  \ skipwhite

syn region  etermButtonText       contained display oneline start=+"+
                                  \ skip=+\\"+ end=+"+
                                  \ nextgroup=etermButtonIcon skipwhite

syn keyword etermButtonIcon       contained icon nextgroup=etermButtonIconFile
                                  \ skipwhite

syn keyword etermButtonIconFile   contained '\S\+' nextgroup=etermButtonAction
                                  \ skipwhite

syn keyword etermButtonAction     contained action nextgroup=etermBindType
                                  \ skipwhite

syn region  etermButtonContext    fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+button_bar\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermButtonOptions

syn keyword etermMultiOptions     contained encoding nextgroup=etermEncoding
                                  \ skipwhite

syn keyword etermEncoding         eucj sjis euckr big5 gb
syn match   etermEncoding         display 'iso-10646'

syn keyword etermMultiOptions     contained font nextgroup=etermFontType
                                  \ skipwhite

syn region  etermMultiContext     fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+multichar\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermMultiOptions

syn keyword etermXimOptions       contained input_method
                                  \ nextgroup=etermInputMethod skipwhite

syn match   etermInputMethod      contained display '\S+'

syn keyword etermXimOptions       contained preedit_type
                                  \ nextgroup=etermPreeditType skipwhite

syn keyword etermPreeditType      contained OverTheSpot OffTheSpot Root

syn region  etermXimContext       fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+xim\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermXimOptions

syn keyword etermTogOptions       contained map_alert visual_bell login_shell
                                  \ scrollbar utmp_logging meta8 iconic
                                  \ no_input home_on_output home_on_input
                                  \ scrollbar_floating scrollbar_right
                                  \ scrollbar_popup borderless double_buffer
                                  \ no_cursor pause xterm_select select_line
                                  \ select_trailing_spaces report_as_keysyms
                                  \ itrans immotile_trans buttonbar
                                  \ resize_gravity nextgroup=etermBoolean
                                  \ skipwhite

syn region  etermTogContext       fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+toggles\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermTogOptions

syn keyword etermKeyboardOptions  contained smallfont_key bigfont_key keysym
                                  \ nextgroup=etermKeysym skipwhite

syn keyword etermKeysym           contained '\S\+' nextgroup=etermString
                                  \ skipwhite

syn keyword etermKeyboardOptions  contained meta_mod alt_mod numlock_mod
                                  \ nextgroup=etermNumber skipwhite

syn keyword etermKeyboardOptions  contained greek app_keypad app_cursor
                                  \ nextgroup=etermBoolean skipwhite

syn region  etermKeyboardContext  fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+keyboard\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermKeyboardOptions

syn keyword etermMiscOptions      contained print_pipe cut_chars finished_title
                                  \ finished_text term_name exec
                                  \ nextgroup=etermString skipwhite

syn keyword etermMiscOptions      contained save_lines min_anchor_size
                                  \ border_width line_space

syn region  etermMiscContext      fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+misc\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermMiscOptions

syn keyword etermEScreenOptions   contained url nextgroup=etermURL skipwhite

syn match   etermURL              contained display
                                  \ '\<\%(screen\|twin\)://\%([^@:/]\+\%(@[^:/]\+\%(:[^/]\+\)\=\)\=\)\=/\S\+'

syn keyword etermEScreenOptions   contained firewall

syn keyword etermEScreenOptions   contained delay nextgroup=etermNumber
                                  \ skipwhite

syn keyword etermEScreenOptions   contained bbar_font nextgroup=etermFont
                                  \ skipwhite

syn keyword etermEScreenOptions   contained bbar_dock nextgroup=etermDockOption
                                  \ skipwhite

syn region  etermEScreenContext   fold transparent matchgroup=etermContext
                                  \ start='^\s*begin\s\+escreen\>'
                                  \ end='^\s*end\>'
                                  \ contains=@etermGeneral,etermEScreenOptions

if exists("eterm_minlines")
  let b:eterm_minlines = eterm_minlines
else
  let b:eterm_minlines = 50
endif
exec "syn sync minlines=" . b:eterm_minlines

hi def link etermTodo             Todo
hi def link etermComment          Comment
hi def link etermMagic            PreProc
hi def link etermNumber           Number
hi def link etermString           String
hi def link etermBoolean          Boolean
hi def link etermPreProc          PreProc
hi def link etermFunctions        Function
hi def link etermKeyMod           Constant
hi def link etermOption           Keyword
hi def link etermColorOptions     etermOption
hi def link etermColor            String
hi def link etermVideoType        Type
hi def link etermColorType        Type
hi def link etermColorNumber      Number
hi def link etermColorSpec        etermColor
hi def link etermContext          Keyword
hi def link etermAttrOptions      etermOption
hi def link etermGeometry         String
hi def link etermScrollbarType    Type
hi def link etermFontType         Type
hi def link etermIClassOptions    etermOption
hi def link etermImageOptions     etermOption
hi def link etermImageTypes       Type
hi def link etermImageModes       Type
hi def link etermImageModesAllow  Keyword
hi def link etermImageModesR      Type
hi def link etermImageState       Keyword
hi def link etermImageColorFG     etermColor
hi def link etermImageColorBG     etermColor
hi def link etermImageGeom        String
hi def link etermImageCmod        etermOption
hi def link etermImageBrightness  Number
hi def link etermImageContrast    Number
hi def link etermImageGamma       Number
hi def link etermMenuItemOptions  etermOption
hi def link etermMenuItemAction   Keyword
hi def link etermMenuOptions      etermOption
hi def link etermBind             Keyword
hi def link etermBindMods         Identifier
hi def link etermBindTo           Keyword
hi def link etermBindType         Type
hi def link etermBindParam        String
hi def link etermButtonOptions    etermOption
hi def link etermDockOption       etermOption
hi def link etermButtonText       String
hi def link etermButtonIcon       String
hi def link etermButtonIconFile   String
hi def link etermButtonAction     Keyword
hi def link etermMultiOptions     etermOption
hi def link etermEncoding         Identifier
hi def link etermXimOptions       etermOption
hi def link etermInputMethod      Identifier
hi def link etermPreeditType      Type
hi def link etermTogOptions       etermOption
hi def link etermKeyboardOptions  etermOption
hi def link etermKeysym           Constant
hi def link etermMiscOptions      etermOption
hi def link etermEScreenOptions   etermOption
hi def link etermURL              Identifier

let b:current_syntax = "eterm"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�pi�vim80/syntax/hostconf.vimnu�[���" Vim syntax file
" Language:             host.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-06-25

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword hostconfTodo
      \ contained
      \ TODO
      \ FIXME
      \ XXX
      \ NOTE

syn match   hostconfComment
      \ display
      \ contained
      \ '\s*#.*'
      \ contains=hostconfTodo,
      \          @Spell

syn match   hostconfBegin
      \ display
      \ '^'
      \ nextgroup=hostconfComment,hostconfKeyword
      \ skipwhite

syn keyword hostconfKeyword
      \ contained
      \ order
      \ nextgroup=hostconfLookupOrder
      \ skipwhite

let s:orders = ['bind', 'hosts', 'nis']

function s:permute_suffixes(list)
  if empty(a:list)
    return []
  elseif len(a:list) == 1
    return a:list[0]
  else
    let i = 0
    let n = len(a:list)
    let sub_permutations = []
    while i < n
      let list_copy = copy(a:list)
      let removed = list_copy[i]
      call remove(list_copy, i)
      call add(sub_permutations, [removed, s:permute_suffixes(list_copy)])
      let i += 1
    endwhile
    return sub_permutations
  endif
endfunction

function s:generate_suffix_groups(list_of_order_of_orders, context, trailing_context)
  for order_of_orders in a:list_of_order_of_orders
    let order = order_of_orders[0]
    let trailing_context = a:trailing_context . toupper(order[0]) . order[1:]
    let nextgroup = 'hostconfLookupOrder' . trailing_context
    let nextgroup_delimiter = nextgroup . 'Delimiter'
    let group = 'hostconfLookupOrder' . a:context
    execute 'syn keyword' group 'contained' order 'nextgroup=' . nextgroup_delimiter 'skipwhite'
    execute 'syn match' nextgroup_delimiter 'contained display "," nextgroup=' . nextgroup 'skipwhite'
    if a:context != ""
      execute 'hi def link' group 'hostconfLookupOrder'
    endif
    execute 'hi def link' nextgroup_delimiter 'hostconfLookupOrderDelimiter'
    let context = trailing_context
    if type(order_of_orders[1]) == type([])
      call s:generate_suffix_groups(order_of_orders[1], context, trailing_context)
    else
      execute 'syn keyword hostconfLookupOrder' . context 'contained' order_of_orders[-1]
      execute 'hi def link hostconfLookupOrder' . context 'hostconfLookupOrder'
    endif
  endfor
endfunction

call s:generate_suffix_groups(s:permute_suffixes(s:orders), "", "")

delfunction s:generate_suffix_groups
delfunction s:permute_suffixes

syn keyword hostconfKeyword
      \ contained
      \ trim
      \ nextgroup=hostconfDomain
      \ skipwhite

syn match   hostconfDomain
      \ contained
      \ '\.[^:;,[:space:]]\+'
      \ nextgroup=hostconfDomainDelimiter
      \ skipwhite

syn match   hostconfDomainDelimiter
      \ contained
      \ display
      \ '[:;,]'
      \ nextgroup=hostconfDomain
      \ skipwhite

syn keyword hostconfKeyword
      \ contained
      \ multi
      \ nospoof
      \ spoofalert
      \ reorder
      \ nextgroup=hostconfBoolean
      \ skipwhite

syn keyword hostconfBoolean
      \ contained
      \ on
      \ off

syn keyword hostconfKeyword
      \ contained
      \ spoof
      \ nextgroup=hostconfSpoofValue
      \ skipwhite

syn keyword hostconfSpoofValue
      \ contained
      \ off
      \ nowarn
      \ warn

hi def link hostconfTodo                  Todo
hi def link hostconfComment               Comment
hi def link hostconfKeyword               Keyword
hi def link hostconfLookupOrder           Identifier
hi def link hostconfLookupOrderDelimiter  Delimiter
hi def link hostconfDomain                String
hi def link hostconfDomainDelimiter       Delimiter
hi def link hostconfBoolean               Boolean
hi def link hostconfSpoofValue            hostconfBoolean

let b:current_syntax = "hostconf"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��p�/U/Uvim80/syntax/pike.vimnu�[���" Vim syntax file
" Language:		Pike
" Maintainer:		Stephen R. van den Berg <srb@cuci.nl>
" Maintainer of previous implementation: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
" Last Change:		2018 Jan 28
" Version:		2.9
" Remark: Derived from the C-syntax; fixed several bugs in the C-syntax
" Remark: and extended it with the Pike syntax.
" Remark: Includes a highlighter for all Pike types of parenthesis errors.
" Remark: Includes a highlighter for SQL on multiline strings.
" Remark: Includes a highlighter for any embedded Autodoc format.

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" For multiline strings, try formatting them as SQL
syn include @pikeSQL <sfile>:p:h/sqloracle.vim
unlet b:current_syntax

" For embedded Autodoc documentation (WIP)
syn include @pikeAutodoc <sfile>:p:h/autodoc.vim
unlet b:current_syntax

syn case match

" Supports array, multiset, mapping multi-character delimiter matching
" Supports rotating amongst several same-level preprocessor conditionals
packadd! matchit
let b:match_words = "({:}\\@1<=),(\\[:]\\@1<=),(<:>\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"

" A bunch of useful Pike keywords
syn keyword	pikeDebug	gauge backtrace describe_backtrace werror _Static_assert static_assert
syn keyword	pikeException	error catch throw
syn keyword	pikeLabel	case default break return continue
syn keyword	pikeConditional	if else switch
syn keyword	pikeRepeat	while for foreach do

syn keyword pikePredef RegGetKeyNames RegGetValue RegGetValues
syn keyword pikePredef __automap__ __empty_program
syn keyword pikePredef __handle_sprintf_format __parse_pike_type _disable_threads
syn keyword pikePredef _do_call_outs _exit _gdb_breakpoint
syn keyword pikePredef abs access acos acosh add_constant alarm all_constants
syn keyword pikePredef array_sscanf asin asinh atan atan2 atanh atexit
syn keyword pikePredef basetype call_function call_out call_out_info cd ceil
syn keyword pikePredef combine_path combine_path_nt
syn keyword pikePredef combine_path_unix compile copy_value cos cosh cpp crypt
syn keyword pikePredef ctime decode_value delay encode_value encode_value_canonic
syn keyword pikePredef enumerate errno exece exit exp file_stat file_truncate
syn keyword pikePredef filesystem_stat find_call_out floor fork function_name
syn keyword pikePredef function_object function_program gc
syn keyword pikePredef get_active_compilation_handler get_active_error_handler
syn keyword pikePredef get_all_groups get_all_users get_dir get_groups_for_user
syn keyword pikePredef get_iterator get_profiling_info get_weak_flag getcwd
syn keyword pikePredef getgrgid getgrnam gethrdtime gethrtime gethrvtime getpid
syn keyword pikePredef getpwnam getpwuid getxattr glob gmtime has_index has_prefix
syn keyword pikePredef has_suffix has_value hash hash_7_0 hash_7_4 hash_8_0
syn keyword pikePredef hash_value kill limit listxattr load_module localtime
syn keyword pikePredef log lower_case master max min mkdir mktime mv
syn keyword pikePredef object_program pow query_num_arg random_seed
syn keyword pikePredef remove_call_out removexattr replace_master rm round
syn keyword pikePredef set_priority set_weak_flag setxattr sgn signal signame
syn keyword pikePredef signum sin sinh sleep sort sprintf sqrt sscanf strerror
syn keyword pikePredef string_filter_non_unicode string_to_unicode string_to_utf8
syn keyword pikePredef tan tanh time trace types ualarm unicode_to_string
syn keyword pikePredef upper_case utf8_to_string version

syn keyword pikePredef write lock try_lock
syn keyword pikePredef MutexKey Timestamp Date Time TimeTZ Interval Inet Range
syn keyword pikePredef Null null inf nan

syn keyword	pikeTodo		contained TODO FIXME XXX

" Match parengroups: allows for highlighting indices of mappings and
" highlighting semicolons that are out of place due to a paren imbalance
syn cluster	pikePreShort	contains=pikeDefine,pikePreProc,pikeCppOutWrapper,pikeCppInWrapper,pikePreCondit,pikePreConditMatch
syn cluster	pikeExprGroup	contains=pikeMappIndex,@pikeStmt,pikeNest,@pikeBadGroup,pikeSoftCast
syn match	pikeWord	transparent contained /[^()'"[\]{},;:]\+/ contains=ALLBUT,@pikePreProcGroup,@pikeExprGroup
syn match	pikeFirstWord	transparent display contained /^\s*#[^()'"[\]{},;:]\+/ contains=@pikePreShort
syn cluster	pikeMappElm	contains=pikeMappIndex,@pikeStmt
syn cluster	pikeStmt	contains=pikeFirstWord,pikeCharacter,pikeString,pikeMlString,pikeWord,pikeNest
syn cluster     pikeBadGroup	contains=pikeBadPClose,pikeBadAClose,pikeBadBClose,pikeBadSPClose,pikeBadSAClose,pikeBadSBClose,pikeBadSClose,pikeBadSPAClose,pikeBadSBAClose
syn match	pikeBadPClose	display contained "[}\]]"
syn match	pikeBadAClose	display contained "[)\]]"
syn match	pikeBadBClose	display contained "[)}]"
syn match	pikeBadSPClose	display contained "[;}\]]"
syn match	pikeBadSAClose	display contained "[;)\]]"
syn match	pikeBadSPAClose	display contained "[;\]]"
syn match	pikeBadSBAClose	display contained "[;}]"
syn match	pikeBadSClose	display contained "[;)}\]]"
syn region	pikeNest	transparent start="(\@1<!{" end="}" contains=@pikeStmt,pikeUserLabel,pikeBadAClose
syn region	pikeNest	transparent start="\%(\<for\%(each\)\?\s\?\)\@8<!([[{<]\@!" end=")" contains=@pikeStmt,pikeBadSPClose
syn region	pikeNest	transparent start="\%(\<for\%(each\)\?\s\?\)\@8<=(" end=")" contains=@pikeStmt,pikeBadPClose
syn region	pikeNest	transparent start="(\@1<!\[" end="]" contains=@pikeStmt,pikeBadSBClose
syn region	pikeNest	transparent start="(\zs\[" end="])" contains=@pikeMappElm,pikeBadSBAClose
" For some reason specifying a matchgroup on the pikeNest below makes it
" override the shorter variant; consider it a kludge, no idea why it works
syn region	pikeNest	transparent matchgroup=pikeSoftCast start=%(\zs\[[ \t\v\r\n.a-zA-Z0-9_():,|]\+])\@!% end=")" contains=@pikeStmt
syn region	pikeNest	transparent start="(\zs{" end="})" contains=@pikeStmt,pikeBadSPAClose
syn region	pikeNest	transparent start="(\zs<" end=">)" contains=@pikeStmt,pikeBadSPClose keepend

" It's easy to accidentally add a space after a backslash that was intended
" for line continuation.  Some compilers allow it, which makes it
" unpredictable and should be avoided.
syn match	pikeBadContinuation contained "\\\s\+$"

" pikeCommentGroup allows adding matches for special things in comments
syn cluster	pikeCommentGroup	contains=pikeTodo,pikeBadContinuation

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match	pikeSpecial	display contained "\\\%(x\x*\|d\d*\|\o\+\|u\x\{4}\|U\x\{8}\|[abefnrtv]\|$\)"

" ISO C11 or ISO C++ 11
if !exists("c_no_cformat")
  " Highlight % items in strings.
  syn match	pikeFormat		display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlLjzt]\|ll\|hh\)\=\%([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
  syn match	pikeFormat		display "%%" contained
  syn region 	pikeString		start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,pikeFormat,@Spell keepend
  syn region	pikeMlString	start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeFormat,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
else
  syn region 	pikeString		start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,@Spell
  syn region	pikeMlString	transparent start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
endif

" Use SQL-syntax highlighting in multiline string if it starts with
" a standard SQL keyword
syn case ignore
" FIXME Use explicit newline match to cover up a bug in the regexp engine
" If the kludge is not used, the match will only start unless at least a space
" follows the initial doublequote on the first line (or the keyword is on
" the first line).
syn region	pikeEmbeddedString	contained start=+\%(#"\n\?\)\@2<=\_s*\%(SELECT\|INSERT\|UPDATE\|DELETE\|WITH\|CREATE\|DROP\|ALTER\)\>+ skip=+\\\\\|\\"+ end=+[\\#]\@1<!"+ contains=@pikeSQL,pikeBindings keepend
syn case match

syn match	pikeBindings	display contained ":\@1<!:\I\i*"

syn match	pikeCharacter	"'[^\\']'" contains=pikeDelimiterSQ
syn match	pikeCharacter	"'[^']*'" contains=pikeSpecial,pikeDelimiterSQ
syn match	pikeSpecialError	"'\\[^'\"?\\abefnrtv]'"
syn match	pikeDelimiterDQ	display +"+ contained
syn match	pikeDelimiterSQ	display +'+ contained

"when wanted, highlight trailing white space
if exists("c_space_errors")
  if !exists("c_no_trail_space_error")
    syn match	pikeSpaceError	display excludenl "\s\+$"
  endif
  if !exists("c_no_tab_space_error")
    syn match	pikeSpaceError	display " \+\ze\t"
  endif
endif

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	pikeNumbers	display transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctalError,pikeOctal
" Same, but without octal error (for comments)
syn match	pikeNumbersCom	display contained transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctal
syn match	pikeNumber		display contained "\<\d\+\%(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match	pikeNumber		display contained "\<0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match	pikeOctal		display contained "\<0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=pikeOctalZero
syn match	pikeOctalZero	display contained "\<0"
"floating point number, with dot, optional exponent
syn match	pikeFloat		display contained "\<\d\+\%(f\|\.[0-9.]\@!\d*\%(e[-+]\=\d\+\)\=[fl]\=\)"
"floating point number, starting with a dot, optional exponent
syn match	pikeFloat		display contained "[0-9.]\@1<!\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match	pikeFloat		display contained "\<\d\+e[-+]\=\d\+[fl]\=\>"

"hexadecimal floating point number, two variants, with exponent
syn match	pikeFloat		display contained "\<0x\%(\x\+\.\?\|\x*\.\x\+\)p[-+]\=\d\+[fl]\=\>"

" flag an octal number with wrong digits
syn match	pikeOctalError	display contained "\<0\o*[89]\d*"
syn case match

if exists("c_comment_strings")
  " A comment can contain pikeString, pikeCharacter and pikeNumber.
  " But a "*/" inside a pikeString in a pikeComment DOES end the comment!  So we
  " need to use a special type of pikeString: pikeCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  " Unfortunately this doesn't very well work for // type of comments :-(
  syn match	pikeCommentSkip	contained "^\s*\*\%($\|\s\+\)"
  syn region pikeCommentString	contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\ze\*/+ contains=pikeSpecial,pikeCommentSkip
  syn region pikeComment2String	contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial
  syn region  pikeCommentL	start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeComment2String,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
  if exists("c_no_comment_fold")
    " Use "extend" here to have preprocessor lines not terminate halfway a
    " comment.
    syn region pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
  else
    syn region pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
  endif
else
  syn region	pikeCommentL	start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
  if exists("c_no_comment_fold")
    syn region	pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
  else
    syn region	pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
  endif
endif
" keep a // comment separately, it terminates a preproc. conditional
syn match	pikeCommentError	display "\*/"
syn match	pikeCommentStartError display "/\ze\*" contained

syn keyword	pikeOperator	sizeof
syn keyword	pikeOperator	typeof _typeof _refs
syn keyword	pikeOperator	zero_type intp stringp arrayp mappingp multisetp
syn keyword	pikeOperator	objectp functionp programp callablep destructedp
syn keyword	pikeOperator	object_variablep undefinedp
syn keyword	pikeOperator	allocate equal
syn keyword	pikeOperator	aggregate aggregate_mapping aggregate_multiset
syn keyword	pikeOperator	map filter search replace reverse column rows
syn keyword	pikeOperator	indices values mkmapping mkmultiset m_delete sort
syn keyword	pikeOperator	m_delete destruct
syn keyword	pikeOperator	create _destruct _sprintf cast _encode _decode
syn keyword     pikeOperator    __hash _sizeof _values _indices __INIT _equal
syn keyword     pikeOperator    _is_type _m_delete _get_iterator _search
syn keyword     pikeOperator    _serialize _deserialize _sqrt _types _random
syn keyword     pikeOperator    _size_object

syn keyword	pikeType		int void
syn keyword	pikeType		float
syn keyword	pikeType		bool string array mapping multiset mixed
syn keyword	pikeType		object function program auto

syn keyword	pikeType		this this_object this_program
syn keyword	pikeType		sprintf_args sprintf_format sprintf_result
syn keyword	pikeType		strict_sprintf_format

syn keyword	pikeStructure		class enum typedef inherit import
syn keyword	pikeTypedef		typedef
syn keyword	pikeStorageClass	private protected public constant final variant
syn keyword	pikeStorageClass	optional inline extern static __deprecated__ lambda

syn keyword pikeConstant __LINE__ __FILE__ __DIR__ __DATE__ __TIME__
syn keyword pikeConstant __AUTO_BIGNUM__ __NT__
syn keyword pikeConstant __BUILD__ __COUNTER__ _MAJOR__ __MINOR__ __VERSION__
syn keyword pikeConstant __REAL_BUILD__ _REAL_MAJOR__ __REAL_MINOR__
syn keyword pikeConstant __REAL_VERSION__ __PIKE__ UNDEFINED

" These should actually only be parsed in preprocessor conditionals
syn keyword pikeCppOperator contained defined constant efun _Pragma

syn keyword pikeBoolean true false

syn match       pikeCppPrefix	display "^\s*\zs#\s*[a-z]\+" contained
syn region	pikePreCondit	start="^\s*#\s*\%(if\%(n\?def\)\?\|el\%(se\)\?if\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix
syn match	pikePreConditMatch	display "^\s*\zs#\s*\%(else\|endif\)\>"
if !exists("c_no_if0")
  syn cluster	pikeCppOutInGroup	contains=pikeCppInIf,pikeCppInElse,pikeCppInElse2,pikeCppOutIf,pikeCppOutIf2,pikeCppOutElse,pikeCppInSkip,pikeCppOutSkip
  syn region	pikeCppOutWrapper	start="^\s*\zs#\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=pikeCppOutIf,pikeCppOutElse,@NoSpell fold
  syn region	pikeCppOutIf	contained start="0\+" matchgroup=pikeCppOutWrapper end="^\s*#\s*endif\>" contains=pikeCppOutIf2,pikeCppOutElse
  if !exists("c_no_if0_fold")
    syn region	pikeCppOutIf2	contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell fold
  else
    syn region	pikeCppOutIf2	contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell
  endif
  syn region	pikeCppOutElse	contained matchgroup=pikeCppOutWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
  syn region	pikeCppInWrapper	start="^\s*\zs#\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=pikeCppInIf,pikeCppInElse fold
  syn region	pikeCppInIf	contained matchgroup=pikeCppInWrapper start="\d\+" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
  if !exists("c_no_if0_fold")
    syn region	pikeCppInElse	contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2 fold
  else
    syn region	pikeCppInElse	contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2
  endif
  syn region	pikeCppInElse2	contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)\%([^/]\|/[^/*]\)*" end="^\ze\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip,@Spell
  syn region	pikeCppOutSkip	contained start="^\s*#\s*if\%(n\?def\)\?\>" skip="\\$" end="^\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip
  syn region	pikeCppInSkip	contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifn\?def\>\)" skip="\\$" end="^\s*#\s*endif\>" containedin=pikeCppOutElse,pikeCppInIf,pikeCppInSkip contains=TOP,pikePreProc
endif
syn region	pikeIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeDelimiterDQ keepend
syn match	pikeIncluded	display contained "<[^>]*>"
syn match	pikeInclude	display "^\s*\zs#\s*include\>\s*["<]" contains=pikeIncluded
syn cluster	pikePreProcGroup	contains=pikeIncluded,pikeInclude,pikeEmbeddedString,pikeCppOutWrapper,pikeCppInWrapper,@pikeCppOutInGroup,pikeFormat,pikeMlString,pikeCommentStartError,@pikeBadGroup,pikeWord
syn region	pikeDefine		start="^\s*\zs#\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=@pikeStmt,@pikeBadGroup
syn region	pikePreProc	start="^\s*\zs#\s*\%(pragma\|charset\|pike\|require\|string\|line\|warning\|error\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix,@Spell,pikeConstant

syn match	pikeAutodocReal	display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@pikeAutodoc containedin=pikeComment,pikeCommentL
syn cluster pikeCommentGroup add=pikeAutodocReal
syn cluster pikePreProcGroup add=pikeAutodocReal

" Highlight User Labels
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
syn match	pikeUserLabel	display "\%(^\|[{};]\)\zs\I\i*\s*\ze:\%([^:]\|$\)" contained contains=NONE
syn match	pikeUserLabel	display "\%(\<\%(break\|continue\)\_s\+\)\@10<=\I\i*" contained contains=NONE
syn match	pikeUserLabel	display "\%(\<case\)\@5<=\s\+[^<()[\]{},;:]\+\ze::\@!" contained contains=pikeDelimiterDQ,pikeDelimiterSQ

syn match	pikeMappIndex	display contained "[^<()[\]{},;:]\+\ze::\@!" contains=pikeDelimiterDQ,pikeDelimiterSQ
syn match	pikeSoftCast	display contained "\[[ \t\v\r\n.a-zA-Z0-9_():,|\+]" contains=NONE

if exists("c_minlines")
  let b:c_minlines = c_minlines
else
  if !exists("c_no_if0")
    let b:c_minlines = 400	" #if 0 constructs can be long
  else
    let b:c_minlines = 200	" mostly for multiline strings
  endif
endif
exec "syn sync ccomment pikeComment minlines=" . b:c_minlines
syn sync match pikeMlStringSync grouphere pikeMlString +^[^"#]\+#\"+
syn sync match pikeAutodocSync grouphere pikeCommentL "^\s*//!"

" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link pikeFormat		SpecialChar
hi def link pikeMlString	String
hi def link pikeCommentL	Comment
hi def link pikeCommentStart	Comment
hi def link pikeLabel		Label
hi def link pikeUserLabel	Identifier
hi def link pikeConditional	Conditional
hi def link pikeRepeat		Repeat
hi def link pikeCharacter	Character
hi def link pikeDelimiterDQ	Delimiter
hi def link pikeDelimiterSQ	Delimiter
hi def link pikeNumber		Number
hi def link pikeOctal		Number
hi def link pikeOctalZero	PreProc	 " link this to Error if you want
hi def link pikeFloat		Float
hi def link pikeOctalError	Error
hi def link pikeCommentError	Error
hi def link pikeCommentStartError	Error
hi def link pikeSpaceError	Error
hi def link pikeSpecialError	Error
hi def link pikeOperator	Operator
hi def link pikeCppOperator	Operator
hi def link pikeStructure	Structure
hi def link pikeTypedef		Typedef
hi def link pikeStorageClass	StorageClass
hi def link pikeInclude		Include
hi def link pikeCppPrefix	PreCondit
hi def link pikePreProc		PreProc
hi def link pikeDefine		Macro
hi def link pikeIncluded	String
hi def link pikeError		Error
hi def link pikeDebug		Debug
hi def link pikeException	Exception
hi def link pikeStatement	Statement
hi def link pikeType		Type
hi def link pikeConstant	Constant
hi def link pikeBoolean		Boolean
hi def link pikeCommentString	String
hi def link pikeComment2String	String
hi def link pikeCommentSkip	Comment
hi def link pikeString		String
hi def link pikeComment		Comment
hi def link pikeSpecial		SpecialChar
hi def link pikeTodo		Todo
hi def link pikeBadContinuation	Error

hi def link pikeCppInWrapper	PreCondit
hi def link pikeCppOutWrapper	PreCondit
hi def link pikePreConditMatch	PreCondit

hi def link pikeCppOutSkip	Comment
hi def link pikeCppInElse2	Comment
hi def link pikeCppOutIf2	Comment
hi def link pikeCppOut		Comment

hi def link pikePredef		Statement
hi def link pikeBindings	Identifier
hi def link pikeMappIndex	Identifier
hi def link pikeSoftCast	Type
hi def link pikeBadGroup	Error
hi def link pikeBadPClose	Error
hi def link pikeBadAClose	Error
hi def link pikeBadBClose	Error
hi def link pikeBadSPClose	Error
hi def link pikeBadSAClose	Error
hi def link pikeBadSBClose	Error
hi def link pikeBadSPAClose	Error
hi def link pikeBadSBAClose	Error
hi def link pikeBadSClose	Error

let b:current_syntax = "pike"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z�!:��vim80/syntax/strace.vimnu�[���" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: strace output
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" Last Change: 2015-01-16

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn case match

" Parse the line
syn match straceSpecialChar "\\\o\{1,3}\|\\." contained
syn region straceString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=straceSpecialChar oneline
syn match straceNumber "\W[+-]\=\(\d\+\)\=\.\=\d\+\([eE][+-]\=\d\+\)\="lc=1
syn match straceNumber "\W0x\x\+"lc=1
syn match straceNumberRHS "\W\(0x\x\+\|-\=\d\+\)"lc=1 contained
syn match straceOtherRHS "?" contained
syn match straceConstant "[A-Z_]\{2,}"
syn region straceVerbosed start="(" end=")" matchgroup=Normal contained oneline
syn region straceReturned start="\s=\s" end="$" contains=StraceEquals,straceNumberRHS,straceOtherRHS,straceConstant,straceVerbosed oneline transparent
syn match straceEquals "\s=\s"ms=s+1,me=e-1
syn match straceParenthesis "[][(){}]"
syn match straceSysCall "^\w\+"
syn match straceOtherPID "^\[[^]]*\]" contains=stracePID,straceNumber nextgroup=straceSysCallEmbed skipwhite
syn match straceSysCallEmbed "\w\+" contained
syn keyword stracePID pid contained
syn match straceOperator "[-+=*/!%&|:,]"
syn region straceComment start="/\*" end="\*/" oneline

" Define the default highlighting

hi def link straceComment Comment
hi def link straceVerbosed Comment
hi def link stracePID PreProc
hi def link straceNumber Number
hi def link straceNumberRHS Type
hi def link straceOtherRHS Type
hi def link straceString String
hi def link straceConstant Function
hi def link straceEquals Type
hi def link straceSysCallEmbed straceSysCall
hi def link straceSysCall Statement
hi def link straceParenthesis Statement
hi def link straceOperator Normal
hi def link straceSpecialChar Special
hi def link straceOtherPID PreProc


let b:current_syntax = "strace"
PK�j�Z�66vim80/syntax/dylanintr.vimnu�[���" Vim syntax file
" Language:	Dylan
" Authors:	Justus Pendleton <justus@acm.org>
" Last Change:	Fri Sep 29 13:53:27 PDT 2000
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn region	dylanintrInfo		matchgroup=Statement start="^" end=":" oneline
syn match	dylanintrInterface	"define interface"
syn match	dylanintrClass		"<.*>"
syn region	dylanintrType		start=+"+ skip=+\\\\\|\\"+ end=+"+

syn region	dylanintrIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	dylanintrIncluded	contained "<[^>]*>"
syn match	dylanintrInclude	"^\s*#\s*include\>\s*["<]" contains=intrIncluded

"syn keyword intrMods pointer struct

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link dylanintrInfo		Special
hi def link dylanintrInterface	Operator
hi def link dylanintrMods		Type
hi def link dylanintrClass		StorageClass
hi def link dylanintrType		Type
hi def link dylanintrIncluded	String
hi def link dylanintrInclude	Include


let b:current_syntax = "dylanintr"

" vim:ts=8
PK�j�Z��(@�>�>vim80/syntax/logtalk.vimnu�[���" Vim syntax file
"
" Language:	Logtalk
" Maintainer:	Paulo Moura <pmoura@logtalk.org>
" Last Change:	February 4, 2012


" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Logtalk is case sensitive:

syn case match


" Logtalk variables

syn match   logtalkVariable		"\<\(\u\|_\)\(\w\)*\>"


" Logtalk clause functor

syn match	logtalkOperator		":-"


" Logtalk quoted atoms and strings

syn region	logtalkString		start=+"+	skip=+\\"+	end=+"+
syn region	logtalkAtom		start=+'+	skip=+\\'+	end=+'+		contains=logtalkEscapeSequence

syn match	logtalkEscapeSequence	contained	"\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)"


" Logtalk message sending operators

syn match	logtalkOperator		"::"
syn match	logtalkOperator		":"
syn match	logtalkOperator		"\^\^"


" Logtalk external call

syn region	logtalkExtCall		matchgroup=logtalkExtCallTag		start="{"		matchgroup=logtalkExtCallTag		end="}"		contains=ALL


" Logtalk opening entity directives

syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- object("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel,logtalkLineComment
syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- protocol("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- category("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment


" Logtalk closing entity directives

syn match	logtalkCloseEntityDir	":- end_object\."
syn match	logtalkCloseEntityDir	":- end_protocol\."
syn match	logtalkCloseEntityDir	":- end_category\."


" Logtalk entity relations

syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="instantiates("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="specializes("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="extends("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="imports("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="implements("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="complements("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained


" Logtalk directives

syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- if("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- elif("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn match	logtalkDirTag		":- else\."
syn match	logtalkDirTag		":- endif\."
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- alias("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- calls("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- coinductive("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- encoding("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- initialization("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- info("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- mode("		matchgroup=logtalkDirTag	end=")\."	contains=logtalkOperator, logtalkAtom
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- dynamic("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn match	logtalkDirTag		":- dynamic\."
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- discontiguous("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- multifile("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- public("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- protected("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- private("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_predicate("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_non_terminal("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- op("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_logtalk_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- synchronized("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn match	logtalkDirTag		":- synchronized\."
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- uses("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn match	logtalkDirTag		":- threaded\."


" Prolog directives

syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- ensure_loaded("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- include("     	matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_prolog_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL


" Module directives

syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- export("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- reexport("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- use_module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL


" Logtalk built-in predicates

syn match	logtalkBuiltIn		"\<\(abolish\|c\(reate\|urrent\)\)_\(object\|protocol\|category\)\ze("

syn match	logtalkBuiltIn		"\<\(object\|protocol\|category\)_property\ze("

syn match	logtalkBuiltIn		"\<co\(mplements_object\|nforms_to_protocol\)\ze("
syn match	logtalkBuiltIn		"\<extends_\(object\|protocol\|category\)\ze("
syn match	logtalkBuiltIn		"\<imp\(orts_category\|lements_protocol\)\ze("
syn match	logtalkBuiltIn		"\<\(instantiat\|specializ\)es_class\ze("

syn match	logtalkBuiltIn		"\<\(abolish\|define\)_events\ze("
syn match	logtalkBuiltIn		"\<current_event\ze("

syn match	logtalkBuiltIn		"\<\(curren\|se\)t_logtalk_flag\ze("

syn match	logtalkBuiltIn		"\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\)\ze("

syn match	logtalkBuiltIn		"\<\(for\|retract\)all\ze("

syn match	logtalkBuiltIn		"\<threaded\(_\(call\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze("


" Logtalk built-in methods

syn match	logtalkBuiltInMethod	"\<parameter\ze("
syn match	logtalkBuiltInMethod	"\<se\(lf\|nder\)\ze("
syn match	logtalkBuiltInMethod	"\<this\ze("

syn match	logtalkBuiltInMethod	"\<current_predicate\ze("
syn match	logtalkBuiltInMethod	"\<predicate_property\ze("

syn match	logtalkBuiltInMethod	"\<a\(bolish\|ssert\(a\|z\)\)\ze("
syn match	logtalkBuiltInMethod	"\<clause\ze("
syn match	logtalkBuiltInMethod	"\<retract\(all\)\?\ze("

syn match	logtalkBuiltInMethod	"\<\(bag\|set\)of\ze("
syn match	logtalkBuiltInMethod	"\<f\(ind\|or\)all\ze("

syn match	logtalkBuiltInMethod	"\<before\ze("
syn match	logtalkBuiltInMethod	"\<after\ze("

syn match	logtalkBuiltInMethod	"\<expand_\(goal\|term\)\ze("
syn match	logtalkBuiltInMethod	"\<\(goal\|term\)_expansion\ze("
syn match	logtalkBuiltInMethod	"\<phrase\ze("


" Mode operators

syn match	logtalkOperator		"?"
syn match	logtalkOperator		"@"


" Control constructs

syn match	logtalkKeyword		"\<true\>"
syn match	logtalkKeyword		"\<fail\>"
syn match	logtalkKeyword		"\<ca\(ll\|tch\)\ze("
syn match	logtalkOperator		"!"
" syn match	logtalkOperator		","
syn match	logtalkOperator		";"
syn match	logtalkOperator		"-->"
syn match	logtalkOperator		"->"
syn match	logtalkKeyword		"\<throw\ze("


" Term unification

syn match	logtalkOperator		"="
syn match	logtalkKeyword		"\<unify_with_occurs_check\ze("
syn match	logtalkOperator		"\\="


" Term testing

syn match	logtalkKeyword		"\<var\ze("
syn match	logtalkKeyword		"\<atom\(ic\)\?\ze("
syn match	logtalkKeyword		"\<integer\ze("
syn match	logtalkKeyword		"\<float\ze("
syn match	logtalkKeyword		"\<c\(allable\|ompound\)\ze("
syn match	logtalkKeyword		"\<n\(onvar\|umber\)\ze("
syn match	logtalkKeyword		"\<ground\ze("


" Term comparison

syn match	logtalkKeyword		"\<compare\ze("
syn match	logtalkOperator		"@=<"
syn match	logtalkOperator		"=="
syn match	logtalkOperator		"\\=="
syn match	logtalkOperator		"@<"
syn match	logtalkOperator		"@>"
syn match	logtalkOperator		"@>="


" Term creation and decomposition

syn match	logtalkKeyword		"\<functor\ze("
syn match	logtalkKeyword		"\<arg\ze("
syn match	logtalkOperator		"=\.\."
syn match	logtalkKeyword		"\<copy_term\ze("
syn match	logtalkKeyword		"\<numbervars\ze("


" Arithemtic evaluation

syn match	logtalkOperator		"\<is\>"


" Arithemtic comparison

syn match	logtalkOperator		"=:="
syn match	logtalkOperator		"=\\="
syn match	logtalkOperator		"<"
syn match	logtalkOperator		"=<"
syn match	logtalkOperator		">"
syn match	logtalkOperator		">="


" Stream selection and control

syn match	logtalkKeyword		"\<\(curren\|se\)t_\(in\|out\)put\ze("
syn match	logtalkKeyword		"\<open\ze("
syn match	logtalkKeyword		"\<close\ze("
syn match	logtalkKeyword		"\<flush_output\ze("
syn match	logtalkKeyword		"\<flush_output\>"
syn match	logtalkKeyword		"\<stream_property\ze("
syn match	logtalkKeyword		"\<at_end_of_stream\ze("
syn match	logtalkKeyword		"\<at_end_of_stream\>"
syn match	logtalkKeyword		"\<set_stream_position\ze("


" Character and byte input/output

syn match	logtalkKeyword		"\<\(get\|p\(eek\|ut\)\)_\(c\(har\|ode\)\|byte\)\ze("
syn match	logtalkKeyword		"\<nl\ze("
syn match	logtalkKeyword		"\<nl\>"


" Term input/output

syn match	logtalkKeyword		"\<read\(_term\)\?\ze("
syn match	logtalkKeyword		"\<write\(q\|_\(canonical\|term\)\)\?\ze("
syn match	logtalkKeyword		"\<\(current_\)\?op\ze("
syn match	logtalkKeyword		"\<\(current_\)\?char_conversion\ze("


" Logic and control

syn match	logtalkOperator		"\\+"
syn match	logtalkKeyword		"\<ignore\ze("
syn match	logtalkKeyword		"\<once\ze("
syn match	logtalkKeyword		"\<repeat\>"


" Atomic term processing

syn match	logtalkKeyword		"\<atom_\(length\|c\(hars\|o\(ncat\|des\)\)\)\ze("
syn match	logtalkKeyword		"\<sub_atom\ze("
syn match	logtalkKeyword		"\<char_code\ze("
syn match	logtalkKeyword		"\<number_c\(har\|ode\)s\ze("


" Implementation defined hooks functions

syn match	logtalkKeyword		"\<\(curren\|se\)t_prolog_flag\ze("
syn match	logtalkKeyword		"\<halt\ze("
syn match	logtalkKeyword		"\<halt\>"


" Sorting

syn match	logtalkKeyword		"\<\(key\)\?sort\ze("


" Evaluable functors

syn match	logtalkOperator		"+"
syn match	logtalkOperator		"-"
syn match	logtalkOperator		"\*"
syn match	logtalkOperator		"//"
syn match	logtalkOperator		"/"
syn match	logtalkKeyword		"\<r\(ound\|em\)\ze("
syn match	logtalkKeyword		"\<e\>"
syn match	logtalkKeyword		"\<pi\>"
syn match	logtalkKeyword		"\<rem\>"
syn match	logtalkKeyword		"\<mod\ze("
syn match	logtalkKeyword		"\<mod\>"
syn match	logtalkKeyword		"\<abs\ze("
syn match	logtalkKeyword		"\<sign\ze("
syn match	logtalkKeyword		"\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze("
syn match	logtalkKeyword		"\<truncate\ze("
syn match	logtalkKeyword		"\<ceiling\ze("


" Other arithemtic functors

syn match	logtalkOperator		"\*\*"
syn match	logtalkKeyword		"\<s\(in\|qrt\)\ze("
syn match	logtalkKeyword		"\<cos\ze("
syn match	logtalkKeyword		"\<atan\ze("
syn match	logtalkKeyword		"\<exp\ze("
syn match	logtalkKeyword		"\<log\ze("


" Bitwise functors

syn match	logtalkOperator		">>"
syn match	logtalkOperator		"<<"
syn match	logtalkOperator		"/\\"
syn match	logtalkOperator		"\\/"
syn match	logtalkOperator		"\\"


" Logtalk list operator

syn match	logtalkOperator		"|"


" Logtalk existential quantifier operator

syn match	logtalkOperator		"\^"


" Logtalk numbers 

syn match	logtalkNumber		"\<\d\+\>"
syn match	logtalkNumber		"\<\d\+\.\d\+\>"
syn match	logtalkNumber		"\<\d\+[eE][-+]\=\d\+\>"
syn match	logtalkNumber		"\<\d\+\.\d\+[eE][-+]\=\d\+\>"
syn match	logtalkNumber		"\<0'.\|0''\|0'\"\>"
syn match	logtalkNumber		"\<0b[0-1]\+\>"
syn match	logtalkNumber		"\<0o\o\+\>"
syn match	logtalkNumber		"\<0x\x\+\>"


" Logtalk end-of-clause

syn match	logtalkOperator		"\."


" Logtalk comments

syn region	logtalkBlockComment	start="/\*"	end="\*/"	fold
syn match	logtalkLineComment	"%.*"

syn cluster	logtalkComment		contains=logtalkBlockComment,logtalkLineComment


" Logtalk conditional compilation folding

syn region logtalkIfContainer transparent keepend extend start=":- if(" end=":- endif\." containedin=ALLBUT,@logtalkComment contains=NONE
syn region logtalkIf transparent fold keepend start=":- if(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
syn region logtalkElseIf transparent fold keepend start=":- elif(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
syn region logtalkElse transparent fold keepend start=":- else\." end=":- endif\." contained containedin=logtalkIfContainer contains=TOP



" Logtalk entity folding

syn region logtalkEntity transparent fold keepend start=":- object(" end=":- end_object\." contains=ALL
syn region logtalkEntity transparent fold keepend start=":- protocol(" end=":- end_protocol\." contains=ALL
syn region logtalkEntity transparent fold keepend start=":- category(" end=":- end_category\." contains=ALL


syn sync ccomment logtalkBlockComment maxlines=50


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link logtalkBlockComment	Comment
hi def link logtalkLineComment	Comment

hi def link logtalkOpenEntityDir	Normal
hi def link logtalkOpenEntityDirTag	PreProc

hi def link logtalkIfContainer	PreProc
hi def link logtalkIf		PreProc
hi def link logtalkElseIf		PreProc
hi def link logtalkElse		PreProc

hi def link logtalkEntity		Normal

hi def link logtalkEntityRel	Normal
hi def link logtalkEntityRelTag	PreProc

hi def link logtalkCloseEntityDir	PreProc

hi def link logtalkDir		Normal
hi def link logtalkDirTag		PreProc

hi def link logtalkAtom		String
hi def link logtalkString		String
hi def link logtalkEscapeSequence	SpecialChar

hi def link logtalkNumber		Number

hi def link logtalkKeyword		Keyword

hi def link logtalkBuiltIn		Keyword
hi def link logtalkBuiltInMethod	Keyword

hi def link logtalkOperator		Operator

hi def link logtalkExtCall		Normal
hi def link logtalkExtCallTag	Operator

hi def link logtalkVariable		Identifier



let b:current_syntax = "logtalk"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�I�	``vim80/syntax/sql.vimnu�[���" Vim syntax file loader
" Language:    SQL
" Maintainer:  David Fishburn <fishburn at ianywhere dot com>
" Last Change: Thu Sep 15 2005 10:30:02 AM
" Version:     1.0

" Description: Checks for a:
"                  buffer local variable,
"                  global variable,
"              If the above exist, it will source the type specified.
"              If none exist, it will source the default sql.vim file.
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

" Default to the standard Vim distribution file
let filename = 'sqloracle'

" Check for overrides.  Buffer variables have the highest priority.
if exists("b:sql_type_override")
    " Check the runtimepath to see if the file exists
    if globpath(&runtimepath, 'syntax/'.b:sql_type_override.'.vim') != ''
        let filename = b:sql_type_override
    endif
elseif exists("g:sql_type_default")
    if globpath(&runtimepath, 'syntax/'.g:sql_type_default.'.vim') != ''
        let filename = g:sql_type_default
    endif
endif

" Source the appropriate file
exec 'runtime syntax/'.filename.'.vim'

" vim:sw=4:
PK�j�Z�Ǧ�TTvim80/syntax/treetop.vimnu�[���" Vim syntax file
" Language:             Treetop
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-03-14

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword treetopTodo
      \ contained
      \ TODO
      \ FIXME
      \ XXX
      \ NOTE

syn match treetopComment
                        \ '#.*'
                        \ display
                        \ contains=treetopTodo

syn include @treetopRuby syntax/ruby.vim
unlet b:current_syntax

syn keyword treetopKeyword
                         \ require
                         \ end
syn region  treetopKeyword
                         \ matchgroup=treetopKeyword
                         \ start='\<\%(grammar\|include\|module\)\>\ze\s'
                         \ end='$'
                         \ transparent
                         \ oneline
                         \ keepend
                         \ contains=@treetopRuby
syn keyword treetopKeyword
                         \ rule
                         \ nextgroup=treetopRuleName
                         \ skipwhite skipnl

syn match   treetopGrammarName
                             \ '\u\w*'
                             \ contained

syn match   treetopRubyModuleName
                                \ '\u\w*'
                                \ contained

syn match   treetopRuleName
                          \ '\h\w*'
                          \ contained

syn region  treetopString
                        \ matchgroup=treetopStringDelimiter
                        \ start=+"+
                        \ end=+"+
syn region  treetopString
                        \ matchgroup=treetopStringDelimiter
                        \ start=+'+
                        \ end=+'+

syn region  treetopCharacterClass
                                \ matchgroup=treetopCharacterClassDelimiter
                                \ start=+\[+
                                \ skip=+\\\]+
                                \ end=+\]+

syn region  treetopRubyBlock
                           \ matchgroup=treetopRubyBlockDelimiter
                           \ start=+{+
                           \ end=+}+
                           \ contains=@treetopRuby

syn region  treetopSemanticPredicate
                           \ matchgroup=treetopSemanticPredicateDelimiter
                           \ start=+[!&]{+
                           \ end=+}+
                           \ contains=@treetopRuby

syn region  treetopSubclassDeclaration
                           \ matchgroup=treetopSubclassDeclarationDelimiter
                           \ start=+<+
                           \ end=+>+
                           \ contains=@treetopRuby

syn match   treetopEllipsis
                          \ +''+

hi def link treetopTodo                         Todo
hi def link treetopComment                      Comment
hi def link treetopKeyword                      Keyword
hi def link treetopGrammarName                  Constant
hi def link treetopRubyModuleName               Constant
hi def link treetopRuleName                     Identifier
hi def link treetopString                       String
hi def link treetopStringDelimiter              treetopString
hi def link treetopCharacterClass               treetopString
hi def link treetopCharacterClassDelimiter      treetopCharacterClass
hi def link treetopRubyBlockDelimiter           PreProc
hi def link treetopSemanticPredicateDelimiter   PreProc
hi def link treetopSubclassDeclarationDelimiter PreProc
hi def link treetopEllipsis                     Special

let b:current_syntax = 'treetop'

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z����vim80/syntax/grads.vimnu�[���" Vim syntax file
" Language:	grads (GrADS scripts)
" Maintainer:	Stefan Fronzek (sfronzek at gmx dot net)
" Last change: 13 Feb 2004

" Grid Analysis and Display System (GrADS); http://grads.iges.org/grads
" This syntax file defines highlighting for only very few features of
" the GrADS scripting language.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" GrADS is entirely case-insensitive.
syn case ignore

" The keywords

syn keyword gradsStatement	if else endif break exit return
syn keyword gradsStatement	while endwhile say prompt pull function
syn keyword gradsStatement subwrd sublin substr read write close
" String

syn region gradsString		start=+'+ end=+'+

" Integer number
syn match  gradsNumber		"[+-]\=\<[0-9]\+\>"

" Operator

"syn keyword gradsOperator	| ! % & != >=
"syn match gradsOperator		"[^\.]not[^a-zA-Z]"

" Variables

syn keyword gradsFixVariables	lat lon lev result rec rc
syn match gradsglobalVariables	"_[a-zA-Z][a-zA-Z0-9]*"
syn match gradsVariables		"[a-zA-Z][a-zA-Z0-9]*"
syn match gradsConst		"#[A-Z][A-Z_]+"

" Comments

syn match gradsComment	"\*.*"

" Typical Typos

" for C programmers:
" syn match gradsTypos	"=="
" syn match gradsTypos	"!="

" Define the default highlighting.
" Only when an item doesn't hgs highlighting+yet

hi def link gradsStatement		Statement

hi def link gradsString		String
hi def link gradsNumber		Number

hi def link gradsFixVariables	Special
hi def link gradsVariables		Identifier
hi def link gradsglobalVariables	Special
hi def link gradsConst		Special

hi def link gradsClassMethods	Function

hi def link gradsOperator		Operator
hi def link gradsComment		Comment

hi def link gradsTypos		Error


let b:current_syntax = "grads"
PK�j�Z3�SKKvim80/syntax/sqloracle.vimnu�[���" Vim syntax file
" Language:	SQL, PL/SQL (Oracle 11g)
" Maintainer:	Christian Brabandt
" Repository:   https://github.com/chrisbra/vim-sqloracle-syntax
" License:      Vim
" Previous Maintainer:	Paul Moore
" Last Change:	2016 Jul 22

" Changes:
" 02.04.2016: Support for when keyword
" 03.04.2016: Support for join related keywords
" 22.07.2016: Support Oracle Q-Quote-Syntax

if exists("b:current_syntax")
  finish
endif

syn case ignore

" The SQL reserved words, defined as keywords.

syn keyword sqlSpecial	false null true

syn keyword sqlKeyword	access add as asc begin by case check cluster column
syn keyword sqlKeyword	cache compress connect current cursor decimal default desc
syn keyword sqlKeyword	else elsif end exception exclusive file for from
syn keyword sqlKeyword	function group having identified if immediate increment
syn keyword sqlKeyword	index initial initrans into is level link logging loop
syn keyword sqlKeyword	maxextents maxtrans mode modify monitoring
syn keyword sqlKeyword	nocache nocompress nologging noparallel nowait of offline on online start
syn keyword sqlKeyword	parallel successful synonym table tablespace then to trigger uid
syn keyword sqlKeyword	unique user validate values view when whenever
syn keyword sqlKeyword	where with option order pctfree pctused privileges procedure
syn keyword sqlKeyword	public resource return row rowlabel rownum rows
syn keyword sqlKeyword	session share size smallint type using
syn keyword sqlKeyword	join cross inner outer left right

syn keyword sqlOperator	not and or
syn keyword sqlOperator	in any some all between exists
syn keyword sqlOperator	like escape
syn keyword sqlOperator	union intersect minus
syn keyword sqlOperator	prior distinct
syn keyword sqlOperator	sysdate out

syn keyword sqlStatement analyze audit comment commit
syn keyword sqlStatement delete drop execute explain grant lock noaudit
syn keyword sqlStatement rename revoke rollback savepoint set
syn keyword sqlStatement truncate
" next ones are contained, so folding works.
syn keyword sqlStatement create update alter select insert contained

syn keyword sqlType	boolean char character date float integer long
syn keyword sqlType	mlslabel number raw rowid varchar varchar2 varray

" Strings:
syn region sqlString	matchgroup=Quote start=+"+  skip=+\\\\\|\\"+  end=+"+
syn region sqlString	matchgroup=Quote start=+'+  skip=+\\\\\|\\'+  end=+'+
syn region sqlString	matchgroup=Quote start=+n\?q'\z([^[(<{]\)+    end=+\z1'+
syn region sqlString	matchgroup=Quote start=+n\?q'<+   end=+>'+
syn region sqlString	matchgroup=Quote start=+n\?q'{+   end=+}'+
syn region sqlString	matchgroup=Quote start=+n\?q'(+   end=+)'+
syn region sqlString	matchgroup=Quote start=+n\?q'\[+  end=+]'+

" Numbers:
syn match sqlNumber	"-\=\<\d*\.\=[0-9_]\>"

" Comments:
syn region sqlComment	start="/\*"  end="\*/" contains=sqlTodo,@Spell fold 
syn match sqlComment	"--.*$" contains=sqlTodo,@Spell

" Setup Folding:
" this is a hack, to get certain statements folded.
" the keywords create/update/alter/select/insert need to
" have contained option.
syn region sqlFold start='^\s*\zs\c\(Create\|Update\|Alter\|Select\|Insert\)' end=';$\|^$' transparent fold contains=ALL

syn sync ccomment sqlComment

" Functions:
" (Oracle 11g)
" Aggregate Functions
syn keyword sqlFunction	avg collect corr corr_s corr_k count covar_pop covar_samp cume_dist dense_rank first
syn keyword sqlFunction	group_id grouping grouping_id last max median min percentile_cont percentile_disc percent_rank rank
syn keyword sqlFunction	regr_slope regr_intercept regr_count regr_r2 regr_avgx regr_avgy regr_sxx regr_syy regr_sxy
syn keyword sqlFunction	stats_binomial_test stats_crosstab stats_f_test stats_ks_test stats_mode stats_mw_test
syn keyword sqlFunction	stats_one_way_anova stats_t_test_one stats_t_test_paired stats_t_test_indep stats_t_test_indepu
syn keyword sqlFunction	stats_wsr_test stddev stddev_pop stddev_samp sum
syn keyword sqlFunction	sys_xmlagg var_pop var_samp variance xmlagg
" Char Functions
syn keyword sqlFunction	ascii chr concat initcap instr length lower lpad ltrim
syn keyword sqlFunction	nls_initcap nls_lower nlssort nls_upper regexp_instr regexp_replace
syn keyword sqlFunction	regexp_substr replace rpad rtrim soundex substr translate treat trim upper
" Comparison Functions
syn keyword sqlFunction	greatest least
" Conversion Functions
syn keyword sqlFunction	asciistr bin_to_num cast chartorowid compose convert
syn keyword sqlFunction	decompose hextoraw numtodsinterval numtoyminterval rawtohex rawtonhex rowidtochar
syn keyword sqlFunction	rowidtonchar scn_to_timestamp timestamp_to_scn to_binary_double to_binary_float
syn keyword sqlFunction	to_char to_char to_char to_clob to_date to_dsinterval to_lob to_multi_byte
syn keyword sqlFunction	to_nchar to_nchar to_nchar to_nclob to_number to_dsinterval to_single_byte
syn keyword sqlFunction	to_timestamp to_timestamp_tz to_yminterval to_yminterval translate unistr
" DataMining Functions
syn keyword sqlFunction	cluster_id cluster_probability cluster_set feature_id feature_set
syn keyword sqlFunction	feature_value prediction prediction_bounds prediction_cost
syn keyword sqlFunction	prediction_details prediction_probability prediction_set
" Datetime Functions
syn keyword sqlFunction	add_months current_date current_timestamp dbtimezone extract
syn keyword sqlFunction	from_tz last_day localtimestamp months_between new_time
syn keyword sqlFunction	next_day numtodsinterval numtoyminterval round sessiontimezone
syn keyword sqlFunction	sys_extract_utc sysdate systimestamp to_char to_timestamp
syn keyword sqlFunction	to_timestamp_tz to_dsinterval to_yminterval trunc tz_offset
" Numeric Functions
syn keyword sqlFunction	abs acos asin atan atan2 bitand ceil cos cosh exp
syn keyword sqlFunction	floor ln log mod nanvl power remainder round sign
syn keyword sqlFunction	sin sinh sqrt tan tanh trunc width_bucket
" NLS Functions
syn keyword sqlFunction	ls_charset_decl_len nls_charset_id nls_charset_name
" Various Functions
syn keyword sqlFunction	bfilename cardin coalesce collect decode dump empty_blob empty_clob
syn keyword sqlFunction	lnnvl nullif nvl nvl2 ora_hash powermultiset powermultiset_by_cardinality
syn keyword sqlFunction	sys_connect_by_path sys_context sys_guid sys_typeid uid user userenv vsizeality
" XML Functions
syn keyword sqlFunction	appendchildxml deletexml depth extract existsnode extractvalue insertchildxml
syn keyword sqlFunction	insertxmlbefore path sys_dburigen sys_xmlagg sys_xmlgen updatexml xmlagg xmlcast
syn keyword sqlFunction	xmlcdata xmlcolattval xmlcomment xmlconcat xmldiff xmlelement xmlexists xmlforest
syn keyword sqlFunction	xmlparse xmlpatch xmlpi xmlquery xmlroot xmlsequence xmlserialize xmltable xmltransform
" Todo:
syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained

" Define the default highlighting.
hi def link Quote            Special
hi def link sqlComment	Comment
hi def link sqlFunction	Function
hi def link sqlKeyword	sqlSpecial
hi def link sqlNumber	Number
hi def link sqlOperator	sqlStatement
hi def link sqlSpecial	Special
hi def link sqlStatement	Statement
hi def link sqlString	String
hi def link sqlType		Type
hi def link sqlTodo		Todo

let b:current_syntax = "sql"
" vim: ts=8
PK�j�Z��n�&&vim80/syntax/b.vimnu�[���" Vim syntax file
" Language:	B (A Formal Method with refinement and mathematical proof)
" Maintainer:	Mathieu Clabaut <mathieu.clabaut@gmail.com>
" Contributor:  Csaba Hoch
" LastChange:	8 Dec 2007


" quit when a syntax file was already loaded
if exists("b:current_syntax")
   finish
endif


" A bunch of useful B keywords
syn keyword bStatement	        MACHINE MODEL SEES OPERATIONS INCLUDES DEFINITIONS CONSTRAINTS CONSTANTS VARIABLES CONCRETE_CONSTANTS CONCRETE_VARIABLES ABSTRACT_CONSTANTS ABSTRACT_VARIABLES HIDDEN_CONSTANTS HIDDEN_VARIABLES ASSERT ASSERTIONS  EXTENDS IMPLEMENTATION REFINEMENT IMPORTS USES INITIALISATION INVARIANT PROMOTES PROPERTIES REFINES SETS VALUES VARIANT VISIBLE_CONSTANTS VISIBLE_VARIABLES THEORY XLS THEOREMS LOCAL_OPERATIONS
syn keyword bLabel		CASE IN EITHER OR CHOICE DO OF
syn keyword bConditional	IF ELSE SELECT ELSIF THEN WHEN
syn keyword bRepeat		WHILE FOR
syn keyword bOps		bool card conc closure closure1 dom first fnc front not or id inter iseq iseq1 iterate last max min mod perm pred prj1 prj2 ran rel rev seq seq1 size skip succ tail union
syn keyword bKeywords		LET VAR BE IN BEGIN END  POW POW1 FIN FIN1  PRE  SIGMA STRING UNION IS ANY WHERE

syn keyword bBoolean	TRUE FALSE bfalse btrue
syn keyword bConstant	PI MAXINT MININT User_Pass PatchProver PatchProverH0 PatchProverB0 FLAT ARI DED SUB RES
syn keyword bGuard binhyp band bnot bguard bsearch bflat bfresh bguardi bget bgethyp barith bgetresult bresult bgoal bmatch bmodr bnewv  bnum btest bpattern bprintf bwritef bsubfrm  bvrb blvar bcall bappend bclose

syn keyword bLogic	or not
syn match bLogic	"\(!\|#\|%\|&\|+->>\|+->\|-->>\|->>\|-->\|->\|/:\|/<:\|/<<:\|/=\|/\\\|/|\\\|::\|:\|;:\|<+\|<->\|<--\|<-\|<:\|<<:\|<<|\|<=>\|<|\|==\|=>\|>+>>\|>->\|>+>\|||\||->\)"
syn match bNothing      /:=/

syn keyword cTodo contained	TODO FIXME XXX

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match bSpecial contained	"\\[0-7][0-7][0-7]\=\|\\."
syn region bString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=bSpecial
syn match bCharacter		"'[^\\]'"
syn match bSpecialCharacter	"'\\.'"
syn match bSpecialCharacter	"'\\[0-7][0-7]'"
syn match bSpecialCharacter	"'\\[0-7][0-7][0-7]'"

"catch errors caused by wrong parenthesis
syn region bParen		transparent start='(' end=')' contains=ALLBUT,bParenError,bIncluded,bSpecial,bTodo,bUserLabel,bBitField
syn match bParenError		")"
syn match bInParen contained	"[{}]"

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match bNumber		"\<[0-9]\+\>"
"syn match bIdentifier	"\<[a-z_][a-z0-9_]*\>"
syn case match

  syn region bComment		start="/\*" end="\*/" contains=bTodo
  syn match bComment		"//.*" contains=bTodo
syntax match bCommentError	"\*/"

syn keyword bType		INT INTEGER BOOL NAT NATURAL NAT1 NATURAL1

syn region bPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=bComment,bString,bCharacter,bNumber,bCommentError
syn region bIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match bIncluded contained "<[^>]*>"
syn match bInclude		"^\s*#\s*include\>\s*["<]" contains=bIncluded

syn region bDefine		start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,bPreCondit,bIncluded,bInclude,bDefine,bInParen
syn region bPreProc		start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,bPreCondit,bIncluded,bInclude,bDefine,bInParen

syn sync ccomment bComment minlines=10

" Define the default highlighting.
" Only when an item doesn't have highlighting yet


" The default methods for highlighting.  Can be overridden later
hi def link bLabel	Label
hi def link bUserLabel	Label
hi def link bConditional	Conditional
hi def link bRepeat	Repeat
hi def link bLogic	Special
hi def link bCharacter	Character
hi def link bSpecialCharacter bSpecial
hi def link bNumber	Number
hi def link bFloat	Float
hi def link bOctalError	bError
hi def link bParenError	bError
" hi def link bInParen	bError
hi def link bCommentError	bError
hi def link bBoolean	Identifier
hi def link bConstant	Identifier
hi def link bGuard	Identifier
hi def link bOperator	Operator
hi def link bKeywords	Operator
hi def link bOps		Identifier
hi def link bStructure	Structure
hi def link bStorageClass	StorageClass
hi def link bInclude	Include
hi def link bPreProc	PreProc
hi def link bDefine	Macro
hi def link bIncluded	bString
hi def link bError	Error
hi def link bStatement	Statement
hi def link bPreCondit	PreCondit
hi def link bType		Type
hi def link bCommentError	bError
hi def link bCommentString bString
hi def link bComment2String bString
hi def link bCommentSkip	bComment
hi def link bString	String
hi def link bComment	Comment
hi def link bSpecial	SpecialChar
hi def link bTodo		Todo
"hi link bIdentifier	Identifier

let b:current_syntax = "b"

" vim: ts=8
PK�j�Z���Q��vim80/syntax/clipper.vimnu�[���" Vim syntax file:
" Language:	Clipper 5.2 & FlagShip
" Maintainer:	C R Zamana <zamana@zip.net>
" Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio
" Last Change:	2011 Dec 29 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Exceptions for my "Very Own" (TM) user variables naming style.
" If you don't like this, comment it
syn match  clipperUserVariable	"\<[a,b,c,d,l,n,o,u,x][A-Z][A-Za-z0-9_]*\>"
syn match  clipperUserVariable	"\<[a-z]\>"

" Clipper is case insensitive ( see "exception" above )
syn case ignore

" Clipper keywords ( in no particular order )
syn keyword clipperStatement	ACCEPT APPEND BLANK FROM AVERAGE CALL CANCEL
syn keyword clipperStatement	CLEAR ALL GETS MEMORY TYPEAHEAD CLOSE
syn keyword clipperStatement	COMMIT CONTINUE SHARED NEW PICT
syn keyword clipperStatement	COPY FILE STRUCTURE STRU EXTE TO COUNT
syn keyword clipperStatement	CREATE FROM NIL
syn keyword clipperStatement	DELETE FILE DIR DISPLAY EJECT ERASE FIND GO
syn keyword clipperStatement	INDEX INPUT VALID WHEN
syn keyword clipperStatement	JOIN KEYBOARD LABEL FORM LIST LOCATE MENU TO
syn keyword clipperStatement	NOTE PACK QUIT READ
syn keyword clipperStatement	RECALL REINDEX RELEASE RENAME REPLACE REPORT
syn keyword clipperStatement	RETURN FORM RESTORE
syn keyword clipperStatement	RUN SAVE SEEK SELECT
syn keyword clipperStatement	SKIP SORT STORE SUM TEXT TOTAL TYPE UNLOCK
syn keyword clipperStatement	UPDATE USE WAIT ZAP
syn keyword clipperStatement	BEGIN SEQUENCE
syn keyword clipperStatement	SET ALTERNATE BELL CENTURY COLOR CONFIRM CONSOLE
syn keyword clipperStatement	CURSOR DATE DECIMALS DEFAULT DELETED DELIMITERS
syn keyword clipperStatement	DEVICE EPOCH ESCAPE EXACT EXCLUSIVE FILTER FIXED
syn keyword clipperStatement	FORMAT FUNCTION INTENSITY KEY MARGIN MESSAGE
syn keyword clipperStatement	ORDER PATH PRINTER PROCEDURE RELATION SCOREBOARD
syn keyword clipperStatement	SOFTSEEK TYPEAHEAD UNIQUE WRAP
syn keyword clipperStatement	BOX CLEAR GET PROMPT SAY ? ??
syn keyword clipperStatement	DELETE TAG GO RTLINKCMD TMP DBLOCKINFO
syn keyword clipperStatement	DBEVALINFO DBFIELDINFO DBFILTERINFO DBFUNCTABLE
syn keyword clipperStatement	DBOPENINFO DBORDERCONDINFO DBORDERCREATEINF
syn keyword clipperStatement	DBORDERINFO DBRELINFO DBSCOPEINFO DBSORTINFO
syn keyword clipperStatement	DBSORTITEM DBTRANSINFO DBTRANSITEM WORKAREA

" Conditionals
syn keyword clipperConditional	CASE OTHERWISE ENDCASE
syn keyword clipperConditional	IF ELSE ENDIF IIF IFDEF IFNDEF

" Loops
syn keyword clipperRepeat	DO WHILE ENDDO
syn keyword clipperRepeat	FOR TO NEXT STEP

" Visibility
syn keyword clipperStorageClass	ANNOUNCE STATIC
syn keyword clipperStorageClass DECLARE EXTERNAL LOCAL MEMVAR PARAMETERS
syn keyword clipperStorageClass PRIVATE PROCEDURE PUBLIC REQUEST STATIC
syn keyword clipperStorageClass FIELD FUNCTION
syn keyword clipperStorageClass EXIT PROCEDURE INIT PROCEDURE

" Operators
syn match   clipperOperator	"$\|%\|&\|+\|-\|->\|!"
syn match   clipperOperator	"\.AND\.\|\.NOT\.\|\.OR\."
syn match   clipperOperator	":=\|<\|<=\|<>\|!=\|#\|=\|==\|>\|>=\|@"
syn match   clipperOperator     "*"

" Numbers
syn match   clipperNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"

" Includes
syn region clipperIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match  clipperIncluded	contained "<[^>]*>"
syn match  clipperInclude	"^\s*#\s*include\>\s*["<]" contains=clipperIncluded

" String and Character constants
syn region clipperString	start=+"+ end=+"+
syn region clipperString	start=+'+ end=+'+

" Delimiters
syn match  ClipperDelimiters	"[()]\|[\[\]]\|[{}]\|[||]"

" Special
syn match clipperLineContinuation	";"

" This is from Bram Moolenaar:
if exists("c_comment_strings")
  " A comment can contain cString, cCharacter and cNumber.
  " But a "*/" inside a cString in a clipperComment DOES end the comment!
  " So we need to use a special type of cString: clipperCommentString, which
  " also ends on "*/", and sees a "*" at the start of the line as comment
  " again. Unfortunately this doesn't very well work for // type of comments :-(
  syntax match clipperCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region clipperCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=clipperCommentSkip
  syntax region clipperComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$"
  syntax region clipperComment		start="/\*" end="\*/" contains=clipperCommentString,clipperCharacter,clipperNumber,clipperString
  syntax match  clipperComment		"//.*" contains=clipperComment2String,clipperCharacter,clipperNumber
else
  syn region clipperComment		start="/\*" end="\*/"
  syn match clipperComment		"//.*"
endif
syntax match clipperCommentError	"\*/"

" Lines beggining with an "*" are comments too
syntax match clipperComment		"^\*.*"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link clipperConditional		Conditional
hi def link clipperRepeat			Repeat
hi def link clipperNumber			Number
hi def link clipperInclude		Include
hi def link clipperComment		Comment
hi def link clipperOperator		Operator
hi def link clipperStorageClass		StorageClass
hi def link clipperStatement		Statement
hi def link clipperString			String
hi def link clipperFunction		Function
hi def link clipperLineContinuation	Special
hi def link clipperDelimiters		Delimiter
hi def link clipperUserVariable		Identifier


let b:current_syntax = "clipper"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z	glHECECvim80/syntax/ratpoison.vimnu�[���" Vim syntax file
" Language:	Ratpoison configuration/commands file ( /etc/ratpoisonrc ~/.ratpoisonrc )
" Maintainer:	Magnus Woldrich <m@japh.se>
" URL:		http://github.com/trapd00r/vim-syntax-ratpoison
" Last Change:	2011 Apr 11
" Previous Maintainer:	Doug Kearns <djkea2@gus.gscit.monash.edu.au>

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn match   ratpoisonComment	"^\s*#.*$"		contains=ratpoisonTodo

syn keyword ratpoisonTodo	TODO NOTE FIXME XXX	contained

syn case ignore
syn keyword ratpoisonBooleanArg	on off			contained
syn case match

syn keyword ratpoisonCommandArg abort addhook alias banish chdir		contained
syn keyword ratpoisonCommandArg clrunmanaged cnext colon compat cother		contained
syn keyword ratpoisonCommandArg cprev curframe dedicate definekey delete	contained
syn keyword ratpoisonCommandArg delkmap describekey echo escape exec		contained
syn keyword ratpoisonCommandArg fdump focus focusdown focuslast focusleft	contained
syn keyword ratpoisonCommandArg focusprev focusright focusup frestore fselect	contained
syn keyword ratpoisonCommandArg gdelete getenv getsel gmerge gmove		contained
syn keyword ratpoisonCommandArg gnew gnewbg gnext gprev gravity			contained
syn keyword ratpoisonCommandArg groups gselect help hsplit inext		contained
syn keyword ratpoisonCommandArg info iother iprev kill lastmsg			contained
syn keyword ratpoisonCommandArg license link listhook meta msgwait		contained
syn keyword ratpoisonCommandArg newkmap newwm next nextscreen number		contained
syn keyword ratpoisonCommandArg only other prev prevscreen prompt		contained
syn keyword ratpoisonCommandArg putsel quit ratclick rathold ratrelwarp		contained
syn keyword ratpoisonCommandArg ratwarp readkey redisplay redo remhook		contained
syn keyword ratpoisonCommandArg remove resize restart rudeness sdump		contained
syn keyword ratpoisonCommandArg select set setenv sfdump shrink			contained
syn keyword ratpoisonCommandArg source sselect startup_message time title	contained
syn keyword ratpoisonCommandArg tmpwm unalias undefinekey undo unmanage		contained
syn keyword ratpoisonCommandArg unsetenv verbexec version vsplit warp		contained
syn keyword ratpoisonCommandArg windows						contained

syn match   ratpoisonGravityArg "\<\(n\|north\)\>"	contained
syn match   ratpoisonGravityArg "\<\(nw\|northwest\)\>"	contained
syn match   ratpoisonGravityArg "\<\(ne\|northeast\)\>"	contained
syn match   ratpoisonGravityArg "\<\(w\|west\)\>"	contained
syn match   ratpoisonGravityArg "\<\(c\|center\)\>"	contained
syn match   ratpoisonGravityArg "\<\(e\|east\)\>"	contained
syn match   ratpoisonGravityArg "\<\(s\|south\)\>"	contained
syn match   ratpoisonGravityArg "\<\(sw\|southwest\)\>"	contained
syn match   ratpoisonGravityArg "\<\(se\|southeast\)\>"	contained
syn case match

syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(F[1-9][0-9]\=\|\(\a\|\d\)\)\>" contained nextgroup=ratpoisonCommandArg skipwhite

syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(space\|exclam\|quotedbl\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(numbersign\|dollar\|percent\|ampersand\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(apostrophe\|quoteright\|parenleft\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(parenright\|asterisk\|plus\|comma\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(minus\|period\|slash\|colon\|semicolon\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(less\|equal\|greater\|question\|at\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(bracketleft\|backslash\|bracketright\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(asciicircum\|underscore\|grave\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(quoteleft\|braceleft\|bar\|braceright\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(asciitilde\)\>" contained nextgroup=ratpoisonCommandArg skipwhite

syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(BackSpace\|Tab\|Linefeed\|Clear\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Return\|Pause\|Scroll_Lock\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Sys_Req\|Escape\|Delete\)\>" contained nextgroup=ratpoisonCommandArg skipwhite

syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Home\|Left\|Up\|Right\|Down\|Prior\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Page_Up\|Next\|Page_Down\|End\|Begin\)\>" contained nextgroup=ratpoisonCommandArg skipwhite

syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Select\|Print\|Execute\|Insert\|Undo\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Redo\|Menu\|Find\|Cancel\|Help\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Break\|Mode_switch\|script_switch\|Num_Lock\)\>" contained nextgroup=ratpoisonCommandArg skipwhite

syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Space\|Tab\|Enter\|F[1234]\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Home\|Left\|Up\|Right\|Down\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Prior\|Page_Up\|Next\|Page_Down\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(End\|Begin\|Insert\|Delete\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Equal\|Multiply\|Add\|Separator\)\>" contained nextgroup=ratpoisonCommandArg skipwhite
syn match   ratpoisonKeySeqArg  "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Subtract\|Decimal\|Divide\|\d\)\>" contained nextgroup=ratpoisonCommandArg skipwhite

syn match   ratpoisonHookArg    "\<\(key\|switchwin\|switchframe\|switchgroup\|quit\|restart\)\>" contained

syn match   ratpoisonNumberArg  "\<\d\+\>"	contained nextgroup=ratpoisonNumberArg skipwhite

syn keyword ratpoisonSetArg	barborder	contained nextgroup=ratpoisonNumberArg
syn keyword ratpoisonSetArg	bargravity	contained nextgroup=ratpoisonGravityArg
syn keyword ratpoisonSetArg	barpadding	contained nextgroup=ratpoisonNumberArg
syn keyword ratpoisonSetArg	bgcolor
syn keyword ratpoisonSetArg	border		contained nextgroup=ratpoisonNumberArg
syn keyword ratpoisonSetArg	fgcolor
syn keyword ratpoisonSetArg	fwcolor
syn keyword ratpoisonSetArg	bwcolor
syn keyword ratpoisonSetArg	historysize
syn keyword ratpoisonSetArg	historycompaction
syn keyword ratpoisonSetArg	historyexpansion
syn keyword ratpoisonSetArg	topkmap
syn keyword ratpoisonSetArg	barinpadding
syn keyword ratpoisonSetArg	font
syn keyword ratpoisonSetArg	framesels
syn keyword ratpoisonSetArg	inputwidth	contained nextgroup=ratpoisonNumberArg
syn keyword ratpoisonSetArg	maxsizegravity	contained nextgroup=ratpoisonGravityArg
syn keyword ratpoisonSetArg	padding		contained nextgroup=ratpoisonNumberArg
syn keyword ratpoisonSetArg	resizeunit	contained nextgroup=ratpoisonNumberArg
syn keyword ratpoisonSetArg	transgravity	contained nextgroup=ratpoisonGravityArg
syn keyword ratpoisonSetArg	waitcursor	contained nextgroup=ratpoisonNumberArg
syn keyword ratpoisonSetArg	winfmt		contained nextgroup=ratpoisonWinFmtArg
syn keyword ratpoisonSetArg	wingravity	contained nextgroup=ratpoisonGravityArg
syn keyword ratpoisonSetArg	winliststyle	contained nextgroup=ratpoisonWinListArg
syn keyword ratpoisonSetArg	winname		contained nextgroup=ratpoisonWinNameArg

syn match   ratpoisonWinFmtArg  "%[nstacil]"			contained nextgroup=ratpoisonWinFmtArg skipwhite

syn match   ratpoisonWinListArg "\<\(row\|column\)\>"		contained

syn match   ratpoisonWinNameArg "\<\(name\|title\|class\)\>"	contained

syn match   ratpoisonDefCommand		"^\s*set\s*"			nextgroup=ratpoisonSetArg
syn match   ratpoisonDefCommand		"^\s*defbarborder\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonDefCommand		"^\s*defbargravity\s*"		nextgroup=ratpoisonGravityArg
syn match   ratpoisonDefCommand		"^\s*defbarpadding\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonDefCommand		"^\s*defbgcolor\s*"
syn match   ratpoisonDefCommand		"^\s*defborder\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonDefCommand		"^\s*deffgcolor\s*"
syn match   ratpoisonDefCommand		"^\s*deffont\s*"
syn match   ratpoisonDefCommand		"^\s*defframesels\s*"
syn match   ratpoisonDefCommand		"^\s*definputwidth\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonDefCommand		"^\s*defmaxsizegravity\s*"	nextgroup=ratpoisonGravityArg
syn match   ratpoisonDefCommand		"^\s*defpadding\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonDefCommand		"^\s*defresizeunit\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonDefCommand		"^\s*deftransgravity\s*"	nextgroup=ratpoisonGravityArg
syn match   ratpoisonDefCommand		"^\s*defwaitcursor\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonDefCommand		"^\s*defwinfmt\s*"		nextgroup=ratpoisonWinFmtArg
syn match   ratpoisonDefCommand		"^\s*defwingravity\s*"		nextgroup=ratpoisonGravityArg
syn match   ratpoisonDefCommand		"^\s*defwinliststyle\s*"	nextgroup=ratpoisonWinListArg
syn match   ratpoisonDefCommand		"^\s*defwinname\s*"		nextgroup=ratpoisonWinNameArg
syn match   ratpoisonDefCommand		"^\s*msgwait\s*"		nextgroup=ratpoisonNumberArg

syn match   ratpoisonStringCommand	"^\s*\zsaddhook\ze\s*"		nextgroup=ratpoisonHookArg
syn match   ratpoisonStringCommand	"^\s*\zsalias\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsbind\ze\s*"		nextgroup=ratpoisonKeySeqArg
syn match   ratpoisonStringCommand	"^\s*\zschdir\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zscolon\ze\s*"		nextgroup=ratpoisonCommandArg
syn match   ratpoisonStringCommand	"^\s*\zsdedicate\ze\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonStringCommand	"^\s*\zsdefinekey\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsdelkmap\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsdescribekey\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsecho\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsescape\ze\s*"		nextgroup=ratpoisonKeySeqArg
syn match   ratpoisonStringCommand	"^\s*\zsexec\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsfdump\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsfrestore\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsgdelete\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsgetenv\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsgravity\ze\s*"		nextgroup=ratpoisonGravityArg
syn match   ratpoisonStringCommand	"^\s*\zsgselect\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zslink\ze\s*"		nextgroup=ratpoisonKeySeqArg
syn match   ratpoisonStringCommand	"^\s*\zslisthook\ze\s*"		nextgroup=ratpoisonHookArg
syn match   ratpoisonStringCommand	"^\s*\zsnewkmap\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsnewwm\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsnumber\ze\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonStringCommand	"^\s*\zsprompt\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsratwarp\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsratrelwarp\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsratclick\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsrathold\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsreadkey\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsremhook\ze\s*"		nextgroup=ratpoisonHookArg
syn match   ratpoisonStringCommand	"^\s*\zsresize\ze\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonStringCommand	"^\s*\zsrudeness\ze\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonStringCommand	"^\s*\zsselect\ze\s*"		nextgroup=ratpoisonNumberArg
syn match   ratpoisonStringCommand	"^\s*\zssetenv\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zssource\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zssselect\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsstartup_message\ze\s*"	nextgroup=ratpoisonBooleanArg
syn match   ratpoisonStringCommand	"^\s*\zstitle\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zstmpwm\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsunalias\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsunbind\ze\s*"		nextgroup=ratpoisonKeySeqArg
syn match   ratpoisonStringCommand	"^\s*\zsundefinekey\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsunmanage\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsunsetenv\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zsverbexec\ze\s*"
syn match   ratpoisonStringCommand	"^\s*\zswarp\ze\s*"		nextgroup=ratpoisonBooleanArg

syn match   ratpoisonVoidCommand	"^\s*\zsabort\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsbanish\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsclrunmanaged\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zscnext\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zscompat\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zscother\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zscprev\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zscurframe\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsdelete\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfocusdown\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfocuslast\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfocusleft\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfocusprev\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfocusright\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfocusup\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfocus\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsfselect\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgetsel\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgmerge\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgmove\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgnewbg\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgnew\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgnext\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgprev\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsgroups\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zshelp\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zshsplit\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsinext\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsinfo\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsiother\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsiprev\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zskill\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zslastmsg\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zslicense\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsmeta\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsnextscreen\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsnext\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsonly\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsother\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsprevscreen\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsprev\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsputsel\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsquit\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsredisplay\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsredo\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsremove\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsrestart\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zssdump\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zssfdump\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsshrink\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zssplit\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zstime\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsundo\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsversion\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zsvsplit\ze\s*$"
syn match   ratpoisonVoidCommand	"^\s*\zswindows\ze\s*$"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link ratpoisonBooleanArg	Boolean
hi def link ratpoisonCommandArg	Keyword
hi def link ratpoisonComment	Comment
hi def link ratpoisonDefCommand	Identifier
hi def link ratpoisonGravityArg	Constant
hi def link ratpoisonKeySeqArg	Special
hi def link ratpoisonNumberArg	Number
hi def link ratpoisonSetArg	Keyword
hi def link ratpoisonStringCommand	Identifier
hi def link ratpoisonTodo		Todo
hi def link ratpoisonVoidCommand	Identifier
hi def link ratpoisonWinFmtArg	Special
hi def link ratpoisonWinNameArg	Constant
hi def link ratpoisonWinListArg	Constant


let b:current_syntax = "ratpoison"

" vim: ts=8
PK�j�Z���[��vim80/syntax/dns.vimnu�[���" Vim syntax file
" Language:     DNS/BIND Zone File

" This has been replaced by the bindzone syntax
:runtime! syntax/bindzone.vim
PK�j�Z��Z���vim80/syntax/vsejcl.vimnu�[���" Vim syntax file
" Language:    JCL job control language - DOS/VSE
" Maintainer:  Davyd Ondrejko <david.ondrejko@safelite.com>
" URL:
" Last change: 2001 May 10

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" tags
syn keyword vsejclKeyword DLBL EXEC JOB ASSGN EOJ
syn keyword vsejclField JNM CLASS DISP USER SYSID JSEP SIZE
syn keyword vsejclField VSAM
syn region vsejclComment start="^/\*" end="$"
syn region vsejclComment start="^[\* ]\{}$" end="$"
syn region vsejclMisc start="^  " end="$" contains=Jparms
syn match vsejclString /'.\{-}'/
syn match vsejclParms /(.\{-})/ contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link vsejclComment		Comment
hi def link vsejclField		Type
hi def link vsejclKeyword		Statement
hi def link vsejclObject		Constant
hi def link vsejclString		Constant
hi def link vsejclMisc			Special
hi def link vsejclParms		Constant


let b:current_syntax = "vsejcl"

" vim: ts=4
PK�j�ZJuY-�
�
vim80/syntax/mib.vimnu�[���" Vim syntax file
" Language:        Vim syntax file for SNMPv1 and SNMPv2 MIB and SMI files
" Maintainer:      Martin Smat <msmat@post.cz>
" Original Author: David Pascoe <pascoedj@spamcop.net>
" Written:     	   Wed Jan 28 14:37:23 GMT--8:00 1998
" Last Changed:    Mon Mar 23 2010

if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=@,48-57,_,128-167,224-235,-

syn keyword mibImplicit ACCESS ANY AUGMENTS BEGIN BIT BITS BOOLEAN CHOICE
syn keyword mibImplicit COMPONENTS CONTACT-INFO DEFINITIONS DEFVAL
syn keyword mibImplicit DESCRIPTION DISPLAY-HINT END ENTERPRISE EXTERNAL FALSE
syn keyword mibImplicit FROM GROUP IMPLICIT IMPLIED IMPORTS INDEX
syn keyword mibImplicit LAST-UPDATED MANDATORY-GROUPS MAX-ACCESS
syn keyword mibImplicit MIN-ACCESS MODULE MODULE-COMPLIANCE MODULE-IDENTITY
syn keyword mibImplicit NOTIFICATION-GROUP NOTIFICATION-TYPE NOTIFICATIONS
syn keyword mibImplicit NULL OBJECT-GROUP OBJECT-IDENTITY OBJECT-TYPE
syn keyword mibImplicit OBJECTS OF OPTIONAL ORGANIZATION REFERENCE
syn keyword mibImplicit REVISION SEQUENCE SET SIZE STATUS SYNTAX
syn keyword mibImplicit TEXTUAL-CONVENTION TRAP-TYPE TRUE UNITS VARIABLES
syn keyword mibImplicit WRITE-SYNTAX
syn keyword mibValue accessible-for-notify current DisplayString
syn keyword mibValue deprecated mandatory not-accessible obsolete optional
syn keyword mibValue read-create read-only read-write write-only INTEGER
syn keyword mibValue Counter Gauge IpAddress OCTET STRING experimental mib-2
syn keyword mibValue TimeTicks RowStatus TruthValue UInteger32 snmpModules
syn keyword mibValue Integer32 Counter32 TestAndIncr TimeStamp InstancePointer
syn keyword mibValue OBJECT IDENTIFIER Gauge32 AutonomousType Counter64
syn keyword mibValue PhysAddress TimeInterval MacAddress StorageType RowPointer
syn keyword mibValue TDomain TAddress ifIndex

" Epilogue SMI extensions
syn keyword mibEpilogue FORCE-INCLUDE EXCLUDE cookie get-function set-function
syn keyword mibEpilogue test-function get-function-async set-function-async
syn keyword mibEpilogue test-function-async next-function next-function-async
syn keyword mibEpilogue leaf-name
syn keyword mibEpilogue DEFAULT contained

syn match  mibOperator  "::="
syn match  mibComment   "\ *--.\{-}\(--\|$\)"
syn match  mibNumber    "\<['0-9a-fA-FhH]*\>"
syn region mibDescription start="\"" end="\"" contains=DEFAULT

hi def link mibImplicit	     Statement
hi def link mibOperator      Statement
hi def link mibComment       Comment
hi def link mibConstants     String
hi def link mibNumber        Number
hi def link mibDescription   Identifier
hi def link mibEpilogue	     SpecialChar
hi def link mibValue         Structure

let b:current_syntax = "mib"
PK�j�Z](]��#vim80/syntax/upstreaminstalllog.vimnu�[���" Vim syntax file
" Language:             Innovation Data Processing UPSTREAMInstall.log file
" Maintainer:           Rob Owens <rowens@fdrinnovation.com>
" Latest Revision:      2013-06-17

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Date:
syn match upstreaminstalllog_Date /\u\l\l \u\l\l\s\{1,2}\d\{1,2} \d\d:\d\d:\d\d \d\d\d\d/
" Msg Types:
syn match upstreaminstalllog_MsgD /Msg #MSI\d\{4,5}D/
syn match upstreaminstalllog_MsgE /Msg #MSI\d\{4,5}E/
syn match upstreaminstalllog_MsgI /Msg #MSI\d\{4,5}I/
syn match upstreaminstalllog_MsgW /Msg #MSI\d\{4,5}W/
" IP Address:
syn match upstreaminstalllog_IPaddr / \d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/

hi def link upstreaminstalllog_Date	Underlined
hi def link upstreaminstalllog_MsgD	Type
hi def link upstreaminstalllog_MsgE	Error
hi def link upstreaminstalllog_MsgW	Constant
hi def link upstreaminstalllog_IPaddr	Identifier

let b:current_syntax = "upstreaminstalllog"
PK�j�Zm2Z��vim80/syntax/ldif.vimnu�[���" Vim syntax file
" Language:	LDAP LDIF
" Maintainer:	Zak Johnson <zakj@nox.cx>
" Last Change:	2003-12-30

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn sync minlines=10 linebreaks=1

syn match ldifAttribute /^[^ #][^:]*/ contains=ldifOption display
syn match ldifOption /;[^:]\+/ contained contains=ldifPunctuation display
syn match ldifPunctuation /;/ contained display

syn region ldifStringValue matchgroup=ldifPunctuation start=/: /  end=/\_$/ skip=/\n /
syn region ldifBase64Value matchgroup=ldifPunctuation start=/:: / end=/\_$/ skip=/\n /
syn region ldifFileValue   matchgroup=ldifPunctuation start=/:< / end=/\_$/ skip=/\n /

syn region ldifComment start=/^#/ end=/\_$/ skip=/\n /


hi def link ldifAttribute		Type
hi def link ldifOption		Identifier
hi def link ldifPunctuation	Normal
hi def link ldifStringValue	String
hi def link ldifBase64Value	Special
hi def link ldifFileValue		Special
hi def link ldifComment		Comment


let b:current_syntax = "ldif"
PK�j�Z�|�P��vim80/syntax/mmp.vimnu�[���" Vim syntax file
" Language:	Symbian meta-makefile definition (MMP)
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2007/11/07
" URL: http://ronware.org/wiki/vim/mmp
" Filetypes:	*.mmp

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn match mmpComment	"//.*"
syn region mmpComment start="/\*" end="\*\/"

syn keyword mmpKeyword	aif asspabi assplibrary aaspexports baseaddress
syn keyword mmpKeyword	debuglibrary deffile document epocheapsize
syn keyword mmpKeyword	epocprocesspriority epocstacksize exportunfrozen
syn keyword mmpStorage	lang library linkas macro nostrictdef option
syn keyword mmpStorage	resource source sourcepath srcdbg startbitmap
syn keyword mmpStorage	start end staticlibrary strictdepend systeminclude
syn keyword mmpStorage	systemresource target targettype targetpath uid
syn keyword mmpStorage	userinclude win32_library

syn match mmpIfdef	"\#\(include\|ifdef\|ifndef\|if\|endif\|else\|elif\)"

syn match   mmpNumber	"\d+"
syn match   mmpNumber	"0x\x\+"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet
if !exists("did_mmp_syntax_inits")
  let did_mmp_syntax_inits=1

  hi def link mmpComment	Comment
  hi def link mmpKeyword	Keyword
  hi def link mmpStorage	StorageClass
  hi def link mmpString	String
  hi def link mmpNumber	Number
  hi def link mmpOrdinal	Operator
  hi def link mmpIfdef	PreCondit
endif

let b:current_syntax = "mmp"

" vim: ts=8
PK�j�Z���ppvim80/syntax/sbt.vimnu�[���" Vim syntax file
" Language:    sbt
" Maintainer:  Steven Dobay <stevendobay at protonmail.com>
" Last Change: 2017.04.30

if exists("b:current_syntax")
  finish
endif

runtime! syntax/scala.vim

syn region sbtString start="\"[^"]" skip="\\\"" end="\"" contains=sbtStringEscape
syn match sbtStringEscape "\\u[0-9a-fA-F]\{4}" contained
syn match sbtStringEscape "\\[nrfvb\\\"]" contained

syn match sbtIdentitifer "^\S\+\ze\s*\(:=\|++=\|+=\|<<=\|<+=\)"
syn match sbtBeginningSeq "^[Ss]eq\>"

syn match sbtSpecial "\(:=\|++=\|+=\|<<=\|<+=\)"

syn match sbtLineComment "//.*"
syn region sbtComment start="/\*" end="\*/"
syn region sbtDocComment start="/\*\*" end="\*/" keepend

hi link sbtString String
hi link sbtIdentitifer Keyword
hi link sbtBeginningSeq Keyword
hi link sbtSpecial Special
hi link sbtComment Comment
hi link sbtLineComment Comment
hi link sbtDocComment Comment

PK�j�Z�508��vim80/syntax/manual.vimnu�[���" Vim syntax support file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2016 Feb 01

" This file is used for ":syntax manual".
" It installs the Syntax autocommands, but no the FileType autocommands.

if !has("syntax")
  finish
endif

" Load the Syntax autocommands and set the default methods for highlighting.
if !exists("syntax_on")
  so <sfile>:p:h/synload.vim
endif

let syntax_manual = 1

" Overrule the connection between FileType and Syntax autocommands.  This sets
" the syntax when the file type is detected, without changing the value.
augroup syntaxset
  au! FileType *	exe "set syntax=" . &syntax
augroup END

" If the GUI is already running, may still need to install the FileType menu.
" Don't do it when the 'M' flag is included in 'guioptions'.
if has("menu") && has("gui_running") && !exists("did_install_syntax_menu") && &guioptions !~# 'M'
  source $VIMRUNTIME/menu.vim
endif
PK�j�Z[�'�C/C/vim80/syntax/lscript.vimnu�[���" Vim syntax file
" Language:	LotusScript
" Maintainer:	Taryn East (taryneast@hotmail.com)
" Last Change:	2003 May 11

" This is a rough  amalgamation of the visual basic syntax file, and the UltraEdit
" and Textpad syntax highlighters.
" It's not too brilliant given that a) I've never written a syntax.vim file before
" and b) I'm not so crash hot at LotusScript either. If you see any problems
" feel free to email me with them.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" LotusScript is case insensitive
syn case ignore

" These are Notes thingies that had an equivalent in the vb highlighter
" or I was already familiar with them
syn keyword lscriptStatement ActivateApp As And Base Beep Call Case ChDir ChDrive Class
syn keyword lscriptStatement Const Dim Declare DefCur DefDbl DefInt DefLng DefSng DefStr
syn keyword lscriptStatement DefVar Do Else %Else ElseIf %ElseIf End %End Erase Event Exit
syn keyword lscriptStatement Explicit FileCopy FALSE For ForAll Function Get GoTo GoSub
syn keyword lscriptStatement If %If In Is Kill Let List Lock Loop MkDir
syn keyword lscriptStatement Name Next New NoCase NoPitch Not Nothing NULL
syn keyword lscriptStatement On Option Or PI Pitch Preserve Private Public
syn keyword lscriptStatement Property Public Put
syn keyword lscriptStatement Randomize ReDim Reset Resume Return RmDir
syn keyword lscriptStatement Select SendKeys SetFileAttr Set Static Sub Then To TRUE
syn keyword lscriptStatement Type Unlock Until While WEnd With Write XOr

syn keyword lscriptDatatype Array Currency Double Integer Long Single String String$ Variant

syn keyword lscriptNotesType Field Button Navigator
syn keyword lscriptNotesType NotesACL NotesACLEntry NotesAgent NotesDatabase NotesDateRange
syn keyword lscriptNotesType NotesDateTime NotesDbDirectory NotesDocument
syn keyword lscriptNotesType NotesDocumentCollection NotesEmbeddedObject NotesForm
syn keyword lscriptNotesType NotesInternational NotesItem NotesLog NotesName NotesNewsLetter
syn keyword lscriptNotesType NotesMIMEEntry NotesOutline NotesOutlineEntry NotesRegistration
syn keyword lscriptNotesType NotesReplication NotesRichTextItem NotesRichTextParagraphStyle
syn keyword lscriptNotesType NotesRichTextStyle NotesRichTextTab
syn keyword lscriptNotesType NotesSession NotesTimer NotesView NotesViewColumn NotesViewEntry
syn keyword lscriptNotesType NotesViewEntryCollection NotesViewNavigator NotesUIDatabase
syn keyword lscriptNotesType NotesUIDocument NotesUIView NotesUIWorkspace

syn keyword lscriptNotesConst ACLLEVEL_AUTHOR ACLLEVEL_DEPOSITOR ACLLEVEL_DESIGNER
syn keyword lscriptNotesConst ACLLEVEL_EDITOR ACLLEVEL_MANAGER ACLLEVEL_NOACCESS
syn keyword lscriptNotesConst ACLLEVEL_READER ACLTYPE_MIXED_GROUP ACLTYPE_PERSON
syn keyword lscriptNotesConst ACLTYPE_PERSON_GROUP ACLTYPE_SERVER ACLTYPE_SERVER_GROUP
syn keyword lscriptNotesConst ACLTYPE_UNSPECIFIED ACTIONCD ALIGN_CENTER
syn keyword lscriptNotesConst ALIGN_FULL ALIGN_LEFT ALIGN_NOWRAP ALIGN_RIGHT
syn keyword lscriptNotesConst ASSISTANTINFO ATTACHMENT AUTHORS COLOR_BLACK
syn keyword lscriptNotesConst COLOR_BLUE COLOR_CYAN COLOR_DARK_BLUE COLOR_DARK_CYAN
syn keyword lscriptNotesConst COLOR_DARK_GREEN COLOR_DARK_MAGENTA COLOR_DARK_RED
syn keyword lscriptNotesConst COLOR_DARK_YELLOW COLOR_GRAY COLOR_GREEN COLOR_LIGHT_GRAY
syn keyword lscriptNotesConst COLOR_MAGENTA COLOR_RED COLOR_WHITE COLOR_YELLOW
syn keyword lscriptNotesConst DATABASE DATETIMES DB_REPLICATION_PRIORITY_HIGH
syn keyword lscriptNotesConst DB_REPLICATION_PRIORITY_LOW DB_REPLICATION_PRIORITY_MED
syn keyword lscriptNotesConst DB_REPLICATION_PRIORITY_NOTSET EFFECTS_EMBOSS
syn keyword lscriptNotesConst EFFECTS_EXTRUDE EFFECTS_NONE EFFECTS_SHADOW
syn keyword lscriptNotesConst EFFECTS_SUBSCRIPT EFFECTS_SUPERSCRIPT EMBED_ATTACHMENT
syn keyword lscriptNotesConst EMBED_OBJECT EMBED_OBJECTLINK EMBEDDEDOBJECT ERRORITEM
syn keyword lscriptNotesConst EV_ALARM EV_COMM EV_MAIL EV_MISC EV_REPLICA EV_RESOURCE
syn keyword lscriptNotesConst EV_SECURITY EV_SERVER EV_UNKNOWN EV_UPDATE FONT_COURIER
syn keyword lscriptNotesConst FONT_HELV FONT_ROMAN FORMULA FT_DATABASE FT_DATE_ASC
syn keyword lscriptNotesConst FT_DATE_DES FT_FILESYSTEM FT_FUZZY FT_SCORES FT_STEMS
syn keyword lscriptNotesConst FT_THESAURUS HTML ICON ID_CERTIFIER ID_FLAT
syn keyword lscriptNotesConst ID_HIERARCHICAL LSOBJECT MIME_PART NAMES NOTESLINKS
syn keyword lscriptNotesConst NOTEREFS NOTES_DESKTOP_CLIENT NOTES_FULL_CLIENT
syn keyword lscriptNotesConst NOTES_LIMITED_CLIENT NUMBERS OTHEROBJECT
syn keyword lscriptNotesConst OUTLINE_CLASS_DATABASE OUTLINE_CLASS_DOCUMENT
syn keyword lscriptNotesConst OUTLINE_CLASS_FOLDER OUTLINE_CLASS_FORM
syn keyword lscriptNotesConst OUTLINE_CLASS_FRAMESET OUTLINE_CLASS_NAVIGATOR
syn keyword lscriptNotesConst OUTLINE_CLASS_PAGE OUTLINE_CLASS_UNKNOWN
syn keyword lscriptNotesConst OUTLINE_CLASS_VIEW OUTLINE_OTHER_FOLDERS_TYPE
syn keyword lscriptNotesConst OUTLINE_OTHER_UNKNOWN_TYPE OUTLINE_OTHER_VIEWS_TYPE
syn keyword lscriptNotesConst OUTLINE_TYPE_ACTION OUTLINE_TYPE_NAMEDELEMENT
syn keyword lscriptNotesConst OUTLINE_TYPE_NOTELINK OUTLINE_TYPE_URL PAGINATE_BEFORE
syn keyword lscriptNotesConst PAGINATE_DEFAULT PAGINATE_KEEP_TOGETHER
syn keyword lscriptNotesConst PAGINATE_KEEP_WITH_NEXT PICKLIST_CUSTOM PICKLIST_NAMES
syn keyword lscriptNotesConst PICKLIST_RESOURCES PICKLIST_ROOMS PROMPT_OK PROMPT_OKCANCELCOMBO
syn keyword lscriptNotesConst PROMPT_OKCANCELEDIT PROMPT_OKCANCELEDITCOMBO PROMPT_OKCANCELLIST
syn keyword lscriptNotesConst PROMPT_OKCANCELLISTMULT PROMPT_PASSWORD PROMPT_YESNO
syn keyword lscriptNotesConst PROMPT_YESNOCANCEL QUERYCD READERS REPLICA_CANDIDATE
syn keyword lscriptNotesConst RICHTEXT RULER_ONE_CENTIMETER RULER_ONE_INCH SEV_FAILURE
syn keyword lscriptNotesConst SEV_FATAL SEV_NORMAL SEV_WARNING1 SEV_WARNING2
syn keyword lscriptNotesConst SIGNATURE SPACING_DOUBLE SPACING_ONE_POINT_50
syn keyword lscriptNotesConst SPACING_SINGLE STYLE_NO_CHANGE TAB_CENTER TAB_DECIMAL
syn keyword lscriptNotesConst TAB_LEFT TAB_RIGHT TARGET_ALL_DOCS TARGET_ALL_DOCS_IN_VIEW
syn keyword lscriptNotesConst TARGET_NEW_DOCS TARGET_NEW_OR_MODIFIED_DOCS TARGET_NONE
syn keyword lscriptNotesConst TARGET_RUN_ONCE TARGET_SELECTED_DOCS TARGET_UNREAD_DOCS_IN_VIEW
syn keyword lscriptNotesConst TEMPLATE TEMPLATE_CANDIDATE TEXT TRIGGER_AFTER_MAIL_DELIVERY
syn keyword lscriptNotesConst TRIGGER_BEFORE_MAIL_DELIVERY TRIGGER_DOC_PASTED
syn keyword lscriptNotesConst TRIGGER_DOC_UPDATE TRIGGER_MANUAL TRIGGER_NONE
syn keyword lscriptNotesConst TRIGGER_SCHEDULED UNAVAILABLE UNKNOWN USERDATA
syn keyword lscriptNotesConst USERID VC_ALIGN_CENTER VC_ALIGN_LEFT VC_ALIGN_RIGHT
syn keyword lscriptNotesConst VC_ATTR_PARENS VC_ATTR_PUNCTUATED VC_ATTR_PERCENT
syn keyword lscriptNotesConst VC_FMT_ALWAYS VC_FMT_CURRENCY VC_FMT_DATE VC_FMT_DATETIME
syn keyword lscriptNotesConst VC_FMT_FIXED VC_FMT_GENERAL VC_FMT_HM VC_FMT_HMS
syn keyword lscriptNotesConst VC_FMT_MD VC_FMT_NEVER VC_FMT_SCIENTIFIC
syn keyword lscriptNotesConst VC_FMT_SOMETIMES VC_FMT_TIME VC_FMT_TODAYTIME VC_FMT_YM
syn keyword lscriptNotesConst VC_FMT_YMD VC_FMT_Y4M VC_FONT_BOLD VC_FONT_ITALIC
syn keyword lscriptNotesConst VC_FONT_STRIKEOUT VC_FONT_UNDERLINE VC_SEP_COMMA
syn keyword lscriptNotesConst VC_SEP_NEWLINE VC_SEP_SEMICOLON VC_SEP_SPACE
syn keyword lscriptNotesConst VIEWMAPDATA VIEWMAPLAYOUT VW_SPACING_DOUBLE
syn keyword lscriptNotesConst VW_SPACING_ONE_POINT_25 VW_SPACING_ONE_POINT_50
syn keyword lscriptNotesConst VW_SPACING_ONE_POINT_75 VW_SPACING_SINGLE

syn keyword lscriptFunction Abs Asc Atn Atn2 ACos ASin
syn keyword lscriptFunction CCur CDat CDbl Chr Chr$ CInt CLng Command Command$
syn keyword lscriptFunction Cos CSng CStr
syn keyword lscriptFunction CurDir CurDir$ CVar Date Date$ DateNumber DateSerial DateValue
syn keyword lscriptFunction Day Dir Dir$ Environ$ Environ EOF Error Error$ Evaluate Exp
syn keyword lscriptFunction FileAttr FileDateTime FileLen Fix Format Format$ FreeFile
syn keyword lscriptFunction GetFileAttr GetThreadInfo Hex Hex$ Hour
syn keyword lscriptFunction IMESetMode IMEStatus Input Input$ InputB InputB$
syn keyword lscriptFunction InputBP InputBP$ InputBox InputBox$ InStr InStrB InStrBP InstrC
syn keyword lscriptFunction IsA IsArray IsDate IsElement IsList IsNumeric
syn keyword lscriptFunction IsObject IsResponse IsScalar IsUnknown LCase LCase$
syn keyword lscriptFunction Left Left$ LeftB LeftB$ LeftC
syn keyword lscriptFunction LeftBP LeftBP$ Len LenB LenBP LenC Loc LOF Log
syn keyword lscriptFunction LSet LTrim LTrim$ MessageBox Mid Mid$ MidB MidB$ MidC
syn keyword lscriptFunction Minute Month Now Oct Oct$ Responses Right Right$
syn keyword lscriptFunction RightB RightB$ RightBP RightBP$ RightC Round Rnd RSet RTrim RTrim$
syn keyword lscriptFunction Second Seek Sgn Shell Sin Sleep Space Space$ Spc Sqr Str Str$
syn keyword lscriptFunction StrConv StrLeft StrleftBack StrRight StrRightBack
syn keyword lscriptFunction StrCompare Tab Tan Time Time$ TimeNumber Timer
syn keyword lscriptFunction TimeValue Trim Trim$ Today TypeName UCase UCase$
syn keyword lscriptFunction UniversalID Val Weekday Year

syn keyword lscriptMethods AppendToTextList ArrayAppend ArrayReplace ArrayGetIndex
syn keyword lscriptMethods Append Bind Close
"syn keyword lscriptMethods Contains
syn keyword lscriptMethods CopyToDatabase CopyAllItems Count CurrentDatabase Delete Execute
syn keyword lscriptMethods GetAllDocumentsByKey GetDatabase GetDocumentByKey
syn keyword lscriptMethods GetDocumentByUNID GetFirstDocument GetFirstItem
syn keyword lscriptMethods GetItems GetItemValue GetNthDocument GetView
syn keyword lscriptMethods IsEmpty IsNull %Include Items
syn keyword lscriptMethods Line LBound LoadMsgText Open Print
syn keyword lscriptMethods RaiseEvent ReplaceItemValue Remove RemoveItem Responses
syn keyword lscriptMethods Save Stop UBound UnprocessedDocuments Write

syn keyword lscriptEvents Compare OnError

"*************************************************************************************
"These are Notes thingies that I'm not sure how to classify as they had no vb equivalent
" At a wild guess I'd put them as Functions...
" if anyone sees something really out of place... tell me!

syn keyword lscriptFunction Access Alias Any Bin Bin$ Binary ByVal
syn keyword lscriptFunction CodeLock CodeLockCheck CodeUnlock CreateLock
syn keyword lscriptFunction CurDrive CurDrive$ DataType DestroyLock Eqv
syn keyword lscriptFunction Erl Err Fraction From FromFunction FullTrim
syn keyword lscriptFunction Imp Int Lib Like ListTag LMBCS LSServer Me
syn keyword lscriptFunction Mod MsgDescription MsgText Output Published
syn keyword lscriptFunction Random Read Shared Step UChr UChr$ Uni Unicode
syn keyword lscriptFunction Until Use UseLSX UString UString$ Width Yield


syn keyword lscriptTodo contained	TODO

"integer number, or floating point number without a dot.
syn match  lscriptNumber		"\<\d\+\>"
"floating point number, with dot
syn match  lscriptNumber		"\<\d\+\.\d*\>"
"floating point number, starting with a dot
syn match  lscriptNumber		"\.\d\+\>"

" String and Character constants
syn region  lscriptString		start=+"+  end=+"+
syn region  lscriptComment		start="REM" end="$" contains=lscriptTodo
syn region  lscriptComment		start="'"   end="$" contains=lscriptTodo
syn region  lscriptLineNumber	start="^\d" end="\s"
syn match   lscriptTypeSpecifier	"[a-zA-Z0-9][\$%&!#]"ms=s+1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi lscriptNotesType	term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold

hi def link lscriptNotesConst	lscriptNotesType
hi def link lscriptLineNumber	Comment
hi def link lscriptDatatype	Type
hi def link lscriptNumber		Number
hi def link lscriptError		Error
hi def link lscriptStatement	Statement
hi def link lscriptString		String
hi def link lscriptComment		Comment
hi def link lscriptTodo		Todo
hi def link lscriptFunction	Identifier
hi def link lscriptMethods		PreProc
hi def link lscriptEvents		Special
hi def link lscriptTypeSpecifier	Type


let b:current_syntax = "lscript"

" vim: ts=8
PK�j�Z��@��vim80/syntax/plm.vimnu�[���" Vim syntax file
" Language:	PL/M
" Maintainer:	Philippe Coulonges <cphil@cphil.net>
" Last change:	2003 May 11

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" PL/M is a case insensitive language
syn case ignore

syn keyword plmTodo contained	TODO FIXME XXX

" String
syn region  plmString		start=+'+  end=+'+

syn match   plmOperator		"[@=\+\-\*\/\<\>]"

syn match   plmIdentifier	"\<[a-zA-Z_][a-zA-Z0-9_]*\>"

syn match   plmDelimiter	"[();,]"

syn region  plmPreProc		start="^\s*\$\s*" skip="\\$" end="$"

" FIXME : No Number support for floats, as I'm working on an embedded
" project that doesn't use any.
syn match   plmNumber		"-\=\<\d\+\>"
syn match   plmNumber		"\<[0-9a-fA-F]*[hH]*\>"

" If you don't like tabs
"syn match plmShowTab "\t"
"syn match plmShowTabc "\t"

"when wanted, highlight trailing white space
if exists("c_space_errors")
  syn match	plmSpaceError	"\s*$"
  syn match	plmSpaceError	" \+\t"me=e-1
endif

"
  " Use the same control variable as C language for I believe
  " users will want the same behavior
if exists("c_comment_strings")
  " FIXME : don't work fine with c_comment_strings set,
  "	    which I don't care as I don't use

  " A comment can contain plmString, plmCharacter and plmNumber.
  " But a "*/" inside a plmString in a plmComment DOES end the comment!  So we
  " need to use a special type of plmString: plmCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  syntax match	plmCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region plmCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=plmSpecial,plmCommentSkip
  syntax region plmComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=plmSpecial
  syntax region plmComment	start="/\*" end="\*/" contains=plmTodo,plmCommentString,plmCharacter,plmNumber,plmFloat,plmSpaceError
  syntax match  plmComment	"//.*" contains=plmTodo,plmComment2String,plmCharacter,plmNumber,plmSpaceError
else
  syn region	plmComment	start="/\*" end="\*/" contains=plmTodo,plmSpaceError
  syn match	plmComment	"//.*" contains=plmTodo,plmSpaceError
endif

syntax match	plmCommentError	"\*/"

syn keyword plmReserved	ADDRESS AND AT BASED BY BYTE CALL CASE
syn keyword plmReserved DATA DECLARE DISABLE DO DWORD
syn keyword plmReserved	ELSE ENABLE END EOF EXTERNAL
syn keyword plmReserved GO GOTO HALT IF INITIAL INTEGER INTERRUPT
syn keyword plmReserved LABEL LITERALLY MINUS MOD NOT OR
syn keyword plmReserved PLUS POINTER PROCEDURE PUBLIC
syn keyword plmReserved REAL REENTRANT RETURN SELECTOR STRUCTURE
syn keyword plmReserved THEN TO WHILE WORD XOR
syn keyword plm386Reserved CHARINT HWORD LONGINT OFFSET QWORD SHORTINT

syn keyword plmBuiltIn ABS ADJUSTRPL BLOCKINPUT BLOCKINWORD BLOCKOUTPUT
syn keyword plmBuiltIn BLOCKOUTWORD BUILPTR CARRY CAUSEINTERRUPT CMPB
syn keyword plmBuiltIn CMPW DEC DOUBLE FINDB FINDRB FINDRW FINDW FIX
syn keyword plmBuiltIn FLAGS FLOAT GETREALERROR HIGH IABS INITREALMATHUNIT
syn keyword plmBuiltIn INPUT INT INWORD LAST LOCKSET LENGTH LOW MOVB MOVE
syn keyword plmBuiltIn MOVRB MOVRW MOVW NIL OUTPUT OUTWORD RESTOREREALSTATUS
syn keyword plmBuiltIn ROL ROR SAL SAVEREALSTATUS SCL SCR SELECTOROF SETB
syn keyword plmBuiltIn SETREALMODE SETW SHL SHR SIGN SIGNED SIZE SKIPB
syn keyword plmBuiltIn SKIPRB SKIPRW SKIPW STACKBASE STACKPTR TIME SIZE
syn keyword plmBuiltIn UNSIGN XLAT ZERO
syn keyword plm386BuiltIn INTERRUPT SETINTERRUPT
syn keyword plm286BuiltIn CLEARTASKSWITCHEDFLAG GETACCESSRIGHTS
syn keyword plm286BuiltIn GETSEGMENTLIMIT LOCALTABLE MACHINESTATUS
syn keyword plm286BuiltIn OFFSETOF PARITY RESTOREGLOBALTABLE
syn keyword plm286BuiltIn RESTOREINTERRUPTTABLE SAVEGLOBALTABLE
syn keyword plm286BuiltIn SAVEINTERRUPTTABLE SEGMENTREADABLE
syn keyword plm286BuiltIn SEGMENTWRITABLE TASKREGISTER WAITFORINTERRUPT
syn keyword plm386BuiltIn CONTROLREGISTER DEBUGREGISTER FINDHW
syn keyword plm386BuiltIn FINDRHW INHWORD MOVBIT MOVRBIT MOVHW MOVRHW
syn keyword plm386BuiltIn OUTHWORD SCANBIT SCANRBIT SETHW SHLD SHRD
syn keyword plm386BuiltIn SKIPHW SKIPRHW TESTREGISTER
syn keyword plm386w16BuiltIn BLOCKINDWORD BLOCKOUTDWORD CMPD FINDD
syn keyword plm386w16BuiltIn FINDRD INDWORD MOVD MOVRD OUTDWORD
syn keyword plm386w16BuiltIn SETD SKIPD SKIPRD

syn sync lines=50

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
"  hi def link plmLabel			Label
"  hi def link plmConditional		Conditional
"  hi def link plmRepeat			Repeat
hi def link plmTodo			Todo
hi def link plmNumber			Number
hi def link plmOperator			Operator
hi def link plmDelimiter			Operator
"hi def link plmShowTab			Error
"hi def link plmShowTabc			Error
hi def link plmIdentifier			Identifier
hi def link plmBuiltIn			Statement
hi def link plm286BuiltIn			Statement
hi def link plm386BuiltIn			Statement
hi def link plm386w16BuiltIn		Statement
hi def link plmReserved			Statement
hi def link plm386Reserved			Statement
hi def link plmPreProc			PreProc
hi def link plmCommentError		plmError
hi def link plmCommentString		plmString
hi def link plmComment2String		plmString
hi def link plmCommentSkip			plmComment
hi def link plmString			String
hi def link plmComment			Comment


let b:current_syntax = "plm"

" vim: ts=8 sw=2

PK�j�Z�dk4ICICvim80/syntax/masm.vimnu�[���" Vim syntax file
" Language:	Microsoft Macro Assembler (80x86)
" Orig Author:	Rob Brady <robb@datatone.com>
" Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
" Last Change:	$Date: 2013/11/13 11:49:24 $
" $Revision: 1.48 $

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore


syn match masmIdentifier	"[@a-z_$?][@a-z0-9_$?]*"
syn match masmLabel		"^\s*[@a-z_$?][@a-z0-9_$?]*:"he=e-1

syn match masmDecimal		"[-+]\?\d\+[dt]\?"
syn match masmBinary		"[-+]\?[0-1]\+[by]"  "put this before hex or 0bfh dies!
syn match masmOctal		"[-+]\?[0-7]\+[oq]"
syn match masmHexadecimal	"[-+]\?[0-9]\x*h"
syn match masmFloatRaw		"[-+]\?[0-9]\x*r"
syn match masmFloat		"[-+]\?\d\+\.\(\d*\(E[-+]\?\d\+\)\?\)\?"

syn match masmComment		";.*" contains=@Spell
syn region masmComment		start=+COMMENT\s*\z(\S\)+ end=+\z1.*+ contains=@Spell
syn region masmString		start=+'+ end=+'+ oneline contains=@Spell
syn region masmString		start=+"+ end=+"+ oneline contains=@Spell

syn region masmTitleArea	start=+\<TITLE\s+lc=5 start=+\<SUBTITLE\s+lc=8 start=+\<SUBTTL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmTitle
syn region masmTextArea		start=+\<NAME\s+lc=4 start=+\<INCLUDE\s+lc=7 start=+\<INCLUDELIB\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmText
syn match masmTitle		"[^\t ;]\([^;]*[^\t ;]\)\?" contained contains=@Spell
syn match masmText		"[^\t ;]\([^;]*[^\t ;]\)\?" contained

syn region masmOptionOpt	start=+\<OPTION\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption
syn region masmContextOpt	start=+\<PUSHCONTEXT\s+lc=11 start=+\<POPCONTEXT\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmOption
syn region masmModelOpt		start=+\.MODEL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmType
syn region masmSegmentOpt	start=+\<SEGMENT\s+lc=7 end=+$+ end=+;+me=e-1 contains=masmOption,masmString
syn region masmProcOpt		start=+\<PROC\s+lc=4 end=+$+ end=+;+me=e-1 contains=masmOption,masmType,masmRegister,masmIdentifier
syn region masmAssumeOpt	start=+\<ASSUME\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmOperator,masmType,masmRegister,masmIdentifier
syn region masmExpression	start=+\.IF\s+lc=3 start=+\.WHILE\s+lc=6 start=+\.UNTIL\s+lc=6 start=+\<IF\s+lc=2 start=+\<IF2\s+lc=3 start=+\<ELSEIF\s+lc=6 start=+\<ELSEIF2\s+lc=7 start=+\<REPEAT\s+lc=6 start=+\<WHILE\s+lc=5 end=+$+ end=+;+me=e-1 contains=masmType,masmOperator,masmRegister,masmIdentifier,masmDecimal,masmBinary,masmHexadecimal,masmFloatRaw,masmString

syn keyword masmOption		TINY SMALL COMPACT MEDIUM LARGE HUGE contained
syn keyword masmOption		NEARSTACK FARSTACK contained
syn keyword masmOption		PUBLIC PRIVATE STACK COMMON MEMORY AT contained
syn keyword masmOption		BYTE WORD DWORD PARA PAGE contained
syn keyword masmOption		USE16 USE32 FLAT contained
syn keyword masmOption		INFO READ WRITE EXECUTE SHARED contained
syn keyword masmOption		NOPAGE NOCACHE DISCARD contained
syn keyword masmOption		READONLY USES FRAME contained
syn keyword masmOption		CASEMAP DOTNAME NODOTNAME EMULATOR contained
syn keyword masmOption		NOEMULATOR EPILOGUE EXPR16 EXPR32 contained
syn keyword masmOption		LANGUAGE LJMP NOLJMP M510 NOM510 contained
syn keyword masmOption		NOKEYWORD NOSIGNEXTEND OFFSET contained
syn keyword masmOption		OLDMACROS NOOLDMACROS OLDSTRUCTS contained
syn keyword masmOption		NOOLDSTRUCTS PROC PROLOGUE READONLY contained
syn keyword masmOption		NOREADONLY SCOPED NOSCOPED SEGMENT contained
syn keyword masmOption		SETIF2 contained
syn keyword masmOption		ABS ALL ASSUMES CPU ERROR EXPORT contained
syn keyword masmOption		FORCEFRAME LISTING LOADDS NONE contained
syn keyword masmOption		NONUNIQUE NOTHING OS_DOS RADIX REQ contained
syn keyword masmType		STDCALL SYSCALL C BASIC FORTRAN PASCAL
syn keyword masmType		PTR NEAR FAR NEAR16 FAR16 NEAR32 FAR32
syn keyword masmType		REAL4 REAL8 REAL10 BYTE SBYTE TBYTE
syn keyword masmType		WORD DWORD QWORD FWORD SWORD SDWORD
syn keyword masmOperator	AND NOT OR SHL SHR XOR MOD DUP
syn keyword masmOperator	EQ GE GT LE LT NE
syn keyword masmOperator	LROFFSET SEG LENGTH LENGTHOF SIZE SIZEOF
syn keyword masmOperator	CODEPTR DATAPTR FAR NEAR SHORT THIS TYPE
syn keyword masmOperator	HIGH HIGHWORD LOW LOWWORD OPATTR MASK WIDTH
syn match   masmOperator	"OFFSET\(\sFLAT:\)\?"
syn match   masmOperator	".TYPE\>"
syn match   masmOperator	"CARRY?"
syn match   masmOperator	"OVERFLOW?"
syn match   masmOperator	"PARITY?"
syn match   masmOperator	"SIGN?"
syn match   masmOperator	"ZERO?"
syn keyword masmDirective	ALIAS ASSUME CATSTR COMM DB DD DF DOSSEG DQ DT
syn keyword masmDirective	DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB
syn keyword masmDirective	ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE
syn keyword masmDirective	ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END
syn keyword masmDirective	ENDIF ENDM ENDP ENDS EQU EVEN EXITM EXTERN
syn keyword masmDirective	EXTERNDEF EXTRN FOR FORC GOTO GROUP IF IF1 IF2
syn keyword masmDirective	IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB
syn keyword masmDirective	IFNDEF INCLUDE INCLUDELIB INSTR INVOKE IRP
syn keyword masmDirective	IRPC LABEL LOCAL MACRO NAME OPTION ORG PAGE
syn keyword masmDirective	POPCONTEXT PROC PROTO PUBLIC PURGE PUSHCONTEXT
syn keyword masmDirective	RECORD REPEAT REPT SEGMENT SIZESTR STRUC
syn keyword masmDirective	STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU TITLE
syn keyword masmDirective	TYPEDEF UNION WHILE
syn match   masmDirective	"\.8086\>"
syn match   masmDirective	"\.8087\>"
syn match   masmDirective	"\.NO87\>"
syn match   masmDirective	"\.186\>"
syn match   masmDirective	"\.286\>"
syn match   masmDirective	"\.286C\>"
syn match   masmDirective	"\.286P\>"
syn match   masmDirective	"\.287\>"
syn match   masmDirective	"\.386\>"
syn match   masmDirective	"\.386C\>"
syn match   masmDirective	"\.386P\>"
syn match   masmDirective	"\.387\>"
syn match   masmDirective	"\.486\>"
syn match   masmDirective	"\.486P\>"
syn match   masmDirective	"\.586\>"
syn match   masmDirective	"\.586P\>"
syn match   masmDirective	"\.686\>"
syn match   masmDirective	"\.686P\>"
syn match   masmDirective	"\.K3D\>"
syn match   masmDirective	"\.MMX\>"
syn match   masmDirective	"\.XMM\>"
syn match   masmDirective	"\.ALPHA\>"
syn match   masmDirective	"\.DOSSEG\>"
syn match   masmDirective	"\.SEQ\>"
syn match   masmDirective	"\.CODE\>"
syn match   masmDirective	"\.CONST\>"
syn match   masmDirective	"\.DATA\>"
syn match   masmDirective	"\.DATA?"
syn match   masmDirective	"\.EXIT\>"
syn match   masmDirective	"\.FARDATA\>"
syn match   masmDirective	"\.FARDATA?"
syn match   masmDirective	"\.MODEL\>"
syn match   masmDirective	"\.STACK\>"
syn match   masmDirective	"\.STARTUP\>"
syn match   masmDirective	"\.IF\>"
syn match   masmDirective	"\.ELSE\>"
syn match   masmDirective	"\.ELSEIF\>"
syn match   masmDirective	"\.ENDIF\>"
syn match   masmDirective	"\.REPEAT\>"
syn match   masmDirective	"\.UNTIL\>"
syn match   masmDirective	"\.UNTILCXZ\>"
syn match   masmDirective	"\.WHILE\>"
syn match   masmDirective	"\.ENDW\>"
syn match   masmDirective	"\.BREAK\>"
syn match   masmDirective	"\.CONTINUE\>"
syn match   masmDirective	"\.ERR\>"
syn match   masmDirective	"\.ERR1\>"
syn match   masmDirective	"\.ERR2\>"
syn match   masmDirective	"\.ERRB\>"
syn match   masmDirective	"\.ERRDEF\>"
syn match   masmDirective	"\.ERRDIF\>"
syn match   masmDirective	"\.ERRDIFI\>"
syn match   masmDirective	"\.ERRE\>"
syn match   masmDirective	"\.ERRIDN\>"
syn match   masmDirective	"\.ERRIDNI\>"
syn match   masmDirective	"\.ERRNB\>"
syn match   masmDirective	"\.ERRNDEF\>"
syn match   masmDirective	"\.ERRNZ\>"
syn match   masmDirective	"\.LALL\>"
syn match   masmDirective	"\.SALL\>"
syn match   masmDirective	"\.XALL\>"
syn match   masmDirective	"\.LFCOND\>"
syn match   masmDirective	"\.SFCOND\>"
syn match   masmDirective	"\.TFCOND\>"
syn match   masmDirective	"\.CREF\>"
syn match   masmDirective	"\.NOCREF\>"
syn match   masmDirective	"\.XCREF\>"
syn match   masmDirective	"\.LIST\>"
syn match   masmDirective	"\.NOLIST\>"
syn match   masmDirective	"\.XLIST\>"
syn match   masmDirective	"\.LISTALL\>"
syn match   masmDirective	"\.LISTIF\>"
syn match   masmDirective	"\.NOLISTIF\>"
syn match   masmDirective	"\.LISTMACRO\>"
syn match   masmDirective	"\.NOLISTMACRO\>"
syn match   masmDirective	"\.LISTMACROALL\>"
syn match   masmDirective	"\.FPO\>"
syn match   masmDirective	"\.RADIX\>"
syn match   masmDirective	"\.SAFESEH\>"
syn match   masmDirective	"%OUT\>"
syn match   masmDirective	"ALIGN\>"
syn match   masmOption		"ALIGN([0-9]\+)"

syn keyword masmRegister	AX BX CX DX SI DI BP SP
syn keyword masmRegister	CS DS SS ES FS GS
syn keyword masmRegister	AH BH CH DH AL BL CL DL
syn keyword masmRegister	EAX EBX ECX EDX ESI EDI EBP ESP
syn keyword masmRegister	CR0 CR2 CR3 CR4
syn keyword masmRegister	DR0 DR1 DR2 DR3 DR6 DR7
syn keyword masmRegister	TR3 TR4 TR5 TR6 TR7
syn match   masmRegister	"ST([0-7])"

" x86-64 registers
syn keyword masmRegister	RAX RBX RCX RDX RSI RDI RBP RSP
syn keyword masmRegister	R8 R9 R10 R11 R12 R13 R14 R15
syn keyword masmRegister	R8D R9D R10D R11D R12D R13D R14D R15D
syn keyword masmRegister	R8W R9W R10W R11W R12W R13W R14W R15W
syn keyword masmRegister	R8B R9B R10B R11B R12B R13B R14B R15B

" SSE/AVX registers
syn match   masmRegister	"\(X\|Y\)MM[0-9]\>"
syn match   masmRegister	"\(X\|Y\)MM1[0-5]\>"

" Instruction prefixes
syn keyword masmOpcode		LOCK REP REPE REPNE REPNZ REPZ

" 8086/8088 opcodes
syn keyword masmOpcode		AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD
syn keyword masmOpcode		CLI CMC CMP CMPS CMPSB CMPSW CWD DAA DAS DEC
syn keyword masmOpcode		DIV ESC HLT IDIV IMUL IN INC INT INTO IRET
syn keyword masmOpcode		JCXZ JMP LAHF LDS LEA LES LODS LODSB LODSW
syn keyword masmOpcode		LOOP LOOPE LOOPEW LOOPNE LOOPNEW LOOPNZ
syn keyword masmOpcode		LOOPNZW LOOPW LOOPZ LOOPZW MOV MOVS MOVSB
syn keyword masmOpcode		MOVSW MUL NEG NOP NOT OR OUT POP POPF PUSH
syn keyword masmOpcode		PUSHF RCL RCR RET RETF RETN ROL ROR SAHF SAL
syn keyword masmOpcode		SAR SBB SCAS SCASB SCASW SHL SHR STC STD STI
syn keyword masmOpcode		STOS STOSB STOSW SUB TEST WAIT XCHG XLAT XLATB
syn keyword masmOpcode		XOR
syn match   masmOpcode	      "J\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"

" 80186 opcodes
syn keyword masmOpcode		BOUND ENTER INS INSB INSW LEAVE OUTS OUTSB
syn keyword masmOpcode		OUTSW POPA PUSHA PUSHW

" 80286 opcodes
syn keyword masmOpcode		ARPL LAR LSL SGDT SIDT SLDT SMSW STR VERR VERW

" 80286/80386 privileged opcodes
syn keyword masmOpcode		CLTS LGDT LIDT LLDT LMSW LTR

" 80386 opcodes
syn keyword masmOpcode		BSF BSR BT BTC BTR BTS CDQ CMPSD CWDE INSD
syn keyword masmOpcode		IRETD IRETDF IRETF JECXZ LFS LGS LODSD LOOPD
syn keyword masmOpcode		LOOPED LOOPNED LOOPNZD LOOPZD LSS MOVSD MOVSX
syn keyword masmOpcode		MOVZX OUTSD POPAD POPFD PUSHAD PUSHD PUSHFD
syn keyword masmOpcode		SCASD SHLD SHRD STOSD
syn match   masmOpcode	    "SET\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"

" 80486 opcodes
syn keyword masmOpcode		BSWAP CMPXCHG INVD INVLPG WBINVD XADD

" Floating-point opcodes as of 487
syn keyword masmOpFloat		F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX
syn keyword masmOpFloat		FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI
syn keyword masmOpFloat		FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI
syn keyword masmOpFloat		FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD
syn keyword masmOpFloat		FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB
syn keyword masmOpFloat		FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E
syn keyword masmOpFloat		FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN
syn keyword masmOpFloat		FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FNSAVE
syn keyword masmOpFloat		FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW
syn keyword masmOpFloat		FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW FSUB
syn keyword masmOpFloat		FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP
syn keyword masmOpFloat		FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1

" Floating-point opcodes in Pentium and later processors
syn keyword masmOpFloat		FCMOVE FCMOVNE FCMOVB FCMOVBE FCMOVNB FCMOVNBE
syn keyword masmOpFloat		FCMOVU FCMOVNU FCOMI FUCOMI FCOMIP FUCOMIP
syn keyword masmOpFloat		FXSAVE FXRSTOR

" MMX opcodes (Pentium w/ MMX, Pentium II, and later)
syn keyword masmOpcode		MOVD MOVQ PACKSSWB PACKSSDW PACKUSWB
syn keyword masmOpcode		PUNPCKHBW PUNPCKHWD PUNPCKHDQ
syn keyword masmOpcode		PUNPCKLBW PUNPCKLWD PUNPCKLDQ
syn keyword masmOpcode		PADDB PADDW PADDD PADDSB PADDSW PADDUSB PADDUSW
syn keyword masmOpcode		PSUBB PSUBW PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW
syn keyword masmOpcode		PMULHW PMULLW PMADDWD
syn keyword masmOpcode		PCMPEQB PCMPEQW PCMPEQD PCMPGTB PCMPGTW PCMPGTD
syn keyword masmOpcode		PAND PANDN POR PXOR
syn keyword masmOpcode		PSLLW PSLLD PSLLQ PSRLW PSRLD PSRLQ PSRAW PSRAD
syn keyword masmOpcode		EMMS

" SSE opcodes (Pentium III and later)
syn keyword masmOpcode		MOVAPS MOVUPS MOVHPS MOVHLPS MOVLPS MOVLHPS
syn keyword masmOpcode		MOVMSKPS MOVSS
syn keyword masmOpcode		ADDPS ADDSS SUBPS SUBSS MULPS MULSS DIVPS DIVSS
syn keyword masmOpcode		RCPPS RCPSS SQRTPS SQRTSS RSQRTPS RSQRTSS
syn keyword masmOpcode		MAXPS MAXSS MINPS MINSS
syn keyword masmOpcode		CMPPS CMPSS COMISS UCOMISS
syn keyword masmOpcode		ANDPS ANDNPS ORPS XORPS
syn keyword masmOpcode		SHUFPS UNPCKHPS UNPCKLPS
syn keyword masmOpcode		CVTPI2PS CVTSI2SS CVTPS2PI CVTTPS2PI
syn keyword masmOpcode		CVTSS2SI CVTTSS2SI
syn keyword masmOpcode		LDMXCSR STMXCSR
syn keyword masmOpcode		PAVGB PAVGW PEXTRW PINSRW PMAXUB PMAXSW
syn keyword masmOpcode		PMINUB PMINSW PMOVMSKB PMULHUW PSADBW PSHUFW
syn keyword masmOpcode		MASKMOVQ MOVNTQ MOVNTPS SFENCE
syn keyword masmOpcode		PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA

" SSE2 opcodes (Pentium 4 and later)
syn keyword masmOpcode		MOVAPD MOVUPD MOVHPD MOVLPD MOVMSKPD MOVSD
syn keyword masmOpcode		ADDPD ADDSD SUBPD SUBSD MULPD MULSD DIVPD DIVSD
syn keyword masmOpcode		SQRTPD SQRTSD MAXPD MAXSD MINPD MINSD
syn keyword masmOpcode		ANDPD ANDNPD ORPD XORPD
syn keyword masmOpcode		CMPPD CMPSD COMISD UCOMISD
syn keyword masmOpcode		SHUFPD UNPCKHPD UNPCKLPD
syn keyword masmOpcode		CVTPD2PI CVTTPD2PI CVTPI2PD CVTPD2DQ
syn keyword masmOpcode		CVTTPD2DQ CVTDQ2PD CVTPS2PD CVTPD2PS
syn keyword masmOpcode		CVTSS2SD CVTSD2SS CVTSD2SI CVTTSD2SI CVTSI2SD
syn keyword masmOpcode		CVTDQ2PS CVTPS2DQ CVTTPS2DQ
syn keyword masmOpcode		MOVDQA MOVDQU MOVQ2DQ MOVDQ2Q PMULUDQ
syn keyword masmOpcode		PADDQ PSUBQ PSHUFLW PSHUFHW PSHUFD
syn keyword masmOpcode		PSLLDQ PSRLDQ PUNPCKHQDQ PUNPCKLQDQ
syn keyword masmOpcode		CLFLUSH LFENCE MFENCE PAUSE MASKMOVDQU
syn keyword masmOpcode		MOVNTPD MOVNTDQ MOVNTI

" SSE3 opcodes (Pentium 4 w/ Hyper-Threading and later)
syn keyword masmOpcode		FISTTP LDDQU ADDSUBPS ADDSUBPD
syn keyword masmOpcode		HADDPS HSUBPS HADDPD HSUBPD
syn keyword masmOpcode		MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT

" SSSE3 opcodes (Core and later)
syn keyword masmOpcode		PSIGNB PSIGNW PSIGND PABSB PABSW PABSD
syn keyword masmOpcode		PALIGNR PSHUFB PMULHRSW PMADDUBSW
syn keyword masmOpcode		PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW

" SSE 4.1 opcodes (Penryn and later)
syn keyword masmOpcode		MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD
syn keyword masmOpcode		BLENDPS BLENDPD BLENDVPS BLENDVPD
syn keyword masmOpcode		PBLENDVB PBLENDW
syn keyword masmOpcode		PMINSB PMAXSB PMINSD PMAXSD
syn keyword masmOpcode		PMINUW PMAXUW PMINUD PMAXUD
syn keyword masmOpcode		ROUNDPS ROUNDSS ROUNDPD ROUNDSD
syn keyword masmOpcode		INSERTPS PINSRB PINSRD PINSRQ
syn keyword masmOpcode		EXTRACTPS PEXTRB PEXTRD PEXTRQ
syn keyword masmOpcode		PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD
syn keyword masmOpcode		PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD
syn keyword masmOpcode		PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ
syn keyword masmOpcode		PTEST PCMPEQQ PACKUSDW MOVNTDQA

" SSE 4.2 opcodes (Nehalem and later)
syn keyword masmOpcode		PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ
syn keyword masmOpcode		CRC32 POPCNT LZCNT

" AES-NI (Westmere (2010) and later)
syn keyword masmOpcode		AESENC AESENCLAST AESDEC AESDECLAST
syn keyword masmOpcode		AESKEYGENASSIST AESIMC PCLMULQDQ

" AVX (Sandy Bridge (2011) and later)
syn keyword masmOpcode		VBROADCASTSS VBROADCASTSD VBROADCASTF128
syn keyword masmOpcode		VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD
syn keyword masmOpcode		VPERMILPS VPERMILPD VPERM2F128
syn keyword masmOpcode		VZEROALL VZEROUPPER

" Other opcodes in Pentium and later processors
syn keyword masmOpcode		CMPXCHG8B CPUID UD2
syn keyword masmOpcode		RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT
syn match   masmOpcode	   "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"


" The default highlighting
hi def link masmLabel		PreProc
hi def link masmComment		Comment
hi def link masmDirective	Statement
hi def link masmType		Type
hi def link masmOperator	Type
hi def link masmOption		Special
hi def link masmRegister	Special
hi def link masmString		String
hi def link masmText		String
hi def link masmTitle		Title
hi def link masmOpcode		Statement
hi def link masmOpFloat		Statement

hi def link masmHexadecimal	Number
hi def link masmDecimal		Number
hi def link masmOctal		Number
hi def link masmBinary		Number
hi def link masmFloatRaw	Number
hi def link masmFloat		Number

hi def link masmIdentifier	Identifier

syntax sync minlines=50

let b:current_syntax = "masm"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z�;i�uuvim80/syntax/proto.vimnu�[���" syntax file for Protocol Buffers - Google's data interchange format
"
" Copyright 2008 Google Inc.  All rights reserved.
"
" Permission is hereby granted, free of charge, to any person obtaining a copy
" of this software and associated documentation files (the "Software"), to deal
" in the Software without restriction, including without limitation the rights
" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
" copies of the Software, and to permit persons to whom the Software is
" furnished to do so, subject to the following conditions:
"
" The above copyright notice and this permission notice shall be included in
" all copies or substantial portions of the Software.
"
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
" THE SOFTWARE.
"
" http://code.google.com/p/protobuf/

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match

syn keyword protoTodo       contained TODO FIXME XXX
syn cluster protoCommentGrp contains=protoTodo

syn keyword protoSyntax     syntax import option
syn keyword protoStructure  package message group
syn keyword protoRepeat     optional required repeated
syn keyword protoDefault    default
syn keyword protoExtend     extend extensions to max
syn keyword protoRPC        service rpc returns

syn keyword protoType      int32 int64 uint32 uint64 sint32 sint64
syn keyword protoType      fixed32 fixed64 sfixed32 sfixed64
syn keyword protoType      float double bool string bytes
syn keyword protoTypedef   enum
syn keyword protoBool      true false

syn match   protoInt     /-\?\<\d\+\>/
syn match   protoInt     /\<0[xX]\x+\>/
syn match   protoFloat   /\<-\?\d*\(\.\d*\)\?/
syn region  protoComment start="\/\*" end="\*\/" contains=@protoCommentGrp
syn region  protoComment start="//" skip="\\$" end="$" keepend contains=@protoCommentGrp
syn region  protoString  start=/"/ skip=/\\./ end=/"/
syn region  protoString  start=/'/ skip=/\\./ end=/'/

hi def link protoTodo         Todo

hi def link protoSyntax       Include
hi def link protoStructure    Structure
hi def link protoRepeat       Repeat
hi def link protoDefault      Keyword
hi def link protoExtend       Keyword
hi def link protoRPC          Keyword
hi def link protoType         Type
hi def link protoTypedef      Typedef
hi def link protoBool         Boolean

hi def link protoInt          Number
hi def link protoFloat        Float
hi def link protoComment      Comment
hi def link protoString       String

let b:current_syntax = "proto"
PK�j�Z��C

vim80/syntax/registry.vimnu�[���" Vim syntax file
" Language:	Windows Registry export with regedit (*.reg)
" Maintainer:	Dominique Stéphan (dominique@mggen.com)
" URL: 		http://www.mggen.com/vim/syntax/registry.zip (doesn't work)
" Last change:	2014 Oct 31
"		Included patch from Alexander A. Ulitin

" clear any unwanted syntax defs
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" shut case off
syn case ignore

" Head of regedit .reg files, it's REGEDIT4 on Win9#/NT
syn match registryHead		"^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$"

" Comment
syn match  registryComment	"^;.*$"

" Registry Key constant
syn keyword registryHKEY	HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_USER
syn keyword registryHKEY	HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA
" Registry Key shortcuts
syn keyword registryHKEY	HKLM HKCR HKCU HKU HKCC HKDD

" Some values often found in the registry
" GUID (Global Unique IDentifier)
syn match   registryGUID	"{[0-9A-Fa-f]\{8}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{12}}" contains=registrySpecial

" Disk
" syn match   registryDisk	"[a-zA-Z]:\\\\"

" Special and Separator characters
syn match   registrySpecial	"\\"
syn match   registrySpecial	"\\\\"
syn match   registrySpecial	"\\\""
syn match   registrySpecial	"\."
syn match   registrySpecial	","
syn match   registrySpecial	"\/"
syn match   registrySpecial	":"
syn match   registrySpecial	"-"

" String
syn match   registryString	"\".*\"" contains=registryGUID,registrySpecial

" Path
syn region  registryPath		start="\[" end="\]" contains=registryHKEY,registryGUID,registrySpecial

" Path to remove
" like preceding path but with a "-" at begin
syn region registryRemove	start="\[\-" end="\]" contains=registryHKEY,registryGUID,registrySpecial

" Subkey
syn match  registrySubKey		"^\".*\"="
" Default value
syn match  registrySubKey		"^@="

" Numbers

" Hex or Binary
" The format can be precised between () :
" 0    REG_NONE
" 1    REG_SZ
" 2    REG_EXPAND_SZ
" 3    REG_BINARY
" 4    REG_DWORD, REG_DWORD_LITTLE_ENDIAN
" 5    REG_DWORD_BIG_ENDIAN
" 6    REG_LINK
" 7    REG_MULTI_SZ
" 8    REG_RESOURCE_LIST
" 9    REG_FULL_RESOURCE_DESCRIPTOR
" 10   REG_RESOURCE_REQUIREMENTS_LIST
" The value can take several lines, if \ ends the line
" The limit to 999 matches is arbitrary, it avoids Vim crashing on a very long
" line of hex values that ends in a comma.
"syn match registryHex		"hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
syn match registryHex		"hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)*\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
syn match registryHex		"^\s*\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
" Dword (32 bits)
syn match registryDword		"dword:[0-9a-fA-F]\{8}$" contains=registrySpecial


" The default methods for highlighting.  Can be overridden later
hi def link registryComment	Comment
hi def link registryHead		Constant
hi def link registryHKEY		Constant
hi def link registryPath		Special
hi def link registryRemove	PreProc
hi def link registryGUID		Identifier
hi def link registrySpecial	Special
hi def link registrySubKey	Type
hi def link registryString	String
hi def link registryHex		Number
hi def link registryDword		Number



let b:current_syntax = "registry"

" vim:ts=8
PK�j�Z�F�<::vim80/syntax/webmacro.vimnu�[���" WebMacro syntax file
" Language:     WebMacro
" Maintainer:   Claudio Fleiner <claudio@fleiner.com>
" URL:		http://www.fleiner.com/vim/syntax/webmacro.vim
" Last Change:  2003 May 11

" webmacro is a nice little language that you should
" check out if you use java servlets.
" webmacro: http://www.webmacro.org

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if !exists("main_syntax")
  " quit when a syntax file was already loaded
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'webmacro'
endif


runtime! syntax/html.vim
unlet b:current_syntax

syn cluster htmlPreProc add=webmacroIf,webmacroUse,webmacroBraces,webmacroParse,webmacroInclude,webmacroSet,webmacroForeach,webmacroComment

syn match webmacroVariable "\$[a-zA-Z0-9.()]*;\="
syn match webmacroNumber "[-+]\=\d\+[lL]\=" contained
syn keyword webmacroBoolean true false contained
syn match webmacroSpecial "\\." contained
syn region  webmacroString   contained start=+"+ end=+"+ contains=webmacroSpecial,webmacroVariable
syn region  webmacroString   contained start=+'+ end=+'+ contains=webmacroSpecial,webmacroVariable
syn region webmacroList contained matchgroup=Structure start="\[" matchgroup=Structure end="\]" contains=webmacroString,webmacroVariable,webmacroNumber,webmacroBoolean,webmacroList

syn region webmacroIf start="#if" start="#else" end="{"me=e-1 contains=webmacroVariable,webmacroNumber,webmacroString,webmacroBoolean,webmacroList nextgroup=webmacroBraces
syn region webmacroForeach start="#foreach" end="{"me=e-1 contains=webmacroVariable,webmacroNumber,webmacroString,webmacroBoolean,webmacroList nextgroup=webmacroBraces
syn match webmacroSet "#set .*$" contains=webmacroVariable,webmacroNumber,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn match webmacroInclude "#include .*$" contains=webmacroVariable,webmacroNumber,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn match webmacroParse "#parse .*$" contains=webmacroVariable,webmacroNumber,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn region webmacroUse matchgroup=PreProc start="#use .*" matchgroup=PreProc end="^-.*" contains=webmacroHash,@HtmlTop
syn region webmacroBraces matchgroup=Structure start="{" matchgroup=Structure end="}" contained transparent
syn match webmacroBracesError "[{}]"
syn match webmacroComment "##.*$"
syn match webmacroHash "[#{}\$]" contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link webmacroComment CommentTitle
hi def link webmacroVariable PreProc
hi def link webmacroIf webmacroStatement
hi def link webmacroForeach webmacroStatement
hi def link webmacroSet webmacroStatement
hi def link webmacroInclude webmacroStatement
hi def link webmacroParse webmacroStatement
hi def link webmacroStatement Function
hi def link webmacroNumber Number
hi def link webmacroBoolean Boolean
hi def link webmacroSpecial Special
hi def link webmacroString String
hi def link webmacroBracesError Error

let b:current_syntax = "webmacro"

if main_syntax == 'webmacro'
  unlet main_syntax
endif
PK�j�Z��m{�"�"vim80/syntax/rst.vimnu�[���" Vim syntax file
" Language: reStructuredText documentation format
" Maintainer: Marshall Ward <marshall.ward@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Website: https://github.com/marshallward/vim-restructuredtext
" Latest Revision: 2016-08-18

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

syn match   rstTransition  /^[=`:.'"~^_*+#-]\{4,}\s*$/

syn cluster rstCruft                contains=rstEmphasis,rstStrongEmphasis,
      \ rstInterpretedText,rstInlineLiteral,rstSubstitutionReference,
      \ rstInlineInternalTargets,rstFootnoteReference,rstHyperlinkReference

syn region  rstLiteralBlock         matchgroup=rstDelimiter
      \ start='::\_s*\n\ze\z(\s\+\)' skip='^$' end='^\z1\@!'
      \ contains=@NoSpell

syn region  rstQuotedLiteralBlock   matchgroup=rstDelimiter
      \ start="::\_s*\n\ze\z([!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]\)"
      \ end='^\z1\@!' contains=@NoSpell

syn region  rstDoctestBlock         oneline display matchgroup=rstDelimiter
      \ start='^>>>\s' end='^$'

syn region  rstTable                transparent start='^\n\s*+[-=+]\+' end='^$'
      \ contains=rstTableLines,@rstCruft
syn match   rstTableLines           contained display '|\|+\%(=\+\|-\+\)\='

syn region  rstSimpleTable          transparent
      \ start='^\n\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
      \ end='^$'
      \ contains=rstSimpleTableLines,@rstCruft
syn match   rstSimpleTableLines     contained display
      \ '^\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
syn match   rstSimpleTableLines     contained display
      \ '^\%(\s*\)\@>\%(\%(-\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(-\+\)\@>\%(\s*\)\@>\)\+\)\@>$'

syn cluster rstDirectives           contains=rstFootnote,rstCitation,
      \ rstHyperlinkTarget,rstExDirective

syn match   rstExplicitMarkup       '^\s*\.\.\_s'
      \ nextgroup=@rstDirectives,rstComment,rstSubstitutionDefinition

let s:ReferenceName = '[[:alnum:]]\+\%([_.-][[:alnum:]]\+\)*'

syn keyword     rstTodo             contained FIXME TODO XXX NOTE

execute 'syn region rstComment contained' .
      \ ' start=/.*/'
      \ ' end=/^\s\@!/ contains=rstTodo'

execute 'syn region rstFootnote contained matchgroup=rstDirective' .
      \ ' start=+\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]\_s+' .
      \ ' skip=+^$+' .
      \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell'

execute 'syn region rstCitation contained matchgroup=rstDirective' .
      \ ' start=+\[' . s:ReferenceName . '\]\_s+' .
      \ ' skip=+^$+' .
      \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell'

syn region rstHyperlinkTarget contained matchgroup=rstDirective
      \ start='_\%(_\|[^:\\]*\%(\\.[^:\\]*\)*\):\_s' skip=+^$+ end=+^\s\@!+

syn region rstHyperlinkTarget contained matchgroup=rstDirective
      \ start='_`[^`\\]*\%(\\.[^`\\]*\)*`:\_s' skip=+^$+ end=+^\s\@!+

syn region rstHyperlinkTarget matchgroup=rstDirective
      \ start=+^__\_s+ skip=+^$+ end=+^\s\@!+

execute 'syn region rstExDirective contained matchgroup=rstDirective' .
      \ ' start=+' . s:ReferenceName . '::\_s+' .
      \ ' skip=+^$+' .
      \ ' end=+^\s\@!+ contains=@rstCruft,rstLiteralBlock'

execute 'syn match rstSubstitutionDefinition contained' .
      \ ' /|' . s:ReferenceName . '|\_s\+/ nextgroup=@rstDirectives'

function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_right)
  execute 'syn region rst' . a:name .
        \ ' start=+' . a:char_left . '\zs' . a:start .
        \ '\ze[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' .
        \ a:middle .
        \ ' end=+\S' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+'
endfunction

function! s:DefineInlineMarkup(name, start, middle, end)
  let middle = a:middle != "" ?
        \ (' skip=+\\\\\|\\' . a:middle . '+') :
        \ ""

  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, "'", "'")
  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '"', '"')
  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '(', ')')
  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\[', '\]')
  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '{', '}')
  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '<', '>')
  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '’', '’')
  " TODO: Additional Unicode Pd, Po, Pi, Pf, Ps characters

  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|[/:]\)', '')

  execute 'syn match rst' . a:name .
        \ ' +\%(^\|\s\|[''"([{</:]\)\zs' . a:start .
        \ '[^[:space:]' . a:start[strlen(a:start) - 1] . ']'
        \ a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'

  execute 'hi def link rst' . a:name . 'Delimiter' . ' rst' . a:name
endfunction

call s:DefineInlineMarkup('Emphasis', '\*', '\*', '\*')
call s:DefineInlineMarkup('StrongEmphasis', '\*\*', '\*', '\*\*')
call s:DefineInlineMarkup('InterpretedTextOrHyperlinkReference', '`', '`', '`_\{0,2}')
call s:DefineInlineMarkup('InlineLiteral', '``', "", '``')
call s:DefineInlineMarkup('SubstitutionReference', '|', '|', '|_\{0,2}')
call s:DefineInlineMarkup('InlineInternalTargets', '_`', '`', '`')

syn match   rstSections "^\%(\([=`:.'"~^_*+#-]\)\1\+\n\)\=.\+\n\([=`:.'"~^_*+#-]\)\2\+$"

" TODO: Can’t remember why these two can’t be defined like the ones above.
execute 'syn match rstFootnoteReference contains=@NoSpell' .
      \ ' +\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]_+'

execute 'syn match rstCitationReference contains=@NoSpell' .
      \ ' +\[' . s:ReferenceName . '\]_\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'

execute 'syn match rstHyperlinkReference' .
      \ ' /\<' . s:ReferenceName . '__\=\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)/'

syn match   rstStandaloneHyperlink  contains=@NoSpell
      \ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]"

syn region rstCodeBlock contained matchgroup=rstDirective
      \ start=+\%(sourcecode\|code\%(-block\)\=\)::\s\+\w*\_s*\n\ze\z(\s\+\)+
      \ skip=+^$+
      \ end=+^\z1\@!+
      \ 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', 'sh']
endif

for code in g:rst_syntax_code_list
    unlet! b:current_syntax
    " guard against setting 'isk' option which might cause problems (issue #108)
    let prior_isk = &l:iskeyword
    exe 'syn include @rst'.code.' syntax/'.code.'.vim'
    exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold'
                \.' start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\_s*\n\ze\z(\s\+\)#'
                \.' skip=#^$#'
                \.' end=#^\z1\@!#'
                \.' contains=@NoSpell,@rst'.code
    exe 'syn cluster rstDirectives add=rstDirective'.code
    " reset 'isk' setting, if it has been changed
    if &l:iskeyword !=# prior_isk
        let &l:iskeyword = prior_isk
    endif
    unlet! prior_isk
endfor

" TODO: Use better syncing.
syn sync minlines=50 linebreaks=2

hi def link rstTodo                         Todo
hi def link rstComment                      Comment
hi def link rstSections                     Title
hi def link rstTransition                   rstSections
hi def link rstLiteralBlock                 String
hi def link rstQuotedLiteralBlock           String
hi def link rstDoctestBlock                 PreProc
hi def link rstTableLines                   rstDelimiter
hi def link rstSimpleTableLines             rstTableLines
hi def link rstExplicitMarkup               rstDirective
hi def link rstDirective                    Keyword
hi def link rstFootnote                     String
hi def link rstCitation                     String
hi def link rstHyperlinkTarget              String
hi def link rstExDirective                  String
hi def link rstSubstitutionDefinition       rstDirective
hi def link rstDelimiter                    Delimiter
hi def rstEmphasis ctermfg=13 term=italic cterm=italic gui=italic
hi def rstStrongEmphasis ctermfg=1 term=bold cterm=bold gui=bold
hi def link rstInterpretedTextOrHyperlinkReference  Identifier
hi def link rstInlineLiteral                String
hi def link rstSubstitutionReference        PreProc
hi def link rstInlineInternalTargets        Identifier
hi def link rstFootnoteReference            Identifier
hi def link rstCitationReference            Identifier
hi def link rstHyperLinkReference           Identifier
hi def link rstStandaloneHyperlink          Identifier
hi def link rstCodeBlock                    String

let b:current_syntax = "rst"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��~BIIvim80/syntax/ninja.vimnu�[���" ninja build file syntax.
" Language: ninja build file as described at
"           http://ninja-build.org/manual.html
" Version: 1.5
" Last Change: 2018/04/05
" Maintainer: Nicolas Weber <nicolasweber@gmx.de>
" Version 1.5 of this script is in the upstream vim repository and will be
" included in the next vim release. If you change this, please send your change
" upstream.

" ninja lexer and parser are at
" https://github.com/ninja-build/ninja/blob/master/src/lexer.in.cc
" https://github.com/ninja-build/ninja/blob/master/src/manifest_parser.cc

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case match

" Comments are only matched when the # is at the beginning of the line (with
" optional whitespace), as long as the prior line didn't end with a $
" continuation.
syn match ninjaComment /\(\$\n\)\@<!\_^\s*#.*$/  contains=@Spell

" Toplevel statements are the ones listed here and
" toplevel variable assignments (ident '=' value).
" lexer.in.cc, ReadToken() and manifest_parser.cc, Parse()
syn match ninjaKeyword "^build\>"
syn match ninjaKeyword "^rule\>"
syn match ninjaKeyword "^pool\>"
syn match ninjaKeyword "^default\>"
syn match ninjaKeyword "^include\>"
syn match ninjaKeyword "^subninja\>"

" Both 'build' and 'rule' begin a variable scope that ends
" on the first line without indent. 'rule' allows only a
" limited set of magic variables, 'build' allows general
" let assignments.
" manifest_parser.cc, ParseRule()
syn region ninjaRule start="^rule" end="^\ze\S" contains=TOP transparent
syn keyword ninjaRuleCommand contained containedin=ninjaRule command
                                     \ deps depfile description generator
                                     \ pool restat rspfile rspfile_content

syn region ninjaPool start="^pool" end="^\ze\S" contains=TOP transparent
syn keyword ninjaPoolCommand contained containedin=ninjaPool  depth

" Strings are parsed as follows:
" lexer.in.cc, ReadEvalString()
" simple_varname = [a-zA-Z0-9_-]+;
" varname = [a-zA-Z0-9_.-]+;
" $$ -> $
" $\n -> line continuation
" '$ ' -> escaped space
" $simple_varname -> variable
" ${varname} -> variable

syn match   ninjaDollar "\$\$"
syn match   ninjaWrapLineOperator "\$$"
syn match   ninjaSimpleVar "\$[a-zA-Z0-9_-]\+"
syn match   ninjaVar       "\${[a-zA-Z0-9_.-]\+}"

" operators are:
" variable assignment =
" rule definition :
" implicit dependency |
" order-only dependency ||
syn match ninjaOperator "\(=\|:\||\|||\)\ze\s"

hi def link ninjaComment Comment
hi def link ninjaKeyword Keyword
hi def link ninjaRuleCommand Statement
hi def link ninjaPoolCommand Statement
hi def link ninjaDollar ninjaOperator
hi def link ninjaWrapLineOperator ninjaOperator
hi def link ninjaOperator Operator
hi def link ninjaSimpleVar ninjaVar
hi def link ninjaVar Identifier

let b:current_syntax = "ninja"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z$ou���vim80/syntax/gedcom.vimnu�[���" Vim syntax file
" Language:	Gedcom
" Maintainer:	Paul Johnson (pjcj@transeda.com)
" Version 1.059 - 23rd December 1999

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syntax case match

syntax keyword gedcom_record ABBR ADDR ADOP ADR1 ADR2 AFN AGE AGNC ALIA ANCE
syntax keyword gedcom_record ANCI ANUL ASSO AUTH BAPL BAPM BARM BASM BIRT BLES
syntax keyword gedcom_record BLOB BURI CALN CAST CAUS CENS CHAN CHAR CHIL CHR
syntax keyword gedcom_record CHRA CITY CONC CONF CONL CONT COPR CORP CREM CTRY
syntax keyword gedcom_record DATA DEAT DESC DESI DEST DIV DIVF DSCR EDUC EMIG
syntax keyword gedcom_record ENDL ENGA EVEN FAM FAMC FAMF FAMS FCOM FILE FORM
syntax keyword gedcom_record GEDC GIVN GRAD HEAD HUSB IDNO IMMI INDI LANG MARB
syntax keyword gedcom_record MARC MARL MARR MARS MEDI NATI NATU NCHI NICK NMR
syntax keyword gedcom_record NOTE NPFX NSFX OBJE OCCU ORDI ORDN PAGE PEDI PHON
syntax keyword gedcom_record PLAC POST PROB PROP PUBL QUAY REFN RELA RELI REPO
syntax keyword gedcom_record RESI RESN RETI RFN RIN ROLE SEX SLGC SLGS SOUR
syntax keyword gedcom_record SPFX SSN STAE STAT SUBM SUBN SURN TEMP TEXT TIME
syntax keyword gedcom_record TITL TRLR TYPE VERS WIFE WILL
syntax keyword gedcom_record DATE nextgroup=gedcom_date
syntax keyword gedcom_record NAME nextgroup=gedcom_name

syntax case ignore

syntax region gedcom_id start="@" end="@" oneline contains=gedcom_ii, gedcom_in
syntax match gedcom_ii "\I\+" contained nextgroup=gedcom_in
syntax match gedcom_in "\d\+" contained
syntax region gedcom_name start="" end="$" skipwhite oneline contains=gedcom_cname, gedcom_surname contained
syntax match gedcom_cname "\i\+" contained
syntax match gedcom_surname "/\(\i\|\s\)*/" contained
syntax match gedcom_date "\d\{1,2}\s\+\(jan\|feb\|mar\|apr\|may\|jun\|jul\|aug\|sep\|oct\|nov\|dec\)\s\+\d\+"
syntax match gedcom_date ".*" contained

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link gedcom_record Statement
hi def link gedcom_id Comment
hi def link gedcom_ii PreProc
hi def link gedcom_in Type
hi def link gedcom_name PreProc
hi def link gedcom_cname Type
hi def link gedcom_surname Identifier
hi def link gedcom_date Constant


let b:current_syntax = "gedcom"
PK�j�Z�q9�!!vim80/syntax/csc.vimnu�[���" Vim syntax file
" Language: Essbase script
" Maintainer:	Raul Segura Acevedo <raulseguraaceved@netscape.net>
" Last change:	2011 Dec 25 by Thilo Six

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

let s:cpo_save = &cpo
set cpo&vim

" folds: fix/endfix and comments
sy	region	EssFold start="\<Fix" end="EndFix" transparent fold

sy	keyword	cscTodo contained TODO FIXME XXX

" cscCommentGroup allows adding matches for special things in comments
sy	cluster cscCommentGroup contains=cscTodo

" Strings in quotes
sy	match	cscError	'"'
sy	match	cscString	'"[^"]*"'

"when wanted, highlight trailing white space
if exists("csc_space_errors")
	if !exists("csc_no_trail_space_error")
		sy	match	cscSpaceE	"\s\+$"
	endif
	if !exists("csc_no_tab_space_error")
		sy	match	cscSpaceE	" \+\t"me=e-1
	endif
endif

"catch errors caused by wrong parenthesis and brackets
sy	cluster	cscParenGroup	contains=cscParenE,@cscCommentGroup,cscUserCont,cscBitField,cscFormat,cscNumber,cscFloat,cscOctal,cscNumbers,cscIfError,cscComW,cscCom,cscFormula,cscBPMacro
sy	region	cscParen	transparent start='(' end=')' contains=ALLBUT,@cscParenGroup
sy	match	cscParenE	")"

"integer number, or floating point number without a dot and with "f".
sy	case	ignore
sy	match	cscNumbers	transparent "\<\d\|\.\d" contains=cscNumber,cscFloat,cscOctal
sy	match	cscNumber	contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
"hex number
sy	match	cscNumber	contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
sy	match	cscOctal	contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>"
sy	match	cscFloat	contained "\d\+f"
"floating point number, with dot, optional exponent
sy	match	cscFloat	contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
sy	match	cscFloat	contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
sy	match	cscFloat	contained "\d\+e[-+]\=\d\+[fl]\=\>"

sy	region	cscComment	start="/\*" end="\*/" contains=@cscCommentGroup,cscSpaceE fold
sy	match	cscCommentE	"\*/"

sy	keyword	cscIfError	IF ELSE ENDIF ELSEIF
sy	keyword	cscCondition	contained IF ELSE ENDIF ELSEIF
sy	keyword	cscFunction	contained VARPER VAR UDA TRUNCATE SYD SUMRANGE SUM
sy	keyword	cscFunction	contained STDDEVRANGE STDDEV SPARENTVAL SLN SIBLINGS SHIFT
sy	keyword	cscFunction	contained SANCESTVAL RSIBLINGS ROUND REMAINDER RELATIVE PTD
sy	keyword	cscFunction	contained PRIOR POWER PARENTVAL NPV NEXT MOD MINRANGE MIN
sy	keyword	cscFunction	contained MDSHIFT MDPARENTVAL MDANCESTVAL MAXRANGE MAX MATCH
sy	keyword	cscFunction	contained LSIBLINGS LEVMBRS LEV
sy	keyword	cscFunction	contained ISUDA ISSIBLING ISSAMELEV ISSAMEGEN ISPARENT ISMBR
sy	keyword	cscFunction	contained ISLEV ISISIBLING ISIPARENT ISIDESC ISICHILD ISIBLINGS
sy	keyword	cscFunction	contained ISIANCEST ISGEN ISDESC ISCHILD ISANCEST ISACCTYPE
sy	keyword	cscFunction	contained IRSIBLINGS IRR INTEREST INT ILSIBLINGS IDESCENDANTS
sy	keyword	cscFunction	contained ICHILDREN IANCESTORS IALLANCESTORS
sy	keyword	cscFunction	contained GROWTH GENMBRS GEN FACTORIAL DISCOUNT DESCENDANTS
sy	keyword	cscFunction	contained DECLINE CHILDREN CURRMBRRANGE CURLEV CURGEN
sy	keyword	cscFunction	contained COMPOUNDGROWTH COMPOUND AVGRANGE AVG ANCESTVAL
sy	keyword	cscFunction	contained ANCESTORS ALLANCESTORS ACCUM ABS
sy	keyword	cscFunction	contained @VARPER @VAR @UDA @TRUNCATE @SYD @SUMRANGE @SUM
sy	keyword	cscFunction	contained @STDDEVRANGE @STDDEV @SPARENTVAL @SLN @SIBLINGS @SHIFT
sy	keyword	cscFunction	contained @SANCESTVAL @RSIBLINGS @ROUND @REMAINDER @RELATIVE @PTD
sy	keyword	cscFunction	contained @PRIOR @POWER @PARENTVAL @NPV @NEXT @MOD @MINRANGE @MIN
sy	keyword	cscFunction	contained @MDSHIFT @MDPARENTVAL @MDANCESTVAL @MAXRANGE @MAX @MATCH
sy	keyword	cscFunction	contained @LSIBLINGS @LEVMBRS @LEV
sy	keyword	cscFunction	contained @ISUDA @ISSIBLING @ISSAMELEV @ISSAMEGEN @ISPARENT @ISMBR
sy	keyword	cscFunction	contained @ISLEV @ISISIBLING @ISIPARENT @ISIDESC @ISICHILD @ISIBLINGS
sy	keyword	cscFunction	contained @ISIANCEST @ISGEN @ISDESC @ISCHILD @ISANCEST @ISACCTYPE
sy	keyword	cscFunction	contained @IRSIBLINGS @IRR @INTEREST @INT @ILSIBLINGS @IDESCENDANTS
sy	keyword	cscFunction	contained @ICHILDREN @IANCESTORS @IALLANCESTORS
sy	keyword	cscFunction	contained @GROWTH @GENMBRS @GEN @FACTORIAL @DISCOUNT @DESCENDANTS
sy	keyword	cscFunction	contained @DECLINE @CHILDREN @CURRMBRRANGE @CURLEV @CURGEN
sy	keyword	cscFunction	contained @COMPOUNDGROWTH @COMPOUND @AVGRANGE @AVG @ANCESTVAL
sy	keyword	cscFunction	contained @ANCESTORS @ALLANCESTORS @ACCUM @ABS
sy	match	cscFunction	contained "@"
sy	match	cscError	"@\s*\a*" contains=cscFunction

sy	match	cscStatement	"&"
sy	keyword	cscStatement	AGG ARRAY VAR CCONV CLEARDATA DATACOPY

sy	match	cscComE	contained "^\s*CALC.*"
sy	match	cscComE	contained "^\s*CLEARBLOCK.*"
sy	match	cscComE	contained "^\s*SET.*"
sy	match	cscComE	contained "^\s*FIX"
sy	match	cscComE	contained "^\s*ENDFIX"
sy	match	cscComE	contained "^\s*ENDLOOP"
sy	match	cscComE	contained "^\s*LOOP"
" sy	keyword	cscCom	FIX ENDFIX LOOP ENDLOOP

sy	match	cscComW	"^\s*CALC.*"
sy	match	cscCom	"^\s*CALC\s*ALL"
sy	match	cscCom	"^\s*CALC\s*AVERAGE"
sy	match	cscCom	"^\s*CALC\s*DIM"
sy	match	cscCom	"^\s*CALC\s*FIRST"
sy	match	cscCom	"^\s*CALC\s*LAST"
sy	match	cscCom	"^\s*CALC\s*TWOPASS"

sy	match	cscComW	"^\s*CLEARBLOCK.*"
sy	match	cscCom	"^\s*CLEARBLOCK\s\+ALL"
sy	match	cscCom	"^\s*CLEARBLOCK\s\+UPPER"
sy	match	cscCom	"^\s*CLEARBLOCK\s\+NONINPUT"

sy	match	cscComW	"^\s*\<SET.*"
sy	match	cscCom	"^\s*\<SET\s\+Commands"
sy	match	cscCom	"^\s*\<SET\s\+AGGMISSG"
sy	match	cscCom	"^\s*\<SET\s\+CACHE"
sy	match	cscCom	"^\s*\<SET\s\+CALCHASHTBL"
sy	match	cscCom	"^\s*\<SET\s\+CLEARUPDATESTATUS"
sy	match	cscCom	"^\s*\<SET\s\+FRMLBOTTOMUP"
sy	match	cscCom	"^\s*\<SET\s\+LOCKBLOCK"
sy	match	cscCom	"^\s*\<SET\s\+MSG"
sy	match	cscCom	"^\s*\<SET\s\+NOTICE"
sy	match	cscCom	"^\s*\<SET\s\+UPDATECALC"
sy	match	cscCom	"^\s*\<SET\s\+UPTOLOCAL"

sy	keyword	cscBPMacro	contained !LoopOnAll !LoopOnLevel !LoopOnSelected
sy	keyword	cscBPMacro	contained !CurrentMember !LoopOnDimensions !CurrentDimension
sy	keyword	cscBPMacro	contained !CurrentOtherLoopDimension !LoopOnOtherLoopDimensions
sy	keyword	cscBPMacro	contained !EndLoop !AllMembers !SelectedMembers !If !Else !EndIf
sy	keyword	cscBPMacro	contained LoopOnAll LoopOnLevel LoopOnSelected
sy	keyword	cscBPMacro	contained CurrentMember LoopOnDimensions CurrentDimension
sy	keyword	cscBPMacro	contained CurrentOtherLoopDimension LoopOnOtherLoopDimensions
sy	keyword	cscBPMacro	contained EndLoop AllMembers SelectedMembers If Else EndIf
sy	match	cscBPMacro	contained	"!"
sy	match	cscBPW	"!\s*\a*"	contains=cscBPmacro

" when wanted, highlighting lhs members or erros in asignments (may lag the editing)
if exists("csc_asignment")
	sy	match	cscEqError	'\("[^"]*"\s*\|[^][\t !%()*+,--/:;<=>{}~]\+\s*\|->\s*\)*=\([^=]\@=\|$\)'
	sy	region	cscFormula	transparent matchgroup=cscVarName start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\s*=\([^=]\@=\|\n\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition
	sy	region	cscFormulaIn	matchgroup=cscVarName transparent start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\(->\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\)*\s*=\([^=]\@=\|$\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition contained
	sy	match	cscEq	"=="
endif

if !exists("csc_minlines")
	let csc_minlines = 50	" mostly for () constructs
endif
exec "sy sync ccomment cscComment minlines=" . csc_minlines

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi cscVarName term=bold ctermfg=9 gui=bold guifg=blue

hi def link cscNumber	Number
hi def link cscOctal	Number
hi def link cscFloat	Float
hi def link cscParenE	Error
hi def link cscCommentE	Error
hi def link cscSpaceE	Error
hi def link cscError	Error
hi def link cscString	String
hi def link cscComment	Comment
hi def link cscTodo		Todo
hi def link cscStatement	Statement
hi def link cscIfError	Error
hi def link cscEqError	Error
hi def link cscFunction	Statement
hi def link cscCondition	Statement
hi def link cscWarn		WarningMsg

hi def link cscComE	Error
hi def link cscCom	Statement
hi def link cscComW	WarningMsg

hi def link cscBPMacro	Identifier
hi def link cscBPW		WarningMsg


let b:current_syntax = "csc"

let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
PK�j�Z4zZ''vim80/syntax/modsim3.vimnu�[���" Vim syntax file
" Language:	Modsim III, by compuware corporation (www.compuware.com)
" Maintainer:	Philipp Jocham <flip@sbox.tu-graz.ac.at>
" Extension:	*.mod
" Last Change:	2001 May 10
"
" 2001 March 24:
"  - Modsim III is a registered trademark from compuware corporation
"  - made compatible with Vim 6.0
"
" 1999 Apr 22 : Changed modsim3Literal from region to match
"
" very basic things only (based on the modula2 and c files).

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


" syn case match " case sensitiv match is default

" A bunch of keywords
syn keyword modsim3Keyword ACTID ALL AND AS ASK
syn keyword modsim3Keyword BY CALL CASE CLASS CONST DIV
syn keyword modsim3Keyword DOWNTO DURATION ELSE ELSIF EXIT FALSE FIXED FOR
syn keyword modsim3Keyword FOREACH FORWARD IF IN INHERITED INOUT
syn keyword modsim3Keyword INTERRUPT LOOP
syn keyword modsim3Keyword MOD MONITOR NEWVALUE
syn keyword modsim3Keyword NONMODSIM NOT OBJECT OF ON OR ORIGINAL OTHERWISE OUT
syn keyword modsim3Keyword OVERRIDE PRIVATE PROTO REPEAT
syn keyword modsim3Keyword RETURN REVERSED SELF STRERR TELL
syn keyword modsim3Keyword TERMINATE THISMETHOD TO TRUE TYPE UNTIL VALUE VAR
syn keyword modsim3Keyword WAIT WAITFOR WHEN WHILE WITH

" Builtin functions and procedures
syn keyword modsim3Builtin ABS ACTIVATE ADDMONITOR CAP CHARTOSTR CHR CLONE
syn keyword modsim3Builtin DEACTIVATE DEC DISPOSE FLOAT GETMONITOR HIGH INC
syn keyword modsim3Builtin INPUT INSERT INTTOSTR ISANCESTOR LOW LOWER MAX MAXOF
syn keyword modsim3Builtin MIN MINOF NEW OBJTYPEID OBJTYPENAME OBJVARID ODD
syn keyword modsim3Builtin ONERROR ONEXIT ORD OUTPUT POSITION PRINT REALTOSTR
syn keyword modsim3Builtin REPLACE REMOVEMONITOR ROUND SCHAR SIZEOF SPRINT
syn keyword modsim3Builtin STRLEN STRTOCHAR STRTOINT STRTOREAL SUBSTR TRUNC
syn keyword modsim3Builtin UPDATEVALUE UPPER VAL

syn keyword modsim3BuiltinNoParen HALT TRACE

" Special keywords
syn keyword modsim3Block PROCEDURE METHOD MODULE MAIN DEFINITION IMPLEMENTATION
syn keyword modsim3Block BEGIN END

syn keyword modsim3Include IMPORT FROM

syn keyword modsim3Type ANYARRAY ANYOBJ ANYREC ARRAY BOOLEAN CHAR INTEGER
syn keyword modsim3Type LMONITORED LRMONITORED NILARRAY NILOBJ NILREC REAL
syn keyword modsim3Type RECORD RMONITOR RMONITORED STRING

" catch errros cause by wrong parenthesis
" slight problem with "( *)" or "(* )". Hints?
syn region modsim3Paren	transparent start='(' end=')' contains=ALLBUT,modsim3ParenError
syn match modsim3ParenError ")"

" Comments
syn region modsim3Comment1 start="{" end="}" contains=modsim3Comment1,modsim3Comment2
syn region modsim3Comment2 start="(\*" end="\*)" contains=modsim3Comment1,modsim3Comment2
" highlighting is wrong for constructs like "{  (*  }  *)",
" which are allowed in Modsim III, but
" I think something like that shouldn't be used anyway.

" Strings
syn region modsim3String start=+"+ end=+"+

" Literals
"syn region modsim3Literal start=+'+ end=+'+
syn match modsim3Literal "'[^']'\|''''"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link modsim3Keyword	Statement
hi def link modsim3Block		Statement
hi def link modsim3Comment1	Comment
hi def link modsim3Comment2	Comment
hi def link modsim3String		String
hi def link modsim3Literal	Character
hi def link modsim3Include	Statement
hi def link modsim3Type		Type
hi def link modsim3ParenError	Error
hi def link modsim3Builtin	Function
hi def link modsim3BuiltinNoParen	Function


let b:current_syntax = "modsim3"

" vim: ts=8 sw=2

PK�j�Z�jP"S)S)vim80/syntax/sshconfig.vimnu�[���" Vim syntax file
" Language:	OpenSSH client configuration file (ssh_config)
" Author:	David Necas (Yeti)
" Maintainer:	Dominik Fischer <d dot f dot fischer at web dot de>
" Contributor:  Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Contributor:  Karsten Hopp <karsten@redhat.com>
" Contributor:  Dean, Adam Kenneth <adam.ken.dean@hpe.com>
" Last Change:	2016 Dec 28
" SSH Version:	7.4p1
"

" Setup
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

setlocal iskeyword=_,-,a-z,A-Z,48-57


" case on
syn case match


" Comments
syn match sshconfigComment "^#.*$" contains=sshconfigTodo
syn match sshconfigComment "\s#.*$" contains=sshconfigTodo

syn keyword sshconfigTodo TODO FIXME NOTE contained


" Constants
syn keyword sshconfigYesNo yes no ask confirm
syn keyword sshconfigYesNo any auto
syn keyword sshconfigYesNo force autoask none

syn keyword sshconfigCipher 3des blowfish

syn keyword sshconfigCiphers 3des-cbc
syn keyword sshconfigCiphers blowfish-cbc
syn keyword sshconfigCiphers cast128-cbc
syn keyword sshconfigCiphers arcfour
syn keyword sshconfigCiphers arcfour128
syn keyword sshconfigCiphers arcfour256
syn keyword sshconfigCiphers aes128-cbc
syn keyword sshconfigCiphers aes192-cbc
syn keyword sshconfigCiphers aes256-cbc
syn match sshconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
syn keyword sshconfigCiphers aes128-ctr
syn keyword sshconfigCiphers aes192-ctr
syn keyword sshconfigCiphers aes256-ctr
syn match sshconfigCiphers "\<aes128-gcm@openssh\.com\>"
syn match sshconfigCiphers "\<aes256-gcm@openssh\.com\>"
syn match sshconfigCiphers "\<chacha20-poly1305@openssh\.com\>"

syn keyword sshconfigMAC hmac-sha1
syn keyword sshconfigMAC mac-sha1-96
syn keyword sshconfigMAC mac-sha2-256
syn keyword sshconfigMAC mac-sha2-512
syn keyword sshconfigMAC mac-md5
syn keyword sshconfigMAC mac-md5-96
syn keyword sshconfigMAC mac-ripemd160
syn match   sshconfigMAC "\<hmac-ripemd160@openssh\.com\>"
syn match   sshconfigMAC "\<umac-64@openssh\.com\>"
syn match   sshconfigMAC "\<umac-128@openssh\.com\>"
syn match   sshconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
syn match   sshconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
syn match   sshconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
syn match   sshconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
syn match   sshconfigMAC "\<hmac-md5-etm@openssh\.com\>"
syn match   sshconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
syn match   sshconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
syn match   sshconfigMAC "\<umac-64-etm@openssh\.com\>"
syn match   sshconfigMAC "\<umac-128-etm@openssh\.com\>"

syn keyword sshconfigHostKeyAlgo ssh-ed25519
syn match sshconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
syn keyword sshconfigHostKeyAlgo ssh-rsa
syn keyword sshconfigHostKeyAlgo ssh-dss
syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256
syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384
syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521
syn match sshconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
syn match sshconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"

syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
syn keyword sshconfigPreferredAuth keyboard-interactive

syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
syn keyword sshconfigAddressFamily  inet inet6

syn match   sshconfigIPQoS	"af1[123]"
syn match   sshconfigIPQoS	"af2[123]"
syn match   sshconfigIPQoS	"af3[123]"
syn match   sshconfigIPQoS	"af4[123]"
syn match   sshconfigIPQoS	"cs[0-7]"
syn keyword sshconfigIPQoS	ef lowdelay throughput reliability
syn keyword sshconfigKbdInteractive bsdauth pam skey

syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
syn keyword sshconfigKexAlgo ecdh-sha2-nistp256
syn keyword sshconfigKexAlgo ecdh-sha2-nistp384
syn keyword sshconfigKexAlgo ecdh-sha2-nistp521
syn match sshconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"

syn keyword sshconfigTunnel	point-to-point ethernet

syn match sshconfigVar "%[rhplLdun]\>"
syn match sshconfigSpecial "[*?]"
syn match sshconfigNumber "\d\+"
syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>"
syn match sshconfigHostPort "\(Host \)\@<=.\+"
syn match sshconfigHostPort "\(HostName \)\@<=.\+"

" case off
syn case ignore


" Keywords
syn keyword sshconfigHostSect Host

syn keyword sshconfigMatch canonical exec host originalhost user localuser all

syn keyword sshconfigKeyword AddressFamily
syn keyword sshconfigKeyword AddKeysToAgent
syn keyword sshconfigKeyword BatchMode
syn keyword sshconfigKeyword BindAddress
syn keyword sshconfigKeyword CanonicalDomains
syn keyword sshconfigKeyword CanonicalizeFallbackLocal
syn keyword sshconfigKeyword CanonicalizeHostname
syn keyword sshconfigKeyword CanonicalizeMaxDots
syn keyword sshconfigKeyword CertificateFile
syn keyword sshconfigKeyword ChallengeResponseAuthentication
syn keyword sshconfigKeyword CheckHostIP
syn keyword sshconfigKeyword Cipher
syn keyword sshconfigKeyword Ciphers
syn keyword sshconfigKeyword ClearAllForwardings
syn keyword sshconfigKeyword Compression
syn keyword sshconfigKeyword CompressionLevel
syn keyword sshconfigKeyword ConnectTimeout
syn keyword sshconfigKeyword ConnectionAttempts
syn keyword sshconfigKeyword ControlMaster
syn keyword sshconfigKeyword ControlPath
syn keyword sshconfigKeyword ControlPersist
syn keyword sshconfigKeyword DynamicForward
syn keyword sshconfigKeyword EnableSSHKeysign
syn keyword sshconfigKeyword EscapeChar
syn keyword sshconfigKeyword ExitOnForwardFailure
syn keyword sshconfigKeyword ForwardAgent
syn keyword sshconfigKeyword ForwardX11
syn keyword sshconfigKeyword ForwardX11Timeout
syn keyword sshconfigKeyword ForwardX11Trusted
syn keyword sshconfigKeyword GSSAPIAuthentication
syn keyword sshconfigKeyword GSSAPIClientIdentity
syn keyword sshconfigKeyword GSSAPIDelegateCredentials
syn keyword sshconfigKeyword GSSAPIKeyExchange
syn keyword sshconfigKeyword GSSAPIRenewalForcesRekey
syn keyword sshconfigKeyword GSSAPIServerIdentity
syn keyword sshconfigKeyword GSSAPITrustDNS
syn keyword sshconfigKeyword GSSAPITrustDns
syn keyword sshconfigKeyword GatewayPorts
syn keyword sshconfigKeyword GlobalKnownHostsFile
syn keyword sshconfigKeyword HashKnownHosts
syn keyword sshconfigKeyword HostKeyAlgorithms
syn keyword sshconfigKeyword HostKeyAlias
syn keyword sshconfigKeyword HostName
syn keyword sshconfigKeyword HostbasedAuthentication
syn keyword sshconfigKeyword HostbasedKeyTypes
syn keyword sshconfigKeyword IPQoS
syn keyword sshconfigKeyword IdentitiesOnly
syn keyword sshconfigKeyword IdentityFile
syn keyword sshconfigKeyword IgnoreUnknown
syn keyword sshconfigKeyword Include
syn keyword sshconfigKeyword IPQoS
syn keyword sshconfigKeyword KbdInteractiveAuthentication
syn keyword sshconfigKeyword KbdInteractiveDevices
syn keyword sshconfigKeyword KexAlgorithms
syn keyword sshconfigKeyword LocalCommand
syn keyword sshconfigKeyword LocalForward
syn keyword sshconfigKeyword LogLevel
syn keyword sshconfigKeyword MACs
syn keyword sshconfigKeyword Match
syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
syn keyword sshconfigKeyword NumberOfPasswordPrompts
syn keyword sshconfigKeyword PKCS11Provider
syn keyword sshconfigKeyword PasswordAuthentication
syn keyword sshconfigKeyword PermitLocalCommand
syn keyword sshconfigKeyword Port
syn keyword sshconfigKeyword PreferredAuthentications
syn keyword sshconfigKeyword Protocol
syn keyword sshconfigKeyword ProxyCommand
syn keyword sshconfigKeyword ProxyJump
syn keyword sshconfigKeyword ProxyUseFDPass
syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
syn keyword sshconfigKeyword PubkeyAuthentication
syn keyword sshconfigKeyword RSAAuthentication
syn keyword sshconfigKeyword RekeyLimit
syn keyword sshconfigKeyword RemoteForward
syn keyword sshconfigKeyword RequestTTY
syn keyword sshconfigKeyword RhostsRSAAuthentication
syn keyword sshconfigKeyword SendEnv
syn keyword sshconfigKeyword ServerAliveCountMax
syn keyword sshconfigKeyword ServerAliveInterval
syn keyword sshconfigKeyword SmartcardDevice
syn keyword sshconfigKeyword StrictHostKeyChecking
syn keyword sshconfigKeyword TCPKeepAlive
syn keyword sshconfigKeyword Tunnel
syn keyword sshconfigKeyword TunnelDevice
syn keyword sshconfigKeyword UseBlacklistedKeys
syn keyword sshconfigKeyword UsePrivilegedPort
syn keyword sshconfigKeyword User
syn keyword sshconfigKeyword UserKnownHostsFile
syn keyword sshconfigKeyword UseRoaming
syn keyword sshconfigKeyword VerifyHostKeyDNS
syn keyword sshconfigKeyword VisualHostKey
syn keyword sshconfigKeyword XAuthLocation

" Define the default highlighting

hi def link sshconfigComment        Comment
hi def link sshconfigTodo           Todo
hi def link sshconfigHostPort       sshconfigConstant
hi def link sshconfigNumber         sshconfigConstant
hi def link sshconfigConstant       Constant
hi def link sshconfigYesNo          sshconfigEnum
hi def link sshconfigCipher         sshconfigEnum
hi def link sshconfigCiphers	 sshconfigEnum
hi def link sshconfigMAC            sshconfigEnum
hi def link sshconfigHostKeyAlgo    sshconfigEnum
hi def link sshconfigLogLevel       sshconfigEnum
hi def link sshconfigSysLogFacility sshconfigEnum
hi def link sshconfigAddressFamily  sshconfigEnum
hi def link sshconfigIPQoS		 sshconfigEnum
hi def link sshconfigKbdInteractive sshconfigEnum
hi def link sshconfigKexAlgo	 sshconfigEnum
hi def link sshconfigTunnel	 sshconfigEnum
hi def link sshconfigPreferredAuth  sshconfigEnum
hi def link sshconfigVar            sshconfigEnum
hi def link sshconfigEnum           Identifier
hi def link sshconfigSpecial        Special
hi def link sshconfigKeyword        Keyword
hi def link sshconfigHostSect       Type
hi def link sshconfigMatch          Type

let b:current_syntax = "sshconfig"

" vim:set ts=8 sw=2 sts=2:
PK�j�Z����vim80/syntax/asm.vimnu�[���" Vim syntax file
" Language:	GNU Assembler
" Maintainer:	Erik Wognsen <erik.wognsen@gmail.com>
"		Previous maintainer:
"		Kevin Dahlhausen <kdahlhaus@yahoo.com>
" Last Change:	2014 Feb 04

" Thanks to Ori Avtalion for feedback on the comment markers!

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

" storage types
syn match asmType "\.long"
syn match asmType "\.ascii"
syn match asmType "\.asciz"
syn match asmType "\.byte"
syn match asmType "\.double"
syn match asmType "\.float"
syn match asmType "\.hword"
syn match asmType "\.int"
syn match asmType "\.octa"
syn match asmType "\.quad"
syn match asmType "\.short"
syn match asmType "\.single"
syn match asmType "\.space"
syn match asmType "\.string"
syn match asmType "\.word"

syn match asmLabel		"[a-z_][a-z0-9_]*:"he=e-1
syn match asmIdentifier		"[a-z_][a-z0-9_]*"

" Various #'s as defined by GAS ref manual sec 3.6.2.1
" Technically, the first decNumber def is actually octal,
" since the value of 0-7 octal is the same as 0-7 decimal,
" I (Kevin) prefer to map it as decimal:
syn match decNumber		"0\+[1-7]\=[\t\n$,; ]"
syn match decNumber		"[1-9]\d*"
syn match octNumber		"0[0-7][0-7]\+"
syn match hexNumber		"0[xX][0-9a-fA-F]\+"
syn match binNumber		"0[bB][0-1]*"

syn keyword asmTodo		contained TODO


" GAS supports one type of multi line comments:
syn region asmComment		start="/\*" end="\*/" contains=asmTodo

" GAS (undocumentedly?) supports C++ style comments. Unlike in C/C++ however,
" a backslash ending a C++ style comment does not extend the comment to the
" next line (hence the syntax region does not define 'skip="\\$"')
syn region asmComment		start="//" end="$" keepend contains=asmTodo

" Line comment characters depend on the target architecture and command line
" options and some comments may double as logical line number directives or
" preprocessor commands. This situation is described at
" http://sourceware.org/binutils/docs-2.22/as/Comments.html
" Some line comment characters have other meanings for other targets. For
" example, .type directives may use the `@' character which is also an ARM
" comment marker.
" As a compromise to accommodate what I arbitrarily assume to be the most
" frequently used features of the most popular architectures (and also the
" non-GNU assembly languages that use this syntax file because their asm files
" are also named *.asm), the following are used as line comment characters:
syn match asmComment		"[#;!|].*" contains=asmTodo

" Side effects of this include:
" - When `;' is used to separate statements on the same line (many targets
"   support this), all statements except the first get highlighted as
"   comments. As a remedy, remove `;' from the above.
" - ARM comments are not highlighted correctly. For ARM, uncomment the
"   following two lines and comment the one above.
"syn match asmComment		"@.*" contains=asmTodo
"syn match asmComment		"^#.*" contains=asmTodo

" Advanced users of specific architectures will probably want to change the
" comment highlighting or use a specific, more comprehensive syntax file.

syn match asmInclude		"\.include"
syn match asmCond		"\.if"
syn match asmCond		"\.else"
syn match asmCond		"\.endif"
syn match asmMacro		"\.macro"
syn match asmMacro		"\.endm"

" Assembler directives start with a '.' and may contain upper case (e.g.,
" .ABORT), numbers (e.g., .p2align), dash (e.g., .app-file) and underscore in
" CFI directives (e.g., .cfi_startproc). This will also match labels starting
" with '.', including the GCC auto-generated '.L' labels.
syn match asmDirective		"\.[A-Za-z][0-9A-Za-z-_]*"


syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link asmSection	Special
hi def link asmLabel	Label
hi def link asmComment	Comment
hi def link asmTodo	Todo
hi def link asmDirective	Statement

hi def link asmInclude	Include
hi def link asmCond	PreCondit
hi def link asmMacro	Macro

hi def link hexNumber	Number
hi def link decNumber	Number
hi def link octNumber	Number
hi def link binNumber	Number

hi def link asmIdentifier	Identifier
hi def link asmType	Type


let b:current_syntax = "asm"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z�t�))vim80/syntax/freebasic.vimnu�[���" Vim syntax file
" Language:    FreeBasic
" Maintainer:  Mark Manning <markem@airmail.net>
" Updated:     10/22/2006
"
" Description:
"
"	Based originally on the work done by Allan Kelly <Allan.Kelly@ed.ac.uk>
"	Updated by Mark Manning <markem@airmail.net>
"	Applied FreeBasic support to the already excellent support
"	for standard basic syntax (like QB).
"
"	First version based on Micro$soft QBASIC circa
"	1989, as documented in 'Learn BASIC Now' by
"	Halvorson&Rygmyr. Microsoft Press 1989.  This syntax file
"	not a complete implementation yet.  Send suggestions to
"	the maintainer.
"
"	Quit when a (custom) syntax file was already loaded (Taken from c.vim)
"
if exists("b:current_syntax")
  finish
endif
"
"	Be sure to turn on the "case ignore" since current versions
"	of freebasic support both upper as well as lowercase
"	letters. - MEM 10/1/2006
"
syn case ignore
"
"	This list of keywords is taken directly from the FreeBasic
"	user's guide as presented by the FreeBasic online site.
"
syn keyword	freebasicArrays			ERASE LBOUND REDIM PRESERVE UBOUND

syn keyword	freebasicBitManipulation	BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD SHL SHR

syn keyword	freebasicCompilerSwitches	DEFBYTE DEFDBL DEFINT DEFLNG DEFLNGINT DEFSHORT DEFSNG DEFSTR
syn keyword	freebasicCompilerSwitches	DEFUBYTE DEFUINT DEFULNGINT DEFUSHORT
syn match	freebasicCompilerSwitches	"\<option\s+\(BASE\|BYVAL\|DYNAMIC\|ESCAPE\|EXPLICIT\|NOKEYWORD\)\>"
syn match	freebasicCompilerSwitches	"\<option\s+\(PRIVATE\|STATIC\)\>"

syn region	freebasicConditional		start="\son\s+" skip=".*" end="gosub"
syn region	freebasicConditional		start="\son\s+" skip=".*" end="goto"
syn match	freebasicConditional		"\<select\s+case\>"
syn keyword	freebasicConditional		if iif then case else elseif with

syn match	freebasicConsole		"\<open\s+\(CONS\|ERR\|PIPE\|SCRN\)\>"
syn keyword	freebasicConsole		BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB VIEW WIDTH

syn keyword	freebasicDataTypes		BYTE AS DIM CONST DOUBLE ENUM INTEGER LONG LONGINT SHARED SHORT STRING
syn keyword	freebasicDataTypes		SINGLE TYPE UBYTE UINTEGER ULONGINT UNION UNSIGNED USHORT WSTRING ZSTRING

syn keyword	freebasicDateTime		DATE DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR MINUTE
syn keyword	freebasicDateTime		MONTH MONTHNAME NOW SECOND SETDATE SETTIME TIME TIMESERIAL TIMEVALUE
syn keyword	freebasicDateTime		TIMER YEAR WEEKDAY WEEKDAYNAME

syn keyword	freebasicDebug			ASSERT STOP

syn keyword	freebasicErrorHandling		ERR ERL ERROR LOCAL RESUME
syn match	freebasicErrorHandling		"\<resume\s+next\>"
syn match	freebasicErrorHandling		"\<on\s+error\>"

syn match	freebasicFiles			"\<get\s+#\>"
syn match	freebasicFiles			"\<input\s+#\>"
syn match	freebasicFiles			"\<line\s+input\s+#\>"
syn match	freebasicFiles			"\<put\s+#\>"
syn keyword	freebasicFiles			ACCESS APPEND BINARY BLOAD BSAVE CLOSE EOF FREEFILE INPUT LOC
syn keyword	freebasicFiles			LOCK LOF OPEN OUTPUT RANDOM RESET SEEK UNLOCK WRITE

syn keyword	freebasicFunctions		ALIAS ANY BYREF BYVAL CALL CDECL CONSTRUCTOR DESTRUCTOR
syn keyword	freebasicFunctions		DECLARE FUNCTION LIB OVERLOAD PASCAL STATIC SUB STDCALL
syn keyword	freebasicFunctions		VA_ARG VA_FIRST VA_NEXT

syn match	freebasicGraphics		"\<palette\s+get\>"
syn keyword	freebasicGraphics		ALPHA CIRCLE CLS COLOR CUSTOM DRAW FLIP GET
syn keyword	freebasicGraphics		IMAGECREATE IMAGEDESTROY LINE PAINT PALETTE PCOPY PMAP POINT
syn keyword	freebasicGraphics		PRESET PSET PUT RGB RGBA SCREEN SCREENCOPY SCREENINFO SCREENLIST
syn keyword	freebasicGraphics		SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC SCREENUNLOCK
syn keyword	freebasicGraphics		TRANS USING VIEW WINDOW

syn match	freebasicHardware		"\<open\s+com\>"
syn keyword	freebasicHardware		INP OUT WAIT LPT LPOS LPRINT

syn keyword	freebasicLogical		AND EQV IMP OR NOT XOR

syn keyword	freebasicMath			ABS ACOS ASIN ATAN2 ATN COS EXP FIX INT LOG MOD RANDOMIZE
syn keyword	freebasicMath			RND SGN SIN SQR TAN

syn keyword	freebasicMemory			ALLOCATE CALLOCATE CLEAR DEALLOCATE FIELD FRE PEEK POKE REALLOCATE

syn keyword	freebasicMisc			ASM DATA LET TO READ RESTORE SIZEOF SWAP OFFSETOF

syn keyword	freebasicModularizing		CHAIN COMMON EXPORT EXTERN DYLIBFREE DYLIBLOAD DYLIBSYMBOL
syn keyword	freebasicModularizing		PRIVATE PUBLIC

syn keyword	freebasicMultithreading		MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT

syn keyword	freebasicShell			CHDIR DIR COMMAND ENVIRON EXEC EXEPATH KILL NAME MKDIR RMDIR RUN

syn keyword	freebasicEnviron		SHELL SYSTEM WINDOWTITLE POINTERS

syn keyword	freebasicLoops			FOR LOOP WHILE WEND DO CONTINUE STEP UNTIL next

syn match	freebasicInclude		"\<#\s*\(inclib\|include\)\>"
syn match	freebasicInclude		"\<\$\s*include\>"

syn keyword	freebasicPointer		PROCPTR PTR SADD STRPTR VARPTR

syn keyword	freebasicPredefined		__DATE__ __FB_DOS__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__
syn keyword	freebasicPredefined		__FB_SIGNATURE__ __FB_VERSION__ __FB_WIN32__ __FB_VER_MAJOR__
syn keyword	freebasicPredefined		__FB_VER_MINOR__ __FB_VER_PATCH__ __FILE__ __FUNCTION__
syn keyword	freebasicPredefined		__LINE__ __TIME__

syn match	freebasicPreProcessor		"\<^#\s*\(define\|undef\)\>"
syn match	freebasicPreProcessor		"\<^#\s*\(ifdef\|ifndef\|else\|elseif\|endif\|if\)\>"
syn match	freebasicPreProcessor		"\<#\s*error\>"
syn match	freebasicPreProcessor		"\<#\s*\(print\|dynamic\|static\)\>"
syn keyword	freebasicPreProcessor		DEFINED ONCE

syn keyword	freebasicProgramFlow		END EXIT GOSUB GOTO
syn keyword	freebasicProgramFlow		IS RETURN SCOPE SLEEP

syn keyword	freebasicString			INSTR LCASE LEFT LEN LSET LTRIM MID RIGHT RSET RTRIM
syn keyword	freebasicString			SPACE STRING TRIM UCASE ASC BIN CHR CVD CVI CVL CVLONGINT
syn keyword	freebasicString			CVS CVSHORT FORMAT HEX MKD MKI MKL MKLONGINT MKS MKSHORT
syn keyword	freebasicString			OCT STR VAL VALLNG VALINT VALUINT VALULNG

syn keyword	freebasicTypeCasting		CAST CBYTE CDBL CINT CLNG CLNGINT CPTR CSHORT CSIGN CSNG
syn keyword	freebasicTypeCasting		CUBYTE CUINT CULNGINT CUNSG CURDIR CUSHORT

syn match	freebasicUserInput		"\<line\s+input\>"
syn keyword	freebasicUserInput		GETJOYSTICK GETKEY GETMOUSE INKEY INPUT MULTIKEY SETMOUSE
"
"	Do the Basic variables names first.  This is because it
"	is the most inclusive of the tests.  Later on we change
"	this so the identifiers are split up into the various
"	types of identifiers like functions, basic commands and
"	such. MEM 9/9/2006
"
syn match	freebasicIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
syn match	freebasicGenericFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
"
"	Function list
"
syn keyword	freebasicTodo		contained TODO
"
"	Catch errors caused by wrong parenthesis
"
syn region	freebasicParen		transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup
syn match	freebasicParenError	")"
syn match	freebasicInParen	contained "[{}]"
syn cluster	freebasicParenGroup	contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField
"
"	Integer number, or floating point number without a dot and with "f".
"
syn region	freebasicHex		start="&h" end="\W"
syn region	freebasicHexError	start="&h\x*[g-zG-Z]" end="\W"
syn match	freebasicInteger	"\<\d\+\(u\=l\=\|lu\|f\)\>"
"
"	Floating point number, with dot, optional exponent
"
syn match	freebasicFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"
"	Floating point number, starting with a dot, optional exponent
"
syn match	freebasicFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"
"	Floating point number, without dot, with exponent
"
syn match	freebasicFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
"
"	Hex number
"
syn case match
syn match	freebasicOctal		"\<0\o*\>"
syn match	freebasicOctalError	"\<0\o*[89]"
"
"	String and Character contstants
"
syn region	freebasicString		start='"' end='"' contains=freebasicSpecial,freebasicTodo
syn region	freebasicString		start="'" end="'" contains=freebasicSpecial,freebasicTodo
"
"	Comments
"
syn match	freebasicSpecial	contained "\\."
syn region	freebasicComment	start="^rem" end="$" contains=freebasicSpecial,freebasicTodo
syn region	freebasicComment	start=":\s*rem" end="$" contains=freebasicSpecial,freebasicTodo
syn region	freebasicComment	start="\s*'" end="$" contains=freebasicSpecial,freebasicTodo
syn region	freebasicComment	start="^'" end="$" contains=freebasicSpecial,freebasicTodo
"
"	Now do the comments and labels
"
syn match	freebasicLabel		"^\d"
syn match	freebasicLabel		"\<^\w+:\>"
syn region	freebasicLineNumber	start="^\d" end="\s"
"
"	Create the clusters
"
syn cluster	freebasicNumber		contains=freebasicHex,freebasicOctal,freebasicInteger,freebasicFloat
syn cluster	freebasicError		contains=freebasicHexError,freebasicOctalError
"
"	Used with OPEN statement
"
syn match	freebasicFilenumber	"#\d\+"
syn match	freebasicMathOperator	"[\+\-\=\|\*\/\>\<\%\()[\]]" contains=freebasicParen
"
"	The default methods for highlighting.  Can be overridden later
"
hi def link freebasicArrays		StorageClass
hi def link freebasicBitManipulation	Operator
hi def link freebasicCompilerSwitches	PreCondit
hi def link freebasicConsole		Special
hi def link freebasicDataTypes		Type
hi def link freebasicDateTime		Type
hi def link freebasicDebug		Special
hi def link freebasicErrorHandling	Special
hi def link freebasicFiles		Special
hi def link freebasicFunctions		Function
hi def link freebasicGraphics		Function
hi def link freebasicHardware		Special
hi def link freebasicLogical		Conditional
hi def link freebasicMath		Function
hi def link freebasicMemory		Function
hi def link freebasicMisc		Special
hi def link freebasicModularizing	Special
hi def link freebasicMultithreading	Special
hi def link freebasicShell		Special
hi def link freebasicEnviron		Special
hi def link freebasicPointer		Special
hi def link freebasicPredefined		PreProc
hi def link freebasicPreProcessor	PreProc
hi def link freebasicProgramFlow	Statement
hi def link freebasicString		String
hi def link freebasicTypeCasting	Type
hi def link freebasicUserInput		Statement
hi def link freebasicComment		Comment
hi def link freebasicConditional	Conditional
hi def link freebasicError		Error
hi def link freebasicIdentifier		Identifier
hi def link freebasicInclude		Include
hi def link freebasicGenericFunction	Function
hi def link freebasicLabel		Label
hi def link freebasicLineNumber		Label
hi def link freebasicMathOperator	Operator
hi def link freebasicNumber		Number
hi def link freebasicSpecial		Special
hi def link freebasicTodo		Todo

let b:current_syntax = "freebasic"

" vim: ts=8
PK�j�Z��*�7�7vim80/syntax/asm68k.vimnu�[���" Vim syntax file
" Language:	Motorola 68000 Assembler
" Maintainer:	Steve Wall
" Last change:	2001 May 01
"
" This is incomplete.  In particular, support for 68020 and
" up and 68851/68881 co-processors is partial or non-existant.
" Feel free to contribute...
"

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Partial list of register symbols
syn keyword asm68kReg	a0 a1 a2 a3 a4 a5 a6 a7 d0 d1 d2 d3 d4 d5 d6 d7
syn keyword asm68kReg	pc sr ccr sp usp ssp

" MC68010
syn keyword asm68kReg	vbr sfc sfcr dfc dfcr

" MC68020
syn keyword asm68kReg	msp isp zpc cacr caar
syn keyword asm68kReg	za0 za1 za2 za3 za4 za5 za6 za7
syn keyword asm68kReg	zd0 zd1 zd2 zd3 zd4 zd5 zd6 zd7

" MC68030
syn keyword asm68kReg	crp srp tc ac0 ac1 acusr tt0 tt1 mmusr

" MC68040
syn keyword asm68kReg	dtt0 dtt1 itt0 itt1 urp

" MC68851 registers
syn keyword asm68kReg	cal val scc crp srp drp tc ac psr pcsr
syn keyword asm68kReg	bac0 bac1 bac2 bac3 bac4 bac5 bac6 bac7
syn keyword asm68kReg	bad0 bad1 bad2 bad3 bad4 bad5 bad6 bad7

" MC68881/82 registers
syn keyword asm68kReg	fp0 fp1 fp2 fp3 fp4 fp5 fp6 fp7
syn keyword asm68kReg	control status iaddr fpcr fpsr fpiar

" M68000 opcodes - order is important!
syn match asm68kOpcode "\<abcd\(\.b\)\=\s"
syn match asm68kOpcode "\<adda\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<addi\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<addq\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<addx\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<add\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<andi\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<and\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<as[lr]\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<b[vc][cs]\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<beq\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<bg[et]\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<b[hm]i\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<bl[est]\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<bne\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<bpl\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<bchg\(\.[bl]\)\=\s"
syn match asm68kOpcode "\<bclr\(\.[bl]\)\=\s"
syn match asm68kOpcode "\<bfchg\s"
syn match asm68kOpcode "\<bfclr\s"
syn match asm68kOpcode "\<bfexts\s"
syn match asm68kOpcode "\<bfextu\s"
syn match asm68kOpcode "\<bfffo\s"
syn match asm68kOpcode "\<bfins\s"
syn match asm68kOpcode "\<bfset\s"
syn match asm68kOpcode "\<bftst\s"
syn match asm68kOpcode "\<bkpt\s"
syn match asm68kOpcode "\<bra\(\.[bwls]\)\=\s"
syn match asm68kOpcode "\<bset\(\.[bl]\)\=\s"
syn match asm68kOpcode "\<bsr\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<btst\(\.[bl]\)\=\s"
syn match asm68kOpcode "\<callm\s"
syn match asm68kOpcode "\<cas2\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<cas\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<chk2\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<chk\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<clr\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<cmpa\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<cmpi\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<cmpm\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<cmp2\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<cmp\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<db[cv][cs]\(\.w\)\=\s"
syn match asm68kOpcode "\<dbeq\(\.w\)\=\s"
syn match asm68kOpcode "\<db[ft]\(\.w\)\=\s"
syn match asm68kOpcode "\<dbg[et]\(\.w\)\=\s"
syn match asm68kOpcode "\<db[hm]i\(\.w\)\=\s"
syn match asm68kOpcode "\<dbl[est]\(\.w\)\=\s"
syn match asm68kOpcode "\<dbne\(\.w\)\=\s"
syn match asm68kOpcode "\<dbpl\(\.w\)\=\s"
syn match asm68kOpcode "\<dbra\(\.w\)\=\s"
syn match asm68kOpcode "\<div[su]\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<div[su]l\(\.l\)\=\s"
syn match asm68kOpcode "\<eori\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<eor\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<exg\(\.l\)\=\s"
syn match asm68kOpcode "\<extb\(\.l\)\=\s"
syn match asm68kOpcode "\<ext\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<illegal\>"
syn match asm68kOpcode "\<jmp\(\.[ls]\)\=\s"
syn match asm68kOpcode "\<jsr\(\.[ls]\)\=\s"
syn match asm68kOpcode "\<lea\(\.l\)\=\s"
syn match asm68kOpcode "\<link\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<ls[lr]\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<movea\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<movec\(\.l\)\=\s"
syn match asm68kOpcode "\<movem\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<movep\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<moveq\(\.l\)\=\s"
syn match asm68kOpcode "\<moves\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<move\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<mul[su]\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<nbcd\(\.b\)\=\s"
syn match asm68kOpcode "\<negx\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<neg\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<nop\>"
syn match asm68kOpcode "\<not\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<ori\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<or\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<pack\s"
syn match asm68kOpcode "\<pea\(\.l\)\=\s"
syn match asm68kOpcode "\<reset\>"
syn match asm68kOpcode "\<ro[lr]\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<rox[lr]\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<rt[dm]\s"
syn match asm68kOpcode "\<rt[ers]\>"
syn match asm68kOpcode "\<sbcd\(\.b\)\=\s"
syn match asm68kOpcode "\<s[cv][cs]\(\.b\)\=\s"
syn match asm68kOpcode "\<seq\(\.b\)\=\s"
syn match asm68kOpcode "\<s[ft]\(\.b\)\=\s"
syn match asm68kOpcode "\<sg[et]\(\.b\)\=\s"
syn match asm68kOpcode "\<s[hm]i\(\.b\)\=\s"
syn match asm68kOpcode "\<sl[est]\(\.b\)\=\s"
syn match asm68kOpcode "\<sne\(\.b\)\=\s"
syn match asm68kOpcode "\<spl\(\.b\)\=\s"
syn match asm68kOpcode "\<suba\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<subi\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<subq\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<subx\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<sub\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<swap\(\.w\)\=\s"
syn match asm68kOpcode "\<tas\(\.b\)\=\s"
syn match asm68kOpcode "\<tdiv[su]\(\.l\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=[cv][cs]\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=eq\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=[ft]\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=g[et]\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=[hm]i\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=l[est]\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=ne\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=pl\(\.[wl]\)\=\s"
syn match asm68kOpcode "\<t\(rap\)\=v\>"
syn match asm68kOpcode "\<t\(rap\)\=[cv][cs]\>"
syn match asm68kOpcode "\<t\(rap\)\=eq\>"
syn match asm68kOpcode "\<t\(rap\)\=[ft]\>"
syn match asm68kOpcode "\<t\(rap\)\=g[et]\>"
syn match asm68kOpcode "\<t\(rap\)\=[hm]i\>"
syn match asm68kOpcode "\<t\(rap\)\=l[est]\>"
syn match asm68kOpcode "\<t\(rap\)\=ne\>"
syn match asm68kOpcode "\<t\(rap\)\=pl\>"
syn match asm68kOpcode "\<trap\s"
syn match asm68kOpcode "\<tst\(\.[bwl]\)\=\s"
syn match asm68kOpcode "\<unlk\s"
syn match asm68kOpcode "\<unpk\s"

" Valid labels
syn match asm68kLabel		"^[a-z_?.][a-z0-9_?.$]*$"
syn match asm68kLabel		"^[a-z_?.][a-z0-9_?.$]*\s"he=e-1
syn match asm68kLabel		"^\s*[a-z_?.][a-z0-9_?.$]*:"he=e-1

" Various number formats
syn match hexNumber		"\$[0-9a-fA-F]\+\>"
syn match hexNumber		"\<[0-9][0-9a-fA-F]*H\>"
syn match octNumber		"@[0-7]\+\>"
syn match octNumber		"\<[0-7]\+[QO]\>"
syn match binNumber		"%[01]\+\>"
syn match binNumber		"\<[01]\+B\>"
syn match decNumber		"\<[0-9]\+D\=\>"
syn match floatE		"_*E_*" contained
syn match floatExponent		"_*E_*[-+]\=[0-9]\+" contained contains=floatE
syn match floatNumber		"[-+]\=[0-9]\+_*E_*[-+]\=[0-9]\+" contains=floatExponent
syn match floatNumber		"[-+]\=[0-9]\+\.[0-9]\+\(E[-+]\=[0-9]\+\)\=" contains=floatExponent
syn match floatNumber		":\([0-9a-f]\+_*\)\+"

" Character string constants
syn match asm68kStringError	"'[ -~]*'"
syn match asm68kStringError	"'[ -~]*$"
syn region asm68kString		start="'" skip="''" end="'" oneline contains=asm68kCharError
syn match asm68kCharError	"[^ -~]" contained

" Immediate data
syn match asm68kImmediate	"#\$[0-9a-fA-F]\+" contains=hexNumber
syn match asm68kImmediate	"#[0-9][0-9a-fA-F]*H" contains=hexNumber
syn match asm68kImmediate	"#@[0-7]\+" contains=octNumber
syn match asm68kImmediate	"#[0-7]\+[QO]" contains=octNumber
syn match asm68kImmediate	"#%[01]\+" contains=binNumber
syn match asm68kImmediate	"#[01]\+B" contains=binNumber
syn match asm68kImmediate	"#[0-9]\+D\=" contains=decNumber
syn match asm68kSymbol		"[a-z_?.][a-z0-9_?.$]*" contained
syn match asm68kImmediate	"#[a-z_?.][a-z0-9_?.]*" contains=asm68kSymbol

" Special items for comments
syn keyword asm68kTodo		contained TODO

" Operators
syn match asm68kOperator	"[-+*/]"	" Must occur before Comments
syn match asm68kOperator	"\.SIZEOF\."
syn match asm68kOperator	"\.STARTOF\."
syn match asm68kOperator	"<<"		" shift left
syn match asm68kOperator	">>"		" shift right
syn match asm68kOperator	"&"		" bit-wise logical and
syn match asm68kOperator	"!"		" bit-wise logical or
syn match asm68kOperator	"!!"		" exclusive or
syn match asm68kOperator	"<>"		" inequality
syn match asm68kOperator	"="		" must be before other ops containing '='
syn match asm68kOperator	">="
syn match asm68kOperator	"<="
syn match asm68kOperator	"=="		" operand existance - used in macro definitions

" Condition code style operators
syn match asm68kOperator	"<[CV][CS]>"
syn match asm68kOperator	"<EQ>"
syn match asm68kOperator	"<G[TE]>"
syn match asm68kOperator	"<[HM]I>"
syn match asm68kOperator	"<L[SET]>"
syn match asm68kOperator	"<NE>"
syn match asm68kOperator	"<PL>"

" Comments
syn match asm68kComment		";.*" contains=asm68kTodo
syn match asm68kComment		"\s!.*"ms=s+1 contains=asm68kTodo
syn match asm68kComment		"^\s*[*!].*" contains=asm68kTodo

" Include
syn match asm68kInclude		"\<INCLUDE\s"

" Standard macros
syn match asm68kCond		"\<IF\(\.[BWL]\)\=\s"
syn match asm68kCond		"\<THEN\(\.[SL]\)\=\>"
syn match asm68kCond		"\<ELSE\(\.[SL]\)\=\>"
syn match asm68kCond		"\<ENDI\>"
syn match asm68kCond		"\<BREAK\(\.[SL]\)\=\>"
syn match asm68kRepeat		"\<FOR\(\.[BWL]\)\=\s"
syn match asm68kRepeat		"\<DOWNTO\s"
syn match asm68kRepeat		"\<TO\s"
syn match asm68kRepeat		"\<BY\s"
syn match asm68kRepeat		"\<DO\(\.[SL]\)\=\>"
syn match asm68kRepeat		"\<ENDF\>"
syn match asm68kRepeat		"\<NEXT\(\.[SL]\)\=\>"
syn match asm68kRepeat		"\<REPEAT\>"
syn match asm68kRepeat		"\<UNTIL\(\.[BWL]\)\=\s"
syn match asm68kRepeat		"\<WHILE\(\.[BWL]\)\=\s"
syn match asm68kRepeat		"\<ENDW\>"

" Macro definition
syn match asm68kMacro		"\<MACRO\>"
syn match asm68kMacro		"\<LOCAL\s"
syn match asm68kMacro		"\<MEXIT\>"
syn match asm68kMacro		"\<ENDM\>"
syn match asm68kMacroParam	"\\[0-9]"

" Conditional assembly
syn match asm68kPreCond		"\<IFC\s"
syn match asm68kPreCond		"\<IFDEF\s"
syn match asm68kPreCond		"\<IFEQ\s"
syn match asm68kPreCond		"\<IFGE\s"
syn match asm68kPreCond		"\<IFGT\s"
syn match asm68kPreCond		"\<IFLE\s"
syn match asm68kPreCond		"\<IFLT\s"
syn match asm68kPreCond		"\<IFNC\>"
syn match asm68kPreCond		"\<IFNDEF\s"
syn match asm68kPreCond		"\<IFNE\s"
syn match asm68kPreCond		"\<ELSEC\>"
syn match asm68kPreCond		"\<ENDC\>"

" Loop control
syn match asm68kPreCond		"\<REPT\s"
syn match asm68kPreCond		"\<IRP\s"
syn match asm68kPreCond		"\<IRPC\s"
syn match asm68kPreCond		"\<ENDR\>"

" Directives
syn match asm68kDirective	"\<ALIGN\s"
syn match asm68kDirective	"\<CHIP\s"
syn match asm68kDirective	"\<COMLINE\s"
syn match asm68kDirective	"\<COMMON\(\.S\)\=\s"
syn match asm68kDirective	"\<DC\(\.[BWLSDXP]\)\=\s"
syn match asm68kDirective	"\<DC\.\\[0-9]\s"me=e-3	" Special use in a macro def
syn match asm68kDirective	"\<DCB\(\.[BWLSDXP]\)\=\s"
syn match asm68kDirective	"\<DS\(\.[BWLSDXP]\)\=\s"
syn match asm68kDirective	"\<END\>"
syn match asm68kDirective	"\<EQU\s"
syn match asm68kDirective	"\<FEQU\(\.[SDXP]\)\=\s"
syn match asm68kDirective	"\<FAIL\>"
syn match asm68kDirective	"\<FOPT\s"
syn match asm68kDirective	"\<\(NO\)\=FORMAT\>"
syn match asm68kDirective	"\<IDNT\>"
syn match asm68kDirective	"\<\(NO\)\=LIST\>"
syn match asm68kDirective	"\<LLEN\s"
syn match asm68kDirective	"\<MASK2\>"
syn match asm68kDirective	"\<NAME\s"
syn match asm68kDirective	"\<NOOBJ\>"
syn match asm68kDirective	"\<OFFSET\s"
syn match asm68kDirective	"\<OPT\>"
syn match asm68kDirective	"\<ORG\(\.[SL]\)\=\>"
syn match asm68kDirective	"\<\(NO\)\=PAGE\>"
syn match asm68kDirective	"\<PLEN\s"
syn match asm68kDirective	"\<REG\s"
syn match asm68kDirective	"\<RESTORE\>"
syn match asm68kDirective	"\<SAVE\>"
syn match asm68kDirective	"\<SECT\(\.S\)\=\s"
syn match asm68kDirective	"\<SECTION\(\.S\)\=\s"
syn match asm68kDirective	"\<SET\s"
syn match asm68kDirective	"\<SPC\s"
syn match asm68kDirective	"\<TTL\s"
syn match asm68kDirective	"\<XCOM\s"
syn match asm68kDirective	"\<XDEF\s"
syn match asm68kDirective	"\<XREF\(\.S\)\=\s"

syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
" Comment Constant Error Identifier PreProc Special Statement Todo Type
"
" Constant		Boolean Character Number String
" Identifier		Function
" PreProc		Define Include Macro PreCondit
" Special		Debug Delimiter SpecialChar SpecialComment Tag
" Statement		Conditional Exception Keyword Label Operator Repeat
" Type		StorageClass Structure Typedef

hi def link asm68kComment		Comment
hi def link asm68kTodo		Todo

hi def link hexNumber		Number		" Constant
hi def link octNumber		Number		" Constant
hi def link binNumber		Number		" Constant
hi def link decNumber		Number		" Constant
hi def link floatNumber		Number		" Constant
hi def link floatExponent		Number		" Constant
hi def link floatE			SpecialChar	" Statement
"hi def link floatE		Number		" Constant

hi def link asm68kImmediate	SpecialChar	" Statement
"hi def link asm68kSymbol		Constant

hi def link asm68kString		String		" Constant
hi def link asm68kCharError	Error
hi def link asm68kStringError	Error

hi def link asm68kReg		Identifier
hi def link asm68kOperator		Identifier

hi def link asm68kInclude		Include		" PreProc
hi def link asm68kMacro		Macro		" PreProc
hi def link asm68kMacroParam	Keyword		" Statement

hi def link asm68kDirective	Special
hi def link asm68kPreCond		Special


hi def link asm68kOpcode		Statement
hi def link asm68kCond		Conditional	" Statement
hi def link asm68kRepeat		Repeat		" Statement

hi def link asm68kLabel		Type

let b:current_syntax = "asm68k"

" vim: ts=8 sw=2
PK�j�Z���ϙ�vim80/syntax/scss.vimnu�[���" Vim syntax file
" Language:	SCSS
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Filenames:	*.scss
" Last Change:	2010 Jul 26

if exists("b:current_syntax")
  finish
endif

runtime! syntax/sass.vim

syn match scssComment "//.*" contains=sassTodo,@Spell
syn region scssComment start="/\*" end="\*/" contains=sassTodo,@Spell

hi def link scssComment sassComment

let b:current_syntax = "scss"

" vim:set sw=2:
PK�j�ZPd���vim80/syntax/pilrc.vimnu�[���" Vim syntax file
" Language:	pilrc - a resource compiler for Palm OS development
" Maintainer:	Brian Schau <brian@schau.com>
" Last change:	2003 May 11
" Available on:	http://www.schau.com/pilrcvim/pilrc.vim

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn case ignore

" Notes: TRANSPARENT, FONT and FONT ID are defined in the specials
"	 section below.   Beware of the order of the specials!
"	 Look in the syntax.txt and usr_27.txt files in vim\vim{version}\doc
"	 directory for regexps etc.

" Keywords - basic
syn keyword pilrcKeyword ALERT APPLICATION APPLICATIONICONNAME AREA
syn keyword pilrcKeyword BITMAP BITMAPCOLOR BITMAPCOLOR16 BITMAPCOLOR16K
syn keyword pilrcKeyword BITMAPFAMILY BITMAPFAMILYEX BITMAPFAMILYSPECIAL
syn keyword pilrcKeyword BITMAPGREY BITMAPGREY16 BITMAPSCREENFAMILY
syn keyword pilrcKeyword BOOTSCREENFAMILY BUTTON BUTTONS BYTELIST
syn keyword pilrcKeyword CATEGORIES CHECKBOX COUNTRYLOCALISATION
syn keyword pilrcKeyword DATA
syn keyword pilrcKeyword FEATURE FIELD FONTINDEX FORM FORMBITMAP
syn keyword pilrcKeyword GADGET GENERATEHEADER
syn keyword pilrcKeyword GRAFFITIINPUTAREA GRAFFITISTATEINDICATOR
syn keyword pilrcKeyword HEX
syn keyword pilrcKeyword ICON ICONFAMILY ICONFAMILYEX INTEGER
syn keyword pilrcKeyword KEYBOARD
syn keyword pilrcKeyword LABEL LAUNCHERCATEGORY LIST LONGWORDLIST
syn keyword pilrcKeyword MENU MENUITEM MESSAGE  MIDI
syn keyword pilrcKeyword PALETTETABLE POPUPLIST POPUPTRIGGER
syn keyword pilrcKeyword PULLDOWN PUSHBUTTON
syn keyword pilrcKeyword REPEATBUTTON RESETAUTOID
syn keyword pilrcKeyword SCROLLBAR SELECTORTRIGGER SLIDER SMALLICON
syn keyword pilrcKeyword SMALLICONFAMILY SMALLICONFAMILYEX STRING STRINGTABLE
syn keyword pilrcKeyword TABLE TITLE TRANSLATION TRAP
syn keyword pilrcKeyword VERSION
syn keyword pilrcKeyword WORDLIST

" Types
syn keyword pilrcType AT AUTOSHIFT
syn keyword pilrcType BACKGROUNDID BITMAPID BOLDFRAME BPP
syn keyword pilrcType CHECKED COLORTABLE COLUMNS COLUMNWIDTHS COMPRESS
syn keyword pilrcType COMPRESSBEST COMPRESSPACKBITS COMPRESSRLE COMPRESSSCANLINE
syn keyword pilrcType CONFIRMATION COUNTRY CREATOR CURRENCYDECIMALPLACES
syn keyword pilrcType CURRENCYNAME CURRENCYSYMBOL CURRENCYUNIQUESYMBOL
syn keyword pilrcType DATEFORMAT DAYLIGHTSAVINGS DEFAULTBTNID DEFAULTBUTTON
syn keyword pilrcType DENSITY DISABLED DYNAMICSIZE
syn keyword pilrcType EDITABLE ENTRY ERROR EXTENDED
syn keyword pilrcType FEEDBACK FILE FONTID FORCECOMPRESS FRAME
syn keyword pilrcType GRAFFITI GRAPHICAL GROUP
syn keyword pilrcType HASSCROLLBAR HELPID
syn keyword pilrcType ID INDEX INFORMATION
syn keyword pilrcType KEYDOWNCHR KEYDOWNKEYCODE KEYDOWNMODIFIERS
syn keyword pilrcType LANGUAGE LEFTALIGN LEFTANCHOR LONGDATEFORMAT
syn keyword pilrcType MAX MAXCHARS MEASUREMENTSYSTEM MENUID MIN LOCALE
syn keyword pilrcType MINUTESWESTOFGMT MODAL MULTIPLELINES
syn keyword pilrcType NAME NOCOLORTABLE NOCOMPRESS NOFRAME NONEDITABLE
syn keyword pilrcType NONEXTENDED NONUSABLE NOSAVEBEHIND NUMBER NUMBERFORMAT
syn keyword pilrcType NUMERIC
syn keyword pilrcType PAGESIZE
syn keyword pilrcType RECTFRAME RIGHTALIGN RIGHTANCHOR ROWS
syn keyword pilrcType SAVEBEHIND SEARCH SCREEN SELECTEDBITMAPID SINGLELINE
syn keyword pilrcType THUMBID TRANSPARENTINDEX TIMEFORMAT
syn keyword pilrcType UNDERLINED USABLE
syn keyword pilrcType VALUE VERTICAL VISIBLEITEMS
syn keyword pilrcType WARNING WEEKSTARTDAY

" Country
syn keyword pilrcCountry Australia Austria Belgium Brazil Canada Denmark
syn keyword pilrcCountry Finland France Germany HongKong Iceland Indian
syn keyword pilrcCountry Indonesia Ireland Italy Japan Korea Luxembourg Malaysia
syn keyword pilrcCountry Mexico Netherlands NewZealand Norway Philippines
syn keyword pilrcCountry RepChina Singapore Spain Sweden Switzerland Thailand
syn keyword pilrcCountry Taiwan UnitedKingdom UnitedStates

" Language
syn keyword pilrcLanguage English French German Italian Japanese Spanish

" String
syn match pilrcString "\"[^"]*\""

" Number
syn match pilrcNumber "\<0x\x\+\>"
syn match pilrcNumber "\<\d\+\>"

" Comment
syn region pilrcComment start="/\*" end="\*/"
syn region pilrcComment start="//" end="$"

" Constants
syn keyword pilrcConstant AUTO AUTOID BOTTOM CENTER PREVBOTTOM PREVHEIGHT
syn keyword pilrcConstant PREVLEFT PREVRIGHT PREVTOP PREVWIDTH RIGHT
syn keyword pilrcConstant SEPARATOR

" Identifier
syn match pilrcIdentifier "\<\h\w*\>"

" Specials
syn match pilrcType "\<FONT\>"
syn match pilrcKeyword "\<FONT\>\s*\<ID\>"
syn match pilrcType "\<TRANSPARENT\>"

" Function
syn keyword pilrcFunction BEGIN END

" Include
syn match pilrcInclude "\#include"
syn match pilrcInclude "\#define"
syn keyword pilrcInclude equ
syn keyword pilrcInclude package
syn region pilrcInclude start="public class" end="}"

syn sync ccomment pilrcComment


" The default methods for highlighting
hi def link pilrcKeyword		Statement
hi def link pilrcType		Type
hi def link pilrcError		Error
hi def link pilrcCountry		SpecialChar
hi def link pilrcLanguage		SpecialChar
hi def link pilrcString		SpecialChar
hi def link pilrcNumber		Number
hi def link pilrcComment		Comment
hi def link pilrcConstant		Constant
hi def link pilrcFunction		Function
hi def link pilrcInclude		SpecialChar
hi def link pilrcIdentifier		Number


let b:current_syntax = "pilrc"
PK�j�Zx�'�[�[vim80/syntax/zsh.vimnu�[���" Vim syntax file
" Language:             Zsh shell script
" Maintainer:           Christian Brabandt <cb@256bit.org>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2017-11-22
" License:              Vim (see :h license)
" Repository:           https://github.com/chrisbra/vim-zsh

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

if v:version > 704 || (v:version == 704 && has("patch1142"))
    syn iskeyword @,48-57,_,192-255,#,-
else
    setlocal iskeyword+=-
endif
if get(g:, 'zsh_fold_enable', 0)
    setlocal foldmethod=syntax
endif

syn keyword zshTodo             contained TODO FIXME XXX NOTE

syn region  zshComment          oneline start='\%(^\|\s\+\)#' end='$'
                                \ contains=zshTodo,@Spell fold

syn region  zshComment          start='^\s*#' end='^\%(\s*#\)\@!'
                                \ contains=zshTodo,@Spell fold

syn match   zshPreProc          '^\%1l#\%(!\|compdef\|autoload\).*$'

syn match   zshQuoted           '\\.'
syn region  zshString           matchgroup=zshStringDelimiter start=+"+ end=+"+
                                \ contains=zshQuoted,@zshDerefs,@zshSubst fold
syn region  zshString           matchgroup=zshStringDelimiter start=+'+ end=+'+ fold
" XXX: This should probably be more precise, but Zsh seems a bit confused about it itself
syn region  zshPOSIXString      matchgroup=zshStringDelimiter start=+\$'+
                                \ end=+'+ contains=zshQuoted
syn match   zshJobSpec          '%\(\d\+\|?\=\w\+\|[%+-]\)'

syn keyword zshPrecommand       noglob nocorrect exec command builtin - time

syn keyword zshDelimiter        do done end

syn keyword zshConditional      if then elif else fi case in esac select

syn keyword zshRepeat           while until repeat

syn keyword zshRepeat           for foreach nextgroup=zshVariable skipwhite

syn keyword zshException        always

syn keyword zshKeyword          function nextgroup=zshKSHFunction skipwhite

syn match   zshKSHFunction      contained '\w\S\+'
syn match   zshFunction         '^\s*\k\+\ze\s*()'

syn match   zshOperator         '||\|&&\|;\|&!\='

syn match   zshRedir            '\d\=\(<\|<>\|<<<\|<&\s*[0-9p-]\=\)'
syn match   zshRedir            '\d\=\(>\|>>\|>&\s*[0-9p-]\=\|&>\|>>&\|&>>\)[|!]\='
syn match   zshRedir            '|&\='

syn region  zshHereDoc          matchgroup=zshRedir
                                \ start='<\@<!<<\s*\z([^<]\S*\)'
                                \ end='^\z1\>'
                                \ contains=@zshSubst
syn region  zshHereDoc          matchgroup=zshRedir
                                \ start='<\@<!<<\s*\\\z(\S\+\)'
                                \ end='^\z1\>'
                                \ contains=@zshSubst
syn region  zshHereDoc          matchgroup=zshRedir
                                \ start='<\@<!<<-\s*\\\=\z(\S\+\)'
                                \ end='^\s*\z1\>'
                                \ contains=@zshSubst
syn region  zshHereDoc          matchgroup=zshRedir
                                \ start=+<\@<!<<\s*\(["']\)\z(\S\+\)\1+
                                \ end='^\z1\>'
syn region  zshHereDoc          matchgroup=zshRedir
                                \ start=+<\@<!<<-\s*\(["']\)\z(\S\+\)\1+
                                \ end='^\s*\z1\>'

syn match   zshVariable         '\<\h\w*' contained

syn match   zshVariableDef      '\<\h\w*\ze+\=='
" XXX: how safe is this?
syn region  zshVariableDef      oneline
                                \ start='\$\@<!\<\h\w*\[' end='\]\ze+\?=\?'
                                \ contains=@zshSubst

syn cluster zshDerefs           contains=zshShortDeref,zshLongDeref,zshDeref,zshDollarVar

syn match zshShortDeref       '\$[!#$*@?_-]\w\@!'
syn match zshShortDeref       '\$[=^~]*[#+]*\d\+\>'

syn match zshLongDeref        '\$\%(ARGC\|argv\|status\|pipestatus\|CPUTYPE\|EGID\|EUID\|ERRNO\|GID\|HOST\|LINENO\|LOGNAME\)'
syn match zshLongDeref        '\$\%(MACHTYPE\|OLDPWD OPTARG\|OPTIND\|OSTYPE\|PPID\|PWD\|RANDOM\|SECONDS\|SHLVL\|signals\)'
syn match zshLongDeref        '\$\%(TRY_BLOCK_ERROR\|TTY\|TTYIDLE\|UID\|USERNAME\|VENDOR\|ZSH_NAME\|ZSH_VERSION\|REPLY\|reply\|TERM\)'

syn match zshDollarVar        '\$\h\w*'
syn match zshDeref            '\$[=^~]*[#+]*\h\w*\>'

syn match   zshCommands         '\%(^\|\s\)[.:]\ze\s'
syn keyword zshCommands         alias autoload bg bindkey break bye cap cd
                                \ chdir clone comparguments compcall compctl
                                \ compdescribe compfiles compgroups compquote
                                \ comptags comptry compvalues continue dirs
                                \ disable disown echo echotc echoti emulate
                                \ enable eval exec exit export false fc fg
                                \ functions getcap getln getopts hash history
                                \ jobs kill let limit log logout popd print
                                \ printf pushd pushln pwd r read readonly
                                \ rehash return sched set setcap shift
                                \ source stat suspend test times trap true
                                \ ttyctl type ulimit umask unalias unfunction
                                \ unhash unlimit unset  vared wait
                                \ whence where which zcompile zformat zftp zle
                                \ zmodload zparseopts zprof zpty zregexparse
                                \ zsocket zstyle ztcp

" Options, generated by: echo ${(j:\n:)options[(I)*]} | sort
" Create a list of option names from zsh source dir:
"     #!/bin/zsh
"    topdir=/path/to/zsh-xxx
"    grep '^pindex([A-Za-z_]*)$' $topdir/Src/Doc/Zsh/optionsyo |
"    while read opt
"    do
"        echo ${${(L)opt#pindex\(}%\)}
"    done

syn case ignore

syn match   zshOptStart /^\s*\%(\%(\%(un\)\?setopt\)\|set\s+[-+]o\)/ nextgroup=zshOption skipwhite
syn match   zshOption /
      \ \%(\%(\<no_\?\)\?aliases\>\)\|
      \ \%(\%(\<no_\?\)\?allexport\>\)\|\%(\%(no_\?\)\?all_export\>\)\|
      \ \%(\%(\<no_\?\)\?alwayslastprompt\>\)\|\%(\%(no_\?\)\?always_last_prompt\>\)\|\%(\%(no_\?\)\?always_lastprompt\>\)\|
      \ \%(\%(\<no_\?\)\?alwaystoend\>\)\|\%(\%(no_\?\)\?always_to_end\>\)\|
      \ \%(\%(\<no_\?\)\?appendcreate\>\)\|\%(\%(no_\?\)\?append_create\>\)\|
      \ \%(\%(\<no_\?\)\?appendhistory\>\)\|\%(\%(no_\?\)\?append_history\>\)\|
      \ \%(\%(\<no_\?\)\?autocd\>\)\|\%(\%(no_\?\)\?auto_cd\>\)\|
      \ \%(\%(\<no_\?\)\?autocontinue\>\)\|\%(\%(no_\?\)\?auto_continue\>\)\|
      \ \%(\%(\<no_\?\)\?autolist\>\)\|\%(\%(no_\?\)\?auto_list\>\)\|
      \ \%(\%(\<no_\?\)\?automenu\>\)\|\%(\%(no_\?\)\?auto_menu\>\)\|
      \ \%(\%(\<no_\?\)\?autonamedirs\>\)\|\%(\%(no_\?\)\?auto_name_dirs\>\)\|
      \ \%(\%(\<no_\?\)\?autoparamkeys\>\)\|\%(\%(no_\?\)\?auto_param_keys\>\)\|
      \ \%(\%(\<no_\?\)\?autoparamslash\>\)\|\%(\%(no_\?\)\?auto_param_slash\>\)\|
      \ \%(\%(\<no_\?\)\?autopushd\>\)\|\%(\%(no_\?\)\?auto_pushd\>\)\|
      \ \%(\%(\<no_\?\)\?autoremoveslash\>\)\|\%(\%(no_\?\)\?auto_remove_slash\>\)\|
      \ \%(\%(\<no_\?\)\?autoresume\>\)\|\%(\%(no_\?\)\?auto_resume\>\)\|
      \ \%(\%(\<no_\?\)\?badpattern\>\)\|\%(\%(no_\?\)\?bad_pattern\>\)\|
      \ \%(\%(\<no_\?\)\?banghist\>\)\|\%(\%(no_\?\)\?bang_hist\>\)\|
      \ \%(\%(\<no_\?\)\?bareglobqual\>\)\|\%(\%(no_\?\)\?bare_glob_qual\>\)\|
      \ \%(\%(\<no_\?\)\?bashautolist\>\)\|\%(\%(no_\?\)\?bash_auto_list\>\)\|
      \ \%(\%(\<no_\?\)\?bashrematch\>\)\|\%(\%(no_\?\)\?bash_rematch\>\)\|
      \ \%(\%(\<no_\?\)\?beep\>\)\|
      \ \%(\%(\<no_\?\)\?bgnice\>\)\|\%(\%(no_\?\)\?bg_nice\>\)\|
      \ \%(\%(\<no_\?\)\?braceccl\>\)\|\%(\%(no_\?\)\?brace_ccl\>\)\|
      \ \%(\%(\<no_\?\)\?braceexpand\>\)\|\%(\%(no_\?\)\?brace_expand\>\)\|
      \ \%(\%(\<no_\?\)\?bsdecho\>\)\|\%(\%(no_\?\)\?bsd_echo\>\)\|
      \ \%(\%(\<no_\?\)\?caseglob\>\)\|\%(\%(no_\?\)\?case_glob\>\)\|
      \ \%(\%(\<no_\?\)\?casematch\>\)\|\%(\%(no_\?\)\?case_match\>\)\|
      \ \%(\%(\<no_\?\)\?cbases\>\)\|\%(\%(no_\?\)\?c_bases\>\)\|
      \ \%(\%(\<no_\?\)\?cdablevars\>\)\|\%(\%(no_\?\)\?cdable_vars\>\)\|\%(\%(no_\?\)\?cd_able_vars\>\)\|
      \ \%(\%(\<no_\?\)\?chasedots\>\)\|\%(\%(no_\?\)\?chase_dots\>\)\|
      \ \%(\%(\<no_\?\)\?chaselinks\>\)\|\%(\%(no_\?\)\?chase_links\>\)\|
      \ \%(\%(\<no_\?\)\?checkjobs\>\)\|\%(\%(no_\?\)\?check_jobs\>\)\|
      \ \%(\%(\<no_\?\)\?clobber\>\)\|
      \ \%(\%(\<no_\?\)\?combiningchars\>\)\|\%(\%(no_\?\)\?combining_chars\>\)\|
      \ \%(\%(\<no_\?\)\?completealiases\>\)\|\%(\%(no_\?\)\?complete_aliases\>\)\|
      \ \%(\%(\<no_\?\)\?completeinword\>\)\|\%(\%(no_\?\)\?complete_in_word\>\)\|
      \ \%(\%(\<no_\?\)\?continueonerror\>\)\|\%(\%(no_\?\)\?continue_on_error\>\)\|
      \ \%(\%(\<no_\?\)\?correct\>\)\|
      \ \%(\%(\<no_\?\)\?correctall\>\)\|\%(\%(no_\?\)\?correct_all\>\)\|
      \ \%(\%(\<no_\?\)\?cprecedences\>\)\|\%(\%(no_\?\)\?c_precedences\>\)\|
      \ \%(\%(\<no_\?\)\?cshjunkiehistory\>\)\|\%(\%(no_\?\)\?csh_junkie_history\>\)\|
      \ \%(\%(\<no_\?\)\?cshjunkieloops\>\)\|\%(\%(no_\?\)\?csh_junkie_loops\>\)\|
      \ \%(\%(\<no_\?\)\?cshjunkiequotes\>\)\|\%(\%(no_\?\)\?csh_junkie_quotes\>\)\|
      \ \%(\%(\<no_\?\)\?csh_nullcmd\>\)\|\%(\%(no_\?\)\?csh_null_cmd\>\)\|\%(\%(no_\?\)\?cshnullcmd\>\)\|\%(\%(no_\?\)\?csh_null_cmd\>\)\|
      \ \%(\%(\<no_\?\)\?cshnullglob\>\)\|\%(\%(no_\?\)\?csh_null_glob\>\)\|
      \ \%(\%(\<no_\?\)\?debugbeforecmd\>\)\|\%(\%(no_\?\)\?debug_before_cmd\>\)\|
      \ \%(\%(\<no_\?\)\?dotglob\>\)\|\%(\%(no_\?\)\?dot_glob\>\)\|
      \ \%(\%(\<no_\?\)\?dvorak\>\)\|
      \ \%(\%(\<no_\?\)\?emacs\>\)\|
      \ \%(\%(\<no_\?\)\?equals\>\)\|
      \ \%(\%(\<no_\?\)\?errexit\>\)\|\%(\%(no_\?\)\?err_exit\>\)\|
      \ \%(\%(\<no_\?\)\?errreturn\>\)\|\%(\%(no_\?\)\?err_return\>\)\|
      \ \%(\%(\<no_\?\)\?evallineno_\?\)\|\%(\%(no_\?\)\?eval_lineno_\?\)\|
      \ \%(\%(\<no_\?\)\?exec\>\)\|
      \ \%(\%(\<no_\?\)\?extendedglob\>\)\|\%(\%(no_\?\)\?extended_glob\>\)\|
      \ \%(\%(\<no_\?\)\?extendedhistory\>\)\|\%(\%(no_\?\)\?extended_history\>\)\|
      \ \%(\%(\<no_\?\)\?flowcontrol\>\)\|\%(\%(no_\?\)\?flow_control\>\)\|
      \ \%(\%(\<no_\?\)\?forcefloat\>\)\|\%(\%(no_\?\)\?force_float\>\)\|
      \ \%(\%(\<no_\?\)\?functionargzero\>\)\|\%(\%(no_\?\)\?function_argzero\>\)\|\%(\%(no_\?\)\?function_arg_zero\>\)\|
      \ \%(\%(\<no_\?\)\?glob\>\)\|
      \ \%(\%(\<no_\?\)\?globalexport\>\)\|\%(\%(no_\?\)\?global_export\>\)\|
      \ \%(\%(\<no_\?\)\?globalrcs\>\)\|\%(\%(no_\?\)\?global_rcs\>\)\|
      \ \%(\%(\<no_\?\)\?globassign\>\)\|\%(\%(no_\?\)\?glob_assign\>\)\|
      \ \%(\%(\<no_\?\)\?globcomplete\>\)\|\%(\%(no_\?\)\?glob_complete\>\)\|
      \ \%(\%(\<no_\?\)\?globdots\>\)\|\%(\%(no_\?\)\?glob_dots\>\)\|
      \ \%(\%(\<no_\?\)\?glob_subst\>\)\|\%(\%(no_\?\)\?globsubst\>\)\|
      \ \%(\%(\<no_\?\)\?globstarshort\>\)\|\%(\%(no_\?\)\?glob_star_short\>\)\|
      \ \%(\%(\<no_\?\)\?hashall\>\)\|\%(\%(no_\?\)\?hash_all\>\)\|
      \ \%(\%(\<no_\?\)\?hashcmds\>\)\|\%(\%(no_\?\)\?hash_cmds\>\)\|
      \ \%(\%(\<no_\?\)\?hashdirs\>\)\|\%(\%(no_\?\)\?hash_dirs\>\)\|
      \ \%(\%(\<no_\?\)\?hashexecutablesonly\>\)\|\%(\%(no_\?\)\?hash_executables_only\>\)\|
      \ \%(\%(\<no_\?\)\?hashlistall\>\)\|\%(\%(no_\?\)\?hash_list_all\>\)\|
      \ \%(\%(\<no_\?\)\?histallowclobber\>\)\|\%(\%(no_\?\)\?hist_allow_clobber\>\)\|
      \ \%(\%(\<no_\?\)\?histappend\>\)\|\%(\%(no_\?\)\?hist_append\>\)\|
      \ \%(\%(\<no_\?\)\?histbeep\>\)\|\%(\%(no_\?\)\?hist_beep\>\)\|
      \ \%(\%(\<no_\?\)\?hist_expand\>\)\|\%(\%(no_\?\)\?histexpand\>\)\|
      \ \%(\%(\<no_\?\)\?hist_expire_dups_first\>\)\|\%(\%(no_\?\)\?histexpiredupsfirst\>\)\|
      \ \%(\%(\<no_\?\)\?histfcntllock\>\)\|\%(\%(no_\?\)\?hist_fcntl_lock\>\)\|
      \ \%(\%(\<no_\?\)\?histfindnodups\>\)\|\%(\%(no_\?\)\?hist_find_no_dups\>\)\|
      \ \%(\%(\<no_\?\)\?histignorealldups\>\)\|\%(\%(no_\?\)\?hist_ignore_all_dups\>\)\|
      \ \%(\%(\<no_\?\)\?histignoredups\>\)\|\%(\%(no_\?\)\?hist_ignore_dups\>\)\|
      \ \%(\%(\<no_\?\)\?histignorespace\>\)\|\%(\%(no_\?\)\?hist_ignore_space\>\)\|
      \ \%(\%(\<no_\?\)\?histlexwords\>\)\|\%(\%(no_\?\)\?hist_lex_words\>\)\|
      \ \%(\%(\<no_\?\)\?histnofunctions\>\)\|\%(\%(no_\?\)\?hist_no_functions\>\)\|
      \ \%(\%(\<no_\?\)\?histnostore\>\)\|\%(\%(no_\?\)\?hist_no_store\>\)\|
      \ \%(\%(\<no_\?\)\?histreduceblanks\>\)\|\%(\%(no_\?\)\?hist_reduce_blanks\>\)\|
      \ \%(\%(\<no_\?\)\?histsavebycopy\>\)\|\%(\%(no_\?\)\?hist_save_by_copy\>\)\|
      \ \%(\%(\<no_\?\)\?histsavenodups\>\)\|\%(\%(no_\?\)\?hist_save_no_dups\>\)\|
      \ \%(\%(\<no_\?\)\?histsubstpattern\>\)\|\%(\%(no_\?\)\?hist_subst_pattern\>\)\|
      \ \%(\%(\<no_\?\)\?histverify\>\)\|\%(\%(no_\?\)\?hist_verify\>\)\|
      \ \%(\%(\<no_\?\)\?hup\>\)\|
      \ \%(\%(\<no_\?\)\?ignorebraces\>\)\|\%(\%(no_\?\)\?ignore_braces\>\)\|
      \ \%(\%(\<no_\?\)\?ignoreclosebraces\>\)\|\%(\%(no_\?\)\?ignore_close_braces\>\)\|
      \ \%(\%(\<no_\?\)\?ignoreeof\>\)\|\%(\%(no_\?\)\?ignore_eof\>\)\|
      \ \%(\%(\<no_\?\)\?incappendhistory\>\)\|\%(\%(no_\?\)\?inc_append_history\>\)\|
      \ \%(\%(\<no_\?\)\?incappendhistorytime\>\)\|\%(\%(no_\?\)\?inc_append_history_time\>\)\|
      \ \%(\%(\<no_\?\)\?interactive\>\)\|
      \ \%(\%(\<no_\?\)\?interactivecomments\>\)\|\%(\%(no_\?\)\?interactive_comments\>\)\|
      \ \%(\%(\<no_\?\)\?ksharrays\>\)\|\%(\%(no_\?\)\?ksh_arrays\>\)\|
      \ \%(\%(\<no_\?\)\?kshautoload\>\)\|\%(\%(no_\?\)\?ksh_autoload\>\)\|
      \ \%(\%(\<no_\?\)\?kshglob\>\)\|\%(\%(no_\?\)\?ksh_glob\>\)\|
      \ \%(\%(\<no_\?\)\?kshoptionprint\>\)\|\%(\%(no_\?\)\?ksh_option_print\>\)\|
      \ \%(\%(\<no_\?\)\?kshtypeset\>\)\|\%(\%(no_\?\)\?ksh_typeset\>\)\|
      \ \%(\%(\<no_\?\)\?kshzerosubscript\>\)\|\%(\%(no_\?\)\?ksh_zero_subscript\>\)\|
      \ \%(\%(\<no_\?\)\?listambiguous\>\)\|\%(\%(no_\?\)\?list_ambiguous\>\)\|
      \ \%(\%(\<no_\?\)\?listbeep\>\)\|\%(\%(no_\?\)\?list_beep\>\)\|
      \ \%(\%(\<no_\?\)\?listpacked\>\)\|\%(\%(no_\?\)\?list_packed\>\)\|
      \ \%(\%(\<no_\?\)\?listrowsfirst\>\)\|\%(\%(no_\?\)\?list_rows_first\>\)\|
      \ \%(\%(\<no_\?\)\?listtypes\>\)\|\%(\%(no_\?\)\?list_types\>\)\|
      \ \%(\%(\<no_\?\)\?localloops\>\)\|\%(\%(no_\?\)\?local_loops\>\)\|
      \ \%(\%(\<no_\?\)\?localoptions\>\)\|\%(\%(no_\?\)\?local_options\>\)\|
      \ \%(\%(\<no_\?\)\?localpatterns\>\)\|\%(\%(no_\?\)\?local_patterns\>\)\|
      \ \%(\%(\<no_\?\)\?localtraps\>\)\|\%(\%(no_\?\)\?local_traps\>\)\|
      \ \%(\%(\<no_\?\)\?log\>\)\|
      \ \%(\%(\<no_\?\)\?login\>\)\|
      \ \%(\%(\<no_\?\)\?longlistjobs\>\)\|\%(\%(no_\?\)\?long_list_jobs\>\)\|
      \ \%(\%(\<no_\?\)\?magicequalsubst\>\)\|\%(\%(no_\?\)\?magic_equal_subst\>\)\|
      \ \%(\%(\<no_\?\)\?mark_dirs\>\)\|
      \ \%(\%(\<no_\?\)\?mailwarn\>\)\|\%(\%(no_\?\)\?mail_warn\>\)\|
      \ \%(\%(\<no_\?\)\?mailwarning\>\)\|\%(\%(no_\?\)\?mail_warning\>\)\|
      \ \%(\%(\<no_\?\)\?markdirs\>\)\|
      \ \%(\%(\<no_\?\)\?menucomplete\>\)\|\%(\%(no_\?\)\?menu_complete\>\)\|
      \ \%(\%(\<no_\?\)\?monitor\>\)\|
      \ \%(\%(\<no_\?\)\?multibyte\>\)\|\%(\%(no_\?\)\?multi_byte\>\)\|
      \ \%(\%(\<no_\?\)\?multifuncdef\>\)\|\%(\%(no_\?\)\?multi_func_def\>\)\|
      \ \%(\%(\<no_\?\)\?multios\>\)\|\%(\%(no_\?\)\?multi_os\>\)\|
      \ \%(\%(\<no_\?\)\?nomatch\>\)\|\%(\%(no_\?\)\?no_match\>\)\|
      \ \%(\%(\<no_\?\)\?notify\>\)\|
      \ \%(\%(\<no_\?\)\?nullglob\>\)\|\%(\%(no_\?\)\?null_glob\>\)\|
      \ \%(\%(\<no_\?\)\?numericglobsort\>\)\|\%(\%(no_\?\)\?numeric_glob_sort\>\)\|
      \ \%(\%(\<no_\?\)\?octalzeroes\>\)\|\%(\%(no_\?\)\?octal_zeroes\>\)\|
      \ \%(\%(\<no_\?\)\?onecmd\>\)\|\%(\%(no_\?\)\?one_cmd\>\)\|
      \ \%(\%(\<no_\?\)\?overstrike\>\)\|\%(\%(no_\?\)\?over_strike\>\)\|
      \ \%(\%(\<no_\?\)\?pathdirs\>\)\|\%(\%(no_\?\)\?path_dirs\>\)\|
      \ \%(\%(\<no_\?\)\?pathscript\>\)\|\%(\%(no_\?\)\?path_script\>\)\|
      \ \%(\%(\<no_\?\)\?physical\>\)\|
      \ \%(\%(\<no_\?\)\?pipefail\>\)\|\%(\%(no_\?\)\?pipe_fail\>\)\|
      \ \%(\%(\<no_\?\)\?posixaliases\>\)\|\%(\%(no_\?\)\?posix_aliases\>\)\|
      \ \%(\%(\<no_\?\)\?posixargzero\>\)\|\%(\%(no_\?\)\?posix_arg_zero\>\)\|\%(\%(no_\?\)\?posix_argzero\>\)\|
      \ \%(\%(\<no_\?\)\?posixbuiltins\>\)\|\%(\%(no_\?\)\?posix_builtins\>\)\|
      \ \%(\%(\<no_\?\)\?posixcd\>\)\|\%(\%(no_\?\)\?posix_cd\>\)\|
      \ \%(\%(\<no_\?\)\?posixidentifiers\>\)\|\%(\%(no_\?\)\?posix_identifiers\>\)\|
      \ \%(\%(\<no_\?\)\?posixjobs\>\)\|\%(\%(no_\?\)\?posix_jobs\>\)\|
      \ \%(\%(\<no_\?\)\?posixstrings\>\)\|\%(\%(no_\?\)\?posix_strings\>\)\|
      \ \%(\%(\<no_\?\)\?posixtraps\>\)\|\%(\%(no_\?\)\?posix_traps\>\)\|
      \ \%(\%(\<no_\?\)\?printeightbit\>\)\|\%(\%(no_\?\)\?print_eight_bit\>\)\|
      \ \%(\%(\<no_\?\)\?printexitvalue\>\)\|\%(\%(no_\?\)\?print_exit_value\>\)\|
      \ \%(\%(\<no_\?\)\?privileged\>\)\|
      \ \%(\%(\<no_\?\)\?promptbang\>\)\|\%(\%(no_\?\)\?prompt_bang\>\)\|
      \ \%(\%(\<no_\?\)\?promptcr\>\)\|\%(\%(no_\?\)\?prompt_cr\>\)\|
      \ \%(\%(\<no_\?\)\?promptpercent\>\)\|\%(\%(no_\?\)\?prompt_percent\>\)\|
      \ \%(\%(\<no_\?\)\?promptsp\>\)\|\%(\%(no_\?\)\?prompt_sp\>\)\|
      \ \%(\%(\<no_\?\)\?promptsubst\>\)\|\%(\%(no_\?\)\?prompt_subst\>\)\|
      \ \%(\%(\<no_\?\)\?promptvars\>\)\|\%(\%(no_\?\)\?prompt_vars\>\)\|
      \ \%(\%(\<no_\?\)\?pushdignoredups\>\)\|\%(\%(no_\?\)\?pushd_ignore_dups\>\)\|
      \ \%(\%(\<no_\?\)\?pushdminus\>\)\|\%(\%(no_\?\)\?pushd_minus\>\)\|
      \ \%(\%(\<no_\?\)\?pushdsilent\>\)\|\%(\%(no_\?\)\?pushd_silent\>\)\|
      \ \%(\%(\<no_\?\)\?pushdtohome\>\)\|\%(\%(no_\?\)\?pushd_to_home\>\)\|
      \ \%(\%(\<no_\?\)\?rcexpandparam\>\)\|\%(\%(no_\?\)\?rc_expandparam\>\)\|\%(\%(no_\?\)\?rc_expand_param\>\)\|
      \ \%(\%(\<no_\?\)\?rcquotes\>\)\|\%(\%(no_\?\)\?rc_quotes\>\)\|
      \ \%(\%(\<no_\?\)\?rcs\>\)\|
      \ \%(\%(\<no_\?\)\?recexact\>\)\|\%(\%(no_\?\)\?rec_exact\>\)\|
      \ \%(\%(\<no_\?\)\?rematchpcre\>\)\|\%(\%(no_\?\)\?re_match_pcre\>\)\|\%(\%(no_\?\)\?rematch_pcre\>\)\|
      \ \%(\%(\<no_\?\)\?restricted\>\)\|
      \ \%(\%(\<no_\?\)\?rmstarsilent\>\)\|\%(\%(no_\?\)\?rm_star_silent\>\)\|
      \ \%(\%(\<no_\?\)\?rmstarwait\>\)\|\%(\%(no_\?\)\?rm_star_wait\>\)\|
      \ \%(\%(\<no_\?\)\?sharehistory\>\)\|\%(\%(no_\?\)\?share_history\>\)\|
      \ \%(\%(\<no_\?\)\?shfileexpansion\>\)\|\%(\%(no_\?\)\?sh_file_expansion\>\)\|
      \ \%(\%(\<no_\?\)\?shglob\>\)\|\%(\%(no_\?\)\?sh_glob\>\)\|
      \ \%(\%(\<no_\?\)\?shinstdin\>\)\|\%(\%(no_\?\)\?shin_stdin\>\)\|
      \ \%(\%(\<no_\?\)\?shnullcmd\>\)\|\%(\%(no_\?\)\?sh_nullcmd\>\)\|
      \ \%(\%(\<no_\?\)\?shoptionletters\>\)\|\%(\%(no_\?\)\?sh_option_letters\>\)\|
      \ \%(\%(\<no_\?\)\?shortloops\>\)\|\%(\%(no_\?\)\?short_loops\>\)\|
      \ \%(\%(\<no_\?\)\?shwordsplit\>\)\|\%(\%(no_\?\)\?sh_word_split\>\)\|
      \ \%(\%(\<no_\?\)\?singlecommand\>\)\|\%(\%(no_\?\)\?single_command\>\)\|
      \ \%(\%(\<no_\?\)\?singlelinezle\>\)\|\%(\%(no_\?\)\?single_line_zle\>\)\|
      \ \%(\%(\<no_\?\)\?sourcetrace\>\)\|\%(\%(no_\?\)\?source_trace\>\)\|
      \ \%(\%(\<no_\?\)\?stdin\>\)\|
      \ \%(\%(\<no_\?\)\?sunkeyboardhack\>\)\|\%(\%(no_\?\)\?sun_keyboard_hack\>\)\|
      \ \%(\%(\<no_\?\)\?trackall\>\)\|\%(\%(no_\?\)\?track_all\>\)\|
      \ \%(\%(\<no_\?\)\?transientrprompt\>\)\|\%(\%(no_\?\)\?transient_rprompt\>\)\|
      \ \%(\%(\<no_\?\)\?trapsasync\>\)\|\%(\%(no_\?\)\?traps_async\>\)\|
      \ \%(\%(\<no_\?\)\?typesetsilent\>\)\|\%(\%(no_\?\)\?type_set_silent\>\)\|\%(\%(no_\?\)\?typeset_silent\>\)\|
      \ \%(\%(\<no_\?\)\?unset\>\)\|
      \ \%(\%(\<no_\?\)\?verbose\>\)\|
      \ \%(\%(\<no_\?\)\?vi\>\)\|
      \ \%(\%(\<no_\?\)\?warncreateglobal\>\)\|\%(\%(no_\?\)\?warn_create_global\>\)\|
      \ \%(\%(\<no_\?\)\?xtrace\>\)\|
      \ \%(\%(\<no_\?\)\?zle\>\)/ nextgroup=zshOption,zshComment skipwhite contained

syn keyword zshTypes            float integer local typeset declare private readonly

" XXX: this may be too much
" syn match   zshSwitches         '\s\zs--\=[a-zA-Z0-9-]\+'

syn match   zshNumber           '[+-]\=\<\d\+\>'
syn match   zshNumber           '[+-]\=\<0x\x\+\>'
syn match   zshNumber           '[+-]\=\<0\o\+\>'
syn match   zshNumber           '[+-]\=\d\+#[-+]\=\w\+\>'
syn match   zshNumber           '[+-]\=\d\+\.\d\+\>'

" TODO: $[...] is the same as $((...)), so add that as well.
syn cluster zshSubst            contains=zshSubst,zshOldSubst,zshMathSubst
syn region  zshSubst            matchgroup=zshSubstDelim transparent
                                \ start='\$(' skip='\\)' end=')' contains=TOP fold
syn region  zshParentheses      transparent start='(' skip='\\)' end=')' fold
syn region  zshGlob             start='(#' end=')'
syn region  zshMathSubst        matchgroup=zshSubstDelim transparent
                                \ start='\$((' skip='\\)' end='))'
                                \ contains=zshParentheses,@zshSubst,zshNumber,
                                \ @zshDerefs,zshString keepend fold
syn region  zshBrackets         contained transparent start='{' skip='\\}'
                                \ end='}' fold
syn region  zshBrackets         transparent start='{' skip='\\}'
                                \ end='}' contains=TOP fold
syn region  zshSubst            matchgroup=zshSubstDelim start='\${' skip='\\}'
                                \ end='}' contains=@zshSubst,zshBrackets,zshQuoted,zshString fold
syn region  zshOldSubst         matchgroup=zshSubstDelim start=+`+ skip=+\\`+
                                \ end=+`+ contains=TOP,zshOldSubst fold

syn sync    minlines=50 maxlines=90
syn sync    match zshHereDocSync    grouphere   NONE '<<-\=\s*\%(\\\=\S\+\|\(["']\)\S\+\1\)'
syn sync    match zshHereDocEndSync groupthere  NONE '^\s*EO\a\+\>'

hi def link zshTodo             Todo
hi def link zshComment          Comment
hi def link zshPreProc          PreProc
hi def link zshQuoted           SpecialChar
hi def link zshString           String
hi def link zshStringDelimiter  zshString
hi def link zshPOSIXString      zshString
hi def link zshJobSpec          Special
hi def link zshPrecommand       Special
hi def link zshDelimiter        Keyword
hi def link zshConditional      Conditional
hi def link zshException        Exception
hi def link zshRepeat           Repeat
hi def link zshKeyword          Keyword
hi def link zshFunction         None
hi def link zshKSHFunction      zshFunction
hi def link zshHereDoc          String
hi def link zshOperator         None
hi def link zshRedir            Operator
hi def link zshVariable         None
hi def link zshVariableDef      zshVariable
hi def link zshDereferencing    PreProc
hi def link zshShortDeref       zshDereferencing
hi def link zshLongDeref        zshDereferencing
hi def link zshDeref            zshDereferencing
hi def link zshDollarVar        zshDereferencing
hi def link zshCommands         Keyword
hi def link zshOptStart         Keyword
hi def link zshOption           Constant
hi def link zshTypes            Type
hi def link zshSwitches         Special
hi def link zshNumber           Number
hi def link zshSubst            PreProc
hi def link zshMathSubst        zshSubst
hi def link zshOldSubst         zshSubst
hi def link zshSubstDelim       zshSubst
hi def link zshGlob             zshSubst

let b:current_syntax = "zsh"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�Q�S�3�3vim80/syntax/pli.vimnu�[���" Vim syntax file
" Modified from  http://plnet.org/files/vim/
" using keywords from http://www.kednos.com/pli/docs/reference_manual/6291pro_contents.html
"    2012-11-13 Alan Thompson

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

syn case ignore

" Todo.
syn keyword pl1Todo TODO FIXME XXX DEBUG NOTE

" pl1CommentGroup allows adding matches for special things in comments
" 20010723az: Added this so that these could be matched in comments...  
syn cluster pl1CommentGroup contains=pl1Todo

syn match   pl1Garbage        "[^ \t()]"
syn match   pl1Identifier     "[a-z][a-z0-9$_#]*"
syn match   pl1HostIdentifier ":[a-z][a-z0-9$_#]*"

" 20010723az: When wanted, highlight the trailing whitespace -- this is
" based on c_space_errors 
if exists("c_space_errors")
    if !exists("c_no_trail_space_error")
        syn match pl1SpaceError "\s\+$"
    endif
    if !exists("c_no_tab_space_error")
        syn match pl1SpaceError " \+\t"me=e-1
    endif
endif

" Symbols.  
syn match   pl1Symbol         "\(;\|,\|\.\)"
syn match   pl1PreProcSym     "%"

" Operators.
syn match   pl1Operator       "\(&\|:\|!\|+\|-\|\*\|/\|=\|<\|>\|@\|\*\*\|!=\|\~=\)"
syn match   pl1Operator       "\(\^\|\^=\|<=\|>=\|:=\|=>\|\.\.\|||\|<<\|>>\|\"\)"

" Attributes
syn keyword pl1Attribute BACKWARDS BUFFERED BUF CONNECTED CONN CONSTANT EVENT
syn keyword pl1Attribute EXCLUSIVE EXCL FORMAT GENERIC IRREDUCIBLE IRRED LOCAL
syn keyword pl1Attribute REDUCIBLE RED TASK TRANSIENT UNBUFFERED UNBUF ALIGNED ANY
syn keyword pl1Attribute AREA AUTOMATIC AUTO BASED BUILTIN CONDITION COND CONTROLLED
syn keyword pl1Attribute CTL DEFINED DEF DIRECT ENVIRONMENT ENV EXTERNAL EXT FILE
syn keyword pl1Attribute GLOBALDEF GLOBALREF INITIAL INIT INPUT INTERNAL INT KEYED
syn keyword pl1Attribute LABEL LIKE LIST MEMBER NONVARYING NONVAR OPTIONAL OPTIONS
syn keyword pl1Attribute OUTPUT PARAMETER PARM PICTURE PIC POSITION POS PRECISION
syn keyword pl1Attribute PREC PRINT READONLY RECORD REFER RETURNS SEQUENTIAL SEQL
syn keyword pl1Attribute STATIC STREAM STRUCTURE TRUNCATE UNALIGNED UNAL UNION UPDATE
syn keyword pl1Attribute VARIABLE VARYING VAR COMPLEX CPLX REAL BINARY BIN BIT
syn keyword pl1Attribute CHARACTER CHAR DECIMAL DEC DESCRIPTOR DESC DIMENSION DIM
syn keyword pl1Attribute FIXED FLOAT OFFSET POINTER PTR REFERENCE VALUE VAL 

" Functions
syn keyword pl1Function AFTER ALL ANY BEFORE COMPLETION CPLN CONJG COUNT
syn keyword pl1Function CURRENTSTORAGE CSTG DATAFIELD DECAT DOT ERF ERFC IMAG
syn keyword pl1Function ONCOUNT ONFIELD ONLOC POLY PRIORITY REPEAT SAMEKEY STATUS
syn keyword pl1Function STORAGE STG ABS ACOS ACTUALCOUNT ADD ADDR ADDREL ALLOCATION
syn keyword pl1Function ALLOCN ASIN ATAN ATAND ATANH BOOL BYTE BYTESIZE CEIL COLLATE
syn keyword pl1Function COPY COS COSD COSH DATE DATETIME DECODE DISPLAY DIVIDE EMPTY
syn keyword pl1Function ENCODE ERROR EVERY EXP EXTEND FLOOR FLUSH FREE HBOUND HIGH
syn keyword pl1Function INDEX INFORM INT LBOUND LENGTH LINE LINENO LOG LOG10 LOG2
syn keyword pl1Function LOW LTRIM MAX MAXLENGTH MIN MOD MULTIPLY NEXT_VOLUME NULL
syn keyword pl1Function ONARGSLIST ONCHAR ONCODE ONFILE ONKEY ONSOURCE PAGENO POSINT
syn keyword pl1Function PRESENT PROD RANK RELEASE RESIGNAL REVERSE REWIND ROUND
syn keyword pl1Function RTRIM SEARCH SIGN SIN SIND SINH SIZE SOME SPACEBLOCK SQRT
syn keyword pl1Function STRING SUBSTR SUBTRACT SUM TAN TAND TANH TIME TRANSLATE TRIM
syn keyword pl1Function TRUNC UNSPEC VALID VARIANT VERIFY WARN 

" Other keywords
syn keyword pl1Other ATTENTION ATTN C CONVERSION CONV DATA NAME NOCONVERSION
syn keyword pl1Other NOCONV NOFIXEDOVERFLOW NOFOFL NOOVERFLOW NOSIZE
syn keyword pl1Other NOSTRINGRANGE NOSTRG NOSTRINGSIZE NOSTRZ NOSUBSCRIPTRANGE
syn keyword pl1Other NOSUBRG NOZERODIVIDE NOZDIV OVERFLOW OFL PENDING RECORD
syn keyword pl1Other REENTRANT SIZE STRINGRANGE STRG STRINGSIZE STRZ
syn keyword pl1Other SUBSCRIPTRANGE SUBRG TRANSMIT A ANYCONDITION APPEND B B1 B2
syn keyword pl1Other B3 B4 BACKUP_DATE BATCH BLOCK_BOUNDARY_FORMAT BLOCK_IO
syn keyword pl1Other BLOCK_SIZE BUCKET_SIZE BY CANCEL_CONTROL_O
syn keyword pl1Other CARRIAGE_RETURN_FORMAT COLUMN COL CONTIGUOUS
syn keyword pl1Other CONTIGUOUS_BEST_TRY CONVERSION CONV CREATION_DATE
syn keyword pl1Other CURRENT_POSITION DEFAULT_FILE_NAME DEFERRED_WRITE E EDIT
syn keyword pl1Other ENDFILE ENDPAGE EXPIRATION_DATE EXTENSION_SIZE F FAST_DELETE
syn keyword pl1Other FILE_ID FILE_ID_TO FILE_SIZE FINISH FIXEDOVERFLOW FOFL
syn keyword pl1Other FIXED_CONTROL_FROM FIXED_CONTROL_SIZE FIXED_CONTROL_SIZE_TO
syn keyword pl1Other FIXED_CONTROL_TO FIXED_LENGTH_RECORDS FROM GROUP_PROTECTION
syn keyword pl1Other IDENT IGNORE_LINE_MARKS IN INDEXED INDEX_NUMBER INITIAL_FILL
syn keyword pl1Other INTO KEY KEYFROM KEYTO LINESIZE LOCK_ON_READ LOCK_ON_WRITE
syn keyword pl1Other MAIN MANUAL_UNLOCKING MATCH_GREATER MATCH_GREATER_EQUAL
syn keyword pl1Other MATCH_NEXT MATCH_NEXT_EQUAL MAXIMUM_RECORD_NUMBER
syn keyword pl1Other MAXIMUM_RECORD_SIZE MULTIBLOCK_COUNT MULTIBUFFER_COUNT
syn keyword pl1Other NOLOCK NONEXISTENT_RECORD NONRECURSIVE NO_ECHO NO_FILTER
syn keyword pl1Other NO_SHARE OVERFLOW OFL OWNER_GROUP OWNER_ID OWNER_MEMBER
syn keyword pl1Other OWNER_PROTECTION P PAGE PAGESIZE PRINTER_FORMAT PROMPT
syn keyword pl1Other PURGE_TYPE_AHEAD R READ_AHEAD READ_CHECK READ_REGARDLESS
syn keyword pl1Other RECORD_ID RECORD_ID_ACCESS RECORD_ID_TO RECURSIVE REPEAT
syn keyword pl1Other RETRIEVAL_POINTERS REVISION_DATE REWIND_ON_CLOSE
syn keyword pl1Other REWIND_ON_OPEN SCALARVARYING SET SHARED_READ SHARED_WRITE
syn keyword pl1Other SKIP SPOOL STORAGE STRINGRANGE STRG SUBSCRIPTRANGE SUBRG
syn keyword pl1Other SUPERSEDE SYSIN SYSPRINT SYSTEM_PROTECTION TAB TEMPORARY
syn keyword pl1Other TIMEOUT_PERIOD TITLE TO UNDEFINEDFILE UNDF UNDERFLOW UFL
syn keyword pl1Other UNTIL USER_OPEN VAXCONDITION WAIT_FOR_RECORD WHILE
syn keyword pl1Other WORLD_PROTECTION WRITE_BEHIND WRITE_CHECK X ZERODIVIDE ZDIV 

" PreProcessor keywords
syn keyword pl1PreProc ACTIVATE DEACTIVATE DECLARE DCL DICTIONARY DO END ERROR
syn keyword pl1PreProc FATAL GOTO IF INCLUDE INFORM LIST NOLIST PAGE PROCEDURE PROC
syn keyword pl1PreProc REPLACE RETURN SBTTL TITLE WARN THEN ELSE 

" Statements
syn keyword pl1Statement CALL SUB ENTRY BY NAME CASE CHECK COPY DEFAULT DFT DELAY
syn keyword pl1Statement DESCRIPTORS DISPLAY EXIT FETCH HALT IGNORE LIST LOCATE
syn keyword pl1Statement NOCHECK NOLOCK NONE ORDER RANGE RELEASE REORDER REPLY SNAP
syn keyword pl1Statement SYSTEM TAB UNLOCK WAIT ALLOCATE ALLOC BEGIN CALL CLOSE
syn keyword pl1Statement DECLARE DCL DELETE DO ELSE END FORMAT GET GOTO GO TO IF
syn keyword pl1Statement LEAVE NORESCAN ON OPEN OTHERWISE OTHER PROCEDURE PROC PUT
syn keyword pl1Statement READ RESCAN RETURN REVERT REWRITE SELECT SIGNAL SNAP
syn keyword pl1Statement STATEMENT STOP SYSTEM THEN WHEN WRITE 

" PL1's own keywords
" syn match   pl1Keyword "\<END\>"
" syn match   pl1Keyword "\.COUNT\>"hs=s+1
" syn match   pl1Keyword "\.EXISTS\>"hs=s+1
" syn match   pl1Keyword "\.FIRST\>"hs=s+1
" syn match   pl1Keyword "\.LAST\>"hs=s+1
" syn match   pl1Keyword "\.DELETE\>"hs=s+1
" syn match   pl1Keyword "\.PREV\>"hs=s+1
" syn match   pl1Keyword "\.NEXT\>"hs=s+1

if exists("pl1_highlight_triggers")
    syn keyword pl1Trigger  INSERTING UPDATING DELETING
endif

" Conditionals.
syn keyword pl1Conditional ELSIF ELSE IF
syn match   pl1Conditional "\<END\s\+IF\>"

" Loops.
syn keyword pl1Repeat FOR LOOP WHILE FORALL
syn match   pl1Repeat "\<END\s\+LOOP\>"

" Various types of comments.
" 20010723az: Added the ability to treat strings within comments just like
" C does.
if exists("c_comment_strings")
    syntax match pl1CommentSkip contained "^\s*\*\($\|\s\+\)"
    syntax region pl1CommentString contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=pl1CommentSkip
    syntax region pl1Comment2String contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end="$"
    syntax region pl1CommentL start="--" skip="\\$" end="$" keepend contains=@pl1CommentGroup,pl1Comment2String,pl1CharLiteral,pl1BooleanLiteral,pl1NumbersCom,pl1SpaceError
    syntax region pl1Comment start="/\*" end="\*/" contains=@pl1CommentGroup,pl1Comment2String,pl1CharLiteral,pl1BooleanLiteral,pl1NumbersCom,pl1SpaceError
else
    syntax region pl1CommentL start="--" skip="\\$" end="$" keepend contains=@pl1CommentGroup,pl1SpaceError
    syntax region pl1Comment start="/\*" end="\*/" contains=@pl1CommentGroup,pl1SpaceError
endif

" 20010723az: These are the old comment commands ... commented out.
" syn match   pl1Comment    "--.*$" contains=pl1Todo
" syn region  pl1Comment    start="/\*" end="\*/" contains=pl1Todo
syn sync ccomment pl1Comment
syn sync ccomment pl1CommentL

" To catch unterminated string literals.
syn match   pl1StringError    "'.*$"

" Various types of literals.
" 20010723az: Added stuff for comment matching.
syn match pl1Numbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=pl1IntLiteral,pl1FloatLiteral
syn match pl1NumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=pl1IntLiteral,pl1FloatLiteral
syn match pl1IntLiteral contained "[+-]\=\d\+"
syn match pl1FloatLiteral contained "[+-]\=\d\+\.\d*"
syn match pl1FloatLiteral contained "[+-]\=\d*\.\d*"
"syn match pl1FloatLiteral "[+-]\=\([0-9]*\.[0-9]\+\|[0-9]\+\.[0-9]\+\)\(e[+-]\=[0-9]\+\)\="
syn match   pl1CharLiteral    "'[^']'"
syn match   pl1StringLiteral  "'\([^']\|''\)*'"
syn keyword pl1BooleanLiteral TRUE FALSE NULL

" The built-in types.
syn keyword pl1Storage ANYDATA ANYTYPE BFILE BINARY_INTEGER BLOB BOOLEAN
syn keyword pl1Storage BYTE CHAR CHARACTER CLOB CURSOR DATE DAY DEC DECIMAL
syn keyword pl1Storage DOUBLE DSINTERVAL_UNCONSTRAINED FLOAT HOUR
syn keyword pl1Storage INT INTEGER INTERVAL LOB LONG MINUTE
syn keyword pl1Storage MLSLABEL MONTH NATURAL NATURALN NCHAR NCHAR_CS NCLOB
syn keyword pl1Storage NUMBER NUMERIC NVARCHAR PLS_INT PLS_INTEGER
syn keyword pl1Storage POSITIVE POSITIVEN PRECISION RAW REAL RECORD
syn keyword pl1Storage SECOND SIGNTYPE SMALLINT STRING SYS_REFCURSOR TABLE TIME
syn keyword pl1Storage TIMESTAMP TIMESTAMP_UNCONSTRAINED
syn keyword pl1Storage TIMESTAMP_TZ_UNCONSTRAINED
syn keyword pl1Storage TIMESTAMP_LTZ_UNCONSTRAINED UROWID VARCHAR
syn keyword pl1Storage VARCHAR2 YEAR YMINTERVAL_UNCONSTRAINED ZONE

" A type-attribute is really a type.
" 20020916bp: Removed leading part of pattern to avoid highlighting the
"             object
syn match   pl1TypeAttribute  "%\(TYPE\|ROWTYPE\)\>"

" All other attributes.
syn match   pl1Attribute "%\(BULK_EXCEPTIONS\|BULK_ROWCOUNT\|ISOPEN\|FOUND\|NOTFOUND\|ROWCOUNT\)\>"

" Catch errors caused by wrong parentheses and brackets
" 20010723az: significantly more powerful than the values -- commented out
" below the replaced values. This adds the C functionality to PL/SQL.
syn cluster pl1ParenGroup contains=pl1ParenError,@pl1CommentGroup,pl1CommentSkip,pl1IntLiteral,pl1FloatLiteral,pl1NumbersCom
if exists("c_no_bracket_error")
    syn region pl1Paren transparent start='(' end=')' contains=ALLBUT,@pl1ParenGroup
    syn match pl1ParenError ")"
    syn match pl1ErrInParen contained "[{}]"
else
    syn region pl1Paren transparent start='(' end=')' contains=ALLBUT,@pl1ParenGroup,pl1ErrInBracket
    syn match pl1ParenError "[\])]"
    syn match pl1ErrInParen contained "[{}]"
    syn region pl1Bracket transparent start='\[' end=']' contains=ALLBUT,@pl1ParenGroup,pl1ErrInParen
    syn match pl1ErrInBracket contained "[);{}]"
endif
" syn region pl1Paren       transparent start='(' end=')' contains=ALLBUT,pl1ParenError
" syn match pl1ParenError   ")"

" Syntax Synchronizing
syn sync minlines=10 maxlines=100

" Define the default highlighting.
" Only when and item doesn't have highlighting yet.

hi def link pl1Attribute       Macro
hi def link pl1BlockError      Error
hi def link pl1BooleanLiteral  Boolean
hi def link pl1CharLiteral     Character
hi def link pl1Comment         Comment
hi def link pl1CommentL        Comment
hi def link pl1Conditional     Conditional
hi def link pl1Error           Error
hi def link pl1ErrInBracket    Error
hi def link pl1ErrInBlock      Error
hi def link pl1ErrInParen      Error
hi def link pl1Exception       Function
hi def link pl1FloatLiteral    Float
hi def link pl1Function        Function
hi def link pl1Garbage         Error
hi def link pl1HostIdentifier  Label
hi def link pl1Identifier      Normal
hi def link pl1IntLiteral      Number
hi def link pl1Operator        Operator
hi def link pl1Paren           Normal
hi def link pl1ParenError      Error
hi def link pl1SpaceError      Error
hi def link pl1Pseudo          PreProc
hi def link pl1PreProc         PreProc
hi def link pl1PreProcSym      PreProc
hi def link pl1Keyword         Keyword
hi def link pl1Other           Keyword
hi def link pl1Repeat          Repeat
hi def link pl1Statement       Keyword
hi def link pl1Storage         StorageClass
hi def link pl1StringError     Error
hi def link pl1StringLiteral   String
hi def link pl1CommentString   String
hi def link pl1Comment2String  String
hi def link pl1Symbol          Normal
hi def link pl1Trigger         Function
hi def link pl1TypeAttribute   StorageClass
hi def link pl1Todo            Todo


let b:current_syntax = "pl1"
PK�j�Zњ5���vim80/syntax/colortest.vimnu�[���" Vim script for testing colors
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Contributors:	Rafael Garcia-Suarez, Charles Campbell
" Last Change:	2008 Jun 04

" edit this file, then do ":source %", and check if the colors match

" black		black_on_white				white_on_black
"				black_on_black		black_on_black
" darkred	darkred_on_white			white_on_darkred
"				darkred_on_black	black_on_darkred
" darkgreen	darkgreen_on_white			white_on_darkgreen
"				darkgreen_on_black	black_on_darkgreen
" brown		brown_on_white				white_on_brown
"				brown_on_black		black_on_brown
" darkblue	darkblue_on_white			white_on_darkblue
"				darkblue_on_black	black_on_darkblue
" darkmagenta	darkmagenta_on_white			white_on_darkmagenta
"				darkmagenta_on_black	black_on_darkmagenta
" darkcyan	darkcyan_on_white			white_on_darkcyan
"				darkcyan_on_black	black_on_darkcyan
" lightgray	lightgray_on_white			white_on_lightgray
"				lightgray_on_black	black_on_lightgray
" darkgray	darkgray_on_white			white_on_darkgray
"				darkgray_on_black	black_on_darkgray
" red		red_on_white				white_on_red
"				red_on_black		black_on_red
" green		green_on_white				white_on_green
"				green_on_black		black_on_green
" yellow	yellow_on_white				white_on_yellow
"				yellow_on_black		black_on_yellow
" blue		blue_on_white				white_on_blue
"				blue_on_black		black_on_blue
" magenta	magenta_on_white			white_on_magenta
"				magenta_on_black	black_on_magenta
" cyan		cyan_on_white				white_on_cyan
"				cyan_on_black		black_on_cyan
" white		white_on_white				white_on_white
"				white_on_black		black_on_white
" grey		grey_on_white				white_on_grey
"				grey_on_black		black_on_grey
" lightred	lightred_on_white			white_on_lightred
"				lightred_on_black	black_on_lightred
" lightgreen	lightgreen_on_white			white_on_lightgreen
"				lightgreen_on_black	black_on_lightgreen
" lightyellow	lightyellow_on_white			white_on_lightyellow
"				lightyellow_on_black	black_on_lightyellow
" lightblue	lightblue_on_white			white_on_lightblue
"				lightblue_on_black	black_on_lightblue
" lightmagenta	lightmagenta_on_white			white_on_lightmagenta
"				lightmagenta_on_black	black_on_lightmagenta
" lightcyan	lightcyan_on_white			white_on_lightcyan
"				lightcyan_on_black	black_on_lightcyan

" Open this file in a window if it isn't edited yet.
" Use the current window if it's empty.
if expand('%:p') != expand('<sfile>:p')
  let s:fname = expand('<sfile>')
  if exists('*fnameescape')
    let s:fname = fnameescape(s:fname)
  else
    let s:fname = escape(s:fname, ' \|')
  endif
  if &mod || line('$') != 1 || getline(1) != ''
    exe "new " . s:fname
  else
    exe "edit " . s:fname
  endif
  unlet s:fname
endif

syn clear
8
while search("_on_", "W") < 55
  let col1 = substitute(expand("<cword>"), '\(\a\+\)_on_\a\+', '\1', "")
  let col2 = substitute(expand("<cword>"), '\a\+_on_\(\a\+\)', '\1', "")
  exec 'hi col_'.col1.'_'.col2.' ctermfg='.col1.' guifg='.col1.' ctermbg='.col2.' guibg='.col2
  exec 'syn keyword col_'.col1.'_'.col2.' '.col1.'_on_'.col2
endwhile
8,54g/^" \a/exec 'hi col_'.expand("<cword>").' ctermfg='.expand("<cword>").' guifg='.expand("<cword>")| exec 'syn keyword col_'.expand("<cword>")." ".expand("<cword>")
nohlsearch
PK�j�Z�:.XXvim80/syntax/chill.vimnu�[���" Vim syntax file
" Language:	CHILL
" Maintainer:	YoungSang Yoon <image@lgic.co.kr>
" Last change:	2004 Jan 21
"

" first created by image@lgic.co.kr & modified by paris@lgic.co.kr

" CHILL (CCITT High Level Programming Language) is used for
" developing software of ATM switch at LGIC (LG Information
" & Communications LTd.)


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" A bunch of useful CHILL keywords
syn keyword	chillStatement	goto GOTO return RETURN returns RETURNS
syn keyword	chillLabel		CASE case ESAC esac
syn keyword	chillConditional	if IF else ELSE elsif ELSIF switch SWITCH THEN then FI fi
syn keyword	chillLogical	NOT not
syn keyword	chillRepeat	while WHILE for FOR do DO od OD TO to
syn keyword	chillProcess	START start STACKSIZE stacksize PRIORITY priority THIS this STOP stop
syn keyword	chillBlock		PROC proc PROCESS process
syn keyword	chillSignal	RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT peristent SET set EVER ever

syn keyword	chillTodo		contained TODO FIXME XXX

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match	chillSpecial	contained "\\x\x\+\|\\\o\{1,3\}\|\\.\|\\$"
syn region	chillString	start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=chillSpecial
syn match	chillCharacter	"'[^\\]'"
syn match	chillSpecialCharacter "'\\.'"
syn match	chillSpecialCharacter "'\\\o\{1,3\}'"

"when wanted, highlight trailing white space
if exists("chill_space_errors")
  syn match	chillSpaceError	"\s*$"
  syn match	chillSpaceError	" \+\t"me=e-1
endif

"catch errors caused by wrong parenthesis
syn cluster	chillParenGroup	contains=chillParenError,chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField
syn region	chillParen		transparent start='(' end=')' contains=ALLBUT,@chillParenGroup
syn match	chillParenError	")"
syn match	chillInParen	contained "[{}]"

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match	chillNumber		"\<\d\+\(u\=l\=\|lu\|f\)\>"
"floating point number, with dot, optional exponent
syn match	chillFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, starting with a dot, optional exponent
syn match	chillFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match	chillFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
"hex number
syn match	chillNumber		"\<0x\x\+\(u\=l\=\|lu\)\>"
"syn match chillIdentifier	"\<[a-z_][a-z0-9_]*\>"
syn case match
" flag an octal number with wrong digits
syn match	chillOctalError	"\<0\o*[89]"

if exists("chill_comment_strings")
  " A comment can contain chillString, chillCharacter and chillNumber.
  " But a "*/" inside a chillString in a chillComment DOES end the comment!  So we
  " need to use a special type of chillString: chillCommentString, which also ends on
  " "*/", and sees a "*" at the start of the line as comment again.
  " Unfortunately this doesn't very well work for // type of comments :-(
  syntax match	chillCommentSkip	contained "^\s*\*\($\|\s\+\)"
  syntax region chillCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=chillSpecial,chillCommentSkip
  syntax region chillComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=chillSpecial
  syntax region chillComment	start="/\*" end="\*/" contains=chillTodo,chillCommentString,chillCharacter,chillNumber,chillFloat,chillSpaceError
  syntax match  chillComment	"//.*" contains=chillTodo,chillComment2String,chillCharacter,chillNumber,chillSpaceError
else
  syn region	chillComment	start="/\*" end="\*/" contains=chillTodo,chillSpaceError
  syn match	chillComment	"//.*" contains=chillTodo,chillSpaceError
endif
syntax match	chillCommentError	"\*/"

syn keyword	chillOperator	SIZE size
syn keyword	chillType		dcl DCL int INT char CHAR bool BOOL REF ref LOC loc INSTANCE instance
syn keyword	chillStructure	struct STRUCT enum ENUM newmode NEWMODE synmode SYNMODE
"syn keyword	chillStorageClass
syn keyword	chillBlock		PROC proc END end
syn keyword	chillScope		GRANT grant SEIZE seize
syn keyword	chillEDML		select SELECT delete DELETE update UPDATE in IN seq SEQ WHERE where INSERT insert include INCLUDE exclude EXCLUDE
syn keyword	chillBoolConst	true TRUE false FALSE

syn region	chillPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=chillComment,chillString,chillCharacter,chillNumber,chillCommentError,chillSpaceError
syn region	chillIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match	chillIncluded	contained "<[^>]*>"
syn match	chillInclude	"^\s*#\s*include\>\s*["<]" contains=chillIncluded
"syn match chillLineSkip	"\\$"
syn cluster	chillPreProcGroup	contains=chillPreCondit,chillIncluded,chillInclude,chillDefine,chillInParen,chillUserLabel
syn region	chillDefine		start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup
syn region	chillPreProc	start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup

" Highlight User Labels
syn cluster	chillMultiGroup	contains=chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField
syn region	chillMulti		transparent start='?' end=':' contains=ALLBUT,@chillMultiGroup
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
syn match	chillUserCont	"^\s*\I\i*\s*:$" contains=chillUserLabel
syn match	chillUserCont	";\s*\I\i*\s*:$" contains=chillUserLabel
syn match	chillUserCont	"^\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel
syn match	chillUserCont	";\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel

syn match	chillUserLabel	"\I\i*" contained

" Avoid recognizing most bitfields as labels
syn match	chillBitField	"^\s*\I\i*\s*:\s*[1-9]"me=e-1
syn match	chillBitField	";\s*\I\i*\s*:\s*[1-9]"me=e-1

syn match	chillBracket	contained "[<>]"
if !exists("chill_minlines")
  let chill_minlines = 15
endif
exec "syn sync ccomment chillComment minlines=" . chill_minlines

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link chillLabel	Label
hi def link chillUserLabel	Label
hi def link chillConditional	Conditional
" hi def link chillConditional	term=bold ctermfg=red guifg=red gui=bold

hi def link chillRepeat	Repeat
hi def link chillProcess	Repeat
hi def link chillSignal	Repeat
hi def link chillCharacter	Character
hi def link chillSpecialCharacter chillSpecial
hi def link chillNumber	Number
hi def link chillFloat	Float
hi def link chillOctalError	chillError
hi def link chillParenError	chillError
hi def link chillInParen	chillError
hi def link chillCommentError	chillError
hi def link chillSpaceError	chillError
hi def link chillOperator	Operator
hi def link chillStructure	Structure
hi def link chillBlock	Operator
hi def link chillScope	Operator
"hi def link chillEDML     term=underline ctermfg=DarkRed guifg=Red
hi def link chillEDML	PreProc
"hi def link chillBoolConst	term=bold ctermfg=brown guifg=brown
hi def link chillBoolConst	Constant
"hi def link chillLogical	term=bold ctermfg=brown guifg=brown
hi def link chillLogical	Constant
hi def link chillStorageClass	StorageClass
hi def link chillInclude	Include
hi def link chillPreProc	PreProc
hi def link chillDefine	Macro
hi def link chillIncluded	chillString
hi def link chillError	Error
hi def link chillStatement	Statement
hi def link chillPreCondit	PreCondit
hi def link chillType	Type
hi def link chillCommentError	chillError
hi def link chillCommentString chillString
hi def link chillComment2String chillString
hi def link chillCommentSkip	chillComment
hi def link chillString	String
hi def link chillComment	Comment
" hi def link chillComment	term=None ctermfg=lightblue guifg=lightblue
hi def link chillSpecial	SpecialChar
hi def link chillTodo	Todo
hi def link chillBlock	Statement
"hi def link chillIdentifier	Identifier
hi def link chillBracket	Delimiter


let b:current_syntax = "chill"

" vim: ts=8
PK�j�ZV�Ux/x/vim80/syntax/winbatch.vimnu�[���" Vim syntax file
" Language:	WinBatch/Webbatch (*.wbt, *.web)
" Maintainer:	dominique@mggen.com
" URL:		http://www.mggen.com/vim/syntax/winbatch.zip
" Last change:	2001 May 10

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

syn keyword winbatchCtl	if then else endif break end return exit next
syn keyword winbatchCtl while for gosub goto switch select to case
syn keyword winbatchCtl endselect endwhile endselect endswitch

" String
syn region  winbatchVar		start=+%+  end=+%+
" %var% in strings
syn region  winbatchString	start=+"+  end=+"+ contains=winbatchVar

syn match winbatchComment	";.*$"
syn match winbatchLabel		"^\ *:[0-9a-zA-Z_\-]\+\>"

" constant (bezgin by @)
syn match winbatchConstant	"@[0_9a-zA-Z_\-]\+"

" number
syn match winbatchNumber	"\<[0-9]\+\(u\=l\=\|lu\|f\)\>"

syn keyword winbatchImplicit aboveicons acc_attrib acc_chng_nt acc_control acc_create
syn keyword winbatchImplicit acc_delete acc_full_95 acc_full_nt acc_list acc_pfull_nt
syn keyword winbatchImplicit acc_pmang_nt acc_print_nt acc_read acc_read_95 acc_read_nt
syn keyword winbatchImplicit acc_write amc arrange ascending attr_a attr_a attr_ci attr_ci
syn keyword winbatchImplicit attr_dc attr_dc attr_di attr_di attr_dm attr_dm attr_h attr_h
syn keyword winbatchImplicit attr_ic attr_ic attr_p attr_p attr_ri attr_ri attr_ro attr_ro
syn keyword winbatchImplicit attr_sh attr_sh attr_sy attr_sy attr_t attr_t attr_x attr_x
syn keyword winbatchImplicit avogadro backscan boltzmann cancel capslock check columns
syn keyword winbatchImplicit commonformat cr crlf ctrl default default deg2rad descending
syn keyword winbatchImplicit disable drive electric enable eulers false faraday float8
syn keyword winbatchImplicit fwdscan gftsec globalgroup gmtsec goldenratio gravitation hidden
syn keyword winbatchImplicit icon lbutton lclick ldblclick lf lightmps lightmtps localgroup
syn keyword winbatchImplicit magfield major mbokcancel mbutton mbyesno mclick mdblclick minor
syn keyword winbatchImplicit msformat multiple ncsaformat no none none noresize normal
syn keyword winbatchImplicit notify nowait numlock off on open parsec parseonly pi
syn keyword winbatchImplicit planckergs planckjoules printer rad2deg rbutton rclick rdblclick
syn keyword winbatchImplicit regclasses regcurrent regmachine regroot regusers rows save
syn keyword winbatchImplicit scrolllock server shift single sorted stack string tab tile
syn keyword winbatchImplicit true uncheck unsorted wait wholesection word1 word2 word4 yes
syn keyword winbatchImplicit zoomed about abs acos addextender appexist appwaitclose asin
syn keyword winbatchImplicit askfilename askfiletext askitemlist askline askpassword askyesno
syn keyword winbatchImplicit atan average beep binaryalloc binarycopy binaryeodget binaryeodset
syn keyword winbatchImplicit binaryfree binaryhashrec binaryincr binaryincr2 binaryincr4
syn keyword winbatchImplicit binaryincrflt binaryindex binaryindexnc binaryoletype binarypeek
syn keyword winbatchImplicit binarypeek2 binarypeek4 binarypeekflt binarypeekstr binarypoke
syn keyword winbatchImplicit binarypoke2 binarypoke4 binarypokeflt binarypokestr binaryread
syn keyword winbatchImplicit binarysort binarystrcnt binarywrite boxbuttondraw boxbuttonkill
syn keyword winbatchImplicit boxbuttonstat boxbuttonwait boxcaption boxcolor
syn keyword winbatchImplicit boxdataclear boxdatatag
syn keyword winbatchImplicit boxdestroy boxdrawcircle boxdrawline boxdrawrect boxdrawtext
syn keyword winbatchImplicit boxesup boxmapmode boxnew boxopen boxpen boxshut boxtext boxtextcolor
syn keyword winbatchImplicit boxtextfont boxtitle boxupdates break buttonnames by call
syn keyword winbatchImplicit callext ceiling char2num clipappend clipget clipput
syn keyword winbatchImplicit continue cos cosh datetime
syn keyword winbatchImplicit ddeexecute ddeinitiate ddepoke dderequest ddeterminate
syn keyword winbatchImplicit ddetimeout debug debugdata decimals delay dialog
syn keyword winbatchImplicit dialogbox dirattrget dirattrset dirchange direxist
syn keyword winbatchImplicit dirget dirhome diritemize dirmake dirremove dirrename
syn keyword winbatchImplicit dirwindows diskexist diskfree diskinfo diskscan disksize
syn keyword winbatchImplicit diskvolinfo display dllcall dllfree dllhinst dllhwnd dllload
syn keyword winbatchImplicit dosboxcursorx dosboxcursory dosboxgetall dosboxgetdata
syn keyword winbatchImplicit dosboxheight dosboxscrmode dosboxversion dosboxwidth dosversion
syn keyword winbatchImplicit drop edosgetinfo edosgetvar edoslistvars edospathadd edospathchk
syn keyword winbatchImplicit edospathdel edossetvar
syn keyword winbatchImplicit endsession envgetinfo envgetvar environment
syn keyword winbatchImplicit environset envitemize envlistvars envpathadd envpathchk
syn keyword winbatchImplicit envpathdel envsetvar errormode exclusive execute exetypeinfo
syn keyword winbatchImplicit exp fabs fileappend fileattrget fileattrset fileclose
syn keyword winbatchImplicit filecompare filecopy filedelete fileexist fileextension filefullname
syn keyword winbatchImplicit fileitemize filelocate filemapname filemove filenameeval1
syn keyword winbatchImplicit filenameeval2 filenamelong filenameshort fileopen filepath
syn keyword winbatchImplicit fileread filerename fileroot filesize filetimecode filetimeget
syn keyword winbatchImplicit filetimeset filetimetouch fileverinfo filewrite fileymdhms
syn keyword winbatchImplicit findwindow floor getexacttime gettickcount
syn keyword winbatchImplicit iconarrange iconreplace ignoreinput inidelete inideletepvt
syn keyword winbatchImplicit iniitemize iniitemizepvt iniread inireadpvt iniwrite iniwritepvt
syn keyword winbatchImplicit installfile int intcontrol isdefined isfloat isint iskeydown
syn keyword winbatchImplicit islicensed isnumber itemcount itemextract iteminsert itemlocate
syn keyword winbatchImplicit itemremove itemselect itemsort keytoggleget keytoggleset
syn keyword winbatchImplicit lasterror log10 logdisk loge max message min mod mouseclick
syn keyword winbatchImplicit mouseclickbtn mousedrag mouseinfo mousemove msgtextget n3attach
syn keyword winbatchImplicit n3captureend n3captureprt n3chgpassword n3detach n3dirattrget
syn keyword winbatchImplicit n3dirattrset n3drivepath n3drivepath2 n3drivestatus n3fileattrget
syn keyword winbatchImplicit n3fileattrset n3getloginid n3getmapped n3getnetaddr n3getuser
syn keyword winbatchImplicit n3getuserid n3logout n3map n3mapdelete n3mapdir n3maproot n3memberdel
syn keyword winbatchImplicit n3memberget n3memberset n3msgsend n3msgsendall n3serverinfo
syn keyword winbatchImplicit n3serverlist n3setsrchdrv n3usergroups n3version n4attach
syn keyword winbatchImplicit n4captureend n4captureprt n4chgpassword n4detach n4dirattrget
syn keyword winbatchImplicit n4dirattrset n4drivepath n4drivestatus n4fileattrget n4fileattrset
syn keyword winbatchImplicit n4getloginid n4getmapped n4getnetaddr n4getuser n4getuserid
syn keyword winbatchImplicit n4login n4logout n4map n4mapdelete n4mapdir n4maproot n4memberdel
syn keyword winbatchImplicit n4memberget n4memberset n4msgsend n4msgsendall n4serverinfo
syn keyword winbatchImplicit n4serverlist n4setsrchdrv n4usergroups n4version netadddrive
syn keyword winbatchImplicit netaddprinter netcancelcon netdirdialog netgetcon netgetuser
syn keyword winbatchImplicit netinfo netresources netversion num2char objectclose
syn keyword winbatchImplicit objectopen parsedata pause playmedia playmidi playwaveform
syn keyword winbatchImplicit print random regapp regclosekey regconnect regcreatekey
syn keyword winbatchImplicit regdeletekey regdelvalue regentrytype regloadhive regopenkey
syn keyword winbatchImplicit regquerybin regquerydword regqueryex regqueryexpsz regqueryitem
syn keyword winbatchImplicit regquerykey regquerymulsz regqueryvalue regsetbin
syn keyword winbatchImplicit regsetdword regsetex regsetexpsz regsetmulsz regsetvalue
syn keyword winbatchImplicit regunloadhive reload reload rtstatus run runenviron
syn keyword winbatchImplicit runexit runhide runhidewait runicon runiconwait runshell runwait
syn keyword winbatchImplicit runzoom runzoomwait sendkey sendkeyschild sendkeysto
syn keyword winbatchImplicit sendmenusto shellexecute shortcutedit shortcutextra shortcutinfo
syn keyword winbatchImplicit shortcutmake sin sinh snapshot sounds sqrt
syn keyword winbatchImplicit srchfree srchinit srchnext strcat strcharcount strcmp
syn keyword winbatchImplicit strfill strfix strfixchars stricmp strindex strlen
syn keyword winbatchImplicit strlower strreplace strscan strsub strtrim strupper
syn keyword winbatchImplicit tan tanh tcpaddr2host tcpftpchdir tcpftpclose tcpftpget
syn keyword winbatchImplicit tcpftplist tcpftpmode tcpftpopen tcpftpput tcphost2addr tcphttpget
syn keyword winbatchImplicit tcphttppost tcpparmget tcpparmset tcpping tcpsmtp terminate
syn keyword winbatchImplicit textbox textboxsort textoutbufdel textoutbuffer textoutdebug
syn keyword winbatchImplicit textoutfree textoutinfo textoutreset textouttrack textouttrackb
syn keyword winbatchImplicit textouttrackp textoutwait textselect timeadd timedate
syn keyword winbatchImplicit timedelay timediffdays timediffsecs timejulianday timejultoymd
syn keyword winbatchImplicit timesubtract timewait timeymdhms version versiondll
syn keyword winbatchImplicit w3addcon w3cancelcon w3dirbrowse w3getcaps w3getcon w3netdialog
syn keyword winbatchImplicit w3netgetuser w3prtbrowse w3version w95accessadd w95accessdel
syn keyword winbatchImplicit w95adddrive w95addprinter w95cancelcon w95dirdialog w95getcon
syn keyword winbatchImplicit w95getuser w95resources w95shareadd w95sharedel w95shareset
syn keyword winbatchImplicit w95version waitforkey wallpaper webbaseconv webcloselog
syn keyword winbatchImplicit webcmddata webcondata webcounter webdatdata webdumperror webhashcode
syn keyword winbatchImplicit webislocal weblogline webopenlog webout weboutfile webparamdata
syn keyword winbatchImplicit webparamnames websettimeout webverifycard winactivate
syn keyword winbatchImplicit winactivchild winarrange winclose winclosenot winconfig winexename
syn keyword winbatchImplicit winexist winparset winparget winexistchild wingetactive
syn keyword winbatchImplicit winhelp winhide winiconize winidget winisdos winitemchild
syn keyword winbatchImplicit winitemize winitemnameid winmetrics winname winparmget
syn keyword winbatchImplicit winparmset winplace winplaceget winplaceset
syn keyword winbatchImplicit winposition winresources winshow winstate winsysinfo
syn keyword winbatchImplicit wintitle winversion winwaitchild winwaitclose winwaitexist
syn keyword winbatchImplicit winzoom wnaddcon wncancelcon wncmptrinfo wndialog
syn keyword winbatchImplicit wndlgbrowse wndlgcon wndlgcon2 wndlgcon3
syn keyword winbatchImplicit wndlgcon4 wndlgdiscon wndlgnoshare wndlgshare wngetcaps
syn keyword winbatchImplicit wngetcon wngetuser wnnetnames wnrestore wnservers wnsharecnt
syn keyword winbatchImplicit wnsharename wnsharepath wnshares wntaccessadd wntaccessdel
syn keyword winbatchImplicit wntaccessget wntadddrive wntaddprinter wntcancelcon wntdirdialog
syn keyword winbatchImplicit wntgetcon wntgetuser wntlistgroups wntmemberdel wntmemberget
syn keyword winbatchImplicit wntmembergrps wntmemberlist wntmemberset wntresources wntshareadd
syn keyword winbatchImplicit wntsharedel wntshareset wntversion wnversion wnwrkgroups wwenvunload
syn keyword winbatchImplicit xbaseconvert xcursorset xdisklabelget xdriveready xextenderinfo
syn keyword winbatchImplicit xgetchildhwnd xgetelapsed xhex xmemcompact xmessagebox
syn keyword winbatchImplicit xsendmessage xverifyccard yield

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link winbatchLabel		PreProc
hi def link winbatchCtl		Operator
hi def link winbatchStatement	Statement
hi def link winbatchTodo		Todo
hi def link winbatchString		String
hi def link winbatchVar		Type
hi def link winbatchComment	Comment
hi def link winbatchImplicit	Special
hi def link winbatchNumber		Number
hi def link winbatchConstant	StorageClass


let b:current_syntax = "winbatch"

" vim: ts=8
PK�j�Z�DZZvim80/syntax/hgcommit.vimnu�[���" Vim syntax file
" Language:	hg (Mercurial) commit file
" Maintainer:	Ken Takata <kentkt at csc dot jp>
" Last Change:	2012 Aug 23
" Filenames:	hg-editor-*.txt
" License:	VIM License
" URL:		https://github.com/k-takata/hg-vim

if exists("b:current_syntax")
  finish
endif

syn match hgcommitComment "^HG:.*$"             contains=@NoSpell
syn match hgcommitUser    "^HG: user: \zs.*$"   contains=@NoSpell contained containedin=hgcommitComment
syn match hgcommitBranch  "^HG: branch \zs.*$"  contains=@NoSpell contained containedin=hgcommitComment
syn match hgcommitAdded   "^HG: \zsadded .*$"   contains=@NoSpell contained containedin=hgcommitComment
syn match hgcommitChanged "^HG: \zschanged .*$" contains=@NoSpell contained containedin=hgcommitComment
syn match hgcommitRemoved "^HG: \zsremoved .*$" contains=@NoSpell contained containedin=hgcommitComment

hi def link hgcommitComment Comment
hi def link hgcommitUser    String
hi def link hgcommitBranch  String
hi def link hgcommitAdded   Identifier
hi def link hgcommitChanged Special
hi def link hgcommitRemoved Constant

let b:current_syntax = "hgcommit"
PK�j�Z(_�ӳ�vim80/syntax/lynx.vimnu�[���" Vim syntax file
" Language:	Lynx configuration file (lynx.cfg)
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2013 Jun 20

" Lynx 2.8.7

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match lynxStart "^" transparent skipwhite nextgroup=lynxOption

syn match lynxComment "\(^\|\s\+\)#.*$" contains=lynxTodo

syn keyword lynxTodo TODO NOTE FIXME XXX contained

syn match lynxDelimiter ":" skipwhite nextgroup=lynxBoolean,lynxNumber,lynxNone,lynxRCOption

syn case ignore
syn keyword lynxBoolean TRUE FALSE ON OFF contained
syn keyword lynxNone    NONE		  contained
syn case match

syn match lynxNumber "-\=\<\d\+\>" contained

"{{{ Options
syn case ignore
syn keyword lynxOption ACCEPT_ALL_COOKIES ALERTSECS ALWAYS_RESUBMIT_POSTS
	\ ALWAYS_TRUSTED_EXEC ANONFTP_PASSWORD ASSUMED_COLOR
	\ ASSUMED_DOC_CHARSET_CHOICE ASSUME_CHARSET ASSUME_LOCAL_CHARSET
	\ ASSUME_UNREC_CHARSET AUTO_SESSION AUTO_UNCACHE_DIRLISTS BAD_HTML
	\ BIBP_BIBHOST BIBP_GLOBAL_SERVER BLOCK_MULTI_BOOKMARKS BOLD_H1
	\ BOLD_HEADERS BOLD_NAME_ANCHORS BOOKMARK_FILE BROKEN_FTP_EPSV
	\ BROKEN_FTP_RETR BZIP2_PATH CASE_SENSITIVE_ALWAYS_ON
	\ CASE_SENSITIVE_SEARCHING CHARACTER_SET CHARSETS_DIRECTORY
	\ CHARSET_SWITCH_RULES CHECKMAIL CHMOD_PATH COLLAPSE_BR_TAGS COLOR
	\ COLOR_STYLE COMPRESS_PATH CONNECT_TIMEOUT COOKIE_ACCEPT_DOMAINS
	\ COOKIE_FILE COOKIE_LOOSE_INVALID_DOMAINS
	\ COOKIE_QUERY_INVALID_DOMAINS COOKIE_REJECT_DOMAINS COOKIE_SAVE_FILE
	\ COOKIE_STRICT_INVALID_DOMAINS COPY_PATH CSO_PROXY CSWING_PATH
	\ DEBUGSECS DEFAULT_BOOKMARK_FILE DEFAULT_CACHE_SIZE DEFAULT_COLORS
	\ DEFAULT_EDITOR DEFAULT_INDEX_FILE DEFAULT_KEYPAD_MODE
	\ DEFAULT_KEYPAD_MODE_IS_NUMBERS_AS_ARROWS DEFAULT_USER_MODE
	\ DEFAULT_VIRTUAL_MEMORY_SIZE DELAYSECS DIRED_MENU DIR_LIST_ORDER
	\ DIR_LIST_STYLE DISPLAY DISPLAY_CHARSET_CHOICE DOWNLOADER EMACS_KEYS
	\ EMACS_KEYS_ALWAYS_ON ENABLE_LYNXRC ENABLE_SCROLLBACK EXTERNAL
	\ FILE_EDITOR FILE_SORTING_METHOD FINGER_PROXY FOCUS_WINDOW
	\ FORCE_8BIT_TOUPPER FORCE_COOKIE_PROMPT FORCE_EMPTY_HREFLESS_A
	\ FORCE_SSL_COOKIES_SECURE FORCE_SSL_PROMPT FORMS_OPTIONS FTP_FORMAT
	\ FTP_PASSIVE FTP_PROXY GLOBAL_EXTENSION_MAP GLOBAL_MAILCAP
	\ GOPHER_PROXY GOTOBUFFER GZIP_PATH HELPFILE HIDDEN_LINK_MARKER
	\ HISTORICAL_COMMENTS HTMLSRC_ATTRNAME_XFORM HTMLSRC_TAGNAME_XFORM
	\ HTTPS_PROXY HTTP_PROXY INCLUDE INFLATE_PATH INFOSECS INSTALL_PATH
	\ JUMPBUFFER JUMPFILE JUMP_PROMPT JUSTIFY JUSTIFY_MAX_VOID_PERCENT
	\ KBLAYOUT KEYBOARD_LAYOUT KEYMAP KEYPAD_MODE
	\ LEFTARROW_IN_TEXTFIELD_PROMPT LINEEDIT_MODE LIST_FORMAT
	\ LIST_NEWS_DATES LIST_NEWS_NUMBERS LOCALE_CHARSET LOCALHOST_ALIAS
	\ LOCAL_DOMAIN LOCAL_EXECUTION_LINKS_ALWAYS_ON
	\ LOCAL_EXECUTION_LINKS_ON_BUT_NOT_REMOTE LYNXCGI_DOCUMENT_ROOT
	\ LYNXCGI_ENVIRONMENT LYNX_HOST_NAME LYNX_SIG_FILE MAIL_ADRS
	\ MAIL_SYSTEM_ERROR_LOGGING MAKE_LINKS_FOR_ALL_IMAGES
	\ MAKE_PSEUDO_ALTS_FOR_INLINES MAX_COOKIES_BUFFER MAX_COOKIES_DOMAIN
	\ MAX_COOKIES_GLOBAL MESSAGESECS MINIMAL_COMMENTS MKDIR_PATH
	\ MULTI_BOOKMARK MULTI_BOOKMARK_SUPPORT MV_PATH NCR_IN_BOOKMARKS
	\ NESTED_TABLES NEWSPOST_PROXY NEWSREPLY_PROXY NEWS_CHUNK_SIZE
	\ NEWS_MAX_CHUNK NEWS_POSTING NEWS_PROXY NNTPSERVER NNTP_PROXY
	\ NONRESTARTING_SIGWINCH NO_DOT_FILES NO_FILE_REFERER
	\ NO_FORCED_CORE_DUMP NO_FROM_HEADER NO_ISMAP_IF_USEMAP NO_MARGINS
	\ NO_PAUSE NO_PROXY NO_REFERER_HEADER NO_TABLE_CENTER NO_TITLE
	\ NUMBER_FIELDS_ON_LEFT NUMBER_LINKS_ON_LEFT OUTGOING_MAIL_CHARSET
	\ PARTIAL PARTIAL_THRES PERSISTENT_COOKIES PERSONAL_EXTENSION_MAP
	\ PERSONAL_MAILCAP PERSONAL_MAIL_ADDRESS POSITIONABLE_EDITOR
	\ PREFERRED_CHARSET PREFERRED_ENCODING PREFERRED_LANGUAGE
	\ PREFERRED_MEDIA_TYPES PREPEND_BASE_TO_SOURCE
	\ PREPEND_CHARSET_TO_SOURCE PRETTYSRC PRETTYSRC_SPEC
	\ PRETTYSRC_VIEW_NO_ANCHOR_NUMBERING PRINTER QUIT_DEFAULT_YES RAW_MODE
	\ READ_TIMEOUT REFERER_WITH_QUERY REPLAYSECS REUSE_TEMPFILES
	\ RLOGIN_PATH RM_PATH RMDIR_PATH RULE RULESFILE
	\ RUN_ALL_EXECUTION_LINKS RUN_EXECUTION_LINKS_LOCAL SAVE_SPACE
	\ SCAN_FOR_BURIED_NEWS_REFS SCREEN_SIZE SCROLLBAR SCROLLBAR_ARROW
	\ SEEK_FRAG_AREA_IN_CUR SEEK_FRAG_MAP_IN_CUR SELECT_POPUPS
	\ SEND_USERAGENT SESSION_FILE SESSION_LIMIT SET_COOKIES SETFONT_PATH
	\ SHOW_COLOR SHOW_CURSOR SHOW_DOTFILES SHOW_KB_NAME SHOW_KB_RATE
	\ SNEWSPOST_PROXY SNEWSREPLY_PROXY SNEWS_PROXY SOFT_DQUOTES
	\ SOURCE_CACHE SOURCE_CACHE_FOR_ABORTED SSL_CERT_FILE STARTFILE
	\ STATUS_BUFFER_SIZE STRIP_DOTDOT_URLS SUBSTITUTE_UNDERSCORES
	\ SUB_BOOKMARKS SUFFIX SUFFIX_ORDER SYSLOG_REQUESTED_URLS SYSLOG_TEXT
	\ SYSTEM_EDITOR SYSTEM_MAIL SYSTEM_MAIL_FLAGS TAGSOUP TAR_PATH
	\ TELNET_PATH TEXTFIELDS_NEED_ACTIVATION TIMEOUT TN3270_PATH
	\ TOUCH_PATH TRIM_INPUT_FIELDS TRUSTED_EXEC TRUSTED_LYNXCGI
	\ UNCOMPRESS_PATH UNDERLINE_LINKS UNZIP_PATH UPLOADER
	\ URL_DOMAIN_PREFIXES URL_DOMAIN_SUFFIXES USERAGENT USER_MODE
	\ USE_FIXED_RECORDS USE_MOUSE USE_SELECT_POPUPS UUDECODE_PATH
	\ VERBOSE_IMAGES VIEWER VISITED_LINKS VI_KEYS VI_KEYS_ALWAYS_ON
	\ WAIS_PROXY XHTML_PARSING XLOADIMAGE_COMMAND ZCAT_PATH ZIP_PATH
	\ contained nextgroup=lynxDelimiter
syn keyword lynxRCOption accept_all_cookies assume_charset auto_session
	\ bookmark_file case_sensitive_searching character_set
	\ cookie_accept_domains cookie_file cookie_loose_invalid_domains
	\ cookie_query_invalid_domains cookie_reject_domains
	\ cookie_strict_invalid_domains dir_list_style display emacs_keys
	\ file_editor file_sorting_method force_cookie_prompt force_ssl_prompt
	\ ftp_passive kblayout keypad_mode lineedit_mode locale_charset
	\ make_links_for_all_images make_pseudo_alts_for_inlines
	\ multi_bookmark no_pause personal_mail_address preferred_charset
	\ preferred_encoding preferred_language preferred_media_types raw_mode
	\ run_all_execution_links run_execution_links_on_local_files scrollbar
	\ select_popups send_useragent session_file set_cookies show_color
	\ show_cursor show_dotfiles show_kb_rate sub_bookmarks tagsoup
	\ underline_links user_mode useragent verbose_images vi_keys
	\ visited_links
	\ contained nextgroup=lynxDelimiter
syn case match
" }}}

" cfg2html.pl formatting directives
syn match lynxFormatDir  "^\.h\d\s.*$"
syn match lynxFormatDir  "^\.\(ex\|nf\)\(\s\+\d\+\)\=$"
syn match lynxFormatDir  "^\.fi$"

hi def link lynxBoolean		Boolean
hi def link lynxComment		Comment
hi def link lynxDelimiter	Special
hi def link lynxFormatDir	Special
hi def link lynxNone		Constant
hi def link lynxNumber		Number
hi def link lynxOption		Identifier
hi def link lynxRCOption	lynxOption
hi def link lynxTodo		Todo

let b:current_syntax = "lynx"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8 fdm=marker:
PK�j�Z�����vim80/syntax/terminfo.vimnu�[���" Vim syntax file
" Language:             terminfo(5) definition
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match terminfoKeywords      '[,=#|]'

syn keyword terminfoTodo        contained TODO FIXME XXX NOTE

syn region  terminfoComment     display oneline start='^#' end='$'
                                \ contains=terminfoTodo,@Spell

syn match   terminfoNumbers     '\<[0-9]\+\>'

syn match   terminfoSpecialChar '\\\(\o\{3}\|[Eenlrtbfs^\,:0]\)'
syn match   terminfoSpecialChar '\^\a'

syn match   terminfoDelay       '$<[0-9]\+>'

syn keyword terminfoBooleans    bw am bce ccc xhp xhpa cpix crxw xt xenl eo gn
                                \ hc chts km daisy hs hls in lpix da db mir
                                \ msgr nxon xsb npc ndscr nrrmc os mc5i xcpa
                                \ sam eslok hz ul xon

syn keyword terminfoNumerics    cols it lh lw lines lm xmc ma colors pairs wnum
                                \ ncv nlab pb vt wsl bitwin bitype bufsz btns
                                \ spinh spinv maddr mjump mcs npins orc orhi
                                \ orl orvi cps widcs

syn keyword terminfoStrings     acsc cbt bel cr cpi lpi chr cvr csr rmp tbc mgc
                                \ clear el1 el ed hpa cmdch cwin cup cud1 home
                                \ civis cub1 mrcup cnorm cuf1 ll cuu1 cvvis
                                \ defc dch1 dl1 dial dsl dclk hd enacs smacs
                                \ smam blink bold smcup smdc dim swidm sdrfq
                                \ smir sitm slm smicm snlq snrmq prot rev
                                \ invis sshm smso ssubm ssupm smul sum smxon
                                \ ech rmacs rmam sgr0 rmcup rmdc rwidm rmir
                                \ ritm rlm rmicm rshm rmso rsubm rsupm rmul
                                \ rum rmxon pause hook flash ff fsl wingo hup
                                \ is1 is2 is3 if iprog initc initp ich1 il1 ip
                                \ ka1 ka3 kb2 kbs kbeg kcbt kc1 kc3 kcan ktbc
                                \ kclr kclo kcmd kcpy kcrt kctab kdch1 kdl1
                                \ kcud1 krmir kend kent kel ked kext kfnd khlp
                                \ khome kich1 kil1 kcub1 kll kmrk kmsg kmov
                                \ knxt knp kopn kopt kpp kprv kprt krdo kref
                                \ krfr krpl krst kres kcuf1 ksav kBEG kCAN
                                \ kCMD kCPY kCRT kDC kDL kslt kEND kEOL kEXT
                                \ kind kFND kHLP kHOM kIC kLFT kMSG kMOV kNXT
                                \ kOPT kPRV kPRT kri kRDO kRPL kRIT kRES kSAV
                                \ kSPD khts kUND kspd kund kcuu1 rmkx smkx
                                \ lf0 lf1 lf10 lf2 lf3 lf4 lf5 lf6 lf7 lf8 lf9
                                \ fln rmln smln rmm smm mhpa mcud1 mcub1 mcuf1
                                \ mvpa mcuu1 nel porder oc op pad dch dl cud
                                \ mcud ich indn il cub mcub cuf mcuf rin cuu
                                \ mccu pfkey pfloc pfx pln mc0 mc5p mc4 mc5
                                \ pulse qdial rmclk rep rfi rs1 rs2 rs3 rf rc
                                \ vpa sc ind ri scs sgr setbsmgb smgbp sclk
                                \ scp setb setf smgl smglp smgr smgrp hts smgt
                                \ smgtp wind sbim scsd rbim rcsd subcs supcs
                                \ ht docr tsl tone uc hu u0 u1 u2 u3 u4 u5 u6
                                \ u7 u8 u9 wait xoffc xonc zerom scesa bicr
                                \ binel birep csnm csin colornm defbi devt
                                \ dispc endbi smpch smsc rmpch rmsc getm kmous
                                \ minfo pctrm pfxl reqmp scesc s0ds s1ds s2ds
                                \ s3ds setab setaf setcolor smglr slines smgtb
                                \ ehhlm elhlm erhlm ethlm evhlm sgr1 slengthsL
syn match terminfoStrings       display '\<kf\([0-9]\|[0-5][0-9]\|6[0-3]\)\>'

syn match terminfoParameters    '%[%dcspl+*/mAO&|^=<>!~i?te;-]'
syn match terminfoParameters    "%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)"

hi def link terminfoComment     Comment
hi def link terminfoTodo        Todo
hi def link terminfoNumbers     Number
hi def link terminfoSpecialChar SpecialChar
hi def link terminfoDelay       Special
hi def link terminfoBooleans    Type
hi def link terminfoNumerics    Type
hi def link terminfoStrings     Type
hi def link terminfoParameters  Keyword
hi def link terminfoKeywords    Keyword

let b:current_syntax = "terminfo"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z1���oovim80/syntax/sdc.vimnu�[���" Vim syntax file
" Language:     SDC - Synopsys Design Constraints
" Maintainer:   Maurizio Tranchero - maurizio.tranchero@gmail.com
" Last Change:  Thu Mar  25 17:35:16 CET 2009
" Credits:      based on TCL Vim syntax file
" Version:	0.3

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the TCL syntax to start with
runtime! syntax/tcl.vim

" SDC-specific keywords
syn keyword sdcCollections	foreach_in_collection
syn keyword sdcObjectsQuery	get_clocks get_ports
syn keyword sdcObjectsInfo	get_point_info get_node_info get_path_info
syn keyword sdcObjectsInfo	get_timing_paths set_attribute
syn keyword sdcConstraints	set_false_path
syn keyword sdcNonIdealities	set_min_delay set_max_delay
syn keyword sdcNonIdealities	set_input_delay set_output_delay
syn keyword sdcNonIdealities	set_load set_min_capacitance set_max_capacitance
syn keyword sdcCreateOperations	create_clock create_timing_netlist update_timing_netlist

" command flags highlighting
syn match sdcFlags		"[[:space:]]-[[:alpha:]]*\>"

" Define the default highlighting.
hi def link sdcCollections      Repeat
hi def link sdcObjectsInfo      Operator
hi def link sdcCreateOperations	Operator
hi def link sdcObjectsQuery	Operator
hi def link sdcConstraints	Operator
hi def link sdcNonIdealities	Operator
hi def link sdcFlags		Special

let b:current_syntax = "sdc"

" vim: ts=8
PK�j�Z-ùhhvim80/syntax/mmix.vimnu�[���" Vim syntax file
" Language:	MMIX
" Maintainer:	Dirk H�sken, <huesken@informatik.uni-tuebingen.de>
" Last Change:	2012 Jun 01
" 		(Dominique Pelle added @Spell)
" Filenames:	*.mms
" URL: http://homepages.uni-tuebingen.de/student/dirk.huesken/vim/syntax/mmix.vim

" Limitations:	Comments must start with either % or //
"		(preferably %, Knuth-Style)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" MMIX data types
syn keyword mmixType	byte wyde tetra octa

" different literals...
syn match decNumber		"[0-9]*"
syn match octNumber		"0[0-7][0-7]\+"
syn match hexNumber		"#[0-9a-fA-F]\+"
syn region mmixString		start=+"+ skip=+\\"+ end=+"+ contains=@Spell
syn match mmixChar		"'.'"

" ...and more special MMIX stuff
syn match mmixAt		"@"
syn keyword mmixSegments	Data_Segment Pool_Segment Stack_Segment

syn match mmixIdentifier	"[a-z_][a-z0-9_]*"

" labels (for branches etc)
syn match mmixLabel		"^[a-z0-9_:][a-z0-9_]*"
syn match mmixLabel		"[0-9][HBF]"

" pseudo-operations
syn keyword mmixPseudo		is loc greg

" comments
syn match mmixComment		"%.*" contains=@Spell
syn match mmixComment		"//.*" contains=@Spell
syn match mmixComment		"^\*.*" contains=@Spell


syn keyword mmixOpcode	trap fcmp fun feql fadd fix fsub fixu
syn keyword mmixOpcode	fmul fcmpe fune feqle fdiv fsqrt frem fint

syn keyword mmixOpcode	floti flotui sfloti sflotui i
syn keyword mmixOpcode	muli mului divi divui
syn keyword mmixOpcode	addi addui subi subui
syn keyword mmixOpcode	2addui 4addui 8addui 16addui
syn keyword mmixOpcode	cmpi cmpui negi negui
syn keyword mmixOpcode	sli slui sri srui
syn keyword mmixOpcode	bnb bzb bpb bodb
syn keyword mmixOpcode	bnnb bnzb bnpb bevb
syn keyword mmixOpcode	pbnb pbzb pbpb pbodb
syn keyword mmixOpcode	pbnnb pbnzb pbnpb pbevb
syn keyword mmixOpcode	csni cszi cspi csodi
syn keyword mmixOpcode	csnni csnzi csnpi csevi
syn keyword mmixOpcode	zsni zszi zspi zsodi
syn keyword mmixOpcode	zsnni zsnzi zsnpi zsevi
syn keyword mmixOpcode	ldbi ldbui ldwi ldwui
syn keyword mmixOpcode	ldti ldtui ldoi ldoui
syn keyword mmixOpcode	ldsfi ldhti cswapi ldunci
syn keyword mmixOpcode	ldvtsi preldi pregoi goi
syn keyword mmixOpcode	stbi stbui stwi stwui
syn keyword mmixOpcode	stti sttui stoi stoui
syn keyword mmixOpcode	stsfi sthti stcoi stunci
syn keyword mmixOpcode	syncdi presti syncidi pushgoi
syn keyword mmixOpcode	ori orni nori xori
syn keyword mmixOpcode	andi andni nandi nxori
syn keyword mmixOpcode	bdifi wdifi tdifi odifi
syn keyword mmixOpcode	muxi saddi mori mxori
syn keyword mmixOpcode	muli mului divi divui

syn keyword mmixOpcode	flot flotu sflot sflotu
syn keyword mmixOpcode	mul mulu div divu
syn keyword mmixOpcode	add addu sub subu
syn keyword mmixOpcode	2addu 4addu 8addu 16addu
syn keyword mmixOpcode	cmp cmpu neg negu
syn keyword mmixOpcode	sl slu sr sru
syn keyword mmixOpcode	bn bz bp bod
syn keyword mmixOpcode	bnn bnz bnp bev
syn keyword mmixOpcode	pbn pbz pbp pbod
syn keyword mmixOpcode	pbnn pbnz pbnp pbev
syn keyword mmixOpcode	csn csz csp csod
syn keyword mmixOpcode	csnn csnz csnp csev
syn keyword mmixOpcode	zsn zsz zsp zsod
syn keyword mmixOpcode	zsnn zsnz zsnp zsev
syn keyword mmixOpcode	ldb ldbu ldw ldwu
syn keyword mmixOpcode	ldt ldtu ldo ldou
syn keyword mmixOpcode	ldsf ldht cswap ldunc
syn keyword mmixOpcode	ldvts preld prego go
syn keyword mmixOpcode	stb stbu stw stwu
syn keyword mmixOpcode	stt sttu sto stou
syn keyword mmixOpcode	stsf stht stco stunc
syn keyword mmixOpcode	syncd prest syncid pushgo
syn keyword mmixOpcode	or orn nor xor
syn keyword mmixOpcode	and andn nand nxor
syn keyword mmixOpcode	bdif wdif tdif odif
syn keyword mmixOpcode	mux sadd mor mxor

syn keyword mmixOpcode	seth setmh setml setl inch incmh incml incl
syn keyword mmixOpcode	orh ormh orml orl andh andmh andml andnl
syn keyword mmixOpcode	jmp pushj geta put
syn keyword mmixOpcode	pop resume save unsave sync swym get trip
syn keyword mmixOpcode	set lda

" switch back to being case sensitive
syn case match

" general-purpose and special-purpose registers
syn match mmixRegister		"$[0-9]*"
syn match mmixRegister		"r[A-Z]"
syn keyword mmixRegister	rBB rTT rWW rXX rYY rZZ

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default methods for highlighting.  Can be overridden later
hi def link mmixAt		Type
hi def link mmixPseudo	Type
hi def link mmixRegister	Special
hi def link mmixSegments	Type

hi def link mmixLabel	Special
hi def link mmixComment	Comment
hi def link mmixOpcode	Keyword

hi def link hexNumber	Number
hi def link decNumber	Number
hi def link octNumber	Number

hi def link mmixString	String
hi def link mmixChar	String

hi def link mmixType	Type
hi def link mmixIdentifier	Normal
hi def link mmixSpecialComment Comment

" My default color overrides:
" hi mmixSpecialComment ctermfg=red
"hi mmixLabel ctermfg=lightcyan
" hi mmixType ctermbg=black ctermfg=brown


let b:current_syntax = "mmix"

" vim: ts=8
PK�j�Z+��F#F#vim80/syntax/abap.vimnu�[���" Vim ABAP syntax file
"    Language: SAP - ABAP/R4
"    Revision: 2.1
"  Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com>
" Last Change: 2013 Jun 13
"     Comment: Thanks to EPI-USE Labs for all your assistance. :)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Always ignore case
syn case ignore

" 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"
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  "\[\]"
syn match   abapSymbolOperator  "->\*\?"
syn match   abapSymbolOperator  "=>"
syn match   abapSymbolOperator  "[()~:,\.&$]"

" Literals
syn region  abapCharString matchgroup=abapCharString start="'" end="'" contains=abapCharStringEscape
syn match   abapCharStringEscape contained "''"

syn region  abapString matchgroup=abapString start="`" end="`" contains=abapStringEscape
syn match   abapStringEscape contained "``"

syn match   abapNumber  "\-\=\<\d\+\>"
syn region  abapHex     matchgroup=abapHex start="X'" end="'"

setlocal iskeyword=48-57,_,A-Z,a-z,/

syn match   abapNamespace        "\</\w\+/"

" multi-word statements
syn match   abapComplexStatement "\<\(WITH\W\+\(HEADER\W\+LINE\|FRAME\|KEY\)\|WITH\)\>"
syn match   abapComplexStatement "\<NO\W\+STANDARD\W\+PAGE\W\+HEADING\>"
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 "\<\(END\W\+OF\W\+\(BLOCK\|LINE\)\|END\W\+OF\)\>"
syn match   abapComplexStatement "\<NO\W\+INTERVALS\>"
syn match   abapComplexStatement "\<RESPECTING\W\+BLANKS\>"
syn match   abapComplexStatement "\<SEPARATED\W\+BY\>"
syn match   abapComplexStatement "\<USING\(\W\+EDIT\W\+MASK\)\?\>"
syn match   abapComplexStatement "\<WHERE\(\W\+LINE\)\?\>"
syn match   abapComplexStatement "\<RADIOBUTTON\W\+GROUP\>"
syn match   abapComplexStatement "\<REF\W\+TO\>"
syn match   abapComplexStatement "\<\(PUBLIC\|PRIVATE\|PROTECTED\)\(\W\+SECTION\)\?\>"
syn match   abapComplexStatement "\<DELETING\W\+\(TRAILING\|LEADING\)\>"
syn match   abapComplexStatement "\<\(ALL\W\+OCCURRENCES\)\|\(\(FIRST\|LAST\)\W\+OCCURRENCE\)\>"
syn match   abapComplexStatement "\<INHERITING\W\+FROM\>"
syn match   abapComplexStatement "\<\(UP\W\+\)\?TO\>"

" hyphenated-word statements
syn match   abapComplexStatement "\<LINE-COUNT\>"
syn match   abapComplexStatement "\<ADD-CORRESPONDING\>"
syn match   abapComplexStatement "\<AUTHORITY-CHECK\>"
syn match   abapComplexStatement "\<BREAK-POINT\>"
syn match   abapComplexStatement "\<CLASS-DATA\>"
syn match   abapComplexStatement "\<CLASS-METHODS\>"
syn match   abapComplexStatement "\<CLASS-METHOD\>"
syn match   abapComplexStatement "\<DIVIDE-CORRESPONDING\>"
syn match   abapComplexStatement "\<EDITOR-CALL\>"
syn match   abapComplexStatement "\<END-OF-DEFINITION\>"
syn match   abapComplexStatement "\<END-OF-PAGE\>"
syn match   abapComplexStatement "\<END-OF-SELECTION\>"
syn match   abapComplexStatement "\<FIELD-GROUPS\>"
syn match   abapComplexStatement "\<FIELD-SYMBOLS\>"
syn match   abapComplexStatement "\<FUNCTION-POOL\>"
syn match   abapComplexStatement "\<IS\W\+\(NOT\W\+\)\?\(ASSIGNED\|BOUND\|INITIAL\|SUPPLIED\)\>"
syn match   abapComplexStatement "\<MOVE-CORRESPONDING\>"
syn match   abapComplexStatement "\<MULTIPLY-CORRESPONDING\>"
syn match   abapComplexStatement "\<NEW-LINE\>"
syn match   abapComplexStatement "\<NEW-PAGE\>"
syn match   abapComplexStatement "\<NEW-SECTION\>"
syn match   abapComplexStatement "\<PRINT-CONTROL\>"
syn match   abapComplexStatement "\<RP-PROVIDE-FROM-LAST\>"
syn match   abapComplexStatement "\<SELECT-OPTIONS\>"
syn match   abapComplexStatement "\<SELECTION-SCREEN\>"
syn match   abapComplexStatement "\<START-OF-SELECTION\>"
syn match   abapComplexStatement "\<SUBTRACT-CORRESPONDING\>"
syn match   abapComplexStatement "\<SYNTAX-CHECK\>"
syn match   abapComplexStatement "\<SYNTAX-TRACE\>"
syn match   abapComplexStatement "\<TOP-OF-PAGE\>"
syn match   abapComplexStatement "\<TYPE-POOL\>"
syn match   abapComplexStatement "\<TYPE-POOLS\>"
syn match   abapComplexStatement "\<LINE-SIZE\>"
syn match   abapComplexStatement "\<LINE-COUNT\>"
syn match   abapComplexStatement "\<MESSAGE-ID\>"
syn match   abapComplexStatement "\<DISPLAY-MODE\>"
syn match   abapComplexStatement "\<READ\(-ONLY\)\?\>"

" ABAP statements
syn keyword abapStatement ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT
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 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 FETCH FIELDS FORM FORMAT FREE FROM FUNCTION
syn keyword abapStatement GENERATE GET
syn keyword abapStatement HIDE
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 MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY
syn keyword abapStatement ON OVERLAY OPTIONAL OTHERS
syn keyword abapStatement PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT
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 TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES
syn keyword abapStatement UNASSIGN ULINE UNPACK UPDATE
syn keyword abapStatement WHEN WHILE WINDOW WRITE

" 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 CASTING APPEND RAISING VALUE COLOR
syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT
syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT

" Special ABAP specific tables:
syn match   abapSpecialTables "\<\(sy\|\(hrp\|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   abapField         "-\w\+"ms=s+1

" Pointer
syn match   abapSpecial  "<\w\+>"

" Abap common constants:
syn keyword abapSpecial  TRUE FALSE NULL SPACE

" Includes
syn region abapInclude   start="include" end="." contains=abapComment

" Types
syn keyword abapTypes    c n i p f d t x string xstring decfloat16 decfloat34

" Atritmitic operators
syn keyword abapOperator abs sign ceil floor trunc frac acos asin atan cos sin tan
syn keyword abapOperator cosh sinh tanh exp log log10 sqrt

" String operators
syn keyword abapStatement strlen xstrlen charlen numofchar dbmaxlen

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.
syn match   abapError    "\.\."

" Comments
syn region  abapComment  start="^\*" end="$" contains=abapTodo
syn match   abapComment  "\".*" contains=abapTodo
syn keyword abapTodo     contained TODO NOTE
syn match   abapTodo     "\#EC\W\+\w\+"

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link abapError          Error
hi def link abapComment        Comment
hi def link abapInclude        Include
hi def link abapStatement      Statement
hi def link abapComplexStatement      Statement
hi def link abapSpecial        Special
hi def link abapNamespace      Special
hi def link abapSpecialTables  Special
hi def link abapSymbolOperator abapOperator
hi def link abapOperator       Operator
hi def link abapCharString     String
hi def link abapString         String
hi def link abapFloat          Float
hi def link abapTypes          Type
hi def link abapSymbol         Structure
hi def link abapStructure      Structure
hi def link abapField          Variable
hi def link abapNumber         Number
hi def link abapHex            Number


let b:current_syntax = "abap"

" vim: ts=8 sw=2

PK�j�ZuUSUvim80/syntax/coco.vimnu�[���" Vim syntax file
" Language:     Coco/R
" Maintainer:   Ashish Shukla <wahjava@gmail.com>
" Last Change:  2007 Aug 10
" Remark:       Coco/R syntax partially implemented.
" License:      Vim license

" quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif

syn keyword cocoKeywords ANY CHARACTERS COMMENTS COMPILER CONTEXT END FROM IF IGNORE IGNORECASE NESTED PRAGMAS PRODUCTIONS SYNC TO TOKENS WEAK
syn match   cocoUnilineComment    #//.*$#
syn match   cocoIdentifier        /[[:alpha:]][[:alnum:]]*/
syn region  cocoMultilineComment  start=#/[*]# end=#[*]/#
syn region  cocoString            start=/"/ skip=/\\"\|\\\\/ end=/"/
syn region  cocoCharacter         start=/'/ skip=/\\'\|\\\\/ end=/'/
syn match   cocoOperator          /+\||\|\.\.\|-\|(\|)\|{\|}\|\[\|\]\|=\|<\|>/
syn region  cocoProductionCode    start=/([.]/ end=/[.])/
syn match   cocoPragma            /[$][[:alnum:]]*/

hi def link cocoKeywords         Keyword
hi def link cocoUnilineComment   Comment 
hi def link cocoMultilineComment Comment
hi def link cocoIdentifier       Identifier
hi def link cocoString           String
hi def link cocoCharacter        Character
hi def link cocoOperator         Operator
hi def link cocoProductionCode   Statement
hi def link cocoPragma           Special

PK�j�Z�N�j||vim80/syntax/ibasic.vimnu�[���" Vim syntax file
" Language:	ibasic
" Maintainer:	Mark Manning <markem@airmail.net>
" Originator:	Allan Kelly <Allan.Kelly@ed.ac.uk>
" Created:	10/1/2006
" Updated:	10/21/2006
" Description:  A vim file to handle the IBasic file format.
" Notes:
"	Updated by Mark Manning <markem@airmail.net>
"	Applied IBasic support to the already excellent support for standard
"	basic syntax (like QB).
"
"	First version based on Micro$soft QBASIC circa 1989, as documented in
"	'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
"	This syntax file not a complete implementation yet.
"	Send suggestions to the maintainer.
"
"	This version is based upon the commands found in IBasic (www.pyxia.com).
"	MEM 10/6/2006
"
"	Quit when a (custom) syntax file was already loaded (Taken from c.vim)
"
if exists("b:current_syntax")
  finish
endif
"
"	Be sure to turn on the "case ignore" since current versions of basic
"	support both upper as well as lowercase letters.
"
syn case ignore
"
" A bunch of useful BASIC keywords
"
syn keyword ibasicStatement	beep bload bsave call absolute chain chdir circle
syn keyword ibasicStatement	clear close cls color com common const data
syn keyword ibasicStatement	loop draw end environ erase error exit field
syn keyword ibasicStatement	files function get gosub goto
syn keyword ibasicStatement	input input# ioctl key kill let line locate
syn keyword ibasicStatement	lock unlock lprint using lset mkdir name
syn keyword ibasicStatement	on error open option base out paint palette pcopy
syn keyword ibasicStatement	pen play pmap poke preset print print# using pset
syn keyword ibasicStatement	put randomize read redim reset restore resume
syn keyword ibasicStatement	return rmdir rset run seek screen
syn keyword ibasicStatement	shared shell sleep sound static stop strig sub
syn keyword ibasicStatement	swap system timer troff tron type unlock
syn keyword ibasicStatement	view wait width window write
syn keyword ibasicStatement	date$ mid$ time$
"
"	Do the basic variables names first.  This is because it
"	is the most inclusive of the tests.  Later on we change
"	this so the identifiers are split up into the various
"	types of identifiers like functions, basic commands and
"	such. MEM 9/9/2006
"
syn match	ibasicIdentifier			"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
syn match	ibasicGenericFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
"
"	Function list
"
syn keyword ibasicBuiltInFunction	abs asc atn cdbl cint clng cos csng csrlin cvd cvdmbf
syn keyword ibasicBuiltInFunction	cvi cvl cvs cvsmbf eof erdev erl err exp fileattr
syn keyword ibasicBuiltInFunction	fix fre freefile inp instr lbound len loc lof
syn keyword ibasicBuiltInFunction	log lpos mod peek pen point pos rnd sadd screen seek
syn keyword ibasicBuiltInFunction	setmem sgn sin spc sqr stick strig tab tan ubound
syn keyword ibasicBuiltInFunction	val valptr valseg varptr varseg
syn keyword ibasicBuiltInFunction	chr\$ command$ date$ environ$ erdev$ hex$ inkey$
syn keyword ibasicBuiltInFunction	input$ ioctl$ lcases$ laft$ ltrim$ mid$ mkdmbf$ mkd$
syn keyword ibasicBuiltInFunction	mki$ mkl$ mksmbf$ mks$ oct$ right$ rtrim$ space$
syn keyword ibasicBuiltInFunction	str$ string$ time$ ucase$ varptr$
syn keyword ibasicTodo contained	TODO
syn cluster	ibasicFunctionCluster	contains=ibasicBuiltInFunction,ibasicGenericFunction

syn keyword Conditional	if else then elseif endif select case endselect
syn keyword Repeat	for do while next enddo endwhile wend

syn keyword ibasicTypeSpecifier	single double defdbl defsng
syn keyword ibasicTypeSpecifier	int integer uint uinteger int64 uint64 defint deflng
syn keyword ibasicTypeSpecifier	byte char string istring defstr
syn keyword ibasicDefine	dim def declare
"
"catch errors caused by wrong parenthesis
"
syn cluster	ibasicParenGroup	contains=ibasicParenError,ibasicIncluded,ibasicSpecial,ibasicTodo,ibasicUserCont,ibasicUserLabel,ibasicBitField
syn region	ibasicParen		transparent start='(' end=')' contains=ALLBUT,@bParenGroup
syn match	ibasicParenError	")"
syn match	ibasicInParen	contained "[{}]"
"
"integer number, or floating point number without a dot and with "f".
"
syn region	ibasicHex		start="&h" end="\W"
syn region	ibasicHexError	start="&h\x*[g-zG-Z]" end="\W"
syn match	ibasicInteger	"\<\d\+\(u\=l\=\|lu\|f\)\>"
"
"floating point number, with dot, optional exponent
"
syn match	ibasicFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"
"floating point number, starting with a dot, optional exponent
"
syn match	ibasicFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"
"floating point number, without dot, with exponent
"
syn match	ibasicFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
"
"hex number
"
syn match	ibasicIdentifier	"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
syn match	ibasicFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
syn case match
syn match	ibasicOctalError	"\<0\o*[89]"
"
" String and Character contstants
"
syn region	ibasicString		start='"' end='"' contains=ibasicSpecial,ibasicTodo
syn region	ibasicString		start="'" end="'" contains=ibasicSpecial,ibasicTodo
"
"	Comments
"
syn match	ibasicSpecial	contained "\\."
syn region  ibasicComment	start="^rem" end="$" contains=ibasicSpecial,ibasicTodo
syn region  ibasicComment	start=":\s*rem" end="$" contains=ibasicSpecial,ibasicTodo
syn region	ibasicComment	start="\s*'" end="$" contains=ibasicSpecial,ibasicTodo
syn region	ibasicComment	start="^'" end="$" contains=ibasicSpecial,ibasicTodo
"
"	Now do the comments and labels
"
syn match	ibasicLabel		"^\d"
syn region  ibasicLineNumber	start="^\d" end="\s"
"
"	Pre-compiler options : FreeBasic
"
syn region	ibasicPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=ibasicString,ibasicCharacter,ibasicNumber,ibasicCommentError,ibasicSpaceError
syn match	ibasicInclude	"^\s*#\s*include\s*"
"
"	Create the clusters
"
syn cluster ibasicNumber contains=ibasicHex,ibasicInteger,ibasicFloat
syn cluster	ibasicError	contains=ibasicHexError
"
"	Used with OPEN statement
"
syn match   ibasicFilenumber  "#\d\+"
"
"syn sync ccomment ibasicComment
"
syn match	ibasicMathOperator	"[\+\-\=\|\*\/\>\<\%\()[\]]" contains=ibasicParen
"
" The default methods for highlighting.  Can be overridden later
"
hi def link ibasicLabel			Label
hi def link ibasicConditional		Conditional
hi def link ibasicRepeat		Repeat
hi def link ibasicHex			Number
hi def link ibasicInteger		Number
hi def link ibasicFloat			Number
hi def link ibasicError			Error
hi def link ibasicHexError		Error
hi def link ibasicStatement		Statement
hi def link ibasicString		String
hi def link ibasicComment		Comment
hi def link ibasicLineNumber		Comment
hi def link ibasicSpecial		Special
hi def link ibasicTodo			Todo
hi def link ibasicGenericFunction	Function
hi def link ibasicBuiltInFunction	Function
hi def link ibasicTypeSpecifier		Type
hi def link ibasicDefine		Type
hi def link ibasicInclude		Include
hi def link ibasicIdentifier		Identifier
hi def link ibasicFilenumber		ibasicTypeSpecifier
hi def link ibasicMathOperator		Operator

let b:current_syntax = "ibasic"

" vim: ts=8
PK�j�Z���NNvim80/syntax/z8a.vimnu�[���" Vim syntax file
" Language:	Z80 assembler asz80
" Maintainer:	Milan Pikula <www@fornax.elf.stuba.sk>
" Last Change:	2003 May 11

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case ignore

" Common Z80 Assembly instructions
syn keyword z8aInstruction adc add and bit ccf cp cpd cpdr cpi cpir cpl
syn keyword z8aInstruction daa di djnz ei exx halt im in
syn keyword z8aInstruction ind ini indr inir jp jr ld ldd lddr ldi ldir
syn keyword z8aInstruction neg nop or otdr otir out outd outi
syn keyword z8aInstruction res rl rla rlc rlca rld
syn keyword z8aInstruction rr rra rrc rrca rrd sbc scf set sla sra
syn keyword z8aInstruction srl sub xor
" syn keyword z8aInstruction push pop call ret reti retn inc dec ex rst

" Any other stuff
syn match z8aIdentifier		"[a-z_][a-z0-9_]*"

" Instructions changing stack
syn keyword z8aSpecInst push pop call ret reti retn rst
syn match z8aInstruction "\<inc\>"
syn match z8aInstruction "\<dec\>"
syn match z8aInstruction "\<ex\>"
syn match z8aSpecInst "\<inc\s\+sp\>"me=s+3
syn match z8aSpecInst "\<dec\s\+sp\>"me=s+3
syn match z8aSpecInst "\<ex\s\+(\s*sp\s*)\s*,\s*hl\>"me=s+2

"Labels
syn match z8aLabel		"[a-z_][a-z0-9_]*:"
syn match z8aSpecialLabel	"[a-z_][a-z0-9_]*::"

" PreProcessor commands
syn match z8aPreProc	"\.org"
syn match z8aPreProc	"\.globl"
syn match z8aPreProc	"\.db"
syn match z8aPreProc	"\.dw"
syn match z8aPreProc	"\.ds"
syn match z8aPreProc	"\.byte"
syn match z8aPreProc	"\.word"
syn match z8aPreProc	"\.blkb"
syn match z8aPreProc	"\.blkw"
syn match z8aPreProc	"\.ascii"
syn match z8aPreProc	"\.asciz"
syn match z8aPreProc	"\.module"
syn match z8aPreProc	"\.title"
syn match z8aPreProc	"\.sbttl"
syn match z8aPreProc	"\.even"
syn match z8aPreProc	"\.odd"
syn match z8aPreProc	"\.area"
syn match z8aPreProc	"\.page"
syn match z8aPreProc	"\.setdp"
syn match z8aPreProc	"\.radix"
syn match z8aInclude	"\.include"
syn match z8aPreCondit	"\.if"
syn match z8aPreCondit	"\.else"
syn match z8aPreCondit	"\.endif"

" Common strings
syn match z8aString		"\".*\""
syn match z8aString		"\'.*\'"

" Numbers
syn match z8aNumber		"[0-9]\+"
syn match z8aNumber		"0[xXhH][0-9a-fA-F]\+"
syn match z8aNumber		"0[bB][0-1]*"
syn match z8aNumber		"0[oO\@qQ][0-7]\+"
syn match z8aNumber		"0[dD][0-9]\+"

" Character constant
syn match z8aString		"\#\'."hs=s+1

" Comments
syn match z8aComment		";.*"

syn case match

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link z8aSection		Special
hi def link z8aLabel		Label
hi def link z8aSpecialLabel	Label
hi def link z8aComment		Comment
hi def link z8aInstruction	Statement
hi def link z8aSpecInst		Statement
hi def link z8aInclude		Include
hi def link z8aPreCondit		PreCondit
hi def link z8aPreProc		PreProc
hi def link z8aNumber		Number
hi def link z8aString		String


let b:current_syntax = "z8a"
" vim: ts=8
PK�j�Z�W�
�o�ovim80/syntax/d.vimnu�[���" Vim syntax file for the D programming language (version 1.076 and 2.069).
"
" Language:     D
" Maintainer:   Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
" Last Change:  2016 Feb 2
" Version:      0.28
"
" Contributors:
"   - Jason Mills: original Maintainer
"   - Kirk McDonald
"   - Tim Keating
"   - Frank Benoit
"   - Shougo Matsushita
"   - Ellery Newcomer
"   - Steven N. Oliver
"   - Sohgo Takeuchi
"   - Robert Clipsham
"   - Petar Kirov
"
" Please submit bugs/comments/suggestions to the github repo: 
" https://github.com/JesseKPhillips/d.vim
"
" Options:
"   d_comment_strings - Set to highlight strings and numbers in comments.
"
"   d_hl_operator_overload - Set to highlight D's specially named functions
"   that when overloaded implement unary and binary operators (e.g. opCmp).
"
"   d_hl_object_types - Set to highlight some common types from object.di.

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Support cpoptions
let s:cpo_save = &cpo
set cpo&vim

" Set the current syntax to be known as d
let b:current_syntax = "d"

" Keyword definitions
"
syn keyword dExternal              contained import module
syn keyword dAssert                assert
syn keyword dConditional           if else switch
syn keyword dBranch                goto break continue
syn keyword dRepeat                while for do foreach foreach_reverse
syn keyword dBoolean               true false
syn keyword dConstant              null
syn keyword dConstant              __FILE__ __LINE__ __EOF__ __VERSION__
syn keyword dConstant              __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
syn keyword dConstant              __MODULE__ __FUNCTION__ __PRETTY_FUNCTION__
syn keyword dTypedef               alias typedef
syn keyword dStructure             template interface class struct union
syn keyword dEnum                  enum
syn keyword dOperator              new delete typeof typeid cast align is
syn keyword dOperator              this super
if exists("d_hl_operator_overload")
  syn keyword dOpOverload          opNeg opCom opPostInc opPostDec opCast opAdd
  syn keyword dOpOverload          opSub opSub_r opMul opDiv opDiv_r opMod 
  syn keyword dOpOverload          opMod_r opAnd opOr opXor opShl opShl_r opShr
  syn keyword dOpOverload          opShr_r opUShr opUShr_r opCat
  syn keyword dOpOverload          opCat_r opEquals opCmp
  syn keyword dOpOverload          opAssign opAddAssign opSubAssign opMulAssign
  syn keyword dOpOverload          opDivAssign opModAssign opAndAssign 
  syn keyword dOpOverload          opOrAssign opXorAssign opShlAssign 
  syn keyword dOpOverload          opShrAssign opUShrAssign opCatAssign
  syn keyword dOpOverload          opIndex opIndexAssign opIndexOpAssign
  syn keyword dOpOverload          opCall opSlice opSliceAssign opSliceOpAssign 
  syn keyword dOpOverload          opPos opAdd_r opMul_r opAnd_r opOr_r opXor_r
  syn keyword dOpOverload          opIn opIn_r opPow opDispatch opStar opDot 
  syn keyword dOpOverload          opApply opApplyReverse opDollar
  syn keyword dOpOverload          opUnary opIndexUnary opSliceUnary
  syn keyword dOpOverload          opBinary opBinaryRight
endif

syn keyword dType                  byte ubyte short ushort int uint long ulong cent ucent
syn keyword dType                  void bool Object
syn keyword dType                  float double real
syn keyword dType                  ushort int uint long ulong float
syn keyword dType                  char wchar dchar string wstring dstring
syn keyword dType                  ireal ifloat idouble creal cfloat cdouble
syn keyword dType                  size_t ptrdiff_t sizediff_t equals_t hash_t
if exists("d_hl_object_types")
  syn keyword dType                Object Throwable AssociativeArray Error Exception
  syn keyword dType                Interface OffsetTypeInfo TypeInfo TypeInfo_Typedef
  syn keyword dType                TypeInfo_Enum TypeInfo_Pointer TypeInfo_Array
  syn keyword dType                TypeInfo_StaticArray TypeInfo_AssociativeArray
  syn keyword dType                TypeInfo_Function TypeInfo_Delegate TypeInfo_Class
  syn keyword dType                ClassInfo TypeInfo_Interface TypeInfo_Struct
  syn keyword dType                TypeInfo_Tuple TypeInfo_Const TypeInfo_Invariant
  syn keyword dType                TypeInfo_Shared TypeInfo_Inout MemberInfo
  syn keyword dType                MemberInfo_field MemberInfo_function ModuleInfo
endif
syn keyword dDebug                 deprecated unittest invariant
syn keyword dExceptions            throw try catch finally
syn keyword dScopeDecl             public protected private export package 
syn keyword dStatement             debug return with
syn keyword dStatement             function delegate __ctfe mixin macro __simd
syn keyword dStatement             in out body
syn keyword dStorageClass          contained in out scope
syn keyword dStorageClass          inout ref lazy pure nothrow
syn keyword dStorageClass          auto static override final abstract volatile
syn keyword dStorageClass          __gshared __vector
syn keyword dStorageClass          synchronized shared immutable const lazy
syn keyword dIdentifier            _arguments _argptr __vptr __monitor
syn keyword dIdentifier             _ctor _dtor __argTypes __overloadset
syn keyword dScopeIdentifier       contained exit success failure
syn keyword dTraitsIdentifier      contained isAbstractClass isArithmetic
syn keyword dTraitsIdentifier      contained isAssociativeArray isFinalClass
syn keyword dTraitsIdentifier      contained isPOD isNested isFloating
syn keyword dTraitsIdentifier      contained isIntegral isScalar isStaticArray
syn keyword dTraitsIdentifier      contained isUnsigned isVirtualFunction
syn keyword dTraitsIdentifier      contained isVirtualMethod isAbstractFunction
syn keyword dTraitsIdentifier      contained isFinalFunction isStaticFunction
syn keyword dTraitsIdentifier      contained isOverrideFunction isTemplate
syn keyword dTraitsIdentifier      contained isRef isOut isLazy hasMember
syn keyword dTraitsIdentifier      contained identifier getAliasThis
syn keyword dTraitsIdentifier      contained getAttributes getFunctionAttributes getMember
syn keyword dTraitsIdentifier      contained getOverloads getPointerBitmap getProtection
syn keyword dTraitsIdentifier      contained getVirtualFunctions getVirtualIndex
syn keyword dTraitsIdentifier      contained getVirtualMethods getUnitTests
syn keyword dTraitsIdentifier      contained parent classInstanceSize allMembers
syn keyword dTraitsIdentifier      contained derivedMembers isSame compiles
syn keyword dPragmaIdentifier      contained inline lib mangle msg startaddress GNU_asm
syn keyword dExternIdentifier      contained C C++ D Windows Pascal System Objective-C
syn keyword dAttribute             contained safe trusted system
syn keyword dAttribute             contained property disable nogc
syn keyword dVersionIdentifier     contained DigitalMars GNU LDC SDC D_NET
syn keyword dVersionIdentifier     contained X86 X86_64 ARM PPC PPC64 IA64 MIPS MIPS64 Alpha
syn keyword dVersionIdentifier     contained SPARC SPARC64 S390 S390X HPPA HPPA64 SH SH64
syn keyword dVersionIdentifier     contained linux Posix OSX FreeBSD Windows Win32 Win64
syn keyword dVersionIdentifier     contained OpenBSD BSD Solaris AIX SkyOS SysV3 SysV4 Hurd
syn keyword dVersionIdentifier     contained Cygwin MinGW
syn keyword dVersionIdentifier     contained LittleEndian BigEndian
syn keyword dVersionIdentifier     contained D_InlineAsm_X86 D_InlineAsm_X86_64
syn keyword dVersionIdentifier     contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC
syn keyword dVersionIdentifier     contained unittest assert none all

syn cluster dComment contains=dNestedComment,dBlockComment,dLineComment

" Highlight the sharpbang
syn match dSharpBang "\%^#!.*"     display

" Attributes/annotations
syn match dAnnotation	"@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute

" Version Identifiers
syn match dVersion      "\<version\>"
syn match dVersion      "\<version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier

" Scope Identifiers
syn match dStatement    "\<scope\>"
syn match dStatement    "\<scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier

" Traits Statement
syn match dStatement    "\<__traits\>"
syn match dStatement    "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier

" Pragma Statement
syn match dPragma       "\<pragma\>"
syn match dPragma       "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+6 contains=dPragmaIdentifier

" Necessary to highlight C++ in extern modifiers.
syn match dExternIdentifier "C\(++\)\?" contained

" Extern Identifiers
syn match dExternal     "\<extern\>"
syn match dExtern       "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier

" Make import a region to prevent highlighting keywords
syn region dImport start="\<import\_s" end=";" contains=dExternal,@dComment

" Make module a region to prevent highlighting keywords
syn region dImport start="\<module\_s" end=";" contains=dExternal,@dComment

" dTokens is used by the token string highlighting
syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation,dEnum
syn cluster dTokens add=dParenString,dBrackString,dAngleString,dCurlyString
syn cluster dTokens add=dTokenString,dDelimString,dHereString

" Create a match for parameter lists to identify storage class
syn region paramlist start="(" end=")" contains=@dTokens

" Labels
"
" We contain dScopeDecl so public: private: etc. are not highlighted like labels
syn match dUserLabel    "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum
syn keyword dLabel      case default

syn cluster dTokens add=dUserLabel,dLabel

" Comments
"
syn match	dCommentError	display "\*/"
syn match	dNestedCommentError	display "+/"

syn keyword dTodo                                                                contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
syn match dCommentStar	contained "^\s*\*[^/]"me=e-1
syn match dCommentStar	contained "^\s*\*$"
syn match dCommentPlus	contained "^\s*+[^/]"me=e-1
syn match dCommentPlus	contained "^\s*+$"
if exists("d_comment_strings")
  syn region dBlockCommentString	contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell
  syn region dNestedCommentString	contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell
  syn region dLineCommentString		contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell
endif

syn region dBlockComment	start="/\*"  end="\*/" contains=dBlockCommentString,dTodo,dCommentStartError,@Spell fold
syn region dNestedComment	start="/+"  end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold
syn match  dLineComment	"//.*" contains=dLineCommentString,dTodo,@Spell

hi link dLineCommentString	dBlockCommentString
hi link dBlockCommentString	dString
hi link dNestedCommentString	dString
hi link dCommentStar		dBlockComment
hi link dCommentPlus		dNestedComment

syn cluster dTokens add=dBlockComment,dNestedComment,dLineComment

" /+ +/ style comments and strings that span multiple lines can cause
" problems. To play it safe, set minlines to a large number.
syn sync minlines=200
" Use ccomment for /* */ style comments
syn sync ccomment dBlockComment

" Characters
"
syn match dSpecialCharError contained "[^']"

" Escape sequences (oct,specal char,hex,wchar, character entities \&xxx;)
" These are not contained because they are considered string literals.
syn match dEscSequence	"\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)"
syn match dEscSequence	"\\&[^;& \t]\+;"
syn match dCharacter	"'[^']*'" contains=dEscSequence,dSpecialCharError
syn match dCharacter	"'\\''" contains=dEscSequence
syn match dCharacter	"'[^\\]'"

syn cluster dTokens add=dEscSequence,dCharacter

" Unicode characters
"
syn match dUnicode "\\u\d\{4\}"

" String.
"
syn match	dFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
syn match	dFormat		display "%%" contained

syn region dString	start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dFormat,dEscSequence,@Spell
syn region dRawString	start=+`+ end=+`[cwd]\=+ contains=@Spell
syn region dRawString	start=+r"+ end=+"[cwd]\=+ contains=@Spell
syn region dHexString	start=+x"+ end=+"[cwd]\=+ contains=@Spell
syn region dDelimString	start=+q"\z(.\)+ end=+\z1"+ contains=@Spell
syn region dHereString	start=+q"\z(\I\i*\)\n+ end=+^\z1"+ contains=@Spell


" Nesting delimited string contents
"
syn region dNestParenString start=+(+ end=+)+ contained transparent contains=dNestParenString,@Spell
syn region dNestBrackString start=+\[+ end=+\]+ contained transparent contains=dNestBrackString,@Spell
syn region dNestAngleString start=+<+ end=+>+ contained transparent contains=dNestAngleString,@Spell
syn region dNestCurlyString start=+{+ end=+}+ contained transparent contains=dNestCurlyString,@Spell

" Nesting delimited strings
"
syn region dParenString	matchgroup=dParenString start=+q"(+ end=+)"+ contains=dNestParenString,@Spell
syn region dBrackString	matchgroup=dBrackString start=+q"\[+ end=+\]"+ contains=dNestBrackString,@Spell
syn region dAngleString	matchgroup=dAngleString start=+q"<+ end=+>"+ contains=dNestAngleString,@Spell
syn region dCurlyString	matchgroup=dCurlyString start=+q"{+ end=+}"+ contains=dNestCurlyString,@Spell

hi link dParenString dNestString
hi link dBrackString dNestString
hi link dAngleString dNestString
hi link dCurlyString dNestString

syn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString

" Token strings
"
syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens,dFormat
syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens,dFormat

syn cluster dTokens add=dTokenString

" Numbers
"
syn case ignore

syn match dDec		display "\<\d[0-9_]*\(u\=l\=\|l\=u\=\)\>"

" Hex number
syn match dHex		display "\<0x[0-9a-f_]\+\(u\=l\=\|l\=u\=\)\>"

syn match dOctal	display "\<0[0-7_]\+\(u\=l\=\|l\=u\=\)\>"
" flag an octal number with wrong digits
syn match dOctalError	display "\<0[0-7_]*[89][0-9_]*"

" binary numbers
syn match dBinary	display "\<0b[01_]\+\(u\=l\=\|l\=u\=\)\>"

"floating point without the dot
syn match dFloat	display "\<\d[0-9_]*\(fi\=\|l\=i\)\>"
"floating point number, with dot, optional exponent
syn match dFloat	display "\<\d[0-9_]*\.[0-9_]*\(e[-+]\=[0-9_]\+\)\=[fl]\=i\="
"floating point number, starting with a dot, optional exponent
syn match dFloat	display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>"
"floating point number, without dot, with exponent
"syn match dFloat	display "\<\d\+e[-+]\=\d\+[fl]\=\>"
syn match dFloat	display "\<\d[0-9_]*e[-+]\=[0-9_]\+[fl]\=\>"

"floating point without the dot
syn match dHexFloat	display "\<0x[0-9a-f_]\+\(fi\=\|l\=i\)\>"
"floating point number, with dot, optional exponent
syn match dHexFloat	display "\<0x[0-9a-f_]\+\.[0-9a-f_]*\(p[-+]\=[0-9_]\+\)\=[fl]\=i\="
"floating point number, without dot, with exponent
syn match dHexFloat	display "\<0x[0-9a-f_]\+p[-+]\=[0-9_]\+[fl]\=i\=\>"

syn cluster dTokens add=dDec,dHex,dOctal,dOctalError,dBinary,dFloat,dHexFloat

syn case match

" Pragma (preprocessor) support
" TODO: Highlight following Integer and optional Filespec.
syn region  dPragma start="#\s*\(line\>\)" skip="\\$" end="$"

" Block
"
syn region dBlock	start="{" end="}" transparent fold


" The default highlighting.
"
hi def link dBinary              Number
hi def link dDec                 Number
hi def link dHex                 Number
hi def link dOctal               Number
hi def link dFloat               Float
hi def link dHexFloat            Float
hi def link dDebug               Debug
hi def link dBranch              Conditional
hi def link dConditional         Conditional
hi def link dLabel               Label
hi def link dUserLabel           Label
hi def link dRepeat              Repeat
hi def link dExceptions          Exception
hi def link dAssert              Statement
hi def link dStatement           Statement
hi def link dScopeDecl           dStorageClass
hi def link dStorageClass        StorageClass
hi def link dBoolean             Boolean
hi def link dUnicode             Special
hi def link dTokenStringBrack    String
hi def link dHereString          String
hi def link dNestString          String
hi def link dDelimString         String
hi def link dRawString           String
hi def link dString              String
hi def link dHexString           String
hi def link dCharacter           Character
hi def link dEscSequence         SpecialChar
hi def link dFormat              SpecialChar
hi def link dSpecialCharError    Error
hi def link dOctalError          Error
hi def link dOperator            Operator
hi def link dOpOverload          Identifier
hi def link dConstant            Constant
hi def link dTypedef             Typedef
hi def link dEnum                Structure
hi def link dStructure           Structure
hi def link dTodo                Todo
hi def link dType                Type
hi def link dLineComment         Comment
hi def link dBlockComment        Comment
hi def link dNestedComment       Comment
hi def link dCommentError        Error
hi def link dNestedCommentError  Error
hi def link dCommentStartError   Error
hi def link dExternal            Include
hi def link dAnnotation          PreProc
hi def link dSharpBang           PreProc
hi def link dAttribute           StorageClass
hi def link dIdentifier          Identifier
hi def link dVersion             dStatement
hi def link dVersionIdentifier   Identifier
hi def link dScopeIdentifier     Identifier
hi def link dTraitsIdentifier    Identifier
hi def link dPragma              PreProc
hi def link dPragmaIdentifier    Identifier
hi def link dExtern              dExternal
hi def link dExternIdentifier    Identifier

" Marks contents of the asm statment body as special

syn match dAsmStatement "\<asm\>"
syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode,@dComment,DUserLabel

hi def link dAsmBody dUnicode
hi def link dAsmStatement dStatement
hi def link dAsmOpCode Identifier

syn keyword dAsmOpCode contained	aaa		aad		aam		aas
syn keyword dAsmOpCode contained	add		addpd		addps		addsd
syn keyword dAsmOpCode contained	and		andnpd		andnps		andpd
syn keyword dAsmOpCode contained	arpl		bound		bsf		bsr
syn keyword dAsmOpCode contained	bt		btc		btr		bts
syn keyword dAsmOpCode contained	call		bswap		andps		addss
syn keyword dAsmOpCode contained	cbw		cdq		clc		cld
syn keyword dAsmOpCode contained	cli		clts		cmc		cmova
syn keyword dAsmOpCode contained	cmovb		cmovbe		cmovc		cmove
syn keyword dAsmOpCode contained	cmovge		cmovl		cmovle		cmovna
syn keyword dAsmOpCode contained	cmovnae		cmovg		cmovae		clflush
syn keyword dAsmOpCode contained	cmovnb		cmovnbe		cmovnc		cmovne
syn keyword dAsmOpCode contained	cmovnge		cmovnl		cmovnle		cmovno
syn keyword dAsmOpCode contained	cmovns		cmovnz		cmovo		cmovp
syn keyword dAsmOpCode contained	cmovpo		cmovs		cmovz		cmp
syn keyword dAsmOpCode contained	cmppd		cmovpe		cmovnp		cmovng
syn keyword dAsmOpCode contained	cmpps		cmps		cmpsb		cmpsd
syn keyword dAsmOpCode contained	cmpsw		cmpxch8b	cmpxchg		comisd
syn keyword dAsmOpCode contained	cpuid		cvtdq2pd	cvtdq2ps	cvtpd2dq
syn keyword dAsmOpCode contained	cvtpd2ps	cvtpi2pd	cvtpi2ps	cvtps2dq
syn keyword dAsmOpCode contained	cvtps2pd	cvtpd2pi	comiss		cmpss
syn keyword dAsmOpCode contained	cvtps2pi	cvtsd2si	cvtsd2ss	cvtsi2sd
syn keyword dAsmOpCode contained	cvtss2sd	cvtss2si	cvttpd2dq	cvttpd2pi
syn keyword dAsmOpCode contained	cvttps2pi	cvttsd2si	cvttss2si	cwd
syn keyword dAsmOpCode contained	da		daa		das		db
syn keyword dAsmOpCode contained	dd		cwde		cvttps2dq	cvtsi2ss
syn keyword dAsmOpCode contained	de		dec		df		di
syn keyword dAsmOpCode contained	divpd		divps		divsd		divss
syn keyword dAsmOpCode contained	dq		ds		dt		dw
syn keyword dAsmOpCode contained	enter		f2xm1		fabs		fadd
syn keyword dAsmOpCode contained	faddp		emms		dl		div
syn keyword dAsmOpCode contained	fbld		fbstp		fchs		fclex
syn keyword dAsmOpCode contained	fcmovbe		fcmove		fcmovnb		fcmovnbe
syn keyword dAsmOpCode contained	fcmovnu		fcmovu		fcom		fcomi
syn keyword dAsmOpCode contained	fcomp		fcompp		fcos		fdecstp
syn keyword dAsmOpCode contained	fdisi		fcomip		fcmovne		fcmovb
syn keyword dAsmOpCode contained	fdiv		fdivp		fdivr		fdivrp
syn keyword dAsmOpCode contained	ffree		fiadd		ficom		ficomp
syn keyword dAsmOpCode contained	fidivr		fild		fimul		fincstp
syn keyword dAsmOpCode contained	fist		fistp		fisub		fisubr
syn keyword dAsmOpCode contained	fld		finit		fidiv		feni
syn keyword dAsmOpCode contained	fld1		fldcw		fldenv		fldl2e
syn keyword dAsmOpCode contained	fldlg2		fldln2		fldpi		fldz
syn keyword dAsmOpCode contained	fmulp		fnclex		fndisi		fneni
syn keyword dAsmOpCode contained	fnop		fnsave		fnstcw		fnstenv
syn keyword dAsmOpCode contained	fnstsw		fninit		fmul		fldl2t
syn keyword dAsmOpCode contained	fpatan		fprem		fprem1		fptan
syn keyword dAsmOpCode contained	frstor		fsave		fscale		fsetpm
syn keyword dAsmOpCode contained	fsincos		fsqrt		fst		fstcw
syn keyword dAsmOpCode contained	fstp		fstsw		fsub		fsubp
syn keyword dAsmOpCode contained	fsubr		fstenv		fsin		frndint
syn keyword dAsmOpCode contained	fsubrp		ftst		fucom		fucomi
syn keyword dAsmOpCode contained	fucomp		fucompp		fwait		fxam
syn keyword dAsmOpCode contained	fxrstor		fxsave		fxtract		fyl2x
syn keyword dAsmOpCode contained	hlt		idiv		imul		in
syn keyword dAsmOpCode contained	inc		fyl2xp1		fxch		fucomip
syn keyword dAsmOpCode contained	ins		insb		insd		insw
syn keyword dAsmOpCode contained	into		invd		invlpg		iret
syn keyword dAsmOpCode contained	ja		jae		jb		jbe
syn keyword dAsmOpCode contained	jcxz		je		jecxz		jg
syn keyword dAsmOpCode contained	jge		jc		iretd		int
syn keyword dAsmOpCode contained	jl		jle		jmp		jna
syn keyword dAsmOpCode contained	jnb		jnbe		jnc		jne
syn keyword dAsmOpCode contained	jnge		jnl		jnle		jno
syn keyword dAsmOpCode contained	jns		jnz		jo		jp
syn keyword dAsmOpCode contained	jpe		jnp		jng		jnae
syn keyword dAsmOpCode contained	jpo		js		jz		lahf
syn keyword dAsmOpCode contained	ldmxcsr		lds		lea		leave
syn keyword dAsmOpCode contained	lfence		lfs		lgdt		lgs
syn keyword dAsmOpCode contained	lldt		lmsw		lock		lods
syn keyword dAsmOpCode contained	lodsb		lidt		les		lar
syn keyword dAsmOpCode contained	lodsd		lodsw		loop		loope
syn keyword dAsmOpCode contained	loopnz		loopz		lsl		lss
syn keyword dAsmOpCode contained	maskmovdqu	maskmovq	maxpd		maxps
syn keyword dAsmOpCode contained	maxss		mfence		minpd		minps
syn keyword dAsmOpCode contained	minsd		maxsd		ltr		loopne
syn keyword dAsmOpCode contained	minss		mov		movapd		movaps
syn keyword dAsmOpCode contained	movdq2q		movdqa		movdqu		movhlps
syn keyword dAsmOpCode contained	movhps		movlhps		movlpd		movlps
syn keyword dAsmOpCode contained	movmskps	movntdq		movnti		movntpd
syn keyword dAsmOpCode contained	movntps		movmskpd	movhpd		movd
syn keyword dAsmOpCode contained	movntq		movq		movq2dq		movs
syn keyword dAsmOpCode contained	movsd		movss		movsw		movsx
syn keyword dAsmOpCode contained	movups		movzx		mul		mulpd
syn keyword dAsmOpCode contained	mulsd		mulss		neg		nop
syn keyword dAsmOpCode contained	not		mulps		movupd		movsb
syn keyword dAsmOpCode contained	or		orpd		orps		out
syn keyword dAsmOpCode contained	outsb		outsd		outsw		packssdw
syn keyword dAsmOpCode contained	packuswb	paddb		paddd		paddq
syn keyword dAsmOpCode contained	paddsw		paddusb		paddusw		paddw
syn keyword dAsmOpCode contained	pand		paddsb		packsswb	outs
syn keyword dAsmOpCode contained	pandn		pavgb		pavgw		pcmpeqb
syn keyword dAsmOpCode contained	pcmpeqw		pcmpgtb		pcmpgtd		pcmpgtw
syn keyword dAsmOpCode contained	pinsrw		pmaddwd		pmaxsw		pmaxub
syn keyword dAsmOpCode contained	pminub		pmovmskb	pmulhuw		pmulhw
syn keyword dAsmOpCode contained	pmullw		pminsw		pextrw		pcmpeqd
syn keyword dAsmOpCode contained	pmuludq		pop		popa		popad
syn keyword dAsmOpCode contained	popfd		por		prefetchnta	prefetcht0
syn keyword dAsmOpCode contained	prefetcht2	psadbw		pshufd		pshufhw
syn keyword dAsmOpCode contained	pshufw		pslld		pslldq		psllq
syn keyword dAsmOpCode contained	psllw		pshuflw		prefetcht1	popf
syn keyword dAsmOpCode contained	psrad		psraw		psrld		psrldq
syn keyword dAsmOpCode contained	psrlw		psubb		psubd		psubq
syn keyword dAsmOpCode contained	psubsw		psubusb		psubusw		psubw
syn keyword dAsmOpCode contained	punpckhdq	punpckhqdq	punpckhwd	punpcklbw
syn keyword dAsmOpCode contained	punpckldq	punpckhbw	psubsb		psrlq
syn keyword dAsmOpCode contained	punpcklqdq	punpcklwd	push		pusha
syn keyword dAsmOpCode contained	pushf		pushfd		pxor		rcl
syn keyword dAsmOpCode contained	rcpss		rcr		rdmsr		rdpmc
syn keyword dAsmOpCode contained	rep		repe		repne		repnz
syn keyword dAsmOpCode contained	repz		rdtsc		rcpps		pushad
syn keyword dAsmOpCode contained	ret		retf		rol		ror
syn keyword dAsmOpCode contained	rsqrtps		rsqrtss		sahf		sal
syn keyword dAsmOpCode contained	sbb		scas		scasb		scasd
syn keyword dAsmOpCode contained	seta		setae		setb		setbe
syn keyword dAsmOpCode contained	setc		scasw		sar		rsm
syn keyword dAsmOpCode contained	sete		setg		setge		setl
syn keyword dAsmOpCode contained	setna		setnae		setnb		setnbe
syn keyword dAsmOpCode contained	setne		setng		setnge		setnl
syn keyword dAsmOpCode contained	setno		setnp		setns		setnz
syn keyword dAsmOpCode contained	seto		setnle		setnc		setle
syn keyword dAsmOpCode contained	setp		setpe		setpo		sets
syn keyword dAsmOpCode contained	sfence		sgdt		shl		shld
syn keyword dAsmOpCode contained	shrd		shufpd		shufps		sidt
syn keyword dAsmOpCode contained	smsw		sqrtpd		sqrtps		sqrtsd
syn keyword dAsmOpCode contained	sqrtss		sldt		shr		setz
syn keyword dAsmOpCode contained	stc		std		sti		stmxcsr
syn keyword dAsmOpCode contained	stosb		stosd		stosw		str
syn keyword dAsmOpCode contained	subpd		subps		subsd		subss
syn keyword dAsmOpCode contained	sysexit		test		ucomisd		ucomiss
syn keyword dAsmOpCode contained	ud2		sysenter	sub		stos
syn keyword dAsmOpCode contained	unpckhpd	unpckhps	unpcklpd	unpcklps
syn keyword dAsmOpCode contained	verw		wbinvd		wrmsr		xadd
syn keyword dAsmOpCode contained	xchg		xlatb		xor		xorpd
syn keyword dAsmOpCode contained	xorps		pfrcpit1	pfmin		movddup
syn keyword dAsmOpCode contained	addsubpd	addsubps	fisttp		haddps
syn keyword dAsmOpCode contained	hsubpd		hsubps		lddqu		monitor
syn keyword dAsmOpCode contained	haddpd		xlat		wait		verr
syn keyword dAsmOpCode contained	movshdup	movsldup	mwait		pfcmpeq
syn keyword dAsmOpCode contained	pavgusb		pf2id		pfacc		pfadd
syn keyword dAsmOpCode contained	pfcmpge		pfcmpgt		pfmax		pfmul
syn keyword dAsmOpCode contained	pfnacc		pfpnacc		pfrcp		pfrcpit1
syn keyword dAsmOpCode contained	pfrsqit1	pfrsqrt		pfsub		pfsubr
syn keyword dAsmOpCode contained	pmulhrw 	pswapd		syscall		sysret
syn keyword dAsmOpCode contained	vpmuldq		xgetbv		cmpxchg8b	cmpxchg16b
syn keyword dAsmOpCode contained	pabsb		pabsd		pabsw		palignr
syn keyword dAsmOpCode contained	phaddd		phaddsw		phaddw		phsubd
syn keyword dAsmOpCode contained	phsubsw		phsubw		pmaddubsw	pmulhrsw
syn keyword dAsmOpCode contained	pshufb		psignb		psignd		psignw
syn keyword dAsmOpCode contained	popfq		pushfq		blendpd		blendps
syn keyword dAsmOpCode contained	blendvpd	blendvps	extractps	insertps
syn keyword dAsmOpCode contained	movntdqa	mpsadbw		packusdw	pblendvb
syn keyword dAsmOpCode contained	pblendw		pcmpeqq		pextrb		pextrd
syn keyword dAsmOpCode contained	pextrq		phminposuw	pinsrb		pinsrd
syn keyword dAsmOpCode contained	pinsrq		pmaxsb		pmaxsd		pmaxud
syn keyword dAsmOpCode contained	pmaxuw		pminsb		pminsd		pminud
syn keyword dAsmOpCode contained	pminuw		pmulld		ptest		roundpd
syn keyword dAsmOpCode contained	roundps		roundsd		roundss		pmuldq
syn keyword dAsmOpCode contained	pmovsxbd	pmovsxdq	pmovzxbq	pmovzxdq
syn keyword dAsmOpCode contained	pmovsxbq	pmovsxwd	pmovzxbq	pmovzxwd
syn keyword dAsmOpCode contained	pmovsxbw	pmovsxwq	pmovzxbw	pmovzxwq
syn keyword dAsmOpCode contained	crc32		pcmpestri	pcmpestrm	pcmpgtq
syn keyword dAsmOpCode contained	pcmpistri	pcmpistrm	popcnt		pi2fd
syn keyword dAsmOpCode contained	adc

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZfL��66vim80/syntax/hamster.vimnu�[���" Vim syntax file
" Language:    Hamster Scripting Language
" Maintainer:  David Fishburn <fishburn@ianywhere.com>
" Last Change: Sun Oct 24 2004 7:11:50 PM
" Version:     2.0.6.0

" Description: Hamster Classic
" Hamster is a local server for news and mail. It's a windows-32-bit-program.
" It allows the use of multiple news- and mailserver and combines them to one
" mail- and newsserver for the news/mail-client. It load faster than a normal
" newsreader because many threads can run simultaneous. It contains scorefile
" for news and mail, a build-in script language, the GUI allows translation to
" other languages, it can be used in a network and that's not all features...
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif

syn case ignore

syn keyword hamsterSpecial abs
syn keyword hamsterSpecial artaddheader
syn keyword hamsterSpecial artalloc
syn keyword hamsterSpecial artdelheader
syn keyword hamsterSpecial artfree
syn keyword hamsterSpecial artgetbody
syn keyword hamsterSpecial artgetheader
syn keyword hamsterSpecial artgetheaders
syn keyword hamsterSpecial artgettext
syn keyword hamsterSpecial artheaderexists
syn keyword hamsterSpecial artload
syn keyword hamsterSpecial artsave
syn keyword hamsterSpecial artsetbody
syn keyword hamsterSpecial artsetheader
syn keyword hamsterSpecial artsetheaders
syn keyword hamsterSpecial artsettext
syn keyword hamsterSpecial assert
syn keyword hamsterSpecial atadd
syn keyword hamsterSpecial atclear
syn keyword hamsterSpecial atcount
syn keyword hamsterSpecial ateverymins
syn keyword hamsterSpecial atexecute
syn keyword hamsterSpecial atfrom
syn keyword hamsterSpecial atondays
syn keyword hamsterSpecial atsubfunction
syn keyword hamsterSpecial atuntil
syn keyword hamsterSpecial beep
syn keyword hamsterSpecial break
syn keyword hamsterSpecial chr
syn keyword hamsterSpecial clearxcounter
syn keyword hamsterSpecial clipread
syn keyword hamsterSpecial clipwrite
syn keyword hamsterSpecial const
syn keyword hamsterSpecial constenum
syn keyword hamsterSpecial continue
syn keyword hamsterSpecial copy
syn keyword hamsterSpecial debug
syn keyword hamsterSpecial dec
syn keyword hamsterSpecial decodebase64
syn keyword hamsterSpecial decodeqp
syn keyword hamsterSpecial decodetime
syn keyword hamsterSpecial decxcounter
syn keyword hamsterSpecial delete
syn keyword hamsterSpecial deletehostsentry
syn keyword hamsterSpecial digest
syn keyword hamsterSpecial dirchange
syn keyword hamsterSpecial dircurrent
syn keyword hamsterSpecial direxists
syn keyword hamsterSpecial dirmake
syn keyword hamsterSpecial dirremove
syn keyword hamsterSpecial dirsystem
syn keyword hamsterSpecial dirwindows
syn keyword hamsterSpecial diskfreekb
syn keyword hamsterSpecial dllcall
syn keyword hamsterSpecial dllfree
syn keyword hamsterSpecial dlllasterror
syn keyword hamsterSpecial dllload
syn keyword hamsterSpecial dump
syn keyword hamsterSpecial encodetime
syn keyword hamsterSpecial entercontext
syn keyword hamsterSpecial errcatch
syn keyword hamsterSpecial errline
syn keyword hamsterSpecial errlineno
syn keyword hamsterSpecial errmodule
syn keyword hamsterSpecial errmsg
syn keyword hamsterSpecial errnum
syn keyword hamsterSpecial error
syn keyword hamsterSpecial errsender
syn keyword hamsterSpecial eval
syn keyword hamsterSpecial eventclose
syn keyword hamsterSpecial eventcreate
syn keyword hamsterSpecial eventmultiplewait
syn keyword hamsterSpecial eventpulse
syn keyword hamsterSpecial eventreset
syn keyword hamsterSpecial eventset
syn keyword hamsterSpecial eventwait
syn keyword hamsterSpecial execute
syn keyword hamsterSpecial false
syn keyword hamsterSpecial filecopy
syn keyword hamsterSpecial filedelete
syn keyword hamsterSpecial fileexists
syn keyword hamsterSpecial filemove
syn keyword hamsterSpecial filerename
syn keyword hamsterSpecial filesize
syn keyword hamsterSpecial filetime
syn keyword hamsterSpecial getenv
syn keyword hamsterSpecial getprocessidentifier
syn keyword hamsterSpecial getuptimedays
syn keyword hamsterSpecial getuptimehours
syn keyword hamsterSpecial getuptimemins
syn keyword hamsterSpecial getuptimesecs
syn keyword hamsterSpecial gosub
syn keyword hamsterSpecial goto
syn keyword hamsterSpecial hex
syn keyword hamsterSpecial icase
syn keyword hamsterSpecial iif
syn keyword hamsterSpecial inc
syn keyword hamsterSpecial incxcounter
syn keyword hamsterSpecial inidelete
syn keyword hamsterSpecial inierasesection
syn keyword hamsterSpecial iniread
syn keyword hamsterSpecial iniwrite
syn keyword hamsterSpecial inputbox
syn keyword hamsterSpecial inputpw
syn keyword hamsterSpecial int
syn keyword hamsterSpecial isint
syn keyword hamsterSpecial isstr
syn keyword hamsterSpecial leavecontext
syn keyword hamsterSpecial len
syn keyword hamsterSpecial listadd
syn keyword hamsterSpecial listalloc
syn keyword hamsterSpecial listappend
syn keyword hamsterSpecial listbox
syn keyword hamsterSpecial listclear
syn keyword hamsterSpecial listcount
syn keyword hamsterSpecial listdelete
syn keyword hamsterSpecial listdirs
syn keyword hamsterSpecial listexists
syn keyword hamsterSpecial listfiles
syn keyword hamsterSpecial listfiles
syn keyword hamsterSpecial listfree
syn keyword hamsterSpecial listget
syn keyword hamsterSpecial listgetkey
syn keyword hamsterSpecial listgettag
syn keyword hamsterSpecial listgettext
syn keyword hamsterSpecial listindexof
syn keyword hamsterSpecial listinsert
syn keyword hamsterSpecial listload
syn keyword hamsterSpecial listrasentries
syn keyword hamsterSpecial listsave
syn keyword hamsterSpecial listset
syn keyword hamsterSpecial listsetkey
syn keyword hamsterSpecial listsettag
syn keyword hamsterSpecial listsettext
syn keyword hamsterSpecial listsort
syn keyword hamsterSpecial localhostaddr
syn keyword hamsterSpecial localhostname
syn keyword hamsterSpecial lookuphostaddr
syn keyword hamsterSpecial lookuphostname
syn keyword hamsterSpecial lowercase
syn keyword hamsterSpecial memalloc
syn keyword hamsterSpecial memforget
syn keyword hamsterSpecial memfree
syn keyword hamsterSpecial memgetint
syn keyword hamsterSpecial memgetstr
syn keyword hamsterSpecial memsetint
syn keyword hamsterSpecial memsetstr
syn keyword hamsterSpecial memsize
syn keyword hamsterSpecial memvarptr
syn keyword hamsterSpecial msgbox
syn keyword hamsterSpecial ord
syn keyword hamsterSpecial paramcount
syn keyword hamsterSpecial paramstr
syn keyword hamsterSpecial popupbox
syn keyword hamsterSpecial pos
syn keyword hamsterSpecial print
syn keyword hamsterSpecial quit
syn keyword hamsterSpecial random
syn keyword hamsterSpecial randomize
syn keyword hamsterSpecial rasdial
syn keyword hamsterSpecial rasgetconnection
syn keyword hamsterSpecial rasgetip
syn keyword hamsterSpecial rashangup
syn keyword hamsterSpecial rasisconnected
syn keyword hamsterSpecial re_extract
syn keyword hamsterSpecial re_match
syn keyword hamsterSpecial re_parse
syn keyword hamsterSpecial re_split
syn keyword hamsterSpecial replace
syn keyword hamsterSpecial return
syn keyword hamsterSpecial runscript
syn keyword hamsterSpecial scriptpriority
syn keyword hamsterSpecial set
syn keyword hamsterSpecial sethostsentry_byaddr
syn keyword hamsterSpecial sethostsentry_byname
syn keyword hamsterSpecial setxcounter
syn keyword hamsterSpecial sgn
syn keyword hamsterSpecial shell
syn keyword hamsterSpecial sleep
syn keyword hamsterSpecial stopthread
syn keyword hamsterSpecial str
syn keyword hamsterSpecial syserrormessage
syn keyword hamsterSpecial testmailfilterline
syn keyword hamsterSpecial testnewsfilterline
syn keyword hamsterSpecial ticks
syn keyword hamsterSpecial time
syn keyword hamsterSpecial timegmt
syn keyword hamsterSpecial trace
syn keyword hamsterSpecial trim
syn keyword hamsterSpecial true
syn keyword hamsterSpecial uppercase
syn keyword hamsterSpecial utf7toucs16
syn keyword hamsterSpecial utf8toucs32
syn keyword hamsterSpecial var
syn keyword hamsterSpecial varset
syn keyword hamsterSpecial warning
syn keyword hamsterSpecial xcounter

" common functions
syn keyword hamsterFunction addlog
syn keyword hamsterFunction decodemimeheaderstring
syn keyword hamsterFunction decodetolocalcharset
syn keyword hamsterFunction gettasksactive
syn keyword hamsterFunction gettasksrun
syn keyword hamsterFunction gettaskswait
syn keyword hamsterFunction hamaddgroup
syn keyword hamsterFunction hamaddlog
syn keyword hamsterFunction hamaddpull
syn keyword hamsterFunction hamartcount
syn keyword hamsterFunction hamartdeletemid
syn keyword hamsterFunction hamartdeletemidingroup
syn keyword hamsterFunction hamartdeletenringroup
syn keyword hamsterFunction hamartimport
syn keyword hamsterFunction hamartlocatemid
syn keyword hamsterFunction hamartlocatemidingroup
syn keyword hamsterFunction hamartnomax
syn keyword hamsterFunction hamartnomin
syn keyword hamsterFunction hamarttext
syn keyword hamsterFunction hamarttextexport
syn keyword hamsterFunction hamchangepassword
syn keyword hamsterFunction hamcheckpurge
syn keyword hamsterFunction hamdelgroup
syn keyword hamsterFunction hamdelpull
syn keyword hamsterFunction hamdialogaddpull
syn keyword hamsterFunction hamdialogeditdirs
syn keyword hamsterFunction hamdialogmailkillfilelog
syn keyword hamsterFunction hamdialognewskillfilelog
syn keyword hamsterFunction hamdialogscripts
syn keyword hamsterFunction hamenvelopefrom
syn keyword hamsterFunction hamexepath
syn keyword hamsterFunction hamfetchmail
syn keyword hamsterFunction hamflush
syn keyword hamsterFunction hamgetstatus
syn keyword hamsterFunction hamgroupclose
syn keyword hamsterFunction hamgroupcount
syn keyword hamsterFunction hamgroupindex
syn keyword hamsterFunction hamgroupname
syn keyword hamsterFunction hamgroupnamebyhandle
syn keyword hamsterFunction hamgroupopen
syn keyword hamsterFunction hamgroupspath
syn keyword hamsterFunction hamhscpath
syn keyword hamsterFunction hamhsmpath
syn keyword hamsterFunction hamimapserver
syn keyword hamsterFunction hamisidle
syn keyword hamsterFunction hamlogspath
syn keyword hamsterFunction hammailexchange
syn keyword hamsterFunction hammailpath
syn keyword hamsterFunction hammailsoutpath
syn keyword hamsterFunction hammainfqdn
syn keyword hamsterFunction hammainwindow
syn keyword hamsterFunction hammessage
syn keyword hamsterFunction hammidfqdn
syn keyword hamsterFunction hamnewmail
syn keyword hamsterFunction hamnewserrpath
syn keyword hamsterFunction hamnewsjobsadd
syn keyword hamsterFunction hamnewsjobscheckactive
syn keyword hamsterFunction hamnewsjobsclear
syn keyword hamsterFunction hamnewsjobsdelete
syn keyword hamsterFunction hamnewsjobsfeed
syn keyword hamsterFunction hamnewsjobsgetcounter
syn keyword hamsterFunction hamnewsjobsgetparam
syn keyword hamsterFunction hamnewsjobsgetpriority
syn keyword hamsterFunction hamnewsjobsgetserver
syn keyword hamsterFunction hamnewsjobsgettype
syn keyword hamsterFunction hamnewsjobspost
syn keyword hamsterFunction hamnewsjobspostdef
syn keyword hamsterFunction hamnewsjobspull
syn keyword hamsterFunction hamnewsjobspulldef
syn keyword hamsterFunction hamnewsjobssetpriority
syn keyword hamsterFunction hamnewsjobsstart
syn keyword hamsterFunction hamnewsoutpath
syn keyword hamsterFunction hamnewspost
syn keyword hamsterFunction hamnewspull
syn keyword hamsterFunction hamnntpserver
syn keyword hamsterFunction hampassreload
syn keyword hamsterFunction hampath
syn keyword hamsterFunction hampop3server
syn keyword hamsterFunction hampostmaster
syn keyword hamsterFunction hampurge
syn keyword hamsterFunction hamrasdial
syn keyword hamsterFunction hamrashangup
syn keyword hamsterFunction hamrcpath
syn keyword hamsterFunction hamrebuildgloballists
syn keyword hamsterFunction hamrebuildhistory
syn keyword hamsterFunction hamrecoserver
syn keyword hamsterFunction hamreloadconfig
syn keyword hamsterFunction hamreloadipaccess
syn keyword hamsterFunction hamresetcounters
syn keyword hamsterFunction hamrotatelog
syn keyword hamsterFunction hamscorelist
syn keyword hamsterFunction hamscoretest
syn keyword hamsterFunction hamsendmail
syn keyword hamsterFunction hamsendmailauth
syn keyword hamsterFunction hamserverpath
syn keyword hamsterFunction hamsetlogin
syn keyword hamsterFunction hamshutdown
syn keyword hamsterFunction hamsmtpserver
syn keyword hamsterFunction hamstopalltasks
syn keyword hamsterFunction hamthreadcount
syn keyword hamsterFunction hamtrayicon
syn keyword hamsterFunction hamusenetacc
syn keyword hamsterFunction hamversion
syn keyword hamsterFunction hamwaitidle
syn keyword hamsterFunction raslasterror
syn keyword hamsterFunction rfctimezone
syn keyword hamsterFunction settasklimiter

syn keyword hamsterStatement if
syn keyword hamsterStatement else
syn keyword hamsterStatement elseif
syn keyword hamsterStatement endif
syn keyword hamsterStatement do
syn keyword hamsterStatement loop
syn keyword hamsterStatement while
syn keyword hamsterStatement endwhile
syn keyword hamsterStatement repeat
syn keyword hamsterStatement until
syn keyword hamsterStatement for
syn keyword hamsterStatement endfor
syn keyword hamsterStatement sub
syn keyword hamsterStatement endsub
syn keyword hamsterStatement label


" Strings and characters:
syn region hamsterString	start=+"+    end=+"+ contains=@Spell
syn region hamsterString	start=+'+    end=+'+ contains=@Spell

" Numbers:
syn match hamsterNumber		"-\=\<\d*\.\=[0-9_]\>"

" Comments:
syn region hamsterHashComment	start=/#/ end=/$/ contains=@Spell
syn cluster hamsterComment	contains=hamsterHashComment
syn sync ccomment hamsterHashComment

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link hamsterHashComment	Comment
hi def link hamsterSpecial	Special
hi def link hamsterStatement	Statement
hi def link hamsterString	String
hi def link hamsterFunction	Function


let b:current_syntax = "hamster"

" vim:sw=4
PK�j�Z>i>

vim80/syntax/pic.vimnu�[���" Vim syntax file
" Language:     PIC16F84 Assembler (Microchip's microcontroller)
" Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.com>
" Last Change:  2003 May 11
" URL:		http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim
" Revision:     1.01

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn case match
syn keyword picTodo NOTE TODO XXX contained

syn case ignore

syn match picIdentifier "[a-z_$][a-z0-9_$]*"
syn match picLabel      "^[A-Z_$][A-Z0-9_$]*"
syn match picLabel      "^[A-Z_$][A-Z0-9_$]*:"me=e-1

syn match picASCII      "A\='.'"
syn match picBinary     "B'[0-1]\+'"
syn match picDecimal    "D'\d\+'"
syn match picDecimal    "\d\+"
syn match picHexadecimal "0x\x\+"
syn match picHexadecimal "H'\x\+'"
syn match picHexadecimal "[0-9]\x*h"
syn match picOctal      "O'[0-7]\o*'"


syn match picComment    ";.*" contains=picTodo

syn region picString    start=+"+ end=+"+

syn keyword picRegister		INDF TMR0 PCL STATUS FSR PORTA PORTB
syn keyword picRegister		EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL
syn keyword picRegister		FSR TRISA TRISB EECON1 EECON2 INTCON OPTION


" Register --- bits

" STATUS
syn keyword picRegisterPart     IRP RP1 RP0 TO PD Z DC C

" PORTA
syn keyword picRegisterPart     T0CKI
syn match   picRegisterPart     "RA[0-4]"

" PORTB
syn keyword picRegisterPart     INT
syn match   picRegisterPart     "RB[0-7]"

" INTCON
syn keyword picRegisterPart     GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

" OPTION
syn keyword picRegisterPart     RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

" EECON2
syn keyword picRegisterPart     EEIF WRERR WREN WR RD

" INTCON
syn keyword picRegisterPart     GIE EEIE T0IE INTE RBIE T0IF INTF RBIF


" OpCodes...
syn keyword picOpcode  ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ
syn keyword picOpcode  IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF
syn keyword picOpcode  BCF BSF BTFSC BTFSS
syn keyword picOpcode  ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE
syn keyword picOpcode  RETLW RETURN SLEEP SUBLW XORLW
syn keyword picOpcode  GOTO


" Directives
syn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG
syn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC
syn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND
syn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF
syn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND
syn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET
syn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR
syn keyword picDirective VARIABLE WHILE INCLUDE
syn match picDirective   "#\=UNDEFINE"
syn match picDirective   "#\=INCLUDE"
syn match picDirective   "#\=DEFINE"


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link picTodo		Todo
hi def link picComment		Comment
hi def link picDirective		Statement
hi def link picLabel		Label
hi def link picString		String

"hi def link picOpcode		Keyword
"hi def link picRegister		Structure
"hi def link picRegisterPart	Special

hi def link picASCII		String
hi def link picBinary		Number
hi def link picDecimal		Number
hi def link picHexadecimal		Number
hi def link picOctal		Number

hi def link picIdentifier		Identifier


let b:current_syntax = "pic"

" vim: ts=8
PK�j�Z�w��vim80/syntax/kscript.vimnu�[���" Vim syntax file
" Language:	kscript
" Maintainer:	Thomas Capricelli <orzel@yalbi.com>
" URL:		http://aquila.rezel.enst.fr/thomas/vim/kscript.vim
" CVS:		$Id: kscript.vim,v 1.1 2004/06/13 17:40:02 vimboss Exp $

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword	kscriptPreCondit	import from

syn keyword	kscriptHardCoded	print println connect length arg mid upper lower isEmpty toInt toFloat findApplication
syn keyword	kscriptConditional	if else switch
syn keyword	kscriptRepeat		while for do foreach
syn keyword	kscriptExceptions	emit catch raise try signal
syn keyword	kscriptFunction		class struct enum
syn keyword	kscriptConst		FALSE TRUE false true
syn keyword	kscriptStatement	return delete
syn keyword	kscriptLabel		case default
syn keyword	kscriptStorageClass	const
syn keyword	kscriptType		in out inout var

syn keyword	kscriptTodo		contained TODO FIXME XXX

syn region	kscriptComment		start="/\*" end="\*/" contains=kscriptTodo
syn match	kscriptComment		"//.*" contains=kscriptTodo
syn match	kscriptComment		"#.*$" contains=kscriptTodo

syn region	kscriptString		start=+'+  end=+'+ skip=+\\\\\|\\'+
syn region	kscriptString		start=+"+  end=+"+ skip=+\\\\\|\\"+
syn region	kscriptString		start=+"""+  end=+"""+
syn region	kscriptString		start=+'''+  end=+'''+

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link kscriptConditional		Conditional
hi def link kscriptRepeat			Repeat
hi def link kscriptExceptions		Statement
hi def link kscriptFunction		Function
hi def link kscriptConst			Constant
hi def link kscriptStatement		Statement
hi def link kscriptLabel			Label
hi def link kscriptStorageClass		StorageClass
hi def link kscriptType			Type
hi def link kscriptTodo			Todo
hi def link kscriptComment		Comment
hi def link kscriptString			String
hi def link kscriptPreCondit		PreCondit
hi def link kscriptHardCoded		Statement


let b:current_syntax = "kscript"

" vim: ts=8
PK�j�Z��!!vim80/syntax/cupl.vimnu�[���" Vim syntax file
" Language:	CUPL
" Maintainer:	John Cook <johncook3@gmail.com>
" Last Change:	2011 Dec 27

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" this language is oblivious to case.
syn case ignore

" A bunch of keywords
syn keyword cuplHeader name partno date revision rev designer company nextgroup=cuplHeaderContents
syn keyword cuplHeader assembly assy location device nextgroup=cuplHeaderContents

syn keyword cuplTodo contained TODO XXX FIXME

" cuplHeaderContents uses default highlighting except for numbers
syn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained

" String contstants
syn region cuplString start=+'+ end=+'+
syn region cuplString start=+"+ end=+"+

syn keyword cuplStatement append condition
syn keyword cuplStatement default else
syn keyword cuplStatement field fld format function fuse
syn keyword cuplStatement group if jump loc
syn keyword cuplStatement macro min node out
syn keyword cuplStatement pin pinnode present table
syn keyword cuplStatement sequence sequenced sequencejk sequencers sequencet

syn keyword cuplFunction log2 log8 log16 log

" Valid integer number formats (decimal, binary, octal, hex)
syn match cuplNumber "\<[-+]\=[0-9]\+\>"
syn match cuplNumber "'d'[0-9]\+\>"
syn match cuplNumber "'b'[01x]\+\>"
syn match cuplNumber "'o'[0-7x]\+\>"
syn match cuplNumber "'h'[0-9a-fx]\+\>"

" operators
syn match cuplLogicalOperator "[!#&$]"
syn match cuplArithmeticOperator "[-+*/%]"
syn match cuplArithmeticOperator "\*\*"
syn match cuplAssignmentOperator ":\=="
syn match cuplEqualityOperator ":"
syn match cuplTruthTableOperator "=>"

" Signal extensions
syn match cuplExtension "\.[as][pr]\>"
syn match cuplExtension "\.oe\>"
syn match cuplExtension "\.oemux\>"
syn match cuplExtension "\.[dlsrjk]\>"
syn match cuplExtension "\.ck\>"
syn match cuplExtension "\.dq\>"
syn match cuplExtension "\.ckmux\>"
syn match cuplExtension "\.tec\>"
syn match cuplExtension "\.cnt\>"

syn match cuplRangeOperator "\.\." contained

" match ranges like memadr:[0000..1FFF]
" and highlight both the numbers and the .. operator
syn match cuplNumberRange "\<\x\+\.\.\x\+\>" contains=cuplRangeOperator

" match vectors of type [name3..0] (decimal numbers only)
" but assign them no special highlighting except for the .. operator
syn match cuplBitVector "\<\a\+\d\+\.\.\d\+\>" contains=cuplRangeOperator

" other special characters
syn match cuplSpecialChar "[\[\](){},;]"

" directives
" (define these after cuplOperator so $xxx overrides $)
syn match cuplDirective "\$msg"
syn match cuplDirective "\$macro"
syn match cuplDirective "\$mend"
syn match cuplDirective "\$repeat"
syn match cuplDirective "\$repend"
syn match cuplDirective "\$define"
syn match cuplDirective "\$include"

" multi-line comments
syn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo

syn sync minlines=1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" The default highlighting.
hi def link cuplHeader	cuplStatement
hi def link cuplLogicalOperator	 cuplOperator
hi def link cuplRangeOperator	 cuplOperator
hi def link cuplArithmeticOperator cuplOperator
hi def link cuplAssignmentOperator cuplOperator
hi def link cuplEqualityOperator	 cuplOperator
hi def link cuplTruthTableOperator cuplOperator
hi def link cuplOperator	cuplStatement
hi def link cuplFunction	cuplStatement
hi def link cuplStatement Statement
hi def link cuplNumberRange cuplNumber
hi def link cuplNumber	  cuplString
hi def link cuplString	String
hi def link cuplComment	Comment
hi def link cuplExtension   cuplSpecial
hi def link cuplSpecialChar cuplSpecial
hi def link cuplSpecial	Special
hi def link cuplDirective PreProc
hi def link cuplTodo	Todo


let b:current_syntax = "cupl"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim:ts=8
PK�j�Z�x�z	z	vim80/syntax/a2ps.vimnu�[���" Vim syntax file
" Language:             a2ps(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword a2psPreProc       Include
                              \ nextgroup=a2psKeywordColon

syn keyword a2psMacro         UserOption
                              \ nextgroup=a2psKeywordColon

syn keyword a2psKeyword       LibraryPath AppendLibraryPath PrependLibraryPath
                              \ Options Medium Printer UnknownPrinter
                              \ DefaultPrinter OutputFirstLine
                              \ PageLabelFormat Delegation FileCommand
                              \ nextgroup=a2psKeywordColon

syn match   a2psKeywordColon  contained display ':'

syn keyword a2psKeyword       Variable nextgroup=a2psVariableColon

syn match   a2psVariableColon contained display ':'
                              \ nextgroup=a2psVariable skipwhite

syn match   a2psVariable      contained display '[^ \t:(){}]\+'
                              \ contains=a2psVarPrefix

syn match   a2psVarPrefix     contained display
                              \ '\<\%(del\|pro\|ps\|pl\|toc\|user\|\)\ze\.'

syn match   a2psLineCont      display '\\$'

syn match   a2psSubst         display '$\%(-\=.\=\d\+\)\=\h\d\='
syn match   a2psSubst         display '#[?!]\=\w\d\='
syn match   a2psSubst         display '#{[^}]\+}'

syn region  a2psString        display oneline start=+'+ end=+'+
                              \ contains=a2psSubst

syn region  a2psString        display oneline start=+"+ end=+"+
                              \ contains=a2psSubst

syn keyword a2psTodo          contained TODO FIXME XXX NOTE

syn region  a2psComment       display oneline start='^\s*#' end='$'
                              \ contains=a2psTodo,@Spell

hi def link a2psTodo          Todo
hi def link a2psComment       Comment
hi def link a2psPreProc       PreProc
hi def link a2psMacro         Macro
hi def link a2psKeyword       Keyword
hi def link a2psKeywordColon  Delimiter
hi def link a2psVariableColon Delimiter
hi def link a2psVariable      Identifier
hi def link a2psVarPrefix     Type
hi def link a2psLineCont      Special
hi def link a2psSubst         PreProc
hi def link a2psString        String

let b:current_syntax = "a2ps"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zer�yM*M*vim80/syntax/xmath.vimnu�[���" Vim syntax file
" Language:	xmath (a simulation tool)
" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change:	Aug 31, 2016
" Version:	9
" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XMATH

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" parenthesis sanity checker
syn region xmathZone	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,xmathError,xmathBraceError,xmathCurlyError
syn region xmathZone	matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,xmathError,xmathBraceError,xmathParenError
syn region xmathZone	matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,xmathError,xmathCurlyError,xmathParenError
syn match  xmathError	"[)\]}]"
syn match  xmathBraceError	"[)}]"	contained
syn match  xmathCurlyError	"[)\]]"	contained
syn match  xmathParenError	"[\]}]"	contained
syn match  xmathComma	"[,;:]"
syn match  xmathComma	"\.\.\.$"

" A bunch of useful xmath keywords
syn case ignore
syn keyword xmathFuncCmd	function	endfunction	command	endcommand
syn keyword xmathStatement	abort	beep	debug	default	define
syn keyword xmathStatement	execute	exit	pause	return	undefine
syn keyword xmathConditional	if	else	elseif	endif
syn keyword xmathRepeat	while	for	endwhile	endfor
syn keyword xmathCmd	anigraph	deletedatastore	keep	renamedatastore
syn keyword xmathCmd	autocode	deletestd	linkhyper	renamestd
syn keyword xmathCmd	build	deletesuperblock	linksim	renamesuperblock
syn keyword xmathCmd	comment	deletetransition	listusertype	save
syn keyword xmathCmd	copydatastore	deleteusertype	load	sbadisplay
syn keyword xmathCmd	copystd	detailmodel	lock	set
syn keyword xmathCmd	copysuperblock	display	minmax_display	setsbdefault
syn keyword xmathCmd	createblock	documentit	modifyblock	show
syn keyword xmathCmd	createbubble	editcatalog	modifybubble	showlicense
syn keyword xmathCmd	createconnection	erase	modifystd	showsbdefault
syn keyword xmathCmd	creatertf	expandsuperbubble	modifysuperblock	stop
syn keyword xmathCmd	createstd	for	modifytransition	stopcosim
syn keyword xmathCmd	createsuperblock	go	modifyusertype	syntax
syn keyword xmathCmd	createsuperbubble	goto	new	unalias
syn keyword xmathCmd	createtransition	hardcopy	next	unlock
syn keyword xmathCmd	createusertype	help	polargraph	usertype
syn keyword xmathCmd	delete	hyperbuild	print	whatis
syn keyword xmathCmd	deleteblock	if	printmodel	while
syn keyword xmathCmd	deletebubble	ifilter	quit	who
syn keyword xmathCmd	deleteconnection	ipcwc	remove	xgraph

syn keyword xmathFunc	abcd	eye	irea	querystdoptions
syn keyword xmathFunc	abs	eyepattern	is	querysuperblock
syn keyword xmathFunc	acos	feedback	ISID	querysuperblockopt
syn keyword xmathFunc	acosh	fft	ISID	Models	querytransition
syn keyword xmathFunc	adconversion	fftpdm	kronecker	querytransitionopt
syn keyword xmathFunc	afeedback	filter	length	qz
syn keyword xmathFunc	all	find	limit	rampinvar
syn keyword xmathFunc	ambiguity	firparks	lin	random
syn keyword xmathFunc	amdemod	firremez	lin30	randpdm
syn keyword xmathFunc	analytic	firwind	linearfm	randpert
syn keyword xmathFunc	analyze	fmdemod	linfnorm	randsys
syn keyword xmathFunc	any	forwdiff	lintodb	rank
syn keyword xmathFunc	append	fprintf	list	rayleigh
syn keyword xmathFunc	argn	frac	log	rcepstrum
syn keyword xmathFunc	argv	fracred	log10	rcond
syn keyword xmathFunc	arma	freq	logm	rdintegrate
syn keyword xmathFunc	arma2ss	freqcircle	lognormal	read
syn keyword xmathFunc	armax	freqcont	logspace	real
syn keyword xmathFunc	ascii	frequencyhop	lowpass	rectify
syn keyword xmathFunc	asin	fsesti	lpopt	redschur
syn keyword xmathFunc	asinh	fslqgcomp	lqgcomp	reflect
syn keyword xmathFunc	atan	fsregu	lqgltr	regulator
syn keyword xmathFunc	atan2	fwls	ls	residue
syn keyword xmathFunc	atanh	gabor	ls2unc	riccati
syn keyword xmathFunc	attach_ac100	garb	ls2var	riccati_eig
syn keyword xmathFunc	backdiff	gaussian	lsjoin	riccati_schur
syn keyword xmathFunc	balance	gcexp	lu	ricean
syn keyword xmathFunc	balmoore	gcos	lyapunov	rifd
syn keyword xmathFunc	bandpass	gdfileselection	makecontinuous	rlinfo
syn keyword xmathFunc	bandstop	gdmessage	makematrix	rlocus
syn keyword xmathFunc	bj	gdselection	makepoly	rms
syn keyword xmathFunc	blknorm	genconv	margin	rootlocus
syn keyword xmathFunc	bode	get	markoff	roots
syn keyword xmathFunc	bpm	get_info30	matchedpz	round
syn keyword xmathFunc	bpm2inn	get_inn	max	rref
syn keyword xmathFunc	bpmjoin	gfdm	maxlike	rve_get
syn keyword xmathFunc	bpmsplit	gfsk	mean	rve_info
syn keyword xmathFunc	bst	gfskernel	mergeseg	rve_reset
syn keyword xmathFunc	buttconstr	gfunction	min	rve_update
syn keyword xmathFunc	butterworth	ggauss	minimal	samplehold
syn keyword xmathFunc	cancel	giv	mkpert	schur
syn keyword xmathFunc	canform	giv2var	mkphase	sdf
syn keyword xmathFunc	ccepstrum	givjoin	mma	sds
syn keyword xmathFunc	char	gpsk	mmaget	sdtrsp
syn keyword xmathFunc	chebconstr	gpulse	mmaput	sec
syn keyword xmathFunc	chebyshev	gqam	mod	sech
syn keyword xmathFunc	check	gqpsk	modal	siginterp
syn keyword xmathFunc	cholesky	gramp	modalstate	sign
syn keyword xmathFunc	chop	gsawtooth	modcarrier	sim
syn keyword xmathFunc	circonv	gsigmoid	mreduce	sim30
syn keyword xmathFunc	circorr	gsin	mtxplt	simin
syn keyword xmathFunc	clock	gsinc	mu	simin30
syn keyword xmathFunc	clocus	gsqpsk	mulhank	simout
syn keyword xmathFunc	clsys	gsquarewave	multipath	simout30
syn keyword xmathFunc	coherence	gstep	musynfit	simtransform
syn keyword xmathFunc	colorind	GuiDialogCreate	mxstr2xmstr	sin
syn keyword xmathFunc	combinepf	GuiDialogDestroy	mxstring2xmstring	singriccati
syn keyword xmathFunc	commentof	GuiFlush	names	sinh
syn keyword xmathFunc	compare	GuiGetValue	nichols	sinm
syn keyword xmathFunc	complementaryerf	GuiManage	noisefilt	size
syn keyword xmathFunc	complexenvelope	GuiPlot	none	smargin
syn keyword xmathFunc	complexfreqshift	GuiPlotGet	norm	sns2sys
syn keyword xmathFunc	concatseg	GuiSetValue	numden	sort
syn keyword xmathFunc	condition	GuiShellCreate	nyquist	spectrad
syn keyword xmathFunc	conj	GuiShellDeiconify	obscf	spectrum
syn keyword xmathFunc	conmap	GuiShellDestroy	observable	spline
syn keyword xmathFunc	connect	GuiShellIconify	oe	sprintf
syn keyword xmathFunc	conpdm	GuiShellLower	ones	sqrt
syn keyword xmathFunc	constellation	GuiShellRaise	ophank	sqrtm
syn keyword xmathFunc	consys	GuiShellRealize	optimize	sresidualize
syn keyword xmathFunc	controllable	GuiShellUnrealize	optscale	ss2arma
syn keyword xmathFunc	convolve	GuiTimer	orderfilt	sst
syn keyword xmathFunc	correlate	GuiToolCreate	orderstate	ssv
syn keyword xmathFunc	cos	GuiToolDestroy	orth	stable
syn keyword xmathFunc	cosh	GuiToolExist	oscmd	stair
syn keyword xmathFunc	cosm	GuiUnmanage	oscope	starp
syn keyword xmathFunc	cot	GuiWidgetExist	osscale	step
syn keyword xmathFunc	coth	h2norm	padcrop	stepinvar
syn keyword xmathFunc	covariance	h2syn	partialsum	string
syn keyword xmathFunc	csc	hadamard	pdm	stringex
syn keyword xmathFunc	csch	hankelsv	pdmslice	substr
syn keyword xmathFunc	csum	hessenberg	pem	subsys
syn keyword xmathFunc	ctrcf	highpass	perfplots	sum
syn keyword xmathFunc	ctrlplot	hilbert	period	svd
syn keyword xmathFunc	daug	hilberttransform	pfscale	svplot
syn keyword xmathFunc	dbtolin	hinfcontr	phaseshift	sweep
syn keyword xmathFunc	dct	hinfnorm	pinv	symbolmap
syn keyword xmathFunc	decimate	hinfsyn	plot	sys2sns
syn keyword xmathFunc	defFreqRange	histogram	plot30	sysic
syn keyword xmathFunc	defTimeRange	idfreq	pmdemod	Sysid
syn keyword xmathFunc	delay	idimpulse	poisson	system
syn keyword xmathFunc	delsubstr	idsim	poissonimpulse	tan
syn keyword xmathFunc	det	ifft	poleplace	tanh
syn keyword xmathFunc	detrend	imag	poles	taper
syn keyword xmathFunc	dht	impinvar	polezero	tfid
syn keyword xmathFunc	diagonal	impplot	poltrend	toeplitz
syn keyword xmathFunc	differentiate	impulse	polyfit	trace
syn keyword xmathFunc	directsequence	index	polynomial	tril
syn keyword xmathFunc	discretize	indexlist	polyval	trim
syn keyword xmathFunc	divide	initial	polyvalm	trim30
syn keyword xmathFunc	domain	initmodel	prbs	triu
syn keyword xmathFunc	dst	initx0	product	trsp
syn keyword xmathFunc	eig	inn2bpm	psd	truncate
syn keyword xmathFunc	ellipconstr	inn2pe	put_inn	tustin
syn keyword xmathFunc	elliptic	inn2unc	qpopt	uniform
syn keyword xmathFunc	erf	insertseg	qr	val
syn keyword xmathFunc	error	int	quantize	variance
syn keyword xmathFunc	estimator	integrate	queryblock	videolines
syn keyword xmathFunc	etfe	integratedump	queryblockoptions	wcbode
syn keyword xmathFunc	exist	interp	querybubble	wcgain
syn keyword xmathFunc	exp	interpolate	querybubbleoptionswindow
syn keyword xmathFunc	expm	inv	querycatalog	wtbalance
syn keyword xmathFunc	extractchan	invhilbert	queryconnection	zeros
syn keyword xmathFunc	extractseg	iqmix	querystd

syn case match

" Labels (supports xmath's goto)
syn match   xmathLabel	 "^\s*<[a-zA-Z_][a-zA-Z0-9]*>"

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match   xmathSpecial	contained "\\\d\d\d\|\\."
syn region  xmathString	start=+"+  skip=+\\\\\|\\"+  end=+"+ contains=xmathSpecial,@Spell
syn match   xmathCharacter	"'[^\\]'"
syn match   xmathSpecialChar	"'\\.'"

syn match   xmathNumber	"-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"

" Comments:
" xmath supports #...  (like Unix shells)
"       and      #{ ... }# comment blocks
syn cluster xmathCommentGroup	contains=xmathString,xmathTodo,@Spell
syn keyword xmathTodo contained	COMBAK	DEBUG	FIXME	Todo	TODO	XXX
syn match   xmathComment	"#.*$"		contains=@xmathCommentGroup
syn region  xmathCommentBlock	start="#{" end="}#"	contains=@xmathCommentGroup

" synchronizing
syn sync match xmathSyncComment	grouphere xmathCommentBlock "#{"
syn sync match xmathSyncComment	groupthere NONE "}#"

" Define the default highlighting.
if !exists("skip_xmath_syntax_inits")

  hi def link xmathBraceError	xmathError
  hi def link xmathCmd	xmathStatement
  hi def link xmathCommentBlock	xmathComment
  hi def link xmathCurlyError	xmathError
  hi def link xmathFuncCmd	xmathStatement
  hi def link xmathParenError	xmathError

  " The default methods for highlighting.  Can be overridden later
  hi def link xmathCharacter	Character
  hi def link xmathComma	Delimiter
  hi def link xmathComment	Comment
  hi def link xmathCommentBlock	Comment
  hi def link xmathConditional	Conditional
  hi def link xmathError	Error
  hi def link xmathFunc	Function
  hi def link xmathLabel	PreProc
  hi def link xmathNumber	Number
  hi def link xmathRepeat	Repeat
  hi def link xmathSpecial	Type
  hi def link xmathSpecialChar	SpecialChar
  hi def link xmathStatement	Statement
  hi def link xmathString	String
  hi def link xmathTodo	Todo

endif

let b:current_syntax = "xmath"

" vim: ts=17
PK�j�ZH���'�'vim80/syntax/monk.vimnu�[���" Vim syntax file
" Language: Monk (See-Beyond Technologies)
" Maintainer: Mike Litherland <litherm@ccf.org>
" Last Change: 2012 Feb 03 by Thilo Six

" This syntax file is good enough for my needs, but others
" may desire more features.  Suggestions and bug reports
" are solicited by the author (above).

" Originally based on the Scheme syntax file by:

" Maintainer:	Dirk van Deun <dvandeun@poboxes.com>
" Last Change:	April 30, 1998

" In fact it's almost identical. :)

" The original author's notes:
" This script incorrectly recognizes some junk input as numerals:
" parsing the complete system of Scheme numerals using the pattern
" language is practically impossible: I did a lax approximation.

" Initializing:

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

" Fascist highlighting: everything that doesn't fit the rules is an error...

syn match	monkError	oneline    ![^ \t()";]*!
syn match	monkError	oneline    ")"

" Quoted and backquoted stuff

syn region monkQuoted matchgroup=Delimiter start="['`]" end=![ \t()";]!me=e-1 contains=ALLBUT,monkStruc,monkSyntax,monkFunc

syn region monkQuoted matchgroup=Delimiter start="['`](" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc
syn region monkQuoted matchgroup=Delimiter start="['`]#(" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc

syn region monkStrucRestricted matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc
syn region monkStrucRestricted matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc

syn region monkUnquote matchgroup=Delimiter start="," end=![ \t()";]!me=e-1 contains=ALLBUT,monkStruc,monkSyntax,monkFunc
syn region monkUnquote matchgroup=Delimiter start=",@" end=![ \t()";]!me=e-1 contains=ALLBUT,monkStruc,monkSyntax,monkFunc

syn region monkUnquote matchgroup=Delimiter start=",(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc
syn region monkUnquote matchgroup=Delimiter start=",@(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc

syn region monkUnquote matchgroup=Delimiter start=",#(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc
syn region monkUnquote matchgroup=Delimiter start=",@#(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc

" R5RS Scheme Functions and Syntax:

setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_

syn keyword monkSyntax lambda and or if cond case define let let* letrec
syn keyword monkSyntax begin do delay set! else =>
syn keyword monkSyntax quote quasiquote unquote unquote-splicing
syn keyword monkSyntax define-syntax let-syntax letrec-syntax syntax-rules

syn keyword monkFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car!
syn keyword monkFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr
syn keyword monkFunc cdaar cdadr cddar cdddr caaaar caaadr caadar caaddr
syn keyword monkFunc cadaar cadadr caddar cadddr cdaaar cdaadr cdadar cdaddr
syn keyword monkFunc cddaar cddadr cdddar cddddr null? list? list length
syn keyword monkFunc append reverse list-ref memq memv member assq assv assoc
syn keyword monkFunc symbol? symbol->string string->symbol number? complex?
syn keyword monkFunc real? rational? integer? exact? inexact? = < > <= >=
syn keyword monkFunc zero? positive? negative? odd? even? max min + * - / abs
syn keyword monkFunc quotient remainder modulo gcd lcm numerator denominator
syn keyword monkFunc floor ceiling truncate round rationalize exp log sin cos
syn keyword monkFunc tan asin acos atan sqrt expt make-rectangular make-polar
syn keyword monkFunc real-part imag-part magnitude angle exact->inexact
syn keyword monkFunc inexact->exact number->string string->number char=?
syn keyword monkFunc char-ci=? char<? char-ci<? char>? char-ci>? char<=?
syn keyword monkFunc char-ci<=? char>=? char-ci>=? char-alphabetic? char?
syn keyword monkFunc char-numeric? char-whitespace? char-upper-case?
syn keyword monkFunc char-lower-case?
syn keyword monkFunc char->integer integer->char char-upcase char-downcase
syn keyword monkFunc string? make-string string string-length string-ref
syn keyword monkFunc string-set! string=? string-ci=? string<? string-ci<?
syn keyword monkFunc string>? string-ci>? string<=? string-ci<=? string>=?
syn keyword monkFunc string-ci>=? substring string-append vector? make-vector
syn keyword monkFunc vector vector-length vector-ref vector-set! procedure?
syn keyword monkFunc apply map for-each call-with-current-continuation
syn keyword monkFunc call-with-input-file call-with-output-file input-port?
syn keyword monkFunc output-port? current-input-port current-output-port
syn keyword monkFunc open-input-file open-output-file close-input-port
syn keyword monkFunc close-output-port eof-object? read read-char peek-char
syn keyword monkFunc write display newline write-char call/cc
syn keyword monkFunc list-tail string->list list->string string-copy
syn keyword monkFunc string-fill! vector->list list->vector vector-fill!
syn keyword monkFunc force with-input-from-file with-output-to-file
syn keyword monkFunc char-ready? load transcript-on transcript-off eval
syn keyword monkFunc dynamic-wind port? values call-with-values
syn keyword monkFunc monk-report-environment null-environment
syn keyword monkFunc interaction-environment

" Keywords specific to STC's implementation

syn keyword monkFunc $event-clear $event-parse $event->string $make-event-map
syn keyword monkFunc $resolve-event-definition change-pattern copy copy-strip
syn keyword monkFunc count-data-children count-map-children count-rep data-map
syn keyword monkFunc duplicate duplicate-strip file-check file-lookup get
syn keyword monkFunc insert list-lookup node-has-data? not-verify path?
syn keyword monkFunc path-defined-as-repeating? path-nodeclear path-nodedepth
syn keyword monkFunc path-nodename path-nodeparentname path->string path-valid?
syn keyword monkFunc regex string->path timestamp uniqueid verify

" Keywords from the Monk function library (from e*Gate 4.1 programmers ref)
syn keyword monkFunc allcap? capitalize char-punctuation? char-substitute
syn keyword monkFunc char-to-char conv count-used-children degc->degf
syn keyword monkFunc diff-two-dates display-error empty-string? fail_id
syn keyword monkFunc fail_id_if fail_translation fail_translation_if
syn keyword monkFunc find-get-after find-get-before get-timestamp julian-date?
syn keyword monkFunc julian->standard leap-year? map-string not-empty-string?
syn keyword monkFunc standard-date? standard->julian string-begins-with?
syn keyword monkFunc string-contains? string-ends-with? string-search-from-left
syn keyword monkFunc string-search-from-right string->ssn strip-punct
syn keyword monkFunc strip-string substring=? symbol-table-get symbol-table-put
syn keyword monkFunc trim-string-left trim-string-right valid-decimal?
syn keyword monkFunc valid-integer? verify-type

" Writing out the complete description of Scheme numerals without
" using variables is a day's work for a trained secretary...
" This is a useful lax approximation:

syn match	monkNumber	oneline    "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*"
syn match	monkError	oneline    ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t()";][^ \t()";]*!

syn match	monkOther	oneline    ![+-][ \t()";]!me=e-1
syn match	monkOther	oneline    ![+-]$!
" ... so that a single + or -, inside a quoted context, would not be
" interpreted as a number (outside such contexts, it's a monkFunc)

syn match	monkDelimiter	oneline    !\.[ \t()";]!me=e-1
syn match	monkDelimiter	oneline    !\.$!
" ... and a single dot is not a number but a delimiter

" Simple literals:

syn match	monkBoolean	oneline    "#[tf]"
syn match	monkError	oneline    !#[tf][^ \t()";]\+!

syn match	monkChar	oneline    "#\\"
syn match	monkChar	oneline    "#\\."
syn match	monkError	oneline    !#\\.[^ \t()";]\+!
syn match	monkChar	oneline    "#\\space"
syn match	monkError	oneline    !#\\space[^ \t()";]\+!
syn match	monkChar	oneline    "#\\newline"
syn match	monkError	oneline    !#\\newline[^ \t()";]\+!

" This keeps all other stuff unhighlighted, except *stuff* and <stuff>:

syn match	monkOther	oneline    ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*,
syn match	monkError	oneline    ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*,

syn match	monkOther	oneline    "\.\.\."
syn match	monkError	oneline    !\.\.\.[^ \t()";]\+!
" ... a special identifier

syn match	monkConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t()";],me=e-1
syn match	monkConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$,
syn match	monkError	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*,

syn match	monkConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t()";],me=e-1
syn match	monkConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
syn match	monkError	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*,

" Monk input and output structures
syn match	monkSyntax	oneline    "\(\~input\|\[I\]->\)[^ \t]*"
syn match	monkFunc	oneline    "\(\~output\|\[O\]->\)[^ \t]*"

" Non-quoted lists, and strings:

syn region monkStruc matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALL
syn region monkStruc matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALL

syn region	monkString	start=+"+  skip=+\\[\\"]+ end=+"+

" Comments:

syn match	monkComment	";.*$"

" Synchronization and the wrapping up...

syn sync match matchPlace grouphere NONE "^[^ \t]"
" ... i.e. synchronize on a line that starts at the left margin

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link monkSyntax		Statement
hi def link monkFunc		Function

hi def link monkString		String
hi def link monkChar		Character
hi def link monkNumber		Number
hi def link monkBoolean		Boolean

hi def link monkDelimiter	Delimiter
hi def link monkConstant	Constant

hi def link monkComment		Comment
hi def link monkError		Error


let b:current_syntax = "monk"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z1άCCvim80/syntax/smarty.vimnu�[���" Vim syntax file
" Language:	Smarty Templates
" Maintainer:	Manfred Stienstra manfred.stienstra@dwerg.net
" Last Change:  Mon Nov  4 11:42:23 CET 2002
" Filenames:    *.tpl
" URL:		http://www.dwerg.net/projects/vim/smarty.vim

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if !exists("main_syntax")
  " quit when a syntax file was already loaded
  if exists("b:current_syntax")
    finish
  endif
  let main_syntax = 'smarty'
endif

syn case ignore

runtime! syntax/html.vim
"syn cluster htmlPreproc add=smartyUnZone

syn match smartyBlock contained "[\[\]]"

syn keyword smartyTagName capture config_load include include_php
syn keyword smartyTagName insert if elseif else ldelim rdelim literal
syn keyword smartyTagName php section sectionelse foreach foreachelse
syn keyword smartyTagName strip assign counter cycle debug eval fetch
syn keyword smartyTagName html_options html_select_date html_select_time
syn keyword smartyTagName math popup_init popup html_checkboxes html_image
syn keyword smartyTagName html_radios html_table mailto textformat

syn keyword smartyModifier cat capitalize count_characters count_paragraphs
syn keyword smartyModifier count_sentences count_words date_format default
syn keyword smartyModifier escape indent lower nl2br regex_replace replace
syn keyword smartyModifier spacify string_format strip strip_tags truncate
syn keyword smartyModifier upper wordwrap

syn keyword smartyInFunc neq eq

syn keyword smartyProperty contained "file="
syn keyword smartyProperty contained "loop="
syn keyword smartyProperty contained "name="
syn keyword smartyProperty contained "include="
syn keyword smartyProperty contained "skip="
syn keyword smartyProperty contained "section="

syn keyword smartyConstant "\$smarty"

syn keyword smartyDot .

syn region smartyZone matchgroup=Delimiter start="{" end="}" contains=smartyProperty, smartyString, smartyBlock, smartyTagName, smartyConstant, smartyInFunc, smartyModifier

syn region  htmlString   contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,smartyZone
syn region  htmlString   contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,smartyZone
  syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc,smartyZone



hi def link smartyTagName Identifier
hi def link smartyProperty Constant
" if you want the text inside the braces to be colored, then
" remove the comment in from of the next statement
"hi def link smartyZone Include
hi def link smartyInFunc Function
hi def link smartyBlock Constant
hi def link smartyDot SpecialChar
hi def link smartyModifier Function

let b:current_syntax = "smarty"

if main_syntax == 'smarty'
  unlet main_syntax
endif

" vim: ts=8
PK�j�ZS62v~~vim80/syntax/mix.vimnu�[���" Vim syntax file
" Language:	MIX (Donald Knuth's assembly language used in TAOCP)
" Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
" Filenames:	*.mixal *.mix
" Last Change:  2017-11-26 15:21:36 +0800

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn case ignore

" Special processing of ALF directive: implementations vary whether quotation
" marks are needed
syn match mixAlfParam		#\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixString nextgroup=mixEndComment contained

" Region for parameters
syn match mixParam		#[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained

" Comment at the line end
syn match mixEndComment		".*" contains=mixRegister contained

" Identifier; must go before literals
syn match mixIdentifier		"[a-z0-9_]\+" contained

" Literals
syn match mixSpecial		"[-+*/:=]" contained
syn match mixNumber		"[0-9]\+\>" contained
syn region mixString		start=+"+ skip=+\\"+ end=+"+ contained

" Labels
syn match mixLabel		"^[a-z0-9_]\{,10\}\s\+" nextgroup=mixAlfSpecial,mixOpcode,mixDirective
syn match mixLabel		"[0-9][BF]" contained

" Comments
syn match mixComment		"^\*.*" contains=mixRegister

" Directives
syn keyword mixDirective 	ORIG EQU CON END nextgroup=mixParam contained skipwhite
syn keyword mixDirective 	ALF nextgroup=mixAlfParam contained

" Opcodes
syn keyword mixOpcode	NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
syn keyword mixOpcode	FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
syn keyword mixOpcode	SLB SRB JAE JAO JXE JXO nextgroup=mixParam contained skipwhite

syn match mixOpcode	"LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode	"ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode	"EN[TN][AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode	"INC[AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode	"DEC[AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode	"CMP[AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode	"J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite

" Switch back to being case sensitive
syn case match

" Registers (only to be used in comments now)
syn keyword mixRegister	rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained

" The default highlighting
hi def link mixRegister		Special
hi def link mixLabel		Define
hi def link mixComment		Comment
hi def link mixEndComment	Comment
hi def link mixDirective	Keyword
hi def link mixOpcode		Keyword

hi def link mixSpecial		Special
hi def link mixNumber		Number
hi def link mixString		String
hi def link mixAlfParam		String
hi def link mixIdentifier	Identifier

let b:current_syntax = "mix"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: ts=8
PK�j�Z�5�5�vim80/syntax/postscr.vimnu�[���" Vim syntax file
" Language:     PostScript - all Levels, selectable
" Maintainer:   Mike Williams <mrw@eandem.co.uk>
" Filenames:    *.ps,*.eps
" Last Change:  31st October 2007
" URL:          http://www.eandem.co.uk/mrw/vim
"
" Options Flags:
" postscr_level                 - language level to use for highligting (1, 2, or 3)
" postscr_display               - include display PS operators
" postscr_ghostscript           - include GS extensions
" postscr_fonts                 - highlight standard font names (a lot for PS 3)
" postscr_encodings             - highlight encoding names (there are a lot)
" postscr_andornot_binary       - highlight and, or, and not as binary operators (not logical)
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" PostScript is case sensitive
syn case match

" Keyword characters - all 7-bit ASCII bar PS delimiters and ws
setlocal iskeyword=33-127,^(,^),^<,^>,^[,^],^{,^},^/,^%

" Yer trusty old TODO highlghter!
syn keyword postscrTodo contained  TODO

" Comment
syn match postscrComment        "%.*$" contains=postscrTodo,@Spell
" DSC comment start line (NB: defines DSC level, not PS level!)
syn match postscrDSCComment    	"^%!PS-Adobe-\d\+\.\d\+\s*.*$"
" DSC comment line (no check on possible comments - another language!)
syn match postscrDSCComment    	"^%%\u\+.*$" contains=@postscrString,@postscrNumber,@Spell
" DSC continuation line (no check that previous line is DSC comment)
syn match  postscrDSCComment    "^%%+ *.*$" contains=@postscrString,@postscrNumber,@Spell

" Names
syn match postscrName           "\k\+"

" Identifiers
syn match postscrIdentifierError "/\{1,2}[[:space:]\[\]{}]"me=e-1
syn match postscrIdentifier     "/\{1,2}\k\+" contains=postscrConstant,postscrBoolean,postscrCustConstant

" Numbers
syn case ignore
" In file hex data - usually complete lines
syn match postscrHex            "^[[:xdigit:]][[:xdigit:][:space:]]*$"
"syn match postscrHex            "\<\x\{2,}\>"
" Integers
syn match postscrInteger        "\<[+-]\=\d\+\>"
" Radix
syn match postscrRadix          "\d\+#\x\+\>"
" Reals - upper and lower case e is allowed
syn match postscrFloat          "[+-]\=\d\+\.\>"
syn match postscrFloat          "[+-]\=\d\+\.\d*\(e[+-]\=\d\+\)\=\>"
syn match postscrFloat          "[+-]\=\.\d\+\(e[+-]\=\d\+\)\=\>"
syn match postscrFloat          "[+-]\=\d\+e[+-]\=\d\+\>"
syn cluster postscrNumber       contains=postscrInteger,postscrRadix,postscrFloat
syn case match

" Escaped characters
syn match postscrSpecialChar    contained "\\[nrtbf\\()]"
syn match postscrSpecialCharError contained "\\[^nrtbf\\()]"he=e-1
" Escaped octal characters
syn match postscrSpecialChar    contained "\\\o\{1,3}"

" Strings
" ASCII strings
syn region postscrASCIIString   start=+(+ end=+)+ skip=+([^)]*)+ contains=postscrSpecialChar,postscrSpecialCharError,@Spell
syn match postscrASCIIStringError ")"
" Hex strings
syn match postscrHexCharError   contained "[^<>[:xdigit:][:space:]]"
syn region postscrHexString     start=+<\($\|[^<]\)+ end=+>+ contains=postscrHexCharError
syn match postscrHexString      "<>"
" ASCII85 strings
syn match postscrASCII85CharError contained "[^<>\~!-uz[:space:]]"
syn region postscrASCII85String start=+<\~+ end=+\~>+ contains=postscrASCII85CharError
syn cluster postscrString       contains=postscrASCIIString,postscrHexString,postscrASCII85String


" Set default highlighting to level 2 - most common at the moment
if !exists("postscr_level")
  let postscr_level = 2
endif


" PS level 1 operators - common to all levels (well ...)

" Stack operators
syn keyword postscrOperator     pop exch dup copy index roll clear count mark cleartomark counttomark

" Math operators
syn keyword postscrMathOperator add div idiv mod mul sub abs neg ceiling floor round truncate sqrt atan cos
syn keyword postscrMathOperator sin exp ln log rand srand rrand

" Array operators
syn match postscrOperator       "[\[\]{}]"
syn keyword postscrOperator     array length get put getinterval putinterval astore aload copy
syn keyword postscrRepeat       forall

" Dictionary operators
syn keyword postscrOperator     dict maxlength begin end def load store known where currentdict
syn keyword postscrOperator     countdictstack dictstack cleardictstack internaldict
syn keyword postscrConstant     $error systemdict userdict statusdict errordict

" String operators
syn keyword postscrOperator     string anchorsearch search token

" Logic operators
syn keyword postscrLogicalOperator eq ne ge gt le lt and not or
if exists("postscr_andornot_binaryop")
  syn keyword postscrBinaryOperator and or not
else
  syn keyword postscrLogicalOperator and not or
endif
syn keyword postscrBinaryOperator xor bitshift
syn keyword postscrBoolean      true false

" PS Type names
syn keyword postscrConstant     arraytype booleantype conditiontype dicttype filetype fonttype gstatetype
syn keyword postscrConstant     integertype locktype marktype nametype nulltype operatortype
syn keyword postscrConstant     packedarraytype realtype savetype stringtype

" Control operators
syn keyword postscrConditional  if ifelse
syn keyword postscrRepeat       for repeat loop
syn keyword postscrOperator     exec exit stop stopped countexecstack execstack quit
syn keyword postscrProcedure    start

" Object operators
syn keyword postscrOperator     type cvlit cvx xcheck executeonly noaccess readonly rcheck wcheck cvi cvn cvr
syn keyword postscrOperator     cvrs cvs

" File operators
syn keyword postscrOperator     file closefile read write readhexstring writehexstring readstring writestring
syn keyword postscrOperator     bytesavailable flush flushfile resetfile status run currentfile print
syn keyword postscrOperator     stack pstack readline deletefile setfileposition fileposition renamefile
syn keyword postscrRepeat       filenameforall
syn keyword postscrProcedure    = ==

" VM operators
syn keyword postscrOperator     save restore

" Misc operators
syn keyword postscrOperator     bind null usertime executive echo realtime
syn keyword postscrConstant     product revision serialnumber version
syn keyword postscrProcedure    prompt

" GState operators
syn keyword postscrOperator     gsave grestore grestoreall initgraphics setlinewidth setlinecap currentgray
syn keyword postscrOperator     currentlinejoin setmiterlimit currentmiterlimit setdash currentdash setgray
syn keyword postscrOperator     sethsbcolor currenthsbcolor setrgbcolor currentrgbcolor currentlinewidth
syn keyword postscrOperator     currentlinecap setlinejoin setcmykcolor currentcmykcolor

" Device gstate operators
syn keyword postscrOperator     setscreen currentscreen settransfer currenttransfer setflat currentflat
syn keyword postscrOperator     currentblackgeneration setblackgeneration setundercolorremoval
syn keyword postscrOperator     setcolorscreen currentcolorscreen setcolortransfer currentcolortransfer
syn keyword postscrOperator     currentundercolorremoval

" Matrix operators
syn keyword postscrOperator     matrix initmatrix identmatrix defaultmatrix currentmatrix setmatrix translate
syn keyword postscrOperator     concat concatmatrix transform dtransform itransform idtransform invertmatrix
syn keyword postscrOperator     scale rotate

" Path operators
syn keyword postscrOperator     newpath currentpoint moveto rmoveto lineto rlineto arc arcn arcto curveto
syn keyword postscrOperator     closepath flattenpath reversepath strokepath charpath clippath pathbbox
syn keyword postscrOperator     initclip clip eoclip rcurveto
syn keyword postscrRepeat       pathforall

" Painting operators
syn keyword postscrOperator     erasepage fill eofill stroke image imagemask colorimage

" Device operators
syn keyword postscrOperator     showpage copypage nulldevice

" Character operators
syn keyword postscrProcedure    findfont
syn keyword postscrConstant     FontDirectory ISOLatin1Encoding StandardEncoding
syn keyword postscrOperator     definefont scalefont makefont setfont currentfont show ashow
syn keyword postscrOperator     stringwidth kshow setcachedevice
syn keyword postscrOperator     setcharwidth widthshow awidthshow findencoding cshow rootfont setcachedevice2

" Interpreter operators
syn keyword postscrOperator     vmstatus cachestatus setcachelimit

" PS constants
syn keyword postscrConstant     contained Gray Red Green Blue All None DeviceGray DeviceRGB

" PS Filters
syn keyword postscrConstant     contained ASCIIHexDecode ASCIIHexEncode ASCII85Decode ASCII85Encode LZWDecode
syn keyword postscrConstant     contained RunLengthDecode RunLengthEncode SubFileDecode NullEncode
syn keyword postscrConstant     contained GIFDecode PNGDecode LZWEncode

" PS JPEG filter dictionary entries
syn keyword postscrConstant     contained DCTEncode DCTDecode Colors HSamples VSamples QuantTables QFactor
syn keyword postscrConstant     contained HuffTables ColorTransform

" PS CCITT filter dictionary entries
syn keyword postscrConstant     contained CCITTFaxEncode CCITTFaxDecode Uncompressed K EndOfLine
syn keyword postscrConstant     contained Columns Rows EndOfBlock Blacks1 DamagedRowsBeforeError
syn keyword postscrConstant     contained EncodedByteAlign

" PS Form dictionary entries
syn keyword postscrConstant     contained FormType XUID BBox Matrix PaintProc Implementation

" PS Errors
syn keyword postscrProcedure    handleerror
syn keyword postscrConstant     contained  configurationerror dictfull dictstackunderflow dictstackoverflow
syn keyword postscrConstant     contained  execstackoverflow interrupt invalidaccess
syn keyword postscrConstant     contained  invalidcontext invalidexit invalidfileaccess invalidfont
syn keyword postscrConstant     contained  invalidid invalidrestore ioerror limitcheck nocurrentpoint
syn keyword postscrConstant     contained  rangecheck stackoverflow stackunderflow syntaxerror timeout
syn keyword postscrConstant     contained  typecheck undefined undefinedfilename undefinedresource
syn keyword postscrConstant     contained  undefinedresult unmatchedmark unregistered VMerror

if exists("postscr_fonts")
" Font names
  syn keyword postscrConstant   contained Symbol Times-Roman Times-Italic Times-Bold Times-BoldItalic
  syn keyword postscrConstant   contained Helvetica Helvetica-Oblique Helvetica-Bold Helvetica-BoldOblique
  syn keyword postscrConstant   contained Courier Courier-Oblique Courier-Bold Courier-BoldOblique
endif


if exists("postscr_display")
" Display PS only operators
  syn keyword postscrOperator   currentcontext fork join detach lock monitor condition wait notify yield
  syn keyword postscrOperator   viewclip eoviewclip rectviewclip initviewclip viewclippath deviceinfo
  syn keyword postscrOperator   sethalftonephase currenthalftonephase wtranslation defineusername
endif

" PS Character encoding names
if exists("postscr_encodings")
" Common encoding names
  syn keyword postscrConstant   contained .notdef

" Standard and ISO encoding names
  syn keyword postscrConstant   contained space exclam quotedbl numbersign dollar percent ampersand quoteright
  syn keyword postscrConstant   contained parenleft parenright asterisk plus comma hyphen period slash zero
  syn keyword postscrConstant   contained one two three four five six seven eight nine colon semicolon less
  syn keyword postscrConstant   contained equal greater question at
  syn keyword postscrConstant   contained bracketleft backslash bracketright asciicircum underscore quoteleft
  syn keyword postscrConstant   contained braceleft bar braceright asciitilde
  syn keyword postscrConstant   contained exclamdown cent sterling fraction yen florin section currency
  syn keyword postscrConstant   contained quotesingle quotedblleft guillemotleft guilsinglleft guilsinglright
  syn keyword postscrConstant   contained fi fl endash dagger daggerdbl periodcentered paragraph bullet
  syn keyword postscrConstant   contained quotesinglbase quotedblbase quotedblright guillemotright ellipsis
  syn keyword postscrConstant   contained perthousand questiondown grave acute circumflex tilde macron breve
  syn keyword postscrConstant   contained dotaccent dieresis ring cedilla hungarumlaut ogonek caron emdash
  syn keyword postscrConstant   contained AE ordfeminine Lslash Oslash OE ordmasculine ae dotlessi lslash
  syn keyword postscrConstant   contained oslash oe germandbls
" The following are valid names, but are used as short procedure names in generated PS!
" a b c d e f g h i j k l m n o p q r s t u v w x y z
" A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

" Symbol encoding names
  syn keyword postscrConstant   contained universal existential suchthat asteriskmath minus
  syn keyword postscrConstant   contained congruent Alpha Beta Chi Delta Epsilon Phi Gamma Eta Iota theta1
  syn keyword postscrConstant   contained Kappa Lambda Mu Nu Omicron Pi Theta Rho Sigma Tau Upsilon sigma1
  syn keyword postscrConstant   contained Omega Xi Psi Zeta therefore perpendicular
  syn keyword postscrConstant   contained radicalex alpha beta chi delta epsilon phi gamma eta iota phi1
  syn keyword postscrConstant   contained kappa lambda mu nu omicron pi theta rho sigma tau upsilon omega1
  syn keyword postscrConstant   contained Upsilon1 minute lessequal infinity club diamond heart spade
  syn keyword postscrConstant   contained arrowboth arrowleft arrowup arrowright arrowdown degree plusminus
  syn keyword postscrConstant   contained second greaterequal multiply proportional partialdiff divide
  syn keyword postscrConstant   contained notequal equivalence approxequal arrowvertex arrowhorizex
  syn keyword postscrConstant   contained aleph Ifraktur Rfraktur weierstrass circlemultiply circleplus
  syn keyword postscrConstant   contained emptyset intersection union propersuperset reflexsuperset notsubset
  syn keyword postscrConstant   contained propersubset reflexsubset element notelement angle gradient
  syn keyword postscrConstant   contained registerserif copyrightserif trademarkserif radical dotmath
  syn keyword postscrConstant   contained logicalnot logicaland logicalor arrowdblboth arrowdblleft arrowdblup
  syn keyword postscrConstant   contained arrowdblright arrowdbldown omega xi psi zeta similar carriagereturn
  syn keyword postscrConstant   contained lozenge angleleft registersans copyrightsans trademarksans summation
  syn keyword postscrConstant   contained parenlefttp parenleftex parenleftbt bracketlefttp bracketleftex
  syn keyword postscrConstant   contained bracketleftbt bracelefttp braceleftmid braceleftbt braceex euro
  syn keyword postscrConstant   contained angleright integral integraltp integralex integralbt parenrighttp
  syn keyword postscrConstant   contained parenrightex parenrightbt bracketrighttp bracketrightex
  syn keyword postscrConstant   contained bracketrightbt bracerighttp bracerightmid bracerightbt

" ISO Latin1 encoding names
  syn keyword postscrConstant   contained brokenbar copyright registered twosuperior threesuperior
  syn keyword postscrConstant   contained onesuperior onequarter onehalf threequarters
  syn keyword postscrConstant   contained Agrave Aacute Acircumflex Atilde Adieresis Aring Ccedilla Egrave
  syn keyword postscrConstant   contained Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis
  syn keyword postscrConstant   contained Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis Ugrave Uacute
  syn keyword postscrConstant   contained Ucircumflex Udieresis Yacute Thorn
  syn keyword postscrConstant   contained agrave aacute acircumflex atilde adieresis aring ccedilla egrave
  syn keyword postscrConstant   contained eacute ecircumflex edieresis igrave iacute icircumflex idieresis
  syn keyword postscrConstant   contained eth ntilde ograve oacute ocircumflex otilde odieresis ugrave uacute
  syn keyword postscrConstant   contained ucircumflex udieresis yacute thorn ydieresis
  syn keyword postscrConstant   contained zcaron exclamsmall Hungarumlautsmall dollaroldstyle dollarsuperior
  syn keyword postscrConstant   contained ampersandsmall Acutesmall parenleftsuperior parenrightsuperior
  syn keyword postscrConstant   contained twodotenleader onedotenleader zerooldstyle oneoldstyle twooldstyle
  syn keyword postscrConstant   contained threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle
  syn keyword postscrConstant   contained eightoldstyle nineoldstyle commasuperior
  syn keyword postscrConstant   contained threequartersemdash periodsuperior questionsmall asuperior bsuperior
  syn keyword postscrConstant   contained centsuperior dsuperior esuperior isuperior lsuperior msuperior
  syn keyword postscrConstant   contained nsuperior osuperior rsuperior ssuperior tsuperior ff ffi ffl
  syn keyword postscrConstant   contained parenleftinferior parenrightinferior Circumflexsmall hyphensuperior
  syn keyword postscrConstant   contained Gravesmall Asmall Bsmall Csmall Dsmall Esmall Fsmall Gsmall Hsmall
  syn keyword postscrConstant   contained Ismall Jsmall Ksmall Lsmall Msmall Nsmall Osmall Psmall Qsmall
  syn keyword postscrConstant   contained Rsmall Ssmall Tsmall Usmall Vsmall Wsmall Xsmall Ysmall Zsmall
  syn keyword postscrConstant   contained colonmonetary onefitted rupiah Tildesmall exclamdownsmall
  syn keyword postscrConstant   contained centoldstyle Lslashsmall Scaronsmall Zcaronsmall Dieresissmall
  syn keyword postscrConstant   contained Brevesmall Caronsmall Dotaccentsmall Macronsmall figuredash
  syn keyword postscrConstant   contained hypheninferior Ogoneksmall Ringsmall Cedillasmall questiondownsmall
  syn keyword postscrConstant   contained oneeighth threeeighths fiveeighths seveneighths onethird twothirds
  syn keyword postscrConstant   contained zerosuperior foursuperior fivesuperior sixsuperior sevensuperior
  syn keyword postscrConstant   contained eightsuperior ninesuperior zeroinferior oneinferior twoinferior
  syn keyword postscrConstant   contained threeinferior fourinferior fiveinferior sixinferior seveninferior
  syn keyword postscrConstant   contained eightinferior nineinferior centinferior dollarinferior periodinferior
  syn keyword postscrConstant   contained commainferior Agravesmall Aacutesmall Acircumflexsmall
  syn keyword postscrConstant   contained Atildesmall Adieresissmall Aringsmall AEsmall Ccedillasmall
  syn keyword postscrConstant   contained Egravesmall Eacutesmall Ecircumflexsmall Edieresissmall Igravesmall
  syn keyword postscrConstant   contained Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall
  syn keyword postscrConstant   contained Ogravesmall Oacutesmall Ocircumflexsmall Otildesmall Odieresissmall
  syn keyword postscrConstant   contained OEsmall Oslashsmall Ugravesmall Uacutesmall Ucircumflexsmall
  syn keyword postscrConstant   contained Udieresissmall Yacutesmall Thornsmall Ydieresissmall Black Bold Book
  syn keyword postscrConstant   contained Light Medium Regular Roman Semibold

" Sundry standard and expert encoding names
  syn keyword postscrConstant   contained trademark Scaron Ydieresis Zcaron scaron softhyphen overscore
  syn keyword postscrConstant   contained graybox Sacute Tcaron Zacute sacute tcaron zacute Aogonek Scedilla
  syn keyword postscrConstant   contained Zdotaccent aogonek scedilla Lcaron lcaron zdotaccent Racute Abreve
  syn keyword postscrConstant   contained Lacute Cacute Ccaron Eogonek Ecaron Dcaron Dcroat Nacute Ncaron
  syn keyword postscrConstant   contained Ohungarumlaut Rcaron Uring Uhungarumlaut Tcommaaccent racute abreve
  syn keyword postscrConstant   contained lacute cacute ccaron eogonek ecaron dcaron dcroat nacute ncaron
  syn keyword postscrConstant   contained ohungarumlaut rcaron uring uhungarumlaut tcommaaccent Gbreve
  syn keyword postscrConstant   contained Idotaccent gbreve blank apple
endif


" By default level 3 includes all level 2 operators
if postscr_level == 2 || postscr_level == 3
" Dictionary operators
  syn match postscrL2Operator     "\(<<\|>>\)"
  syn keyword postscrL2Operator   undef
  syn keyword postscrConstant   globaldict shareddict

" Device operators
  syn keyword postscrL2Operator   setpagedevice currentpagedevice

" Path operators
  syn keyword postscrL2Operator   rectclip setbbox uappend ucache upath ustrokepath arct

" Painting operators
  syn keyword postscrL2Operator   rectfill rectstroke ufill ueofill ustroke

" Array operators
  syn keyword postscrL2Operator   currentpacking setpacking packedarray

" Misc operators
  syn keyword postscrL2Operator   languagelevel

" Insideness operators
  syn keyword postscrL2Operator   infill ineofill instroke inufill inueofill inustroke

" GState operators
  syn keyword postscrL2Operator   gstate setgstate currentgstate setcolor
  syn keyword postscrL2Operator   setcolorspace currentcolorspace setstrokeadjust currentstrokeadjust
  syn keyword postscrL2Operator   currentcolor

" Device gstate operators
  syn keyword postscrL2Operator   sethalftone currenthalftone setoverprint currentoverprint
  syn keyword postscrL2Operator   setcolorrendering currentcolorrendering

" Character operators
  syn keyword postscrL2Constant   GlobalFontDirectory SharedFontDirectory
  syn keyword postscrL2Operator   glyphshow selectfont
  syn keyword postscrL2Operator   addglyph undefinefont xshow xyshow yshow

" Pattern operators
  syn keyword postscrL2Operator   makepattern setpattern execform

" Resource operators
  syn keyword postscrL2Operator   defineresource undefineresource findresource resourcestatus
  syn keyword postscrL2Repeat     resourceforall

" File operators
  syn keyword postscrL2Operator   filter printobject writeobject setobjectformat currentobjectformat

" VM operators
  syn keyword postscrL2Operator   currentshared setshared defineuserobject execuserobject undefineuserobject
  syn keyword postscrL2Operator   gcheck scheck startjob currentglobal setglobal
  syn keyword postscrConstant   UserObjects

" Interpreter operators
  syn keyword postscrL2Operator   setucacheparams setvmthreshold ucachestatus setsystemparams
  syn keyword postscrL2Operator   setuserparams currentuserparams setcacheparams currentcacheparams
  syn keyword postscrL2Operator   currentdevparams setdevparams vmreclaim currentsystemparams

" PS2 constants
  syn keyword postscrConstant   contained DeviceCMYK Pattern Indexed Separation Cyan Magenta Yellow Black
  syn keyword postscrConstant   contained CIEBasedA CIEBasedABC CIEBasedDEF CIEBasedDEFG

" PS2 $error dictionary entries
  syn keyword postscrConstant   contained newerror errorname command errorinfo ostack estack dstack
  syn keyword postscrConstant   contained recordstacks binary

" PS2 Category dictionary
  syn keyword postscrConstant   contained DefineResource UndefineResource FindResource ResourceStatus
  syn keyword postscrConstant   contained ResourceForAll Category InstanceType ResourceFileName

" PS2 Category names
  syn keyword postscrConstant   contained Font Encoding Form Pattern ProcSet ColorSpace Halftone
  syn keyword postscrConstant   contained ColorRendering Filter ColorSpaceFamily Emulator IODevice
  syn keyword postscrConstant   contained ColorRenderingType FMapType FontType FormType HalftoneType
  syn keyword postscrConstant   contained ImageType PatternType Category Generic

" PS2 pagedevice dictionary entries
  syn keyword postscrConstant   contained PageSize MediaColor MediaWeight MediaType InputAttributes ManualFeed
  syn keyword postscrConstant   contained OutputType OutputAttributes NumCopies Collate Duplex Tumble
  syn keyword postscrConstant   contained Separations HWResolution Margins NegativePrint MirrorPrint
  syn keyword postscrConstant   contained CutMedia AdvanceMedia AdvanceDistance ImagingBBox
  syn keyword postscrConstant   contained Policies Install BeginPage EndPage PolicyNotFound PolicyReport
  syn keyword postscrConstant   contained ManualSize OutputFaceUp Jog
  syn keyword postscrConstant   contained Bind BindDetails Booklet BookletDetails CollateDetails
  syn keyword postscrConstant   contained DeviceRenderingInfo ExitJamRecovery Fold FoldDetails Laminate
  syn keyword postscrConstant   contained ManualFeedTimeout Orientation OutputPage
  syn keyword postscrConstant   contained PostRenderingEnhance PostRenderingEnhanceDetails
  syn keyword postscrConstant   contained PreRenderingEnhance PreRenderingEnhanceDetails
  syn keyword postscrConstant   contained Signature SlipSheet Staple StapleDetails Trim
  syn keyword postscrConstant   contained ProofSet REValue PrintQuality ValuesPerColorComponent AntiAlias

" PS2 PDL resource entries
  syn keyword postscrConstant   contained Selector LanguageFamily LanguageVersion

" PS2 halftone dictionary entries
  syn keyword postscrConstant   contained HalftoneType HalftoneName
  syn keyword postscrConstant   contained AccurateScreens ActualAngle Xsquare Ysquare AccurateFrequency
  syn keyword postscrConstant   contained Frequency SpotFunction Angle Width Height Thresholds
  syn keyword postscrConstant   contained RedFrequency RedSpotFunction RedAngle RedWidth RedHeight
  syn keyword postscrConstant   contained GreenFrequency GreenSpotFunction GreenAngle GreenWidth GreenHeight
  syn keyword postscrConstant   contained BlueFrequency BlueSpotFunction BlueAngle BlueWidth BlueHeight
  syn keyword postscrConstant   contained GrayFrequency GrayAngle GraySpotFunction GrayWidth GrayHeight
  syn keyword postscrConstant   contained GrayThresholds BlueThresholds GreenThresholds RedThresholds
  syn keyword postscrConstant   contained TransferFunction

" PS2 CSR dictionaries
  syn keyword postscrConstant   contained RangeA DecodeA MatrixA RangeABC DecodeABC MatrixABC BlackPoint
  syn keyword postscrConstant   contained RangeLMN DecodeLMN MatrixLMN WhitePoint RangeDEF DecodeDEF RangeHIJ
  syn keyword postscrConstant   contained RangeDEFG DecodeDEFG RangeHIJK Table

" PS2 CRD dictionaries
  syn keyword postscrConstant   contained ColorRenderingType EncodeLMB EncodeABC RangePQR MatrixPQR
  syn keyword postscrConstant   contained AbsoluteColorimetric RelativeColorimetric Saturation Perceptual
  syn keyword postscrConstant   contained TransformPQR RenderTable

" PS2 Pattern dictionary
  syn keyword postscrConstant   contained PatternType PaintType TilingType XStep YStep

" PS2 Image dictionary
  syn keyword postscrConstant   contained ImageType ImageMatrix MultipleDataSources DataSource
  syn keyword postscrConstant   contained BitsPerComponent Decode Interpolate

" PS2 Font dictionaries
  syn keyword postscrConstant   contained FontType FontMatrix FontName FontInfo LanguageLevel WMode Encoding
  syn keyword postscrConstant   contained UniqueID StrokeWidth Metrics Metrics2 CDevProc CharStrings Private
  syn keyword postscrConstant   contained FullName Notice version ItalicAngle isFixedPitch UnderlinePosition
  syn keyword postscrConstant   contained FMapType Encoding FDepVector PrefEnc EscChar ShiftOut ShiftIn
  syn keyword postscrConstant   contained WeightVector Blend $Blend CIDFontType sfnts CIDSystemInfo CodeMap
  syn keyword postscrConstant   contained CMap CIDFontName CIDSystemInfo UIDBase CIDDevProc CIDCount
  syn keyword postscrConstant   contained CIDMapOffset FDArray FDBytes GDBytes GlyphData GlyphDictionary
  syn keyword postscrConstant   contained SDBytes SubrMapOffset SubrCount BuildGlyph CIDMap FID MIDVector
  syn keyword postscrConstant   contained Ordering Registry Supplement CMapName CMapVersion UIDOffset
  syn keyword postscrConstant   contained SubsVector UnderlineThickness FamilyName FontBBox CurMID
  syn keyword postscrConstant   contained Weight

" PS2 User paramters
  syn keyword postscrConstant   contained MaxFontItem MinFontCompress MaxUPathItem MaxFormItem MaxPatternItem
  syn keyword postscrConstant   contained MaxScreenItem MaxOpStack MaxDictStack MaxExecStack MaxLocalVM
  syn keyword postscrConstant   contained VMReclaim VMThreshold

" PS2 System paramters
  syn keyword postscrConstant   contained SystemParamsPassword StartJobPassword BuildTime ByteOrder RealFormat
  syn keyword postscrConstant   contained MaxFontCache CurFontCache MaxOutlineCache CurOutlineCache
  syn keyword postscrConstant   contained MaxUPathCache CurUPathCache MaxFormCache CurFormCache
  syn keyword postscrConstant   contained MaxPatternCache CurPatternCache MaxScreenStorage CurScreenStorage
  syn keyword postscrConstant   contained MaxDisplayList CurDisplayList

" PS2 LZW Filters
  syn keyword postscrConstant   contained Predictor

" Paper Size operators
  syn keyword postscrL2Operator   letter lettersmall legal ledger 11x17 a4 a3 a4small b5 note

" Paper Tray operators
  syn keyword postscrL2Operator   lettertray legaltray ledgertray a3tray a4tray b5tray 11x17tray

" SCC compatibility operators
  syn keyword postscrL2Operator   sccbatch sccinteractive setsccbatch setsccinteractive

" Page duplexing operators
  syn keyword postscrL2Operator   duplexmode firstside newsheet setduplexmode settumble tumble

" Device compatability operators
  syn keyword postscrL2Operator   devdismount devformat devmount devstatus
  syn keyword postscrL2Repeat     devforall

" Imagesetter compatability operators
  syn keyword postscrL2Operator   accuratescreens checkscreen pagemargin pageparams setaccuratescreens setpage
  syn keyword postscrL2Operator   setpagemargin setpageparams

" Misc compatability operators
  syn keyword postscrL2Operator   appletalktype buildtime byteorder checkpassword defaulttimeouts diskonline
  syn keyword postscrL2Operator   diskstatus manualfeed manualfeedtimeout margins mirrorprint pagecount
  syn keyword postscrL2Operator   pagestackorder printername processcolors sethardwareiomode setjobtimeout
  syn keyword postscrL2Operator   setpagestockorder setprintername setresolution doprinterrors dostartpage
  syn keyword postscrL2Operator   hardwareiomode initializedisk jobname jobtimeout ramsize realformat resolution
  syn keyword postscrL2Operator   setdefaulttimeouts setdoprinterrors setdostartpage setdosysstart
  syn keyword postscrL2Operator   setuserdiskpercent softwareiomode userdiskpercent waittimeout
  syn keyword postscrL2Operator   setsoftwareiomode dosysstart emulate setmargins setmirrorprint

endif " PS2 highlighting

if postscr_level == 3
" Shading operators
  syn keyword postscrL3Operator setsmoothness currentsmoothness shfill

" Clip operators
  syn keyword postscrL3Operator clipsave cliprestore

" Pagedevive operators
  syn keyword postscrL3Operator setpage setpageparams

" Device gstate operators
  syn keyword postscrL3Operator findcolorrendering

" Font operators
  syn keyword postscrL3Operator composefont

" PS LL3 Output device resource entries
  syn keyword postscrConstant   contained DeviceN TrappingDetailsType

" PS LL3 pagdevice dictionary entries
  syn keyword postscrConstant   contained DeferredMediaSelection ImageShift InsertSheet LeadingEdge MaxSeparations
  syn keyword postscrConstant   contained MediaClass MediaPosition OutputDevice PageDeviceName PageOffset ProcessColorModel
  syn keyword postscrConstant   contained RollFedMedia SeparationColorNames SeparationOrder Trapping TrappingDetails
  syn keyword postscrConstant   contained TraySwitch UseCIEColor
  syn keyword postscrConstant   contained ColorantDetails ColorantName ColorantType NeutralDensity TrappingOrder
  syn keyword postscrConstant   contained ColorantSetName

" PS LL3 trapping dictionary entries
  syn keyword postscrConstant   contained BlackColorLimit BlackDensityLimit BlackWidth ColorantZoneDetails
  syn keyword postscrConstant   contained SlidingTrapLimit StepLimit TrapColorScaling TrapSetName TrapWidth
  syn keyword postscrConstant   contained ImageResolution ImageToObjectTrapping ImageTrapPlacement
  syn keyword postscrConstant   contained StepLimit TrapColorScaling Enabled ImageInternalTrapping

" PS LL3 filters and entries
  syn keyword postscrConstant   contained ReusableStreamDecode CloseSource CloseTarget UnitSize LowBitFirst
  syn keyword postscrConstant   contained FlateEncode FlateDecode DecodeParams Intent AsyncRead

" PS LL3 halftone dictionary entries
  syn keyword postscrConstant   contained Height2 Width2

" PS LL3 function dictionary entries
  syn keyword postscrConstant   contained FunctionType Domain Range Order BitsPerSample Encode Size C0 C1 N
  syn keyword postscrConstant   contained Functions Bounds

" PS LL3 image dictionary entries
  syn keyword postscrConstant   contained InterleaveType MaskDict DataDict MaskColor

" PS LL3 Pattern and shading dictionary entries
  syn keyword postscrConstant   contained Shading ShadingType Background ColorSpace Coords Extend Function
  syn keyword postscrConstant   contained VerticesPerRow BitsPerCoordinate BitsPerFlag

" PS LL3 image dictionary entries
  syn keyword postscrConstant   contained XOrigin YOrigin UnpaintedPath PixelCopy

" PS LL3 colorrendering procedures
  syn keyword postscrProcedure  GetHalftoneName GetPageDeviceName GetSubstituteCRD

" PS LL3 CIDInit procedures
  syn keyword postscrProcedure  beginbfchar beginbfrange begincidchar begincidrange begincmap begincodespacerange
  syn keyword postscrProcedure  beginnotdefchar beginnotdefrange beginrearrangedfont beginusematrix
  syn keyword postscrProcedure  endbfchar endbfrange endcidchar endcidrange endcmap endcodespacerange
  syn keyword postscrProcedure  endnotdefchar endnotdefrange endrearrangedfont endusematrix
  syn keyword postscrProcedure  StartData usefont usecmp

" PS LL3 Trapping procedures
  syn keyword postscrProcedure  settrapparams currenttrapparams settrapzone

" PS LL3 BitmapFontInit procedures
  syn keyword postscrProcedure  removeall removeglyphs

" PS LL3 Font names
  if exists("postscr_fonts")
    syn keyword postscrConstant contained AlbertusMT AlbertusMT-Italic AlbertusMT-Light Apple-Chancery Apple-ChanceryCE
    syn keyword postscrConstant contained AntiqueOlive-Roman AntiqueOlive-Italic AntiqueOlive-Bold AntiqueOlive-Compact
    syn keyword postscrConstant contained AntiqueOliveCE-Roman AntiqueOliveCE-Italic AntiqueOliveCE-Bold AntiqueOliveCE-Compact
    syn keyword postscrConstant contained ArialMT Arial-ItalicMT Arial-LightMT Arial-BoldMT Arial-BoldItalicMT
    syn keyword postscrConstant contained ArialCE ArialCE-Italic ArialCE-Light ArialCE-Bold ArialCE-BoldItalic
    syn keyword postscrConstant contained AvantGarde-Book AvantGarde-BookOblique AvantGarde-Demi AvantGarde-DemiOblique
    syn keyword postscrConstant contained AvantGardeCE-Book AvantGardeCE-BookOblique AvantGardeCE-Demi AvantGardeCE-DemiOblique
    syn keyword postscrConstant contained Bodoni Bodoni-Italic Bodoni-Bold Bodoni-BoldItalic Bodoni-Poster Bodoni-PosterCompressed
    syn keyword postscrConstant contained BodoniCE BodoniCE-Italic BodoniCE-Bold BodoniCE-BoldItalic BodoniCE-Poster BodoniCE-PosterCompressed
    syn keyword postscrConstant contained Bookman-Light Bookman-LightItalic Bookman-Demi Bookman-DemiItalic
    syn keyword postscrConstant contained BookmanCE-Light BookmanCE-LightItalic BookmanCE-Demi BookmanCE-DemiItalic
    syn keyword postscrConstant contained Carta Chicago ChicagoCE Clarendon Clarendon-Light Clarendon-Bold
    syn keyword postscrConstant contained ClarendonCE ClarendonCE-Light ClarendonCE-Bold CooperBlack CooperBlack-Italic
    syn keyword postscrConstant contained Copperplate-ThirtyTwoBC CopperPlate-ThirtyThreeBC Coronet-Regular CoronetCE-Regular
    syn keyword postscrConstant contained CourierCE CourierCE-Oblique CourierCE-Bold CourierCE-BoldOblique
    syn keyword postscrConstant contained Eurostile Eurostile-Bold Eurostile-ExtendedTwo Eurostile-BoldExtendedTwo
    syn keyword postscrConstant contained Eurostile EurostileCE-Bold EurostileCE-ExtendedTwo EurostileCE-BoldExtendedTwo
    syn keyword postscrConstant contained Geneva GenevaCE GillSans GillSans-Italic GillSans-Bold GillSans-BoldItalic GillSans-BoldCondensed
    syn keyword postscrConstant contained GillSans-Light GillSans-LightItalic GillSans-ExtraBold
    syn keyword postscrConstant contained GillSansCE-Roman GillSansCE-Italic GillSansCE-Bold GillSansCE-BoldItalic GillSansCE-BoldCondensed
    syn keyword postscrConstant contained GillSansCE-Light GillSansCE-LightItalic GillSansCE-ExtraBold
    syn keyword postscrConstant contained Goudy Goudy-Italic Goudy-Bold Goudy-BoldItalic Goudy-ExtraBould
    syn keyword postscrConstant contained HelveticaCE HelveticaCE-Oblique HelveticaCE-Bold HelveticaCE-BoldOblique
    syn keyword postscrConstant contained Helvetica-Condensed Helvetica-Condensed-Oblique Helvetica-Condensed-Bold Helvetica-Condensed-BoldObl
    syn keyword postscrConstant contained HelveticaCE-Condensed HelveticaCE-Condensed-Oblique HelveticaCE-Condensed-Bold
    syn keyword postscrConstant contained HelveticaCE-Condensed-BoldObl Helvetica-Narrow Helvetica-Narrow-Oblique Helvetica-Narrow-Bold
    syn keyword postscrConstant contained Helvetica-Narrow-BoldOblique HelveticaCE-Narrow HelveticaCE-Narrow-Oblique HelveticaCE-Narrow-Bold
    syn keyword postscrConstant contained HelveticaCE-Narrow-BoldOblique HoeflerText-Regular HoeflerText-Italic HoeflerText-Black
    syn keyword postscrConstant contained HoeflerText-BlackItalic HoeflerText-Ornaments HoeflerTextCE-Regular HoeflerTextCE-Italic
    syn keyword postscrConstant contained HoeflerTextCE-Black HoeflerTextCE-BlackItalic
    syn keyword postscrConstant contained JoannaMT JoannaMT-Italic JoannaMT-Bold JoannaMT-BoldItalic
    syn keyword postscrConstant contained JoannaMTCE JoannaMTCE-Italic JoannaMTCE-Bold JoannaMTCE-BoldItalic
    syn keyword postscrConstant contained LetterGothic LetterGothic-Slanted LetterGothic-Bold LetterGothic-BoldSlanted
    syn keyword postscrConstant contained LetterGothicCE LetterGothicCE-Slanted LetterGothicCE-Bold LetterGothicCE-BoldSlanted
    syn keyword postscrConstant contained LubalinGraph-Book LubalinGraph-BookOblique LubalinGraph-Demi LubalinGraph-DemiOblique
    syn keyword postscrConstant contained LubalinGraphCE-Book LubalinGraphCE-BookOblique LubalinGraphCE-Demi LubalinGraphCE-DemiOblique
    syn keyword postscrConstant contained Marigold Monaco MonacoCE MonaLisa-Recut Oxford Symbol Tekton
    syn keyword postscrConstant contained NewCennturySchlbk-Roman NewCenturySchlbk-Italic NewCenturySchlbk-Bold NewCenturySchlbk-BoldItalic
    syn keyword postscrConstant contained NewCenturySchlbkCE-Roman NewCenturySchlbkCE-Italic NewCenturySchlbkCE-Bold
    syn keyword postscrConstant contained NewCenturySchlbkCE-BoldItalic NewYork NewYorkCE
    syn keyword postscrConstant contained Optima Optima-Italic Optima-Bold Optima-BoldItalic
    syn keyword postscrConstant contained OptimaCE OptimaCE-Italic OptimaCE-Bold OptimaCE-BoldItalic
    syn keyword postscrConstant contained Palatino-Roman Palatino-Italic Palatino-Bold Palatino-BoldItalic
    syn keyword postscrConstant contained PalatinoCE-Roman PalatinoCE-Italic PalatinoCE-Bold PalatinoCE-BoldItalic
    syn keyword postscrConstant contained StempelGaramond-Roman StempelGaramond-Italic StempelGaramond-Bold StempelGaramond-BoldItalic
    syn keyword postscrConstant contained StempelGaramondCE-Roman StempelGaramondCE-Italic StempelGaramondCE-Bold StempelGaramondCE-BoldItalic
    syn keyword postscrConstant contained TimesCE-Roman TimesCE-Italic TimesCE-Bold TimesCE-BoldItalic
    syn keyword postscrConstant contained TimesNewRomanPSMT TimesNewRomanPS-ItalicMT TimesNewRomanPS-BoldMT TimesNewRomanPS-BoldItalicMT
    syn keyword postscrConstant contained TimesNewRomanCE TimesNewRomanCE-Italic TimesNewRomanCE-Bold TimesNewRomanCE-BoldItalic
    syn keyword postscrConstant contained Univers Univers-Oblique Univers-Bold Univers-BoldOblique
    syn keyword postscrConstant contained UniversCE-Medium UniversCE-Oblique UniversCE-Bold UniversCE-BoldOblique
    syn keyword postscrConstant contained Univers-Light Univers-LightOblique UniversCE-Light UniversCE-LightOblique
    syn keyword postscrConstant contained Univers-Condensed Univers-CondensedOblique Univers-CondensedBold Univers-CondensedBoldOblique
    syn keyword postscrConstant contained UniversCE-Condensed UniversCE-CondensedOblique UniversCE-CondensedBold UniversCE-CondensedBoldOblique
    syn keyword postscrConstant contained Univers-Extended Univers-ExtendedObl Univers-BoldExt Univers-BoldExtObl
    syn keyword postscrConstant contained UniversCE-Extended UniversCE-ExtendedObl UniversCE-BoldExt UniversCE-BoldExtObl
    syn keyword postscrConstant contained Wingdings-Regular ZapfChancery-MediumItalic ZapfChanceryCE-MediumItalic ZapfDingBats
  endif " Font names

endif " PS LL3 highlighting


if exists("postscr_ghostscript")
  " GS gstate operators
  syn keyword postscrGSOperator   .setaccuratecurves .currentaccuratecurves .setclipoutside
  syn keyword postscrGSOperator   .setdashadapt .currentdashadapt .setdefaultmatrix .setdotlength
  syn keyword postscrGSOperator   .currentdotlength .setfilladjust2 .currentfilladjust2
  syn keyword postscrGSOperator   .currentclipoutside .setcurvejoin .currentcurvejoin
  syn keyword postscrGSOperator   .setblendmode .currentblendmode .setopacityalpha .currentopacityalpha .setshapealpha .currentshapealpha
  syn keyword postscrGSOperator   .setlimitclamp .currentlimitclamp .setoverprintmode .currentoverprintmode

  " GS path operators
  syn keyword postscrGSOperator   .dashpath .rectappend

  " GS painting operators
  syn keyword postscrGSOperator   .setrasterop .currentrasterop .setsourcetransparent
  syn keyword postscrGSOperator   .settexturetransparent .currenttexturetransparent
  syn keyword postscrGSOperator   .currentsourcetransparent

  " GS character operators
  syn keyword postscrGSOperator   .charboxpath .type1execchar %Type1BuildChar %Type1BuildGlyph

  " GS mathematical operators
  syn keyword postscrGSMathOperator arccos arcsin

  " GS dictionary operators
  syn keyword postscrGSOperator   .dicttomark .forceput .forceundef .knownget .setmaxlength

  " GS byte and string operators
  syn keyword postscrGSOperator   .type1encrypt .type1decrypt
  syn keyword postscrGSOperator   .bytestring .namestring .stringmatch

  " GS relational operators (seem like math ones to me!)
  syn keyword postscrGSMathOperator max min

  " GS file operators
  syn keyword postscrGSOperator   findlibfile unread writeppmfile
  syn keyword postscrGSOperator   .filename .fileposition .peekstring .unread

  " GS vm operators
  syn keyword postscrGSOperator   .forgetsave

  " GS device operators
  syn keyword postscrGSOperator   copydevice .getdevice makeimagedevice makewordimagedevice copyscanlines
  syn keyword postscrGSOperator   setdevice currentdevice getdeviceprops putdeviceprops flushpage
  syn keyword postscrGSOperator   finddevice findprotodevice .getbitsrect

  " GS misc operators
  syn keyword postscrGSOperator   getenv .makeoperator .setdebug .oserrno .oserror .execn

  " GS rendering stack operators
  syn keyword postscrGSOperator   .begintransparencygroup .discardtransparencygroup .endtransparencygroup
  syn keyword postscrGSOperator   .begintransparencymask .discardtransparencymask .endtransparencymask .inittransparencymask
  syn keyword postscrGSOperator   .settextknockout .currenttextknockout

  " GS filters
  syn keyword postscrConstant   contained BCPEncode BCPDecode eexecEncode eexecDecode PCXDecode
  syn keyword postscrConstant   contained PixelDifferenceEncode PixelDifferenceDecode
  syn keyword postscrConstant   contained PNGPredictorDecode TBCPEncode TBCPDecode zlibEncode
  syn keyword postscrConstant   contained zlibDecode PNGPredictorEncode PFBDecode
  syn keyword postscrConstant   contained MD5Encode

  " GS filter keys
  syn keyword postscrConstant   contained InitialCodeLength FirstBitLowOrder BlockData DecodedByteAlign

  " GS device parameters
  syn keyword postscrConstant   contained BitsPerPixel .HWMargins HWSize Name GrayValues
  syn keyword postscrConstant   contained ColorValues TextAlphaBits GraphicsAlphaBits BufferSpace
  syn keyword postscrConstant   contained OpenOutputFile PageCount BandHeight BandWidth BandBufferSpace
  syn keyword postscrConstant   contained ViewerPreProcess GreenValues BlueValues OutputFile
  syn keyword postscrConstant   contained MaxBitmap RedValues

endif " GhostScript highlighting

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link postscrComment         Comment

hi def link postscrConstant        Constant
hi def link postscrString          String
hi def link postscrASCIIString     postscrString
hi def link postscrHexString       postscrString
hi def link postscrASCII85String   postscrString
hi def link postscrNumber          Number
hi def link postscrInteger         postscrNumber
hi def link postscrHex             postscrNumber
hi def link postscrRadix           postscrNumber
hi def link postscrFloat           Float
hi def link postscrBoolean         Boolean

hi def link postscrIdentifier      Identifier
hi def link postscrProcedure       Function

hi def link postscrName            Statement
hi def link postscrConditional     Conditional
hi def link postscrRepeat          Repeat
hi def link postscrL2Repeat        postscrRepeat
hi def link postscrOperator        Operator
hi def link postscrL1Operator      postscrOperator
hi def link postscrL2Operator      postscrOperator
hi def link postscrL3Operator      postscrOperator
hi def link postscrMathOperator    postscrOperator
hi def link postscrLogicalOperator postscrOperator
hi def link postscrBinaryOperator  postscrOperator

hi def link postscrDSCComment      SpecialComment
hi def link postscrSpecialChar     SpecialChar

hi def link postscrTodo            Todo

hi def link postscrError           Error
hi def link postscrSpecialCharError postscrError
hi def link postscrASCII85CharError postscrError
hi def link postscrHexCharError    postscrError
hi def link postscrASCIIStringError postscrError
hi def link postscrIdentifierError postscrError

if exists("postscr_ghostscript")
hi def link postscrGSOperator      postscrOperator
hi def link postscrGSMathOperator  postscrMathOperator
else
hi def link postscrGSOperator      postscrError
hi def link postscrGSMathOperator  postscrError
endif


let b:current_syntax = "postscr"

" vim: ts=8
PK�j�ZQe����vim80/delmenu.vimnu�[���" This Vim script deletes all the menus, so that they can be redefined.
" Warning: This also deletes all menus defined by the user!
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2001 May 27

aunmenu *

silent! unlet did_install_default_menus
silent! unlet did_install_syntax_menu
if exists("did_menu_trans")
  menutrans clear
  unlet did_menu_trans
endif

silent! unlet find_help_dialog

silent! unlet menutrans_help_dialog
silent! unlet menutrans_path_dialog
silent! unlet menutrans_tags_dialog
silent! unlet menutrans_textwidth_dialog
silent! unlet menutrans_fileformat_dialog
silent! unlet menutrans_no_file

" vim: set sw=2 :
PK�j�ZR"vim80/ftplugin/cdrdaoconf.vimnu�[���" Vim filetype plugin file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-12-04

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��`��vim80/ftplugin/cvsrc.vimnu�[���" Vim filetype plugin file
" Language:             cvs(1) RC file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments= commentstring= formatoptions-=tcroql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�/�ssvim80/ftplugin/vb.vimnu�[���" Vim filetype plugin file
" Language:	VisualBasic (ft=vb)
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'

" we need this wrapper, as call doesn't allow a count
fun! <SID>VbSearch(pattern, flags)
    let cnt = v:count1
    while cnt > 0
	call search(a:pattern, a:flags)
	let cnt = cnt - 1
    endwhile
endfun

let s:cpo_save = &cpo
set cpo&vim

" NOTE the double escaping \\|
nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>

" matchit support
if exists("loaded_matchit")
    let b:match_ignorecase=1
    let b:match_words=
    \ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
    \ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
    \ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
    \ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
    \ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
    \ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
    \ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
    \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
    \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z_�8?��vim80/ftplugin/pyrex.vimnu�[���" Vim filetype plugin file
" Language:	Pyrex
" Maintainer:	Marco Barisione <marco.bari@people.it>
" URL:		http://marcobari.altervista.org/pyrex_vim.html
" Last Change:	2012 May 18

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

" Behaves just like Python
runtime! ftplugin/python.vim ftplugin/python_*.vim ftplugin/python/*.vim

if has("gui_win32") && exists("b:browsefilter")
    let  b:browsefilter = "Pyrex files (*.pyx,*.pxd)\t*.pyx;*.pxd\n" .
			\ "Python Files (*.py)\t*.py\n" .
			\ "C Source Files (*.c)\t*.c\n" .
			\ "C Header Files (*.h)\t*.h\n" .
			\ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
			\ "All Files (*.*)\t*.*\n"
endif

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z_��I��vim80/ftplugin/eiffel.vimnu�[���" Vim filetype plugin
" Language:	Eiffel
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:	2010 Aug 29

if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal comments=:--
setlocal commentstring=--\ %s

setlocal formatoptions-=t formatoptions+=croql

if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
  let b:browsefilter = "Eiffel Source Files (*.e)\t*.e\n" .
		     \ "Eiffel Control Files (*.ecf, *.ace, *.xace)\t*.ecf;*.ace;*.xace\n" .
		     \ "All Files (*.*)\t*.*\n"
endif

if exists("loaded_matchit") && !exists("b:match_words")
  let b:match_ignorecase = 0
  " Silly \%^ trick to match note at head of pair and in middle prevents
  " 'g%' wrapping from 'note' to 'end'
  let b:match_words = '\%^:' .
		  \	'\<\%(^note\|indexing\|class\|^obsolete\|inherit\|insert\|^create\|convert\|feature\|^invariant\)\>:' .
		  \   '^end\>,' .
		  \   '\<\%(do\|deferred\|external\|once\%(\s\+"\)\@!\|check\|debug\|if\|inspect\|from\|across\)\>:' .
		  \	'\%(\%(^\s\+\)\@<=\%(then\|until\|loop\)\|\%(then\|until\|loop\)\s\+[^ -]\|' .
		  \	'\<\%(ensure\%(\s\+then\)\=\|rescue\|_then\|elseif\|else\|when\|\s\@<=invariant\|_until\|_loop\|variant\|_as\|alias\)\>\):' .
		  \   '\s\@<=end\>'
  let b:match_skip = 's:\<eiffel\%(Comment\|String\|Operator\)\>'
  noremap  [% <Nop>
  noremap  ]% <Nop>
  vnoremap a% <Nop>
endif

let b:undo_ftplugin = "setl fo< com< cms<" .
  \ "| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip"

if !exists("g:no_plugin_maps") && !exists("g:no_eiffel_maps")
  function! s:DoMotion(pattern, count, flags) abort
    normal! m'
    for i in range(a:count)
      call search(a:pattern, a:flags)
    endfor
  endfunction

  let sections = '^\%(note\|indexing\|' .
	     \	 '\%(\%(deferred\|expanded\|external\|frozen\)\s\+\)*class\|' .
	     \	 'obsolete\|inherit\|insert\|create\|convert\|feature\|' .
	     \	 'invariant\|end\)\>'

  nnoremap <silent> <buffer> ]] :<C-U>call <SID>DoMotion(sections, v:count1, 'W')<CR>
  xnoremap <silent> <buffer> ]] :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(sections, v:count1, 'W')<CR>
  nnoremap <silent> <buffer> [[ :<C-U>call <SID>DoMotion(sections, v:count1, 'Wb')<CR>
  xnoremap <silent> <buffer> [[ :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(sections, v:count1, 'Wb')<CR>

  function! s:DoFeatureMotion(count, flags)
    let view = winsaveview()
    call cursor(1, 1)
    let [features_start, _] = searchpos('^feature\>')
    call search('^\s\+\a') " find the first feature
    let spaces = indent(line('.'))
    let [features_end, _] = searchpos('^\%(invariant\|note\|end\)\>')
    call winrestview(view)
    call s:DoMotion('\%>' . features_start . 'l\%<' . features_end . 'l^\s*\%' . (spaces + 1) . 'v\zs\a', a:count, a:flags)
  endfunction

  nnoremap <silent> <buffer> ]m :<C-U>call <SID>DoFeatureMotion(v:count1, 'W')<CR>
  xnoremap <silent> <buffer> ]m :<C-U>exe "normal! gv"<Bar>call <SID>DoFeatureMotion(v:count1, 'W')<CR>
  nnoremap <silent> <buffer> [m :<C-U>call <SID>DoFeatureMotion(v:count1, 'Wb')<CR>
  xnoremap <silent> <buffer> [m :<C-U>exe "normal! gv"<Bar>call <SID>DoFeatureMotion(v:count1, 'Wb')<CR>

  let comment_block_start = '^\%(\s\+--.*\n\)\@<!\s\+--'
  let comment_block_end = '^\s\+--.*\n\%(\s\+--\)\@!'

  nnoremap <silent> <buffer> ]- :<C-U>call <SID>DoMotion(comment_block_start, 1, 'W')<CR>
  xnoremap <silent> <buffer> ]- :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(comment_block_start, 1, 'W')<CR>
  nnoremap <silent> <buffer> [- :<C-U>call <SID>DoMotion(comment_block_end, 1, 'Wb')<CR>
  xnoremap <silent> <buffer> [- :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(comment_block_end, 1, 'Wb')<CR>

  let b:undo_ftplugin = b:undo_ftplugin .
    \ "| silent! execute 'unmap <buffer> [[' | silent! execute 'unmap <buffer> ]]'" .
    \ "| silent! execute 'unmap <buffer> [m' | silent! execute 'unmap <buffer> ]m'" .
    \ "| silent! execute 'unmap <buffer> [-' | silent! execute 'unmap <buffer> ]-'"
endif

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: nowrap sw=2 sts=2 ts=8
PK�j�Z�.���vim80/ftplugin/screen.vimnu�[���" Vim filetype plugin file
" Language:             screen(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZF��vim80/ftplugin/udevrules.vimnu�[���" Vim filetype plugin file
" Language:             udev(8) rules file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zi�)n��vim80/ftplugin/logtalk.dictnu�[���encoding
calls
category
dynamic
end_category
end_object
end_protocol
info
initialization
object
protocol
synchronized
threaded
uses
alias
discontiguous
meta_predicate
mode
op
private
protected
public
current_object
current_protocol
current_category
object_property
protocol_property
category_property
create_object
create_protocol
create_category
abolish_object
abolish_protocol
abolish_category
complements
complements_object
extends
extends_object
extends_protocol
extends_category
implements
implements_protocol
imports
imports_category
instantiates
instantiates_class
specializes
specializes_class
abolish_events
current_event
define_events
logtalk_load
logtalk_compile
logtalk_library_path
current_logtalk_flag
set_logtalk_flag
threaded_call
threaded_once
threaded_ignore
threaded_exit
threaded_peek
threaded_wait
threaded_notify
self
this
sender
parameter
before
after
phrase
expand_term
goal_expansion
term_expansion
true
fail
call
catch
throw
unify_with_occurs_check
var
atom
integer
float
atomic
compound
nonvar
number
arg
copy_term
functor
current_predicate
predicate_property
abolish
assertz
asserta
clause
retract
retractall
bagof
findall
forall
setof
current_input
current_output
set_input
set_output
open
close
flush_output
stream_property
at_end_of_stream
set_stream_position
get_char
get_code
peek_char
peek_code
put_char
put_code
nl
get_byte
peek_byte
put_byte
read
read_term
write
writeq
write_canonical
atom_chars
atom_codes
atom_concat
number_chars
number_codes
current_op
char_conversion
current_char_conversion
once
repeat
atom_length
atom_concat
sub_atom
atom_chars
atom_codes
char_code
number_chars
number_codes
set_prolog_flag
current_prolog_flag
halt
abs
atan
ceiling
cos
exp
float_fractional_part
float_integer_part
floor
log
mod
rem
round
sign
sin
sqrt
truncate
PK�j�Z]v���vim80/ftplugin/udevconf.vimnu�[���" Vim filetype plugin file
" Language:             udev(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zs����vim80/ftplugin/bdf.vimnu�[���" Vim filetype plugin file
" Language:             BDF font definition
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=b:COMMENT commentstring=COMMENT\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z}���vim80/ftplugin/manconf.vimnu�[���" Vim filetype plugin file
" Language:             man.conf(5) - man configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z(�4��vim80/ftplugin/readline.vimnu�[���" Vim filetype plugin file
" Language:             readline(3) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZPd�7vim80/ftplugin/dtrace.vimnu�[���" Language: D script as described in "Solaris Dynamic Tracing Guide",
"           http://docs.sun.com/app/docs/doc/817-6223
" Last Change: 2008/03/20
" Version: 1.2
" Maintainer: Nicolas Weber <nicolasweber@gmx.de>

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Using line continuation here.
let s:cpo_save = &cpo
set cpo-=C

let b:undo_ftplugin = "setl fo< com< cms< isk<"

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/

" dtrace uses /* */ comments. Set this explicitly, just in case the user
" changed this (/*%s*/ is the default)
setlocal commentstring=/*%s*/

setlocal iskeyword+=@,$

" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments.
let b:match_words = &matchpairs
let b:match_skip = 's:comment\|string\|character'

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�e�ZZvim80/ftplugin/r.vimnu�[���" Vim filetype plugin file
" Language: R
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Tue Apr 07, 2015  04:38PM

" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword=@,48-57,_,.
setlocal formatoptions-=t
setlocal commentstring=#\ %s
setlocal comments=:#',:###,:##,:#

if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "R Source Files (*.R)\t*.R\n" .
        \ "Files that include R (*.Rnw *.Rd *.Rmd *.Rrst)\t*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
        \ "All Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setl cms< com< fo< isk< | unlet! b:browsefilter"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�^�!vim80/ftplugin/lisp.vimnu�[���" Vim filetype plugin
" Language:      Lisp
" Maintainer:    Sergey Khorev <sergey.khorev@gmail.com>
" URL:		 http://sites.google.com/site/khorser/opensource/vim
" Original author:    Dorai Sitaram <ds26@gte.com>
" Original URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
" Last Change:   Oct 23, 2013

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

setl comments=:;
setl define=^\\s*(def\\k*
setl formatoptions-=t
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
setl lisp
setl commentstring=;%s

setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#

let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp< commentstring<"
PK�j�Z>�Q++vim80/ftplugin/nsis.vimnu�[���" Vim ftplugin file
" Language:		NSIS script
" Maintainer:		Ken Takata
" URL:			https://github.com/k-takata/vim-nsis
" Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
" Last Change:		2018-01-26

if exists("b:did_ftplugin")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

let b:did_ftplugin = 1

let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
      \ " | unlet! b:match_ignorecase b:match_words"

setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
setlocal formatoptions-=t formatoptions+=croql
setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=

if exists("loaded_matchit")
  let b:match_ignorecase = 1
  let b:match_words =
	\ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' .
	\ '\${Select}:\${EndSelect},' .
	\ '\${Switch}:\${EndSwitch},' .
	\ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' .
	\ '\${\%(For\|ForEach\)}:\${Next},' .
	\ '\<Function\>:\<FunctionEnd\>,' .
	\ '\<Section\>:\<SectionEnd\>,' .
	\ '\<SectionGroup\>:\<SectionGroupEnd\>,' .
	\ '\<PageEx\>:\<PageExEnd\>,' .
	\ '\${MementoSection}:\${MementoSectionEnd},' .
	\ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' .
	\ '!macro\>:!macroend\>'
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z����vim80/ftplugin/arch.vimnu�[���" Vim filetype plugin file
" Language:             GNU Arch inventory file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Za�ҿ�vim80/ftplugin/kconfig.vimnu�[���" Vim filetype plugin file
" Vim syntax file
" Maintainer:           Christian Brabandt <cb@256bit.org>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2015-05-29
" License:              Vim (see :h license)
" Repository:		https://github.com/chrisbra/vim-kconfig

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

" For matchit.vim
if exists("loaded_matchit")
  let b:match_words = '^\<menu\>:\<endmenu\>,^\<if\>:\<endif\>,^\<choice\>:\<endchoice\>'
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z!���vim80/ftplugin/spec.vimnu�[���" Plugin to update the %changelog section of RPM spec files
" Filename: spec.vim
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014)
" Last Change: Mon Jun 01 21:15 MSK 2015 Igor Gnatenko

if exists("b:did_ftplugin")
	finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

if !exists("no_plugin_maps") && !exists("no_spec_maps")
	if !hasmapto("<Plug>SpecChangelog")
		map <buffer> <LocalLeader>c <Plug>SpecChangelog
	endif
endif

if !hasmapto("call <SID>SpecChangelog(\"\")<CR>")
       noremap <buffer> <unique> <script> <Plug>SpecChangelog :call <SID>SpecChangelog("")<CR>
endif

if !exists("*s:GetRelVer")
	function! s:GetRelVer()
		if has('python')
python << PYEND
import sys, datetime, shutil, tempfile
import vim

try:
    import rpm
except ImportError:
    pass
else:
    specfile = vim.current.buffer.name
    if specfile:
        rpm.delMacro("dist")
        spec = rpm.spec(specfile)
        headers = spec.sourceHeader
        version = headers["Version"]
        release = headers["Release"]
        vim.command("let ver = '" + version + "'")
        vim.command("let rel = '" + release + "'")
PYEND
		endif
	endfunction
endif

if !exists("*s:SpecChangelog")
	function s:SpecChangelog(format)
		if strlen(a:format) == 0
			if !exists("g:spec_chglog_format")
				let email = input("Name <email address>: ")
				let g:spec_chglog_format = "%a %b %d %Y " . l:email
				echo "\r"
			endif
			let format = g:spec_chglog_format
		else
			if !exists("g:spec_chglog_format")
				let g:spec_chglog_format = a:format
			endif
			let format = a:format
		endif
		let line = 0
		let name = ""
		let ver = ""
		let rel = ""
		let nameline = -1
		let verline = -1
		let relline = -1
		let chgline = -1
		while (line <= line("$"))
			let linestr = getline(line)
			if (name == "" && linestr =~? '^Name:')
				let nameline = line
				let name = substitute(strpart(linestr,5), '^[	 ]*\([^ 	]\+\)[		]*$','\1','')
			elseif (ver == "" && linestr =~? '^Version:')
				let verline = line
				let ver = substitute(strpart(linestr,8), '^[	 ]*\([^ 	]\+\)[		]*$','\1','')
			elseif (rel == "" && linestr =~? '^Release:')
				let relline = line
				let rel = substitute(strpart(linestr,8), '^[	 ]*\([^ 	]\+\)[		]*$','\1','')
			elseif (linestr =~? '^%changelog')
				let chgline = line
				execute line
				break
			endif
			let line = line+1
		endwhile
		if (nameline != -1 && verline != -1 && relline != -1)
			let include_release_info = exists("g:spec_chglog_release_info")
			let name = s:ParseRpmVars(name, nameline)
			let ver = s:ParseRpmVars(ver, verline)
			let rel = s:ParseRpmVars(rel, relline)
		else
			let include_release_info = 0
		endif

		call s:GetRelVer()

		if (chgline == -1)
			let option = confirm("Can't find %changelog. Create one? ","&End of file\n&Here\n&Cancel",3)
			if (option == 1)
				call append(line("$"),"")
				call append(line("$"),"%changelog")
				execute line("$")
				let chgline = line(".")
			elseif (option == 2)
				call append(line("."),"%changelog")
				normal j
				chgline = line(".")
			endif
		endif
		if (chgline != -1)
			let tmptime = v:lc_time
			language time C
			let parsed_format = "* ".strftime(format)." - ".ver."-".rel
			execute "language time" tmptime
			let release_info = "+ ".name."-".ver."-".rel
			let wrong_format = 0
			let wrong_release = 0
			let insert_line = 0
			if (getline(chgline+1) != parsed_format)
				let wrong_format = 1
			endif
			if (include_release_info && getline(chgline+2) != release_info)
				let wrong_release = 1
			endif
			if (wrong_format || wrong_release)
				if (include_release_info && !wrong_release && !exists("g:spec_chglog_never_increase_release"))
					let option = confirm("Increase release? ","&Yes\n&No",1)
					if (option == 1)
						execute relline
						normal 
						let rel = substitute(strpart(getline(relline),8), '^[	 ]*\([^ 	]\+\)[		]*$','\1','')
						let release_info = "+ ".name."-".ver."-".rel
					endif
				endif
				let n = 0
				call append(chgline+n, parsed_format)
				if include_release_info
					let n = n + 1
					call append(chgline+n, release_info)
				endif
				let n = n + 1
				call append(chgline+n,"- ")
				let n = n + 1
				call append(chgline+n,"")
				let insert_line = chgline+n
			else
				let line = chgline
				if !exists("g:spec_chglog_prepend")
					while !(getline(line+2) =~ '^\( *\|\*.*\)$')
						let line = line+1
					endwhile
				endif
				call append(line+1,"- ")
				let insert_line = line+2
			endif
			execute insert_line
			startinsert!
		endif
	endfunction
endif

if !exists("*s:ParseRpmVars")
    function s:ParseRpmVars(str, strline)
	let end = -1
	let ret = ""
	while (1)
		let start = match(a:str, "\%{", end+1)
		if (start == -1)
			let ret = ret . strpart(a:str, end+1)
			break
		endif
		let ret = ret . strpart(a:str, end+1, start-(end+1))
		let end = match(a:str, "}", start)
		if (end == -1)
			let ret = ret . strpart(a:str, start)
			break
		endif
		let varname = strpart(a:str, start+2, end-(start+2))
		execute a:strline
		let definestr = "^[ \t]*%(?:global|define)[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
		let linenum = search(definestr, "bW")
		if (linenum != -1)
			let ret = ret .  substitute(getline(linenum), definestr, "\\1", "")
		else
			let ret = ret . strpart(str, start, end+1-start)
		endif
	endwhile
	return ret
    endfunction
endif

" The following lines, along with the macros/matchit.vim plugin,
" make it easy to navigate the different sections of a spec file
" with the % key (thanks to Max Ischenko).

let b:match_ignorecase = 0
let b:match_words =
  \ '^Name:^%description:^%clean:^%(?:auto)?setup:^%build:^%install:^%files:' .
  \ '^%package:^%preun:^%postun:^%changelog'

let &cpo = s:cpo_save
unlet s:cpo_save

let b:undo_ftplugin = "unlet! b:match_ignorecase b:match_words"
PK�j�Z4OE��vim80/ftplugin/ch.vimnu�[���" Vim filetype plugin file
" Language:     Ch
" Maintainer:   SoftIntegration, Inc. <info@softintegration.com>
" URL:		http://www.softintegration.com/download/vim/ftplugin/ch.vim
" Last change:	2004 May 16
"		Created based on cpp.vim
"
" Ch is a C/C++ interpreter with many high level extensions
"

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Behaves just like C
runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
PK�j�Z8�vim80/ftplugin/neomuttrc.vimnu�[���" Vim filetype plugin file
" Language:             NeoMutt RC File
" Previous Maintainer:  Guillaume Brogi <gui-gui@netcourrier.com>
" Latest Revision:      2017-09-17
" Original version copied from ftplugin/muttrc.vim

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &l:include = '^\s*source\>'

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�N�b__vim80/ftplugin/haml.vimnu�[���" Vim filetype plugin
" Language:	Haml
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "All Files (*.*)\t*.*\n"
let s:match_words = ""

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
unlet! b:did_ftplugin
set matchpairs-=<:>

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
  let s:undo_ftplugin = b:undo_ftplugin
  unlet b:undo_ftplugin
endif
if exists("b:browsefilter")
  let s:browsefilter = b:browsefilter
  unlet b:browsefilter
endif
if exists("b:match_words")
  let s:match_words = b:match_words
  unlet b:match_words
endif

runtime! ftplugin/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.vim
let b:did_ftplugin = 1

" Combine the new set of values with those previously included.
if exists("b:undo_ftplugin")
  let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
endif
if exists ("b:browsefilter")
  let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter
endif
if exists("b:match_words")
  let s:match_words = b:match_words . ',' . s:match_words
endif

" Change the browse dialog on Win32 to show mainly Haml-related files
if has("gui_win32")
  let b:browsefilter="Haml Files (*.haml)\t*.haml\nSass Files (*.sass)\t*.sass\n" . s:browsefilter
endif

" Load the combined list of match_words for matchit.vim
if exists("loaded_matchit")
  let b:match_words = s:match_words
endif

setlocal comments= commentstring=-#\ %s

let b:undo_ftplugin = "setl cms< com< "
      \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin

let &cpo = s:save_cpo
unlet s:save_cpo

" vim:set sw=2:
PK�j�Z��9�
�
vim80/ftplugin/php.vimnu�[���" Vim filetype plugin file
" Language:	php
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:keepcpo= &cpo
set cpo&vim

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
	    \	     "All Files (*.*)\t*.*\n"
let s:match_words = ""

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif
if exists("b:match_words")
    let s:match_words = b:match_words
endif
if exists("b:match_skip")
    unlet b:match_skip
endif

" Change the :browse e filter to primarily show PHP-related files.
if has("gui_win32")
    let  b:browsefilter="PHP Files (*.php)\t*.php\n" . s:browsefilter
endif

" ###
" Provided by Mikolaj Machowski <mikmach at wp dot pl>
setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\?
" Disabled changing 'iskeyword', it breaks a command such as "*"
" setlocal iskeyword+=$

if exists("loaded_matchit")
    let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' .
		      \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' .
		      \ '\<while\>:\<endwhile\>,' .
		      \ '\<do\>:\<while\>,' .
		      \ '\<for\>:\<endfor\>,' .
		      \ '\<foreach\>:\<endforeach\>,' .
                      \ '(:),[:],{:},' .
		      \ s:match_words
endif
" ###

if exists('&omnifunc')
  setlocal omnifunc=phpcomplete#CompletePHP
endif

" Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com>
let s:function = '\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function'
let s:class = '\(abstract\s\+\|final\s\+\)*class'
let s:interface = 'interface'
let s:section = '\(.*\%#\)\@!\_^\s*\zs\('.s:function.'\|'.s:class.'\|'.s:interface.'\)'
exe 'nno <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
exe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
exe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
exe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'

setlocal commentstring=/*%s*/

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" .
	    \	      " | unlet! b:browsefilter b:match_words | " .
	    \	      s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z������vim80/ftplugin/qf.vimnu�[���" Vim filetype plugin file
" Language:     Vim's quickfix window
" Maintainer:   Lech Lorens <Lech.Lorens@gmail.com>
" Last Changed: 30 Apr 2012

if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let b:undo_ftplugin = "set stl<"

" Display the command that produced the list in the quickfix window:
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
PK�j�Z��6vim80/ftplugin/mrxvtrc.vimnu�[���" Created	: Wed 26 Apr 2006 01:20:53 AM CDT
" Modified	: Fri 28 Apr 2006 03:24:01 AM CDT
" Author	: Gautam Iyer <gi1242@users.sourceforge.net>
" Description	: ftplugin for mrxvtrc

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl com< cms< fo<"

" Really any line that does not match an option is a comment. But use '!' for
" compatibility with x-defaults files, and "#" (preferred) for compatibility
" with all other config files.
"
" Comments beginning with "#" are preferred because Vim will not flag the
" first word as a spelling error if it is not capitalised. The '!' used as
" comment leaders makes Vim think that every comment line is a new sentence.

setlocal comments=:!,:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql
PK�j�Z�#�oWWvim80/ftplugin/groovy.vimnu�[���" Vim filetype plugin file
" Language:	groovy
" Maintainer:	Justin M. Keyes <justinkz@gmail.com>
" Last Change:	2016 May 22

if exists('b:did_ftplugin')
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo-=C

let b:undo_ftplugin = 'setlocal commentstring<'

setlocal commentstring=//%s

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��  vim80/ftplugin/cpp.vimnu�[���" Vim filetype plugin file
" Language:	C++
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2001 Jan 15

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Behaves just like C
runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
PK�j�Zb��g�,�,vim80/ftplugin/debchangelog.vimnu�[���" Vim filetype plugin file (GUI menu, folding and completion)
" Language:     Debian Changelog
" Maintainer:   Debian Vim Maintainers
" Former Maintainers:   Michael Piefel <piefel@informatik.hu-berlin.de>
"                       Stefano Zacchiroli <zack@debian.org>
" Last Change:  2018-01-06
" License:      Vim License
" URL:          https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim

" Bug completion requires apt-listbugs installed for Debian packages or
" python-launchpadlib installed for Ubuntu packages

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin=1

" {{{1 Local settings (do on every load)
if exists("g:debchangelog_fold_enable")
  setlocal foldmethod=expr
  setlocal foldexpr=DebGetChangelogFold(v:lnum)
  setlocal foldtext=DebChangelogFoldText()
endif

" Debian changelogs are not supposed to have any other text width,
" so the user cannot override this setting
setlocal tw=78
setlocal comments=f:* 

" Clean unloading
let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
" }}}1

if exists("g:did_changelog_ftplugin")
  finish
endif

" Don't load another plugin (this is global)
let g:did_changelog_ftplugin = 1

" {{{1 GUI menu

" Helper functions returning various data.
" Returns full name, either from $DEBFULLNAME or debianfullname.
" TODO Is there a way to determine name from anywhere else?
function <SID>FullName()
    if exists("$DEBFULLNAME")
	return $DEBFULLNAME
    elseif exists("g:debianfullname")
	return g:debianfullname
    else
	return "Your Name"
    endif
endfunction

" Returns email address, from $DEBEMAIL, $EMAIL or debianemail.
function <SID>Email()
    if exists("$DEBEMAIL")
	return $DEBEMAIL
    elseif exists("$EMAIL")
	return $EMAIL
    elseif exists("g:debianemail")
	return g:debianemail
    else
	return "your@email.address"
    endif
endfunction

" Returns date in RFC822 format.
function <SID>Date()
    let savelang = v:lc_time
    execute "language time C"
    let dateandtime = strftime("%a, %d %b %Y %X %z")
    execute "language time " . savelang
    return dateandtime
endfunction

function <SID>WarnIfNotUnfinalised()
    if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
	echohl WarningMsg
	echo "The entry has not been unfinalised before editing."
	echohl None
	return 1
    endif
    return 0
endfunction

function <SID>Finalised()
    let savelinenum = line(".")
    normal 1G
    call search("^ -- ")
    if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
	let returnvalue = 1
    else
	let returnvalue = 0
    endif
    execute savelinenum
    return returnvalue
endfunction

" These functions implement the menus
function NewVersion()
    " The new entry is unfinalised and shall be changed
    amenu disable Changelog.New\ Version
    amenu enable Changelog.Add\ Entry
    amenu enable Changelog.Close\ Bug
    amenu enable Changelog.Set\ Distribution
    amenu enable Changelog.Set\ Urgency
    amenu disable Changelog.Unfinalise
    amenu enable Changelog.Finalise
    call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', ''))
    call append(1, "")
    call append(2, "")
    call append(3, " -- ")
    call append(4, "")
    call Urgency("low")
    normal 1G0
    call search(")")
    normal h
    normal 
    call setline(1, substitute(getline(1), '-\$\$', '-', ''))
    if exists("g:debchangelog_fold_enable")
        foldopen
    endif
    call AddEntry()
endfunction

function AddEntry()
    normal 1G
    call search("^ -- ")
    normal kk
    call append(".", "  * ")
    normal jjj
    let warn=<SID>WarnIfNotUnfinalised()
    normal kk
    if warn
	echohl MoreMsg
	call input("Hit ENTER")
	echohl None
    endif
    startinsert!
endfunction

function CloseBug()
    normal 1G
    call search("^ -- ")
    let warn=<SID>WarnIfNotUnfinalised()
    normal kk
    call append(".", "  *  (closes: #" . input("Bug number to close: ") . ")")
    normal j^ll
    startinsert
endfunction

function Distribution(dist)
    call setline(1, substitute(getline(1), ')  *\%(UNRELEASED\|\l\+\);', ") " . a:dist . ";", ""))
endfunction

function Urgency(urg)
    call setline(1, substitute(getline(1), "urgency=.*$", "urgency=" . a:urg, ""))
endfunction

function <SID>UnfinaliseMenu()
    " This means the entry shall be changed
    amenu disable Changelog.New\ Version
    amenu enable Changelog.Add\ Entry
    amenu enable Changelog.Close\ Bug
    amenu enable Changelog.Set\ Distribution
    amenu enable Changelog.Set\ Urgency
    amenu disable Changelog.Unfinalise
    amenu enable Changelog.Finalise
endfunction

function Unfinalise()
    call <SID>UnfinaliseMenu()
    normal 1G
    call search("^ -- ")
    call setline(".", " -- ")
endfunction

function <SID>FinaliseMenu()
    " This means the entry should not be changed anymore
    amenu enable Changelog.New\ Version
    amenu disable Changelog.Add\ Entry
    amenu disable Changelog.Close\ Bug
    amenu disable Changelog.Set\ Distribution
    amenu disable Changelog.Set\ Urgency
    amenu enable Changelog.Unfinalise
    amenu disable Changelog.Finalise
endfunction

function Finalise()
    call <SID>FinaliseMenu()
    normal 1G
    call search("^ -- ")
    call setline(".", " -- " . <SID>FullName() . " <" . <SID>Email() . ">  " . <SID>Date())
endfunction


function <SID>MakeMenu()
    amenu &Changelog.&New\ Version			:call NewVersion()<CR>
    amenu Changelog.&Add\ Entry				:call AddEntry()<CR>
    amenu Changelog.&Close\ Bug				:call CloseBug()<CR>
    menu Changelog.-sep-				<nul>

    amenu Changelog.Set\ &Distribution.&unstable	:call Distribution("unstable")<CR>
    amenu Changelog.Set\ Distribution.&frozen		:call Distribution("frozen")<CR>
    amenu Changelog.Set\ Distribution.&stable		:call Distribution("stable")<CR>
    menu Changelog.Set\ Distribution.-sep-		<nul>
    amenu Changelog.Set\ Distribution.frozen\ unstable	:call Distribution("frozen unstable")<CR>
    amenu Changelog.Set\ Distribution.stable\ unstable	:call Distribution("stable unstable")<CR>
    amenu Changelog.Set\ Distribution.stable\ frozen	:call Distribution("stable frozen")<CR>
    amenu Changelog.Set\ Distribution.stable\ frozen\ unstable	:call Distribution("stable frozen unstable")<CR>

    amenu Changelog.Set\ &Urgency.&low			:call Urgency("low")<CR>
    amenu Changelog.Set\ Urgency.&medium		:call Urgency("medium")<CR>
    amenu Changelog.Set\ Urgency.&high			:call Urgency("high")<CR>

    menu Changelog.-sep-				<nul>
    amenu Changelog.U&nfinalise				:call Unfinalise()<CR>
    amenu Changelog.&Finalise				:call Finalise()<CR>

    if <SID>Finalised()
	call <SID>FinaliseMenu()
    else
	call <SID>UnfinaliseMenu()
    endif
endfunction

augroup changelogMenu
au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif
au BufLeave * if &filetype == "debchangelog" | silent! aunmenu Changelog | endif
augroup END

" }}}
" {{{1 folding

" look for an author name in the [zonestart zoneend] lines searching backward
function! s:getAuthor(zonestart, zoneend)
  let linepos = a:zoneend
  while linepos >= a:zonestart
    let line = getline(linepos)
    if line =~ '^ --'
      return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '')
    endif
    let linepos -= 1
  endwhile
  return '[unknown]'
endfunction

" Look for a package source name searching backward from the givenline and
" returns it. Return the empty string if the package name can't be found
function! DebGetPkgSrcName(lineno)
  let lineidx = a:lineno
  let pkgname = ''
  while lineidx > 0
    let curline = getline(lineidx)
    if curline =~ '^\S'
      let pkgname = matchlist(curline, '^\(\S\+\).*$')[1]
      break
    endif
    let lineidx = lineidx - 1
  endwhile
  return pkgname
endfunction

function! DebChangelogFoldText()
  if v:folddashes == '-'  " changelog entry fold
    return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' '
  endif
  return foldtext()
endfunction

function! DebGetChangelogFold(lnum)
  let line = getline(a:lnum)
  if line =~ '^\w\+'
    return '>1' " beginning of a changelog entry
  endif
  if line =~ '^\s\+\[.*\]'
    return '>2' " beginning of an author-specific chunk
  endif
  if line =~ '^ --'
    return '1'
  endif
  return '='
endfunction

if exists("g:debchangelog_fold_enable")
  silent! foldopen!   " unfold the entry the cursor is on (usually the first one)
endif

" }}}

" {{{1 omnicompletion for Closes: #

if !exists('g:debchangelog_listbugs_severities')
  let g:debchangelog_listbugs_severities = 'critical,grave,serious,important,normal,minor,wishlist'
endif

fun! DebCompleteBugs(findstart, base)
  if a:findstart
    let line = getline('.')

    " try to detect whether this is closes: or lp:
    let g:debchangelog_complete_mode = 'debbugs'
    let try_colidx = col('.') - 1
    let colidx = -1 " default to no-completion-possible

    while try_colidx > 0 && line[try_colidx - 1] =~ '\s\|\d\|#\|,\|:'
      let try_colidx = try_colidx - 1
      if line[try_colidx] == '#' && colidx == -1
        " found hash, where we complete from:
        let colidx = try_colidx
      elseif line[try_colidx] == ':'
        if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~ '\clp:'
          let g:debchangelog_complete_mode = 'lp'
        endif
        break
      endif
    endwhile
    return colidx
  else " return matches:
    let bug_lines = []
    if g:debchangelog_complete_mode == 'lp'
      if ! has('python')
        echoerr 'vim must be built with Python support to use LP bug completion'
        return
      endif
      let pkgsrc = DebGetPkgSrcName(line('.'))
      python << EOF
import vim
try:
    from launchpadlib.launchpad import Launchpad
    from lazr.restfulclient.errors import HTTPError
    # login anonymously
    lp = Launchpad.login_anonymously('debchangelog.vim', 'production')
    ubuntu = lp.distributions['ubuntu']
    try:
        sp = ubuntu.getSourcePackage(name=vim.eval('pkgsrc'))
        status = ('New', 'Incomplete', 'Confirmed', 'Triaged',
                  'In Progress', 'Fix Committed')
        tasklist = sp.searchTasks(status=status, order_by='id')
        liststr = '['
        for task in tasklist:
            bug = task.bug
            liststr += "'#%d - %s'," % (bug.id, bug.title.replace('\'', '\'\''))
        liststr += ']'
        vim.command('silent let bug_lines = %s' % liststr.encode('utf-8'))
    except HTTPError:
        pass
except ImportError:
    vim.command('echoerr \'python-launchpadlib >= 1.5.4 needs to be installed to use Launchpad bug completion\'')
EOF
    else
      if ! filereadable('/usr/sbin/apt-listbugs')
        echoerr 'apt-listbugs not found, you should install it to use Closes bug completion'
        return
      endif
      let pkgsrc = DebGetPkgSrcName(line('.'))
      let listbugs_output = system('/usr/sbin/apt-listbugs -s ' . g:debchangelog_listbugs_severities . ' list ' . pkgsrc . ' | grep "^ #" 2> /dev/null')
      let bug_lines = split(listbugs_output, '\n')
    endif
    let completions = []
    for line in bug_lines
      let parts = matchlist(line, '^\s*\(#\S\+\)\s*-\s*\(.*\)$')
      " filter only those which match a:base:
      if parts[1] !~ "^" . a:base
        continue
      endif
      let completion = {}
      let completion['word'] = parts[1]
      let completion['menu'] = parts[2]
      let completion['info'] = parts[0]
      let completions += [completion]
    endfor
    return completions
  endif
endfun

setlocal omnifunc=DebCompleteBugs

" }}}

" vim: set foldmethod=marker:
PK�j�Z���B
B
vim80/ftplugin/j.vimnu�[���" Vim filetype plugin
" Language:	J
" Maintainer:	David Bürgin <676c7473@gmail.com>
" URL:		https://github.com/glts/vim-j
" Last Change:	2015-09-27

if exists('b:did_ftplugin')
  finish
endif
let b:did_ftplugin = 1

let s:save_cpo = &cpo
set cpo&vim

setlocal iskeyword=48-57,A-Z,a-z,_
setlocal comments=:NB.
setlocal commentstring=NB.\ %s
setlocal formatoptions-=t
setlocal matchpairs=(:)
setlocal path-=/usr/include

" Includes. To make the shorthand form "require 'web/cgi'" work, double the
" last path component. Also strip off leading folder names like "~addons/".
setlocal include=\\v^\\s*(load\|require)\\s*'\\zs\\f+\\ze'
setlocal includeexpr=substitute(substitute(tr(v:fname,'\\','/'),'\\v^[^~][^/.]*(/[^/.]+)$','&\\1',''),'\\v^\\~[^/]+/','','')
setlocal suffixesadd=.ijs

let b:undo_ftplugin = 'setlocal matchpairs< formatoptions< commentstring< comments< iskeyword< path< include< includeexpr< suffixesadd<'

" Section movement with ]] ][ [[ []. The start/end patterns below are amended
" inside the function in order to avoid matching on the current cursor line.
let s:sectionstart = '\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\)\>.*'
let s:sectionend = '\s*)\s*'

function! s:SearchSection(end, backwards, visualmode) abort
  if a:visualmode !=# ''
    normal! gv
  endif
  let l:flags = a:backwards ? 'bsW' : 'sW'
  if a:end
    call search('^' . s:sectionend . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags)
  else
    call search('^' . s:sectionstart . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags)
  endif
endfunction

noremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, '')<CR>
xnoremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, visualmode())<CR>
sunmap <buffer> ]]
noremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, '')<CR>
xnoremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, visualmode())<CR>
sunmap <buffer> ][
noremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, '')<CR>
xnoremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, visualmode())<CR>
sunmap <buffer> [[
noremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, '')<CR>
xnoremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, visualmode())<CR>
sunmap <buffer> []

let b:undo_ftplugin .= ' | silent! execute "unmap <buffer> ]]"'
                   \ . ' | silent! execute "unmap <buffer> ]["'
                   \ . ' | silent! execute "unmap <buffer> [["'
                   \ . ' | silent! execute "unmap <buffer> []"'

" Browse dialog filter on Windows (see ":help browsefilter")
if has('gui_win32') && !exists('b:browsefilter')
  let b:browsefilter = "J Script Files (*.ijs)\t*.ijs\n"
                   \ . "All Files (*.*)\t*.*\n"
  let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif

" Enhanced "%" matching (see ":help matchit")
if exists('loaded_matchit') && !exists('b:match_words')
  let b:match_ignorecase = 0
  let b:match_words = '^\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(\:\s*0\|def\s\+0\|define\)\)\>:^\s*\:\s*$:^\s*)\s*$'
                  \ . ',\<\%(for\%(_\a\k*\)\=\|if\|select\|try\|whil\%(e\|st\)\)\.:\<\%(case\|catch[dt]\=\|else\%(if\)\=\|fcase\)\.:\<end\.'
  let b:undo_ftplugin .= ' | unlet! b:match_ignorecase b:match_words'
endif

let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�ZE<�	��vim80/ftplugin/text.vimnu�[���" Vim filetype plugin
" Language:		Text
" Maintainer:		David Barnett <daviebdawg+vim@gmail.com>
" Last Change:		2014 Jul 09

if exists('b:did_ftplugin')
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = 'setlocal comments< commentstring<'

" We intentionally don't set formatoptions-=t since text should wrap as text.

" Pseudo comment leaders to indent bulleted lists.
setlocal comments=fb:-,fb:*
setlocal commentstring=
PK�j�Z���QQvim80/ftplugin/automake.vimnu�[���" Vim filetype plugin file
" Language:             Automake
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���Ѳ�vim80/ftplugin/lftp.vimnu�[���" Vim filetype plugin file
" Language:             lftp(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�Rl���vim80/ftplugin/pamconf.vimnu�[���" Vim filetype plugin file
" Language:             pam(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�T�vim80/ftplugin/erlang.vimnu�[���" Vim ftplugin file
" Language:     Erlang
" Author:       Oscar Hellstr�m <oscar@oscarh.net>
" Contributors: Ricardo Catalinas Jim�nez <jimenezrick@gmail.com>
"               Eduardo Lopez (http://github.com/tapichu)
" License:      Vim license
" Version:      2012/01/25

if exists('b:did_ftplugin')
	finish
else
	let b:did_ftplugin = 1
endif

if exists('s:did_function_definitions')
	call s:SetErlangOptions()
	finish
else
	let s:did_function_definitions = 1
endif

let s:cpo_save = &cpo
set cpo&vim

if !exists('g:erlang_keywordprg')
	let g:erlang_keywordprg = 'erl -man'
endif

if !exists('g:erlang_folding')
	let g:erlang_folding = 0
endif

let s:erlang_fun_begin = '^\a\w*(.*$'
let s:erlang_fun_end   = '^[^%]*\.\s*\(%.*\)\?$'

function s:SetErlangOptions()
	if g:erlang_folding
		setlocal foldmethod=expr
		setlocal foldexpr=GetErlangFold(v:lnum)
		setlocal foldtext=ErlangFoldText()
	endif

	setlocal comments=:%%%,:%%,:%
	setlocal commentstring=%%s

	setlocal formatoptions+=ro
	let &l:keywordprg = g:erlang_keywordprg
endfunction

function GetErlangFold(lnum)
	let lnum = a:lnum
	let line = getline(lnum)

	if line =~ s:erlang_fun_end
		return '<1'
	endif

	if line =~ s:erlang_fun_begin && foldlevel(lnum - 1) == 1
		return '1'
	endif

	if line =~ s:erlang_fun_begin
		return '>1'
	endif

	return '='
endfunction

function ErlangFoldText()
	let line    = getline(v:foldstart)
	let foldlen = v:foldend - v:foldstart + 1
	let lines   = ' ' . foldlen . ' lines: ' . substitute(line, "[\ \t]*", '', '')
	if foldlen < 10
		let lines = ' ' . lines
	endif
	let retval = '+' . v:folddashes . lines

	return retval
endfunction

call s:SetErlangOptions()

let b:undo_ftplugin = "setlocal foldmethod< foldexpr< foldtext<"
	\ . " comments< commentstring< formatoptions<"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�heswwvim80/ftplugin/xml.vimnu�[���" Vim filetype plugin file
" Language:	xml
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

setlocal commentstring=<!--%s-->
setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->

setlocal formatoptions-=t
if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1)
    setlocal formatoptions+=croql
endif


" XML:  thanks to Johannes Zellner and Akbar Ibrahim
" - case sensitive
" - don't match empty tags <fred/>
" - match <!--, --> style comments (but not --, --)
" - match <!, > inlined dtd's. This is not perfect, as it
"   gets confused for example by
"       <!ENTITY gt ">">
if exists("loaded_matchit")
    let b:match_ignorecase=0
    let b:match_words =
     \  '<:>,' .
     \  '<\@<=!\[CDATA\[:]]>,'.
     \  '<\@<=!--:-->,'.
     \  '<\@<=?\k\+:?>,'.
     \  '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,'.
     \  '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>'
endif

"
" For Omni completion, by Mikolaj Machowski.
if exists('&ofu')
  setlocal ofu=xmlcomplete#CompleteTags
endif
command! -nargs=+ XMLns call xmlcomplete#CreateConnection(<f-args>)
command! -nargs=? XMLent call xmlcomplete#CreateEntConnection(<f-args>)


" Change the :browse e filter to primarily show xml-related files.
if has("gui_win32")
    let  b:browsefilter="XML Files (*.xml)\t*.xml\n" .
		\	"DTD Files (*.dtd)\t*.dtd\n" .
		\	"All Files (*.*)\t*.*\n"
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
		\     " | unlet! b:match_ignorecase b:match_words b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z�F?
?
vim80/ftplugin/abaqus.vimnu�[���" Vim filetype plugin file
" Language:     Abaqus finite element input file (www.abaqus.com)
" Maintainer:   Carl Osterwisch <osterwischc@asme.org>
" Last Change:  2012 Apr 30

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin") | finish | endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Save the compatibility options and temporarily switch to vim defaults
let s:cpo_save = &cpoptions
set cpoptions&vim

" Set the format of the include file specification for Abaqus
" Used in :check gf ^wf [i and other commands
setlocal include=\\<\\cINPUT\\s*=

" Remove characters up to the first = when evaluating filenames
setlocal includeexpr=substitute(v:fname,'.\\{-}=','','')

" Remove comma from valid filename characters since it is used to
" separate keyword parameters
setlocal isfname-=,

" Define format of comment lines (see 'formatoptions' for uses)
setlocal comments=:**
setlocal commentstring=**%s

" Definitions start with a * and assign a NAME, NSET, or ELSET
" Used in [d ^wd and other commands
setlocal define=^\\*\\a.*\\c\\(NAME\\\|NSET\\\|ELSET\\)\\s*=

" Abaqus keywords and identifiers may include a - character
setlocal iskeyword+=-

let b:undo_ftplugin = "setlocal include< includeexpr< isfname<"
    \ . " comments< commentstring< define< iskeyword<"

if has("folding")
    " Fold all lines that do not begin with *
    setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
    setlocal foldmethod=expr
    let b:undo_ftplugin .= " foldexpr< foldmethod<"
endif

" Set the file browse filter (currently only supported under Win32 gui)
if has("gui_win32") && !exists("b:browsefilter")
    let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
    \ "Abaqus Results (*.dat)\t*.dat\n" .
    \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
    \ "All Files (*.*)\t*.*\n"
    let b:undo_ftplugin .= "|unlet! b:browsefilter"
endif

" Define patterns for the matchit plugin
if exists("loaded_matchit") && !exists("b:match_words")
    let b:match_ignorecase = 1
    let b:match_words = 
    \ '\*part:\*end\s*part,' .
    \ '\*assembly:\*end\s*assembly,' .
    \ '\*instance:\*end\s*instance,' .
    \ '\*step:\*end\s*step'
    let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words"
endif

" Define keys used to move [count] keywords backward or forward.
noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>

" Define key to toggle commenting of the current line or range
noremap <silent><buffer> <LocalLeader><LocalLeader> 
    \ :call <SID>Abaqus_ToggleComment()<CR>j
function! <SID>Abaqus_ToggleComment() range
    if strpart(getline(a:firstline), 0, 2) == "**"
        " Un-comment all lines in range
        silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
    else
        " Comment all lines in range
        silent execute a:firstline . ',' . a:lastline . 's/^/**/'
    endif
endfunction

let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
    \ . "|unmap <buffer> <LocalLeader><LocalLeader>"

" Undo must be done in nocompatible mode for <LocalLeader>.
let b:undo_ftplugin = "let s:cpo_save = &cpoptions|"
    \ . "set cpoptions&vim|"
    \ . b:undo_ftplugin
    \ . "|let &cpoptions = s:cpo_save"
    \ . "|unlet s:cpo_save"

" Restore saved compatibility options
let &cpoptions = s:cpo_save
unlet s:cpo_save
PK�j�Zʳ�X]]vim80/ftplugin/eruby.vimnu�[���" Vim filetype plugin
" Language:		eRuby
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "All Files (*.*)\t*.*\n"
let s:match_words = ""

if !exists("g:eruby_default_subtype")
  let g:eruby_default_subtype = "html"
endif

if &filetype =~ '^eruby\.'
  let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+')
elseif !exists("b:eruby_subtype")
  let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
  let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+')
  if b:eruby_subtype == ''
    let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
  endif
  if b:eruby_subtype == 'rhtml'
    let b:eruby_subtype = 'html'
  elseif b:eruby_subtype == 'rb'
    let b:eruby_subtype = 'ruby'
  elseif b:eruby_subtype == 'yml'
    let b:eruby_subtype = 'yaml'
  elseif b:eruby_subtype == 'js'
    let b:eruby_subtype = 'javascript'
  elseif b:eruby_subtype == 'txt'
    " Conventional; not a real file type
    let b:eruby_subtype = 'text'
  elseif b:eruby_subtype == ''
    let b:eruby_subtype = g:eruby_default_subtype
  endif
endif

if exists("b:eruby_subtype") && b:eruby_subtype != ''
  exe "runtime! ftplugin/".b:eruby_subtype.".vim ftplugin/".b:eruby_subtype."_*.vim ftplugin/".b:eruby_subtype."/*.vim"
else
  runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
endif
unlet! b:did_ftplugin

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
  let s:undo_ftplugin = b:undo_ftplugin
  unlet b:undo_ftplugin
endif
if exists("b:browsefilter")
  let s:browsefilter = b:browsefilter
  unlet b:browsefilter
endif
if exists("b:match_words")
  let s:match_words = b:match_words
  unlet b:match_words
endif

runtime! ftplugin/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.vim
let b:did_ftplugin = 1

" Combine the new set of values with those previously included.
if exists("b:undo_ftplugin")
  let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
endif
if exists ("b:browsefilter")
  let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter
endif
if exists("b:match_words")
  let s:match_words = b:match_words . ',' . s:match_words
endif

" Change the browse dialog on Win32 to show mainly eRuby-related files
if has("gui_win32")
  let b:browsefilter="eRuby Files (*.erb, *.rhtml)\t*.erb;*.rhtml\n" . s:browsefilter
endif

" Load the combined list of match_words for matchit.vim
if exists("loaded_matchit")
  let b:match_words = s:match_words
endif

" TODO: comments=
setlocal commentstring=<%#%s%>

let b:undo_ftplugin = "setl cms< "
      \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin

let &cpo = s:save_cpo
unlet s:save_cpo

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�Z�ϗu��vim80/ftplugin/updatedb.vimnu�[���" Vim filetype plugin file
" Language:             updatedb.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�\)M��vim80/ftplugin/gitrebase.vimnu�[���" Vim filetype plugin
" Language:	git rebase --interactive
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif

runtime! ftplugin/git.vim
let b:did_ftplugin = 1

setlocal comments=:# commentstring=#\ %s formatoptions-=t
setlocal nomodeline
if !exists("b:undo_ftplugin")
  let b:undo_ftplugin = ""
endif
let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"

function! s:choose(word)
  s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
endfunction

function! s:cycle()
  call s:choose(get({'s':'edit','p':'squash','e':'reword','r':'fixup'},getline('.')[0],'pick'))
endfunction

command! -buffer -bar Pick   :call s:choose('pick')
command! -buffer -bar Squash :call s:choose('squash')
command! -buffer -bar Edit   :call s:choose('edit')
command! -buffer -bar Reword :call s:choose('reword')
command! -buffer -bar Fixup  :call s:choose('fixup')
command! -buffer -bar Cycle  :call s:cycle()
" The above are more useful when they are mapped; for example:
"nnoremap <buffer> <silent> S :Cycle<CR>

if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps")
  finish
endif

nnoremap <buffer> <expr> K col('.') < 7 && expand('<Lt>cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K'

let b:undo_ftplugin = b:undo_ftplugin . "|nunmap <buffer> K"
PK�j�Z�q�ccvim80/ftplugin/dtd.vimnu�[���" Vim filetype plugin file
" Language:	dtd
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

setlocal commentstring=<!--%s-->
setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->

setlocal formatoptions-=t
if !exists("g:ft_dtd_autocomment") || (g:ft_dtd_autocomment == 1)
    setlocal formatoptions+=croql
endif

if exists("loaded_matchit")
    let b:match_words = '<!--:-->,<!:>'
endif

" Change the :browse e filter to primarily show Java-related files.
if has("gui_win32")
    let  b:browsefilter="DTD Files (*.dtd)\t*.dtd\n" .
		\	"XML Files (*.xml)\t*.xml\n" .
		\	"All Files (*.*)\t*.*\n"
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
		\     " | unlet! b:matchwords b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z<��7��vim80/ftplugin/vim.vimnu�[���" Vim filetype plugin
" Language:	Vim
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Dec 05

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo-=C

let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring<"
	\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" To allow tag lookup via CTRL-] for autoload functions, '#' must be a
" keyword character.  E.g., for netrw#Nread().
setlocal isk+=#

" Use :help to lookup the keyword under the cursor with K.
setlocal keywordprg=:help

" Set 'comments' to format dashed lists in comments
setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"

" Format comments to be up to 78 characters long
if &tw == 0
  setlocal tw=78
endif

" Comments start with a double quote
setlocal commentstring=\"%s

if !exists("no_plugin_maps") && !exists("no_vim_maps")
  " Move around functions.
  nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
  vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
  nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
  vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
  nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
  vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
  nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
  vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>

  " Move around comments
  nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
  vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
  nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
  vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
endif

" Let the matchit plugin know what items can be matched.
if exists("loaded_matchit")
  let b:match_ignorecase = 0
  let b:match_words =
	\ '\<fu\%[nction]\>:\<retu\%[rn]\>:\<endf\%[unction]\>,' .
 	\ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
	\ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
	\ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' .
	\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' .
	\ '(:)'
  " Ignore syntax region commands and settings, any 'en*' would clobber
  " if-endif.
  " - set spl=de,en
  " - au! FileType javascript syntax region foldBraces start=/{/ end=/}/ …
  let b:match_skip = 'synIDattr(synID(line("."),col("."),1),"name")
        \ =~? "comment\\|string\\|vimSynReg\\|vimSet"'
endif

let &cpo = s:cpo_save
unlet s:cpo_save

" removed this, because 'cpoptions' is a global option.
" setlocal cpo+=M		" makes \%( match \)
PK�j�Z�HKAAvim80/ftplugin/jproperties.vimnu�[���" Vim filetype plugin
" Language:	Java properties file
" Maintainer:	David Bürgin <676c7473@gmail.com>
" Last Change:	2013-11-19

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

setlocal formatoptions-=t
setlocal comments=:#,:!
setlocal commentstring=#\ %s

let b:undo_ftplugin = "setl cms< com< fo<"
PK�j�ZR"vim80/ftplugin/denyhosts.vimnu�[���" Vim filetype plugin file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-12-04

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�!�__vim80/ftplugin/sass.vimnu�[���" Vim filetype plugin
" Language:	Sass
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<"

setlocal comments=://
setlocal commentstring=//\ %s
setlocal define=^\\s*\\%(@mixin\\\|=\\)
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
setlocal omnifunc=csscomplete#CompleteCSS
setlocal suffixesadd=.sass,.scss,.css

let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='

" vim:set sw=2:
PK�j�Z]����	�	vim80/ftplugin/perl6.vimnu�[���" Vim filetype plugin file
" Language:      Perl 6
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2013-07-21
" Contributors:  Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
" Based on ftplugin/perl.vim by Dan Sharp <dwsharp at hotmail dot com>

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=p6doc

setlocal comments=:#
setlocal commentstring=#%s

" Change the browse dialog on Win32 to show mainly Perl-related files
if has("gui_win32")
    let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
               \ "Perl Modules (*.pm)\t*.pm\n" .
               \ "Perl Documentation Files (*.pod)\t*.pod\n" .
               \ "All Files (*.*)\t*.*\n"
endif

" Provided by Ned Konz <ned at bike-nomad dot com>
"---------------------------------------------
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.pm','')
setlocal define=[^A-Za-z_]

" The following line changes a global variable but is necessary to make
" gf and similar commands work. Thanks to Andrew Pimlott for pointing out
" the problem. If this causes a " problem for you, add an
" after/ftplugin/perl6.vim file that contains
"       set isfname-=:
set isfname+=:
setlocal iskeyword=48-57,_,A-Z,a-z,:,-

" Set this once, globally.
if !exists("perlpath")
    if executable("perl6")
        try
            if &shellxquote != '"'
                let perlpath = system('perl6 -e  "@*INC.join(q/,/).say"')
            else
                let perlpath = system("perl6 -e  '@*INC.join(q/,/).say'")
            endif
            let perlpath = substitute(perlpath,',.$',',,','')
        catch /E145:/
            let perlpath = ".,,"
        endtry
    else
        " If we can't call perl to get its path, just default to using the
        " current directory and the directory of the current file.
        let perlpath = ".,,"
    endif
endif

let &l:path=perlpath
"---------------------------------------------

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk<" .
        \         " | unlet! b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z�D��vim80/ftplugin/chicken.vimnu�[���" CHICKEN-specific Vim customizations
" Last Change: 2018-03-05
" Author: Evan Hanson <evhan@foldling.org>
" Maintainer: Evan Hanson <evhan@foldling.org>
" URL: https://foldling.org/vim/ftplugin/chicken.vim
" Notes: These are supplemental settings, to be loaded after the core
" Scheme ftplugin file (ftplugin/scheme.vim). Enable it by setting
" b:is_chicken=1 and filetype=scheme.

if !exists('b:did_scheme_ftplugin')
  finish
endif

setl keywordprg=chicken-doc

setl lispwords+=and-let*
setl lispwords+=compiler-typecase
setl lispwords+=condition-case
setl lispwords+=define-compiler-syntax
setl lispwords+=define-constant
setl lispwords+=define-external
setl lispwords+=define-for-syntax
setl lispwords+=define-foreign-type
setl lispwords+=define-inline
setl lispwords+=define-location
setl lispwords+=define-record
setl lispwords+=define-record-printer
setl lispwords+=define-specialization
setl lispwords+=fluid-let
setl lispwords+=foreign-lambda*
setl lispwords+=foreign-primitive
setl lispwords+=foreign-safe-lambda*
setl lispwords+=functor
setl lispwords+=handle-exceptions
setl lispwords+=let-compiler-syntax
setl lispwords+=let-location
setl lispwords+=let-optionals
setl lispwords+=let-optionals*
setl lispwords+=letrec-values
setl lispwords+=match
setl lispwords+=match-let
setl lispwords+=match-let*
setl lispwords+=match-letrec
setl lispwords+=module
setl lispwords+=receive
setl lispwords+=set!-values
setl lispwords+=test-group

let b:undo_ftplugin = b:undo_ftplugin . ' keywordprg<'

if exists('g:loaded_matchit') && !exists('b:match_words')
  let b:match_words = '#>:<#'
  let b:undo_ftplugin = b:undo_ftplugin . ' | unlet! b:match_words'
endif
PK�j�Z�d!�5
5
vim80/ftplugin/pdf.vimnu�[���" Vim filetype plugin file
" Language:	PDF
" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
" Last Change:	2007 Dec 16

if exists("b:did_ftplugin")
    finish
endif
let b:did_ftplugin = 1

setlocal commentstring=%%s
setlocal comments=:%
let b:undo_ftplugin = "setlocal cms< com< | unlet! b:match_words"

if exists("g:loaded_matchit")
    let b:match_words = '\<\%(\d\+\s\+\d\+\s\+\)obj\>:\<endobj\>,\<stream$:\<endstream\>,\<xref\>:\<trailer\>,<<:>>'
endif

if exists("g:no_plugin_maps") || exists("g:no_pdf_maps") || v:version < 700
    finish
endif

if !exists("b:pdf_tagstack")
    let b:pdf_tagstack = []
endif

let b:undo_ftplugin .= " | silent! nunmap <buffer> <C-]> | silent! nunmap <buffer> <C-T>"
nnoremap <silent><buffer> <C-]> :call <SID>Tag()<CR>
" Inline, so the error from an empty tag stack will be simple.
nnoremap <silent><buffer> <C-T> :if len(b:pdf_tagstack) > 0 <Bar> call setpos('.',remove(b:pdf_tagstack, -1)) <Bar> else <Bar> exe "norm! \<Lt>C-T>" <Bar> endif<CR>

function! s:Tag()
    call add(b:pdf_tagstack,getpos('.'))
    if getline('.') =~ '^\d\+$' && getline(line('.')-1) == 'startxref'
	return s:dodigits(getline('.'))
    elseif getline('.') =~ '/Prev\s\+\d\+\>\%(\s\+\d\)\@!' && expand("<cword>") =~ '^\d\+$'
	return s:dodigits(expand("<cword>"))
    elseif getline('.') =~ '^\d\{10\} \d\{5\} '
	return s:dodigits(matchstr(getline('.'),'^\d\+'))
    else
	let line = getline(".")
	let lastend = 0
	let pat = '\<\d\+\s\+\d\+\s\+R\>'
	while lastend >= 0
	    let beg = match(line,'\C'.pat,lastend)
	    let end = matchend(line,'\C'.pat,lastend)
	    if beg < col(".") && end >= col(".")
		return s:doobject(matchstr(line,'\C'.pat,lastend))
	    endif
	    let lastend = end
	endwhile
	return s:notag()
    endif
endfunction

function! s:doobject(string)
    let first = matchstr(a:string,'^\s*\zs\d\+')
    let second = matchstr(a:string,'^\s*\d\+\s\+\zs\d\+')
    norm! m'
    if first != '' && second != ''
	let oldline = line('.')
	let oldcol = col('.')
	1
	if !search('^\s*'.first.'\s\+'.second.'\s\+obj\>')
	    exe oldline
	    exe 'norm! '.oldcol.'|'
	    return s:notag()
	endif
    endif
endfunction

function! s:dodigits(digits)
    let digits = 0 + substitute(a:digits,'^0*','','')
    norm! m'
    if digits <= 0
	norm! 1go
    else
	" Go one character before the destination and advance.  This method
	" lands us after a newline rather than before, if that is our target.
	exe "goto ".(digits)."|norm! 1 "
    endif
endfunction

function! s:notag()
    silent! call remove(b:pdf_tagstack,-1)
    echohl ErrorMsg
    echo "E426: tag not found"
    echohl NONE
endfunction
PK�j�Z���MMvim80/ftplugin/bst.vimnu�[���" Vim filetype plugin file
" Language:	bst
" Author:	Tim Pope <vimNOSPAM@tpope.info>
" $Id: bst.vim,v 1.1 2007/05/05 17:37:57 vimboss Exp $

if exists("b:did_ftplugin")
    finish
endif
let b:did_ftplugin = 1

setlocal commentstring=%\ %s
setlocal comments=:%
setlocal fo-=t fo+=croql

let b:undo_ftplugin = "setlocal com< cms< fo<"
PK�j�Z�'��TTvim80/ftplugin/fortran.vimnu�[���" Vim settings file
" Language:	Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
" Version:	0.50
" Last Change:	2015 Nov. 30
" Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage:	For instructions, do :help fortran-plugin from Vim
" Credits:
" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben
" Fritz, and David Barnett.

" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

let s:cposet=&cpoptions
set cpoptions&vim

" Don't do other file type settings for this buffer
let b:did_ftplugin = 1

" Determine whether this is a fixed or free format source file
" if this hasn't been done yet using the priority:
" buffer-local value
" > global value
" > file extension as in Intel ifort, gcc (gfortran), NAG, Pathscale, and Cray compilers
if !exists("b:fortran_fixed_source")
  if exists("fortran_free_source")
    " User guarantees free source form
    let b:fortran_fixed_source = 0
  elseif exists("fortran_fixed_source")
    " User guarantees fixed source form
    let b:fortran_fixed_source = 1
  elseif expand("%:e") ==? "f\<90\|95\|03\|08\>"
    " Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers
    let b:fortran_fixed_source = 0
  elseif expand("%:e") ==? "f\|f77\|for"
    " Fixed-form file extension defaults
    let b:fortran_fixed_source = 1
  else
    " Modern fortran still allows both fixed and free source form
    " Assume fixed source form unless signs of free source form
    " are detected in the first five columns of the first s:lmax lines.
    " Detection becomes more accurate and time-consuming if more lines
    " are checked. Increase the limit below if you keep lots of comments at
    " the very top of each file and you have a fast computer.
    let s:lmax = 500
    if ( s:lmax > line("$") )
      let s:lmax = line("$")
    endif
    let b:fortran_fixed_source = 1
    let s:ln=1
    while s:ln <= s:lmax
      let s:test = strpart(getline(s:ln),0,5)
      if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t'
	let b:fortran_fixed_source = 0
	break
      endif
      let s:ln = s:ln + 1
    endwhile
    unlet! s:lmax s:ln s:test
  endif
endif

" Set comments and textwidth according to source type
if (b:fortran_fixed_source == 1)
  setlocal comments=:!,:*,:C
  " Fixed format requires a textwidth of 72 for code
  setlocal tw=72
  " If you need to add "&" on continued lines so that the code is
  " compatible with both free and fixed format, then you should do so
  " in column 73 and uncomment the next line
  " setlocal tw=73
else
  setlocal comments=:!
  " Free format allows a textwidth of 132
  setlocal tw=132
endif

" Set commentstring for foldmethod=marker
setlocal cms=!%s

" Tabs are not a good idea in Fortran so the default is to expand tabs
if !exists("fortran_have_tabs")
  setlocal expandtab
endif

" Set 'formatoptions' to break text lines
setlocal fo+=t

setlocal include=^\\c#\\=\\s*include\\s\\+
setlocal suffixesadd+=.f08,.f03,.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp

" Define patterns for the matchit plugin
if !exists("b:match_words")
  let s:notend = '\%(\<end\s\+\)\@<!'
  let s:notselect = '\%(\<select\s\+\)\@<!'
  let s:notelse = '\%(\<end\s\+\|\<else\s\+\)\@<!'
  let s:notprocedure = '\%(\s\+procedure\>\)\@!'
  let b:match_ignorecase = 1
  let b:match_words =
    \ '(:),' .
    \ '\<select\s*case\>:' . s:notselect. '\<case\>:\<end\s*select\>,' .
    \ s:notelse . '\<if\s*(.\+)\s*then\>:' .
    \ '\<else\s*\%(if\s*(.\+)\s*then\)\=\>:\<end\s*if\>,'.
    \ 'do\s\+\(\d\+\):\%(^\s*\)\@<=\1\s,'.
    \ s:notend . '\<do\>:\<end\s*do\>,'.
    \ s:notelse . '\<where\>:\<elsewhere\>:\<end\s*where\>,'.
    \ s:notend . '\<type\s*[^(]:\<end\s*type\>,'.
    \ s:notend . '\<forall\>:\<end\s*forall\>,'.
    \ s:notend . '\<associate\>:\<end\s*associate\>,'.
    \ s:notend . '\<enum\>:\<end\s*enum\>,'.
    \ s:notend . '\<interface\>:\<end\s*interface\>,'.
    \ s:notend . '\<subroutine\>:\<end\s*subroutine\>,'.
    \ s:notend . '\<function\>:\<end\s*function\>,'.
    \ s:notend . '\<module\>' . s:notprocedure . ':\<end\s*module\>,'.
    \ s:notend . '\<program\>:\<end\s*program\>'
endif

" File filters for :browse e
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "Fortran Files (*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn)\t*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn\n" .
    \ "All Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc< sua<"
	\ . "| unlet! b:match_ignorecase b:match_words b:browsefilter"

let &cpoptions=s:cposet
unlet s:cposet

" vim:sw=2
PK�j�Z�+��vim80/ftplugin/framescript.vimnu�[���" Vim ftplugin file
" Language:             FrameScript
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-19

let s:cpo_save = &cpo
set cpo&vim

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl com< cms< fo< inc< | unlet! b:matchwords"

setlocal comments=s1:/*,mb:*,ex:*/,:// commentstring=/*\ %s\ */
setlocal formatoptions-=t formatoptions+=croql
setlocal include=^\\s*<#Include

if exists("loaded_matchit")
  let s:not_end = '\c\%(\<End\)\@<!'
  let b:match_words =
        \ s:not_end . '\<If\>:\c\<ElseIf\>:\c\<Else\>:\c\<EndIf\>,' .
        \ s:not_end . '\<Loop\>:\c\<EndLoop\>' .
        \ s:not_end . '\<Sub\>:\c\<EndSub\>'
  unlet s:not_end
endif

let &cpo = s:cpo_save 
unlet s:cpo_save
PK�j�Z:ϹÛ�vim80/ftplugin/pascal.vimnu�[���" Vim filetype plugin file
" Language:	pascal
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 11 Apr 2011
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

if exists("loaded_matchit")
    let b:match_ignorecase = 1 " (pascal is case-insensitive)

    let b:match_words = '\<\%(begin\|case\|record\|object\|try\)\>'
    let b:match_words .= ':\<^\s*\%(except\|finally\)\>:\<end\>'
    let b:match_words .= ',\<repeat\>:\<until\>'
    let b:match_words .= ',\<if\>:\<else\>'
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:match_words"
PK�j�Z;�`�vim80/ftplugin/context.vimnu�[���" Vim filetype plugin file
" Language:           ConTeXt typesetting engine
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision:    2016 Oct 30

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

if !exists('current_compiler')
  compiler context
endif

let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
      \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"

setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
  setlocal omnifunc=contextcomplete#Complete
  let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+'
  let g:omni_syntax_group_exclude_context = 'mfTodoComment'
endif

let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
        \ .     'def\|\\font\|\\\%(future\)\=let'
        \ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
        \ .     '\|fam\|insert\|if\)'

let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'

setlocal suffixesadd=.tex

if exists("loaded_matchit")
  let b:match_ignorecase = 0
  let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
  let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
        \ '\\start\(\a\+\):\\stop\1'
endif

let s:context_regex = {
      \ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
      \ 'endsection'   : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
      \ 'beginblock'   : '\\\%(start\|setup\|define\)',
      \ 'endblock'     : '\\\%(stop\|setup\|define\)'
      \ }

function! s:move_around(count, what, flags, visual)
  if a:visual
    exe "normal! gv"
  endif
  call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark
  call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
endfunction

" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true)  <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:true)  <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:true)  <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:true)  <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:true)  <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:true)  <CR>

" Other useful mappings
if get(g:, 'context_mappings', 1)
  let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'

  fun! s:tp()
    call cursor(search(s:tp_regex, 'bcW') + 1, 1)
    normal! V
    call cursor(search(s:tp_regex, 'W') - 1, 1)
  endf

  " Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
  onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
  " Select TeX paragraph
  vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>

  " $...$ text object
  onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
  onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
  vnoremap <buffer> i$ T$ot$
  vnoremap <buffer> a$ F$of$
endif

" Commands for asynchronous typesetting
command! -buffer -nargs=? -complete=file ConTeXt          call context#typeset(<q-args>)
command!         -nargs=0                ConTeXtJobStatus call context#job_status()
command!         -nargs=0                ConTeXtStopJobs  call context#stop_jobs()

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z� ����vim80/ftplugin/aap.vimnu�[���" Vim filetype plugin file
" Language:	Aap recipe
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2013 Apr 05

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Reset 'formatoptions', 'comments' and 'expandtab' to undo this plugin.
let b:undo_ftplugin = "setl fo< com< et<"

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Set 'comments' to format dashed lists in comments.
setlocal comments=s:#\ -,m:#\ \ ,e:#,n:#,fb:-

" Expand tabs to spaces to avoid trouble.
setlocal expandtab
PK�j�Z�%%vim80/ftplugin/gdb.vimnu�[���" Vim filetype plugin file
" Language:	gdb
" Maintainer:	Michaël Peeters <NOSPAMm.vim@noekeon.org>
" Last Changed: 26 Oct 2017

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

setlocal commentstring=#%s

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal cms<"
PK�j�Z�����vim80/ftplugin/xhtml.vimnu�[���" Vim filetype plugin file
" Language:	xhtml
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
	    \	     "XML Files (*.xml)\t*.xml\n" .
	    \	     "All Files (*.*)\t*.*\n"
let s:match_words = ""

runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
unlet b:did_ftplugin

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
    unlet b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
    unlet b:browsefilter
endif
if exists("b:match_words")
    let s:match_words = b:match_words
    unlet b:match_words
endif

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
let b:did_ftplugin = 1

" Combine the new set of values with those previously included.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter . s:browsefilter
endif
if exists("b:match_words")
    let s:match_words = b:match_words . "," . s:match_words
endif

" Load the combined list of match_words for matchit.vim
if exists("loaded_matchit")
    let b:match_words = s:match_words
endif

" Change the :browse e filter to primarily show tcsh-related files.
if has("gui_win32")
    let  b:browsefilter="XHTML files (*.xhtml, *.xhtm)\t*.xhtml;*.xhtm\n" . s:browsefilter
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter b:match_words | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z�#X��vim80/ftplugin/gprof.vimnu�[���" Language:    gprof
" Maintainer:  Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2013 Jun 09

" When cursor is on one line of the gprof call graph,
" calling this function jumps to this function in the call graph.
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin=1

fun! <SID>GprofJumpToFunctionIndex()
  let l:line = getline('.')
  if l:line =~ '[\d\+\]$'
    " We're in a line in the call graph.
    norm! $y%
    call search('^' . escape(@", '[]'), 'sw')
    norm! zz
  elseif l:line =~ '^\(\s\+[0-9\.]\+\)\{3}\s\+'
    " We're in line in the flat profile.
    norm! 55|eby$
    call search('^\[\d\+\].*\d\s\+' .  escape(@", '[]*.') . '\>', 'sW')
    norm! zz
  endif
endfun

" Pressing <C-]> on a line in the gprof flat profile or in
" the call graph, jumps to the corresponding function inside
" the flat profile.
map <buffer> <silent> <C-]> :call <SID>GprofJumpToFunctionIndex()<CR>

" vim:sw=2 fdm=indent
PK�j�Z΍a���vim80/ftplugin/xdefaults.vimnu�[���" Vim filetype plugin file
" Language:             X resources files like ~/.Xdefaults (xrdb)
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=s1:/*,mb:*,ex:*/,:! commentstring& inc&
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�˪���vim80/ftplugin/conf.vimnu�[���" Vim filetype plugin file
" Language:             generic configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��ĵZZvim80/ftplugin/ocaml.vimnu�[���" Language:    OCaml
" Maintainer:  David Baelde        <firstname.name@ens-lyon.org>
"              Mike Leary          <leary@nwlink.com>
"              Markus Mottl        <markus.mottl@gmail.com>
"              Pierre Vittet       <pierre-vittet@pvittet.com>
"              Stefano Zacchiroli  <zack@bononia.it>
"              Vincent Aravantinos <firstname.name@imag.fr>
" URL:         http://www.ocaml.info/vim/ftplugin/ocaml.vim
" Last Change:
"              2013 Jul 26 - load default compiler settings (MM)
"              2013 Jul 24 - removed superfluous efm-setting (MM)
"              2013 Jul 22 - applied fixes supplied by Hirotaka Hamada (MM)
"              2013 Mar 15 - Improved error format (MM)

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin=1

" Use standard compiler settings unless user wants otherwise
if !exists("current_compiler")
  :compiler ocaml
endif

" some macro
if exists('*fnameescape')
  function! s:Fnameescape(s)
    return fnameescape(a:s)
  endfun
else
  function! s:Fnameescape(s)
    return escape(a:s," \t\n*?[{`$\\%#'\"|!<")
  endfun
endif

" Error handling -- helps moving where the compiler wants you to go
let s:cposet=&cpoptions
set cpo&vim

" Add mappings, unless the user didn't want this.
if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
  " (un)commenting
  if !hasmapto('<Plug>Comment')
    nmap <buffer> <LocalLeader>c <Plug>LUncomOn
    xmap <buffer> <LocalLeader>c <Plug>BUncomOn
    nmap <buffer> <LocalLeader>C <Plug>LUncomOff
    xmap <buffer> <LocalLeader>C <Plug>BUncomOff
  endif

  nnoremap <buffer> <Plug>LUncomOn gI(* <End> *)<ESC>
  nnoremap <buffer> <Plug>LUncomOff :s/^(\* \(.*\) \*)/\1/<CR>:noh<CR>
  xnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i(*<ESC>`>o<ESC>0i*)<ESC>`<
  xnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<

  nmap <buffer> <LocalLeader>s <Plug>OCamlSwitchEdit
  nmap <buffer> <LocalLeader>S <Plug>OCamlSwitchNewWin

  nmap <buffer> <LocalLeader>t <Plug>OCamlPrintType
  xmap <buffer> <LocalLeader>t <Plug>OCamlPrintType
endif

" Let % jump between structure elements (due to Issac Trotts)
let b:mw = ''
let b:mw = b:mw . ',\<let\>:\<and\>:\(\<in\>\|;;\)'
let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>,'
let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
let b:match_words = b:mw

let b:match_ignorecase=0

" switching between interfaces (.mli) and implementations (.ml)
if !exists("g:did_ocaml_switch")
  let g:did_ocaml_switch = 1
  nnoremap <Plug>OCamlSwitchEdit :<C-u>call OCaml_switch(0)<CR>
  nnoremap <Plug>OCamlSwitchNewWin :<C-u>call OCaml_switch(1)<CR>
  fun OCaml_switch(newwin)
    if (match(bufname(""), "\\.mli$") >= 0)
      let fname = s:Fnameescape(substitute(bufname(""), "\\.mli$", ".ml", ""))
      if (a:newwin == 1)
        exec "new " . fname
      else
        exec "arge " . fname
      endif
    elseif (match(bufname(""), "\\.ml$") >= 0)
      let fname = s:Fnameescape(bufname("")) . "i"
      if (a:newwin == 1)
        exec "new " . fname
      else
        exec "arge " . fname
      endif
    endif
  endfun
endif

" Folding support

" Get the modeline because folding depends on indentation
let s:s = line2byte(line('.'))+col('.')-1
if search('^\s*(\*:o\?caml:')
  let s:modeline = getline(".")
else
  let s:modeline = ""
endif
if s:s > 0
  exe 'goto' s:s
endif

" Get the indentation params
let s:m = matchstr(s:modeline,'default\s*=\s*\d\+')
if s:m != ""
  let s:idef = matchstr(s:m,'\d\+')
elseif exists("g:omlet_indent")
  let s:idef = g:omlet_indent
else
  let s:idef = 2
endif
let s:m = matchstr(s:modeline,'struct\s*=\s*\d\+')
if s:m != ""
  let s:i = matchstr(s:m,'\d\+')
elseif exists("g:omlet_indent_struct")
  let s:i = g:omlet_indent_struct
else
  let s:i = s:idef
endif

" Set the folding method
if exists("g:ocaml_folding")
  setlocal foldmethod=expr
  setlocal foldexpr=OMLetFoldLevel(v:lnum)
endif

let b:undo_ftplugin = "setlocal efm< foldmethod< foldexpr<"
	\ . "| unlet! b:mw b:match_words b:match_ignorecase"


" - Only definitions below, executed once -------------------------------------

if exists("*OMLetFoldLevel")
  finish
endif

function s:topindent(lnum)
  let l = a:lnum
  while l > 0
    if getline(l) =~ '\s*\%(\<struct\>\|\<sig\>\|\<object\>\)'
      return indent(l)
    endif
    let l = l-1
  endwhile
  return -s:i
endfunction

function OMLetFoldLevel(l)

  " This is for not merging blank lines around folds to them
  if getline(a:l) !~ '\S'
    return -1
  endif

  " We start folds for modules, classes, and every toplevel definition
  if getline(a:l) =~ '^\s*\%(\<val\>\|\<module\>\|\<class\>\|\<type\>\|\<method\>\|\<initializer\>\|\<inherit\>\|\<exception\>\|\<external\>\)'
    exe 'return ">' (indent(a:l)/s:i)+1 '"'
  endif

  " Toplevel let are detected thanks to the indentation
  if getline(a:l) =~ '^\s*let\>' && indent(a:l) == s:i+s:topindent(a:l)
    exe 'return ">' (indent(a:l)/s:i)+1 '"'
  endif

  " We close fold on end which are associated to struct, sig or object.
  " We use syntax information to do that.
  if getline(a:l) =~ '^\s*end\>' && synIDattr(synID(a:l, indent(a:l)+1, 0), "name") != "ocamlKeyword"
    return (indent(a:l)/s:i)+1
  endif

  " Folds end on ;;
  if getline(a:l) =~ '^\s*;;'
    exe 'return "<' (indent(a:l)/s:i)+1 '"'
  endif

  " Comments around folds aren't merged to them.
  if synIDattr(synID(a:l, indent(a:l)+1, 0), "name") == "ocamlComment"
    return -1
  endif

  return '='
endfunction

" Vim support for OCaml .annot files
"
" Last Change: 2007 Jul 17
" Maintainer:  Vincent Aravantinos <vincent.aravantinos@gmail.com>
" License:     public domain
"
" Originally inspired by 'ocaml-dtypes.vim' by Stefano Zacchiroli.
" The source code is quite radically different for we not use python anymore.
" However this plugin should have the exact same behaviour, that's why the
" following lines are the quite exact copy of Stefano's original plugin :
"
" <<
" Executing Ocaml_print_type(<mode>) function will display in the Vim bottom
" line(s) the type of an ocaml value getting it from the corresponding .annot
" file (if any).  If Vim is in visual mode, <mode> should be "visual" and the
" selected ocaml value correspond to the highlighted text, otherwise (<mode>
" can be anything else) it corresponds to the literal found at the current
" cursor position.
"
" Typing '<LocalLeader>t' (LocalLeader defaults to '\', see :h LocalLeader)
" will cause " Ocaml_print_type function to be invoked with the right
" argument depending on the current mode (visual or not).
" >>
"
" If you find something not matching this behaviour, please signal it.
"
" Differences are:
"   - no need for python support
"     + plus : more portable
"     + minus: no more lazy parsing, it looks very fast however
"
"   - ocamlbuild support, ie.
"     + the plugin finds the _build directory and looks for the
"       corresponding file inside;
"     + if the user decides to change the name of the _build directory thanks
"       to the '-build-dir' option of ocamlbuild, the plugin will manage in
"       most cases to find it out (most cases = if the source file has a unique
"       name among your whole project);
"     + if ocamlbuild is not used, the usual behaviour holds; ie. the .annot
"       file should be in the same directory as the source file;
"     + for vim plugin programmers:
"       the variable 'b:_build_dir' contains the inferred path to the build
"       directory, even if this one is not named '_build'.
"
" Bonus :
"   - latin1 accents are handled
"   - lists are handled, even on multiple lines, you don't need the visual mode
"     (the cursor must be on the first bracket)
"   - parenthesized expressions, arrays, and structures (ie. '(...)', '[|...|]',
"     and '{...}') are handled the same way

  " Copied from Stefano's original plugin :
  " <<
  "      .annot ocaml file representation
  "
  "      File format (copied verbatim from caml-types.el)
  "
  "      file ::= block *
  "      block ::= position <SP> position <LF> annotation *
  "      position ::= filename <SP> num <SP> num <SP> num
  "      annotation ::= keyword open-paren <LF> <SP> <SP> data <LF> close-paren
  "
  "      <SP> is a space character (ASCII 0x20)
  "      <LF> is a line-feed character (ASCII 0x0A)
  "      num is a sequence of decimal digits
  "      filename is a string with the lexical conventions of O'Caml
  "      open-paren is an open parenthesis (ASCII 0x28)
  "      close-paren is a closed parenthesis (ASCII 0x29)
  "      data is any sequence of characters where <LF> is always followed by
  "           at least two space characters.
  "
  "      - in each block, the two positions are respectively the start and the
  "        end of the range described by the block.
  "      - in a position, the filename is the name of the file, the first num
  "        is the line number, the second num is the offset of the beginning
  "        of the line, the third num is the offset of the position itself.
  "      - the char number within the line is the difference between the third
  "        and second nums.
  "
  "      For the moment, the only possible keyword is \"type\"."
  " >>


" 1. Finding the annotation file even if we use ocamlbuild

    " In:  two strings representing paths
    " Out: one string representing the common prefix between the two paths
  function! s:Find_common_path (p1,p2)
    let temp = a:p2
    while matchstr(a:p1,temp) == ''
      let temp = substitute(temp,'/[^/]*$','','')
    endwhile
    return temp
  endfun

    " After call:
    "
    "  Following information have been put in s:annot_file_list, using
    "  annot_file_name name as key:
    " - annot_file_path :
    "                       path to the .annot file corresponding to the
    "                       source file (dealing with ocamlbuild stuff)
    " - _build_path:
    "                       path to the build directory even if this one is
    "                       not named '_build'
    " - date_of_last annot:
    "                       Set to 0 until we load the file. It contains the
    "                       date at which the file has been loaded.
  function! s:Locate_annotation()
    let annot_file_name = s:Fnameescape(expand('%:t:r')).'.annot'
    if !exists ("s:annot_file_list[annot_file_name]")
      silent exe 'cd' s:Fnameescape(expand('%:p:h'))
      " 1st case : the annot file is in the same directory as the buffer (no ocamlbuild)
      let annot_file_path = findfile(annot_file_name,'.')
      if annot_file_path != ''
        let annot_file_path = getcwd().'/'.annot_file_path
        let _build_path = ''
      else
        " 2nd case : the buffer and the _build directory are in the same directory
        "      ..
        "     /  \
        "    /    \
        " _build  .ml
        "
        let _build_path = finddir('_build','.')
        if _build_path != ''
          let _build_path = getcwd().'/'._build_path
          let annot_file_path           = findfile(annot_file_name,'_build')
          if annot_file_path != ''
            let annot_file_path = getcwd().'/'.annot_file_path
          endif
        else
          " 3rd case : the _build directory is in a directory higher in the file hierarchy
          "            (it can't be deeper by ocamlbuild requirements)
          "      ..
          "     /  \
          "    /    \
          " _build  ...
          "           \
          "            \
          "           .ml
          "
          let _build_path = finddir('_build',';')
          if _build_path != ''
            let project_path                = substitute(_build_path,'/_build$','','')
            let path_relative_to_project    = s:Fnameescape(substitute(expand('%:p:h'),project_path.'/','',''))
            let annot_file_path           = findfile(annot_file_name,project_path.'/_build/'.path_relative_to_project)
          else
            let annot_file_path = findfile(annot_file_name,'**')
            "4th case : what if the user decided to change the name of the _build directory ?
            "           -> we relax the constraints, it should work in most cases
            if annot_file_path != ''
              " 4a. we suppose the renamed _build directory is in the current directory
              let _build_path = matchstr(annot_file_path,'^[^/]*')
              if annot_file_path != ''
                let annot_file_path = getcwd().'/'.annot_file_path
                let _build_path     = getcwd().'/'._build_path
              endif
            else
              let annot_file_name = ''
              "(Pierre Vittet: I have commented 4b because this was chrashing
              "my vim (it produced infinite loop))
              "
              " 4b. anarchy : the renamed _build directory may be higher in the hierarchy
              " this will work if the file for which we are looking annotations has a unique name in the whole project
              " if this is not the case, it may still work, but no warranty here
              "let annot_file_path = findfile(annot_file_name,'**;')
              "let project_path      = s:Find_common_path(annot_file_path,expand('%:p:h'))
              "let _build_path       = matchstr(annot_file_path,project_path.'/[^/]*')
            endif
          endif
        endif
      endif

      if annot_file_path == ''
        throw 'E484: no annotation file found'
      endif

      silent exe 'cd' '-'
      let s:annot_file_list[annot_file_name]= [annot_file_path, _build_path, 0]
    endif
  endfun

  " This variable contain a dictionnary of list. Each element of the dictionnary
  " represent an annotation system. An annotation system is a list with :
  " - annotation file name as it's key
  " - annotation file path as first element of the contained list
  " - build path as second element of the contained list
  " - annot_file_last_mod (contain the date of .annot file) as third element
  let s:annot_file_list = {}

" 2. Finding the type information in the annotation file

  " a. The annotation file is opened in vim as a buffer that
  " should be (almost) invisible to the user.

      " After call:
      " The current buffer is now the one containing the .annot file.
      " We manage to keep all this hidden to the user's eye.
    function! s:Enter_annotation_buffer(annot_file_path)
      let s:current_pos = getpos('.')
      let s:current_hidden = &l:hidden
      set hidden
      let s:current_buf = bufname('%')
      if bufloaded(a:annot_file_path)
        silent exe 'keepj keepalt' 'buffer' s:Fnameescape(a:annot_file_path)
      else
        silent exe 'keepj keepalt' 'view' s:Fnameescape(a:annot_file_path)
      endif
      call setpos(".", [0, 0 , 0 , 0])
    endfun

      " After call:
      "   The original buffer has been restored in the exact same state as before.
    function! s:Exit_annotation_buffer()
      silent exe 'keepj keepalt' 'buffer' s:Fnameescape(s:current_buf)
      let &l:hidden = s:current_hidden
      call setpos('.',s:current_pos)
    endfun

      " After call:
      "   The annot file is loaded and assigned to a buffer.
      "   This also handles the modification date of the .annot file, eg. after a
      "   compilation (return an updated annot_file_list).
    function! s:Load_annotation(annot_file_name)
      let annot = s:annot_file_list[a:annot_file_name]
      let annot_file_path = annot[0]
      let annot_file_last_mod = 0
      if exists("annot[2]")
        let annot_file_last_mod = annot[2]
      endif
      if bufloaded(annot_file_path) && annot_file_last_mod < getftime(annot_file_path)
        " if there is a more recent file
        let nr = bufnr(annot_file_path)
        silent exe 'keepj keepalt' 'bunload' nr
      endif
      if !bufloaded(annot_file_path)
        call s:Enter_annotation_buffer(annot_file_path)
        setlocal nobuflisted
        setlocal bufhidden=hide
        setlocal noswapfile
        setlocal buftype=nowrite
        call s:Exit_annotation_buffer()
        let annot[2] = getftime(annot_file_path)
        " List updated with the new date
        let s:annot_file_list[a:annot_file_name] = annot
      endif
    endfun

  "b. 'search' and 'match' work to find the type information

      "In:  - lin1,col1: postion of expression first char
      "     - lin2,col2: postion of expression last char
      "Out: - the pattern to be looked for to find the block
      " Must be called in the source buffer (use of line2byte)
    function! s:Block_pattern(lin1,lin2,col1,col2)
      let start_num1 = a:lin1
      let start_num2 = line2byte(a:lin1) - 1
      let start_num3 = start_num2 + a:col1
      let path       = '"\(\\"\|[^"]\)\+"'
      let start_pos  = path.' '.start_num1.' '.start_num2.' '.start_num3
      let end_num1   = a:lin2
      let end_num2   = line2byte(a:lin2) - 1
      let end_num3   = end_num2 + a:col2
      let end_pos    = path.' '.end_num1.' '.end_num2.' '.end_num3
      return '^'.start_pos.' '.end_pos."$"
      " rq: the '^' here is not totally correct regarding the annot file "grammar"
      " but currently the annotation file respects this, and it's a little bit faster with the '^';
      " can be removed safely.
    endfun

      "In: (the cursor position should be at the start of an annotation)
      "Out: the type information
      " Must be called in the annotation buffer (use of search)
    function! s:Match_data()
      " rq: idem as previously, in the following, the '^' at start of patterns is not necessary
      keepj while search('^type($','ce',line(".")) == 0
        keepj if search('^.\{-}($','e') == 0
          throw "no_annotation"
        endif
        keepj if searchpair('(','',')') == 0
          throw "malformed_annot_file"
        endif
      endwhile
      let begin = line(".") + 1
      keepj if searchpair('(','',')') == 0
        throw "malformed_annot_file"
      endif
      let end = line(".") - 1
      return join(getline(begin,end),"\n")
    endfun

      "In:  the pattern to look for in order to match the block
      "Out: the type information (calls s:Match_data)
      " Should be called in the annotation buffer
    function! s:Extract_type_data(block_pattern, annot_file_name)
      let annot_file_path = s:annot_file_list[a:annot_file_name][0]
      call s:Enter_annotation_buffer(annot_file_path)
      try
        if search(a:block_pattern,'e') == 0
          throw "no_annotation"
        endif
        call cursor(line(".") + 1,1)
        let annotation = s:Match_data()
      finally
        call s:Exit_annotation_buffer()
      endtry
      return annotation
    endfun

  "c. link this stuff with what the user wants
  " ie. get the expression selected/under the cursor

    let s:ocaml_word_char = '\w|[�-�]|'''

      "In:  the current mode (eg. "visual", "normal", etc.)
      "Out: the borders of the expression we are looking for the type
    function! s:Match_borders(mode)
      if a:mode == "visual"
        let cur = getpos(".")
        normal `<
        let col1 = col(".")
        let lin1 = line(".")
        normal `>
        let col2 = col(".")
        let lin2 = line(".")
        call cursor(cur[1],cur[2])
        return [lin1,lin2,col1-1,col2]
      else
        let cursor_line = line(".")
        let cursor_col  = col(".")
        let line = getline('.')
        if line[cursor_col-1:cursor_col] == '[|'
          let [lin2,col2] = searchpairpos('\[|','','|\]','n')
          return [cursor_line,lin2,cursor_col-1,col2+1]
        elseif     line[cursor_col-1] == '['
          let [lin2,col2] = searchpairpos('\[','','\]','n')
          return [cursor_line,lin2,cursor_col-1,col2]
        elseif line[cursor_col-1] == '('
          let [lin2,col2] = searchpairpos('(','',')','n')
          return [cursor_line,lin2,cursor_col-1,col2]
        elseif line[cursor_col-1] == '{'
          let [lin2,col2] = searchpairpos('{','','}','n')
          return [cursor_line,lin2,cursor_col-1,col2]
        else
          let [lin1,col1] = searchpos('\v%('.s:ocaml_word_char.'|\.)*','ncb')
          let [lin2,col2] = searchpos('\v%('.s:ocaml_word_char.'|\.)*','nce')
          if col1 == 0 || col2 == 0
            throw "no_expression"
          endif
          return [cursor_line,cursor_line,col1-1,col2]
        endif
      endif
    endfun

      "In:  the current mode (eg. "visual", "normal", etc.)
      "Out: the type information (calls s:Extract_type_data)
    function! s:Get_type(mode, annot_file_name)
      let [lin1,lin2,col1,col2] = s:Match_borders(a:mode)
      return s:Extract_type_data(s:Block_pattern(lin1,lin2,col1,col2), a:annot_file_name)
    endfun

      "In: A string destined to be printed in the 'echo buffer'. It has line
      "break and 2 space at each line beginning.
      "Out: A string destined to be yanked, without space and double space.
    function s:unformat_ocaml_type(res)
      "Remove end of line.
      let res = substitute (a:res, "\n", "", "g" )
      "remove double space
      let res =substitute(res , "  ", " ", "g")
      "remove space at begining of string.
      let res = substitute(res, "^ *", "", "g")
      return res
    endfunction

  "d. main
      "In:         the current mode (eg. "visual", "normal", etc.)
      "After call: the type information is displayed
    if !exists("*Ocaml_get_type")
      function Ocaml_get_type(mode)
        let annot_file_name = s:Fnameescape(expand('%:t:r')).'.annot'
        call s:Locate_annotation()
        call s:Load_annotation(annot_file_name)
        let res = s:Get_type(a:mode, annot_file_name)
        " Copy result in the unnamed buffer
        let @" = s:unformat_ocaml_type(res)
        return res
      endfun
    endif

    if !exists("*Ocaml_get_type_or_not")
      function Ocaml_get_type_or_not(mode)
        let t=reltime()
        try
          let res = Ocaml_get_type(a:mode)
          return res
        catch
          return ""
        endtry
      endfun
    endif

    if !exists("*Ocaml_print_type")
      function Ocaml_print_type(mode)
        if expand("%:e") == "mli"
          echohl ErrorMsg | echo "No annotations for interface (.mli) files" | echohl None
          return
        endif
        try
          echo Ocaml_get_type(a:mode)
        catch /E484:/
          echohl ErrorMsg | echo "No type annotations (.annot) file found" | echohl None
        catch /no_expression/
          echohl ErrorMsg | echo "No expression found under the cursor" | echohl None
        catch /no_annotation/
          echohl ErrorMsg | echo "No type annotation found for the given text" | echohl None
        catch /malformed_annot_file/
          echohl ErrorMsg | echo "Malformed .annot file" | echohl None
        endtry
      endfun
    endif

" Maps
  nnoremap <silent> <Plug>OCamlPrintType :<C-U>call Ocaml_print_type("normal")<CR>
  xnoremap <silent> <Plug>OCamlPrintType :<C-U>call Ocaml_print_type("visual")<CR>`<

let &cpoptions=s:cposet
unlet s:cposet

" vim:sw=2 fdm=indent
PK�j�ZA��i��vim80/ftplugin/gitsendemail.vimnu�[���" Vim filetype plugin
" Language:	git send-email message
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2009 Dec 24

runtime! ftplugin/mail.vim
PK�j�Z�d���vim80/ftplugin/udevperm.vimnu�[���" Vim filetype plugin file
" Language:             udev(8) permissions file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�k#��vim80/ftplugin/matlab.vimnu�[���" Vim filetype plugin file
" Language:	matlab
" Maintainer:	Jake Wasserman <jwasserman at gmail dot com>
" Last Changed: 2014 Dec 30

" Contributors:
" Charles Campbell

if exists("b:did_ftplugin")
	finish
endif
let b:did_ftplugin = 1

let s:save_cpo = &cpo
set cpo-=C

if exists("loaded_matchit")
 let s:conditionalEnd = '\%(([^()]*\)\@!\<end\>\%([^()]*)\)\@!'
 let b:match_words=
   \ '\<\%(if\|switch\|for\|while\)\>:\<\%(elseif\|case\|break\|continue\|else\|otherwise\)\>:'.s:conditionalEnd.','.
   \ '\<function\>:\<return\>:\<endfunction\>'
 unlet s:conditionalEnd
endif

setlocal suffixesadd=.m
setlocal suffixes+=.asv

let b:undo_ftplugin = "setlocal suffixesadd< suffixes< "
	\ . "| unlet! b:match_words"

let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z�q���vim80/ftplugin/java.vimnu�[���" Vim filetype plugin file
" Language:	Java
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Change:  2012 Mar 11
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" For filename completion, prefer the .java extension over the .class
" extension.
set suffixes+=.class

" Enable gf on import statements.  Convert . in the package
" name to / and append .java to the name, then search the path.
setlocal includeexpr=substitute(v:fname,'\\.','/','g')
setlocal suffixesadd=.java
if exists("g:ftplugin_java_source_path")
    let &l:path=g:ftplugin_java_source_path . ',' . &l:path
endif

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal formatoptions-=t formatoptions+=croql

" Set 'comments' to format dashed lists in comments. Behaves just like C.
setlocal comments& comments^=sO:*\ -,mO:*\ \ ,exO:*/

setlocal commentstring=//%s

" Change the :browse e filter to primarily show Java-related files.
if has("gui_win32")
    let  b:browsefilter="Java Files (*.java)\t*.java\n" .
		\	"Properties Files (*.prop*)\t*.prop*\n" .
		\	"Manifest Files (*.mf)\t*.mf\n" .
		\	"All Files (*.*)\t*.*\n"
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal suffixes< suffixesadd<" .
		\     " formatoptions< comments< commentstring< path< includeexpr<" .
		\     " | unlet! b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z��Y�vim80/ftplugin/docbk.vimnu�[���" Vim filetype plugin file
" Language:	    DocBook
" Maintainer:	    Nikolai Weibull <now@bitwi.se>
" Latest Revision:  2012-04-25

if exists('b:did_ftplugin')
  finish
endif

if !exists('b:docbk_type')
  if expand('%:e') == 'sgml'
    let b:docbk_type = 'sgml'
  else
    let b:docbk_type = 'xml'
  endif
endif

if b:docbk_type == 'sgml'
  runtime! ftplugin/sgml.vim ftplugin/sgml_*.vim ftplugin/sgml/*.vim
else
  runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
endif

let b:undo_ftplugin = "unlet! b:docbk_type"
PK�j�Z��%

vim80/ftplugin/zimbu.vimnu�[���" Vim filetype plugin file
" Language:	Zimbu
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Dec 05

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Using line continuation here.
let s:cpo_save = &cpo
set cpo-=C

let b:undo_ftplugin = "setl fo< com< ofu< efm< tw< et< sts< sw< | if has('vms') | setl isk< | endif"

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Set completion with CTRL-X CTRL-O to autoloaded function.
if exists('&ofu')
  setlocal ofu=ccomplete#Complete
endif

" Set 'comments' to format dashed lists in comments.
" And to keep Zudocu comment characters.
setlocal comments=sO:#\ -,mO:#\ \ ,:#=,:#-,:#%,:#

setlocal errorformat^=%f\ line\ %l\ col\ %c:\ %m,ERROR:\ %m

" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments.
let b:match_words = '\(^\s*\)\@<=\(MODULE\|CLASS\|INTERFACE\|BITS\|ENUM\|SHARED\|FUNC\|REPLACE\|DEFINE\|PROC\|EQUAL\|MAIN\|IF\|GENERATE_IF\|WHILE\|REPEAT\|WITH\|DO\|FOR\|SWITCH\|TRY\)\>\|{\s*$:\(^\s*\)\@<=\(ELSE\|ELSEIF\|GENERATE_ELSE\|GENERATE_ELSEIF\|CATCH\|FINALLY\)\>:\(^\s*\)\@<=\(}\|\<UNTIL\>\)'

let b:match_skip = 's:comment\|string\|zimbuchar'

setlocal tw=78
setlocal et sts=2 sw=2

" Does replace when a dot, space or closing brace is typed.
func! GCUpperDot(what)
  if v:char != ' ' && v:char != "\r" && v:char != "\x1b" && v:char != '.' && v:char != ')' && v:char != '}' && v:char != ','
    " no space or dot after the typed text
    let g:got_char = v:char
    return a:what
  endif
  return GCUpperCommon(a:what)
endfunc

" Does not replace when a dot is typed.
func! GCUpper(what)
  if v:char != ' ' && v:char != "\r" && v:char != "\x1b" && v:char != ')' && v:char != ','
    " no space or other "terminating" character after the typed text
    let g:got_char = v:char
    return a:what
  endif
  return GCUpperCommon(a:what)
endfunc

" Only replaces when a space is typed.
func! GCUpperSpace(what)
  if v:char != ' '
    " no space after the typed text
    let g:got_char = v:char
    return a:what
  endif
  return GCUpperCommon(a:what)
endfunc

func! GCUpperCommon(what)
  let col = col(".") - strlen(a:what)
  if col > 1 && getline('.')[col - 2] != ' '
    " no space before the typed text
    let g:got_char = 999
    return a:what
  endif
  let synName = synIDattr(synID(line("."), col(".") - 2, 1), "name")
  if synName =~ 'Comment\|String\|zimbuCregion\|\<c'
    " inside a comment or C code
    let g:got_char = 777
    return a:what
  endif
    let g:got_char = 1111
  return toupper(a:what)
endfunc

iabbr <buffer> <expr> alias GCUpperSpace("alias")
iabbr <buffer> <expr> arg GCUpperDot("arg")
iabbr <buffer> <expr> break GCUpper("break")
iabbr <buffer> <expr> case GCUpperSpace("case")
iabbr <buffer> <expr> catch GCUpperSpace("catch")
iabbr <buffer> <expr> check GCUpperDot("check")
iabbr <buffer> <expr> class GCUpperSpace("class")
iabbr <buffer> <expr> interface GCUpperSpace("interface")
iabbr <buffer> <expr> implements GCUpperSpace("implements")
iabbr <buffer> <expr> shared GCUpperSpace("shared")
iabbr <buffer> <expr> continue GCUpper("continue")
iabbr <buffer> <expr> default GCUpper("default")
iabbr <buffer> <expr> extends GCUpper("extends")
iabbr <buffer> <expr> do GCUpper("do")
iabbr <buffer> <expr> else GCUpper("else")
iabbr <buffer> <expr> elseif GCUpperSpace("elseif")
iabbr <buffer> <expr> enum GCUpperSpace("enum")
iabbr <buffer> <expr> exit GCUpper("exit")
iabbr <buffer> <expr> false GCUpper("false")
iabbr <buffer> <expr> fail GCUpper("fail")
iabbr <buffer> <expr> finally GCUpper("finally")
iabbr <buffer> <expr> for GCUpperSpace("for")
iabbr <buffer> <expr> func GCUpperSpace("func")
iabbr <buffer> <expr> if GCUpperSpace("if")
iabbr <buffer> <expr> import GCUpperSpace("import")
iabbr <buffer> <expr> in GCUpperSpace("in")
iabbr <buffer> <expr> io GCUpperDot("io")
iabbr <buffer> <expr> main GCUpper("main")
iabbr <buffer> <expr> module GCUpperSpace("module")
iabbr <buffer> <expr> new GCUpper("new")
iabbr <buffer> <expr> nil GCUpper("nil")
iabbr <buffer> <expr> ok GCUpper("ok")
iabbr <buffer> <expr> proc GCUpperSpace("proc")
iabbr <buffer> <expr> proceed GCUpper("proceed")
iabbr <buffer> <expr> return GCUpper("return")
iabbr <buffer> <expr> step GCUpperSpace("step")
iabbr <buffer> <expr> switch GCUpperSpace("switch")
iabbr <buffer> <expr> sys GCUpperDot("sys")
iabbr <buffer> <expr> this GCUpperDot("this")
iabbr <buffer> <expr> throw GCUpperSpace("throw")
iabbr <buffer> <expr> try GCUpper("try")
iabbr <buffer> <expr> to GCUpperSpace("to")
iabbr <buffer> <expr> true GCUpper("true")
iabbr <buffer> <expr> until GCUpperSpace("until")
iabbr <buffer> <expr> while GCUpperSpace("while")
iabbr <buffer> <expr> repeat GCUpper("repeat")

if !exists("no_plugin_maps") && !exists("no_zimbu_maps")
  nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
  nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
endif

" Using a function makes sure the search pattern is restored
func! ZimbuGoStartBlock()
  ?^\s*\(FUNC\|PROC\|MAIN\|ENUM\|CLASS\|INTERFACE\)\>
endfunc
func! ZimbuGoEndBlock()
  /^\s*\(FUNC\|PROC\|MAIN\|ENUM\|CLASS\|INTERFACE\)\>
endfunc


let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z9�V��vim80/ftplugin/sieve.vimnu�[���" Vim filetype plugin file
" Language:             Sieve filtering language input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��)n~~vim80/ftplugin/plaintex.vimnu�[���" plain TeX filetype plugin
" Language:     plain TeX (ft=plaintex)
" Maintainer:   Benji Fisher, Ph.D. <benji@member.AMS.org>
" Version:	1.1
" Last Change:	Wed 19 Apr 2006

" Only do this when not done yet for this buffer.
if exists("b:did_ftplugin")
  finish
endif

" Start with initex.  This will also define b:did_ftplugin and b:undo_ftplugin .
source $VIMRUNTIME/ftplugin/initex.vim

" Avoid problems if running in 'compatible' mode.
let s:save_cpo = &cpo
set cpo&vim

let b:undo_ftplugin .= "| unlet! b:match_ignorecase b:match_skip b:match_words"

" Allow "[d" to be used to find a macro definition:
let &l:define .= '\|\\new\(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
	\ .	'\|fam\|insert\)'

" The following lines enable the macros/matchit.vim plugin for
" extended matching with the % key.
" There is no default meaning for \(...\) etc., but many users define one.
if exists("loaded_matchit")
  let b:match_ignorecase = 0
    \ | let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
    \ | let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],\\{:\\}'
endif " exists("loaded_matchit")

let &cpo = s:save_cpo
unlet s:save_cpo

" vim:sts=2:sw=2:
PK�j�Z�5��vim80/ftplugin/alsaconf.vimnu�[���" Vim filetype plugin file
" Language:             alsaconf(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZiW>��vim80/ftplugin/xinetd.vimnu�[���" Vim filetype plugin file
" Language:             xinetd.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s include=^\\s*include
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�\1v��vim80/ftplugin/logcheck.vimnu�[���" Vim filetype plugin file
" Language:    Logcheck
" Maintainer:  Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Last Change: 2012 Jan 15
" License:     Vim License
" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/logcheck.vim

if exists("b:did_ftplugin")
    finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl fo<"

" Do not hard-wrap non-comment lines since each line is a self-contained
" regular expression
setlocal formatoptions-=t
PK�j�Z���|��vim80/ftplugin/crm.vimnu�[���" Vim filetype plugin file
" Language:             CRM114
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z`�Pprrvim80/ftplugin/hog.vimnu�[���" Vim filetype plugin
" Language:     hog (snort.conf)
" Maintainer: . Victor Roemer, <vroemer@badsec.org>.
" Last Change:  Mar 1, 2013

if exists("b:did_ftplugin")
    finish
endif
let b:did_ftplugin = 1

let s:undo_ftplugin = "setl fo< com< cms< def< inc<"

let s:cpo_save = &cpo
set cpo&vim

setlocal formatoptions=croq
setlocal comments=:#
setlocal commentstring=\c#\ %s
setlocal define=\c^\s\{-}var
setlocal include=\c^\s\{-}include

" Move around configurations 
let s:hog_keyword_match = '\c^\s*\<\(preprocessor\\|config\\|output\\|include\\|ipvar\\|portvar\\|var\\|dynamicpreprocessor\\|' . 
                        \ 'dynamicengine\\|dynamicdetection\\|activate\\|alert\\|drop\\|block\\|dynamic\\|log\\|pass\\|reject\\|sdrop\\|sblock\)\>'

exec "nnoremap <buffer><silent> ]] :call search('" . s:hog_keyword_match . "', 'W' )<CR>"
exec "nnoremap <buffer><silent> [[ :call search('" . s:hog_keyword_match . "', 'bW' )<CR>"

if exists("loaded_matchit")
    let b:match_words =
                  \ '^\s*\<\%(preprocessor\|config\|output\|include\|ipvar\|portvar' . 
                  \ '\|var\|dynamicpreprocessor\|dynamicengine\|dynamicdetection' . 
                  \ '\|activate\|alert\|drop\|block\|dynamic\|log\|pass\|reject' . 
                  \ '\|sdrop\|sblock\>\):$,\::\,:;'
    let b:match_skip = 'r:\\.\{-}$\|^\s*#.\{-}$\|^\s*$'
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZăN\��vim80/ftplugin/haskell.vimnu�[���" Vim filetype plugin file
" Language:             Haskell
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�����vim80/ftplugin/mplayerconf.vimnu�[���" Vim filetype plugin file
" Language:             mplayer(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s include=^\\s*include
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZE��YYvim80/ftplugin/html.vimnu�[���" Vim filetype plugin file
" Language:	html
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

setlocal matchpairs+=<:>
setlocal commentstring=<!--%s-->
setlocal comments=s:<!--,m:\ \ \ \ ,e:-->

if exists("g:ft_html_autocomment") && (g:ft_html_autocomment == 1)
    setlocal formatoptions-=t formatoptions+=croql
endif

if exists('&omnifunc')
  setlocal omnifunc=htmlcomplete#CompleteTags
  call htmlcomplete#DetectOmniFlavor()
endif

" HTML:  thanks to Johannes Zellner and Benji Fisher.
if exists("loaded_matchit")
    let b:match_ignorecase = 1
    let b:match_words = '<:>,' .
    \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
    \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
    \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
endif

" Change the :browse e filter to primarily show HTML-related files.
if has("gui_win32")
    let  b:browsefilter="HTML Files (*.html,*.htm)\t*.htm;*.html\n" .
		\	"JavaScript Files (*.js)\t*.js\n" .
		\	"Cascading StyleSheets (*.css)\t*.css\n" .
		\	"All Files (*.*)\t*.*\n"
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc< comments< formatoptions<" .
    \	" | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z6$�\eevim80/ftplugin/README.txtnu�[���The ftplugin directory is for Vim plugin scripts that are only used for a
specific filetype.

All files ending in .vim in this directory and subdirectories will be sourced
by Vim when it detects the filetype that matches the name of the file or
subdirectory.
For example, these are all loaded for the "c" filetype:

	c.vim
	c_extra.vim
	c/settings.vim

Note that the "_" in "c_extra.vim" is required to separate the filetype name
from the following arbitrary name.

The filetype plugins are only loaded when the ":filetype plugin" command has
been used.

The default filetype plugin files contain settings that 95% of the users will
want to use.  They do not contain personal preferences, like the value of
'shiftwidth'.

If you want to do additional settings, or overrule the default filetype
plugin, you can create your own plugin file.  See ":help ftplugin" in Vim.
PK�j�Z������vim80/ftplugin/nanorc.vimnu�[���" Vim filetype plugin file
" Language:             nanorc(5) - GNU nano configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��E��vim80/ftplugin/loginaccess.vimnu�[���" Vim filetype plugin file
" Language:             login.access(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zn+p���vim80/ftplugin/svg.vimnu�[���" Vim filetype plugin file
" Language:	svg
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
	    \	     "All Files (*.*)\t*.*\n"

runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif

" Change the :browse e filter to primarily show xml-related files.
if has("gui_win32")
    let  b:browsefilter="SVG Files (*.svg)\t*.svg\n" . s:browsefilter
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Zc�s��vim80/ftplugin/ld.vimnu�[���" Vim filetype plugin file
" Language:             ld(1) script
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=s1:/*,mb:*,ex:*/ commentstring=/*%s*/ include=^\\s*INCLUDE
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZS����vim80/ftplugin/procmail.vimnu�[���" Vim filetype plugin file
" Language:             procmail(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &l:include = '^\s*INCLUDERC\>'

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���

vim80/ftplugin/rnoweb.vimnu�[���" Vim filetype plugin file
" Language: Rnoweb
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Tue Apr 07, 2015  04:37PM

" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

runtime! ftplugin/tex.vim

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Enables Vim-Latex-Suite, LaTeX-Box if installed
runtime ftplugin/tex_*.vim

setlocal iskeyword=@,48-57,_,.
setlocal suffixesadd=.bib,.tex
setlocal comments=b:%,b:#,b:##,b:###,b:#'

if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
        \ "All Files (*.*)\t*.*\n"
endif

if exists('b:undo_ftplugin')
  let b:undo_ftplugin .= " | setl isk< sua< com< | unlet! b:browsefilter"
else
  let b:undo_ftplugin = "setl isk< sua< com< | unlet! b:browsefilter"
endif

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: sw=2
PK�j�Z�Oc��vim80/ftplugin/sensors.vimnu�[���" Vim filetype plugin file
" Language:             sensors.conf(5) - libsensors configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�B3��vim80/ftplugin/lua.vimnu�[���" Vim filetype plugin file.
" Language:	Lua 4.0+
" Maintainer:	Max Ischenko <mfi@ukr.net>
" Last Change:	2012 Mar 07

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

" Set 'formatoptions' to break comment lines but not other lines, and insert
" the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

setlocal com=:--
setlocal cms=--%s
setlocal suffixesadd=.lua


" The following lines enable the macros/matchit.vim plugin for
" extended matching with the % key.
if exists("loaded_matchit")

  let b:match_ignorecase = 0
  let b:match_words =
    \ '\<\%(do\|function\|if\)\>:' .
    \ '\<\%(return\|else\|elseif\)\>:' .
    \ '\<end\>,' .
    \ '\<repeat\>:\<until\>'

endif " exists("loaded_matchit")

let &cpo = s:cpo_save
unlet s:cpo_save

let b:undo_ftplugin = "setlocal fo< com< cms< suffixesadd<"
PK�j�Zҍ����vim80/ftplugin/bzl.vimnu�[���" Vim filetype plugin file
" Language:	Bazel (http://bazel.io)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-bzl)
" Last Change:	2015 Aug 11

""
" @section Introduction, intro
" Core settings for the bzl filetype, used for BUILD and *.bzl files for the
" Bazel build system (http://bazel.io/).

if exists('b:did_ftplugin')
  finish
endif


" Vim 7.4.051 has opinionated settings in ftplugin/python.vim that try to force
" PEP8 conventions on every python file, but these conflict with Google's
" indentation guidelines. As a workaround, we explicitly source the system
" ftplugin, but save indentation settings beforehand and restore them after.
let s:save_expandtab = &l:expandtab
let s:save_shiftwidth = &l:shiftwidth
let s:save_softtabstop = &l:softtabstop
let s:save_tabstop = &l:tabstop

" NOTE: Vim versions before 7.3.511 had a ftplugin/python.vim that was broken
" for compatible mode.
let s:save_cpo = &cpo
set cpo&vim

" Load base python ftplugin (also defines b:did_ftplugin).
source $VIMRUNTIME/ftplugin/python.vim

" NOTE: Vim versions before 7.4.104 and later set this in ftplugin/python.vim.
setlocal comments=b:#,fb:-

" Restore pre-existing indentation settings.
let &l:expandtab = s:save_expandtab
let &l:shiftwidth = s:save_shiftwidth
let &l:softtabstop = s:save_softtabstop
let &l:tabstop = s:save_tabstop

setlocal formatoptions-=t

" Make gf work with imports in BUILD files.
setlocal includeexpr=substitute(v:fname,'//','','')

" Enable syntax-based folding, if specified.
if get(g:, 'ft_bzl_fold', 0)
  setlocal foldmethod=syntax
  setlocal foldtext=BzlFoldText()
endif

if exists('*BzlFoldText')
  finish
endif

function BzlFoldText() abort
  let l:start_num = nextnonblank(v:foldstart)
  let l:end_num = prevnonblank(v:foldend)

  if l:end_num <= l:start_num + 1
    " If the fold is empty, don't print anything for the contents.
    let l:content = ''
  else
    " Otherwise look for something matching the content regex.
    " And if nothing matches, print an ellipsis.
    let l:content = '...'
    for l:line in getline(l:start_num + 1, l:end_num - 1)
      let l:content_match = matchstr(l:line, '\m\C^\s*name = \zs.*\ze,$')
      if !empty(l:content_match)
        let l:content = l:content_match
        break
      endif
    endfor
  endif

  " Enclose content with start and end
  let l:start_text = getline(l:start_num)
  let l:end_text = substitute(getline(l:end_num), '^\s*', '', '')
  let l:text = l:start_text . ' ' . l:content . ' ' . l:end_text

  " Compute the available width for the displayed text.
  let l:width = winwidth(0) - &foldcolumn - (&number ? &numberwidth : 0)
  let l:lines_folded = ' ' . string(1 + v:foldend - v:foldstart) . ' lines'

  " Expand tabs, truncate, pad, and concatenate
  let l:text = substitute(l:text, '\t', repeat(' ', &tabstop), 'g')
  let l:text = strpart(l:text, 0, l:width - len(l:lines_folded))
  let l:padding = repeat(' ', l:width - len(l:lines_folded) - len(l:text))
  return l:text . l:padding . l:lines_folded
endfunction

let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z�?�IJ�vim80/ftplugin/xmodmap.vimnu�[���" Vim filetype plugin file
" Language:             xmodmap(1) definition file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:! commentstring=!\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�NoY��vim80/ftplugin/limits.vimnu�[���" Vim filetype plugin file
" Language:             limits(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZQ���vim80/ftplugin/rhelp.vimnu�[���" Vim filetype plugin file
" Language: R help file
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Tue Apr 07, 2015  04:37PM

" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal iskeyword=@,48-57,_,.

if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
        \ "All Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setl isk< | unlet! b:browsefilter"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: sw=2
PK�j�ZhH���vim80/ftplugin/mp.vimnu�[���" Vim filetype plugin file
" Language:           MetaPost
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision:    2016 Oct 2

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
      \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"

setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
setlocal suffixesadd=.mp,.mpiv
let &l:include = '\<\%(input\|loadmodule\)\>' " loadmodule is in MetaFun
let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
setlocal omnifunc=syntaxcomplete#Complete
let g:omni_syntax_group_include_mp = 'mf\w\+,mp\w\+'
let g:omni_syntax_group_exclude_mp = 'mfTodoComment'

if exists(":FixBeginfigs") != 2
  command -nargs=0 FixBeginfigs call s:fix_beginfigs()

  function! s:fix_beginfigs()
    let i = 1
    g/^beginfig(\d*);$/s//\='beginfig('.i.');'/ | let i = i + 1
  endfunction
endif

let s:mp_regex = {
      \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|begin\%(fig\|char\|logochar\|glyph\|graph\)\)\>',
      \ 'endsection'   : '^\s*\%(enddef\|end\%(fig\|char\|glyph\|graph\)\)\>',
      \ 'beginblock'   : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
      \ 'endblock'     : '^\s*\%(endgroup\|fi\|endfor\)\>'
      \ }

function! s:move_around(count, what, flags, visual)
  if a:visual
    exe "normal! gv"
  endif
  call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
  call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
endfunction


" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true)  <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:true)  <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:true)  <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:true)  <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:true)  <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:true)  <CR>

if exists("loaded_matchit")
  let b:match_ignorecase = 0
  let b:match_words =
        \ '\<if\>:\<else\%[if]\>:\<fi\>,' .
        \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
        \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
        \ '\<beginfig\>:\<endfig\>,' .
        \ '\<begingroup\>:\<endgroup\>,' .
        \ '\<begin\%(logo\)\?char\>:\<endchar\>,' .
        \ '\<beginglyph\>:\<endglyph\>,' .
        \ '\<begingraph\>:\<endgraph\>'
  " Ignore comments and strings
  let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
        \ =~# "^mf\\%(Comment\\|String\\|\\)$\\|^mpTeXinsert$"'
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�
���vim80/ftplugin/fetchmail.vimnu�[���" Vim filetype plugin file
" Language:             fetchmail(1) RC File
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zɓ�!��vim80/ftplugin/quake.vimnu�[���" Vim filetype plugin file
" Language:             Quake[1-3] configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:// commentstring=//\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�c��vim80/ftplugin/rnc.vimnu�[���" Vim filetype plugin file
" Language:             Relax NG compact syntax
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z`��o��vim80/ftplugin/verilog.vimnu�[���" Vim filetype plugin file
" Language:	Verilog HDL
" Maintainer:	Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
" Last Change:	2017 Aug 25 by Chih-Tsun Huang
" URL:	    	http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
"
" Credits:
"   Suggestions for improvement, bug reports by
"     Shao <shaominghai2005@163.com>

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Set 'cpoptions' to allow line continuations
let s:cpo_save = &cpo
set cpo&vim

" Undo the plugin effect
let b:undo_ftplugin = "setlocal fo< com< tw<"
    \ . "| unlet! b:browsefilter b:match_ignorecase b:match_words"

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croqlm1

" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

" Format comments to be up to 78 characters long
if &textwidth == 0 
  setlocal tw=78
endif

" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" .
	\ "All Files (*.*)\t*.*\n"
endif

" Let the matchit plugin know what items can be matched.
if exists("loaded_matchit")
  let b:match_ignorecase=0
  let b:match_words=
    \ '\<begin\>:\<end\>,' .
    \ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
    \ '\<module\>:\<endmodule\>,' .
    \ '\<if\>:`\@<!\<else\>,' .
    \ '\<function\>:\<endfunction\>,' .
    \ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
    \ '\<task\>:\<endtask\>,' .
    \ '\<specify\>:\<endspecify\>,' .
    \ '\<config\>:\<endconfig\>,' .
    \ '\<generate\>:\<endgenerate\>,' .
    \ '\<fork\>:\<join\>,' .
    \ '\<primitive\>:\<endprimitive\>,' .
    \ '\<table\>:\<endtable\>'
endif

" Reset 'cpoptions' back to the user's setting
let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��*1�
�
vim80/ftplugin/vhdl.vimnu�[���" VHDL filetype plugin
" Language:    VHDL
" Maintainer:  R.Shankar <shankar.pec?gmail.com>
" Modified By: Gerald Lai <laigera+vim?gmail.com>
" Last Change: 2011 Dec 11

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
"setlocal fo-=t fo+=croqlm1

" Set 'comments' to format dashed lists in comments.
"setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

" Format comments to be up to 78 characters long
"setlocal tw=75

" Win32 can filter files in the browse dialog
"if has("gui_win32") && !exists("b:browsefilter")
"  let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" .
"   \ "All Files (*.*)\t*.*\n"
"endif

" Let the matchit plugin know what items can be matched.
if ! exists("b:match_words")  &&  exists("loaded_matchit")
  let b:match_ignorecase=1
  let s:notend = '\%(\<end\s\+\)\@<!'
  let b:match_words =
    \ s:notend.'\<if\>:\<elsif\>:\<else\>:\<end\s\+if\>,'.
    \ s:notend.'\<case\>:\<when\>:\<end\s\+case\>,'.
    \ s:notend.'\<loop\>:\<end\s\+loop\>,'.
    \ s:notend.'\<for\>:\<end\s\+for\>,'.
    \ s:notend.'\<generate\>:\<end\s\+generate\>,'.
    \ s:notend.'\<record\>:\<end\s\+record\>,'.
    \ s:notend.'\<units\>:\<end\s\+units\>,'.
    \ s:notend.'\<process\>:\<end\s\+process\>,'.
    \ s:notend.'\<block\>:\<end\s\+block\>,'.
    \ s:notend.'\<function\>:\<end\s\+function\>,'.
    \ s:notend.'\<entity\>:\<end\s\+entity\>,'.
    \ s:notend.'\<component\>:\<end\s\+component\>,'.
    \ s:notend.'\<architecture\>:\<end\s\+architecture\>,'.
    \ s:notend.'\<package\>:\<end\s\+package\>,'.
    \ s:notend.'\<procedure\>:\<end\s\+procedure\>,'.
    \ s:notend.'\<configuration\>:\<end\s\+configuration\>'
endif

" count repeat
function! <SID>CountWrapper(cmd)
  let i = v:count1
  if a:cmd[0] == ":"
    while i > 0
      execute a:cmd
      let i = i - 1
    endwhile
  else
    execute "normal! gv\<Esc>"
    execute "normal ".i.a:cmd
    let curcol = col(".")
    let curline = line(".")
    normal! gv
    call cursor(curline, curcol)
  endif
endfunction

" explore motion
" keywords: "architecture", "block", "configuration", "component", "entity", "function", "package", "procedure", "process", "record", "units"
let b:vhdl_explore = '\%(architecture\|block\|configuration\|component\|entity\|function\|package\|procedure\|process\|record\|units\)'
noremap  <buffer><silent>[[ :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\%(\\<end\\s\\+\\)\\@<!\\<".b:vhdl_explore."\\>\\c\\<Bar>\\%^","bW")')<CR>
noremap  <buffer><silent>]] :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\%(\\<end\\s\\+\\)\\@<!\\<".b:vhdl_explore."\\>\\c\\<Bar>\\%$","W")')<CR>
noremap  <buffer><silent>[] :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\<end\\s\\+".b:vhdl_explore."\\>\\c\\<Bar>\\%^","bW")')<CR>
noremap  <buffer><silent>][ :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\<end\\s\\+".b:vhdl_explore."\\>\\c\\<Bar>\\%$","W")')<CR>
vnoremap <buffer><silent>[[ :<C-u>cal <SID>CountWrapper('[[')<CR>
vnoremap <buffer><silent>]] :<C-u>cal <SID>CountWrapper(']]')<CR>
vnoremap <buffer><silent>[] :<C-u>cal <SID>CountWrapper('[]')<CR>
vnoremap <buffer><silent>][ :<C-u>cal <SID>CountWrapper('][')<CR>

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z-���vim80/ftplugin/lprolog.vimnu�[���" Vim settings file
" Language:     LambdaProlog (Teyjus)
" Maintainer:   Markus Mottl  <markus.mottl@gmail.com>
" URL:          http://www.ocaml.info/vim/ftplugin/lprolog.vim
" Last Change:  2006 Feb 05
"               2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
"               2001 Sep 02 - initial release  (MM)

" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't do other file type settings for this buffer
let b:did_ftplugin = 1

" Error format
setlocal efm=%+A./%f:%l.%c:\ %m formatprg=fmt\ -w75\ -p\\%

" Formatting of comments
setlocal formatprg=fmt\ -w75\ -p\\%

" Add mappings, unless the user didn't want this.
if !exists("no_plugin_maps") && !exists("no_lprolog_maps")
  " Uncommenting
  if !hasmapto('<Plug>Comment')
    nmap <buffer> <LocalLeader>c <Plug>LUncomOn
    vmap <buffer> <LocalLeader>c <Plug>BUncomOn
    nmap <buffer> <LocalLeader>C <Plug>LUncomOff
    vmap <buffer> <LocalLeader>C <Plug>BUncomOff
  endif

  nnoremap <buffer> <Plug>LUncomOn mz0i/* <ESC>$A */<ESC>`z
  nnoremap <buffer> <Plug>LUncomOff <ESC>:s/^\/\* \(.*\) \*\//\1/<CR>
  vnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i/*<ESC>`>o<ESC>0i*/<ESC>`<
  vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<
endif
PK�j�Z�{qi��vim80/ftplugin/xs.vimnu�[���" Vim filetype plugin file
" Language:      XS (Perl extension interface language)
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2013-07-21

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
    finish
endif

" Just use the C plugin for now.
runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
PK�j�Z+����vim80/ftplugin/sysctl.vimnu�[���" Vim filetype plugin file
" Language:             sysctl.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:;,:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��3���vim80/ftplugin/logindefs.vimnu�[���" Vim filetype plugin file
" Language:             login.defs(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z^��\��vim80/ftplugin/xf86conf.vimnu�[���" Vim filetype plugin file
" Language:             XFree86 Configuration File
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�:75((vim80/ftplugin/objc.vimnu�[���" Vim filetype plugin file
" Language:	Objective C
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2003 Jan 15

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Behaves just like C
runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
PK�j�Z�{(���vim80/ftplugin/tcl.vimnu�[���" Vim filetype plugin file
" Language:         Tcl
" Maintainer:       Robert L Hicks <sigzero@gmail.com>
" Latest Revision:  2009-05-01

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:cpo_save = &cpo
set cpo-=C

setlocal comments=:#
setlocal commentstring=#%s
setlocal formatoptions+=croql

" Change the browse dialog on Windows to show mainly Tcl-related files
if has("gui_win32")
    let b:browsefilter = "Tcl Source Files (.tcl)\t*.tcl\n" .
                \ "Tcl Test Files (.test)\t*.test\n" .
                \ "All Files (*.*)\t*.*\n"
endif

"-----------------------------------------------------------------------------

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
	    \	      " | unlet! b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:cpo_save
unlet s:cpo_save

" vim: set et ts=4 sw=4 tw=78:
PK�j�Z�!M��vim80/ftplugin/slpconf.vimnu�[���" Vim filetype plugin file
" Language:             RFC 2614 - An API for Service Location configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:#,:; commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z �����vim80/ftplugin/less.vimnu�[���" Vim filetype plugin
" Language:	less
" Maintainer:	Alessandro Vioni <jenoma@gmail.com>
" URL: https://github.com/genoma/vim-less
" Last Change:	2014 November 24

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"

setlocal formatoptions-=t formatoptions+=croql

setlocal comments=:// commentstring=//\ %s

setlocal omnifunc=csscomplete#CompleteCSS
setlocal suffixesadd=.less
PK�j�Z]]5���vim80/ftplugin/dictconf.vimnu�[���" Vim filetype plugin file
" Language:             dict(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��]���vim80/ftplugin/config.vimnu�[���" Vim filetype plugin file
" Language:	config
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n" .
	    \	 "All Files (*.*)\t*.*\n"
let s:match_words = ""

runtime! ftplugin/sh.vim ftplugin/sh_*.vim ftplugin/sh/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif

" Change the :browse e filter to primarily show configure-related files.
if has("gui_win32")
    let  b:browsefilter="Configure Scripts (configure.*, config.*)\tconfigure*;config.*\n" .
		\	s:browsefilter
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter | " . b:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z����TTvim80/ftplugin/flexwiki.vimnu�[���" Vim filetype plugin file
" Language:     FlexWiki, http://www.flexwiki.com/
" Maintainer:   George V. Reilly  <george@reilly.org>
" Home:         http://www.georgevreilly.com/vim/flexwiki/
" Other Home:   http://www.vim.org/scripts/script.php?script_id=1529
" Author:       George V. Reilly
" Filenames:    *.wiki
" Last Change: Wed Apr 26 11:00 PM 2006 P
" Version:      0.3

if exists("b:did_ftplugin")
  finish
endif

let b:did_ftplugin = 1  " Don't load another plugin for this buffer

" Reset the following options to undo this plugin.
let b:undo_ftplugin = "setl tw< wrap< lbr< et< ts< fenc< bomb< ff<"

" Allow lines of unlimited length. Do NOT want automatic linebreaks,
" as a newline starts a new paragraph in FlexWiki.
setlocal textwidth=0
" Wrap long lines, rather than using horizontal scrolling.
setlocal wrap
" Wrap at a character in 'breakat' rather than at last char on screen
setlocal linebreak
" Don't transform <TAB> characters into spaces, as they are significant
" at the beginning of the line for numbered and bulleted lists.
setlocal noexpandtab
" 4-char tabstops, per flexwiki.el
setlocal tabstop=4
" Save *.wiki files in UTF-8
setlocal fileencoding=utf-8
" Add the UTF-8 Byte Order Mark to the beginning of the file
setlocal bomb
" Save <EOL>s as \n, not \r\n
setlocal fileformat=unix

if exists("g:flexwiki_maps")
  " Move up and down by display lines, to account for screen wrapping
  " of very long lines
  nmap <buffer> <Up>   gk
  nmap <buffer> k      gk
  vmap <buffer> <Up>   gk
  vmap <buffer> k      gk

  nmap <buffer> <Down> gj
  nmap <buffer> j      gj
  vmap <buffer> <Down> gj
  vmap <buffer> j      gj

  " for earlier versions - for when 'wrap' is set
  imap <buffer> <S-Down>   <C-o>gj
  imap <buffer> <S-Up>     <C-o>gk
  if v:version >= 700
      imap <buffer> <Down>   <C-o>gj
      imap <buffer> <Up>     <C-o>gk
  endif
endif
PK�j�Zh�Vמ�vim80/ftplugin/systemd.vimnu�[���" Vim filetype plugin file
" Language:  systemd.unit(5)

if !exists('b:did_ftplugin')
  " Looks a lot like dosini files.
  runtime! ftplugin/dosini.vim
endif
PK�j�Z�G�?vim80/ftplugin/occam.vimnu�[���" Vim filetype plugin file
" Language:	occam
" Copyright:	Christian Jacobsen <clj3@kent.ac.uk>, Mario Schweigler <ms44@kent.ac.uk>
" Maintainer:	Mario Schweigler <ms44@kent.ac.uk>
" Last Change:	23 April 2003

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1
let s:keepcpo= &cpo
set cpo&vim

"{{{  Indent settings
" Set shift width for indent
setlocal shiftwidth=2
" Set the tab key size to two spaces
setlocal softtabstop=2
" Let tab keys always be expanded to spaces
setlocal expandtab
"}}}

"{{{  Formatting
" Break comment lines and insert comment leader in this case
setlocal formatoptions-=t formatoptions+=cql
setlocal comments+=:--
" Maximum length of comments is 78
setlocal textwidth=78
"}}}

"{{{  File browsing filters
" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "All Occam Files (*.occ *.inc)\t*.occ;*.inc\n" .
	\ "Occam Include Files (*.inc)\t*.inc\n" .
	\ "Occam Source Files (*.occ)\t*.occ\n" .
	\ "All Files (*.*)\t*.*\n"
endif
"}}}

"{{{  Undo settings
let b:undo_ftplugin = "setlocal shiftwidth< softtabstop< expandtab<"
	\ . " formatoptions< comments< textwidth<"
	\ . "| unlet! b:browsefiler"
"}}}

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�ZH:ާ��vim80/ftplugin/jsp.vimnu�[���" Vim filetype plugin file
" Language:	jsp
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "Java Files (*.java)\t*.java\n" .
	    \	 "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
	    \	 "All Files (*.*)\t*.*\n"
let s:match_words = ""

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
unlet b:did_ftplugin

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
    unlet b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
    unlet b:browsefilter
endif
if exists("b:match_words")
    let s:match_words = b:match_words
    unlet b:match_words
endif

runtime! ftplugin/java.vim ftplugin/java_*.vim ftplugin/java/*.vim
let b:did_ftplugin = 1

" Combine the new set of values with those previously included.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
endif
if exists ("b:browsefilter")
    let s:browsefilter = b:browsefilter . s:browsefilter
endif
if exists("b:match_words")
    let s:match_words = b:match_words . ',' . s:match_words
endif

" Load the combined list of match_words for matchit.vim
if exists("loaded_matchit")
    let b:match_words = s:match_words
endif

" Change the :browse e filter to primarily show JSP-related files.
if has("gui_win32")
    let  b:browsefilter="JSP Files (*.jsp)\t*.jsp\n" . s:browsefilter
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter b:match_words | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z?ly��vim80/ftplugin/mailcap.vimnu�[���" Vim filetype plugin file
" Language:             Mailcap configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z򎎊FFvim80/ftplugin/git.vimnu�[���" Vim filetype plugin
" Language:	generic git output
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

if !exists('b:git_dir')
  if expand('%:p') =~# '[\/]\.git[\/]modules[\/]'
    " Stay out of the way
  elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
    let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
  elseif expand('%:p') =~# '\.git\>'
    let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
  elseif $GIT_DIR != ''
    let b:git_dir = $GIT_DIR
  endif
  if (has('win32') || has('win64')) && exists('b:git_dir')
    let b:git_dir = substitute(b:git_dir,'\\','/','g')
  endif
endif

if exists('*shellescape') && exists('b:git_dir') && b:git_dir != ''
  if b:git_dir =~# '/\.git$' " Not a bare repository
    let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path
  endif
  let &l:path = escape(b:git_dir,'\, ').','.&l:path
  let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show'
else
  setlocal keywordprg=git\ show
endif
if has('gui_running')
  let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','')
endif

setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','')
let b:undo_ftplugin = "setl keywordprg< path< includeexpr<"
PK�j�Z��l��vim80/ftplugin/python.vimnu�[���" Vim filetype plugin file
" Language:	python
" Maintainer:	Tom Picton <tom@tompicton.co.uk>
" Previous Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change:	Sun, 15 April 2018
" https://github.com/tpict/vim-ftplugin-python

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
let s:keepcpo= &cpo
set cpo&vim

setlocal cinkeys-=0#
setlocal indentkeys-=0#
setlocal include=^\\s*\\(from\\\|import\\)

" For imports with leading .., append / and replace additional .s with ../
let b:grandparent_match = '^\(.\.\)\(\.*\)'
let b:grandparent_sub = '\=submatch(1)."/".repeat("../",strlen(submatch(2)))'

" For imports with a single leading ., replace it with ./
let b:parent_match = '^\.\(\.\)\@!'
let b:parent_sub = './'

" Replace any . sandwiched between word characters with /
let b:child_match = '\(\w\)\.\(\w\)'
let b:child_sub = '\1/\2'

setlocal includeexpr=substitute(substitute(substitute(
      \v:fname,
      \b:grandparent_match,b:grandparent_sub,''),
      \b:parent_match,b:parent_sub,''),
      \b:child_match,b:child_sub,'g')

setlocal suffixesadd=.py
setlocal comments=b:#,fb:-
setlocal commentstring=#\ %s

setlocal omnifunc=pythoncomplete#Complete
if has('python3')
       setlocal omnifunc=python3complete#Complete
endif

set wildignore+=*.pyc

let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
let b:prev_toplevel='\v^(class\|def\|async def)>'
let b:next_endtoplevel='\v%$\|\S.*\n+(def\|class)'
let b:prev_endtoplevel='\v\S.*\n+(def\|class)'
let b:next='\v%$\|^\s*(class\|def\|async def)>'
let b:prev='\v^\s*(class\|def\|async def)>'
let b:next_end='\v\S\n*(%$\|^(\s*\n*)*(class\|def\|async def)\|^\S)'
let b:prev_end='\v\S\n*(^(\s*\n*)*(class\|def\|async def)\|^\S)'

execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W', v:count1)<cr>"
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb', v:count1)<cr>"
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0, v:count1)<cr>"
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"

execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W', v:count1)<cr>"
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb', v:count1)<cr>"
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0, v:count1)<cr>"
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"

execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W', v:count1)<cr>"
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb', v:count1)<cr>"
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0, v:count1)<cr>"
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"

if !exists('*<SID>Python_jump')
  fun! <SID>Python_jump(mode, motion, flags, count, ...) range
      let l:startofline = (a:0 >= 1) ? a:1 : 1

      if a:mode == 'x'
          normal! gv
      endif

      if l:startofline == 1
          normal! 0
      endif

      let cnt = a:count
      mark '
      while cnt > 0
          call search(a:motion, a:flags)
          let cnt = cnt - 1
      endwhile

      if l:startofline == 1
          normal! ^
      endif
  endfun
endif

if has("browsefilter") && !exists("b:browsefilter")
    let b:browsefilter = "Python Files (*.py)\t*.py\n" .
                \ "All Files (*.*)\t*.*\n"
endif

if !exists("g:python_recommended_style") || g:python_recommended_style != 0
    " As suggested by PEP8.
    setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
endif

" First time: try finding "pydoc".
if !exists('g:pydoc_executable')
    if executable('pydoc')
        let g:pydoc_executable = 1
    else
        let g:pydoc_executable = 0
    endif
endif
" If "pydoc" was found use it for keywordprg.
if g:pydoc_executable
    setlocal keywordprg=pydoc
endif

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z������vim80/ftplugin/art.vimnu�[���" Vim filetype plugin
" Language:      ART-IM and ART*Enterprise
" Maintainer:    Dorai Sitaram <ds26@gte.com>
" URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
" Last Change:   Apr 2, 2003

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

run ftplugin/lisp.vim

setl lw-=if
setl lw+=def-art-fun,deffacts,defglobal,defrule,defschema,for,schema,while
PK�j�Z���Y��vim80/ftplugin/services.vimnu�[���" Vim filetype plugin file
" Language:             services(5) - Internet network services list
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z����vim80/ftplugin/clojure.vimnu�[���" Vim filetype plugin file
" Language:     Clojure
" Author:       Meikel Brandmeyer <mb@kotka.de>
"
" Maintainer:   Sung Pae <self@sungpae.com>
" URL:          https://github.com/guns/vim-clojure-static
" License:      Same as Vim
" Last Change:  18 July 2016

if exists("b:did_ftplugin")
	finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring< lispwords<'

setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$

" There will be false positives, but this is better than missing the whole set
" of user-defined def* definitions.
setlocal define=\\v[(/]def(ault)@!\\S*

" Remove 't' from 'formatoptions' to avoid auto-wrapping code.
setlocal formatoptions-=t

" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING)
setlocal comments=n:;
setlocal commentstring=;\ %s

" Specially indented symbols from clojure.core and clojure.test.
"
" Clojure symbols are indented in the defn style when they:
"
"   * Define vars and anonymous functions
"   * Create new lexical scopes or scopes with altered environments
"   * Create conditional branches from a predicate function or value
"
" The arglists for these functions are generally in the form of [x & body];
" Functions that accept a flat list of forms do not treat the first argument
" specially and hence are not indented specially.
"
" -*- LISPWORDS -*-
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test

" Provide insert mode completions for special forms and clojure.core. As
" 'omnifunc' is set by popular Clojure REPL client plugins, we also set
" 'completefunc' so that the user has some form of completion available when
" 'omnifunc' is set and no REPL connection exists.
for s:setting in ['omnifunc', 'completefunc']
	if exists('&' . s:setting) && empty(eval('&' . s:setting))
		execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
		let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
	endif
endfor

" Take all directories of the CLOJURE_SOURCE_DIRS environment variable
" and add them to the path option.
"
" This is a legacy option for VimClojure users.
if exists('$CLOJURE_SOURCE_DIRS')
	for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
		let s:dir = fnameescape(s:dir)
		" Whitespace escaping for Windows
		let s:dir = substitute(s:dir, '\', '\\\\', 'g')
		let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
		execute "setlocal path+=" . s:dir . "/**"
	endfor
	let b:undo_ftplugin .= ' | setlocal path<'
endif

" Skip brackets in ignored syntax regions when using the % command
if exists('loaded_matchit')
	let b:match_words = &matchpairs
	let b:match_skip = 's:comment\|string\|regex\|character'
	let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
endif

" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
	let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
	                   \ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
	                   \ "Java Source Files (*.java)\t*.java\n" .
	                   \ "All Files (*.*)\t*.*\n"
	let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif

let &cpo = s:cpo_save

unlet! s:cpo_save s:setting s:dir

" vim:sts=8:sw=8:ts=8:noet
PK�j�Z�-���vim80/ftplugin/awk.vimnu�[���" Vim filetype plugin
" Language:	awk, nawk, gawk, mawk
" Maintainer:	Antonio Colombo <azc100@gmail.com>
" Last Change:	2017 Feb 17

" This plugin was prepared by Mark Sikora

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl commentstring<"

setlocal commentstring=#\ %s
PK�j�ZU,*Gaavim80/ftplugin/csh.vimnu�[���" Vim filetype plugin file
" Language:	csh
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

setlocal commentstring=#%s
setlocal formatoptions-=t
setlocal formatoptions+=crql

" Csh:  thanks to Johannes Zellner
" - Both foreach and end must appear alone on separate lines.
" - The words else and endif must appear at the beginning of input lines;
"   the if must appear alone on its input line or after an else.
" - Each case label and the default label must appear at the start of a
"   line.
" - while and end must appear alone on their input lines.
if exists("loaded_matchit")
    let b:match_words =
      \ '^\s*\<if\>.*(.*).*\<then\>:'.
      \   '^\s*\<else\>\s\+\<if\>.*(.*).*\<then\>:^\s*\<else\>:'.
      \   '^\s*\<endif\>,'.
      \ '\%(^\s*\<foreach\>\s\+\S\+\|^s*\<while\>\).*(.*):'.
      \   '\<break\>:\<continue\>:^\s*\<end\>,'.
      \ '^\s*\<switch\>.*(.*):^\s*\<case\>\s\+:^\s*\<default\>:^\s*\<endsw\>'
endif

" Change the :browse e filter to primarily show csh-related files.
if has("gui_win32")
    let  b:browsefilter="csh Scripts (*.csh)\t*.csh\n" .
		\	"All Files (*.*)\t*.*\n"
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< formatoptions<" .
		\     " | unlet! b:match_words b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z��
uuvim80/ftplugin/msmessages.vimnu�[���" Vim filetype plugin file
" Language:	MS Message files (*.mc)
" Maintainer:	Kevin Locke <kwl7@cornell.edu>
" Last Change:	2008 April 09
" Location:	http://kevinlocke.name/programs/vim/syntax/msmessages.vim

" Based on c.vim

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Using line continuation here.
let s:cpo_save = &cpo
set cpo-=C

let b:undo_ftplugin = "setl fo< com< cms< | unlet! b:browsefilter"

" Set 'formatoptions' to format all lines, including comments
setlocal fo-=ct fo+=roql

" Comments includes both ";" which describes a "comment" which will be
" converted to C code and variants on "; //" which will remain comments
" in the generated C code
setlocal comments=:;,:;//,:;\ //,s:;\ /*\ ,m:;\ \ *\ ,e:;\ \ */
setlocal commentstring=;\ //\ %s

" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "MS Message Files (*.mc)\t*.mc\n" .
	\ "Resource Files (*.rc)\t*.rc\n" .
	\ "All Files (*.*)\t*.*\n"
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZЍ�0��vim80/ftplugin/ishd.vimnu�[���" Vim filetype plugin file
" Language:	InstallShield (ft=ishd)
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Sat, 24 May 2003 11:55:36 CEST

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

setlocal foldmethod=syntax

" Using line continuation here.
let s:cpo_save = &cpo
set cpo-=C

" matchit support
if exists("loaded_matchit")
    let b:match_ignorecase=0
    let b:match_words=
    \ '\%(^\s*\)\@<=\<function\>\s\+[^()]\+\s*(:\%(^\s*\)\@<=\<begin\>\s*$:\%(^\s*\)\@<=\<return\>:\%(^\s*\)\@<=\<end\>\s*;\s*$,' .
    \ '\%(^\s*\)\@<=\<repeat\>\s*$:\%(^\s*\)\@<=\<until\>\s\+.\{-}\s*;\s*$,' .
    \ '\%(^\s*\)\@<=\<switch\>\s*(.\{-}):\%(^\s*\)\@<=\<\%(case\|default\)\>:\%(^\s*\)\@<=\<endswitch\>\s*;\s*$,' .
    \ '\%(^\s*\)\@<=\<while\>\s*(.\{-}):\%(^\s*\)\@<=\<endwhile\>\s*;\s*$,' .
    \ '\%(^\s*\)\@<=\<for\>.\{-}\<\%(to\|downto\)\>:\%(^\s*\)\@<=\<endfor\>\s*;\s*$,' .
    \ '\%(^\s*\)\@<=\<if\>\s*(.\{-})\s*then:\%(^\s*\)\@<=\<else\s*if\>\s*([^)]*)\s*then:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<endif\>\s*;\s*$'
endif

if has("gui_win32") && !exists("b:browsefilter")
    let b:browsefilter = "InstallShield Files (*.rul)\t*.rul\n" .
		       \ "All Files (*.*)\t*.*\n"
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�j*Uiivim80/ftplugin/liquid.vimnu�[���" Vim filetype plugin
" Language:     Liquid
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2010 May 21

if exists('b:did_ftplugin')
  finish
endif

if !exists('g:liquid_default_subtype')
  let g:liquid_default_subtype = 'html'
endif

if !exists('b:liquid_subtype')
  let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
  let b:liquid_subtype = matchstr(s:lines,'liquid_subtype=\zs\w\+')
  if b:liquid_subtype == ''
    let b:liquid_subtype = matchstr(&filetype,'^liquid\.\zs\w\+')
  endif
  if b:liquid_subtype == ''
    let b:liquid_subtype = matchstr(substitute(expand('%:t'),'\c\%(\.liquid\)\+$','',''),'\.\zs\w\+$')
  endif
  if b:liquid_subtype == ''
    let b:liquid_subtype = g:liquid_default_subtype
  endif
endif

if exists('b:liquid_subtype') && b:liquid_subtype != ''
  exe 'runtime! ftplugin/'.b:liquid_subtype.'.vim ftplugin/'.b:liquid_subtype.'_*.vim ftplugin/'.b:liquid_subtype.'/*.vim'
else
  runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
endif
let b:did_ftplugin = 1

if exists('b:undo_ftplugin')
  let b:undo_ftplugin .= '|'
else
  let b:undo_ftplugin = ''
endif
if exists('b:browsefilter')
  let b:browsefilter = "\n".b:browsefilter
else
  let b:browsefilter = ''
endif
if exists('b:match_words')
  let b:match_words .= ','
elseif exists('loaded_matchit')
  let b:match_words = ''
endif

if has('gui_win32')
  let b:browsefilter="Liquid Files (*.liquid)\t*.liquid" . b:browsefilter
endif

if exists('loaded_matchit')
  let b:match_words .= '\<\%(if\w*\|unless\|case\)\>:\<\%(elsif\|else\|when\)\>:\<end\%(if\w*\|unless\|case\)\>,\<\%(for\|tablerow\)\>:\%({%\s*\)\@<=empty\>:\<end\%(for\|tablerow\)\>,<\(capture\|comment\|highlight\)\>:\<end\1\>'
endif

setlocal commentstring={%\ comment\ %}%s{%\ endcomment\ %}

let b:undo_ftplugin .= 'setl cms< | unlet! b:browsefilter b:match_words'
PK�j�Z�]}ggvim80/ftplugin/cmake.vimnu�[���" Vim filetype plugin
" Language:    CMake
" Maintainer:  Keith Smiley <keithbsmiley@gmail.com>
" Last Change: 2017 Dec 24

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl commentstring<"

setlocal commentstring=#\ %s
PK�j�Z�b�0��vim80/ftplugin/gpg.vimnu�[���" Vim filetype plugin file
" Language:             gpg(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�W���vim80/ftplugin/dictdconf.vimnu�[���" Vim filetype plugin file
" Language:             dictd(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z!�B��vim80/ftplugin/netrc.vimnu�[���" Vim filetype plugin file
" Language:             netrc(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zf��vim80/ftplugin/setserial.vimnu�[���" Vim filetype plugin file
" Language:             setserial(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z� O���vim80/ftplugin/modconf.vimnu�[���" Vim filetype plugin file
" Language:             modules.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s include=^\\s*include
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZX:����vim80/ftplugin/yaml.vimnu�[���" Vim filetype plugin file
" Language:             YAML (YAML Ain't Markup Language)
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< et< fo<"

setlocal comments=:# commentstring=#\ %s expandtab
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�va���vim80/ftplugin/prolog.vimnu�[���" Vim filetype plugin file
" Language:             Prolog
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=s1:/*,mb:*,ex:*/,:% commentstring=%\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zv����vim80/ftplugin/calendar.vimnu�[���" Vim filetype plugin file
" Language:             calendar(1) input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=s1:/*,mb:*,ex:*/ commentstring& include&
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZӜ����vim80/ftplugin/xsd.vimnu�[���" Vim filetype plugin file
" Language:	xsd
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
	    \	     "All Files (*.*)\t*.*\n"

runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif

" Change the :browse e filter to primarily show xsd-related files.
if has("gui_win32")
    let  b:browsefilter="XSD Files (*.xsd)\t*.xsd\n" . s:browsefilter
endif

let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z0�xxvim80/ftplugin/gitconfig.vimnu�[���" Vim filetype plugin
" Language:	git config file
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2009 Dec 24

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

setlocal formatoptions-=t formatoptions+=croql
setlocal comments=:#,:; commentstring=;\ %s

let b:undo_ftplugin = "setl fo< com< cms<"
PK�j�Z?���vim80/ftplugin/group.vimnu�[���" Vim filetype plugin file
" Language:             group(5) user group file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��w��vim80/ftplugin/sgml.vimnu�[���" Vim filetype plugin file
" Language:	sgml
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
	    \	     "All Files (*.*)\t*.*\n"

runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif

" Change the :browse e filter to primarily show xml-related files.
if has("gui_win32")
    let  b:browsefilter="SGML Files (*.sgml,*.sgm)\t*.sgm*\n" . s:browsefilter
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z���mmvim80/ftplugin/go.vimnu�[���" Vim filetype plugin file
" Language:	Go
" Maintainer:	David Barnett (https://github.com/google/vim-ft-go)
" Last Change:	2014 Aug 16

if exists('b:did_ftplugin')
  finish
endif
let b:did_ftplugin = 1

setlocal formatoptions-=t

setlocal comments=s1:/*,mb:*,ex:*/,://
setlocal commentstring=//\ %s

let b:undo_ftplugin = 'setl fo< com< cms<'

" vim: sw=2 sts=2 et
PK�j�Zh�~H�"�"vim80/ftplugin/changelog.vimnu�[���" Vim filetype plugin file
" Language:             generic Changelog file
" Maintainer:           Martin Florian <marfl@posteo.de>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2015-10-25
" Variables:
"   g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
"       description: the timeformat used in ChangeLog entries.
"       default: "%Y-%m-%d".
"   g:changelog_dateformat -
"       description: the format sent to strftime() to generate a date string.
"       default: "%Y-%m-%d".
"   g:changelog_username -
"       description: the username to use in ChangeLog entries
"       default: try to deduce it from environment variables and system files.
" Local Mappings:
"   <Leader>o -
"       adds a new changelog entry for the current user for the current date.
" Global Mappings:
"   <Leader>o -
"       switches to the ChangeLog buffer opened for the current directory, or
"       opens it in a new buffer if it exists in the current directory.  Then
"       it does the same as the local <Leader>o described above.
" Notes:
"   run 'runtime ftplugin/changelog.vim' to enable the global mapping for
"   changelog files.
" TODO:
"  should we perhaps open the ChangeLog file even if it doesn't exist already?
"  Problem is that you might end up with ChangeLog files all over the place.

" If 'filetype' isn't "changelog", we must have been to add ChangeLog opener
if &filetype == 'changelog'
  if exists('b:did_ftplugin')
    finish
  endif
  let b:did_ftplugin = 1

  let s:cpo_save = &cpo
  set cpo&vim

  " Set up the format used for dates.
  if !exists('g:changelog_dateformat')
    if exists('g:changelog_timeformat')
      let g:changelog_dateformat = g:changelog_timeformat
    else
      let g:changelog_dateformat = "%Y-%m-%d"
    endif
  endif

  function! s:username()
    if exists('g:changelog_username')
      return g:changelog_username
    elseif $EMAIL != ""
      return $EMAIL
    elseif $EMAIL_ADDRESS != ""
      return $EMAIL_ADDRESS
    endif
    
    let login = s:login()
    return printf('%s <%s@%s>', s:name(login), login, s:hostname())
  endfunction

  function! s:login()
    return s:trimmed_system_with_default('whoami', 'unknown')
  endfunction

  function! s:trimmed_system_with_default(command, default)
    return s:first_line(s:system_with_default(a:command, a:default))
  endfunction

  function! s:system_with_default(command, default)
    let output = system(a:command)
    if v:shell_error
      return default
    endif
    return output
  endfunction

  function! s:first_line(string)
    return substitute(a:string, '\n.*$', "", "")
  endfunction

  function! s:name(login)
    for name in [s:gecos_name(a:login), $NAME, s:capitalize(a:login)]
      if name != ""
        return name
      endif
    endfor
  endfunction

  function! s:gecos_name(login)
    for line in s:try_reading_file('/etc/passwd')
      if line =~ '^' . a:login . ':'
        return substitute(s:passwd_field(line, 5), '&', s:capitalize(a:login), "")
      endif
    endfor
    return ""
  endfunction

  function! s:try_reading_file(path)
    try
      return readfile(a:path)
    catch
      return []
    endtry
  endfunction

  function! s:passwd_field(line, field)
    let fields = split(a:line, ':', 1)
    if len(fields) < a:field
      return ""
    endif
    return fields[a:field - 1]
  endfunction

  function! s:capitalize(word)
    return toupper(a:word[0]) . strpart(a:word, 1)
  endfunction

  function! s:hostname()
    return s:trimmed_system_with_default('hostname', 'localhost')
  endfunction

  " Format used for new date entries.
  if !exists('g:changelog_new_date_format')
    let g:changelog_new_date_format = "%d  %u\n\n\t* %p%c\n\n"
  endif

  " Format used for new entries to current date entry.
  if !exists('g:changelog_new_entry_format')
    let g:changelog_new_entry_format = "\t* %p%c"
  endif

  " Regular expression used to find a given date entry.
  if !exists('g:changelog_date_entry_search')
    let g:changelog_date_entry_search = '^\s*%d\_s*%u'
  endif

  " Regular expression used to find the end of a date entry
  if !exists('g:changelog_date_end_entry_search')
    let g:changelog_date_end_entry_search = '^\s*$'
  endif


  " Substitutes specific items in new date-entry formats and search strings.
  " Can be done with substitute of course, but unclean, and need \@! then.
  function! s:substitute_items(str, date, user, prefix)
    let str = a:str
    let middles = {'%': '%', 'd': a:date, 'u': a:user, 'p': a:prefix, 'c': '{cursor}'}
    let i = stridx(str, '%')
    while i != -1
      let inc = 0
      if has_key(middles, str[i + 1])
        let mid = middles[str[i + 1]]
        let str = strpart(str, 0, i) . mid . strpart(str, i + 2)
        let inc = strlen(mid) - 1
      endif
      let i = stridx(str, '%', i + 1 + inc)
    endwhile
    return str
  endfunction

  " Position the cursor once we've done all the funky substitution.
  function! s:position_cursor()
    if search('{cursor}') > 0
      let lnum = line('.')
      let line = getline(lnum)
      let cursor = stridx(line, '{cursor}')
      call setline(lnum, substitute(line, '{cursor}', '', ''))
    endif
    startinsert
  endfunction

  " Internal function to create a new entry in the ChangeLog.
  function! s:new_changelog_entry(prefix)
    " Deal with 'paste' option.
    let save_paste = &paste
    let &paste = 1
    call cursor(1, 1)
    " Look for an entry for today by our user.
    let date = strftime(g:changelog_dateformat)
    let search = s:substitute_items(g:changelog_date_entry_search, date,
                                  \ s:username(), a:prefix)
    if search(search) > 0
      " Ok, now we look for the end of the date entry, and add an entry.
      call cursor(nextnonblank(line('.') + 1), 1)
      if search(g:changelog_date_end_entry_search, 'W') > 0
	let p = (line('.') == line('$')) ? line('.') : line('.') - 1
      else
        let p = line('.')
      endif
      let ls = split(s:substitute_items(g:changelog_new_entry_format, '', '', a:prefix),
                   \ '\n')
      call append(p, ls)
      call cursor(p + 1, 1)
    else
      " Flag for removing empty lines at end of new ChangeLogs.
      let remove_empty = line('$') == 1

      " No entry today, so create a date-user header and insert an entry.
      let todays_entry = s:substitute_items(g:changelog_new_date_format,
                                          \ date, s:username(), a:prefix)
      " Make sure we have a cursor positioning.
      if stridx(todays_entry, '{cursor}') == -1
        let todays_entry = todays_entry . '{cursor}'
      endif

      " Now do the work.
      call append(0, split(todays_entry, '\n'))

      " Remove empty lines at end of file.
      if remove_empty
        $-/^\s*$/-1,$delete
      endif

      " Reposition cursor once we're done.
      call cursor(1, 1)
    endif

    call s:position_cursor()

    " And reset 'paste' option
    let &paste = save_paste
  endfunction

  if exists(":NewChangelogEntry") != 2
    nnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR>
    xnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR>
    command! -nargs=0 NewChangelogEntry call s:new_changelog_entry('')
  endif

  let b:undo_ftplugin = "setl com< fo< et< ai<"

  setlocal comments=
  setlocal formatoptions+=t
  setlocal noexpandtab
  setlocal autoindent

  if &textwidth == 0
    setlocal textwidth=78
    let b:undo_ftplugin .= " tw<"
  endif

  let &cpo = s:cpo_save
  unlet s:cpo_save
else
  let s:cpo_save = &cpo
  set cpo&vim

  " Add the Changelog opening mapping
  nnoremap <silent> <Leader>o :call <SID>open_changelog()<CR>

  function! s:open_changelog()
    let path = expand('%:p:h')
    if exists('b:changelog_path')
      let changelog = b:changelog_path
    else
      if exists('b:changelog_name')
        let name = b:changelog_name
      else
        let name = 'ChangeLog'
      endif
      while isdirectory(path)
        let changelog = path . '/' . name
        if filereadable(changelog)
          break
        endif
        let parent = substitute(path, '/\+[^/]*$', "", "")
        if path == parent
          break
        endif
        let path = parent
      endwhile
    endif
    if !filereadable(changelog)
      return
    endif

    if exists('b:changelog_entry_prefix')
      let prefix = call(b:changelog_entry_prefix, [])
    else
      let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "")
    endif

    let buf = bufnr(changelog)
    if buf != -1
      if bufwinnr(buf) != -1
        execute bufwinnr(buf) . 'wincmd w'
      else
        execute 'sbuffer' buf
      endif
    else
      execute 'split' fnameescape(changelog)
    endif

    call s:new_changelog_entry(prefix)
  endfunction

  let &cpo = s:cpo_save
  unlet s:cpo_save
endif
PK�j�Z�I)���vim80/ftplugin/c.vimnu�[���" Vim filetype plugin file
" Language:	C
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2017 Sep 28

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Using line continuation here.
let s:cpo_save = &cpo
set cpo-=C

let b:undo_ftplugin = "setl fo< com< ofu< | if has('vms') | setl isk< | endif"

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Set completion with CTRL-X CTRL-O to autoloaded function.
if exists('&ofu')
  setlocal ofu=ccomplete#Complete
endif

" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

" In VMS C keywords contain '$' characters.
if has("vms")
  setlocal iskeyword+=$
endif

" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments properly.
let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character\|special'

" Win32 can filter files in the browse dialog
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
  if &ft == "cpp"
    let b:browsefilter = "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
	  \ "C Header Files (*.h)\t*.h\n" .
	  \ "C Source Files (*.c)\t*.c\n" .
	  \ "All Files (*.*)\t*.*\n"
  elseif &ft == "ch"
    let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" .
	  \ "C Header Files (*.h)\t*.h\n" .
	  \ "C Source Files (*.c)\t*.c\n" .
	  \ "All Files (*.*)\t*.*\n"
  else
    let b:browsefilter = "C Source Files (*.c)\t*.c\n" .
	  \ "C Header Files (*.h)\t*.h\n" .
	  \ "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" .
	  \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
	  \ "All Files (*.*)\t*.*\n"
  endif
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�
jOOvim80/ftplugin/rrst.vimnu�[���" Vim filetype plugin file
" Language: reStructuredText documentation format with R code
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Tue Apr 07, 2015  04:38PM
" Original work by Alex Zvoleff

" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
setlocal iskeyword=@,48-57,_,.

if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
        \ "All Files (*.*)\t*.*\n"
endif

if exists('b:undo_ftplugin')
  let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
else
  let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
endif

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: sw=2
PK�j�Z�Zt���vim80/ftplugin/vroom.vimnu�[���" Vim filetype plugin file
" Language:	Vroom (vim testing and executable documentation)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-vroom)
" Last Change:	2014 Jul 23

if exists('b:did_ftplugin')
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo-=C


let b:undo_ftplugin = 'setlocal formatoptions< shiftwidth< softtabstop<' .
    \ ' expandtab< iskeyword< comments< commentstring<'

setlocal formatoptions-=t

" The vroom interpreter doesn't accept anything but 2-space indent.
setlocal shiftwidth=2
setlocal softtabstop=2
setlocal expandtab

" To allow tag lookup and autocomplete for whole autoload functions, '#' must be
" a keyword character. This also conforms to the behavior of ftplugin/vim.vim.
setlocal iskeyword+=#

" Vroom files have no comments (text is inert documentation unless indented).
setlocal comments=
setlocal commentstring=


let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zv���vim80/ftplugin/grub.vimnu�[���" Vim filetype plugin file
" Language:             grub(8) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�p9�<<vim80/ftplugin/btm.vimnu�[���" Vim filetype plugin file
" Language:	BTM
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2004 Jul 06

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Behaves just like dosbatch
runtime! ftplugin/dosbatch.vim ftplugin/dosbatch_*.vim ftplugin/dosbatch/*.vim
PK�j�Z�v��@@vim80/ftplugin/falcon.vimnu�[���" Vim filetype plugin file
" Language:     Falcon
" Author:       Steven Oliver <oliver.steven@gmail.com>
" Copyright:    Copyright (c) 2009-2013 Steven Oliver
" License:      You may redistribute this under the same terms as Vim itself
" --------------------------------------------------------------------------

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal softtabstop=4 shiftwidth=4 fileencoding=utf-8
setlocal suffixesadd=.fal,.ftd

" Matchit support
if exists("loaded_matchit") && !exists("b:match_words")
  let b:match_ignorecase = 0

  let b:match_words =
	\ '\<\%(if\|case\|while\|until\|for\|do\|class\)\>=\@!' .
	\ ':' .
	\ '\<\%(else\|elsif\|when\)\>' .
	\ ':' .
	\ '\<end\>' .
	\ ',{:},\[:\],(:)'
endif

setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

" Windows allows you to filter the open file dialog
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "Falcon Source Files (*.fal *.ftd)\t*.fal;*.ftd\n" .
                     \ "All Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setlocal tabstop< shiftwidth< expandtab< fileencoding<"
	\ . " suffixesadd< comments<"
	\ . "| unlet! b:browsefiler"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: set sw=4 sts=4 et tw=80 :
PK�j�Z�ay6iivim80/ftplugin/tex.vimnu�[���" LaTeX filetype plugin
" Language:     LaTeX (ft=tex)
" Maintainer:   Benji Fisher, Ph.D. <benji@member.AMS.org>
" Version:	1.4
" Last Change:	Wed 19 Apr 2006
"  URL:		http://www.vim.org/script.php?script_id=411

" Only do this when not done yet for this buffer.
if exists("b:did_ftplugin")
  finish
endif

" Start with plain TeX.  This will also define b:did_ftplugin .
source $VIMRUNTIME/ftplugin/plaintex.vim

" Avoid problems if running in 'compatible' mode.
let s:save_cpo = &cpo
set cpo&vim

let b:undo_ftplugin .= "| setl inex<"

" Allow "[d" to be used to find a macro definition:
" Recognize plain TeX \def as well as LaTeX \newcommand and \renewcommand .
" I may as well add the AMS-LaTeX DeclareMathOperator as well.
let &l:define .= '\|\\\(re\)\=new\(boolean\|command\|counter\|environment\|font'
	\ . '\|if\|length\|savebox\|theorem\(style\)\=\)\s*\*\=\s*{\='
	\ . '\|DeclareMathOperator\s*{\=\s*'

" Tell Vim how to recognize LaTeX \include{foo} and plain \input bar :
let &l:include .= '\|\\include{'
" On some file systems, "{" and "}" are inluded in 'isfname'.  In case the
" TeX file has \include{fname} (LaTeX only), strip everything except "fname".
let &l:includeexpr = "substitute(v:fname, '^.\\{-}{\\|}.*', '', 'g')"

" The following lines enable the macros/matchit.vim plugin for
" extended matching with the % key.
" ftplugin/plaintex.vim already defines b:match_skip and b:match_ignorecase
" and matches \(, \), \[, \], \{, and \} .
if exists("loaded_matchit")
  let b:match_words .= ',\\begin\s*\({\a\+\*\=}\):\\end\s*\1'
endif " exists("loaded_matchit")

let &cpo = s:save_cpo
unlet s:save_cpo

" vim:sts=2:sw=2:
PK�j�Z�N�vim80/ftplugin/man.vimnu�[���" Vim filetype plugin file
" Language:	man
" Maintainer:	SungHyun Nam <goweol@gmail.com>
" Last Change: 	2018 Jan 15

" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.

" If 'filetype' isn't "man", we must have been called to only define ":Man".
if &filetype == "man"

  " Only do this when not done yet for this buffer
  if exists("b:did_ftplugin")
    finish
  endif
  let b:did_ftplugin = 1

  " allow dot and dash in manual page name.
  setlocal iskeyword+=\.,-

  " Add mappings, unless the user didn't want this.
  if !exists("no_plugin_maps") && !exists("no_man_maps")
    if !hasmapto('<Plug>ManBS')
      nmap <buffer> <LocalLeader>h <Plug>ManBS
    endif
    nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>''

    nnoremap <buffer> <c-]> :call <SID>PreGetPage(v:count)<CR>
    nnoremap <buffer> <c-t> :call <SID>PopPage()<CR>
    nnoremap <buffer> <silent> q :q<CR>
  endif

  if exists('g:ft_man_folding_enable') && (g:ft_man_folding_enable == 1)
    setlocal foldmethod=indent foldnestmax=1 foldenable
  endif

  let b:undo_ftplugin = "setlocal iskeyword<"

endif

if exists(":Man") != 2
  com -nargs=+ -complete=shellcmd Man call s:GetPage(<f-args>)
  nmap <Leader>K :call <SID>PreGetPage(0)<CR>
  nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
endif

" Define functions only once.
if !exists("s:man_tag_depth")

let s:man_tag_depth = 0

let s:man_sect_arg = ""
let s:man_find_arg = "-w"
try
  if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5"
    let s:man_sect_arg = "-s"
    let s:man_find_arg = "-l"
  endif
catch /E145:/
  " Ignore the error in restricted mode
endtry

func <SID>PreGetPage(cnt)
  if a:cnt == 0
    let old_isk = &iskeyword
    if &ft == 'man'
      setl iskeyword+=(,)
    endif
    let str = expand("<cword>")
    let &l:iskeyword = old_isk
    let page = substitute(str, '(*\(\k\+\).*', '\1', '')
    let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '')
    if match(sect, '^[0-9 ]\+$') == -1
      let sect = ""
    endif
    if sect == page
      let sect = ""
    endif
  else
    let sect = a:cnt
    let page = expand("<cword>")
  endif
  call s:GetPage(sect, page)
endfunc

func <SID>GetCmdArg(sect, page)
  if a:sect == ''
    return a:page
  endif
  return s:man_sect_arg.' '.a:sect.' '.a:page
endfunc

func <SID>FindPage(sect, page)
  let where = system("man ".s:man_find_arg.' '.s:GetCmdArg(a:sect, a:page))
  if where !~ "^/"
    if matchstr(where, " [^ ]*$") !~ "^ /"
      return 0
    endif
  endif
  return 1
endfunc

func <SID>GetPage(...)
  if a:0 >= 2
    let sect = a:1
    let page = a:2
  elseif a:0 >= 1
    let sect = ""
    let page = a:1
  else
    return
  endif

  " To support:	    nmap K :Man <cword>
  if page == '<cword>'
    let page = expand('<cword>')
  endif

  if sect != "" && s:FindPage(sect, page) == 0
    let sect = ""
  endif
  if s:FindPage(sect, page) == 0
    echo "\nCannot find a '".page."'."
    return
  endif
  exec "let s:man_tag_buf_".s:man_tag_depth." = ".bufnr("%")
  exec "let s:man_tag_lin_".s:man_tag_depth." = ".line(".")
  exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".")
  let s:man_tag_depth = s:man_tag_depth + 1

  " Use an existing "man" window if it exists, otherwise open a new one.
  if &filetype != "man"
    let thiswin = winnr()
    exe "norm! \<C-W>b"
    if winnr() > 1
      exe "norm! " . thiswin . "\<C-W>w"
      while 1
	if &filetype == "man"
	  break
	endif
	exe "norm! \<C-W>w"
	if thiswin == winnr()
	  break
	endif
      endwhile
    endif
    if &filetype != "man"
      if exists("g:ft_man_open_mode")
        if g:ft_man_open_mode == "vert"
          vnew
        elseif g:ft_man_open_mode == "tab"
          tabnew
        else
          new
        endif
      else
        new
      endif
      setl nonu fdc=0
    endif
  endif
  silent exec "edit $HOME/".page.".".sect."~"
  " Avoid warning for editing the dummy file twice
  setl buftype=nofile noswapfile

  setl ma nonu nornu nofen
  silent exec "norm 1GdG"
  let unsetwidth = 0
  if empty($MANWIDTH)
    let $MANWIDTH = winwidth(0)
    let unsetwidth = 1
  endif

  " Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
  " on a man page reference by unsetting MANPAGER.
  " Some versions of env(1) do not support the '-u' option, and in such case
  " we set MANPAGER=cat.
  if !exists('s:env_has_u')
    call system('env -u x true')
    let s:env_has_u = (v:shell_error == 0)
  endif
  let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
  let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
  silent exec "r !" . man_cmd

  if unsetwidth
    let $MANWIDTH = ''
  endif
  " Remove blank lines from top and bottom.
  while getline(1) =~ '^\s*$'
    silent keepj norm ggdd
  endwhile
  while getline('$') =~ '^\s*$'
    silent keepj norm Gdd
  endwhile
  1
  setl ft=man nomod
  setl bufhidden=hide
  setl nobuflisted
  setl noma
endfunc

func <SID>PopPage()
  if s:man_tag_depth > 0
    let s:man_tag_depth = s:man_tag_depth - 1
    exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth
    exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth
    exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth
    exec s:man_tag_buf."b"
    exec s:man_tag_lin
    exec "norm ".s:man_tag_col."|"
    exec "unlet s:man_tag_buf_".s:man_tag_depth
    exec "unlet s:man_tag_lin_".s:man_tag_depth
    exec "unlet s:man_tag_col_".s:man_tag_depth
    unlet s:man_tag_buf s:man_tag_lin s:man_tag_col
  endif
endfunc

endif

" vim: set sw=2 ts=8 noet:
PK�j�Z�h��		vim80/ftplugin/dosbatch.vimnu�[���" Vim filetype plugin file
" Language:    MS-DOS .bat files
" Maintainer:  Mike Williams <mrw@eandem.co.uk>
" Last Change: 8th May 2012

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

" BAT comment formatting
setlocal comments=b:rem,b:@rem,b:REM,b:@REM,:::
setlocal formatoptions-=t formatoptions+=rol

" Define patterns for the browse file filter
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setlocal comments< formatoptions<"
    \ . "| unlet! b:browsefiler"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zo�g""vim80/ftplugin/cs.vimnu�[���" Vim filetype plugin file
" Language:	C#
" Maintainer:	Johannes Zellner <johannes@zellner.org>
" Last Change:	Tue, 09 Mar 2004 14:09:33 CET

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let s:keepcpo= &cpo
set cpo&vim

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://

if has("gui_win32") && !exists("b:browsefilter")
    let b:browsefilter = "C# Source Files (*.cs)\t*.cs\n" .
		       \ "All Files (*.*)\t*.*\n"
endif

let &cpo = s:keepcpo
unlet s:keepcpo
PK�j�Z6�����vim80/ftplugin/slpreg.vimnu�[���" Vim filetype plugin file
" Language:             RFC 2614 - An API for Service Location registration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:#,:; commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�gy��vim80/ftplugin/tcsh.vimnu�[���" Vim filetype plugin file
" Language:	tcsh
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "csh Files (*.csh)\t*.csh\n" .
	    \	     "All Files (*.*)\t*.*\n"

runtime! ftplugin/csh.vim ftplugin/csh_*.vim ftplugin/csh/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif

" Change the :browse e filter to primarily show tcsh-related files.
if has("gui_win32")
    let  b:browsefilter="tcsh Scripts (*.tcsh)\t*.tcsh\n" . s:browsefilter
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z��W���vim80/ftplugin/tt2html.vimnu�[���" Language:      TT2 embedded with HTML
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2013-07-21

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
    finish
endif

" Just use the HTML plugin for now.
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
PK�j�Z����$�$vim80/ftplugin/cobol.vimnu�[���" Vim filetype plugin file
" Language:	cobol
" Author:	Tim Pope <vimNOSPAM@tpope.info>
" Last Update:	By ZyX: use shiftwidth()

" Insert mode mappings: <C-T> <C-D> <Tab>
" Normal mode mappings: < > << >> [[ ]] [] ][
" Visual mode mappings: < >

if exists("b:did_ftplugin")
    finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal commentstring=\ \ \ \ \ \ *%s
setlocal comments=:*
setlocal fo+=croqlt
setlocal expandtab
setlocal textwidth=72

" matchit support
if exists("loaded_matchit")
    let s:ordot = '\|\ze\.\%( \@=\|$\)'
    let b:match_ignorecase=1
    "let b:match_skip = 'getline(".") =~ "^.\\{6\\}[*/C]"'
    let b:match_words=
    \ '\$if\>:$else\>:\$endif\>,' .
    \ '[$-]\@<!\<if\>:\<\%(then\|else\)\>:\<end-if\>'.s:ordot.',' .
    \ '-\@<!\<perform\s\+\%(\d\+\s\+times\|until\|varying\|with\s\+test\)\>:\<end-perform\>'.s:ordot . ',' .
    \ '-\@<!\<\%(search\|evaluate\)\>:\<\%(when\)\>:\<end-\%(search\|evaluate\)\>' .s:ordot . ',' .
    \ '-\@<!\<\%(add\|compute\|divide\|multiply\|subtract\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+size\s\+error\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+size\s\+error\>:\<end-\%(add\|compute\|divide\|multiply\|subtract\)\>' .s:ordot . ',' .
    \ '-\@<!\<\%(string\|unstring\|accept\|display\|call\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>:\<end-\%(string\|unstring\|accept\|display\|call\)\>' .s:ordot . ',' .
    \ '-\@<!\<\%(delete\|rewrite\|start\|write\|read\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>:\<end-\%(delete\|rewrite\|start\|write\|read\)\>' .s:ordot
endif

if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n".
		     \ "All Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setlocal com< cms< fo< et< tw<" .
            \ " | unlet! b:browsefilter b:match_words b:match_ignorecase b:match_skip"
if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps")
    let b:undo_ftplugin = b:undo_ftplugin .
            \ " | sil! exe 'nunmap <buffer> <'" .
            \ " | sil! exe 'nunmap <buffer> >'" .
            \ " | sil! exe 'nunmap <buffer> <<'" .
            \ " | sil! exe 'nunmap <buffer> >>'" .
            \ " | sil! exe 'vunmap <buffer> <'" .
            \ " | sil! exe 'vunmap <buffer> >'" .
            \ " | sil! exe 'iunmap <buffer> <C-D>'" .
            \ " | sil! exe 'iunmap <buffer> <C-T>'" .
            \ " | sil! exe 'iunmap <buffer> <Tab>'" .
            \ " | sil! exe 'nunmap <buffer> <Plug>Traditional'" .
            \ " | sil! exe 'nunmap <buffer> <Plug>Comment'" .
            \ " | sil! exe 'nunmap <buffer> <Plug>DeComment'" .
            \ " | sil! exe 'vunmap <buffer> <Plug>VisualTraditional'" .
            \ " | sil! exe 'vunmap <buffer> <Plug>VisualComment'" .
            \ " | sil! exe 'iunmap <buffer> <Plug>VisualDeComment'" .
            \ " | sil! exe 'unmap  <buffer> [['" .
            \ " | sil! exe 'unmap  <buffer> ]]'" .
            \ " | sil! exe 'unmap  <buffer> []'" .
            \ " | sil! exe 'unmap  <buffer> ]['"
endif

if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps")
    if version >= 700
        nnoremap <silent> <buffer> > :set opfunc=<SID>IncreaseFunc<CR>g@
        nnoremap <silent> <buffer> < :set opfunc=<SID>DecreaseFunc<CR>g@
    endif
    nnoremap <silent> <buffer> >> :call CobolIndentBlock(1)<CR>
    nnoremap <silent> <buffer> << :call CobolIndentBlock(-1)<CR>
    vnoremap <silent> <buffer> > :call CobolIndentBlock(v:count1)<CR>
    vnoremap <silent> <buffer> < :call CobolIndentBlock(-v:count1)<CR>
    inoremap <silent> <buffer> <C-T> <C-R>=<SID>IncreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
    inoremap <silent> <buffer> <C-D> <C-R>=<SID>DecreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
    if !maparg("<Tab>","i")
        inoremap <silent> <buffer> <Tab> <C-R>=<SID>Tab()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
    endif
    noremap <silent> <buffer> [[ m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\s*\.','bW')<CR>
    noremap <silent> <buffer> ]] m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\.','W')<CR>
    noremap <silent> <buffer> [] m':call <SID>toend('b')<CR>
    noremap <silent> <buffer> ][ m':call <SID>toend('')<CR>
    " For EnhancedCommentify
    noremap <silent> <buffer> <Plug>Traditional      :call <SID>Comment('t')<CR>
    noremap <silent> <buffer> <Plug>Comment          :call <SID>Comment('c')<CR>
    noremap <silent> <buffer> <Plug>DeComment        :call <SID>Comment('u')<CR>
    noremap <silent> <buffer> <Plug>VisualTraditional :'<,'>call <SID>Comment('t')<CR>
    noremap <silent> <buffer> <Plug>VisualComment     :'<,'>call <SID>Comment('c')<CR>
    noremap <silent> <buffer> <Plug>VisualDeComment   :'<,'>call <SID>Comment('u')<CR>
endif

let &cpo = s:cpo_save
unlet s:cpo_save

if exists("g:did_cobol_ftplugin_functions")
    finish
endif
let g:did_cobol_ftplugin_functions = 1

function! s:repeat(str,count)
    let i = 0
    let ret = ""
    while i < a:count
        let ret = ret . a:str
        let i = i + 1
    endwhile
    return ret
endfunction

function! s:increase(...)
    let lnum = '.'
    let sw = shiftwidth()
    let i = a:0 ? a:1 : indent(lnum)
    if i >= 11
        return sw - (i - 11) % sw
    elseif i >= 7
        return 11-i
    elseif i == 6
        return 1
    else
        return 6-i
    endif
endfunction

function! s:decrease(...)
    let lnum = '.'
    let sw = shiftwidth()
    let i = indent(a:0 ? a:1 : lnum)
    if i >= 11 + sw
        return 1 + (i + 12) % sw
    elseif i > 11
        return i-11
    elseif i > 7
        return i-7
    elseif i == 7
        return 1
    else
        return i
    endif
endfunction

function! CobolIndentBlock(shift)
    let head = strpart(getline('.'),0,7)
    let tail = strpart(getline('.'),7)
    let indent = match(tail,'[^ ]')
    let sw = shiftwidth()
    let shift = a:shift
    if shift > 0
        if indent < 4
            let tail = s:repeat(" ",4-indent).tail
            let shift = shift - 1
        endif
        let tail = s:repeat(" ",shift*sw).tail
        let shift = 0
    elseif shift < 0
        if (indent-4) > -shift * sw
            let tail = strpart(tail,-shift * sw)
        elseif (indent-4) > (-shift-1) * sw
            let tail = strpart(tail,indent - 4)
        else
            let tail = strpart(tail,indent)
        endif
    endif
    call setline('.',head.tail)
endfunction

function! s:IncreaseFunc(type)
    '[,']call CobolIndentBlock(1)
endfunction

function! s:DecreaseFunc(type)
    '[,']call CobolIndentBlock(-1)
endfunction

function! s:IncreaseIndent()
    let c = "\<C-T>"
    if exists("*InsertCtrlTWrapper")
        let key = InsertCtrlTWrapper()
        if key != c
            return key
        endif
    endif
    let interval = s:increase()
    let b:cobol_shiftwidth = &shiftwidth
    let &shiftwidth = 1
    let lastchar = strpart(getline('.'),col('.')-2,1)
    if lastchar == '0' || lastchar == '^'
        return "\<BS>".lastchar.c
    else
        return s:repeat(c,interval)
    endif
endfunction

function! s:DecreaseIndent()
    let c = "\<C-D>"
    if exists("*InsertCtrlDWrapper")
        " I hack Ctrl-D to delete when not at the end of the line.
        let key = InsertCtrlDWrapper()
        if key != c
            return key
        endif
    endif
    let interval = s:decrease()
    let b:cobol_shiftwidth = &shiftwidth
    let &shiftwidth = 1
    return s:repeat(c,interval)
endfunction

function! s:RestoreShiftwidth()
    if exists("b:cobol_shiftwidth")
        let &shiftwidth=b:cobol_shiftwidth
        unlet b:cobol_shiftwidth
    endif
    return ""
endfunction

function! s:Tab()
    if (strpart(getline('.'),0,col('.')-1) =~ '^\s*$' && &sta)
        return s:IncreaseIndent()
    " &softtabstop < 0: &softtabstop follows &shiftwidth
    elseif (&sts < 0 || &sts == shiftwidth()) && &sts != 8 && &et
        return s:repeat(" ",s:increase(col('.')-1))
    else
        return "\<Tab>"
    endif
endfunction

function! s:Comment(arg)
    " For EnhancedCommentify
    let line = getline('.')
    if (line =~ '^.\{6\}[*/C]' || a:arg == 'c') && a:arg != 'u'
        let line = substitute(line,'^.\{6\}\zs.',' ','')
    else
        let line = substitute(line,'^.\{6\}\zs.','*','')
    endif
    call setline('.',line)
endfunction

function! s:toend(direction)
    let ignore = '^\(\s*\|.\{6\}\)\%([*/]\|\s*$\)'
    let keep = line('.')
    keepjumps +
    while line('.') < line('$') && getline('.') =~ ignore
        keepjumps +
    endwhile
    let res = search('\c^\%(\s*\|.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\|section\)\s*\.',a:direction.'W')
    if a:direction != 'b' && !res
        let res = line('$')
        keepjumps $
    elseif res
        keepjumps -
    endif
    if res
        while line('.') > 1 && getline('.') =~ ignore
            keepjumps -
        endwhile
        if line('.') == 1 && getline('.') =~ ignore
            exe "keepjumps ".keep
        endif
    else
        exe "keepjumps ".keep
    endif
endfunction
PK�j�Z򟄛��vim80/ftplugin/rust.vimnu�[���" Language:     Rust
" Description:  Vim ftplugin for Rust
" Maintainer:   Chris Morgan <me@chrismorgan.info>
" Maintainer:   Kevin Ballard <kevin@sb.org>
" Last Change:  June 08, 2016
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim 

if exists("b:did_ftplugin")
	finish
endif
let b:did_ftplugin = 1

let s:save_cpo = &cpo
set cpo&vim

augroup rust.vim
autocmd!

" Variables {{{1

" The rust source code at present seems to typically omit a leader on /*!
" comments, so we'll use that as our default, but make it easy to switch.
" This does not affect indentation at all (I tested it with and without
" leader), merely whether a leader is inserted by default or not.
if exists("g:rust_bang_comment_leader") && g:rust_bang_comment_leader != 0
	" Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why,
	" but without it, */ gets indented one space even if there were no
	" leaders. I'm fairly sure that's a Vim bug.
	setlocal comments=s1:/*,mb:*,ex:*/,s0:/*,mb:\ ,ex:*/,:///,://!,://
else
	setlocal comments=s0:/*!,m:\ ,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,://
endif
setlocal commentstring=//%s
setlocal formatoptions-=t formatoptions+=croqnl
" j was only added in 7.3.541, so stop complaints about its nonexistence
silent! setlocal formatoptions+=j

" smartindent will be overridden by indentexpr if filetype indent is on, but
" otherwise it's better than nothing.
setlocal smartindent nocindent

if !exists("g:rust_recommended_style") || g:rust_recommended_style != 0
	setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
	setlocal textwidth=99
endif

" This includeexpr isn't perfect, but it's a good start
setlocal includeexpr=substitute(v:fname,'::','/','g')

setlocal suffixesadd=.rs

if exists("g:ftplugin_rust_source_path")
    let &l:path=g:ftplugin_rust_source_path . ',' . &l:path
endif

if exists("g:loaded_delimitMate")
	if exists("b:delimitMate_excluded_regions")
		let b:rust_original_delimitMate_excluded_regions = b:delimitMate_excluded_regions
	endif

	let s:delimitMate_extra_excluded_regions = ',rustLifetimeCandidate,rustGenericLifetimeCandidate'

	" For this buffer, when delimitMate issues the `User delimitMate_map`
	" event in the autocommand system, add the above-defined extra excluded
	" regions to delimitMate's state, if they have not already been added.
	autocmd User <buffer>
		\ if expand('<afile>') ==# 'delimitMate_map' && match(
		\     delimitMate#Get("excluded_regions"),
		\     s:delimitMate_extra_excluded_regions) == -1
		\|  let b:delimitMate_excluded_regions =
		\       delimitMate#Get("excluded_regions")
		\       . s:delimitMate_extra_excluded_regions
		\|endif

	" For this buffer, when delimitMate issues the `User delimitMate_unmap`
	" event in the autocommand system, delete the above-defined extra excluded
	" regions from delimitMate's state (the deletion being idempotent and
	" having no effect if the extra excluded regions are not present in the
	" targeted part of delimitMate's state).
	autocmd User <buffer>
		\ if expand('<afile>') ==# 'delimitMate_unmap'
		\|  let b:delimitMate_excluded_regions = substitute(
		\       delimitMate#Get("excluded_regions"),
		\       '\C\V' . s:delimitMate_extra_excluded_regions,
		\       '', 'g')
		\|endif
endif

if has("folding") && exists('g:rust_fold') && g:rust_fold != 0
	let b:rust_set_foldmethod=1
	setlocal foldmethod=syntax
	if g:rust_fold == 2
		setlocal foldlevel<
	else
		setlocal foldlevel=99
	endif
endif

if has('conceal') && exists('g:rust_conceal') && g:rust_conceal != 0
	let b:rust_set_conceallevel=1
	setlocal conceallevel=2
endif

" Motion Commands {{{1

" Bind motion commands to support hanging indents
nnoremap <silent> <buffer> [[ :call rust#Jump('n', 'Back')<CR>
nnoremap <silent> <buffer> ]] :call rust#Jump('n', 'Forward')<CR>
xnoremap <silent> <buffer> [[ :call rust#Jump('v', 'Back')<CR>
xnoremap <silent> <buffer> ]] :call rust#Jump('v', 'Forward')<CR>
onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR>
onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR>

" Commands {{{1

" See |:RustRun| for docs
command! -nargs=* -complete=file -bang -buffer RustRun call rust#Run(<bang>0, <q-args>)

" See |:RustExpand| for docs
command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -buffer RustExpand call rust#Expand(<bang>0, <q-args>)

" See |:RustEmitIr| for docs
command! -nargs=* -buffer RustEmitIr call rust#Emit("llvm-ir", <q-args>)

" See |:RustEmitAsm| for docs
command! -nargs=* -buffer RustEmitAsm call rust#Emit("asm", <q-args>)

" See |:RustPlay| for docs
command! -range=% RustPlay :call rust#Play(<count>, <line1>, <line2>, <f-args>)

" See |:RustFmt| for docs
command! -buffer RustFmt call rustfmt#Format()

" See |:RustFmtRange| for docs
command! -range -buffer RustFmtRange call rustfmt#FormatRange(<line1>, <line2>)

" Mappings {{{1

" Bind ⌘R in MacVim to :RustRun
nnoremap <silent> <buffer> <D-r> :RustRun<CR>
" Bind ⌘⇧R in MacVim to :RustRun! pre-filled with the last args
nnoremap <buffer> <D-R> :RustRun! <C-r>=join(b:rust_last_rustc_args)<CR><C-\>erust#AppendCmdLine(' -- ' . join(b:rust_last_args))<CR>

if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args")
	let b:rust_last_rustc_args = []
	let b:rust_last_args = []
endif

" Cleanup {{{1

let b:undo_ftplugin = "
		\ setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd<
		\|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth<
		\|if exists('b:rust_original_delimitMate_excluded_regions')
		  \|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions
		  \|unlet b:rust_original_delimitMate_excluded_regions
		\|else
		  \|unlet! b:delimitMate_excluded_regions
		\|endif
		\|if exists('b:rust_set_foldmethod')
		  \|setlocal foldmethod< foldlevel<
		  \|unlet b:rust_set_foldmethod
		\|endif
		\|if exists('b:rust_set_conceallevel')
		  \|setlocal conceallevel<
		  \|unlet b:rust_set_conceallevel
		\|endif
		\|unlet! b:rust_last_rustc_args b:rust_last_args
		\|delcommand RustRun
		\|delcommand RustExpand
		\|delcommand RustEmitIr
		\|delcommand RustEmitAsm
		\|delcommand RustPlay
		\|nunmap <buffer> <D-r>
		\|nunmap <buffer> <D-R>
		\|nunmap <buffer> [[
		\|nunmap <buffer> ]]
		\|xunmap <buffer> [[
		\|xunmap <buffer> ]]
		\|ounmap <buffer> [[
		\|ounmap <buffer> ]]
		\|set matchpairs-=<:>
		\"

" }}}1

" Code formatting on save
if get(g:, "rustfmt_autosave", 0)
	autocmd BufWritePre *.rs silent! call rustfmt#Format()
endif

augroup END

let &cpo = s:save_cpo
unlet s:save_cpo

" vim: set noet sw=8 ts=8:
PK�j�Z���""vim80/ftplugin/perl.vimnu�[���" Vim filetype plugin file
" Language:      Perl
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2015-02-09

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=perldoc\ -f

setlocal comments=:#
setlocal commentstring=#%s

" Change the browse dialog on Win32 to show mainly Perl-related files
if has("gui_win32")
    let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
		       \ "Perl Modules (*.pm)\t*.pm\n" .
		       \ "Perl Documentation Files (*.pod)\t*.pod\n" .
		       \ "All Files (*.*)\t*.*\n"
endif

" Provided by Ned Konz <ned at bike-nomad dot com>
"---------------------------------------------
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
setlocal iskeyword+=:

" The following line changes a global variable but is necessary to make
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
" out the problem. If this causes a problem for you, add an
" after/ftplugin/perl.vim file that contains
"       set isfname-=:
set isfname+=:

" Set this once, globally.
if !exists("perlpath")
    if executable("perl")
      try
	if &shellxquote != '"'
	    let perlpath = system('perl -e "print join(q/,/,@INC)"')
	else
	    let perlpath = system("perl -e 'print join(q/,/,@INC)'")
	endif
	let perlpath = substitute(perlpath,',.$',',,','')
      catch /E145:/
	let perlpath = ".,,"
      endtry
    else
	" If we can't call perl to get its path, just default to using the
	" current directory and the directory of the current file.
	let perlpath = ".,,"
    endif
endif

" Append perlpath to the existing path value, if it is set.  Since we don't
" use += to do it because of the commas in perlpath, we have to handle the
" global / local settings, too.
if &l:path == ""
    if &g:path == ""
        let &l:path=perlpath
    else
        let &l:path=&g:path.",".perlpath
    endif
else
    let &l:path=&l:path.",".perlpath
endif
"---------------------------------------------

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
	    \	      " | unlet! b:browsefilter"

" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
let b:match_words = '\<if\>:\<elsif\>:\<else\>'

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Zyt�9��vim80/ftplugin/pinfo.vimnu�[���" Vim filetype plugin file
" Language:             pinfo(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZzW��pBpBvim80/ftplugin/ruby.vimnu�[���" Vim filetype plugin
" Language:		Ruby
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" URL:			https://github.com/vim-ruby/vim-ruby
" Release Coordinator:  Doug Kearns <dougkearns@gmail.com>
" ----------------------------------------------------------------------------

if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

if has("gui_running") && !has("gui_win32")
  setlocal keywordprg=ri\ -T\ -f\ bs
else
  setlocal keywordprg=ri
endif

" Matchit support
if exists("loaded_matchit") && !exists("b:match_words")
  let b:match_ignorecase = 0

  let b:match_words =
	\ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|def\|begin\)\>=\@!' .
	\ ':' .
	\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
	\ ':' .
        \ '\%(^\|[^.\:@$]\)\@<=\<end\:\@!\>' .
	\ ',{:},\[:\],(:)'

  let b:match_skip =
	\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
	\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
        \ "Regexp\\|RegexpDelimiter\\|" .
	\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
	\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
	\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
	\ "InstanceVariable\\|GlobalVariable\\|Symbol\\)\\>'"
endif

setlocal formatoptions-=t formatoptions+=croql

setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\)
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'\%(\.rb\)\=$','.rb','')
setlocal suffixesadd=.rb

if exists("&ofu") && has("ruby")
  setlocal omnifunc=rubycomplete#Complete
endif

" To activate, :set ballooneval
if has('balloon_eval') && exists('+balloonexpr')
  setlocal balloonexpr=RubyBalloonexpr()
endif


" TODO:
"setlocal define=^\\s*def

setlocal comments=:#
setlocal commentstring=#\ %s

if !exists('g:ruby_version_paths')
  let g:ruby_version_paths = {}
endif

function! s:query_path(root) abort
  let code = "print $:.join %q{,}"
  if &shell =~# 'sh'
    let prefix = 'env PATH='.shellescape($PATH).' '
  else
    let prefix = ''
  endif
  if &shellxquote == "'"
    let path_check = prefix.'ruby --disable-gems -e "' . code . '"'
  else
    let path_check = prefix."ruby --disable-gems -e '" . code . "'"
  endif

  let cd = haslocaldir() ? 'lcd' : 'cd'
  let cwd = fnameescape(getcwd())
  try
    exe cd fnameescape(a:root)
    let path = split(system(path_check),',')
    exe cd cwd
    return path
  finally
    exe cd cwd
  endtry
endfunction

function! s:build_path(path) abort
  let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
  if &g:path !~# '\v^\.%(,/%(usr|emx)/include)=,,$'
    let path = substitute(&g:path,',,$',',','') . ',' . path
  endif
  return path
endfunction

if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h'))
  let s:version_file = findfile('.ruby-version', '.;')
  if !empty(s:version_file) && filereadable(s:version_file)
    let b:ruby_version = get(readfile(s:version_file, '', 1), '')
    if !has_key(g:ruby_version_paths, b:ruby_version)
      let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h'))
    endif
  endif
endif

if exists("g:ruby_path")
  let s:ruby_path = type(g:ruby_path) == type([]) ? join(g:ruby_path, ',') : g:ruby_path
elseif has_key(g:ruby_version_paths, get(b:, 'ruby_version', ''))
  let s:ruby_paths = g:ruby_version_paths[b:ruby_version]
  let s:ruby_path = s:build_path(s:ruby_paths)
else
  if !exists('g:ruby_default_path')
    if has("ruby") && has("win32")
      ruby ::VIM::command( 'let g:ruby_default_path = split("%s",",")' % $:.join(%q{,}) )
    elseif executable('ruby')
      let g:ruby_default_path = s:query_path($HOME)
    else
      let g:ruby_default_path = map(split($RUBYLIB,':'), 'v:val ==# "." ? "" : v:val')
    endif
  endif
  let s:ruby_paths = g:ruby_default_path
  let s:ruby_path = s:build_path(s:ruby_paths)
endif

if stridx(&l:path, s:ruby_path) == -1
  let &l:path = s:ruby_path
endif
if exists('s:ruby_paths') && stridx(&l:tags, join(map(copy(s:ruby_paths),'v:val."/tags"'),',')) == -1
  let &l:tags = &tags . ',' . join(map(copy(s:ruby_paths),'v:val."/tags"'),',')
endif

if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
  let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" .
                     \ "All Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< tags< kp<"
      \."| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip"
      \."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
      \."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"

function! s:map(mode, flags, map) abort
  let from = matchstr(a:map, '\S\+')
  if empty(mapcheck(from, a:mode))
    exe a:mode.'map' '<buffer>'.(a:0 ? a:1 : '') a:map
    let b:undo_ftplugin .= '|sil! '.a:mode.'unmap <buffer> '.from
  endif
endfunction

cmap <buffer><script><expr> <Plug><cword> substitute(RubyCursorIdentifier(),'^$',"\022\027",'')
cmap <buffer><script><expr> <Plug><cfile> substitute(RubyCursorFile(),'^$',"\022\006",'')
let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><cword>| sil! cunmap <buffer> <Plug><cfile>"

if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
  nmap <buffer><script> <SID>:  :<C-U>
  nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>

  nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','n')<CR>
  nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','n')<CR>
  nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','n')<CR>
  nnoremap <silent> <buffer> ]M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','','n')<CR>
  xnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','v')<CR>
  xnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','v')<CR>
  xnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','v')<CR>
  xnoremap <silent> <buffer> ]M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','','v')<CR>

  nnoremap <silent> <buffer> [[ :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','b','n')<CR>
  nnoremap <silent> <buffer> ]] :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','','n')<CR>
  nnoremap <silent> <buffer> [] :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','b','n')<CR>
  nnoremap <silent> <buffer> ][ :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','','n')<CR>
  xnoremap <silent> <buffer> [[ :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','b','v')<CR>
  xnoremap <silent> <buffer> ]] :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','','v')<CR>
  xnoremap <silent> <buffer> [] :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','b','v')<CR>
  xnoremap <silent> <buffer> ][ :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','','v')<CR>

  let b:undo_ftplugin = b:undo_ftplugin
        \."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
        \."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'"

  if maparg('im','x') == '' && maparg('im','o') == '' && maparg('am','x') == '' && maparg('am','o') == ''
    onoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
    onoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR>
    xnoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
    xnoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR>
    let b:undo_ftplugin = b:undo_ftplugin
          \."| sil! exe 'ounmap <buffer> im' | sil! exe 'ounmap <buffer> am'"
          \."| sil! exe 'xunmap <buffer> im' | sil! exe 'xunmap <buffer> am'"
  endif

  if maparg('iM','x') == '' && maparg('iM','o') == '' && maparg('aM','x') == '' && maparg('aM','o') == ''
    onoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
    onoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR>
    xnoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
    xnoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR>
    let b:undo_ftplugin = b:undo_ftplugin
          \."| sil! exe 'ounmap <buffer> iM' | sil! exe 'ounmap <buffer> aM'"
          \."| sil! exe 'xunmap <buffer> iM' | sil! exe 'xunmap <buffer> aM'"
  endif

  call s:map('c', '', '<C-R><C-W> <Plug><cword>')
  call s:map('c', '', '<C-R><C-F> <Plug><cfile>')

  cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
  call s:map('n', '<silent>', '<C-]>       <SID>:exe  v:count1."tag <Plug><cword>"<SID>tagzv<CR>')
  call s:map('n', '<silent>', 'g<C-]>      <SID>:exe         "tjump <Plug><cword>"<SID>tagzv<CR>')
  call s:map('n', '<silent>', 'g]          <SID>:exe       "tselect <Plug><cword>"<SID>tagzv<CR>')
  call s:map('n', '<silent>', '<C-W>]      <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
  call s:map('n', '<silent>', '<C-W><C-]>  <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
  call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe        "stjump <Plug><cword>"<SID>tagzv<CR>')
  call s:map('n', '<silent>', '<C-W>g]     <SID>:exe      "stselect <Plug><cword>"<SID>tagzv<CR>')
  call s:map('n', '<silent>', '<C-W>}      <SID>:exe v:count1."ptag <Plug><cword>"<CR>')
  call s:map('n', '<silent>', '<C-W>g}     <SID>:exe        "ptjump <Plug><cword>"<CR>')

  call s:map('n', '<silent>', 'gf           <SID>c:find <Plug><cfile><CR>')
  call s:map('n', '<silent>', '<C-W>f      <SID>c:sfind <Plug><cfile><CR>')
  call s:map('n', '<silent>', '<C-W><C-F>  <SID>c:sfind <Plug><cfile><CR>')
  call s:map('n', '<silent>', '<C-W>gf   <SID>c:tabfind <Plug><cfile><CR>')
endif

let &cpo = s:cpo_save
unlet s:cpo_save

if exists("g:did_ruby_ftplugin_functions")
  finish
endif
let g:did_ruby_ftplugin_functions = 1

function! RubyBalloonexpr() abort
  if !exists('s:ri_found')
    let s:ri_found = executable('ri')
  endif
  if s:ri_found
    let line = getline(v:beval_lnum)
    let b = matchstr(strpart(line,0,v:beval_col),'\%(\w\|[:.]\)*$')
    let a = substitute(matchstr(strpart(line,v:beval_col),'^\w*\%([?!]\|\s*=\)\?'),'\s\+','','g')
    let str = b.a
    let before = strpart(line,0,v:beval_col-strlen(b))
    let after  = strpart(line,v:beval_col+strlen(a))
    if str =~ '^\.'
      let str = substitute(str,'^\.','#','g')
      if before =~ '\]\s*$'
        let str = 'Array'.str
      elseif before =~ '}\s*$'
        " False positives from blocks here
        let str = 'Hash'.str
      elseif before =~ "[\"'`]\\s*$" || before =~ '\$\d\+\s*$'
        let str = 'String'.str
      elseif before =~ '\$\d\+\.\d\+\s*$'
        let str = 'Float'.str
      elseif before =~ '\$\d\+\s*$'
        let str = 'Integer'.str
      elseif before =~ '/\s*$'
        let str = 'Regexp'.str
      else
        let str = substitute(str,'^#','.','')
      endif
    endif
    let str = substitute(str,'.*\.\s*to_f\s*\.\s*','Float#','')
    let str = substitute(str,'.*\.\s*to_i\%(nt\)\=\s*\.\s*','Integer#','')
    let str = substitute(str,'.*\.\s*to_s\%(tr\)\=\s*\.\s*','String#','')
    let str = substitute(str,'.*\.\s*to_sym\s*\.\s*','Symbol#','')
    let str = substitute(str,'.*\.\s*to_a\%(ry\)\=\s*\.\s*','Array#','')
    let str = substitute(str,'.*\.\s*to_proc\s*\.\s*','Proc#','')
    if str !~ '^\w'
      return ''
    endif
    silent! let res = substitute(system("ri -f rdoc -T \"".str.'"'),'\n$','','')
    if res =~ '^Nothing known about' || res =~ '^Bad argument:' || res =~ '^More than one method'
      return ''
    endif
    return res
  else
    return ""
  endif
endfunction

function! s:searchsyn(pattern, syn, flags, mode) abort
  let cnt = v:count1
  norm! m'
  if a:mode ==# 'v'
    norm! gv
  endif
  let i = 0
  while i < cnt
    let i = i + 1
    let line = line('.')
    let col  = col('.')
    let pos = search(a:pattern,'W'.a:flags)
    while pos != 0 && s:synname() !~# a:syn
      let pos = search(a:pattern,'W'.a:flags)
    endwhile
    if pos == 0
      call cursor(line,col)
      return
    endif
  endwhile
endfunction

function! s:synname() abort
  return synIDattr(synID(line('.'),col('.'),0),'name')
endfunction

function! s:wrap_i(back,forward) abort
  execute 'norm k'.a:forward
  let line = line('.')
  execute 'norm '.a:back
  if line('.') == line - 1
    return s:wrap_a(a:back,a:forward)
  endif
  execute 'norm jV'.a:forward.'k'
endfunction

function! s:wrap_a(back,forward) abort
  execute 'norm '.a:forward
  if line('.') < line('$') && getline(line('.')+1) ==# ''
    let after = 1
  endif
  execute 'norm '.a:back
  while getline(line('.')-1) =~# '^\s*#' && line('.')
    -
  endwhile
  if exists('after')
    execute 'norm V'.a:forward.'j'
  elseif line('.') > 1 && getline(line('.')-1) =~# '^\s*$'
    execute 'norm kV'.a:forward
  else
    execute 'norm V'.a:forward
  endif
endfunction

function! RubyCursorIdentifier() abort
  let asciicode    = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)'
  let number       = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode
  let operator     = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)'
  let method       = '\%(\.[_a-zA-Z]\w*\s*=>\@!\|\<[_a-zA-Z]\w*\>[?!]\=\)'
  let global       = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)'
  let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)'
  let pattern      = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)'
  let [lnum, col]  = searchpos(pattern,'bcn',line('.'))
  let raw          = matchstr(getline('.')[col-1 : ],pattern)
  let stripped     = substitute(substitute(raw,'\s\+=$','=',''),'^\s*[:.]\=','','')
  return stripped == '' ? expand("<cword>") : stripped
endfunction

function! RubyCursorFile() abort
  let isfname = &isfname
  try
    set isfname+=:
    let cfile = expand('<cfile>')
  finally
    let isfname = &isfname
  endtry
  let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
  let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
  let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : ''
  if s:synname() ==# 'rubyConstant'
    let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
    let cfile = substitute(cfile,'::','/','g')
    let cfile = substitute(cfile,'\(\u\+\)\(\u\l\)','\1_\2', 'g')
    let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
    return tolower(cfile) . '.rb'
  elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
    let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
  elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
    let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
    let cfile = expand('%:p:h') . target . ext
  elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$'
    let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
  elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.'
    let cfile = expand('%:p:h') . strpart(cfile, 2)
  else
    return substitute(cfile, '\C\v^(.*):(\d+)%(:in)=$', '+\2 \1', '')
  endif
  let cwdpat = '^\M' . substitute(getcwd(), '[\/]', '\\[\\/]', 'g').'\ze\[\/]'
  let cfile = substitute(cfile, cwdpat, '.', '')
  if fnameescape(cfile) !=# cfile
    return '+ '.fnameescape(cfile)
  else
    return cfile
  endif
endfunction

"
" Instructions for enabling "matchit" support:
"
" 1. Look for the latest "matchit" plugin at
"
"         http://www.vim.org/scripts/script.php?script_id=39
"
"    It is also packaged with Vim, in the $VIMRUNTIME/macros directory.
"
" 2. Copy "matchit.txt" into a "doc" directory (e.g. $HOME/.vim/doc).
"
" 3. Copy "matchit.vim" into a "plugin" directory (e.g. $HOME/.vim/plugin).
"
" 4. Ensure this file (ftplugin/ruby.vim) is installed.
"
" 5. Ensure you have this line in your $HOME/.vimrc:
"         filetype plugin on
"
" 6. Restart Vim and create the matchit documentation:
"
"         :helptags ~/.vim/doc
"
"    Now you can do ":help matchit", and you should be able to use "%" on Ruby
"    keywords.  Try ":echo b:match_words" to be sure.
"
" Thanks to Mark J. Reed for the instructions.  See ":help vimrc" for the
" locations of plugin directories, etc., as there are several options, and it
" differs on Windows.  Email gsinclair@soyabean.com.au if you need help.
"

" vim: nowrap sw=2 sts=2 ts=8:
PK�j�Z���vim80/ftplugin/protocols.vimnu�[���" Vim filetype plugin file
" Language:             protocols(5) - Internet protocols definition file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZgBH�hhvim80/ftplugin/json.vimnu�[���" Vim filetype plugin
" Language:		JSON
" Maintainer:		David Barnett <daviebdawg+vim@gmail.com>
" Last Change:		2014 Jul 16

if exists('b:did_ftplugin')
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = 'setlocal formatoptions< comments< commentstring<'

setlocal formatoptions-=t

" JSON has no comments.
setlocal comments=
setlocal commentstring=
PK�j�Z8;��vim80/ftplugin/ada.vimnu�[���"------------------------------------------------------------------------------
"  Description: Perform Ada specific completion & tagging.
"     Language: Ada (2005)
"	   $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
"   Maintainer: Martin Krischik <krischik@users.sourceforge.net>
"		Taylor Venable <taylor@metasyntax.net>
"		Neil Bird <neil@fnxweb.com>
"      $Author: krischik $
"	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6 with patch from David Bürgin
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/ftplugin/ada.vim $
"      History: 24.05.2006 MK Unified Headers
"		26.05.2006 MK ' should not be in iskeyword.
"		16.07.2006 MK Ada-Mode as vim-ball
"		02.10.2006 MK Better folding.
"		15.10.2006 MK Bram's suggestion for runtime integration
"               05.11.2006 MK Bram suggested not to use include protection for
"                             autoload
"		05.11.2006 MK Bram suggested to save on spaces
"		08.07.2007 TV fix default compiler problems.
"    Help Page: ft-ada-plugin
"------------------------------------------------------------------------------
" Provides mapping overrides for tag jumping that figure out the current
" Ada object and tag jump to that, not the 'simple' vim word.
" Similarly allows <Ctrl-N> matching of full-length ada entities from tags.
"------------------------------------------------------------------------------

" Only do this when not done yet for this buffer
if exists ("b:did_ftplugin") || version < 700
   finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 45

"
" Temporarily set cpoptions to ensure the script loads OK
"
let s:cpoptions = &cpoptions
set cpoptions-=C

" Section: Comments  {{{1
"
setlocal comments=O:--,:--\ \ 
setlocal commentstring=--\ \ %s
setlocal complete=.,w,b,u,t,i

" Section: case	     {{{1
"
setlocal nosmartcase
setlocal ignorecase

" Section: formatoptions {{{1
"
setlocal formatoptions+=ron

" Section: Tagging {{{1
"
if exists ("g:ada_extended_tagging")
   " Make local tag mappings for this buffer (if not already set)
   if g:ada_extended_tagging == 'jump'
      if mapcheck('<C-]>','n') == ''
	 nnoremap <unique> <buffer> <C-]>    :call ada#Jump_Tag ('', 'tjump')<cr>
      endif
      if mapcheck('g<C-]>','n') == ''
	 nnoremap <unique> <buffer> g<C-]>   :call ada#Jump_Tag ('','stjump')<cr>
      endif
   elseif g:ada_extended_tagging == 'list'
      if mapcheck('<C-]>','n') == ''
	 nnoremap <unique> <buffer> <C-]>    :call ada#List_Tag ()<cr>
      endif
      if mapcheck('g<C-]>','n') == ''
	 nnoremap <unique> <buffer> g<C-]>   :call ada#List_Tag ()<cr>
      endif
   endif
endif

" Section: Completion {{{1
"
setlocal completefunc=ada#User_Complete
setlocal omnifunc=adacomplete#Complete

if exists ("g:ada_extended_completion")
   if mapcheck ('<C-N>','i') == ''
      inoremap <unique> <buffer> <C-N> <C-R>=ada#Completion("\<lt>C-N>")<cr>
   endif
   if mapcheck ('<C-P>','i') == ''
      inoremap <unique> <buffer> <C-P> <C-R>=ada#Completion("\<lt>C-P>")<cr>
   endif
   if mapcheck ('<C-X><C-]>','i') == ''
      inoremap <unique> <buffer> <C-X><C-]> <C-R>=<SID>ada#Completion("\<lt>C-X>\<lt>C-]>")<cr>
   endif
   if mapcheck ('<bs>','i') == ''
      inoremap <silent> <unique> <buffer> <bs> <C-R>=ada#Insert_Backspace ()<cr>
   endif
endif

" Section: Matchit {{{1
"
" Only do this when not done yet for this buffer & matchit is used
"
if !exists ("b:match_words")  &&
  \ exists ("loaded_matchit")
   "
   " The following lines enable the macros/matchit.vim plugin for
   " Ada-specific extended matching with the % key.
   "
   let s:notend      = '\%(\<end\s\+\)\@<!'
   let b:match_words =
      \ s:notend . '\<if\>:\<elsif\>:\<else\>:\<end\>\s\+\<if\>,' .
      \ s:notend . '\<case\>:\<when\>:\<end\>\s\+\<case\>,' .
      \ '\%(\<while\>.*\|\<for\>.*\|'.s:notend.'\)\<loop\>:\<end\>\s\+\<loop\>,' .
      \ '\%(\<do\>\|\<begin\>\):\<exception\>:\<end\>\s*\%($\|[;A-Z]\),' .
      \ s:notend . '\<record\>:\<end\>\s\+\<record\>'
endif


" Section: Compiler {{{1
"
if ! exists("g:ada_default_compiler")
   if has("vms")
      let g:ada_default_compiler = 'decada'
   else
      let g:ada_default_compiler = 'gnat'
   endif
endif

if ! exists("current_compiler")			||
   \ current_compiler != g:ada_default_compiler
   execute "compiler " . g:ada_default_compiler
endif

" Section: Folding {{{1
"
if exists("g:ada_folding")
   if g:ada_folding[0] == 'i'
      setlocal foldmethod=indent
      setlocal foldignore=--
      setlocal foldnestmax=5
   elseif g:ada_folding[0] == 'g'
      setlocal foldmethod=expr
      setlocal foldexpr=ada#Pretty_Print_Folding(v:lnum)
   elseif g:ada_folding[0] == 's'
      setlocal foldmethod=syntax
   endif
   setlocal tabstop=8
   setlocal softtabstop=3
   setlocal shiftwidth=3
endif

" Section: Abbrev {{{1
"
if exists("g:ada_abbrev")
   iabbrev ret	return
   iabbrev proc procedure
   iabbrev pack package
   iabbrev func function
endif

" Section: Commands, Mapping, Menus {{{1
"
call ada#Map_Popup (
   \ 'Tag.List',
   \  'l',
   \ 'call ada#List_Tag ()')
call ada#Map_Popup (
   \'Tag.Jump',
   \'j',
   \'call ada#Jump_Tag ()')
call ada#Map_Menu (
   \'Tag.Create File',
   \':AdaTagFile',
   \'call ada#Create_Tags (''file'')')
call ada#Map_Menu (
   \'Tag.Create Dir',
   \':AdaTagDir',
   \'call ada#Create_Tags (''dir'')')

call ada#Map_Menu (
   \'Highlight.Toggle Space Errors',
   \ ':AdaSpaces',
   \'call ada#Switch_Syntax_Option (''space_errors'')')
call ada#Map_Menu (
   \'Highlight.Toggle Lines Errors',
   \ ':AdaLines',
   \'call ada#Switch_Syntax_Option (''line_errors'')')
call ada#Map_Menu (
   \'Highlight.Toggle Rainbow Color',
   \ ':AdaRainbow',
   \'call ada#Switch_Syntax_Option (''rainbow_color'')')
call ada#Map_Menu (
   \'Highlight.Toggle Standard Types',
   \ ':AdaTypes',
   \'call ada#Switch_Syntax_Option (''standard_types'')')

" 1}}}
" Reset cpoptions
let &cpoptions = s:cpoptions
unlet s:cpoptions

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006	Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
PK�j�Z�����vim80/ftplugin/libao.vimnu�[���" Vim filetype plugin file
" Language:             libao.conf(5) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�	B��vim80/ftplugin/rmd.vimnu�[���" Vim filetype plugin file
" Language: R Markdown file
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change:	Mon Jun 06, 2016  09:41PM
" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)

" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
  finish
endif

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim

" Nvim-R plugin needs this
if exists("*CompleteR")
  if &omnifunc == "CompleteR"
    let b:rplugin_nonr_omnifunc = ""
  else
    let b:rplugin_nonr_omnifunc = &omnifunc
  endif
  set omnifunc=CompleteR
endif

setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
setlocal iskeyword=@,48-57,_,.

let s:cpo_save = &cpo
set cpo&vim

" Enables pandoc if it is installed
unlet! b:did_ftplugin
runtime ftplugin/pandoc.vim

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
        \ "All Files (*.*)\t*.*\n"
endif

if exists('b:undo_ftplugin')
  let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
else
  let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
endif

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: sw=2
PK�j�ZZՅ��vim80/ftplugin/fvwm.vimnu�[���" Created	: Tue 09 May 2006 02:07:31 PM CDT
" Modified	: Tue 09 May 2006 02:07:31 PM CDT
" Author	: Gautam Iyer <gi1242@users.sourceforge.net>
" Description	: ftplugin for fvwm config files

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql
PK�j�Z����vim80/ftplugin/sh.vimnu�[���" Vim filetype plugin file
" Language:	sh
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

setlocal commentstring=#%s

" Shell:  thanks to Johannes Zellner
if exists("loaded_matchit")
    let s:sol = '\%(;\s*\|^\s*\)\@<='  " start of line
    let b:match_words =
    \ s:sol.'if\>:' . s:sol.'elif\>:' . s:sol.'else\>:' . s:sol. 'fi\>,' .
    \ s:sol.'\%(for\|while\)\>:' . s:sol. 'done\>,' .
    \ s:sol.'case\>:' . s:sol. 'esac\>'
endif

" Change the :browse e filter to primarily show shell-related files.
if has("gui_win32")
    let  b:browsefilter="Bourne Shell Scripts (*.sh)\t*.sh\n" .
		\	"Korn Shell Scripts (*.ksh)\t*.ksh\n" .
		\	"Bash Shell Scripts (*.bash)\t*.bash\n" .
		\	"All Files (*.*)\t*.*\n"
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal cms< | unlet! b:browsefilter b:match_words"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z�W�SSvim80/ftplugin/mail.vimnu�[���" Vim filetype plugin file
" Language:	Mail
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2012 Nov 20

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl modeline< tw< fo< comments<"

" Don't use modelines in e-mail messages, avoid trojan horses and nasty
" "jokes" (e.g., setting 'textwidth' to 5).
setlocal nomodeline

" many people recommend keeping e-mail messages 72 chars wide
if &tw == 0
  setlocal tw=72
endif

" Set 'formatoptions' to break text lines and keep the comment leader ">".
setlocal fo+=tcql

" Add n:> to 'comments, in case it was removed elsewhere
setlocal comments+=n:>

" Add mappings, unless the user doesn't want this.
if !exists("no_plugin_maps") && !exists("no_mail_maps")
  " Quote text by inserting "> "
  if !hasmapto('<Plug>MailQuote')
    vmap <buffer> <LocalLeader>q <Plug>MailQuote
    nmap <buffer> <LocalLeader>q <Plug>MailQuote
  endif
  vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>:noh<CR>``
  nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>:noh<CR>``
endif
PK�j�ZL��L��vim80/ftplugin/initex.vimnu�[���" filetype plugin for TeX and variants
" Language:     TeX (ft=initex)
" Maintainer:   Benji Fisher, Ph.D. <benji@member.AMS.org>
" Version:	1.0
" Last Change:	Wed 19 Apr 2006

" Only do this when not done yet for this buffer.
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer.
let b:did_ftplugin = 1

" Avoid problems if running in 'compatible' mode.
let s:save_cpo = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< define< include< sua<"

" Set 'comments' to format dashed lists in comments
setlocal com=sO:%\ -,mO:%\ \ ,eO:%%,:%

" Set 'commentstring' to recognize the % comment character:
" (Thanks to Ajit Thakkar.)
setlocal cms=%%s

" Allow "[d" to be used to find a macro definition:
let &l:define='\\\([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
	\ .	'def\|\\font\|\\\(future\)\=let'

" Tell Vim to recognize \input bar :
let &l:include = '\\input'
setlocal suffixesadd=.tex

let &cpo = s:save_cpo
unlet s:save_cpo

" vim:sts=2:sw=2:
PK�j�Z�D���vim80/ftplugin/gitcommit.vimnu�[���" Vim filetype plugin
" Language:	git commit file
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif

runtime! ftplugin/git.vim
let b:did_ftplugin = 1

setlocal comments=:# commentstring=#\ %s
setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms<'

if exists("g:no_gitcommit_commands") || v:version < 700
  finish
endif

if !exists("b:git_dir")
  let b:git_dir = expand("%:p:h")
endif

command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)

let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"

function! s:diffcomplete(A,L,P)
  let args = ""
  if a:P <= match(a:L." -- "," -- ")+3
    let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n"
  end
  if exists("b:git_dir") && a:A !~ '^-'
    let tree = fnamemodify(b:git_dir,':h')
    if strpart(getcwd(),0,strlen(tree)) == tree
      let args = args."\n".system("git diff --cached --name-only")
    endif
  endif
  return args
endfunction

function! s:gitdiffcached(bang,gitdir,...)
  let tree = fnamemodify(a:gitdir,':h')
  let name = tempname()
  let git = "git"
  if strpart(getcwd(),0,strlen(tree)) != tree
    let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"')
  endif
  if a:0
    let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'"))
  else
    let extra = "-p --stat=".&columns
  endif
  call system(git." diff --cached --no-color --no-ext-diff ".extra." > ".(exists("*shellescape") ? shellescape(name) : name))
  exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name)
  wincmd P
  let b:git_dir = a:gitdir
  command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
  nnoremap <buffer> <silent> q :q<CR>
  setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
endfunction
PK�j�Zɹ���vim80/ftplugin/reva.vimnu�[���" Vim ftplugin file
" Language:	Reva Forth
" Version:	7.1
" Last Change:	2008/01/11
" Maintainer:	Ron Aaron <ron@ronware.org>
" URL:		http://ronware.org/reva/
" Filetypes:	*.rf *.frt 
" NOTE: 	Forth allows any non-whitespace in a name, so you need to do:
" 		setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
"
" 		This goes with the syntax/reva.vim file.

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
 finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

setlocal sts=4 sw=4 
setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\
setlocal fo=tcrqol
setlocal matchpairs+=\::;
setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
PK�j�Z�
1�vim80/ftplugin/xslt.vimnu�[���" Vim filetype plugin file
" Language:	xslt
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim

let b:did_ftplugin = 1

" Change the :browse e filter to primarily show xsd-related files.
if has("gui_win32") && exists("b:browsefilter")
    let  b:browsefilter="XSLT Files (*.xsl,*.xslt)\t*.xsl;*.xslt\n" . b:browsefilter
endif
PK�j�Z�����vim80/ftplugin/m4.vimnu�[���" Vim filetype plugin file
" Language:             m4
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:#,:dnl commentstring=dnl\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�3G00vim80/ftplugin/debcontrol.vimnu�[���" Vim filetype plugin file (GUI menu and folding)
" Language:     Debian control files
" Maintainer:   Debian Vim Maintainers
" Former Maintainer:    Pierre Habouzit <madcoder@debian.org>
" Last Change:  2018-01-06
" URL:          https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim

" Do these settings once per buffer
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin=1

" {{{1 Local settings (do on every load)
if exists("g:debcontrol_fold_enable")
  setlocal foldmethod=expr
  setlocal foldexpr=DebControlFold(v:lnum)
  setlocal foldtext=DebControlFoldText()
endif
setlocal textwidth=0

" Clean unloading
let b:undo_ftplugin = "setlocal tw< foldmethod< foldexpr< foldtext<"

" }}}1

" {{{1 folding

function! s:getField(f, lnum)
  let line = getline(a:lnum)
  let fwdsteps = 0
  while line !~ '^'.a:f.':'
    let fwdsteps += 1
    let line = getline(a:lnum + fwdsteps)
    if line == ''
      return 'unknown'
    endif
  endwhile
  return substitute(line, '^'.a:f.': *', '', '')
endfunction

function! DebControlFoldText()
  if v:folddashes == '-'  " debcontrol entry fold
    let type = substitute(getline(v:foldstart), ':.*', '', '')
    if type == 'Source'
      let ftext = substitute(foldtext(), ' *Source: *', ' ', '')
      return ftext . ' -- ' . s:getField('Maintainer', v:foldstart) . ' '
    endif
    let arch  = s:getField('Architecture', v:foldstart)
    let ftext = substitute(foldtext(), ' *Package: *', ' [' . arch . '] ', '')
    return ftext . ': ' . s:getField('Description', v:foldstart) . ' '
  endif
  return foldtext()
endfunction

function! DebControlFold(l)

  " This is for not merging blank lines around folds to them
  if getline(a:l) =~ '^Source:'
    return '>1'
  endif

  if getline(a:l) =~ '^Package:'
    return '>1'
  endif

  return '='
endfunction

" }}}1
PK�j�Z
p�lvim80/ftplugin/css.vimnu�[���" Vim filetype plugin file
" Language:             CSS
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo< ofu<"

setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
setlocal formatoptions-=t formatoptions+=croql
setlocal omnifunc=csscomplete#CompleteCSS

let &l:include = '^\s*@import\s\+\%(url(\)\='

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZS�����vim80/ftplugin/indent.vimnu�[���" Vim filetype plugin file
" Language:             indent(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�c��vim80/ftplugin/sudoers.vimnu�[���" Vim filetype plugin file
" Language:             sudoers(5) configuration files
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z')�9KKvim80/ftplugin/htmldjango.vimnu�[���" Vim filetype plugin file
" Language:	Django HTML template
" Maintainer:	Dave Hodder <dmh@dmh.org.uk>
" Last Change:	2007 Jan 25

" Only use this filetype plugin when no other was loaded.
if exists("b:did_ftplugin")
  finish
endif

" Use HTML and Django template ftplugins.
runtime! ftplugin/html.vim
runtime! ftplugin/django.vim
PK�j�Zop�||vim80/ftplugin/aspvbs.vimnu�[���" Vim filetype plugin file
" Language:	aspvbs
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" .
	    \	     "All Files (*.*)\t*.*\n"
let s:match_words = ""

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif
if exists("b:match_words")
    let s:match_words = b:match_words
endif

" ASP:  Active Server Pages (with Visual Basic Script)
" thanks to Gontran BAERTS
if exists("loaded_matchit")
  let s:notend = '\%(\<end\s\+\)\@<!'
  let b:match_ignorecase = 1
  let b:match_words =
  \ s:notend . '\<if\>\%(.\{-}then\s\+\w\)\@!:\<elseif\>:^\s*\<else\>:\<end\s\+\<if\>,' .
  \ s:notend . '\<select\s\+case\>:\<case\>:\<case\s\+else\>:\<end\s\+select\>,' .
  \ '^\s*\<sub\>:\<end\s\+sub\>,' .
  \ '^\s*\<function\>:\<end\s\+function\>,' .
  \ '\<class\>:\<end\s\+class\>,' .
  \ '^\s*\<do\>:\<loop\>,' .
  \ '^\s*\<for\>:\<next\>,' .
  \ '\<while\>:\<wend\>,' .
  \ s:match_words
endif

" Change the :browse e filter to primarily show ASP-related files.
if has("gui_win32")
    let  b:browsefilter="ASP Files (*.asp)\t*.asp\n" . s:browsefilter
endif

let b:undo_ftplugin = "unlet! b:match_words b:match_ignorecase b:browsefilter | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z\v�=vim80/ftplugin/javascript.vimnu�[���" Vim filetype plugin file
" Language:	Javascript
" Maintainer:	Doug Kearns <dougkearns@gmail.com>
" Last Change:  2008 Jun 15
" URL:		http://gus.gscit.monash.edu.au/~djkea2/vim/ftplugin/javascript.vim

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo-=C

" Set 'formatoptions' to break comment lines but not other lines,
" " and insert the comment leader when hitting <CR> or using "o".
setlocal formatoptions-=t formatoptions+=croql

" Set completion with CTRL-X CTRL-O to autoloaded function.
if exists('&ofu')
    setlocal omnifunc=javascriptcomplete#CompleteJS
endif

" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

setlocal commentstring=//%s

" Change the :browse e filter to primarily show Java-related files.
if has("gui_win32")
    let  b:browsefilter="Javascript Files (*.js)\t*.js\n" .
		\	"All Files (*.*)\t*.*\n"
endif
       
let b:undo_ftplugin = "setl fo< ofu< com< cms<" 

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��A��vim80/ftplugin/help.vimnu�[���" Vim filetype plugin file
" Language:             Vim help file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl fo< tw< cole< cocu<"

setlocal formatoptions+=tcroql textwidth=78
if has("conceal")
  setlocal cole=2 cocu=nc
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zs����vim80/ftplugin/dosini.vimnu�[���" Vim filetype plugin file
" Language:             Configuration File (ini file) for MSDOS/MS Windows
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:; commentstring=;\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z\#�"��vim80/ftplugin/elinks.vimnu�[���" Vim filetype plugin file
" Language:             elinks(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��B���vim80/ftplugin/dircolors.vimnu�[���" Vim filetype plugin file
" Language:             dircolors(1) input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Zb|�rrvim80/ftplugin/scheme.vimnu�[���" Vim filetype plugin file
" Language: Scheme (R7RS)
" Last Change: 2018-03-05
" Author: Evan Hanson <evhan@foldling.org>
" Maintainer: Evan Hanson <evhan@foldling.org>
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
" URL: https://foldling.org/vim/ftplugin/scheme.vim

if exists('b:did_ftplugin')
  finish
endif

let s:cpo = &cpo
set cpo&vim

setl lisp
setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|#
setl commentstring=;%s
setl define=^\\s*(def\\k*
setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126

let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<'

setl lispwords=case
setl lispwords+=define
setl lispwords+=define-record-type
setl lispwords+=define-syntax
setl lispwords+=define-values
setl lispwords+=do
setl lispwords+=guard
setl lispwords+=lambda
setl lispwords+=let
setl lispwords+=let*
setl lispwords+=let*-values
setl lispwords+=let-syntax
setl lispwords+=let-values
setl lispwords+=letrec
setl lispwords+=letrec*
setl lispwords+=letrec-syntax
setl lispwords+=parameterize
setl lispwords+=set!
setl lispwords+=syntax-rules
setl lispwords+=unless
setl lispwords+=when

let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<'

let b:did_scheme_ftplugin = 1

if exists('b:is_chicken') || exists('g:is_chicken')
  exe 'ru! ftplugin/chicken.vim'
endif

unlet b:did_scheme_ftplugin
let b:did_ftplugin = 1
let &cpo = s:cpo
unlet s:cpo
PK�j�Z�q�==vim80/ftplugin/ant.vimnu�[���" Vim filetype plugin file
" Language:	ant
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
	    \	     "All Files (*.*)\t*.*\n"

runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
let b:did_ftplugin = 1

" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")
    let s:undo_ftplugin = b:undo_ftplugin
endif
if exists("b:browsefilter")
    let s:browsefilter = b:browsefilter
endif

" Change the :browse e filter to primarily show Ant-related files.
if has("gui_win32")
    let b:browsefilter = "Build Files (build.xml)\tbuild.xml\n" .
		\	 "Java Files (*.java)\t*.java\n" .
		\	 "Properties Files (*.prop*)\t*.prop*\n" .
		\	 "Manifest Files (*.mf)\t*.mf\n" .
		\	 s:browsefilter
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z��vim80/ftplugin/mailaliases.vimnu�[���" Vim filetype plugin file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��q�vim80/ftplugin/scala.vimnu�[���" Vim filetype plugin file
" Language:             Scala
" Maintainer:           Derek Wyatt
" URL:                  https://github.com/derekwyatt/vim-scala
" License:              Same as Vim
" Last Change:          02 August 2016
" ----------------------------------------------------------------------------

if exists('b:did_ftplugin') || &cp
  finish
endif
let b:did_ftplugin = 1

" j is fairly new in Vim, so don't complain if it's not there
setlocal formatoptions-=t formatoptions+=croqnl
silent! setlocal formatoptions+=j

" Just like c.vim, but additionally doesn't wrap text onto /** line when
" formatting. Doesn't bungle bulleted lists when formatting.
if get(g:, 'scala_scaladoc_indent', 0)
  setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s2:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
else
  setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
endif
setlocal commentstring=//\ %s

setlocal shiftwidth=2 softtabstop=2 expandtab

setlocal include='^\s*import'
setlocal includeexpr='substitute(v:fname,"\\.","/","g")'

setlocal path+=src/main/scala,src/test/scala
setlocal suffixesadd=.scala

" vim:set sw=2 sts=2 ts=8 et:
PK�j�Z��hddvim80/ftplugin/dockerfile.vimnu�[���" Vim filetype plugin
" Language:	Dockerfile
" Maintainer:   Honza Pokorny <http://honza.ca>
" Last Change:	2014 Aug 29

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl commentstring<"

setlocal commentstring=#\ %s
PK�j�Zeji���vim80/ftplugin/markdown.vimnu�[���" Vim filetype plugin
" Language:		Markdown
" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
" Last Change:		2016 Aug 29

if exists("b:did_ftplugin")
  finish
endif

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim

setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:

if exists('b:undo_ftplugin')
  let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
else
  let b:undo_ftplugin = "setl cms< com< fo< flp<"
endif

function! MarkdownFold()
  let line = getline(v:lnum)

  " Regular headers
  let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=')
  if depth > 0
    return ">" . depth
  endif

  " Setext style headings
  let nextline = getline(v:lnum + 1)
  if (line =~ '^.\+$') && (nextline =~ '^=\+$')
    return ">1"
  endif

  if (line =~ '^.\+$') && (nextline =~ '^-\+$')
    return ">2"
  endif

  return "="
endfunction

if has("folding") && exists("g:markdown_folding")
  setlocal foldexpr=MarkdownFold()
  setlocal foldmethod=expr
  let b:undo_ftplugin .= " foldexpr< foldmethod<"
endif

" vim:set sw=2:
PK�j�Z8`�+ccvim80/ftplugin/diff.vimnu�[���" Vim filetype plugin file
" Language:	Diff
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2005 Jul 27

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl modeline<"

" Don't use modelines in a diff, they apply to the diffed file
setlocal nomodeline
PK�j�Z�\�|��vim80/ftplugin/racc.vimnu�[���" Vim filetype plugin file
" Language:             Racc input file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��$n��vim80/ftplugin/muttrc.vimnu�[���" Vim filetype plugin file
" Language:             mutt RC File
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &l:include = '^\s*source\>'

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�Ƹ��vim80/ftplugin/mf.vimnu�[���" Vim filetype plugin file
" Language:           METAFONT
" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision:    2016 Oct 2

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
      \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"

setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
setlocal suffixesadd=.mf
let &l:include = '\<input\>'
let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
setlocal omnifunc=syntaxcomplete#Complete
let g:omni_syntax_group_include_mf = 'mf\w\+'
let g:omni_syntax_group_exclude_mf = 'mfTodoComment'

let s:mp_regex = {
      \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|beginchar\|beginlogochar\)\>',
      \ 'endsection'   : '^\s*\%(enddef\|endchar\)\>',
      \ 'beginblock'   : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
      \ 'endblock'     : '^\s*\%(endgroup\|fi\|endfor\)\>'
      \ }

function! s:move_around(count, what, flags, visual)
  if a:visual
    exe "normal! gv"
  endif
  call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
  call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
endfunction


" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true)  <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:true)  <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:true)  <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:true)  <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:true)  <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:true)  <CR>

if exists("loaded_matchit")
  let b:match_ignorecase = 0
  let b:match_words =
        \ '\<if\>:\<else\%[if]\>:\<fi\>,' .
        \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
        \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
        \ '\<begingroup\>:\<endgroup\>,' .
        \ '\<begin\%(logo\)\?char\>:\<endchar\>'
  " Ignore comments and strings
  let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
        \ =~# "mf\\(Comment\\|String\\)$"'
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�
���vim80/ftplugin/cucumber.vimnu�[���" Vim filetype plugin
" Language:	Cucumber
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

let s:keepcpo= &cpo
set cpo&vim

setlocal formatoptions-=t formatoptions+=croql
setlocal comments=:# commentstring=#\ %s
setlocal omnifunc=CucumberComplete

let b:undo_ftplugin = "setl fo< com< cms< ofu<"

let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
if !exists("b:cucumber_steps_glob")
  let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb'
endif

if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
  cnoremap <SID>foldopen <Bar>if &foldopen =~# 'tag'<Bar>exe 'norm! zv'<Bar>endif
  nnoremap <silent> <script> <buffer> [<C-D>      :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
  nnoremap <silent> <script> <buffer> ]<C-D>      :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
  nnoremap <silent> <script> <buffer> <C-W>d      :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
  nnoremap <silent> <script> <buffer> <C-W><C-D>  :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
  nnoremap <silent> <script> <buffer> [d          :<C-U>exe <SID>jump('pedit',v:count)<CR>
  nnoremap <silent> <script> <buffer> ]d          :<C-U>exe <SID>jump('pedit',v:count)<CR>
  let b:undo_ftplugin .=
        \ "|sil! nunmap <buffer> [<C-D>" .
        \ "|sil! nunmap <buffer> ]<C-D>" .
        \ "|sil! nunmap <buffer> <C-W>d" .
        \ "|sil! nunmap <buffer> <C-W><C-D>" .
        \ "|sil! nunmap <buffer> [d" .
        \ "|sil! nunmap <buffer> ]d"
endif

function! s:jump(command,count)
  let steps = s:steps('.')
  if len(steps) == 0 || len(steps) < a:count
    return 'echoerr "No matching step found"'
  elseif len(steps) > 1 && !a:count
    return 'echoerr "Multiple matching steps found"'
  else
    let c = a:count ? a:count-1 : 0
    return a:command.' +'.steps[c][1].' '.escape(steps[c][0],' %#')
  endif
endfunction

function! s:allsteps()
  let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
  let steps = []
  for file in split(glob(b:cucumber_steps_glob),"\n")
    let lines = readfile(file)
    let num = 0
    for line in lines
      let num += 1
      if line =~ step_pattern
        let type = matchstr(line,'\w\+')
        let steps += [[file,num,type,matchstr(line,step_pattern)]]
      endif
    endfor
  endfor
  return steps
endfunction

function! s:steps(lnum)
  let c = match(getline(a:lnum), '\S') + 1
  while synIDattr(synID(a:lnum,c,1),'name') !~# '^$\|Region$'
    let c = c + 1
  endwhile
  let step = matchstr(getline(a:lnum)[c-1 : -1],'^\s*\zs.\{-\}\ze\s*$')
  return filter(s:allsteps(),'s:stepmatch(v:val[3],step)')
endfunction

function! s:stepmatch(receiver,target)
  if a:receiver =~ '^[''"].*[''"]$'
    let pattern = '^'.escape(substitute(a:receiver[1:-2],'$\w\+','(.*)','g'),'/').'$'
  elseif a:receiver =~ '^/.*/$'
    let pattern = a:receiver[1:-2]
  elseif a:receiver =~ '^%r..*.$'
    let pattern = escape(a:receiver[3:-2],'/')
  else
    return 0
  endif
  try
    let vimpattern = substitute(substitute(pattern,'\\\@<!(?:','%(','g'),'\\\@<!\*?','{-}','g')
    if a:target =~# '\v'.vimpattern
      return 1
    endif
  catch
  endtry
  if has("ruby") && pattern !~ '\\\@<!#{'
    ruby VIM.command("return #{if (begin; Kernel.eval('/'+VIM.evaluate('pattern')+'/'); rescue SyntaxError; end) === VIM.evaluate('a:target') then 1 else 0 end}")
  else
    return 0
  endif
endfunction

function! s:bsub(target,pattern,replacement)
  return  substitute(a:target,'\C\\\@<!'.a:pattern,a:replacement,'g')
endfunction

function! CucumberComplete(findstart,base) abort
  let indent = indent('.')
  let group = synIDattr(synID(line('.'),indent+1,1),'name')
  let type = matchstr(group,'\Ccucumber\zs\%(Given\|When\|Then\)')
  let e = matchend(getline('.'),'^\s*\S\+\s')
  if type == '' || col('.') < col('$') || e < 0
    return -1
  endif
  if a:findstart
    return e
  endif
  let steps = []
  for step in s:allsteps()
    if step[2] ==# type
      if step[3] =~ '^[''"]'
        let steps += [step[3][1:-2]]
      elseif step[3] =~ '^/\^.*\$/$'
        let pattern = step[3][2:-3]
        let pattern = substitute(pattern,'\C^(?:|I )','I ','')
        let pattern = s:bsub(pattern,'\\[Sw]','w')
        let pattern = s:bsub(pattern,'\\d','1')
        let pattern = s:bsub(pattern,'\\[sWD]',' ')
        let pattern = s:bsub(pattern,'\[\^\\\="\]','_')
        let pattern = s:bsub(pattern,'[[:alnum:]. _-][?*]?\=','')
        let pattern = s:bsub(pattern,'\[\([^^]\).\{-\}\]','\1')
        let pattern = s:bsub(pattern,'+?\=','')
        let pattern = s:bsub(pattern,'(\([[:alnum:]. -]\{-\}\))','\1')
        let pattern = s:bsub(pattern,'\\\([[:punct:]]\)','\1')
        if pattern !~ '[\\()*?]'
          let steps += [pattern]
        endif
      endif
    endif
  endfor
  call filter(steps,'strpart(v:val,0,strlen(a:base)) ==# a:base')
  return sort(steps)
endfunction

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:set sts=2 sw=2:
PK�j�Zg��b�� vim80/ftplugin/systemverilog.vimnu�[���" Vim filetype plugin file
" Language:    SystemVerilog
" Maintainer:  kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013. 

if exists("b:did_ftplugin")
  finish
endif

" Behaves just like Verilog
runtime! ftplugin/verilog.vim
PK�j�Z��@��vim80/ftplugin/slpspi.vimnu�[���" Vim filetype plugin file
" Language:             RFC 2614 - An API for Service Location SPI file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:#,:; commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�A����vim80/ftplugin/passwd.vimnu�[���" Vim filetype plugin file
" Language:             passwd(5) password file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z
rx�$$vim80/ftplugin/tmux.vimnu�[���" Vim filetype plugin file
" Language: 	tmux(1) configuration file
" URL: 		https://github.com/ericpruitt/tmux.vim/
" Maintainer: 	Eric Pruitt <eric.pruitt@gmail.com>
" Last Changed: 2017 Mar 10

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

setlocal commentstring=#\ %s
PK�j�Z�wUߧ�vim80/ftplugin/make.vimnu�[���" Vim filetype plugin file
" Language:	Make
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2013 Apr 22

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl et< sts< fo< com< cms< inc<"

" Make sure a hard tab is used, required for most make programs
setlocal noexpandtab softtabstop=0

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Set 'comments' to format dashed lists in comments
setlocal com=sO:#\ -,mO:#\ \ ,b:#

" Set 'commentstring' to put the marker after a #.
setlocal commentstring=#\ %s

" Including files.
let &l:include = '^\s*include'

" For matchit.vim, suggested by Albert Netymk.
if exists("loaded_matchit")
  let b:match_words = '\<if\(n\)\=\(eq\|def\)\>:\<else\>:\<endif\>,\<define\>:\<endef\>'
endif
PK�j�Z~:+Kllvim80/ftplugin/rpl.vimnu�[���" Vim filetype plugin file
" Language:     RPL/2
" Maintainer:   Jo�l BERTRAND <rpl2@free.fr>
" Last Change:	2012 Mar 07
" Version: 		0.1

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

let b:undo_ftplugin = "setlocal fo< comments<"
PK�j�ZA�FSSvim80/ftplugin/kwt.vimnu�[���" Vim filetype plugin file
" Language:	Kimwitu++
" Maintainer:	Michael Piefel <entwurf@piefel.de>
" Last Change:	10 March 2012

" Behaves almost like C++
runtime! ftplugin/cpp.vim ftplugin/cpp_*.vim ftplugin/cpp/*.vim

let s:cpo_save = &cpo
set cpo&vim

" Limit the browser to related files
if has("gui_win32") && !exists("b:browsefilter")
    let b:browsefilter = "Kimwitu/Kimwitu++ Files (*.k)\t*.k\n" .
		\ "Lex/Flex Files (*.l)\t*.l\n" .
		\ "Yacc/Bison Files (*.y)\t*.y\n" .
		\ "All Files (*.*)\t*.*\n"
endif

" Set the errorformat for the Kimwitu++ compiler
set efm+=kc%.%#:\ error\ at\ %f:%l:\ %m

if exists("b:undo_ftplugin")
    let b:undo_ftplugin = b:undo_ftplugin . " | setlocal efm<"
	\ . "| unlet! b:browsefiler"
else
    let b:undo_ftplugin = "setlocal efm<"
	\ . "| unlet! b:browsefiler"
endif

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�wJ��vim80/ftplugin/hostsaccess.vimnu�[���" Vim filetype plugin file
" Language:             hosts_access(5) control file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�V����vim80/ftplugin/eterm.vimnu�[���" Vim filetype plugin file
" Language:             eterm(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s include=^\\s*include
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�ZR"vim80/ftplugin/hostconf.vimnu�[���" Vim filetype plugin file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-12-04

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z g�\��vim80/ftplugin/logtalk.vimnu�[���" Logtalk filetype plugin file
" Language:         Logtalk
" Maintainer:       Paulo Moura <pmoura@logtalk.org>
" Latest Revision:  2007-07-06

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let b:undo_ftplugin = "setl ts< sw< fdm< fdc< ai< dict<"

"setlocal ts=4
setlocal sw=4
setlocal fdm=syntax
setlocal fdc=2
setlocal autoindent
setlocal dict=$VIMRUNTIME/ftplugin/logtalk.dict
PK�j�Z��a0oToTvim80/ftplugin/sql.vimnu�[���" SQL filetype plugin file
" Language:    SQL (Common for Oracle, Microsoft SQL Server, Sybase)
" Version:     12.0
" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2017 Mar 07
" Download:    http://vim.sourceforge.net/script.php?script_id=454

" For more details please use:
"        :h sql.txt
"
" This file should only contain values that are common to all SQL languages
" Oracle, Microsoft SQL Server, Sybase ASA/ASE, MySQL, and so on
" If additional features are required create:
"        vimfiles/after/ftplugin/sql.vim (Windows)
"        .vim/after/ftplugin/sql.vim     (Unix)
" to override and add any of your own settings.


" This file also creates a command, SQLSetType, which allows you to change
" SQL dialects on the fly.  For example, if I open an Oracle SQL file, it
" is color highlighted appropriately.  If I open an Informix SQL file, it
" will still be highlighted according to Oracles settings.  By running:
"     :SQLSetType sqlinformix
"
" All files called sqlinformix.vim will be loaded from the indent and syntax
" directories.  This allows you to easily flip SQL dialects on a per file
" basis.  NOTE: you can also use completion:
"     :SQLSetType <tab>
"
" To change the default dialect, add the following to your vimrc:
"    let g:sql_type_default = 'sqlanywhere'
"
" This file also creates a command, SQLGetType, which allows you to
" determine what the current dialect is in use.
"     :SQLGetType
"
" History
"
" Version 12.0 (April 2013)
"
" NF: Added support for "BEGIN TRY ... END TRY ... BEGIN CATCH ... END CATCH
" BF: This plugin is designed to be used with other plugins to enable the 
"     SQL completion with Perl, Python, Java, ...  The loading mechanism 
"     was not checking if the SQL objects were created, which can lead to 
"     the plugin not loading the SQL support.
"
" Version 11.0 (May 2013)
"
" NF: Updated to use SyntaxComplete's new regex support for syntax groups.
"
" Version 10.0 (Dec 2012)
"
" NF: Changed all maps to use noremap instead of must map
" NF: Changed all visual maps to use xnoremap instead of vnoremap as they
"     should only be used in visual mode and not select mode.
" BF: Most of the maps were using doubled up backslashes before they were
"     changed to using the search() function, which meant they no longer
"     worked.
"
" Version 9.0
"
" NF: Completes 'b:undo_ftplugin'
" BF: Correctly set cpoptions when creating script
"
" Version 8.0
"
" NF: Improved the matchit plugin regex (Talek)
"
" Version 7.0
"
" NF: Calls the sqlcomplete#ResetCacheSyntax() function when calling
"     SQLSetType.
"
" Version 6.0
"
" NF: Adds the command SQLGetType
"
" Version 5.0
"
" NF: Adds the ability to choose the keys to control SQL completion, just add
"     the following to your .vimrc:
"    let g:ftplugin_sql_omni_key       = '<C-C>'
"    let g:ftplugin_sql_omni_key_right = '<Right>'
"    let g:ftplugin_sql_omni_key_left  = '<Left>'
"
" BF: format-options - Auto-wrap comments using textwidth was turned off
"                      by mistake.


" Only do this when not done yet for this buffer
" This ftplugin can be used with other ftplugins.  So ensure loading
" happens if all elements of this plugin have not yet loaded.
if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql'
    finish
endif

let s:save_cpo = &cpo
set cpo&vim

" Disable autowrapping for code, but enable for comments
" t     Auto-wrap text using textwidth
" c     Auto-wrap comments using textwidth, inserting the current comment
"       leader automatically.
setlocal formatoptions-=t
setlocal formatoptions+=c

" Functions/Commands to allow the user to change SQL syntax dialects
" through the use of :SQLSetType <tab> for completion.
" This works with both Vim 6 and 7.

if !exists("*SQL_SetType")
    " NOTE: You cannot use function! since this file can be
    " sourced from within this function.  That will result in
    " an error reported by Vim.
    function SQL_GetList(ArgLead, CmdLine, CursorPos)

        if !exists('s:sql_list')
            " Grab a list of files that contain "sql" in their names
            let list_indent   = globpath(&runtimepath, 'indent/*sql*')
            let list_syntax   = globpath(&runtimepath, 'syntax/*sql*')
            let list_ftplugin = globpath(&runtimepath, 'ftplugin/*sql*')

            let sqls = "\n".list_indent."\n".list_syntax."\n".list_ftplugin."\n"

            " Strip out everything (path info) but the filename
            " Regex
            "    From between two newline characters
            "    Non-greedily grab all characters
            "    Followed by a valid filename \w\+\.\w\+ (sql.vim)
            "    Followed by a newline, but do not include the newline
            "
            "    Replace it with just the filename (get rid of PATH)
            "
            "    Recursively, since there are many filenames that contain
            "    the word SQL in the indent, syntax and ftplugin directory
            let sqls = substitute( sqls,
                        \ '[\n]\%(.\{-}\)\(\w\+\.\w\+\)\n\@=',
                        \ '\1\n',
                        \ 'g'
                        \ )

            " Remove duplicates, since sqlanywhere.vim can exist in the
            " sytax, indent and ftplugin directory, yet we only want
            " to display the option once
            let index = match(sqls, '.\{-}\ze\n')
            while index > -1
                " Get the first filename
                let file = matchstr(sqls, '.\{-}\ze\n', index)
                " Recursively replace any *other* occurrence of that
                " filename with nothing (ie remove it)
                let sqls = substitute(sqls, '\%>'.(index+strlen(file)).'c\<'.file.'\>\n', '', 'g')
                " Move on to the next filename
                let index = match(sqls, '.\{-}\ze\n', (index+strlen(file)+1))
            endwhile

            " Sort the list if using version 7
            if v:version >= 700
                let mylist = split(sqls, "\n")
                let mylist = sort(mylist)
                let sqls   = join(mylist, "\n")
            endif

            let s:sql_list = sqls
        endif

        return s:sql_list

    endfunction

    function SQL_SetType(name)

        " User has decided to override default SQL scripts and
        " specify a vendor specific version
        " (ie Oracle, Informix, SQL Anywhere, ...)
        " So check for an remove any settings that prevent the
        " scripts from being executed, and then source the
        " appropriate Vim scripts.
        if exists("b:did_ftplugin")
            unlet b:did_ftplugin
        endif
        if exists("b:current_syntax")
            " echomsg 'SQLSetType - clearing syntax'
            syntax clear
            if exists("b:current_syntax")
                unlet b:current_syntax
            endif
        endif
        if exists("b:did_indent")
            " echomsg 'SQLSetType - clearing indent'
            unlet b:did_indent
            " Set these values to their defaults
            setlocal indentkeys&
            setlocal indentexpr&
        endif

        " Ensure the name is in the correct format
        let new_sql_type = substitute(a:name,
                    \ '\s*\([^\.]\+\)\(\.\w\+\)\?', '\L\1', '')

        " Do not specify a buffer local variable if it is
        " the default value
        if new_sql_type == 'sql'
            let new_sql_type = 'sqloracle'
        endif
        let b:sql_type_override = new_sql_type

        " Remove any cached SQL since a new sytax will have different
        " items and groups
        if !exists('g:loaded_sql_completion') || g:loaded_sql_completion >= 100
            call sqlcomplete#ResetCacheSyntax()
        endif

        " Vim will automatically source the correct files if we
        " change the filetype.  You cannot do this with setfiletype
        " since that command will only execute if a filetype has
        " not already been set.  In this case we want to override
        " the existing filetype.
        let &filetype = 'sql'

        if b:sql_compl_savefunc != ""
            " We are changing the filetype to SQL from some other filetype
            " which had OMNI completion defined.  We need to activate the
            " SQL completion plugin in order to cache some of the syntax items
            " while the syntax rules for SQL are active.
            call sqlcomplete#PreCacheSyntax()
        endif
    endfunction
    command! -nargs=* -complete=custom,SQL_GetList SQLSetType :call SQL_SetType(<q-args>)

endif

" Functions/Commands to allow the user determine current SQL syntax dialect
" This works with both Vim 6 and 7.

if !exists("*SQL_GetType")
    function SQL_GetType()
        if exists('b:sql_type_override')
            echomsg "Current SQL dialect in use:".b:sql_type_override
        else
            echomsg "Current SQL dialect in use:".g:sql_type_default
        endif
    endfunction
    command! -nargs=0 SQLGetType :call SQL_GetType()
endif

if exists("b:sql_type_override")
    " echo 'sourcing buffer ftplugin/'.b:sql_type_override.'.vim'
    if globpath(&runtimepath, 'ftplugin/'.b:sql_type_override.'.vim') != ''
        exec 'runtime ftplugin/'.b:sql_type_override.'.vim'
        " else
        "     echomsg 'ftplugin/'.b:sql_type_override.' not exist, using default'
    endif
elseif exists("g:sql_type_default")
    " echo 'sourcing global ftplugin/'.g:sql_type_default.'.vim'
    if globpath(&runtimepath, 'ftplugin/'.g:sql_type_default.'.vim') != ''
        exec 'runtime ftplugin/'.g:sql_type_default.'.vim'
        " else
        "     echomsg 'ftplugin/'.g:sql_type_default.'.vim not exist, using default'
    endif
endif

" If the above runtime command succeeded, do not load the default settings
" as they should have already been loaded from a previous run.
if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql'
    finish
endif

let b:undo_ftplugin = "setl comments< formatoptions< define< omnifunc<" .
            \ " | unlet! b:browsefilter b:match_words"

" Don't load another plugin for this buffer
let b:did_ftplugin     = 1
let b:current_ftplugin = 'sql'

" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
    let b:browsefilter = "SQL Files (*.sql)\t*.sql\n" .
                \ "All Files (*.*)\t*.*\n"
endif

" Some standard expressions for use with the matchit strings
let s:notend = '\%(\<end\s\+\)\@<!'
let s:when_no_matched_or_others = '\%(\<when\>\%(\s\+\%(\%(\<not\>\s\+\)\?<matched\>\)\|\<others\>\)\@!\)'
let s:or_replace = '\%(or\s\+replace\s\+\)\?'

" Define patterns for the matchit macro
if !exists("b:match_words")
    " SQL is generally case insensitive
    let b:match_ignorecase = 1

    " Handle the following:
    " if
    " elseif | elsif
    " else [if]
    " end if
    "
    " [while condition] loop
    "     leave
    "     break
    "     continue
    "     exit
    " end loop
    "
    " for
    "     leave
    "     break
    "     continue
    "     exit
    " end loop
    "
    " do
    "     statements
    " doend
    "
    " case
    " when
    " when
    " default
    " end case
    "
    " merge
    " when not matched
    " when matched
    "
    " EXCEPTION
    " WHEN column_not_found THEN
    " WHEN OTHERS THEN
    "
    " begin try
    " end try
    " begin catch
    " end catch
    "
    " create[ or replace] procedure|function|event
    " \ '^\s*\<\%(do\|for\|while\|loop\)\>.*:'.

    " For ColdFusion support
    setlocal matchpairs+=<:>
    let b:match_words = &matchpairs .
                \ ',\%(\<begin\)\%(\s\+\%(try\|catch\)\>\)\@!:\<end\>\W*$,'.
                \
                \ '\<begin\s\+try\>:'.
                \ '\<end\s\+try\>:'.
                \ '\<begin\s\+catch\>:'.
                \ '\<end\s\+catch\>,'.
                \
                \ s:notend . '\<if\>:'.
                \ '\<elsif\>\|\<elseif\>\|\<else\>:'.
                \ '\<end\s\+if\>,'.
                \
                \ '\(^\s*\)\@<=\(\<\%(do\|for\|while\|loop\)\>.*\):'.
                \ '\%(\<exit\>\|\<leave\>\|\<break\>\|\<continue\>\):'.
                \ '\%(\<doend\>\|\%(\<end\s\+\%(for\|while\|loop\>\)\)\),'.
                \
                \ '\%('. s:notend . '\<case\>\):'.
                \ '\%('.s:when_no_matched_or_others.'\):'.
                \ '\%(\<when\s\+others\>\|\<end\s\+case\>\),' .
                \
                \ '\<merge\>:' .
                \ '\<when\s\+not\s\+matched\>:' .
                \ '\<when\s\+matched\>,' .
                \
                \ '\%(\<create\s\+' . s:or_replace . '\)\?'.
                \ '\%(function\|procedure\|event\):'.
                \ '\<returns\?\>'
    " \ '\<begin\>\|\<returns\?\>:'.
    " \ '\<end\>\(;\)\?\s*$'
    " \ '\<exception\>:'.s:when_no_matched_or_others.
    " \ ':\<when\s\+others\>,'.
    "
    " \ '\%(\<exception\>\|\%('. s:notend . '\<case\>\)\):'.
    " \ '\%(\<default\>\|'.s:when_no_matched_or_others.'\):'.
    " \ '\%(\%(\<when\s\+others\>\)\|\<end\s\+case\>\),' .
endif

" Define how to find the macro definition of a variable using the various
" [d, [D, [_CTRL_D and so on features
" Match these values ignoring case
" ie  DECLARE varname INTEGER
let &l:define = '\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>'


" Mappings to move to the next BEGIN ... END block
" \W - no characters or digits
nnoremap <buffer> <silent> ]] :call search('\c^\s*begin\>', 'W' )<CR>
nnoremap <buffer> <silent> [[ :call search('\c^\s*begin\>', 'bW' )<CR>
nnoremap <buffer> <silent> ][ :call search('\c^\s*end\W*$', 'W' )<CR>
nnoremap <buffer> <silent> [] :call search('\c^\s*end\W*$', 'bW' )<CR>
xnoremap <buffer> <silent> ]] :<C-U>exec "normal! gv"<Bar>call search('\c^\s*begin\>', 'W' )<CR>
xnoremap <buffer> <silent> [[ :<C-U>exec "normal! gv"<Bar>call search('\c^\s*begin\>', 'bW' )<CR>
xnoremap <buffer> <silent> ][ :<C-U>exec "normal! gv"<Bar>call search('\c^\s*end\W*$', 'W' )<CR>
xnoremap <buffer> <silent> [] :<C-U>exec "normal! gv"<Bar>call search('\c^\s*end\W*$', 'bW' )<CR>


" By default only look for CREATE statements, but allow
" the user to override
if !exists('g:ftplugin_sql_statements')
    let g:ftplugin_sql_statements = 'create'
endif

" Predefined SQL objects what are used by the below mappings using
" the ]} style maps.
" This global variable allows the users to override it's value
" from within their vimrc.
" Note, you cannot use \?, since these patterns can be used to search
" backwards, you must use \{,1}
if !exists('g:ftplugin_sql_objects')
    let g:ftplugin_sql_objects = 'function,procedure,event,' .
                \ '\(existing\\|global\s\+temporary\s\+\)\{,1}' .
                \ 'table,trigger' .
                \ ',schema,service,publication,database,datatype,domain' .
                \ ',index,subscription,synchronization,view,variable'
endif

" Key to trigger SQL completion
if !exists('g:ftplugin_sql_omni_key')
    let g:ftplugin_sql_omni_key = '<C-C>'
endif
" Key to trigger drill into column list
if !exists('g:ftplugin_sql_omni_key_right')
    let g:ftplugin_sql_omni_key_right = '<Right>'
endif
" Key to trigger drill out of column list
if !exists('g:ftplugin_sql_omni_key_left')
    let g:ftplugin_sql_omni_key_left = '<Left>'
endif

" Replace all ,'s with bars, except ones with numbers after them.
" This will most likely be a \{,1} string.
let s:ftplugin_sql_objects =
            \ '\c^\s*' .
            \ '\(\(' .
            \ substitute(g:ftplugin_sql_statements, ',\d\@!', '\\\\|', 'g') .
            \ '\)\s\+\(or\s\+replace\s\+\)\{,1}\)\{,1}' .
            \ '\<\(' .
            \ substitute(g:ftplugin_sql_objects, ',\d\@!', '\\\\|', 'g') .
            \ '\)\>'

" Mappings to move to the next CREATE ... block
exec "nnoremap <buffer> <silent> ]} :call search('".s:ftplugin_sql_objects."', 'W')<CR>"
exec "nnoremap <buffer> <silent> [{ :call search('".s:ftplugin_sql_objects."', 'bW')<CR>"
" Could not figure out how to use a :call search() string in visual mode
" without it ending visual mode
" Unfortunately, this will add a entry to the search history
exec 'xnoremap <buffer> <silent> ]} /'.s:ftplugin_sql_objects.'<CR>'
exec 'xnoremap <buffer> <silent> [{ ?'.s:ftplugin_sql_objects.'<CR>'

" Mappings to move to the next COMMENT
"
" Had to double the \ for the \| separator since this has a special
" meaning on maps
let b:comment_leader = '\(--\\|\/\/\\|\*\\|\/\*\\|\*\/\)'
" Find the start of the next comment
let b:comment_start  = '^\(\s*'.b:comment_leader.'.*\n\)\@<!'.
            \ '\(\s*'.b:comment_leader.'\)'
" Find the end of the previous comment
let b:comment_end = '\(^\s*'.b:comment_leader.'.*\n\)'.
            \ '\(^\s*'.b:comment_leader.'\)\@!'
" Skip over the comment
let b:comment_jump_over  = "call search('".
            \ '^\(\s*'.b:comment_leader.'.*\n\)\@<!'.
            \ "', 'W')"
let b:comment_skip_back  = "call search('".
            \ '^\(\s*'.b:comment_leader.'.*\n\)\@<!'.
            \ "', 'bW')"
" Move to the start and end of comments
exec 'nnoremap <silent><buffer> ]" :call search('."'".b:comment_start."'".', "W" )<CR>'
exec 'nnoremap <silent><buffer> [" :call search('."'".b:comment_end."'".', "W" )<CR>'
exec 'xnoremap <silent><buffer> ]" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_start."'".', "W" )<CR>'
exec 'xnoremap <silent><buffer> [" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_end."'".', "W" )<CR>'

" Comments can be of the form:
"   /*
"    *
"    */
" or
"   --
" or
"   //
setlocal comments=s1:/*,mb:*,ex:*/,:--,://

" Set completion with CTRL-X CTRL-O to autoloaded function.
if exists('&omnifunc')
    " Since the SQL completion plugin can be used in conjunction
    " with other completion filetypes it must record the previous
    " OMNI function prior to setting up the SQL OMNI function
    let b:sql_compl_savefunc = &omnifunc

    " Source it to determine it's version
    runtime autoload/sqlcomplete.vim
    " This is used by the sqlcomplete.vim plugin
    " Source it for it's global functions
    runtime autoload/syntaxcomplete.vim

    setlocal omnifunc=sqlcomplete#Complete
    " Prevent the intellisense plugin from loading
    let b:sql_vis = 1
    if !exists('g:omni_sql_no_default_maps')
        let regex_extra = ''
        if exists('g:loaded_syntax_completion') && exists('g:loaded_sql_completion')
            if g:loaded_syntax_completion > 120 && g:loaded_sql_completion > 140
                let regex_extra = '\\w*'
            endif
        endif
        " Static maps which use populate the completion list
        " using Vim's syntax highlighting rules
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword'.regex_extra.'")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction'.regex_extra.'")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption'.regex_extra.'")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType'.regex_extra.'")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement'.regex_extra.'")<CR><C-X><C-O>'
        " Dynamic maps which use populate the completion list
        " using the dbext.vim plugin
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'p <C-\><C-O>:call sqlcomplete#Map("procedure")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'v <C-\><C-O>:call sqlcomplete#Map("view")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'c <C-\><C-O>:call sqlcomplete#Map("column")<CR><C-X><C-O>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'l <C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
        " The next 3 maps are only to be used while the completion window is
        " active due to the <CR> at the beginning of the map
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'L <C-Y><C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
        " <C-Right> is not recognized on most Unix systems, so only create
        " these additional maps on the Windows platform.
        " If you would like to use these maps, choose a different key and make
        " the same map in your vimrc.
        " if has('win32')
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key_right.' <C-R>=sqlcomplete#DrillIntoTable()<CR>'
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key_left.'  <C-R>=sqlcomplete#DrillOutOfColumns()<CR>'
        " endif
        " Remove any cached items useful for schema changes
        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'R <C-\><C-O>:call sqlcomplete#Map("resetCache")<CR><C-X><C-O>'
    endif

    if b:sql_compl_savefunc != ""
        " We are changing the filetype to SQL from some other filetype
        " which had OMNI completion defined.  We need to activate the
        " SQL completion plugin in order to cache some of the syntax items
        " while the syntax rules for SQL are active.
        call sqlcomplete#ResetCacheSyntax()
        call sqlcomplete#PreCacheSyntax()
    endif
endif

let &cpo = s:save_cpo
unlet s:save_cpo

" vim:sw=4:
PK�j�ZX
� �vim80/ftplugin/treetop.vimnu�[���" Vim filetype plugin file
" Language:             Treetop
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2011-03-14

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal comments=b:# commentstring=#\ %s formatoptions-=tcroq formatoptions+=l

let b:undo_ftplugin = "setl com< cms< fo<"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��;[[vim80/ftplugin/sbt.vimnu�[���" Vim filetype plugin file
" Language:     sbt
" Maintainer:   Steven Dobay <stevendobay at protonmail.com>
" License:      Same as Vim
" Last Change:  2017.04.30
" ----------------------------------------------------------------------------

if exists('b:did_ftplugin') || &cp
  finish
endif

let b:did_ftplugin = 1

runtime! ftplugin/scala.vim

PK�j�Z�{���vim80/ftplugin/registry.vimnu�[���" Vim filetype plugin file
" Language:         Windows Registry export with regedit (*.reg)
" Maintainer:       Cade Forester <ahx2323@gmail.com>
" Latest Revision:  2014-01-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin =
  \ 'let b:browsefilter = "" | ' .
  \ 'setlocal ' .
  \    'comments< '.
  \    'commentstring< ' .
  \    'formatoptions< '


if has( 'gui_win32' )
\ && !exists( 'b:browsefilter' )
   let b:browsefilter =
      \ 'registry files (*.reg)\t*.reg\n' .
      \ 'All files (*.*)\t*.*\n'
endif

setlocal comments=:;
setlocal commentstring=;\ %s

setlocal formatoptions-=t
setlocal formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�V���vim80/ftplugin/rst.vimnu�[���" Vim filetype plugin file
" Language:             reStructuredText documentation format
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< et< fo<"

setlocal comments=fb:.. commentstring=..\ %s expandtab
setlocal formatoptions+=tcroql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�%���vim80/ftplugin/csc.vimnu�[���" Vim filetype plugin file
" Language:	csc
" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin

if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C

if exists("loaded_matchit")
    let b:match_words=
	\ '\<fix\>:\<endfix\>,' .
	\ '\<if\>:\<else\%(if\)\=\>:\<endif\>,' .
	\ '\<!loopondimensions\>\|\<!looponselected\>:\<!endloop\>'
endif

" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:match_words"

" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
PK�j�Z	��C��vim80/ftplugin/sshconfig.vimnu�[���" Vim filetype plugin file
" Language:             OpenSSH client configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��8��vim80/ftplugin/scss.vimnu�[���" Vim filetype plugin
" Language:	SCSS
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2016 Aug 29

if exists("b:did_ftplugin")
  finish
endif

runtime! ftplugin/sass.vim
setlocal comments=s1:/*,mb:*,ex:*/,://

" vim:set sw=2:
PK�j�ZCD[p22vim80/ftplugin/zsh.vimnu�[���" Vim filetype plugin file
" Language:             Zsh shell script
" Maintainer:           Christian Brabandt <cb@256bit.org>
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2017-11-22
" License:              Vim (see :h license)
" Repository:           https://github.com/chrisbra/vim-zsh

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let b:match_words = ',\<if\>:\<elif\>:\<else\>:\<fi\>'
      \ . ',\<case\>:^\s*([^)]*):\<esac\>'
      \ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>'
let b:match_skip = 's:comment\|string\|heredoc\|subst'

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�O�Ukkvim80/ftplugin/hgcommit.vimnu�[���" Vim filetype plugin file
" Language:	hg (Mercurial) commit file
" Maintainer:	Ken Takata <kentkt at csc dot jp>
" Last Change:	2016 Jan 6
" Filenames:	hg-editor-*.txt
" License:	VIM License
" URL:		https://github.com/k-takata/hg-vim

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

setlocal nomodeline

let b:undo_ftplugin = 'setl modeline<'
PK�j�Z�ح���vim80/ftplugin/terminfo.vimnu�[���" Vim filetype plugin file
" Language:             terminfo(5) definition
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< fo<"

setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z���  vim80/ftplugin/abap.vimnu�[���" Vim filetype plugin file
" Language:	ABAP
" Author:	Steven Oliver <oliver.steven@gmail.com>
" Copyright:	Copyright (c) 2013 Steven Oliver
" License:	You may redistribute this under the same terms as Vim itself
" --------------------------------------------------------------------------

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

setlocal softtabstop=2 shiftwidth=2
setlocal suffixesadd=.abap

" Windows allows you to filter the open file dialog
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n" .
                     \ "All Files (*.*)\t*.*\n"
endif

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: set sw=4 sts=4 et tw=80 :
PK�j�Z���;��vim80/ftplugin/hamster.vimnu�[���" Vim filetype plugin
" Language:    Hamster Script
" Version:     2.0.6.0
" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2017 Mar 18

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl fo< com< tw< commentstring<"
	\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

" Use the # sign for comments
setlocal comments=:#

" Format comments to be up to 78 characters long
if &tw == 0
  setlocal tw=78
endif

" Comments start with a double quote
setlocal commentstring=#%s

" Move around functions.
noremap <silent><buffer> [[ :call search('^\s*sub\>', "bW")<CR>
noremap <silent><buffer> ]] :call search('^\s*sub\>', "W")<CR>
noremap <silent><buffer> [] :call search('^\s*endsub\>', "bW")<CR>
noremap <silent><buffer> ][ :call search('^\s*endsub\>', "W")<CR>

" Move around comments
noremap <silent><buffer> ]# :call search('^\s*#\@!', "W")<CR>
noremap <silent><buffer> [# :call search('^\s*#\@!', "bW")<CR>

" Let the matchit plugin know what items can be matched.
if exists("loaded_matchit")
  let b:match_ignorecase = 0
  let b:match_words =
	\ '\<sub\>:\<return\>:\<endsub\>,' .
        \ '\<do\|while\|repeat\|for\>:\<break\>:\<continue\>:\<loop\|endwhile\|until\|endfor\>,' .
	\ '\<if\>:\<else\%[if]\>:\<endif\>' 

  " Ignore ":syntax region" commands, the 'end' argument clobbers if-endif
  " let b:match_skip = 'getline(".") =~ "^\\s*sy\\%[ntax]\\s\\+region" ||
  "	\ synIDattr(synID(line("."),col("."),1),"name") =~? "comment\\|string"'
endif

setlocal ignorecase
let &cpo = s:cpo_save
unlet s:cpo_save
setlocal cpo+=M		" makes \%( match \)
PK�j�Z�B�a��vim80/ftplugin/a2ps.vimnu�[���" Vim filetype plugin file
" Language:             a2ps(1) configuration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2008-07-09

if exists("b:did_ftplugin")
  finish
endif
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

let b:undo_ftplugin = "setl com< cms< inc< fo<"

setlocal comments=:# commentstring=#\ %s include=^\\s*Include:
setlocal formatoptions-=t formatoptions+=croql

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�P��vim80/ftplugin/postscr.vimnu�[���" Vim filetype plugin file
" Language:	PostScript
" Maintainer:	Mike Williams <mrw@eandem.co.uk>
" Last Change:  24th April 2012

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

let s:cpo_save = &cpo
set cpo&vim

" PS comment formatting
setlocal comments=b:%
setlocal formatoptions-=t formatoptions+=rol

" Define patterns for the matchit macro
if !exists("b:match_words")
  let b:match_ignorecase = 0
  let b:match_words = '<<:>>,\<begin\>:\<end\>,\<save\>:\<restore\>,\<gsave\>:\<grestore\>'
endif

" Define patterns for the browse file filter
if has("gui_win32") && !exists("b:browsefilter")
  let b:browsefilter = "PostScript Files (*.ps)\t*.ps\n" .
    \ "EPS Files (*.eps)\t*.eps\n" .
    \ "All Files (*.*)\t*.*\n"
endif

let b:undo_ftplugin = "setlocal comments< formatoptions<"
    \ . "| unlet! b:browsefiler b:match_ignorecase b:match_words"

let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z��P��vim80/colors/darkblue.vimnu�[���" Vim color file
" Maintainer:	Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Last Change:	2008 Jul 18

" darkblue -- for those who prefer dark background
" [note: looks bit uglier with come terminal palettes,
" but is fine on default linux console palette.]

set bg=dark
hi clear
if exists("syntax_on")
	syntax reset
endif

let colors_name = "darkblue"

hi Normal		guifg=#c0c0c0 guibg=#000040						ctermfg=gray ctermbg=black
hi ErrorMsg		guifg=#ffffff guibg=#287eff						ctermfg=white ctermbg=lightblue
hi Visual		guifg=#8080ff guibg=fg		gui=reverse				ctermfg=lightblue ctermbg=fg cterm=reverse
hi VisualNOS	guifg=#8080ff guibg=fg		gui=reverse,underline	ctermfg=lightblue ctermbg=fg cterm=reverse,underline
hi Todo			guifg=#d14a14 guibg=#1248d1						ctermfg=red	ctermbg=darkblue
hi Search		guifg=#90fff0 guibg=#2050d0						ctermfg=white ctermbg=darkblue cterm=underline term=underline
hi IncSearch	guifg=#b0ffff guibg=#2050d0							ctermfg=darkblue ctermbg=gray

hi SpecialKey		guifg=cyan			ctermfg=darkcyan
hi Directory		guifg=cyan			ctermfg=cyan
hi Title			guifg=magenta gui=none ctermfg=magenta cterm=bold
hi WarningMsg		guifg=red			ctermfg=red
hi WildMenu			guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none
hi ModeMsg			guifg=#22cce2		ctermfg=lightblue
hi MoreMsg			ctermfg=darkgreen	ctermfg=darkgreen
hi Question			guifg=green gui=none ctermfg=green cterm=none
hi NonText			guifg=#0030ff		ctermfg=darkblue

hi StatusLine	guifg=blue guibg=darkgray gui=none		ctermfg=blue ctermbg=gray term=none cterm=none
hi StatusLineNC	guifg=black guibg=darkgray gui=none		ctermfg=black ctermbg=gray term=none cterm=none
hi VertSplit	guifg=black guibg=darkgray gui=none		ctermfg=black ctermbg=gray term=none cterm=none

hi Folded	guifg=#808080 guibg=#000040			ctermfg=darkgrey ctermbg=black cterm=bold term=bold
hi FoldColumn	guifg=#808080 guibg=#000040			ctermfg=darkgrey ctermbg=black cterm=bold term=bold
hi LineNr	guifg=#90f020			ctermfg=green cterm=none

hi DiffAdd	guibg=darkblue	ctermbg=darkblue term=none cterm=none
hi DiffChange	guibg=darkmagenta ctermbg=magenta cterm=none
hi DiffDelete	ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan
hi DiffText	cterm=bold ctermbg=red gui=bold guibg=Red

hi Cursor	guifg=black guibg=yellow ctermfg=black ctermbg=yellow
hi lCursor	guifg=black guibg=white ctermfg=black ctermbg=white


hi Comment	guifg=#80a0ff ctermfg=darkred
hi Constant	ctermfg=magenta guifg=#ffa0a0 cterm=none
hi Special	ctermfg=brown guifg=Orange cterm=none gui=none
hi Identifier	ctermfg=cyan guifg=#40ffff cterm=none
hi Statement	ctermfg=yellow cterm=none guifg=#ffff60 gui=none
hi PreProc	ctermfg=magenta guifg=#ff80ff gui=none cterm=none
hi type		ctermfg=green guifg=#60ff60 gui=none cterm=none
hi Underlined	cterm=underline term=underline
hi Ignore	guifg=bg ctermfg=bg

" suggested by tigmoid, 2008 Jul 18
hi Pmenu guifg=#c0c0c0 guibg=#404080
hi PmenuSel guifg=#c0c0c0 guibg=#2050d0
hi PmenuSbar guifg=blue guibg=darkgray
hi PmenuThumb guifg=#c0c0c0
PK�j�Z�q���vim80/colors/elflord.vimnu�[���" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2003 May 02

set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "elflord"
hi Normal		guifg=cyan			guibg=black
hi Comment	term=bold		ctermfg=DarkCyan		guifg=#80a0ff
hi Constant	term=underline	ctermfg=Magenta		guifg=Magenta
hi Special	term=bold		ctermfg=DarkMagenta	guifg=Red
hi Identifier term=underline	cterm=bold			ctermfg=Cyan guifg=#40ffff
hi Statement term=bold		ctermfg=Yellow gui=bold	guifg=#aa4444
hi PreProc	term=underline	ctermfg=LightBlue	guifg=#ff80ff
hi Type	term=underline		ctermfg=LightGreen	guifg=#60ff60 gui=bold
hi Function	term=bold		ctermfg=White guifg=White
hi Repeat	term=underline	ctermfg=White		guifg=white
hi Operator				ctermfg=Red			guifg=Red
hi Ignore				ctermfg=black		guifg=bg
hi Error	term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
hi Todo	term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow

" Common groups that link to default highlighting.
" You can specify other highlighting easily.
hi link String	Constant
hi link Character	Constant
hi link Number	Constant
hi link Boolean	Constant
hi link Float		Number
hi link Conditional	Repeat
hi link Label		Statement
hi link Keyword	Statement
hi link Exception	Statement
hi link Include	PreProc
hi link Define	PreProc
hi link Macro		PreProc
hi link PreCondit	PreProc
hi link StorageClass	Type
hi link Structure	Type
hi link Typedef	Type
hi link Tag		Special
hi link SpecialChar	Special
hi link Delimiter	Special
hi link SpecialComment Special
hi link Debug		Special
PK�j�Z�&�ޔ	�	vim80/colors/evening.vimnu�[���" Vim color file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2016 Oct 10

" This color scheme uses a dark grey background.

" First remove all existing highlighting.
set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif

let colors_name = "evening"

hi Normal ctermbg=DarkGrey ctermfg=White guifg=White guibg=grey20

" Groups used in the 'highlight' and 'guicursor' options default value.
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi ModeMsg term=bold cterm=bold gui=bold
hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
hi StatusLineNC term=reverse cterm=reverse gui=reverse
hi VertSplit term=reverse cterm=reverse gui=reverse
hi Visual term=reverse ctermbg=black guibg=grey60
hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
hi Cursor guibg=Green guifg=Black
hi lCursor guibg=Cyan guifg=Black
hi Directory term=bold ctermfg=LightCyan guifg=Cyan
hi LineNr term=underline ctermfg=Yellow guifg=Yellow
hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey30
hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan
hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
hi WarningMsg term=standout ctermfg=LightRed guifg=Red
hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
hi CursorColumn term=reverse ctermbg=Black guibg=grey40
hi CursorLine term=underline cterm=underline guibg=grey40

" Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
hi Special term=bold ctermfg=LightRed guifg=Orange
if &t_Co > 8
  hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
endif
hi Ignore ctermfg=DarkGrey guifg=grey20

" vim: sw=2
PK�j�Z;��	�	vim80/colors/slate.vimnu�[���"%% SiSU Vim color file
" Slate Maintainer: Ralph Amissah <ralph@amissah.com>
" (originally looked at desert Hans Fugal <hans@fugal.net> http://hans.fugal.net/vim/colors/desert.vim (2003/05/06)
:set background=dark
:highlight clear
if version > 580
 hi clear
 if exists("syntax_on")
 syntax reset
 endif
endif
let colors_name = "slate"
:hi Normal guifg=White guibg=grey15
:hi Cursor guibg=khaki guifg=slategrey
:hi VertSplit guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
:hi Folded guibg=black guifg=grey40 ctermfg=grey ctermbg=darkgrey
:hi FoldColumn guibg=black guifg=grey20 ctermfg=4 ctermbg=7
:hi IncSearch guifg=green guibg=black cterm=none ctermfg=yellow ctermbg=green
:hi ModeMsg guifg=goldenrod cterm=none ctermfg=brown
:hi MoreMsg guifg=SeaGreen ctermfg=darkgreen
:hi NonText guifg=RoyalBlue guibg=grey15 cterm=bold ctermfg=blue
:hi Question guifg=springgreen ctermfg=green
:hi Search guibg=peru guifg=wheat cterm=none ctermfg=grey ctermbg=blue
:hi SpecialKey guifg=yellowgreen ctermfg=darkgreen
:hi StatusLine guibg=#c2bfa5 guifg=black gui=none cterm=bold,reverse
:hi StatusLineNC guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
:hi Title guifg=gold gui=bold cterm=bold ctermfg=yellow
:hi Statement guifg=CornflowerBlue ctermfg=lightblue
:hi Visual gui=none guifg=khaki guibg=olivedrab cterm=reverse
:hi WarningMsg guifg=salmon ctermfg=1
:hi String guifg=SkyBlue ctermfg=darkcyan
:hi Comment term=bold ctermfg=11 guifg=grey40
:hi Constant guifg=#ffa0a0 ctermfg=brown
:hi Special guifg=darkkhaki ctermfg=brown
:hi Identifier guifg=salmon ctermfg=red
:hi Include guifg=red ctermfg=red
:hi PreProc guifg=red guibg=white ctermfg=red
:hi Operator guifg=Red ctermfg=Red
:hi Define guifg=gold gui=bold ctermfg=yellow
:hi Type guifg=CornflowerBlue ctermfg=2
:hi Function guifg=navajowhite ctermfg=brown
:hi Structure guifg=green ctermfg=green
:hi LineNr guifg=grey50 ctermfg=3
:hi Ignore guifg=grey40 cterm=bold ctermfg=7
:hi Todo guifg=orangered guibg=yellow2
:hi Directory ctermfg=darkcyan
:hi ErrorMsg cterm=bold guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
:hi VisualNOS cterm=bold,underline
:hi WildMenu ctermfg=0 ctermbg=3
:hi DiffAdd ctermbg=4
:hi DiffChange ctermbg=5
:hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
:hi DiffText cterm=bold ctermbg=1
:hi Underlined cterm=underline ctermfg=5
:hi Error guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
:hi SpellErrors guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
PK�j�ZG+M���vim80/colors/industry.vimnu�[���" Vim color file
" Maintainer:	Shian Lee 
" Last Change:	2014 Mar 6 (for vim 7.4)
" Remark:	"industry" stands for 'industrial' color scheme. In industrial
"		HMI (Human-Machine-Interface) programming, using a standard color
"               scheme is mandatory in many cases (in traffic-lights for example): 
"               LIGHT_RED is	    'Warning' 
"               LIGHT_YELLOW is	    'Attention' 
"               LIGHT_GREEN is	    'Normal' 
"               LIGHT_MAGENTA is    'Warning-Attention' (light RED-YELLOW)
"               LIGHT_CYAN is	    'Attention-Normal'  (light YELLOW-GREEN).
"               BLACK is	    Dark-High-Contrast Background for maximum safety.
"               BLUE is		    Shade of BLACK (not supposed to get attention).
"
"               Industrial color scheme is by nature clear, safe and productive. 
"               Yet, depends on the file type's syntax, it might appear incorrect. 

" Reset to dark background, then reset everything to defaults:
set background=dark
highlight clear
if exists("syntax_on")
    syntax reset
endif

let colors_name = "industry"

" First set Normal to regular white on black text colors:
hi Normal ctermfg=LightGray ctermbg=Black guifg=#dddddd	guibg=Black

" Syntax highlighting (other color-groups using default, see :help group-name):
hi Comment    cterm=NONE ctermfg=DarkCyan    	gui=NONE guifg=#00aaaa   	 
hi Constant   cterm=NONE ctermfg=LightCyan   	gui=NONE guifg=#00ffff   	
hi Identifier cterm=NONE ctermfg=LightMagenta   gui=NONE guifg=#ff00ff   
hi Function   cterm=NONE ctermfg=LightGreen   	gui=NONE guifg=#00ff00   	
hi Statement  cterm=NONE ctermfg=White	     	gui=bold guifg=#ffffff	     	
hi PreProc    cterm=NONE ctermfg=Yellow		gui=NONE guifg=#ffff00 	
hi Type	      cterm=NONE ctermfg=LightGreen	gui=bold guifg=#00ff00 		
hi Special    cterm=NONE ctermfg=LightRed    	gui=NONE guifg=#ff0000    	
hi Delimiter  cterm=NONE ctermfg=Yellow    	gui=NONE guifg=#ffff00    	

PK�j�Z�i�
�
vim80/colors/desert.vimnu�[���" Vim color file
" Maintainer:	Hans Fugal <hans@fugal.net>
" Last Change:	$Date: 2004/06/13 19:30:30 $
" Last Change:	$Date: 2004/06/13 19:30:30 $
" URL:		http://hans.fugal.net/vim/colors/desert.vim
" Version:	$Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $

" cool help screens
" :he group-name
" :he highlight-groups
" :he cterm-colors

set background=dark
if version > 580
    " no guarantees for version 5.8 and below, but this makes it stop
    " complaining
    hi clear
    if exists("syntax_on")
	syntax reset
    endif
endif
let g:colors_name="desert"

hi Normal	guifg=White guibg=grey20

" highlight groups
hi Cursor	guibg=khaki guifg=slategrey
"hi CursorIM
"hi Directory
"hi DiffAdd
"hi DiffChange
"hi DiffDelete
"hi DiffText
"hi ErrorMsg
hi VertSplit	guibg=#c2bfa5 guifg=grey50 gui=none
hi Folded	guibg=grey30 guifg=gold
hi FoldColumn	guibg=grey30 guifg=tan
hi IncSearch	guifg=slategrey guibg=khaki
"hi LineNr
hi ModeMsg	guifg=goldenrod
hi MoreMsg	guifg=SeaGreen
hi NonText	guifg=LightBlue guibg=grey30
hi Question	guifg=springgreen
hi Search	guibg=peru guifg=wheat
hi SpecialKey	guifg=yellowgreen
hi StatusLine	guibg=#c2bfa5 guifg=black gui=none
hi StatusLineNC	guibg=#c2bfa5 guifg=grey50 gui=none
hi Title	guifg=indianred
hi Visual	gui=none guifg=khaki guibg=olivedrab
"hi VisualNOS
hi WarningMsg	guifg=salmon
"hi WildMenu
"hi Menu
"hi Scrollbar
"hi Tooltip

" syntax highlighting groups
hi Comment	guifg=SkyBlue
hi Constant	guifg=#ffa0a0
hi Identifier	guifg=palegreen
hi Statement	guifg=khaki
hi PreProc	guifg=indianred
hi Type		guifg=darkkhaki
hi Special	guifg=navajowhite
"hi Underlined
hi Ignore	guifg=grey40
"hi Error
hi Todo		guifg=orangered guibg=yellow2

" color terminal definitions
hi SpecialKey	ctermfg=darkgreen
hi NonText	cterm=bold ctermfg=darkblue
hi Directory	ctermfg=darkcyan
hi ErrorMsg	cterm=bold ctermfg=7 ctermbg=1
hi IncSearch	cterm=NONE ctermfg=yellow ctermbg=green
hi Search	cterm=NONE ctermfg=grey ctermbg=blue
hi MoreMsg	ctermfg=darkgreen
hi ModeMsg	cterm=NONE ctermfg=brown
hi LineNr	ctermfg=3
hi Question	ctermfg=green
hi StatusLine	cterm=bold,reverse
hi StatusLineNC cterm=reverse
hi VertSplit	cterm=reverse
hi Title	ctermfg=5
hi Visual	cterm=reverse
hi VisualNOS	cterm=bold,underline
hi WarningMsg	ctermfg=1
hi WildMenu	ctermfg=0 ctermbg=3
hi Folded	ctermfg=darkgrey ctermbg=NONE
hi FoldColumn	ctermfg=darkgrey ctermbg=NONE
hi DiffAdd	ctermbg=4
hi DiffChange	ctermbg=5
hi DiffDelete	cterm=bold ctermfg=4 ctermbg=6
hi DiffText	cterm=bold ctermbg=1
hi Comment	ctermfg=darkcyan
hi Constant	ctermfg=brown
hi Special	ctermfg=5
hi Identifier	ctermfg=6
hi Statement	ctermfg=3
hi PreProc	ctermfg=5
hi Type		ctermfg=2
hi Underlined	cterm=underline ctermfg=5
hi Ignore	cterm=bold ctermfg=7
hi Ignore	ctermfg=darkgrey
hi Error	cterm=bold ctermfg=7 ctermbg=1


"vim: sw=4
PK�j�Z��h�
�
vim80/colors/shine.vimnu�[���" Vim color file
" Maintainer:	Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
" Last Change:	2001 May 25

" This look like normal text editor.
" This color scheme uses a light background.

" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
  syntax reset
endif

let colors_name = "shine"

hi Normal ctermbg=White ctermfg=Black guifg=Black guibg=White

" Groups used in the 'highlight' and 'guicursor' options default value.
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi ModeMsg term=bold cterm=bold gui=bold
hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
hi StatusLineNC term=reverse cterm=reverse gui=reverse
hi VertSplit term=reverse cterm=reverse gui=reverse
hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey guibg=fg
hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
hi Cursor ctermbg=Green guibg=Green guifg=Black
hi lCursor guibg=Cyan guifg=Black
hi Directory term=bold ctermfg=LightRed guifg=Red
hi LineNr term=underline ctermfg=Yellow guifg=Yellow
hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey90
hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi SpecialKey term=bold ctermfg=LightBlue guifg=Blue
hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
hi WarningMsg term=standout ctermfg=LightRed guifg=Red
hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan

hi Comment ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
hi SpecialChar ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
hi StorageClass ctermfg=Red ctermbg=White guifg=Red gui=bold
hi Number ctermfg=LightRed ctermbg=White guifg=LightRed gui=bold

" Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#a07070 guibg=grey80
hi Special term=bold ctermfg=LightRed guifg=DarkOrange guibg=grey80
if &t_Co > 8
  hi Statement term=bold cterm=bold ctermfg=DarkGreen ctermbg=White guifg=#ffff60 gui=bold
endif
hi Ignore ctermfg=LightGrey guifg=grey90

" vim: sw=2
PK�j�Zjp���vim80/colors/README.txtnu�[���README.txt for color scheme files

These files are used for the ":colorscheme" command.  They appear in the
Edit/Color Scheme menu in the GUI.


Hints for writing a color scheme file:

There are two basic ways to define a color scheme:

1. Define a new Normal color and set the 'background' option accordingly.
	set background={light or dark}
	highlight clear
	highlight Normal ...
	...

2. Use the default Normal color and automatically adjust to the value of
   'background'.
	highlight clear Normal
	set background&
	highlight clear
	if &background == "light"
	  highlight Error ...
	  ...
	else
	  highlight Error ...
	  ...
	endif

You can use ":highlight clear" to reset everything to the defaults, and then
change the groups that you want differently.  This also will work for groups
that are added in later versions of Vim.
Note that ":highlight clear" uses the value of 'background', thus set it
before this command.
Some attributes (e.g., bold) might be set in the defaults that you want
removed in your color scheme.  Use something like "gui=NONE" to remove the
attributes.

In case you want to set 'background' depending on the colorscheme selected,
this autocmd might be useful:
     autocmd SourcePre */colors/blue_sky.vim set background=dark
Replace "blue_sky" with the name of the colorscheme.

In case you want to tweak a colorscheme after it was loaded, check out the
ColorScheme autocmd event.

To customize a colorscheme use another name, e.g.  "~/.vim/colors/mine.vim",
and use `:runtime` to load the original colorscheme:
	" load the "evening" colorscheme
	runtime colors/evening.vim
	" change the color of statements
	hi Statement ctermfg=Blue guifg=Blue

To see which highlight group is used where, find the help for
"highlight-groups" and "group-name".

You can use ":highlight" to find out the current colors.  Exception: the
ctermfg and ctermbg values are numbers, which are only valid for the current
terminal.  Use the color names instead.  See ":help cterm-colors".

The default color settings can be found in the source file src/syntax.c.
Search for "highlight_init".

If you think you have a color scheme that is good enough to be used by others,
please check the following items:

- Source the tools/check_colors.vim script to check for common mistakes.
- Does it work in a color terminal as well as in the GUI?
- Is "g:colors_name" set to a meaningful value?  In case of doubt you can do
  it this way:
  	let g:colors_name = expand('<sfile>:t:r')
- Is 'background' either used or appropriately set to "light" or "dark"?
- Try setting 'hlsearch' and searching for a pattern, is the match easy to
  spot?
- Split a window with ":split" and ":vsplit".  Are the status lines and
  vertical separators clearly visible?
- In the GUI, is it easy to find the cursor, also in a file with lots of
  syntax highlighting?
- Do not use hard coded escape sequences, these will not work in other
  terminals.  Always use color names or #RRGGBB for the GUI.
PK�j�Z5� �]]vim80/colors/torte.vimnu�[���" Vim color file
" Maintainer:	Thorsten Maerz <info@netztorte.de>
" Last Change:	2006 Dec 07
" grey on black
" optimized for TFT panels

set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif
"colorscheme default
let g:colors_name = "torte"

" hardcoded colors :
" GUI Comment : #80a0ff = Light blue

" GUI
highlight Normal     guifg=Grey80	guibg=Black
highlight Search     guifg=Black	guibg=Red	gui=bold
highlight Visual     guifg=#404040			gui=bold
highlight Cursor     guifg=Black	guibg=Green	gui=bold
highlight Special    guifg=Orange
highlight Comment    guifg=#80a0ff
highlight StatusLine guifg=blue		guibg=white
highlight Statement  guifg=Yellow			gui=NONE
highlight Type						gui=NONE

" Console
highlight Normal     ctermfg=LightGrey	ctermbg=Black
highlight Search     ctermfg=Black	ctermbg=Red	cterm=NONE
highlight Visual					cterm=reverse
highlight Cursor     ctermfg=Black	ctermbg=Green	cterm=bold
highlight Special    ctermfg=Brown
highlight Comment    ctermfg=Blue
highlight StatusLine ctermfg=blue	ctermbg=white
highlight Statement  ctermfg=Yellow			cterm=NONE
highlight Type						cterm=NONE

" only for vim 5
if has("unix")
  if v:version<600
    highlight Normal  ctermfg=Grey	ctermbg=Black	cterm=NONE	guifg=Grey80      guibg=Black	gui=NONE
    highlight Search  ctermfg=Black	ctermbg=Red	cterm=bold	guifg=Black       guibg=Red	gui=bold
    highlight Visual  ctermfg=Black	ctermbg=yellow	cterm=bold	guifg=#404040			gui=bold
    highlight Special ctermfg=LightBlue			cterm=NONE	guifg=LightBlue			gui=NONE
    highlight Comment ctermfg=Cyan			cterm=NONE	guifg=LightBlue			gui=NONE
  endif
endif

PK�j�Z$=Q�
�
vim80/colors/koehler.vimnu�[���" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2016 Sep 04

hi clear
set background=dark
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "koehler"
hi Normal		  guifg=white  guibg=black
hi Scrollbar	  guifg=darkcyan guibg=cyan
hi Menu			  guifg=black guibg=cyan
hi SpecialKey	  term=bold  cterm=bold  ctermfg=darkred  guifg=#cc0000
hi NonText		  term=bold  cterm=bold  ctermfg=darkred  gui=bold      guifg=#cc0000
hi Directory	  term=bold  cterm=bold  ctermfg=brown  guifg=#cc8000
hi ErrorMsg		  term=standout  cterm=bold  ctermfg=grey  ctermbg=red  guifg=White  guibg=Red
hi Search		  term=reverse  ctermfg=white  ctermbg=red      guifg=white  guibg=Red
hi MoreMsg		  term=bold  cterm=bold  ctermfg=darkgreen	gui=bold  guifg=SeaGreen
hi ModeMsg		  term=bold  cterm=bold  gui=bold  guifg=White	guibg=Blue
hi LineNr		  term=underline  cterm=bold  ctermfg=darkcyan	guifg=Yellow
hi Question		  term=standout  cterm=bold  ctermfg=darkgreen	gui=bold  guifg=Green
hi StatusLine	  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi StatusLineNC   term=reverse	ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Title		  term=bold  cterm=bold  ctermfg=darkmagenta  gui=bold	guifg=Magenta
hi Visual		  term=reverse	cterm=reverse  gui=reverse
hi WarningMsg	  term=standout  cterm=bold  ctermfg=darkred guifg=Red
hi Cursor		  guifg=bg	guibg=Green
hi Comment		  term=bold  cterm=bold ctermfg=cyan  guifg=#80a0ff
hi Constant		  term=underline  cterm=bold ctermfg=magenta  guifg=#ffa0a0
hi Special		  term=bold  cterm=bold ctermfg=red  guifg=Orange
hi Identifier	  term=underline   ctermfg=brown  guifg=#40ffff
hi Statement	  term=bold  cterm=bold ctermfg=yellow	gui=bold  guifg=#ffff60
hi PreProc		  term=underline  ctermfg=darkmagenta   guifg=#ff80ff
hi Type			  term=underline  cterm=bold ctermfg=lightgreen  gui=bold  guifg=#60ff60
hi Error		  term=reverse	ctermfg=darkcyan  ctermbg=black  guifg=Red	guibg=Black
hi Todo			  term=standout  ctermfg=black	ctermbg=darkcyan  guifg=Blue  guibg=Yellow
hi CursorLine	  term=underline  guibg=#555555 cterm=underline
hi CursorColumn	  term=underline  guibg=#555555 cterm=underline
hi MatchParen	  term=reverse  ctermfg=blue guibg=Blue
hi TabLine		  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineFill	  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineSel	  term=reverse	ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Underlined	  term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
hi Ignore		  ctermfg=black ctermbg=black guifg=black guibg=black
hi EndOfBuffer	  term=bold  cterm=bold  ctermfg=darkred guifg=#cc0000 gui=bold
hi link IncSearch		Visual
hi link String			Constant
hi link Character		Constant
hi link Number			Constant
hi link Boolean			Constant
hi link Float			Number
hi link Function		Identifier
hi link Conditional		Statement
hi link Repeat			Statement
hi link Label			Statement
hi link Operator		Statement
hi link Keyword			Statement
hi link Exception		Statement
hi link Include			PreProc
hi link Define			PreProc
hi link Macro			PreProc
hi link PreCondit		PreProc
hi link StorageClass	Type
hi link Structure		Type
hi link Typedef			Type
hi link Tag				Special
hi link SpecialChar		Special
hi link Delimiter		Special
hi link SpecialComment	Special
hi link Debug			Special
PK�j�Z���q
q
vim80/colors/peachpuff.vimnu�[���" Vim color file
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2003-04-23
" URL: http://trific.ath.cx/Ftp/vim/colors/peachpuff.vim

" This color scheme uses a peachpuff background (what you've expected when it's
" called peachpuff?).
"
" Note: Only GUI colors differ from default, on terminal it's just `light'.

" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
  syntax reset
endif

let colors_name = "peachpuff"

hi Normal guibg=PeachPuff guifg=Black

hi SpecialKey term=bold ctermfg=4 guifg=Blue
hi NonText term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue
hi Directory term=bold ctermfg=4 guifg=Blue
hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
hi IncSearch term=reverse cterm=reverse gui=reverse
hi Search term=reverse ctermbg=3 guibg=Gold2
hi MoreMsg term=bold ctermfg=2 gui=bold guifg=SeaGreen
hi ModeMsg term=bold cterm=bold gui=bold
hi LineNr term=underline ctermfg=3 guifg=Red3
hi Question term=standout ctermfg=2 gui=bold guifg=SeaGreen
hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black
hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=PeachPuff guibg=Gray45
hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=Gray45
hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3
hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg
hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline
hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red
hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow
hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5
hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80
hi DiffAdd term=bold ctermbg=4 guibg=White
hi DiffChange term=bold ctermbg=5 guibg=#edb5cd
hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0
hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060
hi Cursor guifg=bg guibg=fg
hi lCursor guifg=bg guibg=fg

" Colors for syntax highlighting
hi Comment term=bold ctermfg=4 guifg=#406090
hi Constant term=underline ctermfg=1 guifg=#c00058
hi Special term=bold ctermfg=5 guifg=SlateBlue
hi Identifier term=underline ctermfg=6 guifg=DarkCyan
hi Statement term=bold ctermfg=3 gui=bold guifg=Brown
hi PreProc term=underline ctermfg=5 guifg=Magenta3
hi Type term=underline ctermfg=2 gui=bold guifg=SeaGreen
hi Ignore cterm=bold ctermfg=7 guifg=bg
hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow

PK�j�Z0i��

vim80/colors/pablo.vimnu�[���" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2003 May 02

hi clear
set background=dark
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "pablo"

highlight Comment	 ctermfg=8						  guifg=#808080
highlight Constant	 ctermfg=14			   cterm=none guifg=#00ffff				  gui=none
highlight Identifier ctermfg=6						  guifg=#00c0c0
highlight Statement  ctermfg=3			   cterm=bold guifg=#c0c000				  gui=bold
highlight PreProc	 ctermfg=10						  guifg=#00ff00
highlight Type		 ctermfg=2						  guifg=#00c000
highlight Special	 ctermfg=12						  guifg=#0000ff
highlight Error					ctermbg=9							guibg=#ff0000
highlight Todo		 ctermfg=4	ctermbg=3			  guifg=#000080 guibg=#c0c000
highlight Directory  ctermfg=2						  guifg=#00c000
highlight StatusLine ctermfg=11 ctermbg=12 cterm=none guifg=#ffff00 guibg=#0000ff gui=none
highlight Normal									  guifg=#ffffff guibg=#000000
highlight Search				ctermbg=3							guibg=#c0c000
PK�j�ZK���qqvim80/colors/ron.vimnu�[���" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2013 May 24

set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "ron"
hi Normal		guifg=cyan	guibg=black
hi NonText		guifg=yellow guibg=#303030
hi comment		guifg=green
hi constant		guifg=cyan	gui=bold
hi identifier	guifg=cyan	gui=NONE
hi statement	guifg=lightblue	gui=NONE
hi preproc		guifg=Pink2
hi type			guifg=seagreen	gui=bold
hi special		guifg=yellow
hi ErrorMsg		guifg=Black	guibg=Red
hi WarningMsg	guifg=Black	guibg=Green
hi Error		guibg=Red
hi Todo			guifg=Black	guibg=orange
hi Cursor		guibg=#60a060 guifg=#00ff00
hi Search		guibg=darkgray guifg=black gui=bold 
hi IncSearch	gui=NONE guibg=steelblue
hi LineNr		guifg=darkgrey
hi title		guifg=darkgrey
hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black  gui=bold
hi StatusLineNC	gui=NONE guifg=lightblue guibg=darkblue
hi StatusLine	gui=bold	guifg=cyan	guibg=blue
hi label		guifg=gold2
hi operator		guifg=orange
hi clear Visual
hi Visual		term=reverse cterm=reverse gui=reverse
hi DiffChange   guibg=darkgreen
hi DiffText		guibg=olivedrab
hi DiffAdd		guibg=slateblue
hi DiffDelete   guibg=coral
hi Folded		guibg=gray30
hi FoldColumn	guibg=gray30 guifg=white
hi cIf0			guifg=gray
hi diffOnly	guifg=red gui=bold
PK�j�ZJ�Y�00vim80/colors/zellner.vimnu�[���" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2003 May 02

set background=light
hi clear
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "zellner"

hi Comment term=bold ctermfg=Red guifg=Red
hi Normal guifg=black guibg=white
hi Constant term=underline ctermfg=Magenta guifg=Magenta
hi Special term=bold ctermfg=Magenta guifg=Magenta
hi Identifier term=underline ctermfg=Blue guifg=Blue
hi Statement term=bold ctermfg=DarkRed gui=NONE guifg=Brown
hi PreProc term=underline ctermfg=Magenta guifg=Purple
hi Type term=underline ctermfg=Blue gui=NONE guifg=Blue
hi Visual term=reverse ctermfg=Yellow ctermbg=Red gui=NONE guifg=Black guibg=Yellow
hi Search term=reverse ctermfg=Black ctermbg=Cyan gui=NONE guifg=Black guibg=Cyan
hi Tag term=bold ctermfg=DarkGreen guifg=DarkGreen
hi Error term=reverse ctermfg=15 ctermbg=9 guibg=Red guifg=White
hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
hi  StatusLine term=bold,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=NONE guifg=Yellow guibg=DarkGray
hi! link MoreMsg Comment
hi! link ErrorMsg Visual
hi! link WarningMsg ErrorMsg
hi! link Question Comment
hi link String	Constant
hi link Character	Constant
hi link Number	Constant
hi link Boolean	Constant
hi link Float		Number
hi link Function	Identifier
hi link Conditional	Statement
hi link Repeat	Statement
hi link Label		Statement
hi link Operator	Statement
hi link Keyword	Statement
hi link Exception	Statement
hi link Include	PreProc
hi link Define	PreProc
hi link Macro		PreProc
hi link PreCondit	PreProc
hi link StorageClass	Type
hi link Structure	Type
hi link Typedef	Type
hi link SpecialChar	Special
hi link Delimiter	Special
hi link SpecialComment Special
hi link Debug		Special
PK�j�Z趏?��vim80/colors/murphy.vimnu�[���" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer:	Ron Aaron <ron@ronware.org>
" Last Change:	2003 May 02

hi clear
set background=dark
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "murphy"

hi Normal		ctermbg=Black  ctermfg=lightgreen guibg=Black		 guifg=lightgreen
hi Comment		term=bold	   ctermfg=LightRed   guifg=Orange
hi Constant		term=underline ctermfg=LightGreen guifg=White	gui=NONE
hi Identifier	term=underline ctermfg=LightCyan  guifg=#00ffff
hi Ignore					   ctermfg=black	  guifg=bg
hi PreProc		term=underline ctermfg=LightBlue  guifg=Wheat
hi Search		term=reverse					  guifg=white	guibg=Blue
hi Special		term=bold	   ctermfg=LightRed   guifg=magenta
hi Statement	term=bold	   ctermfg=Yellow	  guifg=#ffff00 gui=NONE
hi Type						   ctermfg=LightGreen guifg=grey	gui=none
hi Error		term=reverse   ctermbg=Red	  ctermfg=White guibg=Red  guifg=White
hi Todo			term=standout  ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
" From the source:
hi Cursor										  guifg=Orchid	guibg=fg
hi Directory	term=bold	   ctermfg=LightCyan  guifg=Cyan
hi ErrorMsg		term=standout  ctermbg=DarkRed	  ctermfg=White guibg=Red guifg=White
hi IncSearch	term=reverse   cterm=reverse	  gui=reverse
hi LineNr		term=underline ctermfg=Yellow					guifg=Yellow
hi ModeMsg		term=bold	   cterm=bold		  gui=bold
hi MoreMsg		term=bold	   ctermfg=LightGreen gui=bold		guifg=SeaGreen
hi NonText		term=bold	   ctermfg=Blue		  gui=bold		guifg=Blue
hi Question		term=standout  ctermfg=LightGreen gui=bold		guifg=Cyan
hi SpecialKey	term=bold	   ctermfg=LightBlue  guifg=Cyan
hi StatusLine	term=reverse,bold cterm=reverse   gui=NONE		guifg=White guibg=darkblue
hi StatusLineNC term=reverse   cterm=reverse	  gui=NONE		guifg=white guibg=#333333
hi Title		term=bold	   ctermfg=LightMagenta gui=bold	guifg=Pink
hi WarningMsg	term=standout  ctermfg=LightRed   guifg=Red
hi Visual		term=reverse   cterm=reverse	  gui=NONE		guifg=white guibg=darkgreen
PK�j�Z����	�	vim80/colors/morning.vimnu�[���" Vim color file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2006 Apr 15

" This color scheme uses a light grey background.

" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
  syntax reset
endif

let colors_name = "morning"

hi Normal ctermfg=Black ctermbg=LightGrey guifg=Black guibg=grey90

" Groups used in the 'highlight' and 'guicursor' options default value.
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi ModeMsg term=bold cterm=bold gui=bold
hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
hi StatusLineNC term=reverse cterm=reverse gui=reverse
hi VertSplit term=reverse cterm=reverse gui=reverse
hi Visual term=reverse ctermbg=grey guibg=grey80
hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
hi Cursor guibg=Green guifg=NONE
hi lCursor guibg=Cyan guifg=NONE
hi Directory term=bold ctermfg=DarkBlue guifg=Blue
hi LineNr term=underline ctermfg=Brown guifg=Brown
hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue guibg=grey80
hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen
hi Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE
hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue
hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta
hi WarningMsg term=standout ctermfg=DarkRed guifg=Red
hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
hi DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue
hi DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta
hi DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
hi CursorLine term=underline cterm=underline guibg=grey80
hi CursorColumn term=reverse ctermbg=grey guibg=grey80

" Colors for syntax highlighting
hi Constant term=underline ctermfg=DarkRed guifg=Magenta guibg=grey95
hi Special term=bold ctermfg=DarkMagenta guifg=SlateBlue guibg=grey95
if &t_Co > 8
  hi Statement term=bold cterm=bold ctermfg=Brown gui=bold guifg=Brown
endif
hi Ignore ctermfg=LightGrey guifg=grey90

" vim: sw=2
PK�j�Zy�qP$$vim80/colors/default.vimnu�[���" Vim color file
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last Change:	2001 Jul 23

" This is the default color scheme.  It doesn't define the Normal
" highlighting, it uses whatever the colors used to be.

" Set 'background' back to the default.  The value can't always be estimated
" and is then guessed.
hi clear Normal
set bg&

" Remove all existing highlighting and set the defaults.
hi clear

" Load the syntax highlighting defaults, if it's enabled.
if exists("syntax_on")
  syntax reset
endif

let colors_name = "default"

" vim: sw=2
PK�j�Z�%R�	�	vim80/colors/delek.vimnu�[���" Vim color file
" Maintainer:	David Schweikert <david@schweikert.ch>
" Last Change:	2014 Mar 19

hi clear

let g:colors_name = "delek"

" Normal should come first
hi Normal     guifg=Black  guibg=White
hi Cursor     guifg=bg     guibg=fg
hi lCursor    guifg=NONE   guibg=Cyan

" Note: we never set 'term' because the defaults for B&W terminals are OK
hi DiffAdd    ctermbg=LightBlue    guibg=LightBlue
hi DiffChange ctermbg=LightMagenta guibg=LightMagenta
hi DiffDelete ctermfg=Blue	   ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
hi DiffText   ctermbg=Red	   cterm=bold gui=bold guibg=Red
hi Directory  ctermfg=DarkBlue	   guifg=Blue
hi ErrorMsg   ctermfg=White	   ctermbg=DarkRed  guibg=Red	    guifg=White
hi FoldColumn ctermfg=DarkBlue	   ctermbg=Grey     guibg=Grey	    guifg=DarkBlue
hi Folded     ctermbg=Grey	   ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi IncSearch  cterm=reverse	   gui=reverse
hi LineNr     ctermfg=Brown	   guifg=Brown
hi ModeMsg    cterm=bold	   gui=bold
hi MoreMsg    ctermfg=DarkGreen    gui=bold guifg=SeaGreen
hi NonText    ctermfg=Blue	   gui=bold guifg=gray guibg=white
hi Pmenu      guibg=LightBlue
hi PmenuSel   ctermfg=White	   ctermbg=DarkBlue  guifg=White  guibg=DarkBlue
hi Question   ctermfg=DarkGreen    gui=bold guifg=SeaGreen
if &background == "light"
    hi Search     ctermfg=NONE	   ctermbg=Yellow guibg=Yellow guifg=NONE
else
    hi Search     ctermfg=Black	   ctermbg=Yellow guibg=Yellow guifg=Black
endif
hi SpecialKey ctermfg=DarkBlue	   guifg=Blue
hi StatusLine cterm=bold	   ctermbg=blue ctermfg=yellow guibg=gold guifg=blue
hi StatusLineNC	cterm=bold	   ctermbg=blue ctermfg=black  guibg=gold guifg=blue
hi Title      ctermfg=DarkMagenta  gui=bold guifg=Magenta
hi VertSplit  cterm=reverse	   gui=reverse
hi Visual     ctermbg=NONE	   cterm=reverse gui=reverse guifg=Grey guibg=fg
hi VisualNOS  cterm=underline,bold gui=underline,bold
hi WarningMsg ctermfg=DarkRed	   guifg=Red
hi WildMenu   ctermfg=Black	   ctermbg=Yellow    guibg=Yellow guifg=Black

" syntax highlighting
hi Comment    cterm=NONE ctermfg=DarkRed     gui=NONE guifg=red2
hi Constant   cterm=NONE ctermfg=DarkGreen   gui=NONE guifg=green3
hi Identifier cterm=NONE ctermfg=DarkCyan    gui=NONE guifg=cyan4
hi PreProc    cterm=NONE ctermfg=DarkMagenta gui=NONE guifg=magenta3
hi Special    cterm=NONE ctermfg=LightRed    gui=NONE guifg=deeppink
hi Statement  cterm=bold ctermfg=Blue	     gui=bold guifg=blue
hi Type	      cterm=NONE ctermfg=Blue	     gui=bold guifg=blue

" vim: sw=2
PK�j�Zy>5%�	�	vim80/colors/blue.vimnu�[���" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer:	Steven Vertigan <steven@vertigan.wattle.id.au>
" Last Change:	2006 Sep 23
" Revision #5: Switch main text from white to yellow for easier contrast,
" fixed some problems with terminal backgrounds.

set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "blue"
hi Normal		guifg=yellow	guibg=darkBlue	ctermfg=yellow	ctermbg=darkBlue
hi NonText		guifg=magenta	ctermfg=lightMagenta
hi comment		guifg=gray		ctermfg=gray	ctermbg=darkBlue	gui=bold 
hi constant		guifg=cyan		ctermfg=cyan
hi identifier	guifg=gray		ctermfg=red
hi statement	guifg=white		ctermfg=white	ctermbg=darkBlue	gui=none
hi preproc		guifg=green		ctermfg=green
hi type			guifg=orange	ctermfg=lightRed	ctermbg=darkBlue
hi special		guifg=magenta	ctermfg=lightMagenta	ctermbg=darkBlue
hi Underlined	guifg=cyan		ctermfg=cyan	gui=underline	cterm=underline
hi label		guifg=yellow	ctermfg=yellow
hi operator		guifg=orange	gui=bold	ctermfg=lightRed	ctermbg=darkBlue

hi ErrorMsg		guifg=orange	guibg=darkBlue	ctermfg=lightRed
hi WarningMsg	guifg=cyan		guibg=darkBlue	ctermfg=cyan	gui=bold
hi ModeMsg		guifg=yellow	gui=NONE	ctermfg=yellow
hi MoreMsg		guifg=yellow	gui=NONE	ctermfg=yellow
hi Error		guifg=red		guibg=darkBlue	gui=underline	ctermfg=red

hi Todo			guifg=black		guibg=orange	ctermfg=black	ctermbg=darkYellow
hi Cursor		guifg=black		guibg=white		ctermfg=black	ctermbg=white
hi Search		guifg=black		guibg=orange	ctermfg=black	ctermbg=darkYellow
hi IncSearch	guifg=black		guibg=yellow	ctermfg=black	ctermbg=darkYellow
hi LineNr		guifg=cyan		ctermfg=cyan
hi title		guifg=white	gui=bold	cterm=bold

hi StatusLineNC	gui=NONE	guifg=black guibg=blue	ctermfg=black  ctermbg=blue
hi StatusLine	gui=bold	guifg=cyan	guibg=blue	ctermfg=cyan   ctermbg=blue
hi VertSplit	gui=none	guifg=blue	guibg=blue	ctermfg=blue	ctermbg=blue

hi Visual		term=reverse		ctermfg=black	ctermbg=darkCyan	guifg=black		guibg=darkCyan

hi DiffChange	guibg=darkGreen		guifg=black	ctermbg=darkGreen	ctermfg=black
hi DiffText		guibg=olivedrab		guifg=black		ctermbg=lightGreen	ctermfg=black
hi DiffAdd		guibg=slateblue		guifg=black		ctermbg=blue		ctermfg=black
hi DiffDelete   guibg=coral			guifg=black	ctermbg=cyan		ctermfg=black

hi Folded		guibg=orange		guifg=black		ctermbg=yellow		ctermfg=black
hi FoldColumn	guibg=gray30		guifg=black	ctermbg=gray		ctermfg=black
hi cIf0			guifg=gray			ctermfg=gray

PK�j�Z�/����vimfiles/template.specnu�[���Name:		
Version:	
Release:	1%{?dist}
Summary:	

Group:		
License:	
URL:		
Source0:	

BuildRequires:	
Requires:	

%description


%prep
%setup -q


%build
%configure
make %{?_smp_mflags}


%install
%make_install


%files
%doc



%changelog
PK�j�Z�v̱rr vimfiles/ftdetect/modulefile.vimnu�[���
au BufNewFile,BufRead *
    \ if (getline(1) =~? "^#%Module") |
    \     set filetype=modulefile |
    \ endif

PK�j�Z�/Y�00vimfiles/ftdetect/augeas.vimnu�[���au BufNewFile,BufRead *.aug set filetype=augeas
PK�j�ZB@ı		vimfiles/syntax/modulefile.vimnu�[���
" include tcl syntax
set syntax=tcl

"Clear tcl keywords to match to avoid priority of keyword
" (e.g append vs append-path)
syn clear tclCommand

" set again tclCommand with `syn match`
" Basic Tcl commands: http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm
syn match tclCommand		"\v<(after|append|array|bgerror|binary|cd|chan|clock|close|concat)>"
syn match tclCommand		"\v<(dde|dict|encoding|eof|error|eval|exec|exit|expr|fblocked)>"
syn match tclCommand		"\v<(fconfigure|fcopy|file|fileevent|flush|format|gets|glob)>"
syn match tclCommand		"\v<(global|history|http|incr|info|interp|join|lappend|lassign)>"
syn match tclCommand		"\v<(lindex|linsert|list|llength|lmap|load|lrange|lrepeat)>"
syn match tclCommand		"\v<(lreplace|lreverse|lsearch|lset|lsort|memory|my|namespace)>"
syn match tclCommand		"\v<(next|nextto|open|package|pid|puts|pwd|read|refchan|regexp)>"
syn match tclCommand		"\v<(registry|regsub|rename|scan|seek|self|set|socket|source)>"
syn match tclCommand		"\v<(split|string|subst|tell|time|trace|unknown|unload|unset)>"
syn match tclCommand		"\v<(update|uplevel|upvar|variable|vwait)>"

" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.6/TclCmd/library.htm
syn match tclCommand		"\v<(auto_execok|auto_import|auto_load|auto_mkindex|auto_reset)>"
syn match tclCommand		"\v<(auto_qualify|tcl_findLibrary|parray|tcl_endOfWord)>"
syn match tclCommand		"\v<(tcl_startOfNextWord|tcl_startOfPreviousWord)>"
syn match tclCommand		"\v<(tcl_wordBreakAfter|tcl_wordBreakBefore)>"

" Modulefile commands: https://modules.readthedocs.io/en/stable/modulefile.html
syn match modCommand "\v<(append|prepend|remove)-path>"
syn match modCommand "\v<prereq>"
syn match modCommand "\v<(module|conflict|chdir|prereq)>"
syn match modCommand "\v<module-(alias|info|log|trace|user|verbosity|version|virtual|whatis)>"
syn match modCommand "\v<(un)?set-(alias|function)>"
syn match modCommand "\v<(un)?setenv>"
syn match modCommand "\v<getenv>"
syn match modCommand "\v<(system|uname|x-resource)>"

syn match modCommand "\v<is-(loaded|saved|used|avail)>"

hi def link modCommand tclSpecial

syn match  modProc "\v<ModulesHelp>"
syn match  modProc "\v<ModulesDisplay>"
syn match  modProc "\v<ModulesTest>"

hi def link modProc tclSpecial


syn match modVar "\v<ModulesVersion>"
hi def link modVar tclSpecial

PK�j�Z�E����vimfiles/syntax/augeas.vimnu�[���" Vim syntax file
" Language:	Augeas
" Version: 1.0
" $Id$
" Maintainer:  Bruno Cornec <bruno@project-builder.org>
" Contributors:
"  Raphaël Pinson <raphink@gmail.com>

" 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
syn sync lines=250

syn keyword augeasStatement	module let incl transform autoload in rec
syn keyword augeasTestStatement	test get after put insa insb set rm
syn keyword augeasTodo contained	TODO FIXME XXX DEBUG NOTE

if exists("augeas_symbol_operator")
  syn match   augeasSymbolOperator      "[+\-/*=]"
  syn match   augeasSymbolOperator      "[<>]=\="
  syn match   augeasSymbolOperator      "<>"
  syn match   augeasSymbolOperator      ":="
  syn match   augeasSymbolOperator      "[()]"
  syn match   augeasSymbolOperator      "\.\."
  syn match   augeasSymbolOperator      "[\^.]"
  syn match   augeasMatrixDelimiter	"[][]"
  "if you prefer you can highlight the range
  "syn match  augeasMatrixDelimiter	"[\d\+\.\.\d\+]"
endif

if exists("augeas_no_tabs")
  syn match augeasShowTab "\t"
endif

syn region augeasComment	start="(\*"  end="\*)" contains=augeasTodo,augeasSpaceError


if !exists("augeas_no_functions")
  " functions
  syn keyword augeasLabel	del key store label value square seq
  syn keyword augeasFunction	Util Build Rx Sep Quote
endif

syn region  augeasRegexp  start="/"  end="[^\\]/"
syn region  augeasString  start=+"+  end=+"+  skip=+\\"+


" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_augeas_syn_inits")
  if version < 508
    let did_augeas_syn_inits = 1
    command -nargs=+ HiLink hi link <args>
  else
    command -nargs=+ HiLink hi def link <args>
  endif

  HiLink augeasAcces		augeasStatement
  HiLink augeasBoolean		Boolean
  HiLink augeasComment		Comment
  HiLink augeasConditional	Conditional
  HiLink augeasConstant		Constant
  HiLink augeasDelimiter	Identifier
  HiLink augeasDirective	augeasStatement
  HiLink augeasException	Exception
  HiLink augeasFloat		Float
  HiLink augeasFunction		Function
  HiLink augeasLabel		Label
  HiLink augeasMatrixDelimiter	Identifier
  HiLink augeasModifier		Type
  HiLink augeasNumber		Number
  HiLink augeasOperator		Operator
  HiLink augeasPredefined	augeasStatement
  HiLink augeasPreProc		PreProc
  HiLink augeasRepeat		Repeat
  HiLink augeasSpaceError	Error
  HiLink augeasStatement	Statement
  HiLink augeasString		String
  HiLink augeasStringEscape	Special
  HiLink augeasStringEscapeGPC	Special
  HiLink augeasRegexp		Special
  HiLink augeasStringError	Error
  HiLink augeasStruct		augeasStatement
  HiLink augeasSymbolOperator	augeasOperator
  HiLink augeasTestStatement	augeasStatement
  HiLink augeasTodo		Todo
  HiLink augeasType		Type
  HiLink augeasUnclassified	augeasStatement
  "  HiLink augeasAsm		Assembler
  HiLink augeasError		Error
  HiLink augeasAsmKey		augeasStatement
  HiLink augeasShowTab		Error

  delcommand HiLink
endif


let b:current_syntax = "augeas"

" vim: ts=8 sw=2
PK�j�ZxV;��� vimfiles/ftplugin/modulefile.vimnu�[���
if exists("b:did_modulefile_ftplugin")
  finish
endif
let b:did_modulefile_ftplugin = 1

set syntax=modulefile

" adopted from tcl ftplugin:
let s:cpo_save = &cpo
set cpo-=C

setlocal comments=:#
setlocal commentstring=#%s
setlocal formatoptions+=croql

" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
            \         " | unlet! b:browsefilter"

" Restore the saved compatibility options.
let &cpo = s:cpo_save
unlet s:cpo_save
PK�j�Z�`��vim80/compiler/rubyunit.vimnu�[���PK�j�Z�YkIIivim80/compiler/icc.vimnu�[���PK�j�Z������vim80/compiler/bdf.vimnu�[���PK�j�Z�xr	r	vim80/compiler/gnat.vimnu�[���PK�j�Z��I�zz�vim80/compiler/neato.vimnu�[���PK�j�Zތ�X���vim80/compiler/onsgmls.vimnu�[���PK�j�Z�VCLL�vim80/compiler/checkstyle.vimnu�[���PK�j�Z�S^��lvim80/compiler/xmlwf.vimnu�[���PK�j�Z���:''zvim80/compiler/haml.vimnu�[���PK�j�Z��:����vim80/compiler/php.vimnu�[���PK�j�Z�I��vim80/compiler/erlang.vimnu�[���PK�j�Zc�t.[[K!vim80/compiler/eruby.vimnu�[���PK�j�ZA���""�$vim80/compiler/pylint.vimnu�[���PK�j�Z!BpƖ�Y'vim80/compiler/irix5_c.vimnu�[���PK�j�Z�,.FNN9*vim80/compiler/sass.vimnu�[���PK�j�Z:�P}}�,vim80/compiler/context.vimnu�[���PK�j�ZnNZƚ��4vim80/compiler/decada.vimnu�[���PK�j�Z4L�x<vim80/compiler/msbuild.vimnu�[���PK�j�ZL��500�>vim80/compiler/ocaml.vimnu�[���PK�j�Z�܅��KDvim80/compiler/README.txtnu�[���PK�j�Z)Bfz��IFvim80/compiler/pbx.vimnu�[���PK�j�Z�]>``dHvim80/compiler/mcs.vimnu�[���PK�j�Z�,h�88
Lvim80/compiler/tidy.vimnu�[���PK�j�Z�1�����Nvim80/compiler/splint.vimnu�[���PK�j�Z�2{}}�Wvim80/compiler/fortran_g77.vimnu�[���PK�j�ZCo	ttz\vim80/compiler/dot.vimnu�[���PK�j�Z���ǐ�4^vim80/compiler/rake.vimnu�[���PK�j�Z�a{��bvim80/compiler/tcl.vimnu�[���PK�j�Zd)��cvim80/compiler/ghc.vimnu�[���PK�j�Z�2Տ�Rfvim80/compiler/javac.vimnu�[���PK�j�Z3�H�11)hvim80/compiler/xmllint.vimnu�[���PK�j�Z�t����jvim80/compiler/rspec.vimnu�[���PK�j�Z�hYr..�mvim80/compiler/rustc.vimnu�[���PK�j�Z�u��Srvim80/compiler/hp_acc.vimnu�[���PK�j�Z#p�W���vvim80/compiler/fortran_cv.vimnu�[���PK�j�Z�}����yvim80/compiler/fortran_F.vimnu�[���PK�j�Z�q�"" �|vim80/compiler/fortran_elf90.vimnu�[���PK�j�Z@�S���l�vim80/compiler/mipspro_c89.vimnu�[���PK�j�Z2��5����vim80/compiler/ifort.vimnu�[���PK�j�Z�C���vim80/compiler/go.vimnu�[���PK�j�Z��o��؈vim80/compiler/xbuild.vimnu�[���PK�j�Z�4�M���vim80/compiler/fpc.vimnu�[���PK�j�Z�1s*%%)�vim80/compiler/msvc.vimnu�[���PK�j�Zh��|����vim80/compiler/irix5_cpp.vimnu�[���PK�j�Zg �����vim80/compiler/pyunit.vimnu�[���PK�j�Z�oK��`�vim80/compiler/tex.vimnu�[���PK�j�Z��rr��vim80/compiler/cs.vimnu�[���PK�j�Z�0֡��9�vim80/compiler/perl.vimnu�[���PK�j�ZB��{9�vim80/compiler/ruby.vimnu�[���PK�j�Z�`Y�����vim80/compiler/bcc.vimnu�[���PK�j�Z��ҊSS��vim80/compiler/intel.vimnu�[���PK�j�Z7���uuA�vim80/compiler/cargo.vimnu�[���PK�j�Z^���vim80/compiler/csslint.vimnu�[���PK�j�Z�vώ��f�vim80/compiler/ant.vimnu�[���PK�j�Z���11Y�vim80/compiler/cucumber.vimnu�[���PK�j�Z�����շvim80/compiler/mips_c.vimnu�[���PK�j�Z�6ȺѺvim80/compiler/jikes.vimnu�[���PK�j�Z�h�NN!�vim80/compiler/rst.vimnu�[���PK�j�Z�s ��vim80/compiler/modelsim_vcom.vimnu�[���PK�j�Z|2�q��$�vim80/compiler/gfortran.vimnu�[���PK�j�Z8�6����vim80/compiler/se.vimnu�[���PK�j�Z?�Q��9�vim80/compiler/gcc.vimnu�[���PK�j�Z��e��H�vim80/compiler/mipspro_cpp.vimnu�[���PK�j�Z){���S�vim80/compiler/g95.vimnu�[���PK�j�ZU�(���>�vim80/compiler/fortran_lf95.vimnu�[���PK�j�ZPs�%QQ8�vim80/ftplugof.vimnu�[���PK�j�ZF窻����vim80/evim.vimnu�[���PK�j�Z�7��	�	��vim80/spell/en.latin1.sugnu�[���PK�j�Z?כ�	�	�
vim80/spell/en.utf-8.sugnu�[���PK�j�Z~+/��#vim80/spell/he.vimnu�[���PK�j�Z��@uu:$vim80/spell/fixdup.vimnu�[���PK�j�Z(��Y�	�	�&vim80/spell/en.ascii.sugnu�[���PK�j�Z��1|	1|	Dvim80/spell/en.utf-8.splnu�[���PK�j�Z_�#r	#r	��%vim80/spell/en.ascii.splnu�[���PK�j�Z������2/vim80/spell/check_locales.vimnu�[���PK�j�ZȮ��{z	{z	5/vim80/spell/en.latin1.splnu�[���PK�j�Zr;�vvۯ8vim80/spell/spell.vimnu�[���PK�j�Zq�J�����8vim80/spell/yi.vimnu�[���PK�j�ZyhfI��ɱ8vim80/spell/cleanadd.vimnu�[���PK�j�Z�����8vim80/ftoff.vimnu�[���PK�j�Z��F�tEtE
�8vim80/rgb.txtnu�[���PK�j�Z&\�K`@`@2��8vim80/pack/dist/opt/termdebug/plugin/termdebug.vimnu�[���PK�j�Z�oR�*y*y.�=9vim80/pack/dist/opt/matchit/plugin/matchit.vimnu�[���PK�j�Z+�	��$	�9vim80/pack/dist/opt/matchit/doc/tagsnu�[���PK�j�Znx��KK+�9vim80/pack/dist/opt/matchit/doc/matchit.txtnu�[���PK�j�ZHU�RR,f
:vim80/pack/dist/opt/dvorak/dvorak/enable.vimnu�[���PK�j�Z�nw=��-:vim80/pack/dist/opt/dvorak/dvorak/disable.vimnu�[���PK�j�Z�@6,:vim80/pack/dist/opt/dvorak/plugin/dvorak.vimnu�[���PK�j�ZdѠ�#�#.s:vim80/pack/dist/opt/justify/plugin/justify.vimnu�[���PK�j�Z/��lRR2�8:vim80/pack/dist/opt/shellmenu/plugin/shellmenu.vimnu�[���PK�j�Z�3�XX2MH:vim80/pack/dist/opt/swapmouse/plugin/swapmouse.vimnu�[���PK�j�Z"<�
�
�
8L:vim80/pack/dist/opt/editexisting/plugin/editexisting.vimnu�[���PK�j�Z���??MZ:vim80/gvimrc_example.vimnu�[���PK�j�ZN��XX �`:vim80/lang/menu_sk_sk.cp1250.vimnu�[���PK�j�Zl�D�KK$|a:vim80/lang/menu_sr_yu.iso_8859-5.vimnu�[���PK�j�Z��YYb:vim80/lang/menu_de_de.utf-8.vimnu�[���PK�j�Z��YY�b:vim80/lang/menu_fr_fr.utf-8.vimnu�[���PK�j�Z��S鋽�� kc:vim80/lang/de/LC_MESSAGES/vim.monu�[���PK�j�Z1�nGGF!=vim80/lang/menu_es.latin1.vimnu�[���PK�j�Z�G���,�, �!=vim80/lang/sk/LC_MESSAGES/vim.monu�[���PK�j�Zz4��]] O?vim80/lang/ru/LC_MESSAGES/vim.monu�[���PK�j�Z2�ڡڡ'c�Bvim80/lang/cs.cp1250/LC_MESSAGES/vim.monu�[���PK�j�Z¹��[[�NDvim80/lang/menu_ja.eucjp.vimnu�[���PK�j�ZS[�2\\;PDvim80/lang/menu_af.utf-8.vimnu�[���PK�j�Z�G��RR �PDvim80/lang/menu_cs_cz.cp1250.vimnu�[���PK�j�Z��O2O2�QDvim80/lang/menu_sr_rs.ascii.vimnu�[���PK�j�Z��y�&#�Dvim80/lang/menu_chinese(gb)_gb.936.vimnu�[���PK�j�Z���sZZ��Dvim80/lang/menu_ja_jp.ujis.vimnu�[���PK�j�Z�R���,�,'/�Dvim80/lang/sk.cp1250/LC_MESSAGES/vim.monu�[���PK�j�Z#*�I?3?3 h�Fvim80/lang/menu_sl_si.latin2.vimnu�[���PK�j�Zc��qXX��Fvim80/lang/menu_eo_xx.utf-8.vimnu�[���PK�j�Z��YY��Fvim80/lang/menu_fr.utf-8.vimnu�[���PK�j�Z�0FFC�Fvim80/lang/menu_sr_yu.utf-8.vimnu�[���PK�j�ZF!�j2j2$��Fvim80/lang/menu_cs_cz.iso_8859-2.vimnu�[���PK�j�Z��s2s2.�Gvim80/lang/menu_czech_czech_republic.ascii.vimnu�[���PK�j�Zkq��X*X*gOGvim80/lang/menu_hu_hu.utf-8.vimnu�[���PK�j�Z�0FFzGvim80/lang/menu_sr.utf-8.vimnu�[���PK�j�Z�U��� �zGvim80/lang/menu_af_af.latin1.vimnu�[���PK�j�Z�OaRR&��Gvim80/lang/menu_italian_italy.1252.vimnu�[���PK�j�ZWW?�#(#( )�Gvim80/lang/menu_uk_ua.cp1251.vimnu�[���PK�j�ZW5_�@@��Gvim80/lang/menu_ru.utf-8.vimnu�[���PK�j�ZD�m��E�E (�Gvim80/lang/menu_fi_fi.latin1.vimnu�[���PK�j�Z�{ZqLL	Hvim80/lang/menu_pl.cp1250.vimnu�[���PK�j�Z������Hvim80/lang/menu_no_no.utf-8.vimnu�[���PK�j�Z�i��� �Hvim80/lang/menu_en_gb.latin1.vimnu�[���PK�j�Z#�	555 �Hvim80/lang/menu_de_de.latin1.vimnu�[���PK�j�Z�|狇5�59Hvim80/lang/menu_ja_jp.utf-8.vimnu�[���PK�j�Z�G>�BB �nHvim80/lang/menu_pt_pt.latin1.vimnu�[���PK�j�Zl�NyKK�oHvim80/lang/menu_ca.latin1.vimnu�[���PK�j�Z'�bHgIgI pHvim80/lang/uk/LC_MESSAGES/vim.monu�[���PK�j�Zqq���5�5 չKvim80/lang/menu_es_es.latin1.vimnu�[���PK�j�Z��<Sjj(�Kvim80/lang/menu_finnish_finland.1252.vimnu�[���PK�j�Z*с ��Kvim80/lang/ja/LC_MESSAGES/vim.monu�[���PK�j�ZG�U�� )�Nvim80/lang/fr/LC_MESSAGES/vim.monu�[���PK�j�ZԗA�KK$��Qvim80/lang/menu_sr_yu.iso_8859-2.vimnu�[���PK�j�Z��0=H=H 1�Qvim80/lang/menu_fr_fr.latin1.vimnu�[���PK�j�Z��s�SS �Rvim80/lang/menu_cs_cz.latin1.vimnu�[���PK�j�Z�iA�p�p�'a	Rvim80/lang/pl.cp1250/LC_MESSAGES/vim.monu�[���PK�j�Z]u�.``(�Tvim80/lang/menu_zh.gb2312.vimnu�[���PK�j�Z��W�(�("ՔTvim80/lang/menu_chinese_gb.936.vimnu�[���PK�j�Z�(����� �Tvim80/lang/ga/LC_MESSAGES/vim.monu�[���PK�j�Z`�s�)�) �vWvim80/lang/menu_zh_cn.gb2312.vimnu�[���PK�j�Z�
��+�+ ʠWvim80/lang/nb/LC_MESSAGES/vim.monu�[���PK�j�Z��m�g�g� ��Yvim80/lang/ca/LC_MESSAGES/vim.monu�[���PK�j�Z�G��RR��\vim80/lang/menu_cs.cp1250.vimnu�[���PK�j�Z.H-�4�4�&P�\vim80/lang/pl.UTF-8/LC_MESSAGES/vim.monu�[���PK�j�ZN��XX�_vim80/lang/menu_sk.cp1250.vimnu�[���PK�j�ZW��GG_vim80/lang/menu_it.latin1.vimnu�[���PK�j�ZW5_�@@_vim80/lang/menu_ru_ru.utf-8.vimnu�[���PK�j�ZBD��]2]2$�_vim80/lang/menu_sr_rs.iso_8859-2.vimnu�[���PK�j�Z�,����SN_vim80/lang/README.txtnu�[���PK�j�Z��w��8V_vim80/lang/menu_ca_es.utf-8.vimnu�[���PK�j�Z���`m'm'$ W_vim80/lang/menu_sk_sk.iso_8859-2.vimnu�[���PK�j�Z4��)šš'�~_vim80/lang/ru.cp1251/LC_MESSAGES/vim.monu�[���PK�j�Z)Ǎ̈́���)� bvim80/lang/zh_TW.UTF-8/LC_MESSAGES/vim.monu�[���PK�j�Z�iH�TT0��cvim80/lang/menu_english_united_kingdom.ascii.vimnu�[���PK�j�Z�,�Dii&��cvim80/lang/menu_french_france.1252.vimnu�[���PK�j�ZC���ZZM�cvim80/lang/menu_fi.utf-8.vimnu�[���PK�j�Z6k/))%��cvim80/lang/menu_spanish_spain.850.vimnu�[���PK�j�Z|�0���q�cvim80/lang/menu_sk_sk.vimnu�[���PK�j�ZʥkBII��cvim80/lang/menu_af.latin1.vimnu�[���PK�j�Z<�w��4�4 (�cvim80/lang/menu_ru_ru.koi8-r.vimnu�[���PK�j�Z�j��YYA(dvim80/lang/menu_zh_tw.big5.vimnu�[���PK�j�Z���3�3�(dvim80/lang/menu_cs_cz.utf-8.vimnu�[���PK�j�Z�
��+�+ ]dvim80/lang/no/LC_MESSAGES/vim.monu�[���PK�j�Z-`����� 0�fvim80/lang/it/LC_MESSAGES/vim.monu�[���PK�j�Zp#�F&x&x 5@ivim80/lang/es/LC_MESSAGES/vim.monu�[���PK�j�Z��~$$��kvim80/lang/menu_ja.cp932.vimnu�[���PK�j�Z�g�W:0:0&�kvim80/lang/menu_japanese_japan.932.vimnu�[���PK�j�Z��.`�)�) ��kvim80/lang/menu_no_no.latin1.vimnu�[���PK�j�Zu��'ݿݿ#�lvim80/lang/pt_BR/LC_MESSAGES/vim.monu�[���PK�j�Z�j��YY'�nvim80/lang/menu_zh_tw.cp950.vimnu�[���PK�j�Z��YY��nvim80/lang/menu_de.utf-8.vimnu�[���PK�j�Z�ɊRRt�nvim80/lang/menu_zh_cn.18030.vimnu�[���PK�j�ZҎ��VV�nvim80/lang/menu_pt_br.utf-8.vimnu�[���PK�j�Z��,CC ��nvim80/lang/menu_pt_br.latin1.vimnu�[���PK�j�Z�G�=�� M�nvim80/lang/af/LC_MESSAGES/vim.monu�[���PK�j�ZnV�)�) ��pvim80/lang/menu_sv_se.latin1.vimnu�[���PK�j�Z�G>�BB��pvim80/lang/menu_pt_pt.utf-8.vimnu�[���PK�j�Z�j��YY,�pvim80/lang/menu_zh.cp950.vimnu�[���PK�j�Z_��S�(�( ��pvim80/lang/menu_nl_nl.latin1.vimnu�[���PK�j�Z�j��YYqvim80/lang/menu_zh.big5.vimnu�[���PK�j�Z�L����� �qvim80/lang/eo/LC_MESSAGES/vim.monu�[���PK�j�Z��bmFF
�svim80/lang/menu_sr_yu.ascii.vimnu�[���PK�j�Z�ZSii'��svim80/lang/menu_german_germany.1252.vimnu�[���PK�j�Zb]&}}_�svim80/lang/menu_no.latin1.vimnu�[���PK�j�Z�&�d��%)�svim80/lang/ja.sjis/LC_MESSAGES/vim.monu�[���PK�j�Z�Tn�/�/&�]vvim80/lang/menu_polish_poland.1250.vimnu�[���PK�j�Z��F���vvim80/lang/menu_ja.utf-8.vimnu�[���PK�j�Z����a�a�)��vvim80/lang/zh_CN.cp936/LC_MESSAGES/vim.monu�[���PK�j�Z�iH�TT/zuxvim80/lang/menu_english_united_kingdom.1252.vimnu�[���PK�j�Z��-w�Y�Y -vxvim80/lang/sr/LC_MESSAGES/vim.monu�[���PK�j�Z��P�bbQ�{vim80/lang/menu_zh.cp936.vimnu�[���PK�j�Z;Z�.�1�1&��{vim80/lang/menu_chinese_taiwan.950.vimnu�[���PK�j�Z��I�;2;2$0|vim80/lang/menu_sr_rs.iso_8859-5.vimnu�[���PK�j�Zz=,�`�` �5|vim80/lang/ko/LC_MESSAGES/vim.monu�[���PK�j�Zd��i77 ǖ~vim80/lang/menu_ca_es.latin1.vimnu�[���PK�j�Zp���3�3(�~vim80/lang/menu_sl_si.utf-8.vimnu�[���PK�j�Z¹��[[jvim80/lang/menu_ja.euc-jp.vimnu�[���PK�j�ZdPE���'vim80/lang/uk.cp1251/LC_MESSAGES/vim.monu�[���PK�j�ZE��]]l��vim80/lang/menu_nl.utf-8.vimnu�[���PK�j�Z��s�RR��vim80/lang/menu_cs.latin1.vimnu�[���PK�j�Z���b2b2-���vim80/lang/menu_czech_czech_republic.1250.vimnu�[���PK�j�Z�:r��s؁vim80/lang/menu_no.utf-8.vimnu�[���PK�j�Z'�4YYNفvim80/lang/menu_hu.utf-8.vimnu�[���PK�j�Zݕ��^^!�فvim80/lang/menu_hu.iso_8859-2.vimnu�[���PK�j�Z�?}�� �ځvim80/lang/vi/LC_MESSAGES/vim.monu�[���PK�j�Zc��qXX��vim80/lang/menu_eo_eo.utf-8.vimnu�[���PK�j�Z��~$$l��vim80/lang/menu_ja_jp.cp932.vimnu�[���PK�j�Z�7?6^^��vim80/lang/menu_de.latin1.vimnu�[���PK�j�ZY:��I2I2 ���vim80/lang/menu_it_it.latin1.vimnu�[���PK�j�Z+a?�Q,Q,#/�vim80/lang/menu_ko_kr.utf-8.vimnu�[���PK�j�Zh�A�T�T�&�[�vim80/lang/ko.UTF-8/LC_MESSAGES/vim.monu�[���PK�j�Z�ɊRRm��vim80/lang/menu_zh_cn.gbk.vimnu�[���PK�j�Z��p`�`� �vim80/lang/nl/LC_MESSAGES/vim.monu�[���PK�j�Z
�\5JJ���vim80/lang/menu_nl.latin1.vimnu�[���PK�j�Zg�%�ZZS��vim80/lang/menu_sv.utf-8.vimnu�[���PK�j�Z���ZZ���vim80/lang/menu_es.utf-8.vimnu�[���PK�j�Z�f��1/1/���vim80/lang/menu_pt_br.vimnu�[���PK�j�Z�L�

)Ljvim80/lang/zh_CN.UTF-8/LC_MESSAGES/vim.monu�[���PK�j�Z�qq-׊vim80/lang/menu_czech_czech_republic.1252.vimnu�[���PK�j�Z�G�o�o�#M؊vim80/lang/zh_TW/LC_MESSAGES/vim.monu�[���PK�j�Z��f?�=�=��vim80/lang/menu_sr_rs.utf-8.vimnu�[���PK�j�Z
���EEI��vim80/lang/menu_ko.utf-8.vimnu�[���PK�j�Z���$\\��vim80/lang/menu_fi.latin1.vimnu�[���PK�j�ZV.��+�+���vim80/lang/menu_pt_pt.vimnu�[���PK�j�Z��JZZZ]�vim80/lang/menu_it.utf-8.vimnu�[���PK�j�Z����#�vim80/lang/zh_CN/LC_MESSAGES/vim.monu�[���PK�j�Z�`-55^Ԏvim80/lang/menu_zh_tw.utf-8.vimnu�[���PK�j�ZY$JJ�	�vim80/lang/menu_en_gb.utf-8.vimnu�[���PK�j�Zz�lu3u3 U
�vim80/lang/menu_sl_si.cp1250.vimnu�[���PK�j�Z��W��0�0>�vim80/lang/menu_pl_pl.utf-8.vimnu�[���PK�j�Z����E�E1o�vim80/lang/menu_eo.utf-8.vimnu�[���PK�j�Z��JZZZ��vim80/lang/menu_it_it.utf-8.vimnu�[���PK�j�Z��ɒ����vim80/lang/menu_ko_kr.vimnu�[���PK�j�ZC���ZZ���vim80/lang/menu_fi_fi.utf-8.vimnu�[���PK�j�ZS[�2\\=��vim80/lang/menu_af_af.utf-8.vimnu�[���PK�j�Z���sZZ跏vim80/lang/menu_ja.ujis.vimnu�[���PK�j�Z�G����� ���vim80/lang/fi/LC_MESSAGES/vim.monu�[���PK�j�Z��_L<0<0 �e�vim80/lang/menu_ja_jp.euc-jp.vimnu�[���PK�j�Ze]��#(#( ��vim80/lang/menu_uk_ua.koi8-u.vimnu�[���PK�j�Z���)i'i'/���vim80/lang/menu_slovak_slovak_republic.1250.vimnu�[���PK�j�Z��C��J�vim80/lang/menu_sk_sk.1250.vimnu�[���PK�j�ZNQ܁))q�vim80/lang/menu_ko_kr.euckr.vimnu�[���PK�j�Z&�7t�t� ��vim80/lang/pl/LC_MESSAGES/vim.monu�[���PK�j�Z�E��G�G#���vim80/lang/en_GB/LC_MESSAGES/vim.monu�[���PK�j�Z��
K^^��vim80/lang/menu_fr.latin1.vimnu�[���PK�j�Z�� � �'m�vim80/lang/ja.euc-jp/LC_MESSAGES/vim.monu�[���PK�j�Z�A�77䋘vim80/lang/menu_vi_vn.vimnu�[���PK�j�Z���+�+8Øvim80/lang/menu_zh_cn.utf-8.vimnu�[���PK�j�ZE��]]^�vim80/lang/menu_nl_nl.utf-8.vimnu�[���PK�j�Z�su��,�,$
�vim80/lang/menu_hu_hu.iso_8859-2.vimnu�[���PK�j�Z��P�bb��vim80/lang/menu_zh_cn.cp936.vimnu�[���PK�j�Z$��)7171 ��vim80/lang/sv/LC_MESSAGES/vim.monu�[���PK�j�Z�؋�.O�vim80/lang/menu_chinese(taiwan)_taiwan.950.vimnu�[���PK�j�ZϢ��"" �P�vim80/lang/lv/LC_MESSAGES/vim.monu�[���PK�j�Z��w���r�vim80/lang/menu_ca.utf-8.vimnu�[���PK�j�Z�tQ�GG�s�vim80/lang/menu_sv.latin1.vimnu�[���PK�j�Z�{ZqLL rt�vim80/lang/menu_pl_pl.cp1250.vimnu�[���PK�j�Z[1O�/�/$u�vim80/lang/menu_pl_pl.iso_8859-2.vimnu�[���PK�j�Z̘�ޡޡ `��vim80/lang/cs/LC_MESSAGES/vim.monu�[���PK�j�Z�U�jAjA�G�vim80/lang/menu_ru_ru.vimnu�[���PK�j�Zg�%�ZZA��vim80/lang/menu_sv_se.utf-8.vimnu�[���PK�j�Z���ZZꉝvim80/lang/menu_es_es.utf-8.vimnu�[���PK�j�Zu�ڄZZ���vim80/keymap/sinhala.vimnu�[���PK�j�Z�u���	�	"5��vim80/keymap/belarusian-jcuken.vimnu�[���PK�j�Z6��;GG]��vim80/keymap/thaana.vimnu�[���PK�j�Z���z��땝vim80/keymap/hebrew_cp1255.vimnu�[���PK�j�Z��n����vim80/keymap/accents.vimnu�[���PK�j�Z�N���
�
!ן�vim80/keymap/ukrainian-dvorak.vimnu�[���PK�j�Z�+�M

 ܪ�vim80/keymap/mongolian_utf-8.vimnu�[���PK�j�Zm��AA'.��vim80/keymap/sinhala-phonetic_utf-8.vimnu�[���PK�j�Z_��44�ǝvim80/keymap/czech_utf-8.vimnu�[���PK�j�Z��p#Fʝvim80/keymap/hebrewp_iso-8859-8.vimnu�[���PK�j�Z����
�
!�͝vim80/keymap/ukrainian-jcuken.vimnu�[���PK�j�Z��d##�؝vim80/keymap/czech.vimnu�[���PK�j�Z��"ٝvim80/keymap/pinyin.vimnu�[���PK�j�Z[�0}}'�۝vim80/keymap/armenian-eastern_utf-8.vimnu�[���PK�j�Z�c�	�	 Xߝvim80/keymap/russian-yawerty.vimnu�[���PK�j�Z�顰;
;
G�vim80/keymap/arabic_utf-8.vimnu�[���PK�j�Z�9#&ee��vim80/keymap/bulgarian-bds.vimnu�[���PK�j�Z��½MM'��vim80/keymap/vietnamese-telex_utf-8.vimnu�[���PK�j�Z�|k��&&�vim80/keymap/persian-iranian_utf-8.vimnu�[���PK�j�ZdS�m�
�
&l�vim80/keymap/russian-jcukenwintype.vimnu�[���PK�j�Z8���$�vim80/keymap/serbian_utf-8.vimnu�[���PK�j�Z�<H+"
"
�'�vim80/keymap/russian-dvorak.vimnu�[���PK�j�Z�I
��"o2�vim80/keymap/hebrew_iso-8859-8.vimnu�[���PK�j�Z>כ##�6�vim80/keymap/hebrewp_cp1255.vimnu�[���PK�j�Z�\�׻�!=�vim80/keymap/README.txtnu�[���PK�j�Z�
gj��(#A�vim80/keymap/oldturkic-yenisei_utf-8.vimnu�[���PK�j�Z���s++T�vim80/keymap/serbian-latin.vimnu�[���PK�j�Z@ABT\\${T�vim80/keymap/polish-slash_cp1250.vimnu�[���PK�j�Z��'���+Z�vim80/keymap/kazakh-jcuken.vimnu�[���PK�j�Z��}��:g�vim80/keymap/polish-slash.vimnu�[���PK�j�Z�V��Lj�vim80/keymap/greek_cp1253.vimnu�[���PK�j�Z�m,,5s�vim80/keymap/slovak_utf-8.vimnu�[���PK�j�ZT��`

"�v�vim80/keymap/russian-jcukenwin.vimnu�[���PK�j�Z~"�����vim80/keymap/serbian_cp1250.vimnu�[���PK�j�Z��(L\\(.��vim80/keymap/polish-slash_iso-8859-2.vimnu�[���PK�j�Z<��7#7#∞vim80/keymap/kana.vimnu�[���PK�j�Z0I/���"^��vim80/keymap/lithuanian-baltic.vimnu�[���PK�j�ZU9���$s��vim80/keymap/croatian_iso-8859-2.vimnu�[���PK�j�Z��C�''���vim80/keymap/esperanto.vimnu�[���PK�j�Z�Lfbb���vim80/keymap/croatian_utf-8.vimnu�[���PK�j�ZP��EE���vim80/keymap/hebrewp.vimnu�[���PK�j�ZK���&7��vim80/keymap/thaana-phonetic_utf-8.vimnu�[���PK�j�ZT$���Þvim80/keymap/canfr-win.vimnu�[���PK�j�Z}�|q��#kȞvim80/keymap/serbian_iso-8859-2.vimnu�[���PK�j�Z%�V�TT!�ʞvim80/keymap/greek_iso-8859-7.vimnu�[���PK�j�Zi*���<Ӟvim80/keymap/dvorak.vimnu�[���PK�j�ZrL
9�
�
"~՞vim80/keymap/russian-jcukenmac.vimnu�[���PK�j�Z��4BB��vim80/keymap/slovak.vimnu�[���PK�j�Z8.ԾKK%V�vim80/keymap/vietnamese-vni_utf-8.vimnu�[���PK�j�Z��Ʃ��&��vim80/keymap/vietnamese-viqr_utf-8.vimnu�[���PK�j�Z`�t�,,$+�vim80/keymap/serbian-latin_utf-8.vimnu�[���PK�j�Z!J�R����vim80/keymap/serbian.vimnu�[���PK�j�Z��TT��vim80/keymap/croatian.vimnu�[���PK�j�Z&�#��'c�vim80/keymap/oldturkic-orkhon_utf-8.vimnu�[���PK�j�Z���d
�vim80/keymap/serbian_cp1251.vimnu�[���PK�j�Z�R����#A
�vim80/keymap/serbian_iso-8859-5.vimnu�[���PK�j�Z��d�[[#(�vim80/keymap/polish-slash_cp852.vimnu�[���PK�j�ZU�F�9�9��vim80/keymap/tamil_tscii.vimnu�[���PK�j�Z!�-��#�O�vim80/keymap/polish-slash_utf-8.vimnu�[���PK�j�Z�?�h�	�	�U�vim80/keymap/russian-jcuken.vimnu�[���PK�j�Zgm���`�vim80/keymap/greek.vimnu�[���PK�j�Z�&���Ga�vim80/keymap/hebrew_utf-8.vimnu�[���PK�j�Z��T((( |p�vim80/keymap/croatian_cp1250.vimnu�[���PK�j�Z>���33�r�vim80/keymap/hebrewp_utf-8.vimnu�[���PK�j�Z��9�BBu��vim80/keymap/hebrew.vimnu�[���PK�j�Z-�}}'���vim80/keymap/armenian-western_utf-8.vimnu�[���PK�j�Z>�{��҆�vim80/keymap/greek_cp737.vimnu�[���PK�j�Z�qK=�����vim80/keymap/slovak_cp1250.vimnu�[���PK�j�Z��f�f��vim80/keymap/greek_utf-8.vimnu�[���PK�j�Zw��_	_	 ��vim80/keymap/esperanto_utf-8.vimnu�[���PK�j�Z���mm��vim80/keymap/arabic.vimnu�[���PK�j�Z�jp�FFo�vim80/keymap/magyar_utf-8.vimnu�[���PK�j�Z�fV��"�vim80/keymap/slovak_iso-8859-2.vimnu�[���PK�j�Z�����L�vim80/keymap/persian.vimnu�[���PK�j�Z)�q��#$	�vim80/keymap/bulgarian-phonetic.vimnu�[���PK�j�Z��٭�'�'$% �vim80/autoload/netrwFileHandlers.vimnu�[���PK�j�Z~0/{[:[:H�vim80/autoload/xmlcomplete.vimnu�[���PK�j�Z(� �II���vim80/autoload/spellfile.vimnu�[���PK�j�Z{;(˔i�i%V��vim80/autoload/javascriptcomplete.vimnu�[���PK�j�Z�����?�vim80/autoload/gnat.vimnu�[���PK�j�Z�d���Y�vim80/autoload/paste.vimnu�[���PK�j�Zb���!a!aZ�vim80/autoload/getscript.vimnu�[���PK�j�Z�!��JJǀ�vim80/autoload/dist/ft.vimnu�[���PK�j�Z��CTCT"ˡvim80/autoload/python3complete.vimnu�[���PK�j�Z@X�VV��vim80/autoload/context.vimnu�[���PK�j�Z�f��R5�vim80/autoload/decada.vimnu�[���PK�j�Z�)�````QA�vim80/autoload/phpcomplete.vimnu�[���PK�j�Zi�T/9/9���vim80/autoload/zip.vimnu�[���PK�j�ZGm2tۧvim80/autoload/README.txtnu�[���PK�j�Zҩ�__�ާvim80/autoload/vimball.vimnu�[���PK�j�Z���
�'�' >�vim80/autoload/netrwSettings.vimnu�[���PK�j�Z�I(]GGBf�vim80/autoload/xml/xsl.vimnu�[���PK�j�Z�P�j�j��x�vim80/autoload/xml/html401f.vimnu�[���PK�j�Z�>���G�G�L�vim80/autoload/xml/html32.vimnu�[���PK�j�Z�#�
�
�s��vim80/autoload/xml/html40f.vimnu�[���PK�j�Z��^����g�vim80/autoload/xml/xhtml11.vimnu�[���PK�j�Z��B�B�1$�vim80/autoload/xml/html401s.vimnu�[���PK�j�Z�S������ƫvim80/autoload/xml/html401t.vimnu�[���PK�j�Z�1u���̘�vim80/autoload/xml/xsd.vimnu�[���PK�j�Z-�����
��vim80/autoload/xml/html40s.vimnu�[���PK�j�Z1S\�����@O�vim80/autoload/xml/xhtml10s.vimnu�[���PK�j�Z�ӄ0��J��vim80/autoload/xml/xhtml10t.vimnu�[���PK�j�ZU��~]�]��׮vim80/autoload/xml/html40t.vimnu�[���PK�j�Z@BHJ����L��vim80/autoload/xml/xhtml10f.vimnu�[���PK�j�Z*�

���vim80/autoload/gzip.vimnu�[���PK�j�Z��Sw����㝰vim80/autoload/csscomplete.vimnu�[���PK�j�Z>�9JVJV�F�vim80/autoload/tar.vimnu�[���PK�j�Z�1V�B�Bz��vim80/autoload/ccomplete.vimnu�[���PK�j�Z>KX)_)_J�vim80/autoload/rubycomplete.vimnu�[���PK�j�Z�:����?�vim80/autoload/rustfmt.vimnu�[���PK�j�Z�Ua�M}M}�K�vim80/autoload/tohtml.vimnu�[���PK�j�Zw��f&z&z!Pɲvim80/autoload/syntaxcomplete.vimnu�[���PK�j�ZM�pː�"�C�vim80/autoload/contextcomplete.vimnu�[���PK�j�Z��#����F�vim80/autoload/sqlcomplete.vimnu�[���PK�j�Zl�2N�(�(�vim80/autoload/rust.vimnu�[���PK�j�Z��0���1	�vim80/autoload/netrw.vimnu�[���PK�j�Z/~W'X'XF(�vim80/autoload/ada.vimnu�[���PK�j�Z �&]]"���vim80/autoload/clojurecomplete.vimnu�[���PK�j�ZZs�RVV!b��vim80/autoload/pythoncomplete.vimnu�[���PK�j�Z��
UU��vim80/autoload/adacomplete.vimnu�[���PK�j�Z�[jcjcu�vim80/autoload/htmlcomplete.vimnu�[���PK�j�Z�@�//".i�vim80/autoload/netrw_gitignore.vimnu�[���PK�j�Z^�r̷��u�vim80/print/iso-8859-3.psnu�[���PK�j�Z�e���~�vim80/print/cp1252.psnu�[���PK�j�Z2Q;�PP���vim80/print/iso-8859-10.psnu�[���PK�j�Z�W)R??=��vim80/print/iso-8859-8.psnu�[���PK�j�Z4� ��Ř�vim80/print/jis_roman.psnu�[���PK�j�Z�5b�����vim80/print/cns_roman.psnu�[���PK�j�Z3�
���Q��vim80/print/prolog.psnu�[���PK�j�Z"~�$��N��vim80/print/cp1257.psnu�[���PK�j�ZL8�6��+��vim80/print/latin1.psnu�[���PK�j�Zg��r		��vim80/print/iso-8859-5.psnu�[���PK�j�Z�;~ō�T½vim80/print/iso-8859-14.psnu�[���PK�j�ZoP��ll+˽vim80/print/iso-8859-2.psnu�[���PK�j�Z>���TT�ӽvim80/print/iso-8859-4.psnu�[���PK�j�Z�Y,���}ܽvim80/print/ascii.psnu�[���PK�j�Z�J���߽vim80/print/ks_roman.psnu�[���PK�j�Z�Ґ�YY��vim80/print/cp1255.psnu�[���PK�j�ZU�}
N	N	s�vim80/print/cp1251.psnu�[���PK�j�Z�U������vim80/print/dec-mcs.psnu�[���PK�j�Z�|F'����vim80/print/mac-roman.psnu�[���PK�j�Z��]]��vim80/print/iso-8859-7.psnu�[���PK�j�ZJ�����u�vim80/print/cp1254.psnu�[���PK�j�Z�I�,��{�vim80/print/iso-8859-15.psnu�[���PK�j�Z��i		E!�vim80/print/koi8-u.psnu�[���PK�j�Z�e�܊��*�vim80/print/iso-8859-13.psnu�[���PK�j�Z�}�_MMt3�vim80/print/ebcdic-uk.psnu�[���PK�j�Z2��	<�vim80/print/gb_roman.psnu�[���PK�j�Zx�r�{{Q?�vim80/print/hp-roman8.psnu�[���PK�j�Zгc���H�vim80/print/iso-8859-9.psnu�[���PK�j�Z�~q		Q�vim80/print/koi8-r.psnu�[���PK�j�Z	���==ZZ�vim80/print/cidfont.psnu�[���PK�j�Z�!-����^�vim80/print/cp1250.psnu�[���PK�j�Zuݱ9RR�g�vim80/print/iso-8859-11.psnu�[���PK�j�Z�	�yyep�vim80/print/cp1253.psnu�[���PK�j�Z�`-FG
G
#y�vim80/mswin.vimnu�[���PK�j�Z+�[�%�%����vim80/menu.vimnu�[���PK�j�Z붵��!�vim80/bugreport.vimnu�[���PK�j�Z�'$���(�vim80/ftplugin.vimnu�[���PK�j�Z�o��o�o��,�vim80/synmenu.vimnu�[���PK�j�Z���H�H����vim80/optwin.vimnu�[���PK�j�Z[  �7��vim80/defaults.vimnu�[���PK�j�Z-#4))���vim80/indent/vb.vimnu�[���PK�j�Z�^ԮFF���vim80/indent/pyrex.vimnu�[���PK�j�Z3�-������vim80/indent/eiffel.vimnu�[���PK�j�Z�.�ŝ���vim80/indent/cdl.vimnu�[���PK�j�Z��p�����vim80/indent/readline.vimnu�[���PK�j�Z󐹑����vim80/indent/dtrace.vimnu�[���PK�j�Z(ξ�Q6Q6��vim80/indent/r.vimnu�[���PK�j�Z��TTS�vim80/indent/idlang.vimnu�[���PK�j�Z���aa�!�vim80/indent/lisp.vimnu�[���PK�j�Z�3����#�vim80/indent/nsis.vimnu�[���PK�j�ZW�L����0�vim80/indent/ch.vimnu�[���PK�j�Z�yԱ���2�vim80/indent/haml.vimnu�[���PK�j�Zn'�j�W�W�;�vim80/indent/php.vimnu�[���PK�j�ZcV&�IIv��vim80/indent/cpp.vimnu�[���PK�j�Z��x���vim80/indent/j.vimnu�[���PK�j�Z~����Z��vim80/indent/automake.vimnu�[���PK�j�Z�F�

���vim80/indent/tf.vimnu�[���PK�j�Z6L�V+�+��vim80/indent/erlang.vimnu�[���PK�j�ZmS�!!XY�vim80/indent/xml.vimnu�[���PK�j�Z(���
�
�d�vim80/indent/eruby.vimnu�[���PK�j�ZW��,rr�o�vim80/indent/chaiscript.vimnu�[���PK�j�Z���].].�t�vim80/indent/dtd.vimnu�[���PK�j�Z���5ZZS��vim80/indent/bib.vimnu�[���PK�j�Z�<�����vim80/indent/vim.vimnu�[���PK�j�Z��A����vim80/indent/sass.vimnu�[���PK�j�Zw�]��
�
ݴ�vim80/indent/perl6.vimnu�[���PK�j�Z�R�����vim80/indent/bst.vimnu�[���PK�j�ZN47V���vim80/indent/fortran.vimnu�[���PK�j�Z|�g\00)��vim80/indent/framescript.vimnu�[���PK�j�ZC>����vim80/indent/pascal.vimnu�[���PK�j�Z
A����vim80/indent/context.vimnu�[���PK�j�Z�b 		<�vim80/indent/aap.vimnu�[���PK�j�Z~=

��vim80/indent/xhtml.vimnu�[���PK�j�Z;�y�#�#��vim80/indent/ocaml.vimnu�[���PK�j�Z�-+���+�vim80/indent/matlab.vimnu�[���PK�j�Z��Q���3�vim80/indent/java.vimnu�[���PK�j�Z\��PP�D�vim80/indent/docbk.vimnu�[���PK�j�Z�=�``pF�vim80/indent/zimbu.vimnu�[���PK�j�Z|1���V�vim80/indent/xinetd.vimnu�[���PK�j�Z.�udd,[�vim80/indent/hog.vimnu�[���PK�j�Z��1����b�vim80/indent/html.vimnu�[���PK�j�Z,�<gg���vim80/indent/README.txtnu�[���PK�j�Z�CX
���vim80/indent/ld.vimnu�[���PK�j�Z�7;>>���vim80/indent/rnoweb.vimnu�[���PK�j�Z�|���o��vim80/indent/lua.vimnu�[���PK�j�Z��e�	�	:��vim80/indent/bzl.vimnu�[���PK�j�Z�Ѽ2	�vim80/indent/rhelp.vimnu�[���PK�j�ZR�Ko9,9,��vim80/indent/mp.vimnu�[���PK�j�Z�0�P��A�vim80/indent/verilog.vimnu�[���PK�j�Z�-�J9J99a�vim80/indent/vhdl.vimnu�[���PK�j�ZP��
��Ț�vim80/indent/xf86conf.vimnu�[���PK�j�Z
�)�mm֝�vim80/indent/objc.vimnu�[���PK�j�ZvD�J]]���vim80/indent/tcl.vimnu�[���PK�j�Z�c���)��vim80/indent/less.vimnu�[���PK�j�Z	ٹ�QQa��vim80/indent/dictconf.vimnu�[���PK�j�Z�m$�����vim80/indent/config.vimnu�[���PK�j�Z�Bɓ��ȶ�vim80/indent/systemd.vimnu�[���PK�j�Z�n�qݷ�vim80/indent/occam.vimnu�[���PK�j�Z�M�f��@��vim80/indent/jsp.vimnu�[���PK�j�Z��ppR��vim80/indent/python.vimnu�[���PK�j�ZO���(�(	��vim80/indent/clojure.vimnu�[���PK�j�ZL�*__�vim80/indent/awk.vimnu�[���PK�j�Z�uUU�*�vim80/indent/ishd.vimnu�[���PK�j�Z)<kkV2�vim80/indent/liquid.vimnu�[���PK�j�Z轮C{
{
:�vim80/indent/cmake.vimnu�[���PK�j�Z�3�RR�D�vim80/indent/dictdconf.vimnu�[���PK�j�Z-�+�``eF�vim80/indent/yaml.vimnu�[���PK�j�Z�#r


\�vim80/indent/yacc.vimnu�[���PK�j�Z�id
��\_�vim80/indent/prolog.vimnu�[���PK�j�Z���ue�vim80/indent/xsd.vimnu�[���PK�j�Zl�=II�f�vim80/indent/gitconfig.vimnu�[���PK�j�Z/u��
�
Ij�vim80/indent/sdl.vimnu�[���PK�j�Z���܉�wu�vim80/indent/go.vimnu�[���PK�j�Z�=C|�vim80/indent/changelog.vimnu�[���PK�j�ZY�X���}�vim80/indent/mma.vimnu�[���PK�j�ZI��.EE���vim80/indent/c.vimnu�[���PK�j�Z���h�
�
��vim80/indent/dylan.vimnu�[���PK�j�Z&~������vim80/indent/rrst.vimnu�[���PK�j�Z=B��vim80/indent/sas.vimnu�[���PK�j�Z�9�{{0��vim80/indent/vroom.vimnu�[���PK�j�Z���11��vim80/indent/cuda.vimnu�[���PK�j�Z��o!�6�6g��vim80/indent/falcon.vimnu�[���PK�j�Zt���4�4���vim80/indent/tex.vimnu�[���PK�j�Z��XGG��vim80/indent/cs.vimnu�[���PK�j�Z�/���vim80/indent/tcsh.vimnu�[���PK�j�Z����W"�vim80/indent/gitolite.vimnu�[���PK�j�ZX<�3q q �'�vim80/indent/cobol.vimnu�[���PK�j�ZFi�bbTH�vim80/indent/rust.vimnu�[���PK�j�Z閴
�a�vim80/indent/perl.vimnu�[���PK�j�Z�˺Y�YNy�vim80/indent/ruby.vimnu�[���PK�j�Z+�u�EEM��vim80/indent/json.vimnu�[���PK�j�ZK_���+�+���vim80/indent/ada.vimnu�[���PK�j�Z��X�n3n3��vim80/indent/sqlanywhere.vimnu�[���PK�j�Z��'����D�vim80/indent/rmd.vimnu�[���PK�j�ZX�TT�I�vim80/indent/sh.vimnu�[���PK�j�Z3G�F44@`�vim80/indent/mail.vimnu�[���PK�j�Z9�f))�a�vim80/indent/xslt.vimnu�[���PK�j�Z��s��'c�vim80/indent/css.vimnu�[���PK�j�ZV����ij�vim80/indent/tilde.vimnu�[���PK�j�Z"S�UU�n�vim80/indent/teraterm.vimnu�[���PK�j�Z2R��At�vim80/indent/htmldjango.vimnu�[���PK�j�Z1t�D<<�u�vim80/indent/javascript.vimnu�[���PK�j�ZxM�?tt��vim80/indent/scheme.vimnu�[���PK�j�Zi<vD""���vim80/indent/ant.vimnu�[���PK�j�Z��}�K�K��vim80/indent/scala.vimnu�[���PK�j�ZE����7�vim80/indent/mf.vimnu�[���PK�j�Z�]9v
v
�vim80/indent/cucumber.vimnu�[���PK�j�Z��!�!��vim80/indent/systemverilog.vimnu�[���PK�j�Z��P�f
f
�.�vim80/indent/pov.vimnu�[���PK�j�Z�u�NNN9�vim80/indent/sml.vimnu�[���PK�j�Zcp�x�
�
�R�vim80/indent/make.vimnu�[���PK�j�Z�/��FF�`�vim80/indent/rpl.vimnu�[���PK�j�Zi���}}Oh�vim80/indent/lifelines.vimnu�[���PK�j�Z�Ɯ�k�vim80/indent/eterm.vimnu�[���PK�j�Zb�����m�vim80/indent/logtalk.vimnu�[���PK�j�Z"����u�vim80/indent/sql.vimnu�[���PK�j�Z2t�#��z�vim80/indent/treetop.vimnu�[���PK�j�Z�T,�ww}�vim80/indent/rst.vimnu�[���PK�j�Z�ng��΂�vim80/indent/scss.vimnu�[���PK�j�Z9m���҃�vim80/indent/zsh.vimnu�[���PK�j�Z�.������vim80/indent/d.vimnu�[���PK�j�Z��3����vim80/indent/hamster.vimnu�[���PK�j�ZL=�qqʍ�vim80/indent/postscr.vimnu�[���PK�j�Z�lD�LL���vim80/macros/less.shnuȯ��PK�j�Z��v�����vim80/macros/hanoi/posternu�[���PK�j�Z�Y�IIG��vim80/macros/hanoi/hanoi.vimnu�[���PK�j�Z�"�W��ܠ�vim80/macros/hanoi/click.menu�[���PK�j�Z[.z``&��vim80/macros/README.txtnu�[���PK�j�Zs�w���ͦ�vim80/macros/less.vimnu�[���PK�j�Z�pN�~~Ѽ�vim80/macros/life/life.vimnu�[���PK�j�Zb�=a�����vim80/macros/life/click.menu�[���PK�j�Z�4�  ���vim80/macros/less.batnu�[���PK�j�Z�|��ss.��vim80/macros/shellmenu.vimnu�[���PK�j�Z�z�u/u/���vim80/macros/maze/maze_macnu�[���PK�j�Z&���FF�
�vim80/macros/maze/README.txtnu�[���PK�j�Zү��<�vim80/macros/maze/posternu�[���PK�j�Z�ϯrr��vim80/macros/maze/maze_5.78nu�[���PK�j�Z�U[oo[�vim80/macros/maze/Makefilenu�[���PK�j�Z̼i�dd�vim80/macros/maze/main.aapnu�[���PK�j�Z+	Y||��vim80/macros/editexisting.vimnu�[���PK�j�Z�겼||� �vim80/macros/matchit.vimnu�[���PK�j�ZE�V�,,O!�vim80/macros/urm/README.txtnu�[���PK�j�Z�;�Lvv�'�vim80/macros/urm/urmnu�[���PK�j�Z�~�``�*�vim80/macros/urm/urm.vimnu�[���PK�j�ZnW�DD(+�vim80/macros/urm/examplesnu�[���PK�j�Z����mm�/�vim80/macros/justify.vimnu�[���PK�j�ZVI�rrj0�vim80/macros/swapmous.vimnu�[���PK�j�Z�S��&_&_%1�vim80/tutor/tutor.zh.big5nu�[���PK�j�Zf�NjNj���vim80/tutor/tutor.ko.eucnu�[���PK�j�Z��A�A�*��vim80/tutor/tutor.eonu�[���PK�j�Zy
?D�D����vim80/tutor/tutor.nbnu�[���PK�j�Z�+3ŊŊ7�vim80/tutor/tutor.sknu�[���PK�j�Z#���p�p@��vim80/tutor/tutor.canu�[���PK�j�Z��M=<�<�y�vim80/tutor/tutor.uk.utf-8nu�[���PK�j�Z=�g�g����vim80/tutor/tutor.lvnu�[���PK�j�Z:��u�u��r�vim80/tutor/tutor.hr.cp1250nu�[���PK�j�Z�5��a�a�j��vim80/tutor/tutor.nonu�[���PK�j�Z�I�O
v
v��vim80/tutor/tutor.el.cp737nu�[���PK�j�ZJ��|�|�f��vim80/tutor/tutor.hr.utf-8nu�[���PK�j�Z�G$�V�V�,�vim80/tutor/tutor.de.utf-8nu�[���PK�j�Z�3[����vim80/tutor/tutor.ja.sjisnu�[���PK�j�Z�5��a�a�+��vim80/tutor/tutor.no.utf-8nu�[���PK�j�Z�'�đđ�%�vim80/tutor/tutor.nlnu�[���PK�j�ZM��[��޷�vim80/tutor/tutor.ja.eucnu�[���PK�j�Z|)>�z�z<:�vim80/tutor/tutor.zh.utf-8nu�[���PK�j�Z[�.*����6��vim80/tutor/tutor.barnu�[���PK�j�Z���3����;U�vim80/tutor/tutor.ru.cp1251nu�[���PK�j�ZLD��߁߁=��vim80/tutor/tutor.utf-8nu�[���PK�j�Z���9��cd�vim80/tutor/tutor.runu�[���PK�j�Z@pF�}�}��D�vim80/tutor/tutor.pt.utf-8nu�[���PK�j�Z�^~]m]m~��vim80/tutor/tutor.cs.utf-8nu�[���PK�j�ZN�^^%C�vim80/tutor/README.txtnu�[���PK�j�Z�mO�k�k�F�vim80/tutor/tutor.ca.utf-8nu�[���PK�j�Z��8:j:jڲ�vim80/tutor/tutor.hu.cp1250nu�[���PK�j�Z��8:j:j_�vim80/tutor/tutor.hunu�[���PK�j�Z��Snn݇�vim80/tutor/tutor.tr.iso9nu�[���PK�j�Z�G$�V�V�?��vim80/tutor/tutor.denu�[���PK�j�Z�ݻ�ۃۃُ�vim80/tutor/tutor.ko.utf-8nu�[���PK�j�Z&�0������vim80/tutor/tutor.ptnu�[���PK�j�Z>���{�{���vim80/tutor/tutor.pl.utf-8nu�[���PK�j�Z����ёё�,�vim80/tutor/tutor.nl.utf-8nu�[���PK�j�Z�샛��Ͼ�vim80/tutor/tutor.eo.utf-8nu�[���PK�j�Z��-*vv2J�vim80/tutor/tutor.tr.utf-8nu�[���PK�j�Z|)>�z�z���vim80/tutor/tutor.zh_tw.utf-8nu�[���PK�j�Z�3��;�vim80/tutor/tutor.vimnu�[���PK�j�Z�PEqqNP�vim80/tutor/tutor.hu.utf-8nu�[���PK�j�Z:x�,�m�m���vim80/tutor/tutor.esnu�[���PK�j�ZnPyBLdLd~/�vim80/tutor/tutor.cs.cp1250nu�[���PK�j�Z�W[u[u��vim80/tutor/tutor.zh.eucnu�[���PK�j�Z�
�L�����	�vim80/tutor/tutor.frnu�[���PK�j�Z{� pp���vim80/tutor/tutor.sv.utf-8nu�[���PK�j�ZkH���vim80/tutor/tutor.sk.cp1250nu�[���PK�j�Z������l��vim80/tutor/tutor.ja.utf-8nu�[���PK�j�Zb�:-m�m��B�vim80/tutor/tutor.it.utf-8nu�[���PK�j�ZKH��$�$�k��vim80/tutor/tutor.sr.cp1250nu�[���PK�j�Z���u�u��R�vim80/tutor/tutor.hrnu�[���PK�j�ZLD��߁߁���vim80/tutor/tutornu�[���PK�j�Z�I9���Y�vim80/tutor/tutor.ru.utf-8nu�[���PK�j�Z�d
hLdLd:�vim80/tutor/tutor.csnu�[���PK�j�Z&��,77���vim80/tutor/README.el.cp737.txtnu�[���PK�j�ZăTrS~S~)��vim80/tutor/tutor.vi.utf-8nu�[���PK�j�Z����
v
v�!�vim80/tutor/tutor.elnu�[���PK�j�Z�5��a�a���vim80/tutor/tutor.nb.utf-8nu�[���PK�j�Z��j<�����"�vim80/tutor/tutor.fr.utf-8nu�[���PK�j�Z�+3ŊŊ���vim80/tutor/tutor.sk.utf-8nu�[���PK�j�Z�b�Eu�u��G�vim80/tutor/tutor.bar.utf-8nu�[���PK�j�Z���5�5�{��vim80/tutor/tutor.el.utf-8nu�[���PK�j�Zwm�������vim80/tutor/tutor.bg.utf-8nu�[���PK�j�Z��-�77��vim80/tutor/README.el.txtnu�[���PK�j�Z>���{�{����vim80/tutor/tutor.plnu�[���PK�j�Z{� ppQ �vim80/tutor/tutor.svnu�[���PK�j�Zb�:-m�m����vim80/tutor/tutor.itnu�[���PK�j�Z
y@ț���b�vim80/tutor/tutor.zh_cn.utf-8nu�[���PK�j�Zz��e�e�J��vim80/tutor/tutor.pl.cp1250nu�[���PK�j�Z��=��m�m�<�vim80/tutor/tutor.es.utf-8nu�[���PK�j�Z	Y%���̪�vim80/tutor/tutor.sr.utf-8nu�[���PK�j�ZU'8N�N�+.�vim80/filetype.vimnu�[���PK�j�ZU����	�vim80/indent.vimnu�[���PK�j�Z�kP�����vim80/plugin/spellfile.vimnu�[���PK�j�Z/RGg��7�vim80/plugin/README.txtnu�[���PK�j�Z����	�	&�vim80/plugin/gzip.vimnu�[���PK�j�Z֘�RR.�vim80/plugin/vimballPlugin.vimnu�[���PK�j�Zn���qq �(�vim80/plugin/getscriptPlugin.vimnu�[���PK�j�Z��4(���.�vim80/plugin/manpager.vimnu�[���PK�j�Za%z��(�(|1�vim80/plugin/netrwPlugin.vimnu�[���PK�j�Z���x�&�&�Z�vim80/plugin/tohtml.vimnu�[���PK�j�Z�&�������vim80/plugin/tarPlugin.vimnu�[���PK�j�Z��dZZĊ�vim80/plugin/matchparen.vimnu�[���PK�j�Z�`�L�	�	i��vim80/plugin/zipPlugin.vimnu�[���PK�j�Z9$�R�����vim80/plugin/rrhelper.vimnu�[���PK�j�ZT&�((P��vim80/plugin/logiPat.vimnu�[���PK�j�Z@�3y�N�N���vim80/doc/usr_29.txtnu�[���PK�j�Z7��LPLP�,�vim80/doc/tips.txtnu�[���PK�j�Z��@*.�.�}�vim80/doc/eval.txtnu�[���PK�j�Z1�T�Z�Z�E�vim80/doc/usr_40.txtnu�[���PK�j�Zj�	��K
�K
_��vim80/doc/version7.txtnu�[���PK�j�ZhW��GGGGs�vim80/doc/ft_ada.txtnu�[���PK�j�ZT�d:���3vim80/doc/indent.txtnu�[���PK�j�Z�
�@�@E�vim80/doc/undo.txtnu�[���PK�j�Z�V��Q�Q"vim80/doc/usr_24.txtnu�[���PK�j�Z1`�Y&�&��`vim80/doc/windows.txtnu�[���PK�j�Z�}�V0vim80/doc/debug.txtnu�[���PK�j�Z5
7����Lvim80/doc/usr_01.txtnu�[���PK�j�ZN�]̆����hvim80/doc/netbeans.txtnu�[���PK�j�ZW�%�\�\i�vim80/doc/fold.txtnu�[���PK�j�ZV<F/��9Vvim80/doc/usr_32.txtnu�[���PK�j�Zʻ���zkvim80/doc/hangulin.txtnu�[���PK�j�Z�F�p]]�xvim80/doc/usr_05.txtnu�[���PK�j�Z��=t�G�G��vim80/doc/usr_21.txtnu�[���PK�j�Z�.9�s%s%�vim80/doc/usr_06.txtnu�[���PK�j�Z!}$}$�Cvim80/doc/change.txtnu�[���PK�j�Z݇�6%6%phvim80/doc/ft_rust.txtnu�[���PK�j�Z D����vim80/doc/pi_paren.txtnu�[���PK�j�Z��6ZZ�vim80/doc/pi_logipat.txtnu�[���PK�j�Z!`�rr��vim80/doc/usr_44.txtnu�[���PK�j�ZF�at��vim80/doc/tagsnu�[���PK�j�Z�m�O�.�.Dvim80/doc/os_dos.txtnu�[���PK�j�Z����K�K}Mvim80/doc/usr_08.txtnu�[���PK�j�Z��}#
#
o�vim80/doc/os_unix.txtnu�[���PK�j�Z��@��Y�Yףvim80/doc/if_tcl.txtnu�[���PK�j�ZD]�]�D�D
�vim80/doc/insert.txtnu�[���PK�j�Zb����y�y%C
vim80/doc/message.txtnu�[���PK�j�Z������h�
vim80/doc/mbyte.txtnu�[���PK�j�ZɻVP�5�5U�vim80/doc/usr_42.txtnu�[���PK�j�Z���I�I�vim80/doc/gui_w32.txtnu�[���PK�j�Z\wF$5\5\�%vim80/doc/usr_03.txtnu�[���PK�j�Z���> > !�vim80/doc/usr_26.txtnu�[���PK�j�Z�:-��6�6��vim80/doc/uganda.txtnu�[���PK�j�Z��aB

��vim80/doc/if_sniff.txtnu�[���PK�j�Z�k��\�\��vim80/doc/usr_41.txtnu�[���PK�j�Z®�,1,18vim80/doc/usr_23.txtnu�[���PK�j�Zw:�M.M.�ivim80/doc/pi_vimball.txtnu�[���PK�j�ZK�i���vim80/doc/tagsrch.txtnu�[���PK�j�Z�[388~'vim80/doc/helphelp.txtnu�[���PK�j�Z�ЯL�L��_vim80/doc/todo.txtnu�[���PK�j�Z[(����T�vim80/doc/usr_43.txtnu�[���PK�j�Z�(i�>�>�vim80/doc/usr_28.txtnu�[���PK�j�Z�C'�����WAvim80/doc/pattern.txtnu�[���PK�j�Z���__U)vim80/doc/howto.txtnu�[���PK�j�Z�y��8�8��4vim80/doc/if_pyth.txtnu�[���PK�j�ZO�5��p�pt�vim80/doc/various.txtnu�[���PK�j�Z�Gsӳ���m:vim80/doc/cmdline.txtnu�[���PK�j�Z�rl�p
�p
e�vim80/doc/version8.txtnu�[���PK�j�Z#�J�(�(�d$vim80/doc/usr_31.txtnu�[���PK�j�Z�􁕚��e�$vim80/doc/repeat.txtnu�[���PK�j�Z5��k��>(%vim80/doc/terminal.txtnu�[���PK�j�Z�Mn�))��%vim80/doc/pi_gzip.txtnu�[���PK�j�Z/\�&&�%vim80/doc/os_os2.txtnu�[���PK�j�Z�ÿ�+�+{�%vim80/doc/if_perl.txtnu�[���PK�j�Z�M�d}d}M�%vim80/doc/os_vms.txtnu�[���PK�j�Z��T�J�J�[&vim80/doc/usr_25.txtnu�[���PK�j�Zse��&vim80/doc/russian.txtnu�[���PK�j�Z����y�y:�&vim80/doc/print.txtnu�[���PK�j�Z�x��w�w3-'vim80/doc/ft_sql.txtnu�[���PK�j�Z�-mzz]�'vim80/doc/os_mint.txtnu�[���PK�j�Z��J�J�'vim80/doc/usr_04.txtnu�[���PK�j�Z_��%�%�'vim80/doc/farsi.txtnu�[���PK�j�Z8٧�RR(vim80/doc/hebrew.txtnu�[���PK�j�Z����$4$4�2(vim80/doc/os_win32.txtnu�[���PK�j�Z����q�qg(vim80/doc/usr_10.txtnu�[���PK�j�Z�t��XXT�(vim80/doc/quickref.txtnu�[���PK�j�Z��T��)vim80/doc/sponsor.txtnu�[���PK�j�Z�op���U*vim80/doc/gui.txtnu�[���PK�j�Z���6�6��*vim80/doc/scroll.txtnu�[���PK�j�Z��c�{{�*vim80/doc/pi_zip.txtnu�[���PK�j�ZN4�1�1�+vim80/doc/quotes.txtnu�[���PK�j�Zo�?���C+vim80/doc/os_mac.txtnu�[���PK�j�Z�・�D�D�^+vim80/doc/usr_90.txtnu�[���PK�j�Z���5�5��+vim80/doc/usr_20.txtnu�[���PK�j�Z;��ٖ���+vim80/doc/starting.txtnu�[���PK�j�ZH�!�z�z���,vim80/doc/autocmd.txtnu�[���PK�j�Z5�_�ppa�-vim80/doc/debugger.txtnu�[���PK�j�Z�"lNN.vim80/doc/if_ruby.txtnu�[���PK�j�Zz���.�.�/.vim80/doc/arabic.txtnu�[���PK�j�Z=ŗ^(s(s�^.vim80/doc/gui_x11.txtnu�[���PK�j�Z��Ȃ!�!��.vim80/doc/help.txtnu�[���PK�j�Z8�b62929��.vim80/doc/if_lua.txtnu�[���PK�j�Z��X��
�
5-/vim80/doc/quickfix.txtnu�[���PK�j�Z������;0vim80/doc/motion.txtnu�[���PK�j�Z���SUSU�1vim80/doc/visual.txtnu�[���PK�j�Z��h�h��Z1vim80/doc/term.txtnu�[���PK�j�Z��|�MeMe/2vim80/doc/filetype.txtnu�[���PK�j�Z�T�>���q2vim80/doc/version6.txtnu�[���PK�j�Z�=�=�$@;vim80/doc/spell.txtnu�[���PK�j�Z�0S����5<vim80/doc/if_ole.txtnu�[���PK�j�Z���R6R6�R<vim80/doc/version4.txtnu�[���PK�j�Z+
��cxcxm�<vim80/doc/channel.txtnu�[���PK�j�Zi��j��=vim80/doc/sign.txtnu�[���PK�j�Z���4�7�7B=vim80/doc/usr_22.txtnu�[���PK�j�Z�n�':�:�_U=vim80/doc/intro.txtnu�[���PK�j�Z=�t��@�@��=vim80/doc/diff.txtnu�[���PK�j�Z�8H����/>vim80/doc/os_390.txtnu�[���PK�j�ZX�p4p4�B>vim80/doc/usr_12.txtnu�[���PK�j�Z�?CQQ4w>vim80/doc/syntax.txtnu�[���PK�j�Z��I5�X�X��Avim80/doc/usr_30.txtnu�[���PK�j�Z��pUU�!Bvim80/doc/os_amiga.txtnu�[���PK�j�Zg�=�p>p>V7Bvim80/doc/usr_07.txtnu�[���PK�j�Z.'����
vBvim80/doc/map.txtnu�[���PK�j�Z�?�rCvim80/doc/workshop.txtnu�[���PK�j�Z�w���D�Cvim80/doc/os_qnx.txtnu�[���PK�j�Z�L"dppo�Cvim80/doc/rileft.txtnu�[���PK�j�Ze��$�E�E#�Cvim80/doc/usr_45.txtnu�[���PK�j�Z�K�w?�?�_�Cvim80/doc/version5.txtnu�[���PK�j�Zks���Hvim80/doc/os_msdos.txtnu�[���PK�j�Z���ZHWHW0�Hvim80/doc/develop.txtnu�[���PK�j�Z�wC�� � ��Hvim80/doc/remote.txtnu�[���PK�j�Z�<j���Ivim80/doc/mlang.txtnu�[���PK�j�Z�~S�*�*�>Ivim80/doc/os_beos.txtnu�[���PK�j�Z�xt�����iIvim80/doc/pi_netrw.txtnu�[���PK�j�ZT�'WLvim80/doc/pi_spec.txtnu�[���PK�j�Z��[��K�Ka(Lvim80/doc/if_cscop.txtnu�[���PK�j�Z���VRVRHtLvim80/doc/pi_getscript.txtnu�[���PK�j�Z����PAPA��Lvim80/doc/tabpage.txtnu�[���PK�j�Z�;�ݺ,�,}Mvim80/doc/usr_09.txtnu�[���PK�j�Z�Έ>{5Mvim80/doc/pi_tar.txtnu�[���PK�j�ZkV9���OMvim80/doc/editing.txtnu�[���PK�j�Z�&�u$$�mNvim80/doc/usr_toc.txtnu�[���PK�j�ZӐu����$�Nvim80/doc/digraph.txtnu�[���PK�j�Z�=��*�*�Ovim80/doc/index.txtnu�[���PK�j�Z)��;E;E�Pvim80/doc/usr_27.txtnu�[���PK�j�Z6?:��q�Pvim80/doc/options.txtnu�[���PK�j�Z�xr__��Vvim80/doc/usr_02.txtnu�[���PK�j�Z\.^C1C1=Wvim80/doc/usr_11.txtnu�[���PK�j�Z,���CC�nWvim80/doc/os_risc.txtnu�[���PK�j�Z�0��)�).pWvim80/doc/recover.txtnu�[���PK�j�Z��:�/./.9�Wvim80/doc/if_mzsch.txtnu�[���PK�j�ZY�B<�<���Wvim80/doc/vi_diff.txtnu�[���PK�j�Z��sl��/pXvim80/vimrc_example.vimnu�[���PK�j�Z�~%�+�+IvXvim80/scripts.vimnu�[���PK�j�Z��0�Xvim80/indoff.vimnu�[���PK�j�ZL飐22��Xvim80/syntax/slrnrc.vimnu�[���PK�j�Z���G??��Xvim80/syntax/cdrdaoconf.vimnu�[���PK�j�Z˕g���f�Xvim80/syntax/cvsrc.vimnu�[���PK�j�Z�L�����Xvim80/syntax/wsh.vimnu�[���PK�j�Z�$s  ��Xvim80/syntax/dsl.vimnu�[���PK�j�Z�kwЃ��Xvim80/syntax/tags.vimnu�[���PK�j�Z��CKOKO�Xvim80/syntax/vb.vimnu�[���PK�j�Z�ͅGGjHYvim80/syntax/cfg.vimnu�[���PK�j�Zkz�����MYvim80/syntax/catalog.vimnu�[���PK�j�Z�/��QYvim80/syntax/pyrex.vimnu�[���PK�j�Z�`y&�XYvim80/syntax/eiffel.vimnu�[���PK�j�Z�Ժ��#�#�sYvim80/syntax/screen.vimnu�[���PK�j�ZE��c00ǗYvim80/syntax/udevrules.vimnu�[���PK�j�Z*?���A�Yvim80/syntax/udevconf.vimnu�[���PK�j�Z��U�Yvim80/syntax/cdl.vimnu�[���PK�j�Z
�,��Yvim80/syntax/bdf.vimnu�[���PK�j�ZD-�����Yvim80/syntax/manconf.vimnu�[���PK�j�ZN�k�gBgB2�Yvim80/syntax/readline.vimnu�[���PK�j�ZNx�b���'Zvim80/syntax/papp.vimnu�[���PK�j�Z��X���6Zvim80/syntax/form.vimnu�[���PK�j�Z�b<��*PZvim80/syntax/srec.vimnu�[���PK�j�Z�IE�**V_Zvim80/syntax/dtrace.vimnu�[���PK�j�Z��VYY�xZvim80/syntax/xpm2.vimnu�[���PK�j�Z5M�@�7�7e�Zvim80/syntax/r.vimnu�[���PK�j�Z��||��Zvim80/syntax/cuplsim.vimnu�[���PK�j�Z�q�[W�Zvim80/syntax/gkrellmrc.vimnu�[���PK�j�Zm2�%�4�4��Zvim80/syntax/idlang.vimnu�[���PK�j�ZF�y9U.U.�[vim80/syntax/autohotkey.vimnu�[���PK�j�Z,aC��2?[vim80/syntax/lisp.vimnu�[���PK�j�Z�܋�Y�[vim80/syntax/uil.vimnu�[���PK�j�Zӌ�ҷ���[vim80/syntax/taskdata.vimnu�[���PK�j�Zْpr�r���[vim80/syntax/nsis.vimnu�[���PK�j�ZjLi4��Y`\vim80/syntax/cabal.vimnu�[���PK�j�Z��g}}uq\vim80/syntax/arch.vimnu�[���PK�j�Z�%nB��7v\vim80/syntax/cvs.vimnu�[���PK�j�ZЛ�6ЍЍz\vim80/syntax/kconfig.vimnu�[���PK�j�Z���T1T14]vim80/syntax/spec.vimnu�[���PK�j�Z��0�		�9]vim80/syntax/asteriskvm.vimnu�[���PK�j�Zj�N.t<t<4C]vim80/syntax/mupad.vimnu�[���PK�j�Z����]vim80/syntax/ch.vimnu�[���PK�j�ZX�1�$$˃]vim80/syntax/moo.vimnu�[���PK�j�ZW�ӷ��!�]vim80/syntax/euphoria3.vimnu�[���PK�j�Z�Y��{5{5B�]vim80/syntax/neomuttrc.vimnu�[���PK�j�Z�O����^vim80/syntax/dcl.vimnu�[���PK�j�Z��'�y:y:_vim80/syntax/apache.vimnu�[���PK�j�Z�z	F�	�	�I_vim80/syntax/chordpro.vimnu�[���PK�j�ZP��~���S_vim80/syntax/cynpp.vimnu�[���PK�j�Z�s�R��)Y_vim80/syntax/haml.vimnu�[���PK�j�Z�6j��	u_vim80/syntax/snobol4.vimnu�[���PK�j�Z��K-:-:'�_vim80/syntax/php.vimnu�[���PK�j�Z��p<<��`vim80/syntax/svn.vimnu�[���PK�j�Z�x���6�6�`vim80/syntax/openroad.vimnu�[���PK�j�Z��Jb..�avim80/syntax/usserverlog.vimnu�[���PK�j�ZOQTTvavim80/syntax/qf.vimnu�[���PK�j�Z�e��M�M
avim80/syntax/idl.vimnu�[���PK�j�ZQK�ك%�%`avim80/syntax/mrxvtrc.vimnu�[���PK�j�Z%E�eeمavim80/syntax/whitespace.vimnu�[���PK�j�ZL�%����avim80/syntax/model.vimnu�[���PK�j�ZԞ��AA��avim80/syntax/cl.vimnu�[���PK�j�Z�c�5WW�avim80/syntax/groovy.vimnu�[���PK�j�ZuDI55i�avim80/syntax/cpp.vimnu�[���PK�j�Z"���+H+H�avim80/syntax/sicad.vimnu�[���PK�j�Z�li�88SHbvim80/syntax/icemenu.vimnu�[���PK�j�Z�/�((�Kbvim80/syntax/tasm.vimnu�[���PK�j�ZKA�'��@bbvim80/syntax/fvwm2m4.vimnu�[���PK�j�ZDm�Oebvim80/syntax/desc.vimnu�[���PK�j�Z��� ���qbvim80/syntax/eviews.vimnu�[���PK�j�Z���lll�bvim80/syntax/ave.vimnu�[���PK�j�Z"��r;;�bvim80/syntax/sgmllnx.vimnu�[���PK�j�Z!��l����bvim80/syntax/gsp.vimnu�[���PK�j�ZI-�I 
 
Ҝbvim80/syntax/debchangelog.vimnu�[���PK�j�Z�R\���?�bvim80/syntax/plp.vimnu�[���PK�j�Z �wd��v�bvim80/syntax/snnspat.vimnu�[���PK�j�Z)M���$�$r�bvim80/syntax/j.vimnu�[���PK�j�ZĜ�S�bvim80/syntax/cmod.vimnu�[���PK�j�Z�{�����bvim80/syntax/automake.vimnu�[���PK�j�Z�գG���cvim80/syntax/tf.vimnu�[���PK�j�Z�y���cvim80/syntax/slang.vimnu�[���PK�j�Z�+u��K+cvim80/syntax/promela.vimnu�[���PK�j�Z�~5�//S2cvim80/syntax/lftp.vimnu�[���PK�j�Z�\N����Ocvim80/syntax/pamconf.vimnu�[���PK�j�Z{��%;
;
�ecvim80/syntax/inittab.vimnu�[���PK�j�ZQr�ɟ*�*<pcvim80/syntax/erlang.vimnu�[���PK�j�Z#���"�cvim80/syntax/scilab.vimnu�[���PK�j�Z4P��!�!�cvim80/syntax/xml.vimnu�[���PK�j�Zj���LL��cvim80/syntax/cweb.vimnu�[���PK�j�Z!|�

i�cvim80/syntax/ayacc.vimnu�[���PK�j�Z��FF��cvim80/syntax/abaqus.vimnu�[���PK�j�Z�f�RU�cvim80/syntax/squid.vimnu�[���PK�j�Z�.��=�=��cvim80/syntax/lsl.vimnu�[���PK�j�Z�Z��77�=dvim80/syntax/2html.vimnu�[���PK�j�ZNz�y�
�
'Levim80/syntax/obj.vimnu�[���PK�j�Z��J�MWevim80/syntax/tsscl.vimnu�[���PK�j�Z]r��\\�kevim80/syntax/eruby.vimnu�[���PK�j�Z�C���5wevim80/syntax/updatedb.vimnu�[���PK�j�Z�AZ�
�
B|evim80/syntax/remind.vimnu�[���PK�j�Z�X�<<"�evim80/syntax/gitrebase.vimnu�[���PK�j�Z[q�uGG��evim80/syntax/chaiscript.vimnu�[���PK�j�Zfa2��	�	:�evim80/syntax/cynlib.vimnu�[���PK�j�Z�>IFFu�evim80/syntax/dtd.vimnu�[���PK�j�Z!��Htt��evim80/syntax/bib.vimnu�[���PK�j�ZSȶ�
�
��evim80/syntax/ppwiz.vimnu�[���PK�j�Z����;�;��evim80/syntax/rexx.vimnu�[���PK�j�Zcz.�jjfvim80/syntax/taskedit.vimnu�[���PK�j�Z��hj�
�
�fvim80/syntax/ahdl.vimnu�[���PK�j�Z��|
|
�&fvim80/syntax/vim.vimnu�[���PK�j�Z��7����1gvim80/syntax/modula2.vimnu�[���PK�j�Z�ݐOOm>gvim80/syntax/upstart.vimnu�[���PK�j�Z<��xxKgvim80/syntax/jproperties.vimnu�[���PK�j�Zz~!����`gvim80/syntax/pf.vimnu�[���PK�j�Z��Jh4h4�ugvim80/syntax/ncf.vimnu�[���PK�j�Z�����e�gvim80/syntax/sl.vimnu�[���PK�j�Z��1.

��gvim80/syntax/tap.vimnu�[���PK�j�Z�`����gvim80/syntax/denyhosts.vimnu�[���PK�j�ZI�S]
]
��gvim80/syntax/messages.vimnu�[���PK�j�Z�������gvim80/syntax/asterisk.vimnu�[���PK�j�Z�6�x|	hvim80/syntax/bzr.vimnu�[���PK�j�ZD�/+

�hvim80/syntax/tt2js.vimnu�[���PK�j�Z{�H�
�
(hvim80/syntax/msidl.vimnu�[���PK�j�Z�/�)���hvim80/syntax/sass.vimnu�[���PK�j�Z�v�k���8hvim80/syntax/change.vimnu�[���PK�j�Z�'}����<hvim80/syntax/asmh8300.vimnu�[���PK�j�Z��A�Dhvim80/syntax/blank.vimnu�[���PK�j�Z��5�!�!-Hhvim80/syntax/perl6.vimnu�[���PK�j�Z��N���jivim80/syntax/nosyntax.vimnu�[���PK�j�Z���''>mivim80/syntax/named.vimnu�[���PK�j�Z����:
:
��ivim80/syntax/chicken.vimnu�[���PK�j�Zp�O�)�)
�ivim80/syntax/forth.vimnu�[���PK�j�Z3NՑ�
�
�ivim80/syntax/pdf.vimnu�[���PK�j�ZP-�		�ivim80/syntax/bst.vimnu�[���PK�j�ZӋ966d�ivim80/syntax/fortran.vimnu�[���PK�j�Z?p<�3�3�ajvim80/syntax/ldapconf.vimnu�[���PK�j�ZM֫���!�jvim80/syntax/uc.vimnu�[���PK�j�Z���O��N�jvim80/syntax/hex.vimnu�[���PK�j�Zi��c�c=�jvim80/syntax/texinfo.vimnu�[���PK�j�ZFâ���e$kvim80/syntax/haste.vimnu�[���PK�j�Z�����-8kvim80/syntax/specman.vimnu�[���PK�j�Z��Ƚ�-�-&Ukvim80/syntax/framescript.vimnu�[���PK�j�ZX��p�kvim80/syntax/acedb.vimnu�[���PK�j�Z>���:�:^�kvim80/syntax/pascal.vimnu�[���PK�j�Zg���E�kvim80/syntax/docbksgml.vimnu�[���PK�j�Zb�(�(P�kvim80/syntax/lilo.vimnu�[���PK�j�Z�P�C77P�kvim80/syntax/context.vimnu�[���PK�j�Z��I|���lvim80/syntax/viminfo.vimnu�[���PK�j�Z��9�AA�lvim80/syntax/aap.vimnu�[���PK�j�Z����6�6u/lvim80/syntax/nqc.vimnu�[���PK�j�Z
�bZbZ�flvim80/syntax/lpc.vimnu�[���PK�j�Z�8h�--S�lvim80/syntax/rcslog.vimnu�[���PK�j�Zۢ������lvim80/syntax/edif.vimnu�[���PK�j�Z
BL`
�lvim80/syntax/gdb.vimnu�[���PK�j�ZBP�M��\�lvim80/syntax/docbkxml.vimnu�[���PK�j�Z�/M>��d�lvim80/syntax/xhtml.vimnu�[���PK�j�Z�����
�
d�lvim80/syntax/st.vimnu�[���PK�j�Z�ۡ>>g�lvim80/syntax/fstab.vimnu�[���PK�j�Zi��EEE�%mvim80/syntax/gprof.vimnu�[���PK�j�Z�knʤV�VH.mvim80/syntax/sisu.vimnu�[���PK�j�Zt3/1�mvim80/syntax/litestep.vimnu�[���PK�j�Z�E�q����mvim80/syntax/xdefaults.vimnu�[���PK�j�Z��m׶mvim80/syntax/conf.vimnu�[���PK�j�Z�	(e+
+
;�mvim80/syntax/simula.vimnu�[���PK�j�Z�i{��@�@��mvim80/syntax/dtml.vimnu�[���PK�j�ZҚ݁�4�4�nvim80/syntax/ocaml.vimnu�[���PK�j�Z�NDD>nvim80/syntax/gitsendemail.vimnu�[���PK�j�Z|����
�
�@nvim80/syntax/latte.vimnu�[���PK�j�ZYk��i	i	�Nnvim80/syntax/udevperm.vimnu�[���PK�j�Z�3���BXnvim80/syntax/arduino.vimnu�[���PK�j�Z��H�

y`nvim80/syntax/trustees.vimnu�[���PK�j�Z�3~����fnvim80/syntax/sed.vimnu�[���PK�j�ZC[�mrIrI�znvim80/syntax/maxima.vimnu�[���PK�j�ZD����r�nvim80/syntax/vgrindefs.vimnu�[���PK�j�Z�GV�%%z�nvim80/syntax/matlab.vimnu�[���PK�j�Z�×z;F;F��nvim80/syntax/java.vimnu�[���PK�j�Z2�.y2y2f ovim80/syntax/cmusrc.vimnu�[���PK�j�Z}�~���&Sovim80/syntax/csp.vimnu�[���PK�j�Z�C�%��Zoovim80/syntax/mason.vimnu�[���PK�j�Zt�SfQ(Q(�~ovim80/syntax/docbk.vimnu�[���PK�j�Z�����!�ovim80/syntax/sindaout.vimnu�[���PK�j�Z���VV�ovim80/syntax/ipfilter.vimnu�[���PK�j�Z�4�..��ovim80/syntax/zimbu.vimnu�[���PK�j�Z�T�
�
&�ovim80/syntax/privoxy.vimnu�[���PK�j�Z%}5��i�ovim80/syntax/basic.vimnu�[���PK�j�Z�:��o�ovim80/syntax/sieve.vimnu�[���PK�j�Z���<pvim80/syntax/samba.vimnu�[���PK�j�Z*�:6��upvim80/syntax/dylanlid.vimnu�[���PK�j�Z�C���Vpvim80/syntax/rebol.vimnu�[���PK�j�Z�ϛ$$�;pvim80/syntax/groff.vimnu�[���PK�j�Z'+��=(=(=pvim80/syntax/plaintex.vimnu�[���PK�j�Z�t"�

�epvim80/syntax/alsaconf.vimnu�[���PK�j�ZOc�cc�kpvim80/syntax/wml.vimnu�[���PK�j�Z�`]�7�7��pvim80/syntax/xinetd.vimnu�[���PK�j�Z�t&�3�3L�pvim80/syntax/mush.vimnu�[���PK�j�Z��++�pvim80/syntax/sqlhana.vimnu�[���PK�j�Zg=��oqvim80/syntax/slrnsc.vimnu�[���PK�j�ZT.����%qvim80/syntax/lout.vimnu�[���PK�j�Z���ss�6qvim80/syntax/pod.vimnu�[���PK�j�Zs�X���Sqvim80/syntax/crm.vimnu�[���PK�j�Z�64���Xqvim80/syntax/robots.vimnu�[���PK�j�Z̝�=�)�)�^qvim80/syntax/hog.vimnu�[���PK�j�Z�O:���ֈqvim80/syntax/abel.vimnu�[���PK�j�Zk,�!�"�"�qvim80/syntax/haskell.vimnu�[���PK�j�Z��v2v2(�qvim80/syntax/plsql.vimnu�[���PK�j�Z���vqoqo��qvim80/syntax/maple.vimnu�[���PK�j�ZI7yQ??�brvim80/syntax/mplayerconf.vimnu�[���PK�j�Z1��XCXC&�rvim80/syntax/html.vimnu�[���PK�j�Z�-	����rvim80/syntax/datascript.vimnu�[���PK�j�Z#���H�H��rvim80/syntax/cf.vimnu�[���PK�j�Z�B�{{svim80/syntax/README.txtnu�[���PK�j�Z�?|)|)�!svim80/syntax/nanorc.vimnu�[���PK�j�Zh�S���Ksvim80/syntax/apachestyle.vimnu�[���PK�j�ZU[r�ee^Qsvim80/syntax/loginaccess.vimnu�[���PK�j�Z�%ddbsvim80/syntax/ppd.vimnu�[���PK�j�Z�(Ĵ��esvim80/syntax/svg.vimnu�[���PK�j�Z�^�VV�gsvim80/syntax/ld.vimnu�[���PK�j�Z�ʋ9	9	Hssvim80/syntax/lotos.vimnu�[���PK�j�ZS�>Bf6f6�|svim80/syntax/spup.vimnu�[���PK�j�Z�_M���r�svim80/syntax/procmail.vimnu�[���PK�j�Z`q��tt��svim80/syntax/rnoweb.vimnu�[���PK�j�Z�aK�

Y�svim80/syntax/asn.vimnu�[���PK�j�Z�H�-''��svim80/syntax/tidy.vimnu�[���PK�j�Z�NK)���svim80/syntax/valgrind.vimnu�[���PK�j�Z�K|���svim80/syntax/sensors.vimnu�[���PK�j�Zu�`L`LG�svim80/syntax/vera.vimnu�[���PK�j�Z�]�	�	�Dtvim80/syntax/snnsnet.vimnu�[���PK�j�ZW%��6�6�Ntvim80/syntax/lua.vimnu�[���PK�j�Z�T_vv�tvim80/syntax/bzl.vimnu�[���PK�j�Z�E�$��ȇtvim80/syntax/hitest.vimnu�[���PK�j�Z���[�tvim80/syntax/xquery.vimnu�[���PK�j�Z�\����K�tvim80/syntax/xmodmap.vimnu�[���PK�j�Z*&�$�d�dBguvim80/syntax/skill.vimnu�[���PK�j�Z5�H
||1�uvim80/syntax/progress.vimnu�[���PK�j�Z�����=�=~Hvvim80/syntax/splint.vimnu�[���PK�j�Z�\��%%o�vvim80/syntax/limits.vimnu�[���PK�j�Z��Jf/f/ۋvvim80/syntax/rhelp.vimnu�[���PK�j�Z�)�{����vvim80/syntax/mp.vimnu�[���PK�j�Zt�"���iwvim80/syntax/verilogams.vimnu�[���PK�j�Z4����ʁwvim80/syntax/fetchmail.vimnu�[���PK�j�Z�j��++�wvim80/syntax/aspperl.vimnu�[���PK�j�Z�D�j!j!s�wvim80/syntax/quake.vimnu�[���PK�j�Z�R���#�wvim80/syntax/rnc.vimnu�[���PK�j�Zy��qy y >�wvim80/syntax/htmlos.vimnu�[���PK�j�Z��O����wvim80/syntax/smil.vimnu�[���PK�j�Z(}�9,	,	3�wvim80/syntax/elf.vimnu�[���PK�j�ZU�u����wvim80/syntax/verilog.vimnu�[���PK�j�Z�f���F�F�xvim80/syntax/exim.vimnu�[���PK�j�Z�D��i�i�Xxvim80/syntax/stata.vimnu�[���PK�j�Z�`uII��xvim80/syntax/def.vimnu�[���PK�j�Z�((�xvim80/syntax/debsources.vimnu�[���PK�j�Z�@3

��xvim80/syntax/sqlinformix.vimnu�[���PK�j�Zt�;r�$�$��xvim80/syntax/vhdl.vimnu�[���PK�j�Z�'���yvim80/syntax/gretl.vimnu�[���PK�j�Z��Y���yvim80/syntax/tt2.vimnu�[���PK�j�Zm� )���9yvim80/syntax/lprolog.vimnu�[���PK�j�Z�D)�UU�Iyvim80/syntax/rcs.vimnu�[���PK�j�Z�i���PRyvim80/syntax/spice.vimnu�[���PK�j�ZNL)����Y[yvim80/syntax/xs.vimnu�[���PK�j�Z��u}vim80/syntax/antlr.vimnu�[���PK�j�Z��L�HH�&}vim80/syntax/lex.vimnu�[���PK�j�Z���H��HA}vim80/syntax/sysctl.vimnu�[���PK�j�Z`'U�
�
F}vim80/syntax/focexec.vimnu�[���PK�j�Z�w&�qqT}vim80/syntax/logindefs.vimnu�[���PK�j�Z�!��{
{
�q}vim80/syntax/avra.vimnu�[���PK�j�Z.�����|}vim80/syntax/doxygen.vimnu�[���PK�j�Z�d�3<3<�~vim80/syntax/pine.vimnu�[���PK�j�Z��ax��JP~vim80/syntax/master.vimnu�[���PK�j�Zb�uB���T~vim80/syntax/dot.vimnu�[���PK�j�Z�([҅9�9�`~vim80/syntax/xf86conf.vimnu�[���PK�j�Z�1���k�~vim80/syntax/objc.vimnu�[���PK�j�Z�]��u7u7�=vim80/syntax/upstreamrpt.vimnu�[���PK�j�Zq�����iuvim80/syntax/ist.vimnu�[���PK�j�Z[U���C�C}}vim80/syntax/tcl.vimnu�[���PK�j�Z/�s..G�vim80/syntax/slpconf.vimnu�[���PK�j�Z������vim80/syntax/less.vimnu�[���PK�j�Z��O	O	i�vim80/syntax/prescribe.vimnu�[���PK�j�ZY���..
�vim80/syntax/dictconf.vimnu�[���PK�j�ZD@8{{y�vim80/syntax/baan.vimnu�[���PK�j�Z�J�96�vim80/syntax/config.vimnu�[���PK�j�Z�������>�vim80/syntax/autoit.vimnu�[���PK�j�Z�%�(F
F
o��vim80/syntax/initng.vimnu�[���PK�j�Zb�;;��vim80/syntax/flexwiki.vimnu�[���PK�j�Z�����vim80/syntax/systemd.vimnu�[���PK�j�Z8�CV	V	��vim80/syntax/msql.vimnu�[���PK�j�ZX���
�
(�vim80/syntax/tpp.vimnu�[���PK�j�Z��?����5�vim80/syntax/texmf.vimnu�[���PK�j�Z_�_ZZ'?�vim80/syntax/web.vimnu�[���PK�j�Z*������C�vim80/syntax/occam.vimnu�[���PK�j�Z�İC�1�1�T�vim80/syntax/vrml.vimnu�[���PK�j�Z^�� ��vim80/syntax/xkb.vimnu�[���PK�j�Z��s��\��vim80/syntax/tads.vimnu�[���PK�j�Z���9��o��vim80/syntax/lite.vimnu�[���PK�j�Z.�xv
v
�‚vim80/syntax/jsp.vimnu�[���PK�j�ZK��jj[͂vim80/syntax/ora.vimnu�[���PK�j�Z��l���7�vim80/syntax/dts.vimnu�[���PK�j�Z���Boo�<�vim80/syntax/mailcap.vimnu�[���PK�j�Z2�6<<YA�vim80/syntax/git.vimnu�[���PK�j�Z�!�B�7�7�Q�vim80/syntax/python.vimnu�[���PK�j�Zj�Q1艃vim80/syntax/art.vimnu�[���PK�j�Z9\�Idd=��vim80/syntax/conaryrecipe.vimnu�[���PK�j�Z��`{vim80/syntax/services.vimnu�[���PK�j�Z���yyV��vim80/syntax/wget.vimnu�[���PK�j�Zc����ƃvim80/syntax/sendpr.vimnu�[���PK�j�Z�`���Ƀvim80/syntax/po.vimnu�[���PK�j�Z�IF�� �vim80/syntax/sd.vimnu�[���PK�j�Zz�A3cc�vim80/syntax/jargon.vimnu�[���PK�j�Z��V
uu��vim80/syntax/tar.vimnu�[���PK�j�Z�h��u�vim80/syntax/dcd.vimnu�[���PK�j�Z<[_ ��vim80/syntax/fdcc.vimnu�[���PK�j�Z�Y���
�
�vim80/syntax/sather.vimnu�[���PK�j�ZO
T[ͣͣ�vim80/syntax/clojure.vimnu�[���PK�j�Z6,�S'S'��vim80/syntax/dnsmasq.vimnu�[���PK�j�ZQq�|NN��vim80/syntax/sqlforms.vimnu�[���PK�j�Z�:*
*
I�vim80/syntax/atlas.vimnu�[���PK�j�Z�y��__��vim80/syntax/nroff.vimnu�[���PK�j�Zakn���^+�vim80/syntax/esterel.vimnu�[���PK�j�ZYB���7�vim80/syntax/autodoc.vimnu�[���PK�j�ZX���V�VmF�vim80/syntax/aptconf.vimnu�[���PK�j�Z��Y����vim80/syntax/wsml.vimnu�[���PK�j�Z�YD-VV沅vim80/syntax/hb.vimnu�[���PK�j�Z��ߕ����vim80/syntax/awk.vimnu�[���PK�j�Z�|>��X�Xbޅvim80/syntax/cdrtoc.vimnu�[���PK�j�Z{t#;;�7�vim80/syntax/csh.vimnu�[���PK�j�Z��_��Q�vim80/syntax/msmessages.vimnu�[���PK�j�Z�J5��j�vim80/syntax/bindzone.vimnu�[���PK�j�Z��\cAjAj(}�vim80/syntax/pfmain.vimnu�[���PK�j�ZQ�ZR��vim80/syntax/ampl.vimnu�[���PK�j�Z��<�i�i��vim80/syntax/ishd.vimnu�[���PK�j�Z��r^3)3)�a�vim80/syntax/ia64.vimnu�[���PK�j�Z|T�((o��vim80/syntax/liquid.vimnu�[���PK�j�ZmB��  ޣ�vim80/syntax/ptcap.vimnu�[���PK�j�Z��H1��D��vim80/syntax/sgmldecl.vimnu�[���PK�j�Zw�i�VV���vim80/syntax/jess.vimnu�[���PK�j�ZFU,ܠ
�
!Ոvim80/syntax/povini.vimnu�[���PK�j�Z>9朤����vim80/syntax/cmake.vimnu�[���PK�j�Z�i���vim80/syntax/lss.vimnu�[���PK�j�ZO�VWhWh<��vim80/syntax/jam.vimnu�[���PK�j�Z�YN����vim80/syntax/gpg.vimnu�[���PK�j�Z�7��AA��vim80/syntax/dictdconf.vimnu�[���PK�j�Z+*		}3�vim80/syntax/rtf.vimnu�[���PK�j�Zޜx+���<�vim80/syntax/netrc.vimnu�[���PK�j�Z�W*����D�vim80/syntax/dirpager.vimnu�[���PK�j�Z���+�8�8�K�vim80/syntax/euphoria4.vimnu�[���PK�j�Z�B��^^��vim80/syntax/django.vimnu�[���PK�j�Z����mm���vim80/syntax/setserial.vimnu�[���PK�j�Z�=���b��vim80/syntax/rpcgen.vimnu�[���PK�j�Z�����+��vim80/syntax/exports.vimnu�[���PK�j�Z������F��vim80/syntax/modconf.vimnu�[���PK�j�Z�f��vim80/syntax/cterm.vimnu�[���PK�j�Z�R�q33e֊vim80/syntax/xpm.vimnu�[���PK�j�Z��X�@2@2��vim80/syntax/yaml.vimnu�[���PK�j�Z�P�88a�vim80/syntax/xbl.vimnu�[���PK�j�Z2��C����vim80/syntax/yacc.vimnu�[���PK�j�ZR��OO�2�vim80/syntax/clean.vimnu�[���PK�j�Z�·�
�
@?�vim80/syntax/usw2kagtlog.vimnu�[���PK�j�Z��(RJ�vim80/syntax/prolog.vimnu�[���PK�j�Z�u���i[�vim80/syntax/calendar.vimnu�[���PK�j�Z;^elMMdo�vim80/syntax/xsd.vimnu�[���PK�j�Z�ͦ�PP�w�vim80/syntax/gitconfig.vimnu�[���PK�j�Z�����~�vim80/syntax/group.vimnu�[���PK�j�Z�$�������vim80/syntax/lace.vimnu�[���PK�j�Z��=��"�"���vim80/syntax/sgml.vimnu�[���PK�j�Z ��b�����vim80/syntax/sdl.vimnu�[���PK�j�Zq.��11�ҋvim80/syntax/rng.vimnu�[���PK�j�Z��<���Ջvim80/syntax/resolv.vimnu�[���PK�j�ZIO@!@!�vim80/syntax/vmasm.vimnu�[���PK�j�Z;T*�D�D��vim80/syntax/mysql.vimnu�[���PK�j�ZjQ�T+T+�H�vim80/syntax/sshdconfig.vimnu�[���PK�j�Z|�O	��Et�vim80/syntax/go.vimnu�[���PK�j�Z�P+�11h��vim80/syntax/changelog.vimnu�[���PK�j�ZY�??㛌vim80/syntax/voscm.vimnu�[���PK�j�Z�>G33h��vim80/syntax/stp.vimnu�[���PK�j�Z|��..�̌vim80/syntax/mma.vimnu�[���PK�j�Z$B%j  :��vim80/syntax/opl.vimnu�[���PK�j�Z^t4�X�X���vim80/syntax/foxpro.vimnu�[���PK�j�Z�X�hh=��vim80/syntax/tak.vimnu�[���PK�j�ZKy/��闍vim80/syntax/kix.vimnu�[���PK�j�Z��U�氍vim80/syntax/murphi.vimnu�[���PK�j�Zdw���8Ívim80/syntax/syncolor.vimnu�[���PK�j�ZeMؔRR~Ӎvim80/syntax/sinda.vimnu�[���PK�j�Z�5�//�vim80/syntax/smcl.vimnu�[���PK�j�Z(i�LLf�vim80/syntax/elmfilt.vimnu�[���PK�j�Z6��i����vim80/syntax/javacc.vimnu�[���PK�j�Z��``&�vim80/syntax/godoc.vimnu�[���PK�j�ZMA��I^I^�'�vim80/syntax/aml.vimnu�[���PK�j�Z������D��vim80/syntax/mgp.vimnu�[���PK�j�Z�H���X��vim80/syntax/pcap.vimnu�[���PK�j�Z���f�fu��vim80/syntax/c.vimnu�[���PK�j�Z�.}�V
V
���vim80/syntax/dylan.vimnu�[���PK�j�Z�}�W�WQ	�vim80/syntax/redif.vimnu�[���PK�j�Zu1�	�\�\a�vim80/syntax/csdl.vimnu�[���PK�j�Zs'/�-��vim80/syntax/rrst.vimnu�[���PK�j�Z�h�<'�'��Ðvim80/syntax/sas.vimnu�[���PK�j�Z����H�vim80/syntax/jovial.vimnu�[���PK�j�Z��g݆
�
HY�vim80/syntax/gnash.vimnu�[���PK�j�Z�
���
�
g�vim80/syntax/tssgm.vimnu�[���PK�j�Z��f�
�
=r�vim80/syntax/vroom.vimnu�[���PK�j�Z��&���'��vim80/syntax/sqlj.vimnu�[���PK�j�ZM=+�**��vim80/syntax/grub.vimnu�[���PK�j�Z`�f..u��vim80/syntax/esqlc.vimnu�[���PK�j�Z�.MM飑vim80/syntax/chaskell.vimnu�[���PK�j�ZU�|�99��vim80/syntax/takcmp.vimnu�[���PK�j�Z�T�����vim80/syntax/sindacmp.vimnu�[���PK�j�Zp�yE$E$B��vim80/syntax/btm.vimnu�[���PK�j�Z� ��
�
�Ցvim80/syntax/cuda.vimnu�[���PK�j�ZP�Y�.�.��vim80/syntax/falcon.vimnu�[���PK�j�Z<�9y����vim80/syntax/trasys.vimnu�[���PK�j�Zһ���#�vim80/syntax/smith.vimnu�[���PK�j�Z�O��'�vim80/syntax/tex.vimnu�[���PK�j�Z9�EK���+�vim80/syntax/gp.vimnu�[���PK�j�Z=�Y2���7�vim80/syntax/htmlm4.vimnu�[���PK�j�ZvZ����:�vim80/syntax/omnimark.vimnu�[���PK�j�Z��X�66�S�vim80/syntax/man.vimnu�[���PK�j�Z#�
ttDZ�vim80/syntax/dosbatch.vimnu�[���PK�j�Z�#`��s�vim80/syntax/hastepreproc.vimnu�[���PK�j�Z�øЍ��x�vim80/syntax/snnsres.vimnu�[���PK�j�Z���I�f�f���vim80/syntax/nasm.vimnu�[���PK�j�Z��|�����vim80/syntax/cs.vimnu�[���PK�j�ZV������vim80/syntax/slpreg.vimnu�[���PK�j�Z���c2c2��vim80/syntax/n1ql.vimnu�[���PK�j�ZE���3�3�G�vim80/syntax/tcsh.vimnu�[���PK�j�ZA�~�{�vim80/syntax/tt2html.vimnu�[���PK�j�Z�Y����}�vim80/syntax/takout.vimnu�[���PK�j�ZA�X������vim80/syntax/mallard.vimnu�[���PK�j�Z:�N;ff��vim80/syntax/gitolite.vimnu�[���PK�j�Z�X(�����vim80/syntax/gdmo.vimnu�[���PK�j�Z�׿#��۫�vim80/syntax/mgl.vimnu�[���PK�j�ZGpjXX���vim80/syntax/hercules.vimnu�[���PK�j�Zֲ��&�&Lєvim80/syntax/cobol.vimnu�[���PK�j�Z%���EER��vim80/syntax/fan.vimnu�[���PK�j�Z�I�&�@�@�
�vim80/syntax/rust.vimnu�[���PK�j�Z����l
l
O�vim80/syntax/dracula.vimnu�[���PK�j�Z!����Y�vim80/syntax/bc.vimnu�[���PK�j�Z�V�
�2�2�`�vim80/syntax/sqr.vimnu�[���PK�j�Z�ڬ&

��vim80/syntax/purifylog.vimnu�[���PK�j�Z��i^��y��vim80/syntax/kivy.vimnu�[���PK�j�Zt�WF�F����vim80/syntax/perl.vimnu�[���PK�j�ZW�tEE#<�vim80/syntax/wvdial.vimnu�[���PK�j�ZY���o\o\�@�vim80/syntax/gnuplot.vimnu�[���PK�j�Z��t��f��vim80/syntax/pinfo.vimnu�[���PK�j�Z�����\��vim80/syntax/tssop.vimnu�[���PK�j�Z�:��ÞÞ���vim80/syntax/ruby.vimnu�[���PK�j�ZwϜ3pp�X�vim80/syntax/slice.vimnu�[���PK�j�Z��G���Yd�vim80/syntax/protocols.vimnu�[���PK�j�Zδ�338j�vim80/syntax/netrw.vimnu�[���PK�j�Zdz������vim80/syntax/diva.vimnu�[���PK�j�Z�S��v��vim80/syntax/json.vimnu�[���PK�j�Z�1j5"5"=��vim80/syntax/fasm.vimnu�[���PK�j�Z_U�B�2�2�ӗvim80/syntax/ada.vimnu�[���PK�j�Z��T||��vim80/syntax/libao.vimnu�[���PK�j�Z#wTɣɣ�	�vim80/syntax/sqlanywhere.vimnu�[���PK�j�ZW�W,zz̭�vim80/syntax/tli.vimnu�[���PK�j�ZR�b������vim80/syntax/rib.vimnu�[���PK�j�ZW����^��vim80/syntax/wdiff.vimnu�[���PK�j�ZQ4�y66p��vim80/syntax/rmd.vimnu�[���PK�j�Z MP�6�6�јvim80/syntax/upstreamdat.vimnu�[���PK�j�Z�
�j��	�vim80/syntax/htmlcheetah.vimnu�[���PK�j�Z��'�'J�vim80/syntax/rc.vimnu�[���PK�j�Z5TW�a�av3�vim80/syntax/fvwm.vimnu�[���PK�j�Z=��1�1�}��vim80/syntax/sh.vimnu�[���PK�j�Z5������3�vim80/syntax/mail.vimnu�[���PK�j�Z���KK�K�vim80/syntax/initex.vimnu�[���PK�j�Z��78!8!J��vim80/syntax/nastran.vimnu�[���PK�j�Z�'���ʸ�vim80/syntax/psf.vimnu�[���PK�j�Z(u���ɚvim80/syntax/gitcommit.vimnu�[���PK�j�Z@Ϗ���ݚvim80/syntax/reva.vimnu�[���PK�j�ZVa������vim80/syntax/expect.vimnu�[���PK�j�Z�)�qvv�	�vim80/syntax/xslt.vimnu�[���PK�j�Z��ԗ�
�
��vim80/syntax/m4.vimnu�[���PK�j�Zd���,!,!_�vim80/syntax/debcontrol.vimnu�[���PK�j�Z>��gg�>�vim80/syntax/spyce.vimnu�[���PK�j�Z����|�|�P�vim80/syntax/css.vimnu�[���PK�j�Z̼�&�͛vim80/syntax/tilde.vimnu�[���PK�j�Zxk8��ӛvim80/syntax/indent.vimnu�[���PK�j�ZB�j""�vim80/syntax/sm.vimnu�[���PK�j�Z(�DzXX���vim80/syntax/objcpp.vimnu�[���PK�j�Z|�'��"��vim80/syntax/pccts.vimnu�[���PK�j�Z=Io?||e�vim80/syntax/iss.vimnu�[���PK�j�ZX#�D��%"�vim80/syntax/ctrlh.vimnu�[���PK�j�Z�6����%�vim80/syntax/cheetah.vimnu�[���PK�j�Z�+�/��;,�vim80/syntax/esmtprc.vimnu�[���PK�j�Zq���-0�vim80/syntax/amiga.vimnu�[���PK�j�ZC�A
JJ
<�vim80/syntax/teraterm.vimnu�[���PK�j�Z�������O�vim80/syntax/crontab.vimnu�[���PK�j�Z>t�����X�vim80/syntax/modula3.vimnu�[���PK�j�Z�Ɋ]22�`�vim80/syntax/abc.vimnu�[���PK�j�Z��%V%V&h�vim80/syntax/sudoers.vimnu�[���PK�j�Z&q̱� � ���vim80/syntax/tsalt.vimnu�[���PK�j�Z0�nGSS^ߜvim80/syntax/lhaskell.vimnu�[���PK�j�ZE��N
N
��vim80/syntax/mel.vimnu�[���PK�j�Z�Fr##���vim80/syntax/jal.vimnu�[���PK�j�Z��"����!�vim80/syntax/a65.vimnu�[���PK�j�Z�)2��;�vim80/syntax/phtml.vimnu�[���PK�j�Zĸ֕]-]-�;�vim80/syntax/virata.vimnu�[���PK�j�Z��m���i�vim80/syntax/htmldjango.vimnu�[���PK�j�Z�.��#�#�m�vim80/syntax/aspvbs.vimnu�[���PK�j�Z$�he�����vim80/syntax/javascript.vimnu�[���PK�j�Z_�6#jjɥ�vim80/syntax/fgl.vimnu�[���PK�j�Z��Ɯ � wvim80/syntax/help.vimnu�[���PK�j�Z�N�8��X�vim80/syntax/syntax.vimnu�[���PK�j�ZrP;)rrk�vim80/syntax/dosini.vimnu�[���PK�j�Z�,��(�($�vim80/syntax/elinks.vimnu�[���PK�j�Z�E[	<
<
i�vim80/syntax/upstreamlog.vimnu�[���PK�j�Z�y""� �vim80/syntax/dircolors.vimnu�[���PK�j�Z����K�K]<�vim80/syntax/scheme.vimnu�[���PK�j�Z��~��&��vim80/syntax/ecd.vimnu�[���PK�j�Z�����7��vim80/syntax/ant.vimnu�[���PK�j�ZK�()�
�
3��vim80/syntax/mailaliases.vimnu�[���PK�j�ZG-�+,+,N��vim80/syntax/scala.vimnu�[���PK�j�Z��i����۞vim80/syntax/dockerfile.vimnu�[���PK�j�Zd��f$f$�ޞvim80/syntax/gtkrc.vimnu�[���PK�j�ZH�D��W�vim80/syntax/synload.vimnu�[���PK�j�Z^��*�*_�vim80/syntax/asciidoc.vimnu�[���PK�j�ZZJ��tt�6�vim80/syntax/markdown.vimnu�[���PK�j�Z���5�C�C[V�vim80/syntax/diff.vimnu�[���PK�j�Z��G���"��vim80/syntax/racc.vimnu�[���PK�j�Zf�s7�7�Z��vim80/syntax/muttrc.vimnu�[���PK�j�Zw#��?<?<ت�vim80/syntax/mf.vimnu�[���PK�j�Z�F�6��Z�vim80/syntax/radiance.vimnu�[���PK�j�Z�%��|�|��vim80/syntax/cucumber.vimnu�[���PK�j�Z3�p0�
�
n��vim80/syntax/systemverilog.vimnu�[���PK�j�Z�ͦ�����vim80/syntax/slpspi.vimnu�[���PK�j�Z�Do�	�	s��vim80/syntax/passwd.vimnu�[���PK�j�Zi��T��E��vim80/syntax/xxd.vimnu�[���PK�j�Z�2̶a#a#���vim80/syntax/pov.vimnu�[���PK�j�ZtCc�00,ġvim80/syntax/desktop.vimnu�[���PK�j�Z�
F�p$p$�ԡvim80/syntax/sml.vimnu�[���PK�j�Z;r��

X��vim80/syntax/tmux.vimnu�[���PK�j�Z��T055��vim80/syntax/make.vimnu�[���PK�j�Z�4GQ��$+�vim80/syntax/jgraph.vimnu�[���PK�j�Z'�>�AA'0�vim80/syntax/natural.vimnu�[���PK�j�Z�1�LL�K�vim80/syntax/inform.vimnu�[���PK�j�ZY�	��vim80/syntax/aflex.vimnu�[���PK�j�Z1+~:cdcdh��vim80/syntax/rpl.vimnu�[���PK�j�Zl�`_@@�vim80/syntax/icon.vimnu�[���PK�j�Z���L���)�vim80/syntax/lifelines.vimnu�[���PK�j�ZÃha�	�	�C�vim80/syntax/kwt.vimnu�[���PK�j�Z./�*%%�M�vim80/syntax/hostsaccess.vimnu�[���PK�j�Z�����J�JP�vim80/syntax/eterm.vimnu�[���PK�j�Z�pi�C��vim80/syntax/hostconf.vimnu�[���PK�j�Z��p�/U/U���vim80/syntax/pike.vimnu�[���PK�j�Z�!:���vim80/syntax/strace.vimnu�[���PK�j�Z�66�vim80/syntax/dylanintr.vimnu�[���PK�j�Z��(@�>�>��vim80/syntax/logtalk.vimnu�[���PK�j�Z�I�	``�K�vim80/syntax/sql.vimnu�[���PK�j�Z�Ǧ�TT*P�vim80/syntax/treetop.vimnu�[���PK�j�Z�����^�vim80/syntax/grads.vimnu�[���PK�j�Z3�SKK�e�vim80/syntax/sqloracle.vimnu�[���PK�j�Z��n�&&o��vim80/syntax/b.vimnu�[���PK�j�Z���Q��ו�vim80/syntax/clipper.vimnu�[���PK�j�Z	glHECEC竤vim80/syntax/ratpoison.vimnu�[���PK�j�Z���[��v�vim80/syntax/dns.vimnu�[���PK�j�Z��Z���>�vim80/syntax/vsejcl.vimnu�[���PK�j�ZJuY-�
�
q�vim80/syntax/mib.vimnu�[���PK�j�Z](]��#=��vim80/syntax/upstreaminstalllog.vimnu�[���PK�j�Zm2Z��[�vim80/syntax/ldif.vimnu�[���PK�j�Z�|�P����vim80/syntax/mmp.vimnu�[���PK�j�Z���pp�
�vim80/syntax/sbt.vimnu�[���PK�j�Z�508��\�vim80/syntax/manual.vimnu�[���PK�j�Z[�'�C/C/0�vim80/syntax/lscript.vimnu�[���PK�j�Z��@���D�vim80/syntax/plm.vimnu�[���PK�j�Z�dk4ICIC�Y�vim80/syntax/masm.vimnu�[���PK�j�Z�;i�uu~��vim80/syntax/proto.vimnu�[���PK�j�Z��C

9��vim80/syntax/registry.vimnu�[���PK�j�Z�F�<::���vim80/syntax/webmacro.vimnu�[���PK�j�Z��m{�"�" åvim80/syntax/rst.vimnu�[���PK�j�Z��~BII��vim80/syntax/ninja.vimnu�[���PK�j�Z$ou���u�vim80/syntax/gedcom.vimnu�[���PK�j�Z�q9�!!���vim80/syntax/csc.vimnu�[���PK�j�Z4zZ''��vim80/syntax/modsim3.vimnu�[���PK�j�Z�jP"S)S)S*�vim80/syntax/sshconfig.vimnu�[���PK�j�ZЕ�����S�vim80/syntax/asm.vimnu�[���PK�j�Z�t�))&e�vim80/syntax/freebasic.vimnu�[���PK�j�Z��*�7�7���vim80/syntax/asm68k.vimnu�[���PK�j�Z���ϙ��Ʀvim80/syntax/scss.vimnu�[���PK�j�ZPd���mȦvim80/syntax/pilrc.vimnu�[���PK�j�Zx�'�[�[rݦvim80/syntax/zsh.vimnu�[���PK�j�Z�Q�S�3�3w9�vim80/syntax/pli.vimnu�[���PK�j�Zњ5���am�vim80/syntax/colortest.vimnu�[���PK�j�Z�:.XX,z�vim80/syntax/chill.vimnu�[���PK�j�ZV�Ux/x/ʙ�vim80/syntax/winbatch.vimnu�[���PK�j�Z�DZZ�ɧvim80/syntax/hgcommit.vimnu�[���PK�j�Z(_�ӳ�.Χvim80/syntax/lynx.vimnu�[���PK�j�Z�����&�vim80/syntax/terminfo.vimnu�[���PK�j�Z1���oo2��vim80/syntax/sdc.vimnu�[���PK�j�Z-ùhh��vim80/syntax/mmix.vimnu�[���PK�j�Z+��F#F#��vim80/syntax/abap.vimnu�[���PK�j�ZuUSU8�vim80/syntax/coco.vimnu�[���PK�j�Z�N�j||v=�vim80/syntax/ibasic.vimnu�[���PK�j�Z���NN9Y�vim80/syntax/z8a.vimnu�[���PK�j�Z�W�
�o�o�d�vim80/syntax/d.vimnu�[���PK�j�ZfL��66�Ԩvim80/syntax/hamster.vimnu�[���PK�j�Z>i>

<�vim80/syntax/pic.vimnu�[���PK�j�Z�w����vim80/syntax/kscript.vimnu�[���PK�j�Z��!!� �vim80/syntax/cupl.vimnu�[���PK�j�Z�x�z	z	�/�vim80/syntax/a2ps.vimnu�[���PK�j�Zer�yM*M*�9�vim80/syntax/xmath.vimnu�[���PK�j�ZH���'�'Fd�vim80/syntax/monk.vimnu�[���PK�j�Z1άCCv��vim80/syntax/smarty.vimnu�[���PK�j�ZS62v~~��vim80/syntax/mix.vimnu�[���PK�j�Z�5�5�£�vim80/syntax/postscr.vimnu�[���PK�j�ZQe����?X�vim80/delmenu.vimnu�[���PK�j�ZR"[�vim80/ftplugin/cdrdaoconf.vimnu�[���PK�j�Z��`���\�vim80/ftplugin/cvsrc.vimnu�[���PK�j�Z�/�ss�^�vim80/ftplugin/vb.vimnu�[���PK�j�Z_�8?��`f�vim80/ftplugin/pyrex.vimnu�[���PK�j�Z_��I���i�vim80/ftplugin/eiffel.vimnu�[���PK�j�Z�.����y�vim80/ftplugin/screen.vimnu�[���PK�j�ZF���{�vim80/ftplugin/udevrules.vimnu�[���PK�j�Zi�)n���}�vim80/ftplugin/logtalk.dictnu�[���PK�j�Z]v���#��vim80/ftplugin/udevconf.vimnu�[���PK�j�Zs���� ��vim80/ftplugin/bdf.vimnu�[���PK�j�Z}���'��vim80/ftplugin/manconf.vimnu�[���PK�j�Z(�4��-��vim80/ftplugin/readline.vimnu�[���PK�j�ZPd�7.��vim80/ftplugin/dtrace.vimnu�[���PK�j�Z�e�ZZ���vim80/ftplugin/r.vimnu�[���PK�j�Z�^�!���vim80/ftplugin/lisp.vimnu�[���PK�j�Z>�Q++ܘ�vim80/ftplugin/nsis.vimnu�[���PK�j�Z����N��vim80/ftplugin/arch.vimnu�[���PK�j�Za�ҿ�D��vim80/ftplugin/kconfig.vimnu�[���PK�j�Z!���M��vim80/ftplugin/spec.vimnu�[���PK�j�Z4OE��|��vim80/ftplugin/ch.vimnu�[���PK�j�Z8����vim80/ftplugin/neomuttrc.vimnu�[���PK�j�Z�N�b__���vim80/ftplugin/haml.vimnu�[���PK�j�Z��9�
�
�ƪvim80/ftplugin/php.vimnu�[���PK�j�Z�������Ѫvim80/ftplugin/qf.vimnu�[���PK�j�Z��6�Ӫvim80/ftplugin/mrxvtrc.vimnu�[���PK�j�Z�#�oWWZתvim80/ftplugin/groovy.vimnu�[���PK�j�Z��  �تvim80/ftplugin/cpp.vimnu�[���PK�j�Zb��g�,�,`ڪvim80/ftplugin/debchangelog.vimnu�[���PK�j�Z���B
B
��vim80/ftplugin/j.vimnu�[���PK�j�ZE<�	���vim80/ftplugin/text.vimnu�[���PK�j�Z���QQ�vim80/ftplugin/automake.vimnu�[���PK�j�Z���Ѳ���vim80/ftplugin/lftp.vimnu�[���PK�j�Z�Rl�����vim80/ftplugin/pamconf.vimnu�[���PK�j�Z�T���vim80/ftplugin/erlang.vimnu�[���PK�j�Z�hesww$�vim80/ftplugin/xml.vimnu�[���PK�j�Z�F?
?
�+�vim80/ftplugin/abaqus.vimnu�[���PK�j�Zʳ�X]]E9�vim80/ftplugin/eruby.vimnu�[���PK�j�Z�ϗu���E�vim80/ftplugin/updatedb.vimnu�[���PK�j�Z�\)M���G�vim80/ftplugin/gitrebase.vimnu�[���PK�j�Z�q�cc�M�vim80/ftplugin/dtd.vimnu�[���PK�j�Z<��7���R�vim80/ftplugin/vim.vimnu�[���PK�j�Z�HKAAi_�vim80/ftplugin/jproperties.vimnu�[���PK�j�ZR"�`�vim80/ftplugin/denyhosts.vimnu�[���PK�j�Z�!�__�b�vim80/ftplugin/sass.vimnu�[���PK�j�Z]����	�	ie�vim80/ftplugin/perl6.vimnu�[���PK�j�Z�D���o�vim80/ftplugin/chicken.vimnu�[���PK�j�Z�d!�5
5
[v�vim80/ftplugin/pdf.vimnu�[���PK�j�Z���MMր�vim80/ftplugin/bst.vimnu�[���PK�j�Z�'��TTi��vim80/ftplugin/fortran.vimnu�[���PK�j�Z�+����vim80/ftplugin/framescript.vimnu�[���PK�j�Z:ϹÛ�a��vim80/ftplugin/pascal.vimnu�[���PK�j�Z;�`�E��vim80/ftplugin/context.vimnu�[���PK�j�Z� �������vim80/ftplugin/aap.vimnu�[���PK�j�Z�%%���vim80/ftplugin/gdb.vimnu�[���PK�j�Z�������vim80/ftplugin/xhtml.vimnu�[���PK�j�Z�#X��T��vim80/ftplugin/gprof.vimnu�[���PK�j�Z΍a���G��vim80/ftplugin/xdefaults.vimnu�[���PK�j�Z�˪���t��vim80/ftplugin/conf.vimnu�[���PK�j�Z��ĵZZm��vim80/ftplugin/ocaml.vimnu�[���PK�j�ZA��i����vim80/ftplugin/gitsendemail.vimnu�[���PK�j�Z�d�����vim80/ftplugin/udevperm.vimnu�[���PK�j�Z�k#����vim80/ftplugin/matlab.vimnu�[���PK�j�Z�q����!�vim80/ftplugin/java.vimnu�[���PK�j�Z��Y��(�vim80/ftplugin/docbk.vimnu�[���PK�j�Z��%

+�vim80/ftplugin/zimbu.vimnu�[���PK�j�Z9�V��d@�vim80/ftplugin/sieve.vimnu�[���PK�j�Z��)n~~�B�vim80/ftplugin/plaintex.vimnu�[���PK�j�Z�5��JG�vim80/ftplugin/alsaconf.vimnu�[���PK�j�ZiW>��KI�vim80/ftplugin/xinetd.vimnu�[���PK�j�Z�\1v��pK�vim80/ftplugin/logcheck.vimnu�[���PK�j�Z���|���M�vim80/ftplugin/crm.vimnu�[���PK�j�Z`�Pprr�O�vim80/ftplugin/hog.vimnu�[���PK�j�ZăN\��KU�vim80/ftplugin/haskell.vimnu�[���PK�j�Z�����RW�vim80/ftplugin/mplayerconf.vimnu�[���PK�j�ZE��YYxY�vim80/ftplugin/html.vimnu�[���PK�j�Z6$�\ee`�vim80/ftplugin/README.txtnu�[���PK�j�Z�������c�vim80/ftplugin/nanorc.vimnu�[���PK�j�Z��E���e�vim80/ftplugin/loginaccess.vimnu�[���PK�j�Zn+p����g�vim80/ftplugin/svg.vimnu�[���PK�j�Zc�s���l�vim80/ftplugin/ld.vimnu�[���PK�j�ZS�����n�vim80/ftplugin/procmail.vimnu�[���PK�j�Z���

q�vim80/ftplugin/rnoweb.vimnu�[���PK�j�Z�Oc��gu�vim80/ftplugin/sensors.vimnu�[���PK�j�Z�B3��xw�vim80/ftplugin/lua.vimnu�[���PK�j�Zҍ�����{�vim80/ftplugin/bzl.vimnu�[���PK�j�Z�?�IJ�ȇ�vim80/ftplugin/xmodmap.vimnu�[���PK�j�Z�NoY��ĉ�vim80/ftplugin/limits.vimnu�[���PK�j�ZQ������vim80/ftplugin/rhelp.vimnu�[���PK�j�ZhH���뎬vim80/ftplugin/mp.vimnu�[���PK�j�Z�
������vim80/ftplugin/fetchmail.vimnu�[���PK�j�Zɓ�!�����vim80/ftplugin/quake.vimnu�[���PK�j�Z�c�����vim80/ftplugin/rnc.vimnu�[���PK�j�Z`��o�����vim80/ftplugin/verilog.vimnu�[���PK�j�Z��*1�
�
���vim80/ftplugin/vhdl.vimnu�[���PK�j�Z-������vim80/ftplugin/lprolog.vimnu�[���PK�j�Z�{qi��ؾ�vim80/ftplugin/xs.vimnu�[���PK�j�Z+�����vim80/ftplugin/sysctl.vimnu�[���PK�j�Z��3����¬vim80/ftplugin/logindefs.vimnu�[���PK�j�Z^��\��Ŭvim80/ftplugin/xf86conf.vimnu�[���PK�j�Z�:75((�Ƭvim80/ftplugin/objc.vimnu�[���PK�j�Z�{(���lȬvim80/ftplugin/tcl.vimnu�[���PK�j�Z�!M���̬vim80/ftplugin/slpconf.vimnu�[���PK�j�Z ������άvim80/ftplugin/less.vimnu�[���PK�j�Z]]5���Ѭvim80/ftplugin/dictconf.vimnu�[���PK�j�Z��]����Ҭvim80/ftplugin/config.vimnu�[���PK�j�Z����TT@جvim80/ftplugin/flexwiki.vimnu�[���PK�j�Zh�Vמ��߬vim80/ftplugin/systemd.vimnu�[���PK�j�Z�G�?��vim80/ftplugin/occam.vimnu�[���PK�j�ZH:ާ�� �vim80/ftplugin/jsp.vimnu�[���PK�j�Z?ly��A�vim80/ftplugin/mailcap.vimnu�[���PK�j�Z򎎊FF=�vim80/ftplugin/git.vimnu�[���PK�j�Z��l����vim80/ftplugin/python.vimnu�[���PK�j�Z��������vim80/ftplugin/art.vimnu�[���PK�j�Z���Y���
�vim80/ftplugin/services.vimnu�[���PK�j�Z������vim80/ftplugin/clojure.vimnu�[���PK�j�Z�-�����vim80/ftplugin/awk.vimnu�[���PK�j�ZU,*Gaa� �vim80/ftplugin/csh.vimnu�[���PK�j�Z��
uu�'�vim80/ftplugin/msmessages.vimnu�[���PK�j�ZЍ�0��I,�vim80/ftplugin/ishd.vimnu�[���PK�j�Z�j*Uii�1�vim80/ftplugin/liquid.vimnu�[���PK�j�Z�]}gg29�vim80/ftplugin/cmake.vimnu�[���PK�j�Z�b�0���:�vim80/ftplugin/gpg.vimnu�[���PK�j�Z�W����<�vim80/ftplugin/dictdconf.vimnu�[���PK�j�Z!�B���>�vim80/ftplugin/netrc.vimnu�[���PK�j�Zf���@�vim80/ftplugin/setserial.vimnu�[���PK�j�Z� O����B�vim80/ftplugin/modconf.vimnu�[���PK�j�ZX:�����D�vim80/ftplugin/yaml.vimnu�[���PK�j�Z�va���G�vim80/ftplugin/prolog.vimnu�[���PK�j�Zv����
I�vim80/ftplugin/calendar.vimnu�[���PK�j�ZӜ����&K�vim80/ftplugin/xsd.vimnu�[���PK�j�Z0�xx�O�vim80/ftplugin/gitconfig.vimnu�[���PK�j�Z?����Q�vim80/ftplugin/group.vimnu�[���PK�j�Z��w���S�vim80/ftplugin/sgml.vimnu�[���PK�j�Z���mm�X�vim80/ftplugin/go.vimnu�[���PK�j�Zh�~H�"�"gZ�vim80/ftplugin/changelog.vimnu�[���PK�j�Z�I)���n}�vim80/ftplugin/c.vimnu�[���PK�j�Z�
jOOa��vim80/ftplugin/rrst.vimnu�[���PK�j�Z�Zt������vim80/ftplugin/vroom.vimnu�[���PK�j�Zv���ۍ�vim80/ftplugin/grub.vimnu�[���PK�j�Z�p9�<<ԏ�vim80/ftplugin/btm.vimnu�[���PK�j�Z�v��@@V��vim80/ftplugin/falcon.vimnu�[���PK�j�Z�ay6iiߖ�vim80/ftplugin/tex.vimnu�[���PK�j�Z�N����vim80/ftplugin/man.vimnu�[���PK�j�Z�h��		Ⳮvim80/ftplugin/dosbatch.vimnu�[���PK�j�Zo�g""6��vim80/ftplugin/cs.vimnu�[���PK�j�Z6��������vim80/ftplugin/slpreg.vimnu�[���PK�j�Z�gy��¼�vim80/ftplugin/tcsh.vimnu�[���PK�j�Z��W������vim80/ftplugin/tt2html.vimnu�[���PK�j�Z����$�$�ívim80/ftplugin/cobol.vimnu�[���PK�j�Z򟄛����vim80/ftplugin/rust.vimnu�[���PK�j�Z���""��vim80/ftplugin/perl.vimnu�[���PK�j�Zyt�9��T�vim80/ftplugin/pinfo.vimnu�[���PK�j�ZzW��pBpBO�vim80/ftplugin/ruby.vimnu�[���PK�j�Z���S�vim80/ftplugin/protocols.vimnu�[���PK�j�ZgBH�hhU�vim80/ftplugin/json.vimnu�[���PK�j�Z8;���V�vim80/ftplugin/ada.vimnu�[���PK�j�Z�����p�vim80/ftplugin/libao.vimnu�[���PK�j�Z�	B��r�vim80/ftplugin/rmd.vimnu�[���PK�j�ZZՅ��)x�vim80/ftplugin/fvwm.vimnu�[���PK�j�Z�����y�vim80/ftplugin/sh.vimnu�[���PK�j�Z�W�SS�~�vim80/ftplugin/mail.vimnu�[���PK�j�ZL��L�����vim80/ftplugin/initex.vimnu�[���PK�j�Z�D������vim80/ftplugin/gitcommit.vimnu�[���PK�j�Zɹ���Ő�vim80/ftplugin/reva.vimnu�[���PK�j�Z�
1�ѓ�vim80/ftplugin/xslt.vimnu�[���PK�j�Z�����3��vim80/ftplugin/m4.vimnu�[���PK�j�Z�3G00"��vim80/ftplugin/debcontrol.vimnu�[���PK�j�Z
p�l���vim80/ftplugin/css.vimnu�[���PK�j�ZS��������vim80/ftplugin/indent.vimnu�[���PK�j�Z�c����vim80/ftplugin/sudoers.vimnu�[���PK�j�Z')�9KK��vim80/ftplugin/htmldjango.vimnu�[���PK�j�Zop�||���vim80/ftplugin/aspvbs.vimnu�[���PK�j�Z\v�=a��vim80/ftplugin/javascript.vimnu�[���PK�j�Z��A��ų�vim80/ftplugin/help.vimnu�[���PK�j�Zs����Ƶ�vim80/ftplugin/dosini.vimnu�[���PK�j�Z\#�"��ٷ�vim80/ftplugin/elinks.vimnu�[���PK�j�Z��B���ֹ�vim80/ftplugin/dircolors.vimnu�[���PK�j�Zb|�rrѻ�vim80/ftplugin/scheme.vimnu�[���PK�j�Z�q�==���vim80/ftplugin/ant.vimnu�[���PK�j�Z��Ǯvim80/ftplugin/mailaliases.vimnu�[���PK�j�Z��q��Ȯvim80/ftplugin/scala.vimnu�[���PK�j�Z��hdd�ͮvim80/ftplugin/dockerfile.vimnu�[���PK�j�Zeji���TϮvim80/ftplugin/markdown.vimnu�[���PK�j�Z8`�+cc8Ԯvim80/ftplugin/diff.vimnu�[���PK�j�Z�\�|���ծvim80/ftplugin/racc.vimnu�[���PK�j�Z��$n���׮vim80/ftplugin/muttrc.vimnu�[���PK�j�Z�Ƹ��ڮvim80/ftplugin/mf.vimnu�[���PK�j�Z�
�����vim80/ftplugin/cucumber.vimnu�[���PK�j�Zg��b�� B��vim80/ftplugin/systemverilog.vimnu�[���PK�j�Z��@�����vim80/ftplugin/slpspi.vimnu�[���PK�j�Z�A�������vim80/ftplugin/passwd.vimnu�[���PK�j�Z
rx�$$��vim80/ftplugin/tmux.vimnu�[���PK�j�Z�wUߧ���vim80/ftplugin/make.vimnu�[���PK�j�Z~:+Kll��vim80/ftplugin/rpl.vimnu�[���PK�j�ZA�FSS��vim80/ftplugin/kwt.vimnu�[���PK�j�Z�wJ��2�vim80/ftplugin/hostsaccess.vimnu�[���PK�j�Z�V����4�vim80/ftplugin/eterm.vimnu�[���PK�j�ZR"R�vim80/ftplugin/hostconf.vimnu�[���PK�j�Z g�\���vim80/ftplugin/logtalk.vimnu�[���PK�j�Z��a0oToT��vim80/ftplugin/sql.vimnu�[���PK�j�ZX
� ��h�vim80/ftplugin/treetop.vimnu�[���PK�j�Z��;[[�j�vim80/ftplugin/sbt.vimnu�[���PK�j�Z�{���7l�vim80/ftplugin/registry.vimnu�[���PK�j�Z�V���fo�vim80/ftplugin/rst.vimnu�[���PK�j�Z�%���tq�vim80/ftplugin/csc.vimnu�[���PK�j�Z	��C���t�vim80/ftplugin/sshconfig.vimnu�[���PK�j�Z��8���v�vim80/ftplugin/scss.vimnu�[���PK�j�ZCD[p22�w�vim80/ftplugin/zsh.vimnu�[���PK�j�Z�O�UkkK{�vim80/ftplugin/hgcommit.vimnu�[���PK�j�Z�ح���}�vim80/ftplugin/terminfo.vimnu�[���PK�j�Z���  �~�vim80/ftplugin/abap.vimnu�[���PK�j�Z���;��a��vim80/ftplugin/hamster.vimnu�[���PK�j�Z�B�a��+��vim80/ftplugin/a2ps.vimnu�[���PK�j�Z�P��H��vim80/ftplugin/postscr.vimnu�[���PK�j�Z��P�����vim80/colors/darkblue.vimnu�[���PK�j�Z�q���w��vim80/colors/elflord.vimnu�[���PK�j�Z�&�ޔ	�	A��vim80/colors/evening.vimnu�[���PK�j�Z;��	�	��vim80/colors/slate.vimnu�[���PK�j�ZG+M����vim80/colors/industry.vimnu�[���PK�j�Z�i�
�
߾�vim80/colors/desert.vimnu�[���PK�j�Z��h�
�
"ʯvim80/colors/shine.vimnu�[���PK�j�Zjp���կvim80/colors/README.txtnu�[���PK�j�Z5� �]]��vim80/colors/torte.vimnu�[���PK�j�Z$=Q�
�
��vim80/colors/koehler.vimnu�[���PK�j�Z���q
q
���vim80/colors/peachpuff.vimnu�[���PK�j�Z0i��

y�vim80/colors/pablo.vimnu�[���PK�j�ZK���qq��vim80/colors/ron.vimnu�[���PK�j�ZJ�Y�00�
�vim80/colors/zellner.vimnu�[���PK�j�Z趏?����vim80/colors/murphy.vimnu�[���PK�j�Z����	�	�vim80/colors/morning.vimnu�[���PK�j�Zy�qP$$�#�vim80/colors/default.vimnu�[���PK�j�Z�%R�	�	f&�vim80/colors/delek.vimnu�[���PK�j�Zy>5%�	�	�0�vim80/colors/blue.vimnu�[���PK�j�Z�/����w:�vimfiles/template.specnu�[���PK�j�Z�v̱rr �;�vimfiles/ftdetect/modulefile.vimnu�[���PK�j�Z�/Y�00m<�vimfiles/ftdetect/augeas.vimnu�[���PK�j�ZB@ı		�<�vimfiles/syntax/modulefile.vimnu�[���PK�j�Z�E����EF�vimfiles/syntax/augeas.vimnu�[���PK�j�ZxV;��� S�vimfiles/ftplugin/modulefile.vimnu�[���PKbb�4SU�